aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Jansa <Martin.Jansa@gmail.com>2009-12-04 11:25:01 +0100
committerMartin Jansa <Martin.Jansa@gmail.com>2009-12-04 11:25:01 +0100
commit70c1ef570be8b33794142fb6906f8f415467cd1f (patch)
treef7d3fbb70eef418e3a75d4ffca80a7d670f07444
parent84f13a66f645a65d460ea7d9f6b806285eeaa559 (diff)
parentf591b28ed94da8ed215cb279f17f1319179f8720 (diff)
downloadopenembedded-70c1ef570be8b33794142fb6906f8f415467cd1f.tar.gz
Merge remote branch 'origin/org.openembedded.dev' into martin_jansa/xorg-7.5
Conflicts: conf/distro/include/angstrom-2008-preferred-versions.inc conf/distro/include/preferred-xorg-versions-X11R7.5.inc recipes/xorg-driver/xf86-input-evdev_2.3.0.bb recipes/xorg-font/encodings_1.0.3.bb recipes/xorg-font/font-adobe-100dpi_1.0.1.bb recipes/xorg-font/font-adobe-75dpi_1.0.1.bb recipes/xorg-font/font-adobe-utopia-100dpi_1.0.2.bb recipes/xorg-font/font-adobe-utopia-75dpi_1.0.2.bb recipes/xorg-font/font-adobe-utopia-type1_1.0.2.bb recipes/xorg-font/font-alias_1.0.2.bb recipes/xorg-font/font-arabic-misc_1.0.1.bb recipes/xorg-font/font-bh-100dpi_1.0.1.bb recipes/xorg-font/font-bh-75dpi_1.0.1.bb recipes/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.1.bb recipes/xorg-font/font-bh-lucidatypewriter-75dpi_1.0.1.bb recipes/xorg-font/font-bh-ttf_1.0.1.bb recipes/xorg-font/font-bh-type1_1.0.1.bb recipes/xorg-font/font-bitstream-100dpi_1.0.1.bb recipes/xorg-font/font-bitstream-75dpi_1.0.1.bb recipes/xorg-font/font-bitstream-speedo_1.0.1.bb recipes/xorg-font/font-bitstream-type1_1.0.1.bb recipes/xorg-font/font-cronyx-cyrillic_1.0.1.bb recipes/xorg-font/font-cursor-misc_1.0.1.bb recipes/xorg-font/font-daewoo-misc_1.0.1.bb recipes/xorg-font/font-dec-misc_1.0.1.bb recipes/xorg-font/font-ibm-type1_1.0.1.bb recipes/xorg-font/font-isas-misc_1.0.1.bb recipes/xorg-font/font-jis-misc_1.0.1.bb recipes/xorg-font/font-micro-misc_1.0.1.bb recipes/xorg-font/font-misc-cyrillic_1.0.1.bb recipes/xorg-font/font-misc-ethiopic_1.0.1.bb recipes/xorg-font/font-misc-meltho_1.0.1.bb recipes/xorg-font/font-mutt-misc_1.0.1.bb recipes/xorg-font/font-schumacher-misc_1.1.0.bb recipes/xorg-font/font-screen-cyrillic_1.0.2.bb recipes/xorg-font/font-sony-misc_1.0.1.bb recipes/xorg-font/font-sun-misc_1.0.1.bb recipes/xorg-font/font-util-native_1.1.1.bb recipes/xorg-font/font-util_1.1.1.bb recipes/xorg-font/font-winitzki-cyrillic_1.0.1.bb recipes/xorg-font/font-xfree86-type1_1.0.2.bb recipes/xorg-font/xorg-font-common.inc
-rw-r--r--.gitignore1
-rw-r--r--MAINTAINERS20
-rw-r--r--classes/autotools.bbclass82
-rw-r--r--classes/autotools_stage.bbclass1
-rw-r--r--classes/base.bbclass359
-rw-r--r--classes/binconfig.bbclass43
-rw-r--r--classes/canadian-cross.bbclass43
-rw-r--r--classes/canadian-native.bbclass35
-rw-r--r--classes/canadian-sdk.bbclass4
-rw-r--r--classes/canadian.bbclass5
-rw-r--r--classes/chicken.bbclass11
-rw-r--r--classes/cmake.bbclass22
-rw-r--r--classes/cpan-base.bbclass6
-rw-r--r--classes/cpan.bbclass2
-rw-r--r--classes/cpan_build.bbclass3
-rw-r--r--classes/cross-canadian.bbclass46
-rw-r--r--classes/cross.bbclass25
-rw-r--r--classes/crosssdk.bbclass15
-rw-r--r--classes/debian.bbclass4
-rw-r--r--classes/distutils.bbclass8
-rw-r--r--classes/efl.bbclass11
-rw-r--r--classes/gconf.bbclass4
-rw-r--r--classes/gettext.bbclass2
-rw-r--r--classes/glibc-package.bbclass (renamed from recipes/glibc/glibc-package.bbclass)208
-rw-r--r--classes/gnome.bbclass1
-rw-r--r--classes/gtk-icon-cache.bbclass5
-rw-r--r--classes/icecc.bbclass10
-rw-r--r--classes/insane.bbclass23
-rw-r--r--classes/java.bbclass4
-rw-r--r--classes/kernel-arch.bbclass2
-rw-r--r--classes/kernel.bbclass26
-rw-r--r--classes/linux-kernel-base.bbclass3
-rw-r--r--classes/manifest.bbclass2
-rw-r--r--classes/mime.bbclass4
-rw-r--r--classes/module_strip.bbclass36
-rw-r--r--classes/native.bbclass97
-rw-r--r--classes/nativesdk.bbclass78
-rw-r--r--classes/openmoko-base.bbclass1
-rw-r--r--classes/openmoko2.bbclass2
-rw-r--r--classes/package.bbclass133
-rw-r--r--classes/package_deb.bbclass8
-rw-r--r--classes/package_ipk.bbclass15
-rw-r--r--classes/package_rpm.bbclass11
-rw-r--r--classes/package_tar.bbclass9
-rw-r--r--classes/packaged-staging.bbclass54
-rw-r--r--classes/packagedata.bbclass73
-rw-r--r--classes/packagehistory.bbclass6
-rw-r--r--classes/patch.bbclass11
-rw-r--r--classes/pkgconfig.bbclass12
-rw-r--r--classes/recipe_sanity.bbclass9
-rw-r--r--classes/rm_work.bbclass5
-rw-r--r--classes/sanity.bbclass12
-rw-r--r--classes/scons.bbclass2
-rw-r--r--classes/sdk.bbclass5
-rw-r--r--classes/siteinfo.bbclass4
-rw-r--r--classes/sourcepkg.bbclass4
-rw-r--r--classes/src_distribute.bbclass2
-rw-r--r--classes/task.bbclass1
-rw-r--r--classes/tinderclient.bbclass5
-rw-r--r--classes/update-alternatives.bbclass1
-rw-r--r--classes/update-rc.d.bbclass1
-rw-r--r--classes/xlibs.bbclass4
-rw-r--r--conf/bitbake.conf162
-rw-r--r--conf/checksums.ini576
-rw-r--r--conf/distro/angstrom-2008.1.conf12
-rw-r--r--conf/distro/include/angstrom-2008-preferred-versions.inc4
-rw-r--r--conf/distro/include/angstrom-glibc.inc2
-rw-r--r--conf/distro/include/angstrom.inc4
-rw-r--r--conf/distro/include/fso-autorev.inc4
-rw-r--r--conf/distro/include/preferred-shr-versions.inc42
-rw-r--r--conf/distro/include/preferred-slugos-versions.inc3
-rw-r--r--conf/distro/include/sane-srcdates.inc1
-rw-r--r--conf/distro/include/sane-srcrevs-fso.inc53
-rw-r--r--conf/distro/include/sane-srcrevs.inc161
-rw-r--r--conf/distro/include/sane-toolchain.inc4
-rw-r--r--conf/distro/include/shr-autorev-unstable.inc128
-rw-r--r--conf/distro/include/shr-autorev.inc144
-rw-r--r--conf/distro/include/slugos.inc3
-rw-r--r--conf/distro/iphone-compat.conf2
-rw-r--r--conf/distro/jlime-2009.1.conf63
-rw-r--r--conf/distro/micro.conf8
-rw-r--r--conf/distro/minimal.conf2
-rw-r--r--conf/distro/nylon.conf10
-rw-r--r--conf/distro/sharprom-compatible.conf2
-rw-r--r--conf/distro/shr.conf228
-rw-r--r--conf/machine/alix.conf2
-rw-r--r--conf/machine/ben-nanonote.conf8
-rw-r--r--conf/machine/bug.conf2
-rw-r--r--conf/machine/guinness.conf2
-rw-r--r--conf/machine/hawkboard.conf13
-rw-r--r--conf/machine/htcdream.conf3
-rw-r--r--conf/machine/iei-nanogx-466.conf30
-rw-r--r--conf/machine/include/davinci.inc4
-rw-r--r--conf/machine/include/kirkwood.inc2
-rw-r--r--conf/machine/include/omap3.inc2
-rw-r--r--conf/machine/include/tune-atom.inc8
-rw-r--r--conf/machine/ion.conf23
-rw-r--r--conf/machine/om-gta01.conf16
-rw-r--r--conf/machine/om-gta02.conf41
-rw-r--r--conf/machine/omap3-pandora.conf12
-rw-r--r--conf/machine/omap3-touchbook.conf1
-rw-r--r--conf/machine/progear.conf2
-rw-r--r--conf/machine/sgh-i900.conf23
-rw-r--r--conf/machine/simone.conf10
-rw-r--r--conf/machine/x86.conf2
-rw-r--r--conf/sanity.conf2
-rwxr-xr-xcontrib/angstrom/build-feeds.sh10
-rwxr-xr-xcontrib/angstrom/sort.sh4
-rw-r--r--contrib/angstrom/upload-packages.sh4
-rw-r--r--docs/usermanual/.gitignore2
-rw-r--r--docs/usermanual/Makefile2
-rw-r--r--docs/usermanual/chapters/getting_oe.xml28
-rw-r--r--docs/usermanual/chapters/introduction.xml2
-rw-r--r--recipes/accelges/accelges_svn.bb2
-rw-r--r--recipes/aceofpenguins/aceofpenguins-launcher_0.3.bb21
-rw-r--r--recipes/aceofpenguins/aceofpenguins_1.2.bb18
-rw-r--r--recipes/aceofpenguins/files/gcc4.patch23
-rw-r--r--recipes/addons/devshell.bb3
-rw-r--r--recipes/aircrack/aircrack-ng_1.0-svn.bb2
-rw-r--r--recipes/alsa/alsa-state.bb6
-rw-r--r--recipes/angstrom/angstrom-feed-configs.bb4
-rw-r--r--recipes/apache2/apache2-2.2.14/apr-sockets-patch10
-rw-r--r--recipes/apache2/apache2-2.2.14/apr.h.in.patch13
-rw-r--r--recipes/apache2/apache2-2.2.14/configure-patch71
-rw-r--r--recipes/apache2/apache2-2.2.14/configure.in.patch27
-rw-r--r--recipes/apache2/apache2-2.2.14/dftables-makefile-patch10
-rw-r--r--recipes/apache2/apache2-2.2.14/server-makefile-patch11
-rw-r--r--recipes/apache2/apache2-native_2.2.14.bb40
-rw-r--r--recipes/apache2/apache2_2.2.14.bb114
-rw-r--r--recipes/asciidoc/asciidoc_8.5.1.bb20
-rw-r--r--recipes/asio/asio_1.1.1.bb2
-rw-r--r--recipes/balsa/balsa-2.4.1/gnome-icon-theme.patch27
-rw-r--r--recipes/balsa/balsa_2.4.1.bb7
-rw-r--r--recipes/blackbox/blackbox_0.70.1.bb3
-rw-r--r--recipes/blipomoko/blipomoko_git.bb17
-rw-r--r--recipes/blueman/blueman_1.10.bb27
-rw-r--r--recipes/blueman/blueman_1.21.bb31
-rw-r--r--recipes/bluez/bluez4.inc16
-rw-r--r--recipes/bluez/bluez4_4.56.bb2
-rw-r--r--recipes/bluez/obexd_0.19.bb10
-rw-r--r--recipes/boost/boost-36.inc2
-rw-r--r--recipes/boost/boost_1.36.0.bb8
-rw-r--r--recipes/boost/files/01-no-serialization-test.patch12
-rw-r--r--recipes/boost/files/02-atomic-count-pthreads-on-arm.patch17
-rw-r--r--recipes/boost/files/03-exception-clone-destructor-fix.patch12
-rw-r--r--recipes/boost/files/arm-intrinsics.patch6
-rw-r--r--recipes/boost/files/gcc-44.diff304
-rw-r--r--recipes/boost/files/sscanf.patch13
-rw-r--r--recipes/bootchart-lite/bootchart-lite_svn.bb4
-rw-r--r--recipes/bt-configure/bt-configure_git.bb19
-rw-r--r--recipes/bt-gps/bt-gps.bb27
-rw-r--r--recipes/busybox/busybox_1.14.3.bb5
-rw-r--r--recipes/calibrator/calibrator_svn.bb2
-rw-r--r--recipes/callrec/callrec_svn.bb70
-rw-r--r--recipes/cdparanoia/cdparanoia/Makefile.in.patch (renamed from recipes/cdparanoia/files/Makefile.in.patch)0
-rw-r--r--recipes/cdparanoia/cdparanoia/Makefile.patch (renamed from recipes/cdparanoia/files/Makefile.patch)0
-rw-r--r--recipes/cdparanoia/cdparanoia/cdparanoia-III-10.2-privatefix.patch561
-rw-r--r--recipes/cdparanoia/cdparanoia/configure.in.patch13
-rw-r--r--recipes/cdparanoia/cdparanoia/fixes.patch (renamed from recipes/cdparanoia/files/fixes.patch)0
-rw-r--r--recipes/cdparanoia/cdparanoia/fixes10.patch (renamed from recipes/cdparanoia/files/fixes10.patch)0
-rw-r--r--recipes/cdparanoia/cdparanoia/interface_Makefile.in.patch (renamed from recipes/cdparanoia/files/interface_Makefile.in.patch)0
-rw-r--r--recipes/cdparanoia/cdparanoia/paranoia_Makefile.in.patch (renamed from recipes/cdparanoia/files/paranoia_Makefile.in.patch)0
-rw-r--r--recipes/cdparanoia/cdparanoia_10.2.bb37
-rw-r--r--recipes/cdparanoia/cdparanoia_9.8alpha.bb34
-rw-r--r--recipes/cdparanoia/cdparanoia_svn.bb7
-rw-r--r--recipes/cellhunter/cellhunter_0.5.0.bb27
-rw-r--r--recipes/chicken/chicken-4.2.0/translator-cross.patch11
-rw-r--r--recipes/chicken/chicken-cross_4.2.0.bb26
-rw-r--r--recipes/chicken/chicken-cross_4.2.10.bb27
-rw-r--r--recipes/chicken/chicken-native_4.2.0.bb7
-rw-r--r--recipes/chicken/chicken-snapshot.inc13
-rw-r--r--recipes/chicken/chicken.inc49
-rw-r--r--recipes/chicken/chicken_4.2.0.bb25
-rw-r--r--recipes/chicken/chicken_4.2.10.bb24
-rw-r--r--recipes/chromium/chromium_svn.bb2
-rw-r--r--recipes/clutter/aaina_svn.bb2
-rw-r--r--recipes/clutter/clutter-box2d_svn.bb2
-rw-r--r--recipes/clutter/clutter-cairo_svn.bb2
-rw-r--r--recipes/clutter/clutter-gst_0.4svn.bb2
-rw-r--r--recipes/clutter/clutter-gst_svn.bb2
-rw-r--r--recipes/clutter/clutter_0.4svn.bb2
-rw-r--r--recipes/clutter/clutter_0.6svn.bb2
-rw-r--r--recipes/clutter/clutter_svn.bb2
-rw-r--r--recipes/clutter/table_svn.bb2
-rw-r--r--recipes/clutter/tidy_svn.bb2
-rw-r--r--recipes/connman/mokonnect_svn.bb39
-rw-r--r--recipes/coreutils/coreutils-native.inc5
-rw-r--r--recipes/cups/cups.inc10
-rw-r--r--recipes/curl/curl-common.inc21
-rw-r--r--recipes/curl/curl-native_7.18.2.bb10
-rw-r--r--recipes/curl/curl-native_7.19.6.bb10
-rw-r--r--recipes/curl/curl-sdk_7.18.2.bb12
-rw-r--r--recipes/curl/curl_7.18.2.bb4
-rw-r--r--recipes/curl/curl_7.19.5.bb6
-rw-r--r--recipes/curl/curl_7.19.7.bb8
-rw-r--r--recipes/curl/files/curl-7.18.1-CVE-2009-2417.patch83
-rw-r--r--recipes/curl/files/curl-7.19.5-CVE-2009-2417.patch80
-rw-r--r--recipes/cwiid/cwiid_svn.bb2
-rw-r--r--recipes/dasher/dasher-gpe_0.0-svn.bb2
-rw-r--r--recipes/dbus/dbus-1.2.1/fix-install-daemon.patch42
-rw-r--r--recipes/dbus/dbus-native_1.0.3.bb2
-rw-r--r--recipes/dbus/dbus-native_1.2.1.bb5
-rw-r--r--recipes/dbus/dbus.inc7
-rw-r--r--recipes/dbus/dbus_1.2.1.bb2
-rw-r--r--recipes/detect-stylus/detect-stylus_svn.bb2
-rw-r--r--recipes/devilspie/devilspie_0.22.bb13
-rw-r--r--recipes/dfu-util/dfu-util_svn.bb2
-rw-r--r--recipes/dhcp/dhcp3.inc62
-rw-r--r--recipes/dhcp/dhcp_3.0.1.bb3
-rw-r--r--recipes/dhcp/dhcp_3.0.2.bb59
-rw-r--r--recipes/dhcp/dhcp_3.1.2p1.bb12
-rw-r--r--recipes/dhcp/files/useless-use-of-bash.patch8
-rw-r--r--recipes/di/di_4.17.bb17
-rw-r--r--recipes/dictator/dictator_0.2.bb18
-rw-r--r--recipes/disko/disko_1.6.0.bb16
-rw-r--r--recipes/disko/disko_git.bb9
-rw-r--r--recipes/disko/files/linkpath.patch15
-rw-r--r--recipes/disko/files/pkgconfig.patch28
-rw-r--r--recipes/dri/glamo-dri-tests_git.bb17
-rw-r--r--recipes/duke3d/duke3d_svn.bb2
-rw-r--r--recipes/e17/bubble-keyboard_svn.bb2
-rw-r--r--recipes/e17/diskio_svn.bb2
-rw-r--r--recipes/e17/e-tasks_svn.bb15
-rw-r--r--recipes/e17/e-wm/wizard-module-skipping.patch63
-rw-r--r--recipes/e17/e-wm_svn.bb15
-rw-r--r--recipes/e17/edje-editor_svn.bb2
-rw-r--r--recipes/e17/edje-player_svn.bb2
-rw-r--r--recipes/e17/edje-viewer_svn.bb2
-rw-r--r--recipes/e17/elementary-alarm_svn.bb2
-rw-r--r--recipes/e17/elementary-sms_svn.bb2
-rw-r--r--recipes/e17/elmdentica_svn.bb15
-rw-r--r--recipes/e17/enna_svn.bb2
-rw-r--r--recipes/e17/essential-dialer_svn.bb2
-rw-r--r--recipes/e17/eve_svn.bb18
-rw-r--r--recipes/e17/exalt-client_svn.bb2
-rw-r--r--recipes/e17/exalt_svn.bb2
-rw-r--r--recipes/e17/exhibit_svn.bb6
-rw-r--r--recipes/e17/expedite_svn.bb2
-rw-r--r--recipes/e17/exquisite-theme-illume.bb2
-rw-r--r--recipes/e17/exquisite_svn.bb2
-rw-r--r--recipes/e17/flame_svn.bb2
-rw-r--r--recipes/e17/gridpad_svn.bb2
-rw-r--r--recipes/e17/intuition_svn.bb2
-rw-r--r--recipes/e17/news_svn.bb2
-rw-r--r--recipes/e17/places_svn.bb2
-rw-r--r--recipes/e17/rage_svn.bb2
-rw-r--r--recipes/e17/rain_svn.bb2
-rw-r--r--recipes/e17/waker_svn.bb2
-rw-r--r--recipes/e2fsprogs-libs/e2fsprogs-libs.inc9
-rw-r--r--recipes/ebrainy/ebrainy_svn.bb15
-rw-r--r--recipes/eds/eds-dbus_svn.bb2
-rw-r--r--recipes/efl1/ecore.inc5
-rw-r--r--recipes/efl1/ecore/exit_uclibc.patch26
-rw-r--r--recipes/efl1/ecore/iconv.patch96
-rw-r--r--recipes/efl1/ecore_svn.bb23
-rw-r--r--recipes/efl1/edb_svn.bb2
-rw-r--r--recipes/efl1/edbus_svn.bb2
-rw-r--r--recipes/efl1/edje_svn.bb2
-rw-r--r--recipes/efl1/eet_svn.bb2
-rw-r--r--recipes/efl1/eflpp_svn.bb2
-rw-r--r--recipes/efl1/efreet_svn.bb2
-rw-r--r--recipes/efl1/eina/gnu_source.patch12
-rw-r--r--recipes/efl1/eina_svn.bb6
-rw-r--r--recipes/efl1/elementary_svn.bb7
-rw-r--r--recipes/efl1/embryo_svn.bb2
-rw-r--r--recipes/efl1/emotion_svn.bb2
-rw-r--r--recipes/efl1/engrave_svn.bb2
-rw-r--r--recipes/efl1/enhance_svn.bb2
-rw-r--r--recipes/efl1/epdf_svn.bb2
-rw-r--r--recipes/efl1/epeg_svn.bb2
-rw-r--r--recipes/efl1/epsilon_svn.bb2
-rw-r--r--recipes/efl1/esmart_svn.bb2
-rw-r--r--recipes/efl1/etk_svn.bb2
-rw-r--r--recipes/efl1/evas-native_svn.bb2
-rw-r--r--recipes/efl1/evas.inc2
-rw-r--r--recipes/efl1/evas_svn.bb1
-rw-r--r--recipes/efl1/evolve_svn.bb2
-rw-r--r--recipes/efl1/ewl_svn.bb2
-rw-r--r--recipes/efl1/exml_svn.bb2
-rw-r--r--recipes/efl1/illume-keyboard-arabic_git.bb3
-rw-r--r--recipes/efl1/illume-keyboard-browse_git.bb3
-rw-r--r--recipes/efl1/illume-keyboard-danish_git.bb3
-rw-r--r--recipes/efl1/illume-keyboard-default-alt_git.bb3
-rw-r--r--recipes/efl1/illume-keyboard-dutch_git.bb3
-rw-r--r--recipes/efl1/illume-keyboard-dvorak_git.bb3
-rw-r--r--recipes/efl1/illume-keyboard-french_git.bb3
-rw-r--r--recipes/efl1/illume-keyboard-german_git.bb3
-rw-r--r--recipes/efl1/illume-keyboard-hebrew_git.bb3
-rw-r--r--recipes/efl1/illume-keyboard-numeric-alt_git.bb3
-rw-r--r--recipes/efl1/illume-keyboard-russian-terminal_git.bb3
-rw-r--r--recipes/efl1/illume-keyboard-russian_git.bb3
-rw-r--r--recipes/efl1/imlib2_svn.bb2
-rw-r--r--recipes/efl1/libefso_svn.bb2
-rw-r--r--recipes/efl1/libeweather_svn.bb44
-rw-r--r--recipes/eglibc/eglibc-initial_2.11.bb6
-rw-r--r--recipes/eglibc/eglibc-package.bbclass10
-rw-r--r--recipes/eglibc/eglibc_2.10.bb4
-rw-r--r--recipes/eglibc/eglibc_2.11.bb100
-rw-r--r--recipes/eglibc/eglibc_2.9.bb4
-rw-r--r--recipes/eglibc/eglibc_svn.bb9
-rw-r--r--recipes/eglibc/files/armv4t-interworking.patch27
-rw-r--r--recipes/enotes/enotes_svn.bb15
-rw-r--r--recipes/erminig/erminig_3.0.3.bb20
-rw-r--r--recipes/exmap-console/exmap-console_svn.bb2
-rw-r--r--recipes/ezx/ezx-boot-usb-native_svn.bb2
-rw-r--r--recipes/ezx/ezxd_svn.bb2
-rw-r--r--recipes/fbreader/fbreader_0.10.7.bb2
-rw-r--r--recipes/ffalarms/atd-over-fso/atd-alarm-glue.patch14
-rw-r--r--recipes/ffalarms/atd-over-fso/atd-over-fso.conf.patch13
-rw-r--r--recipes/ffalarms/atd-over-fso/atd-startup-restart.patch17
-rw-r--r--recipes/ffalarms/atd-over-fso/atd-startup.patch39
-rw-r--r--recipes/ffalarms/atd-over-fso/init.d-atd-restart.patch17
-rw-r--r--recipes/ffalarms/atd-over-fso/no-oknodo.patch11
-rw-r--r--recipes/ffalarms/atd-over-fso/run-over-fso.patch505
-rw-r--r--recipes/ffalarms/atd-over-fso_0.70.bb52
-rw-r--r--recipes/ffalarms/ffalarms/shr.patch11
-rw-r--r--recipes/ffalarms/ffalarms_0.2.2.bb23
-rw-r--r--recipes/ffalarms/ffalarms_svn.bb36
-rw-r--r--recipes/ffmpeg/ffmpeg_svn.bb7
-rw-r--r--recipes/firmwares/marvell-gspi-fw_9.70.3-p37.bb1
-rw-r--r--recipes/flac/flac.inc5
-rw-r--r--recipes/flac/flac_1.1.2.bb2
-rw-r--r--recipes/flashrom/flashrom_svn.bb2
-rw-r--r--recipes/fltk/fltk2_svn.bb11
-rw-r--r--recipes/fltk/fltkclock_svn.bb14
-rw-r--r--recipes/fltk/fltkcocktailbar_svn.bb15
-rw-r--r--recipes/fltk/fltkcurrency_svn.bb16
-rw-r--r--recipes/fltk/fltkhackdiet_svn.bb15
-rw-r--r--recipes/fltk/fltkwwpointcal_svn.bb14
-rw-r--r--recipes/freesmartphone/cornucopia.inc4
-rw-r--r--recipes/freesmartphone/fso-apm_git.bb8
-rw-r--r--recipes/freesmartphone/fso-term_git.bb4
-rw-r--r--recipes/freesmartphone/fsodatad_git.bb6
-rw-r--r--recipes/freesmartphone/fsodeviced/fsodeviced40
-rw-r--r--recipes/freesmartphone/fsodeviced_git.bb22
-rw-r--r--recipes/freesmartphone/fsogsmd_git.bb2
-rw-r--r--recipes/freesmartphone/fsolocationd_git.bb (renamed from recipes/freesmartphone/fsogpsd_git.bb)2
-rw-r--r--recipes/freesmartphone/fsomusicd_git.bb20
-rw-r--r--recipes/freesmartphone/fsonetworkd_git.bb3
-rw-r--r--recipes/freesmartphone/fsoraw_svn.bb2
-rw-r--r--recipes/freesmartphone/libfsobasics_git.bb1
-rw-r--r--recipes/freesmartphone/libfsoframework_git.bb2
-rw-r--r--recipes/freesmartphone/libfsotransport_git.bb1
-rw-r--r--recipes/freesmartphone/misc-vapi_git.bb4
-rw-r--r--recipes/freespace/libfreespace_0.4.bb9
-rw-r--r--recipes/gabriel/gabriel_svn.bb2
-rw-r--r--recipes/gcc/gcc-4.3.3.inc3
-rw-r--r--recipes/gcc/gcc-4.3.3/arm-gcc-objective.patch342
-rw-r--r--recipes/gcc/gcc-configure-common.inc5
-rw-r--r--recipes/gcc/gcc-configure-cross.inc4
-rw-r--r--recipes/gcc/gcc-cross-initial.inc2
-rw-r--r--recipes/gcc/gcc-cross-intermediate.inc6
-rw-r--r--recipes/gcc/gcc-cross-sdk_4.1.2.bb2
-rw-r--r--recipes/gcc/gcc-cross-sdk_4.2.2.bb2
-rw-r--r--recipes/gcc/gcc-cross-sdk_4.2.3.bb2
-rw-r--r--recipes/gcc/gcc-cross-sdk_4.2.4.bb2
-rw-r--r--recipes/gcc/gcc-cross-sdk_4.3.1.bb2
-rw-r--r--recipes/gcc/gcc-cross-sdk_4.3.2.bb2
-rw-r--r--recipes/gcc/gcc-cross-sdk_4.3.3.bb2
-rw-r--r--recipes/gcc/gcc-cross-sdk_4.3.4.bb2
-rw-r--r--recipes/gcc/gcc-cross-sdk_4.4.1.bb2
-rw-r--r--recipes/gcc/gcc-cross-sdk_4.4.2.bb2
-rw-r--r--recipes/gcc/gcc-cross-sdk_csl-arm-2007q3.bb2
-rw-r--r--recipes/gcc/gcc-cross-sdk_svn.bb2
-rw-r--r--recipes/gcc/gcc-cross.inc1
-rw-r--r--recipes/gcc/gcc-cross_4.1.0.bb2
-rw-r--r--recipes/gcc/gcc-cross_4.1.1.bb2
-rw-r--r--recipes/gcc/gcc-cross_4.1.2.bb4
-rw-r--r--recipes/gcc/gcc-cross_4.2.1.bb4
-rw-r--r--recipes/gcc/gcc-cross_4.2.2.bb4
-rw-r--r--recipes/gcc/gcc-cross_4.2.3.bb4
-rw-r--r--recipes/gcc/gcc-cross_4.2.4.bb4
-rw-r--r--recipes/gcc/gcc-cross_4.3.1.bb4
-rw-r--r--recipes/gcc/gcc-cross_4.3.2.bb4
-rw-r--r--recipes/gcc/gcc-cross_4.3.3.bb4
-rw-r--r--recipes/gcc/gcc-cross_4.3.4.bb4
-rw-r--r--recipes/gcc/gcc-cross_4.4.1.bb4
-rw-r--r--recipes/gcc/gcc-cross_4.4.2.bb4
-rw-r--r--recipes/gcc/gcc-cross_csl-arm-2007q3.bb8
-rw-r--r--recipes/gcc/gcc-cross_csl-arm-2008q1.bb8
-rw-r--r--recipes/gcc/gcc-cross_csl-arm-2008q3.bb8
-rw-r--r--recipes/gcc/gcc-cross_svn.bb4
-rw-r--r--recipes/gcc/gcc-native.inc2
-rw-r--r--recipes/gcc/gcc-package-target.inc8
-rw-r--r--recipes/gcc/gcc-svn.inc2
-rw-r--r--recipes/gcc/mingw-gcc-build.inc2
-rw-r--r--recipes/gdb/gdb_7.0.bb3
-rw-r--r--recipes/gimp/babl_svn.bb2
-rw-r--r--recipes/gimp/gegl_svn.bb2
-rw-r--r--recipes/glew/files/autotools.patch146
-rw-r--r--recipes/glew/libglew_1.5.1.bb17
-rw-r--r--recipes/glibc/glibc-2.10.1/glibc-2.9-enable-binutils-2.2.patch35
-rw-r--r--recipes/glibc/glibc-initial_2.10.1.bb6
-rw-r--r--recipes/glibc/glibc-package.inc89
-rw-r--r--recipes/glibc/glibc_2.10.1.bb151
-rw-r--r--recipes/glibc/glibc_2.2.5.bb2
-rw-r--r--recipes/glibc/glibc_2.3.2+cvs20040726.bb2
-rw-r--r--recipes/glibc/glibc_2.3.2.bb2
-rw-r--r--recipes/glibc/glibc_2.3.3+cvs20041128.bb2
-rw-r--r--recipes/glibc/glibc_2.3.3+cvs20050221.bb2
-rw-r--r--recipes/glibc/glibc_2.3.3+cvs20050420.bb2
-rw-r--r--recipes/glibc/glibc_2.3.3.bb2
-rw-r--r--recipes/glibc/glibc_2.3.5+cvs20050627.bb2
-rw-r--r--recipes/glibc/glibc_2.3.6.bb2
-rw-r--r--recipes/glibc/glibc_2.4.bb2
-rw-r--r--recipes/glibc/glibc_2.5.bb2
-rw-r--r--recipes/glibc/glibc_2.6.1.bb2
-rw-r--r--recipes/glibc/glibc_2.7.bb2
-rw-r--r--recipes/glibc/glibc_2.9.bb2
-rw-r--r--recipes/glibc/glibc_cvs.bb2
-rw-r--r--recipes/gnet/gnet_svn.bb2
-rw-r--r--recipes/gnome-mplayer/gecko-mediaplayer/extensions/flash@alwaysinnovating.com/chrome/content/ai-flash.js51
-rw-r--r--recipes/gnome-mplayer/gecko-mediaplayer_0.9.8.bb15
-rw-r--r--recipes/gnome-mplayer/gnome-mplayer_0.9.8.bb2
-rw-r--r--recipes/gnome-mplayer/gnome-mplayer_svn.bb4
-rw-r--r--recipes/gnome/epiphany_svn.bb2
-rw-r--r--recipes/gnome/gconf-dbus_svn.bb2
-rw-r--r--recipes/gnome/gconfmm_2.28.0.bb5
-rw-r--r--recipes/gnome/gdm-2.28.1/%gconf-tree.xml (renamed from recipes/gnome/gdm-2.28.0/%gconf-tree.xml)0
-rw-r--r--recipes/gnome/gdm-2.28.1/cross-xdetection.diff (renamed from recipes/gnome/gdm-2.28.0/cross-xdetection.diff)0
-rwxr-xr-xrecipes/gnome/gdm-2.28.1/gdm (renamed from recipes/gnome/gdm-2.28.0/gdm)11
-rw-r--r--recipes/gnome/gdm-2.28.1/gdm-nodocs.patch (renamed from recipes/gnome/gdm-2.28.0/gdm-nodocs.patch)0
-rw-r--r--recipes/gnome/gdm-2.28.1/gdm-pam (renamed from recipes/gnome/gdm-2.28.0/gdm-pam)0
-rw-r--r--recipes/gnome/gdm-2.28.1/gdm.conf (renamed from recipes/gnome/gdm-2.28.0/gdm.conf)0
-rw-r--r--recipes/gnome/gdm-2.28.1/other (renamed from recipes/gnome/gdm-2.28.0/other)0
-rw-r--r--recipes/gnome/gdm_2.28.1.bb (renamed from recipes/gnome/gdm_2.28.0.bb)10
-rw-r--r--recipes/gnome/gnome-games_2.24.0.bb11
-rw-r--r--recipes/gnome/gnome-icon-theme_1.3.3.bb11
-rw-r--r--recipes/gnome/gnome-icon-theme_2.22.0.bb12
-rw-r--r--recipes/gnome/gnome-icon-theme_2.24.0.bb29
-rw-r--r--recipes/gnome/gnome-icon-theme_2.26.0.bb13
-rw-r--r--recipes/gnome/gnome-icon-theme_2.28.0.bb9
-rw-r--r--recipes/gnome/gnome-system-monitor_2.28.0.bb4
-rw-r--r--recipes/gnome/gnome-system-tools_2.27.1.bb2
-rw-r--r--recipes/gnome/gnome-terminal_2.28.0.bb2
-rw-r--r--recipes/gnome/gnome-themes_2.22.2.bb31
-rw-r--r--recipes/gnome/gnome-themes_2.24.0.bb31
-rw-r--r--recipes/gnome/gnome-themes_2.6.2.bb31
-rw-r--r--recipes/gnome/goffice/c99math.patch12
-rw-r--r--recipes/gnome/goffice_0.7.14.bb4
-rw-r--r--recipes/gnome/libgsf_1.14.16.bb2
-rw-r--r--recipes/gnome/system-tools-backends_2.6.1.bb1
-rw-r--r--recipes/gnuradio/gnuradio_git.bb16
-rw-r--r--recipes/gnutls/gnutls-native_2.4.2.bb4
-rw-r--r--recipes/gob2/gob2_2.0.14.bb2
-rw-r--r--recipes/gpe-bootsplash/files/no-strip-on-install.patch11
-rw-r--r--recipes/gpe-bootsplash/gpe-bootsplash_1.13.bb6
-rw-r--r--recipes/gpe-bootsplash/gpe-bootsplash_1.14.bb6
-rw-r--r--recipes/gpe-bootsplash/gpe-bootsplash_1.15.bb6
-rw-r--r--recipes/gpe-conf/gpe-conf_svn.bb2
-rw-r--r--recipes/gpe-contacts/gpe-contacts_svn.bb2
-rw-r--r--recipes/gpe-gallery/gpe-gallery_svn.bb2
-rw-r--r--recipes/gpe-mini-browser/gpe-mini-browser2_svn.bb2
-rw-r--r--recipes/gpe-sketchbook/gpe-sketchbook_0.2.9.bb3
-rw-r--r--recipes/gpe-sketchbook/gpe-sketchbook_svn.bb2
-rw-r--r--recipes/gphoto2/gphoto2_2.4.7.bb15
-rw-r--r--recipes/gphoto2/libgphoto2_2.4.7.bb25
-rw-r--r--recipes/gpsd/gpsd.inc8
-rw-r--r--recipes/gpsd/gpsd_2.38.bb2
-rw-r--r--recipes/grun/grun_0.9.3.bb20
-rw-r--r--recipes/gsm/gsmd.inc2
-rw-r--r--recipes/gstreamer/gst-plugins-base_0.10.25.bb4
-rw-r--r--recipes/gstreamer/gst-plugins-good_0.10.15.bb4
-rw-r--r--recipes/gtk-engines/gtk-sato-engine_svn.bb2
-rw-r--r--recipes/gtk-webcore/midori/config4
-rw-r--r--recipes/gtk-webcore/midori/ua-iphone-0.1.10.patch34
-rw-r--r--recipes/gtk-webcore/midori_0.1.10.bb13
-rw-r--r--recipes/gtk-webcore/midori_0.2.1.bb38
-rw-r--r--recipes/gtk-webcore/midori_git.bb2
-rw-r--r--recipes/gtk-webcore/osb-browser_svn.bb2
-rw-r--r--recipes/gtk-webcore/osb-jscore_svn.bb2
-rw-r--r--recipes/gtk-webcore/osb-nrcit_svn.bb2
-rw-r--r--recipes/gtk-webcore/osb-nrcore_svn.bb2
-rw-r--r--recipes/gtkhtml2/gtkhtml2_svn.bb2
-rw-r--r--recipes/guile/files/cpp-linemarkers.patch8
-rw-r--r--recipes/guile/guile-native.inc120
-rw-r--r--recipes/guile/guile-native_1.8.5.bb1
-rw-r--r--recipes/guile/guile-native_1.8.6.bb1
-rw-r--r--recipes/guile/guile-native_1.8.7.bb5
-rw-r--r--recipes/guile/guile_1.8.7.bb6
-rw-r--r--recipes/gypsy/gypsy_svn.bb2
-rw-r--r--recipes/helloworld/helloworld_1.0.0.bb5
-rw-r--r--recipes/help2man/help2man_1.36.4.bb22
-rw-r--r--recipes/icu/icu_3.6.bb8
-rw-r--r--recipes/images/shr-image.bb30
-rw-r--r--recipes/images/shr-image.inc158
-rw-r--r--recipes/images/shr-image/boot/append-GTA022
-rw-r--r--recipes/images/shr-image/etc/htoprc21
-rw-r--r--recipes/images/shr-image/etc/logrotate.d/50freesmartphone11
-rwxr-xr-xrecipes/images/shr-image/etc/profile.d/elementary.sh4
-rw-r--r--recipes/images/shr-lite-image.bb5
-rw-r--r--recipes/images/shr-lite-image/boot/append-GTA022
-rw-r--r--recipes/images/shr-lite-image/etc/htoprc21
-rw-r--r--recipes/images/shr-lite-image/etc/logrotate.d/50freesmartphone11
-rwxr-xr-xrecipes/images/shr-lite-image/etc/profile.d/elementary.sh4
-rw-r--r--recipes/inkscape/inkscape_0.47.bb16
-rw-r--r--recipes/intone-video/intone-video_svn.bb37
-rw-r--r--recipes/intone/intone/vorbis-include-id3tag.patch23
-rw-r--r--recipes/intone/intone_svn.bb39
-rw-r--r--recipes/irrlicht/irrlicht-examples-gles.bb2
-rw-r--r--recipes/jack/jack_0.116.2.bb9
-rw-r--r--recipes/jamvm/jamvm-initial_1.5.0.bb2
-rw-r--r--recipes/kde4/kde4.inc2
-rw-r--r--recipes/kexec/files/kexec-tools-2-arm-add-uImage.patch271
-rw-r--r--recipes/kexec/kexec-tools-klibc-static_1.101.bb6
-rw-r--r--recipes/kexec/kexec-tools-klibc-static_2.0.1.bb2
-rw-r--r--recipes/kexec/kexec-tools2.inc1
-rw-r--r--recipes/kexec/kexec-tools_2.0.1.bb2
-rw-r--r--recipes/kexecboot/files/angstrom/icon.xpm39
-rw-r--r--recipes/kexecboot/files/icon.xpm43
-rw-r--r--recipes/kexecboot/kexecboot-0.4/add-reboot-option.patch41
-rw-r--r--recipes/kexecboot/kexecboot-0.4/add-sleep.patch12
-rw-r--r--recipes/kexecboot/kexecboot-0.4/fb-render-16bit.patch21
-rw-r--r--recipes/kexecboot/kexecboot-0.4/graphical-no-devices.patch20
-rw-r--r--recipes/kexecboot/kexecboot-0.4/kexecboot-tosa.patch24
-rw-r--r--recipes/kexecboot/kexecboot-0.4/scan_devices-top.patch39
-rw-r--r--recipes/kexecboot/kexecboot-0.4/silent-output-hack.patch79
-rw-r--r--recipes/kexecboot/kexecboot-0.4/switch-cursor-off.patch11
-rw-r--r--recipes/kexecboot/kexecboot-cfg_0.1.bb38
-rw-r--r--recipes/kexecboot/kexecboot_0.4.bb13
-rw-r--r--recipes/kexecboot/kexecboot_0.5.bb5
-rw-r--r--recipes/kexecboot/kexecboot_git.bb16
-rw-r--r--recipes/kismet/kismet-newcore_svn.bb2
-rw-r--r--recipes/kismet/kismet_svn.bb2
-rw-r--r--recipes/klibc/klibc-1.5.15/signal-cleanup.patch22
-rw-r--r--recipes/klibc/klibc_1.5.15.bb2
-rw-r--r--recipes/lame/lame-3.98.2/ldflags-qa.patch43
-rw-r--r--recipes/lame/lame-3.98.2/no-gtk1.patch18
-rw-r--r--recipes/lame/lame/ldflags-qa.patch43
-rw-r--r--recipes/lame/lame_3.96.1.bb5
-rw-r--r--recipes/lame/lame_3.98.2.bb26
-rw-r--r--recipes/libacpi/files/makefile-fix.patch45
-rw-r--r--recipes/libacpi/libacpi_0.2.bb19
-rw-r--r--recipes/libdiscid/libdiscid.inc14
-rw-r--r--recipes/libdiscid/libdiscid_0.2.2.bb1
-rw-r--r--recipes/libdvb/files/gcc4.patch11
-rw-r--r--recipes/libdvb/files/ldflags.patch27
-rw-r--r--recipes/libdvb/libdvb_0.5.5.1.bb6
-rw-r--r--recipes/libfakekey/libfakekey_svn.bb2
-rw-r--r--recipes/libical/libical_0.44.bb15
-rw-r--r--recipes/libnl/libnl2_git.bb20
-rw-r--r--recipes/libogg/libogg.inc11
-rw-r--r--recipes/libogg/libogg_1.0.bb18
-rw-r--r--recipes/libogg/libogg_1.1.3.bb17
-rw-r--r--recipes/libogg/libogg_1.1.4.bb4
-rw-r--r--recipes/libogg/libogg_1.1.bb19
-rw-r--r--recipes/libogg/libtheora_1.0.bb23
-rw-r--r--recipes/libowl/libowl_svn.bb2
-rw-r--r--recipes/libpar2/libpar2_0.2.bb10
-rw-r--r--recipes/libpng/libpng-native_1.2.40.bb4
-rw-r--r--recipes/libpng/libpng_1.2.40.bb14
-rw-r--r--recipes/librfid/librfid_svn.bb2
-rw-r--r--recipes/librsvg/librsvg-native_2.26.0.bb10
-rw-r--r--recipes/libsdl/libsdl-mixer/fix-flac-madness.diff28
-rw-r--r--recipes/libsdl/libsdl-mixer_1.2.10.bb23
-rw-r--r--recipes/libsdl/libsdl-mixer_1.2.11.bb27
-rw-r--r--recipes/libsdl/libsdl-native_1.2.14.bb37
-rw-r--r--recipes/libsdl/libsdl-x11_1.2.14.bb51
-rw-r--r--recipes/libtheora/libtheora-1.0/libtheora-1.0-no-docs.patch (renamed from recipes/libogg/libtheora-1.0/libtheora-1.0-no-docs.patch)0
-rw-r--r--recipes/libtheora/libtheora-1.1.1/no-docs.patch13
-rw-r--r--recipes/libtheora/libtheora.inc17
-rw-r--r--recipes/libtheora/libtheora_0.9+1.0alpha7.bb (renamed from recipes/libogg/libtheora_0.9+1.0alpha7.bb)0
-rw-r--r--recipes/libtheora/libtheora_1.0.bb6
-rw-r--r--recipes/libtheora/libtheora_1.1.1.bb6
-rw-r--r--recipes/libtool/libtool-cross_1.5.10.bb16
-rw-r--r--recipes/libtool/libtool-cross_1.5.22.bb16
-rw-r--r--recipes/libtool/libtool-cross_1.5.24.bb16
-rw-r--r--recipes/libtool/libtool-cross_2.2.4.bb18
-rw-r--r--recipes/libtool/libtool-cross_2.2.6a.bb18
-rw-r--r--recipes/libusb/libusb1_1.0.4.bb11
-rw-r--r--recipes/libvorbis/libvorbis-1.2.3/configure_powerpc-no-fixed-cpu.patch15
-rw-r--r--recipes/libvorbis/libvorbis.inc19
-rw-r--r--recipes/libvorbis/libvorbis_1.0.1.bb32
-rw-r--r--recipes/libvorbis/libvorbis_1.2.0.bb32
-rw-r--r--recipes/libvorbis/libvorbis_1.2.3.bb11
-rw-r--r--recipes/libw100/libw100_svn.bb2
-rw-r--r--recipes/libxosd/libxosd_svn.bb2
-rw-r--r--recipes/linphone/linphone-3.1.0/preferences-segv.patch11
-rw-r--r--recipes/linphone/linphone_3.1.0.bb82
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers_2.6.25.bb5
-rw-r--r--recipes/linux/linux-2.6.24/hipox/defconfig11
-rw-r--r--recipes/linux/linux-2.6.24/hipox/hipox-OXE-INT2.patch188
-rw-r--r--recipes/linux/linux-2.6.24/hipox/hipox-rtc.patch650
-rw-r--r--recipes/linux/linux-2.6.24/smartq5/base/0001-Apply-samsung-kernel-patch.patch336089
-rw-r--r--recipes/linux/linux-2.6.24/smartq5/base/0002-Apply-smartq-patch.patch94756
-rw-r--r--recipes/linux/linux-2.6.24/smartq5/defconfig1624
-rw-r--r--recipes/linux/linux-2.6.24/smartq5/mer/0001-Mer-keymappings-change.patch66
-rw-r--r--recipes/linux/linux-2.6.24/smartq5/mer/0002-no-DM9000.patch25
-rw-r--r--recipes/linux/linux-2.6.24/smartq5/mer/0003-Mer-WPA-fix.patch27
-rw-r--r--recipes/linux/linux-2.6.24/smartq5/mer/0004-Mer-hardwire-USB-OTG-gadget-type.patch25
-rw-r--r--recipes/linux/linux-2.6.24/smartq5/mer/0005-backlight-parameter-and-fixes.patch67
-rw-r--r--recipes/linux/linux-2.6.24/smartq5/mer/0006-tv-encoder.patch2624
-rw-r--r--recipes/linux/linux-2.6.24/smartq5/mer/0007-make-tv-encoder-scaler-compile.patch5208
-rw-r--r--recipes/linux/linux-2.6.24/smartq5/mer/0008-build-TV-by-default.patch136
-rw-r--r--recipes/linux/linux-2.6.24/smartq5/mer/0009-Apply-cpufreq-patch-from-gqwang.patch113
-rw-r--r--recipes/linux/linux-2.6.24/smartq5/mer/0010-Better-compatibility-with-some-memory-chips.patch77
-rw-r--r--recipes/linux/linux-2.6.24/smartq5/mer/0011-Only-reserve-memory-for-TV-if-CONFIG_VIDEO_SAMSUNG_T.patch32
-rw-r--r--recipes/linux/linux-2.6.24/smartq5/mer/0012-Disable-TV-out-to-save-RAM.patch100
-rw-r--r--recipes/linux/linux-2.6.24/smartq5/smartq-gitupdate.diff8974
-rw-r--r--recipes/linux/linux-2.6.31/0001-Squashfs-move-zlib-decompression-wrapper-code-into.patch255
-rw-r--r--recipes/linux/linux-2.6.31/0002-Squashfs-Factor-out-remaining-zlib-dependencies-int.patch348
-rw-r--r--recipes/linux/linux-2.6.31/0003-Squashfs-add-a-decompressor-framework.patch442
-rw-r--r--recipes/linux/linux-2.6.31/0004-Squashfs-add-decompressor-entries-for-lzma-and-lzo.patch61
-rw-r--r--recipes/linux/linux-2.6.31/0005-Squashfs-add-an-extra-parameter-to-the-decompressor.patch49
-rw-r--r--recipes/linux/linux-2.6.31/0006-Squashfs-add-LZMA-compression.patch229
-rw-r--r--recipes/linux/linux-2.6.31/0007-Squashfs-Make-unlzma-available-to-non-initramfs-ini.patch186
-rw-r--r--recipes/linux/linux-2.6.31/ben-nanonote/001-core.patch661
-rw-r--r--recipes/linux/linux-2.6.31/ben-nanonote/050-nand.patch68
-rw-r--r--recipes/linux/linux-2.6.31/ben-nanonote/051-fb.patch28
-rw-r--r--recipes/linux/linux-2.6.31/ben-nanonote/052-rtc.patch30
-rw-r--r--recipes/linux/linux-2.6.31/ben-nanonote/053-adc.patch29
-rw-r--r--recipes/linux/linux-2.6.31/ben-nanonote/100-battery.patch25
-rw-r--r--recipes/linux/linux-2.6.31/ben-nanonote/101-mmc.patch28
-rw-r--r--recipes/linux/linux-2.6.31/ben-nanonote/102-video.patch134
-rw-r--r--recipes/linux/linux-2.6.31/ben-nanonote/103-lcm.patch26
-rw-r--r--recipes/linux/linux-2.6.31/ben-nanonote/103-serial.patch164
-rw-r--r--recipes/linux/linux-2.6.31/ben-nanonote/104-usb.patch158
-rw-r--r--recipes/linux/linux-2.6.31/ben-nanonote/105-sound.patch103
-rw-r--r--recipes/linux/linux-2.6.31/ben-nanonote/220-add-2gb-nand-support.patch11
-rw-r--r--recipes/linux/linux-2.6.31/ben-nanonote/300-jffs2-summery-vmalloc.patch20
-rw-r--r--recipes/linux/linux-2.6.31/ben-nanonote/400-spi-gpio-3wire.patch37
-rw-r--r--recipes/linux/linux-2.6.31/ben-nanonote/410-soc-32bit-regs.patch241
-rw-r--r--recipes/linux/linux-2.6.31/ben-nanonote/500-modifier-keys.patch170
-rw-r--r--recipes/linux/linux-2.6.31/ben-nanonote/900-add-openwrt-logo.patch9716
-rw-r--r--recipes/linux/linux-2.6.31/ben-nanonote/defconfig1283
-rw-r--r--recipes/linux/linux-2.6.31/ben-nanonote/files.patch20506
-rw-r--r--recipes/linux/linux-2.6.31/ben-nanonote/fix_mips_vmlinux.lds.patch24
-rw-r--r--recipes/linux/linux-2.6.31/boc01/005-091110-isl12024.patch (renamed from recipes/linux/linux-2.6.31/boc01/005-091103-isl12024.patch)72
-rw-r--r--recipes/linux/linux-2.6.31/iei-nanogx-466/defconfig1688
-rw-r--r--recipes/linux/linux-2.6.31/ion/defconfig3295
-rw-r--r--recipes/linux/linux-2.6.32/ep93xx/edb9301-fix-machine-id.patch19
-rw-r--r--recipes/linux/linux-2.6.32/ep93xx/ep93xx-cpuinfo.patch43
-rw-r--r--recipes/linux/linux-2.6.32/ep93xx/ep93xx-dma.patch3641
-rw-r--r--recipes/linux/linux-2.6.32/ep93xx/ep93xx-eth.patch2718
-rw-r--r--recipes/linux/linux-2.6.32/ep93xx/ep93xx-i2c.patch234
-rw-r--r--recipes/linux/linux-2.6.32/ep93xx/ep93xx-regs.patch490
-rw-r--r--recipes/linux/linux-2.6.32/ep93xx/ep93xx-snd-ac97.patch3829
-rw-r--r--recipes/linux/linux-2.6.32/ep93xx/ep93xx-spi.patch721
-rw-r--r--recipes/linux/linux-2.6.32/ep93xx/ep93xx-touchscreen.patch1320
-rw-r--r--recipes/linux/linux-2.6.32/ep93xx/series7
-rw-r--r--recipes/linux/linux-2.6.32/ep93xx/simone-board-def.patch1653
-rw-r--r--recipes/linux/linux-bfin_svn.bb2
-rw-r--r--recipes/linux/linux-bug_2.6.27.2.bb5
-rw-r--r--recipes/linux/linux-davinci/da830-omapl137-evm/defconfig720
-rw-r--r--recipes/linux/linux-davinci/da850-omapl138-evm/defconfig711
-rw-r--r--recipes/linux/linux-davinci/dm355-evm/defconfig181
-rw-r--r--recipes/linux/linux-davinci/dm365-evm/defconfig178
-rw-r--r--recipes/linux/linux-davinci/dm6446-evm/defconfig264
-rw-r--r--recipes/linux/linux-davinci/dm6467-evm/defconfig371
-rw-r--r--recipes/linux/linux-davinci/dm6467t-evm/defconfig366
-rw-r--r--recipes/linux/linux-davinci/hawkboard/defconfig1712
-rw-r--r--recipes/linux/linux-davinci/hawkboard/patch_hawk.diff196
-rw-r--r--recipes/linux/linux-davinci_git.bb54
-rw-r--r--recipes/linux/linux-ixp4xx_2.6.18.bb2
-rw-r--r--recipes/linux/linux-ixp4xx_2.6.19.bb2
-rw-r--r--recipes/linux/linux-ixp4xx_2.6.20.bb2
-rw-r--r--recipes/linux/linux-ixp4xx_2.6.21.7.bb2
-rw-r--r--recipes/linux/linux-ixp4xx_2.6.23.14.bb4
-rw-r--r--recipes/linux/linux-ixp4xx_2.6.24.7.bb4
-rw-r--r--recipes/linux/linux-ixp4xx_2.6.27.8.bb4
-rw-r--r--recipes/linux/linux-ixp4xx_2.6.29.bb4
-rw-r--r--recipes/linux/linux-kirkwood/0003-ARM-Kirkwood-Sound-Sound-driver-added.patch3514
-rw-r--r--recipes/linux/linux-kirkwood/cpuidle-reenable-interrupts.patch19
-rw-r--r--recipes/linux/linux-kirkwood_2.6.31.bb14
-rw-r--r--recipes/linux/linux-kirkwood_2.6.32-rc4.bb2
-rw-r--r--recipes/linux/linux-mtx-1-2.4.27/49-bash4-configure.patch11
-rw-r--r--recipes/linux/linux-mtx-1_2.4.27.bb1
-rw-r--r--recipes/linux/linux-mtx-2-2.4.27/49-bash4-configure.patch11
-rw-r--r--recipes/linux/linux-mtx-2_2.4.27.bb1
-rw-r--r--recipes/linux/linux-omap-2.6.29/musb/0030-musb-fifo.patch26
-rw-r--r--recipes/linux/linux-omap-2.6.29/overo/defconfig62
-rw-r--r--recipes/linux/linux-omap-2.6.29/smsc/smsc911x-1.patch71
-rw-r--r--recipes/linux/linux-omap-2.6.29/smsc/smsc911x-2.patch33
-rw-r--r--recipes/linux/linux-omap-2.6.29/smsc/smsc911x-3.patch152
-rw-r--r--recipes/linux/linux-omap-2.6.29/smsc/smsc911x-4.patch93
-rw-r--r--recipes/linux/linux-omap-2.6.32/beagleboard/defconfig2870
-rw-r--r--recipes/linux/linux-omap-2.6.32/usb/ehci-omap.c-mach-to-plat.diff12
-rw-r--r--recipes/linux/linux-omap-2.6.32/usb/ehci.patch46
-rw-r--r--recipes/linux/linux-omap-pm-2.6.29/omap3-touchbook/board-omap3beagle.c744
-rw-r--r--recipes/linux/linux-omap-pm-2.6.29/omap3-touchbook/defconfig8
-rw-r--r--recipes/linux/linux-omap-pm-2.6.29/omap3-touchbook/touchbook-sound.diff18
-rw-r--r--recipes/linux/linux-omap-pm_2.6.29.bb1
-rw-r--r--recipes/linux/linux-omap_2.6.29.bb5
-rw-r--r--recipes/linux/linux-omap_2.6.32.bb32
-rw-r--r--recipes/linux/linux-openmoko-2.6.31/0001-DRM-for-platform-devices.patch458
-rw-r--r--recipes/linux/linux-openmoko-2.6.31/0001-gta02_defconfig-Enable-GLAMO_DRM.patch37
-rw-r--r--recipes/linux/linux-openmoko-2.6.31/0001-wm8753-fix-build-with-gcc-4.4.2-which-works-ok-with-.patch27
-rw-r--r--recipes/linux/linux-openmoko-2.6.31/0002-Glamo-DRM-and-KMS-driver.patch3818
-rw-r--r--recipes/linux/linux-openmoko-2.6.31/0003-Work-on-Glamo-core-for-DRM.patch252
-rw-r--r--recipes/linux/linux-openmoko-2.6.31/0004-Add-JBT6k74-hook-for-use-by-KMS.patch49
-rw-r--r--recipes/linux/linux-openmoko-2.6.31/0004-gta02_defconfig-Enable-UBI-support.patch67
-rw-r--r--recipes/linux/linux-openmoko-2.6.31/0005-gta02_defconfig-Enable-UBI-debug.patch88
-rw-r--r--recipes/linux/linux-openmoko-2.6.31/0006-gta02-defconfig-enable-NFS-and-INOTIFY_USER.patch124
-rw-r--r--recipes/linux/linux-openmoko-2.6.31_git.bb36
-rw-r--r--recipes/linux/linux-openmoko-shr-devel/0007-Enable-UBI-UBIFS.patch81
-rw-r--r--recipes/linux/linux-openmoko-shr-devel/fix-install.patch23
-rw-r--r--recipes/linux/linux-openmoko-shr-devel_git.bb26
-rw-r--r--recipes/linux/linux-openmoko-shr-drm-devel/0001-Add-drm-to-Makefile-version.patch25
-rw-r--r--recipes/linux/linux-openmoko-shr-drm-devel/0001-Fix-s3c-adc-suspend.patch128
-rw-r--r--recipes/linux/linux-openmoko-shr-drm-devel/0002-GTA01-GTA02-disable-android-drivers-in-default-confi.patch154
-rw-r--r--recipes/linux/linux-openmoko-shr-drm-devel/0003-glamo-spi-missing-semicolon-after-MODULE_AUTHOR.patch39
-rw-r--r--recipes/linux/linux-openmoko-shr-drm-devel/0004-gta02_drm_defconfig-start-from-gta02_packaging_defco.patch129
-rw-r--r--recipes/linux/linux-openmoko-shr-drm-devel/0005-Enable-DRM-and-MFD_GLAMO_DRM.patch51
-rw-r--r--recipes/linux/linux-openmoko-shr-drm-devel/0006-Enable-I2C_ALGOBIT-from-make-oldconfig.patch33
-rw-r--r--recipes/linux/linux-openmoko-shr-drm-devel/0007-Enable-UBI-UBIFS.patch90
-rw-r--r--recipes/linux/linux-openmoko-shr-drm-devel/fix-install.patch23
-rw-r--r--recipes/linux/linux-openmoko-shr-drm-devel_git.bb34
-rw-r--r--recipes/linux/linux-openmoko.inc2
-rw-r--r--recipes/linux/linux-replicant/htcblackstone/defconfig1139
-rw-r--r--recipes/linux/linux-replicant/htcdiamond/defconfig1130
-rw-r--r--recipes/linux/linux-replicant/htcdream/defconfig1671
-rw-r--r--recipes/linux/linux-replicant/htcdream/msm_snd.patch3160
-rw-r--r--recipes/linux/linux-replicant/htcdream/msm_wifi.patch136
-rw-r--r--recipes/linux/linux-replicant/htckaiser/defconfig1026
-rw-r--r--recipes/linux/linux-replicant/htcnike/defconfig1009
-rw-r--r--recipes/linux/linux-replicant/htcpolaris/defconfig1009
-rw-r--r--recipes/linux/linux-replicant/htcraphael/defconfig1173
-rw-r--r--recipes/linux/linux-replicant/htctitan/defconfig1009
-rw-r--r--recipes/linux/linux-replicant/htcvogue/defconfig1026
-rw-r--r--recipes/linux/linux-replicant_git.bb28
-rw-r--r--recipes/linux/linux-rp-2.6.26/defconfig-akita49
-rw-r--r--recipes/linux/linux-rp-2.6.26/defconfig-spitz49
-rw-r--r--recipes/linux/linux-rp_2.6.26.bb2
-rw-r--r--recipes/linux/linux-sgh-i900/sgh_i900_defconfig1583
-rw-r--r--recipes/linux/linux-sgh-i900/wm97xx-ts-fix.patch130
-rw-r--r--recipes/linux/linux-sgh-i900_2.6.29.bb21
-rw-r--r--recipes/linux/linux.inc3
-rw-r--r--recipes/linux/linux/simone/defconfig1751
-rw-r--r--recipes/linux/linux_2.6.24.bb27
-rw-r--r--recipes/linux/linux_2.6.31.bb41
-rw-r--r--recipes/linux/linux_2.6.32.bb26
-rw-r--r--recipes/llvm/llvm-gcc4-cross_svn.bb2
-rw-r--r--recipes/llvm/llvm-gcc4_svn.bb2
-rw-r--r--recipes/llvm/llvm2.6/BX_to_BLX.patch13
-rw-r--r--recipes/llvm/llvm2.6_2.6.bb3
-rw-r--r--recipes/llvm/llvm2.7-native_2.6+svnr20091007.bb (renamed from recipes/llvm/llvm2.7-native_2.6+svnr20090916.bb)4
-rw-r--r--recipes/llvm/llvm2.7/BX_to_BLX.patch13
-rw-r--r--recipes/llvm/llvm2.7_2.6+svnr20091007.bb (renamed from recipes/llvm/llvm2.7_2.6+svnr20090916.bb)7
-rw-r--r--recipes/ltrace/files/ltrace-compile.patch2
-rw-r--r--recipes/ltrace/files/ltrace-ppc.patch11
-rw-r--r--recipes/ltrace/ltrace_0.4.bb65
-rw-r--r--recipes/ltrace/ltrace_0.5.3.bb24
-rw-r--r--recipes/lzma/lzma.inc11
-rw-r--r--recipes/maemo-mapper/maemo-mapper_svn.bb2
-rw-r--r--recipes/matchbox-config-gtk/matchbox-config-gtk_svn.bb2
-rw-r--r--recipes/matchbox-desktop-sato/matchbox-desktop-sato_svn.bb2
-rw-r--r--recipes/matchbox-keyboard/matchbox-keyboard-inputmethod_svn.bb2
-rw-r--r--recipes/matchbox-keyboard/matchbox-keyboard_svn.bb2
-rw-r--r--recipes/matchbox-panel/matchbox-panel_svn.bb2
-rw-r--r--recipes/matchbox-stroke/matchbox-stroke_svn.bb2
-rw-r--r--recipes/matchbox-terminal/matchbox-terminal_svn.bb2
-rw-r--r--recipes/matchbox-themes-extra/matchbox-theme-sato_svn.bb2
-rw-r--r--recipes/matchbox2/matchbox-desktop-2_svn.bb2
-rw-r--r--recipes/matchbox2/matchbox-panel-2-icon-themes_0.0.1.bb5
-rw-r--r--recipes/matchbox2/matchbox-panel-2_svn.bb2
-rw-r--r--recipes/matchbox2/matchbox-wm-2_svn.bb2
-rw-r--r--recipes/meta/meta-toolchain-qte.bb22
-rw-r--r--recipes/meta/meta-toolchain.bb109
-rw-r--r--recipes/meta/slugos-packages.bb3
-rw-r--r--recipes/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb10
-rw-r--r--recipes/module-init-tools/module-init-tools-cross_3.2.2.bb4
-rw-r--r--recipes/module-init-tools/module-init-tools.inc25
-rw-r--r--recipes/module-init-tools/module-init-tools_3.2.1.bb18
-rw-r--r--recipes/module-init-tools/module-init-tools_3.2.2.bb25
-rw-r--r--recipes/module-init-tools/module-init-tools_3.4.bb19
-rw-r--r--recipes/mokoeightball/files/fixpath.patch63
-rw-r--r--recipes/mokoeightball/mokoeightball_svn.bb34
-rw-r--r--recipes/mokoko/mokoko_svn.bb2
-rw-r--r--recipes/mokomaze/files/fsoraw.patch11
-rw-r--r--recipes/mokomaze/mokomaze_0.5.5.bb25
-rw-r--r--recipes/mono/mono-2.4.2.3/mono-cross-compilation-for-amd64.patch167
-rw-r--r--recipes/mono/mono_2.4.2.3.bb2
-rw-r--r--recipes/mono/mono_svn.inc2
-rw-r--r--recipes/mozilla/firefox-3.5.5/0001-Remove-Werror-from-build.patch43
-rw-r--r--recipes/mozilla/firefox-3.5.5/0002-Fix-security-cross-compile-cpu-detection-error.patch42
-rw-r--r--recipes/mozilla/firefox-3.5.5/010_FPU_IS_ARM_FPA_xslt.diff56
-rw-r--r--recipes/mozilla/firefox-3.5.5/Bug339782.additional.fix.diff39
-rw-r--r--recipes/mozilla/firefox-3.5.5/Bug385583.nspr.jmp_buf.eabi.diff33
-rw-r--r--recipes/mozilla/firefox-3.5.5/Bug405992.atomic.nspr.diff48
-rw-r--r--recipes/mozilla/firefox-3.5.5/configure-wchart.patch11
-rw-r--r--recipes/mozilla/firefox-3.5.5/jemalloc-tls.patch28
-rw-r--r--recipes/mozilla/firefox-3.5.5/jsautocfg-dontoverwrite.patch23
-rw-r--r--recipes/mozilla/firefox-3.5.5/linkage-problem.patch14
-rw-r--r--recipes/mozilla/firefox-3.5.5/mozconfig72
-rw-r--r--recipes/mozilla/firefox-3.5.5/plugins-dir.patch16
-rw-r--r--recipes/mozilla/firefox-3.5.5/security-cross.patch64
-rw-r--r--recipes/mozilla/firefox.inc1
-rw-r--r--recipes/mplayer/files/disable-executable-stack-test.patch6
-rw-r--r--recipes/mplayer/files/mplayer-arm-pld.patch18
-rw-r--r--recipes/mplayer/files/mplayer-lavc-arm.patch17
-rw-r--r--recipes/mplayer/mplayer-0.0+1.0rc2/ivtv-fix.patch26
-rw-r--r--recipes/mplayer/mplayer-common.bb10
-rw-r--r--recipes/mplayer/mplayer-common/om-gta02/mplayer.conf5
-rw-r--r--recipes/mplayer/mplayer-maemo_svn.bb2
-rw-r--r--recipes/mplayer/mplayer_0.0+1.0rc2.bb8
-rw-r--r--recipes/mplayer/mplayer_git.bb229
-rw-r--r--recipes/mplayer/mplayer_svn.bb12
-rw-r--r--recipes/mtd/mtd-utils-native_1.0.0+git.bb3
-rw-r--r--recipes/mtd/mtd-utils-native_1.0.0.bb2
-rw-r--r--recipes/mtd/mtd-utils-tests_1.2.0+git.bb (renamed from recipes/mtd/mtd-utils-tests_1.0.0+git.bb)2
-rw-r--r--recipes/mtd/mtd-utils.inc87
-rw-r--r--recipes/mtd/mtd-utils_1.0.0+git.bb51
-rw-r--r--recipes/mtd/mtd-utils_1.0.0.bb19
-rw-r--r--recipes/mtd/mtd-utils_1.1.0.bb48
-rw-r--r--recipes/mtd/mtd-utils_1.2.0+git.bb89
-rw-r--r--recipes/multitap-pad/multitap-pad_svn.bb2
-rw-r--r--recipes/musicbrainz/libmusicbrainz.inc5
-rw-r--r--recipes/mysql/files/my.cnf2
-rw-r--r--recipes/mysql/files/mysqld.sh10
-rw-r--r--recipes/mysql/mysql-5.1.40-have_atomic_pthread_t.patch37
-rw-r--r--recipes/mysql/mysql5-native_5.1.40.bb25
-rw-r--r--recipes/mysql/mysql5/Makefile.am.patch19
-rw-r--r--recipes/mysql/mysql5/configure-ps-cache-check.patch27
-rw-r--r--recipes/mysql/mysql5/configure.in.patch54
-rw-r--r--recipes/mysql/mysql5/fix_host_path.patch37
-rw-r--r--recipes/mysql/mysql5/misc.m4.patch13
-rw-r--r--recipes/mysql/mysql5/my.cnf21
-rw-r--r--recipes/mysql/mysql5/mysqld.sh24
-rw-r--r--recipes/mysql/mysql5/plug.in.patch40
-rw-r--r--recipes/mysql/mysql5_5.1.40.bb3
-rw-r--r--recipes/mysql/mysql5_5.1.40.inc175
-rw-r--r--recipes/mysql/mysql_4.1.22.bb14
-rw-r--r--recipes/mythtv/mythplugins_0.22.bb (renamed from recipes/mythtv/mythplugins_0.21+0.22rc2.bb)49
-rw-r--r--recipes/mythtv/myththemes_0.22.bb (renamed from recipes/mythtv/myththemes_0.21+0.22rc2.bb)6
-rw-r--r--recipes/mythtv/mythtv-0.22/configure.patch (renamed from recipes/mythtv/mythtv-0.21+0.22rc2/configure.patch)0
-rw-r--r--recipes/mythtv/mythtv_0.22.bb (renamed from recipes/mythtv/mythtv_0.21+0.22rc2.bb)25
-rw-r--r--recipes/mythtv/mythtv_svn.bb2
-rw-r--r--recipes/nautilus/nautilus_2.28.1.bb37
-rw-r--r--recipes/navit/files/navit.launcher30
-rw-r--r--recipes/navit/navit.inc4
-rw-r--r--recipes/ncurses/ncurses.inc1
-rw-r--r--recipes/netbase/netbase/shr/init46
-rw-r--r--recipes/netbase/netbase/shr/options1
-rw-r--r--recipes/netsurf/netsurf_svn.bb2
-rw-r--r--recipes/networkmanager/networkmanager-applet_svn.bb2
-rw-r--r--recipes/networkmanager/networkmanager_svn.bb2
-rw-r--r--recipes/nfs-utils/nfs-utils-1.1.2/nfsserver149
-rw-r--r--recipes/nfs-utils/nfs-utils_1.1.2.bb26
-rw-r--r--recipes/nmap/nmap_3.81.bb2
-rw-r--r--recipes/notifier/notifier_0.2.bb21
-rw-r--r--recipes/numptyphysics/numptyphysics_svn.bb2
-rw-r--r--recipes/nvidia-drivers/nvidia-display-190.42/nvidia-oe-conftest.patch27
-rw-r--r--recipes/nvidia-drivers/nvidia-display_190.42.bb46
-rw-r--r--recipes/nvidia-drivers/nvidia-drivers.inc2
-rw-r--r--recipes/nzbget/nzbget.inc19
-rw-r--r--recipes/nzbget/nzbget_0.6.0.bb3
-rw-r--r--recipes/nzbget/nzbget_0.7.0-testing.bb5
-rw-r--r--recipes/obsolete/wesnoth_svn.bb2
-rw-r--r--recipes/odcctools/odcctools-cross-sdk_svn.bb2
-rw-r--r--recipes/odcctools/odcctools-cross_svn.bb2
-rw-r--r--recipes/ogre/ogre-egl_svn.bb2
-rw-r--r--recipes/omgps/omgps_svn.bb12
-rw-r--r--recipes/omnewrotate/files/correct-sysfs-bl-path.patch53
-rw-r--r--recipes/omnewrotate/omnewrotate_0.5.4.bb15
-rw-r--r--recipes/omoney/omoney_svn.bb28
-rw-r--r--recipes/omview/omview_svn.bb14
-rw-r--r--recipes/opencv/opencv-samples_svn.bb4
-rw-r--r--recipes/opencv/opencv_svn.bb4
-rw-r--r--recipes/openmoko-3rdparty/advancedcaching_git.bb22
-rw-r--r--recipes/openmoko-3rdparty/babiloo-efl_2.0.9-3.bb40
-rw-r--r--recipes/openmoko-3rdparty/babiloo-efl_2.0.9-4.bb40
-rw-r--r--recipes/openmoko-3rdparty/babiloo-efl_bzr.bb41
-rw-r--r--recipes/openmoko-3rdparty/calc_0.0.4.bb23
-rw-r--r--recipes/openmoko-3rdparty/calc_git.bb27
-rw-r--r--recipes/openmoko-3rdparty/neomis_svn.bb21
-rw-r--r--recipes/openmoko-3rdparty/numberx_svn.bb21
-rw-r--r--recipes/openmoko-3rdparty/om-neon_svn.bb30
-rw-r--r--recipes/openmoko-3rdparty/pisi_0.4.7.bb33
-rw-r--r--recipes/openmoko-base/openmoko-common_svn.bb2
-rw-r--r--recipes/openmoko-base/openmoko-icon-theme-standard_svn.bb2
-rw-r--r--recipes/openmoko-base/openmoko-libs_svn.bb2
-rw-r--r--recipes/openmoko-base/openmoko-session_svn.bb2
-rw-r--r--recipes/openmoko-base/openmoko-sound-theme-standard_svn.bb2
-rw-r--r--recipes/openmoko-base/openmoko-theme-standard-qvga_svn.bb2
-rw-r--r--recipes/openmoko-base/openmoko-theme-standard_svn.bb2
-rw-r--r--recipes/openmoko-examples/openmoko-finger-demo_svn.bb2
-rw-r--r--recipes/openmoko-examples/openmoko-panel-demo-simple_svn.bb2
-rw-r--r--recipes/openmoko-examples/openmoko-panel-demo_svn.bb2
-rw-r--r--recipes/openmoko-examples/openmoko-stylus-demo-simple_svn.bb2
-rw-r--r--recipes/openmoko-examples/openmoko-stylus-demo_svn.bb2
-rw-r--r--recipes/openmoko-panel-plugins/openmoko-panel-battery_svn.bb2
-rw-r--r--recipes/openmoko-panel-plugins/openmoko-panel-bt_svn.bb2
-rw-r--r--recipes/openmoko-panel-plugins/openmoko-panel-clock_svn.bb2
-rw-r--r--recipes/openmoko-panel-plugins/openmoko-panel-gps_svn.bb2
-rw-r--r--recipes/openmoko-panel-plugins/openmoko-panel-gsm_svn.bb2
-rw-r--r--recipes/openmoko-panel-plugins/openmoko-panel-mainmenu_svn.bb2
-rw-r--r--recipes/openmoko-panel-plugins/openmoko-panel-memory_svn.bb2
-rw-r--r--recipes/openmoko-panel-plugins/openmoko-panel-usb_svn.bb2
-rw-r--r--recipes/openmoko-panel-plugins/openmoko-panel-wifi_svn.bb2
-rw-r--r--recipes/openmoko-projects/assassin-thumbnail.bb2
-rw-r--r--recipes/openmoko-projects/assassin_svn.bb2
-rw-r--r--recipes/openmoko-projects/diversity-daemon_svn.bb2
-rw-r--r--recipes/openmoko-projects/diversity-radar_svn.bb2
-rw-r--r--recipes/openmoko-projects/enlazar_svn.bb2
-rw-r--r--recipes/openmoko-projects/etk-theme-ninja_svn.bb2
-rw-r--r--recipes/openmoko-projects/illume-theme-asu_svn.bb2
-rw-r--r--recipes/openmoko-projects/om-settings_svn.bb2
-rw-r--r--recipes/openmoko-projects/openmoko-agpsui/fix-configure-for-new-autotools.patch11
-rw-r--r--recipes/openmoko-projects/openmoko-agpsui_svn.bb7
-rw-r--r--recipes/openmoko-projects/paroli_git.bb165
-rw-r--r--recipes/openmoko-projects/pyefl-sudoku_svn.bb2
-rw-r--r--recipes/openmoko-system/ompower_svn.bb2
-rw-r--r--recipes/openmoko-tools/app-restarter_svn.bb2
-rw-r--r--recipes/openmoko-tools/openmoko-set-root-password.bb2
-rw-r--r--recipes/openmoko-tools/openmoko-toolchain-scripts_svn.bb2
-rw-r--r--recipes/openmoko2/libjana_svn.bb2
-rw-r--r--recipes/openmoko2/libmokogsmd2_svn.bb2
-rw-r--r--recipes/openmoko2/libmokojournal2_svn.bb2
-rw-r--r--recipes/openmoko2/libmokopanelui2_svn.bb2
-rw-r--r--recipes/openmoko2/libmokoui2/configure.patch10
-rw-r--r--recipes/openmoko2/libmokoui2/makefile.am.patch19
-rw-r--r--recipes/openmoko2/libmokoui2_svn.bb17
-rw-r--r--recipes/openmoko2/moko-gtk-engine_svn.bb2
-rw-r--r--recipes/openmoko2/neod_svn.bb2
-rw-r--r--recipes/openmoko2/openmoko-alsa-scenarios.bb6
-rw-r--r--recipes/openmoko2/openmoko-appearance_svn.bb2
-rw-r--r--recipes/openmoko2/openmoko-appmanager2_svn.bb2
-rw-r--r--recipes/openmoko2/openmoko-browser2_svn.bb2
-rw-r--r--recipes/openmoko2/openmoko-calculator2_svn.bb2
-rw-r--r--recipes/openmoko2/openmoko-common2_svn.bb2
-rw-r--r--recipes/openmoko2/openmoko-contacts2_svn.bb2
-rw-r--r--recipes/openmoko2/openmoko-dates2_svn.bb2
-rw-r--r--recipes/openmoko2/openmoko-dialer2_svn.bb2
-rw-r--r--recipes/openmoko2/openmoko-feedreader2_svn.bb2
-rw-r--r--recipes/openmoko2/openmoko-firststart2_svn.bb2
-rw-r--r--recipes/openmoko2/openmoko-icon-theme-standard2-qvga_svn.bb2
-rw-r--r--recipes/openmoko2/openmoko-icon-theme-standard2_svn.bb2
-rw-r--r--recipes/openmoko2/openmoko-mediaplayer2_svn.bb2
-rw-r--r--recipes/openmoko2/openmoko-messages2_svn.bb2
-rw-r--r--recipes/openmoko2/openmoko-sample2_svn.bb2
-rw-r--r--recipes/openmoko2/openmoko-sound-theme-standard2_svn.bb2
-rw-r--r--recipes/openmoko2/openmoko-tasks2_svn.bb2
-rw-r--r--recipes/openmoko2/openmoko-theme-standard2-qvga_svn.bb2
-rw-r--r--recipes/openmoko2/openmoko-theme-standard2_svn.bb2
-rw-r--r--recipes/openmoko2/openmoko-today2-folders_svn.bb2
-rw-r--r--recipes/openmoko2/openmoko-today2_svn.bb2
-rw-r--r--recipes/openmoko2/openmoko-worldclock2_svn.bb2
-rw-r--r--recipes/openmoocow/openmoocow/openmoocow.desktop10
-rw-r--r--recipes/openmoocow/openmoocow_git.bb13
-rw-r--r--recipes/openobex/obex-data-server_0.4.4.bb2
-rw-r--r--recipes/openocd/openocd_svn.bb2
-rw-r--r--recipes/openscada/openscada_svn.bb3
-rw-r--r--recipes/openssl/openssl-native_0.9.8j.bb4
-rw-r--r--recipes/opensync/libsyncml_0.5.4.bb30
-rw-r--r--recipes/opensync/wbxml2_0.10.7.bb29
-rw-r--r--recipes/openttd/files/openttd.cfg4
-rw-r--r--recipes/openttd/openttd-gfx_0.1.1.bb16
-rw-r--r--recipes/openttd/openttd-sfx_0.1.0.bb16
-rw-r--r--recipes/openttd/openttd_0.7.4.bb49
-rw-r--r--recipes/opie-networksettings/files/wireless.patch16
-rw-r--r--recipes/opie-networksettings/opie-networksettings.inc2
-rw-r--r--recipes/opkg/opkg-native_svn.bb2
-rw-r--r--recipes/opkg/opkg-nogpg-nocurl_svn.bb15
-rw-r--r--recipes/opkg/opkg-nogpg_svn.bb14
-rw-r--r--recipes/opkg/opkg.inc9
-rw-r--r--recipes/opkg/opkg_svn.bb2
-rw-r--r--recipes/oprofile/oprofileui-svn.inc2
-rw-r--r--recipes/orrery/orrery/Makefile.am.patch67
-rw-r--r--recipes/orrery/orrery/datadir.patch12
-rw-r--r--recipes/orrery/orrery_2.4.bb26
-rw-r--r--recipes/owfs/owfs_2.7p24.bb3
-rw-r--r--recipes/pam/libpam-1.1.0/disable_modules_uclibc.patch16
-rw-r--r--recipes/pam/libpam-1.1.0/fix_disabled_nls.patch13
-rw-r--r--recipes/pam/libpam-1.1.0/pam-disable-nis-on-uclibc.patch251
-rw-r--r--recipes/pam/libpam-1.1.0/pam-nodocs.patch35
-rw-r--r--recipes/pam/libpam-base-files.bb18
-rw-r--r--recipes/pam/libpam-base-files/pam.d/atd10
-rw-r--r--recipes/pam/libpam-base-files/pam.d/common-account25
-rw-r--r--recipes/pam/libpam-base-files/pam.d/common-auth18
-rw-r--r--recipes/pam/libpam-base-files/pam.d/common-password27
-rw-r--r--recipes/pam/libpam-base-files/pam.d/common-session20
-rw-r--r--recipes/pam/libpam-base-files/pam.d/common-session-noninteractive19
-rw-r--r--recipes/pam/libpam-base-files/pam.d/cron11
-rw-r--r--recipes/pam/libpam-base-files/pam.d/cups3
-rw-r--r--recipes/pam/libpam-base-files/pam.d/cvs12
-rw-r--r--recipes/pam/libpam-base-files/pam.d/libcupsys23
-rw-r--r--recipes/pam/libpam-base-files/pam.d/other27
-rw-r--r--recipes/pam/libpam-base-files/pam.d/polkit-16
-rw-r--r--recipes/pam/libpam-base-files/pam.d/ppp8
-rw-r--r--recipes/pam/libpam-base-files/pam.d/sesman6
-rw-r--r--recipes/pam/libpam-base-files/pam.d/sshd33
-rw-r--r--recipes/pam/libpam_1.0.2.bb12
-rw-r--r--recipes/pam/libpam_1.1.0.bb74
-rw-r--r--recipes/performous/performous_0.4.0.bb29
-rw-r--r--recipes/perl/libextutils-makemaker-perl-native_6.54.bb5
-rw-r--r--recipes/perl/libextutils-makemaker-perl_6.54.bb10
-rw-r--r--recipes/perl/libfile-slurp-perl_9999.13.bb4
-rw-r--r--recipes/perl/libhtml-mason-perl_1.35.bb4
-rw-r--r--recipes/perl/libhtml-parser-perl-native_3.60.bb6
-rw-r--r--recipes/perl/libhtml-parser-perl-native_3.64.bb6
-rw-r--r--recipes/perl/libhtml-parser-perl_3.64.bb15
-rw-r--r--recipes/perl/libhtml-tagset-perl-native_3.20.bb5
-rw-r--r--recipes/perl/libhtml-treebuilder-perl-native_3.23.bb6
-rw-r--r--recipes/perl/libhtml-treebuilder-perl_3.23.bb13
-rw-r--r--recipes/perl/liblog-dispatch-perl_2.13.bb4
-rw-r--r--recipes/perl/libmodule-build-perl_0.2805.bb4
-rw-r--r--recipes/perl/libtermreadkey-perl_2.30.bb4
-rw-r--r--recipes/perl/libwww-mechanize-perl-native_1.60.bb6
-rw-r--r--recipes/perl/libwww-mechanize-perl_1.60.bb10
-rw-r--r--recipes/perl/libxml-parser-perl-native_2.34.bb1
-rw-r--r--recipes/perl/libxml-parser-perl-native_2.36.bb7
-rw-r--r--recipes/perl/libxml-parser-perl_2.36.bb2
-rw-r--r--recipes/perl/libxml-twig-perl_3.33.bb6
-rw-r--r--recipes/perl/libxml-writer-perl_0.606.bb4
-rw-r--r--recipes/perl/perl-native_5.8.4.bb2
-rw-r--r--recipes/perl/perl-native_5.8.7.bb2
-rw-r--r--recipes/perl/perl-native_5.8.8.bb9
-rw-r--r--recipes/perl/perl.inc4
-rw-r--r--recipes/perl/perl_5.8.4.bb2
-rw-r--r--recipes/perl/perl_5.8.7.bb2
-rw-r--r--recipes/perl/perl_5.8.8.bb7
-rw-r--r--recipes/php/php_5.2.6.bb5
-rw-r--r--recipes/pidgin/msn-pecan_git.bb23
-rw-r--r--recipes/pimlico/contacts_svn.bb2
-rw-r--r--recipes/pimlico/dates_svn.bb2
-rw-r--r--recipes/pimlico/tasks_svn.bb2
-rw-r--r--recipes/pingus/files/boost.patch13
-rw-r--r--recipes/pingus/files/cheader.patch27
-rw-r--r--recipes/pingus/pingus_0.7.2.bb10
-rw-r--r--recipes/pkgconfig/pkgconfig.inc2
-rw-r--r--recipes/pointercal/files/sgh-i900/pointercal1
-rw-r--r--recipes/policykit/policykit_0.9.bb4
-rw-r--r--recipes/portaudio/portaudio-v19_svn.bb2
-rw-r--r--recipes/povray/povray-3.6.1+3.7.0-beta25b/boost.patch82
-rw-r--r--recipes/povray/povray_3.6.1+3.7.0-beta25b.bb3
-rwxr-xr-xrecipes/powervr-drivers/libgles-omap3-3.01.00.02/rc.pvr58
-rw-r--r--recipes/powervr-drivers/libgles-omap3.inc5
-rw-r--r--recipes/powervr-drivers/libgles-omap3_3.01.00.02.bb30
-rw-r--r--recipes/powervr-drivers/omap3-sgx-modules/0001-Compile-fixes-for-recent-kernels.patch28
-rw-r--r--recipes/powervr-drivers/omap3-sgx-modules_1.3.13.1607.bb1
-rw-r--r--recipes/powervr-drivers/omap3-sgx-modules_1.4.14.2514.bb33
-rw-r--r--recipes/prismstumbler/prismstumbler-0.7.3+0.7.4pre1/libgps-check.patch57
-rw-r--r--recipes/prismstumbler/prismstumbler_0.7.3+0.7.4pre1.bb6
-rw-r--r--recipes/proxy-libintl/proxy-libintl_20080418.bb14
-rw-r--r--recipes/psplash/psplash.inc2
-rw-r--r--recipes/ptpd/ptpd_1.0.0.bb14
-rw-r--r--recipes/pulseaudio/paprefs_0.9.9.bb9
-rw-r--r--recipes/pulseaudio/pulseaudio-0.9.19/autoconf_version.patch13
-rw-r--r--recipes/pulseaudio/pulseaudio-0.9.19/buildfix.patch13
-rw-r--r--recipes/pulseaudio/pulseaudio-0.9.19/configure_silent_rules.patch29
-rw-r--r--recipes/pulseaudio/pulseaudio-0.9.19/fixbluezbuild.patch13
-rw-r--r--recipes/pulseaudio/pulseaudio-0.9.19/gcc4-compile-fix.patch18
-rw-r--r--recipes/pulseaudio/pulseaudio-0.9.19/gettext.patch127
-rw-r--r--recipes/pulseaudio/pulseaudio-0.9.19/tls_m4.patch30
-rw-r--r--recipes/pulseaudio/pulseaudio-0.9.19/volatiles.04_pulse2
-rw-r--r--recipes/pulseaudio/pulseaudio-0.9.21/autoconf_version.patch13
-rw-r--r--recipes/pulseaudio/pulseaudio-0.9.21/buildfix.patch13
-rw-r--r--recipes/pulseaudio/pulseaudio-0.9.21/configure_silent_rules.patch29
-rw-r--r--recipes/pulseaudio/pulseaudio-0.9.21/gcc4-compile-fix.patch18
-rw-r--r--recipes/pulseaudio/pulseaudio-0.9.21/tls_m4.patch30
-rw-r--r--recipes/pulseaudio/pulseaudio-0.9.21/volatiles.04_pulse2
-rw-r--r--recipes/pulseaudio/pulseaudio_0.9.19.bb22
-rw-r--r--recipes/pulseaudio/pulseaudio_0.9.21.bb18
-rw-r--r--recipes/puzzles/oh-puzzles_svn.bb2
-rw-r--r--recipes/pyphonelog/pyphonelog_git.bb16
-rw-r--r--recipes/pythm/pythm/mplayer-escape-filenames.patch19
-rw-r--r--recipes/pythm/pythm/pythm.conf32
-rw-r--r--recipes/pythm/pythm/pythm.desktop12
-rw-r--r--recipes/pythm/pythm_svn.bb36
-rw-r--r--recipes/python/pydes_1.3.1.bb17
-rw-r--r--recipes/python/pyring_1.1.10.bb21
-rw-r--r--recipes/python/python-blipapi_0.02.04.bb12
-rw-r--r--recipes/python/python-coherence_svn.bb2
-rw-r--r--recipes/python/python-connexion_svn.bb2
-rw-r--r--recipes/python/python-dateutil_1.4.1.bb20
-rw-r--r--recipes/python/python-dbus_0.83.0.bb2
-rw-r--r--recipes/python/python-efl.inc2
-rw-r--r--recipes/python/python-elementary_svn.bb2
-rw-r--r--recipes/python/python-epsilon_svn.bb1
-rw-r--r--recipes/python/python-epydoc-native_3.0.1.bb8
-rw-r--r--recipes/python/python-epydoc_3.0.1.bb12
-rw-r--r--recipes/python/python-etk_svn.bb2
-rw-r--r--recipes/python/python-ldap/setup.cfg.patch14
-rw-r--r--recipes/python/python-ldap_2.3.9.bb11
-rw-r--r--recipes/python/python-native-2.6.1/debug.patch27
-rw-r--r--recipes/python/python-native-2.6.1/nohostlibs.patch53
-rw-r--r--recipes/python/python-native_2.6.1.bb5
-rw-r--r--recipes/python/python-phoneutils_git.bb8
-rw-r--r--recipes/python/python-pybluez_0.16.bb10
-rw-r--r--recipes/python/python-pygtk_2.10.4.bb4
-rw-r--r--recipes/python/python-pyyaml_svn.bb2
-rw-r--r--recipes/python/python-vobject_0.8.1c.bb13
-rw-r--r--recipes/python/python-webdav_0.1.2.bb15
-rw-r--r--recipes/python/python-wifi_0.3.1.bb18
-rw-r--r--recipes/python/python-wpactrl_svn.bb2
-rw-r--r--recipes/python/python_2.6.2.bb4
-rw-r--r--recipes/qemu/qemu_svn.bb2
-rw-r--r--recipes/qt4/qt4-embedded-4.6.0/0006-freetype-host-includes.patch20
-rw-r--r--recipes/qt4/qt4-embedded-4.6.0/0008-qt-lib-infix.patch32
-rw-r--r--recipes/qt4/qt4-embedded-4.6.0/0010-no-simpledecoration-example.patch9
-rw-r--r--recipes/qt4/qt4-embedded-4.6.0/linux.conf54
-rw-r--r--recipes/qt4/qt4-embedded.inc2
-rw-r--r--recipes/qt4/qt4-embedded_4.4.3.bb2
-rw-r--r--recipes/qt4/qt4-embedded_4.6.0.bb38
-rw-r--r--recipes/qt4/qt4-tools-native_4.6.0.bb15
-rw-r--r--recipes/qt4/qt4-x11-free-4.6.0/0008-qt-lib-infix.patch32
-rw-r--r--recipes/qt4/qt4-x11-free-4.6.0/linux.conf54
-rw-r--r--recipes/qt4/qt4-x11-free_4.5.2.bb2
-rw-r--r--recipes/qt4/qt4-x11-free_4.6.0.bb45
-rw-r--r--recipes/qte/qte-2.3.10/fix-qte-asm-include.patch19
-rw-r--r--recipes/qte/qte-2.3.10/kernel-asm-page.patch20
-rw-r--r--recipes/qte/qte-common_2.3.10.inc2
-rw-r--r--recipes/qte/qte-mt-static_2.3.10.bb2
-rw-r--r--recipes/qte/qte-mt_2.3.10.bb2
-rw-r--r--recipes/qte/qte_2.3.10.bb2
-rw-r--r--recipes/quake/ioquake3_svn.bb2
-rw-r--r--recipes/quake/quake2_svn.bb2
-rw-r--r--recipes/qwo/qwo_0.5.bb12
-rw-r--r--recipes/remoko/remoko-server_svn.bb2
-rw-r--r--recipes/remoko/remoko_svn.bb2
-rw-r--r--recipes/samsung-soc-utils/s3c2410-boot-usb-native_svn.bb2
-rw-r--r--recipes/samsung-soc-utils/s3c24xx-gpio_svn.bb2
-rw-r--r--recipes/samsung-soc-utils/s3c64xx-gpio_svn.bb2
-rw-r--r--recipes/samsung-soc-utils/sjf2410-linux-native_svn.bb4
-rw-r--r--recipes/sane/sane-backends-1.0.20/Makefile.in.patch13
-rw-r--r--recipes/sane/sane-backends-1.0.20/byteorder.m4354
-rw-r--r--recipes/sane/sane-backends-1.0.20/saned.xinetd10
-rw-r--r--recipes/sane/sane-backends-1.0.20/stdint.m4734
-rw-r--r--recipes/sane/sane-backends_1.0.19.bb2
-rw-r--r--recipes/sane/sane-backends_1.0.20.bb53
-rw-r--r--recipes/scummvm/files/shr/openmoko-scummvm19
-rw-r--r--recipes/scummvm/files/shr/scummvm.desktop12
-rw-r--r--recipes/scummvm/scummvm-1.0.0/no-strip.patch20
-rw-r--r--recipes/scummvm/scummvm_0.12.0.bb1
-rw-r--r--recipes/scummvm/scummvm_1.0.0.bb39
-rw-r--r--recipes/settings-daemon/settings-daemon_svn.bb2
-rw-r--r--recipes/shadow/files/login_defs_pam.sed25
-rw-r--r--recipes/shadow/files/pam.d/chfn14
-rw-r--r--recipes/shadow/files/pam.d/chpasswd4
-rw-r--r--recipes/shadow/files/pam.d/chsh19
-rw-r--r--recipes/shadow/files/pam.d/login91
-rw-r--r--recipes/shadow/files/pam.d/newusers4
-rw-r--r--recipes/shadow/files/pam.d/passwd5
-rw-r--r--recipes/shadow/files/pam.d/su60
-rw-r--r--recipes/shadow/shadow_4.1.4.2.bb52
-rw-r--r--recipes/shr/alsa-scenarii-shr_git.bb4
-rw-r--r--recipes/shr/e-wm-config-illume-shr_git.bb2
-rw-r--r--recipes/shr/e-wm-menu-shr_git.bb4
-rw-r--r--recipes/shr/e-wm-sysactions-shr_git.bb5
-rw-r--r--recipes/shr/e-wm-theme-illume-gry_git.bb25
-rw-r--r--recipes/shr/e-wm-theme-illume-neo_git.bb32
-rw-r--r--recipes/shr/e-wm-theme-illume-niebiee_git.bb2
-rw-r--r--recipes/shr/e-wm-theme-illume-shr_git.bb2
-rw-r--r--recipes/shr/e-wm-theme-illume-sixteen_git.bb2
-rw-r--r--recipes/shr/elementary-theme-gry_git.bb26
-rw-r--r--recipes/shr/elementary-theme-neo_git.bb26
-rw-r--r--recipes/shr/elementary-theme-niebiee_git.bb2
-rw-r--r--recipes/shr/elementary-theme-sixteen_git.bb2
-rw-r--r--recipes/shr/etk-theme-neo_git.bb12
-rw-r--r--recipes/shr/etk-theme-shr_git.bb20
-rw-r--r--recipes/shr/etk-theme.inc34
-rw-r--r--recipes/shr/frameworkd-config-shr_git.bb4
-rw-r--r--recipes/shr/gtk-theme-neo_git.bb15
-rw-r--r--recipes/shr/gtk-theme.inc33
-rw-r--r--recipes/shr/gtk-theme/gtkrc.gtk-theme-neo3
-rw-r--r--recipes/shr/gtk-theme/gtkrc.shr-theme-gtk-e17lookalike3
-rw-r--r--recipes/shr/icon-theme-neo_git.bb27
-rw-r--r--recipes/shr/initscripts-shr_0.0.1.bb (renamed from recipes/shr/initscripts-shr_git.bb)5
-rw-r--r--recipes/shr/libframeworkd-phonegui-efl-theme-neo_git.bb26
-rw-r--r--recipes/shr/libframeworkd-phonegui-efl-theme.inc22
-rw-r--r--recipes/shr/libframeworkd-phonegui-efl_git.bb7
-rw-r--r--recipes/shr/libmodulo_git.bb13
-rw-r--r--recipes/shr/libphone-ui-shr_git.bb20
-rw-r--r--recipes/shr/libphone-ui_git.bb15
-rw-r--r--recipes/shr/ologicd_git.bb9
-rw-r--r--recipes/shr/ophonekitd_git.bb24
-rw-r--r--recipes/shr/phonefsod_git.bb22
-rw-r--r--recipes/shr/phoneui-apps_git.bb28
-rw-r--r--recipes/shr/phoneuid_git.bb20
-rw-r--r--recipes/shr/shr-config_git.bb14
-rw-r--r--recipes/shr/shr-installer_git.bb2
-rw-r--r--recipes/shr/shr-launcher_svn.bb21
-rw-r--r--recipes/shr/shr-settings_git.bb32
-rw-r--r--recipes/shr/shr-specs_git.bb22
-rw-r--r--recipes/shr/shr-splash-theme-dontpanic_git.bb2
-rw-r--r--recipes/shr/shr-splash-theme-handy_git.bb2
-rw-r--r--recipes/shr/shr-splash-theme-logo_git.bb13
-rw-r--r--recipes/shr/shr-splash-theme-niebiee_git.bb2
-rw-r--r--recipes/shr/shr-splash-theme-simple_git.bb2
-rw-r--r--recipes/shr/shr-splash-theme-tux_git.bb11
-rw-r--r--recipes/shr/shr-splash_git.bb2
-rw-r--r--recipes/shr/shr-theme-gry.bb7
-rw-r--r--recipes/shr/shr-theme-gtk-e17lookalike_git.bb10
-rw-r--r--recipes/shr/shr-theme-neo.bb11
-rw-r--r--recipes/shr/shr-theme-sixteen.bb7
-rw-r--r--recipes/shr/shr-today_git.bb8
-rw-r--r--recipes/smpeg/smpeg_svn.bb2
-rw-r--r--recipes/sms-sentry/sms-sentry.bb34
-rw-r--r--recipes/socketcan/socketcan-modules_svn.bb2
-rw-r--r--recipes/socketcan/socketcan-utils-test_svn.bb2
-rw-r--r--recipes/sphyrna/sphyrna-python_svn.bb2
-rw-r--r--recipes/sqlite/sqlite3.inc2
-rw-r--r--recipes/sqlite/sqlite3_3.6.20.bb2
-rw-r--r--recipes/squashfs-tools/squashfs-tools-native_4.0.bb6
-rw-r--r--recipes/squashfs-tools/squashfs-tools.inc4
-rw-r--r--recipes/squashfs-tools/squashfs-tools_4.0.bb20
-rw-r--r--recipes/sudo/files/sudo.pamd7
-rw-r--r--recipes/sudo/gksu_2.0.2.bb11
-rw-r--r--recipes/sudo/libgksu_2.0.12.bb17
-rw-r--r--recipes/sudo/sudo-enable-wheel-group.bb20
-rw-r--r--recipes/sudo/sudo.inc23
-rw-r--r--recipes/sudo/sudo_1.7.2p1.bb19
-rw-r--r--recipes/tangogps/tangogps.inc2
-rw-r--r--recipes/tangogps/tangogps_0.99.1.bb2
-rw-r--r--recipes/tasks/angstrom-task-gnome.bb4
-rw-r--r--recipes/tasks/task-base.bb2
-rw-r--r--recipes/tasks/task-beagleboard-demo.bb3
-rw-r--r--recipes/tasks/task-boot.bb4
-rw-r--r--recipes/tasks/task-fso-compliance.bb10
-rw-r--r--recipes/tasks/task-fso2-compliance.bb19
-rw-r--r--recipes/tasks/task-shr-feed.bb260
-rw-r--r--recipes/tasks/task-shr-minimal.bb151
-rw-r--r--recipes/tasks/task-shr.bb35
-rw-r--r--recipes/tasks/task-x11-illume.bb3
-rw-r--r--recipes/tcltk/files/tcl-add-soname.patch51
-rw-r--r--recipes/tcltk/tcl-native_8.4.19.bb2
-rw-r--r--recipes/tcltk/tcl_8.4.19.bb4
-rw-r--r--recipes/texi2html/texi2html_1.82.bb12
-rw-r--r--recipes/ti/bitblit_svn.bb2
-rw-r--r--recipes/ti/ti-dmai.inc3
-rw-r--r--recipes/tinymail/libtinymail_svn.bb2
-rw-r--r--recipes/tinymail/tmut_svn.bb2
-rw-r--r--recipes/totem/totem_2.28.1.bb5
-rw-r--r--recipes/tracker/tracker-0.6.95/05-tracker-ioprio-cross.patch64
-rw-r--r--recipes/tracker/tracker-0.6.95/10-drop-bogus-version-info.patch73
-rw-r--r--recipes/tracker/tracker-0.6.95/20-tracker-defaults.patch30
-rw-r--r--recipes/tracker/tracker-0.6.95/30-gmime-2.4.patch435
-rw-r--r--recipes/tracker/tracker-0.6.95/99-autoreconf.patch436
-rw-r--r--recipes/tracker/tracker-0.6.95/munge-configure.ac-cross-compile.patch39
-rw-r--r--recipes/tracker/tracker_0.6.95.bb37
-rw-r--r--recipes/transmission/transmission.inc9
-rw-r--r--recipes/transmission/transmission_1.76.bb2
-rw-r--r--recipes/tslib/tslib.inc4
-rw-r--r--recipes/tslib/tslib/omap3-pandora/ts.conf8
-rw-r--r--recipes/tslib/tslib/omap3-pandora/tslib.sh7
-rw-r--r--recipes/tslib/tslib/sgh-i900/tslib.sh5
-rw-r--r--recipes/tslib/tslib_svn.bb2
-rw-r--r--recipes/ttf-fonts/ttf-freefonts_20090104.bb24
-rw-r--r--recipes/tzdata/tzdata.inc13
-rw-r--r--recipes/tzdata/tzdata_2009s.bb3
-rw-r--r--recipes/u-boot/files/beagleboard/fw_env.config2
-rw-r--r--recipes/u-boot/files/omap3-touchbook/fw_env.config2
-rw-r--r--recipes/u-boot/u-boot-2009.03/hipox/00-hipox.patch12
-rw-r--r--recipes/u-boot/u-boot-2009.03/hipox/02-hipox-enable-mmu.patch2
-rw-r--r--recipes/u-boot/u-boot-bug_svn.bb2
-rw-r--r--recipes/u-boot/u-boot-omap3pandora_git.bb4
-rw-r--r--recipes/u-boot/u-boot-utils_1.2.0.bb2
-rw-r--r--recipes/u-boot/u-boot_git.bb54
-rw-r--r--recipes/uclibc/bfin-uclibc_svn.bb2
-rw-r--r--recipes/uclibc/elf2flt_svn.bb2
-rw-r--r--recipes/uclibc/uclibc-0.9.30.1/installfix.patch33
-rw-r--r--recipes/uclibc/uclibc-0.9.30.1/o_cloexec.patch272
-rw-r--r--recipes/uclibc/uclibc-initial_0.9.28.bb24
-rw-r--r--recipes/uclibc/uclibc-initial_0.9.29.bb25
-rw-r--r--recipes/uclibc/uclibc-initial_0.9.30.1.bb22
-rw-r--r--recipes/uclibc/uclibc-initial_0.9.30.bb22
-rw-r--r--recipes/uclibc/uclibc-initial_git.bb22
-rw-r--r--recipes/uclibc/uclibc-initial_nptl.bb29
-rw-r--r--recipes/uclibc/uclibc-nptl/uClibc.distro1
-rw-r--r--recipes/uclibc/uclibc.inc59
-rw-r--r--recipes/uclibc/uclibc_0.9.30.1.bb4
-rw-r--r--recipes/uclibc/uclibc_nptl.bb5
-rw-r--r--recipes/udev/udev_141.bb19
-rw-r--r--recipes/usb-gadget-mode/files/shr/usb-gadget.conf3
-rwxr-xr-xrecipes/usb-gadget-mode/files/usb-gadget20
-rw-r--r--recipes/usb-gadget-mode/usb-gadget-mode.bb2
-rw-r--r--recipes/usbpath/usbpath_svn.bb2
-rw-r--r--recipes/vala/vala-native_0.7.8.2.bb3
-rw-r--r--recipes/vala/vala-native_git.bb13
-rw-r--r--recipes/vala/vala.inc2
-rw-r--r--recipes/vala/vala_0.7.8.2.bb2
-rw-r--r--recipes/vnc/x11vnc_0.9.8.bb10
-rw-r--r--recipes/webif/webif_svn.bb2
-rw-r--r--recipes/webkit/arora-e_0.10.1.bb3
-rw-r--r--recipes/webkit/arora.inc45
-rw-r--r--recipes/webkit/arora_0.10.1.bb3
-rw-r--r--recipes/webkit/webkit-efl_git.bb21
-rw-r--r--recipes/webkit/webkit-gtk_svn.bb8
-rw-r--r--recipes/webkit/webkit.inc2
-rw-r--r--recipes/wlan-ng/wlan-ng-modules_svn.bb2
-rw-r--r--recipes/wlan-ng/wlan-ng-utils_svn.bb2
-rw-r--r--recipes/wmiconfig/wmiconfig_svn.bb2
-rw-r--r--recipes/wt/wt3-3.0.0/noqt.patch19
-rw-r--r--recipes/wt/wt3-3.0.0/wgooglemap.patch17
-rw-r--r--recipes/wt/wt3.inc29
-rw-r--r--recipes/wt/wt3/cheader.patch24
-rw-r--r--recipes/wt/wt3/ext.patch (renamed from recipes/wt/wt3-2.99.0/ext.patch)0
-rw-r--r--recipes/wt/wt3_2.99.0.bb41
-rw-r--r--recipes/wt/wt3_3.0.0.bb6
-rw-r--r--recipes/wv/wv_1.2.0.bb6
-rw-r--r--recipes/x-load/x-load-omap3pandora_git.bb4
-rw-r--r--recipes/xboard/files/no-strip.patch33
-rw-r--r--recipes/xboard/xboard_4.4.1.bb (renamed from recipes/xboard/xboard_4.2.7.bb)6
-rw-r--r--recipes/xchat/xchat_2.8.6.bb3
-rw-r--r--recipes/xclip/xclip_0.12.bb10
-rw-r--r--recipes/xfce-extras/gigolo_0.3.2.bb6
-rw-r--r--recipes/xmltv/files/Makefile.PL.patch14
-rw-r--r--recipes/xmltv/xmltv_0.5.54.bb14
-rw-r--r--recipes/xmltv/xmltv_0.5.56.bb35
-rw-r--r--recipes/xoo/xoo_svn.bb2
-rw-r--r--recipes/xorg-app/xterm_207.bb10
-rw-r--r--recipes/xorg-app/xterm_251.bb28
-rw-r--r--recipes/xorg-driver/xf86-input-evdev_2.2.6.bb4
-rw-r--r--recipes/xorg-driver/xf86-input-evdev_2.3.0.bb3
-rw-r--r--recipes/xorg-font/encodings_1.0.2.bb7
-rw-r--r--recipes/xorg-font/encodings_1.0.3.bb5
-rw-r--r--recipes/xorg-font/font-adobe-100dpi_1.0.0.bb2
-rw-r--r--recipes/xorg-font/font-adobe-100dpi_1.0.1.bb2
-rw-r--r--recipes/xorg-font/font-adobe-75dpi_1.0.0.bb1
-rw-r--r--recipes/xorg-font/font-adobe-75dpi_1.0.1.bb1
-rw-r--r--recipes/xorg-font/font-adobe-utopia-100dpi_1.0.1.bb1
-rw-r--r--recipes/xorg-font/font-adobe-utopia-100dpi_1.0.2.bb1
-rw-r--r--recipes/xorg-font/font-adobe-utopia-75dpi_1.0.1.bb2
-rw-r--r--recipes/xorg-font/font-adobe-utopia-75dpi_1.0.2.bb2
-rw-r--r--recipes/xorg-font/font-adobe-utopia-type1_1.0.1.bb2
-rw-r--r--recipes/xorg-font/font-adobe-utopia-type1_1.0.2.bb2
-rw-r--r--recipes/xorg-font/font-alias_1.0.1.bb3
-rw-r--r--recipes/xorg-font/font-alias_1.0.2.bb3
-rw-r--r--recipes/xorg-font/font-arabic-misc_1.0.0.bb2
-rw-r--r--recipes/xorg-font/font-arabic-misc_1.0.1.bb2
-rw-r--r--recipes/xorg-font/font-bh-100dpi_1.0.0.bb1
-rw-r--r--recipes/xorg-font/font-bh-100dpi_1.0.1.bb1
-rw-r--r--recipes/xorg-font/font-bh-75dpi_1.0.0.bb1
-rw-r--r--recipes/xorg-font/font-bh-75dpi_1.0.1.bb1
-rw-r--r--recipes/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.0.bb1
-rw-r--r--recipes/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.1.bb1
-rw-r--r--recipes/xorg-font/font-bh-lucidatypewriter-75dpi_1.0.0.bb1
-rw-r--r--recipes/xorg-font/font-bh-lucidatypewriter-75dpi_1.0.1.bb1
-rw-r--r--recipes/xorg-font/font-bh-ttf_1.0.0.bb1
-rw-r--r--recipes/xorg-font/font-bh-ttf_1.0.1.bb1
-rw-r--r--recipes/xorg-font/font-bh-type1_1.0.0.bb1
-rw-r--r--recipes/xorg-font/font-bh-type1_1.0.1.bb1
-rw-r--r--recipes/xorg-font/font-bitstream-100dpi_1.0.0.bb1
-rw-r--r--recipes/xorg-font/font-bitstream-100dpi_1.0.1.bb1
-rw-r--r--recipes/xorg-font/font-bitstream-75dpi_1.0.0.bb2
-rw-r--r--recipes/xorg-font/font-bitstream-75dpi_1.0.1.bb2
-rw-r--r--recipes/xorg-font/font-bitstream-speedo_1.0.0.bb2
-rw-r--r--recipes/xorg-font/font-bitstream-speedo_1.0.1.bb2
-rw-r--r--recipes/xorg-font/font-bitstream-type1_1.0.0.bb2
-rw-r--r--recipes/xorg-font/font-bitstream-type1_1.0.1.bb2
-rw-r--r--recipes/xorg-font/font-cronyx-cyrillic_1.0.0.bb2
-rw-r--r--recipes/xorg-font/font-cronyx-cyrillic_1.0.1.bb2
-rw-r--r--recipes/xorg-font/font-cursor-misc_1.0.0.bb2
-rw-r--r--recipes/xorg-font/font-cursor-misc_1.0.1.bb2
-rw-r--r--recipes/xorg-font/font-daewoo-misc_1.0.0.bb2
-rw-r--r--recipes/xorg-font/font-daewoo-misc_1.0.1.bb2
-rw-r--r--recipes/xorg-font/font-dec-misc_1.0.0.bb2
-rw-r--r--recipes/xorg-font/font-dec-misc_1.0.1.bb2
-rw-r--r--recipes/xorg-font/font-ibm-type1_1.0.0.bb2
-rw-r--r--recipes/xorg-font/font-ibm-type1_1.0.1.bb2
-rw-r--r--recipes/xorg-font/font-isas-misc_1.0.0.bb2
-rw-r--r--recipes/xorg-font/font-isas-misc_1.0.1.bb2
-rw-r--r--recipes/xorg-font/font-jis-misc_1.0.0.bb2
-rw-r--r--recipes/xorg-font/font-jis-misc_1.0.1.bb2
-rw-r--r--recipes/xorg-font/font-micro-misc_1.0.0.bb2
-rw-r--r--recipes/xorg-font/font-micro-misc_1.0.1.bb2
-rw-r--r--recipes/xorg-font/font-misc-cyrillic_1.0.0.bb2
-rw-r--r--recipes/xorg-font/font-misc-cyrillic_1.0.1.bb2
-rw-r--r--recipes/xorg-font/font-misc-ethiopic_1.0.0.bb1
-rw-r--r--recipes/xorg-font/font-misc-ethiopic_1.0.1.bb1
-rw-r--r--recipes/xorg-font/font-misc-meltho_1.0.0.bb2
-rw-r--r--recipes/xorg-font/font-misc-meltho_1.0.1.bb2
-rw-r--r--recipes/xorg-font/font-misc-misc_1.0.0.bb6
-rw-r--r--recipes/xorg-font/font-misc-misc_1.0.1.bb3
-rw-r--r--recipes/xorg-font/font-mutt-misc_1.0.0.bb2
-rw-r--r--recipes/xorg-font/font-mutt-misc_1.0.1.bb2
-rw-r--r--recipes/xorg-font/font-schumacher-misc_1.0.0.bb1
-rw-r--r--recipes/xorg-font/font-schumacher-misc_1.1.0.bb1
-rw-r--r--recipes/xorg-font/font-screen-cyrillic_1.0.0.bb1
-rw-r--r--recipes/xorg-font/font-screen-cyrillic_1.0.2.bb1
-rw-r--r--recipes/xorg-font/font-sony-misc_1.0.0.bb1
-rw-r--r--recipes/xorg-font/font-sony-misc_1.0.1.bb1
-rw-r--r--recipes/xorg-font/font-sun-misc_1.0.0.bb1
-rw-r--r--recipes/xorg-font/font-sun-misc_1.0.1.bb1
-rw-r--r--recipes/xorg-font/font-util-native_1.0.1.bb3
-rw-r--r--recipes/xorg-font/font-util-native_1.1.1.bb4
-rw-r--r--recipes/xorg-font/font-util_1.0.1.bb4
-rw-r--r--recipes/xorg-font/font-util_1.1.1.bb4
-rw-r--r--recipes/xorg-font/font-winitzki-cyrillic_1.0.0.bb1
-rw-r--r--recipes/xorg-font/font-winitzki-cyrillic_1.0.1.bb1
-rw-r--r--recipes/xorg-font/font-xfree86-type1_1.0.0.bb1
-rw-r--r--recipes/xorg-font/font-xfree86-type1_1.0.1.bb1
-rw-r--r--recipes/xorg-font/font-xfree86-type1_1.0.2.bb1
-rw-r--r--recipes/xorg-font/xorg-font-common.inc25
-rw-r--r--recipes/xorg-font/xorg-minimal-fonts.bb2
-rw-r--r--recipes/xorg-lib/pixman/0001-ARM-NEON-optimized-pixman_blt.patch104
-rw-r--r--recipes/xorg-lib/pixman/0001-ARM-Removal-of-unused-broken-NEON-code.patch830
-rw-r--r--recipes/xorg-lib/pixman/0002-ARM-Introduction-of-the-new-framework-for-NEON-fast.patch1061
-rw-r--r--recipes/xorg-lib/pixman/0002-Test-program-for-pixman_blt-function.patch178
-rw-r--r--recipes/xorg-lib/pixman/0003-ARM-Added-pixman_composite_src_8888_0565_asm_neon-f.patch63
-rw-r--r--recipes/xorg-lib/pixman/0003-Generic-C-implementation-of-pixman_blt-with-overlapp.patch114
-rw-r--r--recipes/xorg-lib/pixman/0004-ARM-Added-pixman_composite_add_8000_8000_asm_neon-f.patch60
-rw-r--r--recipes/xorg-lib/pixman/0004-Support-of-overlapping-src-dst-for-pixman_blt_mmx.patch91
-rw-r--r--recipes/xorg-lib/pixman/0005-ARM-Added-pixman_composite_over_8888_8888_asm_neon.patch87
-rw-r--r--recipes/xorg-lib/pixman/0005-Support-of-overlapping-src-dst-for-pixman_blt_sse2.patch91
-rw-r--r--recipes/xorg-lib/pixman/0006-ARM-Added-a-set-of-NEON-functions-not-fully-optimi.patch540
-rw-r--r--recipes/xorg-lib/pixman/0006-Support-of-overlapping-src-dst-for-pixman_blt_neon.patch93
-rw-r--r--recipes/xorg-lib/pixman/0007-ARM-Enabled-new-NEON-optimizations.patch592
-rw-r--r--recipes/xorg-lib/pixman/neon-24bpp.patch264
-rw-r--r--recipes/xorg-lib/pixman/over-8888-0565.patch296
-rw-r--r--recipes/xorg-lib/pixman_git.bb23
-rw-r--r--recipes/xorg-xserver/xserver-xorg-1.6.1/hack-assume-pixman-supports-overlapped-blt.patch14
-rw-r--r--recipes/xorg-xserver/xserver-xorg-conf/bug/xorg.conf65
-rw-r--r--recipes/xorg-xserver/xserver-xorg-conf/omap3-touchbook/xorg.conf3
-rw-r--r--recipes/xorg-xserver/xserver-xorg-conf_0.1.bb2
-rw-r--r--recipes/xorg-xserver/xserver-xorg_1.6.1.bb5
-rw-r--r--recipes/xournal/xournal_0.4.5.bb19
-rw-r--r--recipes/zaurus-utils/nandlogical-klibc-static_1.0.0.bb10
-rw-r--r--recipes/zaurus-utils/nandlogical/mtd-abi.h152
-rw-r--r--recipes/zaurus-utils/nandlogical/mtd-user.h21
-rw-r--r--recipes/zaurus-utils/nandlogical_1.0.0.bb4
-rw-r--r--recipes/zaurus-utils/zaurus-updater.bb5
-rw-r--r--recipes/zsh/zsh_4.3.10.bb23
1413 files changed, 559671 insertions, 9557 deletions
diff --git a/.gitignore b/.gitignore
index 45d62d8696..6fe8a9d457 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
*.sw?
+*~
diff --git a/MAINTAINERS b/MAINTAINERS
index 15744b50b8..5a26dee320 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -129,6 +129,10 @@ Person: Joaquim Duran
Mail: joaquinduran@adtelecom.es
Recipes: gtk+, gtkmm
+Person: John Willis 'DJWillis'
+Mail: source@distant-earth.com
+Machines: omap3-pandora
+
Person: Junqian Gordon Xu 'xjqian'
Mail: xjqian@gmail.com
Machines: tosa, borzoi, nokia770
@@ -161,20 +165,20 @@ Recipes: gnumeric, gobby, obby, imposter, inkscape
Recipes: *moko*, telepathy, tilibs, xchat, xournal.
Person: Kristoffer Ericson
-Mail: Kristoffer_e1@hotmail.com
-Website: www.jlime.com
-Machines: spitz, jornada 680, jornada 720
-Distros: JLime, Openzaurus
-Interests: wifi, kernels, emulation, qemu, git
+Mail: Kristoffer.ericson@gmail.com
+Website: http://www.jlime.com
+Machines: jornada 680, jornada 720, NEC Mobilepro 900/c, Ben Nanonote
+Distros: JLime
+Interests: Kernels, emulation, superh/arm/mips
Recipes: linux-jlime*, scummvm, blackbox
Person: Leon Woestenberg
Mail: leon@sidebranch.com
Website: http://www.sidebranch.com/
-Interests: Real-time and/or embedded Linux for industrial applications.
+Interests: Real-time and embedded Linux for industrial applications.
Interests: Small read-only Linux based firmware, deterministic builds.
Recipes: lighttpd, fastcgi, squashfs-tools, rt-tests, linux-rt, linux
-Machines: mpc8313e-rdb, mpc8315e-rdb, efika, ixp4xxbe, x86, canyonlands
+Machines: mpc8313e-rdb, mpc8315e-rdb, canyonlands, calamari, openrd-base
Person: Liam Girdwoord
Mail: liam.girdwood@wolfsonmicro.com
@@ -189,7 +193,7 @@ Recipes: mini-httpd,dmidecode,mktemp
Person: Marcin Juszkiewicz
Mail: marcin@juszkiewicz.com.pl
Website: http://marcin.juszkiewicz.com.pl/
-Machines: progear, alix, at91sam9263ek
+Machines: bug, progear, alix, at91sam9263ek
Distros: Poky, Ångström
Person: Marco Cavallini
diff --git a/classes/autotools.bbclass b/classes/autotools.bbclass
index 8236a27c76..1ea4b6f1d0 100644
--- a/classes/autotools.bbclass
+++ b/classes/autotools.bbclass
@@ -1,11 +1,7 @@
-inherit base
-
# use autotools_stage_all for native packages
AUTOTOOLS_NATIVE_STAGE_INSTALL = "1"
def autotools_dep_prepend(d):
- import bb;
-
if bb.data.getVar('INHIBIT_AUTOTOOLS_DEPS', d, 1):
return ''
@@ -27,12 +23,15 @@ def autotools_dep_prepend(d):
return deps + 'gnu-config-native '
EXTRA_OEMAKE = ""
+
DEPENDS_prepend = "${@autotools_dep_prepend(d)}"
+DEPENDS_virtclass-native_prepend = "${@autotools_dep_prepend(d)}"
+DEPENDS_virtclass-nativesdk_prepend = "${@autotools_dep_prepend(d)}"
+
acpaths = "default"
EXTRA_AUTORECONF = "--exclude=autopoint"
def autotools_set_crosscompiling(d):
- import bb
if not bb.data.inherits_class('native', d):
return " cross_compiling=yes"
return ""
@@ -115,7 +114,7 @@ autotools_do_configure() {
else
CONFIGURE_AC=configure.ac
fi
- if grep "^AM_GLIB_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then
+ if grep "^[[:space:]]*AM_GLIB_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then
if grep "sed.*POTFILES" $CONFIGURE_AC >/dev/null; then
: do nothing -- we still have an old unmodified configure.ac
else
@@ -123,12 +122,12 @@ autotools_do_configure() {
echo "no" | glib-gettextize --force --copy
fi
fi
- if grep "^[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then
+ mkdir -p m4
+ if grep "^[[:space:]]*[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then
oenote Executing intltoolize --copy --force --automake
intltoolize --copy --force --automake
fi
oenote Executing autoreconf --verbose --install --force ${EXTRA_AUTORECONF} $acpaths
- mkdir -p m4
autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || oefatal "autoreconf execution failed."
cd $olddir
fi
@@ -145,8 +144,10 @@ autotools_do_install() {
oe_runmake 'DESTDIR=${D}' install
}
-do_install_append() {
- for i in `find ${D} -name "*.la"` ; do \
+PACKAGE_PREPROCESS_FUNCS += "autotools_prepackage_lamangler"
+
+autotools_prepackage_lamangler () {
+ for i in `find ${PKGD} -name "*.la"` ; do \
sed -i -e '/^dependency_libs=/s,${WORKDIR}[[:alnum:]/\._+-]*/\([[:alnum:]\._+-]*\),${libdir}/\1,g' $i
sed -i -e s:${CROSS_DIR}/${HOST_SYS}::g $i
sed -i -e s:${CROSS_DIR}::g $i
@@ -173,14 +174,11 @@ autotools_stage_includes() {
}
autotools_stage_dir() {
- from="$1"
- to="$2"
- # This will remove empty directories so we can ignore them
- rmdir "$from" 2> /dev/null || true
- if [ -d "$from" ]; then
- mkdir -p "$to"
- cp -fpPR "$from"/* "$to"
- fi
+ sysroot_stage_dir $1 ${STAGE_TEMP_PREFIX}$2
+}
+
+autotools_stage_libdir() {
+ sysroot_stage_libdir $1 ${STAGE_TEMP_PREFIX}$2
}
autotools_stage_all() {
@@ -191,55 +189,9 @@ autotools_stage_all() {
rm -rf ${STAGE_TEMP}
mkdir -p ${STAGE_TEMP}
oe_runmake DESTDIR="${STAGE_TEMP}" install
- autotools_stage_dir ${STAGE_TEMP}/${includedir} ${STAGING_INCDIR}
- if [ "${BUILD_SYS}" = "${HOST_SYS}" ]; then
- autotools_stage_dir ${STAGE_TEMP}/${bindir} ${STAGING_DIR_HOST}${layout_bindir}
- autotools_stage_dir ${STAGE_TEMP}/${sbindir} ${STAGING_DIR_HOST}${layout_sbindir}
- autotools_stage_dir ${STAGE_TEMP}/${base_bindir} ${STAGING_DIR_HOST}${layout_base_bindir}
- autotools_stage_dir ${STAGE_TEMP}/${base_sbindir} ${STAGING_DIR_HOST}${layout_base_sbindir}
- autotools_stage_dir ${STAGE_TEMP}/${libexecdir} ${STAGING_DIR_HOST}${layout_libexecdir}
- if [ "${prefix}/lib" != "${libdir}" ]; then
- # python puts its files in here, make sure they are staged as well
- autotools_stage_dir ${STAGE_TEMP}/${prefix}/lib ${STAGING_DIR_HOST}${layout_prefix}/lib
- fi
- fi
- if [ -d ${STAGE_TEMP}/${libdir} ]
- then
- olddir=`pwd`
- cd ${STAGE_TEMP}/${libdir}
- las=$(find . -name \*.la -type f)
- cd $olddir
- echo "Found la files: $las"
- for i in $las
- do
- sed -e 's/^installed=yes$/installed=no/' \
- -e '/^dependency_libs=/s,${WORKDIR}[[:alnum:]/\._+-]*/\([[:alnum:]\._+-]*.la\),${STAGING_LIBDIR}/\1,g' \
- -e '/^dependency_libs=/s,${WORKDIR}[[:alnum:]/\._+-]*/\([[:alnum:]\._+-]*\),${STAGING_LIBDIR},g' \
- -e "/^dependency_libs=/s,\([[:space:]']\)${libdir},\1${STAGING_LIBDIR},g" \
- -i ${STAGE_TEMP}/${libdir}/$i
- done
- autotools_stage_dir ${STAGE_TEMP}/${libdir} ${STAGING_LIBDIR}
- fi
- # Ok, this is nasty. pkgconfig.bbclass is usually used to install .pc files,
- # however some packages rely on the presence of .pc files to enable/disable
- # their configurataions in which case we better should not install everything
- # unconditionally, but rather depend on the actual results of make install.
- # The good news though: a) there are not many packages doing this and
- # b) packaged staging will fix that anyways. :M:
- if [ "${AUTOTOOLS_STAGE_PKGCONFIG}" = "1" ]
- then
- if [ -e ${STAGE_TEMP}/${libdir}/pkgconfig/ ] ; then
- echo "cp -f ${STAGE_TEMP}/${libdir}/pkgconfig/*.pc ${STAGING_LIBDIR}/pkgconfig/"
- cp -f ${STAGE_TEMP}/${libdir}/pkgconfig/*.pc ${STAGING_LIBDIR}/pkgconfig/
- fi
- if [ -e ${STAGE_TEMP}/${datadir}/pkgconfig/ ] ; then
- echo "cp -f ${STAGE_TEMP}/${datadir}/pkgconfig/*.pc ${STAGING_DATADIR}/pkgconfig/"
- cp -f ${STAGE_TEMP}/${datadir}/pkgconfig/*.pc ${STAGING_DATADIR}/pkgconfig/
- fi
- fi
rm -rf ${STAGE_TEMP}/${mandir} || true
rm -rf ${STAGE_TEMP}/${infodir} || true
- autotools_stage_dir ${STAGE_TEMP}/${datadir} ${STAGING_DATADIR}
+ sysroot_stage_dirs ${STAGE_TEMP} ${STAGE_TEMP_PREFIX}
rm -rf ${STAGE_TEMP}
}
diff --git a/classes/autotools_stage.bbclass b/classes/autotools_stage.bbclass
index 3007eef969..ff0f4cd880 100644
--- a/classes/autotools_stage.bbclass
+++ b/classes/autotools_stage.bbclass
@@ -3,4 +3,3 @@ inherit autotools
do_stage () {
autotools_stage_all
}
-
diff --git a/classes/base.bbclass b/classes/base.bbclass
index 89ee917d20..384a67d3d6 100644
--- a/classes/base.bbclass
+++ b/classes/base.bbclass
@@ -49,15 +49,58 @@ def base_path_out(path, d):
# for MD5/SHA handling
def base_chk_load_parser(config_paths):
- import ConfigParser, os, bb
+ import ConfigParser
parser = ConfigParser.ConfigParser()
if len(parser.read(config_paths)) < 1:
raise ValueError("no ini files could be found")
return parser
+def base_chk_file_vars(parser, localpath, params, data):
+ try:
+ name = params["name"]
+ except KeyError:
+ return False
+ flagName = "%s.md5sum" % name
+ want_md5sum = bb.data.getVarFlag("SRC_URI", flagName, data)
+ flagName = "%s.sha256sum" % name
+ want_sha256sum = bb.data.getVarFlag("SRC_URI", flagName, data)
+
+ if (want_sha256sum == None and want_md5sum == None):
+ # no checksums to check, nothing to do
+ return False
+
+ if not os.path.exists(localpath):
+ localpath = base_path_out(localpath, data)
+ bb.note("The localpath does not exist '%s'" % localpath)
+ raise Exception("The path does not exist '%s'" % localpath)
+
+ if want_md5sum:
+ try:
+ md5pipe = os.popen('PATH=%s md5sum %s' % (bb.data.getVar('PATH', data, True), localpath))
+ md5data = (md5pipe.readline().split() or [ "" ])[0]
+ md5pipe.close()
+ except OSError, e:
+ raise Exception("Executing md5sum failed")
+ if want_md5sum != md5data:
+ bb.note("The MD5Sums did not match. Wanted: '%s' and Got: '%s'" % (want_md5sum, md5data))
+ raise Exception("MD5 Sums do not match. Wanted: '%s' Got: '%s'" % (want_md5sum, md5data))
+
+ if want_sha256sum:
+ try:
+ shapipe = os.popen('PATH=%s oe_sha256sum %s' % (bb.data.getVar('PATH', data, True), localpath))
+ sha256data = (shapipe.readline().split() or [ "" ])[0]
+ shapipe.close()
+ except OSError, e:
+ raise Exception("Executing shasum failed")
+ if want_sha256sum != sha256data:
+ bb.note("The SHA256Sums did not match. Wanted: '%s' and Got: '%s'" % (want_sha256sum, sha256data))
+ raise Exception("SHA256 Sums do not match. Wanted: '%s' Got: '%s'" % (want_sha256sum, sha256data))
+
+ return True
+
+
def base_chk_file(parser, pn, pv, src_uri, localpath, data):
- import os, bb
no_checksum = False
# Try PN-PV-SRC_URI first and then try PN-SRC_URI
# we rely on the get method to create errors
@@ -128,7 +171,6 @@ def base_chk_file(parser, pn, pv, src_uri, localpath, data):
def base_dep_prepend(d):
- import bb
#
# Ideally this will check a flag so we will operate properly in
# the case where host == build == target, for now we don't work in
@@ -150,7 +192,6 @@ def base_dep_prepend(d):
return deps
def base_read_file(filename):
- import bb
try:
f = file( filename, "r" )
except IOError, reason:
@@ -166,21 +207,18 @@ def base_ifelse(condition, iftrue = True, iffalse = False):
return iffalse
def base_conditional(variable, checkvalue, truevalue, falsevalue, d):
- import bb
if bb.data.getVar(variable,d,1) == checkvalue:
return truevalue
else:
return falsevalue
def base_less_or_equal(variable, checkvalue, truevalue, falsevalue, d):
- import bb
if float(bb.data.getVar(variable,d,1)) <= float(checkvalue):
return truevalue
else:
return falsevalue
def base_version_less_or_equal(variable, checkvalue, truevalue, falsevalue, d):
- import bb
result = bb.vercmp(bb.data.getVar(variable,d,True), checkvalue)
if result <= 0:
return truevalue
@@ -188,7 +226,6 @@ def base_version_less_or_equal(variable, checkvalue, truevalue, falsevalue, d):
return falsevalue
def base_contains(variable, checkvalues, truevalue, falsevalue, d):
- import bb
matches = 0
if type(checkvalues).__name__ == "str":
checkvalues = [checkvalues]
@@ -200,36 +237,24 @@ def base_contains(variable, checkvalues, truevalue, falsevalue, d):
return falsevalue
def base_both_contain(variable1, variable2, checkvalue, d):
- import bb
if bb.data.getVar(variable1,d,1).find(checkvalue) != -1 and bb.data.getVar(variable2,d,1).find(checkvalue) != -1:
return checkvalue
else:
return ""
DEPENDS_prepend="${@base_dep_prepend(d)} "
+DEPENDS_virtclass-native_prepend="${@base_dep_prepend(d)} "
+DEPENDS_virtclass-nativesdk_prepend="${@base_dep_prepend(d)} "
-# Returns PN with various suffixes removed
-# or PN if no matching suffix was found.
-def base_package_name(d):
- import bb;
-
- pn = bb.data.getVar('PN', d, 1)
- if pn.endswith("-native"):
- pn = pn[0:-7]
- elif pn.endswith("-cross"):
- pn = pn[0:-6]
- elif pn.endswith("-initial"):
- pn = pn[0:-8]
- elif pn.endswith("-intermediate"):
- pn = pn[0:-13]
- elif pn.endswith("-sdk"):
- pn = pn[0:-4]
-
-
- return pn
+def base_prune_suffix(var, suffixes, d):
+ # See if var ends with any of the suffixes listed and
+ # remove it if found
+ for suffix in suffixes:
+ if var.endswith(suffix):
+ return var.replace(suffix, "")
+ return var
def base_set_filespath(path, d):
- import os, bb
bb.note("base_set_filespath usage is deprecated, %s should be fixed" % d.getVar("P", 1))
filespath = []
# The ":" ensures we have an 'empty' override
@@ -448,7 +473,6 @@ oe_libinstall() {
}
def package_stagefile(file, d):
- import bb, os
if bb.data.getVar('PSTAGING_ACTIVE', d, True) == "1":
destfile = file.replace(bb.data.getVar("TMPDIR", d, 1), bb.data.getVar("PSTAGE_TMPDIR_STAGE", d, 1))
@@ -529,21 +553,11 @@ python do_cleanall() {
do_cleanall[recrdeptask] = "do_clean"
addtask cleanall after do_clean
-#Uncomment this for bitbake 1.8.12
-#addtask rebuild after do_${BB_DEFAULT_TASK}
-addtask rebuild
+addtask rebuild after do_${BB_DEFAULT_TASK}
do_rebuild[dirs] = "${TOPDIR}"
do_rebuild[nostamp] = "1"
python base_do_rebuild() {
"""rebuild a package"""
- from bb import __version__
- try:
- from distutils.version import LooseVersion
- except ImportError:
- def LooseVersion(v): print "WARNING: sanity.bbclass can't compare versions without python-distutils"; return 1
- if (LooseVersion(__version__) < LooseVersion('1.8.11')):
- bb.build.exec_func('do_clean', d)
- bb.build.exec_task('do_' + bb.data.getVar('BB_DEFAULT_TASK', d, 1), d)
}
addtask mrproper
@@ -563,7 +577,6 @@ do_distclean[dirs] = "${TOPDIR}"
do_distclean[nostamp] = "1"
python base_do_distclean() {
"""clear downloaded sources, build and temp directories"""
- import os
bb.build.exec_func('do_clean', d)
@@ -670,15 +683,15 @@ python base_do_fetch() {
# Check each URI
for url in src_uri.split():
localpath = bb.data.expand(bb.fetch.localpath(url, localdata), localdata)
- (type,host,path,_,_,_) = bb.decodeurl(url)
+ (type,host,path,_,_,params) = bb.decodeurl(url)
uri = "%s://%s%s" % (type,host,path)
try:
- if type == "http" or type == "https" or type == "ftp" or type == "ftps":
- if not base_chk_file(parser, pn, pv,uri, localpath, d):
- if not bb.data.getVar("OE_ALLOW_INSECURE_DOWNLOADS",d, True):
- bb.fatal("%s-%s: %s has no entry in conf/checksums.ini, not checking URI" % (pn,pv,uri))
+ if type in [ "http", "https", "ftp", "ftps" ]:
+ if not (base_chk_file_vars(parser, localpath, params, d) or base_chk_file(parser, pn, pv,uri, localpath, d)):
+ if not bb.data.getVar("OE_ALLOW_INSECURE_DOWNLOADS", d, True):
+ bb.fatal("%s-%s: %s has no checksum defined, cannot check archive integrity" % (pn,pv,uri))
else:
- bb.note("%s-%s: %s has no entry in conf/checksums.ini, not checking URI" % (pn,pv,uri))
+ bb.note("%s-%s: %s has no checksum defined, archive integrity not checked" % (pn,pv,uri))
except Exception:
raise bb.build.FuncFailed("Checksum of '%s' failed" % uri)
}
@@ -741,7 +754,7 @@ def subprocess_setup():
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
def oe_unpack_file(file, data, url = None):
- import bb, os, subprocess
+ import subprocess
if not url:
url = "file://%s" % file
dots = file.split(".")
@@ -819,7 +832,7 @@ def oe_unpack_file(file, data, url = None):
addtask unpack after do_fetch
do_unpack[dirs] = "${WORKDIR}"
python base_do_unpack() {
- import re, os
+ import re
localdata = bb.data.createCopy(d)
bb.data.update_data(localdata)
@@ -846,7 +859,6 @@ METADATA_REVISION = "${@base_get_scm_revision(d)}"
METADATA_BRANCH = "${@base_get_scm_branch(d)}"
def base_get_scm(d):
- import os
from bb import which
baserepo = os.path.dirname(os.path.dirname(which(d.getVar("BBPATH", 1), "classes/base.bbclass")))
for (scm, scmpath) in {"svn": ".svn",
@@ -907,7 +919,6 @@ def base_get_metadata_svn_revision(path, d):
return revision
def base_get_metadata_git_branch(path, d):
- import os
branch = os.popen('cd %s; PATH=%s git symbolic-ref HEAD 2>/dev/null' % (path, d.getVar("PATH", 1))).read().rstrip()
if len(branch) != 0:
@@ -915,7 +926,6 @@ def base_get_metadata_git_branch(path, d):
return "<unknown>"
def base_get_metadata_git_revision(path, d):
- import os
rev = os.popen("cd %s; PATH=%s git show-ref HEAD 2>/dev/null" % (path, d.getVar("PATH", 1))).read().split(" ")[0].rstrip()
if len(rev) != 0:
return rev
@@ -926,7 +936,7 @@ addhandler base_eventhandler
python base_eventhandler() {
from bb import note, error, data
from bb.event import Handled, NotHandled, getName
- import os
+
name = getName(e)
if name == "TaskCompleted":
@@ -999,12 +1009,87 @@ base_do_compile() {
fi
}
-base_do_stage () {
- :
+
+sysroot_stage_dir() {
+ src="$1"
+ dest="$2"
+ # This will remove empty directories so we can ignore them
+ rmdir "$src" 2> /dev/null || true
+ if [ -d "$src" ]; then
+ mkdir -p "$dest"
+ cp -fpPR "$src"/* "$dest"
+ fi
+}
+
+sysroot_stage_libdir() {
+ src="$1"
+ dest="$2"
+
+ olddir=`pwd`
+ cd $src
+ las=$(find . -name \*.la -type f)
+ cd $olddir
+ echo "Found la files: $las"
+ for i in $las
+ do
+ sed -e 's/^installed=yes$/installed=no/' \
+ -e '/^dependency_libs=/s,${WORKDIR}[[:alnum:]/\._+-]*/\([[:alnum:]\._+-]*\),${STAGING_LIBDIR}/\1,g' \
+ -e "/^dependency_libs=/s,\([[:space:]']\)${libdir},\1${STAGING_LIBDIR},g" \
+ -i $src/$i
+ done
+ sysroot_stage_dir $src $dest
+}
+
+sysroot_stage_dirs() {
+ from="$1"
+ to="$2"
+
+ sysroot_stage_dir $from${includedir} $to${STAGING_INCDIR}
+ if [ "${BUILD_SYS}" = "${HOST_SYS}" ]; then
+ sysroot_stage_dir $from${bindir} $to${STAGING_DIR_HOST}${bindir}
+ sysroot_stage_dir $from${sbindir} $to${STAGING_DIR_HOST}${sbindir}
+ sysroot_stage_dir $from${base_bindir} $to${STAGING_DIR_HOST}${base_bindir}
+ sysroot_stage_dir $from${base_sbindir} $to${STAGING_DIR_HOST}${base_sbindir}
+ sysroot_stage_dir $from${libexecdir} $to${STAGING_DIR_HOST}${libexecdir}
+ if [ "${prefix}/lib" != "${libdir}" ]; then
+ # python puts its files in here, make sure they are staged as well
+ autotools_stage_dir $from/${prefix}/lib $to${STAGING_DIR_HOST}${prefix}/lib
+ fi
+ fi
+ if [ -d $from${libdir} ]
+ then
+ sysroot_stage_libdir $from/${libdir} $to${STAGING_LIBDIR}
+ fi
+ if [ -d $from${base_libdir} ]
+ then
+ sysroot_stage_libdir $from${base_libdir} $to${STAGING_DIR_HOST}${base_libdir}
+ fi
+ sysroot_stage_dir $from${datadir} $to${STAGING_DATADIR}
}
-do_populate_staging[dirs] = "${STAGING_DIR_TARGET}/${layout_bindir} ${STAGING_DIR_TARGET}/${layout_libdir} \
- ${STAGING_DIR_TARGET}/${layout_includedir} \
+sysroot_stage_all() {
+ sysroot_stage_dirs ${D} ${SYSROOT_DESTDIR}
+}
+
+def is_legacy_staging(d):
+ stagefunc = bb.data.getVar('do_stage', d, True)
+ legacy = True
+ if stagefunc is None:
+ legacy = False
+ elif stagefunc.strip() == "autotools_stage_all":
+ legacy = False
+ elif stagefunc.strip() == "do_stage_native" and bb.data.getVar('AUTOTOOLS_NATIVE_STAGE_INSTALL', d, 1) == "1":
+ legacy = False
+ elif bb.data.getVar('NATIVE_INSTALL_WORKS', d, 1) == "1":
+ legacy = False
+ if bb.data.getVar('PSTAGE_BROKEN_DESTDIR', d, 1) == "1":
+ legacy = True
+ if bb.data.getVar('FORCE_LEGACY_STAGING', d, 1) == "1":
+ legacy = True
+ return legacy
+
+do_populate_staging[dirs] = "${STAGING_DIR_TARGET}/${bindir} ${STAGING_DIR_TARGET}/${libdir} \
+ ${STAGING_DIR_TARGET}/${includedir} \
${STAGING_BINDIR_NATIVE} ${STAGING_LIBDIR_NATIVE} \
${STAGING_INCDIR_NATIVE} \
${STAGING_DATADIR} \
@@ -1013,8 +1098,61 @@ do_populate_staging[dirs] = "${STAGING_DIR_TARGET}/${layout_bindir} ${STAGING_DI
# Could be compile but populate_staging and do_install shouldn't run at the same time
addtask populate_staging after do_install
+SYSROOT_PREPROCESS_FUNCS ?= ""
+SYSROOT_DESTDIR = "${WORKDIR}/sysroot-destdir/"
+SYSROOT_LOCK = "${STAGING_DIR}/staging.lock"
+
+python populate_staging_prehook () {
+ return
+}
+
+python populate_staging_posthook () {
+ return
+}
+
+packagedstaging_fastpath () {
+ :
+}
+
python do_populate_staging () {
- bb.build.exec_func('do_stage', d)
+ #
+ # if do_stage exists, we're legacy. In that case run the do_stage,
+ # modify the SYSROOT_DESTDIR variable and then run the staging preprocess
+ # functions against staging directly.
+ #
+ # Otherwise setup a destdir, copy the results from do_install
+ # and run the staging preprocess against that
+ #
+ pstageactive = (bb.data.getVar("PSTAGING_ACTIVE", d, True) == "1")
+ lockfile = bb.data.getVar("SYSROOT_LOCK", d, True)
+ stagefunc = bb.data.getVar('do_stage', d, True)
+ legacy = is_legacy_staging(d)
+ if legacy:
+ bb.data.setVar("SYSROOT_DESTDIR", "", d)
+ bb.note("Legacy staging mode for %s" % bb.data.getVar("FILE", d, True))
+ if bb.data.getVarFlags('do_stage', d) is None:
+ bb.fatal("This recipe (%s) has a do_stage_prepend or do_stage_append and do_stage now doesn't exist. Please rename this to do_stage()" % bb.data.getVar("FILE", d, True))
+ lock = bb.utils.lockfile(lockfile)
+ bb.build.exec_func('populate_staging_prehook', d)
+ bb.build.exec_func('do_stage', d)
+ for f in (bb.data.getVar('SYSROOT_PREPROCESS_FUNCS', d, True) or '').split():
+ bb.build.exec_func(f, d)
+ bb.build.exec_func('populate_staging_posthook', d)
+ bb.utils.unlockfile(lock)
+ else:
+ dest = bb.data.getVar('D', d, True)
+ sysrootdest = bb.data.expand('${SYSROOT_DESTDIR}${STAGING_DIR_TARGET}', d)
+ bb.mkdirhier(sysrootdest)
+
+ bb.build.exec_func("sysroot_stage_all", d)
+ #os.system('cp -pPR %s/* %s/' % (dest, sysrootdest))
+ for f in (bb.data.getVar('SYSROOT_PREPROCESS_FUNCS', d, True) or '').split():
+ bb.build.exec_func(f, d)
+ bb.build.exec_func("packagedstaging_fastpath", d)
+
+ lock = bb.utils.lockfile(lockfile)
+ os.system(bb.data.expand('cp -pPR ${SYSROOT_DESTDIR}${TMPDIR}/* ${TMPDIR}/', d))
+ bb.utils.unlockfile(lock)
}
addtask install after do_compile
@@ -1034,6 +1172,8 @@ addtask build after do_populate_staging
do_build = ""
do_build[func] = "1"
+inherit packagedata
+
# Functions that update metadata based on files outputted
# during the build process.
@@ -1054,88 +1194,6 @@ def explode_deps(s):
r.append(i)
return r
-def packaged(pkg, d):
- import os, bb
- return os.access(get_subpkgedata_fn(pkg, d) + '.packaged', os.R_OK)
-
-def read_pkgdatafile(fn):
- pkgdata = {}
-
- def decode(str):
- import codecs
- c = codecs.getdecoder("string_escape")
- return c(str)[0]
-
- import os
- if os.access(fn, os.R_OK):
- import re
- f = file(fn, 'r')
- lines = f.readlines()
- f.close()
- r = re.compile("([^:]+):\s*(.*)")
- for l in lines:
- m = r.match(l)
- if m:
- pkgdata[m.group(1)] = decode(m.group(2))
-
- return pkgdata
-
-def get_subpkgedata_fn(pkg, d):
- import bb, os
- archs = bb.data.expand("${PACKAGE_ARCHS}", d).split(" ")
- archs.reverse()
- pkgdata = bb.data.expand('${TMPDIR}/pkgdata/', d)
- targetdir = bb.data.expand('${TARGET_VENDOR}-${TARGET_OS}/runtime/', d)
- for arch in archs:
- fn = pkgdata + arch + targetdir + pkg
- if os.path.exists(fn):
- return fn
- return bb.data.expand('${PKGDATA_DIR}/runtime/%s' % pkg, d)
-
-def has_subpkgdata(pkg, d):
- import bb, os
- return os.access(get_subpkgedata_fn(pkg, d), os.R_OK)
-
-def read_subpkgdata(pkg, d):
- import bb
- return read_pkgdatafile(get_subpkgedata_fn(pkg, d))
-
-def has_pkgdata(pn, d):
- import bb, os
- fn = bb.data.expand('${PKGDATA_DIR}/%s' % pn, d)
- return os.access(fn, os.R_OK)
-
-def read_pkgdata(pn, d):
- import bb
- fn = bb.data.expand('${PKGDATA_DIR}/%s' % pn, d)
- return read_pkgdatafile(fn)
-
-python read_subpackage_metadata () {
- import bb
- data = read_pkgdata(bb.data.getVar('PN', d, 1), d)
-
- for key in data.keys():
- bb.data.setVar(key, data[key], d)
-
- for pkg in bb.data.getVar('PACKAGES', d, 1).split():
- sdata = read_subpkgdata(pkg, d)
- for key in sdata.keys():
- bb.data.setVar(key, sdata[key], d)
-}
-
-
-#
-# Collapse FOO_pkg variables into FOO
-#
-def read_subpkgdata_dict(pkg, d):
- import bb
- ret = {}
- subd = read_pkgdatafile(get_subpkgedata_fn(pkg, d))
- for var in subd:
- newvar = var.replace("_" + pkg, "")
- ret[newvar] = subd[var]
- return ret
-
# Make sure MACHINE isn't exported
# (breaks binutils at least)
MACHINE[unexport] = "1"
@@ -1151,7 +1209,7 @@ DISTRO[unexport] = "1"
def base_after_parse(d):
- import bb, os, exceptions
+ import exceptions
source_mirror_fetch = bb.data.getVar('SOURCE_MIRROR_FETCH', d, 0)
if not source_mirror_fetch:
@@ -1234,19 +1292,12 @@ def base_after_parse(d):
bb.data.setVar('MULTIMACH_ARCH', multiarch, d)
python () {
- import bb
- from bb import __version__
base_after_parse(d)
+ if is_legacy_staging(d):
+ bb.debug(1, "Legacy staging mode for %s" % bb.data.getVar("FILE", d, True))
+ if bb.data.getVarFlags('do_stage', d) is None:
+ bb.error("This recipe (%s) has a do_stage_prepend or do_stage_append and do_stage now doesn't exist. Please rename this to do_stage()" % bb.data.getVar("FILE", d, True))
- # Remove this for bitbake 1.8.12
- try:
- from distutils.version import LooseVersion
- except ImportError:
- def LooseVersion(v): print "WARNING: sanity.bbclass can't compare versions without python-distutils"; return 1
- if (LooseVersion(__version__) >= LooseVersion('1.8.11')):
- deps = bb.data.getVarFlag('do_rebuild', 'deps', d) or []
- deps.append('do_' + bb.data.getVar('BB_DEFAULT_TASK', d, 1))
- bb.data.setVarFlag('do_rebuild', 'deps', deps, d)
}
def check_app_exists(app, d):
@@ -1276,7 +1327,7 @@ inherit patch
# Move to autotools.bbclass?
inherit siteinfo
-EXPORT_FUNCTIONS do_setscene do_clean do_mrproper do_distclean do_fetch do_unpack do_configure do_compile do_install do_package do_populate_pkgs do_stage do_rebuild do_fetchall
+EXPORT_FUNCTIONS do_setscene do_clean do_mrproper do_distclean do_fetch do_unpack do_configure do_compile do_install do_package do_populate_pkgs do_rebuild do_fetchall
MIRRORS[func] = "0"
MIRRORS () {
diff --git a/classes/binconfig.bbclass b/classes/binconfig.bbclass
index 5789903178..b3b2236709 100644
--- a/classes/binconfig.bbclass
+++ b/classes/binconfig.bbclass
@@ -1,10 +1,7 @@
-inherit base
-
FILES_${PN}-dev += "${bindir}/*-config"
# The namespaces can clash here hence the two step replace
def get_binconfig_mangle(d):
- import bb.data
s = "-e ''"
if not bb.data.inherits_class('native', d):
optional_quote = r"\(\"\?\)"
@@ -18,8 +15,8 @@ def get_binconfig_mangle(d):
s += " -e 's:OELIBDIR:${STAGING_LIBDIR}:;'"
s += " -e 's:OEINCDIR:${STAGING_INCDIR}:;'"
s += " -e 's:OEDATADIR:${STAGING_DATADIR}:'"
- s += " -e 's:OEPREFIX:${STAGING_DIR_HOST}${layout_prefix}:'"
- s += " -e 's:OEEXECPREFIX:${STAGING_DIR_HOST}${layout_exec_prefix}:'"
+ s += " -e 's:OEPREFIX:${STAGING_DIR_HOST}${prefix}:'"
+ s += " -e 's:OEEXECPREFIX:${STAGING_DIR_HOST}${exec_prefix}:'"
s += " -e 's:-I${WORKDIR}:-I${STAGING_INCDIR}:'"
s += " -e 's:-L${WORKDIR}:-L${STAGING_LIBDIR}:'"
if bb.data.getVar("OE_BINCONFIG_EXTRA_MANGLE", d):
@@ -28,34 +25,34 @@ def get_binconfig_mangle(d):
BINCONFIG_GLOB ?= "*-config"
-do_install_append() {
-
- #the 'if' protects native packages, since we can't easily check for bb.data.inherits_class('native', d) in shell
- if [ -e ${D}${bindir} ] ; then
- for config in `find ${S} -name '${BINCONFIG_GLOB}'`; do
- cat $config | sed \
- -e 's:${STAGING_LIBDIR}:${libdir}:g;' \
- -e 's:${STAGING_INCDIR}:${includedir}:g;' \
- -e 's:${STAGING_DATADIR}:${datadir}:' \
- -e 's:${STAGING_DIR_HOST}${layout_prefix}:${prefix}:' > ${D}${bindir}/`basename $config`
- done
- fi
+PACKAGE_PREPROCESS_FUNCS += "binconfig_package_preprocess"
- for lafile in `find ${D} -name "*.la"` ; do
+binconfig_package_preprocess () {
+ for config in `find ${PKGD} -name '${BINCONFIG_GLOB}'`; do
+ sed -i \
+ -e 's:${STAGING_LIBDIR}:${libdir}:g;' \
+ -e 's:${STAGING_INCDIR}:${includedir}:g;' \
+ -e 's:${STAGING_DATADIR}:${datadir}:' \
+ -e 's:${STAGING_DIR_HOST}${prefix}:${prefix}:' \
+ $config
+ done
+ for lafile in `find ${PKGD} -name "*.la"` ; do
sed -i \
-e 's:${STAGING_LIBDIR}:${libdir}:g;' \
-e 's:${STAGING_INCDIR}:${includedir}:g;' \
-e 's:${STAGING_DATADIR}:${datadir}:' \
- -e 's:${STAGING_DIR_HOST}${layout_prefix}:${prefix}:' \
+ -e 's:${STAGING_DIR_HOST}${prefix}:${prefix}:' \
$lafile
done
}
-do_stage_append() {
+SYSROOT_PREPROCESS_FUNCS += "binconfig_sysroot_preprocess"
+
+binconfig_sysroot_preprocess () {
for config in `find ${S} -name '${BINCONFIG_GLOB}'`; do
configname=`basename $config`
- install -d ${STAGING_BINDIR_CROSS}
- cat $config | sed ${@get_binconfig_mangle(d)} > ${STAGING_BINDIR_CROSS}/$configname
- chmod u+x ${STAGING_BINDIR_CROSS}/$configname
+ install -d ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}
+ cat $config | sed ${@get_binconfig_mangle(d)} > ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}/$configname
+ chmod u+x ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}/$configname
done
}
diff --git a/classes/canadian-cross.bbclass b/classes/canadian-cross.bbclass
index 474fb1d2ba..514aaeb414 100644
--- a/classes/canadian-cross.bbclass
+++ b/classes/canadian-cross.bbclass
@@ -1,3 +1,8 @@
+#
+# Note this class is deprecated and replaced by cross-canadian.bbclass
+#
+
+
# Canadian cross packages are built indirectly via dependency,
# no need for them to be a direct target of 'world'
EXCLUDE_FROM_WORLD = "1"
@@ -41,31 +46,31 @@ oldincludedir = "${exec_prefix}/include"
# Path prefixes
export base_prefix = "${STAGING_DIR_HOST}"
-export prefix = "${STAGING_DIR_HOST}${layout_prefix}"
-export exec_prefix = "${STAGING_DIR_HOST}${layout_exec_prefix}"
+export prefix = "${STAGING_DIR_HOST}/usr"
+export exec_prefix = "${STAGING_DIR_HOST}/usr"
# Base paths
-export base_bindir = "${STAGING_DIR_HOST}${layout_base_bindir}"
-export base_sbindir = "${STAGING_DIR_HOST}${layout_base_sbindir}"
-export base_libdir = "${STAGING_DIR_HOST}${layout_base_libdir}"
+export base_bindir = "${STAGING_DIR_HOST}/bin"
+export base_sbindir = "${STAGING_DIR_HOST}/sbin"
+export base_libdir = "${STAGING_DIR_HOST}/lib"
# Architecture independent paths
-export datadir = "${STAGING_DIR_HOST}${layout_datadir}"
-export sysconfdir = "${STAGING_DIR_HOST}${layout_sysconfdir}"
-export sharedstatedir = "${STAGING_DIR_HOST}${layout_sharedstatedir}"
-export localstatedir = "${STAGING_DIR_HOST}${layout_localstatedir}"
-export infodir = "${STAGING_DIR_HOST}${layout_infodir}"
-export mandir = "${STAGING_DIR_HOST}${layout_mandir}"
-export docdir = "${STAGING_DIR_HOST}${layout_docdir}"
-export servicedir = "${STAGING_DIR_HOST}${layout_servicedir}"
+export datadir = "${STAGING_DIR_HOST}/usr/share"
+export sysconfdir = "${STAGING_DIR_HOST}/etc"
+export sharedstatedir = "${STAGING_DIR_HOST}/com"
+export localstatedir = "${STAGING_DIR_HOST}/var"
+export infodir = "${STAGING_DIR_HOST}/usr/info"
+export mandir = "${STAGING_DIR_HOST}/usr/man"
+export docdir = "${STAGING_DIR_HOST}/usr/doc"
+export servicedir = "${STAGING_DIR_HOST}/srv"
# Architecture dependent paths
-export bindir = "${STAGING_DIR_HOST}${layout_bindir}"
-export sbindir = "${STAGING_DIR_HOST}${layout_sbindir}"
-export libexecdir = "${STAGING_DIR_HOST}${layout_libexecdir}"
-export libdir = "${STAGING_DIR_HOST}${layout_libdir}"
-export includedir = "${STAGING_DIR_HOST}${layout_includedir}"
-export oldincludedir = "${STAGING_DIR_HOST}${layout_includedir}"
+export bindir = "${STAGING_DIR_HOST}/usr/bin"
+export sbindir = "${STAGING_DIR_HOST}/usr/sbin"
+export libexecdir = "${STAGING_DIR_HOST}/usr/libexec"
+export libdir = "${STAGING_DIR_HOST}/usr/lib"
+export includedir = "${STAGING_DIR_HOST}/usr/include"
+export oldincludedir = "${STAGING_DIR_HOST}/usr/include"
do_stage () {
oe_runmake install
diff --git a/classes/canadian-native.bbclass b/classes/canadian-native.bbclass
index d572ab5990..3cd003cb4b 100644
--- a/classes/canadian-native.bbclass
+++ b/classes/canadian-native.bbclass
@@ -1,4 +1,6 @@
-inherit base
+#
+# Note this class is deprecated and replaced by nativesdk.bbclass
+#
# Canadian native packages are built indirectly via dependency,
# no need for them to be a direct target of 'world'
@@ -43,33 +45,14 @@ export AS = "${SDK_PREFIX}as"
export RANLIB = "${SDK_PREFIX}ranlib"
export STRIP = "${SDK_PREFIX}strip"
-# Path prefixes
-export base_prefix = "${STAGING_DIR_HOST}"
-export prefix = "${STAGING_DIR_HOST}${layout_prefix}"
-export exec_prefix = "${STAGING_DIR_HOST}${layout_exec_prefix}"
-# Base paths
-export base_bindir = "${STAGING_DIR_HOST}${layout_base_bindir}"
-export base_sbindir = "${STAGING_DIR_HOST}${layout_base_sbindir}"
-export base_libdir = "${STAGING_DIR_HOST}${layout_base_libdir}"
+# Change to place files in SDKPATH
+prefix = "${SDKPATH}"
+exec_prefix = "${SDKPATH}"
+base_prefix = "${SDKPATH}"
-# Architecture independent paths
-export datadir = "${STAGING_DIR_HOST}${layout_datadir}"
-export sysconfdir = "${STAGING_DIR_HOST}${layout_sysconfdir}"
-export sharedstatedir = "${STAGING_DIR_HOST}${layout_sharedstatedir}"
-export localstatedir = "${STAGING_DIR_HOST}${layout_localstatedir}"
-export infodir = "${STAGING_DIR_HOST}${layout_infodir}"
-export mandir = "${STAGING_DIR_HOST}${layout_mandir}"
-export docdir = "${STAGING_DIR_HOST}${layout_docdir}"
-export servicedir = "${STAGING_DIR_HOST}${layout_servicedir}"
-
-# Architecture dependent paths
-export bindir = "${STAGING_DIR_HOST}${layout_bindir}"
-export sbindir = "${STAGING_DIR_HOST}${layout_sbindir}"
-export libexecdir = "${STAGING_DIR_HOST}${layout_libexecdir}"
-export libdir = "${STAGING_DIR_HOST}${layout_libdir}"
-export includedir = "${STAGING_DIR_HOST}${layout_includedir}"
-export oldincludedir = "${STAGING_DIR_HOST}${layout_includedir}"
+export PKG_CONFIG_DIR = "${STAGING_DIR_HOST}${libdir}/pkgconfig"
+export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}"
do_stage () {
if [ "${INHIBIT_NATIVE_STAGE_INSTALL}" != "1" ]
diff --git a/classes/canadian-sdk.bbclass b/classes/canadian-sdk.bbclass
index a6c5552310..94db57796e 100644
--- a/classes/canadian-sdk.bbclass
+++ b/classes/canadian-sdk.bbclass
@@ -1,3 +1,7 @@
+#
+# Note this class is deprecated and replaced by crosssdk.bbclass
+#
+
# Canadian SDK packages are built either explicitly by the user,
# or indirectly via dependency. No need to be in 'world'.
EXCLUDE_FROM_WORLD = "1"
diff --git a/classes/canadian.bbclass b/classes/canadian.bbclass
index f359a8df7f..8edce1412c 100644
--- a/classes/canadian.bbclass
+++ b/classes/canadian.bbclass
@@ -1,3 +1,8 @@
+#
+# Note this class is deprecated
+#
+
+
# For Canadian SDKs we need to know what these values start out as, and use
# them as well as the updated ones.
OLD_PACKAGE_ARCH := "${PACKAGE_ARCH}"
diff --git a/classes/chicken.bbclass b/classes/chicken.bbclass
new file mode 100644
index 0000000000..5ebe1ff462
--- /dev/null
+++ b/classes/chicken.bbclass
@@ -0,0 +1,11 @@
+def chicken_arch(bb, d):
+ import re
+ arch_pattern = re.compile('^i.*86$')
+ target_arch = d.getVar("TARGET_ARCH", 1)
+ if arch_pattern.match(target_arch):
+ return 'x86'
+ else:
+ return target_arch
+
+CHICKEN_ARCH = "${@chicken_arch(bb, d)}"
+
diff --git a/classes/cmake.bbclass b/classes/cmake.bbclass
index 4978421b63..f21c4d6545 100644
--- a/classes/cmake.bbclass
+++ b/classes/cmake.bbclass
@@ -20,9 +20,27 @@ cmake_do_configure() {
cmake ${OECMAKE_SOURCEPATH} \
-DCMAKE_INSTALL_PREFIX:PATH=${prefix} \
- -DCMAKE_FIND_ROOT_PATH=${STAGING_DIR_HOST} \
+ -DCMAKE_FIND_ROOT_PATH:PATH=${STAGING_DIR_HOST} \
${EXTRA_OECMAKE} \
-Wno-dev
}
-EXPORT_FUNCTIONS do_configure
+cmake_do_compile() {
+ if [ ${OECMAKE_BUILDPATH} ]
+ then
+ cd ${OECMAKE_BUILDPATH}
+ fi
+
+ base_do_compile
+}
+
+cmake_do_install() {
+ if [ ${OECMAKE_BUILDPATH} ];
+ then
+ cd ${OECMAKE_BUILDPATH}
+ fi
+
+ autotools_do_install
+}
+
+EXPORT_FUNCTIONS do_configure do_compile do_install
diff --git a/classes/cpan-base.bbclass b/classes/cpan-base.bbclass
index 19d431ce72..82fd5b459a 100644
--- a/classes/cpan-base.bbclass
+++ b/classes/cpan-base.bbclass
@@ -9,8 +9,8 @@ RDEPENDS += "${@["perl", ""][(bb.data.inherits_class('native', d))]}"
# Determine the staged version of perl from the perl configuration file
def get_perl_version(d):
- import os, bb, re
- cfg = bb.data.expand('${STAGING_DIR_HOST}/perl/config.sh', d)
+ import re
+ cfg = bb.data.expand('${STAGING_LIBDIR}/perl/config.sh', d)
try:
f = open(cfg, 'r')
except IOError:
@@ -33,7 +33,6 @@ def is_new_perl(d):
# Determine where the library directories are
def perl_get_libdirs(d):
- import bb
libdir = bb.data.getVar('libdir', d, 1)
if is_new_perl(d) == "yes":
libdirs = libdir + '/perl5'
@@ -42,7 +41,6 @@ def perl_get_libdirs(d):
return libdirs
def is_target(d):
- import bb
if not bb.data.inherits_class('native', d):
return "yes"
return "no"
diff --git a/classes/cpan.bbclass b/classes/cpan.bbclass
index 7b3faa2561..66054bc755 100644
--- a/classes/cpan.bbclass
+++ b/classes/cpan.bbclass
@@ -16,7 +16,7 @@ export PERL_ARCHLIB = "${STAGING_LIBDIR}/perl/${@get_perl_version(d)}"
cpan_do_configure () {
yes '' | perl Makefile.PL ${EXTRA_CPANFLAGS}
if [ "${BUILD_SYS}" != "${HOST_SYS}" ]; then
- . ${STAGING_DIR_TARGET}/perl/config.sh
+ . ${STAGING_LIBDIR}/perl/config.sh
if [ "${IS_NEW_PERL}" = "yes" ]; then
sed -i -e "s:\(SITELIBEXP = \).*:\1${sitelibexp}:" \
-e "s:\(SITEARCHEXP = \).*:\1${sitearchexp}:" \
diff --git a/classes/cpan_build.bbclass b/classes/cpan_build.bbclass
index c3804ff4cc..b2ec8255de 100644
--- a/classes/cpan_build.bbclass
+++ b/classes/cpan_build.bbclass
@@ -12,7 +12,6 @@ INHIBIT_NATIVE_STAGE_INSTALL = "1"
# libmodule-build-perl)
#
def cpan_build_dep_prepend(d):
- import bb;
if bb.data.getVar('CPAN_BUILD_DEPS', d, 1):
return ''
pn = bb.data.getVar('PN', d, 1)
@@ -25,7 +24,7 @@ DEPENDS_prepend = "${@cpan_build_dep_prepend(d)}"
cpan_build_do_configure () {
if [ ${@is_target(d)} == "yes" ]; then
# build for target
- . ${STAGING_DIR_TARGET}/perl/config.sh
+ . ${STAGING_LIBDIR}/perl/config.sh
if [ "${IS_NEW_PERL}" = "yes" ]; then
perl Build.PL --installdirs vendor \
--destdir ${D} \
diff --git a/classes/cross-canadian.bbclass b/classes/cross-canadian.bbclass
new file mode 100644
index 0000000000..bd738ecd4d
--- /dev/null
+++ b/classes/cross-canadian.bbclass
@@ -0,0 +1,46 @@
+# SDK packages are built either explicitly by the user,
+# or indirectly via dependency. No need to be in 'world'.
+EXCLUDE_FROM_WORLD = "1"
+
+# Save MULTIMACH_ARCH
+OLD_MULTIMACH_ARCH := "${MULTIMACH_ARCH}"
+# Save PACKAGE_ARCH
+OLD_PACKAGE_ARCH := ${PACKAGE_ARCH}
+PACKAGE_ARCH = "${SDK_ARCH}-${TARGET_ARCH}-canadian"
+PACKAGE_ARCHS = "${PACKAGE_ARCH}"
+# Also save BASE_PACKAGE_ARCH since HOST_ARCH can influence it
+OLD_BASE_PACKAGE_ARCH := "${BASE_PACKAGE_ARCH}"
+BASE_PACKAGE_ARCH = "${OLD_BASE_PACKAGE_ARCH}"
+
+INHIBIT_DEFAULT_DEPS = "1"
+
+STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_SYS}-nativesdk"
+STAGING_DIR_TARGET = "${STAGING_DIR}/${BASEPKG_TARGET_SYS}"
+
+PATH_append = ":${TMPDIR}/cross/${HOST_ARCH}/${bindir_cross}"
+PKGDATA_DIR = "${TMPDIR}/pkgdata/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}"
+
+HOST_ARCH = "${SDK_ARCH}"
+HOST_VENDOR = "${SDK_VENDOR}"
+HOST_OS = "${SDK_OS}"
+HOST_PREFIX = "${SDK_PREFIX}"
+HOST_CC_ARCH = "${SDK_CC_ARCH}"
+
+CPPFLAGS = "${BUILDSDK_CPPFLAGS}"
+CFLAGS = "${BUILDSDK_CFLAGS}"
+CXXFLAGS = "${BUILDSDK_CFLAGS}"
+LDFLAGS = "${BUILDSDK_LDFLAGS}"
+
+# Change to place files in SDKPATH
+prefix = "${SDKPATH}"
+exec_prefix = "${SDKPATH}"
+base_prefix = "${SDKPATH}"
+
+FILES_${PN} = "${prefix}"
+FILES_${PN}-dbg += "${prefix}/.debug \
+ ${prefix}/bin/.debug \
+ "
+
+export PKG_CONFIG_DIR = "${STAGING_DIR_HOST}${layout_libdir}/pkgconfig"
+export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}"
+
diff --git a/classes/cross.bbclass b/classes/cross.bbclass
index 68e3803f3e..1de157c0f5 100644
--- a/classes/cross.bbclass
+++ b/classes/cross.bbclass
@@ -28,34 +28,11 @@ LDFLAGS_build-darwin = "-L${STAGING_LIBDIR_NATIVE}"
TOOLCHAIN_OPTIONS = ""
# Overrides for paths
-
-# Path prefixes
-base_prefix = "${exec_prefix}"
prefix = "${CROSS_DIR}"
+base_prefix = "${prefix}"
exec_prefix = "${prefix}"
-
-# Base paths
-base_bindir = "${base_prefix}/bin"
base_sbindir = "${base_prefix}/bin"
-base_libdir = "${base_prefix}/lib"
-
-# Architecture independent paths
-datadir = "${prefix}/share"
-sysconfdir = "${prefix}/etc"
-sharedstatedir = "${prefix}/com"
-localstatedir = "${prefix}/var"
-infodir = "${datadir}/info"
-mandir = "${datadir}/man"
-docdir = "${datadir}/doc"
-servicedir = "${prefix}/srv"
-
-# Architecture dependent paths
-bindir = "${exec_prefix}/bin"
sbindir = "${exec_prefix}/bin"
-libexecdir = "${exec_prefix}/libexec"
-libdir = "${exec_prefix}/lib"
-includedir = "${exec_prefix}/include"
-oldincludedir = "${exec_prefix}/include"
do_stage () {
oe_runmake install
diff --git a/classes/crosssdk.bbclass b/classes/crosssdk.bbclass
new file mode 100644
index 0000000000..0b1af8fc2f
--- /dev/null
+++ b/classes/crosssdk.bbclass
@@ -0,0 +1,15 @@
+inherit cross
+
+PACKAGES = ""
+
+BASE_PACKAGE_ARCH = "${SDK_ARCH}"
+PACKAGE_ARCH = "${BASE_PACKAGE_ARCH}"
+STAGING_DIR_TARGET = "${STAGING_DIR}/${SDK_ARCH}-nativesdk${SDK_VENDOR}-${SDK_OS}"
+
+TARGET_ARCH = "${SDK_ARCH}"
+TARGET_VENDOR = "${SDK_VENDOR}"
+TARGET_OS = "${SDK_OS}"
+TARGET_PREFIX = "${SDK_PREFIX}"
+TARGET_CC_ARCH = "${SDK_CC_ARCH}"
+
+
diff --git a/classes/debian.bbclass b/classes/debian.bbclass
index 0afe9fcc39..8f6e7d88cf 100644
--- a/classes/debian.bbclass
+++ b/classes/debian.bbclass
@@ -16,7 +16,7 @@ do_package_write_rpm[rdeptask] = "do_package"
python debian_package_name_hook () {
import glob, copy, stat, errno, re
- workdir = bb.data.getVar('WORKDIR', d, 1)
+ pkgdest = bb.data.getVar('PKGDEST', d, 1)
packages = bb.data.getVar('PACKAGES', d, 1)
def socrunch(s):
@@ -45,7 +45,7 @@ python debian_package_name_hook () {
sonames = []
has_bins = 0
has_libs = 0
- pkg_dir = os.path.join(workdir, "install", orig_pkg)
+ pkg_dir = os.path.join(pkgdest, orig_pkg)
for root, dirs, files in os.walk(pkg_dir):
if bin_re.match(root) and files:
has_bins = 1
diff --git a/classes/distutils.bbclass b/classes/distutils.bbclass
index ea4184b235..4d1fc8c6fc 100644
--- a/classes/distutils.bbclass
+++ b/classes/distutils.bbclass
@@ -2,7 +2,7 @@ inherit distutils-base
DISTUTILS_BUILD_ARGS ?= ""
DISTUTILS_STAGE_HEADERS_ARGS ?= "--install-dir=${STAGING_INCDIR}/${PYTHON_DIR}"
-DISTUTILS_STAGE_ALL_ARGS ?= "--prefix=${STAGING_DIR_HOST}${layout_prefix} \
+DISTUTILS_STAGE_ALL_ARGS ?= "--prefix=${STAGING_DIR_HOST}${prefix} \
--install-data=${STAGING_DATADIR}"
DISTUTILS_INSTALL_ARGS ?= "--prefix=${D}/${prefix} \
--install-data=${D}/${datadir}"
@@ -16,7 +16,7 @@ distutils_do_compile() {
}
distutils_stage_headers() {
- install -d ${STAGING_DIR_HOST}${layout_libdir}/${PYTHON_DIR}/site-packages
+ install -d ${STAGING_DIR_HOST}${libdir}/${PYTHON_DIR}/site-packages
BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
${STAGING_BINDIR_NATIVE}/python setup.py install_headers ${DISTUTILS_STAGE_HEADERS_ARGS} || \
oefatal "python setup.py install_headers execution failed."
@@ -25,8 +25,8 @@ distutils_stage_headers() {
distutils_stage_all() {
STAGING_INCDIR=${STAGING_INCDIR} \
STAGING_LIBDIR=${STAGING_LIBDIR} \
- install -d ${STAGING_DIR_HOST}${layout_libdir}/${PYTHON_DIR}/site-packages
- PYTHONPATH=${STAGING_DIR_HOST}${layout_libdir}/${PYTHON_DIR}/site-packages \
+ install -d ${STAGING_DIR_HOST}${libdir}/${PYTHON_DIR}/site-packages
+ PYTHONPATH=${STAGING_DIR_HOST}${libdir}/${PYTHON_DIR}/site-packages \
BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
${STAGING_BINDIR_NATIVE}/python setup.py install ${DISTUTILS_STAGE_ALL_ARGS} || \
oefatal "python setup.py install (stage) execution failed."
diff --git a/classes/efl.bbclass b/classes/efl.bbclass
index d4c3baa9cf..900d9c7f0d 100644
--- a/classes/efl.bbclass
+++ b/classes/efl.bbclass
@@ -11,16 +11,19 @@ PE = "2"
ARM_INSTRUCTION_SET = "arm"
-AUTOTOOLS_STAGE_PKGCONFIG = "1"
-# do NOT inherit pkgconfig here, see note in autotools_stage_all
inherit autotools
+# evas-native looks at this var, so keep it
+AUTOTOOLS_STAGE_PKGCONFIG = "1"
+
do_configure_prepend() {
touch config.rpath
}
-do_stage() {
- autotools_stage_all
+do_install_prepend () {
+ for i in `find ${S}/ -name "*.pc" -type f` ; do \
+ sed -i -e 's:-L${STAGING_LIBDIR}::g' -e 's:-I${STAGING_INCDIR}::g' $i
+ done
}
# This construction is stupid, someone with more E knowledge should change it to =+ or something
diff --git a/classes/gconf.bbclass b/classes/gconf.bbclass
index 47df06329b..f55ae2c2ae 100644
--- a/classes/gconf.bbclass
+++ b/classes/gconf.bbclass
@@ -32,10 +32,10 @@ fi
python populate_packages_append () {
import os.path, re
packages = bb.data.getVar('PACKAGES', d, 1).split()
- workdir = bb.data.getVar('WORKDIR', d, 1)
+ pkgdest = bb.data.getVar('PKGDEST', d, 1)
for pkg in packages:
- schema_dir = '%s/install/%s/etc/gconf/schemas' % (workdir, pkg)
+ schema_dir = '%s/%s/etc/gconf/schemas' % (pkgdest, pkg)
schemas = []
schema_re = re.compile(".*\.schemas$")
if os.path.exists(schema_dir):
diff --git a/classes/gettext.bbclass b/classes/gettext.bbclass
index bc0a1dfaba..b2ff2849fa 100644
--- a/classes/gettext.bbclass
+++ b/classes/gettext.bbclass
@@ -1,6 +1,5 @@
DEPENDS =+ "gettext-native"
def gettext_after_parse(d):
- import bb
# Remove the NLS bits if USE_NLS is no.
if bb.data.getVar('USE_NLS', d, 1) == 'no':
cfg = oe_filter_out('^--(dis|en)able-nls$', bb.data.getVar('EXTRA_OECONF', d, 1) or "", d)
@@ -15,4 +14,3 @@ python () {
DEPENDS =+ "gettext-native"
EXTRA_OECONF += "--enable-nls"
-
diff --git a/recipes/glibc/glibc-package.bbclass b/classes/glibc-package.bbclass
index 179e41f734..413ed14931 100644
--- a/recipes/glibc/glibc-package.bbclass
+++ b/classes/glibc-package.bbclass
@@ -1,33 +1,13 @@
#
-# For now, we will skip building of a gcc package if it is a uclibc one
-# and our build is not a uclibc one, and we skip a glibc one if our build
-# is a uclibc build.
+# This class knows how to package up glibc. Its shared since prebuild binary toolchains
+# may need packaging and its pointless to duplicate this code.
#
-# See the note in gcc/gcc_3.4.0.oe
-#
-
-python __anonymous () {
- import bb, re
- uc_os = (re.match('.*uclibc*', bb.data.getVar('TARGET_OS', d, 1)) != None)
- if uc_os:
- raise bb.parse.SkipPackage("incompatible with target %s" %
- bb.data.getVar('TARGET_OS', d, 1))
-}
-
-
-# Binary locales are generated at build time if ENABLE_BINARY_LOCALE_GENERATION
-# is set. The idea is to avoid running localedef on the target (at first boot)
-# to decrease initial boot time and avoid localedef being killed by the OOM
-# killer which used to effectively break i18n on machines with < 128MB RAM.
+# Caller should set GLIBC_INTERNAL_USE_BINARY_LOCALE to one of:
+# "compile" - Use QEMU to generate the binary locale files
+# "precompiled" - The binary locale files are pregenerated and already present
+# "ondevice" - The device will build the locale files upon first boot through the postinst
-# default to disabled until qemu works for everyone
-ENABLE_BINARY_LOCALE_GENERATION ?= "0"
-
-# BINARY_LOCALE_ARCHES is a space separated list of regular expressions
-BINARY_LOCALE_ARCHES ?= "arm.* i[3-6]86 x86_64 powerpc"
-
-# Set this to zero if you don't want ldconfig in the output package
-USE_LDCONFIG ?= "1"
+GLIBC_INTERNAL_USE_BINARY_LOCALE ?= "ondevice"
PACKAGES = "glibc-dbg glibc catchsegv sln nscd ldd localedef glibc-utils glibc-dev glibc-static glibc-doc glibc-locale libcidn libmemusage libsegfault glibc-extra-nss glibc-thread-db glibc-pcprofile"
PACKAGES_DYNAMIC = "glibc-gconv-* glibc-charmap-* glibc-localedata-* locale-base-* glibc-binary-localedata-*"
@@ -36,18 +16,32 @@ INSANE_SKIP_glibc-dbg = True
libc_baselibs = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so ${base_libdir}/libc*.so.* ${base_libdir}/libc-*.so ${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so ${base_libdir}/ld*.so.* ${base_libdir}/ld-*.so ${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so ${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so ${base_libdir}/librt*.so.* ${base_libdir}/librt-*.so ${base_libdir}/libutil*.so.* ${base_libdir}/libutil-*.so ${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so ${base_libdir}/libnss_files*.so.* ${base_libdir}/libnss_files-*.so ${base_libdir}/libnss_compat*.so.* ${base_libdir}/libnss_compat-*.so ${base_libdir}/libnss_dns*.so.* ${base_libdir}/libnss_dns-*.so ${base_libdir}/libdl*.so.* ${base_libdir}/libdl-*.so ${base_libdir}/libanl*.so.* ${base_libdir}/libanl-*.so ${base_libdir}/libBrokenLocale*.so.* ${base_libdir}/libBrokenLocale-*.so"
-FILES_${PN} = "${libc_baselibs} ${libexecdir}/* ${datadir}/zoneinfo ${@base_conditional('USE_LDCONFIG', '1', '${base_sbindir}/ldconfig', '', d)}"
+# The problem is that if PN = "glibc", FILES_${PN} will overwrite FILES_glibc
+# Solution: Make them both the same thing, then it doesn't matter
+
+glibcfiles = "${libc_baselibs} ${libexecdir}/* ${datadir}/zoneinfo ${@base_conditional('USE_LDCONFIG', '1', '${base_sbindir}/ldconfig', '', d)}"
+glibcdbgfiles = "${bindir}/.debug ${sbindir}/.debug ${libdir}/.debug \
+ ${base_bindir}/.debug ${base_sbindir}/.debug ${base_libdir}/.debug \
+ ${libdir}/gconv/.debug ${libexecdir}/*/.debug"
+glibcdevfiles = "${bindir}/rpcgen ${includedir} ${libdir}/lib*${SOLIBSDEV} ${libdir}/*.la \
+ ${libdir}/*.a ${libdir}/*.o ${libdir}/pkgconfig ${libdir}/*nonshared.a \
+ ${base_libdir}/*.a ${base_libdir}/*.o ${datadir}/aclocal"
+
+FILES_glibc = "${glibcfiles}"
+FILES_${PN} = "${glibcfiles}"
FILES_ldd = "${bindir}/ldd"
FILES_libsegfault = "${base_libdir}/libSegFault*"
FILES_libcidn = "${base_libdir}/libcidn*.so"
FILES_libmemusage = "${base_libdir}/libmemusage.so"
FILES_glibc-extra-nss = "${base_libdir}/libnss*"
FILES_sln = "${base_sbindir}/sln"
-FILES_glibc-dev_append = " ${libdir}/*.o ${bindir}/rpcgen ${libdir}/*nonshared.a"
+FILES_glibc-dev = "${glibcdevfiles}"
+FILES_${PN}-dev = "${glibcdevfiles}"
+FILES_glibc-dbg = "${glibcdbgfiles}"
+FILES_${PN}-dbg = "${glibcdbgfiles}"
FILES_nscd = "${sbindir}/nscd* ${sysconfdir}/nscd* ${sysconfdir}/init.d/nscd*"
FILES_glibc-utils = "${bindir}/* ${sbindir}/*"
FILES_glibc-gconv = "${libdir}/gconv/*"
-FILES_${PN}-dbg += " ${libdir}/gconv/.debug ${libexecdir}/*/.debug"
FILES_catchsegv = "${bindir}/catchsegv"
RDEPENDS_catchsegv = "libsegfault"
FILES_glibc-pcprofile = "${base_libdir}/libpcprofile.so"
@@ -62,40 +56,6 @@ DESCRIPTION_ldd = "glibc: print shared library dependencies"
DESCRIPTION_localedef = "glibc: compile locale definition files"
DESCRIPTION_glibc-utils = "glibc: misc utilities like iconf, local, gencat, tzselect, rpcinfo, ..."
-INITSCRIPT_NAME = "nscd"
-INITSCRIPT_PACKAGES = "nscd"
-INITSCRIPT_PARAMS = "start 40 S . stop 40 0 6 1 ."
-inherit update-rc.d
-
-def get_glibc_fpu_setting(bb, d):
- if bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]:
- return "--without-fp"
- return ""
-
-EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}"
-EXTRA_OEMAKE += "rootsbindir=${base_sbindir}"
-
-OVERRIDES_append = ":${TARGET_ARCH}-${TARGET_OS}"
-
-do_install() {
- oe_runmake install_root=${D} install
- for r in ${rpcsvc}; do
- h=`echo $r|sed -e's,\.x$,.h,'`
- install -m 0644 ${S}/sunrpc/rpcsvc/$h ${D}/${includedir}/rpcsvc/
- done
- install -d ${D}${libdir}/locale
- make -f ${WORKDIR}/generate-supported.mk IN="${S}/localedata/SUPPORTED" OUT="${WORKDIR}/SUPPORTED"
- # get rid of some broken files...
- for i in ${GLIBC_BROKEN_LOCALES}; do
- grep -v $i ${WORKDIR}/SUPPORTED > ${WORKDIR}/SUPPORTED.tmp
- mv ${WORKDIR}/SUPPORTED.tmp ${WORKDIR}/SUPPORTED
- done
- rm -f ${D}{sysconfdir}/rpc
- install -d ${D}${sysconfdir}/init.d
- install -m 0644 ${S}/nscd/nscd.conf ${D}${sysconfdir}/
- install ${S}/nscd/nscd.init ${D}${sysconfdir}/init.d/nscd
-}
-
TMP_LOCALE="/tmp/locale${libdir}/locale"
locale_base_postinst() {
@@ -129,50 +89,30 @@ mv ${TMP_LOCALE}/locale-archive ${libdir}/locale/
rm -rf ${TMP_LOCALE}
}
-python __anonymous () {
- enabled = bb.data.getVar("ENABLE_BINARY_LOCALE_GENERATION", d, 1)
-
- if enabled and int(enabled):
- import re
-
- target_arch = bb.data.getVar("TARGET_ARCH", d, 1)
- binary_arches = bb.data.getVar("BINARY_LOCALE_ARCHES", d, 1) or ""
-
- for regexp in binary_arches.split(" "):
- r = re.compile(regexp)
-
- if r.match(target_arch):
- depends = bb.data.getVar("DEPENDS", d, 1)
- depends = "%s qemu-native" % depends
- bb.data.setVar("DEPENDS", depends, d)
- bb.data.setVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", "1", d)
- break
-}
-
do_prep_locale_tree() {
treedir=${WORKDIR}/locale-tree
rm -rf $treedir
mkdir -p $treedir/bin $treedir/lib $treedir/${datadir} $treedir/${libdir}/locale
- cp -pPR ${D}${datadir}/i18n $treedir/${datadir}/i18n
+ cp -pPR ${PKGD}${datadir}/i18n $treedir/${datadir}/i18n
# unzip to avoid parsing errors
for i in $treedir/${datadir}/i18n/charmaps/*gz; do
gunzip $i
done
- ls -d ${D}${base_libdir}/* | xargs -iBLAH cp -pPR BLAH $treedir/lib
+ ls -d ${PKGD}${base_libdir}/* | xargs -iBLAH cp -pPR BLAH $treedir/lib
if [ -f ${CROSS_DIR}/${TARGET_SYS}/lib/libgcc_s.so ]; then
cp -pPR ${CROSS_DIR}/${TARGET_SYS}/lib/libgcc_s.so $treedir/lib
fi
if [ -f ${CROSS_DIR}/${TARGET_SYS}/lib/libgcc_s.so.* ]; then
cp -pPR ${CROSS_DIR}/${TARGET_SYS}/lib/libgcc_s.so.* $treedir/lib
fi
- install -m 0755 ${D}${bindir}/localedef $treedir/bin
+ install -m 0755 ${PKGD}${bindir}/localedef $treedir/bin
}
do_collect_bins_from_locale_tree() {
treedir=${WORKDIR}/locale-tree
- mkdir -p ${D}${libdir}
- cp -pPR $treedir/${libdir}/locale ${D}${libdir}
+ mkdir -p ${PKGD}${libdir}
+ cp -pPR $treedir/${libdir}/locale ${PKGD}${libdir}
}
python package_do_split_gconvs () {
@@ -220,17 +160,29 @@ python package_do_split_gconvs () {
do_split_packages(d, locales_dir, file_regex='(.*)', output_pattern='glibc-localedata-%s', description='locale definition for %s', hook=calc_locale_deps, extra_depends='')
bb.data.setVar('PACKAGES', bb.data.getVar('PACKAGES', d) + ' glibc-gconv', d)
- supported = bb.data.getVar('GLIBC_GENERATE_LOCALES', d, 1)
- if not supported or supported == "all":
- f = open(base_path_join(bb.data.getVar('WORKDIR', d, 1), "SUPPORTED"), "r")
- supported = f.readlines()
- f.close()
- else:
- supported = supported.split()
- supported = map(lambda s:s.replace(".", " ") + "\n", supported)
+ use_bin = bb.data.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", d, 1)
dot_re = re.compile("(.*)\.(.*)")
+ if use_bin != "precompiled":
+ supported = bb.data.getVar('GLIBC_GENERATE_LOCALES', d, 1)
+ if not supported or supported == "all":
+ f = open(base_path_join(bb.data.getVar('WORKDIR', d, 1), "SUPPORTED"), "r")
+ supported = f.readlines()
+ f.close()
+ else:
+ supported = supported.split()
+ supported = map(lambda s:s.replace(".", " ") + "\n", supported)
+ else:
+ supported = []
+ full_bin_path = bb.data.getVar('PKGD', d, True) + binary_locales_dir
+ for dir in os.listdir(full_bin_path):
+ dbase = dir.split(".")
+ d2 = " "
+ if len(dbase) > 1:
+ d2 = "." + dbase[1].upper() + " "
+ supported.append(dbase[0] + d2)
+
# Collate the locales by base and encoding
utf8_only = int(bb.data.getVar('LOCALE_UTF8_ONLY', d, 1) or 0)
encodings = {}
@@ -246,21 +198,20 @@ python package_do_split_gconvs () {
encodings[locale] = []
encodings[locale].append(charset)
- def output_locale_source(name, locale, encoding):
- pkgname = 'locale-base-' + legitimize_package_name(name)
-
+ def output_locale_source(name, pkgname, locale, encoding):
bb.data.setVar('RDEPENDS_%s' % pkgname, 'localedef glibc-localedata-%s glibc-charmap-%s' % (legitimize_package_name(locale), legitimize_package_name(encoding)), d)
- rprovides = 'virtual-locale-%s' % legitimize_package_name(name)
- m = re.match("(.*)_(.*)", name)
- if m:
- rprovides += ' virtual-locale-%s' % m.group(1)
- bb.data.setVar('RPROVIDES_%s' % pkgname, rprovides, d)
- bb.data.setVar('PACKAGES', '%s %s' % (pkgname, bb.data.getVar('PACKAGES', d, 1)), d)
- bb.data.setVar('ALLOW_EMPTY_%s' % pkgname, '1', d)
bb.data.setVar('pkg_postinst_%s' % pkgname, bb.data.getVar('locale_base_postinst', d, 1) % (locale, encoding, locale), d)
bb.data.setVar('pkg_postrm_%s' % pkgname, bb.data.getVar('locale_base_postrm', d, 1) % (locale, encoding, locale), d)
- def output_locale_binary(name, locale, encoding):
+ def output_locale_binary_rdepends(name, pkgname, locale, encoding):
+ m = re.match("(.*)\.(.*)", name)
+ if m:
+ glibc_name = "%s.%s" % (m.group(1), m.group(2).lower().replace("-",""))
+ else:
+ glibc_name = name
+ bb.data.setVar('RDEPENDS_%s' % pkgname, legitimize_package_name('glibc-binary-localedata-%s' % glibc_name), d)
+
+ def output_locale_binary(name, pkgname, locale, encoding):
target_arch = bb.data.getVar("TARGET_ARCH", d, 1)
if target_arch in ("i486", "i586", "i686"):
target_arch = "i386"
@@ -280,19 +231,6 @@ python package_do_split_gconvs () {
else:
qemu = "qemu-%s -s 1048576 -r %s" % (target_arch, kernel_ver)
pkgname = 'locale-base-' + legitimize_package_name(name)
- m = re.match("(.*)\.(.*)", name)
- if m:
- glibc_name = "%s.%s" % (m.group(1), m.group(2).lower().replace("-",""))
- else:
- glibc_name = name
- bb.data.setVar('RDEPENDS_%s' % pkgname, legitimize_package_name('glibc-binary-localedata-%s' % glibc_name), d)
- rprovides = 'virtual-locale-%s' % legitimize_package_name(name)
- m = re.match("(.*)_(.*)", name)
- if m:
- rprovides += ' virtual-locale-%s' % m.group(1)
- bb.data.setVar('RPROVIDES_%s' % pkgname, rprovides, d)
- bb.data.setVar('ALLOW_EMPTY_%s' % pkgname, '1', d)
- bb.data.setVar('PACKAGES', '%s %s' % (pkgname, bb.data.getVar('PACKAGES', d, 1)), d)
treedir = base_path_join(bb.data.getVar("WORKDIR", d, 1), "locale-tree")
ldlibdir = "%s/lib" % treedir
@@ -311,14 +249,23 @@ python package_do_split_gconvs () {
raise bb.build.FuncFailed("localedef returned an error (command was %s)." % cmd)
def output_locale(name, locale, encoding):
- use_bin = bb.data.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", d, 1)
- if use_bin:
- output_locale_binary(name, locale, encoding)
+ pkgname = 'locale-base-' + legitimize_package_name(name)
+ bb.data.setVar('ALLOW_EMPTY_%s' % pkgname, '1', d)
+ bb.data.setVar('PACKAGES', '%s %s' % (pkgname, bb.data.getVar('PACKAGES', d, 1)), d)
+ rprovides = 'virtual-locale-%s' % legitimize_package_name(name)
+ m = re.match("(.*)_(.*)", name)
+ if m:
+ rprovides += ' virtual-locale-%s' % m.group(1)
+ bb.data.setVar('RPROVIDES_%s' % pkgname, rprovides, d)
+ if use_bin == "compile":
+ output_locale_binary_rdepends(name, pkgname, locale, encoding)
+ output_locale_binary(name, pkgname, locale, encoding)
+ elif use_bin == "precompiled":
+ output_locale_binary_rdepends(name, pkgname, locale, encoding)
else:
- output_locale_source(name, locale, encoding)
+ output_locale_source(name, pkgname, locale, encoding)
- use_bin = bb.data.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", d, 1)
- if use_bin:
+ if use_bin == "compile":
bb.note("preparing tree for binary locale generation")
bb.build.exec_func("do_prep_locale_tree", d)
@@ -338,15 +285,16 @@ python package_do_split_gconvs () {
for e in encodings[l]:
output_locale('%s.%s' % (l, e), l, e)
- if non_utf8 != []:
+ if non_utf8 != [] and use_bin != "precompiled":
bb.note("the following locales are supported only in legacy encodings:")
bb.note(" " + " ".join(non_utf8))
- use_bin = bb.data.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", d, 1)
- if use_bin:
+ if use_bin == "compile":
bb.note("collecting binary locales from locale tree")
bb.build.exec_func("do_collect_bins_from_locale_tree", d)
do_split_packages(d, binary_locales_dir, file_regex='(.*)', output_pattern='glibc-binary-localedata-%s', description='binary locale definition for %s', extra_depends='', allow_dirs=True)
+ elif use_bin == "precompiled":
+ do_split_packages(d, binary_locales_dir, file_regex='(.*)', output_pattern='glibc-binary-localedata-%s', description='binary locale definition for %s', extra_depends='', allow_dirs=True)
else:
bb.note("generation of binary locales disabled. this may break i18n!")
diff --git a/classes/gnome.bbclass b/classes/gnome.bbclass
index 2045697516..cb03650b48 100644
--- a/classes/gnome.bbclass
+++ b/classes/gnome.bbclass
@@ -24,6 +24,7 @@ gnome_stage_includes() {
do_install_append() {
rm -rf ${D}${localstatedir}/lib/scrollkeeper/*
+ rm -rf ${D}${localstatedir}/scrollkeeper/*
rm -f ${D}${datadir}/applications/*.cache
}
diff --git a/classes/gtk-icon-cache.bbclass b/classes/gtk-icon-cache.bbclass
index ea1fdff3dd..524c2f0c46 100644
--- a/classes/gtk-icon-cache.bbclass
+++ b/classes/gtk-icon-cache.bbclass
@@ -27,12 +27,11 @@ done
}
python populate_packages_append () {
- import os.path
packages = bb.data.getVar('PACKAGES', d, 1).split()
- workdir = bb.data.getVar('WORKDIR', d, 1)
+ pkgdest = bb.data.getVar('PKGDEST', d, 1)
for pkg in packages:
- icon_dir = '%s/install/%s/%s/icons' % (workdir, pkg, bb.data.getVar('datadir', d, 1))
+ icon_dir = '%s/%s/%s/icons' % (pkgdest, pkg, bb.data.getVar('datadir', d, 1))
if not os.path.exists(icon_dir):
continue
diff --git a/classes/icecc.bbclass b/classes/icecc.bbclass
index 0eb2d9feee..4962fcb7e6 100644
--- a/classes/icecc.bbclass
+++ b/classes/icecc.bbclass
@@ -33,10 +33,8 @@ def icc_determine_gcc_version(gcc):
'i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5363)'
"""
- import os
return os.popen("%s --version" % gcc ).readline().split()[2]
-
def create_cross_env(bb,d):
"""
Create a tar.bz2 of the current toolchain
@@ -47,7 +45,7 @@ def create_cross_env(bb,d):
if len(prefix) == 0:
return ""
- import tarfile, socket, time, os
+ import tarfile, socket, time
ice_dir = bb.data.expand('${CROSS_DIR}', d)
prefix = bb.data.expand('${HOST_PREFIX}' , d)
distro = bb.data.expand('${DISTRO}', d)
@@ -97,7 +95,7 @@ def create_cross_env(bb,d):
def create_native_env(bb,d):
- import tarfile, socket, time, os
+ import tarfile, socket, time
ice_dir = bb.data.expand('${CROSS_DIR}', d)
prefix = bb.data.expand('${HOST_PREFIX}' , d)
distro = bb.data.expand('${DISTRO}', d)
@@ -144,7 +142,7 @@ def get_cross_kernel_cc(bb,d):
def create_cross_kernel_env(bb,d):
- import tarfile, socket, time, os
+ import tarfile, socket, time
ice_dir = bb.data.expand('${CROSS_DIR}', d)
prefix = bb.data.expand('${HOST_PREFIX}' , d)
distro = bb.data.expand('${DISTRO}', d)
@@ -210,8 +208,6 @@ def create_path(compilers, type, bb, d):
"""
Create Symlinks for the icecc in the staging directory
"""
- import os
-
staging = os.path.join(bb.data.expand('${STAGING_DIR}', d), "ice", type)
#check if the icecc path is set by the user
diff --git a/classes/insane.bbclass b/classes/insane.bbclass
index 950bb9771e..495c3a53aa 100644
--- a/classes/insane.bbclass
+++ b/classes/insane.bbclass
@@ -181,7 +181,6 @@ def package_qa_get_elf(path, bits32):
def package_qa_clean_path(path,d):
""" Remove the common prefix from the path. In this case it is the TMPDIR"""
- import bb
return path.replace(bb.data.getVar('TMPDIR',d,True),"")
def package_qa_make_fatal_error(error_class, name, path,d):
@@ -196,7 +195,6 @@ def package_qa_write_error(error_class, name, path, d):
"""
Log the error
"""
- import bb, os
if not bb.data.getVar('QA_LOG', d):
bb.note("a QA error occured but will not be logged because QA_LOG is not set")
return
@@ -221,7 +219,6 @@ def package_qa_write_error(error_class, name, path, d):
f.close()
def package_qa_handle_error(error_class, error_msg, name, path, d):
- import bb
bb.error("QA Issue with %s: %s" % (name, error_msg))
package_qa_write_error(error_class, name, path, d)
return not package_qa_make_fatal_error(error_class, name, path, d)
@@ -258,7 +255,6 @@ def package_qa_check_dev(path, name,d, elf):
Check for ".so" library symlinks in non-dev packages
"""
- import bb, os
sane = True
# SDK packages are special.
@@ -279,7 +275,6 @@ def package_qa_check_dbg(path, name,d, elf):
Check for ".debug" files or directories outside of the dbg package
"""
- import bb, os
sane = True
if not "-dbg" in name:
@@ -304,7 +299,6 @@ def package_qa_check_arch(path,name,d, elf):
if not elf:
return True
- import bb, os
sane = True
target_os = bb.data.getVar('TARGET_OS', d, True)
target_arch = bb.data.getVar('TARGET_ARCH', d, True)
@@ -339,7 +333,6 @@ def package_qa_check_desktop(path, name, d, elf):
"""
Run all desktop files through desktop-file-validate.
"""
- import bb, os
sane = True
if path.endswith(".desktop"):
output = os.popen("desktop-file-validate %s" % path)
@@ -353,7 +346,6 @@ def package_qa_hash_style(path, name, d, elf):
"""
Check if the binary has the right hash style...
"""
- import bb, os
if not elf:
return True
@@ -400,7 +392,6 @@ def package_qa_check_staged(path,d):
to find the one responsible for the errors easily even
if we look at every .pc and .la file
"""
- import os, bb
sane = True
tmpdir = bb.data.getVar('TMPDIR', d, True)
@@ -440,7 +431,6 @@ def package_qa_check_staged(path,d):
# Walk over all files in a directory and call func
def package_qa_walk(path, funcs, package,d):
- import bb, os
sane = True
#if this will throw an exception, then fix the dict above
@@ -463,14 +453,13 @@ def package_qa_walk(path, funcs, package,d):
return sane
-def package_qa_check_rdepends(pkg, workdir, d):
- import bb
+def package_qa_check_rdepends(pkg, pkgdest, d):
sane = True
if not "-dbg" in pkg and not "task-" in pkg and not "-image" in pkg:
# Copied from package_ipk.bbclass
# boiler plate to update the data
localdata = bb.data.createCopy(d)
- root = "%s/install/%s" % (workdir, pkg)
+ root = "%s/%s" % (pkgdest, pkg)
bb.data.setVar('ROOT', '', localdata)
bb.data.setVar('ROOT_%s' % pkg, root, localdata)
@@ -501,9 +490,8 @@ def package_qa_check_rdepends(pkg, workdir, d):
# The PACKAGE FUNC to scan each package
python do_package_qa () {
- import bb
bb.debug(2, "DO PACKAGE QA")
- workdir = bb.data.getVar('WORKDIR', d, True)
+ pkgdest = bb.data.getVar('PKGDEST', d, True)
packages = bb.data.getVar('PACKAGES',d, True)
# no packages should be scanned
@@ -522,10 +510,10 @@ python do_package_qa () {
continue
bb.debug(1, "Checking Package: %s" % package)
- path = "%s/install/%s" % (workdir, package)
+ path = "%s/%s" % (pkgdest, package)
if not package_qa_walk(path, checks, package, d):
walk_sane = False
- if not package_qa_check_rdepends(package, workdir, d):
+ if not package_qa_check_rdepends(package, pkgdest, d):
rdepends_sane = False
if not walk_sane or not rdepends_sane:
@@ -547,7 +535,6 @@ python do_qa_staging() {
addtask qa_configure after do_configure before do_compile
python do_qa_configure() {
bb.debug(1, "Checking sanity of the config.log file")
- import os
for root, dirs, files in os.walk(bb.data.getVar('WORKDIR', d, True)):
statement = "grep 'CROSS COMPILE Badness:' %s > /dev/null" % \
os.path.join(root,"config.log")
diff --git a/classes/java.bbclass b/classes/java.bbclass
index cacd2ce525..b68035c13e 100644
--- a/classes/java.bbclass
+++ b/classes/java.bbclass
@@ -68,11 +68,11 @@ oe_jarinstall() {
# Creates symlinks out of the remaining arguments.
while [ "$#" -gt 0 ]; do
- if [ -e $dir/$1 ]; then
+ if [ -e $dir/$1 -o -h $dir/$1 ]; then
oewarn "file was in the way. removing:" $dir/$1
rm $dir/$1
fi
- ln -sf $destname $dir/$1
+ ln -s $destname $dir/$1
shift
done
}
diff --git a/classes/kernel-arch.bbclass b/classes/kernel-arch.bbclass
index 65d220063e..8894fa554c 100644
--- a/classes/kernel-arch.bbclass
+++ b/classes/kernel-arch.bbclass
@@ -15,7 +15,7 @@ valid_archs = "alpha cris ia64 \
avr32 blackfin"
def map_kernel_arch(a, d):
- import bb, re
+ import re
valid_archs = bb.data.getVar('valid_archs', d, 1).split()
diff --git a/classes/kernel.bbclass b/classes/kernel.bbclass
index 9c1f637a66..edeaa660bb 100644
--- a/classes/kernel.bbclass
+++ b/classes/kernel.bbclass
@@ -8,9 +8,6 @@ KERNEL_IMAGETYPE ?= "zImage"
# Add dependency on mkimage for kernels that build a uImage
python __anonymous () {
-
- import bb
-
kerneltype = bb.data.getVar('KERNEL_IMAGETYPE', d, 1) or ''
if kerneltype == 'uImage':
depends = bb.data.getVar("DEPENDS", d, 1)
@@ -218,7 +215,7 @@ do_menuconfig() {
fi
}
do_menuconfig[nostamp] = "1"
-addtask menuconfig after do_patch
+addtask menuconfig after do_configure
pkg_postinst_kernel () {
cd /${KERNEL_IMAGEDEST}; update-alternatives --install /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE}-${KERNEL_VERSION} ${KERNEL_PRIORITY} || true
@@ -309,8 +306,9 @@ module_conf_sco = "alias bt-proto-2 sco"
module_conf_rfcomm = "alias bt-proto-3 rfcomm"
python populate_packages_prepend () {
+ import os
def extract_modinfo(file):
- import tempfile, os, re
+ import tempfile, re
tempfile.tempdir = bb.data.getVar("WORKDIR", d, 1)
tf = tempfile.mkstemp()
tmpfile = tf[1]
@@ -331,9 +329,9 @@ python populate_packages_prepend () {
return vals
def parse_depmod():
- import os, re
+ import re
- dvar = bb.data.getVar('D', d, 1)
+ dvar = bb.data.getVar('PKGD', d, 1)
if not dvar:
bb.error("D not defined")
return
@@ -382,10 +380,10 @@ python populate_packages_prepend () {
return deps
def get_dependencies(file, pattern, format):
- file = file.replace(bb.data.getVar('D', d, 1) or '', '', 1)
+ file = file.replace(bb.data.getVar('PKGD', d, 1) or '', '', 1)
if module_deps.has_key(file):
- import os.path, re
+ import re
dependencies = []
for i in module_deps[file]:
m = re.match(pattern, os.path.basename(i))
@@ -401,7 +399,7 @@ python populate_packages_prepend () {
import re
vals = extract_modinfo(file)
- dvar = bb.data.getVar('D', d, 1)
+ dvar = bb.data.getVar('PKGD', d, 1)
# If autoloading is requested, output /etc/modutils/<name> and append
# appropriate modprobe commands to the postinst
@@ -463,7 +461,7 @@ python populate_packages_prepend () {
do_split_packages(d, root='/lib/firmware', file_regex='^(.*)\.fw$', output_pattern='kernel-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='')
do_split_packages(d, root='/lib/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='%skernel-%s' % (maybe_update_modules, bb.data.getVar("KERNEL_VERSION", d, 1)))
- import re, os
+ import re
metapkg = "kernel-modules"
bb.data.setVar('ALLOW_EMPTY_' + metapkg, "1", d)
bb.data.setVar('FILES_' + metapkg, "", d)
@@ -529,8 +527,8 @@ do_deploy() {
install -m 0644 ${KERNEL_OUTPUT} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.bin
package_stagefile_shell ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.bin
- if [ -d "${D}/lib" ]; then
- fakeroot tar -cvzf ${DEPLOY_DIR_IMAGE}/${MODULES_IMAGE_BASE_NAME}.tgz -C ${D} lib
+ if [ -d "${PKGD}/lib" ]; then
+ fakeroot tar -cvzf ${DEPLOY_DIR_IMAGE}/${MODULES_IMAGE_BASE_NAME}.tgz -C ${PKGD} lib
fi
cd ${DEPLOY_DIR_IMAGE}
@@ -542,4 +540,4 @@ do_deploy() {
do_deploy[dirs] = "${S}"
do_deploy[depends] += "fakeroot-native:do_populate_staging"
-addtask deploy before do_package after do_install
+addtask deploy before do_build after do_package
diff --git a/classes/linux-kernel-base.bbclass b/classes/linux-kernel-base.bbclass
index 4e2e2da373..b3e0fdad7a 100644
--- a/classes/linux-kernel-base.bbclass
+++ b/classes/linux-kernel-base.bbclass
@@ -1,6 +1,6 @@
# parse kernel ABI version out of <linux/version.h>
def get_kernelversion(p):
- import re, os
+ import re
fn = p + '/include/linux/utsrelease.h'
if not os.path.isfile(fn):
@@ -30,7 +30,6 @@ def get_kernelmajorversion(p):
return None
def linux_module_packages(s, d):
- import bb, os.path
suffix = ""
return " ".join(map(lambda s: "kernel-module-%s%s" % (s.lower().replace('_', '-').replace('@', '+'), suffix), s.split()))
diff --git a/classes/manifest.bbclass b/classes/manifest.bbclass
index 687f4b756e..8d714d3bbc 100644
--- a/classes/manifest.bbclass
+++ b/classes/manifest.bbclass
@@ -1,6 +1,6 @@
python read_manifest () {
- import sys, bb.manifest
+ import sys
mfn = bb.data.getVar("MANIFEST", d, 1)
if os.access(mfn, os.R_OK):
# we have a manifest, so emit do_stage and do_populate_pkgs,
diff --git a/classes/mime.bbclass b/classes/mime.bbclass
index 724fb23713..2416c1466f 100644
--- a/classes/mime.bbclass
+++ b/classes/mime.bbclass
@@ -27,10 +27,10 @@ fi
python populate_packages_append () {
import os.path, re
packages = bb.data.getVar('PACKAGES', d, 1).split()
- workdir = bb.data.getVar('WORKDIR', d, 1)
+ pkgdest = bb.data.getVar('PKGDEST', d, 1)
for pkg in packages:
- mime_dir = '%s/install/%s/usr/share/mime/packages' % (workdir, pkg)
+ mime_dir = '%s/%s/usr/share/mime/packages' % (pkgdest, pkg)
mimes = []
mime_re = re.compile(".*\.xml$")
if os.path.exists(mime_dir):
diff --git a/classes/module_strip.bbclass b/classes/module_strip.bbclass
index 3316e20c80..2650f71d50 100644
--- a/classes/module_strip.bbclass
+++ b/classes/module_strip.bbclass
@@ -1,26 +1,20 @@
-#DEPENDS_append = " module-strip"
+PACKAGESTRIPFUNCS += "do_strip_modules"
do_strip_modules () {
- for p in ${PACKAGES}; do
- if test -e ${WORKDIR}/install/$p/lib/modules; then
- if [ "${KERNEL_MAJOR_VERSION}" == "2.6" ]; then
- modules="`find ${WORKDIR}/install/$p/lib/modules -name \*.ko`"
- else
- modules="`find ${WORKDIR}/install/$p/lib/modules -name \*.o`"
- fi
- if [ -n "$modules" ]; then
- for module in $modules ; do
- if ! [ -d "$module" ] ; then
- ${STRIP} -v -g $module
- fi
- done
-# NM="${CROSS_DIR}/bin/${HOST_PREFIX}nm" OBJCOPY="${CROSS_DIR}/bin/${HOST_PREFIX}objcopy" strip_module $modules
- fi
+ if test -e ${PKGD}/lib/modules; then
+ if [ "${KERNEL_MAJOR_VERSION}" == "2.6" ]; then
+ modules="`find ${PKGD}/lib/modules -name \*.ko`"
+ else
+ modules="`find ${PKGD}/lib/modules -name \*.o`"
fi
- done
+ if [ -n "$modules" ]; then
+ for module in $modules ; do
+ if ! [ -d "$module" ] ; then
+ ${STRIP} -v -g $module
+ fi
+ done
+ fi
+ fi
}
-python do_package_append () {
- if (bb.data.getVar('INHIBIT_PACKAGE_STRIP', d, 1) != '1'):
- bb.build.exec_func('do_strip_modules', d)
-}
+
diff --git a/classes/native.bbclass b/classes/native.bbclass
index 69231e0b6b..96f9cf1a96 100644
--- a/classes/native.bbclass
+++ b/classes/native.bbclass
@@ -52,48 +52,71 @@ export RANLIB = "${HOST_PREFIX}ranlib"
export STRIP = "${HOST_PREFIX}strip"
# Path prefixes
-export base_prefix = "${STAGING_DIR_NATIVE}"
-export prefix = "${STAGING_DIR_NATIVE}${layout_prefix}"
-export exec_prefix = "${STAGING_DIR_NATIVE}${layout_exec_prefix}"
-
-# Base paths
-export base_bindir = "${STAGING_DIR_NATIVE}${layout_base_bindir}"
-export base_sbindir = "${STAGING_DIR_NATIVE}${layout_base_sbindir}"
-export base_libdir = "${STAGING_DIR_NATIVE}${layout_base_libdir}"
-
-# Architecture independent paths
-export datadir = "${STAGING_DIR_NATIVE}${layout_datadir}"
-export sysconfdir = "${STAGING_DIR_NATIVE}${layout_sysconfdir}"
-export sharedstatedir = "${STAGING_DIR_NATIVE}${layout_sharedstatedir}"
-export localstatedir = "${STAGING_DIR_NATIVE}${layout_localstatedir}"
-export infodir = "${STAGING_DIR_NATIVE}${layout_infodir}"
-export mandir = "${STAGING_DIR_NATIVE}${layout_mandir}"
-export docdir = "${STAGING_DIR_NATIVE}${layout_docdir}"
-export servicedir = "${STAGING_DIR_NATIVE}${layout_servicedir}"
-
-# Architecture dependent paths
-export bindir = "${STAGING_DIR_NATIVE}${layout_bindir}"
-export sbindir = "${STAGING_DIR_NATIVE}${layout_sbindir}"
-export libexecdir = "${STAGING_DIR_NATIVE}${layout_libexecdir}"
-export libdir = "${STAGING_DIR_NATIVE}${layout_libdir}"
-export includedir = "${STAGING_DIR_NATIVE}${layout_includedir}"
-export oldincludedir = "${STAGING_DIR_NATIVE}${layout_includedir}"
-
-do_stage () {
- if [ "${INHIBIT_NATIVE_STAGE_INSTALL}" != "1" ]
+base_prefix = "${STAGING_DIR_NATIVE}"
+prefix = "${STAGING_DIR_NATIVE}${prefix_native}"
+exec_prefix = "${STAGING_DIR_NATIVE}${prefix_native}"
+
+# Since we actually install these into situ there is no staging prefix
+STAGING_DIR_HOST = ""
+STAGING_DIR_TARGET = ""
+SHLIBSDIR = "${STAGING_DIR_NATIVE}/shlibs"
+PKG_CONFIG_DIR = "${libdir}/pkgconfig"
+
+do_stage_native () {
+ # If autotools is active, use the autotools staging function, else
+ # use our "make install" equivalent
+ if [ "${AUTOTOOLS_NATIVE_STAGE_INSTALL}" == "1" ]
then
- if [ "${AUTOTOOLS_NATIVE_STAGE_INSTALL}" != "1" ]
- then
- oe_runmake install
- else
- autotools_stage_all
- fi
+ autotools_stage_all
+ else
+ oe_runmake install
fi
}
-do_install () {
- true
+do_stage () {
+ do_stage_native
}
PKG_CONFIG_PATH .= "${EXTRA_NATIVE_PKGCONFIG_PATH}"
PKG_CONFIG_SYSROOT_DIR = ""
+
+ORIG_DEPENDS := "${DEPENDS}"
+
+DEPENDS_virtclass-native ?= "${ORIG_DEPENDS}"
+
+python __anonymous () {
+ # If we've a legacy native do_stage, we need to neuter do_install
+ stagefunc = bb.data.getVar('do_stage', d, True)
+
+ # For now, force legacy mode for native packages using autotools_stage_all
+ if (stagefunc.strip() == "autotools_stage_all"):
+ bb.debug(1, "Forcing legacy staging mode for %s" % bb.data.getVar('FILE', d, 1))
+ bb.data.setVar('FORCE_LEGACY_STAGING', "1", d)
+ elif (stagefunc.strip() != "do_stage_native" and stagefunc.strip() != "autotools_stage_all") and bb.data.getVar('AUTOTOOLS_NATIVE_STAGE_INSTALL', d, 1) == "1":
+ bb.data.setVar("do_install", " :", d)
+
+ if "native" in (bb.data.getVar('BBCLASSEXTEND', d, True) or ""):
+ pn = bb.data.getVar("PN", d, True)
+ depends = bb.data.getVar("DEPENDS_virtclass-native", d, True)
+ deps = bb.utils.explode_deps(depends)
+ newdeps = []
+ for dep in deps:
+ if dep.endswith("-cross"):
+ newdeps.append(dep.replace("-cross", "-native"))
+ elif not dep.endswith("-native"):
+
+ newdeps.append(dep + "-native")
+ else:
+ newdeps.append(dep)
+ bb.data.setVar("DEPENDS_virtclass-native", " ".join(newdeps), d)
+ provides = bb.data.getVar("PROVIDES", d, True)
+ for prov in provides.split():
+ if prov.find(pn) != -1:
+ continue
+ if not prov.endswith("-native"):
+
+ provides = provides.replace(prov, prov + "-native")
+ bb.data.setVar("PROVIDES", provides, d)
+ bb.data.setVar("OVERRIDES", bb.data.getVar("OVERRIDES", d, False) + ":virtclass-native", d)
+}
+
diff --git a/classes/nativesdk.bbclass b/classes/nativesdk.bbclass
new file mode 100644
index 0000000000..080adc5d77
--- /dev/null
+++ b/classes/nativesdk.bbclass
@@ -0,0 +1,78 @@
+# SDK packages are built either explicitly by the user,
+# or indirectly via dependency. No need to be in 'world'.
+EXCLUDE_FROM_WORLD = "1"
+
+#
+# Update BASE_PACKAGE_ARCH and PACKAGE_ARCHS
+#
+OLD_PACKAGE_ARCH := ${BASE_PACKAGE_ARCH}
+BASE_PACKAGE_ARCH = "${SDK_ARCH}-nativesdk"
+python () {
+ archs = bb.data.getVar('PACKAGE_ARCHS', d, True).split()
+ sdkarchs = []
+ for arch in archs:
+ sdkarchs.append(arch + '-nativesdk')
+ bb.data.setVar('PACKAGE_ARCHS', " ".join(sdkarchs), d)
+}
+
+#STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_SYS}-nativesdk"
+#STAGING_DIR_TARGET = "${STAGING_DIR}/${BASEPKG_TARGET_SYS}-nativesdk"
+
+CROSS_DIR = "${TMPDIR}/cross/${HOST_ARCH}"
+
+HOST_ARCH = "${SDK_ARCH}"
+HOST_VENDOR = "${SDK_VENDOR}"
+HOST_OS = "${SDK_OS}"
+HOST_PREFIX = "${SDK_PREFIX}"
+HOST_CC_ARCH = "${SDK_CC_ARCH}"
+#HOST_SYS = "${HOST_ARCH}${TARGET_VENDOR}-${HOST_OS}"
+
+TARGET_ARCH = "${SDK_ARCH}"
+TARGET_VENDOR = "${SDK_VENDOR}"
+TARGET_OS = "${SDK_OS}"
+TARGET_PREFIX = "${SDK_PREFIX}"
+TARGET_CC_ARCH = "${SDK_CC_ARCH}"
+
+CPPFLAGS = "${BUILDSDK_CPPFLAGS}"
+CFLAGS = "${BUILDSDK_CFLAGS}"
+CXXFLAGS = "${BUILDSDK_CFLAGS}"
+LDFLAGS = "${BUILDSDK_LDFLAGS}"
+
+# Change to place files in SDKPATH
+prefix = "${SDKPATH}"
+exec_prefix = "${SDKPATH}"
+base_prefix = "${SDKPATH}"
+
+FILES_${PN} += "${prefix}"
+FILES_${PN}-dbg += "${prefix}/.debug \
+ ${prefix}/bin/.debug \
+ "
+
+export PKG_CONFIG_DIR = "${STAGING_DIR_HOST}${libdir}/pkgconfig"
+export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}"
+
+python __anonymous () {
+ pn = bb.data.getVar("PN", d, True)
+ depends = bb.data.getVar("DEPENDS", d, True)
+ deps = bb.utils.explode_deps(depends)
+ newdeps = []
+ for dep in deps:
+ if dep.endswith("-native") or dep.endswith("-cross"):
+ newdeps.append(dep)
+ elif dep.endswith("-gcc-intermediate") or dep.endswith("-gcc-initial") or dep.endswith("-gcc"):
+ newdeps.append(dep + "-crosssdk")
+ elif not dep.endswith("-nativesdk"):
+ newdeps.append(dep + "-nativesdk")
+ else:
+ newdeps.append(dep)
+ bb.data.setVar("DEPENDS", " ".join(newdeps), d)
+ provides = bb.data.getVar("PROVIDES", d, True)
+ for prov in provides.split():
+ if prov.find(pn) != -1:
+ continue
+ if not prov.endswith("-nativesdk"):
+ provides = provides.replace(prov, prov + "-nativesdk")
+ bb.data.setVar("PROVIDES", provides, d)
+}
+
+
diff --git a/classes/openmoko-base.bbclass b/classes/openmoko-base.bbclass
index 184477b1c0..8cbf7df884 100644
--- a/classes/openmoko-base.bbclass
+++ b/classes/openmoko-base.bbclass
@@ -4,7 +4,6 @@ OPENMOKO_RELEASE ?= "OM-2007.2"
OPENMOKO_MIRROR ?= "svn://svn.openmoko.org/trunk"
def openmoko_base_get_subdir(d):
- import bb
openmoko, section = bb.data.getVar('SECTION', d, 1).split("/")
if section == 'base' or section == 'libs': return ""
elif section in 'apps tools pim'.split(): return "applications"
diff --git a/classes/openmoko2.bbclass b/classes/openmoko2.bbclass
index ef734e4311..233c721ff7 100644
--- a/classes/openmoko2.bbclass
+++ b/classes/openmoko2.bbclass
@@ -5,12 +5,10 @@ OPENMOKO_RELEASE ?= "OM-2007.2"
OPENMOKO_MIRROR ?= "svn://svn.openmoko.org/trunk"
def openmoko_two_get_license(d):
- import bb
openmoko, section = bb.data.getVar('SECTION', d, 1).split("/")
return "LGPL GPL".split()[section != "libs"]
def openmoko_two_get_subdir(d):
- import bb
openmoko, section = bb.data.getVar('SECTION', d, 1).split("/")
if section == 'base': return ""
elif section == 'libs': return "libraries"
diff --git a/classes/package.bbclass b/classes/package.bbclass
index e7865754eb..4196135710 100644
--- a/classes/package.bbclass
+++ b/classes/package.bbclass
@@ -2,7 +2,8 @@
# General packaging help functions
#
-PKGDEST = "${WORKDIR}/install"
+PKGD = "${WORKDIR}/package"
+PKGDEST = "${WORKDIR}/packages-split"
def legitimize_package_name(s):
"""
@@ -26,12 +27,8 @@ def do_split_packages(d, root, file_regex, output_pattern, description, postinst
Used in .bb files to split up dynamically generated subpackages of a
given package, usually plugins or modules.
"""
- import os, os.path, bb
- dvar = bb.data.getVar('D', d, True)
- if not dvar:
- bb.error("D not defined")
- return
+ dvar = bb.data.getVar('PKGD', d, True)
packages = bb.data.getVar('PACKAGES', d, True).split()
@@ -132,7 +129,6 @@ def package_stash_hook(func, name, d):
f.close()
python () {
- import bb
if bb.data.getVar('PACKAGES', d, True) != '':
deps = bb.data.getVarFlag('do_package', 'depends', d) or ""
for dep in (bb.data.getVar('PACKAGE_DEPENDS', d, True) or "").split():
@@ -150,7 +146,7 @@ def runstrip(file, d):
# A working 'file' (one which works on the target architecture)
# is necessary for this stuff to work, hence the addition to do_package[depends]
- import bb, os, commands, stat
+ import commands, stat
pathprefix = "export PATH=%s; " % bb.data.getVar('PATH', d, True)
@@ -205,6 +201,26 @@ def runstrip(file, d):
return 1
+PACKAGESTRIPFUNCS += "do_runstrip"
+python do_runstrip() {
+ import stat
+
+ dvar = bb.data.getVar('PKGD', d, True)
+ def isexec(path):
+ try:
+ s = os.stat(path)
+ except (os.error, AttributeError):
+ return 0
+ return (s[stat.ST_MODE] & stat.S_IEXEC)
+
+ for root, dirs, files in os.walk(dvar):
+ for f in files:
+ file = os.path.join(root, f)
+ if not os.path.islink(file) and not os.path.isdir(file) and isexec(file):
+ runstrip(file, d)
+}
+
+
def write_package_md5sums (root, outfile, ignorepaths):
# For each regular file under root, writes an md5sum to outfile.
# With thanks to patch.bbclass.
@@ -255,8 +271,6 @@ def write_package_md5sums (root, outfile, ignorepaths):
#
def get_package_mapping (pkg, d):
- import bb, os
-
data = read_subpkgdata(pkg, d)
key = "PKG_%s" % pkg
@@ -266,8 +280,6 @@ def get_package_mapping (pkg, d):
return pkg
def runtime_mapping_rename (varname, d):
- import bb, os
-
#bb.note("%s before: %s" % (varname, bb.data.getVar(varname, d, True)))
new_depends = []
@@ -289,8 +301,6 @@ def runtime_mapping_rename (varname, d):
#
python package_do_split_locales() {
- import os
-
if (bb.data.getVar('PACKAGE_NO_LOCALE', d, True) == '1'):
bb.debug(1, "package requested not splitting locales")
return
@@ -302,15 +312,8 @@ python package_do_split_locales() {
bb.note("datadir not defined")
return
- dvar = bb.data.getVar('D', d, True)
- if not dvar:
- bb.error("D not defined")
- return
-
+ dvar = bb.data.getVar('PKGD', d, True)
pn = bb.data.getVar('PN', d, True)
- if not pn:
- bb.error("PN not defined")
- return
if pn + '-locale' in packages:
packages.remove(pn + '-locale')
@@ -343,43 +346,30 @@ python package_do_split_locales() {
bb.data.setVar('PACKAGES', ' '.join(packages), d)
}
-python populate_packages () {
- import glob, stat, errno, re
+python perform_packagecopy () {
+ dest = bb.data.getVar('D', d, True)
+ dvar = bb.data.getVar('PKGD', d, True)
- workdir = bb.data.getVar('WORKDIR', d, True)
- if not workdir:
- bb.error("WORKDIR not defined, unable to package")
- return
+ bb.mkdirhier(dvar)
- import os # path manipulations
- outdir = bb.data.getVar('DEPLOY_DIR', d, True)
- if not outdir:
- bb.error("DEPLOY_DIR not defined, unable to package")
- return
- bb.mkdirhier(outdir)
+ # Start by package population by taking a copy of the installed
+ # files to operate on
+ os.system('rm -rf %s/*' % (dvar))
+ os.system('cp -pPR %s/* %s/' % (dest, dvar))
+}
- dvar = bb.data.getVar('D', d, True)
- if not dvar:
- bb.error("D not defined, unable to package")
- return
- bb.mkdirhier(dvar)
+python populate_packages () {
+ import glob, errno, re,os
+ workdir = bb.data.getVar('WORKDIR', d, True)
+ outdir = bb.data.getVar('DEPLOY_DIR', d, True)
+ dvar = bb.data.getVar('PKGD', d, True)
packages = bb.data.getVar('PACKAGES', d, True)
-
pn = bb.data.getVar('PN', d, True)
- if not pn:
- bb.error("PN not defined")
- return
+ bb.mkdirhier(outdir)
os.chdir(dvar)
- def isexec(path):
- try:
- s = os.stat(path)
- except (os.error, AttributeError):
- return 0
- return (s[stat.ST_MODE] & stat.S_IEXEC)
-
# Sanity check PACKAGES for duplicates - should be moved to
# sanity.bbclass once we have the infrastucture
package_list = []
@@ -392,12 +382,10 @@ python populate_packages () {
else:
package_list.append(pkg)
+
if (bb.data.getVar('INHIBIT_PACKAGE_STRIP', d, True) != '1'):
- for root, dirs, files in os.walk(dvar):
- for f in files:
- file = os.path.join(root, f)
- if not os.path.islink(file) and not os.path.isdir(file) and isexec(file):
- runstrip(file, d)
+ for f in (bb.data.getVar('PACKAGESTRIPFUNCS', d, True) or '').split():
+ bb.build.exec_func(f, d)
pkgdest = bb.data.getVar('PKGDEST', d, True)
os.system('rm -rf %s' % pkgdest)
@@ -451,8 +439,8 @@ python populate_packages () {
dpath = os.path.dirname(fpath)
bb.mkdirhier(dpath)
ret = bb.copyfile(file, fpath)
- if ret is False or ret == 0:
- raise bb.build.FuncFailed("File population failed")
+ if ret is False:
+ raise bb.build.FuncFailed("File population failed when copying %s to %s" % (file, fpath))
if pkg == main_pkg and main_is_empty:
main_is_empty = 0
del localdata
@@ -542,6 +530,7 @@ python emit_pkgdata() {
return
packages = bb.data.getVar('PACKAGES', d, True)
+ pkgdest = bb.data.getVar('PKGDEST', d, 1)
pkgdatadir = bb.data.getVar('PKGDATA_DIR', d, True)
pstageactive = bb.data.getVar('PSTAGING_ACTIVE', d, True)
@@ -585,7 +574,7 @@ python emit_pkgdata() {
allow_empty = bb.data.getVar('ALLOW_EMPTY_%s' % pkg, d, True)
if not allow_empty:
allow_empty = bb.data.getVar('ALLOW_EMPTY', d, True)
- root = "%s/install/%s" % (workdir, pkg)
+ root = "%s/%s" % (pkgdest, pkg)
os.chdir(root)
g = glob('*') + glob('.[!.]*')
if g or allow_empty == "1":
@@ -608,7 +597,7 @@ fi
SHLIBSDIR = "${STAGING_DIR_HOST}/shlibs"
python package_do_shlibs() {
- import os, re, os.path
+ import re
exclude_shlibs = bb.data.getVar('EXCLUDE_FROM_SHLIBS', d, 0)
if exclude_shlibs:
@@ -621,9 +610,6 @@ python package_do_shlibs() {
packages = bb.data.getVar('PACKAGES', d, True)
workdir = bb.data.getVar('WORKDIR', d, True)
- if not workdir:
- bb.error("WORKDIR not defined")
- return
ver = bb.data.getVar('PV', d, True)
if not ver:
@@ -784,15 +770,10 @@ python package_do_shlibs() {
}
python package_do_pkgconfig () {
- import re, os
+ import re
packages = bb.data.getVar('PACKAGES', d, True)
-
workdir = bb.data.getVar('WORKDIR', d, True)
- if not workdir:
- bb.error("WORKDIR not defined")
- return
-
pkgdest = bb.data.getVar('PKGDEST', d, True)
shlibs_dir = bb.data.getVar('SHLIBSDIR', d, True)
@@ -1012,8 +993,10 @@ python package_depchains() {
pkg_addrrecs(pkg, base, suffix, func, rdeps, d)
}
-
-PACKAGEFUNCS ?= "package_do_split_locales \
+PACKAGE_PREPROCESS_FUNCS ?= ""
+PACKAGEFUNCS ?= "perform_packagecopy \
+ ${PACKAGE_PREPROCESS_FUNCS} \
+ package_do_split_locales \
populate_packages \
package_do_shlibs \
package_do_pkgconfig \
@@ -1059,6 +1042,16 @@ python package_do_package () {
bb.debug(1, "No packages to build, skipping do_package")
return
+ workdir = bb.data.getVar('WORKDIR', d, True)
+ outdir = bb.data.getVar('DEPLOY_DIR', d, True)
+ dest = bb.data.getVar('D', d, True)
+ dvar = bb.data.getVar('PKGD', d, True)
+ pn = bb.data.getVar('PN', d, True)
+
+ if not workdir or not outdir or not dest or not dvar or not pn or not packages:
+ bb.error("WORKDIR, DEPLOY_DIR, D, PN and PKGD all must be defined, unable to package")
+ return
+
for f in (bb.data.getVar('PACKAGEFUNCS', d, True) or '').split():
bb.build.exec_func(f, d)
package_run_hooks(f, d)
diff --git a/classes/package_deb.bbclass b/classes/package_deb.bbclass
index 4a17010538..2a9bf76a79 100644
--- a/classes/package_deb.bbclass
+++ b/classes/package_deb.bbclass
@@ -17,13 +17,11 @@ DPKG_ARCH_i686 ?= "i386"
DPKG_ARCH_pentium ?= "i386"
python package_deb_fn () {
- from bb import data
bb.data.setVar('PKGFN', bb.data.getVar('PKG',d), d)
}
addtask package_deb_install
python do_package_deb_install () {
- import os, sys
pkg = bb.data.getVar('PKG', d, 1)
pkgfn = bb.data.getVar('PKGFN', d, 1)
rootfs = bb.data.getVar('IMAGE_ROOTFS', d, 1)
@@ -39,6 +37,7 @@ python do_package_deb_install () {
os.makedirs(rootfs)
os.chdir(rootfs)
except OSError:
+ import sys
raise bb.build.FuncFailed(str(sys.exc_value))
# update packages file
@@ -69,14 +68,13 @@ python do_package_deb_install () {
}
python do_package_deb () {
- import sys, re, copy
+ import re, copy
workdir = bb.data.getVar('WORKDIR', d, 1)
if not workdir:
bb.error("WORKDIR not defined, unable to package")
return
- import os # path manipulations
outdir = bb.data.getVar('DEPLOY_DIR_DEB', d, 1)
if not outdir:
bb.error("DEPLOY_DIR_DEB not defined, unable to package")
@@ -188,6 +186,7 @@ python do_package_deb () {
for (c, fs) in fields:
ctrlfile.write(unicode(c % tuple(pullData(fs, localdata))))
except KeyError:
+ import sys
(type, value, traceback) = sys.exc_info()
bb.utils.unlockfile(lf)
ctrlfile.close()
@@ -261,7 +260,6 @@ python do_package_deb () {
}
python () {
- import bb
if bb.data.getVar('PACKAGES', d, True) != '':
deps = (bb.data.getVarFlag('do_package_write_deb', 'depends', d) or "").split()
deps.append('dpkg-native:do_populate_staging')
diff --git a/classes/package_ipk.bbclass b/classes/package_ipk.bbclass
index b48f8781eb..3582195393 100644
--- a/classes/package_ipk.bbclass
+++ b/classes/package_ipk.bbclass
@@ -17,7 +17,6 @@ python package_ipk_install () {
# Warning - this function is not multimachine safe (see stagingdir reference)!
#
- import os, sys, bb
pkg = bb.data.getVar('PKG', d, 1)
pkgfn = bb.data.getVar('PKGFN', d, 1)
rootfs = bb.data.getVar('IMAGE_ROOTFS', d, 1)
@@ -31,6 +30,7 @@ python package_ipk_install () {
bb.mkdirhier(rootfs)
os.chdir(rootfs)
except OSError:
+ import sys
(type, value, traceback) = sys.exc_info()
print value
raise bb.build.FuncFailed
@@ -135,14 +135,14 @@ package_generate_ipkg_conf () {
}
python do_package_ipk () {
- import sys, re, copy, bb
+ import re, copy
workdir = bb.data.getVar('WORKDIR', d, 1)
if not workdir:
bb.error("WORKDIR not defined, unable to package")
return
- import os # path manipulations
+
outdir = bb.data.getVar('DEPLOY_DIR_IPK', d, 1)
if not outdir:
bb.error("DEPLOY_DIR_IPK not defined, unable to package")
@@ -174,10 +174,9 @@ python do_package_ipk () {
pkgname = pkg
bb.data.setVar('PKG', pkgname, localdata)
- overrides = bb.data.getVar('OVERRIDES', localdata)
+ overrides = bb.data.getVar('OVERRIDES', localdata, True)
if not overrides:
raise bb.build.FuncFailed('OVERRIDES not defined')
- overrides = bb.data.expand(overrides, localdata)
bb.data.setVar('OVERRIDES', overrides + ':' + pkg, localdata)
bb.data.update_data(localdata)
@@ -194,8 +193,7 @@ python do_package_ipk () {
except ValueError:
pass
if not g and bb.data.getVar('ALLOW_EMPTY', localdata) != "1":
- from bb import note
- note("Not creating empty archive for %s-%s" % (pkg, bb.data.expand('${PV}-${PR}${DISTRO_PR}', localdata, True)))
+ bb.note("Not creating empty archive for %s-%s" % (pkg, bb.data.expand('${PV}-${PR}${DISTRO_PR}', localdata, True)))
bb.utils.unlockfile(lf)
continue
@@ -237,6 +235,7 @@ python do_package_ipk () {
raise KeyError(f)
ctrlfile.write(c % tuple(pullData(fs, localdata)))
except KeyError:
+ import sys
(type, value, traceback) = sys.exc_info()
ctrlfile.close()
bb.utils.unlockfile(lf)
@@ -308,7 +307,6 @@ python do_package_ipk () {
}
python () {
- import bb
if bb.data.getVar('PACKAGES', d, True) != '':
deps = (bb.data.getVarFlag('do_package_write_ipk', 'depends', d) or "").split()
deps.append('ipkg-utils-native:do_populate_staging')
@@ -317,7 +315,6 @@ python () {
}
python do_package_write_ipk () {
- import bb
packages = bb.data.getVar('PACKAGES', d, True)
if not packages:
bb.debug(1, "No PACKAGES defined, nothing to package")
diff --git a/classes/package_rpm.bbclass b/classes/package_rpm.bbclass
index 13cb8773af..ab09bb24d3 100644
--- a/classes/package_rpm.bbclass
+++ b/classes/package_rpm.bbclass
@@ -10,9 +10,6 @@ RPMOPTS="--rcfile=${WORKDIR}/rpmrc --target ${TARGET_SYS}"
RPM="rpm ${RPMOPTS}"
python write_specfile() {
- from bb import data, build
- import sys
-
version = bb.data.getVar('PV', d, 1)
version = version.replace('-', '+')
bb.data.setVar('RPMPV', version, d)
@@ -50,9 +47,9 @@ python write_specfile() {
del files[files.index(r)]
except ValueError:
pass
+
if not files and bb.data.getVar('ALLOW_EMPTY', d) != "1":
- from bb import note
- note("Not creating empty archive for %s" % (bb.data.expand('${PKG}-${PV}-${PR}${DISTRO_PR}', d, True)))
+ bb.note("Not creating empty archive for %s" % (bb.data.expand('${PKG}-${PV}-${PR}${DISTRO_PR}', d, True)))
return
# output .spec using this metadata store
@@ -154,7 +151,6 @@ python do_package_rpm () {
bb.error("WORKDIR not defined, unable to package")
return
- import os # path manipulations
outdir = bb.data.getVar('DEPLOY_DIR_RPM', d, 1)
if not outdir:
bb.error("DEPLOY_DIR_RPM not defined, unable to package")
@@ -209,7 +205,6 @@ python do_package_rpm () {
}
python () {
- import bb
if bb.data.getVar('PACKAGES', d, True) != '' and \
not bb.data.inherits_class('native', d) and \
not bb.data.inherits_class('cross', d):
@@ -225,5 +220,7 @@ python do_package_write_rpm () {
bb.build.exec_func("rpm_prep", d)
bb.build.exec_func("do_package_rpm", d)
}
+
do_package_write_rpm[dirs] = "${D}"
addtask package_write_rpm before do_package_write after do_package
+
diff --git a/classes/package_tar.bbclass b/classes/package_tar.bbclass
index a0eacf27f5..b905e170f4 100644
--- a/classes/package_tar.bbclass
+++ b/classes/package_tar.bbclass
@@ -1,14 +1,11 @@
inherit package
python package_tar_fn () {
- import os
- from bb import data
fn = os.path.join(bb.data.getVar('DEPLOY_DIR_TAR', d, True), bb.data.expand('${PKG}-${PV}-${PR}${DISTRO_PR}.tar.gz', d, True))
bb.data.setVar('PKGFN', fn, d)
}
python package_tar_install () {
- import os, sys
pkg = bb.data.getVar('PKG', d, 1)
pkgfn = bb.data.getVar('PKGFN', d, 1)
rootfs = bb.data.getVar('IMAGE_ROOTFS', d, 1)
@@ -20,6 +17,7 @@ python package_tar_install () {
bb.mkdirhier(rootfs)
os.chdir(rootfs)
except OSError:
+ import sys
(type, value, traceback) = sys.exc_info()
print value
raise bb.build.FuncFailed
@@ -39,7 +37,6 @@ python do_package_tar () {
bb.error("WORKDIR not defined, unable to package")
return
- import os # path manipulations
outdir = bb.data.getVar('DEPLOY_DIR_TAR', d, 1)
if not outdir:
bb.error("DEPLOY_DIR_TAR not defined, unable to package")
@@ -59,7 +56,8 @@ python do_package_tar () {
for pkg in packages.split():
localdata = bb.data.createCopy(d)
- root = "%s/install/%s" % (workdir, pkg)
+ pkgdest = bb.data.getVar('PKGDEST', d, 1)
+ root = "%s/%s" % (pkgdest, pkg)
bb.data.setVar('ROOT', '', localdata)
bb.data.setVar('ROOT_%s' % pkg, root, localdata)
@@ -91,7 +89,6 @@ python do_package_tar () {
}
python () {
- import bb
if bb.data.getVar('PACKAGES', d, True) != '':
deps = (bb.data.getVarFlag('do_package_write_tar', 'depends', d) or "").split()
deps.append('tar-native:do_populate_staging')
diff --git a/classes/packaged-staging.bbclass b/classes/packaged-staging.bbclass
index 3b97f593b8..1c5c4cd531 100644
--- a/classes/packaged-staging.bbclass
+++ b/classes/packaged-staging.bbclass
@@ -27,7 +27,6 @@ PSTAGE_NATIVEDEPENDS = "\
BB_STAMP_WHITELIST = "${PSTAGE_NATIVEDEPENDS}"
python () {
- import bb
pstage_allowed = True
# These classes encode staging paths into the binary data so can only be
@@ -49,6 +48,9 @@ python () {
if bb.data.inherits_class('image', d):
pstage_allowed = False
+ if bb.data.getVar('PSTAGING_DISABLED', d, True) == "1":
+ pstage_allowed = False
+
# Add task dependencies if we're active, otherwise mark packaged staging
# as inactive.
if pstage_allowed:
@@ -81,8 +83,6 @@ PSTAGE_LIST_CMD = "${PSTAGE_PKGMANAGER} -f ${PSTAGE_MACHCONFIG} -o ${TMP
PSTAGE_TMPDIR_STAGE = "${WORKDIR}/staging-pkg"
def pstage_manualclean(srcname, destvarname, d):
- import os, bb
-
src = os.path.join(bb.data.getVar('PSTAGE_TMPDIR_STAGE', d, True), srcname)
dest = bb.data.getVar(destvarname, d, True)
@@ -93,7 +93,6 @@ def pstage_manualclean(srcname, destvarname, d):
os.system("rm %s" % filepath)
def pstage_set_pkgmanager(d):
- import bb
path = bb.data.getVar("PATH", d, 1)
pkgmanager = bb.which(path, 'opkg-cl')
if pkgmanager == "":
@@ -103,14 +102,12 @@ def pstage_set_pkgmanager(d):
def pstage_cleanpackage(pkgname, d):
- import os, bb
-
path = bb.data.getVar("PATH", d, 1)
pstage_set_pkgmanager(d)
list_cmd = bb.data.getVar("PSTAGE_LIST_CMD", d, True)
bb.debug(2, "Checking if staging package installed")
- lf = bb.utils.lockfile(bb.data.expand("${STAGING_DIR}/staging.lock", d))
+ lf = bb.utils.lockfile(bb.data.expand("${SYSROOT_LOCK}", d))
ret = os.system("PATH=\"%s\" %s | grep %s" % (path, list_cmd, pkgname))
if ret == 0:
bb.debug(1, "Uninstalling package from staging...")
@@ -152,12 +149,11 @@ staging_helper () {
done
echo "dest root /" >> $conffile
fi
- if [ ! -e ${TMPDIR}${layout_libdir}/opkg/info/ ]; then
- mkdir -p ${TMPDIR}${layout_libdir}/opkg/info/
+ if [ ! -e ${TMPDIR}${libdir_native}/opkg/info/ ]; then
+ mkdir -p ${TMPDIR}${libdir_native}/opkg/info/
fi
- if [ ! -e ${TMPDIR}${layout_libdir}/ipkg/ ]; then
- cd ${TMPDIR}${layout_libdir}/
- ln -sf opkg/ ipkg
+ if [ ! -e ${TMPDIR}${libdir_native}/ipkg/ ]; then
+ ln -sf opkg/ ${TMPDIR}${libdir_native}/ipkg || true
fi
}
@@ -166,14 +162,13 @@ PSTAGE_TASKS_COVERED = "fetch unpack munge patch configure qa_configure rig_loca
SCENEFUNCS += "packagestage_scenefunc"
python packagestage_scenefunc () {
- import os
-
if bb.data.getVar("PSTAGING_ACTIVE", d, 1) == "0":
return
bb.build.exec_func("staging_helper", d)
removepkg = bb.data.expand("${PSTAGE_PKGPN}", d)
+
pstage_cleanpackage(removepkg, d)
stagepkg = bb.data.expand("${PSTAGE_PKG}", d)
@@ -187,7 +182,7 @@ python packagestage_scenefunc () {
#
# Install the staging package somewhere temporarily so we can extract the stamp files
#
- bb.mkdirhier(bb.data.expand("${WORKDIR}/tstage/${layout_libdir}/opkg/info/ ", d))
+ bb.mkdirhier(bb.data.expand("${WORKDIR}/tstage/${libdir_native}/opkg/info/ ", d))
cmd = bb.data.expand("${PSTAGE_PKGMANAGER} -f ${PSTAGE_MACHCONFIG} -force-depends -o ${WORKDIR}/tstage install", d)
ret = os.system("PATH=\"%s\" %s %s" % (path, cmd, stagepkg))
if ret != 0:
@@ -228,7 +223,7 @@ python packagestage_scenefunc () {
if stageok:
bb.note("Staging package found, using it for %s." % file)
installcmd = bb.data.getVar("PSTAGE_INSTALL_CMD", d, 1)
- lf = bb.utils.lockfile(bb.data.expand("${STAGING_DIR}/staging.lock", d))
+ lf = bb.utils.lockfile(bb.data.expand("${SYSROOT_LOCK}", d))
ret = os.system("PATH=\"%s\" %s %s" % (path, installcmd, stagepkg))
bb.utils.unlockfile(lf)
if ret != 0:
@@ -244,10 +239,7 @@ packagestage_scenefunc[dirs] = "${STAGING_DIR}"
addhandler packagedstage_stampfixing_eventhandler
python packagedstage_stampfixing_eventhandler() {
- from bb.event import getName
- import os
-
- if getName(e) == "StampUpdate":
+ if bb.event.getName(e) == "StampUpdate":
taskscovered = bb.data.getVar("PSTAGE_TASKS_COVERED", e.data, 1).split()
for (fn, task) in e.targets:
# strip off 'do_'
@@ -292,13 +284,21 @@ populate_staging_postamble () {
fi
}
-do_populate_staging[lockfiles] = "${STAGING_DIR}/staging.lock"
+packagedstaging_fastpath () {
+ if [ "$PSTAGING_ACTIVE" = "1" ]; then
+ mkdir -p ${PSTAGE_TMPDIR_STAGE}/staging/
+ mkdir -p ${PSTAGE_TMPDIR_STAGE}/cross/
+ cp -fpPR ${SYSROOT_DESTDIR}/${STAGING_DIR}/* ${PSTAGE_TMPDIR_STAGE}/staging/ || /bin/true
+ cp -fpPR ${SYSROOT_DESTDIR}/${CROSS_DIR}/* ${PSTAGE_TMPDIR_STAGE}/cross/ || /bin/true
+ fi
+}
+
do_populate_staging[dirs] =+ "${DEPLOY_DIR_PSTAGE}"
-python do_populate_staging_prepend() {
+python populate_staging_prehook() {
bb.build.exec_func("populate_staging_preamble", d)
}
-python do_populate_staging_append() {
+python populate_staging_posthook() {
bb.build.exec_func("populate_staging_postamble", d)
}
@@ -329,20 +329,20 @@ staging_packager () {
staging_package_installer () {
#${PSTAGE_INSTALL_CMD} ${PSTAGE_PKG}
- STATUSFILE=${TMPDIR}${layout_libdir}/opkg/status
+ STATUSFILE=${TMPDIR}${libdir_native}/opkg/status
echo "Package: ${PSTAGE_PKGPN}" >> $STATUSFILE
echo "Version: ${PSTAGE_PKGVERSION}" >> $STATUSFILE
echo "Status: install user installed" >> $STATUSFILE
echo "Architecture: ${PSTAGE_PKGARCH}" >> $STATUSFILE
echo "" >> $STATUSFILE
- CTRLFILE=${TMPDIR}${layout_libdir}/opkg/info/${PSTAGE_PKGPN}.control
+ CTRLFILE=${TMPDIR}${libdir_native}/opkg/info/${PSTAGE_PKGPN}.control
echo "Package: ${PSTAGE_PKGPN}" > $CTRLFILE
echo "Version: ${PSTAGE_PKGVERSION}" >> $CTRLFILE
echo "Architecture: ${PSTAGE_PKGARCH}" >> $CTRLFILE
cd ${PSTAGE_TMPDIR_STAGE}
- find -type f | grep -v ./CONTROL | sed -e 's/^\.//' > ${TMPDIR}${layout_libdir}/opkg/info/${PSTAGE_PKGPN}.list
+ find -type f | grep -v ./CONTROL | sed -e 's/^\.//' > ${TMPDIR}${libdir_native}/opkg/info/${PSTAGE_PKGPN}.list
}
python do_package_stage () {
@@ -420,7 +420,7 @@ python do_package_stage () {
pstage_set_pkgmanager(d)
bb.build.exec_func("staging_helper", d)
bb.build.exec_func("staging_packager", d)
- lf = bb.utils.lockfile(bb.data.expand("${STAGING_DIR}/staging.lock", d))
+ lf = bb.utils.lockfile(bb.data.expand("${SYSROOT_LOCK}", d))
bb.build.exec_func("staging_package_installer", d)
bb.utils.unlockfile(lf)
}
diff --git a/classes/packagedata.bbclass b/classes/packagedata.bbclass
new file mode 100644
index 0000000000..86f18a9e96
--- /dev/null
+++ b/classes/packagedata.bbclass
@@ -0,0 +1,73 @@
+def packaged(pkg, d):
+ return os.access(get_subpkgedata_fn(pkg, d) + '.packaged', os.R_OK)
+
+def read_pkgdatafile(fn):
+ pkgdata = {}
+
+ def decode(str):
+ import codecs
+ c = codecs.getdecoder("string_escape")
+ return c(str)[0]
+
+ if os.access(fn, os.R_OK):
+ import re
+ f = file(fn, 'r')
+ lines = f.readlines()
+ f.close()
+ r = re.compile("([^:]+):\s*(.*)")
+ for l in lines:
+ m = r.match(l)
+ if m:
+ pkgdata[m.group(1)] = decode(m.group(2))
+
+ return pkgdata
+
+def get_subpkgedata_fn(pkg, d):
+ archs = bb.data.expand("${PACKAGE_ARCHS}", d).split(" ")
+ archs.reverse()
+ pkgdata = bb.data.expand('${TMPDIR}/pkgdata/', d)
+ targetdir = bb.data.expand('${TARGET_VENDOR}-${TARGET_OS}/runtime/', d)
+ for arch in archs:
+ fn = pkgdata + arch + targetdir + pkg
+ if os.path.exists(fn):
+ return fn
+ return bb.data.expand('${PKGDATA_DIR}/runtime/%s' % pkg, d)
+
+def has_subpkgdata(pkg, d):
+ return os.access(get_subpkgedata_fn(pkg, d), os.R_OK)
+
+def read_subpkgdata(pkg, d):
+ return read_pkgdatafile(get_subpkgedata_fn(pkg, d))
+
+def has_pkgdata(pn, d):
+ fn = bb.data.expand('${PKGDATA_DIR}/%s' % pn, d)
+ return os.access(fn, os.R_OK)
+
+def read_pkgdata(pn, d):
+ fn = bb.data.expand('${PKGDATA_DIR}/%s' % pn, d)
+ return read_pkgdatafile(fn)
+
+python read_subpackage_metadata () {
+ data = read_pkgdata(bb.data.getVar('PN', d, 1), d)
+
+ for key in data.keys():
+ bb.data.setVar(key, data[key], d)
+
+ for pkg in bb.data.getVar('PACKAGES', d, 1).split():
+ sdata = read_subpkgdata(pkg, d)
+ for key in sdata.keys():
+ bb.data.setVar(key, sdata[key], d)
+}
+
+
+#
+# Collapse FOO_pkg variables into FOO
+#
+def read_subpkgdata_dict(pkg, d):
+ ret = {}
+ subd = read_pkgdatafile(get_subpkgedata_fn(pkg, d))
+ for var in subd:
+ newvar = var.replace("_" + pkg, "")
+ ret[newvar] = subd[var]
+ return ret
+
diff --git a/classes/packagehistory.bbclass b/classes/packagehistory.bbclass
index b435149d22..492bbac218 100644
--- a/classes/packagehistory.bbclass
+++ b/classes/packagehistory.bbclass
@@ -4,6 +4,7 @@ PACKAGEFUNCS += "emit_pkghistory"
PKGHIST_DIR = "${TMPDIR}/pkghistory/${BASEPKG_TARGET_SYS}/"
+
#
# Called during do_package to write out metadata about this package
# for comparision when writing future packages
@@ -60,8 +61,6 @@ python emit_pkghistory() {
def check_pkghistory(pkg, pe, pv, pr, lastversion):
- import bb
-
(last_pe, last_pv, last_pr) = lastversion
bb.debug(2, "Checking package history")
@@ -71,7 +70,6 @@ def check_pkghistory(pkg, pe, pv, pr, lastversion):
def write_pkghistory(pkg, pe, pv, pr, d):
- import bb, os
bb.debug(2, "Writing package history")
pkghistdir = bb.data.getVar('PKGHIST_DIR', d, True)
@@ -81,8 +79,6 @@ def write_pkghistory(pkg, pe, pv, pr, d):
os.makedirs(verpath)
def write_latestlink(pkg, pe, pv, pr, d):
- import bb, os
-
pkghistdir = bb.data.getVar('PKGHIST_DIR', d, True)
def rm_link(path):
diff --git a/classes/patch.bbclass b/classes/patch.bbclass
index dfb8ec960f..33184df0d0 100644
--- a/classes/patch.bbclass
+++ b/classes/patch.bbclass
@@ -4,8 +4,6 @@
QUILTRCFILE ?= "${STAGING_BINDIR_NATIVE}/quiltrc"
def patch_init(d):
- import os, sys
-
class NotFoundError(Exception):
def __init__(self, path):
self.path = path
@@ -13,8 +11,6 @@ def patch_init(d):
return "Error: %s not found." % self.path
def md5sum(fname):
- import sys
-
# when we move to Python 2.5 as minimal supported
# we can kill that try/except as hashlib is 2.5+
try:
@@ -76,8 +72,6 @@ def patch_init(d):
def __str__(self):
return "Patch Error: %s" % self.msg
- import bb, bb.data, bb.fetch
-
class PatchSet(object):
defaults = {
"strippath": 1
@@ -253,6 +247,7 @@ def patch_init(d):
try:
output = runcmd(["quilt", "applied"], self.dir)
except CmdError:
+ import sys
if sys.exc_value.output.strip() == "No patches applied":
return
else:
@@ -366,6 +361,7 @@ def patch_init(d):
try:
self.patchset.Push()
except Exception:
+ import sys
os.chdir(olddir)
raise sys.exc_value
@@ -456,9 +452,6 @@ PATCHDEPENDENCY = "${PATCHTOOL}-native:do_populate_staging"
do_patch[depends] = "${PATCHDEPENDENCY}"
python patch_do_patch() {
- import re
- import bb.fetch
-
patch_init(d)
src_uri = (bb.data.getVar('SRC_URI', d, 1) or '').split()
diff --git a/classes/pkgconfig.bbclass b/classes/pkgconfig.bbclass
index 2a8199d135..f3d93716d7 100644
--- a/classes/pkgconfig.bbclass
+++ b/classes/pkgconfig.bbclass
@@ -1,18 +1,18 @@
-inherit base
-
DEPENDS_prepend = "pkgconfig-native "
do_install_prepend () {
for i in `find ${S}/ -name "*.pc" -type f` ; do \
- sed -i -e 's:-L${STAGING_LIBDIR}::g' $i
+ sed -i -e 's:-L${STAGING_LIBDIR}::g' -e 's:-I${STAGING_INCDIR}::g' $i
done
}
-do_stage_append () {
- install -d ${PKG_CONFIG_DIR}
+SYSROOT_PREPROCESS_FUNCS += "pkgconfig_sysroot_preprocess"
+
+pkgconfig_sysroot_preprocess () {
+ install -d ${SYSROOT_DESTDIR}${PKG_CONFIG_DIR}
for pc in `find ${S} -name '*.pc' -type f | grep -v -- '-uninstalled.pc$'`; do
pcname=`basename $pc`
- cat $pc > ${PKG_CONFIG_DIR}/$pcname
+ cat $pc > ${SYSROOT_DESTDIR}${PKG_CONFIG_DIR}/$pcname
done
}
diff --git a/classes/recipe_sanity.bbclass b/classes/recipe_sanity.bbclass
index 29f4a8fada..d929da6319 100644
--- a/classes/recipe_sanity.bbclass
+++ b/classes/recipe_sanity.bbclass
@@ -1,10 +1,8 @@
def __note(msg, d):
- import bb
bb.note("%s: recipe_sanity: %s" % (d.getVar("P", 1), msg))
__recipe_sanity_badtargetvars = "RDEPENDS RPROVIDES"
def bad_target_vars(cfgdata, d):
- import bb.data
if bb.data.inherits_class("native", d) or \
bb.data.inherits_class("cross", d):
return
@@ -43,14 +41,12 @@ def var_renames_overwrite(cfgdata, d):
__note("rename of variable '%s' to '%s' overwrote existing value '%s' with '%s'." % (key, newkey, oldvalue, newvalue), d)
def incorrect_nonempty_PACKAGES(cfgdata, d):
- import bb.data
if bb.data.inherits_class("native", d) or \
bb.data.inherits_class("cross", d):
if d.getVar("PACKAGES", 1):
return True
def can_use_autotools_base(cfgdata, d):
- import bb
cfg = d.getVar("do_configure", 1)
if not bb.data.inherits_class("autotools", d):
return False
@@ -68,8 +64,6 @@ def can_use_autotools_base(cfgdata, d):
return True
def can_remove_FILESPATH(cfgdata, d):
- import os
- import bb
expected = cfgdata.get("FILESPATH")
#expected = "${@':'.join([os.path.normpath(os.path.join(fp, p, o)) for fp in d.getVar('FILESPATHBASE', 1).split(':') for p in d.getVar('FILESPATHPKG', 1).split(':') for o in (d.getVar('OVERRIDES', 1) + ':').split(':') if os.path.exists(os.path.join(fp, p, o))])}:${FILESDIR}"
expectedpaths = bb.data.expand(expected, d)
@@ -84,8 +78,6 @@ def can_remove_FILESPATH(cfgdata, d):
return expected != unexpanded
def can_remove_FILESDIR(cfgdata, d):
- import os
- import bb
expected = cfgdata.get("FILESDIR")
#expected = "${@bb.which(d.getVar('FILESPATH', 1), '.')}"
unexpanded = d.getVar("FILESDIR", 0)
@@ -102,7 +94,6 @@ def can_remove_FILESDIR(cfgdata, d):
expanded == bb.data.expand(expected, d))
def can_remove_others(p, cfgdata, d):
- import bb
for k in ["S", "PV", "PN", "DESCRIPTION", "LICENSE", "DEPENDS",
"SECTION", "PACKAGES", "EXTRA_OECONF", "EXTRA_OEMAKE"]:
#for k in cfgdata:
diff --git a/classes/rm_work.bbclass b/classes/rm_work.bbclass
index 094f9167bb..a53d12baf3 100644
--- a/classes/rm_work.bbclass
+++ b/classes/rm_work.bbclass
@@ -35,10 +35,7 @@ addtask rm_work_all after do_rm_work
addhandler rmwork_stampfixing_eventhandler
python rmwork_stampfixing_eventhandler() {
- from bb.event import getName
- import os
-
- if getName(e) == "StampUpdate":
+ if bb.event.getName(e) == "StampUpdate":
for (fn, task) in e.targets:
if task == 'rm_work_all':
continue
diff --git a/classes/sanity.bbclass b/classes/sanity.bbclass
index 83c03299bf..f65df61c1d 100644
--- a/classes/sanity.bbclass
+++ b/classes/sanity.bbclass
@@ -11,8 +11,6 @@ def raise_sanity_error(msg):
%s""" % msg)
def check_conf_exists(fn, data):
- import bb, os
-
bbpath = []
fn = bb.data.expand(fn, data)
vbbpath = bb.data.getVar("BBPATH", data)
@@ -26,12 +24,12 @@ def check_conf_exists(fn, data):
def check_sanity(e):
from bb import note, error, data, __version__
- from bb.event import Handled, NotHandled, getName
+
try:
from distutils.version import LooseVersion
except ImportError:
def LooseVersion(v): print "WARNING: sanity.bbclass can't compare versions without python-distutils"; return 1
- import os, commands
+ import commands
# Check the bitbake version meets minimum requirements
minversion = data.getVar('BB_MIN_VERSION', e.data , True)
@@ -193,10 +191,8 @@ def check_sanity(e):
addhandler check_sanity_eventhandler
python check_sanity_eventhandler() {
- from bb import note, error, data, __version__
- from bb.event import getName
-
- if getName(e) == "ConfigParsed":
+ from bb.event import Handled, NotHandled
+ if bb.event.getName(e) == "ConfigParsed":
check_sanity(e)
return NotHandled
diff --git a/classes/scons.bbclass b/classes/scons.bbclass
index cd5de61e6d..b139411c19 100644
--- a/classes/scons.bbclass
+++ b/classes/scons.bbclass
@@ -13,7 +13,7 @@ scons_do_install() {
scons_do_stage() {
install -d ${D}${prefix}
- ${STAGING_BINDIR_NATIVE}/scons PREFIX=${STAGING_DIR_HOST}/${layout_prefix} prefix=${STAGING_DIR_HOST}/${layout_prefix} install || \
+ ${STAGING_BINDIR_NATIVE}/scons PREFIX=${STAGING_DIR_HOST}/${prefix} prefix=${STAGING_DIR_HOST}/${prefix} install || \
oefatal "scons stage execution failed."
}
diff --git a/classes/sdk.bbclass b/classes/sdk.bbclass
index eb34bd04b5..198d147cb3 100644
--- a/classes/sdk.bbclass
+++ b/classes/sdk.bbclass
@@ -1,3 +1,8 @@
+#
+# Note this class is deprecated and replaced by nativesdk.bbclass
+#
+
+
# SDK packages are built either explicitly by the user,
# or indirectly via dependency. No need to be in 'world'.
EXCLUDE_FROM_WORLD = "1"
diff --git a/classes/siteinfo.bbclass b/classes/siteinfo.bbclass
index 5c929dffcd..93cee4f890 100644
--- a/classes/siteinfo.bbclass
+++ b/classes/siteinfo.bbclass
@@ -16,8 +16,6 @@
# If 'what' doesn't exist then an empty value is returned
#
def get_siteinfo_list(d):
- import bb
-
target = bb.data.getVar('HOST_ARCH', d, 1) + "-" + bb.data.getVar('HOST_OS', d, 1)
targetinfo = {\
@@ -86,8 +84,6 @@ def get_siteinfo_list(d):
# 2) ${FILE_DIRNAME}/site-${PV} - app version specific
#
def siteinfo_get_files(d):
- import bb, os
-
sitefiles = ""
# Determine which site files to look for
diff --git a/classes/sourcepkg.bbclass b/classes/sourcepkg.bbclass
index 200ff8c228..5aacf92d10 100644
--- a/classes/sourcepkg.bbclass
+++ b/classes/sourcepkg.bbclass
@@ -5,8 +5,6 @@ EXCLUDE_FROM ?= ".pc autom4te.cache"
DISTRO ?= "openembedded"
def get_src_tree(d):
- import bb
- import os, os.path
workdir = bb.data.getVar('WORKDIR', d, 1)
if not workdir:
@@ -56,8 +54,6 @@ sourcepkg_do_archive_bb() {
}
python sourcepkg_do_dumpdata() {
- import os
- import os.path
workdir = bb.data.getVar('WORKDIR', d, 1)
distro = bb.data.getVar('DISTRO', d, 1)
diff --git a/classes/src_distribute.bbclass b/classes/src_distribute.bbclass
index 7d75c9e16f..22044752ef 100644
--- a/classes/src_distribute.bbclass
+++ b/classes/src_distribute.bbclass
@@ -3,7 +3,7 @@ SRC_DISTRIBUTECOMMAND[func] = "1"
addtask distribute_sources before do_build after do_fetch
python do_distribute_sources () {
- import os, re, bb
+ import re
bb.build.exec_func("do_fetch", d)
diff --git a/classes/task.bbclass b/classes/task.bbclass
index f3287ebf73..4edd704829 100644
--- a/classes/task.bbclass
+++ b/classes/task.bbclass
@@ -17,7 +17,6 @@ PACKAGE_ARCH = "all"
# to the list. Their dependencies (RRECOMMENDS) are handled as usual
# by package_depchains in a following step.
python () {
- import bb
packages = bb.data.getVar('PACKAGES', d, 1).split()
genpackages = []
for pkg in packages:
diff --git a/classes/tinderclient.bbclass b/classes/tinderclient.bbclass
index d2b2b33898..a45c1e679b 100644
--- a/classes/tinderclient.bbclass
+++ b/classes/tinderclient.bbclass
@@ -1,6 +1,5 @@
def tinder_http_post(d, server, selector, content_type, body):
import httplib
- from bb import data
# now post it
for i in range(0,5):
try:
@@ -61,8 +60,7 @@ def tinder_format_http_post(d,status,log):
for the tinderbox to be happy.
"""
- from bb import data, build
- import os,random
+ import random
# the variables we will need to send on this form post
variables = {
@@ -82,7 +80,6 @@ def tinder_format_http_post(d,status,log):
"TARGETOS" : data.getVar('TARGET_OS', d, True) or "Unknown",
"MACHINE" : data.getVar('MACHINE', d, True) or "Unknown",
"DISTRO" : data.getVar('DISTRO', d, True) or "Unknown",
- "zecke-rocks" : "sure",
}
# optionally add the status
diff --git a/classes/update-alternatives.bbclass b/classes/update-alternatives.bbclass
index c63581c5d1..ddbf4c1947 100644
--- a/classes/update-alternatives.bbclass
+++ b/classes/update-alternatives.bbclass
@@ -11,7 +11,6 @@ update-alternatives --remove ${ALTERNATIVE_NAME} ${ALTERNATIVE_PATH}
}
def update_alternatives_after_parse(d):
- import bb
if bb.data.getVar('ALTERNATIVE_NAME', d) == None:
raise bb.build.FuncFailed, "%s inherits update-alternatives but doesn't set ALTERNATIVE_NAME" % bb.data.getVar('FILE', d)
if bb.data.getVar('ALTERNATIVE_PATH', d) == None:
diff --git a/classes/update-rc.d.bbclass b/classes/update-rc.d.bbclass
index 00ec37cfb8..b6491ed9d6 100644
--- a/classes/update-rc.d.bbclass
+++ b/classes/update-rc.d.bbclass
@@ -41,7 +41,6 @@ fi
def update_rc_after_parse(d):
- import bb
if bb.data.getVar('INITSCRIPT_PACKAGES', d) == None:
if bb.data.getVar('INITSCRIPT_NAME', d) == None:
raise bb.build.FuncFailed, "%s inherits update-rc.d but doesn't set INITSCRIPT_NAME" % bb.data.getVar('FILE', d)
diff --git a/classes/xlibs.bbclass b/classes/xlibs.bbclass
index ae8f928f1e..fc52400b9f 100644
--- a/classes/xlibs.bbclass
+++ b/classes/xlibs.bbclass
@@ -6,10 +6,10 @@ XLIBS_CVS = "${FREEDESKTOP_CVS}/xlibs"
inherit autotools pkgconfig
do_stage() {
- oe_runmake install prefix=${STAGING_DIR_HOST}${layout_prefix} \
+ oe_runmake install prefix=${STAGING_DIR_HOST}${prefix} \
bindir=${STAGING_BINDIR} \
includedir=${STAGING_INCDIR} \
libdir=${STAGING_LIBDIR} \
datadir=${STAGING_DATADIR} \
- mandir=${STAGING_DIR_HOST}${layout_mandir}
+ mandir=${STAGING_DIR_HOST}${mandir}
}
diff --git a/conf/bitbake.conf b/conf/bitbake.conf
index ad9c0b96f1..b69b6757db 100644
--- a/conf/bitbake.conf
+++ b/conf/bitbake.conf
@@ -8,31 +8,31 @@ BBMASK = "/(nonworking|obsolete)/"
##################################################################
# Path prefixes
-layout_prefix = "/usr"
-layout_exec_prefix = "/usr"
-layout_base_prefix = ""
+layout_prefix = "${prefix}"
+layout_exec_prefix = "${exec_prefix}"
+layout_base_prefix = "${base_prefix}"
# Base paths
-layout_base_bindir = "${layout_base_prefix}/bin"
-layout_base_sbindir = "${layout_base_prefix}/sbin"
-layout_base_libdir = "${layout_base_prefix}/lib"
+layout_base_bindir = "${base_bindir}"
+layout_base_sbindir = "${base_sbindir}"
+layout_base_libdir = "${base_libdir}"
# Architecture independent paths
-layout_sysconfdir = "${layout_base_prefix}/etc"
-layout_localstatedir = "${layout_base_prefix}/var"
-layout_servicedir = "${layout_base_prefix}/srv"
-layout_sharedstatedir = "${layout_prefix}/com"
-layout_datadir = "${layout_prefix}/share"
-layout_infodir = "${layout_datadir}/info"
-layout_mandir = "${layout_datadir}/man"
-layout_docdir = "${layout_datadir}/doc"
+layout_sysconfdir = "${sysconfdir}"
+layout_localstatedir = "${localstatedir}"
+layout_servicedir = "${servicedir}"
+layout_sharedstatedir = "${sharedstatedir}"
+layout_datadir = "${datadir}"
+layout_infodir = "${infodir}"
+layout_mandir = "${mandir}"
+layout_docdir = "${docdir}"
# Architecture dependent paths
-layout_bindir = "${layout_exec_prefix}/bin"
-layout_sbindir = "${layout_exec_prefix}/sbin"
-layout_libdir = "${layout_exec_prefix}/lib"
-layout_includedir = "${layout_exec_prefix}/include"
-layout_libexecdir = "${layout_exec_prefix}/libexec"
+layout_bindir = "${bindir}"
+layout_sbindir = "${sbindir}"
+layout_libdir = "${libdir}"
+layout_includedir = "${includedir}"
+layout_libexecdir = "${libexecdir}"
##################################################################
# Standard target filesystem paths.
@@ -40,31 +40,51 @@ layout_libexecdir = "${layout_exec_prefix}/libexec"
# Path prefixes
export base_prefix = ""
-export prefix = "${layout_prefix}"
-export exec_prefix = "${layout_exec_prefix}"
+export prefix = "/usr"
+export exec_prefix = "/usr"
# Base paths
-export base_bindir = "${layout_base_bindir}"
-export base_sbindir = "${layout_base_sbindir}"
-export base_libdir = "${layout_base_libdir}"
+export base_bindir = "${base_prefix}/bin"
+export base_sbindir = "${base_prefix}/sbin"
+export base_libdir = "${base_prefix}/lib"
# Architecture independent paths
-export datadir = "${layout_datadir}"
-export sysconfdir = "${layout_sysconfdir}"
-export sharedstatedir = "${layout_sharedstatedir}"
-export localstatedir = "${layout_localstatedir}"
-export infodir = "${layout_infodir}"
-export mandir = "${layout_mandir}"
-export docdir = "${layout_docdir}"
-export servicedir = "${layout_servicedir}"
+export datadir = "${prefix}/share"
+export sysconfdir = "${base_prefix}/etc"
+export servicedir = "${base_prefix}/srv"
+export sharedstatedir = "${base_prefix}/com"
+export localstatedir = "${base_prefix}/var"
+export infodir = "${datadir}/info"
+export mandir = "${datadir}/man"
+export docdir = "${datadir}/doc"
# Architecture dependent paths
-export bindir = "${layout_bindir}"
-export sbindir = "${layout_sbindir}"
-export libexecdir = "${layout_libexecdir}"
-export libdir = "${layout_libdir}"
-export includedir = "${layout_includedir}"
-export oldincludedir = "${layout_includedir}"
+export bindir = "${exec_prefix}/bin"
+export sbindir = "${exec_prefix}/sbin"
+export libexecdir = "${exec_prefix}/libexec"
+export libdir = "${exec_prefix}/lib"
+export includedir = "${exec_prefix}/include"
+export oldincludedir = "${exec_prefix}/include"
+
+#
+# These must match the various bbclass layout definitions
+#
+base_bindir_native = "/bin"
+base_sbindir_native = "/sbin"
+sysconfdir_native = "/etc"
+prefix_native = "/usr"
+bindir_native = "${prefix_native}/bin"
+sbindir_native = "${prefix_native}/sbin"
+includedir_native = "${prefix_native}/include"
+libdir_native = "${prefix_native}/lib"
+datadir_native = "${prefix_native}/share"
+bindir_cross = "/bin"
+
+#
+# Cross recipes need to know about the target layout
+# := is used carefully here
+#
+target_datadir := "${datadir}"
##################################################################
# Architecture-dependent build variables.
@@ -108,7 +128,7 @@ EXEEXT = "${HOST_EXEEXT}"
BASE_PACKAGE_ARCH = "${HOST_ARCH}"
PACKAGE_ARCH = "${BASE_PACKAGE_ARCH}"
PACKAGE_EXTRA_ARCHS ?= ""
-MACHINE_ARCH = "${@[bb.data.getVar('HOST_ARCH', d, 1), bb.data.getVar('MACHINE', d, 1)][bool(bb.data.getVar('MACHINE', d, 1))]}"
+MACHINE_ARCH = "${@[bb.data.getVar('BASE_PACKAGE_ARCH', d, 1), bb.data.getVar('MACHINE', d, 1)][bool(bb.data.getVar('MACHINE', d, 1))]}"
PACKAGE_ARCHS = "all any noarch ${TARGET_ARCH} ${PACKAGE_EXTRA_ARCHS} ${MACHINE}"
MULTIMACH_ARCH = "${PACKAGE_ARCH}"
@@ -170,7 +190,8 @@ MACHINE_KERNEL_PR = ""
# Base package name
# Automatically derives "foo" from "foo-native", "foo-cross" or "foo-initial"
# otherwise it is the same as PN and P
-BPN = "${@base_package_name(d)}"
+SPECIAL_PKGSUFFIX = "-native -cross -initial -intermediate -nativesdk -crosssdk -cross-canadian -sdk"
+BPN = "${@base_prune_suffix(bb.data.getVar('PN', d, True), bb.data.getVar('SPECIAL_PKGSUFFIX', d, True).split(), d)}"
BP = "${BPN}-${PV}"
# Package info.
@@ -277,22 +298,22 @@ B = "${S}"
STAGING_DIR = "${TMPDIR}/staging"
STAGING_DIR_NATIVE = "${STAGING_DIR}/${BUILD_SYS}"
-STAGING_BINDIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_bindir}"
-STAGING_BINDIR_CROSS = "${STAGING_DIR_NATIVE}${layout_bindir}/${MULTIMACH_HOST_SYS}"
-STAGING_BINDIR_CROSS_BASEPKG = "${STAGING_DIR_NATIVE}${layout_bindir}/${BASEPKG_TARGET_SYS}"
-STAGING_LIBDIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_libdir}"
-STAGING_INCDIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_includedir}"
-STAGING_ETCDIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_sysconfdir}"
-STAGING_DATADIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_datadir}"
+STAGING_BINDIR_NATIVE = "${STAGING_DIR_NATIVE}${bindir_native}"
+STAGING_BINDIR_CROSS = "${STAGING_DIR_NATIVE}${bindir_native}/${MULTIMACH_HOST_SYS}"
+STAGING_BINDIR_CROSS_BASEPKG = "${STAGING_DIR_NATIVE}${bindir_native}/${BASEPKG_TARGET_SYS}"
+STAGING_LIBDIR_NATIVE = "${STAGING_DIR_NATIVE}${libdir_native}"
+STAGING_INCDIR_NATIVE = "${STAGING_DIR_NATIVE}${includedir_native}"
+STAGING_ETCDIR_NATIVE = "${STAGING_DIR_NATIVE}${sysconfdir_native}"
+STAGING_DATADIR_NATIVE = "${STAGING_DIR_NATIVE}${datadir_native}"
# This should really be MULTIMACH_HOST_SYS but that breaks "all" and machine
# specific packages - hack around it for now.
STAGING_DIR_HOST = "${STAGING_DIR}/${BASEPKG_HOST_SYS}"
-STAGING_BINDIR = "${STAGING_DIR_HOST}${layout_bindir}"
-STAGING_LIBDIR = "${STAGING_DIR_HOST}${layout_libdir}"
-STAGING_INCDIR = "${STAGING_DIR_HOST}${layout_includedir}"
-STAGING_DATADIR = "${STAGING_DIR_HOST}${layout_datadir}"
-STAGING_EXECPREFIXDIR = "${STAGING_DIR_HOST}${layout_exec_prefix}"
+STAGING_BINDIR = "${STAGING_DIR_HOST}${bindir}"
+STAGING_LIBDIR = "${STAGING_DIR_HOST}${libdir}"
+STAGING_INCDIR = "${STAGING_DIR_HOST}${includedir}"
+STAGING_DATADIR = "${STAGING_DIR_HOST}${datadir}"
+STAGING_EXECPREFIXDIR = "${STAGING_DIR_HOST}${exec_prefix}"
STAGING_LOADER_DIR = "${STAGING_DIR_HOST}/loader"
STAGING_FIRMWARE_DIR = "${STAGING_DIR_HOST}/firmware"
STAGING_PYDIR = "${STAGING_DIR}/lib/python2.4"
@@ -317,6 +338,7 @@ PKGDATA_DIR = "${TMPDIR}/pkgdata/${MULTIMACH_TARGET_SYS}"
SDK_NAME = "${DISTRO}/${TARGET_ARCH}"
SDK_PATH = "/usr/local/${SDK_NAME}"
+SDKPATH = "${SDK_PATH}"
##################################################################
# Kernel info.
@@ -345,12 +367,13 @@ IMAGE_CMD_ext2.gz = "install -d ${DEPLOY_DIR_IMAGE}/tmp.gz ; genext2fs -b ${ROOT
IMAGE_CMD_ext3 = "genext2fs -b ${ROOTFS_SIZE} -d ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext3 ${EXTRA_IMAGECMD}; tune2fs -j ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext3"
IMAGE_CMD_ext3.gz = "install -d ${DEPLOY_DIR_IMAGE}/tmp.gz ; genext2fs -b ${ROOTFS_SIZE} -d ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext3 ${EXTRA_IMAGECMD}; tune2fs -j ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext3; gzip -f -9 ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext3; mv ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext3.gz ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext3.gz"
IMAGE_CMD_squashfs = "mksquashfs ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.squashfs ${EXTRA_IMAGECMD} -noappend"
-IMAGE_CMD_squashfs-lzma = "mksquashfs ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.squashfs-lzma ${EXTRA_IMAGECMD} -noappend -lzma"
+IMAGE_CMD_squashfs-lzma = "mksquashfs ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.squashfs-lzma ${EXTRA_IMAGECMD} -noappend -comp lzma"
IMAGE_CMD_tar = "cd ${IMAGE_ROOTFS} && tar -cvf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.tar ."
IMAGE_CMD_tar.gz = "cd ${IMAGE_ROOTFS} && tar -zcvf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.tar.gz ."
IMAGE_CMD_tar.bz2 = "cd ${IMAGE_ROOTFS} && tar -jcvf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.tar.bz2 ."
IMAGE_CMD_cpio = "cd ${IMAGE_ROOTFS} && (find . | cpio -o -H newc >${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.cpio) ${EXTRA_IMAGECMD}"
IMAGE_CMD_cpio.gz = "cd ${IMAGE_ROOTFS} && (find . | cpio -o -H newc | gzip -c -9 >${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.cpio.gz) ${EXTRA_IMAGECMD}"
+IMAGE_CMD_cpio.lzma = "cd ${IMAGE_ROOTFS} && (find . | cpio -o -H newc | lzma -c -9 >${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.cpio.lzma) ${EXTRA_IMAGECMD}"
IMAGE_CMD_ubi = "echo \[ubifs\] > ubinize.cfg ; echo mode=ubi >> ubinize.cfg ; echo image=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubifs >> ubinize.cfg ; echo vol_id=0 >> ubinize.cfg ; echo vol_type=dynamic >> ubinize.cfg ; echo vol_name=${UBI_VOLNAME} >> ubinize.cfg ; echo vol_flags=autoresize >> ubinize.cfg;mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubifs ${MKUBIFS_ARGS} && ubinize -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubi ${UBINIZE_ARGS} ubinize.cfg"
IMAGE_CMD_ubifs = "mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.ubifs.img ${MKUBIFS_ARGS}"
@@ -361,6 +384,7 @@ EXTRA_IMAGECMD_squashfs = ""
EXTRA_IMAGECMD_squashfs-lzma = ""
EXTRA_IMAGECMD_cpio = ""
EXTRA_IMAGECMD_cpio.gz = ""
+EXTRA_IMAGECMD_cpio.lzma = ""
EXTRA_IMAGECMD_ubi = ""
EXTRA_IMAGECMD_ubifs = ""
@@ -372,6 +396,7 @@ IMAGE_DEPENDS_ext2 = "genext2fs-native"
IMAGE_DEPENDS_ext2.gz = "genext2fs-native"
IMAGE_DEPENDS_ext3 = "genext2fs-native e2fsprogs-native"
IMAGE_DEPENDS_ext3.gz = "genext2fs-native e2fsprogs-native"
+IMAGE_DEPENDS_cpio.lzma = "lzma-native"
IMAGE_DEPENDS_squashfs = "squashfs-tools-native"
IMAGE_DEPENDS_squashfs-lzma = "squashfs-tools-native"
IMAGE_DEPENDS_ubi = "mtd-utils-native"
@@ -385,7 +410,7 @@ EXTRA_IMAGEDEPENDS = ""
CROSS_DIR = "${TMPDIR}/cross/${BASE_PACKAGE_ARCH}"
CROSS_DATADIR = "${CROSS_DIR}/share"
-PATH_prepend = "${STAGING_BINDIR_CROSS}:${STAGING_BINDIR_CROSS_BASEPKG}:${STAGING_DIR_NATIVE}${layout_sbindir}:${STAGING_BINDIR_NATIVE}:${CROSS_DIR}/bin:${STAGING_DIR_NATIVE}${layout_base_sbindir}:${STAGING_DIR_NATIVE}${layout_base_bindir}:"
+PATH_prepend = "${STAGING_BINDIR_CROSS}:${STAGING_BINDIR_CROSS_BASEPKG}:${STAGING_DIR_NATIVE}${sbindir_native}:${STAGING_BINDIR_NATIVE}:${CROSS_DIR}/${bindir_cross}:${STAGING_DIR_NATIVE}${base_sbindir_native}:${STAGING_DIR_NATIVE}${base_bindir_native}:"
export PATH
##################################################################
@@ -437,8 +462,8 @@ PATCHRESOLVE = 'noop'
export BUILD_CPPFLAGS = "-isystem${STAGING_INCDIR_NATIVE}"
export CPPFLAGS = "${TARGET_CPPFLAGS}"
-export TARGET_CPPFLAGS = "-isystem${STAGING_DIR_TARGET}${layout_includedir}"
-export SDK_CPPFLAGS = "-isystem${STAGING_DIR_SDK}${layout_includedir} -isystem${STAGING_DIR_HOST}${layout_includedir}"
+export TARGET_CPPFLAGS = "-isystem${STAGING_DIR_TARGET}${includedir}"
+export SDK_CPPFLAGS = "-isystem${STAGING_DIR_SDK}${includedir} -isystem${STAGING_DIR_HOST}${includedir}"
export BUILD_CFLAGS = "${BUILD_CPPFLAGS} ${BUILD_OPTIMIZATION}"
export CFLAGS = "${TARGET_CFLAGS}"
@@ -455,12 +480,12 @@ export BUILD_LDFLAGS = "-L${STAGING_LIBDIR_NATIVE} \
-Wl,-rpath,${STAGING_LIBDIR_NATIVE} -Wl,-O1"
export LDFLAGS = "${TARGET_LDFLAGS}"
-export TARGET_LDFLAGS = "-L${STAGING_DIR_TARGET}${layout_libdir} \
- -Wl,-rpath-link,${STAGING_DIR_TARGET}${layout_libdir} \
+export TARGET_LDFLAGS = "-L${STAGING_DIR_TARGET}${libdir} \
+ -Wl,-rpath-link,${STAGING_DIR_TARGET}${libdir} \
-Wl,-O1 \
${TARGET_LINK_HASH_STYLE}"
-export SDK_LDFLAGS = "-L${STAGING_DIR_SDK}${layout_libdir} \
- -Wl,-rpath-link,${STAGING_DIR_SDK}${layout_libdir} \
+export SDK_LDFLAGS = "-L${STAGING_DIR_SDK}${libdir} \
+ -Wl,-rpath-link,${STAGING_DIR_SDK}${libdir} \
-Wl,-O1"
# Which flags to leave by strip-flags() in bin/build/oebuild.sh ?
@@ -546,7 +571,8 @@ UPDATECOMMAND_cvs = "/usr/bin/env 'PATH=${PATH}' cvs -d${CVSROOT} update -d -P $
UPDATECOMMAND_svn = "/usr/bin/env svn update ${SVNCOOPTS}"
SRCDATE = "${DATE}"
SRCREV = "1"
-AUTOREV = "${@bb.fetch.get_srcrev(d)}"
+SRCPV = "${@bb.fetch.get_srcrev(d)}"
+AUTOREV = "${SRCPV}"
SRC_URI = "file://${FILE}"
@@ -596,7 +622,7 @@ SLOT = "0"
# Other
-export PKG_CONFIG_DIR = "${STAGING_DIR}/${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}${layout_libdir}/pkgconfig"
+export PKG_CONFIG_DIR = "${STAGING_DIR}/${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}${libdir}/pkgconfig"
export PKG_CONFIG_PATH = "${PKG_CONFIG_DIR}:${STAGING_DATADIR}/pkgconfig"
export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR}/${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
export PKG_CONFIG_DISABLE_UNINSTALLED = "yes"
@@ -625,10 +651,16 @@ BUILDCFG_NEEDEDVARS ?= "TARGET_ARCH TARGET_OS"
### Config file processing
###
+# Overrides are processed left to right, so the ones that are named later take precedence.
+# You generally want them to go from least to most specific.
+#
# This means that an envionment variable named '<foo>_arm' overrides an
-# environment variable '<foo>' (when ${TARGET_ARCH} is arm). And the same: an
-# environment variable '<foo>_ramses' overrides both '<foo>' and '<foo>_arm
-# when ${MACHINE} is 'ramses'. And finally '<foo>_local' overrides anything.
+# environment variable '<foo>' (when ${TARGET_ARCH} is arm).
+# an environment variable '<foo>_ramses' overrides '<foo>' but doesn't override
+# '<foo>_arm' when ${MACHINE} is 'ramses'.
+# If you use combination ie '<foo>_arm_ramses', then '<foo>_arm_ramses' will override
+# '<foo>_arm' and then '<foo>' will be overriden with that value from '<foo>_arm'.
+# And finally '<foo>_local' overrides anything, but with lowest priority.
#
# This works for functions as well, they are really just environment variables.
# Default OVERRIDES to make compilation fail fast in case of build system misconfiguration.
diff --git a/conf/checksums.ini b/conf/checksums.ini
index 0e405e72d9..94cd318674 100644
--- a/conf/checksums.ini
+++ b/conf/checksums.ini
@@ -82,6 +82,10 @@ sha256=02f10b35508cb11908bb908156daad1ea5e653840440d62482231efeb4cbe178
md5=24b0e5bbfe21ea9c5a5c589bcc79c0f2
sha256=ab877846c6caaff32efbf5be6fc5c63b7dec97a2e78c57c525da7705d2052bfc
+[http://monto.homelinux.org/89notifier]
+md5=6a197a3216abfd21ce2ae37b2be8da38
+sha256=7795a3c6339c35d172ced0e43785ff657c1430f9fab7e2e553411529e177e501
+
[ftp://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.8.tar.bz2]
md5=81c1ff761c3431cd12c81337aa80d558
sha256=96b70582d931a7e83c3ca31b3bc7e23957391e16dee4ae6ddf938c9574d50b27
@@ -334,6 +338,10 @@ sha256=fb707b2026de62c1de6ce7fb67e9f82d586211ac09c70e81b83631e77cb47fd1
md5=02c22a93ec9efb8e457764114ce24eb4
sha256=e098bfb3a50b0629434011a9b56314c9045c09fac7e5d06bf57d43ffd53c1918
+[http://search.cpan.org/CPAN/authors/id/M/MS/MSCHWERN/ExtUtils-MakeMaker-6.54.tar.gz]
+md5=003c04b33e8c8eed693f5001fe52b647
+sha256=1d3dd3aafe027d6b3743a7a4bde2609111f8d4157b3643dc1fcd1393c9900c01
+
[http://search.cpan.org/CPAN/authors/id/K/KW/KWILLIAMS/ExtUtils-ParseXS-2.16.tar.gz]
md5=c64fddf17ee2b27d8a90ceb455c3e570
sha256=1f8504c7f08d2d59c71a70915fc834a285b99587444ee33e23ee3f135c071da0
@@ -410,10 +418,18 @@ sha256=01c75ebc523b77b88d5754fa93a283eeff77bcf799536db8697b61daf42f36bd
md5=fb97ea7e5bd832b079d8660732f9d8d9
sha256=0f1365a546e8c54faf5e17c5d011d0b9db8784568fb6b03522ab558ad39d9a63
+[http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/HTML-Parser-3.64.tar.gz]
+md5=26ceb6357e855b9e7aad5a5fd66d493e
+sha256=7e5396568c9cf12e773802c80507b7dac1bd4635e2c6a052bd994fe62638271a
+
[http://search.cpan.org/CPAN/authors/id/P/PE/PETDANCE/HTML-Tagset-3.20.tar.gz]
md5=d2bfa18fe1904df7f683e96611e87437
sha256=adb17dac9e36cd011f5243881c9739417fd102fce760f8de4e9be4c7131108e2
+[http://search.cpan.org/CPAN/authors/id/P/PE/PETEK/HTML-Tree-3.23.tar.gz]
+md5=6352f50be402301f79b580dd235d7762
+sha256=f5175acf262f3710dce899796ea3e353049939400b100706d03df2f08803c8de
+
[http://gallium.prg.dtu.dk/HVSC/random/HVSC_45-all-of-them.rar]
md5=5394dac412dbe34d2dfe63cb91bdce8d
sha256=6068499eeb3aad19d2f860390c65496cf38c5f5e5b54422db6ec2f67abbb8d10
@@ -814,6 +830,18 @@ sha256=4e44eb7be990cb62e57840f4b01b6c9af06c4655869d0cb565fc45749c20b82e
md5=955082ee50358b1cc3eddcb438b7fae4
sha256=70e7fb5e8cc3a35a04213230e1e4340ddc8766a2615318086da7d51ec930f6f2
+[http://www.packagekit.org/releases/PackageKit-0.5.1.tar.gz]
+md5=8575a23e406fffa8d11ba2ad4b5d99f3
+sha256=d6ccb149de52c76993f0ed9a31f44690fa27254f91fe8b69bbd2f99b714aee29
+
+[http://www.packagekit.org/releases/PackageKit-0.5.2.tar.gz]
+md5=e406ad5e776e31c99e70c7cf6e7bcdc4
+sha256=8defbfdfe6937fd1d4320f2c2e599b5579fec14404a4e920ff2e5ac68516744b
+
+[http://www.packagekit.org/releases/PackageKit-0.5.4.tar.gz]
+md5=330f52c7576e78b270cd78016bb32dc3
+sha256=9d13f59594f00a1f1d67ab1b34208daadac67f7eba59a2bede35eecc287f7542
+
[http://search.cpan.org/CPAN/authors/id/A/AD/ADAMK/Params-Util-0.20.tar.gz]
md5=33c4466239c97cc3e1063eff0577206c
sha256=29f7e05045a5699b211d2a8332d36113c22f9c2e96174f40939e79dbc356905d
@@ -830,6 +858,10 @@ sha256=7bae2d456ede67312e1b34e4bfc277af7331e0eee55b95226de392e2d4fee340
md5=5e47d51daf090c25635cf2c3597150bc
sha256=5194ae0f07aaf274e46712cd3f2be553ca75970d2124ac388ce444adee5e2878
+[http://downloads.sourceforge.net/project/performous/performous/0.4.0/Performous-0.4.0-Source.tar.bz2]
+md5=d7eafad29a94e3099c849d3c7208bfac
+sha256=4688546a70b09837311e428c233bac091ce5301c7dd4efe21137ca8867af8be0
+
[http://search.cpan.org/CPAN/authors/id/C/CF/CFRANKS/Perl6-Junction-1.10.tar.gz]
md5=b014170483cf85a93d08ee59196c53f9
sha256=1428a61246a98411c2f16fcaf051c7acb53fb1507b1982da52d5b6aa70f78c2b
@@ -870,6 +902,10 @@ sha256=ad82569b809e29c19b8223feaa12923f97bb4bbc942ff985857f9d853db489cf
md5=104ad743d4bc999796ceff4f39d1003a
sha256=593912fdf122d9a1499767bc305ca7b3b688ace7edcb93f53e07202aa1242c58
+[http://pybluez.googlecode.com/files/PyBluez-0.16.tar.gz]
+md5=2ce8ff0dbb94c6be14e92e9968f4c914
+sha256=cbe1f076a4947e29ded08ba9dd6dbbb86b25939fb4e50f508dd02f41681554e2
+
[http://www.vanille.de/mirror/PyMP3-0.3.4.tar.gz]
md5=28e884057750aa4f0da368678e5b20bd
sha256=e534ea5505e2d0a571ca8baa4b34260953e796f6c762013756373f13411ebd6e
@@ -978,6 +1014,14 @@ sha256=5318946df77937e0b601c95a198790f9ba52d4afb4eb153480289350182bb739
md5=b3db3d60b0ee83f5f23101d2c3bb99e0
sha256=ea1d3a8141654781a0df31e6607c4722436fa33eb2e9934492770b3b61be8122
+[http://downloads.sourceforge.net/project/pythonwebdavlib/pythonwebdavlib/Python%20WebDAV%20Library%20-%200.1.2/Python_WebDAV_Library-0.1.2.zip]
+md5=8e49e0ecc5b4327c4f752a544ee10e1a
+sha256=72c029ad1e25de950f59c2f1812d009d2c1691b70e4b5b09f1af9006e8fd5f23
+
+[http://downloads.sourceforge.net/pythonwebdavlib/Python%20WebDAV%20Library%20-%200.1.2/Python_WebDAV_Library-0.1.2.zip]
+md5=8e49e0ecc5b4327c4f752a544ee10e1a
+sha256=72c029ad1e25de950f59c2f1812d009d2c1691b70e4b5b09f1af9006e8fd5f23
+
[http://www.stats.bris.ac.uk/R/src/base/R-2/R-2.0.0.tar.gz]
md5=3900bca37cabb4b76b8d736d51cc9251
sha256=a06c3546400503e6d4ca4505c3f838b9bbd03fab6a3cbab7993f6d9115b68b64
@@ -1014,6 +1058,10 @@ sha256=df77eb883efdcc61220eaf7ade38324629c273c278ce8d700a5530369e9b6df9
md5=c6660feea2a6834de10bc71b2f8e4d88
sha256=94f99df1d60f296b57f4740650a71b6425da654044ca30f8f0ce34934429e132
+[http://www.libsdl.org/release/SDL-1.2.14.tar.gz]
+md5=e52086d1b508fa0b76c52ee30b55bec4
+sha256=5d927e287034cb6bb0ebccfa382cb1d185cb113c8ab5115a0759798642eed9b6
+
[http://www.libsdl.org/release/SDL-1.2.7.tar.gz]
md5=d29b34b6ba3ed213893fc9d8d35e357a
sha256=f5708b3909261df2043859e771601a5ec973197b2c59d18c6649c1096b5151bd
@@ -1042,6 +1090,14 @@ sha256=2f710b94f547ec7e39844f7872e1fe8d6fe2a434c896cc8a54b5540854bb5a69
md5=b866dc4f647517bdaf57f6ffdefd013e
sha256=88fcb1dbf934af33163667a6677312065c7d0a7f01cd764e3374c4c19b386ec4
+[http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-1.2.10.tar.gz]
+md5=a357558552436b0b5ea0333b3e2327df
+sha256=75c4520cde3b1d10ae7846983bde66d114fea9479f6acef352850dae92a1100c
+
+[http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-1.2.11.tar.gz]
+md5=65ada3d997fe85109191a5fb083f248c
+sha256=86145ac39cac6d2c6169c226f937648dca5e89dcd828751763dd174fa9af9cf9
+
[http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-1.2.6.tar.gz]
md5=2b8beffad9179d80e598c22c80efb135
sha256=89f94840b1b42ddfe53a8aee415331516f1bbdd942b42d25e74906a332cdf22a
@@ -1278,6 +1334,10 @@ sha256=f97b3c0a36c7422d38af67dd68855e5c25581f7b6e79f8671e298e66b4d0026e
md5=9716488c2d1cf2e5f97b165be4de18db
sha256=3d92318dadef22b1d1b062925ef66bac2ad48a0fd4fc83b88dcabba38c182b7b
+[http://search.cpan.org/CPAN/authors/id/P/PE/PETDANCE/WWW-Mechanize-1.60.tar.gz]
+md5=bd3bf56f28881c5363d1c599ff43a632
+sha256=8844dbc7f695fbc9f87e04895295fc61260559df7176b3159cd3dc2c70863478
+
[http://www.stud.uni-karlsruhe.de/~uvaue/chaos/bins/Wolf4SDL-1.6-src.zip]
md5=61eed8ed819688663e399b5e79ed006f
sha256=6a19418a074a7dec6fd67f00df74f3335e85eb38d2d2a17bd0e91cf8010537e3
@@ -1326,6 +1386,10 @@ sha256=3b732ed179dd34c17d1ba17867b60a36f20d82a3f0eca7b084fcb5396aa2b30c
md5=4dbdbe9a85c8f7f98dd0ee015a3c7b4f
sha256=3b732ed179dd34c17d1ba17867b60a36f20d82a3f0eca7b084fcb5396aa2b30c
+[http://search.cpan.org/CPAN/authors/id/P/PA/PAJAS/XML-LibXML-1.70.tar.gz]
+md5=33d4294f708e20c298cfe534d1166844
+sha256=53e6cf06772ba9d85055dc6e4488dbd876d2376e48ef3578fa73246ee98b3ba0
+
[http://www.cpan.org/modules/by-module/XML/XML-Parser-2.34.tar.gz]
md5=84d9e0001fe01c14867256c3fe115899
sha256=55386de7bf78f67ad2b9ef664a578db66ee53f512a28eb067cd2303f5e23d740
@@ -1338,6 +1402,10 @@ sha256=9fd529867402456bd826fe0e5588d35b3a2e27e586a2fd838d1352b71c2ed73f
md5=593aa8001e5c301cdcdb4bb3b63abc33
sha256=a54967c188cda3e20f496c83be4de3f1740eeaa83c0380712ecd969ad8766826
+[http://www.angstrom-distribution.org/unstable/sources/XML-Twig-3.33-upstream-keeps-changing-this-tarball-so-we-mirror-our-own.tar.gz]
+md5=918f8fba33efe9cf5bc07907c6e46556
+sha256=630241ba64685a264d6037cbfed29476ab36fce652746ad5966fcfc9d810abdc
+
[http://xmltwig.com/xmltwig/XML-Twig-3.33.tar.gz]
md5=495fd8c320f67a0c8e0b90ccb060f0ea
sha256=d87ff8c2e1d594808a58373ea72aa6f6e42a9a19d550a569b3f5fd22b53efebd
@@ -1470,6 +1538,14 @@ sha256=bda8a3c42733853444e1d4bee16e85990b78c2eaafc4b26e0769be2e14dab931
md5=9703f591801c5bbded35c9739d04f81c
sha256=68b1d0acd1a6e17d91412635cd4f65ba58d293e62a01475a43f3712c49a46e7d
+[http://www.delorie.com/store/ace/ace-1.2.tar.gz]
+md5=03e5e7ab8ac3acc59661c6e9c09089b7
+sha256=fcda8bca508490bea642c83fcf718565bf4ed4c50f2d7b34761da61fe2e6bc9d
+
+[http://downloads.vdm-design.de/aceofpenguins-launcher-0.3.tar.gz]
+md5=2fe7dcdbbdbf3b2821f627e02c406caa
+sha256=13013cd19cb165825f4ef5cc790b0e103705f68ece470fd12012db97e3e60839
+
[http://downloads.sourceforge.net/acpid/acpid-1.0.10.tar.gz]
md5=61156ef32015c56dc0f2e3317f4ae09e
sha256=22703ce0dd7305aca01bc9ac741659c32b1593f1d6fde492df7f01067a534760
@@ -1982,10 +2058,18 @@ sha256=68da29f515a26ca1b5722c940615ddc4b0550b2b1ad5d11129b1da636c353160
md5=88fa901c9a85633ab62365b0ee9df3b1
sha256=6651eb15c9f6dabf21af4067b723cb29a87827f66570bfab74fdc00d80cab129
+[http://arora.googlecode.com/files/arora-0.10.1.tar.gz]
+md5=ac38282a2d9134687d9c30dbb73c0fbc
+sha256=1828cbd348d1418287b29337e1047cfc3d6c092e18691cd9c6dfc2d6535bcebd
+
[ftp://ftp.ee.lbl.gov/arpwatch-2.1a15.tar.gz]
md5=cebfeb99c4a7c2a6cee2564770415fe7
sha256=c1df9737e208a96a61fa92ddad83f4b4d9be66f8992f3c917e9edf4b05ff5898
+[http://mesh.dl.sourceforge.net/project/asciidoc/asciidoc/8.5.1/asciidoc-8.5.1.tar.gz]
+md5=412fb0c86c3dcb4cc159ef63bd274c90
+sha256=ccb02db04e6e6eff2149435516e88557ca30c85bc4467420f40c895e25f17a20
+
[http://downloads.sourceforge.net/asio/asio-1.1.1.tar.bz2]
md5=3e6bcedc549cb4c014227f882969db5c
sha256=f6277da4651bceaeab442f864b735a5d7b0998d55f9209e37cf18f7464320e3e
@@ -3018,6 +3102,14 @@ sha256=b1e6d5912546d2a4b704ec65c2b9664aa3b4663e7d800e06803330335a2cb764
md5=62edc09c9908107e69391c87f4f3fd40
sha256=b1e6d5912546d2a4b704ec65c2b9664aa3b4663e7d800e06803330335a2cb764
+[http://download.tuxfamily.org/blueman/blueman-1.10.tar.gz]
+md5=f9058305c42038678d5023fcabba22a4
+sha256=f4a92834a538dc9dbb93fde76933e849b24639faa1721b24549f209b8b590f71
+
+[http://download.tuxfamily.org/blueman/blueman-1.21.tar.gz]
+md5=26b70341b3d3da28da62c917c8b20377
+sha256=86200dab50b1595c9a9537586c07de90ccfa084b954bb74f3e8732cc000fe3af
+
[http://gpe.linuxtogo.org/download/source/blueprobe-0.13.tar.gz]
md5=33745b0e86603124654773c1361df33e
sha256=b4318d0e1ba7422ba4415838448718e037efe4d8236cf12132075ccf36d1803d
@@ -3294,6 +3386,10 @@ sha256=2d1c6b2cfdc17d6348f25f0830e1fa5c1c1dd3f014caff74005294c9ed6a0cbf
md5=77a1ba78f37bdd7f024b67e1e36ad151
sha256=c674f1182f4c20f1e6d038feceb0a6617fc3e7658dfbbac89396043b49612a26
+[http://sodium.resophonic.com/boost-cmake/1.40.0.cmake2/boost-1.40.0.cmake2.tar.gz]
+md5=1a0926fe4c8228f14a2622b4182b801e
+sha256=ce6e6c3a6b9a3e7695cb7a0f83d4dbb58f1fb246eb706e3caf3fce3b77e186c0
+
[http://downloads.sourceforge.net/boost/boost-jam-3.1.11.tgz]
md5=b86fb56a824d4a3dedcbda12f8b1a2b3
sha256=6cdb945ac41b5ac78e05435e742b3a9928e5d1a5ff22728656deff29249edc66
@@ -3342,10 +3438,6 @@ sha256=9a4a0cfbbd227c20a13519a2c41f2e707dc0d89e518a3c7bfcd381f7b7fbcdef
md5=328bfec66c312150e4c2a78dcecb504b
sha256=9a4a0cfbbd227c20a13519a2c41f2e707dc0d89e518a3c7bfcd381f7b7fbcdef
-[http://sodium.resophonic.com/boost-cmake/1.40.0.cmake2/boost-1.40.0.cmake2.tar.gz]
-md5=1a0926fe4c8228f14a2622b4182b801e
-sha256=ce6e6c3a6b9a3e7695cb7a0f83d4dbb58f1fb246eb706e3caf3fce3b77e186c0
-
[http://downloads.sourceforge.net/asio/boost_asio_0_3_7.tar.bz2]
md5=e006cde4b4a28cfce95e43710cd126a9
sha256=ade3663edc611d558f5a383abccd0a9ab87d6168f422ef4c2a38775e8b7ca575
@@ -3434,6 +3526,10 @@ sha256=5ab58cf5738c144f4d85a4a442c2f33be2c4c502dca6e29e0c570c2a51ae6ae9
md5=41d6a2dfe88693b5ec999d9ae4e97aac
sha256=e3ff9a7f6dead90d55f1a4a2b1277e3bf5f0ec44ccb6ba8f375acbbedb1263c1
+[http://handheldshell.com/software/fso/btgps.tgz]
+md5=6e0443d09448a5cfdb1d560cfd699a6b
+sha256=ca567348c1f8d904f50fe06de83959dcc5b840e12e336251ab216ca5304e3bf0
+
[http://www.pentest.co.uk/src/btscanner-1.0.tar.gz]
md5=6bfaaad5a3730f10d07500fb3ec8c797
sha256=ca7349c3621c929f9fda0345991b35f8a0d38d4a88b6c89b7ca50a7dbcc08832
@@ -3638,6 +3734,10 @@ sha256=1ea5bd257f755ffcae2c7a1935c37147c7392478922410e0870361eea08b6c27
md5=63220327925ace13756ae334c55a3baa
sha256=1dfc4903dc0172286df4f1740fd0f12749ac81d51c602290b47cbe83d51e1d56
+[http://www.complang.tuwien.ac.at/cacaojvm/download/cacao-0.99.4/cacao-0.99.4.tar.gz]
+md5=c5e6525c5212ddbb6026e4a7cde37ca6
+sha256=c6090c1d2ed3c60acda0076b62563598267be8dab270ce49ee1035002a2510cf
+
[http://cairographics.org/releases/cairo-1.2.2.tar.gz]
md5=2460487b1257a5583c889b1b9d2033ec
sha256=9d53b8dd0bf76dd0da7cdbe65a6c6934be49bd3942dc5f7ef7bbcc7529d9ee02
@@ -3782,6 +3882,10 @@ sha256=015c4237a532b873990aeeecdf351138ce5a811d062d6db73c611a4985de5435
md5=b8c51a2e3cccb381428426c0fc543244
sha256=f1e44d628cc4cbac192bf33f492ad8d1e1988cae576924128df36f3638e9a485
+[http://alioth.debian.org/download.php/2924/ccid-1.3.10.tar.bz2]
+md5=92220d7b7b0aae7bc141b09ba529458c
+sha256=54610f1a6cd65e8d2b5cb9f7917e509ebcdf130a565e71e06ad4e65ed0dad5ec
+
[http://alioth.debian.org/download.php/2482/ccid-1.3.8.tar.bz2]
md5=ebb5fc927d73cd63737a9114481e8957
sha256=8cb892ef36321069eff7826aa732f1481715fe54bf96346fae1d25565b44c536
@@ -3834,6 +3938,10 @@ sha256=548b5b402ee5fff34fe428eb69de560b56709337cd70c600ad21686c1321dd66
md5=7b19b6f68d2c648296378b784d5f7681
sha256=73de81ea2de2eae64b888e1b2739ef643ccea13c79790569f8e6278369976a21
+[http://ch.omoco.de/cellhunter/files/cellhunter-0.5.0.tar.gz]
+md5=1ac5c56a85fb12bea0bf0a4a2ea664de
+sha256=1210dab4e3b23c2a5083d12e9c1527bf099a89f06867e1210b7d9992204c24f8
+
[http://pub.risujin.org/cellwriter/cellwriter-1.3.3.tar.gz]
md5=09b2019e926d5ef42d52edb2dd33ceae
sha256=3fb7c11ec5d802338a0bf522b11702c37820597c9a2c36f89b52872c6571e602
@@ -5106,6 +5214,10 @@ sha256=24c7887fe896325a6cdc86b8beeb0d9c2de8b1c4cb20f53c2dc8f90963fc39bf
md5=c0124afc760d4fe8c24ffcf15ba7f391
sha256=4e0c1726f9c565deec6d6af9eebda47ca6dea473f3280cc89beb321ae33ff962
+[http://www.burtonini.com/computing/devilspie-0.22.tar.gz]
+md5=4190e12f99ab92c0427e457d9fbfe231
+sha256=e06aba1d96889e1b58bd1b0ba4d3015f50adc3ade2824b5cb37a0ee7f2490aaf
+
[http://downloads.sourceforge.net/devio/devio-1.0.tar.gz]
md5=3f421c80bce00b8bfe68ef9f453932b7
sha256=25380c3722c75b993d530c09d48f5941c0a640a4382f6a0e1878c4ee8459dd16
@@ -5190,6 +5302,10 @@ sha256=043dea4144a93b26358ed73cd8fab79be76834a719f13fbb4344a26e8288fc38
md5=04800a111521e7442749b2ce883f962b
sha256=21a6e0476fb880e704e0c3cfe7b2bc6a97f6b2b0654db10b38bdd317f511a03a
+[ftp://ftp.isc.org/isc/dhcp/dhcp-3.1-history/dhcp-3.1.2p1.tar.gz]
+md5=787b2924a1965f0d8558521b36dca73d
+sha256=e0cb405e0fef0ecebec7aaed294032a06178ff28be87498596e6069ccda4341e
+
[http://savannah.nongnu.org/download/dhcp-fwd/dhcp-forwarder-0.6.tar.bz2]
md5=cbe60c8c904394a8e38e12ac42c02284
sha256=45b708fb49a9fab10d814eb1e340a0960dac91f92800b3d39ddf0245ac913e30
@@ -5202,6 +5318,10 @@ sha256=eb20cb028176e52432a2b877b2e292100dc41b384e829bc9e6d4823075ed8188
md5=dd627a121e43835bead3ffef5b1a72fd
sha256=f435e14e1f54dc8792f4e655463d07f2bdbe6d8a8581bd62f5167334ab18bb87
+[http://www.gentoo.com/di/di-4.17.tar.gz]
+md5=be55b3a1693b318effa3db8d1c0243c1
+sha256=46e124670fb2b63cb7500a8b36b7856c15858cb35658263ddad4933935d5e210
+
[ftp://ftp.gnome.org/pub/gnome/sources/dia/0.95/dia-0.95-pre3.tar.gz]
md5=642f7e7d4c71dc144b60f51f9d65de62
sha256=902da1b1e9d90dfda8aa1864846db8ad12386e7521fc9f8b18c8ba220dd0123a
@@ -5218,6 +5338,10 @@ sha256=c5d49b39c5998bcecd124c05cc6f096d22ccdc378ad455214611ae41a2f4b7d9
md5=8ce5945be0660bd3152bd9eb0827f945
sha256=e3968765ed916b348fce5e309029d25d068a61e1d422a69a506d0fc80ee6e976
+[http://home.htw-berlin.de/~s0526295/dictator-0.2.tar.gz]
+md5=8f5cb1d0b7c7d5437b260d9ba5362c74
+sha256=e43251af443eb72a803a6aac3e984feb1f5df8124c64b55fceac6140ab76161e
+
[http://didiwiki.org/sources/didiwiki-0.2.tar.gz]
md5=a8643526ced64ed066df407e013259e3
sha256=a87cdc67ad367d6bde595811e7869f5c4715e4baeec7261bcfe45ab42621543a
@@ -5310,10 +5434,18 @@ sha256=bd72287adedccf493f046f0e6ca29ef47f2cd3741c62a98d5eb82a9068846b73
md5=b65233d368bbd265a55effcf2c17f84b
sha256=47e695a5d370eb656f5e41eeb917ad6281b1559bf60172c9eca89b5518a9f9b9
+[http://www.dillo.org/download/dillo-2.0.tar.bz2]
+md5=bb9999cabeb4db3d915687de465dbeb0
+sha256=847d1db31bd68ab9ab94b642b0cd40ac8d3cf816900f5d5652124986601df1e9
+
[http://dircproxy.securiweb.net/pub/1.1/dircproxy-1.1.0.tar.gz]
md5=066bd39d80f286ae5ce69a2adbbd01e4
sha256=f0be78d2c2f0279cce26b0b2e87077bfe568f1da189eef2daec78b1e12699c4e
+[http://www.diskohq.org/downloads/disko-1.6.0.tar.gz]
+md5=c63bad58524501e367af9842f510b458
+sha256=fe578299be4031d0c2454ff4fd3b3034e332260b9695687adf27a776a61eb2e4
+
[http://distcc.samba.org/ftp/distcc/distcc-2.11.tar.bz2]
md5=f3458779c13255d88ee89ea7ccddda29
sha256=00ca6747501d1b6034398ba5482dcb1e7cf3aff8739fbff0c72e58602d68774c
@@ -5478,6 +5610,14 @@ sha256=0eac6d12388b3d9ed78684529c1b0d9346fa2abbe406c4d4a3eb5a023c98a484
md5=bbf981a5f4a64e94cc6f2a693f96c21a
sha256=8955fad7d9e7aef36f7a82f9577c3ae4901db1ded6ce57aec0d93e39c8899b65
+[http://bundles.openttdcoop.org/download.php?file=opengfx%2Freleases%2Fopengfx-0.1.1.zip]
+md5=1f959407f2d4a1ab0e84c2e89438c922
+sha256=c0eefb2dda166f91e1bfb317cf681165029f6f2709fa966d84dc568ffef6a31e
+
+[http://bundles.openttdcoop.org/download.php?file=opensfx%2Freleases%2Fopensfx-0.1.0.zip]
+md5=1a43ee0a2026b7fecfd47c7c7e4b056f
+sha256=ea0d90e3e049aec2e0884bc117a46e5fb78411b7e3633b3802d4c5af8f29300c
+
[ftp://ftp.debian.org/debian/pool/main/d/dpkg/dpkg_1.13.22.tar.gz]
md5=0fc9fffc2c2cfa7107d8f422815078c1
sha256=c33aeb300d93eaeac55927ce81dc6f3a1cf74b3b759b65182c9bfca31b75b98f
@@ -6114,10 +6254,18 @@ sha256=17c450622752cbda0e41fffd496d3022a533659f3db942e14da8015c47623856
md5=408d3c63f9efa06e93e29a691c28985e
sha256=6f40962eb8d76e0e9d76ec9f461d62c6af8561028d194358aed001827cc418fc
+[http://downloads.sourceforge.net/project/epydoc/epydoc/3.0.1/epydoc-3.0.1.tar.gz]
+md5=cdd6f6c76dd8bab5e653a343a0544294
+sha256=d4e5c8d90937d01b05170f592c1fa9b29e9ed0498dfe7f0eb2a3af61725b6ad1
+
[http://www.inf.fu-berlin.de/~rschuste/er-refresh-tools-1.3.1.tar.gz]
md5=f100632e67f94ef4fffa4da32d25427a
sha256=748359a51e008c179dc5dd5e2974f4b1279c78e09a2613a73d15cd22cb55e8d8
+[https://garage.maemo.org/frs/download.php/4737/erminig_3.0.3-3.tar.gz]
+md5=d710853b0559c9919c730e503c0f05e2
+sha256=45490d585d62e2a36d202f7ca9b91883f257c24b51471894bf23b64e76ba89c9
+
[http://www.burghardt.pl/files/esekeyd-1.2.4.tar.gz]
md5=5eb8d1b02cdd99d0681e946768e529db
sha256=7267db1685b04e766b782e4c5aab9729bf3f23b86d568a3a513c77eb91aaed03
@@ -6654,6 +6802,10 @@ sha256=c18e6f23315e0a3526229bd0ba5cf8ce0d747cb5e5ba7cb952ad08c85a1cafac
md5=1b84621072b4f906b5686a4fbae0b1d7
sha256=d06e7244dcd2b462c0e7bea0d01edadb54905f4533afc45f971ab9f6ee46497c
+[http://projects.openmoko.org/frs/download.php/832/ffalarms-0.2.2.tar.gz]
+md5=6f03b9663245b93e8370e43cc556dba1
+sha256=df0561124faa5c2e64038f5efcf39432c4795829115b86819083ae66b001899a
+
[http://downloads.sourceforge.net/ffmpeg/ffmpeg-0.4.9-pre1.tar.gz]
md5=ea5587e3c66d50b1503b82ac4179c303
sha256=0e9e771114a75c461e813538f129eb05a251b8fc6591a5563420700b8e312da0
@@ -6722,6 +6874,10 @@ sha256=21e68eeb291ab5a9f4d618f2985c16c26cdfeb0f0f37d3b88550446678dab30a
md5=24e76434ca74ba3c2c6ad621eb64e1ff
sha256=1a9ed8db0711f8419156e786b6aecd42dd05df29e53e380d8924e696f7071ae0
+[ftp://ftp.gnu.org/gnu/findutils/findutils-4.4.2.tar.gz]
+md5=351cc4adb07d54877fa15f75fb77d39f
+sha256=434f32d171cbc0a5e72cfc5372c6fc4cb0e681f8dce566a0de5b6fccd702b62a
+
[http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/1.0.7/source/firefox-1.0.7-source.tar.bz2]
md5=5704a8c36de84b408e069afb0c5bc1df
sha256=10056021004ae378baed886358dc4468af60eafbaa9fcac93401e4db9b9ef7fd
@@ -6782,6 +6938,10 @@ sha256=d68b5988907e06cc37793489589f5545487a9b1bbe6444b7e2e16450bd1cb9ae
md5=0b6ccb1e50d96b7127a18a69399fcf05
sha256=b2b0a231aae105090948521a469c5019eb886f0562fa3315a49cebaf74f61be4
+[http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/3.5.5/source/firefox-3.5.5.source.tar.bz2]
+md5=b3d92dfb40584141dc1068efc9bdfccc
+sha256=2abe7b5561267c230df27951d1d8c6c5853d06ca2426997fdf0a63c5db689feb
+
[http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/3.5b4-candidates/build1/source/firefox-3.5b4-source.tar.bz2]
md5=ff6bf463300cb56bcf750973b2af3d80
sha256=b653f2fa8dfdd0a54a6b8c576769719cf9014ca6b09f8e9d351721a51766d95d
@@ -8142,6 +8302,10 @@ sha256=666ba1186b2697c3a99ee943775fbc7a7aa18f3c8cc3d335a2581dea62f812bf
md5=2dc76415b22d805cfacfcd5fb98f185c
sha256=2801ff7d595039292850d4f7d87b3f7c950e92dbcb39facfe62c6fb184640e1f
+[http://ftp.gnome.org/pub/GNOME/sources/gconfmm/2.28/gconfmm-2.28.0.tar.bz2]
+md5=dad2999d8bbf88cf581fa512041d735e
+sha256=3daa3719f773cfc9fcee84766f60eab4579209978425221997120662bd621a52
+
[http://www.boutell.com/gd/http/gd-2.0.21.tar.gz]
md5=3134158635f5048dba99281c6b712a54
sha256=c3b8b7b57019927dad40870c379eecfa6389443f7e2096aa0157a0224d400da1
@@ -8170,6 +8334,10 @@ sha256=00f2b73fea5eff79ae26338928187f956427421bc70ddab0ab63fe5a58112b87
md5=1939de5fe43d12884d85fa5d7797e3c2
sha256=243dabf3c45530cac8be092f9a1d838a46b46a92d4138870423006ffd6ae4001
+[http://gdata-python-client.googlecode.com/files/gdata-2.0.1.tar.gz]
+md5=d646b8f6e32911df61ea0e7379b4bc35
+sha256=a9dba7645ccda502bfeedd3d15f34672b3dec668d8953188b87df36f17c6b849
+
[http://gdata-python-client.googlecode.com/files/gdata.py-1.2.4.tar.gz]
md5=521f33a377d64f8a6505ba119415b787
sha256=fc5ddb8f76b17abd728721a0e0177ea35f55a70106f44dc9010b22eceb06abde
@@ -8210,6 +8378,10 @@ sha256=ccff6cab0e847c486d30b70bdddac4e6646bafcecaa3b63134d6e3d4d5a4b91d
md5=1d1b1d5c0245b1c00aff92da751e9aa1
sha256=cc340338a2e28b40058ab9eb5354a21d53f88a1582ea21ba0bb185c37a281dc9
+[http://gdevilspie.googlecode.com/files/gdevilspie-0.31.tar.bz2]
+md5=a414f4ed6c2ab135b9be3d2cc27e3c4d
+sha256=1e677b41a6f3f256f759a48f92c613e68dafc3c5a2586230c61591481faf76b2
+
[http://ftp.gnome.org/pub/GNOME/sources/gdm/2.14/gdm-2.14.9.tar.bz2]
md5=7e46bc3b0a5b08e79f1f2f1b869caf40
sha256=0483dac71c88ca0da5ee85729c0c1dd6793d928109ac79ad56583aa1a5ff43d2
@@ -8226,6 +8398,10 @@ sha256=34abc69bdfd1b6bb6d1f64dd1e34652c61310dc69305712d7aeec6203678fa4c
md5=7724929a6b75ba269fd519d4a4995bbb
sha256=b83db2613192df8a8865ca59877de5181df6247cd17be42418cc5a39d314d5a4
+[http://ftp.gnome.org/pub/GNOME/sources/gdm/2.28/gdm-2.28.1.tar.bz2]
+md5=917dc80f5ef6adcdc15193de238476db
+sha256=da77a6fd9d4cc76b68dd4354839f953f8df5fb7921c7777b80256916533a3e7a
+
[http://downloads.sourceforge.net/geany/geany-0.14.tar.bz2]
md5=c6c22c7f9feff81a15f5c8ece03b87c1
sha256=619d59b339e1be7687058460c105b8f2d4f00e6409e4450dee385e3086fdf6d7
@@ -8570,6 +8746,14 @@ sha256=d7676d7734d4821454a840a1ef05020c9c4f4797ab96ec54f2351e26d437c88c
md5=6ff47bc8e66ba88f42932365a947f9f3
sha256=f921da7c8beb396278591b5ca7159b432a38902f1f872c4ae2d40aeb38f9cf01
+[http://people.debian.org/~kov/gksu/gksu-2.0.2.tar.gz]
+md5=cacbcac3fc272dce01c6ea38354489e2
+sha256=a1de3dca039d88c195fcdc9516379439a1d699750417f1e655aa2101a955ee5a
+
+[http://downloads.sourceforge.net/project/glew/glew/1.5.1/glew-1.5.1-src.tgz]
+md5=759a59853dfaae4d007b414a3c1712f2
+sha256=89e63d085cb563c32a191e3cd4907a192484f10438a6679f1349456db4b9c10a
+
[ftp://ftp.gtk.org/pub/gtk/v1.2/glib-1.2.10.tar.gz]
md5=6fe30dad87c77b91b632def29dd69ef9
sha256=6e1ce7eedae713b11db82f11434d455d8a1379f783a79812cd2e05fc024a8d9f
@@ -8754,6 +8938,10 @@ sha256=1fe541521d7f5b9039c672f90d2fd8e412cbcc7ee9c1c6bbd7b805b75fd66657
md5=855be1b668ceaec3320c702212c95638
sha256=442026315d172309884686fe45721a4451d7439f2f05647159f06b9bde3575f8
+[ftp://ftp.gnu.org/pub/gnu/glibc/glibc-2.10.1.tar.bz2]
+md5=ee71dedf724dc775e4efec9b823ed3be
+sha256=cbad3e637eab613184405a87a2bf08a41991a0e512a3ced60d120effc73de667
+
[ftp://ftp.gnu.org/gnu/glibc/glibc-2.2.5.tar.gz]
md5=e4c3eb8343b5df346ceaaec23459f1dc
sha256=58dc8df59aed1e4d9d50eef9e4c4c0789fa283b50f7a093932d0f467424484ee
@@ -8822,6 +9010,10 @@ sha256=098baa84c74af5b21d27ec6e8ba6f1a393de88327cefbcd9e90c9b4edda9a36c
md5=c89aac92d100761a767b9d5619fe582f
sha256=3033d84fd9a62d20a8cb0d42645d7cd5a28d2d108afcb4cc2d89db3dc1e328df
+[ftp://ftp.gnu.org/pub/gnu/glibc/glibc-libidn-2.10.1.tar.bz2]
+md5=8ef88560ec608d5923ee05eb5f0e15ea
+sha256=0fa72d1dd06a30642d3bb20a659f4ed0f4af54a205d7102896b68169b38676dc
+
[ftp://ftp.gnu.org/pub/gnu/glibc/glibc-libidn-2.4.tar.bz2]
md5=e2d892b40d654c523ab26a26b7dd86a1
sha256=2f29ec2b2b2f75f787a1eed8fdea20aff212dc3bad97651ca376914c49181977
@@ -8862,6 +9054,10 @@ sha256=6c3bc4a247d1e5308fb14f81956802f09095d3683219859fcad5795aa3aea638
md5=dc31c9e01df62cba9457af7e9b9c968e
sha256=a69760ed0ea54b66c31d58cb32c7b23185a6b1d16f38dab8380ec4f2183b122d
+[ftp://ftp.gnu.org/pub/gnu/glibc/glibc-ports-2.10.1.tar.bz2]
+md5=816b2d48a95ddc23b27fea03a1996443
+sha256=b1f1ec9720036a3a33598b8478eef102535444a083d5b5813a6981ed74ab4071
+
[ftp://ftp.gnu.org/pub/gnu/glibc/glibc-ports-2.4.tar.bz2]
md5=7bb1b35654e94994925e66676acabd4e
sha256=2fbbcaad8a9f8560485c398a9066959fe2713c8bc7e653ec476fb56fed21d19a
@@ -10514,6 +10710,10 @@ sha256=c9ef8c2f61bbe9978b38341ca2bf09786416ddd82d4708066a26a0483341ca72
md5=bcc5621e09802e114c7f72a6f6172230
sha256=68cd94664882fdab5fa781b4b8fabe1ac49db7d97bdf3aa917563439afa9b9b6
+[http://downloads.sourceforge.net/gphoto/gphoto2-2.4.7.tar.bz2]
+md5=a0bd7629040735f16e510b63edf386dd
+sha256=16e21ab5387220ad885e1d27f936f3add4081d15a1039577002682be521b2c03
+
[http://downloads.sourceforge.net/lxde/gpicview-0.1.5.tar.gz]
md5=5c484ea089f5a6455265e1e1f472240e
sha256=7663e1849f3b1f2225a3310f907f86068d7ac5c8957d68fc4a684059b49211ca
@@ -10666,6 +10866,10 @@ sha256=d864fbd0bf6dea24e4f71736da9902a1cae86d0a1a893b5fe17118927257ec3e
md5=cd3f3eb54446be6003156158d51f4884
sha256=4e1d15d12dbd3e9208111d6b806ad5a9857ca8850c47877d36575b904559260b
+[http://grun.googlecode.com/files/grun-0.9.3.tar.gz]
+md5=7788783e5a18221ae591606075d3a8ee
+sha256=c484d80e4636a69c6ad6491a4769f555be20595e67cb4bfd34c3c91e501b95dd
+
[ftp://ftp.gnu.org/gnu/gsl/gsl-1.10.tar.gz]
md5=d67be4f2e5560d6cf907e18a428becdc
sha256=ea3968b58bfc7619f47bf5ff64a7198a38c72419d24b844e71e48823a4776ff0
@@ -11338,6 +11542,10 @@ sha256=e2f63d2d445ffeb072638eab885b1a629e372d1db711c8afb26a62bc56096289
md5=9e23d3dbea0e89bab8a9acc6880150de
sha256=69a2f9491480ff756d1cc4c8ea2bdc13d40ea8ddc8f93f26957bade8219a1d86
+[http://ftp.gnu.org/pub/gnu/guile/guile-1.8.7.tar.gz]
+md5=991b5b3efcbbc3f7507d05bc42f80a5e
+sha256=bfee6339d91955a637e7f541d96f5b1d53271b42bb4a37b8867d186a6c66f0b3
+
[http://gupnp.org/sources/gupnp/gupnp-0.12.2.tar.gz]
md5=5350f5f28fb3742779702a496ab75d72
sha256=9e4edb3ca6d11e397d9f98537fa8954851dc044d13ecafd4f4547117cefbdd28
@@ -11582,6 +11790,10 @@ sha256=cae6ed86296d01be98ee3be0c224c4323eee508941a7f162a0366d56655afe06
md5=0524dd10ad986285ff4eeb3507f7471c
sha256=689a413119c4d670ed95b9ac24511655c4805db678ad93866ab1036a0ba4d6bf
+[ftp://ftp.gnu.org/gnu/help2man/help2man-1.36.4.tar.gz]
+md5=d31a0a38c2ec71faa06723f6b8bd3076
+sha256=a4adadf76b496a6bc50795702253ecfcb6f0d159b68038f31a5362009340bca2
+
[http://handhelds.org/~zecke/oe_packages/hexatrolic-103beta3-zecke1.tar.bz2]
md5=1d9420e8b5a6d5fa491c458ffafd4adb
sha256=b60a5358e56e676529e7d3d655d5107a76b9a2434e38952711fea794f65721ce
@@ -11854,6 +12066,10 @@ sha256=ca7ef124cde06883fbf28c7e78ce1e4c5526434bbe5672ef0a3e85a61a9d0b5f
md5=faa08f321fefd2c61ce4c9355a62fe31
sha256=ca7ef124cde06883fbf28c7e78ce1e4c5526434bbe5672ef0a3e85a61a9d0b5f
+[http://isteve.bofh.cz/~isteve/hotplug2/downloads/hotplug2-1.0-beta.tar.gz]
+md5=353656ea499d395260c0de143983da4d
+sha256=54e2fa375506d92a8ac94b5ed332c4c0bf1b69c252692b332c92702670bba583
+
[http://www.porchdogsoft.com/download/howl-0.9.7.tar.gz]
md5=85fbe016e2ebad99108b1212ae4b1d6f
sha256=f8766c44291aac92b2b4abc762e1b11e3504dd9f2a855fdde371b5abd730fe9f
@@ -11898,6 +12114,14 @@ sha256=1361f4f0b92d7e6bdac25a4b7ee138a7ee83b5a9368820f5aa518051ca82862b
md5=4afc961fa709167e1b434682897991f9
sha256=1361f4f0b92d7e6bdac25a4b7ee138a7ee83b5a9368820f5aa518051ca82862b
+[http://apache.mirrors.tds.net/httpd/httpd-2.2.14.tar.bz2]
+md5=a5226203aaf97e5b941c41a71c112704
+sha256=b2deab8a5e797fde7a04fb4a5ebfa9c80f767d064dd19dcd2857c94838ae3ac6
+
+[http://www.apache.org/dist/httpd/httpd-2.2.14.tar.bz2]
+md5=a5226203aaf97e5b941c41a71c112704
+sha256=b2deab8a5e797fde7a04fb4a5ebfa9c80f767d064dd19dcd2857c94838ae3ac6
+
[http://apache.mirrors.tds.net/httpd/httpd-2.2.3.tar.bz2]
md5=887bf4a85505e97babe1d90635361c0d
sha256=dd86e8221f9efb85497c46229d0f04237d4e66d293fabe98eb0745166aaf4b6c
@@ -12270,6 +12494,10 @@ sha256=74d6088a6f7521c36b73550baa9dd0381505d66658f0bc01802aa2dfc7430fbc
md5=59997096c3640b2601c2b4afba8a3d75
sha256=f2ea624b98544b9d780bae1b5f042eae97bbd2779c7779ba21390b7bf6a9ca8e
+[http://downloads.sourceforge.net/inkscape/inkscape-0.47.tar.bz2]
+md5=7b497c8f673e40b05295a29f6e2111f4
+sha256=4985bc5bf1938d818fee31c72151a2d889300c0be00fab5dc94ccd84df39ef3a
+
[http://www.geocities.co.jp/SiliconValley-Oakland/4550/inkwp-0.1.1.tar.gz]
md5=a19896b756f1b29a33411a1fb2842c4b
sha256=4afa4f4ddfdc40a32ef2c6034b2fa3bca415088b7eac4b7ad2b814202153f1e0
@@ -13150,6 +13378,10 @@ sha256=f4f093e371c999a2a079607b74582a8ef5c1c3c9b322e3e997a47c1ea2afe2a5
md5=e1206c46a5e276feca11a7149e2fc6ac
sha256=f4f093e371c999a2a079607b74582a8ef5c1c3c9b322e3e997a47c1ea2afe2a5
+[http://downloads.sourceforge.net/lame/lame-398-2.tar.gz]
+md5=719dae0ee675d0c16e0e89952930ed35
+sha256=a17a28569d8ed1e514915c1f12bdf4eedac506e5fbdf9a429ba97d5d42c9af32
+
[http://lasertraq.googlecode.com/files/lasertraq-0.8-r213.tar.bz2]
md5=c24cc9ba196b32134186843324bfe784
sha256=7a2162c783f98a2de9658a217cd0409a7bd16d40040c34a6077df376a2135aea
@@ -14246,6 +14478,10 @@ sha256=c3540df46bd9716c6a6f521806c70ae548822a5e62d245900cc28b5fa9fc3eb3
md5=f02bfa27a21b3040089026975b9dc0b8
sha256=5677f32eff184883d7ca402234f92142f35bea7d04d503becdd104ae8343cb1c
+[http://www.hyperrealm.com/libconfig/libconfig-1.3.2.tar.gz]
+md5=094a82afd382aa2305c6cc3c06025c2d
+sha256=2a680bb33e290c3c799e3a90cf2c0fb9f5482dd930ad93d9f83ce39923258c0a
+
[http://repository.maemo.org/pool/maemo4.0/free/source/libc/libconic/libconic_0.13-0.8.tar.gz]
md5=b4078390c459ae4df3acdabca36f53da
sha256=1ee5bf796367d27987098f73dad866359e188cafe32f1871c12b4469f262c846
@@ -14350,6 +14586,10 @@ sha256=76866075a54aa04f4f18f2cf09cf19c84dee4ed22c45b741dc4067f5e224430d
md5=10ee733c70e96e8e9f01d3de2cc0c78c
sha256=46f0a85f340e099e9010c8eb9a28d727830aedb32be48fe0a2f0cd081e0623fd
+[http://users.musicbrainz.org/~matt/libdiscid-0.2.2.tar.gz]
+md5=ee21ddbe696a3c60e14827a75f3bcf5b
+sha256=974b5d5ab23fb45910a4fe171045a22a749cd8cb9833168f7178839993a58402
+
[http://gpe.linuxtogo.org/download/source/libdisplaymigration-0.28.tar.gz]
md5=f976234f9dfd6a8e1288710b49d29964
sha256=f776abe417432b3c4ff8b063201c4b4b45479a563fb43e6fd64504b538ef4689
@@ -14598,6 +14838,10 @@ sha256=448a4e35a8685b60829d1b51b498e2a6e4107549fd0458fa17dcc801d29d5f72
md5=d8ca3192867c98669bd7d6a41ed26b09
sha256=2cbce6d32c31c53df3e3f6fdd9d74c81b02ca1295598acd56061effa2b299b65
+[http://launchpad.net/libfreespace/0.4/0.4/+download/libfreespace-0.4.tar.gz]
+md5=96a081e3b7fe2337344b8adc61259eb4
+sha256=cc1e5f6751e27b2f403e85d394312c283b74f55e095c8ed8a3327a23549263de
+
[http://www.intra2net.com/de/produkte/opensource/ftdi/TGZ/libftdi-0.13.tar.gz]
md5=7b4a660fd644980f3d45873d156d021a
sha256=98ceb0a3174564f310c4ff1c021bdca52558bf693003a410cdb95c8388aa11f3
@@ -14694,6 +14938,10 @@ sha256=01cb83ef0e765c9856bed79c18a766eed2027f2b2576e8eaa14e02c15c7658fd
md5=1ac35c278299fcbc69b7dde79a642d89
sha256=26c7d9c1b7a41f28fea5213484b274be55dcf2bbf5eac723ad795c0c5fb85df6
+[ftp://ftp.gnome.org/pub/GNOME/sources/libgee/0.1/libgee-0.1.6.tar.bz2]
+md5=9bf21c1d832fc0313d08829446983fe6
+sha256=d319b87691dfae207d1deeb4ff8bd9e342c1b85d9277be25defb402ae10b496d
+
[ftp://ftp.gnome.org/pub/GNOME/sources/libgee/0.3/libgee-0.3.0.tar.bz2]
md5=1ca2b8a87950ef1b14342fb32db3e558
sha256=fd373e48bbe7a8f4903bd405f6310223321bc1ab22c7c3a7bc6ab0a11256b597
@@ -14710,6 +14958,10 @@ sha256=b178c610fbbf2613ed1edeba2a11ed9c1ea042274465b2f3cd0a29cf1c7ebd9c
md5=603739504648833779aa13b0327a1c3d
sha256=54301052a327f2ff3f2d684c5b1d7920e8601e13f4f8d5f1d170e5a7c9585e85
+[http://people.debian.org/~kov/gksu/libgksu-2.0.12.tar.gz]
+md5=c7154c8806f791c10e7626ff123049d3
+sha256=22f9cfc3627dcb6774b9aff66c6ea6554f3b34b82bbfa2467b821e67874c3faf
+
[ftp://ftp.gnome.org/pub/GNOME/sources/libglade/2.0/libglade-2.0.1.tar.bz2]
md5=4d93f6b01510013ae429e91af432cfe2
sha256=6386901d84cb41fb8a584f7aa1b54c984e0590f36f45ee016ef30aa45554194d
@@ -15026,6 +15278,10 @@ sha256=f319655b272186ad76ab73317b7e8c5e3b87d51c1265ce676f02e8c312745226
md5=8aff5ac4ca72cba17de633078cf1612e
sha256=2582362ae318b62c31832edfcaf401397fcc98fd307347ee15babff94770784d
+[http://downloads.sourceforge.net/gphoto/libgphoto2-2.4.7.tar.bz2]
+md5=3c1f1b1e56214e83b97e2bc7aadba4c5
+sha256=9e7613f21ac3dd7cf1decbab5c47c1e9a16d39c32062d7f8632adb4fc8d0271f
+
[http://kent.dl.sourceforge.net/sourceforge/gtkpod/libgpod-0.6.0.tar.gz]
md5=b44d8aee3f6610370b6faf61770c5f3c
sha256=a2c8c998588361d8aaa4c662a38f50db164b8b4fce4e7bc49ac445a9ac87f80f
@@ -15198,6 +15454,10 @@ sha256=7f1fa404e5540c880cc747c4a680a89d88b87b10a1c77655f512780fcb0ca5d0
md5=87d48321bff08de08794132d60b55d94
sha256=7f1fa404e5540c880cc747c4a680a89d88b87b10a1c77655f512780fcb0ca5d0
+[http://downloads.sourceforge.net/freeassociation/libical-0.44.tar.gz]
+md5=e0403c31e1ed82569325685f8c15959c
+sha256=20a4750df8f4dedd718b55117b8351989e0dfa4ad2c966a383550ed43e6a72d8
+
[ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.11.tar.gz]
md5=b77a17e4a5a817100ad4b2613935055e
sha256=fbf5b9a63ea6e3abebfabc04506f0e18a2860071031e34ea4ad4f450b8c43d4b
@@ -15226,6 +15486,10 @@ sha256=63da4f6e7997278f8a3fef4c6a372d342f705051d1eeb6a46a86b03610e26151
md5=440835808c577073db7d571357223dce
sha256=4f707c189259d7b3dda908d78a995366d388fe051aa3554b82cb324426997a23
+[http://josefsson.org/libidn/releases/libidn-0.5.19.tar.gz]
+md5=440835808c577073db7d571357223dce
+sha256=4f707c189259d7b3dda908d78a995366d388fe051aa3554b82cb324426997a23
+
[ftp://ftp.gnu.org/gnu/libidn/libidn-1.15.tar.gz]
md5=482a25b7b223e52f967fafd284a1a992
sha256=db75022eff366bd5646ab1e6d7bcd1c2048473a7dbdf0cd0421de92c88bbdc18
@@ -15542,6 +15806,10 @@ sha256=920fa2a0924d66884825d36a2e843de069cfdf1af01945d05da25999bbd6396c
md5=eaf7dc6ebbff30975de7527a80831585
sha256=bae29e79fbc50bbedf1235852094b71c8c910a1ef0cd42fe4163b7b545630b65
+[http://downloads.xiph.org/releases/ogg/libogg-1.1.4.tar.gz]
+md5=10200ec22543841d9d1c23e0aed4e5e9
+sha256=9354c183fd88417c2860778b60b7896c9487d8f6e58b9fec3fdbf971142ce103
+
[http://www.vorbis.com/files/1.0.1/unix/libogg-1.1.tar.gz]
md5=461d7097bf47864b872085a94ff94e10
sha256=01453d561255b5fcb361997904752860e4f8c6b9742f290578a44615fcc94356
@@ -15750,6 +16018,10 @@ sha256=7a61e8b686ae7d659835175018da3a1baa959329b77c18e6e9381a197937296f
md5=7075f580606a84e63b7d6d9fa3124c31
sha256=7ff5f355bb254a3d4ed4541377e6304432ee8678e7c9ec29e7d43488903004c9
+[http://downloads.sourceforge.net/parchive/libpar2/libpar2-0.2.tar.gz]
+md5=94c6df4e38efe08056ecde2a04e0be91
+sha256=074fbf840f73b1e13e0405fce261078c81c8c0a4859e30a7bba10510f9199908
+
[http://www.netsurf-browser.org/projects/releases/libparserutils-0.0.1-src.tar.gz]
md5=5999c2d52f8c07eeef2a8808fee4f858
sha256=5aed4edfd2023ed3ccd566fe76131d10faf43c8c3efa2e90978eed37c5503165
@@ -15842,6 +16114,10 @@ sha256=24b354dcd8843274a20e1625e04d618d43f9851082254cb9dae6f33f15c2a5cd
md5=b8b8d09adf6bee2c5902c8e54c4f2e68
sha256=cafe6431f9e6d561fb7b396bf94ff73a9cd0f4279f3eea2fc714ab90e345eee6
+[http://downloads.sourceforge.net/libpng/libpng-1.2.40.tar.bz2]
+md5=29bbd1c3cbe54b04bfc2bda43067ccb5
+sha256=a6197352ad5b79a9a1ce0dd59f5e737cfbf909e0f3c5f64631cf0d93549e4e40
+
[http://downloads.sourceforge.net/libpng/libpng-1.2.8.tar.bz2]
md5=00cea4539bea4bd34cbf8b82ff9589cd
sha256=9bec729a1e77d8bbc5800b14aa81f09290aa18daa40f344103f2c0d1d681531b
@@ -15854,6 +16130,10 @@ sha256=59ded160b3547d29e37cc9d06359f7f37d94112214e4532430cd65e704c1339a
md5=774eabaf33440d534efe108ef9130a7d
sha256=004dae11e11598584939d66d26a5ab9b48d08a00ca2d00ae8d38ee3ac7a15d65
+[http://xcb.freedesktop.org/dist/libpthread-stubs-0.2.tar.bz2]
+md5=2ba9ce2d46da0a2a1090384ece3387ff
+sha256=d4c47c24e5ec07e974a7ef8f55b2907dd7fa8de82e291a02b15f8c4a7028bf48
+
[http://gpephone.linuxtogo.org/download/gpephone/librecord-0.1/librecord-0.1.tar.bz2]
md5=a9e90187c1dc183f497bcae34718e415
sha256=6fb70d0b8f410f05988e1f3a3e8c86990c3e84c9958041803e6d0658faae91ea
@@ -16178,6 +16458,10 @@ sha256=3ae9df56e8fc75ffe26e63a13cae2ce79d079416175fb0baffe0e2de8dc91a6d
md5=55ee3c6db3e0927e7918309891a8f52b
sha256=f5c7730ded0273a8615b12b46a32b800bbcb9e861e3a18aa92b1c062981a2fef
+[http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.bz2]
+md5=292ab65cedd5021d6b7ddd117e07cd8e
+sha256=b6ae1ee2fa3d42ac489287d3ec34c5885730b1296f0801ae577a35193d3affbc
+
[http://downloads.sourceforge.net/tilp/libticables-3.9.2.tar.gz]
md5=354675bfbd881082a9447efde9935226
sha256=1c091859f09d5a38c76f0d64a93db46aa2b5d637c8a7370d348f21e7be324c37
@@ -16214,6 +16498,10 @@ sha256=e234d314f0bdfcc54f52111519624fcd3d1ff37a267c39848b5de7a272367976
md5=8c8d1f7378734231fd0458569346b9d4
sha256=9269060f1a8c36c66748520a44d6ffc5059ae736de1e282bb8b6fd65d7890813
+[http://tinymail.org/files/releases/pre-releases/v0.0.9/libtinymail-0.0.9.tar.bz2]
+md5=674db3cb4750ba0a3e90aa95ec28bcc7
+sha256=82c4fa4315807af48ed0585b6efd03a42022016364474ead931634e689bce9a5
+
[http://gpe.linuxtogo.org/download/source/libtododb-0.07.tar.gz]
md5=5df2e1f7564d066dce6ec24344605528
sha256=bc3fb1a20ec97149f6e81285a22bdc48fea9c4fbc9abad6919b87ce2f44acbc3
@@ -16358,6 +16646,10 @@ sha256=510b9c7339e878324066ec1cb74c0f67d5df858065155a3239999ff911257d45
md5=dc8865eaff167aabe78e5799762b8067
sha256=9f5737019f3e4c14f68a2f829deb690330e89b634d1337683e453b94137669f1
+[http://downloads.sourceforge.net/libusb/libusb-1.0.4.tar.bz2]
+md5=a1f2206f1b4bd800e2461157faaa887f
+sha256=6de182e93c946d432ed04362f0b93d889072438448dad20a21d4fcfa34cffa1d
+
[http://downloads.sourceforge.net/libusb/libusb-compat-0.1.0-beta1.tar.bz2]
md5=3d9f7c3966d24c6e2d58becac96e4e27
sha256=9365108d71cecb78055de4df6eeb2fadf0fe9143ef105bcb6934dcf391983a49
@@ -16426,6 +16718,14 @@ sha256=20b3cbdb4b05322d470404a7d2e8cdae1e0ce5372113218ae3cada3b29da70f7
md5=478646358c49f34aedcce58948793619
sha256=6eb7040048e35448fe224fa3fd993eb4e49a905c57893886082f1674d43b0e73
+[http://downloads.xiph.org/releases/vorbis/libvorbis-1.2.3.tar.gz]
+md5=5aa77f55c0e0aab8eb8ed982335daac8
+sha256=c679d1e5e45a3ec8aceb5e71de8e3712630b7a6dec6952886c17435a65955947
+
+[http://downloads.sourceforge.net/libwbxml/libwbxml-0.10.7.tar.gz]
+md5=5aa77f55c0e0aab8eb8ed982335daac8
+sha256=c679d1e5e45a3ec8aceb5e71de8e3712630b7a6dec6952886c17435a65955947
+
[http://downloads.sourceforge.net/libwiimote/libwiimote-0.4.tgz]
md5=0d8d61dc989d8ad83e1005a26136d388
sha256=a1e9d45a0d4dd367f1371dd477e30ecaa95e59b9fb8635dc9e7f26e4eb231d90
@@ -16778,6 +17078,10 @@ sha256=9f141c606cc93d0550eeb3532626f26ced56687c2bc9f2b8dad387798b929340
md5=fb345125e23c787df0818ff7caad5515
sha256=ba1c32207fd62d374c9397a81fb1247da93edb859e30d0d855dc65e5457f690b
+[http://download.savannah.nongnu.org/releases/linphone/3.1.x/sources/linphone-3.1.0.tar.gz]
+md5=ed40cf4088c306400b005bbd63ac36be
+sha256=e41e99925e8c81a9e6c7f4cf399da1d9f571927413196898af46ecbebee6a91b
+
[http://developer.ezaurus.com/sl_j/source/c860/20031107/linux-2.4.18-rmk7-pxa3-embedix-slc860-20031107-rom1_10.bz2]
md5=d74fc9ea01384bead3925434b932d6b7
sha256=3dcafe41355fcc688f4a376a5dc71901ea2fbb95698397c87c6a6b12aa058c69
@@ -17154,6 +17458,10 @@ sha256=ee3edf1ea89a90f2b7f82ad09b83c25dc8ea8ca7cf0fce2aa921f897929b2bb9
md5=6f15406664ef31172c68d46567569bb8
sha256=9532b981c9b8974ceedd3d25a8f9a0e167a92c9da0dece47f34a4ec34e34b1cf
+[http://www.angstrom-distribution.org/unstable/sources/live.2009.06.02.tar.gz]
+md5=088f848b64cef1d54034bc24cfa3c156
+sha256=66c54241bfcc7ea42fe40e1c93739be79a3c065390c4163c0f2647ac45c24758
+
[http://www.live555.com/liveMedia/public/live.2009.06.02.tar.gz]
md5=088f848b64cef1d54034bc24cfa3c156
sha256=66c54241bfcc7ea42fe40e1c93739be79a3c065390c4163c0f2647ac45c24758
@@ -18322,6 +18630,10 @@ sha256=3b0e4a2c5c3e4457ce8f44e6cbb9f14ddfb66a515017b430f4f4484893e8ce9d
md5=805e2e59a93a0a4b7652d6547b2bd923
sha256=97c79d20807899bad4b241385c7cbf3a4f85d2673b1b6c12059878450e3e971a
+[http://archive.xfce.org/src/apps/midori/0.2/midori-0.2.1.tar.bz2]
+md5=3cee94c9a22316504a3ba99bc92e0245
+sha256=7d79a45331cfcf002ccd5a386b5597f91e0ee048b2b040a57c6faebc02bba79c
+
[http://git.xfce.org/kalikiana/midori/snapshot/midori-abbfc163a39d7f1f01725fe2cfe3df516f9fa0f4.tar.bz2]
md5=d50f0a9683dee60685bcd48e04970949
sha256=c5eb824148935697cf4fc36f11cfd7a05fbe6a3392d8f32e296e2cdfd21de3ee
@@ -18606,6 +18918,10 @@ sha256=ab4c9191645f9ffb455ae7c014d8c45339c13a1d0f6914817cfbf30a0bc56bf0
md5=bac989c74ed10f3bf86177fc5b4b89b6
sha256=ab4c9191645f9ffb455ae7c014d8c45339c13a1d0f6914817cfbf30a0bc56bf0
+[http://projects.openmoko.org/frs/download.php/271/mofi.0.02.tar.gz]
+md5=3a2efecc54880a6708d7ddfa88df3df9
+sha256=33a25af95a6aa3a810f5fdf0070ba7744988ad8c60cfc38193ed79b8b4059c9f
+
[http://downloads.sourceforge.net/moin/moin-1.2.2.tar.gz]
md5=4032f2305a3393ab18e02efe6550e1aa
sha256=8447eb112e0e42db59e490fa98b0a1c9ed90ff3660b99734fe5119061eddce8e
@@ -18618,6 +18934,10 @@ sha256=569c9b4f7b2cf411718a3ac5e6427c1babacbaf1b085276f822d8d08040e4a8f
md5=4a0dbe4e0cfdc15d30958bdc571bbfd7
sha256=2492f6bd7e2140e62436f11e14b21ec36d17d784fa8271e61f8f06012c83a1d2
+[http://mokomaze.projects.openmoko.org/files/mokomaze-0.5.5+git8.tar.gz]
+md5=f4e1dbd444b4049c361f9c1c3d40d32b
+sha256=515d842b79a2c34f5789fa10110bc9d7b15c65a7b1fa623131a1e03599fe7362
+
[http://www.tildeslash.com/monit/dist/monit-4.10.1.tar.gz]
md5=d3143b0bbd79b53f1b019d2fc1dae656
sha256=f6a29300648381538a403f24506e75b94164e26c69c6861ca112d425edc9d193
@@ -19006,6 +19326,14 @@ sha256=7744d78131619b73a82adb6f73d6cfc6bad11a6ad2806c0f5130f88fe88ac9dd
md5=37b4479951fa0cf052269d27c41ca200
sha256=6bd2436fd0f233bb1518e15975cb4e9fa4434acb53c3c3cd7d4648219abf58e9
+[http://downloads.mysql.com/archives/mysql-5.1/mysql-5.1.40.tar.gz]
+md5=32e7373c16271606007374396e6742ad
+sha256=2b0737b84e7b42c9e54c9658d23bfaee1189cd5955f26b10bdb862761d0f0432
+
+[ftp://ftp.osuosl.org/pub/mythtv/mythplugins-0.22.tar.bz2]
+md5=09c8fa1058399a0c5db169a71561e985
+sha256=75c53f4b3017a9a8fcb9ff3bf7e2709a41a579b8a4e2ae1c600dc6ce6341cd31
+
[ftp://ftp.osuosl.org/pub/mythtv/mythplugins-0.22rc1.tar.bz2]
md5=1c03d3f4ccedcd9de1c0ac2226e0031c
sha256=f62969cd61dc9718973708b79f5e86f653f630097f5ad14f90d78fcff677c0da
@@ -19014,6 +19342,10 @@ sha256=f62969cd61dc9718973708b79f5e86f653f630097f5ad14f90d78fcff677c0da
md5=de15246c1f59665f3960015c49138da3
sha256=73dff22a4622f2140b49ee824f1f69d6120135d828bc38f6877a619986c99245
+[ftp://ftp.osuosl.org/pub/mythtv/myththemes-0.22.tar.bz2]
+md5=a5f00f152fb430a20c70aaa3bf456347
+sha256=6720a16a0bdfb9bfb95bd729b50d95f75f8494b932a7dc44ad4014f06ecd36c2
+
[ftp://ftp.osuosl.org/pub/mythtv/myththemes-0.22rc2.tar.bz2]
md5=7d629aa8c0f1c8cdc11310b09a929626
sha256=39494a9c05c47b9a28c6168211a5987a8386929a3210e637ed6191e3554ee9f6
@@ -19030,6 +19362,10 @@ sha256=777ff60afa89426f0e52e49b0e7a7661ddb45b59d2ebbfdcbe07fd179e526ff3
md5=49fc135e1cde90cd935c1229467fa37e
sha256=33a878a8fc3efdd74519b09b4ec3d16fa9d3a0436b321c13344e5f3ab723c5e4
+[ftp://ftp.osuosl.org/pub/mythtv/mythtv-0.22.tar.bz2]
+md5=e8f8b5b6a51cd7be700e215b2a1bf2c0
+sha256=bb7212bac2cfc792c59a15a80caee8bbf469e250e6f48dc6b0856a60cb07b6fb
+
[ftp://ftp.osuosl.org/pub/mythtv/mythtv-0.22rc1.tar.bz2]
md5=049e93d78d5370351539c9a23b47e1af
sha256=8e6823f4b92d88c837735322ca71199919406a2826bddae257c6e0f52d089cd7
@@ -19106,6 +19442,10 @@ sha256=86c8839ad5c8a1c5674eb3617bbe15e9c9bb2358a7435a0e2d22cd25ab7718ff
md5=14d9464043848eddd0bd0d35bbe63415
sha256=3761b27da474b71194ff900e7941c005be608a00fe0ba1f216390ce1ba9cba72
+[http://ftp.gnome.org/pub/GNOME/sources/nautilus/2.28/nautilus-2.28.1.tar.bz2]
+md5=e759af11a0844828e2b484ff42ee0498
+sha256=197147d04529ee14e63609fa4755c9effff19842f77594ff8cce6e2433d0bec0
+
[http://ftp.gnome.org/pub/GNOME/sources/nautilus/2.6/nautilus-2.6.1.tar.bz2]
md5=50c5732c0c9736b7026bce1c6b0007dc
sha256=83f1d6623e142af30a9b3fa9135ecf973fbb8c89f1dc36a218de0c0fef6ddf07
@@ -19438,6 +19778,14 @@ sha256=a187976c1957a7a0e17014ed97cbb4341f6898d5f60301f1b0c37e52188ebd13
md5=7fa369bff1031acbe4ca41f03bee7d02
sha256=53d2f92c3d14423b49c2ff077855cf3987d38def963c82fd26fba5de379ca540
+[http://monto.homelinux.org/notifier]
+md5=24d87301da8843e2dbc3330ece57677f
+sha256=896c6942a9a3b0b2d6846eab1de8c471c9fcf860ca182ce18e12f1ce255f42cc
+
+[http://www.galago-project.org/files/releases/source/notify-python/notify-python-0.1.1.tar.gz]
+md5=8f0ef0939cc8edd2efd896ce5ba80cf4
+sha256=8c5ee28017fdc5b110c31cb76503e535e15e0c60b9a1f1e95ff6c018dd806022
+
[http://hauppauge.lightpath.net/de/nova-pci218c.exe]
md5=139a1ed50a1a12e47b1f7deedf4f40c3
sha256=4310a3a526ae5461e17f57353fc29f71d13820a215eaa62c629190cc2a026173
@@ -19586,6 +19934,14 @@ sha256=797dab52e18592d340c36ef6e126368bc1c9c98bbb873bef9ba9fc70911616b9
md5=103c5c821474ae6df7a3055ee72f4d00
sha256=c80d9ea7ebca32b63ea23d2a52ac799cff32f8f30c66b491d2b8f93da05585e4
+[http://downloads.sourceforge.net/nzbget/nzbget-stable/nzbget-0.6.0.tar.gz]
+md5=eb95b3930abffb570e37af8d284c1f9d
+sha256=b0bc8740db7ed9ea269b29e9a936cb2c4dd61a911b80b623fe18729b94de3030
+
+[http://downloads.sourceforge.net/nzbget/nzbget-stable/nzbget-0.7.0-testing-r342.tar.gz]
+md5=4250d8166969367b4feff4204b42ecb9
+sha256=37c595e78c4a5c86fa1c39d4dba39786d9546ae0a078b936832df9d17bafba10
+
[http://releases.0x539.de/obby/obby-0.4.1.tar.gz]
md5=b79146369fc76a61d6d4056a937c71c8
sha256=b69a259795762881a5384072085bb501d77c6fb974e0b7a16ca573565ffe3629
@@ -19610,6 +19966,10 @@ sha256=44ba0d99e1bf8fa2caf9f7a85d569e513208c0710c1ad00032e271289e87b63f
md5=5674f746b55439d32bc765d2c5baad16
sha256=6dbabd9345967120ad21cc25489a6d244aed7975cee9297cc5716af4debc7228
+[http://www.kernel.org/pub/linux/bluetooth/obexd-0.19.tar.gz]
+md5=2f03b81411a1f7c359ada35459d946a5
+sha256=37fb4cffad7e361daffa9915ee6a37e615d0bf4d1f24760e585d5ac922515ca8
+
[http://downloads.sourceforge.net/openobex/obexftp-0.20.tar.gz]
md5=085b9edc0504c0d79e7479a54e2018c5
sha256=7246fc75257afcd30ff16dc70185057157bcefc12fa9fba111b3b201577cc40e
@@ -19658,6 +20018,10 @@ sha256=b99b6e2c1a0977fbe2f0c19210694ed44ff182d17d3920c485fb6ce725b89816
md5=6b11065c9dbd3c9743d234c2f785fb7b
sha256=fb093e267e5b9656f767896a33d664e5ee921e28898a481542bdb4db31f7604e
+[http://downloads.sourceforge.net/opende/ode-0.11.1.tar.gz]
+md5=5f79628b7b10a7a59092759a5af77775
+sha256=4c225b76d57a5a8094653fba48f3169ac1a99622f3ce98f2be55fbd5a1b76519
+
[http://downloads.sourceforge.net/opende/ode-0.5.tgz]
md5=b33b21e04ee9661f27802b6b6c8eefd2
sha256=5388c4cd4666f270f18216c90ab6526229c53fdc7e82f93ddb0824e69521df1c
@@ -19834,6 +20198,10 @@ sha256=a898b79336c7372c901bcc7e5f83db7b8e79f8e864be6a262f515b3e088bc607
md5=5c9c1639bdff3bd35c63697d398f1a68
sha256=3d6c58830e50373d0dc2a72f6fc65afd7ef30aabf2d1078e6878c911270dec16
+[http://downloads.sourceforge.net/myposition/openbmap-logger-0.3.2.tar.gz]
+md5=edeea53ea62d241d472912417b5cc248
+sha256=0a6bf110bf108416d85aabd42f01e52860be26a45bd1f0c7fb76252d47f9b19f
+
[http://downloads.sourceforge.net/myposition/openbmap-logger-0.4.0.tar.gz]
md5=52b71c33ce0d2da8d5c29db293132630
sha256=93820366128b394d84b1b37830344b70f349c2896b60b601e884f9d857ff5d84
@@ -20006,6 +20374,10 @@ sha256=56e844da580761ddbb580683fc455a8d9eb3179df631568c26b7188d1ff16363
md5=d05b9ebf67c83f07e8286d0d2b1fc293
sha256=2d60e8a08768a9c81f37e699df6890c12d53f4d56b5562724c3a9ffa302c7197
+[http://binaries.openttd.org/releases/0.7.4-RC1/openttd-0.7.4-RC1-source.tar.bz2]
+md5=416a2ec6aa01b322100fb4e2f039f992
+sha256=8f57475e37a7b8544741c563bdc34463ce98e43ed3c1a7543a3fdd35647b8ea1
+
[http://downloads.sourceforge.net/openvpn/openvpn-1.5.0.tar.gz]
md5=55d7ce958bb2ccf3d3204d1350c27179
sha256=d34d0a1a29de12cbb4fc6f8d80eced7b674ee3574e3df3d678fb0467283f7826
@@ -20114,6 +20486,10 @@ sha256=2997613ab33ad42dc8269a63b7c40a6938b3552e196780a4a269cc7340dd23bd
md5=9613e6be14ba7a0ca5d42a88e6ed3516
sha256=45145ea27333be1552624065297b4d9d76feadf2a4a89fdf0ddafc830ced3a98
+[http://projects.openmoko.org/frs/download.php/581/orrery_2.4_clean.tar.gz]
+md5=03da10cffda64a0927a1d929c20eb8f8
+sha256=0a8fd606d12b98e439a95d608c317849b7fe151dca8e1b8b3dee329a3a75292b
+
[http://download.savannah.nongnu.org/releases/linphone/ortp/sources/ortp-0.13.1.tar.gz]
md5=293f16da6dd434e68652f0f725b7f97c
sha256=2ba471a2a4f1d7f10fb70de5b68dbb7d32b43494efcecb88b3bd8445f630494c
@@ -20490,6 +20866,10 @@ sha256=bf26ebe42c12c81e5c32ceca80ff226a01c8d80d4db2a4cc3463d5bf241b095e
md5=129f8623dc4f70188a015e3cbd7eae82
sha256=74188aff5f2e5b77515a8cf3979199a598d58da8e4f573462b59cbf94cf1c99d
+[http://0pointer.de/lennart/projects/paprefs/paprefs-0.9.9.tar.gz]
+md5=0592ccb28c8f601a8fe3607b64e9f5bc
+sha256=1237939f0cea478ecd51452e817e08877e914c919239fcb63aa2471a389769a9
+
[ftp://ftp.gnu.org/gnu/parted/parted-1.6.23.tar.gz]
md5=7e46a32def60ea355c193d9225691742
sha256=5144f413dcce1a0b94263ebf3730f2a2afe6a9557bf261f9d6f48c890423f4c8
@@ -20690,6 +21070,14 @@ sha256=95880162dd0839d9b509152e34cf9356b051dff7daf2216ff50474efbe68f6c3
md5=527687c63f4252989dba6fb92baf9707
sha256=1daafd156f00c2b3b7981f197465d78e689fda506054d011ba0da6513319fe2c
+[http://ftp.kernel.org/pub/linux/kernel/v2.6/patch-2.6.24.2.bz2]
+md5=5e7fb6b61bd5af063ddd50b548355e94
+sha256=147c19d31c97c847ac09901dc5e40f27ed4dcf7e47ad81e84c6acde5cf214945
+
+[http://ftp.kernel.org/pub/linux/kernel/v2.6/patch-2.6.24.7.bz2]
+md5=0c1c5d6d8cd82e18d62406d2f34d1d38
+sha256=b6bbb0dea427aa733c37d58a94b819b523c8649d7605f498348de159380c28a1
+
[http://kernel.org/pub/linux/kernel/v2.6/patch-2.6.24.7.bz2]
md5=0c1c5d6d8cd82e18d62406d2f34d1d38
sha256=b6bbb0dea427aa733c37d58a94b819b523c8649d7605f498348de159380c28a1
@@ -20814,6 +21202,10 @@ sha256=ed167dcbdf52c2563a30e7c81a0f2b3d79eb04acc5728e6d484166a4fe8a39e4
md5=02078f4231baee4f0004212f2875df2b
sha256=bc670682ed9b81d5d3859130c600601bd72053fd738b51b2daf8ddf3f4614a66
+[http://kernel.org/pub/linux/kernel/v2.6/patch-2.6.31.5.bz2]
+md5=6cac5e59d5562b591cdda485941204d5
+sha256=41e7d98a205d58a62901daf4e46ecf5fb0b177e5a233a3c0ad3250a3a0abe8aa
+
[http://www.muru.com/linux/omap/patches/patch-2.6.9-omap1.bz2]
md5=d6249654087f0bcafaa860ac573316a4
sha256=91806347cb386002a8bfd20ee66e536e4a7dfb01f207dd751341f2971090d9ac
@@ -21130,6 +21522,10 @@ sha256=a2d8473577c2b3b51ebf29e2c6cb31463158676a5d5b44438ff0db18e8aab949
md5=1d5e267c57b126038689ce3bf26eea24
sha256=468f25a70ef2dac90088caa6599c41ade6768e0cdc328dc3e82ab578903e69d4
+[http://projects.openmoko.org/frs/download.php/907/pisi-src-0.4.7.tar.gz]
+md5=8d47a6a2926c635cb4eb633e3ee063ce
+sha256=fd4d89c138ef2d1a6f9458cb85363581a205d1c1b69578fe7e0f856668a7fe9a
+
[http://xorg.freedesktop.org/releases/individual/lib/pixman-0.10.0.tar.bz2]
md5=fb23e17a8a0308e8fad6dc153753ba9a
sha256=2b841f49b245948b8739e55f1b663687d5b33eb2767833574f9a1f0904a1d1e4
@@ -21762,6 +22158,10 @@ sha256=22eae4f6c72247f8ac79c57ce4469797ad3df67614758c5096b7ce9290bd10b4
md5=db7fd581b66998cd76d96f8b7c3f22a1
sha256=78e290d3cf78d4dc15c7397b0edd138b4d29cf2ad0a7311bfc1c4dfb88f2a400
+[http://downloads.sourceforge.net/project/ptpd/ptpd/1.0.0/ptpd-1.0.0.tar.gz]
+md5=b112b2bedc7f6e6e11a838608b9e0357
+sha256=8ac1fdcad1e246b0395097dd9af29966c6823533d7e6989aae91506048fb51bc
+
[http://pypi.python.org/packages/source/p/ptrace/ptrace-0.3.2.tar.gz]
md5=8108c2474bef16d126e956dce3c5073b
sha256=634fe75e195179adafb6218040724f38252bd0fc8f796bb3e3e9bdba065890c5
@@ -21782,6 +22182,14 @@ sha256=e6129f9239235981d329de40eeffa55041e6815a93aaa994d1eae242ea7446b5
md5=4510364eeab219fd100bd1b373b1a002
sha256=1e8ad5b7c5cf3485bd0738c296274ff2c99d26d12a25a225dc250eddea25b9f1
+[http://0pointer.de/lennart/projects/pulseaudio/pulseaudio-0.9.19.tar.gz]
+md5=02adc2b99252675f0271db3b9edd432e
+sha256=e47e27083deb79571fb2b9215874ddc26d77c3dec2a7dc8de5ecec9058e4b806
+
+[http://0pointer.de/lennart/projects/pulseaudio/pulseaudio-0.9.21.tar.gz]
+md5=76e623c4c72e2258bc8bdeb1599bad74
+sha256=94e22356ac70ee95388ae58da90d88c6b3186d1938618d21671627ff56cee254
+
[http://0pointer.de/lennart/projects/pulseaudio/pulseaudio-0.9.5.tar.gz]
md5=99b5d9efd4fce35cabb4ae5d0ebb230d
sha256=cd82eabcf9fa310a64b58b621730cebe5d3edae7596a9c121155db455b1e58f6
@@ -21998,6 +22406,10 @@ sha256=12527f130dd695184c44c6197deb619c26c9b5b31ce7699a5dd97e0ad2dd7bd1
md5=d2aa74615aa9cf23413975a68613ffc1
sha256=12527f130dd695184c44c6197deb619c26c9b5b31ce7699a5dd97e0ad2dd7bd1
+[http://twhiteman.netfirms.com/pyDES/pyDes-1.3.1.tar.gz]
+md5=e499fdde54e98be87324c0322311e034
+sha256=4f1aae18f2aabb3559b8878d95a7228ebe6633fc4a88905935354ccdf2accc32
+
[http://downloads.sourceforge.net/pyopenssl/pyOpenSSL-0.6.tar.gz]
md5=af67fda6d2125cae9c56ee50430a40c7
sha256=58ee9dd10fbd97d65347626f60a38aafdcb05d19ad90c883c4284266ba7ec959
@@ -22198,6 +22610,10 @@ sha256=03a605f106e30bea448b04007635a21140eeaba4c8844188d661c3b133cbee89
md5=89afe242275a3fce57b4ffb5fadc5888
sha256=ab9ad4481af435894db27e78010f6bbc21c62252dbe7a254121453419edde8f5
+[ftp://ftp.gnome.org/pub/gnome/sources/pygtk/2.16/pygtk-2.16.0.tar.bz2]
+md5=bd0d437fefd6d5390f5d770a495cd50c
+sha256=7fae5e01af217a01738eae41c38ad7f86d1f538f444300d0fa2847aafb7444a8
+
[ftp://ftp.gnome.org/pub/gnome/sources/pygtk/2.6/pygtk-2.6.3.tar.bz2]
md5=5acd4a4f5807f93a80389c1e9af48808
sha256=1cd8e9bb0a011317862aec90a03e562bebbbf7fcf865a8ff12992548cdda746d
@@ -22306,6 +22722,10 @@ sha256=703b204bd1d57b1bfc0ba95246d229a599259b782ee18072d6041656d412073b
md5=499cfc69b3cacbdf70a32f253b4a0eb1
sha256=cb5a5855c68743622b1902c7c106b30316c623c265906f2acb2fa2c9d97b3f37
+[http://handheldshell.com/software/pyring_1.1.10.tgz]
+md5=d6d2a16ccd1562b2ae63314f30a4ebf9
+sha256=45b73399b8affd1a81ecd370d37e066c046c49e1777b43d0affe6b520082a604
+
[http://www.vanille.de/mirror/pyserial-2.0.tar.bz2]
md5=a8db6163466c21845faa6ef57af992da
sha256=df76084516b34b5e04dd84e54ef38613d87c56bc04de3d0a711f72fb6707ab0b
@@ -22354,6 +22774,10 @@ sha256=85bbe7a9fb6617e24bb4dbef528af8ef6eae07f8809dcd05ec926142feca7714
md5=975e5449d6670dd19498bb9ec4856d39
sha256=0d904161351a8e55b272ed9691b12dca4278bed62fde53ba2a36f479996db910
+[http://labix.org/download/python-dateutil/python-dateutil-1.4.1.tar.gz]
+md5=2a5f25ab12fcefcf0b21348f2d47595a
+sha256=74b615c6a55b4421187feba1633fc233e7c5ebdd7abe9b092447a32946823357
+
[http://downloads.sourceforge.net/python-fam/python-fam-1.1.1.tar.gz]
md5=f6c760c6d8e5ea69a3fce029f7973558
sha256=139f069a4455560a8c68c4c18569f2cb453eeda33d522862f7a4af13932d9cdc
@@ -22394,6 +22818,10 @@ sha256=f1f472a698966b0350857b20fc7f6dd86e4a1f83870edfbe30eb36552b449680
md5=7e4fc4b5382c6b54ede8b6e29270cba8
sha256=f1f472a698966b0350857b20fc7f6dd86e4a1f83870edfbe30eb36552b449680
+[http://pypi.python.org/packages/source/p/python-ldap/python-ldap-2.3.9.tar.gz]
+md5=a9f9f16338288d118a1ae6266c993247
+sha256=62f75b21c5ee744408c9d8b59878328b3bdf47899d30e8abf0c09b3ffb893ed4
+
[http://opensource.bolloretelecom.eu/files/python-netfilter-0.5.4.tar.gz]
md5=2029edea09db0829f16b06042c0004ed
sha256=1ef9ca0508159cc63e1cd097a204664b99eedfa596d326866c8fce9b30715379
@@ -22406,6 +22834,10 @@ sha256=bce93266c593d79d7083052a6cae516de3d6c3e5bda277f664785d30157b8ac7
md5=0df3d1c5109bb88d06575d70513a190c
sha256=8ff2ec30050803e8b60cfb05d24fa32b3d175bffb81ef5919c3db4ac0f263df8
+[http://pypi.python.org/packages/source/p/python-wifi/python-wifi-0.3.1.tar.gz]
+md5=0458e32f82900e03c9fd155442242638
+sha256=a7087ac16ce2d1f146dd76cbfc442ae5b91774f4b8c8eba913c09d0c325eb12f
+
[http://download.sugarlabs.org/sources/external/python-xklavier/python-xklavier-0.2.tar.gz]
md5=5b3cd1832f4d37dfa48490759f3bd3be
sha256=b71096448ca9d7933fbc4aff13cef95a5878f49e4c25f20f815dd1f8f635b6d6
@@ -22670,6 +23102,10 @@ sha256=272301a27e2f7bcd44c8d09f496e1c749c80b86d9489ea9c30bb265bf2dd02fc
md5=61784f1bcac80f18f468b8dd013eab4f
sha256=9cfe0418699e231587182b441c8f6ca68f109059c62bfc8dd9daeafb8277d211
+[ftp://ftp.trolltech.com/qt/source/qt-everywhere-opensource-src-4.6.0.tar.gz]
+md5=2a7b5126f2450d8525af355fc4c12ad6
+sha256=55259c813324f6383cbd441aa2f23e01c320b6d63fbe3b5d52a7715055d28589
+
[ftp://ftp.trolltech.com/qt/source/qt-x11-free-3.3.5.tar.bz2]
md5=05d04688c0c0230ed54e89102d689ca4
sha256=aac89e862c74b2f3ead768e50e9fa7ada1e4225fe9d1d9e05723a3279259eb96
@@ -22822,6 +23258,10 @@ sha256=73fd760d3b5cbf06417576591dc37d67380d189392db9000c21b7cbebee49ffc
md5=72811b7d7fecfbdca45d5a74394daa4f
sha256=c3b9bffd3e27090d4c0623ef61f48257343d0f6ea1cf573f5296250ab7551e5d
+[http://download.savannah.nongnu.org/releases/qwo/qwo-0.5.tar.gz]
+md5=9e1f7394be0a2eb2891e915f594d5f95
+sha256=fbb416acee1f8fe56394f37074154138f3cf324f48ce611cc2df40eb73b5c9ff
+
[http://downloads.sourceforge.net/qwt/qwt-4.2.0rc1.tgz]
md5=142b10ab27e837c3c4603cf9a7e9343b
sha256=3b6db68d53441119dced27e5bad26ec087294cb9d878d37bcea61e1f1e4849a1
@@ -23070,6 +23510,10 @@ sha256=17e1105cddd928adf7d47e050f9bb49557850687f800b3e24cbbf22933ff31ae
md5=15faef2aba7b99782f3b0b8b5d30f80a
sha256=17e1105cddd928adf7d47e050f9bb49557850687f800b3e24cbbf22933ff31ae
+[ftp://ftp.debian.org/debian/pool/main/r/resolvconf/resolvconf_1.45.tar.gz]
+md5=1f0b0bccb4dc0a762dacf6aca716e71d
+sha256=096a0696f925334f4f9fcc87df3305999f4b9f9d630fe6f2fa0179f3d56467f3
+
[http://xlibs.freedesktop.org/release/resourceext-1.0.tar.bz2]
md5=007713326ca5f1adfd39f3cb587c3b9b
sha256=78e0a532bb84d6d85e90244bf3bb0ee9a5246545ebc9b677173e37e231d30cdc
@@ -23318,6 +23762,10 @@ sha256=257722380b39e84e700e9f2d2f6600ba724723f1ed59327bfce47a57d293eeee
md5=3fbb02294a8ca33d4684055adba5ed6f
sha256=19590e972b80333e26a6514c34d976c2037138361481a16f27b75e5d33f33a58
+[ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.5.tar.gz]
+md5=3fbb02294a8ca33d4684055adba5ed6f
+sha256=19590e972b80333e26a6514c34d976c2037138361481a16f27b75e5d33f33a58
+
[ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p286.tar.gz]
md5=797ea136fe43e4286c9362ee4516674e
sha256=1774de918b156c360843c1b68690f5f57532ee48ff079d4d05c51dace8d523ed
@@ -23470,6 +23918,10 @@ sha256=89106b5bc5a66ca0eaf4553371c89ac8542a757964d7a91c07b8fb77e040eebe
md5=8c0936272dcfd4e98c51512699f1c06f
sha256=13271a7eb4dc4aa6072162abbd78848e4faad32c468b9b44e7f95cde96a4e17e
+[http://alioth.debian.org/frs/download.php/3026/sane-backends-1.0.20.tar.gz]
+md5=a0cfdfdebca2feb4f2ba5d3418b15a42
+sha256=8fb1531e6192b9cfe2f44a020b881d78a13f05426b46263cfbe7fc2507ae3d3a
+
[ftp://ftp.sane-project.org/pub/sane/old-versions/sane-frontends-1.0.13/sane-frontends-1.0.13.tar.gz]
md5=2930626e627df49b45192a722cedc8a6
sha256=94cd595fe1ae130b8490d5690c7665d15536554473ad648ed46fc0ac3f383a80
@@ -23690,6 +24142,10 @@ sha256=5cd5d9c06281a4f81d85d9a9f9b0410045d4a764a855f06f574183b528c15d1a
md5=30a82ad466bae223875e66ee14b94904
sha256=5cd5d9c06281a4f81d85d9a9f9b0410045d4a764a855f06f574183b528c15d1a
+[http://downloads.sourceforge.net/scummvm/scummvm-1.0.0.tar.bz2]
+md5=11b911937e0fc73c94a7bdc374ab617c
+sha256=920932b9d0cfca019f35c2451d93d94ca3b9f981f0b82c418bfbc864fb8c00ec
+
[ftp://ftp.debian.org/debian/pool/main/s/scw/scw_0.4.3.orig.tar.gz]
md5=4c9fb66fa496cf32542e92f32f821818
sha256=fca3763b05f064728c9ff248fa0766808d1ceae561b88ad202811924e4ccdb45
@@ -23878,6 +24334,10 @@ sha256=7dc418c1d361123ffc5e45d61f1b97257940a8eb35d0bfbbc493381cc5b1f959
md5=45f77f33a6b2a5c09c28511ebb733b87
sha256=7fd6495d6c3e8dac7ba086c68abed4930c958a94afc15359223074614559e462
+[ftp://pkg-shadow.alioth.debian.org/pub/pkg-shadow/shadow-4.1.4.2.tar.bz2]
+md5=d593a9cab93c48ee0a6ba056db8c1997
+sha256=97987f6a7967a85e6aa0dba2a1d52db8bd69af5a717391de5693db768fb78990
+
[ftp://pkg-shadow.alioth.debian.org/pub/pkg-shadow/shadow-4.1.4.tar.gz]
md5=e1072df927bfb4410ee4dfe26dd81a17
sha256=7e38a7826f6e71e89b55669e8343af05ae33ecfba99aad178cad45845d950a93
@@ -24130,6 +24590,10 @@ sha256=7b408a4e7eb5c4fa6861e3d5f0b49f5ce872c87775fb302a7d36956b77f1e2b9
md5=baa60d94d99c943b136347a5438ad708
sha256=b1118e32a03c245fe1140f968fc6d045dae66a7c092f2e42274e9bae3b7b96b8
+[http://www.handheldshell.com/software/fso/sms-sentry_1.01.tgz]
+md5=4c21f533aebbe17105374ab0fbcfede3
+sha256=e6ea066943305025dd67e200b272f278911f474c30a4d54bb74268ea930f5130
+
[http://www.linux-projects.org/downloads/sn9c102-1.32.tar.gz]
md5=4d5b5bb9c70e69435a608c73da73b632
sha256=780edfac5a67172a49bc4e8b1bd384fa9184ceaf55bf5ab002fd7b8415db7e3b
@@ -24366,6 +24830,10 @@ sha256=2ca2591847df72224dd6f99c8fffe35bb63bf41a8519d8e15ad48141aa841bfa
md5=46f92e42243bc51aaa3871645ce78bd5
sha256=cb07a9801a128e2f42cf49b7e9d577b092ab54aa05242655af93491a73a91a1f
+[http://www.sqlite.org/sqlite-3.6.20.tar.gz]
+md5=0faf8fc8ccff5297513c6532b2b4ce23
+sha256=c172ce97dc7201f38acdff22df467e1514e7225b88c636145e72a66a4ca6d07d
+
[http://www.sqlite.org/sqlite-3.6.5.tar.gz]
md5=ed3151ecaeb3f0a484195da5f694c773
sha256=99bcda2aaf7109a2859ee88aec1f370f61e461343c9bce6cc37f1bed5d933f67
@@ -24638,6 +25106,10 @@ sha256=64331bda459e984b8d369b449eec89daa2f3cd288186f1d2a9ad8011badd4dad
md5=b29893c06192df6230dd5f340f3badf5
sha256=56f7d86032538a4a98d90af3742903a09ba16d6db82b593e4a47605f87fa581a
+[http://ftp.sudo.ws/sudo/dist/sudo-1.7.2p1.tar.gz]
+md5=4449d466a774f5ce401c9c0e3866c026
+sha256=34d11a1dd8bace0885f55b4c8bddda1da29993ff8d7174099e25bd80db1eaf7f
+
[http://dev.laptop.org/pub/sugar/sources/sugar/sugar-0.82.0.tar.bz2]
md5=1f26fa4aee57469a0636a70649343fb3
sha256=ca4c614e09371a986ca5d86065fc697f7eb07b2064a6a2cad541755df0135883
@@ -25038,6 +25510,14 @@ sha256=d2a107e3a5ceaeeb15ab2e3d7cd308653b4ded8aaf8d3c0e0be3b64ba4e17cfc
md5=85755b15099f6071776d6feb67bdbca8
sha256=e56a77325cdea8c274a39fcb79bd47919cbafa15d8009176538ec9a94f5e6e13
+[http://www.tangogps.org/downloads/tangogps-0.9.9.tar.gz]
+md5=0ff6bde0f33b712d066cea08934d4808
+sha256=e4f203a3370ef02684a320431cb71c28af3bc9084bd0af2d72889eb36a62da0d
+
+[http://www.tangogps.org/downloads/tangogps-0.99.1.tar.gz]
+md5=bf99c9510481681651434eb943fe3294
+sha256=9f1e85c4f90a13ceb66dc8c0e6a92561fb00a8b01f63558b01ae9efdff984a59
+
[http://downloads.sourceforge.net/tapioca-voip/tapioca-0.3.9.tar.gz]
md5=e88c400394c092c2688bb2d490c80ccb
sha256=fb89ac4e8578adc140e19cb4929b200d2898e5a8373230f500c16e59c803cba1
@@ -25318,6 +25798,10 @@ sha256=6c3b8fa619749cbb28ca0f8847e56773d13e0bb92f1ea34287420950373640c2
md5=59c92b223f69cc7e50ae6cd9d1539db1
sha256=38f24694983f20e5bffa2ebc1d35a7c3abea50479a6df6449cc900bf2732891d
+[http://download.savannah.gnu.org/releases/texi2html/texi2html-1.82.tar.bz2]
+md5=a8a9193c0ac1bec2f3ca7be40a5a82eb
+sha256=d69c1effc416896409003ea64fdb21152cc0a9a7c665d437a0a3bef9b588b4f1
+
[ftp://ftp.gnu.org/gnu/texinfo/texinfo-4.8a.tar.bz2]
md5=0f429f87de9f20d6c0d952e63bf8e3fa
sha256=efcda677be7ef093757d965736dff3b5af8c9fd36b3e7d3db09289a4a1d5d013
@@ -25626,6 +26110,10 @@ sha256=edd775e06e66dc775ca8272bbd2e47ac4fef6fcb884ccc1001589343fd9d0866
md5=ec09b76ca941f5c389d8dd4f469f1fa6
sha256=a01bcf7718876d96eeb423a58247b89158bf0bc5d2bed414009e5fb83ff76c9e
+[http://mirrors.m0k.org/transmission/files/transmission-1.76.tar.bz2]
+md5=ac44511ba4c203998be3079626126ede
+sha256=b221d6ecec0c5ca9908f17ae7d56ce139d317faaa0c106e99fb321130280f151
+
[http://xorg.freedesktop.org/releases/individual/proto/trapproto-3.4.3.tar.bz2]
md5=3b713239e5e6b269b31cb665563358df
sha256=ff32a0d3bc696cadc3457be9c85e9818af2b6daa2f159188bb01aad7e932a0e1
@@ -25822,6 +26310,14 @@ sha256=5fbd4053a4eb01b814799855e35a3c01743f98acf9fcd167522e6484a2edd7b7
md5=e401e284512be17f5cf63ee52e4f3284
sha256=7182ad6f03bfe16ccdbac4a3efb9e765ea7c51afc33c3a7fefb053122aa6da2c
+[ftp://elsie.nci.nih.gov/pub/tzdata2009r.tar.gz]
+md5=c38d977a3f9f4d4646cab902554c519e
+sha256=684d23e3ebe825c9db90732534446f4e33f5ad4455980b15fd9eb2e4ba5a6731
+
+[ftp://elsie.nci.nih.gov/pub/tzdata2009s.tar.gz]
+md5=3cd8038d7bbfb3a4ac544aceef724853
+sha256=ee9000a0276675ed697f8d404edf80104fd338c3fb979907e4ee63ca83d65e5e
+
[ftp://ftp.pl.debian.org/pub/debian/pool/main/t/tzdata/tzdata_2007h.orig.tar.gz]
md5=8b766bb807c1f7c0c02ff798ea5db80e
sha256=b4c6367ab85de8f148c903bb25dc69de7a7d7d05f204f58880a16a8b81bf93de
@@ -26206,6 +26702,10 @@ sha256=c4bf829816c3e53b0807bb12cfdc8b1f0e0c1eae14a5be2ffb1a59ad71bbb188
md5=261038b0a6890207b68a26be10a37822
sha256=1d645fa76a9482a6630b9a7257d11eabfa94ef4337493ef7075e25cbb8820491
+[http://www.techiem2.net/files/usbmode.tar.gz]
+md5=1af56936129a4cf59487f8825cce44b6
+sha256=368b06259170e7e960c8ba4e344e6df45c85ac23476554e84fe9e53667dcfc0e
+
[http://downloads.sourceforge.net/linux-usb/usbutils-0.70.tar.gz]
md5=05276dc307a0297904bc892e9998bf59
sha256=98d29c0c013debc32f1a17fd66f5e9248025959b07d13f1faba91aa5a1a9ba6b
@@ -26330,6 +26830,14 @@ sha256=e95a45db65b33be472a3134492e348c4cd6edc200d02a85654ffe62bc2e6fdcd
md5=6ce5a6e85653afdd10c48b89b4bcc8aa
sha256=cef1e438a2f936efe00ffbb3758c80de72ed514f210e067cb8469a8b00b8feb4
+[http://ftp.linux-vserver.org/pub/utils/util-vserver/util-vserver-0.30.214.tar.bz2]
+md5=8bad879e36a6a1b9b4858d0d6d3c8c76
+sha256=c88a27ccd1593f4396e1cf4aca37c715c7618a77d709ad63c7cc744ca1557c45
+
+[http://ftp.linux-vserver.org/pub/utils/util-vserver/util-vserver-0.30.215.tar.bz2]
+md5=befd9b8e5311e87395b67ee381d83649
+sha256=40686ac0652b245fcbb34e52ac8d80ae6b4ea3f73150ebc1ce7c69660ccaa35e
+
[ftp://ftp.gnu.org/pub/gnu/uucp/uucp-1.07.tar.gz]
md5=64c54d43787339a7cced48390eb3e1d0
sha256=060c15bfba6cfd1171ad81f782789032113e199a5aded8f8e0c1c5bd1385b62c
@@ -26442,6 +26950,22 @@ sha256=16971189b3cb95648b9574eb7c4c7cc0dff9978458aff7f3f7c54ab823ada721
md5=7d11fcddb2bd30b9ecbdacfaa20f2769
sha256=ebb1afbb0a61dd8f5f8ef13512e789697e98d5ad5f98739120f3b3cc02d46d8f
+[http://www.freesmartphone.org/sources/vala-0.7.8.1.tar.gz]
+md5=8c70abb3ef35523a0b8cf8685b327e11
+sha256=5c59e1fa363e876b5df7d9f5fccbac776c42bcd31bb04c4fde1d41d083538888
+
+[http://www.freesmartphone.org/sources/vala-0.7.8.2.tar.gz]
+md5=f920b9ef0e9ea52a93351d58e23e4835
+sha256=0c71ded5f709709a4309ba073908ff237966d1bae1630c593a664d70613c6218
+
+[http://download.gnome.org/sources/vala/0.7/vala-0.7.8.tar.bz2]
+md5=accd0d350c6d6de7527a0a65c40f8be2
+sha256=b2daf636d95ef66ffd5132eacf18335073b71bfaa18f7ad06f25bcf9673aa747
+
+[http://ftp.acc.umu.se/pub/GNOME/sources/vala/0.7/vala-0.7.8.tar.bz2]
+md5=accd0d350c6d6de7527a0a65c40f8be2
+sha256=b2daf636d95ef66ffd5132eacf18335073b71bfaa18f7ad06f25bcf9673aa747
+
[http://www.valgrind.org/downloads/valgrind-3.2.1.tar.bz2]
md5=9407d33961186814cef0e6ecedfd6318
sha256=7f9a15d7be16ca03a0912191e8d55a486bf69690e11bb76ccece3eaff3730a33
@@ -26594,6 +27118,10 @@ sha256=bca8b0073d9527c0293b831c9b8d8f89fc3dc7b5ab30898e7b748843af07a978
md5=511ffbc8ed8d9df82e7c67852164728c
sha256=ee1faf72ef745a7d96e44cb4797d92a8cd2c9e290dfe602fae0fd955a11d4f3a
+[http://vobject.skyhouseconsulting.com/vobject-0.8.1c.tar.gz]
+md5=c9686dd74d39fdae140890d9c694c076
+sha256=594113117f2017ed837c8f3ce727616f9053baa5a5463a7420c8249b8fc556f5
+
[http://gpephone.linuxtogo.org/download/gpephone/voicecall-0.1/voicecall-0.1.tar.gz]
md5=7fa731310c2f5e334ca4eba9c5482965
sha256=f6ddc993d4890b9500a63345f76acd3eb4a04a9190fcd055f323319627bf104e
@@ -26878,6 +27406,10 @@ sha256=e9152e09ff174fc4c4cd5ce00e52a15005c738c2a4c0de87f5ff24ca325f9b85
md5=1fe3c7a2caa6071e071ba34f587e1555
sha256=d78a1efdb62f18674298ad039c5cbdb1edb6e8e149bb3a8e3a01a4750aa3cca9
+[http://trac.hackable1.org/trac/raw-attachment/wiki/WooshBrowser/woosh-0.1.tar.gz]
+md5=3a9639e077c3d8f85bb59333ef14015b
+sha256=1e8d7eb70f349bfee9eb3f3cb2464c19a4229d0f7faa0a6962a3cd15a460b99f
+
[http://hostap.epitest.fi/releases/wpa_supplicant-0.2.6.tar.gz]
md5=7f83c74bf5e6db7dc564c391a44a9fe7
sha256=f32c5e7607312d3650684977e6d1888a4a53cdb4ba16746225fab66cf345d55a
@@ -26970,6 +27502,10 @@ sha256=c6f692956d93765f12402a0b22617566decc52a9bb1a707b4e8d12affd1528d3
md5=3d35c181dfab7dfd3fe898738dffb421
sha256=64e6bd25d18e838e1c60693eccbd11926c65b228d6ac69c4dafc7ebe7341dbbf
+[http://downloads.sourceforge.net/witty/wt-3.0.0.tar.gz]
+md5=ba03acf8089dff38e106661aa1ecdcb9
+sha256=d439e96d2de8c22f682b5d3d5894974d50b3a36057a002bda1ad1cb858cd3b28
+
[http://downloads.sourceforge.net/wvware/wv-1.2.0.tar.gz]
md5=b6319d5e75611fe2210453b5feb82c0c
sha256=a76f44468e78591e6d510d326702e7c3999d2b9dd3ab8ab8c1c9811fd5b111e4
@@ -27106,6 +27642,10 @@ sha256=e3f8a224af7a8df4defc2c0b3567e1a697486443a2e073fa56122c4a4e439d65
md5=30a167577f657909b3355421e14e2ddb
sha256=fd21224ec09ca5294ba0627433e4d2cb726d389c7818d162f152374e6d693342
+[http://downloads.sourceforge.net/libvncserver/x11vnc-0.9.8.tar.gz]
+md5=13e41380fe9ba2581db180061d1cbd22
+sha256=235549a5dad84c20c6d4aba920d95e3b98999b91ca5347bdde22fa0326818342
+
[http://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20090127-2245.tar.bz2]
md5=25fcaa86a53333d416d5e837fb47ba7d
sha256=18b38aff8e019f35bfee810831535685e69dcf91283e50bc62efa82e3a8dbc21
@@ -27262,6 +27802,10 @@ sha256=f95a9a9e477128aae536669dedd79f4e7b4d469072565695289e4bbb5b36dd63
md5=1f2670865d43a23a9abc596dde999aca
sha256=8c89dbf36304b99363a7f090d695447653102b4528ca2aa367a2abe5cff1746d
+[http://downloads.sourceforge.net/xclip/xclip-0.12.tar.gz]
+md5=f7e19d3e976fecdc1ea36cd39e39900d
+sha256=b7c7fad059ba446df5692d175c2a1d3816e542549661224806db369a0d716c45
+
[http://xorg.freedesktop.org/releases/individual/app/xclipboard-1.0.1.tar.bz2]
md5=2c6ecedb10dc51adbb64c95f22fd99c2
sha256=3399a27101285112ea578e1855c8374254afa8d427a3c5943458abc27c4d70fc
@@ -29858,6 +30402,10 @@ sha256=86b176b6efc52557b1c7631bfdd5c17e7060a438e1e85ce15ec9657be356c50b
md5=11080456822146ebc0118b15f4b911d9
sha256=6b5b3ef58e6646f004a5f1cbc6be8f32b824cfbf78a30bf242e4f07083668770
+[ftp://ftp.x.org/R5contrib/xloadimage.4.1.tar.gz]
+md5=7331850fc04056ab8ae6b5725d1fb3d2
+sha256=400bc7d84dcfb3265a7a1ce51819679dc3adaeda231514bd89b0f932b78ff5c4
+
[http://xorg.freedesktop.org/releases/individual/app/xlogo-1.0.1.tar.bz2]
md5=4c5482552f38a7d42398a694cc9b2ee6
sha256=de59f9be3d45fe93f445f39bec3cea09753a671e56863ce77e3a797d2df526b2
@@ -29994,6 +30542,10 @@ sha256=e17aa1a26119966258a3656a262bbba0f0b036eecb6d9bf192cf4b497686f4c3
md5=b006f72f45a3e7be3e64f88813275403
sha256=aa9acb0c56f0e40f574e16b762fb590fbd0004bccac9847e2e710c041b90d412
+[http://downloads.sourceforge.net/xmltv/xmltv-0.5.56.tar.bz2]
+md5=308c01dc50f9f138bd9ada7483e2877b
+sha256=9159dc21418f611b37520bf71f32a0ca3b44cc490bb9620e9a1a812315685d1c
+
[http://www.xmms.org/files/1.2.x/xmms-1.2.10.tar.bz2]
md5=03a85cfc5e1877a2e1f7be4fa1d3f63c
sha256=ff9eabae2074043294a19ec7beaf0959bd076f6cd60558264faeec08f4a0eb6a
@@ -30198,6 +30750,10 @@ sha256=bb797a384b9acb8209fea572934d1b1484c5de41f062fe152ae99962f52f98ea
md5=b3d352d08e71606383c31da5790b8d60
sha256=dff617ca33dc263caecb6afc5d42c109166ef2a1c0fe0afa070ff6691ea0e8d7
+[http://xournal.sourceforge.net/xournal-0.4.5.tar.gz]
+md5=795e4396ded2b67766eb2926be1fb4a9
+sha256=a7d7c2cb544451939779276e6e5ee5acc756bd0efb5253de15dc00bfe07755d1
+
[http://xournal.sourceforge.net/xournal-0.4.tar.gz]
md5=139ef3045c99dc5c07118b47ff9257e1
sha256=4de076c38b4b64188d23821e7d7a0f6a26b1d6707e768dadda14eb69dcc84598
@@ -30598,6 +31154,14 @@ sha256=a3a947e9982fe1feef235fcbcf41b01b5f86ebf46d106fa719801cf061f6bb00
md5=3de8a3756c284a46a08c6d0308909486
sha256=652f579171e6e8f73c13ab6b060d2447ae35ebfbd39a6002b7c05a1dfc0f7eb8
+[ftp://invisible-island.net/xterm/xterm-243.tgz]
+md5=be25d2d3661d0bb77fc66e1bcbb3caba
+sha256=2621e7362713b588d1ec035f969194f160896b77f6455a26fd81dcc6e29b9877
+
+[ftp://invisible-island.net/xterm/xterm-251.tgz]
+md5=343a4ce213f70c53cf65979f163bebc3
+sha256=2ff9a4ae66cf9a48829023d1d007b0e84ee9cc60feb48107f9c1ea9dd7570ce7
+
[http://xorg.freedesktop.org/releases/individual/lib/xtrans-1.0.3.tar.bz2]
md5=bb196907ea1e182dcb396eb22f7d2c1a
sha256=e1a3c4986f16a5fbca611d0547cc7499a1fa47ca2096593644037e2609363085
@@ -30882,6 +31446,10 @@ sha256=78b013e2e0bb4c1af1adbd7acca4299cd3d83e96d8da2731f629f562b5f153a6
md5=791e8986c6e16dcd1c9878126725e06b
sha256=eba57692dadd21df8d4afaea4daf8db5179c7398e11cd019fd462aa6947f4119
+[ftp://ftp.gnome.org/pub/gnome/sources/zenity/2.20/zenity-2.20.1.tar.bz2]
+md5=b9989582ea43f8fd58819d85ef9c9bc5
+sha256=cc3b203acbd745a7c3b6ea3d8e74d7fb07cf8f8aa92bcaa3b2edb023dee02a36
+
[http://ftp.gnome.org/pub/GNOME/sources/zenity/2.20/zenity-2.20.1.tar.bz2]
md5=b9989582ea43f8fd58819d85ef9c9bc5
sha256=cc3b203acbd745a7c3b6ea3d8e74d7fb07cf8f8aa92bcaa3b2edb023dee02a36
diff --git a/conf/distro/angstrom-2008.1.conf b/conf/distro/angstrom-2008.1.conf
index 1429fa0d65..abc9a936d6 100644
--- a/conf/distro/angstrom-2008.1.conf
+++ b/conf/distro/angstrom-2008.1.conf
@@ -23,7 +23,7 @@
#DISTRO_VERSION = "2009.X"
DISTRO_VERSION = "2009.X-test-${DATE}"
DISTRO_REVISION = "3"
-DISTRO_PR = ".4"
+DISTRO_PR = ".5"
OLDEST_KERNEL ?= "2.6.16"
@@ -84,8 +84,8 @@ PREFERRED_VERSION_linux-libc-headers = "2.6.31"
#Prefer glibc 2.6 and uclibc 0.9.30, these have had the most testing.
PREFERRED_VERSION_glibc ?= "2.9"
PREFERRED_VERSION_glibc-initial ?= "2.9"
-PREFERRED_VERSION_uclibc ?= "0.9.30"
-PREFERRED_VERSION_uclibc-initial ?= "0.9.30"
+PREFERRED_VERSION_uclibc ?= "0.9.30.1"
+PREFERRED_VERSION_uclibc-initial ?= "0.9.30.1"
# Preferred provider for virtual/psplash
# This enforces a specific brand to be used, in our case the angstrom
@@ -167,10 +167,14 @@ PREFERRED_PROVIDER_bluez-utils-dbus = "bluez-utils"
PREFERRED_PROVIDER_bluez-libs = "bluez4"
PREFERRED_PROVIDER_bluez-utils = "bluez4"
PREFERRED_PROVIDER_util-linux = "util-linux-ng"
+# The default is too old for linux-libc-headers-2.6.31:
+PREFERRED_VERSION_mplayer = "0.0+1.0rc2+svnr29789"
ANGSTROM_BLACKLIST_pn-bluez-libs = "bluez-libs 3.x has been replaced by bluez4"
ANGSTROM_BLACKLIST_pn-bluez-utils = "bluez-utils 3.x has been replaced by bluez4"
+ANGSTROM_BLACKLIST_pn-fso-apm = "regular apmd is good enough"
+
# we don't ship gtk-directfb by default
PREFERRED_PROVIDER_gtk+ ?= "gtk+"
PREFERRED_PROVIDER_gdk-pixbuf-loader-ani ?= "gtk+"
@@ -202,7 +206,7 @@ require conf/distro/include/angstrom${ARM_ABI}.inc
# If we're using an .ipk based rootfs, we want to have opkg-nogpg installed so postinst script can run
# We also take this opportunity to inject angstrom-version and the feed configs into the rootfs
-IPKG_VARIANT = "opkg-nogpg angstrom-version ${ANGSTROM_FEED_CONFIGS}"
+IPKG_VARIANT = "opkg-nogpg-nocurl angstrom-version ${ANGSTROM_FEED_CONFIGS}"
# Select xserver-xorg as default, since kdrive has been EOL'ed
XSERVER ?= "xserver-xorg xf86-input-evdev xf86-input-keyboard xf86-input-mouse xf86-video-fbdev"
diff --git a/conf/distro/include/angstrom-2008-preferred-versions.inc b/conf/distro/include/angstrom-2008-preferred-versions.inc
index b3021a7981..03ba67f2f2 100644
--- a/conf/distro/include/angstrom-2008-preferred-versions.inc
+++ b/conf/distro/include/angstrom-2008-preferred-versions.inc
@@ -15,7 +15,7 @@ PREFERRED_VERSION_gtkmm = "2.18.1"
PREFERRED_VERSION_hal = "0.5.13"
PREFERRED_VERSION_libgemwidget = "1.0"
PREFERRED_VERSION_libgpephone = "0.4"
-PREFERRED_VERSION_libsdl-x11 = "1.2.11"
+PREFERRED_VERSION_libsdl-x11 = "1.2.14"
PREFERRED_VERSION_libtool = "2.2.6a"
PREFERRED_VERSION_libtool-native = "2.2.6a"
PREFERRED_VERSION_libtool-cross = "2.2.6a"
@@ -33,6 +33,8 @@ PREFERRED_VERSION_udev = "141"
UDEV_GE_141 = "1"
PREFERRED_VERSION_usbutils = "0.82"
+PREFERRED_VERSION_util-macros-native = "1.3.0"
+PREFERRED_VERSION_util-macros = "1.3.0"
PREFERRED_VERSION_wpa-supplicant = "0.6.9"
PREFERRED_VERSION_xserver-kdrive = "1.4.0.90"
diff --git a/conf/distro/include/angstrom-glibc.inc b/conf/distro/include/angstrom-glibc.inc
index c8607c6001..25ba8510a2 100644
--- a/conf/distro/include/angstrom-glibc.inc
+++ b/conf/distro/include/angstrom-glibc.inc
@@ -11,7 +11,7 @@ TARGET_OS .= "${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'a
# perl has some problems, see http://bugs.openembedded.net/show_bug.cgi?id=1616
# [23:00] oxo: glibc (any version) on sparc does not like (repeat me) "-Os"
-FULL_OPTIMIZATION = "-fexpensive-optimizations -frename-registers -fomit-frame-pointer -Os -ggdb3"
+FULL_OPTIMIZATION = "-fexpensive-optimizations -frename-registers -fomit-frame-pointer -O2 -ggdb3"
FULL_OPTIMIZATION_pn-perl = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O1"
FULL_OPTIMIZATION_pn-glibc = "-fexpensive-optimizations -fomit-frame-pointer -O2"
diff --git a/conf/distro/include/angstrom.inc b/conf/distro/include/angstrom.inc
index 669c8ada3c..6e65285e99 100644
--- a/conf/distro/include/angstrom.inc
+++ b/conf/distro/include/angstrom.inc
@@ -202,7 +202,5 @@ SEPPUKU_COMPONENT = "org.openembedded.dev"
OESTATS_SERVER ?= "tinderbox.openembedded.org"
-
-
# We want images supporting the following features (for task-base)
-DISTRO_FEATURES = "nfs smbfs wifi ppp alsa bluetooth ext2 vfat irda pcmcia usbgadget usbhost pci"
+DISTRO_FEATURES = "nfs smbfs wifi ppp alsa bluetooth ext2 vfat irda pcmcia usbgadget usbhost pci pam"
diff --git a/conf/distro/include/fso-autorev.inc b/conf/distro/include/fso-autorev.inc
index ba8cdac1f5..70f8f9019b 100644
--- a/conf/distro/include/fso-autorev.inc
+++ b/conf/distro/include/fso-autorev.inc
@@ -2,9 +2,11 @@
SRCREV_pn-dbus-hlid = "${AUTOREV}"
SRCREV_pn-frameworkd = "${AUTOREV}"
SRCREV_pn-frameworkd-devel = "${AUTOREV}"
+SRCREV_pn-fsodatad = "${AUTOREV}"
SRCREV_pn-fsodeviced = "${AUTOREV}"
SRCREV_pn-fsogsmd = "${AUTOREV}"
-SRCREV_pn-fsogpsd = "${AUTOREV}"
+SRCREV_pn-fsolocationd = "${AUTOREV}"
+SRCREV_pn-fsomusicd = "${AUTOREV}"
SRCREV_pn-fsonetworkd = "${AUTOREV}"
SRCREV_pn-fsotimed = "${AUTOREV}"
SRCREV_pn-fsousaged = "${AUTOREV}"
diff --git a/conf/distro/include/preferred-shr-versions.inc b/conf/distro/include/preferred-shr-versions.inc
new file mode 100644
index 0000000000..f4ddf2fa25
--- /dev/null
+++ b/conf/distro/include/preferred-shr-versions.inc
@@ -0,0 +1,42 @@
+# Upgraded
+# use newer version then preferred by default
+PREFERRED_VERSION_boost = "1.40.0"
+PREFERRED_VERSION_dbus = "1.3.0"
+PREFERRED_VERSION_autoconf = "2.63"
+PREFERRED_VERSION_autoconf-native = "2.63"
+PREFERRED_VERSION_libmikmod = "3.2.0-beta2"
+PREFERRED_VERSION_mtd-utils-native = "1.2.0+git"
+PREFERRED_VERSION_strace = "4.5.15"
+
+# We need this for jamvm
+PREFERRED_VERSION_classpath = "0.98"
+PREFERRED_VERSION_classpath-native = "0.98"
+
+# we need new headers for libc, now OLDEST_KERNEL_linux-gnueabi = "2.6.24"
+# and 2.6.31 for fsodeviced
+PREFERRED_VERSION_linux-libc-headers = "2.6.31"
+
+# override EFL_SRCREV from sane-srcrevs.inc
+# now is EFL_SRCREV newer in sane-srcrevs.inc
+# EFL_SRCREV ?= "43898"
+
+# specifically set an openssh version
+# NOTE: whenever changing the version here make sure
+# to check we won't loose our specific config !!!
+PREFERRED_VERSION_openssh = "5.2p1"
+
+# upgrades used in Angstrom
+PREFERRED_VERSION_gtk+ = "2.18.3"
+PREFERRED_VERSION_hal = "0.5.13"
+PREFERRED_VERSION_libtool = "2.2.6a"
+PREFERRED_VERSION_libtool-native = "2.2.6a"
+PREFERRED_VERSION_libtool-cross = "2.2.6a"
+PREFERRED_VERSION_libtool-sdk = "2.2.6a"
+PREFERRED_VERSION_udev = "141"
+PREFERRED_VERSION_usbutils = "0.82"
+PREFERRED_VERSION_wpa-supplicant = "0.6.9"
+UDEV_GE_141 = "1"
+
+# Downgraded
+# python-pygtk_2.16.0 is accessing non-existent /usr/share/pygobject/2.0/codegen/codegen.py
+PREFERRED_VERSION_python-pygtk = "2.10.4"
diff --git a/conf/distro/include/preferred-slugos-versions.inc b/conf/distro/include/preferred-slugos-versions.inc
index 0eae85b686..5ec80ffeb1 100644
--- a/conf/distro/include/preferred-slugos-versions.inc
+++ b/conf/distro/include/preferred-slugos-versions.inc
@@ -65,3 +65,6 @@ PREFERRED_VERSION_udev ?= "118"
# boost 1.36 won't build
PREFERRED_VERSION_boost ?= "1.33.1"
+
+# pulseaudio 0.9.19 is broken (ASM errors during do_compile):
+PREFERRED_VERSION_pulseaudio ?= "0.9.15"
diff --git a/conf/distro/include/sane-srcdates.inc b/conf/distro/include/sane-srcdates.inc
index 422145c8c2..4ea318fdbb 100644
--- a/conf/distro/include/sane-srcdates.inc
+++ b/conf/distro/include/sane-srcdates.inc
@@ -41,6 +41,7 @@ SRCDATE_rdesktop ?= "20080917"
SRCDATE_roadster ?= "20060814"
SRCDATE_rosetta ?= "20090514"
SRCDATE_sctzap ?= "20060814"
+SRCDATE_squashfs ?= "20091110"
SRCDATE_tslib ?= "20051101"
SRCDATE_waimea ?= "20060814"
SRCDATE_xcompmgr ?= "20060814"
diff --git a/conf/distro/include/sane-srcrevs-fso.inc b/conf/distro/include/sane-srcrevs-fso.inc
index b86963ff29..f99b44945c 100644
--- a/conf/distro/include/sane-srcrevs-fso.inc
+++ b/conf/distro/include/sane-srcrevs-fso.inc
@@ -1,41 +1,46 @@
# To be included from sane-srcrevs.inc
# FSO Projects -- Cornucopia
-FSO_CORNUCOPIA_SRCREV ?= "a41cae9df1af4fc710c701ac01016d3668dd5fba"
-SRCREV_pn-fsodeviced ?= "${FSO_CORNUCOPIA_SRCREV}"
+FSO_CORNUCOPIA_SRCREV ?= "1dcf546fb0423930f938129a51f538874c172226"
+SRCREV_pn-fso-apm ?= "${FSO_CORNUCOPIA_SRCREV}"
+SRCREV_pn-fsodatad ?= "1b329ccc044eb087a6f8a7c7c61022c162f51ab2"
+SRCREV_pn-fsodeviced ?= "1b329ccc044eb087a6f8a7c7c61022c162f51ab2"
SRCREV_pn-fsogsmd ?= "${FSO_CORNUCOPIA_SRCREV}"
-SRCREV_pn-fsogpsd ?= "${FSO_CORNUCOPIA_SRCREV}"
+SRCREV_pn-fsolocationd ?= "${FSO_CORNUCOPIA_SRCREV}"
+SRCREV_pn-fsomusicd ?= "1b329ccc044eb087a6f8a7c7c61022c162f51ab2"
SRCREV_pn-fsonetworkd ?= "${FSO_CORNUCOPIA_SRCREV}"
SRCREV_pn-fsotimed ?= "${FSO_CORNUCOPIA_SRCREV}"
-SRCREV_pn-fsousaged ?= "${FSO_CORNUCOPIA_SRCREV}"
-SRCREV_pn-libfsoframework ?= "${FSO_CORNUCOPIA_SRCREV}"
+SRCREV_pn-fsousaged ?= "fe2ec3260b73233c414de584aa1b4a5e49c24a0d"
+SRCREV_pn-libfsobasics ?= "18d4114d295617c6fb611f3c804e1980b896fc14"
+SRCREV_pn-libfsoframework ?= "690dc75efcc8e4dbcb53e361d48c54e104955921"
SRCREV_pn-libfsotransport ?= "${FSO_CORNUCOPIA_SRCREV}"
SRCREV_pn-libfsoresource ?= "${FSO_CORNUCOPIA_SRCREV}"
-SRCREV_pn-misc-vapi ?= "${FSO_CORNUCOPIA_SRCREV}"
# FSO Projects -- Misc
-SRCREV_pn-dbus-hlid ?= "39e804f28808247df2573788cb99897d4d765e69"
-SRCREV_pn-frameworkd ?= "a2dfde0fb46a745f5c07e6a1ab44e4b95b7dde80"
-SRCREV_pn-fso-abyss ?= "8ce3c6e40c4852de7dcca502f65784f6b18ca6bf"
-SRCREV_pn-fso-term ?= "e0d92222e3e5a62025089c60a625f1836c510915"
-SRCREV_pn-fso-gpsd ?= "78fe48dffb923175bde9f0aabc3500a9264a57e0"
+SRCREV_pn-dbus-hlid ?= "5df7f49fe8881804aaab544a569fd164c3e93afb"
+SRCREV_pn-frameworkd ?= "d48bd43c430322b26744e31829f9c76e9b725819"
+SRCREV_pn-frameworkd-config-shr_FSO_REV ?= ${SRCREV_pn-frameworkd}
+SRCREV_pn-fso-abyss ?= "7f271311e2e0b63235139859169bd248920ade30"
+SRCREV_pn-fso-term ?= "aa0b9c26dee3918a5e9d2809bb36335bda276a0d"
+SRCREV_pn-fso-gpsd ?= "39e810899110a9bb302cf2064e1c0f73541fb4e6"
SRCREV_pn-fso-gsm0710muxd ?= "abcbcd7cc532a8834906de3fc24c8f8fe7643cd4"
-SRCREV_pn-fso-monitord ?= "eb8fb32d52d19c5aa9284c6cc540dd40bb924c9d"
-SRCREV_pn-fso-sounds ?= "cc46b55131fc07a415bf1bd62ce98f73344489cb"
-SRCREV_pn-fso-specs ?= "66c992afd6c551ffd8fc63d7201c5cce269a4d77"
+SRCREV_pn-fso-monitord ?= "b4ae1e9b10e710042624c2cf1a15b91a7d5b1d44"
+SRCREV_pn-fso-sounds ?= "3a4767ec01988bd0fd8f72f0c35d6d36e5fbc815"
+SRCREV_pn-fso-specs ?= "14de522adbea80416df811085b3112cd1d5d5336"
SRCREV_pn-gsmd2 ?= "c16883a079aeff8780e5d461ec4e8348537ab4d8"
-SRCREV_pn-libeflvala ?= "c566847e000fad132225aefd854b81ae713eaa82"
-SRCREV_pn-libfso-glib ?= "b855b0297ff68bb505a02d9b4b13914ca558cd59"
-SRCREV_pn-libframeworkd-glib ?= "680276e4cddabeb1edd088ddd421f363dd106a50"
-SRCREV_pn-libgsm0710 ?= "3bb80ba6cc9f86ed3996f88bfa2986cc572489d6"
-SRCREV_pn-libgsm0710mux ?= "b74d4615374abb856441e4a416726fb3e8d7835b"
-FSO_PYTHONHELPERS_SRCREV ?= "6d7f51b5189a00a07d9b88100a565f46fcb62644"
+SRCREV_pn-libeflvala ?= "d07db4fbd24c9d5dfc9b1fd5024fd651b02f123e"
+SRCREV_pn-libfso-glib ?= "9a627aa1c33f5a46ae4316fc274126ca5f37e979"
+SRCREV_pn-libframeworkd-glib ?= "dc5409fbf9d2d22a7fa871199bb66da5ac6f5084"
+SRCREV_pn-libgsm0710 ?= "cd564c8782f018e0d65fb8716c99a6040b5bd166"
+SRCREV_pn-libgsm0710mux ?= "e81ed512ec86e31d0d0119826afa9d1302651693"
+SRCREV_pn-libpersistence ?= "26180fd3c0fe4eb6abb7440f10e51d997719b97a"
+FSO_PYTHONHELPERS_SRCREV ?= "63b1dff1bc8ac22efabcee8a90e957c3b2423317"
SRCREV_pn-mickeydbus ?= "${FSO_PYTHONHELPERS_SRCREV}"
SRCREV_pn-mickeyterm ?= "${FSO_PYTHONHELPERS_SRCREV}"
SRCREV_pn-multicat ?= "${FSO_PYTHONHELPERS_SRCREV}"
SRCREV_pn-python-pyrtc ?= "${FSO_PYTHONHELPERS_SRCREV}"
-SRCREV_pn-fso-apm ?= "${FSO_PYTHONHELPERS_SRCREV}"
-SRCREV_pn-vala-dbus-binding-tool-native ?= "0d221b688bfb51e0607b7f4e6e03bf96d13d5d44"
-SRCREV_pn-vala-terminal ?= "2f849c5690d834a69f6c0693cc159573b3aa78d"
-SRCREV_pn-vala-native ?= "6cf030120cd7f6a76a5d766d7420aea847e02cfd"
+SRCREV_pn-pycd ?= "${FSO_PYTHONHELPERS_SRCREV}"
+SRCREV_pn-vala-dbus-binding-tool-native ?= "324a78c0cab484535ce5a7a33436e9c62311297d"
+SRCREV_pn-vala-terminal ?= "932285d72e26b965c488f8aa99fe51f7a34231ad"
+SRCREV_pn-vala-native ?= "2f14aed36765c842fe7b4035ba564d2c023ef0b0"
SRCREV_pn-zhone ?= "d654b3d15500a56c8e987e4d2cc2f8eef70b78c0"
diff --git a/conf/distro/include/sane-srcrevs.inc b/conf/distro/include/sane-srcrevs.inc
index b57ea4d673..8be69c06c9 100644
--- a/conf/distro/include/sane-srcrevs.inc
+++ b/conf/distro/include/sane-srcrevs.inc
@@ -12,44 +12,77 @@
# you know what that means? like... a, b, c, d, e, f, g...
SRCREV_pn-accelges ?= "206"
+SRCREV_pn-advancedcaching ?= "9c3661f5573d2dd712437f1590070153d12e4c02"
SRCREV_pn-aircrack-ng ?= "802"
+SRCREV_pn-alsa-scenarii-shr ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
SRCREV_pn-alsa-scenario ?= "8bd7f83d847424eb44704cf1649974b2fda8d8f1"
SRCREV_pn-app-restarter ?= "4552"
SRCREV_pn-assassin ?= "268"
SRCREV_pn-assassin-thumbnail ?= "4690"
SRCREV_pn-aufs2-util ?= "f35ba2292fe40aa94aa83713e0b2719f35a25768"
+SRCREV_pn-babiloo-efl ?= "296"
SRCREV_pn-bfin-uclibc ?= "1857"
+SRCREV_pn-blipomoko ?= "93295f36f7b45c691df247cb2a65227facf13654"
SRCREV_pn-bootchart-lite ?= "4"
+SRCREV_pn-bt-configure ?= "9654c88ff74bca89cf747937cbec67421d2f1cbc"
SRCREV_pn-bubble-keyboard ?= "194"
+SRCREV_pn-calc ?= "cff7c833d4fce0d39de0812bfc9ed9e0eb8fac09"
SRCREV_pn-calibrateproto ?= "1da6fd1e2c7a49648245c98481fabea8b9690a8c"
SRCREV_pn-cdparanoia ?= "16684"
+SRCREV_pn-clutter ?= "3240"
SRCREV_pn-clutter-box2d ?= "3197"
SRCREV_pn-clutter-cairo ?= "3210"
SRCREV_pn-clutter-gst ?= "3188"
+SRCREV_pn-clutter-gtk ?= "70f4b0cbd568dfa265484a03be3bd08ad15ed12e"
SRCREV_pn-clutter-gtk-0.6 ?= "2ba362a1a223c2b28541030a80aa11191615340a"
SRCREV_pn-clutter-gtk-0.8 ?= "7d3c3230376e731c06c21afa9d8c1d44dbea27cd"
-SRCREV_pn-clutter-gtk ?= "70f4b0cbd568dfa265484a03be3bd08ad15ed12e"
-SRCREV_pn-clutter ?= "3240"
SRCREV_pn-comic-reader ?= "54"
SRCREV_pn-contact ?= "1410"
SRCREV_pn-dasher-gpe ?= "1251"
-SRCREV_pn-dbus-c++-native ?= "13131"
SRCREV_pn-dbus-c++ ?= "13131"
+SRCREV_pn-dbus-c++-native ?= "13131"
SRCREV_pn-dfu-util ?= "4160"
SRCREV_pn-dfu-util-native ?= "4160"
+SRCREV_pn-disko ?= "f52597b8d5d584811cbe8f9e0bf25ea372526953"
SRCREV_pn-diversity-daemon ?= "571"
SRCREV_pn-diversity-radar ?= "453"
+SRCREV_pn-e-tasks ?= "14"
+SRCREV_pn-e-wm-config-illume-shr ?= "bbcec18f0ebd47e4f6eea88b9b774edf7400e752"
+SRCREV_pn-e-wm-illume-dict-pl ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
+SRCREV_pn-e-wm-menu-shr ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
+SRCREV_pn-e-wm-sysactions-shr ?= "bbcec18f0ebd47e4f6eea88b9b774edf7400e752"
+SRCREV_pn-e-wm-theme-illume-gry ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
+SRCREV_pn-e-wm-theme-illume-neo ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
+SRCREV_pn-e-wm-theme-illume-niebiee ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
+SRCREV_pn-e-wm-theme-illume-shr ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
+SRCREV_pn-e-wm-theme-illume-sixteen ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
+SRCREV_pn-ebrainy ?= "21"
SRCREV_pn-eds-dbus ?= "736"
+SRCREV_pn-elementary-theme-gry ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
+SRCREV_pn-elementary-theme-neo ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
+SRCREV_pn-elementary-theme-niebiee ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
+SRCREV_pn-elementary-theme-sixteen ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
+SRCREV_pn-elf2flt ?= "1786"
+SRCREV_pn-elmdentica ?= "171"
SRCREV_pn-enlazar ?= "37"
+SRCREV_pn-enotes ?= "19"
+SRCREV_pn-epdfview ?= "345"
+SRCREV_pn-epiphany ?= "7837"
SRCREV_pn-essential-dialer ?= "194"
+SRCREV_pn-etk-theme-neo ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
+SRCREV_pn-etk-theme-ninja ?= "5"
+SRCREV_pn-etk-theme-shr ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
SRCREV_pn-ezx-boot-usb-native ?= "2371"
SRCREV_pn-ezx-gen-blob ?= "2426"
SRCREV_pn-ezxd ?= "2074"
-SRCREV_pn-elf2flt ?= "1786"
-SRCREV_pn-epiphany ?= "7837"
-SRCREV_pn-etk-theme-ninja ?= "5"
SRCREV_pn-fbgrab-viewer-native ?= "1943"
+SRCREV_pn-ffalarms ?= "67"
SRCREV_pn-flashrom ?= "3682"
+SRCREV_pn-fltk2 ?= "6671"
+SRCREV_pn-frameworkd-config-shr ?= "cb4159e653d770da8e8f9fc9a65135839533d4c5"
+SRCREV_pn-frameworkd-config-shr_SHR_REV ?= ${SRCREV_pn-frameworkd-config-shr}
+SRCREV_pn-fsod ?= "2a33e5ffe96c611e6a6b8b6c33d2a83ba656f55b"
+SRCREV_pn-fsoraw ?= "20"
SRCREV_pn-fstests ?= "204"
SRCREV_pn-gabriel ?= "38"
SRCREV_pn-gabriel-native ?= "38"
@@ -60,36 +93,64 @@ SRCREV_pn-gcc-cross-initial ?= ${GCCREV}
SRCREV_pn-gcc-cross-intermediate ?= ${GCCREV}
SRCREV_pn-gcc-cross-sdk ?= ${GCCREV}
SRCREV_pn-gconf-dbus ?= "641"
+SRCREV_pn-glamo-dri-tests ?= "080b8db3d9dbfae38ebb00439887b5535ab1d380"
SRCREV_pn-gnet ?= "495"
SRCREV_pn-gpe-conf ?= "9900"
SRCREV_pn-gpe-contacts ?= "9312"
SRCREV_pn-gpe-gallery ?= "9376"
SRCREV_pn-gpe-mini-browser2 ?= "9900"
SRCREV_pn-gpe-sketchbook ?= "9547"
+SRCREV_pn-gpe-theme-neo ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
SRCREV_pn-gridpad ?= "194"
-SRCREV_pn-gsmd2 ?= "963f34df8fa3ff4b301079dcf86e9acea6b6fe0f"
+SRCREV_pn-gtk-theme-neo ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
SRCREV_pn-gtkhtml2 ?= "1158"
SRCREV_pn-gypsy ?= "134"
SRCREV_pn-hildon-1 ?= "14429"
+SRCREV_pn-icon-theme-neo ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
+SRCREV_pn-illume-keyboard-arabic ?= "89e689967d8a9e29d5a3bf84bfa32214f438a323"
+SRCREV_pn-illume-keyboard-browse ?= "89e689967d8a9e29d5a3bf84bfa32214f438a323"
+SRCREV_pn-illume-keyboard-danish ?= "89e689967d8a9e29d5a3bf84bfa32214f438a323"
+SRCREV_pn-illume-keyboard-default-alt ?= "89e689967d8a9e29d5a3bf84bfa32214f438a323"
+SRCREV_pn-illume-keyboard-dutch ?= "89e689967d8a9e29d5a3bf84bfa32214f438a323"
+SRCREV_pn-illume-keyboard-dvorak ?= "89e689967d8a9e29d5a3bf84bfa32214f438a323"
+SRCREV_pn-illume-keyboard-french ?= "89e689967d8a9e29d5a3bf84bfa32214f438a323"
+SRCREV_pn-illume-keyboard-german ?= "89e689967d8a9e29d5a3bf84bfa32214f438a323"
+SRCREV_pn-illume-keyboard-hebrew ?= "89e689967d8a9e29d5a3bf84bfa32214f438a323"
+SRCREV_pn-illume-keyboard-numeric-alt ?= "89e689967d8a9e29d5a3bf84bfa32214f438a323"
+SRCREV_pn-illume-keyboard-russian ?= "89e689967d8a9e29d5a3bf84bfa32214f438a323"
+SRCREV_pn-illume-keyboard-russian-terminal ?= "89e689967d8a9e29d5a3bf84bfa32214f438a323"
SRCREV_pn-illume-theme-asu ?= "4881"
SRCREV_pn-illume-theme-freesmartphone ?= "b1b0f6adc59e6f72a3929771058e3750bf181bc5"
+SRCREV_pn-intone ?= "66"
+SRCREV_pn-intone-video ?= "9"
SRCREV_pn-intuition ?= "194"
SRCREV_pn-kismet ?= "2285"
SRCREV_pn-kismet-newcore ?= "2285"
SRCREV_pn-libcalenabler2 ?= "1410"
+SRCREV_pn-libdrm ?= "89cc98c0d5c1b43a883f13210c472339dde1a4cf"
+SRCREV_pn-libdrm_om-gta02 ?= "67a3eb2188a38a5000af0ad4ac3a0eba43cab574"
SRCREV_pn-libefso ?= "194"
SRCREV_pn-libfakekey ?= "1455"
+SRCREV_pn-libframeworkd-phonegui ?= "9d7ca1cecb93022e5b890cd87756ac6f072710ca"
+SRCREV_pn-libframeworkd-phonegui-efl ?= "9d7ca1cecb93022e5b890cd87756ac6f072710ca"
+SRCREV_pn-libframeworkd-phonegui-efl2 ?= "917226025c67b75def91e98ea923c2e550474a5b"
+SRCREV_pn-libframeworkd-phonegui-efl-theme-neo ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
SRCREV_pn-libgdbus ?= "aeab6e3c0185b271ca343b439470491b99cc587f"
-SRCREV_pn-libgee ?= "0bddeeefb3bd5b003d77301705dbad181cddcaf6"
-SRCREV_pn-libgee-native ?= "0bddeeefb3bd5b003d77301705dbad181cddcaf6"
+SRCREV_pn-libgee ?= "c21925bf1b714a2aa395192f7adbaeecf7a0e146"
+SRCREV_pn-libgee-native ?= "c21925bf1b714a2aa395192f7adbaeecf7a0e146"
SRCREV_pn-libgsmd ?= "4505"
SRCREV_pn-libiac ?= "1590"
-SRCREV_pn-libjana = "749"
+SRCREV_pn-libjana ?= "749"
+SRCREV_pn-libmodulo ?= "7d2f657d248bd86377e66c329aa6826459d406da"
SRCREV_pn-libmokogsmd2 ?= "4334"
SRCREV_pn-libmokojournal2 ?= "3473"
SRCREV_pn-libmokopanelui2 ?= "4568"
-SRCREV_pn-libmokoui2 ?= "4342"
+SRCREV_pn-libmokoui2 ?= "4695"
+SRCREV_pn-libnl2 ?= "dc273a12da9f0116e80fa81d63beb820e632dd17"
SRCREV_pn-libowl ?= "277"
+SRCREV_pn-libphone-ui ?= "4455bce1643fcfba0538b17242f47935b869b159"
+SRCREV_pn-libphone-ui-shr ?= "29363d678d77182bde8c617ab7c56114150d6ff9"
+SRCREV_pn-libphone-utils ?= "f1377146556da8a68a84cf10a5f516c5f7b6015b"
SRCREV_pn-librfid ?= "2094"
SRCREV_pn-libsnmp-perl ?= "17367"
SRCREV_pn-libsynthesis ?= "70f0065aa3b085bdf059830f95e5b5766eecb0bb"
@@ -97,18 +158,22 @@ SRCREV_pn-libw100 ?= "47"
SRCREV_pn-libxcalibrate ?= "209d83af61ed38a002c8096377deac292b3e396c"
SRCREV_pn-libxosd ?= "627"
SRCREV_pn-linux-bfin ?= "3758"
+SRCREV_pn-linux-eten ?= "ab2d414f4f13816af0ec0401b608133ca946624a"
SRCREV_pn-linux-hackndev-2.6 ?= "1308"
SRCREV_pn-linux-ixp4xx ?= "1089"
SRCREV_pn-linux-openmoko-2.6.24 ?= "fb42ce6724576fc173faf8abfb04aa2c36d213b7"
-SRCREV_pn-linux-openmoko-2.6.28 ?= "8aa6cdde17381dd8865d10ba15ee62c092ec2ba5"
+SRCREV_pn-linux-openmoko-2.6.28 ?= "8c65792a5c83c76d662a617a7c4e1ae8104bb6a5"
+SRCREV_pn-linux-openmoko-2.6.31 ?= "4331f6c95fadc37ea89359d6afb915be838790f9"
SRCREV_pn-linux-openmoko-devel ?= "b9aa5bf345a0b802af0d10b6cf1079738fe4fd12"
-SRCREV_pn-linux-eten ?= "ab2d414f4f13816af0ec0401b608133ca946624a"
+SRCREV_pn-linux-openmoko-shr-devel ?= "b90406de472c1aa5371ab593a2bb79136d5de658"
+SRCREV_pn-linux-openmoko-shr-drm-devel ?= "dd6196f5cc0cd707e7f694f52d7e847e066a1967"
+SRCREV_pn-linux-sgh-i900 ?= "7e5f8bd3864485e5fc66cb946e09f18b5a32cebc"
SRCREV_pn-llvm-gcc4 ?= "374"
SRCREV_pn-llvm-gcc4-cross ?= "374"
SRCREV_pn-madbutterfly ?= "ecd1842714b5e982f3138cbdd358517d57be6aa3"
SRCREV_pn-maemo-mapper ?= "118"
-SRCREV_pn-mamonaim_e_applet ?= "51c747849f71981bd1dc9eb1807df4993ad97d04"
SRCREV_pn-mamona_input_methods ?= "7e6a8cc947689a045d0fba90015da599275347d9"
+SRCREV_pn-mamonaim_e_applet ?= "51c747849f71981bd1dc9eb1807df4993ad97d04"
SRCREV_pn-matchbox-config-gtk ?= "1614"
SRCREV_pn-matchbox-desktop-2 ?= "2096"
SRCREV_pn-matchbox-keyboard ?= "1910"
@@ -118,29 +183,36 @@ SRCREV_pn-matchbox-panel-2-icon-themes ?= "1907"
SRCREV_pn-matchbox-stroke ?= "1820"
SRCREV_pn-matchbox-terminal ?= "1612"
SRCREV_pn-matchbox-wm-2 ?= "2087"
+SRCREV_pn-mesa-dri ?= "c02cd82b463661def7842f910dc561313559df80"
+SRCREV_pn-mesa-dri_om-gta02 ?= "a8a1c12262998e5fa3a857eebf857c6d3a95f85e"
SRCREV_pn-midori ?= "400139644371c0b675723f9a986ddab4445a8794"
+SRCREV_pn-mobile-broadband-provider-info ?= "bc536218490377ccbd09c4e5858d37c91c2f03f7"
SRCREV_pn-moblin-proto ?= "8f2cb524fe06555182c25b4ba3202d7b368ac0ce"
SRCREV_pn-moko-gtk-engine ?= "4734"
SRCREV_pn-mokoko ?= "127"
+SRCREV_pn-mokonnect ?= "113"
SRCREV_pn-mpd-alsa ?= "6952"
SRCREV_pn-mplayer-maemo ?= "342"
-SRCREV_pn-multicat ?= "f894801916cc4d0e912e4553490dc215276c52a9"
+SRCREV_pn-msn-pecan ?= "e795b33b29d792f19fcf699275eb966dc68be257"
SRCREV_pn-multitap-pad ?= "373"
SRCREV_pn-mux ?= "72460e890dbb15edbf7dc193116be0dcf9794a8b"
SRCREV_pn-navit ?= "1096"
SRCREV_pn-neod ?= "4617"
+SRCREV_pn-neomis ?= "6"
SRCREV_pn-net-snmp ?= "17367"
SRCREV_pn-netsurf ?= "3859"
+SRCREV_pn-numberx ?= "4"
SRCREV_pn-numptyphysics ?= "109"
+SRCREV_pn-oh-puzzles ?= "22"
SRCREV_pn-ohm ?= "edfe25d49d67884bf004de7ae0724c162bb5e65e"
+SRCREV_pn-ologicd ?= "4a32af91a9479ebd4d1d39057354ac9904d74cbb"
SRCREV_pn-om-locations ?= "942e88a1b689ffe3f11a2d982cce389cc965b2ec"
+SRCREV_pn-om-neon ?= "68"
SRCREV_pn-om-settings ?= "74"
+SRCREV_pn-omgps ?= "109"
+SRCREV_pn-omoney ?= "29"
SRCREV_pn-ompower ?= "4727"
-SRCREV_pn-oh-puzzles ?= "22"
-SRCREV_pn-osb-browser ?= "125"
-SRCREV_pn-osb-jscore ?= "117"
-SRCREV_pn-osb-nrcit ?= "125"
-SRCREV_pn-osb-nrcore ?= "126"
+SRCREV_pn-omview ?= "34"
SRCREV_pn-openbsc ?= "d46299da00f923b24043aa37fa2bae17ffcc1ff7"
SRCREV_pn-openezx-kernel ?= "43b844d1d38f0343272d3f0f844f80666186c526"
SRCREV_pn-openmoko-agpsui ?= "7"
@@ -182,32 +254,43 @@ SRCREV_pn-openmoko-today2 ?= "4168"
SRCREV_pn-openmoko-today2-folders ?= "3704"
SRCREV_pn-openmoko-toolchain-scripts ?= "4913"
SRCREV_pn-openmoko-worldclock2 ?= "3365"
+SRCREV_pn-openmoocow ?= "39648419825cddfea1cb1321e552a12b71fede14"
SRCREV_pn-openocd ?= "517"
SRCREV_pn-openocd-native ?= "517"
-SRCREV_pn-opkg ?= "240"
-SRCREV_pn-opkg-native ?= "240"
-SRCREV_pn-opkg-sdk ?= "240"
+SRCREV_pn-opimd-utils ?= "0e7007fff120c8cc4c579c0c7e57883798e6d23e"
+SRCREV_pn-opkg ?= "439"
+SRCREV_pn-opkg-native ?= "439"
+SRCREV_pn-opkg-sdk ?= "439"
SRCREV_pn-opkg-utils ?= "4578"
SRCREV_pn-opkg-utils-native ?= "4595"
SRCREV_pn-oprofileui ?= "173"
+SRCREV_pn-osb-browser ?= "125"
+SRCREV_pn-osb-jscore ?= "117"
+SRCREV_pn-osb-nrcit ?= "125"
+SRCREV_pn-osb-nrcore ?= "126"
SRCREV_pn-packagekit ?= "96823118e98515dd41748e8c7bdb9cf7b1d4a95f"
-SRCREV_pn-paroli ?= "9279b50ed72a94100d7f0f49090043134302f2eb"
+SRCREV_pn-paroli ?= "bb9fb1969acdfbaa48b55902675a6d8949014c6d"
+SRCREV_pn-phonefsod ?= "beb2fe989bfbf6b180a58d247db302082504fa01"
+SRCREV_pn-phoneui-apps ?= "c27e620302d0ea956da777f76a4aa217ae8366c6"
+SRCREV_pn-phoneuid ?= "19f40dcc6fdb442ea9f4d7521c60d68f4042977c"
SRCREV_pn-portaudio-v19 ?= "1387"
SRCREV_pn-psplash ?= "249"
SRCREV_pn-pty-forward-native ?= "a41cae9df1af4fc710c701ac01016d3668dd5fba"
SRCREV_pn-pyefl-sudoku ?= "49"
SRCREV_pn-pygsm ?= "976477f6b403f422b4ea730f71ebf409f6671141"
+SRCREV_pn-pyphonelog ?= "45783c7fd5ec274421bf87a5cdb372c122370fda"
+SRCREV_pn-pythm ?= "19"
SRCREV_pn-python-coherence ?= "1161"
SRCREV_pn-python-connexion ?= "1439"
SRCREV_pn-python-formencode ?= "3148"
SRCREV_pn-python-gsmd ?= "148"
+SRCREV_pn-python-phoneutils ?= "f1377146556da8a68a84cf10a5f516c5f7b6015b"
SRCREV_pn-python-pycrypto ?= "d087280d7e9643a3e3f68f209932119fe6738b3c"
SRCREV_pn-python-pyyaml ?= "344"
QEMUSRCREV ?= "4242"
-SRCREV_pn-tslib ?= "77"
+SRCREV_pn-qemu ?= "${QEMUSRCREV}"
SRCREV_pn-qemu-native ?= "${QEMUSRCREV}"
SRCREV_pn-qemu-sdk ?= "${QEMUSRCREV}"
-SRCREV_pn-qemu ?= "${QEMUSRCREV}"
SRCREV_pn-qi ?= "3b8513d8b3d9615ebda605de4bda18371aa3f359"
SRCREV_pn-remoko ?= "121"
SRCREV_pn-remoko-server ?= "121"
@@ -215,6 +298,24 @@ SRCREV_pn-s3c24xx-gpio ?= "4949"
SRCREV_pn-s3c64xx-gpio ?= "4949"
SRCREV_pn-serial-forward ?= "a41cae9df1af4fc710c701ac01016d3668dd5fba"
SRCREV_pn-settings-daemon ?= "2006"
+SRCREV_pn-shr-config ?= "37dd7ac950e2bfd438801faf34c29fccfdbbaccf"
+SRCREV_pn-shr-contacts ?= "9d7ca1cecb93022e5b890cd87756ac6f072710ca"
+SRCREV_pn-shr-dialer ?= "9d7ca1cecb93022e5b890cd87756ac6f072710ca"
+SRCREV_pn-shr-installer ?= "f17fa104639113fb0d3212b6bba366c092854cde"
+SRCREV_pn-shr-launcher ?= "87"
+SRCREV_pn-shr-messages ?= "9d7ca1cecb93022e5b890cd87756ac6f072710ca"
+SRCREV_pn-shr-settings ?= "b92390148cf0e979fd4c678a6633bb5e436d5763"
+SRCREV_pn-shr-specs ?= "a881cd133439737708d4d4d150500246ceff7c7d"
+SRCREV_pn-shr-splash ?= "9d7ca1cecb93022e5b890cd87756ac6f072710ca"
+SRCREV_pn-shr-splash-theme-dontpanic ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
+SRCREV_pn-shr-splash-theme-handy ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
+SRCREV_pn-shr-splash-theme-logo ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
+SRCREV_pn-shr-splash-theme-niebiee ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
+SRCREV_pn-shr-splash-theme-simple ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
+SRCREV_pn-shr-splash-theme-tux ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
+SRCREV_pn-shr-theme ?= "9d7ca1cecb93022e5b890cd87756ac6f072710ca"
+SRCREV_pn-shr-theme-gtk-e17lookalike ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
+SRCREV_pn-shr-today ?= "7b69649a9df0e85f0c0f7985fd1d93543c3b11e2"
SRCREV_pn-sjf2410-linux-native ?= "4268"
SRCREV_pn-socketcan-modules ?= "917"
SRCREV_pn-socketcan-utils-test ?= "917"
@@ -224,23 +325,25 @@ SRCREV_pn-table ?= "2191"
SRCREV_pn-tichy ?= "ab68d849502009cf3214df48ffa8075a10cc2177"
SRCREV_pn-tmut ?= "60"
SRCREV_pn-toscoterm ?= "f02add76f365a2fecd2dbefc230ceaab20244f96"
+SRCREV_pn-tslib ?= "77"
SRCREV_pn-u-boot-bug ?= "8674"
SRCREV_pn-u-boot-openmoko ?= "650149a53dbdd48bf6dfef90930c8ab182adb512"
SRCREV_pn-u-boot-openmoko-devel ?= "ba029a1426bfca169572bf80d50a8b190a6b0e19"
SRCREV_pn-usbpath ?= "3172"
SRCREV_pn-usbpath-native ?= "3172"
SRCREV_pn-webkit-efl ?= "3a5ee77664c898ed51a2b2d5759822f8c0a06472"
+SRCREV_pn-wesnoth ?= "39828"
SRCREV_pn-wlan-ng-modules ?= "1859"
SRCREV_pn-wlan-ng-utils ?= "1859"
SRCREV_pn-wmiconfig ?= "5394"
-SRCREV_pn-xf86-video-glamo ?= "25c4b0e80e93e04e6f7d4b8bca6d007fb9de6da8"
+SRCREV_pn-xf86-video-glamo ?= "9918e082104340da42eb92b6bdefce4d9266a6a4"
SRCREV_pn-xoo ?= "1971"
SRCREV_pn-xserver-kdrive-glamo ?= "9b28d998424c77fbc057dd3a022ccbb122793a52"
# Enlightenment Foundation Libraries
# Caution: This is not alphabetically, but (roughly) dependency-sorted.
# Please leave it like that.
-EFL_SRCREV ?= "43437"
+EFL_SRCREV ?= "43996"
SRCREV_pn-edb-native ?= "${EFL_SRCREV}"
SRCREV_pn-edb ?= "${EFL_SRCREV}"
SRCREV_pn-eina-native ?= "${EFL_SRCREV}"
@@ -274,6 +377,7 @@ SRCREV_pn-evolve-native ?= "${EFL_SRCREV}"
SRCREV_pn-evolve ?= "${EFL_SRCREV}"
SRCREV_pn-gevas2 ?= "${EFL_SRCREV}"
SRCREV_pn-imlib2 ?= "${EFL_SRCREV}"
+SRCREV_pn-libeweather ?= "${EFL_SRCREV}"
# Enlightenment Bindings
SRCREV_pn-eflpp ?= "${EFL_SRCREV}"
@@ -295,6 +399,7 @@ SRCREV_pn-elementary-alarm ?= "${EFL_SRCREV}"
SRCREV_pn-elementary-sms ?= "${EFL_SRCREV}"
SRCREV_pn-emphasis ?= "${EFL_SRCREV}"
SRCREV_pn-ephoto ?= "${EFL_SRCREV}"
+SRCREV_pn-eve ?= "${EFL_SRCREV}"
SRCREV_pn-examine ?= "${EFL_SRCREV}"
SRCREV_pn-exhibit ?= "${EFL_SRCREV}"
SRCREV_pn-expedite ?= "${EFL_SRCREV}"
diff --git a/conf/distro/include/sane-toolchain.inc b/conf/distro/include/sane-toolchain.inc
index c98234fb9a..7bf196371d 100644
--- a/conf/distro/include/sane-toolchain.inc
+++ b/conf/distro/include/sane-toolchain.inc
@@ -25,8 +25,8 @@ PREFERRED_GCC_VERSION_ppc405 ?= "4.4.1"
PREFERRED_GCC_VERSION_xilinx-ml403 ?= "4.1.1"
PREFERRED_GCC_VERSION_xilinx-ml403 ?= "4.1.1"
-# This is unrelated to the kernel version, but userspace apps (e.g. HAL) require a recent version to build against
-PREFERRED_VERSION_linux-libc-headers ?= "2.6.23"
+# This is unrelated to the kernel version, but glibc and some userspaceapps require a recent version to build against
+PREFERRED_VERSION_linux-libc-headers ?= "2.6.30"
# Uncomment this if want need to build an armv7a kernel with CSL toolchain (<2.6.27 don't boot with mainline gcc)
#KERNEL_CCSUFFIX_armv7a= "-4.2.1+csl-arm-2007q3-53"
diff --git a/conf/distro/include/shr-autorev-unstable.inc b/conf/distro/include/shr-autorev-unstable.inc
deleted file mode 100644
index 5e7a0ddfa3..0000000000
--- a/conf/distro/include/shr-autorev-unstable.inc
+++ /dev/null
@@ -1,128 +0,0 @@
-
-# SHR - override revs for shr-unstable
-
-
-# KERNEL
-SRCREV_pn-linux-openmoko-shr-devel = "${AUTOREV}"
-
-PREFERRED_VERSION_vala-native = "0.7.4+0.7.5-fso2"
-
-
-# FSO stuff
-SRCREV_pn-dbus-hlid = "${AUTOREV}"
-SRCREV_pn-frameworkd = "${AUTOREV}"
-SRCREV_pn-frameworkd-config-shr = "${AUTOREV}"
-SRCREV_pn-frameworkd-config-shr_FSO_REV = "${AUTOREV}"
-SRCREV_pn-frameworkd-config-shr_SHR_REV = "${AUTOREV}"
-SRCREV_pn-fsod = "${AUTOREV}"
-SRCREV_pn-fsodeviced = "${AUTOREV}"
-SRCREV_pn-fsonetworkd = "${AUTOREV}"
-SRCREV_pn-fsousaged = "${AUTOREV}"
-SRCREV_pn-fsoraw = "${AUTOREV}"
-SRCREV_pn-fso-abyss = "${AUTOREV}"
-SRCREV_pn-fso-apm = "${AUTOREV}"
-SRCREV_pn-fso-term = "${AUTOREV}"
-SRCREV_pn-fso-gsm0710muxd = "${AUTOREV}"
-SRCREV_pn-fso-gpsd = "${AUTOREV}"
-SRCREV_pn-fso-monitord = "${AUTOREV}"
-SRCREV_pn-fso-sounds = "${AUTOREV}"
-SRCREV_pn-fso-specs = "${AUTOREV}"
-SRCREV_pn-fso-term = "${AUTOREV}"
-SRCREV_pn-gsmd2 = "${AUTOREV}"
-SRCREV_pn-illume-theme-freesmartphone = "${AUTOREV}"
-SRCREV_pn-libascenario = "${AUTOREV}"
-SRCREV_pn-libfsobasics = "${AUTOREV}"
-SRCREV_pn-libfsoframework = "${AUTOREV}"
-SRCREV_pn-libfsotransport = "${AUTOREV}"
-SRCREV_pn-libframeworkd-glib = "${AUTOREV}"
-SRCREV_pn-libfso-glib = "${AUTOREV}"
-SRCREV_pn-libgsm0710 = "${AUTOREV}"
-SRCREV_pn-libgsm0710mux = "${AUTOREV}"
-SRCREV_pn-mickeydbus = "${AUTOREV}"
-SRCREV_pn-mickeyterm = "${AUTOREV}"
-SRCREV_pn-misc-vapi = "${AUTOREV}"
-SRCREV_pn-python-pytrc = "${AUTOREV}"
-SRCREV_pn-vala-dbus-binding-tool-native = "6071da6ad645e1200eb2aee88d254ada348d361b"
-SRCREV_pn-vala = "${AUTOREV}"
-SRCREV_pn-zhone = "${AUTOREV}"
-
-
-# SHR stuff
-SRCREV_pn-libhito = "${AUTOREV}"
-SRCREV_pn-neod = "${AUTOREV}"
-SRCREV_pn-shr-settings = "${AUTOREV}"
-SRCREV_pn-ophonekitd = "${AUTOREV}"
-SRCREV_pn-ophonekitd-vala = "${AUTOREV}"
-SRCREV_pn-libmodulo = "${AUTOREV}"
-SRCREV_pn-shr-messages = "${AUTOREV}"
-SRCREV_pn-shr-contacts = "${AUTOREV}"
-SRCREV_pn-shr-dialer = "${AUTOREV}"
-SRCREV_pn-libframeworkd-phonegui = "${AUTOREV}"
-SRCREV_pn-libframeworkd-phonegui-efl = "${AUTOREV}"
-SRCREV_pn-libframeworkd-phonegui-efl2 = "${AUTOREV}"
-SRCREV_pn-libframeworkd-phonegui-gtk = "${AUTOREV}"
-SRCREV_pn-libframeworkd-phonegui-gtk2 = "${AUTOREV}"
-SRCREV_pn-opimd-utils = "${AUTOREV}"
-SRCREV_pn-pyphonelog = "${AUTOREV}"
-SRCREV_pn-shr-theme = "${AUTOREV}"
-SRCREV_pn-shr-theme-brave = "${AUTOREV}"
-SRCREV_pn-shr-theme-gtk-e17lookalike = "${AUTOREV}"
-SRCREV_pn-shr-splash = "${AUTOREV}"
-SRCREV_pn-shr-splash-theme-simple = "${AUTOREV}"
-SRCREV_pn-shr-splash-theme-dontpanic = "${AUTOREV}"
-SRCREV_pn-shr-splash-theme-handy = "${AUTOREV}"
-SRCREV_pn-shr-splash-theme-dociswatchingyou = "${AUTOREV}"
-SRCREV_pn-shr-installer = "${AUTOREV}"
-SRCREV_pn-shr-config = "${AUTOREV}"
-SRCREV_pn-alsa-scenarii-shr = "${AUTOREV}"
-SRCREV_pn-libphone-utils = "${AUTOREV}"
-SRCREV_pn-python-phoneutils = "${AUTOREV}"
-
-
-# E17 stuff
-EFL_SRCREV = "41040"
-SRCREV_pn-python-elementary = "41040"
-SRCREV_pn-e-wm-config-illume-shr = "${AUTOREV}"
-SRCREV_pn-e-wm-sysactions-shr = "${AUTOREV}"
-SRCREV_pn-e-wm-theme-illume-shr = "${AUTOREV}"
-SRCREV_pn-e-wm-theme-illume-sixteen = "${AUTOREV}"
-SRCREV_pn-elementary-theme-sixteen = "${AUTOREV}"
-SRCREV_pn-e-wm-menu-shr = "${AUTOREV}"
-SRCREV_pn-e-wm-illume-dict-pl = "${AUTOREV}"
-SRCREV_pn-etk-theme-shr = "${AUTOREV}"
-SRCREV_pn-libeflvala = "${AUTOREV}"
-
-SRCREV_pn-illume-keyboard-german = "${AUTOREV}"
-SRCREV_pn-illume-keyboard-arabic = "${AUTOREV}"
-SRCREV_pn-illume-keyboard-browse = "${AUTOREV}"
-SRCREV_pn-illume-keyboard-danish = "${AUTOREV}"
-SRCREV_pn-illume-keyboard-default-alt = "${AUTOREV}"
-SRCREV_pn-illume-keyboard-dutch = "${AUTOREV}"
-SRCREV_pn-illume-keyboard-dvorak = "${AUTOREV}"
-SRCREV_pn-illume-keyboard-french = "${AUTOREV}"
-SRCREV_pn-illume-keyboard-hebrew = "${AUTOREV}"
-SRCREV_pn-illume-keyboard-numeric-alt = "${AUTOREV}"
-SRCREV_pn-illume-keyboard-russian-terminal = "${AUTOREV}"
-SRCREV_pn-illume-keyboard-russian = "${AUTOREV}"
-
-# Other stuff
-SRCREV_pn-navit = "${AUTOREV}"
-SRCREV_pn-omview = "${AUTOREV}"
-SRCREV_pn-pythm = "${AUTOREV}"
-SRCREV_pn-omoney = "29"
-SRCREV_pn-enotes = "19"
-SRCREV_pn-ebrainy = "${AUTOREV}"
-SRCREV_pn-boost-signals2 = "52299"
-SRCREV_pn-dbus-c++-native = "${AUTOREV}"
-SRCREV_pn-dbus-c++ = "${AUTOREV}"
-SRCREV_pn-openmoocow = "${AUTOREV}"
-SRCREV_pn-libmokoui2 = "4695"
-SRCREV_pn-intone = "${AUTOREV}"
-SRCREV_pn-connman = "aac35324deb8c0b57f881338d87cb36b0979e7df"
-SRCREV_pn-msn-pecan = "${AUTOREV}"
-SRCREV_pn-omgps = "${AUTOREV}"
-SRCREV_pn-shr-launcher = "${AUTOREV}"
-SRCREV_pn-e-tasks = "${AUTOREV}"
-SRCREV_pn-mokonnect = "${AUTOREV}"
-SRCREV_pn-elmdentica = "${AUTOREV}"
-SRCREV_pn-vala-terminal = "${AUTOREV}"
diff --git a/conf/distro/include/shr-autorev.inc b/conf/distro/include/shr-autorev.inc
index 1605e8607a..122433b7fc 100644
--- a/conf/distro/include/shr-autorev.inc
+++ b/conf/distro/include/shr-autorev.inc
@@ -1,140 +1,16 @@
-# SHR conf file
-
-# We need to override some machine stuff as well; include the machine-
-# specific file here (if it exists).
-#include conf/distro/include/shr-${MACHINE}.conf
-
-# Nail down some SRCREV's for the kernels. There is a real potential problem
-# here, in that git hashes are hashes, not incrementing version numbers. Thus
-# we need to have something else in the kernel version string that gets bumped
-# with each change. So if you change one of these, go to the kernel recipe
-# and bump the OEV value up as well.
-SRCREV_pn-linux-eten = "df9715883efa3e6a88866813168fabb1c16b0b7a"
-SRCREV_pn-linux-openmoko-shr-devel = "2d158aae9d8d36f575504f59884ed8e80802efe2"
-
-# FSO stuff
-SRCREV_pn-dbus-hlid = "39e804f28808247df2573788cb99897d4d765e69"
-SRCREV_pn-frameworkd = "e96a204768744130859ab091162ec5c976854d49"
+# SHR autorev include
SRCREV_pn-frameworkd-config-shr = "${AUTOREV}"
-SRCREV_pn-frameworkd-config-shr_FSO_REV = "e96a204768744130859ab091162ec5c976854d49"
+SRCREV_pn-frameworkd-config-shr_FSO_REV = "${AUTOREV}"
SRCREV_pn-frameworkd-config-shr_SHR_REV = "${AUTOREV}"
-SRCREV_pn-fsod = "${AUTOREV}"
-SRCREV_pn-fsodeviced = "${AUTOREV}"
-SRCREV_pn-fsonetworkd = "${AUTOREV}"
-SRCREV_pn-fsousaged = "3c3e1b862cdde806cef8f502dfe79f1d48f1c5d7"
-SRCREV_pn-fsoraw = "${AUTOREV}"
-SRCREV_pn-fso-abyss = "ff68be1581069ca494a559e85f6299246888d3b5"
-SRCREV_pn-fso-apm = "${AUTOREV}"
-SRCREV_pn-fso-term = "${AUTOREV}"
-SRCREV_pn-fso-gsm0710muxd = "abcbcd7cc532a8834906de3fc24c8f8fe7643cd4"
-SRCREV_pn-fso-gpsd = "78fe48dffb923175bde9f0aabc3500a9264a57e0"
-SRCREV_pn-fso-monitord = "${AUTOREV}"
-SRCREV_pn-fso-sounds = "3a4767ec01988bd0fd8f72f0c35d6d36e5fbc815"
-SRCREV_pn-fso-specs = "${AUTOREV}"
-SRCREV_pn-fso-term = "${AUTOREV}"
-SRCREV_pn-gsmd2 = "${AUTOREV}"
-SRCREV_pn-illume-theme-freesmartphone = "${AUTOREV}"
-SRCREV_pn-libascenario = "${AUTOREV}"
-SRCREV_pn-libfsobasics = "3c3e1b862cdde806cef8f502dfe79f1d48f1c5d7"
-SRCREV_pn-libfsoframework = "3c3e1b862cdde806cef8f502dfe79f1d48f1c5d7"
-SRCREV_pn-libfsotransport = "3c3e1b862cdde806cef8f502dfe79f1d48f1c5d7"
-SRCREV_pn-libframeworkd-glib = "680276e4cddabeb1edd088ddd421f363dd106a50"
-SRCREV_pn-libfso-glib = "9d292508739452b55b80ec40ec57405a5de2159f"
-SRCREV_pn-libgsm0710 = "3bb80ba6cc9f86ed3996f88bfa2986cc572489d6"
-SRCREV_pn-libgsm0710mux = "8e3e7533b286d8086bce8fa09bce23bb9f18bb98"
-SRCREV_pn-mickeydbus = "6d7f51b5189a00a07d9b88100a565f46fcb62644"
-SRCREV_pn-mickeyterm = "6d7f51b5189a00a07d9b88100a565f46fcb62644"
-SRCREV_pn-misc-vapi = "${AUTOREV}"
-SRCREV_pn-python-pytrc = "f15ff7c58946a2fd6ba767628b2fe5d6f46ff9bb"
-SRCREV_pn-vala-dbus-binding-tool-native = "6071da6ad645e1200eb2aee88d254ada348d361b"
-SRCREV_pn-vala = "${AUTOREV}"
-SRCREV_pn-zhone = "${AUTOREV}"
-
-# SHR stuff
-SHRREV = "c3d97171723d8e824cb5acf58b711aa78b3b82d9"
-
-SRCREV_pn-libhito = "${AUTOREV}"
-SRCREV_pn-neod = "${AUTOREV}"
-SRCREV_pn-shr-settings = "4e0fbe17e4fddd18b0455ec4d007ab3f1d19918e"
-SRCREV_pn-ophonekitd = "${SHRREV}"
-SRCREV_pn-ophonekitd-vala = "${AUTOREV}"
-SRCREV_pn-libmodulo = "${AUTOREV}"
-SRCREV_pn-shr-messages = "${SHRREV}"
-SRCREV_pn-shr-contacts = "${SHRREV}"
-SRCREV_pn-shr-dialer = "${SHRREV}"
-SRCREV_pn-libframeworkd-phonegui = "${SHRREV}"
-SRCREV_pn-libframeworkd-phonegui-efl = "${SHRREV}"
-SRCREV_pn-libframeworkd-phonegui-efl2 = "${AUTOREV}"
-SRCREV_pn-libframeworkd-phonegui-gtk = "${AUTOREV}"
-SRCREV_pn-libframeworkd-phonegui-gtk2 = "${AUTOREV}"
-SRCREV_pn-opimd-utils = "${AUTOREV}"
-SRCREV_pn-pyphonelog = "9da559f0242a32aa5d0b72c795f53d7d9ef8c973"
-SRCREV_pn-shr-theme = "${AUTOREV}"
-SRCREV_pn-shr-theme-brave = "${AUTOREV}"
-SRCREV_pn-shr-theme-gtk-e17lookalike = "${AUTOREV}"
-SRCREV_pn-shr-splash = "${AUTOREV}"
-SRCREV_pn-shr-splash-theme-simple = "${AUTOREV}"
-SRCREV_pn-shr-splash-theme-dontpanic = "${AUTOREV}"
-SRCREV_pn-shr-splash-theme-handy = "${AUTOREV}"
-SRCREV_pn-shr-splash-theme-niebiee = "${AUTOREV}"
-SRCREV_pn-shr-installer = "${AUTOREV}"
-SRCREV_pn-shr-config = "${AUTOREV}"
SRCREV_pn-alsa-scenarii-shr = "${AUTOREV}"
+SRCREV_pn-shr-settings = "${AUTOREV}"
+SRCREV_pn-shr-specs = "${AUTOREV}"
+SRCREV_pn-phoneui-apps = "${AUTOREV}"
+SRCREV_pn-phoneuid = "${AUTOREV}"
+SRCREV_pn-phonefsod = "${AUTOREV}"
+SRCREV_pn-libphone-ui = "${AUTOREV}"
+SRCREV_pn-libphone-ui-shr = "${AUTOREV}"
SRCREV_pn-libphone-utils = "${AUTOREV}"
-SRCREV_pn-python-phoneutils = "${AUTOREV}"
-
-
-# E17 stuff
-EFL_SRCREV = "41040"
-SRCREV_pn-python-elementary = "41040"
-SRCREV_pn-e-wm-config-illume-shr = "${AUTOREV}"
-SRCREV_pn-e-wm-sysactions-shr = "${AUTOREV}"
-SRCREV_pn-e-wm-theme-illume-shr = "${AUTOREV}"
-SRCREV_pn-e-wm-theme-illume-sixteen = "${AUTOREV}"
-SRCREV_pn-e-wm-theme-illume-niebiee = "${AUTOREV}"
-SRCREV_pn-elementary-theme-sixteen = "${AUTOREV}"
-SRCREV_pn-elementary-theme-niebiee = "${AUTOREV}"
-SRCREV_pn-e-wm-menu-shr = "${AUTOREV}"
-SRCREV_pn-e-wm-illume-dict-pl = "${AUTOREV}"
-SRCREV_pn-etk-theme-shr = "${AUTOREV}"
-SRCREV_pn-libeflvala = "${AUTOREV}"
-
-SRCREV_pn-illume-keyboard-german = "${AUTOREV}"
-SRCREV_pn-illume-keyboard-arabic = "${AUTOREV}"
-SRCREV_pn-illume-keyboard-browse = "${AUTOREV}"
-SRCREV_pn-illume-keyboard-danish = "${AUTOREV}"
-SRCREV_pn-illume-keyboard-default-alt = "${AUTOREV}"
-SRCREV_pn-illume-keyboard-dutch = "${AUTOREV}"
-SRCREV_pn-illume-keyboard-dvorak = "${AUTOREV}"
-SRCREV_pn-illume-keyboard-french = "${AUTOREV}"
-SRCREV_pn-illume-keyboard-hebrew = "${AUTOREV}"
-SRCREV_pn-illume-keyboard-numeric-alt = "${AUTOREV}"
-SRCREV_pn-illume-keyboard-russian-terminal = "${AUTOREV}"
-SRCREV_pn-illume-keyboard-russian = "${AUTOREV}"
-
-
-# Other stuff
-SRCREV_pn-bt-configure = "${AUTOREV}"
-SRCREV_pn-navit = "2309"
-SRCREV_pn-omview = "${AUTOREV}"
-SRCREV_pn-pythm = "${AUTOREV}"
-SRCREV_pn-omoney = "29"
-SRCREV_pn-enotes = "19"
-SRCREV_pn-ebrainy = "${AUTOREV}"
-SRCREV_pn-boost-signals2 = "52299"
-SRCREV_pn-dbus-c++-native = "${AUTOREV}"
-SRCREV_pn-dbus-c++ = "${AUTOREV}"
-SRCREV_pn-openmoocow = "${AUTOREV}"
-SRCREV_pn-libmokoui2 = "4695"
-SRCREV_pn-intone = "${AUTOREV}"
-SRCREV_pn-connman = "aac35324deb8c0b57f881338d87cb36b0979e7df"
-SRCREV_pn-msn-pecan = "${AUTOREV}"
-SRCREV_pn-omgps = "${AUTOREV}"
-SRCREV_pn-shr-today = "${AUTOREV}"
-SRCREV_pn-shr-launcher = "${AUTOREV}"
-SRCREV_pn-e-tasks = "${AUTOREV}"
-SRCREV_pn-mokonnect = "${AUTOREV}"
-SRCREV_pn-elmdentica = "${AUTOREV}"
-SRCREV_pn-vala-terminal = "${AUTOREV}"
+SRCREV_pn-opimd-utils = "${AUTOREV}"
diff --git a/conf/distro/include/slugos.inc b/conf/distro/include/slugos.inc
index 903e5ed602..8a331ae7f2 100644
--- a/conf/distro/include/slugos.inc
+++ b/conf/distro/include/slugos.inc
@@ -143,6 +143,9 @@ SRCDATE_ipkg-utils-native ?= "20060106"
SRCDATE_ipkg-link ?= "20060106"
SRCDATE_irssi ?= "20050930"
+# We want the newer util-linux package
+PREFERRED_PROVIDER_util-linux ?= "util-linux-ng"
+
# we don't ship gtk-directfb by default
PREFERRED_PROVIDER_gtk+ ?= "gtk+"
PREFERRED_PROVIDER_gdk-pixbuf-loader-ani ?= "gtk+"
diff --git a/conf/distro/iphone-compat.conf b/conf/distro/iphone-compat.conf
index 74edc0fb53..be2017b7c5 100644
--- a/conf/distro/iphone-compat.conf
+++ b/conf/distro/iphone-compat.conf
@@ -5,7 +5,7 @@ DISTRO_NAME = "iphone-compat"
TARGET_OS = "darwin9"
TARGET_VENDOR = "-apple"
-export TARGET_LDFLAGS = "-L${STAGING_DIR_TARGET}${layout_libdir} -Wl,-L${STAGING_DIR_TARGET}${layout_libdir}"
+export TARGET_LDFLAGS = "-L${STAGING_DIR_TARGET}${libdir} -Wl,-L${STAGING_DIR_TARGET}${libdir}"
# Compiler selection
PREFERRED_PROVIDER_linux-libc-headers = "iphone-sdks"
diff --git a/conf/distro/jlime-2009.1.conf b/conf/distro/jlime-2009.1.conf
index 7488ddec3e..97de5cd257 100644
--- a/conf/distro/jlime-2009.1.conf
+++ b/conf/distro/jlime-2009.1.conf
@@ -1,8 +1,9 @@
#-----------------------------------------------------------------------------
#@TYPE: Distribution
-#@NAME: Jlime 2009.1 <jlime.com>
+#@NAME: Jlime 2009.1 <http://jlime.com>
#@DESCRIPTION: Jlime Mobility Embedded Linux Distribution for the
-# HP Jornada 620/660/680/690/720/728 handheld pc + Nec MP900c.
+# HP Jornada 620/660/680/690/720/728 handheld pc + Nec MP900c,
+# Ben Nanonote.
#@MAINTAINER: Kristoffer Ericson <Kristoffer.Ericson@gmail.com>
#-----------------------------------------------------------------------------
@@ -11,9 +12,7 @@
#
DISTRO_NAME = "Jlime"
DISTRO_VERSION = "2009.1"
-#DISTRO_TYPE = "release"
-#DISTRO_TYPE = "debug"
-
+DISTRO_TYPE = "release"
export FEED_URLS_jlime = "http://repository.jlime.com/"
#<>------------------------------------------------------------------>
@@ -28,24 +27,19 @@ DISTRO_EXTRA_RDEPENDS = "wireless-tools nano keymaps tslib-calibrate \
#<>
#<>------------------------------------------------------------------<
IMAGE_NAME = "${IMAGE_BASENAME}-2009.1-${MACHINE}"
+SPLASH = "psplash"
#
-# Naming schemes
-#
-INHERIT += "debian"
-
-#
-# Packaging and output format
+# Naming schemes + packages
#
-INHERIT += "package_ipk"
-INHERIT += "package_tar"
-IMAGE_FSTYPES = "tar.bz2"
+INHERIT += "debian package_tar package_ipk src_distribute_local src_distribute"
+IMAGE_FSTYPES = "tar.gz tar.bz2 jffs2"
#
# Kernel
#
KERNEL = "kernel26"
-MACHINE_KERNEL_VERSION = "2.6"
+MACHINE_KERNEL_VERSION = "git"
#
# Binutils & Compiler
@@ -54,6 +48,18 @@ PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}binutils:binutils-cross"
+PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers"
+PREFERRED_PROVIDER_virtual/libusb0 = "libusb"
+PREFERRED_PROVIDER_virtual/db = "db"
+PREFERRED_PROVIDER_virtual/db-native = "db-native"
+PREFERRED_PROVIDER_virtual/gtk+ = "gtk+"
+PREFERRED_PROVIDER_gconf = "gconf"
+PREFERRED_PROVIDER_avahi = "avahi"
+PREFERRED_PROVIDER_gtk+ = "gtk+"
+PREFERRED_PROVIDER_virtual/libqte2 = "qte-mt-static"
+PREFERRED_PROVIDER_bluez-libs = "bluez-libs"
+PREFERRED_VERSION_gettext-native = "0.14.1"
PREFERRED_VERSION_gcc = "4.2.2"
PREFERRED_VERSION_gcc-cross = "4.2.2"
@@ -61,19 +67,27 @@ PREFERRED_VERSION_gcc-cross-initial = "4.2.2"
PREFERRED_VERSION_gcc-cross-intermediate = "4.2.2"
PREFERRED_VERSION_binutils = "2.18"
PREFERRED_VERSION_binutils-cross = "2.18"
+PREFERRED_VERSION_coreutils-native = "6.0"
+PREFERRED_VERSION_e2fsprogs-libs-native = "1.35"
+
+PREFERRED_VERSION_cdparanoia = "10.2"
#
# Target OS & FPU system
#
TARGET_OS = "linux"
+TARGET_FPU_sh = "soft"
TARGET_FPU_arm = "soft"
TARGET_FPU_armeb = "soft"
+TARGET_FPU_mipsel = "soft"
+TARGET_FPU_mips = "soft"
LIBC = "glibc"
require conf/distro/include/${LIBC}.inc
-PREFERRED_VERSION_linux-libc-headers = "2.6.18"
-PREFERRED_VERSION_glibc = "2.5"
+PREFERRED_VERSION_linux-libc-headers = "2.6.25"
+PREFERRED_VERSION_glibc-initial = "2.6.1"
+PREFERRED_VERSION_glibc = "2.6.1"
#
# Bootstrap & Init
@@ -89,17 +103,4 @@ PREFERRED_PROVIDER_virtual/libx11 = "diet-x11"
PREFERRED_PROVIDER_tslib = "tslib"
PREFERRED_PROVIDER_virtual/libsdl = "libsdl-x11"
PREFERRED_PROVIDER_xserver = "xserver-kdrive"
-require conf/distro/include/preferred-xorg-versions-X11R7.4.inc
-
-#
-# GPE
-#
-require conf/distro/include/preferred-gpe-versions-2.8.inc
-
-#
-# Opie
-#
-QTE_VERSION = "2.3.10"
-PALMTOP_USE_MULTITHREADED_QTE = "yes"
-OPIE_VERSION = "1.2.3"
-require conf/distro/include/preferred-opie-versions.inc
+require conf/distro/include/preferred-xorg-versions-X11R7.5.inc
diff --git a/conf/distro/micro.conf b/conf/distro/micro.conf
index 43b00f7958..25880dff9d 100644
--- a/conf/distro/micro.conf
+++ b/conf/distro/micro.conf
@@ -76,11 +76,13 @@ ${TARGET_ARCH}:build-${BUILD_OS}:fail-fast:pn-${PN}"
#############################################################################
PREFERRED_PROVIDER_task-bootstrap = "task-bootstrap"
PREFERRED_PROVIDER_virtual/libx11 = "libx11"
+PREFERRED_PROVIDER_virtual/gail ?= "gtk+"
#############################################################################
# PREFERRED VERSIONS
#############################################################################
require conf/distro/include/sane-srcdates.inc
require conf/distro/include/sane-srcrevs.inc
+require conf/distro/include/preferred-xorg-versions-X11R7.5.inc
#############################################################################
# NLS
@@ -97,8 +99,10 @@ ENABLE_BINARY_LOCALE_GENERATION = "0"
PACKAGE_SNAP_LIB_SYMLINKS = "1"
# Collapse /usr into /
-layout_prefix = ""
-layout_exec_prefix = ""
+prefix = ""
+exec_prefix = ""
+prefix_native = ""
+exec_prefix_native = ""
# Don't install ldconfig and associated gubbins
USE_LDCONFIG = "0"
diff --git a/conf/distro/minimal.conf b/conf/distro/minimal.conf
index ecf6649fab..33eceab456 100644
--- a/conf/distro/minimal.conf
+++ b/conf/distro/minimal.conf
@@ -126,7 +126,7 @@ DISTRO_EXTRA_RDEPENDS += "\
${DISTRO_EXTRA_APPS} \
"
-# Additional content II (can be masked with BAD_RECOMMENDS)
+# Additional content II (can be masked with BAD_RECOMMENDATIONS)
DISTRO_EXTRA_RRECOMMENDS += " \
kernel-module-vfat \
kernel-module-ext2 \
diff --git a/conf/distro/nylon.conf b/conf/distro/nylon.conf
index 99cab2bcbb..7ab7b35d20 100644
--- a/conf/distro/nylon.conf
+++ b/conf/distro/nylon.conf
@@ -62,12 +62,11 @@ PREFERRED_VERSION_glibc = "2.3.3"
PREFERRED_VERSION_glibc-initial = "2.3.2"
PREFERRED_VERSION_shorewall = "2.0.9-monolithic"
PREFERRED_VERSION_ppp-dsl = "0.1-monolithic"
-PREFERRED_VERSION_mtd-utils = "1.0.0+git"
+PREFERRED_VERSION_mtd-utils = "1.1.0"
PREFERRED_VERSION_kismet = "2005-01-R1"
-PREFERRED_VERSION_automake-native = "1.10"
+PREFERRED_VERSION_automake-native = "1.10.2"
PREFERRED_VERSION_pkgconfig-native = "0.23"
PREFERRED_VERSION_netperf = "2.3"
-PREFERRED_PROVIDER_hotplug = "linux-hotplug"
PREFERRED_VERSION_gcc-cross-initial = "3.3.4"
PREFERRED_VERSION_gcc-cross-intermediate = "3.3.4"
@@ -83,3 +82,8 @@ PREFERRED_VERSION_prism54-firmware = "1.0.3.0"
PREFERRED_VERSION_udev = "100"
PREFERRED_VERSION_madwifi-modules = "0.9.3"
PREFERRED_VERSION_madwifi-tools = "0.9.3"
+PREFERRED_VERSION_e2fsprogs-libs = "1.41.8"
+PREFERRED_VERSION_dbus = "1.2.1"
+
+PREFERRED_PROVIDER_hotplug = "linux-hotplug"
+PREFERRED_PROVIDER_opkg = "opkg-nogpg"
diff --git a/conf/distro/sharprom-compatible.conf b/conf/distro/sharprom-compatible.conf
index bd3b93ec17..2ef04872fb 100644
--- a/conf/distro/sharprom-compatible.conf
+++ b/conf/distro/sharprom-compatible.conf
@@ -21,7 +21,7 @@ OEINCLUDELOGS = "yes"
KERNEL_CONSOLE = "tty1"
# prebuilt toolchain doesn't know about -isystem
export BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
-export TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}/${layout_includedir}"
+export TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}/${includedir}"
#DEBUG_OPTIMIZATION = "-O -g3"
#DEBUG_BUILD = "1"
diff --git a/conf/distro/shr.conf b/conf/distro/shr.conf
new file mode 100644
index 0000000000..80f89bd5fe
--- /dev/null
+++ b/conf/distro/shr.conf
@@ -0,0 +1,228 @@
+#-----------------------------------------------------------------------------
+#@TYPE: Distribution
+#@NAME: SHR
+#@DESCRIPTION: Linux Distribution Configuration for Mobile Phones
+#-----------------------------------------------------------------------------
+
+# set default locale for images - we have to do that before
+# including angstrom-2007-for-openmoko.inc because otherwise
+# it will be already set to en-gb
+IMAGE_LINGUAS ?= "en-us"
+
+# Set the toolchain type (internal, external) and brand (generic, csl etc.)
+TOOLCHAIN_TYPE ?= "internal"
+TOOLCHAIN_BRAND ?= ""
+
+#LIBC = "glibc"
+
+require conf/distro/include/preferred-shr-versions.inc
+require conf/distro/include/shr-autorev.inc
+
+#
+# Header
+#
+DISTRO_NAME = "shr"
+DISTRO_VERSION = "-${DATE}"
+DISTRO_REVISION = "2"
+DISTRO_PR = ".4"
+#DISTRO_TYPE = "release"
+DISTRO_TYPE = "debug"
+DISTRO = "shr"
+
+DISTRO_SSH_DAEMON = "openssh"
+
+#Generate locales on the buildsystem instead of on the target. Speeds up first boot, set to "1" to enable
+ENABLE_BINARY_LOCALE_GENERATION ?= "1"
+
+# We only want to build UTF8 locales
+LOCALE_UTF8_ONLY = "1"
+
+#save statistical info on images
+INHERIT += "testlab"
+
+#activate the angstrom blacklister
+INHERIT += "angstrom"
+
+ANGSTROM_BLACKLIST_pn-bluez-libs = "bluez-libs 3.x has been replaced by bluez4"
+ANGSTROM_BLACKLIST_pn-bluez-utils = "bluez-utils 3.x has been replaced by bluez4"
+ANGSTROM_BLACKLIST_pn-atd = "atd has been replaced by atd-over-fso"
+
+CVS_TARBALL_STASH += "http://build.shr-project.org/sources/"
+
+PREMIRRORS = "(ftp|https?)$://.*/.* http://build.shr-project.org/sources/"
+
+DISTRO_FEED_PREFIX ?= "shr-dev"
+DISTRO_FEED_URI ?= "http://build.shr-project.org/shr-testing/ipk"
+
+AB_DEPLOY_EXTRA ?= ""
+DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MACHINE_ARCH}/${AB_DEPLOY_EXTRA}"
+
+IMAGE_INITSCRIPTS = "initscripts-shr"
+DISTRO_INITSCRIPTS = "initscripts-shr"
+DISTRO_DEV_MANAGER = "udev"
+
+IPKG_VARIANT = "opkg"
+
+# Same kernel so same usb
+PACKAGE_ARCH_pn-usb-gadget-mode_om-gta01 = "armv4t"
+PACKAGE_ARCH_pn-usb-gadget-mode_om-gta02 = "armv4t"
+# same kernel so same keymaps
+PACKAGE_ARCH_pn-keymaps_om-gta01 = "armv4t"
+PACKAGE_ARCH_pn-keymaps_om-gta02 = "armv4t"
+# neod knows about both machines
+PACKAGE_ARCH_pn-neod_om-gta01 = "armv4t"
+PACKAGE_ARCH_pn-neod_om-gta02 = "armv4t"
+
+# Helper to say what image we built
+SHR_VERSION_FILE = "${IMAGE_ROOTFS}/${sysconfdir}/shr-version"
+ROOTFS_POSTPROCESS_COMMAND += "OLD_PWD=$PWD; cd `dirname '${FILE_DIRNAME}'`; echo Tag Name: `git tag|tail -n 1`> ${SHR_VERSION_FILE};cd $OLD_PWD;"
+ROOTFS_POSTPROCESS_COMMAND += "OLD_PWD=$PWD; cd `dirname '${FILE_DIRNAME}'`; echo VERSION: `git-log -n1 --pretty=oneline|awk '{print $1}'` >> ${SHR_VERSION_FILE}; cd $OLD_PWD;"
+ROOTFS_POSTPROCESS_COMMAND += "OLD_PWD=$PWD; cd `dirname '${FILE_DIRNAME}'`; echo Branch: ` git branch |awk '/*/{print $2}'` >> ${SHR_VERSION_FILE}; cd $OLD_PWD;"
+ROOTFS_POSTPROCESS_COMMAND += "echo Build Host: `cat /etc/hostname` >> ${SHR_VERSION_FILE};"
+ROOTFS_POSTPROCESS_COMMAND += "echo Time Stamp: `date -R` >> ${SHR_VERSION_FILE};"
+
+#Package customization
+EXTRA_OECONF-pn_qemu += " --target-list=arm-linux-user,arm-softmmu"
+
+#Illume settings
+ILLUME_CONFIG = "e-wm-config-illume-shr"
+ILLUME_THEME = "e-wm-theme-illume-gry"
+
+# From minimal.conf
+
+#############################################################################
+# FEATURE SELECTION
+#############################################################################
+# Use bluetooth 4.0
+DISTRO_BLUETOOTH_MANAGER = "bluez4"
+# We want images supporting the following features (for task-base)
+DISTRO_FEATURES = "nfs smbfs wifi ppp alsa ext2 vfat pcmcia usbgadget usbhost pci"
+# Following features are for ARM and E500 based machines
+DISTRO_FEATURES += "eabi"
+
+#############################################################################
+# LIBRARY NAMES
+#############################################################################
+# libfoo -> libfoo0-2 (etc)
+INHERIT += "debian"
+
+#############################################################################
+# STAGING AREA
+#############################################################################
+# Controlled by packaging system
+INHERIT += "packaged-staging"
+
+#############################################################################
+# PACKAGING & FEEDS
+#############################################################################
+# Chose the packaging system
+INHERIT += "package_ipk"
+IMAGE_FSTYPES ?= "tar.gz jffs2"
+
+require conf/distro/include/sane-feed.inc
+PREFERRED_PKG_FORMAT ?= "ipk"
+require conf/distro/include/sane-feed-${PREFERRED_PKG_FORMAT}.inc
+
+#############################################################################
+# IMAGES
+#############################################################################
+# Name the generated images in a sane way
+IMAGE_NAME = "${DISTRO_NAME}-${IMAGE_BASENAME}-${LIBC}-${PREFERRED_PKG_FORMAT}-${DISTRO_VERSION}-${MACHINE}"
+CACHE ?= "${TMPDIR}/cache/${LIBC}/${MACHINE}"
+DEPLOY_DIR ?= "${TMPDIR}/deploy/${LIBC}"
+DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MACHINE}"
+
+# increase inode/block ratio for ext2 filesystem
+EXTRA_IMAGECMD_ext2 = "-i 8192"
+
+#############################################################################
+# KERNEL
+#############################################################################
+KERNEL = "kernel26"
+MACHINE_KERNEL_VERSION = "2.6"
+
+#############################################################################
+# OVERWRITES adjusted from bitbake.conf to feature the MACHINE_CLASS
+#############################################################################
+OVERRIDES = "local:${MACHINE}:${MACHINE_CLASS}:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:fail-fast:pn-${PN}"
+
+#############################################################################
+# TOOLCHAIN
+#############################################################################
+LIBC ?= "eglibc"
+require conf/distro/include/sane-toolchain.inc
+
+#############################################################################
+# PREFERRED PROVIDERS
+#############################################################################
+PREFERRED_PROVIDER_qemu-native = "qemu-native"
+PREFERRED_PROVIDER_gconf = "gconf"
+PREFERRED_PROVIDER_virtual/shr-splash-theme = "shr-splash-theme-logo"
+PREFERRED_PROVIDER_frameworkd-config = "frameworkd-config-shr"
+PREFERRED_PROVIDER_gpsd = "fso-gpsd"
+PREFERRED_PROVIDER_e-wm-menu = "e-wm-menu-shr"
+PREFERRED_PROVIDER_openmoko-alsa-scenarios = "alsa-scenarii-shr"
+PREFERRED_PROVIDER_virtual/alsa-scenarios = "alsa-scenarii-shr"
+PREFERRED_PROVIDER_libfribidi = "fribidi"
+PREFERRED_PROVIDER_bluez-libs = "bluez4"
+PREFERRED_PROVIDER_bluez-utils = "bluez4"
+PREFERRED_PROVIDER_classpath = "classpath"
+PREFERRED_PROVIDER_virtual/javac-native = "ecj-bootstrap-native"
+PREFERRED_PROVIDER_virtual/java-native = "jamvm-native"
+PREFERRED_PROVIDER_virtual/gail = "gtk+"
+PREFERRED_PROVIDER_opkg = "opkg"
+PREFERRED_PROVIDER_virtual/java-initial = "jamvm-initial"
+PREFERRED_PROVIDER_atd = "atd-over-fso"
+PREFERRED_PROVIDER_qt4x11 = "qt4-x11-free"
+PREFERRED_PROVIDER_task-bootstrap = "task-bootstrap"
+PREFERRED_PROVIDER_avahi = "avahi"
+PREFERRED_PROVIDER_gtk+ = "gtk+"
+PREFERRED_PROVIDER_libgpewidget = "libgpewidget"
+PREFERRED_PROVIDER_virtual/db = "db3"
+PREFERRED_PROVIDER_virtual/db-native = "db3-native"
+PREFERRED_PROVIDER_virtual/libsdl = "libsdl-x11"
+PREFERRED_PROVIDER_virtual/libx11 ?= "libx11"
+PREFERRED_PROVIDER_virtual/libusb0 ?= "libusb"
+DISTRO_apm = "fso-apm"
+
+#############################################################################
+# PREFERRED VERSIONS
+#############################################################################
+require conf/distro/include/sane-srcdates.inc
+require conf/distro/include/sane-srcrevs.inc
+require conf/distro/include/preferred-e-versions.inc
+require conf/distro/include/preferred-opie-versions-1.2.4.inc
+#Use newest available (X11R7.5 now)
+#require conf/distro/include/preferred-xorg-versions-X11R7.4-updates.inc
+#require conf/distro/include/preferred-xorg-versions-X11R7.4.inc
+
+#############################################################################
+# CONTENTS
+#############################################################################
+
+# Ship extra debug utils in the rootfs when doing a debug build
+DISTRO_EXTRA_APPS ?= ""
+DISTRO_EXTRA_APPS += '${@base_conditional("DISTRO_TYPE", "release", "", "task-cli-tools-debug",d)}'
+
+# Additional content I (only valid if you include task-base)
+# distro-feed-configs: configuration files for the online feeds
+# util-linux-ng-mount util-linux-ng-umount: busybox mount is broken
+# angstrom-libc-fixup-hack: fixes an obscure bug with libc.so symlink
+DISTRO_EXTRA_RDEPENDS += "\
+ distro-feed-configs \
+ util-linux-ng-mount util-linux-ng-umount \
+ angstrom-libc-fixup-hack \
+ ${DISTRO_EXTRA_APPS} \
+"
+
+# Additional content II (can be masked with BAD_RECOMMENDATIONS)
+DISTRO_EXTRA_RRECOMMENDS += " \
+ kernel-module-vfat \
+ kernel-module-ext2 \
+ kernel-module-ext3 \
+ kernel-module-af-packet \
+ openssh-sftp-server \
+"
+
+# avahi-daemon \
+# avahi-autoipd \
diff --git a/conf/machine/alix.conf b/conf/machine/alix.conf
index 10b298c0f0..e116e611ad 100644
--- a/conf/machine/alix.conf
+++ b/conf/machine/alix.conf
@@ -4,7 +4,7 @@
#
# http://pcengines.ch/alix1c.htm
-# i386 doesn't work with NTPL, see http://ecos.sourceware.org/ml/libc-ports/2006-03/msg00030.html
+# i386 doesn't work with NPTL, see http://ecos.sourceware.org/ml/libc-ports/2006-03/msg00030.html
TARGET_ARCH = "i586"
PREFERRED_PROVIDER_virtual/kernel = "linux"
diff --git a/conf/machine/ben-nanonote.conf b/conf/machine/ben-nanonote.conf
new file mode 100644
index 0000000000..391f4a542d
--- /dev/null
+++ b/conf/machine/ben-nanonote.conf
@@ -0,0 +1,8 @@
+#@TYPE: Machine
+#@NAME: Ben Nanonote
+#@DESCRIPTION: Machine configuration for the Qi-Hardware's Ben Nanonote
+TARGET_ARCH = "mipsel"
+PREFERRED_PROVIDER_virtual/kernel = "linux"
+KERNEL_IMAGETYPE = "uImage"
+IMAGE_FSTYPES ?= "jffs2"
+
diff --git a/conf/machine/bug.conf b/conf/machine/bug.conf
index cec3d5b785..3e0389a6ba 100644
--- a/conf/machine/bug.conf
+++ b/conf/machine/bug.conf
@@ -3,7 +3,7 @@
#@DESCRIPTION: Machine configuration for the BUG base unit.
TARGET_ARCH = "arm"
-MACHINE_EXTRA_RRECOMMENDS = "marvell-gspi-fw"
+MACHINE_EXTRA_RRECOMMENDS = "marvell-gspi-fw marvell-sdio-fw"
PREFERRED_PROVIDER_virtual/kernel = "linux-bug"
MACHINE_FEATURES = "kernel26 screen touchscreen hotplug alsa wifi usbhost usbgadget"
diff --git a/conf/machine/guinness.conf b/conf/machine/guinness.conf
index f17451556f..dd21c1ecc2 100644
--- a/conf/machine/guinness.conf
+++ b/conf/machine/guinness.conf
@@ -2,7 +2,7 @@
#@NAME: Guinness
#@DESCRIPTION: Machine configuration for Linux running on a tyan 2462 mainboard (codenamed guinness)
-# i386 doesn't work with NTPL, see http://ecos.sourceware.org/ml/libc-ports/2006-03/msg00030.html
+# i386 doesn't work with NPTL, see http://ecos.sourceware.org/ml/libc-ports/2006-03/msg00030.html
TARGET_ARCH = "i686"
PACKAGE_EXTRA_ARCHS = "x86 i386 i486 i586"
diff --git a/conf/machine/hawkboard.conf b/conf/machine/hawkboard.conf
new file mode 100644
index 0000000000..5a9df79ade
--- /dev/null
+++ b/conf/machine/hawkboard.conf
@@ -0,0 +1,13 @@
+#@TYPE: Machine
+#@NAME: OMAP-L138 based board
+#@DESCRIPTION: Machine configuration for the TI Hawkboard
+
+require conf/machine/include/davinci.inc
+
+UBOOT_MACHINE = "da850_omapl138_evm_config"
+UBOOT_ENTRYPOINT = "0xc0008000"
+UBOOT_LOADADDRESS = "0xc0008000"
+
+MACHINE_FEATURES = "kernel26 serial ethernet ide screen"
+
+SERIAL_CONSOLE = "115200 ttyS2"
diff --git a/conf/machine/htcdream.conf b/conf/machine/htcdream.conf
index 7f7680a732..d09782c40f 100644
--- a/conf/machine/htcdream.conf
+++ b/conf/machine/htcdream.conf
@@ -1,6 +1,6 @@
#@TYPE: Machine
#@NAME: HTC Dream
-#@DESCRIPTION: Machine configuration for HTC Dream smartphone
+#@DESCRIPTION: Machine configuration for HTC Dream phone (aka T-Mobile G1 and Google ADP-1)
require conf/machine/include/htc-msm7.inc
@@ -10,4 +10,3 @@ MACHINE_DISPLAY_HEIGHT_PIXELS = "480"
MACHINE_FEATURES = "kernel26 touchscreen screen phone gps usbgadget bluetooth keyboard ext2"
PREFERRED_PROVIDER_virtual/kernel = "linux-msm7xxxx"
-
diff --git a/conf/machine/iei-nanogx-466.conf b/conf/machine/iei-nanogx-466.conf
new file mode 100644
index 0000000000..3bab3070c6
--- /dev/null
+++ b/conf/machine/iei-nanogx-466.conf
@@ -0,0 +1,30 @@
+# Copyright (C) 2009, Petr Stetiar
+# Released under the MIT license (see packages/COPYING)
+#@TYPE: Machine
+#@NAME: IEI Nano GX-466
+#@DESCRIPTION: Machine configuration for IEI Nano GX-466 - http://bit.ly/t9TOj
+
+TARGET_ARCH = "i586"
+
+require conf/machine/include/tune-geode.inc
+
+MACHINE_FEATURES = "kernel26 pci vfat ext2 keyboard usbhost sound touchscreen screen serial ethernet"
+
+KERNEL_IMAGETYPE = "bzImage"
+IMAGE_FSTYPES ?= "ext2 tar.bz2"
+
+PREFERRED_PROVIDER_virtual/kernel = "linux"
+PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg"
+XSERVER = "xserver-xorg \
+ xf86-input-evdev \
+ xf86-input-mouse \
+ xf86-input-tslib \
+ xf86-video-geode \
+ xerver-xorg-module-libint10 \
+ xserver-xorg-module-xaa \
+ xf86-input-keyboard"
+
+GUI_MACHINE_CLASS = "bigscreen"
+
+GLIBC_ADDONS = "nptl"
+GLIBC_EXTRA_OECONF = "--with-tls --with-cpu=i586"
diff --git a/conf/machine/include/davinci.inc b/conf/machine/include/davinci.inc
index 206afd46f2..ceafa800b2 100644
--- a/conf/machine/include/davinci.inc
+++ b/conf/machine/include/davinci.inc
@@ -1,7 +1,7 @@
require conf/machine/include/tune-arm926ejs.inc
# Increase this everytime you change something in the kernel
-MACHINE_KERNEL_PR = "r10"
+MACHINE_KERNEL_PR = "r12"
TARGET_ARCH = "arm"
@@ -15,7 +15,7 @@ UBOOT_MACHINE = "davinci_dvevm_config"
UBOOT_ENTRYPOINT = "0x80008000"
UBOOT_LOADADDRESS = "0x80008000"
-#EXTRA_IMAGEDEPENDS += "u-boot ubl"
+EXTRA_IMAGEDEPENDS += "u-boot"
SERIAL_CONSOLE ?= "115200 ttyS0"
EXTRA_IMAGECMD_jffs2 = "--pad --little-endian --eraseblock=0x20000 -n"
diff --git a/conf/machine/include/kirkwood.inc b/conf/machine/include/kirkwood.inc
index f91607cf76..2d48c8b7d6 100644
--- a/conf/machine/include/kirkwood.inc
+++ b/conf/machine/include/kirkwood.inc
@@ -11,7 +11,7 @@ USE_DEVFS = "0"
PREFERRED_PROVIDER_virtual/bootloader = ""
PREFERRED_PROVIDER_virtual/kernel = "linux-kirkwood"
-MACHINE_KERNEL_PR = "r12"
+MACHINE_KERNEL_PR = "r13"
IMAGE_FSTYPES += "tar.gz ubi"
SERIAL_CONSOLE = "ttyS0 115200"
diff --git a/conf/machine/include/omap3.inc b/conf/machine/include/omap3.inc
index e87b56c282..2f242a4b38 100644
--- a/conf/machine/include/omap3.inc
+++ b/conf/machine/include/omap3.inc
@@ -1,7 +1,7 @@
require conf/machine/include/tune-cortexa8.inc
PREFERRED_PROVIDER_virtual/kernel = "linux-omap"
# Increase this everytime you change something in the kernel
-MACHINE_KERNEL_PR = "r48"
+MACHINE_KERNEL_PR = "r50"
KERNEL_IMAGETYPE = "uImage"
diff --git a/conf/machine/include/tune-atom.inc b/conf/machine/include/tune-atom.inc
new file mode 100644
index 0000000000..a7dd04f596
--- /dev/null
+++ b/conf/machine/include/tune-atom.inc
@@ -0,0 +1,8 @@
+# GCC 4.3.0- (see Poky)
+# TARGET_CC_ARCH = "-march=i586"
+#
+# GCC 4.3.1+ (see Gentoo)
+TARGET_CC_ARCH = "-march=core2"
+
+# GCC 4.4.2+ (see Fedora 12)
+#TARGET_CC_ARCH = "-march=i686 -mtune=atom"
diff --git a/conf/machine/ion.conf b/conf/machine/ion.conf
new file mode 100644
index 0000000000..f58219bd1a
--- /dev/null
+++ b/conf/machine/ion.conf
@@ -0,0 +1,23 @@
+#@TYPE: Machine
+#@NAME: Ion
+
+#@DESCRIPTION: Machine configuration for NVidia Ion based machines.
+#Point of View ION, Asrock 330, etc.
+
+TARGET_ARCH = "i686"
+
+#MACHINE_ARCH = "core2"
+
+PACKAGE_EXTRA_ARCHS = "x86"
+
+include conf/machine/include/tune-atom.inc
+
+MACHINE_FEATURES = "kernel26 screen keyboard pci usbhost ext2 ext3 x86 wifi \
+ acpi"
+
+KERNEL_IMAGETYPE = "bzImage"
+
+PREFERRED_PROVIDER_virtual/kernel ?= "linux"
+
+GLIBC_ADDONS = "nptl"
+GLIBC_EXTRA_OECONF = "--with-tls"
diff --git a/conf/machine/om-gta01.conf b/conf/machine/om-gta01.conf
index cbc66d8748..5bdeba01f3 100644
--- a/conf/machine/om-gta01.conf
+++ b/conf/machine/om-gta01.conf
@@ -7,8 +7,18 @@
TARGET_ARCH = "arm"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-openmoko-2.6.24"
+
+# SHR-specific overrides to the machine.conf file
+PREFERRED_PROVIDER_virtual/kernel_shr = "linux-openmoko-shr-devel"
+PREFERRED_PROVIDER_virtual/xserver_shr = "xserver-xorg"
+PREFERRED_PROVIDER_xf86-video-fbdev_shr = "xf86-video-fbdev"
+PREFERRED_PROVIDER_mesa_shr = "mesa"
+XSERVER_shr = "xserver-xorg xf86-video-fbdev xf86-input-evdev xf86-input-keyboard"
+
UBOOT_ENTRYPOINT = "30008000"
+OLDEST_KERNEL_linux-gnueabi = "2.6.24"
+
MACHINE_FEATURES = "kernel26 apm alsa bluetooth gps usbgadget usbhost phone vfat ext2"
MACHINE_DISPLAY_WIDTH_PIXELS = "480"
MACHINE_DISPLAY_HEIGHT_PIXELS = "640"
@@ -16,6 +26,10 @@ MACHINE_DISPLAY_ORIENTATION = "0"
MACHINE_DISPLAY_PPI = "285"
XSERVER = "xserver-kdrive-fbdev"
+# fbreader specific
+READER_RESOLUTION = "480x640"
+READER_ARCH = "openzaurus"
+
# package machine specific modules
MACHINE_EXTRA_RRECOMMENDS = "\
kernel-module-gta01-pm-bt \
@@ -40,6 +54,8 @@ EXTRA_IMAGECMD_jffs2 = "--little-endian --eraseblock=0x4000 --pad -n"
# build / upload tools
EXTRA_IMAGEDEPENDS += "dfu-util-native"
+module_autoload_snd-soc-neo1973-wm8753 = "snd-soc-neo1973-wm8753"
+
# tune for S3C24x0
include conf/machine/include/tune-arm920t.inc
diff --git a/conf/machine/om-gta02.conf b/conf/machine/om-gta02.conf
index 94ca2946e6..5fc96ec4ed 100644
--- a/conf/machine/om-gta02.conf
+++ b/conf/machine/om-gta02.conf
@@ -8,18 +8,37 @@ TARGET_ARCH = "arm"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-openmoko-2.6.28"
PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg"
+
+# If you want to have KMS enabled in default kernel, uncomment linux-openmoko-shr-drm-devel
+PREFERRED_PROVIDER_virtual/kernel_shr = "linux-openmoko-shr-devel"
+#PREFERRED_PROVIDER_virtual/kernel_shr = "linux-openmoko-shr-drm-devel"
+#PREFERRED_PROVIDER_virtual/kernel_shr = "linux-openmoko-2.6.31"
+
+PREFERRED_PROVIDER_virtual/xserver_shr = "xserver-xorg"
+PREFERRED_PROVIDER_virtual/libgl_shr = "mesa-dri"
+MACHINE_DRI_MODULES_shr = "glamo"
+
+XSERVER_shr = "xserver-xorg xf86-video-glamo xf86-input-evdev xf86-input-keyboard xf86-input-mouse"
+
UBOOT_ENTRYPOINT = "30008000"
+OLDEST_KERNEL_linux-gnueabi = "2.6.24"
+
MACHINE_FEATURES = "kernel26 apm alsa bluetooth gps usbgadget usbhost phone wifi vfat ext2"
MACHINE_DISPLAY_WIDTH_PIXELS = "480"
MACHINE_DISPLAY_HEIGHT_PIXELS = "640"
MACHINE_DISPLAY_ORIENTATION = "0"
MACHINE_DISPLAY_PPI = "285"
-XSERVER = "xserver-xorg \
+XSERVER ?= "xserver-xorg \
xf86-input-tslib \
xf86-video-glamo \
xf86-input-keyboard"
+# fbreader specific
+READER_RESOLUTION = "480x640"
+READER_ARCH = "desktop"
+READER_UI = "gtk"
+
# package machine specific modules
MACHINE_EXTRA_RRECOMMENDS = "\
kernel-modules \
@@ -32,8 +51,9 @@ USE_VT = "0"
# used by some images
ROOT_FLASH_SIZE = "256"
+IMAGE_FSTYPES += "tar.gz jffs2 ubifs ubi"
+
# extra jffs2 tweaks
-IMAGE_FSTYPES += "jffs2"
EXTRA_IMAGECMD_jffs2 = "--little-endian --eraseblock=0x20000 --pagesize=0x800 \
--no-cleanmarkers --pad -n ; sumtool --eraseblock=0x20000 --no-cleanmarkers \
--littleendian --pad \
@@ -44,8 +64,25 @@ EXTRA_IMAGECMD_jffs2 = "--little-endian --eraseblock=0x20000 --pagesize=0x800 \
mv ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2.summary \
${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2"
+# do ubiattach /dev/ubi_ctrl -m 4
+# From dmesg:
+# UBI: smallest flash I/O unit: 2048
+# UBI: logical eraseblock size: 129024 bytes
+# from ubiattach stdout:
+# UBI device number 0, total 1996 LEBs
+MKUBIFS_ARGS = "-m 2048 -e 129024 -c 2047"
+
+# do ubiattach /dev/ubi_ctrl -m 4
+# from dmesg:
+# UBI: smallest flash I/O unit: 2048
+# UBI: physical eraseblock size: 131072 bytes (128 KiB)
+# UBI: sub-page size: 512
+UBINIZE_ARGS = "-m 2048 -p 128KiB -s 512"
+
# build / upload tools
EXTRA_IMAGEDEPENDS += "sjf2410-linux-native dfu-util-native"
+module_autoload_snd-soc-neo1973-gta02-wm8753 = "snd-soc-neo1973-gta02-wm8753"
+
# tune for S3C24x0
include conf/machine/include/tune-arm920t.inc
diff --git a/conf/machine/omap3-pandora.conf b/conf/machine/omap3-pandora.conf
index c896fa0b02..b504723afa 100644
--- a/conf/machine/omap3-pandora.conf
+++ b/conf/machine/omap3-pandora.conf
@@ -29,14 +29,14 @@ MACHINE_DISPLAY_HEIGHT_PIXELS = "480"
#IMAGE_FSTYPES += "tar.bz2 ubi"
IMAGE_FSTYPES = "tar.bz2"
-#EXTRA_IMAGECMD_jffs2 = "-lnp "
SERIAL_CONSOLE = "115200 ttyS0"
require conf/machine/include/omap3.inc
-# Put it below omap3.inc as we override the kernel here
+# Put it below omap3.inc as we override the kernel and PR here
PREFERRED_PROVIDER_virtual/kernel = "${MACHINE}-kernel"
+MACHINE_KERNEL_PR = "r2"
# Use our 'Powered by Angstrom' splash for the images.
PREFERRED_PROVIDER_virtual/psplash = "psplash-omap3pandora"
@@ -65,10 +65,8 @@ UBOOT_MACHINE = "omap3_pandora_config"
PREFERRED_PROVIDER_u-boot = "u-boot-omap3pandora"
PREFERRED_PROVIDER_x-load = "x-load-omap3pandora"
-
-EXTRA_IMAGEDEPENDS += "u-boot"
-EXTRA_IMAGEDEPENDS += "x-load"
-
-PREFERRED_VERSION_libgles-omap3 = "3.00.00.09"
+PREFERRED_VERSION_u-boot-omap3pandora = "git"
+PREFERRED_VERSION_x-load-omap3pandora = "git"
+EXTRA_IMAGEDEPENDS += "u-boot x-load"
MACHINE_FEATURES = "kernel26 apm usbgadget usbhost keyboard vfat ext2 screen touchscreen alsa bluetooth wifi sdio"
diff --git a/conf/machine/omap3-touchbook.conf b/conf/machine/omap3-touchbook.conf
index 2839b7ddf6..88cb9cc8e3 100644
--- a/conf/machine/omap3-touchbook.conf
+++ b/conf/machine/omap3-touchbook.conf
@@ -8,6 +8,7 @@ XSERVER = "xserver-xorg \
xf86-input-evdev \
xf86-input-mouse \
xf86-input-tslib \
+ xf86-video-fbdev \
xf86-video-omapfb \
xf86-input-keyboard"
diff --git a/conf/machine/progear.conf b/conf/machine/progear.conf
index 60716f6153..627bbc1c69 100644
--- a/conf/machine/progear.conf
+++ b/conf/machine/progear.conf
@@ -2,7 +2,7 @@
#@NAME: Progear
#@DESCRIPTION: Machine configuration for Progear 1050HX+ webpad
-# i386 doesn't work with NTPL, see http://ecos.sourceware.org/ml/libc-ports/2006-03/msg00030.html
+# i386 doesn't work with NPTL, see http://ecos.sourceware.org/ml/libc-ports/2006-03/msg00030.html
TARGET_ARCH = "i586"
require conf/machine/include/tune-pentiummmx.inc
diff --git a/conf/machine/sgh-i900.conf b/conf/machine/sgh-i900.conf
new file mode 100644
index 0000000000..2080bf8e1a
--- /dev/null
+++ b/conf/machine/sgh-i900.conf
@@ -0,0 +1,23 @@
+#@TYPE: Machine
+#@NAME: Samsung Omnia SGH-i900
+#@DESCRIPTION: Machine configuration for the Samsung Omnia SGH-i900
+#@HOMEPAGE: http://andromnia.sourceforge.net
+
+# Hardware-based properties
+#
+
+TARGET_ARCH = "arm"
+
+require conf/machine/include/tune-xscale.inc
+
+MACHINE_FEATURES = "alsa apm bluetooth camera gps kernel26 phone screen touchscreen vfat wifi"
+
+# Software/packages selection
+#
+
+PREFERRED_PROVIDER_virtual/kernel = "linux-sgh-i900"
+PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg"
+XSERVER = "xserver-xorg \
+ xf86-input-evdev \
+ xf86-input-tslib \
+ xf86-video-fbdev"
diff --git a/conf/machine/simone.conf b/conf/machine/simone.conf
new file mode 100644
index 0000000000..f91b292aa1
--- /dev/null
+++ b/conf/machine/simone.conf
@@ -0,0 +1,10 @@
+#@TYPE: Machine
+#@Name: SimpleMachines Sim.One developer board
+#@DESCRIPTION: Machine configuration for SimpleMachines Sim.One developer board
+#@HOMEPAGE: http://simplemachines.it/simone.html
+
+require conf/machine/ep93xx.conf
+
+KERNEL_IMAGETYPE = "uImage"
+
+UBOOT_ENTRYPOINT = "c0008000"
diff --git a/conf/machine/x86.conf b/conf/machine/x86.conf
index 30eb943cc6..5e43102fb3 100644
--- a/conf/machine/x86.conf
+++ b/conf/machine/x86.conf
@@ -4,7 +4,7 @@
#@NAME: X86
#@DESCRIPTION: Machine configuration for a Linux running on x86 compatible machines
-# i386 doesn't work with NTPL, see http://ecos.sourceware.org/ml/libc-ports/2006-03/msg00030.html
+# i386 doesn't work with NPTL, see http://ecos.sourceware.org/ml/libc-ports/2006-03/msg00030.html
TARGET_ARCH = "i486"
PREFERRED_PROVIDER_virtual/kernel = "linux"
diff --git a/conf/sanity.conf b/conf/sanity.conf
index 7112324132..0f53cb2e04 100644
--- a/conf/sanity.conf
+++ b/conf/sanity.conf
@@ -3,7 +3,7 @@
# See sanity.bbclass
#
# Expert users can confirm their sanity with "touch conf/sanity.conf"
-BB_MIN_VERSION = "1.8.12"
+BB_MIN_VERSION = "1.8.18"
SANITY_ABIFILE = "${TMPDIR}/abi_version"
SANITY_PRFILE = "${TMPDIR}/distro_pr"
diff --git a/contrib/angstrom/build-feeds.sh b/contrib/angstrom/build-feeds.sh
index 7f3dff0dd3..10c9d45f99 100755
--- a/contrib/angstrom/build-feeds.sh
+++ b/contrib/angstrom/build-feeds.sh
@@ -78,12 +78,14 @@ do
angstrom-zeroconf-audio \
apache2 \
artoolkit \
+ asciidoc \
asterisk \
atomic \
autoconf \
automake \
binutils \
bison \
+ blueman \
bluez-gnome \
bluez-hcidump \
boa \
@@ -119,6 +121,8 @@ do
epdfview \
epiphany \
evince \
+ exalt \
+ exalt-client \
exo \
fakeroot \
fennec \
@@ -154,6 +158,7 @@ do
geda-utils \
gimp \
glider \
+ gksu \
gmp \
gmpc \
gnome-games \
@@ -188,6 +193,7 @@ do
iaimaster \
icebloxx \
imagemagick \
+ inkscape \
inkwp \
ioquake3 \
ipaq-sleep \
@@ -245,6 +251,7 @@ do
ntfs-3g \
numptyphysics \
octave \
+ openbox \
opencv \
opencv-samples \
openmoko-browser2 \
@@ -256,6 +263,7 @@ do
pavucontrol \
palantir \
pairs \
+ paprefs \
pciutils \
pdamaze \
perl \
@@ -295,6 +303,7 @@ do
screen \
scummvm \
sdlquake \
+ sdrshell \
sensors-applet \
setserial \
shisensho \
@@ -345,6 +354,7 @@ do
wt \
wt3 \
x11vnc \
+ xclip \
xf86-input-evdev \
xf86-input-evtouch \
xf86-input-keyboard \
diff --git a/contrib/angstrom/sort.sh b/contrib/angstrom/sort.sh
index 758fee9acd..e372d45afc 100755
--- a/contrib/angstrom/sort.sh
+++ b/contrib/angstrom/sort.sh
@@ -48,13 +48,13 @@ case "$arch" in
"armv4t")
machines="micro2440 ep93xx h6300 om-gta01 om-gta02 fic-gta01 fic-gta02" ;;
"armv5te")
- machines="da850-omapl138-evm da830-omapl137-evm htcalpine dm6446-evm dm6467-evm dm355-evm dm365-evm dm357-evm topas910 sheevaplug openrd-client dm355-leopard n2100 dns323 mv2120 kuropro lspro tsx09 ts409 davinci-dvevm davinci-sffsdr neuros-osd neuros-osd2 gumstix-connex gumstix-verdex gumstix e680 a780 a1200 at91sam9263ek rokre6 rokre2 rokr-e2 akita c7x0 h2200 h3900 h4000 h5000 htcapache htctornado htcblueangel htcuniversal hx4700 nslu2le hx2000 ixp4xxle magician netbook-pro nokia770 palmt650 palmt680 palmld palmtx palmtt3 palmz72 qemuarm omap5912osk poodle spitz tosa mx27ads at91sam9g20ek mainstone" ;;
+ machines="hawkboard da850-omapl138-evm da830-omapl137-evm htcalpine dm6446-evm dm6467-evm dm6467t-evm dm355-evm dm365-evm dm357-evm topas910 sheevaplug openrd-client dm355-leopard n2100 dns323 mv2120 kuropro lspro tsx09 ts409 davinci-dvevm davinci-sffsdr neuros-osd neuros-osd2 gumstix-connex gumstix-verdex gumstix e680 a780 a1200 at91sam9263ek rokre6 rokre2 rokr-e2 akita c7x0 h2200 h3900 h4000 h5000 htcapache htctornado htcblueangel htcuniversal hx4700 nslu2le hx2000 ixp4xxle magician netbook-pro nokia770 palmt650 palmt680 palmld palmtx palmtt3 palmz72 qemuarm omap5912osk poodle spitz tosa mx27ads at91sam9g20ek mainstone" ;;
"armv5teb")
machines="ixp4xxbe nslu2be" ;;
"armv6-novfp")
machines="htcdiamond htckaiser htcpolaris htcraphael htcvogue" ;;
"armv6")
- machines="bug mx31ads nokia800 " ;;
+ machines="smartq5 bug mx31ads nokia800 " ;;
"armv7")
machines="" ;;
"armv7a")
diff --git a/contrib/angstrom/upload-packages.sh b/contrib/angstrom/upload-packages.sh
index 3978e8778f..5f33b46090 100644
--- a/contrib/angstrom/upload-packages.sh
+++ b/contrib/angstrom/upload-packages.sh
@@ -1,4 +1,4 @@
-#! /bin/sh
+#!/bin/sh
# MIT Licensed
# Initial version by Graeme 'XorA' Gregory, Further changes by Koen Kooi
@@ -32,7 +32,7 @@ cat files-remote files-local | sort | uniq -u >files-uniq
cat files-uniq files-local | sort | uniq -d > files-trans
# Remove SGX files
-rm -f upload-queue/bigbuck* upload-queue/*libgles* upload-queue/*3.00.*
+rm -f upload-queue/bigbuck* upload-queue/*libgles* upload-queue/*kdrive*sgx* upload-queue/*3.00.*
# Copy over non-duplicate files
echo "Starting rsync..."
diff --git a/docs/usermanual/.gitignore b/docs/usermanual/.gitignore
index 6532057c27..67201710ad 100644
--- a/docs/usermanual/.gitignore
+++ b/docs/usermanual/.gitignore
@@ -2,3 +2,5 @@
html/
xhtml/
*.sw?
+html-nochunks/
+*.ps
diff --git a/docs/usermanual/Makefile b/docs/usermanual/Makefile
index 75fdd9ebc7..36ea5e20a7 100644
--- a/docs/usermanual/Makefile
+++ b/docs/usermanual/Makefile
@@ -1,4 +1,4 @@
-# XSL sytlesheets downloaded from http://docbook.sourceforge.net/release/xsl/current/html/
+# XSL stylesheets downloaded from http://docbook.sourceforge.net/release/xsl/current/html/
topdir = .
manual = $(topdir)/usermanual.xml
diff --git a/docs/usermanual/chapters/getting_oe.xml b/docs/usermanual/chapters/getting_oe.xml
index e8d1f2cc9d..d18c9557e3 100644
--- a/docs/usermanual/chapters/getting_oe.xml
+++ b/docs/usermanual/chapters/getting_oe.xml
@@ -30,9 +30,9 @@ $ <command>cd</command> $OEBASE</screen>
you to build your applications and images.
</para>
- <para>The <varname>$OEBASE</varname> will also contain both bitbake/ and
- openembedded/ directories. These will be discussed in
- <xref linkend="gettingoe_getting_bitbake"/> and
+ <para>The <varname>$OEBASE</varname> will also contain both of the
+ <literal>bitbake/</literal> and <literal>openembedded/</literal> directories.
+ These will be discussed in <xref linkend="gettingoe_getting_bitbake"/> and
<xref linkend="gettingoe_getting_oe"/>.
</para>
</section>
@@ -47,19 +47,19 @@ $ <command>cd</command> $OEBASE</screen>
directory of <literal>openembedded/</literal>
and <literal>build/</literal> directories. Indeed, as bitbake is written
in python it does not need compilation for being used. You'll just have to
- set the PATH variable so that the BitBake tools are accessible (see
- <xref linkend="gettingoe_configuring_oe"/>).</para>
+ set the <varname>PATH</varname> variable so that the BitBake tools are
+ accessible (see <xref linkend="gettingoe_configuring_oe"/>).</para>
<section><title>Downloading a <application>BitBake</application> release</title>
<para>Releases are available from the berlios project website. The current
release series is <application>BitBake</application> <emphasis>1.8</emphasis>
- and the current release is <emphasis>1.8.12</emphasis>. To download execute
+ and the current release is <emphasis>1.8.18</emphasis>. To download execute
the following commands:
<screen>
$ <command>cd</command> $OEBASE
-$ <command>wget</command>http://download.berlios.de/bitbake/bitbake-1.8.12.tar.gz
-$ <command>tar</command> -xvzf bitbake-1.8.12.tar.gz
-$ <command>mv</command> bitbake-1.8.12 bitbake
+$ <command>wget</command> http://download.berlios.de/bitbake/bitbake-1.8.18.tar.gz
+$ <command>tar</command> -xvzf bitbake-1.8.18.tar.gz
+$ <command>mv</command> bitbake-1.8.18 bitbake
</screen>
</para>
@@ -257,7 +257,13 @@ MACHINE = "om-gta01"</screen>
If your system does not provide
the <filename>/etc/sysctl.conf</filename> mechanism, you can try adding
the above <command>echo</command> command line to
- your <filename>/etc/rc.local</filename>.
+ your <filename>/etc/rc.local</filename>. But that's not all.
+
+ On some systems (such as Fedora 11), changing that kernel setting
+ will cause an SELinux violation if you're running SELinux in enforcing
+ mode. If that's the case, you can either disable SELinux or run:
+
+ <screen>$ setsebool -P allow_unconfirmed_mmap_low 1</screen>
</para>
</note>
@@ -270,7 +276,7 @@ MACHINE = "om-gta01"</screen>
BitBake file is a logical unit of tasks to be executed. Normally this is
a package to be built. Inter-recipe dependencies are obeyed. The recipes
are located by BitBake via the <varname>BBFILES</varname> variable (set
- in your <filename>$OEBASE/build/conf/local/conf</filename>), which is a
+ in your <filename>$OEBASE/build/conf/local.conf</filename>), which is a
space separated list of <filename>.bb</filename> files, and does handle
wildcards.
</para>
diff --git a/docs/usermanual/chapters/introduction.xml b/docs/usermanual/chapters/introduction.xml
index 31f1f1f516..28e7725add 100644
--- a/docs/usermanual/chapters/introduction.xml
+++ b/docs/usermanual/chapters/introduction.xml
@@ -30,7 +30,7 @@
</listitem>
<listitem>
- <para>Must be able to emit packages (tar, rpm, deb,ipk)</para>
+ <para>Must be able to emit packages (tar, rpm, deb, ipk)</para>
</listitem>
<listitem>
diff --git a/recipes/accelges/accelges_svn.bb b/recipes/accelges/accelges_svn.bb
index 838290bf0a..3c3c8ac898 100644
--- a/recipes/accelges/accelges_svn.bb
+++ b/recipes/accelges/accelges_svn.bb
@@ -4,7 +4,7 @@ AUTHOR = "Paul V. Borza"
LICENSE = "GPL"
SECTION = "openmoko/utilities"
-PV = "0.2+svnr${SRCREV}"
+PV = "0.2+svnr${SRCPV}"
PR = "r2"
PE = "1"
DEPENDS = "dbus dbus-glib libxrandr libnotify notification-daemon curl gtk+"
diff --git a/recipes/aceofpenguins/aceofpenguins-launcher_0.3.bb b/recipes/aceofpenguins/aceofpenguins-launcher_0.3.bb
new file mode 100644
index 0000000000..265b8c6651
--- /dev/null
+++ b/recipes/aceofpenguins/aceofpenguins-launcher_0.3.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "EFL launcher for ace-of-penguins"
+HOMEPAGE = "http://shr-project.org"
+SHR_RELEASE ?= "shr"
+LICENSE ?= "GPL"
+DEPENDS = "python-native python-elementary"
+RDEPENDS = "aceofpenguins"
+SECTION = "x11/application"
+
+PACKAGE_ARCH = "all"
+
+PR = "r0"
+
+inherit setuptools
+
+SRC_URI = "http://downloads.vdm-design.de/aceofpenguins-launcher-${PV}.tar.gz"
+
+S = "${WORKDIR}/aceofpenguins-launcher"
+
+FILES_${PN} += "${prefix}/share/pixmaps"
+FILES_${PN} += "${prefix}/share/applications"
+
diff --git a/recipes/aceofpenguins/aceofpenguins_1.2.bb b/recipes/aceofpenguins/aceofpenguins_1.2.bb
new file mode 100644
index 0000000000..9410eb9653
--- /dev/null
+++ b/recipes/aceofpenguins/aceofpenguins_1.2.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "The Ace of Penguins is a set of Unix/X solitaire games based on the ones available for Windows(tm) but with a number of enhancements that my wife says make my versions better :-) \
+The latest version includes clones of freecell, golf, mastermind, merlin, minesweeper, pegged, solitaire, taipei (with editor!), and thornq (by Martin Thornquist)."
+AUTHOR = "dj@delorie.com"
+HOMEPAGE = "http://www.delorie.com/store/ace/"
+SECTION = "games"
+DEPENDS = "libpng zlib libxpm"
+PR = "r1"
+
+SRC_URI = "\
+ http://www.delorie.com/store/ace/ace-${PV}.tar.gz\
+ file://gcc4.patch;patch=1\
+"
+S = "${WORKDIR}/ace-${PV}"
+
+inherit autotools
+
+# Workaround QA issue
+TARGET_CC_ARCH += "${LDFLAGS}" \ No newline at end of file
diff --git a/recipes/aceofpenguins/files/gcc4.patch b/recipes/aceofpenguins/files/gcc4.patch
new file mode 100644
index 0000000000..431c44e933
--- /dev/null
+++ b/recipes/aceofpenguins/files/gcc4.patch
@@ -0,0 +1,23 @@
+--- ace-of-penguins-1.2.orig/games/golf.c
++++ ace-of-penguins-1.2/games/golf.c
+@@ -31,7 +31,7 @@
+
+ Stack *deck, *discard, *stacks[7];
+
+-static int table_width, table_height;
++int table_width, table_height;
+
+ int supress_arrows = 0;
+
+--- ace-of-penguins-1.2.orig/games/solitaire.c
++++ ace-of-penguins-1.2/games/solitaire.c
+@@ -337,7 +337,7 @@
+ return something_moved;
+ }
+
+-static void
++void
+ check_for_end_of_game()
+ {
+ while (auto_move());
+
diff --git a/recipes/addons/devshell.bb b/recipes/addons/devshell.bb
index 9ac6821e0e..5921125d12 100644
--- a/recipes/addons/devshell.bb
+++ b/recipes/addons/devshell.bb
@@ -11,9 +11,6 @@ do_configure() {
def devshell_emit_env(o, d, all=False, funcwhitelist=None):
"""Emits all items in the data store in a format such that it can be sourced by a shell."""
- import bb
- import bb.data
-
env = bb.data.keys(d)
for e in env:
diff --git a/recipes/aircrack/aircrack-ng_1.0-svn.bb b/recipes/aircrack/aircrack-ng_1.0-svn.bb
index 0f0f7f532d..37af3d5646 100644
--- a/recipes/aircrack/aircrack-ng_1.0-svn.bb
+++ b/recipes/aircrack/aircrack-ng_1.0-svn.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.aircrack-ng.org/"
SECTION = "console/network"
LICENSE = "GPLv2"
DEPENDS = "openssl zlib sqlite3"
-PV = "0.9.99+svnr${SRCREV}"
+PV = "0.9.99+svnr${SRCPV}"
PR = "r1"
SRC_URI = "svn://trac.aircrack-ng.org/svn/branch;module=1.0-dev;proto=http"
diff --git a/recipes/alsa/alsa-state.bb b/recipes/alsa/alsa-state.bb
index 0963cc4ff8..39bae169af 100644
--- a/recipes/alsa/alsa-state.bb
+++ b/recipes/alsa/alsa-state.bb
@@ -7,7 +7,7 @@
DESCRIPTION = "Alsa Scenario Files"
LICENSE = "MIT"
PV = "0.2.0"
-PR = "r9"
+PR = "r10"
SRC_URI = "\
file://asound.conf \
@@ -35,8 +35,8 @@ do_install() {
PACKAGES += "alsa-states"
RRECOMMENDS_alsa-state = "alsa-states"
-RRECOMMENDS_${PN}_om-gta01 = "openmoko-alsa-scenarios"
-RRECOMMENDS_${PN}_om-gta02 = "openmoko-alsa-scenarios"
+RRECOMMENDS_${PN}_om-gta01 = "virtual/alsa-scenarios"
+RRECOMMENDS_${PN}_om-gta02 = "virtual/alsa-scenarios"
FILES_${PN} = "${sysconfdir}/init.d ${sysconfdir}/asound.conf"
CONFFILES_${PN} = "${sysconfdir}/asound.conf"
diff --git a/recipes/angstrom/angstrom-feed-configs.bb b/recipes/angstrom/angstrom-feed-configs.bb
index 3943d05502..ea43cd0a0e 100644
--- a/recipes/angstrom/angstrom-feed-configs.bb
+++ b/recipes/angstrom/angstrom-feed-configs.bb
@@ -1,9 +1,9 @@
DESCRIPTION = "Configuration files for online package repositories aka feeds"
-RRECOMMENDS_${PN} += "opkg-nogpg"
+RRECOMMENDS_${PN} += "opkg-nogpg-nocurl"
#PV = "${DISTRO_VERSION}"
-PR = "r8"
+PR = "r9"
PACKAGE_ARCH = "${MACHINE_ARCH}"
FEED_BASEPATH ?= "unstable/feed/"
diff --git a/recipes/apache2/apache2-2.2.14/apr-sockets-patch b/recipes/apache2/apache2-2.2.14/apr-sockets-patch
new file mode 100644
index 0000000000..5e974820b3
--- /dev/null
+++ b/recipes/apache2/apache2-2.2.14/apr-sockets-patch
@@ -0,0 +1,10 @@
+--- httpd-2.2.3/srclib/apr/network_io/unix/sockets.c.orig
++++ httpd-2.2.3/srclib/apr/network_io/unix/sockets.c
+@@ -231,6 +231,7 @@
+ #if APR_O_NONBLOCK_INHERITED
+ if (apr_is_option_set(sock, APR_SO_NONBLOCK) == 1) {
+ apr_set_option(*new, APR_SO_NONBLOCK, 1);
++ apr_socket_opt_set(*new, APR_SO_NONBLOCK, 0);
+ }
+ #endif /* APR_O_NONBLOCK_INHERITED */
+
diff --git a/recipes/apache2/apache2-2.2.14/apr.h.in.patch b/recipes/apache2/apache2-2.2.14/apr.h.in.patch
new file mode 100644
index 0000000000..97554c9f74
--- /dev/null
+++ b/recipes/apache2/apache2-2.2.14/apr.h.in.patch
@@ -0,0 +1,13 @@
+Index: httpd-2.2.14/srclib/apr/include/apr.h.in
+===================================================================
+--- httpd-2.2.14.orig/srclib/apr/include/apr.h.in
++++ httpd-2.2.14/srclib/apr/include/apr.h.in
+@@ -224,7 +224,7 @@ extern "C" {
+ #define APR_HAVE_STRUCT_RLIMIT @struct_rlimit@
+ #define APR_HAVE_UNION_SEMUN @have_union_semun@
+ #define APR_HAVE_SCTP @have_sctp@
+-#define APR_HAVE_IOVEC @have_iovec@
++#define APR_HAVE_IOVEC 1
+
+ /* APR Feature Macros */
+ #define APR_HAS_SHARED_MEMORY @sharedmem@
diff --git a/recipes/apache2/apache2-2.2.14/configure-patch b/recipes/apache2/apache2-2.2.14/configure-patch
new file mode 100644
index 0000000000..50f7420a8d
--- /dev/null
+++ b/recipes/apache2/apache2-2.2.14/configure-patch
@@ -0,0 +1,71 @@
+Index: httpd-2.2.14/configure
+===================================================================
+--- httpd-2.2.14.orig/configure
++++ httpd-2.2.14/configure
+@@ -3795,26 +3795,6 @@ if test "${with_apr+set}" = set; then :
+
+ else
+
+- if test -n "1" && test "1" = "1"; then
+- for apr_temp_apr_config_file in $apr_temp_acceptable_apr_config
+- do
+- if $apr_temp_apr_config_file --help > /dev/null 2>&1 ; then
+- apr_config="$apr_temp_apr_config_file"
+-
+- apr_found="yes"
+- break
+- else
+- for lookdir in /usr /usr/local /usr/local/apr /opt/apr; do
+- if $TEST_X "$lookdir/bin/$apr_temp_apr_config_file"; then
+- apr_config="$lookdir/bin/$apr_temp_apr_config_file"
+-
+- apr_found="yes"
+- break 2
+- fi
+- done
+- fi
+- done
+- fi
+ if test "$apr_found" = "no" && test -d ""$srcdir/srclib/apr""; then
+ apr_temp_abs_srcdir="`cd "$srcdir/srclib/apr" && pwd`"
+ apr_found="reconfig"
+@@ -4147,26 +4127,6 @@ if test "${with_apr_util+set}" = set; th
+
+ else
+
+- if test -n "1" && test "1" = "1"; then
+- for apu_temp_apu_config_file in $apu_temp_acceptable_apu_config
+- do
+- if $apu_temp_apu_config_file --help > /dev/null 2>&1 ; then
+- apu_config="$apu_temp_apu_config_file"
+-
+- apu_found="yes"
+- break
+- else
+- for lookdir in /usr /usr/local /usr/local/apr /opt/apr; do
+- if $TEST_X "$lookdir/bin/$apu_temp_apu_config_file"; then
+- apu_config="$lookdir/bin/$apu_temp_apu_config_file"
+-
+- apu_found="yes"
+- break 2
+- fi
+- done
+- fi
+- done
+- fi
+ if test "$apu_found" = "no" && test -d ""$srcdir/srclib/apr-util""; then
+ apu_temp_abs_srcdir="`cd "$srcdir/srclib/apr-util" && pwd`"
+ apu_found="reconfig"
+@@ -7045,7 +7005,11 @@ if test "${ap_cv_void_ptr_lt_long+set}"
+ $as_echo_n "(cached) " >&6
+ else
+ if test "$cross_compiling" = yes; then :
+- ap_cv_void_ptr_lt_long=yes
++ if test "$ac_cv_sizeof_long_p" = "$ac_cv_sizeof_void_p"; then
++ ap_void_ptr_lt_long=no
++ else
++ ap_void_ptr_lt_long=yes
++ fi
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
diff --git a/recipes/apache2/apache2-2.2.14/configure.in.patch b/recipes/apache2/apache2-2.2.14/configure.in.patch
new file mode 100644
index 0000000000..2ca098dc86
--- /dev/null
+++ b/recipes/apache2/apache2-2.2.14/configure.in.patch
@@ -0,0 +1,27 @@
+Index: httpd-2.2.14/srclib/apr/configure.in
+===================================================================
+--- httpd-2.2.14.orig/srclib/apr/configure.in
++++ httpd-2.2.14/srclib/apr/configure.in
+@@ -923,7 +923,7 @@ AC_CHECK_FUNCS([mmap munmap shm_open shm
+ create_area])
+
+ APR_CHECK_DEFINE(MAP_ANON, sys/mman.h)
+-AC_CHECK_FILE(/dev/zero)
++APR_CHECK_FILE(/dev/zero)
+
+ # Not all systems can mmap /dev/zero (such as HP-UX). Check for that.
+ if test "$ac_cv_func_mmap" = "yes" &&
+Index: httpd-2.2.14/configure.in
+===================================================================
+--- httpd-2.2.14.orig/configure.in
++++ httpd-2.2.14/configure.in
+@@ -61,6 +61,9 @@ APR_MKDIR_P_CHECK($top_srcdir/build/mkdi
+
+ dnl ## Run configure for packages Apache uses
+
++dnl first configure subdirs
++AC_CONFIG_SUBDIRS(srclib/apr srclib/apr-util srclib/prce)
++
+ dnl shared library support for these packages doesn't currently
+ dnl work on some platforms
+
diff --git a/recipes/apache2/apache2-2.2.14/dftables-makefile-patch b/recipes/apache2/apache2-2.2.14/dftables-makefile-patch
new file mode 100644
index 0000000000..ac966db282
--- /dev/null
+++ b/recipes/apache2/apache2-2.2.14/dftables-makefile-patch
@@ -0,0 +1,10 @@
+--- http-2.2.3/srclib/pcre/Makefile.in-orig
++++ http-2.2.3/srclib/pcre/Makefile.in 2005-12-20 13:12:03.000000000 -0500
+@@ -15,6 +15,6 @@
+ $(LINK) $(EXTRA_LDFLAGS) dftables.lo $(EXTRA_LIBS)
+
+ $(srcdir)/chartables.c: dftables
+- ./dftables $@
++ dftables $@
+
+ pcre.lo: $(srcdir)/chartables.c
diff --git a/recipes/apache2/apache2-2.2.14/server-makefile-patch b/recipes/apache2/apache2-2.2.14/server-makefile-patch
new file mode 100644
index 0000000000..f1349cb6a4
--- /dev/null
+++ b/recipes/apache2/apache2-2.2.14/server-makefile-patch
@@ -0,0 +1,11 @@
+--- http-2.0.54/server/Makefile.in-old 2005-12-20 13:26:56.000000000 -0500
++++ http-2.0.54/server/Makefile.in 2005-12-20 13:27:22.000000000 -0500
+@@ -27,7 +27,7 @@
+ $(LINK) $(EXTRA_LDFLAGS) $(gen_test_char_OBJECTS) $(EXTRA_LIBS)
+
+ test_char.h: gen_test_char
+- ./gen_test_char > test_char.h
++ gen_test_char > test_char.h
+
+ util.lo: test_char.h
+
diff --git a/recipes/apache2/apache2-native_2.2.14.bb b/recipes/apache2/apache2-native_2.2.14.bb
new file mode 100644
index 0000000000..460c3fdf9d
--- /dev/null
+++ b/recipes/apache2/apache2-native_2.2.14.bb
@@ -0,0 +1,40 @@
+SECTION = "net"
+DEPENDS = "expat pcre"
+
+inherit native
+
+PR ="r0"
+SRC_URI = "http://www.apache.org/dist/httpd/httpd-${PV}.tar.bz2"
+
+S = "${WORKDIR}/httpd-${PV}"
+
+do_configure () {
+ ./configure --with-included-apr --prefix=${prefix}
+}
+
+do_stage () {
+ install -d ${STAGING_BINDIR_NATIVE}
+ cp srclib/pcre/dftables ${STAGING_BINDIR_NATIVE}
+ cp server/gen_test_char ${STAGING_BINDIR_NATIVE}
+ cp srclib/apr/apr-1-config ${STAGING_BINDIR_NATIVE}
+ cp srclib/apr-util/apu-1-config ${STAGING_BINDIR_NATIVE}
+ cp support/apxs ${STAGING_BINDIR_NATIVE}
+ chmod 755 ${STAGING_BINDIR_NATIVE}/apxs
+ mkdir -p ${STAGING_DIR_NATIVE}//usr/build
+ cp build/*.mk ${STAGING_DIR_NATIVE}/usr/build
+ cp build/instdso.sh ${STAGING_DIR_NATIVE}/usr/build
+ cp .libs/httpd ${STAGING_BINDIR_NATIVE}
+
+ (cd srclib/apr/.libs; tar -cf - libapr-*.so* ) |
+ (cd ${STAGING_LIBDIR_NATIVE}; tar -xf - )
+ (cd srclib/apr-util/.libs; tar -cf - libaprutil-*.so* ) |
+ (cd ${STAGING_LIBDIR_NATIVE}; tar -xf - )
+
+ mkdir -p ${STAGING_INCDIR_NATIVE}/apache2
+ cp include/* ${STAGING_INCDIR_NATIVE}/apache2
+ cp os/unix/os.h ${STAGING_INCDIR_NATIVE}/apache2
+ cp os/unix/unixd.h ${STAGING_INCDIR_NATIVE}/apache2
+
+ cp support/envvars-std ${STAGING_BINDIR_NATIVE}/envvars
+ chmod 755 ${STAGING_BINDIR_NATIVE}/envvars
+}
diff --git a/recipes/apache2/apache2_2.2.14.bb b/recipes/apache2/apache2_2.2.14.bb
new file mode 100644
index 0000000000..8990d53050
--- /dev/null
+++ b/recipes/apache2/apache2_2.2.14.bb
@@ -0,0 +1,114 @@
+SECTION = "net"
+DESCRIPTION = "The apache v2 web server"
+DEPENDS = "apache2-native openssl expat pcre"
+RDEPENDS += "openssl"
+
+PR = "r0"
+
+SRC_URI = "http://apache.mirrors.tds.net/httpd/httpd-${PV}.tar.bz2 \
+ file://dftables-makefile-patch;patch=1 \
+ file://apr-sockets-patch;patch=1 \
+ file://configure-patch;patch=1 \
+ file://server-makefile-patch;patch=1 \
+ file://configure.in.patch;patch=1 \
+ file://apr.h.in.patch;patch=1 \
+ file://init"
+
+#
+# over-ride needed since apache unpacks into httpd
+#
+S = "${WORKDIR}/httpd-${PV}"
+
+#
+# implications - autotools defines suitable do_configure, do_install, etc.
+# update-rc.d adds hooks for rc-update.
+#
+#
+inherit autotools update-rc.d
+
+#
+# implications - used by update-rc.d scripts
+#
+INITSCRIPT_NAME = "apache2"
+INITSCRIPT_PARAMS = "defaults 91 20"
+LEAD_SONAME = "libapr-1.so.0"
+
+CONFFILES_${PN} = "${sysconfdir}/${PN}/httpd.conf \
+ ${sysconfdir}/${PN}/magic \
+ ${sysconfdir}/${PN}/mime.types \
+ ${sysconfdir}/init.d/${PN} "
+
+#
+PACKAGES = "${PN}-doc ${PN}-dev ${PN}-dbg ${PN}"
+
+# we override here rather than append so that .so links are
+# included in the runtime package rather than here (-dev)
+# and to get build, icons, error into the -dev package
+FILES_${PN}-dev = "${datadir}/${PN}/build \
+ ${datadir}/${PN}/icons \
+ ${datadir}/${PN}/error \
+ ${bindir}/apr-config ${bindir}/apu-config \
+ ${libdir}/apr*.exp \
+ ${includedir}/${PN} \
+ ${libdir}/*.la \
+ ${libdir}/*.a"
+
+# manual to manual
+FILES_${PN}-doc += " ${datadir}/${PN}/manual"
+
+#
+# override this too - here is the default, less datadir
+#
+FILES_${PN} = "${bindir} ${sbindir} ${libexecdir} ${libdir}/lib*.so.* ${sysconfdir} \
+ ${sharedstatedir} ${localstatedir} /bin /sbin /lib/*.so* \
+ ${libdir}/${PN}"
+
+# we want htdocs and cgi-bin to go with the binary
+FILES_${PN} += "${datadir}/${PN}/htdocs ${datadir}/${PN}/cgi-bin"
+
+#make sure the lone .so links also get wrapped in the base package
+FILES_${PN} += " ${libdir}/lib*.so ${libdir}/pkgconfig/*"
+
+CFLAGS_append = " -DPATH_MAX=4096"
+CFLAGS_prepend = "-I${STAGING_INCDIR}/openssl "
+EXTRA_OECONF = "--enable-ssl \
+ --with-ssl=${STAGING_LIBDIR}/.. \
+ --with-expat=${STAGING_LIBDIR}/.. \
+ --enable-info \
+ --enable-rewrite \
+ --with-dbm=sdbm \
+ --with-berkeley-db=no \
+ --localstatedir=/var/${PN} \
+ --with-gdbm=no \
+ --with-ndbm=no \
+ --includedir=${includedir}/${PN} \
+ --datadir=${datadir}/${PN} \
+ --sysconfdir=${sysconfdir}/${PN} \
+ "
+
+#
+# here we over-ride the autotools provided do_configure.
+#
+do_configure() {
+ ( cd srclib/apr; ./buildconf )
+ oe_runconf
+}
+
+do_compile_prepend() {
+ ln -sf ${S}/srclib/apr/${TARGET_PREFIX}libtool ${S}/srclib/apr/libtool
+}
+
+do_install_append() {
+ install -d ${D}/${sysconfdir}/init.d
+ cat ${WORKDIR}/init | \
+ sed -e 's,/usr/sbin/,${sbindir}/,g' \
+ -e 's,/usr/bin/,${bindir}/,g' \
+ -e 's,/usr/lib,${libdir}/,g' \
+ -e 's,/etc/,${sysconfdir}/,g' \
+ -e 's,/usr/,${prefix}/,g' > ${D}/${sysconfdir}/init.d/${PN}
+ chmod 755 ${D}/${sysconfdir}/init.d/${PN}
+# remove the goofy original files...
+ rm -rf ${D}/${sysconfdir}/${PN}/original
+# Expat should be found in the staging area via DEPENDS...
+ rm -f ${D}/${libdir}/libexpat.*
+}
diff --git a/recipes/asciidoc/asciidoc_8.5.1.bb b/recipes/asciidoc/asciidoc_8.5.1.bb
new file mode 100644
index 0000000000..7e7fde7e91
--- /dev/null
+++ b/recipes/asciidoc/asciidoc_8.5.1.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "AsciiDoc is a text document format for writing short documents, articles, books and UNIX man pages."
+HOMEPAGE = "http://www.methods.co.nz/asciidoc/"
+LICENSE = "GPLv2"
+
+SRC_URI = "http://mesh.dl.sourceforge.net/project/asciidoc/asciidoc/${PV}/asciidoc-${PV}.tar.gz"
+
+inherit distutils-base autotools_stage pkgconfig
+
+export vimdir = "${D}${sysconfdir}/vim"
+export DESTDIR = "${D}"
+
+do_install() {
+ sed -i -e s:/etc/vim::g ${S}/Makefile
+ oe_runmake -e install
+}
+
+FILES_${PN} += "${sysconfdir}"
+
+# TODO: only depend on codecs, csv, doctest, fnmatch, getopt, HTMLParser, locale, optparse, os, re, shutil, StringIO, subprocess, sys, tempfile, time, traceback, urlparse, zipfile
+RDEPENDS_${PN} += "python-modules"
diff --git a/recipes/asio/asio_1.1.1.bb b/recipes/asio/asio_1.1.1.bb
index a724921676..e0b610d8c9 100644
--- a/recipes/asio/asio_1.1.1.bb
+++ b/recipes/asio/asio_1.1.1.bb
@@ -4,6 +4,8 @@ SECTION = "libs"
PRIORITY = "optional"
LICENSE = "Boost Software License"
+PR = "r1"
+
DEPENDS = "boost"
SRC_URI = "${SOURCEFORGE_MIRROR}/asio/${PN}-${PV}.tar.bz2"
diff --git a/recipes/balsa/balsa-2.4.1/gnome-icon-theme.patch b/recipes/balsa/balsa-2.4.1/gnome-icon-theme.patch
new file mode 100644
index 0000000000..7e16171ecc
--- /dev/null
+++ b/recipes/balsa/balsa-2.4.1/gnome-icon-theme.patch
@@ -0,0 +1,27 @@
+https://bugzilla.gnome.org/show_bug.cgi?id=596309
+Index: balsa-2.4.1/src/balsa-app.c
+===================================================================
+--- balsa-2.4.1.orig/src/balsa-app.c
++++ balsa-2.4.1/src/balsa-app.c
+@@ -436,6 +436,9 @@ balsa_app_init(void)
+ /* Message filing */
+ balsa_app.folder_mru=NULL;
+ balsa_app.fcc_mru=NULL;
++
++ g_object_set (gtk_settings_get_default (),
++ "gtk-fallback-icon-theme", "gnome", NULL);
+ }
+
+ void
+Index: balsa-2.4.1/configure.in
+===================================================================
+--- balsa-2.4.1.orig/configure.in
++++ balsa-2.4.1/configure.in
+@@ -329,6 +329,7 @@ glib-2.0 >= 2.16.0
+ gtk+-2.0 >= 2.14.0
+ gmime-2.4
+ gio-2.0
++gnome-icon-theme
+ $gnome_extras
+ ])
+
diff --git a/recipes/balsa/balsa_2.4.1.bb b/recipes/balsa/balsa_2.4.1.bb
index c66ec5a2bc..59b0b10ac0 100644
--- a/recipes/balsa/balsa_2.4.1.bb
+++ b/recipes/balsa/balsa_2.4.1.bb
@@ -2,9 +2,12 @@ DESCRIPTION = "Robust and configurable e-mail client for GNOME"
HOMEPAGE = "http://pawsa.fedorapeople.org/balsa/"
SECTION = "x11/network"
LICENSE = "GPL"
-SRC_URI = "http://pawsa.fedorapeople.org/balsa/${P}.tar.bz2"
+SRC_URI = "http://pawsa.fedorapeople.org/balsa/${P}.tar.bz2 \
+ file://gnome-icon-theme.patch;patch=1"
+PR = "r1"
-DEPENDS = "glib-2.0 libgmime-2.4 gtk+ intltool-native libesmtp libxml-parser-perl-native"
+DEPENDS = "glib-2.0 libgmime-2.4 gnome-icon-theme gtk+ intltool-native libesmtp libxml-parser-perl-native"
+RDEPENDS_${PN} = "gnome-icon-theme"
# FIXME: It is possible to build several variants of balsa: lite (SSL, gqlite/GPE, maybe HTML),
# standard (GNOME, spell checking, HTML), full (Kerberos, LDAP, PGP, Rubrica, X-Face)
diff --git a/recipes/blackbox/blackbox_0.70.1.bb b/recipes/blackbox/blackbox_0.70.1.bb
index 05010f97bb..0376f99980 100644
--- a/recipes/blackbox/blackbox_0.70.1.bb
+++ b/recipes/blackbox/blackbox_0.70.1.bb
@@ -16,6 +16,7 @@ EXTRA_OECONF = "--disable-i18n --without-imlib --with-xpm --with-gnome-menus"
do_install_append() {
sed -i s#${STAGING_LIBDIR}#${libdir}#g ${D}/${libdir}/pkgconfig/libbt.pc
}
-do_stage_append () {
+
+do_stage () {
sed -i s#${STAGING_LIBDIR}#${libdir}#g ${STAGING_LIBDIR}/pkgconfig/libbt.pc
}
diff --git a/recipes/blipomoko/blipomoko_git.bb b/recipes/blipomoko/blipomoko_git.bb
new file mode 100644
index 0000000000..82f190a73c
--- /dev/null
+++ b/recipes/blipomoko/blipomoko_git.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "python-elementary and python-blipapi based blip.pl client"
+AUTHOR = "Sebastian Krzyszkowiak <seba.dos1@gmail.com>"
+HOMEPAGE = "http://wiki.github.com/dos1/blipomoko"
+LICENSE ?= "GPL"
+RDEPENDS = "python-elementary python-dbus python-edbus python-ecore"
+SECTION = "x11/applications"
+
+SRC_URI = "git://github.com/dos1/blipomoko.git;protocol=http"
+S = "${WORKDIR}/git"
+
+PV = "0.0+gitr${SRCREV}"
+PR = "r0"
+
+inherit distutils
+
+FILES_${PN} += "/usr/share/blipomoko"
+
diff --git a/recipes/blueman/blueman_1.10.bb b/recipes/blueman/blueman_1.10.bb
new file mode 100644
index 0000000000..61309023c5
--- /dev/null
+++ b/recipes/blueman/blueman_1.10.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "Blueman is a GTK+ Bluetooth Manager"
+HOMEPAGE = "http://www.blueman-project.org/"
+SECTION = "optional"
+DEPENDS = "gtk+ glib-2.0 bluez4 intltool python python-native python-pyrex startup-notification"
+RDEPENDS = "python-dbus python-pygobject python dbus bluez4 python-pygtk python-notify obex-data-server \
+"
+
+PR = "r1"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF += "--with-no-runtime-deps-check"
+
+BLUEZ_LIBS = "-L${libdir} -lbluetooth"
+BLUEZ_CFLAGS = "-I${includedir}"
+
+SRC_URI = "\
+ http://download.tuxfamily.org/blueman/blueman-${PV}.tar.gz\
+ "
+
+FILES_${PN}-dbg += "${libdir}/python2.6/site-packages/.debug"
+FILES_${PN} += "${libdir} ${datadir}"
+
+do_configure_prepend() {
+ sed -i "s/py_prefix=.*$/py_prefix=\"${@"${STAGING_DIR_TARGET}".replace("/","\/")}\/usr\"/" ${S}/acinclude.m4
+ sed -i "s/py_exec_prefix=.*$/py_exec_prefix=\"${@"${STAGING_DIR_TARGET}".replace("/","\/")}\/usr\"/" ${S}/acinclude.m4
+}
diff --git a/recipes/blueman/blueman_1.21.bb b/recipes/blueman/blueman_1.21.bb
new file mode 100644
index 0000000000..744c05302e
--- /dev/null
+++ b/recipes/blueman/blueman_1.21.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "GTK+ Bluetooth Manager, designed for common bluetooth tasks."
+HOMEPAGE = "http://blueman-project.org/"
+SECTION = "optional"
+
+DEPENDS = "gtk+ glib-2.0 bluez4 intltool python \
+ python-native python-pyrex \
+ startup-notification \
+"
+
+RDEPENDS = "python-dbus python-pygobject python \
+ dbus bluez4 python-pygtk obex-data-server \
+"
+
+PR = "r1"
+
+SRC_URI = "http://download.tuxfamily.org/blueman/blueman-${PV}.tar.gz"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF += "--with-no-runtime-deps-check"
+
+do_configure_prepend() {
+ sed -i "s/py_prefix=.*$/py_prefix=\"${@"${STAGING_DIR_TARGET}".replace("/","\/")}\/usr\"/" ${S}/acinclude.m4
+ sed -i "s/py_exec_prefix=.*$/py_exec_prefix=\"${@"${STAGING_DIR_TARGET}".replace("/","\/")}\/usr\"/" ${S}/acinclude.m4
+}
+
+FILES_${PN}-dbg += "${libdir}/python2.6/site-packages/.debug"
+FILES_${PN} += "${libdir} ${datadir}"
+
+BLUEZ_LIBS = "-L${libdir} -lbluetooth"
+BLUEZ_CFLAGS = "-I${includedir}"
diff --git a/recipes/bluez/bluez4.inc b/recipes/bluez/bluez4.inc
index d0aeaefa8f..ab5dea1bde 100644
--- a/recipes/bluez/bluez4.inc
+++ b/recipes/bluez/bluez4.inc
@@ -4,20 +4,12 @@ SECTION = "libs"
PRIORITY = "optional"
LICENSE = "GPL"
DEPENDS = "gst-plugins-base alsa-lib virtual/libusb0 dbus-glib"
-INC_PR = "r4"
+INC_PR = "r5"
# temporary solution until bug 5176 is properly fixed
-PROVIDES_bluez4 += "bluez-utils bluez-libs"
-RPROVIDES_bluez4 += "bluez-utils bluez-libs"
-
-# For angstrom we want this to replace at least bluez-libs
-PROVIDES_append_angstrom = " bluez-utils-dbus bluez-utils bluez-libs"
-RPROVIDES_bluez4-dev_angstrom = "bluez-libs-dev"
-
-# temporary solution for KaeilOS just to replace at least bluez-libs
-PROVIDES_append_kaeilos = " bluez-utils-dbus bluez-utils bluez-libs"
-RPROVIDES_bluez4-dev_kaeilos = "bluez-libs-dev"
-
+PROVIDES += "bluez-utils bluez-libs bluez-utils-dbus"
+RPROVIDES_bluez4 += "bluez-utils bluez-libs bluez-utils-dbus"
+RPROVIDES_bluez4-dev = "bluez-libs-dev"
SRC_URI = "\
http://www.kernel.org/pub/linux/bluetooth/bluez-${PV}.tar.gz \
diff --git a/recipes/bluez/bluez4_4.56.bb b/recipes/bluez/bluez4_4.56.bb
index ad2c957bfc..79e3005462 100644
--- a/recipes/bluez/bluez4_4.56.bb
+++ b/recipes/bluez/bluez4_4.56.bb
@@ -2,6 +2,7 @@ require bluez4.inc
DEFAULT_PREFERENCE = "-1"
DEFAULT_PREFERENCE_angstrom = "1"
+DEFAULT_PREFERENCE_shr = "1"
DEPENDS += "libsndfile1"
@@ -10,5 +11,6 @@ PR = "${INC_PR}.0"
# Not all distros have a recent enough udev
BTUDEV = " --disable-udevrules"
BTUDEV_angstrom = " --enable-udevrules"
+BTUDEV_shr = " --enable-udevrules"
EXTRA_OECONF += "${BTUDEV}"
diff --git a/recipes/bluez/obexd_0.19.bb b/recipes/bluez/obexd_0.19.bb
new file mode 100644
index 0000000000..e1cc6ce8ff
--- /dev/null
+++ b/recipes/bluez/obexd_0.19.bb
@@ -0,0 +1,10 @@
+DESCRIPTION = "OBEX Server and Client"
+DEPENDS = "openobex glib-2.0 dbus bluez4"
+
+LICENSE = "GPLv2"
+
+SRC_URI = "http://www.kernel.org/pub/linux/bluetooth/obexd-${PV}.tar.gz"
+
+inherit autotools_stage
+
+FILES_${PN} += "${datadir}/dbus-1/"
diff --git a/recipes/boost/boost-36.inc b/recipes/boost/boost-36.inc
index 4bd065f13a..1200e9a5a6 100644
--- a/recipes/boost/boost-36.inc
+++ b/recipes/boost/boost-36.inc
@@ -128,7 +128,7 @@ BJAM_OPTS = '${BJAM_TOOLS} \
do_configure_prepend() {
cp -f boost/config/platform/linux.hpp boost/config/platform/linux-gnueabi.hpp
- echo 'using gcc : 4.3.1 : ${CXX} : compileflags -DBOOST_SP_USE_PTHREADS -I${includedir} linkflags -L${libdir} ;' >> ${S}/tools/build/v2/user-config.jam
+ echo "using gcc : $(${CXX} -dumpversion) : ${CXX} : compileflags -DBOOST_SP_USE_PTHREADS -I${includedir} linkflags -L${libdir} ;" >> ${S}/tools/build/v2/user-config.jam
}
do_compile() {
diff --git a/recipes/boost/boost_1.36.0.bb b/recipes/boost/boost_1.36.0.bb
index 140ab290ba..f4fad8ced4 100644
--- a/recipes/boost/boost_1.36.0.bb
+++ b/recipes/boost/boost_1.36.0.bb
@@ -1,9 +1,15 @@
include boost-36.inc
-PR = "r6"
+PR = "r8"
SRC_URI = "${SOURCEFORGE_MIRROR}/boost/${BOOST_P}.tar.bz2 \
file://arm-intrinsics.patch;patch=1 \
+ file://01-no-serialization-test.patch;patch=1 \
+ file://02-atomic-count-pthreads-on-arm.patch;patch=1 \
+ file://03-exception-clone-destructor-fix.patch;patch=1 \
+ file://gcc-44.diff;patch=1 \
+ file://uclibc.patch;patch=1 \
+ file://sscanf.patch;patch=1 \
"
BJAM_OPTS = '${BJAM_TOOLS} \
diff --git a/recipes/boost/files/01-no-serialization-test.patch b/recipes/boost/files/01-no-serialization-test.patch
new file mode 100644
index 0000000000..f1c9ca8572
--- /dev/null
+++ b/recipes/boost/files/01-no-serialization-test.patch
@@ -0,0 +1,12 @@
+diff -purN orig/libs/serialization/build/Jamfile.v2 boost_1_36_0/libs/serialization/build/Jamfile.v2
+--- orig/libs/serialization/build/Jamfile.v2 2008-09-11 18:45:03.000000000 -0400
++++ boost_1_36_0/libs/serialization/build/Jamfile.v2 2008-09-11 18:45:40.000000000 -0400
+@@ -8,7 +8,7 @@
+
+ project boost/serialization
+ : source-location ../src
+- : requirements <dependency>../../config/test/all//BOOST_NO_STD_LOCALE
++ : requirements
+ <conditional>@include-spirit
+ ;
+
diff --git a/recipes/boost/files/02-atomic-count-pthreads-on-arm.patch b/recipes/boost/files/02-atomic-count-pthreads-on-arm.patch
new file mode 100644
index 0000000000..c6f2e19685
--- /dev/null
+++ b/recipes/boost/files/02-atomic-count-pthreads-on-arm.patch
@@ -0,0 +1,17 @@
+diff -purN orig/boost/detail/atomic_count.hpp boost_1_36_0/boost/detail/atomic_count.hpp
+--- orig/boost/detail/atomic_count.hpp 2008-09-12 11:48:45.000000000 -0400
++++ boost_1_36_0/boost/detail/atomic_count.hpp 2008-09-12 14:36:33.000000000 -0400
+@@ -93,6 +93,13 @@ typedef long atomic_count;
+
+ # include <boost/detail/atomic_count_pthreads.hpp>
+
++#elif defined(BOOST_HAS_PTHREADS) && defined(__arm__) && !defined(__ARM_ARCH_7A__) && !defined(__ARM_ARCH_6J__)
++
++// MLC: need this on ARM, otherwise it'll attempt to use atomic_count_sync,
++// which has no ARM implementation.
++# define BOOST_AC_USE_PTHREADS
++# include <boost/detail/atomic_count_pthreads.hpp>
++
+ #elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) )
+
+ # include <boost/detail/atomic_count_gcc_x86.hpp>
diff --git a/recipes/boost/files/03-exception-clone-destructor-fix.patch b/recipes/boost/files/03-exception-clone-destructor-fix.patch
new file mode 100644
index 0000000000..d78759b5e3
--- /dev/null
+++ b/recipes/boost/files/03-exception-clone-destructor-fix.patch
@@ -0,0 +1,12 @@
+diff -purN orig/boost/exception/enable_current_exception.hpp boost_1_36_0/boost/exception/enable_current_exception.hpp
+--- orig/boost/exception/enable_current_exception.hpp 2008-09-12 11:48:45.000000000 -0400
++++ boost_1_36_0/boost/exception/enable_current_exception.hpp 2008-09-12 15:13:06.000000000 -0400
+@@ -96,6 +96,8 @@ boost
+ *be1 = *be2;
+ }
+
++ ~exception_clone() throw() { }
++
+ private:
+
+ detail::atomic_count mutable count_;
diff --git a/recipes/boost/files/arm-intrinsics.patch b/recipes/boost/files/arm-intrinsics.patch
index 860b6df67c..1f1eed684a 100644
--- a/recipes/boost/files/arm-intrinsics.patch
+++ b/recipes/boost/files/arm-intrinsics.patch
@@ -5,7 +5,7 @@ diff -Nurd boost_1_36_0.orig/boost/detail/atomic_count_sync.hpp boost_1_36_0.arm
void operator++()
{
-+#ifdef __ARM_ARCH_7A__
++#if defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_6J__)
+ int v1, tmp;
+ asm volatile ("1: \n\t"
+ "ldrex %0, %1 \n\t"
@@ -22,7 +22,7 @@ diff -Nurd boost_1_36_0.orig/boost/detail/atomic_count_sync.hpp boost_1_36_0.arm
long operator--()
{
-+#ifdef __ARM_ARCH_7A__
++#if defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_6J__)
+ int v1, tmp;
+ asm volatile ("1: \n\t"
+ "ldrex %0, %1 \n\t"
@@ -40,7 +40,7 @@ diff -Nurd boost_1_36_0.orig/boost/detail/atomic_count_sync.hpp boost_1_36_0.arm
operator long() const
{
-+#if __ARM_ARCH_7A__
++#if defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_6J__)
+ return value_;
+#else
return __sync_fetch_and_add( &value_, 0 );
diff --git a/recipes/boost/files/gcc-44.diff b/recipes/boost/files/gcc-44.diff
new file mode 100644
index 0000000000..ae072e06d5
--- /dev/null
+++ b/recipes/boost/files/gcc-44.diff
@@ -0,0 +1,304 @@
+Index: /boost/python/call.hpp
+===================================================================
+--- /boost/python/call.hpp (revision 24055)
++++ /boost/python/call.hpp (revision 48960)
+@@ -39,5 +39,8 @@
+ # endif // CALL_DWA2002411_HPP
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1
+ # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \
+ && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201)))
+@@ -77,3 +80,4 @@
+ # undef N
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif
+Index: /boost/python/object/value_holder.hpp
+===================================================================
+--- /boost/python/object/value_holder.hpp (revision 32284)
++++ /boost/python/object/value_holder.hpp (revision 48960)
+@@ -118,5 +118,8 @@
+ // --------------- value_holder ---------------
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == 1
+ # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \
+ && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201)))
+@@ -164,3 +167,4 @@
+ # undef N
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif
+Index: /boost/python/object/make_holder.hpp
+===================================================================
+--- /boost/python/object/make_holder.hpp (revision 39191)
++++ /boost/python/object/make_holder.hpp (revision 48960)
+@@ -48,5 +48,8 @@
+ # endif // MAKE_HOLDER_DWA20011215_HPP
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1
+ # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \
+ && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201)))
+@@ -103,3 +106,4 @@
+ # undef N
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif
+Index: /boost/python/object/pointer_holder.hpp
+===================================================================
+--- /boost/python/object/pointer_holder.hpp (revision 41521)
++++ /boost/python/object/pointer_holder.hpp (revision 48960)
+@@ -171,5 +171,8 @@
+
+ /* --------------- pointer_holder --------------- */
+-#elif BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == 1
+ # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \
+ && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201)))
+@@ -213,3 +216,4 @@
+ # undef N
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif
+Index: /boost/python/call_method.hpp
+===================================================================
+--- /boost/python/call_method.hpp (revision 24614)
++++ /boost/python/call_method.hpp (revision 48960)
+@@ -38,5 +38,8 @@
+ # endif // CALL_METHOD_DWA2002411_HPP
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1
+ # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \
+ && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201)))
+@@ -77,3 +80,4 @@
+ # undef N
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif // BOOST_PP_IS_ITERATING
+Index: /boost/python/detail/target.hpp
+===================================================================
+--- /boost/python/detail/target.hpp (revision 24614)
++++ /boost/python/detail/target.hpp (revision 48960)
+@@ -38,5 +38,8 @@
+
+ /* --------------- function pointers --------------- */
+-#elif BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == BOOST_PYTHON_FUNCTION_POINTER
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == BOOST_PYTHON_FUNCTION_POINTER
+ # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \
+ && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201)))
+@@ -80,3 +83,4 @@
+ # undef Q
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif
+Index: /boost/python/detail/result.hpp
+===================================================================
+--- /boost/python/detail/result.hpp (revision 43799)
++++ /boost/python/detail/result.hpp (revision 48960)
+@@ -87,5 +87,8 @@
+
+ /* --------------- function pointers --------------- */
+-#elif BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == BOOST_PYTHON_FUNCTION_POINTER
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == BOOST_PYTHON_FUNCTION_POINTER
+ # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \
+ && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201)))
+@@ -129,3 +132,4 @@
+ # undef Q
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif
+Index: /boost/python/signature.hpp
+===================================================================
+--- /boost/python/signature.hpp (revision 24055)
++++ /boost/python/signature.hpp (revision 48960)
+@@ -114,5 +114,8 @@
+ # endif // SIGNATURE_JDG20020813_HPP
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1 // defined(BOOST_PP_IS_ITERATING)
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1 // defined(BOOST_PP_IS_ITERATING)
+
+ # define N BOOST_PP_ITERATION()
+@@ -177,3 +180,4 @@
+ # undef N
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif // !defined(BOOST_PP_IS_ITERATING)
+Index: /boost/mpl/aux_/numeric_op.hpp
+===================================================================
+--- /boost/mpl/aux_/numeric_op.hpp (revision 30670)
++++ /boost/mpl/aux_/numeric_op.hpp (revision 48960)
+@@ -288,5 +288,8 @@
+ ///// iteration, depth == 1
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1
+
+ # define i_ BOOST_PP_FRAME_ITERATION(1)
+@@ -309,3 +312,4 @@
+ # undef i_
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif // BOOST_PP_IS_ITERATING
+Index: /boost/mpl/aux_/advance_backward.hpp
+===================================================================
+--- /boost/mpl/aux_/advance_backward.hpp (revision 24874)
++++ /boost/mpl/aux_/advance_backward.hpp (revision 48960)
+@@ -80,5 +80,8 @@
+ ///// iteration, depth == 1
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1
+ #define i_ BOOST_PP_FRAME_ITERATION(1)
+
+@@ -122,3 +125,4 @@
+ # undef AUX778076_ITER_0
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif // BOOST_PP_IS_ITERATING
+Index: /boost/mpl/aux_/full_lambda.hpp
+===================================================================
+--- /boost/mpl/aux_/full_lambda.hpp (revision 24896)
++++ /boost/mpl/aux_/full_lambda.hpp (revision 48960)
+@@ -228,5 +228,8 @@
+ ///// iteration, depth == 1
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1
+ #define i_ BOOST_PP_FRAME_ITERATION(1)
+
+@@ -348,3 +351,4 @@
+
+ #undef i_
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif // BOOST_PP_IS_ITERATING
+Index: /boost/mpl/aux_/advance_forward.hpp
+===================================================================
+--- /boost/mpl/aux_/advance_forward.hpp (revision 24874)
++++ /boost/mpl/aux_/advance_forward.hpp (revision 48960)
+@@ -80,5 +80,8 @@
+ ///// iteration, depth == 1
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1
+ #define i_ BOOST_PP_FRAME_ITERATION(1)
+
+@@ -121,3 +124,4 @@
+ # undef AUX778076_ITER_0
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif // BOOST_PP_IS_ITERATING
+Index: /boost/mpl/unpack_args.hpp
+===================================================================
+--- /boost/mpl/unpack_args.hpp (revision 24874)
++++ /boost/mpl/unpack_args.hpp (revision 48960)
+@@ -112,5 +112,8 @@
+ ///// iteration, depth == 1
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1
+
+ # define i_ BOOST_PP_FRAME_ITERATION(1)
+@@ -144,3 +147,4 @@
+ # undef i_
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif // BOOST_PP_IS_ITERATING
+Index: /boost/mpl/bind.hpp
+===================================================================
+--- /boost/mpl/bind.hpp (revision 25875)
++++ /boost/mpl/bind.hpp (revision 48960)
+@@ -362,5 +362,8 @@
+ ///// iteration, depth == 1
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1
+
+ # define i_ BOOST_PP_FRAME_ITERATION(1)
+@@ -545,3 +548,4 @@
+ # undef j_
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif // BOOST_PP_IS_ITERATING
+Index: /boost/mpl/apply.hpp
+===================================================================
+--- /boost/mpl/apply.hpp (revision 24874)
++++ /boost/mpl/apply.hpp (revision 48960)
+@@ -136,5 +136,8 @@
+ ///// iteration, depth == 1
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1
+
+ # define i_ BOOST_PP_FRAME_ITERATION(1)
+@@ -223,3 +226,4 @@
+ # undef i_
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif // BOOST_PP_IS_ITERATING
+Index: /boost/mpl/apply_wrap.hpp
+===================================================================
+--- /boost/mpl/apply_wrap.hpp (revision 24892)
++++ /boost/mpl/apply_wrap.hpp (revision 48960)
+@@ -79,5 +79,8 @@
+ ///// iteration, depth == 1
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1
+
+ # define i_ BOOST_PP_FRAME_ITERATION(1)
+@@ -198,3 +201,4 @@
+ # undef j_
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif // BOOST_PP_IS_ITERATING
diff --git a/recipes/boost/files/sscanf.patch b/recipes/boost/files/sscanf.patch
new file mode 100644
index 0000000000..11d1c96a47
--- /dev/null
+++ b/recipes/boost/files/sscanf.patch
@@ -0,0 +1,13 @@
+Index: boost_1_36_0/boost/test/impl/debug.ipp
+===================================================================
+--- boost_1_36_0.orig/boost/test/impl/debug.ipp 2009-11-11 22:45:05.239343879 +0100
++++ boost_1_36_0/boost/test/impl/debug.ipp 2009-11-11 22:45:11.981848731 +0100
+@@ -277,7 +277,7 @@
+ while( *name_end && *name_end != ')' )
+ ++name_end;
+
+- std::sscanf( name_end+1, "%*s%d", &m_parent_pid );
++ sscanf( name_end+1, "%*s%d", &m_parent_pid );
+
+ m_binary_name.assign( name_beg+1, name_end );
+
diff --git a/recipes/bootchart-lite/bootchart-lite_svn.bb b/recipes/bootchart-lite/bootchart-lite_svn.bb
index 092aee9dcd..1368c92105 100644
--- a/recipes/bootchart-lite/bootchart-lite_svn.bb
+++ b/recipes/bootchart-lite/bootchart-lite_svn.bb
@@ -3,7 +3,7 @@ AUTHOR = "Fred Chien"
LICENSE = "GPLv2"
SECTION = "console/utils"
HOMEPAGE = "http://code.google.com/p/bootchart-lite/"
-PV = "0.1+svnr${SRCREV}"
+PV = "0.1+svnr${SRCPV}"
PR = "r0"
SRC_URI = "svn://bootchart-lite.googlecode.com/svn/;module=trunk;proto=http"
@@ -12,7 +12,7 @@ S = "${WORKDIR}/trunk"
inherit autotools
pkg_postinst_${PN} () {
- install -d /etc/bootchart-lite
+ mkdir /etc/bootchart-lite
}
pkg_postrm_${PN} () {
diff --git a/recipes/bt-configure/bt-configure_git.bb b/recipes/bt-configure/bt-configure_git.bb
new file mode 100644
index 0000000000..226faa9b98
--- /dev/null
+++ b/recipes/bt-configure/bt-configure_git.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "Python keyring"
+SECTION = "console/network"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS = "python python-pygtk bluez4"
+
+PV = "1.0.0+gitr${SRCREV}"
+PR = "r1"
+
+ARCH_bt-configure = "all"
+
+SRC_URI = "git://github.com/nytowl/BT-Configure.git;protocol=http"
+
+inherit distutils
+
+S = ${WORKDIR}/git
+
+FILES_${PN} += "${datadir}"
+
diff --git a/recipes/bt-gps/bt-gps.bb b/recipes/bt-gps/bt-gps.bb
new file mode 100644
index 0000000000..414c37fb80
--- /dev/null
+++ b/recipes/bt-gps/bt-gps.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "Turns your Neo Freerunner into a bluetooth GPS"
+SECTION = "console/network"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS = "python python-pygtk gps-utils"
+
+SRC_URI = "http://handheldshell.com/software/fso/btgps.tgz \
+ "
+
+#inherit autotools
+
+S = ${WORKDIR}/bluetooth
+
+do_install() {
+ install -d ${D}/usr/share/applications
+ install -d ${D}/usr/bin
+ install -m 0755 ${S}/BtGPS.py ${D}/usr/bin
+ install -m 0755 ${S}/btgps.desktop ${D}/usr/share/applications
+}
+
+do_configure() {
+ exit 0
+}
+
+do_compile() {
+ exit 0
+}
diff --git a/recipes/busybox/busybox_1.14.3.bb b/recipes/busybox/busybox_1.14.3.bb
index 1634727854..8d45e1e880 100644
--- a/recipes/busybox/busybox_1.14.3.bb
+++ b/recipes/busybox/busybox_1.14.3.bb
@@ -4,7 +4,7 @@ PR = "${INC_PR}.0"
DEFAULT_PREFERENCE = "-1"
SRC_URI = "\
- http://www.busybox.net/downloads/busybox-${PV}.tar.gz \
+ http://www.busybox.net/downloads/busybox-${PV}.tar.gz;name=tarball \
\
file://udhcpscript.patch;patch=1 \
file://udhcpc-fix-nfsroot.patch;patch=1 \
@@ -27,6 +27,9 @@ SRC_URI = "\
file://mdev.conf \
"
+SRC_URI[tarball.md5sum] = "dfb197b8de260ff284f7222ed23614fe"
+SRC_URI[tarball.sha256sum] = "b5a0c76d414cca97fb21622a5d09fa5a58f59890f5c9ce4f8b851c4e8b73a163"
+
EXTRA_OEMAKE += "V=1 ARCH=${TARGET_ARCH} CROSS_COMPILE=${TARGET_PREFIX}"
do_configure_prepend () {
diff --git a/recipes/calibrator/calibrator_svn.bb b/recipes/calibrator/calibrator_svn.bb
index 3ac2793932..bd7bb1fc25 100644
--- a/recipes/calibrator/calibrator_svn.bb
+++ b/recipes/calibrator/calibrator_svn.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://monetdb.cwi.nl/Calibrator/"
LICENSE = "AS IS"
SRCREV = "21"
-PV = "0.9e+svn${SRCREV}"
+PV = "0.9e+svnr${SRCPV}"
PR = "r0"
SRC_URI = "svn://dev.bec-systems.com/svn/pub;module=calibrator;proto=http"
diff --git a/recipes/callrec/callrec_svn.bb b/recipes/callrec/callrec_svn.bb
new file mode 100644
index 0000000000..6930648ecc
--- /dev/null
+++ b/recipes/callrec/callrec_svn.bb
@@ -0,0 +1,70 @@
+DESCRIPTION = "a call recording application"
+HOMEPAGE = "none"
+SECTION = "system/applications"
+LICENSE = "GPLv3 or later"
+SRCNAME = "callrec"
+DEPENDS = "gtk+"
+RDEPENDS += "alsa-utils-alsactl alsa-utils-aplay"
+PV = "0.2.4+svnr${SRCPV}"
+PR = "r0"
+
+S = "${WORKDIR}/trunk"
+inherit autotools
+
+SRC_URI = "svn://svn.projects.openmoko.org/svnroot/callrec;module=trunk"
+FILES_${PN} += "${datadir} ${sysconfdir}"
+
+pkg_postinst_callrec_append() {
+ #!/bin/sh
+ #still a bit buggy, if the state path change for instance
+ files0="gsmhandset.state"
+ files1="gsmheadset.state"
+ files2="gsmspeakerout.state"
+ state_dir=`sed -n "s/^scenario_dir\s*=\s*//p" /etc/frameworkd.conf`
+ callrec_dir="/usr/share/callrec"
+
+ for index in 0 1 2
+ do
+ eval filename=\${files${index}}
+ current_file=${state_dir}/${filename}
+ patched="0"
+
+ if [ -r ${callrec_dir}/${filename} ]; then
+ echo "Backup of ${filename} already exists"
+ echo "Replacing ${filename} with callrec-${filename}"
+ cp ${callrec_dir}/callrec-${filename} ${current_file}
+ else
+ echo "Backing up ${filename}"
+ cp ${current_file} ${callrec_dir}/
+
+ #fix the patch
+ sed -i "s!@STATE_PATH@!${current_file}!g" ${callrec_dir}/${filename}.patch
+ echo "Patching ${filename}"
+ patch -p0 < ${callrec_dir}/${filename}.patch && patched="1"
+ fi
+
+ if [ $patched -eq 0 ]; then
+ echo "Failed patching ${filename}"
+ echo "Replacing ${filename} with callrec-${filename}"
+ echo "Backup is at ${callrec_dir}"
+ cp ${callrec_dir}/callrec-${filename} ${current_file}
+ fi
+ done
+}
+pkg_prerm_callrec_append() {
+ #!/bin/sh
+ files0="gsmhandset.state"
+ files1="gsmheadset.state"
+ files2="gsmspeakerout.state"
+ state_dir=`sed -n "s/^scenario_dir\s*=\s*//p" /etc/frameworkd.conf`
+
+ for index in 0 1 2
+ do
+ eval filename=\${files${index}}
+ current_file=${state_dir}/${filename}
+ echo "Restoring ${filename} from backup"
+ cp /usr/share/callrec/${filename} ${current_file}
+ echo "Removing backups"
+ rm /usr/share/callrec/${filename}
+ done
+}
diff --git a/recipes/cdparanoia/files/Makefile.in.patch b/recipes/cdparanoia/cdparanoia/Makefile.in.patch
index 40cf4ad516..40cf4ad516 100644
--- a/recipes/cdparanoia/files/Makefile.in.patch
+++ b/recipes/cdparanoia/cdparanoia/Makefile.in.patch
diff --git a/recipes/cdparanoia/files/Makefile.patch b/recipes/cdparanoia/cdparanoia/Makefile.patch
index 798ccf9003..798ccf9003 100644
--- a/recipes/cdparanoia/files/Makefile.patch
+++ b/recipes/cdparanoia/cdparanoia/Makefile.patch
diff --git a/recipes/cdparanoia/cdparanoia/cdparanoia-III-10.2-privatefix.patch b/recipes/cdparanoia/cdparanoia/cdparanoia-III-10.2-privatefix.patch
new file mode 100644
index 0000000000..55f39b26da
--- /dev/null
+++ b/recipes/cdparanoia/cdparanoia/cdparanoia-III-10.2-privatefix.patch
@@ -0,0 +1,561 @@
+diff -ru cdparanoia-III-10.2/interface/cdda_interface.h cdparanoia-III-10.2-mod/interface/cdda_interface.h
+--- cdparanoia-III-10.2/interface/cdda_interface.h 2008-09-11 11:43:52.000000000 +0100
++++ cdparanoia-III-10.2-mod/interface/cdda_interface.h 2009-09-08 16:08:37.000000000 +0100
+@@ -84,7 +84,7 @@
+ int is_atapi;
+ int is_mmc;
+
+- cdda_private_data_t *private;
++ cdda_private_data_t *impl;
+ void *reserved;
+ unsigned char inqbytes[4];
+
+diff -ru cdparanoia-III-10.2/interface/cooked_interface.c cdparanoia-III-10.2-mod/interface/cooked_interface.c
+--- cdparanoia-III-10.2/interface/cooked_interface.c 2008-08-26 10:55:22.000000000 +0100
++++ cdparanoia-III-10.2-mod/interface/cooked_interface.c 2009-09-08 16:09:35.000000000 +0100
+@@ -13,13 +13,13 @@
+ static int timed_ioctl(cdrom_drive *d, int fd, int command, void *arg){
+ struct timespec tv1;
+ struct timespec tv2;
+- int ret1=clock_gettime(d->private->clock,&tv1);
++ int ret1=clock_gettime(d->impl->clock,&tv1);
+ int ret2=ioctl(fd, command,arg);
+- int ret3=clock_gettime(d->private->clock,&tv2);
++ int ret3=clock_gettime(d->impl->clock,&tv2);
+ if(ret1<0 || ret3<0){
+- d->private->last_milliseconds=-1;
++ d->impl->last_milliseconds=-1;
+ }else{
+- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
++ d->impl->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
+ }
+ return ret2;
+ }
+diff -ru cdparanoia-III-10.2/interface/interface.c cdparanoia-III-10.2-mod/interface/interface.c
+--- cdparanoia-III-10.2/interface/interface.c 2008-09-11 11:43:52.000000000 +0100
++++ cdparanoia-III-10.2-mod/interface/interface.c 2009-09-08 16:09:50.000000000 +0100
+@@ -39,9 +39,9 @@
+ if(d->drive_model)free(d->drive_model);
+ if(d->cdda_fd!=-1)close(d->cdda_fd);
+ if(d->ioctl_fd!=-1 && d->ioctl_fd!=d->cdda_fd)close(d->ioctl_fd);
+- if(d->private){
+- if(d->private->sg_hd)free(d->private->sg_hd);
+- free(d->private);
++ if(d->impl){
++ if(d->impl->sg_hd)free(d->impl->sg_hd);
++ free(d->impl);
+ }
+
+ free(d);
+@@ -127,7 +127,7 @@
+ }
+ }
+ }
+- if(ms)*ms=d->private->last_milliseconds;
++ if(ms)*ms=d->impl->last_milliseconds;
+ return(sectors);
+ }
+
+diff -ru cdparanoia-III-10.2/interface/scan_devices.c cdparanoia-III-10.2-mod/interface/scan_devices.c
+--- cdparanoia-III-10.2/interface/scan_devices.c 2008-08-26 10:55:22.000000000 +0100
++++ cdparanoia-III-10.2-mod/interface/scan_devices.c 2009-09-08 16:09:17.000000000 +0100
+@@ -264,11 +264,11 @@
+ d->interface=COOKED_IOCTL;
+ d->bigendianp=-1; /* We don't know yet... */
+ d->nsectors=-1;
+- d->private=calloc(1,sizeof(*d->private));
++ d->impl=calloc(1,sizeof(*d->impl));
+ {
+ /* goddamnit */
+ struct timespec tv;
+- d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
++ d->impl->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
+ }
+ idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",description);
+ return(d);
+@@ -674,15 +674,15 @@
+ d->bigendianp=-1; /* We don't know yet... */
+ d->nsectors=-1;
+ d->messagedest = messagedest;
+- d->private=calloc(1,sizeof(*d->private));
++ d->impl=calloc(1,sizeof(*d->impl));
+ {
+ /* goddamnit */
+ struct timespec tv;
+- d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
++ d->impl->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
+ }
+ if(use_sgio){
+ d->interface=SGIO_SCSI;
+- d->private->sg_buffer=(unsigned char *)(d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE));
++ d->impl->sg_buffer=(unsigned char *)(d->impl->sg_hd=malloc(MAX_BIG_BUFF_SIZE));
+ g_fd=d->cdda_fd=dup(d->ioctl_fd);
+ }else{
+ version=verify_SG_version(d,messagedest,messages);
+@@ -696,8 +696,8 @@
+ }
+
+ /* malloc our big buffer for scsi commands */
+- d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE);
+- d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF;
++ d->impl->sg_hd=malloc(MAX_BIG_BUFF_SIZE);
++ d->impl->sg_buffer=((unsigned char *)d->impl->sg_hd)+SG_OFF;
+ }
+
+ {
+@@ -772,9 +772,9 @@
+ if(i_fd!=-1)close(i_fd);
+ if(g_fd!=-1)close(g_fd);
+ if(d){
+- if(d->private){
+- if(d->private->sg_hd)free(d->private->sg_hd);
+- free(d->private);
++ if(d->impl){
++ if(d->impl->sg_hd)free(d->impl->sg_hd);
++ free(d->impl);
+ }
+ free(d);
+ }
+@@ -821,7 +821,7 @@
+ d->interface=TEST_INTERFACE;
+ d->bigendianp=-1; /* We don't know yet... */
+ d->nsectors=-1;
+- d->private=calloc(1,sizeof(*d->private));
++ d->impl=calloc(1,sizeof(*d->impl));
+ d->drive_model=copystring("File based test interface");
+ idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",d->drive_model);
+
+diff -ru cdparanoia-III-10.2/interface/scsi_interface.c cdparanoia-III-10.2-mod/interface/scsi_interface.c
+--- cdparanoia-III-10.2/interface/scsi_interface.c 2008-09-11 21:33:30.000000000 +0100
++++ cdparanoia-III-10.2-mod/interface/scsi_interface.c 2009-09-08 16:10:30.000000000 +0100
+@@ -15,13 +15,13 @@
+ static int timed_ioctl(cdrom_drive *d, int fd, int command, void *arg){
+ struct timespec tv1;
+ struct timespec tv2;
+- int ret1=clock_gettime(d->private->clock,&tv1);
++ int ret1=clock_gettime(d->impl->clock,&tv1);
+ int ret2=ioctl(fd, command,arg);
+- int ret3=clock_gettime(d->private->clock,&tv2);
++ int ret3=clock_gettime(d->impl->clock,&tv2);
+ if(ret1<0 || ret3<0){
+- d->private->last_milliseconds=-1;
++ d->impl->last_milliseconds=-1;
+ }else{
+- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
++ d->impl->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
+ }
+ return ret2;
+ }
+@@ -96,7 +96,7 @@
+ static void clear_garbage(cdrom_drive *d){
+ fd_set fdset;
+ struct timeval tv;
+- struct sg_header *sg_hd=d->private->sg_hd;
++ struct sg_header *sg_hd=d->impl->sg_hd;
+ int flag=0;
+
+ /* clear out any possibly preexisting garbage */
+@@ -185,7 +185,7 @@
+ struct timespec tv2;
+ int tret1,tret2;
+ int status = 0;
+- struct sg_header *sg_hd=d->private->sg_hd;
++ struct sg_header *sg_hd=d->impl->sg_hd;
+ long writebytes=SG_OFF+cmd_len+in_size;
+
+ /* generic scsi device services */
+@@ -195,7 +195,7 @@
+
+ memset(sg_hd,0,sizeof(sg_hd));
+ memset(sense_buffer,0,SG_MAX_SENSE);
+- memcpy(d->private->sg_buffer,cmd,cmd_len+in_size);
++ memcpy(d->impl->sg_buffer,cmd,cmd_len+in_size);
+ sg_hd->twelve_byte = cmd_len == 12;
+ sg_hd->result = 0;
+ sg_hd->reply_len = SG_OFF + out_size;
+@@ -209,7 +209,7 @@
+ tell if the command failed. Scared yet? */
+
+ if(bytecheck && out_size>in_size){
+- memset(d->private->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size);
++ memset(d->impl->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size);
+ /* the size does not remove cmd_len due to the way the kernel
+ driver copies buffers */
+ writebytes+=(out_size-in_size);
+@@ -243,7 +243,7 @@
+ }
+
+ sigprocmask (SIG_BLOCK, &(d->sigset), NULL );
+- tret1=clock_gettime(d->private->clock,&tv1);
++ tret1=clock_gettime(d->impl->clock,&tv1);
+ errno=0;
+ status = write(d->cdda_fd, sg_hd, writebytes );
+
+@@ -289,7 +289,7 @@
+ }
+ }
+
+- tret2=clock_gettime(d->private->clock,&tv2);
++ tret2=clock_gettime(d->impl->clock,&tv2);
+ errno=0;
+ status = read(d->cdda_fd, sg_hd, SG_OFF + out_size);
+ sigprocmask ( SIG_UNBLOCK, &(d->sigset), NULL );
+@@ -313,7 +313,7 @@
+ if(bytecheck && in_size+cmd_len<out_size){
+ long i,flag=0;
+ for(i=in_size;i<out_size;i++)
+- if(d->private->sg_buffer[i]!=bytefill){
++ if(d->impl->sg_buffer[i]!=bytefill){
+ flag=1;
+ break;
+ }
+@@ -326,9 +326,9 @@
+
+ errno=0;
+ if(tret1<0 || tret2<0){
+- d->private->last_milliseconds=-1;
++ d->impl->last_milliseconds=-1;
+ }else{
+- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000;
++ d->impl->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000;
+ }
+ return(0);
+ }
+@@ -347,7 +347,7 @@
+
+ memset(&hdr,0,sizeof(hdr));
+ memset(sense,0,sizeof(sense));
+- memcpy(d->private->sg_buffer,cmd+cmd_len,in_size);
++ memcpy(d->impl->sg_buffer,cmd+cmd_len,in_size);
+
+ hdr.cmdp = cmd;
+ hdr.cmd_len = cmd_len;
+@@ -355,7 +355,7 @@
+ hdr.mx_sb_len = SG_MAX_SENSE;
+ hdr.timeout = 50000;
+ hdr.interface_id = 'S';
+- hdr.dxferp = d->private->sg_buffer;
++ hdr.dxferp = d->impl->sg_buffer;
+ hdr.flags = SG_FLAG_DIRECT_IO; /* direct IO if we can get it */
+
+ /* scary buffer fill hack */
+@@ -400,7 +400,7 @@
+ if(bytecheck && in_size<out_size){
+ long i,flag=0;
+ for(i=in_size;i<out_size;i++)
+- if(d->private->sg_buffer[i]!=bytefill){
++ if(d->impl->sg_buffer[i]!=bytefill){
+ flag=1;
+ break;
+ }
+@@ -412,7 +412,7 @@
+ }
+
+ /* Can't rely on .duration because we can't be certain kernel has HZ set to something useful */
+- /* d->private->last_milliseconds = hdr.duration; */
++ /* d->impl->last_milliseconds = hdr.duration; */
+
+ errno = 0;
+ return 0;
+@@ -445,9 +445,9 @@
+
+ handle_scsi_cmd(d, cmd, 6, 0, 56, 0,0, sense);
+
+- key = d->private->sg_buffer[2] & 0xf;
+- ASC = d->private->sg_buffer[12];
+- ASCQ = d->private->sg_buffer[13];
++ key = d->impl->sg_buffer[2] & 0xf;
++ ASC = d->impl->sg_buffer[12];
++ ASCQ = d->impl->sg_buffer[13];
+
+ if(key == 2 && ASC == 4 && ASCQ == 1) return 0;
+ return 1;
+@@ -492,7 +492,7 @@
+ if (handle_scsi_cmd (d, cmd, 10, 0, size+4,'\377',1,sense)) return(1);
+
+ {
+- unsigned char *b=d->private->sg_buffer;
++ unsigned char *b=d->impl->sg_buffer;
+ if(b[0])return(1); /* Handles only up to 256 bytes */
+ if(b[6])return(1); /* Handles only up to 256 bytes */
+
+@@ -604,8 +604,8 @@
+ static unsigned int get_orig_sectorsize(cdrom_drive *d){
+ if(mode_sense(d,12,0x01))return(-1);
+
+- d->orgdens = d->private->sg_buffer[4];
+- return(d->orgsize = ((int)(d->private->sg_buffer[10])<<8)+d->private->sg_buffer[11]);
++ d->orgdens = d->impl->sg_buffer[4];
++ return(d->orgsize = ((int)(d->impl->sg_buffer[10])<<8)+d->impl->sg_buffer[11]);
+ }
+
+ /* switch CDROM scsi drives to given sector size */
+@@ -664,8 +664,8 @@
+ return(-4);
+ }
+
+- first=d->private->sg_buffer[2];
+- last=d->private->sg_buffer[3];
++ first=d->impl->sg_buffer[2];
++ last=d->impl->sg_buffer[3];
+ tracks=last-first+1;
+
+ if (last > MAXTRK || first > MAXTRK || last<0 || first<0) {
+@@ -683,7 +683,7 @@
+ return(-5);
+ }
+ {
+- scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4);
++ scsi_TOC *toc=(scsi_TOC *)(d->impl->sg_buffer+4);
+
+ d->disc_toc[i-first].bFlags=toc->bFlags;
+ d->disc_toc[i-first].bTrack=i;
+@@ -704,7 +704,7 @@
+ return(-2);
+ }
+ {
+- scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4);
++ scsi_TOC *toc=(scsi_TOC *)(d->impl->sg_buffer+4);
+
+ d->disc_toc[i-first].bFlags=toc->bFlags;
+ d->disc_toc[i-first].bTrack=0xAA;
+@@ -738,7 +738,7 @@
+ }
+
+ /* copy to our structure and convert start sector */
+- tracks = d->private->sg_buffer[1];
++ tracks = d->impl->sg_buffer[1];
+ if (tracks > MAXTRK) {
+ cderror(d,"003: CDROM reporting illegal number of tracks\n");
+ return(-3);
+@@ -754,33 +754,33 @@
+ return(-5);
+ }
+
+- d->disc_toc[i].bFlags = d->private->sg_buffer[10];
++ d->disc_toc[i].bFlags = d->impl->sg_buffer[10];
+ d->disc_toc[i].bTrack = i + 1;
+
+ d->disc_toc[i].dwStartSector= d->adjust_ssize *
+- (((signed char)(d->private->sg_buffer[2])<<24) |
+- (d->private->sg_buffer[3]<<16)|
+- (d->private->sg_buffer[4]<<8)|
+- (d->private->sg_buffer[5]));
++ (((signed char)(d->impl->sg_buffer[2])<<24) |
++ (d->impl->sg_buffer[3]<<16)|
++ (d->impl->sg_buffer[4]<<8)|
++ (d->impl->sg_buffer[5]));
+ }
+
+ d->disc_toc[i].bFlags = 0;
+ d->disc_toc[i].bTrack = i + 1;
+- memcpy (&foo, d->private->sg_buffer+2, 4);
+- memcpy (&bar, d->private->sg_buffer+6, 4);
++ memcpy (&foo, d->impl->sg_buffer+2, 4);
++ memcpy (&bar, d->impl->sg_buffer+6, 4);
+ d->disc_toc[i].dwStartSector = d->adjust_ssize * (be32_to_cpu(foo) +
+ be32_to_cpu(bar));
+
+ d->disc_toc[i].dwStartSector= d->adjust_ssize *
+- ((((signed char)(d->private->sg_buffer[2])<<24) |
+- (d->private->sg_buffer[3]<<16)|
+- (d->private->sg_buffer[4]<<8)|
+- (d->private->sg_buffer[5]))+
++ ((((signed char)(d->impl->sg_buffer[2])<<24) |
++ (d->impl->sg_buffer[3]<<16)|
++ (d->impl->sg_buffer[4]<<8)|
++ (d->impl->sg_buffer[5]))+
+
+- ((((signed char)(d->private->sg_buffer[6])<<24) |
+- (d->private->sg_buffer[7]<<16)|
+- (d->private->sg_buffer[8]<<8)|
+- (d->private->sg_buffer[9]))));
++ ((((signed char)(d->impl->sg_buffer[6])<<24) |
++ (d->impl->sg_buffer[7]<<16)|
++ (d->impl->sg_buffer[8]<<8)|
++ (d->impl->sg_buffer[9]))));
+
+
+ d->cd_extra = FixupTOC(d,tracks+1);
+@@ -817,7 +817,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -836,7 +836,7 @@
+ cmd[9] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -854,7 +854,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -872,7 +872,7 @@
+ cmd[9] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -890,7 +890,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -908,7 +908,7 @@
+ cmd[9] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -922,7 +922,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -936,7 +936,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -950,7 +950,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -964,7 +964,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -978,7 +978,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -992,7 +992,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -1026,7 +1026,7 @@
+
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -1039,7 +1039,7 @@
+
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -1052,7 +1052,7 @@
+
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -1275,7 +1275,7 @@
+ static int count_2352_bytes(cdrom_drive *d){
+ long i;
+ for(i=2351;i>=0;i--)
+- if(d->private->sg_buffer[i]!=(unsigned char)'\177')
++ if(d->impl->sg_buffer[i]!=(unsigned char)'\177')
+ return(((i+3)>>2)<<2);
+
+ return(0);
+@@ -1284,7 +1284,7 @@
+ static int verify_nonzero(cdrom_drive *d){
+ long i,flag=0;
+ for(i=0;i<2352;i++)
+- if(d->private->sg_buffer[i]!=0){
++ if(d->impl->sg_buffer[i]!=0){
+ flag=1;
+ break;
+ }
+@@ -1625,7 +1625,7 @@
+ d->is_mmc=0;
+ if(mode_sense(d,22,0x2A)==0){
+
+- b=d->private->sg_buffer;
++ b=d->impl->sg_buffer;
+ b+=b[3]+4;
+
+ if((b[0]&0x3F)==0x2A){
+@@ -1673,7 +1673,7 @@
+ cderror(d,"008: Unable to identify CDROM model\n");
+ return(NULL);
+ }
+- return (d->private->sg_buffer);
++ return (d->impl->sg_buffer);
+ }
+
+ int scsi_init_drive(cdrom_drive *d){
+@@ -1742,8 +1742,8 @@
+ check_cache(d);
+
+ d->error_retry=1;
+- d->private->sg_hd=realloc(d->private->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128);
+- d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF;
++ d->impl->sg_hd=realloc(d->impl->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128);
++ d->impl->sg_buffer=((unsigned char *)d->impl->sg_hd)+SG_OFF;
+ d->report_all=1;
+ return(0);
+ }
diff --git a/recipes/cdparanoia/cdparanoia/configure.in.patch b/recipes/cdparanoia/cdparanoia/configure.in.patch
new file mode 100644
index 0000000000..2ca251613f
--- /dev/null
+++ b/recipes/cdparanoia/cdparanoia/configure.in.patch
@@ -0,0 +1,13 @@
+--- cdparanoia-III-10.2.old/configure.in 2009-12-02 22:44:37.000000000 +0100
++++ cdparanoia-III-10.2/configure.in 2009-12-02 22:45:04.000000000 +0100
+@@ -5,9 +5,7 @@
+
+ AC_CANONICAL_HOST
+
+-if test -z "$CC"; then
+- AC_PROG_CC
+-fi
++AC_PROG_CC
+ AC_PROG_RANLIB
+ AC_CHECK_PROG(AR,ar,ar)
+ AC_CHECK_PROG(INSTALL,install,install)
diff --git a/recipes/cdparanoia/files/fixes.patch b/recipes/cdparanoia/cdparanoia/fixes.patch
index 6ffc8a6af9..6ffc8a6af9 100644
--- a/recipes/cdparanoia/files/fixes.patch
+++ b/recipes/cdparanoia/cdparanoia/fixes.patch
diff --git a/recipes/cdparanoia/files/fixes10.patch b/recipes/cdparanoia/cdparanoia/fixes10.patch
index 414ff3944d..414ff3944d 100644
--- a/recipes/cdparanoia/files/fixes10.patch
+++ b/recipes/cdparanoia/cdparanoia/fixes10.patch
diff --git a/recipes/cdparanoia/files/interface_Makefile.in.patch b/recipes/cdparanoia/cdparanoia/interface_Makefile.in.patch
index 4dbd2bb19a..4dbd2bb19a 100644
--- a/recipes/cdparanoia/files/interface_Makefile.in.patch
+++ b/recipes/cdparanoia/cdparanoia/interface_Makefile.in.patch
diff --git a/recipes/cdparanoia/files/paranoia_Makefile.in.patch b/recipes/cdparanoia/cdparanoia/paranoia_Makefile.in.patch
index 962a43a634..962a43a634 100644
--- a/recipes/cdparanoia/files/paranoia_Makefile.in.patch
+++ b/recipes/cdparanoia/cdparanoia/paranoia_Makefile.in.patch
diff --git a/recipes/cdparanoia/cdparanoia_10.2.bb b/recipes/cdparanoia/cdparanoia_10.2.bb
index 2a220336fd..1d13f03af9 100644
--- a/recipes/cdparanoia/cdparanoia_10.2.bb
+++ b/recipes/cdparanoia/cdparanoia_10.2.bb
@@ -1,33 +1,32 @@
# cdparanoia OE build file
# Copyright (C) 2005, Advanced Micro Devices, Inc. All Rights Reserved
# Released under the MIT license (see packages/COPYING)
+LICENSE = "GPL"
-PR ="r0"
-LICENSE="GPL"
+SRC_URI = "http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-10.2.src.tgz \
+ file://fixes10.patch;patch=1 \
+ file://Makefile.in.patch;patch=1 \
+ file://interface_Makefile.in.patch;patch=1 \
+ file://paranoia_Makefile.in.patch;patch=1 \
+ file://cdparanoia-III-10.2-privatefix.patch;patch=1 \
+ file://configure.in.patch;patch=1"
-SRC_URI="http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-10.2.src.tgz \
- file://fixes10.patch;patch=1 \
- file://Makefile.in.patch;patch=1 \
- file://interface_Makefile.in.patch;patch=1 \
- file://paranoia_Makefile.in.patch;patch=1 "
+S = "${WORKDIR}/cdparanoia-III-10.2"
-S="${WORKDIR}/cdparanoia-III-10.2"
+inherit autotools
PARALLEL_MAKE = ""
-inherit autotools
-
do_install() {
- oe_runmake BINDIR="${D}/usr/bin" MANDIR="${D}/usr/share/man/" \
- INCLUDEDIR="${D}/usr/include/" LIBDIR="${D}/usr/lib" install
+ oe_runmake BINDIR="${D}/usr/bin" MANDIR="${D}/usr/share/man/" \
+ INCLUDEDIR="${D}/usr/include/" LIBDIR="${D}/usr/lib" install
}
do_stage() {
- install -d ${STAGING_INCDIR} ${STAGING_LIBDIR}
-
- install -m 0644 paranoia/cdda_paranoia.h ${STAGING_INCDIR}
- install -m 0644 interface/cdda_interface.h ${STAGING_INCDIR}
-
- oe_libinstall -C interface libcdda_interface ${STAGING_LIBDIR}
- oe_libinstall -C paranoia libcdda_paranoia ${STAGING_LIBDIR}
+ install -d ${STAGING_INCDIR} ${STAGING_LIBDIR}
+ install -m 0644 paranoia/cdda_paranoia.h ${STAGING_INCDIR}
+ install -m 0644 interface/cdda_interface.h ${STAGING_INCDIR}
+ oe_libinstall -C interface libcdda_interface ${STAGING_LIBDIR}
+ oe_libinstall -C paranoia libcdda_paranoia ${STAGING_LIBDIR}
}
+
diff --git a/recipes/cdparanoia/cdparanoia_9.8alpha.bb b/recipes/cdparanoia/cdparanoia_9.8alpha.bb
index 8c1bbd446f..2305ec7d83 100644
--- a/recipes/cdparanoia/cdparanoia_9.8alpha.bb
+++ b/recipes/cdparanoia/cdparanoia_9.8alpha.bb
@@ -1,31 +1,29 @@
# cdparanoia OE build file
# Copyright (C) 2005, Advanced Micro Devices, Inc. All Rights Reserved
# Released under the MIT license (see packages/COPYING)
+LICENSE = "GPL"
-PR ="r2"
-LICENSE="GPL"
+PR = "r3"
-SRC_URI="http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-alpha9.8.src.tgz \
- file://fixes.patch;patch=1 \
- file://Makefile.patch;patch=1"
+SRC_URI = "http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-alpha9.8.src.tgz \
+ file://fixes.patch;patch=1 \
+ file://Makefile.patch;patch=1"
-S="${WORKDIR}/cdparanoia-III-alpha9.8"
-
-PARALLEL_MAKE = ""
+S = "${WORKDIR}/cdparanoia-III-alpha9.8"
inherit autotools
+PARALLEL_MAKE = ""
+
do_install() {
- oe_runmake BINDIR="${D}/usr/bin" MANDIR="${D}/usr/share/man/" \
- INCLUDEDIR="${D}/usr/include/" LIBDIR="${D}/usr/lib" install
+ oe_runmake BINDIR="${D}/usr/bin" MANDIR="${D}/usr/share/man/" \
+ INCLUDEDIR="${D}/usr/include/" LIBDIR="${D}/usr/lib" install
}
-
do_stage() {
- install -d ${STAGING_INCDIR} ${STAGING_LIBDIR}
-
- install -m 0644 paranoia/cdda_paranoia.h ${STAGING_INCDIR}
- install -m 0644 interface/cdda_interface.h ${STAGING_INCDIR}
-
- oe_libinstall -C interface libcdda_interface ${STAGING_LIBDIR}
- oe_libinstall -C paranoia libcdda_paranoia ${STAGING_LIBDIR}
+ install -d ${STAGING_INCDIR} ${STAGING_LIBDIR}
+ install -m 0644 paranoia/cdda_paranoia.h ${STAGING_INCDIR}
+ install -m 0644 interface/cdda_interface.h ${STAGING_INCDIR}
+ oe_libinstall -C interface libcdda_interface ${STAGING_LIBDIR}
+ oe_libinstall -C paranoia libcdda_paranoia ${STAGING_LIBDIR}
}
+
diff --git a/recipes/cdparanoia/cdparanoia_svn.bb b/recipes/cdparanoia/cdparanoia_svn.bb
index d3358a64e3..71fafee281 100644
--- a/recipes/cdparanoia/cdparanoia_svn.bb
+++ b/recipes/cdparanoia/cdparanoia_svn.bb
@@ -2,16 +2,17 @@
# Copyright (C) 2005, Advanced Micro Devices, Inc. All Rights Reserved
# Released under the MIT license (see packages/COPYING)
-PR ="r0"
+PR ="r1"
LICENSE="GPL"
-PV = "10.2+svn${SRCREV}"
+PV = "10.2+svnr${SRCPV}"
SRC_URI="svn://svn.xiph.org/trunk;module=cdparanoia;proto=http \
file://fixes10.patch;patch=1 \
file://Makefile.in.patch;patch=1 \
file://interface_Makefile.in.patch;patch=1 \
- file://paranoia_Makefile.in.patch;patch=1 "
+ file://paranoia_Makefile.in.patch;patch=1 \
+ file://configure.in.patch;patch=1 "
S="${WORKDIR}/cdparanoia"
diff --git a/recipes/cellhunter/cellhunter_0.5.0.bb b/recipes/cellhunter/cellhunter_0.5.0.bb
new file mode 100644
index 0000000000..87d126c9bc
--- /dev/null
+++ b/recipes/cellhunter/cellhunter_0.5.0.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "CellHunter - A game to collect information about mobile phone cells"
+SECTION = "x11/utils"
+DEPENDS = "python"
+RDEPENDS = "python-subprocess python-netclient python-math python-core python-io python-pygtk python-dbus frameworkd"
+PR = "r0"
+
+SRC_URI = "\
+ http://ch.omoco.de/cellhunter/files/cellhunter-${PV}.tar.gz \
+"
+
+do_configure () {
+ :
+}
+
+do_compile () {
+ :
+}
+
+do_install () {
+ install -d ${D}${bindir}
+ install -m 0755 cellhunter.py ${D}${bindir}/
+ install -m 0755 cellhunter_upload.sh ${D}${bindir}/
+ install -d ${D}${datadir}/pixmaps
+ install -d ${D}${datadir}/applications
+ install -m 0644 cellhunter.desktop ${D}${datadir}/applications/cellhunter.desktop
+ install -m 0644 cellhunter.png ${D}${datadir}/pixmaps/cellhunter.png
+}
diff --git a/recipes/chicken/chicken-4.2.0/translator-cross.patch b/recipes/chicken/chicken-4.2.0/translator-cross.patch
new file mode 100644
index 0000000000..ac0dde9aec
--- /dev/null
+++ b/recipes/chicken/chicken-4.2.0/translator-cross.patch
@@ -0,0 +1,11 @@
+--- a/csc.scm.orig 2009-11-26 17:16:57.000000000 -0200
++++ b/csc.scm 2009-11-26 17:17:09.000000000 -0200
+@@ -89,7 +89,7 @@
+ (quotewrap
+ (prefix "chicken" "bin"
+ (make-pathname
+- (if host-mode INSTALL_BIN_HOME TARGET_BIN_HOME)
++ INSTALL_BIN_HOME
+ CHICKEN_PROGRAM))))
+
+ (define compiler (quotewrap (if host-mode INSTALL_CC TARGET_CC)))
diff --git a/recipes/chicken/chicken-cross_4.2.0.bb b/recipes/chicken/chicken-cross_4.2.0.bb
new file mode 100644
index 0000000000..387247b58a
--- /dev/null
+++ b/recipes/chicken/chicken-cross_4.2.0.bb
@@ -0,0 +1,26 @@
+require chicken.inc
+
+PR = "${INC_PR}.1"
+
+inherit cross
+
+do_compile() {
+ make PLATFORM="linux" PREFIX="${prefix}" TARGET_PREFIX="${STAGING_DIR_TARGET}${layout_prefix}" TARGETSYSTEM="${TARGET_SYS}" LIBRARIAN=ar
+}
+
+do_install() {
+ make PLATFORM="linux" PREFIX="${prefix}" TARGET_PREFIX="${STAGING_DIR_TARGET}${layout_prefix}" TARGETSYSTEM="${TARGET_SYS}" LIBRARIAN=ar install
+}
+
+do_stage() {
+ make PLATFORM="linux" PREFIX="${prefix}" TARGET_PREFIX="${STAGING_DIR_TARGET}${layout_prefix}" TARGETSYSTEM="${TARGET_SYS}" LIBRARIAN=ar install
+}
+
+PACKAGES += "chicken-bin libchicken libuchicken"
+
+FILES_${PN} = ""
+FILES_libchicken = "${libdir}/libchicken.so.*"
+FILES_libuchicken = "${libdir}/libuchicken.so.*"
+FILES_${PN}-bin = "${bindir}/* ${datadir}/chicken/*.* ${libdir}/chicken/*/*.so"
+FILES_${PN}-doc += "${datadir}/chicken/doc"
+FILES_${PN}-dbg += "${libdir}/chicken/*/.debug"
diff --git a/recipes/chicken/chicken-cross_4.2.10.bb b/recipes/chicken/chicken-cross_4.2.10.bb
new file mode 100644
index 0000000000..f884b1096d
--- /dev/null
+++ b/recipes/chicken/chicken-cross_4.2.10.bb
@@ -0,0 +1,27 @@
+require chicken-snapshot.inc
+
+DEPENDS = "chicken"
+PR = "${INC_PR}.1"
+
+inherit cross
+
+do_compile() {
+ make PLATFORM="linux" PREFIX="${prefix}" TARGET_PREFIX="${STAGING_DIR_TARGET}${layout_prefix}" TARGETSYSTEM="${TARGET_SYS}" LIBRARIAN=ar
+}
+
+do_install() {
+ make PLATFORM="linux" PREFIX="${prefix}" TARGET_PREFIX="${STAGING_DIR_TARGET}${layout_prefix}" TARGETSYSTEM="${TARGET_SYS}" LIBRARIAN=ar install
+}
+
+do_stage() {
+ make PLATFORM="linux" PREFIX="${prefix}" TARGET_PREFIX="${STAGING_DIR_TARGET}${layout_prefix}" TARGETSYSTEM="${TARGET_SYS}" LIBRARIAN=ar install
+}
+
+PACKAGES += "chicken-bin libchicken libuchicken"
+
+FILES_${PN} = ""
+FILES_libchicken = "${libdir}/libchicken.so.*"
+FILES_libuchicken = "${libdir}/libuchicken.so.*"
+FILES_${PN}-bin = "${bindir}/* ${datadir}/chicken/*.* ${libdir}/chicken/*/*.so"
+FILES_${PN}-doc += "${datadir}/chicken/doc"
+FILES_${PN}-dbg += "${libdir}/chicken/*/.debug"
diff --git a/recipes/chicken/chicken-native_4.2.0.bb b/recipes/chicken/chicken-native_4.2.0.bb
deleted file mode 100644
index b3f5dfdaf5..0000000000
--- a/recipes/chicken/chicken-native_4.2.0.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require chicken_${PV}.bb
-
-DEPENDS = "gcc-native"
-RDEPENDS = "gcc-native"
-
-inherit native
-
diff --git a/recipes/chicken/chicken-snapshot.inc b/recipes/chicken/chicken-snapshot.inc
new file mode 100644
index 0000000000..5fddee279a
--- /dev/null
+++ b/recipes/chicken/chicken-snapshot.inc
@@ -0,0 +1,13 @@
+ESCRIPTION = "A compiler that translates Scheme source files to C, and an interpreter"
+HOMEPAGE = "http://www.call-with-current-continuation.org/"
+SECTION = "interpreters"
+PRIORITY = "optional"
+LICENSE = "BSD"
+INC_PR = "r3"
+
+SRC_URI = "http://chicken.wiki.br/dev-snapshots/2009/11/24/chicken-${PV}.tar.gz"
+
+# Parallel building is not supported
+PARALLEL_MAKE = ""
+
+inherit chicken
diff --git a/recipes/chicken/chicken.inc b/recipes/chicken/chicken.inc
index f0126a9c16..229de94cba 100644
--- a/recipes/chicken/chicken.inc
+++ b/recipes/chicken/chicken.inc
@@ -3,52 +3,13 @@ HOMEPAGE = "http://www.call-with-current-continuation.org/"
SECTION = "interpreters"
PRIORITY = "optional"
LICENSE = "BSD"
-INC_PR = "r1"
+INC_PR = "r3"
-SRC_URI = "http://chicken.wiki.br/releases/${PV}/chicken-${PV}.tar.gz"
+SRC_URI = "http://chicken.wiki.br/releases/${PV}/chicken-${PV}.tar.gz \
+ file://soname.patch;patch=1 \
+ file://translator-cross.patch;patch=1"
# Parallel building is not supported
PARALLEL_MAKE = ""
-# Required environment values
-export PLATFORM="linux"
-export PREFIX="${prefix}"
-export LIBRARIAN="${TARGET_PREFIX}"
-export TARGETSYSTEM="${TARGET_SYS}"
-
-do_compile() {
- case ${TARGET_ARCH} in
- i*86)
- ARCH=x86
- ;;
- *)
- echo "Check ARCH value for ${TARGET_ARCH}"
- exit 1
- ;;
- esac
-
- make ARCH=${ARCH} TARGET_C_COMPILER=gcc
-}
-
-do_install() {
- case ${TARGET_ARCH} in
- i*86)
- ARCH=x86
- ;;
- *)
- echo "Check ARCH value for ${TARGET_ARCH}"
- exit 1
- ;;
- esac
-
- make ARCH=${ARCH} DESTDIR=${D} install
-}
-
-PACKAGES += "chicken-bin libchicken libuchicken"
-
-FILES_${PN} = ""
-FILES_libchicken = "${libdir}/libchicken.so.*"
-FILES_libuchicken = "${libdir}/libuchicken.so.*"
-FILES_${PN}-bin = "${bindir}/* ${datadir}/chicken/*.* ${libdir}/chicken/*/*.so"
-FILES_${PN}-doc += "${datadir}/chicken/doc"
-FILES_${PN}-dbg += "${libdir}/chicken/*/.debug"
+inherit chicken
diff --git a/recipes/chicken/chicken_4.2.0.bb b/recipes/chicken/chicken_4.2.0.bb
index 473c7ad817..601462a3fc 100644
--- a/recipes/chicken/chicken_4.2.0.bb
+++ b/recipes/chicken/chicken_4.2.0.bb
@@ -1,5 +1,26 @@
require chicken.inc
-SRC_URI += "file://soname.patch;patch=1"
-
+DEPENDS = "gcc-cross-sdk"
+RDEPENDS = "gcc-cross-sdk"
PR = "${INC_PR}.1"
+
+do_compile() {
+ make PLATFORM="linux" DESTDIR="${D}" PREFIX="${prefix}" HOSTSYSTEM="${TARGET_SYS}" ARCH=${CHICKEN_ARCH}
+}
+
+do_install() {
+ make PLATFORM="linux" DESTDIR="${D}" PREFIX="${prefix}" HOSTSYSTEM="${TARGET_SYS}" ARCH=${CHICKEN_ARCH} install
+}
+
+do_stage() {
+ make PLATFORM="linux" DESTDIR="${STAGING_DIR_TARGET}" PREFIX="${prefix}" HOSTSYSTEM="${TARGET_SYS}" ARCH=${CHICKEN_ARCH} install
+}
+
+PACKAGES += "chicken-bin libchicken libuchicken"
+
+FILES_${PN} = ""
+FILES_libchicken = "${libdir}/libchicken.so.*"
+FILES_libuchicken = "${libdir}/libuchicken.so.*"
+FILES_${PN}-bin = "${bindir}/* ${datadir}/chicken/*.* ${libdir}/chicken/*/*.so"
+FILES_${PN}-doc += "${datadir}/chicken/doc"
+FILES_${PN}-dbg += "${libdir}/chicken/*/.debug"
diff --git a/recipes/chicken/chicken_4.2.10.bb b/recipes/chicken/chicken_4.2.10.bb
new file mode 100644
index 0000000000..de002dd92a
--- /dev/null
+++ b/recipes/chicken/chicken_4.2.10.bb
@@ -0,0 +1,24 @@
+require chicken-snapshot.inc
+
+PR = "${INC_PR}.1"
+
+do_compile() {
+ make PLATFORM="linux" DESTDIR="${D}" PREFIX="${prefix}" HOSTSYSTEM="${TARGET_SYS}" ARCH=${CHICKEN_ARCH}
+}
+
+do_install() {
+ make PLATFORM="linux" DESTDIR="${D}" PREFIX="${prefix}" HOSTSYSTEM="${TARGET_SYS}" ARCH=${CHICKEN_ARCH} install
+}
+
+do_stage() {
+ make PLATFORM="linux" DESTDIR="${STAGING_DIR_TARGET}" PREFIX="${prefix}" HOSTSYSTEM="${TARGET_SYS}" ARCH=${CHICKEN_ARCH} install
+}
+
+PACKAGES += "chicken-bin libchicken libuchicken"
+
+FILES_${PN} = ""
+FILES_libchicken = "${libdir}/libchicken.so.*"
+FILES_libuchicken = "${libdir}/libuchicken.so.*"
+FILES_${PN}-bin = "${bindir}/* ${datadir}/chicken/*.* ${libdir}/chicken/*/*.so"
+FILES_${PN}-doc += "${datadir}/chicken/doc"
+FILES_${PN}-dbg += "${libdir}/chicken/*/.debug"
diff --git a/recipes/chromium/chromium_svn.bb b/recipes/chromium/chromium_svn.bb
index ffeae9f15a..0ac8a82d17 100644
--- a/recipes/chromium/chromium_svn.bb
+++ b/recipes/chromium/chromium_svn.bb
@@ -3,7 +3,7 @@ LICENSE = "BSD"
DEPENDS = "perl-native python-native flex-native gperf-native"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
SRCREV = "17935"
SRC_URI = "svn://src.chromium.org/svn/trunk/;module=src;proto=http"
diff --git a/recipes/clutter/aaina_svn.bb b/recipes/clutter/aaina_svn.bb
index 862dfd8933..a8c6cf7c8f 100644
--- a/recipes/clutter/aaina_svn.bb
+++ b/recipes/clutter/aaina_svn.bb
@@ -1,7 +1,7 @@
require aaina.inc
SRCREV = "3597"
-PV = "0.3.0+svnr${SRCREV}"
+PV = "0.3.0+svnr${SRCPV}"
SRC_URI = "svn://svn.o-hand.com/repos/clutter/trunk/toys;module=aaina;proto=http"
diff --git a/recipes/clutter/clutter-box2d_svn.bb b/recipes/clutter/clutter-box2d_svn.bb
index 24b9b1feae..8ef7a03982 100644
--- a/recipes/clutter/clutter-box2d_svn.bb
+++ b/recipes/clutter/clutter-box2d_svn.bb
@@ -1,6 +1,6 @@
require clutter-box2d.inc
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR = "r4"
SRC_URI = "svn://svn.o-hand.com/repos/clutter/trunk;module=${PN};proto=http"
diff --git a/recipes/clutter/clutter-cairo_svn.bb b/recipes/clutter/clutter-cairo_svn.bb
index 1084c1cc16..f4919ac879 100644
--- a/recipes/clutter/clutter-cairo_svn.bb
+++ b/recipes/clutter/clutter-cairo_svn.bb
@@ -1,6 +1,6 @@
require clutter-cairo.inc
-PV = "0.8.0+svnr${SRCREV}"
+PV = "0.8.0+svnr${SRCPV}"
SRC_URI = "svn://svn.o-hand.com/repos/clutter/trunk;module=${PN};proto=http \
file://enable_examples.patch;patch=1"
diff --git a/recipes/clutter/clutter-gst_0.4svn.bb b/recipes/clutter/clutter-gst_0.4svn.bb
index 1af797888c..bf74893db6 100644
--- a/recipes/clutter/clutter-gst_0.4svn.bb
+++ b/recipes/clutter/clutter-gst_0.4svn.bb
@@ -1,6 +1,6 @@
require clutter-gst.inc
-PV = "0.4.0+svnr${SRCREV}"
+PV = "0.4.0+svnr${SRCPV}"
SRC_URI = "svn://svn.o-hand.com/repos/clutter/branches;module=clutter-gst-0-4;proto=http \
file://autofoo-0.4.patch;patch=1"
diff --git a/recipes/clutter/clutter-gst_svn.bb b/recipes/clutter/clutter-gst_svn.bb
index 8ef87236f7..3e122c7ca4 100644
--- a/recipes/clutter/clutter-gst_svn.bb
+++ b/recipes/clutter/clutter-gst_svn.bb
@@ -1,6 +1,6 @@
require clutter-gst.inc
-PV = "0.8.0+svnr${SRCREV}"
+PV = "0.8.0+svnr${SRCPV}"
SRC_URI = "svn://svn.o-hand.com/repos/clutter/trunk;module=${PN};proto=http \
file://autofoo.patch;patch=1"
diff --git a/recipes/clutter/clutter_0.4svn.bb b/recipes/clutter/clutter_0.4svn.bb
index fe1fbc29d3..faf7a8766f 100644
--- a/recipes/clutter/clutter_0.4svn.bb
+++ b/recipes/clutter/clutter_0.4svn.bb
@@ -1,6 +1,6 @@
require clutter.inc
-PV = "0.4.0+svnr${SRCREV}"
+PV = "0.4.0+svnr${SRCPV}"
SRC_URI = "svn://svn.o-hand.com/repos/clutter/branches;module=clutter-0-4;proto=http \
file://enable_tests-0.4.patch;patch=1 "
diff --git a/recipes/clutter/clutter_0.6svn.bb b/recipes/clutter/clutter_0.6svn.bb
index 79882d6ddf..15c87a52a1 100644
--- a/recipes/clutter/clutter_0.6svn.bb
+++ b/recipes/clutter/clutter_0.6svn.bb
@@ -1,6 +1,6 @@
require clutter.inc
-PV = "0.6.0+svnr${SRCREV}"
+PV = "0.6.0+svnr${SRCPV}"
SRC_URI = "svn://svn.o-hand.com/repos/clutter/branches;module=clutter-0-6;proto=http \
file://enable_tests-0.6.patch;patch=1 "
diff --git a/recipes/clutter/clutter_svn.bb b/recipes/clutter/clutter_svn.bb
index cdcb2109e0..55a434c583 100644
--- a/recipes/clutter/clutter_svn.bb
+++ b/recipes/clutter/clutter_svn.bb
@@ -2,7 +2,7 @@ require clutter.inc
DEFAULT_PREFERENCE = "-1"
-PV = "0.8.0+svnr${SRCREV}"
+PV = "0.8.0+svnr${SRCPV}"
PR = "r0"
SRC_URI = "svn://svn.o-hand.com/repos/clutter/trunk;module=clutter;proto=http \
diff --git a/recipes/clutter/table_svn.bb b/recipes/clutter/table_svn.bb
index 168ea4dfba..039f903d0c 100644
--- a/recipes/clutter/table_svn.bb
+++ b/recipes/clutter/table_svn.bb
@@ -1,6 +1,6 @@
require table.inc
-PV = "0.3.0+svnr${SRCREV}"
+PV = "0.3.0+svnr${SRCPV}"
SRC_URI = "svn://svn.o-hand.com/repos/clutter/trunk/toys;module=table;proto=http \
file://fixes.patch;patch=1"
diff --git a/recipes/clutter/tidy_svn.bb b/recipes/clutter/tidy_svn.bb
index 348bba0a8e..89d5a5a572 100644
--- a/recipes/clutter/tidy_svn.bb
+++ b/recipes/clutter/tidy_svn.bb
@@ -1,6 +1,6 @@
require tidy.inc
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "6"
SRC_URI = "svn://svn.o-hand.com/repos/tidy;module=trunk;proto=http \
diff --git a/recipes/connman/mokonnect_svn.bb b/recipes/connman/mokonnect_svn.bb
new file mode 100644
index 0000000000..dec35e029e
--- /dev/null
+++ b/recipes/connman/mokonnect_svn.bb
@@ -0,0 +1,39 @@
+DESCRIPTION = "mokonnect is an e17 frontend to connmand"
+HOMEPAGE = "http://www.assembla.com/wiki/show/shrdev"
+AUTHOR = "Fate"
+LICENSE = "GPLv2"
+SECTION = "e/apps"
+RDEPENDS = "python-elementary connman connman-plugin-wifi"
+
+PV = "0.4+svnr${SRCPV}"
+PR = "r2"
+
+SRC_URI = "svn://subversion.assembla.com/svn/shrdev;module=Mokonnect/trunk;proto=http"
+
+S = "${WORKDIR}/Mokonnect/trunk"
+
+do_install() {
+ install -d ${D}${datadir}/mokonnect
+ for pyfile in *.py
+ do
+ install -m 644 $pyfile ${D}${datadir}/mokonnect/
+ done
+ chmod 755 ${D}${datadir}/mokonnect/mokonnect.py
+
+ install -d ${D}${datadir}/applications
+ install -m 644 mokonnect.desktop ${D}${datadir}/applications/
+
+ install -d ${D}${datadir}/pixmaps
+ install -m 644 mokonnect.png ${D}${datadir}/pixmaps/
+
+ install -d ${D}${bindir}
+ ln -sf ${datadir}/mokonnect/mokonnect.py ${D}${bindir}/mokonnect
+}
+
+FILES_${PN} = "\
+${datadir}/mokonnect \
+${datadir}/applications/* \
+${datadir}/pixmaps/* \
+${bindir}/mokonnect \
+"
+
diff --git a/recipes/coreutils/coreutils-native.inc b/recipes/coreutils/coreutils-native.inc
index c4dda17e2d..06d8fa1f3b 100644
--- a/recipes/coreutils/coreutils-native.inc
+++ b/recipes/coreutils/coreutils-native.inc
@@ -6,3 +6,8 @@ PATCHTOOL = "patch"
do_configure() {
oe_runconf
}
+
+do_install() {
+ autotools_do_install
+}
+
diff --git a/recipes/cups/cups.inc b/recipes/cups/cups.inc
index 006e6a3250..db4475cd5c 100644
--- a/recipes/cups/cups.inc
+++ b/recipes/cups/cups.inc
@@ -61,15 +61,17 @@ do_stage () {
python do_package_append() {
# Change permissions back the way they were, they probably had a reason...
- workdir = bb.data.getVar('WORKDIR', d, 1)
- os.system('chmod 0511 %s/install/cups/var/run/cups/certs' % workdir)
+ pkgdest = bb.data.getVar('PKGDEST', d, 1)
+ os.system('chmod 0511 %s/cups/var/run/cups/certs' % pkgdest)
}
-do_stage_append() {
+SYSROOT_PREPROCESS_FUNCS += "cups_config_mangle"
+
+cups_config_mangle() {
# Undo mangle of cups_datadir and cups_serverbin
sed -e 's:cups_datadir=.*:cups_datadir=${datadir}/cups:g' \
-e 's:cups_serverbin=.*:cups_serverbin=${libdir}/cups:g' \
- -i ${STAGING_BINDIR_CROSS}/cups-config
+ -i ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}/cups-config
}
PACKAGES =+ "${PN}-lib ${PN}-libimage"
diff --git a/recipes/curl/curl-common.inc b/recipes/curl/curl-common.inc
index 29af47ee8d..a57a0f6283 100644
--- a/recipes/curl/curl-common.inc
+++ b/recipes/curl/curl-common.inc
@@ -2,11 +2,11 @@ DESCRIPTION = "Command line tool and library for client-side URL transfers."
LICENSE = "MIT"
SECTION = "console/network"
-SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2 \
+SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2;name=tarball \
file://pkgconfig_fix.patch;patch=1"
S = "${WORKDIR}/curl-${PV}"
-INC_PR = "r2"
+INC_PR = "r3"
CURL_FEATURES ?= "zlib,gnutls,cookies,crypto-auth,dict,file,ftp,http,telnet,tftp"
# other allowed features: ipv6, ares, openssl
@@ -23,6 +23,11 @@ python __anonymous() {
f = bb.data.getVar("CURL_FEATURES", d, True).split(",")
oeconf = bb.data.getVar("EXTRA_OECONF", d, False)
deps = bb.data.getVar("DEPENDS", d, False).split()
+ pn = bb.data.getVar("PN", d, True)
+ if "native" in pn:
+ native = "-native"
+ else:
+ native = ""
for x in [ 'cookies', 'crypto-auth', 'dict', 'file', 'ftp', 'http', 'telnet', 'tftp', 'ipv6' ]:
if x in f:
oeconf += " --enable-%s" % x
@@ -30,22 +35,22 @@ python __anonymous() {
oeconf += " --disable-%s" % x
if 'zlib' in f:
oeconf += " --with-zlib=${STAGING_LIBDIR}/../"
- deps.append("zlib")
+ deps.append("zlib" + native)
else:
oeconf += " --without-zlib"
if 'gnutls' in f:
oeconf += " --with-gnutls=${STAGING_BINDIR_CROSS}"
- deps.append("gnutls")
+ deps.append("gnutls" + native)
else:
oeconf += " --without-gnutls"
if 'openssl' in f:
oeconf += " --with-ssl=${STAGING_LIBDIR}/../"
- deps.append("openssl")
+ deps.append("openssl" + native)
else:
oeconf += " --without-ssl"
if 'ares' in f:
oeconf += " --enable-ares"
- deps.append("c-ares")
+ deps.append("c-ares" + native)
else:
oeconf += " --disable-ares"
bb.data.setVar('EXTRA_OECONF', oeconf, d)
@@ -57,7 +62,5 @@ do_configure_prepend() {
}
do_stage () {
- install -d ${STAGING_INCDIR}/curl
- install -m 0644 ${S}/include/curl/*.h ${STAGING_INCDIR}/curl/
- oe_libinstall -so -a -C lib libcurl ${STAGING_LIBDIR}
+ autotools_stage_all
}
diff --git a/recipes/curl/curl-native_7.18.2.bb b/recipes/curl/curl-native_7.18.2.bb
index d395021512..e2e3a48505 100644
--- a/recipes/curl/curl-native_7.18.2.bb
+++ b/recipes/curl/curl-native_7.18.2.bb
@@ -1,12 +1,6 @@
require curl-common.inc
inherit native
DEPENDS = "zlib-native"
-PR = "${INC_PR}.1"
+SRC_URI += "file://curl-7.18.1-CVE-2009-2417.patch;patch=1;pnum=0"
-do_stage () {
- autotools_stage_all
-}
-
-do_install() {
- :
-}
+PR = "${INC_PR}.2"
diff --git a/recipes/curl/curl-native_7.19.6.bb b/recipes/curl/curl-native_7.19.6.bb
index d395021512..392476b745 100644
--- a/recipes/curl/curl-native_7.19.6.bb
+++ b/recipes/curl/curl-native_7.19.6.bb
@@ -1,12 +1,6 @@
require curl-common.inc
inherit native
DEPENDS = "zlib-native"
-PR = "${INC_PR}.1"
+PR = "${INC_PR}.2"
-do_stage () {
- autotools_stage_all
-}
-
-do_install() {
- :
-}
+CURL_FEATURES = "zlib,cookies,crypto-auth,dict,file,ftp,http,telnet,tftp"
diff --git a/recipes/curl/curl-sdk_7.18.2.bb b/recipes/curl/curl-sdk_7.18.2.bb
index 8eed3d664a..e26c53299d 100644
--- a/recipes/curl/curl-sdk_7.18.2.bb
+++ b/recipes/curl/curl-sdk_7.18.2.bb
@@ -1,14 +1,6 @@
require curl-common.inc
inherit sdk
DEPENDS = "zlib-sdk"
-PR = "${INC_PR}.1"
+SRC_URI += "file://curl-7.18.1-CVE-2009-2417.patch;patch=1;pnum=0"
-do_stage () {
- install -d ${STAGING_INCDIR}/curl
- install -m 0644 ${S}/include/curl/*.h ${STAGING_INCDIR}/curl/
- oe_libinstall -so -a -C lib libcurl ${STAGING_LIBDIR}
-}
-
-do_install() {
- :
-}
+PR = "${INC_PR}.2"
diff --git a/recipes/curl/curl_7.18.2.bb b/recipes/curl/curl_7.18.2.bb
index 84c0d07e61..21eaedc508 100644
--- a/recipes/curl/curl_7.18.2.bb
+++ b/recipes/curl/curl_7.18.2.bb
@@ -1,4 +1,6 @@
require curl-common.inc
require curl-target.inc
-PR = "${INC_PR}.1"
+SRC_URI += "file://curl-7.18.1-CVE-2009-2417.patch;patch=1;pnum=0"
+
+PR = "${INC_PR}.2"
diff --git a/recipes/curl/curl_7.19.5.bb b/recipes/curl/curl_7.19.5.bb
index d0577b06aa..e4476107af 100644
--- a/recipes/curl/curl_7.19.5.bb
+++ b/recipes/curl/curl_7.19.5.bb
@@ -2,5 +2,7 @@ require curl-common.inc
require curl-target.inc
SRC_URI += "file://off_t_abi_fix.patch;patch=1;pnum=0 \
- file://curl-add_all_algorithms.patch;patch=1"
-PR = "${INC_PR}.1"
+ file://curl-add_all_algorithms.patch;patch=1 \
+ file://curl-7.19.5-CVE-2009-2417.patch;patch=1;pnum=0"
+
+PR = "${INC_PR}.2"
diff --git a/recipes/curl/curl_7.19.7.bb b/recipes/curl/curl_7.19.7.bb
new file mode 100644
index 0000000000..87e7ef9c28
--- /dev/null
+++ b/recipes/curl/curl_7.19.7.bb
@@ -0,0 +1,8 @@
+require curl-common.inc
+require curl-target.inc
+
+SRC_URI += "file://off_t_abi_fix.patch;patch=1;pnum=0"
+PR = "${INC_PR}"
+
+SRC_URI[tarball.md5sum] = "79a8fbb2eed5464b97bdf94bee109380"
+SRC_URI[tarball.sha256sum] = "1a15f94ae3401e3bd6208ce64155c2577815019824bceae7fd3221a12bc54a70"
diff --git a/recipes/curl/files/curl-7.18.1-CVE-2009-2417.patch b/recipes/curl/files/curl-7.18.1-CVE-2009-2417.patch
new file mode 100644
index 0000000000..e7c24c0b6e
--- /dev/null
+++ b/recipes/curl/files/curl-7.18.1-CVE-2009-2417.patch
@@ -0,0 +1,83 @@
+---
+ lib/ssluse.c | 40 +++++++++++++++++++++++++++-------------
+ 1 file changed, 27 insertions(+), 13 deletions(-)
+
+--- lib/ssluse.c.orig
++++ lib/ssluse.c
+@@ -1061,7 +1061,7 @@ static CURLcode verifyhost(struct connec
+ if(check->type == target) {
+ /* get data and length */
+ const char *altptr = (char *)ASN1_STRING_data(check->d.ia5);
+- int altlen;
++ size_t altlen = (size_t) ASN1_STRING_length(check->d.ia5);
+
+ switch(target) {
+ case GEN_DNS: /* name/pattern comparison */
+@@ -1075,14 +1075,16 @@ static CURLcode verifyhost(struct connec
+ "I checked the 0.9.6 and 0.9.8 sources before my patch and
+ it always 0-terminates an IA5String."
+ */
+- if(cert_hostcheck(altptr, conn->host.name))
++ if((altlen == strlen(altptr)) &&
++ /* if this isn't true, there was an embedded zero in the name
++ string and we cannot match it. */
++ cert_hostcheck(altptr, conn->host.name))
+ matched = TRUE;
+ break;
+
+ case GEN_IPADD: /* IP address comparison */
+ /* compare alternative IP address if the data chunk is the same size
+ our server IP address is */
+- altlen = ASN1_STRING_length(check->d.ia5);
+ if((altlen == addrlen) && !memcmp(altptr, &addr, altlen))
+ matched = TRUE;
+ break;
+@@ -1122,18 +1124,27 @@ static CURLcode verifyhost(struct connec
+ string manually to avoid the problem. This code can be made
+ conditional in the future when OpenSSL has been fixed. Work-around
+ brought by Alexis S. L. Carvalho. */
+- if(tmp && ASN1_STRING_type(tmp) == V_ASN1_UTF8STRING) {
+- j = ASN1_STRING_length(tmp);
+- if(j >= 0) {
+- peer_CN = OPENSSL_malloc(j+1);
+- if(peer_CN) {
+- memcpy(peer_CN, ASN1_STRING_data(tmp), j);
+- peer_CN[j] = '\0';
++ if(tmp) {
++ if(ASN1_STRING_type(tmp) == V_ASN1_UTF8STRING) {
++ j = ASN1_STRING_length(tmp);
++ if(j >= 0) {
++ peer_CN = OPENSSL_malloc(j+1);
++ if(peer_CN) {
++ memcpy(peer_CN, ASN1_STRING_data(tmp), j);
++ peer_CN[j] = '\0';
++ }
+ }
+ }
++ else /* not a UTF8 name */
++ j = ASN1_STRING_to_UTF8(&peer_CN, tmp);
++
++ if(peer_CN && ((int)strlen((char *)peer_CN) != j)) {
++ /* there was a terminating zero before the end of string, this
++ cannot match and we return failure! */
++ failf(data, "SSL: illegal cert name field");
++ res = CURLE_PEER_FAILED_VERIFICATION;
++ }
+ }
+- else /* not a UTF8 name */
+- j = ASN1_STRING_to_UTF8(&peer_CN, tmp);
+ }
+
+ if(peer_CN == nulstr)
+@@ -1151,7 +1162,10 @@ static CURLcode verifyhost(struct connec
+ }
+ #endif /* CURL_DOES_CONVERSIONS */
+
+- if(!peer_CN) {
++ if(res)
++ /* error already detected, pass through */
++ ;
++ else if(!peer_CN) {
+ failf(data,
+ "SSL: unable to obtain common name from peer certificate");
+ return CURLE_PEER_FAILED_VERIFICATION;
diff --git a/recipes/curl/files/curl-7.19.5-CVE-2009-2417.patch b/recipes/curl/files/curl-7.19.5-CVE-2009-2417.patch
new file mode 100644
index 0000000000..f64232c502
--- /dev/null
+++ b/recipes/curl/files/curl-7.19.5-CVE-2009-2417.patch
@@ -0,0 +1,80 @@
+--- lib/ssluse.c-7.19.5 2009-08-03 16:01:58.000000000 +0200
++++ lib/ssluse.c 2009-08-03 16:07:17.000000000 +0200
+@@ -1092,7 +1092,8 @@
+ if(check->type == target) {
+ /* get data and length */
+ const char *altptr = (char *)ASN1_STRING_data(check->d.ia5);
+- size_t altlen;
++ size_t altlen = (size_t) ASN1_STRING_length(check->d.ia5);
++
+
+ switch(target) {
+ case GEN_DNS: /* name/pattern comparison */
+@@ -1106,14 +1107,16 @@
+ "I checked the 0.9.6 and 0.9.8 sources before my patch and
+ it always 0-terminates an IA5String."
+ */
+- if(cert_hostcheck(altptr, conn->host.name))
++ if((altlen == strlen(altptr)) &&
++ /* if this isn't true, there was an embedded zero in the name
++ string and we cannot match it. */
++ cert_hostcheck(altptr, conn->host.name))
+ matched = TRUE;
+ break;
+
+ case GEN_IPADD: /* IP address comparison */
+ /* compare alternative IP address if the data chunk is the same size
+ our server IP address is */
+- altlen = (size_t) ASN1_STRING_length(check->d.ia5);
+ if((altlen == addrlen) && !memcmp(altptr, &addr, altlen))
+ matched = TRUE;
+ break;
+@@ -1153,18 +1156,27 @@
+ string manually to avoid the problem. This code can be made
+ conditional in the future when OpenSSL has been fixed. Work-around
+ brought by Alexis S. L. Carvalho. */
+- if(tmp && ASN1_STRING_type(tmp) == V_ASN1_UTF8STRING) {
+- j = ASN1_STRING_length(tmp);
+- if(j >= 0) {
+- peer_CN = OPENSSL_malloc(j+1);
+- if(peer_CN) {
+- memcpy(peer_CN, ASN1_STRING_data(tmp), j);
+- peer_CN[j] = '\0';
++ if(tmp) {
++ if(ASN1_STRING_type(tmp) == V_ASN1_UTF8STRING) {
++ j = ASN1_STRING_length(tmp);
++ if(j >= 0) {
++ peer_CN = OPENSSL_malloc(j+1);
++ if(peer_CN) {
++ memcpy(peer_CN, ASN1_STRING_data(tmp), j);
++ peer_CN[j] = '\0';
++ }
+ }
+ }
++ else /* not a UTF8 name */
++ j = ASN1_STRING_to_UTF8(&peer_CN, tmp);
++
++ if(peer_CN && ((int)strlen((char *)peer_CN) != j)) {
++ /* there was a terminating zero before the end of string, this
++ cannot match and we return failure! */
++ failf(data, "SSL: illegal cert name field");
++ res = CURLE_PEER_FAILED_VERIFICATION;
++ }
+ }
+- else /* not a UTF8 name */
+- j = ASN1_STRING_to_UTF8(&peer_CN, tmp);
+ }
+
+ if(peer_CN == nulstr)
+@@ -1182,7 +1194,10 @@
+ }
+ #endif /* CURL_DOES_CONVERSIONS */
+
+- if(!peer_CN) {
++ if(res)
++ /* error already detected, pass through */
++ ;
++ else if(!peer_CN) {
+ failf(data,
+ "SSL: unable to obtain common name from peer certificate");
+ return CURLE_PEER_FAILED_VERIFICATION;
diff --git a/recipes/cwiid/cwiid_svn.bb b/recipes/cwiid/cwiid_svn.bb
index 8d134f3f36..180e06ab97 100644
--- a/recipes/cwiid/cwiid_svn.bb
+++ b/recipes/cwiid/cwiid_svn.bb
@@ -3,7 +3,7 @@ LICENSE = "GPLv2"
HOMEPAGE = "http://abstrakraft.org/cwiid/"
SRCREV = "192"
-PV = "0.6.00+svnr${SRCREV}"
+PV = "0.6.00+svnr${SRCPV}"
inherit autotools
inherit distutils-base
diff --git a/recipes/dasher/dasher-gpe_0.0-svn.bb b/recipes/dasher/dasher-gpe_0.0-svn.bb
index 297aa9ac4f..d4f9b20f48 100644
--- a/recipes/dasher/dasher-gpe_0.0-svn.bb
+++ b/recipes/dasher/dasher-gpe_0.0-svn.bb
@@ -1,5 +1,5 @@
LICENSE="GPL"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR = "r1"
DEPENDS = "libxsettings-client libglade libxtst gconf gtk+"
SECTION = "gpe"
diff --git a/recipes/dbus/dbus-1.2.1/fix-install-daemon.patch b/recipes/dbus/dbus-1.2.1/fix-install-daemon.patch
index c31786357d..8d3bfd07e1 100644
--- a/recipes/dbus/dbus-1.2.1/fix-install-daemon.patch
+++ b/recipes/dbus/dbus-1.2.1/fix-install-daemon.patch
@@ -1,13 +1,37 @@
-Index: dbus-0.94/bus/Makefile.am
+Index: dbus-1.2.1/bus/Makefile.am
===================================================================
---- dbus-0.94.orig/bus/Makefile.am 2006-10-01 17:36:18.000000000 +0200
-+++ dbus-0.94/bus/Makefile.am 2006-10-14 21:40:05.000000000 +0200
-@@ -110,7 +110,7 @@
- $(mkinstalldirs) $(DESTDIR)$(DBUS_DAEMONDIR); \
- chmod 755 $(DESTDIR)$(DBUS_DAEMONDIR); \
- fi
+--- dbus-1.2.1.orig/bus/Makefile.am 2008-04-04 16:24:08.000000000 +0100
++++ dbus-1.2.1/bus/Makefile.am 2009-11-13 09:30:57.000000000 +0000
+@@ -149,7 +149,7 @@
+
+ ## we use noinst_PROGRAMS not check_PROGRAMS so that we build
+ ## even when not doing "make check"
+-noinst_PROGRAMS=$(TESTS) dbus-daemon dbus-daemon-launch-helper-test dbus-daemon-launch-helper
++noinst_PROGRAMS=$(TESTS) dbus-daemon-launch-helper-test dbus-daemon-launch-helper
+
+ bus_test_system_SOURCES= \
+ $(XML_SOURCES) \
+@@ -171,20 +171,17 @@
+ bus_test_LDADD=$(top_builddir)/dbus/libdbus-convenience.la $(DBUS_BUS_LIBS)
+ bus_test_LDFLAGS=@R_DYNAMIC_LDFLAG@
+
++dbusdaemondir = $(DBUS_DAEMONDIR)
++dbusdaemon_PROGRAMS = dbus-daemon
++
+ ## mop up the gcov files
+ clean-local:
+ /bin/rm *.bb *.bbg *.da *.gcov || true
+
+ uninstall-hook:
+- rm -f $(DESTDIR)$(DBUS_DAEMONDIR)/dbus-daemon
+ rm -f $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper
+
+ install-data-hook:
+- if test '!' -d $(DESTDIR)$(DBUS_DAEMONDIR); then \
+- $(mkinstalldirs) $(DESTDIR)$(DBUS_DAEMONDIR); \
+- chmod 755 $(DESTDIR)$(DBUS_DAEMONDIR); \
+- fi
- $(INSTALL_PROGRAM) dbus-daemon $(DESTDIR)$(DBUS_DAEMONDIR)
-+ $(INSTALL_PROGRAM) .libs/dbus-daemon $(DESTDIR)$(DBUS_DAEMONDIR)
$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus
$(mkinstalldirs) $(DESTDIR)$(configdir)/system.d
- $(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/services
+ $(mkinstalldirs) $(DESTDIR)$(configdir)/session.d
diff --git a/recipes/dbus/dbus-native_1.0.3.bb b/recipes/dbus/dbus-native_1.0.3.bb
index 6ec0fc870d..98b389e4e6 100644
--- a/recipes/dbus/dbus-native_1.0.3.bb
+++ b/recipes/dbus/dbus-native_1.0.3.bb
@@ -5,6 +5,8 @@ DEFAULT_PREFERENCE = "-1"
inherit native
+EXTRA_OECONF_X = "--without-x"
+
DEPENDS = "glib-2.0-native libxml2-native expat-native"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/dbus-${PV}"
diff --git a/recipes/dbus/dbus-native_1.2.1.bb b/recipes/dbus/dbus-native_1.2.1.bb
index 2b1610ee49..f9f87dc440 100644
--- a/recipes/dbus/dbus-native_1.2.1.bb
+++ b/recipes/dbus/dbus-native_1.2.1.bb
@@ -1,9 +1,11 @@
require dbus.inc
-PR = "${INC_PR}.0"
+PR = "${INC_PR}.2"
RRECOMMENDS_${PN} = ""
RDEPENDS_${PN} = ""
inherit native
+EXTRA_OECONF_X = "--without-x"
+
DEPENDS = "glib-2.0-native libxml2-native expat-native"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/dbus-${PV}"
@@ -11,6 +13,7 @@ SRC_URI = "\
http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
file://cross.patch;patch=1 \
file://tmpdir.patch;patch=1 \
+ file://fix-install-daemon.patch;patch=1 \
file://dbus-1.init \
"
diff --git a/recipes/dbus/dbus.inc b/recipes/dbus/dbus.inc
index 202aec432d..0477a27474 100644
--- a/recipes/dbus/dbus.inc
+++ b/recipes/dbus/dbus.inc
@@ -4,7 +4,7 @@ SECTION = "base"
LICENSE = "GPL"
DEPENDS = "expat glib-2.0 virtual/libintl libsm libice virtual/libx11"
-INC_PR = "r16"
+INC_PR = "r17"
SRC_URI = "\
http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
@@ -19,6 +19,8 @@ S = "${WORKDIR}/dbus-${PV}"
inherit autotools pkgconfig update-rc.d gettext
+EXTRA_OECONF_X = "--with-x"
+
EXTRA_OECONF = "\
--disable-qt \
--disable-qt3 \
@@ -27,9 +29,10 @@ EXTRA_OECONF = "\
--disable-checks \
--disable-xml-docs \
--disable-doxygen-docs \
+ --disable-libaudit \
--with-xml=expat \
- --with-x \
--with-dbus-default-reply-timeout=200000 \
+ ${EXTRA_OECONF_X} \
"
do_compile_prepend_mipsel() {
diff --git a/recipes/dbus/dbus_1.2.1.bb b/recipes/dbus/dbus_1.2.1.bb
index 72db1daa9c..d4e5811451 100644
--- a/recipes/dbus/dbus_1.2.1.bb
+++ b/recipes/dbus/dbus_1.2.1.bb
@@ -1,3 +1,3 @@
include dbus.inc
-PR = "${INC_PR}.0"
+PR = "${INC_PR}.1"
diff --git a/recipes/detect-stylus/detect-stylus_svn.bb b/recipes/detect-stylus/detect-stylus_svn.bb
index fa315bea07..cc778c6f3e 100644
--- a/recipes/detect-stylus/detect-stylus_svn.bb
+++ b/recipes/detect-stylus/detect-stylus_svn.bb
@@ -3,7 +3,7 @@ SECTION = "gpe"
LICENSE = "GPL"
DEPENDS = "virtual/libx11 xcursor-transparent-theme xrdb"
RDEPENDS = "xrdb"
-PV = "0.13+svnr${SRCREV}"
+PV = "0.13+svnr${SRCPV}"
PR = "r0"
inherit gpe pkgconfig
diff --git a/recipes/devilspie/devilspie_0.22.bb b/recipes/devilspie/devilspie_0.22.bb
new file mode 100644
index 0000000000..90e40680a5
--- /dev/null
+++ b/recipes/devilspie/devilspie_0.22.bb
@@ -0,0 +1,13 @@
+DESCRIPTION="A Window Matching utility similar to Sawfish's 'Matched Windows' feature"
+HOMEPAGE="http://www.burtonini.com/blog/computers/devilspie"
+
+SRC_URI="http://www.burtonini.com/computing/${P}.tar.gz"
+
+LICENSE="GPL"
+
+inherit pkgconfig autotools
+
+PR = "r0"
+
+DEPENDS="intltool gettext"
+RDEPENDS="glib-2.0 gtk+ libwnck"
diff --git a/recipes/dfu-util/dfu-util_svn.bb b/recipes/dfu-util/dfu-util_svn.bb
index 17329b3cd4..e4d7783a0c 100644
--- a/recipes/dfu-util/dfu-util_svn.bb
+++ b/recipes/dfu-util/dfu-util_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "USB Device Firmware Upgrade utility"
SECTION = "devel"
AUTHOR = "Harald Welte <laforge@openmoko.org>"
LICENSE = "GPL"
-PV = "0.1+svnr${SRCREV}"
+PV = "0.1+svnr${SRCPV}"
PR = "r2"
DEPENDS = "virtual/libusb0 usbpath"
diff --git a/recipes/dhcp/dhcp3.inc b/recipes/dhcp/dhcp3.inc
new file mode 100644
index 0000000000..f099003bee
--- /dev/null
+++ b/recipes/dhcp/dhcp3.inc
@@ -0,0 +1,62 @@
+SECTION = "console/network"
+DESCRIPTION = "Internet Software Consortium DHCP package"
+HOMEPAGE = "http://www.isc.org/"
+LICENSE = "BSD"
+INC_PR = "r11"
+
+SRC_URI = "ftp://ftp.isc.org/isc/dhcp/dhcp-3.1-history/dhcp-${PV}.tar.gz \
+ file://fixincludes.patch;patch=1 \
+ file://useless-use-of-bash.patch;patch=1 \
+ file://dhclient-script-exit-status.dpatch;patch=1 \
+ file://dhcp-3.0.3-dhclient-dbus.patch;patch=1;pnum=0 \
+ file://init-relay file://default-relay \
+ file://init-server file://default-server \
+ file://dhclient.conf file://dhcpd.conf"
+
+
+inherit update-rc.d
+
+INITSCRIPT_PACKAGES = "dhcp-server"
+INITSCRIPT_NAME_dhcp-server = dhcp-server
+INITSCRIPT_PARAMS_dhcp-server = "start 30 2 3 4 5 . stop 30 0 1 6 ."
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_configure() {
+ ./configure
+}
+
+do_compile() {
+ make RANLIB=${RANLIB} PREDEFINES='-D_PATH_DHCPD_DB=\"/var/lib/dhcp/dhcpd.leases\" \
+ -D_PATH_DHCLIENT_DB=\"/var/lib/dhcp/dhclient.leases\" \
+ -D_PATH_DHCLIENT_SCRIPT=\"/sbin/dhclient-script\" \
+ -D_PATH_DHCPD_CONF=\"/etc/dhcp/dhcpd.conf\" \
+ -D_PATH_DHCLIENT_CONF=\"/etc/dhcp/dhclient.conf\"'
+}
+
+do_install() {
+ make -e DESTDIR=${D} USRMANDIR=${mandir}/man1 ADMMANDIR=${mandir}/man8 FFMANDIR=${mandir}/man5 LIBMANDIR=${mandir}/man3 LIBDIR=${libdir} INCDIR=${includedir} install
+ install -d ${D}${sysconfdir}/init.d
+ install -d ${D}${sysconfdir}/default
+ install -d ${D}${sysconfdir}/dhcp
+ install -m 0755 ${WORKDIR}/init-relay ${D}${sysconfdir}/init.d/dhcp-relay
+ install -m 0644 ${WORKDIR}/default-relay ${D}${sysconfdir}/default/dhcp-relay
+ install -m 0755 ${WORKDIR}/init-server ${D}${sysconfdir}/init.d/dhcp-server
+ install -m 0644 ${WORKDIR}/default-server ${D}${sysconfdir}/default/dhcp-server
+ install -m 0644 ${WORKDIR}/dhclient.conf ${D}${sysconfdir}/dhcp/dhclient.conf
+ install -m 0644 ${WORKDIR}/dhcpd.conf ${D}${sysconfdir}/dhcp/dhcpd.conf
+ install -d ${D}/var/lib/dhcp3
+}
+
+PACKAGES += "dhcp-server dhcp-client dhcp-relay dhcp-omshell"
+FILES_${PN} = ""
+FILES_dhcp-server = "${sbindir}/dhcpd ${sysconfdir}/init.d/dhcp-server ${sysconfdir}/default/dhcp-server ${sysconfdir}/dhcp/dhcpd.conf"
+FILES_dhcp-relay = "${sbindir}/dhcrelay ${sysconfdir}/init.d/dhcp-relay ${sysconfdir}/default/dhcp-relay"
+
+FILES_dhcp-client = "${base_sbindir}/dhclient ${base_sbindir}/dhclient-script ${sysconfdir}/dhcp/dhclient.conf /var/lib/dhcp3"
+
+FILES_dhcp-omshell = "${bindir}/omshell"
+
+CONFFILES_dhcp-server_nylon = "/etc/dhcp/dhcpd.conf"
+CONFFILES_dhcp-relay_nylon = "/etc/default/dhcp-relay"
+CONFFILES_dhcp-client_nylon = "/etc/dhcp/dhclient.conf"
diff --git a/recipes/dhcp/dhcp_3.0.1.bb b/recipes/dhcp/dhcp_3.0.1.bb
index 7d55dc3a03..2deee26a0c 100644
--- a/recipes/dhcp/dhcp_3.0.1.bb
+++ b/recipes/dhcp/dhcp_3.0.1.bb
@@ -2,10 +2,11 @@ SECTION = "console/network"
DESCRIPTION = "Internet Software Consortium DHCP package"
HOMEPAGE = "http://www.isc.org/"
LICENSE = "BSD"
-PR = "r3"
+PR = "r4"
SRC_URI = "ftp://ftp.isc.org/isc/dhcp/dhcp-3.0-history/dhcp-${PV}.tar.gz \
file://noattrmode.patch;patch=1 \
file://fixincludes.patch;patch=1 \
+ file://useless-use-of-bash.patch;patch=1 \
file://init-relay file://default-relay \
file://init-server file://default-server \
file://dhclient.conf file://dhcpd.conf"
diff --git a/recipes/dhcp/dhcp_3.0.2.bb b/recipes/dhcp/dhcp_3.0.2.bb
index 052fa7e843..3c3c742b33 100644
--- a/recipes/dhcp/dhcp_3.0.2.bb
+++ b/recipes/dhcp/dhcp_3.0.2.bb
@@ -1,62 +1,13 @@
-SECTION = "console/network"
-DESCRIPTION = "Internet Software Consortium DHCP package"
-HOMEPAGE = "http://www.isc.org/"
-LICENSE = "BSD"
-PR = "r10"
+require dhcp3.inc
+
SRC_URI = "ftp://ftp.isc.org/isc/dhcp/dhcp-3.0-history/dhcp-${PV}.tar.gz \
file://noattrmode.patch;patch=1 \
file://fixincludes.patch;patch=1 \
- file://dhclient-script-exit-status.dpatch;patch=1 \
+ file://useless-use-of-bash.patch;patch=1 \
+ file://dhclient-script-exit-status.dpatch;patch=1 \
file://dhcp-3.0.3-dhclient-dbus.patch;patch=1;pnum=0 \
file://init-relay file://default-relay \
file://init-server file://default-server \
file://dhclient.conf file://dhcpd.conf"
-
-inherit update-rc.d
-
-INITSCRIPT_PACKAGES = "dhcp-server"
-INITSCRIPT_NAME_dhcp-server = dhcp-server
-INITSCRIPT_PARAMS_dhcp-server = "start 30 2 3 4 5 . stop 30 0 1 6 ."
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_configure() {
- ./configure
-}
-
-do_compile() {
- make RANLIB=${RANLIB} PREDEFINES='-D_PATH_DHCPD_DB=\"/var/lib/dhcp/dhcpd.leases\" \
- -D_PATH_DHCLIENT_DB=\"/var/lib/dhcp/dhclient.leases\" \
- -D_PATH_DHCLIENT_SCRIPT=\"/sbin/dhclient-script\" \
- -D_PATH_DHCPD_CONF=\"/etc/dhcp/dhcpd.conf\" \
- -D_PATH_DHCLIENT_CONF=\"/etc/dhcp/dhclient.conf\"'
-}
-
-do_install() {
- make -e DESTDIR=${D} USRMANDIR=${mandir}/man1 ADMMANDIR=${mandir}/man8 FFMANDIR=${mandir}/man5 LIBMANDIR=${mandir}/man3 LIBDIR=${libdir} INCDIR=${includedir} install
- install -d ${D}${sysconfdir}/init.d
- install -d ${D}${sysconfdir}/default
- install -d ${D}${sysconfdir}/dhcp
- install -m 0755 ${WORKDIR}/init-relay ${D}${sysconfdir}/init.d/dhcp-relay
- install -m 0644 ${WORKDIR}/default-relay ${D}${sysconfdir}/default/dhcp-relay
- install -m 0755 ${WORKDIR}/init-server ${D}${sysconfdir}/init.d/dhcp-server
- install -m 0644 ${WORKDIR}/default-server ${D}${sysconfdir}/default/dhcp-server
- install -m 0644 ${WORKDIR}/dhclient.conf ${D}${sysconfdir}/dhcp/dhclient.conf
- install -m 0644 ${WORKDIR}/dhcpd.conf ${D}${sysconfdir}/dhcp/dhcpd.conf
- install -d ${D}/var/lib/dhcp3
-}
-
-PACKAGES += "dhcp-server dhcp-client dhcp-relay dhcp-omshell"
-FILES_${PN} = ""
-FILES_dhcp-server = "${sbindir}/dhcpd ${sysconfdir}/init.d/dhcp-server ${sysconfdir}/default/dhcp-server ${sysconfdir}/dhcp/dhcpd.conf"
-FILES_dhcp-relay = "${sbindir}/dhcrelay ${sysconfdir}/init.d/dhcp-relay ${sysconfdir}/default/dhcp-relay"
-
-FILES_dhcp-client = "${base_sbindir}/dhclient ${base_sbindir}/dhclient-script ${sysconfdir}/dhcp/dhclient.conf /var/lib/dhcp3"
-RDEPENDS_dhcp-client = "bash"
-
-FILES_dhcp-omshell = "${bindir}/omshell"
-
-CONFFILES_dhcp-server_nylon = "/etc/dhcp/dhcpd.conf"
-CONFFILES_dhcp-relay_nylon = "/etc/default/dhcp-relay"
-CONFFILES_dhcp-client_nylon = "/etc/dhcp/dhclient.conf"
+PR = "${INC_PR}.0"
diff --git a/recipes/dhcp/dhcp_3.1.2p1.bb b/recipes/dhcp/dhcp_3.1.2p1.bb
new file mode 100644
index 0000000000..4900a49789
--- /dev/null
+++ b/recipes/dhcp/dhcp_3.1.2p1.bb
@@ -0,0 +1,12 @@
+require dhcp3.inc
+
+SRC_URI = "ftp://ftp.isc.org/isc/dhcp/dhcp-3.1-history/dhcp-${PV}.tar.gz \
+ file://fixincludes.patch;patch=1 \
+ file://useless-use-of-bash.patch;patch=1 \
+ file://dhclient-script-exit-status.dpatch;patch=1 \
+ file://dhcp-3.0.3-dhclient-dbus.patch;patch=1;pnum=0 \
+ file://init-relay file://default-relay \
+ file://init-server file://default-server \
+ file://dhclient.conf file://dhcpd.conf"
+
+PR = "${INC_PR}.0"
diff --git a/recipes/dhcp/files/useless-use-of-bash.patch b/recipes/dhcp/files/useless-use-of-bash.patch
new file mode 100644
index 0000000000..6628fe7274
--- /dev/null
+++ b/recipes/dhcp/files/useless-use-of-bash.patch
@@ -0,0 +1,8 @@
+--- dhcp-3.0.2p1/client/scripts/linux 2006-07-22 04:24:16.000000000 +0200
++++ dhcp-3.0.2p1/client/scripts/linux 2009-11-03 17:51:55.000000000 +0100
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ # dhclient-script for Linux. Dan Halbert, March, 1997.
+ # Updated for Linux 2.[12] by Brian J. Murrell, January 1999.
+ # No guarantees about this. I'm a novice at the details of Linux
diff --git a/recipes/di/di_4.17.bb b/recipes/di/di_4.17.bb
new file mode 100644
index 0000000000..9b04df8c24
--- /dev/null
+++ b/recipes/di/di_4.17.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "di is a disk information utility, displaying everything (and more) that your df(1) command does. It features the ability to display your disk usage in whatever format you desire/prefer/are used to. It is designed to be portable across many platforms. "
+HOMEPAGE = "http://www.gentoo.com/di/"
+LICENSE = "MIT-style"
+SECTION = "base"
+DEPENDS = "perl-native"
+
+SRC_URI = "http://www.gentoo.com/di/di-${PV}.tar.gz"
+
+do_install() {
+ # install binary
+ install -d ${D}${bindir}
+ install -m 0755 ${S}/di ${D}${bindir}
+
+ # install manpage
+ install -d ${D}${mandir}/man1
+ install -m 0644 ${S}/di.1 ${D}${mandir}/man1
+}
diff --git a/recipes/dictator/dictator_0.2.bb b/recipes/dictator/dictator_0.2.bb
new file mode 100644
index 0000000000..663b376ea7
--- /dev/null
+++ b/recipes/dictator/dictator_0.2.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Call recodering program for Neo Smartphones"
+SECTION = "utils"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS = "python python-pygtk python-xml python-netclient pydes python-audio"
+PR="r2"
+
+ARCH_pyring = "all"
+
+SRC_URI = "http://home.htw-berlin.de/~s0526295/dictator-0.2.tar.gz"
+
+inherit distutils
+
+S = ${WORKDIR}/dictator-${PV}
+
+FILES_${PN} += " ${sysconfdir}/dictator.conf ${datadir}"
+
+
diff --git a/recipes/disko/disko_1.6.0.bb b/recipes/disko/disko_1.6.0.bb
new file mode 100644
index 0000000000..f8741e9c1c
--- /dev/null
+++ b/recipes/disko/disko_1.6.0.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "Disko is an application framework, that can be used to develop GUI applications for embedded devices. It is closely connected to the DirectFB"
+LICENSE = "LGPL"
+PR = "r0"
+
+require disko.inc
+
+DEPENDS += "taglib directfb virtual/libx11 hal libxv libxxf86vm"
+
+SRC_URI = "http://www.diskohq.org/downloads/${PN}-${PV}.tar.gz \
+ file://pkgconfig.patch;patch=1 \
+ "
+
+do_compile() {
+ ${STAGING_BINDIR_NATIVE}/scons ${PARALLEL_MAKE} graphics=all prefix=${prefix}/ || \
+ oefatal "scons build execution failed."
+}
diff --git a/recipes/disko/disko_git.bb b/recipes/disko/disko_git.bb
index 9aa378ee5c..10b57ecbe4 100644
--- a/recipes/disko/disko_git.bb
+++ b/recipes/disko/disko_git.bb
@@ -1,22 +1,21 @@
DESCRIPTION = "Disko is an application framework, that can be used to develop GUI applications for embedded devices. It is closely connected to the DirectFB"
LICENSE = "GPL"
-PV = "1.6.0+gitr${SRCREV}"
+PV = "1.6.1+gitr${SRCREV}"
PR = "r0"
+DEFAULT_PREFERENCE = "-1"
+
require disko.inc
DEPENDS += "taglib directfb virtual/libx11 hal libxv libxxf86vm"
SRC_URI = "git://www.diskohq.org/disko.git;protocol=git \
- file://linkpath.patch;patch=1 \
file://pkgconfig.patch;patch=1 \
"
-SRCREV = "2aa9912fc32fcf24574e5053201e967dd59bceca"
-
S = "${WORKDIR}/git"
do_compile() {
- ${STAGING_BINDIR_NATIVE}/scons ${PARALLEL_MAKE} graphics=all PREFIX=${prefix} prefix=${prefix} || \
+ ${STAGING_BINDIR_NATIVE}/scons ${PARALLEL_MAKE} graphics=all prefix=${prefix}/ || \
oefatal "scons build execution failed."
}
diff --git a/recipes/disko/files/linkpath.patch b/recipes/disko/files/linkpath.patch
deleted file mode 100644
index e38b0748c4..0000000000
--- a/recipes/disko/files/linkpath.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Index: git/SConstruct
-===================================================================
---- git.orig/SConstruct 2009-09-11 01:44:37.000000000 +0200
-+++ git/SConstruct 2009-09-11 01:52:26.265319426 +0200
-@@ -161,8 +161,8 @@
- idir_inc = idir_prefix + '/include/disko'
- idir_data = idir_prefix + '/share/disko'
-
--# link with -rpath
--# env['LINKFLAGS'].extend(['-Wl,-rpath=' + env['prefix'] + '/lib/disko'])
-+# link with -rpath-link
-+# env['LINKFLAGS'].extend(['-Wl,-rpath-link==' + env['prefix'] + '/lib/disko'])
-
- # extra flags
- if env['messages']:
diff --git a/recipes/disko/files/pkgconfig.patch b/recipes/disko/files/pkgconfig.patch
index 3e4a84bfe8..c405f0200e 100644
--- a/recipes/disko/files/pkgconfig.patch
+++ b/recipes/disko/files/pkgconfig.patch
@@ -1,8 +1,8 @@
-Index: git/SConstruct
+Index: disko-1.6.0/SConstruct
===================================================================
---- git.orig/SConstruct 2009-09-11 01:53:54.000000000 +0200
-+++ git/SConstruct 2009-09-11 02:08:12.789878911 +0200
-@@ -585,6 +585,7 @@
+--- disko-1.6.0.orig/SConstruct 2009-10-14 12:54:36.000000000 +0200
++++ disko-1.6.0/SConstruct 2009-11-17 18:22:49.656165471 +0100
+@@ -580,6 +580,7 @@
#######################################################################
# TODO: handle disko_pc_libs #
if 'install' in BUILD_TARGETS:
@@ -10,7 +10,7 @@ Index: git/SConstruct
disko_pc = open('disko.pc', 'w')
disko_pc_requires = 'libxml-2.0 >= 2.6, sigc++-2.0, libpng >= 1.2, freetype2'
if env['LIBPATH']:
-@@ -610,30 +611,43 @@
+@@ -602,50 +603,76 @@
if env.has_key('libdl'):
disko_pc_libs += ' -ldl'
@@ -54,17 +54,17 @@ Index: git/SConstruct
if env['enable_sip']:
disko_pc_requires += ', libpj'
-@@ -641,18 +655,32 @@
+ if not env['big_lib'] and not env['static_lib']:
disko_pc_libs += ' -lmmssip'
++ PKG_CCFLAGS += '-D__HAVE_MMSSIP__ '
if('uuid' in env['LIBS']):
disko_pc_requires += ', uuid'
-+ PKG_CCFLAGS += '-D__HAVE_MMSSIP__ '
if env['enable_mail']:
disko_pc_requires += ', vmime'
+ PKG_CCFLAGS += '-D__HAVE_VMIME__ '
- if env['mmscrypt']:
+ if env['enable_crypt']:
disko_pc_requires += ', openssl'
+ PKG_CCFLAGS += '-D__HAVE_MMSCRYPT__ '
@@ -74,20 +74,20 @@ Index: git/SConstruct
if 'mysql' in env['database']:
disko_pc_requires += ', mysql'
-+ PKG_CCFLAGS += '-D__ENABLE_MYSQL__ '
-+
+
+ if 'odbc' in env['database']:
+ PKG_CCFLAGS += '-D__ENABLE_FREETDS__ '
+
+ if env['messages']:
-+ PKG_CCFLAGS += '-D__ENABLE_LOG__ '
++ PKG_CCFLAGS += '-D__ENABLE_LOG__ '
+
+ if env['debug']:
-+ PKG_CCFLAGS += '-D__ENABLE_DEBUG__ '
-
++ PKG_CCFLAGS += '-D__ENABLE_DEBUG__ '
++
disko_pc.write('prefix=' + env['prefix'] + '\n')
disko_pc.write('exec_prefix=${prefix}\n')
-@@ -664,13 +692,7 @@
+ disko_pc.write('libdir=${exec_prefix}/lib/disko\n')
+@@ -656,13 +683,7 @@
disko_pc.write('Requires: ' + disko_pc_requires + '\n')
disko_pc.write('Libs: -L${libdir} ' + disko_pc_libs + '\n')
disko_pc.write('Cflags: -I${includedir}/ ')
diff --git a/recipes/dri/glamo-dri-tests_git.bb b/recipes/dri/glamo-dri-tests_git.bb
new file mode 100644
index 0000000000..81e0146e90
--- /dev/null
+++ b/recipes/dri/glamo-dri-tests_git.bb
@@ -0,0 +1,17 @@
+DEPENDS = "libdrm virtual/libx11 libxext"
+
+PV = "1.0.0+gitr${SRCREV}"
+
+SRC_URI = "git://git.bitwiz.org.uk/glamo-dri-tests.git;protocol=git;branch=master"
+
+inherit pkgconfig
+
+do_compile_prepend() {
+ export CROSS_CFLAGS=`pkg-config --cflags libdrm_glamo`
+}
+
+do_install() {
+ PREFIX=${D}/usr make install
+}
+
+S = "${WORKDIR}/git"
diff --git a/recipes/duke3d/duke3d_svn.bb b/recipes/duke3d/duke3d_svn.bb
index 36e46df513..23a8804488 100644
--- a/recipes/duke3d/duke3d_svn.bb
+++ b/recipes/duke3d/duke3d_svn.bb
@@ -3,7 +3,7 @@ LICENSE = "GPLv2"
DEPENDS = "virtual/libsdl libsdl-mixer"
SRCREV = "185"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
SRC_URI = "svn://svn.icculus.org/duke3d/;module=trunk \
file://duke3d.desktop"
diff --git a/recipes/e17/bubble-keyboard_svn.bb b/recipes/e17/bubble-keyboard_svn.bb
index c47c8fb12d..202771ccf0 100644
--- a/recipes/e17/bubble-keyboard_svn.bb
+++ b/recipes/e17/bubble-keyboard_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Simple dialpad keyboard"
SECTION = "x11"
LICENSE = "GPLv2"
DEPENDS = "ecore evas edje libfakekey"
-PV = "0.1.4+svnr${SRCREV}"
+PV = "0.1.4+svnr${SRCPV}"
PR = "r0"
SRC_URI = "svn://svn.om.vptt.ch/trunk/;proto=http;module=bubble-keyboard"
diff --git a/recipes/e17/diskio_svn.bb b/recipes/e17/diskio_svn.bb
index 3c0a8c7e71..0e854ba39f 100644
--- a/recipes/e17/diskio_svn.bb
+++ b/recipes/e17/diskio_svn.bb
@@ -1,5 +1,5 @@
LICENSE = "MIT"
-PV = "0.0.1+svnr${SRCREV}"
+PV = "0.0.1+svnr${SRCPV}"
require e-module.inc
diff --git a/recipes/e17/e-tasks_svn.bb b/recipes/e17/e-tasks_svn.bb
new file mode 100644
index 0000000000..4f27744717
--- /dev/null
+++ b/recipes/e17/e-tasks_svn.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "tasks app for openmoko phones based on elementary"
+HOMEPAGE = "http://code.google.com/p/e-tasks/"
+AUTHOR = "cchandel"
+LICENSE = "GPLv2"
+SECTION = "e/apps"
+#DEPENDS = "elementary eina edbus"
+
+PV = "0.0.1+svnr${SRCPV}"
+PR = "r0"
+
+SRC_URI = "svn://e-tasks.googlecode.com/svn/trunk;module=.;proto=http"
+S = "${WORKDIR}"
+
+inherit autotools
+
diff --git a/recipes/e17/e-wm/wizard-module-skipping.patch b/recipes/e17/e-wm/wizard-module-skipping.patch
new file mode 100644
index 0000000000..d124325b3b
--- /dev/null
+++ b/recipes/e17/e-wm/wizard-module-skipping.patch
@@ -0,0 +1,63 @@
+Index: e/src/modules/wizard/Makefile.am
+===================================================================
+--- e/src/modules/wizard/Makefile.am (revision 43860)
++++ e/src/modules/wizard/Makefile.am (working copy)
+@@ -6,7 +6,7 @@
+ files_DATA = \
+ e-module-$(MODULE).edj module.desktop
+
+-EXTRA_DIST = $(files_DATA) page_040.c page_050.c page_060.c
++EXTRA_DIST = $(files_DATA) page_030.c page_040.c page_050.c page_060.c page_070.c page_080.c
+
+ # the module .so file
+ INCLUDES = -I. \
+@@ -21,9 +21,6 @@
+ page_000.la \
+ page_010.la \
+ page_020.la \
+- page_030.la \
+- page_070.la \
+- page_080.la \
+ page_200.la
+
+ ### disabled because profile selector really does the job. code here just for
+@@ -60,10 +57,10 @@
+ page_020_la_DEPENDENCIES = $(top_builddir)/config.h
+
+ #Choose Menus
+-page_030_la_SOURCES = page_030.c
+-page_030_la_LIBADD = @e_libs@ @dlopen_libs@
+-page_030_la_LDFLAGS = -module -avoid-version
+-page_030_la_DEPENDENCIES = $(top_builddir)/config.h
++#page_030_la_SOURCES = page_030.c
++#page_030_la_LIBADD = @e_libs@ @dlopen_libs@
++#page_030_la_LDFLAGS = -module -avoid-version
++#page_030_la_DEPENDENCIES = $(top_builddir)/config.h
+
+ #page_040_la_SOURCES = page_040.c
+ #page_040_la_LIBADD = @e_libs@ @dlopen_libs@
+@@ -81,16 +78,16 @@
+ #page_060_la_DEPENDENCIES = $(top_builddir)/config.h
+
+ #Choose appliactions
+-page_070_la_SOURCES = page_070.c
+-page_070_la_LIBADD = @e_libs@ @dlopen_libs@
+-page_070_la_LDFLAGS = -module -avoid-version
+-page_070_la_DEPENDENCIES = $(top_builddir)/config.h
++#page_070_la_SOURCES = page_070.c
++#page_070_la_LIBADD = @e_libs@ @dlopen_libs@
++#page_070_la_LDFLAGS = -module -avoid-version
++#page_070_la_DEPENDENCIES = $(top_builddir)/config.h
+
+ #Choose quick launch
+-page_080_la_SOURCES = page_080.c
+-page_080_la_LIBADD = @e_libs@ @dlopen_libs@
+-page_080_la_LDFLAGS = -module -avoid-version
+-page_080_la_DEPENDENCIES = $(top_builddir)/config.h
++#page_080_la_SOURCES = page_080.c
++#page_080_la_LIBADD = @e_libs@ @dlopen_libs@
++#page_080_la_LDFLAGS = -module -avoid-version
++#page_080_la_DEPENDENCIES = $(top_builddir)/config.h
+
+ page_200_la_SOURCES = page_200.c
+ page_200_la_LIBADD = @e_libs@ @dlopen_libs@
diff --git a/recipes/e17/e-wm_svn.bb b/recipes/e17/e-wm_svn.bb
index 97426fb535..fe65620852 100644
--- a/recipes/e17/e-wm_svn.bb
+++ b/recipes/e17/e-wm_svn.bb
@@ -2,8 +2,8 @@ DESCRIPTION = "The Enlightenment Window Manager Version 17"
DEPENDS = "eet evas ecore edje efreet edbus"
LICENSE = "MIT BSD"
SRCNAME = "e"
-PV = "0.16.999.060+svnr${SRCREV}"
-PR = "r6"
+PV = "0.16.999.060+svnr${SRCPV}"
+PR = "r8"
inherit e update-alternatives
@@ -16,6 +16,11 @@ SRC_URI += "\
SRC_URI_append_openmoko = " file://illume-disable-screensaver.patch;patch=1"
+SRC_URI_append_shr = " \
+ file://illume-disable-screensaver.patch;patch=1 \
+ file://wizard-module-skipping.patch;patch=1 \
+"
+
EXTRA_OECONF = "\
--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc \
--with-eet-eet=${STAGING_BINDIR_NATIVE}/eet \
@@ -75,6 +80,7 @@ PACKAGES =+ "\
${PN}-input-methods \
${PN}-sysactions \
${PN}-utils \
+ ${PN}-menu \
"
RRECOMMENDS_${PN} = "\
@@ -101,6 +107,7 @@ PACKAGE_ARCH_${PN}-icons = "all"
PACKAGE_ARCH_${PN}-other = "all"
PACKAGE_ARCH_${PN}-input-methods = "all"
PACKAGE_ARCH_${PN}-sysactions = "all"
+PACKAGE_ARCH_${PN}-menu = "all"
FILES_${PN} = "\
${bindir}/* \
@@ -135,6 +142,7 @@ FILES_${PN}-other = "${datadir}/enlightenment/data/other"
FILES_${PN}-input-methods = "${datadir}/enlightenment/data/input_methods"
FILES_${PN}-sysactions = "${sysconfdir}/enlightenment/sysactions.conf"
FILES_${PN}-utils = "${libdir}/enlightenment/utils/*"
+FILES_${PN}-menu = "${sysconfdir}/xdg/menus/applications.menu"
RRECOMMENDS_${PN}-config-default = "${PN}-theme-default"
RRECOMMENDS_${PN}-config-illume = "${PN}-theme-illume"
@@ -160,7 +168,8 @@ FILES_${PN}-doc += "\
${datadir}/enlightenment/doc \
"
-CONFFILES_${PN} = "${sysconfdir}/xdg/menus/applications.menu"
+CONFFILES_${PN}-menu = "${sysconfdir}/xdg/menus/applications.menu"
+CONFFILES_${PN}-sysactions = "/etc/enlightenment/sysactions.conf"
ALTERNATIVE_PATH = "${bindir}/enlightenment_start.oe"
ALTERNATIVE_NAME = "x-window-manager"
diff --git a/recipes/e17/edje-editor_svn.bb b/recipes/e17/edje-editor_svn.bb
index 44e0158d6b..4978fa76dd 100644
--- a/recipes/e17/edje-editor_svn.bb
+++ b/recipes/e17/edje-editor_svn.bb
@@ -4,7 +4,7 @@ LICENSE = "MIT BSD"
DEPENDS = "etk"
SRCNAME = "edje_editor"
-PV = "0.0.0+svnr${SRCREV}"
+PV = "0.0.0+svnr${SRCPV}"
PR = "r1"
inherit e
diff --git a/recipes/e17/edje-player_svn.bb b/recipes/e17/edje-player_svn.bb
index 7cddee41a0..847483517c 100644
--- a/recipes/e17/edje-player_svn.bb
+++ b/recipes/e17/edje-player_svn.bb
@@ -3,7 +3,7 @@ SECTION = "x11/devel"
LICENSE = "MIT BSD"
DEPENDS = "etk"
SRCNAME = "edje_editor"
-PV = "0.0.0+svnr${SRCREV}"
+PV = "0.0.0+svnr${SRCPV}"
PR = "r0"
inherit e
diff --git a/recipes/e17/edje-viewer_svn.bb b/recipes/e17/edje-viewer_svn.bb
index bf3ab00e10..257d97a2ae 100644
--- a/recipes/e17/edje-viewer_svn.bb
+++ b/recipes/e17/edje-viewer_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Edje_Viewer is just that."
DEPENDS = "etk"
LICENSE = "MIT BSD"
-PV = "0.0.0+svnr${SRCREV}"
+PV = "0.0.0+svnr${SRCPV}"
PR = "r2"
inherit e
diff --git a/recipes/e17/elementary-alarm_svn.bb b/recipes/e17/elementary-alarm_svn.bb
index 4294f2fad1..2123f486db 100644
--- a/recipes/e17/elementary-alarm_svn.bb
+++ b/recipes/e17/elementary-alarm_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "An Elementary based Alarm app"
LICENSE = "GPL"
DEPENDS = "elementary"
SECTION = "x11"
-PV = "0.0.0+svnr${SRCREV}"
+PV = "0.0.0+svnr${SRCPV}"
PR = "r1"
inherit e
diff --git a/recipes/e17/elementary-sms_svn.bb b/recipes/e17/elementary-sms_svn.bb
index 2f0eec3a85..a6730365c1 100644
--- a/recipes/e17/elementary-sms_svn.bb
+++ b/recipes/e17/elementary-sms_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "An Elementary based SMS app"
LICENSE = "GPL"
DEPENDS = "ecore edbus elementary libefso"
SECTION = "x11"
-PV = "0.0.0+svnr${SRCREV}"
+PV = "0.0.0+svnr${SRCPV}"
PR = "r1"
inherit e
diff --git a/recipes/e17/elmdentica_svn.bb b/recipes/e17/elmdentica_svn.bb
new file mode 100644
index 0000000000..5988d904ed
--- /dev/null
+++ b/recipes/e17/elmdentica_svn.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "A indenti.ca client for E"
+DEPENDS = "glib-2.0 gconf libxml2 curl elementary sqlite3-native"
+LICENSE = "GPLv3+"
+SECTION = "e/apps"
+HOMEPAGE = "http://elmdentica.googlecode.com"
+AUTHOR = "seabra"
+PV = "0.7.0+svnr${SRCPV}"
+PR = "r0"
+
+
+SRC_URI = "svn://elmdentica.googlecode.com/svn;module=trunk;proto=http"
+
+S = "${WORKDIR}/trunk"
+
+inherit autotools pkgconfig
diff --git a/recipes/e17/enna_svn.bb b/recipes/e17/enna_svn.bb
index d365d63435..8f4ddc4da6 100644
--- a/recipes/e17/enna_svn.bb
+++ b/recipes/e17/enna_svn.bb
@@ -3,7 +3,7 @@ LICENSE = "GPL"
DEPENDS = "curl dbus eet evas edje ecore edbus emotion"
DEPENDS += "libmusicbrainz lightmediascanner libxml2 taglib"
SECTION = "x11/multimedia"
-PV = "0.2.0+svnr${SRCREV}"
+PV = "0.2.0+svnr${SRCPV}"
PR = "r1"
inherit e
diff --git a/recipes/e17/essential-dialer_svn.bb b/recipes/e17/essential-dialer_svn.bb
index bd16282b41..ff7d4db9ad 100644
--- a/recipes/e17/essential-dialer_svn.bb
+++ b/recipes/e17/essential-dialer_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Simple Dialer based on Elementary and FSO"
SECTION = "x11"
LICENSE = "GPLv2"
DEPENDS = "ecore edbus elementary libefso"
-PV = "0.1.0.0+svnr${SRCREV}"
+PV = "0.1.0.0+svnr${SRCPV}"
SRC_URI = "svn://svn.om.vptt.ch/trunk/;proto=http;module=essential-dialer"
S = "${WORKDIR}/essential-dialer"
diff --git a/recipes/e17/eve_svn.bb b/recipes/e17/eve_svn.bb
new file mode 100644
index 0000000000..d1a0e4775a
--- /dev/null
+++ b/recipes/e17/eve_svn.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = " Enlightenment webbrowser"
+LICENSE = "GPL"
+DEPENDS = "webkit-efl evas ecore edje"
+PV = "0.0.1+svnr${SRCPV}"
+PR = "r3"
+
+LDFLAGS += "-lstdc++"
+
+inherit e
+
+SRC_URI = "svn://svn.enlightenment.org/svn/e/trunk/PROTO;module=eve;proto=http \
+"
+
+S = "${WORKDIR}/eve"
+
+RDEPENDS_${PN} = "${PN}-themes"
+
+
diff --git a/recipes/e17/exalt-client_svn.bb b/recipes/e17/exalt-client_svn.bb
index 469a95554a..c5219b7be2 100644
--- a/recipes/e17/exalt-client_svn.bb
+++ b/recipes/e17/exalt-client_svn.bb
@@ -1,5 +1,5 @@
LICENSE = "LGPLv2"
-PV = "0.0.1+svnr${SRCREV}"
+PV = "0.0.1+svnr${SRCPV}"
require e-module.inc
diff --git a/recipes/e17/exalt_svn.bb b/recipes/e17/exalt_svn.bb
index 8868296736..d024d758e2 100644
--- a/recipes/e17/exalt_svn.bb
+++ b/recipes/e17/exalt_svn.bb
@@ -5,7 +5,7 @@ LICENSE = "LGPLv2"
DEPENDS = "elementary vpnc wpa-supplicant ecore eet edbus"
RDEPENDS = "vpnc wpa-supplicant"
-PV = "0.9+svnr${SRCREV}"
+PV = "0.9+svnr${SRCPV}"
inherit e
diff --git a/recipes/e17/exhibit_svn.bb b/recipes/e17/exhibit_svn.bb
index 2035bc193e..16bd1fbee9 100644
--- a/recipes/e17/exhibit_svn.bb
+++ b/recipes/e17/exhibit_svn.bb
@@ -1,7 +1,9 @@
DESCRIPTION = "Exhibit is the ETK picture viewer"
LICENSE = "MIT BSD"
DEPENDS = "evas ecore epsilon edje eet etk efreet"
-PV = "0.1.1+svnr${SRCREV}"
-PR = "r1"
+PV = "0.1.1+svnr${SRCPV}"
+PR = "r2"
inherit e
+
+SRC_URI = "svn://svn.enlightenment.org/svn/e/trunk/OLD;module=${SRCNAME};proto=http"
diff --git a/recipes/e17/expedite_svn.bb b/recipes/e17/expedite_svn.bb
index 2bcc6d9877..800e586761 100644
--- a/recipes/e17/expedite_svn.bb
+++ b/recipes/e17/expedite_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Expedite is a comprehensive benchmarking suite for Evas"
DEPENDS = "eet evas"
RDEPENDS = "expedite-themes evas-engine-buffer evas-engine-fb evas-engine-software-generic evas-engine-software-x11 evas-loader-png"
LICENSE = "MIT BSD"
-PV = "0.6.0+svnr${SRCREV}"
+PV = "0.6.0+svnr${SRCPV}"
PR = "r3"
inherit e
diff --git a/recipes/e17/exquisite-theme-illume.bb b/recipes/e17/exquisite-theme-illume.bb
index 242ef5a3bf..49be863a3f 100644
--- a/recipes/e17/exquisite-theme-illume.bb
+++ b/recipes/e17/exquisite-theme-illume.bb
@@ -2,7 +2,7 @@ DDESCRIPTION = "A theme for exquisite"
HOMEPAGE = "http://www.enlightenment.org"
LICENSE = "MIT/BSD"
SECTION = "x11"
-PV = "1.0+svnr${SRCREV}"
+PV = "1.0+svnr${SRCPV}"
PR = "r6"
inherit update-alternatives
diff --git a/recipes/e17/exquisite_svn.bb b/recipes/e17/exquisite_svn.bb
index b6b6441107..9c1bc2ca38 100644
--- a/recipes/e17/exquisite_svn.bb
+++ b/recipes/e17/exquisite_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "A psplash replacement for display"
LICENSE = "MIT BSD"
DEPENDS = "eet evas ecore embryo edje"
-PV = "0.0.1+svnr${SRCREV}"
+PV = "0.0.1+svnr${SRCPV}"
PR = "r9"
RDEPENDS = "initscripts"
RRECOMMENDS_${PN} = "exquisite-themes"
diff --git a/recipes/e17/flame_svn.bb b/recipes/e17/flame_svn.bb
index 2a4f82ed33..c46314cb00 100644
--- a/recipes/e17/flame_svn.bb
+++ b/recipes/e17/flame_svn.bb
@@ -1,5 +1,5 @@
LICENSE = "MIT"
-PV = "0.0.3+svnr${SRCREV}"
+PV = "0.0.3+svnr${SRCPV}"
require e-module.inc
diff --git a/recipes/e17/gridpad_svn.bb b/recipes/e17/gridpad_svn.bb
index 40dfa11da5..82be81670d 100644
--- a/recipes/e17/gridpad_svn.bb
+++ b/recipes/e17/gridpad_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Gridpad handstroke recognition"
SECTION = "x11"
LICENSE = "GPLv2"
DEPENDS = "ecore evas edje libfakekey"
-PV = "2.0+svnr${SRCREV}"
+PV = "2.0+svnr${SRCPV}"
PR = "r0"
SRC_URI = "svn://svn.om.vptt.ch/trunk/;proto=http;module=GridPad"
diff --git a/recipes/e17/intuition_svn.bb b/recipes/e17/intuition_svn.bb
index d40dae9f43..caa0fdd528 100644
--- a/recipes/e17/intuition_svn.bb
+++ b/recipes/e17/intuition_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Intuition a prototype context dependent mobile search engine"
SECTION = "x11"
LICENSE = "GPLv2"
DEPENDS = "elementary sqlite"
-PV = "0.2.0+svnr${SRCREV}"
+PV = "0.2.0+svnr${SRCPV}"
PR = "r0"
SRC_URI = "svn://svn.om.vptt.ch/trunk/;proto=http;module=intuition"
diff --git a/recipes/e17/news_svn.bb b/recipes/e17/news_svn.bb
index daef22a0f4..c72fbb58dd 100644
--- a/recipes/e17/news_svn.bb
+++ b/recipes/e17/news_svn.bb
@@ -1,5 +1,5 @@
LICENSE = "MIT"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
require e-module.inc
diff --git a/recipes/e17/places_svn.bb b/recipes/e17/places_svn.bb
index 4aeaed2339..7bcaf99e80 100644
--- a/recipes/e17/places_svn.bb
+++ b/recipes/e17/places_svn.bb
@@ -1,5 +1,5 @@
LICENSE = "GPLv3 LGPLv3"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r3"
diff --git a/recipes/e17/rage_svn.bb b/recipes/e17/rage_svn.bb
index 526744e681..7a176054f2 100644
--- a/recipes/e17/rage_svn.bb
+++ b/recipes/e17/rage_svn.bb
@@ -4,6 +4,6 @@ HOMEPAGE = "http://www.rasterman.com"
LICENSE = "MIT BSD"
DEPENDS = "evas ecore edje"
SECTION = "x11/multimedia"
-PV = "0.3.0.042+svnr${SRCREV}"
+PV = "0.3.0.042+svnr${SRCPV}"
inherit e
diff --git a/recipes/e17/rain_svn.bb b/recipes/e17/rain_svn.bb
index a3e58de299..e9ab9de296 100644
--- a/recipes/e17/rain_svn.bb
+++ b/recipes/e17/rain_svn.bb
@@ -1,5 +1,5 @@
LICENSE = "MIT"
-PV = "0.0.3+svnr${SRCREV}"
+PV = "0.0.3+svnr${SRCPV}"
require e-module.inc
diff --git a/recipes/e17/waker_svn.bb b/recipes/e17/waker_svn.bb
index aba6187ad4..1b8b39ec5f 100644
--- a/recipes/e17/waker_svn.bb
+++ b/recipes/e17/waker_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "An EFL base at/alarm wakeup daemon"
LICENSE = "LGPL"
DEPENDS = "ecore edbus"
SECTION = "console"
-PV = "0.0.0+svnr${SRCREV}"
+PV = "0.0.0+svnr${SRCPV}"
PR = "r1"
inherit efl
diff --git a/recipes/e2fsprogs-libs/e2fsprogs-libs.inc b/recipes/e2fsprogs-libs/e2fsprogs-libs.inc
index 45618b008c..f5e974b8aa 100644
--- a/recipes/e2fsprogs-libs/e2fsprogs-libs.inc
+++ b/recipes/e2fsprogs-libs/e2fsprogs-libs.inc
@@ -35,3 +35,12 @@ do_stage () {
install -m 0644 lib/ss/ss.h ${STAGING_INCDIR}/ss/
install -m 0644 lib/ss/ss_err.h ${STAGING_INCDIR}/ss/
}
+
+# avoid requiring unsupported util-linux-ng for nylon, provide uuid for others...
+DEPENDS_nylon = ""
+EXTRA_OECONF_nylon = ""
+do_stage_append_nylon() {
+ install -d ${STAGING_INCDIR}/uuid
+ install -m 0644 lib/uuid/uuid.h ${STAGING_INCDIR}/uuid/
+ install -m 0644 lib/uuid/libuuid.a ${STAGING_LIBDIR}/
+}
diff --git a/recipes/ebrainy/ebrainy_svn.bb b/recipes/ebrainy/ebrainy_svn.bb
new file mode 100644
index 0000000000..699aa1bdff
--- /dev/null
+++ b/recipes/ebrainy/ebrainy_svn.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "Store knowledge in form of questions and answers and train them."
+HOMEPAGE = "http://code.google.com/p/ebrainy/"
+AUTHOR = "quickdev"
+LICENSE = "GPL"
+SECTION = "e/apps"
+RDEPENDS = "elementary sqlite3 python-sqlalchemy python-mysqldb python-netserver"
+
+PV = "0.0.1+svnr${SRCPV}"
+PR = "r1"
+SRC_URI = "svn://ebrainy.googlecode.com/svn/trunk;module=.;proto=http"
+S = "${WORKDIR}"
+
+inherit distutils
+FILES_${PN} += "${datadir}/applications/ebrainy.desktop"
+
diff --git a/recipes/eds/eds-dbus_svn.bb b/recipes/eds/eds-dbus_svn.bb
index a131bd0d9c..6bccb3d89b 100644
--- a/recipes/eds/eds-dbus_svn.bb
+++ b/recipes/eds/eds-dbus_svn.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://projects.o-hand.com/eds"
LICENSE = "LGPL"
DEPENDS = "intltool-native libglade glib-2.0 gtk+ gconf dbus db gnome-common virtual/libiconv zlib intltool"
-PV = "1.4.0+svnr${SRCREV}"
+PV = "1.4.0+svnr${SRCPV}"
PR = "r7"
SRC_URI = "svn://svn.o-hand.com/repos/${PN};module=trunk;proto=http \
diff --git a/recipes/efl1/ecore.inc b/recipes/efl1/ecore.inc
index 0ebddd56dc..ef3ba55d55 100644
--- a/recipes/efl1/ecore.inc
+++ b/recipes/efl1/ecore.inc
@@ -1,9 +1,10 @@
DESCRIPTION = "Ecore is the Enlightenment application framework library"
LICENSE = "MIT BSD"
-DEPENDS = "curl eet evas tslib libxtst libxcomposite libxinerama libxscrnsaver libxdamage libxrandr libxcursor libxprintutil"
+DEPENDS = "gettext-native virtual/libiconv curl eet evas tslib glib-2.0 \
+ libxtst libxcomposite libxinerama libxscrnsaver libxdamage libxrandr libxcursor libxprintutil"
# optional
# DEPENDS += "directfb libsdl-x11 openssl virtual/libiconv"
-PV = "0.9.9.060+svnr${SRCREV}"
+PV = "0.9.9.060+svnr${SRCPV}"
PR = "r3"
inherit efl
diff --git a/recipes/efl1/ecore/exit_uclibc.patch b/recipes/efl1/ecore/exit_uclibc.patch
new file mode 100644
index 0000000000..dea010c116
--- /dev/null
+++ b/recipes/efl1/ecore/exit_uclibc.patch
@@ -0,0 +1,26 @@
+Index: ecore/src/lib/ecore_con/ecore_con_dns.c
+===================================================================
+--- ecore.orig/src/lib/ecore_con/ecore_con_dns.c 2009-11-14 00:12:04.279051754 +0100
++++ ecore/src/lib/ecore_con/ecore_con_dns.c 2009-11-14 00:14:41.685708230 +0100
+@@ -135,7 +135,7 @@
+ write(fd[1], "", 1);
+ }
+ close(fd[1]);
+-# ifdef __USE_ISOC99
++# if defined(__USE_ISOC99) && !defined(__UCLIBC__)
+ _Exit(0);
+ # else
+ _exit(0);
+Index: ecore/src/lib/ecore_con/ecore_con_info.c
+===================================================================
+--- ecore.orig/src/lib/ecore_con/ecore_con_info.c 2009-11-14 00:14:56.056955719 +0100
++++ ecore/src/lib/ecore_con/ecore_con_info.c 2009-11-14 00:16:40.035696191 +0100
+@@ -243,7 +243,7 @@
+ freeaddrinfo(result);
+ err = write(fd[1], "", 1);
+ close(fd[1]);
+-# ifdef __USE_ISOC99
++# if defined(__USE_ISOC99) && !defined(__UCLIBC__)
+ _Exit(0);
+ # else
+ _exit(0);
diff --git a/recipes/efl1/ecore/iconv.patch b/recipes/efl1/ecore/iconv.patch
new file mode 100644
index 0000000000..16524917b2
--- /dev/null
+++ b/recipes/efl1/ecore/iconv.patch
@@ -0,0 +1,96 @@
+Index: ecore/configure.ac
+===================================================================
+--- ecore.orig/configure.ac 2009-11-13 13:16:18.000000000 +0100
++++ ecore/configure.ac 2009-11-19 01:09:28.469345164 +0100
+@@ -29,6 +29,9 @@
+ AM_GNU_GETTEXT_VERSION([0.12.1])
+ AM_GNU_GETTEXT([external])
+
++# explicit call AM_ICONV, because gettext is used in a different way
++AM_ICONV
++
+ release="ver-pre-svn-04"
+ case "$host_os" in
+ mingw32ce* | cegcc*)
+@@ -378,48 +381,6 @@
+ requirements_ecore="glib-2.0 ${requirements_ecore}"
+ fi
+
+-
+-# iconv library (ecore_txt)
+-
+-iconv_cflags=""
+-iconv_libs=""
+-have_iconv="no"
+-AC_ARG_WITH([iconv-link],
+- AC_HELP_STRING([--with-iconv-link=ICONV_LINK], [explicitly specify an iconv link option]),
+- [
+- iconv_libs=$withval
+- have_iconv="yes"
+- ]
+-)
+-
+-if test "x${have_iconv}" = "xno" ; then
+- AC_CHECK_LIB(c, iconv,
+- [have_iconv="yes"] )
+-
+- if ! test "x${have_iconv}" = "xyes" ; then
+- AC_CHECK_LIB(iconv, iconv,
+- [
+- iconv_libs="-liconv"
+- have_iconv="yes"
+- ])
+- fi
+-
+- if test "x$have_iconv" != "xyes"; then
+- AC_CHECK_LIB(iconv_plug, iconv,
+- [
+- iconv_libs="-liconv -liconv_plug"
+- have_iconv="yes"
+- ])
+- fi
+-
+-fi
+-AC_MSG_CHECKING(for explicit iconv link options)
+-AC_MSG_RESULT($iconv_libs)
+-
+-AC_SUBST(iconv_cflags)
+-AC_SUBST(iconv_libs)
+-
+-
+ # SDL library (ecore_sdl)
+
+ have_sdl="no"
+@@ -790,7 +751,7 @@
+ ECORE_CHECK_MODULE([Job], [${want_ecore_job}])
+
+ # ecore_txt
+-ECORE_CHECK_MODULE([Txt], [${want_ecore_txt}], [$have_iconv])
++ECORE_CHECK_MODULE([Txt], [${want_ecore_txt}])
+
+ # ecore_con
+ ECORE_CHECK_MODULE([Con], [${want_ecore_con}])
+Index: ecore/src/lib/ecore_txt/Makefile.am
+===================================================================
+--- ecore.orig/src/lib/ecore_txt/Makefile.am 2009-11-13 13:16:12.000000000 +0100
++++ ecore/src/lib/ecore_txt/Makefile.am 2009-11-19 01:08:47.619349166 +0100
+@@ -3,8 +3,7 @@
+ AM_CPPFLAGS = \
+ -I$(top_srcdir)/src/lib/ecore \
+ -I$(top_builddir)/src/lib/ecore \
+-@EFL_ECORE_TXT_BUILD@ \
+-@iconv_cflags@
++@EFL_ECORE_TXT_BUILD@
+
+ if BUILD_ECORE_TXT
+
+@@ -16,8 +15,7 @@
+ libecore_txt_la_SOURCES = \
+ ecore_txt.c
+
+-libecore_txt_la_LIBADD = @iconv_libs@ \
+-@EINA_LIBS@
++libecore_txt_la_LIBADD = $(LTLIBICONV) @EINA_LIBS@
+
+ libecore_txt_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @ecore_txt_release_info@
+
diff --git a/recipes/efl1/ecore_svn.bb b/recipes/efl1/ecore_svn.bb
index b9f01ba8b3..a6c519526a 100644
--- a/recipes/efl1/ecore_svn.bb
+++ b/recipes/efl1/ecore_svn.bb
@@ -1,32 +1,35 @@
require ecore.inc
-PR = "r5"
+PR = "r7"
+
+SRC_URI += "file://iconv.patch;patch=1 \
+ file://exit_uclibc.patch;patch=1 \
+ "
EXTRA_OECONF = "\
--x-includes=${STAGING_INCDIR}/X11 \
--x-libraries=${STAGING_LIBDIR} \
--enable-simple-x11 \
-\
--enable-ecore-txt \
--enable-ecore-config \
- --disable-ecore-x-xcb \
--enable-ecore-x \
--enable-ecore-job \
- --disable-ecore-directfb \
- --disable-ecore-sdl \
--enable-ecore-fb \
--enable-ecore-evas \
--enable-ecore-evas-software-16-x11 \
- --disable-ecore-evas-x11-gl \
--enable-ecore-evas-xrender \
- --disable-ecore-evas-dfb \
- --disable-ecore-evas-sdl \
- --disable-openssl \
--enable-abstract-sockets \
--enable-ecore-con \
--enable-ecore-ipc \
--enable-ecore-file \
--enable-inotify \
- --disable-poll \
--enable-curl \
--disable-ecore-desktop \
+ --disable-ecore-x-xcb \
+ --disable-ecore-directfb \
+ --disable-ecore-sdl \
+ --enable-ecore-evas-x11-gl \
+ --disable-ecore-evas-dfb \
+ --disable-ecore-evas-sdl \
+ --disable-openssl \
+ --disable-poll \
"
diff --git a/recipes/efl1/edb_svn.bb b/recipes/efl1/edb_svn.bb
index a3d2d3d99c..06d1cf7ed2 100644
--- a/recipes/efl1/edb_svn.bb
+++ b/recipes/efl1/edb_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Edb is the Enlightenment database library"
LICENSE = "MIT BSD"
DEPENDS = "zlib"
-PV = "1.0.5.050+svnr${SRCREV}"
+PV = "1.0.5.050+svnr${SRCPV}"
PR = "r1"
inherit efl
diff --git a/recipes/efl1/edbus_svn.bb b/recipes/efl1/edbus_svn.bb
index adc6b7fbea..d26b40c14e 100644
--- a/recipes/efl1/edbus_svn.bb
+++ b/recipes/efl1/edbus_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "DBus and HAL convenience wrappers for EFL"
DEPENDS = "dbus ecore"
LICENSE = "MIT BSD"
-PV = "0.5.0.060+svnr${SRCREV}"
+PV = "0.5.0.060+svnr${SRCPV}"
PR = "r1"
inherit efl
diff --git a/recipes/efl1/edje_svn.bb b/recipes/efl1/edje_svn.bb
index bfd00ecb96..a4453fc95a 100644
--- a/recipes/efl1/edje_svn.bb
+++ b/recipes/efl1/edje_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Edje is the Enlightenment graphical design & layout library"
DEPENDS = "lua5.1 eet evas ecore embryo edje-native"
LICENSE = "MIT BSD"
-PV = "0.9.92.060+svnr${SRCREV}"
+PV = "0.9.92.060+svnr${SRCPV}"
PR = "r4"
inherit efl
diff --git a/recipes/efl1/eet_svn.bb b/recipes/efl1/eet_svn.bb
index 4af40da984..338cf89163 100644
--- a/recipes/efl1/eet_svn.bb
+++ b/recipes/efl1/eet_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "EET is the Enlightenment data storage library"
DEPENDS = "zlib jpeg openssl eina"
LICENSE = "MIT BSD"
-PV = "1.1.0+svnr${SRCREV}"
+PV = "1.1.0+svnr${SRCPV}"
PR = "r1"
inherit efl
diff --git a/recipes/efl1/eflpp_svn.bb b/recipes/efl1/eflpp_svn.bb
index 4942f5c548..c54e8be16c 100644
--- a/recipes/efl1/eflpp_svn.bb
+++ b/recipes/efl1/eflpp_svn.bb
@@ -3,7 +3,7 @@ AUTHOR = "Michael 'Mickey' Lauer <mlauer@vanille-media.de>"
HOMEPAGE = "http://www.vanille-media.de/site/index.php/projects/efl/"
LICENSE = "LGPL"
DEPENDS = "evas ecore edje emotion esmart etk ewl libsigc++-2.0"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r1"
inherit efl
diff --git a/recipes/efl1/efreet_svn.bb b/recipes/efl1/efreet_svn.bb
index 7ed8812087..0d0bcdf329 100644
--- a/recipes/efl1/efreet_svn.bb
+++ b/recipes/efl1/efreet_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "The Enlightenment freedesktop.org library"
DEPENDS = "ecore"
LICENSE = "MIT BSD"
-PV = "0.5.0.060+svnr${SRCREV}"
+PV = "0.5.0.060+svnr${SRCPV}"
PR = "r1"
inherit efl
diff --git a/recipes/efl1/eina/gnu_source.patch b/recipes/efl1/eina/gnu_source.patch
new file mode 100644
index 0000000000..8af08ebb82
--- /dev/null
+++ b/recipes/efl1/eina/gnu_source.patch
@@ -0,0 +1,12 @@
+Index: eina/configure.ac
+===================================================================
+--- eina.orig/configure.ac 2009-11-26 15:58:28.784112802 +0100
++++ eina/configure.ac 2009-11-26 15:59:34.524939842 +0100
+@@ -273,6 +273,7 @@
+ AC_C_INLINE
+ AC_C___ATTRIBUTE__
+ AC_PROG_CC_STDC
++AC_GNU_SOURCE
+
+ EINA_CPPFLAGS=""
+ case "$host_os" in
diff --git a/recipes/efl1/eina_svn.bb b/recipes/efl1/eina_svn.bb
index e62cdd2380..a871721e7c 100644
--- a/recipes/efl1/eina_svn.bb
+++ b/recipes/efl1/eina_svn.bb
@@ -1,10 +1,12 @@
DESCRIPTION = "Eina is the Enlightenment data library"
LICENSE = "LGPL"
-PV = "0.0.2.060+svnr${SRCREV}"
-PR = "r0"
+PV = "0.0.2.060+svnr${SRCPV}"
+PR = "r1"
inherit efl
+SRC_URI += "file://gnu_source.patch;patch=1"
+
# Some upgrade path tweaking
AUTO_LIBNAME_PKGS = ""
diff --git a/recipes/efl1/elementary_svn.bb b/recipes/efl1/elementary_svn.bb
index d523cbf1aa..e82272dbed 100644
--- a/recipes/efl1/elementary_svn.bb
+++ b/recipes/efl1/elementary_svn.bb
@@ -1,8 +1,8 @@
DESCRIPTION = "EFL based widget set for mobile devices"
LICENSE = "LGPL"
DEPENDS = "efreet evas ecore edje eet edbus"
-PV = "0.0.0+svnr${SRCREV}"
-PR = "r4"
+PV = "0.0.0+svnr${SRCPV}"
+PR = "r5"
inherit efl
@@ -11,8 +11,7 @@ EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc"
SRC_URI = "svn://svn.enlightenment.org/svn/e/trunk/TMP/st;module=elementary;proto=http"
S = "${WORKDIR}/elementary"
-RDEPENDS_${PN} = "elementary-themes"
-RRECOMMENDS_${PN} = "elementary-tests"
+RSUGGESTS_${PN} = "elementary-tests"
do_compile_append() {
sed -i -e s:${STAGING_DIR_TARGET}::g \
diff --git a/recipes/efl1/embryo_svn.bb b/recipes/efl1/embryo_svn.bb
index 222d85a7cb..c8d67f9fcb 100644
--- a/recipes/efl1/embryo_svn.bb
+++ b/recipes/efl1/embryo_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "The Enlightenment C-like scripting language for Edje"
LICENSE = "MIT BSD"
-PV = "0.9.9.060+svnr${SRCREV}"
+PV = "0.9.9.060+svnr${SRCPV}"
PR = "r2"
inherit efl
diff --git a/recipes/efl1/emotion_svn.bb b/recipes/efl1/emotion_svn.bb
index 662628d4c2..c5733be8a1 100644
--- a/recipes/efl1/emotion_svn.bb
+++ b/recipes/efl1/emotion_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "The Enlightenment multimedia library"
LICENSE = "MIT BSD"
# we no longer build the libxine backend, since the gstreamer backend seems more promising
DEPENDS = "eet evas ecore edje gstreamer gst-plugins-base"
-PV = "0.1.0.042+svnr${SRCREV}"
+PV = "0.1.0.042+svnr${SRCPV}"
PR = "r4"
inherit efl
diff --git a/recipes/efl1/engrave_svn.bb b/recipes/efl1/engrave_svn.bb
index 3dc5e332a2..d4a00bf6a2 100644
--- a/recipes/efl1/engrave_svn.bb
+++ b/recipes/efl1/engrave_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Engrave is an Edje Editing Library"
LICENSE = "MIT"
# also requires yacc and lex on host
DEPENDS = "evas ecore"
-PV = "0.0.0+svnr${SRCREV}"
+PV = "0.0.0+svnr${SRCPV}"
PR = "r1"
inherit efl
diff --git a/recipes/efl1/enhance_svn.bb b/recipes/efl1/enhance_svn.bb
index b44cbec75c..ae3405ee4d 100644
--- a/recipes/efl1/enhance_svn.bb
+++ b/recipes/efl1/enhance_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Enhance translates between glade .xml files and ETK"
LICENSE = "MIT"
DEPENDS = "exml"
-PV = "0.0.1+svnr${SRCREV}"
+PV = "0.0.1+svnr${SRCPV}"
PR = "r1"
inherit efl
diff --git a/recipes/efl1/epdf_svn.bb b/recipes/efl1/epdf_svn.bb
index 7aeb537268..bc180450a8 100644
--- a/recipes/efl1/epdf_svn.bb
+++ b/recipes/efl1/epdf_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Epdf is the glue between EFL and libpoppler"
LICENSE = "MIT BSD"
DEPENDS = "poppler evas ecore etk ewl"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r2"
inherit efl
diff --git a/recipes/efl1/epeg_svn.bb b/recipes/efl1/epeg_svn.bb
index 25ea7fa0b9..dac7284013 100644
--- a/recipes/efl1/epeg_svn.bb
+++ b/recipes/efl1/epeg_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Epeg is a small library for handling thumbnails."
LICENSE = "MIT"
DEPENDS = "jpeg"
-PV = "0.9.0+svnr${SRCREV}"
+PV = "0.9.0+svnr${SRCPV}"
PR = "r2"
inherit efl
diff --git a/recipes/efl1/epsilon_svn.bb b/recipes/efl1/epsilon_svn.bb
index 1f348d1777..b08e7afc1e 100644
--- a/recipes/efl1/epsilon_svn.bb
+++ b/recipes/efl1/epsilon_svn.bb
@@ -3,7 +3,7 @@ that is compliant with the freedesktop.org Thumbnail Managing Standard."
LICENSE = "MIT BSD"
# can also depend on xine for movie thumbnails
DEPENDS = "libpng evas ecore edje perl-native"
-PV = "0.3.0.012+svnr${SRCREV}"
+PV = "0.3.0.012+svnr${SRCPV}"
PR = "r4"
inherit efl
diff --git a/recipes/efl1/esmart_svn.bb b/recipes/efl1/esmart_svn.bb
index 1ff75a4a84..4e938753d9 100644
--- a/recipes/efl1/esmart_svn.bb
+++ b/recipes/efl1/esmart_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "ESmart is a collection of smart Evas objects"
LICENSE = "MIT BSD"
DEPENDS = "evas ecore edje imlib2 epsilon libtool"
-PV = "0.9.0.050+svnr${SRCREV}"
+PV = "0.9.0.050+svnr${SRCPV}"
PR = "r1"
inherit efl
diff --git a/recipes/efl1/etk_svn.bb b/recipes/efl1/etk_svn.bb
index 4b06590301..bb3e4a14c8 100644
--- a/recipes/efl1/etk_svn.bb
+++ b/recipes/efl1/etk_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Etk is an advanced widget toolkit based on the Enlightenment Foundation Libraries."
DEPENDS = "evas ecore edje"
LICENSE = "MIT"
-PV = "0.1.0.042+svnr${SRCREV}"
+PV = "0.1.0.042+svnr${SRCPV}"
PR = "r5"
inherit efl
diff --git a/recipes/efl1/evas-native_svn.bb b/recipes/efl1/evas-native_svn.bb
index d3da6659d6..0cb192ca9f 100644
--- a/recipes/efl1/evas-native_svn.bb
+++ b/recipes/efl1/evas-native_svn.bb
@@ -63,7 +63,7 @@ EXTRA_OECONF = "\
# evas needs a different oe_libinstall, so copy/paste autotools_stage_all
-do_stage() {
+do_oldstage() {
rm -rf ${STAGE_TEMP}
mkdir -p ${STAGE_TEMP}
oe_runmake DESTDIR="${STAGE_TEMP}" install
diff --git a/recipes/efl1/evas.inc b/recipes/efl1/evas.inc
index 833d38f240..f45fcb8e53 100644
--- a/recipes/efl1/evas.inc
+++ b/recipes/efl1/evas.inc
@@ -2,7 +2,7 @@ DESCRIPTION = "Evas is the Enlightenment canvas API"
LICENSE = "MIT BSD"
# can also depend on valgrind, libsdl-x11, directfb
DEPENDS = "eina eet freetype jpeg libpng virtual/libx11 libxext libxrender fontconfig libfribidi"
-PV = "0.9.9.060+svnr${SRCREV}"
+PV = "0.9.9.060+svnr${SRCPV}"
PR = "r1"
diff --git a/recipes/efl1/evas_svn.bb b/recipes/efl1/evas_svn.bb
index 21779818ca..b73d8155ba 100644
--- a/recipes/efl1/evas_svn.bb
+++ b/recipes/efl1/evas_svn.bb
@@ -19,7 +19,6 @@ EXTRA_OECONF = "\
--enable-software-x11 \
--enable-software-16-x11 \
--disable-software-xcb \
- --disable-gl-x11 \
--enable-xrender-x11 \
--disable-xrender-xcb \
--disable-glitz-x11 \
diff --git a/recipes/efl1/evolve_svn.bb b/recipes/efl1/evolve_svn.bb
index 24e794b9cd..e11406c3fb 100644
--- a/recipes/efl1/evolve_svn.bb
+++ b/recipes/efl1/evolve_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Evolve allows you to write ETK designs using a C-like language"
LICENSE = "MIT"
DEPENDS = "etk evolve-native"
-PV = "0.1.0.001+svnr${SRCREV}"
+PV = "0.1.0.001+svnr${SRCPV}"
PR = "r2"
inherit efl
diff --git a/recipes/efl1/ewl_svn.bb b/recipes/efl1/ewl_svn.bb
index a1d373b963..a8e0bfaf8d 100644
--- a/recipes/efl1/ewl_svn.bb
+++ b/recipes/efl1/ewl_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "The Enlightened Widget Library"
DEPENDS = "evas ecore edje emotion efreet epsilon"
LICENSE = "MIT BSD"
-PV = "0.5.3.050+svnr${SRCREV}"
+PV = "0.5.3.050+svnr${SRCPV}"
PR = "r1"
inherit efl
diff --git a/recipes/efl1/exml_svn.bb b/recipes/efl1/exml_svn.bb
index 363a23d7f1..3c505f2e95 100644
--- a/recipes/efl1/exml_svn.bb
+++ b/recipes/efl1/exml_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Exml is a generic XML parser wrapper."
LICENSE = "MIT"
DEPENDS = "libxml2 libxslt ecore"
-PV = "0.1.1+svnr${SRCREV}"
+PV = "0.1.1+svnr${SRCPV}"
PR = "r2"
inherit efl
diff --git a/recipes/efl1/illume-keyboard-arabic_git.bb b/recipes/efl1/illume-keyboard-arabic_git.bb
index 41ea9e1cd4..fcc01c905a 100644
--- a/recipes/efl1/illume-keyboard-arabic_git.bb
+++ b/recipes/efl1/illume-keyboard-arabic_git.bb
@@ -1,6 +1,7 @@
AUTHOR = "Mohammad Fahmi / Tom Hacohen"
DESCRIPTION = "Illume keyboard with arabic layout"
-PV = "0.0-gitr${SRCREV}"
+PV = "0.0+gitr${SRCREV}"
+PE = "1"
PR = "r0"
BASEDIR = "arabic"
diff --git a/recipes/efl1/illume-keyboard-browse_git.bb b/recipes/efl1/illume-keyboard-browse_git.bb
index 268140c75a..b9f5e750d1 100644
--- a/recipes/efl1/illume-keyboard-browse_git.bb
+++ b/recipes/efl1/illume-keyboard-browse_git.bb
@@ -1,6 +1,7 @@
AUTHOR = "Pander"
DESCRIPTION = "Illume keyboard with a layout optimized for browsing"
-PV = "0.0-gitr${SRCREV}"
+PV = "0.0+gitr${SRCREV}"
+PE = "1"
PR = "r0"
BASEDIR = "browse"
diff --git a/recipes/efl1/illume-keyboard-danish_git.bb b/recipes/efl1/illume-keyboard-danish_git.bb
index 21f8ff954a..b824a9e9d9 100644
--- a/recipes/efl1/illume-keyboard-danish_git.bb
+++ b/recipes/efl1/illume-keyboard-danish_git.bb
@@ -1,6 +1,7 @@
AUTHOR = "Esben Damgaard"
DESCRIPTION = "Illume keyboard with danish layout"
-PV = "0.0-gitr${SRCREV}"
+PV = "0.0+gitr${SRCREV}"
+PE = "1"
PR = "r0"
BASEDIR = "danish"
diff --git a/recipes/efl1/illume-keyboard-default-alt_git.bb b/recipes/efl1/illume-keyboard-default-alt_git.bb
index 34c3c299bb..4ceca530ae 100644
--- a/recipes/efl1/illume-keyboard-default-alt_git.bb
+++ b/recipes/efl1/illume-keyboard-default-alt_git.bb
@@ -1,6 +1,7 @@
AUTHOR = "Pander"
DESCRIPTION = "Illume keyboard with an alternative default layout"
-PV = "0.0-gitr${SRCREV}"
+PV = "0.0+gitr${SRCREV}"
+PE = "1"
PR = "r0"
BASEDIR = "default-alt"
diff --git a/recipes/efl1/illume-keyboard-dutch_git.bb b/recipes/efl1/illume-keyboard-dutch_git.bb
index 2300ac7101..15d0022de8 100644
--- a/recipes/efl1/illume-keyboard-dutch_git.bb
+++ b/recipes/efl1/illume-keyboard-dutch_git.bb
@@ -1,6 +1,7 @@
AUTHOR = "Pander"
DESCRIPTION = "Illume keyboard with dutch layout"
-PV = "0.0-gitr${SRCREV}"
+PV = "0.0+gitr${SRCREV}"
+PE = "1"
PR = "r0"
BASEDIR = "dutch"
diff --git a/recipes/efl1/illume-keyboard-dvorak_git.bb b/recipes/efl1/illume-keyboard-dvorak_git.bb
index 795d78dcc7..61c58b406b 100644
--- a/recipes/efl1/illume-keyboard-dvorak_git.bb
+++ b/recipes/efl1/illume-keyboard-dvorak_git.bb
@@ -1,6 +1,7 @@
AUTHOR = "Gabor Adam TOTH"
DESCRIPTION = "Illume keyboard with dvorak layout"
-PV = "0.0-gitr${SRCREV}"
+PV = "0.0+gitr${SRCREV}"
+PE = "1"
PR = "r0"
BASEDIR = "dvorak"
diff --git a/recipes/efl1/illume-keyboard-french_git.bb b/recipes/efl1/illume-keyboard-french_git.bb
index 205a6ad991..5e957e98e1 100644
--- a/recipes/efl1/illume-keyboard-french_git.bb
+++ b/recipes/efl1/illume-keyboard-french_git.bb
@@ -1,5 +1,6 @@
DESCRIPTION = "Illume keyboard with french layout"
-PV = "0.0-gitr${SRCREV}"
+PV = "0.0+gitr${SRCREV}"
+PE = "1"
PR = "r0"
BASEDIR = "french"
diff --git a/recipes/efl1/illume-keyboard-german_git.bb b/recipes/efl1/illume-keyboard-german_git.bb
index 0252932116..7120dea750 100644
--- a/recipes/efl1/illume-keyboard-german_git.bb
+++ b/recipes/efl1/illume-keyboard-german_git.bb
@@ -1,6 +1,7 @@
AUTHOR = "Florian Hackenberger"
DESCRIPTION = "Illume keyboard with german layout"
-PV = "0.0-gitr${SRCREV}"
+PV = "0.0+gitr${SRCREV}"
+PE = "1"
PR = "r0"
BASEDIR = "german"
diff --git a/recipes/efl1/illume-keyboard-hebrew_git.bb b/recipes/efl1/illume-keyboard-hebrew_git.bb
index 8d408b4a91..cbd47eaad3 100644
--- a/recipes/efl1/illume-keyboard-hebrew_git.bb
+++ b/recipes/efl1/illume-keyboard-hebrew_git.bb
@@ -1,6 +1,7 @@
AUTHOR = "Tom Hacohen"
DESCRIPTION = "Illume keyboard with hebrew layout"
-PV = "0.0-gitr${SRCREV}"
+PV = "0.0+gitr${SRCREV}"
+PE = "1"
PR = "r0"
BASEDIR = "hebrew"
diff --git a/recipes/efl1/illume-keyboard-numeric-alt_git.bb b/recipes/efl1/illume-keyboard-numeric-alt_git.bb
index f2d2487386..8abfb8f020 100644
--- a/recipes/efl1/illume-keyboard-numeric-alt_git.bb
+++ b/recipes/efl1/illume-keyboard-numeric-alt_git.bb
@@ -1,6 +1,7 @@
AUTHOR = "Pander"
DESCRIPTION = "Illume keyboard with an alternative numeric layout"
-PV = "0.0-gitr${SRCREV}"
+PV = "0.0+gitr${SRCREV}"
+PE = "1"
PR = "r0"
BASEDIR = "numeric-alt"
diff --git a/recipes/efl1/illume-keyboard-russian-terminal_git.bb b/recipes/efl1/illume-keyboard-russian-terminal_git.bb
index f0a4508d98..b625e937c2 100644
--- a/recipes/efl1/illume-keyboard-russian-terminal_git.bb
+++ b/recipes/efl1/illume-keyboard-russian-terminal_git.bb
@@ -1,6 +1,7 @@
AUTHOR = "lucky"
DESCRIPTION = "Illume keyboard with russian layout for the Terminal"
-PV = "0.0-gitr${SRCREV}"
+PV = "0.0+gitr${SRCREV}"
+PE = "1"
PR = "r0"
BASEDIR = "russian-terminal"
diff --git a/recipes/efl1/illume-keyboard-russian_git.bb b/recipes/efl1/illume-keyboard-russian_git.bb
index 517956bb2b..ed0644ee58 100644
--- a/recipes/efl1/illume-keyboard-russian_git.bb
+++ b/recipes/efl1/illume-keyboard-russian_git.bb
@@ -1,6 +1,7 @@
AUTHOR = "lucky"
DESCRIPTION = "Illume keyboard with russian layout"
-PV = "0.0-gitr${SRCREV}"
+PV = "0.0+gitr${SRCREV}"
+PE = "1"
PR = "r0"
BASEDIR = "russian"
diff --git a/recipes/efl1/imlib2_svn.bb b/recipes/efl1/imlib2_svn.bb
index 025a36add4..230ba7136b 100644
--- a/recipes/efl1/imlib2_svn.bb
+++ b/recipes/efl1/imlib2_svn.bb
@@ -3,7 +3,7 @@ LICENSE = "BSD"
# can also depend on tiff34, ungif or gif, z, bz2, id3tag
DEPENDS = "freetype libpng jpeg virtual/libx11 libxext"
PROVIDES = "virtual/imlib2"
-PV = "1.4.2.001+svnr${SRCREV}"
+PV = "1.4.2.001+svnr${SRCPV}"
PR = "r0"
inherit efl
diff --git a/recipes/efl1/libefso_svn.bb b/recipes/efl1/libefso_svn.bb
index 276cd100ef..d9bc651908 100644
--- a/recipes/efl1/libefso_svn.bb
+++ b/recipes/efl1/libefso_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "EFL FSO wrapper library"
SECTION = "e/libs"
LICENSE = "GPLv2"
DEPENDS = "ecore edbus"
-PV = "0.0.1+svnr${SRCREV}"
+PV = "0.0.1+svnr${SRCPV}"
SRC_URI = "svn://svn.om.vptt.ch/trunk/;proto=http;module=libefso"
S = "${WORKDIR}/libefso"
diff --git a/recipes/efl1/libeweather_svn.bb b/recipes/efl1/libeweather_svn.bb
new file mode 100644
index 0000000000..6668f08278
--- /dev/null
+++ b/recipes/efl1/libeweather_svn.bb
@@ -0,0 +1,44 @@
+DESCRIPTION = "EFL-based weather widget library"
+LICENSE = "LGPL"
+DEPENDS = "ecore edje"
+PV = "0.0.0+svnr${SRCPV}"
+PR = "r0"
+
+inherit efl
+
+EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc"
+
+SRC_URI = "svn://svn.enlightenment.org/svn/e/trunk/PROTO;module=eweather;proto=http"
+S = "${WORKDIR}/eweather"
+
+RSUGGESTS_${PN} = "elementary-tests"
+
+do_compile_append() {
+ sed -i -e s:${STAGING_DIR_TARGET}::g \
+ -e s:/${TARGET_SYS}::g \
+ eweather.pc
+}
+
+PACKAGES += "${PN}-plugins"
+
+FILES_${PN}-themes = "\
+ ${datadir} \
+"
+
+FILES_${PN}-plugins = "\
+ ${libdir}/eweather/plugins/*.so \
+"
+
+FILES_${PN}-dbg += "\
+ ${libdir}/eweather/plugins/.debug \
+"
+
+FILES_${PN}-dev += "\
+ ${libdir}/eweather/plugins/*.a \
+ ${libdir}/eweather/plugins/*.la \
+"
+
+RRECOMMENDS_${PN} = "\
+ ${PN}-themes \
+ ${PN}-plugins \
+"
diff --git a/recipes/eglibc/eglibc-initial_2.11.bb b/recipes/eglibc/eglibc-initial_2.11.bb
new file mode 100644
index 0000000000..787c762609
--- /dev/null
+++ b/recipes/eglibc/eglibc-initial_2.11.bb
@@ -0,0 +1,6 @@
+require eglibc_${PV}.bb
+require eglibc-initial.inc
+
+do_configure_prepend () {
+ unset CFLAGS
+}
diff --git a/recipes/eglibc/eglibc-package.bbclass b/recipes/eglibc/eglibc-package.bbclass
index a50ec61ae7..27437f6021 100644
--- a/recipes/eglibc/eglibc-package.bbclass
+++ b/recipes/eglibc/eglibc-package.bbclass
@@ -152,23 +152,23 @@ do_prep_locale_tree() {
treedir=${WORKDIR}/locale-tree
rm -rf $treedir
mkdir -p $treedir/bin $treedir/lib $treedir/${datadir} $treedir/${libdir}/locale
- cp -pPR ${D}${datadir}/i18n $treedir/${datadir}/i18n
+ cp -pPR ${PKGD}${datadir}/i18n $treedir/${datadir}/i18n
# unzip to avoid parsing errors
for i in $treedir/${datadir}/i18n/charmaps/*gz; do
gunzip $i
done
- ls -d ${D}${base_libdir}/* | xargs -iBLAH cp -pPR BLAH $treedir/lib
+ ls -d ${PKGD}${base_libdir}/* | xargs -iBLAH cp -pPR BLAH $treedir/lib
if [ -f ${CROSS_DIR}/${TARGET_SYS}/lib/libgcc_s.* ]; then
cp -pPR ${CROSS_DIR}/${TARGET_SYS}/lib/libgcc_s.* $treedir/lib
fi
- install -m 0755 ${D}${bindir}/localedef $treedir/bin
+ install -m 0755 ${PKGD}${bindir}/localedef $treedir/bin
}
do_collect_bins_from_locale_tree() {
treedir=${WORKDIR}/locale-tree
- mkdir -p ${D}${libdir}
- cp -pPR $treedir/${libdir}/locale ${D}${libdir}
+ mkdir -p ${PKGD}${libdir}
+ cp -pPR $treedir/${libdir}/locale ${PKGD}${libdir}
}
python package_do_split_gconvs () {
diff --git a/recipes/eglibc/eglibc_2.10.bb b/recipes/eglibc/eglibc_2.10.bb
index d143b0ad0c..38faaf81b6 100644
--- a/recipes/eglibc/eglibc_2.10.bb
+++ b/recipes/eglibc/eglibc_2.10.bb
@@ -3,10 +3,10 @@ require eglibc.inc
DEPENDS += "gperf-native"
FILESPATHPKG =. "eglibc-svn:"
PV = "2.10"
-PR = "${INC_PR}.4"
+PR = "${INC_PR}.5"
SVN_REV="9124"
EGLIBC_BRANCH="eglibc-2_10"
-SRC_URI = "svn://svn.eglibc.org/branches;module=eglibc-2_10;rev=${SVN_REV};proto=svn \
+SRC_URI = "svn://svn.eglibc.org/branches;module=${EGLIBC_BRANCH};rev=${SVN_REV};proto=svn \
file://eglibc-svn-arm-lowlevellock-include-tls.patch;patch=1 \
file://armv4t-interworking.patch;patch=1 \
file://IO-acquire-lock-fix.patch;patch=1 \
diff --git a/recipes/eglibc/eglibc_2.11.bb b/recipes/eglibc/eglibc_2.11.bb
new file mode 100644
index 0000000000..8c7901c3e2
--- /dev/null
+++ b/recipes/eglibc/eglibc_2.11.bb
@@ -0,0 +1,100 @@
+require eglibc.inc
+
+DEFAULT_PREFERENCE = "-1"
+DEPENDS += "gperf-native"
+FILESPATHPKG =. "eglibc-svn:"
+PV = "2.11"
+PR = "${INC_PR}.0"
+SVN_REV="9235"
+EGLIBC_BRANCH="eglibc-2_11"
+SRC_URI = "svn://svn.eglibc.org/branches;module=${EGLIBC_BRANCH};rev=${SVN_REV};proto=svn \
+ file://eglibc-svn-arm-lowlevellock-include-tls.patch;patch=1 \
+ file://IO-acquire-lock-fix.patch;patch=1 \
+ file://etc/ld.so.conf \
+ file://generate-supported.mk"
+S = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
+B = "${WORKDIR}/build-${TARGET_SYS}"
+
+PACKAGES_DYNAMIC = "libc6*"
+RPROVIDES_${PN}-dev = "libc6-dev virtual-libc-dev"
+PROVIDES_${PN}-dbg = "glibc-dbg"
+
+# the -isystem in bitbake.conf screws up glibc do_stage
+BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
+TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${layout_includedir}"
+
+GLIBC_ADDONS ?= "ports,nptl,libidn"
+
+GLIBC_BROKEN_LOCALES = " _ER _ET so_ET yn_ER sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN"
+
+#
+# For now, we will skip building of a gcc package if it is a uclibc one
+# and our build is not a uclibc one, and we skip a glibc one if our build
+# is a uclibc build.
+#
+# See the note in gcc/gcc_3.4.0.oe
+#
+
+python __anonymous () {
+ import bb, re
+ uc_os = (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None)
+ if uc_os:
+ raise bb.parse.SkipPackage("incompatible with target %s" %
+ bb.data.getVar('TARGET_OS', d, 1))
+}
+
+EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
+ --without-cvs --disable-profile --disable-debug --without-gd \
+ --enable-clocale=gnu \
+ --enable-add-ons=${GLIBC_ADDONS},ports \
+ --with-headers=${STAGING_INCDIR} \
+ --without-selinux \
+ ${GLIBC_EXTRA_OECONF}"
+
+EXTRA_OECONF += "${@get_eglibc_fpu_setting(bb, d)}"
+
+do_unpack_append() {
+ bb.build.exec_func('do_move_ports', d)
+}
+
+do_move_ports() {
+ if test -d ${WORKDIR}/${EGLIBC_BRANCH}/ports ; then
+ rm -rf ${S}/ports
+ mv ${WORKDIR}/${EGLIBC_BRANCH}/ports ${S}/
+ fi
+}
+
+do_configure () {
+# override this function to avoid the autoconf/automake/aclocal/autoheader
+# calls for now
+# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
+# version check and doesn't really help with anything
+ if [ -z "`which rpcgen`" ]; then
+ echo "rpcgen not found. Install glibc-devel."
+ exit 1
+ fi
+ (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
+ find ${S} -name "configure" | xargs touch
+ CPPFLAGS="" oe_runconf
+}
+
+rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
+ yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
+ rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
+
+do_compile () {
+ # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
+ unset LDFLAGS
+ base_do_compile
+ (
+ cd ${S}/sunrpc/rpcsvc
+ for r in ${rpcsvc}; do
+ h=`echo $r|sed -e's,\.x$,.h,'`
+ rpcgen -h $r -o $h || oewarn "unable to generate header for $r"
+ done
+ )
+}
+
+require eglibc-stage.inc
+
+require eglibc-package.bbclass
diff --git a/recipes/eglibc/eglibc_2.9.bb b/recipes/eglibc/eglibc_2.9.bb
index 3efcb36d37..792ca83726 100644
--- a/recipes/eglibc/eglibc_2.9.bb
+++ b/recipes/eglibc/eglibc_2.9.bb
@@ -3,10 +3,10 @@ require eglibc.inc
DEPENDS += "gperf-native"
FILESPATHPKG =. "eglibc-svn:"
PV = "2.9"
-PR = "${INC_PR}.5"
+PR = "${INC_PR}.6"
SVN_REV="8690"
EGLIBC_BRANCH="eglibc-2_9"
-SRC_URI = "svn://svn.eglibc.org/branches;module=eglibc-2_9;rev=${SVN_REV};proto=svn \
+SRC_URI = "svn://svn.eglibc.org/branches;module=${EGLIBC_BRANCH};rev=${SVN_REV};proto=svn \
file://eglibc-svn-arm-lowlevellock-include-tls.patch;patch=1 \
file://armv4t-interworking.patch;patch=1 \
file://IO-acquire-lock-fix.patch;patch=1 \
diff --git a/recipes/eglibc/eglibc_svn.bb b/recipes/eglibc/eglibc_svn.bb
index 1a91af88d8..67f13abc95 100644
--- a/recipes/eglibc/eglibc_svn.bb
+++ b/recipes/eglibc/eglibc_svn.bb
@@ -1,15 +1,14 @@
require eglibc.inc
DEPENDS += "gperf-native"
-SRCREV = "9170"
+SRCREV = "9241"
DEFAULT_PREFERENCE = "-1"
FILESPATHPKG =. "eglibc-svn:"
-PV = "2.10+svnr${SRCREV}"
-PR = "${INC_PR}.1"
+PV = "2.11+svnr${SRCPV}"
+PR = "${INC_PR}.3"
EGLIBC_BRANCH="trunk"
-SRC_URI = "svn://svn.eglibc.org;module=trunk \
+SRC_URI = "svn://svn.eglibc.org;module=${EGLIBC_BRANCH} \
file://eglibc-svn-arm-lowlevellock-include-tls.patch;patch=1 \
- file://armv4t-interworking.patch;patch=1 \
file://IO-acquire-lock-fix.patch;patch=1 \
file://etc/ld.so.conf \
file://generate-supported.mk"
diff --git a/recipes/eglibc/files/armv4t-interworking.patch b/recipes/eglibc/files/armv4t-interworking.patch
index 55ee8565d7..6ab306180c 100644
--- a/recipes/eglibc/files/armv4t-interworking.patch
+++ b/recipes/eglibc/files/armv4t-interworking.patch
@@ -40,7 +40,7 @@ Index: libc/ports/sysdeps/unix/sysv/linux/arm/clone.S
#endif
@ pick the function arg and call address off the stack and execute
ldr r0, [sp, #4]
-+#if defined(__ARM_ARCH_V4T__) && defined(__THUMB_INTERWORK__)
++#if defined(__ARM_ARCH_4T__) && defined(__THUMB_INTERWORK__)
+ ldr ip, [sp], #8
+ mov lr, pc
+ bx ip
@@ -51,3 +51,28 @@ Index: libc/ports/sysdeps/unix/sysv/linux/arm/clone.S
@ and we are done, passing the return value through r0
b PLTJMP(HIDDEN_JUMPTARGET(_exit))
+Index: libc/ports/sysdeps/unix/sysv/linux/arm/sysdep.h
+===================================================================
+--- libc.orig/ports/sysdeps/unix/sysv/linux/arm/sysdep.h 2009-09-16 13:58:18.000000000 +0100
++++ libc/ports/sysdeps/unix/sysv/linux/arm/sysdep.h 2009-11-03 19:17:16.000000000 +0000
+@@ -129,6 +129,11 @@
+ DO_RET(lr); \
+ 1: .word C_SYMBOL_NAME(rtld_errno) - 0b - 8;
+ # else
++#if defined(__ARM_ARCH_4T__) && defined(__THUMB_INTERWORK__)
++#define POP_PC ldr lr, [sp], #4; bx lr
++#else
++#define POP_PC ldr pc, [sp], #4
++#endif
+ # define SYSCALL_ERROR_HANDLER \
+ __local_syscall_error: \
+ str lr, [sp, #-4]!; \
+@@ -138,7 +143,7 @@
+ rsb r1, r1, #0; \
+ str r1, [r0]; \
+ mvn r0, #0; \
+- ldr pc, [sp], #4;
++ POP_PC;
+ # endif
+ #else
+ # define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */
diff --git a/recipes/enotes/enotes_svn.bb b/recipes/enotes/enotes_svn.bb
new file mode 100644
index 0000000000..991f188154
--- /dev/null
+++ b/recipes/enotes/enotes_svn.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "todo list manager in EFL"
+HOMEPAGE = "http://enotes.googlecode.com"
+AUTHOR = "furester"
+LICENSE = "GPL"
+SECTION = "e/apps"
+DEPENDS = "elementary evas sqlite3"
+
+PV = "0.2.2+svnr${SRCPV}"
+PR = "r1"
+SRC_URI = "svn://enotes.googlecode.com/svn/trunk;module=.;proto=http"
+S = "${WORKDIR}"
+
+inherit autotools
+
+
diff --git a/recipes/erminig/erminig_3.0.3.bb b/recipes/erminig/erminig_3.0.3.bb
new file mode 100644
index 0000000000..b061c321b8
--- /dev/null
+++ b/recipes/erminig/erminig_3.0.3.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Erminig is a python application that provides two-way synchronization between Google Calendar and GPE Calendar."
+HOMEPAGE = "https://garage.maemo.org/projects/erminig/"
+SECTION = "devel/python"
+LICENSE = "GPL"
+PV="3.0.3"
+PR="r0"
+
+SRC_URI = "https://garage.maemo.org/frs/download.php/4737/erminig_3.0.3-3.tar.gz"
+S = "${WORKDIR}/${PN}-${PV}"
+
+inherit distutils
+
+RDEPENDS_${PN} = "\
+ python-pygtk \
+ python-pysqlite2 \
+
+"
+FILES_${PN} = "${datadir}"
+
+
diff --git a/recipes/exmap-console/exmap-console_svn.bb b/recipes/exmap-console/exmap-console_svn.bb
index 6e86214b1c..012bcf009d 100644
--- a/recipes/exmap-console/exmap-console_svn.bb
+++ b/recipes/exmap-console/exmap-console_svn.bb
@@ -1,6 +1,6 @@
require exmap-console.inc
-PV = "0.4+svnr${SRCREV}"
+PV = "0.4+svnr${SRCPV}"
PR = "r1"
SRC_URI = "svn://svn.o-hand.com/repos/misc/trunk;module=exmap-console;proto=http"
diff --git a/recipes/ezx/ezx-boot-usb-native_svn.bb b/recipes/ezx/ezx-boot-usb-native_svn.bb
index 0615686c26..1298cac80c 100644
--- a/recipes/ezx/ezx-boot-usb-native_svn.bb
+++ b/recipes/ezx/ezx-boot-usb-native_svn.bb
@@ -3,7 +3,7 @@ DEPENDS = "virtual/libusb0-native virtual/kernel"
SECTION = "devel"
AUTHOR = "Team OpenEZX <openezx-devel@lists.openezx.org>"
LICENSE = "GPL"
-PV = "0.3.0+svnr${SRCREV}"
+PV = "0.3.0+svnr${SRCPV}"
SRC_URI = "svn://svn.openezx.org/trunk/src/host;module=boot_usb;proto=http"
S = "${WORKDIR}/boot_usb"
diff --git a/recipes/ezx/ezxd_svn.bb b/recipes/ezx/ezxd_svn.bb
index ce0542fba2..134980f4c0 100644
--- a/recipes/ezx/ezxd_svn.bb
+++ b/recipes/ezx/ezxd_svn.bb
@@ -3,7 +3,7 @@ LICENSE = "GPLv2"
SECTION = "devel"
AUTHOR = "Daniel Ribeiro"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR = "r4"
SRC_URI = "svn://svn.openezx.org/trunk/src/userspace/;module=ezxd;proto=http \
diff --git a/recipes/fbreader/fbreader_0.10.7.bb b/recipes/fbreader/fbreader_0.10.7.bb
index 0dfea08479..986f21fbca 100644
--- a/recipes/fbreader/fbreader_0.10.7.bb
+++ b/recipes/fbreader/fbreader_0.10.7.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.fbreader.org"
SECTION = "x11/utils"
PRIORITY = "optional"
LICENSE = "GPLv2"
-DEPENDS = "gtk+ enca expat bzip2 libgpewidget virtual/libiconv liblinebreak"
+DEPENDS = "gtk+ enca expat bzip2 libgpewidget virtual/libiconv liblinebreak libfribidi"
SRC_URI = "http://www.fbreader.org/fbreader-sources-${PV}.tgz file://help.patch;patch=1"
diff --git a/recipes/ffalarms/atd-over-fso/atd-alarm-glue.patch b/recipes/ffalarms/atd-over-fso/atd-alarm-glue.patch
new file mode 100644
index 0000000000..66a268ce2b
--- /dev/null
+++ b/recipes/ffalarms/atd-over-fso/atd-alarm-glue.patch
@@ -0,0 +1,14 @@
+--- Makefile-orig 2003-03-23 19:46:26.000000000 +0100
++++ Makefile 2009-03-16 19:39:39.000000000 +0100
+@@ -10,6 +10,11 @@
+ rm -f atq
+ ln -s atd atq
+
++atd.o: atd-alarm-glue.h
++
++atd-alarm-glue.h: atd-alarm.xml
++ dbus-binding-tool --prefix=atd_alarm --mode=glib-server $< --output=$@
++
+ dist: atd
+ cp atd dist/usr/sbin/
+ rm dist/usr/bin/atq
diff --git a/recipes/ffalarms/atd-over-fso/atd-over-fso.conf.patch b/recipes/ffalarms/atd-over-fso/atd-over-fso.conf.patch
new file mode 100644
index 0000000000..6b6bebaa0f
--- /dev/null
+++ b/recipes/ffalarms/atd-over-fso/atd-over-fso.conf.patch
@@ -0,0 +1,13 @@
+--- /dev/null 2009-03-26 10:57:36.511814417 +0100
++++ dist/etc/dbus-1/system.d/atd-over-fso.conf 2009-03-29 03:15:37.000000000 +0200
+@@ -0,0 +1,10 @@
++<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
++ "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
++<busconfig>
++ <policy user="root">
++ <allow own="org.openmoko.projects.ffalarms.atd"/>
++ <allow send_path="/"/>
++ <allow send_destination="org.openmoko.projects.ffalarms.atd"/>
++ <allow receive_sender="org.openmoko.projects.ffalarms.atd"/>
++ </policy>
++</busconfig>
diff --git a/recipes/ffalarms/atd-over-fso/atd-startup-restart.patch b/recipes/ffalarms/atd-over-fso/atd-startup-restart.patch
new file mode 100644
index 0000000000..adea0e1178
--- /dev/null
+++ b/recipes/ffalarms/atd-over-fso/atd-startup-restart.patch
@@ -0,0 +1,17 @@
+--- dist/etc/init.d/atd-orig 2009-03-29 14:20:09.000000000 +0200
++++ dist/etc/init.d/atd 2009-03-29 14:37:31.000000000 +0200
+@@ -20,9 +20,13 @@
+ rm -f /var/spool/at/trigger
+ echo "."
+ ;;
++ restart)
++ $0 stop
++ $0 start
++ ;;
+
+ *)
+- echo "Usage: /etc/init.d/atd {start|stop}"
++ echo "Usage: /etc/init.d/atd {start|stop|restart}"
+ exit 1
+ esac
+
diff --git a/recipes/ffalarms/atd-over-fso/atd-startup.patch b/recipes/ffalarms/atd-over-fso/atd-startup.patch
new file mode 100644
index 0000000000..dc4c1195d1
--- /dev/null
+++ b/recipes/ffalarms/atd-over-fso/atd-startup.patch
@@ -0,0 +1,39 @@
+? atd-startup.patch
+Index: ChangeLog
+===================================================================
+RCS file: /cvs/apps/atd/ChangeLog,v
+retrieving revision 1.2
+diff -B -b -u -r1.2 ChangeLog
+--- ChangeLog 2 Feb 2004 15:30:39 -0000 1.2
++++ ChangeLog 13 Jan 2006 11:54:00 -0000
+@@ -1,3 +1,8 @@
++2006-01-13 Florian Boor <florian@kernelconcepts.de>
++
++ * dist/etc/init.d/atd: Remove obsolete --oknodo and add -m to
++ enable pidfile.
++
+ V0.7
+ - removed waiting for childpid after having spawned an event
+ this caused trouble with events rescheduling themselves
+Index: dist/etc/init.d/atd
+===================================================================
+RCS file: /cvs/apps/atd/dist/etc/init.d/atd,v
+retrieving revision 1.3
+diff -B -b -u -r1.3 atd
+--- dist/etc/init.d/atd 24 Jan 2003 15:09:03 -0000 1.3
++++ dist/etc/init.d/atd 13 Jan 2006 11:54:00 -0000
+@@ -11,12 +11,12 @@
+ echo -n "Starting at daemon: atd"
+ mkdir -p /var/spool/at
+ chmod a+w /var/spool/at
+- start-stop-daemon --start --quiet --pidfile /var/run/atd.pid --exec /usr/sbin/atd /var/spool/at >/dev/null 2>&1 &
++ start-stop-daemon --start --quiet -m --pidfile /var/run/atd.pid --exec /usr/sbin/atd /var/spool/at >/dev/null 2>&1 &
+ echo "."
+ ;;
+ stop)
+ echo -n "Stopping at daemon: atd"
+- start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/atd.pid --exec /usr/sbin/atd
++ start-stop-daemon --stop --quiet --pidfile /var/run/atd.pid --exec /usr/sbin/atd
+ rm -f /var/spool/at/trigger
+ echo "."
+ ;;
diff --git a/recipes/ffalarms/atd-over-fso/init.d-atd-restart.patch b/recipes/ffalarms/atd-over-fso/init.d-atd-restart.patch
new file mode 100644
index 0000000000..11742d9937
--- /dev/null
+++ b/recipes/ffalarms/atd-over-fso/init.d-atd-restart.patch
@@ -0,0 +1,17 @@
+--- S97atd-orig 2009-03-29 11:59:02.000000000 +0200
++++ S97atd 2009-03-29 12:03:07.000000000 +0200
+@@ -20,9 +20,13 @@
+ rm -f /var/spool/at/trigger
+ echo "."
+ ;;
++ restart)
++ $0 stop
++ $0 start
++ ;;
+
+ *)
+- echo "Usage: /etc/init.d/atd {start|stop}"
++ echo "Usage: /etc/init.d/atd {start|stop|restart}"
+ exit 1
+ esac
+
diff --git a/recipes/ffalarms/atd-over-fso/no-oknodo.patch b/recipes/ffalarms/atd-over-fso/no-oknodo.patch
new file mode 100644
index 0000000000..e1eb2528ac
--- /dev/null
+++ b/recipes/ffalarms/atd-over-fso/no-oknodo.patch
@@ -0,0 +1,11 @@
+--- atd/dist/etc/init.d/atd.orig 2003-01-24 07:09:03.000000000 -0800
++++ atd/dist/etc/init.d/atd 2005-09-22 14:50:55.000000000 -0700
+@@ -16,7 +16,7 @@ case "$1" in
+ ;;
+ stop)
+ echo -n "Stopping at daemon: atd"
+- start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/atd.pid --exec /usr/sbin/atd
++ start-stop-daemon --stop --quiet --pidfile /var/run/atd.pid --exec /usr/sbin/atd
+ rm -f /var/spool/at/trigger
+ echo "."
+ ;;
diff --git a/recipes/ffalarms/atd-over-fso/run-over-fso.patch b/recipes/ffalarms/atd-over-fso/run-over-fso.patch
new file mode 100644
index 0000000000..425aca45fb
--- /dev/null
+++ b/recipes/ffalarms/atd-over-fso/run-over-fso.patch
@@ -0,0 +1,505 @@
+--- src/atd.c-orig 2004-02-02 16:30:39.000000000 +0100
++++ src/atd.c 2009-09-15 22:57:35.000000000 +0200
+@@ -7,10 +7,12 @@
+ * Copyright (C) 1996, Paul Gortmaker
+ * Copyright (C) 2001, Russell Nelson
+ * Copyright (C) 2002-2004, Nils Faerber <nils@handhelds.org>
++ * Copyright (C) 2009, Åukasz Pankowski <lukpank@o2.pl>
+ *
+ * Released under the GNU General Public License, version 2,
+ * included herein by reference.
+ *
++ * Åukasz Pankowski: modified to work over org.freesmartphone.otimed
+ */
+
+ #include <stdio.h>
+@@ -31,6 +33,16 @@
+ #include <dirent.h>
+ #include <pwd.h>
+ #include <signal.h>
++#include <glib.h>
++#include <dbus/dbus-glib.h>
++#include <dbus/dbus-glib-lowlevel.h>
++#include <dbus/dbus.h>
++#include "atd-alarm.h"
++#include "atd-alarm-glue.h"
++
++#define DBUS_NAME "org.openmoko.projects.ffalarms.atd"
++#define DBUS_RECONNECT_TIMEOUT 10
++#define OTIMED "org.freesmartphone.otimed"
+
+
+ /* globals... */
+@@ -62,33 +74,23 @@
+ }
+
+
+-void waitfor (time_t t)
++void rtc_set_time (void)
+ {
+-int rtcfd, tfd, retval= 0;
+-unsigned long data;
++int rtcfd, retval= 0;
+ struct rtc_time rtc_tm;
+-time_t now, then;
++time_t now;
+ struct tm *tm;
+-struct timeval tv;
+-int nfds;
+-fd_set afds;
+
+ #ifdef DEBUG
+- printf("waitfor %ld\n", t);
++ printf("rtc_set_time\n");
+ #endif
+ rtcfd = open ("/dev/rtc", O_RDONLY);
+
+ if (rtcfd == -1) {
++ /* treat it as warning, may be should retry? */
+ perror("/dev/rtc");
+- exit(errno);
+- }
+-
+- /* Read the RTC time/date */
+- tfd = open ("trigger", O_RDWR);
+-
+- if (tfd == -1) {
+- perror("trigger");
+- exit(errno);
++ errno = 0;
++ return;
+ }
+
+ /* Set the RTC time/date */
+@@ -112,112 +114,7 @@
+ rtc_tm.tm_hour, rtc_tm.tm_min, rtc_tm.tm_sec);
+ #endif
+
+- tm = gmtime (&t);
+-
+-#ifdef DEBUG
+- printf ("Alarm date/time is %d-%d-%d, %02d:%02d:%02d.\n",
+- tm->tm_mday, tm->tm_mon + 1, tm->tm_year + 1900,
+- tm->tm_hour, tm->tm_min, tm->tm_sec);
+-#endif
+- if (t && compare_rtc_to_tm (&rtc_tm, tm) >= 0) {
+- close (rtcfd);
+- close (tfd);
+- return;
+- }
+-
+- if (t) {
+- /* set the alarm */
+- rtc_tm.tm_mday = tm->tm_mday;
+- rtc_tm.tm_mon = tm->tm_mon;
+- rtc_tm.tm_year = tm->tm_year;
+- rtc_tm.tm_sec = tm->tm_sec;
+- rtc_tm.tm_min = tm->tm_min;
+- rtc_tm.tm_hour = tm->tm_hour;
+- retval = ioctl (rtcfd, RTC_ALM_SET, &rtc_tm);
+- if (retval == -1) {
+- perror ("ioctl");
+- exit (errno);
+- }
+-#ifdef DEBUG
+- printf ("Alarm date/time now set to %d-%d-%d, %02d:%02d:%02d.\n",
+- rtc_tm.tm_mday, rtc_tm.tm_mon + 1, rtc_tm.tm_year + 1900,
+- rtc_tm.tm_hour, rtc_tm.tm_min, rtc_tm.tm_sec);
+-#endif
+-
+- /* Read the current alarm settings */
+- retval = ioctl (rtcfd, RTC_ALM_READ, &rtc_tm);
+- if (retval == -1) {
+- perror ("ioctl");
+- exit (errno);
+- }
+-
+-#ifdef DEBUG
+- printf ("Alarm date/time now in RTC: %d-%d-%d, %02d:%02d:%02d.\n",
+- rtc_tm.tm_mday, rtc_tm.tm_mon + 1, rtc_tm.tm_year + 1900,
+- rtc_tm.tm_hour, rtc_tm.tm_min, rtc_tm.tm_sec);
+-#endif
+-
+- /* Enable alarm interrupts */
+- retval = ioctl (rtcfd, RTC_AIE_ON, 0);
+- if (retval == -1) {
+- perror ("ioctl");
+- exit (errno);
+- }
+- }
+-
+-#ifdef DEBUG
+- printf ("Waiting for alarm...");
+- fflush (stdout);
+-#endif
+- /* This blocks until the alarm ring causes an interrupt */
+- FD_ZERO (&afds);
+- if (t)
+- FD_SET (rtcfd, &afds);
+- FD_SET (tfd, &afds);
+- nfds = rtcfd+1;
+- if (tfd > rtcfd)
+- nfds = tfd + 1;
+- /* Wait up to ten minutes. */
+- tv.tv_sec = 10 * 60;
+- tv.tv_usec = 0;
+- then = now;
+- if (select (nfds, &afds, (fd_set *) 0, (fd_set *) 0, &tv) < 0) {
+- if (errno != EINTR)
+- perror ("select");
+- exit (errno);
+- }
+- now = time (NULL);
+-#ifdef DEBUG
+- printf ("While we were sleeping, %d seconds elapsed, but %d alarms passed\n",
+- (int)(now - then), (int)(tv.tv_sec));
+-#endif
+- if (FD_ISSET (rtcfd, &afds)) {
+- retval = read (rtcfd, &data, sizeof (unsigned long));
+- if (retval == -1) {
+- perror ("read");
+- exit (errno);
+- }
+- }
+- if (FD_ISSET(tfd, &afds)) {
+- retval = read (tfd, &data, 1);
+- if (retval == -1) {
+- perror ("read");
+- exit (errno);
+- }
+- }
+-#ifdef DEBUG
+- printf ("Something happened!\n");
+-#endif
+-
+- /* Disable alarm interrupts */
+- retval = ioctl (rtcfd, RTC_AIE_OFF, 0);
+- if (retval == -1) {
+- perror ("ioctl");
+- exit (errno);
+- }
+-
+ close (rtcfd);
+- close (tfd);
+ }
+
+
+@@ -345,11 +242,223 @@
+ }
+
+
++G_DEFINE_TYPE(AtdAlarm, atd_alarm, G_TYPE_OBJECT);
++
++
++static void atd_alarm_finalize (GObject* self) {
++ g_object_unref(((AtdAlarm*) self)->alarm_proxy);
++ G_OBJECT_CLASS (atd_alarm_parent_class)->finalize (self);
++}
++
++
++static void atd_alarm_class_init(AtdAlarmClass *cls)
++{
++ G_OBJECT_CLASS (cls)->finalize = atd_alarm_finalize;
++}
++
++
++static void atd_alarm_init(AtdAlarm *self)
++{
++}
++
++
++AtdAlarm* atd_alarm_new (char *spooldir)
++{
++AtdAlarm *self;
++
++ self = g_object_new(ATD_TYPE_ALARM, NULL);
++ if (self) {
++ self->bus = NULL;
++ self->alarm_proxy = NULL;
++ self->trigger = NULL;
++ }
++ return self;
++}
++
++
++gboolean input_on_trigger(GIOChannel *source, GIOCondition condition,
++ AtdAlarm *obj)
++{
++char data;
++
++ if (read (g_io_channel_unix_get_fd(source), &data, 1) == -1) {
++ perror ("read");
++ exit (errno);
++ }
++ atd_alarm_alarm(obj);
++
++ return TRUE;
++}
++
++
++void display_free_g_error(GError **error)
++{
++ if ((*error)->domain == DBUS_GERROR &&
++ (*error)->code == DBUS_GERROR_REMOTE_EXCEPTION)
++ g_printerr("Remote exception: %s: %s\n",
++ dbus_g_error_get_name(*error),
++ (*error)->message);
++ else
++ g_printerr("Error: %s\n", (*error)->message);
++ g_error_free(*error);
++ *error = NULL;
++}
++
++
++static void otimed_destroy(DBusGProxy *alarm_proxy, AtdAlarm *obj)
++{
++#ifdef DEBUG
++ printf("proxy for " OTIMED " destroyed\n");
++#endif
++ g_object_unref(obj->alarm_proxy);
++ obj->alarm_proxy = NULL;
++}
++
++
++void atd_alarm_connect_otimed(AtdAlarm *self)
++{
++GError *error;
++int tfd;
++
++ error = NULL;
++ self->alarm_proxy = dbus_g_proxy_new_for_name_owner
++ (self->bus, OTIMED, "/org/freesmartphone/Time/Alarm",
++ "org.freesmartphone.Time.Alarm", &error);
++ if (error != NULL) {
++ display_free_g_error(&error);
++ return;
++ }
++ g_signal_connect(self->alarm_proxy, "destroy",
++ G_CALLBACK(otimed_destroy), self);
++
++ /* if we are connected to otimed (so we know it is up and
++ * running) we can open the trigger
++ */
++ if (self->trigger)
++ return;
++ if (mkfifo ("trigger.new", 0777) < 0)
++ die ("cannot mkfifo trigger.new");
++ if (rename ("trigger.new","trigger"))
++ die ("cannot rename trigger.new");
++ chmod ("trigger", S_IWUSR | S_IWGRP | S_IWOTH);
++ tfd = open ("trigger", O_RDWR);
++ if (tfd == -1) {
++ perror("trigger");
++ exit(errno);
++ }
++ self->trigger = g_io_channel_unix_new(tfd);
++ g_io_add_watch(self->trigger, G_IO_IN,
++ (GIOFunc) input_on_trigger, self);
++}
++
++
++void atd_alarm_waitfor(AtdAlarm *self, time_t t)
++{
++GError *error;
++
++ if (!t)
++ return;
++
++ rtc_set_time();
++ error = NULL;
++ if (self->alarm_proxy == NULL) {
++ g_printerr(OTIMED " not running, could not call SetAlarm\n");
++ } else if (!dbus_g_proxy_call(self->alarm_proxy, "SetAlarm", &error,
++ G_TYPE_STRING, DBUS_NAME,
++ G_TYPE_INT, t, G_TYPE_INVALID,
++ G_TYPE_INVALID)) {
++ display_free_g_error(&error);
++ }
++#ifdef DEBUG
++ printf("DBus waitfor: %d\n", (int) t);
++#endif
++}
++
++
++void name_owner_changed(DBusGProxy *proxy, const char *name,
++ const char *prev_name, const char *new_name,
++ AtdAlarm *obj)
++{
++ if (!strcmp(name, OTIMED) && *new_name) {
++#ifdef DEBUG
++ printf("DBus NameOwnerChanged: " OTIMED "\n");
++#endif
++ atd_alarm_connect_otimed(obj);
++ atd_alarm_alarm(obj);
++ }
++}
++
++
++static void dbus_disconnected(DBusGProxy *obj, GMainLoop *ml)
++{
++ g_printerr("DBus disconnected\n");
++ g_main_loop_quit(ml);
++}
++
++
++void atd_alarm_start(AtdAlarm *self)
++//int start_atd_alarm(GIOChannel *trigger, int exit_on_error)
++{
++GMainLoop *ml;
++GError *error;
++DBusError dbus_error;
++DBusGProxy *proxy;
++int code;
++
++ error = NULL;
++ self->bus = dbus_g_bus_get(DBUS_BUS_SYSTEM, &error);
++ if (!self->bus) {
++ g_printerr("failed to connect to DBUS: %s\n",
++ error->message);
++ g_error_free(error);
++ return;
++ }
++ dbus_error_init(&dbus_error);
++ code = dbus_bus_request_name
++ (dbus_g_connection_get_connection(self->bus),
++ DBUS_NAME, DBUS_NAME_FLAG_DO_NOT_QUEUE, &dbus_error);
++ if (code != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) {
++ if (code == -1)
++ g_printerr("Error: %s\n", dbus_error.message);
++ else
++ g_printerr("could not register name (%d): %s\n",
++ code, DBUS_NAME);
++ exit(1);
++ }
++ dbus_g_connection_register_g_object(self->bus, "/", G_OBJECT(self));
++ proxy = dbus_g_proxy_new_for_name(self->bus, "org.freedesktop.DBus",
++ "/org/freedesktop/DBus",
++ "org.freedesktop.DBus");
++ dbus_g_proxy_add_signal(proxy, "NameOwnerChanged", G_TYPE_STRING,
++ G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
++ dbus_g_proxy_connect_signal(proxy, "NameOwnerChanged",
++ G_CALLBACK(name_owner_changed), self, NULL);
++ atd_alarm_connect_otimed(self);
++ atd_alarm_alarm(self);
++
++ ml = g_main_loop_new(NULL, FALSE);
++ g_signal_connect(proxy, "destroy", G_CALLBACK(dbus_disconnected), ml);
++ dbus_connection_set_exit_on_disconnect
++ (dbus_g_connection_get_connection(self->bus), FALSE);
++
++ g_main_loop_run(ml);
++
++ g_object_unref(proxy);
++ if (self->alarm_proxy)
++ g_object_unref(self->alarm_proxy);
++ self->alarm_proxy = NULL;
++ dbus_g_connection_unref(self->bus);
++ self->bus = NULL;
++ g_main_loop_unref(ml);
++
++ return;
++}
++
++
+ int main (int argc, char *argv[])
+ {
+-struct dirent *dirent;
+-unsigned long this, next, now;
+ char *argv0;
++AtdAlarm *obj;
+
+ argv0 = strrchr(argv[0], '/');
+ if (!argv0)
+@@ -362,17 +471,36 @@
+ die("cannot chdir");
+ if (!strcmp (argv0, "atq"))
+ exit_atq();
+- if (mkfifo ("trigger.new", 0777) < 0)
+- die ("cannot mkfifo trigger.new");
+- if (rename ("trigger.new","trigger"))
+- die ("cannot rename trigger.new");
+- chmod ("trigger", S_IWUSR | S_IWGRP | S_IWOTH);
+
+ /* ignore some signals we get from spawned processes */
+ signal (SIGCHLD, SIG_IGN);
+ signal (SIGPIPE, SIG_IGN);
+
++
++ g_type_init();
++ dbus_g_object_type_install_info(ATD_TYPE_ALARM,
++ &dbus_glib_atd_alarm_object_info);
++ obj = atd_alarm_new(argv[1]);
++ if (!obj) {
++ g_printerr("Failed to create AtdAlarm object");
++ exit(1);
++ }
+ while (1) {
++ atd_alarm_start(obj);
++ sleep(DBUS_RECONNECT_TIMEOUT);
++ }
++}
++
++
++gboolean atd_alarm_alarm(AtdAlarm *self)
++{
++struct dirent *dirent;
++unsigned long this, next, now;
++
++#ifdef DEBUG
++ printf("atd_alarm_alarm() run at: %d\n", (int) time(NULL));
++#endif
++
+ /* run all the jobs in the past */
+ now = time (NULL);
+ scan_from_top ();
+@@ -402,8 +530,7 @@
+ #endif
+ if (next == ULONG_MAX)
+ next = 0;
+- waitfor (next);
+- }
++ atd_alarm_waitfor (self, next);
+
+-return 0;
++ return TRUE;
+ }
+--- /dev/null 2009-09-15 19:51:58.514753360 +0200
++++ src/atd-alarm.h 2009-09-15 22:45:59.000000000 +0200
+@@ -0,0 +1,26 @@
++#ifndef ATD_ALARM_H
++#define ATD_ALARM_H
++
++#include <glib-object.h>
++#include <dbus/dbus-glib.h>
++
++#define ATD_TYPE_ALARM (atd_alarm_get_type())
++
++typedef struct _AtdAlarm
++{
++ GObject parent;
++ DBusGConnection *bus;
++ DBusGProxy *alarm_proxy;
++ GIOChannel *trigger;
++} AtdAlarm;
++
++typedef struct _AtdAlarmClass
++{
++ GObjectClass parent_class;
++} AtdAlarmClass;
++
++static gboolean atd_alarm_alarm(AtdAlarm *self);
++
++static void atd_alarm_waitfor(AtdAlarm *self, time_t t);
++
++#endif
+--- /dev/null 2009-09-15 19:51:58.514753360 +0200
++++ src/atd-alarm.xml 2009-03-16 17:55:48.000000000 +0100
+@@ -0,0 +1,8 @@
++<?xml version="1.0" encoding="UTF-8" ?>
++
++<node name="/">
++ <interface name="org.freesmartphone.Notification">
++ <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="atd_alarm" />
++ <method name="Alarm" />
++ </interface>
++</node>
diff --git a/recipes/ffalarms/atd-over-fso_0.70.bb b/recipes/ffalarms/atd-over-fso_0.70.bb
new file mode 100644
index 0000000000..b92169ea69
--- /dev/null
+++ b/recipes/ffalarms/atd-over-fso_0.70.bb
@@ -0,0 +1,52 @@
+DESCRIPTION = "Lightweight At Daemon working on top of org.freesmartphone.otimed"
+SECTION = "base"
+LICENSE = "GPLV2"
+RCONFLICTS_${PN} = "at atd"
+RREPLACES_${PN} = "at atd"
+RPROVIDES_${PN} = "atd"
+RCONFLICTS_${PN}-dbg = "at-dbg atd-dbg"
+RREPLACES_${PN}-dbg = "at-dbg atd-dbg"
+RPROVIDES_${PN}-dbg = "atd-dbg"
+RCONFLICTS_${PN}-dev = "at-dev atd-dev"
+RREPLACES_${PN}-dev = "at-dev atd-dev"
+RPROVIDES_${PN}-dev = "atd-dev"
+DEPENDS = "dbus-glib pkgconfig"
+RDEPENDS += "dbus dbus-glib frameworkd"
+
+PR = "r3"
+
+SRC_URI = "${HANDHELDS_CVS};module=apps/atd;tag=ATD-0_70 \
+ file://atd-startup.patch;patch=1;pnum=0 \
+ file://atd-startup-restart.patch;patch=2;pnum=0 \
+ file://atd-alarm-glue.patch;patch=3;pnum=0 \
+ file://atd-over-fso.conf.patch;patch=4;pnum=0 \
+ file://run-over-fso.patch;patch=5;pnum=1"
+S = "${WORKDIR}/atd"
+
+inherit update-rc.d
+
+INITSCRIPT_NAME = "atd"
+INITSCRIPT_PARAMS = "defaults 97"
+
+do_compile() {
+ export CFLAGS="$CFLAGS `${STAGING_BINDIR_NATIVE}/pkg-config --cflags dbus-glib-1`"
+ export LDFLAGS="$LDFLAGS `${STAGING_BINDIR_NATIVE}/pkg-config --libs dbus-glib-1`"
+ oe_runmake
+}
+
+do_install() {
+ install -d ${D}${sbindir}
+ install atd ${D}${sbindir}/atd
+ install -d ${D}${sysconfdir}/init.d
+ install -d ${D}${sysconfdir}/dbus-1/system.d
+ install dist/etc/init.d/atd ${D}${sysconfdir}/init.d/atd
+ install dist/etc/dbus-1/system.d/atd-over-fso.conf ${D}${sysconfdir}/dbus-1/system.d/atd-over-fso.conf
+}
+
+updatercd_postinst_prepend() {
+/etc/init.d/dbus-1 reload
+}
+
+updatercd_postrm_append() {
+/etc/init.d/dbus-1 reload
+}
diff --git a/recipes/ffalarms/ffalarms/shr.patch b/recipes/ffalarms/ffalarms/shr.patch
new file mode 100644
index 0000000000..77a66d6583
--- /dev/null
+++ b/recipes/ffalarms/ffalarms/shr.patch
@@ -0,0 +1,11 @@
+--- ffalarms-0.2.4/ffalarms.vala 2009-09-21 14:05:09.000000000 +0200
++++ ffalarms-0.2.4/ffalarms.vala 2009-09-21 14:05:09.000000000 +0200
+@@ -27,7 +27,7 @@
+ "Could not contact atd daemon, the alarm may not work";
+ public const string COMMANDS = "alsactl amixer";
+ public const string ALSASTATE =
+- "/usr/share/openmoko/scenarios/stereoout.state";
++ "/usr/share/shr/scenarii/stereoout.state";
+
+
+ public errordomain MyError {
diff --git a/recipes/ffalarms/ffalarms_0.2.2.bb b/recipes/ffalarms/ffalarms_0.2.2.bb
new file mode 100644
index 0000000000..a280779d52
--- /dev/null
+++ b/recipes/ffalarms/ffalarms_0.2.2.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Finger friendly alarms"
+HOMEPAGE = "http://ffalarms.projects.openmoko.org/"
+LICENSE = "GPLv3"
+AUTHOR = "Lukasz Pankowski <lukpank@o2.pl>"
+MAINTAINER = "Lukasz Pankowski <lukpank@o2.pl>"
+SECTION = "x11/applications"
+PRIORITY = "optional"
+DEPENDS = "edje-native python-native"
+
+# Pure Python plus Edje interface
+PACKAGE_ARCH = "all"
+
+SRC_URI = "http://projects.openmoko.org/frs/download.php/832/ffalarms-0.2.2.tar.gz"
+
+inherit distutils
+
+FILES_${PN} += "${datadir}/${PN} ${datadir}/applications/ffalarms.desktop ${datadir}/pixmaps"
+
+RDEPENDS += "python-re python-datetime python-edje python-ecore \
+ atd-over-fso alsa-utils-amixer alsa-utils-alsactl \
+ ttf-dejavu-sans"
+
+RSUGGESTS += "mplayer alsa-utils-aplay openmoko-alsa-scenarios"
diff --git a/recipes/ffalarms/ffalarms_svn.bb b/recipes/ffalarms/ffalarms_svn.bb
new file mode 100644
index 0000000000..a627a96ea6
--- /dev/null
+++ b/recipes/ffalarms/ffalarms_svn.bb
@@ -0,0 +1,36 @@
+DESCRIPTION = "Finger friendly alarms"
+HOMEPAGE = "http://ffalarms.projects.openmoko.org/"
+LICENSE = "GPLv3"
+AUTHOR = "Lukasz Pankowski <lukpank@o2.pl>"
+MAINTAINER = "Lukasz Pankowski <lukpank@o2.pl>"
+SECTION = "x11/applications"
+PRIORITY = "optional"
+DEPENDS = "elementary libeflvala libical"
+
+PV = "0.3.1+svnr${SRCPV}"
+PR = "r0"
+
+# needed because there is do_stage_append in vala.bbclass and do_stage() was removed..
+do_stage() {
+
+}
+
+inherit vala
+
+SRC_URI = "svn://svn.projects.openmoko.org/svnroot/ffalarms;module=trunk;proto=https"
+
+S = "${WORKDIR}/trunk"
+
+FILES_${PN} += "${datadir}/${PN} ${datadir}/applications ${datadir}/pixmaps"
+
+RDEPENDS = "atd alsa-utils-amixer alsa-utils-alsactl virtual/alsa-scenarios ttf-dejavu-sans libical"
+
+RSUGGESTS = "mplayer alsa-utils-aplay frameworkd"
+
+do_compile() {
+ oe_runmake VAPIDIR=${STAGING_DATADIR}/vala/vapi
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D}
+}
diff --git a/recipes/ffmpeg/ffmpeg_svn.bb b/recipes/ffmpeg/ffmpeg_svn.bb
index c797710f70..5cb365678b 100644
--- a/recipes/ffmpeg/ffmpeg_svn.bb
+++ b/recipes/ffmpeg/ffmpeg_svn.bb
@@ -2,14 +2,15 @@ require ffmpeg.inc
DEPENDS += "schroedinger libgsm"
-SRCREV = "20231"
+SRCREV = "20701"
PE = "1"
-PV = "0.5.0+${PR}+svnr${SRCREV}"
+PV = "0.5.0+${PR}+svnr${SRCPV}"
PR = "r0"
DEFAULT_PREFERENCE = "-1"
-DEFAULT_PREFERENCE_armv7a = "1"
+DEFAULT_PREFERENCE_angstrom = "1"
+DEFAULT_PREFERENCE_om-gta02 = "1"
SRC_URI = "svn://svn.ffmpeg.org/ffmpeg/;module=trunk"
diff --git a/recipes/firmwares/marvell-gspi-fw_9.70.3-p37.bb b/recipes/firmwares/marvell-gspi-fw_9.70.3-p37.bb
index 017ec70685..736ddb8e0e 100644
--- a/recipes/firmwares/marvell-gspi-fw_9.70.3-p37.bb
+++ b/recipes/firmwares/marvell-gspi-fw_9.70.3-p37.bb
@@ -11,6 +11,7 @@ do_install() {
install -d ${D}${base_libdir}/firmware
install -m 0644 gspi8686.bin helper_gspi.bin ${D}${base_libdir}/firmware
install -m 0644 ${WORKDIR}/Marvell-Licence.txt ${D}${base_libdir}/firmware
+ ln -s helper_gspi.bin ${D}${base_libdir}/firmware/gspi8686_hlp.bin
}
PACKAGES = "${PN}"
diff --git a/recipes/flac/flac.inc b/recipes/flac/flac.inc
index cadc32ff33..b90abd3278 100644
--- a/recipes/flac/flac.inc
+++ b/recipes/flac/flac.inc
@@ -12,6 +12,7 @@ inherit autotools
EXTRA_OECONF = "--disable-oggtest --disable-id3libtest \
--with-ogg-libraries=${STAGING_LIBDIR} \
--with-ogg-includes=${STAGING_INCDIR} \
+ --disable-xmms-plugin \
--without-xmms-prefix \
--without-xmms-exec-prefix \
--without-libiconv-prefix \
@@ -26,10 +27,6 @@ do_configure () {
sed -i 's/-Wl,-read_only_relocs,warning//g' src/libFLAC/Makefile
}
-do_stage () {
- autotools_stage_all
-}
-
PACKAGES += "libflac libflac++ liboggflac liboggflac++"
FILES_${PN} = "${bindir}/*"
FILES_libflac = "${libdir}/libFLAC.so.*"
diff --git a/recipes/flac/flac_1.1.2.bb b/recipes/flac/flac_1.1.2.bb
index 70d30c98d7..eb328b9b91 100644
--- a/recipes/flac/flac_1.1.2.bb
+++ b/recipes/flac/flac_1.1.2.bb
@@ -10,6 +10,6 @@ do_configure_append () {
sed -i 's/-Wl,-read_only_relocs,warning//g' src/libFLAC/Makefile
}
-do_stage_append () {
+do_stage () {
install -m 0644 ${S}/include/FLAC/callback.h ${STAGING_INCDIR}/FLAC/callback.h
}
diff --git a/recipes/flashrom/flashrom_svn.bb b/recipes/flashrom/flashrom_svn.bb
index 0c51a5857e..f90b6ee827 100644
--- a/recipes/flashrom/flashrom_svn.bb
+++ b/recipes/flashrom/flashrom_svn.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.coreboot.org/Flashrom"
LICENSE = "GPL"
DEPENDS = "zlib pciutils"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR = "r0"
SRC_URI = " \
diff --git a/recipes/fltk/fltk2_svn.bb b/recipes/fltk/fltk2_svn.bb
index 0dddfa3e2f..d34af94654 100644
--- a/recipes/fltk/fltk2_svn.bb
+++ b/recipes/fltk/fltk2_svn.bb
@@ -3,16 +3,15 @@ HOMEPAGE = "http://www.fltk.org"
SECTION = "libs"
PRIORITY = "optional"
LICENSE = "LGPL"
-DEPENDS = "zlib jpeg libpng libxext libxft"
+DEPENDS = "zlib jpeg libpng libxext libxft xinput"
-SVNREL = "6671"
-PV = "1.9.9+svnr${SVNREL}"
+PV = "1.9.9+svnr${SRCPV}"
SRC_URI = "\
- http://ftp.easysw.com/pub/fltk/snapshots/fltk-2.0.x-r6671.tar.bz2 \
+ svn://svn.easysw.com/public/fltk/fltk;proto=http;module=trunk \
file://fix-it-damnit.patch;patch=1 \
"
-S = "${WORKDIR}/fltk-2.0.x-r6671"
+S = "${WORKDIR}/trunk"
inherit autotools_stage binconfig
@@ -26,7 +25,7 @@ EXTRA_OECONF = "\
"
do_configure() {
- gnu-configize
+ autoconf
oe_runconf
}
diff --git a/recipes/fltk/fltkclock_svn.bb b/recipes/fltk/fltkclock_svn.bb
new file mode 100644
index 0000000000..bf7807425f
--- /dev/null
+++ b/recipes/fltk/fltkclock_svn.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "FLTK Worldclock Application"
+HOMEPAGE = "http://www.crash-override.net/omworldclock.html"
+AUTHOR = "Benjamin 'blindcoder' Schieder'
+LICENSE = "PD/GPLv2"
+SECTION = "x11/tool"
+DEPENDS = "fltk"
+SRCREV = "45"
+PV = "1.0+svnr${SRCPV}"
+PR = "r0"
+S = "${WORKDIR}/trunk"
+
+inherit autotools
+
+SRC_URI = "svn://scavenger.homeip.net/svn/fltkworldclock;module=trunk;proto=http"
diff --git a/recipes/fltk/fltkcocktailbar_svn.bb b/recipes/fltk/fltkcocktailbar_svn.bb
new file mode 100644
index 0000000000..bd74e99df0
--- /dev/null
+++ b/recipes/fltk/fltkcocktailbar_svn.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "FLTK Cocktail Bar Application"
+HOMEPAGE = "http://www.crash-override.net/omcocktailbar.html"
+AUTHOR = "Benjamin 'blindcoder' Schieder'
+LICENSE = "GPLv2"
+SECTION = "x11/tool"
+DEPENDS = "fltk zlib cairo"
+RDEPENDS = "curl"
+SRCREV = "52"
+PV = "1.0+svnr${SRCPV}"
+PR = "r0"
+S = "${WORKDIR}/trunk"
+
+inherit autotools
+
+SRC_URI = "svn://scavenger.homeip.net/svn/fltkcocktailbar;module=trunk;proto=http"
diff --git a/recipes/fltk/fltkcurrency_svn.bb b/recipes/fltk/fltkcurrency_svn.bb
new file mode 100644
index 0000000000..f0bd1ad087
--- /dev/null
+++ b/recipes/fltk/fltkcurrency_svn.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "FLTK Currency Converter"
+HOMEPAGE = ""
+AUTHOR = "Benjamin 'blindcoder' Schieder'
+LICENSE = "GPLv2"
+SECTION = "other/tool"
+DEPENDS = "fltk"
+RDEPENDS = "curl"
+SRCREV = "10"
+PV = "1.0+svnr${SRCPV}"
+PR = "r0"
+S = "${WORKDIR}/trunk"
+RDEPENDS = "bash wget"
+
+inherit autotools
+
+SRC_URI = "svn://scavenger.homeip.net/svn/fltkcurrency;module=trunk;proto=http"
diff --git a/recipes/fltk/fltkhackdiet_svn.bb b/recipes/fltk/fltkhackdiet_svn.bb
new file mode 100644
index 0000000000..7ff81bcb3d
--- /dev/null
+++ b/recipes/fltk/fltkhackdiet_svn.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "FLTK Hacker's Diet Application"
+HOMEPAGE = "http://www.crash-override.net/omhackersdiet.html"
+AUTHOR = "Benjamin 'blindcoder' Schieder'
+LICENSE = "GPLv2"
+SECTION = "x11/tool"
+DEPENDS = "fltk"
+RDEPENDS = "curl"
+SRCREV = "67"
+PV = "1.0+svnr${SRCPV}"
+PR = "r0"
+S = "${WORKDIR}/trunk"
+
+inherit autotools
+
+SRC_URI = "svn://scavenger.homeip.net/svn/fltkhackdiet;module=trunk;proto=http"
diff --git a/recipes/fltk/fltkwwpointcal_svn.bb b/recipes/fltk/fltkwwpointcal_svn.bb
new file mode 100644
index 0000000000..9ad34d2f29
--- /dev/null
+++ b/recipes/fltk/fltkwwpointcal_svn.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "FLTK Weight Watchers Points Calculator"
+HOMEPAGE = "http://www.crash-override.net/omwwpointcal.html"
+AUTHOR = "Benjamin 'blindcoder' Schieder'
+LICENSE = "GPLv2"
+SECTION = "x11/tool"
+DEPENDS = "fltk"
+SRCREV = "2"
+PV = "1.0+svnr${SRCPV}"
+PR = "r0"
+S = "${WORKDIR}/trunk"
+
+inherit autotools
+
+SRC_URI = "svn://scavenger.homeip.net/svn/fltkwwpointcal;module=trunk;proto=http"
diff --git a/recipes/freesmartphone/cornucopia.inc b/recipes/freesmartphone/cornucopia.inc
index 17da17cb08..bfc461edbc 100644
--- a/recipes/freesmartphone/cornucopia.inc
+++ b/recipes/freesmartphone/cornucopia.inc
@@ -3,9 +3,9 @@ AUTHOR = "Team FSO"
LICENSE = "LGPL"
SECTION = "devel"
DEPENDS = "vala-native glib-2.0 dbus dbus-glib libfso-glib libgee"
-DEPENDS += "${@['libfsoframework', ''][(bb.data.getVar('PN', d, 1) in 'libfsoframework libfsobasics misc-vapi'.split())]}"
+DEPENDS += "${@['libfsoframework', ''][(bb.data.getVar('PN', d, 1) in 'libfsoframework libfsobasics'.split())]}"
PV = "invalid, please override"
-INC_PR = "r0"
+INC_PR = "r1"
SRC_URI = "${FREESMARTPHONE_GIT}/cornucopia;protocol=git;branch=master"
S = "${WORKDIR}/git/${PN}"
diff --git a/recipes/freesmartphone/fso-apm_git.bb b/recipes/freesmartphone/fso-apm_git.bb
index 9a2c8a264c..20f832b4f4 100644
--- a/recipes/freesmartphone/fso-apm_git.bb
+++ b/recipes/freesmartphone/fso-apm_git.bb
@@ -3,8 +3,9 @@ AUTHOR = "Michael 'Mickey' Lauer <mlauer@vanille-media.de>"
HOMEPAGE = "http://www.freesmartphone.org"
SECTION = "console"
LICENSE = "GPLv2"
-PV = "0.1.0+gitr${SRCREV}"
-PR = "r0"
+DEPENDS = "vala-native"
+PV = "2.0.0+gitr${SRCREV}"
+PR = "r1"
SRC_URI = "${FREESMARTPHONE_GIT}/cornucopia.git;protocol=git;branch=master"
S = "${WORKDIR}/git/tools/apm2"
@@ -12,3 +13,6 @@ S = "${WORKDIR}/git/tools/apm2"
inherit autotools
RCONFLICTS_${PN} = "apm"
+RPROVIDES_${PN} = "apm"
+RPROVIDES_${PN}-dev = ""
+RPROVIDES_${PN}-dbg = ""
diff --git a/recipes/freesmartphone/fso-term_git.bb b/recipes/freesmartphone/fso-term_git.bb
index e3f674d7cb..acb20cdb05 100644
--- a/recipes/freesmartphone/fso-term_git.bb
+++ b/recipes/freesmartphone/fso-term_git.bb
@@ -12,6 +12,10 @@ SRC_URI = "\
"
S = "${WORKDIR}/git"
+do_stage() {
+ :
+}
+
inherit autotools vala
FILES_${PN} += "${datadir}"
diff --git a/recipes/freesmartphone/fsodatad_git.bb b/recipes/freesmartphone/fsodatad_git.bb
new file mode 100644
index 0000000000..de13bedc0a
--- /dev/null
+++ b/recipes/freesmartphone/fsodatad_git.bb
@@ -0,0 +1,6 @@
+require cornucopia.inc
+inherit fso-plugin
+PR = "${INC_PR}.0"
+PV = "0.0.0+gitr${SRCREV}"
+
+DEPENDS += "libxml2 mobile-broadband-provider-info"
diff --git a/recipes/freesmartphone/fsodeviced/fsodeviced b/recipes/freesmartphone/fsodeviced/fsodeviced
new file mode 100644
index 0000000000..409cd088da
--- /dev/null
+++ b/recipes/freesmartphone/fsodeviced/fsodeviced
@@ -0,0 +1,40 @@
+#! /bin/sh
+#
+# fsodeviced -- This shell script starts and stops the FSO2 device subsystem daemon.
+#
+# chkconfig: 345 90 20
+# description: fsodeviced is the freesmartphone.org FSO2 device daemon
+# processname: fsodeviced
+
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+NAME=fsodeviced
+
+[ -f /etc/default/rcS ] && . /etc/default/rcS
+
+case "$1" in
+ start)
+ echo -n "Starting fsodeviced: "
+ start-stop-daemon --start --pidfile /var/run/${NAME}.pid --make-pidfile --background -x /usr/sbin/fsodeviced
+ if [ $? = 0 ]; then
+ echo "(ok)"
+ else
+ echo "(failed)"
+ fi
+ ;;
+ stop)
+ echo -n "Stopping fsodeviced: "
+ start-stop-daemon --stop --pidfile /var/run/${NAME}.pid --oknodo
+ rm -f /var/run/${NAME}.pid
+ echo "(done)"
+ ;;
+ restart|force-reload)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "Usage: /etc/init.d/fsodeviced {start|stop|restart|force-reload}"
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/recipes/freesmartphone/fsodeviced_git.bb b/recipes/freesmartphone/fsodeviced_git.bb
index 1b01241e4c..2516c89aff 100644
--- a/recipes/freesmartphone/fsodeviced_git.bb
+++ b/recipes/freesmartphone/fsodeviced_git.bb
@@ -5,4 +5,24 @@ DEPENDS += "alsa-lib libcanberra libfsoresource"
RDEPENDS += "libcanberra-alsa"
RRECOMMENDS += "fso-alsa-data"
PV = "0.9.0+gitr${SRCREV}"
-PR = "${INC_PR}.0"
+PE = "1"
+PR = "${INC_PR}.6"
+
+EXTRA_OECONF = "\
+ --enable-kernel26-rfkill \
+ --enable-player-canberra \
+"
+
+inherit update-rc.d
+
+INITSCRIPT_NAME = "fsodeviced"
+INITSCRIPT_PARAMS = "defaults 27"
+
+SRC_URI += "file://fsodeviced"
+
+do_install_append() {
+ install -d ${D}${sysconfdir}/init.d/
+ install -m 0755 ${WORKDIR}/fsodeviced ${D}${sysconfdir}/init.d/
+}
+
+FILES_${PN} += "${sysconfdir}/init.d/fsodeviced"
diff --git a/recipes/freesmartphone/fsogsmd_git.bb b/recipes/freesmartphone/fsogsmd_git.bb
index d5067145d2..9186ab990b 100644
--- a/recipes/freesmartphone/fsogsmd_git.bb
+++ b/recipes/freesmartphone/fsogsmd_git.bb
@@ -1,6 +1,6 @@
require cornucopia.inc
inherit fso-plugin
PR = "${INC_PR}.0"
-PV = "0.1.0+gitr${SRCREV}"
+PV = "0.2.0+gitr${SRCREV}"
DEPENDS += "libfsoresource libgsm0710mux"
diff --git a/recipes/freesmartphone/fsogpsd_git.bb b/recipes/freesmartphone/fsolocationd_git.bb
index 1e3f5718ed..a70bf596f5 100644
--- a/recipes/freesmartphone/fsogpsd_git.bb
+++ b/recipes/freesmartphone/fsolocationd_git.bb
@@ -3,4 +3,4 @@ inherit fso-plugin
PR = "${INC_PR}.0"
PV = "0.0.0+gitr${SRCREV}"
-DEPENDS += "libfsoresource"
+DEPENDS += "libfsotransport libfsoresource"
diff --git a/recipes/freesmartphone/fsomusicd_git.bb b/recipes/freesmartphone/fsomusicd_git.bb
new file mode 100644
index 0000000000..0081298909
--- /dev/null
+++ b/recipes/freesmartphone/fsomusicd_git.bb
@@ -0,0 +1,20 @@
+require cornucopia.inc
+DEPENDS += "gstreamer"
+PV = "0.0.1+gitr${SRCREV}"
+PR = "${INC_PR}.0"
+
+RDEPENDS += "\
+ gst-plugin-volume \
+ gst-plugin-mad \
+ gst-plugin-oggdemux \
+ gst-plugin-ivorbisdec \
+ gst-plugin-audioconvert \
+ gst-plugin-flacdec \
+ gst-plugin-waveparse \
+ gst-plugin-siddec \
+ gst-plugin-modplug \
+ gst-plugin-filesrc \
+ gst-plugin-souphttpsrc \
+ gst-plugin-mmssrc \
+ gst-plugin-alsasink \
+"
diff --git a/recipes/freesmartphone/fsonetworkd_git.bb b/recipes/freesmartphone/fsonetworkd_git.bb
index 4a14b25aef..002624fc2b 100644
--- a/recipes/freesmartphone/fsonetworkd_git.bb
+++ b/recipes/freesmartphone/fsonetworkd_git.bb
@@ -1,4 +1,5 @@
require cornucopia.inc
inherit fso-plugin
-PV = "0.0.1.0+gitr${SRCREV}"
+DEPENDS += "libnl2"
+PV = "0.1.0.0+gitr${SRCREV}"
PR = "${INC_PR}.0"
diff --git a/recipes/freesmartphone/fsoraw_svn.bb b/recipes/freesmartphone/fsoraw_svn.bb
index 61c6daeee0..402aea6393 100644
--- a/recipes/freesmartphone/fsoraw_svn.bb
+++ b/recipes/freesmartphone/fsoraw_svn.bb
@@ -4,7 +4,7 @@ PRIORITY = "optional"
HOMEPAGE = "http://noko.sourceforge.net"
LICENSE = "GPL"
DEPENDS = "dbus"
-PV = "0.0.1"
+PV = "0.0.1+svnr${SRCPV}"
PR = "r0"
SRC_URI = "svn://noko.svn.sourceforge.net/svnroot/noko/trunk;module=fsoraw;proto=https"
diff --git a/recipes/freesmartphone/libfsobasics_git.bb b/recipes/freesmartphone/libfsobasics_git.bb
index 5c4867a699..3a268105d7 100644
--- a/recipes/freesmartphone/libfsobasics_git.bb
+++ b/recipes/freesmartphone/libfsobasics_git.bb
@@ -1,6 +1,5 @@
require cornucopia.inc
DESCRIPTION = "freesmartphone.org support library"
-DEPENDS += "misc-vapi"
PV = "0.8.2.0+gitr${SRCREV}"
PR = "${INC_PR}.0"
diff --git a/recipes/freesmartphone/libfsoframework_git.bb b/recipes/freesmartphone/libfsoframework_git.bb
index 7c70da4fb9..5840cdbfbc 100644
--- a/recipes/freesmartphone/libfsoframework_git.bb
+++ b/recipes/freesmartphone/libfsoframework_git.bb
@@ -1,6 +1,6 @@
require cornucopia.inc
DESCRIPTION = "freesmartphone.org support library"
-DEPENDS += "misc-vapi libfsobasics"
+DEPENDS += "libfsobasics alsa-lib"
PV = "0.2.0.0+gitr${SRCREV}"
PR = "${INC_PR}.1"
diff --git a/recipes/freesmartphone/libfsotransport_git.bb b/recipes/freesmartphone/libfsotransport_git.bb
index c23896ee24..a87fe6cf49 100644
--- a/recipes/freesmartphone/libfsotransport_git.bb
+++ b/recipes/freesmartphone/libfsotransport_git.bb
@@ -1,5 +1,4 @@
require cornucopia.inc
DESCRIPTION = "freesmartphone.org transport library"
-DEPENDS += "misc-vapi"
PV = "0.9.4+gitr${SRCREV}"
PR = "${INC_PR}.0"
diff --git a/recipes/freesmartphone/misc-vapi_git.bb b/recipes/freesmartphone/misc-vapi_git.bb
deleted file mode 100644
index 8c4a22f5d9..0000000000
--- a/recipes/freesmartphone/misc-vapi_git.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require cornucopia.inc
-DEPENDS = "alsa-lib"
-PV = "0.2.0+git${SRCREV}"
-PR = "${INC_PR}.0"
diff --git a/recipes/freespace/libfreespace_0.4.bb b/recipes/freespace/libfreespace_0.4.bb
new file mode 100644
index 0000000000..bf9e70fbf7
--- /dev/null
+++ b/recipes/freespace/libfreespace_0.4.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "The open-source libfreespace library provides an easy-to-use interface to Hillcrest Labs Freespace®-based devices such as in-air remote controls. "
+LICENSE = "LGPLv2"
+DEPENDS = "libusb1"
+
+SRC_URI = "http://launchpad.net/libfreespace/${PV}/${PV}/+download/libfreespace-${PV}.tar.gz"
+
+inherit autotools
+
+
diff --git a/recipes/gabriel/gabriel_svn.bb b/recipes/gabriel/gabriel_svn.bb
index 1449311f90..94fdfe99e7 100644
--- a/recipes/gabriel/gabriel_svn.bb
+++ b/recipes/gabriel/gabriel_svn.bb
@@ -4,7 +4,7 @@ a dbus daemon running on a remote machine."
LICENSE = "GPL"
DEPENDS = "libssh glib-2.0 dbus glib-dbus"
SECTION = "console/network"
-PV = "0.0.0+svnr${SRCREV}"
+PV = "0.0.0+svnr${SRCPV}"
SRC_URI = "svn://gabriel.svn.sourceforge.net/svnroot/gabriel;module=gabriel;proto=https"
S = "${WORKDIR}/gabriel"
diff --git a/recipes/gcc/gcc-4.3.3.inc b/recipes/gcc/gcc-4.3.3.inc
index 9dd46ec16c..46d5e358b9 100644
--- a/recipes/gcc/gcc-4.3.3.inc
+++ b/recipes/gcc/gcc-4.3.3.inc
@@ -7,7 +7,7 @@ LICENSE = "GPLv3"
DEPENDS = "mpfr gmp"
-INC_PR = "r7"
+INC_PR = "r10"
SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
file://fedora/gcc43-c++-builtin-redecl.patch;patch=1;pnum=0 \
@@ -57,6 +57,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
file://gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch;patch=1 \
file://zecke-xgcc-cpp.patch;patch=1 \
file://gcc-flags-for-build.patch;patch=1 \
+ file://arm-gcc-objective.patch;patch=1 \
"
SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch;patch=1 "
diff --git a/recipes/gcc/gcc-4.3.3/arm-gcc-objective.patch b/recipes/gcc/gcc-4.3.3/arm-gcc-objective.patch
new file mode 100644
index 0000000000..36533b16d3
--- /dev/null
+++ b/recipes/gcc/gcc-4.3.3/arm-gcc-objective.patch
@@ -0,0 +1,342 @@
+Hi,
+
+This patch implements exception-handling support for Objective-C on ARM
+EABI Linux systems, using the ARM-defined EHABI. This patch gets things
+working fairly well, though at least one issue remains -- but this is a
+start, at least.
+
+Test results are clean, apart from the following:
+
+FAIL: objc/execute/exceptions/foward-1.m execution, -O3
+-fomit-frame-pointer -funroll-loops -fgnu-runtime
+
+FAIL: objc/execute/exceptions/foward-1.m execution, -O3
+-fomit-frame-pointer -funroll-all-loops -finline-functions
+-fgnu-runtime
+
+AFAICT, these seem to be caused by data-flow information being corrupted
+somehow: the failure happens during the regrename pass, but I don't
+think the underlying cause is there. On entry to the landing pad:
+
+ @catch (id error)
+ {
+ i++;
+ [error free];
+ }
+
+The "error" pointer gets scrambled, because the register it should be
+passed in, r0, is not marked as live-on-entry to the associated block,
+so register-renaming thinks it's safe to overwrite that register.
+
+On the 4.3 branch, defining the EH_USES macro in arm.h as follows fixed
+this issue:
+
+/* r0 may be used by catch handlers. Make sure it's marked live on
+ entry to those. */
+#define EH_USES(N) ((N) == 0)
+
+But, this solution doesn't seem to work on mainline. Does anyone know
+why that might be?
+
+Is the attached patch OK for mainline, despite the above shortcoming?
+(Tested with cross to ARM EABI Linux).
+
+Cheers,
+
+Julian
+
+ChangeLog
+
+ * configure.ac (arm*-*-linux-gnueabi): Don't disable building
+ of libobjc for ARM EABI Linux.
+ * configure: Regenerate.
+
+ libobjc/
+ * exception.c (__objc_exception_class): Initialise as constant
+ array for ARM EABI. Change macro to static const for non-ARM EABI.
+ (ObjcException): Add note about structure layout. Remove landingPad
+ and handlerSwitchValue for ARM EABI.
+ (get_ttype_entry): Add __ARM_EABI_UNWINDER__ version
+ of function.
+ (CONTINUE_UNWINDING): Define for ARM EABI/otherwise cases.
+ (PERSONALITY_FUNCTION): Use ARM EABI-specific arguments, and add
+ ARM EABI unwinding support.
+ (objc_exception_throw): Use memcpy to initialise exception class.
+--MP_/JBpQpWs5CG=5JB9NzgrXUnG
+Content-Type: text/x-patch; name=libobjc-arm-eabi-support-1.diff
+Content-Transfer-Encoding: 7bit
+Content-Disposition: attachment; filename=libobjc-arm-eabi-support-1.diff
+
+--- a/libobjc/exception.c 2008-04-30 05:15:45.000000000 -0700
++++ b/libobjc/exception.c 2008-05-06 05:41:51.000000000 -0700
+@@ -31,16 +31,25 @@ Boston, MA 02110-1301, USA. */
+ #include "unwind-pe.h"
+
+
++#ifdef __ARM_EABI_UNWINDER__
++
++const _Unwind_Exception_Class __objc_exception_class
++ = {'G', 'N', 'U', 'C', 'O', 'B', 'J', 'C'};
++
++#else
++
+ /* This is the exception class we report -- "GNUCOBJC". */
+-#define __objc_exception_class \
+- ((((((((_Unwind_Exception_Class) 'G' \
+- << 8 | (_Unwind_Exception_Class) 'N') \
+- << 8 | (_Unwind_Exception_Class) 'U') \
+- << 8 | (_Unwind_Exception_Class) 'C') \
+- << 8 | (_Unwind_Exception_Class) 'O') \
+- << 8 | (_Unwind_Exception_Class) 'B') \
+- << 8 | (_Unwind_Exception_Class) 'J') \
+- << 8 | (_Unwind_Exception_Class) 'C')
++static const _Unwind_Exception_Class __objc_exception_class
++ = ((((((((_Unwind_Exception_Class) 'G'
++ << 8 | (_Unwind_Exception_Class) 'N')
++ << 8 | (_Unwind_Exception_Class) 'U')
++ << 8 | (_Unwind_Exception_Class) 'C')
++ << 8 | (_Unwind_Exception_Class) 'O')
++ << 8 | (_Unwind_Exception_Class) 'B')
++ << 8 | (_Unwind_Exception_Class) 'J')
++ << 8 | (_Unwind_Exception_Class) 'C');
++
++#endif
+
+ /* This is the object that is passed around by the Objective C runtime
+ to represent the exception in flight. */
+@@ -50,12 +59,18 @@ struct ObjcException
+ /* This bit is needed in order to interact with the unwind runtime. */
+ struct _Unwind_Exception base;
+
+- /* The actual object we want to throw. */
++ /* The actual object we want to throw. Note: must come immediately after
++ unwind header. */
+ id value;
+
++#ifdef __ARM_EABI_UNWINDER__
++ /* Note: we use the barrier cache defined in the unwind control block for
++ ARM EABI. */
++#else
+ /* Cache some internal unwind data between phase 1 and phase 2. */
+ _Unwind_Ptr landingPad;
+ int handlerSwitchValue;
++#endif
+ };
+
+
+@@ -106,6 +121,24 @@ parse_lsda_header (struct _Unwind_Contex
+ return p;
+ }
+
++#ifdef __ARM_EABI_UNWINDER__
++
++static Class
++get_ttype_entry (struct lsda_header_info *info, _uleb128_t i)
++{
++ _Unwind_Ptr ptr;
++
++ ptr = (_Unwind_Ptr) (info->TType - (i * 4));
++ ptr = _Unwind_decode_target2 (ptr);
++
++ if (ptr)
++ return objc_get_class ((const char *) ptr);
++ else
++ return 0;
++}
++
++#else
++
+ static Class
+ get_ttype_entry (struct lsda_header_info *info, _Unwind_Word i)
+ {
+@@ -122,6 +155,8 @@ get_ttype_entry (struct lsda_header_info
+ return 0;
+ }
+
++#endif
++
+ /* Like unto the method of the same name on Object, but takes an id. */
+ /* ??? Does this bork the meta-type system? Can/should we look up an
+ isKindOf method on the id? */
+@@ -150,12 +185,32 @@ isKindOf (id value, Class target)
+ #define PERSONALITY_FUNCTION __gnu_objc_personality_v0
+ #endif
+
++#ifdef __ARM_EABI_UNWINDER__
++
++#define CONTINUE_UNWINDING \
++ do \
++ { \
++ if (__gnu_unwind_frame(ue_header, context) != _URC_OK) \
++ return _URC_FAILURE; \
++ return _URC_CONTINUE_UNWIND; \
++ } \
++ while (0)
++
++_Unwind_Reason_Code
++PERSONALITY_FUNCTION (_Unwind_State state,
++ struct _Unwind_Exception *ue_header,
++ struct _Unwind_Context *context)
++#else
++
++#define CONTINUE_UNWINDING return _URC_CONTINUE_UNWIND
++
+ _Unwind_Reason_Code
+ PERSONALITY_FUNCTION (int version,
+ _Unwind_Action actions,
+ _Unwind_Exception_Class exception_class,
+ struct _Unwind_Exception *ue_header,
+ struct _Unwind_Context *context)
++#endif
+ {
+ struct ObjcException *xh = (struct ObjcException *) ue_header;
+
+@@ -165,19 +220,65 @@ PERSONALITY_FUNCTION (int version,
+ const unsigned char *p;
+ _Unwind_Ptr landing_pad, ip;
+ int handler_switch_value;
+- int saw_cleanup = 0, saw_handler;
++ int saw_cleanup = 0, saw_handler, foreign_exception;
+ void *return_object;
++ int ip_before_insn = 0;
++
++#ifdef __ARM_EABI_UNWINDER__
++ _Unwind_Action actions;
++
++ switch (state & _US_ACTION_MASK)
++ {
++ case _US_VIRTUAL_UNWIND_FRAME:
++ actions = _UA_SEARCH_PHASE;
++ break;
++
++ case _US_UNWIND_FRAME_STARTING:
++ actions = _UA_CLEANUP_PHASE;
++ if (!(state & _US_FORCE_UNWIND)
++ && ue_header->barrier_cache.sp == _Unwind_GetGR (context, 13))
++ actions |= _UA_HANDLER_FRAME;
++ break;
++
++ case _US_UNWIND_FRAME_RESUME:
++ CONTINUE_UNWINDING;
++ break;
++
++ default:
++ abort();
++ }
++ actions |= state & _US_FORCE_UNWIND;
+
++ /* TODO: Foreign exceptions need some attention (e.g. rethrowing doesn't
++ work). */
++ foreign_exception = 0;
++
++ /* The dwarf unwinder assumes the context structure holds things like the
++ function and LSDA pointers. The ARM implementation caches these in
++ the exception header (UCB). To avoid rewriting everything we make the
++ virtual IP register point at the UCB. */
++ ip = (_Unwind_Ptr) ue_header;
++ _Unwind_SetGR (context, 12, ip);
++
++#else /* !__ARM_EABI_UNWINDER. */
+ /* Interface version check. */
+ if (version != 1)
+ return _URC_FATAL_PHASE1_ERROR;
++
++ foreign_exception = (exception_class != __objc_exception_class);
++#endif
+
+ /* Shortcut for phase 2 found handler for domestic exception. */
+ if (actions == (_UA_CLEANUP_PHASE | _UA_HANDLER_FRAME)
+- && exception_class == __objc_exception_class)
++ && !foreign_exception)
+ {
++#ifdef __ARM_EABI_UNWINDER__
++ handler_switch_value = (int) ue_header->barrier_cache.bitpattern[1];
++ landing_pad = (_Unwind_Ptr) ue_header->barrier_cache.bitpattern[3];
++#else
+ handler_switch_value = xh->handlerSwitchValue;
+ landing_pad = xh->landingPad;
++#endif
+ goto install_context;
+ }
+
+@@ -186,12 +287,18 @@ PERSONALITY_FUNCTION (int version,
+
+ /* If no LSDA, then there are no handlers or cleanups. */
+ if (! language_specific_data)
+- return _URC_CONTINUE_UNWIND;
++ CONTINUE_UNWINDING;
+
+ /* Parse the LSDA header. */
+ p = parse_lsda_header (context, language_specific_data, &info);
+ info.ttype_base = base_of_encoded_value (info.ttype_encoding, context);
++#ifdef HAVE_GETIPINFO
++ ip = _Unwind_GetIPInfo (context, &ip_before_insn);
++#else
+ ip = _Unwind_GetIP (context) - 1;
++#endif
++ if (!ip_before_insn)
++ --ip;
+ landing_pad = 0;
+ action_record = 0;
+ handler_switch_value = 0;
+@@ -250,7 +357,7 @@ PERSONALITY_FUNCTION (int version,
+ /* If ip is not present in the table, C++ would call terminate. */
+ /* ??? As with Java, it's perhaps better to tweek the LSDA to
+ that no-action is mapped to no-entry. */
+- return _URC_CONTINUE_UNWIND;
++ CONTINUE_UNWINDING;
+
+ found_something:
+ saw_cleanup = 0;
+@@ -287,8 +394,7 @@ PERSONALITY_FUNCTION (int version,
+
+ /* During forced unwinding, we only run cleanups. With a
+ foreign exception class, we have no class info to match. */
+- else if ((actions & _UA_FORCE_UNWIND)
+- || exception_class != __objc_exception_class)
++ else if ((actions & _UA_FORCE_UNWIND) || foreign_exception)
+ ;
+
+ else if (ar_filter > 0)
+@@ -318,18 +424,24 @@ PERSONALITY_FUNCTION (int version,
+ }
+
+ if (! saw_handler && ! saw_cleanup)
+- return _URC_CONTINUE_UNWIND;
++ CONTINUE_UNWINDING;
+
+ if (actions & _UA_SEARCH_PHASE)
+ {
+ if (!saw_handler)
+- return _URC_CONTINUE_UNWIND;
++ CONTINUE_UNWINDING;
+
+ /* For domestic exceptions, we cache data from phase 1 for phase 2. */
+- if (exception_class == __objc_exception_class)
++ if (!foreign_exception)
+ {
++#ifdef __ARM_EABI_UNWINDER__
++ ue_header->barrier_cache.sp = _Unwind_GetGR (context, 13);
++ ue_header->barrier_cache.bitpattern[1] = (_uw) handler_switch_value;
++ ue_header->barrier_cache.bitpattern[3] = (_uw) landing_pad;
++#else
+ xh->handlerSwitchValue = handler_switch_value;
+ xh->landingPad = landing_pad;
++#endif
+ }
+ return _URC_HANDLER_FOUND;
+ }
+@@ -361,7 +473,9 @@ void
+ objc_exception_throw (id value)
+ {
+ struct ObjcException *header = calloc (1, sizeof (*header));
+- header->base.exception_class = __objc_exception_class;
++
++ memcpy (&header->base.exception_class, &__objc_exception_class,
++ sizeof (__objc_exception_class));
+ header->base.exception_cleanup = __objc_exception_cleanup;
+ header->value = value;
+
+
+--MP_/JBpQpWs5CG=5JB9NzgrXUnG--
+
diff --git a/recipes/gcc/gcc-configure-common.inc b/recipes/gcc/gcc-configure-common.inc
index a0a7dfab74..8a96326b7d 100644
--- a/recipes/gcc/gcc-configure-common.inc
+++ b/recipes/gcc/gcc-configure-common.inc
@@ -12,6 +12,7 @@ JAVA_sh3 ?= ""
OBJC_linux-uclibceabi ?= ""
OBJC_linux-uclibc ?= ""
OBJC_avr ?= ""
+OBJC_nylon ?= ""
OBJC ?= ",objc"
# gcc 3.x expects 'f77', 4.0 expects 'f95', 4.1 and 4.2 expect 'fortran'
@@ -83,12 +84,12 @@ do_configure () {
if [ "${HOST_SYS}" != "${TARGET_SYS}" ]; then
# splice our idea of where the headers live into gcc's world
- echo "NATIVE_SYSTEM_HEADER_DIR = ${layout_includedir}" > ${T}/t-oe
+ echo "NATIVE_SYSTEM_HEADER_DIR = ${target_includedir}" > ${T}/t-oe
sed 's%^tmake_file=.*$%& ${T}/t-oe%' < ${S}/gcc/Makefile.in >${S}/gcc/Makefile.in.new
mv ${S}/gcc/Makefile.in.new ${S}/gcc/Makefile.in
cat ${S}/gcc/defaults.h | grep -v "\#endif.*GCC_DEFAULTS_H" > ${S}/gcc/defaults.h.new
echo "#ifndef STANDARD_INCLUDE_DIR" >> ${S}/gcc/defaults.h.new
- echo "#define STANDARD_INCLUDE_DIR \"${layout_includedir}\"" >> ${S}/gcc/defaults.h.new
+ echo "#define STANDARD_INCLUDE_DIR \"${target_includedir}\"" >> ${S}/gcc/defaults.h.new
echo "#endif" >> ${S}/gcc/defaults.h.new
echo "#endif /* ! GCC_DEFAULTS_H */" >> ${S}/gcc/defaults.h.new
mv ${S}/gcc/defaults.h.new ${S}/gcc/defaults.h
diff --git a/recipes/gcc/gcc-configure-cross.inc b/recipes/gcc/gcc-configure-cross.inc
index b526ff3cc4..980f7929ff 100644
--- a/recipes/gcc/gcc-configure-cross.inc
+++ b/recipes/gcc/gcc-configure-cross.inc
@@ -2,8 +2,8 @@ require gcc-configure-common.inc
USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibc", "no", "", d )}'
-EXTRA_OECONF_PATHS = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix} \
- --with-gxx-include-dir=${STAGING_DIR_TARGET}/${layout_includedir}/c++ \
+EXTRA_OECONF_PATHS = "--with-local-prefix=${STAGING_DIR_TARGET}${target_prefix} \
+ --with-gxx-include-dir=${STAGING_DIR_TARGET}/${target_includedir}/c++ \
--with-sysroot=${STAGING_DIR_TARGET} \
--with-build-sysroot=${STAGING_DIR_TARGET}"
diff --git a/recipes/gcc/gcc-cross-initial.inc b/recipes/gcc/gcc-cross-initial.inc
index 15e5fa62fc..a2c4445578 100644
--- a/recipes/gcc/gcc-cross-initial.inc
+++ b/recipes/gcc/gcc-cross-initial.inc
@@ -4,7 +4,7 @@ PACKAGES = ""
# This is intended to be a -very- basic config
# sysroot is needed in case we use libc-initial
-EXTRA_OECONF = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix} \
+EXTRA_OECONF = "--with-local-prefix=${STAGING_DIR_TARGET}${target_prefix} \
--with-newlib \
--without-headers \
--disable-shared \
diff --git a/recipes/gcc/gcc-cross-intermediate.inc b/recipes/gcc/gcc-cross-intermediate.inc
index 4746140346..ccfa2b44b8 100644
--- a/recipes/gcc/gcc-cross-intermediate.inc
+++ b/recipes/gcc/gcc-cross-intermediate.inc
@@ -5,7 +5,7 @@ PACKAGES = ""
# This is intended to be a -very- basic config
# sysroot is needed in case we use libc-initial
-EXTRA_OECONF = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix} \
+EXTRA_OECONF = "--with-local-prefix=${STAGING_DIR_TARGET}${target_prefix} \
--enable-shared \
--disable-multilib \
--disable-threads \
@@ -18,8 +18,8 @@ EXTRA_OECONF = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix} \
do_stage_append () {
# get rid of dummy libc.so
- if [ -z "`file ${STAGING_DIR_TARGET}${layout_libdir}/libc.so | grep "ASCII C program text"`" ]; then
- rm -rf ${STAGING_DIR_TARGET}${layout_libdir}/libc.so
+ if [ -z "`file ${STAGING_DIR_TARGET}${target_libdir}/libc.so | grep "ASCII C program text"`" ]; then
+ rm -rf ${STAGING_DIR_TARGET}${target_libdir}/libc.so
fi
}
diff --git a/recipes/gcc/gcc-cross-sdk_4.1.2.bb b/recipes/gcc/gcc-cross-sdk_4.1.2.bb
index 9a9eb8ca56..6a7460664f 100644
--- a/recipes/gcc/gcc-cross-sdk_4.1.2.bb
+++ b/recipes/gcc/gcc-cross-sdk_4.1.2.bb
@@ -7,4 +7,4 @@ require gcc-package-sdk.inc
DEPENDS += "gmp-native mpfr-native"
-EXTRA_OECONF += "--disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+EXTRA_OECONF += "--disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
diff --git a/recipes/gcc/gcc-cross-sdk_4.2.2.bb b/recipes/gcc/gcc-cross-sdk_4.2.2.bb
index 27a7ae0a7f..bea9839246 100644
--- a/recipes/gcc/gcc-cross-sdk_4.2.2.bb
+++ b/recipes/gcc/gcc-cross-sdk_4.2.2.bb
@@ -11,4 +11,4 @@ DEPENDS += "gmp-native mpfr-native"
EXTRA_OECONF += "--disable-libunwind-exceptions --disable-libssp \
--disable-libgomp --disable-libmudflap \
- --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+ --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
diff --git a/recipes/gcc/gcc-cross-sdk_4.2.3.bb b/recipes/gcc/gcc-cross-sdk_4.2.3.bb
index 27a7ae0a7f..bea9839246 100644
--- a/recipes/gcc/gcc-cross-sdk_4.2.3.bb
+++ b/recipes/gcc/gcc-cross-sdk_4.2.3.bb
@@ -11,4 +11,4 @@ DEPENDS += "gmp-native mpfr-native"
EXTRA_OECONF += "--disable-libunwind-exceptions --disable-libssp \
--disable-libgomp --disable-libmudflap \
- --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+ --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
diff --git a/recipes/gcc/gcc-cross-sdk_4.2.4.bb b/recipes/gcc/gcc-cross-sdk_4.2.4.bb
index ab52a9ae04..9c67c7e119 100644
--- a/recipes/gcc/gcc-cross-sdk_4.2.4.bb
+++ b/recipes/gcc/gcc-cross-sdk_4.2.4.bb
@@ -11,4 +11,4 @@ DEPENDS += "gmp-native mpfr-native"
EXTRA_OECONF += "--disable-libunwind-exceptions --enable-libssp \
--enable-libgomp --disable-libmudflap \
- --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+ --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
diff --git a/recipes/gcc/gcc-cross-sdk_4.3.1.bb b/recipes/gcc/gcc-cross-sdk_4.3.1.bb
index 27a7ae0a7f..bea9839246 100644
--- a/recipes/gcc/gcc-cross-sdk_4.3.1.bb
+++ b/recipes/gcc/gcc-cross-sdk_4.3.1.bb
@@ -11,4 +11,4 @@ DEPENDS += "gmp-native mpfr-native"
EXTRA_OECONF += "--disable-libunwind-exceptions --disable-libssp \
--disable-libgomp --disable-libmudflap \
- --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+ --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
diff --git a/recipes/gcc/gcc-cross-sdk_4.3.2.bb b/recipes/gcc/gcc-cross-sdk_4.3.2.bb
index 27a7ae0a7f..bea9839246 100644
--- a/recipes/gcc/gcc-cross-sdk_4.3.2.bb
+++ b/recipes/gcc/gcc-cross-sdk_4.3.2.bb
@@ -11,4 +11,4 @@ DEPENDS += "gmp-native mpfr-native"
EXTRA_OECONF += "--disable-libunwind-exceptions --disable-libssp \
--disable-libgomp --disable-libmudflap \
- --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+ --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
diff --git a/recipes/gcc/gcc-cross-sdk_4.3.3.bb b/recipes/gcc/gcc-cross-sdk_4.3.3.bb
index 6be2538cd5..ed39d3176d 100644
--- a/recipes/gcc/gcc-cross-sdk_4.3.3.bb
+++ b/recipes/gcc/gcc-cross-sdk_4.3.3.bb
@@ -11,4 +11,4 @@ DEPENDS += "gmp-native mpfr-native"
EXTRA_OECONF += "--disable-libunwind-exceptions --disable-libssp \
--disable-libgomp --disable-libmudflap \
- --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+ --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
diff --git a/recipes/gcc/gcc-cross-sdk_4.3.4.bb b/recipes/gcc/gcc-cross-sdk_4.3.4.bb
index 081b3c0aab..88e26c509b 100644
--- a/recipes/gcc/gcc-cross-sdk_4.3.4.bb
+++ b/recipes/gcc/gcc-cross-sdk_4.3.4.bb
@@ -11,4 +11,4 @@ DEPENDS += "gmp-native mpfr-native"
EXTRA_OECONF += "--disable-libunwind-exceptions --disable-libssp \
--disable-libgomp --disable-libmudflap \
- --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+ --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
diff --git a/recipes/gcc/gcc-cross-sdk_4.4.1.bb b/recipes/gcc/gcc-cross-sdk_4.4.1.bb
index 513cca1ddc..e1b510e58f 100644
--- a/recipes/gcc/gcc-cross-sdk_4.4.1.bb
+++ b/recipes/gcc/gcc-cross-sdk_4.4.1.bb
@@ -10,4 +10,4 @@ DEPENDS += "gmp-native mpfr-native"
EXTRA_OECONF += "--disable-libunwind-exceptions --disable-libssp \
--disable-libgomp --disable-libmudflap \
- --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+ --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
diff --git a/recipes/gcc/gcc-cross-sdk_4.4.2.bb b/recipes/gcc/gcc-cross-sdk_4.4.2.bb
index 513cca1ddc..e1b510e58f 100644
--- a/recipes/gcc/gcc-cross-sdk_4.4.2.bb
+++ b/recipes/gcc/gcc-cross-sdk_4.4.2.bb
@@ -10,4 +10,4 @@ DEPENDS += "gmp-native mpfr-native"
EXTRA_OECONF += "--disable-libunwind-exceptions --disable-libssp \
--disable-libgomp --disable-libmudflap \
- --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+ --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
diff --git a/recipes/gcc/gcc-cross-sdk_csl-arm-2007q3.bb b/recipes/gcc/gcc-cross-sdk_csl-arm-2007q3.bb
index 3352e41dcb..2e4fcf25a6 100644
--- a/recipes/gcc/gcc-cross-sdk_csl-arm-2007q3.bb
+++ b/recipes/gcc/gcc-cross-sdk_csl-arm-2007q3.bb
@@ -13,7 +13,7 @@ EXTRA_OECONF += " \
--disable-libgomp \
--disable-libunwind-exceptions \
--disable-libmudflap \
- --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix} \
+ --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native} \
"
#We don't want i686 linux ending up in the CFLAGS_FOR_TARGET like this: -isystem/OE/angstrom-tmp/staging/i686-linux/usr/include
diff --git a/recipes/gcc/gcc-cross-sdk_svn.bb b/recipes/gcc/gcc-cross-sdk_svn.bb
index 29ee187785..22937da3c4 100644
--- a/recipes/gcc/gcc-cross-sdk_svn.bb
+++ b/recipes/gcc/gcc-cross-sdk_svn.bb
@@ -11,4 +11,4 @@ DEPENDS += "gmp-native mpfr-native"
EXTRA_OECONF += "--disable-libunwind-exceptions --disable-libssp \
--disable-libgomp --disable-libmudflap \
- --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+ --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
diff --git a/recipes/gcc/gcc-cross.inc b/recipes/gcc/gcc-cross.inc
index 3fa6f61f0d..3485824b8a 100644
--- a/recipes/gcc/gcc-cross.inc
+++ b/recipes/gcc/gcc-cross.inc
@@ -5,6 +5,7 @@
target_libdir := "${libdir}"
target_includedir := "${includedir}"
target_base_libdir := "${base_libdir}"
+target_prefix := "${prefix}"
inherit cross
diff --git a/recipes/gcc/gcc-cross_4.1.0.bb b/recipes/gcc/gcc-cross_4.1.0.bb
index 9513c657f3..def05869d8 100644
--- a/recipes/gcc/gcc-cross_4.1.0.bb
+++ b/recipes/gcc/gcc-cross_4.1.0.bb
@@ -5,4 +5,4 @@ require gcc-cross4.inc
require gcc-configure-cross.inc
require gcc-package-cross.inc
-EXTRA_OECONF += "--disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+EXTRA_OECONF += "--disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
diff --git a/recipes/gcc/gcc-cross_4.1.1.bb b/recipes/gcc/gcc-cross_4.1.1.bb
index 08ae7a552c..e96867e682 100644
--- a/recipes/gcc/gcc-cross_4.1.1.bb
+++ b/recipes/gcc/gcc-cross_4.1.1.bb
@@ -7,4 +7,4 @@ require gcc-package-cross.inc
SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
-EXTRA_OECONF += "--disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+EXTRA_OECONF += "--disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
diff --git a/recipes/gcc/gcc-cross_4.1.2.bb b/recipes/gcc/gcc-cross_4.1.2.bb
index 85f90b31a1..2367d196c9 100644
--- a/recipes/gcc/gcc-cross_4.1.2.bb
+++ b/recipes/gcc/gcc-cross_4.1.2.bb
@@ -9,6 +9,6 @@ SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
EXTRA_OECONF_append_avr32= " --disable-libmudflap "
-EXTRA_OECONF += "--disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+EXTRA_OECONF += "--disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
-ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${layout_includedir}"
+ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${target_includedir}"
diff --git a/recipes/gcc/gcc-cross_4.2.1.bb b/recipes/gcc/gcc-cross_4.2.1.bb
index c080143517..8c7f4c50ed 100644
--- a/recipes/gcc/gcc-cross_4.2.1.bb
+++ b/recipes/gcc/gcc-cross_4.2.1.bb
@@ -7,6 +7,6 @@ require gcc-package-cross.inc
SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
-EXTRA_OECONF += "--disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+EXTRA_OECONF += "--disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
-ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${layout_includedir}"
+ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${target_includedir}"
diff --git a/recipes/gcc/gcc-cross_4.2.2.bb b/recipes/gcc/gcc-cross_4.2.2.bb
index 4e7fc479d1..cf1bf6837f 100644
--- a/recipes/gcc/gcc-cross_4.2.2.bb
+++ b/recipes/gcc/gcc-cross_4.2.2.bb
@@ -7,6 +7,6 @@ require gcc-package-cross.inc
SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
-EXTRA_OECONF += "--disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+EXTRA_OECONF += "--disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
-ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${layout_includedir}"
+ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${target_includedir}"
diff --git a/recipes/gcc/gcc-cross_4.2.3.bb b/recipes/gcc/gcc-cross_4.2.3.bb
index 4e7fc479d1..cf1bf6837f 100644
--- a/recipes/gcc/gcc-cross_4.2.3.bb
+++ b/recipes/gcc/gcc-cross_4.2.3.bb
@@ -7,6 +7,6 @@ require gcc-package-cross.inc
SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
-EXTRA_OECONF += "--disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+EXTRA_OECONF += "--disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
-ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${layout_includedir}"
+ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${target_includedir}"
diff --git a/recipes/gcc/gcc-cross_4.2.4.bb b/recipes/gcc/gcc-cross_4.2.4.bb
index 4e7fc479d1..cf1bf6837f 100644
--- a/recipes/gcc/gcc-cross_4.2.4.bb
+++ b/recipes/gcc/gcc-cross_4.2.4.bb
@@ -7,6 +7,6 @@ require gcc-package-cross.inc
SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
-EXTRA_OECONF += "--disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+EXTRA_OECONF += "--disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
-ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${layout_includedir}"
+ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${target_includedir}"
diff --git a/recipes/gcc/gcc-cross_4.3.1.bb b/recipes/gcc/gcc-cross_4.3.1.bb
index 398ee2ee79..acd552101a 100644
--- a/recipes/gcc/gcc-cross_4.3.1.bb
+++ b/recipes/gcc/gcc-cross_4.3.1.bb
@@ -7,6 +7,6 @@ require gcc-package-cross.inc
SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
-EXTRA_OECONF += " --enable-cheaders=c_std --disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+EXTRA_OECONF += " --enable-cheaders=c_std --disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
-ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${layout_includedir}"
+ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${target_includedir}"
diff --git a/recipes/gcc/gcc-cross_4.3.2.bb b/recipes/gcc/gcc-cross_4.3.2.bb
index 5eb6b5fbe8..94b98b9e63 100644
--- a/recipes/gcc/gcc-cross_4.3.2.bb
+++ b/recipes/gcc/gcc-cross_4.3.2.bb
@@ -6,6 +6,6 @@ require gcc-package-cross.inc
SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
-EXTRA_OECONF += " --enable-cheaders=c_std --disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+EXTRA_OECONF += " --enable-cheaders=c_std --disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
-ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${layout_includedir}"
+ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${target_includedir}"
diff --git a/recipes/gcc/gcc-cross_4.3.3.bb b/recipes/gcc/gcc-cross_4.3.3.bb
index 5eb6b5fbe8..94b98b9e63 100644
--- a/recipes/gcc/gcc-cross_4.3.3.bb
+++ b/recipes/gcc/gcc-cross_4.3.3.bb
@@ -6,6 +6,6 @@ require gcc-package-cross.inc
SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
-EXTRA_OECONF += " --enable-cheaders=c_std --disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+EXTRA_OECONF += " --enable-cheaders=c_std --disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
-ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${layout_includedir}"
+ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${target_includedir}"
diff --git a/recipes/gcc/gcc-cross_4.3.4.bb b/recipes/gcc/gcc-cross_4.3.4.bb
index 9c59a4e5fd..71cb5e63f6 100644
--- a/recipes/gcc/gcc-cross_4.3.4.bb
+++ b/recipes/gcc/gcc-cross_4.3.4.bb
@@ -6,6 +6,6 @@ require gcc-package-cross.inc
SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
-EXTRA_OECONF += " --enable-cheaders=c_std --disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+EXTRA_OECONF += " --enable-cheaders=c_std --disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
-ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${layout_includedir}"
+ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${target_includedir}"
diff --git a/recipes/gcc/gcc-cross_4.4.1.bb b/recipes/gcc/gcc-cross_4.4.1.bb
index 4db1b33945..11eb29d419 100644
--- a/recipes/gcc/gcc-cross_4.4.1.bb
+++ b/recipes/gcc/gcc-cross_4.4.1.bb
@@ -6,6 +6,6 @@ PR = "${INC_PR}.1"
SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
-EXTRA_OECONF += " --disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+EXTRA_OECONF += " --disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
-ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${layout_includedir}"
+ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${target_includedir}"
diff --git a/recipes/gcc/gcc-cross_4.4.2.bb b/recipes/gcc/gcc-cross_4.4.2.bb
index 4db1b33945..11eb29d419 100644
--- a/recipes/gcc/gcc-cross_4.4.2.bb
+++ b/recipes/gcc/gcc-cross_4.4.2.bb
@@ -6,6 +6,6 @@ PR = "${INC_PR}.1"
SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
-EXTRA_OECONF += " --disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+EXTRA_OECONF += " --disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
-ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${layout_includedir}"
+ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${target_includedir}"
diff --git a/recipes/gcc/gcc-cross_csl-arm-2007q3.bb b/recipes/gcc/gcc-cross_csl-arm-2007q3.bb
index 4bd9e632a3..34bd251a12 100644
--- a/recipes/gcc/gcc-cross_csl-arm-2007q3.bb
+++ b/recipes/gcc/gcc-cross_csl-arm-2007q3.bb
@@ -7,7 +7,7 @@ require gcc-package-cross.inc
SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
-EXTRA_OECONF += "--disable-multilib --disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+EXTRA_OECONF += "--disable-multilib --disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
#We don't want i686 linux ending up in the CFLAGS_FOR_TARGET like this: -isystem/OE/angstrom-tmp/staging/i686-linux/usr/include
CFLAGS = ""
@@ -16,11 +16,11 @@ LDFLAGS = ""
# staging-linkage and cross-linkage recipes don't work anymore, so do it by hand for this backwards CSL toolchain
do_compile_prepend() {
- ln -sf ${STAGING_DIR_TARGET}${layout_libdir}/crt*.o ${CROSS_DIR}/${TARGET_SYS}/lib/
- ln -sf ${STAGING_DIR_TARGET}${layout_libdir}/ld-* ${CROSS_DIR}/${TARGET_SYS}/lib/
+ ln -sf ${STAGING_DIR_TARGET}${target_libdir}/crt*.o ${CROSS_DIR}/${TARGET_SYS}/lib/
+ ln -sf ${STAGING_DIR_TARGET}${target_libdir}/ld-* ${CROSS_DIR}/${TARGET_SYS}/lib/
ln -sf ${STAGING_DIR_TARGET}/lib/libc* ${CROSS_DIR}/${TARGET_SYS}/lib/
sed -i -e 's:gcc_no_link=yes:gcc_no_link=no:' ${S}/libstdc++-v3/configure
}
-ARCH_FLAGS_FOR_TARGET += " -L${STAGING_DIR_TARGET}${layout_libdir} -isystem${STAGING_DIR_TARGET}${layout_includedir}"
+ARCH_FLAGS_FOR_TARGET += " -L${STAGING_DIR_TARGET}${target_libdir} -isystem${STAGING_DIR_TARGET}${target_includedir}"
diff --git a/recipes/gcc/gcc-cross_csl-arm-2008q1.bb b/recipes/gcc/gcc-cross_csl-arm-2008q1.bb
index 59bfd24960..d534574c2e 100644
--- a/recipes/gcc/gcc-cross_csl-arm-2008q1.bb
+++ b/recipes/gcc/gcc-cross_csl-arm-2008q1.bb
@@ -7,7 +7,7 @@ require gcc-package-cross.inc
SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
-EXTRA_OECONF += "--disable-multilib --disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+EXTRA_OECONF += "--disable-multilib --disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
#We don't want i686 linux ending up in the CFLAGS_FOR_TARGET like this: -isystem/OE/angstrom-tmp/staging/i686-linux/usr/include
CFLAGS = ""
@@ -16,11 +16,11 @@ LDFLAGS = ""
# staging-linkage and cross-linkage recipes don't work anymore, so do it by hand for this backwards CSL toolchain
do_compile_prepend() {
- ln -sf ${STAGING_DIR_TARGET}${layout_libdir}/crt*.o ${CROSS_DIR}/${TARGET_SYS}/lib/
- ln -sf ${STAGING_DIR_TARGET}${layout_libdir}/ld-* ${CROSS_DIR}/${TARGET_SYS}/lib/
+ ln -sf ${STAGING_DIR_TARGET}${target_libdir}/crt*.o ${CROSS_DIR}/${TARGET_SYS}/lib/
+ ln -sf ${STAGING_DIR_TARGET}${target_libdir}/ld-* ${CROSS_DIR}/${TARGET_SYS}/lib/
ln -sf ${STAGING_DIR_TARGET}/lib/libc* ${CROSS_DIR}/${TARGET_SYS}/lib/
sed -i -e 's:gcc_no_link=yes:gcc_no_link=no:' ${S}/libstdc++-v3/configure
}
-ARCH_FLAGS_FOR_TARGET += " -L${STAGING_DIR_TARGET}${layout_libdir} -isystem${STAGING_DIR_TARGET}${layout_includedir}"
+ARCH_FLAGS_FOR_TARGET += " -L${STAGING_DIR_TARGET}${target_libdir} -isystem${STAGING_DIR_TARGET}${target_includedir}"
diff --git a/recipes/gcc/gcc-cross_csl-arm-2008q3.bb b/recipes/gcc/gcc-cross_csl-arm-2008q3.bb
index bbd4cdf173..ef4ef304ef 100644
--- a/recipes/gcc/gcc-cross_csl-arm-2008q3.bb
+++ b/recipes/gcc/gcc-cross_csl-arm-2008q3.bb
@@ -7,7 +7,7 @@ require gcc-package-cross.inc
SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
-EXTRA_OECONF += "--disable-multilib --disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+EXTRA_OECONF += "--disable-multilib --disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
#We don't want i686 linux ending up in the CFLAGS_FOR_TARGET like this: -isystem/OE/angstrom-tmp/staging/i686-linux/usr/include
CFLAGS = ""
@@ -16,11 +16,11 @@ LDFLAGS = ""
# staging-linkage and cross-linkage recipes don't work anymore, so do it by hand for this backwards CSL toolchain
do_compile_prepend() {
- ln -sf ${STAGING_DIR_TARGET}${layout_libdir}/crt*.o ${CROSS_DIR}/${TARGET_SYS}/lib/
- ln -sf ${STAGING_DIR_TARGET}${layout_libdir}/ld-* ${CROSS_DIR}/${TARGET_SYS}/lib/
+ ln -sf ${STAGING_DIR_TARGET}${target_libdir}/crt*.o ${CROSS_DIR}/${TARGET_SYS}/lib/
+ ln -sf ${STAGING_DIR_TARGET}${target_libdir}/ld-* ${CROSS_DIR}/${TARGET_SYS}/lib/
ln -sf ${STAGING_DIR_TARGET}/lib/libc* ${CROSS_DIR}/${TARGET_SYS}/lib/
sed -i -e 's:gcc_no_link=yes:gcc_no_link=no:' ${S}/libstdc++-v3/configure
}
-ARCH_FLAGS_FOR_TARGET += " -L${STAGING_DIR_TARGET}${layout_libdir} -isystem${STAGING_DIR_TARGET}${layout_includedir}"
+ARCH_FLAGS_FOR_TARGET += " -L${STAGING_DIR_TARGET}${target_libdir} -isystem${STAGING_DIR_TARGET}${target_includedir}"
diff --git a/recipes/gcc/gcc-cross_svn.bb b/recipes/gcc/gcc-cross_svn.bb
index a7df4842b9..2186a81944 100644
--- a/recipes/gcc/gcc-cross_svn.bb
+++ b/recipes/gcc/gcc-cross_svn.bb
@@ -6,6 +6,6 @@ require gcc-package-cross.inc
SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
-EXTRA_OECONF += " --disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+EXTRA_OECONF += " --disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
-ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${layout_includedir}"
+ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${target_includedir}"
diff --git a/recipes/gcc/gcc-native.inc b/recipes/gcc/gcc-native.inc
index 6fa615ffc7..63b7375e96 100644
--- a/recipes/gcc/gcc-native.inc
+++ b/recipes/gcc/gcc-native.inc
@@ -5,7 +5,7 @@ PROVIDES = "gcc-native-${PV}"
inherit native
# This is intended to be a -very- basic config
-EXTRA_OECONF = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix} \
+EXTRA_OECONF = "--with-local-prefix=${STAGING_DIR_TARGET}${prefix} \
--with-newlib \
--disable-shared \
--disable-threads \
diff --git a/recipes/gcc/gcc-package-target.inc b/recipes/gcc/gcc-package-target.inc
index 68c84abd5a..91f5f9060d 100644
--- a/recipes/gcc/gcc-package-target.inc
+++ b/recipes/gcc/gcc-package-target.inc
@@ -4,6 +4,7 @@ PACKAGES = "\
cpp cpp-symlinks \
g77 g77-symlinks \
gfortran gfortran-symlinks \
+ objc objc-dev \
gcov gcov-symlinks \
libmudflap libmudflap-dev \
libgcc-dev \
@@ -87,6 +88,13 @@ FILES_libgfortran-dev = "${libdir}/libgfortran.a \
${libdir}/libgfortran.so \
${libdir}/libgfortranbegin.a"
+FILES_objc = "${libdir}/libobjc*.so.* \
+"
+FILES_objc-dev = "${libdir}/libobjc*.so \
+ ${libdir}/libobjc*.la \
+ ${libdir}/libobjc*.a \
+"
+
FILES_libmudflap = "${libdir}/libmudflap*.so.*"
FILES_libmudflap-dev = "\
${libdir}/libmudflap*.so \
diff --git a/recipes/gcc/gcc-svn.inc b/recipes/gcc/gcc-svn.inc
index e2943bd387..ab39a73724 100644
--- a/recipes/gcc/gcc-svn.inc
+++ b/recipes/gcc/gcc-svn.inc
@@ -7,7 +7,7 @@ require gcc-common.inc
DEPENDS = "mpfr gmp"
GCC_BASE ?= "4.5"
-PV = "${GCC_BASE}+svnr${SRCREV}"
+PV = "${GCC_BASE}+svnr${SRCPV}"
PR = "r0"
#DEFAULT_PREFERENCE is 0 (empty), releases have a preference of 1 so take
# precedence.
diff --git a/recipes/gcc/mingw-gcc-build.inc b/recipes/gcc/mingw-gcc-build.inc
index 4d7440f6d5..b79aab4a6a 100644
--- a/recipes/gcc/mingw-gcc-build.inc
+++ b/recipes/gcc/mingw-gcc-build.inc
@@ -34,7 +34,7 @@ do_configure () {
oe_runconf
}
-do_stage_append () {
+do_stage () {
# Fixup various .la files
sed -i -e "s|installed=yes|installed=no|" -e "s|dependency_libs\s*=\s*.*|dependency_libs='-L${STAGING_DIR_HOST}${layout_libdir} ${LIBGCCS_VAR} -lc -lm '|" ${STAGING_DIR_HOST}${layout_libdir}/libsupc++.la || true
sed -i -e "s|installed=yes|installed=no|" -e "s|dependency_libs\s*=\s*.*|dependency_libs='-L${STAGING_DIR_HOST}${layout_libdir} ${LIBGCCS_VAR} -lc -lm '|" ${STAGING_DIR_HOST}${layout_libdir}/libstdc++.la || true
diff --git a/recipes/gdb/gdb_7.0.bb b/recipes/gdb/gdb_7.0.bb
index 9a4684409b..c3aa49d0e4 100644
--- a/recipes/gdb/gdb_7.0.bb
+++ b/recipes/gdb/gdb_7.0.bb
@@ -3,3 +3,6 @@ LICENSE = "GPLv3"
SRC_URI += "\
file://gdb-6.8-fix-compile-karmic.patch;patch=1"
+
+# Work-around problems while creating libbfd.a
+EXTRA_OECONF += "--enable-static"
diff --git a/recipes/gimp/babl_svn.bb b/recipes/gimp/babl_svn.bb
index 332595ee6b..b9ce3cdf91 100644
--- a/recipes/gimp/babl_svn.bb
+++ b/recipes/gimp/babl_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Babl is a dynamic, any to any, pixel format conversion library."
LICENSE = "LGPL"
SRCREV = "349"
-PV = "0.0.23+svnr${SRCREV}"
+PV = "0.0.23+svnr${SRCPV}"
PR = "r1"
PE = "1"
diff --git a/recipes/gimp/gegl_svn.bb b/recipes/gimp/gegl_svn.bb
index 7f49e785ac..af2e79aaaa 100644
--- a/recipes/gimp/gegl_svn.bb
+++ b/recipes/gimp/gegl_svn.bb
@@ -3,7 +3,7 @@ LICENSE = "LGPL"
DEPENDS = "babl librsvg glib-2.0 gtk+ pango cairo expat zlib libpng jpeg virtual/libsdl"
SRCREV = "2543"
-PV = "0.0.19+svnr${SRCREV}"
+PV = "0.0.19+svnr${SRCPV}"
PE = "1"
PR = "r1"
diff --git a/recipes/glew/files/autotools.patch b/recipes/glew/files/autotools.patch
new file mode 100644
index 0000000000..fc4df82a15
--- /dev/null
+++ b/recipes/glew/files/autotools.patch
@@ -0,0 +1,146 @@
+Index: glew/Makefile.am
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ glew/Makefile.am 2009-12-02 00:30:23.296641663 +0100
+@@ -0,0 +1,5 @@
++
++ACLOCAL_AMFLAGS = -I m4 --install
++
++SUBDIRS = include src
++
+Index: glew/configure.ac
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ glew/configure.ac 2009-12-02 00:30:23.296641663 +0100
+@@ -0,0 +1,67 @@
++# -*- Autoconf -*-
++# Process this file with autoconf to produce a configure script.
++
++AC_PREREQ([2.62])
++AC_INIT([glew], [1.5.1], [BUG-REPORT-ADDRESS])
++AC_CONFIG_SRCDIR([src/glew.c])
++AC_CONFIG_HEADERS([config.h])
++AM_INIT_AUTOMAKE([-Wall -Werror foreign])
++AC_CONFIG_MACRO_DIR([m4])
++
++LT_INIT
++
++# Checks for programs.
++AC_PROG_CC
++AC_PROG_INSTALL
++AC_PROG_LN_S
++
++# Checks for libraries.
++
++# Checks for header files.
++AC_CHECK_HEADERS([inttypes.h stddef.h stdint.h stdlib.h string.h])
++
++# Checks for typedefs, structures, and compiler characteristics.
++AC_TYPE_INT32_T
++AC_TYPE_INT64_T
++AC_TYPE_UINT64_T
++AC_CHECK_TYPES([ptrdiff_t])
++
++# Checks for library functions.
++AC_FUNC_MALLOC
++AC_CHECK_FUNCS([strtol])
++
++# Check for pkgconfig libs
++
++PKG_CHECK_MODULES([X11], [x11])
++AC_SUBST([X11_LIBS])
++AC_SUBST([X11_CFLAGS])
++
++PKG_CHECK_MODULES([XMU], [xmu])
++AC_SUBST([XMU_LIBS])
++AC_SUBST([XMU_CFLAGS])
++
++PKG_CHECK_MODULES([XI], [xi])
++AC_SUBST([XI_LIBS])
++AC_SUBST([XI_CFLAGS])
++
++PKG_CHECK_MODULES([XEXT], [xext])
++AC_SUBST([XEXT_LIBS])
++AC_SUBST([XEXT_CFLAGS])
++
++# Check for GLU is enough and imples gl so no doubled -lGL in LDFLAGS
++PKG_CHECK_MODULES([GLU], [glu])
++AC_SUBST([GLU_LIBS])
++AC_SUBST([GLU_CFLAGS])
++
++# ENABLE option for Multiple Rendering Contexts support
++AC_CHECK_ENABLE_GLEWMX
++
++# for now we use the same version as the package, but that should be avoided
++# in the future
++
++AC_SUBST([LIBGLEW_SO_VERSION], [1:5:1])
++
++AC_CONFIG_FILES([Makefile
++ include/Makefile
++ src/Makefile])
++AC_OUTPUT
+Index: glew/src/Makefile.am
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ glew/src/Makefile.am 2009-12-02 00:33:48.690786110 +0100
+@@ -0,0 +1,35 @@
++
++AM_CPPFLAGS = -I$(top_srcdir)/include
++
++if ENABLE_GLEWMX
++AM_CPPFLAGS += -DGLEW_MX
++endif
++
++AM_CFLAGS = @X11_CFLAGS@ \
++ @XMU_CFLAGS@ \
++ @XI_CFLAGS@ \
++ @XEXT_CFLAGS@ \
++ @GLU_CFLAGS@
++
++lib_LTLIBRARIES = libGLEW.la
++
++libGLEW_la_SOURCES = glew.c
++
++libGLEW_la_LIBADD = @X11_LIBS@ \
++ @XMU_LIBS@ \
++ @XI_LIBS@ \
++ @XEXT_LIBS@ \
++ @GLU_LIBS@
++
++libGLEW_la_LDFLAGS = -version-number @LIBGLEW_SO_VERSION@
++
++bin_PROGRAMS = glewinfo visualinfo
++
++glewinfo_SOURCES = glewinfo.c
++
++glewinfo_LDADD = libGLEW.la
++
++visualinfo_SOURCES = visualinfo.c
++
++visualinfo_LDADD = libGLEW.la
++
+Index: glew/m4/glewmx.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ glew/m4/glewmx.m4 2009-12-02 00:30:23.296641663 +0100
+@@ -0,0 +1,11 @@
++
++AC_DEFUN([AC_CHECK_ENABLE_GLEWMX],[
++AC_MSG_CHECKING([whether to include Multiple Rendering Contexts support])
++AC_ARG_ENABLE([glewmx],
++ [AS_HELP_STRING([--enable-glewmx], [enable GLEW Multiple Rendering Contexts (default is no)])],
++ [ENABLE_GLEWMX="$enableval"],
++ [ENABLE_GLEWMX="no"])
++AC_MSG_RESULT([${ENABLE_GLEWMX}])
++AM_CONDITIONAL([ENABLE_GLEWMX], [test x"${ENABLE_GLEWMX}" = "xyes"])
++])
++
+Index: glew/include/Makefile.am
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ glew/include/Makefile.am 2009-12-02 00:30:23.296641663 +0100
+@@ -0,0 +1,3 @@
++
++nobase_include_HEADERS = GL/glew.h GL/glxew.h GL/wglew.h
++
diff --git a/recipes/glew/libglew_1.5.1.bb b/recipes/glew/libglew_1.5.1.bb
new file mode 100644
index 0000000000..ed0b69c28b
--- /dev/null
+++ b/recipes/glew/libglew_1.5.1.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library."
+SECTION = "libs"
+LICENSE = "Modified BSD License, Mesa 3-D License, Khronos License"
+
+DEPENDS = "virtual/libx11 mesa libxext libxi libxmu"
+
+PR = "r0"
+
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/glew/glew/1.5.1/glew-1.5.1-src.tgz \
+ file://autotools.patch;patch=1 \
+ "
+
+inherit autotools lib_package
+
+S = "${WORKDIR}/glew"
+
diff --git a/recipes/glibc/glibc-2.10.1/glibc-2.9-enable-binutils-2.2.patch b/recipes/glibc/glibc-2.10.1/glibc-2.9-enable-binutils-2.2.patch
new file mode 100644
index 0000000000..09200dd43b
--- /dev/null
+++ b/recipes/glibc/glibc-2.10.1/glibc-2.9-enable-binutils-2.2.patch
@@ -0,0 +1,35 @@
+--- glibc-2.9.orig/configure.in 2009-10-22 15:38:13.000000000 +0200
++++ glibc-2.9/configure.in 2009-10-22 15:37:33.000000000 +0200
+@@ -844,10 +844,10 @@
+ # Accept binutils 2.13 or newer.
+ AC_CHECK_PROG_VER(AS, $AS, --version,
+ [GNU assembler.* \([0-9]*\.[0-9.]*\)],
+- [2.1[3-9]*], AS=: critic_missing="$critic_missing as")
++ [2.1[3-9]* | 2.2* ], AS=: critic_missing="$critic_missing as")
+ AC_CHECK_PROG_VER(LD, $LD, --version,
+ [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
+- [2.1[3-9]*], LD=: critic_missing="$critic_missing ld")
++ [2.1[3-9]* | 2.2* ], LD=: critic_missing="$critic_missing ld")
+
+ # We need the physical current working directory. We cannot use the
+ # "pwd -P" shell builtin since that's not portable. Instead we try to
+--- glibc-2.9.orig/configure 2009-02-26 22:28:17.000000000 +0100
++++ glibc-2.9/configure 2009-10-22 15:43:11.000000000 +0200
+@@ -4531,7 +4531,7 @@
+ ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+- 2.1[3-9]*)
++ 2.1[3-9]* | 2.2*)
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
+@@ -4594,7 +4594,7 @@
+ ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+- 2.1[3-9]*)
++ 2.1[3-9]* | 2.2*)
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
diff --git a/recipes/glibc/glibc-initial_2.10.1.bb b/recipes/glibc/glibc-initial_2.10.1.bb
new file mode 100644
index 0000000000..d66297090f
--- /dev/null
+++ b/recipes/glibc/glibc-initial_2.10.1.bb
@@ -0,0 +1,6 @@
+require glibc_${PV}.bb
+require glibc-initial.inc
+
+do_configure_prepend () {
+ unset CFLAGS
+}
diff --git a/recipes/glibc/glibc-package.inc b/recipes/glibc/glibc-package.inc
new file mode 100644
index 0000000000..c30f315fbc
--- /dev/null
+++ b/recipes/glibc/glibc-package.inc
@@ -0,0 +1,89 @@
+#
+# For now, we will skip building of a gcc package if it is a uclibc one
+# and our build is not a uclibc one, and we skip a glibc one if our build
+# is a uclibc build.
+#
+# See the note in gcc/gcc_3.4.0.oe
+#
+
+python __anonymous () {
+ import bb, re
+ uc_os = (re.match('.*uclibc*', bb.data.getVar('TARGET_OS', d, 1)) != None)
+ if uc_os:
+ raise bb.parse.SkipPackage("incompatible with target %s" %
+ bb.data.getVar('TARGET_OS', d, 1))
+}
+
+
+# Binary locales are generated at build time if ENABLE_BINARY_LOCALE_GENERATION
+# is set. The idea is to avoid running localedef on the target (at first boot)
+# to decrease initial boot time and avoid localedef being killed by the OOM
+# killer which used to effectively break i18n on machines with < 128MB RAM.
+
+# default to disabled until qemu works for everyone
+ENABLE_BINARY_LOCALE_GENERATION ?= "0"
+
+# BINARY_LOCALE_ARCHES is a space separated list of regular expressions
+BINARY_LOCALE_ARCHES ?= "arm.* i[3-6]86 x86_64 powerpc"
+
+# Set this to zero if you don't want ldconfig in the output package
+USE_LDCONFIG ?= "1"
+
+inherit glibc-package
+
+INITSCRIPT_NAME = "nscd"
+INITSCRIPT_PACKAGES = "nscd"
+INITSCRIPT_PARAMS = "start 40 S . stop 40 0 6 1 ."
+inherit update-rc.d
+
+def get_glibc_fpu_setting(bb, d):
+ if bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]:
+ return "--without-fp"
+ return ""
+
+EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}"
+EXTRA_OEMAKE += "rootsbindir=${base_sbindir}"
+
+OVERRIDES_append = ":${TARGET_ARCH}-${TARGET_OS}"
+
+do_install() {
+ oe_runmake install_root=${D} install
+ for r in ${rpcsvc}; do
+ h=`echo $r|sed -e's,\.x$,.h,'`
+ install -m 0644 ${S}/sunrpc/rpcsvc/$h ${D}/${includedir}/rpcsvc/
+ done
+ install -d ${D}${libdir}/locale
+ make -f ${WORKDIR}/generate-supported.mk IN="${S}/localedata/SUPPORTED" OUT="${WORKDIR}/SUPPORTED"
+ # get rid of some broken files...
+ for i in ${GLIBC_BROKEN_LOCALES}; do
+ grep -v $i ${WORKDIR}/SUPPORTED > ${WORKDIR}/SUPPORTED.tmp
+ mv ${WORKDIR}/SUPPORTED.tmp ${WORKDIR}/SUPPORTED
+ done
+ rm -f ${D}{sysconfdir}/rpc
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0644 ${S}/nscd/nscd.conf ${D}${sysconfdir}/
+ install ${S}/nscd/nscd.init ${D}${sysconfdir}/init.d/nscd
+}
+
+
+python __anonymous () {
+ enabled = bb.data.getVar("ENABLE_BINARY_LOCALE_GENERATION", d, 1)
+
+ if enabled and int(enabled):
+ import re
+
+ target_arch = bb.data.getVar("TARGET_ARCH", d, 1)
+ binary_arches = bb.data.getVar("BINARY_LOCALE_ARCHES", d, 1) or ""
+
+ for regexp in binary_arches.split(" "):
+ r = re.compile(regexp)
+
+ if r.match(target_arch):
+ depends = bb.data.getVar("DEPENDS", d, 1)
+ depends = "%s qemu-native" % depends
+ bb.data.setVar("DEPENDS", depends, d)
+ bb.data.setVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", "compile", d)
+ break
+}
+
+
diff --git a/recipes/glibc/glibc_2.10.1.bb b/recipes/glibc/glibc_2.10.1.bb
new file mode 100644
index 0000000000..a1ec4e32ca
--- /dev/null
+++ b/recipes/glibc/glibc_2.10.1.bb
@@ -0,0 +1,151 @@
+require glibc.inc
+
+ARM_INSTRUCTION_SET = "arm"
+
+PACKAGES_DYNAMIC = "libc6*"
+RPROVIDES_${PN}-dev = "libc6-dev virtual-libc-dev"
+
+# the -isystem in bitbake.conf screws up glibc do_stage
+BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
+TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${layout_includedir}"
+
+
+FILESPATHPKG =. "glibc-2.4:"
+
+GLIBC_ADDONS ?= "ports,nptl,libidn"
+
+GLIBC_BROKEN_LOCALES = " _ER _ET so_ET yn_ER sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN"
+
+#
+# For now, we will skip building of a gcc package if it is a uclibc one
+# and our build is not a uclibc one, and we skip a glibc one if our build
+# is a uclibc build.
+#
+# See the note in gcc/gcc_3.4.0.oe
+#
+
+python __anonymous () {
+ import bb, re
+ uc_os = (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None)
+ if uc_os:
+ raise bb.parse.SkipPackage("incompatible with target %s" %
+ bb.data.getVar('TARGET_OS', d, 1))
+}
+
+RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
+
+SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-${PV}.tar.bz2 \
+ ftp://ftp.gnu.org/pub/gnu/glibc/glibc-ports-${PV}.tar.bz2 \
+ ftp://ftp.gnu.org/pub/gnu/glibc/glibc-libidn-${PV}.tar.bz2 \
+ file://nscd-init.patch;patch=1;pnum=0 \
+ file://arm-memcpy.patch;patch=1 \
+ file://arm-longlong.patch;patch=1 \
+ file://fhs-linux-paths.patch;patch=1 \
+ file://dl-cache-libcmp.patch;patch=1 \
+ file://ldsocache-varrun.patch;patch=1 \
+ file://nptl-crosscompile.patch;patch=1 \
+ file://glibc-check_pf.patch;patch=1;pnum=0 \
+ file://ldd-unbash.patch;patch=1 \
+ file://glibc-arm-IO-acquire-lock-fix.diff;patch=1 \
+ file://generic-bits_select.h \
+ file://generic-bits_types.h \
+ file://generic-bits_typesizes.h \
+ file://generic-bits_time.h \
+ file://etc/ld.so.conf \
+ file://generate-supported.mk \
+ file://march-i686.patch;patch=1;pnum=0 \
+ file://arm-lowlevellock-include-tls.patch;patch=1 \
+ file://glibc-2.9-enable-binutils-2.2.patch;patch=1 \
+ file://armv4t-interworking.patch;patch=1 \
+ "
+
+# Build fails on sh3 and sh4 without additional patches
+SRC_URI_append_sh3 = " file://no-z-defs.patch;patch=1"
+SRC_URI_append_sh4 = " file://no-z-defs.patch;patch=1"
+
+#powerpc patches to add support for soft-float
+SRC_URI_append_powerpc= " file://powerpc-sqrt-hack.diff;patch=1"
+
+S = "${WORKDIR}/glibc-${PV}"
+B = "${WORKDIR}/build-${TARGET_SYS}"
+
+EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
+ --without-cvs --disable-profile --disable-debug --without-gd \
+ --enable-clocale=gnu \
+ --enable-add-ons=${GLIBC_ADDONS} \
+ --with-headers=${STAGING_INCDIR} \
+ --without-selinux \
+ ${GLIBC_EXTRA_OECONF}"
+
+EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}"
+
+do_munge() {
+ # Integrate ports and libidn into tree
+ mv ${WORKDIR}/glibc-ports-${PV} ${S}/ports
+ mv ${WORKDIR}/glibc-libidn-${PV} ${S}/libidn
+
+ # Ports isn't really working... Fix it
+ # Some of this is rather dirty, but it seems to be the only
+ # quick way to get this cruft to compile
+ rm -rf ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
+ ln -s nptl ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
+ cp ${S}/nptl/sysdeps/pthread/bits/sigthread.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
+ cp ${S}/sysdeps/unix/sysv/linux/i386/bits/wchar.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
+ cp ${S}/sysdeps/wordsize-32/bits/wordsize.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
+ cp ${WORKDIR}/generic-bits_select.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/select.h
+ cp ${WORKDIR}/generic-bits_types.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/types.h
+ cp ${WORKDIR}/generic-bits_typesizes.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/typesizes.h
+ cp ${WORKDIR}/generic-bits_time.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/time.h
+ # Copy in generic stuff for not yet implemented headers
+ for i in ${S}/bits/*.h; do
+ F=`basename $i`
+ [ "$F" = "local_lim.h" ] && continue
+ [ "$F" = "errno.h" ] && continue
+ test -e ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/$F || test -e ${S}/ports/sysdeps/arm/bits/$F || test -e ${S}/sysdeps/unix/sysv/linux/bits/$F || test -e ${S}/sysdeps/ieee754/bits/$F || cp $i ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
+ done
+ # This is harmful; we need to get the one from nptl/sysdeps/pthreads
+ rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/libc-lock.h
+ # Obsoleted by sysdeps/arm/{fpu,eabi}/bits/fenv.h
+ rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/fenv.h
+ # Obsoleted by sysdeps/gnu/bits/utmp.h
+ rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/utmp.h
+}
+
+addtask munge before do_patch after do_unpack
+
+
+do_configure () {
+# /var/db was not included to FHS
+ sed -i s:/var/db/nscd:/var/run/nscd: ${S}/nscd/nscd.h
+# override this function to avoid the autoconf/automake/aclocal/autoheader
+# calls for now
+# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
+# version check and doesn't really help with anything
+ if [ -z "`which rpcgen`" ]; then
+ echo "rpcgen not found. Install glibc-devel."
+ exit 1
+ fi
+ (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
+ CPPFLAGS="" oe_runconf
+}
+
+rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
+ yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
+ rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
+
+do_compile () {
+ # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
+ unset LDFLAGS
+ base_do_compile
+ (
+ cd ${S}/sunrpc/rpcsvc
+ for r in ${rpcsvc}; do
+ h=`echo $r|sed -e's,\.x$,.h,'`
+ rpcgen -h $r -o $h || oewarn "unable to generate header for $r"
+ done
+ )
+}
+
+require glibc-stage.inc
+
+require glibc-package.inc
diff --git a/recipes/glibc/glibc_2.2.5.bb b/recipes/glibc/glibc_2.2.5.bb
index f810477e73..4327b58da6 100644
--- a/recipes/glibc/glibc_2.2.5.bb
+++ b/recipes/glibc/glibc_2.2.5.bb
@@ -193,4 +193,4 @@ do_stage() {
echo 'GROUP ( libc.so.6 libc_nonshared.a )' > ${STAGING_DIR_HOST}/${layout_base_libdir}/libc.so
}
-require glibc-package.bbclass
+require glibc-package.inc
diff --git a/recipes/glibc/glibc_2.3.2+cvs20040726.bb b/recipes/glibc/glibc_2.3.2+cvs20040726.bb
index 0799676592..7773e9cd52 100644
--- a/recipes/glibc/glibc_2.3.2+cvs20040726.bb
+++ b/recipes/glibc/glibc_2.3.2+cvs20040726.bb
@@ -75,4 +75,4 @@ do_compile () {
require glibc-stage.inc
-require glibc-package.bbclass
+require glibc-package.inc
diff --git a/recipes/glibc/glibc_2.3.2.bb b/recipes/glibc/glibc_2.3.2.bb
index 1524420b3b..152d2616b0 100644
--- a/recipes/glibc/glibc_2.3.2.bb
+++ b/recipes/glibc/glibc_2.3.2.bb
@@ -164,4 +164,4 @@ do_compile () {
require glibc-stage.inc
-require glibc-package.bbclass
+require glibc-package.inc
diff --git a/recipes/glibc/glibc_2.3.3+cvs20041128.bb b/recipes/glibc/glibc_2.3.3+cvs20041128.bb
index d99bde7384..f52bb07643 100644
--- a/recipes/glibc/glibc_2.3.3+cvs20041128.bb
+++ b/recipes/glibc/glibc_2.3.3+cvs20041128.bb
@@ -97,4 +97,4 @@ do_compile () {
require glibc-stage.inc
-require glibc-package.bbclass
+require glibc-package.inc
diff --git a/recipes/glibc/glibc_2.3.3+cvs20050221.bb b/recipes/glibc/glibc_2.3.3+cvs20050221.bb
index 7ce4cce907..34efe71ed5 100644
--- a/recipes/glibc/glibc_2.3.3+cvs20050221.bb
+++ b/recipes/glibc/glibc_2.3.3+cvs20050221.bb
@@ -80,4 +80,4 @@ do_compile () {
require glibc-stage.inc
-require glibc-package.bbclass
+require glibc-package.inc
diff --git a/recipes/glibc/glibc_2.3.3+cvs20050420.bb b/recipes/glibc/glibc_2.3.3+cvs20050420.bb
index ea51f9e4e7..36b2c2cfd0 100644
--- a/recipes/glibc/glibc_2.3.3+cvs20050420.bb
+++ b/recipes/glibc/glibc_2.3.3+cvs20050420.bb
@@ -81,4 +81,4 @@ do_compile () {
require glibc-stage.inc
-require glibc-package.bbclass
+require glibc-package.inc
diff --git a/recipes/glibc/glibc_2.3.3.bb b/recipes/glibc/glibc_2.3.3.bb
index 83ef019037..f832cb3cde 100644
--- a/recipes/glibc/glibc_2.3.3.bb
+++ b/recipes/glibc/glibc_2.3.3.bb
@@ -109,4 +109,4 @@ do_compile () {
require glibc-stage.inc
-require glibc-package.bbclass
+require glibc-package.inc
diff --git a/recipes/glibc/glibc_2.3.5+cvs20050627.bb b/recipes/glibc/glibc_2.3.5+cvs20050627.bb
index 04231d1901..9c8292c421 100644
--- a/recipes/glibc/glibc_2.3.5+cvs20050627.bb
+++ b/recipes/glibc/glibc_2.3.5+cvs20050627.bb
@@ -135,4 +135,4 @@ do_compile () {
require glibc-stage.inc
-require glibc-package.bbclass
+require glibc-package.inc
diff --git a/recipes/glibc/glibc_2.3.6.bb b/recipes/glibc/glibc_2.3.6.bb
index 9277dd1a54..75de4c39f6 100644
--- a/recipes/glibc/glibc_2.3.6.bb
+++ b/recipes/glibc/glibc_2.3.6.bb
@@ -92,4 +92,4 @@ do_stage_prepend() {
require glibc-stage.inc
-require glibc-package.bbclass
+require glibc-package.inc
diff --git a/recipes/glibc/glibc_2.4.bb b/recipes/glibc/glibc_2.4.bb
index ca6afe284a..a90e06ed72 100644
--- a/recipes/glibc/glibc_2.4.bb
+++ b/recipes/glibc/glibc_2.4.bb
@@ -146,4 +146,4 @@ do_compile () {
require glibc-stage.inc
-require glibc-package.bbclass
+require glibc-package.inc
diff --git a/recipes/glibc/glibc_2.5.bb b/recipes/glibc/glibc_2.5.bb
index 02cfeaef2b..6792c58a4d 100644
--- a/recipes/glibc/glibc_2.5.bb
+++ b/recipes/glibc/glibc_2.5.bb
@@ -151,4 +151,4 @@ do_compile () {
require glibc-stage.inc
-require glibc-package.bbclass
+require glibc-package.inc
diff --git a/recipes/glibc/glibc_2.6.1.bb b/recipes/glibc/glibc_2.6.1.bb
index 5cbd8b693c..1daa63254f 100644
--- a/recipes/glibc/glibc_2.6.1.bb
+++ b/recipes/glibc/glibc_2.6.1.bb
@@ -161,4 +161,4 @@ do_compile () {
require glibc-stage.inc
-require glibc-package.bbclass
+require glibc-package.inc
diff --git a/recipes/glibc/glibc_2.7.bb b/recipes/glibc/glibc_2.7.bb
index dcea69cb50..4f52c95190 100644
--- a/recipes/glibc/glibc_2.7.bb
+++ b/recipes/glibc/glibc_2.7.bb
@@ -159,4 +159,4 @@ do_compile () {
require glibc-stage.inc
-require glibc-package.bbclass
+require glibc-package.inc
diff --git a/recipes/glibc/glibc_2.9.bb b/recipes/glibc/glibc_2.9.bb
index cddae98b08..e675d8923f 100644
--- a/recipes/glibc/glibc_2.9.bb
+++ b/recipes/glibc/glibc_2.9.bb
@@ -157,4 +157,4 @@ do_compile () {
require glibc-stage.inc
-require glibc-package.bbclass
+require glibc-package.inc
diff --git a/recipes/glibc/glibc_cvs.bb b/recipes/glibc/glibc_cvs.bb
index 5290dfa9e6..22f48d29fc 100644
--- a/recipes/glibc/glibc_cvs.bb
+++ b/recipes/glibc/glibc_cvs.bb
@@ -105,4 +105,4 @@ do_compile () {
require glibc-stage.inc
-require glibc-package.bbclass
+require glibc-package.inc
diff --git a/recipes/gnet/gnet_svn.bb b/recipes/gnet/gnet_svn.bb
index ea2c92ff1a..f6b27e32fe 100644
--- a/recipes/gnet/gnet_svn.bb
+++ b/recipes/gnet/gnet_svn.bb
@@ -3,7 +3,7 @@ LICENSE = "LGPL"
SECTION = "libs/network"
HOMEPAGE = "http://www.gnetlibrary.org"
DEPENDS = "glib-2.0"
-PV = "2.0.7+svnr${SRCREV}"
+PV = "2.0.7+svnr${SRCPV}"
PR = "r1"
SRC_URI = "svn://svn.gnome.org/svn/${PN}/;module=trunk;proto=http \
diff --git a/recipes/gnome-mplayer/gecko-mediaplayer/extensions/flash@alwaysinnovating.com/chrome/content/ai-flash.js b/recipes/gnome-mplayer/gecko-mediaplayer/extensions/flash@alwaysinnovating.com/chrome/content/ai-flash.js
index c21ad58847..e1486ab2dd 100644
--- a/recipes/gnome-mplayer/gecko-mediaplayer/extensions/flash@alwaysinnovating.com/chrome/content/ai-flash.js
+++ b/recipes/gnome-mplayer/gecko-mediaplayer/extensions/flash@alwaysinnovating.com/chrome/content/ai-flash.js
@@ -1,6 +1,18 @@
+// ==UserScript==
+// @name Flash AI
+// @description Flash AI add-on
+// @include *
+// ==/UserScript==
-window.addEventListener("load", function() { myExtension.init(); }, false);
+var firefox = true;
+if (navigator.userAgent.match("midori")) firefox = false;
+
+if (!firefox){
+ window.addEventListener("load", function() { myExtension.onPageLoad(); }, true);
+}else{
+ window.addEventListener("load", function() { myExtension.init(); }, false);
+}
var myExtension = {
init: function() {
var appcontent = document.getElementById("appcontent"); // browser
@@ -17,7 +29,7 @@ var myExtension = {
}
- var idInterval=-1;
+var idInterval=-1;
var stUrl = "";
var timeout=2000;
@@ -67,8 +79,12 @@ function getBrowserForDocument(aDocument) {
}
function checkPageOnLoad(aEvent) {
-
- var doc=aEvent.originalTarget;
+ var doc;
+ if(firefox){
+ doc=aEvent.originalTarget;
+ }else{
+ doc=document;
+ }
var loc=doc.location.href;
var host=doc.location.hostname;
idInterval=-1;
@@ -97,7 +113,7 @@ function checkPageOnLoad(aEvent) {
}
if (host.match(/youtube\./i)!=null) {
- embmedia=doc.embeds;
+ embmedia=doc.embeds;
if ((embmedia!=null)&&(idInterval==-1)) {
embid=embmedia[0].getAttribute('id');
flashvars=unescape(embmedia[0].getAttribute('flashvars'));
@@ -121,7 +137,7 @@ function checkPageOnLoad(aEvent) {
embmedia=doc.embeds;
if ((embmedia!=null)&&(idInterval==-1)) {
-
+
// Myspace loves embedded flash ads, so we have to find the good one for the video...
for(i=0;i<embmedia.length;i++){
source=unescape(embmedia[i].getAttribute('src'));
@@ -132,11 +148,11 @@ function checkPageOnLoad(aEvent) {
if(source.match(/videoid=/i)!=null){
// regular video
id = (source.split("videoid=")[1]).split("&")[0];
+
}else if (source.match(/m=/i)!=null){
// video channels myspace or hot stuff
id = (source.split("m=")[1]).split("&")[0].split(",")[0];
}
-
if(id!=-1){
stUrl=getMySpaceURL(doc, id);
idInterval = setInterval(replaceTag, timeout, doc, " ", new Array(embmedia[i]));
@@ -150,24 +166,7 @@ function checkPageOnLoad(aEvent) {
if (host.match(/video.yahoo\./i)!=null) {
embmedia=doc.embeds;
- if ((embmedia!=null)&&(idInterval==-1)) {
- for(i=0;i<embmedia.length;i++){
- embid = embmedia[i].getAttribute('id');
- if(embid=="video1"){
- stUrl = getURLfromKeepVid(loc);
- if (stUrl != null){
- this.replaceTag(doc, embid, new Array(embmedia[i]));
- return;
- }
- }
- }
- }
- setTimeout(checkPageOnLoad,timeout,aEvent);
- return;
- }
- if (host.match(/video.yahoo\./i)!=null) {
- embmedia=doc.embeds;
if ((embmedia!=null)&&(idInterval==-1)) {
for(i=0;i<embmedia.length;i++){
embid = embmedia[i].getAttribute('id');
@@ -183,8 +182,7 @@ function checkPageOnLoad(aEvent) {
setTimeout(checkPageOnLoad,timeout,aEvent);
return;
}
-
-
+
//if (loc.match(/my\.yahoo\..*\/\?rd\=nux/i)!=null) {
// atag=doc.getElementsByTagName('a');
@@ -197,7 +195,6 @@ function checkPageOnLoad(aEvent) {
//}
if (host.match(/dailymotion\./i)!=null) {
-
embmedia=doc.embeds;
if ((embmedia!=null)&&(idInterval==-1)) {
embid=embmedia[0].getAttribute('id');
diff --git a/recipes/gnome-mplayer/gecko-mediaplayer_0.9.8.bb b/recipes/gnome-mplayer/gecko-mediaplayer_0.9.8.bb
index 33d0be4aa2..a9260836da 100644
--- a/recipes/gnome-mplayer/gecko-mediaplayer_0.9.8.bb
+++ b/recipes/gnome-mplayer/gecko-mediaplayer_0.9.8.bb
@@ -4,7 +4,7 @@ LICENSE = "GPL"
DEPENDS = "firefox gtk+ gconf dbus-glib"
RDEPENDS = "firefox gnome-mplayer"
-PR = "r3"
+PR = "r7"
inherit autotools
@@ -13,11 +13,7 @@ SRC_URI = "http://gecko-mediaplayer.googlecode.com/files/${P}.tar.gz \
file://extensions \
"
-# Yes, this needs to match the firefox version you are building *exactly*
-MOZILLA_HOME = "firefox-3.5.4"
-
do_install_append() {
- ln -sf ${libdir}/mozilla ${D}${libdir}/${MOZILLA_HOME}
cp -dpR ${WORKDIR}/extens* ${D}${libdir}/mozilla/
}
@@ -26,7 +22,14 @@ RDEPENDS_${PN}-firefox-hack = "${PN}"
FILES_${PN}-firefox-hack = "${libdir}/mozilla/extensions"
FILES_${PN} += "${sysconfdir}/* \
- ${libdir}/mozilla/* ${libdir}/${MOZILLA_HOME}"
+ ${libdir}/mozilla/*"
FILES_${PN}-dbg += "${libdir}/mozilla*/plugins/.debug/*"
+pkg_postinst_${PN}-firefox-hack() {
+for firefoxdir in $D${libdir}/firefox-* ; do
+ if [ -e $firefoxdir/extensions/ ] ; then
+ ln -sf ${libdir}/mozilla/extensions/flash@alwaysinnovating.com $firefoxdir/extensions/
+ fi
+done
+}
diff --git a/recipes/gnome-mplayer/gnome-mplayer_0.9.8.bb b/recipes/gnome-mplayer/gnome-mplayer_0.9.8.bb
index b8aa30d52e..95b46176af 100644
--- a/recipes/gnome-mplayer/gnome-mplayer_0.9.8.bb
+++ b/recipes/gnome-mplayer/gnome-mplayer_0.9.8.bb
@@ -4,4 +4,4 @@ SRC_URI += "file://gnome-mplayer-svn.diff;patch=1;pnum=0 \
file://default.patch;patch=1 \
"
-PR = "r8"
+PR = "r9"
diff --git a/recipes/gnome-mplayer/gnome-mplayer_svn.bb b/recipes/gnome-mplayer/gnome-mplayer_svn.bb
index 2e847e0ef4..73dbd079dd 100644
--- a/recipes/gnome-mplayer/gnome-mplayer_svn.bb
+++ b/recipes/gnome-mplayer/gnome-mplayer_svn.bb
@@ -1,7 +1,7 @@
require gnome-mplayer.inc
-SRCREV = "1569"
-PV = "0.9.8+svn${SRCREV}"
+SRCREV = "1583"
+PV = "0.9.8+svnr${SRCPV}"
PR = "r0"
S = "${WORKDIR}/trunk"
diff --git a/recipes/gnome/epiphany_svn.bb b/recipes/gnome/epiphany_svn.bb
index 0c9f974f82..12f2bc5905 100644
--- a/recipes/gnome/epiphany_svn.bb
+++ b/recipes/gnome/epiphany_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "GNOME default webbrowser"
DEPENDS = "gnome-desktop gnome-vfs libgnomeui webkit-gtk iso-codes startup-notification"
RDEPENDS = "gnome-vfs-plugin-http iso-codes"
-PV = "2.20.1+svnr${SRCREV}"
+PV = "2.20.1+svnr${SRCPV}"
PR = "r1"
inherit gnome
diff --git a/recipes/gnome/gconf-dbus_svn.bb b/recipes/gnome/gconf-dbus_svn.bb
index 074b3015c2..671d9f4c11 100644
--- a/recipes/gnome/gconf-dbus_svn.bb
+++ b/recipes/gnome/gconf-dbus_svn.bb
@@ -5,7 +5,7 @@ SECTION = "x11/utils"
PROVIDES = "gconf"
RPROVIDES_${PN} = "gconf"
RPROVIDES_${PN}-dev = "gconf-dev"
-PV = "2.16.0+svnr${SRCREV}"
+PV = "2.16.0+svnr${SRCPV}"
PR = "r0"
inherit autotools pkgconfig
diff --git a/recipes/gnome/gconfmm_2.28.0.bb b/recipes/gnome/gconfmm_2.28.0.bb
new file mode 100644
index 0000000000..b7e57d2e59
--- /dev/null
+++ b/recipes/gnome/gconfmm_2.28.0.bb
@@ -0,0 +1,5 @@
+DESCRIPTION = "C++ bindings for GConf"
+LICENSE = "LGPLv2"
+DEPENDS = "glibmm gconf gtkmm"
+
+inherit gnome
diff --git a/recipes/gnome/gdm-2.28.0/%gconf-tree.xml b/recipes/gnome/gdm-2.28.1/%gconf-tree.xml
index f8c2e9cc20..f8c2e9cc20 100644
--- a/recipes/gnome/gdm-2.28.0/%gconf-tree.xml
+++ b/recipes/gnome/gdm-2.28.1/%gconf-tree.xml
diff --git a/recipes/gnome/gdm-2.28.0/cross-xdetection.diff b/recipes/gnome/gdm-2.28.1/cross-xdetection.diff
index 150f79763a..150f79763a 100644
--- a/recipes/gnome/gdm-2.28.0/cross-xdetection.diff
+++ b/recipes/gnome/gdm-2.28.1/cross-xdetection.diff
diff --git a/recipes/gnome/gdm-2.28.0/gdm b/recipes/gnome/gdm-2.28.1/gdm
index fed9c06ad7..43eae95177 100755
--- a/recipes/gnome/gdm-2.28.0/gdm
+++ b/recipes/gnome/gdm-2.28.1/gdm
@@ -32,10 +32,21 @@ DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager
case "$1" in
start)
# make needed directories in volatile
+
+ if [ -e /var/log/gdm ] ; then
+ rm -rf /var/log/gdm
+ fi
+
mkdir -m 01770 /var/log/gdm
chown gdm:gdm /var/log/gdm
+
+ if [ -e /tmp/.ICE-unix ] ; then
+ rm -rf /tmp/.ICE-unix
+ fi
+
mkdir -m 01777 /tmp/.ICE-unix
chown root:root /tmp/.ICE-unix
+
CONFIGURED_DAEMON=$(basename "$(cat $DEFAULT_DISPLAY_MANAGER_FILE 2> /dev/null)")
if grep -wqs text /proc/cmdline; then
echo "Not starting GNOME Display Manager (gdm); found 'text' in kernel commandline."
diff --git a/recipes/gnome/gdm-2.28.0/gdm-nodocs.patch b/recipes/gnome/gdm-2.28.1/gdm-nodocs.patch
index 395fa627eb..395fa627eb 100644
--- a/recipes/gnome/gdm-2.28.0/gdm-nodocs.patch
+++ b/recipes/gnome/gdm-2.28.1/gdm-nodocs.patch
diff --git a/recipes/gnome/gdm-2.28.0/gdm-pam b/recipes/gnome/gdm-2.28.1/gdm-pam
index f9fafed9d6..f9fafed9d6 100644
--- a/recipes/gnome/gdm-2.28.0/gdm-pam
+++ b/recipes/gnome/gdm-2.28.1/gdm-pam
diff --git a/recipes/gnome/gdm-2.28.0/gdm.conf b/recipes/gnome/gdm-2.28.1/gdm.conf
index 559823b863..559823b863 100644
--- a/recipes/gnome/gdm-2.28.0/gdm.conf
+++ b/recipes/gnome/gdm-2.28.1/gdm.conf
diff --git a/recipes/gnome/gdm-2.28.0/other b/recipes/gnome/gdm-2.28.1/other
index 1fe5756178..1fe5756178 100644
--- a/recipes/gnome/gdm-2.28.0/other
+++ b/recipes/gnome/gdm-2.28.1/other
diff --git a/recipes/gnome/gdm_2.28.0.bb b/recipes/gnome/gdm_2.28.1.bb
index 683773a3ab..91a5555c7a 100644
--- a/recipes/gnome/gdm_2.28.0.bb
+++ b/recipes/gnome/gdm_2.28.1.bb
@@ -1,12 +1,12 @@
DESCRIPTION = "Graphical login manager"
LICENSE = "GPL"
-DEPENDS = "libcanberra libxklavier grep consolekit libpam gnome-doc-utils gtk+ libglade libgnomecanvas librsvg libxml2 libart-lgpl xrdb"
-
-PR = "r1"
+DEPENDS = "tcp-wrappers libcanberra libxklavier grep consolekit libpam gnome-doc-utils gtk+ libglade libgnomecanvas librsvg libxml2 libart-lgpl xrdb"
inherit gnome update-rc.d
+RDEPENDS_${PN} += "grep"
+
SRC_URI += " \
file://cross-xdetection.diff;patch=1 \
file://%gconf-tree.xml \
@@ -23,8 +23,10 @@ EXTRA_OECONF = " --enable-authentication-scheme=shadow \
do_install_prepend() {
mkdir -p ${D}/var/lib/gdm/.gconf.mandatory
- cp ${WORKDIR}/%gconf-tree.xml ${D}/var/lib/gdm/.gconf.mandatory/
+ cp ${WORKDIR}/%gconf-tree.xml ${D}/var/lib/gdm/.gconf.mandatory/
+}
+do_install_append() {
install -d ${D}/${sysconfdir}/init.d
install -m 0755 ${WORKDIR}/gdm ${D}/${sysconfdir}/init.d/
diff --git a/recipes/gnome/gnome-games_2.24.0.bb b/recipes/gnome/gnome-games_2.24.0.bb
index b4e7cf43c9..20221bd410 100644
--- a/recipes/gnome/gnome-games_2.24.0.bb
+++ b/recipes/gnome/gnome-games_2.24.0.bb
@@ -16,21 +16,14 @@ EXTRA_OECONF = "--with-libggz-includes=${STAGING_INCDIR} \
INTLTOOL_PERL=${STAGING_BINDIR_NATIVE}/perl \
"
+# disable help dir and crappy old sdl-macro
do_configure_prepend() {
+ rm m4/sdl.m4
for i in $(find ${S} -name "Makefile.am") ; do
sed -i -e s:help::g $i
done
}
-do_configure_append() {
- for i in $(find ${S} -name "Makefile") ; do
- sed -i \
- -e s:'-I/usr/include/SDL':'-I${STAGING_INCDIR}/SDL':g \
- -e s:'-I/usr/local/include/SDL':'-I${STAGING_INCDIR}/SDL':g \
- $i
- done
-}
-
# copy matchbox icons
do_install_append() {
install -m 0644 ${D}/${datadir}/icons/hicolor/48x48/apps/* ${D}/${datadir}/pixmaps
diff --git a/recipes/gnome/gnome-icon-theme_1.3.3.bb b/recipes/gnome/gnome-icon-theme_1.3.3.bb
deleted file mode 100644
index c601d2a5d0..0000000000
--- a/recipes/gnome/gnome-icon-theme_1.3.3.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-LICENSE = "GPL"
-SECTION = "x11/gnome"
-SRC_URI = "${GNOME_MIRROR}/${PN}/1.3/${PN}-${PV}.tar.bz2"
-DEPENDS = "glib-2.0 intltool-native"
-PR ="r1"
-
-FILES_${PN} += "${datadir}/*"
-
-EXTRA_OECONF = "--disable-hicolor-check"
-
-inherit autotools pkgconfig
diff --git a/recipes/gnome/gnome-icon-theme_2.22.0.bb b/recipes/gnome/gnome-icon-theme_2.22.0.bb
deleted file mode 100644
index d458d9ba74..0000000000
--- a/recipes/gnome/gnome-icon-theme_2.22.0.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-LICENSE = "GPL"
-SECTION = "x11/gnome"
-DEPENDS = "icon-naming-utils-native glib-2.0 intltool-native"
-RDEPENDS = "hicolor-icon-theme"
-
-FILES_${PN} += "${datadir}/*"
-
-EXTRA_OECONF = "--disable-hicolor-check"
-
-inherit gnome
-
-PACKAGE_ARCH = "all"
diff --git a/recipes/gnome/gnome-icon-theme_2.24.0.bb b/recipes/gnome/gnome-icon-theme_2.24.0.bb
deleted file mode 100644
index 755e39151e..0000000000
--- a/recipes/gnome/gnome-icon-theme_2.24.0.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-LICENSE = "GPL"
-SECTION = "x11/gnome"
-DEPENDS = "icon-naming-utils-native glib-2.0 intltool-native"
-RDEPENDS = "hicolor-icon-theme"
-RRECOMMENDS = "librsvg-gtk"
-
-PR = "r2"
-
-FILES_${PN} += "${datadir}/*"
-
-EXTRA_OECONF = "--disable-hicolor-check"
-
-inherit gnome
-
-pkg_postinst_${PN}() {
-if [ "x$D" != "x" ]; then
- exit 1
-fi
-
-# Update the pixbuf loaders in case they haven't been registered yet
-gdk-pixbuf-query-loaders > /etc/gtk-2.0/gdk-pixbuf.loaders
-
-gtk-update-icon-cache -q /usr/share/icons/gnome
-}
-
-pkg_postrm_${PN}() {
-gtk-update-icon-cache -q /usr/share/icons/gnome
-}
-
diff --git a/recipes/gnome/gnome-icon-theme_2.26.0.bb b/recipes/gnome/gnome-icon-theme_2.26.0.bb
deleted file mode 100644
index 7e5c7b3af8..0000000000
--- a/recipes/gnome/gnome-icon-theme_2.26.0.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-LICENSE = "GPL"
-SECTION = "x11/gnome"
-DEPENDS = "icon-naming-utils-native glib-2.0 intltool-native"
-RDEPENDS = "hicolor-icon-theme"
-RRECOMMENDS = "librsvg-gtk"
-
-FILES_${PN} += "${datadir}/*"
-
-EXTRA_OECONF = "--disable-hicolor-check"
-
-inherit gnome
-
-
diff --git a/recipes/gnome/gnome-icon-theme_2.28.0.bb b/recipes/gnome/gnome-icon-theme_2.28.0.bb
index 7e5c7b3af8..fb7c2fa463 100644
--- a/recipes/gnome/gnome-icon-theme_2.28.0.bb
+++ b/recipes/gnome/gnome-icon-theme_2.28.0.bb
@@ -1,13 +1,14 @@
-LICENSE = "GPL"
SECTION = "x11/gnome"
+LICENSE = "GPL"
DEPENDS = "icon-naming-utils-native glib-2.0 intltool-native"
+
RDEPENDS = "hicolor-icon-theme"
RRECOMMENDS = "librsvg-gtk"
-FILES_${PN} += "${datadir}/*"
-
-EXTRA_OECONF = "--disable-hicolor-check"
+PR = "r3"
inherit gnome
+EXTRA_OECONF = "--disable-hicolor-check"
+FILES_${PN} += "${datadir}/*"
diff --git a/recipes/gnome/gnome-system-monitor_2.28.0.bb b/recipes/gnome/gnome-system-monitor_2.28.0.bb
index c4eeaaa42d..13f6732cd7 100644
--- a/recipes/gnome/gnome-system-monitor_2.28.0.bb
+++ b/recipes/gnome/gnome-system-monitor_2.28.0.bb
@@ -20,6 +20,6 @@ FILES_${PN} += "${datadir}/icons \
${datadir}/gnome/autostart \
"
-FILE_{PN}-doc += "${datadir}/omf \
- ${datadir}/gnome/help "
+FILES_${PN}-doc += "${datadir}/omf \
+ ${datadir}/gnome/help "
diff --git a/recipes/gnome/gnome-system-tools_2.27.1.bb b/recipes/gnome/gnome-system-tools_2.27.1.bb
index a1e74bbf73..4839e5e9e6 100644
--- a/recipes/gnome/gnome-system-tools_2.27.1.bb
+++ b/recipes/gnome/gnome-system-tools_2.27.1.bb
@@ -4,6 +4,8 @@ LICENSE = "GPL"
DEPENDS = "nautilus gnome-common glib-2.0 gtk+ gconf liboobs system-tools-backends gnome-control-center"
inherit gnome pkgconfig
+PR = "r1"
+
EXTRA_OECONF = "--disable-scrollkeeper \
"
LDFLAGS += "-lgthread-2.0"
diff --git a/recipes/gnome/gnome-terminal_2.28.0.bb b/recipes/gnome/gnome-terminal_2.28.0.bb
index 3a31bf3fbe..1bc87e735a 100644
--- a/recipes/gnome/gnome-terminal_2.28.0.bb
+++ b/recipes/gnome/gnome-terminal_2.28.0.bb
@@ -4,6 +4,8 @@ LICENSE = "GPL"
DEPENDS = "gnome-common glib-2.0 gtk+ gconf vte"
inherit gnome pkgconfig
+PR = "r1"
+
EXTRA_OECONF = "--disable-scrollkeeper"
do_configure_prepend () {
diff --git a/recipes/gnome/gnome-themes_2.22.2.bb b/recipes/gnome/gnome-themes_2.22.2.bb
deleted file mode 100644
index 1b45ab4d05..0000000000
--- a/recipes/gnome/gnome-themes_2.22.2.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-LICENSE = "GPL"
-SECTION = "x11/gnome"
-DEPENDS = "gtk-engines icon-naming-utils-native glib-2.0 intltool-native"
-RDEPENDS = "gnome-icon-theme"
-
-EXTRA_OECONF = "--enable-all-themes --disable-hicolor-check"
-
-inherit gnome
-
-PACKAGE_ARCH = "all"
-
-PACKAGES =+ " gtk-engine-crux gtk-engine-hc gtk-engine-lighthouseblue gtk-engine-mist gtk-engine-thinice"
-FILES_gtk-engine-crux = "${libdir}/gtk-2.0/*/engines/libcrux-engine.so"
-FILES_gtk-engine-hc = "${libdir}/gtk-2.0/*/engines/libhcengine.so"
-FILES_gtk-engine-lighthouseblue = "${libdir}/gtk-2.0/*/engines/liblighthouseblue.so"
-FILES_gtk-engine-mist = "${libdir}/gtk-2.0/*/engines/libmist.so"
-FILES_gtk-engine-thinice = "${libdir}/gtk-2.0/*/engines/libthinice.so"
-
-PACKAGES =+ " gnome-theme-crux gnome-theme-grand-canyon gnome-theme-highcontrast gnome-theme-highcontrastinverse gnome-theme-highcontrastlargeprint gnome-theme-highcontrastlargeprintinverse gnome-theme-largeprint gnome-theme-lighthouseblue gnome-theme-mist gnome-theme-traditional"
-FILES_gnome-theme-crux = "${datadir}/themes/Crux ${datadir}/icons/Crux"
-FILES_gnome-theme-grand-canyon = "${datadir}/themes/Grand-Canyon ${datadir}/icons/Grand-Canyon"
-FILES_gnome-theme-highcontrast = "${datadir}/themes/HighContrast ${datadir}/icons/HighContrast"
-FILES_gnome-theme-highcontrastinverse = "${datadir}/themes/HighContrastInverse ${datadir}/icons/HighContrastInverse"
-FILES_gnome-theme-highcontrastlargeprint = "${datadir}/themes/HighContrastLargePrint ${datadir}/icons/HighContrastLargePrint"
-FILES_gnome-theme-highcontrastlargeprintinverse = "${datadir}/themes/HighContrastLargePrintInverse ${datadir}/icons/HighContrastLargePrintInverse"
-FILES_gnome-theme-largeprint = "${datadir}/themes/LargePrint ${datadir}/icons/LargePrint"
-FILES_gnome-theme-lighthouseblue = "${datadir}/themes/LighthouseBlue ${datadir}/icons/LighthouseBlue"
-FILES_gnome-theme-mist = "${datadir}/themes/Mist ${datadir}/icons/Mist"
-FILES_gnome-theme-traditional = "${datadir}/themes/Traditional ${datadir}/icons/Traditional"
-
-FILES_${PN} += "${datadir}/themes ${datadir}/icons"
diff --git a/recipes/gnome/gnome-themes_2.24.0.bb b/recipes/gnome/gnome-themes_2.24.0.bb
deleted file mode 100644
index 1b45ab4d05..0000000000
--- a/recipes/gnome/gnome-themes_2.24.0.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-LICENSE = "GPL"
-SECTION = "x11/gnome"
-DEPENDS = "gtk-engines icon-naming-utils-native glib-2.0 intltool-native"
-RDEPENDS = "gnome-icon-theme"
-
-EXTRA_OECONF = "--enable-all-themes --disable-hicolor-check"
-
-inherit gnome
-
-PACKAGE_ARCH = "all"
-
-PACKAGES =+ " gtk-engine-crux gtk-engine-hc gtk-engine-lighthouseblue gtk-engine-mist gtk-engine-thinice"
-FILES_gtk-engine-crux = "${libdir}/gtk-2.0/*/engines/libcrux-engine.so"
-FILES_gtk-engine-hc = "${libdir}/gtk-2.0/*/engines/libhcengine.so"
-FILES_gtk-engine-lighthouseblue = "${libdir}/gtk-2.0/*/engines/liblighthouseblue.so"
-FILES_gtk-engine-mist = "${libdir}/gtk-2.0/*/engines/libmist.so"
-FILES_gtk-engine-thinice = "${libdir}/gtk-2.0/*/engines/libthinice.so"
-
-PACKAGES =+ " gnome-theme-crux gnome-theme-grand-canyon gnome-theme-highcontrast gnome-theme-highcontrastinverse gnome-theme-highcontrastlargeprint gnome-theme-highcontrastlargeprintinverse gnome-theme-largeprint gnome-theme-lighthouseblue gnome-theme-mist gnome-theme-traditional"
-FILES_gnome-theme-crux = "${datadir}/themes/Crux ${datadir}/icons/Crux"
-FILES_gnome-theme-grand-canyon = "${datadir}/themes/Grand-Canyon ${datadir}/icons/Grand-Canyon"
-FILES_gnome-theme-highcontrast = "${datadir}/themes/HighContrast ${datadir}/icons/HighContrast"
-FILES_gnome-theme-highcontrastinverse = "${datadir}/themes/HighContrastInverse ${datadir}/icons/HighContrastInverse"
-FILES_gnome-theme-highcontrastlargeprint = "${datadir}/themes/HighContrastLargePrint ${datadir}/icons/HighContrastLargePrint"
-FILES_gnome-theme-highcontrastlargeprintinverse = "${datadir}/themes/HighContrastLargePrintInverse ${datadir}/icons/HighContrastLargePrintInverse"
-FILES_gnome-theme-largeprint = "${datadir}/themes/LargePrint ${datadir}/icons/LargePrint"
-FILES_gnome-theme-lighthouseblue = "${datadir}/themes/LighthouseBlue ${datadir}/icons/LighthouseBlue"
-FILES_gnome-theme-mist = "${datadir}/themes/Mist ${datadir}/icons/Mist"
-FILES_gnome-theme-traditional = "${datadir}/themes/Traditional ${datadir}/icons/Traditional"
-
-FILES_${PN} += "${datadir}/themes ${datadir}/icons"
diff --git a/recipes/gnome/gnome-themes_2.6.2.bb b/recipes/gnome/gnome-themes_2.6.2.bb
deleted file mode 100644
index 2c18b59654..0000000000
--- a/recipes/gnome/gnome-themes_2.6.2.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SECTION = "x11/base"
-LICENSE = "LGPL"
-DESCRIPTION = "GNOME themes"
-
-DEPENDS = "gtk-engines intltool-native"
-
-PACKAGES += " gtk-engine-crux gtk-engine-hc gtk-engine-lighthouseblue gtk-engine-mist gtk-engine-thinice"
-FILES_gtk-engine-crux = "${libdir}/gtk-2.0/*/engines/libcrux-engine.so"
-FILES_gtk-engine-hc = "${libdir}/gtk-2.0/*/engines/libhcengine.so"
-FILES_gtk-engine-lighthouseblue = "${libdir}/gtk-2.0/*/engines/liblighthouseblue.so"
-FILES_gtk-engine-mist = "${libdir}/gtk-2.0/*/engines/libmist.so"
-FILES_gtk-engine-thinice = "${libdir}/gtk-2.0/*/engines/libthinice.so"
-
-PACKAGES += " gnome-theme-crux gnome-theme-grand-canyon gnome-theme-highcontrast gnome-theme-highcontrastinverse gnome-theme-highcontrastlargeprint gnome-theme-highcontrastlargeprintinverse gnome-theme-largeprint gnome-theme-lighthouseblue gnome-theme-mist gnome-theme-traditional"
-FILES_gnome-theme-crux = "${datadir}/themes/Crux"
-FILES_gnome-theme-grand-canyon = "${datadir}/themes/Grand-Canyon"
-FILES_gnome-theme-highcontrast = "${datadir}/themes/HighContrast"
-FILES_gnome-theme-highcontrastinverse = "${datadir}/themes/HighContrastInverse"
-FILES_gnome-theme-highcontrastlargeprint = "${datadir}/themes/HighContrastLargePrint"
-FILES_gnome-theme-highcontrastlargeprintinverse = "${datadir}/themes/HighContrastLargePrintInverse"
-FILES_gnome-theme-largeprint = "${datadir}/themes/LargePrint"
-FILES_gnome-theme-lighthouseblue = "${datadir}/themes/LighthouseBlue"
-FILES_gnome-theme-mist = "${datadir}/themes/Mist"
-FILES_gnome-theme-traditional = "${datadir}/themes/Traditional"
-
-SRC_URI = "${GNOME_MIRROR}/${PN}/2.6/${PN}-${PV}.tar.bz2"
-
-# gcc-3.4 blows up in gtktext with -frename-registers on arm-linux
-CFLAGS := "${@'${CFLAGS}'.replace('-frename-registers', '')}"
-
-inherit autotools
diff --git a/recipes/gnome/goffice/c99math.patch b/recipes/gnome/goffice/c99math.patch
new file mode 100644
index 0000000000..24e6c31a72
--- /dev/null
+++ b/recipes/gnome/goffice/c99math.patch
@@ -0,0 +1,12 @@
+Index: goffice-0.7.14/configure.in
+===================================================================
+--- goffice-0.7.14.orig/configure.in 2009-11-14 19:14:37.106109501 +0100
++++ goffice-0.7.14/configure.in 2009-11-14 19:19:40.907333188 +0100
+@@ -66,6 +66,7 @@
+
+ AC_ISC_POSIX
+ AC_PROG_CC
++AC_PROG_CC_C99
+ AC_PROG_YACC
+ AM_PROG_LEX
+ AC_PROG_LN_S
diff --git a/recipes/gnome/goffice_0.7.14.bb b/recipes/gnome/goffice_0.7.14.bb
index 77dd39ad79..beb23231db 100644
--- a/recipes/gnome/goffice_0.7.14.bb
+++ b/recipes/gnome/goffice_0.7.14.bb
@@ -1,12 +1,14 @@
DESCRIPTION="Gnome Office Library"
LICENSE="GPLv2"
-PR = "r1"
+PR = "r2"
DEPENDS="glib-2.0 gtk+ pango cairo libgnomeprint libgsf libglade libpcre libxml2 libart-lgpl"
inherit gnome pkgconfig
+SRC_URI += "file://c99math.patch;patch=1"
+
do_stage() {
autotools_stage_all
}
diff --git a/recipes/gnome/libgsf_1.14.16.bb b/recipes/gnome/libgsf_1.14.16.bb
index 5697275f7a..9405b424bc 100644
--- a/recipes/gnome/libgsf_1.14.16.bb
+++ b/recipes/gnome/libgsf_1.14.16.bb
@@ -1,7 +1,7 @@
LICENSE = "GPL"
SECTION = "libs"
-DEPENDS= "libxml2 bzip2 glib-2.0 zlib gtk-doc libbonobo gnome-vfs"
+DEPENDS= "gtk+ libxml2 bzip2 glib-2.0 zlib gtk-doc libbonobo gnome-vfs"
RDEPENDS = "gconf gnome-vfs"
PACKAGES =+ "${PN}-gnome ${PN}-gnome-dev "
diff --git a/recipes/gnome/system-tools-backends_2.6.1.bb b/recipes/gnome/system-tools-backends_2.6.1.bb
index 23ccb240b9..08086188be 100644
--- a/recipes/gnome/system-tools-backends_2.6.1.bb
+++ b/recipes/gnome/system-tools-backends_2.6.1.bb
@@ -33,5 +33,4 @@ FILES_${PN} += " ${libdir}/pkgconfig"
FILES_${PN} += " ${datadir}/dbus-1/system-services"
FILES_${PN} += " ${datadir}/system-tools-backends-2.0/files"
FILES_${PN} += " ${datadir}/system-tools-backends-2.0/scripts"
-FILES_${PN} += " ${datadir}/system-tools-backends-2.0/modules"
diff --git a/recipes/gnuradio/gnuradio_git.bb b/recipes/gnuradio/gnuradio_git.bb
index 37b21fdcb2..03dfdb25e6 100644
--- a/recipes/gnuradio/gnuradio_git.bb
+++ b/recipes/gnuradio/gnuradio_git.bb
@@ -1,17 +1,23 @@
require gnuradio.inc
-#DEFAULT_PREFERENCE = "-1"
+DEFAULT_PREFERENCE = "-1"
DEPENDS += " gsl "
-SRCREV = "0cd478fdc090123e09b7ee21c88e5657abab8ae0"
-#SRCREV = "0f4226088ba84e25139bf77957c80ca7a64cba11"
-PR = "${INC_PR}.1"
+#SRCREV = "0cd478fdc090123e09b7ee21c88e5657abab8ae0"
+
+SRCREV = "bf7ad4d17514aba9fc5209bc916ce37482f77eaa"
+
+PR = "${INC_PR}.2"
PV = "3.2.1-${PR}+gitr${SRCREV}"
EXTRA_OECONF += "--with-boost=${STAGING_DIR_TARGET}/usr CXXFLAGS=-DBOOST_SP_USE_PTHREADS --disable-usrp2 --disable-usrp2-firmware --with-fusb-tech=libusb1"
-SRC_URI = "git://gnuradio.org/git/gnuradio.git;protocol=http \
+# Make it easy to test against developer repos and branches
+GIT_REPO = "balister.git"
+GIT_BRANCH = "omap3-build"
+
+SRC_URI = "git://gnuradio.org/git/${GIT_REPO};branch=${GIT_BRANCH};protocol=http \
${SOURCEFORGE_MIRROR}/libusb/libusb-0.1.12.tar.gz \
"
diff --git a/recipes/gnutls/gnutls-native_2.4.2.bb b/recipes/gnutls/gnutls-native_2.4.2.bb
new file mode 100644
index 0000000000..fb896cdb1b
--- /dev/null
+++ b/recipes/gnutls/gnutls-native_2.4.2.bb
@@ -0,0 +1,4 @@
+require gnutls_${PV}.bb
+
+inherit native
+
diff --git a/recipes/gob2/gob2_2.0.14.bb b/recipes/gob2/gob2_2.0.14.bb
index eca8d13795..86f2f0979e 100644
--- a/recipes/gob2/gob2_2.0.14.bb
+++ b/recipes/gob2/gob2_2.0.14.bb
@@ -12,6 +12,6 @@ do_compile_prepend() {
find ${S} -name Makefile | xargs sed -i 's~-I$(includedir)~-I${STAGING_INCDIR}~g'
}
-do_stage_append() {
+do_stage() {
install -m 0644 ${S}/gob2.m4 ${STAGING_DATADIR}/aclocal
}
diff --git a/recipes/gpe-bootsplash/files/no-strip-on-install.patch b/recipes/gpe-bootsplash/files/no-strip-on-install.patch
new file mode 100644
index 0000000000..8ad5c59555
--- /dev/null
+++ b/recipes/gpe-bootsplash/files/no-strip-on-install.patch
@@ -0,0 +1,11 @@
+--- gpe-bootsplash-1.15/Makefile.old 2005-11-04 23:46:57.000000000 +0100
++++ gpe-bootsplash-1.15/Makefile 2009-12-01 23:39:18.000000000 +0100
+@@ -19,7 +19,7 @@
+ mkdir -p $(DESTDIR)/etc/init.d
+ cp gpe-bootsplash.init $(DESTDIR)/etc/init.d/gpe-bootsplash
+ #install -m 644 $(SPLASH) $(DESTDIR)/usr/share/gpe/splash.png
+- install -s gpe-bootsplash $(DESTDIR)/usr/bin/
++ install gpe-bootsplash $(DESTDIR)/usr/bin/
+ ln -sf ../init.d/gpe-bootsplash $(DESTDIR)/etc/rcS.d/S00bootsplash
+
+ clean:
diff --git a/recipes/gpe-bootsplash/gpe-bootsplash_1.13.bb b/recipes/gpe-bootsplash/gpe-bootsplash_1.13.bb
index 6f54eadad0..54a35a4b6a 100644
--- a/recipes/gpe-bootsplash/gpe-bootsplash_1.13.bb
+++ b/recipes/gpe-bootsplash/gpe-bootsplash_1.13.bb
@@ -4,9 +4,11 @@ DEPENDS = "gtk+ librsvg"
SECTION = "gpe"
PRIORITY = "optional"
LICENSE = "GPL"
-PR = "r2"
+PR = "r3"
-SRC_URI += "file://splash-p.svg file://splash-l.svg"
+SRC_URI += "file://splash-p.svg \
+ file://splash-l.svg \
+ file://no-strip-on-install.patch;patch=1"
FILES_${PN} += "${datadir}/gpe"
diff --git a/recipes/gpe-bootsplash/gpe-bootsplash_1.14.bb b/recipes/gpe-bootsplash/gpe-bootsplash_1.14.bb
index 414041dbcb..9b27cdad83 100644
--- a/recipes/gpe-bootsplash/gpe-bootsplash_1.14.bb
+++ b/recipes/gpe-bootsplash/gpe-bootsplash_1.14.bb
@@ -4,12 +4,14 @@ DEPENDS = "gtk+ libsvg-cairo"
SECTION = "gpe"
PRIORITY = "optional"
LICENSE = "GPL"
-PR = "r6"
+PR = "r7"
SRC_URI += "file://splash-p.svg file://splash-l.svg \
file://c7x0-rotation.patch;patch=1 \
file://cxx0-rotation.patch;patch=1 \
- file://cairofix.patch;patch=1"
+ file://cairofix.patch;patch=1 \
+ file://no-strip-on-install.patch;patch=1"
+
SRC_URI_append_mnci = " file://mnci.patch;patch=1"
FILES_${PN} += "${datadir}/gpe"
diff --git a/recipes/gpe-bootsplash/gpe-bootsplash_1.15.bb b/recipes/gpe-bootsplash/gpe-bootsplash_1.15.bb
index c947587207..9e705fe8f8 100644
--- a/recipes/gpe-bootsplash/gpe-bootsplash_1.15.bb
+++ b/recipes/gpe-bootsplash/gpe-bootsplash_1.15.bb
@@ -4,11 +4,13 @@ DEPENDS = "gtk+ libsvg-cairo"
SECTION = "gpe"
PRIORITY = "optional"
LICENSE = "GPL"
-PR = "r9"
+PR = "r10"
SRC_URI += "file://splash-p.svg \
file://splash-l.svg \
- file://init.patch;patch=1"
+ file://init.patch;patch=1 \
+ file://no-strip-on-install.patch;patch=1"
+
FILES_${PN} += "${datadir}/gpe"
diff --git a/recipes/gpe-conf/gpe-conf_svn.bb b/recipes/gpe-conf/gpe-conf_svn.bb
index eeac6f9445..e18c8a8724 100644
--- a/recipes/gpe-conf/gpe-conf_svn.bb
+++ b/recipes/gpe-conf/gpe-conf_svn.bb
@@ -11,7 +11,7 @@ RDEPENDS_gpe-conf-panel = "gpe-conf"
inherit autotools gpe
-PV = "0.2.8+svnr${SRCREV}"
+PV = "0.2.8+svnr${SRCPV}"
PR = "r0"
SRC_URI = "${GPE_SVN}"
diff --git a/recipes/gpe-contacts/gpe-contacts_svn.bb b/recipes/gpe-contacts/gpe-contacts_svn.bb
index 9a626572a5..2050b60ca6 100644
--- a/recipes/gpe-contacts/gpe-contacts_svn.bb
+++ b/recipes/gpe-contacts/gpe-contacts_svn.bb
@@ -3,7 +3,7 @@ SECTION = "gpe"
LICENSE = "GPL"
DEPENDS = "libcontactsdb libgpewidget libgpepimc libdisplaymigration libgpevtype dbus"
RDEPENDS = "gpe-icons"
-PV = "0.47+svnr${SRCREV}"
+PV = "0.47+svnr${SRCPV}"
PR = "r2"
inherit autotools gpe
diff --git a/recipes/gpe-gallery/gpe-gallery_svn.bb b/recipes/gpe-gallery/gpe-gallery_svn.bb
index ea1d23a5be..8d7bf3a4ca 100644
--- a/recipes/gpe-gallery/gpe-gallery_svn.bb
+++ b/recipes/gpe-gallery/gpe-gallery_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "GPE image viewer application"
SECTION = "gpe"
LICENSE = "GPL"
DEPENDS = "libgpewidget"
-PV = "0.97+svnr${SRCREV}"
+PV = "0.97+svnr${SRCPV}"
inherit autotools
export CVSBUILD = "no"
diff --git a/recipes/gpe-mini-browser/gpe-mini-browser2_svn.bb b/recipes/gpe-mini-browser/gpe-mini-browser2_svn.bb
index ae3a32c8f5..b919e1af13 100644
--- a/recipes/gpe-mini-browser/gpe-mini-browser2_svn.bb
+++ b/recipes/gpe-mini-browser/gpe-mini-browser2_svn.bb
@@ -1,5 +1,5 @@
DEPENDS = "gtk+ glib-2.0 libgpewidget webkit-gtk"
-PV = "0.0.1+svnr${SRCREV}"
+PV = "0.0.1+svnr${SRCPV}"
PR = "r0"
SRCREV = "9819"
diff --git a/recipes/gpe-sketchbook/gpe-sketchbook_0.2.9.bb b/recipes/gpe-sketchbook/gpe-sketchbook_0.2.9.bb
index 488e32f55b..312df2a044 100644
--- a/recipes/gpe-sketchbook/gpe-sketchbook_0.2.9.bb
+++ b/recipes/gpe-sketchbook/gpe-sketchbook_0.2.9.bb
@@ -1,8 +1,11 @@
DEPENDS = "libgpewidget sqlite"
+RDEPENDS = "gpe-icons"
LICENSE = "GPL"
DESCRIPTION = "A GPE notebook to sketch your notes"
export CVSBUILD = "no"
+PR = "r1"
+
inherit gpe pkgconfig
CFLAGS +="-D_GNU_SOURCE"
diff --git a/recipes/gpe-sketchbook/gpe-sketchbook_svn.bb b/recipes/gpe-sketchbook/gpe-sketchbook_svn.bb
index 929d622a51..f52f58d020 100644
--- a/recipes/gpe-sketchbook/gpe-sketchbook_svn.bb
+++ b/recipes/gpe-sketchbook/gpe-sketchbook_svn.bb
@@ -3,7 +3,7 @@ SECTION = "gpe"
PRIORITY = "optional"
LICENSE = "GPL"
DEPENDS = "libgpewidget sqlite"
-PV = "0.2.9+svnr${SRCREV}"
+PV = "0.2.9+svnr${SRCPV}"
DEFAULT_PREFERENCE = "-1"
diff --git a/recipes/gphoto2/gphoto2_2.4.7.bb b/recipes/gphoto2/gphoto2_2.4.7.bb
new file mode 100644
index 0000000000..8af31d15dc
--- /dev/null
+++ b/recipes/gphoto2/gphoto2_2.4.7.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "gphoto2 is a command-line utility to fetch pictures from digital cameras"
+SECTION = "console/utils"
+LICENSE = "GPL"
+DEPENDS = "libtool libgphoto2 popt"
+PR = "r0"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/gphoto/gphoto2-${PV}.tar.bz2\
+ file://gphoto-popt-fixup.patch;patch=1"
+
+inherit autotools
+
+do_configure_append() {
+ find ${S} -name Makefile | xargs sed -i 's:/usr/include:${STAGING_INCDIR}:'
+}
+
diff --git a/recipes/gphoto2/libgphoto2_2.4.7.bb b/recipes/gphoto2/libgphoto2_2.4.7.bb
new file mode 100644
index 0000000000..45d42c398c
--- /dev/null
+++ b/recipes/gphoto2/libgphoto2_2.4.7.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "libgphoto2 allows you to access digital cameras"
+SECTION = "libs"
+LICENSE = "GPL"
+DEPENDS = "libtool jpeg virtual/libusb0 libexif"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/gphoto/libgphoto2-${PV}.tar.bz2"
+
+inherit autotools pkgconfig lib_package
+
+OE_LT_RPATH_ALLOW=":${libdir}:"
+OE_LT_RPATH_ALLOW[export]="1"
+
+EXTRA_OECONF = " --with-drivers=all ac_cv_lib_ltdl_lt_dlcaller_register=yes"
+
+PACKAGES =+ "libgphotoport libgphoto2-camlibs"
+FILES_libgphoto2-camlibs = "${libdir}/libgphoto2*/*/*.so*"
+RDEPENDS_${PN} = "libgphoto2-camlibs"
+
+FILES_libgphotoport = "${libdir}/libgphoto2_port.so.*"
+
+FILES_${PN} += "${libdir}/udev/*"
+FILES_${PN}-dbg += "${libdir}/*/*/.debug"
+
+
+
diff --git a/recipes/gpsd/gpsd.inc b/recipes/gpsd/gpsd.inc
index 1022091c6c..0bd2b207f5 100644
--- a/recipes/gpsd/gpsd.inc
+++ b/recipes/gpsd/gpsd.inc
@@ -19,7 +19,7 @@ SRC_URI_append_om-gta01 = " \
file://restart_gllin.sh \
"
-inherit autotools update-rc.d
+inherit autotools_stage update-rc.d
INITSCRIPT_NAME = "gpsd"
INITSCRIPT_PARAMS = "defaults 35"
@@ -39,12 +39,6 @@ do_install_prepend() {
export HOST_SYS="${HOST_SYS}"
}
-do_stage() {
- oe_libinstall -so libgps ${STAGING_LIBDIR}
- install -m 0644 ${S}/gps.h ${STAGING_INCDIR}
- install -m 0644 ${S}/gpsd.h ${STAGING_INCDIR}
-}
-
do_install_append() {
install -d ${D}/${sysconfdir}/init.d
install -d ${D}/dev
diff --git a/recipes/gpsd/gpsd_2.38.bb b/recipes/gpsd/gpsd_2.38.bb
index 95260ff2be..fb7f57d980 100644
--- a/recipes/gpsd/gpsd_2.38.bb
+++ b/recipes/gpsd/gpsd_2.38.bb
@@ -1,5 +1,5 @@
require gpsd.inc
-PR = "r0"
+PR = "r1"
# make attempts to link gpspacket.so without waiting for all compiler tasks:
PARALLEL_MAKE = ""
diff --git a/recipes/grun/grun_0.9.3.bb b/recipes/grun/grun_0.9.3.bb
new file mode 100644
index 0000000000..e407a923d4
--- /dev/null
+++ b/recipes/grun/grun_0.9.3.bb
@@ -0,0 +1,20 @@
+HOMEPAGE = "http://code.google.com/p/grun/"
+DESCRIPTION = "gRun is a GTK based Run dialog that closely resembles the Windows Run dialog, just like xexec. It has a intelligent history mechanism and a dual level fork() mechanism for launching the application in its own process. gRun also has support for launching console mode application in an XTerm as well as associations for file types."
+SECTION = "x11/applications"
+LICENSE = "GPL"
+PR = "r1"
+
+DEPENDS = "gtk+"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${P}.tar.gz"
+SRC_URI = "http://grun.googlecode.com/files/grun-${PV}.tar.gz"
+
+inherit autotools
+
+
+
+
+
+
+
+
diff --git a/recipes/gsm/gsmd.inc b/recipes/gsm/gsmd.inc
index 4ce23d51f5..453a8b3ac8 100644
--- a/recipes/gsm/gsmd.inc
+++ b/recipes/gsm/gsmd.inc
@@ -4,7 +4,7 @@ LICENSE = "GPL LGPL"
SECTION = "libs/gsm"
PROVIDES += "gsmd"
RPROVIDES_${PN} = "libgsmd0 libgsmd gsmd gsmd-devel"
-PV = "0.1+svnr${SRCREV}"
+PV = "0.1+svnr${SRCPV}"
PR = "r44"
SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gsm;proto=http \
diff --git a/recipes/gstreamer/gst-plugins-base_0.10.25.bb b/recipes/gstreamer/gst-plugins-base_0.10.25.bb
index 5862a65eb2..2b33c23c3a 100644
--- a/recipes/gstreamer/gst-plugins-base_0.10.25.bb
+++ b/recipes/gstreamer/gst-plugins-base_0.10.25.bb
@@ -1,6 +1,6 @@
require gst-plugins.inc
-PR = "${INC_PR}.0"
+PR = "${INC_PR}.1"
PROVIDES += "gst-plugins"
@@ -8,5 +8,5 @@ PROVIDES += "gst-plugins"
# if alsa has been built and is present. You will
# not get an error if this is not present, just
# a missing alsa plugin
-DEPENDS += "pango libtheora alsa-lib libsm virtual/libx11 freetype gnome-vfs libxv"
+DEPENDS += "cdparanoia pango libtheora alsa-lib libsm virtual/libx11 freetype gnome-vfs libxv"
diff --git a/recipes/gstreamer/gst-plugins-good_0.10.15.bb b/recipes/gstreamer/gst-plugins-good_0.10.15.bb
index 5913a447e7..57ff59ba99 100644
--- a/recipes/gstreamer/gst-plugins-good_0.10.15.bb
+++ b/recipes/gstreamer/gst-plugins-good_0.10.15.bb
@@ -1,13 +1,13 @@
require gst-plugins.inc
-PR = "r4"
+PR = "r6"
SRC_URI += "file://fix-unit-scale-asseration.patch;patch=1"
OE_ALLOW_INSECURE_DOWNLOADS = "1"
inherit gconf
-DEPENDS += "gst-plugins-base openssl popt esound"
+DEPENDS += "libsoup-2.4 flac gst-plugins-base openssl popt esound"
PACKAGES =+ "gst-plugin-gconfelements"
FILES_gst-plugin-gconfelements += "${sysconfdir}/gconf"
diff --git a/recipes/gtk-engines/gtk-sato-engine_svn.bb b/recipes/gtk-engines/gtk-sato-engine_svn.bb
index 6fbb7ccdbc..120d3f4a1a 100644
--- a/recipes/gtk-engines/gtk-sato-engine_svn.bb
+++ b/recipes/gtk-engines/gtk-sato-engine_svn.bb
@@ -1,6 +1,6 @@
require gtk-sato-engine.inc
-PV = "0.3.1+svnr${SRCREV}"
+PV = "0.3.1+svnr${SRCPV}"
SRC_URI = "svn://svn.o-hand.com/repos/sato/trunk;module=gtk-engine;proto=http"
diff --git a/recipes/gtk-webcore/midori/config b/recipes/gtk-webcore/midori/config
new file mode 100644
index 0000000000..7b6991d063
--- /dev/null
+++ b/recipes/gtk-webcore/midori/config
@@ -0,0 +1,4 @@
+
+[settings]
+enforce-96-dpi=true
+toolbar-items=Back,Forward,ReloadStop,Fullscreen,Location,Panel,
diff --git a/recipes/gtk-webcore/midori/ua-iphone-0.1.10.patch b/recipes/gtk-webcore/midori/ua-iphone-0.1.10.patch
new file mode 100644
index 0000000000..b2541a5edb
--- /dev/null
+++ b/recipes/gtk-webcore/midori/ua-iphone-0.1.10.patch
@@ -0,0 +1,34 @@
+diff -Nur o/midori/midori-websettings.c n/midori/midori-websettings.c
+--- o/midori/midori-websettings.c 2009-09-12 00:09:38.000000000 +0200
++++ n/midori/midori-websettings.c 2009-09-14 13:55:12.000000000 +0200
+@@ -285,6 +285,7 @@
+ {
+ static const GEnumValue values[] = {
+ { MIDORI_IDENT_MIDORI, "MIDORI_IDENT_MIDORI", N_("Midori") },
++ { MIDORI_IDENT_IPHONE, "MIDORI_IDENT_IPHONE", N_("iPhone") },
+ { MIDORI_IDENT_SAFARI, "MIDORI_IDENT_SAFARI", N_("Safari") },
+ { MIDORI_IDENT_FIREFOX, "MIDORI_IDENT_FIREFOX", N_("Firefox") },
+ { MIDORI_IDENT_EXPLORER, "MIDORI_IDENT_EXPLORER", N_("Internet Explorer") },
+@@ -1118,6 +1119,11 @@
+ case MIDORI_IDENT_MIDORI:
+ return g_strdup_printf ("%s (%s; %s; U; %s) %s",
+ appname, platform, os, lang, webcore);
++ case MIDORI_IDENT_IPHONE:
++ return g_strdup_printf ("Mozilla/5.0 (iPhone; U; %s; %s) "
++ "AppleWebKit/532+ (KHTML, like Gecko) Version/3.0 Mobile/1A538b "
++ "Safari/419.3 %s",
++ os, lang, appname);
+ case MIDORI_IDENT_SAFARI:
+ return g_strdup_printf ("Mozilla/5.0 (%s; U; %s; %s) "
+ "AppleWebKit/532+ (KHTML, like Gecko) Safari/%s %s",
+diff -Nur o/midori/midori-websettings.h n/midori/midori-websettings.h
+--- -o/midori/midori-websettings.h 2009-09-12 00:09:38.000000000 +0200
++++ n/midori/midori-websettings.h 2009-09-14 13:55:14.000000000 +0200
+@@ -132,6 +132,7 @@
+ typedef enum
+ {
+ MIDORI_IDENT_MIDORI,
++ MIDORI_IDENT_IPHONE,
+ MIDORI_IDENT_SAFARI,
+ MIDORI_IDENT_FIREFOX,
+ MIDORI_IDENT_EXPLORER,
diff --git a/recipes/gtk-webcore/midori_0.1.10.bb b/recipes/gtk-webcore/midori_0.1.10.bb
index 06d8964082..9d1f1dcec8 100644
--- a/recipes/gtk-webcore/midori_0.1.10.bb
+++ b/recipes/gtk-webcore/midori_0.1.10.bb
@@ -1,9 +1,15 @@
require midori.inc
+PR = "r2"
+
DEPENDS += "python-native python-docutils-native"
SRC_URI = "http://archive.xfce.org/src/apps/midori/0.1/midori-${PV}.tar.bz2 \
- file://waf"
+ file://waf \
+ "
+
+SRC_URI_append_shr = "file://ua-iphone-0.1.10.patch;patch=1 \
+ file://config"
do_configure() {
cp -f ${WORKDIR}/waf ${S}/
@@ -27,5 +33,8 @@ do_configure() {
echo "LINK_CC = '${CXX}'" >> ./_build_/c4che/default.cache.py
}
-
+do_install_append_shr() {
+ install -d ${D}${sysconfdir}/xdg/midori
+ install -m 0644 ${WORKDIR}/config ${D}${sysconfdir}/xdg/midori
+}
diff --git a/recipes/gtk-webcore/midori_0.2.1.bb b/recipes/gtk-webcore/midori_0.2.1.bb
new file mode 100644
index 0000000000..3eaf0f0bf8
--- /dev/null
+++ b/recipes/gtk-webcore/midori_0.2.1.bb
@@ -0,0 +1,38 @@
+require midori.inc
+
+DEPENDS += "python-native python-docutils-native"
+
+SRC_URI = "http://archive.xfce.org/src/apps/midori/0.2/midori-${PV}.tar.bz2 \
+ file://waf"
+
+SRC_URI_append_shr = " file://config "
+
+PR = "r1"
+
+do_configure() {
+ cp -f ${WORKDIR}/waf ${S}/
+ sed -i -e 's:, shell=False::g' wscript
+ ./configure \
+ --prefix=${prefix} \
+ --bindir=${bindir} \
+ --sbindir=${sbindir} \
+ --libexecdir=${libexecdir} \
+ --datadir=${datadir} \
+ --sysconfdir=${sysconfdir} \
+ --sharedstatedir=${sharedstatedir} \
+ --localstatedir=${localstatedir} \
+ --libdir=${libdir} \
+ --includedir=${includedir} \
+ --infodir=${infodir} \
+ --mandir=${mandir} \
+ ${EXTRA_OECONF}
+
+ sed -i /LINK_CC/d ./_build_/c4che/default.cache.py
+ echo "LINK_CC = '${CXX}'" >> ./_build_/c4che/default.cache.py
+}
+
+do_install_append_shr() {
+ install -d ${D}${sysconfdir}/xdg/midori
+ install -m 0644 ${WORKDIR}/config ${D}${sysconfdir}/xdg/midori
+}
+
diff --git a/recipes/gtk-webcore/midori_git.bb b/recipes/gtk-webcore/midori_git.bb
index decc81c365..e1e2ecf99d 100644
--- a/recipes/gtk-webcore/midori_git.bb
+++ b/recipes/gtk-webcore/midori_git.bb
@@ -6,7 +6,7 @@ DEPENDS += "python-native python-docutils-native"
PR = "r2"
PV = "0.1.7+${PR}+gitr${SRCREV}"
-SRC_URI = "git://git.xfce.org/kalikiana/midori;protocol=git \
+SRC_URI = "git://git.xfce.org/apps/midori;protocol=git \
file://waf \
file://wscript-fix.patch;patch=1"
diff --git a/recipes/gtk-webcore/osb-browser_svn.bb b/recipes/gtk-webcore/osb-browser_svn.bb
index 912215cfbd..aae279979c 100644
--- a/recipes/gtk-webcore/osb-browser_svn.bb
+++ b/recipes/gtk-webcore/osb-browser_svn.bb
@@ -5,7 +5,7 @@ PRIORITY = "optional"
LICENSE = "GPL"
DEPENDS = "osb-nrcit gtk+ glib-2.0 libglade"
RRECOMMENDS = "gdk-pixbuf-loader-gif gdk-pixbuf-loader-ico gdk-pixbuf-loader-jpeg gdk-pixbuf-loader-png"
-PV = "0.5.0+svnr${SRCREV}"
+PV = "0.5.0+svnr${SRCPV}"
PR = "r0"
inherit autotools
diff --git a/recipes/gtk-webcore/osb-jscore_svn.bb b/recipes/gtk-webcore/osb-jscore_svn.bb
index 554ab5b96d..52c56f98b5 100644
--- a/recipes/gtk-webcore/osb-jscore_svn.bb
+++ b/recipes/gtk-webcore/osb-jscore_svn.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://gtk-webcore.sourceforge.net/"
LICENSE = "GPL"
PRIORITY = "optional"
-PV = "0.5.2+svnr${SRCREV}"
+PV = "0.5.2+svnr${SRCPV}"
PR = "r1"
SRC_URI = "svn://gtk-webcore.svn.sourceforge.net/svnroot/gtk-webcore/trunk;module=JavaScriptCore;proto=https \
diff --git a/recipes/gtk-webcore/osb-nrcit_svn.bb b/recipes/gtk-webcore/osb-nrcit_svn.bb
index 57bb096183..dea075b099 100644
--- a/recipes/gtk-webcore/osb-nrcit_svn.bb
+++ b/recipes/gtk-webcore/osb-nrcit_svn.bb
@@ -4,7 +4,7 @@ LICENSE = "nokia"
PRIORITY = "optional"
SECTION = "gpe"
-PV = "0.5.2+svnr${SRCREV}"
+PV = "0.5.2+svnr${SRCPV}"
PR = "r1"
DEPENDS = "curl librsvg osb-nrcore pango"
diff --git a/recipes/gtk-webcore/osb-nrcore_svn.bb b/recipes/gtk-webcore/osb-nrcore_svn.bb
index b85c06e422..e0f7c887df 100644
--- a/recipes/gtk-webcore/osb-nrcore_svn.bb
+++ b/recipes/gtk-webcore/osb-nrcore_svn.bb
@@ -1,6 +1,6 @@
require osb-nrcore.inc
-PV = "0.5.2+svnr${SRCREV}"
+PV = "0.5.2+svnr${SRCPV}"
PR = "r3"
SRC_URI = "svn://gtk-webcore.svn.sourceforge.net/svnroot/gtk-webcore/trunk;module=NRCore;proto=https \
diff --git a/recipes/gtkhtml2/gtkhtml2_svn.bb b/recipes/gtkhtml2/gtkhtml2_svn.bb
index 1798fcf1df..18dfdd0036 100644
--- a/recipes/gtkhtml2/gtkhtml2_svn.bb
+++ b/recipes/gtkhtml2/gtkhtml2_svn.bb
@@ -2,7 +2,7 @@ SECTION = "libs"
DEPENDS = "gtk+ glib-2.0 libxml2"
DESCRIPTION = "A GTK+ HTML rendering library."
LICENSE = "GPL"
-PV = "2.11.0+svnr${SRCREV}"
+PV = "2.11.0+svnr${SRCPV}"
SRC_URI = "svn://anonymous@svn.gnome.org/svn/gtkhtml2/;module=trunk \
http://svn.o-hand.com/repos/web/trunk/patches/at-import_box-pos.patch;patch=1;pnum=0;maxrev=1157 \
diff --git a/recipes/guile/files/cpp-linemarkers.patch b/recipes/guile/files/cpp-linemarkers.patch
new file mode 100644
index 0000000000..3e48932a3c
--- /dev/null
+++ b/recipes/guile/files/cpp-linemarkers.patch
@@ -0,0 +1,8 @@
+--- guile.orig/libguile/guile-snarf-docs.in 2009-07-03 18:19:00.000000000 -0400
++++ guile/libguile/guile-snarf-docs.in 2009-11-19 12:55:32.487266268 -0500
+@@ -23,4 +23,4 @@
+ ## Let the user override the preprocessor autoconf found.
+ test -n "${CPP+set}" || CPP="@CPP@"
+
+-${CPP} -DSCM_MAGIC_SNARF_DOCS "$@"
++${CPP} -P -DSCM_MAGIC_SNARF_DOCS "$@"
diff --git a/recipes/guile/guile-native.inc b/recipes/guile/guile-native.inc
index 28cb2e0f15..831e088134 100644
--- a/recipes/guile/guile-native.inc
+++ b/recipes/guile/guile-native.inc
@@ -6,126 +6,6 @@ inherit autotools native
S="${WORKDIR}/guile-${PV}"
-OE_LT_RPATH_ALLOW = "any"
-LDFLAGS += " -L${STAGING_LIBDIR} "
-
-LIBGUILE_HEADERS = "\
-__scm.h \
-alist.h \
-arbiters.h \
-async.h \
-backtrace.h \
-boolean.h \
-chars.h \
-continuations.h \
-debug-malloc.h \
-debug.h \
-deprecation.h \
-dynl.h \
-dynwind.h \
-environments.h \
-eq.h \
-error.h \
-eval.h \
-evalext.h \
-extensions.h \
-feature.h \
-filesys.h \
-fluids.h \
-fports.h \
-gc.h \
-gdb_interface.h \
-gdbint.h \
-goops.h \
-gsubr.h \
-guardians.h \
-hash.h \
-hashtab.h \
-hooks.h \
-init.h \
-ioext.h \
-iselect.h \
-keywords.h \
-lang.h \
-list.h \
-load.h \
-macros.h \
-mallocs.h \
-modules.h \
-net_db.h \
-numbers.h \
-objects.h \
-objprop.h \
-options.h \
-pairs.h \
-ports.h \
-posix.h \
-print.h \
-procprop.h \
-procs.h \
-properties.h \
-ramap.h \
-random.h \
-rdelim.h \
-read.h \
-regex-posix.h \
-root.h \
-rw.h \
-scmconfig.h \
-scmsigs.h \
-script.h \
-simpos.h \
-smob.h \
-snarf.h \
-socket.h \
-sort.h \
-srcprop.h \
-stackchk.h \
-stacks.h \
-stime.h \
-strings.h \
-strorder.h \
-strports.h \
-struct.h \
-symbols.h \
-tags.h \
-threads.h \
-throw.h \
-unif.h \
-validate.h \
-values.h \
-variable.h \
-vectors.h \
-version.h \
-vports.h \
-weaks.h \
-"
-
-do_stage() {
- install -d ${STAGING_INCDIR}/libguile
- for i in ${LIBGUILE_HEADERS}; do
- install -m 0644 libguile/$i ${STAGING_INCDIR}/libguile/$i
- done
-
- install -d ${STAGING_BINDIR_NATIVE}
- install -m 0755 ${S}/libguile/.libs/guile ${STAGING_BINDIR_NATIVE}/
-
- install -m 0644 libguile.h ${STAGING_INCDIR}/libguile.h
- install -d ${STAGING_INCDIR}/guile
- install -m 0644 libguile/gh.h ${STAGING_INCDIR}/guile/
- install -d ${STAGING_INCDIR}/guile/srfi
- install -d ${STAGING_INCDIR}/guile-readline
- install -m 0644 guile-readline/readline.h ${STAGING_INCDIR}/guile-readline/
- install -d ${STAGING_DATADIR}/aclocal
- install -m 0644 guile-config/guile.m4 ${STAGING_DATADIR}/aclocal
-
- install -d ${STAGING_DATADIR}/guile/1.8
- cp -pPr ${S}/ice-9 ${STAGING_DATADIR}/guile/1.8/
-
- oe_libinstall -C guile-readline -so -a libguilereadline-v-17 ${STAGING_LIBDIR}
- oe_libinstall -C libguile -so -a libguile ${STAGING_LIBDIR}
-}
-
do_configure_append() {
find ${S} -name Makefile | xargs sed -i s:'-Werror':'':g
}
diff --git a/recipes/guile/guile-native_1.8.5.bb b/recipes/guile/guile-native_1.8.5.bb
index 9c2eb13d8d..5c999dbade 100644
--- a/recipes/guile/guile-native_1.8.5.bb
+++ b/recipes/guile/guile-native_1.8.5.bb
@@ -4,6 +4,7 @@ DEPENDS = "libtool (< 2)"
SRC_URI = "http://ftp.gnu.org/pub/gnu/guile/guile-${PV}.tar.gz \
file://configure-fix.patch;patch=1 \
+ file://cpp-linemarkers.patch;patch=1 \
"
PR = "r1"
diff --git a/recipes/guile/guile-native_1.8.6.bb b/recipes/guile/guile-native_1.8.6.bb
index d511807e09..2f87c482ca 100644
--- a/recipes/guile/guile-native_1.8.6.bb
+++ b/recipes/guile/guile-native_1.8.6.bb
@@ -1,4 +1,5 @@
require guile-native.inc
SRC_URI = "http://ftp.gnu.org/pub/gnu/guile/guile-${PV}.tar.gz \
file://configure-fix.patch;patch=1 \
+ file://cpp-linemarkers.patch;patch=1 \
"
diff --git a/recipes/guile/guile-native_1.8.7.bb b/recipes/guile/guile-native_1.8.7.bb
new file mode 100644
index 0000000000..2f87c482ca
--- /dev/null
+++ b/recipes/guile/guile-native_1.8.7.bb
@@ -0,0 +1,5 @@
+require guile-native.inc
+SRC_URI = "http://ftp.gnu.org/pub/gnu/guile/guile-${PV}.tar.gz \
+ file://configure-fix.patch;patch=1 \
+ file://cpp-linemarkers.patch;patch=1 \
+ "
diff --git a/recipes/guile/guile_1.8.7.bb b/recipes/guile/guile_1.8.7.bb
new file mode 100644
index 0000000000..6889f33042
--- /dev/null
+++ b/recipes/guile/guile_1.8.7.bb
@@ -0,0 +1,6 @@
+require guile.inc
+
+SRC_URI = "http://ftp.gnu.org/pub/gnu/guile/guile-${PV}.tar.gz \
+ file://configure-fix.patch;patch=1 \
+ "
+
diff --git a/recipes/gypsy/gypsy_svn.bb b/recipes/gypsy/gypsy_svn.bb
index 1fcc47e828..8dac863a2b 100644
--- a/recipes/gypsy/gypsy_svn.bb
+++ b/recipes/gypsy/gypsy_svn.bb
@@ -5,5 +5,5 @@ SRC_URI = "svn://svn.o-hand.com/repos/${PN}/trunk;module=${PN};proto=http \
file://docs-reference-am.patch;patch=1;minrev=134"
S = "${WORKDIR}/${PN}"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR = "r1"
diff --git a/recipes/helloworld/helloworld_1.0.0.bb b/recipes/helloworld/helloworld_1.0.0.bb
index af29a7769a..83b3965960 100644
--- a/recipes/helloworld/helloworld_1.0.0.bb
+++ b/recipes/helloworld/helloworld_1.0.0.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Minimal statically compiled Hello world!"
LICENSE = "GPL"
-PR = "r0"
+PR = "r1"
S = "${WORKDIR}/${P}"
@@ -11,7 +11,8 @@ do_fetch () {
}
do_compile () {
- ${CC} -o helloworld helloworld.c -static
+ ${CC} ${CFLAGS} -c -o helloworld.o helloworld.c
+ ${CC} ${LDFLAGS} -o helloworld helloworld.o -static
}
do_install () {
diff --git a/recipes/help2man/help2man_1.36.4.bb b/recipes/help2man/help2man_1.36.4.bb
new file mode 100644
index 0000000000..a88fbb8be3
--- /dev/null
+++ b/recipes/help2man/help2man_1.36.4.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "GNU utility to convert program --help output to a man page"
+HOMEPAGE = "http://www.gnu.org/software/help2man"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+DEPENDS = "gettext-native perl-native liblocale-gettext-perl-native"
+RDEPENDS = "gettext perl liblocale-gettext-perl"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+SRC_URI = "${GNU_MIRROR}/help2man/${P}.tar.gz"
+
+inherit autotools
+
+PR = "r0"
+
+EXTRA_OECONF += "PERL=/usr/bin/perl"
+
+do_configure () {
+ oe_runconf
+}
+
+FILES_${PN} += "/usr/lib/hacklocaledir.so"
diff --git a/recipes/icu/icu_3.6.bb b/recipes/icu/icu_3.6.bb
index 3eccfb53d9..56a70a2f1d 100644
--- a/recipes/icu/icu_3.6.bb
+++ b/recipes/icu/icu_3.6.bb
@@ -37,9 +37,11 @@ do_stage() {
autotools_stage_all
}
-# We need to append this so it runs *after* binconfig.do_stage
-do_stage_append() {
- sed -i -e s:^prefix=:prefix=\"${STAGING_DIR_TARGET}/usr\": ${STAGING_BINDIR_CROSS}/icu-config
+SYSROOT_PREPROCESS_FUNCS += "icu_sysroot_preprocess"
+
+# We need to append this so it runs *after* binconfig's preprocess function
+icu_sysroot_preprocess () {
+ sed -i -e s:^prefix=:prefix=\"${STAGING_DIR_TARGET}/usr\": ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}/icu-config
}
diff --git a/recipes/images/shr-image.bb b/recipes/images/shr-image.bb
new file mode 100644
index 0000000000..e889f2dfb9
--- /dev/null
+++ b/recipes/images/shr-image.bb
@@ -0,0 +1,30 @@
+require shr-image.inc
+
+IMAGE_BASENAME = "full"
+
+DEPENDS += "task-shr"
+RDEPENDS += "\
+ task-shr-apps \
+ task-shr-games \
+ task-shr-gtk \
+"
+
+IMAGE_INSTALL += "\
+ task-shr-apps \
+ task-shr-games \
+ task-shr-gtk \
+"
+
+# perform some SHR convenience tweaks to the rootfs
+shr_rootfs_postprocess_append() {
+ curdir=$PWD
+ cd ${IMAGE_ROOTFS}
+
+
+ #Replace desktop files
+ echo "Icon=pidgin.png" >> ./usr/share/applications/pidgin.desktop
+ sed -i "s/^X-Icon-path.*$//g" ./usr/share/applications/vagalume.desktop
+
+ cd $curdir
+}
+
diff --git a/recipes/images/shr-image.inc b/recipes/images/shr-image.inc
new file mode 100644
index 0000000000..ac2053737e
--- /dev/null
+++ b/recipes/images/shr-image.inc
@@ -0,0 +1,158 @@
+#------------------------------------------------------
+# SHR Image Recipe
+#------------------------------------------------------
+
+PV = "2.0"
+PR = "r10"
+
+
+DEPENDS += "task-shr-minimal"
+
+RDEPENDS += "\
+ ${MACHINE_TASK_PROVIDER} \
+ task-base \
+ task-shr-minimal-base \
+ task-shr-minimal-cli \
+ task-shr-minimal-fso \
+ task-shr-minimal-apps \
+ task-shr-minimal-audio \
+ task-shr-minimal-gtk \
+ task-shr-minimal-x \
+ task-x11-illume \
+ task-fso2-compliance \
+ task-fonts-truetype-core \
+"
+
+IMAGE_INSTALL += "\
+ ${MACHINE_TASK_PROVIDER} \
+ task-base \
+ task-shr-minimal-base \
+ task-shr-minimal-cli \
+ task-shr-minimal-apps \
+ task-shr-minimal-audio \
+ task-shr-minimal-gtk \
+ task-shr-minimal-x \
+ task-x11-illume \
+ task-fso2-compliance \
+ task-fonts-truetype-core \
+"
+
+inherit image
+
+# perform some SHR convenience tweaks to the rootfs
+shr_rootfs_postprocess() {
+ dirs=`find ${FILESDIR} -type d -printf "%P\n" | grep -v "^.$" | grep -v ".git"`
+ for dir in $dirs; do
+ mkdir -p ${IMAGE_ROOTFS}/$dir
+ done
+ files=`find ${FILESDIR} -type f -printf "%P\n" | grep -v ".git"`
+ for file in $files; do
+ cp -f ${FILESDIR}/$file ${IMAGE_ROOTFS}/$file
+ done
+
+ curdir=$PWD
+ cd ${IMAGE_ROOTFS}
+ # date/time
+ date "+%m%d%H%M%Y" >./etc/timestamp
+ # alias foo
+ echo "alias pico=nano" >>./etc/profile
+ echo "alias fso='cd /local/pkg/fso'" >>./etc/profile
+ echo "alias ipkg='opkg'" >>./etc/profile
+ # dns
+ echo "nameserver 208.67.222.222" >./etc/resolv.conf
+ echo "nameserver 208.67.220.220" >>./etc/resolv.conf
+ # nfs
+ mkdir -p ./local/pkg
+ echo >>./etc/fstab
+ echo "# NFS Host" >>./etc/fstab
+ echo "192.168.0.200:/local/pkg /local/pkg nfs noauto,nolock,soft,rsize=32768,wsize=32768 0 0" >>./etc/fstab
+
+ # minimal gtk theme foo
+ # this should be set in postinst phase of installed gtk-theme package
+ #mkdir -p ./etc/gtk-2.0/
+ #echo 'gtk-font-name = "Sans 5"' >> ./etc/gtk-2.0/gtkrc.default
+ #echo 'gtk-theme-name = "shr-theme-gtk-e17lookalike"' >> ./etc/gtk-2.0/gtkrc.default
+ #echo 'gtk-icon-theme-name = "openmoko-standard"' >> ./etc/gtk-2.0/gtkrc.default
+ #echo 'style "treeview"' >> ./etc/gtk-2.0/gtkrc.default
+ #echo '{ ' >> ./etc/gtk-2.0/gtkrc.default
+ #echo ' GtkTreeView::expander-size = 40' >> ./etc/gtk-2.0/gtkrc.default
+ #echo '}' >> ./etc/gtk-2.0/gtkrc.default
+ #echo 'widget_class "*TreeView*" style "treeview"' >> ./etc/gtk-2.0/gtkrc.default
+ #update-alternatives --install /etc/gtk-2.0/gtkrc gtk-theme /etc/gtk-2.0/gtkrc.default 1
+
+ # elementary theme foo
+ ELM_PROFILE_SCR=./etc/profile.d/elementary.sh
+ echo 'export ELM_ENGINE=x11' > ${ELM_PROFILE_SCR}
+ echo 'export ELM_THEME=gry' >> ${ELM_PROFILE_SCR}
+ echo 'export ELM_SCALE=2' >> ${ELM_PROFILE_SCR}
+ echo 'export ELM_FINGER_SIZE=70' >> ${ELM_PROFILE_SCR}
+ chmod +x ${ELM_PROFILE_SCR}
+
+ echo '' >> ./etc/ld.so.conf
+ # fix strange iconv/gconf bug
+ ln -s libc.so.6 ./lib/libc.so
+
+ #font cache optimization, persistent cache
+ sed -i "s/<cachedir>.*\/var\/cache\/\(.*\)<\/cachedir>/<cachedir>\/var\/local\/\1<\/cachedir>/g" ./etc/fonts/fonts.conf
+
+ #set up a nice gentoo-like PS1
+ echo "export PS1=\"\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] \"">> ./etc/profile
+
+ #load modules on boot
+ [ -d ./etc/modutils ] || mkdir ./etc/modutils
+ # FIXME: do load those modules through module_autoload in
+ # machine config or distro config
+ echo "ppp_generic" > ./etc/modutils/ppp_generic
+
+ #set up some variables to improve default settings
+ echo "if [ \"\$DISPLAY\" = \"\" ]" >> ./etc/profile
+ echo "then" >> ./etc/profile
+ echo " export DISPLAY=localhost:0" >> ./etc/profile
+ echo "fi" >> ./etc/profile
+ echo "export HISTFILESIZE=1000" >> ./etc/profile
+ echo "export HISTSIZE=1000" >> ./etc/profile
+ echo "alias rm='rm -i'; alias cp='cp -i'; alias mv='mv -i'" >> ./etc/profile
+ echo "alias la='ls $LS_OPTIONS -ltrA'; alias lh='ls $LS_OPTIONS -ltrh'; alias lr='ls $LS_OPTIONS -ltr';" >> ./etc/profile
+ echo "alias lR='ls $LS_OPTIONS -ltrR'" >> ./etc/profile
+ echo "# set your locale here:" >> ./etc/profile
+ echo "export LANG=en_US.UTF-8" >> ./etc/profile
+
+ # Add some missing entries to the passwd and group file; but do so carefully
+ # since this will be fixed upstream at some point.
+ grep -q '^tss:' ./etc/passwd || echo 'tss:x:93:93:Linux TSS User:/bin:/bin/sh' >>./etc/passwd
+ grep -q '^scanner:' ./etc/group || echo 'scanner:*:91:' >>./etc/group
+ grep -q '^nvram:' ./etc/group || echo 'nvram:*:92:' >>./etc/group
+ grep -q '^tss:' ./etc/group || echo 'tss:*:93:' >>./etc/group
+ grep -q '^fuse:' ./etc/group || echo 'fuse:*:94:' >>./etc/group
+ grep -q '^kvm:' ./etc/group || echo 'kvm:*:95:' >>./etc/group
+ grep -q '^rdma:' ./etc/group || echo 'rdma:*:96:' >>./etc/group
+
+ cd $curdir
+}
+
+shr_rootfs_gta02_postprocess() {
+ curdir=$PWD
+ cd ${IMAGE_ROOTFS}
+ cd ${IMAGE_ROOTFS}/boot
+ ln -s uImage uImage-GTA02.bin
+ cd $curdir
+ #sed -i 's/#SCORouting=PCM/SCORouting=PCM/' ${IMAGE_ROOTFS}/etc/bluetooth/audio.conf
+}
+
+shr_rootfs_gta01_postprocess() {
+ curdir=$PWD
+ cd ${IMAGE_ROOTFS}
+ cd ${IMAGE_ROOTFS}/boot
+ ln -s uImage uImage-GTA01.bin
+ cd $curdir
+ #sed -i 's/#SCORouting=PCM/SCORouting=PCM/' ${IMAGE_ROOTFS}/etc/bluetooth/audio.conf
+}
+
+ROOTFS_POSTPROCESS_COMMAND += " shr_rootfs_postprocess"
+
+ROOTFS_POSTPROCESS_COMMAND_append_om-gta02 = ";shr_rootfs_gta02_postprocess"
+ROOTFS_POSTPROCESS_COMMAND_append_om-gta01 = ";shr_rootfs_gta01_postprocess"
+
+#do_testlab() {
+# :
+#}
diff --git a/recipes/images/shr-image/boot/append-GTA02 b/recipes/images/shr-image/boot/append-GTA02
new file mode 100644
index 0000000000..4901a091e7
--- /dev/null
+++ b/recipes/images/shr-image/boot/append-GTA02
@@ -0,0 +1,2 @@
+loglevel=1 quiet splash
+
diff --git a/recipes/images/shr-image/etc/htoprc b/recipes/images/shr-image/etc/htoprc
new file mode 100644
index 0000000000..e7bb5b7879
--- /dev/null
+++ b/recipes/images/shr-image/etc/htoprc
@@ -0,0 +1,21 @@
+# Beware! This file is rewritten every time htop exits.
+# The parser is also very primitive, and not human-friendly.
+# (I know, it's in the todo list).
+fields=39 46 47 49 1
+sort_key=46
+sort_direction=1
+hide_threads=0
+hide_kernel_threads=1
+hide_userland_threads=0
+shadow_other_users=0
+highlight_base_name=0
+highlight_megabytes=1
+tree_view=0
+header_margin=0
+detailed_cpu_time=1
+color_scheme=0
+delay=15
+left_meters=AllCPUs Memory
+left_meter_modes=1 1
+right_meters=Tasks LoadAverage Uptime
+right_meter_modes=2 2 2
diff --git a/recipes/images/shr-image/etc/logrotate.d/50freesmartphone b/recipes/images/shr-image/etc/logrotate.d/50freesmartphone
new file mode 100644
index 0000000000..2d3fb8196f
--- /dev/null
+++ b/recipes/images/shr-image/etc/logrotate.d/50freesmartphone
@@ -0,0 +1,11 @@
+/var/log/frameworkd.log {
+ rotate 5
+ weekly
+ compress
+}
+
+/var/log/ophonekitd.log {
+ rotate 5
+ weekly
+ compress
+}
diff --git a/recipes/images/shr-image/etc/profile.d/elementary.sh b/recipes/images/shr-image/etc/profile.d/elementary.sh
new file mode 100755
index 0000000000..da435964a7
--- /dev/null
+++ b/recipes/images/shr-image/etc/profile.d/elementary.sh
@@ -0,0 +1,4 @@
+export ELM_ENGINE=x11
+export ELM_THEME=default
+export ELM_SCALE=2
+export ELM_FINGER_SIZE=70
diff --git a/recipes/images/shr-lite-image.bb b/recipes/images/shr-lite-image.bb
new file mode 100644
index 0000000000..fa1a7ac71a
--- /dev/null
+++ b/recipes/images/shr-lite-image.bb
@@ -0,0 +1,5 @@
+require shr-image.inc
+
+IMAGE_BASENAME = "lite"
+
+IMAGES_LINGUAS="en-us"
diff --git a/recipes/images/shr-lite-image/boot/append-GTA02 b/recipes/images/shr-lite-image/boot/append-GTA02
new file mode 100644
index 0000000000..4901a091e7
--- /dev/null
+++ b/recipes/images/shr-lite-image/boot/append-GTA02
@@ -0,0 +1,2 @@
+loglevel=1 quiet splash
+
diff --git a/recipes/images/shr-lite-image/etc/htoprc b/recipes/images/shr-lite-image/etc/htoprc
new file mode 100644
index 0000000000..e7bb5b7879
--- /dev/null
+++ b/recipes/images/shr-lite-image/etc/htoprc
@@ -0,0 +1,21 @@
+# Beware! This file is rewritten every time htop exits.
+# The parser is also very primitive, and not human-friendly.
+# (I know, it's in the todo list).
+fields=39 46 47 49 1
+sort_key=46
+sort_direction=1
+hide_threads=0
+hide_kernel_threads=1
+hide_userland_threads=0
+shadow_other_users=0
+highlight_base_name=0
+highlight_megabytes=1
+tree_view=0
+header_margin=0
+detailed_cpu_time=1
+color_scheme=0
+delay=15
+left_meters=AllCPUs Memory
+left_meter_modes=1 1
+right_meters=Tasks LoadAverage Uptime
+right_meter_modes=2 2 2
diff --git a/recipes/images/shr-lite-image/etc/logrotate.d/50freesmartphone b/recipes/images/shr-lite-image/etc/logrotate.d/50freesmartphone
new file mode 100644
index 0000000000..2d3fb8196f
--- /dev/null
+++ b/recipes/images/shr-lite-image/etc/logrotate.d/50freesmartphone
@@ -0,0 +1,11 @@
+/var/log/frameworkd.log {
+ rotate 5
+ weekly
+ compress
+}
+
+/var/log/ophonekitd.log {
+ rotate 5
+ weekly
+ compress
+}
diff --git a/recipes/images/shr-lite-image/etc/profile.d/elementary.sh b/recipes/images/shr-lite-image/etc/profile.d/elementary.sh
new file mode 100755
index 0000000000..da435964a7
--- /dev/null
+++ b/recipes/images/shr-lite-image/etc/profile.d/elementary.sh
@@ -0,0 +1,4 @@
+export ELM_ENGINE=x11
+export ELM_THEME=default
+export ELM_SCALE=2
+export ELM_FINGER_SIZE=70
diff --git a/recipes/inkscape/inkscape_0.47.bb b/recipes/inkscape/inkscape_0.47.bb
new file mode 100644
index 0000000000..f083ef3f51
--- /dev/null
+++ b/recipes/inkscape/inkscape_0.47.bb
@@ -0,0 +1,16 @@
+SECTION = "x11/utils"
+DESCRIPTION = "Inkscape is an SVG-based graphics editor featuring alpha \
+blending, node editing, SVG to PNG export, and more. Its goal is for features \
+similar to Illustrator, CorelDraw, Visio, etc."
+DEPENDS = "poppler gsl libgc intltool-native gtk+ gtkmm glibmm libart-lgpl libxslt librsvg libxml2 libsigc++-1.2 popt"
+LICENSE = "GPL"
+
+#we know that GC version is 6.5, so we patch out the version check, since gc_open was already detected
+SRC_URI = "${SOURCEFORGE_MIRROR}/inkscape/inkscape-${PV}.tar.bz2 \
+ file://no-boehm-version-check.patch;patch=1"
+
+S = "${WORKDIR}/inkscape-${PV}"
+
+inherit autotools gettext mime gtk-icon-cache
+
+EXTRA_OECONF = "--disable-mmx"
diff --git a/recipes/intone-video/intone-video_svn.bb b/recipes/intone-video/intone-video_svn.bb
new file mode 100644
index 0000000000..1047c35748
--- /dev/null
+++ b/recipes/intone-video/intone-video_svn.bb
@@ -0,0 +1,37 @@
+DESCRIPTION = "intone-video is a mplayer video frontend for openmoko phones"
+HOMEPAGE = "http://code.google.com/p/intone-video/"
+AUTHOR = "cchandel"
+LICENSE = "GPLv2"
+SECTION = "e/apps"
+DEPENDS = "elementary eina sqlite3 edbus"
+RDEPENDS = "mplayer lame libxv libsdl-x11"
+
+PV = "0.13+svnr${SRCPV}"
+PR = "r0"
+
+SRC_URI = "svn://intone-video.googlecode.com/svn/trunk;module=.;proto=http"
+S = "${WORKDIR}"
+
+inherit autotools
+
+do_configure_prepend() {
+ rm -f "${S}/INSTALL"
+ touch "${S}/INSTALL"
+ sed -i 's/intone/intone-video/g' ${S}/configure.ac
+ sed -i 's/\/doc\/intone$/\/share\/doc\/intone-video/g' ${S}/Makefile.am
+ sed -i '/^EXTRA_DIST = $(glade_DATA)/d' ${S}/src/Makefile.am
+ sed -i '/^gladedir = $(datadir)\/intone\/glade/d' ${S}/src/Makefile.am
+ sed -i '/^glade_DATA = intone.glade/d' ${S}/src/Makefile.am
+}
+
+do_install_append() {
+ mv ${D}/${bindir}/intone ${D}/${bindir}/intone-video
+ mkdir -p "${D}/${datadir}/pixmaps"
+ install -m 0644 "${S}/resources/intone-video.png" "${D}/${datadir}/pixmaps"
+ mkdir -p "${D}/${datadir}/applications"
+ install -m 0644 "${S}/resources/intone-video.desktop" "${D}/${datadir}/applications"
+}
+
+
+FILES_${PN} += "/usr/share/pixmaps/* /usr/share/applications/*"
+
diff --git a/recipes/intone/intone/vorbis-include-id3tag.patch b/recipes/intone/intone/vorbis-include-id3tag.patch
new file mode 100644
index 0000000000..71bd5e7dc8
--- /dev/null
+++ b/recipes/intone/intone/vorbis-include-id3tag.patch
@@ -0,0 +1,23 @@
+diff -uri intone/src/db_sqlite.c intone.mok/src/db_sqlite.c
+--- intone/src/db_sqlite.c 2009-06-30 22:41:23.000000000 +0200
++++ intone.mok/src/db_sqlite.c 2009-07-05 23:10:01.000000000 +0200
+@@ -17,7 +17,7 @@
+ #include "db_sqlite.h"
+ #include <id3.h>
+ #include <vorbis/codec.h>
+-#include <vorbisfile.h>
++#include <vorbis/vorbisfile.h>
+ #include <string.h>
+
+ int check_file_exists(char *path)
+diff -uri intone/src/Makefile.am intone.mok/src/Makefile.am
+--- intone/src/Makefile.am 2009-05-15 16:29:18.000000000 +0200
++++ intone.mok/src/Makefile.am 2009-07-05 23:54:20.000000000 +0200
+@@ -31,6 +31,6 @@
+ intone_LDFLAGS = \
+ -Wl,--export-dynamic
+
+-intone_LDADD = $(INTONE_LIBS)
++intone_LDADD = $(INTONE_LIBS) -lid3
+
+ EXTRA_DIST = $(glade_DATA)
diff --git a/recipes/intone/intone_svn.bb b/recipes/intone/intone_svn.bb
new file mode 100644
index 0000000000..5b3f06232f
--- /dev/null
+++ b/recipes/intone/intone_svn.bb
@@ -0,0 +1,39 @@
+DESCRIPTION = "intone is a mplayer frontend for openmoko phones"
+HOMEPAGE = "http://code.google.com/p/intone/"
+AUTHOR = "cchandel"
+LICENSE = "GPLv2"
+SECTION = "e/apps"
+DEPENDS = "elementary eina sqlite3 edbus libvorbis id3lib"
+RDEPENDS = "mplayer lame libxv libsdl-x11"
+
+PV = "0.66+svnr${SRCPV}"
+PR = "r1"
+
+SRC_URI = "svn://intone.googlecode.com/svn/trunk;module=.;proto=http \
+file://vorbis-include-id3tag.patch;pnum=1;patch=1;maxrev=18"
+S = "${WORKDIR}"
+
+inherit autotools
+
+do_configure_prepend() {
+ rm -f "${S}/INSTALL"
+ touch "${S}/INSTALL"
+ sed -i 's/{prefix}\/doc\/intone$/{prefix}\/share\/doc\/intone/g' ${S}/Makefile.am
+}
+
+do_install_append() {
+ mkdir -p "${D}/${datadir}/pixmaps"
+ install -m 0644 "${S}/resources/intone.png" "${D}/${datadir}/pixmaps"
+ mkdir -p "${D}/${datadir}/applications"
+ install -m 0644 "${S}/resources/intone.desktop" "${D}/${datadir}/applications"
+ mkdir -p "${D}/${datadir}/intone"
+ for ico in "${S}/resources/"*.png; do
+ if [ "$(basename $ico)" != "intone.png" ]; then
+ install -m 0644 $ico "${D}/${datadir}/intone"
+ fi
+ done
+}
+
+
+FILES_${PN} += "/usr/share/intone/* /usr/share/applications/* /usr/share/pixmaps/*"
+
diff --git a/recipes/irrlicht/irrlicht-examples-gles.bb b/recipes/irrlicht/irrlicht-examples-gles.bb
index 6de692ec0e..7cfab4e343 100644
--- a/recipes/irrlicht/irrlicht-examples-gles.bb
+++ b/recipes/irrlicht/irrlicht-examples-gles.bb
@@ -3,7 +3,7 @@ LICENSE = "zlib"
DEPENDS = "virtual/libx11 libxxf86vm virtual/egl"
SRCREV = "2409"
-PV = "1.6+svnr${SRCREV}"
+PV = "1.6+svnr${SRCPV}"
SRC_URI = "svn://irrlicht.svn.sourceforge.net/svnroot/irrlicht/branches;module=ogl-es;proto=https \
file://irrlicht_beagle.diff;patch=1;pnum=0 \
diff --git a/recipes/jack/jack_0.116.2.bb b/recipes/jack/jack_0.116.2.bb
index f0a2e7525e..fe7ef76e2c 100644
--- a/recipes/jack/jack_0.116.2.bb
+++ b/recipes/jack/jack_0.116.2.bb
@@ -5,14 +5,14 @@ themselves."
SECTION = "libs/multimedia"
PRIORITY = "optional"
LICENSE = "GPL LGPL"
-PR = "r0"
+PR = "r1"
DEPENDS = "alsa-lib"
SRC_URI = "http://jackaudio.org/downloads/jack-audio-connection-kit-${PV}.tar.gz"
S = "${WORKDIR}/jack-audio-connection-kit-${PV}"
-inherit autotools pkgconfig
+inherit autotools
EXTRA_OECONF = "--enable-timestamps --disable-capabilities --disable-oldtrans \
--disable-portaudio --disable-coreaudio --enable-oss --enable-alsa"
@@ -25,8 +25,5 @@ PACKAGES =+ "libjack jack-server jack-examples"
FILES_libjack = "${libdir}/*.so.* ${libdir}/jack/*.so"
FILES_jack-server = "${bindir}/jackd"
FILES_jack-examples = "${bindir}/*"
-
-do_stage() {
- autotools_stage_all
-}
+FILES_${PN}-doc += " ${datadir}/jack-audio-connection-kit/reference/html/* "
diff --git a/recipes/jamvm/jamvm-initial_1.5.0.bb b/recipes/jamvm/jamvm-initial_1.5.0.bb
index 1566deba61..4ef56c1576 100644
--- a/recipes/jamvm/jamvm-initial_1.5.0.bb
+++ b/recipes/jamvm/jamvm-initial_1.5.0.bb
@@ -2,7 +2,7 @@ SUMMARY = "A compact Java Virtual Machine which conforms to the JVM specificatio
HOMEPAGE = "http://jamvm.sourceforge.net/"
LICENSE = "GPL"
-DEPENDS = "zlib-native classpath-initial jikes-initial"
+DEPENDS = "zlib-native classpath-initial jikes-initial libffi-native"
PR = "r1"
diff --git a/recipes/kde4/kde4.inc b/recipes/kde4/kde4.inc
index 5f621c6950..6188c5d512 100644
--- a/recipes/kde4/kde4.inc
+++ b/recipes/kde4/kde4.inc
@@ -2,7 +2,7 @@ LICENSE = "GPL"
inherit qt4x11 cmake mime
-PV = "4.1+svnr${SRCREV}"
+PV = "4.1+svnr${SRCPV}"
SRCREV = "856719"
SRC_URI = "svn://anonsvn.kde.org/home/kde/branches/KDE/4.1;module=${PN};proto=svn"
diff --git a/recipes/kexec/files/kexec-tools-2-arm-add-uImage.patch b/recipes/kexec/files/kexec-tools-2-arm-add-uImage.patch
new file mode 100644
index 0000000000..69a1588ba2
--- /dev/null
+++ b/recipes/kexec/files/kexec-tools-2-arm-add-uImage.patch
@@ -0,0 +1,271 @@
+From 160f15aa3b87b6b7b16ccad99f5ce110cacb8256 Mon Sep 17 00:00:00 2001
+From: Marc Andre Tanner <mat at brain-dump.org>
+Date: Fri, 20 Nov 2009 15:07:42 +0100
+Subject: [PATCH 2/2] kexec-arm: add uImage support
+
+uImages are basically just zImages with a special header,
+we therefore just skip the header and let the normal zImage
+infrastructure do the actual work.
+
+Signed-off-by: Marc Andre Tanner <mat at brain-dump.org>
+---
+ kexec/arch/arm/Makefile | 2 +
+ kexec/arch/arm/kexec-arm.c | 3 +
+ kexec/arch/arm/kexec-arm.h | 4 +
+ kexec/arch/arm/kexec-uImage-arm.c | 33 ++++++++
+ kexec/arch/arm/kexec-uImage-arm.h | 161 +++++++++++++++++++++++++++++++++++++
+ 5 files changed, 203 insertions(+), 0 deletions(-)
+ create mode 100644 kexec/arch/arm/kexec-uImage-arm.c
+ create mode 100644 kexec/arch/arm/kexec-uImage-arm.h
+
+diff --git a/kexec/arch/arm/Makefile b/kexec/arch/arm/Makefile
+index e05e4c7..806c4d9 100644
+--- a/kexec/arch/arm/Makefile
++++ b/kexec/arch/arm/Makefile
+@@ -3,8 +3,10 @@
+ #
+ arm_KEXEC_SRCS= kexec/arch/arm/kexec-elf-rel-arm.c
+ arm_KEXEC_SRCS+= kexec/arch/arm/kexec-zImage-arm.c
++arm_KEXEC_SRCS+= kexec/arch/arm/kexec-uImage-arm.c
+ arm_KEXEC_SRCS+= kexec/arch/arm/kexec-arm.c
+
+ dist += kexec/arch/arm/Makefile $(arm_KEXEC_SRCS) \
+ kexec/arch/arm/kexec-arm.h \
++ kexec/arch/arm/kexec-uImage-arm.h \
+ kexec/arch/arm/include/arch/options.h
+diff --git a/kexec/arch/arm/kexec-arm.c b/kexec/arch/arm/kexec-arm.c
+index 2e50489..3fdf839 100644
+--- a/kexec/arch/arm/kexec-arm.c
++++ b/kexec/arch/arm/kexec-arm.c
+@@ -74,6 +74,9 @@ int get_memory_ranges(struct memory_range **range, int *ranges,
+
+ /* Supported file types and callbacks */
+ struct file_type file_type[] = {
++ /* uImage is probed before zImage because the latter also accepts
++ uncompressed images. */
++ {"uImage", uImage_arm_probe, uImage_arm_load, zImage_arm_usage},
+ {"zImage", zImage_arm_probe, zImage_arm_load, zImage_arm_usage},
+ };
+ int file_types = sizeof(file_type) / sizeof(file_type[0]);
+diff --git a/kexec/arch/arm/kexec-arm.h b/kexec/arch/arm/kexec-arm.h
+index bb41ce0..0d9a066 100644
+--- a/kexec/arch/arm/kexec-arm.h
++++ b/kexec/arch/arm/kexec-arm.h
+@@ -6,4 +6,8 @@ int zImage_arm_load(int argc, char **argv, const char *buf, off_t len,
+ struct kexec_info *info);
+ void zImage_arm_usage(void);
+
++int uImage_arm_probe(const char *buf, off_t len);
++int uImage_arm_load(int argc, char **argv, const char *buf, off_t len,
++ struct kexec_info *info);
++
+ #endif /* KEXEC_ARM_H */
+diff --git a/kexec/arch/arm/kexec-uImage-arm.c b/kexec/arch/arm/kexec-uImage-arm.c
+new file mode 100644
+index 0000000..218148a
+--- /dev/null
++++ b/kexec/arch/arm/kexec-uImage-arm.c
+@@ -0,0 +1,33 @@
++/*
++ * uImage support added by Marc Andre Tanner <mat at brain-dump.org>
++ */
++#include <stdint.h>
++#include <string.h>
++#include <sys/types.h>
++#include "../../kexec.h"
++#include "kexec-arm.h"
++#include "kexec-uImage-arm.h"
++
++int uImage_arm_probe(const char *buf, off_t len)
++{
++ struct image_header header;
++
++ if (len < sizeof(header))
++ return -1;
++
++ memcpy(&header, buf, sizeof(header));
++
++ if (cpu_to_be32(header.ih_magic) != IH_MAGIC)
++ return -1;
++
++ /* XXX: check CRC Checksum? */
++
++ return 0;
++}
++
++int uImage_arm_load(int argc, char **argv, const char *buf, off_t len,
++ struct kexec_info *info)
++{
++ return zImage_arm_load(argc, argv, buf + sizeof(struct image_header),
++ len - sizeof(struct image_header), info);
++}
+diff --git a/kexec/arch/arm/kexec-uImage-arm.h b/kexec/arch/arm/kexec-uImage-arm.h
+new file mode 100644
+index 0000000..b9079a4
+--- /dev/null
++++ b/kexec/arch/arm/kexec-uImage-arm.h
+@@ -0,0 +1,161 @@
++/*
++ * (C) Copyright 2000-2005
++ * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
++ *
++ * See file CREDITS for list of people who contributed to this
++ * project.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ * MA 02111-1307 USA
++ *
++ ********************************************************************
++ * NOTE: This header file defines an interface to U-Boot. Including
++ * this (unmodified) header file in another file is considered normal
++ * use of U-Boot, and does *not* fall under the heading of "derived
++ * work".
++ ********************************************************************
++ */
++
++#ifndef __IMAGE_H__
++#define __IMAGE_H__
++
++/*
++ * Operating System Codes
++ */
++#define IH_OS_INVALID 0 /* Invalid OS */
++#define IH_OS_OPENBSD 1 /* OpenBSD */
++#define IH_OS_NETBSD 2 /* NetBSD */
++#define IH_OS_FREEBSD 3 /* FreeBSD */
++#define IH_OS_4_4BSD 4 /* 4.4BSD */
++#define IH_OS_LINUX 5 /* Linux */
++#define IH_OS_SVR4 6 /* SVR4 */
++#define IH_OS_ESIX 7 /* Esix */
++#define IH_OS_SOLARIS 8 /* Solaris */
++#define IH_OS_IRIX 9 /* Irix */
++#define IH_OS_SCO 10 /* SCO */
++#define IH_OS_DELL 11 /* Dell */
++#define IH_OS_NCR 12 /* NCR */
++#define IH_OS_LYNXOS 13 /* LynxOS */
++#define IH_OS_VXWORKS 14 /* VxWorks */
++#define IH_OS_PSOS 15 /* pSOS */
++#define IH_OS_QNX 16 /* QNX */
++#define IH_OS_U_BOOT 17 /* Firmware */
++#define IH_OS_RTEMS 18 /* RTEMS */
++#define IH_OS_ARTOS 19 /* ARTOS */
++#define IH_OS_UNITY 20 /* Unity OS */
++
++/*
++ * CPU Architecture Codes (supported by Linux)
++ */
++#define IH_CPU_INVALID 0 /* Invalid CPU */
++#define IH_CPU_ALPHA 1 /* Alpha */
++#define IH_CPU_ARM 2 /* ARM */
++#define IH_CPU_I386 3 /* Intel x86 */
++#define IH_CPU_IA64 4 /* IA64 */
++#define IH_CPU_MIPS 5 /* MIPS */
++#define IH_CPU_MIPS64 6 /* MIPS 64 Bit */
++#define IH_CPU_PPC 7 /* PowerPC */
++#define IH_CPU_S390 8 /* IBM S390 */
++#define IH_CPU_SH 9 /* SuperH */
++#define IH_CPU_SPARC 10 /* Sparc */
++#define IH_CPU_SPARC64 11 /* Sparc 64 Bit */
++#define IH_CPU_M68K 12 /* M68K */
++#define IH_CPU_NIOS 13 /* Nios-32 */
++#define IH_CPU_MICROBLAZE 14 /* MicroBlaze */
++#define IH_CPU_NIOS2 15 /* Nios-II */
++#define IH_CPU_BLACKFIN 16 /* Blackfin */
++#define IH_CPU_AVR32 17 /* AVR32 */
++
++/*
++ * Image Types
++ *
++ * "Standalone Programs" are directly runnable in the environment
++ * provided by U-Boot; it is expected that (if they behave
++ * well) you can continue to work in U-Boot after return from
++ * the Standalone Program.
++ * "OS Kernel Images" are usually images of some Embedded OS which
++ * will take over control completely. Usually these programs
++ * will install their own set of exception handlers, device
++ * drivers, set up the MMU, etc. - this means, that you cannot
++ * expect to re-enter U-Boot except by resetting the CPU.
++ * "RAMDisk Images" are more or less just data blocks, and their
++ * parameters (address, size) are passed to an OS kernel that is
++ * being started.
++ * "Multi-File Images" contain several images, typically an OS
++ * (Linux) kernel image and one or more data images like
++ * RAMDisks. This construct is useful for instance when you want
++ * to boot over the network using BOOTP etc., where the boot
++ * server provides just a single image file, but you want to get
++ * for instance an OS kernel and a RAMDisk image.
++ *
++ * "Multi-File Images" start with a list of image sizes, each
++ * image size (in bytes) specified by an "uint32_t" in network
++ * byte order. This list is terminated by an "(uint32_t)0".
++ * Immediately after the terminating 0 follow the images, one by
++ * one, all aligned on "uint32_t" boundaries (size rounded up to
++ * a multiple of 4 bytes - except for the last file).
++ *
++ * "Firmware Images" are binary images containing firmware (like
++ * U-Boot or FPGA images) which usually will be programmed to
++ * flash memory.
++ *
++ * "Script files" are command sequences that will be executed by
++ * U-Boot's command interpreter; this feature is especially
++ * useful when you configure U-Boot to use a real shell (hush)
++ * as command interpreter (=> Shell Scripts).
++ */
++
++#define IH_TYPE_INVALID 0 /* Invalid Image */
++#define IH_TYPE_STANDALONE 1 /* Standalone Program */
++#define IH_TYPE_KERNEL 2 /* OS Kernel Image */
++#define IH_TYPE_RAMDISK 3 /* RAMDisk Image */
++#define IH_TYPE_MULTI 4 /* Multi-File Image */
++#define IH_TYPE_FIRMWARE 5 /* Firmware Image */
++#define IH_TYPE_SCRIPT 6 /* Script file */
++#define IH_TYPE_FILESYSTEM 7 /* Filesystem Image (any type) */
++#define IH_TYPE_FLATDT 8 /* Binary Flat Device Tree Blob */
++
++/*
++ * Compression Types
++ */
++#define IH_COMP_NONE 0 /* No Compression Used */
++#define IH_COMP_GZIP 1 /* gzip Compression Used */
++#define IH_COMP_BZIP2 2 /* bzip2 Compression Used */
++#define IH_COMP_LZMA 3 /* lzma Compression Used */
++
++#define IH_MAGIC 0x27051956 /* Image Magic Number */
++#define IH_NMLEN 32 /* Image Name Length */
++
++/*
++ * all data in network byte order (aka natural aka bigendian)
++ */
++
++typedef struct image_header {
++ uint32_t ih_magic; /* Image Header Magic Number */
++ uint32_t ih_hcrc; /* Image Header CRC Checksum */
++ uint32_t ih_time; /* Image Creation Timestamp */
++ uint32_t ih_size; /* Image Data Size */
++ uint32_t ih_load; /* Data Load Address */
++ uint32_t ih_ep; /* Entry Point Address */
++ uint32_t ih_dcrc; /* Image Data CRC Checksum */
++ uint8_t ih_os; /* Operating System */
++ uint8_t ih_arch; /* CPU architecture */
++ uint8_t ih_type; /* Image Type */
++ uint8_t ih_comp; /* Compression Type */
++ uint8_t ih_name[IH_NMLEN]; /* Image Name */
++} image_header_t;
++
++
++#endif /* __IMAGE_H__ */
+--
+1.6.4.4
+
diff --git a/recipes/kexec/kexec-tools-klibc-static_1.101.bb b/recipes/kexec/kexec-tools-klibc-static_1.101.bb
index 4ad59ce257..5d131d839e 100644
--- a/recipes/kexec/kexec-tools-klibc-static_1.101.bb
+++ b/recipes/kexec/kexec-tools-klibc-static_1.101.bb
@@ -1,10 +1,12 @@
# the binaries are statical linked against klibc
require kexec-tools.inc
-PR = "r5"
+PR = "r6"
DEPENDS = "klibc"
-SRC_URI += "file://kexec-klibc.patch;patch=1"
+SRC_URI += "file://kexec-static.patch;patch=1 \
+ file://kexec-klibc.patch;patch=1 \
+ "
S = "${WORKDIR}/kexec-tools-${PV}"
EXTRA_OECONF = " --without-zlib"
diff --git a/recipes/kexec/kexec-tools-klibc-static_2.0.1.bb b/recipes/kexec/kexec-tools-klibc-static_2.0.1.bb
index d7d114b51d..54e4601d20 100644
--- a/recipes/kexec/kexec-tools-klibc-static_2.0.1.bb
+++ b/recipes/kexec/kexec-tools-klibc-static_2.0.1.bb
@@ -3,7 +3,7 @@ require kexec-tools2.inc
DEFAULT_PREFERENCE = "1"
-PR = "r1"
+PR = "r2"
DEPENDS = "klibc"
SRC_URI += "file://kexec-tools-2-headers.patch;patch=1 \
diff --git a/recipes/kexec/kexec-tools2.inc b/recipes/kexec/kexec-tools2.inc
index c34cc35e03..a21afe4003 100644
--- a/recipes/kexec/kexec-tools2.inc
+++ b/recipes/kexec/kexec-tools2.inc
@@ -11,4 +11,5 @@ inherit autotools
SRC_URI = "http://www.kernel.org/pub/linux/kernel/people/horms/kexec-tools/kexec-tools-${PV}.tar.gz \
file://fix-arm-arch-detection.patch;patch=1 \
file://no-getline-no-fscanf.patch;patch=1 \
+ file://kexec-tools-2-arm-add-uImage.patch;patch=1 \
"
diff --git a/recipes/kexec/kexec-tools_2.0.1.bb b/recipes/kexec/kexec-tools_2.0.1.bb
index f43ca60401..606b3fd634 100644
--- a/recipes/kexec/kexec-tools_2.0.1.bb
+++ b/recipes/kexec/kexec-tools_2.0.1.bb
@@ -2,6 +2,6 @@ require kexec-tools2.inc
export LDFLAGS = "-L${STAGING_LIBDIR}"
EXTRA_OECONF = " --with-zlib=yes"
-PR = "r1"
+PR = "r2"
DEFAULT_PREFERENCE = "1"
diff --git a/recipes/kexecboot/files/angstrom/icon.xpm b/recipes/kexecboot/files/angstrom/icon.xpm
new file mode 100644
index 0000000000..77b6710bae
--- /dev/null
+++ b/recipes/kexecboot/files/angstrom/icon.xpm
@@ -0,0 +1,39 @@
+/* XPM */
+static char * logo_xpm[] = {
+"32 32 4 1",
+" c None",
+". c #729188",
+"+ c #93ACA4",
+"# c #CCCCCC",
+" ",
+" ++ ",
+" ++ ",
+" ++ ",
+" .++. ",
+" . . ",
+" . . ",
+" . ++ . ",
+" ++++ ",
+" ++++ ",
+" +#++#+ ",
+" +#++#+ ",
+" +#+ +#+ ",
+" +#+ +#+ ",
+" ++ ++ ++ ",
+" +#+ ++ +#+ ",
+" ...+#+.++.+#+... ",
+" ...#+..++..+#... ",
+" +#+ ++ +#+ ",
+" ++ ++ ++ ",
+" +#+ +#+ ",
+" ++ ++ ",
+" +#+ +#+ ",
+" ++ ++ ",
+" +#+ +#+ ",
+" +#+ +#+ ",
+" ++ ++ ",
+" +#+ +#+ ",
+" +++ +++ ",
+" .+ +. ",
+" . . ",
+" "};
diff --git a/recipes/kexecboot/files/icon.xpm b/recipes/kexecboot/files/icon.xpm
new file mode 100644
index 0000000000..6e6fd776d8
--- /dev/null
+++ b/recipes/kexecboot/files/icon.xpm
@@ -0,0 +1,43 @@
+/* XPM */
+static char * icon_xpm[] = {
+"32 32 8 1",
+" c None",
+". c #D6DBDE",
+"+ c #9BA6AE",
+"@ c #60727D",
+"# c #B8BFC5",
+"$ c #A9E8F6",
+"% c #12BCE4",
+"& c #57D2EC",
+" ",
+" ",
+" ",
+" .++@@@@++. ",
+" +@@@@@@@@@@@@+ ",
+" #@@@@@@@@@@@@@@@@# ",
+" +@@@@@@@@@@@@@@@@@@+ ",
+" .@@@@@@@@++##+@@@@@@@@@. ",
+" @@@@@@@. .@@@@@@@ ",
+" +@@@@@+ $$$$ #@@@@@+ ",
+" #@@@@@. $%%%%%%%%$ .@@@@@# ",
+" @@@@@. &%%%%%%%%%%& .@@@@@ ",
+" #@@@@+ %%%%%%%%%%%%%% +@@@@# ",
+" @@@@@ &%%%%%%%%%%%%%%& @@@@@ ",
+".@@@@. $%%%%%& $%%%%%& .@@@@.",
+"+@@@@ %%%%% $%%%%%& @@@@+",
+"+@@@+ %%%%$ $%%%%%& $$ +@@@+",
+"@@@@+ $%%%% $%%%%%& $%$ +@@@@",
+"@@@@# &%%%& &%%%%& $%%& #@@@@",
+"@@@@. &%%%& %%%%& $%%%& .@@@@",
+"@@@@# $%%%& &%%& &%%%$ #@@@@",
+"+@@@+ $%%%% %%%%$ +@@@+",
+"+@@@@ %%%%& &%%%% @@@@+",
+"#@@@@ &%%%%& &%%%%& @@@@#",
+" @@@@+ %%%%%%&$$&%%%%%% +@@@@ ",
+" +@@@@. $%%%%%%%%%%%%%%$ .@@@@+ ",
+" .@@@@@ $%%%%%%%%%%%%$ @@@@@. ",
+" #++++. &%%%%%%%%& .++++# ",
+" $&&%%&&$ ",
+" ",
+" ",
+" "};
diff --git a/recipes/kexecboot/kexecboot-0.4/add-reboot-option.patch b/recipes/kexecboot/kexecboot-0.4/add-reboot-option.patch
deleted file mode 100644
index 52619229fd..0000000000
--- a/recipes/kexecboot/kexecboot-0.4/add-reboot-option.patch
+++ /dev/null
@@ -1,41 +0,0 @@
---- a/kexecboot.c
-+++ b/kexecboot.c
-@@ -536,11 +536,23 @@ int main(int argc, char **argv)
- fread(&evt, sizeof(struct input_event), 1, f);
- while(evt.type != EV_KEY || evt.value != 0);
-
-- if(evt.code == KEY_UP && choice >0)
-- choice--;
-- if(evt.code == KEY_DOWN && choice < bl->size-1)
-- choice++;
-- // printf("%d %d\n",choice, evt.code);
-+ switch (evt.code) {
-+ case KEY_UP:
-+ if (choice > 0) choice--;
-+ break;
-+ case KEY_DOWN:
-+ if ( choice < (bl->size - 1) ) choice++;
-+ break;
-+ case KEY_R:
-+ /* FIXME: Should work while no boot devices is found */
-+ sync();
-+ sleep(1);
-+ /* if ( -1 == reboot(LINUX_REBOOT_CMD_RESTART) ) { */
-+ if ( -1 == reboot(RB_AUTOBOOT) ) {
-+ perror("Can't initiate reboot");
-+ }
-+ break;
-+ }
-
- }while(evt.code != 87 && evt.code != 63);
- fclose(f);
---- a/kexecboot.h
-+++ b/kexecboot.h
-@@ -29,6 +29,7 @@
- #include <sys/wait.h>
- #include <ctype.h>
- #include <errno.h>
-+#include <sys/reboot.h>
- #include "fb.h"
- #include "devicescan.h"
- #include "res/logo-img.h"
diff --git a/recipes/kexecboot/kexecboot-0.4/add-sleep.patch b/recipes/kexecboot/kexecboot-0.4/add-sleep.patch
deleted file mode 100644
index 8f41b0ef10..0000000000
--- a/recipes/kexecboot/kexecboot-0.4/add-sleep.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/kexecboot.c 2009-01-24 14:11:17.000000000 +0100
-+++ b/kexecboot.c 2009-01-24 14:15:03.000000000 +0100
-@@ -427,6 +427,9 @@
-
- DPRINTF("I'm the init-process!\n");
-
-+ /* extra delay for initializing slow SD/CF */
-+ sleep(1);
-+
- /* Mount procfs */
- if ( -1 == mount("proc", "/proc", "proc",
- 0, NULL) ) {
diff --git a/recipes/kexecboot/kexecboot-0.4/fb-render-16bit.patch b/recipes/kexecboot/kexecboot-0.4/fb-render-16bit.patch
deleted file mode 100644
index f3405e49d8..0000000000
--- a/recipes/kexecboot/kexecboot-0.4/fb-render-16bit.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Index: kexecboot-0.4/fb.c
-===================================================================
---- kexecboot-0.4.orig/fb.c 2009-01-29 22:03:34.000000000 +0000
-+++ kexecboot-0.4/fb.c 2009-01-29 22:08:22.000000000 +0000
-@@ -19,7 +19,15 @@
-
- void fb_render(FB * fb)
- {
-- memcpy(fb->data, fb->backbuffer, fb->screensize);
-+ uint16 *source, *dest;
-+ int n = fb->screensize/2;
-+
-+ source = (uint16 *)fb->backbuffer;
-+ dest = (uint16 *)fb->data;
-+
-+ while (n--) {
-+ *dest++ = *source++;
-+ }
- }
-
- void fb_destroy(FB * fb)
diff --git a/recipes/kexecboot/kexecboot-0.4/graphical-no-devices.patch b/recipes/kexecboot/kexecboot-0.4/graphical-no-devices.patch
deleted file mode 100644
index b2cb214894..0000000000
--- a/recipes/kexecboot/kexecboot-0.4/graphical-no-devices.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/kexecboot.c
-+++ b/kexecboot.c
-@@ -66,8 +66,15 @@ void display_menu(FB *fb, struct bootlist *bl, int current)
- LOGO_IMG_WIDTH,
- LOGO_IMG_HEIGHT,
- LOGO_IMG_BYTES_PER_PIXEL, LOGO_IMG_RLE_PIXEL_DATA);
-- fb_draw_text (fb, LOGO_IMG_WIDTH + margin, margin, 0, 0, 0, &radeon_font,
-- "Make your choice by selecting\nan item with the cursor keys\nand press OK to continue");
-+ /* If no devices found print a message */
-+ if (0 == bl->size) {
-+ fb_draw_text (fb, LOGO_IMG_WIDTH + margin, margin, 0, 0, 0, &radeon_font,
-+ "No bootable devices found.\nInsert bootable device\nand press 'R' to reboot.");
-+ } else {
-+ fb_draw_text (fb, LOGO_IMG_WIDTH + margin, margin, 0, 0, 0, &radeon_font,
-+ "Make your choice by selecting\nan item with the cursor keys\nand press OK to continue.\nPress 'R' to reboot.");
-+ }
-+
- if(current < firstslot)
- firstslot=current;
- if(current > firstslot + slots -1)
diff --git a/recipes/kexecboot/kexecboot-0.4/kexecboot-tosa.patch b/recipes/kexecboot/kexecboot-0.4/kexecboot-tosa.patch
deleted file mode 100644
index e1f4870853..0000000000
--- a/recipes/kexecboot/kexecboot-0.4/kexecboot-tosa.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Index: kexecboot-0.4/kexecboot.c
-===================================================================
---- kexecboot-0.4.orig/kexecboot.c 2009-01-29 01:30:43.000000000 +0000
-+++ kexecboot-0.4/kexecboot.c 2009-01-29 01:39:17.000000000 +0000
-@@ -416,7 +416,7 @@
- {"Spitz", 270},
-
- {"Collie", 270},
-- {"Tosa", 270},
-+ {"SHARP Tosa", 0},
- {"Poodle", 270},
- {NULL, 0}
- };
-@@ -566,7 +566,9 @@
- break;
- }
-
-- }while(evt.code != 87 && evt.code != 63);
-+ }while(evt.code != 87 && evt.code != 63 &&
-+ evt.code != KEY_SPACE && evt.code != KEY_ENTER &&
-+ evt.code != KEY_HIRAGANA && evt.code != KEY_HENKAN);
- fclose(f);
- // reset terminal
- tcsetattr(fileno(stdin), TCSANOW, &old);
diff --git a/recipes/kexecboot/kexecboot-0.4/scan_devices-top.patch b/recipes/kexecboot/kexecboot-0.4/scan_devices-top.patch
deleted file mode 100644
index 6b21d03a3d..0000000000
--- a/recipes/kexecboot/kexecboot-0.4/scan_devices-top.patch
+++ /dev/null
@@ -1,39 +0,0 @@
---- a/kexecboot.c
-+++ b/kexecboot.c
-@@ -508,28 +508,27 @@ int main(int argc, char **argv)
- if ((fb = fb_new(angle)) == NULL)
- exit(-1);
-
-- bl = scan_devices();
--
-- if(!bl->size){
-- puts("No bootable device found");
-- exit(-1);
-- }
--
- f = fopen(eventif,"r");
- if(!f){
- perror(eventif);
- exit(3);
- }
-
--
- // deactivate terminal input
--
- tcgetattr(fileno(stdin), &old);
- new = old;
- new.c_lflag &= ~ECHO;
- // new.c_cflag &=~CREAD;
- tcsetattr(fileno(stdin), TCSANOW, &new);
-
-+ bl = scan_devices();
-+/*
-+ if(!bl->size){
-+ puts("No bootable device found");
-+ exit(-1);
-+ }
-+*/
-+
- do{
- display_menu(fb, bl, choice);
- do
diff --git a/recipes/kexecboot/kexecboot-0.4/silent-output-hack.patch b/recipes/kexecboot/kexecboot-0.4/silent-output-hack.patch
deleted file mode 100644
index abe8e84dd1..0000000000
--- a/recipes/kexecboot/kexecboot-0.4/silent-output-hack.patch
+++ /dev/null
@@ -1,79 +0,0 @@
---- a/devicescan.c 2009-01-17 00:51:35.000000000 +0100
-+++ b/devicescan.c 2009-01-24 22:13:45.000000000 +0100
-@@ -120,14 +120,14 @@
- malloc((strlen(split) + strlen("/dev/") +
- 1) * sizeof(char));
- sprintf(device, "/dev/%s", split);
-- printf("Probing %s\n",device);
-+ /* printf("Probing %s\n",device); */
- int fd = open(device, O_RDONLY);
- if (fd < 0) {
- perror(device);
- free(device);
- continue;
- }
-- printf("Device %s is opened\n", device);
-+ /* printf("Device %s is opened\n", device); */
- if (-1 == identify_fs(fd, &fstype, NULL, 0)) {
- free(device);
- continue;
-@@ -137,33 +137,33 @@
- free(device);
- continue;
- }
-- printf("FS on device %s is %s\n", device, fstype);
-+ /* printf("FS on device %s is %s\n", device, fstype); */
- // no unknown filesystems
- if (contains(fstype, fl) == -1) {
- free(device);
- continue;
- }
-- printf("found %s (%s)\n",device, fstype);
-+ /* printf("found %s (%s)\n",device, fstype); */
- // mount fs
- if (mount(device, "/mnt", fstype, MS_RDONLY, NULL)) {
-- printf("mount failed\n");
-+ /* printf("mount failed\n"); */
- perror(device);
- free(device);
- continue;
- }
-- printf("mount successful\n");
-+ /* printf("mount successful\n"); */
- if ( (g = fopen("/mnt/zImage", "r")) )
- kernelpath = "/mnt/zImage";
- else if ( (g = fopen("/mnt/boot/zImage", "r")) )
- kernelpath = "/mnt/boot/zImage";
- else {
-- printf("%s no kernel found, umounting\n", device);
-+ /* printf("%s no kernel found, umounting\n", device); */
- free(device);
- umount("/mnt");
- continue;
- }
- fclose(g);
-- printf("found kernel\n");
-+ /* printf("found kernel\n"); */
- bl->list[count] = malloc(sizeof(struct boot));
- bl->list[count]->device = device;
- bl->list[count]->fstype = fstype;
-@@ -174,7 +174,7 @@
- fgets(bl->list[count]->cmdline, COMMAND_LINE_SIZE,
- g);
- fclose(g);
-- printf("found command line\n");
-+ /* printf("found command line\n"); */
- bl->list[count]->cmdline[strlen(bl->list[count]->cmdline)-1] = '\0';
- } else
- bl->list[count]->cmdline = NULL;
---- a/kexecboot.c 2009-01-25 10:41:04.000000000 +0100
-+++ b/kexecboot.c 2009-01-24 22:13:45.000000000 +0100
-@@ -558,7 +558,7 @@
- case KEY_R:
- /* FIXME: Should work while no boot devices is found */
- sync();
-- sleep(1);
-+ /* REMOVE: we sleep on boot sleep(1); */
- /* if ( -1 == reboot(LINUX_REBOOT_CMD_RESTART) ) { */
- if ( -1 == reboot(RB_AUTOBOOT) ) {
- perror("Can't initiate reboot");
diff --git a/recipes/kexecboot/kexecboot-0.4/switch-cursor-off.patch b/recipes/kexecboot/kexecboot-0.4/switch-cursor-off.patch
deleted file mode 100644
index 632cc6a01c..0000000000
--- a/recipes/kexecboot/kexecboot-0.4/switch-cursor-off.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/kexecboot.c
-+++ b/kexecboot.c
-@@ -512,6 +512,9 @@ int main(int argc, char **argv)
- DPRINTF("FB angle is %d, input device is %s\n", angle, eventif);
- DPRINTF("Going to fb mode\n");
-
-+ /* Switch cursor off. NOTE: works only when master-console is tty */
-+ printf("\033[?25l\n");
-+
- if ((fb = fb_new(angle)) == NULL)
- exit(-1);
diff --git a/recipes/kexecboot/kexecboot-cfg_0.1.bb b/recipes/kexecboot/kexecboot-cfg_0.1.bb
index 97407a8a0a..b867457e22 100644
--- a/recipes/kexecboot/kexecboot-cfg_0.1.bb
+++ b/recipes/kexecboot/kexecboot-cfg_0.1.bb
@@ -2,9 +2,11 @@ LICENSE = "GPL"
SECTION = "base"
DESCRIPTION = "Configuration file for kexecboot"
-PR = "r5"
+PR = "r7"
PACKAGE_ARCH = "${MACHINE_ARCH}"
+SRC_URI = "file://icon.xpm"
+
CMDLINE_CON = "console=ttyS0,115200n8 console=tty1 noinitrd"
CMDLINE_CON_collie = "console=ttySA0,115200n8 console=tty1 noinitrd rw"
CMDLINE_CON_qemuarm = "console=ttyAMA0,115200n8 console=tty1 noinitrd"
@@ -29,18 +31,38 @@ CMDLINE += ${CMDLINE_DEBUG}
FILES_${PN} += "/boot/*"
+do_configure_prepend () {
+ install -m 0644 ${WORKDIR}/icon.xpm ${S}
+}
+
do_install_prepend () {
- echo "DEFAULT=${DISTRO}" > ${S}/boot.cfg
+
+ echo "# Show this label in kexecboot menu." >> ${S}/boot.cfg
echo "LABEL=${DISTRO}" >> ${S}/boot.cfg
+ echo "#" >> ${S}/boot.cfg
+
+ echo "# Specify full path to the kernel." >> ${S}/boot.cfg
echo "KERNEL=/boot/${KERNEL_IMAGETYPE}" >> ${S}/boot.cfg
+ echo "#" >> ${S}/boot.cfg
+
+ echo "# Append this tags to the kernel cmdline." >> ${S}/boot.cfg
echo "APPEND=${CMDLINE}" >> ${S}/boot.cfg
- echo "#ICON=/boot/my_icon.xpm" >> ${S}/boot.cfg
+ echo "#" >> ${S}/boot.cfg
+
+ echo "# Specify full path for a custom distro-icon for the menu-item." >> ${S}/boot.cfg
+ echo "# If not set, use device-icons as default (NAND, SD, CF, ...)." >> ${S}/boot.cfg
+ echo "#ICON=/boot/icon.xpm" >> ${S}/boot.cfg
+ echo "#" >> ${S}/boot.cfg
+
+ echo "# Priority of item in kexecboot menu." >> ${S}/boot.cfg
+ echo "# Items with highest priority will be shown at top of menu." >> ${S}/boot.cfg
+ echo "# Default: 0 (lowest, ordered by device ordering)" >> ${S}/boot.cfg
+ echo "#PRIORITY=10" >> ${S}/boot.cfg
+ echo "#" >> ${S}/boot.cfg
}
do_install () {
- install -d ${D}/boot
- install -m 0644 boot.cfg ${D}/boot/boot.cfg
-
- # old kexecboot versions < 0.52 were needing '/boot/kernel-cmdline'
- # echo "${CMDLINE}"> ${D}/boot/kernel-cmdline
+ install -d ${D}/boot
+ install -m 0644 boot.cfg ${D}/boot/boot.cfg
+ install -m 0644 icon.xpm ${D}/boot/icon.xpm
}
diff --git a/recipes/kexecboot/kexecboot_0.4.bb b/recipes/kexecboot/kexecboot_0.4.bb
deleted file mode 100644
index cf647a2c87..0000000000
--- a/recipes/kexecboot/kexecboot_0.4.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-PR = "r6"
-
-SRC_URI = "http://kexecboot.home.linuxtogo.org/kexecboot-${PV}.tar.gz \
- file://add-reboot-option.patch;patch=1 \
- file://scan_devices-top.patch;patch=1 \
- file://graphical-no-devices.patch;patch=1 \
- file://switch-cursor-off.patch;patch=1 \
- file://add-sleep.patch;patch=1 \
- file://silent-output-hack.patch;patch=1 \
- file://kexecboot-tosa.patch;patch=1 \
- file://fb-render-16bit.patch;patch=1"
-
-require kexecboot.inc
diff --git a/recipes/kexecboot/kexecboot_0.5.bb b/recipes/kexecboot/kexecboot_0.5.bb
deleted file mode 100644
index 04ab2772b4..0000000000
--- a/recipes/kexecboot/kexecboot_0.5.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-PR = "r1"
-
-SRC_URI = "http://kexecboot.home.linuxtogo.org/kexecboot-${PV}.tar.gz"
-
-require kexecboot.inc
diff --git a/recipes/kexecboot/kexecboot_git.bb b/recipes/kexecboot/kexecboot_git.bb
index 3f63276386..9aa2fdc3f9 100644
--- a/recipes/kexecboot/kexecboot_git.bb
+++ b/recipes/kexecboot/kexecboot_git.bb
@@ -1,20 +1,8 @@
PV = "0.5"
-PR = "r5+gitr${SRCREV}"
+PR = "r7+gitr${SRCREV}"
SRC_URI = "git://git.linuxtogo.org/home/groups/kexecboot/kexecboot.git;protocol=git "
-
-# v0.52 (using boot.cfg and new screen layout)
-# looking forward to the new 0.6 version
-SRCREV = "8daf258fc5d1e5eb6127285c63d66f31f05cf80d"
-
-# v0.51 (pre cfg-files, using kernel-cmdline)
-#SRCREV = "c5f17845f0f620adff854c2239a8aaa5d9942255"
-
-# v0.5 (add rescan / reboot)
-#SRCREV = "8823a939a38a8a3287f90dee062e8ab8569f884f"
-
-# v0.4 (add bootlogo)
-#SRCREV = "d7af5356df4f25203831403c69f1a263c163f31a"
+SRCREV = "ddf66724ce68509a8d80727f26f682b9a9341ff5"
S = "${WORKDIR}/git"
diff --git a/recipes/kismet/kismet-newcore_svn.bb b/recipes/kismet/kismet-newcore_svn.bb
index 6f3c00bdcb..aaa0727e87 100644
--- a/recipes/kismet/kismet-newcore_svn.bb
+++ b/recipes/kismet/kismet-newcore_svn.bb
@@ -2,7 +2,7 @@ require kismet.inc
DEFAULT_PREFERENCE = "-1"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR = "r3"
SRC_URI = "svn://svn.kismetwireless.net/code/branch/;module=kismet-newcore;proto=http"
diff --git a/recipes/kismet/kismet_svn.bb b/recipes/kismet/kismet_svn.bb
index 878678052a..aa60062a52 100644
--- a/recipes/kismet/kismet_svn.bb
+++ b/recipes/kismet/kismet_svn.bb
@@ -2,7 +2,7 @@ require kismet.inc
DEFAULT_PREFERENCE = "-1"
-PV = "2007-10-R1+svnr${SRCREV}"
+PV = "2007-10-R1+svnr${SRCPV}"
PR = "r2"
SRC_URI = "svn://svn.kismetwireless.net/code/;module=trunk;proto=http"
diff --git a/recipes/klibc/klibc-1.5.15/signal-cleanup.patch b/recipes/klibc/klibc-1.5.15/signal-cleanup.patch
index fd41f4d7b7..c64cd5bbb6 100644
--- a/recipes/klibc/klibc-1.5.15/signal-cleanup.patch
+++ b/recipes/klibc/klibc-1.5.15/signal-cleanup.patch
@@ -1,21 +1,27 @@
Description: Cope with header changes in kernel commit
63b852a6b67d0820d388b0ecd0da83ccb4048b8d.
-diff -Nur -x '*.orig' -x '*~' klibc-1.5.15/usr/include/arch/i386/klibc/archsignal.h klibc-1.5.15.new/usr/include/arch/i386/klibc/archsignal.h
---- klibc-1.5.15/usr/include/arch/i386/klibc/archsignal.h 2009-10-04 23:10:17.000000000 +0100
-+++ klibc-1.5.15.new/usr/include/arch/i386/klibc/archsignal.h 2009-10-05 09:35:14.000000000 +0100
-@@ -96,7 +96,7 @@
+Index: klibc-1.5.15/usr/include/arch/i386/klibc/archsignal.h
+===================================================================
+--- klibc-1.5.15.orig/usr/include/arch/i386/klibc/archsignal.h 2009-01-04 11:28:03.000000000 -0800
++++ klibc-1.5.15/usr/include/arch/i386/klibc/archsignal.h 2009-11-11 14:21:10.000000000 -0800
+@@ -96,7 +96,12 @@ typedef struct {
#define MINSIGSTKSZ 2048
#define SIGSTKSZ 8192
--#include <asm-generic/signal.h>
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+#include <asm-generic/signal-defs.h>
++#else
+ #include <asm-generic/signal.h>
++#endif
/* This uses gcc anonymous union support... */
struct siginfo;
-diff -Nur -x '*.orig' -x '*~' klibc-1.5.15/usr/include/arch/sparc/klibc/archsignal.h klibc-1.5.15.new/usr/include/arch/sparc/klibc/archsignal.h
---- klibc-1.5.15/usr/include/arch/sparc/klibc/archsignal.h 2009-01-04 19:28:03.000000000 +0000
-+++ klibc-1.5.15.new/usr/include/arch/sparc/klibc/archsignal.h 2009-10-05 09:37:31.000000000 +0100
+Index: klibc-1.5.15/usr/include/arch/sparc/klibc/archsignal.h
+===================================================================
+--- klibc-1.5.15.orig/usr/include/arch/sparc/klibc/archsignal.h 2009-01-04 11:28:03.000000000 -0800
++++ klibc-1.5.15/usr/include/arch/sparc/klibc/archsignal.h 2009-11-09 15:06:29.000000000 -0800
@@ -11,13 +11,6 @@
#define __WANT_POSIX1B_SIGNALS__
#include <asm/signal.h>
diff --git a/recipes/klibc/klibc_1.5.15.bb b/recipes/klibc/klibc_1.5.15.bb
index 31c4fbca3d..777dcd2c3c 100644
--- a/recipes/klibc/klibc_1.5.15.bb
+++ b/recipes/klibc/klibc_1.5.15.bb
@@ -1,4 +1,4 @@
require klibc_1.5.15.inc
-PR = "r3"
+PR = "r4"
KLIBC_FETCHDIR = "Testing"
diff --git a/recipes/lame/lame-3.98.2/ldflags-qa.patch b/recipes/lame/lame-3.98.2/ldflags-qa.patch
new file mode 100644
index 0000000000..c4df610bb2
--- /dev/null
+++ b/recipes/lame/lame-3.98.2/ldflags-qa.patch
@@ -0,0 +1,43 @@
+https://sourceforge.net/tracker/?func=detail&aid=2892273&group_id=290&atid=300290
+
+Depending on configure arguments libmp3lame may be built only as a
+shared library. But lame frntends link command using this library
+has -static.
+
+Such clash may cause ugly libtool behavior.
+
+In context of lame, linking should probably respect configure flags
+and link frontend dynamically if shared linking is enabled.
+
+As a consequence of bug in libtool, this combination
+with --disable-static may create incorrect binary. For more see:
+http://lists.gnu.org/archive/html/bug-libtool/2009-11/msg00004.html
+
+Signed-off-by: Stanislav Brabec <utx@penguin.cz>
+
+Index: lame-398-2/frontend/Makefile.am
+===================================================================
+--- lame-398-2.orig/frontend/Makefile.am
++++ lame-398-2/frontend/Makefile.am
+@@ -52,7 +52,7 @@ mp3x_SOURCES = mp3x.c gtkanal.c gpkplott
+ endif
+
+ CFLAGS = @CFLAGS@ @GTK_CFLAGS@ @FRONTEND_CFLAGS@ @SNDFILE_CFLAGS@
+-LDFLAGS = @LDFLAGS@ @FRONTEND_LDFLAGS@ @SNDFILE_LIBS@ -static
++LDFLAGS = @LDFLAGS@ @FRONTEND_LDFLAGS@ @SNDFILE_LIBS@
+
+ INCLUDES = -I$(top_srcdir)/libmp3lame -I$(top_srcdir)/include -I$(top_builddir)
+
+Index: lame-398-2/frontend/Makefile.in
+===================================================================
+--- lame-398-2.orig/frontend/Makefile.in
++++ lame-398-2/frontend/Makefile.in
+@@ -152,7 +152,7 @@ LDADD = @LDADD@ \
+ $(top_builddir)/libmp3lame/libmp3lame.la \
+ @FRONTEND_LDADD@
+
+-LDFLAGS = @LDFLAGS@ @FRONTEND_LDFLAGS@ @SNDFILE_LIBS@ -static
++LDFLAGS = @LDFLAGS@ @FRONTEND_LDFLAGS@ @SNDFILE_LIBS@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LIBTOOL = @LIBTOOL@
diff --git a/recipes/lame/lame-3.98.2/no-gtk1.patch b/recipes/lame/lame-3.98.2/no-gtk1.patch
new file mode 100644
index 0000000000..3cc06308f5
--- /dev/null
+++ b/recipes/lame/lame-3.98.2/no-gtk1.patch
@@ -0,0 +1,18 @@
+Index: lame-398-2/configure.in
+===================================================================
+--- lame-398-2.orig/configure.in
++++ lame-398-2/configure.in
+@@ -385,7 +385,12 @@ CONFIG_MATH_LIB="${USE_LIBM}"
+
+ dnl configure use of features
+
+-AM_PATH_GTK(1.2.0, HAVE_GTK="yes", HAVE_GTK="no")
++dnl AM_PATH_GTK(1.2.0, HAVE_GTK="yes", HAVE_GTK="no")
++HAVE_GTK="no"
++GTK_CFLAGS=""
++GTK_LIBS=""
++AC_SUBST(GTK_CFLAGS)
++AC_SUBST(GTK_LIBS)
+
+ dnl ElectricFence malloc debugging
+ AC_MSG_CHECKING(use of ElectricFence malloc debugging)
diff --git a/recipes/lame/lame/ldflags-qa.patch b/recipes/lame/lame/ldflags-qa.patch
new file mode 100644
index 0000000000..b92f9ca0cd
--- /dev/null
+++ b/recipes/lame/lame/ldflags-qa.patch
@@ -0,0 +1,43 @@
+https://sourceforge.net/tracker/?func=detail&aid=2892273&group_id=290&atid=300290
+
+Depending on configure arguments libmp3lame may be built only as a
+shared library. But lame frntends link command using this library
+has -static.
+
+Such clash may cause ugly libtool behavior.
+
+In context of lame, linking should probably respect configure flags
+and link frontend dynamically if shared linking is enabled.
+
+As a consequence of bug in libtool, this combination
+with --disable-static may create incorrect binary. For more see:
+http://lists.gnu.org/archive/html/bug-libtool/2009-11/msg00004.html
+
+Signed-off-by: Stanislav Brabec <utx@penguin.cz>
+
+Index: lame-3.96.1/frontend/Makefile.am
+===================================================================
+--- lame-3.96.1.orig/frontend/Makefile.am
++++ lame-3.96.1/frontend/Makefile.am
+@@ -50,7 +50,7 @@ mp3x__EXEEXT__SOURCES = mp3x.c gtkanal.c
+ endif
+
+ CFLAGS = @CFLAGS@ @GTK_CFLAGS@ @FRONTEND_CFLAGS@
+-LDFLAGS = @LDFLAGS@ @FRONTEND_LDFLAGS@ -static
++LDFLAGS = @LDFLAGS@ @FRONTEND_LDFLAGS@
+
+ INCLUDES = -I$(top_srcdir)/libmp3lame -I$(top_srcdir)/include -I$(top_builddir)
+
+Index: lame-3.96.1/frontend/Makefile.in
+===================================================================
+--- lame-3.96.1.orig/frontend/Makefile.in
++++ lame-3.96.1/frontend/Makefile.in
+@@ -91,7 +91,7 @@ LDADD = @LDADD@ \
+ $(top_builddir)/libmp3lame/libmp3lame.la \
+ @FRONTEND_LDADD@
+
+-LDFLAGS = @LDFLAGS@ @FRONTEND_LDFLAGS@ -static
++LDFLAGS = @LDFLAGS@ @FRONTEND_LDFLAGS@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LIBTOOL = @LIBTOOL@
diff --git a/recipes/lame/lame_3.96.1.bb b/recipes/lame/lame_3.96.1.bb
index ab9a99c064..9507032307 100644
--- a/recipes/lame/lame_3.96.1.bb
+++ b/recipes/lame/lame_3.96.1.bb
@@ -1,11 +1,12 @@
SECTION = "console/utils"
DESCRIPTION = "Not an MP3 encoder"
LICENSE = "LGPL"
-PR = "r4"
+PR = "r5"
SRC_URI = "${SOURCEFORGE_MIRROR}/lame/lame-${PV}.tar.gz \
file://no-gtk1.patch;patch=1 \
- file://Makefile-lm.patch;patch=1"
+ file://Makefile-lm.patch;patch=1 \
+ file://ldflags-qa.patch;patch=1"
inherit autotools
diff --git a/recipes/lame/lame_3.98.2.bb b/recipes/lame/lame_3.98.2.bb
new file mode 100644
index 0000000000..f279857810
--- /dev/null
+++ b/recipes/lame/lame_3.98.2.bb
@@ -0,0 +1,26 @@
+SECTION = "console/utils"
+DESCRIPTION = "Not an MP3 encoder"
+LICENSE = "LGPL"
+PR = "r0"
+
+S = "${WORKDIR}/${PN}-398-2"
+SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${PN}-398-2.tar.gz \
+ file://no-gtk1.patch;patch=1 \
+ file://ldflags-qa.patch;patch=1"
+
+inherit autotools_stage
+
+PACKAGES += "libmp3lame libmp3lame-dev"
+FILES_${PN} = "${bindir}/lame"
+FILES_libmp3lame = "${libdir}/libmp3lame.so.*"
+FILES_libmp3lame-dev = "${includedir} ${libdir}/*"
+FILES_${PN}-dev = ""
+
+do_configure() {
+ # no autoreconf please
+ aclocal
+ autoconf
+ libtoolize --force
+ gnu-configize --force
+ oe_runconf
+}
diff --git a/recipes/libacpi/files/makefile-fix.patch b/recipes/libacpi/files/makefile-fix.patch
new file mode 100644
index 0000000000..9193929767
--- /dev/null
+++ b/recipes/libacpi/files/makefile-fix.patch
@@ -0,0 +1,45 @@
+---
+ Makefile | 6 +++---
+ config.mk | 3 ++-
+ 2 files changed, 5 insertions(+), 4 deletions(-)
+
+Index: libacpi-0.2/Makefile
+===================================================================
+--- libacpi-0.2.orig/Makefile 2007-07-29 14:09:34.000000000 +0200
++++ libacpi-0.2/Makefile 2008-09-26 10:34:53.000000000 +0200
+@@ -25,16 +25,16 @@ ${OBJ}: config.mk libacpi.h
+
+ libacpi.a: ${OBJ}
+ @echo AR $@
+- @${AR} $@ ${OBJ}
++ ${AR} ${ARFLAGS} $@ ${OBJ}
+ @${RANLIB} $@
+
+ libacpi.so: ${OBJ}
+ @echo LD $@
+- @${LD} ${SOFLAGS} -o $@.${SOVERSION} ${OBJ}
++ @${CC} ${SOFLAGS} -o $@.${SOVERSION} ${OBJ}
+
+ test-libacpi: ${OBJ_test}
+ @echo LD $@
+- @${LD} -o $@ ${OBJ_test} ${LDFLAGS}
++ @${CC} -o $@ ${OBJ_test} ${LDFLAGS}
+ @strip $@
+
+ install: all
+Index: libacpi-0.2/config.mk
+===================================================================
+--- libacpi-0.2.orig/config.mk 2007-07-29 14:09:34.000000000 +0200
++++ libacpi-0.2/config.mk 2008-09-26 10:34:33.000000000 +0200
+@@ -9,9 +9,10 @@ MANPREFIX = ${PREFIX}/share/man
+ # flags
+ SOFLAGS = -shared -Wl,-soname,${SONAME}
+ CFLAGS += -fPIC -g --pedantic -Wall -Wextra
++ARFLAGS = cr
+
+ # Compiler and linker
+ CC = cc
+ LD = ${CC}
+-AR = ar cr
++AR = ar
+ RANLIB = ranlib
diff --git a/recipes/libacpi/libacpi_0.2.bb b/recipes/libacpi/libacpi_0.2.bb
new file mode 100644
index 0000000000..e60d934ea8
--- /dev/null
+++ b/recipes/libacpi/libacpi_0.2.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "ACPI data gathering library."
+SECTION = "base"
+HOMEPAGE = "http://www.ngolde.de/libacpi.html"
+LICENSE = "MIT"
+PR = "r1"
+
+SRC_URI = "http://www.ngolde.de/download/libacpi-${PV}.tar.gz \
+ file://makefile-fix.patch;patch=1 "
+
+PACKAGES += "${PN}-bin"
+
+FILES_${PN} = "${libdir}/libacpi.so.*"
+FILES_${PN}-bin = "${bindir}"
+
+COMPATIBLE_HOST = '(x86_64|i.86.*)-(linux|freebsd.*)'
+
+do_install() {
+ oe_runmake install DESTDIR=${D} PREFIX=${exec_prefix}
+}
diff --git a/recipes/libdiscid/libdiscid.inc b/recipes/libdiscid/libdiscid.inc
new file mode 100644
index 0000000000..a8ebfafe8a
--- /dev/null
+++ b/recipes/libdiscid/libdiscid.inc
@@ -0,0 +1,14 @@
+DESCRIPTION = "The MusicBrainz client is a library which can be built into other programs. \
+It allows you to access the data held on the MusicBrainz server."
+
+HOMEPAGE = "http://musicbrainz.org"
+LICENSE = "LGPL"
+
+SRC_URI = "http://users.musicbrainz.org/~matt/libdiscid-${PV}.tar.gz"
+
+inherit cmake pkgconfig
+
+do_stage() {
+ autotools_stage_all
+}
+
diff --git a/recipes/libdiscid/libdiscid_0.2.2.bb b/recipes/libdiscid/libdiscid_0.2.2.bb
new file mode 100644
index 0000000000..bd54419686
--- /dev/null
+++ b/recipes/libdiscid/libdiscid_0.2.2.bb
@@ -0,0 +1 @@
+require ${PN}.inc
diff --git a/recipes/libdvb/files/gcc4.patch b/recipes/libdvb/files/gcc4.patch
new file mode 100644
index 0000000000..280c2eaafa
--- /dev/null
+++ b/recipes/libdvb/files/gcc4.patch
@@ -0,0 +1,11 @@
+diff -urN libdvb-0.5.5.1/sample_progs/cam_menu.hh libdvb-0.5.5.1-superterrific/sample_progs/cam_menu.hh
+--- libdvb-0.5.5.1/sample_progs/cam_menu.hh 2005-03-22 08:23:25.000000000 -0500
++++ libdvb-0.5.5.1-superterrific/sample_progs/cam_menu.hh 2009-11-29 19:34:44.000000000 -0500
+@@ -4,6 +4,7 @@
+ */
+ #include <sys/types.h>
+ #include <sys/socket.h>
++#include <cstring>
+
+ #ifndef __CAM_MENU_HH
+ #define __CAM_MENU_HH
diff --git a/recipes/libdvb/files/ldflags.patch b/recipes/libdvb/files/ldflags.patch
new file mode 100644
index 0000000000..70a7ea6acb
--- /dev/null
+++ b/recipes/libdvb/files/ldflags.patch
@@ -0,0 +1,27 @@
+diff -urN libdvb-0.5.5.1/dvb-mpegtools/Makefile libdvb-0.5.5.1-superterrific/dvb-mpegtools/Makefile
+--- libdvb-0.5.5.1/dvb-mpegtools/Makefile 2009-11-29 19:40:06.000000000 -0500
++++ libdvb-0.5.5.1-superterrific/dvb-mpegtools/Makefile 2009-11-29 19:40:21.000000000 -0500
+@@ -33,19 +33,19 @@
+ dvbaudio
+
+ dvb-mpegtools_main: main.o
+- $(CXX) main.o $(LIBS) -o $@
++ $(CXX) main.o $(LDFLAGS) $(LIBS) -o $@
+
+ ctest: mainc.o
+ $(CC) $(COBJ) -o $@
+
+ dvb-mplex: $(MPLEXOBS)
+- $(CXX) $(MPLEXOBS) $(LIBS) -o $@
++ $(CXX) $(MPLEXOBS) $(LDFLAGS) $(LIBS) -o $@
+
+ dvbaudio: dvbaudio.o
+- $(CXX) dvbaudio.o $(LIBS) -ldvb -o $@
++ $(CXX) dvbaudio.o $(LDFLAGS) $(LIBS) -ldvb -o $@
+
+ audiofilter: audiofilter.o
+- $(CXX) audiofilter.o -o $@
++ $(CXX) audiofilter.o $(LDFLAGS) -o $@
+
+ %.o: %.cc
+ $(CXX) -c $(DCFLAGS) $(INCLUDES) $(DEFINES) $<
diff --git a/recipes/libdvb/libdvb_0.5.5.1.bb b/recipes/libdvb/libdvb_0.5.5.1.bb
index d2db2ce0d6..e982c1f58e 100644
--- a/recipes/libdvb/libdvb_0.5.5.1.bb
+++ b/recipes/libdvb/libdvb_0.5.5.1.bb
@@ -7,7 +7,9 @@ LICENSE = "GPL"
PR = "r3"
SRC_URI = "http://www.metzlerbros.org/dvb/${P}.tar.gz \
- file://topf2ps.patch;patch=1"
+ file://topf2ps.patch;patch=1 \
+ file://gcc4.patch;patch=1 \
+ file://ldflags.patch;patch=1"
S = "${WORKDIR}/${PN}-${PV}"
@@ -16,7 +18,7 @@ PARALLEL_MAKE = ""
inherit autotools pkgconfig
do_configure() {
- grep -v ^PREFIX ${S}/config.mk > ${S}/config.mk.new
+ grep -v ^PREFIX ${S}/config.mk | grep -v ^CFLAGS > ${S}/config.mk.new
echo "PREFIX=${prefix}" >> ${S}/config.mk.new
mv ${S}/config.mk.new ${S}/config.mk
}
diff --git a/recipes/libfakekey/libfakekey_svn.bb b/recipes/libfakekey/libfakekey_svn.bb
index 946080cf33..88cada89e7 100644
--- a/recipes/libfakekey/libfakekey_svn.bb
+++ b/recipes/libfakekey/libfakekey_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Matchbox keyboard"
LICENSE = "GPL"
DEPENDS = "libxtst"
SECTION = "x11/wm"
-PV = "0.2+svnr${SRCREV}"
+PV = "0.2+svnr${SRCPV}"
PR = "r1"
SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=${PN};proto=http \
diff --git a/recipes/libical/libical_0.44.bb b/recipes/libical/libical_0.44.bb
new file mode 100644
index 0000000000..e1889bc71b
--- /dev/null
+++ b/recipes/libical/libical_0.44.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "iCal and scheduling (RFC 2445, 2446, 2447) library"
+HOMEPAGE = "http://www.softwarestudio.org/softwarestudio/app.php/libical"
+SECTION = "libs"
+LICENSE = "LGPL / MPL"
+PR = "r0"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/freeassociation/${P}.tar.gz \
+ "
+
+
+inherit autotools
+
+do_stage () {
+ autotools_stage_all
+}
diff --git a/recipes/libnl/libnl2_git.bb b/recipes/libnl/libnl2_git.bb
new file mode 100644
index 0000000000..9e2c3d7ecc
--- /dev/null
+++ b/recipes/libnl/libnl2_git.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "libnl is a library for applications dealing with netlink sockets"
+SECTION = "libs/network"
+LICENSE = "LGPL"
+HOMEPAGE = "http://people.suug.ch/~tgr/libnl"
+PV = "1.0+gitr${SRCREV}"
+PR = "r1"
+
+inherit autotools
+
+#CFLAGS += '-DVLAN_FLAG_REORDER_HDR=1'
+
+includedir = ${prefix}/include/libnl2
+
+SRC_URI = "git://git.kernel.org/pub/scm/libs/netlink/libnl.git;protocol=git"
+S = "${WORKDIR}/git"
+
+PACKAGES =+ "${PN}-route ${PN}-nf ${PN}-genl"
+FILES_${PN}-route = "${libdir}/libnl-route.so.*"
+FILES_${PN}-nf = "${libdir}/libnl-nf.so.*"
+FILES_${PN}-genl = "${libdir}/libnl-genl.so.*"
diff --git a/recipes/libogg/libogg.inc b/recipes/libogg/libogg.inc
new file mode 100644
index 0000000000..f8eed60fef
--- /dev/null
+++ b/recipes/libogg/libogg.inc
@@ -0,0 +1,11 @@
+SECTION = "libs"
+DESCRIPTION = "libogg is the bitstream and framing library \
+for the Ogg project. It provides functions which are \
+necessary to codec libraries like libvorbis."
+LICENSE = "BSD"
+
+INC_PR = "r4"
+
+inherit autotools
+
+SRC_URI = "http://downloads.xiph.org/releases/ogg/libogg-${PV}.tar.gz"
diff --git a/recipes/libogg/libogg_1.0.bb b/recipes/libogg/libogg_1.0.bb
index 7af1468004..d5bad18a0a 100644
--- a/recipes/libogg/libogg_1.0.bb
+++ b/recipes/libogg/libogg_1.0.bb
@@ -1,18 +1,4 @@
-SECTION = "libs"
-DESCRIPTION = "libogg is the bitstream and framing library \
-for the Ogg project. It provides functions which are \
-necessary to codec libraries like libvorbis."
-LICENSE = "BSD"
-PR = "r1"
+require libogg.inc
-SRC_URI = "http://www.vorbis.com/files/${PV}/unix/libogg-${PV}.tar.gz"
+PR = "${INC_PR}.0"
-inherit autotools pkgconfig
-
-do_stage () {
- oe_libinstall -a -so -C src libogg ${STAGING_LIBDIR}
-
- install -d ${STAGING_INCDIR}/ogg
- (cd ${S}/include/ogg; cp config_types.h ogg.h os_types.h ${STAGING_INCDIR}/ogg/)
- install -m 0644 ${S}/ogg.m4 ${STAGING_DATADIR}/aclocal/
-}
diff --git a/recipes/libogg/libogg_1.1.3.bb b/recipes/libogg/libogg_1.1.3.bb
index 0a6e827ff1..d5bad18a0a 100644
--- a/recipes/libogg/libogg_1.1.3.bb
+++ b/recipes/libogg/libogg_1.1.3.bb
@@ -1,17 +1,4 @@
-SECTION = "libs"
-DESCRIPTION = "libogg is the bitstream and framing library \
-for the Ogg project. It provides functions which are \
-necessary to codec libraries like libvorbis."
-LICENSE = "BSD"
+require libogg.inc
-SRC_URI = "http://downloads.xiph.org/releases/ogg/libogg-${PV}.tar.gz"
+PR = "${INC_PR}.0"
-inherit autotools pkgconfig
-
-do_stage () {
- oe_libinstall -a -so -C src libogg ${STAGING_LIBDIR}
-
- install -d ${STAGING_INCDIR}/ogg
- (cd ${S}/include/ogg; cp config_types.h ogg.h os_types.h ${STAGING_INCDIR}/ogg/)
- install -m 0644 ${S}/ogg.m4 ${STAGING_DATADIR}/aclocal/
-}
diff --git a/recipes/libogg/libogg_1.1.4.bb b/recipes/libogg/libogg_1.1.4.bb
new file mode 100644
index 0000000000..d5bad18a0a
--- /dev/null
+++ b/recipes/libogg/libogg_1.1.4.bb
@@ -0,0 +1,4 @@
+require libogg.inc
+
+PR = "${INC_PR}.0"
+
diff --git a/recipes/libogg/libogg_1.1.bb b/recipes/libogg/libogg_1.1.bb
index 687b4decec..0baec126e3 100644
--- a/recipes/libogg/libogg_1.1.bb
+++ b/recipes/libogg/libogg_1.1.bb
@@ -1,19 +1,6 @@
-SECTION = "libs"
-DESCRIPTION = "libogg is the bitstream and framing library \
-for the Ogg project. It provides functions which are \
-necessary to codec libraries like libvorbis."
-LICENSE = "BSD"
-PR = "r3"
+require libogg.inc
-SRC_URI = "http://www.vorbis.com/files/1.0.1/unix/libogg-${PV}.tar.gz \
-file://m4.patch;patch=1"
+PR = "${INC_PR}.0"
-inherit autotools pkgconfig
+SRC_URI += "file://m4.patch;patch=1"
-do_stage () {
- oe_libinstall -a -so -C src libogg ${STAGING_LIBDIR}
-
- install -d ${STAGING_INCDIR}/ogg
- (cd ${S}/include/ogg; cp config_types.h ogg.h os_types.h ${STAGING_INCDIR}/ogg/)
- install -m 0644 ${S}/ogg.m4 ${STAGING_DATADIR}/aclocal/
-}
diff --git a/recipes/libogg/libtheora_1.0.bb b/recipes/libogg/libtheora_1.0.bb
deleted file mode 100644
index 431ed39525..0000000000
--- a/recipes/libogg/libtheora_1.0.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-
-DEPENDS = "libogg libvorbis"
-
-PR = "r3"
-
-SRC_URI = "http://downloads.xiph.org/releases/theora/libtheora-${PV}.tar.bz2 \
- file://libtheora-1.0-no-docs.patch;patch=1"
-
-inherit autotools lib_package
-
-EXTRA_OECONF = "--disable-examples"
-
-LEAD_SONAME = "libtheora.so.0"
-
-do_configure_append() {
- find ${S} -name Makefile | xargs sed -i -e s:'-I/usr/include':-I${STAGING_INCDIR}:g
-}
-
-AUTOTOOLS_STAGE_PKGCONFIG = "1"
-
-do_stage() {
- autotools_stage_all
-}
diff --git a/recipes/libowl/libowl_svn.bb b/recipes/libowl/libowl_svn.bb
index d5042b78a1..677a25f2ff 100644
--- a/recipes/libowl/libowl_svn.bb
+++ b/recipes/libowl/libowl_svn.bb
@@ -12,7 +12,7 @@ HOMEPAGE = "http://www.o-hand.com"
LICENSE = "LGPL"
SECTION = "libs"
DEPENDS = "gtk+"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR = "r3"
PACKAGES = ""
diff --git a/recipes/libpar2/libpar2_0.2.bb b/recipes/libpar2/libpar2_0.2.bb
new file mode 100644
index 0000000000..c9a110f457
--- /dev/null
+++ b/recipes/libpar2/libpar2_0.2.bb
@@ -0,0 +1,10 @@
+DESCRIPTION = "A tool to apply the data-recovery capability concepts of RAID-like systems \
+to the posting & recovery of multi-part archives on Usenet."
+SECTION = "libs"
+LICENSE = "GPL"
+HOMEPAGE = "http://parchive.sourceforge.net/"
+DEPENDS = "libsigc++-2.0"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/parchive/libpar2/libpar2-${PV}.tar.gz"
+
+inherit autotools_stage pkgconfig
diff --git a/recipes/libpng/libpng-native_1.2.40.bb b/recipes/libpng/libpng-native_1.2.40.bb
new file mode 100644
index 0000000000..52c92e9954
--- /dev/null
+++ b/recipes/libpng/libpng-native_1.2.40.bb
@@ -0,0 +1,4 @@
+require libpng_${PV}.bb
+require libpng-native.inc
+
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/libpng-${PV}"
diff --git a/recipes/libpng/libpng_1.2.40.bb b/recipes/libpng/libpng_1.2.40.bb
new file mode 100644
index 0000000000..3ed02a7f17
--- /dev/null
+++ b/recipes/libpng/libpng_1.2.40.bb
@@ -0,0 +1,14 @@
+require libpng.inc
+
+PR = "r0"
+
+SRC_URI += "file://makefile_fix.patch;patch=1"
+
+do_stage() {
+ cp libpng.pc libpng12.pc
+ install -m 644 png.h ${STAGING_INCDIR}/png.h
+ install -m 644 pngconf.h ${STAGING_INCDIR}/pngconf.h
+ oe_libinstall -so libpng ${STAGING_LIBDIR}/
+ oe_libinstall -so libpng12 ${STAGING_LIBDIR}/
+ ln -sf libpng12.so ${STAGING_LIBDIR}/libpng.so
+}
diff --git a/recipes/librfid/librfid_svn.bb b/recipes/librfid/librfid_svn.bb
index f687985c79..7df31eec31 100644
--- a/recipes/librfid/librfid_svn.bb
+++ b/recipes/librfid/librfid_svn.bb
@@ -5,7 +5,7 @@ LICENSE = "GPL"
DEPENDS = "virtual/libusb0"
SRCNAME = "librfid"
-PV = "0.2.0+svnr${SRCREV}"
+PV = "0.2.0+svnr${SRCPV}"
PR = "r5"
SRC_URI = "svn://svn.gnumonks.org/trunk;module=${SRCNAME};proto=http \
diff --git a/recipes/librsvg/librsvg-native_2.26.0.bb b/recipes/librsvg/librsvg-native_2.26.0.bb
new file mode 100644
index 0000000000..0a0a274469
--- /dev/null
+++ b/recipes/librsvg/librsvg-native_2.26.0.bb
@@ -0,0 +1,10 @@
+DESCRIPTION = "Library for rendering SVG files"
+SECTION = "x11/utils"
+DEPENDS = "cairo-native pango-native gdk-pixbuf-csource-native"
+LICENSE = "LGPL"
+
+inherit native autotools_stage
+
+SRC_URI = "${GNOME_MIRROR}/librsvg/2.26/librsvg-${PV}.tar.bz2"
+
+EXTRA_OECONF = "--disable-mozilla-plugin"
diff --git a/recipes/libsdl/libsdl-mixer/fix-flac-madness.diff b/recipes/libsdl/libsdl-mixer/fix-flac-madness.diff
new file mode 100644
index 0000000000..48fe88ef4a
--- /dev/null
+++ b/recipes/libsdl/libsdl-mixer/fix-flac-madness.diff
@@ -0,0 +1,28 @@
+--- /tmp/configure.in 2009-12-02 16:18:33.000000000 +0100
++++ SDL_mixer-1.2.11/configure.in 2009-12-02 16:20:02.000000000 +0100
+@@ -413,24 +413,7 @@
+ [], [enable_music_flac_shared=yes])
+ if test x$enable_music_flac = xyes; then
+ AC_CHECK_HEADER([FLAC/export.h], [have_flac_export=yes])
+- if test x$have_flac_export = xyes; then
+- LIBS_SAVED="$LIBS"
+- LIBS="-lFLAC"
+- AC_MSG_CHECKING([for libflac so-name version >= $libflac_ver])
+- AC_TRY_RUN([
+-#include "FLAC/export.h"
+-#include "stdio.h"
+-int main( int argc, char *argv[] ) {
+-#if defined(FLAC_API_VERSION_CURRENT) && (FLAC_API_VERSION_CURRENT >= $libflac_ver)
+- return 0;
+-#else
+- return 1;
+-#endif
+-}
+-], have_flac_ver=yes, have_flac_ver=no)
+- LIBS="$LIBS_SAVED"
+- AC_MSG_RESULT($have_flac_ver)
+- fi
++ have_flac_ver=yes
+
+ if test x$have_flac_ver = xyes; then
+ AC_CHECK_HEADER([FLAC/stream_decoder.h], [have_flac_hdr=yes])
diff --git a/recipes/libsdl/libsdl-mixer_1.2.10.bb b/recipes/libsdl/libsdl-mixer_1.2.10.bb
new file mode 100644
index 0000000000..5ecd2944a2
--- /dev/null
+++ b/recipes/libsdl/libsdl-mixer_1.2.10.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Simple DirectMedia Layer mixer library."
+SECTION = "libs"
+PRIORITY = "optional"
+DEPENDS = "virtual/libsdl libmikmod libvorbis"
+LICENSE = "LGPL"
+
+SRC_URI = "http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-${PV}.tar.gz"
+S = "${WORKDIR}/SDL_mixer-${PV}"
+
+export SDL_CONFIG = "${STAGING_BINDIR_CROSS}/sdl-config"
+
+inherit autotools_stage
+
+EXTRA_OECONF = "--disable-music-mp3"
+# although we build smpeg... need to find out how
+# to deal with optional dependencies
+
+do_compile() {
+ # Override SDL_LIBS to include a linker rpath so the linker
+ # can find the correct libdl.so when it links playwave to
+ # libSDL_mixer.so.
+ oe_runmake SDL_LIBS="$(pkg-config sdl --libs) -Wl,-rpath-link,${STAGING_LIBDIR}"
+}
diff --git a/recipes/libsdl/libsdl-mixer_1.2.11.bb b/recipes/libsdl/libsdl-mixer_1.2.11.bb
new file mode 100644
index 0000000000..ee0ba454ba
--- /dev/null
+++ b/recipes/libsdl/libsdl-mixer_1.2.11.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "Simple DirectMedia Layer mixer library."
+SECTION = "libs"
+PRIORITY = "optional"
+DEPENDS = "virtual/libsdl flac libmikmod libvorbis"
+LICENSE = "LGPL"
+
+PR = "r1"
+
+SRC_URI = "http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-${PV}.tar.gz \
+ file://fix-flac-madness.diff;patch=1"
+
+S = "${WORKDIR}/SDL_mixer-${PV}"
+
+export SDL_CONFIG = "${STAGING_BINDIR_CROSS}/sdl-config"
+
+inherit autotools_stage
+
+EXTRA_OECONF = "--disable-music-mp3"
+# although we build smpeg... need to find out how
+# to deal with optional dependencies
+
+do_compile() {
+ # Override SDL_LIBS to include a linker rpath so the linker
+ # can find the correct libdl.so when it links playwave to
+ # libSDL_mixer.so.
+ oe_runmake SDL_LIBS="$(pkg-config sdl --libs) -Wl,-rpath-link,${STAGING_LIBDIR}"
+}
diff --git a/recipes/libsdl/libsdl-native_1.2.14.bb b/recipes/libsdl/libsdl-native_1.2.14.bb
new file mode 100644
index 0000000000..35a73a6d18
--- /dev/null
+++ b/recipes/libsdl/libsdl-native_1.2.14.bb
@@ -0,0 +1,37 @@
+DESCRIPTION = "Simple DirectMedia Layer - native Edition"
+HOMEPAGE = "http://www.libsdl.org"
+SECTION = "libs"
+LICENSE = "LGPL"
+PR = "r0"
+
+SRC_URI = "http://www.libsdl.org/release/SDL-${PV}.tar.gz \
+"
+
+S = "${WORKDIR}/SDL-${PV}"
+
+inherit autotools binconfig pkgconfig native
+
+PARALLEL_MAKE = ""
+
+EXTRA_OECONF = "--disable-debug --disable-cdrom --enable-threads --enable-timers --enable-endian \
+ --enable-file --disable-oss --disable-alsa --disable-esd --disable-arts \
+ --disable-diskaudio --disable-nas --disable-esd-shared --disable-esdtest \
+ --disable-mintaudio --disable-nasm --disable-video-x11 --disable-video-dga \
+ --disable-video-fbcon --disable-video-directfb --disable-video-ps2gs \
+ --disable-video-xbios --disable-video-gem --disable-video-dummy \
+ --disable-video-opengl --enable-input-events --enable-pthreads \
+ --disable-video-picogui --disable-video-qtopia --enable-dlopen"
+
+do_configure() {
+ gnu-configize
+ oe_runconf
+ cd ${S}
+ # prevent libtool from linking libs against libstdc++, libgcc, ...
+ cat ${TARGET_PREFIX}libtool | sed -e 's/postdeps=".*"/postdeps=""/' > ${TARGET_PREFIX}libtool.tmp
+ mv ${TARGET_PREFIX}libtool.tmp ${TARGET_PREFIX}libtool
+}
+
+do_stage() {
+ autotools_stage_all
+ install -m 0644 build/libSDLmain.a ${STAGING_LIBDIR}
+}
diff --git a/recipes/libsdl/libsdl-x11_1.2.14.bb b/recipes/libsdl/libsdl-x11_1.2.14.bb
new file mode 100644
index 0000000000..621f7b47c1
--- /dev/null
+++ b/recipes/libsdl/libsdl-x11_1.2.14.bb
@@ -0,0 +1,51 @@
+# Do not use the include in 1.2.14 as it has a lot of unneeded munging that applies to old versions.
+#require libsdl.inc
+
+DESCRIPTION = "Simple DirectMedia Layer (X11 and Framebuffer support)"
+SECTION = "libs"
+PRIORITY = "optional"
+LICENSE = "LGPL"
+DEPENDS = "alsa-lib mesa virtual/libx11 libxext tslib"
+DEPENDS_avr32 = "alsa-lib virtual/libx11 libxext tslib"
+PROVIDES = "virtual/libsdl"
+PR = "r1"
+
+SRC_URI = " \
+ http://www.libsdl.org/release/SDL-${PV}.tar.gz \
+"
+
+S = "${WORKDIR}/SDL-${PV}"
+
+inherit autotools binconfig pkgconfig
+
+EXTRA_OECONF = " \
+ --disable-static --disable-debug --enable-cdrom --enable-threads --enable-timers --enable-endian \
+ --enable-file --enable-oss --enable-alsa --disable-esd --disable-arts \
+ --disable-diskaudio --disable-nas --disable-esd-shared --disable-esdtest \
+ --disable-mintaudio --disable-nasm --enable-video-x11 --disable-video-dga \
+ --enable-video-fbcon --disable-video-directfb --disable-video-ps2gs \
+ --disable-video-xbios --disable-video-gem --disable-video-dummy \
+ --enable-video-opengl --enable-input-events --enable-pthreads \
+ --disable-video-picogui --disable-video-qtopia --enable-dlopen \
+ --enable-input-tslib \
+"
+
+do_configure() {
+ oe_runconf
+}
+
+do_configure_append () {
+ cd ${S}
+
+ # prevent libtool from linking libs against libstdc++, libgcc, ...
+ cat ${TARGET_PREFIX}libtool | sed -e 's/postdeps=".*"/postdeps=""/' > ${TARGET_PREFIX}libtool.tmp
+ mv ${TARGET_PREFIX}libtool.tmp ${TARGET_PREFIX}libtool
+}
+
+do_stage() {
+ autotools_stage_all
+ rm ${STAGING_LIBDIR}/libSDL.la
+}
+
+FILES_${PN} = "${libdir}/lib*.so.*"
+FILES_${PN}-dev += "${bindir}/*config"
diff --git a/recipes/libogg/libtheora-1.0/libtheora-1.0-no-docs.patch b/recipes/libtheora/libtheora-1.0/libtheora-1.0-no-docs.patch
index ce1fa70940..ce1fa70940 100644
--- a/recipes/libogg/libtheora-1.0/libtheora-1.0-no-docs.patch
+++ b/recipes/libtheora/libtheora-1.0/libtheora-1.0-no-docs.patch
diff --git a/recipes/libtheora/libtheora-1.1.1/no-docs.patch b/recipes/libtheora/libtheora-1.1.1/no-docs.patch
new file mode 100644
index 0000000000..5734bce465
--- /dev/null
+++ b/recipes/libtheora/libtheora-1.1.1/no-docs.patch
@@ -0,0 +1,13 @@
+Index: libtheora-1.1.1/Makefile.am
+===================================================================
+--- libtheora-1.1.1.orig/Makefile.am 2009-11-25 22:01:53.593775926 +0100
++++ libtheora-1.1.1/Makefile.am 2009-11-25 22:02:00.777524017 +0100
+@@ -8,7 +8,7 @@
+ EXAMPLES_DIR =
+ endif
+
+-SUBDIRS = lib include doc tests m4 $(EXAMPLES_DIR)
++SUBDIRS = lib include tests m4 $(EXAMPLES_DIR)
+
+
+ # we include the whole debian/ dir in EXTRA_DIST because there's a problem
diff --git a/recipes/libtheora/libtheora.inc b/recipes/libtheora/libtheora.inc
new file mode 100644
index 0000000000..d288e7af06
--- /dev/null
+++ b/recipes/libtheora/libtheora.inc
@@ -0,0 +1,17 @@
+SECTION = "libs"
+DESCRIPTION = "theora is a high-quality video codec \
+that is free of intellectual property restrictions"
+LICENSE = "BSD"
+
+DEPENDS = "pkgconfig libogg"
+
+INC_PR = "r3"
+
+SRC_URI = "http://downloads.xiph.org/releases/theora/libtheora-${PV}.tar.bz2"
+
+inherit autotools
+
+EXTRA_OECONF = "--disable-examples"
+
+LEAD_SONAME = "libtheora.so.0"
+
diff --git a/recipes/libogg/libtheora_0.9+1.0alpha7.bb b/recipes/libtheora/libtheora_0.9+1.0alpha7.bb
index 5a372b65a1..5a372b65a1 100644
--- a/recipes/libogg/libtheora_0.9+1.0alpha7.bb
+++ b/recipes/libtheora/libtheora_0.9+1.0alpha7.bb
diff --git a/recipes/libtheora/libtheora_1.0.bb b/recipes/libtheora/libtheora_1.0.bb
new file mode 100644
index 0000000000..01de01d138
--- /dev/null
+++ b/recipes/libtheora/libtheora_1.0.bb
@@ -0,0 +1,6 @@
+require libtheora.inc
+
+PR = "${INC_PR}.0"
+
+SRC_URI += "file://libtheora-1.0-no-docs.patch;patch=1"
+
diff --git a/recipes/libtheora/libtheora_1.1.1.bb b/recipes/libtheora/libtheora_1.1.1.bb
new file mode 100644
index 0000000000..34bbb0bcbf
--- /dev/null
+++ b/recipes/libtheora/libtheora_1.1.1.bb
@@ -0,0 +1,6 @@
+require libtheora.inc
+
+PR = "${INC_PR}.0"
+
+SRC_URI += "file://no-docs.patch;patch=1"
+
diff --git a/recipes/libtool/libtool-cross_1.5.10.bb b/recipes/libtool/libtool-cross_1.5.10.bb
index 910ff12066..1ae9c6884d 100644
--- a/recipes/libtool/libtool-cross_1.5.10.bb
+++ b/recipes/libtool/libtool-cross_1.5.10.bb
@@ -13,8 +13,8 @@ SRC_URI_append = " file://rpath-control.patch;patch=1 \
S = "${WORKDIR}/libtool-${PV}"
-prefix = "${STAGING_DIR_NATIVE}${layout_prefix}"
-exec_prefix = "${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+prefix = "${STAGING_DIR_NATIVE}${prefix_native}"
+exec_prefix = "${STAGING_DIR_NATIVE}${prefix_native}"
bindir = "${STAGING_BINDIR_NATIVE}"
do_configure_prepend () {
@@ -34,12 +34,12 @@ do_compile () {
do_stage () {
install -m 0755 ${HOST_SYS}-libtool ${bindir}/${HOST_SYS}-libtool
install -m 0644 libltdl/ltdl.h ${STAGING_INCDIR}/
- install -d ${STAGING_DATADIR}/libtool ${STAGING_DATADIR}/aclocal
- install -c config.guess ${STAGING_DATADIR}/libtool/
- install -c config.sub ${STAGING_DATADIR}/libtool/
- install -c -m 0644 ltmain.sh ${STAGING_DATADIR}/libtool/
- install -c -m 0644 libtool.m4 ${STAGING_DATADIR}/aclocal/
- install -c -m 0644 ltdl.m4 ${STAGING_DATADIR}/aclocal/
+ install -d ${STAGING_DIR_HOST}${target_datadir}/libtool ${STAGING_DIR_HOST}${target_datadir}/aclocal
+ install -c config.guess ${STAGING_DIR_HOST}${target_datadir}/libtool/
+ install -c config.sub ${STAGING_DIR_HOST}${target_datadir}/libtool/
+ install -c -m 0644 ltmain.sh ${STAGING_DIR_HOST}${target_datadir}/libtool/
+ install -c -m 0644 libtool.m4 ${STAGING_DIR_HOST}${target_datadir}/aclocal/
+ install -c -m 0644 ltdl.m4 ${STAGING_DIR_HOST}${target_datadir}/aclocal/
}
do_install () {
diff --git a/recipes/libtool/libtool-cross_1.5.22.bb b/recipes/libtool/libtool-cross_1.5.22.bb
index b0cee4eebb..383261217c 100644
--- a/recipes/libtool/libtool-cross_1.5.22.bb
+++ b/recipes/libtool/libtool-cross_1.5.22.bb
@@ -12,8 +12,8 @@ SRC_URI_append = " file://libdir-la.patch;patch=1 \
file://install-path-check.patch;patch=1"
S = "${WORKDIR}/libtool-${PV}"
-prefix = "${STAGING_DIR_NATIVE}${layout_prefix}"
-exec_prefix = "${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+prefix = "${STAGING_DIR_NATIVE}${prefix_native}"
+exec_prefix = "${STAGING_DIR_NATIVE}${prefix_native}"
bindir = "${STAGING_BINDIR_NATIVE}"
do_compile () {
@@ -23,12 +23,12 @@ do_compile () {
do_stage () {
install -m 0755 ${HOST_SYS}-libtool ${bindir}/${HOST_SYS}-libtool
install -m 0644 libltdl/ltdl.h ${STAGING_INCDIR}/
- install -d ${STAGING_DATADIR}/libtool ${STAGING_DATADIR}/aclocal
- install -c config.guess ${STAGING_DATADIR}/libtool/
- install -c config.sub ${STAGING_DATADIR}/libtool/
- install -c -m 0644 ltmain.sh ${STAGING_DATADIR}/libtool/
- install -c -m 0644 libtool.m4 ${STAGING_DATADIR}/aclocal/
- install -c -m 0644 ltdl.m4 ${STAGING_DATADIR}/aclocal/
+ install -d ${STAGING_DIR_HOST}${target_datadir}/libtool ${STAGING_DIR_HOST}${target_datadir}/aclocal
+ install -c config.guess ${STAGING_DIR_HOST}${target_datadir}/libtool/
+ install -c config.sub ${STAGING_DIR_HOST}${target_datadir}/libtool/
+ install -c -m 0644 ltmain.sh ${STAGING_DIR_HOST}${target_datadir}/libtool/
+ install -c -m 0644 libtool.m4 ${STAGING_DIR_HOST}${target_datadir}/aclocal/
+ install -c -m 0644 ltdl.m4 ${STAGING_DIR_HOST}${target_datadir}/aclocal/
}
do_install () {
diff --git a/recipes/libtool/libtool-cross_1.5.24.bb b/recipes/libtool/libtool-cross_1.5.24.bb
index 1f8527873f..211e5a3550 100644
--- a/recipes/libtool/libtool-cross_1.5.24.bb
+++ b/recipes/libtool/libtool-cross_1.5.24.bb
@@ -9,8 +9,8 @@ SRC_URI_append = " file://libdir-la.patch;patch=1 \
file://install-path-check.patch;patch=1"
S = "${WORKDIR}/libtool-${PV}"
-prefix = "${STAGING_DIR_NATIVE}${layout_prefix}"
-exec_prefix = "${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+prefix = "${STAGING_DIR_NATIVE}${prefix_native}"
+exec_prefix = "${STAGING_DIR_NATIVE}${prefix_native}"
bindir = "${STAGING_BINDIR_NATIVE}"
do_compile () {
@@ -20,12 +20,12 @@ do_compile () {
do_stage () {
install -m 0755 ${HOST_SYS}-libtool ${bindir}/${HOST_SYS}-libtool
install -m 0644 libltdl/ltdl.h ${STAGING_INCDIR}/
- install -d ${STAGING_DATADIR}/libtool ${STAGING_DATADIR}/aclocal
- install -c config.guess ${STAGING_DATADIR}/libtool/
- install -c config.sub ${STAGING_DATADIR}/libtool/
- install -c -m 0644 ltmain.sh ${STAGING_DATADIR}/libtool/
- install -c -m 0644 libtool.m4 ${STAGING_DATADIR}/aclocal/
- install -c -m 0644 ltdl.m4 ${STAGING_DATADIR}/aclocal/
+ install -d ${STAGING_DIR_HOST}${target_datadir}/libtool ${STAGING_DIR_HOST}${target_datadir}/aclocal
+ install -c config.guess ${STAGING_DIR_HOST}${target_datadir}/libtool/
+ install -c config.sub ${STAGING_DIR_HOST}${target_datadir}/libtool/
+ install -c -m 0644 ltmain.sh ${STAGING_DIR_HOST}${target_datadir}/libtool/
+ install -c -m 0644 libtool.m4 ${STAGING_DIR_HOST}${target_datadir}/aclocal/
+ install -c -m 0644 ltdl.m4 ${STAGING_DIR_HOST}${target_datadir}/aclocal/
}
do_install () {
diff --git a/recipes/libtool/libtool-cross_2.2.4.bb b/recipes/libtool/libtool-cross_2.2.4.bb
index 31a67f5bd1..1a60b57970 100644
--- a/recipes/libtool/libtool-cross_2.2.4.bb
+++ b/recipes/libtool/libtool-cross_2.2.4.bb
@@ -17,8 +17,8 @@ DOLT_PATCH_i586 = " file://add_dolt.patch;patch=1"
S = "${WORKDIR}/libtool-${PV}"
-prefix = "${STAGING_DIR_NATIVE}${layout_prefix}"
-exec_prefix = "${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+prefix = "${STAGING_DIR_NATIVE}${prefix_native}"
+exec_prefix = "${STAGING_DIR_NATIVE}${prefix_native}"
bindir = "${STAGING_BINDIR_NATIVE}"
do_compile () {
@@ -27,14 +27,14 @@ do_compile () {
do_stage () {
install -m 0755 ${HOST_SYS}-libtool ${bindir}/${HOST_SYS}-libtool
- install -d ${STAGING_DATADIR}/libtool ${STAGING_DATADIR}/aclocal
- install -c ${S}/libltdl/config/config.guess ${STAGING_DATADIR}/libtool/
- install -c ${S}/libltdl/config/config.sub ${STAGING_DATADIR}/libtool/
- install -c -m 0644 ${S}/libltdl/config/ltmain.sh ${STAGING_DATADIR}/libtool/
- install -c -m 0644 ${S}/libltdl/m4/libtool.m4 ${STAGING_DATADIR}/aclocal/
- install -c -m 0644 ${S}/libltdl/m4/ltdl.m4 ${STAGING_DATADIR}/aclocal/
+ install -d ${STAGING_DIR_HOST}${target_datadir}/libtool ${STAGING_DIR_HOST}${target_datadir}/aclocal
+ install -c ${S}/libltdl/config/config.guess ${STAGING_DIR_HOST}${target_datadir}/libtool/
+ install -c ${S}/libltdl/config/config.sub ${STAGING_DIR_HOST}${target_datadir}/libtool/
+ install -c -m 0644 ${S}/libltdl/config/ltmain.sh ${STAGING_DIR_HOST}${target_datadir}/libtool/
+ install -c -m 0644 ${S}/libltdl/m4/libtool.m4 ${STAGING_DIR_HOST}${target_datadir}/aclocal/
+ install -c -m 0644 ${S}/libltdl/m4/ltdl.m4 ${STAGING_DIR_HOST}${target_datadir}/aclocal/
if [ -e ${WORKDIR}/dolt.m4 ] ; then
- install -c -m 0644 ${WORKDIR}/dolt.m4 ${STAGING_DATADIR}/aclocal/
+ install -c -m 0644 ${WORKDIR}/dolt.m4 ${STAGING_DIR_HOST}${target_datadir}/aclocal/
fi
}
diff --git a/recipes/libtool/libtool-cross_2.2.6a.bb b/recipes/libtool/libtool-cross_2.2.6a.bb
index 23c16829ab..d3ea34a341 100644
--- a/recipes/libtool/libtool-cross_2.2.6a.bb
+++ b/recipes/libtool/libtool-cross_2.2.6a.bb
@@ -15,8 +15,8 @@ DOLT_PATCH_i586 = " file://add_dolt.patch;patch=1"
#SRC_URI_append_linux = "${DOLT_PATCH}"
#SRC_URI_append_linux-gnueabi = "${DOLT_PATCH}"
-prefix = "${STAGING_DIR_NATIVE}${layout_prefix}"
-exec_prefix = "${STAGING_DIR_NATIVE}${layout_exec_prefix}"
+prefix = "${STAGING_DIR_NATIVE}${prefix_native}"
+exec_prefix = "${STAGING_DIR_NATIVE}${prefix_native}"
bindir = "${STAGING_BINDIR_NATIVE}"
do_compile () {
@@ -25,14 +25,14 @@ do_compile () {
do_stage () {
install -m 0755 ${HOST_SYS}-libtool ${bindir}/${HOST_SYS}-libtool
- install -d ${STAGING_DATADIR}/libtool ${STAGING_DATADIR}/aclocal
- install -c ${S}/libltdl/config/config.guess ${STAGING_DATADIR}/libtool/
- install -c ${S}/libltdl/config/config.sub ${STAGING_DATADIR}/libtool/
- install -c -m 0644 ${S}/libltdl/config/ltmain.sh ${STAGING_DATADIR}/libtool/
- install -c -m 0644 ${S}/libltdl/m4/libtool.m4 ${STAGING_DATADIR}/aclocal/
- install -c -m 0644 ${S}/libltdl/m4/ltdl.m4 ${STAGING_DATADIR}/aclocal/
+ install -d ${STAGING_DIR_HOST}${target_datadir}/libtool ${STAGING_DIR_HOST}${target_datadir}/aclocal
+ install -c ${S}/libltdl/config/config.guess ${STAGING_DIR_HOST}${target_datadir}/libtool/
+ install -c ${S}/libltdl/config/config.sub ${STAGING_DIR_HOST}${target_datadir}/libtool/
+ install -c -m 0644 ${S}/libltdl/config/ltmain.sh ${STAGING_DIR_HOST}${target_datadir}/libtool/
+ install -c -m 0644 ${S}/libltdl/m4/libtool.m4 ${STAGING_DIR_HOST}${target_datadir}/aclocal/
+ install -c -m 0644 ${S}/libltdl/m4/ltdl.m4 ${STAGING_DIR_HOST}${target_datadir}/aclocal/
if [ -e ${WORKDIR}/dolt.m4 ] ; then
- install -c -m 0644 ${WORKDIR}/dolt.m4 ${STAGING_DATADIR}/aclocal/
+ install -c -m 0644 ${WORKDIR}/dolt.m4 ${STAGING_DIR_HOST}${target_datadir}/aclocal/
fi
}
diff --git a/recipes/libusb/libusb1_1.0.4.bb b/recipes/libusb/libusb1_1.0.4.bb
new file mode 100644
index 0000000000..d2d4937f2c
--- /dev/null
+++ b/recipes/libusb/libusb1_1.0.4.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "library to provide userspace access to USB devices"
+HOMEPAGE = "http://libusb.sf.net"
+SECTION = "libs"
+LICENSE = "LGPL"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/libusb/libusb-${PV}.tar.bz2"
+S = "${WORKDIR}/libusb-${PV}"
+
+inherit autotools
+
+EXTRA_OECONF = "--disable-build-docs"
diff --git a/recipes/libvorbis/libvorbis-1.2.3/configure_powerpc-no-fixed-cpu.patch b/recipes/libvorbis/libvorbis-1.2.3/configure_powerpc-no-fixed-cpu.patch
new file mode 100644
index 0000000000..06ec874eb1
--- /dev/null
+++ b/recipes/libvorbis/libvorbis-1.2.3/configure_powerpc-no-fixed-cpu.patch
@@ -0,0 +1,15 @@
+Index: libvorbis-1.2.3/configure.ac
+===================================================================
+--- libvorbis-1.2.3.orig/configure.ac 2009-11-25 13:20:46.274395527 +0100
++++ libvorbis-1.2.3/configure.ac 2009-11-25 13:21:05.136894132 +0100
+@@ -157,8 +157,8 @@
+ fi;;
+ powerpc-*-linux*)
+ DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES"
+- CFLAGS="-O3 -Wall -Wextra -ffast-math -mfused-madd -mcpu=750 -D_REENTRANT"
+- PROFILE="-pg -g -O3 -ffast-math -mfused-madd -mcpu=750 -D_REENTRANT";;
++ CFLAGS="-O3 -Wall -Wextra -ffast-math -mfused-madd -D_REENTRANT"
++ PROFILE="-pg -g -O3 -ffast-math -mfused-madd -D_REENTRANT";;
+ *-*-linux*)
+ DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char"
+ CFLAGS="-O20 -Wall -Wextra -ffast-math -D_REENTRANT -fsigned-char"
diff --git a/recipes/libvorbis/libvorbis.inc b/recipes/libvorbis/libvorbis.inc
new file mode 100644
index 0000000000..b3a154a346
--- /dev/null
+++ b/recipes/libvorbis/libvorbis.inc
@@ -0,0 +1,19 @@
+SECTION = "libs"
+DEPENDS = "libogg"
+DESCRIPTION = "Ogg Vorbis is a high-quality lossy audio codec \
+that is free of intellectual property restrictions. libvorbis \
+is the main vorbis codec library."
+LICENSE = "BSD"
+INC_PR = "r2"
+
+inherit autotools
+
+# vorbisfile.c reveals a problem in the gcc register spilling for the
+# thumb instruction set...
+FULL_OPTIMIZATION_thumb = "-O0"
+
+EXTRA_OECONF = "--with-ogg-libraries=${STAGING_LIBDIR} \
+ --with-ogg-includes=${STAGING_INCDIR}"
+
+
+LEAD_SONAME = "libvorbis.so.0"
diff --git a/recipes/libvorbis/libvorbis_1.0.1.bb b/recipes/libvorbis/libvorbis_1.0.1.bb
index 8a2d17a0ad..8b95421218 100644
--- a/recipes/libvorbis/libvorbis_1.0.1.bb
+++ b/recipes/libvorbis/libvorbis_1.0.1.bb
@@ -1,32 +1,8 @@
-SECTION = "libs"
-DEPENDS = "libogg"
-DESCRIPTION = "Ogg Vorbis is a high-quality lossy audio codec \
-that is free of intellectual property restrictions. libvorbis \
-is the main vorbis codec library."
-LICENSE = "BSD"
-PR = "r2"
-SRC_URI = "http://www.vorbis.com/files/${PV}/unix/libvorbis-${PV}.tar.gz \
-file://m4.patch;patch=1"
-
-inherit autotools pkgconfig
+require libvorbis.inc
-# vorbisfile.c reveals a problem in the gcc register spilling for the
-# thumb instruction set...
-FULL_OPTIMIZATION_thumb = "-O0"
+PR = ""${INC_PR}.1"
-EXTRA_OECONF = "--with-ogg-libraries=${STAGING_LIBDIR} \
- --with-ogg-includes=${STAGING_INCDIR}"
-
-do_stage () {
- oe_libinstall -a -so -C lib libvorbis ${STAGING_LIBDIR}
- oe_libinstall -a -so -C lib libvorbisfile ${STAGING_LIBDIR}
- oe_libinstall -a -so -C lib libvorbisenc ${STAGING_LIBDIR}
+SRC_URI = "http://www.vorbis.com/files/${PV}/unix/libvorbis-${PV}.tar.gz \
+file://m4.patch;patch=1"
- install -d ${STAGING_INCDIR}/vorbis
- install -m 0644 include/vorbis/vorbisenc.h \
- include/vorbis/vorbisfile.h \
- include/vorbis/codec.h ${STAGING_INCDIR}/vorbis/
- install -d ${STAGING_DATADIR}/aclocal
- install -m 0644 vorbis.m4 ${STAGING_DATADIR}/aclocal/
-}
diff --git a/recipes/libvorbis/libvorbis_1.2.0.bb b/recipes/libvorbis/libvorbis_1.2.0.bb
index cc7f00cceb..767a38a4de 100644
--- a/recipes/libvorbis/libvorbis_1.2.0.bb
+++ b/recipes/libvorbis/libvorbis_1.2.0.bb
@@ -1,10 +1,7 @@
-SECTION = "libs"
-DEPENDS = "libogg"
-DESCRIPTION = "Ogg Vorbis is a high-quality lossy audio codec \
-that is free of intellectual property restrictions. libvorbis \
-is the main vorbis codec library."
-LICENSE = "BSD"
-PR = "2"
+
+require libvorbis.inc
+
+PR = "${INC_PR}.1"
SRC_URI = "http://downloads.xiph.org/releases/vorbis/libvorbis-${PV}.tar.gz \
file://configure_powerpc-no-fixed-cpu.patch;patch=1 \
@@ -13,24 +10,3 @@ SRC_URI = "http://downloads.xiph.org/releases/vorbis/libvorbis-${PV}.tar.gz \
file://r14602-CVE-2008-1423.patch;patch=1 \
"
-inherit autotools pkgconfig
-
-# vorbisfile.c reveals a problem in the gcc register spilling for the
-# thumb instruction set...
-FULL_OPTIMIZATION_thumb = "-O0"
-
-EXTRA_OECONF = "--with-ogg-libraries=${STAGING_LIBDIR} \
- --with-ogg-includes=${STAGING_INCDIR}"
-
-do_stage () {
- oe_libinstall -a -so -C lib libvorbis ${STAGING_LIBDIR}
- oe_libinstall -a -so -C lib libvorbisfile ${STAGING_LIBDIR}
- oe_libinstall -a -so -C lib libvorbisenc ${STAGING_LIBDIR}
-
- install -d ${STAGING_INCDIR}/vorbis
- install -m 0644 include/vorbis/vorbisenc.h \
- include/vorbis/vorbisfile.h \
- include/vorbis/codec.h ${STAGING_INCDIR}/vorbis/
- install -d ${STAGING_DATADIR}/aclocal
- install -m 0644 vorbis.m4 ${STAGING_DATADIR}/aclocal/
-}
diff --git a/recipes/libvorbis/libvorbis_1.2.3.bb b/recipes/libvorbis/libvorbis_1.2.3.bb
new file mode 100644
index 0000000000..1173809d48
--- /dev/null
+++ b/recipes/libvorbis/libvorbis_1.2.3.bb
@@ -0,0 +1,11 @@
+
+require libvorbis.inc
+
+PR = "${INC_PR}.0"
+
+SRC_URI = "http://downloads.xiph.org/releases/vorbis/libvorbis-${PV}.tar.gz \
+ file://configure_powerpc-no-fixed-cpu.patch;patch=1 \
+ "
+
+# override should be handeld by pkgconfig now
+EXTRA_OECONF = ""
diff --git a/recipes/libw100/libw100_svn.bb b/recipes/libw100/libw100_svn.bb
index 462163e115..9e01a2a9c2 100644
--- a/recipes/libw100/libw100_svn.bb
+++ b/recipes/libw100/libw100_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Acceleration library for ATI imageon chipsets (w100 and w3220)"
LICENSE = "GPLv2"
-PV = "0.0.2+svnr${SRCREV}"
+PV = "0.0.2+svnr${SRCPV}"
PE = "1"
SRC_URI = "svn://libw100.svn.sourceforge.net/svnroot/libw100;module=trunk;proto=https"
diff --git a/recipes/libxosd/libxosd_svn.bb b/recipes/libxosd/libxosd_svn.bb
index 377f55dc2a..bc40b34895 100644
--- a/recipes/libxosd/libxosd_svn.bb
+++ b/recipes/libxosd/libxosd_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "A library for displaying a TV-like on-screen display in X."
SECTION = "libs/x11"
DEPENDS = "virtual/libx11 libxext"
LICENSE = "LGPL"
-PV = "2.2.15+svnr${SRCREV}"
+PV = "2.2.15+svnr${SRCPV}"
PR = "r5"
SRC_URI = "svn://libxosd.svn.sourceforge.net/svnroot/libxosd/source;module=current;proto=https \
diff --git a/recipes/linphone/linphone-3.1.0/preferences-segv.patch b/recipes/linphone/linphone-3.1.0/preferences-segv.patch
new file mode 100644
index 0000000000..529688b68f
--- /dev/null
+++ b/recipes/linphone/linphone-3.1.0/preferences-segv.patch
@@ -0,0 +1,11 @@
+--- linphone-3.1.0/coreapi/linphonecore.c 2009/03/24 22:24:49 366
++++ linphone-3.1.0/coreapi/linphonecore.c 2009/03/24 22:43:14 367
+@@ -2108,7 +2108,7 @@
+ if (olddev!=NULL && olddev!=lc->video_conf.device){
+ toggle_video_preview(lc,FALSE);/*restart the video local preview*/
+ }
+- if (lc->ready){
++ if (lc->ready && lc->video_conf.device){
+ vd=ms_web_cam_get_string_id(lc->video_conf.device);
+ if (vd && strstr(vd,"Static picture")!=NULL){
+ vd=NULL;
diff --git a/recipes/linphone/linphone_3.1.0.bb b/recipes/linphone/linphone_3.1.0.bb
new file mode 100644
index 0000000000..bebaa169e2
--- /dev/null
+++ b/recipes/linphone/linphone_3.1.0.bb
@@ -0,0 +1,82 @@
+DESCRIPTION = "SIP-based IP phone (console edition)"
+HOMEPAGE = "http://www.linphone.org/?lang=us"
+SECTION = "x11/utils"
+LICENSE = "GPLv2"
+
+PR = "r1"
+
+DEPENDS = "intltool libosip2 speex libogg alsa-lib readline libexosip2"
+DEPENDS_${PN} = "liblinphone"
+DEPENDS_${PN}c = "liblinphone readline"
+DEPENDS_liblinphone = "libmediastreamer libortp libosip2"
+#DEPENDS_libquickstream = "speex libmediastreamer alsa-lib"
+DEPENDS_libmediastreamer = "speex libogg alsa-lib libortp"
+
+RDEPENDS_${PN} = "liblinphone"
+RDEPENDS_${PN}c = "liblinphone readline"
+RDEPENDS_liblinphone = "libmediastreamer libortp libosip2"
+#RDEPENDS_libquickstream = "speex libmediastreamer libasound"
+RDEPENDS_libmediastreamer = "speex libogg libasound libortp"
+
+PROVIDES += "linphone linphonec liblinphone"
+
+SRC_URI = "http://download.savannah.nongnu.org/releases/linphone/3.1.x/sources/linphone-${PV}.tar.gz \
+ file://b64_assert.patch;patch=1 \
+ file://preferences-segv.patch;patch=1 \
+ "
+
+S = "${WORKDIR}/linphone-${PV}"
+
+inherit autotools pkgconfig
+
+export PKG_CONFIG=${STAGING_BINDIR_NATIVE}/pkg-config
+
+EXTRA_OECONF = "--disable-gtk-doc \
+ --without-ffmpeg --disable-video \
+ --enable-alsa \
+ --with-osip=${STAGING_DIR_HOST}${layout_exec_prefix} \
+ --with-readline=${STAGING_DIR_HOST}${layout_exec_prefix} \
+ --with-speex=${STAGING_DIR_HOST}${layout_exec_prefix} \
+ --disable-truespeech --disable-manual \
+ --enable-console_ui=yes --enable-gtk_ui=yes \
+ --with-realprefix=/usr \
+ "
+
+PARALLEL_MAKE = ""
+
+do_stage () {
+ install -d ${STAGING_DATADIR}/aclocal
+ oe_libinstall -a -so liblinphone ${STAGING_LIBDIR}
+ install -d ${STAGING_INCDIR}/linphone
+ install -m 0644 ${S}/coreapi/linphonecore.h ${STAGING_INCDIR}/linphone
+ install -m 0644 ${S}/coreapi/lpconfig.h ${STAGING_INCDIR}/linphone
+ oe_libinstall -a -so libmediastreamer ${STAGING_LIBDIR}
+# oe_libinstall -a -so libquickstream ${STAGING_LIBDIR}
+ install -d ${STAGING_INCDIR}/mediastreamer2
+ install -m 0644 ${S}/mediastreamer2/include/mediastreamer2/*.h ${STAGING_INCDIR}/mediastreamer2
+ install -d ${STAGING_INCDIR}/ortp
+ oe_libinstall -a -so libortp ${STAGING_LIBDIR}/
+ install -m 0644 ${S}/oRTP/include/ortp/*.h ${STAGING_INCDIR}/ortp/
+ autotools_stage_all
+}
+
+PACKAGES += "linphonec linphone-rings liblinphone libmediastreamer libortp"
+
+FILES_${PN} = "${bindir}/linphone-3 \
+ ${bindir}/linphone \
+ ${datadir}/linphone \
+ ${datadir}/pixmaps \
+ ${datadir}/applications \
+ ${datadir}/gnome/apps \
+ ${datadir}/sounds/linphone/hello8000.wav \
+ ${datadir}/sounds/linphone/hello16000.wav \
+ ${datadir}/images/nowebcamCIF.jpg \
+ "
+FILES_${PN}c = "${bindir}/linphonec ${bindir}/linphonecsh ${bindir}/sipomatic ${datadir}/sounds/linphone/ringback.wav"
+FILES_${PN}-rings = "${datadir}/sounds/linphone/rings"
+FILES_liblinphone = "${libdir}/liblinphone.so.*"
+#FILES_libquickstream = "${libdir}/libquickstream.so.*"
+FILES_libmediastreamer = "${libdir}/libmediastreamer.so.* /usr/libexec/mediastream"
+FILES_libortp = "${libdir}/libortp.so.*"
+FILES_${PN}-dev += "${libdir}/*.a ${libdir}/*.la ${libdir}/pkgconfig ${includedir}"
+
diff --git a/recipes/linux-libc-headers/linux-libc-headers_2.6.25.bb b/recipes/linux-libc-headers/linux-libc-headers_2.6.25.bb
index 0d4163693c..9289d390c4 100644
--- a/recipes/linux-libc-headers/linux-libc-headers_2.6.25.bb
+++ b/recipes/linux-libc-headers/linux-libc-headers_2.6.25.bb
@@ -2,13 +2,14 @@ require linux-libc-headers.inc
INHIBIT_DEFAULT_DEPS = "1"
DEPENDS += "unifdef-native"
-PR = "r2"
+PR = "r3"
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
file://reinstate-a.out.h.patch;patch=1 \
file://fix-kernel-conditionalize-a.out.h.patch;patch=1 \
file://netfilter-include-types_h-in-userspace.patch;patch=1 \
- file://procinfo.h"
+ file://procinfo.h \
+ file://unifdef.patch;patch=1"
S = "${WORKDIR}/linux-${PV}"
diff --git a/recipes/linux/linux-2.6.24/hipox/defconfig b/recipes/linux/linux-2.6.24/hipox/defconfig
index e5d033846e..94a50dcd78 100644
--- a/recipes/linux/linux-2.6.24/hipox/defconfig
+++ b/recipes/linux/linux-2.6.24/hipox/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.24.4
-# Tue Oct 20 14:36:38 2009
+# Tue Dec 1 12:22:00 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -177,6 +177,8 @@ CONFIG_ARCH_HIPOX_PCI_CLKOUT_2=y
CONFIG_ARCH_HIPOX_PCI_CLKOUT_3=y
CONFIG_HIPOX_PCI_RESET=y
CONFIG_HIPOX_PCI_RESET_GPIO=27
+CONFIG_HIPOX_OXE_INT2=y
+CONFIG_HIPOX_OXE_INT2_GPIO=34
# CONFIG_HIPOX_SATA_POWER_1 is not set
# CONFIG_HIPOX_SATA_POWER_2 is not set
CONFIG_FORCE_MAX_ZONEORDER=10
@@ -201,7 +203,7 @@ CONFIG_ARCH_HIPOX_NUM_GMAC_DESCRIPTORS=192
CONFIG_ARCH_HIPOX_MAX_SATA_SG_ENTRIES=256
CONFIG_TACHO_THERM_AND_FAN=m
# CONFIG_GPIO_TEST is not set
-CONFIG_HIPOX_RTC=y
+# CONFIG_HIPOX_RTC is not set
# CONFIG_I2S is not set
# CONFIG_DPE_TEST is not set
# CONFIG_HIPOX_INSTRUMENT_COPIES is not set
@@ -1083,7 +1085,7 @@ CONFIG_RTC_INTF_DEV=y
#
# I2C RTC drivers
#
-CONFIG_RTC_DRV_DS1307=y
+# CONFIG_RTC_DRV_DS1307 is not set
# CONFIG_RTC_DRV_DS1374 is not set
# CONFIG_RTC_DRV_DS1672 is not set
# CONFIG_RTC_DRV_MAX6900 is not set
@@ -1102,6 +1104,9 @@ CONFIG_RTC_DRV_DS1307=y
# Platform RTC drivers
#
# CONFIG_RTC_DRV_CMOS is not set
+CONFIG_RTC_DRV_DRBCC=y
+CONFIG_RTC_DRV_DRBCC_DEVPATH="/dev/ttyS0"
+CONFIG_RTC_DRV_DRBCC_BAUD=921600
# CONFIG_RTC_DRV_DS1553 is not set
# CONFIG_RTC_DRV_STK17TA8 is not set
# CONFIG_RTC_DRV_DS1742 is not set
diff --git a/recipes/linux/linux-2.6.24/hipox/hipox-OXE-INT2.patch b/recipes/linux/linux-2.6.24/hipox/hipox-OXE-INT2.patch
new file mode 100644
index 0000000000..372b139e5c
--- /dev/null
+++ b/recipes/linux/linux-2.6.24/hipox/hipox-OXE-INT2.patch
@@ -0,0 +1,188 @@
+diff -Nurd linux-2.6.24.orig//arch/arm/mach-hipox/Kconfig linux-2.6.24/arch/arm/mach-hipox/Kconfig
+--- linux-2.6.24.orig//arch/arm/mach-hipox/Kconfig 2009-11-30 17:07:36.000000000 +0100
++++ linux-2.6.24/arch/arm/mach-hipox/Kconfig 2009-11-30 17:08:12.000000000 +0100
+@@ -241,6 +241,20 @@
+ reset of the SoC has emerged from reset. This defines the GPIO
+ line which is connected to the PCI reset
+
++config HIPOX_OXE_INT2
++ bool "Signal power state to HIPOX board controller"
++ default y
++ help
++ Signal power state to HIPOX board controller using OXE_INT2 signal.
++
++config HIPOX_OXE_INT2_GPIO
++ int "GPIO line using as power state signal to HIPOX board controller"
++ depends on HIPOX_OXE_INT2
++ default 34
++ help
++ This defines the GPIO used to signal power state to
++ HIPOX board controller.
++
+ config HIPOX_SATA_POWER_1
+ bool "Allow control of SATA 1 disk power via GPIO"
+ default n
+diff -Nurd linux-2.6.24.orig//arch/arm/mach-hipox/hipox.c linux-2.6.24/arch/arm/mach-hipox/hipox.c
+--- linux-2.6.24.orig//arch/arm/mach-hipox/hipox.c 2009-11-30 17:07:36.000000000 +0100
++++ linux-2.6.24/arch/arm/mach-hipox/hipox.c 2009-11-30 17:10:12.000000000 +0100
+@@ -47,6 +47,30 @@
+ #include <asm/arch/leon-early-prog.h>
+ #endif // CONFIG_LEON_START_EARLY
+
++#ifdef CONFIG_HIPOX_OXE_INT2_GPIO
++#if (CONFIG_HIPOX_OXE_INT2_GPIO < 32)
++#define OXE_INT2_NUM CONFIG_HIPOX_OXE_INT2_GPIO
++#define OXE_INT2_PRISEL_REG SYS_CTRL_GPIO_PRIMSEL_CTRL_0
++#define OXE_INT2_SECSEL_REG SYS_CTRL_GPIO_SECSEL_CTRL_0
++#define OXE_INT2_TERSEL_REG SYS_CTRL_GPIO_TERTSEL_CTRL_0
++#define OXE_INT2_QUASEL_REG SYS_CTRL_GPIO_PWMSEL_CTRL_0
++#define OXE_INT2_SET_OE_REG GPIO_A_OUTPUT_ENABLE_SET
++#define OXE_INT2_OUTPUT_SET_REG GPIO_A_OUTPUT_SET
++#define OXE_INT2_OUTPUT_CLR_REG GPIO_A_OUTPUT_CLEAR
++#else
++#define OXE_INT2_NUM ((CONFIG_HIPOX_OXE_INT2_GPIO) - 32)
++#define OXE_INT2_PRISEL_REG SYS_CTRL_GPIO_PRIMSEL_CTRL_1
++#define OXE_INT2_SECSEL_REG SYS_CTRL_GPIO_SECSEL_CTRL_1
++#define OXE_INT2_TERSEL_REG SYS_CTRL_GPIO_TERTSEL_CTRL_1
++#define OXE_INT2_QUASEL_REG SYS_CTRL_GPIO_PWMSEL_CTRL_1
++#define OXE_INT2_SET_OE_REG GPIO_B_OUTPUT_ENABLE_SET
++#define OXE_INT2_OUTPUT_SET_REG GPIO_B_OUTPUT_SET
++#define OXE_INT2_OUTPUT_CLR_REG GPIO_B_OUTPUT_CLEAR
++#endif
++
++#define OXE_INT2_MASK (1UL << (OXE_INT2_NUM))
++#endif // CONFIG_HIPOX_OXE_INT2_GPIO
++
+ #ifdef CONFIG_HIPOX_PCI_RESET_GPIO
+ #if (CONFIG_HIPOX_PCI_RESET_GPIO < 32)
+ #define PCI_RESET_NUM CONFIG_HIPOX_PCI_RESET_GPIO
+@@ -393,6 +417,22 @@
+ // Enable all DDR client interfaces
+ *(volatile u32*)DDR_BLKEN_REG |= (((1UL << DDR_BLKEN_CLIENTS_NUM_BITS) - 1) << DDR_BLKEN_CLIENTS_BIT);
+
++#ifdef CONFIG_HIPOX_OXE_INT2
++ printk("Enable OXE_INT2\n");
++
++ // Disable primary, secondary and teriary GPIO functions on OXE_INT2 line
++ writel(readl(OXE_INT2_PRISEL_REG) & ~OXE_INT2_MASK, OXE_INT2_PRISEL_REG);
++ writel(readl(OXE_INT2_SECSEL_REG) & ~OXE_INT2_MASK, OXE_INT2_SECSEL_REG);
++ writel(readl(OXE_INT2_TERSEL_REG) & ~OXE_INT2_MASK, OXE_INT2_TERSEL_REG);
++ writel(readl(OXE_INT2_QUASEL_REG) & ~OXE_INT2_MASK, OXE_INT2_QUASEL_REG);
++
++ // Enable GPIO output on OXE_INT2 line
++ writel(OXE_INT2_MASK, OXE_INT2_SET_OE_REG);
++
++ // Set OXE_INT2
++ writel(OXE_INT2_MASK, OXE_INT2_OUTPUT_SET_REG);
++#endif // CONFIG_HIPOX_OXE_INT2
++
+ #ifdef CONFIG_ARCH_HIPOX_UART1
+ // Block reset UART1
+ *(volatile u32*)SYS_CTRL_RSTEN_SET_CTRL = (1UL << SYS_CTRL_RSTEN_UART1_BIT);
+@@ -409,10 +449,10 @@
+ *(volatile u32*)SYS_CTRL_GPIO_TERTSEL_CTRL_1 |= 0x00000001;
+
+ // Setup GPIO line direction for UART1 SOUT
+- *(volatile u32*)GPIO_A_OUTPUT_ENABLE_SET |= 0x80000000;
++ *(volatile u32*)GPIO_A_OUTPUT_ENABLE_SET = 0x80000000;
+
+ // Setup GPIO line direction for UART1 SIN
+- *(volatile u32*)GPIO_B_OUTPUT_ENABLE_CLEAR |= 0x00000001;
++ *(volatile u32*)GPIO_B_OUTPUT_ENABLE_CLEAR = 0x00000001;
+
+ #ifdef CONFIG_ARCH_HIPOX_UART1_MODEM
+ // Route UART1 modem control lines onto external pins
+@@ -425,11 +465,11 @@
+ *(volatile u32*)SYS_CTRL_GPIO_TERTSEL_CTRL_1 |= 0x00000006;
+
+ // Setup GPIO line directions for UART1 modem control lines
+- *(volatile u32*)GPIO_A_OUTPUT_ENABLE_SET |= 0x08000000;
+- *(volatile u32*)GPIO_A_OUTPUT_ENABLE_CLEAR |= 0x70000000;
++ *(volatile u32*)GPIO_A_OUTPUT_ENABLE_SET = 0x08000000;
++ *(volatile u32*)GPIO_A_OUTPUT_ENABLE_CLEAR = 0x70000000;
+
+- *(volatile u32*)GPIO_B_OUTPUT_ENABLE_SET |= 0x00000004;
+- *(volatile u32*)GPIO_B_OUTPUT_ENABLE_CLEAR |= 0x00000002;
++ *(volatile u32*)GPIO_B_OUTPUT_ENABLE_SET = 0x00000004;
++ *(volatile u32*)GPIO_B_OUTPUT_ENABLE_CLEAR = 0x00000002;
+ #endif // CONFIG_ARCH_HIPOX_UART1_MODEM
+
+ // Give Linux a contiguous numbering scheme for available UARTs
+@@ -448,8 +488,8 @@
+ *(volatile u32*)SYS_CTRL_GPIO_TERTSEL_CTRL_0 |= 0x00500000;
+
+ // Setup GPIO line directions for UART2 SIN/SOUT
+- *(volatile u32*)GPIO_A_OUTPUT_ENABLE_SET |= 0x00100000;
+- *(volatile u32*)GPIO_A_OUTPUT_ENABLE_CLEAR |= 0x00400000;
++ *(volatile u32*)GPIO_A_OUTPUT_ENABLE_SET = 0x00100000;
++ *(volatile u32*)GPIO_A_OUTPUT_ENABLE_CLEAR = 0x00400000;
+
+ #ifdef CONFIG_ARCH_HIPOX_UART2_MODEM
+ // Route UART2 modem control lines onto external pins
+@@ -458,8 +498,8 @@
+ *(volatile u32*)SYS_CTRL_GPIO_TERTSEL_CTRL_0 |= 0x07800300;
+
+ // Setup GPIO line directions for UART2 modem control lines
+- *(volatile u32*)GPIO_A_OUTPUT_ENABLE_SET |= 0x02000200;
+- *(volatile u32*)GPIO_A_OUTPUT_ENABLE_CLEAR |= 0x05800100;
++ *(volatile u32*)GPIO_A_OUTPUT_ENABLE_SET = 0x02000200;
++ *(volatile u32*)GPIO_A_OUTPUT_ENABLE_CLEAR = 0x05800100;
+ #endif // CONFIG_ARCH_HIPOX_UART2_MODEM
+
+ // Give Linux a contiguous numbering scheme for available UARTs
+@@ -478,8 +518,8 @@
+ *(volatile u32*)SYS_CTRL_GPIO_TERTSEL_CTRL_0 |= 0x000000C0;
+
+ // Setup GPIO line directions for UART3 SIN/SOUT
+- *(volatile u32*)GPIO_A_OUTPUT_ENABLE_SET |= 0x00000080;
+- *(volatile u32*)GPIO_A_OUTPUT_ENABLE_CLEAR |= 0x00000040;
++ *(volatile u32*)GPIO_A_OUTPUT_ENABLE_SET = 0x00000080;
++ *(volatile u32*)GPIO_A_OUTPUT_ENABLE_CLEAR = 0x00000040;
+
+ // Enable UART3 interrupt
+ *(volatile u32*)SYS_CTRL_UART_CTRL |= (1UL << SYS_CTRL_UART3_IQ_EN);
+@@ -491,8 +531,8 @@
+ *(volatile u32*)SYS_CTRL_GPIO_TERTSEL_CTRL_0 |= 0x0000003f;
+
+ // Setup GPIO line directions for UART3 modem control lines
+- *(volatile u32*)GPIO_A_OUTPUT_ENABLE_SET |= 0x00000030;
+- *(volatile u32*)GPIO_A_OUTPUT_ENABLE_CLEAR |= 0x0000000f;
++ *(volatile u32*)GPIO_A_OUTPUT_ENABLE_SET = 0x00000030;
++ *(volatile u32*)GPIO_A_OUTPUT_ENABLE_CLEAR = 0x0000000f;
+ #endif // CONFIG_ARCH_HIPOX_UART3_MODEM
+
+ // Give Linux a contiguous numbering scheme for available UARTs
+@@ -1032,9 +1072,33 @@
+ }
+ #endif // CONFIG_HIPOX_LED_TEST
+
++static void hipox_poweroff(void)
++{
++ printk("Power off OXE810.\n");
++#ifdef CONFIG_HIPOX_OXE_INT2
++ printk("Disable OXE_INT2.\n");
++
++ // Disable primary, secondary and teriary GPIO functions on OXE_INT2 line
++ writel(readl(OXE_INT2_PRISEL_REG) & ~OXE_INT2_MASK, OXE_INT2_PRISEL_REG);
++ writel(readl(OXE_INT2_SECSEL_REG) & ~OXE_INT2_MASK, OXE_INT2_SECSEL_REG);
++ writel(readl(OXE_INT2_TERSEL_REG) & ~OXE_INT2_MASK, OXE_INT2_TERSEL_REG);
++ writel(readl(OXE_INT2_QUASEL_REG) & ~OXE_INT2_MASK, OXE_INT2_QUASEL_REG);
++
++ // Enable GPIO output on OXE_INT2 line
++ writel(OXE_INT2_MASK, OXE_INT2_SET_OE_REG);
++
++ // Reset OXE_INT2
++ writel(OXE_INT2_MASK, OXE_INT2_OUTPUT_CLR_REG);
++#endif // CONFIG_HIPOX_OXE_INT2
++}
++
+ static void __init hipox_init_machine(void)
+ {
+ //printk("hipox_init_machine()\n");
++
++ /* Register machine_poweroff */
++ pm_power_off = hipox_poweroff;
++
+ /* Initialise the spinlock used to make GPIO register set access atomic */
+ spin_lock_init(&hipox_gpio_spinlock);
+
diff --git a/recipes/linux/linux-2.6.24/hipox/hipox-rtc.patch b/recipes/linux/linux-2.6.24/hipox/hipox-rtc.patch
new file mode 100644
index 0000000000..32093b57b0
--- /dev/null
+++ b/recipes/linux/linux-2.6.24/hipox/hipox-rtc.patch
@@ -0,0 +1,650 @@
+diff -Nurd linux-2.6.24.orig//drivers/rtc/Kconfig linux-2.6.24/drivers/rtc/Kconfig
+--- linux-2.6.24.orig//drivers/rtc/Kconfig 2009-12-01 12:31:46.000000000 +0100
++++ linux-2.6.24/drivers/rtc/Kconfig 2009-12-01 12:32:21.000000000 +0100
+@@ -296,6 +296,31 @@
+ This driver can also be built as a module. If so, the module
+ will be called rtc-cmos.
+
++config RTC_DRV_DRBCC
++ tristate "RTC via HIPOX BCTRL"
++ depends on MACH_HIPOX
++ help
++ Say "yes" here to get support for the real time clock
++ found on HIPOX system.
++
++ This driver can also be built as a module. If so, the module
++ will be called rtc-drbcc.
++
++config RTC_DRV_DRBCC_DEVPATH
++ string "Serial device to connect with BCTRL"
++ depends on RTC_DRV_DRBCC
++ default "/dev/ttyS0"
++ help
++ Serial device to connect with BCTRL
++ found on HIPOX system.
++
++config RTC_DRV_DRBCC_BAUD
++ int "Baud rate for BCTRL serial port (integer)"
++ depends on RTC_DRV_DRBCC
++ default 921600
++ help
++ Baud rate for BCTRL serial port.
++
+ config RTC_DRV_DS1216
+ tristate "Dallas DS1216"
+ depends on SNI_RM
+diff -Nurd linux-2.6.24.orig//drivers/rtc/Makefile linux-2.6.24/drivers/rtc/Makefile
+--- linux-2.6.24.orig//drivers/rtc/Makefile 2009-12-01 12:31:46.000000000 +0100
++++ linux-2.6.24/drivers/rtc/Makefile 2009-12-01 12:32:25.000000000 +0100
+@@ -21,6 +21,7 @@
+ obj-$(CONFIG_RTC_DRV_AT91RM9200)+= rtc-at91rm9200.o
+ obj-$(CONFIG_RTC_DRV_BFIN) += rtc-bfin.o
+ obj-$(CONFIG_RTC_DRV_CMOS) += rtc-cmos.o
++obj-$(CONFIG_RTC_DRV_DRBCC) += rtc-drbcc.o
+ obj-$(CONFIG_RTC_DRV_DS1216) += rtc-ds1216.o
+ obj-$(CONFIG_RTC_DRV_DS1307) += rtc-ds1307.o
+ obj-$(CONFIG_RTC_DRV_DS1374) += rtc-ds1374.o
+diff -Nurd linux-2.6.24.orig//drivers/rtc/rtc-drbcc.c linux-2.6.24/drivers/rtc/rtc-drbcc.c
+--- linux-2.6.24.orig//drivers/rtc/rtc-drbcc.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.24/drivers/rtc/rtc-drbcc.c 2009-12-01 12:32:29.000000000 +0100
+@@ -0,0 +1,600 @@
++/* Editor hints for vim
++ * vim:set ts=4 sw=4 noexpandtab:
++ *
++ * HydraIP DRBCC RTC driver
++ * Copyright (C) 2009 DResearch Digital Media Systems
++ * Author: Steffen Sledz <sledz@dresearch.de>
++ *
++ * For usage of filp_open, vfs_read, ..._ioctl & Co. e.g. see :
++ * - http://www.linuxquestions.org/questions/programming-9/accessing-tty-in-kernel-space-596538/
++ * - http://www.linux.it/~rubini/docs/ksys/ksys.html
++ *
++ * $Id: rtc-drbcc.c 2276 2009-12-02 08:28:25Z sledz $
++ */
++
++#include <linux/module.h>
++#include <linux/err.h>
++#include <linux/rtc.h>
++#include <linux/platform_device.h>
++#include <linux/termios.h>
++#include <linux/bcd.h>
++
++#define MODULE_NAME "rtc-drbcc"
++
++/*
++ * Set this to zero to remove all the debug statements via
++ * dead code elimination
++ */
++#define DEBUGGING 1
++
++#if DEBUGGING
++static unsigned int rtc_debug = DEBUGGING;
++#else
++#define rtc_debug 0 /* gcc will remove all the debug code for us */
++#endif
++
++#define PDEBUG(lvl, fmt, args...) if(rtc_debug >= (lvl)) { printk(KERN_DEBUG MODULE_NAME "[%s] " fmt "\n" , __FUNCTION__, ## args); }
++#define PINFO(fmt, args...) printk(KERN_INFO MODULE_NAME "[%s] " fmt "\n" , __FUNCTION__, ## args);
++#define PERROR(fmt, args...) printk(KERN_ERR MODULE_NAME "[%s] " fmt "\n" , __FUNCTION__, ## args);
++
++#define START 0xFA
++#define STOP 0xFB
++
++#define lo8(x) ((x) & 0xFF)
++#define hi8(x) ((x) >> 8)
++
++/*
++ * Driver parameters
++ */
++static int debug = 0;
++
++#ifdef CONFIG_RTC_DRV_DRBCC_DEVPATH
++static char devpath[256] = CONFIG_RTC_DRV_DRBCC_DEVPATH;
++#else
++static char devpath[256] = "/dev/ttyS0";
++#endif // CONFIG_RTC_DRV_DRBCC_DEVPATH
++
++#ifdef CONFIG_RTC_DRV_DRBCC_BAUD
++static int baud = CONFIG_RTC_DRV_DRBCC_BAUD;
++#else
++static int baud = 921600;
++#endif // CONFIG_RTC_DRV_DRBCC_BAUD
++
++module_param(debug, int, 0);
++module_param_string(devpath, devpath, sizeof(devpath), 0);
++module_param(baud, int, 0);
++#if DEBUGGING
++MODULE_PARM_DESC(debug, "debug level (0-6)");
++#else
++MODULE_PARM_DESC(debug, "(ignored)");
++#endif
++MODULE_PARM_DESC(devpath, "Serial device to connect with BCTRL (default: /dev/ttyS0)");
++MODULE_PARM_DESC(baud, "Baud rate for BCTRL serial port (default: 921600)");
++
++static struct platform_device *rtc_drbcc0 = NULL;
++
++static uint8_t myackbit = 0x80;
++
++/*
++ * drbcc commands (see drbcc_ll.h)
++ */
++#define RTC_DRBCC_ACK 0x00
++#define RTC_DRBCC_SYNC 0x01
++#define RTC_DRBCC_REQ_RTC_READ 0x05
++#define RTC_DRBCC_IND_RTC_READ 0x06
++#define RTC_DRBCC_REQ_RTC_SET 0x07
++
++static uint16_t rtc_drbcc_crc_ccitt_update(uint16_t crc, uint8_t data)
++{
++ data ^= lo8 (crc);
++ data ^= data << 4;
++
++ return ((((uint16_t)data << 8) | hi8 (crc)) ^ (uint8_t)(data >> 4)
++ ^ ((uint16_t)data << 3));
++}
++
++static int rtc_drbcc_bctrl_write_cmd(struct file* filp, const uint8_t msgid, const uint8_t* data, size_t len)
++{
++ size_t buflen = 1+1+len+2+1; /* start char, msgid, data, crc, stop char */
++ uint8_t buf[buflen];
++ unsigned i;
++ uint16_t crc = 0xffff;
++ ssize_t nwritten;
++ loff_t offset_tmp = 0;
++
++ buf[0] = START;
++ buf[1] = msgid;
++ crc = rtc_drbcc_crc_ccitt_update(crc, buf[1]);
++ if(data && (len > 0))
++ {
++ for(i = 0; i < len; i++)
++ {
++ buf[2+i] = data[i];
++ crc = rtc_drbcc_crc_ccitt_update(crc, buf[2+i]);
++ }
++ }
++ buf[buflen-3] = lo8(crc);
++ buf[buflen-2] = hi8(crc);
++ buf[buflen-1] = STOP;
++
++ PDEBUG(1, "vfs_write %d bytes to descriptor %p", buflen, filp);
++ nwritten = vfs_write(filp, (char __user *)buf, buflen, &offset_tmp);
++ PDEBUG(1, "%d of %d bytes written", nwritten, buflen);
++ for(i = 0; i < nwritten; i++)
++ {
++ PDEBUG(2, ">%02X>", buf[i]);
++ }
++
++ return (nwritten == buflen) ? 0 : -EIO;
++}
++
++/*
++ * read at least len bytes into data or timeout,
++ * skip all bytes up to a valid start char
++ */
++static int rtc_drbcc_bctrl_read_answer(struct file* filp, uint8_t* data, size_t len, unsigned timeout /* jiffies */)
++{
++ static uint8_t rbuf[1024]; /* should be enough for or messages */
++ static uint8_t* pos = rbuf;
++ uint8_t* tpos;
++ loff_t offset_tmp = 0;
++ ssize_t nread;
++ int ret = 0;
++
++ if(len > sizeof(rbuf))
++ {
++ PERROR("can't read that much bytes at once");
++ ret = -EIO;
++ }
++
++ PDEBUG(9, "rbuf=%p pos=%p pos-rbuf=%d len=%d", rbuf, pos, pos-rbuf, len);
++ if((ret == 0) && (tpos = memchr(rbuf, START, pos-rbuf)))
++ {
++ if(tpos != rbuf)
++ {
++ PDEBUG(9, "rbuf=%p pos=%p tpos=%p pos-rbuf=%d len=%d", rbuf, pos, tpos, pos-rbuf, len);
++ /* skip bytes up to start char */
++ PDEBUG(9, "move %d bytes from %p to %p", pos-tpos, tpos, rbuf);
++ memmove(rbuf, tpos, pos-tpos);
++ pos -= tpos-rbuf;
++ }
++ }
++
++ while((ret == 0) && (timeout > 0) && ((pos - rbuf) < len))
++ {
++ timeout--;
++
++ /* wait a jiffy */
++ set_current_state(TASK_INTERRUPTIBLE);
++ schedule_timeout(1);
++
++ PDEBUG(1, "vfs_read %d bytes from descriptor %p to pos %p", rbuf+sizeof(rbuf)-pos, filp, pos);
++ nread = vfs_read(filp, (char __user *)pos, rbuf+sizeof(rbuf)-pos, &offset_tmp);
++ if(nread > 0)
++ {
++ unsigned i;
++ PDEBUG(1, "%d bytes read", nread);
++ for(i = 0; i < nread; i++)
++ {
++ PDEBUG(2, "<%02X<", pos[i]);
++ }
++ pos += nread;
++ }
++ else if((nread == -EAGAIN) || (nread == 0))
++ {
++ // wait and try again
++ }
++ else
++ {
++ PERROR("vfs_read returned error %d", nread);
++ ret = -EIO;
++ }
++
++ if((ret == 0) && (tpos = memchr(rbuf, START, pos-rbuf)))
++ {
++ if(tpos != rbuf)
++ {
++ PDEBUG(9, "rbuf=%p pos=%p tpos=%p pos-rbuf=%d len=%d", rbuf, pos, tpos, pos-rbuf, len);
++ /* skip bytes up to start char */
++ PDEBUG(9, "move %d bytes from %p to %p", pos-tpos, tpos, rbuf);
++ memmove(rbuf, tpos, pos-tpos);
++ pos -= tpos-rbuf;
++ }
++ }
++ }
++
++ if(rbuf[0] != START)
++ {
++ PERROR("missing start character");
++ ret = -EIO;
++ }
++
++ if(pos-rbuf < len)
++ {
++ PERROR("not enough data");
++ ret = -EIO;
++ }
++
++ if(rbuf[len-1] != STOP)
++ {
++ PERROR("missing stop character %d 0x%02X", len-1, rbuf[len-1]);
++ ret = -EIO;
++ }
++
++ // TODO: check crc
++
++ if(ret == 0)
++ {
++ memcpy(data, rbuf, len);
++ memmove(rbuf, rbuf+len, pos-rbuf-len);
++ pos -= len;
++ }
++
++ PDEBUG(1, "return %d", ret);
++ return ret;
++}
++
++static int rtc_drbcc_bctrl_check_answer(struct file* filp, const uint8_t msgid, uint8_t* returned_ackbit, uint8_t* data, size_t len, unsigned timeout /* jiffies */)
++{
++ uint8_t rbuf[1+1+len+2+1]; /* start char, msgid, data, crc, stop char */
++ int ret;
++
++ ret = rtc_drbcc_bctrl_read_answer(filp, rbuf, sizeof(rbuf), timeout);
++ if(ret == 0)
++ {
++ unsigned i;
++ PDEBUG(1, "got %d bytes", sizeof(rbuf));
++ for(i = 0; i < sizeof(rbuf); i++)
++ {
++ PDEBUG(2, "[%02X]", rbuf[i]);
++ }
++
++ if((rbuf[1] & 0x7F) != msgid)
++ {
++ PERROR("wrong msgid 0x%02X instead of 0x%02X", rbuf[1] & 0x7F, msgid);
++ ret = -EIO;
++ }
++ PDEBUG(1, "valid answer found");
++ memcpy(data, rbuf+2, len);
++ *returned_ackbit = rbuf[1] & 0x80;
++ }
++
++ PDEBUG(1, "return %d", ret);
++ return ret;
++}
++
++static int rtc_drbcc_set_termios(struct file *filp)
++{
++ struct termios tios;
++ struct inode dummy;
++ speed_t speed = B921600;
++ int ret = 0;
++
++ /* get terminal interface settings */
++ ret = filp->f_op->ioctl(&dummy, filp, TCGETS, (unsigned long)&tios);
++ if(ret == 0)
++ {
++
++ PDEBUG(6, "old tios.c_iflag=0x%08X", tios.c_iflag);
++ PDEBUG(6, "old tios.c_oflag=0x%08X", tios.c_oflag);
++ PDEBUG(6, "old tios.c_cflag=0x%08X", tios.c_cflag);
++ PDEBUG(6, "old tios.c_lflag=0x%08X", tios.c_lflag);
++ PDEBUG(6, "old tios.c_line=0x%02X", tios.c_line);
++
++ /* set terminal raw like cfmakeraw does (see manpage) */
++ tios.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON);
++ tios.c_oflag &= ~OPOST;
++ tios.c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN);
++ tios.c_cflag &= ~(CSIZE | PARENB);
++ tios.c_cflag |= CS8;
++
++ /* set baud rate like cfsetospeed does (see glibc sources) */
++#ifdef _HAVE_STRUCT_TERMIOS_C_OSPEED
++ tios.c_ospeed = speed;
++#endif
++ tios.c_cflag &= ~(CBAUD | CBAUDEX);
++ tios.c_cflag |= speed;
++
++ /* set 1 stop bit */
++ tios.c_cflag &= ~CSTOPB;
++
++ PDEBUG(6, "new tios.c_iflag=0x%08X", tios.c_iflag);
++ PDEBUG(6, "new tios.c_oflag=0x%08X", tios.c_oflag);
++ PDEBUG(6, "new tios.c_cflag=0x%08X", tios.c_cflag);
++ PDEBUG(6, "new tios.c_lflag=0x%08X", tios.c_lflag);
++ PDEBUG(6, "new tios.c_line=0x%02X", tios.c_line);
++
++ /* set new terminal interface settings */
++ ret = filp->f_op->ioctl(&dummy, filp, TCSETS, (unsigned long)&tios);
++ }
++ PDEBUG(1, "return %d", ret);
++ return ret;
++}
++
++static int rtc_drbcc_read_time(struct device *dev,
++ struct rtc_time *tm)
++{
++ uint8_t remoteackbit = 0x00;
++ struct file *filp;
++ mm_segment_t old_fs;
++ int ret = 0;
++ uint8_t rtcstr[8]; /* for RTC_READ: <sec> <min> <hour> <day> <date> <month> <year> <epoch> */
++
++ old_fs = get_fs();
++ set_fs(KERNEL_DS);
++
++ PDEBUG(1, "opening %s", devpath);
++ filp = filp_open(devpath, O_RDWR | O_NOCTTY | O_NONBLOCK | O_NDELAY, 0);
++ if (IS_ERR(filp)) {
++ PERROR("unable to open serial device to BCTRL: %s", devpath);
++ ret = PTR_ERR(filp);
++ goto end2;
++ }
++ PDEBUG(1, "%s opened at descriptor %p", devpath, filp);
++
++ ret = rtc_drbcc_set_termios(filp);
++ if(ret) { goto end1; }
++
++ PDEBUG(1, "send sync");
++ ret = rtc_drbcc_bctrl_write_cmd(filp, RTC_DRBCC_SYNC | myackbit, NULL, 0);
++ if(ret) { goto end1; }
++
++ PDEBUG(1, "wait ack");
++ ret = rtc_drbcc_bctrl_check_answer(filp, RTC_DRBCC_ACK, &remoteackbit, NULL, 0, 100);
++ if(ret) { goto end1; }
++ myackbit ^= 0x80; /* toggle ACK bit */
++
++ PDEBUG(1, "send rtc request");
++ ret = rtc_drbcc_bctrl_write_cmd(filp, RTC_DRBCC_REQ_RTC_READ | myackbit, NULL, 0);
++ if(ret) { goto end1; }
++
++ PDEBUG(1, "wait ack");
++ ret = rtc_drbcc_bctrl_check_answer(filp, RTC_DRBCC_ACK, &remoteackbit, NULL, 0, 100);
++ if(ret) { goto end1; }
++ myackbit ^= 0x80; /* toggle ACK bit */
++
++ PDEBUG(1, "wait rtc response");
++ ret = rtc_drbcc_bctrl_check_answer(filp, RTC_DRBCC_IND_RTC_READ, &remoteackbit, rtcstr, sizeof(rtcstr), 1000);
++ if(ret) { goto end1; }
++
++ PDEBUG(1, "send ack");
++ ret = rtc_drbcc_bctrl_write_cmd(filp, RTC_DRBCC_ACK | remoteackbit, NULL, 0);
++ if(ret) { goto end1; }
++
++ /* <sec> <min> <hour> <day> <date> <month> <year> <epoch> */
++ PDEBUG(1, "read time %02X %02X %02X %02X %02X %02X %02X %02X",
++ rtcstr[0], rtcstr[1], rtcstr[2], rtcstr[3],
++ rtcstr[4], rtcstr[5], rtcstr[6], rtcstr[7]);
++ tm->tm_sec = BCD2BIN(rtcstr[0]);
++ tm->tm_min = BCD2BIN(rtcstr[1]);
++ tm->tm_hour = BCD2BIN(rtcstr[2]);
++ tm->tm_wday = BCD2BIN(rtcstr[3]) - 1;
++ tm->tm_mday = BCD2BIN(rtcstr[4]);
++ tm->tm_mon = BCD2BIN(rtcstr[5]) - 1;
++ tm->tm_year = BCD2BIN(rtcstr[6]) + 100;
++ PDEBUG(1, "secs=%d, mins=%d, hours=%d, mday=%d, mon=%d, year=%d, wday=%d",
++ tm->tm_sec, tm->tm_min,
++ tm->tm_hour, tm->tm_mday,
++ tm->tm_mon, tm->tm_year, tm->tm_wday);
++
++ end1:
++ filp_close(filp, current->files);
++ end2:
++ set_fs(old_fs);
++
++ PDEBUG(1, "return %d", ret);
++ return ret;
++}
++
++static int rtc_drbcc_set_time(struct device *dev,
++ struct rtc_time *tm)
++{
++ uint8_t remoteackbit = 0x00;
++ struct file *filp;
++ mm_segment_t old_fs;
++ int ret = 0;
++ uint8_t newrtcstr[7]; /* for RTC_SET: <sec> <min> <hour> <day> <date> <month> <year> */
++ uint8_t rtcstr[8]; /* for RTC_READ: <sec> <min> <hour> <day> <date> <month> <year> <epoch> */
++
++ old_fs = get_fs();
++ set_fs(KERNEL_DS);
++
++ PDEBUG(1, "opening %s", devpath);
++ filp = filp_open(devpath, O_RDWR | O_NOCTTY | O_NONBLOCK | O_NDELAY, 0);
++ if (IS_ERR(filp)) {
++ PERROR("unable to open serial device to BCTRL: %s", devpath);
++ ret = PTR_ERR(filp);
++ goto end2;
++ }
++ PDEBUG(1, "%s opened at descriptor %p", devpath, filp);
++
++ ret = rtc_drbcc_set_termios(filp);
++ if(ret) { goto end1; }
++
++ PDEBUG(1, "send sync");
++ ret = rtc_drbcc_bctrl_write_cmd(filp, RTC_DRBCC_SYNC | myackbit, NULL, 0);
++ if(ret) { goto end1; }
++
++ PDEBUG(1, "wait ack");
++ ret = rtc_drbcc_bctrl_check_answer(filp, RTC_DRBCC_ACK, &remoteackbit, NULL, 0, 100);
++ if(ret) { goto end1; }
++ myackbit ^= 0x80; /* toggle ACK bit */
++
++ /* <sec> <min> <hour> <day> <date> <month> <year> */
++ PDEBUG(1, "secs=%d, mins=%d, hours=%d, mday=%d, mon=%d, year=%d, wday=%d",
++ tm->tm_sec, tm->tm_min,
++ tm->tm_hour, tm->tm_mday,
++ tm->tm_mon, tm->tm_year, tm->tm_wday);
++ newrtcstr[0] = BIN2BCD(tm->tm_sec);
++ newrtcstr[1] = BIN2BCD(tm->tm_min);
++ newrtcstr[2] = BIN2BCD(tm->tm_hour);
++ newrtcstr[3] = BIN2BCD(tm->tm_wday + 1);
++ newrtcstr[4] = BIN2BCD(tm->tm_mday);
++ newrtcstr[5] = BIN2BCD(tm->tm_mon + 1);
++ newrtcstr[6] = BIN2BCD(tm->tm_year - 100);
++ PDEBUG(1, "set time %02X %02X %02X %02X %02X %02X %02X",
++ newrtcstr[0], newrtcstr[1], newrtcstr[2], newrtcstr[3],
++ newrtcstr[4], newrtcstr[5], newrtcstr[6]);
++
++ PDEBUG(1, "send setrtc request");
++ ret = rtc_drbcc_bctrl_write_cmd(filp, RTC_DRBCC_REQ_RTC_SET | myackbit, newrtcstr, sizeof(newrtcstr));
++ if(ret) { goto end1; }
++
++ PDEBUG(1, "wait ack");
++ ret = rtc_drbcc_bctrl_check_answer(filp, RTC_DRBCC_ACK, &remoteackbit, NULL, 0, 100);
++ if(ret) { goto end1; }
++ myackbit ^= 0x80; /* toggle ACK bit */
++
++ PDEBUG(1, "wait rtc response");
++ ret = rtc_drbcc_bctrl_check_answer(filp, RTC_DRBCC_IND_RTC_READ, &remoteackbit, rtcstr, sizeof(rtcstr), 1000);
++ if(ret) { goto end1; }
++
++ PDEBUG(1, "send ack");
++ ret = rtc_drbcc_bctrl_write_cmd(filp, RTC_DRBCC_ACK | remoteackbit, NULL, 0);
++ if(ret) { goto end1; }
++
++ /* <sec> <min> <hour> <day> <date> <month> <year> <epoch> */
++ PDEBUG(1, "read time %02X %02X %02X %02X %02X %02X %02X %02X",
++ rtcstr[0], rtcstr[1], rtcstr[2], rtcstr[3],
++ rtcstr[4], rtcstr[5], rtcstr[6], rtcstr[7]);
++
++ end1:
++ filp_close(filp, current->files);
++ end2:
++ set_fs(old_fs);
++
++ PDEBUG(1, "return %d", ret);
++ return ret;
++}
++
++static int rtc_drbcc_proc(struct device *dev, struct seq_file *seq)
++{
++ struct platform_device *plat_dev = to_platform_device(dev);
++
++ seq_printf(seq, "%s\t: yes\n", MODULE_NAME);
++ seq_printf(seq, "id\t\t: %d\n", plat_dev->id);
++
++ return 0;
++}
++
++static int rtc_drbcc_ioctl(struct device *dev, unsigned int cmd,
++ unsigned long arg)
++{
++ switch (cmd) {
++ default:
++ return -ENOIOCTLCMD;
++ }
++ return 0;
++}
++
++static const struct rtc_class_ops rtc_drbcc_ops = {
++ .proc = rtc_drbcc_proc,
++ .read_time = rtc_drbcc_read_time,
++ .set_time = rtc_drbcc_set_time,
++ .ioctl = rtc_drbcc_ioctl,
++};
++
++static int rtc_drbcc_probe(struct platform_device *plat_dev)
++{
++ int err;
++ struct rtc_device *rtc;
++
++ PDEBUG(1, "register device");
++ rtc = rtc_device_register(MODULE_NAME, &plat_dev->dev, &rtc_drbcc_ops, THIS_MODULE);
++ if (IS_ERR(rtc)) {
++ err = PTR_ERR(rtc);
++ return err;
++ }
++
++#if 0
++ err = device_create_file(&plat_dev->dev, &dev_attr_irq);
++ if (err)
++ goto err;
++#endif
++ platform_set_drvdata(plat_dev, rtc);
++
++ return 0;
++
++//err:
++ rtc_device_unregister(rtc);
++ return err;
++}
++
++static int __devexit rtc_drbcc_remove(struct platform_device *plat_dev)
++{
++ struct rtc_device *rtc = platform_get_drvdata(plat_dev);
++
++ PDEBUG(1, "unregister device");
++ rtc_device_unregister(rtc);
++#if 0
++ device_remove_file(&plat_dev->dev, &dev_attr_irq);
++#endif
++ return 0;
++}
++
++static struct platform_driver rtc_drbcc_drv = {
++ .probe = rtc_drbcc_probe,
++ .remove = __devexit_p(rtc_drbcc_remove),
++ .driver = {
++ .name = MODULE_NAME,
++ .owner = THIS_MODULE,
++ },
++};
++
++static int __init rtc_drbcc_init(void)
++{
++ int err;
++
++#if DEBUGGING
++ rtc_debug = debug;
++#else
++ debug = 0;
++#endif
++
++ PDEBUG(1, "debug=%d devpath=%s baud=%d", debug, devpath, baud);
++ if ((err = platform_driver_register(&rtc_drbcc_drv)))
++ return err;
++
++ if ((rtc_drbcc0 = platform_device_alloc(MODULE_NAME, 0)) == NULL) {
++ err = -ENOMEM;
++ goto exit_driver_unregister;
++ }
++
++ if ((err = platform_device_add(rtc_drbcc0)))
++ goto exit_device_unregister;
++
++ return 0;
++
++exit_device_unregister:
++ platform_device_unregister(rtc_drbcc0);
++
++ platform_device_put(rtc_drbcc0);
++
++exit_driver_unregister:
++ platform_driver_unregister(&rtc_drbcc_drv);
++ return err;
++}
++
++static void __exit rtc_drbcc_exit(void)
++{
++ platform_device_unregister(rtc_drbcc0);
++ platform_driver_unregister(&rtc_drbcc_drv);
++}
++
++MODULE_AUTHOR("Steffen Sledz <sledz@dresearch.de>");
++MODULE_DESCRIPTION("HydraIP DRBCC RTC driver");
++MODULE_LICENSE("GPL");
++
++module_init(rtc_drbcc_init);
++module_exit(rtc_drbcc_exit);
++
++/* Editor hints for emacs
++ *
++ * Local Variables:
++ * mode:c
++ * c-basic-offset:4
++ * indent-tabs-mode:t
++ * tab-width:4
++ * End:
++ *
++ * NO CODE BELOW THIS! */
diff --git a/recipes/linux/linux-2.6.24/smartq5/base/0001-Apply-samsung-kernel-patch.patch b/recipes/linux/linux-2.6.24/smartq5/base/0001-Apply-samsung-kernel-patch.patch
new file mode 100644
index 0000000000..2274bd0024
--- /dev/null
+++ b/recipes/linux/linux-2.6.24/smartq5/base/0001-Apply-samsung-kernel-patch.patch
@@ -0,0 +1,336089 @@
+From 9b253055c73de146ed220dc94700f89a1e93c1b0 Mon Sep 17 00:00:00 2001
+From: YouSheng <david.ysh@gmail.com>
+Date: Tue, 21 Jul 2009 14:54:59 +0800
+Subject: [PATCH 1/4] Apply samsung kernel patch
+
+---
+ Changelog | 1383 +
+ Makefile | 19 +-
+ RELEASENOTE | 130 +
+ arch/arm/Kconfig | 21 +-
+ arch/arm/Makefile | 9 +-
+ arch/arm/boot/rootfs.cpio.gz | Bin 0 -> 3753247 bytes
+ arch/arm/boot/rootfs.uboot | Bin 0 -> 3753311 bytes
+ arch/arm/configs/fpgac100_defconfig | 936 +
+ arch/arm/configs/smdk2416mtd_defconfig | 1447 +
+ arch/arm/configs/smdk2416nfs_defconfig | 1397 +
+ arch/arm/configs/smdk2416ramdisk_defconfig | 1447 +
+ arch/arm/configs/smdk2443mtd_defconfig | 1439 +
+ arch/arm/configs/smdk2443nfs_defconfig | 1400 +
+ arch/arm/configs/smdk2450mtd_defconfig | 1495 +
+ arch/arm/configs/smdk2450nfs_defconfig | 1461 +
+ arch/arm/configs/smdk2450ramdisk_defconfig | 1495 +
+ arch/arm/configs/smdk6400mtd_defconfig | 1423 +
+ arch/arm/configs/smdk6400nfs_defconfig | 1384 +
+ arch/arm/configs/smdk6410mtd_defconfig | 1513 +
+ arch/arm/configs/smdk6410nfs_defconfig | 1349 +
+ arch/arm/configs/smdk6410onenand_defconfig | 1354 +
+ arch/arm/configs/smdk6410ramdisk_defconfig | 1513 +
+ arch/arm/configs/smdk6430mtd_defconfig | 1521 +
+ arch/arm/configs/smdk6430nfs_defconfig | 1332 +
+ arch/arm/configs/smdk6430ramdisk_defconfig | 1521 +
+ arch/arm/kernel/entry-common.S | 5 +
+ arch/arm/mach-s3c2410/Makefile.boot | 9 +-
+ arch/arm/mach-s3c2416/Kconfig | 28 +
+ arch/arm/mach-s3c2416/Makefile | 20 +
+ arch/arm/mach-s3c2416/clock.c | 1006 +
+ arch/arm/mach-s3c2416/mach-smdk2416.c | 544 +
+ arch/arm/mach-s3c2416/s3c2416.c | 113 +
+ arch/arm/mach-s3c2443/clock.c | 68 +-
+ arch/arm/mach-s3c2443/dma.c | 10 +
+ arch/arm/mach-s3c2443/irq.c | 6 +
+ arch/arm/mach-s3c2443/mach-smdk2443.c | 183 +-
+ arch/arm/mach-s3c2443/s3c2443.c | 11 +
+ arch/arm/mach-s3c2450/Kconfig | 28 +
+ arch/arm/mach-s3c2450/Makefile | 20 +
+ arch/arm/mach-s3c2450/clock.c | 1095 +
+ arch/arm/mach-s3c2450/mach-smdk2450.c | 565 +
+ arch/arm/mach-s3c2450/s3c2450.c | 113 +
+ arch/arm/mach-s3c6400/Kconfig | 44 +
+ arch/arm/mach-s3c6400/Makefile | 25 +
+ arch/arm/mach-s3c6400/clock.c | 698 +
+ arch/arm/mach-s3c6400/dma-sysfs.c | 276 +
+ arch/arm/mach-s3c6400/dma.c | 312 +
+ arch/arm/mach-s3c6400/irq.c | 48 +
+ arch/arm/mach-s3c6400/kdpmd.c | 208 +
+ arch/arm/mach-s3c6400/leds-s3c6400.c | 117 +
+ arch/arm/mach-s3c6400/leds.c | 89 +
+ arch/arm/mach-s3c6400/leds.h | 1 +
+ arch/arm/mach-s3c6400/mach-smdk6400.c | 637 +
+ arch/arm/mach-s3c6400/pm-s3c6400.c | 794 +
+ arch/arm/mach-s3c6400/pm-s3c6400.h | 67 +
+ arch/arm/mach-s3c6400/pm.c | 116 +
+ arch/arm/mach-s3c6400/s3c6400.c | 139 +
+ arch/arm/mach-s3c6410/Kconfig | 52 +
+ arch/arm/mach-s3c6410/Makefile | 29 +
+ arch/arm/mach-s3c6410/clock.c | 825 +
+ arch/arm/mach-s3c6410/dma-sysfs.c | 276 +
+ arch/arm/mach-s3c6410/dma.c | 329 +
+ arch/arm/mach-s3c6410/irq.c | 48 +
+ arch/arm/mach-s3c6410/leds-s3c6410.c | 117 +
+ arch/arm/mach-s3c6410/leds.c | 89 +
+ arch/arm/mach-s3c6410/leds.h | 1 +
+ arch/arm/mach-s3c6410/mach-smdk6410.c | 868 +
+ arch/arm/mach-s3c6410/pm.c | 116 +
+ arch/arm/mach-s3c6410/pwm/Kconfig | 27 +
+ arch/arm/mach-s3c6410/pwm/Makefile | 8 +
+ arch/arm/mach-s3c6410/pwm/pwm-s3c6410.c | 379 +
+ arch/arm/mach-s3c6410/pwm/pwm-s3c6410.h | 125 +
+ arch/arm/mach-s3c6410/s3c6410.c | 148 +
+ arch/arm/mach-s5pc100/Kconfig | 25 +
+ arch/arm/mach-s5pc100/Makefile | 26 +
+ arch/arm/mach-s5pc100/clock.c | 841 +
+ arch/arm/mach-s5pc100/irq.c | 48 +
+ arch/arm/mach-s5pc100/mach-smdkc100.c | 205 +
+ arch/arm/mach-s5pc100/s5pc100.c | 141 +
+ arch/arm/mm/Kconfig | 13 +-
+ arch/arm/mm/fault.c | 9 +-
+ arch/arm/plat-s3c/Kconfig | 12 +
+ arch/arm/plat-s3c24xx/Kconfig | 15 +-
+ arch/arm/plat-s3c24xx/Makefile | 6 +-
+ arch/arm/plat-s3c24xx/adc-s3c24xx.c | 314 +
+ arch/arm/plat-s3c24xx/clock.c | 3 +
+ arch/arm/plat-s3c24xx/common-smdk.c | 69 +-
+ arch/arm/plat-s3c24xx/cpu.c | 111 +-
+ arch/arm/plat-s3c24xx/devs.c | 890 +-
+ arch/arm/plat-s3c24xx/dma.c | 15 +
+ arch/arm/plat-s3c24xx/gpio.c | 222 +
+ arch/arm/plat-s3c24xx/irq.c | 79 +
+ arch/arm/plat-s3c24xx/s3c244x.c | 1 +
+ arch/arm/plat-s3c24xx/s3c24xx-dvfs.c | 585 +
+ arch/arm/plat-s3c24xx/s3c24xx-dvfs.h | 70 +
+ arch/arm/plat-s3c64xx/Kconfig | 32 +
+ arch/arm/plat-s3c64xx/Makefile | 31 +
+ arch/arm/plat-s3c64xx/adc-s3c64xx.c | 336 +
+ arch/arm/plat-s3c64xx/clock.c | 501 +
+ arch/arm/plat-s3c64xx/dma-pl080.c | 1672 +
+ arch/arm/plat-s3c64xx/irq-pl192.c | 619 +
+ arch/arm/plat-s3c64xx/ltc3714.c | 153 +
+ arch/arm/plat-s3c64xx/pm.c | 787 +
+ arch/arm/plat-s3c64xx/s3c64xx-cpufreq.c | 202 +
+ arch/arm/plat-s3c64xx/s3c64xx-dvfs.c | 547 +
+ arch/arm/plat-s3c64xx/s3c64xx-dvfs.h | 66 +
+ arch/arm/plat-s3c64xx/sleep.S | 165 +
+ arch/arm/plat-s3c64xx/time-s3c64xx.c | 259 +
+ arch/arm/plat-s5pc1xx/Kconfig | 24 +
+ arch/arm/plat-s5pc1xx/Makefile | 26 +
+ arch/arm/plat-s5pc1xx/clock.c | 467 +
+ arch/arm/plat-s5pc1xx/dma-pl330-microcode.c | 278 +
+ arch/arm/plat-s5pc1xx/dma-pl330.c | 1601 +
+ arch/arm/plat-s5pc1xx/gpio.c | 241 +
+ arch/arm/plat-s5pc1xx/irq-pl192.c | 642 +
+ arch/arm/plat-s5pc1xx/time-s5pc1xx.c | 392 +
+ arch/arm/tools/mach-types | 481 +-
+ drivers/Kconfig | 3 +-
+ drivers/char/Kconfig | 15 +
+ drivers/char/Makefile | 2 +
+ drivers/char/mem.c | 18 +
+ drivers/char/s3c_mem.c | 287 +
+ drivers/char/s3c_mem.h | 42 +
+ drivers/i2c/busses/Kconfig | 9 +-
+ drivers/i2c/busses/Makefile | 1 +
+ drivers/i2c/busses/i2c-s3c2410.c | 9 +
+ drivers/i2c/busses/i2c-s3c64xx.c | 908 +
+ drivers/ide/Kconfig | 35 +-
+ drivers/ide/arm/Makefile | 1 +
+ drivers/ide/arm/s3c-ide.c | 1223 +
+ drivers/ide/arm/s3c-ide.h | 113 +
+ drivers/ide/ide-dma.c | 5 +
+ drivers/ide/ide-io.c | 7 +
+ drivers/input/Kconfig | 22 +
+ drivers/input/Makefile | 1 +
+ drivers/input/keyboard/Kconfig | 10 +
+ drivers/input/keyboard/Makefile | 1 +
+ drivers/input/keyboard/s3c-keypad.c | 337 +
+ drivers/input/keyboard/s3c-keypad.h | 61 +
+ drivers/input/touchscreen/Kconfig | 24 +
+ drivers/input/touchscreen/Makefile | 1 +
+ drivers/input/touchscreen/s3c-ts.c | 468 +
+ drivers/input/tsdev.c | 533 +
+ drivers/media/video/Kconfig | 41 +
+ drivers/media/video/Makefile | 1 +
+ drivers/media/video/s3c_camera_driver.c | 2041 +
+ drivers/media/video/s3c_camif.c | 1871 +
+ drivers/media/video/s3c_camif.h | 404 +
+ drivers/media/video/samsung/3xa_sensor.c | 442 +
+ drivers/media/video/samsung/3xa_sensor.h | 3298 ++
+ drivers/media/video/samsung/4xa_sensor.c | 349 +
+ drivers/media/video/samsung/4xa_sensor.h | 2377 +
+ drivers/media/video/samsung/Makefile | 9 +
+ drivers/media/video/samsung/adv7180.c | 421 +
+ drivers/media/video/samsung/adv7180.h | 71 +
+ drivers/media/video/samsung/mt9p012.c | 268 +
+ drivers/media/video/samsung/mt9p012.h | 758 +
+ drivers/media/video/videodev2_s3c.h | 210 +
+ drivers/mmc/core/bus.c | 1 +
+ drivers/mmc/core/mmc.c | 10 +-
+ drivers/mmc/host/Kconfig | 47 +
+ drivers/mmc/host/Makefile | 3 +-
+ drivers/mmc/host/s3c-hsmmc.c | 1398 +
+ drivers/mmc/host/s3c-hsmmc.h | 101 +
+ drivers/mmc/host/s3cmci.c | 893 +
+ drivers/mmc/host/s3cmci.h | 52 +
+ drivers/mtd/nand/Kconfig | 48 +-
+ drivers/mtd/nand/Makefile | 3 +-
+ drivers/mtd/nand/s3c_nand.c | 930 +
+ drivers/mtd/onenand/Makefile | 10 +-
+ drivers/mtd/onenand/onenand_bbt.c | 10 +-
+ drivers/mtd/onenand/s3c_onenand.c | 2636 ++
+ drivers/mtd/onenand/s3c_onenand.h | 158 +
+ drivers/net/Kconfig | 2 +-
+ drivers/net/cs89x0.c | 48 +-
+ drivers/net/irda/Kconfig | 6 +
+ drivers/net/irda/Makefile | 1 +
+ drivers/net/irda/s3c-sir.c | 1166 +
+ drivers/net/smc911x.c | 11 +
+ drivers/net/smc911x.h | 2 +-
+ drivers/rtc/rtc-s3c.c | 103 +-
+ drivers/serial/21285.c | 6 +-
+ drivers/serial/Kconfig | 63 +-
+ drivers/serial/Makefile | 4 +-
+ drivers/serial/s3c2410.c | 19 +-
+ drivers/serial/s3c6400.c | 1676 +
+ drivers/serial/s5pc100.c | 1643 +
+ drivers/spi/Kconfig | 51 +
+ drivers/spi/Makefile | 12 +
+ drivers/spi/hspi-s3c24xx.c | 773 +
+ drivers/spi/hspi-s3c24xx.h | 95 +
+ drivers/spi/hspi-s3c64xx.c | 789 +
+ drivers/spi/hspi-s3c64xx.h | 95 +
+ drivers/spi/spi-dev.c | 379 +
+ drivers/spi/spi-dev.h | 138 +
+ drivers/spi/spi_s3c24xx.c | 2 +-
+ drivers/usb/Makefile | 1 +
+ drivers/usb/gadget/Kconfig | 73 +
+ drivers/usb/gadget/Makefile | 3 +
+ drivers/usb/gadget/epautoconf.c | 18 +
+ drivers/usb/gadget/ether.c | 90 +-
+ drivers/usb/gadget/gadget_chips.h | 8 +
+ drivers/usb/gadget/s3c-udc-fs.c | 1875 +
+ drivers/usb/gadget/s3c-udc-hs.c | 1959 +
+ drivers/usb/gadget/s3c-udc-otg-hs.c | 1091 +
+ drivers/usb/gadget/s3c-udc-otg-xfer-dma.c | 947 +
+ drivers/usb/gadget/s3c-udc-otg-xfer-slave.c | 957 +
+ drivers/usb/gadget/s3c-udc.h | 136 +
+ drivers/usb/host/Kconfig | 5 +
+ drivers/usb/host/Makefile | 2 +-
+ drivers/usb/host/ohci-s3c2410.c | 95 +-
+ drivers/usb/host/s3c-otg/Makefile | 18 +
+ drivers/usb/host/s3c-otg/s3c-otg-common-common.h | 50 +
+ drivers/usb/host/s3c-otg/s3c-otg-common-const.h | 167 +
+ .../usb/host/s3c-otg/s3c-otg-common-datastruct.h | 870 +
+ .../usb/host/s3c-otg/s3c-otg-common-errorcode.h | 114 +
+ drivers/usb/host/s3c-otg/s3c-otg-common-regdef.h | 317 +
+ drivers/usb/host/s3c-otg/s3c-otg-hcdi-debug.h | 96 +
+ drivers/usb/host/s3c-otg/s3c-otg-hcdi-driver.c | 256 +
+ drivers/usb/host/s3c-otg/s3c-otg-hcdi-driver.h | 73 +
+ drivers/usb/host/s3c-otg/s3c-otg-hcdi-hcd.c | 651 +
+ drivers/usb/host/s3c-otg/s3c-otg-hcdi-hcd.h | 144 +
+ drivers/usb/host/s3c-otg/s3c-otg-hcdi-kal.h | 420 +
+ drivers/usb/host/s3c-otg/s3c-otg-hcdi-list.h | 225 +
+ drivers/usb/host/s3c-otg/s3c-otg-hcdi-memory.h | 180 +
+ drivers/usb/host/s3c-otg/s3c-otg-isr.c | 283 +
+ drivers/usb/host/s3c-otg/s3c-otg-isr.h | 72 +
+ drivers/usb/host/s3c-otg/s3c-otg-oci.c | 792 +
+ drivers/usb/host/s3c-otg/s3c-otg-oci.h | 83 +
+ drivers/usb/host/s3c-otg/s3c-otg-roothub.c | 467 +
+ drivers/usb/host/s3c-otg/s3c-otg-roothub.h | 84 +
+ .../host/s3c-otg/s3c-otg-scheduler-ischeduler.c | 427 +
+ .../usb/host/s3c-otg/s3c-otg-scheduler-readyq.c | 253 +
+ .../usb/host/s3c-otg/s3c-otg-scheduler-scheduler.c | 449 +
+ .../usb/host/s3c-otg/s3c-otg-scheduler-scheduler.h | 103 +
+ drivers/usb/host/s3c-otg/s3c-otg-transfer-common.c | 838 +
+ .../host/s3c-otg/s3c-otg-transfer-nonperiodic.c | 147 +
+ .../usb/host/s3c-otg/s3c-otg-transfer-periodic.c | 131 +
+ .../usb/host/s3c-otg/s3c-otg-transfer-transfer.h | 147 +
+ .../host/s3c-otg/s3c-otg-transferchecker-bulk.c | 673 +
+ .../host/s3c-otg/s3c-otg-transferchecker-bulk.h | 88 +
+ .../host/s3c-otg/s3c-otg-transferchecker-checker.h | 66 +
+ .../host/s3c-otg/s3c-otg-transferchecker-common.c | 256 +
+ .../host/s3c-otg/s3c-otg-transferchecker-common.h | 79 +
+ .../host/s3c-otg/s3c-otg-transferchecker-control.c | 791 +
+ .../host/s3c-otg/s3c-otg-transferchecker-control.h | 100 +
+ .../s3c-otg/s3c-otg-transferchecker-interrupt.c | 582 +
+ .../s3c-otg/s3c-otg-transferchecker-interrupt.h | 97 +
+ drivers/video/Kconfig | 87 +
+ drivers/video/Makefile | 2 +
+ drivers/video/backlight/Kconfig | 8 +
+ drivers/video/backlight/Makefile | 1 +
+ drivers/video/backlight/smdk_bl.c | 166 +
+ drivers/video/cfbimgblt.c | 6 +
+ drivers/video/logo/Kconfig | 5 +
+ drivers/video/logo/Makefile | 1 +
+ drivers/video/logo/logo.c | 5 +
+ drivers/video/logo/logo_linux_clut224.ppm |11443 ++++-
+ .../video/logo/logo_linux_landscaped_clut224.ppm |48483 ++++++++++++++++++++
+ drivers/video/s3c/Makefile | 12 +
+ drivers/video/s3c/s3cfb.c | 991 +
+ drivers/video/s3c/s3cfb.h | 505 +
+ drivers/video/s3c/s3cfb_fimd3x.c | 840 +
+ drivers/video/s3c/s3cfb_fimd4x.c | 1295 +
+ drivers/video/s3c/s3cfb_lte480wv.c | 98 +
+ drivers/video/s3c/s3cfb_lts222qv.c | 311 +
+ drivers/video/s3c/s3cfb_ltv350qv.c | 288 +
+ drivers/video/s3c/s3cfb_spi.c | 129 +
+ drivers/video/s3c/s5pfb_fimd5x.c | 1259 +
+ drivers/video/s3c2410fb.c | 2 +-
+ fs/jffs2/scan.c | 8 +-
+ include/asm-arm/arch-s3c2410/dma.h | 282 +-
+ include/asm-arm/arch-s3c2410/entry-macro.S | 39 +
+ include/asm-arm/arch-s3c2410/gpio.h | 122 +-
+ include/asm-arm/arch-s3c2410/hardware.h | 162 +
+ include/asm-arm/arch-s3c2410/hsmmc.h | 51 +
+ include/asm-arm/arch-s3c2410/irqs-s5pc100.h | 132 +
+ include/asm-arm/arch-s3c2410/irqs.h | 152 +-
+ include/asm-arm/arch-s3c2410/map.h | 402 +-
+ include/asm-arm/arch-s3c2410/memory.h | 17 +
+ include/asm-arm/arch-s3c2410/regs-camif.h | 460 +
+ include/asm-arm/arch-s3c2410/regs-clock.h | 3 +-
+ include/asm-arm/arch-s3c2410/regs-gpio.h | 1566 +-
+ include/asm-arm/arch-s3c2410/regs-gpioj.h | 119 +-
+ include/asm-arm/arch-s3c2410/regs-hsmmc.h | 210 +
+ include/asm-arm/arch-s3c2410/regs-ide.h | 58 +
+ include/asm-arm/arch-s3c2410/regs-irq.h | 91 +-
+ include/asm-arm/arch-s3c2410/regs-keypad.h | 49 +
+ include/asm-arm/arch-s3c2410/regs-lcd.h | 482 +-
+ include/asm-arm/arch-s3c2410/regs-mem.h | 120 +-
+ include/asm-arm/arch-s3c2410/regs-onenand.h | 358 +
+ include/asm-arm/arch-s3c2410/regs-pp.h | 80 +
+ include/asm-arm/arch-s3c2410/regs-s3c-clock.h | 13 +
+ include/asm-arm/arch-s3c2410/regs-s3c2443-clock.h | 61 +-
+ include/asm-arm/arch-s3c2410/regs-s3c6400-clock.h | 268 +
+ include/asm-arm/arch-s3c2410/regs-s5pc100-clock.h | 323 +
+ include/asm-arm/arch-s3c2410/regs-serial.h | 415 +
+ include/asm-arm/arch-s3c2410/regs-tvenc.h | 198 +
+ include/asm-arm/arch-s3c2410/regs-tvscaler.h | 78 +
+ include/asm-arm/arch-s3c2410/regs-udc-hs.h | 153 +
+ include/asm-arm/arch-s3c2410/regs-udc.h | 157 +
+ include/asm-arm/arch-s3c2410/regs-usb-otg-hs.h | 307 +
+ include/asm-arm/arch-s3c2410/reserved_mem.h | 89 +
+ include/asm-arm/arch-s3c2410/system.h | 26 +
+ include/asm-arm/arch-s3c2410/timex.h | 11 +
+ include/asm-arm/irq.h | 4 +
+ include/asm-arm/memory.h | 2 +-
+ include/asm-arm/plat-s3c/adc.h | 29 +
+ include/asm-arm/plat-s3c/iic.h | 3 +
+ include/asm-arm/plat-s3c/map.h | 25 +-
+ include/asm-arm/plat-s3c/nand.h | 6 +
+ include/asm-arm/plat-s3c/regs-adc.h | 12 +
+ include/asm-arm/plat-s3c/regs-iic.h | 44 +
+ include/asm-arm/plat-s3c/regs-nand.h | 18 +-
+ include/asm-arm/plat-s3c/regs-rtc.h | 16 +
+ include/asm-arm/plat-s3c/regs-serial.h | 163 +-
+ include/asm-arm/plat-s3c/regs-timer.h | 106 +-
+ include/asm-arm/plat-s3c/ts.h | 31 +
+ include/asm-arm/plat-s3c/uncompress.h | 4 +
+ include/asm-arm/plat-s3c24xx/clock.h | 2 +
+ include/asm-arm/plat-s3c24xx/common-smdk.h | 6 +
+ include/asm-arm/plat-s3c24xx/cpu.h | 25 +
+ include/asm-arm/plat-s3c24xx/devs.h | 46 +-
+ include/asm-arm/plat-s3c24xx/dma.h | 3 +
+ include/asm-arm/plat-s3c24xx/pm.h | 7 +
+ include/asm-arm/plat-s3c24xx/regs-iis.h | 96 +-
+ include/asm-arm/plat-s3c24xx/regs-spi.h | 221 +-
+ include/asm-arm/plat-s3c24xx/s3c2416.h | 30 +
+ include/asm-arm/plat-s3c24xx/s3c2443.h | 4 +-
+ include/asm-arm/plat-s3c24xx/s3c2450.h | 30 +
+ include/asm-arm/plat-s3c64xx/clock.h | 65 +
+ include/asm-arm/plat-s3c64xx/regs-iis.h | 126 +
+ include/asm-arm/plat-s3c64xx/s3c6400.h | 27 +
+ include/asm-arm/plat-s3c64xx/s3c6410.h | 31 +
+ include/asm-arm/plat-s5p/clock.h | 67 +
+ include/asm-arm/plat-s5p/regs-gpio.h | 2115 +
+ include/asm-arm/plat-s5p/regs-iis.h | 126 +
+ include/asm-arm/plat-s5p/s5pc100.h | 31 +
+ include/linux/i2c-id.h | 8 +-
+ include/linux/i2c.h | 1 +
+ include/linux/ide.h | 7 +-
+ include/linux/interrupt.h | 20 +-
+ include/linux/mmc/card.h | 1 +
+ include/linux/mmc/host.h | 2 +
+ include/linux/mmzone.h | 3 +-
+ include/linux/usb/ch9.h | 1 +
+ include/sound/soc-dapm.h | 9 +
+ include/sound/soc.h | 7 +
+ kernel/power/Kconfig | 13 +
+ sound/soc/Kconfig | 6 +-
+ sound/soc/Makefile | 2 +-
+ sound/soc/codecs/Kconfig | 12 +
+ sound/soc/codecs/Makefile | 29 +
+ sound/soc/codecs/wm8580.c | 963 +
+ sound/soc/codecs/wm8580.h | 165 +
+ sound/soc/codecs/wm8753.c | 40 +
+ sound/soc/codecs/wm8990.c | 1657 +
+ sound/soc/codecs/wm8990.h | 904 +
+ sound/soc/codecs/wm9713.c | 1224 +
+ sound/soc/codecs/wm9713.h | 51 +
+ sound/soc/s3c24xx/Kconfig | 66 +-
+ sound/soc/s3c24xx/Makefile | 15 +-
+ sound/soc/s3c24xx/neo1973_wm8753.c | 2 +-
+ sound/soc/s3c24xx/s3c-i2s.c | 619 +
+ sound/soc/s3c24xx/s3c-i2s.h | 43 +
+ sound/soc/s3c24xx/s3c-pcm.c | 544 +
+ sound/soc/s3c24xx/s3c-pcm.h | 40 +
+ sound/soc/s3c24xx/s3c2443-ac97.c | 2 +-
+ sound/soc/s3c24xx/s3c2450-ac97.c | 561 +
+ sound/soc/s3c24xx/s3c2450-i2s.c | 556 +
+ sound/soc/s3c24xx/s3c24xx-ac97.h | 2 +
+ sound/soc/s3c24xx/s3c24xx-i2s.c | 2 +-
+ sound/soc/s3c24xx/smdk2443_wm9710.c | 2 +-
+ sound/soc/s3c24xx/smdk2450_wm8580.c | 395 +
+ sound/soc/s3c24xx/smdk2450_wm9713.c | 88 +
+ sound/soc/s3c64xx/Kconfig | 110 +
+ sound/soc/s3c64xx/Makefile | 18 +
+ sound/soc/s3c64xx/s3c6410-i2s-v32.c | 528 +
+ sound/soc/s3c64xx/s3c6410-i2s-v40.c | 604 +
+ sound/soc/s3c64xx/s3c64xx-ac97.c | 487 +
+ sound/soc/s3c64xx/s3c64xx-ac97.h | 25 +
+ sound/soc/s3c64xx/smdk6400_wm8753.c | 436 +
+ sound/soc/s3c64xx/smdk6410_wm8580.c | 365 +
+ sound/soc/s3c64xx/smdk6410_wm8990.c | 439 +
+ sound/soc/s3c64xx/smdk64xx_wm9713.c | 88 +
+ 385 files changed, 184748 insertions(+), 1907 deletions(-)
+ create mode 100644 Changelog
+ create mode 100644 RELEASENOTE
+ create mode 100644 arch/arm/boot/rootfs.cpio.gz
+ create mode 100644 arch/arm/boot/rootfs.uboot
+ create mode 100644 arch/arm/configs/fpgac100_defconfig
+ create mode 100644 arch/arm/configs/smdk2416mtd_defconfig
+ create mode 100644 arch/arm/configs/smdk2416nfs_defconfig
+ create mode 100644 arch/arm/configs/smdk2416ramdisk_defconfig
+ create mode 100644 arch/arm/configs/smdk2443mtd_defconfig
+ create mode 100644 arch/arm/configs/smdk2443nfs_defconfig
+ create mode 100644 arch/arm/configs/smdk2450mtd_defconfig
+ create mode 100644 arch/arm/configs/smdk2450nfs_defconfig
+ create mode 100644 arch/arm/configs/smdk2450ramdisk_defconfig
+ create mode 100644 arch/arm/configs/smdk6400mtd_defconfig
+ create mode 100644 arch/arm/configs/smdk6400nfs_defconfig
+ create mode 100644 arch/arm/configs/smdk6410mtd_defconfig
+ create mode 100644 arch/arm/configs/smdk6410nfs_defconfig
+ create mode 100644 arch/arm/configs/smdk6410onenand_defconfig
+ create mode 100644 arch/arm/configs/smdk6410ramdisk_defconfig
+ create mode 100644 arch/arm/configs/smdk6430mtd_defconfig
+ create mode 100644 arch/arm/configs/smdk6430nfs_defconfig
+ create mode 100644 arch/arm/configs/smdk6430ramdisk_defconfig
+ create mode 100644 arch/arm/mach-s3c2416/Kconfig
+ create mode 100644 arch/arm/mach-s3c2416/Makefile
+ create mode 100644 arch/arm/mach-s3c2416/clock.c
+ create mode 100644 arch/arm/mach-s3c2416/mach-smdk2416.c
+ create mode 100644 arch/arm/mach-s3c2416/s3c2416.c
+ create mode 100644 arch/arm/mach-s3c2450/Kconfig
+ create mode 100644 arch/arm/mach-s3c2450/Makefile
+ create mode 100644 arch/arm/mach-s3c2450/clock.c
+ create mode 100644 arch/arm/mach-s3c2450/mach-smdk2450.c
+ create mode 100644 arch/arm/mach-s3c2450/s3c2450.c
+ create mode 100644 arch/arm/mach-s3c6400/Kconfig
+ create mode 100644 arch/arm/mach-s3c6400/Makefile
+ create mode 100644 arch/arm/mach-s3c6400/clock.c
+ create mode 100644 arch/arm/mach-s3c6400/dma-sysfs.c
+ create mode 100644 arch/arm/mach-s3c6400/dma.c
+ create mode 100644 arch/arm/mach-s3c6400/irq.c
+ create mode 100644 arch/arm/mach-s3c6400/kdpmd.c
+ create mode 100644 arch/arm/mach-s3c6400/leds-s3c6400.c
+ create mode 100644 arch/arm/mach-s3c6400/leds.c
+ create mode 100644 arch/arm/mach-s3c6400/leds.h
+ create mode 100644 arch/arm/mach-s3c6400/mach-smdk6400.c
+ create mode 100644 arch/arm/mach-s3c6400/pm-s3c6400.c
+ create mode 100644 arch/arm/mach-s3c6400/pm-s3c6400.h
+ create mode 100644 arch/arm/mach-s3c6400/pm.c
+ create mode 100644 arch/arm/mach-s3c6400/s3c6400.c
+ create mode 100644 arch/arm/mach-s3c6410/Kconfig
+ create mode 100644 arch/arm/mach-s3c6410/Makefile
+ create mode 100644 arch/arm/mach-s3c6410/clock.c
+ create mode 100644 arch/arm/mach-s3c6410/dma-sysfs.c
+ create mode 100644 arch/arm/mach-s3c6410/dma.c
+ create mode 100644 arch/arm/mach-s3c6410/irq.c
+ create mode 100644 arch/arm/mach-s3c6410/leds-s3c6410.c
+ create mode 100644 arch/arm/mach-s3c6410/leds.c
+ create mode 100644 arch/arm/mach-s3c6410/leds.h
+ create mode 100644 arch/arm/mach-s3c6410/mach-smdk6410.c
+ create mode 100644 arch/arm/mach-s3c6410/pm.c
+ create mode 100644 arch/arm/mach-s3c6410/pwm/Kconfig
+ create mode 100644 arch/arm/mach-s3c6410/pwm/Makefile
+ create mode 100644 arch/arm/mach-s3c6410/pwm/pwm-s3c6410.c
+ create mode 100644 arch/arm/mach-s3c6410/pwm/pwm-s3c6410.h
+ create mode 100644 arch/arm/mach-s3c6410/s3c6410.c
+ create mode 100644 arch/arm/mach-s5pc100/Kconfig
+ create mode 100644 arch/arm/mach-s5pc100/Makefile
+ create mode 100644 arch/arm/mach-s5pc100/clock.c
+ create mode 100644 arch/arm/mach-s5pc100/irq.c
+ create mode 100644 arch/arm/mach-s5pc100/mach-smdkc100.c
+ create mode 100644 arch/arm/mach-s5pc100/s5pc100.c
+ create mode 100644 arch/arm/plat-s3c24xx/adc-s3c24xx.c
+ create mode 100644 arch/arm/plat-s3c24xx/s3c24xx-dvfs.c
+ create mode 100644 arch/arm/plat-s3c24xx/s3c24xx-dvfs.h
+ create mode 100644 arch/arm/plat-s3c64xx/Kconfig
+ create mode 100644 arch/arm/plat-s3c64xx/Makefile
+ create mode 100644 arch/arm/plat-s3c64xx/adc-s3c64xx.c
+ create mode 100644 arch/arm/plat-s3c64xx/clock.c
+ create mode 100644 arch/arm/plat-s3c64xx/dma-pl080.c
+ create mode 100644 arch/arm/plat-s3c64xx/irq-pl192.c
+ create mode 100644 arch/arm/plat-s3c64xx/ltc3714.c
+ create mode 100644 arch/arm/plat-s3c64xx/pm.c
+ create mode 100644 arch/arm/plat-s3c64xx/s3c64xx-cpufreq.c
+ create mode 100644 arch/arm/plat-s3c64xx/s3c64xx-dvfs.c
+ create mode 100644 arch/arm/plat-s3c64xx/s3c64xx-dvfs.h
+ create mode 100644 arch/arm/plat-s3c64xx/sleep.S
+ create mode 100644 arch/arm/plat-s3c64xx/time-s3c64xx.c
+ create mode 100644 arch/arm/plat-s5pc1xx/Kconfig
+ create mode 100644 arch/arm/plat-s5pc1xx/Makefile
+ create mode 100644 arch/arm/plat-s5pc1xx/clock.c
+ create mode 100644 arch/arm/plat-s5pc1xx/dma-pl330-microcode.c
+ create mode 100644 arch/arm/plat-s5pc1xx/dma-pl330.c
+ create mode 100644 arch/arm/plat-s5pc1xx/gpio.c
+ create mode 100644 arch/arm/plat-s5pc1xx/irq-pl192.c
+ create mode 100644 arch/arm/plat-s5pc1xx/time-s5pc1xx.c
+ create mode 100644 drivers/char/s3c_mem.c
+ create mode 100644 drivers/char/s3c_mem.h
+ create mode 100644 drivers/i2c/busses/i2c-s3c64xx.c
+ create mode 100644 drivers/ide/arm/s3c-ide.c
+ create mode 100644 drivers/ide/arm/s3c-ide.h
+ create mode 100644 drivers/input/keyboard/s3c-keypad.c
+ create mode 100644 drivers/input/keyboard/s3c-keypad.h
+ create mode 100644 drivers/input/touchscreen/s3c-ts.c
+ create mode 100644 drivers/input/tsdev.c
+ create mode 100644 drivers/media/video/s3c_camera_driver.c
+ create mode 100644 drivers/media/video/s3c_camif.c
+ create mode 100644 drivers/media/video/s3c_camif.h
+ create mode 100644 drivers/media/video/samsung/3xa_sensor.c
+ create mode 100644 drivers/media/video/samsung/3xa_sensor.h
+ create mode 100644 drivers/media/video/samsung/4xa_sensor.c
+ create mode 100644 drivers/media/video/samsung/4xa_sensor.h
+ create mode 100644 drivers/media/video/samsung/Makefile
+ create mode 100644 drivers/media/video/samsung/adv7180.c
+ create mode 100644 drivers/media/video/samsung/adv7180.h
+ create mode 100644 drivers/media/video/samsung/mt9p012.c
+ create mode 100644 drivers/media/video/samsung/mt9p012.h
+ create mode 100644 drivers/media/video/videodev2_s3c.h
+ create mode 100644 drivers/mmc/host/s3c-hsmmc.c
+ create mode 100644 drivers/mmc/host/s3c-hsmmc.h
+ create mode 100644 drivers/mmc/host/s3cmci.c
+ create mode 100644 drivers/mmc/host/s3cmci.h
+ create mode 100644 drivers/mtd/nand/s3c_nand.c
+ create mode 100644 drivers/mtd/onenand/s3c_onenand.c
+ create mode 100644 drivers/mtd/onenand/s3c_onenand.h
+ create mode 100644 drivers/net/irda/s3c-sir.c
+ create mode 100644 drivers/serial/s3c6400.c
+ create mode 100644 drivers/serial/s5pc100.c
+ create mode 100644 drivers/spi/hspi-s3c24xx.c
+ create mode 100644 drivers/spi/hspi-s3c24xx.h
+ create mode 100644 drivers/spi/hspi-s3c64xx.c
+ create mode 100644 drivers/spi/hspi-s3c64xx.h
+ create mode 100644 drivers/spi/spi-dev.c
+ create mode 100644 drivers/spi/spi-dev.h
+ create mode 100644 drivers/usb/gadget/s3c-udc-fs.c
+ create mode 100644 drivers/usb/gadget/s3c-udc-hs.c
+ create mode 100644 drivers/usb/gadget/s3c-udc-otg-hs.c
+ create mode 100644 drivers/usb/gadget/s3c-udc-otg-xfer-dma.c
+ create mode 100644 drivers/usb/gadget/s3c-udc-otg-xfer-slave.c
+ create mode 100644 drivers/usb/gadget/s3c-udc.h
+ create mode 100644 drivers/usb/host/s3c-otg/Makefile
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-common-common.h
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-common-const.h
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-common-datastruct.h
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-common-errorcode.h
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-common-regdef.h
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-hcdi-debug.h
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-hcdi-driver.c
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-hcdi-driver.h
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-hcdi-hcd.c
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-hcdi-hcd.h
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-hcdi-kal.h
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-hcdi-list.h
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-hcdi-memory.h
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-isr.c
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-isr.h
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-oci.c
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-oci.h
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-roothub.c
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-roothub.h
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-scheduler-ischeduler.c
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-scheduler-readyq.c
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-scheduler-scheduler.c
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-scheduler-scheduler.h
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-transfer-common.c
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-transfer-nonperiodic.c
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-transfer-periodic.c
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-transfer-transfer.h
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-transferchecker-bulk.c
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-transferchecker-bulk.h
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-transferchecker-checker.h
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-transferchecker-common.c
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-transferchecker-common.h
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-transferchecker-control.c
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-transferchecker-control.h
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-transferchecker-interrupt.c
+ create mode 100644 drivers/usb/host/s3c-otg/s3c-otg-transferchecker-interrupt.h
+ create mode 100644 drivers/video/backlight/smdk_bl.c
+ create mode 100644 drivers/video/logo/logo_linux_landscaped_clut224.ppm
+ create mode 100644 drivers/video/s3c/Makefile
+ create mode 100644 drivers/video/s3c/s3cfb.c
+ create mode 100644 drivers/video/s3c/s3cfb.h
+ create mode 100644 drivers/video/s3c/s3cfb_fimd3x.c
+ create mode 100644 drivers/video/s3c/s3cfb_fimd4x.c
+ create mode 100644 drivers/video/s3c/s3cfb_lte480wv.c
+ create mode 100644 drivers/video/s3c/s3cfb_lts222qv.c
+ create mode 100644 drivers/video/s3c/s3cfb_ltv350qv.c
+ create mode 100644 drivers/video/s3c/s3cfb_spi.c
+ create mode 100644 drivers/video/s3c/s5pfb_fimd5x.c
+ create mode 100644 include/asm-arm/arch-s3c2410/hsmmc.h
+ create mode 100644 include/asm-arm/arch-s3c2410/irqs-s5pc100.h
+ create mode 100644 include/asm-arm/arch-s3c2410/regs-camif.h
+ create mode 100644 include/asm-arm/arch-s3c2410/regs-hsmmc.h
+ create mode 100644 include/asm-arm/arch-s3c2410/regs-ide.h
+ create mode 100644 include/asm-arm/arch-s3c2410/regs-keypad.h
+ create mode 100644 include/asm-arm/arch-s3c2410/regs-onenand.h
+ create mode 100644 include/asm-arm/arch-s3c2410/regs-pp.h
+ create mode 100644 include/asm-arm/arch-s3c2410/regs-s3c-clock.h
+ create mode 100644 include/asm-arm/arch-s3c2410/regs-s3c6400-clock.h
+ create mode 100644 include/asm-arm/arch-s3c2410/regs-s5pc100-clock.h
+ create mode 100644 include/asm-arm/arch-s3c2410/regs-serial.h
+ create mode 100644 include/asm-arm/arch-s3c2410/regs-tvenc.h
+ create mode 100644 include/asm-arm/arch-s3c2410/regs-tvscaler.h
+ create mode 100644 include/asm-arm/arch-s3c2410/regs-udc-hs.h
+ create mode 100644 include/asm-arm/arch-s3c2410/regs-udc.h
+ create mode 100644 include/asm-arm/arch-s3c2410/regs-usb-otg-hs.h
+ create mode 100644 include/asm-arm/arch-s3c2410/reserved_mem.h
+ create mode 100644 include/asm-arm/plat-s3c/adc.h
+ create mode 100644 include/asm-arm/plat-s3c/ts.h
+ create mode 100644 include/asm-arm/plat-s3c24xx/s3c2416.h
+ create mode 100644 include/asm-arm/plat-s3c24xx/s3c2450.h
+ create mode 100644 include/asm-arm/plat-s3c64xx/clock.h
+ create mode 100644 include/asm-arm/plat-s3c64xx/regs-iis.h
+ create mode 100644 include/asm-arm/plat-s3c64xx/s3c6400.h
+ create mode 100644 include/asm-arm/plat-s3c64xx/s3c6410.h
+ create mode 100644 include/asm-arm/plat-s5p/clock.h
+ create mode 100644 include/asm-arm/plat-s5p/regs-gpio.h
+ create mode 100644 include/asm-arm/plat-s5p/regs-iis.h
+ create mode 100644 include/asm-arm/plat-s5p/s5pc100.h
+ create mode 100644 sound/soc/codecs/wm8580.c
+ create mode 100644 sound/soc/codecs/wm8580.h
+ create mode 100644 sound/soc/codecs/wm8990.c
+ create mode 100644 sound/soc/codecs/wm8990.h
+ create mode 100644 sound/soc/codecs/wm9713.c
+ create mode 100644 sound/soc/codecs/wm9713.h
+ create mode 100644 sound/soc/s3c24xx/s3c-i2s.c
+ create mode 100644 sound/soc/s3c24xx/s3c-i2s.h
+ create mode 100644 sound/soc/s3c24xx/s3c-pcm.c
+ create mode 100644 sound/soc/s3c24xx/s3c-pcm.h
+ create mode 100644 sound/soc/s3c24xx/s3c2450-ac97.c
+ create mode 100644 sound/soc/s3c24xx/s3c2450-i2s.c
+ create mode 100644 sound/soc/s3c24xx/smdk2450_wm8580.c
+ create mode 100644 sound/soc/s3c24xx/smdk2450_wm9713.c
+ create mode 100644 sound/soc/s3c64xx/Kconfig
+ create mode 100644 sound/soc/s3c64xx/Makefile
+ create mode 100644 sound/soc/s3c64xx/s3c6410-i2s-v32.c
+ create mode 100644 sound/soc/s3c64xx/s3c6410-i2s-v40.c
+ create mode 100644 sound/soc/s3c64xx/s3c64xx-ac97.c
+ create mode 100644 sound/soc/s3c64xx/s3c64xx-ac97.h
+ create mode 100644 sound/soc/s3c64xx/smdk6400_wm8753.c
+ create mode 100644 sound/soc/s3c64xx/smdk6410_wm8580.c
+ create mode 100644 sound/soc/s3c64xx/smdk6410_wm8990.c
+ create mode 100644 sound/soc/s3c64xx/smdk64xx_wm9713.c
+
+diff --git a/Changelog b/Changelog
+new file mode 100644
+index 0000000..9238d10
+--- /dev/null
++++ b/Changelog
+@@ -0,0 +1,1383 @@
++rel-0-0-0 : Ilho Lee
++dev-0-0-0 : Ilho Lee
++ This linux kernel version is "linux-2.6.24.2" gotten from kernel.org.
++ Release tag starts with rel-0-0-0 which is identical to open kernel
++ "linux-2.6.24.2".
++
++dev-0-0-1 : Ilho Lee
++ Samsung SoC's integration will be implemented into this kernel.
++ Vender tag starts with dev-0-0-1.
++ Modified files
++ Makefile
++
++ Added files
++ .cross_compile
++ arch/arm/configs/smdk2443mtd_defconfig
++dev-0-0-2 : Ilho Lee
++dev-0-0-3 : Ilho Lee
++ Some files for a LCD and a NAND on SMDK S3C2443 added & modified.
++
++dev-0-0-4 : Ilho Lee
++ Some files for a LCD and a NAND on SMDK S3C6400 added & modified.
++ arch/arm/configs/smdk6400mtd_defconfig
++
++dev-0-0-5 : Ilho Lee
++ To s3c6400, some codes causing unhandled fault fixed.
++ Modified files
++ arch/arm/kernel/entry-common.S
++ arch/arm/plat-s3c24xx/common-smdk.c
++ arch/arm/mach-s3c2443/s3c2443.c
++ arch/arm/mach-s3c2443/mach-smdk2443.c
++ arch/arm/mach-s3c6400/s3c6400.c
++ arch/arm/mach-s3c6400/mach-smdk6400.c
++
++dev-0-0-6: Jinsung Yang
++ - fixed devs.c, map.h and mach-smdkxxxx.c for 2443 and 6400
++
++dev-0-0-7: Ilho Lee
++ - Added an MMU exception handler for ARM1176
++ Modified files
++ arch/arm/mm/fault.c
++dev-0-0-8: Ilho Lee
++ - The chip ID of S3C6400 changed
++ Modified files
++ arch/arm/plat-s3c24xx/cpu.c
++
++dev-0-0-9: Ilho Lee
++ - clock.c for S3C64xx added
++ Modified files
++ arch/arm/plat-s3c24xx/clock.c
++ include/asm-arm/plat-s3c24xx/clock.h
++
++ Added files
++ arch/arm/plat-s3c64xx/clock.c
++ include/asm-arm/plat-s3c64xx/clock.h
++dev-0-0-10: Laputa
++ - DVFS feature of S3C64xx added
++ Modified files
++ drvier/char/Makefile --> in order to compile
++ driver/char/Kconfig --> in order to menu
++ Added files
++ drvier/char/s3c-dvfs --> feature driver
++
++dev-0-0-11: Ilho Lee
++ - Support(LCD, NAND, UART) for S3c6410 added
++ Added files
++ arch/arm/mach-s3c6410/Makefile
++ arch/arm/mach-s3c6410/Kconfig
++ arch/arm/mach-s3c6410/clock.c
++ arch/arm/mach-s3c6410/s3c6410.c
++ arch/arm/mach-s3c6410/mach-smdk6410.c
++
++dev-0-0-12: Ilho Lee
++ - Support(LCD, NAND) for S3c2450 added
++ Added files
++ arch/arm/mach-s3c2450/Makefile
++ arch/arm/mach-s3c2450/Kconfig
++ arch/arm/mach-s3c2450/clock.c
++ arch/arm/mach-s3c2450/s3c2450.c
++ arch/arm/mach-s3c2450/mach-smdk2450.c
++
++dev-0-0-13: Ilho Lee
++ - Support(UART) for S3c2450 added
++ Modified files
++ drivers/serial/s3c2410.c
++
++dev-0-0-14: Laputa
++ -DVFS make condition changed and GPIO debug.
++ -DVFS had been upgraded and modified DVS and DFS mode in order to power .
++ -GPIO bug patch : offse value wrong calcuration GPK,GPH,GPL
++ Modified files
++ kernel/power/kconfig
++ driver/char/Makefile
++ driver/char/s3c-dvfs/s3c-dvfs.c
++ arch/arm/plat-s3c24xx/gpio.c
++ void s3c_gpio_cfgpin(unsigned int pin, unsigned int function)....
++
++dev-0-0-15: Ilho Lee
++ - HS-MMC driver for S3c2450/2443/6400/6410 added
++ Added files
++ drivers/mmc/host/s3c-hsmmc.[ch]
++
++dev-0-0-16: Ilho Lee
++ - HS-MMC movinand driver for S3c2450/2443/6400/6410 added
++ Added files
++ drivers/mmc/host/s3c-hsmmc.[ch]
++
++dev-0-0-17: laputa
++ - arch/arm/plat-s3c24xx/gpio.c gpio configuration calcuration path
++ changed : only for 6400's 4bit definition
++
++dev-0-0-18: Ilho Lee
++ - Camera for S3c2450/2443/6400/6410 added
++ Modified files
++ arch/arm/mach-s3c2443/clock.c
++ arch/arm/mach-s3c2450/clock.c
++ arch/arm/mach-s3c6400/clock.c
++ arch/arm/mach-s3c6410/clock.c
++
++ Added files
++ drivers/media/video/s3c_camera_driver.c
++ drivers/media/video/s3c_camif.[ch]
++ drivers/media/video/s3c_camif_fsm.c
++
++dev-0-0-19: Ilho Lee
++ - A patch for HS-MMC driver over S3C6410 applied.
++ Modified files
++ arch/arm/mach-s3c6410/mach-smdk6410.c
++
++dev-0-0-20: Ilho Lee
++ - A USB-OTG driver for S3C6410 added
++ Added files
++ drivers/usb/gadet/s3c-udc-otg-hs.c
++
++dev-0-0-21: Ilho Lee
++ - Some bugs on the HS-MMC driver fixed.
++ Modified files
++ drivers/mmc/host/s3c-hsmmc.c
++
++dev-0-0-22: Ilho Lee
++ - Some unused clock sources deleted.
++ Modified files
++ arch/arm/mach-s3c6400/clock.c
++ arch/arm/mach-s3c6410/clock.c
++ arch/arm/plat-s3c64xx/clock.c
++ include/asm-arm/plat-s3c64xx/clock.h
++dev-0-0-23: Laputa
++ - changed to set default duplex from half to full duplex
++ Modified file
++ M driver/net/cs89x0.c
++
++dev-0-0-24: Ilho Lee
++ - Touchscreen interface using TSDEV api added
++ Added files
++ drivers/input/tsdev.c
++
++ Modified files
++ drivers/input/Kconfig
++ drivers/input/Makefile
++
++dev-0-0-25: Ilho Lee
++ - SMDK2450 code added
++ Modified files
++ arch/arm/mach-s3c2450/clock.c
++ arch/arm/mach-s3c2450/s3c2450.c
++ drivers/video/s3c_lte480wv.c
++
++dev-0-0-26: Ilho Lee
++ - NAND, LCD, touchscreen and UART drivers confirmed on
++ SMDK2443/2450/6400/6410
++
++dev-0-0-27: Jongpill Lee
++ -Added CLKUART on Uart Clock Source
++ Modified File:
++ M drivers/serial/s3c6400.c
++
++dev-0-0-28: Ilho Lee
++ - 12-bit resolution touchscreen drivers for S3C2450/6410 added
++ Modified File:
++ M drivers/input/touchscreen/s3c-ts.c
++
++dev-0-0-29: Ilho Lee
++ - Some codes for S3C2416 are being added.
++ Added Files:
++ A arch/arm/mach-s3c2416/clock.c
++ A arch/arm/mach-s3c2416/mach-smdk2416.c
++ A arch/arm/mach-s3c2416/s3c2416.c
++ A arch/arm/mach-s3c2416/Makefile
++ A arch/arm/mach-s3c2416/Kconfig
++
++ Modified File:
++ M arch/arm/Makefile
++ M arch/arm/Kconfig
++ M arch/arm/plat-s3c24xx/cpu.c
++
++dev-0-0-30: Ilho Lee
++ - 2-channel HS-MMC driver for S3C2450 is being added. (1 channel
++ confirmed)
++ Modified File:
++ M arch/arm/plat-s3c24xx/devs.c
++ M arch/arm/mach-s3c2450/s3c2450.c
++ M arch/arm/mach-s3c2450/mach-smdk2450.c
++ M include/asm-arm/arch-s3c2410/irqs.h
++ M include/asm-arm/arch-s3c2410/map.h
++
++dev-0-0-31: Ilho Lee
++ - 2-channel HS-MMC driver for S3C2450 has been added.
++ Modified File:
++ M arch/arm/plat-s3c24xx/devs.c
++ M arch/arm/mach-s3c2450/mach-smdk2450.c
++ M include/asm-arm/arch-s3c2410/irqs.h
++ M drivers/mmc/host/s3c-hsmmc.c
++
++dev-0-0-32: Ilho Lee
++ - 4BA CIS module added.
++ Modified File:
++ M drivers/media/video/s3c-camera-driver.c
++ M drivers/media/video/samsung/Makefile
++ M drivers/media/video/samsung/Kconfig
++
++ Add Files :
++ A drivers/media/video/4xa_sensor.h
++ A drivers/media/video/4xa_sensor.c
++
++dev-0-0-33: Ilho Lee
++ - 2-channel HS-MMC driver for S3C6410 has been added.
++ Modified File:
++ M arch/arm/plat-s3c24xx/devs.c
++ M arch/arm/mach-s3c6410/mach-smdk6410.c
++ M drivers/mmc/host/s3c-hsmmc.c
++
++dev-0-0-34: Ilho Lee
++ - 100Mbit ethernet drivers over SMC9115 for S3C6410/S3C2450 have been added.
++ Modified File:
++ M arch/arm/plat-s3c24xx/devs.c
++ M arch/arm/mach-s3c6410/mach-smdk6410.c
++ M arch/arm/mach-s3c2450/mach-smdk2450.c
++ M drivers/net/Kconfig
++ M drivers/net/smc911x.c
++ M drivers/net/smc911x.h
++
++dev-0-0-35: Ilho Lee
++ - Centerwise cropping V4L2 interface added
++ Modified File:
++ M drivers/media/video/s3c-camera-driver.c
++
++dev-0-0-36: Ilho Lee
++ - Codes for s3c2416 added.
++ Added Files:
++ A arch/arm/mach-s3c2416/clock.c
++ A arch/arm/mach-s3c2416/s3c2416.c
++ A arch/arm/mach-s3c2416/mach-smdk2416.c
++
++dev-0-0-37: Ilho Lee
++ - DOUTmpll gets adopted for the SD clock source of the HS-MMC
++ controller.
++ Modified Files:
++ M arch/arm/mach-s3c6410/mach-smdk6410.c
++ M arch/arm/mach-s3c6410/clock.c
++
++dev-0-0-38: Ilho Lee
++ - Feedback delay value for the HS-MMC driver modified.
++ Modified Files:
++ M arch/arm/mach-s3c6410/mach-smdk6410.c
++ M arch/arm/mach-s3c6400/mach-smdk6400.c
++ M arch/arm/mach-s3c2450/mach-smdk2450.c
++ M arch/arm/mach-s3c2416/mach-smdk2416.c
++ M drivers/mmc/host/s3c-hsmmc.c
++
++dev-0-0-39: Ilho Lee
++ - A bug of s3c touchscreen D/D on s3c6400 fixed
++ Modified File:
++ M drivers/input/touchscreen/s3c-ts.c
++
++dev-0-0-40: Jinsung Yang
++ - Finalize with old s3c frambuffer driver
++
++dev-0-0-41: Jinsung Yang
++ - Display driver refactoring: 1st phase complete
++
++ Added files:
++ A drivers/video/Kconfig
++ A drivers/video/Makefile
++ A drivers/video/s3c/s3c24xxfb.c
++ A drivers/video/s3c/s3c24xxfb_spi.c
++ A drivers/video/s3c/s3c64xxfb.c
++ A drivers/video/s3c/s3c64xxfb_spi.c
++ A drivers/video/s3c/s3cfb.c
++ A drivers/video/s3c/s3cfb_lts222qv.c
++ A drivers/video/s3c/s3cfb_ltv350qv.c
++ A drivers/video/s3c/s3cfb_lte480wv.c
++
++ Removed Files:
++ R drivers/video/s3cfb.c
++ R drivers/video/s3cfb.h
++
++dev-0-0-42: Ilho Lee
++ - OTG DMA mode is being implemented on S3C6410 (Phase-1)
++ Modified File:
++ M drivers/usb/gadget/s3c-udc-otg-hs.c
++
++dev-0-0-43: Ilho Lee
++ - OTG DMA mode is being implemented on S3C6410 (Phase-2)
++ Modified File:
++ M drivers/usb/gadget/s3c-udc-otg-hs.c
++
++dev-0-0-44: Kyoungil Kim
++ - Keypad driver porting and Qwerty Keyboard mapping at SMDK6410
++
++ Added files:
++ A drivers/input/keyboard/s3c-keypad.c
++ A drivers/input/keyboard/s3c-keypad.h
++ A include/asm-arm/arch-s3c2410/regs-keypad.h
++
++ Modified File:
++ M drivers/input/keyboard/Kconfig
++ M drivers/input/keyboard/Makefile
++
++dev-0-0-45: Kyoungil Kim
++ - Keypad driver warning is fixed.
++
++ Modified File:
++ M drivers/input/keyboard/s3c-keypad.c
++
++dev-0-0-46: Ilho Lee
++ - OTG DMA mode is being implemented on S3C6410 (Phase-3)
++ Modified File:
++ M drivers/usb/gadget/s3c-udc-otg-hs.c
++
++dev-0-0-47: Ilho Lee
++ - OTG DMA mode is being implemented on S3C6410 (Enumeration done)
++ Modified File:
++ M drivers/usb/gadget/s3c-udc-otg-hs.c
++
++dev-0-0-48: Ilho Lee
++ - OTG DMA mode is being implemented on S3C6410 (UMS Phase-1)
++ Modified File:
++ M drivers/usb/gadget/s3c-udc-otg-hs.c
++
++dev-0-0-49: Ilho Lee
++ - OTG DMA mode is being implemented on S3C6410 (UMS Phase-2)
++ Modified File:
++ M drivers/usb/gadget/s3c-udc-otg-hs.c
++
++dev-0-0-50: Ilho Lee
++ - OTG DMA mode is being implemented on S3C6410 (UMS Phase-2)
++ Modified File:
++ M drivers/usb/gadget/s3c-udc-otg-hs.c
++
++dev-0-0-51: Ilho Lee
++ - OTG DMA mode is being implemented on S3C6410 (UMS Phase-2)
++ Modified File:
++ M drivers/usb/gadget/s3c-udc-otg-hs.c
++
++dev-0-0-52: Ilho Lee
++ - OTG DMA mode is being implemented on S3C6410 (UMS Phase-3)
++ Modified File:
++ M drivers/usb/gadget/s3c-udc-otg-hs.c
++
++dev-0-0-53: Ilho Lee
++ - OTG DMA mode is being implemented on S3C6410 (UMS Phase-3)
++ Modified File:
++ M drivers/usb/gadget/s3c-udc-otg-hs.c
++
++dev-0-0-54: Ilho Lee
++ - OTG DMA mode is being implemented on S3C6410 (UMS Phase-3)
++ Modified File:
++ M drivers/usb/gadget/s3c-udc-otg-hs.c
++
++dev-0-0-55: Ilho Lee
++ - OTG DMA mode is being implemented on S3C6410 (UMS Phase-4)
++ Modified File:
++ M drivers/usb/gadget/s3c-udc-otg-hs.c
++
++dev-0-0-56: Ilho Lee
++ - OTG DMA mode is being implemented on S3C6410 (UMS Phase-4)
++ Modified File:
++ M drivers/usb/gadget/s3c-udc-otg-hs.c
++
++rel-0-1-0 : Ryu Euiyoul
++ - release to SISO (June 18th 2008)
++
++dev-0-0-57: jongpill Lee
++ - Support UBI(Unsourted Block Image) on SMDK Board
++
++ Modified Files:
++ M drivers/mtd/ubi/build.c
++ M include/mtd/ubi-header.h
++
++dev-0-0-58: Jongpill Lee
++ - Support RTC on SMDK6410
++
++ Modified Files:
++ M drivers/rtc/rtc-s3c.c
++
++dev-0-0-59: Ryu Euiyoul
++ - Supports smdk6410 wm9713 AC97 interface device driver
++
++ Modified Files:
++ M arch/arm/plat-s3c64xx/dma-pl080.c
++ M sound/soc/codecs/wm8753.c
++ M sound/soc/s3c/s3c-pcm.c
++ M sound/soc/s3c/s3c-pcm.h
++ Added Files:
++ A sound/soc/s3c/smdk64xx_wm9713.c
++ A sound/soc/s3c/s3c64xx-ac97.h
++ A sound/soc/s3c/s3c64xx-ac97.c
++ A sound/soc/codecs/wm9713.c
++ A sound/soc/codecs/wm9713.h
++
++dev-0-0-60: Ilho Lee
++ - Some files added into mach-s3c6410 directory
++ Added File:
++ A arch/arm/mach-s3c6410/dma.c
++ A arch/arm/mach-s3c6410/irq.c
++ A arch/arm/mach-s3c6410/pm.c
++ A arch/arm/mach-s3c6410/leds.c
++
++rel-1-0-0: Kyoungil Kim
++ - Official Release: SMDK6410 alpha version (08.06.30)
++
++dev-1-0-0: Kyoungil Kim
++
++dev-1-0-1: Jongpill Lee
++ - Support DVFS on SMDK6410
++
++ Modified Files:
++ M drivers/char/Makefile
++ M drivers/char/s3c-dvfs/s3c-dvfs.c
++ M drivers/char/s3c-dvfs/s3c-dvfs.h
++
++dev-1-0-2: Jongpill Lee
++ - Support HS-SPI on SMDK6410
++
++ Added Files:
++ A drivers/spi/hspi-s3c24xx.c
++ A drivers/spi/hspi-s3c24xx.h
++ A drivers/spi/hspi-s3c64xx.c
++ A drivers/spi/hspi-s3c64xx.h
++ A drivers/spi/spi-dev.c
++ A drivers/spi/spi-dev.h
++
++ Modified Files:
++ M arch/arm/plat-s3c24xx/devs.c
++ M drivers/char/s3c-dvfs/s3c-dvfs.h
++ M drivers/spi/Kconfig
++ M drivers/spi/Makefile
++ M include/asm-arm/plat-s3c24xx/regs-spi.h
++ M include/linux/interrupt.h
++
++dev-1-0-3: jongpill Lee
++ - HS-SPI bug fixed
++
++ Modified Files:
++ M drivers/spi/hspi-s3c64xx.c
++
++dev-1-0-4: jongpill Lee
++ - SPI is deleted in default config
++
++ Modified Files:
++ M arch/arm/configs/smdk2450mtd_defconfig
++ M arch/arm/configs/smdk2450nfs_defconfig
++ M include/asm-arm/arch-s3c2410/map.h
++
++dev-1-0-5: Jongpill Lee
++ - Support IrDA on smdk6410
++
++ Added Files:
++ A drivers/net/irda/s3c-sir.c
++
++ Modified Files:
++ M drivers/net/irda/Kconfig
++ M drivers/net/irda/Makefile
++
++dev-1-0-6: Jongpill Lee
++ - Support APM on SMDK6410
++
++ Added Files:
++ A arch/arm/plat-s3c64xx/pm.c
++ A arch/arm/plat-s3c64xx/sleep.S
++ A include/asm-arm/arch-s3c2410/regs-adc.h
++ A include/asm-arm/arch-s3c2410/regs-serial.h
++
++ Modified Files:
++ M arch/arm/configs/smdk6410mtd_defconfig
++ M arch/arm/configs/smdk6410nfs_defconfig
++ M arch/arm/mach-s3c6410/leds.c
++ M arch/arm/plat-s3c64xx/Makefile
++ M drivers/serial/s3c6400.c
++
++dev-1-0-7: Ilho Lee
++ - Support the ADC function for S3C6410
++
++ Added File:
++ A drivers/char/s3c-adc.c
++
++ Modified File:
++ M arch/arm/plat-s3c24xx/devs.c
++ M arch/arm/mach-s3c6410/mach-smdk6410.c
++
++dev-1-0-8: Byungjae Lee
++ - Support USB Host1.1 for SMDK6410
++ Changed default configuration to enable USB Host1.1
++
++ Modified File:
++ M arch/arm/configs/smdk6410mtd_defconfig
++ M drivers/usb/host/ohci-s3c2410.c
++
++dev-1-0-9: Ilho Lee
++ - OneNAND D/D for S3C6410 added
++
++ Added File:
++ A drivers/mtd/onenand/s3c-onenand.c
++
++dev-1-0-10: Byungjae Lee
++ - Support Ethernet gadget on Slave mode for SMDK6410
++
++ Modified Files:
++ M arch/arm/mach-s3c6410/mach-smdk6410.c
++ M drivers/usb/gadget/Kconfig
++ M drivers/usb/gadget/epautoconf.c
++ M drivers/usb/gadget/ether.c
++ M drivers/usb/gadget/s3c-udc-otg-hs.c
++ M drivers/usb/gadget/s3c-udc.h
++ M include/asm-arm/arch-s3c2410/regs-usb-otg-hs.h
++
++dev-1-0-11: Byungjae Lee
++ - Added OTGPHY enbale at clcok.c for SMDK6410 USB Host
++
++ Modified Files:
++ M arch/arm/mach-s3c6410/clock.c
++ M drivers/usb/host/ohci-s3c2410.c
++
++dev-1-0-12: Ilho Lee
++ - OneNAND D/D for S3C6410 changed
++
++ Added File:
++ A drivers/mtd/onenand/s3c-onenand.c
++
++dev-1-0-13: Jongpill Lee
++ - Support PWM on SMDK6410
++
++ Modified Files:
++ M arch/arm/Kconfig
++ M arch/arm/mach-s3c6400/s3c6400.c
++ M arch/arm/mach-s3c6410/s3c6410.c
++ M drivers/video/s3c/s3cfb.h
++ M drivers/video/s3c/s3cfb_fimd4x.c
++ M drivers/Kconfig
++ M drivers/Makefile
++
++ Added Files:
++ A drivers/pwm/Kconfig
++ A drivers/pwm/Makefile
++ A drivers/pwm/pwm-s3c2450.c
++ A drivers/pwm/pwm-s3c2450.h
++ A drivers/pwm/pwm-s3c6410.c
++ A drivers/pwm/pwm-s3c6410.h
++
++rel-2-0-0: Kyoungil Kim
++ - Official Release: SMDK6410 beta version (08.08.08)
++
++dev-2-0-0: Kyoungil Kim
++
++dev-2-0-1: Jinsung Yang
++ - Bug fix for SMDK64xx UART
++
++ Modified files:
++ include/asm-arm/plat-s3c/uncompress.h
++
++dev-2-0-2: Ilho Lee
++ - 12 bit mode for ADC added
++
++ Modified files:
++ drivers/char/s3c-adc.c
++
++rel-2-0-1: Kyoungil Kim
++ - Official Release(08.08.12)
++
++dev-2-0-3: Jongpill Lee
++ - Modified NAND partition Information
++
++ Modified Files:
++ arch/arm/plat-s3c24xx/common-smdk.c
++
++dev-2-0-4: Ilho Lee
++ - regs-adc.h in pm.c deleted
++
++ Modified Files:
++ arch/arm/plat-s3c64xx/pm.c
++
++dev-2-0-5: Jongpill Lee
++ - delete PM support from default smdk6410 NFS default configuration
++
++ Modified Files:
++ M arch/arm/configs/smdk6410nfs_defconfig
++
++rel-2-0-2: Jongpill Lee
++ -Official Release(08.08.13)
++
++dev-2-0-6: Jongpill Lee
++ - bug fixed for s3c6410 idle mode
++
++ Modified File:
++ M arch/arm/mach-s3c6410/s3c6410.c
++
++dev-2-0-7: Ilho Lee
++ - A bug fixed for non-MTD partitions
++
++ Modified File:
++ M arch/arm/plat-s3c24xx/common-smdk.c
++
++dev-2-0-8: Jiun Yu
++ - Support module drivers
++
++ Modified Files:
++ M arch/arm/mach-s3c6400/mach-smdk6400.c
++ M arch/arm/mach-s3c6410/mach-smdk6410.c
++ M include/asm-arm/arch-s3c2410/reserved_mem.h
++
++ Added Files:
++ A include/asm-arm/arch-s3c2410/regs-pp.h
++ A include/asm-arm/arch-s3c2410/regs-tvenc.h
++ A include/asm-arm/arch-s3c2410/regs-tvscaler.h
++
++rel-2-1-0: Jongpill Lee
++ - Official Release(08.08.20)
++
++dev-2-1-0: Jongpill Lee
++
++dev-2-1-1: Jongpill Lee
++
++ -Fixed SPI Prevent Defect
++
++ MOdified Files:
++ M drivers/spi/spi_s3c24xx.c
++
++rel-2-1-1: Kyoungil Kim
++ - Official Release(08.08.29)
++
++rel-2-1-2: Jinsung Yang
++ - Official Release(08.08.29 2nd)
++
++dev-2-1-2: Jongpill Lee
++ - Temporary update for Dynamic Timer on SMDK6410
++
++ Modified Files:
++
++ M arch/arm/plat-s3c64xx/time-s3c64xx.ci
++
++dev-2-1-3: jongpill Lee
++ - Set default time for rtc initial value.
++
++ M drivers/rtc/rtc-s3c.c
++
++dev-2.1.4: SungJun Bae
++ ./sound/soc/s3c24xx directory was restored.
++
++ Modified Files:
++
++ M sound/soc/Kconfig sound/soc/Makefile
++
++ Added Files:
++
++ A sound/soc/s3c24xx/Kconfig sound/soc/s3c24xx/Makefile
++ A sound/soc/s3c24xx/lm4857.h
++ A sound/soc/s3c24xx/neo1973_wm8753.c
++ A sound/soc/s3c24xx/s3c-i2s.c
++ A sound/soc/s3c24xx/s3c-i2s.h
++ A sound/soc/s3c24xx/s3c-pcm.c
++ A sound/soc/s3c24xx/s3c-pcm.h
++ A sound/soc/s3c24xx/s3c2443-ac97.c
++ A sound/soc/s3c24xx/s3c2450-i2s.c
++ A sound/soc/s3c24xx/s3c24xx-ac97.h
++ A sound/soc/s3c24xx/s3c24xx-i2s.h
++ A sound/soc/s3c24xx/s3c6410-i2s-v40.c
++ A sound/soc/s3c24xx/s3c64xx-ac97.c
++ A sound/soc/s3c24xx/s3c64xx-ac97.h
++ A sound/soc/s3c24xx/smdk2443_wm9710.c
++ A sound/soc/s3c24xx/smdk2450_wm8580.c
++ A sound/soc/s3c24xx/smdk2450_wm9713.c
++ A sound/soc/s3c24xx/smdk6400_wm8753.c
++ A sound/soc/s3c24xx/smdk6410_wm8580.c
++ A sound/soc/s3c24xx/smdk64xx_wm9713.c
++
++ Delete Files:
++
++ D sound/soc/s3c/Kconfig
++ D sound/soc/s3c/Makefile
++ D sound/soc/s3c/lm4857.h
++ D sound/soc/s3c/s3c-i2s.h
++ D sound/soc/s3c/s3c-pcm.h
++ D sound/soc/s3c/s3c24xx-ac97.h
++ D sound/soc/s3c/s3c24xx-i2s.h
++ D sound/soc/s3c/s3c64xx-ac97.h
++ D sound/soc/s3c/neo1973_wm8753.c
++ D sound/soc/s3c/s3c2443-ac97.c
++ D sound/soc/s3c/s3c2450-i2s.c
++ D sound/soc/s3c/s3c24xx-i2s.c
++ D sound/soc/s3c/s3c6410-i2s-v40.c
++ D sound/soc/s3c/s3c64xx-ac97.c
++ D sound/soc/s3c/s3c-i2s.c
++ D sound/soc/s3c/s3c-pcm.c
++ D sound/soc/s3c/smdk2443_wm9710.c
++ D sound/soc/s3c/smdk2450_wm9713.c
++ D sound/soc/s3c/smdk6400_wm8753.c
++ D sound/soc/s3c/smdk6410_wm8580.c
++ D sound/soc/s3c/smdk64xx_wm9713.c
++
++dev-2-1-5: Jongpill Lee
++
++ - RTC Set time function is erased
++
++ Modified files:
++ M drivers/rtc/rtc-s3c.c
++
++dev-2-1-6: Jongpill Lee
++
++ - Support Tickless Timer on SMDK6410
++
++ Modified Files:
++ M arch/arm/mach-s3c6410/s3c6410.c
++ M arch/arm/plat-s3c64xx/time-s3c64xx.c
++
++dev-2-1-7: Byungjae Lee
++ - Support USB OTG Host for SMDK6410
++ Support Device Classes are only HID(Keyboard, Mouse), UMS and Card
++ Reader.
++
++ Modified Files
++ M arch/arm/mach-s3c6400/mach-smdk6400.c
++ M arch/arm/mach-s3c6410/mach-smdk6410.c
++ M arch/arm/plat-s3c24xx/devs.c
++ M drivers/usb/Makefile
++ M drivers/usb/gadget/Kconfig
++ M drivers/usb/host/Kconfig
++ M drivers/usb/host/Makefile
++ M include/asm-arm/plat-s3c24xx/devs.h
++ Addef Files
++ A drivers/usb/host/s3c-otg/*
++
++rel-2-1-3: Jinsung Yang
++ - Official Release (08.09.05)
++
++dev-2-1-8: Jinsung Yang
++ - Finalize tagging before kernel merge with C100 tree
++
++dev-2-1-9: Euiyoul Ryu
++ - Merge with C100 tree
++
++dev-2-1-10: Jongpill Lee
++ - delete include/asm-arm/arch-s3c2410/regs-serial.h file
++
++ Modified Files
++ M arch/arm/plat-s3c64xx/pm.c
++ Removed Files
++ R include/asm-arm/arch-s3c2410/regs-serial.h
++
++dev-2-1-11: Ilho Lee
++ - Modified 3D D/D to support kmalloc and lock API
++
++ Modified Files
++ M drivers/video/g3d/s3c_g3d.c
++
++dev-2-1-12: Jongpill Lee
++ - Bug fixed in DVFS code
++
++ Modified Files
++ M drivers/char/s3c-dvfs/s3c-dvfs.h
++
++dev-2-1-13: Jinsung Yang
++ - QoS configuration optimized to resolve mfc underrun
++ - Some bugs fixed and misc changes for display driver
++
++ Modified files:
++ drivers/video/s3c/*
++ arch/arm/mach-s3c6410/mach-smdk6410.c
++ include/asm-arm/arch-s3c2410/map.h
++
++rel-2-1-4: Kyoungil Kim
++ - Official Release (08.09.17)
++
++dev-2-1-14: Jongpill Lee
++ - Modified Some function(modify HS-SPI driver strength)
++
++ Modified Files:
++ M drivers/spi/hspi-s3c64xx.c
++
++
++dev-2-1-15: Ilho Lee
++ - Modified 3D D/D to support memory-sharing
++
++ Modified Files
++ M drivers/video/g3d/s3c_g3d.c
++
++dev-2-1-16: Jinsung Yang
++ [Display Con.] 28 bpp with pixel alpha blending support
++
++ Modified files:
++ M drivers/video/s3c/s3cfb.c
++ M include/asm-arm/arch-s3c2410/regs-lcd.h
++
++dev-2-1-17: Kyoungil Kim
++ - Modified Kconfig for SMDK6431
++
++ Modified Files
++ M arch/arm/mach-s3c6410/Kconfig
++
++dev-2-1-18: Kyoungil Kim
++ - Modified Touchscreen x,y position for SMDK6431
++
++ Modified Files
++ M drivers/input/touchscreen/s3c-ts.c
++
++rel-2-2-0: Kyoungil Kim
++ - Official Release for SMDK6431 (08.09.23)
++
++dev-2-2-0: Kyoungil Kim
++
++dev-2-2-1: Kyoungil Kim
++ - Modified Kconfig support new touchscreen version
++
++ Modified Files
++ M drivers/input/touchscreen/Kconfig
++ M drivers/input/touchscreen/s3c-ts.c
++
++rel-2-2-1: Kyoungil Kim
++ - Official Release for SMDK6431 (08.09.29)
++
++dev-2-2-2: Ilho Lee
++ - Modified PL080 DMA D/D to support scatter&gather DMA
++
++ Modified Files
++ M arch/arm/plat-s3c64xx/dma-pl080.c
++
++rel-2-2-2: Jongpill Lee
++ - Official Release for SMDK6410 final(08.10.13)
++
++dev-2-2-3: Jongpill Lee
++ - Bug fixed in getting clock source
++
++ Modified Files:
++ M arch/arm/configs/smdk6410mtd_defconfig
++ M arch/arm/mach-s3c6400/clock.c
++ M arch/arm/mach-s3c6410/clock.c
++
++dev-2-2-4: Jinsung Yang
++ - Improvements of fimd4x/5x color key
++
++rel-2-2-3: Jinsung Yang
++ - Official Release (08.10.17)
++
++dev-2-2-5: Ilho Lee
++ - Modified s3c6410onenand_defconfig
++
++ Modified Files
++ M arch/arm/configs/smdk6410onenand_defconfig
++
++rel-2-2-4: Kyoungil Kim
++ - Official Release (08.10.20)
++
++dev-2-2-6: SungJun Bae
++ - Support Non Multichannel I2S (I2S0)
++ - Support I2S wm8990
++
++rel-2-2-5: Kyoungil Kim
++ - Official Release (08.10.24)
++
++dev-2-2-7: SungJun Bae
++ - "sound/soc/s3c24xx/s3c6410-i2s-v32.c" added.
++
++rel-2-2-6: SungJun Bae
++ - Official Release (08.10.27)
++
++dev-2-2-8: Jongpill Lee
++ - Add function for save and restore for pm
++
++ Modified Files:
++ M arch/arm/plat-s3c64xx/pm.c
++ M include/asm-arm/plat-s3c24xx/pm.h
++
++dev-2-2-9: Jongpill Lee
++ - Modified suspend and resume function
++
++ Modified Files:
++ M drivers/media/video/s3c_camera_driver.c
++
++dev-2-2-10: Byungjae Lee
++ - Support DMA mode for s3c6410 File-backed Storage Gadget.
++
++ Modefied File
++ M drivers/usb/gadget/s3c-udc-otg-hs.c
++
++rel-3-0-0: Jinsung Yang
++ - Official Release (08.11.04)
++ - Patch Baseline
++
++dev-3-0-0: Jinsung Yang
++
++dev-3-0-1: Jongpill Lee
++ - Modified UBI to use dynamic device node
++
++ MOdified Files
++ M drivers/mtd/ubi/build.c
++ M include/mtd/ubi-header.h
++
++dev-3-0-2: Jinsung Yang
++ - Generic GPIO Interface support
++
++ Modified files:
++ M arch/arm/mach-s3c6400/leds-s3c6400.c
++ M arch/arm/mach-s3c6400/leds.c
++ M arch/arm/mach-s3c6410/leds-s3c6410.c
++ M arch/arm/mach-s3c6410/leds.c
++ M arch/arm/mach-s3c6410/mach-smdk6410.c
++ M arch/arm/mach-s3c6410/s3c6410.c
++ M arch/arm/plat-s3c64xx/irq-pl192.c
++ M arch/arm/plat-s3c64xx/pm.c
++ M arch/arm/plat-s3c64xx/time-s3c64xx.c
++ M arch/arm/plat-s5pc1xx/irq-pl192.c
++ M arch/arm/plat-s5pc1xx/time-s5pc1xx.c
++ M drivers/char/s3c-dvfs/s3c-dvfs.h
++ M drivers/i2c/busses/i2c-s3c2410.c
++ M drivers/media/video/s3c_camera_driver.c
++ M drivers/media/video/s3c_camif.c
++ M drivers/mmc/host/s3c-hsmmc.c
++ M drivers/mmc/host/s3cmci.c
++ M drivers/net/irda/s3c-sir.c
++ M drivers/pwm/pwm-s3c6410.c
++ M drivers/serial/s3c6400.c
++ M drivers/serial/s5pc100.c
++ M drivers/spi/hspi-s3c64xx.c
++ M drivers/video/s3c/s3cfb_fimd4x.c
++ M drivers/video/s3c/s3cfb_lts222qv.c
++ M drivers/video/s3c/s3cfb_spi.c
++
++dev-3-0-3: Jongpill Lee
++ - Gerneric driver support for RTC
++
++ Modified Files:
++
++ M arch/arm/mach-s3c2410/mach-smdk2410.c
++ M arch/arm/mach-s3c2412/mach-smdk2413.c
++ M arch/arm/mach-s3c2416/mach-smdk2416.c
++ M arch/arm/mach-s3c2440/mach-smdk2440.c
++ M arch/arm/mach-s3c2443/mach-smdk2443.c
++ M arch/arm/mach-s3c2450/mach-smdk2450.c
++ M arch/arm/mach-s3c6400/mach-smdk6400.c
++ M arch/arm/mach-s3c6410/mach-smdk6410.c
++ M drivers/rtc/rtc-s3c.c
++ M include/asm-arm/plat-s3c/regs-rtc.h
++ M drivers/video/s3c/s5pfb_fimd5x.c
++ M include/asm-arm/arch-s3c2410/gpio.h
++ M include/asm-arm/arch-s3c2410/hardware.h
++ M include/asm-arm/arch-s3c2410/regs-gpio.h
++ M include/asm-arm/plat-s5p/regs-gpio.h
++ M sound/soc/s3c24xx/s3c-i2s.c
++ M sound/soc/s3c24xx/s3c6410-i2s-v32.c
++ M sound/soc/s3c24xx/s3c6410-i2s-v40.c
++ M sound/soc/s3c24xx/s3c64xx-ac97.c
++ M sound/soc/s3c24xx/smdk6410_wm8580.c
++
++dev-3-0-4: Ilho Lee
++ - SDIO supported
++
++ Modified Files:
++ M drivers/mmc/core/core.c
++ M drivers/mmc/host/s3c-hsmmc.c
++
++dev-3-0-5: Ilho Lee
++ - Physical memory interfaces(/dev/mem) for S3C added
++
++ Modified Files:
++ M drivers/char/Makefile
++ M drivers/char/Kconfig
++
++ Added Files:
++ M drivers/char/s3c_mem.c
++ M drivers/char/s3c_mem.h
++
++dev-3-0-6: Jongpill lee
++ - Change pwm location from drivers/pwm to arch/arm/mach-s3c6410/pwm
++
++ Removed Files:
++ R drivers/pwm/Kconfig
++ R drivers/pwm/Makefile
++ R drivers/pwm/pwm-s3c2450.c
++ R drivers/pwm/pwm-s3c2450.h
++ R drivers/pwm/pwm-s3c6410.c
++ R drivers/pwm/pwm-s3c6410.h
++
++ Added Files:
++ A arch/arm/mach-s3c6410/pwm/Kconfig
++ A arch/arm/mach-s3c6410/pwm/Makefile
++ A arch/arm/mach-s3c6410/pwm/pwm-s3c6410.c
++ A arch/arm/mach-s3c6410/pwm/pwm-s3c6410.h
++
++ Modified files
++ M arch/arm/Kconfig
++ M arch/arm/mach-s3c6410/Makefile
++ M drivers/Kconfig
++ M drivers/Makefile
++ M drivers/video/s3c/s3cfb.h
++
++dev-3-0-7: Jongpill Lee
++ - modify some code
++
++ MOdified Files:
++ M arch/arm/mach-s3c2416/mach-smdk2416.c
++ M arch/arm/mach-s3c2440/mach-smdk2440.c
++ M arch/arm/mach-s3c2450/mach-smdk2450.c
++ M arch/arm/mach-s3c6400/mach-smdk6400.c
++ M arch/arm/mach-s3c6410/mach-smdk6410.c
++
++dev-3-0-8: Jongpill Lee
++ -bug fixed for S3C24XX
++
++ Modofied Files:
++ M arch/arm/mach-s3c2410/mach-smdk2410.c
++ M arch/arm/mach-s3c2412/mach-smdk2413.c
++ M arch/arm/mach-s3c2443/mach-smdk2443.c
++
++dev-3-0-9: Jongpill Lee
++ - bug fixed RTC drivers
++
++ Modified Files:
++ M arch/arm/mach-s3c2410/mach-smdk2410.c
++ M arch/arm/mach-s3c2412/mach-smdk2413.c
++ M arch/arm/mach-s3c2440/mach-smdk2440.c
++ M arch/arm/mach-s3c2443/mach-smdk2443.c
++
++dev-3-0-10: Ilho Lee
++ - The ADC device driver moved.
++
++ Added Files:
++ A arch/arm/plat-s3c64xx/adc-s3c64xx.c
++ A arch/arm/plat-s3c24xx/adc-s3c24xx.c
++
++ Removed Files:
++ R drivers/char/s3c-adc.c
++
++rel-3-0-1: Jongpill Lee
++ - Offcial Release(08.11.07)
++
++dev-3-0-11: Byungjae Lee
++ - Moved USB OTG PHY init and USB Host Clock setting codes
++ to mach-s3c64xx.c for s3c64xx
++
++ Modified Files :
++ M arch/arm/mach-s3c6400/clock.c
++ M arch/arm/mach-s3c6400/mach-smdk6400.c
++ M arch/arm/mach-s3c6410/clock.c
++ M arch/arm/mach-s3c6410/mach-smdk6410.c
++ M drivers/usb/gadget/s3c-udc-otg-hs.c
++ M drivers/usb/host/ohci-s3c2410.c
++
++dev-3-0-12: Byungjae Lee
++ - Fixed compile error on smdk6400
++
++ Modified Files :
++ M arch/arm/mach-s3c6400/s3c6400.c
++ M include/asm-arm/plat-s3c24xx/devs.h
++
++dev-3-0-13: Jongpill Lee
++ - add LCD backlight for SMDK board
++
++ Added Files:
++ A drivers/video/backlight/smdk_bl.c
++
++ Modified Files:
++ M arch/arm/plat-s3c64xx/pm.c
++ M drivers/video/backlight/Kconfig
++ M drivers/video/backlight/Makefile
++ M drivers/video/s3c/s3cfb.h
++ M drivers/video/s3c/s3cfb_fimd4x.c
++
++dev-3-0-14: Jongpill Lee
++ - modified code for common driver
++
++ Modified Files
++ M arch/arm/mach-s3c6400/mach-smdk6400.c
++ M arch/arm/mach-s3c6410/mach-smdk6410.c
++ M arch/arm/plat-s3c64xx/Makefile
++ M arch/arm/plat-s3c64xx/adc-s3c64xx.c
++ M drivers/char/Makefile
++ M include/asm-arm/plat-s3c/regs-adc.h
++
++dev-3-0-15: Jongpill Lee
++ - Add new interface on ADC driver
++
++ Added Files:
++ A arch/arm/plat-s3c64xx/adc-s3c64xx.h
++
++ Modified Files:
++ M arch/arm/plat-s3c64xx/adc-s3c64xx.c
++ M include/asm-arm/plat-s3c/regs-adc.h
++
++dev-3-0-16: Jongpill Lee
++ - Modified for ADC driver
++
++ Modified Files:
++ M arch/arm/mach-s3c6400/mach-smdk6400.c
++ M arch/arm/mach-s3c6410/mach-smdk6410.c
++ M arch/arm/plat-s3c24xx/devs.c
++ M arch/arm/plat-s3c64xx/adc-s3c64xx.c
++ M arch/arm/plat-s3c64xx/adc-s3c64xx.h
++ M include/asm-arm/plat-s3c/regs-adc.h
++
++dev-3-0-17: Jongpill Lee
++ - Add Error routine on probe function
++
++ Modified Files:
++ M arch/arm/plat-s3c64xx/adc-s3c64xx.c
++
++dev-3-0-18: Ilho Lee
++ - Touchscreen D/D changed.
++
++ Modified Files:
++ M arch/arm/plat-s3c24xx/devs.c
++ M drivers/input/touchscreen/s3c-ts.c
++
++ Added Files:
++ A include/asm-arm/plat-s3c/ts.h
++
++dev-3-0-19: Jongpill Lee
++ - Bug fixed on ADC driver
++
++ Modified Files:
++ M arch/arm/mach-s3c6400/mach-smdk6400.c
++ M arch/arm/mach-s3c6410/mach-smdk6410.c
++ M arch/arm/plat-s3c24xx/devs.c
++ M drivers/char/Kconfig
++ M include/asm-arm/plat-s3c/regs-adc.h
++
++dev-3-0-20: Jongpill Lee
++ - Recommit this files
++
++ Modified Files:
++ M arch/arm/plat-s3c64xx/adc-s3c64xx.c
++
++dev-3-0-21: Jongpill Lee
++ - moved header file for adc and modified for ts
++
++ Added Files:
++ A include/asm-arm/plat-s3c/adc.h
++
++ Modified Files:
++ M arch/arm/mach-s3c6400/mach-smdk6400.c
++ M arch/arm/mach-s3c6410/mach-smdk6410.c
++ M arch/arm/plat-s3c64xx/adc-s3c64xx.c
++ M include/asm-arm/plat-s3c/regs-adc.h
++
++dev-3-0-22: Jongpill Lee
++ - Added adc function for s3c2416 and s3c2450
++
++ Modofied Files:
++ M arch/arm/mach-s3c2416/mach-smdk2416.c
++ M arch/arm/mach-s3c2450/mach-smdk2450.c
++
++rel-3-0-2: Kyoungil Kim
++ - Offcial Release(08.11.28)
++
++
++dev-3-0-23: Ilho Lee
++ - /dev/mem interface D/D changed.
++
++ Modofied Files:
++ M drivers/char/s3c_mem.c
++ M drivers/char/s3c_mem.h
++
++dev-3-0-24: Ilho Lee
++ - 2D -> G2D renamed.
++
++ Modofied Files:
++ M arch/arm/plat-s3c24xx/devs.c
++ M include/asm-arm/plat-s3c24xx/devs.h
++
++
++dev-3-0-25: Jonghun Han
++ - Added FIMD function(fb release)
++
++ Modified Files:
++ M drivers/video/s3c/s3cfb.c
++ M drivers/video/s3c/s3cfb.h
++ M drivers/video/s3c/s3cfb_fimd4x.c
++
++dev-3-0-26: Jinsung Yang
++ - Patch for s3c gpio routine
++
++ Modified files:
++ M arch/arm/plat-s3c24xx/gpio.c
++
++rel-3-0-3: Jinsung Yang
++ - Official Release (08.12.09)
++
++dev-3-0-27: Jinsung Yang
++ - Multi-channel i2c driver support for s3c64xx
++
++ Added files:
++ A drivers/i2c/busses/i2c-s3c64xx.c
++
++ Modified files:
++ M arch/arm/mach-s3c6410/mach-smdk6410.c
++ M arch/arm/plat-s3c24xx/devs.c
++ M drivers/i2c/busses/Kconfig
++ M drivers/i2c/busses/Makefile
++ M include/asm-arm/arch-s3c2410/irqs.h
++ M include/asm-arm/arch-s3c2410/map.h
++ M include/asm-arm/arch-s3c2410/regs-gpio.h
++ M include/asm-arm/plat-s3c/iic.h
++ M include/asm-arm/plat-s3c/regs-iic.h
++
++dev-3-0-28: jongpill Lee
++ - Added initial time setting function
++
++ Modified Files:
++ M drivers/rtc/rtc-s3c.c
++
++dev-3-0-29: Jongpill Lee
++ - Patch for Break detection
++
++ Modofied Files:
++ M drivers/serial/s3c6400.c
++
++dev-3-0-30: Jongpill Lee
++ - Remove not useable files
++
++ Remove Files:
++ R arch/arm/mach-s3c6410/pm-s3c6410.c
++ R arch/arm/mach-s3c6410/pm-s3c6410.h
++ Modified Files:
++ M arch/arm/plat-s3c64xx/pm.c
++
++dev-3-0-31: Jongpill Lee
++ - bug fixed about RTC on SMDK6410
++
++ Modified Files:
++ M drivers/rtc/rtc-s3c.c
++
++dev-3-0-32: Jongpill Lee
++ - Remove dvfs file to arch/arm/plat-s3cxxxx
++
++ Added Files:
++ A arch/arm/plat-s3c24xx/s3c24xx-dvfs.c
++ A arch/arm/plat-s3c24xx/s3c24xx-dvfs.h
++ A arch/arm/plat-s3c64xx/s3c64xx-dvfs.c
++ A arch/arm/plat-s3c64xx/s3c64xx-dvfs.h
++
++ Removed Files:
++ R drivers/char/s3c-dvfs/Kconfig
++ R drivers/char/s3c-dvfs/Makefile
++ R drivers/char/s3c-dvfs/s3c-dvfs.c
++ R drivers/char/s3c-dvfs/s3c-dvfs.h
++
++ Modified Files:
++ M arch/arm/plat-s3c24xx/Kconfig
++ M arch/arm/plat-s3c24xx/Makefile
++ M arch/arm/plat-s3c64xx/Makefile
++
++
++dev-3-0-33: Jongpill Lee
++ - Bug fixed on DVFS
++
++ Modified Files:
++ M drivers/char/Makefile
++ M kernel/power/Kconfig
++
++rel-3-0-4: Kyoungil Kim
++ - Offcial Release(08.12.24)
++
++dev-3-0-34: Jongpill Lee
++ - Support CPU FREQ Driver on SMDK64XX
++
++ Added Files:
++ A arch/arm/plat-s3c64xx/s3c64xx-cpufreq.c
++
++ Modified Files:
++ M arch/arm/Kconfig
++ M arch/arm/plat-s3c64xx/Makefile
++ M arch/arm/plat-s3c64xx/clock.c
++
++dev-3-0-35: Jongpill Lee
++ - Bug fixed on CPU FREQ Driver
++
++ Modified Files:
++ M arch/arm/plat-s3c64xx/clock.c
++
++dev-3-0-36: Jongpill Lee
++ - Bug Fixed on APM
++
++ Modified Files:
++ M arch/arm/plat-s3c64xx/pm.c
++ M drivers/media/video/s3c_camera_driver.c
++ M include/asm-arm/plat-s3c24xx/pm.h
++
++dev-3-0-37: Jongpill Lee
++ - Modified ADc driver for dual channel
++
++ Modified Files:
++ M arch/arm/plat-s3c64xx/adc-s3c64xx.c
++
++dev-3-0-38: Byungjae Lee
++ - Improved SMDK6410 USB OTG Host role for mass storage detection
++
++ Modified files:
++ M drivers/usb/host/s3c-otg/s3c-otg-transfer-common.c
++
++dev-3-0-39: Jongpill Lee
++ - Bug fixed on ADC
++
++ Modified Files:
++ M arch/arm/mach-s3c2416/mach-smdk2416.c
++ M arch/arm/mach-s3c2450/mach-smdk2450.c
++
++dev-3-0-40: Byungjae Lee
++ - Bug fixed SMDK6410 USB OTG Host role for mass storage detection
++
++ Modified files:
++ M drivers/usb/host/s3c-otg/s3c-otg-transferchecker-common.c
++ M drivers/usb/host/s3c-otg/s3c-otg-transferchecker-control.c
++ M drivers/usb/host/s3c-otg/s3c-otg-transferchecker-control.h
++
++dev-3-0-41: Kyoungil Kim
++ - Modified SYS Clock SYNC, ASYNC check bit
++
++ Modified files:
++ M arch/arm/mach-s3c6410/clock.c
++
++dev-3-0-42: Byungjae Lee
++ - Support USB OTG device role module
++ called 's3c-udc-otg-hs.ko' for SMDK6410
++
++ Modified files:
++ M arch/arm/mach-s3c6410/mach-smdk6410.c
++ M drivers/usb/gadget/Kconfig
++ M drivers/usb/gadget/Makefile
++ M drivers/usb/gadget/s3c-udc-otg-hs.c
++
++dev-3-0-43: Byungjae Lee
++ - Support Ethernet Gadget(CDC, RNDIS) on DMA mode
++ Seperate files for DMA and Salve mode
++
++ Modified files:
++ M drivers/usb/gadget/Kconfig
++ M drivers/usb/gadget/epautoconf.c
++ M drivers/usb/gadget/ether.c
++ M drivers/usb/gadget/s3c-udc-otg-hs.c
++ M drivers/usb/gadget/s3c-udc.h
++ M include/asm-arm/arch-s3c2410/regs-usb-otg-hs.h
++ Added files:
++ A drivers/usb/gadget/s3c-udc-otg-xfer-dma.c
++ A drivers/usb/gadget/s3c-udc-otg-xfer-slave.c
++
++dev-3-0-44: Byungjae Lee
++ - Modified SMDK6410 OTG Device role driver
++ to move comman function to s3c-udc-otg-hs.c
++
++ Modified files:
++ M drivers/usb/gadget/s3c-udc-otg-hs.c
++ M drivers/usb/gadget/s3c-udc-otg-xfer-dma.c
++ M drivers/usb/gadget/s3c-udc-otg-xfer-slave.c
++
++dev-3-0-45: Jongpill Lee
++ - Add DVS on cpufreq driver
++
++ Added files:
++ A arch/arm/plat-s3c64xx/ltc3714.c
++
++ Modified Files:
++ M arch/arm/plat-s3c64xx/Makefile
++ M arch/arm/plat-s3c64xx/clock.c
++ M arch/arm/plat-s3c64xx/pm.c
++ M arch/arm/plat-s3c64xx/s3c64xx-cpufreq.c
++ M arch/arm/plat-s3c64xx/s3c64xx-dvfs.c
++
++dev-3-0-46: Jongpill Lee
++ - Bug fixed on ltc3714.c
++
++ Modified Files:
++ M arch/arm/plat-s3c64xx/ltc3714.c
++
++rel-3-0-5: Kyoungil Kim
++ - Offcial Release(09.02.03)
++
+diff --git a/Makefile b/Makefile
+index 5023d04..21bd152 100644
+--- a/Makefile
++++ b/Makefile
+@@ -2,6 +2,9 @@ VERSION = 2
+ PATCHLEVEL = 6
+ SUBLEVEL = 24
+ EXTRAVERSION = .7
++EXTRAVERSION += $(shell echo ''; \
++ sed -n '/[dr][e][vl]-*[0-9]-*[0-9]-*[0-9]/p' Changelog | \
++ awk 'BEGIN {FS=":"} {last=$$1} END {print last}')
+ NAME = Err Metey! A Heury Beelge-a Ret!
+
+ # *DOCUMENTATION*
+@@ -189,9 +192,11 @@ SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
+ # Alternatively CROSS_COMPILE can be set in the environment.
+ # Default value for CROSS_COMPILE is not to prefix executables
+ # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
+-export KBUILD_BUILDHOST := $(SUBARCH)
+-ARCH ?= mips
+-CROSS_COMPILE ?=
++
++ARCH := arm
++CROSS_COMPILE := $(shell if [ -f .cross_compile ]; then \
++ cat .cross_compile; \
++ fi)
+
+ # Architecture as present in compile.h
+ UTS_MACHINE := $(ARCH)
+@@ -552,10 +557,10 @@ ifneq ($(KCFLAGS),)
+ endif
+
+ # Use --build-id when available.
+-LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\
+- $(call ld-option, -Wl$(comma)--build-id,))
+-LDFLAGS_MODULE += $(LDFLAGS_BUILD_ID)
+-LDFLAGS_vmlinux += $(LDFLAGS_BUILD_ID)
++#LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\
++# $(call ld-option, -Wl$(comma)--build-id,))
++#LDFLAGS_MODULE += $(LDFLAGS_BUILD_ID)
++#LDFLAGS_vmlinux += $(LDFLAGS_BUILD_ID)
+
+ # Default kernel image to build when no specific target is given.
+ # KBUILD_IMAGE may be overruled on the command line or
+diff --git a/RELEASENOTE b/RELEASENOTE
+new file mode 100644
+index 0000000..f891fb8
+--- /dev/null
++++ b/RELEASENOTE
+@@ -0,0 +1,130 @@
++
++*****************************************************************
++* *
++* Release Note for Samsung Linux Kernel *
++* *
++*****************************************************************
++
++Confidential Proprietary of Samsung Electronics Co., Ltd
++Copyright (c) 2008 Samsung Electronics, Inc. All Rights Reserved
++
++==================================================================
++* Important Notice
++==================================================================
++The information in this publication has been carefully checked and is
++believed to be entirely accurate at the time of publication.
++Samsung assumes no responsibility, however, for possible errors or
++omissions, or for any consequences resulting from the use of
++the information contained herein.
++
++Samsung reserves the right to make changes in its products or
++product specifications with the intent to improve function or
++design at any time and without notice and is not required to
++update this documentation to reflect such changes.
++
++This publication does not convey to a purchaser of semiconductor
++devices described herein any license under the patent rights of
++Samsung or others.
++
++Samsung makes no warranty, representation, or guarantee regarding
++the suitability of its products for any particular purpose,
++nor does Samsung assume any liability arising out of the application or
++use of any product or circuit and specifically disclaims any and
++all liability, including without limitation any consequential or
++incidental damages.
++
++"Typical" parameters can and do vary in different applications.
++All operating parameters, including "Typicals" must be validated for
++each customer application by the customer's technical experts.
++
++Samsung products are not designed, intended, or authorized for
++use as components in systems intended for surgical implant into the body,
++for other applications intended to support or sustain life, or for
++any other application in which the failure of the Samsung product
++could create a situation where personal injury or death may occur.
++
++Should the Buyer purchase or use a Samsung product for any such
++unintended or unauthorized application, the Buyer shall indemnify and
++hold Samsung and its officers, employees, subsidiaries, affiliates, and
++distributors harmless against all claims, costs, damages, expenses, and
++reasonable attorney fees arising out of, either directly or indirectly,
++any claim of personal injury or death that may be associated with such
++unintended or unauthorized use, even if such claim alleges that
++Samsung was negligent regarding the design or manufacture of said product
++
++Copyright (c) 2007-2008 Samsung Electronics Co.,Ltd.
++All rights reserved. No part of this publication may be reproduced,
++stored in a retrieval system, or transmitted in any form or by any means,
++electric or mechanical, by photocopying, recording, or otherwise, without
++the prior written consent of Samsung Electronics Co.,Ltd.
++
++Samsung Electronics Co., Ltd.
++San #24 Nongseo-Dong, Giheung-Gu
++Yongin-City Gyeonggi-Do, Korea
++446-711
++
++Home Page: http://www.samsungsemi.com/
++E-Mail: mobilesol.cs@samsung.com
++
++Printed in the Republic of Korea
++
++
++==================================================================
++* Basic Information
++==================================================================
++Kernel Version: 2.6.24
++Base Kernel: 2.6.24.2 from kernel.org
++Package Name: s3c-linux-2.6.24
++Latest Release: rel-3-0-1 (2008-11-07)
++Latest Tarball: s3c-linux-2.6.24_rel-3-0-1_081107.tar.bz2
++
++
++==================================================================
++* Revision History
++==================================================================
++Rev Date Description of Change
++--------- ---------- ----------------------------------
++rel-2-2-5 2008-10-04 WM8990 support
++rel-2-2-6 2008-10-27 2 Ch I2S support
++rel-3-0-1 2008-11-07 G3D changes
++
++
++==================================================================
++* rel-3-0-1
++==================================================================
++* What's New?
++ - G3D device driver removed from built-in source
++ - Physical memory management interface support for G3D driver
++ - DMA mode for S3C6410 File-backed storage gadget support
++ - Save and Restore function support for Power Management
++
++* Fixes made in this update
++ -
++
++* Known Issues
++ -
++
++==================================================================
++* rel-2-2-6
++==================================================================
++* What's New?
++ - 2 Ch. I2S support for S3C6410
++
++* Fixes made in this update
++ -
++
++* Known Issues
++ -
++
++==================================================================
++* rel-2-2-5
++==================================================================
++* What's New?
++ - Non-multichannel I2S (I2S0) support for S3C6410
++ - I2S wm8990 codec support for S3C6410
++
++* Fixes made in this update
++ -
++
++* Known Issues
++ -
+diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+index a04f507..03b1918 100644
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -370,8 +370,10 @@ config ARCH_SA1100
+ Support for StrongARM 11x0 based boards.
+
+ config ARCH_S3C2410
+- bool "Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443"
++ bool "Samsung S3C24xx, S3C64xx"
+ select GENERIC_GPIO
++ select ISA
++
+ help
+ Samsung S3C2410X CPU based systems, such as the Simtec Electronics
+ BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or
+@@ -442,6 +444,8 @@ source "arch/arm/mach-omap1/Kconfig"
+ source "arch/arm/mach-omap2/Kconfig"
+
+ source "arch/arm/plat-s3c24xx/Kconfig"
++source "arch/arm/plat-s3c64xx/Kconfig"
++source "arch/arm/plat-s5pc1xx/Kconfig"
+ source "arch/arm/plat-s3c/Kconfig"
+
+ if ARCH_S3C2410
+@@ -451,6 +455,11 @@ source "arch/arm/mach-s3c2412/Kconfig"
+ source "arch/arm/mach-s3c2440/Kconfig"
+ source "arch/arm/mach-s3c2442/Kconfig"
+ source "arch/arm/mach-s3c2443/Kconfig"
++source "arch/arm/mach-s3c2450/Kconfig"
++source "arch/arm/mach-s3c2416/Kconfig"
++source "arch/arm/mach-s3c6400/Kconfig"
++source "arch/arm/mach-s3c6410/Kconfig"
++source "arch/arm/mach-s5pc100/Kconfig"
+ endif
+
+ source "arch/arm/mach-lh7a40x/Kconfig"
+@@ -716,7 +725,7 @@ config LEDS
+ ARCH_OMAP || ARCH_P720T || ARCH_PXA_IDP || \
+ ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE || \
+ ARCH_AT91 || MACH_TRIZEPS4 || ARCH_DAVINCI || \
+- ARCH_KS8695
++ ARCH_KS8695 || MACH_SMDK6400 || MACH_SMDK6410 || MACH_SMDK6430
+ help
+ If you say Y here, the LEDs on your machine will be used
+ to provide useful information about your current system status.
+@@ -731,7 +740,7 @@ config LEDS
+ config LEDS_TIMER
+ bool "Timer LED" if (!ARCH_CDB89712 && !ARCH_OMAP) || \
+ OMAP_OSK_MISTRAL || MACH_OMAP_H2 \
+- || MACH_OMAP_PERSEUS2
++ || MACH_OMAP_PERSEUS2 || MACH_SMDK6400 || MACH_SMDK6410 || MACH_SMDK6430
+ depends on LEDS
+ depends on !GENERIC_CLOCKEVENTS
+ default y if ARCH_EBSA110
+@@ -750,7 +759,7 @@ config LEDS_CPU
+ bool "CPU usage LED" if (!ARCH_CDB89712 && !ARCH_EBSA110 && \
+ !ARCH_OMAP) \
+ || OMAP_OSK_MISTRAL || MACH_OMAP_H2 \
+- || MACH_OMAP_PERSEUS2
++ || MACH_OMAP_PERSEUS2 || MACH_SMDK6400 || MACH_SMDK6410 || MACH_SMDK6430
+ depends on LEDS
+ help
+ If you say Y here, the red LED will be used to give a good real
+@@ -867,7 +876,7 @@ config KEXEC
+
+ endmenu
+
+-if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_IMX )
++if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_IMX || CPU_S3C6410)
+
+ menu "CPU Frequency scaling"
+
+@@ -1070,6 +1079,8 @@ source "drivers/leds/Kconfig"
+
+ source "drivers/rtc/Kconfig"
+
++source "arch/arm/mach-s3c6410/pwm/Kconfig"
++
+ source "drivers/dma/Kconfig"
+
+ source "drivers/dca/Kconfig"
+diff --git a/arch/arm/Makefile b/arch/arm/Makefile
+index 35e56c9..d19cd22 100644
+--- a/arch/arm/Makefile
++++ b/arch/arm/Makefile
+@@ -177,6 +177,11 @@ core-$(CONFIG_ARCH_S3C2410) += arch/arm/mach-s3c2412/
+ core-$(CONFIG_ARCH_S3C2410) += arch/arm/mach-s3c2440/
+ core-$(CONFIG_ARCH_S3C2410) += arch/arm/mach-s3c2442/
+ core-$(CONFIG_ARCH_S3C2410) += arch/arm/mach-s3c2443/
++core-$(CONFIG_ARCH_S3C2410) += arch/arm/mach-s3c2450/
++core-$(CONFIG_ARCH_S3C2410) += arch/arm/mach-s3c2416/
++core-$(CONFIG_ARCH_S3C2410) += arch/arm/mach-s3c6400/
++core-$(CONFIG_ARCH_S3C2410) += arch/arm/mach-s3c6410/
++core-$(CONFIG_ARCH_S3C2410) += arch/arm/mach-s5pc100/
+ core-$(CONFIG_FPE_NWFPE) += arch/arm/nwfpe/
+ core-$(CONFIG_FPE_FASTFPE) += $(FASTFPE_OBJ)
+ core-$(CONFIG_VFP) += arch/arm/vfp/
+@@ -184,7 +189,9 @@ core-$(CONFIG_VFP) += arch/arm/vfp/
+ # If we have a common platform directory, then include it in the build.
+ core-$(CONFIG_PLAT_IOP) += arch/arm/plat-iop/
+ core-$(CONFIG_ARCH_OMAP) += arch/arm/plat-omap/
+-core-$(CONFIG_PLAT_S3C24XX) += arch/arm/plat-s3c24xx/
++core-$(CONFIG_PLAT_S3C24XX) += arch/arm/plat-s3c24xx/
++core-$(CONFIG_PLAT_S3C64XX) += arch/arm/plat-s3c64xx/
++core-$(CONFIG_PLAT_S5PC1XX) += arch/arm/plat-s5pc1xx/
+ core-$(CONFIG_ARCH_MXC) += arch/arm/plat-mxc/
+
+ drivers-$(CONFIG_OPROFILE) += arch/arm/oprofile/
+diff --git a/arch/arm/boot/rootfs.cpio.gz b/arch/arm/boot/rootfs.cpio.gz
+new file mode 100644
+index 0000000000000000000000000000000000000000..98932831238f4c9b766c002eb43c1994ef0fbd91
+GIT binary patch
+literal 3753247
+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
+zI*<BBdu&*XhRerNcSG6hL)X#g8m%0AX5r8H@mqUXo_!@oCb{vQs-He5vwv)ZDko)?
+zF(|*g&boP7#87B8x^bJvT<~39?6?1@Y?JaGlb8y&gQ(pIiij#fVP%_)ZcvG#^E!+1
+zSpu{O?F`;(O?%dQOD4R%CB?RO?JwW=(Ubhe3{zM8d+7VZqGtsoY)~veIH5YjZGEMD
+zmCPO4o|a-Oc85p774QHwHHDg_k9(|~Vl({uS$S=94wf6nRpXk(rd32aSAuX9Lkn<W
+zYzK+mw(b`cc7+fT=aGqR)jb~H0Z}4~@5GBC3ySAc2OJ}g{Fk9ve_!|ODJW;+SNKw7
+zy!z?Z{_5i=Hy*d4#;jX4G-?L==-;wzs}o4P4EX)F{HS*?>2V9*tNBiQ8XzLLiwlM4
+z(mWH2I42jni@N`{<b0KTr+xFo<nM&x5>eooAbP}Fs)*X}7OxZ4Wc|3u5Ud*;a%C5^
+znxg9BurdXm*|P0t97}YL^@X<QyB268i2CFtxv&3dp0fNbJLD;)G;QXxiA@L^s5}ZA
+zbtJlcu$tkuOilVK+j~ctmL9I;qw2$)UOYbQOlY%b?35@%Q-D~sRf3tp8#WsLrtV+o
+z=L9iR;%NS+5RPd1dRqPjM0#r(8xt~x!HKauRIdXrmkHWQfxJ2n!mlcs^jd#(?Dd&z
+z#$RJ><<k8=E~fmIm)=jBwcNCI`jVa?^`E-~Waf~8_(fgy`2g;VKe}<HGIk%y*=Cuv
+zRRd$io&}G-<<V6a{z&lp7mnvCS?gfW*WKvbp~ZER#!<8MExQKGS?$*ZIHTm_5<-Jo
+zQ$lx#Lx*VMrNj7+*fEwSr@Nnas3J0(<2NLhqFg#Xgv6;V`KVsWg4=~&*WS1Hn&2qR
+zuT|=BQp6^lB07!W<vl(!xK3?#MZdndIMiUc9JuI07JZ4>gKyhJO<AjXMjCZ+I5VS!
+z`uzR;nk`=S!OcZtWT7&;f6~Fu4jWgMt|s`GthuJ;;HA;~Ed1r-!B%zZoR(&@guf+o
+z_gBrHBh&2=!QMR=-yD@CM1N(O<&{n9Oiw)+dF;W9VLo|O@0CFbaoam{jevw|5+}Kz
+z5u(E=jh&(<<=3tESKi5PzrQ_J;XPm|W?5f~PZmGqdT#Ft;h37`sv|Y!jQ8(+){)Nt
+z7`JSw^P_durjmkfWg6pwAm9IOou1aYcL}V<ijg>u?2q>C7lO@S48p%tryUVnXm%*x
+z9KG1l`DFFOP9@IzZ3At8-5+hDgXwp-j$>Xr)p|q+O@@PxV~NZ?M<JJslDDj%64ndU
+z?A<i}eFq%l(+&;PJ?kMSJY6oNh9dHBmY*A05cVwN*=Q!JPsUNGBplTLPK|v0)5iZi
+z<yX)&V)%ZMW{&gQ2DbjvKdrcqo7Xy=TPc#WxI7U))9+?^H?=qw1eeKDbGJUKU8dB<
+zg3AmkK9v$}&2ZRgoSXE7ne@h;@oD)5my{j--tVh4%cJe_9^g^bI*p%K;QhyQh}KN!
+zJ^h9GQv~9oavV}KVaTau9FnK}`1XPDuy))#9qE51?8OF2Y`?ooXZ2FeYd#e$si)Gx
+zSP2$zj}v^R37XYQ1o+_(@tQS#TX|;{q}rpG2#)F6t$#r1R`?OE)mGReO_7as3k;@w
+z)E$dfMC9_|^UZbIprnVY<kD?AaMtK9Qk~HFUpdxWHhD}d{G^A3yIMpmb)?wj@yB1(
+zUhWw}YRGkCJvi{K2ycw&7MRANXb6wVBj}~{n3yFE@TK(H_WuxHq|$3kzZb59UmCYb
+zIu7?)HWy&?#C9gfY7HzvbJ1xxNR7dXaEDtOwaG)Z-a7sw+va-5#%8S62Ia+aj?ZMM
+zFIpXf7l&eDwHEwCq}r3mvL=9)q<C3}9#p>|-=@7*Z=F2;h4+HCP7RLe%yH<UI}5!&
+zwsW(w$q|kSde{ih)^o(ia|d!(SFl>r(b&ZQ1?SmgH>{Bri@m?fy=av`(1}zH3+0}s
+zXE`6Oe#N_U%<cV|DG%jE-?00RqF*gP6zM>r#_4o^tQBr@ctBzFcI)a7jkUh!LEb|q
+zS?2WH#60J;6Pq93>+V+?__564s-cQ4W0qX$FkgP+&!^5!+$nv_I1cI?tr=gx|MOm|
+z%jCWnJMr&by3!vdL&6f85bv~5faZ8vGxa{~+!*~dRgiOU6~D-9$>g=X@;v8uS$vo|
+z8baUHAHDLe75{a^5xQcvGDKN?=Um3091(nDy&~mK?$9fiTIzo?V0;I^aNPP6a-T@=
+ztq-@DBmQi`GcUFbEuw~-xbwJ$9__4G5s|f2O|(n{=l%WgdLL9oW+t0|2WLK=7Mx%R
+zF?$#De3K^Hc3tohhE^91u>X~7I-eGZl|7iw1&bXY%QfL!pBIEbY|Ktdz*(es+$k)z
+zM)T5JZ+{F^EVJfyIe~dSLoCmX5yvl^zkiUFQ{f;YJQgl?e{f$ocraRE>oa#&*G74<
+zlsC5i?T)K*u2(?Qunqr8(k@KM#<9fjASQA9GI41?@s(G4VjBAU$#K>NIp2u$MUvD2
+z-@E&MGjivTNhP$Nx}_Tb9(Y<mT6SBP7JE0jYQQ@wqZs)hn;Cis<c&5_ROZDTCiEUq
+z-|L%VKZu<W6^MkGkd|S;;@?|7@r~68T6J$0wCbDoA-a=m8_lypmlZ_$hW~Y+F|{C*
+z4*|T<hIVzNPr><P+$@Qz40bAStj7<h(S&ZX_#@VzwPkUGj3+aXv>u1+47G7OIe)dJ
+zel;0i{oziwWN8f)c#uze;J65du#eiqt}KYH4|o>#S2LuH<)!2<3{hs^&}PZMy8Gmi
+zzI&LXSI7}@e|V<<ZD=OXMTioeC>X^ZB24Z?mbwjP(|pfS{SCLf9+^0}LSPxn?>?Tl
+z8KBm#CgW6g0<W^J$}?SUwR2_GEW3^X!@xOFWJxu9bHg76Q437Lw3L#IS@82LnGwgS
+z>ihSvIwZ*MZ0oPpNoT}bCux2aaW*mY;!I#o`SKLUkm#uk#n(%xyw2SzRe2rPa}Fj0
+zcE+FR4b9;U^eo&)URu4OHQ}~K37EoK!5<A<-zCwyJTo`PztKKNHK<=rdPn}w%b#;3
+zn#TNj;Q`8yw|&4?T@%7#LtT=VSNBQQZP?kdP+ab`=`;k((DpU*MvABJU6%bF84QE7
+zAkdyG@7UdZM64ELK9Ya`il97#oO3dge}})4pCnv-)&xaZO2#MaAE(8bPO|2bXRogJ
+zN_s@4fKe;^A({0C(u8&UimOjd;`30wPX%9t<1WAT@Z2x|4Eoc#Xb@`Pms}Ej5!91C
+z*Laq9Pc7#fIEMOVh9;Mw1Ic){_SSiH49-VmH-&yf-8s0pj>rIS#5TLbt1TRTfPdMb
+z<7Ej{$V;cQR9;U|&o<_L5ks!_jEiiH^bkcSf*kmY4duO@V923Idha7aUhuKSod>)o
+z3?`s}ssFl3N|!oZDK4Sw^$H)$k9UIK_APT4XfX@h9fdT##1Qsdw<2Z>)gsDt+J!Za
+zFPL4f&>^-+%guhR4Sv=-?aR9BiWle*C!{0o_UW>fMds@uUR7n1<ZBWGv9!p<V}#S8
+z?Iq{fY;jZ8b=vy8Pc^>SLThIzX=y}+uROhpDnw*TgYeaF8vIFmmlz+Ck816=xnhgg
+z0>aP^-8s6X;H00~qbiZzv-i<TRH4RhVOt9izQf@7QIprk#=+<jNa8~%{5Er(Vaae9
+zYr#F!VcLdkF3TxBm@!E{RZ9QU{4HuNv-O*>rGNpYZo1xc@iY|};*Y3+b0Vb}>~<R-
+z^OshED`mpp6fy#s#_)O#e|pgC&bT0<uu#Tk`Z0ae*jJKjYlo*tVW3gP8WdJ#6qmyN
+z@mJL_+wrT8$>6)QSE&dXj1J{tOS=^R$ketP2Y)^O-EWmhENGE2T5&!-A;MPr)j&D*
+zlC@8Mcy@R~Pk$#>-B(UKU>3L6Uvn{s(=!S;`xF1SYCPE+Q6wHI&MF)05plNDc*py^
+zs*w5jH`y#Vt6g0I;~zNv;gyZO@D4Od`7AN`%-QlDox>s|{L@6*Y~=;fMKQ<bMbS??
+zb?e<bVqb-C_e$k>v1d!6hJJe$h$@_qXjLi45@f5JHY{A5HwNX*I(tvMP!V3&DUla`
+zE>zp+I3(sxIk)PSk&k756lu>eaY->=^Efhr^MH9jsykk?BmT{KFYIBxLZ5<{^4zNY
+zxRVcMxNG*8@>1O1tH*1Zxe4?WpCD|`^fT+p(&D`{k*Zdu2^)jl+jS(^9Ga)e=<Oz6
+ziAv@HW>c%SRUO+mDzC@QS82>UjhzDyShJLcn+8|YOI6;s#Y6aR^>R8nErMBrvXk%T
+z5;AEuKA_=PA+a`zvW=9{5m`;8#g!&&^Ee2{hh@<bVQo}Z>oj~D=?oRg-wbtXC<)4R
+zJ^cf5+bbBiwYxuw8^h>)=_YQu+x=RChQqdwz~>h;!35*Ip5{)~pK?ys+7~r(P~nM7
+zvAYjWNfpCFd*hH!gilnhB3~>m6!{M*7(SE5wz2dhts5B<7)GEI*FzoZkk)-Kg%;Qn
+zPRt3|S3)p6eTVb9lHXd~vy*xJihnmc&y~$P#us&rGb+j+dabHSlVSF(OWrP@uqP0C
+z;0{$CCB1G(Q1dg+x2m#nRGxdM6W=|)Z0#?p2vj04WEpm$9g_YFArD-B0<km6fvDOe
+z?qN>-6m)q)PleU+<2$a;=XA(ef5ObaXY-qUiZ-LB>@iqA&v~<ndWO&Y{FMizq!^ZM
+ziqI;~M9;kV8}n5Yssvv}b~=`rm0wWf(*coH;k}eoH8Y%8p*xT7K^zoptbE+!rRp1r
+zLjKa8CdVps!l-l+E4Rk?Y(L9PIi~In5e5eSYQ6q=a9nSkhyz~EiijvZgQKU=3AthB
+z30EfdU<#7XbB*q;oJe+ZnR?B6EY7peIvR|M>76UBNM}D4m34yX@XhoU+dBQc7Ef4A
+z5+RqhytSL`byrU3X7wjgl({79)ySQC{zhIsmzks2N%MiOM%VGi{?)WU<dT{LsWjh|
+z5++5X=bz{A50bdk{KN8F;JNNoJC{pOTZEr+{O&nQ6|RtK9NZ)P5p@vd3$>9KMS;3v
+zQR<mEe216sA+zG`UB_<$OWXvuyB0sMi@$>YBIh3`3!z98x7N~M^8fh|kZ+T94ZIe5
+zr<Hb&FsB&M5AW{if3t5h{rONgTq!kQ+rKq4Iuwf9>TNol&)r9^&%_^V!|`m84YP{M
+zd-`}yM&e9*Q~ZX<s@dHZo2LAE&5+ppj3qCrWv7=UZ(C(Zy;AqJZU-n?oWq3DHQm>Z
+zk|`qWH?3*PmiYH*mW?}565f|_7UX`09VvKf5#`h6&%;4P8Q3EgtUBw8n>Ok>Z=YF@
+z)#Hclni~&ZW1tvaaLH(lrEP8JX1$w5a`Pbjph)@V^(rJtfju5!$5B`^;&H<5emQ&u
+z>!uL-9xbA`k5Nu9(5|J!OAIPDJLGFic7r*s3vD9S7zhzlIR7p^M)^<h0mF3F$@%j-
+zpW5LG?d=p65}jl=bHod>FpE}f?nR!u(7gcB9+!l+YMVsgOU>LSagKNHffjP~JWF(c
+zJ0CTP7}lDRhMnK$v6-r``JanlYwPSPd}Gt^9s8a%4jw+IpURNh<D+^)QHi|rg<>};
+z(dpII(rzf>*YUQq2yvR_=99CGFjF)U(`i9$qj+-ewKb`{(>j#fQiL`tT&vdK;`!c>
+z98hQX`XU=q8*zu8?4}3N1Lm0^0z8@-Te>1*zF&4x<0(8jDnW7v*<V^ZaxBNuXQ>m@
+zR)202BFVZ6$Hm4^iN^~?i?%g<lNGMwc2(ACM|<`?YGRpOZfmC^{p)vitMR0d0vl1%
+z5}AtMB46-`&gx4=i%humtdhP(YS4cDDXH?i^cRc5sewl39ot`|KM-8syr<NC<uw0%
+z=v+XDd|m46F7*o6n&t=jakPG@Wn<0)jKQ<Je2q`o>N=v7Pnbgf{ZdfVChonO4Of8B
+zhE%iBHCM;6&*Bk!($qfPS2V&fbV(A@vo8pQ8JN|DjwBk)?Si!RZfL`-?YuHJLwF1F
+zXr*d?O{~X1KyGkpOoC#J?$TioHkBrJl)4?0GByfmrMiChvNqv(+Es|oDt;F6D^>$r
+zx~%R08=CA?O8~n9nqDd%M1a=AR_1yw?zo$AHB_a8DDOWAd$b+}iO0FR9f@vedjE?~
+zH|uJsRtHgC0J{~M-U1$^9!QbBUQ0NBBDfE1x1PRY5U;&l+Sq<I-lsS)N}a@cN1r5W
+z6Vxk<S(Rmwv$NXKDB^cPi;J45NXq#Tq5dOB<0WOHNG4X0Ej>{gJX@q$CT$(sRkxsJ
+zoT~+%c6CiAbo*p*fguK8nv`Q(FY=r)v~l>9gRsuG0{&C)^)0W$2vG?pC0UP-S74UW
+zH7$Sh^E{7d$REDnO)gQzzV$<USO^kE=AmN|z#JRZk+@Yj#z5MA<GNFhryOnD?TWjx
+zEQyeIkN09ndK%9Q-UreJuj7;JwD30XPICF5N&46aMn)-bt;j*Y{SON0koj+o4`oIi
+zl*;k9c4_G<9vs}k&9(v~??e>E7`l211k#Bh)-D%;_=L%RSa7(WpV5mWw0o|jg@p4)
+z6@T`ae)YbY_wYq?O_hFE8wO$6{!8RBt=Vnn#IQgduPBM+9Ze@Z%*_=hi^h2<_(%9|
+z_BIbPU^z;sa(m}uXu}w3lVB?o-R+AZ?BN;M<m|F%pT}JJGfg*3rv#C+XJS2YG2_ni
+z*I+C8R=O|miC;~~@>zXr*QbS-L$RnPT5ZkW-|l*dqaRNQbsG5<JZlR){Pt(5e5w2B
+z<znnZpHTO@l~~}-!wSBRflvZ}TH6}S)M>?L=VDHjne$dUye$41g7_vJGsJ=|dxX)m
+z`BTL@0$&F<gF)7b%9o~=#yH*Y(4;>M{?~tN7jQT(f|w*AnOZ#Cf*D=n@x!CeybIpA
+zkVIm!I|CIjyucGzf4?u!HmU8NInBOO5b#PBhMj&vlY5J_E4-NHoJ-jvC9aXzd1X+~
+zM<rpcEJNC$llk+rD{`pw=hu4s%DI7-B6T(@w`0hBbeoy__a^7&&Yvrk(^LD|GZDFC
+zJ!qjXchOe65O85voWeE^8{92cbB}~_e?*5(VhLn+<`0;^b8kwz6DWnC6PyY+$>?XB
+zXy|>opXmq}3FSV05n`MmQif|4Kvh1guTePi(w1fbHNFz|FX^OiF?u0iJAH>jp!78<
+zX~rN&ZwB5;Q;Y8r(t1;q=7@Cb{8D<btN_P9f6ei*IGs)f^i@%Hg}V0Zkq^Jjd@rh%
+zkNYFq&XIpHHFiss8Hz+X4v(|2fLlPtK5P$@4`-m4ui-t^>)FAmyp48Zo2epp+AF*d
+zV-S8(8?FR9pXTKpr52HWwGdcX_dg}*X*)xrQecuke+y~-!mXs|QuJTgy6T`fo?sm$
+zNFaD1xCM82_h2FLLxP6@!CenH9FhQsOOS&AAp{E+oWngF?(Tm0aRNNv-|tmzP3=xk
+z%}z~k&rJ1x{k1+cPGX0F8JzF6FiVfZbq&}JSfV!!OVbVJ+BN9jm`U}-e1()GJ`_SC
+z7lB{L23`5zzVwi`rd?>h>=^1J7%@=0BG3bfm)5D#z-+mHT@~9WaBWEXQNH;|iVTGY
+zwN-UaOI@r?Qg<eBa(7`?-g_;5Zr`{X6?s#9N@LdisXjNep=}fbs(g+gWQ+ES9^nOv
+z|EM)ia3M;>imh#(_GTG>CTCDJV+$(1HW<<CeopP!ysIUdDH$m{6x7N9`TpO=cKBEu
+zO^qY_jRI}9s~FjTFRkNvs>7%7fM*{iedRKiRT-3#M~p3BCoyG4eO8OmmA(J19lvD?
+z<bK{!_~@;sF{9kkvjA8v_xrC&IKN}>DcKa)hl~nEL|}X8QU`$DJ{Q+(?a}qMD*=%Y
+zA*YUi4HNdha75^7kXVN^IU^GJRh(34Cd9ZZI(^QfdGC<YYsL$op-IbwoxtE+LzTI_
+z@ph1*EY;>9Nt!-Et5hI^KH6)G5F#aR!q_-XM&t|4uN7nUNzVXf{<M(%v!^u0Im7+Z
+zNqciLYq>S#QOB596k!>aQ#aP2(CWQnX!SbYx&7<Rd=du!5_uad-A_6Oc>5MoBFxTw
+z^x4Rx$7{XiX$}5ak7obE-W&yj-!|-lZ}>c7RHy)fvM1aQSOm>W$uu|>mm2A3mlaWw
+z6@p^+U!7{g4~?4OiH%%k*CGj6`(4wru(%DUXjsUB>yK}*8JnB=-(`h954!Ko`P1H0
+zET<@%&0c7OY*kxI-O)YAw|(P#!mu!{;fJkfSuWLfBSHrq9hFjD>THQFBazgTb6CG+
+zlU6VX9<(c`?i(uICGg<&<Da#AhWtdm;oLv}V58>=#@@%a=2vtacu&F}+O)(mDRZVX
+z=8ALwzT;VqWw;F0hM%3rChpj&fLUe3;U(2*NT=|&VsP8BpTULyfIce_*&%XvTRGm9
+z`)?p%b<GD71$x~=;#+nvvpxcREQX=(cGA~=2IqI{Kn(N!27bz(z8nk_cpWTK`24fS
+zP9rW74&Nw+DPY$}zzG#9pO84@D}I=>R)Rs-7o{#3L~h_1p5P-mp<FjEwwuE0>dnt?
+z8#GyapdcPot~?9T@P$R+enlZP3Q(i)Vna{Tz;CwAm`>sGtXm&PFL?T)ITtQO4Z^LT
+z<|mmyT@BL5Qh?#wd@jI&Z!0y$ttOrUe$(Gn{#9U2(mgjTmjI+U<6ldkqSl`a*Tg}+
+zqQ;{nXl`&+!v!StFHXCguYQ#~to+?k5u};EYi1zvLq7yY-|lDwXXqh$e>MD{^Gc?@
+zH2D7O-x^-)!FB6%c1(2X`e|c_K~_#-<OGM?cQc}3E0d0<vx#ODYj7`NK2g~MwN+L-
+zY%V<v+6j`5SZBP|fM4H^bou_GMNubgrm9UW+9bUHabPp+BMs{$mkk+ooa}JiA=}Hc
+z`9c{u2N}fO((Hx(j&$@mSM_i&Vy<hQz32NSWjT@|A0vT57;+XE^(=di0TkL<k4+r9
+zF>}pO9Y$&D!qjNE!KA}^ZnK|QAp5D#-g0ODwf}6x`s}4BcK7kNXcR7q_(ATO?z9!C
+zAYC5`mph<;r?bu|_n-jSXJq)#Z|_2eIr`aVma1Aj4X^V%!r`$uZzy>ruA&lj9AaBU
+zv=n_Yah@lVAWo-${W{nJeK0C0dqPSw`X3`Vs!>D8jk(5#V{W6?Z_7r9{EbGFv$MC|
+zG$|h%DB!4qs}2!Ic99tc)L>F)$aoO6WxoIbm4Zp_cZf*5U8fw2kNM2`!-e<973C!2
+z>j7HLS69vVpPH}F*MkpF*SFc0qWJ3C_;GX9eV!jzRFh&~@(B*Cj{-Qea!H%o8i9u2
+zm$f){;Ip4+J%{v4)0o}Lq<03<IikT$bgU@%gx+YE7jG;FI9qLaGw?NjEY&%H(hP@(
+zMjP0+{RM3*)^AyLr6}@9aB}JKqRG7HjIvAvGqe8e#~IBh8<0;yin?zWzNA;-h7M`<
+z*-2ug{TD3D?3DDPLOxe#(8A}JFY||xd9n+eYq$;Be6;uJGn|?<{N<Ei1tJp>GPdHo
+zOS6707av3Gj6Q5rPqjO0Ugb0Y1I9M|6e$q{GrQ@fbTX|uE~qx?&R);O#`fkB6w@Aw
+z?`>o!w&ird%l#Wt8VaR}_`sRoSpI~AMQOfY^Odb?ndtqM#lDP*FK!p(*CUJ|X<(m2
+zWOue?gT#cF6_oowNJPt*Vm_55R!gqTv(JXdSd}q-AK6&loNk0Mzu>BH$xIZam>B(P
+z4xSGm8`b;d6)(N&<15MS<Mp|-JS}YP%dw_S<UCA4Q-&IWuU+2oxwb*)UB}9gci`)R
+zubFJYTpGq<%~Cnh#ry9X&$>QE1{v=?R%S})P;5s8QoJNhk}&PRNo2cTBMY|1?|?*i
+zmPbD=Tw!|nq1yPNF6GD0oJAhIMexiC)Z2r5wrgFpj>?|?aNEDHuqgD)y!~F~a#_mF
+z<bQoNZI2n@+4Xt7Qr=eJYfn$BrT8)jX04#=+K(wxp>b9fJwA=yEUKABOM=#uPw#x4
+zske@nQ<(u6l-iej$tO!we7Gt~mLMb57rszyPX@D5+&lV*1T>M7v7_mGn-Ocy3PLe~
+zPt&PvQ!^|>W$OX4xh%aF){dM3m2di#E%Uym%hT!mFK{iI6p~S|cr@nuZ#QGo+tZC2
+z7U*Xh1>2>V120+wVcy2$!}@8<2E6~8Va^$4x80^M%c8W*t$d2Nk**=y`ki`VFO#V}
+zMnGlxB}rvF^l}&+fc8W&=jt~5E6%7S?Gw!sI>VZ*nO3PMgw0XIs1?bG6+yK?!CN(z
+z#gDr`PCjRK3=MxDh_qXM<-93&h*0}g|9o1DpEH9f<K(T#*i{aSu2kQzlz=?lDxZ^#
+zS5`-M(s`2y_Lq3?jIgI=yL8F<?~CO+gsb(hn!bMt&58fi95oZ06miw9Ig^b?S1YaZ
+zap`lQ@KyRRZJ~8!^!^lcW~-kEI|QZ}g<Dl#!-u`!ABx|H`Vf+E5h9I*8N}973U4uE
+zU^?&iy_WuL*Bky73i#1M^CA-#GM8__qY_=~FlzHinh{aJsDX1LG&2`5TJD<H%S9U?
+zgVp*ffcn&5H1F`UwX50Ha)~QPmrjfPfvQT8YPDq~*|hWx19K+yx#bVbHS8U$3PO1!
+zttE@U6yH?Tty3Nt^aiNxfVrcw^&^pnr`WYLp6`bn)<low@&NSSqXsAnf3GB$sFfz~
+zLra?{yrVvmjj1h}J8|H$h^-F#v?a6%HS5T;|I7p+kGrd3e@I98oK4rfE)T!%I@WNl
+z`c1{b$vZ=oT7U}s#Tms>sf63_NtW`4rSM_NjD!f)r7C|VYm=<sR+#KTGY6Xwi_M+S
+zZo7tc-Y+M9GX2>QsN+B9uJSslRMuYBW}l_5M#o!rr29kG>K@N}cvzf~dMI<Yttero
+z27dv)D~6?5MLla9UyAHOajkE2H=YEIZ4K!ywJn6yUAX6;dSDW%yHJm*FSbxy_D#5)
+z`$Q<)qNex5`%yp<*p(%BSn3nO;!)<bqIjy+lm>E`y)GwD<!^FTCGqH0ovgtBQ!tKR
+z)yn>Vg~I4nz3l%jjxU$$DBtz0v~fxlA897#;$B(5hbw&Pb;q@(5JsP6yL)8+DDgks
+z+4XAt;bRjd_~PcFm`R}wQu*F@Z%q|Ecr$(&Nc)>)yrz0eqc+t0m>obN5?8^~jzgUu
+z3`_eq%B0KTeW5B%BetFI=EMQ$7y~y|7cvYmt&)z+na#<nJ>@#jk8Z};c^z=cJ%h_S
+zY%3k`Kq2S*Mbg#eXGCXI7pAFf2id<>$E*Cv5!F_H85PE)H}+vvcKYjz{QtD<)(O&R
+zM@Mbi%iclrf<&H@T1o3?+>DGjg#<7@B<7eqs4x=c;veOQ2xF;ZQlIjfNCQbN#ld&S
+zEUP2B`DOY){!MVrGCNQ=PnpJRQy6;e!SDv?I<}j5Dfrin?nC(}zrng*9@lsr{^8b{
+zpV0e=sRR{~(FaJT?5FYN@dzJvhf6vBYN!;a0dcG>PFWIUBc_H+8musvsdIRgt>(H`
+zX>GyJ3?~*6V(^h3rl;6Dv|LjSWG0B6)u<UKs;COTefyQlPu%$%vL54EUU^T9FoJ_W
+zw~$g2#%o0-mrY-$#ij;gYRX~0cdN8w3ZoxY<OT!^22FL+-+H+4cvaSNGCU+QHg@9i
+zE9VyTXzD|cZYB&Q1hOP}-6?|9>`3GwB3qm_`4+i$312=2n5?l;YkirdfQe+$8_WJ&
+zyW@2Et0)@jFmp4B)$)?HKz^r^KOgTa=-V<k0qv3zK)ovO>ejxFNO)aOYaO!uJ~N7l
+zjIMK5Xt{Agc;dZ-qUGmtp5N%V&6;rj@}QrrO<!S}4wspyq#kD&825-__tSdDzq~Wj
+z^cPe7I0l0BFVCvRIGb8k8gHL?%z`3<8G3>lTn1KNk63%`wf8=sFRlU<f7oBnzrfRp
+z)XiTrDo$EyJcy~RZMrzR`qhqn?{m?9j5OTtsZyN`Su{qHBfRZ6r&Ain1(S9VI)EXf
+z*i=UvkTj#5=;FQt^9lD!bTOE^rOd~p=w$uJ1>*3XKM=<!A}V$DIS#-6esF)w{ESbK
+zJER1K_tRERd1fq<d$f~Cg+e>ts8DYDFJ}aIe6`_<6qjrA5~VFVUPLtjyI{;IOXE-P
+zjqp;`;>}xkxirfGilbFFjR+6pOw$z4p`t;BSD>x6-(J?q`XM8S*iV^v8f@Bme!kZQ
+zN2T>xO#XbCRIb0^tX*WK>3Y<AByBkSSshk2Ch8g?>@WQ)s{}LDicSLP#aUjrduVrA
+zqKh_-84TdL>d)z0rP79Qoo~nUQ}?Llq8txeS%l^p%Y22Wu!h55M;J97=6dl}pK(id
+z9C04q%HYccteOG!q&KV6Vh{U&(S&KvC$)Lq<W2vouh5q|{Z_YcK(I)5YG3lwMTE8L
+za~t(x?-IX)TeiC?Esay}(j;$1A>V0|XyqqW#QLgdG3hOht@Uk70&nx5KN%e%l4Pk5
+z{Or1P&#C97qM^+~nWc{mf9^teFhFzA0!tpCv(Fe?su3XL!Mp(tXsDlEm(Hzv2pDY+
+zta>PR#N99G9PO<GH}}--Srzp%sIaG-8^4mQB^r!mybY?n+JSl9W|>VZzA-ms79pvz
+zwJ4#-1z}fsdOp7+OuuXz8&~>NnT{)!yU)NpxNhu_5n)JDj>Dle9+Q_>)cZ1x@0j=e
+z84KQrjQ5lvh5OyC3Jzri8>b%wrhxLEfFdyGCPSef>67C)a}PncXqH2Z#O$Z`tjEn^
+zwPeX`$yS;QpPtpdsyh}3HNIS7wjE*^(oR+yvK;~>W6_et(Z$lm&_(5i=S3R1U7L#0
+zHipd&phKRb)QBv~kL%!8pho<QeCzoO)_7v2;QgaJt>}usft8_F^fl^t6WlZ9YJ;>S
+z9_y*!I7t4!TO+8F?!>%^;A^=vj@DoM>T-Q}N7M&*AMS@Uql;3)@Gh8HADFkwm~ags
+zm#B9Vn)&C>30M=vT8c@QF@A&#SkxqP#@psyam+Hz0Gr%^h&E>2H^h5jrE|egc-|u(
+zW*pJUT<~o=iC%v^X8aWS&`$Sg6!UBap9^_2^=03^H`wpqpQW8@%3H?uSs>oW`<TJs
+z?J9#6B)2L=9<lUTQBTv6$=8auik49NyH>NEOS*=UBL=N2zz$G(I#Ml2hhcwoQ)`*;
+zoeQ5OQ79?X7~EIRRGj0RhSyVVVhlxC{Uz?v|2h!}%M=|t%k>Q**|bY8@~8#6-Vh$I
+z>&qrj4|_BxxsCK^QBo6o|L&DkpGu0nWb3voMCboWD@6O(qm@8x>#y?hMxx(gRpTCa
+zB^ENa6X)Ts30#riHEsFeJnB`GhkSS_plhb0d$yi_{Jg9vc)9ygF@z&9ImGfr;SLAk
+zbN>7sG89k(iG-yx4&P${wHdN5u*2RKFab3RG9L)Tw2Xf+aCA-Xn6|hP7x4{$v3Vu=
+zMV25BQ;%KXnPWIrs;&*zg3jMapKhMvXA49)!`RuFRH@W|a8H;$a8O<5L-Lo#WbDIB
+z*zQaae0L1oA(<f=twZVMF5Ds9;kY5W4Wjd)OYkr(P2pKU1Yj5(0qB|^mKajm!QIf_
+zh}#i5XSyRr2uZ1i;V|F;^$Xr8a6q1|V?8PsusmvJ+I?Wa)JT1`!|BZ%_;x9aP9urK
+zG4t@aHQ_okgBZZec*v1E6k{Wn{f55o+X*|M>w_m(3tisxHO)2EY9<eM`<zM4HT7!d
+z`P6`LrE|SYes7T=;_PQIwx)3HF4PeH#*6c|o#_qfbJ#GD3CwJbDG~LEFHiW8PWJ|=
+z-bo~n(W%710@QmT3n7zLe)t;lErfREB?H?!^Ew-l;Ow~qd)$!zP}&B@xz8oRCGjWf
+zxum!*(oa%Ssg=(_k;OxAy+x&nWN`|f7hrRw&F(DjwAdh;WSy(HWkGpwt)A&&3%qd|
+zKHOoGg_hd9-16JexfHG=t;Fgm0bQs0C@L%{Tj7smLG;GiYFMbk4W97mI8-U$h8Zd+
+z0o`sk3U{0c0?%i%1O&*c4Y5xOL9_^-OSdOpdm;qClxi@K=zcQaC!S{d72-2&pibx8
+zhiLR3=NQMvGXw=f<>{Ny*a`Dwlw`<_Rr17?qLzJOoK_P)*cG~SyrFgevd&L*2~N7=
+zD2%U%P4CUx@}-@Iwt&Wy!70t{Q#fHNv#`!M$MP^<(94$agw$_C{X302WS7#H!NMxH
+z$)iL1f0Qb)KxyDqjv?sKdK$+t+rlxTTU7k(RhQnAo|s{80D~@PUSD)=DMAX+@(6*Q
+zZ#%?89XrIsKvrvZYi4)~YM3#tCe^OC>;wnO4rPXicf4ox7P?Kp-@x6e8Lk`t&N}4n
+z{l-iwiG^oaXvehfE1gDXOql4iFhX}+NW^Urj%*^Tow%|)R0cDQ>P7}*yf3!(Xt~*a
+z5fZ7<)v_UJ78ky4ABr(I)QXYEe5J6!c_n?2fuK1_4WhCjEWq@5R?!rcuA<1P4Kv#q
+zwIK<Kku~3A6y&^m(fncW<vCaFqYa(EgTMmE?duTh6DCQ_+fuZ_iohS76P)`EmP=#7
+z7u77*uVkJxFbTxSQ9nB#8tgvZ0BneCph}4S?HCU@OrD03I}D59=;9dewV8ba5$`N-
+z5T5_9@(32PS~hZb1cr-k-d?6W*=%^|lbO^EGkX%;J-P1bo=9n!gD)j>lpzaPKZo_|
+z@V76R7Iem$8I>SG#AxxB#LDhK+2;?~m0@)A7~_~8ijObk3zmHrvPK5%5L5O%d{6|Q
+zv5`@*I$$6@|39l!sb!zDc&>sgS;NtviGPmft4-V7|FxEmRtDc}pN3V0%^vxU9-sal
+zdUc$+_Gz{zSz>S=zSik{dfMb%ZEiQa-ryYCfqJ1MlB%@yeK#~!9~X(5(;DWvfVJ-C
+zp2HI3nVcGtfax3my5caz&y0@TO5`q&F!E(5H$WXiZe$<OE3y7ZeO58d2vlFK?$nxY
+z?=pY%V{9G?+=ZGVp?$?hr<1~qngOui2kJuB`5M|)DK&X{?oPlD)S)gc9jxAm)$6D4
+z3)&LoB~l6uTI@y-0lB&mbLvoEmaSZ#N^r=$GTJ#+Kg5}3Fd;a@Ao99b%QVD`rLnSp
+za7Z9*ZBkY}B$#DuTBJrL1fZP|vV}#F({oJkvSU7e$#YOlQO@uE7@QDNZG9MXi4I|D
+zdW}dLpL#DPAc4a@y!_Oh{8f(WPCIR4m?v3~s`D9r0gOMt=8@r0U_tWBP|NQZmvW!e
+zO`>F3cGbq)=!Fa1csrMt$PoTtLGw4=Eb9qmh=R=^Hf#FJ*^D8$eme*2fqs5W2*)Dv
+z*lp+}r+x@TM7}$$Po!P$VRlF&K5=Tp3)JY|bAEN^*pey`|MLBx%CV*YO2QtiuRcBQ
+zweD2#2=lM{w1VY#0QH)ku~K(6wM9kc<+Y2;OX2$3cAN|E(9;JVFU12xnO`}%5H-HD
+z9_j&|;$&7?h?zeupmC0?--(`F?6_xJ#PlWIv+e0zNXV5Thcp$`H$Ru?*8lwd&<JxH
+z3l))j%N+z=0q~u&4<aR8%5OeX5Bs(-a+ztbRM`uknzUTBD~5`@P=|aN)jUe44>ay8
+zR=q7R8@Uc*vs_GaRFi!h+m{6mZt=5-P&QtvQagE4>fiHwzm9&_T0jWd;T}R?DPZK+
+z<4I@6r~~}QYO=|D7O8vVVlryI?SEQY0tJ=Ui`PVMYlpavO2+cXT6FJI9s$0`o~8)1
+z#KQPL&FB}{jeW|wOi<~32Mp^Lv(Omd6$9DlojKUU=~*A~mUa-a)iGD`3%)_VqOtNS
+za6|o(EAF67R_pe7>ibXz@F+zXKRHlrM|tSu5r0b13vV`<z*rMo^)dT)v+xokHuCak
+z>SZXTxhN}4bTl6H@e%bs!{cfd)G)`wDxd2MmdV%f4~s#pKoJKzU~X2~=iXwyRPl`e
+zAsM&lheQCekj?5UrmWF`Icmt<6m<E8f=S9+%{#|dWL0`muJN07W!4Z<sZPz#V}iY|
+z9#DwF&!qdNgnQovhtgMhB_>qlRU;Y|m0xnn)7Z@#SxF7esyNh5;F+_=AEKa7QFZ^V
+zTh80LRbLbTSiXN5402q{yzH(5RV}z$8se)M<o;^lmZdUpEBKvl(pEKPD0Ed2WIv~p
+zvCU)k-RcQ@`^p$LDu)^=({IALYW*fXiD$?E%O*Ez`$q30@V5hFPLI5B#`Y%W?Zsic
+zKGjvQqc@?&_=B1C#QMr#=dA^oP1EMo?L}c^&+G{SMiK-;r;#}sK>0_ZUs9fu=5%FP
+zerKuRN#XO8XS|Rj0QnXOeNjD%v)*#h_yE@+4iR-yzVab{6#e71R}3JheF%o1SuR5n
+z|6-@B1{r?`ogV#m%<2%c+ethuCD(Wg7Fk*Wy3$Krq2pY{s~^B&(0O@a-R1b8^HPo6
+zU1H-^0AWb*_~V1S|H*Ht|9_R>=EsPX<yH^0FY0RAeKB}Y#f8J-x)>iCwtuOu2i!lT
+zT3<O|2a5f1yO-N`m;3v8XVV6&Ma4aUo)QIv>Y9-Q7cKr0!(@~T$>F4SErAuEgIW|D
+z%GKKNxQ%Ca)znJanepF<y;*+4*|2gNi><07ddVMY#?#?(tSiRtR^IRbpKJMSCO3EE
+z-&Lw=cFd<`nBolt7T_Qbz)(V6w}9oL`;Q*JIq)12$MHNVM~7;u<4lSwbIbF)d4aa0
+z8VGl}jGb#J<T<N);_5@GId0x#T$q~F`eMVUwG0!YRYbjR#31hD?Oi<x47+#tfCJHY
+zNH4I}-3nkm>~S!wpTn{vXxOrth_}EOx(I#<)pUZC!GiB<B|4GyNsq`Yl_nxYXpO$a
+zeTZLo4QhbjKNRs-|M5Ddc{df*=1)g0hN7}Yowc%Mz^~<8us2$qwoOn~VIQ@v0cRz|
+zG-v?0^B1&^12QGm4|%9)vTTDN;sQ}qR2_*B6mo=vk*~A(xI1H=6JM^=YxpJbgQcK5
+zYD!+gx~;X)zWe(a)dVPD;PG+@OQQnSh?X`+-|WC(uEEZ$sr0$At0ISk5}{5jG9IUr
+zLF4U5B*K!`%>gv#xE*8fT$GYqg?ofL#64kC-^9Yc=y8D7BhFvsKiG}y@4$S^&+S&~
+zEy@nkH~He%+mwdtU&MlygLk~xMt8%vS~yz#I=1$8AXJDlmPb`fM)*XN%w<}b#%kF$
+z?N5l>l6eiX=N!uQP4d#Pvl^m*5%Tk@vhdZ7fOo}t)XF!{oqek?h7HgW+D~)c8~hza
+z2qfNJnlC-(*;wOTg2JkLLdYw7QWSD`=ga$5f3gCZd+L233nEc_!TngTA6`u{&Ycrt
+z$kHY=e5jdI{<+U27mvJem7TAoKc)bE%64SqnX8b3o>#3@_+Nuv=INq|ozY$%L9h=8
+z{?hj#Swj_sZtH_M`bRj2%C@8MCDg3!j%d0i0H*OEY-vq8mD{K@bgrFFngaZ;2P8y%
+zi+Eg=Mq{tY4Z$W)EqmmOUpk>L#%$ri{lM3I43poIt~r9(qtEFqJD;8Xc<B@zycVI~
+z19dAET&kGg)(@I)Qo68;g+yI0i<exeNptN4ItRAQ%e}Z?{4otlLSuBz|L&Dl7cd16
+z?1Rsj<B%Wxg81<ec>1&F{OW<zIBe&FWA!<9v{N^axbwf=@1P_Q`7iPx)Ai@egLn?H
+zHrb9d2#3yt$IZH|e@&ZQ61r4<z<r$wBX)oH;zh5los;+Vqe76vfRchmn)pgqtjQ&I
+z14J7Y#QvG3eW<vHxKQ3jg@$o^q0<f>NJ;K>y)S<z^6bDrf4si^<?+-#LT=+w6=_Q!
+zmL0hjD+*a07cm_SL5dxL54!e6=s=B!=oJ;h8bcJ*{Y@~<W}rj4;7x>`%k1|dL8x9_
+zTBq+rj%PrX_LWM3o0yOMk#Ce^IME%a2F&-oB4p>=YL@#tR#O=LjlwJb=wqdaD(QRj
+z>i*;DyZxN&+Z!jO1ra)%=%GFbebng-SgFYWBmWW<PW1lm>bA0hiM2V+2i~t=owePq
+z-*px?{4h=z_+3e*W@2Sd@xj!Z`)K62)PB@ksD|Ch>L2E8DS<MJk)cV;uV4H|-T=SJ
+z_L1M0EH|7cmIhj8W={X<TDIW*7dv7g^dg;)5TDw_*o^0`^M2e{<wmh97i~(4Qt@?e
+zXJ_|Ujk{9~Nt`T!Y8kUP|EbxF5xnKD*d485^FegFScaO}i#hZ0<Xc+_z<0lXomtjU
+zyLysGhgj77DtX$M{^(qJ+<fcDl;@JGX?G|%aaVJ@>ERagkhebO`HzpK^+jk!4Ud2l
+z@({(|g!S#~o}moC@^dw||1#M8)a-qpduk8}kBcIH^H%J2+8K~CRaA4a@bBh&h{}w-
+z?_=}M$}stl-$t@;Q&9lHnWg%lTF|TTLDQLhhUz-+27`Ljxwx&XnP;AW1{_PviPhn$
+z)K+hCQ_KIJLj8Cu_Gja15WgMyA~@s5t&NO6KqQT<M4L1-xUg0}cK0~{`18xb-7-|`
+zuu5%qw<*h*x3cp_r2JX2ywzB--(1iyzcm(l1lxPDXlJ3$E9_CD`S_rwdE+^|<~L^)
+z=XB;`NbEdc<*s87f%4Y>Kpz7v8|<+N%V}oE)xLIeS9nb02|Pub-BW12|8Byrm7@|~
+zU@fU6!OQw8D05~mBcS+4XRL#zGn?|)uSN=V^Z^_8?ud}*0=9hbeR;t(e5v#~9OdMP
+z%wqdf4J_8-{8{O$hPPxRt<I~ZKUioec35rC>l}rtDgFyJx98I;FL|#l1H@?K%H<(5
+z(P_J!8ZM{O^!<#^#{Zy!06##hfMt)+J4P3cS^I-~q6a=ysFMJH9cqP}zoxE^7=S3q
+z1n~TsBNUwZo;I&tRT`9;N_~aoG83$Uq)J_dyuBT!C891`CBZ6+MjR?*j1&{}bAkCO
+ziZEN>o$Iu|JBpo-5f)43r>HgXEm|@2E&8lmNFe#*P`Nf&lj?<8I6uWNF5jXq{ZfMG
+zE;N>SN=mIH#txG)Q<Ay-l)F;CMG3E_)vQMkF6D771yS6srqjy4`!<P1D7DII-=a7C
+zMKUBV%$A()y1vX7)rAE1)j9m>bH=Uj@a8A_S?VMB(}#3@iz?L*l!sQ71K7{Cv-abC
+zizb?;V^W(F`6-uAeT&Y|3ISs0x>RrX^jhCZ2292%qgX6CYugU3aHV3N#?ax*eA1ys
+z_01*WtkiV-P}$(Dgg_0!WXU-ccc8o|w^BWB37Uxc7?QxBVVVF}JnNl|`FL6?L$j?<
+zrTiECWaF}}CLhs<VXywTB0-Dl?UZM$+G}8|?D~&yT#l15f(j95i%-w*&N-&!u$~%4
+z%f#@nlNAAo2Eb?bPXZG6r}=m%n#&)3CFNT?L^Ul(ysZys@1lKuPx&bU>*0JlzhL3>
+zGPz4VYT)ck5b=EvgBTw6T?K$lN<frDJ+!V@4-qGWeoh1|=!N;*$q_x)f~FsOi5`{W
+zfZ*Q8pS_U5P2l9_`r$du^R7t>ZBGBdNA$=Z2Tbf;KRK6>LTl4K1jj)}HU)g{_9fBv
+zbPrBMj}&phAH53Qn~b~X!~u5%bPuv|>-*;bx(7QAy1RfoVrevr?m>e7;puJPh#vLg
+zfN{N$f1B$^=N?{nPhGmuJvhWchBvLZ&gW&&{}BOmdKCsY!Mo@BK6ho3Xma`oe4<Cr
+zIAC+H^~U+W6k0xRefyjdH537ido1jQKsSNYn@=^6gYzd(e}E)<neL&A=#erGnAQs!
+z*!1wf%cXl@J0}MHUHl=JdVMDWJGN8bVjvGuN%(vJ<KL~h+g}dprCWbLddcAS<1Sau
+zJXS``$Kg%sC5QbSx4+A+9DA2FXCxnkF9|H|UIv)VKTy>kT=MpVd~G{iReavkP&NRL
+z7YTR1C=iF)*M*()*fx&%p7RPUYa^f<@|QyEc1Js9>ey+tmExX|c=J12Gf+h7USe>c
+z#9<&P>9NFG5Z@nc87ImMTQp-)Uf8-KDF}T}|6hFX`&7#pa8Hx@!Y|?7f~;D$;+T~G
+zxf>CC$<yz9^_?n1jxJ;(*KN@Y5T?uL_jjaJ5t<>~o;eZThG@6C73K{;mT7cXM|>Za
+zbZELBOcm*=(W-FnyPp+d$LJaI2AVAVjq#!5uK!#ndR<d{bB-_4OT}GV?G69cJC0+A
+z4uN8;x&IPcWhuTh6~2D0(v)5Bt@BxE)h%a9jHG(FjJ{`Hq?Wr+DB){@J{szQ*Pnpl
+zf|;ZD1sgN~(q%<}QXhWIqY?sRFF%8Bh!3!nQ+j1lbVYY`G~yr`9)^?bFSlhj&zTSV
+zm=7x)H`y?0ka&4f-YO&H&wTAggzT0pTLpn<7$<T}wtO2;mCR;Zz(Ls(8L)|xNe_DG
+zKxu1ibNe<pmIe!n4%7ItP*y*oOROB_H9jWICv1n|K&mamt10a5h^&(=(*b?DrX`Z$
+zTiS=%Xl4i7lRov{;Kt&~uYF)q^KGk11qA6Opzm7pc=7#;1FF(5xLS3ER@seO-X$nD
+zO9Oi@7$1Zys`wp{Z5P+>Uct53l)22gZbs@{uVHHu1MF}+_8n`9{&s~Q^lVgp4?<%b
+zU(KVN4}Ym)wWp0K;9B$SYFbfY<#P>nkcF}8+!aSj+BlbtNBAGFgRhewEs-hBw4y9u
+zF|0YsfccVt=9X9zBpWzbs>BE7c?1PAzl8m<A`blLHio;>ygM7!cw0O;E2&}xC35;u
+zg-KTv@-;Bck91EHt?;SS^m2k;Kj7=o3-i{(2*RnX#zBTEq~uUI__X*zDUZD8L*lwH
+zN>}SDB~X4T5aefG3COvp*{Z<#E!F?<Ul;J;!!-<K!VwGWls52l%C)?4%{~3?s+HY8
+zO71}7{u=U5yXU4pGa3qM@3rHHk&tc_i;=+*=B^&+b<qN{Vw=R4DbK=E5vKucOdrnz
+zLQB~UHmno9^2d29Q>y_*AVZ98Vl7yIci;RXt^t_W1`;kZ?=dlM?rA{jOCo?LzKp1K
+zkjeGI+~!y^Kd~-WsP-{~a}Rr%DtM;oW|w`;GdyiL5+67eXW}RRa7F0VptVKlJW}W_
+zl~h$%z}u%ZL$}i;K6-6iIgJ4#rxY0A9M$Q)4(<9B|1R}LRY+fB_fI~+UQR|3w|eSy
+zOgT_y%FwMa$zmeImLkeJcN4?YXIV(y+NY~uxTctJDz&6)vkhaK(VQ&qEU49oX{vDG
+zlL+z5uM;azW<AFym!+i_OW&X9X<ZU`>czLe+6~`-t}xqw$qH*uJ2=;uwkAYyClenJ
+zhFt<kP5FYz_TYtPts&2L<CqkJz8~{V=$xEI+saLBUKQ8;ns&?RlMPN%s5uVBxS>Z{
+znatawn|~(As!Z;EE7T@Nn~R200twvyrfSqQT`893so;E`m?ffV_~1H`??vgv86IS!
+z^Zl7M89^F#|ES&TN7u~Jz7H7Ei=1OYLOoqxc{-Aj-Ky$^T(=C!RNT%D%K4~(FRs?U
+z_4&jPlLQE144}t&(dTb+489pn=9@s1*C8}Pmj;mIvDiMSZz%h6gZKiX`_<oLp2RP*
+zE;0Gkrj**<8D{OgbLRWD0FMB_{4B@nCj2adbFJWju3LT^09NzI`}*N+tSYj7rHzn%
+zp-MK+ESe_golUyHR|p_BWOqnE=TjT2!qvZfql@qBpF1VgKuU|$FW?RU?H>h_xDQ{h
+z${iapvP{?ai(zB~n%*Ccb1ktShYtS3uQ4q+P(#;+C5q_(>6Z`pze<6sn0AqKP=8E@
+zjpD`qVb3lpqaJ4T=EHk((4_(~|AH9|(PVC~sk1qDa#?;)h5X#AmtP&Y?2P==*HS<o
+zp~?U0hvYE=YD7O7AJM+*_lNFyXbSz^kM|S3!HjJY5l`yz6S=Qt#7duA_$ceMGGM-(
+zl-PVXs`!^niR385tAm%)_ycl9ntIq?G1fb1YqtGBA=D?=6OuXi;ij@=Mnu4JI>*av
+zf}<-YiSrzcJh2=THXO3DNt-Q;z25A9w_tl8H{pA}{CS3Hx2S=*&jrZVvvtW0AAowU
+z+_LN_<)pC;`AuS-B*O~@-E<EFs-PE$p~1S9$~U`Ze@OIgEw$?eV)5+4R$nu61uqNu
+z`*jGu@Tz1ycDbGRGgq0Uyl^<{d^;ZXY>5rMV^*v)`xA_oDExe4usSC{aWU*B`$gQf
+zdiZrzXZeFI9Wb^X%o4&WpbG)Wy8VS`Zy8i-OkGHBP~N#{v{%yJd(HtBj)3?#9{J(H
+zv92e9lKR7%#0Ti(6iW5)gBBbJn!}Hu(nGDvkTa0dX<Db+&<ILEF~N1j&0`j)$`T6^
+zKeH^IewQev-3v43tm`;2!DW|!`kzb_g{Z<pYmGmdL6wLjEb385*^I}(M|r=Hn(S+%
+zEjZ@kwFhOS*_cR|x0+_d31=wmP{GPV_b9K;hhjx=&sU;A5h}Ft&<&^5cORMd6^4H;
+zAz``qf6O<N?n9BBQ<5f{RKW=k+M}!oX_L`@Uz^Rp)^*^48f8`)kk{r3xEJ*Ha!UU^
+zFl%?Nh9KV&%!b~2gsKV!7^g%UD8ohhPvOhg&A}`wd5p!NJniCV0i1GcEg;Q@M4<`c
+ze?jl(f-I}j`cv|XE~UqGy+c{6-D3cMARhq!%}Xbx8q+Q&zrjD6`{jw<8bG*Uy5BZm
+zT4z?GLo#Lk(@!;0`)M9$%Ksin^CWv<Ox26kj5W-B7a|F2alciQLP}A=k31jkzU~FE
+zT2vkj89@JWt)y`vXY-g`-FF6;Iw2FK*I)xYg)i-WK%Beb#c&SthtvMH?d8hV3vhOu
+z!7Wnq;v^~BuKJzifFE(Y5WoF}q9F@;`>VQxpaQSt-hQOyARKSN7~5oE;mm!AUFBLf
+zO#hhHpieEXVKLLy#RJXchubxobf>Wq=4~{MzZ8raB(A$f_rVUN8WN=^gKPJc2V$tA
+z{bNSQn>ggndqD9Mu1~4uH(d-lc+!DbH6(U`&r3xz>`U|P=Qe_~^t|hKAo;QJ?WEzp
+z+~6609|UCG$*QnhunjJmm)Zl|{hE>?wv%&JN5+9Y*Q#rYndP4du-L}{$z?AtUU`EQ
+z4`Cb3i_;|TDrkcDaSJwv4=kr2!<uXS2GmHXzBHFf?o@=N-*0mq%9H<8pK09EDK+%@
+zx4Jt~l}ic@MX@*M7RGt%0|{2D?z|vC{4lGM#2%05bIwOGT%jKG?2T~XPFUs1(4*kx
+zNl#6Vi}ci97ZBT}O(LY`pO|I*V(R|;0%_}b3Bu^m2Ze<^pT&&;{-FYOm+0WpFp-Jm
+zb3(J_?i-qR{y1-)pV{=VZQ!bSp~&kZ8M5qRk56XmTVq$O7r5YVX%|7DJDol1kv`DZ
+zT&VKZS+>VYUDAVNnzcsi6_f&3cA$>PBe3{it0{-=+u1KtaOF%VPfNW$tD{N@fv}x|
+zvMb$s=1rPG!E+BW>R&RWH+OZsC4R_o0HYssLKM~IF;tMq-Vp<Kr^~51Dy7Z2uNd1G
+zI54WH&stk;?PYYuxltrGA+ychxSsrGg$iTOsehD=VMx8o)Wuk}`mIjacOIrR??n1T
+z2)B}z3v=}aA@lyQ$)7nryvW!hg;v%4yr>vsk2aDZ_MUzVO`HwAzF?tOXGVScUzkoz
+zZXAX~vHO@i@$a)E#pGzEN&J45&zbo%p2vnc*!8%{=U&?;Fm2~Cl9Ybw+?!IR+=^}#
+z-s?ebtLK!5FVcS2%H#4oZ%kds3dpv0ajPj@{)AFBjFk1HUvi%HA-<-od7|ue-|_fQ
+z&|t54ZI-|XLAevNRu8^dpWc067r7G9Yw8J0K-tc-cHnPMR1QY1TjO45$Db!e6WeW(
+z@>$H6j#JNgcTN&9$R&l~xu||>JdJ2CP?NK~QX)RsXF1b~CqBUoERu0F)X3x_bNu)3
+zOOCN*igwF!j&5O=6kU{(g?ZiB<?DINx&Jip1twnG$;Bd4<QV+C^5t6i{|+OGlB*e4
+zW;Vqn-kMR$-n|^BKk8%X+G!LYL8Ndw3}`_ome+>r&+4!Kp%im#REU{~HNGoIGwZJe
+zVc4|Bw`vfb`*<&^q~rQBhMw4cHrv|og46wTaljgc+%+F7Iyj#y%e?|~O0AdqQC;p7
+zbJ`sW_ZsY7fToZ0HEIGR4!uA7Jd#%BrkFH>OK;VGrrQv*j6w90NcX`6+ixP1eVFRO
+zMT6Rh@-r#9AJY@F*P|ZZaj@$9=GqHQjatj=4Wma(^aeuQE1kSySasyKm!G9&eEX;K
+zZ^C(A$c^#M`Mt-@z1RAHdlk+|P!$za7!?%BMNe3#$;9g?2%713=<m)NFDA@p_7i+Q
+z3Z?(^4i`nR^tAueNxzzpo&xF5bR$Dj*C08!U#7koB3fX+y@MP_HaM4sH7NK^A@EDr
+zbzg2amirKO!Jx$QBiAlCXV{HMJ{>I3JQ#&o`v}7XWmCGoJ#li=I!S7HV-=m(!ZVX<
+zBV+c&tn|ToZB6)H$*mxmCGjM-`r${*;u`saE3lhn6_Az6@NSMne7R`*Ekw4Zy295o
+znV#VyCwG_5R7Wm2Z|Qg_{c?rpJuY|m%9ULGqIji*{gMPplA;v_^Ff4)c$B~zT}>%E
+zLAFC^-B>pIg3mok=}c>{*t&POvv{sZ(Qf}U{YY`p#1$hC{Six*imno5=YhfZ*S5x#
+z^gtljH}$R28%YJF<_V3dE{bbrf>40r=ulb&>us)|Tn{>Y`ZI)Q(tIo)ASlrdTql_u
+zIO||LBIe46z1ku{_PA(Fp;QH;3h*2OkD_j}gi@Yx(vh{}6N+&y{crltP&^;7T@VX~
+zyrR^Du3Q;@n+8lbzX+aArM)Uf2BGmoD;=2~pKyJ4r0ZE>J*VFA3olALjg9<*`^<!P
+zN?m&6lJ${QLodC|A++)!{4N_;!FFqn3&n_OwK^n2*37CKMtk9rWEebu|10hsUsvCQ
+z9AbO0Y+G)3!U0;1Z44kjXx_4m5l}d~qrD;5g-v&%E(<}c(PA0C<KlS@R@N(+)Sv2C
+zN41KJC{ZXZio~Q|)3X<tCI;2r+NrSOv;2va3vJaFYtk4!jDU{~QlvLcZ~k_}G(tVe
+zWyUi5{0S6>U^5kr%D}%^xH+c!<+-l);>#8uF)gxt$}8es{z)Yjo?ALyZU0ty=S`}c
+za#(nw4AHMLk<wQulFE5pG;hG>SLI6{j;IxKu@d*`j{++4M^*`s`gd^$a_c5ZziLgR
+z&p&U}jC2EjM#3qi2U2|1^9D!<8_I`dUL9W=RgN<E=_;*Y_r(}w?yEPkxaX?KCpsh2
+zQA2Ui_rl!s-Xpo?H+iu3Y*Q$_2NpHz18Dh)6~{BNZgP_yJ`TQ)|EI8ld~=Nm<6alt
+zL7h5X(ziNan?FxpwOIL<b@}m4XKhn*10e%H{JB<Hzs8JNocSf%UZ^+E3G^I9!?ZiE
+z86rNdW;h1=Tc;|@#l(8ievaBuNK8v#Q%4uXgxGa!6Y{iz?8M`)E8$`tLqO{S$#;ro
+z`_*MKX0X!MwJ@-u#{g-mNo$o>_O?ixg?aaKU}vL2L9s2L&{qyN&RmBt$7xSg1yxW?
+z#+7qJ<`49cR~+|$)t6lb?vj^7>U&?g#s{_D%fhr!LFya$9hXgPwgsqv4fW{wrnM8n
+z$^p~Z#n-er79ESTjoycWl^|lhB>P;Rj~|iT6BiZ9j}G1tFA}(=@NVZyo$5jSmI5Tp
+z<*wpAzXW@=r~Nneh|a*4^#fejmHF$QjCL%3D1Rgug4ny4eL~TeX-s6Lc{3{S<KG2V
+zrN=D0juc<Q#opJiv>wpK)mYO%c*qm#1qHYmW5NWWg4;h$b2#xT8%8_l*!NF3$A&qQ
+z*SGSx<KHOEH8hU0;Z!MF4d^Ns!2Qtm@sCm9E8O;?3|V3qUbGV0VN-&(J>JLn&CbA@
+za)E7m(AU4*sAS67wRmQCO`>y~)xXs`PfG)i-5vXY=Zru!XUK<m6`5$fdyDu3L*+n!
+zGzzYOSia<Sur-Pww|?RE`c6E;?uwdO-O0iu3i7&{_-vy|SK`gL53FZ0wfuLR);na2
+z9w8;S{_h=GFY~Cp{y8>Xpp^!2b2t`0eXGyV>G(wqZ-X^mMZ%XoLKggN?zAni%ukHy
+z89Fr1F!C#rnxn^>ZP;Odzsa`5Dr~Xq@?CzxS`R0(Vuyc!8ZVZP!WqWT+IX4wie_*7
+zfm*!{jf&k3(5%?Q!Eh)4h)A$gTk>2|a~)N;h-e<yYct@pOT*_!qf?%H-TDifD5Wmk
+z76mDTk!LA8E5;)OeE!TqG#jTJ?n8Y3hI(zx2=cBojkex@C?P6|Ws?w9>Y!pb184*T
+zEH<H@N2Rhvho{o9FwUbvBZsHf82VKqrmpx0ZIJ*g(3SOQ0T0n3H6Zsqz^D(2+#d+p
+zTgi@)R#!7w3N21?RPQ&IS0H;}+H=C$7<sO9mDf!0+o$$5vU8i)Phb;zjypaD$B&1s
+zx%uzLAx~%}%aOlj+w^ZW<jNmnd>{9))Q>BDACWf`kVLs_Xw;qgqXcT+9PCKfM>8a}
+z0BCms#`>xKpgJ7JmdhcPxStU7foyEGTql$eT+}P`VRbEgJLd9Xg*`P)rV4uR1yK(S
+z*H#p7V{W+$G`Xer+{YX@g4A5ZD@|YLutUdVv2L9<V&p3cKy7_NCldGJ0n{57e`ndm
+z>rMh91Uzi8Jh9vFa>*!>&Ze8MFQz$EEOt_a&v8)x8=(~TE<udDEkwj~Z?+N~ku%I1
+zW<1RG?I}v_EtTqUqvMzaiidcaFTK+nAiLAPP0@{s)sgx}O4RtaWgRr25Q?>#qyomp
+z$_k<ZYEObN&iAo!*HxBs&WR&|_-M!ON3}buwmYMLFNfLB@7F^Dk3#Yjn#&!3?jO&~
+z8(oP#>Zk$8gG=|1J><hXlfeZw2+id$lKRB5F{shUi=yupy2^>Ge!(a5;!}2TZTR8f
+z*(Jk(dn!X4t-Rfdc<_|n{yi0Fl`r@NhrY};L}kjZ(SgF0M}!mC_%{6U&3V&tf++Fh
+zG46{;a_GCe^~{U`Alno>8hI@nG8E^;@Gym2c6rV_Hk^yGjskPH2E(VTPe?uYZK@D5
+z=-v$=Czjo_`MAdYEryMIuA_eeU8s^+3E_9$$6j3kq3Pi8n_}WAPx))5?{SY}=5&D<
+z)1nZDgZF5{EmQxCE>Q*4^i%is-1<=TnCJui&P?e1#+t@j;m&9h)=z|#d-1yL@IIDT
+z7ZSbCpyJxl!1%{PkPMP>86-KTHh<{U)SLfvl~&<y-wA$&)UwFeX)7(UJm_fp0Wriz
+z`KshS{op6oD~%%1w8on971W#V{wb@5J1FZUeTT3;&pz0jo^s2NdIB6Oc6ik5O53CK
+zkR2G;LeKwr5uaJk;4jK(J+gN^cA*Gk!XYGXL2PIHo@nr8w{^U9kTq;RHgG$M0cpp?
+zpPY3DE&B!3=kIw6m=!oUfYQeSejaNjg|&y87ErO_HxYPE7fR$|-3=cT9>Dn%kInA>
+z;SeEzSWiFOcHwMdnMgg4mKc)DcA7XX=kQc$;9B_zUba5OW(@8#<mu@<JlR2QoGPvP
+zkWQynx%)ACaU9_vwF&T!O5+^X?K>8_@?5QFHwdnGu-}#VflFpd3;)S(@Gy$bP>J5E
+zG4l&6c`$cTW9E+rQDM86$LW42T&;Yg-txKCyj`#^kafc~-aZV+?QQFI*}+u2J)T+?
+zi`Zi<W>%s0)XuMsk$n_Vi_x0XRq<-$fgzrq_8q#P=QL#J!j7oLU?4F>x2tNDF)64D
+zCnpZhD{1l*15)kT+&euIIOY;9fZNGsXK};z>16^re4okXjiYUzLvam=P9?aoaZoC_
+z)-EZQ2>3vEPq0I^5gDk7N!(5zxYQaaz5l524t}JsUx{M4cKNjNz;G;YI4`#XgoGYG
+z3DVP!hzieE!_I9d;JRJ26k`$P6KdbWEBx#KF&xZa#OJ<{UHi2imrtQUevy}URH?jb
+zd25^ahS)Ecw3k2u%Ce#?D{L|CH`9+I<T;(m`;jm#C03mE-LM=XO6qq->l~KVX&24>
+z_oayHJyj8uSg0=-PoT$xJ1mamktOWaT@GFrv;KppimTcJ?xRv)%!YN;x@w=fXW16q
+zv9ri0iTSor9{Ns&uDgaFB5@%TZ;gE+Yv^|WV+p+UtqygL+S@b?8t;VH7NBqguJRU8
+z!F*~KbfP^i(3^3lRhb?z%eol&XD=fwx?X>lp7IRi9bEqu%agbeQ*tC`Wk@dEq6+@F
+zK!Rdi<5PWLoT<5kAMFG8W~{m0B*JcxCLvQGr{3YFD%#yuwiXli)tuqBE<-%1b^BHq
+z_w{xjgXaYkl4OW_g)h#1uKBY%9RkK{=PB_hhwCKcjT10h#9Z=HZKc2wC*U|yuT!Vv
+zA`w0vyzPCr-DRRq>={Dr)JEqSqS2c&Z{2<I6Dx_ZME4LJyN&ncoG+jc`Ec*ohLuzY
+zpRUvItGGViE4D;EA|J{<SL2(v9-Nx1r#;<fJ!jjdJnwHhs<AwzH=Na$Xyaw>P7W{X
+z-}d@}t>W0*YvzbSEiBy#lNfJup>>@~0i_a<a`3CYe6HhM>c>cuD2IsK-^uE&WAWo!
+zHu<Asm5M!yViEg!7*i~J2R0ME|2QGo_DvK0t?x;DWZ^Y+y_L{l%cEzP{7rryvINJH
+zd!eicK{tN{ZbA7ktu~JGb5{mMeoef>FR-jS!f=%Ds~XmY3e*fNGCz^;(=){8rg8}Y
+zAB}P@+ti_eXO9hIy9$ZbxSb1B+iU4rv5udK&u3`lMw=gbWkYYINBvR-{YJxIm)(PX
+zPocEQvHN#`vL2Be>u|8SXjs_u!0{8?1QV=kHLNMS5GcSo!J4jcPt8X?*eVZEkh<J1
+zo0S1?*Z{3L%Irr{g+AT`oTQQfn(OM>qPmhVg!C9Y0=VhcKdy9Lqb&+Iv&G+ar)1^C
+zZWjj#W#MvX<3{?Y$<4rD_C2S+S^agqTyo6gGn1tndWtoDC6~|uVLI!#&JXLX0qFmO
+z|1%W;9~a$!BW+rqd@%7vJ$L+d3zu2~61kZ@-AR13qR#auM_5`$^&klo_7&Q-1<Cvf
+z=Mk?Nl0389BLNl>IBkM1e=LFOt!s=$Rv_7F_gee_fl#PjCj(=w&$=NxDkL1eP2T`{
+zdE=@gw>;hr8;v?ufK;5-qiQL2pTnAq;~r?@zZImM!OCFHRz;{b4xX3u^wB)lH+F*t
+zYi-WEmXV);LLyCA_Y8zB-UPd^Mgk4W=;nBL|Cm_5CAz|A+rPhAee?+~@R1L~<Y|NN
+z%bIO<wK102$EHDFx~n7mpFkdE;f*2+a_a>%ftTR&bKfx;)2;aC*1Of|gGZS3HE=66
+zc>PHQ@q>O{MO0x}4>djl6}XafKP(Q$MCstp|HIgMMK$$&@tz`}(nSQR(p3aRq&EQ(
+zLFv+)iZm&a8bV1xDT?&ooAfHZC-e?cs<edOArJ^5goMle{on4>eK=>GHM3_P&YH8&
+ztl8iF*)lVZGU<MW1A9*j6fcvy&U#??pLpvX=F~*Wvkl3bu`E@7@aJ69Qi#Kj1(+Nw
+zp*sNIpsYaJwFkCaT!t&vdtZ+AnW2{9NFu)#oL@unU|{mt#=BQcLjfMk3JH!bhN=hd
+zEB~Fb?$u0_DS^UstE9=@-%viXq?!HQK*zS&0bERv!d%6+!elIW<FRkDX9rsu>>;-@
+z5{Fcr`AXOuUah|ILV9@Hob7&5<^*4uw$jf<E1Bk$1l*UiS&Y+_K`*U#jtPZN947{I
+z`C_NU;gA&U=7eo_@jyHA$@Hvx2h~EHnh;p68*06i+w|ld@apQj=OfQS)L}1pNIBCZ
+ze6DPrPI;XU@(F{bTJKdNu`(u^dBPYeq;xR6nf~5XAQo`=-JN6jcebAWS2`woX!*E5
+zRyDkpnMm@f@L7TO&$5nj7m4^iX+F2EI(6_ukZgNDGX9+J+FQ1J$^b@9)}a$*YBcF;
+zTtc4{0>!xvyeV|cetOsEM_YwYb%cJL5@*9%w7}RtT1oQ*K3Z+7iGR>g?r-fKR-JMk
+zmVYe#v1+^UR*q@<Lp4j%&2RFHsj1(5>^+fR+Xbdr%QZTF{=TR4Qjy}}0GcUoJdj20
+z#q4u^DqmBjEw)dul#lMb$X35BDulnE6GF4j$Y1VvNiC3N)9$(#P>lEV<{56#;-Yej
+zQa)344A$I>Rf$NViQkF+aXWPNI^A$Rqena@1STtZO8f?|h_*AGju%U?nRzoOiGCYq
+z#Jol%M?FHz)1q}BmH>VqIL|efZVK!<WMQ_cL5*;8HhE6?Jwa5K6#2lRX&6jyQ>|^;
+z-ThFz#<g)oDzK~Q21;4y#*?z8*O@ZV=(XJ#0ri?z_D2=7`w#lB<SOJZDd8`(tvg-A
+zQseO2YM&A|%ilHtdkH!FP*ntZPA&@gdz=RB`SBphSvzGzrvzW#cCNUROIGO*m*_Rb
+zaq#VJB%l?Y@v&m`xJwWEL~OpG0L^jbdekD{MpH)grQ4nXPDE%^|I9^mEmb&A{$pQ(
+zm@-N}sh^+l9uY@`O;39x9FM+ErF*M|O~eUu@66jc7Gm=Qg8N^F8Qob^Y}H<c*mFN_
+zpi)miqevE#5#^u<c(r6*5Vw|q4_FM82U45+&^m}Fk7$h~TLmzMRp{kc_cT8RVqJ{P
+zQx#;|<EdkM-b04-RgrL=4T%3=>jYc4H(WmbidN6RDlhVsYeOXDK;rDWn2`Z?Rg*8#
+zJ?C%W%3L2d2pQ*bCH)Wv7w?i*TJB&z)Qp(B)Y0ni=)`+pjGJ*sHnE%^x_;N_KO@1@
+z>tBfu5U-2E?dx~gw2#%m<j%6{7n|&g<>;f{>LVW(EMrxre<Sq+2oKg%iHh}ek*8+S
+zQYPC{#oJQk(NcImk@NfKek)neq2GUnj_O*m5Km$XX7@``*Ed;(pLB>>D;tUlpUpDV
+zR3TAprDYP4RKDy4B<JdkHwn1L_`=GMB_5QI)DgDrry&H9o0z++PrWq&a+jW^bvqJ5
+zmz3`bByf;j=iDYh;`S(#?i^9<hpeGWtJltam|%T64tpiY9IFYqVTpujfQ2&Gt)5qr
+zkC_h8{7pSF1ge_X70!%5uBu)hTOZ-7StLqfNk&=UTe?AN-VAYac5<%db6l6V(el$n
+z-$4o6^SXV6sI$<t8F=Nv((dnQO{z=mJ{xG7+pKdvV^}sGj%*K4m|($Rn+xJJ)4A?r
+z&ydpyy2)|OcXD#&-FV>d4REoZr=6<FEH(5<3;*_TX$Xq^f$;==4RnCn;M;ba?%U;T
+zX+pQVTEEn_`~Otxf$cZ9q8>OYeaRvCCq5e2oV)~Fjf32a#{f3g1?_+(2YLz`fSTxi
+zwi~(!2L3hZ=qKkM%UOn7e+^4|wn|QfAhWHx#O%%Quh)cw>ec>E=IC?b{LSwzkX>0U
+zQd7|x)Nb%9`bYx{KM=CQl28JARc6EZie>E>4wT=zfBP271gT$ph5da6rVw5`oFG)s
+zVn>T*-*X;er>ryCbT@@EdwB>UC-NNMVvO48cYQSSm#F@TVnOsVdieIdys*?DoBQCO
+zVeGslScXM~W{a?5sL)Np^DHVDkJN*cmLP|b-6(IpPb^=B2qG3)@WlZ@DJW)CVI=z`
+zPhl&9Jx`CUbq9AD%~-!GRZ&5_sM>ol>}|L%efKj*N}P!X&)QGfq3Uk#j79tEht_GV
+z_o0vDc6_&jum-bd_euelIKrGEUuE4V&cF@DzUf$Y>>%D7jhoI@NJv0Yl>j<)Dx6EJ
+z_71A5G)xZ_K`dLX{3N4b{?NT3F5y4ZUwXC2v}2Nf9QB?|I=C^#N_AC2vEX&rVGMg4
+za;Ldp{1ssZo0H?Gwk`|OP{wqGn?S<bPF%gYzcdn~QJRD3nq!v?B+)u&H1Z`4LJ}F(
+z0+-|FnztYER82gV>0i6K#@p4a_7HZ2Dn_h;s1ByECeAY|=NT8psH39{s5+n+*2T+R
+zd?<edGfKdho*a%fVH6z|QD?lC+a+S$m?YWV1Z*Ve3MoDS7RCpvp?yxHkd6%8HVzga
+z3p@0}f8+=N%2D^uvqa!VI1&3t$aL}f{rRS83(9A-&xCe*$U0nA*l^bf1lO~dQRTot
+zbTD;`;A<6%H~ks@`<ki9M^?<y+m>!UU#|Dts3Htr$Uz1wbo$-3k*M?_<G`|d;OOQT
+z-L!Kyo=?iudb5mmV@hv&mVF{kPN+T;e-oS>e_npIgN4;XLar7{>T;Nqk^P(am5UtB
+zvy~>Lb|LBjwl6;xl>WZH<Wc*(FykKQ`|rV$nD%oe)*rKum%nXTaMSX)_#~A;lpjsu
+zTXwquA}r+GWw&fuL*R5zGN0jyTc%=p>ms&6{?66ic5%bvEk4E4N!(%ZL#Sw6$VfoO
+zpBQarM&4X__W4pailZ+jdIiV;%d+W>2(}RdTO2P$+wh>w_JA%jlzB&!h$$K0Q<=<T
+zDXhbk49B!DJw^86D5%Z(if79I<_2gBrw(olgDMB=VcMDkvdsfc4kaz_tTeR^Y?cO8
+zI1xlWge*Jk%Y5{<>;S^JUG?mZ@SMZQh~(a-*3ob)D_u~3FyPzxu&T%p*9-aQRcQ-(
+zHis{oJDU55@#DH#Av^K}^td0o<J;0nvpm#nYwR70rH_iYo#{HR)vVvFwtP5^j8%_Q
+zrntiQb`YbJogfq5u(2A3$Kbs25ou3*(t(4&$u~fzMMNpp0)#*iO`BHARh=m0Jojsl
+zuSFp8kGEb|4`4<q<Vq;0l+(72RvFsV%z2ns`U^SS)7tI6ETaU`J5YQtO3O=7@YGu(
+zh2t~jm$j*M+by_W$#ge7FPVS=f8)pU_7%{x%(_51RBZy+9D?4<za?kVngV^G200gG
+zgoWEfq&XAu!R}xdDI17d{FIl&u4F*Ncn>z&O@#}wgi!Gt00@D_&;iN5Y0oc2X4y@I
+z+H=Rafjc-;j-k-QKgfpKLYUCgLWupt__bTr+gFm>;UhQOnBN{{+?u7{Z7bBNUrWM1
+zOy6i`4cf8Hf;8#K`|0)3Pa;p7Df5)u@s;i~JV@S%-lhjvoN{!|`?)TJnU}%QZ<1^m
+z*#pYe2e@Zs&cnh`-h>0Mew9AtkV9?1i1M!(Vs_^U&>Z2o!mgDidd2BcDdoX?eDf2{
+zEJ)-QJu-Z`RbF(l3vhAn8eQE?``BofC>`8(?OW^I$B(ZGvRr7&iZ=v$G<%$6qfLw&
+z@>_)Q5X&aV4V&hVrxtZX^m-6(@K2$cxu|rpNV0&InesE%3Z6@-f^_>^C`BwJ7J0v_
+zjv$D%x;+rdfHZDZK~!@`^hI2Mw|ej#x`!Yl^&rxw{kGzlEU=Jp>K=7>&i$d4g}VgN
+zI}xxO$$dn!#g>}Q>j3i9QcdGJDP<m_aY*n9fEP}}iPgX<Zpz{PXirAiuysQjhs!{n
+zy?telWxVy?zTl4(_EodsK?WR@^=Oa&301|&f%0J6Km=7h5ha(~kA8F{0haDT<t%np
+zf9p^G$fUv&K)vfP7h^K<S9>T$Q(8_pI9sS`M*)`f<zWAP+hw$JnNyAz+%s~R{IeAs
+z4>I=$KfEBojHA);**`da3DLb{beXFtdmtdZ^PzQeuIQ@T{R!LT%sTC}M)Ik#*?;Ry
+z_h;%jPZQ`JCUjec-D(NO2?sqf^$y?de*Eg_4Solj!7%I&UQ-}v!nmhuBWB>Qi|IM^
+zkWVHcSEPr)Vmq$>z^xbNn=8^Dmtl@rQjADjcnri@c2JDX70SLfd%AbxX(N)kd@<7W
+zJ(}}%hcJWx1UJ~vpKDbnymW1o6kH7%D_=bM=A1JI<jJQMPm$F?Bp3ib4AsHulrNHE
+zF5L)pnIFc2Y2+k!?vT#zpua>PDN%w9d60}G(dZ4u3R(~4RDcgFG3`=`3;liyO7;7m
+z0g)0ho`^hg3qlaI1|A%i2Z!IEnIPh3B1nOzaU9UT(}D)U!{KplbX0lXGQAD6^tyHM
+z`H!QRuaJl-9)Pa(ZLEuPb>cDpb+(UTK<wq=wSe^1C%dmtakmWLXYB*ujz`@e+L@A8
+z6<>b*irB846a%_MAH+Qmm=Yl2ThC#Sg*cIYnV)MFfezI^D;Y=26#WdMI=d1x0H(&#
+zZ2L%Y$rve(%jY7k{-A5Ff+pT{n2TXpr!Z14W*6QA7Lg}rQx)V+W@f*YKvEU!cUA|S
+z-B{n7CJ4AK<vG9~WL~~%v7zxK{0Td3a%#WG3acwb+|^9qwiRmuv^*1UNx4vxT8QwW
+zVG-Vsi(_tlWX#{5o)ddzRXp3u9WU+3N@ViP@pYZ@xTqJUy7~hGmz@OUAdzOfnMtl!
+z41|V;=+9A8DArxji~FcELV)3ysHH}m<1bL7W+!D|X;64-HosMTcr1|PBjTSQu8MwS
+z>m=*(m5p4p@+66Z(g)Z0`hFCBoqqDE$@`A+lQ!SzsU}w7K#-bw|NR2I{sX%%Ok<h9
+zc8vF-Mw$x_{9w-v06<hjXZOQ@BVpD<!67EmU4DnUno7xIZJ)mH$st6Vu7j62qP)uw
+zEafWa2hR?xWe8_|YumRYC`EwJfwDK;@feICeT}*=vRI9Baz?y+h-IGnHZ!we1=vCR
+z*>sg-nZbhYRbJmc&LPDE4rN^2hm2Fs?f9P-2P?#T3n4BGDJPtmR`TkPN@H5Js8`M6
+zakLQdIi0^uH;{n~Qoh9R4y?A6w)*D5G&TLh_AnGCa$Wj%NXeW|ia+bszF#0D*|xu<
+zLt!||yo!%Y*5u?T>Novo(0Sb2(leAHaTQ|#LFmf8l=t__E)y-xY4c()=&SQ40NZZN
+zESe2{Y*wp$^h4!BXFlZ*{HRT}{d~L>w*7%;p1!!JZN+BgwX)APH(ng2((I4S%Szc>
+zQ=-2Jb6=DG8uAU;JTN5xLwnf}7z>T$5MK46;+5Uj=ube)FPmwmNZLJ`NEuQTTwc=%
+z(4bNX0s5CxnO!Q;KO?$Cu9$SBUM*v`w%xrN>MAo5e(|IF6oR>S?n$c+wDla)B2qSr
+z7M1vjuF~(x16!ZFgs2?j<SD%<6ba6;*(^&g7U(Acol7{4S`)8T^S3s+mz0~fNA}>l
+zG=I%ydz|Rp{<b~n)lP(zkiy3onZOv@avmNO!?&4#Tm#P?U6Z#Qmjg|yE%ukvQL`;L
+zDWQvhY;SyyU2h$^3DIb?Q38*vq6>;bU9`zBeMX-Z^ItxrX;p{dnS>k@P7tmgPw<-7
+zU8p8@b^dT?P5If{HV-C@8=~6eNRm#awQxq0`l$zkUL&hOh4J6RoeslEf4cYgz!gTk
+z$qFQ_g1qztpC4Z|2)*HWc*ABJ?#&huf;7A%#m6Cjn~xFu4Q<8bJucVxdB~TS-1|eM
+zE$f;pID^hqkR&`*fj)FZ-pw;N;bNXSho3`MfqmstQZ`y5-o%r5!Oo<%BBZ?P&wO<t
+zh{}v>x2*ar5f5y56^RI1`KZm;PTxk0c}r3yJ?OcmkG9U9r}i4@=w!=2xP#3tl-Znl
+zx1M2FCee<lg!{0rwA~S(sfK^XS&h*;0(sGIS2*YW+2#LnPw=5GK!3wiPFacDhLT$_
+zlI*PX69*^6>i)uurKUFqf#g>Kh9yvp=cygfr6)g4-5PR(J-%RQMxF`LDRDdODB|U9
+z2xM~Y_5Hvei{fEY0;9C^7jwF8d@=&gT>%GO6oO8|#<Mqq?gI)pg4PBlsL?ot4o0Ng
+zIcwLYn|Ewg`VLJ0JZ&|)*LEN&(;yeis3n<={vkBM+aHSb^|W>m^q{bgQ^@qvHgkLk
+zlG!zI5bK?MG6bj#PO)QELzJFUTJOi6FE3u#Z5jX0y-XCa<CjQYPqPf`&og=6dv3fi
+zht^KnIsOPn34hk#id=j}59f4?5DOOG`3lfcag+Wke5dX-?TgZ8&)|dEyVJ0RnDS%P
+zudOdxba=1kSK<D9N0sffWKh3CnK)nrIxwBYuG7q%vb~2WYNveqAsH%k=3XT8wAd(c
+za#Wh#S6YBO@G(inH(%&1+gk<Ff5p2fSIXCE%l+%pj9a%BsanfY08|;#9$OCI$+dtR
+zb6SBO!5V-4^D>1bRt0GI#E=V51x2p&<GYy%BIt#i<H~<N_P^{rR3~IwWFJ|HOZQXK
+z0{E|Z_ScO(JKuoG&lOYsv(E;b5r4l#5(c-F=!e(&a^Mh$uWOdK{dl81!GRBUwl3D+
+zb!c2ffZ1Im5|8f^-hRaAE@`yBL;UncSjnMGIQEW0{Wx`wEGd2;`Huw6#s6hLE+|CI
+zWN>y6#%lJ?JFL!)AxanK3~u*32`<$j=O^CQRzbL{phXy&H5u?jrDG)MSCn|p&3<mL
+zA14a22kI`rpu#6F76%V=+K~dtzZ;5Cgzk%;TTY@wENpj_{;X?QS+V@JioP&Z2wH3G
+zu0E2bdb&huc?ZHps$h<mzc;uF_a1C|xQv=Dg*}RIe;>Ur!i2H9o8p%MWY}_3qdSUf
+z9XvVjAp5W?t;(dI3<y6Ll=NaXr5<XdhE55hw7%%tXFF;x{wqDy7&~d=_sbjWLp=<{
+zrDg!}Gubcb5nS6V&!`j!p%26cI=5_+w?)!z3qnn)K6U#H`|ll?N1C~Bm0ljuu9tEr
+zZUU;k9}@4e6`WhR`=rB|fd#k>4Vb4YQL02@3<(ZZSY*ix61UGl%-D&8xS25e(p(dz
+z+n;l~uzD>fxwDQi+o&_7c#tPfwL&u_>v{2bh<!hD_VPkayV&M63_Gh`jB=Da*f+TR
+zicQbF%-@kYR~N?hMJ-*fIuEo_2C^I(ShH_zu{+eQPO6Id6zc7j55Q|D6PVF&n;+@F
+z>L7nc37?mu7BI~E;0V&KHbKS)m=5__hSx3d4b?cF@Ts+bFaxTHwuuw7dAL5@UqL!z
+zzqWf8C)a?emOgjXUJcG9lNxy-U5zg{?>=b-Pc3m{Huda(UHVXC?hS&S&u0YZ&BP`S
+zI6Qu6{G;6CzQ5>F7loI2_OX_8ua?+h&Q7pXy{_yzd{)IIG<+}iTS35f#48WcNmopY
+zKQsG*efNP4ZL?<y`6ncDgmaC(ry}OrU1aQWgH%7_uQ%J0x0Kf`PWoED*uEk+j^dIn
+zmc2&^avo&D(g6aEhp+h!4zkEPLDw5IBQ@sbJ7jW056mFGpS!6QZJRBx9<OJZKsx1~
+z-LdU&2yy6+Y_otJn>rTQ#ZaHhgbC<o3Sg8sT@})m9A0mzLrJlDuCigV7TmFbz}^yh
+zRL+-I8JvyHvyu|l@4rV$*ITD``pyG){OFz8tiRObMF@v}$eHJ(7j)n_%;FGsd5vHe
+z<84N^#=Pbq|1&7Vru8ntm04&4DWwf5P=uc7$gRt@yc=JNil?O6?&1)Gw8cyR)N|0v
+z)*ZrH^>r{&pxGa&E0=m0t?$uUvVU}sKi^E_a9SO|tNm$<U)mGaVj7j?m$5%hhhSO>
+zaCr%BXr)1hg1Rj^Q_!5g@<@hui?wpIHRtdBvu~o^eO0hoM_yi!Ofw8Uo$RUtsQ&EB
+z7-13T(nl~-rzQU-<lQTae3T-yLjf)a*Ocvzk|rk4bfjEG;T84@1Aal3GoI|URnNS6
+z6<n<wWKptHos#S-xP3&_eTPKIB^QOlI1THM7HmI9S--gUFJfxSsE9J}t^se-y-_j6
+z&#vr)$G2a^+<p~5*19Of27#RO2c9LxlOtw5IzO&kG3tAJi0#6>1HG?<<XjI2KFY!O
+zK3T!e3-F7-*{vrex1bs$Smhbe;g{3WAAw}L*;OCZAdyoF_!Xhzafwc;<=X=aeAVkq
+znNEIJ5x~ptAaALSrl)WRQi(lE?S^mJkqAOUZt#91EK7_0x}-s3Mo}>7Bep-l;?3sC
+z=YQ<6Z^@<Q93QMbe|~iG>ozxXg5d0alo>F_Qr<913Fg6H4E^=GD$1UMschTuePS5q
+zO^6k=yAGdrO4uBYNfj(Kw&JthQM=KwZOnnt{1P1&F4w^_A<wvJ-jNTJ6Kg&K+#U~I
+zFE!N|ksauslAMye-H~^_rHdwQcYYyjCpSsZVi6xTkz*ADwR0<QIm_Xe`${{WpCmDz
+zD<8)fZgn?BqZf5{l6ATE;;{)hH^hj!O?Dwl&~RYeRRwYjk@Q<dSLgoNLF`{8_n+jw
+zKNBZo!_jGsj&BEn6a$h+l}pW3I69sj=1z`KFgn~8jSrQ9nQZwkg5UmadlO@|RCBs`
+zi__3^fcS0&^C-$@i|usET@v843-Wvo8)5Mt?JCB!<9=k?)+H!Uf?TtJiMC24O_XT+
+zO9l|vRINM)qun}cZDqf$>3MT4rK`3)HfE1uz@O=W?R|SrZ38%W0RI(!AC>3#q+`jp
+zCEx#v1jdx>>PGXC@DjQ$;5vU$YWEW-a>73mv{k041?HB&L!{-SJyx6_3B~h*Esho<
+zkUi%OYqPQjNoHPEtqD&pQiR5dWq6nh_DYxT@=yT$_l)~F)OreJ;e}8UTG3i%J@=!-
+z`8Zli;;9zWI*p?Gr{CkMApARt`lVv0{F5IK68x`RzF|{tQh&e$#)LZ99AY5(%l^7O
+zCRHo=wr>Mmf6%1xW?3Z#hk&yLQCYX1D5j02DQGtIo8ZE~qaPDdD6*&+pfDFCI&4jA
+ziR)Zl`tW-U5}bdID$hB}3Sl48rLwZiDKk`nRqwsvzdq3Hlfd6qUMht(EeXOrjV@2i
+z0u@ndpZ+;zt-5d4oXt-Ot9X9<x@q46q)8J>L56wgG9<=+88Gg>KtpfM^g>lL9dc<l
+zND74!!rpx}Ey~)Q=rN|%Lb_X4mDQ<y-mhB+rAu<Gn+#i5A_AutrigvlQdz{P{O<0k
+zJ>iyv)MfwoS|dF~%{vS$(H<m7D0@>PeRnGBJKap$06;)b%<dg{t6PGlTEVlWCp*lC
+z#Z!c2Tuu^_mjf_9(spj#sr`z!T!;R$nmdCU4iw&W4~+&G17_Bq$(uxtJO}z&?tg->
+zO*D!rigL)Kn~(I>-%QmkSVklh$=&7sgI4bJ9(?Ki5*PNNI_yIed019)@JbsU>-e`E
+zq`C@Ro5<qZ=n2_uQaylID3>8P%x-f*<d+jJWOrRDv+k<eoBuq;`vpm|xHE&COz}>p
+zJ)qk&0@=?iu%t6&16jKPfyMK<1BXAP*cyIV(|3My(_&cEnRW+?-_8~~DO_Ov2sMAi
+zrLXaf&?tbVy|;aW!N&N|?s6Jq`N=Q2UZDt!loyZG{5v>m>2R|)dhlM-9TY$E^)5gY
+zBVE}Q>6J6g5%>{e5U3d_JfxJ>AV%m|ujUM73svg-1Gh{u_b>jOeYUk0QEYZW+ovpd
+zE!-HGmb<{OT~s`MJr^d$7eo&Y)?{Z!a~YU|g^nFSR17<go~)aHIkHD0Hhh9H!g!Yx
+z6Q4XtOICP}bp7JlN=gj!<)!05-<C~w>IdueW%)c={M{$*zlJ6Js#^|?=;51A(mk-}
+zo3%v?o{0xf14XY~!nqG_bdPLgk%CxAK?YlB?jx@E(u$P{So40*%VpTDs(=J0x8(gd
+z2?U>}%EsIP@<}J^k-guc>WDt<o8r$Fj_s&xv61dBRv(w`q%ap)tbw?-N(hUSiv}JU
+z05a<q>3xyZdz(F`%F-(X{yG5*X;?M`pW}7e7teVQDD`#jpcNCO<x9d1$0IOqkt)@u
+zkFco116eC2ziQW8+1PPSj~ql47&93V2ORTUCz2i*Nd{G!Pjg6T6u3UhX_-H}I9@|!
+zLejJs0+W4P6EJ=lPF0vAXHYFUBF+yI*&11p_7r(e6Pge}HEzXWmL=TVPite%hF7|1
+zf0wh<+(+wvXz?J+@8v`cCIhH?tyWTiFLTg{{%naz5qjo(73M54>$6N}+xE;52|wAp
+zq(pg!9=`6yTxj~8qcpfcAwD<P7s-i{KErQ!xxR|k5BYq{w)#`o`l5&OfR2WunzeXE
+zViwp;0QMUAUx^NyQ=qMtk@%J;$6O<KrTL$kZ>enELvwjSIy9z)|4i-P8l}$Bvthub
+z0ejn5<ys({4aRZCYYGzB??yfVLh{kUEp;KhT|h`9m0Sla{U)J2vMt5m*L|~k0tCw0
+z2@K3pMPPen@MM)z@I5PWgnEHuzVcw8UQR0G6+ZZG$0F}BO@|CL%HeD+ZuUWRxA=#u
+z9R}lsedYd{18S*{6?`rAj1NE7thXuFOD}Uf!iyIcj_x1eDyGT*2`(_r)RLA;;a(}g
+z|KQxJ)e+G(Ck=r5K+$IS@1@OD-9_e;^PaOChXiw=_xW`sk9hP_TFa^*uq6MY-mU&t
+z2J$xjQTm4kdbTstdq{?(KO9hI*z=hYWKfNH+6v1GO*1(SH2l+-Ly@SKjV4El)$DDp
+z3d~2l-7&npQ+4qh$QG~hFu+xDM$0MYA^qjCiRGIIb-396x&}nv_W<V%FBG$M|H%v3
+z_PILfA|SFoz0v5Q!`&ORz=c<@=OXmaxGh{H{64e6`g{%Mlip#V*8x>7m`U7kYrNN1
+z+AZ%G-5U=420#^GSfYRJ6g`F@e3Ul(Jf}sJOIcVldeVtoWGf&Ks`9CAE;&6$sZ%cG
+zOYmWzo;DsF>1w*P*4eyCx7HL+)+)Qc7CF`SdK*|)wRq#eR#oH2UpHIR;e^ncz55ig
+z@N*G^Jj`BX+|<Eez`P_MVGt0f*8*2&sV{)4e+1`zS4g05df+#35>j1FZoT5Rb7`N_
+znv&UC&c{1!oW}j^f&0-%%dT!ba0xrwc?D+L!uxBZb-Z*`r@Q=Zj33j(NLBoGIZdQS
+z!@d{kh|Q$k6?sc3@`o};HwgK41|-%M**I4rq1N-7y{27b@tz4*OxEY#{Ob-#;@7P-
+z8B|eN3rui>34y^`Wu7o8uz~zWBvu-k4r`B~=;`BA|6l8p+<lXT_krQ75wHiDS3rbH
+zu~nF-ZoBi;%3wmP13z5Ed*RiK%EGxHh9@0@aLPmoj2tF?swaeW+nVP?Rth5NN}JL=
+zSL^jB>~&SHieCG-3W%qGbY0M=J_uyYv52Ed&84WoPJQKTtFDv7R=VAv^(-2J-_}q&
+zySwPsrfpIl8c)BkQf_+`Irr)N0ZCGF9;*t}N03UvY>7s}!$#34+Q!{GQO3V=PWlLk
+zis0p^h(BViz%*ox<SBJ(*ctng^y&0*AY(Ow@{%^tD}cM#8Ab~EraORV_^+wMI{@%s
+zlUidm{8jsZ_7le)|Le5oM5+JR^l9h($^Wd1qTw(9*R*|3^S`+?2K@hL?#7Aw-we%O
+z?bOHffKKH5ZC~>L9v*nLzxcny41I(;SnG`<y+gp!v+q6Kx;;vt2TDIT+09?p&KZ<&
+z85CQ-m6qFL)J=<!eAM4A+Ux&_>Kno`^V`jG(CQtbEAQ-57g0Rr{f}IWmnx54J_C70
+z!sJ$q9kJ`MxofDWTN0m=SNb&);J7gQTtp7cvdGrl=6$YByJa1+$APnzBRpNy0m>2o
+zIn8SmjFM;GA?>5vSJU@K8NIhwQ$%{t#X~=OXgj*QZd^wAd9HtYm60-=oRT5oyg7}u
+zHn4EBwyyi#T2TP4E%HkQ*?I4z?wc_uc?%MA23)-57EH$ELUx5&>wY)ZFJ_t;Iw$9E
+z4)5Z=l#e_%Q(I!4%rw%EHrFSnJJ;#gHWsvkk4?sQ)BWl$8_}Q54tGcF-)770q?;v(
+zc6iJu)wx}(193@pRV^-?Z%@$94yg&F%LVuAsxkwX>NO=sm%Syv&W^XcylrF!n1$|d
+z(KaMuFeOfhAH67#XN{(flZ{giKaZ&8q0M<jHM~7p#-$mnN-Ko|lBT^e4b*Q0LVk_v
+z8G$sdWbvN*XT1>@7k|`k2M}QVf$gS=7>A*uJjA7J#J2qLR&unuwzuu$U6yxNUyFK^
+zW=C6H`Xv*J7^4?t$6tUzuAGmh_I92BfYZzx8GOsc)fyx{%ZFKVT~B;S-ah@_ksgZ4
+z3&rHumX!s7HJJ?<$sQujO|5AQlBY8A(&c_=dA>Bd-(TNaZ%;~6B_{pmni}&)Yj4E)
+zM^$UYFi0p_xLWl3-RG^HY?9tenjSQbq8xU1jtl%$)=`UYotPii3)DVn`S<}-IW5^_
+zk`eFrD!aTc`k^f{@#-vMxXfd@rr-$$G=yb`y8O)_`Lnu$va+K38%L$d8|P(~ll`|y
+zKfa);T^wgCd%U-+`2-`-dHeS8<2TO3K@DE0YXHvP+goY;f(!;`+8`^bTP3aS_3c$v
+z1&y_zYg%&K3)nXPdK%w&GFDlU{LWJ2dG1FVckiLEXt}z(_qUQWsQ3QR<c`??N`W_@
+zeXhIlFvDA9L^QXlthRNLhBT7m1yDp2H^0l(H7RLdC;z&wqZUf`H<z5ZIo|YPb=7QC
+z%#+fx8x7N0@`CaU&-;>0EIkh*M{+AiTLZjSZk_hvjO#j|aOnf1Z_tz&f!_+Ab+~=_
+zzHVu~S<vFen7h+!DfGv_tk%#2V>;{PNiAM|<1SBddAV3=(zmq7^k28O-)F`FUM{K6
+z#nUIhtBXiy*euV-fcPI7L&&0%jHjnc(}oqEwG4Pk27VG))!O9ruZ%7&wIVSup-xIM
+z9xs2Al=y{lS-tp`=S|WP$%HEC+X<=7M1IFVnzXF80$ZAaINk~Gz^LJ+tnl@Ut^K6w
+zGDf311`cAP@DDxh;_U6~<3&w;gQOA5k93M8%=W%(E}e$8HhHV!!S|8sOu>~Zwc>Kd
+zP2VZ9Nx{^2lJD2&gH=*33{6B;8&Yu`5x8d>c5I(`-0anD`y+9bXx-$sS5<NSeV1B8
+zIe)co)5Su7lseut0;zb`D#__zVx`$_&0J<;;vyYqcWd~lwN!1j`e>I?5)t-4;v%2H
+z<x>L5zCDG#q;LIT9Z<7xuXv78?xqGjUi(+T_B7nmC7J_dLHh-WXqjmd`kR*U$}2ek
+zdDd6pbP`Jqq;&rKLVRs4?;K~|#H8yj@k_`tYP20ZC#0@&1I{YyJj~ED4e2q&+)jIZ
+zW%m%1GJXWX1Nzd6Q{;(r^|hWf?)}R8(Wrhpd2Mrw-6uf{hC2)s9=Zu<y4VjTJYktd
+zI#8nwVES{Yo&551r=KKS%aaAiv`Z_+!Jz=Y)Z#tvT?PDer%OurWvAVBe<&aER(pMZ
+zM;$TTod7R#l?hMTCnAFc$V|sCAvco4N#78i-luu(tUpSz0{2Y`!@$$^<<%`xGJ*Z0
+zX0uk1o_%(}<1`C%V<iAseM1^hX|89*bYbjjMd)5|v#CE{m}x%V(rsSu7GnY14gUGS
+z2lX8v^n~LlO8(mRTc1w<V6j0rWNZbjCFi4_;9^ke9e((S?5RvFqau&3OfBkjKm8Th
+z{2FTdf+z38*yELmTcuTUS-)y8;$8HcSXI|}Me>ccKKv@PC#vg_G~X+=yPIodY*N<X
+z=B9a{zZgf&GRVy2>F}YX%pjt4$I|jdFuJ5IWXI{t@8slnBJVC}4cqeAHCimbJ)Gz)
+zMDGpj?9kl)p#CdFpNC?`<0RzL(*Jp;<wxC;{N935!wm)kg`Lr-q@M|icDq_{R5u>`
+z#@`g_GZ@@#^1y`E_cvU;`)~)MHkv0P{P~`7(ojLf9Y^tLHAZFoQPYSsqYc|a1^wDw
+zHy6L)Vwzw9;;v?wVLv6CJ=@Ud?=K~9^!HJ3&b((RcwZ4hJJ`in(LKkj7`C(;rc+&A
+zD!!G3bbG8%o>VNKHvIVHMUc&9S{jGz!!FC+>Lpxm;dpVRsXnx%fQEOSj3za5@7@#U
+zum|ifo_xI^tv8wBGc@;M^4NdaDomfWY-s+rp)R)U@pC!>%H5&|fZ4p2vZ=d4Gl|15
+z&ov@ttKCAp5ia32(cJtUp+*K>?{03pU4xA4-+v+*)BEsi+b6vywy*w9X)cGjn~Z&#
+zEmV)*Fe0E~#xFvw%|2o%fMGVYcZAkNCrxr%|Mg#vq~3)jL~gx`EaP)hSs^#S!{CV4
+zEmH6B3p6elViw5wZ?a&oXl&J*q{o1Jx*Lf7{+Ki0Z{=%CX2=OgbDo%p{j*XIIT8UU
+zSw9_)LBy~&{qn5>OM8T|kmM(d0Zf9urR<J@*4Dby64MJEsn}0W6wkGi!o*3KMJhye
+zjl>EKd8#-}e6_#C?|*$gCOV!{L%sKTV8-YROTLHYhXx5v5-S1LFB&$F?g00U?ree<
+zr}8WVRJn?crJXj{g{un=*}wXcOt9LO4T&;UXM!qa%>-5bE34r5^nUIQbCOB)XSGwA
+zCi>qsqRx}hKYm2E_lQ^jQ5qW$&t^_c=1n+v^^*I1L!vxeP;^*0O{EX%`S>N^Ck|Pa
+z=z&XZL2~H=MY~T^nRFdD?s&fZ(L3~=vFKgB;fG54FMF%}3Q0yY$tg3lQ=&6>SC<vz
+zQ+y1=N~%L^g+cn72aEBzajSc7%-;=vO^PrMGbQPxC&l>&a(+SvUc>ZwCPcNKEFV(X
+z58je6JpB`v?|7?eCPU}zLR?c7)c6F-w4nEQ`r5~}WxV-TRrKD<PyLU-km?4-e5e22
+zBq!r??-H)bE^w~H49QL}l-0r*yzsB};#pM&Q=$J4Q$1)<&-GHv|MVftI^k7VD-=7|
+zmUTtMW09~cA_0qnabX3eZi{>WLbG3N^#JhZJQtlyDdk@Ja9b@C>`mOCyd$NeGd+ci
+zrhJv}^wGd+m(QzQNeuoLj>^oKMIL23=7B}k)3Ch(K#-dSmsvx3Ld(H<IR1g``4Ay{
+zdKl)M#6Vc_pwGlVv%ZW5dQZE&2w<`7_P=?U?SD0kKZHE#@YuJ+qmWmn$RU5)OHMMY
+zO46l`9J}u;4yEqj5!L9o9X5Yg_&@UqYzTM?hjtMvXdFq`D$ES4pa!4(+FyzNf(gM{
+z-)F9jOOHRNZ0SvHz5V*hADdoQPzCcH+Xt43G1ty8>DS(yO={2=6MX{{p8iCUs<6BH
+zix=ie@$*=3%7|EF3+ujsVWzS&hXcL({=tMG@u}Cb?+lF%Y<T-gy2UqsJ|4OELwti-
+z{lxcWK`qO1kY~+sHX2e_Z>*|Un_GLgawb>GXk@Wf&d5kpk^grK^|a54^5v`r+;+U&
+zEH$N$MiOWMc~s_LnLKV19Kc-v_i%9QuPFBHnU~V|3G-mema%(x7kTplj%SniB#z!i
+z^^*!c4qEWR%Zd1#^F?Y}gbk}4J+2p*uF?Eld2T`DI4%KyY?S9qdTqQ<y7uqU#6jyR
+zpltJ690GA6v90O-aWL#@d+E3HY+bqSLYTO=PleN~;p4_JGioU%=Ybp_+Z0wQ8=g!b
+zkiWYa@)h-5Pw=F|z4Fr;9k7YwLw4bh$iFGoo=;uelS9YFpe!nvWo3~-j#Cc?933wb
+zL0Y`&{0^u3<`%Lg>>p0e$R;NNy>w85QeXE!4&Qn10Hr<0OxuoP`c6#YxW?sK-L19O
+zHAQWx&ywf~E*1_<4^W<wao>~dj0p($%Jd9?tdzv;-DNL%ro$Pt#epm1l0IVks7il8
+zd^I}~z_|WXp~~_4ugaEzELF%mB)nf|U+B3!2-ChIaN&p(YD#+}=YUK*t1n&6)C0P;
+zN77D<8z~lwS5X;9NsngEPsHAY!YY=!6BZM$1Pc{Bh06y-o0;e9QrmvJ9WSP<3pGM^
+zU`2%8^xEu&oJ%n$7^R;V{6H6HQg35rSo3ts6Q4p5o~JiTo*vz6A&guJ9Ly#qzr+5!
+z7OBAU1KkSF6o^|f_-ktuBWuLTd5*HR@w3C)M^~@$EY`lk7~KZ$vc7W&s@5rm{Z;yh
+z*520*<BgArsmdl*jQ5!yc%Q1yoBesx3?037Til`P0wihk_ShWln4HC6tURd)qsh_%
+zzXoXxE7EH94^2CTop1<OfSFY=BY)iAD*I4F!Y*+n%Xd<&*}Fe$pWHik7(_CL#5gt^
+zJT-`pN5A_PU;I{M-m48-A(SR!1g4zGI`G#^xpevmnssq8n%gcL-VOcPKQ$dGt1KcW
+zPKa=>+DisK!(3?LT=U(+TmKCv68RD@J%epK22rGqPeg39Dtm0YP^wE}hYje=EV+4*
+z`K$azDf6uj+#i->d6SWs4!g(fh@Oko3wez;S@WVqe}qt_cPUJPiWs7Xcr#R~x>v3`
+z!tkx3eKj%sQBU9;BXn>@S#9l0u3DoGLH}ibgldOx;*35lcPHtYTbJhV=*g!ol81AL
+z2ESw$85~_{l=ssgqsg=7CE5>9!p;ZMEIPU^kG)ggG>74Z6fJUO?{1$cN%T5P(MT7k
+zzTA2(;o`N{TfX<EYgVJ@VAglP8Xr*9KQPC}@(83Hy7htWYHL@ipx-_67kBdEh_B)d
+z({ozp&x=cE7lb!HHvs+*YSHWhOpwzgC0!)u$kqm&kHaERRga&B1-2LBW@}a{sB$2v
+z&Q9)4G39!<Avn})FKAlVWk>!j{ikyMmd?d;X+t@6W7vgK@(w!S@?h2tW8;T!!GbqB
+z+HOP7+-IW&09&UP*y)8TMeP3O*9<9e19FaK(WnWxRZiXCaWWI_d`LX?|Bs9NALf>t
+z96DgmB6=V}=<y@~0x%AosMBns`-iQ&R|VY2)54YSR|l=r6iB~-wRl%uLS^MmBIOmL
+z*ybX?={P)%nh*s_K!F@C#bR9M6ppDN+y?WgHT^osF`^R|7<-bX{iX<UxhmkW4?8#?
+z^4d<^($;1gf4ViAeotV{^NHZs*Bt_31q6;!xorJ|(B;MS!ik~Duh^S4gO%NOHv!EW
+zL)|nnYB)1sdCTY*rEX~3^uMQ<g5G)lcWIvm2n?I>1eWJ@V{2&U;eQT1!5e&vB`4J?
+z(4sb@HX1;P|IHOAIf6k*1}DZLpRlxze3Eio`C|cI`UXZ!?fmIPM=R7~ko?eC&J3b>
+zRm5vq-P0aJ`2DNHFR@(1-_Q$J-Hnky0&;g79%^E*#COdds||Z5W90S}odOu?a(*f7
+z%(V+CDutI)%c5bugdc55?c+zfrE79WkneC#K90#1=TdpZuhh?wO3#<(6FAV*$+`G(
+zxG<|&{-q!-3LMgud#RK~R74NC`NA2b`4sm%ub2yp{qHW)(7%%LiOE+CLl%vPo!tYy
+zOZ7zpfpUcVmyL}D1GX%?Vo-}?=CC#fgnLZ-9s%>Q=D@AcQ+zS<=pj`gT5t2;QiQU^
+z<%4b}l<`T(ilU|T51S}%uujV$DLv{h+<h6qe=&K;inJ-bJ4VAyl$y0Ffd4(m3lBH&
+zD#Ds>i@j(*;*vyNl#ir(j+8YAMYE`@pRi25V;TBcrmmj9z1PG%_Am!7-`0>&u62#p
+z+k0uoES8+yvoWS}Pt<OXTHPwp)yc8uq0Kupu?Humzx4ZOl8vV#E<j1scDvxmYh`JY
+z^}nIfCbFvP7mY9VKUbIL7i}8r_qP6gT)tNxG5q;n;ydG!laBZn$p#EbeT5eo)UoJm
+z-f38C04hy4G9fLyXhq+7{?o;=rnTrbqG>aF<|~@w8Z=9$t|o9YviBHfHD1DyS6VJs
+zZf07&T>7y3_E7tGo7~T$ys--6qUk2((X@7qQ)2g?R0!Twm-Gy7p0M~?HUbc<G&Kz@
+zUp9N(%j8w)h~VXN{|RdUXDxcOX*Zz+)={u){6pdWBO`JcAH&J|*c6B?>Ol+T`Gjd%
+z1ymbbTvA2$Pp^0&_QbhNIGD<->@`{0k-+gtons=Eg45HD`%strtd9)-8S{yemY1hE
+zrdb%6hzggL&m7%lo_?RXX*9i975mIaa5ni}{tw|IE6~n*{;{oKfk3R`l_x}}x%es)
+z@<8`-G0%oH%o>1xER5HiXr51sKcI2{p~JGYQ+0SM{gYPw#mT-x%xV;fB4S{3qr8Ea
+zK4CUIfV@WVnu=;V_=}o{Cr9+gPqJ19j<>B03SpD#9eg{g+wAHrU%#ufkoDYXWw5-x
+zLze%;tLr(L7f<5bJZc`>$5uBjC%3;oqS#S=n5NF+86ahKlgD#g_2^L%^@oB;Q3eAQ
+z7FA1TtEX`cRySW@u7`=_Q(M=Dh=#O0wYnL34Mp9q$feFJNfW(?HEw0dpZU|bS`#c9
+zvVPt3Nqt-O;gTv#H@e4*=Y~rmbzW_j=)G^QUg8fIc0L{;RanS86GiX!WqH-epz^6d
+zT&TA)tO6%PJ3GQfL&iJ2gh~LkHD{d5(z^c-eUz@_Z9hmiA5J~?<Bz}mej==UMa<{i
+zLH_cZH(J)i{pFmR6FjoQy>pa72Z8pWfae`_urKE^?HOm>9_R9$#MB<x><aSW2<379
+zi|)!N9JaIq`L_}ybIHy@G!BP^_Hg^0v&dfZg#Uj|%;B+&T)D=C+R|NFpNCIUTKV(u
+z90L#<3+!A>&mX;70ROeeS4u4~ak`p#d2>GOLLI@M!XLcg2p$1^K3NCmV|y)$)0~%w
+zF-YHgK<@+OnZE$?B2LGmWOwQJtCZi_W6RP(4k<^`61!W#vUx6&&2K3Og_m2CTohZc
+z<MLoV)Wbj*aXaMAE;tqrrAR?FI^g&;f8pi(9>A12-nnSXr)tJH)*CuazGW7wFnTs_
+zC)o{qHxK=-qje%Pf!5KI;BXSOQ*w&ITQ7)2*xsgu_9$l|wKmsB05KM>)z^_FoXM}t
+ziIBatFuLl-mM-+81$LEn+KXd}q=Pr}m=$2Z;pMQ-ya_{g$@@6ueU_b5eYrr6?jFva
+zO9a+0av;p+n=aA3k}+dB`G72^4{!?{K=ptERlj5+WdDK?`Mh4!A5QFycnLL~+yT%F
+zg`kMzF3#Q+!1r%l3Z_5C+^+wJ%VYjgVv0;-Hf70qXucm8d@l)U{$Y#4_+LUnr6Q)|
+z3&3tt)G2TOMq*%HlMKU)v_}E-3cu&1EKK-A@X+x~y@aw!^8r-+Qm(c%(&i|}xz5Bv
+zy4N^IlK<?^!Il&IzBK{-bIGD3rbk-iT=3RGiNe<PjvHmPxXCoE^WL9dX#yGl<)^<q
+zBrKp_dx{!o&0}f&rd!Au*sA`<p$y#UwBswbe1^j*Y5&Y(A>-l|@lk2p)nJC*!dBO4
+z7YIcIIa7;}&tI=BlTsMQ19A#3t`fN3+f0)0n~?ZGQ<O>VxCWZzeaKSIn8w;<)ZA#!
+zRUE)4)(cFmu5G=UzFf$v--itw{#yBuH)m1Ne~4mRua(eSd=OH!`1Qq=EEQzmhfDy(
+zy?47nHJC-C_!EpBQ)=#esap6}<~I?vUDuYG)IK#u)a^%RzD6&|>CBf4NB5Rnp*xa3
+z-LTX0GM5<k;Hc7=-}~MMcHzg}=vRn5&#f7E<A7s_#%q`UeyNx)sO*zHev}`KGO2jg
+zQO<MWLNiHe`$W+7S;UJ+2ZsmJ6pl%O8m)g&#(|?yEl5>>^YtoRPpfQPK>awj3Vph}
+zg(sZ)KLJL1v#usLGybG;|G9UL7?GK2$pJ{2?(Ki=TlWVJECz4I6Faps+_|7R@BczQ
+zeg*jVaQchRN$UwV-rx%xA)_5Ip8r*mbRXB1bU%<*yyVteE07<l?-p6<SH*Mo{_1rA
+z$L5N!aIIefq|lYpWS*}w$+<1WRCWUPcbwksMvNIiI+Oc{bYu<(b?V5S0Gn?BvO76F
+z`bC|VPFR&CuruF9(_bG7EnBWmz};72W;4T#uwMt}1f{<@Po;%S_Y!GYoG~Pr{xB^(
+z^@M%##M>fQ4wA+5z-Wa(DO9dm&~aklxyc$IV|2b1^wvuy+(hwk)y3_|4cpwGXG7Kf
+z+Rl|rAxcu(WZG2e9|OmVda>azR|8+nzVQ_7i(FbZv44|4wC~z>YGG(2KMoB0dK^`P
+z|FLMYCj7#NHkbNr?f~#z^1~%9#P-Q`;vm(*S(K>uCv}^*7d|$eC*c-%0)D-x+4Wt$
+zG+ERBTeshz7w2oc%Xz>2{)X|l!*9o^eB#-J$y$KWwO6i)%pj3Ke*Anp)6St(I`WKt
+zIN7$5(K30EVRk@+GW`w%JMzfX*@YfipngH+G5#Qc61Nrck3@S9#f$j8i+i<(o2N8u
+z5+R#!99)yn4M-UI9Dl~_WOz)o{Po=I^Zvf6IoTo!Y9CV6KNhFU?B)pk&=b0=7$Hf%
+zurHams~wT9yOD7>9@u_c8Of@SEa1G=&B|8tUSY6CHK$++rq}x#<7#r9&lgs>pDMS)
+zT*){;&(_=Or|F+KD}YBwDMeRb@pG_9_g)gcm${vt#2#}+XM2-^`Ou@@EbD2`8aK;7
+zD}dFaf)?(QHf^B8wNqeS&${izoqi>vew-J&CN|%EBp<{i>8i~j><Xn#-Lj$1ZknMB
+zA`)`VQq00?HpDnQ(^gDB_!cTMo_xIRm~!66w6T+K<E{q#J0H?)-&^RCcX7EJl`+yK
+zTx3^2$5Ws?gEEMtx7lH)q7gf=DFu1EnaqN$I+3__+4_^+D1LHl^zLcE{eI~Ry_C?_
+ztz78jm}0`^EfC_geoi8`ItbwZNk^BB<rP~OeKIEn_ju94UC*olp;?VZ60rlWd2Scb
+z-m}CZH4vHv%}=gCqVVuA|5DY0X<7JJP&tePHGDP#M9%N4CW6Q@9*9te?4YN(F_rm;
+zN26NNgFk6hU;}wqY6{td&DQmk-C#f7p|?xA&^75tUyN2==DqGC?5jH$`JqLg?e(r*
+z62HMpFBifl_0JUSt_sC9=G6GC#U^a!Z5H<NcyWxVr38{h1EI`mc*bUOlzQVg`=$=g
+zeonmigutkqtI!WTf-V0p-VT2oU;FF)QXB(a7#K(t5o)|5*p_KS%j;gj-ZTtCj6Qy?
+z54@)d4z>-g2_2Mo#3yDH22K{`MZ~lW4m@?R%gIi=cM=z_QuLlP^H*K)H%TJGhg;D^
+zSZ_cV?G{}vuDfm<262KbJh=^0TNpwx9Jq2*R4Atfp@rZQ<#`z?R_Zc)fM`!d)vZj)
+zARi7V_(=fz_v%LH&vc}o8FyT}aEULAYoS~0-aeZX(&BreINlU%f%rC)D~4dWaK$vz
+z{^6g!po-1*yi<jnIlPf51V*X(3BUK|feS`?4pTJ@BzAPfC?Bw$9u`~Su@m;Cjk9e7
+zdY607Pu}>R{&STrLVR0Q$o_5vfHvLEKJ06~6oNK{E0jkU;ufv{tic)GikBn?r7Qdy
+zca^ZF7Y8cC{LTzu4w!uwJsM8r=HZz608PTEh3s)+OiQ+CG!(f;?PjKfWcmU9fU<G8
+zbb!IBG}*Crvc^1(_D{3UF>g9Q1@Lq280nKNcPM%4uOrZ$xE;Kjd-!yALkyT0IH2#t
+z`Nf0z;EXpgMVZ!LaeZ?9m(#x?tUZ?@>ikx-d{7g`7wPS12PMDa&)u&<wb8Sj-t}Ll
+zWNd`QZGJZqkON6Ba=vrHJ3Tgf{_mJ<^ezS-Hpd}fU^}btU(?AAkIFkyPj4h1#M(9S
+z>QaEi8JpN)mFJu<n{UAa2bt8e?azUZgwSU@#!x0^J>P$%Ew;|LS#rZ+=s*Qm8;=Z-
+z(dy6iDo@(usoQ@XNH<AcJ1@27{|{+r8P;^v$9)A6q!9&a0R`#qQjjhIrC~}V-OZ3j
+zkdT%b4U*E$=<a63=uv}_8*ISCec#WE=l%0)XD5Ew*^B-E*LBYK^ZiaT1ESv4t5<qI
+z5r1z~$~{=)6JBF|lMvW=8*n{t_T)_O&Gn#G#0tSuitvj;T!Nkva(WJX*ueaI`Uvpl
+z@kbsv`SR4o$&LDyrDeu*`>aVTCtN95l;zcv(Q3SIdY~H<^yA$g^|Cd0?fG@!*Hivw
+z22-mz!pjCOjKYRqB&HiYL=4|<)w9PwhpfDTI{%?-VgK<so`2sS!4&5a5x{nH{mz3G
+zb%Hxeeh#q*HT4`TwtqBEE|E8;+lA<rm%RaUJ&_reGqi<Rb-w0tD9I?>kpTIFkJ17G
+zm`Iu%j`PP>(@z%=bSZxZ{6p*{rah$;o4pc!qf;A9ruu*9|9mP&FY_Scx*2v}WMw5(
+zW2H?Lq!r10q8NX&;i~?E#)160qx{_DLpGl2X7!C~!0Qh*JV9>Q)AuUNc|mUM-HnW+
+ze0lBI^Ia`!ZnkEjN1D8+lDqlk0~5YQte_9xqRtLjFo`Zum`zMp*>X(qQ-Xio$GvIN
+zA0?LO!($UzF1v-Mvxy<J&y$6>t>65b?@wE5nI2cnC=u{`ad7dsv0?KU*`;X-PcKph
+z8ANjQgRp5}oFBR9sQIc!LG<`6tgxc*Tl(hv7x1t-Bh2a5UXk|;gcT0`!6HQf_nK*&
+z;JDChozYnIzo*`Fex4kSIp7&%hbzv`4x&3Ygk}WDNlY{Jo*I>I9lSf`6X|!GNIsCZ
+z#W6r-j;YT-$g1b_rOnXtywbW9mVl8i&<vZZ87XA+u75CwT4rs04fY(NN*y|NF6UYM
+z6kVsRlFbc2V+_FEE2KR0j%AndO`-%|DEl6t;9b&BdbHVn(qC@L<XTAexB>?J-US#-
+z+~l`WUaLNuut8aip>Ca%nxP4Rj%UX?3xW1DmevRdp@$>_ONlOy3_8oGvN&li)b%ne
+zzKjmaie}hD+}mDaH~?8744vLtq;T<I9Bvl1igk_t#J&A)00X>vLv$#OQp{WV)}%_i
+zgY`~iL5mw70}kaK`FCUodPj3qwyqFjy=0veTgfelu!wC7L`BQS_-dW-bzN>YVu48m
+z-4Gd<M!g%U5l~MIC&ut}8M!P-0_sDO+Y&r>2k#L~S2~<=Z<dJumRxKc3yeWb?W$gs
+z_R@w9O$g`+cSjo?eZLwjXmc^~FNkjNh4m}hF&l5<EL;fDh1bu@`&&F^5<6D5t1+E)
+z6AEe;=MK?xvU)2;HO%et=r+6RvN1}D;V0_Rt}bluJJ00n3DU7B5gry|qa&Vtcu>4Q
+zw*kX5)--x~YM1_tY9(ZxmZjp)!YD2!bNZrR76zkPQ6J8#4}aIyzx=1We7tE{t#)ui
+zwJCXEVw~}>fi+;h%u{BB3(l7VY*r*X>#F|^qUU>&`3-Sjw8yfHOPd*jTID`{iWZzU
+z{G<Q8X@S^?Xu5x!<&cERpTIToQcdAe69HOpX>6X|FQIw3$etY<azVofN~2+p2^UMX
+zQ<gk(D!4mU6NR88mzj@KP#JJaTXVGo^B5z7_CwQh`8qN})ax?eTYt*NXNOB=+C@~u
+zja=8lrBp+OMBEG(H`061T&&~jZI&GKod<Tn)3oW?sRY~~MX(MPC>@i|gL>YRh`?>@
+znQloMx}ye<^PyCMzgr}~lJ0VNl0mMWs7z<*b~AoTD~f@*k=UDLDE%kK&N77j7yT@7
+z65JHie^0<;;Z2d}Vdh5>#J61onV^M%g&)ON{7k2sq}*wXEKt;Cl!9%Qm4L%=)ZA5%
+zb^Q`hLEJ?#V5<8j;9IyT=~G}Pp7<G-0@!BGJ2Rd03DIuEalI{1Y~3Ws)0-RZj8#hC
+zauVlDUs6fn;6W^H^+APnkcSDtYm_J;=xTxR{J6JNjak9ZJbhNA+=qXRYbHenz2Waf
+zA>OGnzd$KYd=YX~>n_E#^2Wg{>xVPr*H#+0;~zfEX2<&ab5zC@Bk>;N3Q}IIi+9c!
+znjJ<2D~;%TEKyyrPuAzS-L7$q|8xh8e{kiL(QF0|D){{1g%?#?EK=&6a14yg(N%b{
+zEXp_~onR`D5gFgg0cGM|R*g&7#j_sfk_;X%bGXYlDAk`FpD`har8F2FRW!mf`zEq<
+z%k67z<s#2*hX|77O>s#4=dLK6uqJ%wJk@Pttgiv}^561T$oWm}V`faNdH!`##FO}M
+z{%C9h{A~8`*oY%^Gg38oeEGn*hCt1w`RQCYNI|3zmn;>LRr`YqVvxHh^y9b{B>8K*
+zx*Ok;umhu9)x3th_?ISLLxnmbJz=%I>Mjg6N0!%)N9xLu+MjC+R+?PW(ZZj9FOOTu
+zn99kR*0xvsO~oy^%b3pGHpyR^^P|byNF?pJZmM?$&|3K3sAJw67oMAHtt<0s!wd5<
+z>nrnJ<=gkmM*}L4QG}ha>3_{a_MwOWDEUkLmv7HEd`&TK&bRt085&Kx&nr9FFyVS{
+zY)+<dmuxuJ%LknjoxI%EK4`dw;8Jzlk1FK=$p0n=JNoyP6&$J4AV&nI{Vt86UJriS
+z6F)euj=$HA$xb?d8gdPso$%LrS4BCK&AC1DzE(<d(O$6za<mXT8OwqcY(`FgU-;S~
+z$V`tl^+T#8@kGy>t+i*#pv37jqO>>GEl6aPB(A!J8EPNKJ%iuTtOAKS%~-kD`<5CQ
+zEgFOw&;ra<Ef@SE;n{XR6C7=iR>*~K*uaXFiouWWSWwp1WDEzZ0jY!k5ijTCy0peC
+zNXttGK;wmp63KJS2kY6NEB~>v!#ZH}CvQ@SF<R|H7LFmlFaJI}J1P*(cj$ZpJb9e|
+z_{1u85s1*+(|pAHt^Ep}I&_}C-+4mco1t4P3A|?MrWjysnfElX6L0H!`AoGOK1w1q
+zT$?|upJa(;tq%zJFknDrfs?Q_eNES~bOL=Oc4wqbkrmn2NOu1ly2deqd$xl<7AV1u
+z9Z3<qTnUxr@bCH{mkA?ribvd=RI-*Ab6@)nR^&e_ev58X&Z7ELCP6G+H4ZzIQ+?~t
+z=532@XuN23Li?flYkfOYh_|VwCN+)nxR@-J@b9(|XYu(mn%o5fga~*oLi)ybVOZN%
+zRq!KPYpKVaHqNNvm&*q5{Z*Xj&Jg7wLyYyjr^StsQ>UaL?|li!&*1*11|j!^f@fl|
+zq5%fEMFzk3^FxiZ#YCNH!61rYiq&|o@y<mVi%1a`<DkHNkgkmoqCt?a>w8Kab=_TB
+zLR_F$Kb|3YDDA7O`j&y3S_g+eVM{TuNp<&L`_;SbFW0K((q*3;=rTGRs6R+}NrSCf
+zZ!_$joD&_=$5z{pw>v%sK3``Ayaq-8m`Er28e8cbeJl2(SQPaPT0aJlDvt5XVb&=R
+z9I-STvj`-xtQh1?JtI+F;uB3+Fe&!V%4uJcI5OQH2oj=kzMA)sb0&`9eg|a%Exuws
+zNjQ<u@LHT5ijeEimDUKX+w@)-7P&x4|Ew0dM5U;-;umiezZxO5rQCh2oI3rqjlSow
+zF6%n3;Fox^2H0-}LL9dumpSfr`2oAE)pk9rvhv(Fmy73MBDTY-^_+V1D4GY%$c<0E
+zjow}BTxBiqGd*-1-D-sg!<1(5HJt2c*!~sG7oNx}E*GGE*lv~x>}n|OoINkTti!)7
+z71g$5KKtp@=s39k8dYq?u}QVFq;U3<h6jm#WnE!im?M(t&!-8TO+LUL*oZE%BSWs?
+zO#EUVssa{l-}3G?vq8Rt&TSV0?Idm8g?9T7j+;+$8P^7Z4eI012yS6*du6aN=Rz0`
+z><LWayXn!0*lpXQ5VsVMr)2&v4lJ~{7BCe;gAxw1-dw!gJZP%HcJ}J$J$8vW-nv#i
+zBVaS=G)9B@6z3mk@a?Aqw9V)`x87db4a}#jpT`Yi^j3s!JwTC@f+LvE@$1PkPnXRb
+zckImugek#;dGkg_0a2N{Yt_!v+=;7CEM=iE)(TIG`L_c93=epjAKCHU)bD%Ax>L}c
+z#R{GHOr$`o7;Ye@2Ms*Ws{QIov%gHbkb&_w;HW-RZR9!AyVhi%bq)EZ^S2(-fFJ}T
+z3fo!z!7*1)UgiuT4UjmfjF5QgaXi^lC-YCCdrt9Pd)Rq0Y>E6f1Rnp&UZ-O`=HY!{
+zsP5{pExkTYl52P1D(P3wi#sADN^UoWSZDuhK3(a#NL@aVjnw|0n67K5I7^$^RX-?H
+zc^P98ykCavjXkoB8KmUOk}+HDs;`L!KlnvYbqT|Aelt5p$`Gz~`DiKmhTqi?T>tGs
+z1giB#w1KgjWy@=NF62P&*t>w~IDY8$r}hjG<eaAR@>_Xghz*T>3g6;5F4xLWfAUfE
+zQNoRyquKaZzs>lr8m<EZK))o>VOyX0$z^6M9zYXy34!BgsXekMVLpLJI?;*fLzvZu
+z$PA`DwnrQ%K{R!s)mZ-&ke$RXoAW-BC;4os+0mnT>-DgvC&)L|JQ6+IO6&JZ<i(|Y
+zvVYPS;{*hbo)=<VS><?0K6_(=_&CK+f$_*GjF#NCTF2|tnU1-6eb7mL5cpklq&0T*
+zr+X&KVYywZ*bCLk0pHmLE>JxEPd#NC`?QIWoO3u}i<%SN_|g$dyJx>HbFCYaSMgO9
+zX0uu4oy94jmfcg4SeN*4!(<MJSM5y;z4^t=n}Qud`v7rXS-p-ZMEpLXkEsu6PKws%
+zHv&$}#aseYua2LpKdxk9V%XUd*uGw2L383t0?p_nF!qd^IA^ulr7K<QiPp+gf5drq
+zTAoefR-x+-^N=5CdMf6$V;$&(y*ppjB7@{hq8kiKKyForXC9*jns_yyd^?E4E#!G3
+z`<`i%SHL=8Tq@ni)yXjH)V0F1^5tKt^k#jUrsD3px9c)185`MZuf&g7>>AfnqweC4
+zMn?1LUPFR@dwpqQs3o?WrHj2yTPSFQoCl8DxmK~%GnnU%I%6;!ED}{;;3FT;pDs^r
+zguv$*+?P!x;n|~<y-|Mr*nKh$ta90xK7RbB32TYXNbKxiTEr>~w@7X-nUMel&1Qvu
+z1b>W@|K(KWt?`0^<1X$`>o7)`@Q=HN-^8NUKaJjI{YpZTGM^g7pAd4a1Xzb4p-L0!
+zH*Im3ZDL>lsb}mh^gyqpHuZ4HyqtT#`pw`T9QT2|v+?iwApA4v>g>_3tJ5CV>@T{3
+zIVf`+ho678t0&7kRqdodp(E%Kr-2Ob+P|IRey>8wNXMg#Pg8BraW5||&|7g4_tp+T
+zT8Xu}K3s-1Oc&Szh`Eo3$KjfQoX{crMAO2BROENRRh4NN#gNO4925W*zc`^k(j8$a
+z<GSRTs;7u2W+7vcUTrtFeWv|`qPTQpkU0?`gYf3lgI8gAhxpy||Ea$j=zx5i_0S-2
+zSMe4rlPQ`AMdN#js`_86#secCx$vI_rs8)T|7|_3iskvga`Al>5A%N)@Oxmw{x^+~
+z4*2+g)$+GkU;lS-Mf}eHf2wlTfjGtg3e8`M2h#p`)`vas|EkJ0{k&yg080Bk%_QM*
+znfGSk$j1gycmdU}4D_YTHUW!?!jV`inGe6>%*4Q-K#D612^MRmV9;7~KauLB^k?h|
+z#hu%>XZp3AavvAAoAT`3JUg7<!F(_jA>j@FQqS+Z)GztSIDx@l0|Hp;>kcgQ6O8&i
+z5&eYs|Bex1@j?}d84hCwjp<i-+2}GQ*TGIJA5FE$PqL`3XQ>Gp?toWOB(0wYLb$_{
+z)kvQnP$+y=>5k$0s4qEp@0EZ;#pq7nghZ`$R8*&9)5lq!#ePTdZ#PSP`zkdoPp?<!
+zv#7T1=ZM(iTW}9S>N`E3db@YXxWsY-{IJk6h(o!<<2wnZ=b?a~mX@@srrU^<I4W>?
+zpwEr_GcDe*Gsr1>Kb3klf)MGoJuDUbDaHbsg5q}BP0Dm$ceGWB##%Q%-D#vnn9qE7
+zzieP(RdcgqQjJvf-z|LtSKO6PW$}O2LkoB#T`995QY}N`nnaa_b|voC{m{dJsT^cj
+z`C-5}krR#w2_S__A3f{c48gATW<f;q{0sN?VI<+rurlaA`?x7q>FjU3#{Vpz=Tp(<
+z2WGMCe@Tf{GUMd?R|I^Fw#K5I-w0_pWuYbth?=`Ps$YC@Zlkt-lJX>uv6}8g+Xa!2
+zO|Aa58O7vFr>h2rJKv>HLUv4TU!epsoj{Eq-dzE1qYz>0{vN;}-?iyljRp7z(U}I*
+z%o6<p&XR(X-P7$n+Hw=I{+$XJ<Yn39m1vKLf?Q?r5>u=gCE;|1%a=D|^rG>|6h=4u
+z6weOd@vT3{n$8`((C^y>8SqnUH>T6)YtctEQC{kMQ1FObpd)mJ@iuvE_*6Mu=klVR
+z8uME)`CP3gLA-W}TC=b^U^-u5Tu2Jn{n^dTMRu_Hpwse}o2W>&v{OJ)R>SR$SF2n~
+zznYz6_dRWYq&bXOm3rg0$*x{%veM>F`lXqh>)--`S&t(-0^J)*3u=0ei|G)76|{OQ
+zmHSKzobE<vN7F2*((XRGe|4x}D^hd0)M_4zT<aw<t7J@%n%^cdlcenM+I@KXYN}CJ
+zx4N~ypW%jHDkJN%GUZ^abarvpPk^)|oOct8XOC64WM0jZ0#eALWd6{_LLC%0K?>Gy
+zYy91)(a)-<EmwZW^iH3LH#|3aoBpf^Ok4M&U!Nq(0mlIye5o~w6i|Z7qdvw6n^?cK
+z3aR9Iaaj<jXDrq~q6Fnonot^9sDnz#qq}NC@3Gc@UVzAATf<9EeM$g!_Qq>S^Iz4t
+zn<SUf)VZ^nU+<m`f^v6p4m5dru73(tjaozL8skM^!Tq8zqVw4Ej|r^)vhA6QZGKzq
+ze9wPgwO$8D+j+B~!bvHWBuXlui_DwG)L)XGZL{#fKGT;yn9#o(LH*0{=Zj^9qlI5I
+z_R~b`?JQza9(gkpW{TLS+Ga*)CXV*BE2k8%YMGnbwKcAox4a)$MoMNIeRLI_Xo^TG
+zJ@oS-T6IhC;P)S*BAUK8s1sJ4h9sp)2)}uH^D}V((AWBH9o8SC<hqEmJk2Gi*{a-_
+zT(ahj&TvcVlc#c76zMv7WW4FSHPe|A>Sss}8}uRh;FwMzw)n+AV3f{ZIt8C5J<Sc=
+z&l8SXEaTHV-LZncp1|snYZ=K*YPb}bR-giD5!<F$*Sj2(SdK>ag1tv-ymyT~L@v;&
+zg8iw)QN4;%%k;&Lqo-rrbRuF6K_}@-XJ354qPT6vA1WXJ6+89VlRw_`;M2SC-7wbN
+zZi_^!6H<A5`P+RRvxW7@mxu^7aGK)jP4z#S9Kw0(okr`_{lV0SWPQ^c`Z)EBrC+>5
+zdkx$YWH<Ucb_Od+xiBH3aPRPYk}Y0c|KBo^r+R&=8-WoIu^Yd{PW(Vl=HqC;9SY3d
+zM<XX@4@@Rhg8pXHdS5&cd&No2L3YnO5N(xtF+OB{JCy2u=WwVV)8ssg@?q{bz#uu!
+zK&7Sp`vNn-=Mu6pREKqdFJE-Dt%fP*M@IiNLpgcW)3a3C=}g&)MAKGNW~Ym04tTRU
+zO|*4&{Sw5wsXf>7>@RiijW-tvH8lE4t?x8rcQT&7^?1PW)`g*S;6+-k6cb$^BTFiN
+zX6G5%XHM67q&b^@tI5#at#grN%jlLo@s5w3#e0_Ymr0Fm3`j+b$OI3exr2INcRvL&
+z2H|*$*Bbk!f8!aouU1iCy_<teu(YOWlZP2KKm+cw@#8W@j;C1HW-!b_n7rlA16Gr&
+zi5q!7E-{gL<eg!{GNqF23pT~>=(Lq6FE^GlG0h$izOn48)@b6+@btkia^$t}n|^A7
+zJVXiBJc_q1Jz@I9UZy9g75u@}IAZ&gx(OYicY>mLI@)*BSQ^IGzox4#(Gd8-#-3U?
+zU0JH)eaUBO%dQw6mdu_(^2B<^AbO^kO{>C`6iKro2tTGp!5Du@+3{ui<-MV7$UZ;t
+znD(`1S#$fl&nm%0mU=-jcU+~Aoo#XtCI^>CG5IMxCx^SkbaZbsCfzhU7PYi=%iw!+
+zg>a*oj)Gv%dD>G#P-bIGK|>w4`}v*=RB0e~ic8$4blE1??LAKw`+oRw-qF#BO619N
+zL%@?Gg0cr(211!u^@<E?&Z`*IoWyPXj}(W)i9<1`vTb<CJCpBH=<@BCC98lPtYocC
+z*b~r@wamJKzDSC6M1&xStA?X&WSBBn%Os+*^#!(}E&=^tyGIYl#L4O2t3rAvZg8Rn
+zW2Oy{f4#E&Bi%0sXeG=9>4rGMd<68zL_&jV;~O>=GWA3@gZZ|0vp)BCnSP0~zg6h7
+zu4jgxs5H)*AnX8WL$7qlwA$Lfz599@G49o!v6;JHuLAC##Jt@Yq!3?^(Y_Kvv1IHD
+z2>#F!Pr+l5AX)s~Cck_kSFjmLseDsfN=?W9_suGsk^i*#YX`ab(9uuI0rFWjC;D2Z
+z26jd8M9y;NALH0;zdR=oF=q#7hR+Wqab4J#IoSSKm?RfA&PQF>zs<$Brc#z<Z|E>y
+zV$T%2gs6fY*Jv|c;5#}jV}E)#`l!3=3Fnf&%!ie#P=I<ZG%QHWeeXenRqXV4J7Bmp
+z=0Ok*{C`E-!28?(x9jAd%l2hnlhEar)y=@|%Z?vL(7d(1V@$GdVun+@1l%qvFB@*R
+zBUCCfFH-TzDI2_0u;vc#@}Nc=_8oi<W<_YA4gHR_?<&0Zksf_fSM{aGD$BFE0Tn$Q
+z_X{rTTq<^Z8!7kD8?k$0bHYZmaxaW&<SJN(ui|<QxLkb$T#Eftd%EOVE(*0d{GR&X
+z776sD#q8~W`kX|3=KQ6a88jqxGo2#%swtx;8qE8A3~^p#$<`k}ms+mgl!QWz#?B{d
+z%;h`&6*q2Df-DDqV#+!uV9V9N&vCB*7_;t5EXBTb2=)#t51`C81kJ?0ytahxfSd*n
+zNYChGJ4#K9cikY>zdaR#ANooOuZREhsj>t|`Ag_-pXBYG!}U)Cv^A$5Dr#RTO*bfI
+zZute%m6^#Ad#h!N(?9HuZ#(*Bu|t^XvInGk6ZvlKH~GXrP3wW5*LP$Rx&ZF$he9yW
+zebv8w9YF2Bx;$$Maq_#DaGs=yG^qw)7dY>B*(YVu4NZB+0Rep0mH=16uD}>z$?ZrM
+zJas`YX(6_weOuS3f0~&#>^@>WZ8LOhzS&Zq;QR2fCU%eB9Z47O^^*+U%R*{0scznV
+zz+*WR`7wB73Xe1$Vd@=+O<qSsL0wzJ)9z7QTeCAT7UlWy?ia4|GSP?OTb{*hYLURR
+zu(12rgsEcR(g4DZm2DLKyS5GiFQs$s!$;|D-Is69m>fv!=qtMh#yfqRO>d<q=Jiyf
+zTp>4qf)JrkFVT`lfHi-)yUd1;q{n=z81)d+X0zF-h7NxvB;zj`NTk|Qlv<bQ%f4da
+z5(Y~R9n4lk#~qcCse#hq6rCSFIF60nwmlYDWt(a?!BY={jV+(%`<SHWZvXX=T?*Zh
+zIB?qcC(GSdznkh9rib67l@V3*$L#Pxa&YveFK`?-c)=!NB)uAe>yhR;P&s)=mo!qR
+zc7loC^kNP4+Cwnt1k8Cf`+QsbB<!qx_WJ&JZ*i`LMHJ9MM_qI~HXmh@Z`q?5)>4Kf
+z4QzGyE%XF?Jy*NuN^)SlyZtg^k#TAi3ssEuPf7&l-OBWyILR(ux!ko^nhYx)(w&~4
+zwsIC~if=k#bibb+1GP;Avu1LUG$>@`C*f!m5*t2E`_ZX0@Kc1X9E?PE32PJTb&CFo
+zhKl~ZQ>||Wwfrs`fo*8t7P^#^AkgH2ja$gdeB=6TIZW9kx8=Od)&TssIZ7&Lt4q9h
+z4)x(J8FaygE#o_&$EoqtRS-&KWU9Y{$pQV#>)pK$x^V;9bTuPA^Ee?z0R8B0UuyEO
+z7_}M>jYi!XzoYTOpnrPatG+YRu0uEI4LHm>0@Nv~oB?FE5`LI-8kN}N?h`4Dsnp+9
+zEy%B}RET3vd&5)3?4%(#hYpjrd!TLAAwzQn1YO{~cK^PWjSjdj6TiTtu_B>#d+COn
+zxGQfjpHNbTHwLVd4M+(?jN7ye91aWb9Cv-awO7(X*fM&-&*4?#Z1AGl>@C}2jp<`!
+zIPt>aL8`mxo_;Dyq$l@8X#X~P777%-BI)0kiY5{_UJM!UANdG4dR&xb(lxP6>Z||G
+zC=uf~U0u~B747DchHo`Iig}THB{y&w@SDa1qn2wwRCuS|a#sr}lxi75o#xF*R)kb_
+zIsM2VRfQC4sI{gf$wllp9oDz1Rn36sH?o)<fWLuttpo5*SGqv86N2)|4RuJxoTKdF
+z4yJWQi{x{_DOR9^?EabN7SbroGufPBmvX$z`N+=sgxNA5q3FxAYb}n^Alc%jk9Ilz
+zl$z~@-6zYL8PT<#)Gi823%>XpR|JP8P>%TuI)EJCo-F`24jKTdKT3Zxe6i!7QDkgC
+z(5mkjz`U5Ilq%gN?Ew@>bt}p@N;O>$f~_<1#2UaES8Md@%V;#gihAr7gF@g5r4F3r
+z#ROBEMM_Qaz!?uSX4g?(hVUFap>tNSjnazEKzHxLR0)Whs%vkpVr+v?)!p_W$>{Ig
+z-Y)QhNnWPw8?!cj_U7%*2rS&@3LkiFEZRrPC>Lfs!Fyu^q2H9NBSDq?9(t7>j8V*1
+zTY9j1>|9n;2aO{<2BAO0Y?{WwkG`Fhv0+fX?4b<VHa6%O=~L2fiqO9~8ZcVUOk4Lx
+zB;GWuD1to98a**{>qE3*g-5AH7x?^k4OwCs^6WmkQ*+HDyx*Fki)0`9;9euLPd-5A
+z=&MnYNC=KSi+K34aYqC!NpV;0Ew}iyUZWp0tzQR_Jn0c@xvj=?^5d84n3$elGPk`!
+zMZ%clq8$B#6E_rqj4k_H;-ML!FE#i*4xg#$b<SR$Pbm7{&ZvZ2-6-&;;nx9*dQ{^B
+zQO`#y8}X6F?Y#rjS9B+4*S7n2E2+7!)|5=7ap5nei%=hdW3b>?ajW84TXoxq;SF(n
+z<VFcV{4)_-zqtEfH&*RTEi+!PCHwdSc}M|i3@O<RWj4SIzCw|I7>0z7%jIz62g9X}
+zVP1xE>!i{C8&pa65lrVwJYW;AJGXfH8xKY5Drr)PujDzIG=Fy?e1`Z1B~u###v*AP
+zDAcV(hcJ26Hs+(Y=Z;D^#y#`A(z)g!qrbNJF6qBXbphVw%N<~7qu$3^C_J*hdRaA<
+zy=QK_l<rO)$m!tZfpg|`V?ccuLAr*I;hsV$E-~O$y!4g6C*ELtHOnOq#M+pAEoYA?
+zab`Pkcvzt6AvNsaJP8%kuWOJ@*#({CU<4KK(abByN-{s4XE<z8H{T>1Btb<JU3fg{
+zDcnwCs73}<gU!Tw^@TqquHeBZPC3<&UT3+F5D;@l-pM2TClFc~Fg1{L%myD}3V?|H
+zy@A489&fD5eBpm~4waSanS!!gNS&okV(@MYHRdZVY{FrAm<B-cKyBugX?o>G^UM9(
+zz+4N)q6ji+jN)4Y-W7bDru6~aJEhi^54h4IjBQrMhM*n)4^8_6w*Ghg(J<WbI*AcP
+z8Q#fiLXGAD`QuK&WOhT`4aGFlf@&2r8xm@}JabJzn*Hm_XSerC@wFu8%iC1`0LgA2
+zV(+TpVp0P1^Is>7uTJ1S#x*A6sath_7qc4_(L~!wd)}5)KolajI4QR8>=JLFQVn?z
+zTM@C<j2mz$5t+<3)MQL$3^4SA(A$YkTQ?TNXV#)_tZv`5->pR;m<Db-a5m;0Yy;6x
+zy3w?7nO}%wJ?$%tfXxS#zIEnsiaxaXLSux|_+|t$gRyxo5{C!Mu9{sa7N0L}TtD5R
+zas`HLXlw&E_ZY%u%WX6_aNR>MgktaL<*$iU38`4XgIH466MS`&n~CUmWZNWm{)F#u
+z1Qmh6I8+5(_S|}~R0+VxB_-3(NE?nx$b%}g7EXKwH$3c;0r2a>L3ye@JK*uY#Invg
+z!P)C+^#NafCBISl{v|>evgkf}?@&&1_WpZ7Zl;|WVj<>YgV-0t6DpB)5rTMHj_X4$
+zlN6?YF;ILi6LEpr5BJue0J%M$$RPIhquR%%yVROU`+3IZiy|8KXeizR&4p`ETkl_h
+zb1;mG*P5hP#2RrE?;Zs<NsUe11c763s;67iIz|eGv9+&)CKOuIv9FbSBz|rbe{96K
+z@pVU_3t&k1aA4*i;JTClDjJsO*Is4ag5A+dD!qy4^wE39b7~dDN?PeWSgaLlu32zB
+zP=*&#J9D@t9Xb-26&{D*ka$1-C;&yTxvYA{7{D|S6%xPC8vJwb?c450cuRlhZJ6DD
+z@y1v3k<acYT|?<xtb@Z|-_*^M6-`<pj$fctr7B2viiqRKFBAtdCD&e$_DSwPx{u^z
+z-urECsiY>IXP}(R0SkyD$OmvmiBoAlP+kdoybf+;K6)%&^xdCZQB=HV&y->OJ=j_*
+zI|a-nDF?-&uUv2&c6mJDkK&v5x@Br#i_5(`YnpsG4~0dMATk2P?*U|M`|%7TZLFKM
+zGN)U6P{KDj6Uq@#xto-4w%3v3wsTu-cfr1V+bP%#ICu=$0b?$I5zTlovAr#R5af|+
+zh0_AF<Ww%G=|`M=T-mM2JYehwm_W|}adVROO)pB7S31EM{J9rlru7`I!aG?<qyLyP
+z;V~>FWCJysB$ub|8Jq)LE*|b|<_BglW|Zjj=!+X?#_QG)ncE+TW75?N^^Vs4Q^9)_
+z+cZoRvK-;OT{wI5`1;RHW(fV7obO-)^wF*6Io0ZUfcT}<wp07(9q_Y_k`Q{oOEDMe
+zvqL0hLU!@~y?T=$-R(K^{Wu+)-@Y^-?M6k~35`37DRh}f<GeAyfML)rEIcocBVM|%
+z>wcGUR3P~?+N-;D;xSa~Kqr>>#MS<?@cPgzA@Jz5uKmV|xqb9UoF!hI>m-yt6mXQB
+z%>!>c--yQz40Eo|$KV}oX%@hTz#6xQQFVd$PtQ&Q1h^)4b)XM+oIKL{21hm%tCZ(d
+z7_mYiS5e^Q#}?qsr0E834j)(rNQQCP&SwjdHrmd`G<>tYlOV@fA86{_q-a8-tE$%Z
+zdgU$Md~^kl8Te=zN;yjZ08C|gJ{w7cC6dm1j0(y)yTIb?pAA?9<_iVFhm&sIePMcY
+zqg;R4OH2PYdwf%RtAgHbiFEwiQC`wfVDmw_q~zdg66I@{$760(qaG-qg}<Q3CW;Dc
+z;qJ4kV+lDZTVM+OQ=&7aKqj+Pr8)N+TYhH_Q*H$N%MCU`f6mKyeffiea(0YWMKx;p
+zfy+_fuh_XX%NCz1aJiZ^dti9mE`+7OzJ^yZ*BGYTM^wcGq=ML@hrhr7Yy!|>I$($C
+zrGAd`5vp&Te#jT2OqyL~r_deI9A1h#`<~m;{o<{g-S<Ozt?RsDUl%*eFE0<Ps+zxu
+zeHpgFgpqGs{}C#TsW4j_zTP2_y^Q|xq&mm{aaJBvkd}$g=R${>=;j9;D6iv%ZQBJ)
+z>Gx6?F!3vMFn8%Aas8Ugj&du;8(Kqs06VYePGgORr*R7LSQQbQ4Fy)ynQvYROQ>fn
+zqil$*)sw!YyewDUXErZ3gI@b+bD<b*JbvlxKY)|;&(B}5t(t1HvHhA065lPm*>Onx
+zJw5GOrvnfNc;!0sfu27yQ+?o#CO70UvL@e@LO**vqP-u1P$-qmEe?uXDE|B@y69WU
+z`R;EyMdO$%k$wFY!uFX3r^#pS&)Ph=MTF*G0H%VJ>Z{bHf8VgpMMKVTgd&rm%Xw~d
+zmT&gXAj8!04(a-JIrt7rzbj2X^_~Et*_{CYzG?;FhfcSI$)8m+?>bsa;m-|Lxyc(?
+z(kVB+`z))?c{6XJWvC;s%~m>>*kW_M$rQz?(UBLH%amh0LHgd%P)C=Wt-Y;MW02hB
+zqM@jvtyR>j@Xyhuko@_`?sI*jzf8vcWg^c%+RFRvSID>IC(k{qQZju~Ve*Pe6lypa
+z=l+G}RqpR;d=0niuY8JMzLp4n_V}%yl=@hAib#H{4e|%)Z@6g2$nYV%-N=moi<fWb
+zEZ>LTh&TNV%{W-I|3$Z?VDRP3s<Kr47u6U0mAc}71P$?<UUNd1$>$Wsr6!@_(JvVH
+zrBg#TWq1DOZnVz~|1KSNO3jyR9O)Np9(fzx=gz~<ir=!K`O89ib@O04Z<v}<Szct7
+zi2wRciRtIr**T6hRl8Cr4qTs<*<@Ya=Z@>fvs{E>r4(KydGyqztxwaOoRYej4<*8O
+z1s{`d3X&~Ez4-o8i7nJz-;Pq1a78!!SbZva!K`kWy)2qyJ~=f@CF!ll-!2PH_O2+E
+zNk*~zS#PDgr0-h|Oc%f1N@`kS1Jvc_vbJ2W%duSxJKb`iKeWYM^@{PZ3h414M>=v+
+zzC6YM_XqJ;YlnbYDa}Z4q20!;yWo$3zR3?|l2WB#*f0r&55$Vpf$|8Of09Y;e}5Rn
+zW3kl5zrcbd-lj&U{^2|yKK$@*|Cw@ZV!s930oO@Xo~j)M=lk=YOPQTS+ltp%0ae}I
+zy2%Hu(9w6PZe<w)`-VI9d&iY~>1q~3t@HZwGrzu$YM3cEs_#ycnKKGiSxl7LsVK#_
+z(RyMD%#JXg<JXH9E0QF#yW6#Y(h<aAvT1pGq4-bJqUq~jc{fU3-MJ9E;-Of(mOqP6
+z3jI22d4lo=ha7i=+=PzVx%zy4vdT*G+SuQ~+<&_3bG++#Fw*!-sI4(e&Px!v-O0A%
+z2~c7`Fva_LAno6XDte?H*XJBFqVetS+-j&zPh0zU<J!y-xejfagO9R<2%ZOV(d+#O
+z$2wnrjkg8yD&JLxJH1Al>at}Gj$q24#-_I`C6uftY@xq`h7Xo`RkeJ?^jJ7i<JU?x
+z$~yT)blrto#^j}{WBKCl#4{hK<i2Z&6;&KpCgyULODBWey&|ff7cTxemfi1$7~%)7
+z_WBOLS8br}PE*dV%5^8qeUV+=U8rju$(;MV88Xjh{2tfXNW0QhWm}P0>Yo&opCg_L
+z51WLoi+EVAMC4(pAQ?O3_cwbUtjbufT0DSH&wf9`$(96Yn3}XGnpSe9an8khNN~|B
+zSs8IJJz97!mfGBu-8=NXw59dUQd$!6=dl;=BZr#YIg7GnZx)~PV&TTVL$8@?kHB(Y
+z^Q)f0e;l~4vI@K?&YbSC5LZ^viTO0OBq{j$t@3*k8Tr^eZN$X&&i2i@3Wcr*IU=fn
+z`88U1;dC`2Z&+MV{|nnCdEOH&xoeDJN8Oh<@-sNmFUK;AWTV6l3bjRFw7Di}#0&Mk
+zoT+Sccb!7<krzB4S&ntQt{T}8Xt{R_PXg?@_CIT$t~?BN{rjSkd0YJN?9gRXORj6f
+zk$7%sD-9%j=GRQ!hInp&qR#57bJ6sQ)Wvb_y0AtDtapXg{Mx<A<uV@TzLD(`@ZC;<
+zWYP8VQOK0k^Z_QqugxbpIl!C7#Rf2?{tUA=1Zv@VJ7coCUmMZV8&o@+{cY{=`w3^2
+z9Nr0O>Z`$aKns0RaYodcdu`}o@!`w7Anpmmy(<bcQ4<g;^Zpg3*^5<UM$VRNS+yL$
+zBGNGTspF3=%%OObQhJeW?%+4QpIgjB(-gco*YhPzBMsbno@Ba%nR;nk$iv<h(U9iF
+z94E_up3GwT_;S@Q6mP0sH`2Fd;aPR$@ue(hu3rf0w-yonsgFnsM%_uS=XvRl)ua{f
+zF#PIp$7WKRy>W6g^3`kEk9)fK)nSemq$D%94Wvf<fqIdiEl_eZn$>@#%lpE3)gi}O
+zvLE*=UzoA3QZRZ>wHrlJ?yoWTI<}OBF3NfRBK6yMB;8bRp$UteT7A<i-6BJpmw4PG
+zOIy(TB~s3v;pHapDxEBCE}DQbc4`L)Fxk}!3qwra3iX4I30?tPz&)s$0IDrbWZc6S
+zU>|DcmpNwN(+smu-}^9t`!FCCBeRO+yK|T6M9tiiK6L0jbZkA$&RP2FE<nWh%Q1y9
+z*xm0(%KnXwlhuXMEul-$iKVYuzJq4@*fC8j>#o!VfuA22-kl!u&A4~2SoLi?o#!z0
+z7$I|nP^7&hA_kWAJg|%;5}0V(yZ9c!27*!oQ%iT3(<3vtK_ZF?BL?pv;@nZ{5i-yX
+zqy)w^0w9V}TvJDrh+(pbfukGHL&S+E%1aER6#;DR`Ts3UEQUBic!^{9B7jvr;N=bI
+z4nmRc4o>_~`u<-Jg9}PT6jMQbk00@{eI8eo9PtB^2{=Mbc%njx?>|S#tRpDJF)2MV
+z(;Ffi568xa@PvW^un&Mi;5jmF{h3)EoYJ8I`n^_aYRc18Z{deM#v2glhmsVTkTcA#
+zd+Vw>x&v74YP`Mf_r9;Jyj3kF;)}2=R;DrGQC;Q^pWAyrUrXh$=}SDXl6ZOk%N25&
+z2Tw)Jm^P%If#UqPwM=!Ojt!5P9jFg6^uVo08zk1=m~Tc))He0k!h#OOlfpW99^P0L
+zS2+9*x|=q73$L%a8<xKNVdXo>jm8U0OvEpIv7VIHZWu6>N1yuVi!Z+{%%ZJ^npdQ_
+zr1LXCUXDG3Bzh?pO09kfJauPXMotpf)X!c`9y1&^7z#-0>hwp{eZxtUy8ALc|K@AB
+zOr{IoY1mO!9aV=RgmgD!(ZF7(Zup-fWZb6S#OB_7Nw@6SF0?83yyF8q_gCfR8JBOB
+zDV~!xwm_WQjn?5%kcR*WfJ`vo;j^XruCQrt%lg^`CWDm<SRVgusTrmki-T~Qtc*!Z
+zE|6L~_N{~S&nMQTdgL}xelQA)(Q!&EyTao*T|ZJ}=S1h8lTj4;2uYf%(@4`@?el))
+zAgo&o>k_s_+605gDv!0V+!eZjc9ig#L{D4m?|<t+Z^|uSL0K><OJ`i37YRs)3?LTO
+z*1&=NN)>vvgKT^)w!^oc=nVwPoLPr<bEAY)%5T;WB&#!kk7`}Nn2;?|T87A5=+Ww3
+z-~K3;7>V<O!~E`arXqqL$Wn||bk>7d^;_n^5jnc{nZrN&h5^LemN9VG4y~|_^@#mP
+zI<99B{;wcYOq940AsY>rOGmwW2K;{PYOEfgCx<WYWrMBV5OWGKshL5z;=7fCudHh)
+z!XHIO!-5Qou9Mr18N54lD&0Y%tZ&pakSc5MTg`o@{NO+Stcj8+EtopArh00&2X0#X
+z{&t)H<r~Q8Lbd640V9vAi#wDPgETP$l#`_jY)#u~I^I0<Cp;)1DpU^Qc@YIWzjdGH
+z-1F*kiRvj>z-N7suIIP_4ix=dnI<EzpQ~C;QM5I8n}%R0_69g~7q{86JMnF!SIHe|
+zKXo?0H2t&jj3>DXiL1Bh)5l>S+m-t?47h39{g`%#4B0oFGV>)An-?c66BJ}^&>eE;
+zr`8$FaF`RI8P_~&h0gxk^9YjhvdcMq+vG!xp0jN@9%pTP-^fvQ61Ln(5XiE|VKdu3
+zGxg7X;3$w1B8<hyNL}zN#SC%0kx8?a9@{dY9y?{4uD4=mZBTcs6iDVH`TZUG!zifR
+z_OWdO#^@|G-Blx|SCV$<D!6VV>`FGxjwz)8{&yn+&o41MV&rX1XdG<4Kz-VR;*jtu
+zdB9s>_FH(=6nDEZZb1cUpQ_qY@tp9XkX9Arq45KKDb=~ZCg~F7k+DE!mRGn?9JCqo
+ztWMzP;WuEPxs+I<SzXrK0ZR95OJVk9XWi{nSd4RwyS)Aq@EJ${!|AVF09`r3`Ha8|
+z50}+fuC}9=Lj7$escpO?hJV&E-Qwq{TDeCIyZr{?ixVvh-<z~O$QnS0&1#}HTgh%&
+z=YM&IGl|0iWKM%3Dh2B{Qe?za0<_S(Iy-Q!bnc<wCTMTQ-(<nQQ-k_6TvrtxQ)dE6
+z1+`5Ds_+ftZbPa;4YM`99xi~Ks0BZU#{evV(ZcCy@h}VBJmf=YhWlo+Fa&a>9mBSq
+z=A1Phpd>&$@*=jui!HksB|>)!&XZCBhnJyDAx}~pHqlB=$Aw(e1)<OWdG}sUdrH7b
+zl<C(2c1{P6i#Um9-V&#^Toav<lT0_farx=ePKZ$B+Li2Id|+-B3<6t{<R#NU6bHld
+zCj4Veu~vPnKL!Pi`i1*yE?RCl&*=VKxU&wnWKdYy8gt^;Ee&6Bz;T3^uooL`-t5a!
+zRn`4y7G%6u7PN28AA883V2yS6Xn!xEX<+4sbxpsmf5X>c58cC|Hy2(CI>8zCDgxEr
+zxWjy7YJWrj95GK{$z|NyR(3!3(LmTT{@Gb|zIbVQeDk>iyA4#l`<3^@8l24T=w3X<
+zl&67Kr@^{t(8GAlXE?yPs<)VSq#hrH2ZW_jlaSo7!=DaaLoNI=&jCGk>RS<(&<|3;
+ze$k_u^S5(Xk2}5JVf*|nW+lDHzpjaPr_K$S8jDwF0*XeXdiAO6W+-Fhp>P?Jro;x*
+zKB80O0-C$<(8o7qQ(1JwR#KaJRi3Y`MEOSlq@YN)BQg{14D+9#xO-H%=NgCC8hcwu
+zjF>GIM#<6A+^e8Jh5uGwQcQhWU)5*ml8kd_q0oiQ^JItfLpJ5oPAR6(M^(wyywce<
+zm7H%u3Gt#&CdQ|{-7@^dUr(@xOVdOlvHVkP0<WJ=VeG*r9E?3$q4{GIR!T-@6N?HL
+zRLeNt&ATe%T&DCosQYBP=`*(jR#-^A(L`f<Zx-6vHi97F@m+*rA~{Z^7kIhh&VGI7
+zCqCJY<&DV8jl``x*1#{s3+gLwj`~$zr2R6}S3m0ots?t-ji=METTHjC-q;erMnV}d
+z-Q=HL7e5_NA4|t<v$jp(Y0;|RKg0`i_?oTU_d1n%8s*n5m#j~`2P{TJJcQO1+`fBx
+zGIa`7#8i=izH!C*jKT`Il;Vcm=fF_yl$RsgTT2OleX_blt0fykUEevt=;7k)PvbDH
+zb%*8C!|s17X2fZ2XW~=B9<rgiux<GisV$e)3ff}@Nv7}ilsG1LJP%##qS-1%ddWuj
+zUtMzrW}USbQw=5gtFFl?9sa00Nm7(>m920HuP-)V^q#&ReX~0_BBK9mBDmAO-;H>h
+zrCi`w3n)`AZ6vLVhx2VaZfaji1RJdskEO*~C_2tlxwVVWK~D8a@kq0RQD$A3&TAQT
+zcKQ>|z*sjd%oWvx4>9)Lr7ZUXJy{I;Q3N2+RGQh=u;<2{a6G=jM7~MJBmVxYPw&(`
+z$5zZc__?WK#tDxS?WdEcCw_Hc(f1u~^<dHXnpTU)PNo=6j@J*dV|Yu)rie|Vw~;*<
+zjkVWUWv?jSwNhC|C)`ig&-SE3Ds_idf@p4@Ew?C*4ql>+?7j3WVN2mYgBpDd$!DUc
+z3~mqqjn?keq{pJf6UQ7B9O6XlU6I`C#t%N&pLR*Y$c<tAwpD_`ZSZw+H|A5uxe?oQ
+zHjS*H9aC+LM7l$i{z(woh+xJ)X<;)i%Pf&agGrbHtAokRas2><FyKadu%9+MJZ+=u
+z=Tz+J6SvxSY7YZ7%6Rk-4hDBtNNvh3v5F6#q>C-<0+!G&hr<VBys&7ky69IiO(x&Y
+zLMYIxOzYi}yiJshmx7Qq{H#Tis~;`KU{6b(*h6=xi#{)HKus@$#3F7(SKzBIiRaxA
+z8&#k82N%GjrpTLudcF{G9fi{@K4jtSH(iK&IUw@MMT_V+;a)rRJ2$?2+$8fRnHQ^s
+zkPd;}^V9*(b*6WgH^20CLh3$fw)!2vkd8IxSokCso?^3iG+)e&Pg$qM;WEXJ=5TNZ
+z>fXaJa<{;(&^zmwRY{&Z{N)Sci<G0qy$KKTJwH1G8WgY48tAjnVEI>vXpfvO2{`i8
+z72ZJ7q1G$AuhpSZZDSk*`fXN}-&d)<Yj~9AHt@{@?&|GFR5Q%_MhfW^&U(rB^K)lj
+zCNuzZfk-t5`n~hsgaQ%{GeQh4X8Shrg3-3ebuzq}uZI=3u8?uDF@523)O4Kx?1tAb
+zhXf*nbb87aB&~$KAierPmVUo#4NwRU5MWBmHMD0FNKepnt&4ec8YF!=bJegU5^Grs
+z1QwZ+G^ICE-fYW5YkJ2@0ecMnhdAR)YEz5pc{1N_Kb$-pR||Z}{{q$aIIC|k-c!;x
+z74t7kh50_=u-4$YpTYD6J-Tcgw~IwjMUl`p{nNpgY{iaalJZdaC}pardWKo{dp>u$
+z<bgP!8jPq%o#4dRfVvq@rko1rp9}XNhW}YVm+o{7ouxh^7QVo}-I*>j1P&pq60hGW
+zwv_83`ACrR^CbcJF<XaM?JH#oTk|hQ2#*eU3#5)RHmP#H#h?jXvpTRvv7F?gND?}R
+zgc?1W8Tr;^*LDHSRKV(?q01|~&X@vA?tts3Zu_+gUwzCd+;OoF(;xegHI2A<jLc1_
+zngp0RWJtM4ULIdg9_lXZG*RX{1cIuN=-sn(f4h(vhMrs6^{cX+km&B&DyGxr2N^oI
+zeH=N<F=ckmnxO>JL^${M!gg<A==63p=E;tC`3%|u#Cb7fcvDVml$5|v+&_k=SV+Hu
+zOoPzGn6(o}czSx5gBHK#I&)Zl-Ui}a2-wkj)L+nZZr>lVZOwLI_pG0U;FED@YP1u$
+zSaAf79HnTs5XV?_Y`QN+N2cx>N;qXEdE_t%LON*c0ZT~oLhRK`zMY8rE3#%FmVQ&j
+z$E?_^$;S(~CMK@;%umzb(VRzL7mhin%-qD`6<LS~S(STbq*QgVo>!#$vFMOgG}Q9$
+zKE;IAKEi}~n27Q{7a1$<rR*2!SHI8f<=SGJ(Lr5(EPkskii~_aWSW%mnzEh1IACt`
+zZcd|>(iv$o393^+*4(hHSPgCf{_s8?KuFL8X7rsjm-L)TJP(u@J4tMmU0e6!ToG6%
+z29ozoZv3gz6JNo{l_uOHJ`%8q6Op7q?gN$-vy%LTENvLXorB@6<I!*2WOQ$sJj@{j
+zLTZEWb;-SN=m(#uXK^Nm@oh@eTsj}uYB`;dw5@WE^lz`3Nlz2gDo2z(GV1%38tTIO
+zb){^l@XD!Pc@11&pk5JIF-vpZHo<uuCW#}4?sV?PriL>k<rYSy10wlMWn1Fy(Bf#j
+z8o0-m%hE3Av72;vgN`I$2IjFHDI86_MQ;!kzywY=^TIKS8fg6tZsklE<fSpEM-=sx
+zY&i^1RkR*4Fx@VL*rm@w2q-a7uQTy=)&8a%l@+<g>fz=}+z57z-|}4gxXrps1>fP(
+zDlJSYIty3d>+wnJMU$J1yTp1Rv4i|4?uiya3eE)0>~H{&lt|P4RH%yy^GF4w!vN9J
+ziIC@uox=pLsQmE=QrLpW6!Bj@e}StP5WF1XSOcd@shkMgS7jlJpQYluEjv87M-&6d
+z-2-Y!f>sr7><T70X7!JIM4vkGZZC#!2%maIGd6TyuH;ynAxxW}UUe^GRaK2NSg}TM
+zh*7q|t^<0?2RYVNs~&QY?rT!fU+<i=+9D6JJ(Nb<&kdVX&wL{mIHQvvF}$_f&Q$}N
+z$6OT|DC$)wAbO7@S2>Z-@5}_MR<MzBMURdvnN19U2`-MdJW2e73xB9wj!&987m9Q3
+zi-g#|4GQp7Pa`x{3cB@qg!zG~mTxL~Q&q2*Z33)7%f{3a%iq<U)%Vyv-^RQ?*fxA;
+zHBepDfsm(MNdEdfKy8?RUO*qvy-u=W-O7m^xg8x%-3XSkmL3sgb=qy?6&;_%ZV)V~
+zO~>0MJX@+<7cozd2h~7~CL@SE8&VP!Xc@r-{Z;Q7&dWVqF<@dav_<m<cd+=I@M8Nj
+z0-LWn1&JOFhH}=wfh3!>)WZQ%hZE~G0*SNg9Zx9j?sDu8o+{2Rseccgx+mQ0&S3W8
+zJ}_{Cz8Uao4=8e<fd`yTMZq7O_-jXHMy@w%J};HIFWF0hpik%(A60S{<(Zsiapf%k
+zC^<3PW>f=SE1l9D^o<p5s+Zpvm&la&Z10l~&P-KN##iBcNS-IK-%FU>i9~|d)4V3~
+zFeUGQYL@wks7<6k8Ftoik-6qWL1*2V`wq=AachaRf&kx1z;rHJ7?x3ulg9R|sVKC)
+zZlfb@)cqavrg-K$<WRnK!SMTu!IZW;NRoUC9fH1WevV8R2`sRf^dDr_`#%6-K%T$;
+z_3A`^0K7A(&Lt_!xus2FvEQ%H>UvR*@vo6<|9M9gKjc}j7rZiGtmz~S`C@q|dFU>#
+z+kw?~`s^W+yz;M#7QEq>geyEX@i1ti7hywvk9?%o;7xSpc`eV^RwUjyN`4cG@6i0$
+zkUD)Vd4RNp_=U%Hd}PJ<a~^2<{uRG$`Tp6+1G#(u7WBEm*la(CIt#{aR%bWBOU@Ts
+z5^iyC=hVJJmYoRrE(6Xot(R;IZWi2eavgq2&Zk~*iL+}yQn1{oVWIy|U0qMj(lG3W
+zKNED*3-B)hU4ehbNjDhtZ06k#`tYK^FMg!*4+DPtB0p&mI(DwtT+x3U@*38A-Eow^
+zz5W#m?w|Y!X^j7G+69I@PFeMB^pR(BD?d_e4{`Vu{64X+GvCj(u*uF3+<|tRY#-Nj
+ze-rm$DFf|ipLiZnFl4j+8^})2lcx)=_mTKyiJMsRUQMrjQ)de3F{o+M1icq%`GI@T
+zXY)J`^X}CTl?+vok{?i(=dnCDf{u}F0-rAkHriM>5A;F%kAA4!vr+Z}O#^+@_$T|I
+zKQ|z*NuR;8t{&RXXWM?@_9v*zIH_&V9w82)ObqRBLfdY!y0bY5e#re=v8>b0^Hx9T
+zA<zK%wGnej^6^32irefBCi&(%n>u9#^0GU=G}avbf;|{Az!}dqLk|lh+*isN)M-Sp
+z#V*ieOZ{yF>NNr-HtWbjo}GX%3w(Ed^v?q@CkDX<@0=sg`=;u%#gwe)V|~#UI|ub`
+zA`eA>Mp<c@8G2o|^XzWIp;b2Ik^OtGGrD<8*uhi$Ixo+T<-GymjAuN|>#<auhdxwc
+z>R%UOJhpRx3TtyE$21U3ESAq$HYM88FUrk7mH6JHdB#kh`((FMmos0n)gG_N=GjiC
+ztIhs(A928?X@oNLYStMJCLV?i2VRrh9%@N=iqEk<ke@SA#$|FI$}@I}hu)-(k&*b&
+z2^fb$@K^k3vwTx)OX3$_c_~i4-eoCX(o5==7&DaHfwXNOsxjet*`<JK4&ZsI59#~5
+zWG%wM?<+ZRT7TkUqpk99wCg_PI)wS}S8#9)w^=Rr&4?d97xXMbkb{@o^~4KhNABrh
+ztjWK6Y4}B;#oh+G_!Gz8QtNM~U*%&w)AxL+_)6=CiuYkYB;D{w1aKMHXn*=a*MaRh
+ziat1Jn~}B^{ME!fa;NqPP~U?e%5%D;>%6cGZ<gb>&fdWKRX$mMJ;K{bQ_yoWb>BYx
+zK;h_TpsSyNF5KYd96K-O!0R8R&WOaIe2j0ui`)q#8~SSY%-pY{?>|C)d5}W}a@{dw
+zSbM{Ob-C>`+Uz>uxft_J@^rw|A9*WCBfwSeCC?=rFKJ8~)R|1RC%`-v!13+Tm+WHT
+zrVPI-{B8@pWS64s7EA79%k$lK%#|yNC&Zb7MxOWX-wt>=W<G1EouY*;8h+5@Q(FnY
+zl6P0ugV$XJ_<nKjpW`kkT}^3>FGgLnkv<vecfilP1p)YH!q0sn7x1|l^%fMj>3b;4
+z?VZpEDC2Zu-sRn>^sT^+YCcxLB|qAVv==!qnU0^hF}=piy9t&$=NyUl`jO7`ymg6L
+zy!Vx#k3Q#{O5dd%&<k_+JE&#_>XGj>+zeUbW?iRfutjvY?UHz%gY{%iuDqi~dW~|A
+zS;eV6<~eeYnY^51V+5l6_Go>YytGxHMaz3je!vr!`cj;{$8(71z`+FfIiV}(S0HZ%
+zb%-eU+Zyd+b)FHYJoM)elw7n4?lk1%8YV!;q_x35&dC*6b6>M(sWFmr1NHA5;P_f=
+zG8U5+8Nk1BMDHDvx2@2+MiBkxTRz?UQ9*TP-~}yne~digzBDaobN_&J`D?D{W-#H_
+z_pUybvW?n{%C{7*xrZS9uVO4-vlky#vMtl8U;B{9XKEeYzsfH9pld(hkm0)mhpry|
+z)~KaeuONf_!B0Kr23xH?ybHI&PVJupm&S#1pGe81JeS~poJ-5Z9_w*=?kx2BBx01?
+zZ&CfATzFEtYaI8aH`sl#re#^rC53;J?cRNLtdEqRrzanp6p1$(vTj43(MBUiuhe-W
+z&u0AL4teI4v#Eo1vCPN1UEc8%{#&Ge%rx+dSf<?53-9yzpVV+nPkur;o>6=KP2-w7
+zI0gfOH}k<Z`?rVHxx)a2cOBL;pS98E9Tn1)fDC>NG;}Noys|xW9q|S}zsx?U<?OF(
+zTIvPY&~^X#u=2CsCl0Ih`{C}8XZlU{AK>36?*y*ZdyZ@D_Yp^3Vayi<_~!<B_J3CD
+zOjpVx>JHOztG8|9Hxj>5W^cQ$H|W)Ry_;4Gc3+h^)B>6aTqVyINH^?DKJ^KGZZ^+R
+z<~?}_BADbp_&b`f+=BFj@RO!V+fs)HEtP?`Q#4ifhEVq-f~#!q*P2|X<^2$hT}a){
+zdI<G+%(d|y(Y67gqe0tvpViuAbFarO>UjRzkOdw{-suH@m2w67H|W=gbtzl4NS)2J
+zAOo43Y|+0l=H=Pvv(Tr_OA{t^Ubg3kJOP?%1RbsR5T8~oSz!8rC;WtAulls>0PkS-
+z5o!-l;bWDY_Z+98#D};;->Z5}^6Uq}cgj)D<Qj!JK26`hB0i|EWCU9i!_jBn>Ek((
+zFk9@5)`;O35qB?rw@K|2g%e*z8(%rBb%fSC<(*E$x-;R1&doD1&aFI@_qDg!e*Cs0
+zuh-mc_YQOK|7Cq9Gc!3t?!m5%srwqsfyY;E?(xq=S{?V$F<-sr@(j+$$%rdOT#4Mn
+zr5>>yczM-kJo4uvE*EmD+h;8wU<8)+pDJl>kDT{oS%zyU)=%DF@qzBW#p~o9Mjznx
+z7o)$(>(Me7&)B(t?lo7&Jn~Lv4DGG#@L9ZTaU<5jrM92xa3{<89ZPcWlw(Jpb|&zD
+zF7JdOF8ic0VmRk8*MQAZr~YX+X;<q}7;By@cqya!U$G}(%#J`8;ko@q@=jeOr=7Tl
+zyjTEvk-YaysH-5j8T#Wab*>DY@GJrS$Q_7&e^K-1T*>!=<Mz7}%+q^mB)(alWp~$g
+z4(keRmiHk%;yQWv=iOdPpCcdVT)HuvXSd7k|B|}mX8R7U$G`bL*45Nmh`CY9#E^Ri
+z{S^78Iq1x2kHiDHZFU~#SM*-sxJ9m+JlkNqg=jwyaGSYmU-)`WXT7+Wa(-G?UqIRc
+zO%W#UapdVUpsVzp@9eM2U#`oSYxwu*_`u;bUKk(kuk^@^bUgQKBIDETeGmB}L(}^p
+z8zAo%Apg<#seh!~pA7w<e3!B><FD2Funie7PveL2bNZ|M2w%|ck$#2s>j6C58tG^^
+zPJR|ypJ?D51dk(qewS-RK<U9Qxxcns#>=xNJwK<vujgl=DZzVTE~_cw#@h7i`_yAG
+zw{=~RU5qc1Hh5>KH4<l8);o#ii-U>lCEd(UW{R620AY@CUl06Y68ABH|Mb1(*K7}X
+zfm~-J%M<<NKJRO`5ndtVI;nFHiSWMrekZ;@f~++QayaAql5gnv@4OG%v{oeCL#Rut
+zc3f6NhcNGzcfp5GZyRvFyq~*P_Cv0-`VKky1$EFbzt4HLO~y%`AM4<F+5gRQU(73(
+z*#|IBy{WS@|DSB0GrfkqU8YDl;hg?4=)DJe+x}_S{>;EPV_U9mitXgSD(2G?wt+fR
+zdxO11W5*XhMjZO#K^?uUdpmZT&viTwS|zS0NL;UsZQ)!A@-DBsU$#x|O|;tgvp(Wl
+zEVZ9ido;;rxP0TW32PYduQkKng5TDgm5jU{?q2-X;I~5S_!F=mUk*8oX9!c^a{uho
+zqvS7;!;f;$zs<e`F7MM#gj*ogow~0aMO&1A=NMu*e$())z;6S7kvV$588ldhIsGm2
+z9xZ=So+S_BJqq$^%r(%VqE$cq;Y-qV?nAiV5gulU><WZ=_UQvp{VQ-V=L<?-<2qM?
+zFwZBa^~HSV{dP_7pu0h%9QANcq{5b#1BE^lWIcJP6LTQ>*Y~;(RO$KYag@h;lYQ_<
+zJoDOUPYbM-dvCl8vagS7_hQ{H`?Kxhbh#k+A4E$c2;MqDpFdtjy*RpAuG3R7p4^X!
+zoK0D*#U>5>h4(-;JugGv6}pXnoEN&C8E9vkqaDh(WoJuWJIQ)~^d8U6mnVwRZV-A~
+z8Dx#!`aa^Xy1Je!1ML^0JnvArA+L~MAkVVjzo+gtKMk5I1ML=beS)0p#TqH18|`4A
+zMeawEx8*~Qp-lV#vG+glQB`ODIDRLYKoX*k5H!WuUSg1-Axt1Zz@QV70I7it$snlM
+zWJm^*5;9|EqCs(u5)hTNQKM1|o6%xRt!>$gUA9ZRvD()4W4Cr|w^Y$iCfpT)R@&NK
+zYLWcj?{m(bdlQD*`uTqL_4@oijXvBn=l^-mbDr~@bDr}Y&S}0=y9KRwJGAdKgT9Zv
+z$~C-qXp=j-wap!U1ibbhz(WrA_j>^S;2{sKMV->r9>mLkko&A$qtNfusK;*Lforo~
+zO?!fE`VHbd4!@o(iI3RtWP4r%E<9zF!5$GfE3Fxrj5b}I<?fk$3hk%^&V0ER&Aj<L
+zj>~?bx16Q-829pCjLMVq-#`CO?#X~3PC0gsh2yt44s$IW`vi`c#_v@)3lV37m_uDl
+z<1XSJc=uAqL;IYN`+ojkHvE&<0H0i!6Sw3KCT@vy;x>U-te>s|URh@UWdp|7P~P+6
+zF3+P0e&0R8s{exuFXY*6%0C<a+m!zv&Y`w;eT8$<7+R@PwDKU<^@WJrNO{1^_^aqA
+z)^a(h%iSu^?Lr>=x#1D|Oxsd04l>W&!L`8SLgwGB^bt+{<(`Wl7x%ZqN~YZOJ8RFo
+zhwF6ET<WcivwHZmYHmLH+mRDqZ*SbKJ$h`*RRe~=VT^NM{ZO;syNz`-b+|f4MqUYW
+zFISU#ZBES_OLM&tW0}nudv9vmD~HuO74#`|y)JY$$DG=IG5wVRW3B49JR4n}J_{a?
+z{A%F$2e@BdVBzovl;s+O!}tFr+q4ikY_#p&VXRI$gtQ!kW5?fnXk)Y7!x<ud5D(-X
+z+*7A4L7FI4W9>stj<wLg{$*p$sm9u`-?!RCzaYwd0qyZ-NLtBMeewOXBU6r*T5Y@>
+zZ9K9J>v64LlwW|pB0h3I0saj7>O(%?R5&`EBge^u@OuV+l&S9k&Ay*5%b1L?q2J1K
+z{*H5it(;VpGkFXypH#Sf2V=*M%VE@EZx_!)9v3{><CW_ae23Ff&jysi`%v9jOLw~~
+zV%^k9=3Oc8wwS3W|1fcm`cfZ?<L5K@odJI@>lZ@4p8I2@L+S+cti3Ep?pyeNEBA1g
+zFrKF;maaW+oOoZ}mq}CSNjLpg?z>;2;$EZTp1E|uAP(raScR3SFqi(g5xZ2Dv0sJF
+zRAH~e|00#HM1@_+uc&8_sOQhou8UQiDB@qG+LO!i!}H3lFCHU}l};Zptg&<Ru-F5@
+z82v2IVTqUbWx97xjhtA3K4d$5$nRd&Z?DZ8NaNbfrEg7p=<G;l+4up&4f)1^EXDNq
+zBK?DBseA7o${!hdf@5uy8fzS9S-{a1lw-y#x<j4Us=RqVmI=AhJgd0`a)4LyyL|M+
+z;c+re7Shx*&7e2_N$R@H6L%7arA`OG-eHU%!-w_7Ce$&@`&c}yJ9@EufA7TBvr<>3
+z5b^IjC3(J63%J0aCeCn3eNb`E2ibLkCim)7Ap;BDYOgPzjx`kZ*;b>CH=G@LWtplI
+z*A-W(cGOVr$>@&%5&4hn-X2$X+lKxLza3FmocbKmySrmQ^2qZd)`#P~U(6N0p--S5
+z#O18_B^~u3-G6*2$JkZyyAb$$m2$3HYh=1s#wO_Bk8x~}&tVRG<q8|0(_Ej85&xOm
+z{jt&?SbXl-?=7Bi5A`lEMy6u?yTPM+R9h|wzBr!=S-|y#;ZeM}6n<ISBgfoo&hm24
+zQto#P{!lV`!0@U#XHfqye@L2GIrPghG?6KEJi$A7ewJp*JikzVBiBYhoc!2_BU8L3
+z7Qgrc>c#mXdP>$aAL|-}XAzi-ooHJ=@Ng04WXeP2C(Bfur>prG|9odH#zPHcu|Ix&
+zYn(F2b<qb9Z;w$1{4GFUl+SlC|NY)L@on;CaSn-bQ-CrHL1)VpPS*BejWAxW`F?^v
+z{^0UY#~o^J$^k9r0*4>`_`$eCdoZRWT{i0Dk~)f*&sXxE#w%X2mRU7S83DBY3ir)O
+zhxuadfHkFR?>$0iVAb#<jN8{zN&m57&C?%qc%P1$`MK1XJ}^o0>S;*JyiUDGd4G@b
+z8+<(<@@(R!p%>9F)FXaDtV?{<FMNV)m|x*H_2sfL=jhzWLHbF^r=Ytx-tE|REJxua
+zNA-1z?u(_me-Hx?jXApa#gx4N#s@RyKInLLMoL}9L*pc_RuNYhM28Dh9#T*9VbJWC
+zVg<lkA@D}ohvV*p3+jeXqHf29oTyDXk~bjs@*%rEVCn#WPn^ZxIP@>@`<ik;4fl^n
+zWLw=x|02fkUaZ6S=E*(t`csmBy#}0IDtO5D*iM8WeoyKhm)h18jQ2zMhs62T_88}f
+ze^c>%W8xixe~pTlhj=f&C(HRZzL%(S+z9_3eiz!-{%@Qa5$T_We~zu31Ni;3Gm<Yq
+z4fnsJ9R*w?>l?*AL8dv0HT9>^o~_&uq0H<UFunv_i*YG+xQ3rX+B-)iPx(>w2k%_)
+zd&z5fE;e4#8234OF2+5*eU1Tfcl7!H9yu}TLs|YV#69z#-0M&0e2%y~RJ^YtUIyZk
+z&U}ayf&VvA2c~O7I?|rfEuGS+%2=z?QfJ|VGqPRz@QWbbPex>3<w#cwzuhV?H}ZN@
+z)q&?}+>6syK0L!erf}s#yq~HvtHI+IK-L{X7~lTk8k+0m16a=<0&u_TWv*?p#y*Ab
+z89>f04y^!i_Bu^_6~B)F3h}#ai$n9^>jThkejC1gPauZyV-GmAF8t<Q+dh1wfCGS6
+z0j~p&0=gQ&fdQxC-u)Sb1D*x!rauOwH|WsrzE;zm@EbwdI=-cV8bAm@+sixf^)xy(
+zC*Tm=)LDEP-x%N|^Am4NJH)$8Irts{lmco1p$55z=boI>mmazReNg}$-lp(%HSo&4
+z3$E=iaNWy&;`j^P*L_mlBNSuKu^;Orsb4=V_LIOzc^8>FgyZ@icxOC#Q#yFl<GhdG
+zxLxc^k$=4}?)B_323>M3e&#nLC(OMv?xXN-7svg${SUlj?saK;ELC&IQq%R`v@CaT
+z+B;mMi9Ma(IL{`A#h8bTj68ksS$l}hw)1}eUZd`%GcM_+1~M@Doinkw^?l<_>Lw}u
+zy~#>{k9#JpC(k;*hcC|;mI3#)%TBsk(<pJ>rOwe>8YPaMo`;OJ+-K(=JMrMUC(ix2
+zT>QRX?OD%6`<974>*%l!-naH&28?`sd8SXB2DzBmoSs7>eJ<vYAKTKs!hTYFRF}Lb
+z*Qehz*KMB~FfLYpUr~PP@XJ#8$#0Z+r2qS$1W#1{I{b%}e~f!D%HM~wa@oh?9`M%q
+z%iK5NU47S9gZuAn6K!(Ll=tVSIFx&W*awofI?`1hw6AcDx);THmu-~z-zoOIM4R<P
+zB7e4-`-!~6Z{mpfDFiILaKO0bH?n?RDsOXt0P~ZPhrD&<l@Gp>i#~P??jCY_?v1wy
+zygi)Ii9dDufbm0>kJHnWLcNPZ)=67C91-=DYawwLT+t-&xGZz=Y$rNg^&5%jaY7Ge
+zl>WvPr_!_8iLl*^<QZq3((QZpH&V9Wf%3ns%I{t@kft?mP3u;D5JA|0%71pM>__ea
+zQTBg8rJ0tBwxf*~Yt%Eo$5@8&29>5A`IIdmFv{)%^a8#P*u!-Pb%3M8xrpmiahnh~
+z|AGObe{rwMJ7*^Ab8p)3x%O3Icd9V0aYx#(ITqbNH@Fu#PV~Dxr%4t4{&P8g8y`p;
+zR_$T>jVk>()LU!3-=I$4!7_=P38&?}6hIt7Z)%_SQP98_s8dilVDx2KdePj+pZpt%
+z&o%gVA*?GGfOuWV^USYhek&11I-vX(LOx%GT-bB5c47_UPe2&uGV0H!vu^0KZ1P6b
+z{rMEyg4knlPuA)7$141bV-Coenj<>&A@UyN9*cGZXnQMYau1*Lcq2E2a=d%QeKe=`
+zk4Cy@moW|bra5}V{hc)J2B8l-ZYtKRNWU6%l&(FZ_Px8`DF+U`DE}h#(cP%$O{nMo
+z2?NH^ueo>3`_R$hx8Y_w?jca#Wg88l#~2!RHTF)<_ViBfLEX1pBW*h5PLOltL%)`|
+z-<hIKS?zwy;P_bWt`PdSDE|?MJGwO$;{>vqaVOGyRQepnGk=8oyp}m&-2Lms8ZPtD
+zRn)1L`>m<ScZtyZ*<++{MB5-YdZWGZ%D&#X!@D)!_X_R*>=tpqPZ{DBDa*Q$e>TQ{
+zCHlv!&Pk3sv^N^B8W1)WT!Ref*~1ZID(ZWqy61W$a1<TUw5&7#^RRPFxs~`GJ8S)Z
+z%|Tm#j&stT8sqnphWVd%0Rb*;bl5>v#%ay*k@b0POq{{9qr<)Gw{wjDsSi~>KD7My
+zeK@AA02k#>p_B3g`iXq}*5T`TX8?V-_I=v6*<<W49guOr|FQ?S8Vp~pza_@%YWHH&
+z*-!!ccnjq7)!diF+Lv^=hCCAPP{Dwa<9S%jce}Vgr!EiT`)N-BH02TNkFDYi^PQ7Y
+zXVZi7%hb6h*SDwO--mjL`f~ms<XO#6k@jJ+PdNqo&USmS2CN^x)S*3~DIM<d<nP?a
+zRcp9nwU_@ran|PLIzzOz3i7hq{(lknllB-#&Gye9-F}9%eY<`%kQiqiV;pN7W9C>W
+zL*6I<fHlT^OJ;cx^?b?pn`7<Zd`o9Bi*`)F_on<>=#0vB7V0AO!~1%TJ>Vn#oHteb
+zenMW2y1CSObf&P!0RDkCQ|I-5#+ABvBA=~)1dp_({}*-d#|>Q9famP~?Z^qYS`TKU
+z?KSA1id4DAJHT^w<iS4Rn%e=K-HN>Wu9Q0V9LvY%S#5h4>-#NNT4%1WkCSuU-=i;I
+znrF2+9c`}pA!tP5jeW9)I)=KupSarnV*~uqAkDmf)~b6S^@4$`nW!Jz_I>c<<+ir%
+zK=_$y1IC)$thprzd3sTgyG~m7m9kEuz8-IUi|Y4(hJ18rGV3Gl|4b6}jC7t}gLNsf
+zl@V0<yMcPG$onqf?*{EHV^WI58F+r$A@17?odBzU>d`lOq<{FYcD;r6y=4?YcD<Z;
+zP3B5HF^1)U-X7<A)>dX6_x%Ui-=4Tz%@Z}|evn%CRga8(XKX)yP1R|!YUe%3*I~=I
+zOv>OwCrs>T0Y~H1oG_Q;WUkd`*{7teH4FYHY<XNg1|JI)K7Qh`@DWk?u+!^Bz{lI@
+z+sb@7)^gBa*@O2AdrV(Yvb0OcVJ`|AVEPxZ{`;wo9<t2(tMMYn0chql=B^)|mAt0R
+z#%o?ZA$d)iCV7y_Ykm&@{E~BdO_|~~N3r&lb>SYzi^hIYho2i8l#YwIQ!nn&YnfsA
+zy~cHts^c)m1oLHCDZEF6`aW}lI>R2JgT%ed5<U~I^5dQ*@*IxNfy}0FO(V@S&wllL
+zrw#Y7o|WUFHASwgJAN~ItiN=2^jN2k%u&!wgnN+_IfqMn2TrHFWYd)>OdT**puYQ2
+zPwE2w=0l19(?Z7DV?6QukrV#~Klbwr=x53~+ehT@@2cO|;&=F@T;o4=R?3%b-;aQs
+z*Jck0{d>wH3sLvgyyFKyuO`o~o+a&2Cc<xwr4x#m5AB{P?UwbTURin89J3zvcj9+<
+z%ILdx-6y1M{vy6diwBJ6iBdlGVtj0Y-%9SosQsHPtxo8K=FT3?r=Fc^;iVu&o&|gs
+zX?I@CbAP#i3f`3p-jxbokp{k%_LUDuGAY*${z1xsUsCw10p6N{Pw!Og-p$=-Nh^{s
+zxxkn1M4kF=_d;(6?sgQ9u2To%M6uRiM%=k2zbr)GdNCJ;QPydF!02&UxR}BFKPRMo
+zO`III-4Aj*B#)j8e|=0jj30sjKDT*?@DYQ1H#1dUoA7-}S9>?Atp7w_c_)<oe?sco
+zaJ|rQ!qT7K!8JYYnl)|(JYf9h4Eo<A^<xh!y~gYlQigv?8%X4vrOK_vw;Sv8M!!RA
+z0Ym^>{8Dd%?|5?kzQZr~RQmAUxeloS+ygp*FYk(S4~ct4d-0ok8PBehy2GdO-HE(C
+zNXIu6`L3?RBW>PsZ$MYNQH4zotqnk3DZX9G$76ZtbP#?g0a3sXfD_;W#E|b^<ar3+
+z$AO1z_rRmwQ=<=Mxd*nTxVQFUjr8ai=Of!_=f>MC<A5F?;GKnT2W@ByTZb3Z7Lgf8
+zyAyR2YwmlDsa(rJmR?D_H{%^z0YC@j09=4{fCeZ9oF3=UP63VqVt~Vd*8ndA1_1{F
+z`vLm^QNS)hA7BTd3(!qJ<kJV(0q9ow?gvBx`^L+7mn)l(IqG|f`c78gi`93c`ev)|
+zB=x;ieJ@hq3)S}m_5GCkPEg<R>YJgy>FPU9ebdy}slKV|o1(rB^)+o(&IFJCB<C5;
+z^Dx%MPb>$HXKJ1l-W^$iu<PU+`GE^HPh7`u9lsIwkf!>Cchs3ruFCH+^_`-=pHSZ{
+z_5Gy!W}5Yk%@p^3o!})sBT@&EcL_Dxh(UQ5D!VJDjg?B;>}#d{8n5Y}PMMeA6!lG2
+zU#I$}sqZ-TO;_Ix^&O9Ixj4^|zdt2(@H{DWU!eRhRNsr#H<R?Ob&EJzBEED}f1T$N
+zpA`2Hq+hN|b1A;#Rlb*VUqQJi$va}1+4xT7xvseXCeuz<X)jUVDe8Nf`sS$bC)C&M
+zqt9#6t@yoTYNCI;g`FB*^smg@qx$zk6-GNaCovcCP6+P;fP;u{q?Oj-qeD+BTXE^C
+zzl8l*_L<OC6S^N$xQ|-s8rTLN_yqSOzotohI_c<Bm(sJR4t>wX(q?XoE9&5VCXVw#
+zl*2L4vW_ZSlr<q~7l8L}Qk2eyQ`ju(iSJT&MYk0{F6=I8uKGCbr+)aZ<iqdVY|nk(
+zE9F1B1z$ngYzxolxsO_+4=9_6J&F6Fxu=w_w7O^JvfabV#oR$ZzNsqiU8%bWYthyx
+z-{ro-fY7H|E6!533Z1o$@5=l9Y*!E4<&}3_rHxq73+)1lyRcg3%y;Fy{<(L>ot_~%
+zH{EC4^sbzD#tD7($HhI8IT#bA>Q0F^_^@Gyr76AiLh5LEWLcNKYuY}zPn_u!AA6M!
+zdfDKBA#8GZc8j{1b~m{{#C!@)^~=1Y@{Sbqr#!j=<!35;8q9~|k#{q)(T-h02cP%Q
+z%j47`-{~FLw$n4P4Ycw=kFrf*>Z*sl1CLIGKkuG4Q}6G1Vvjs?t+>0kRoIU5(N=<2
+z=F2*isCd*<rR@Z_Tkat-Zmw6#Q&%5P=xk)VY<YRrIg6=#&iU;k4Sa>RWl=xUdiEgi
+z5%wqU%2Q{NXSq|^&y=UNexXD8Y2p@jCvUrw{YIKczq{}yuj8B@!CcGyJu2_4F?koN
+zyfa0=OWjQ7KgX8$Mej-(VF|wWJbCw$d6s(A-9pI2POLHi`Pk^ZbX#6$j*SSrS1f-B
+zZpsJDlQPDsW#~idXn+=q#F*+ct~<uG-gu~SAngKAG?jbMq?3Ketb3_XA0zE{$1djG
+zGHq~JQ}<ECU6gW5ALZM}B#nOoU!Jk(LN4lwJ&E7rRGc@CNt=}EsN)a7Yr4_aK0rUf
+zx{pIW*?Wb|z&CsOZfX?%^4|2riuP9xO&0s&Qg7oTVK3J=^r2YC^cxYxkFb3AHiKh`
+zHauN=Pn<R}xZX6!k$I=O>e$HfWg5%)?y(NB9(h#SNO0e4NZZK|iG0#s+eCVozAbL%
+zk*4w}K^}aAw^`Nsr90$(u3V3l4>iTp|JR5-(=m01g&hr!*CckTO<Uk%-&*J*TlTZF
+zl+9?Kaq;dS<1(L~gss;{61JPCaNk|s2ftM0BhCj@KK+S&a@4s&ChbbtaHXH>S2k$n
+zT;o*tsZ*5A;cVb8e?;EDvfF)TeU9BB&!woZ%X4A!pO*)CcM3S|-W8+0=ka}CjR_sQ
+zM(Pvx8uP^dUayfA>NV24dktq_FYTNhpDpxb9u>NRGvPi)yTqzb$md_I<+|&Un8UL-
+zHXiiwyOEJM9NLZ4VSh#1NM6Hpz9+H<xxR&LqOBY<^;n#-Jw`gufV9sHT@Jq~!XDB3
+zSXOjhEM<RVjC&L=?ZJ4e=U&uxTg)l-iiX~OXXHeVqQhUHj5X%nGw?HpPjKB6i@n3M
+z4q5M?B2KP4dmIP6zk>SwT<8p}r7hPdcuy-P^bWj2kA*bxixEj%q^lP5o&)em8#>gd
+zc;#Pc#|HR}J|Xa#zW-}6o)7T81Myi%ed4|Wp$C!$e5OZ%)BO^s(}~l@$HaL;o)}YK
+zFw(u-g{}#8e_oiyJ7N#T()6cd=~#0Tr)k>F37k5$n<P#lH*mi^6=U-<gykrlX1O=S
+zQh?L!7{fjnOBZ)JwO449E6dd!bJ6~!YkMqJZ;L%fJgK@IvEgYv`UyCCLfTENA38;w
+z9d2R!>3A0U8S=#w&Ou=dH-V>Q;~>X24krHv<A7&xya(k0FYwSV&LDNafM<-ovAjg+
+z-zeFF_wjpaBMaXL@iqB^$<In4A2|WdN$NP!R>zC}OdWZzyiiwl0_~H(nRRj4>caWp
+zv$i^z<?k@dw)T0ae1c_5JNm<yh_WBHmHlv{>|C{v!TOoDjw=5`{Ft`kiK9w|qs2*Z
+z)Pp*<0BCpb5bf^puAKXehNDm3p`yJx(ry9rD}6`Uo)mh9!hX1WEA6@^Y>6j>w#EUY
+zEhKFeQ@)V*&wJwB+t3Cd6L;FAoJ2k8FB-z%`&i<BvTWC*2KynsyT{1t>k;y#9>rJK
+zQ13BlbB}U(Cfe6x!#~@)_fBaqc@TA=ZFcIJrmFV^*cVsY=-`S!LkB&&l!-XUJ}2(P
+zKAz~$OKts`t@<;~)}P}N{dun;=v>j0*>~roD`DFm?Rxz~*?<53q3XX$jzk+@W#6%l
+zntDfo_hkoPSMu>%$VO{<r!EzF@_sXI8%#Rr9hh8zdb;(R_=r12*xkaK;-T?afB4-s
+z(nhDN=3%t$iE{NDWBP&lu9~<*f8B5oE=Ia6kuFO&(=C?i^u;Qj{GG{kv=K}j5pM8w
+z_YdDm8GPT6x{9)XPN75Y9eP8|9kJn4%D%6u3!Z{Bsls;JeFoMl$44+Agq>kw0|{-$
+znp)F;F4jD}Q&gzc(Qe<6xI>`kW!6E+j3_rXQ5TF8{STtwn8qda)V<>T-`+;QYccIs
+zKSchUhBXk|#&#YTzw0R<^Hr!}(=M^*-7d~<K2UaO9B(Wa_nRG`?u}1yW1Wa~n9B<}
+z)17Z*d8>q-NK?MsIb!XHITrS!+((4&MWH-{&ouSEsBiX#|AZ_J-tBm!H!keMy6=rU
+zrr`HgQdgXJQhCSmIhE&oymL4v&*Rb#@u+l8mF{Vkj(67>Mp`!YAC9QJXsi9gvhNR1
+z;5};O$2(UkWfS9=(;OaGbW+NMiNoEldnP&XP077yQo1&A*l`(t^Gko^kpg!L+){V;
+z5#zIlJnN<m&H0P_HJ?CRJ>s4&>0r0K8}HsJ_6CIwdGZ49R>OyQ|3p0#^ZvYAd#=IS
+z^EuwR*y7OkVeRJGBFB(iyUBIiZkOZ{oa-0=r<Ak*#TXH`Flc*{_7=B*k8J6dI?8v&
+zO#9q*!meUEXqbAR($4lOlx?%mt^db6jzQYzUL3!RHn)U*?mS_in|4pq?CD}Jy^|&E
+zbMKV)xi#9&lxxMxEmCid`eSZITf$Z@^^!g4!%XTMbjL5?I}e^p(3mdP)c<wX($N$B
+zZ0pN(rE7GbiFaX}N8alw1x`i`>P>6M&9_cSdmq3rOVOTN?NOwS!8hNrA)ZT3Tq_$1
+z91C0{ugxAXgdH{1{of2(zlbWgQiZ*&{4Y`d?rg4KqQl=;{;QOKuJS*m{MRf0bof&T
+z?%RfGn=d-)M%tC5eVq}xCZuh%Ea1!Kp?!>eaUYv@Zw!Sqsl&A=F=i@xM{Lf3yvxt`
+zF2vo}mBZ8{;e1fW{TA0l!f%0)^&U#Rdvk#pU%l~vQ+XGU$$O^Iv$;2Zff&DB=k^*e
+zs<>B*J35vQQl99yJw~0uH&*t@w|r>R!A+Taj}bEa6ZHM8vj1<+VYIh$-H6mtXMcYa
+z^vCgX<fwXA25q=t3{F^|=vhm@-(K%)6~3brC4F=lDj#)Eonim1-mLkfIPWAsLH>e1
+zdqsQiS9zbLUChOl@7dP=#60_-LZ9zp^WKQC2f_O{!uEm<FXT;5v+cmg%{D!+24N3(
+zk70is=q7RZHt`#H>W-W51DzIjo%_TZ_0gkh9|`z61RlIVwUM@=_7<N@59x{?XiLbX
+zhv!AT&!vY?v+W^o{OfEB?`pYU7kK?D`7C6Eaqexg)W&r&$<um`pC2WzZlHeV(6#Cf
+z3CQ<x?lJMqm^QwJ&Y$~=i7D=vFD2chehK^D^rM}8`q93(1M8ySiuu<o?9V?a_JyS0
+z0q=)%zw$>%l@5}!wS7>%7xdpprH!8DigtMaAew|9FpPJIx*-32m2Z9}iNk!ZQTYU^
+z6P6?naWGrOS+DMi|7=9+29vHy-#dWMPxBrwc+VO@3!n?IL-Bv|By$d+e4g(aFs8WV
+zotsL?xyvr@H_Z3SR@6dX^~n7avEI&;_C={9Y^HUqv~!WxJJCv;v3zvegI8E-xsRXk
+zk~TcuiayvU+#li^kLUQ*Q!)4Uozq9BDftW2WUDnusoL}4-hx}bmB#Qw6<((FE77;9
+zlo=B?cZCf_c@Hl|*}QS8_guIqC-ngO4e<t;SMIHl&(Fa4C{=H-k?sm0e{t_1)w?R@
+zZ2VztoVqU)Qu$f$VMT|gAg!?bH7NEP685<!B*t>x5cjcN`qsF#dAd^A^QDar-c6wX
+zjtk?F<JSW@fpvZs{eG%y=DWKfM{wSBs(Dk>b{pnBXU_e9B5h6KI;YPF>C!&O6-T8l
+zHqQHthvl7m%@cbLb@<Ns(4#|gFGucGkUsl{<=!6ML&H**aH{$8)VA*)Q+E7@9bz0~
+z&iBM7(bfrVri%BJcB*$?)E(^05U-}&d|wP}F7Ga}rs6&T^`C#EN!wr?|IVZGjPy#r
+zS#{5MbEeUTt(WhR?GR&!_XzmD%lpG4$B7fJN94PD4=47Oc@{ysNKtpOxF`FDlB@Xp
+zTVl-jiExJfOxcGxT5a_sZPBIMY|-)Fq500%(-SnL?@9Cv-|BKHyW4D+h_7gea<5(A
+zJ5$*X$x>_YWn*-~NgtC`y}nNSl3c?p+i~fbPqv~zxTnE!k(00=+;7|kf7+U<RA<Hc
+z=!2S_a$il~-z()TtcwfX6L^L<OuOV6T3;;H&HFmB;ljboq;8Mv$yjPABj)VRj6t@G
+zrMq5;@s7BleZ+Snoc5P~5R4A}@F&RcI_}dw5)-zi8u!Mgy#TuT$<CpyV(>f6GYLCI
+z+C$P#k-QH(^yEscn+GQtv>~z055C1a^VA{G9yUIGRGnG4`h-m|^2&dXkDMrQUuFpV
+zA<}mC8)qm}gZ{5Qs={1+!>1yiGL^J+udwMN^qH9!?Mu}&;;fewbh6E{RlMnuqHT{A
+z>PQRx-8wApPYyf#P<B+>+N3@*)23mL!P4!GjL_q;%<g@$Zn+mb%r!jw;BwBd#gDyX
+z)|uzApNq?VTxo}2$Of4@Z3$t`pQ>fVrCl^xevEZ=U8deAivH|P$j-l4G@F~~=YJP>
+zuToIY=Tu)8sQzxV^>s7)I-*T5Laqr$#CyHir;Bu7FYZaP?;#(=wtx=A{VevkqJb@5
+z;3za6eV?A_`?T}*J^K9$?$LU_5F@S}-e+R@==(I)_h!FuX}nDIdkgw{0`-vxd*faD
+z1fvbVXJB#ALb}6R`f}j*V##-goqotqW*<m9=*L^ozr4pW$<_zrewJ&Su*3LWq!sq#
+z_&%QM_afro{ixB#{-y02$Gze`mlNm*uF1{5h<GkD+SqoNGwyJ0i*;$28C#I%&bXvQ
+z_Cu&~z-XrZCzSOR%Hmrt;%!a7Ef|+PG9@QEe0<1~TYrRdx?D1^NaOYKM(wd<jau(9
+zFX9s~<1h|V)E$WX;P=nUc4rUVyw~@0#ZP;7@^Mkxg`4><_v#|ULe|9G5uM~xZ!?<b
+z<Cv?yql>daDPPhyo=A&yxBiiKMj(Sa9(l){2m47kY8|O7xe;r%bT@6bt3B&aU~J~!
+z!+rFAsTUL4Wz>s0>@W(?Qopoc>|by{ntY{ju-}+yJA2{Wb`o@a(q;p5rNXTi+F|Iz
+zM!8%gzGSnHO@6mDF7Lu{AD-*|{e5!IE<E)G!?d+wmXjmw7=9sPbD#4C?+(sU??2Ig
+zs9B!5&nVsmu-P)G)Ty&&>HbW|7{7vbMLJEz*KN8+JoBb~gDI+>=9tvgxI6;<?gtRp
+zS-lRe1mMx-+pS_9t85_)n|7l9eF?kWrmeciMtFYEFKs(XJ>5x~d)s93W)1T3d8JI{
+z#Cpf6=4RSkiw()M`n%ne;=-mu8OCxM?>@@6UB$W`v`X1|c3i$ym<j)1bMH^tX62k{
+zzS$<uhrLopO;fgoeq^I}%1OG)2V<4z@tNkCGxK;oPMcwUqRmca&w+D%mXh64)ZFM%
+z`-eNw-dBd0M$#Aee#!=U_PYHj>m%O5LH^xnZ_nU;#!|%12945A_ua~FX<10Vr)cKM
+zyhd^zVjpR$vrg=73frA-`97zhapc2vyxWtqSWCPMx(4<6GQ!sA>McUhz*R$Xe^Z=U
+z^6f^zMT#G=e<JEEhV|#$weoEsuds(M&f1Z0P~AD=n8{Ikj>JWoaz8>lEGYXv)=T)U
+z66N>M9%rcA=;QiT%&XmT;$k`DdA1v7Ua4v<IMtq5J$~muJYeLfu)T=0{|iO~>YVcw
+z$KCygwAWWZe2cL6|CmvNd{W&H%Qt~l*rx@3t{Gm=^WbjzmI=!^aaP_xHSZ$5T+TZf
+z{RutxLpI&R0}go~_<GdWl*7wdAIyQ5h&^7bY}&-{QM#RITgo``o|2U7dq6)u9%&<y
+ze&W4Z#tq5%i<DgTddzwUg6-y=&Z%hkMDVhXA$2~$_o%crL!8$$z+XY*sf_E=w;QG1
+z+YPSKb}=9ByYIhW?7efWn)c9B@%vA-RiO<S=9@4Dr$>&Huf3}H+C-G~P0-eU8y`8q
+z^HJK&M%Xh5>lf>hM~v~PUlwh>s`-XE??c=^$Ud~)30~k}9kAAL^r$s$x2yNqA5q88
+zi?^8X5qH7Zh8Co2jmde&j@vs?U#>;%G!%(R8rr1hAo4TvHmA}TI0`;?3=jnz0@MH+
+z0nLClfDj-RV@J@w%NyTI-3M2%f!b#N`w;nAUxN2t=g_9C*)bq+iAgQfJX_0$e`Udd
+zQCSMuH6ZM??WR3p+RRh;;CwtI#2Wv*Lvme{?tN@BM3>YwwN{}1_TR@W9<@@8HL>^h
+zhWQQ)&!~3mdkmf@+^zJQM#@s+6(yV#CEZR{^TXh!rmgyig#PFO{FeE5(%wQQ_cgqd
+zHit<wyLnek+!5L?_>hh-?^cAC%6B4G+1`WUoVDBimccsoiMM_qGb+aq7+q-FZlQN_
+ze}cD(cBpi`V<`8{9y!LnnY+Y(?qfzC(iy{2x59;d{uGmUz9*7?wJ#XIK={#l0}_{F
+z4YC&U?ES_j*2x<iw&QSlEU_mg@W{QMr(@QfK|S&P;|7dP%GNj2jhh-BzRrgGixuvp
+zkZnJ>C_4PkujD<D$T-PAuN{*2$cV#lAb%4V532X0eTerc;?QpIc3at$=gJU9JMPT)
+zr^uIYtQ5{0NZ1@Dug;+kE@X=D{z}>?rOosKp2=i6;*+wx!%vZq;`<GJOBL_D32qbT
+z<So+$Z8+j-S;7{`l$W2k-tEw-Z$R5-YHW!)5#x(<`<1r-x|V#^wOyQ_-EvyWyh4@*
+zeYim%B^Y<Yj;7kXXa`SSOxa@EfU$P6Tq6m)sWE9c&g}Plh%<eUuvfO%v?G=#dHg$w
+zn>$zX_iVM^#F)=Kg!(ok@6EJt9`(jg+v@ox?&s3(w06_5?%Hk?pk9UE?Z#I*e?-~l
+zn}!d;z0kJLV&0{E?X<+Py&Yv}hl_h>FG;>9>>FS#>~szoul!1$eQ+;Wohb{s(WAzo
+zON~LEx9iU6&>erkJWM+rQ>j;2H;nO-23pGGIAQ-x%98swr8Zj~JH=kBY#Z-mWK&)e
+z_mdtIYdII{G4)q!uieA<r=<P&QiSi(-!igL|CqQZu`3}j?w>PY9GPUvtF&ML#IJZq
+zv|r@8n{SjurpU#7k^_jO4j4V?iwM%~)}_tAhtclK)%&^Ltpk%^I6E@sJG5P+Xz)g{
+z?<&g-%lAu!ZSX9Yq!ZSUJn1O%IEZxRrTd3gh&4|A@B!rIq0LH+_kQZq$J9KBb<!?(
+zZ@d8YIr{d<iPMk;b^&+y$7DVFJ-sPS)aP@tKV*4}v!cVlMBH8AxBv8^e7Ax$zDtv~
+zLoXQOz6#_s<ncqyTm2gQLW@^qN3m{ODePA|)ZT~PuBBrzIw@D{nd}<unVbU%DSO5C
+zwtXGt-GjDyzAtGfqHJH1ey;hIv<*C#PFHdNneVvRXz+{3C&)fT`jUwQ;{NPKsPEx>
+z)H%PxGjK5Jrn4iNuN4m%u8CIvUV*ZFXXQGLbnZr3B`B-^za?)q?*noD*8QQ3yAyeg
+z6guL0`Eq~pCE9#P-@1_3E!0POLAL24)gIco822lA@1^EfmORb#FY!(n_$qOJ>}|<g
+z|A4;UCGP!shdv?p5u-yb$b)w6=>Iw7Lz@=k{!9LTV8o(fp5d6hE>GD;E(H%FZJtEk
+zUxJ+R65qEN>@^0l_7d|i=J8MRPKRyI?4-RjlzSR7#xuMxNIe{BXJwdWUjMed$G6Y6
+z--SMz<kEX4Z$&>bj<U-#?0H-AZxhFIz4t}2-uof%2dR0~>}S@MHpKF6@)T{r>$FpX
+zynd+GWt3sKUuW)__&(>*D4&<&+l{a1b8?*)!Z-W#(vHFw_;U@A1;4u|X_^D>LWG@~
+z2Y`(8KKy$C&jR`ZuL5ciZrUn;{8!vZR(s2|Q2;*8H%R3ed{nfVXT+&*%QeHd_`Z~;
+z0jEO0H8Z5v_c>$s7%6k6s{QN>mAyR7Z)w8LyV}n;Y5wgqmfjun=s=yg1{Lct#cR1|
+zDb~DN7_#ESlgBAq$kHDcdmKMLBV}ig+P5_K#)0oi)Vmfu+f^Uu?^CunY*znD?j`fh
+z+bkv5jT7&A^&9f7==z~7%)=AZxn>7#p@Lu1KIlTEy*k0K`VHQ#Aik(e`Hyc&`Y_x0
+z^clG?N?h@rVZVDot+loq`#`_@kl#PNO&ieijS#0h&)B662)X(q${{wo<lelg<Ic13
+zEo12Fa@x#&+tP#QxTJ3ATI99sZF#oL^9$}J)Y$eC$gf<sbiWn%cIE!=1Mnx_NT2<>
+zw5LkiJX9d>{E%KlpsUjP4y_O0{WFx!Q!nyGI}biIU>y7h0QlI!TY3K2YdE6O;j~8b
+zUU~j~8E_lDSn|2u+{cODXSAW*e)#Rg@7A|DZ+!u4?fVk%MP+Hbj*YmSamp8zZ|(*k
+z7dFUTU&Pv@T<o{MGcxjk2kHOqZE3GzSe(DbhG_?dGCS>#X9HY-$FT;bEtC9W$y0xV
+zG~?919p@R&F`l<ZP8<_^Si6ke#(U8(y9~1qZzJ!!z1i_k3AxNEcn|F-A4dNjHs35m
+ze*g5AJXc<$?5BM9ZF%QQ*ttO1Ze5;7i1Ru3y#{S;2YxTd-Z-9tBdrhNBU#Qk(^KZS
+zMTMI>huqg6sd2_DE2Be=s%)+ao=|14R%QP^$}Uu8&p{aXk47})>qWVM<Er0l6ptd$
+z*_kJKQ`a?)1iyNn{SIi+l&&*%rm$urKUstF|M-^VA$Pnj?EsGDF~^T6{p&NMc?{1w
+zI^ULi)f3*b*2sJ-(BwbSd9pq{>k#`viVt!B=1@0f%s#O%$aSpN__*Nrce5O~Ci;l=
+znV|L|{?`Xe#tQA2%=A6Bv3H@`_u?7PvEM^Bhx|ZUj<!_S+Tu+Rx&~5~$o0zoJie!0
+zW*e&|Y7QXI-z9HA`h45oBKNjuy(R7D*w?tkbzvX)|L3KCb^+hsd!KeXkREvsAk7Sg
+zuYWlrd8>RkQSwIODLP+{;Zs6?QtXe2xA0tu%e4{vWcv|`2kPCuY-=0W3M){?!A2#M
+za9`H@n6Z}e2m6H{k$E3O><eIS{_u!=2T|-ffIoic$jEUew~4hF$JJ+#$h(W5{*&a%
+z<JH?N^dpT@c6$`%t_IJow9nJRrhQLZmU^#f`dj9^t9{0N=BeKG;<+95_J4tKV(x!>
+zfyXVj`!e4dk^23#>-_z<xDO!pksLyv?KWKcR-rFs;*sM*(7L=6G&FQX+T*)```YrY
+zNU_H_nQx;DJ|fp3pGA9~Rd;+`7~8oV<7!WieE-GY%lX25<H@PgO+6y(Hx>Pqqulgg
+zc0|5qLHg~0`#+CZI7m@?cf9YZdHapuy{UK_-_KTiGLIgS^y0(!ZsdKnEx%k9_8Y|q
+zy85L3?Cw7Ey_e|lrx1tdzo$Et-FmDUPjUawbDu$*!p9&_>#j$PT+sG`-%ELzZFmQD
+zp<R})Ba$aLrgX;#^9GDTq)l14EuMw+zkkzOqd(03lt!sbH%{#(|J?^NykD%}eM3)h
+zUf?=Qt&8D5h4f|aJ@dV$pS&q)yIkITH|b2w-!H4Mt?Ev^SyuB0Ql|$p`Q%h(+uf8e
+zYm{7@g?dl?J!Ng}xV?_6KA?Od_X{pk`I6^3)mZzQDwA{WtC*`Czn8qwOkZV7|DL-4
+z&wB2iD&JI~e3Pw-d68%L-!b2B(cKS;^|m;FpbngVFW;hghH)=D!Z+ORGlU(nZQngM
+zwocpMwCsgz^8F}5Yk4Lf6rS$}p6&bhEbH*d$SZt@i8ix&PDHu;Rk;6Mx&IYz+NxW;
+zgR<h9;crTv7>otZ$yXSM)t+_WO}Xy>mat8~N66UU<i5Rp3v4K>`#$6BA4g6ITLi=d
+z>ch3o>NgYb_GNNEk~Y7Y-o)o`k%n(Oba5XP^z_c}M&tY4KT4YVEbl`g4sD;es`r?l
+zfV*o%-nV(_cXFLc-TD{c=J?3EQtm@ujKa$nLneCIq2)Z}&|Zgs55CI)l+!i%@4^_O
+zeE%x^j=&x5v)*NrZ)M1F$};lMrWXM`e?P)8F{LL?`OKwcg&A*3USEdqv1=WoeEH6)
+zH*TJ>*Ml~8tfcJnsFA9zrkwsA^PExMhkumoH0qHFyP+<HhXQQ^-+9Y??M<~G<mnb?
+z9^&now?@Pr&D7}N@P+ON#JQ^Z=FgX=Mu+abM~*M*AF-d(-sG9dqvE{u8fCva-8=`w
+z8u^Wp5&5=ipM1N)$@ibNn}%M8|7+yOecQzx*>c1>S5MV@sJ{iddDlCK-=K^j*NpF}
+zeTE;X_LyxXZ5$IiS&tdtcti5a%TTY+jlCnbGCH(vrJ9S}a!&JtXFl|%+()cLpO<<i
+zK9$Vz;xnixX=y;*MFl=Z{e{l@D_>GNRc!BFz#Hwhnff_B4@;TZ_mEs0c>h7l$vkJy
+z5Vmn;y&+G2hx1CB-WvNp@XNQ5Qruf(sS|~5@K|cT`kf<x=TP^*yD6UD`0wv<?~?Zy
+zbG+N)W_~Bco5VMXwYGWRndbu35u1p1zDoL{?mPGOJdYZgM=Y6myxLQ{^9{AXt@fB9
+zn|~)u;RJGiD%;F5zleCRDjb-7(Z>5m;@yBp1g{^Pck>(8zANOUXJ)-A@BXE!oV{gG
+zBu@}0iY&4?i!bgji@UqK%i`|tu#4;BZVL?V?(XjH4$I&S&dvYgF5<lp@5RM^ndqvl
+z&g{yr?w+j7UnZY<*==l-e6G9X_8$-Ask=CW?G_TF1tY%`{Oc23_LbERtnRJe79PQD
+zeWM7j*mE9E!@BrbhTJm~htI-YiMfLFg~Aco_iiuo*igy1(930Q;jCP`RQpw*3hlej
+z8`AUhm~qf#E79WLjiQg4tirQQUi3q2Z%1i=$P$kozT<YqxLEu_{M(dsJ06X5cf__R
+z)ANz@Db<ev;)ho)XD!6~8}K&r&h0R6yQKlvR>{U`uA{-nKV%uuhP9U7+@&pNd)3oY
+zo7=03n=CK8wZ{0C!p(%RP}zRxP4w{7aNgH;cbfJipCaT3?y?F#jwq(A9fBrJjK;e=
+zBf8f~)6=<5{3PTT(_A4Oj~vHumh}4gU%UJxC#bop$Z#jH&I#9;HoRu;#f`YDz)IZk
+zIx$e39rI+#Bi?xl+a$;E6xcMv^ynM8V2%@l&!knpsBUwVea^A8(ob^;_<g70=!f?3
+zxrW<Lxg8IAlJ|#qMQEV%=5M1t%L~`cb_xTP*+PJGz$QNU-T8Xk&IyjBU&Lzv^NR92
+z9v+Wfq6^M`oA4#~V_CV-SNL=Z!9a^KGqY-XhkmN#mo)wKNvmgY=VarcL9kwTai5z$
+z^-=kbg<+%pp}+EZH1GB@dpPIyHtk56=f7rL?iqK2ghyPO_$*)CXKBk}(~azPb<zVz
+zUXx2#%+>v5gtot2+d)n(_Q-u*Z+;su(d^gj%roH3Um3P6@95$BLe4qiodVjZ1|&O+
+z_<tREW+1%-x4mynuOhlgE;Yv!QO>XbNHRG|5Hc;AA}oImROUt2?`brkUBL{EwK0lw
+zEnq|im=krT1>P!T<oZC7>gle(ORL!0EgR1>PjMx`ER?1tougQ3i<N{f=Hgo)ru8Jd
+z$qEdCYt8JkPxkO|{E>l}TH$MS^W!+;+`E4$49tTfPy^!b*1Gh-df~CabHlHqu3F0B
+z!2E-{hxCXUTL^J@xP&6;eG=NO-!AfdOd}sDdle>p%DOr72Po}NaAmYnQ{6Aoyzcqp
+zbuUU4Rk5Cj-d2XYNx%D44_UiLT)3Z4<31_&r`;i3J|d}%<X-LVPJq(4`_n)qt&ZZp
+zHhw2rSDNpl)jLnez0T+8P6Vz@FSOk_3M(PGjdJ%XjpVLhow_V|ikN#@gW!}AoS+dP
+zcuC-Pp^Bi{d#&$>XnTJMBRSz-f8RClCD|p(C$7zVhs`~OWF&^#MlmK(FX(9_?r-`R
+z@ZhiM4=TGde26W-a(LJ(?tVYtDCy=~@(h1@EOl&oaZuS|dWbCrKTR8pEfW4&OD!t?
+zE9F-e@uC*Th7{dXL8`)#!q5blQn){bep2V-DSxGbIE2a$D#Y!mfkJ`sfNlowm{11E
+zy6Shd3Nbuek}k9EKzDzvFoSEvr+N9Vl6s}5w!LV%`~&Rp{*-sPiuG+A>9Zw1;<FKZ
+z4?kLUHFdx%+0N+hJN8^14yQsiIFUk*=cYE0>6lfc^LA9b^aRj%LFFnewzeq9FA+_Q
+zK`F^BH6JtJZ*sP&?r`E=bVZjb$#25#B-#G@+|`9Ua-)1qd&DK0gp4mFayH+|w!NKD
+z?~41S<je0HgTEL6ze1{i@J~2^-aY_)lI+GMr%-q7gXh(l0QO_TZd&}9z;9N+4oK=b
+zrL}mOm%O*f+b5Xw%IV^9<^sjMMq5UpYjLT6%b25F2V>2h08{0I!&~tK=d>Irzu~lJ
+zd~e5d>WUziXK0jM7N@+F9tp?qtsB{*gsZGbw!A%aphKbR)iA+QAcMw+Hv`~)uodvJ
+z#%xC9NcX01Wy=Mc7q|j{Ma@mGJK--)@`_?cAIL6kCjFJV>4!P!UpJm}{Sdb{PsoAo
+zSlfm}o<h6H{dgDC9flUZ%xaw7+%4Y9K)9Y-V39;}OoHuv_54m@ocB?LK8|bL>tE|n
+z;kDsCf8Fhik7u1qXZ>Zq*^Ka|fMR>*q*wF(P6A`8MepT`=7!3|kspr`21B<3M$3GS
+zs%vIqJuRDTKQTu=d&1MKH};8Enx9xfoQ3lZ3a8?RpNMVU>7=K<)YBV?v&#;3ft*X%
+z!eNv4|2PakLN^2HQ#@hA&aQs(yL>Vi<)FPRbRXj_`mdBFV3c66-_`CZzgR9(cR}6U
+z1(06;Ucc0GVp>}2m>2p;dGOeV+pnf}t`j?ra`~i2WTiJ>wYN0SOOg_N!fzYV$p<<(
+zJ6IA@BM*l)Y1^g0`r9)tcqrEF-QIU^JRzo%+tHeNly*wnDv{SbHY|UL9dg~qq}^#w
+z=tNJir*!=zZHk`^pzZUl(gH&Egay!+!Y~iEg!$jM@)H+bVt1QnA8eW46KOUUy8Wdp
+z^;9D{7_@C93Xb=WI(G9{%3MI61u86Tf&g<sq$8yHjqZlY5~DK=2{mitv!dEamUW_Z
+zbDT=0RTX1@ZmBv!ThuIHzB%<=MkmL-J9KXwAyEI8OP<=JZTu>65~nZ`C--Mj^sAL|
+z!GPuVZwPy%$rk*aeg}XDKe1az;Wmc_@%esCjHmR#ua!+UK3+E^X9<R-Ek<B$M)Q|4
+zBkS{_`D#>iG$6)BbBh`61mB{6TCkBEzUF=a7&j*a8))AZXusYft8xc>=9pRry}!-I
+zqi~^EK!B{{P;b2u_4IeTv1~x*ReI`EWTOK*tkxZ3UCI5`l=kJs6pJ2&dLw{zu8z@C
+zDFs;1!>!p~boqGvQIIwbQk%;SUHst@7ZXzi-C1Mv9W?4Ho|`9?8{bL3gIj*EL6LOz
+zhFV#HR+2!sKQFlcBRutQ6Wl{wZ`iUE#cToBbCxbitWCu_S2LWWV+#}@bg#RKEr@su
+z-e?QmZYMun?+Tt>&sp>X5E~p}h<1tqlZmF3w_I7XLGU#M@d3FHK45D0e0b0t#V5al
+z7R?IfVtc3}bx~_aJ>-r4SC0LZ51;Du#`-UX59y!sgm^OV24|=+11r0}ww5gYHGyiU
+z-(Om8aJumiTbO1st-6qxqQ3lo0Zaq1yVi(rE-v_fW!+253CBP2aeg6_uzIBm{35}A
+z5$u#CggKj~`$qUdg}t?2ZBoFwr(7#A>9YtUYM=E0_~|>ivrZ(Lz42yWHRU6hFX!m6
+zHT&Iot%YqQbWqQ>2rFIec3Qy>BdHn{s>gmRBO?>r`V9Ul3rF!nG<HLG#T_h;+3e_S
+z!iHfn4T@T$Nsg6K=s1w=9CIC4C*qsRNt{J$AB+D>BjBvX%qIGM>WR>5J;DU>!6{z=
+zYJ|*lrLkJHYs{tkLca%Iz~9x^iR#7j81U0IU)ge9A^3QCT49Bh`m$yM@v8+{Y-O(D
+zA1=mhu7mFeJ$Pf{lq!>qK7ipJ^c!+DM0Zw)zDr>Z2-ldG9O>wB(%k9x$n$KBZEPe5
+zvt{v$N%W^P7QQ_AIYjLtJWU<(BP2eD%MXTw<(H|fWta`@`L4~Kuu874<7wg$QS%xx
+zqFwG{zO~Rt%!?8i992z(Z5)lwzk_&r#n4G;S0jg+_OGoH^PrY(Bmp_V-vtoiI{*^t
+z9v&w>TQ%YN+FR|FHe+b~HN4}VzZ8#hG^>#89(EAUO;Xy>ag>3tZYf6Gqbh0FdMoSO
+zm9JS@b8)q2D+Iy<Tusez;)V<jVFT4ULti$`Ar~^&YHtAmVVb`+pqA#ZxlW2(gQGTI
+z!^rCcD*8W=gG2G~Ggm^P30sWWxAZR_G*+rhdn9T~4Z8I~%S%j4j!ZRrx-~dhSX+r1
+z?8lQCAJSitgel9a`HdPCa_kc{(dpUL2Dc7(D&cg0%<|p4LvGbbk!4|-JU}HP+*&<=
+zBN6jdN(Z=Hb?mzw3tF0|M-&|}O8+DmztVLQJY4R&SM@#qot#`pBiswk;2p<#HZxOi
+zdR=K+OZfK1++8wCoM4eB1``i2rD{(Z|Gb31S4`SCz@p@JPAa%sGv)9RC6FeBs<N6M
+z<Wq6Jo20U`mirXR8`f7q=Ht8TA+U(PIlH%m$uv$8Z!%Kw&3JfEnbw3jwMm?;;JRO@
+zp+ARon8v2R76FcrFB6I|>&A4UvY1};`Bxt&OVaYA&PpQDxCGpn%$hl|pRUngIK23N
+zDUgsUVkqFUqw87WM;<jJ)Q;FLf_U#d7dWt1LTbvSa$6W7(T&}<sMv7c+B;(h92<~5
+z12`j(BAngvzfVU9UIQOQ<S|;<roj)5?U(o8?T%3A{kX`G22D(}ooKY~Ztmj8<!Nm#
+zm`3z(ZU*j4VZy%o1B&oJ1B??LxDzx{CNc^eYEKG=8Ex>ta>C4H;dF4Q73r<5eV<Fy
+zWJ(RmE~~0cUp7DCGvjYsIRN?OrIVJ6kRa`ZSha*ny>97t1PIuS71TUK86-$7tS{@U
+zMV2XYV}}pCv2JHR1jmK$DW8b`II+@jXqi%~HR`)6%Ij&k;Kcf|*Fq$)_4U~Jxq_$B
+zRxJxpYTBf#S=!vjBx`KWjd8>A<@EAHAy~pYBFWQUhr8A|DIJp{@Z0wHCl7q|B(96~
+zdL25fguEwX3pyvuM_vkcQinycb?uNg_u>^|l$GBquN(bZwks4Br%Rb<c~;z=@<JHa
+zT1ITJ#?9P?f5_jomR+r?;ZwQn_2Y~sd-T#^$+|ONTpCq&9d-4x{(;&73R9t(7AiJ%
+znzY@Cfv1onR#OCnngpOz?msY-(kIGb^yUxS!f97FLF(97KWjUfy&B3{?ESRGsx`B*
+zALI=Yx6@S*kb!U%g$guqe^K_MZlJMK{=Ax@b@hTqu|sRIvCkUI<KptsCPY6_eqh8+
+zD@SHz3hYqzl_uks{Cy^G&#x5i8rq@y!k*Fdhcz0Ja%!zCEQbTY$C35Z#6)G3=&K+q
+zS8JKWl-5FjIxhXMf+@l(d|i@0^~qVwj;*@~O2XhELt=g6wwy`ZuY;i$KX5S5mo60~
+zGBjbUjOFVi@HL%j^?HSb+w}4yj~F$OrZ(EDtD0nL`eLN|I2KlZ9cmi3ybfefFSj_H
+zn!!E|=|CaVlxp1tci*2^BoO%j(oNmwwLE@XV{>a(dTiz4u>Ct_^0D*{BlQ|Xe4wT%
+zEyLo<O1JnPJ%_@7h@B4b)!@TCxuuB~6$={Op=uT*5RaZuMaF|jZ+mfVPUMl4(nhkW
+zZW`$f^N!~m$s+Z^Sj_62h2XeQ45h-wi)IsSP!B4GJxdXVmky~JxoLP60^CaU>WBMj
+zn*3#UGqdOhA_oU?qR|A>A}>j$1}tro^PBLW_MH2Q`3hS81<vk&CdBU*?Ss1H3z-dT
+zRO6|UXMesKgqV?p{{|TBtS=91qY0Cs!0@GeNz5iwh(G@uAlu5U9ApS%H@Vh=opcGg
+zww#e{Pz|DYIV~MG*KBNTmcfJLXeT85Zk{e}sXdlKryo@uKp%%2`G<vO;sR!&KRIuv
+zOv6Hy3Ax2Yzd5MV9&c@s%QxBq4qI7<loe68UdDSjSR~w|eyJb_P<1oI+vpaA_y=(m
+z4iiciVgkZY7?I@5DU=)Z3q%LRD;UY~J1Ffx&@Y4{q$1l+>?qEELt7z>gJgw~^YLb3
+zPhtN-{DTsQoB`VqhA^Ed+_2m*(vD&Q5QNGQ*AS_YnUJKtC}0=}@h$||z_AU&-NhB&
+z2;qm|&4*BiE&WodF<VLUWff`_CITuKhTuylN(7`LboQkcMm}0C(k?VR^g6^Af(OJ4
+zgfCbGEF?4dO5&gtq1o>xI7x7JVgJJr3;xebhWz&h3@w2OhhT<8fi?*OL0Upo{}G#j
+z{NK}J%SWC?UWHsmUPa`F#{~=GhT?|dMjma)a)-i%*!-XKL7#<Mg*t`&Z$5BfPBmao
+zieO>&ynj&hA$DQa!NOvLuzRtEQGeo)AaFx)fAK<g!gcy~El45|(+qhF847{=6YnP@
+zSTQiCu=mg&(2vk4Q2$#kPLj&hK`1m3$&hrAwqQo^KN0g$YZ0#*{+DVBgOVVsFx;UI
+zp>83IAy9kav=QMU+adTM--G;v-h<L0YM@MlOoP}UPV7(Fz>FZ1Av?hyZcgDZwa~M0
+ztB79MEbv}<PG6iboxbO9q3A=qKspH1=ELqnH$sR85%nqxW7eWN!C!ydWg&s}B6fn^
+zJr~V^2o3rMHcWA5k*uKIpgq8L;3E_YSkeFMmP6Nb7Agio1^G6J{d3nSuR+}*5(by=
+z23xA57Gqk9`@Uh;R}cY^DG)n^tOn%WO_%9)6d<IFA-3p~D9XgmMkrsq5sG<89+4rM
+zaeb^|y8*1Svy>9--fRJ$zR;oXL#g7|#!Q?znOQapKEZArquj{ZMBiJvSWFAH*S68E
+z5FD(uIwC)sGZK~+AXBmcG6~Ug6URSE7^qlSJh7{&YOXCR$GIY(rH0%asvef)(yDH4
+z)>#8z!>0c{8FclRST7wb#>9YYNi-=PyvP-oRhNlmH#hgfnk}vq#ksj5EYGkIr><qz
+z4D4X0H=$r{;UYAv4hBV#FQhV8-&r4B9R7vwsYosCq>B)Bp=BoT4~%R<aAn0tV$6a<
+zCyC?BH@OpD+Vj!;<@#fV>8Z;L3wtd32RSUw)j0QqhMeQ<`4O3nMb9>BhFsW|HZ$lq
+zh0Q&c^uj$zvv7BaurD@!RkW%gsMJ+q%cZjE9j!8p#KjTwvhr6R^ADvceyt_O(8^#z
+z@#qT6B^OmYho+^rZLN!?b5e}Z*=U&hJBv~lqplh3<w$Ffu<M#qiE!n6Yx^rqU+H^2
+zO|`NyTBArv1;$embcWkojhfoqeWtk8pIM{>Hd?VLN%WWvL`zLi^|u8i6#Nk?<ADmH
+zo++@iFndi+4mPo+2G(owwyBFdMb6Qp4%+dNBzLWS)GTGzT#X*$ydr#)(Js=ZO#^mW
+zE!7@hSClXGLX$aoVf(eTYD%?--!xmAxx}_HiZiC9ycF!aP;X;4^XE2L{LH#5&M%@k
+zVir&$EHCsn=Da8gv8ekksgd)l&YRlfT&6A~dM`V5WQCKAoAM<bYpWC@a)LKjKl`Xi
+z4YS;<F>g|rs!LT{wG9ko4Ry;iUPTuMe5Pz_HluZ<$iQ{8W(Lz!fak?2NA#(hOF!~9
+z-bqKdaP559e$1l(L;CI71mlQvle(PZ%5J;v(o~I!$Q)62nIN9Gs9`*)NwORjv<iar
+zgxq($v_o#8NG+5fZk@PDiyM<8Kz(wA7F~4{IcTbw)jpo$z|*QPXb$>*@o=;<AOtZe
+zycsVZL}hE|bs_BiG@U{ID5HQvogkwWmO_C@pJ42o6grh+e3uwHm1KMeK29?(9_yDi
+zU;Slfj3}-h$tQy=fTx+wP^ld@rHIX`7e+ZC7da>=!`hiF-I+}B|KFI{H1o=!zhULV
+zGdz~<oKy%)Yx~CRnzUzLJ@|i4k_$`o{>FTlxM!X_IME4aNPWY~3}z_Psh(U@T3Wu>
+zHe^%7q-Zc|kjx^ou9$j7kmAUiJ)OjzlZI4sN1=E^IdH}wx!^tK#H+OLX88XiQ4gH?
+zMJ_ypNk;o_0rkx@Y4&+};Ik+dPpAhb{36qy$F5n8_RRxWJ15h;GV+j^?<ftA|DU8{
+zc05B_N<-PCy<+wK|C@%n2x}+9A1|FhNX&>7hS(GX6Ht+9Fk{#C!u$Wnq^K>R>%b{(
+ze^gQ^)<o^vSii+YEzem0@n~(LnK31+okM+X8>^jReXTdET|j;9GixQgj&>Q6-X8|L
+zV0e1Pur!m%w0$!#+Eg#v|BFUO4ia+%rJ)5_Eq0M<YhaD(?VEdmHJ0l2|4GVaUKx?I
+zX|mbaYnXqQ`S&Bs_SVML5DRfW)Tgu%98Qz<G=7n)`TYIQO4My;*mybRQH4z_tfAUm
+zZEI(JLFeDU<=p|v0rC9t32;9my_V?D{oO0*yfX9b7zOEZ5rk(Qv2P|W%Kax&wVuoA
+z&3H5>w3d>ilOLN}{3)3amR6W<s+ek$Y_acZC2~Jp9K9AZ^%pCu%inw)t5(Idv$fxC
+z*H5XKnT?{NDB{57SanPKbJ{$@(>NLRi>B!57&9-J_I08<+&pe30UQ0_HTT#yeqRP>
+zXan3lrZ$7j>jDib2#qev8jLsmtn6`KStK%>k!)3axa$gYqp^;7rwom@YT}lH{{(SE
+zU*DxGeSD*zpL@|dp+&8D^2i7)|F)l9DPR>(jjhKD+uy35a^j(%ouph@D*rEO#5od~
+z$X(Pp8VlPzrcA50&|Qpvj0I2h;}>T-2PW3KU35P-V}_3YsM-_dlV#-WDC+~J7fY>j
+zn^<In;{%_w6H_2p!5O5UmnC1j2e|+W|L!b`gR>R$!N$8M$|Xzp)y{?VX;X^9N>kaC
+z`d6J~E&apk4&eG^eHokO`AIGwb`)D%JTK2ACY+i)<05TPip6e0p}Ro|F8O|Klx0+@
+zRRO>GSC0tCTDE=;=ZlwRs*JqJ$k32h1x!-XCRH8thIuSGiVJv$#}*0BJEXJbWecW(
+zp~xtkph>tKaRCBNY4zT>segP>CKMbvD(^?@@+A57&HbK*E#v$HRXugvT21;h1L;|1
+z&G=d5Q{KWUZ|;oaGzZp9FU65kw=2!t-PUSaMRv<HO5kJ(2CM7ai_2q4f8%;zB)kdY
+z75d^JIKJOnP{uD{Io!6uSd7b0MVL2C_J1zN6EDTfs_oCX72%1UhkxPY#0+M`CN)Io
+zEsY>drhWmC*NP0CIh~wc=#p;=>m_qpHlOq9dEH2b%zQ*#^AMvO-lFfh3X%D3gL^(B
+zuIJ<7jjmOmo~6G8V8TWVL51$ko;nHC^L)Ya-1;t>5a+tz;{NvhCaNHFS16g4L5$(F
+zsbXH)uV*9$6BS~3^RF$G7Z5-PFRA;+xplJd9s1HPoYcccFsj}TTl7x3eJh?_i{cXh
+zlXqY7)#CjTg0_2VXE2f*txX^wC9w<30@fuWz3ESZH~wuhRq%K6!ps#+gm@7MImfHb
+zMjFRQ{V|tCmS_B#XQ2sKiUH<CBqP?`4VFk{^fGUi+<S-Cs>X&ziateY%qP<O0Gy)~
+zx^aa>Kv9ENt^j&qnL6c(5=Y0vUk|`ObILdYCE79#^u{-s%;S{CsBv;Hf7_tHiB@GA
+z_P%l!l+o529_rAE!%gMf<?AvB)AV&*mbq*9I)AZTF!c`hA9?vo>J#G}PPHwZeGP6#
+zWI0|<i!<-)R8#ya)xjzJ%e{%|m)_!2%I{5!b+2!Ho=v}vj1<Q0$4e0n5yuNg2@wTj
+zeuiSQQW;42zb6)9Foap<b{CMZ;^`(+w=J}VY9@bbM2-Lqbx%H?B$%t{KXzpJUjwOc
+zvU|wt{6CJ{e<$VJYZR=lkm(cWHUM`8NV)QHS@2oll%diQ)8W!lX<!(B68zVvhZtTf
+zcs1LooCK(ndU=rUAv#+jfA=Xeiod@|2oRXBK@H_VAY<4ut*((|u2!D<L0>VbE4|QL
+z2{{zB7Q_So`>Nl|-|Ht#`xEj2o)9HY{2`~R+jX%;-2WtsxlGM(VhM+$uzLu+r2I4b
+z7z`=WIjX9>v6ni^$X)P@(Y>i@H`_%{Jya(s%?$0(R&X0%eyEW3&Hb2sHCWhe=)mQk
+zGFV?uv1WEu`-$O>wn$kQ67!YEfso@@R&*o6b`>i#OYC-2Z3?A(RmGBdp=d;^>TfMN
+zMB&}CA-{6|ErUupdXu3ROM>MA^m2X#?=k^0V06ruMB)(#tpReo%GIAuPytg&=PmUW
+zO(-8%-AD7fs!+qMI&b>2K23^c@iZV;*v|xioH!wU0Xt3Wob5qngB=ZV2nAghHN&Q4
+z6#5>&z$6ZEgPkUnV3{;ap|V9iu)YK+QC1P4CMrK?Iujjo0JTVpR!tpiF>4#BsCE3c
+zk-YWuinjfp6zMu*EnBd(*i*$?BVNBH!Rpu$?X4k|%mn<}?81dI5GMOQ=Q6S)dHY-z
+z)A_@xm`==K^^1YF4N)n9oGJ&#d)Dd){?d>O>YOS9@x~`>r@*S<-J7%K7xLSH!u*E8
+z{BKy3jdN0@w=&<d<%w|_k6GhZBHQnK#HqC<<nAT3&%Q)zS9bFRDJYnN_)*lRHqcwE
+zG|n?(G)YEGMml$t_Z)HXS8j>ctx$xwY-dH-&LD7itfGle5!gwSe=KU-AU3;_L{@Ew
+zNs|y*3n#*g49RyWYbCeLZqE(c>4~#M_3+w@R=tqVkJJ0xtxML!NMr}f_=)6EG{uT~
+zGm5O7DA`uzO52f}@zhEl-KQ;zY*leYe@txPp(vMJ)>Jf{qo^!=Dg1-PG>768vw;B$
+zn0j6OrQW#o5$EBorOsLd6>@j32@U!Ng$#J{6En#&4r@ouW~lk0Q#q1uEt3l4J@(i7
+z8&~5c#jr?e<U$aSf%QIaNL1wcWdEB$&MUr8YlBRAw}RH|hfU1&BWdc>-b2=do;QwI
+zNGMke*I9Z>=FxlB96H)GsZU&wcjP*OE^AlnwH8d~_SZn{<#}{F$1btlmu%{sJl&W~
+z#;xI?(&)pJ^SIo6(+I|_e*8wtZ4K;h?;o;GK_NEj;KD)ci;rRO`$Ros4(qxrWqO4F
+z_}s${v6j9Q`ICxW!vv1@R5w*|)O*{}W>PVKi{f>QsHix9tl~zMORlydcjVW3XHzpU
+zu~x;|`Av9!8(z6Z<$N^WK7((E!==X?5_eTPtOg*Fkb=5wFdJBY!~2)5hBhO*D6yhY
+zW$e5rSSOb%tSNTKTUP=d|0iXdU#?*v9$~3ODXFp4i!mNXG9iNFeXP#KfxlpvpDGm)
+zX~4o3g@$6r^2}Fa*6^X`F7RWBJd@RnWF&p;a|w$*BkkV@iZkO1=9dq<Ewj){U;cz$
+z?{ae?Jq3A{lgRQiU*-L2rdKg_#DygA8z7HcGcBsp*X`divVEVsx?2;Mb&^o0%JNdw
+z1R!F=PgG7vdEnH95xu{?A(y+g(60z67C9T#eg_v9Rp%StS!$m6+nQa(qA*1PuWf@D
+zyt%it^YQTrYU$~Df4{tP4E(HlyZlTAJOs+M6LMbf<uUjnb{AOV>}GXEdHA(uB>y!C
+zi&w*d1+r5IoRsf`r24WmBJZqXWOAbHtN?Msnw$C&IqadjnR?AMJm_|j=I@q{Xg<b<
+zK_<P$L4-z0K(ua*n<+?nu)laZF6PVDHE~~>wbEYJ!%|Q8rH+qmzrk&6Pv2)6$+D?8
+zcEFq#IW_U0dBC*bZ#^v_Xz!5*WZjCN@`~i%ldR`ETOg6L@fDQsQZhiO24rZJ>2&MZ
+zT~6V{cZhd6>D?;bY;*FYZ<&5e$!gAoOUd#`HXSz@eVe0Lo|*DX?g+U_=}0~T$a>=4
+zX*r<YsQ_h{M`*Vuw5wfKSU%ZxurK8=tTl6VgqA}CZLi;Z2-8Z0n4QbsQCqvpceH_u
+z%`gu8rAiN^Tkn+(E>|W3DZVY|O6`R)HJiS8Ms1+7?&4RSVNY35z_1n&x;*bpaPVpT
+zJ@MSK-N@YUC?Mx1<rV&b9;7l%OugZf=wGmT#a88#XKX~%;!1t10-g-q2xSTFxn8dR
+z;p`*yG=rNJqd5v=j$@(0*{q8kVWunOrW}E;b+On)ZkU@EcVm-x1hg0N;M_ZHxCew2
+z(x2)Hez=Q6(3%n-yKBywIzPYM6wF#w%L!fk1a%Hg2Qh!)z6kaeb22T_tx6zK3fD=c
+zdAU65xRB;0?ojlT<%gnF4o}(~mA6@jm@Vu*X#hS62tB;iwODqi;olqmu?vvkHB_<w
+z_oXy_jh^AZM-8T$<zb!$LcF-hX}b}#k>WC*I3;dCk(I<=s#6j9zEKHQWQ8_q75v4E
+zu*&oPc?S9?Y*pzHvBO+cCRa;1mt*3NbT}2ey?i0hBQY}k1$^U=T(^*QvdK2APe~|)
+zCr^O@5}Hv$rYiU*dIYy7PETuz;MA}O!Vd*Vyso~TxxF2R!Ytqnr+dWrC$1*Wf<+RS
+zq_#@LaC6O%h(%9?kk3pWuV0B=-0E^9e97F0{Ei<PtAHIZEJwV3Mm0b2hB>THfQ{;h
+zv`W1+;(k++-X0*E)gUG3uUYa6t8hHdL?a4T_&tx@7%i<VAW|Wresc9?YK6f&q+WU%
+zN#Wq$GBxXOzUmmWn_8H&5#vacjwPGmWw$wv(713x#Syo29G;Y|{S6J<WvlMEs^XF$
+zo1yTMdv@X(LewEQUUZM79{-Ot^4tX;ULxZ{Mnl>|scksE+r_r$Et_a5Jl5BfdO_2J
+zEr-J2`hyb^ovZt<2V0B>p+L$!UxLnaRjFTjs|Nx<CuZ6ZO}R%3c#@JgP+OHB>e6xV
+z4{x}Q42$+vj@@&qw;Rg!hvlR?@9zd*;X;$tDZ?#Dw`nEd9zWjW7=^~iEzxS$oE-w+
+zq8Saz;cL+So{R1_T>|rO&H1nHF{><iy<XVqbJw_PM!88B@@_0B@zN|Zj(2h*K$3}G
+zz~`r$)yrJI7O(AWN{6=;9A@+#iohXCM7php6ZMRqlM2VP^sCh#*@e35CjVus&*5Hx
+z<~6&$fu+}7`_Gk9-sI7ks0zBzL|)7^Ee-!{UU48i+&Yv3x<ZFZxnQ*5MejTtTg_~V
+zFG6*?F)WTfQj1wKHkOj5w6|B`>|qfpeCF_ZvZvUfe-YoW%V5#EyPBAZAL6<7k*^Y5
+zbE+~Wo4?}N;jCrv5DfICZn-25gXPFBHgw-(Fi%g>@cP$e`Es;Q*?CBL+G>-JA3U4S
+zH2Ae5BYxJbC!eTe8K!%~bcWP5I;lz7(vUGpH2szJ;daWZt+dE|VXN{tApU2yGQb$z
+z%&F4$@N)dqGQ2Tl{n&9Gmk6T_Edfo;@wTO58<3)!l3~8Cn(o6E>l1~j(CO2EZl3&n
+zWFGR6Fbj5eUDu>@{3gV=2<2Uw`sKUa6w$;j-4&d1g#T7mZq*gk#qpbG^47>Vw=%O|
+zB8zt;I`fUJL7A;x^+ONy#uL-N^|ucFfy-2%!X&<NGlLZA%nmk6eacv!R0pDP^ygzN
+z=S8uMN(4>6Fg>FWq+?&RMFQRYev1M5UjaVjA1o1q$SodNQy;_w9E?|WqA>W^S5hQT
+zkEzSY?!i+Mm%$OErUp{^U0XX$w`(DX7B=%1UEBkO8tTSCiMX&@ZjG;vJIm|nb~u`B
+zj(47o;J_4j9EA-A%)fja1CW27L<K&lZ<kh>MVCDziMzAtDlV|6&XGJP5n4$08RA59
+zdABGf5wQ}Brij_4NmMht!EQ+|m?&1n+k_0kJI*fKISc=n{qo`^`g^|657?_8=bj3A
+z1!+?@D4U!WT^N|2RY%$WmnlOTTo=zPXVK!5diRWa_k3(@PzsD9@9XrI7v9gnP#^!=
+zLQ~fQilC-g23wzgk{n*4rt`!2*-AMTB3ASx%P4FHxWdJO#pBelZWxmYG$Q;PEfv5O
+zAS`NKgWk`bi}Pt5XGNWH97j51={w3aZ7vsTQFolPL%D$p2QQQgrD$aS!{YonaaP)O
+zovH;V92?vC?MlURoVCL*L<9{V9R+7ef{4=`Qug{n=(k3DS0c4>PK(V@h7IV9jLYDS
+z4c!gsXn>{SOr@b}4~>yG{J0L`ztxD%!AL;fa)!1RN?=!OX={;HcO(11D=S-MH_Y>v
+zmTMHT?v{YKSyaSPdVi`3`&-k0hd2?LI2U^NP-90AOvh{P$ddW|3xyQ|EYJcurw@1$
+ziQZcpY;I;<G;C;(T#@UHD0a##BwygH5n;t7+PgE)KYB-ab(b+Y5)T=kUoSr%rM1ib
+z#CbV!%uNWI3aYS0OMEw=Dy?nVrs{q!K4F~vS$Jp?-o1BHu17+=Aj}!$eI95J683>Q
+zkVx-jErKPe*Aw@oK2Df&y1D0D?S^L@!)5EL!ogP3_|97SQ>}MK=X6t-j^HI}$a0Qu
+z69Fc77XExDt>$DYX^`2t4>4x$Z3{(m3$t!0-H<8ZqG{64hs>~b37dQ#_C6QC1cRPE
+zFbk`$yn!4Sfg(|(h3hwCj12qMMOqY`X{Yy+MqZg#bS~z7aq9++voIbH4vy8Ja5x%C
+z4GlCS9)bL%d}0wHPx+rSwtuFR;vPX{(C%wR`;^LSB2#03&sOxw7lOqTm~^V~r~)jt
+z{p+Nkf4C28EIgcPtwG;CQ;EV2d-l^S8I>v-={en5-s@HC@`-6Ch>?<u#o+6}oRNol
+z%tw_1zEbu6id1}|AQkBe<uzQlF8Qi7wgU6qLUk-V*@B1XLSmkcV?Wu>g9ccm<AEHT
+z3%MzxQpHTN<1`6eV>9U2shCirmkoWH_t}{=;cAOD^59!4%{t2&HCX1TB-cd*Ko8m#
+z5Q#vRV`ucq_@&f{rjp(x`f<%!Pb+q3VIKvfpHKp55-bl<uz!E0xjLSi>};PEaP4C}
+z;jNxda@Nz32TiWE=zFq>Az<&bfl^&J*{ZXgbL25Gms=(3GqiSG407{r(dXswhOe2Q
+z8YeH#87GcB?dMLfVmihB8W2Lg+of~0SmcgNPcmR6f$(!5n1eKfukwBUe=C|vqU-?W
+z@`fV)QYM->h8CwW7YJsLWCtPS@v)f+%yN*#Ov22cIk_|rVGfE?cu_Q4Zrej2yCh9Y
+zZs{ZbTnbzzjy*Dd`4jvNHI!Yt^1=yKld<Gv&`ESyciKXV!vv68GPg#up%~^lf2uI+
+ziw~EpFeATN7|a+?;NeAD;Wj0@rOF%Ot5CqR)=NH=?%BcSkxL!skfV%_{*t%!KaSG*
+zld=wNfd0-TQt28r|EqK6aLp!-i{3HpucnE=jhdPmH=0!sPtQ|oMGb70wargG$L^PN
+z0N|SO^xkg{hODC;D}}BYcm9tgG&;f;pS4xl49W<y+pU+yo&_DA1Ob)N`E-ySx|~_A
+z$gt|H?B3<~E)8bAkXGYXZQ7KKOwtF5NZsab6D(7UDwC~5X~0F{x40+@(@_L7_znyU
+zvkHqh%XULf-G9H*zX242GcGKha;MQI5M)1t&x{%PL!3ra#C>}w(Jqwvh+z=2ba4&M
+zvTzwP$qr`ND69EJA_G0*a3rK1QqtGV3u(ouTr64%1Rr&#W2|0G>1IFMd6)*WkK8y8
+z%vO&HIEGK9HUH8u{#eZrpZ5Jb1yE-%|0+ApceP8v7<i_dTOX?)SviSBX`K`3G+uu<
+zi4eFMY@J7z`6L^iGc0(lJ^w&o)2PA;r$z=~5Rco82|@d*;`6JL?KV0CbM7ixQ|tci
+zn*eQBAVrFtdH{QZUe3+RA8t9^j>={#mx>Pa<HF(KdyD~L7`@*=)pIa;Ec^)0XK*E6
+z@Cr`_y?+Fzo-ZNvY8uPj{tF%-%;HVfFQaq#2AQVMDv^*r`{7fsd30R%>+>^xI{{Cc
+z&|!)8>r0-i;S2SxRL%R4Nn8!*S1cdbEHQ?rVvRkgxwb@@wC88hbWDkKk>i*5KvT#(
+z?Y@R8s`yUPk}>mT&X8ga7J__=iKPU4sm0Emd4@d6!i2(&K>!WqPYadbFpVgaEzM<@
+zdB~e{``vl1M`+jysjTSdhek66s^jkkipKHQ{?v&H?$Mz(IGTQ)GH8RcX|4hEceKlv
+z7q0i;{Hq0(@@mq?LvdNC6Ev08x=qghBB-4z?#hp+5d5g{I~f$;+KP1AQ7A2Ia!JIC
+zHdmX|K&*3-jaavNZXD;L>z@3W8BBxLPbM4j>>d@lWv>|W&fw^yGM~~KuV`VORBoaj
+z*I(KmFO&&+l?<Jjj~2(tYP8pzid3vl>58nzqL9{PiNYvk8}cO}%#yssK0I0rj0t!f
+z{cynKl3Y<K4uCFS?PhV5$1VgsR9waY+bgPJZ5xNCSqd|<g$B$x4+A4|+3Vp62t$~1
+z72AZA=3erw)!}N^{}_#9-pYizL$OUsJZpZ&$Z8Qb6K&vzMz3GgagI;IJLo5`N_=&o
+zK;MbDX(QwIzz_*B4@lP6V8CAHy7d<Gvy3*P|5eC|b}!VCt~I2+fS^X!BhH#o#8b+w
+zzTwNN^Il(``5n+%PP@q}#*!f+Vc&<`U#`K2T=BEr`s7Q#oE`Z_#iSRhu^(@~N#<!+
+z7!EfrzNvR*^C3f}#dhiAg!d)|v&*O+px-ath(Tr5!(kSx?ZW$SKbH|jw0U?0<7kZE
+z4SE_ng{}C*Q^s_h^2V#aL$gN&{ajX!u{iKclxNtX`JepN#``-6=-(z8t7u3Qj4^{_
+zf8ZI_xfHqSL?HIy6JPnhh07i{6Gu(4$3tl|${U`0lL<JBlc6&8<BEKvHNhZtz4tbf
+zx%n)(>mGV+;0%Ow?7Xe~apt}A?^DdZ6xV$lE(R*{q+%fZGr@Ic84ySEa>nmY^K3gU
+zAa|^p96-Qtx0|x~_`qLNQ?9e`qz$)Bs~gOXA=n^x{&=4f&GypxO<{!<%_D<TBKxXj
+zW~K2yP(6RTc&Y*DEX!P4r1xu9A*tMzj9=rd<^`C*B6AkcZU0iWU!y1b==arnT<J7W
+zU&;x76)HX;oFQ#*k=Dro+}v$@r`4zlA*vKR%iAoZbi13ZO_40($zY1f=tkLlyq!Ta
+zYJR!nY0<HtnnyBG;nrp!nb&e2^=$mcOMQ?W0PSuqRJ^YbaKn@D3W~-Gs842EriM(j
+zRdwXjI7`$2Ig-VxYqXnqclxMb?iRwK0XGGBef?VeYJSeA++z7xfm*uZY$`_W#W=Iv
+zHp*g79FUq=Jv5BW*CY~;J$D~YpoXYwOMqkh4o<SmXSS)nG|j%0`n9}@%8+W^Ek@qI
+zk+zw&=c4QKiYw=>?`k`%_BQ_W@eD3^<Mtw&`Q=~KRp3dtTD*PR;}y|HeO3N}C8!l8
+zu*GWV?`JzOo;)1o9dMO0zax--(Yhb+8|!`)xOz7ef5^%IC|&*9<%#-kVY47n&FAU(
+zeB-XO^Y5Y)^oyFfb?7q|jHRG+$h(>CtKd>(dVTqYh#h11F{rJt*i4$&I0(9F7eHAG
+z<k96A`4&)8wlkwv;uvl>AYS}=H}9|764!%Y3JTd7Q9ZmmSY#W#+Pt|1T}8kZl~j+3
+zhc*oGQJ`Og-iy571PcR%#0gQ~wrg&MkhsI%{OCRdivzY$$`(d;j{f~7tY>@9q8s3|
+zyWEp_FKmAKY^mx}Ls#tjTTiHJ6uBo<{86+|`!*Fx5*WT@xULASTgrP0>A3N&qWeTR
+zr{DK%M)-t!n7sCFL9h&ey6#ZgJE8vve_XR481Iw+WKb5M76?G^u~mOwBtGxIs#br_
+zI;f3*(s;fTIiQL=^1ik1{UbC_rcHB*l{?-9)96%G*k!FIZELj)$;=ggXfM<~f`2Tu
+z-*o_MF$m|r@x7=!IO6oAfnIuT^UE?rGGv0DUOu7WXraLB&)m1Uh#{YHJO>0j1ddS7
+zJ9@$W5Bfa1u=^sJE_CO$%rtL~V;Z@I<!JX4pJQfv`g3x_Nh>t;{;Yw&#_D9Viz*!F
+zzFFnMVy!S5SRI+toyHjc;`^}n)(Q{%QDJKmlu>Mco1X-ki&E}oH_2P;K9F}4TBZz8
+zya!(7UFIdy?UUWoaW!`LM%dkHMK?K4etp^X&oBmu*NDT36U-+R0e#Z9&oB+NyEyU{
+ze~ehZbM@eAQ@;Izmwkr0qdma+a<Yd5ou6p5=!DnvbCTojSAq|C^y3X8RcDwH3#jQ$
+zwIth!WzQm@Z&UXP2HNfbCl>W4i*|<(WV`;g+Zz}&#hzUUdC<RlVtQ86ZRv#qMJn{>
+z=hsiqcaXafj<jH4<Jw^lgv!!uX>+x6NSn%WaJA(GoqaZMme>JJIXx$j1?^mWEL?l+
+zTv69I;p~C$oFKt0J{#Ao`nFd)AR(t`%hVQ(=f`eP!DT!OpMh_jVZKy&Hm_5~6ubU<
+z(4Gq_?sQ+q@JB)dh7pY2*+L^D>aXMLDM{_-XT>gXiC~f+NP#Y9sir%lqc>tZu>Of2
+z=+$kXTeFQX#^JuUQO6$v-}jLO&i4!;4&w!vHvP#6-ZQ6f<v|34rbd<q)L%c;pC>*2
+zW1+)l5S@^5t$p0Qvat#0!O$<yLWdO6BKN(P5AJhf!gWNUVQ2Dcyc&!EBuoC`XR?42
+ztGPYsCznkpq^>uRi@Y^-{>?t*?<1RPDWocV@BCP_KGp_)y#rj)k%g``$?vycNxH-k
+zkxg6WBU>x>Q5ua?0Rjn;okG#I3|gNm0GPZP{z#7<NTCwGjh~%g@A2_;(xE`F<m77e
+z2}bSo8?ACj&ld>^^2;ES`KG=rgIz9x<S9-hzFDIK^iRm<34B5m9o<5%I3Kh5K!SNl
+zI5E(?kse3L9v3BYz`^cH*xPb%UTaz7(v6TZ+~k)55rD|1c|;2o@H5m!0O88~dcssU
+z`07-dZl4Y1=Fg0v=L6n-#qiZaev1AsD{(E7G6W65AHVV6S7qxNSLd(32W>Ts@wTyZ
+zq~X1;Zmsmbz3Gwnq<+B%dlkD5&M3IiUkn|B7>c|07CrE6(F~{C!#Z!6|88+aB+;G&
+zW3_;U(i4x8YJEg(gmb5}6rt1r;+gwg14+U8By82$YSCcot6H{3@&KH9{qt>X;;R7X
+zr(c4NH%&)%h?{c-%qddgKI4>z8B7@5PrLs{BSW_@4y34%aq&h^kOJ83ST_ej6e*6~
+zuP;}&FUum}!d5rmK>Ng2;LMHl{Bt<-VsiyCE2|DW*T9!x_S%`r4<DVH_cS3Jv(o#Y
+zNg4Ni@IocGS*35Vdt5G>F9!K<hG9E!<ERV*4K9iQgaq7spRg}ZQ{Sa@_qn|;DhDq^
+z2a!j<4g=+9DOayB;Wh(WgIj26ZRGjRB;N!^`LK2jo-DvA_tPSN1R1}EL_Z9!g27>P
+zud4c$dZ2^hVBSV%AEQm$Qvu%l%yLVtTX|0*x?xysk_@Y8T>O=2XHe(pNlX45BZj%2
+zA1(Comi$FPe{IWAMgzeH7m{h@a}>r=LpI;c_>U!qVe8^jQ_7`Um2Uj!dvby!VkPGu
+zruDS_vy4-#O+jazaZ^KWdJDjB3)Sywg9{?$sHXDSw8SjaK}y+eUcFx4bkABnb(fWg
+z0tCNDc5A@kV~?jHfGm+jZru>}i3S!mL{FNXbN|zn(|gm!L5X0zH!9FSf{*A7sPgne
+zy=dRLj6scZr5Uhmsn#9WUN=2-Di@h|T6+xS6m}I;Tq%@ne{7wryiNdiGk?%BQR~0M
+zdJCg(rr^lEb;s8U65cFFbrud(A=KoN7<R=|J)vD}^mC5}uIY@0*TRm<tND#aa>tUP
+z?kE$zIsSSrjn&fk)x6DGQQ5X@4Oa<lzPWqat_s+3*SsZNes^xw+ubf13xK}j*^az2
+zeX;>c&F*a72p$?i^yEZ2Vvzt}iQ|s-ct?WwBN^fI1_gzQc%r1dZ|sAA5`aS<?;%GQ
+zJPv#joEYfLYvA{*VB8@2uk~QHp~0bvgu;e610a&!;?l$5!|-fWCB~d*re{Nhryy9t
+z2eNbRNM0=y!AeZmN}<%hfr6TKE}wtIdbm8!yRQHx>@JGYCU)aD(3!aHG_d@ik9D2|
+zxw&57uitjkwa`GgUPIEny&wfzDQ81>;Z!^CdEFjKJ76w#mG4)7PS7@W6(8BFy~B>-
+z#mAVOk}hy1FWFYtnR)0~@S(^(?J#C4=OJ1DZa(KOS$|`};5u2~XyMX(yxsJ`f4rS|
+z;VJo&X<W@^OTn|{vU>!jRV&MrE;sQ)!PyZC_;9=xQF7QG69|`A|A=AeL+7la<ckHw
+zJ_;ZNf~}jaMAjog1d!^HAPmS7?Dp8SKkgn(tMvW4W|Rn$8(hZ&G9596_%^tt_4|i=
+z8zBMtrhHMI994iEPFl2{_?vQ*_7tsL8D39`mkwiThlWwTzo*_AHf`nkdkv~K!}mTK
+zUGhR+eK6X5k9buZVSxE-sa?x3vHe}Q)v;EHn}p*AUp+fqd_lUN``<z3?+jq4$KAZ<
+ziXp90REL8vV>YO7t8BAluUnxFbeZBAJV+?o>d5lyR?|5^u@2KRV~4X@k^FjZxFI;d
+zuuMqwZXL}jo7?<YPM4Q@Py4cOZTr6b*tj{ex06~@^`8AvQq^JhnwRR!_vZTy9va7Q
+z|F9y{dXnkxtGmsI2^#FFv|gd}gxrjteCh2HZu2)v1+_k{K!MyX{JR-IykAgy7_K5C
+zncnL+lhC|=`xdyM2Iv5rzIOWS#HoFBeVX&YO89r1Y%R>~bq{x%-eK7WR^8GsckAD2
+zF?>ILiE27&z5_Qm4O{8|6R=6}+o^`-0>ZP(<>Vi<K!*PpkZjWMZnYY4R?vG#q0v9D
+zsRn0@8l*R<y=pnPw=39oHQKYX%UKghxJG@|7Ag4a72CCQz&}1Rsm5l#Ydi-Lq}kx$
+z6gW(<;<RHIXWQzi4s3GTF<Zt1x?Ak@ZJB|)rW7_lYQ}xb|1vsdt(4@3zRDg6-fMV|
+zC||R;TGDy`t8h`0-NgXn9Si<r%k)U$!S1F4fd;(-hv_PI@hU3oEi3CgXSB_m_{l+!
+z;_rEN<L7~ra+^EruQ8k982;}un_?IT{hHypn?qFbp}x&L%9rl1nVXIn;NQ*$`g2$i
+z0mh8e>(mcK&jcMMy|>Yo$_^7fJ0MYOe6g%2@#YmB$e}f!9t2KQP6HBYRiXn;IDP82
+zp$@#`|F=wi$KM4vJu|oivEAKe0||jg;|8!GgrmnkgNjYk*3ap~Bq!gLKuloDxIa9Q
+z_rE3Xb0qjs**QY<@_sR@^?cIbCEF&q+bz;&yK7jr$!L@|g8ese&#>^#v(LZKg*fPy
+z>L>sUn3eLnx^nbU`Sc2Vy3K$C)SG<lf5$sAg!cUH;^{xY%eQ9kO8geqIYBebuo-KC
+zzxPPrf>=Mt3w}~M#=uK*ht(T%b85T?9~k6v73SOJLLB1z+l4snl_yDX&*8^}D70S6
+z1~SNUs(yF7bkp7ml<p4);&hGa?b`b9)>%%^y$)&C*c}A4fu?#)UylUTei-$>=eu+S
+z{V{aa?|tV<q8@nncI^)8n8}X*6anT%w;=(;r`r48BV4Xt;JmdouJKxlIZkw1iP@eh
+zHsiB8VSoly_JMLh%R6RbAhkRXB#@a7#M<hab$|&JIOYz0y_#w}&@;J^yd7{H6R;1a
+zZ_Q)(=H3Kod*K3^GajB((M&0(3J-EQPncVK>~7D&rR#ZL5rN>m-@BYs9U;2`!-F%f
+zx7}5}Gp@flWZrt;-5aiQ8;(2Da+54oO$>b%bML?<kf=c*7)Alh935-8!OwanRBhIh
+z0O8z%uWc7W?uzONAjO6cCn3jaW~ac7LDJ1ntLaE5Vs`IaNN+)EvlQs%t;as-Tg8ri
+zfz~_u4?p4YucF67B<4iUOpl$}3un`ThU1EEX#&hglyv~FZC)u`U&C=}H%|fP9s+W{
+zyfoHtTfTW|^%w&vz3)oLem9++c??eQAfYUOWDsf6<LvcS=G|?}5l`glh2sR@#IMI)
+zB6epO5aMws1PG+y^ZQjo?IYxsvLU*g@rphArT1N|LD1=Qv=VibT0R33m^5YwDM0IO
+z`jM2FmjXUW0?CY7YR;XOvHbMAo7`|)&@APyYo&DlEtai&%60cItXePR-QgzOjqSZq
+zj3sR*n=Q?SOTk#t_G0mnEf5Uv8`{C+yv!*-NVk^I`U*YEW|;{fw(``>uD^ikRODgg
+z7t<{m)HhHsj|~`w9SR(T=G@1oGb%N1tc~)BB|?#2LVYN0@2sIDZj<46CT5y<H;SI;
+z)KSUu=2MVtl;SiZ$9%PVQZ3Rm)X=J{^b4)=b9Pr~x{@r1VJv&BDlM;BNn2b#J8Ey~
+zoYpd^D+hEcf~w2!mY21#%x(Pq!tHe#8Ov4uCDS9S5t~&|&Ak^?yJbV_bdD-Y4eE*t
+z>f04Dv^c=nzPZvy1uT)QNQnsscaG#91>dqlAGMh*?CGR>Rp@i&E&!=Bw&nWNm-9oh
+zoBAs=qh|N0tMbP<VKpZ)-wVS1$M_<|E@xd_sLV-Vm^bng$2Ly`zD*hf`V1rWjgfxW
+zBGBj{M@#g|o6<u_yncUKy{5I>*t<<zv)qTe69O6Qh<-3Do^BFI*<YdMrS&Wso@EHw
+ziMl<~AQN(Ib6iWW|7N&t<ESyPuOau(7@*~EA6kmGMOWGRF^q+Uywr4j6=mL3p~b$a
+zvGjUgPVc9Y68S$Ed#k88p63tr8-w5wf_rdxw-7v72<{ME7I#<(?jBqgcXwah-F<O~
+z#TQuQ^8Y>Dhx>HToayPR>aLn|=3!>Kt3IDvYa(x#GIdp|tMal+Q;zGV)Tjq|@W`=e
+zX^YjKi=1S~2vE(s6j-}J-rE}7Kc5TesaW~8KF^rn)>`=clj@u<WV5VUzf7Nk6VpJV
+ztg=Jwsj@^btxG}SEWE&MV-$~fPPHO7wOmtMqisZo)u+7J@_U2HhP_I^%0P*wroP=n
+z)h~yWGH)c&`X4Wv$_7dq9KLa!qje7+qbDaCPG=3<g{1<O%T^s`3g0#M<jRiA>`FP-
+z(T)+ZskiTw=G784cvRJgo20By2up!#F55>_o;vrpYP?wqg&P_Z(YT>p&%4r66-^W!
+z8^Je^rY<6!tVc;e<;lmA|3FZw2+RjK&B-EzPG{NJ#FukzfoVPa2=w0$HlHdhE6TXw
+z6**4`P!2A+%`mWr`-#;9mo-2S_@QM?6TE`M?P#M_BLAqq%NxFtJpY!NuBT>Kq#@Xn
+z>LZ80cn6<th|p@Ss%#wKQS8_#9SNqM=T=W0ElXN7%(pc5;hpoFD7AU$1~;Bdp%!Qx
+zs0Dd`SwJqUqBV`BD%D_WaQ_<>sQ~_HNj>1z065hMi1}-;uKE!Fz^%$s!DvuP9fcwA
+zew>L62Vrmtf`-H0`RMdyHF>L38O0KET0FwLViz@;<O@)U%7o0R!M}$j=B^IhLzey%
+zs4Uf0GakfYFxV;6*DoLiE6f#jJ|XP?*0L*80;-`scD)b@zpXSY&Va5yxKQRCH?H)9
+zq{5XwmV#w_l(K($thiIlvQ6XfRRtfWK+yI?3^Ivl_7W3a8rvt4cs)iAFY@VrenEWh
+zEH90wWRp$#HsjRWhp$@9-*ozTMXiP=$7Yve!-y5_Q<4{AA2|?{SwOXq-G@t=-@Ry9
+z3#>4TB7Y8VCF+Q`8-l1YCUL9cC0DZfzU?A1S2a%~^B(;<g-RgOy*`?bVq2<L6zdze
+zR<sU5tQpiZPY(11R`;`vosumg9wMDPY$(<e=fl5mR#wqf$xdPV8j~ts$ki@}6Doee
+z^=Dv{Ayn5;W7XT28~dQfsG$a#A~&8Xvx;h}eCMAvZ2jq{Iqy=L(Y2iF;J&%q=)QSX
+z+7YYSf7LO2uHYIquIFy3hU&_;QEgjy)<ln0kDZN*ysu2PNZi^B(ff#8(DK)T(t-SU
+zDpF+(Wl2j<$EAb}8XnS3V4sH4l*f({okV+DD+?tVBl#h=+aD~mR!N2{+P_sgzkXD5
+zQz&?%SeuXNZ;n035y6Q9Q#hrSj6uvs`t0IXoYPB)7MLnQf>J{yC#G-w6ks)pcs8wN
+zs+X|v7<!%0g9q-*D=xMvYJOBkx$lRcq?^`hs?#4d^}}WcAJeHpJ5`T|y1r%LF~_qA
+zf2a0=MlaQ+6xSH^x)tF8(dqMRCfj(A^m!RVvy<1|tuF)zNOgzgSVk@`)C)8V@$a7=
+z5OkJ@0}>jfH@Qlh(5i-eE2J`Mb-9kcjSjZmxq#G{igR>YDO&0IM&S$bA<KtnLMYSu
+z8^ae)q$`3-_ZCl29)wI)?K!Pk-+teQQ#Um7`#N~&>2aGs_dy>^1D}}HjnHn(+V$;i
+z8OJSNgIfc^vBd>*GzWTnG1QzzckGTbJ*zi};#HM@O%5wci}io&If%R>w6!;UtcA?%
+zC85^md&*V-qW}-amHDdb9qx%$rTRpBlb$N?>)^xYKFrHxW!PkWy~xWyM}2YnzN+lj
+zj;0J@v}nHD*UlLUQJcTb+ZF!v;cDSnfQ3fVwES`2t4t$BU;U{d#qmL>*~T%N9$RC6
+zF0wS@YeR+5sK)9d_wC`p)laU9&Qf%bOiI>hv_=!N+~S<tH4T=beW91U#|UBlwh`@+
+z3(GyHJ~y03<WD0(?P_l6pfQc{hmAf>%=6$YWCw`m_VT{cLyrdc%A|&dzQglj`&a|%
+z!ZPol98Jcc&+wic;`i<fE*(lNd3$y>Mc+O;J*jA^?Jy=A*(X6PuuGHYf2h|E&vG}&
+zO^+rGUL`I(V%f%J0+>q%#2bLbb!ckFzPzgIzk+Z?50}lMyaY*_T9KF1riU5_AC^<#
+zScl^{_eC3b@ZhU7HM3_dr@hkBJ|%_n_L_4o-LtyOrYk~nuvq0_Df0uCgs$I+>Ku2u
+z*87jtcZOe#)?DlSZC<*xIDEG>^gra{!Kn^KohI#$!qw1z=xxySGKf0K(O~@<N#)?*
+z{jphF*qqavOU%flHahJSduq)%aIf4$g44ty`#3^%#F$VR^3PCCWJQUF?97}x`Nb(d
+zACy4#oN=AcDjVNPCHolfG^^odhgnMEvR5`wBi?cMqV#&VF!TS(!()AxJYTHmhUs_$
+z&|O~Lp}^lEJ0_qx(JehY`0CH2dw{Qw<)CodT}U0J7_{SeQGsE4Ef}nJ9EQsu53cD$
+z)aesMTsh=T(uc6DBR0xCW9bn+5Bz?0eJJ#sI_QA~pZNk;^%k{$Prkrk%)4G-uMg?O
+zT;|WOOKrqG(LDwiEFljY!L||R$LdP6<!ztycSu5EwLFg<A3U0LW?$qwV#EYsJq}E=
+z?Pc62KJSmfT!~Qb(Mv;LuyM56dg`V-y-dQ6iH%^fIG__ECIB|dn0rvHTc*IYi?LXM
+zlMs_V9}AOswfr!UtUH&t_a^yuInW86vWOVGynp25SDgJC!?x34wIE2iOXM|3>kH0X
+z##M?$>?@PK(wCURjcMeY$c|OnnH;a0#f|Yk&S!jplen!M?g9I}$S!NEgm^d9$34N~
+zOLr-(*KLOK?UTz_P83<zok=$&QF>{&J|XqVaYCdn7~?R(A&uEdY&)=7hh;asM(ZF9
+z)^64Tp*Z`i$@Bg687{2jv%SR><MP_KLB_hW?LwiSOv|73s#doF-PBvLjVTx`wp35^
+zos|MZy4`(;;Uo}=_NIhBB2#g*bAz{LgBUhgb5KVywXuumsr}a3dCHg*6$O$KaXc5`
+zgAl2oK#dgG%!&3QL>$svTR$JbtHG!qe3Q<Vzl0#Bd2$=Z_kmGnbWOWaB}AraKd94F
+zyf5BUM^xLfG);dSb!H^xQyFH?7(w|8Zr3Cdo=out5niX?f`5<W@u#^!f_(2TyV|s{
+z0bthY@;2Nj&RZbo;I4tq8+bb%sndK4-$PnKul0+9=w!R#_^wB3rU1TF6KtD)9X=yk
+zp`cqR{02;&hKMSi*R|B?Y&5yOaRm*@@Q5x~QB*SaEcUJ{JV~pYY?z$S6gXBWaY(b|
+z98BA(v*B~FOcKr*Mn+6#Xb1k-+H?%sDM@n)p*7fYZ;isOB%Q7NHV^94xbf3@is<az
+z^k00vT!|oM5~^8VzN;XcRiBt3>nF4{Kd40P#hY%Nz+jDJZlx(Y(ps5sad?KpEh$6p
+zTr7MKRBx{zI9VX6Uf0-*x)N}KerSgmUG<?HUd8=dh?}VI@&L(s08GF7OfUwJ(~%V-
+z0PWa}vVJ+r+)#Ml`5B|uD&h;P60q=<ew7^vVFW=AasgQhcB1j{1b_<5xhu)bdGPUZ
+z`!lGr^<|!Mw#im=&&@^tX+sjK0BAjgB|jaImD>5-uG9cs9U}px+uR+CwKxeq4r|uS
+zK3gh|T7rAJ<B+)^$mBixD6T^JVr}BJfQN3CDarwI---C6xtjL~LJ^?Rcgd|Yv$l#r
+zQOg>pIGTh3-DzKAG^KgT8huRGX>{`mgggi`uL|>S!KO2>e29GAwqYCkqYDbGoz{Tc
+zz4fGw%p^dL0majNreozk)Ide5diimSD88TrSERTXXjNpo8sbKe;HKT^O)B}s@+49^
+z@`~uadLdZY0}h2$!G8LTLPQHQ8dNs6Htmkf&9OlY9nDQfqp!fLk<6qsGSV-7U*4GP
+zMzaAa`iw8W+ipfx@`I3u`wna{B{G<pH^h^9^@ne+5C0Xc^unO$^=}mEz5f2N{%8``
+z?c}Y#2U#3=k<uH_2V8nMx~UiO=8}4)^73v3?(sA(NFgj(Ks*HTE~=~57?F4yhqD&h
+zJd2S6$L`W$c$6L5J+5DF?~>2{$!CDUsIS2LOwKK09jQ0M#oO**+3RM#pDXt#V(Sg(
+z$ZZg!xUF}gOPE${XdhFpOOg!jDbLW6tR;LW7UJ9|t^W1r1ta+K5g&$fmA@fvl=wf#
+zArR`DbbRaP0RYLH^{wMm89&ITzfYeEbvmO;y^Gt;V=YY0zf}Nq+jrF`&2219?b|`V
+z8>bIt)7SEUwa{E7w<6WWi@s0i;i*TowX-_1ffOIt(PQpQ1|S&Gs9OIJ*W%KiBDSzz
+z&u`%Qv}$J^Ys$rinTJ*!4Q6icw)Gz#)6vxAIAagXXZSFU^QGej-ORL5bI{Ff!mjn`
+zE_y-cds_#+e4q2ZPVWKx^ln92r=N689vaWHot6#ZNrGpVrfZwxs?W?nv9N6=^xK8v
+z+UtKgEa_ybu30iC%aV?$CX@f#=>>JJ=1x(EiRxH?xq?_UTtOKl=d%)~u%jM!SI|}B
+zI&D)e{9nnbh+g5T2=K=;a75V^RH^O?nn_$QLK-<&si}o?DJ%n9RhNNj`KKb||L5iR
+z+xa$3<ZW63U7J$Nn@49;m}P0blceBpT{~U>w`?a!*>3Chm(TBop9+5xp(cOVTp6xn
+z0r2X+->L)|uyyN=WX;){;xUe}($sW}kS>UrBA#fOvRaFRG4avq+O+D^r+i7_DvJ7D
+zzj+cfpgMPn6HgnCU^^#JeM`*BnzYUNBH&yDaGq>)F3tmcmk!rT_o^E2SlvHwYH?dx
+z6Xt>8rVIXYYFb_!=YeUbubMk8F0Cc<xTTKk{c*xuS$p7ds~pb+IGHc6DW=26pf>kS
+zElO{G0q2xFuoE6w84pa32S$+&?}EN?=xEoU)DukID@@%j?q$wgFV7qk6Y%?NlI=dX
+zy$Oy<ueXi$NtPR1zhU3g3Z+%J7Z<pyW5%+pm8hO)whr>gsqWvlelI<pzdUEIEYyEx
+z7U*-FRb~M*Ek@L~v;22*7=|ufZeuqc{Kg4o(*@-Kk{h|5yu;Bi?jic(nrG5HdcAH8
+z%RU1@;$cF=J3qX^I6s0BH$Q!CHceOIhQ^A|aWkx>RM>P_jJ$lk&P5}rr!BbTzrxuZ
+zmeY{~2KPECW!yO~`D{;=%wzZ^$|F&bUGuITwGdt&lf3K<4SmhLvyFv;V-^)H&ZVa}
+zY$=mnUFrb{vzdQhNbTA$8ulCzM{+Wg=6*RB$GgT@m=CcV)@SQ~s(%RJvazeH-m71q
+z3S7^-xKPU#rZ8f)IWu&=AL%9|(vE~|+}|w4paH8FWx{|gSwWBz84%G4x8qvJCGmYs
+zfG^LJi-w($1~kf?Qa<1nZZ563+Y0-f_McaJe8m|SV8jtB`vzuJ@Ge9J+2AA!^n>Wp
+zhEGVLO{legxc?<JytNXiG4LE42-DeYT*iIfO}S5yTwSW1vJYR#{1X{zlJ(U!B)8Wg
+zpZV+Ea_dgfrW?gmEvD!q^^pa!4_U~oPaly4B=ciC>fsBI$^1e78QVAs(K%w}V(t_3
+zxqhA;l>17rLyC7T?L{Skr{B!Vr58K1-so0k`XyqsvPE%*6!1yS=jQ?#(-J+W-MeCu
+z&iM?hF_zTDk>0b{zOfUSD+kSN4*^g63<e(BTNyZ8AkN(U_cONeE94;?g?IJ?7@~5Q
+z;yUBAu=#w+aU-r&tg#e5+b|gE{mf1|zD^=He;iEi!!-8$ZpEVQr<*X1jb1^^dDv0q
+znG`*smBKq@foSrp%ery9v-%3Z7rCUD@!%$D@3fom+SUev)8Q?`pg7G68euzrbH+zq
+zC5LA90g|lZ4?fXN(->jR*|QCyqwXO=&%BRv@E_<(RMAl45Pd}LSq_zT{oS*$s!yb^
+z>5WIfq(jQQzpeJxo&r2gO?DaZF6=pvhacIamj`qb>Muj+1R+u0^<LY=i;TbP5oKW7
+zr=KXB;OzN>_|prhi7l^`QI;xeIx3@UqVkLqY2Le;JHRm+N&S-ZrC+6^emo!lqzRHA
+z_dJQku#(4+?arL>+qk!iG19$$2uW&*ZYDkzH;@X+a)OfnT%_%%z*VsP?jE-keSxF{
+zq)$x<R?(e~u!Nrud_B8YA6Rt5C@@hZ)=%_zIB7)$+TW8XY@3H8o=wcC`&C(L)Bv<L
+z=^r=m04@Jrzz~J9Ikyi5{wbx=t8>l1TXWrksXlG^LyIn$``zAm+In+_&ep!mV?z*_
+zCu9FzKlxcCl%31@N!)U=3bgZZ4G~UKOm{mM{k#%Fmta|SZE0zM3A_);vk|?VF%DKr
+z;d?^7JZ-nTFYAiqd`yWu_xN!`;87^Ij6$h5WovY#Wf=nX=^MYhiE#J*550Cx2|xN-
+zr`y_&bYkW8uk!M`Ai;^T5z#5t@d}!@t9$FtE-*HLbF~Ys{ioydv%BVJAtt;XDMYf-
+zf#!+sdnt2bJLUG%;IDw6NcP_|yjgHbS}||b{F|F1XC*p`BWyrK&t2~5mN1n2Q1l$)
+zyr3tn2dVZBsi9eGp@7H3P&xh7s7@oY-9xXB7|&mNew6A)g6PXXT+4qte`Qzm%Kdn$
+z72Ui3k<i;=>8LWa=(tS`#ijT4U#Y_I`<GU%qKF4eUbMyRwfFT!gaAVUv6J(4DO^Bt
+zj=uGjPtqQ`Uod7e-{i+<av!sIS2BL9N1d#zM*?gfC<mx3*W%vW-l=qXic?IpY=E7w
+z5lRp^#Zmbp+k>;nc5;p|qNP_PfY_w{(FkxM^5Hs}60trV*UF*b&y!ygh@5%0!p#np
+zj`H_2IM#JYW>hdPgvdQC8!dlu(nlt%Q&>dO>o5iJ?1Fsk$TGafAmhA(J)}vnvaN~e
+zjlr4r9(^^g@k{MrbMeUfNuNJtK~vJqhj~}*!213LX%qlZ^<8^oTw~WxXoTm@y9cS4
+zO=AQ&iyUl_OG!mY@*3?n-=b>Q-<NM4);Gf^r3^ChrjaHaH?FOBDZXw^DRh^|^%%?E
+zW#{iYbFy3s``PFg+kVd3+x6Q2uVA39seeYVO<BKbYo;yAd#*@6*+~)C#~R)i<s4Y>
+zd3l$@`2F!5bZTSB)y246B4oB9a{wby_B1^>Gb^ik{}_*h2yo9|pC0_SiJg%h!8MeY
+zYTF^y`SDEY;jC*%E_ML+QEDILmkhq}MRXsSYq+31&f=t5EAavS2FG~&F<vH$D<=1m
+z99=LBkz%jq&%&d7CbJ=2_ok7Tvs-T6_~6maWc~r@mwVHw%eE9Aw848Zbb%N8yJhl0
+zF(qQTbKW7?elNy3;@ac({luS(+HNmn(98ldp-hgfT?Zs3h!1LP`#`)mAjaMqB8mY!
+z=u(M;RPzs{v5OF~o3&q%@rJq(4oqubk#KMDWaN}D5)Im6Eui|$efAl1SO~2)o3bIB
+z(f_=%OMKkkx6KL?=1c>}HpLD~94Qe>K8OkmIzHVFbBvpB8qf>?s>Jw1Tv-XgWG^9V
+z#E+&PaCXF7B9{v{Wd1t5tKdl1-8{}7ggtwKz0a@(_g1gAl#r}@dlTfn0D8KFvmRoA
+zMUII0L{JO{zmOo?t2{A!Tnutc(HqI6P}XN@{5@ZDXX!{DJeN6o5*OqwWgg?nXnA@y
+zj=T@&H_yVCNI%i<FM8wTImsqkd?oZ!20yNB&&d<`n>r5?OmNEt!?^=o3?E;Av|xAT
+zDUy>FnH!Jg-1bp~gx@LIpM@sAM_e`!ToW!o3iyE@4&-ypXkYT{e4Pd5mrJ%FU#~i}
+z!hB=|(`NJ;_J-v`m9C1Pr*oVqZF~Q@aq%8pdJf2$cAQgA`jI_gsd;K5I#r4?n+&Fh
+zypjshqFm#j^tx-o-9!w+Jfg3kOGKlxpekX!b9F@ZZ+TerpFH8MJx6j~*gHOdTS-$)
+zrWYn(Os12v3AlYt$w^jUc0+Wbk|Cb4G>NXcYCdi`FNZ422ex<p`9|hUX~?PF4ivk8
+zR)+eaMu-c)@N%Jaa!Wh4z)-}N&qoMu7i$dH9-9HryIuG15ZPP(V(ch<THStUToV0a
+zd1ReMA}}Hx2;B$baNwHmk+7>ok4!)IYezbMJ^S=}0Lmx6t-8;&PRP^Ex16F`*kVtP
+z4eIEXO9Wbsc*)J<j}$TGR1i+MMzs9-9sR~IK6dshdRK`kP<lKD=1o9KF!_sw%JkEQ
+z6phIj)#Mk0Wh4*#TrN4P3>U7@Loezulek$%DyD^=5<;#&LMYpCc7d7d9aEW1&bME3
+zmi6u{j=6=nO~iQX!-4!_T~<1Yn6anOHdtqSGMB`<9?Zr~b|S+K>IQA|?S!vGePEq1
+zAA_D1?d0avtvp-Posh@q?xeG7dZp^yxD{)a`^P^CKLWwtW)pN#P;QM)I0_y=B%;fW
+zVe&YS2O@W^#uH=3PL1MGO>e|QTf!32@eaQJ7zjF}z;#JWL`YCTimDN7jHFUoN{%}<
+z$mhW+ms^T$`f^q?OWf;e(MO1w9yY-!HHt4@&ktm|Gnc(1Da`jr_;5-)n>CsGa(3Sm
+z8zOMpk}#d@g4ZG>L5|UjFw|T9?uzY{aiq7*K#X)k&X*a3a;h+)_4%fm@j?ixaY|3d
+zN&i?lZ)9kYF4-i^q*(JN?v9*8N9PzDMq$@cY4d<=I*9;$cQx|GIkRUm1}i)6iCym(
+zCJ^Zg<`_@eim`QI4>Y462%ae9yp#JaNYhX8G|(}|UdXgmmApwP_4K8(?K1uIie(=#
+zP`UwRtg(y<i8*n2LWdrtsNOw4wU7&^k4ZkR8anb;(qnFXVR$u-PTs9HtMzHPMeU5n
+zXK`fO%N{cC75MWBqV0uXAT9C%$mbqQWwUbN)r?NP%Kq6S?emJ!KbM-2>xZ%a4b|KR
+zzl9}nuNH+c3|7Y$LHc7M>MPu7k>3K{r-tD~+Ps6({^~_Kl*s?c(jymK5U^Kujut+j
+zvd(k=sC{LjXmU&kEqso?TuVwxe=BwyAo8pv7p>0oo$fsVus_PSdPFrtL$VW4r-9Bf
+zvKRKCAz#ERR!TU5lQNCRUvxKe#k+{sMi4Q%D8{Y5xA~09qF(-OvPo@pg&O3?hRK-t
+z3QF0tJj>>@yx9RMg+SBa@vAnK=Y?tgPLU~r+Q0k1PaMp4id`|5g%FHh-3=F2yKQrT
+z!{rMv@b4={_krV_XlFM@%!JZj3cDzOgmZ<n5$hR@;PT%|U0!7m{<EnHXx3ULE)rgb
+z<S~N@5>qu%b@BjT59lxL<MC0D1!MOmpSWfU{H1(e0zElA`AE4lbEdQYS~z`|>yWsI
+zKb>Au2RP%l3M)R>uGEA)snG}?<cciYjhP%EosL1@iz1Q}{T=3C_#1@Rf==C;K-$nH
+z;)z)AXKkMzt43!yu;V-Mv|%_VUrvyjYB4k-FBIyzO(%+~{lQ{Y%=+V*@KkQLq?i{!
+z?Me%FJ$ClARwjQFwV39s;0iRH7RN?TqJXQg$yIyyOWVJCiO(m-ssx}|LgP%clZC$F
+zVdgM<W9>g>?IKB^bTsZNVldMGBf{_?5`&OODV<s<$wmIh`nd?i_E=$>j&Hz|O?(X3
+zx57vySRc7t+l<4q{+A)<n)Sgomv8dFSJR%E<YPLPO!g@P_JwaVpH|0ypQ>EwW-YH#
+zGoI|woZjvt#W-(e(Pl?yh2uxoe2o<Bi79EEBBMwrm@d-Hq+@*kYBZF`#BH~fyf9~>
+zV4W*s$chyY3=E3#AqRZ8ugwE`_blOOUU=F;>)BRV<z6O;x<FF!`;Yxi1gPx2XqsMT
+zxc$dnF$jV_bk;Bh<}j@4ieMb#v-$w3hlEhpsPt_WObp7(?cJikqRZK8{?gX=WP6mY
+zA5*_+X;Y3z2#Qsaljhnm4uj`XmMZhvJJe!aapSAr=f|DLA1@4!O?I9CfRA-nj3J~1
+z-FRBn;oSZiqxPbzVU`US{@@d=EzUkVM%%`O-HgsDLu8~Q4$&g|!*K@q7j@IxN5FZv
+zYEm~<hd7d4S{@O%VSHyMrq{EB54y;S{z31!Vh9LLKOL>1wF@QMjncasi_)V)j9{J0
+z_(WDwEtnW$jL;eF@{~Zecf@{tKmiJIr;5wGEn`V%jW;y^I%eC_H2cAaM7(2e5Y?2i
+zF8#PWMnmj6J4U3QI+P3hE)E_3TSe`}-PLEadXh6y`PsBm6U_Ou<eQl?!xX8sG|By8
+zx9&xKVTa<=P3+o0W4||@FV(Ewv?9u7*NX|>GTy+cg|zxzYc!KieI73apI1?LaXOu1
+zut`ODq!k^-231xIBI$Tbdy43m>x~3QzB<}85+PYhMR!U-ubYU_`C4hv+U7M`_?HY#
+z{yaAmMBYgPRM{bOyT0{fyQcR+zto#kzxYG3%4rYA!XR%)afy$KO2umy>3%t0ap=Z9
+zER*^6)7#a?xY0^vdE+*=JCm8pD|08mFz|TPU)VgS&c;hQ!(`S<a!t_(wHj&($OUQ&
+zED)p)ETeX~eRX{WP0`d{2>NkUs`YgSJ@|_en3b#GDhC&EXMElvZN-yX*K$FRDde0`
+zM`q1ypmE9QS#^l6XvkLaHq@#H@2hA{U8^qYv|dfbE0TkdkROWa&fPN;vHh66Fa+BQ
+zo<t>l<{=-(!3cc`U5xRU)KlGD!GlH#;KlKW<xp3wGb#&H2}VPoU;4^}*GB7_@yuUl
+zqNw{{YtrEi%7ab-Ug31DnFstj<vfz{P|<Kt)5}u_ltZFa$fqHOW2W={PSX8*oq^3P
+zYXh-%6ID4#niR0~bYY=h&y_`7r?my`KaX=%PT@oZk{<$0%+s!^Hi#l*N1YF@6Ntxl
+zNDqZw8EFxBb`6oy53I04+`a*)SD|UmqTOC$(<!5<!x*3w)38WdgBOAz8FToo7F}jS
+zoCs&GjWO4XgWt#i&`dgTcw1P;-1NtJd}2`>s`qPp5d4Y;ng5%1A(cYFS;VuQ3gjhu
+z;_359!g@@t)KXX#tIKkB5!Go$eEF)ON|cf&;fV$7S5Bg1k?L<YNu=D%`5}Y9+KPS6
+zyz=<K#n?dZf!$U#2LY#sf5Km0UF_^OqBgOkh#LG>j2XHFwnKwAdUcg@`SYH#h8ahQ
+z0yqY|hwcs{s#$F~ws;Yo6P90!kt}JrW5!7d#XEWSzbFw$9hy5FaBp5B)Yy@y-j8}1
+zk%d2i{MsMx6SW!~XrCXtJpgNN;SNf)>+d?+KojlArbkhYjg7Ez+40gS1INGM)gP1h
+zq(Xh{YD$|;MBoo8RJY9nm!rbpp*`}in;A3leA1JX!@jY#BHd5$f0yPVv{PAblh@bT
+zt|ipd=hm{`K3VXN9P=V+F_pcnQ|j6<4DxlGm}+w{!D)+9J!iP1&xh82Mf2x=l4|S?
+z>Q?rSmWX|dY0GlD@%O<0`1uA-JzEXJzKcqHkrpYc<MP~>d7QvPWR+U&yIyG7=D%nE
+zcgvoMQCs)?XQ}W+e^gz2gI(U@g?j|JUM`g8j&}sI*@u3>iaA{7yS${UypjL6@!{C)
+zduOzwr--6C-$OC4L8L+DT+hN*|3Rwo20fCf6l=!8i(a!`Z0r5RwRb0l2zujKs){Ov
+zLZ8fQ@jv5xN<Grs7GUHAp2WII-R#Sr0m3k>s>3^4<sP-iDzyncKH0kyb)R-G?b;v)
+z^wl7bYIr1<uOk4fFC)2zrz$YhJa$G<sGi1qa5XM#=ZtN|F2Z!>!{zPWt@_N-fGD8m
+zXTGttfB@=9UCq?cdr4d)f~~2~Vr1`HKaYM62}XIepOVy+;xoZ=MmhY(L`nP;`-ba(
+zntu$3CD{?xk@j?wQ!3x_-loNBO^yFgW08`L@j)-pG*EolKMVDLj^zDq-~Ue|>!0=U
+zf0{^t+mHX#Ac*n)W$EGQ`DK;C67YW=3fU>@{|liBl>T%T1aNfb3bJhHNDOaY@0yhv
+zprYsT#P<rWEv`d6NyFmMl=c}XchaGzJgx7+-{bykJFsT)S`I6JcP$PTA9RfMwKK*3
+zyG*d%x@+ibP*3f@VIS+en7@xfM*K*``w}GUd%ydNu{7LI3ik3y<QRlrJ?Q$#wvzO#
+z&8aekdOeF-fzmrI%C#o6Q!4J8joof&S-HUs_&0ldyK@T*wRXfEFC)Yaqc;k}SH%Cm
+zrYPg+?zP~kv4g(B992bnYH_PB8Oqux2xAz#JheJo*Ul(XOoH9?^cA>@7!R+i95vd$
+zY8ZO7OiC)wKktnO%<1;n>u2^tpoxXI{H$&oa4Y|})#oXl%8U_`QcleMJ^doaO=J!{
+zmK*)5)g1@5B(JHK?B9BIrTz@|3->~S2xos(gKx(WB7mce18HrRFhqnxK|N9ib<gYp
+zqI~q0GL2-fHN~KQmyTaGMJ?iPFsqGrp?x%c2Mu+vXX4kkDrQB=cA~Y#vF@2QMGcp!
+zj-K(E4sJ0F&Dg3r^||uT&Ayw*2@eEg6-aT(iptoDN628K()c{g?zSJPzvY-&&=e)N
+z$KZ)Nw#xfT`evZ=6Agoyt9qW|3XSVf3e;xOVzD!pn@o(#&b|0b`8z2dJJAMvfvQxE
+z_R_Tgq?(aE;;s@ACc8*{=~b!MQi~;7RGGpK()uJY)A+7f0;Q*~4l8FU4397j9+UQU
+zXuAuNBITBsC97rq+p&-$p7#jOJyK8nSSdBGtciV7=^w8d9hs0ZMG;`K@RLX=v(xJv
+zUR!~DsGL^b8$^CL^+)R9OPQ+BwtwG(XfLExz8$3)wxqiVSG%eOE#@W6{Z&0HP26{1
+zek$u;bFFYdTpGh89-(RYP!MF}=~~Tx85iI+L(jrZe>i_!0BvX=>Di`^-lm>KB9YY^
+z`P-*;|3biNmd`@+Ew1J6A**a<uSmb-3pF7(<ykaNcoL{^>&Aw?7mG$+4AD!2{@LZd
+zD%1I_TH1)+*C^?Hbvl`wJg9osPX?P`x;_v=jZ5#!7rp1UN4Hz(F=X)-wrM8Iu==!!
+z&rvh@DR`{2Dwx7a(QpV;>LU<uO>+{ALJGhq6fcxGkD;jBVkc$si1dY<ll`UO+^c!P
+z=aA-oS!6Sr5PoU8o_%#O_I5RXy8EN_ShJM;7|2<DKJG14^=JMG+F$B0B5piC<t-4>
+zrRZT%PMBsMMb0pgQ)8uinlv5!cC`>8QP_f@V+5&*U)%p=0D;7f=BI>MupWYYN^?BG
+z6p1GRIn`D&qWv?S_+`Q41iM7$_=IJ_Y@+c}GBZcztX-wu-h#Z>a)$Hd5ZWO;1=2U;
+zR_Lw|yZSi#?rI#|7qM*r0?%-sxUlZ>{dn?0Vzt$w{PWFUZ;hT({%7hMtCz})x5;Za
+zZw9l;v|CVbY4@FjOgSN;_ao}cZ!SLd@s{P-#egT6i}Aek<UW|uXx=%`k7ozMqmGs-
+z7_S8J$R!qds{q@KDfStW4O*i(O?h~a;^%yECJ>nr_M>T?!BS*|6X9k@u=Un7GXG(L
+z<X)pZ-HEzKgi@MXF0fJo+coi6T+raS3QR08maduuv0Erm!dhbNbzb5rjXBDF2T0}o
+z4|LEdwj!t=0u=WdRx?;EB|FpYK6x*DEm{7m0<>hsP2pq6n)o4mO;rA(SJWG$42Ebt
+z1Kvn2IjIgJ5K4-E&3GF_n4QhD(B1YQs|@8#FuFdriWNbRY^?p}$m}9^?e6|^gd-T<
+z3&npa!@#ozy51ucoVx1x@mp^Pw^~M+obaw5Xx@qHI3yT&D(J(G1*B(?EhWOZH0b4^
+zshUgK`Cs{L+IEY*d$Q|#=ea#n@+%~de%#GD5ae0!xM#NO(^`rgat1M>^;ygqKg#3o
+zxOQwt=!LjZA#IEivTZQ1UOC_BP>uVx3TPnrHIGk6)lu!*bpMxXK(&va4vvUc=aHWj
+zHq|ygS8!oUZMs0L*=Rano0UuXZl|bMb6*JJX;*7HfPg5=v+WoBfFUGhpd`|Gbzk^o
+zjQLWsu!o<$?>_MHPPGS}ux(RjJSWLOk@hsFMQ+s=D6+fq^f2>Qs>am3SC{)}%4*xn
+zmnU>GGz7w=Q9fU5It#?U30cGizM3yq5hsAlR#u%xQA!TXJDvxHn|S4hMN`4?_5oS=
+zwrRfOb_U+tWGh#sK0YczMLx&*A-`*3H^I^7!u3b@8|pm--<WcI+aApIF2xrCsTb-a
+z2ZBDG%saK-&U1~UG2YH6K^wj6%hb~P>!hSu_>Dy{$%3n13CXP@JB5{R<M;hpKqX<L
+z^Qg6U&#jUo;|{qijB`e-=W|x1olv$!A2KeOh`)%z%9C=1(QAE1B1qV6GqDgr0E&K`
+zdl(?P#Sj4=aA+9s@k$k(KRE2o@zUDTr(f?^KoLZV8pto|MNL=qbUuq)ZhGGjEs?E;
+zRvS-nJ4F)CB<lrA&gC1u>yWb+<K!iydqF=pn8`O<o%4TjNJ#2T+Ev%sFyRpFA#|PM
+zT6>k%?8Ws&a_~wB?obKw7SjVtV}i)0SHv~L>+Ij?S{t0gADz;J0SN(5(!JU*4Wa2S
+zM}cZwqUDK79B@O4-m8`m4+-B08x=YFU0}0o4qVoIWMa<?pAAF_c(4woDG3`@XlAa{
+zxtKCL=<JYZlEdJTL6@dV--eq?SIu54?Z|ssy+`&w*vY+KsCQ8s7gLV&8$r54Z!}@_
+z&6=5Qh)OF4j4a$jQ$qATFvGTe@>|w=c?GCG*!1vTwy}=0eEn7AN{~|9>suh&eEu!S
+zStC=C^j!MoY@9GDF7Yt}zF7QBy{fBWK)V%jv@J?~T1HdRUJ+>S4_6AmuWR=CGCiY_
+zyH?DSX>*{i=bIdVHeY@T#ouz`wqBAsARx^N#@Wm1__AV*eKy{E`%AOe$MYR5(_*H&
+zlE=SOg?94h-?M!kje)uS>xLOXL`W&vNg|>R%Pz*AX->JP6Y1n0C_2Mg?ECE%gtp?H
+z^7j&?sHxq0nG$%jZq!No>xnfm8GGTLoAhWjt>Hn&(PH{C{a$?`-^j9pYHiW1;zhTw
+zD6j!;`P}^WIE&&~4{bArV(lErt`H@CuF^ZDG$1xNc1e|BoO~tc>n#imX~A>e2zRWb
+z59`lWUy^XP8&&-PK~J<UR}v?t9kwFRNjH+5O<?-Yzts(xyb&)vn*udqJCVOKo)UQv
+z2a-wM`<<WLB%bCQcrg}R1b~ZVI-^h>MR@d2+)~Za&8qK}H`w!PXEzTWVyr>j#4I>|
+zD6o4g$=_XjZ&<FxFM$NpRvOiR04=je2M^Y3ik3lDG|lbxg@k(*&in+KR!424QC>gG
+z0yZ4gYnAHr*LGMiLIoI}6X`+%yh~buLSnm>`|y&HPEvh>H?l-jHjU~LNqmEim+yw<
+zie$?3q>cj)sBC|9Di+W;3V${*78K0;eW&*baMf72*DD~c_cI*Rd`m}(RHpm&2~#}7
+zMSt#x@`Z|_KiYpd;)(5@e>bhj28+MvBfEx%EXb5xA<SX@5h```@NN%?4A!ATT&K()
+z)?~F7I_>~w<{>{C|5J19KHQ1MjyfZ<ZH?KA!4lD)g66(hQ6u0R5MUD+hblfT`2D+e
+zh@8RS)l3A(Xq0!nZ<Z%<al5tZE}Z#}Bh{p8N^AbE-*ze>ZF-dtn1OzXydcZ;A-&A?
+zco%Hfr}63S!%t6R;0H?aby1AM%~d3w|7Eteb9Vh4N|@f(<pOf2#W(8X0(zXOLe-Ms
+zKwi4`G~{Bld$RlFSDn##_*PwsyG?RXl-BQ|%Owlp+Ne#}uUpk|!e(`jg8fPK_DeL#
+z#EnoS;>NA_A>&N;OEaI)SKa-3d1N=M*Waure!X|he!Z?8T}Gq0d^SPvL(XX4tiLy_
+znKAinB0i$80^Wx(OTLM3ZwaS2k@pk2PED7Q91fq&&YK8)^GapE)X8YSg#0E7`Smtx
+zZdMb#1#$N4-G6hj_!c_#eF&ho%P5`sZ6JmHQv91$_bp~qaIciRyRqG-xo03`f#G7~
+z@OiODuG$u*y_u)=Pr@pT{Y5lNdn@*PjB_eI=vGQ<pprDSDSCX*{I78hyO8vvol|>9
+zP1Cho{NTnA#Fxa2b>X|8jx=;NI_RA^pKhR=G<5q*XJ%04(l2ck{^+czO1AHV)3+><
+zz7&I*D#-j<>wQ0>d3l2>d5xb?_-#R%m7HuZ&iyppO|d(-dw7oRt^Plv6L^bach1M3
+zG43Y*Z%uw;$Brfev$x*-Z*gc`G;$kO9x5i)Zy_q=G<97{-+^L_FGJrQKM$uMePQ<E
+zQB}P$v55WnyKmoPM7hyQsa2|9_}5NS<3d6BCv}OtlvFl_$Tvuctf#zXC~O1H!7DD4
+z+je)lY&zj_0EBu$H{4!d&Oxbgf~<p_r#dPn){q0;f4)h(JC{unimOw^ZFhLogDgjx
+z$M#-TCh5ve7LO@~7?zI!1zu~<szM^}4(Zv#!V_-2yrc27${FW^!sj%W8RyPIC+^I=
+zBO3*CD*^FYQiUR`m5QUVG*?Rj<=NoEHqYEvmD#g2+vyv21+tl&)im3M8+`>{E6<oh
+z1%*ZHR;k%^ZoPt|p9*kpz5F9@g##-A>DlG9i8<%sLg6&U`FfpMZ0@re=iEXx1veM#
+zhpHo2h5!F|)+RkjPrM3wE%_il&saVFiVA-jdEgJiyM?)(0>ykLT}2eP`gwg_6pj3q
+zXS3Mr#5f9d3!}WWK3-3vWm*QW-35o@Immw<OGng^Lo<%IE?hH?JFN_p@ADdZsr4Eo
+za9TG>d1eq^R^j$)Fp_s-5XG<uKS#zr8=`ZK7d&NqW!9U2^_c=F$f^5G;mDWb2a!2b
+z&(bi6vcVJH@)ylTp7QBL53OkUrMD2p!!2$15PM@~2ZhApvNKQFHXH-3Ji#rrJ5gXq
+z3{CM}xo(GqE$;;gNR@TO-Peou+%EV9``q{MW6irql|#r6c+P5$0j(hBTY129f6J87
+zA;}b^-%I{by8smQ5;h~41EcHs@M!R_GH9ddM*R@-y$KxMSuYzsJL8ZQlE;bS!X_$x
+zK>!}FqJP@oqGCabujqa@ZftG**>6+_Z)r86S`YE0Nns1-y)pHD72N&kY`X?|sdS$>
+z)bxk9l?d}2aWD>fQ#nn0M#Ed~H=0p7oo~N#nkaFLuhjw7O4oW@@GRZpt2S3iJ<hAv
+z^6K^M*EJ8uGlJcnZ)I=!=_p0FL)}};nv41mF(+G&zZpjY05C>hbiD1OjfH{wP+&r;
+z$-AqQlvWvzZFVfvu@1X6PO~ykM&V^OZn&!Nt8Oi`oftkSR9MKRci~e$Jtfklo7tHi
+z_?>CT_dN%^)X1nIomtd^u;;mbBh<xc(e8G!4D6Q4XfH>rG0fmH5=M_qkL|7oiF!+7
+z4Z*TLpT5O%j^cRJ3y#sQR|)q>2ZN!wS9kp0^c|#B!PUaH-OhRuj&VoFp5Va@!|Nvj
+z0vHRokZ5!)N>_*C{J5Eg!Du69>c_j9gdj4<wQU@?f45QcBQX;r9P8n*mRpVr4)Mue
+z1zW|%m|ugb>W(TH>sX3B{#b<%ZSqce9{A#;J1#dUf;!DL6dbrmq-8TvMt0Kv*5>Is
+z?*Dc>Kl2o=RKbA#oTem6<uj%gDmG|XUU>wxu>4#b?c;CQ{hhsg6-=*vW-Eh;+9bAz
+zxW@$*VW~op`Lx4s?j<Gj=rwTKXZX<sQllVeK-|Z6%2fEGMCaR&)+5XY#h?1pgsPv~
+zBLQh(qERV@b!bu!^S~{ROuiRuckyGOav}s%Y)v3IT*n``=_5|lM`l|j?X@rU&A><)
+zQX%<>GxCZw(P-&3s=`1+jmdAi&Mhx<QxWcxyDahj&#S9|H5GNryN~*3T;k6q4qJS4
+z6=lR~j$p0{w_YfH-})~v1*L6ayG&~AKpTzai7&rgEonS(lu)t~*6^C2+X2JlZ`hx{
+zVU4HX+jOgXoIV%+L)}s7?pStE#83IDSeI&-xqEHWp*0!OzcGH++cZq8n%)lZh3olW
+zn>22Ox%pD@m6@G<!-)yl-O8=N)oQFpKEttW&o~<4#V{6dcp})h>>PGPW`AXKIc+9h
+z9E!KkR6FA^XdDHhFAeC{@XlN=MDx^`uL8gIJRgfveHd(DHX##?2KG_uGfLu5k?g4H
+zP;%af)oJU9>l~dVJRz?rl~okPk{HRT4|<!n*_i-?^yD8T#i<IiDL4==Ndnvjt^JLX
+z2~cS@KJ}s-F)B|wk)k9(2Wy+v=dR5q37&VBi#tTeYrAhLi&4-coooe0dF-6|^h`1V
+z0P_x#vH{BSD*uubc0k<)@s()c9nLo$qbTG$ge~uAF14847-3|=F%HzYK^$yI@1fg}
+zhzTe@_gDnx8V<~?3=VB*szdM*CRBRxychG85c!3;ENDa7=3uMJlWvWNqu_X!+bQel
+zq8Dl)0Gn%Vl*~tKExSe7b!#K@@aHj--e{esi8q8)hEz0vwp5e=DO2#7xNNVFpT0^8
+z93wo|hSf%giOAm>c)Lndy)(V2^>odC9f>&uPXJgg7y}-w06_KEhMf%WM(z<I#Z67c
+zC5iStE2k7oxbO(A-X8t6FJ%vZ-ij>ewF$*BC>48O#Q2=G@v$*ND`cr^FE-sQxU>H<
+zz}kywa9%ce`SC+PsT0MRUEDBZip9Vs9vlG%n5;nytL@bI$GtKjcxv89x;1#$6yYGy
+z(?B_<hU=slWGS6O;=W;IV`sdkR162jYJ^z3>cX>??f@uo6E81R=qiM_*{%)Y9Ft#B
+zo$O_r#E5n_!bgG4-g>MzA$5Z=9}mEg!yxF5b+!G?luUE+oLUD17@Bjp!jp?$j&p_&
+z<e3S%T)1?<p(X&vt9?%&br!&S>0sEvr(CiiBS3#%z7%<sd<KS`jf4r+0I5btTs_!q
+z2Hj(fL@J)#;yqlv*odK!Wix4g(!6JtGb)@jDz%0LNNhw=L&A^ynBKN;?pde|9eTv7
+zXFV3W#Fdy{<6DE+k=abNHLQ>A8v7^CyC+t{261k?^A4{LL8S(3=9x%DjsHpWL`(8H
+z+A|gCagM{lhfq<G@w%FZj#9sK%$Aw!HL>n{*(=1}77H)*VMi;4YJl~qJz_6)mf<~X
+z_=73$IMQJ+Z6e(O@4-)vxU%gnKA@~M^FV^EzgR<l17Vu{Cf}jLlnEtUOahiG_0_&&
+ze$d_tn-wLKl3<VA-Q2)V^U{{*T-Kqdv(W0RxJg%B*j9XGlEjj@W0qxtNUv~&@*QY5
+zpIl$i%T(Ct;YD!dmV4d}^j!qh=Mer7wZrwQBX-HKoW&Mxx!!+QQMpWQQ0o%XO4Dpc
+z+TBDE(rHX50+fatiU3{yuW5ecXZBHnws=2cc)<mSc%9lAPNb11XdN=X#h@Y%lA^F-
+z$Vup7MS7m=Xk_e4ECkR_6{2;cB2}FxqM}{ZKj<&=jpeXyq(`3Y&Xf-<vm5^<nL3Vp
+z*0;_$J_sa{>gX4$q+IS0=1{KoNE|QA8Taz$A=oI{F5>vpj-$OcDsraAevaMv@zyfl
+z&_syP)kI{aR%))GO=o%WMe8OcUAtDf()SeVdz|5xazz3dL8zO|nr3W)dM{>BY)F!R
+z0kz4@YxTPGkY0DoW?)|loTapB)DmrIJoz~8rYr_&@lbZTMhi(9@cG^0Kk&yH@3&km
+zio4?2aKqDteUcu~m0|Iv>Mc{r3gmT+K^Y=T{|0N>)Vqa6PJR)S-$5D}^vwg&sKrl8
+z*sgbL2n74w$4ZtknFc?3ht%{w#{8v9Lh2pHKC=C?=!H395F7n93JfdCq6_e|LG8X4
+zUl|%OUeT@R+|BAnVCrcOzGX{C6?eSy>Q8BMAw3>`p4!z?C5%Dw3KyY~NXj(S-u*}k
+z-4UK(h;*_F*WQlu`Y~(S%g#fccldi@7}2e<Kf+-Hkxpfpb&bomO%sB(Mlq(shd==d
+zG>+M0uv0`SeA>UDscjiZ&EcEeVIC^NO~34@He_<PjW85iszEukOaAHBP}@=FMa3Hc
+zU^pMi1dJIY_EhxMCFWKDB2+K5CTFn_pBi98uc-DVjdi*~(yp_WS#&Xhwj2*apF@nv
+z_rvgei|t>;gPg*xF@~&Hh?5CF#0mGjWI@g{x;i{|t=H(`K%#xXwHip2=)tX7dcxez
+zXpDZp?huA;BWg=IIcQH7erUX5{V7??QQhFL=s<VcV$CavX-U-OEYf%)(NWl@e3dw)
+z5l7pQ(!7zShijx}hNp&9Dt(+?mEnBxR&$3Y()=Um9ZPqv!#KW2JAd#sno$T8t)py!
+zIAe98gpZWE7vBMlWc$x;FnRqMRI6|%2AK=>Q2AmrxopcX?PPs~xhKETK1e*+`PWj@
+zDT~V<t@uL765ncq@=Rg=6qj4Q^P`VaF<<C|kj+`T@U%xO_x^1Hecs3t;f}qxxb3Vn
+zcV}wh0IwX#I+Uru9e5Ogh868#QMa_HKSK!#V3*BELHy&B9?c;Gjk`NXcBE7T5!vA@
+z)iAe6k~L6XN%2CN3!;{eelgK^FX6Orx605S5bZP~u^^@HnrO!XTqI*Mnl1@P3@hjD
+ze2Sw&_$oDn4_xzfkCjDk>C)k9y5PL+VGh~fmruEH@5}O-CyP+`@Q2cHb60tx!Pt%<
+zcMf^sEZ!2B?-+*|oIeom`<=uQOw%I5gveo2YM^4w*hFkVi{Gtu{>61r==A1ej9J-3
+z<}6uch8TV&8IQyo9c67eiAkYXR#;?>Q5Ny+x$Vr#I&>3C`$i;ro#OCW@I_!nw6A4(
+zfqY^5rNZmN+Z5)6cA31Dsy7*@g)3-Rf_I(ddrWG%@!R*jy}<0Ey?+rfuH%Zns&AAj
+zkqItJ&&WM&9T%DVL_451T*|_vYWa-Qqx%W?-sML*!8b^jGQhO;ry#$KJUoxx5@I}3
+zpT7UgGTEtd?7WKIJVMLqsm*AHWsp^^4x#~gb`)xp>VFlkq|WyB`tO`~UbkYQRF1f)
+z_Eq)7@soeQ38`yyfHYL~M28scw9(tJ0-}g4U?luz85K`LqqU+WHDIW}_0`%?6xCps
+zMDKM3S9hk{+FcQV1~qF4rsV@@XZ8y26wwPVix^+H5k2Ye;GYR!%|^NL&l7%K{F|?!
+z`vo`h=gs;Siw8uTOn`DBVL~sV_1|5`WkrG_KzJDWWR7m(-+<%TkY})m<F`eMUl4sf
+zr*R9tot2p~29Xdo-%FJK+CQWY3NM1CBEP|5UPXpQiak;VIeK*%54mzlM=t7bq~>CY
+zth!aZ+V8LT+!rq%YOVi0I3iv5zs_IvAG@KKwQ7dBJ!|*FfzjB?c!O@EQ0^33ADm>$
+zQrlV#4rS4hKUxZ>k7k<c{PS0Wz7ZM{B3QgEipp@oS*cBoxLd502q)Q``<AD<c$e)e
+zk0O0uC#f#s2K&dkzn%zgyA*nUR3`*AN{&WHtqmW|Fw4cWr42JdV96_-RtG<f9ZDZp
+z)y4@?%+5#QCP5b~^6@taslE<^x(fS#rTX`gMX093GyN!a=WLOmnwa;8H8WhA*c<G-
+zCS7=o4|Z*fUww583M5VUo}Sa;cP`co6=FVU|2{OeRMLIEfA6G)Kgx6$(|U|6ddm@c
+zyJspB@I+A1W|P>K?ahtcSpSVJ5Y$p?sJ4Mu+qYKR8Or>_(l#lbNxDo#@`U&#-stN^
+zveUbhr`UVt)R{l4u}}TFUDXWHo*6EdK&=NttVS?7re;iRKkKo2QsTv*7T<zyP$N#&
+zKe+n`$xlJ1Cuk>W4x^c`_9rk~@fVq<)kp4v@@^c{x02%@mQ=4pBYE(Jds0`qA7cQK
+zuSS-V9yP4w9;}~&tRv(iKH#8kQ9!<v>WSW^Q|S;$IgWlp7z>*Ge~*~kl5*b2z1xFY
+ztH;LS=hDn7Z*KJ{<AgO>ngKIRiC2^bCQ2(1Y(77?idbib-1Jk}u53*%fv~q!c3B`r
+zO-1z@Vmwc^pwIVGg#Ik9e_L~amWOokfsc1*E%aKf(yPNJ6pFpxhPLy0jX5gV;r+o4
+zh;SPYqnTw>>^bXe!9F-ON9%U3eCB_;g4wWc1Nm4X1$?!W5|GspPcOq5quu|9q^pdI
+zqiMQH2yP(+cXtT7*a8Xe!QFyGaCZn0f(Lik;0_Bciv)Lf7FgVUaXy~+J9ExGRo!>G
+z=f|9puIgLs-g)WEcpbSd65~ee@JELo_>UUw@zcC$r}a&dhqFiWrECjADsF#Ie{4IA
+z4z;Dyjay&?r{viR&pSw16O(zS!l~mcsmTjgXh#wQ71z_|S6UkQkF@BAE42gv?T%);
+zj0X^gNQ*hr=N}u02t&gBBz7y}?tliKRp{ecF(lbgngwQ;S8isXOUdpdbOX-Xj5&U)
+zlWpD;bT9lm4Rrb19Mi%mGZxyjE7fxfy4g`V^V#`Ro4^a3)06Hw?XnzWyaP7xJ!Y#K
+zN#^DU`b20|pbNL>S2#P8a&_eKV_2Y6viKEhZ*BZ>YB_hnL9ROcM34=@(g}#<&n19S
+zPu^`hUIIRaA=che5^R5mIrfYo)?19KDEwXQ=`(4<a8bIi(1U1-RB$k1VGJjhEm4Ee
+z*gz`9>eMHSeWmH{98N?_dn#^Gor!fw2ZCzMWG7eA7lh$VN$m>cf@*Sx_2E6?C}WW(
+za-fv+n(%_iCgER9Nu%IXlI?SiG*zQ8B3=zA>nXfyi@Nlby&QoE7jALb;>ZlY<TMY~
+zG;42%6O+i4c|>o5iNwP+$xMfTWD2*zHJNq9hD&81U&PZwSPP#;NNw^g+)u9_I@q^<
+zuKAjV?-`Bk_BUPGpos7*zUdxXGzE|5w)s~K`GJX41uf=ZNn^>i3p#)@uFR4?Iq}Nc
+z_=osNPR;ru(YfmG14h8F{VT2E16eqRKJ<-8k$CG}$LOpI`)ERoksjH0spt1iKG8nK
+zu^D+!|7LH0#2B#SsmjUtfLl<TWatZuju#~Hxu3@Ub)o)SBkRBOG9u7vQ+UlFCMaqJ
+zbp=}SD5}VA*f@gQ`XXa5>z2qe*%=u8>%7SsG9rvR#5w$?nT}B)*_FcBp#LEi<O`*+
+zl5Xegg|_~?1sn89x4x{ra1L`4`ayv$r>If_RF>L?Uj(uXeT2sryBO!Ub{*Sdh!HlT
+zH<S=ppaq-tAK;h4DoO+9TYugcYztwY$h9cztxyT4B#=Zyr8!TWTL6d!`stF6^Aix9
+zZJQ&sAx^^8=7a~FC})eY?$u9G&Qb%R)>u-9^5iSX8&wS#!K4H&)2uNv3eP~96Q$2X
+z)&e-VP=yvDrvQ-LOF1W;dwpyq+SweRJAfC?EWAXJ=pOw1!n^adg+yl`?i}ea7Q?ZE
+zoV47vyD|1nKb=@#dHLh^QmXr6toBA+LSil5(DmJ)72IPl01QH>D>@)KTH16F5P#0y
+zlHw5VtZ2v}>KK`MIRVVkFJa>{#D^Dp0x|DKNTN5dQ_JqjN6Hz8^>oy~=^n6b6usF;
+z#S0St&h)(t)e9QH=uqpxE2wUC$3}<v*1r;w<L5+Y7;^|NuGw>%Bsqj)%RH!Y0GHch
+zMY83BrL4WtJXFMxNx#;8XX!fiN~-63`<|}OmL7=S!LCcLYh!>$GdQL9C3`D82FMYc
+zU`f<d8emJ#QHs~nx}+7SW%#Xi3E(IxvTKw9|Mq22(CBI?;=BI~9s8}^eB~(1)gZ^Z
+zD~IMkqT#f1xgoR$K=nCLAuRO~dnho7VaN|}8@s<l^HWGW{bPhWm$C)5hlCmHL|Be_
+zi)Ni|{wES6bEn=niG3V-pS$-17AUQYOW)WVg*%udzMvO`7=J|dQ1QgOkoLvf%~yBK
+zqGDE!p#1UM7Nw~@m;dt{9wv4@9TjS*_J^~{$gM){TO7nUCWgOTvgF@w%uoA@rl_bp
+z>9QMH=f&;fM$&qDvAhckT1H5BQ)@XZowyK2xiX>9#;LLOgRt$C8SscKck(WGl4az3
+zN~BT!YWYsG?n9_+)$~?3jQqf-$pu7~Q@)oe25~wkw00OcHipFe);4Gjl3SO=a~h{_
+zCapxPS8oXwdeMz{!;(nDU8}c@%{=K!zGrJWGjW0At7|)1?uZr*2Q##{l2&3#tG8TO
+zw~69LuH~NlovXKmw|wYC^Z!_4xJR_dLsT}C9#J4#7v#+C@dT>-Ny5>XhJ&M}n?%7`
+ziiU$d3r9)5Q8v|Ee`Y-Cj0)#i1aPkn2cZkwNx~S@ECPgW;CSiUeii{54llZZ{MSD&
+z5=G&He{gTQ6tf(y3+Z%lJj|(+1w`cFLnjT()w*EC@}h%m{?>Blj5!xJdgj~KF|{J^
+z4T8#&hhAnKoV{%f%ks`C&fs~9FZQtYPARtKHK^QIOkd00M^j9(YW+4n%nMeZj^qK0
+zO<(e4RqgXADo?sb6esW=&oqcn`x&VC=}wpM_^D1a@c2ngBlG%+O+WCg7Vf9;fc2)^
+zcnr$-Z4@1*u8<V9tXd_eL(>h{cm<2QXr5koTKCqXn6CIa<SIU2JSqfVJU_=|LWel_
+z?oyE=ou$WlWOV55W&>2<bn7Y_I?t!G@zHPaC<)`@q(3Wu`^Zcs_I^g};~%~dnV;+F
+zpJcyqS#T#&Hh@2T;bV(JkC0bbWQS4Sd}dRe=Aou!R-~bhT&CdBsMVEd%Q!JXMKSZ=
+zU3)lK)%weLbM^9IaqwUdZp&=T@i_r43s|BwbufP0`5_-to3cHzDtFUYg<!VtiMrXx
+zomF2ih*qkft_+SV@{kU56PkCDKh@g<Q>>l_$hDKWOsw+u!;VBYa(aPJZYVUZQatv6
+zSvQ8g9zE@z*OD<p;ez;+LTPz&-88Tta(ZYZgbm~8KSIc$Jy6PTpj7*F?;Pmn<=uWq
+zVHWgQ*xp6tu1JGukAdu%Z}-AI<3{^)<jKB(ufI3Pc=zzyd4KK?r^4}%+mCu$1f|_<
+zSN7EOhMiMBvqS?PXcu5>hCx!fhlqW8dT{X=-CJ*Q3Gbas^NttwVc+p-vKIY9hdeHR
+ztbjC{wHzrXI{$;ydIJN!y~=NXV<i2XaVM;WI;{!Q>51dT$Uo9k_7mn?|M@W0<Og%d
+zAel~Dx)OK;Hqd?Kue2S7meQsm>D$|v4ifiTT~EeA)v&HOub`|nk$|D3wLsnikl%O6
+za~D-QotU@X16<y!#9il$^<-OK6x}hl(g5bf>Qbmof#{T#1Yy#0gmZ%Zx(VP;uxd&-
+zSe%qEyKlmuHJX|!+63lBJTr!07{^xh#X;fk+Nsf2tFW5LB@zl81)2HVONp@{R6P-J
+zt{CuvhYX$IL0mu9=5V*&V2=y|TynRS53<{oSXLOZLYE3}8k7^$L$GIF+UXn7d?G)h
+z^nT#dwnO)is3G-EcrSG4hvM;A$oK0o;>PpOrgj#7aU_W~wqQ_GOc(@g<kB`eNt)Zd
+z5YWPSMgj|R%v`%E`sBSI9S~+-4G`O33dNd!EeUrI{<`z-8p<MbDyf2fcB{vHPlj2g
+zahtV#NZRoXBNMS*T$x+{75SKjvp-o`+@$1xBp=Bgk%X=$*r!SzP>|a|*YRF^YTg@p
+zHHcul@S@RRi+}H%+`?^ve<^5S?a6J0?Y`jJCGQmP>743*U3lcInV*9T6RNU@OV9!D
+zp*1;q@K)aHutqt|cs~i?`|B`P5Ec6lOYQvpsHP*&{hD%QaO=bEBSnwF>*7TbZws``
+z5n{@*w2{yF^4_<Zpb-(kkNxoX_}bkA#jkVbq@d8<D3YgGpJz=Z7`*u1r2=*BYaQ-c
+zrALI%c;_+KmaK=F5c?E~$~He}SPVWysDNYai;CY{qJ(EIn|~vnieRU7?=Jd9Pg#Pz
+zS<(t7JsG2C((!8%QU4UV6^__ZFgb=`q8vOJsM9L0;@=zwB^jr?uL<z(+_*yeo(Xz;
+z9lIu`nhcORm7PWHh^Zv<Ap)9S;6!+m{0OG-q50KucNtn$eVk9m{7}FqDU_(QEM}DG
+zMjLC)d})i?fv!DgbTt-cjKhIw(w3$)g+G^~ben*I#@s(gCjH2Ry&wkXoWF)fJ(C8y
+zR*T)9?)eEG5&S7OyfKtSh8$@$6|RQYir@FfZa%!*RCopfCffYHj4x~)0<V6V#_Z>I
+zMC!G_b3N}d?niufw@5*u5y0RxvYqH&yM^vF-}#QKrQ^r#(8wgL&A+M)3Vzr16=D_W
+zXzsi?(RmB8x@A*KRAw8h6XOA2fAx-y@Hmge89#aa1D1`p?^;QQ)vrlgPYQ7z8&B*!
+zp2^EWRUtgaOgdjr8Ia9&TE=#oQ!4_ogO&c#1zeCs)d2P?+gt>uFEJmNK4L?H)hT>;
+zRlOpT8`WO^Mbyn0phOq7nC7arEk1Z}dkP&LGO}$up26PpRS9w-V#Nz1w+-|Zvts|y
+zST<}8zt>D8*}iuM4jyW^hOAB-%0FS;rurl|6aXJN$BG~g_-vO!JMAB0Jrn*wT~%Ui
+z;<UhWF4-TO<IUJ>nt-H73|1K6(3rR2`9rbmyU5hb2o%G_W8y+GwxLhaTsjfS$gI)w
+zkCUU=4Y-QM&n;os*LMDG>g22}F|i-EsnQj^8d%ze?f(h~fQ%CvTEi})Xwy)JNCPmY
+zqQ4NS7l}@mwOH;O+#-sEN!NPR<f@b!*|!2FhP?tF&MG!3N1x^}v745g68w*UigC;^
+zLCS5hi-gYJQJm^b>77L(-wE2Y_Fb{2wi)AxpMyzvR2BkI>&bRVQd!nC6ThaKYDe;H
+zJbWCXP3>`*4r(m>2kzN6JwkYjX1H%ljXn3zxBC|BCYy#d>So*?^<`lk(V+3|E_>KR
+zCX8`N6!lTo2|3xbTq#iL^zaa~y{hpRb@zng;1W(JKr0!=L8UMJY}?No;PUP)aZ@N3
+z$>VLzjwkw3`qCrMZE17}4GJ{yw0QtV4F>nG2&Ug#<^%rJlQmfH=si~oK`%<Y+q*nI
+zbiBL8quHBQIXBGiQz{tRpN=Ma^xH`y;E(pk`s_iAa>w}F<L!w_;<Jpy`uCl;FHKp<
+z3qB6%kxdrPLT9EEF9@W`p#GfH4NQs1mdO1|7OQzJ+TEZv8&wi2=+o5+`S$A4X)XlU
+z^UL)!%u8f08#uoE;xLJHO39Xgm*L;FOL2owa(knxH9wtUe}<$g?GvnSnT&s+aE7*W
+zuiuF2|H*RSO9@(vfgS`M|Ly+f1suAiUIZ5<roF?M^K>xQ+wq4GFXv1uZ@z6xc#*jf
+zU2p#9^g?~>5ESsXBV*j9eMS268+T4v6#}_N_v8InEiHr&c@xcUVMG^9#~T;l0K`ko
+z5h6nLIkLZ>0btt^`J6remahJ_cqq+~g54L-7J-DdaA)C_H^Q_6gd7D=;m_?T!tHQh
+z58)qQGHd<#$*XD{g=uv#<Iet=5q}`p)NX~Dpgzjs7@BQ(dLkeFWgA97@EexZL>kl<
+z>IlDo_hiK6i4@N}`Ji;g;2AE*;4?pdZv{&QKP#SqkH{QUssNsMUhIcqp6v;p;w7bk
+zjRW?e^6X1et(U{)s%mW67D3$S1g2Aeio3rYfZ`)~iC_l8Rkme*ev~NC0unI2{NR?k
+zO6~cvkEZbrN43=BYnDjE&XiNCS=I;gSX@tqGrTK93j3i$tR&bOWl)b1`W^Pa9s*TT
+z-~Cm0(S`bRxAnHki#TXnCzPkU=*ILECkLaCOXs69Qn>xcDx6hv>POb@*uDwM4NF{q
+zhM>ssulUH(WaZA05RE8Yn@j2_JR1+2)3s><(Mot%F=uAZ;su+7k6)(mStX~^@7NAR
+z*gtGhIfv;~nmnhv)U9s6;r?;@hFTG&vW<Xu&q=fdJ9;8YB6pe7_QVWHrx#9j%-#G%
+z!A=+JZN3$IFf;U(2jk5z<;&+lglXgvwV@LfQxw}pqrhewFAPxxY?5d$T#A%nZ-%5G
+zLw!gJc%#@om+v=6#>ZT~1*Cv@T#p|e02wZJS8@;P`yrMk1m8nJOQb^~zGqdO8$op2
+z5|6-sCXNW{EBnI(nrFLlvU5Oq3ui*gB(cLPY6;E@Ny9ZdEd|0kHx3lbTil5$+Vl8X
+z459bB@nQZ6xoe#2zOtM4hvw4J=Wtm<2s}<9F#qvQ!rL%TPsAx}<}J4-ehL)Ep-Ng&
+zB;ojRXvP+;@9=s2o)PaLBz4dHx)~eE;kR?IDZ8fc+B)OU;Fs~g0dYIi)Z}2)4*7vA
+z%C*cj)V?>nk3X?nbg$sO<GsG%$7s`(@Vk56t9k0w>(5~(?42u@BKO>)$1EEAyU3!0
+zYgWZSk;%ealm6Pq#8oisO3w)W=Gd2ZV8pdr(Q|QkOUz@%Ev-(C`co7|k;hradV}Qf
+zlst?!@K&MtPqoRev)3bj=SKyc!G~}BIfHAOyAY>Wr4xgGn46BUc7|lnRTvQl_uIZ;
+zw{%3$Iwn&F@T4j1_mm>DEoS`DJDYl8_WDk!TMXQfBloO0s^__bkYYV{ljlqzxC>db
+z*2@la87hlwUI>n7TmbwHdlK!vw|Ku~zeLfZpHG%bf;6$R4tpFtcj>!#ENpOhNSO=!
+zH{C}C_U<Y_Ld2x<`qcK8+j(lz_y((D6nT2(?DvbbHV3QW(IKUXINAGbmV%_DXtM@3
+zO|TJgZT9+F_aBYmS?f(j&gL%VvqUEwod}`R)M-9w;dg!JjbS0LaDfoOu~oSaYxDgm
+zgBL+{<o#B@NC{Ug5*s7I<dI?##pg6;36_2E%ljG00%zm)iRYd}f!O;1<bWa5X-w&_
+z$HLD2Dov;V%(&?<TmJ|nZ-&L@WzFZnY+E`+o8mHaux9r=Q_ruP8L{HorlCRAzg~}E
+zGt4>`!rm)B!4v6#b0kK;vnv0h)!`c;esjU|y6qzA8wlanyx4<Q@Lzq3Kl&u=$5g)x
+z-dnoFE6^G$$;D3P@m#fR8~CnKfuwkvBF4{a8(}UnIXuND_Xs6LW03|1<tF`0MTfG!
+zs1Clj#XaC_>~~?EFsu?c2doSFN9_^#!%k*oyXcKtgHuCifz;Lb*UnL?We=NwMheC7
+zJ)T$*#bW{FC$W7DNzXWKm&6HA#!Xiy)aQm09@1<7)w|N19iAnEJ=Y3URfv-5#izvA
+zXk^@vd?j<mGlty-|LB~fe+8~P6(+X3!vjVG=QKKKuyH4EiNgdXPGt8$@=0>3hK7K=
+zOzzvRO2UGaaBqf!HChNWo;~19=?vr~a%+Gs>Uw{Uwh@rEc_?aluA`hO33>Oz7Y+PS
+zCa(k0Y%=2cT*2Nj&#5sJdZeCGH&|K0Zj{M;@YTm}GCwvfz~U?^C-3z8=jP~OonOza
+zJ<V?|`0qUhIv^ol=Ho9>G5&6RTx3ss6<?&6$EAu39>&~D3c~)gAkfPv*Q@Y)3&H!P
+zMfs9~>TKS<y}o)RGDUGczdD9@WW9viK647vZjYiI=SvK)@*Bkf=+Ai(J`kHHhVSP=
+zZOVJl<lS$GgYOGgMcO7-SHP%FhyMbKesiBohn3Ky>`vdk!WZ$Z@p}!N8?<gs$|z4a
+zso1z|$&g0M3L=x}w9K8!TNR)4npep~)b1S_Yh4L#qHbZ7HUtxzC+XnhWjb9WbX}v<
+z!-0B7-GG0K#8Jqrd3-BXo{(0O21~Qzv^k1`n<huWm(b}{5|oZlXOcpCM5FWz(M%M#
+z=v;ci3|8!*6=9AKzO_6Y|3XI55ypuxyQL<wcqT=gL&nkl?%L1zFBsn{P#u@NEkWbr
+zf6A+q4tF)I4ww_wT$d^unm!`Q8JMg2*Pk$goTY^8-}^C|V~fYo2z$>31^iTUF6SD#
+zr9P4E49$^1mZAT3pzz5>hB`x>dXz|F*De+Cd+yNTanYA@@41Eji=I7ypwnYj070MK
+z%mm%BraS)S9>HAZ@RDp3-lTA(Gy0&zU80#@Z`deZBHuO+%_zW|T+7`_02BE&7SNbb
+zZPMiGo@4s_6^7I<ILaOTj3W464f_&JL1-ipygrMQ9eQeXmi60#93vX^&i6Fr@5*pL
+zR9xs*m`5&ie9wmsa?Eq1J4E|zj&+}7_T|&$b5p9vuitKVG5ij>T*~jWOnn|^q;$WZ
+zi3;8cSHInv&vNy5=1IM9;SdrH$A7ZMwOxjoRvBMLc2D~domq$OfKPn{qd~9_ds7ig
+z!Ss{D1uz*Q$3jFCqbniivE(RjlyqfsDZ*&<bZ(g)v~5#VSnPtK&>Rh&YPR{n<;m&5
+z^t5=k($*s7J)hRqF{8EpUulRi)}>ym-DmMh%Ybgc0dP%uc?-z7KJ5B8hsT;NF~px*
+zfY24o)ek9$MRtrdOXCMgxAmA8r}U?HV@kG@T<n&`EeYd64L5TS#Z?J?2UL9lM^f#w
+zGx&Qfav2ATE|0j7PGSVpz#B@HY?y79l%cJpVF6C;4egQYvY~L#vKy5s!Z|~PAYHBj
+z+0axcBmH>K@Yb*C71vK^$}?UF0jsjt?_%lApo<}oyh|mg!adgLgPEj^OI{fbfW(NK
+zk)9PG85G&rAJtS^&%r<T^kD>d7l)QXLVS((GIncv;?Z?8ic{3Q;2AvG)Oo4#7dPro
+zwk@A6RptuYloIuM{OX#E$cbC(PEfAzdnGp_4>Ih?t}tnEJsYE}!CnIB9e!^cr8%1K
+zc9IK*E&mKdasqu<AFsE(74*mo-3oZ-Yr#HYFZo!b`W(X$>;wh}rH{Z<Ar8uVj)oK!
+zjah8|L&4{2=EGJaSozMAX}iJ`rR+A+SA&|nHUWus{AVjf-D>Pc4L?4J=G=d+_L=3f
+zy}50YxXsHTmmeXSNtUtv%13YOs40Cz*-=v0_WECtC4~Frzk?LTG@&AY#74$_e=o?>
+z&?7ah^im8GvVL+P>)tZ?ZV<v-!#7T{!UJb}ks{Q}<780LA^!GD+waI|4PT#WXseTO
+z!Q<DdtV%Ys^^|z41Uy_+$B7NvoGy1uKNc`&I5r+&_!BBPVR(>%H~l#v+77eqMXoMo
+zXn7IDly&(jZiL0Ce}n}b<SFeE=r~ly6A%ufsUftJbDmy#XjhQ>OTG1mUBL7x<B4Q3
+zi*2Bqkf)$Ubnr$nZ55xCba?v&{PQe{QT)%~?T+uN%`M1(+x&tACaYu(t~L6%!|bjk
+zIIR4L*tPpDfMygdORD8w@^hDRF$Nk4Piq@ju8Zg6J-Sp|w#_FC_wdCzgGuOAf7J<K
+z9+GqUSjn;{ob0&z*2k!VQ`<W&=kBj!e&Y8Ru98!Pcrq}B*EKb0B+z3uk)WmZGsm|-
+zt9@Hy_-toLfBojs({#cIU|alXdOi2O0ZV%+U9#;)_WV6?Q>D^Q^d<R`t%qL$s!9Ad
+zVPktu>q$IwLEI^D`d9fXziHx?RNo2F<jwCLie+#lWYcUm$Z#OleFE^x>TJN;a2Kwz
+zttR&}{{(+9B9iv01UxuMX1oJwVY==h4FF>XWmGj6L)!kBfu?j&kMuOmzcD)&8vX;5
+zoA^mAIDFuHW8xyQAQh)X5jSS)*pIs476>M*QF{BpcwmiZa$5U9E*$e(PUFo<KOxEa
+z5mp~UR0jrs&wS~>u$<pE=>8%1m~(-{OHV;v>400L``x8lUlIOKv&pHvHM1R}WuqsO
+zBDf3M0hEqsJcGNudv@F_qDTS6*h?ZCWWhTJSILux>-XFx0;7K9`(`GOk311(7F;?Z
+z@^yXQ6a)7vwl&_Yx3eMr9qrOZK4jSMhu)~6KNyrs8@Z?aiapQkJk6m2CdOvzOfTYH
+zpYNC;gEG0P09U9(xGgQ_3zj1}dkQHQs4JnIW!<X;uurb{)0a0*>#)ElqJw~sHyLre
+zsJ`=E4pfg@zV--}GnWVG`ge=g9lL!OL{Di@E)&`Q<jIFe5}X%;MA5UImA$8DHV3Db
+ztHou17YrB5Nx_4h(E{w-zp?i60MC$)J?wmJd1aTiMsjP79ua>^Pv%5~>xTvm|I6!p
+zDkHy~<~Psmai__XzBwt5+$7J<Y8iPIva~ta*UF8}i+`152^~7`VkGgmZOeAw-1g8O
+z+;Tth7{OE)OLLqhK_X3!h$WqdpOc~HGR{r(KTiUS+4obnu9i$bs(q=p5;XxB*Y7kU
+z_2=-NxcwO8f*$^+@!oEz2cuD}n;h*2IuHfkFOPT#sVb9r2zB6i2r1>f;|P478dlua
+zXvSq1>0Huuxo}hLXEJ;iF1(}KfaQplOc)}FA@k`?DwFu8a<q3rDUX;tucQnSCM>|2
+z$Q?%-?g4EHIg0<tdf}3Zi)>>jtL5OJvFFwC6XonpVTCpnA*YDjJM7??fX%xn4&^7<
+zE*w#FEPzaS_UTas-Q+ZjD+g+XC~6}<N__YDOi&Va>4W&0;`P%Oo~0dYFVH)Fs(b~r
+zJV;P>@%Ol6y1WC<ZLf}<dgw%5K4>XP@<YaTc6u^D2|^%hiKc%CBFCmnq1l2(IVluq
+z^f^10X|$H?NG?T&$QiDNhVBPbW2e%(x4KPtiTse1A@N=Ke8k1S-$JBWn<8Hl)UzW?
+zqAn!h-?GC?sB@sxi<jd{M7waT2`}Ugd!db!1NT|4&#wNb-}W9w7+n1Wo+N|EBts|F
+z4*ILZ3Dlk6B`7(i*AwxC-Aa`=wLBeCJyyuMDWLsXnT47uVSQBQ`FL~qR`ikDsQCux
+z^(9fjUGKzWs1oy~gdh8PX15RgcC!cCUpQ9>EnB!@ih%iQrQkw2KND=^y!US>yg7d6
+zNHo9gcwdiyI6G|3;g(kRBUA{*1#x8(`@%;b-&^{kBOfDpFj(hG1mg4jzC+LC@$-Sd
+zB#3xt4*Xc9MRioLCdty7*m)8Jdc<DOzPS|o?#gfksA*e!$${E>QtUqx(cdAo3K`8f
+z{W7!IIcp?6GsPa1VYjf;o|??)a~(@xCqT_4ko(YLj_U&TzwJkdFgIzQxovd;V?8wl
+zZK(w^NG{%Sn%n+tO6H~I&e<5L|Lt*J_~&JH^RT+X6W0`Q`*9B=c?@$wWFra?W5+*e
+z{`2LAHU*^bhdl=nIm=XF2d50CK8qFh452MtGk~5kt}+9@OJx8pc0Pt4+NI6n7;LFo
+z8_g91iD(y#T*)i$eV=6eih}1bwGnFll!|D@F3cfj7nGK6u7b-)`p|yU8(b`r9H!jZ
+zkRIupz8@ZrhAB6UhN6Sp3fQI|APYBNbn=Xo4o*;Vu5FpK&}zohm1OH~pV^TJexX}c
+z><KINi4kY>ifjC#jF`@R+|e3{;ZC<4TmDj$56d)d#g^FREB;nEufi|DYV-6{hSG(=
+zbx;B++|8?t@9K45kcA)Bk^|ep(y#Vv1jDUPg;3D<lI|1iX?_sV3Et;6<FW1<X|GZ>
+z?m?l|szw&9c{7bRfp6nmaQipd27GBJCv!ns&5WqeKI_l`^(@gmhb(CRb_4b#@jJLJ
+zT&Pq(83I%=3UGmbkB33me8sDZ(b~{_TqrgIfRCXDp<qz+83gOOyQ+JQl;e@1+h{>!
+zA;Smt1@(-;9q(p`e?ye~|2tV8t3x3*<u!nQl$Rg3=>Lt;a7KX~V4`K>5cBcbbc5rF
+z`DoOALlo(M{2#c_I{zEOqWp{k^M9-+loy5nomkKO$i4nQdc>K>|7J{Eqc8fwwd$mm
+z81CP5LIQ5CR@O-B)pTaar3kZfL3l5^w3)E}nWFsIK}Q{WIEkU<VBvgTDPV2H>lReJ
+z+wOFv(z|5ureMS1iT>DC@9KMIlnaQ2^5e^j*uVmwT(%3cAq%sT@07CrrdTOv(R|sx
+zq6bCxBf|VpMgY~sr#8|dpw}3-o@EOGDOX#y<ZZt#riWju58BGI5#NfJqk~_UBS9zl
+z%&P~8YY%n#<)fMEW1s57F?5+vOH=l7!-brCh1U^EHHdBV(<g;?cu$0RoCeB4vD*>+
+z_(0pSY$76j+q13uWbiLs!0g7O8;DoD`EARyF^oOW*W~j!3Y^dPb@MIOIbbCN>kMwD
+z_X?{H<m(O-FP?!t0U@XNWRFh*X;?PZWcMUIGjC7Cg)kOH>N2M4NqHbTkfU53b}{Ca
+zUCH~zQ(C6XwFM|UXy5LB)mez($zZ?DP<Us)CHKv_cf*Q?o}PwKj_5?8^Yirw4k*2f
+zav8^6bND@kb!9l@;mcdVnVn%30<tHcGFr=pM`%Tc_*cFjll9_$UMSEI_bauk@Y1nD
+z$c(TS=s`&l<!ClNWMW|^F#<=Q_(y~^O8hM1P|SSdC(9jDIyyEXplOBlw9R3IPdV|*
+ztbJ_Q;Go^ikim5oNMlwbI+CaCyEvwgaT+;+r9^sV|3C>Lx$L`h&rdX0F6;_U7Ne6b
+zN4f&iH>}B#0mn?}VD^+Zg24BilltiT8nacPS$h}RJ!DU8j);wv<r%S|#UlNQ#BI4u
+zf#SbMRmFXB5`UQ?4Hrh#x3t{arPwk%$DTFxwK!;5U%xQM=d(HcD41uSR=EMxlWeCi
+zWY;cHm>578C+Xf-wQou03?Bh(6pY+$R`KrW0e>rs)c-L}UtC@`{;;(0mXexfd~cEd
+zwUOLkO}45gSx>`g-~Nqi;tEe?sq_N1mPQX)gB(uxGmOq)=37|TfxRm)YwJJ86x|Qw
+z*sLvKn0==*q7|^nj56X?D8b*-u4A-VdZb)b%$3G%%*X?x&eapiZ1Ol|*}s%;M%Auy
+zzXCpz0pp){G<m%@w@kiuO><(_`Fhh==1JhuItWO}6B^r`HxPl;N=C;xMzZ2kM1RJ1
+zEG#UmF`tlD&yHqT@{5(1P7#|6P`|56;c2k}@@hmcDV|8ecq3?FI<;->e}ho)fu0o5
+z^&6gd1%G+H-<fbBDDc#*^`=u+gm*Ld2X!ANiI&i+^RAWP;V}mHA87$0Sa(`;HIpOl
+z#p-Q42)|3sZn{5E`bVQr3!nH*;kT5PGt-{_8dy`%_aFxDVry8XivX<f-0YQ)&!j4+
+z8apdNJn2B08P7P9QUM!PFM)_OP4zI)KN=bd`0dYb+i8Yv8+JorGn1T&L5Rd;CUJrV
+z<y)x%!T0o5d^miHX{wDMfWOaGN}S@ZmfqL>vj)D5bm0Ukg2!k{b5#Ph3(CrOKqTch
+zD;tcRUzzf;a%B>bKBH>07TIH!KV?6XAZnJ(&aa{~U-`KV()~0gB%+xi?H8xvOAace
+zeks-^wr^GL-6B?uEK<?t_K_&msWYPz#Q4itF(=o|=mcE_%E4<sUAFfgYQV}6>&4^G
+zddjV27D{f4hGhQs_sv;zuWs9aL_IC5nmaI15c!=Pp_|+m2p65QNiQQw^OI1<u|!>H
+zT{@7|wUNYY0so4S{|zt*Ly2U%IKg+2BirXXYq2FVvA&oPwbirpF1=a3Ec0k1j_w}V
+zxK8akWabI|koex%Qy-mi(7vUNa3q-8ab^Y~7h+ATxi$4iJ`5`_iQ(OxloHoFZ^b_T
+z4Ajm<XYK?(P~MnE*U}sYRZ7Occpj4uy(<Gmf^Jhnuyuv4tA_HQgZz?jy|y%XvHer3
+zQ`{`wUOG&ZEx$>Zic~cG6u%%M>Ad&i_$!{Z0w)%vN_|EnQ!0nm-ybuPj|9(J5u59>
+zWe|A3xqEBAt`XJq^DSO^X`l9``e?PAhOIU6pnaZdaY;XCFK$Aa+d0dUFi%0-*C8vk
+zOUh#`9-q3Iw0tDs-3MdN(8T%K8LhT9HcIDJ!hY>)bxN1%LgMiDPh;81(u^WQ8f~SP
+zfr+n)?eN3{S7KTqB0ee`Axv$Gs~cnsOEJ=qib_xu9$Y0%kr9L9v6lhL>dNxpkt#@t
+z;Z7ry$6rLD{Eej__uOuy*P!MAHYiw)UXd|Lu+z#K9@Ofnxg9g)xmn1ruAb=DW|Nxi
+z2ohSn<rc$3t)5~|YG{!2a0808{xj>aA*aZf>Es*X#M9M@uxv>lk^oru2>j`z!R}9I
+z`ZW695b>tj!hZI#xRrh!J6iA1UCYx-J9vZyL8!5>@k7Y_+0BoYi4BMmBCnx&B7q4s
+zboA31`;s94l8@AG5$qW91c>Hm4|1@td@0OPJu3Rw5s{qw*HO^!A73K;tuXTfOX!j{
+zySQqGDhUsbi<+wDDo4gR<c6J@>n)X-zu#b3CU?*Ip(o{UW(>&VM9bMqaHYweG~|<9
+zS{B!8#MkWZC~<s`lmSb3_R3GUf7Inks+Uao>NM%9C{bav!mf;auQk|{k7dBfJg6h?
+zg}F5)@Ix{uk<OScKy@<eow-F;xfCOo&5zP@%?RQ${Fa5n+Bbxnd7s)yh|(rhPu&3@
+zCN0ZN8|->f@cASi9#rltKD@2@;Mzt)8L9M-_WRUzWJ8~vdR<)=F}Iv}R@ltOH^EHh
+zIl>&_h&b^szhG*<vmwS_-}jWF>&Cz1>oACB_x?t){#m?YO7H*6R&A;;8)8L=j;L3p
+zkqbCjl}Hu9JvP+FI+AJvDQ5Sz5{DEZ6W=Ds=SO}=@MR099X8T7!gCJP$VYAYd4<%K
+zP-%uXVKCGUCAxPP)M6Qmo3$WAFk9Q9#!PExj<1#F+Vw_Xj7(wCC;waFLTR0>v-@Tc
+z&+;LBIFxmg&X?n?g08MAs8FwEtHOJ>!qynhY!9!Dcs0(M>#KqySpsgetN4chM5Vze
+zUKD9wtV9!UzFJdUO(OVGB;JS(=G-V5;orEu`_&yF>C>;~;?i%5Id&EF_PW^6C0g?v
+zB2vPu95uI~o&F9A8;hT-ck!P#xn1nC{O1N`-_t*&bC-}^E_9mEX?Ko6-a4jVq`L7A
+z>War}(t4FubrlU&HEhisk=~Tv)+3_1$i^y|)9-R^5pG4mZ(b~2-%b3Gh5^Cdz-H@?
+z>^adgrgbz~C7}fQmEi0^llbg6^r9`uz_&!NmO)NueHl*Gbcj>@V?aJK9}9L(*x(D~
+zOZ<!SRS*8?zLe)(vE0Rr^@>r{_Jxt1$;FF2?cIw62Y&y#_d?IsONzYnQ~28LCO^0~
+zbTF(sdHuJ@aSY6LnEs%oXVCdJ+~1;KI{C$jqpS8DBR4$x<YMPEVO_@JdQ&9O#a+2t
+z=O>Lf`1*d};&mX;8g$3DHz|M`p_QK3i=jvG!B^%G!8oyI0>-Nxrq0&u2N*nyrr56j
+zzcI=o3+%K@GTThRsP6)H9{<^Taq(Kz*K}|34+E-t^Kj6uc5lB8gZDptBprOTgM<!)
+zvBu#wv@bb>^x2h+N{wxgFUmb;Jh&^fIDO{Qg!)}S*p&goP+XJy_k1HU70Q%U3Yyou
+z^`k@s-pFP;i)<duayk_3_4h>9kA1(2JT~nm({QGNU>VVT=}d<8Z-8Gb!n;F%GIqsW
+zL)yG5!wnq)ry5xlHE2vrJkOvE`P-Y&mG;0kaeH<){gg&qJk_SluP27W;MvxUSR@0!
+zMhzJhD4sKX!_QCK1HR1__)5fc4P2M3sL<kHa{(l*m1AIm9x^-$SYYY=9nOH=swMH0
+zpm!y%aPwmK=5!v_KMxn5;goYU8Cr)8yxB?LJaBn)Ka$3;psGILz*8t2v7HhS3ZIKU
+z;TGP^OivFht4<Gs4bdPYA(sJ%#FUKy6+$@<2G*Bj)n~0=y%bc9)e$#zX&2Jn2R^hF
+zz6^AL!2x=&$jq<~1(3mkDBcr5%o!Kp16hY`UkUY0&6D%3l+!(adkYkEo@VrCs}RZf
+zZ6x&=R(PdG!B+y&bcTe#L}OoqRKlQyNDwXO>DuSKFwl`b+4DC-U&F|aXWT~Y6&Kpu
+zpZMI5_3;mx-KU|ne~}&|H_l=S?ZbvngM?YS9Q^)ah+c5^0M)nQ3T1S+0<mcudgOo=
+zB4&sOSEohisrL#7#I<r`OydriUWAYE3~RKwEwse&s2w^5ZRud%3T1Ql><U}9$Z86#
+z7A!I*LE)K1BEyy~B(j>qD~Cll9Or2pkhm3W92=m+iP5$fw=a0B*uBI@%uCge;8&OE
+z)z1xo#clZSrR`^LD%PhI47mFyixF4K%VJ9R!9(4Kh=MnVAz#W%U&`oN2Azl4Has&~
+z?id2Zc>ecVITM!|B7Gg9?hi9eBIKwhwl5Eb4wogaL%et^9;=B?p7H(1%ef2>s^>?}
+z^Z*(AY=corJ@A(`N9^V^p?IaHrqiBo5BV$ShS1@)m5Q^oL45Xr*Tqigj}0y~-VOF<
+zN1f2uQk)HEKGL$?ik`~w7}D;ihEOQC9G?A@xufCFfa&g2biGiY=1?fv+$x3kEy;@K
+z#`8+|DgWX2Lq;f+VQ2sRZZnl9K)dqM-l-i0GBUJ%f$`zweXalO@}W)0aue~1ts)xm
+z*4OlreOC~tndl6lJ$l9er6OSad65#-vs*x+hxsff$ud@(zFUG;&Iv6~me^*{wDzy1
+zWyIDkx_f)FTY&`0)kSjj^&5EAr`%?WTZtl<I|-;KzO4OqbKf{yA+$wSuH!Kvt!WB|
+zVqZT@+04;7kG;Z22kyg<L_fH1-$sazSj@4-o4)#KI6LgkX>O4`3nQ(Pnv1WXYiF@a
+z&GDbh_n+&&>>2PHvDe#7!nU(8py~hd3MK!+q<ei;oJ5<>{D6$mu4RjTgvikQHXZnY
+zqI>;GoZhj;D$V7Q#VTI(f3AkR%ia9aXsgWgs{Negg-@Ff!Jv<OJ$t<Jk%a-R(ei5#
+z`@$>SOQgBQ=@XeBQCy3A{pxuNEmi($o*R#6KDW)uIkX^3{m6)do`Y*XXK+!iVzEjG
+zmrQd@5&ra_@0zINF?i2de-aPKA8D1x`mbkV+Y9vcLi*bMRsI909lTE79t~rkeTlHD
+zXHT&0UeB7eFrZH;7;ROM%YTKk{L$^dv3!TGX$y99=5>5a6~kMz|4{+|QPv{)_85|0
+zrmgDj6C7UYieu6lZW*+_XLl_9-4B;W-$z=Ne)XohW$~N7T2-;A({8FKWmU;nDU4d6
+z#B%0OOF!i~w1!BCfzgVWJ6*cE_pp_;BE;zk`P75o5v@~qvu-X1vqgB(ZkXAsTGL<Y
+z8lG}Q=zUgN2E>Z`ei{C4OCAebkTS5AR8t(KmWb0Y>J!O*vyH6Bs4xpIQgmg~m@@yW
+z`$aB|yz!4w^stLZs#a2)x+wQ1x&8x+f!CIYjif@cpyWj^jCm0VHITQK6><GT*Ven3
+z%oOLnNN3Hzp{w<&I6!jBhq^}=r}sSlsL0kT?jstL9qJdEv&{*moA0d}w9R*AoDO$W
+z7wKrR)VxGYxpA2%hzfM*wyZmO0Fle{7Lxt<Io9D{4*%Q}alctAZ?N!JELd#zRq-?D
+zFD&;KdA&O*va)&IR~l=~y5f)3zp1DOstLxjx4g|O9$_9~OXDl3Y2X2}2-#w&3Bj<G
+zKZ&ezc}%M$E)Ot+^KF7kY+SAF$XJzn)pU5PRh+cO<#A0Bbw)FJfDj(Y=h)~E#O&Q7
+zjmCXjvWP|8#R^Pg987F!JRr&(N`+eklba7idKdO=nLK{FRn&h^CmVaVwg@BiQj>`n
+z#jRqP;5?z~XrZ>8n{u{WGOJg_`^0A54HK!{_m=x2A0s>!!t3kMM}<x3FsJ{h>keUk
+zkt^5Ub(92}aAIJ}U9S?K#k(>mDP;t8YpT!wylr7gWzVkR@m2+yX?El4yiG6+w$Vf=
+zW@co){`{n%&lCsZ#?TO3Z3H+)OW@e9CWtVo|D*!y2)h+Msw&Ai{RuHU3X#@i|Hn%_
+zn8v9ngX0og!5YExJ)Y*Xxollnp)Aw)Zr5~{!>{S{V0C&w86>nk;SdjUTt;4&`ExV&
+z_xtW>!;m%$mb`RXtDFdJ{j?kOCpF+^X%!NS0$!pDLY{)0Qef4$(7Z_5*d)@v21UQ>
+z_)4!0JF_{1^e1uGlo)b=#gu4q+o#I9^)}ZO&8p4ESwIi<A-e&#g)=xd;|1C(53pSs
+zXq5-$42{4VjEd6TQck7@N=F_YCJoZ*JLZ22p=rVY^nW&?V7fD6x=O%`b9ImTaPwue
+z!aQ)ol$fNr4V+VhjRy_DF(+H;(Ft!vUM&LdvqV3{oQZ5!uo+I7l))klGKp9s@|p#8
+zu6oVC=2*L?+E2}pk9k=gmsRl01*%uwCiSH=;%~^ZL<8U3jF)Q?+g1^W2x$@fyxBLo
+zm#9W}$)O|FwXQgKD0Y)BukGU~1geDe|K>%-tgU-J^X1fat!+x1d%8C*lqH&%pDbyc
+zj>Pul<u#nXsBNkON|8HfpeZ#ks@>U__ep<c@J2Ul72bFzURmBp@oEx-w1{nOrovkN
+zifVs7(;QpN-$96Winp)UUdK+2X%jKDuJE#M_oHfr%bQ&19T(uL-Zh04Df<xYYFz+z
+z-HpPo%&WNOYLr8}lmi<X7q#oB+z;P$3Q727qYuCEUmr4?j<$Y+Y8Bmp60YoCnVE$Q
+z96m{tYmg%DBD}uz3(NzEMkc!o|8ei9O0K!Y9&2TPjq!W#Md$ZCt%+;5k2Fi%0u-Ls
+za;!bqD(SPzT=K<ZTcK!uM4$bd5Q3!@pmdChkK_jN^xJW(4N~b>65du|-th{?c$Tn2
+zulBl)fRq@SdUhFu$O5`T+^LUKM1OxZ0L!R=ab>bBg?UeL#>+`3trXa3)M*H$%2Au9
+zCU1Tpp5*EG!`A+T=l>w@Kj;?+#q`ts2k!SjjRQCn58Z|NUg7aq2jv07FK4n?hA`*V
+zm@ILSegEYvNYkYqx;IP`Bp71&eOZ7dytYVl%^&kqzBVh!?X;31Gq_~M=yJ{PduqHw
+zYWj$qK#anUAZga1ewe8y*ZgX#qLD%kZUP8P+8b&(9URkpYzvC%T>xSuHlb&En?YF@
+z0WvpQv~9|D)k#Ne@qVFZMy!hjayQ<ChD?jYv=5|%hO~<giAMtQK)pI4I-fGLd0L-%
+zGY^>?!ojLXfR7dexnx{%n-Bfq2ZS`SKtk9eYHnaY?j26S_rN!Ccn+Ndb!hZ)w1Mw`
+z(^4{4;eM6j`=G$pGj2^8oa@Y9E<hkK;|Y-Y5G$SnJm38QZ)F%m`bJfLG~{i3<5ONf
+zy_)bR*GJ@G1(>q?_e$N(?a5!mK;sE~YI*PXOak-B*oVtbJM>;Xz#Q1er8dxyk8>Ud
+zD@)*eanV;I%ih)`q3ip<7ZomD0eoons_alH6R|lYj9VaXjE(+4O#&Q=-vnsCKqSz<
+zY)0ZxQcray-|B(c9F1&0`YN&wa|m~Rn7z%fq&jnyD%4`cn&(V5Vr>c5@1Fr*a5nx~
+zqG47+lagHiIhc1pH{0`6wgTz6)@hY0*2-a(N02_<(F}7@bd*l-;{`X7`AT!ozW4At
+zgJ%|$26k_TR*o1FCV#(N=FLtBDIgxF?|WLeYY?H_r35&TG+$ruHyC3a4Blc`zVEdv
+ztM0EBG?>l1d`|y>c@4vr4!o>MK4=$AO_}(Rj-VHu7@Mliwg^m$*XEJ5v9E|WmKQtF
+zbMkaM(^oQ(k<rp73H11?fB^SNKKL*cY^UVF7_`WaYp6ePjQxxw99eVu<|Mrqlj{6)
+zl3tZ%=I32xz7V8f>CtV6^Ti)%L!L^dCVs}~GYx1Xzk;O&`aJI~f=L<_9GMLd21`sX
+zse+b_T$5Fwr@Ia>1zY&KATUS2fqR&8BAonA+%5L76pcKydH|C0=mUDe;2=4ep!X5?
+zN>ttui{9NqVur|nQtI!d$J_$_TFM;SPohP1<0mM^?j4w=8iW`w!bGa1imtKAOWc`r
+z4zxU!%pV2WD1HKp=fP1F%UEl9dp>&kot855Z(7JF*{>c%&Lk$UF&#sHBLAo`BICh-
+z6or>rB@{OV3Z66tBk#3RkW#Lb)kf;+zP!oM37_p!&~mHMslo*5;|9Cmy@4ToA<CFi
+zD%~?Zd$A{)=)4C-Z`nu#yaK~;?>e#Qhou*$?p0Fm5*wF<wq0@#Htzy`4q3M~2KiO}
+z(a6<pvf1*UWaQ7@BO*s5BVTxw%Vf-Qcte&Fn*sugzm0B{S>HaC$;)7)jj`p;cTBg`
+z$3eyB<0e!cH=^xP6puz*#PmoLixsgNB9s)BGCo382}0%*lCDw8EsHar)=qQ1TRZ2|
+z3l@_<zBk%SJ8f|KjL4Uj+41a!gZWfaW0%TtMceEZCcIkEMMNi|>`UOLEJ!Ecy{juE
+zQ}W?;>D1^)geX6&zpwUV=%;{ersq4AxmzqXU;PYNV^b4)$2fjZ#{${x7f0OX5dV^I
+zO2{qQUM~v9<D=^Rs*hP$q&rmzGolxCW>nl+aMZz{G+|4OKpK=qV=gL(`yX^141Izv
+zj`c^FBS@S2Q4CuGk0EF$cHw5!b-#Dy(|ZVGiOqfuUDIu2R`I1}7l5bsffr61t@#|V
+zODUqyMtntN8k|Nyr#}d*+l{492<VCLxex8KUnTvmX81!&`v;>&xb)aq**-RqCu==1
+z!XAP`t{J;o$R*9KF`Co3P846?kv4X){>|H6%Ty=epOZj8a@NI9<Bvr+VRfJw?lIZ3
+z`jc(zeBlz4*l)H7$>g(br&WE|PhEiDwLiU$D~_DKzP?;|i<w`Rl(X}g=(>HDS|gSV
+z1QUDj=GlGT_3N>#o)mfMjb-2oF~0oZ?trW&@R2GZ)gzPV^!=GgDQa(vtzM|B(H`ZG
+z*&-A6YAh3S(<Zyp<JcQJ6h9vo*z6LLo{D;G>7GBEvfASLbC(bD^->65NyDVO|6i(*
+zJEGUpimg+b#7|t+ENpn#r$rq@7~d#>QqDLnLVK>2sC{T_2^@b!HMIjiJ`HW{)fO-h
+zbC2Tx6DG7vNA@}Q`qSt19W4jB;7(ZP5F|me>o#|n)fI=4HnaVi<eBthR{=@cW0>|P
+z+aGeRVc(2>jNRsE^-}O%e2*l)SqO(=Y`L{9lE2L>le7Kw!!KVGaYp7Ru|s(R-fYgL
+zmu&l%ftEJCl@Y0wJ{I_U*yBte+YkQ*kRq)kb$zV^S^?M}84mbiHo4;I9k=h57rCq4
+z8dY;#yxYYQ(^R%=QiJ*P?EB258j<S+f9yvK&gX>!Uq#NW6N5p}@@IUi;nd(|E4DN4
+zg_R!f$csfq>uoNfU$%tG4+%BbGW)C{tj46G`lBs)=j6|sQ@>Vv`c&iPVY-G&=XJ}q
+z*Eh|iL2NxRVu0QgpB<zwtIE=P{AJt~lRC<fuw*a&<)jS;w6!PYC=^X1|7oZjOsOwx
+z{~jc;#XM+73ugrp3_L}wR1ZFpfaV9t9BQgAT{~WL74_np<}TYXI{X$~-6nxchdEUn
+zzPG{b#E)g`erBY4L6{A5LS1wGgn-oY8-C@_CtiGj7Nwf=kQ>+cR(@<&wqY`7>TTu9
+zf)Qon8EKeftk<7TBe@AG4%?d04XRH&Y$lF8X;reW?mL@u*XQ}KC}EJ`oH>igG_qu!
+zKXiI(`r_|*M1AgyC&<T~7{Bzf>v~}k8Eu4OWf+C?rdJB|0q9lkl=UZ;U?O80Sj+q}
+zyCaCUf&!nOLvfN*CF?TjY%b35LZ{ouv&VBiyJ{>=Ty&b3QL-f#(mi#C3EC%0=oS!q
+zd<ccJl^|s)nC`Tq`L1LqiX(jv@2g={*~tY~b`xWuHu%KT4mz3dbJi4dzME0K1;x+B
+zlAy=-pSKZ0zu|qv)8r<=qU#^pFJ7J$HEveMY6D{eLon;HCLtE9==i}ObaBF&5%XqI
+zV3HJ@o2wZ&f(9@8@a4F;r-m0D29)_pH-6Bi$P(_fTcHt&xV5W+tUVs6af_0rhI5TP
+z*W)_wnr%=mA@K{GLBKRb#fh_fuZ8ZXqol+=ac^=$MTPQ8b(OMEZUncj`tnFCzmu4C
+zB!4l+O<{rU+EOR~qHXXvld7{>P4Tt>qHW=lPmY!qe3hD+<i2rQpS5@7NA2n=#`Eq5
+zNum^Q_fy%&w9EForWc!Q&_C5i;qK~=Psb{NkjH~wG0o4+7VbpH31zhBUHFhGnd*qX
+zT%c2%s)P>@6Ci%>(stkPRK;%0%-q8}`6G-Sbpcl%KK<nJP2@|ShrhR`BmQ+SVP446
+z%1g&5hG*o}7j2nw^dVP{pgwVhRt_0INB-=-%A+y#S2@DAp%X0_wQyM?D^gL*6PwU?
+z+r*h$%Oo!Ij8+;x%6tq?8H96b6<=nb%&g7+@Gt-HGM9sQT38LOf)DaroC=0#)a59g
+z)Q;aqz-kLwPzugY6cU|#bEU1+C3oE=qoN90&19fW&C=3>^0LKJrl%wf+e<&ox20xx
+zmcBUMPm%&<BVo*HwXY8yb>vlwf?QF~`NW->QgZ<}r}c*aqwA}qqWHf+MFgZpKpF&8
+zx}{?!6s1EtmhSFe8fm2)k?!u4T0*)zmTp*LVRzZb_xJvNZ)VQ@+`0KV=QHQbnfct1
+zZO_9?lm5wd_II#h?2wEI%lEq&Ar*&-WUQQh($~Ylc%doHXH*)GLW|#e7bj<Yc)J?j
+zzp<Z~2?ee8sNJ@U>ST_YaY)y)4C4%^vJzaB1A>r2JRd=07tMHWt@?_soeIgA@VOm|
+z-7>LuebTGRaQ{U^sn-@!WHX+a_MX*2QKuI)RbOuC7mY^JOBYwMNY}W&Jm?ij?~veV
+zNvITL4ZF}a1BAa^yz>+z_HgtRymNTf?j3jbnUyNt;O`HLr;fl_qjN(M2pgR;pudNH
+zI*w?*V8>iZfRumG<A6SEO;_R7>0PtmCs*8F7Cd01-9uX1^17ip?rQPZp!8tCD*?_~
+ziN8B&RI_V`UGi}e9~bFVM&@eW=FCh<hKH@D<Xu8Gm?MN*zxYRuggsXME`O29@DZ%B
+zRT0+94b0DdGsXAN$=g;uy71Ab=ws&>1IYzm&uo#@s(1*JRwYeb!zmOOVMBOLkc^2q
+z`qgJ|lkO2KotccuT=^;6idYTuu1NI+YvY52@N`zLoQsfu+q;$l^xDTA^jbOAQ&OG}
+z-^DpTG&?TT)Lpq<aw;}-8WcCFwVw9Q(GSj0^mL&Ky#FTgT-U(Fiqk<Bp7<}IXM%}&
+zBa)%9R+@rHWMUkE_(+04QrqhRq!$--$?frxA=fp0x@oDsBiA)XWX8GS;wz+g`@S2G
+zLaVt#LVT_u+WZ@7{!Y4%oxvH=ZMuWyPiMj|ZwBd}UHrulnYlG#dvA!vAI+bT%wRV3
+zW0r^gagtszE`wh|DKQ!<zeCRm{Y36wDOTM_%pt~Y_BV?lha@{q5<)yB%^^JOeGfax
+zyUb+QDRb>+e-%zLe(V+OKW4<v7W3va;k@btjo_J%8Ut6L1MRcAdvA7j+kgOB;gSYQ
+zahb;`{Sn{yjLTcpMAFd_m;HUidOb%f-%U6KiY@an)A`x6s)~g0D-`Rv&DKe7L6q?B
+z$&qQEox!bvY%gJL49z{yDj6~)#$YN@4A$^+jy2}M=PGU!83*IM$g2F1t=AJnG$$!n
+z=wh)%KJxA_+*GXor4!>%<MC}_&B%ILy*I~Ci7BjmCcvvRDIt~TY9?tVVt#?ktPwn^
+zKbH>Nln&5<30nFk9*=d88M0W3pj!k4eQ31}2pVxY)kAd6E#I9g4^-V_WF$0l@!1C_
+z1AkXa!7IO8J^ey9Mm!I~Ve9@RIdHd6W|b1lwFUhCXrHxv4tlm9Uk{=IPt^R@L(zdz
+zAR_Sj85%g=xtVZ-sqoAhL0+6pv<y2T0LNcyd<yIA#-aucn!hcxd>R^G7bX{rQUmsa
+znwaea4xU83<(#i$AeNB0?aJ5f;7e(ct%Ra}SHKzs#=~XU(q>8Bojw2JwwpMVtl-JC
+z0+YfS1(<LxQQT!hC_oWh{$zCT@<Z#>&;`ZV$#F(xoM}IC{-G3yDFy!X<mSz**5+Wz
+z7f0uN+upZrfCG;AN)3SkB`<k7(ZL%@F5W_q6Y89VU?AZ8E3wXx{`C}Vo3O-#FmBFm
+z@ZU>QTArtw0Mnci7^Iripx?bw5G~dUp~og1wm9Iz{gg8T_+8f-0WGf(3NVmW0AH>&
+z>o_CYk($&f+HO*Cw{p`qEYplF4)9jb88KEz3MTaChrrxv_-MfAO83W32$6G1EQc0W
+zJS|=Gfn?TXP3q2diPYZ9iKie+uI@O<orZfnq}j248>Sq-%Vl>=3$AXij)OQ7lsmd=
+z-z$B8ayI#m8}dIN-QS*^CD%Na_`jw(eww5Ile=!^Gg@$becyz_q3A-`<-0V5V@PTs
+z;@0pB!qxcF|HG=t{I*cMn8hCb%f3b|0o~oLp}`t>CO#mBMlyo_8@JP7T+O3c^HPSP
+zVdoY~?I0%8pqn2rqVs0DWeHkz`Eu2+z$!VS>km&?U}jjHi7ZIYxwrC9DPRcHY!#zS
+zBWPPu%D;LNCdcNW2@Bhb7%$*N^^EQP(DnDHW{Plsvz-4ELQ97|^NWKCWZXFj353sW
+zeqAX$HQn5xOrdoX7!zsq?Q^psj2wKR5o(W@DUY)+w~7I-0*H%TeZ$P=Y8COI8_YWH
+z4q$oB>=l+BpfM{-VYn<r6j*n(DZ#084E&(u?jk5Rf9n;8kXC#Ye+?varana*F6)DL
+znayo!44n&zgEZ@oej6rLh;$<DG_%+L3Y06IlV@ra3(i=~9gfxMxclJ#N8jC<P~dT@
+zF&8K&;BZ=hc*I5CC@lJKHjRmNSN{U+TUX7<-T30R*sJ@4Z0nC+pi;-mh*!TnCio~8
+z<6ffd>YJ29*UA{PjG9xhgdFNS+5__ic0t8!8IL6G8pSY)Cm@uI*gy6TAOU%62gI*b
+z-c&Z|xyR);Jpqt)^ZY((yT(53_ga}NB0$?4P^;(uv-?Tlr|)Mg=)Ovv>nXAE+_$*+
+znxl8X|1er2qM}4ZH|~BE<2zP7u&jFtGns3cxsl*L=Lp{hI7sts+8eLrR`An%3(E<%
+zVYZg^s^}EbJ<^zy*F|aB21AV2LWQl~u2TtKLUdc%ZUbCc3oz49Z@3~q&&tOIPq1yZ
+zE$vwu1d^6=S9p9jXox7KxuUBrAaK0%>f;X0yJWVV%0Y|BejA>R7M7v;Q1~|7;5km;
+zWeAAF?x*A{dX<zSLM&X5U`&e{81uB*DSR7s^)<NiG?JHd{{8F=`h(C{CkGRS9aIfO
+z{fW~m-Uh!h`kY>-%HVjY9f4k$AK_iM`xyZjR3gS}x(M_)4yH;?zbL-Ab?`gd8D86d
+z_@Xq8Y(~7&-}uupH8A>yN6%_BN=u@_EUXcaf?6-lS=hYAJeYt35n%oaT}{v<gu@S9
+z+}XDWurb2*o$4%a5I38uJ#4UqRqpxpzA?FHk1)oq5A0-}(^p=UGH=`aw<zT+kTs<L
+z#-2e7zrh4Id&!Bx)gD1T5W~^mmYMDP_{?q#ug!5B_5Ai((G}{|$(D@EUFdEEpH~*P
+zdB%mOx{w2BO0Ig`rdNBpkfBoZQ;G5BbMT5s1IyaVkmBj$U&{T82gB9jiP)(K&&wKY
+zgbxi^sIH!anD!MI!D&bby{{XOq!>8<0fnsGd#`E7g~bSN5vvOa@N!gexY=!x6I-aF
+z;NQshEewzbW7WvMniTXFg^USzu(KW0`0|(VLcW6N2C!%1dA31T`g=o$s(?75F_I$F
+zuS}V}Rf5LqSjU!b2x_N4<9%fih0lNMebi0`CZc-{)TF}wefuYm!{f=q2G=@e@}}v(
+z<*>FoAoSkbs*A-zr_P567U-^Acz29vQOZJMM0=*+PP3Li(*6TYb>RC#A0ub(z7~1V
+z4ei3@h?{OG6aT%-tZ58U<SmBCjomE3Wx0pPzj7WoJ1r?gt~lN3l_6dm2mYyl!DD6;
+z<1Zv`i(GVMb64xPwi73)qYwEIB^g%^swE3$To4m*N8O{~0w?OWDKeg*yc4O_d`s(b
+z^H3n0+CUN+^4KwR32iI*hZPsYmZR2vbd1)Gf+*gtUKSht8qLB25ve9F?dih%+qM_S
+z7J%@zJ&+#~b`_taqfu|?e*PIqjX1K}8)|E`&(t(`y!zlRZn{s{QTonf;|3Sbl=@N5
+zIeww~;cW7BJh=T#P8g=^{}2SCJS_1Oy4vNz>hd``)?zA!<hDI*Pydae6;2cryd86I
+zH<Soiv909tYctJ5WEzse`A@E9ySEfYW@TF$Ek~ESa{U;^gw7^T6+IvQX38*>Z(40$
+z?t)M=%>zEbrKSD(M2c}RK>q*%8#{d}e%=^YcUPo|d??I{x;@o!bpbs@3bMFw9IZRr
+zU4PKvy8298<dV~Q51ep>pAXc|MI>ciEeKZ1iTjqZbgb$1jpNpUxXSp(aW9a2eATy|
+z5vO-GfII6AwTG)#)98uKrC#ra6kUiP<fVbu9EF%9#kIb9_I&dNVFA2O88-q%<3-8R
+zO`5fTa2|B8Uv*AMOpe)DJ1-PZ5ey~Ht<Ci%-bZ&I3=qskz=v|3!uCL~&MDRXvf%M$
+zGao)RZM@(ztaR>5kXl&j^aJ4eao$^AUcFQIHW|)UngIPBjlXx&%ocF$*-+XN_5b3{
+zonirxfjRhe70fSA0D_>!A`k@HhOG;8_e(>R+{N>GN-?$O!2RlRAplypZsf$`dGJ%Q
+zsqX<saa8_;0XGC~1h<s?L=zCdaocM`=CW=7!AFVAsvKS7a58eMYG;YdU#0#khDKeu
+zoy*iA@G&=#WhFf!?Zw-9n~myC6iuOL(vf-}@@~`bN6y5~Js=XQ*0%BQyt-ev*Y-mD
+zvsy>31fzJ?d7Eo2Gz^7z3@}PLP0Gm})gxN-oP^Rr_k)}zbS$&zPNjS#LLzMO#vvV;
+z@e~qxr&l&w0us!fjE4EB+7B17n5$lvM$Ge7nk+$${VjBWZS2BN!o}d0zfZZ9<97=8
+zfEXxLBp+ajF70@P%481cT(HVz6q?|_!D`q^IQm%O1<Y0s+Fp>kyi$izR^M`D!~(NC
+z=P4j``^?hEF;HovJua`<>)J1J7cPeU+=APPb<3SQmi0t;gqYkUYyz>fF?OC0G&#6`
+zcLpNlHO~N6{I-6ZQ(vFDClST5gD8wi54HEK^&e!x0(z0vDEdz&Y-2PWvW)n<@tpSJ
+zLhD`kc}D?@ZC2!me=t7Z_x}0Z`q}gg_WK6ai5Y=VZ(L^U@C44Z2*zOZXk2IQpAjJm
+z-8FYNTdFkso%Q9Ux*WE?Xun=5IL7h3b774nrE7}$R>x~34ZC>GFo<31@t$KkCE261
+zeY?*&hmFFHJBZv4k6@wm1TsBqKa;YOFn<%GN0Au5DD(#Vn*lJPJ;9Im$Ekpl9QBfB
+z1sp#1Pfm9Eui~-<GCC~Zd*5^K-@fR%Ulz10u{VlsDI=~ao;_+MVR#IqolUAzwN_W*
+zW7E4<iv)q+Nm7C-1!F&y1F&jYQdSF0QbiTK)XIG=`D(4&T2DvPQ{}nMOMXmTxW+J$
+zI=`X&tX7oKV%rcakmQh4JvM1Ydd2o(s<)3haRpaoFY~*3W4WKlJ4)iIIL+1_Gm(ml
+z!9l6#%&HZpxT#aq8Jfh<cgv!pD&RjnOQ9-bnYAC*msjVPYVW1>N(%Y-wd~Z6PQzXg
+z@r9?oJyw~k9&(8NAVAizhRgER;5PWk_v0^{Xp6<?nY!;xFZ8(jgHP6<dOB51eZ;}O
+z>Ke3oF*HcYSNlEBY&=T@XPQJ>oaFm)H2)FbQqt@c7-<&li~jB6Uy+PU`RdH#YvugX
+z0`L4wUwPBnJ=umG)G?~{F;Thv&I@vLwlU@UQ*P+6l=FQqn?&9qGAhyrQQi|gLO1nr
+z?#4q=`8#@eyWz)ldoGcx&#9)&;nKvPXl%>(1`5mN407EPU&#`u?uiN)fU;!I-H8ko
+zbfw*RhV`Y$a4XH-c(4s9RDB+{eoT)#{*I2k3I8!YvGJ9Rc>b%*61G(yZtKz;)!S#U
+zi3)+af1*FD3H-UfZJru<eihJ`HtX>@$?#FBEsf;7C_3_b{l_$XLzyf(D#VTcAot1E
+zWuhC8@x;_X0bE;ViO4I1^TXms3^V*0_|W8!Kf|9BG%;e;2Nctx$>#afj_iYVn>Ke&
+zUUcNx(vLdENqMs9e^57`S`h!A6Kee*%<V6|+q7SHE0Gc3$-C8h1+e`&A?i>h!_6CY
+z;|ZcJh{iZpky%oIwHXp0m@Mwb<9zWYIr{~`0Pi<in|6h!OfpTFwW>MD7}J2=s-mO`
+z^vSdJ!QyV3^n~IBl~ZTASxgg5nDi)qxJJ-6D(UDt$%3`E_nVQxCnSVG^uU}zWasxW
+zwcDhmmWb7;q_XQI8rG@%WUnOQqfb)6iX_nGDS-!B7INl3X-VxC9}+MqN#{AKEP9X?
+z63{Do?m5{`<CYq-zV}<5plwW2miihKi^gMel-g}bazXgucSx1nWJ*ZR-fwh*<>TLB
+zA+*#kv)v(GJHMd>4;ol&$G<0p4rsBEF(DFXzjHk%pOVZ&L!NdDJVg&Uu{y^ji>ci*
+zL*np|7ENqN;Sn1Z{mK4s>LBs-Sh<~br%~R0eU2T-KN(Dh!ycdQMjaj6dpAlvKz|r!
+z0m&k`0Dw=LPwhRJe!|IM{w$gEoPKv)=z43*3xm+Pn}f-nQ-Fbs^9V;*)Gn{qoDwQj
+zb598s<(4-!#M)cX?g?tlqt(VTUd6?7(vd5^#Vt8j3oUeb(Wlwd{q?v|4d77O1uQ&=
+zZ{_Z`(7hD*v=&|t@|ey=`0{h+2Ku4^Miss87j!!d;FqAD$9b$i$CtL<oi0^2gv;SZ
+zv?_NqVpde1PO_j#TYRLuAxyqvJ^KCMs*YE-rJiDIbYd@0#A>o%x6^4GQGXHNk8;+g
+zs<DP}SKJp*kVo)8s~<Ebzbc-fj0h{?6DH_W5$d#|4mbAqaiR{VcX>cKFMeDuA&)S|
+z;qg~RBgSE@R=X48#=hA%p^@+`#d6o}?RpU-GQw0E52&aawW^ozd3>{&N$E?o=xqeT
+zs8BZD54w2<hY}_QFxAfVl%yg))}-=($yQpnyq7lOvWmIY^O&~4t?8awlr&;70%F~!
+zQm$azG1i3iJbpFRF&YgNe|`e8uE1FIGxB{Z3a*XLeY=GfbUICbKSx-ByQmfDZ>JW?
+z-;D*Ox>#}6PySuJb>*u5a>3jv)u}V?SVO<FWqk8!%NwU<-B1%b69s`ktoUf%DC6BO
+z^Z&%31>Xe~WnDzNtINF8+K$>OQkZUYU$FM~J>pT#jeOV&pjqc=j-Sf)(Yo&LgtyAa
+z5ZZGiDg9AeeSKZgLwEfuS^)TzCEz!HR@Ec#6rU5mdy0?NZZ-Da!=sa8)%jokGD9oJ
+zpti>5x9m3#I$R4|>E0LW5h=G44j2Zkr>#4fXU&?|f&nU%{NswjZqVeLCq;_G55Ws7
+z1>n>zcuVuko5s2b_^B<XzR4KLkz5_2>|fgkZ_~USi%3$WXh269NaAQzdWAl3H4v`O
+z_E4zr)Jm_{b`qW$w~W6lds@xi-9?Jb`GzL?!VbH}{;2^oMHzZ)(Atk<rta`n*&OXS
+zxz%c1r3Od*${MCC9SX-55cg)&0`?{Qs0W3)ui`S!%R6MNyx2;JrE>JK{oTIi*KFsl
+zt3|N>HvclO@p{K!|0Y1gga?=Y6o5SI&khGSDeZLuPNvT=Ux8x6?6c*z^BQ?rM-bBE
+zEyhzKH?CHX2Zraa{Lc?5B)FC@2#xhcWLn?zD43FIKCh=HFDk;_M=y6V(yn6Hzx`<D
+zc97@y)=TE9FNE`IbPYXmSkJfts8v<X+5Be%m!b!5uI35<t*D1CC6<KJP4}9KX!C(5
+z%API_xxRHDDvCv0#=eN~n11}%yKk_KuOpEZd;7xbu2-C9mn`ulRdOM3oK<yV(|YKR
+z6gly>%5ubM&1JUhZXy3hBGiZQvi^|!p3wOZL4<b1*Xr*T$Izhow<yDMDZhms7yrU4
+zFlP$w(2e2?fJBU!4L>lk7(LG)iBG4|q0qH)Z#ytLDpBUuiW@K}ZOEB@y*LmVbQZ9z
+zTGESTvE!Q^)r1YB?~q>o6>Nw@mLCACAv#wLRAT<LkBArJ9J4JbLbWeIE~o+LE5T{)
+zP#-g4@x%`+U<v2hM+s>DDA=Xe&oVp$Sn=F(Ez(z+u`6tI>Fsnjo&FTcJ^MDUy25Ef
+zZtaj@Q_c@!Wv$j^>GgKey;GddI((@rZ_WFPZP~>*Z;geCmB_PCHg5U&RqAK&%OTfP
+zD_3);uPYZs_zk6Qq2}Nbmrcu`G!5R|TFYvayr$g=6cxZ~+D!R0!G2$kqf_<es=?h-
+z^7hDxJ|qJS_WiC>wCKlXh`Q*n?!YwOX93xUUuckrR<?0$ZGPnWexugvXpqJs^#xl0
+z=N+5s0u+9;@gzY|55b2?pq}z=tA8R3q{y|(gVF2<7SbBiUY*|I;<Sgb!T#A%83Ucb
+z%y_<jk|P)1l*H5OcckvpRQ7fMysV_^N!u317T*20Z!01JWY!AqI_jdvN#?CaP7n4_
+zQZ(b<yJGJU2OJp#WoedsRs@g@JX`<ZZ+mgAQ%k@p#y*dCX?0WMXwFQxIh<VkAB)X>
+zIu9TQjEDE;KB@Nh;6Kdbdx=f&-qshrJa#K(^J?oQ_3CWsVFP_LFc~Wk5wyv~XNKmg
+zSkky(Uc8|9Uf{EiLb9HLs84T5PWcbo5PXw6ph3w;OR*F54VgtIcYVQ8UO&U-B_UDe
+zrGv7bEPKj*)3j>IFY^x-t754)y@)8Ih2YdM7zv~Rj|;rIYTLMDO&5Vo5umtDp>8C!
+z)x)ir=#$p%GKpzNcX!G_{z7Kl&S-B03lzOAM~B-Ty_WZP=!XhQ=ewl4gG8J<J9SpR
+z(Xa8z_|pAca<Wtqwt*K^mgxg~f87emQs<h1WLAkA@LJVVK{$hC`~oG;A<m;>hnLba
+zx5LicQ&Rd?$JhxGcPq;6@yo1;wyx9V`N3cG$zb1zB*pezBfLU~8;-BXXN2K*DiVZI
+zIHD2-J3Qt*=2t}H$&w%x`cVvBUAz8}W$8~B!<uT-3hiDubh$XSg{2i~;bzr1(stX{
+zE~!imx^Z70k3|PuQ~aDY|Gqvl;qb{Ey>#uFeOb6`1@nT)gkci$W;y>BdR{LffcGN(
+z3#*_?O8#kFHPDaByQELM_B1^ImQ%;lbJSZc&O@O;h;WxQ$(J7fs7&PP{ljIme_*Wy
+zZl5-4IO>5z*C5|VxU1I>@zC3J&V*3gr+dAn>*$fIkS3FVPPi-GC~J;rJP9c^KpHxG
+z<_b0!qhy(}>>){qF8@BY$o|x%xakp23EEhCgBzX{Lr0>164|z{qd6~n<TqkZho=k{
+zJBl4>N!@Q_YS`dxByr5~2aYus7`%lQ4<Tr%b=ut+3G*(GNv<be+pk=R<uJwD73xbF
+z_@O^iF56(!PCAFeyVxK?fkNYX9c#P<BZ>H4j~{yh@fUu;H-psn=vA>TEnT+vZLhN0
+zFV|@I9WA{D7NOeGbbpcRQlU9o@M7;x!%1}>%d@{C*8woLEdchNeZ?rk3b6dqZAw60
+zJ1z+Qy*4h2!d?LR>y`4R&oPzM?3PH#@gh&-ARO&VAZbwK#j$9&yY`Yz<j#j=8Cc=T
+zauCGD{<bB_Jl;hj?-WZS*h7p@r%E>2A6;BFAWh(7aKtI3cvcs=Sejqha4D^a-jMs*
+zm&@S1{Ba;a1ta6ql|4aVp1}Zl$G9%Y9pEV0L9`QldDud~Pur}6qROlxNcWx9ymk7y
+z&_fS5-wdlso^I-=&-4gIG?0b3FI?V5Y`hfOZr4g38)&s;zC(AMnWDqg9{ixeSrkU<
+z954Zw8~?fzREMIiL*XpiXN3eys4=74qw??$GP&O5AYHa}kgGhhw4it3a_L)zekk|F
+zxxB9m{FFd~82e87>n;o<-BAGfv$KJ0r<t~Xi8D8^66@M@79tFQ#vs~yJ#T%V1KL_%
+z_(MT1`ZzoCY5O`}hAWb3X9P{RsRbS;N>G&?7o(<sTGe=fMEeL!+?$(UcNzf_5&J;=
+zvd##p2RcZ{GbDseWa8$ftBHQvQe7wIPRpqGAU01%_10bZhTroo|2hIXs&7!G0v7A#
+zFzg*HLsLMAe%@&Xu%r0ll8}EM^8^@}JsVJ^0m4D`EqA{TpnCLed`cyjfB}k;$rmW{
+zfI)B<`4<pwzB2!2)Iq=kreIJx#)6!_e2$iYjNth8I_VDS12tIOS!|)XE|`~qR}A*d
+z>jVwndN-SODq#+^{*7~&JEcu_{K8(K&viB+cUOuo{cEP2IQ#)g+XST>>e~JbyK!Fy
+z+2+&{?*<`I#Iwg3u+Fv|&mKUK3xTPX5;#{9(UAR-$W?1uaLey6ou8Z8;}LeEq4J7n
+z*Q)7>EbyfKIUSFI)+=bPFI}fL(avJz<r~*%-imyte*=glQ}r{Rc7-u)xOVQ&dFHDL
+zX~|`Sm8tH0_%Rtvrsu3w+zUDauikjY&pO4EoY;4JLy3kLjP_y1zaC0?t(A|Q;l3iA
+z%O7Ymyk~C@5Osu;U0`5`ti<?D_QP)@t)poFjZ}XQK_{F$tLCZrj_0B-uj?cS;Atm(
+zAg)lq@Y`~ixR$An;`klW5kF8D^9H(4+^C-`-9Y~7WS6K|M})KC<Wu7iALY{}F$_U5
+zZ#TT{`fm980l5r_^6~VgFS)~ROU-;sP348<D-W(?OZ~-CNUuX^H?A?4Q#H2VJ=<~@
+zI^YEZ{6l_KF^d1JQ-fiBhx+K<9=hl?wBb^#uSTEE>0Eh<0(x^;11IuW@wG8b`3auf
+zeP}a-IRVUW+#b{~uvF;m)3o&a9>@IY8u0B?JMXHt<%c*nY|q(59gc}Ugu3PWYmL_z
+zbar=RoR(_2(AXA#%c;tWcBRI>3kdQ}b(KA}#)>mhstNebp2fzJEY`|&{*5IEVLBKl
+z(4WSK?LYFqf^IRaQ+V)DO8^}%w6U4998Z*ED-YO)vn<$prN9lDk}KQ40s4`OYJ;R;
+z;lCq_2?8-a$Lr2_+^Ol`9d`8<n4((@KZ#W{<{Yc;HT5hCh~1to3iuH}ItrV;zO&qy
+zHRwfUy(-<GyU#M*bQG`d`n#o{hx2&f@+Mo&H3qYV%9%s7a2$6xz=dYVUhZrw94;jL
+z)!9+4xv>E)q6x(dWl;Khf|P2P;`HniMGPW`u=Xh%sy$PhZn*<Cey_OyS%>`cps4gm
+zT5izPYTTVPY|_P4oZ~j_#dVZ>ZC0e*h?@XW^5=2asHc{|(3d&3-%gJKXu|zXg&qEb
+z%a*yJD51S;1Cb73HAorj@l%!je5a_5X?5UThp0*Sglq-+<ILuqy_4^zLlC^oF!%N?
+z0-NS>qot`X$^P5AUcn^@&9KN`=`nJU6V3J$4P68tSsu8cQf8U)_3}84`Mqce>q-0#
+zl+9g20#%h@k1qm1yBNZm1ciu&jT^5D7q1uVamAkb*3m4+b@yFQ5dz8vgSz5}5hwq&
+zgl?T+XL~FaTpqLKV)b-DDZ{-<2dA2S_q`i;nCs41O&j1hbOc%1n^VFBGg>#Vtltj=
+zV->_6=x<bGY51r=W?zpJlu5k8`6?Qea0ikoF_U|xUEU<h|NDOYPp8!K-K;U|CQ3Z?
+zzB>k8tP{_@?zPs_i)KH`K>p6Q{GoGm%n|<>`MLtXBhNo^&G%OEHZ(<HFbjv*{BCE$
+zMgqaKCr*BbdZ)n&TwPE;Q42I>17CLD274xVLNeW8hW?ImgO0PdgS}7HKMgEL)>D>k
+zyMObHyv;R)yIb3tO<<DmiOkefc2^v4a=AY~ev6m9lxz%u1W4<gO4IEc;;r;V2kZnW
+zE)BS0dE5}YD)xG9?int11qiPP0Y_}wIbD$MaUNp~vZuL!?IqXN;%&JMF38PafYAue
+z(dRw&eii|#8|vF=rbD8%SjZktoM8CNr^}zb17W*4Z|1wI@yZ^+S-pbqVbZOFDA9s;
+z+N36cddoRJZ5{eNedc+zekl#op#t0b&h|t6uYry<+k**S{ZC=J>;YE3(h&uASCJPa
+zAoA<b)dH$l=kB;+30!$tP(a=o-z7%V80}uFuMp`FI@ouf5gN?n`|v#$S-%PpHUktw
+z5&i~uRLq$k;+~QB+T35;t0GRa>kQA%*l>3pj8>(op;CnO)r3p?*Iu##OeoZeRvAZb
+zm>8sG$lKx@%yqLi`~LH0^y`b;Kmtgz-!;a#fgdf6Mfe$0^&vOcuwQo9klX#ZW%{1~
+zmG}Y{7fP;@%3`z?=&%_<oy%z8qNJq5_c=8l;$!W!@D;GvPNcOXSz%9m1PHN|yMY}L
+ziJrPNwYpChWijLDw0+HR@p^83WnflJ^YW~J)umW*-8B*mj(X!vl4GeKGNi@g71DA0
+zxnEX?u@`RNNSJsG7hK(Mmz#DB$ti?)zC2G_3<H+lF}kc0l<^}J`ul1xH-)QAYl{w4
+zZvzda!l|6Fxb)q02m_1fuXmZwhPoqKDUVe;$%YA;MV~61{{FNU8H?_)6XpwRKx5f3
+zjf(Y8+<9a@z4TmJP5pIFU6IX<LK7~&HgPx{Sp4vuaM_QLnq<Pjq{C3W2(v#x!Lz;i
+zQQ=A}2eM3MS6)?>-^4b@uM!s!<9=(Z9x8Oz&q278D|Ju%+ra65eCtf&-VhCXe&yuw
+z_V>aPUjfGszYA)RIDq?nPZ)Pcw(0ZNC5FfMBO;RVT4*#ma4m<Y*jn+y+RDchWz@AY
+zR&B~J`=AF`n$+{(1s%7=ISuy`eX);1F}H4EZE$hEsiH;^(EL{P`yd0C+z<iPH52r^
+zs9oA-(V7Mnncs)$HDDWvIQ~!SZ4#5b&fKIH?Q-h|@$xMHhc52zdXL>s6Ms6eKG#mN
+za%Ew$Z-2hP!WW6z30Zfbm-O~#rEE_7&Szil6I9|N+8N_WV-hgJ9Q7zD9HA%rb{}A6
+z3D^UY{%c+(o4|*K>~psH+?vp~G@S!C*e^!Uhkd%<*t-Nnu=g^03&#y!&Hs&-Iw#Gu
+zmq%>TsNYK{E%S}-V+A;Tbv$zXnFB1o>yIedCp0k#{+Ld?fle~*=d0a$43SXz=`lIw
+z@d%N%d&<CrDtJ1sb9H6hy=XhRPlLchfSm_er})&h;^MM9w4QIhjLH^4{TA!b|5lY6
+zmX8tyMj(fxQQ`VP;lZTW$3cGHzp3mSi$A_?liN~q-|AW!=(_uq<3ZWFuz$E@ntysX
+zbR)KWXxy-189t|j5jf>}Yedr|+a*}m(=x<QX+HpWKKGgJ>rYx`O!hk`y}Q;31gTzx
+zk^bs?$X?#xrA0JM8vA~M)%X$Wl-bL<ihC4iDWB9==4|`Y{sTYi=CJ(P9#}=G6ANo{
+zS9^+k9-gnOLNZ=fCquDEw8op|xV!u_uJ}}b@&Tq@Ec}5RH(?$!pwZnAV~pL$ZvK*U
+zbjYD&{C{LH!+*0Kbe~p6?qqC-<kcN^JPEdI>~$he)nZ~R<YOXnah+*=BhG&ktjt`s
+z5U#hpf!?=m0+PpHwYSjesF5L*tj#ZK*gY|}-=dOUKpRXm@31m@<P{GRZQ<nWTrLyJ
+zA)@(~3(e`>wlw#o@8O)tE(!I4a<J5|Q9?g5zc;ViA9S#=v&rIQ(Zn4uq#p-1@)Qx-
+zF0mK0qO1e~)x_+fTZZqaeN)cc=r<f*iE??<pW}8oW$K%T6Orw3cxA&OnuPNWKkC2l
+z|JopTHbgFY&iaMglgUud=Kns6O#1sZ-rtL;mvb6|a~C88phLW$-h<<cqn7uFn4q-~
+zn)d)$<!JXGKm0VRn=JL?S}C1#*H9Key~I?1VBwgno7}I*1-z{Q8Q=1ZfId}_bT>Nz
+zJOT2Ee_rAl(~u|EwTG0uC?5_#Lf!9zD)BWYE-q@w76t*Yd(A5k_XQ1fE<Wt_`e*XQ
+zwGO;HBZNKARlHTqNbFxm+#<js>5nvjY0z#{6LJBsKhfN|1If-@^^|wpt8sNW727{~
+z0?RLLgKU>E+TfJ2Ky>{X&dIfaSor@azJCUpo-Z`ux-~09BsMcVg3dS>yo8<p)AHp%
+z!>F<*J2>NwO-1`p<nBeR^0WU@)M8WruaYc;_WvqPd13!gsh$4}^FI-X)IozD{?q4c
+z93MFYpIm3$f`+*;GP??v4C$IP9zq=4m6x84E3+g*?kKz1ZjuAB+Iu{SdtBqAUJq40
+zi1oDvnV!&jks$WIpq!T%3N_D~)aB@E=#O3#hsvLb6<$*lS91Q6NkbMVN$jbxRbnUq
+zU{WeQADwXYh@{*i0xPj(uZDXZsU$~1ij%62*L@Ab`NT&1ht=ioW)nUB?vq+7u^22R
+zUjP|LKA*D`Dtil$!Th#^<EmLlsg+3_v(-e>!F3HDJ7m&f2(#!J+>YNjtiVmrANg%v
+zlCgxwmCI*6REFHgB@Q#NN3x_Y!>!aAm~~4g4a_^1uy>7jQ0ORPrRDnwujX!c`GQ_O
+zpWwIpc30b@{%tcGUy=3YltxxE;>NSDV3YZ_ouZR@D-nyeUneJ4zkEJu%wNUrQ39p)
+z#7wsU$($821Rj~mL0l_eLYq_y`L`|lsn4y#R;C#2Ni1#H%kwzGwJ#Az?S6XJTm_8n
+zNP%+3^hU2&b$$+W(~Z%obJY$d-TwC@yZCq7foIz5H9m)J?(;OBm5oQ0PRQl(-ROnt
+z3ZQM+LN)$Iqk}d6$ZI?`4Bgf2ILrDUrPiW2=zjhTG>#7SDFvpb-`P3(PxScak#*Nn
+zW)PjymTF#((56WCpAfqSVK$S~DIt3_bJIxeGLEIcHJN`_UTBzz<X5Wg1E}N~2h1|s
+z?54(3yejf_wx_<c5-m`QOcfQm*~#mBU*t38AHJb2Ra~nYSI|9dW2^jdwEf3wRM3iM
+z$N8>NUGXLlmZF{KPd2@J9h|X@K_S1PW91J^l+YmUt@BC{S5z-wPOo=yhFrau*Ais!
+zHof0|2;cRr6eyT_tqji4frU+faHZ#zXm8odxtNyf;<GnOP?g5kTiKqr@?a-bOq5Q@
+zUi!|2ne<WQ-^ssXOS#UAf5nBIh?AHHt;xpRwccX^eTiD3Wyx{lB3u^TrFWGkvZBN~
+zw(mM?w={zikIwbm#>w6MvOFvGbvBHm=2WY^><z%wly27XMZ5#fv(@_6UWRLdPi+J_
+z=JF2%bQkE3jXW$Yf>KIws;vwX`KM&WMqbd&Df-;_xaI9ezhA5In^WV_eHB^RW_vRo
+z{?K^$Qr7$@!9ql86-U2nbxt|3&Wt0tq$Q<FpVBZq!aYqx{&=Ah*zQJ}Ci4KUkJfG$
+zPmFEUo28Xr`w1tDvSLuJtjqo7&u^h>&1w2xP-lt=z8dzd4M5c=#OkL}_rA-z-GWj6
+zeUnOt>&T$)-|RUxu4-mZcQ3z+f$6Pn1!q?~_`F$L;l&VX?$nkUZFB#$;`a<(b&N3^
+zWwqYe6rGovMd#6TQ}FVY?suoxgE)37+1~~-Aeq}^<5)Hy*3r@zW|wU8BHqpDc>EGl
+z<nd$;Yh`6i{_&ZQ2WKs;>$Clmoy}I3uwJu6@?d)6;k+<L>pzDLF)SW)o8`LG$caz1
+zavGgS7R%hzZURfCGLRpDU#mwKqczaIxSP?3;TR*Um$A&Kc`x~<N~h}5wpPB_w<`sa
+z9CLQ2Gha?jr)e+C8xk@FRMDn?X`-<hIpgtEUfLBAMXJ`ih|%`PUTRmOW!m=aQPkXH
+z+6AGtF9oid^c>+WR$^8-+d@f4nj2eN{00{F(FG;~#{`XV@fOE0Pu`$wTJ|`&8y&R0
+zc56~cE9W<I#a|Rd7uX2o;5HJZs?o#K&PHpW3&g-T|9|sbn`GY**DEmORE~eiEGtZI
+zbcPkV)pceRttxsov8a+LtA)S8%*u;)64%vi2J=x20S2z=Xp0U4IvUaccqxD=JPCyg
+zv3aL{o&2!KfH+T0Ez$PH5d9JaujEG_eSgi{=~JGSL3U=ol8~KlB`aSfLM$KKUTmqF
+z25pqt&8jIiP`ZW*F0ZF;XS`i$DHUHKw=ZT&iMz5{rHxkGk!uUPySHOlDS41XOI4N=
+zDep6boYvYrn;ZJX&w)NT*CHG&%Kg>+AN>2^yUIH49`i5nE9)wpldVYu-Yo?KAKqot
+zD3?E%>&_2k4A`%a3l=$xR~%J6sH|PwvtgHSvixX}Ib6q#kx|v)PNQsD7kgbAYy;x0
+zM2>wNWG=3;;T;!gS5}1XcKF%p$fD^qhlN{+4a)@Y`@0p0?p73TrW)EHMSIPJy@Ps~
+zVa<arus<&-@QGJ2CEP>v`pq~Cvz!Of=c%aTw+DDGg?dT0e<Afv(@)8Hz0X2U_DrGl
+z=cK%1v|MJ>K{I3hXUUsF3Kn)G>Kd{fUTYJS<^XkMfpY=qTcuxEV-b(W&rbcXNCf*l
+zXDo%A>20UB?d+lBp~5t)G-DCX;TH>m^q=HN?Oc0L6TD^?8hg$Qy4uUf@20LrM5D=j
+z+R-OpairHNGn-}<o@x2@i{NcNT?OJw(%NB}eV+RC9W0MY6)(SA7v=wq;0ef9BHF`S
+zSo&p`#Du}GR)8A;$RrW*-$$x;x5e{c5Ao3JZ~wtJU1Hwb#{4VdGVxYh_DuL;#pBhA
+zn)TGLBm!hZ3|hC_i@iLtawdphk>V}kQYsH02H|I(bGH|pCykRE@7Gu(@IN;f<2qQ7
+z^p)^QSr!~C5GJQ#=#7$RCT4$JTGrN9Cqdvru4Oa#L=L<e-T2<^f2GboWpoppc?TUr
+z{*c;9h!bEDq=F>qPHE!|`C~VNc@pOA*z+Dfwg1seI8FFa^hQ*Q8D3kfcxfNk`AXJ!
+zrIzwgVU#a5tAQ`}S0g#}ne+0m-7;BD&o7K+gUel%v4%4~xmKNAoD<e1)@_be4d*Wb
+z*tSF=g407B@(2psCjIBpOZ6PB)SNIfu5w^|nM91+u5Om*r=0|zs5!mm-V#8YxAA8S
+z%L1K-TW!(KT6_B`r3(GRwcgR<FB3*>5AFY-lL{F|OJ<THF;iv)%JHb6A}Dd>>USM6
+z<hSn>ohZB!h!aos@N9n7jW81O4v2X8!g#H5bNY3M-hQK_-%o;rFl<|p+Wo9{e`efE
+zW=a~U-t>io=hkl-7f9tRVSixT?Z1Q`o6j~d6jZ*D%(;L5{3f%9YeorIRrri5#XKU(
+zR{=84$DlI<#%~dWP6sAN_}~k9vs7PVFFRW6HK)?F=s|YOCz?sm8se4L3H*FNR`$j>
+ztyuc|ew+xSo1iXv@Nf<onux{|^7bsG54dva4@`V&wVvf~QcVvykrqZ*@_l5&6N1lD
+zpeyN3kv(CEl_%~7G=4zHyze8r5{0UHk2kI4P~eP(Yaigv0{ZC=(_?K*&eEU(W>(WR
+zA*EA5{#657apgrKW|jxc7hh;X(rYacst_TGK90|Z@{Dp`R%^l&>aNd3Wp6)hwPKCp
+z2~E6MwCb@|7cuX-&t6wTAFpT6;od}a9cDh6Z1R2LGYUEOv@&@O2SQJR^Ug_{MJrD*
+z$4MY!`$j2f#fmTy^l?5S%_rBPZ+JGv0Q9y`c19e~#~rhCK5jNFfmQ>dc;PdcS^K>D
+zLhAnr#mcwp&<KB3cj?7IMaOk8vn<ou9~_+95EdLJFO^rW4Z<%FB?rUjZ<-k=;)RS~
+zPN+bEoCL~j15Z=sAb0d@)pmgDug!$R#CxEa9VD=y^to646J)qa4`<&E9Gp?|1F*&m
+z4WVB64L?m61tx;{LWiKkNn_h_XJ8w#`oeE1y6ExjO(dBja*cx(`0>WGISsXaaKD6T
+z9D1U=bH$08e!cZ<);8(ce?};}Z9S#+3id@Brn_m6>Bo6dF(?nd_H16XeF>oRQc5jf
+zRYf(Up^DJDX<&Q=9V)2upj?4X;IsAP9^BJ9A`n-H_CFNx`C|$iN_;Z}vxBH*ztBWX
+z>e2gK@?4~B&;;+MqMdB4Yn*GT%p8bsW%N}S1`HFO*0jB2C(ZGA<3rP^`~b3$)GL+V
+zkE$Cbu<6{CiiYyv1mnXjHpRI}q4v*VOQ})!c{H%{a2NMy-PZ}Fz|<d-(yjVp^ze#r
+z<4Hd#EES>Cub-Y9@gC_XbnZ2gz~*j`-gw4d?Ry5>9;W9T_B}|%`g$M`9g+DYu=v_}
+z@YSQp=6!vUH~Z0Pg*B}n1A>bTk{G1Nm3g$mcuTq4A-fafvd$R%w4`}lJe#zL6(e#o
+zxh-41(A;N!nP^<-0o%JKkJrxurahxU-68~9{xgj0lo9RbqCT@h6p&tckd|My5Q4wQ
+zGrmu}jz)YN8=baiLrxlz7#M+fscg|n(W{J>!y8)t?6HA<trX@v9S91&2Q4+6UHo7I
+z3RH@UZMWp*05A~^Xt@N4j=aZetbkz^6ki}AMK6lrA~3H5g$`qvM*3017^J;$y+Y^_
+z_&vno7kokIA7@u$VZM`r6MrOP(Q;$EC&(|9H_w;ONk@Z}pLZMeunjk3B0kJ#qM=Bf
+zP;6mcd?F5yoEH?;BoWom4J~`hbsVeHcD|Ha`3}4jl>2-{nz+hLx?;#e%Ow}+N#R6z
+zu{P*7+MigRHW<z8{4cOQ2sA?;ua)(2Z-Z@|9C}W=59ApZuWq@B`gZ0$@E+X|2k{ir
+z*1AtBJ?NK$3#w+x-8Iqu5B{lJNSbg_U9cUoY}KCr55Bz1xYFSixP7zWN^v0|?ZtIr
+zkJ&+u@}P90yXeI9W4K_#YoUYH8mf2R_hXxO-pj<-uKR6Q{0B6iZu^f1-I${OuA6ut
+zY`=6JCt2q@btBuK;W~Bx58Au`5BK^X?nl;K4O9@dv;lTE;2VlPJ`}E9Y~S9<XKoLi
+z9&2Gukv3KXml(MIW2+mkb_H1X`H2PKU)*CNbT|3Ng~5lt6a_!_vr2PnZ}&b#iP34d
+zw1B?rc6(^p*BB3%?V1FGk6AqxZ@;$`wMppmj@|GqxHXpyH<;HQ+BJNe?H8@9b(5QQ
+zdsknZ@vxGrWtm?obrgA#sjNCv*U4DlY0$dV(3ao5LIttz?{s7T>lC#a1m?f;Dx>rs
+z)QA;(X#0?zwEueHZ3O=nwTUXRtvXhE`R372C(@2jr~p^py|>G>j$g{Y^%t2~kC=V`
+zK4m9B<9PJ1>^u!Lvms*us<8BysIt9AC|HUsJI6>~QR^)%x@w8XiMOfI#GNyFFs{no
+zm1MDWv~L=2iT3q<3x~j?p$AsJ_*(&5`%{%0wlX!`<G!;Gi|@Zov}PB>%k;XjuobCS
+zyba>S^Nq7PH-Mp4q}$&jsM%v`N3TT*r~S^Iw{$fOE!z-lr`j`Dox?u~_Sqw}N}xA5
+zTd*ASLH8r1ytQ$+enfQi)D2(*i(i4#SE&MA+pY4FX@laezTWVnQ%6FalbGqf0>*SD
+zdtCJlQQUcMi_RW@0o)v`+ly#C+R2hFs_#@~OO5cQzXOz#bb}w#>pw=cff3qXV{t;6
+z{|S({L7eoXS9oa834HAv@*3Io&o|5o?A~@oZ5Rp#(yunVWk2!n$MY>kMOW_5X)Z63
+zlvEuf8mqKiLcJQF4O%vpIF#<%MGV99{p<1d26JTftTN9_xl5mqJGtT^7x*36SHheC
+zJfT#s0<dXR9CVm?cwVzq&Qc;55r<0Qn-+A8a+EV<A;b;t9-}yHZ00P16YkPy#<6xD
+zP&umL49lq3y7iK+yjIlaGhHzmGj-ISJFd`?wAHjKn&{=~8pc`QYoDSluQv2Ou5A83
+zfseVbr2}jK^w_EM*!lUf5`H(k<k(OkB|5=apy|V!F|Ib2Savd-1hlJ+5iHC<Jmu#-
+zBoN1GRO$4quxM>8`AkG#8G4`2nl38g<@+&2Hi3p$SA&#)sxq@u!Br$@WFBV5Ir!dc
+zvUVfqq#+}pMpI<|^~6Dz_GJa>sa1NS0%L+lAr|h-LYb5_Y5>}VP;>)t%JAlTc5R$C
+zB|qJnom_wB<;94XYXu{5{htyHlXL+M1qshWxsI`@0q0!nWA9-8=Ax#b8F95yl!)Xh
+zc4%%>0*izfF>mMEAKtHR7dy%2#tjV|n)(_hdc2=~(SMMHtx+n!t0+pFOOLcaQut0!
+z8QOSexL$Kob%U>oJo2q*KVGP+1g<$v*uRvgLASRL<QZ5|j}&6yBxn4zNAwrej~QfM
+zIrHU}%5%+<(m%3g=_v#SMNabURIyCFb+EhNVSGctKLa+=4v{+F?|wK+p8c85=yjZn
+zi8PZfXLsP?+ZbFAr7%uz)UXk>Ok}K#A+K80DXYL}*2U-fuKf>(si$9KzD-F2;AmJg
+z(k7lh%)3+O(@&J8_jDMDa(P8J1{jEs2pmJ@7pn9E7Hp1Z=Kr<wyYo3h$8Z+73{^q<
+zY7F1iKlION-fIAAbPi6t6fB8#`Ijl{yV%15#UL{otvQoYYl#(H>!d|p_o+5EHcu$+
+z`6sk)v&w|K6r(q-wdg#ev`rO9M@`xc=B2q(^(4<_%C(7U-b`fhi)(LQ5j8w>b88YD
+zn5MhB_Ch)4ZHqrnZOB1<cZ@Bf7_QmO8rn@SicQ9t@8=6h6`MWOj2Y`+HM1WNE{7%1
+zWhC0!G&r)#ajGdyzhis)OlY5^pQ=Djtj~S=>~C-{$oTec3fi}KUzHwvOF|e3Lf^?q
+zf?@XGvY3ZmSaF8%da--i`IxP_>7(Q@;tK*QGUudj7Y&pb9K;ltAx*=aivJuk6m^wt
+z1srC^B!{wI^A}rZd>j@SS>N!zo9LiGs|7c#x$<85-GMgtJI}i&;1b+ssrW2%KaX7!
+zyCXx@=e+g5p|xHMeyS?{ZQFfz^V3S@Xm<I<9@UZV%Lv=cWl};*=g7q0A}60JJRP_@
+zK=x)T6lUZc9ADl|i}E%R9l%;_FCSGAa9de?)fH}=wD1SK9ice+AHob=dOW*gquj@V
+z?5}5Ry+8tSoNVmZW9_l;*_SiD_~f-amUr3nub-NjuNC8w(^*Dwgc`SRRYK$667e%8
+z%g1_}*=4f=b?&R(uS;FBSoE@|)Hr-r)0&;n#5(&UGOO-q@51{tKW~(9_l@IlNl;7R
+zH2Sb&)l2z@1h9nSFfaWoH^);n)i)>v7&(cX2+q2uA1V~sk&sd-)hjJ&&~T1yru>b|
+z&@<cnsr$n?IHGUwOE~_0Tnv4xQ(jql2V30kKSQ8^qx864`*v0V6-Vb4@wddotY3Wb
+z{$^<f>9r7l%Rbc(i{UmqO38Ug{;1TH)Cz+RGac{Ci~;#n4i2E}#*w+a+&t+nC2Lbk
+z414;==8s`7+f+<mnUlt{zF~e<%h>lB7hiV#gq;z*WoLN)Z>*gURn>mZ($egro($IO
+zH1^OWn0akkZCi2$u$WjQ2)+_ZIlXkgW}=&YDqcs)Nu8+R=VQ}ZLU~ZFA;`cb!n3kt
+zmtR}D{)6N-3*$2vUbDowoM}Izto*gB660dpFy0;83t|1;EU$dQ$yx2{EHfgsK!jyY
+zgz-C^*bzG<=BsXJ^k419U5re&O$-!M5N`UHAA*uL=4SJ_kruof$r}9Y;DU)$UYi6X
+zP!HYNCl>JGwwf~DFt^3{$M4vX*OaWrUSs9u@4>Bx>NekL|GDrFr{qM%NWIW+F=}yZ
+zh9xCNs$!rk>*%(YPhJb!PW`zb*U|4Xb|b+D^D$%_4}cWEYJ8wb(BVu*#SEnknxVdY
+z-9Y@1s)@kqsgSZjOT$P2Zyfo18=(#uRD)wfo621%_8Q)Z79MI5)=*LK@n-VX3A4H4
+zi;I1xDBD;VG}`x*OC1_StLRWA`sHk8jR24k?+r6g^RyWq@Iyz-gaT+~1%A~zH!cXi
+znR@kt+KJsjzb=hjg}Gg<4EJOI&r`vT`}eIR!f%U?>~Do$c5$=KO0}0!9wF*(XH~&x
+zY3Bd7HOV{jiE{m^!mV`s@KAd{1`3b<P>+w^Gtiywk)q|dl^QBB?c8Vx%XG(7d>sf1
+z5E(ZFCV4(3*ZLW|J@a%uDHL({HK%E#kc-H#U7&J}(RZa*nW?dtSJzNfjcs1aYu&dW
+z+LrvACETyD>rFE@nOcz*|4uq->6p~oRcZ{6y0p1a>Naf{t0M<2CA?I%6TCtvJ4kK%
+zrHF4~$&Njo&@>!;@v(Fi=H!{3`)I|UtVq9YCJ+G`X7E^;p>`-*`Xy3eW><b4@&1D}
+z>xc9@N)yA?Az^l2;rdTLtxo|@^}iLJ!`?@@M=9!}lMfcR3XU^X;A_Nhn+EL#*ng-l
+z^hn!xRm>S39>uFDhLvtl?+pFivh;QcJ&kJB5&Re1+x^j@;zl!r7iMWZ)SIaq`;p-~
+zs(>1-n)^jb5wpcmgDM0I)WoVqvTa>dE4R-0`KzhH?>e5Jzxd9qisD}>y1&19O{=d-
+zPZ7rx;NRDzy8W@(d)4!gr6gOXwb*1$Y-$uUWt5$~xxIMNqaX2ir4HO{c(hXl{n;pY
+zYxCQ6LmiaW?{LJQIW4|VhjZE`{|ALYdcRE{DOX<VM|q6l@HaHlI97VgGTZVI<!o5Q
+zhWj!zwc*)mT-@+#+5PG+4)m#5-0;jVtDhVBQ&VCNLtUrQY&deAH0ZpCBqw7rcZRaB
+zp~<)emQaqojT|sUZf>{~4A%iu$TJI?4Wlx^qHZWTXAzI25rU0KMwD&IgsiagW0D_e
+zF!=tFI&bA8e$4kr;u4jxTmuN9rx#&;BuuB1dqX;%yO!jSPp6Zcr|WclRW!cF@W#`$
+z#V4LvR=nI|v1t2198&LAyhok6=uDD&(CB<&U<Z(xCeox1^=yI=XFHXNW!;~tPmJO7
+z8u_it7#3xs*&RAR==7y-|4F6CpTcfo`?Xq?`Bj24(TtP2?nD@iG|hzQw6OlORq1VQ
+zi7*yvpc^&yqh=nlS3vF=cv9)c4bAPrV8Aodz63M;T5{LZ{~UUDE&uA)Ue8<_;5Ieq
+z_#1NW4DAVk`-%r18rJK_unyTg?>LFih9wT4H&D9vXc4{#B8AU*MQM81TUehz+HV4<
+zbItij?JQjQ$q2RQJVq;%B*sT^{x*qLi*@nezZvtAZ?fZT>kO-=(~ai5#c@27n3l;A
+z=j?1u^Ax7xMfcWkZGG$STDDw%<-?z@-uqn3`$>t>b>Dkq(c_0(R;_=1;k*Zmes9VA
+z?09g~;*Zx9?waQO&3iBWW_nd(&)yA{>z`hbxMW+_Q?C1uwfxJRM{YU1VC$N!+dI=E
+zY3`3WJN6bt$7YdqC5cqgg>yf<)t-iAK8MwAvq+lYj&m=qyOsVsna|~P()XZMedBzb
+zV~;u)mCUr~?@^4z_jB0$K>kxFsc#&yJ3`+j93J;ayY{GabND`_<!?Hr58eLp-HN|(
+z$7RIlwEW;4n@vj(Jnkd+u8Hb<FUoLFh`uMV2ZX+tvVZLPctNB8K{A)=yO_VRH{(++
+zJzQwjrtwcep#j;yTcF(&es6$pP%ba0`56sJgtxJ=p;6$1t14V&CGW7JE>B*FRk?|}
+zC-Um4+UyO;jY_I*Clm#%Zzwk#X@MJ}gg@YEXbOnR#?8KRtgZ<JQPBz6&k9WN1Qr$=
+zE4NT;TRC{SzlIW0mvG6@zRE`OO}X9Fgv4a#{1_sX%gD;h%>_LIH{*gk<ybCO6tB8(
+zNqJsQzFBw1`%j&HvS{@%rM7l5V)!k8mk?iXv8eJ-u_`{N+^Xa;g&3Yd_N`RuY_Lf{
+zQ(#l2O@&PrFC8|;Xuzg;?69e_Ibc)e%!W-B(FvO}kq;Yta$r-1EQC!J-vyf*rlqi{
+z&{x7Hc`AlYg6M`#@{IQcRta$lZwf^9%?(ENbqBxFx4$p;gMSTneS--4_x=5`uXXl!
+zefC1ogxfW^RfC%~*r&lY8eE~lr5fzk;FTKe(%=FOc51LggAEN%)nJ<j#}aJs?Z(@(
+z15vhP@8V6dD1&GhbAvX~9ke;SgHgS6gRc$^T{=VNGF8CRcIubN#@i?<^1YA!eOB9n
+zU*r7-yw&mY(9p#?@>2rYFz|-$&(#~N&Yf1_d?^}lIqV~z8;Bq8jX1m1JE^TN#v(lv
+zzLWf+ED{n`EADVA|9D%{!tZdwJ;i*>OY{tUcL;B&y*Sv5_jgGck945Ut9Mc+ik>NW
+z??k2{-;_TPJTw$~j|K86-#K&jTyWs+m<suJ*ucu<?%>ly>J1r}wLAC^c$<RwWbfVA
+zpHJWN-5>M)MfbkoH^|*?93vjCy?{4{EY2PB&E`71k7YUhYrHM<$WZ9L`%QRv#=WoK
+zeCrYKu{E(fiGSJwr0wdW_(}#o9vX^2lceZ<-qIZ`8w!7SyoJ7_Db9<Me)m8Hg*PZK
+z2l;LESa;8a)Yg4g>O11w7-u6~EaC2#&HqDqCq6CKxvxJ#92oTAjaSN>Qydy}ihYCY
+z!CyDtz4!J{sA%s)p3OIdR+=;s|7KDgUil6a^1Tjk4a&C)qumvKL76uNBR#yKDJY#(
+z+p%Ce<@G+inKVio^RzUmiAXEf(s+;GyEOgUHNQw-zJ*A1n{Vg5&Hl4l1{`PA+lKeh
+zcYxndJq}qWd8sqh+sI4tu8;GZ!Nv1>2ByjQDID2umO;q$Cs#vn{=j`Ixo2=0?x*;g
+zJ5?K4K_;OSW0F(v#FB9lY>@e=L$#G?H$9!|UDe1pcYbm8i+OYB-8R(@n(wN#bgDkn
+z{Iz$Ey$ALSyh`4@TT!lg*4E3r_iOQrf_~>>4gH55aB_!55w99#8&z^1HjIeZ-3#jK
+zB7FcAFQ~i44Wov<I+Wbx#nc!>)Ke#0O>=n~WGro{pA|6FxB0Nd`sJ&Nmu(<7nyBbH
+zRb#W<J;VFC+)E5Kp&=&ah?f8T^4`ZUe>e6!L*w2PdqR6ohwr}Gt>!9a9enpqV#M7y
+zi6h^A<J_U<KBaAH?libV&42zNM!EaOrtZG!65)5>oY|$|<GV(_`=)JI_}w=pyKbCz
+zTcURN&F-6H^j{6}E}O<MN2$F#&TZaD%<C`DNBrfUk2oR5J|6)YcM@<~jD0==vX42j
+z&ocJ;2-KC*C{;(sIv)WUFNs$7lZ<sf0(GM;`ugW1P`8dpU;lgr>f)JbRY%7>AAvc1
+z%s9?R@VSx8V(jw~Scfa7LbOGVeLezhRN18KpO5g6KM(n<vy6Q{Layy4T>pH;dGdEY
+zVI1cp<XYJ{&PR~H*u-(1k05^uiQ_mQA=d!MaXy0DU<hTY82fxgDfuh4sr!J&Iv;^C
+zXNxT~ryuKl1pJNXe8fN5u75t_uDn0R*#rz7w+2Q%n{ek1tYhcq-o5;fI-AhwtKz%f
+zM_a>wy;H42_a<9LT*LlgBF$6xDDy?HVSi3(!Gy12qfS_*If*thE^-YUvTK#*i&?`C
+zrGGQluxAJ*#|Fdc+8S@<`S?Vk?!t;5zQ;!KKZnOa<~sIFZEZV^(-T@BGD)brt)>c9
+zC*!%#OVa2a>vy|QcY!5@-ASN+nY`{By6ZyyZe{xpt)Cs~H%+K<qdGUQ?lhYo;b-nB
+zYww}+`HGiT5z@2t9P4#Wy0B}&+B#T#VSal-tC(H`;e6(tyEXoltJfN_<{vZ0I=sIA
+zo}$qvn5U`C_uD!DcQ6f^oUd8TquE@BBJAwHdAE=dMc=)5a_r;ZOpmJj-WyZr1rq=3
+z;DL0k?{Dw$C;rthCj4N}2Zvk!<12kdSlb`E+?I0E_myYw{jejw;?C;CMV}450386<
+z@xS);g2W#O549Zo(Sda61MYtL!>{L_-Z2?^f&y2<vrjecnEXlRPmRU<Z@==|;RES!
+zEJ}DbhSJ*>JltaZEbhwGi(mWgM#4`@{QkGU^@sYz_un~?zV6M&$2YH9mEm7;w54U*
+z)<ozMre557HL@%`mT;ZH+h}{KjcK01YxWj(&eL4;cVSH58T!VxX1!Ra;5B~eAXaMb
+zIB?dRWF6KqfWO5Zp*8+!ihq#4&+<2}t!(K~`AU{|?NDAQz5>qAa>7S-gmen4$oM+c
+zm@S#dUl<Rp<nK?&oKCV1ui>NoPj)C;;XWB_$69{dp%d5}(s}$4eY6(-O)#o6q(eZz
+zT+$iRY5XIZgB@y|mCWWuXGmw^B>U67YJ7n2e+G{`RJzGL4mr0sq=R@EZ4SBj@i(sh
+zI8EP2Ie&PUq^Bd4KGxK+Mzqoz($V}%qZjgANBK$N{QQ_qA$?!w?~NG8fj;K<In-AQ
+z@8<6U^4G4Vx5%RALHYcRI`zE9&u7rzkpDW)&(j!(b*Q`P@SRTK`-omQf4_(N*%|uA
+zIJr&ZFYsq5{3(uaHFQp&sG&|W)qV&#*3AmpUDMgnq^ZjHs8ZeFjNewl`$R>x)TEGm
+zebp8p?8d5^M&YaVX__6MQtea+ymfWTE5%ja(D;aGs;3U+5y3kp#;yFpw6CE~RBy(s
+zO!R@b!M1p};PnwoFVEEfRQs9&Rq}s7oMoy?{j)`-2eK*=wR~2rd{enXdMLl5S{|wr
+z+bU}VzFH5(!t{D1!DbMC`A`NdFK_k-D7wn3Dm*`n$cZJ_DvkUBpUg_5_vUGhZseau
+znvr!(es0sAw^?O<K>babqS}F!MAaUpOoWcfDsD}Kj*09n=$Nch2b2ms6*?xe6QE<V
+zvW|)DY0xo|oe3Qi*|VTyvPxZ5KI~ZNn8>~jIwq^sLAhX0hK|W9byq84+o5A3`&Q_f
+z$i5vqF{{*7mBJ>0FM~}TP6cdg5InG{v#Nnj9bX-6>cD)ksiO<PrjDr@_H2y7ty0I;
+z3R~*f$exb%WvkSsb;71WNEd7xFdT$U4aE`I)NmYyO$|m5Y-#|H!=?uO1Z-+ZPr|0b
+z%qiH>YHj$bQFLU^T^6Y$ONCDAW2IvP?9gCCgHtuwropiqEHwDjk3#SV8a$}MeHwgT
+zgU@R4s~X&^!KXF&lm?&B;2sS=qQPAn+^)f`8r-bGJ`JwX;0g^c)nK;<uhd|d1{Y|s
+zQ-d8EY-n(*2HP|^R)d8GfBHL({~A2_yYcA|cMc6*f_|!PiAC5?l8ll)nhx=?p`nYH
+zcUZ*pW9SfHp*lW(9ikdtF70Liwxhu*lvaVW`%R1S<j*aZoo@-F^G))59(qRTa_qM5
+zpdI=i*MT5(TLQW{(R1N%3Eq$<F7;BKc$M;iHU}FJ(B@1L?g1yoDbq;W`4-}{b9@HH
+zXK;M^T70_*UPbYlaiw!yh{Nsb4qBi~avls$pg5p^@=Kl9L5ZJExO~FZYq$*Lop7~`
+zOBX5*<N><TD&nnYid7U+IxaFEGVNq~HgyMk?jw_|@*6{W6Yhh-IEtsMQR+-DxQ)LF
+zMiagidPefoLVituLsy3`!5#kKXAS!))BOBC!q0N{Q>giQKf+HD`$^aQyc^*M`~;10
+zhT_#nmhNB{<7PANUBcNJw}^4)2zLkL(inG!aA}OQF%G)cTNszixZ}``GVV6U9VFZ&
+z#@)lXHp0a)ZXx3WgtIX2ZpJ~^`uSCbyMu8h7Nt)FE}L;n3HM=yzkI^Ie>I#AJK+Wy
+zSHQRw!VNGkk8x3idxvqECjUrg{+n@yCjSU`j&VgM{|NUp#<@)X5$-j{WtjXU+$)ST
+zO#TtB_i8v#4-)Q2SC!m$vfSQ9Za=uHbggfb-OKf)i)0pc<~Z3Okttke5jAAG$Q&i}
+zDw$ZCOxVd3kf|fnPNo+Vj1`0<Q%a_t%n34Q$cU8|kx!<S%n>r@$)vBMdP2rS<_H-l
+z>bA?>UxqybZpfdApCHio^;|&Pw;cJWb|6JgEgl*$-J{ukA-hv*-zhu0uir`S6SWyZ
+zC+m>2xs8}}Rm%MZvz>U1z8BplE&={3!G#2a4`)}Y_CoGmpm<N^b_Y*YqRs3{s-QeV
+z|1F%mgQa3$zs1*c;Ym*at29M!BDnoQ;<NA#l!#ryd2*`l9-yH@TA&j913=f|Ao6YF
+za5U`rA#l){zl3_2gz!BB|3)zM>ED+AN<g2~`9E`2>DRlt3|(C2W#U+HEy1N^FMyvU
+zwA+V*nSe<qliB}9vf($6{SFeJvI%}yw)5@*A$C$5C*mtue}9(vH-W>hK^W&D*&oob
+zF6}gh0WA}Vr;;|}%P+4ex_&Y=^qr$z21h84|0MiDr_%c`p?LaI#ie$_U%sN^E+AYB
+zxw{R-e;|lG1Id!s!@&XabB_F%aob-8T|JlU_sK2FI2<&~HJZZwg#1RWCK;Zh`V{mn
+z?GIT*fN<w4Nv;XsLT~|@;?=6WG3HGm7&6dCb_y9EWV7PIenE0+<Fce-U3?7hE%~3R
+zLedIe0C$A)^{h!J^Kv5l_fcQ*T&lPT8UwulLD+T#eI&1PPXzO-hUt2O;;C?&{ltMF
+zXp3?7TzG@<PZ50u*sH){@;OW+xn)O$!CsnP!naYFlSC8xs#9F&PciM_QRiy4Uk5S`
+zdiSFoN!B5Qof2;Avxv6-QxbOf(=a(6eMJt*UNdkN?*3TdxE!7$T#WG2G`y{EBH{L-
+zoCpt@Lbz=*%&xu<ssCI}u$%HN`Aun~{7bH={U*epRM1)wLF+wNRG;s_H?<3PDLY+3
+zqBjZY>?HRUL^J3Gt*>jeUS6%*opTiCoVz=ifO;)doF!CeqHO#61*KKRvg|+|HI4<J
+zuvz;p&L{gP6!u(rxe)nWhkE(iP(t!RlH8jV?nYCYUp7-3&7AiD=RFp@a314wIuv}u
+zIiVkUewgrSl;;F)#|l~AT@=26!+!QT`szdf$KL+{R9)Tw<M`{sMK4Ht5inB9mxhIg
+zb}3p`WY@&PMS4?ADhd!#SO_Fox@<$mKN&PsR8)*xxy|?1Hn(hZn{Cvrxn`S{H8ZQr
+zy}p9fipq-0<o9@-b6&h&Ahx|fzxVh1{r!1U$8+xa`#jI{JkRrdKF^<*T&q2Ai!shb
+zxoDK5Y?6R*B*G=JHhJn6+4mIqU22?(XNOmwsquhU@GMMtKIAdbG~;x{ZBpR`gg2<L
+z8{q~Ob|GA^!sIt=Rk#cAu11*SOg{c|F^}hj#$%pDs53>EV!hrX@H;znfuf~-D0jCw
+z8|Djw-$(6%ytapDhqOlGp=~hoGhgsD%QYIGoEGQEfNSmepU%@xqzskw@$2sH;cSm*
+znreBzjC42o*^Xk$YDxx-S8HT0aK?I$i*rnk#@nLq*=?PugXIq5_XkKDpk$+~2p{lt
+z0CBm%XFgmBTqWFMxEi=Ma1FP}xz-4O2VCcj@$ZN2^0$%J!hPZ_QCqRV%Uz)ezu$2X
+zuyQP;&`tpHGry61zwS!N`=Dt}yE7E-^*f@xlD;oTAGV%WYoE7fDC3G^!H>n+sDlR2
+z!m<2N@-4Kt_q2o?)NtJ4{mfw6Af|aX8MVOeZ`>Q&!lGkBUvzgz6`oe-z(zrb&|fgj
+z{GS3R&O*S0c6k12AkXQ6Kkr2TVFI6<jFVv!zuOUa><Ww>_>iW}46R514zF)9T%Ijr
+z{eb!(b-<RsMex^6#zUvcC+ZE3=_8TaiQmOoW9q*`&H=*W6!{yCMabjyHj22fkf&xj
+z*XkzG#xUf$K*3d};CcY{XQQ6<8?CnIh%<T;F32FUm(kqqZ4z}#d84r-4E204Ks(`5
+zZG9<d?5@zY$Qx(tN1?5*!Q=^OGfu(KiFJ6+X}Mm9ski{*W+LvWL&7&u#ovm!12GcM
+z#LJA+QXaS%K4nCnLnEK)obhbOug-KIcVHfkM0?Guo>*1SbsWn+ec@dCL!Z7ld@F<D
+zsN*EUxvCBm?s2Cjo$eFo{x%tLrxpLwX0`np`3cJa#POUc`TymrTmtGDf%tb2Z`Idm
+zbYRZKD?FU1;yS5&o|dxeLCwO&AjH|n1~3fYtm=zb?d)NG<eR73H)T4W?HeoR^(KRB
+z^O>)^Pp~Y@NO+b9#r*%8?aDa9Q-rt=zLxO0R2$6Kfw<WyzZdg)pPJtX;h%&{i<NRl
+z5_~UQGMq09G6wua_$OC8w2T>$qY-X~+XYt!mj>sAJAkqoS&}ykUaWXT?l+QmM&$b)
+z6BUmjFZvhar=iaQtPw6ndxw235y@h!COf1nd2v7b?K&gZ>=9zlY!p1zNgDWCuE~#n
+zE!KLT=REGjypJHRy|v+o-E!^;TKCMs+UJjD-J0-ciL<5$FV;>_wl;ZeG-%NbFZ-If
+z-q^!$DYI=xTOr^u#V5yjjKJ?kgK~NU(*9{1Lm^9oXFZ2F;+FU(Up0B^QQ*r#9^_sp
+zWe4rH5P4k`>D()MozuPBV0?sHW43)Qd1e=BUaJXG{-TW{S*_8gjbh~2z4e8Puch40
+z{9=FPR;4F^ug8I>ht>GoCPGHwIcJw%Z%`)Az;7?-Ndw|gN4j^r5v|pCv<sRR^CuMT
+zt&d1^fM;+%ySEz!=<{o$t(*`5jADFRJn*LEu6V>H&j!5lQoiRnW~y;aR5Tl_aO#R^
+zF|K3UGxqts(dcrv7*`3J-)M9?W!ea&dA=rG+XP%;fN71sP1uUY<M#&O&jWuu#@wOo
+zM_Uozordx#yQ>;{QU>|p3gf9A<iT5IJ)}p^W)U93eyaKhh_y$?{{nfIrdd4nzeE{X
+zp5tbg`P5eCqzG>`GM%=*i9T(%wJYn0B+ST@p!%PHGM|0beIibkHRC(KqD;A6&<ob5
+z;T>06Fbx##ZG~)zbbVG3eU26MCj6P9S8eS<Q60Y5R(8G(2So@s*wXSf3n#@QU!w@m
+z7HiPibMn(6)|_;KzBJFwv*zU*P14f<ZF@)DNX_Kcp)wmB#Wr~7iu3<>pnm^fAQQY)
+zAY_EvpwqFby=!QTF{WG2nIDs<AZ{&mWs$Dk(RMpzT*e(jzAbSQwvQ+$AZ{Px8dV(R
+z{3x@|KcW1G<l&&BRJ8BnS$;)R5ya0GlBP&YISX5ioEwGx?RXaLW(t1to=n@in|5PM
+zL_XIijAM3~MH7iA`+bZna0L9+8gs;Yu+boGdjQ`Or0wXId@9LSZoya9T-ZX`5r3tk
+z6Ak%_k-nkZ;%~IgoWy#U_m!Mirah7C`kl78ix77JakIaYb2VAjxfgLh#CeGqH5Sl0
+zUvduDPP_(w5e;2EPObM(pYHA%pEZyXo>jJl>(%(&lwgey@GQnB4f#^lSWw0z{_S-R
+z`>Ol+L7!bV-e`CL(`A6^eem?%x@kLIZzMWsX9llC+Gl6vT70Q0L;Kf7h@ZrJ32w>v
+zN(B7%v{@Y&y0IFw!Q{axd%h}r0K9hy@vhc)GoI^vB;qeo@e@=$ZC>FDzGyXX&ATkY
+zFS}1{N19y@PbAOAI^uz!3Fkz-2Tq4efpf!EPKW#sw*xK#zjMIj%dl=&!bQ_=fO1&~
+zYj6p0`|!I1E*kk$;Ie2#W1EOOjNdtMt#FOE+SYd3kg!e^e=XN`r_b-WK-mzu_65{>
+zd>i0DYyJ=Z_iOTpSd(u$Ep;WX!<T|y%y9FUa$ML}n9`qkhoi6DG3jed?(o>;j-hI;
+zVfeQQKbWKmJ>>!=Z|uZ6dh%;ahiitu)ojz@wtp$%y6;P=!!7&L(&5%!qMi8T;InnO
+z*wdDLaSAd;W*;5S3p!vurVdy3Wp5oW?@Ot}nR3Oxucch^H^iN#rx6b|79LK2CD&r&
+zA<c$|gI`&As78I)C_G%K@X(4r|LkkIW+xzSH|ExEx3y;9^`$I-xqx+}al@B#%&E75
+zx{m*p^?7Rp4=8+mCGe3QN)Ym0j=;;yUt4(jCGg_wGk-IIm+MgPdy3~>BHEhMgO>~X
+z;N=GjFE1eOQnY`pAN+71h5Z$GawubcDeW|-eNyaY@{SC~sH;o%k#UL3qz-%-x?>XU
+zEk4?A8VrotiT#M9jFb!*0qcpqv10#A{0`#xF8;2OzoAQ<*f9nC2mB;gt(8qxEfE8u
+zL%+tg19_S67Qna$;RNL4@0;;ESM1-^i!v$s8zXijf60^<VSD8`-u0D~@fhw_{P{|A
+zpCBCaf0v9KV(t?l4ua$f58B~fs|2ymHX6rNz9e&>0QuhR>b<ArMBE|95nf^QY&72J
+zl5?UH>r$ktU)R(d2UYx0#1BGzl!|{z#mAv-7wvpQi8u6bK>hpCmG#E+NZ&P7&b>b)
+zyi<kuA{?t=Yf@|8uMyX9MQ@p<R;8KyB0Ft;AP!29{-iCAx>F9~9<#+!uFOQ-mOgP4
+z5!YyoqaKiqxF6Z#zKgg7#I3c(-Gn$7;#S(?E<{`x)}0z#TpHp!5ci-hE)j8u5qG~W
+zj^n!@arfEcW+845;>x<@{Q4JYA#F0o80+N}#3jI=ENFX<xI0O`{Ce^GPVt-i@HJhu
+z#cnhPKu2~c8*rM)bBFjHiQgXa`!4Z&5bw^3-#Owp*Ue=7j`Q&D<E*wZa^IsZNv+qT
+zy5w4zp~fZ}@OqJd6Xq=GePkDH1U12oE@_)RALSWOdu=r00^&{{Xi4o&CL%7`z0rt7
+z8K+(l`1p(N6IWB$b<6qm0B|7qSEZbXRbNT{dNlF~n11wZ$6=JI#+tYku6BmBfzbxZ
+zxxWLypPC_gNh|zQa892?)8R7V%HV3?n&I}q9cJ2X4z1)isax-Ze+=#voO349;L_oW
+z;C8`v!6nRcXg;_~xE*jyk#{%Rse@~pA^A`4@5NqDXx6*8iv62})OsTkPKQf^ONL8<
+z^T4ISO@vE_^TK7MO1+M}Xb|RGrv6CK<z8VpJu8A?7$YsR#Sna2-)wX>wHRS&2ND3r
+z=V8OA*BBWws0Z%%keMOhg>v0BMzQ;4<3YF@xLUZCaI4`Sfm;Pv2X`;rU2sluhgLi8
+zO_lO|4D>1QbM=Ol^>W%4Qx<=2bGzm_Ds;9}l&|!oVm^PSWZ0seEk;p?*khudKXjGn
+z#^4RK$9>$gc>`sQU7FVPtN*?`4HxJq{;={};r65My>MCmv=NQCo&Ch;{2O?7BYhA2
+z=6=!`*ZNBt-tkNMn=bR0(%JK7s&q}O3phMJfxj6-*F7k3oy9QlJab5WFw9dEAig~X
+zQ;eH1ud0AwFZA*X_}hT<3^hJCP+myg+)ldLh<W1jJq-S`47%gdc7cE7e+>B_?N;(U
+z>bye8@EAjk73XF;=9HP%sy%G1>h6AN$1w1<{I{`Yt}|)^ZyUAVw~dv)w~bZ)w~a?U
+zZyR;`+n|}Zjk~nBjpA11gFcZ^06K32olgdx-==7M6lfguIMD$b2OT9pUT;A6i}HR)
+zt^>jcjDRH;v=gp@*6$WJq&q`*!B0YZ(lB)%V}P`qyz;qq7GpGE-wP*jrq={KsWSy$
+zD7$(JZZ!T#xy1LV@q1hUsV5R=YcOXrnV!Ga__ffpFfRHmjLS@MH#r*h--EhuAYSty
+zHg<}<kMchGae-sc(e^53XD*ccG*JuSA3<5&GewMJxDBR53MTT;oH6K2{&Hi34Xy)(
+z3*+*)&ndsw1V8*->RkESBZg~si;<4;cgAdPe+u!5@e(J0{hWJv8;zX&mEaK%8*$W$
+zB3O5gv6TA<`HvXihkq(bw)X(f>Cg_6zrv`d&5L2+T5DKgJP%rGwb@8K&ux#OJ#V)y
+zjy4OAqP_4|zXJ+ER85-NgN<u3mOAAamDtAU_Xy7d9&=Q_YUImS`R=jh`xU~|kS}4>
+zc0+H2-l*3@2HS2V;&;+I+98$)276WnQVO;kk?@lr-);<mpEh~B5e0u@%y#lg%&irH
+zXy1mw4*{z=PZk09UdMK^XSxu0j#KuEAwt%jDemoS+CAK_fS)VuIhuC6xLZ%!ju8Hx
+zqW@~Id^mN%Bj|qy+BFp1tZOyW5@V#UxR&?%6%2I<r>O9K2q#V6E^On;w{4HFz;F0s
+zpOH2ckE&}6!fC3mW`rlI@{b{$uEO;Qvu}E=v}q(>3H=x{bLmj+1moQ*J{s|h5MPLR
+zVf(;urk_?ein|fN^NQYM-AsATvrfvuYzJ^1<ar~=u#Q&L(OPfp3u2Bwx7|oafA*rh
+zGf;215FhQWH~xuwt8I1C);2}K)i_kbMVZidnzFOBg=DI}Ii!s$N|e_&7_;7$G63gD
+z5y}ozw&OWxXbalho{hK|6*m)czXd&+W1b^)_SvDD?(QQ8Q(KG_b!Lio64K$`&n!AT
+z59NLew=-4daU$;ymG3vUeBsEm9ggG3vC9C>YQPEQD(*)US5Ki1%~#*y0xqI`^~NK>
+z$4i)ZgsYP0Cup-qUw_jj-s=$Y`G{v+6vpb$<PVU?8K14<2cr)1vyWpW9!p{*9*fY{
+z7~t_lj2z#bR5`vZSAh6^o)#lljRSaCR2%Z$1RnKkr2UvWnri2?Tefoo`b>+0$*I~t
+z4|%uRVCqtNxlhn2bii!+J_P7B%toWACn`tnHFLipTiL+xvElPq2v6gf0dG9(u><+I
+zpX!4w_#o2CFt&p*&yo;lp1JVY>?*XGr({c;xeLEDzAN`eDBID_vJ`1uklEa`rR<nE
+zTgs1=C6gJ4a+EF85ca~A!Ns9m63QjR9fiw=%bIP;d$|bjKwJ~;^?~t57;r20`hg$r
+zeR|PnZ>yx=ba7_mHo-U3+(LE}Z;;%FzHy&TgAU8Hkcn=YpK;E>_G6`=$@725&{pMx
+z4y^<JemL>Q1ka7AGef5_Mo!?0??{A0*PX8HxLlXql%H2W+i`SRi$UEJ5{Yph@aYt|
+z-)KxxdBc>=TiI`;nD!Lvy-uamM(q;1WRuZ^_!~KX2uGrx8xTGw-U``h)F5qwDzo_U
+zmiWc@wZyY*H0lmlvS26o%J*p6$=_+(0l24r$NN?r4W3ULsmf-eY&yzz3YmAKpxu=F
+zS|YeNi#a9EG$fNY(Y6z^w$s1S;Cm&mRte)krOWah0dYMH`CjcO{iIu_5B^NfPwwyX
+zY$D}Zo|y|%{Uq-G4A_W+RxwUZhQpS&hiRzWte5f4s_rjNLDy5b|D~#f;ToiOBJC-(
+z>-KIm`odPE$~(bB-b218l#NpE<2DH!%#l;lR_wlA>OTpE&|hwsX9iMkmvoZ`KOHUu
+zE)y;nt^}?ct`@El&IgxpyR=c|S4#bjG$!6A@oc7TK;VRJK6^^qUTE9-uAApFZWsKW
+z`BK#WD$irmcJ!N5#OY=uL6h`1Ud2CkO44>S+B^)m^L9zs2iCQy^95TBhp^p&HvQ7B
+zsn>wt2pMr!$PFH|qoBpGY$ltGCh+P_gw0JnZZ<9!u;ql@>MX)iwfD?-dpd7^w&M}N
+zkYCVyZ=CznD{Xb8syaRd9VYWEihGmsFw))V6W6J9=ta@q&0;+t&i8?CYvH-9<B6&*
+zb1%LUW#ZJHxLfU&lUGmVx~1mb$E0=CKaP8W$bVStT}Pg+jt_;6R_<NL2)?_?cnb6a
+zxxS5kyAyq@&8LlOvk~XsEY^t&(N<lbI=_2Lo&|v%9L2p*=4Bb?=bFmA;VLhA_oP#D
+zk9DGt@_~f=PbeD=eDEBV6Z~s}vMas;7=MSn<ii~6QyAl8a3|r&r<2OzBkY_5AC5Fk
+zK53rSis#zRJx}i@(dWTppEaB3IEN1*jukFkf?v%Rd$Y7bX&Afn6bwQ)ReP(^`K;&m
+z&~d=E?^A2fmAZShzd@bVf=mn@d`(qLL^@^MsurW>X}Aq7hAV%oD1W7(Cn>XxCy(X+
+zKEmTb3ohR#K{wg4V$EyoLOan4e)2)5I_pFHra=yS<cu|@U#L9`iEoTUc#9E4`8ZXV
+zc)JR9hgc_IKgK?Q282w9_B*ctf7EO6`^KOPzUHejT-pkt@nN8B1>D2&8pbyYWe=ll
+zqQb}Dsq^@^3Vq-OVGG`D2z#F1WVpa*{>t|9n?zp7uTc%Z;n>UmFT+?wYnwV)rW$4T
+zB5(C*`Sy}|u3{AT3>6OUMERU2T8!lN;H^GC=fZL8EW~Dm?{@u|{lagqlcpUUvXnTJ
+zZtg4cY>YYnQ@Oslo5Xpwa<!i*^|;24fH<qV+1T`{T%#xpa(z46>nzJ=V-3<x7`b0^
+zO&_>+BL5FRwe0f#QPS2!xDKANpXb;t_)N7e?_%V2sJuK|ZNjbF;PxuG+Z5c%3holr
+zb5!wtS^pNXN0w`=pSUvX|Anpo-*c~2od0byINw*F;W)}Mf0XSg+nP9w!1c_xGRXW7
+zAs^4{JdHf9T5mi}`qZl9L$N0+>EI!8eg`xHUO4bP?h9|CjN4W#c!Iy}JD<w6lIh*i
+z+KEcHkb&EnkLeSTUe@c3&t}7iwnrnrN!^1W&q#!e2CrzXf{gY9$Z`ntJWSdgDf8`j
+zOSx~&9C;R|5xyU8H(Ul><s5l7hWlRJZ{Xe+*E+s8$2%@jg2!(#+zP+EhXJ}1?Q?w+
+z<-jLIIq;?n)p~Tgwk0A_@Zl!oR2=)Z33F$Y(e+8Uz=g=K&5Df?yb59PiHpeJywK0k
+z=Eum_8mDMVUx%_aLgv|())L{;mdA50JH3osrsndpcvH5ksWstlGJ>}DC~I;5Eu~e{
+z+<(!u8YuclpM$IgcZzWsYs_8auhEiM0uQl#YwgW$dCq3f8Ce(4&1jX#>)&JyROblY
+z4V#SJs@#j}oR$ml|4PM$HTYvsKiLw`vlLxCli=GRbX>6(L)M|5<n%NOI9-Zw`&HQ}
+zv4==pHX7Sh+`nk=@@*7#d??N*Y!di+McA|JgH7O(&!O*);gVimN=91$32FI`P$Y1%
+z33GbaK26Jq%Ybw5;{|FtKk{SczDV6C79YqbT$TQi{v_6PpOEXJ=WI1r5XY5`luts|
+zTH0jjX#0LqUd}%s%j=CsbgYyY7qJ|EYq8Sybwce!lCM+dI|=@|S>R%;n2V*KsQoq2
+z$|0$@ig{Z23HkpfgJ&RSDf}!2-<&DRHW=KOaRWbhAm2{4&l0I%oc;;<gX|ym{3~ti
+zsE4$v_PxXz5I5hRgA7O=6S{Z+y56S>9>U>OFx_CoS>H7-1?65neXcdG$#4U{u_#X*
+znElgG?>I%r9>x32{5;cmA<`m|KT_pC1YUWO%1<3pSFl8ixz=dxL3*UZ6LnM*KK82)
+zy7JEeUsH^Q-$AJBb=1T257EFQ*LUJI0`Wf+x^9y}`MfNK=i{KiRn{A4KIYogWTe~V
+zzE3}vFm<1?%B0)Me2nyumCj*~k&f~P;s+{N;*h@`zeO2U2X%6mZ?ok)1%CQAe!oo_
+zu2qf?^KvhSWoz8^9j|{Z`z8Ci)u293I{PQ$vjiM`%kgDnJi?sMlqdf<NaD@oZ;6jq
+z^E?aj&mg`*-9-rZ`(q*$k0u{ZRA&^ai%{?2nMLXz-W-Q^8tJ)<A@3m^4VOrNj?`E7
+z!#~!Sx93Q?uoL0KbG}`FiOZ3?j?jC++fRGRcR+{vJhw;w*l28(I1~F?0kyV0jJU(L
+zvm-oPaKLTSL!+_!W4XQ$vfYtd`ms90hjgAx_yNZsYvOQq&Z<eX_z>@BRDKM4vemgz
+z)fuhotVI6#wmPZ%m8v=;Rh`*=>bwhevQN|(ijY^lm#Kc|E860iWC1T+7qj8#=SV%U
+z4E|!c1~@<5&K$WW%5ze)Vx^ta&pV!Nr2T6KX~&6Eo#!Kb^6Vnv{7TRVc%14R;kxc)
+z+3xNfISv!mIGA@M#n~kE<udkH)ziUxxSws)A6eIERaamh`jDgU7v%fI{u<=RHl9m9
+ziu%J89$A)WeB(Ygb?!#vl|k~p0QVaQDtb;-=k{E-J8lC}#!p+7Tiz3C(p!w@qh$VJ
+zYK=0-ko<~ztOodUy>^|d(cnFsQ=RfGN+$9jS9Ju1ywqr9Y1a8v*71HP`NNzLczqP@
+zKyprR5a&iaI_0<$2b?#YC(b+Moa%THYZ$`RqmHU^6}k-d7@qamCG~fYf4h<9+ipzs
+zZtt<dKqf!lv0u{;{0*ZER|&^^n_+<YPYT}Xp)K)usIx<~h3--Dvk=!cxkbnVr@)IA
+zLw4<ijN2I_&j9?fleWD^asTvPgrgKqA4K|Y{2s*hUA(!vI=Hr5o;^3un=eFP!;oHx
+z_{LOozHBfWQTE53a{XC~w#l3C<Q?TvvdwDz-fnC6Ia@nI&+C@*Kl{h?YAaP=lGnAw
+zU#0fY6A}MI6@RI+|4&kT@U(MHqKv)_{4_?c=PtBe!!|vy8<zmDmkAna5->YW+mcV(
+zZ|?7u@-J~gzPnKTz9Yml?tcJWw0Z9EN}MKjTYP{vr1_olEC$Qg;ddc^bKk1EM&>7M
+z=l7IpGD?u=PUHzHIgT_q4gJbD`E`RoMr-hgKd06*6W$CPyx;AV_A=Jb`;NRbOq(=$
+zdYZB|HG%g0a2~j1xQTGpa2asfa9MXqn~t+`oe`bC&fuM(n0G*%4N`Am-C9kf;r2Hg
+zmnghL#~;pjj5&rGV(n@)ZUHQ=)<z@J_C7A}t7-mvLwDD|KN)?Gc}L2^X4z;}HXUU@
+z0^EB5%Tsr#b3%`U&Y|Nwc`vlV<YilpaLkt%qolp(4q>CYD@2*<sb0F`R^ywGu&(EC
+z5qF%Ae#A3MH9<$G)ZYZ3!`z!K<lHxe90EPZK^b?)N9MWj22s|Tx~|>fdH$Hg+u3u+
+zM9BZ1=dl*OZcM{kG(yo|3TQ6eYy&#OrD9(rN1h!9>~3|RgYfjoK1#o1KQ2@GNR!O>
+zs>=77dRy74=HC+^@$BsD#&pm#_|EV!gtHNbTroTxVNLCG?yMAhL2a8plJl2z`PN6~
+zogshdU#i|m5m$q}jC)nk+g5S^(xq=Pe*KZOeR51A6>fPK;>U>piOS3S8CeQu#{ZT3
+z65z{T^}aL5Wia<3KazJnpM_7_?7&#Z-3c0mn+O*Tmk4(d@%zX#@09m3Pb(UYt^s`t
+zyJJp>XHTHNw1F=SKjxKp9y$MRAZ_HY4U&h4sda2W;8^mJoS&rW?;wv;->lB#H5!X;
+zX_q4{%(ph^LVA-*uT<$=b1p@?n|I~$dnwm{q*2D@`Kt)Ew=})mTGvKI$u-l2h3m@g
+zC=;d9V^w;Z&E`kj;H?<raP$-NC4qG_ZlYRaG9Lt00XLO!4R^}BC7d&q4Q_sy_A%OC
+z>x~>?i<>3(*Qn1zV2E;S+vPc4@dmoTZ9DG{zQl2AmglOswnXskKl8CZhi6LAT#v5B
+zder<X)*>i$C2*cs_?FCeL-#cZo$u-}xhJvjf)-;~q~sOnqpm1r6JfhgMIsITcZ>77
+z>x|Dnl=n<sDEG;S@}B7stv1L!(X{V+<sQgDRo|d6+VZvw*eMI<U%)$M8;#3Yr^fSE
+z8#}m<5u??2&{iMDdy1{~#;7yWR`A+~_O}hT7)gNV6BQS(;^GkZ!H3Fjr)bxSxDHz!
+z$LW--#ekxF;%2q?8J*uCY%bstQAZbJEnWlIgdR3Kbdl}uLV~bIZWQ*&c-kX1c{co7
+zj)iw)&s{C*K%6g|Z1%@5m2Ngz=~`ug;d#JN;<C#(O~$i`OH{fzd4y>XB46Mfceidg
+zh)2!aY{Uhc4bOhS>fQidYJ<3c?)E^=4q%-D?zlht3Sj$#u+0IV2`xsExR<oW&=A&=
+zTa2H6DChRQh~LHfc^8Ix-OGdX&d?Um@!nz_KA(E;24frY6NW@zvw)Fz0PaP(#({QS
+zc#H9ftsjNLeznDDI-h#LMq}-V)ZHW=X+w?%9y5{lfJ@Q}b$64_?oxC{8p*NI*;0h#
+z6rHjB0#$a7)|<|{hVku{jmEkUdH!!BaJ3P*+GxZnT65cIZI!y~Jn=)hU-cBv#wfWx
+zllAhvrgyy<&-o7SyGecCsrzH7?}ObPk5;x>EaOpe`g)=Bh%?_lKi8AvIWNjNi}~G_
+z0UBbwNh3UqWZom;88GVCy6RV_*av77GA8e?K>rU9S9Y)Wg{@<zvN1Fm;l7oD_jxva
+zqa2e9Oxq^<Gv-5i_Mh{gyd)Ytz|`4q{7|kj6DcdBuZ(lM*BirJ+^eVzf>&Sp?iopg
+z#M43EWzw4key{mZt}7fjmv^1$Pa@CWsJZakH@)XVywHi|oFt#gifA#;e1J7v?t_Os
+z5fb;rQ?z(PVx~AdZLi;HtN)LE>i>rK8+P$51$0Z~8Le=jquw}-b?5`~9n_`feii3=
+z4d?*tlnZN=OXyUa%yS`8T)WcL8LE}S-(o<P4y_a8GbgkJu<^{!zBswhOnLI)2b7t&
+z2>an{AIN#fGPNk<ciQEiEykbOckTAJ-;nov<^5~!*RNFl8lYvjv0r7XT(m0p>kp)!
+zM;hiC<I&_fKJwGqZC!#cWSjHR=IL-dui0WefwBX{y*q!~gCFqDf;>ZALLN~GdW9S}
+z5V(j_Jm?Riz8v1G7kK!C@aKd8^Khw$Y%vbTwixSC*8$bmFxA%T59FQk7yI<@);{Cb
+zq{<Ca<(4SC3{Y<rgsXmbd?WkGI@!;naBKgO<?j7}{9(Hhwu|fcvS65YTPV&g&dCiY
+z&L@ielY`8gPg=0e?ea4gU5)7j-+a(j)AObt*=(GG?nYbCY}B!W-?dQtGXp`l;EhKJ
+z`;S4V<`~6%V~r2%YZ0=T9HTP>HDz<!BHkbJqRw)$_rJ-wXrSZ+xq=UD>X#49R^x*)
+zb#T6b7sNYi)&#>VSG()UPg)y{tfBI3TIOhRz9q(?<%;t_w8JH6^})2Ea$kI^7_U1+
+z1?pV%mnS73W}eSas&^&awLzv`_JQOZ<dF&P`rwEU<Qd~iemCSfJH0j=l=q!T&r!C=
+ztJQe5BK{2Oy@34%4$j#440%jZjFcBfqU<N%NZ!%luxvITos?^pOWiYn;tbC=fYw3Z
+zC(iWdHMC8IPTJo#+G1q#{U5{~N8Q#rgDnR2S;l`Ca5Za^Cvj{?im|=3t=KlUyw`8i
+zB**q1>U6*t?T5r~C+hhx#C6#2WDyqf=RYIuVT^IQEsguhoCkZ5c9W{>jgu0$#8VHg
+z&}NAEQHZOFk^8~4>m}X=`4V!b8~)K+P_vRbxz|&6w?j+6OX`;y@DCvE7~C#64ZrhQ
+zmVPeuPPjdADJYWx=Yz|EOJW-Qy?4p85UucQ;j-b9Ssv*J?vlE|A*SJXr&r#)7532l
+zdiXWMenp*4*quOQJHs_`&-P*^zk)uG?>nMtHE;dD=MEi_u5TQD)_)2v8sQ|kbQRa1
+z+jE4kFH+Xaj^%yNXv#>Q)$&dr_rmd8=n<Zk;*QFh2<?QK=QE!3PgUoI@H+wNdy!5(
+zI<8OrZxPRRT<a6R3-LTBa2{~>L<IGa?Z$bWn~?ck3TI%<$6ZG?tpoko54RI;O&{0D
+zc;4Lu-R+?L0`<SF>b)6b(5T|}tGF8xSIf79Y_Qa${Z^HJEz(Q+q_0H!9+iFt(zE)c
+zKZNvMDt#Q%6IGi(=lulU-5-ED)q5SMNqhIm_c}Td?!4Q2x5Iglw1@JYo~6($OVnK@
+z+NZ;nd=qt2@~I(0PTDQj_Adm_yj|>*(U!wIYRubxqTAflh%)b@bDb%{81r0%(_0@D
+zwjJb6K)EkZNZD~O;H7P5=iSnla}<7wf{o|<T!72zt`TR;u7kcAj(HI6sWm9;<$~96
+z%y|b-+$AyFQabF5$Un&ThSr_t*ynTqOq^Sf;+^4vlxI;V@jNC%t{d^1lvl%$?>eE=
+z$aabMu@UmFG4s0-=R*107>9Ogt6!(;xKPzWx&2?=-CJp^uR(t!k)LIwB6`cJY)cpK
+z>&UjER6b4RTkL6xM|<(dfLFpXun!!}e>vigiZ!rN*ec3Z+25%)2+MASsfXW9STG0J
+z7RQkFj70w53*Omc%tku-BF80wF*yK7o7+M7&G$&&6oGM0r0vQp-&5k<N_T$!P@b*e
+zx+LGmSs6TV#vHqqJ@?RFa%v`h4Icpd;61Qi7}H&&<UW0+qLE_wey(TQN^!RE8r7%s
+z&_<%-AuLb%h51udxjFDlY~?Of<vtd=f;{7QiHhTS-$4ql9SW`}b@q_<u0)mZMsbH*
+z_Jeu1sJtnNk5uIwofdp7Pdit%D(~qT-<4v#n17ARzh8{+%J>UaIofT`sI+}z{G<-(
+zM?T)mXWnRiW&E?$Bd|7bP52)2OMPyZxN|}KtCO}3-X}ww$PfJmV}S6l$U`C1p9ee<
+zNB>YZ+WSyPoZ`uD1t<IYrnqy}V*C?*A+LEEKHsMNJN(n22WOt#A0xexPDn2<#O1;z
+z=Ska566(qTy&OKyHtUUvSfjffeCG?Yh)!J{^r+Vx!xUd0Mja5V_5nC(RGP2Na!Vn_
+zWghDt_n)|@RGCBXX<7#K@NE%12TA=7dX!I|=M;BEy~~Ze(C;(_o7ju-EGG{L%|^V*
+z&nSydvE_3i&qT;|Ly+$l#JfP30qBw-N^!qEL)k)^m$cw%K$|GTc_D23EK|ANV0{sS
+zH?2O#_=$*5#5hyl;W#~WhB`XdjN|fd@qkvqjd?gk+uJcj+tDFxUB1-@-veNI!gHxp
+z@SnB-)(#KqkE>h>x{=?(WBf)3c_egfj62sh$`yo<=c7#coW2!CyxCvxb|Y5uPXXf)
+z!dO`!3|Dyv5l_m#{xIMAYwZo6Q<Lu%Ft6qmdt;*9H-Ilrg}+j;5?^tEH8FpA@H~e$
+z9CBUAQKR7E9uDvVg$Fe04|#zT!YB9oRvLp<UG27de-<w1R!Hb&RviZ!?^|U!YgQVp
+zD=~j%kaw=xet19Q^(y5rpMAVm3S1muJ^6l~Z8$zaob6d@aBjPNwL#He<o!#yCeF{r
+z5#ClogKa!d5G{Fwd^e~S>s@}W(WLNj9_l)-#%oo$9EWJ}E@3U_tmsFJ%F8y{cAK*2
+zyVTnd?28k>!^PQ`<-9K(r0p<C;hA?ZN$bSNDd=E{Hrm#Ok2ducMsm-*U2deP_&CH*
+zve8b2*G4<u6$W8unKWg0iuNoQ_~KogA0lmx%Da^EjlaGJSBvr64gYWNtFaaHubwa+
+zGwH^SI?5Fd{2BRpzdFwSNH9UGq5KgVM}1P;CeB3uRE_^X$h%QCU*S@;=Xpe&|Gz6-
+z-eZW8JRvlhXWC-<ChvA*Gt1XN_Nej4avna(_CViJw6Xa}=et4YKkg9sR$CttJU1@C
+zj{C*j*FWy4Tpd*BeT7Y7oSM(;-j}*#R4eD2IbVJ(=d*W}XuC<=iCJmfulhh3;__>Q
+z(FzZrhRJvX<6cSKRhz>xcnw<3U(EB6d`rRM;paAHg&tA&?a^+y!^<b~vqQD=9RN`u
+z+f6`Q43q!Ghf6;49@-gV;yzriJ&f0Otq|kuu6zV^_K2|$`8<Go0AS)-*2G<p1l_yp
+z4c^yqA^uYKS*(lo2KbuT>my%X`VG(XtPJ+$8=Rly8)n;1|4O4XOcQ5uIKSh`BQb7&
+z50mqNbC|s2(=**s@jU0HZ;zMzTfnDhdHj0lzpRIR;vJMR+s_sB;t!>$vE{f9^!6Ux
+zNTs`w-U*N1y25xlOyY{)f_(|$@1svnF*i*5!kqIyV*Dk{!f9)m#Ob;)?%T-uK^u$Y
+zHR?Q*x_j?*Z!lJK9%;2kqU}7BiH~1|$$4b*gKY{AV}$*6dqlLpJPh+K;!?;JX8V5C
+z{(Y)_IUdW6G&QeXnAe$Sq@MAQaJlxA$MHSJmjthqX92kWyVbesLs<8B!}-<ve_&#Z
+zQ7!JK@ZHXOVefr{Z>%=87<=}>Ep8EaM>O9S(E975U&DC5erJo(lnFW>0X`>e99xYw
+z9a87Gyl2nhcE0r;q&_6>|9IXKIx){hv)?=uukCu+u-Dyz{{M>g)HE2ipq;1nCh@J*
+zu&ANpY%b3vX+D(kyl$*e=}dcrXSvUjM){Jm)TygE?`ngAo8>#Ge?~iY_;VEe{}g9q
+zw;PuTdRzwBP^Y$!wzuQ#BkyL)w?i7ldx7G&=a6c%p)G9q(BPLsrj_^HOIfe`ka$ai
+z?_n%sJ`eH@iWT~q!+ok(9QS&|qWYw<Ui5`&qaovqd%@_-ln%MaTtXi($o<G!q0!o`
+zSne$kRPSR@cjJC?nCGCu{AM2cp5Uy|M5R-S{blbfVl4Jw(h{$^m&b<*897so<1)Dy
+z(>4<A?HtCtAj^y|gbna^u^(MCjCMJUgT4&yye`fZ@J#+i#FM@p@x<k;BK`tV?@VKy
+z(qk`|XYz;hTg$w=&b2z9b#os~UvbPS*1-)O;o9<!Y9+H>F3<iC=e{)SxfkKnV|b4W
+zFmSy@9Ww|s{9EC7sXMZ#B3g`n?HCu#lhK}x;9W|-y^D9zKZYFoL2uXCscDPha^Vs>
+zW!&kH5dV=a&qx26TMU;A=Y>mxbA5Dnd;eFvlOIa|;D`VBw@tTOwc7;WF=(i`JDbNn
+z7x=kFEr#1K-yn1Oe`{Q#-6?p6vr?WhUe&JN2v&9x>b1XX?>682!rXnm-Knh%EK@wd
+zr41GDOXgwT92a{okaH?Aul;b^!^XYx++(N%a>UW_7GqL7_e1N0<{iY}v`hW9q+RaA
+zYVNIu*7};kH-_s(8|&H}kwe9sr_q3A2kQB;S;oe@NsoN%b^zcTPzm_>{;3D>`D25!
+z|Kh#C;g0+OZ$Oa0RYBU>SXVChBT&}~G4ECd%iHCCi8#9i9E@p~Z(>r88{ps9u2nv4
+zT&?z|*iZ7`0pd+F^c8c;(<d#$mNvFen#-0px=-3bTiS>|X;HScxISs;+0xGIlNM=9
+z8_*|hh%K%AOz*V8wzMv;>%_NvOApR9{T0K5bxl`yh8&*Ht@UA$<f#L^1>&9QVeN9y
+zi!?<Z|MGhZztFK*pVRX~yO#ej-`ej5L$nQsfAvWlWJ^29eLc@B;7iMbi`97<J3J1>
+z<B#;|ztdL7pZnAwZcE$4{)@K)x5#@XSig8?&f)o3$e5RMU8saiS?TZL{o@5*mIVj+
+z<_37TBT31buf1oUN!lXxptZyW^%Usg#6fuFKBJki=n|GNvpwDq^qew!)}cP_i8rhH
+zz5&{EXe)!ix3`1wsWjWkUv5NHzSz$7cRAY0R&QnUP3qamvktm(hVA`KAL8m9e2+Oy
+z+Yu9{Rq_rY!X@gC8Q*13D3Eu7^C27MBfJzYDaWB@!A~iW?@Y0;zx#%F0~$Nrt@0kV
+z(^Cf>dPRq(*BN|Qifss+sCuu9YvM=U^1VI2n*-TCmT!oYKkZO&&C?cY*5C4teD}xv
+z#)&#38*-r^7oi__q8~K{);9sdl|7GoAZeI(y+_5{oIKN*&G*e+1C&2d`R1F~)MwVB
+zKEfMj+67fT583Jfe4-BeX4##poM}&FKPwgN+}k$u?p68t?wEj2z)Bk&)>9=94^Zc1
+zS?^Wi?67<jP@HuFZp=G(nto8oq3NwH5w!X7?%-t4jlm0OkA-Z|t%t97=#w!nora@T
+zzGuQc($9L%$Q?j=;1O+1#5i38mu|lE&iyr?e50E1@l1nxC&PT(S==*vuiJdHP{?tF
+zD?e6#&n5Xi@%9*GDF2miHKsXUerMsfkOMNrY0Ta1Q<|2noaYqZcky$aJGiEJba}q(
+zH{CsLM7iA!Ml|Hf55zso7GsEPAM1iYmgOkNSEC-<@yz>4PW8TsS+`4_^^kA2H5g}%
+zv*Aoo?=O8}aKBNW`9%L>KvxdtVf}H1(%xU>lX;~~xzWf0+$$B#(dw**Q@wNQR&Db<
+zO|-W`d<TPgdmHT}n`cYCeus%m?)mbqy=e5io#*!W=HX{r&wXSuPtb>#`}BePm-5YB
+zaet6=&%w7=u>J*|JUgW7<sQJ3hSXu59(msp>$RXW^A0I>bJFz|L-uKq+C%Ak&uXGa
+z-m~&(H68XlR;)|c)%SqZc|-2UE;ZzQe;j@p`jxNVA<zq@jh<()&F>w|GOX_%_zbx(
+zJqYViwIScn5^pE#uM0S80xc1Qk>~$7=WKIgeXltY=rbo;{h=(LRc!r-L7P5pm3-S@
+z(4n{9_`V_E8;e%9`(&MOZ}sle&8kmj@Xa~p<$2#iM^E4E_jAb?h}%fD-!p~fz1cz1
+zCh_LUXZ`Yg3g+OEBuQ%_r(<J#jG^Ae7H{Cp;yHtt*!Hc6uRK3Y%K$zn+P(ob0PUvq
+z^9`s(+g>#94zM5bsN>yks~*Ch1=vs4$hQDB-(h)nEx#p#_t6gLi#z9_@!6qp&%iL=
+zgB$2A4AXtI%Vdc2#Jrb1NZ_Yho|CIw9USO8+|GLVMnRLm#i*;4Zxe@mN&@PRx;Q%(
+z;W^wMN!`N}(Nj0;y+_?A|LmAmFUyPf(mnIJPIJBa1M_e{;KVW7;986{w|Q4(lTqYZ
+zC+-Qnb4;EU)y28eO~w)YevCL!{pVWAwUOhR&$%zg(iaMAmHT}SdP@X(_Zs38{4!kg
+z@r~;!m*+R)Y`f$)w?Ri+k2Ymqelx`(?!?_D^J-5culb&2ZisUg>$u44(PUnSmMinR
+zcOma>A}`N;kRNjVc&_80$GA@cnHcap=K?c;)ju>$z?-k&%=r)COjB*AXl7mor)O7B
+zUcqO1_5pc*t=g?t?KarjO;hcrd`r7*Q+!7a^*wfsx<QLkpz2~hJ5irU13hEy%k{`R
+zfaGu4-j)d3D!2}2wf46TW{Ei;?NxKWwNA`=uG0y+dN-uiFYXa)t@|JcKihHVF?pWX
+zoX30qZ*2RzK5e%uS~F!S+M14{U7k@tjPkc0lf3zStSkGx);G{7f9wSgM;()QX}C9c
+zqm@^@xz2kN*Q>Y$u}<C|qO8O3=G3Y6$-I{of6V$uhj|CAjPL)d`YC&kQ+2hAx!5S~
+zAe;GF$C(i2@<t<F#Sc*NT_O1n?$|SOU+7))+ig6zQYi23aNW&N?`-f5ghPdL4NQ?|
+z%tMaLq@8L{s9T&dNEEz#g^?h?yA$F!eTv*Gglx)r%{lE=cy=qf%#_CxZSolRr708a
+z|HhI<9Hy*d`bB`zb_b5{VikFMzX_FN`^_~f%Ome_XR3E=GVpsZ@Q|kBC#raUH|V#B
+zPgL<qDxUYPcOgDOy_M`%GJG;%sRr+M!cT|WWy*EBDc8;9S%KlrHh3Dna@}mOtvNM_
+zJ73)+UaIbGHHPH6!}KVXR%E-oRtI=86`Vc=C*xNkp5OlRsyOCfhPwFHbppmO#r6*I
+zgNSeAc>wkPbCG(Br~!RB2$v7{6!Bdo$KN~IyuaOOEDTxq6I0aLu>!;;rCNQRr0xUC
+zvzg0-e4jHX)cZc+Y0&4ako|igjmAmDO-J0&KKCD|g?itA<X9iD{ie)pz5`&EO-Gqs
+zs?Rrsq^>YP-9z9Rv^2z-cO0(nlU|GT6vWl2^vgrm`>5<Y=VX$KE3(~P;9dNSLh?+W
+z`5iyLM{_|)zM(}tA1#u19go59g5!OLq+&-8eN99-3$7AwF<dj;j$--!3~}xZVSX1!
+z+%shV72o@n;4Rr9=v)bvwm0^vgB4A&#xHjT;8n0^hg;_gJA?9mFzN0my}sSjXn6Sk
+zFVa)0NV|<jvh56PFlc>uV28T1c#-)%K;%0Tlw&-?{2pLfi}5<*I_KKY?lv075dY7h
+zgzKof6CQ)Kmx6LW_-D5Cd^@Mr_HNroeuqKjAEoMgHrV_7Dtza6kE**N%xd>(Rd<G}
+zd#>vDF!hEs-}wERs>}R-1mF1manSxv!i@&s`1J>+-tATO^Zny(Hr&inxQS6PB_iJj
+zRgcqr#};vq277<=@igYn!@=I)JLFsYwJL6~isO4BKMdNxfzfF24Y}|4!9^Y776t8h
+zJ{rZ_A(bl596P>Mbgzjshjj*io~=)ptM??TQ>AWIIjTjx9fx`yoHqr*-tQ0Rpq|@R
+zoX>U-op(%q!S3TB^}RpR@U6D*3y^mB4a%EQ_BZOxtNCq8H{vHFevU0azdcF*avkCy
+z=e)DY;Qam$`<RBbSxC#YrSV=aaXcPr`)&2{8yS3u|I(oKEraV2$8&$95y$VKCfIl>
+z=l4F$(?iAb{a()T<awCuaC{T42>xO?&i7;RUGuT#!ll4vz~#c#z#W(`&xxLfpH||~
+za^Olz<T=!(@S7Qi>wr52msl!!L;(3uqV1jVU8sK#((2&voG16&I!0qYa}KqxH;(bF
+zHDuuw$k=>iJ3QYX1Nq0n{jOu`dof!%FLwDut;?-<JUZLDPx!;EyB(l|h~>y9zEh>$
+z6>1(W@1TMfV)&loJIG(D;>^9~n&(^M7g3kw_gJwmEoRxc`i|Gy<Tsb@SM$+)TOk+i
+zy@)g)@@1<stnaUgb2ZclGlt6dr8o!QLtMJb!~M%3e$)Q|GDfnk?4CAx?=?Zi?Z$7u
+ziG66Y)i<7ZKTR61B+r>6)}M6Rlqxri-`9xmjBPe}ABT6&c*fDZ%f$Qkr}&;}s>I9Q
+zQF4CBIkUlNYEw2ieWS4hbBEt}<-O70DtMm*yo+Njc<U6rB`R)B8}|vMEOkVE14QKY
+z)MI=b4X(>Rbsw1bnU=Qk?XX7i7JoSEJ_`Eh`D}Ac4xtY7T`%^ZYXiS!Rf2Mdc%MhJ
+z@FHwg>TL*)5x@0%5Avm`eX$P6>pWLYc!Vs3vCUOuyGGsR8lc9O>-P+#Emv<lP?pY6
+z^r!9eJMsY6-8_rNy41Qn4f#uSiB};DA}-A1chsmhCnLQ9Ww^F_m&^0jd^3@AGy`+R
+z2bT-i0Jj6q`w-l{4s9R8M@yxQ*9Bku9_H%z<UY0sei~d8oDZ%RuKIg&PBtO$Ubu9)
+z1jJ4Jo_r5Le5Xp>dEcP+U+08U`G!M2@3UKUl=3Zf#5-O?)jMaz8^3QGZX3&n(-s{q
+zRXR4`$=7W3#dCk+8=Hu~2=Vy{kNw6jmu(XI#0P=y6XqKL=G$r=0gKL#QkPUPze+oo
+z`d+G6@xQ(3_d&Rh?@1g+1E=nLC5}3$j(`7T0pu&<qej{-$Wx96_{|xA8{bMfG)lt%
+zN<e-GZlC)7GV}QBgL}mrCD21amnRXo8^8J973qd>(*N|dJRiD7mHiXqc}IV-`uzv|
+z<{kYK{H{%vanB%bF~Xd0K9z45;>uKeyx(w8)&Cai_aZ)7<@-rMey^3^lZ->$6Zk!`
+z56`&THr8qXW~@1P#rLW(X8UwCo|wON0l5b465leHbDZy|9#Uh@Ildxb(M8nh-s8Iq
+z<GLtd<2fi-sc2%0>e~*Kq0W(|+O1H1qy9M&arfG2;gF3MUJ|wqnUCLEF9;}Ju=3ds
+z(uIDnoP!zg^Y69h*W!ES{91FboP*~4BR#but^>|hCg)s2nbb)#Z92)VXeZsKe+;+j
+zALl9AVIuPIyPlN4_&(W4{3c&3J#EP-+#_=#ZhXLs<DBaPev(yOXCHZgbfEh<->?ZN
+zdwLS`(PlvTglD@WNW<i9r+e!^v>U`C&6L4*sd@(^Zl_JRIiTL;FlEpNRc9UY)ah~!
+zS!3F^b;<h#AGGx$N$D(KyxUvuqmAGb#67Ka6Y|Lb@Y`7?$A&!9xd8ZHAmxgQWpaFS
+z;M?ak<(}#?sn>KUnWPTC_rT@$qZ`vULmNHyaq(T(FEM`7=G|tVpQTRw%Ddgib(N<R
+zc@q1{vmbf(tMB7w0?wobQpVZwNA<0hhHc_|DSXQU4M#QH+hR04qWEsZ77>4+uy1d{
+zTwLEX7b{0t?@OQJIqS;xg2q4Qd%-{F-R8~0Mw=_|b_qM_&)>ClsQY;qRq<--jLCyq
+zjLq-L`?I`r%l*6p@hutoo@VpA)^`|5Tc@L1j7Q#;-^X$C&C9Q?w*`M7>Xz-yMV}5`
+zE9dFK;owi>T8tI%a$iNB3omeJN0_#EIC&V>hIi#$-i6=I$h-L6-rwYGM!O3XER9jt
+zedLmNt@h>j<z)L64*6Y0!Z;W(ns1Pn*kC}OBPMSfAl~V16!1<23_0&wcLT*;OI5Ge
+zA>Ry5K%P@$Ta4-NT6dwJAg@$Br<wdmjU(^pX}h)wc_3j|y}|p%{!*+B|3y2Sc07Um
+zx#~V~f?jXrA)RrWzFv%dBH|*{z2WE@=F1V|U9zRcX#Bm&Z#EgJ@5*nJnEEK;Tzr9$
+z>)MiR<47A}Q6%(#!p?hmZuYI&`0-cj3<t`;0vIw-);(5^VVoMDG{mJL&fRBxPP;Jw
+zSzo06t~l0)cX=jKe(Q8_nE383_qdOnxIXiaq&1#_b+ArxcDqr)v<&bZbjf#x2AJQn
+zeaCvI@gi}z5j-lPMU3bB-Q6$o-pGyw`JU<#erKi97yLwwpGCuKQ0EcU!@S)8<+-UH
+zU&;3**lr=hIWEgi$+G`Y?MnEv#r=Jb`I`=j=ZR?3mE2;y^o~W3kMbV5t2aLOzGLBo
+zYwrk~&5?H4IDV_>{1)TqUGjTfU-W_fz(AzEBhLgR@H<0TXBOFDPeXXuz}~R8*l_k9
+z>Z?Qj-b>}UKK70r*BZptAa3hB77a`x9bPT-l^{JC>FaI%^Q*r5kmf_$BWf&3kB=hk
+zJ>TM0QR-Wb3_qcGP?Ca^YtsF;dK-}*jk1lG$hH>|XV4Qid?n@X1^fo5!r^~$Kjn7l
+zyWCGv<u@tXKQOGt*n>KX-|6moEBFe*BetCNJxcpK-VJK6oA?ZT*_+On4rnoML4At{
+zwDjCLW&BMx9M`J$b9e?2bUyVR@*H`e>3f=XBoM)O9U6_h&vc*I!#nE;-+9Ku`vJ9|
+z#c+wL%Z<8Dj%hKju=Pc(!N7MO@Xh%Bz25xWWUw6_@sFO7-`hPDk8wvGqu#N2;Px}!
+zFR>2pMUE14VxxFtpL62fFMEG)w+Zz{BTu8MuMYKfCAApmA@28Q<TremMp$x)!`99i
+zP4aub(cpN;T91aS{$--Br%;zat;P8A?d}slJR`r4M*jW7FD?Gv^|n>#kIrzuZ!~tt
+z$@%`y7m_|UoRK=5`8GAbr}_@c)hoD<A^$|Q^)BLy`JF;rpPxWm|FV5Qi9EuC@;t-*
+zF?5pk>f6OTP)9E6_y_8kui_dJmx;K)A#Sev?j32U9Ca>GV`I__@B059`ASfx1Z4tO
+zD)}FA9pUnui}tbPH&uUuv>g{?4CB;W_{jfD#HHbP8tQ0Pb?|#*PPm^Ujc<!4BCSTH
+zJ%PA2sQ-&E<$BN=Zs}7S-?rvpnVKi=zqBYj%BJ|ku`TiNBM!y3L}-8`mvtu8chuX;
+z-H!1*_Po+jVxdnVpYuxf9y{D}<gG@06XH)^A@e=-cJIFC0;YwC<G09jkhk*U-u=1{
+zX?%B-c0cBwiQlxfHh<Y$r{MSD^52&IblLiOmkr*@{N4!Co~9fZ-usR3+mJ81rb(=~
+zV?a}JpcR*bnQsFmjK=zJtE)iKGVN7fq}`0PKk&>M${ZMK>5G#Qzn^cqso&SXEqU-$
+z$a5HR*WmZ1idOkOkw(O&A+8B=rrx*)@#0$<kPV!0DM;U`&cziyC&!HV_KEPO_}rm#
+z>~e;-L^Poef2#a09p6T|5M>`#-{3a)8q$Ezn71k0%C}lb$J?<cxs*;yyHv_3sq39b
+zJmL5G>iZxc9_>CMbek`&^&skP^P8@ldd^MIHr$20hht1VWs~t0e$y5@!&dfd#4T6f
+zG&RSTw&C{?Khne#>NtQpjw9}FlRqJD58@2O<*4$yDqoHAZz8@(#b2c2^AZ0V;%`4A
+z&)t}NP%dRZ&Bx+X0_TIiu^WCS{KJ&(7sx#mSGhw=g!908)xKpq!WnS6<x)@KTb)e^
+z`^)9s1L`b$5N<7(Z+Y(IoqB{%!R0(8^_U$HR$JlHD&;$$2P);A{$}{Od;=8iAA?Iq
+znFG*A%Mgx3xDkFC^6ajZZw4HOf3i~QN2eHfAKHM+hbw_w1E(#7o&?tfw_~Byxu{c7
+z@1nky4LFv<RipkI!VH&*e14QY4A+YAez;R`N0F}+ZYT02!*8gNc3;|m&3$ct|Bh!H
+zZ#gQz%^9W6+oua#!amT&dSignuee`$AM#BQXW90NGfUhLjkE19GB0(o`A4Px7+odp
+zT}3m+dunZ_tz7I!)cD(c3n9ON-e(_`dQIj~`7QQ2N3A`DmHe)dZGUGezdxk%u}l{7
+zCfa^y;<wxOI|IL+w%=a-?uxN~r{niY+wX}AmZK^zO~K+XkaPPwb!WLXM$VfQ)=xXJ
+z`kkzP?^M5&jw(4%)u-ckgRQ+p{I0eAPB<#<yXNn>qtf1F{&p+)a#dWki7N$Pg5rf<
+z{PwCm;YY1K<YXmpB|EHh0-wEQrE`DKrOCHsxDQjM)>wXPhjn!#FYm2%x=oli87B~T
+z%=WweEot*Ge~0kfZ~Oi3TM{SD`7K77ia%n5;SG6KPQWm$TfXZkzEiF8{u6m0QgMq_
+z+)Ie7R(1>SsicASGOOf1Y7P8GxSeqO;10nZh3kOpf{U(3KDbJ_2DqJY`{4rB^1H`f
+z)pEZz8@_9iLra322v>=+IaTV;67)gwjw#=l_sjb(_A{ruuCZvCW3&UmcL*JCcF4a3
+zx}w(~6Xx|hnl3Q$wAt8*J|(HQ<!hCGw-#|rZFS{BCa<*p9tRno=Q@^j$+v;R)mcpQ
+zz0yB^-F-X*b^RW?xp%B(=Z{CZge9_#^HrOC53c+z`&+`B#d~n2h;u7=2CMj@w<H~&
+zw!OWUC*rmlt(lTGSE7y9i59GmFnRt3s2pysF`JFOsKfVG?{5@5g}7T(T%w9=M%+z^
+zt8Btroy@-Q9>jXcsIhH#s5(cfyo-_dI#qt8isL(R-%)WFsyOPOsff#V*}v7Y*+_Xy
+zzHNN!W~{H`O);r6Tuz-zeWN02O^Y!>;UUpw?JHmSmL+$Obja_{GcA?2MCfAiNI!MH
+zv=MgV_vs_xN$_v_Le|B+*KplNTomV)%DWH0KSthG_}6`5-#gxH>_J@j5gB)>`ArDK
+zeRagD^IE<`iMY=Y*N8famrDFTir;JCU-E^0uNXK)+;LTBgo#7M8LG~Vf!2Fbfg_e)
+z^%iY=s6XRU`HhHok(Pcw&kLarlxfB9)6napzOc)Yz#-E9ain*@ct`$kM|#86g}8kR
+zhEAm)vhF`4?ijz@n7={X`{O*koOV9-_LkgV+4OI1?sd>*{lg^el&61n#ImP<=kq?_
+z(m?x<ACb1!>S6M2KE4t6BH|L@zw&wSK2Aj3Mx?n0*x%aPY&0C{v%jKXe%1CJ9jPm9
+z?y+mLj^(!T<(%z;UigqLj`Y}pxW%?O%I1d=SEb@y=3AkND?cLl09v6Z4m#7j%nqc_
+zJ7UpxnC&|=Ufw%Wx?F2@i(#FQ03D%R4$6IU#{La^@DRk$JYs)CYO|4zxLZ}+P!*Sf
+zxXdH=a~PYAG{j9gVm}uF{)M<ns!yB)2}(!42608ucat+LUi9lTmR+6vkGkvSM=YB;
+zzXKIO+&IMj<cxez>rkAeiOW>GV^q7X$fqBXdc&SLxesOX-<EIW_od9UAI-=ckG#8~
+zYc;0HJ@|$=xd&gDB<rUgf2eJ|xF%Gi+`v9_V;}UWFvKmvI+%5_b&eqmc`rkruiu2M
+zr1n!gp~vyw^jm5SOg@){ydNXq-&Fi)^IQeuPrNDZUDRzCqy7)@doS_@Mq6!BujO~7
+z14w%eX~)n`*2QuUqU}u!pXAGY&+d&krOkogIZsmg{`F?>_v?2e-+?!K@0ajRyT88K
+z`z#Ul>*o=7q3vz;#fW?MP5I6?dGw2_j92BM9{bFj_BEi<$U@vM6?d_@H-fmIzuEij
+zObX(DqT<Gx=XenJxQa_Q&+#Cxxlh?n$i18U^r-`J>)-5sX6F#(w0gvyXY12G<XiKm
+zoR^e^qrMSumiMId8yYn#-G%fE)!mrJFzfxm#Yo?u+M72Hv+>5*|ByG5KKWe@@qHoi
+z#*#NJzV(@nZ;5Y*fW9gnmOWq&@^;ohZ{_$yR!vfGqtCI8*PRIK|3h##nftSVbJDlK
+znG2Xm|K=IIl0|Z#lCotb!nKR!xgF|<6CaZMT<!;;XThaCAoWpwiF~uovqYZxsfE82
+zZa-Yd5-C?UFNTi#eboJZsq59jZ-6`SeR<BO1HKz|Wx<ufRl^;g@6dKVDD~M+_|Z$D
+zOTwirmHVSv@JryT;ZDOvBVWQpQtwQ8Nb0;N??>I}LjwF1I4@id+)}t5aC_mNLVD{W
+zse3jqm3w$Qm&&t6hv3(u?G(V*g}x*b-X&5eJ&itP00%y}e7L1>&2RxY4QWYmX>j>)
+zb#S}jTHy}B9a}7AY3>X9!<9VU+F&?@Je?cjd*^)TdMaq3b_L}<x$f|O?qYEkQR<8{
+z@w==Lx<#zi!Txes+B9fueetlgwK|mDvG$ZY^A~REL%%*Od2R9(DYyR6w!byfwywDf
+zc_&5MM|bt9w;c5zv+1oR>YILM8;3dn56ky<xd$lr|4?R-vM=)7(jLCw(NJ$}IBc!4
+z@2Wj@zGcZbJH<ONYHfM=u(YYtMn${q;!nDJ-YLtm!E!(4vE>&2AV)-{&y{DWShrd4
+zBDBkQ=yar|tF$PUR(@E%yLft;RS#`?rwS~b+<Vx1!`Z&i$8Rv)bGY|D-=6!d@w-cX
+zACTW);2n`!wtCF(^|%zyc7Zp%7wrAL9<!cx%1+O5&+LQi0jJFGJZutY6t6}4N~P=a
+zT}%@PX^8)!`c4V!`A(mDPJL>9>ww=tOGY|%=9Bpr9>$&ne%iiI^Q?Iv_@A=v_g|=R
+zL4DeUX$b1Oli&M68~fBb58^2j@!5#4M0`<=)qbRne&#Cr;avlkIsLEh6E~}V=c?~9
+ze(^7H7w5RWpMUt&!WYkTe26@U`7Vp?8)oE>OUY}L4J;qwoexP{n;-s~hoqhC-~wq&
+z(-1CuNPZ8b2!0b>cDdvM4fm@vK}zP~`N|r|w=eyR_=XHQOxmFj;CCfue09$*!NWaU
+zZTNbJc07T1q;2u_+*jip&3Z%6-adJMwAusaelPcTX?u0~)(PF5=Mm$6Ywq=KHh%jr
+zsnfE~O0;9&zrPPSIy}bq4rzq^&dc_H$+wZXmqDFj?5Fbn#y-f@`;dR%RnURX*!R0O
+z8@o~VM<}-|o@Zw^iv2tXzdxVvf6bBa|BHH?C*0u~FqGi|HU73Of=_KT&t6AWUnS|t
+z;khIzzFjZ!hl~9CkvBWSc3xAYxkTC&@;Dp4%6SWZ7%%rfD*n}XzR5O&>U^fD3!R3{
+zc+bChj%%a(#++P-^H`qrpTAjthlu69(q?inttH-xaoV}BMSgRFwzfFAX5VJR{d1}<
+z)BeD>pQqT;c?Pq=Y2R1aY+Uy*>&(Dfz@4aXH#oPG_F3QX;k!Y(DCc2bzWeWPFxCnC
+zxvckB;%!pd56!>P(6xHOYqR+6tT=UFPwl-PLEgAp=<|iVE4I;?f;{2kdjoubXrmF2
+z-(45WvpR?W0^GLx9nt9LQwVdObH4E%r^B)QKDPWew;Sn0Z2f#eotunNecZ)$>|geM
+z9pDCWr{9n`=Xd8mQQzg@x7(60mas{<AipE6=t>Dw#>MhJ67`QFl#Am%gE!=UM<>tR
+z#>z7!wErGQ{L$xI#5zhGn)~4IykWt5r-Id_56a4KD7g5IxdRHWA9C!%tTU(LZ4~_e
+zJMuO_*El&;>P0WJZe@Ep_=d!-sLQ+A_!H_9--PG;&VZF~NUJwz9J_|f{gY?kkY|U_
+zHAlXq-cu}6>*)>!pU3tc$?qvTj5O^>fb((GE7np)?@zvA(fjkAz3DxW+7h3KI`%wg
+z(R-qLFM6X5cM+-`Q%~bPfYnI9vD?0nvf1cB{4&I+t9Vm4q#p4g;`uIyoqm%P{Wb%x
+zjF{f^I|1~|yFNaw@y>inv+I#B`Z>OrSufU#B+w^ml{RbAXtbiyd8)1btu2N%F3m;`
+z%8T#80guOYYfScF&6|k$9F%j*_jTIL^=Aa+m>R^H_1ug)<TtH-eCLvHN;p1I`^h`8
+z_PJ^{h_^xbyGi|C>}?TmSK4h?Jcsw4H{|!I%{ky9{kJOmN8Qn=do#aDsboH`al5ci
+zoqR~WW5xFyegL_*26FHZ<o7$peiZG{KZJY_=lh}5AC|)3StIvyl8|>derLnq3x7|I
+zl+n3X9;lJuo12I<FI*PfQPi6QzlLqV?PHs8(I}e<=S7(gxVj(6J(r#Gj<9$eLEcH<
+zWL%8CHJaZsMf^9flb-W~$)1Mb<(`@wm-5^v<b}UDynzefkZTm}^Y48m_lLxHo0SYp
+zdgu4u-g{ksPe;6kiF$W|r;Sx|$BEaaZ0*r{-|cwwb;?tW_lJVW^O^a*)MXBB@^XoT
+zxMlLYdz1xoAgeBgEMVR>cpYUjudvp97v}OKT&MZwBF{M4)_tbciZ#qS*A;C)*JV4$
+z*Y#_T_jbY0mh+oQlq1onW0XVDN49%Z$)r3#|BKgoK4!D=_m9=N^n8D8f%x9L{J!>$
+zl==OBzA4qSeq<poPxa%;*Uj@on~fy(J;oZFe*B}?t@A6F@Y^WD=I9Tt>gKsYc?M}k
+zw{`yI5_NY{Q|BEjU*{cqpL`=De^nUYV@^`_U#ia8-~YONlYX3dZ)If=x|XtoG>JQT
+z%)0=2PU+TO!QX9bKIT-^OJc4yig&Q`Y_R3pU_0FBJDR*JGv{@Acfqe@QSuS$JB&Ba
+z^KC`BwLND#HXC1phIdoO1w7)LyxMwE_PZ#<GyjfOzJ<BM_&fC$%wzK#gjs5BzZUuU
+z?$$<rm(4b(y=t$S_l_Gtdv$O+T-h?I-}C#9&gJr5flS23@q2;G<k@5Mj;{H=z#QHi
+zdfl>hrRefI^doF>sp`#`VYaxdborgZ7!{{$*4<*BEgtl`x}%!`9UHJz!|jAylOgB4
+z_dfHxf}4$rYMjp;>OSGIorRvP))8}GiD#ZaJJj1I%`?xPhs=AIQvT+d=M#uK<(6yj
+zhllL<%{Gg>nV~~cZ$50hd-)FH#NAAr{bsn$esli6v)^FMsdpVdWZB&B01YhF?C1M7
+z8~YAf_MDGx_MCR551RL)qZJR@b4acQ9@Bn|^runBUd4+}&6MLF0DjX~fCt0n!!^R~
+zSRr};9{Bs<Tq~?^P9>^uEk}!WRqnm<yfNQUPBhOp)ij8+Exgyfv$(}D^9*R<`ybm4
+zaej*L_?c%mkX8#>{gFfR`zkyWk^mf3kFn-tmcuR|Y%y|?|A)w*6Jg)S+GKnmaV}qz
+zkb&=^-v49h_RpB_Nl3o^&>?xYhHpj)8Ix~u#+%>g*kV*1>V0nc%1$ZYoQC{+m-^mK
+zK<KSojFWM)+}uOf`LQrfd&%S<qs9B@8;w?Vmh2W)K25yYBI$tlo;~8-hK-`{Z+^t@
+z%Su}UZRNKdvh)%1KvU;uytKzOc0^I`;N5BDznk%BgYV<=eW#IHP0)KteY;qdO+O^<
+zImrsHF$%8tl>Benc}{&K-{#^u+RG1_=d+uPT_4H$VV(u0U3|nLOaFLM@k4W54k0}j
+z=?5Wm^LsCp#Se%xVA&z?G>7>1FxIfWvDV#>^VA%SS9R>5{r`}Ck93p4?@NF4nv65s
+zszqEE;%b!5D^A6K`kF->b-*LPBdtH(!tcyc78EuDU#uL@4_~wTy6B_+$F@j~?J*@k
+zA5z~m@!HO$Uaih6oE|FcJ^Y$=uImDoc1)$c@|u00Ws`A`_x})gAguS@q~~6fc$V}#
+zTYMYQtn+1M|7ccq?qzxP-H$qD<NDoez3KbGkL>#qo5VffoyhZ+cmv<2|9>REN0g=N
+z{xR}QRx+n~mXqhZwjllm@lLv&Z;!ub*@q%E^Zb01G15lo{KoXU*DN~!%yw2aUEL)%
+z&s`n{|E_sWeyfo198lj{T!y#{6^*m)6|YGer`*r+DO2Nf1LrRCT!K8`w~h1HA6jEG
+zPJOSbTGjo%*W}$gYfac><N}U+)R+xZaaoAF<2C!<-6ru3>g?B~te9rI2R!37d9I#k
+z0mYlG;F)pq?cd=)Q)kUws{QXG@3X4?0g4CmZqB6F<o9o^y_YS<QN&L~e36QeSMmHd
+z;uVPhwc7g{sN#8VCk64pS8Kze6>@Dj3g21l=sBkrr{s4J{FCMK{S2Nr%dM6B1-xsx
+zbT(uP-VKD?1$PiG0M`YVwGy%i+@Y0H7jVJf4YwaI3%`rtSHi7<OXocs_^08bS3#dx
+zCH0EME9E;K>F`eizJ!(XZ7zN@lIs%Brtmw8=J)v!b_Hg(7=eXwkh3GO2ASVRzZrCJ
+zC+|rpd5$!`=R>=lYNN3W^lZG^YY(``{#w*?o_mw{b{%z&TF`MVbn#lq@8Ms`Gu2DO
+ztTBJ}RqO26jlI5kEbrRC^eWeyM#G1CTGh8lGK3w@g7HVazH0~`j&gfnm2K%^mi+rW
+zTU!aV)u0ZZ4f~m@H(9kGtLmX{{j*msnKriPt`G2FtLry>ucU{5HX6H8t{Lgi@V>0W
+z{w~EvW0S4E6E@rR1zcy83_}^1--@+tR2z*F>i;PFH$}sVDn6U~|Eu!5>DFA>2;Cg|
+zKjQcF$kLmPfxy!i+r9P(br<eF_C?z&^6>j{=Gb1KWXB9OFL=Lq-mBIfc#a?Mtrghf
+zxEIfR^traU>k-HMy>ni*%a9wzowu2<$~_13+frk7`94S1tJe1>i93GB>1JCT_v|SX
+z-l*z~Q84nJ+w}?`=9yB?UFz&SL(21{ex<Wh*XI1K#60q0J}rjhx5%G@pAJ{IO3tlT
+z`1|3OBA=i4>*3sR=`06V0>^j$IOiNS@?AvEyBA*R7H>n+u8;x!CEQaG2-ANQm~z{$
+zHiy1Ez_}>iwf4%l<jrpf4+%iG{&-V6-yY+eh>#nvB|SL1ySrU*SqC(shwxn-hZd$S
+ztSp>gTz;)yT~VPgC@5c|7ZuMdEibOZWb8>RSUA6|w5nP!tSBlipRX4$Tv)M?>6ed-
+z()4k<udKMBs#q_o(90{T_2Qz^YQ4Iov`U{>T2?%P`H*K?wf;asm5%C)7Zy|(7wL<t
+zSe0ynne=g&M=|fBs)G5&*Xm=c^wM%xz_>{Kx@&yF+<T{FP0zmd?z_fklou>0zU%t?
+z3(6K1-+edIO7*JJ?-w&P4el1bs<^PCyr@c~-Jw?&RF~X+R(*x~Qhj_0|0&}?3;0hp
+z|CuFHW>txQ7qE&7y<$-{OXG*E=5DK=D!sh8x_U`v@!jLjomJ&6XWr7HZ^>CvSzTID
+zUUe-CjW39dG%=<Zl$8mLR;8dPg=LGxP*fExs4NqMHGXbn<lKV7dmkuRScHLEfIgSb
+zEiEgpUZO9kC@R*I&5EixjK%uAiiP^DMddSQ>1h*E$3|)63vF%XWX#kT0y;$q<EKPM
+zPM$t%nm$F;CHm8Q3?e1f=mmP!k_B@s%JgJFhM!gX#WH2A=ue5QjgsPmqT+?RIVNfd
+zBP02*UI20_DJ?7kS?X2Q1q-W9%3-HV%gfkSp#Ww4G+UiLJwtkRkzTc^va$kYOUpqJ
+z3-3p3$$h)6S;P{l@)R#Ft*+7w=2auylc-nBLp243)us0Xr7TxwZ?~+pxV#!2K=W1A
+zi{=7p<Fg`rD&%~r(jO?r2+l3mD;JiQa|W<$ORCB$=1Y7ou+^su_NwnzTl%fp<Eskh
+znJCaqvO22*fsg7EU{j$2w2E;llG$au(*dWMxL{FPbtwpnGk(zmbP0GU2RVWE#?M_c
+zUW_%{>ml7pR!7`amlQLua#6J!QEOWKx1eGH3D+z;K}tF|@oZJFs0#GFuy{d5HSt<e
+zSX{Jdq2yhdzh{>}3joFJ`mX|YEYNM0EGW3Qn4QzBi%}b6h>L1lj+wqGdQoW=<{nA6
+zU~ZY}OLkux<=89YJiCm9U$U*p$fDAP#f8-s3zrBau_Qn)!c?qWSS;YJssc?X7gkn^
+zIVJ$iA5(QH7{)?Ou_dJEDm9P`3YL%pD}aOt7M5057nck8(yOY$O(toTrIp3}U06^~
+zPTo&Df-#FSmoKVXczI!A)#YWSb1z5ZeamqvITwt@i;D~IC#)3<?`63$RoCjKuZZY@
+zibZ8bJ%ARYSrmLg<ylltG!YdQmBr;cqsA<Vl4)QYNMa$f3RRoTA^M4!No?zZg3{{B
+z(jrl&51jJ~P(=~uYjp{x;QaD}GJTAgEdM4i8HXHRnO(y?*UBo&=QCVYg29GAx1yqq
+zzZc~(mA=feC{N~?P@-uUO9o%8j~-JsI?DDt9qZ-ga1%-<v4L6H8Plf2&&$jM72Q0Q
+z;fqV>m4mAFJYY=mUJ;Jc&QVXV`YWqTNHnVcC{!lu$}6laTU13S`c=Fbys=y#J!Q21
+zps2UFyr^`ZXhMs+e4Jngi;IAqMdgKJHRIy0>Qhs$C^;_=;7`fR8>=r}YK!b?36v6b
+zad8<03)FbaB{P9}))FNf>m4cT?uj3T{)%X;Ukfn57cN1!n9el-5mm+2sxTOH@qCQ3
+z;y>4l`O^z8oFEkfE4|`C`wCTka9g>cpfazpti1ZHGGPAm&n_d$te^NLRhO4m6jqlh
+z&_y^!&z?48%Jdo8*>}he^v=&NRH^)8e)N+EYijjbS!{Xc6_)q3*<T%t%E42LREGIj
+zYbE32(yhj$f0+6mlYa77RTSP^Tzz&L*DbiqOUwIB!%{u3bbeo)qdsu-ibV?xixtER
+z%SsoNR`;P1xfq-EMwt_7*0h`Rd^h#XCHYgozoN7#dED4!OyaSM^hlfLgu`^4b^DaO
+zDOodSP0g4wXS(EH<Eyw<W4>11UpS!<zMzmoEf14L{FdtzgG}REC&Mz{jMHva3(*7t
+zr=Cq=8~+zr3zM0{CUDPPqNHuYsrw2RVl}}uCTEzEHErtjZ2fvdIcw_7+o#TyVZmc&
+z%$_-A>a0A9-V+KDAJr?SgfW^eAG+N;8zWRM6*Xb8RlSxydFIViv#oNNy7K=hE3Kz(
+zTcS#{N1FeOif7#T-KkSlS!7B|?%k1V$Bda!cs>597>l&t4cXFwU$Y_r*sC4^aR1fx
+zO_KDaPk~g9F#%sJE11tdL{0JeZpxZ`^DO<c>-F&&c{8VC7-mkMo*gyCik`1WWo2Yd
+zyHWlsE3YcUzlu-mQDWWv_UuubTpVN`4g_fi5?(Q+0)Z>47S{rPNeAqSq=K<X?djE6
+zk)>w{$D*D{Nl=KkwJ^3<E>V9{vVAmqRiscpwr@<y*~2nc0Bh9+EcdQTpnYtgh?27g
+z#;nKeEvx7apU~}+lC!2wzlGT$?%HwFJ1?>cbjw;<ufkogdIhXf5A0K~nY&Nko@%2o
+z#D!3>%dd@!B%*H}3lU>sv2Gievq9=pRe$3;MapVbmBodn^Qa>(6e4lCUIG49T5byR
+zql8XgRH;=LR+?oXbV~(75VDkgq{7ADqoTegAEYlVUZ56HuPvWgKh(q!6_yu2P*uG|
+z0x(*t$D_&Q78c*P2oiCTSjBtzov9sGl*>AV*}<&8q~QMIJ{`34Mzhc;rPl(wJSf0D
+z;Y?eY2sXn&ZclvnjafZmiDS)HhS=xtyz04S6G~0HilzZMl<~FHD?HG#HSPY=s#2gq
+zD=b}DxTv%`k1}#mL3P1=@M``r<IC;w__46y0aGTUc$rsC>5D>8^4ROxsd1Lf);9w+
+z{c$N^nq#VDUM_4xUaelZsIVHeS5mN0A2+5-Q?hGbHEk3H_bq~^z%(hh>l$l7HKu>p
+zn5w&FSd~@v33)M62*1dcS5{n(RwK=fdC)NN`ypMHQ7|*FmN#!<aWR&0XsCKJP@m(Q
+znN7&i5lZ8E)hSR@i_oiT*^gfNWt4(n*NV#*Ezr64=1~sPwQ=C0sLF&9um~_UN-Y!t
+ztoSiitjS#F<!aLdr^+TrH&0SD`h@>Q_^!LJv+~OLa)N%HU8WZNT&>6BY<PpjkO$J2
+zas7$Fk*aeNLTPX62}4{1kxSeYxp|93g2037E%Iw(F{Ql@ev$I4^vlE#6BlL~vu-oq
+z!f%vj5*OnHfgz#__^p`xJt%+@w`LxhBvS;eJq4_O&}WY8R9PLJPab8j0r|igsuux+
+zH%-o(HC2|SJX(RQ60Wf+BCn*Dv0?@&Wz5VcX}O<#z)EEWtu_m_6h)iKa$=0*;y!mt
+zbul9g7A`DUBI=kRX&E(1QXe-~myu<h_m_;R8b9gm9A>o0bH7mfd)gUm;($3AzQp!p
+z8gQ29o1L9!%Y(5K(O4oFt&IasR$g{lujmC>_$vyP4hxKB&6s{O^UltjCK%T2JQ*{l
+zDtYdrd2*CkH>Z;sr|K0mOvcH{wy=0UR0Ie+oY~BCom?Nuwv$T%h9`v#xDp|=T2Zc4
+zPbY2Zmt9smmV_CphBbTUY%!{lJrx6MS6%^%ABQ$&<&jlbItokl<Q_m3%@@)>Jw_N+
+z&7{0V69n!q=@StdITw=Ey#f|mH4DH%SS~X1Z2IC{5VXKRo)|;crbTi<OJ$y@ND?b)
+zbo`{nc@^mI^)#>MO`SevM#fYLU}W!3Vu}jAxBr3}Q+o<thMA$H-f^6yf{i2YCaeu*
+z((DK+q`X3xs+JHyfGk~BG;KNrk*VekOeVI*={Mey4Z+Dbbtad<yxG&IWskk?TgnuH
+zJFw(Ai)!qID1W^^eRfusfIBME?4q2{!1*~^Km+Hf_}pc_ttZ;ImSb;F_?%?{cYoc{
+z?A<|F_DSzErl3$k9N#hq=k6`$<{b_#11>S&p(Vkkz@@<@BQ70&CY%p02d?Q3ev?A$
+z`EI(jH_6p{QQm!v3W~UjYnmD2nqS2YhKdIuSXGplEy3gx#%H;3&~ylPNO412YD%S5
+zM+j;Zr%ZFPSjQky3iCD=1|?pWf^V8OmSn8S)MksuN_*zDm(o^QS}yZjwG%#2u3)L-
+zE9Q+?{1-V2%L=5_R;7<0FNH_B25CR=pf3drOS#&P2N#_W@I(dnQo0Et`IT7az_;fs
+znT9o*keZzm)tmfZZb;CGBR0ECoB@6lK|QAPD7hX~>B=lRw^)IJ`~_7u6FaK349|W0
+zWJ04v83BtJAv@lM_Af!vZ1ybHgLRF=YlpBGlC2;5y~Rr&s90EJA*iSrU9DK6QIul6
+z&=@N#s%Y2b1`K)pJcwB3g-oncX>u(Eot4Y_-TZP`frB4_7PJ`)e<yy&!QTZx9{wKq
+zG4NaApAWw&&!G*YUHUGEHd4{?X!!ij$i=J^zbO>(J6j3x`L<3X{QW3@0sN9%!~>98
+zKKv2z4<Y_S_($Pi1pgTPQJVY~SrYt{_&o;xDfpMbKMlW^l~=G*_6ZcQptM}rQxp{x
+zf)1+-1nFzgMyi+SV!@WFwy|JrL7`l?g!*wUWadK1(5k%7U8^FDrI;?(7>IP@S1fI`
+zu~&()P)n1N4+$G>h;sZ(KqM5*=ap3yuxwGqBB~XdA^^x13#&LfH;6yM9<-zUUW*zl
+zCwwn>NH}p_?$8Fn??8G4aRq-M{7(2T;tc*E;&iq{i-zCz1BZ4VeZ&tYF5wShxm=3|
+z%&|TfEtq3((t<h0eaF@ub8}41F*a$#9OHA*(7DF`frSN?<^U=KKL$-oOHxM66aOpT
+zVX{80XAfQM(@K4E4EVa(t{hV&HaVy;^zcaXz7+8<ho64$w4PY4cf1Kh4=hj*OnF|@
+zl+Fg)>!Bx2dkFCl!rcXTH{A7b*TQ*39n$uxCuhyLIdAIBnJN0{F=MJmr-%&*DbJyi
+z1y%E@zbE%Zj;Wd_HZ!p%R#g{alJr|nY>Om&lnyqgYQduF;>CGD<-N(55OC^X#p1V=
+zEAya0nbBA#r9Pb@+mmG%m7l9L^T>6VKbTfp7$w#>y$5{wP&FbYlJG;q)jJOp$LTVs
+z*i)g3qm=%<n{MWsPf38FRxS`5)MJGla4tNuCZ*3%P!M_h#a(W>E%(J{-hWfA?5E)K
+zqK(3`imKwGiU-Pd+NZgPHMVcOh>KLILazSyVX^va4GqR-T1Hln468KQc}02LS)sx@
+zuLvRP_mK)h+1~eyMVt_lQ^fYdydo)YM=EW%8Y<De3cZ^DD!oC9UZbk><`;|TWatl<
+zh!7N~OY~$BoIue+2oeA;J8w!>_N=jEqfEJt(9bI}lV{DCa!X#u%`+$8I##wF*^5wR
+z5wW9z%pR$W^Z=+f5EhmR=n%iKYy#u*78KC9?NMXRZQp8{H+g2(v|FcT=S`n+)3mIq
+zfPG<^#H(ybwWQnX8EZ8x>x%q$)XzL7^+zf}G*X?YxW4x`O|r~y*T&>P2<UZcVWJpN
+ztK!r3D-aJ&FUo}Zri{F4vt~`rPR1x+(lg#;$M(Q0OI~)F>?ezubzQIX@J0VLCFi@G
+zPkng-=}qZ+|DF|S$>uK2*s)r&+_({Xbficat2TF;GC6DJt<>!Go+%>mQvhjg0YL1#
+zoulesR8;vLx%Xj`k_ykto;eji<jD3WJCE4!>=P+8C^^pD`Jzu|GkN+QtPVUaQYiH3
+zBiLgh^wa8MXgOL6hs{HtCt6}2yINxI$IAlj9j8ZWq1ZP<nMh6fB>d!5lYdIOQFV^$
+z#o|yRdx}q+o#A6T#0iM5*Xz@KzL_(!XXFVD-Yh2#R#H_@<|1f1)SaS>qCI_1u~lJ4
+zT6_FG3cszIu@l5N_OztBn5=15Lt+hLZNh$J)o12aH3>uVn5qeaW+fjZ8%XV0uOiF2
+zttcl@&mJR%?w*BE^;zZXH3YrRM2xAD_V5WdyqhiA#yGFKthA>`iVkkdNYO?8a?J6+
+z1)rj34AflA2QuFtOo<|9{q}Lu&mI$**MuASDfaj7uvMLAqd3bPJJ#xXp*X-{BfkQ@
+z1bQUJ(6iUh9v;_gV(RCfnYO(DW{yUR4lgP<jlkwl$tR_}Y#)fo%g5={XK?;b$())Y
+zceBBVl(F&peoTWVueb8p<JHQ?i+q|s4$@*}id4wP5%GPkyJL9lp(kJesYp+j>578;
+z#EtE-n~G|#i_&@m0v~5pD)Fhz6*PjX<|*3>(-;XvkqPaiK+{7#G7|&IXV)n*_srZL
+z0+G-q+W?R3FB2fjL*sJYkaD(^7a&-dseU{pP0(mibRg2)sNfj(jFGMeCB+QLzA9UJ
+zGT~7MR&!L&#=4?6nXPw`{<GTZSFK_NO6m2hZ$2xsS373D{zT$w({C32Hf^3X9xuEv
+zkNxhMPr~lWISKAM<=Q@T3_w>Emlr|LEn6blL0{Tt#uVMOK#RGp=AN7iJ>ZYk&%)x_
+zxEb41&g|m1AabnUZ#&5%;p}?M{K|GKW%2t9Ay$hm0=2nSUcuf`c95rklFhDN!rp_a
+zni~O<$ZhM3tfV)FdPpnT+<2k|-(;XzEI`3k(9?M$OwPya)kybhR>5XZ?<ZbuVf0r)
+zvP5~W+Rjl<Wa*Pn@$pHzhr-^dUS#oYeeQuk_SmdvlwAJ)J9YIS4Qftx@d6AQZ5LR4
+z1Oj`l-Hf#?XO;}mXTQ%j;m;bLsI%&mrK-r=D4#;p5-WR(PIb#SEkgz}CQrR}hFn$5
+zqd|6sa7>j=xsf{cS*n7JXTC~KtWpx{m@0%ZQalTp+_R>$Q;bjVQ2;1!2{TmkXj7y>
+z2~!X6CBotNL%r)68`YD?k{ixeS;kcTTXjX%d2V$@<~gUzL7PF3&SB{pre<N6XT*Y^
+zTx#KjTSXY3<k6QG72kh34PzB$#Tce5)P9sKR<x+{3Th-h@@${@E6jLsfGVg5=c>QD
+zdWlsx`&_C|vgu<MoZ?I#YwkIf*B{T6+OgOxCjr=`AMRy9=$OT@Jf~Hli<7|%D#}Z%
+zfvg+MGj+DIQg^sclV#_W6jzsU39SbITR^K(hB_Y5Q&^Wx@ce&4&pGIVa$2QJ%k>A)
+z98XphS5>Qv7;29@Qm9<IN1nAa<D`nFr$+UO!<wXD5oMQqOnA>y;^ZC)fhy)%|Kf6h
+zWkOKeqp1`L=%uQMih3z|#2Y(*D^qpG2vOeL0O-}KI)4giq81dCD!T~yNMVYu_Hps!
+zeiEQ9k4#qyk!FeOdTd9cjI@n#>JucDPpCJ2<Sir%KE%ri448Qf)Lb#w9+7C1v3X1j
+zWyNL*jULH;DkKvYWiUxaU488a0=Pbn@Ytf#qotjL6-)qY%9~fPpcL`|*!bj|@}^Cn
+znl1JHUP@7<9k7bZY5~`*8CiMMR;Ok&oR@uvZ)%FPZ$$Pi78d2wV$cKZ_*BzozzXg5
+z6WcUFbgHmfm};lYWZy~bDQ{DrCC?G(aeL`TVtrSr>``*`ai*@vi7V>|`^*yzTfrpy
+zvOrvZx#`yFlW(0m>rVYLJ@szWP9=$zdn$TgvqXwMd)6J(r{ra4LcPGUVsZz$hDkmG
+zOis(onla;+6xj%^TT0&<1#k-&R3?jf=(p_bf{LQiv?yqL-_+_-k!H#xk&0-A0;+6s
+z|E}|qk-cSdNlTRr1ZS4NxfaMXUV_^fm*1Z}dV1C@$eXuM%a}To3V6RZ3FOtQ7Z#LP
+z2~J0lrOn9NOO;jkuX@WS|FgPj7qsa7To|<5_yn`J2E#YQm!ixz_So68GHqDyqw@+7
+zN+4R4&MzS&FIq&!mvh0ijoBA$(6qz=oj_v0DJ3>x;S@B3wVLxV8=^<{<eZzP&Kzsu
+zydPTu;Zi07;zU^q#(t|!NG$|PGw%bIYD+5p%9hyICSW%Sm^NBvV(4vQkg!OebZ*;@
+zvg?R?6i#~R_dm7T+4BnHz`1P$rg6a3y=>i&?8gugX*;tZ*Eda*ghpMLLL~hAs;ark
+zkNIA}vqj@%$Aq>!&Q#Hr?rT@s`>OQGW*(JWoRI@uykC(a_x^McUop2U)H;p{UOvC)
+zYNa^ehQX;`SW%WdR=}^;WYfrw()SmXL2S8o>WtYuB>kX124bm4e+cc2BR!X?ea+tI
+z<)ppA)Xz-=hq>>>Gc{U|j@6^85PX}CWvW=#ISC;Tl!}97$r5%ROBO+imj1O<c^1o*
+z@CD&VVffFo(%AI?0gF7(p*lZStcJGVoOnXKpFL&D)LFCC9tZk7LCid9NQksR7d%}1
+zk71WKjb6G5>i$n5C#m%4KK-@#pVjjp=lV9J^w^Dh;P}5B47G1!Hf*y?m{F!mY#nR0
+z(rj@8<b}mjk5uj2&kgGGK2wwq348L)>5y)(RR@(h>yV>jVNvnIC^5HG267{r1ww4E
+zT!P+unJna?`Mk+fpg2sY-EC}2ly;6or0N7ICuvmQdORsndSt(|1B~$BC8~RBx_KH^
+zzdkCmXNt;Z$6nqi;x5nKV!lMG1r7Ky@1U3$HF*oJpSvgWT(-zxTt!X3SROYr4|2<E
+zic2aM37#g-!ITs)P<P0AXhxsEsI;h9Y^YP%hoV+oR#8cQhe8W=?rrwmIunhZTjZzo
+ze%IaRdDQ;JeoN@Lmod+wDv_$BqN-ZxGg0!e9}9514D&<q7;~R@w0XB(?Zgx>%wtip
+z<tr){Xw`b}K}0^pI+zb*FLI@dbHsWw<4oPs+_;o_e^ivT%qCm#iEhdwQ8uV$M<UGw
+z$D9zTu@Aq;%)vU5HwI#3q*~|14{e<NhZv*Y5#}AL$c(8s&c2y?6Y4}aB&$#x9E79K
+zrcKX&v&`R1eu)&7<W<Vz@{FSm6@73QrOrxoF&99X&kP8DAbSOX<ZlJK{4H3>xUs?x
+zP4kDDnj)ZAXUs*K^*g!$Y;sLd;XGv<w`VnZQI9TQ!Peh0WajCC7gD1(ZmfkR6GsX=
+zk{^#2YlJ+`qRwXY86G)4dFs@cZb7YZsN0cfw_i(e&GW8cn30&RrO>t@e%r5HmlQ87
+zW*UdU<i`pRf^>U$v|``A5^X%(Z0{jcU+;U~zejD6(wXg+fM9<zThE07WdM{qXs>!~
+z#d`|bGDr4lN6>A5O$nPpug2s&XAWV4Ozx+JKKPs_@rhc*X*~#TEGdtmDcq(|ekw06
+zE-EgPXcpxa(o!Y9jyk)4C{Kj`@8AFa{qNuZ{{8RY|Ni~|_g_XmWVCu2b|}ZQ%)8fW
+z;w<y2De~;Gb4ZvtPtNnvJcI1Q??m;RZp|`H`|M12MPRum&Pr#l*2LNA9Qm<v?IBb=
+zNS%p~S8el*wdM}f!r=Lk&a==wAI-DRMGwnx27I2Krl80((>!;5rn|c$3Gv<V32!I-
+z7uWpv`|chR))Q`B`~Mxz{zvG&-*t#F>rZ!nFiL1?k<gXJ(FmIQEE!EmV8W6WX&#`D
+zEJIlt)jOLwXwo~Ih<Zo}YPGW+;?2h7Y$;vw?Z!H|MmRs*Q*e81dG^hA^o)Ns-+7!N
+z)95qZjAK2Ov0<8&c{Ob^Eu;m-1#?R^2hXoZOrCjbswX?+)@j-Rr^^xP80w63#5>Lp
+zPjFn|7#^lgs44+kfD3JcxWH1WO(?IZE}k&?#%bfL3+8JR=9e#;P*PA;qD?4TQeL%W
+zf%K~v$`tdefc-}v(iRq%F`o=nmQ}O%Qv6$8ycqxTN(quGcu85C00<{QDJxp6O(-sb
+zyh~%h$et%JOp5Gg_<My51q1~PN(<3y1!|ME%&n@DRTWfMFD#wANM5=8kN*a#c};rB
+z#ysUP#oE$MnV4|{RlXABD{;tqXZ|^r&pQJVDj(<l8sy7y$T-c$6L<&VbIeWVBVP!F
+ziBDUdmG3eIW0>L>If(2Gll;S>@{n&_sc0rl@t4ejlCSjb2MrS4s$KGh7r`{{(X4jE
+z%sLb=VVL|RDN^>=-Y);<P+w7H$d58qK6^jNm-21-$iIprC0~nBJk`uss_Gx0`0VZ|
+zncf%AMYeom{xe@#?|gI>wtNTb;80oe@6N7oku4wj`l-K2c>3mh&_*w(k?-_hnE&j2
+zD`dXP<>bMu9a`r=c`xR?KKUNC)z^i5T>~9GY4&_gaD&wtbG>m6=|A5NxFISZ*CE$A
+z^6gUXGG8?EMV}+zGYTi+YE5t>U#E(*kMEys^>N+O+~8~4+2ipSTfRNWw+H#U`f2xX
+zs$S;X6%z&r-Z;R@XO7K3WS&Yhp7}2CXa4rUrvBbVzIXb`=eZjHrFuM9U6uNstI|C9
+zo1A*nO`iV$Qq!)<@LX}_RP*=M%AeTB@B4S78JJsIetC6aW!3#f^8RPllDQR&d&6**
+zs3>)6#(w}qTH4h;P5wI=rrKc;yHes_;SZ-~-Q;jMZ0l&Uz)fR|rlpZDOmUJ{BhoO-
+zBat=&5)bLT<N~KwvPC+V8Xt4aIczMORwJG6kS;={b6m)G1^-<pd2OspbJ)g4tC6l6
+zZP7)jIKhubI^iOOOS@Rpn#U*_t&wxfjdVBC=t#dN4Vy5Mp9{XeO!6<?mUf#_UDV&&
+zVV0kXbbI@!$s26&i?{H~ipH0fmM>a7p{ioSl@{M-`pwg4_we2UYMvKRR#0%v<vlmv
+zT~qCjSN?aEpR9bcq0u(@W+=YK%?n=kzeufN;!c`v4)c$4<OCJYQun~7sj;~NZmLQf
+zq1K~PTiL<NPgVYna2KdGMBG_W{vC>cI@P+tziZT5c%S;sF&(MGT+@gdUPWA@;>y(B
+zv>dow6<yt<)&uc=gz|4wYYzXWEB|}EJIwVAj&}kRRs1ZjU6dEqZ|+kTtF>dSt)F+Q
+zJ97Q~U8>~sa|s{R3l{zd^2q(l=YtDzw)pwV|Gx6CRlZNj99Q*I*L8h<7byQS<=<;d
+zGZ`rFR8nru?x#N9zg(c!m;U}HYrXk%iS73->W-mX&24iX{EpIT$g^+nQ{P18-(-uM
+zWYdxCfAef%K8C`3j~A;sWw&cmmUuvgueQZU_Q6w_ntQ_7`fynOjTtdwS-Ekj)Aj4<
+z{5Z`Q6Qk)7?u?1<u&^X;S5u@`v_g+e-mi_pbad$X+8S5dK{WlilK|Azwz_`vy&6}h
+z&zbDheJ;$IVr}PdoeBD`=9smSVVO5-kGKYhwd&Df$4gvA&j)Ig90mEE4Jn#q?u}t;
+z&P1sB8`VdCHRYor3co`Y?F>`nIb6~Dg|>1Rsd+X^;VDVceX<RQDQaBIxqXGAv+pSS
+zyH4>5b6m{%lcD^nHd;3M)h)L9X!0n{M$5O^_(is&i8+dQ+^J|NSIzAL#T(7JUu>fT
+zbH0=)UiCdi?+X+U(A504)Bi%n7tJ~NfZ{uxbG~PGy7M+|NG$!);1LUl{%OdQcYf6H
+zz3I>Y;r6#SBu;r??7C-ePyOc0l$<|3_I3G?1DCi~Jd$!^$^7ZRe)%PodHIIuUwwY@
+zKlH!+`bwAUsV{$Y^<O^uzUv3;6Gv6=3Y#$f`p@6`Lc3>S(qHd;@Qr)jBlj*@{pPce
+z|NVw9yZ27?M*nL5>;m_Tg9F#!@PkcDU#OTi>62%sw!QFhL_>blM?>dNn>Kp=Z*~lJ
+zT>RyZrH@n%+5X23iAz6-8B+U)O-nalcFCDPY}}A|*VgNXOulvdQvce!3y#g5{Mmw&
+zFMKlSzBy0+<GX90p8n`JKm5ttPu_c9{axpE|25q`@smdqt8Q*ydf`=%RQ)o4b@#=8
+z8uF`4?*Hn#8u#I6ckSBQcwIu_Q@_9L-uO!@jwM{vk>P$Z@6TgSzOx~5+o9;elb^Zs
+zvbw(p@=q3Red4l%ZKFrDyz%U`yADiR@xz}!+kSBB0r!K=OJA-uBKJPB^H(Dy?uvTW
+zcmHFXuDgH6N23ad{Cecy&wM)Uz0W>t|NCJ5pON2Od)~^Yy+69}o3R(xCBE?cW^d}A
+z<>wvDymI}ozdQAow_dvHPY+atD#t8Ze%{TFMMFMVQ#^3ckY|4Ubo|z(_y23#($$@t
+zmZpC6{@%Mkxa3FckZ0zqD<8l97uTG3<htLt|8P+FLx1|+sgs)<2Y&PEpKhLX`qhty
+zy#1Slvp>4x&s~RpH)+U)`%*6G%U6D36N<?X?#1t%W=V6LXE)+^vXYI4DyMJLwEZef
+z+RL~xLd@S7%*OdxP+gD7b&Tn2k#Kq|=I229`vowo=Iv59;_qDK&qe+W^}7i958-#B
+z`n?Rln;w&E;!tHvsz&=|Ve<F=D8GBV)C>5V&wi93e}gK&1L=WnR(bLh&vx0@p=zG*
+zLjE|FpZz-6Ecpq4Z$W(RcFAY>dm7+rKz~}*?@0W1ZL`|{3EJChYwwqUvva%T8T>sH
+z`QwnDt>E8Gy=}XkpZxt#@-no)PyJp8_f)f#S@?S@;AutvY6b6Qs3(8B<cIvd0_~sP
+zZngh2;u!4()bA@%&Sx91Gt|$~|B2x;ooj7ci(FLro2umQt&;cg_h)Et4d7`|zaK+I
+znX0}~sPAo*%S8L9RQjKh|JZiP`}q4Pepf$c;r9UYdt0pEq_h3o<oYV;2kHBoB|qfv
+z@%ViJ@N_8r(WVf+-J+LqRF+z-{#W349qUu+l%;lVx9Ho4bgzxxxh|Yy{}jFc0_hWN
+z{TqOK^6@)D;m=QaAG69|L;Bt-*BSo41O-pp@ZZu0U$N-NVZf87;5&-;YPVYWcpd3E
+zw((*+P8+^Xpxn|HtGzwQUxW6NRek07eY9E18vO0TZ)dYbj}!#<G)sM%zdxWrY#Xm(
+z_+4UaKNG*xw_Egh9}*64mHGyM{}jKoZR7tZz~Q#x_dfhi+HS!^v!?!-Tnoi`qI_11
+zH9z^Wlw_2DO7&+AewW$k`&EuF$}d&vF({vb-%ly}2qHZT<r4-edgQuqo3D2ff6Y?H
+z;P2m%CQv?Cm8Yy<1bEh{^s7-{&0|*itI%H8W7hmw@3iQJ_!>pK*LG`sijk1=m^Ht?
+zfS-u^tJVBlf#18fNnwb;N!L5JS@jdHl5LW11wX{^rft^z_&eeo&|ap3e>nVX8$8=>
+z^vB=7L;Z)gS^c|!_}eCBBmTY>>0S7prQrPm-wv_$cOB=qjUOIEzRs<39Qk_&;Msxv
+zU8;N*@>c@iJ5~ONN#C~l`V!n;8-I8i<ri<Y=;sIcokn_6^<4+QsM*4=1MN08Tl{o3
+z>hHksW`&O}@V&PF-;dvMXm7E?=P~wgl$n0M=H>jitv`jxpRnB;KgyYI+kAW(>HcP^
+zAM-bDFs-)v{0QpnwAH^3^{i>J=4&d_ciQ?p8^3+qtnwOk?Lz9<-=W#RuyTo(m$$Is
+zfd$123QHDh^9oBAR1}GWQGA(5nmx36yxzm?<%J6>waSXB(#3gIl?4x!=kdXoyaIV_
+zEU%!bNE|4Z@8OF>G<o6-7cW=N7iZPyRWDprURY3F{GBvy!GeNHc-6e(t)AE@U8t28
+zlvh-h6&F{^_5feyqUtJMi50IY<>i$v=HV)B5#Lg}SDVK}-|97k;v#Lqy{v=hJoD6}
+zJ$a__y`-YzUQ{C=qsb!{_<mqnUQq>)uL<b#xPS5eJo$u8>AWRc!CXEqFJAdaVo@O)
+z6NY-WHV?3)Kow7y<neeA8s{~<O4aj%>OAq<6L%3R%CvcW-AO>J6-pS8z!wXvtBMO2
+z7M7eFtzv^fo(k5)qyG1^D0dq2^3YUy1@B0RC%QC_6ETay1RQ*Js$jmjL&h+V|1Drz
+zr5yEn0+GyKSW;YguO=V)m&hwAF8h{&Hs80xpvV`V*dXehCx^dyQE5>@A)kPfonKU@
+zUQ84eS5Q?<;0mhb@jd}_&!F+*DTz-Upj%W0C`};cB?&|n@)}IuTy~lO@RKc?d<jNd
+zu&5j~rR7!3MWMob^U8}KC@fh7D)}~&<^47_WD5W?5SCY1v8cRSn^#p>P(Du+2j+Uv
+zrI~dr=;!e{X}}@qhqNKdNh_-=F1{CFv&WcMW+_3#>H!<nDbXTExU`@Q<0Ppx58W4o
+zWYTbH`Tc5$<<}1K<YX!m^O6t%foSZ$Dw3<D{(^;7#XZ;p0aiRvyink5uA(=ET8`a<
+ziu;T0II^K|Zt;9U`(k29yvVyC^yJ{@$;l)x8|8`4&yxv)Sha-(<-mzH7vnCVt}0jE
+zuUb;YI}j+}!yZ7;<@c8^1SKylC>8L}U%)<#s`Ip)v!>lRCGUy}Y04V-|J(mL`U!K{
+zkbAanrE|rVmYzpk>{WVLE7pd1hm;}WZkKCST&2{p;v(eQ9hWa<_&8mz?QwZhMvS{o
+z%BFE?Qf7;r0=Y(y(1zWM_UJ>|iK7o?A%XsPu&&VmKIAR>7eh9q{{Yq_`YAlC4}U7w
+zKl;U3d+E;ueDonBr_+xIob;h2WzeULK_5b77Jcd*^ydOz`VRtL`XeFF(9Z?j^dW>5
+z(VqnP>0gfJj{e<P&*|R<If?$ASg+|1gX~5hLVFGU0?5wvhhR;me>G%7`h}2*=tF2}
+zq<=GHCi=r67tp^2Yc_o-tvl$aVhyH019BvN4BRgI3!n?pFM-TV|2D`f^ph}d^vj{E
+z(7zu#0sRrsRp?KKPD%eV$XfKVkRPUh17vgh70?gpUjg}pK7`H=`r{#s(65HfKtB_5
+zHGL3I7kvovr|HwM1-cn_6J&e(7edab4<S98{v3=y{aB1YeJDW*^r2)W(uZ)P(+4Fc
+z(TA{+O#cFmKmBVk{`4=!_|rch<4+&LPdfbp7=QZrVf^V&!}!zB!T8g!!uZplj`62I
+z6XQ=m65~&QFvg!ggt#L5PzFlq--_|4581tv{(Ou-{TPft{qJG?>0gEMryqs!r#}kg
+zPai^59sSuDfBNYdfBK6s{`Bv__|u1s<)=Ry<4=Dq#-ILoG5+*RG5+*tVf^V&!1&X@
+z9^+4ciTt+Qoeu2;zc1$uj5nNt7GrSWM*&yopNzVdm=G`iD46+DU9j%6y@naCwS|}3
+z!qv8LnJrvo3+LLx*|u<&Eu3Ksr`y75ws49qoMa0p+QM<RaI`J#w1rQfvcjiq;gh!T
+zF<bbkEqurpK41&)vxWEC!n<wZr)=RJws5m8+-M8e*}}E9@KRg2+7>Reg^O(ATw6HX
+z7S6JTGi>2>TR6=YPO*iPY~e&(IL;Q1wuPOx@aa!&__u{m+QP?d;iI<jAzS!>ExgYb
+z-fIi*wuPUvg?HG(&9-o(EnH^{*V@8MZQ*KLxXczVvW0VP;cQzt%NEYCh0|@}G+Q{u
+z7EZE-6K&x*TR7SlcG|+HKe6H87CvbUAG3vz+QNry;RCktK3jONExg+ne##c!VGB3g
+z!i~0Yoh@8z3oo^Wt8L*jTe!#;&b5WJZQ(3iIKviBw}sPe;S_|ET3ZZlmp|lmZ$EaP
+z?r(GI;Gf!f!>zR#ZcmHhY#ndBey01x^Ke<8f?59*>k0fgq{WGEg#IWH=HAe*X}5(g
+z>b~6Z+L`X-Ni|Nbm9{6H-+zBqe4EwbSrMjro{!*nN6R1|>8u}oTk|xCbntE$+cU#g
+zA|LsA^hkNyhvoPk`oiw+<1FVxUY{F|ZFv1{^SZlF@cXd*ekt>v2E6G^bE8k1zwI8C
+zo}$uEAw9{K?)E<0F&lNS(VSW(9A&vW_}LDpmJ3$~$M2;!J}$mR-==xD8V-I7Rm%>A
+z)%e@Oef~DRVY>kg4L_gXB3Iwcg}4_r0QEcFjmDa8`Q6?x#5cZYhjg)hc1H+3jB@I$
+zgJG$S?cy87sapnyrPdCFNHW~zk>3m+di4qcr^{1oh;QwpJeI)W5s2I6_J_WANE6?_
+zeyXNM;P9lUCBm7{@QMiF$H6wjF}|8-gGm2cz_484j&01k+TZ5TVnau|yQ8Ab-!-wp
+zH;^wMaPwQQny*3TN1OYBzdGQO;TI6DMVR>2e6<F@b35*gDuXrwV<-xBOlSYSeld=k
+zuTkLsw`b%xXBqdj3Y+z$p`HZ94e-c%G=2jZ`My9L=|@Li9b>427K#y9i7}fP<J5LI
+z<oF$izZ9+x?mLttoft#VPV~WBgL*5*3S;K*psm(=(XUm6FW(ouP<$7DlQAm|>6Nj;
+zFg1qJ2kV2KpvefpJ>hqn7|Sl;D*@#O+VC?Fd20ZV7w|Fs5W*8}{qg|z;5VR0g&!x{
+z!q|qMJHzj~qtD2jfPN*QUzf8i`jiwV`xG4}`}2L;9#wy|R)2_nVt=BEE7hNw|Be29
+z^;@ey$IhJHpDbH{ruEaGU-r|V`hNQJ^*8<ZXC8psf&OrAmmr^;{n31&Nq-DjNt7F~
+zk{|fYc2R%0Njreij5~w+(^~nx_<F+$c%rrXU^3cHCT{^=CZ3UV5P6@D*0%q+19Kh{
+zVpta7I0#n~?$lD?GT~fTv~cdV5f1H&mI#Ey1<%qkr!<7Yry#B$xpjyybSzb-577V8
+zlLpo3$OVIaA&BBp5TB3iO9j6~U9Bpwy&ir)o@pb*x9$C*FyNVOe}(=uqMSqX1~He#
+zJRu%R(T7UZBg&&5)&UXzr9#B#sQO*D`sX3utMW&y{F4y}H79DIs?($3OX-2n>Pup3
+z%QM6oV15R__n7dK&oHmkme))JZigT62ponY^uP4Lem~lUx*A2??f1ww_j%5Z6Y`*)
+zsve~G)YIgVe1mcPO}f!k9^#L2i~A|J2<<;dzSgIFwu0pkNQ+bD2HN1hoc7|32#tJ(
+zw&P}mJqV{Fycpp+IPQ^E!(R&52v-Bw0CyE_^D{s@SEJ2*f9M$KTdX7bD~!$oEk>fd
+z-WZ0l?)XWI(QygfcUp`At-gSx)gLQhZ(VB~9tPS6ETzbI0AbGIc?j=A`9HyLeX+%8
+zT?N|rabDIL<eR&Z#<`rRZ#Ry5>w`Y6zT<M_9q2iX^0V5ufZm)4uen67z0LSNK&{zN
+zAiVg!7UQV49e91r;QBJKGCvUJS%G;uC!~2EHC8yZ;fZdf7p!Z)oZoW?Ozo%T9NVJ!
+zOe)%Qcx!?Vtv2}cSG5xZxaNYk4`YsAinN5=fom`5yYdC&g>U%H^w$NB2%p4Jjqw!c
+z1$g!47!!wQAK=+%9QJd)y|ZmM+BqDr#<F3vF^W6@;l~vm2@dTKyT+gm@JY?R-e5Rd
+zYeIk48_~MtmrH)Cok#|Lw0ybF>_R(SZ(l?mZcmd@Ge+Vk%;R?~9z*`(Z(~1FJoSc0
+zC%;`|{MR#*henI%;`vQ_UuXzmbLkC6G~}FcPgo#an+d+^kGX{X@lp2Bj=S`YNZ;6#
+zevwGqXi!F=tPnjFV~w^>?cy5WDB)nez9x|;%)w(jcZA}Fk3M=gi?#J#z`i3+;^ip9
+z`{NYv^sY7<oGr#=#6>Ee9pw>nP)H{qSAAQg`tx_J3HEybhH_b|UgD?PR_{dAdl}-K
+zJ!`>6u@*$3-jp<!*<gJ0SM3C8E-p#pbS~;AjU{?OM=|8(uVS6a4>;T_0{8z-J8_Kb
+z)Q_I+5P4c<9*4Uwz&sI1{~SDA^SmMI@@lhUw*og45Wbf5=cQbu9p~?>@!R1!)syc_
+z;Fj^Jh~Ir>i?R4(%7c)PNGFhIG5=#gqrv9b7NZ&IUUz-RPW0_C;B@HTV3>DB-~#k3
+zXO^7Pf^I>tf^I>xSbw7q1LiQ$(@K<cXqBN`DR+4`gFnp*eV5_<)dur;(Z+jUL)HQR
+z8Q}N-dP;Zq&qRI5cQf)O#Y!9>4&!>a*?9G98;*hB-=KccSI;5Cv8y&{_HjR87}UV{
+zFMIk8x(j#s{G$Jn+Ffmb?(QBpNWUYXgN_}Q;N{@I!+?`V2y-RpOoK5{%5j2T9r|)1
+zKRG-%2BXnem!^#i^Bihl0UCPRvkt#wL!Y5t$Dr5{@Dc0KYJwkgjKDJx#wuGgw1#st
+z;0q=M>WvmbUvol({eDLtXkRBk0saZY_Y@3C;1y`+_;{AXT#6XAq1~asbj(q?TETKN
+z){5M=NKM<Cgz*{ZJJhb}8;q3#ruA)v<s<Yr48FtnQd}qD!8q?trCjim823Sed4Xu{
+zwl)ngB?Pt`C8Jsljz8(38Tod^fCjwv??*S(8*cE7F@WVk)I+?NiT+u0L_=C~jGQCi
+zV64hwtT__rXffs@j(kQF@`XQiqu^Cm`A(#FD7p9pgx$9ChagkUWO<Z5h%o8E4V;h;
+zJgf(GP!{8Oy@Pyyw^%pY-cog%_0*xP_iLNn#`#Y^fjr>Pp#w+@_tylsqHjk%YVLur
+zg^y}(Cx0N%n7Erff;`Cw{_c;RiSl(=JL_~gmng%N&rZG^Jcu-lHl`s@E!M;}pfs+P
+z>3(Trr(8&xkal;ju?I%U^^<GsDdgpv>Vb^-=aJIJp6--#B-h<$r0<05#$?|Qe-GSg
+zxP0Vkf=^pL?fP9@gY$ta;EU@)ICVGAssMR$Y8BSW0dV^vH+nZBJu67L%c;$2bL`Rr
+zVVFm$KZy>2r;l^DZZrm_Hn%&ps?Z?NY3#(cfkg1}@KNg#w-9TW7B%z|e_Jy6-yqM5
+zK$!kodzf}d8}-93@Um{5GTt3+2)kH6>bvSZ)N9s>y5c9Y-jcO}0nf3{rJ?hAJQHoO
+z&cxCFHc@ZGU)oup%MEx@&ol*_GnHc+2sym90{(Elu07hj68&Bg#Jm^nIBQr&wsj11
+z1M=AMB-EpGEy6tTu{{s*uq>Du?r)2^lDeCm??RV!2SS7;%>9>k@`Nz(uCKbg*Rl>#
+z25AFgR<tLzt~3Tbx1s%9uqPmYoNDt@@@Vg}V4Mr>O_c2czA<1B;{<+5tKL8;Je6y}
+zGK`O}E!?}jo&93ltc&Fb#?-YZpuc86?RfkJ`nnG^y)2)+8e^NkdbC?3tp2t~4r(Vj
+z_O5*3isPcK<a&^bI<DFYylrAR@>$?DE&;THat@Sx2<6x|+amrGQ7#Vc|6S$R1Y9VC
+zyvZnYAMz7V$;hW8-wx#KoDACZvCj>r{u82&LD(0>x}rr5L7W@@V5VWdjZwN$=dx!z
+zDDw``Hom_Dx@oe`xw_n-Y$5Fr8;z80oU5w^Px)Bzt@_{r@Hno~QEn;kTqo8b=J&Tn
+zf<{Mf)0Don+ThqYwFZ%&a&nlU53YNwfh&$J+mv$lo2cKR;BlIDh`y~hVptF6Ul?c)
+z^C3#Y%6gUyd}&_6%i5m&%39-SXDCO%oE#6|W&s0vxG3uhh_ZX}+ok$C`F9rFuVB2*
+z_$<bIeL?WQ2tMVp*47659olM@LmTl<Pfa}f7XMdaFUbjkZlc_JlM&b21et9v<h5BL
+z>M_xQCgfip91MDOd)62!p2HDtcas5GIXuO)KOzw_qzmQ3-OB>uo<Li;+kv%aZor|>
+z4QP=0-0n3-wA=q&G<<jKnitr=o!XipW$eLHUJfOJuV(*~IM`@BDfHGgLBJlm0(~%H
+zI*Ry2jM6D^73v#tpreW2?UYa2y0vVqeV`}M68YXBaRlr(tU>GI!7pOMwdHQC?@@6|
+z-qHYbl++Q{a(udId&Brgw{C(yzX^D+3#7%OKFr%YHSJoLA9_D@f6C-h4gQ!H1bu80
+zdQ{}(746a5Cc};2L#dZTZVva<1k#>nc)O8+I)`3No%hCInjQw(Z*tJ#c{u2BJAtRW
+z+FYJhpyT@YzfV4ZItHa~5Pb4}+BVR?*rerwWW<N5_)79leOVw)#Sy0OGOxBO$oe$M
+z6BxH^<J^D`zoQZ6Jar=M@IEry8N<1~$yg116ShQcmBDgu_ol1jya>DNuVNXEG!H)L
+zhO7}yp43_g+S)GihP#)yN4M4ro(tT8FK+_w&~5|a-y+~FAWV>VT#x~i5g+^On!unK
+zrrj5stn4;U)RzW)$6Q$(2!DKeJ9Ovc#DRk{5Y`$$Wi8M_jE8dGlwewVcwi{_Yck51
+z>(OT9iAk5~;T~sTX!?o(>kLm_FW~qQ(m8&_Q@GzBQzvAy*`XRGn>|Qh(L+4x0WwCE
+zmJR->t#zVZ%6=?+8vP89p`DR@W}|U6@TcjJX^<YK7X_RS@_-cq&9l-78zptE1z$qO
+z^Q;A}uQ9krM5VH><$+uw*9QpOaSz5RMbOr5ZBrFqde)_jS?A0)t`TB9TCpxc_6Xy6
+zsC6m4by?3E!Ma#>P|U;ap4L?c@lF1l1bpbC4WWZYkuDwX<-r)VF;uO6q795kIABk7
+zH;T4QJ4G1VKzm{hL|rU9Xw<{)9QP#mDlz69|K(_FE%hzXv<4bm3w(X>5AB2t<FA3v
+zQjxygOWW0Uxn{VzW^5AcObGcvg9hsd4GLOHMj0J6`KnrLqS-&S)}*O&ucI9MO&Uu>
+z{uJc@1=pOL$G`8*UuU>zkI-%pIsE8ngIsgQaV;j#_WH@EkF(AJ7;~p@WpEVmkb&`~
+zjrUcIpH}G$LJu4M`j=<h4zK@G%9P|m{Cy4c`)Z9nN*3J>88Obc1$4f}Xzo(wX}{BD
+z{s`i#rrub?x|MF~B9FTH*^W!T>^`mo?txqfJ*$G03&K5X!B<xWoi!^AufEn0c~?K%
+z@yjpIwm%O;oVh0utHP#TGZAnt?&@uS#u^)%^QE$3MoD=!D@yWOeOG-j8+dfKZZlkd
+zIB&DqBN)<J8ywhrAe4S^5M=djM)bj313CI2BU>9}<a!1fZoMA3zcb{lTxa+Yf1J;$
+zaV_eiyzFZOuA_cP*lRczO>(US?CngClXztu^JjZT2wMdEa1uJ>$#CL!18}>+n2L0V
+zv%Z7yF~7^xEO6`sFOIIPH;8A}I{|GCaLYRXfimd_M;Q9STjZL+F`?`a_-^Ww_La}c
+z8}uWX<Np$KC(7%0fFFhb2C}Y0Kho~-{HvX`!?Y~-Aj9EX9dI^C`Hf{W**76a)EMkz
+zvip`G*Z(+uo3XP?>dlbB+8&{-!2ap40sfhxKZ4$<*Dycx=C=+K^uzoUf!qAn5k|Av
+zTiIqzL^+pxy+IujeYg^9(#5PR+%rGmz`O>Zh-IBWL7fTiZ9@NSML2f+s$eF@#OEGi
+zu%6iKR|PXX9LMEGCdy|Z-i7(EBP|p0(dg5ylU4<zDoX<y=xdm-F5pFc$$Hw($+x#*
+zy_psA(Ef>W2-9*y83^kLNBdR=CZfIw@VLjjyRYRqv0oggD8Lr(Ssh5$>O1tIEk>3;
+z!iaSH9n`^m+6dzt^xNaP1w6Fg$VHk{+h*jTt`x+T(Ds5j_D|T2ppOv-s8LZK^uewA
+zi*+FO4Z-K@jSS@XB8@UpCh9ry4P^}Equl0M(Z;c&tQI)7$vBoqo_UXu-BVEJXxt{_
+zq;r$ek+I1boVu)?Z8-EtgO1jkU?2%RFSWM)<i1tLb0{CJzlt?+n{fsCbn2$|a8F%Z
+zSn8_w!$`|`VUrOF`~X*LZ@Zx`IAcg%5N!uNfJehR!nrQ{wJJazj%%+|uff=?Ffv|P
+zW&D?rC7X=Vkb5dImLB|m6!>}+{P0-XD&r_%{L#zWiB7<K)Va!7hO|z^FGG3<($*l2
+z{p&#5e%6Kg589?|(>4%%k+eJm@r~dUjo=%N(0Lmnqdorx>6z`$3WZ}X+=I4bO#6Ua
+z&fzZP$#h$D_tY1?=Pvg-xUUk2dF#ady&dUZ)a^wZk)Qz=ZH^l4>Rd;l|D%5Lq`itK
+zX@ejGQd)=G373bc)?rR98u4DZtU;1zWj?yjh!ea&C*(lCv|Zr+ekq@EouysNfj$rL
+z3H{^v{_7hte^+8I-`*CU?@x7Uv)i1Q+guMaBO0kkv`z1l>%ph!_ibHguLr+JUpz6^
+zdhpB_ay`(MjU&-Pp0y1;Ynzeq#W~gkKYn*v>w%D2XFS{S#21uNb3&uURmR&xS5H_u
+zG=9=bK{sLg@}c36KinQx@bLN6p~A54(;hJb<DB`AEymyrR|bcfd8u21o*XGy`y3Cq
+zJFt#t{^Mc8l#MgTJZ!kQ-v<378uJP51UaW1>HhGrbboA^py!9%4a&@2XRkYpzp&Pw
+zMPHn~?i~5N`-H2{x<kBijB^IbF<#0sq|OLDCJ0%9ZTLb$z6Wg32@~9&b;9n)Fy%Qn
+zbQ-s3Sv-HAis8OeP4KM)kSVlUBbstr4eg~fd-?(W$8Zcnc#uDK?*ZyYpwHWC+DQYB
+z=-F}~nfe!Ggnf|Tc8rqy5|j&EzBNW7=s5u{4lWrk2~LMggY&?pz`gyA)Hzv(Hn%rz
+zzjN{Xb=z+re!pV-oq^vk+kQ{P@4wl8r{MPsw%<B_KWF<Lhu_cIe!KAd_qN}sG2foS
+z?=Icy*RSzA+Ot{M+w5ab+r)viHO6Y<6YJT2=Ncnx(i)=`We0kse#!C&v)33S)t)-z
+zcc{9DBkug`*96zZHyL$fn#8)|oD7+A^73}g3%xpHg^=qU(b*x&vfLXe15fy5F!V&O
+ziL@tj>^%P1U6a<tXSYIM^l-1EhBnN$1jwG9lb`L_{CW5BoFSUF7xc3a?f~2&xTA2#
+z;7*cvz@3J3MuTU-#la=QCBZdiM2LGJdp-#l`_F>z-0LXU1Seq~2`5hj4PM1F2l#!x
+zuv^>~x>DFJZVOGLZ4AD!^>`-Bd827t3IBaR)=p%6VVf_4cQhJLVLs%<Sp0J5=aOe+
+zDxQ%ccm~D<ddVQ9O?-}XOYumL+;0+RJ%EGHKeyzYO`l61!nS9kZOs?p8H1j^@o3Ih
+z%$qO8y0}ryCCa&)4?J7i8$zG|o%<P$a_^DyGUg1|p_3~8L!`TOr2FJK5RUbAPis=H
+z!B}Y;?Q$#Q14^EmEc)gTQJ0rCoyPZ{-lPehiag-v+&`!cMG}AT-=gk@b`A+RHlGE@
+zOJW@q^x8K4^WOH33!bJuVYPsjyd@=C*<jWBp!sG6_i=royoNCi!}^fvtB;@@L0E4<
+z`ApzBlKa)bp#wNvJVfoowl)}pXh%X?m^zn`LmYb>#5jgwUB(&_l?)&7#@^%7qB>f)
+zi~Y(-#peg9{keT-x=(a~$GQER#lBjmdwWE>du@aRW%<-u?DcDdu`jO;a?V79Z@)iy
+zZP0@?EDdEdp~q#?b}jbwYJ#6!v^JQ9^|KCeQ(hw-+&W=xkaKD$$}WapH4*70C|`#1
+z*~pgzM|k%;X}ih@Ud^@r<Ce`=V@=%sD(1oq|1+-S;D4TX$1CSfOMAs~b+7jR-JjE6
+z*0l5k2>%^nxWzAN+U~z<TE~mLd`}xmc8EIh-JhR5H(&Uy`^3Qut-1Lee(&RN%umkE
+zz2~(E-Htk564G|PY|Twg?FEZD3S1Ad&COpSZ={-=_wLY6=;v{-ra_D&<4Id4T|K|U
+zqAS9>0dwh!eqh~-I+JX$Zu(5}k^PC1kGRjXbkQ$QVXk}&tj9jHV6A1Jm25ydC5@hr
+z(4tKEuLFGfiRQdmXY_@CJ>l0HjC5hw^~HjJhGV|Peu#eHcj(XX&wO^aEHw{t*@>1c
+zHCOfL^a$A>Z?uK`7to)y1F}D?hxzUO+4Y$vPx%mj0z9EZ?D^z|n$f<0P>az)duu=Q
+zdalC%P~hIFWyeC^9G>}ut(Y@&LVt?XwmS1049d=7K4nXQ{4h|-j=yke<H(DA@r}lx
+zKkLychcoUBV2%LaNg8o(+)Yt!N1^R(lru)I4mw6{ZRc9J8aimlwJoBI*1Eyqc`rxm
+z+IE&@9V~w($`6~gI(YSj)xp6Rt~O;wAp=s!pq+{~6xtQS^tAzpdu^ccdo4yf_=6XG
+zA_M$l;6BRr4aTmT`k;<F9pDjM*KX_X-Wm<KCh)vTl*Jd#_9a~P#!$epr?o!FxJ=-9
+zuctmJXcuW+!d~JFdIxI5wbo5N{f|&%$2?&Q2ZPX7EY~OGGt=$ubUmq^Fx%K|woy}W
+zy!)lZ`=x9{@Z3#j;rab1WgF+Ajjzsh58o^7_Puq=pF6oG%?WLCYDe~PUshWhqMdyg
+zZE0GSu+wB9O#4B)dpq#AU7X9B^%eL6ZFg9+CXO}7YrVji9fti+T4ViVo{hN1#Oa2!
+z;C&W(n@GcAUji})=G5^sz3Jltu0Nlh%_kZ_cc&99K2di{&a0gXa$a?~ta<g(r`;#w
+zK|h>Vq@D2RSU1)hb9|KCarl(QFBYG&cv~9a{OcLOY2vfe?|2<>{h4u!m+S@HdV)Fs
+z&YlCypX@#VDxBJIZ~j(;I?%R(ShFhS{Oj<EGpb_#4N&v1aUgAZje;k<d&-)Bn4cj>
+zntwy=RsMCkp8AdFK}H+GxO6Mdg}Cz>=kafVTfum^Wf!OU*Ik_MU&cIeE6G;|osxUr
+z`Is-+1J5lZ%&?7dKKlJvhju*a(%v*-pTAR>-y`?Uh5~jc_-7*KedkRrm=D@<t+lbI
+zjEOgvyQ-gZgLxiGm$XD(_P3zRo!>b(jU_!P`F0e_AH$f1!OuR^9kt=q*);Vv=w#<G
+zi>AK#RMJ!q;?mAoymm7BoN?7wL9<f_fPbkoB)Ooke7GXu?@-!SBNy{0dVqyThi66G
+zp|rJziAw>ePr~`t6OcEV54<!2aQSFIfWF5w9Gth8p6TAo^U4c^-aI=rYXJ0P&<8~P
+z;o<n*;GhgYJJjl+3_m+`JNU!^<i7y<bNcCPEBdxK-s<aK)z`{+Ie&IWSo3Ej)B0Is
+zqiyr$DddTRY@6-gF7^N}3e%#l?Wf%*kT1j5?qjSw-jYQ;5!U+du(jJWPto>=pIYrc
+z`l*z~#W^aq{`94zC!dh?YV!O;-w>CxLun4~mu82qaA;d2;d>m~S{M8a!zmYJhoJj~
+zgWpBaMik+h66W*NN2EJ@uMzfk9%ef{4`&;<-+v>=Z5`$-*N=fJf6p3%awW=6`##oW
+zlNVx;`{mys0k7oSxhf6(JGMED=h2`)xK{^B3r>A=gv+xzLTmMhhqpdI5c)_2V2<5`
+zx^wjUc*x2TZuDW3Rv*m58hI^nNZKx<jl#1uh&gv9Wg4x<AM2<I4~wg$OrI0VuB<m=
+zfU`ixR^u4xJ6y|dyBN6Ii+Yd7Z8aQvZSbUXs}V?AYjhmjYB*DuwX;py6}8ky+fVLW
+zYczu2cZHpsw@f4s-3{WLmIFFy={KCSw}l=9kGvE<_(s%@PtT^SXvCcyYSEPozn>av
+z(G|~Sne=?`C*3CwJb!Mv@pc=1ef|k~;%0+wBVR1-=7jfGk83Bs_YHW0It!Kl4eczO
+zjIr7jjIl5DVHkO_Px4}qofrEoUW|CSvv@IOpjb)op($zpwtSD|Der>^?RA`+{@#E5
+zY<_tm=xEL4Z|Adb^;2$0A3i$>=|{k8(__vp=l$(*i`Rw}ul@3Lchtmw#>@YSs!NSm
+z^CwC!cDERBp0;Fy_fB^Y4+{s(Bm6w?CwVMzQ3U?@W83<B6#2ZB<jHeF`!GkGHJi>_
+zPfdAtZ<scY=M6HT>ks<0&wA>SYiD>IT)KZ9+TxgOj8<#wJrV!eddmG0jvL##ihXPK
+zhl+rs#ekV-ro7PO%Z50$47fUkvj#i0Cb(RL_rW!v=hS#kAQ^E-;X3d;3yzN}xzCe!
+zV%muN+5}iP*X8d6A93!H=j4g^JZ`NwQQnLo*PFS3jcW#&O4LC3QQ#kZa?TCdd7dr@
+zJc4y_j^raux^N+!i!ki~+&d*7p*|mna1qx_@C@3ud<=t6Cn7uovg~@aRfM_2xlJ33
+z!xJ9H@vg(#obkd|v9Iu6MDKltJ)CQ5UqSN5wE?l0*lS;5t??l0j!<jgmQT*6JqO~v
+zF(Z3u@0*V$?JY$dc}2EkWDl>%|G59P@77N&9`OP4(5{oEZ5QWma<Pt>beZMb9x)Pg
+z$;aQmm4OIt7Vi*Tdu-H5v7g6tJwE{-o{IVg0k=PK*9Up7XY6`;4ra4Bi_?gDXSdye
+zaIWGvsi?C^$n4^LOB8X<y{Z8s|7OG99_HdW;{Gb&B_o2k^@T1B)7H|~b=wU!0=F|R
+z=lSp1LYFf4Xo0s_sZZ4eo!;e!(+B*<uQgczdtz_NTnFxHJ1O?@8V&M)$|YP6I`&~r
+z@H|Q#Cf1?X1Ot$L22WnruH9DGelkhca|rdMVJs&qox{Wa`Ra|Uzvw<8);QaK*7LO2
+z@xB%MyqCI#ehBi`cC|OPwLRQZ(-sEZ@fn`Isazeb2JLOClxuD^>di)dj*sPhe_GRC
+zGUfT-p{{J=vSv!q)w((muB{G4yH^BLK&#0Z`y_Y0SpSA<+8<H`Os`Uw3wC?L#W`Nh
+z^SqI)Z;x=f{SN9+JO>-*nb|8(nCC`=XJ;JTb9LXwebqa&)%eXr8IC>Wd&1~nrwM&h
+z%MXN$@yy={oZcTAiFui;=*pqpANv4lfPF$Aa&0v5q`WiI)8~Divd=FoyXezcw>)tp
+zg`TqE>+a)aNxf<DiH|K><a}7QPSRp7%4ec|o=1J<7cy=R;}lKq$QT(hi)USE8$_Nr
+zk%zp1^N;6m;vk=!XR=V>2<zgRtmym(!;SIfx$G3r!3cRKt2Kf$lH0xBNQCU;($}AL
+zHY-z{^ES_Ctq|w4+^s8K5Vl0j|7dp|Xla!ZDdaqV+ZUadZI%7=seU<qwecGAa6Xq2
+zCfXr^kG2=I6C*)OoAkE@zq9D9PSDvp&Ve{{4&2suE$T=@`8!|Kq#ejB$CLK`wodLJ
+zN;!#l1OrK1jgy!k9od{C%Rv`)Vt#~Senc0nY(ME-Yt)N#HP+nVJkj#&jmpn4H{5b=
+zIMm!&ioExHd^WFp5$&c7vv}R}os!q(B5w3I_Wjni#!<}OD_`V(>sEx<s{PirYQJ@>
+zk@6z<TLClD!ux{_^JQ8;u+2d`)R!VL?%iP8#8FH?IBFt}G@iAp1)tdp-n0ySX_>V5
+zD858~BzV4indC|Nk|*5=crNOv|Et*l^G6z$iia;({m(gH@_O$;@Otq1xcn`K@e%05
+z3qDTxYq)Q_tj*z?6>_%vuXMHgFOClQQ{hIj9<Fs+pos{zZ^1Jt&VW33PJ4~ZTQBBa
+zrCXkzEb5ec%AwP8PrW~Sasf}6hoLZCp0x;9dSDyMw0EA}w;70YC0Jv7i|U&vLG~@t
+zWvyes{HXtRY+I+bj$MavIM#>~&H<h`#c$3fx897o+iVOK`xN57NL!L^E^!`z^c3b&
+zKF{Z^<bCAh<g4?(?vC26ctat=rVf+;b@y<WXPpS&jc_#hX|(=|!FvVao@IgaC#?`;
+z9zJSq`)u$hrq^h(As_OZ_1!A!lXa{Mr%lTr+BJBsaWnEqd1`~<Hk$sy3l>dBfo?kE
+zpr0U~Hp2&yMtz1feE@hanKsfm4fstNJUj_5-QNb8&Y(=1kMSr%cmVRIfX9HgqsHnP
+zK^OXa;aA;jxwjX4g+IoT4BcxVeCUuUACs%sM?fBo$ZxHWM_uth0h|-v)JJa%4PiOR
+zVZZpQ`}l%>#`$%OUFQYXIKT3d9B21%InK@~Yn;<;<7~HY5ihj&Qa+CRsvB#Hl#jK3
+z?7h)nbqjlMW_+VDrL(uam$u$zXd@o=kv|+${DF8*dg0u><3gkn$G-(`)B5RSGwM7v
+z-0EYK>SL$sV+Z<Z+6BJ;5VZIAkwSl?{3-hS_mPI(Mj-6}AKC2xAIbT53UHfyVUr$%
+z42*G3_dE<f_OOw0*+?O~(uUO|E9>(9@%qO!ajzv^?1j$ivHx#$&<-<;cUPif;paj3
+zm;`?%*5K>mx6)qYmiuI^ll5;A=M8+pAj(X<e5;ZE(N<$H)<u>NhG|FAZrI9uKA~FB
+zSuN&Y9M?#!jT3KJYh>SWBx2$}w~BMi**Cltk%7D()DiBklWSwEBQO|iW3*ZqC;k&M
+zSF8WIi65<fAr0YLvA%&;+*=HBrpqh$AYJYnu?9zb{07e+uK{ke6GtkW-nt$;uf$Ki
+zF`f9}9Yc)cg}hHE&WqD-F)Q{0albAnv<vdrwUALJ4nZFQqtjC(&X`ScXxHw7Y{7MQ
+z1jdE^Nn^Sjaz5748q6{FGb2y-llYl9l6`+E!c(yo;~ao|0a*Zjjn?M{27Bg-dwFJG
+z2Ybo_?C(Ip!~28m_eBoibqLqq<&?+z#btz!dOdZ4u-5QEH0m7eo+r+pnf0=sHQ+xr
+zYOhk>^;>4JEv;4JkvJ#`qm3>nv_{(=K^qEi6XEo%2wQ{s&ofU?jUQ=9J#2k1eO%c8
+zw`(T`sWpYTX8d{Tyw3hGZFt9dBgI(-yX|D4+Jk+6yVSoO9<Q)HoeI;oQWqzk&H3o;
+zIrnGGqs)t}Irqm8)!KNGoO8K@ExvLQ(n|g@(&&%3aIQt#=GuRKXxYw-0aG&i>>q6Q
+zS?&*-eIwj|B;0y~ICo>(&DsGw#xyiUn;F}Ue!~wrD}hIKU(@McXK>xQ?dQ_w=FlDp
+zoy1(U&!_WI&tQ)GjIBlj#@+dUIER`if&MV|Tw_QFagg84`J`3W8csOMEX~tFA0y8_
+zXO^k)anZIGfKC+fhcg_Z`C`Xnp6tJ@r8iwbuQKrz=0koT^l{Wv(GR}1+3>|X>H=T+
+zXX7j4=W?Bf{t)V-%&X05bNOmFI`eBc{sVez#)y`4!hc&I`ufe8Zb4tGxfk-`+4OZO
+z;<|=gHlB+WeRT|%Hs)hdmQ8Ne2mP;GRUcY(6>Fobe>Q8vhTv3lfOCd$-uQ(&kLvTc
+zJtS=9KH4}Ojv9aXOJ{fvwn5rdy?%#N>1$3e&*ea8^NRbh?M_|Z&-@B&9_zR9FTrO}
+z=Gq9g&YS?;6G1;{gJ*sMq_16oYcX)Wn`tQfX}A0h{V?<^#wi*le<MFTtnyRl`l%|z
+zb&@zvuYA}@?&=;szpMNB&OUo-_C1#4&2oJjiZXX_PgUu*Jhu@|Tb{eYpiP4E>L8Ci
+zuXpiBJSWv4&b{z$k%%y!(UxauuI%cLGS|s!)SdDz`*?qEmNZ2h`~6>Zi?>ydz`yoG
+z-e;sfFZaW#7e0ah9aH;ugy*pjBuyMu`*sIy`*seb?cXo$w9L!3e(!$uCXCHqd;9}=
+z_Jnk@7U8X5LN~#f)T+G*%z>@xH%J`~>&R7UaFBDaWjgWx3zX@G>|KPmivUMaGTg)#
+zV<O_2o&X$7wvF5IGxEI7<LINKAG$APpKN=R#j1~Ss*fiJT7BGq60raE+_vbaKd|V3
+z)&~~-4*|}b&Of&;c3!jE^MH(czLwo1uY4@dD`baSzUUsFbG6BD<d||D8K}zN-mK<2
+z=1=1n-BFjqPXfPq;e)f!IE+V}`+Vz+!&ued<nv{JPY<yATZjI3y(s%@_H&@JeXzd|
+zsQxnUeAQp3y|zs|@#q&yF29QU`|J>9bI8@klaQZHJNXlkp=$=5+eWUdc>@01#<}98
+zEawGoy#Cm$xUWZ8`>d}*p3Hwt@IbdJ4>>0^7Ww0bnfcd={@B}!u+2%Q?Oyi?lyfRR
+zlt7+D{fA>uJCWBPLwKe=ubpuDYK%s#JzBneGsp>9txn$_5iWT8ilD2{TS1(wY<~^!
+z^YP6YbykFMneXU41Ds}jL;IM#Gj7`Vi$3M~W$xi{|6-=xSH8l(4tU%^n>O^GjZ3<^
+zw+@kKPemHzAwzBe-Zw5p+WGQqqqK`79ZuNA0m}y3#zDg?L|v`YMxL+LuPg#z^L%jj
+z9BKlc?6uvUXgn!tis3{1TBHo?*&^?9Q}#J&&69^uiuyt$Xb0xKOj|$6`*xn{J~0!t
+z)CAm8zIJ=+jHZ9AHO^2s_q-x>&1XRKrKcrdj^q44Y0dv(z+bi#`~mP?GTtAWnAT#9
+zNBWtQXZK?s;!ef37)#aso~!zipx$H%gttih1LnsIC)6DhC(om<68D*$z@4krze3m?
+z0{(Sy%QSViM9|&j`VLoqy|}mLhP?e#)W1~O9BxK93LIT`JX_!UZ>y!HXeo-4(iW{%
+zwO7<`Dcbtf-fB~;MkJA{y{Wx7RU_11Nono9cY@d}L<l1C^ZosG?me$_o^xNXbI!fz
+zKF|C8ex#%p=uOQ2t#uilYBel3oD17we6nbfrMrx72N%6H=q$ESsghqQNZ}91eiOvo
+zS@qDy&`~s99lbh=(-%<`%G)?$Xo3q0{^im|EB_pHWBjuElkA6sriqP4ZDbId{}9~$
+zv`KQ9$Y-oVtVbN7q*idDzkE9E$-JmG{^*cAhAx4QRN?NY0Ee{tHl-EFx4rUhLEgb5
+z?Bz%}<9775No`qwpV^Z}rC(VOCWl1SBda~n^)RL2dN#?dO*GK6h!zXy(s?yqnqYUd
+zMDeDqCTkWAQ(A%M$iP}=ESE{I3O_0M?0ee&)i&A~@Q-X|6rt}K-=E>aqHqIL-Q+I+
+z&276LZ0+$GFEt(fdx37vQka~2j)H=vEIHEc#vHOXr`|uPmS>(LTKzv`rwK!nk+Cs=
+z6Kjr;3u^|Q2$p|rmG)V<lO9X4hdpgKvfe1H>(XVMVuPt?2asyb6=$6H&}DPOiYAIF
+z3mcfrO!d9tXLRvk?}d_`h-3nAKWw6Q@$V`pC*cye*aJTyHn)gZ4-+2rafIxAKY9$U
+zHqIh-8XSDN{n^-^w=fLsMQftJf7^z8LCiAJz}gpHf2L!co8j2Kc<y&!Qg7zjy_0fA
+zAB`5ionI}tbKG4!8_W=<x`qmPZZ36Kv4Mtb;}dO+eS@u@9b$b0+B$*00AbZ#!)rWn
+zIpi?()|f8G0p{b5G@<bYARdp;GeAnPQTzwmx09YE%3P24PMPT+$Gfcfn>}30y2iS2
+z9pHpEx<sTp<u_hQC}izv4<Kbo|M?K=?(#;+_S9W3DG~UCP;(LwppQEVZay0K%wel?
+z6LiT$sO|zDbDV#$row{W6Tm8mEqo)x)~$d)k~igN6+@+-?CaWf+8yp+9uPo28fEnL
+ze`7K7Tn&)ec&wiMbtAcg{Q$}4XB?R~xnt=PTpxPSE<trrgk{tCt~***13xCE?+qe3
+zJ=)opAZ@vJl}_>Bst*clCl9|wXV|$+rY!~F_TnTE&+wc}Uot0t`l8E6)<$U4g&ZG9
+zd;*y*qSw9Qj7X%O>+*=ugjj$bl^(km%cNCS>7D)5iO+8uZG*kvIY!NhIB4CpgedP8
+zlo4~va`qb6|IHq)yW<tQC0y$P`aZWNS_iKoI%4_>x&s~#5SoEl@s-9-cK@IQY?yj9
+z*0cROGQ5Ydh{16V>3(rCzew%y?6T03l^<xPProV0duxjIP8^!D<b0m;2y)KX*ABZw
+zJC#E9mmbCT@TUSmCYEr8x?s<Il)`JB+y9tMjlkqBGUjI`5N^MvXq`{p=lom<qU=1X
+z^rnWKQBGv#>AdM)QtwSNjsq$oIGV=L%*L(h#0t5cC;NxEeTjQALPAzvugjtKgh_&+
+zv2(LT#~TL@u6<v1u+tnl#BcoJRZRG4K<FVVPB$|vXEK@6_v5u;SqQAai)MX<`AILi
+zDt>dOQ<5^Dp-ylN6*u>IKfR<y{a<KFrL2NL-8y77R{hc!HLm@2z?t}Npwt8r$(T`I
+zU@m_7kp6;{UJKe|_GBSZJPN-QR2%q&bGcbvV$vk>vep2lFG1Y8aY3P~a9?;o8%`Ui
+z;1<1DcpeFoTZly9vbm2!!8>y)xXS04k&T-tDR$RJ?B?Dk7*lci$GP7mMXRA1966c6
+z#c~_l-WgC+-t!2*(P>+}*X&sjyDLhaDrWj4B{xEBg~sJ6FxFk8X!jG#1b*#$HSgMe
+zFjK&7AFY><#3-b0Jg?=YsNB3U(&v&}#Jqi-0UNc^VrZ^VnRO3zZ@Q?%c|$ZPjsE;i
+z7~!wYWp8^dXNuQ>&%%T4HP&`aSY&aOnk>s<?5i(H-MtM|zASHzZ>QO4%B{aY9pNX5
+zJPb{}O`s+i{}OPq0wf5H=vP9O;R}=A*}wQl%lW&?cYp^{OFeA@0zBSH#Ag$ux<Ya-
+zdyFHLhlN{@$bxFS_IJnte*q%zF8eRIj&icw^BE)s=Yx_CPK0n#2SooBD@OmW%uB4K
+ztfOOKZ#j)Mo&r^8X`CC__!4Hk@?I+0tLJFxpD6m3+ef>b0^&b6fC%skoVNH7QRQuH
+z{Hsy2R<%`JC6!T_5^f1y?!OUU-GAc~pEB_ocFynX2w=Epy4=1yoqwNPctj_>bRYcu
+z(q@kisW2hrJI0K0OeD4VCQx{CEVDH7d}}~ohrOKIQ9)tJ$TWJ|{~((*ouOf&tLccN
+zuY-n1V%z1Q=3={S;H2f?I0CW-U)8K&P=5<ucVJt0h)6GKJN>vVefn|Ogv5*}3=nn*
+zToK1TJB8^&w$jLoi2odR;4EV8#GwJ~fsiZt64sYuq=iT%V$VL7^`>|{GgmSjlBGRm
+zrDo$Yd$QowZZM2{eRGTQg3km|G5R;M<AJbDeVe54N?OG2az--F_+m3I$L^(#%sAaS
+zapSG<+3@;X;ZyQ3Xv~$gvHn*19QV}N)F`K!GPjbK)CSVskoFy?k^PK>;R`!sE2|F+
+z_=(Hv39{!0Plj(__Z);J0M_!ee*rHxH4gPCwsSeZ%UFeIobSLP%zfs5bSV7#RezDr
+zj0L_H^TXn!d;VsJ#g95O)GieMWSB%qdXeaH#YuY`>smxIU|mc2ISM~dRz!(akQQ3E
+z+R5}ATEh}Kg1n^W&J|6hbM<OrP6K{8!GFO+LI>Ayk#kh&B}n#^+oBRAv+Cd!9C|f<
+zN`b?$6@?8QmRiDaj{hloRmb6{oh9J%YbPvF;aT3rGjixfDMmh0ffZ|b;SjT;^Vj8~
+zl=-6cdhPse|5r<LBhL>`HqG`_D7Mk^zG;67p3DLKQr%Y;6OX&H+xw&4{+PBm>UD{;
+z6Dg-zmzPsLEm5ya`*z+CLcPsvQ8Td@v*(YkhXeHIPeUfgEBfdDu@-F_wt|5s`xs%G
+zpd$F~eO&9*2|N8*JofHat2w>f{fZkhd7*FEOn6b%(O;aLv6QYs=g8!}Jsk>XdttWP
+ziEFL2oOR`-T+hJNve7sYmo;2`nW;XxUGTovTy9tnb@tW<@jchnU*h^M0kO3cZ9KxV
+zpQ0k=IR7O1Y(6BfVtGlV+)hLM-1zCSLpBTzmpp>B|Gv&iZhk3PKM24#MB^P5dC_y%
+z;7dN#Gbzx7DOMpu$Vq#_R2{vJ5lT&pV-zt$wab6FZp`{L8+4f}7hE-ELT?}+$o;eB
+z6LP^y%uPu0R9S0De(NDJGenVcXGjrA&@r%+I=i%6!+rDBM0kN@mpUGqx~MpnjUp%2
+zZkRkWVaTN8J?O8d%wE`^RO2>zwct|g^nMu8h4wzYj+gw9z0)i;h)y2uYY3!dHGF7{
+zpf5aQ$~lI2Hm^9fd>F51(4nZ4RU(e3NArz<9&~kWuvWW&Yh-j&=c8G63lfdTLN11`
+zU5rx0cty--blkDXBp)(+)T>&|$aF&j%MV^Nkw|Qlv&4(*G{Ye9^?pq{7Zbz5+kc~9
+z-4_{LX>0oTXWjR%(tn0!zu60wnN=4jqMzW?AERS5k=%0k5(53y<#|v^no|<pu&`H2
+z0)Hhp--n!mN`lXFlrHm1mwF4>=G2=D0w)3))CFBJQbDo59C)?0Om;h^Bo5^PbGa|G
+z-&)SOokU|F7Da+4Eu`2u>HK^p7;6FH)x+1njF0As^J%6p9H>j9-;|{#q(`@9dZvaR
+z!xE1^_0vE0&l-&YISqAwf+c#o3)`PvTVK95ux1k$`CbfidCdQ><wha4N(E+*#oI1b
+z3*9?>goZgd`}ncNNXzxlJJ7S<gJz_{DHwRIf#UVDa^lwo?;L5u?{6tQ^0=xmM86ye
+z9ls^67AF?%Z>#;|WH=`<+o+^Wk^!O{7^8SOvPkXUQMDedrM83jy4~Mqr0(e1Qrzzv
+zDkbM1`os&=;>*rd^*<y-TEZ0j(8VXkp)|r|ro&RkBdX*hZM~jgX{r0Q2{bajp#VD8
+zNVm0uMG8hXDOY8>0hSYS7GEwH!%@-oqgz7%Ly}zKNXA<SLoyJ_92!A6cT-|dxJeLV
+zdnU!Ki%&p(&FD~i8Cw(|74q2=L_GKDH|ED$a7H`_Qw_otF-^38T=#xox{HT6Z^hf|
+z^F)_7=vKb*v&CTWqtxkJR{-{tdIo$E+Y$2i*B>;^K7kTce1=cD+Z(_sR1DCJ=!1!9
+z?k~(M8rO7o3)8P{vLDj!O&02x>%b3)d_NhzOuVk6Tc2iO8jk%}_u_)}!U<0n`G}o>
+zDg*^jicg)$wO3IYSa>t3|0+hKul8MsAvxRU$?@wjuh5<TxdLN-LMwZCtNg)@q0`cD
+z@UVlViJO%FoF90m936b@Yxtvkr>lhx!|1t&dwuFDzSop!dTG83g+l)8WI9>=OrdG;
+zmFrH>y&2VfweZH*Bac6P&sS?_<I;;54Pj1tQU9SjpVHt>Tvz~Q7=y@<PYxMIziNvG
+z>vFH(xOw*>V)bus2JQ67O(uSB4GZ+ff^`4DK5A``NG5h)c<(oP4j*MU)p%|k-NmI7
+zCh8HYWYIoj&e$Bg`(#m^yqZm1pElRm)o~b`P0^oIgwV?i>-X|m!DN#>&C|+$bwf}(
+zf>lf?RkA&&KyV!SNCK^c-nA+O5uk^#cLeQ&adLGUITq$;o@jSYxwb@NBO4~J%?H$w
+ze=xMA?t<I?nTwR0AUUvUT}K=-{l}QVzGLg#z#!e*y!W*q+YfoP(ID;ay~rcHw{1dw
+zxAT0@?0j0eAYQ%z+bs6j+zbDGo)5EHhQOpxZG3r77gZVU(JE9GJ8vJOiK{fR-ODb!
+z4I5?0RzjAy_gg%FR(y0gwaBaX{jKQv-}Y*xfU$9&WGfe>#h~tE+xS6FlZu@J(Piz8
+zCaCSVa&5tU)FIbu)3bne?iK!>Qd7Osl4heQxl|SFL>`FuD*%r4G5jlCHWv24=5hSS
+z2hQq;PRjGP3B&TjSsNIaXQV^AbBX_U>gDha2im1MpXQ>-vgdmB`Oo}u;Z~=!H&E)`
+z_HE<bFxEPlMGl3RryPP`ubX-?grEj?KN$2khw^NsRte7M?>+sp2m(sm<}E==MPRy?
+zyV9)AdC~!BHqx~@@M}=P`lM;5PRDdrPl+P)9L7U<n{H1VC-^Y8jwY_N=}P<o8?6X^
+zjq_{;gh0&L&s3cF!;ntF%UAy|PminZUB??VJ)I?|gp(Xhn0vh^GLCD7drouEWf#NP
+zPBLWK1`jA9pEtoALUj1fbH*j7PIK7(3-n`}S0GE2=R-e+-_O+)I3Of67z>gx@=LIo
+zS2|?RbGmVu{HdU}JmAe+A(PT^gdMKoB!5|W>lRGu)ttdrNKU0*VM{C3**{fzR=khK
+zxkHvyd3|jb2`bDZk9S_E#hrY%psco+_h)Ntx*K)FIwp4eo~Cw_g2?qf0@n?y<H!Kz
+z<K<hKe(*n~1d~5prdNH6i}oCPXdHPVu$YTRzxhjskUFWbHGTp;_21vYmaI}t*)%{C
+z+DCHJF5?|1Vt{SEiNIB1u34r5_}hwFZ12Zd;P1itIo?f8x!5Cq9T4Cc5A1>MDE)<%
+z#hcf5vkiMIw}`TOiA*9B&CM+S14L$e{#LTppOUptv@M(gK)!EaqM^Og{CM;Fc!jPc
+zzxtm?M%@VjZ6lvGqkKSfxf%fUZb%UtT+1F0TMLP;NQ$68OzOJ)o>Q>!!EA)6Q{w#s
+z2YKGNL&F8^Q=Nkp7J0n(eh+$AbRsxLrrrXGRBu^Z*gXelD{!Np1ZkBz>$1&@MY;6Z
+zWq7E+%_y(hf@IWgnTL&=jojjS6w08^;`#MW%v!)E=p|n&73dYc?R(^pi<ssSx_s#e
+z=g8)U0{Qx%h%Lxc7@uw&XbxW!@MmamqX>N%yks}AB~-m1xQ%aVv!dnBa#i=Tm&6PN
+zI~K$gpZ{B*D`_ZD@C(BZ7av|<C;`$Ywaorh(99V9((UsQT@p+;{W}<*rOrNJxhwnS
+znf%XQnaLAjHl;3~G=yE!snERX3fQG3c`Cr^kj%P%IB(G%X?H`7Sm!w6ku@ynK+1;J
+zj6+&~dh)OyRaDC%)VvTM&@Cyafxvb735C((S`N{3Klmmm;H&^*m>IfKd<4^bxY6()
+z`p(Ii$acAO6eX9BEv`OcJQl9de6#B^`5PQb`ui2=Vd*NZZ=`YgJi1vj7QyjcZ?l%|
+zSPyjz>20<5M+`7aOkP&ko_~J+Q`e{hQRKgUWVo;v0^=k~xs|x{u?!-ICD#W>rcUI8
+z37dKK@R9*nL6ebvK1k<5=<g(G(>$(~**I@n=?Jw5Ijvj|bLHP^{yhHMd+-A^FIr`T
+zrHj?+<|cF$@ylkfz0SQBIb;?KRMakw?W&EsB#{5s==td#Jsi${%DP+QKwr;>VC|*f
+zmFFXjAM62m*Jn#ASx8LXMKn>K^8OmreDLs;<cDiMV}7IS8i?A3193va@d6=Wury_8
+zdNiae7yh{^ODa!6<MJKm1LaDjg)E+p^nq}-op|T4(;YGAOnwAvd@RjIgOi+)MQ@%c
+zvbF2-gM)ruEkBhvEi;Kq_RR2+aUQ_}jV2#p+N8cq_0J^)Sn>ionS{^nwbXoC%bq@=
+zH%|uHM>GsP5N0x1e7GZSF=|AQ2j5*JFIO`-(wD?AIgPl?O-y|W)SPqBf!`t(ME4wV
+z^63};wQu1Dm?HV7$Geg>6?%d-kJUeP<6R@mB{wK^HRFh!>q~RMF;Kg{3itlAE}3Y*
+z@oBcr)p}Q_xqBstm*v)F$H+4q=$X_?t=)j0Yk99zfxFOL?3?;^W!L6$iVXQ?3a<O@
+z!8>9>P`QvbzF#A~!s3&i(x(#ZbjA*u81<vR1`Ihl`aBu(8V!*cX|kQsDB#!<IcLb{
+zO#i$01}FLDR7JAOFy$cvvjsf%VU*XrkoX(h)=+1gH06MSe%+k!gh@Ncf6x&pA=F&`
+z(x#RKM_b?po^7oz4a?+HQGDQL!@Q(8Kd)geohvL-FXSb#H=pUim6`m@((kuw4R_|Y
+z-DnKguKLWkD#|>Dya#y?xsG9X*_2GtWI^A{?)P|w5T&5-+iACjZnAf<&ZJVduv=jK
+zgTlkuogSN)R2#KYC4QP4cUCp@F3_<yCHx?}6qu8nzgUwwgB`@rL;355AZCGyfj-a{
+zj095kwBI}vJg#9KD_WP*oag!|(A$9Vvk0_{b;I?(*&2O-wn9#YJD#bc<~qSe$cUvj
+zKkM_!WP0_!qwKyoosmOg0OwB_ECxH~?;kTHb-Mbgq9$!<w^6UKDGIVFtG{hpWyf2h
+z*;PkFK!!%G*Ni9DhBp#uR{<VIR3-A)uabXzD%M|@A}{T<{+q@hH(s)vyIxcO!MdYx
+zC|~5?KM$w5Of)A~FdsG?5W)WIrgEO#o<;iuEzuX~5msG&uqQJy){gqiCQaRR>x;2}
+z1<2PJ{w@20OlIqk6->1$H=8#vF9%l!Cbqebpsu-lzwZvW{gV===nfSNk2(@Rzp3@d
+z;e*>7Se#FFM@ycOoMxlDT*_-g_P5OSYg?#|DBS=b`~x?@#*T70|1o+geJ<cw()7<*
+zFX6EN&uJ0&w85op58yV!c=ZgpbP)x2X+!|d_uJe!`>*n!l~8064vtAx34I)s9JM^<
+zvN<Ag8Tj7;AIt^!BWogg*sr3R!zXbS!Z_Ld!;L(6#OZNdv@NOOwZf!ltKR<i%R{<6
+zWWCWsY%%$cD(uFNkCH^{F*qKk{20(Pt$zc4&dVR|UU_RGN1dFt`W!y?=tmggiTooS
+z6}k9fs>|fz;w?IoyaAeRlNUKQ%@tcAU`(H8^Rq$l+t+|2rTUo9BVNfDCw$n7d2v)d
+z|KYArm)Q;*G=!o(c&T#K{OFd9Bp>$2STVN?)lPZf6)eu2L+TvluEthD@?VzQQ)k{;
+z8Ut~duzux`1>7ztx;}or*KDe#rIn4c;#knBNcYZ%e=6%b{u}1Q;vatUtg#Keneo7Q
+zZ&CROQJsd8U+rHIg2Vv+5J+#_T*c0=T$<5c28R`;_<hh_m)E}tU1JN+&I18=QIj(E
+ziwtDi2?>??HR@V<^*S~GSaT|!*x$CNpG=0g1xYT$wYe}HXw&b{4H=d%iwtd@yvV=8
+zXZ8YCN!c$)FglH0m<CLS_q3LM;J8d<{<Cu%^P4g*yShO`MLWwv4tv@g^3C#J*GGwg
+z5#Fp|pg;&<?vr0Z=y0Uil&RiB@SqR7zk0e?$9*D!e{RnT?dLS$rXx!V9d8sW@k;p`
+zqLyF(4@S3OA0-ff(zY^-{QX5Ha8inQvgXRkujtBP`SqN8dP?V{*DK*GRI-wW3AtMP
+z<@dhlawtkFA$)p37br*wuWLxu$4KRD|4F*|K-=EJ{&8;+FMA@gP=vo_AN?Y0r#`R2
+zMAUH5u3*eic`_zj4HmeLMud&8l#Q;7%>9<@vH?V%I7<p<&%K|F!w#2Ed2WNZnVr7p
+ztdljZYfm3KDb0JH*4=%3kf2kaIulgiB9PDVmWZ=QSOr-J<aCXenzGJ|<_)e3y{)<{
+zj8*p>WhOqg9`x`mwkM8VKw^eB0rlcMdgG`?J;%r{CD(!DXLrP07c-lTB)>XX`Dgof
+z{(D;c>|cZ(VH|2g&kakf50Yp|THoev$g{=)<=Ov<yeuy}z7P@jdxwqi7OB*-3mVqR
+zt-JOjrkay=OWl4`^Vn=LTcTKPfd(k*=l@*-;(*MRrwnbsb7_Ka|DGyFr|#SR<#uPy
+z1--AAWYCIX$ALXGD3)M*vV@Z^&k!IYUvn;OM_!OGZ`lk1Uthw=K|6KNf17Ydz^?>s
+z%9klW2nowYO1$WmQAi;#fBMfqo_vQQWksQN0;^=|8O}2{7gZyh%tqdE@^T+~T2yye
+zSmeTHb@3@~Q>;(>vTCwjeEhjYa>+>A4e77m@l%Sg+}GdwJ8{p^*c9mP=*dvfL*>%v
+zH)$?*0$^_?Za|d-93;E)gLJkvz1kDb7u!Lw=#x=p;jP`JR;<tXjpcr;Q^x{9|23^=
+zP`5>1@0U0ZnLv=j<<_KMtGD_5duy#8s0%s#7WUFUGOBX4g}%5t(f#rvUa<wdRo-!i
+zNIOL`HTi8%NEV()pg1Zh%q4VoT8VS2{wvI$^n0EL+XV!J$XdM$m7H&_O?JE7>#Hta
+zEzD;Qh_3Ay0f_78?~D?nnn(MN?#OSxdtYmQCvyG7exJc*@KYl1p|2!H9Teqn<!MwG
+zkFHCX!gx3Htb3G9k7u5|%34?6&1kI<n=W$)>VGhbZE#60;XRktofDwL0%v{~`6T=3
+z<OpDkXPmK|5SYYlU63BG<Yj-z#Y4p-&CSShe`D8hq-<9BvP{0YGQx@$sZO{f&xSX_
+zE@B#i|HZDKbdC9uTH^eL&$|9$?Qx(;G~uvi^{A)jF@h*Ck`^y8^!-$LrQO4H0<MPL
+zHY-3=%|`7sITvJhh2s|0i2S0Za-q}aCqWYZshh_vC{u<CcyYb{8&a^}*ee|OG0S!X
+zGP|U1jPc^DZ7KUBwQ<(jja#7&v`B%3Xwgmw2sbiEidfV4P{&*iqrMjc;GO8V@f{XR
+z`OS>wXOSq+lQEs`ZlROlJ<1*y_w^U7v^z;6pII+D;!$y<t&i6F{Y;D(nD*o!G41JL
+zkgY1h1t9CWGKbUY=I)U|{}18SEIoUsc^J@-4~y@^Pp=Y0OYE8OaPY+*#ktn_-tAQ+
+ze@HAa<SUECwd#1zQ5W2es4jh5F>X2hAe|l~eUpvAuaasxkd{}DyG;GK`7@jeBiw2B
+zB1d;#;5gr;2=&dwE6_*x`Ji+@^eatY@+}*uJ7bdOW(D2sHeUl``|9iR|6vu+rc6Sk
+zU&-($_ia8XrLkFzXDZbcEa5EUD{1J8@Gy$rsUPO<-@4hOahADfQj|H?G<N1Ler_H^
+zDU%_pDm_?oc!#ROsS#cgF=bpBFU-;Ye5$&2@%{;#%UnB=ASUdviUccy4>;~BnISpv
+z+3YZ74+9hI&FWiwHarq5JPHebA5RZ&Ud)gDo+OJl5ym4o65O)V`TF(J>eOKSKLw0$
+zHS&B}UMqV<Ft)Ne!+D(L|5iQoVzKl*+x`yx-Op$3Jnepw!Wm#H8tr*?nzvRkf0X1O
+z`*VmxT%Qqr9fx^+%(p$Guq18d8t*b=R-xPCYHuL(7x`ceq2{1~sW*$U$Ff3!OXd0}
+zANCdch-x5!&GTJ0XkrfLNb))QyGyIuLjMqJu3h5`uLk(oL8xUnF^!{u<E=VqYt768
+zuPnMy<W~uXnW#aFmg%2NFWyU8tDG1=FcE`2yxJ*X4bdSgxpKRSl(8BhE;@dhe^JB#
+z#yD4vY<&b)G%FUPgo*=5s)t`b-sbvMV6QVNwg9F(flNKy=KIwhF&s|BxVgUA=lE}5
+zJ{a8l#1a2%O<blTI5mVkBLzRbG{vUA-uPK-icQM}WIutlEV}F_Rf<7YKeUxFwK<-?
+z_HbkWKpILwS87JJ6&*z%zBJPPF~Pi9*t`aE%mB-)&Ds~#CHd-6vGm);gGFG$t=Nwz
+zR=}_SU9!+{xvIcy?KE>mX(SwXTb?yiA?Qfy3Y<wqVVK{4QKL8aT2QizFwYqK43dam
+z{UEUV%{*H>cDx|I^-F+rbBB|_B$Woaoz~1LEF}=M3{&2KIQWK~02WKN4qz&4)F%5X
+zY%ivdq;h(v!S|5Nhp>z#`heY3kD*-MUY3<=I#SBV4j)nAW%o|BU*~qMjQHMzGvJ=x
+zWCTOS+_#7L<a@*K9uS{mJH7P3e=1Y%;RGj0P#|~C4eHc_NVmK1Yja6$`hS;F=cPra
+z-5E=HaSTq+6;`-I0u&0W|NP^{^t~-~ljf76UiACOxagN6iuk1Br(w`6rcM4L-Y{T-
+zJBnqn<}uP%Hb^Hc{$jtc9Je@WC|02J)<y&WT)&}v;r(~uzp)dtv21Erb~J){5FN`W
+zGBi6Vak48F?N<W8kbWjIaX>42)t}5ClGRYIZawaYuoamkXg(XFQLH4J+OXZtPDK_)
+zJxee6o5OsbVJ@a25LWIKAiNO5UT}cEW`fU|pNqUj7N;ir{DFntA*XyZEI;)!4ccK2
+zCd)+XDjYiGin^;jB~u=t^A2)2x)gvKmxPE8m>!_S|G68v_X7F;RDt3WU9W;e0)FoT
+ze~_V#mHSW5SURPSX_wHSJCF~4>oZ+8SzdrumtnP&nJ}a8y0N$Rx!29}4u-Fj1$iz)
+zm8OagkU#n~zOQ0qytdbt%;jGFAp7?C7ai!(VbD*y=hZR;k44?5J(4$J;T`0gZhL>)
+zV$WQ|<1ei5nOk;{1sYx6uLmQ@iE|tpXH?`HJ=$pp4Yo4Jqts+fP6!Um`i#6$+vi`t
+zgl&3xvLqXceHY_CwH{pG$^;Dvs<988VE2r6!AG~!;xr$yLUjSfzzf6n_7OWx`+2Ay
+z{;=Y02M^W8;H$O8OTEbQ$dMCb&UU_Rl8<HY4{Sc)+r%Q>VVc&IM4v+{NW%gTHlO+|
+zCF3bt^;xA;!fFd&j55^o>By|q3!LeHuTOeQaHaxx!7TFm2Ra{6!AruZ;O+y(Ci4;q
+z7do-4<<*6*kPA6tYAE#}=lZ*h6(28|%E)t#%h|>E=x@l4<~Nt1IFjNrO!!b87z1lo
+zD!DvOs|om|{WsQr2Fxai8gH@N8d&@Y6J`UD6Q`hI61h|+^boe*W3`^`2bBe-F}u7?
+zoK(}3OLI0INuP)LP2lUT#nRCPttz3wfk_=J+KxK)_CD<Xgl5cpm<&VY=V0ooqA2kQ
+zVx4}jmXE?5Uz?>5DM=ejIrkH(n69xo5%D6b{?6IolHU(d5?eRc{nk~d?cB0b1wdKf
+zVyGT_ipd;X?fV!kOzv@xcDYJ!Uki2aUW}C(_^D$fyFYWkX^Lw`r|9qj{dwB(*IOSW
+z78kI&O~!cf$Wj-Yv%9rmn!4*OC))<Qw_HTGRdc*Prlj)wFfGd~yhP`?vGn2Kodykp
+zu6bzf4aJtuOz?>LtXK{oMr`Ve($nQ{Ir(w>H{aEp`mAR0MVFgShc`}nK8su<%)ggp
+z&gE|c;<*EonR=>2zMZj0vdKmS?`&Na>v*^A`X?8Uaya}h!Uk%R!u0u_c*$%}rnNt^
+z|1n@!yxbX0$**2BV-i!Zeus^@baJDmt;j3%5{ps#o8rYEy*Qd4DLtZP_g<fyyk#g8
+zS_4k>N?7z=T!qm`*2M__vzIMvLchT^Z>X?Kp$uG~Ol1v4+_xil-XZ6>)OIDJ0##3~
+z9BCnR7c@>!6-1`qF#j82%VOc4dXw)0wv7JlCGTFrY?37YW8A8?K`?~A)TN89SA!ER
+z1v4m*FKn8djY;atL}rl!;i?EdU4<CPi)E7Z<^t^k{562|0JY_eC~o^)o0Gprxe*MC
+zAhr63_dx|x&Kwi5gZA{&3;f5_iT^uy(cELbui#c>aHO;*Zp=UZoID}@eOzH_UW}*q
+zT^sc2?{~)m<!;{ubW@g^zg!hb@>%D)q00RepNrmgKHjIGi~cavEi^(;x@Q<mIgd)o
+zmMpbCGd`U;+Z^7LW+9<|MJ^E6RQGK%8NC)#HYlD?vTDm441eJ8;c!mRQUo<D^t4#N
+z@kG8wxm-n;OZr-g2UWYUtZ%Ke`xE1j`72qDjae%9_9MLMD;qk@YTV0|I2#=Q!9uz!
+zH`6bUC7U;PG7jIJye{D!hIa2h$%A$$3`aDtRSM1e?8f?r+#zTjq`!La0e{~(9MsyH
+zqD$V7OMNnMgPDY`+-4xH(^9CK*5@30Up}5w9HdYMI7s%hKZYYeBrCFox&#c^c9h&c
+z?Pdasx<egv1wu<xq>km6Fo<4|rAg|T%~JZ;Hcx}(UMjjs><rHpkBwe^h`2~&2qZcb
+z?SScOa-N)w8&Q_S9{sRZWcu@RivLkEMiFzLm%P~3EH=&E2FQy4V{M={QWJD!G12r|
+z<F8g8$c^RmJiYpQdtF@C!>30Ue3ip@e}I;nACN^4G}zhGsrIY6={farkCTopZuXt2
+zXbkT>lpVUcf&>bqtn+kR;pQ)=yW7j`o%yDN<344$)hX$%C7Otvz}+<}cZ5qv0XL?b
+zGaQu~r&iLxE|$BI*5j5mHputjzZJzP;m+$xv9IJZ@O-VdN+-sQW;u%bsK?Sg9yg~k
+zRJ|gsEWXjf0-{k@U*4h@tw1X?f?HF=D>!0cM{bUcU{?km--63An(gE{kzV(f(M>y1
+zy|AuobHrc9RWyktPVchcf{%wjg`-8`HFme)h7`Bp2{pIitV?n1UHufZlRT}-$|;)5
+zbq}V)so@DHY^3=>zLeR#R><sk{hAIZ&Lh9DqyCf^zI&g|pnoh)z4_o}Ts7$j>32+R
+z`lNG2-AprIfV8f|O_$d0V3PV<QF^|lD3EDiD=s&58!kRj7DjZR9q<wF2LzkYV2DmV
+zbQ}?@85Fa5*MGQ5RAx}VLDb1R;U)hx*u3LI{}TC*H3`Ow5BR)7nq#lE`$!!56>1&`
+z0v?|Ndp#V{>(O`CB7Ne2PX)Phf8L@tr>fLtLfEZ1;Y->jpF{~~32HR+JckGl5Qc<|
+z0x#dru;E=!yO8h6yG=dfn>9ms(Dh>UZo3w%Y<Qm+bwg)wl=mJx_VYHU?8v8&0w;MI
+z<|3KTMyHH6-6{;E&P*&s>M-^S$<>q#&?aDY)q)PV>N_#(CoMX9_`{uj{&QlED&kqt
+zp8M}Z>2dT!rws1-^zm3q8ChS1`fh-c?QW>i`?q$QDcj~pKFbrEY>U%XCgzsrOJL8c
+z2CwU9p4UQe1$G)u80ZIJU!llgZqKx8^;JOE%$hLd%DW<1+3m7Bdyw^pe;S&$cD||1
+zbBT=exkX|kn>PyW3!`n+=o51S^LC&YR5nOg)-`#OIeQc?;KUht=G&5vRyWqXq+ZlO
+zFxCbGM|~bRC1RqWe`rS5vnSNR@(ww6a_4W%-BFoujElQvHAu=-=-m=1jY#EImyuVb
+zbsqdM*Wj<t8Kb$vDAvg!ml##O^}XJ4j_TTc?BRvrT>aZhYMq?CIDK{y;w}km)AeW|
+z=_^{^qO2_cv!@R&>9!Fv%4hu-A0YwI&rcr#)S;YP|6(3ID*4t&_@HD%U|e*hIRDtK
+zX<y#ms?t{XQBqyh`I;YdpHaHIn)YTUZ5=l7NaAxrUJF8H_#nx-=!}hR`W>9GDTvt!
+zBtr^JA=|OyewvpaG8COs>>Uw6Cz(3Z`(nU^3i)OB^jmpSl)?O$aprnm#QcJA0~K_s
+zV&1G^-s9K&7WoI{{ZPi}QLLQu&Ixn<IM}%tKH{Q^Ux3!4g>3c|6UYjmw<2OKyA?+%
+z`>X+f?V6X#<hS-MWK`f-N>vgri6BaeraGh@ip+D~6@%<yOq~Nc{e)R79Sh4OaOEk7
+zbT1C*<Syva&p0N!<IRkRI!>a_ZG7qb4>*%mvt*xux3cO!E9sMNSkps8T-)^u0P8YV
+znWAwq1Zy9cSGeF4Yu)U*$7So{Yxp5Z8fWzo^;%A!%iT+g=XgLaDV&ek9s7x$gfws|
+z)hR0>zpisfzz+ehXJgfoF((nf$k$&G{<~D}zx-%UU%8`QSn=BU(v}=v%V0!dm3jE1
+z6KtVv8-XxsHd^m(c$xy@$4wUv5_Ap8;%o3jPQ6XFGf7-M8_0MFG~WT5f1nO>-7JH@
+zM(I6v<&W}FC$?N^&LcD*al;%2#nvkF*g@<AnthCYqJ0|}On-Zw$tmZz-BXdxg5wCG
+zY8K(FDb>7~(|7{cT@UmMVHu`qP20`ygr}ze$`mfHVg<ubNSwna9-HgfP{YFPqDcJt
+z^u)is@iri~&$q&V3n+Zsp|<gt{cBX<3cP2OjJ{CuNA4>^WClS6&Qan+dAU#(Sv+c=
+zqq*%;m6TZbt|1U}MaTZT=zLM4ZvV{R<rH_4>MOF(Xbll%=+U=}pd}x5#p7fzDCh11
+z(hfN9%%<P$B^sF!8CF>{YOI{_8V6srm%L<R&VVa9@2vUd)ZQ1)EUR4Hs%72e0E5hk
+z)#wP<1>yF9Rb2*^jAgFmagd@yx2T?5EWwx29`^BFY>-4NMyh}Fhk=VPh`>8Uxzh5t
+zSocYxmgwOEKaWHfF9KSqrNC)nzV~NQ@lxF)f#T39bXhh~&X1m;sfEw{*7|PL^U*YI
+z-&ujKl_S38aoG-|yldr0-1@z-;tuTsj(ZXz`uNg^e+xuN;8W6Ze(h=9a$BrYQ=#al
+zt*&fg&wTPZ@z%MsB(_G0^@=+LoL|)CMgFYm-5BB9A|&A=PNcM6R>wP=7YqQ9{UEQ9
+z>FuH46Pw|dYbO)e9mb8rt`=gspHJ|zx&1Y%r;d|qrnaYi-LfYrF>{?<c^lx2mc(iD
+zd7HW5hyyvtcDFP09m0os9P#WNFebzJg9{-Qa`K9mco2k6QlUE2Ms~x#Pg8ut3dMti
+zzNLhnXKt(iWhsAa#(V2ZWtY#j_Dk-ZVE-gofqVEJ&XLkNt75=QXQOrQ+N|e?Du20-
+zBVJz?J|vcd<|c~1n5I}{+en+mgwS}={hDe}(GK_Mt7gu~nO!;&^~ZBrOwvW`-qF&w
+zi9`jhdB)TA=?p&uaq}NDRH>-xUrEc;5j(mPBCgpnjl6HmpOi?SrtRu{>d)BKS*vTW
+z&5<v@LApD<)BMEs?W0M_T9z+=JSxWX!t13gXrztuy_(0JqOSD6o_)bO?!tjJ|7BW#
+z!?H&!ca>oD8*U>Fp@LQwh0Cz%HLV^GVU0d-K@E*33MX$;!hnBXUML`xShqrVj+d4?
+zg|kYVR=)LKpf6wBxhSk%U`Z=kpWN9C#-thoPGIE|B`apLszWY~$KRac+r&=T6|>y+
+z4=R(tU>;nol0E<0PCb5+9K7hdlyV^@dFw_QN+t6|1rdzqLGhp6O7fCXk0k`f=LD2e
+zad-ca2-H+IZ>rp+sIShR-mlo<ad{L4cB)^N#Ta;G`u~O2Bn+QqQx&?NDAZ(q#onJ8
+zwWz&cTnp`4a2|*risN+X*b|q_sdO{$T^LI>&hOakhWchV1s`qC85ICNI}2MIvu5DL
+zMsKz}G;m6Idg9zwxpp*Cw(|6(<c|>AF~*eo%&#k3XXdNk18naFZ547J5Kg-G`O7V$
+zT~t>4OeysVrG;$1#XJ`*>4c$Z@-~2$&m0e&z<o04*l>a~ZaAR<_com9J7i0jkLof`
+z)GsApaq;U9S-WB8GWd|LH5ETF)NYxx_ee+)ALNDWU2cJHC%<S9goL|xk^BQ6S2=%+
+zfT<5o9o^RrQ-0^5hd}E~-V=v2Y*#6J&S_6;ox_Lhes%DMfo%a<NM)c_tIII??asS#
+z<{g&}3XUS>5zZyimF60qJzulGlLac-gu`1|hk2hKTBq_+*i$F-I`Gl!WVDhCmNxXJ
+z&N)!smsL$#iER8w5*a8m^P&0E{ob(dLlCf?#ED0?LXeM$ixGC|>TzWE7m+mhVS9x!
+zo6$X~#@BNnSZqU?ymv!(nHgm-?`E<>3prq)W#x7wA1kQM-AC$VmffqhUa|F*MJ)2}
+z<$Bmy%a&JJ3+_sZOEq&K^>+>K*@n`3|ED}P|1ZWa0JA5!=bOG~Fua%P5qX7dL%lAs
+zOQ;Q8vGsQTxSJZ{JLG10)mly++#qDttsB7svh<#@>@J9dB810c=DB1GcUhW)_oRBA
+zF4@E!x&ap5=Y9_Arfp3eNZs8==EK=9mZ2Qps~s`vejkPh3OAq~SQvdaZ}f)f$G5SI
+zH7dhKg<i!tvr->|>SZ@^k4D~{E8xsdY0A$m8-7oY+-hGmDP_$iKKtt#_so3=>0cA|
+zSJe5TKg3&UNSw?X>m4C(7p@=}d-6RTN_4N)W-=hOsbH+|ZT^PljsN|t2oqjvq&);Z
+zYItJSDwgVBbSbbR_Qj6LrCuVVObu;T>=nZ+E6*OwsE#|#Sy#+hzdfgMs$EDm|E>zg
+zI#{OnJ_i7O8@j2JY;%=PZo$UgyP+{V+NmYuVh=rDKbIQ1Xx%d^q4j(q(Pcct0XR3p
+zbpoOqe>RpDr6D8p<T1yE)s=)VNklj0)TIk(DAI*l<X>;2HGhlGOv%o0tS#Xie7(Sn
+zj9wlV+}M~q%p66oHeq5<n>5{Xx<(d=-1Ebq8ujz=;{1dNAM-x1d@8RMdhm^`PUC;R
+zt_P12xH}Zj&OgI<eFRh>>~81jO9P#4UvF(lo3t=|HkV_S%Aw#DzuVm<#eUK!Qrvwq
+z_AsRf+h9+gvazCtIFFW9^!6N$gP$A%g39%_B()d$&%+ciUQDC`ZXi88`TS>Z2bfpP
+zNMAo(x&M{(QyL=mqWa)MzCts%$-m&;3QPsf@&bkzGP?=4kl7{|#iRe-$C(~8*eN|k
+zx5G#uc4~8-$L73nO>c;yI&{erW0x<Yvv2uxRgh=d4S7w~j-x&{(5(>W{&_hGZcqJ?
+z_YfMFHQDXH>@+jP;!*tP@viBsc5<I}6M>GBQ|3MAo_S=E&78*PVhS}Okr!70_#<#(
+z0TjFSlh;HVv(-8_mCD}gGQmQ8NML>}7#-*symD7whN{Jye!59@<($UEDVRohqAB{P
+zC-3X2|AY^=KpG7w!GjOHTlzoDI2liGI$XKE4(Rr^Xx2qMbLHl)gMgm7I~4<##U6;R
+zNwB>ZbQ3uGE?Bvt4OgCwe6r_&qg^vB1jq@WgncBxk~ExX`EU4Ro0^vk+se*;j~|`q
+z_VoTbF$IX_ryshRKC(U_N#H1={kXZ<N%aEwdF>&zFN7z{?z@Ksqnzm+jT$-?wWs1%
+z)d+RLFPQFA%5yBg2r9cD!u|QNN#M)7%SJaPJKTcq-+prc)qORt)yGlFjjYSeL5H^+
+zxEDg)WR-+EIBxrJzk8h;_WDt{(~C)}T5p|Y_FaPQdyf74{&4G&`k|wc6EMKw#d({=
+zK0!v_sHFdSU%k73PULVj#{1k=KAwa+vM=a9GNV5)o}zrO-(<!FHJxT44KJ8K%^{K&
+zFr?Um%2-md?b^{MSwg{nG~NG%to*WE-QV|q-@S-?#gA7X7e4uK1wnzd<E*j=2B`&k
+z-Tri&Gl=yz=(gei0}y&|M0(%O<IH2uyJ0Dz#HA$kot=wSQCZ3#sp_O=5WA$xr_866
+z`aLc%E@tVqlql2IVODhX<VS6riIIo(qa~s!q-M70jI>TB)y`6l1$Mi*q8X<18SJR(
+znOh_BslEj0%<P4Emt9g>qYJL0-fMqBdbMCY|DbJn!YOuFlvE_`);`<`|MM*6<@;h6
+z2(uM^5!p~dC&u+%7s0mi&ai&oaM1xI4J3hsz!%M|-JVw30lOp#+;a2j&xY^r&kwrN
+zeJ#%et(-HRUoU_I>s)j)nE|z2G>?3$FR&4io2&DNm%q4&zd;!LH~4V;kI9n#CC@!r
+zR$+E$6%lf`a6X3qN!&U?7disiq8{OZ3&CWVb&?1BD!k_68+U8~<XJztsHbJ!F{|I;
+zvYA^!UjG!xbp}!OXTSvuz~03ByavXu`S9Va;}rUFP7luPJcF@}KL~oOq3hIW-lt?C
+zy*`4{<?ViYejHCvN%e)6DuNbAG`vjZhUf4@a^fz&s9pkBeQF?u-0;8)x@3axD)zNM
+zP5*G$8<60t<nIel)k~h$=^98RH#`I))ldG}V;%tE>o@<n$`oflghTV;I^$#wfrjxZ
+zN~oN*X?|Q&9B<XauO2&PRODK>;K$3StBZ!0EUG|851M{hSq~ulf5Sq;xP>$SchRbw
+zfGdrI4dMt7K)_Y9C8(O4d}q}~0Qo6?L&^UE?%aPA2`}5gNg2dHq?-3MiwY#kn?>gI
+zVJr>@<Gscce!6NTiL97oWNLCAQSomJ?TpB`P-KY;y;5skwl<Vxg1p06@E@1<Nj-F@
+zpEA7TSr=2f(4ZZpT^4(he<$Oo>!R|WF*s#&T%&gA?!GY`%YNY<G}-&c_@#b~pq#r|
+zR1zgAf;6KXi9Qr*aBqs%+8bMr1NmkqSHjN>CWckzv}J2D1_G&96>$=vu8jx(FlPdK
+z;=<V^gIdsYg>#qyf_Fk&=B4@$B(V#mb_=~m{a2l4ma*3Ir<L*$NMzk{O+>#|3{&>b
+zdF1hY+*6m$IYDQGe(TCQ_py*13@Wi=ETpeuU1Ifx#3Qtzivb0@+F!~BD~drcn}VFH
+z=#lPOGiUAEz#|7u;rh<5`iuGEPKD1_{X!O5?-J{G{~U|hIM;W+aOwTi7D4HtX&u-k
+z_%=ciR?=#TSnRd?U=*ENhN%xr<CuRS3zX;Gt*YS=&NGP?tHy{g74mzRF9@DM%@6uZ
+zW)3kz_`LczvbB8PwR_3liG1FVq*yi&=<c}amXag&Q<2LXUC_wU%JcE2KUSOhXFL=1
+zn)uHI26<X?-7reYm~&crbjX{Feypb<yMNl&-Nj*8JIst~Fzw0EOw2THlbEvd@MD3K
+z2I3bayRfz^EqY?8U*y!FVs7R0s?&>uo)Y1#VRt?~<D>yQr16K)CO3sH)BT!8o}Hsj
+zh#Ca>BOb^KZ55ki!J3s4ipk+gCqiMz=k~;Z!$n5|dFU#tbE{gxy|2l$1NTSCp+0=r
+z3q}78A^#0{{_dr<&#ElorlBq1Y)JPMmfB_gxborI(8f|$gYysU0%G<eOQF2==u02j
+z&9iz61VDlJ4mKs8@=KWfl_;#H&04HG4d#)6+%Z#aE21UOGRdsJw}_W`_pj~0&X5JI
+zb&05t&QevHb5(aGOx(3kZxpyLGMJc$?2sxqNrCk%BbV(2(}2#;)64e-D@5jWU9=W!
+z6H#g)2W<_N+1vK0nX+1~W)8nd;d~$cRFvKnIOsTLle3iIxGBHLwAr&HV#t<J@z7#&
+z>hT2ESFQmSJ~ck|1MU$i>_C8C1#=#?C3i>oe`R`UFD|CXQiY?H6IYt=ZPl0z{mg8$
+z%-l&mDj5K^yfwRfYlFkIR_#?Ys?*X>zXruT)$&5<qbnsILDklMHMCwT>eUoD@fi3y
+zpTM>W<?!>QRG%hVq@s8Yv3BKzCyZ@>bA9gP^-NV<zoepWOcAAbpj|51x)GuZOY}3f
+zX<6=fSeNn!P~iwTuovv9j3td^fDOO4m0J2Omiy4}nA$~8$UgFO4K~B7;=O6cGdlbT
+zzfs{l5cStrM!@UbemX$FujxKNLNzM%-Dyk^>T)DQ@@X^biKQP>h9AFg*XE>!w^ec#
+zz)zW}xGJZjl*<X%{{I>HHc3CGL~UdWrpB>y!aG}ncB=AOoyT8YBnAEdRQC8a7d{_J
+zOWJIGuQTkl0@6ca<VUx!ZiouhUz5e9geS&>!!jnv0ph)W=hZxhI_7u$*)5d+sye3@
+z%v5E%^w_d%w}-?OzhUQ5oGO|*V61QFTo~uzbvfmC?pb`{@@C%g%ikBBA?y#>wG~1y
+z6`c86<j#p%4^RAQ&PWn=5d^TR^D1$$od{*~gR+c*O;b^_hFH!i<1hI>kMLu2f6Dpu
+zcf5kP20yofMGI1nGV%y?n-z^=sMD8ifd*LMl<ZItR&Yd?!7tWa1zWnIbUgQ+tT`n+
+zUkK!&Z==YQ-00i%Q=l0qq5)^HUO$~~mF+erzZPZJNmaZ=$d-#`Td0AndBVkDFv`_m
+zg#^3b2BR5oi9Y7EZG%ZHgQ@WT)NM^$qsMxoTc+K9u~n#fty9#Uwkr%O_<oyk(3WYZ
+zpMp)Bs6f0Q?`v$!|Ibup2R`{XO2@!8I2<*fOZc=o*z%$obv4tlK|lK6D54e~Mc4Lh
+z#Q4ep<}Y5`vQ4mj+AiOR8xN#wo0}XxrlT1Li|)v?3DEQSVZWn@xjucWc%IO$L5nuf
+z&y=@VSK-Zymw3l?VF{fKcx)ibi)ECZvA98aXV9(<^A5kRjD5dZM;l#9_*awXCq5+`
+ze2gel-Ojqv_O{j*&+VshXMFxJaK!kJUrO46;5XDC`hb{Y>wMVJb`BF-j_NDtsbZx~
+zp8IM7MW$6W!+9V6U0(ekUtmvkwt4q(H|DIu7bqwzGlgX;Coq-E2B_ALNPcP7`y!`6
+z>5$RB__M6B;ymnaR#wcbTH393ivFSxXmI$YYV;<#WrSI#LDXa5fU9S!NF#@3+&jY6
+zTl3ect>ny_WQ(PGZcS;gLpipf*6tp?f0?+M=h=|9^q13wERX$XsF{r>1}rb!MQB$`
+z4ZWxeh5i;V`8VTa>*MOki>hU@llRs2FIg8DNr<0js*3EQ`H55**4i+XsKcs3(e_pe
+z?7znX#)|LOI|yO}Dz~4xoO3wi_J2r-b5+I!|IiwKA#tpp+4cTMd;|6x(%bH{Y|r&H
+zuQ+F_SyqL30)W??`w&KPvAg)2Be8nEl|#&?#F;9qU6e5%Ae?Ri3j}lCBKC9KX!%~v
+z&$KJIP^MeuRA3RSS4EFWbNWX5dFRAzVdrC&k7#`s;gzgV(#&6XVT^SViBK)=9r2w6
+z%x=0l!}zWW{kLsaJDenBog(7h^nH<v@auuI>x11I*{3H?VK6AqNWA5D({S*3mPb_4
+z_v)i8tEgw#kJ4Q@7wcTli|(t+W$Po6Wae8f4-aiE2(Q}x*$6T8KW21Zo^YW`+Q<yy
+zZGaiAmZZZhz8Q9=U8;Lz{wn0${cw_QkL`<@goiEPs!RB0U{v0S?^<#LRr>rhl3a*K
+zGk^>WbNbod00!_=YoagGOH(+UL|tX<{dTvNZ|3NMGw+Jdb#T@l?^mB|9_*@gWe?2+
+zQ=f?b$*#1(qHSVKe_A+&ZBT&I?wrt%`0#wPf=%;P#U9C>iP&UAsQ0t%KdwvWTg2*C
+z86OVtStvMshZcU=Wv91-jXji6S5R)}j0RtsP3H03?SHU4=vypY#hYP4&Zv5@3ww3)
+zHrq#GRM)Cx$!z-n0E<9$zef_gFba08g8der`TqMrN2UpOHSU!Tkl0m>J&Uo66zsFx
+zkygPz_K`XEu||nqiufU5Cz)W+!9AOT{VZdjVIStF;w5$qu<Z)=j40S!73_x){}-@N
+zH%4MV2w8cG#GcC7#f&{$!QKe$%AFGX#7=YUKPcF@A-)RO2TicYLgrAg$1t|W*j+s&
+z_G)0KD%eF)uoo%VS0esAu-BVlyCAFVFR@b@yOj5Vdlc+>z+SUMVxQV!jy*%cwjo{s
+z>{m^&Es!NE*ypwjY#U=+73@OX%TTaqN5Q^B!Tt}Pxe?gUnPB^IuR2*`f5zD5$pX8~
+zCb7riUR|Ta?rJp0zFNWFiDw1@`+gJbEx6}Wus>vM2V>h6?8|U3Tfz23!S1PG{~6B&
+zP6s-&O|aL{JM1U1y^LMSd#fsxdGlD@YuGNatx>Q~Y?s*Oi2Hy&&;)zocDZ+)uIDp$
+zGGiwy*vGb^-KSvF9xpTOT?+Q&h;IV+`R$R|4@0(AnJfPVV^{NBd6hC(z7^Q}mAP_z
+z6zq2t?4Kb1Ca^y@!M+_bw}O2OW4jnTRl)uPunQFIiYW8+zf-WUMZ5&q^(NTqRCbm5
+z^)$v_!}IH2Wqy4Tu#YM8>xogYixg}J;?sfsh6#2L$g&jdIL1zA>@)>?2C!!;*i}*H
+z_U}=!zri!N0(*f8cE>j9yWCj+yN&xryf3L%nZv#V_f9Eu@u^X;M=02P@yr##{-p`_
+zN4S@xU~gw^H)Cfg*jM9Tv4ZW5GJl?+V84fFx&wQ>3HDmtYe<mTwTxZIYw6d;O6;Dv
+zXH~G%qF|reCb26KKmJ{y<8l-1CAgQXV86)NS&W^jV4v8E@2#?KpmvKn_5lU^X~cH`
+zyPFC2uW_$QnZJINu{ZGi^?GIgdKa)073_>C*#A(le~S3qz;53biG4R@c?$Lf#?E2v
+zYz6xrU{`OJ*z2Oqov&1|uSfhPU^i|v>Hkw*rJUK6!Pwc1U9Ze}|86Vo0}*SWg5wy3
+zS-efzcZaw!Cgb+DO?Q{;g$OghBOhhL_v1W^7H{Xh(X^(T&WVmeJlmozrm-2DYrbyh
+z@g2=wk>qgCPrB!O@)N*&rChHkrD+S2GR_22DoygT3mmP}#G3hTye9wqt-Sx2=kZTy
+z(x$1nm#@s@7jBaKV=v?@<hN`SdlX34M(-b7(+cP7@n=H0Wr5poeh8#IZo=&Vo|{n^
+z%B`8Xb@7`1JcZjx+}lvE^ndHkxuq)HHZZp=aJ%aVvBp0*ubw^7s%0P~BUlj%5FDvi
+zZ399PLM}oY!byaBgjC$OA<Uxrc!Vm1H3(%0nF#w45)sl7Y7r(P9HO~=gaU+?fpY$T
+zCa(bqt`VU5{l)=e9~Z3^AfB|Zi+I-YeKlWQ$k(~w2U7Z(<m)`xoLlG&$=ByNUklh@
+zd!Z)BG>$d|I;-mCm_}v2(==bVZI$`@Fz2fa`C1TG9<#x12;TY0t&!ZOKz1yQ+hpc;
+zhPibq-2MS>?oE;##m%_YDBQ*}w`_2;{1D1b1Gj;v11UR9xDAKQGcA-`26L-qf9q8i
+zW&97^8WnC$QMk=kxFs_;4cyKu^}tlkydJnl6ZL>StR6^2Juv@tsBKo*)(^HVH?i$U
+za4q;nsBPah@cKsf#Xc)W+BOCEyqlHrz0KyfjZ<uEZ4kCuVcU1Gt;mGOA*4ChM~=1a
+zXAaf`r#^<h|0d6Tgfz(s@|o=o!SA3`?*h(Gw?@|EA0W*{#pn6^{LBo<?!+^9nBe>s
+zX*|CS&7-yaTqXN^uZop<bSduDZIOAjc8hr)ooSGHRK<B@M;;}5=j#sGe1!>@rATL=
+z9?IoK=HlXc{WN7>|HKyjPn3E6tOj!~2NW((GZ!1UIKbuK$d}+AQWv<;KGNVG(qX)Z
+zbX&39LwahS+(Y`!Jh_MTt9fz{Ded7%b-ir(mP^L<;~sI(h4?W}mxg#N$I~4L^mjRa
+z72<0-el_BM;`mU+|G@DK#NXohHHdpTJ`C~KIesnTt2jObSlc-6hP;yF!x3M`@eznG
+z<@iX%U*dQs;$<8kh4?~_XF=y*Ii8L9I~>nJnqrQRL;P8e-;DTgIerV`PjP%a;zb<4
+z74gS8o{RXS9KQqcM>u{b;?p@k0r6=ZzYXyRIet6h_j7zA;!`+&7vlGFJP(|E@q5ij
+zJf7oI5bw_M0>rI|#~5cwdRq$}3;h}VE*-dc?s*YUMEu9+<-Xy^=E;4-R^B)KuV>}H
+zVfwDozF}8Ug`P}%&1nCeN9-By7AJgRYka2aR9ss*UP${zI6fkd>P`{QLfpmin-EXq
+z_;}KlNAY_Nzk;-P?N9j6SgAfmxt@&sCx`K#PtU5>wN|Nr3!RbZ-e<)7Tc~ap@?q|h
+z7>9dNTq<98r*p*=9UJhR_a-`<(A$>mUZkhG7U_pZ95m+Op2xkz9H%`fSGy1D=b>W}
+zoy+Jh@dw<oeyaa(w`z-r^1Vltd$BavihCJ+@4B$(^jK~2HGD5F?72GJ8^-tc$I5$g
+zxV{JXuH}1Agx$Le_p;blypy;r*q+VTcrS=AifhgkHl@1{#^t!T$L-<kt8hII*KXDg
+zdlBCr7psNx{yIimJe<?O?zrJ$X^8(;q#40!V1L{Q6FsjX%}7pze25!qqUQ;u$>cQ1
+zkGRaRG-UJbNHdDlAYbA}nWPzrG&d`D-E6|=TeRnIQS7?KgwGD78L!wi-b7Cg(%h=p
+zb*qV<r;#R?(;&a&a!vG1K$<%^4e~qg4ii0tk>*ZLgZz%W(?rkrXrD~rG|2C`2_|}W
+z(K+i%KHp}Nhi@Ux?Mgo1Zj$C%q?yQR@ZRDknxwfKY3|}QcyDocAx-zNG<ar}b*TKG
+z(*Gk5<yfo}pWJrxhMKrMl;wOb+sAO7kLxLX-HhugxGv!923!~5x{$Ad6*JwqUKCfc
+zInWuSdHg-Aw9X^=zt7MX8ELL@dlQDby|J3RUY`M6E9y!M($ye+a<lMPP<XZE*m^#Y
+zlDZ{w-+3w0pGcAW&OMvimjsV>(;21uCiH1{hVF@Oyg}@V-n?1vKYs%8?dJm>$FGvO
+ze+~pv&To#yeHgM?3hpl$*Uq?wz}*hqbvwe&?4`AJz_!w!pB!JC!?EN)Zzvq{5MLSy
+zbWB$`kiVg$CLC^s>|}q*VH|TP<MHm69yR(Oz`<?8p>cF52am$xTEwT5zoB%=;XZKK
+zV8S5{vY8487jv*OhbiE&kn*81lEe5g4nJ2oT!Q!w;837&xCR_vGvN>m+3{q_A+U-4
+z)A0EBep`(`o$|qiLw#0_9;0x$N#XD%o^gP~p(`baSa5jGgo7Vxrz;#jV-8(B7M%wU
+zw@^N8kK~Y@C44>xISf=dG~t;qP$u&g4u|ny_?ZcZO-SqOCpm0n4zrm<Q}-JEGRg-N
+z4(qQE&4;c{lEa@7-vAEHS4a-;f<u-G2QShVC>*Mp!zmt{&IJbx<-@i}4w=`7=EJ87
+zhsB652ZxCYhlSwK&xFG~q&=kg8+(3J=svcFZZ*2E9{FIxVcm71`S8BN;a7;y0EfoQ
+zC5QXL;q<0R4i7?>uW*>k98U09bq+Xu2oCGEMsmowE;JurRXF4#eiJy1S2zp@hXW=Y
+zZiK8^@jo`2Im}=V8{%s8)szn=9BM~}=EH1-!<C39(mu>I$)P(q)R}Ndg>0h2A(=TG
+z<FV^3aF|2+&=AQXZB%GJ+^2BphIj}0=~p-$Jr_t>VZz}o^fx9-4&T@FJ|5;!XRXl-
+zC?8BXcr!!msOuCCI-aQqhxJ1whxfqYNfQo7kaoPn;S=W2!eiNPa2P}RuqBd1Y8Zzk
+zg+l|Lc?BFY6%H?g!#yS({zZHhe`J4W4pW%J+SnRBh4R6KL)FO8@^GqNa(D~znc%SQ
+zGRfiR;NUjlP=&PF3WrMOu%E}5)5-tOhscM`ksK07hL(qY3Wo)V-wX~J3I{s#;!+b1
+z&mir3#h=+z%ps3Ctcj`74}pW*ghR!M(0urt!eJWX$+Qn`u;kDa9KNcL<nYsaxj&As
+zC)J1g%c1>o|D=4_6v@FpA~YYCDI9VT|Eep{k*09i(-lbBWx`<;l{dv_&v53D%N(jL
+zHTo;yP-w!TY<OsyEK)c)5wD|tG%m^EPvrl<KJq-=M94A}4i4tfz~kS^;P5m!9Acj~
+z4&LKu<MphBPdtdj-3o{EcqZ77Thc}QpCuO?oiXM1p`E>5Uksk)^QLZ)ReSnMP5bbJ
+z@8Zb+4ULD>J~Y~Uc7n&YH}H6O5szo*^0;?!T>K=Dch~dyciJGauWkJxF~;t~Z|&O_
+ztv*@!*(n$##?ljc484lS%+q<yoW|JK@ECb9kD1fhIQie9@p0>*(DCsCm-B*+x6v64
+zCi%S{`7+)i&z!0IkmoUZ?0Jgj)cZr`trusz6uO-e`5nXg{q2V`zu!bW*r%qmG>$7=
+zmRm%A4?})miTt(>miLm7_6if8OQG+C!gDe6%nzRXX>sabe}J;HN$|7{kK}1#o;wtt
+zvk?!D3;b|4kW!&=$z-0_famG6fsVDxy<<q*^<gB>>5x_SmOKlYXBYFV1<$SE>0_Sj
+zhDXoO8inUi5D$)RGy*&8GRdW$d1ip;R`ASM?!AY!drf%W@S!||l&-I1o@;pQJ1@qm
+zzXqP3&4TBY5z+JWX@zGR;=%Emm2?h`!X=k^4h7Fj@a$6VeXEIk>9`jh2bzQDT|;D=
+zN&Ng(ND~|%dIo96D`|eoX|6_^S-@EFp~?3jc4Z|<+rP(kPOMX}B^mEQFMw<!pZ^)G
+z=f)^@cHn++JZua&G%6fYP@f#bvo`l4{d#bC(uBj259Ar7#`pgNuJ3tVy%~JQ5YL8C
+z4nE>U`xg{0+mSAv_HUW^funOm@5BGe#pfbk8Kb3?DSqHwjxxP8Q=YA~&+xVEZ43Hk
+z>+xlv)8fVVr>IKz{TS#NYhueEfnSy=ZF!4rImzSl)mG#MWL;sl80~9dtKSX(2hy%(
+zh_}G5w994Q9tFRgQ6g`HW1QQ545Z`+(^RZ#O<d?qT1fNAo<(|a?6V$eW-4j2kfso6
+zTu2if6MY|PDwH$@NHYd$$RFB!uzjs^Z#M2FQ(oa-a13@eo^MvtR3i<QYb(;M#Pf+c
+zOZ?>LESATNzug!R^8&ZgJN34a|L?@UD2H^ObNw!z&b`h0K=@Xyf$og!<hgvW;kxC6
+z$agUwvc$gfUF7h)aCLL)Ga$bm{ny<l&s|65U3qQ<KUctKnHJ*tmEc>uE%Y50T_?)p
+zEakloL3|zh19c`isUOHQNR9SC<1{c%BXH&b$G$xj=MdveRd9MB{ta+enc&1gmfBC^
+zoZra4miY`)cXy}$OUR1CaB{8}I5`T=*GM;s{E(X99N$QOVkFM7jluP9JU<4UJ0RO1
+zhEvNpS133Kkgf&o#fMFBcH`a&1!w2R;CKRm|7=eETF9~*Lvb8g0>`f4{2S@2sqbup
+zQ-^!`$r5KB<4or>QfB}siJlL`naw!=-6(P1*eLqwBTR5s;ob%X=M~0jVw`5+oZSG~
+zj<EWVaSkasix8g=oMaOm5ALP)mpH|Ylga0kX7zCDt-zTchLby5;C!IqJWjfRLuILl
+zf<x!YJPcX+i;UwCvT2l0$~mZOfVB-+O^nrp)73H7Tcnq<CQ;phdgH|(0v&!6ygMQ5
+z3d6gV{x>NSFEQS!zYV;souPPXHwe5%3f^^;FTnc<_H8r48wT0T#i4jtK~}8bl>%=m
+z@YaOkRWjaV3SJ83CGZ}AeQ%rK^`ZYl7+x>>4=8x2fcGTu93O?^S;q*xyA{0iNJn*j
+z3G7>Hf_EDCC%zPl_YGtP%9*3ndph->LRK7xH;eH`DtLaRqwmjyz<Y9Ir2o<*xW7R;
+z-}I9W-0x+)W?+rkAkWx11Pn??`4;qBx&!wUpnvK{6aW9XmzpZe{RgZ+gZHAj?M{6N
+zWSLE2^<TEIMN`WCyGXYa^-_)rPA%@0DmZHxr;>51fYSrA>M)#I#`$7{#Ce(Qg*~pK
+zGQHtUphI&k(+6%0bdc{&^1DfAP2|y9k-W)<4^BFF0&NC8QSrYy=UJ^YQSrYy_A#xq
+z;;Nt@n8<S&UU@9i|K^J{r)lhUyr*pvpFu(APSE)iS?;o=Y*$%QqD!1Tk?dNc)7d(g
+zTg2HDUxNpgrSSC^4^nwh&O)2Y`P9W@(r1)4*&F|ja^4u-pBUwNa6Mh_2DvZL3R~7B
+zOP`G4w%-4k^vU=G`w*Ri-xu&({(soJ`mn0XY`>2l5#i(mc~n&DpwdK>PH?3nV;sEd
+zjC03|k_snsP!Tb?6VqjkifJ%$JRsUJX(R_aSl+b8_!9Z1(6sQYoUT($(IX%3B%sDy
+zW>)CAzjgN7yze<@AG&|v=l-#uv(MUV@AX@2z3<xZ$J+0U-*;WEU7K<K0M6~a=R^pv
+zF{I*rahzCBXB@8srLSGSaGmcuN-Zu|VMtpU<sZ7&QHliL*6qrGsfyNo-Kx%}b(HY@
+zNZLCgq^s8wa`^nY+dXB-_-|e()=`>ZQl>Uc*4I(;(wDyfU+24yQh-S*)Yeeig8xZq
+z8!L0=?>m3HUHiUMQ6AFPR06i(=x2u4RHD6*BdfNm<|@LZt*3NU5$h?P;PsROA;+y3
+z$x;rVr~QR2w`=QAme5{9Y*PnpdXdI<X)ixqbFZ<5_PCYS*OGMk{1LH!#2VZaChc=!
+zq5VH72D<BoRxeFd|51iYdAvCU`n}Q2IgUK$ZI^Pwr{h{a=Y$h4<;!H!f3I>EL~?MQ
+z%HC_ZCkFl_|I+?G4+9tN=|OY*<PXvT^~A?7O_DCLq>Hp~#%HkQjRv|r+bqVdN&Xi7
+zKljyIq&)90ns^MIbs^mQk2-z6L;bK>=<;~8STF1+@K5SQv6fd5$9cUB7Cz#+p5P4L
+zSK|_}Z{qa?FEty~f6y!wrTUNmVUiA)rJU_n=rB0Kz8d?QrTX8jttYt2&w7HcwMzf{
+z26*OzmMiV^aT}KpJCA{9n8n(wF91)<2zc_Feb-){(d-&tBkhlP9<7l^Yf91@<6$8i
+zddeLXrwi4+i1)7<;JX&IPHEqd@r-Yf$EMq*T<_ljUx&O#9QgOY<@ETT+P(jWg!8*5
+z5jX4BitnkPy^21udu_z>-r(rN=P6d`-%+OnGkt4qN!W<;u~B^)*f;T7jq#9YqO}@v
+zPIV&CU_S&4u6_Mmv0h`Qf!=4DC?8PheY%O?6Fe4uTFUjFgKI|)JBPowK6BW&oL?vD
+zOyw%Fs!aXQt0K?x2|sz3GZm$f){iqA<XO&fiTfA%xj%sKR}AvCXX5_Z&A#>gdEn~{
+z74>{O>u!ebX515DU@tp(YNh=2e7@&2k6D*X`RV5y5fcx2mXrKLzHyFhuG=gN=ik6y
+zCIi`PaV<`gy_#jyy7c3K_hOT;jwwx^`RAnPgM444LH>CYFn6_i#<Nb&^Cld+pI>g$
+z+KR-ppo#X=C{x|<8OmjZ58kHvS_3?Bpk=3e;+eyEih0aEMZ)uE;7M-td{-oR;c<We
+zE8($8cqkXv3Op|v?CVi9UCTvR!p%y<G_juttqE7k>%!?d;gkzb>&+*iU1-&FGxN0E
+z%mB*Ggg(D{jAHfkY8L5-_z1d*t{47Z8K4|ZcTOJDH-Tp1yiCg39J^lR@&!F6a{0zS
+zrswjNs5!W2Ea&pkJKPfCRNsD78Azb|y`i;_bR(TEESmk9HOrw|yz=>$(3oeQ$md(3
+zh`c(B;+t2ek9UnmdvoFNo)abAHmZXpb5m>I@O)Q!N%t3czb<Vu`2H6@43xensc-b$
+z-|r&oOgLy44teffaE|v*__k4eJF*YwXHeGfX!7mj>~0kM>(Ku)mQyb6uQLj?Vy`_K
+za#_yVM$y-C>$j-2uc*=0pKCDAN$(Ykbygnd`~_^3D~)qn(XOJoB7K}w-|r#}e!H@b
+z-bHrpoeqEOf<EUWgdJ(Wi;J{pLiA?$zFSuteRWL-tybCxa3$;7#&xJ1b?BW2(Vr`c
+z*7k;bMbh#9Ms2@~PaA!Gc6TH1^}s&+H-3H+KR*G_uf+4?z4n`k=Di+@B%j^csO@)Q
+zML%n~OPlYava0X%Ky{DGEzKvD@;nvIG3os<YAX--!_X(AK9Ci(2zmd%^;%mxNZ<c&
+zjWUpRi}o!N^~1tKw)Tuyw)YXXTQfu->}&3W)dna*)-GyWF7KTaKz*=ZyZ8SKkD#^F
+z3Ma<l2#a{m-Is}k{I9q_(>q4n6Jay&iEspM)bjUCin-<gkN*otNV7@lI%QHKPnwjp
+z<0hr$m`SnX$ZR($v2UA{qN66I^oU8h_?Agof@9BN@E<ZM``S#3<4uzihvVEE;KOmQ
+z)ucq=uyP;fe#DG~R;L=7SEgDWWop}?Q;l%%)%BuE<&NHALHd068qvR`cH^kAO3=0V
+zrG1gj5j)*&qh=`&yMgkp(I2A!;pk_i%`&bFkFC-AxU|<W^>gv;33ww;H8~1;#wyEt
+z5g(?KyeQO(0Q^VAD5U=LxR~<p{1&G=I=ZMUJff&47uc1mjcRz;M%C=z^L}afx3mW|
+z?i~b{Qw_fDnOi|ikoIGUY2a@hd2NOW_nH*D&<@z87T4n)BJIcE-PZnNgJ?t98noC$
+zZS9ZKm4S=_r`x9P?|&rS=d2Oq6T!f`#{i=Rw9;t;V<2M;XN<YQPB%Wnxegf9PWbP)
+zJka3VZ@E~HxX5wmZ<OOWRWAeE8E=`pED+wYYeZl6HQG}N^tM>7Up@)tA-jRUZIaqs
+zoxs$|d7@UdjXLUiJp|4ZZ3z-KzO$ajQZ@X<8{hBSrwK&AB9i2AU-k&@dBr7kpnWkf
+zPw}tA2kAnGCs>CL*5My0V+#y)_$y?DNjmIh9ojg@^YS>MLr}f;O(^ln*t3s0)hme2
+zRvu?t57~(~={TSB!MQ(OtnqaZ;ndcwbL0F|0O}m=8Qw*-chz*#pT}5IN&h&#uI=!s
+zYdfW9&gEx*z|Xu-dgcds=Dm_le??_8%)d=HNY9OAoBloaefM)`=+6xy+9CB$dM?}G
+zR`4!~@^6E6(sRdy*Zmw|4(oHOCu2{#>lEGVec!|BVl6e=o3d}Rf9&^3GQLJ%xaCIL
+zXH2t$j_GvlHV->4lAhm(d+Z}Tf3EcWPp+~K5gO(*v4`DbVehZj_Knc(@=x&X+v!xZ
+z>Nz%Nm8qfhUY}0!)S*Vtv8&d}x{tSeV7oqDi>Icn%_5#6wnmzjscC2j7Mqozjvon|
+z>sa+TKc4YYpY}a7#rUPYl<TVZe@99E-;ZG1$LoD#*4aArYbS}A^>H14GtXmj?E#{`
+z%&X&ESU)i<uxhIsRWIUJJNO-+I@R*+b~U=!uC_?!bT@DgP4w@J4_Ax2|KwGzoH}B(
+zx_=Mq{=$0Sy1yUt!Y7HkzmIh}!a1ZvV}vfjb)xRuk2-zUw`(UFeg9u4;#V=w*IyMn
+zWKmx62s*qX>F`U|!Ol872puLE=<pO|Bu^ANJkB~O6GaZHuER$MjpJ9#5vO`evh~j)
+z+hO&OGgrcCW1J<7vlH**&+2?}-b-b{DsbM#IFosd&S4fftNh>$1J0KvoZ*n&H(`YO
+zFX8<9iiR_faXtZ@ZyMmd5wt)F=S;>~H9_prtK<BWADr25In^hmSa>t))qh`c^_#hF
+zHJC*`JBV|NN4cRds@bL&5i>UQm_p0DpWdRl*AvV(ZBTP#w&VH5xVEup^z^**qzCcj
+zn4VL!i4XdB^*GfW(?-<-zTB7{?)W*(i~DjzpYds<1g+NM3AMoxPbTcYqP3}x;ny+4
+ze;gS~<M|QTjBMMEeoomH;g>qxPx+?){4$s({PHaOC6oP<0KY6V@XI0CI_p~Dm)3*4
+z9uAKsCXNz*iSXl>F7(YONPa1T?C=`IVYH8}h{dJT{p<W@nr9oi&aAbODHm98BX1rp
+z+Q|7hPncfdZX+*_DNqxp8@G{PP2)B)+Qc4hWW@DRO7d_UIo{pJPwoxoHgaOLy=OGq
+z$tl%ZJNdp_ih7c|wRUo#K|7i9g<C?5-z)YsQ4TsrYkJ)T{%;QY#{b`d)+g<6`_Mr>
+z$5QMSsr%uLTFSNb9HVsq_j(WPJt*D*zc?t`*Q0@p>ISW^kr=a0oq0tYXVdp#=$vU*
+zPUAR&V?T}t9OXEQakS%TnW>GzRn64K-_F6X`8ZFG()MRqg7c`E+W1>8esge`ab)2b
+znqgL=XKG^zG@fu7|Ml{Hb;vb!afr=t`Hq#!_lHAT`A*Z{MJPAB5Biqxaa6uJCzQ(V
+z7`AIW=dL>3>n3P+&8Rgl-$QLS^&#nfa|W_6jDRyp!udMmOktesf%9<#oM$0BEL7n9
+zxR$>^;hfMolfXI856<#KHZ_KD5-#d*Kz2#DZMc8xjk9Z&z`2od;#v}7BHfz?oOc=E
+zJP6rs63*&cJzi)yyCj@eKR6Q(+uVBx>G2|ua;<A@!+q){Gi-k2#er3x@uF&!R<D*0
+ziFom>NyLjHoOg1c+7e?|_sy^w#*4C5{`=GxsZae=#EW43w{X0;ExN!RFDO=YKnIEs
+z3lKB9dTj2P5p57NqJTAeg3T~yJhe*1jChWP;o$GD^^F<#)q1Yia5wwH&iSF4qlGW3
+z51<Vwt-C<{#c$bsV#cmo5i{o2ikNX}rHC2vh#8ZHg#SW-@5}+)aJ;uf`uE=gFaO1`
+z|9Za{{=2FO|9y}1oCq!6?~5)_Ga`-sH+z-;cyIBF_rX%Uzn<fLajnfA@ApL%^^~6T
+z@4H6e9JCty&La74H2dy#@IPhXyI%MsaH8<t*#nyI7V_Q=QDcPf{uS329`*EH;!$7U
+z-7NX;!~x;E&64jrqPMAgzZbsSP5JBxMcr$^!N2d$tn~EVJoa6-<hv-T?%ja%c&>ZN
+z(RMZRN5;N;W99#DJd5gHfK>O!OLZ@)POE##@L$TOHoxOqzXaC(lZ^dWx>ESBg5TFa
+z1%I%C|NaB^ZJ#9k_bB_%%(<3*0m6Up*SH2E-|_Tc$UDCNYd#?S_mJej$&&xF;Xle3
+z&$`{__79C$xYx{#C}Y2ERUcXDnSXHe_gelzC3Gs_{DTh;`06wdw9?5!r@8pwH(BJn
+zw~Q4!mDO;*s-HfnUD74$fR=wyAmtwfN%;q7S1A1n?wrjX>L}<|X@G4qXmMcz+XS|E
+zCg*}C2MTQKfi0`ursnh+<5Lp1ewHfXQz$m#IXP7Y>b{TyRi*qt0}PjHL_R9fzpUXL
+zcE->tVYnaHE&_x3GyfQVCSf=We(MyQ+F6DA5^7hIfFTwCY5r-sT^XR9q%dWJdh}aY
+zKb7O1-?^q{-(*~$`d5f@JekY!7Vs}K(CHB5I;IGnT3M%)oReBLPUsYYYZs1rmgA0N
+zHlOjvagtuI)`)Vv8n_lHO8@N!IGi;!UMO(<g>fw5T+X;4f#YhmYasEsP0j50Z`-~a
+zfx%AYfu0T9hKJbIsPA0;lMFCC4Zczd!;_5RG-GIyFnm%?>jT)-p%E~=BVkxW<pIx$
+z2Zm%|Xoi2uKU-+*kLz}O>^3z4*a|pbB=&?&9mV+~);2L_NBJV*sOx&Z$l7#~FJhl&
+z9NSh)Wnw<Z?EsXCGc~?;hzD)YG+~E0wnG=^ogN7mcK8eIaPfp^nHW6b8{6_FTSQ7_
+zqAOLzwm8H#1^Q=1Z|<S^PO*Jfi}qfovANhmo4ShT#u3{c-CAtF>~ig@K;QEv13iL3
+z%arz72w*+RIq$T{BJ@}bJ@%ZmsSShv{kc@q;VbYT!E+L-3)ID-1!@Y~L)5P5Y_V-Z
+z8)Fx>D@ZTx{j{x%+94OgPdx6nMTo%PafR+()*IGp+k|)9E^1TC_Yxny3uCXN`<MCL
+zpN#ug8t8u<7&BWn{ev0z(Q3}|<GmRi*9aR#;acq}PhU2i^7Un?WQS^cp0ZQ@8+<U|
+z0K==ee!&aF9>x&Pdn8!L3k+j%E&5$g4DS6Jyf9p-78o3iVK?Rf7+|pDdiM3A9OPFU
+z?a`pgKVK!*r<7%$k>q9L{3q}?wM9<8VcXOWpN;q9vp&cOV4sCcKBHV|cU$I7+op*o
+zWf$E$PA@CCFT!SgUm)WD`D$Ms?;*QgC&mwc#X3gt8u{VZi1C98=ooU!bNs-3%6Hyq
+zC!R40@=jFy_5<gD))p?tjc#FiZM-)9erX=?xhkq#VvfpNj$_cN-VZs|26Co=mMqDc
+z$a0cd&O%8}4&=lSN^@Z+y>#L|kyliUv1Aj@doR2CpEHpC9iG=YO~}4f#oyoaJYsvW
+zki87o+6MgS2)VT<oa$M3Zewz<z1g`bX_T@n(I7@R@N5&uh(O8jOTQQSbam4Drw8cU
+zvuG_px+8L<d#<B1wn(kGEcm~a`2Q*Kw=w?_@V_MSKOpfhmH5-9Yy258Me3g={`66T
+zf7K|#pU3?9;4cLK9R}rgH|&<v<n)LSrEF)rv@VWrXICZa@^R0yyZE^8*jHbb^!~5X
+z;=@EKCvm={<2*^nOvaoA%nwUC{z2k@QsOUR{!;MYEAd~E_`j3*Q<y&${EH<1{SyDH
+z62F7_i@|?~#6MfI`Hv-=Coz9A_-BK^v&z@z3qdnCdfNPFY;!Bm&khC(o4*8`n~!<g
+z{7k#A&9_K4znN{`F6EJyO7mbZC<3#cF&6=|0?d^Lm?wjl7$)M|1jd`i-$uksc-L1N
+z$M97WzR@^8jyhFrAZrNspOf}=zg)?EJC=2NtdRAPA6bhfS$*I+ig^Eofvj#^%aLS#
+z!m>(u{hc&PR)QZ{vn5%lz(f0RE;o?%Hm+GDS%)k2?;UwgUYcXP!H=wKC0RA#NrtQi
+z2D1K&Yvs~>=3bW7#`Bp)lB^&<vc9PlvUcJ;7B-ABkmaCjlB^<@l?+-U@J%zgXCv{{
+zdDelaD?QiS>67O8x+`G2x1DOI>Y2|X=hsr4KQ3W@q*B|vs^tbJ+8`U$qUjsd#oxI4
+zNiU!Af6%fHdgA#t<4IvW$r7Gc;K@7cRG0h!o>wG1KW99%fF})jGJq!%c>c=(&z+!k
+z)q3K&jq#l1xy5#AZt;Z*ZT<R|b0gz<M#3|L@svh7)lA^Y0v-i;Dh=>V1})JG&$Wyv
+zUSAhT!t;CJ$pD^NKY(Ysgy(97hQ|Ut9km<O&PW`WT>V=N@O%Z{wgaAczNp|i8=lkL
+zC(UWzi))>4In~nMk@3ux@O;F0a%Vc#64<8{_Gti~H3oRz18=k!p5u%sobiN7cxK~T
+z2=FZNgNOP%lO-(mjOD@%r`iVF9D!|~r}h60u<Qr#o*GXqdl`#^=M{^jdBq@HYd`E%
+z^Lj?M4cT1BvxD)Z0*?c>DTZx+2Rso5c<kV{dg0kv;kmc`kV)YA^mVi&4|~4v&KZ0I
+z@ScR{(F*N-SAZDhs_@0I1~f;tCx(@bA(wNVb0iE$fuRL5GrLE&Nri;rZnnvi=}t8T
+zHc5p|X2B*O8{k<$G%q~!7|$TjIrd3&j=Nu{HN_GCx<<xRDB<}r<7tV2Z-FNtcmjc^
+z-T;pcw5%#mJX0(5_18K6NqGJMJbT(uet!T@x`Zcy@yr6AB;ZK~o^xMo>)Y$=#yfb9
+zlIA!2aDEv_V5BxrY34ajn%kr~O!~%PKhKF4^PDNom3H#nX)e!|(%dP{l~QgrtrKm|
+z+S(JA=TJ=!Ef4%r`WB(8ygNQ!8L;2)r2a>*Ii%$LSpN2441JT3kl(X<tuhd<B=vsd
+za!pNL?NkHHp=V-wcX-0W9$G`$1Rnic1-f_HTKe`Nsn?vispk^znML=2e=PWO4EXN?
+zzeVC7O4Il);O{ixpYO$=5L)8SSHE+u_RYgW{Ex$V5`L=|YTs9w`QCp4J%#yo`fSkB
+zyl7FNWqQ$O^7Cs~Dg(JOCGPeltxrsL%Z|}_&7nKaPg$#7C){RbX*cXvNY{2|C<A$T
+zX1EuoYrtRPB`c6+y#QI}RL$Nbr##fx9#`<(G|3+B?-W3@ll}`lWqk>{!%NoZ8JetI
+z(ATfl&YzNWoKHF?miLZ9-RX*DJwtY!UkBdd|Ir(}KvUDbXn~-u@S<5jOYx$GfcBsl
+z%?jFmUbHaK?((9AgSOa<76Dp)h9@l&v>Gp36lk?;J!!K*tJHl6n~s4Gqha$m*^f8i
+z87V8ZGD<!PHz=b{?>ewj)PZCJ{vBTYLn{RTJ_G*EUUlH)3Q=b)24&<aFaE{wb;*3s
+zvhf&rmUxwoe+Mnui<SXesuyh)Xc=C#<)CGG(I__Ld(o0WEA^t?!{z@UD^UK~&e0Qg
+z4eK?AF)v!nWxu>|xa_yCQ3i_eyoLl%{pNzV*h|i>Ea#-PLmgV9ou9UrsI_U@`5DkJ
+zG5zm2|BBB)!1)C}{}AV&^LYpEox=604d?&E*wu$eRh;{?A0bPUmIXF8#z+=fF<`0-
+z1Vsupx285$s(b_q60S(O_vZS<Hm$UBE!u@d5(AL{vBVhICEp>4cm+g7T`(#l1s(*=
+zwbW<xaU>+@lUwnY3S{r^J?A}{$?ggF{;|)QojLRV-g(cQnRn*Q{N_3iw;`O&Sc>yS
+z)rt6cgk#ZXSkVqU(Kr0_a^_m!sPE6Bwx9Y0YQK{L6>5RDN9*A(?fV+u#f8LmUP1HM
+z)!KVHT2YeIPWaVKwDSqH_Xl<xrR?oV+UQqDDGfcbN@b7YrSd=9WAnY(vB*a2{^^X}
+zt>>)XvU7I#+RhY=m%oD@SF+48ka_mFE;BZh<Q?oe@;u3_hrAk=SFFif3VCt*9wJSq
+zA#av<jcRwU>7;L=?JU;?xuuZnl;o03ajofDrr{K87$pA@6Zu}qUnR+(HAToz|3Bm_
+z5%M1$M*dkz{#=$H5Bb4zzj|yo?P;n~^Md7_*1{J%Y|54%o3f#&2D0+J+tkb{W$H5b
+zHZ^N}nVQ3Si}Bp@I9!JC3J&KZT)^R9A-tNybAWZs^SL&cf%;;zxdWDC8AoGIW^np!
+zKf+}(r!zjMwZI)7MJYSO_girP8Qe>2fsb+eMw>G8Q%<)c{nLo_I;4M=@%bP>_Gd`9
+zAf5QZcUzURcE()=+;-pw`TvnweuT?n+W7xL{BOhm0<P1Gc18PN@3sz|KYpu~_Z*~%
+z`C~WYRvpv#jv09qV0S!M?R%9yvs}I0D*UaT2)`2!_u6cM4x2SI^n*3jmRGAGdzq$J
+zYd9Q7-++h@z~L-c6Wryh1%A*<+~Wvh9HwkJSKg}YYFB)nHYM0K0y2zrZI7h8xD)-@
+zxeaumw_UweJO5?D*icq=OuV-^b_DDdpgG*aP1>HmF;*oGY3i-OjdvEGvmg)6yUrvV
+z`%0~}U$BsP&I>nd_y5VF#Lc8L80Z^2Vff~D>ff-BxJZu1=jSZ%j6)foLi&orZEAdG
+zamb-8g3iUNQ{#>NOx5HUmRM;|p;MB7nz=(9g#iocs`2iTO$e)SZYMo&%|^}-yQ$5(
+zlI&OMJc+}tI_Fmn>SPGdIo@3qvQ9z!<z1^L;OD^4%DA<V5er*YO%}K{jC+ekV0Q1+
+z%XgE-z&z5e$<BoTKs-r|UB}qJ0=9K@pv&dN7!$uF{H(AiVXmaIz`yk{rqxGvVo}!$
+z4R^8T%Zy~)4|eMEXl;(RzJ$w5_urxD_M`eTjmp7!-rzi>Uyns=KRMsw?s)hP^iH`8
+zi_{p6$Nr?2AI~chb;9X!7bQBV-J2xrk%#-dWqy^ODeeimeMPDVzg1M%h@->3<s9wx
+zq_X{$bfWVc&@NG1L|o>SC(T);rsGF-+<~?xAxPf=)^;Y~U3Q>ud-tsGw0Jjkel-xT
+zPVkniSu`L09O+P{>F@<)6}Cq28*N8fE1&ZZ@(xklCy2Y0B)B0~kMyfE5J#BuKG}l1
+z^u3*ltzr*p8}4fZw#Mz5q(9T!_?fP@;F*pOb-CPlruZef#WO8~ezwBWPU0ug{8Y}H
+z%6YHnx@bKV>Z1DS45BXL=Lm|rm`5^vC7o83?cX6M!=$`5(67F9XnD8pWUhQ*9%g*w
+zy`yLL64F=r^mi{-$?b69-J7lPJhrR1(>Wu)!05YBwveY<lM$b}HstVDYVZE<e|%48
+zg3d?N;qVr#Xlwry*L@`0c)yECK0Q;&wL<<xP4+2G_5_j(9W1`JorIqNxs=xenUp^P
+zGD*g7S%#BkB(e;$%MV}|vYjpizPVDV#>1vJp$~C7D>eTqRZ-s5_|&!UMQcMR-CH1M
+zUI*-cl)mdHLdK1_Z!E43<hLnK&2RAB=~uS|kB5RM0v*Sv7KChLkRLKo&X8?9{2sb0
+zb30;?@Ax#Nk45^_==7@t;W&+-oZHfW41|-ZE=4}Sbi{REC-ym~;eRgA`)cbcM)=k8
+zmgu?~yhE?6kL?t7^?HPjHt4Sd;a+;L@lK5yPkjf!k1^8wc!LyA@1}8o;xPA*8s`3y
+z!`yEh=6-5d($KD49-uyr(&u%J*YeF9Y$vkb=XN59b^^bPD9=h0`<;bt>Jx?i+FN*y
+zEzbj2#Q4?OCie49*X@@q+3zFV_W;`sKE`O`sIt3@T=DK=XS#Q7;wN~9?RcN&o9OW-
+z@}@|7>}NeHdA`*FJ#H}3<5GsM$E6mbM-#$6=rO|tCxEoQE`d|iGW4v{fZeZJOmHd~
+z=L-pk>Qy#y#+l%(L)sh(XKjnYrz+-;&oxKmq%lsLg!2T#PWrZGf>VIB?y&+Vzr{F5
+zjlUn+{OX@gaDvlxoShQRVuVj!4fmcU&V~x=s}^^Csr8|Yy1u&_9_+inZPxvTZ?1-u
+zFXH}PH;KOO`&PZLPY;Xx&o}FRy&cbgBKHMGdzuZ*6||NY?UX}V++oxD;Q!LvI`rwI
+zrviV@7`+{^aKHW+?$_@}{Wtpclg)a+FcKI)g{`Pxrasw?uvV8Me9&=-+a>YZB)1IZ
+zSg*4B)jvX}=kQP;v~;RpwMjnc!!5!G9oeFPH>z$i;s0zQeq+HSKG4kH!wg<|;QbPD
+z2O_x4lcws=DYHf5|HOUeSHitM6P%uAaXzZX|H(LQqs95C_cikwq7u#?=D3(B;he#J
+zCBXSt6P)8nE0A!GGEN@j<O1h*#PtV<;$$;Uf`s!H?t2zEb4+mdBF!%0>|vaXJWt!N
+z_|-(jZHT}LG0()`nkD{Ego}VvHD2d8-;3)>{1n<Jg5S)8Udx7C>`E2Qzv4OvzhyVu
+zmHIThQZv!6tU&lAuHCp+dF)Cq!U2Tc_~m%?x!W|Jw=LwoC^RoibGtdW=<~a@f2HzL
+zI7~XEKHE2M7V>1{Hv^bS9$haluHE>#AwU0So$JEb3nTNY@8S7ls!LJ)ABf9v3O>i>
+zY_}}li;}IRsvkCm`<j_Y-Dnqby*dwKeY0p679gAryJ>YP;ys#!xEiNe@08s<^sLZ5
+zz<C)s3Cu5U<P8Ex9?O+Bi}&bGgcktshzXvT+Op9CFP-u7dGCtblB#Y3-pU9(@06i<
+z1rpv32;WWblL?QD73r<0moyhc^Ds-`fB7UHmn3J2dT<T#AXjNT$X_v!OF#5k|FqI)
+zsQ@N%k|-tWrpw`8@(CS>Q#GH^MLuE0bAvu1`R*?E30>?Hj^ws-ph@@Vk~DvAamO3f
+z_p?v9A8nrI6ISRxVUpw%QvM|N3BO_)DJ-LzWsraI$`$qr3n3#|6iQNR27SU5XU(8b
+z7$lDLVSGZ`e?&fEEA6pCe#0m1pPKsr@(H(HxwcRE!j*7b8tp;xZPIML3HRUKY{LJI
+za(X2$^SUPE91*>aWZ6<xN0aCijW#2Pxy;oj(PmU4{3M+fQA9l2RjRG<#SY@84C3Au
+zQ_56h?xx~$I60HT?oYHi7L5~0`oA1``jMx9LMrl<sfFXq)FRY}OOo83v}PqERn0-V
+zF;_(U9a4(LJtep&4fo{Xp2v|t+!W0n`)^c!=0B(ZzvS}gG5>j%Jyku@D9Uf}#^z+`
+z<!@*bys<e551>yYn?$xTzd&4-OSCcfF;0+ib^&L1W3=yaka5;Gi8f{?VWO}8*aT-9
+z$xReEw=<51_pi8OQq@Wm9M5ze=Qk3L8{tn;9-4p4A74HAEZlUSLQ`~Iav^SYqNqzw
+z#;#%P3Sj@Pk@FFc(scb?f*h$1*$~F~rMJ?gY*&!?tW>s3jmEkVU4B30FD3aO3~i?s
+z<{zIamF+z4%Y}dSlnG8J(z31-IA1VM4)dJnj!0GSL0mxuPCnzfC7ctuZz=Ion&42q
+z+9lz%G0s882?A#l;@To`PBP9231?rUe#Tl-phW$r?{wZ>@&QwbdzZdrqFuGocY?w|
+zM<#s8{Dn$ip-1Pj(zqe$y_Wb|-(48Zt^2K_`;xCKx}Qs&PBd<r;Vns=<t|A~$9qTo
+zFD`GndK=#9jf&FSfd8v-Kk@7S1lMs*(f!mq=-wmoMXqH#w6kA+T3a8nRdvnXs;Uj)
+zz9a7q&#`c_QR4q=4D<H{^nECgZ^H29Em|n}YaV4js=uM!6L9^rHlAGE)kpK^(+n9~
+zG#MkkEQk1i77BihHsUR#c_!vZ{k5WVhqyHU*R|?j@T~gbuWIw@kVP_OeI8lJdxiGs
+zdxcIgS1HXI*7IJWj~k<HISp|&lCOTd@t^0TO0B|{n_<h<hljW2(~>Q3BrNAkYQ3~q
+zh;&Zjy+WsRlwPt?E%ozLhquur$wq%*8yOt3S(1$u*l06swArML-$CyK5_jYOH0br^
+z0Q=MR7Qa?LD(7OPRUI0>j9F3{jk0t$=v=1`+8gr+r7vA6Reu6qe%%<|e|**;&OD<3
+zpRg|8(c;V_!`^o^kZ-4Re!32cHP9oOZ<N+XxEn=(62$$)T{F)F_l*X@Sx5i(88(nO
+z>kQl^q*VrW+(^s{#D{=U&wE=6@IN*b=!)fYwrNj`!z<QkCsdTHuPs*kQuv$2WRvGZ
+z^(sl)Gygp6mWDWL3nRHBo6`heB(3i_i2r-j^mQD@8Q#PZnLd}eV04~H8=v8QW~n&C
+zd*f1ZhWCc0;@sw|%fz|Ov3zdx{Y%8T&4f>Ul<9>Psw0BuF)M=Sk$e^Mr#$4>OwoA-
+z?Gb4-E<c6$*p4&@^GSvpqWjBi#QCK0T2_Oxw_JaQ1*khM_2It!i1BA0j|<l|h<<ZA
+z!X2>f2PQbT(esdSCNqwMaqPg^2pmTQ&P5&<7DzZZARGivrHTI^Oa4FVLpt*~PJ}%w
+zCI3I&S*kXB1&`wh_W$WUTmO{)o*6ujXh(XtG(`8Am!anziL3GN^+UN7XQ1Ba)eEjh
+zFLO2is6q6Vy-24zpI%t1mf$+cq6`@;QvGY@I!I$ogFlft><9bP3aLN!ZBr{3D1Cb-
+zi~c2&|GaNObbo4m>v_Rq-k*BC)r0-%?XczJ7Nxfd|7nf<brz+J`qU6?cwa;GJNPQf
+z=t&mu;LB_$7q8uS#)<a9i8TAs;oC^ExzR?xR4@9}MJUt3NyC?U_X5$U(pr9_Pi?`q
+zl=`o5xVjbLCG?F)QD*K!_+zcF&DA*Tml5~BSC<_d!9~7xf#67Zhx-v1_aiyLvYWgI
+z1<>6ooo}1ZHc8;M^;aCiCLh;@`}&XQZ6;j@d71efEouw*)r<FHA;NEkX+Af%Yd>*}
+zr46rpzNGs`);)oBr}Mzh)SI0DSx;xXNaugD?sIwVd#0p&4Rp^qGPJ!n^iD(k3D$E1
+zt)sbRcs+kC>G?0Lr_=Cfpl7Rzo?{WWOFA=l6zkc{YuT$}g`U5Ko*O<i*RvS$4Xo#K
+zVCP&zPnV?Uk62F!>p2d3t})T`Jh1JOo@yQQNU@&%BZQvWNbCN<T+a~V;m7puo#@x<
+zzoDP}9$c6|)R&vWzT6h**2unGZhiDS90cw%Y5n{`{9k#U@a5)6I;J8m^BUY^and`y
+zvrhNr8i(=a9-XgfcDKWpXKx<f?)&EpyAvOr?C;V(k_jeuUr*0mIzzUE?Ow{?P*%l=
+zGWFJCjP<^`-3t+aBiE15ft@j3_?((A<rR8vko0_QV5rX-k7w|Yx@bKgrDrak@w$}t
+z4Dq**lXjtJ5PG(?nd^BB@!w!P8>)+bzErP#5|4itW7IH4fnE5qO~6=o4Icl^b<uvT
+zx6a_~4|Kh@O6l_|W$Fs((#XD^6Y?DF>qYY2YrdYZT%EB<_<DBcf`|PQUCM^UKf;zf
+zP0BR}am_OSKbPwWkLN0-@!W4vuG04e4}S4`(Oh#&q_SPErL+C~+8DuwF#?^@BkN^{
+zUW=huvB@*NfV@uWyxN{x_SIRhE7I8Lex&su)^#EKD$q;QiPoO8e?+=v)QLXeH1h13
+z>K`2A-5H^q1G-IxZc9ycdmnjMO5Z#Vv2K<8&10FQn+It*l5Tm2&2{^pq}$8L<6_-t
+z4T>{DHz#z9hi-S6=(Zhs+a>?8x^^h%c$+lFxw=FDE@S9MYvs*!`?6N(whrM{Q*_;E
+zoy_^GLv>4lZrybLuZeC?BJV6ow<l_cep^YCbo&&#rAWG^45Qn-l5US6eAcV$M(cMD
+zN9d+Nx3{4i)ul+?<{~cO6uQl+9m*@dK^mjI0^NK;p&O0Y%yg@gben;2ChJDy<(Ht_
+z2er}f<88G=$77ROk6DN-FyZoVOVh_;_DOc-0>YQ@>*g_9JFdsl^sySP&5s<Td8IL0
+zERWF&9u{M?YH5tNmBYl@U&-MFgf}e}{Qb`_75x3{r7>OUQZc4;@R;t?MPf`xW$6Fe
+z56^pj#+WX5a9wDHqOS{8GU+=+j@JJwg{QSK360_CY$HqIMeYCfNV}Q7>7p;RI4`RC
+z=%41J-$Xd(nH~IX7isym(PNd9NS`Hrr$4rXzhe?7rlQZ6Or~=zX?=jVRJHSZqe-+z
+zi^H_GDuKhqv*YCO&k%NTcplwP<t}-<=Ux*%cJCPa9e?Kz=B8vnq8a_nD8$vb4dwE$
+z;_vGhc8IalO9&f!o<X@+dC+!yCw0==3L59Z=doG5wlNyFVZA?Q9nI+kN>!sg<lkpq
+zBToYIyox*y<T1*9h|aRQMxORMe+<SG$qC3~*ynZfT_y~lryhCkK^`aa7<POad77`0
+zrx1BCI7xOP4~<W&Ovb=?H@nDhp?XJk?ilW`lE%PZXNj6k>k0TQ(9P0W21kF--@tqr
+zw<;y-L%=w-Bl>yHL|k_*pC`c2YC7UBjuC5lPNTo54&c7SL!W6Ie<OcVdZrT*rZPPa
+zy!|G4;}Ewp0`Gdn6-#(4fcFgWRz=|DFy0agFAia{djNRVCU{n=V-a{)A=@S4(K#2(
+z5tk5wXPk3!w}kgK?xQ+Lb5GBh;C+eo${j=TIuKVsTHqA}?_R_OBF?*5$#@eayi=qX
+z@Rk5?xe4A;q<bRp-bY-9gy#a@WQvQxvol_-gts5}(fcwLc=zsz?uT{<#9Sf$-x*-O
+z1n!5L(GQIZi0?81uYQIW+0E!{wjrDY`M2$eo{RibK%8$u|2MPz6)Zm+^8fA+_hs?A
+z1LGUo44z*)9T0P#MF_u%KFRAVQD49{bCUiYe=e>G_@zwJ`zY#z+L+gp=4fc{hWab&
+ztEi8<z<t)>+)YKGBg2@x*~4=;c+YYJ+tiyMRQj@0#kpZ4-MrV0$8W12jGntWXw}cP
+z*k?6AV=%-0qBif5;x1RGpbaRuD!s4Zf4eq+ug~3_N87&}*Vl1v4@CFdnTWeIPW0Qe
+z*sg(bx?Q`!FV6Py!@jf+VYu-@SwPzV7ZB%XeffaWH|J}e)1Ts~+#{v2>+A=`98R89
+zpTnW`z^~zY5B`4?4p;9-I1%ByP_DfQpF?@};rfv_m-BE}7x9+Q_G@-E&dMX4IIliF
+z^AHAc5#X7O3C{1d1OsE8%KWY|%KWhhkT)f?O-=D`*T!oFz$rJe)wd}BF=?IrfBSV?
+ztzw>)0Czx$zXRVBw#q@;9_Cr`edRah6#B7buP<=_KGc2BZ2cU-y$Byb`L0JfzfzQ$
+zZy@|Um$jMZROoyN9y1TIDav~O0WlU`LuJEQG@Zwy&!B7%nUw7v;P*>sJG{wdtKmHW
+zXA?x(ZbaH?=33cx%pZNe1CQ-SNabrpo~Kc!SLysrJljVUrJBm}JL<2lQI`EuSsviB
+z81q9XP?iZMWmyj_k5rZtF3U;gZgEOw>D?agyYR93ITihVe%07Z`iWnZ<q3p;uFVTP
+z-1Sphx7}yxzdcI-b&~$$NPjvr&8zdQ{s;8`#vgr_&l1F~xIvudvxxO~vi@`9rSrd_
+ze>U{L)T@`l&_9m9tr%xO)cM8vKKCG;%=**1;XO0OnVQBsW9a{or2p3gy8VrLueYK9
+zd;Vzq--@_;X<qmi)_*R~3s=Mm{mZrs{s-Cig-8ABcGmF%a1*Yf;}0br-)9|-xy}cm
+zW3`Emt)x@3u<^il-oI~fpo|ncK8m!OkNj%ryl!LT>?HXdJ*p!=muyV+>d=6$|3T<9
+zXVUO>{OT`+{x7ip9@d}Q!^cc)d<yb2rSoEsv;G%&t~OoLe+tq(=Z86q1$xum^BA`E
+zCg2BV3~%dGlCF=ju4%06_Wxz<YQv)_vUP_f5JFf6NMyulf{r*OVK;CiMhP%tK-8c?
+z5D-zrhZ<L0QCUR9HHa<&fqYIrCrnfXR9Ltg?}G>uAc26<MFnMDyhM@~Ou$9OXCsE>
+zzGwQhRXyFEy+7ue>gujOZ=F6}U3IG7Q)sKkS?GEb<QF@Iu3u-Y9>$s@?QPo==a!uD
+ztH}*E_RMX|zt#&~=OO(t>v|5Yy*h3GKE5X5zo}Du9~FKd9|rz@7P@{0_dhDdPI;Q~
+z=dd5QwwJ*FMHOuSpfP^H=7Z+=0ejYq_T)jNM*+Y4I)6alx{b)+$VHQlaXk|{HUF*?
+z_OX@yyG`pY{C~)EO4!qJd|dMHhDq2r0eeR`{@p?e^T_pDT+gjR`--NpU+}vOCGb2h
+zQQZ1b_VzSZdLCa~((K8}_ViEG>FxDqdm6Z&*3Jlf>c`LHJo|T(rM+vPLY>^-+S}5R
+zdcXQdw*Ai_f5Wx*@997Z>)VVqp0O?m)*K70XCS{UMqq8J(qsK<SYML%ro9#CmZ|nw
+z-M~7Iv2KF=_7;0PKa(NWK;&G~>^z$7JdM{tXnD)k(o0>fQ!H%fec(AE`HtUX>>H#Q
+zF!~;_PMoXl#&;Yl*^X`_uU2Wk<7D&^T~8}*DatA}9ay%q?|32Z*SksM;q+nOac|jo
+zT)kF(a|+6_@0j-JB3}pkbTlV}I(h>!jAO}%i~Bk)o=*;Nw+|H0XPI6{_Sd#Z`^cX3
+zX>nZazO(twe)Ss3=L!AB#4F2V#zFtTRGDSZq31nM?5#<8v#X4Jf%%gBJ&->eGUE4l
+z-!^Wp(%MEE&rL#_`nK^|>(nbHzhV-~Uj|(zah&HQ$BSyrB_nnxuseYLaFy9MM$+@1
+zE3nhK;f#F?kD)h9d(q|td-W;5nq{{Zh_OFg#ba5Vznrl<f&Kdqfz65XlY!kCc(%00
+zaE1D9hY`CQ*uUxM8eD0CJrsFiLD)Ne+=l3TtV;XB&cV5sZ~UrnZ}-@5m$0|`H0*9*
+z-y>s-r}={yV|D`DA`6>1fpXb%j5hHlW1Gg<G9_#`;oKzPYHzZ(2^wd(7#HQ$5iW<e
+z&uY1Z%Z0Kv6qk+d!2x?H2-0a3bh-w(CtB$AZ@BOFETc}}WZXU;qnAnh#6}VBpnWWI
+zEcUVZ*(Y@BWt~Prr+@4a`&N)2xftW}8uBF%(|pK{_&+{O^C3GE!jx$I!V)xJay#;C
+z@oT{^m&g8k444f#UWT7uZ#VFfFW1d_aX~M4NP3|?EE{Prcs?J2^S1=z!B#ha^`z29
+zZ4lb7=G^$Wz%%}s>HwRK^{h~D>=66cd>WWDM85{-19OLL6H&yo#&eq<&~IEI7O<{k
+z%Fpx}_q1pX>}jFt_}xnMTbi^o0UP}$PK|PC{(jOil@Ih^ajuf(_Tu~A#C8%3JLw0U
+zhkWK|J_32^(%S#wjAa4xPNOZ^h2x~4xSB5HEtwPdTOE>U|6eY*hB*WIA)*d1R%+t|
+zx~>}d>-Gl4gXMScF_NWd`1`P(B*9Lae(h?l@M*DsWE?$6=3Ifpg|e3_dHo9SXW{H2
+zaAZ|dTqrFzt&8_HPTpsZO?w;3VjSO9YB(Ig@gZ<5!8vyjjwW1_E8%d{{vV9P$2h7b
+z9AjA@blvt-acbi}YkgctvKYrf#^C}EA8?Q@IfHO~h-)141P&+4zRx&ZyiVU8DsaRy
+z4!SO5f1H}u9B0~FoUnxR`%BloQK{J!?K!;^I8tyfJ_v^o*OW;(Xm9n>N<Fq3b66xC
+z7c08jcJba8@%&sGEcUi&#y#R$A1hcN5zxm>;E?B*Qlz=1zWVyVsbX#^bcUE)Qf7#`
+zrAyPr+|tGAVs7c*oOU98VY--SdY<n|acjQk{CK3>IPF6E45!^ltDH_k`qXqWM|E<#
+zn4{{=b5z5ph&d{1%g8sGQmyYVEn=6r$gjAa<^n1L^91YYc;WHi=BVxqp*gDd!12|F
+zIjVLwsh>Va)gFGVLd;R^spR(BqkY%Ne|#N1zc?{BbPYex^Xy|h`#ZmyOZV^`SJVG)
+z^hIZk^W$5z_RRcB;fo$vN%KP$0bF-d3<FNjq&@+s=OP`;=>;_Z#p%UJyE&ahYvOXg
+z4AgzW1O6B#ry5;+W$^s5grO+F6L~f-x5rQDOS(K2fqA?s0Y2nWE#57zeYW4s<_4M@
+z8wooYaZ8iy0opq%yD2pO*l8-iH?Wrl#^YI3etNSzxgtC%d3AWtz<l5r0UTcvCufY1
+zIk|^2IGQn@7_Q-ZhT@M5r+K49%Xy;`V7!o1-5kZ`o}xXeQLkS3FT=ef1^{3Go0~!$
+zE1F1;cU5Zq%*!ClVNoVqDii8h9w;-O%bbR+DDHC;hn{pW4Yng>WaIZTl{-b{Qn(!1
+zhptDO2cvR5CEcBwZPXp%IG$u*=dXc%vyb)~TTSuQnrST;-E(Y+k`OTj_XM8e*;IaR
+zQ{cY&bl-cMD?%tP1oE=7o5EmEJ(ZW6`Y^_#uCB<Q$#mV+=6s|B`N8{tz*dtb|KbxB
+znmwoL@lvAv>e2G9www&V>JEyTvMf!Tk08$5RGI^(*znMKE7@^!p&CUzb7jUi?a+_@
+zENKnhkwkkve8SJLcC<fmeN^&lmCE?KDdU80k5-uHjna@e?F#X(rsBBf3NdHo>El<c
+zP`8;M8Q;?lqqTZ1tq||&Fr-tE?*N{s@NA++3md-?x~-`&>oyj7M<w5(vx4?c5b|py
+z{p$0Of8?+xKWVh^t&{v&6%zj!X|jtrwhQ#*2ER0mW9$u}IB{gF^8>cp3${w_=&B0M
+z4k*UemB9FHzi9!xU1fpw2jFl^SkIMnoJ+<V4Xk$~FR8Y|U;|5T(scC)3G4sjx)56b
+zZ}CjN#JSqb#WVRF$4!?Doou1_AIOV1Y<wmTmJ=gAle%)zc5X+XbICA!8_6j5ho7Nw
+zG~O@0jopYc>D`oZqRbwYi9i{>E%u>|qnk1<W&Ut#znmzex7md#bHZ(3W;@C}jxw<*
+zqqpt3v=3}IWtO2#I?BYOjQ$Py3(73&rpzRiq4wB~GSB8!H!s8ZKB5QS6Y`OUc$yR?
+z8$XI`SD{`k*K8-Rvn%pax!GPGLSDP%i<`stqOc#drI%klPzHOyL3@s#Nt$hkpv}5)
+zFu-%~Pxneq6>Z4+a$!T0kzUxT*}89rKL%}Jf3$)9_oI$$X3%<oYTA#sRd2ILTC~~J
+zuV~<UT%f&|@c!I|dmbt`+vNzd|3ShohvPVRkTk!H`V^u*X$Q6X<lLaGpX|l&>J#O{
+zF0VqGzF!ot!e_DOp*O8Br}l(-zgOXz_@p%tDUOxu@lj&U!;>M}ng{YNt^JeI7P4LA
+z{iY}@1M922<>oo;OJ!QD5`7N)7aT8<Vwa@%^s5gbZ}R~ohha0vE*V`e=CWIH9ofry
+z$XZ%%p3gpo^JgCt<7LYG8hK7h-qCQsIv#l~^+9vmEHAEHo6{zJeo{tl-KtZrtkr5W
+zWZrLKfAv(K7-4^V%h-?2zR3BIHxzkmCTQ{&)r+>Z?s{Q!A(G8Su`lm$W#pH<uQ?lf
+zpBY$dv|9B7$7l;2uS3Rp$*<^V9PR8^JVEPTkr&1|q9hz?5{{E)0>?U}8zC>w!cJF~
+zi8ZivyrRs!2KG#8S6hD2+N2}AHi`76+vy^t$zK|7QLo48`APM9l;vcyoG{4wq?E?l
+z#_vHk%XwR>&n%>0ft<E7vz)2O+b*qry^H0XWuKuh)UVb+jyp(>!g2~EIUb~Mg`7{z
+z%zC>Kd6SBG%?0Zu1$nw}G_bA}vdSTg_UDy#SIqHD7E8Lj7HMjG{dmXUvygWs@{Si8
+z<vEd;BFU@mf$u-$MFh!nvAkK5yxvID_ks3{F1L^ug1qb?c^$ZSowNps_Q0KkJYUcn
+zpc-CtG**&#4%g8)Y%=6MZy`^``St>%ye8yLljJpp_|*x>OAeBk&hoC7<b6tdfIJuE
+z&9RVo2<LNy<kcasMOp*25b}mmorBf@9pyDZJtcYX;X3LI{0e)SU}2YAss56@z}#1<
+zk#D9zUSH%n_8R-e^I2YNsjyA5t6q?mP-bqc3vq6XwBBeP%Tf9ZU*k_DV!aWqX`<^s
+zD-~_@a-{zZ-3_qN-O^Gc2W&Clf3w5^`zP+du-2$IAFnssQ7ZKI2-26K9+?T6uW^2Y
+z=4-q#Bs{RTsCHDivL8QZqUMuakf`}57ba?Jk;q?3K1^DJ)PR3ig68W?$N91Z&Cf}`
+zP4an?|B`&6v?hsso3v)>Ec-amvRv{B90R64Qk^Ld>KL*+jvYeBH*%db*teLj#Hs61
+z=PZs<Lgo8NF-o4Jdvcu<kfy%U2c>4+UW2@{{5XSMURA1dOGTWL6_8aI6c442Wo1eF
+z?T2&;^jlqOw#f*xS;<EkMz+U(#z0)HkT~^G$Z-X=l}RHsITIy&{2A9#f2dDKS8Gc3
+zN_E?>%z^KQv$tu2(&lp8^Vd2jnAd$xWX|3=8_r&;#MvVb{Gbq}mDYLzWaJ0<-;V$L
+zEp$;|LVG+)-~ST!yK<i`SK>{%aBkT_`}w?nl3uoz2)^E9s87mu_VwL2L9F%qPU67t
+z!v9Q)f7;bmu^VaH-~B`UH!@f6TUu*7)Sf4_WrCQS-4n!jQ=rGoOU-S_a^PMg_4l4<
+zedKZ<Y>C8uYVuMn25bJ!Y~(LfG(OWV>Wg-R^F;}#H;6~(0?vPxm~qZPUW>$Mn#wqv
+zxZid};xqjZaMs!InRe8Z&rZWx2-$18;a$y?a6T3kXJ80$)?45lULw|_)A2CInaVib
+z63#Wi8Eb<x8u@O<nGM-3DfYap-%B`e4&wU12^*@kz!{3XVu^Rv<>hfZ_tSDD-ql>3
+zTg1GpoH}ccW=4tlrkus~V=<0TcG+|FLM9lwdLx;u_apG`<h2}+mzdw*W4QMTso(c0
+zj?WJiYdIPu&Qpq){NncSZ(NCZfA@GbuHH@?uHNEwrS&!oJpb*bJ*XxAFY7T&kEs_b
+zxMdEUOX>#CuU<2^tlX=u4{)GeiG56IOI22@v~G7NuMaqZK2qd=;Fi65n>DwL_&!H5
+zE*@xMAJ2J>JgH~6UTZ9PQePDtc~Y4+JgNO&VI%Xrf+t0MpLaUVe4nkrMz$1;ZJO7}
+zlgjiO=dER))Vsw-o>Z+37s)4KOY;hz6!CptvEY~e71-)6unqSbc~Zl?#(8U*C$*;d
+z|HqU1vxF_iD|k}GFPm?{%X<*m)>~lf={54CdU%boEM%V4L&Zj()JrxzsXHZX-xmv>
+z6!G%L0NXOJ`JHJgHu9vJiZvW5$m?qnw_;JEHov_Y|33Wk@p~yz#ImsBN2N-0Sm8W}
+z<(e$!u<p(jb69s}iaD%|OfiRbTc(&}nwTl(m?C+OsrYs=$3z&32bF5UgPIY<gBl#f
+zgSuYgK@AGxL7heWF}7HnTOuEi+iUJi=Hq;W6mN44>vIS45}5z=G5L}Hi}_ECqxf}y
+zcvy9AAm+M0pVN;xLCn*6QQ}11D{-F)*EHaAGOpA>jOh#7{)%YFucbZzfE9hY){bH`
+z-ud+WCA?WUj+WZ+DBQcg$UMI7;PKyU#iHLk1?j_(Q*Gfdi-c``1AV13M`$DJRxSC<
+zQXMPREhB}$YyoqGsIA@msNe{tDl64I$T(zCml4Rz7$EuoSodk%PI}Nz7NRbbg2uAR
+zT$d-Lx?F{{pZ0LQ+MXNL^r}BR3eT((dVa$KPhaHi3gWy(An%AY-ra&W=y71G4I1zI
+zc>H<0gz1+ejbrlyaODoM$2AGKB7o~D;CjIV*XbfN7v~i6QiHfSw<0gehKu8paD85+
+zadC*dHLuv*)_qiD<l-DG(w@sviHnm|Wai@ZDHiS7PMlwg``=M)_FcYPWaQ#(<NIez
+zT%714doIooMS_b{jr1VMNzGXqh>2XAD7ZK^iGqtmZ638VGzO+NFo*d#db_A|aA+Jx
+zamYMqhbcB0jmh-!m?M6zddqmFt%mkWtF2V^_(O6`tcvksJoYn>$Lfg_N#8@|?&kG2
+zammu8xMUc+3|@@3rxwQ#;`)n4=I_AVB8rJ9z5@@i4&%A+6f5=R_7-aUwb}KZwiJoJ
+zQ$~>(i$zdfZ0eacUW~);;BnYbs4tBpkI<M4<$imIq;hwU=e}#c)_47u`>wCx9(%a&
+z`k_UAha%4-#SFVzKjwBXN$OL*jQYlR6Ekd~R9^?la+IrkZ2GPTZ&q3zG$v4HH}Bwj
+zIg+c4I-&l@c(GoV#ztEI=d(b&KGYC1Y@hlj?Db`fI-UdW*;34~?+T4P@kvt5une3_
+z>n3K{4Mpbu@UcRzKTOxo%vRdc6z2coT1U`2n!~vN5q?J<N|kz`(AWm-lKMNtaBe%V
+z#iMIU{`R1?c+}q+KyrBR<abc!5y;-7uhqr%eR#im(zjJ?FWRqu_e9YjPqEOUuh7^(
+zDr4L(<Snx3A2lQz<9Z!WH1~(nr2bG3?hiHHuJ><_sV66kzD}PzMPH{6_jT@_B>Fle
+zkK%ZxS;X=3{1(Sc+p{8^V|B#``UsSN@V8i9w2#ZLU0oGF6`FN$U!jQEMfo!d%`v-n
+z6^NK!dRaYYS9zhZoq)WXcb}OE+c{on{#JO97cKSK(^yut<ga}dvO0p|IiKgY{4a&#
+zn=!ml+goCTMSq0WL+-}&PLtwxZIJpSX^vcVgGJmfs#nz`nyu?`yEa0`8-*6%f8<S)
+ze73#0E}3leDX{rJ6^OW9NgTIpa-sOPb`)rFyV4fss;_iu`vbNlYPLqUMbDqUJBFBD
+z-S9p)d6c$>-|PH`LN%EC*y%C*|7L}1yw542njcVnYc$@cCt2ftI`FL-#cen7`5W+m
+zE<}l3p(v~C=v&l7iQI<tKBS*S+S5bhgc7g+9t*qMjk+(8xS;PBaO^5xr!`aJg2v)p
+zW;a~WUXl%NDiB=Id8qG>;r9C2=@H+h2G~WS1<oSeuTJ7&<}uD}=3#E{D|iV%=6AJi
+z{@5Pp*9B%?!gB>(t<ht2E>4k&i&Nk+a&ZpxH*kKK61kVZftLy_=KqlwCE=cf;~lZ$
+z8`v)K66=8be4{<?Z4&Og3N$XxUK=h>Pmj{tNSs>O2F7En4<kJe_7KxU<6xH3x~y(E
+znD=;uk8L5vNs#zyKjA+6Eb5woym)Di)KGp#jl7m9N~-Isd}|J1<41n=gAk?l0PsEp
+zIindb`6Cx4+T$H2;Z0|}dfc`>xKD`%-cDdxc!j`wF`xI(WxTT`&gK0!c%8tT2fUvE
+z?>n%8zbeX2e@FTrq>tc#2=jL-epn6djTEpaGyY%3Y52*$s19Mu)PcYoif_z72gSn(
+z;zClnFy=Y8QdzW#k;*;Iw5Ll(g85z3uRTfED*38k$!y*T+kHD!Sv?EsPtoq|L;5<T
+zUqk*l{Qub5H8>P_NteG<R-95s_yTL>YH;m%3w^!?9mPv)qc*ZWkMO#sD2W5wJKq=^
+z(7;aw&I|d%){E&{rBt1Z|Fg{bI}L2}yWv;9F;3V+ZKq}rDQpjYVGjc=@Gr&vvm}1y
+z;(TKqzYK|A`Hwt|bq<O6Qn823@ul`lb(n|rZpOZY*DTp#Uo2rSVC*`VI|90I&NpMf
+z19=;q0{gA`#yEcY65sMIV9#xkbYHvHfPEUyeZrixwVhflKRc{<NLU|ctjUZO?{Vag
+zd^6uAK3}YfqT^V`x?zx56QyH)0a#CPEI*3r7tD1bJwKW+c%fuh^H|Rh0FS2|?6DH|
+z8yLIJYh4K&S!IF!2jEGQu%FA*u%F@iBe#S-6X)WC;t=Y%j~>wDCC+M2f$XxO_BekW
+zD{%H@oH}1}6mULhf%70_7fXD}{fyJYICCVv<WQVja=;p=`+y!VaaMCAWS{SbE7>67
+zY`&!7)aSYIagV&-0%sLupOv_h<&3k8=Z}s{T*;1gs8hW)=ZWl~2It6@)jVMjFC%^O
+zl7{~)U`p-=f0=~;UB<7^e{BW+aEtfuaoj&iT3_`j<3G;xN=^xXBk-TEvu^VU|AjgY
+z|9g3&-M9zoZH)gdU|N`B&#TRr@ULL}`n(uAE0M?Y%=#aLyamxh|2HyzC*z+PCh+@!
+zKd|RE@XNZ7suR5Z<&fKWjlGV?Nf>7_##qMq59oMHo>|AydBWct82>ZIMeH}Jk@%8N
+zue1J6Q~W>Oj%PxyyBmy`Nf<{kMxFB;MtyAyJ+?uvOX8HCUdP`)_KP|sjJMn9v1XrN
+z&0vgwfZUg^w#RsGjKCPd81=dD&(ZgoWueD?keeg<V?JDG-2Z5S#N8ZXqsI(joXQw`
+zLT=L#dyI7w#*-ZyMm>%P#w(E{Ec93oxhMJyJ$e~qE{{zcBpzh@T5CPh82MtS<~Lb@
+z@kiu*r7aiZWRJ2+%}mZwH+FQj?qwfF4z7**4}9ab;|1SX=F*-gE^Ts^s`V|_sPz&@
+z(2-mfldP<WsYSj2z0UkB9z@>%vG*_FQB_y}IDY1q49Nf|H;E+308yijdICWsMjbS2
+zlxPPG7d6$W*rKHx6)m=?lM4`HVgm^m5zN@qx76B}zO}8j+75~qEwxy&rIxm5W;hKJ
+zZLvj*3e4~G*?UjU$pzcr`+L8?=lNgqJm<-oefDMTwbx#I?X}ll>+q1flh>=hnriR5
+z&vAG11@v`K%$7IOXH~2(t*iOgqxQYYEAUSJrP0uA^*Zl#0`7X=lTmQz1Mc-h?u7Eb
+zOo{qlg705*+`FXCrC#Y>_LO<G7@kHv9e5h>EW@(}Pq<9#WR~Lp20RP!?837RPo!+{
+z{mVu8T~%h^za;K-;O=hVZtDoR(~(xwFmVv>vK8*?l`T<&<4)wAz}?faiG%K)F2!#r
+z{>XRdJMj0fPKiGq`1|aTd&v8E=Sblv0Q_7rWZZ**{Sv_bzzDF%NwYT(hJ9bB;<?I3
+zsn~HB@?v~jxP36}72AiyUh05-r-D5Q*n<w(@=*uvIPw+jUcg>B1a?1Q&jak_QA6kE
+zf1}=*19ql;SHZqV!M@i4yN++gFG^Sm`@5<iL+{Xk)M?*ce@wyd2kh^EG8nc(!1nGZ
+zsqs@rfb9{KtG{J1Y%3IOjp|P2633m&cRCoOVxoOc{^D@h2=i|pu-&6zD+Fw>4S}r`
+zu)Pe}j&=@*Z6VT*41w(?1zSMfZ`2+48(#!$g)iB#EqG~U*uLX{ZI*(q6tI260UPf!
+zAK+bPHRfd)^T$6Ke3#kHyK?G#F}`;X>6?bWJ&L})+&P?{&mv#Cbuc}bs=ggieS6o@
+zw@1*ok{yHT*}G#nJum6B={aBZO+()n1Geu1u8HJfn%2Gr@8gBP>u~aN!05+*bq;8H
+z;|Q?2J82Vc+XWu)kZ^88n!t&%-V*JUH}}oK@8zg76Lqh`|8r2c8+BiRx_`kKhZ^-h
+zVG%3zIs88z-wFFPalbp7EXV%<{-48p;rM?R{@>TB?!r2B_J0Bl`M25lE7mq!dlg)z
+zD*jNJ&&J;c_*Vb2#9y(x`&#|-aQv09Ep_*GM~B2;KJZtJeqGx+{BHEmkZ03vgYQQF
+zIE^0#$1@H%PR2L$<-vEOcZ~oCah|>#{dEOL3E=qn<J7@&e9IpK$77_A&)ab1qim0Y
+zqf*5$s>-n8_}3%gkFQ8L@)aC)uMCI7B%T!<5e0`AaO?#fV>^f6S^qNfJpK8>ch>Jw
+zaKscGI~;Jl1vqvoILg#{%8?;(5VoIp*mu@%RB%)PjvoV#_d15(6`zZ=iZ2YlD;`#G
+z)QppG)Mh&F{{xP?UrIPi6&%ZcIUJ5n9rj)EDg{Rw;OGGyzv>u%M|&F5p8vw&JKAR}
+zICd*I_Bh~J4LA<{a_}APcYis2T)xs_-_ahg;3x(h_W%y$N!}#pWi<Xd{QqXh@H_0I
+zkyf{8@Evx)f@@Ksgln<ihU<%fYw1o2SD}Kdb?0!n>e!Zo>+mBIt^nYw1zeec>wLfi
+zIWc)2{_~t?I_-jIp7l;>_tl9|s0*~!Dee~XJeu|uZrTP{Q-|DRG5yXfw0^I8|03S~
+z>U|O31M2-YyzA=y7QE-H_nYuusNU=GUaa1)!+TJ@&%=9(dcPL$rRqJ5_cHZ<HQo*N
+zeihy;)cX}zsPnLJH2(XL*6#}OKALur_anXG<%vwKF3Im7r&3v!`daG(!i=;JQ>l$i
+z|JmiTyryrkD)3F5vlzm!g*aPlo~iYR)R`FNKAxw9y1J}<akh3{lILpFX>&{idS}7y
+z!hYzn0UI5!dhZnejOF_VVY?&Wzajh?%lGdIf5!6tryB2y%l91`?~2R!-_VzbdVib#
+zP}IA{byK|`!h4x||AcWx)O!ZjhYIyRO~$haZssR58>5~v(Upm;rpNk3%mbcnHLgqq
+z@QrxNSNn+#GqC?4O$WOzmoX_pdxJsu7oY3(W&L1PChd%@M~0u}U5&H_&&mB#b~?T*
+z(rO&{XG2-N)_2=e{Z%uRoyqp@zO*fCnYu5!>Jf+kZ@i<;zTfixE^R7|$%#W}@N9Uv
+z9n8L;_WG*a+W3lXtE^uj|JD)C0RvcTxxR3WIli~?4!7eRFr=@vww`a>CAIyuw}3uC
+z)BCrL4WL2Hv5>Y>*dT<rMId)~S`QFD;I2;GGo3V|olX_tJL1yDYk)6JH+S=%wdz;l
+z3Hs$lxz~9Q7Uj}3_IZ{=d;3dI+}^HddwpAY7Z&Bx^mv1#J?ec&D%XQ@U*R2lluOfY
+zShct0Q`)OXxiHG<D3_-5%N*@ho}j%FlsgUO@=-25CuXSjyr0tEyFcmm9o4k)g(#Pv
+zKj%2w+j;uP?LC8XzeTxXluOUG64hSM=_hV)8Om)%xgg4==jF+c_7<F=y=s(u2<1vp
+zE<K0GsP;-erM&>k)uCJ|%BAPK$I;$_(?)J@&yRb3XQEsg%B6Y3k>j#G#&9`Ndz(<s
+z*tW{|-tkn{d+o!|x91{l>5uLC&9pGmmO1W>He~c#KUyX4Dmd-P!s^cGns)oFdnVq|
+zp7qA@)WJ7KXzzTa`G>SufwX|5y+giU>oK&a4QbC*_cZT!w0A1riIbmVuKs9*_9h^0
+z!;c2HSBSJt1$KK8wD;gDrTcZX*QnaN-qGGDymRbmzxdb)?Ya1UNP9<DNgZywJss`c
+zjI`1r?P;pLiyZB}hkT^5+tA*FBeZAX`?JpsZqG#8^Z9mrjCX$-(}vtdO~<>R>}c-|
+z<l|hp0PWp8LVK^`d(Dvcb|9_R(Vl_!&OlmtNP9umUWTJR(iP`y4%)kHg!aCR?|XkZ
+zxV^2b<ei0q`<tF#Yc$gK53z6ErtWVZTxGXMx*~7s1AU$`LVK(6ebJEiI!ODD_QGiI
+z{Wi>-A?<}!d#^j%BVCaP@@#JO2<_d6???W7aC?nNJL<f@>F%}OLVJNB?d?`JumA06
+zk90*|-HrC%Up2hF>yXwqq`f+%bvW8<M0-C)d(j~_whgMib&mE(S6owWM|*FL(B6f_
+z_mK7~Ip&V`G_<!F?NtnE?~t-R`ii4H(iPXfi_zXsM`&*n(zgC!aC^l_d)i?a+vV!D
+zn$X_PA$GA5)!vPc_DEM;qYKd9<`LTSA+2&qd)g{_XCd8Q5bfQD_UebUr>piZakNLe
+zqAbyWEOoGHg!bMc+}j4Xw;yS{bi2K6TCa5_(hd!|M;cZ3Ri`=HBVAFpT7>p)TQyw%
+z`!&8V*fv=H+u5dK{HQiVXz#2x+xE9o+5QGr*)reH@crvNXJY=Yl~y3wX-zt2+umts
+zNnNd9>1xxy@ncG-yG7}FJCuHxdf=r>H@rych8HNkF!jJ`J1Y8S-#2ruwb#{Uxwi3s
+zLW9YDfCu}gYq3_|d+~B%+gsVS*{W)w&a%^bPSf7rbN5=S&WK<ya&3HX`Eu)U`CGod
+z+t*rdqs4Q${AJ(%^0n6PNoy^S-eGzSGwzAGOs{r}83^8DLdK5o-M$=q<LLIiGnc<i
+znRE|+kJ6*ANtDy|6$zJta$246i}wRfn?ZZ#4B+lg;At=FCY~~aFZJyK>={Oj=`vap
+z-cNyLUtGbXrQy-cF}j4urQjJuc;d@nCM;f|`??{iK{obpTj}%Sp+By@uC<m+Z%^z)
+zT`nU680W;71HNo^kMD8^d|3*<tp5Y>>E4y^P*&F?D}4bx7mGU;8{`>TDC&WH?sGLn
+zJ?MvP48Ju*nV!_JkMx9S*R-L})v!YBcf3Yx;v-=vGf$QU?ctl7W%1;&&+M;P_4hLL
+z*Q@Ljv)JG5>U*ri^co!rkAnAH<O_(qEu9JEPo`GNyu=A875E6p1uk66Pk@Wae}s!b
+zXr-k$th7Qp&$lG*OE7Mg#!4$3TxsRwDa2EZrxZ^ao**6rPX(STJRv;Qcxv#};^F*H
+z?-4y*1F#S3CH%w%;OBiqFZDY}e@yl3C6%^T<@=HPy;}XgPyOyxzpqS5odtQxzIczE
+zgP3<?j0STo#?g(rdGEumi3>R2Ztg+fB8dz^L#?2pJ)of;g|{8RTMuy7Gibhz88qKo
+zLAT2j#2e?<-gxWF9_>akzxLo;DaOjL&ff(5sE>H`frfpc-#xQ?EYh&=Q`%=A1Pmvn
+z;Z|XPCC9GyWwskIR#;ki1!!x9<;O$41@#hw{{y#|2wcg!UjV+unyJ#bKR$Gsynj#_
+z>P%=+(0H`OI{DG21Z|IrKR08~gExDEk~ecd{Pqo6e->!Z&6qzJ4`Ca<{DlK^$F5BH
+z6ra(J&ctq&k9U;x5OsMyR+d&Dr_azsVlN}tjR5_nDEltq`=4il$7wUwYVpj+N=Y5s
+z<&OG)dV?nX{rowV%F0r_gXg%en7murpm!cvhdQ*FxKAeU)2VjY{>k-PKkZjy*vBuT
+z4SndWcRbo`jHi|r3a%FSCaR3p1yx3K0rC`7sk9K%LQD%XZ4LfMEIsnVfspc3?MGj$
+z)O*Z``0&ji#QGJ)S{4lA!P@o43hK70H|e#$eNHqPK-w;(MX*LK!t+fac6X&$3*r3;
+z*O&(CAwb*c8`l+&vBKoKQ+_XGj|@CJ(XSBrX{<Kk(n8=1^W&~<n#p_p<^L4`9cyRO
+zuVZHU>OPltuh4DeRkoYOG4P1;O(Kow0D0#=V$yG;2l+hOb#dNxJ3=4TpgI1=yPtKV
+zuIa$jnd$maPr-RCzo^~JaIwC|B<d+B5Il9QrB8dr^sH{`V_m$n=RzG<DVV(FT+>bA
+zyNq>vf=zva5Y`XO74THihBv}8vK_|1Ed~!R39bb$$>Zk4XRCHxq2@%sCmPS4#<k~K
+z`k*`&eLYk3DJc9qCOv4+6>LtpL6@FTQy<&;IF)K=eJr0bsiUt1?Xw?4VJ}3UeAQ+t
+z*IBmbM|+jBJ-{d06L=NvnM2y^7-+9hwU;@msjm?2rTaM)hu=eg$rqa%=<^Tb+OTqR
+zMh@>sthN4yIlyuEHvnH87i~H3Ka``M>E8nG)}dT8^~}I+ej(3h&?d^hgK})2?Qsl>
+zQ7#`ayr%N=zNILWLw&t0vkzs6BlfKn`Gd&+WJ>yySgbcCg4;S1<WWKgO5V{W&Zs=p
+zeeRzGTG!TtcdfzPmNCH%E!!%KWn0&C?7(+|vB#{^-Pu<Aq)mP8v!n6ma?<%N<{02B
+z(|9TA*?l$naB?)|%yKc7Z?@bFeiVtm;R8SRhNEws13u3&&T69l19?@qHKx2<*nCnh
+z%ExbSaE0mDyZau7Z06Np`MpbvzFCNJZl1vl+g3AK{8Ekyo}F+Ddw#AN;Us+<rtqy^
+z@Tq33)35Zof}zC4hAYuhWnzpkNqhtU38TwcY|YGz#{ZQ{z2-H3*XJ>s;>^!JYN1xt
+zjqx=fO^gA}5cWODmx_23)K>?B>#<I)$67<5inHTIn%1sGUbJ+i`-~<bKLoHg2eIBr
+zf6D7ABgc;{$36+=mTJ8B+hPW=cGGsn6>U#saW3pGqWw_25iG*G{uppyWV!XlW?`_~
+zdN}A#xC2e`;O<${Kc+5u=nq*Z+GYEMXDAHdy=QvUduHT)oA){)V-KZ?64FGN_uI00
+zUh1LVyE2zFu~x*f@JH7wAOG1_Wi*?9Da4(WkWpk+fF^=~u?;lXR=x%}Z#F#`Th6P&
+zv~go{bWGC4)A-hMH^#pq`i2q8e#_exePax1BSu@GHNu~CfOW+>62kwV(OuvwUpdaD
+zH|37O`h;<N&ULfAA7eBC=C02tI%w0Q_`0_$np0BMl9MX)=DI8JztEdIsiY-GGwv`U
+zr@1^@Ua}N@E#tZu6mp-C=^%&9C`F&}dw+(K1p}B%jPaeJ_E9T<#~^KbgdDa>$mXP}
+zfC2eF*kTG<RI5vJoysh)P7n_st=SY~9jZ%s%A)ZpWzF$au_xgw!T(B6Vha9ygW7)T
+zs$-xJ`qE?m3ebcfv;kV$$g$u!a85g6&X=+(c+srHO{53p6W=*69DR5lwBX}CS-r?Q
+zRpomXb@{}dZOm^+*%ut?<5fD>_z=og3Hn@ZRSu<3^lOr<d4NVqXPc@et<@sG^b>q-
+z(#5lJ(Ap0A%w3APAbfAEha9mUyr&!c!fq>nL$BoyE;c7m;@Wdd;#A5Spw-&oI<dxk
+zc>WSwhk3XLyuP0MlPq0dZ*h!h$9;JU`%e0YFpwwMV+CSTw)22SS+5)OmN49{X|HLR
+zYwWAKTb1RjipEc^YKf=Hd<oD_JXPpRO!Bq>#vb6b6XSlXN&11D;__-O-hk2S%My1v
+zd#v={;IP^kWXt;%$&Xq&_j|;eiToDZ)J0!_5B-t^VP)Gcv^`0*?NV*K5|i><Fn&Fj
+zXkYI{S=s)1ya&d!M7?D{>ttVDtS=mG0ZyB;!I$XoBn`vfAux#i;pIZ!<rqvLjS(i^
+z1Ik$=crxK3Y=nn!37AS<iOHBtX_#D?PlSnQn}o|7r0r~z*Bgr@0(z@&Kjc3h`2uL?
+zkK{*+u38BX>i8Y#Dg!c8ZNmoP%Xm5EPPH$QIF)q1MeRY^mv0W~%P+*fBO1R8>3gR4
+zTK-VC81t1pzX^e#n8ZzOf_H_yJZB6((dROH`n=$QtotspHw-5!oBfOJmve2pG~o&M
+z^m+6r`lNg?JI+}0#776$cSF*Z$5?D~9k{@yy(W0E{ut&g+BBpt-h;i)6t0K*t%*+?
+z<Mj9rqAz`9`kL+<OkX$uAD}PI(f;2-YqgPeR&Cnf0_Ltx`>QDT3v=VyjA3eSkn>Et
+zOyD_<&kNYD!1tyBd;`Z=x92i0>_*UQ(kE<|Y+5~Q7_Dv?M62frTHP=rtq%0B1pg~t
+zi7ENb1GFmcHLCuxuU@@b(rK{OXF2F}pMy@{Zjp5QdqrbRdy8r4tIv_PTjiUJw5$R8
+z*))iL7!MZmQ2c4+@ke=oT|3A&F>mAd3qHQt3P(3uVqOPZ_GfAH;_N?VBkrHb<H+B}
+zaNmT!Yv8%5Vl5HGdJ+gpxlOJqT7vtkDLd@Gd-X_Spzpy*g8R6?s6M;V{tb@#_3IXi
+zf5O5sNW<|b-g{Co5T19BDL8b=KLd)+G>k=1jDx1=OgkZ+eRhDh<vf4D0mpY*hSI^t
+zK|Bs?Z2O_(se|cp3o9I^@i$P$K|A}8r$9R!htUq{Ce7<cq8-x7ApD^ZrUQTHI^ceA
+z2;6^i(8=YBPFfskGgTUG+;yy#E_GkTKeLzo6>D0LMLUfy;M=Ektoca0>1e9|hwQ%t
+ze<dT}U|VW%o|7D~&KUx$*8x|Ng6rFkw3AfYODZiFzZ(pj=e}^<&YP|BCLQH7RN7mP
+zG?z+?IMR+b%Q?1#{R6N0$8jmU3Yp@Hv)(C$JRx+p(ao07jZk)sm0055G-Qlg4f1)|
+z_CH4bM9+Lp_*c19$Y^uLePBado^a-QMCB3pS;wvz^sQBWgUpq6Ilig*2;%#L>Ko+e
+zyfeTL*R%}R-G7We9dX<x{;*luF(M5-^x*Ol%Djg>I~--+!SCmF`+ny$ntd;|wt29<
+zdfG3tH`;0WyE?7&T5P@l?~zx;Z&p5NK0iX+uQw0A`}~@Mw;E~S9S5%)q0IJX+T7V?
+zUQlJ2_FHxLIe4~LJFN8mTk(I_SyERod>{+k$xT+7kQc*AY&6{Tg-Dtxgls`y7(uPm
+zho@jJ>JF3EyQ0Zr>>KF&tOR*RMY!+M4rW1CJV}%Hou^^Vs?F%Ngnd`6%VIg|;%KW(
+zz19!PF@90bt&P@|D0d~wU4{Qk@qZR=X7p&@U&NjJOA^`KLu%LN{T2H)f8*+S57L>2
+zG0Ym3^LXDVuJ>H~wMR_Ks$RTfJUp5a@zI|$>);%R(6R9uAAQGniFI`h?GON$Te~j)
+zCU|X@u}a9S^nV#dzmudf^l_An^*<uw43yHI8+iC7a63w?i@&UV8&;yf8R~v?5&FhE
+z?lq_Oiaox#qloXLz_+qQ%+v+RvHZ=wO7Ibr`%B?R53urn57x>3%=;1bFdB8xT~_|K
+z7L1XU(?(5_eRgZPNss=Bd6&XD_dslSkN3oQzm~A+(vLP{>GB@_OU=X2p+18&`qHEB
+zg1=8!bQMwO&dbC-qIH-H>#X*sRDYwo2bK0M;JoL2U$Z=yBJCF7oxCXB2bb!@3e|_-
+z0H3`hz>~@L9q@P*Jcrad@w*-yp3egw^QB$^OZsk^U$fzv?SSWf<mLYF2h=Gwk8u8n
+z?`>#<_bkNuf0JytRkgds(QXaCEqY1a;~2^l(C)Nm$q#5V{HACZ;{f`fmEzr&+@#BB
+z2F*749>qFGTrmDa{Rp_&(IjKIr*RQeFs0+Vn{FGXDQqXUDnY*;yIz#{O?JOHvJb>;
+z2VTB|a*H`m<&XDyxdt08o>AqGWPU-xM%jG&2(WENxdjf`9#gO_P_R`yU^^PIVKZJF
+z*^gu?(kTm)*4+v}mn#@}FFbz)7?z>UJvlZEOPkVn8dR)Lmkq-o9WXq-ePkH6BK^mJ
+z;iIPEZQaZ<ceM36)z(7QR-L1*SVYEoI}u$H=V|=UQgr#<<01}Od=&VS*41qNe4gY<
+zM|l1}0z4NYZLe;_bAFS(<_Q~Tv3{)+Fl_=n&&EzXZ&y0tIUVo6MVrr#&}I;63mt71
+zt2URaHp7~YgNM<k0r@4wcFpb)alv?ZiyUqH@%}9(kEGA9YtNSJS?O8Qk4y)C@4{o^
+z*@LI>9Iy87*>atu-i>}_>hx^z*2k^7SdmrSxY`P9*;Wklb=WMjs`L&k7Ne{UUaLQ0
+z)gg`khU$%M%g`RRLdK?oI<3g!J~3oOteCOhs?Z-5ynR718+%ZmlXMU0ORBVHkw?h8
+z_+6(LSs}f}TBOqMbwduvJ7GDT)oWE69TsK%0OV0UDD`TASd))+P=*9NKJshbZ1U~R
+zS#Rx&ueX|KQs;NGSr;s_c(#4-#VZpro;w2O=dnNDGaLOenoN1dw$eIW{(Ilv?d#PU
+z+b@0l%hy}GC$0aKGrpDTTy*8j;e)*v`>zF`u=XImc@oAw9N}IhNqx?Ij_Y{xmB+Ep
+z5Vu9v0`$4wC=%<=kIrH2cHZ6SvTA_$THuU2ahEYutj(vpw2fC|-KK8IBW>#PTv)@$
+za$S!^b6k-Y59j<fVx71)`6T|=pzeUy{SMnAos9hmbk_iR5o_z-NfJkdc?{zOp-d1o
+zdxuMVd(TYbrCFVy|KG<8@jc2|ZU*%=pz9WERIthPVx1?xw1yT-o{2`2#2axn%4q7#
+zAJr@H!8MsUBFt&r+<A`lMMAt}p}$Ln+#~VwPnXudXJ@ZfOL~NCKs`CnS!+$u9OQ-X
+zrBXA9FW@e3E#qbAEGK-3bYq=wVLSgiTkB8j33KsnHSMf9PM}r#*Y%+-?5XHqu$}wn
+zn;;jR2!G48|1<a_?ubL;jyU7l9`UEe@IBVlhkhQc1HRI51;gC~aDDQ>0F#r}Irk-e
+zPYfDg5yyr1A~?>PNbhR{Ts4@(XNP7b=rf!5%f0eWSMt(`+#m2>0reF6d1)Hx7UNGk
+zNYlW37$c59>7W^TZ;TA*v#&gib<N@H`bGQ>v%I*&qI`l0KLFj}wcS<;zHfU)`aMm{
+zBm;b&{=Xx(z0miO_e5h3cwVa}yy(+Cj(p45ci_q!d&1J9`$S9^#@`M_vaKpSmHdyi
+z`xrk>-)FhP9f^xTfAf$h44nDUj|oAf8<b_WgD&Gk>msz-EqK73IBiBW<9C7=Qcrkt
+zWcVGhCcqPO+}D4QI58zoo<;i8;=cY9z{e8;KYw{B)xYWG6Z_<O?P2?_{vE7~JP-Xo
+z4dYXbx@tLokjJTmtaWK;k|t}BhqRWa%g9XW;|lwWgQWFf7<3ML@?w2pe){Cq09$Ra
+zNSvX#M7*#$ac^XKANis`)SAdmrOq59be&iS=v!0RYzTg?Y&QOL8uw$(bJ96sNz*#_
+zO<wRU(lqu!SsZ(gc^Y0V(#-UO9DCBhKOUm*V%b-oZ;{W@ULnncJq;b^cmIWPiV%kj
+zl7Hs9i1DZ-9>KT9%#QxxG);S|3U~;S1|lteTJ(38JbSu68H#0F(@`cP7Nwr}V4Cjs
+zJY>_|qsL|XmEd)+JJOFG7jVXDU$fHzXBE;jLbqWZtV@20`$I$8rKDkQ0=&X@2{6CG
+zJu}y8j7^r_lyD6>SM!HD6Ykm3cqL^C`dUL?*0m4qRfRzBpVF^aLBnZSLu!s`GieJX
+z*Y9A%YHO92Ubmb7$Lls}j^i8z&l(k6A;#JpZU#?lG1F@j;r43XLhkx5V5c0yaiU*@
+z8hjgNwm|M*Z9RZ*j2$)O;o)=d>-bjf@IUaxLpDDODS2P|gp~Y9duXsv$e})h`X93A
+z-Xjm$bMK0?w0_2vnhRR}8qe(T&1Jl0(eF_U%KtFf6{jtdD=Rm-l777KZ6F<K;9psu
+zA!!dH%{wG*DfNp%-i?y`_=OM2KGP5HUdH+~<XKuReI(%fukc;@7ob0@gK2pW`1dUe
+zuJo-qmddJv{7>7|DwL@z@3l@snZAdH<MOi)*}5vG&vM}MkdmWK&Bo=f;{$UeKH4z{
+zIA_RLdG23Ly|*su{KGP>|0ewAycl|)*+AMd-S*K?=4iV^wY|{M_M;DCj~6>}4D|=p
+zI5O>IHIDrD7GU6hriOeEYya+JwoG4~C4C4iJ7=(5|15r2o+IsmUd19|R(iDs=cst7
+zkm-w!PN9e5oUb=FGlpcG_NB#ubJi*JLl;i`jB~z$dgJ?(KcEiM=uA)+J^9h)34d^k
+z^bM!<ieH!`?WitR=gK_4_6K_k+<Md%&|7n<_jIA2pwXGjdmkm}FXdm(bMB#o4S*-3
+z^S}ik(6_X#*RNs+WCBmWQ1$cfOh}v|)FmHATeplr6R$le<0hqP;*|%}v3%v21cmP5
+zag531)*1Nb@^&7e-q8?rNIR-dtAcwP$2`*kV~%5<{op|v?}haKC5(?N?L!Z;Vre7o
+zbJt^ix|jHxMp*IRL%H!(%8(J-7}9>VZIJ!ydY;GXtqJ;NUH71Ezv`#`YJ9EbSN5x8
+zoc61(A@-}=huCal=mR?Vo3j1m83FA)0~*$`?aN=@gLl7ywar{<1spJQtkN)l9rIh*
+zTcUn{FhZGE_ygpal>k=@0e4XEB;3hG4@#R#0k0MTtS7K7Jpr6zY}0m%C?nQM1uOAL
+zcmse{2h0zXrx|N4+CD?3%BqiTwzAdUm+{CKDBT_7rCoJ2CH$PO#av#XZ61it;+_Gz
+zYT(&LE6?Kxef#8mj%#C*-!Dd6q<?Q{igo!|TNnTB*^(~H8aMkE0EW4aZ>7lpr20OZ
+zcd2N**w`cPL|u*gguT0>Z_WjOqnra@IV|S@VY*bx5JJ}Ss(j3Y_0(!SY|oXG$1G2z
+z=gMKUIUVKh1uWoW$v2nDF<Gn9exrWhir<AAb)I;Fc#K}_`DOIY4gOIs`N=NDLwsIM
+zi&ffsfgbRX0Ok*ETZ*G=tyZxIi^kg^hj{?gbDYN*uUKTG)kr=Ph77GeuI#xxk-x}l
+z3(|(=aqADqWz0p;(fC-T-3oPW5ceY^T6RIiL;djl<mXXGguE5&gvX_g_tE!k!v;%l
+zjC!&fqj`0W*+O6Yi)Ebaj|m>Vcz3qoG0!1wEN$eKEK<+?0_285tuwI%?^A@00_5f3
+zTS8|L2^AH18>2bd!iVjgB!AOJ^#b8je@^mzVYAnopiP!H_*NhC#?$A;7m?S1W^37o
+z5wU3RlBul_x`u7bQUmnVPrDK!)4nPC^gikoaxG+D%JgM|XLVVk9>v>wP=1%gM`_nG
+z#_1}uTE&{vB>jKl`?fK?V!h$I^Zr+r{~}|9RnK+L;5guS@Uek<X=k3^>+D@-^SGsW
+zU%VT#joJgJ$Ht{S!1JSN92bm{wSniw`UY$1?rdR8;16ynSQN}Ia2d_HFQA`JIdEdI
+zGa>$CZUnRq*4H7&eFJh~>!fIWxj2sqCp$nxT}C$XkVSh{;^$%y$Ktx=S-juOvs~I`
+zi|^gyeX96AJ2^$9$?qj%zrF$d?J+T~^hNx;Wy9Bti;%X&;hS^@ez&T1JndJtezc9#
+zO~7g0g+um2hP|e*bl~uGye|a~zbkx2&8FYutcZ~5!-Ri)8dmyS??Cz@(7-s9S%h(Q
+z>9Z3HAus1?+EuOPZ}gG(rwos<PiigS-bbF&0XP?-+(PcJf-PnSXvb~Lv7C9`#w8Z*
+z3SDA9IXm%TDs_ECmu(3@oPevf{KdXmghzi&?9pm~t1bo4KhfVs#7AQ^x%}>z`Uq#2
+zDu3r!shbbS=V;n<JJ5%RmJL4(_$%_{7u#oTiLcuD)m7Z+quDlotMUEt1-;fN&DJTW
+z&jXBQ_SxX>uS(o97C^%Y<GK^yH#z*8?r^lbN%=Nyb+mgLzAwALA!k!Ya_n<+9OL=}
+z<gG-zT}sv_E*2u~8KjB5u7+_nny@xSO!5FR|Gz5d{{qaJ&$`w84|D#{6?f@t#qVy*
+zjXF*q)1Fv{eChGMcVc^@DmW{lK?Z05O>Dp%=`pyMdK|K*9E&%L<k>EL+G|Qiy3);a
+zy=eRav`v|W_r~4Yy~*92CydFBy6LCPFlHq_{H$E7j7X91Br%WHi@tHsR%MXCu0P<?
+z?n!O{Ow{MN-B^c$<SkK88V0Tbul+;qWA*h`x_<gWza}i}U+RVor|!tmZ@A!5L&om9
+zugW;j>9L#Z7`y$-59!WPwru^AuK>4zM^iGKA7f{LCvofoI_0?yR@$!xWw|H5YLDeb
+zU!@+tNbs(_RO-17^uuNRcF=rt883?Y))SO-0C+%$zwOiJna45DNT1(>?CzX1Pku$k
+zN=94!{$Gs!5Zq{01>3Bcv2nl$U<kY|WVBhKNVAp3S5>5?V3Er6E9BYd@3r>kFn(W`
+zweRkYLbsi1+$`>FkzYSWeYR_(&}VBxZfu9#_%`;%8<jlv8sxE!*6!6CEl)7LFLpx~
+zyWPw*ZWlIVOAFD)_I9Cj$)x_{?)I0(U2miXwKnVfJXZ=w#k%G*q`i<gxTeo*tT4TL
+z3vH$QDgY<#Tc`sPHZI8bWGc0BKl<GQm|Mz`UvD<4yY=d;3;rh7l+{wtgS3N`m(qG2
+z(AaY7qvIQet;m>9=~t$PJ~;2b0j412hCuLkvFG=i0zRdOZWnZ&?jzyWBGmD;3qP=8
+zUWZp(lQCb%9#4%gRC*K2HKg&o&f~s`XCW)C)5TpA$=k916fDxSeTxjPi7jqCx#!a_
+zA9W|7(IrBs8I4yrU|xeZ7T|Yv18FQAKjnDp?RvDkgftmiXl6Dxn<rn?p15~xd!i<k
+zZ8bvf31M#XOolqL-SnSI{|hJeTGa+^U!ysVsE>Qc37~W8PnPIX_TrrX=o)1Y5{c&h
+zLD&F1F22{}`>W&WPdS`ub&(ffp8>v6hCb}14-m12Ef6t}$-j7y!5`xN#f@0ETCuO$
+zIIyq5I(H`bvgKc)+__QB$>oX9@i)du*gNVk@lJ!eXXZxBzN0ttnC`>4??(M6y5Hmn
+ztQ<?Jt80Im<L4LgkJ_v<@-Fs6+#y6=lQs_68*#5y0ls>+OWG=zfp1q3#_cK}_Nw;1
+zx^`=#vTv+FKIT6|<z*l2dv$={)qVo_Pjs)YUF>_D@CN|9jy_Os*7c2+jLFf3F>JFc
+zz&9#&$vfDmDx{I0kROEfHF(HFTC8pPy^@cpb29Q0$uAlP_{B=<(d4``$Nb;m7j-4P
+zhh*~%P0goa{K9OrD9e*yjQJFP;muF;i`Br>T#;`9=;(jSFK*WU5Ah4l!7sGI{KD^;
+zON-9c`pYz~*UPPQ7$Y%KG{DmhuKnaKq18gKy77Tj|9(eosdf0xy@6Q&Ld^sA3OgM-
+z!hbDI^~a`4nW<j!6UzB)KU3cQ1g&7dMBN5>4)K|fG`9E02W*+@t9Y+QTMNV*-z@g}
+z)tD1~$5XFyFYw9H)WNXQpI!KXoX@1QyD8tQm|^8Yc94C$j&{oG9dg?EzaAebpFGP^
+zp7gX%?R6XQ{WN~dk>9Ap^s=w$w|6og^fOoCgmgBUd%|$kMZds51bhvu{(>R(-@|oQ
+zt)2B)qZfhR&qf;8*fa2do2%D~=JZ-mPs0E5UhAW!vJD~6hSpdWY%|9m7lXfnClRkC
+z)FQ@*<6^k%aaoNzO3UTAEKz!MztaC@s&o6VI`ChFciLC74#puV11$L{|2x!Ef;7f>
+z4kArM+8axyj!@YDE|t9JZ3lkeS}ObhE2QyG4BO|~68Saxpg*{_fU+*>1#r8hu5NiQ
+z?+=hilC}ve*Q_dIRxV|`YY$1;Zr}02^u2Am)RmCN?}R+?WyS#1dPV$^r9u2RdaZ8)
+zo<^iqA#E|zs*o04D)kM|XGwj-7Q-uan1}FxQMuGZP}g|`-@Vyh?HT+wl}=)oSJMtv
+zdbL`leGl*Z@xLDBZpXXM^7v2v#V_%nx=@Sxc@L8Qv>3Bwo4jA<iHevdNgaIXI>^ko
+zfPUvuXQ$56c@BZ!o*Oh7n?&rRv^l)nu#vP>iQnnCQ+J%M^;6dM2krRITBOr@>2w*}
+zgE2^4T3ue9QJpwl+zY!lIX_sPFjJ}aa~>FecDWw-@jGJFbT5^<%p*#_e3*7AlsUrd
+ztq;GP>OVk#xayo{=(%Nlsg!v|{NJUL=F)zOufuxtlT@mIoUn%vGv-2^=Pn{9qS9+-
+zJ}_KPziTP?s<xc|MFrnN1z(*b*3#>MuO@clGsK@RwPo__@J@T)c_Dd+jJ9`qz~S4<
+zHq$%Rq3@omd??U=6z?E&-$wgdHNI6wr-*e(KXz5q8BeEE=&o7k@zXFa-|rRhR3rWH
+zDQUmrtF3G`h6C}xIEIYj!~4wObBq}_2mi0a_&=*+q|t^Y9q*+Nbsr>OjBT`@H8v0E
+z%d?eV=!;I5excbe<elV1l>Hw1{p=9mekT#fO7HV5`jD$|T&-f$)H!0)-1lXv?_s{s
+z>w{x45XTJ)$Na7>mFL)O?|Hz=`zh5X;d}xzdL(iC)mncwb*O-&nmz)9*eB~<fVDO8
+zw=Xls-Dc}qQ~I{2p2TCcnqKoIs}S;qz(KIp3ZF&WuxPRn>()2W2JI$Gsk_76sx>+b
+z?#R%xM1QgOI_~BDTkJQ%k14|xn~(F3Z!%<dS}y`O_l|uuarwkY6LZgbG_i<&Ke2uV
+zvHuLQuc(7@?`pX3GagOk#~w{kH+}No9!=DuFT6*%1M3;<F9jaTP^Y1BE$p-^QAZeg
+zIi|}1gU7fcF^_A?`@QQQU@W`exV59daBGp@*bjf7=!yNC?^|B~^zZ-4Q~$qE$EQ6V
+zzjkYjce%Ajychn;t?941HRDycR<YBq9s1?){Dms5_!YPI?#pg%!AqEN_`hpA%HjW_
+z7v)p2!+wJJM*88M%L_1v!lX%|7YpYVaeXf08nIc}MGc)hcb#U>9m;rBU+lGLmrVNA
+zV(UaXXBk6#;vJT|*-@?r<<1%<^&_J}&%gQdaQ=24(%yB%a+&sJIrnxdzk+)mv0T>O
+zpX%TBDY0CdzHIZiNnf_(LjCDft$$fouds0%)KA5CDo(Tc4(CH1`0^H%Z+J@D4i3Nz
+zKAVm7DhIroqE9QWpn|tF%eKS6<9^$>{UBZ(?X>1OVEqvJdej<_9xvJ(r+Mgi0YB$p
+z{drxG6)qL_R~WyIU;XlMUY0~%n@+ZQ*<bEgzW0?*r_B*t=92quUbf`b!7=%W&$C#+
+ziplqD<PDkPK1s6vyhp94z-OLSu@ATKuKzo|f(L7{Cx+3|zEcPD;bo$4U4jRe)}ELL
+ze)s;tJaA#*$ULyN)aHS=pe^315wM`G2hmpKKsp}MaM*q{1h%;jynoh#ch>cmM;mXB
+z>$M6)tA*}wEO=(M@bA0E@`u-m^ARuh=9CQ%-7j@e)K&QibMQ^EeqGGCYoQ)d{vT*-
+zE_pR%pR_D=zDKTa<hPU?AanQ6Q!$k0<9}Ua)Weuy3-Ep};F;SPO}@hZD!O5udd_pm
+z7|HD@!*>tQjeU66d8c4@(yPtRD?+|Sr>E!tn&I>R)WP!~G?51$UND+|H0h5%yh+Hp
+z?B6pU>@UM>#qS?@q@IHP`-rv-sCO#Ik?;vU<r9P_{tqSlc=ac&AKfQ$^&aa6yo@WY
+zha-?}J1yPOw=Bol94K+j3C2fuOZ&@{M``1KbpP;qF#&0<C)xAjWHm3AW?;T58#OQH
+zL_X%mvipd0jEfnKAAPx(M{`+6PVKdhOz*Yk(@$dzvV1I>BlMuaRpl#k?)cL2uT1G5
+z<#YGjbNm?U{L^upF0qdo9|j(Mj2(L1?$>{#Um0dJ8Acs%IPznUG5%TW#B<CugpR*~
+z{1raXDsg~uxeWMuwqdh1mbw68LnY}kSDeAkgS@cT=RLL8hyMkIMl=4eC=h3%7|SQ_
+zlV^<;)OCYLRs**=+Uj@2nW?@!F<sI60qQA{pLQPq;J7K7t(Sc@HVZm>(9zc~qp#i=
+z`buAN$L;)GDnG~d=N?JJwYprpAjfzxe!j5Q>AT}N?d|1y<`TAf;pA;7+f_1{t_S2y
+z%D^Rq>6)<*UBRfwBVu%4o99t<e(mv;IGZfT93y{f40R?*uSfDI^L1O3(dSXoXmVjl
+z`r%#(_;^0tW^^WwUMcnPKk#Ye+fbJCh5jjGMu(si!c+-3Jiq~IeExBp#%CY5=kHX!
+z*C^TTJ+C&N{P*e56Jl<S#(e(dzTxZXtw`JCu+6yXJ|)X4+l)3xe3%!Pr2361*gxVM
+z&nRgxL>Vs|d+ANeu9W(WDDXI7tEo%BJpXl{P1~2>XRozxf!}D7a^fV%m=-z4^yo44
+zORXIT(62N-{BsKNhB|b{dG3_+-%&@Fs)IJc{l`-6TNCMV9zGu~9x~2zy|nk+EPRy*
+z!Gm;7+Q<h%U*EoOIKRk2T3xQqFGedodL8k{(|BxLVy~lRFAiTvZ@AB1M?XPc&YuDK
+ziSTZNjQtOJu1!2pK4;(GIA+tuuYj{>UFrUIS!w&7f%!kAzu!1Uf5&K}akcbGD{PG*
+z|Dcb&-%40W&*WK`DgMjzQeSjWANSyExmRdhFUpcv7wf|QEIIosO{~ds|GY`i^?6Jq
+zoMHODdE%X4u#cLQ75u?2%Wb^eN4oL@e}4L=)$t!|b<m{^jBWQZIkp^=C5-K4o_K6`
+zP8r<SMaaL&=(VJ5Dr0K0Y`TmebH*EeLfESObV%7LnNsI4|5z%E`j=Y)d!4fXdiGqe
+zwiwSQJX`Q=!$W&8>PYra_iD>3yxLamjhEr6!LxX(idlnvho;Lt^t&uqA#KKJPsX@5
+zi>FJQGJl1=$4>M4*~jF%z`224NFL)th0KX3#KrO<{aGBEXqBLh#6=Hqj=r0N%dxIH
+ztS>BoAImq$@|jo%eA>Lcv6+nfIxqPN<|bvl1&mKboet(gouWtHnWZg{rq5$++C0IV
+z#sAsKtFY(Xvt&4Ls$yD>9T%f=iJVilDyB=mBc{va_tL-0#1rZ=RxGjk&uJVpz;gIr
+zp6zV5{(=8)&K<=&j~)e16`lPF?_K2+2V$EMC&Wh@pXEdF`Nq+~^3InqFT5ehu2E?l
+z?&Upw(9a!S%558k-u7$kS7TWCkXW;1g!{jM&!0QdzW;l#ilM0D#}qr_$6SYRr3r}#
+z&MB{uExN3s=k}CCW-6R8Eq<@$Gqjcc9^PI0SLlynnz;KmS?ho9sLfZOIcm?nwRqo_
+zNaN=T%SmeoC)>DTEc5oGQeG22ZM1unlYoPHfFV4Dm;M~>A5s0~+V-64Z<UJM5^%(A
+znSgI$6^ACQ;wF^x_mJ_=U^|MZ{uj!O##k&uJyOme&L4j^*^Uub54h8`vDz)=ZSvh~
+zk!K0<qV~zuQ$C+J@r3%S|C%iC$5ab_?(F1kM`f(u2QwJgbarwA%IA(S55B_jcf^Oe
+zU*V%VUyZ-l#>XG-!T9g6=fS{!SH<kvaj!iO7IMrvj(WFs@sN1E#efy?9ZavgMI3XJ
+zGTDvb>o?|&JDO@2a*5h^2!4Zg$=ldzU5mA;2LI1;;O2Ce*I9lx%FoWb82eEl-oeLw
+zt`OuYd>>06@suwatHzor_}3|TuS0rF%`2DKPj*-*9i_h8-uEp2n6@0@WHE3`o#`0W
+zUTsj08|c=9y?LGs`=L3&GyCG=I;q~-uhW$5=%dXO=HmD79X=PwA+4vto{M?-y~#Jx
+z+J!X1Gq^{%$Byg$%=C%kyl4Ks_L)Kk-WfkWEPS`$Lmk*OAMc8X03UGSjdjO=mXi1Y
+zehNIHXwDBoch!oQMm%!w!Zpg@_=I(iOX_MU&z|g-_P##{9&6Mb&35yi3j151bY*Dc
+zt4!+UHVa$kOm$yTyQK4gALDoM1B@MH)SrKnI#_HxF3KPKI5oaj&HW!ij;vL&5sQsS
+ztPej<9lY({;WYbe;Nba_Y?^)b9(B)I#i-fsh*499Z~I<3G4CGdpxK`w@2R}6bFZ|u
+zbn05R;hQneZu9ATq^_kw#eu1292m7{8;ft@Uruz`7AYOQ(hYrlkKN|Rd!)RYrZv*w
+z?vEtB^?YlhbqmI-3HX{a0v;Yg*&Pm;R;KZwVA|`5O>^+>RR8|-CR&u2cs?a#luFwf
+zZ*0>bp2mB=Z#ZDQ`yN}SK5G)>tI~;sVmdqda_b~pe-$>aNQ?uW(J#T@QmKtTwZE!C
+ze+UO@j%_cb|4z``Z!quPxo7yin2ofj3+;Jvwd&^{73(JEh;_3K{oJKu-3(oqi2KLy
+zvFFMKc&|}(|1Ip_su=TG-DytS>uR}@c4@0lzO$KUh#J>mxtC>papC7z>}BPClXQJP
+z(&_6Xt$+BJ(m&+hBW>vZsdNtMd9wa)hu%T>)LkuXXEHTuk3nCpyz|PlXzZEgd$`%s
+z!%fznGbWx;cM_aruajwg-Jd^BZDhXcA^i1{zo+_tk2#m#n*^{o31DwhXgq2i#@IC9
+zGkkACx~dsJabR!q*Sl5xx$$yr>a*;zx$<s%Z_@bM@O8A}9(!-H=Wcs!!0WRpZ*Y7v
+zw61s3W0W47J%>?_d<XK#<f9UPx6%!M1O4HiIF094?1|62T<(dFfw#3XHiq)i_W*bi
+zeYS=)>9>{sY8u?M&1x2DmBN-HtbDvi3g}OZev-01yr(SR@y(}GXAzU}H3#rp*m+>f
+zp;Z6FfX5gCj~me6t|A+cJqnM{7D+sA$#%s5YP9kA?5~F7F>$wz$7Tl}PyHk%&R?8#
+z?sCw0vjdOgF-Oa)2Fs?L^J%(j585)!)h_J+?;c_QkF<rwHh;QF^{K5`_GxLr5&sW;
+zYTb2WKK<RhZGLq1-8MfO1vvJ+JA#a;<f4Y4Jd1T<4vy367+=YQbvo~T%rmBa1LM1E
+z1lTK(7Mx(iZYbERCP>&TMo%2jt#<?V(63Jn`$G=cPr>_Xpn>n-J)8!{A+2YEO#^wV
+z&8JnHThZoHj(t#mf966t_VXR%oq_l7d`#PlE~^mhD&x9(2ouKlR?yw&u@?zC<^y#^
+z_g<zA=!dBz^6K3}uDO6b%8>E-()kx%X5Vq(+;RFit`Is?IY-uDZc(OMq+;Jno!IPn
+z2WW-#=adgdrTsVq#y23}{rDryVZa_!v17h~F=`EUCY<w_a9yTgc@6Cnma!?xoBh!)
+zu@4$6?9?_2{>#{fat{)XPu5ny!}a*gyB)fQM(P^oC!1;GruI>PN4=MgKpWr17*tKP
+zY2(|CYVSBvj#GH7P1gZ@t3OAsyS@?DU8fAqb@!i*HmwM{LVrqxj;71f^@zab>Q88A
+zBhLW>dc;TnW}cw*UCXpj05@aVddat9Quo1Fy)Bs2IU~^B188T-L|eafpX$%TiBiAR
+zFxJ*D?Y#^8+uz7@uV>YssOC4r&z`q8+Go!<t9}^o$a9;t-thg8d8g+It3t|`@%KJX
+ziTzK-P`Mv6<J`YX+3}o@<X)O`X28kAl#Dt1pV)t)pI=crQm&o6hq(3ZUTZ7h@M5o=
+z(RfAT*%0^~=EAQVhu`&^j<kiR*mwQP6+RZJGx)IM48G?s$&3AtJ7ms#eh)X=_xvU{
+zO1{N!e>_F&KYGO03sCo48|*CLxhC}-oWJS0%X!TCaqr#qi^h8*v}wpoK2KXRlk)Nt
+zV%+tQQUm+Pmr(!nqkARa#vU{~EsHC@IDR7SJ@Ff|+R1?9k;dV2*FVv>`U$oT)Zgz?
+zx&hR?P~DYy8|&?|#^G~h|6Sytw(i$dWers>Fxtl9rTFIk^$B9cH_CX_#AO-U`8HrB
+zF9<sH+~ft9R7+maLcSzuzZ<+s`Wm^>CH1Y;8O9*Xggze51E;F;OOK?4ZkxL9fWoVx
+zZT9Kfqdv$&K91GvN>=2Ze3sAB2g@Vds6REMNv@+UN2Hwv>EFxxjELm}&d7_xQKW?+
+zZvfuCle(>a+q==`EoKqgyh_vFW|?B6Ik6|+W$i7GShQt4T)x{UZ5U%d@<?y^QEP9`
+z8f$;~8f*8YHI_$jlJ<<c%M56@n5^5CzSo}9V(s1D@^V0rZcp=tJvkkaH6OM7p+~KN
+z*@5;Swbo(&WHw5jjgwE@g>kAalIPHr$G)h>v_ajksLZy<^z}Pa{iU%DR*CSTD)mL=
+z6~(_AtdkBj$g%y=T~bd=8k~#w=|{LX-)v3Bd)^T#(=CE5x(RcZH2sg$<#?rzrN&<f
+zzQ2gLqTLYkJMsBl6$hZ$K`%eKRF*wXS_zW3O8;XWl=XB)C&4C*>rg=15U#{rd-1N}
+zbL32<RgSmk$Z6?0qR!w;95w^1fRo~by_PEkI*Dzx2KFUEJ4WffciH<B_T|X=y(iQU
+zo^gsT+w&ZPG2Hg??3_MO@O$^D-nF37ZqVFXp3$$lYxq3<7%(k$+`ahlP6_`8bw<C?
+zaYla~zSX~T0-G+-di7oQ+O_{qIS#d`hvPsy<h?oFmU|}SDabnuFKXIra$Yo<pGM>P
+zX8Zq$#&_@RwWLmPleH%&l8&{IHAd=B#2LcV$m4c3^$DCQ8(8|3bE$LB?ti5YE~y+m
+z25G&u(Em@sei-<8`XecO=xSX)?2`A@yhc0rYF(B$+AM6Abo^f>d}^+-r0q20#x#pP
+zLqKaTI7IzaWtwky5Af|wB_lmOfwbEt&g8<!Qdt+{KV#$+jX;|%7=umYY}$NSjcsh4
+zI)BTw$2Re$RDa}`y(io^|N2f_pZlddZNF1z0G@mPCG};e;r$BrPTlil{Qe?-hZ?)Z
+z*$wv2<KMq?g!o@bJA9H2=Un^_j<fwqni)2n&jQYc;9YzEIx?)3p-78<tQpZe?YR`X
+zQ_3K*#)z1AzW`4mj~Y53&PCdylkE90RpG2hoy*rbU|FkRsrhT~h&oXxEDzpk&y5KR
+z7V_U1)&t(lfBcBFhbAB6Sdc&O&Dn&xv&ot+><ZTj{bbr+Zs@rZY2(xhHa`%ygTg<4
+zn^lSD#SeLgT$g+ia(P-8|En+2{u}F@w#M3t_nSWEy~TOSa?oz3HaDKn7^2$Tq>kU@
+z#S6G*1a|}Oed3O#D-?C{?8WcW4)QF9=N;bQpZmPV?ml%FWW0>gF*p7p=2V?d8JOq$
+z(PT%sGm&X*@6&@(4|sB(S8FoqM|L;h=s>^f#XVMeU-loUXF*Vw%`{%@<6UpNT#G38
+zqAJ%Q?z>8Rg8e90FLlguAih1*TxhzYD-(-NX-BwsQWx;sCDvTVJHX=pRF)cpCXRv5
+zJgbpMuF+hB_RQ|KvIhK)JZc>-|Fhy%ulrc%Vw2<61zyz!Uez^>SEczBd4X7`a+<-f
+zngzeA*wHKcxCcC}ET4BQqB(@0v{YwomOkN?J;$kc4%Qoz7NWcla8T}PKKD^-yidtD
+zgloG6-YspWgwJ96$PzKA@x2~(-g1f7-#{A{vHpeQKTf62to?}oGd7F8kQZ_y&rb`)
+z9iaKi4;epLt=E*F5;NtR%9t)kzBK&Yr2%QWvIU?%x&BKkp0~0EIO;gV{>5S`Q#0SY
+zBb;GVCj9o7>@$}u@lN@A9P0#Zr+t{p68dxep7J5*PR}qKLC%-!iU*&sC3seeapAcI
+zV?Hqd0><TH3}^7LzZGfyan94Aj0K)0`i_12C9>~6m-Zan{a~>i8<vZsj2kfAe@at=
+z>&+JAT}a=eyi2b=VqHEql31Y9=8kPm%*FeI6QjwK$FwHq;GMQ6^zT?Ywb!~A-(3p!
+z*N7v-#9V5%%07Uc0{jISA7e5e<b4_6*L`U?e>;x!wj7(keY{wX!#?GUaf!<whtJ{L
+z;_ZXwa%a5onlITr?Z9HmOX#zt8Fa&VhRaZA$0YnO@3o#>EMQ5}|4`!yaP7tSLk`>W
+zJqoU{f@_~<!*$-`k!=}E9PsQwo=ub?O*!t)c_QXexYJtwj+`rNAoB~}q~^+p`?1H>
+z)m%|yy%F@?^#S8eY!?0p#ojyG<QqkOaN`=WzTE}-IsZ$;*Ejav>3?|hV%zuQ<;SIs
+z`!mz!`8&_@c?Qq3{r%JAIX%zld3N8$Zx!;6#DWTWzP}s)tB`(ls#o(fKc0$BnwI~B
+zrq!G)?@rt@R@1gsdbOpxSKErbH(-;w7x}$-uR;F&X|hcL$218?<_L56F2G%;+h?a=
+zRQ;&cC#sl>w%+6QFWPf>p*ciH3H<+bu|0pU!}}PlaR(O<Z*vaPqK-DNQEfi2+I+^*
+z<_{cg?u`xCi*9nXS%vq19v^(pN7^vJL$eiKFcyojsZ@HX^+&M3246_qfd+)kcu7L&
+zHXzflOky7^^`wGsxaSCfZdQQ~e>g(lijcM}$L`xW)wd31gV5!$LHLTJZ_au61xKGU
+z@&3H>b-oAry~ky&CHnAKLO(!|8^gP^g`bJivC2<dP{t&85B1>%p1#n?w%+iN&(BFN
+z^lI%wC*By%gDjeJGIb9j`j+ew`o6Iu{z;GJnaTNAAE%t1FY2BnVwmI$pUrFfyut21
+zS8%fF)pC=Q+}e2h5@mVnV|!l5-l%b<@b64NFO+#L$PI*Zk<u$J4mP<(%pWb=*BH$9
+z%}C#+2X9#n_!|LpC4G!F774#RoTq0pcF^l`U&P<1iMu_~WKdskF{Tvtsm<l9`<kDW
+zXE#~cj}&14&A3P8*}7Za8EW92KFIX`)sV?2F-FuJVS5r(^Z)x;8;c>=H-y-BOB{Q5
+z$O^0b=%bb~b6D@+QmNOTez4avV!Y3`Uidy^oB$)1ZP7>EKJ-`kM^m~y-o^hFa6?=#
+z0<Ie$?6ox2FXEW{7}}^U_;s(fFeLq7x^r6l(tDXBs88rP8>1fHlc{OU_R)_t{qgaP
+z;$EyjEMJZGE6~3hJ=>xmwqkXU?|e1RN2+-Dobf8SukIPNk2~tpUaJ-UMzD{YE%$Lg
+zwU3L{_FCz^9PiiFVq89LFIOw>A`afmX^f=+`AFO=%~^^0&_+KQS;DWXnoF)2<{M*j
+z03W&KdFH~#q5`eFH8WtWXN;x<-p9FvExHk)ec{S+T=#j$muEIC|99ZY8{Hseoijvi
+zxVOdpc!)82L|m~Z)7yakTw_auGI9oF-;;&Uk#&|I^V1C(7imp+R%1T5;OQQPJvZ-}
+zRRjL&##Z4sV77~8x`CfL@oRYZm~j$A^z}0*eps9d_6WJ6`wq<au5g0B0YEcP)iktO
+z)uFb5v9F1=6ljr^1LIT^EGj6$dttDx0Art96U;7P`bBJyc)|NB>cK#FWwACvcO2(X
+zWP`Zd-Ao!&^NjzAM{TO~yU2PPjUr)7p-pY_VSf2sfjLRWPGNi~jw#0?19JU`;D=f?
+zoG3eQrDdGH(mFbQrKO#=(h8ik((>c+;wi+Fk4MK-f+vWl7*Ex>l~yI53OqG<s_}&I
+z)Zq!^sl`J(n0sDdnYd}p%0xiSok)T{Hx{5T^!2k8^c&DO3Z7Pnyd_G1^PsRTM&Ia*
+z5_EWUE#}v0knt|>27RtF7X`B|V+!pM=foF-e_$hYCi@jQcfIAtT&FJ#RFt&{bAf(W
+ziz|3me`&%v-(%)hw3vmbt+zar)`)z6M84wl<#&&vnYrh;m?ivvGh=(qOO`fdTN$ya
+zt28ppJz2yWS!e0tjgp39prKfFHNG{Ij_`j?nwG|amTED-Ya=oSnV08|ik4g+Z3b=P
+zJTaS=0-;ToFKx#F{&X^BccZ6I3xX##UXfs|JW&sDi2YesALuOH&~DYn+Jz6HrH#@D
+zQ#jgEkf|+*Ytc6A7SfP9AK9X4rV=>ar0$tRCe0&XY%`jy4_xxDb0D%>&{&pO2PD0|
+zi1F};rQI6iBQlM4C28Az#>V~Y9S%7WG9uT!YmnAfDDUvi!aMI_q+?7k_4iuaZbuo)
+z*FnJ-l3jPGyTcg!vMbhD#(8T54-)Z7jaJjRR@z+Tore7a#<cR6>!tr3j9mcZVJvZ*
+zTEt_Pb#1h|NfW563U&C(yG0z!M@0<Gm1YEdx(4YHd{5I0{bP~W=9aXX<e_!vfp4N5
+z<6_nW->e_}VFr0;#W?D8=EmDy+L^qM&2eSSC(cv)h+teu=J$k}`vS3uh>h|u?$Ll>
+z;|r?=O;`PraLL%5^}v1J=T{1TS~I`f%E(!Z^t+QYT$1;fo!4d6o!({TOlvbaUp%Xu
+z`_6?7w(5@I^6UG+X}&{`^d5d!DgP`7lwRa$2G+Dtw^b4Dwmy5ilvS!?@@{%itmlli
+z+G6r-QTPFft?rX|tv8ADo#}Vj`lYv6zb1K5Q17xTfk&>Lv~>p`vPK!reWjFh6z}{A
+z-o;%%i~;6L!lUNFETQ|A^tR)8Dl0hPho-2YOaq_PBDo<gyMXawX5BG-Px3>+QS8tK
+zeILJ%7TEOW=Y5Ua<#}wn9PefP^LBe5@^!pF|MGCT=KIG|?K>HJ9DBI0(0_n9i=oZH
+z+&Jx{+fHTtnyB!t;JI1G*5NwN`ycuGS`k++>vk!p>a-CFF&5lhG4Bf-my7nCbL#-t
+z7RTI*fFB&hx*c}-{3^scRcI`?4ij&|4OXp?Cw_~yt4Q2+D!czBQEzo)wzXLKL#e<x
+zoeMbRy1pK=!FuZx^y^=@D>_m%M10<av|af&9o<0qIVQm6Ruwbj887GvG*kgvdSQ{;
+z=K&URmj!Zorm_?FDt`vwLLH5&>{6BuZ3GQ&w7!=vYe+pi{X02z?T_7V>juxq`>W{B
+zYxqA(!8}UAJQZn$3TCFAEnr?RU_PvL7n%d+t^t_W55PRi0W<6W3TZ->-Qgk38vyeL
+zt7(z#zipI)d6Wa@#e`469Kd@DcwQ9d+Phk;Nj|J&<+nl(Iu#GrpT%MhNnYjx4=aDb
+zZI%k(NAu$J^Uru(SQlq-?$D<(&tO+#o-F42k318|o9MUiq&4Dq0Kc0U#~klMP7AG=
+z?9Blz8Qs>+7iq#jo&S~9Rv@Fv%D^7LdwCOM2({M_;b-*&{A}Kc{7joC`B~tVHQ-yD
+z1mEJ?n{%7wXNB`@e)cluQ}7wWe{}jLtK_szf~R?0&3$$Bk1(#=sy(k;=-S^`d0ko)
+z<daR7{!%oaGlg+^<}hB|ndGzF2bF^72)PF^y3vnx%wL`hkj}&7){8n=S4PhAzHnxT
+zfM+Y(<D98JeT@}5uSe)e<GlB;Hz#s3qVe2wWz1jE7W!8V+VD)``qLuXBL3ZM3vG+G
+z=o<(;n&o|yI{Ju{>T%72#~WW*W351Yay;h7h0GROKDjD$wZ$<xcA+NLy-KVJRhiAa
+z+ZC_4q8V$&n&qEAp4v$N7y`%V0>^4CqhHOuQ&)<$s_<O7Rx$m4rk~MfmZ-FQc`u*5
+zf%mY`zkQ9^8@N^rny0Q*?hT}$neS`Z8|Wf_DfR}du{UT^dxJN8TSDo*!S?^Py+I_r
+zlK0Bw-XJDz11R5fZ&cC9y;Dyg_XF<ojy}Rm+|v(_W^m6$Tt*WA1n%jtp7?JCZT?!_
+z!PtGCS8K&niDwg@9e9?hSQ}Nj_Wg->k$!WgrUlNE`j<)AB<kmTwF(1!eRUQRJ)Rm*
+z9yN5WJqc+GblcW3cagF^Q2LI=+C=NiU$AX}mm1Orc-|tLpZW0KhVc!)(rp!=+b!ae
+z-lFz=F1;ghbUN034|v2B(&HTZ<T;abv=nQzTg9H{e%cxDTAYcYEXOEg`|>`@?4<dL
+zDM|DBkfrr=CCv+;nMQLW&j<JmMBFJs^K7FSe1QJK#hwf_?-Fe^+w)6fUA$Y|oFLs~
+zD7w!-w@L5<ZQdH|C}|gPkoL<s7ggNpy3F+=?({{Vea_LE`RlE^Oza!3z#haI*ZQPr
+zT<`(pt;yVEO}$X^uIkfQ3t6h_m#eLs%qA;zMU${8x_4|-Lio=E-dS$1OP<TrIO{C1
+z>nzOJWKB?Y=AX7&@UsB;Vj=jV4xadvl!U(nWserv@Rwvr_{X4Z@Rjx8bL*{=4D5|A
+zUuk`feh=Lftp&Lgt%Z~Ef9gc57Vs=a+G3<FM%rSeU4gXpJ|O#;t^Z*><q{Jx#8z8l
+zl&&W*iRX$hCCAXW{_d;I%;1a3(Tp>I_tBg;UD5bA0MFMM8(H}4yfN8?-}FJoJHnON
+zZ&hI(sW7q&Jke+l{e}5m@($Ax;rHn=s{%MEjXY-MOqa3!#9q3w&CI<``rj5Y4bcBA
+z@Cr<sGxI?+nusOVW|GD!=j{HxlyfNCP%dN~YUU4wB7O8vR>3_j(n}aWk$$@{hpAJk
+zh%ugWHhu877sej5=<l*5y2>gp-$r`ODyH8?>QBnM1fPSvTHq<)G|pWf8HfA@$j`lW
+zqS!Sjj(zS7-c?{My;8`GS|pld;QwnXCfARJ-`mG5uCK+>q5W+i)?fdy{<aVFx5v?6
+z`q*cDWaf8ao_rPUl%l@|`dc`pzooHkq0eG}1L$vIWR<vIA!4=a>AtQOeGLutwP_sk
+z7D#<jy*Q^Mo(hG}*vG6~&<OGB!`#o~xtEB^*kY;}^=6r|O2jR2GxqiDXxuN(R3xq|
+z1;1%AkDj9S^F4sHkJLM3(te0{=5qlrq<@)zX5!E(vJU>vzm&Y9I?<1`v@ci@&pO2W
+zpfZn_`z_#<doHi>SOIvyCwE#j2QcRN^cH=eDoa0e?~@kLH~Q<#owhALR@GHJLS5RB
+zx-wALtEg+Byr(XH2y{XG(8q2m`jR(U_M?BY>?eIQ{g>+Ve@~*npvTgBwek7teHvrz
+zsdw5*mICh!K?4J^)g!G55d$3XKTJDvwgno<cY}xLQtySbpds=O;#<?O&*GjIusn=<
+z?qLjyXltTE#50&3pUS(@tOMm(M^3J!!I8?}h4QD-t`hB2AId$6JJQm}*d2dBI%6bo
+z?qzYW5^d^pMWf06Nax&|hO#?p>wtFy?=Ld;aU>d_kN;z$(fIh(|99}Gt+)OE7JpiN
+z+yCeCCv*I8{<LR;&7a<wVDqQfCydOWc1{@1pI(~qKj%-+O!(j9Pft$x&-l|zlWhL<
+zkm@sS`u|h@RCU|`4u6_|+y68Ebj5A|bN-Zlo6Vp6x1E?j@!V|ApRZ1M#Ti<sb;+2{
+zL?Pp%gRb*{zx-gQwE{TYSJo@OF`fJVi;z~V?#VTKwJe^6a9_fG#<Nwu)@PAd3w2t*
+zUnq5!d80eU`Tiz+<DB8Q-Rj$wW8}9;Rj-J(z;CbO+wL8ktz8wupGh(ur@i>pPHPv&
+zY)=Kx3OmF(kQZ~A^|M}%dAe-zsnU*`ahZ2lbXr@G79F9!-KcNtkopLdU)A>`)VF0w
+zeOoH%w+p|OkDAkzFHmt;S^1rrBy_?(0!Q@GLLC(MhnVN%J3a$^O_w$WM@u$a9uaSA
+zc6_W?d##ansOfWfb)F~uK?HlOqkxlfwCNAPrN6Yl8hMXabV^^Sy4>>|CLaL|!tW^H
+zU>x!E*nRet&cs)O(sx9efj(di+mtPFsaG3s=$(mTaV|VFak#zL(v@$r68`6S&*`?R
+z^|j&*;%$$XwX1rwwOinH1NyMgbZdF>AETZU5fl5?1nu-?Y+fzP-@w=(^n*Gt{s`9q
+z;E!}d{gLr!HQv?4$p+wgq3J?h!e5}V*7}P_8}FiD-IC2hpW@O@%omU84lXtsv+i!}
+z#cRg*3g19!-0^HSqbeFdO~gjeP_fZ75|g|wan{fAXFSJZAAPyBctImRu1!wbI>V*S
+zn0*RyN8h7O!awfKq^}AI2kFWmTx;>n=w}|So#{d^6?|#GA9&(--dRSy8(jl79cu;7
+zT>5VZ#?c>?c{zT}gEg<6_w9Cj6;6O(P2o3FosGJJvHe58?e=zByboU;UMKXSDRDPs
+zt+g5R{nO^m(OV_{(|u(>+27MtUrGPz{*E+<&IWyd+8o+{tDHkaaXE%_OW~4p>I}e{
+zhU@pY+BC6}dfVt~%i9H9H(s6?<+xw?@U3#qzC-xReY-C+_y^(hocndgsbw8bnkol<
+zW|Uu^Xc4vyO$iUy(mi54NK<apBmC{oj^FOlUORkVuN5tkcfARxpk>U}DU`|dTN9+Q
+zbUb?z%U;l!D={g52#pnh#`KYCY^P^9jqSX3FpX6=aL#E5GeHy8jq8M-B}N}mUF$HX
+z7$fw$IPWcax2?0hQSQ61Ok}6;Y5+&)Dja!5tcJJyyum*X;OHHUohxu%a?b$$Ua9DJ
+z-3jP--3at6^HQ&(=yyhjxO1W%bkfCkw>E=(v<Cbs%}c4{<JeDj@C3sAnLnlamz-qt
+zLgHEju7d*Cn!>dv=5w02b1tXp(i}pQTiwI)eCMr_{s@m(`0JLi?BkgNU?41n$q!f#
+zIO2K#--YGt?!jx!#U6<V=X%1JMlK<TL|cHvrquD&MlX2&a9sBc;}wUG+w+F=&9COp
+zZ)gW(tP}N~t>`X8hrAg~(|UuT^?7dXH8D@HE)-Aiw9>Ro8O*D9c(aDk?4l8HS)|&e
+z?SbSElv7{Y?+Wg+c9m=v`bf@0kMIwk8)qLziMw+h!k?wf2&wg+{Or~Ne&&*AxZ`<O
+zjPcqpxd{D4n|_X$h@Ch)UZU2ixyMuEkLGW-j;MNEs-8k6Yl3$k<abwS`~IPMj^=k-
+zLcX2OInX5f`Oj49OyQ#rbnwGlQvIJ+_K;d<U1gAuDH{Op;6$z8x%NJOiu|27L8h@E
+z>r~p6`0mGVrmsH5E;q{Yp5b`+;Qd50(oXka87bi&OmCki4?R7ER{!80POIs8x)^wR
+zWuN3NFQ6RlBo^U&7X52LUf7b`Yb`G6w3c8T8}UT&EW^`*rwxz)v~KIO98aUk%Da&N
+zTQIIo)|E)(_+I`5`ikGIi}7wLr{s4vSxZs26;Br)9pBI4xHZbSn?f!-ceRzNbo`7}
+zre$FNt#6Cxp%0YHJhX>uKwi*O;kj$9EJNna$G4-WuCWSpk#}m8XV_Vu*>eBLdP`8R
+zPp5s<Y{3J@X)8?K-D(EGA6S=`0eKGPxsNGy*Tub%!MIOhjD$kSJ>F=0B97mpKj^zW
+z%bd@+lQTNXdxfnR$5#)v2w&WcKkLU6U>sVWjnTi^$EiUyl`#TMxg0dbG}6^k%Ix}P
+zVFyE>{<+*Yi#ujr13WFL-rd5!M80FM=?*DdHs0-bQx|`})^7%TEz{_=F2(zeGqnB*
+z=Yk$F&-d)#EMlO_7_xP=FQfhW+YbH|H*Zc2<lVJJ+~*W_>ZHqeEB@poUGx0p-HKoP
+z_JJ06Qbs;OyvyA?<Xs8I8OTz1r+4q~e0dkre{i!LmqiXcw%I@LOt_7jL}6F271;Jj
+zf^qUr0$<=cNZP*C!270ZpSA`6KQI11ytwKtul6s$rhS5kXCa&Mzpc`%9X-#hJ%{(N
+zfthLNd$moK@@yoe{Ccf%sTeeB9}raUv`Z;b@ok7#ExcaX!N+cvajda^z5#yqHu1%^
+z)D?V7obR-j)Bo4(xI5Hhex!UY&_8znd0Kx{`NqDcNz&HOMH>{e-30$~3BP25S8ulB
+z=h4S`Q-Zegn%)FnyZ~##qAnlm{5xQE*1__$gA!xKbx0$>4adoIno!;yljj}o;H{<>
+zdem}FYVX5XZ%mIhdFO36%XPs;KHsoQ)RPg6nB*<w?;eLNDr{zvU+BiYl)Khj%T;+%
+zF4keX6kihK?kLN)u2Oj^69t6Nkr(&V51ZhHGR{JLcgf&3iQlT5Y2UiuVw<F;MflA+
+zSeM6GVY<22ply$ymtecnF5%{c;<4rkGIjiP1q;{6>fDK<-Z?i9tdS<`p{}J=Uq3Ma
+zP9#fG2Br*|UY8GY54@lArbEO7&ln=l`){^oXXY!OF7obAx2gXJZKm5|yDtd2QMTn9
+z($;$oYJ7&YqX*ZEzVpl!X(r1K#nGQxR^dDVn6eby0!DK^_+N*x<Jw)#yCIn4ld4Uz
+zMr${Uy>VvwHPVJrYc_>{Ec3>Mrz{$uQq~+#6?+n{68x|9B&OiMH>m9=Ewk>j{{-h1
+z66apEHhytH@6bBp9_l*{BkLWGI%Ko2BM-;q8^=-yo%^Fr4RU{U-jMWlDm{FRa@<-W
+z$4xq#YA;qc{ak}@emm7)BJMpkSwBKPrnRBmyPph}30o9=UC85H-@mR6m*uuL4BnT`
+z=XslVqGje!v;wD2v<_8Fv~EQnzi*;-7-_{w^G=^=-H0^m6i0)nah!xagtd@s(C>@1
+z{#@xVW+P>|eBp-$dl1_AqI}~?TK|=QLH<8VAI-MDDVqFxA$S(*p&xqo4`t$ugDr{4
+z==&RveqPmJ)BV?uruV!fkJrTw_WaD2`=sO@4TJYxowNl~bU(EGIU|(6-Z2*_2Xh`&
+z{hPh_gc0hgarA@rus+tsGh5=tuVjJxLb=Yjsk_=tYbhQs4;%yTxehY@mQ$KVI^|T3
+z_hrRWm&b4SoYEq`G5z(AQvHRh4E0n@e+Kn%>^N?L(<fRSLyn&dV<&Wec&`QQ>HhII
+z`;w+<{;tOF*3@7+-*=Ow^Pe6aoc=qNJ})(xmUrJI@ng`R8TP=}934#4MI+GkKW`dL
+z(^nrGJT9k>Q0A{U4W@^3lsS?)(K;}0qUA50XdO9kqV**5%)QC(BjMYs;QkZfF7r>c
+z3JWJ%oo7drrIiz{wKv)LVcyNEFDDI|`|DL56ORq<`)ZY+aoJl@_Y&0I23T5A_e1#B
+zhO{=MZ9v)vq&<K%uX&cmSRq~mw1Rrhs*v}(G%fl=NHX7KYz!^(!U1PK#v7P&f_#T&
+zo%K%fHpo#C857&p5RIQbRmR}T)S@onKZ~+V=S?XQgV`f|JuS!DeJy15ImrU*<{1Bs
+z-?dg#M_ZX%EUBsUFLCZQQ{LyJ+;Tqhog?;$vHg@0*4!j*LPXp$`a8)34O3_T$O{Kp
+z?_H|ivHzytDac2j;xT3>vcX#qU2)bsE@5}im?+WYp_MNja5c<KP?n<K&W!ha*K-e9
+z7W8N(j;DCY^K`5iGRSW1b@%nT!%e1l;2k({yz@SdxAD!tE{pV9#7(A-bYmZNGo~-t
+zVom|BcyFQ^dlC1Omzr6@HdC7oS=M+<*jv6OeEmRfqO7AYPdt5-+>8B2__ukhPso8)
+zZSE|sMMGcwukuU)urdCKAOHU-?%(!O-*GT_zKTBr{=Eq_P#KDd*xIf@G+BbZbt(4P
+z>nb#P4=9Rs@Q**-NV}1Cv6dULPO<N4{0;lUyJhW(;!wM_@Zw%^pS(=#wBAI1gMOEb
+zqsiHdwzyYqLtds;AkQq7{vy)fP(F&iUG(YIDg1+k@zmj25E5}Mlcg$NvP=4y6L$zt
+z9;1A<MP#gj0x#`$u1wsj;$iG#JdD#k+OAVQS}PuJ33e(|Jlckm|Nry9`BZ+!qZOXv
+z(Uz5Zw6@bd+B1{!;CF1Y{9bdWM>`C>@5eji@ZQuF^{m3aNXPq9x0Y3W({S76R?tv~
+z!~aU;MrlW;DgP@=N854Hlb?fZ^y?GH>UsS}+n)JOytCc3KTpzB>1eJ0b6wHoLY|x9
+z+Z4d`uN#NMbQ98!6x(quZcs2it>VJ&57;pM955|Vab!jOGkp6g(iZOOl`)Nn_=ySW
+zod>qusO;hx-{(d<X1fOX+<>o2#N~}9Z|P#p=1z+-T|IzztTsQd!K01m`;P%T<J6V}
+z9~ZvVTW;i?$BmX@Y!vz~>VkLrw07Y~$JlO_hBjJd!FJ1yJ^XVhTNc}BRU)rpZbTg?
+zj$2q3lQ9d+%=VW{@gBxJ^#QItz_j(o;rAYNq&;6G?>&shd#K2^Lw`EE*ShC(_PvM2
+z7w{fAcn9*O``4)YM_*b-k=?&pBlK_M2>s)|m@oc6>|eIJ6TK;*^>YmNLT>aKS0qM}
+zo|Nx<zC+H)JH;*U8@hvx_uW|l-j=r@*jex^;j@2!GM)BI{4Q{72N}<YHvaTCc?*3n
+zs(xSN)yCJVGg!a64@4iMv`6@XTRW5e<~!hB4mg)T?bbH3>_fnpKePcjk})ogpdI6K
+zv`@s0j57}Qw}AID-Z5g#hM<gVNt~tQT9z5@R*mttk9ec5rp9>9m&PA)CvbQI{Bf+E
+zIIIN@J-{1z`zqj$eWtzkNsPmXK2HQL^A-M@(T@VW7Xk+l<J-x2ACLECcrW4|dAvV>
+z_dL9}g70UKFkkOQ-)c^_=j&aclk>Gu`G%<&WzW~&)~EWn725N)5Z``{H17yJMQi93
+zbD49sRg+^kSB>3AE_>{L;W_cxT|UCt%~WGI|5L_pqt_n0%Kw+g?nX6s<B!wkV1CkT
+zboq*nb|2-y?|g1J{_~KwbDYh?$140+DgQ0cWZL+@2e_{I<%xOt=RW6%|4~1jhyNs7
+z>%Rf;{qvZltM`wkvQEYSdaN~n!}}Dxf5V3{!2bZ&o`*+(w-5CeI^a##OL(K{m?jQ*
+zFRvf@4*xU<oNw0KJp5~bZ`U!KU!UZb{Hz%C(r}W^&&GXjI6qtL9hsj6UH{McSp)F(
+zErqXd9+UKYp@V)u0gP$i#+izK3D4JD+D1dY1D5HfczExN<yze*rrkb|O}ne=|L3&(
+z@A|13!)f<c(yq~Ieeqb@C&+y6AG1hHL+Ri)(pP~^2RAD^*re|19QE3Cu;T{C3EX@_
+zy8V8=O%I=~mp;Nsr)=LzznP$qYQRR_b^+UqMw5Ksq+(g|-eD!+uZ&Uexl!1}WBi|^
+zf3HgAfAE(s?d?}b=ubJ)Liu)o&cg3KdA5I|GDm;9ZWx)aA9VC%LcO>%mL%M6q}5{I
+z@cS&SpS+Iuc-#utb$A%>U<~?IOBhkEjeZSzXBYL-H;5tpXMvAKI;|!{?g>8hYR|Pr
+zHj6u#|MbdOOFWC|@-PNvH2(e#$`^t1oyR)vQDvw3P_~QtuS*&}-c{aU(I$-acdDB<
+zVH>SN&=CD}ou+9sg5u77r_~5L7xOL*+;Sf_^HS{1ZZ;_w&Gu-ol{Uz@<Qbnrn}RMK
+z=NCT5`GuH&lYvXnC26uO-2U>INtc-1$1+Cp%ji=h#+LBu4eeGT^5~dD9+dGQAAJJ4
+z^@z!HGv?vlcg~es;MX0A^m)6Oj(LsWms5|3xj5?>WDVLRVm?6DNY-JT7ND<BQJ)g(
+z8gY(Z=$NC?8~*(q{WIh07;h5~N#H@mbUjhslb!SbKd75=Oq_Lp4gD$&Jw9UHC#$+k
+zbgU)+LEY6u>JFjq-8%R%===IE8DFyod(oSKt8Kwv>m*&JBdrE_yiTQ08IpeOQR#Ef
+zAC&jD8ILxAHB!Xe3`Sjkyi*V5(X^*Z6kW#{HvurE=M-g3&MCK=Q|b9sg}T#cS0$Ht
+zwZ@QF+lT+Li@aJj{+lzUPnD;U-iD_P&$CF|g>UqiLZ2*4@Lq?f0^b(k*@H*JQ;6qJ
+zE=}vX)T?bleS7fiyx6Nn@H~y@c|465NgpeWyTZFdji`GWo~LgZ&U5mSR-xNIX7wA?
+zT8gwd@4uk$T<>O(?j66+#qVp5*}tda_fL7xROtY?_fP8qr~@bjj`AQkQU{Qy_WeI{
+zX$Py$_h?V6=kR&**>cA4C;e?<rAPCtC!OZ}RzkjQT$e!mGCqs=e{J#+@D#%H=qRm!
+z4f=8W2)KCTdhlQRNl|j>udg5MC#6pKNs;{5z_;g>PZfS^#JA5NZO`_J1N%lNU*^8?
+zq#Nvg<ByRy4t!lP0vzARx1A0+zN6sCSFuv|Ip7$BZ`HXr97phN6w_Xuc*6bb;p=TU
+zdak!+pYSNTzwY=Xb#T%MaIHe#hFlx2<qEE+6<kZ)He3g;OZD$_z}1CsNu<5|;)(I|
+zx`OL5wGQ2Uy<9)M!L|hF-(ueN#(WE^7#G*!`(n(yps4TK_$it;z7DjvSjA5B#p)AS
+z=ki=eC_%p(v;hx+78hZTP6R!yM)_qZ`&a%K=hD&!G$QWC{$A_>XqWawV|6?e>p13p
+z3+TCf%4xag1n>fPb{>7dWzok0W54aWeuVfxNbAXS#Q#w^JA^d)bUKXxX_>P5`r$I=
+zL#~l^0RLl|OFzM04}5V9#=SM)hUdl+;JL>&vW)vbg=dUfXSq%irU4m{v3EXB9n3GV
+z;h8Z4JT?C>;O9n#pH~3S4I_;4OQ7qe1@;*K;yO9TjHg1{@9^34V)Av$kF)R*z?dEM
+z>HOFrA5!$snti=3$5Ds$6v~mN2}dQy>HHDkc#?IWWY5pd3XWP8uOvUihC{=*1{K@n
+zB+%}uBh=T4JYh$Dt5kiPRDBB_^}V|Q`|^|Q`5wWyKBVn><;3&-x7W$}z8UMKZ-n;0
+zgaCv<d%y3y9qr$)+AmgdNA^3~-?hMwo3at}%C#vkQ7HTmNZ*z8%}+bk1*oG$<>T)<
+z{Eo=;+oTq1vMMttT1&>+_5K+3dR5$W;ZH*O_WQ<la(wvv((5GuARi$A_&eHv2K79H
+zdY(BQ&v_HAPZp$v4?xC{ssZnK^|}${f2766+5J81y1{W)_GH>{brCKVtK|7l=-;7B
+z#K6qeuFdO1zb8Vj+(LPUGG5Fnhjj=!>@ByH!-Rb?<h-%h{h!<CIp>o%)IOk}dnQxs
+zfBz#}W*B;IknPv{A07cuq^kpk_Iyh&ka*HhmUueqpD1udTwT841pEK%9Q%LblKaQ&
+z<QNf;>lk;{ka1S80v<m%0vs=+T;s_$9NQHfJqnK2QTBM1;M>;oCt6!ymGK+$MGV|1
+z<ErKi-HQekY`@325>MoPUtS=2ANk%_j>}jh_b?4IcHU9>`%d+{;S>4$4)y!JkL`MH
+zbJVl#xSf8JBYlPPxxw`7R66%t+>iYi+8TeIv~h6ym}^G9Why=kWw3|vyGzApAx^ro
+zu>Q}NK1@o)Uh;9l^Ik;066II!?gjKa51Aaab}IKqUD5b5)wlChU-qis)70-5j@o@V
+z+tCL@#bY@`<%>J=l{oU<=)lb>j&#aE=7Qm4UW2rSMfR9it1(}q;-@Ulo@jl0{$O7%
+z>}%Tso8H)$8_+-YSI8W~o=-a{_=i*O2zE)iLx<d<N4vjXkR$BB=r@+JeG<n~SzHrb
+z#?6p#R+_^9fWa7|*u$g!js^0(cQ5u(-(4X6WYaf!ZA|Jq>DQM2Z8e@Pc5xg#%pScn
+zF$#Hm(!Oz(kJ~S~wDI-iaoRn}F(OuttSdaEF4ob7I*!a|Y^la1{p6m7{9V+qHohrr
+z@UCZF=tG0@0eg;HYp+DzLB?t}+Dv!sl0-mjPAo)PG2?tjS`ze6OMkpB@|MOHa|!BQ
+zinXvx_+#H}RR(2z(MlP2*7O7~5%=>7IoE=;OYIbXv6td|;pmAn?hfi^y(JSSS__3w
+z(Ws02IMM>=VVWMC@`jhT_ljQD%(v-9`o4k;(jaA!42MiqsY#y6IYho$f_bFr9j2!A
+z4}svFrq8%j@MZGLB|>(MZuc3BP3j+LQ%(Ch@=w}svh91>c2Les*3UYZpfBXv0i)SG
+z5zp3wW?aJ>;Es7rpMIwqK)bZVqi%|Avt70s2=i`ct5rq6u%g{)oH$<2an;SF*3fEs
+z^;XEqzq7)OHOn}{yuZg-Fv1t(oV+_+T2_Xz4U)Pe>VIx2)B5>dA!A;PIzLy&J5YPY
+zT9Yz73F+T!C+$GT7puMZ=Uv)!B0h!j+adX0v;w?C$XHfF2a0*5&rHx~%XQR|8gmBa
+z_ZXLmJ3${Xp17cK%$3HKW&`O9bz~a1nu2~X?@0f5r&4F01zwO|vobT}9_i8}se_e<
+zt&0kTS`t3xrx08J{}nw{S_eg%4un=DI4&Fye{6+_FGHG`gz?~BiDTl?Rvgfb-Gjzs
+zv12@5p>Gb9XIh3DkK>=w`Z*R}H5N?&2x*7F7o+os^FKe*S{*u9?|jAol)tJ*pRJ?(
+z!aUj|oLJ{Nhh>pY8ljB){yf<io?Sc){FbV?i!R{<dVcZ)+N~%*g5OqYymy?AoiLg{
+z2<i96r9E}`2(bSF_3w1(SKpea{M0*qLZxA^oM+2@TXx9v&}g-ad7kzUjlBW!Px#-3
+z98)(!o6n=3I!Bw&&P&I=R56tuZ5H8M_*3we;lLMh^v!wFCo6F`?TEc*FP>+w+4Ve&
+z4nH<f-v)f!ktb~1<^Es5v&!13{6uYItZcxN-|)EgueoykT#(h7SHPxXzGtX?N_?L3
+zMT_rEc)x{vHg)ENrvU2*c+Q&z6N10;6$gJ+@bEFEcN{?`?bQa$q<75we@7<OAd_AP
+zxc1MJ@u(R)h3h~E)-jjXlF%7<ah~-1PJArp`l{}wd9@YRSEvIBnt*YI#XG_rgKWYM
+zxG2ZGj(5Mq{|<ctpNq6A6>FQnr>5yb#o8`)+jOxO;}D$MYXx8IwI%_#LS}TtB=9Sn
+zbJECz^CUeoZNfaM+u^rAc(wkM7&Af570xNnm5NmAwLqlZI{BFNZKoNluzs#cu<z`5
+zhU#}P#y)>u@I^1yg&Wvs4SmM@^5fFpLB_Cr%t`^?28ZwOPv&x7tg;p(Z5QQz<1uS8
+zV0aI5$>eY}$$QZ0Ih+B$+&pjiJUWOv0**TWI#=xlmEZ0onvJh3@$FFT#AlQh^K4mc
+z5Awc4T{v)%mMu5Um1B29%7*oI1#21akVCF%=G}4drl*dlo_ZK*naZai`~M5}-{FV*
+zXR7~8bO~#%1J+aKrgd?0JcZvm>Q3j`ewMz2JRKj&cAr%3mZIG!Qqre){UuV*8@kx5
+zdGS=>(P!ep|2F*Jf00+KnyKu`BH;x6VC3(<Izhh{Zs6H4=+jioDgjUW@+f&e(}UmK
+z=kl(5{fFY5EADD+Oki(1jdvs%PsC+p=5oxwD14sIPge848pnvRF_f`aFTne*OM9)h
+zhV}&gCT1vGLHb?vqp$Csq3jxgUl8_lyyKttZy;igHSQ7ibsA|dEPagft{UyzhSv4A
+zs_VT}>M54{hp@$&n*@Ma@6H|WE3gh}6?yhph4H&|ntkRL#J8Y_{Ic8nVIAfAjZ#;G
+zyesG0V{{4Lk528C{%nIUSv(U=`z_#HJO{GFU+Sbi;I*3c4e~?C^1Cq4cVW(No!o16
+zd@yh?bO86qm=+Buwj%HIbBEjOlpt+Mu3Voc;k`B2w%1vNx>ul0pYq|ga4PTnN0YZ9
+z-?!%upJO@fd#*jlM&oy-qrO7acaNh!;+y$q&$Z{1Hdn?*ppUm$O8PxtEz;Vpuc+U|
+z#U|n+9H#HcES{md8l%ZY_`b{4Ypto1cW%Tt$d@uUmNq_$Z{%gmCiPk~6|Vk{cIs$*
+zi*NUpN}JbjrDR-&9R5Z<JU?ED?}YJtr>l5m>JHU7+Qx=dTyyOik;c1NZ0CM8UPpj?
+z%D;W5X`-KnsOv}&bfIAIIL2%B2Xd~keG6^Twwh)4qAdMHJdHZX8WG|Dyimt~eS30r
+zV>C{`GxRy*!hhm+bSxVGhD*}c)8)~4#3lWuwLBS(Z&CPRzh=-MGU~5U_~dzq%Xm3I
+z9SiOnr1SnCV*sqHlkqG3Le}fG4jq>8b1lf+4IBWz4E4Pb-w&woyu+?F%uOVDryKb;
+zA)hhPqv`6LX#sdo?WK|jZK(EXWghSz{0`zN#d8Gw$&3G*q8D9ju}(>y6W2q+zBL}u
+zTZNr9;iR9vj}+cD&HSMrdEwc7aThl%&QbG?R?tAtTigfXzcs<wV`;G_(;ciAXUF0$
+zu+#_l=~$Zzk)LsIP|pFEQIC1a`*b1qiSh^@iSeihe++VesjtWWigyz`kx%+wcosaS
+zGPvH#WgWB~i$q<O!DctdJ!q`tUfNX_?DRE|r>gx+sov>(5BpwSTaS9y(-t;qvcKGW
+zZHp$22-YP$m1w65|IZdQxE}lXH~Pk-jdt?8SW99u-V0+ZdDa;3hP<1F-!1r7MPJAb
+zQI|g)bx|IfVEmr3y5e~%4kq=WE~6}=&cwjGJ%V?i;^Mj3f;j#4(ocjd+$QdI`nz81
+zqb*d0+Edg1=}P2b%*0aWTiq<~zg6hGf3@E7ML;w1E?s;#>4mXjNLRos=71Q_>%iNY
+zm+$lNjrm{Z+KD`0Re4Tk9(5=0B<2C0dH2g5dJ}l4<N6?c{!PYvA#lw#^UH4Hp)PqJ
+z?FJ3nSS*MKxEBb$DtzLz4qe>KpA+vFu+2%v@qZM?%fF4h4EtH^DNY71sNVoi^Gw?8
+zi2cV6@gputQ`yFAeXj5$3C<z%z>7c!rQwxUiMG-TYAX}<$_9k}xkB})*wN>cRiB;X
+zny<$7qV%|8J}|aB$91%09C@cUTbmo7A^6p6eXNr{Mclm0s_=e5;r-9}UtTwyzdv>@
+z<WNTpwzbzv8S04gZGG5Jxnw=$lJ(Y+IV0;$t!r&wzx-OsPp-v(?$u^rE9GYc<5GgB
+z6i=BUaYJ8(0WB=<@Dkp1|M$?}0p>OP%f53=e}gpkbqD&9rPkLZczMP)Y3u%Tv8IQU
+zFDpL(?s19h?WxoN?I4esKS{CX%%x7*V;G&jI;I<M_xWS(=3L%63op`j$b|Xf&VoY5
+zXVn&&qZngH3+Lsd|9Olp)zy|5)zEJGLhUAf(gL1I^fTEsfQv3m__N|Y6|pDK&eV)I
+z26T9?tX#oEU0PlIkcwx-JL&n<r~Fg;-=}?9npX&4OxktHn|N0h@}yf^BK&H(@Sm|b
+zE0n&AzE;lWoQ$bB+A|}4^n+Cq>lAi1-xP6aAH#mG%_KhQ+x?Mka$VrvrbmHOaPPP`
+z5-s=Z5tF#3j~V9IS)aa2_<r!CpPb)fo~v=ZV8}S$;vB~=IgX!8r9PGSn8#CDE3X|+
+zr+=TrvniWS`{zhHU7+myYBOv)z2*dTdVzyZ|2T&_E81)<h*zP1JC3Kuw>j`oOF4mb
+zg?&I<OrGfkxR(YVFXK1#r~kO5xl%=QpH(zh;-I-nisqh8N!>+DPBcCp<x2q{bu1C;
+z(D43U5f5gS=`zCB1pW8IXE1O9`dA?Ddb^QMo!lRRpNmJp&$rN@kV6Oa4TYa7rGqK+
+z+4#vg0e=2D#}WUR_}NyIcoA?J%8t+vdL_Pg2z$cxx^S(CspbbCd;zeL?kY7I_v{y%
+zV{HgENgopB&3(L|PCvo_ge+u)zz@JHzjs{vAy2Oxv@0oe%!#REwSIZ7umrO3D(e!!
+za%|2B_J2sLbm&%YR(PmXx|I^IjfWkxQ~mi4U52i78O}4;?>TTnx}uL21GxJP#uJkx
+z`P}JpEJq)wK5%Y)W!nF*{#u`~4?~+X=A_R?gg;tgPh5dMRf=_Kj=(2rp_F-MHwix?
+zyl2xkrB|FUGKTOqT4!QC>LH)FhWdEa`_+F)neT2fr`L%&>ciSZ-+9hC{n+XDoF+{(
+zpI>V?1NsUvmkZ|Db2%6NAT5n@=q5<}W07X&+P=uM6<!ahy}&NFjn_LJc-2)5Ip;Yk
+z@w#A+?N9v3Y#XnnH_j9KQv4#|rmR8yl5f(6awon&Ji@s5p^lJapOT!dV*V=l${g@r
+zKKlgce~z(!6L~yni!eTdw3^c;KX479%Z@RUE;k*Q_MdIYd!foZUCsFp`tMV8G6QML
+z9b+?9<sH=!F&pu%P|Y>^AaX02;ug_HIKg;7PtI1lH5D7|<M$;EJcRj>_V-pJ^q<|}
+zuX%||$_6SP6wgv-DgUk)3z=B@j|ftK&_x?8?O>XYNXwZ+)`rY~Lq{!y&G@OP^Pyv@
+zEYj2t>={VE)u3OF5n--Y^!qCXJLRq|TCcSQ`;jfkzs2aaDrQUhp&7V)2m2(so^@Is
+z;Kh}opQ*rAT2|{hmO5BWT@-y*Yn$Hj8y(iu!A;U18uIR#BV$+7f1XRrOZr0*>!&=+
+z4a@i&kO2nd)j7wc{-n5C?p+N0KZJeC)78=juY>7$mf*?3Ca>o*>}%AXg=>By%=mjf
+zR^DuJevJLh3kUSsse^}RA`j<2_7L1l(C5kh$m2J$PQ>Iq6Kkjb=RWEen}E;%Ha5lG
+zS$RSp%tBfE$SH>G$8{h_$OBAUSwO!wTz|fQ)Rr%WOeyN_8L`fTLXMJt-!$}n0_Q{|
+zoDi|JuwDsWh~ib0wRzu>_aC{IvrLa_>z}FAQ_NqeueAJ>b(^T$z;DRc#aPGO#_m4C
+zOCMINXAjqTeiWt+i>>qgAgtCcr5CHz?0LH&tja6Bm|y9|E}Jc59&+wl$n(0=f$dgf
+z$o*S|!aL)H>J9XJ09v4~3-rTtz%itKwBZT8CH54=gDXPW1$&AJ<#~(&ain)ytpbm$
+zh1}^LpO+Y=<Q|^uyeH)Cd6d(|n2^4LM%1cM`v8s~_0$;C@fqsAEpbZ!O@$3Bt#{Sl
+zr%K`XJ<1XdlqKeI%tSkTRG!;YQrF~GZCFU3pz5Cn8Sret{tx`0Y*Z)4EBngNpr2iz
+z^Jrx^41abY{Tau%J$OHGz5P4zx&Q28-lO#>i~oN5)bXHiA;zR2Zm$*h5z2*qZEJ!u
+zA@3vSKnC=LqB-b??}wBd0lV9%ZpQcJ+-sYsYQo<K>56w=-K0nTTB|Y)nSwU?ddxbR
+zW5|7>@uq0U6N%<vUzm$J3fhcl4(HDgjUGY&jQ2AcvegCJg1n!Jz4C%&8Qz~2GWAj+
+zTN9Vmhj)m(($~d*O`T5USADLoRRjA+EhO(!m}(D6-<Mj%MBmIL_Zfs;=>O=?5j0my
+zTSd^@)94TFUQbta=iWx#+`zbhqFtBpn{`9HFu2mn2Aw{MeJIb5Z+FZ6uUp}gI7|02
+z753)dNc$e1+lswFIR0(^25%%C2f{o1zQ=uW_y*pW&bugt|Dk9ed2*@9AHiOwAWqv!
+z?x&wb-crCS`U)DPJq}@T#cC5=!*{Db=erqe7k%t9lc|Pi(i`U7v|%VvFa#QQ_9YeV
+zW+|HGJxC*1ozTT^%ro>impEa31n?}6@mtYP@;UmHXwjlM+%In9I6jh>c!PT+L&DcG
+z3EvG#8wTT!;6L}Ag=(BK2KK}Ak~cEGu+A6&X0o6Aml)$`Zx(zn9jBG|AH=-<><b4T
+z{6xY%TEU&A`VmmSGt}>F_1i7ha$Co6o=fu4G;N0Hw<^N5bwQH2<~*P;#G3GM*=E~k
+zQ~gzr`?ODgR`SR)b)U9$w9O;Oes*Np=ICc_*=7^om3~0zl}YcwcY({eRM3$p^5VE`
+zg@>_bG#)x6bro*07D$=lx58(V95Z<izABL_k$y`@8L>X<KT5mgKK~bxjaG%F?KkC_
+z510>gm@+iy%65gj)W?$No$c5^eTF=b`X1sl#5JW8<5(9jY3#IaCp_r0SLa-qom?c&
+z+*%V0xh{f^$lo_>a^76(QamX5me`wqPUwsz|KZ*=Yg;sV4)(_f+}hiQ@koOH8bQ2I
+zv5cl~v_=8`Rf_M^#@Fb&GPkg+v*01&C!sEWLmC!UKkCj!y*UD(n4>pxUB&$V2mZ62
+z4>Y?S1MRR4)?XOjY_W~UeLhpPV_cRys;fmOyrgm3NwB?ZRC}I*_FBZ)xnt3s%T!yr
+zLdM%@br5d78*t|c{n6v2JZ7OT=M3iweN_dzTFh#ftkX46XVXBP7cjmg<}`Ve&<TQ9
+zP@Wo#@d{|yt}f|%QSdDKA?O0mSvPS<Sl6mKH%i1^L;aDOgdb~PiO|(8GCB5dFoqV!
+zjB{t&ai#xL^l+O?8(0HxQR5g9`kp!=pD=IZ#{+uzfxO69@EBuKaSXwmo)Eqi%;Zm0
+z*-zBI{pODcblL-D539BIn>>GbwbzOmtAro%i(J~q`Nm}ljET7s-?p8>Z_9;$k_-8*
+z>&gV^!g>JTmVypH>z4G#xO`6fODg&!?YYBJH^O*g%_6?)MnMCvEaB5AO9yQduA78U
+zh~;KJ?E$GbIJsB&@f-J9C5v(G5$9Nnf9ekYsjn>H8t|Z^Blb<6l?fk;VthVS_?V#Z
+z@ec<+{;u!={&_IHZlu?dR6};6S?EF_$EZ32s*ViDT=uBB{Ja`pkII9+(?C0q9hdDq
+z#QJnayPR|Fd5M$Rzt0YrAs1bf>Mt&|WypossB>VY!}L3Jn7_PwWEt|AYit>^?i$G-
+z$-Cq|AjucUD1OI%Rt5gAIwoOE^97FA7_qOgY22kfkR+W~bB|@Hyqt?!ImwHWm;L4(
+z$rk6D^dHwMWVIILJ5QCNzmxwCcE>4WyR&jRE?I`6;j<OKw|$gKpV1EBa<!s4!qcaC
+z>?pN9T~FANr-%Fz^`9)xwKrPZ(2grRSLmg`dChQKkG_UB-8QaADO^9J^l+OTdbq_W
+z!1Z+wTz_=+$he+*Ov3vW)vv!EvuPxGOw!S|WAf~f``U&nTEE!uVNIpq?1btcW2L5f
+z#1}pq&Le=Ef<gz6AfKn*#stMHwhOwRJ-{pGeRKj|0e<>@<_$pxf=s$uwg0gySEI^(
+z=$H@xq;3#+YClFFR$XEpC4IGC&3*F9#QR5SH?!HQFX*N1W^%$cvX0luM<G}LoZ}ne
+zS%{PcU6Hn2>{SYc9S-L8Q~a*Wvl3VE%|50JzOI9>gC9`GxGufF3%)ss=M&~kMJvBK
+zD%aj_^snn`X%9VWb$1`<G1KV}pk1Z=kp6<2-`T3qx`TiJL-o1nxWvyF&==O>c8ukF
+zlLwFGHR5jVbxAS*uNf{MEkfJH4xQh^t0hgADxII-q4WD??a1=cGgsU4QJv_^UW;b|
+zlhJ0Wv00oEX3#eTaWCvi+Y$k@%^X92%Jh4uX=l1nhWtS4_*V-ZzfbG~HO#GjgVNpN
+zjHe?pMyrp5mS*rj@{J#>cno!j)E$22YT80eIqFMCC64^S(MWO`?b5lvQ<nFrdi+8*
+zYffwcPAR`rJ_{)Mj52zus(ap1NrQexgUMP+gW;ocEH@mHW7+MXU(TJjqjK)7A#6j|
+z_7~OM`J$QwD^(p|aMZC-&7IE)es*oLLFHX`WFQXu0PTQ&UC8STBTr3A(htuLE>&gj
+zQe`F&o!^o5K9)Tn`KUMIoYHf9EjRtRT`kL$t2s6KQ|1)U5XY+d;vbkVZ3FWqL(LZt
+z=Zh|7|5NGDiR&%uWF3V9?ge5Vu*@Y2=D#^`(odWq|9;iSzo@+Dsl4Nd^iSXgef%Br
+z{YLe#BBz&eI+MEU-$W@JB%SNN=*tLl0@fq3FJK$Al_4yI?dNI@@vDBm`iX=u-IuY>
+zz9{(mmE6F-5T|FOjkiBZ30#lW2JdCl`&eb~B-+@9HvEu(#vPNqhBS7kdcQR_xc$HX
+zYh+xq%zmX4YP?M9gdTQjS`hDts=Znr{+HpY#8ZLCU^?}6SPQDTe;08*qVZo$qU{KI
+zPDI$+?&a@Be8*g!0(k3blc=qLeDI1jA^3__sjsl|@%S58SOGkRc&hODwG|2KOy@9O
+zwXx26u~x!OJ15#S_=D@-^3s+exDI@v*>oGTt@^Z2b77<KVxNw7LXj0Bo&t4lF62qu
+zF?@i&{<t>HCs7A&PG?acxz2hI|5>IV|1(8jTCMkxzftHg!@`f6Y-f*kmh^ox-bH%~
+z+5Y$%qt~jTzE0~F{w*6rFC6$GegC7*3Z$>89f;2({MnWu?MJg@T4Uq|zgO9cvK(dW
+zFvg;dIQM$BE`@iaQSx%aLYnm&>&01$*sp?ig{=`_oR&H#UIALA?{VTFdYQCm^F+Zv
+zruAC1XVYTcmb*dT9jZ+8KfH&i6QQgfk+Gbr!nC38w5mg!t$$E1-6r+9xq!PFZQW8k
+zeBF5s{VL3}*PT~p$#uuC>}I{Rn+<Kiy0gJLW7f#)&PlcQy7Oa^=W)?y+P?((@m+)m
+zbmpO4ukPjEfi&7j^-S&+ebQoU#GSS*C1<g}F(F@fS>sUODPo@=PTnN+z4Mdr0%vE{
+z4vzu3b{6jr+qQ43RiCQVIf~)7`*irKk?j=Yvuqo<CcM9aaelYFSK=GvA<mX~W~ks?
+z2RH-5j=xLXbK_phtwmkMl!-^c`(o4?b=Z9_QZQ~(cAp(C8^&J&M*pYSPZQ^9{Ld5k
+zr(fdD={N}kW00@(K-kv^xtn`hZ{y?Q?n)_j0P>DnlKAimo6k;bdM)k6AGc0180Y12
+z%QLCHk8v`7Gi!LC&O_QR-R{#g)u&xb5B{vyEBeEJt@}59YI5``4fn)Zse?b5HGI5J
+zMp~W2F10|lyFj%Y(rjEVy=w5iM<FAkzS|t*?Nc;-HToG*@ks-nlIJeQ|1F);2SEk?
+zSMu&7_>M=OA$ux~h))NP2%yaX+7ATrfZzN8?e0PTLwJ4yVMpt-%gXy3CocPS!u+T#
+z`+bznA5zx!DP_AIWjCU1U6<r9w3U6HyahOW0eQwK+r6~C-Zv&;A1{5<OPt7fE%BeR
+zK5e<FX>%EO<4m6QyMm#_IqZYbF>421#y!?K(!cw7H}dfe@FU2FKE^6lYq-~8N9xi-
+z2~Fga^_?Sqn2%?E?k||1ciml~kg#?1fF_m&XC*w5+ssk{Pnc&j&n-5Jtg$mZ3D>A=
+zla{h=9CMYlLy1!#A8bo_F*o-Hv&Eg+_pg#?cc(K3z41FMFS;Uew$$y9&sX-DTm#Nl
+zeJN0B)Fbdb@vf`rA1*>0Kl7c5ny??GpHSlT?yICPQNQs@-`-#m&kxbR73PDYjJ)fx
+z2YonlrM;iqp%Z?WfIn0DE}e?}^ubDa*AiaL+svC=$9)fJ3sLX$=(CC;F}?x6pH;sB
+z<9OnO`y=wnW%#y7eWU((DSq!(zxOM9qzkU%8Mf@tIl|uel|GGr$@P^Y)`nNyV|_`)
+zSp5<Dn|X7jPuMdwu1q|YQs;x=ISE%p#9|lzT8THEdk1Z<uzSu>YbWR0@hjy$KJIOO
+z;e|18!-^R2{o1ov+4ofssWq5uV@7C^nSK}cjNxvfZ=x;rVbHP%G$hWqBl1jamy15G
+zW+(lXy#<A4kCorhV`-JWK94a;_s4py1K5}Oa-=LcM*F;ZAlRAMgS35mr?p?Bj`qg*
+z?qH|&Zn)FhOFg==$EOE-#GQ-^V~4NA=&_2$+2o@Gah6@$EoSt~oPW2N<iCZyO9uI{
+zFxL8Vp@`EpCrMjRv!T=4jrDr6h)uHgfU68RtBS@`yIhG$Wz90?%ez`4P|_S9qx^-Z
+z{90lXeh2Z}8(faHhL1cSC0*_X&zFA7>y_W~+QELyWA*>mZ~1|9dk5}DPN6Syz_<^4
+z$NjYH;Q2^HG`aJB?B&C2O+gb4|7EsKrA~acnGyWD$@`iaTFU|6*(?E#_-D%azPnL=
+z58!Kct?YXO<GvTa_u=>BcsKFBAMac6-U`0s4z4uYa@Y5@y4H(W-q#mt{fE`rBk6SY
+zm2&M7eoye8iTWc#wrVvq(Pr66a-GhmT`uIJGp~~OMGBE#bd{WMVV;8_t?5c>!=d5Z
+z;Tn0jleBw@OX^#8>zxVeEv``W^fb)VopXD|8Ov6rMa$P>j$JS8|F)E`72_~Uj6t`R
+zws|LwhOQ)^l6Kgi&{n{;*1F(IX=fOHa=G=`@l^j7*K%vi%(Ws`gN#`dO;XNS3cCDT
+zjm;<8FdpP{Zt#gZ)sIrt^&`gXn~w2|bc?%Wd(e(`<#7Gi)krHWu=QV8Ua4e0WoPB}
+z^;+MnvF+ir)m@y<D{Y-u72cm0{y!s$G>p$H7!M4AaSP_~OUPe98ISU?5wW)9+haud
+zx2tiOp#C@FdzWK89;be{ajjKfLAblczAT0`!a_b-h;qDpCe|y;I_y*9ax0|tCx*Az
+zdZ5OR`#s8#`Lu1F*8D5wenP~+z&m*v$K_w_59e%Tm52|3@o@PD;-WPt+~qxeZkLql
+zKj!^q#@&S+qzjp5Zt@$-j>_9WyE_p_LhL<XK)v4Zk42u1%7^v78cEZ{?;mQUUup8<
+zYZ>D=DETSJ<Bv6RJiXdV^I(l!OW3C%@PC`aKi0nI4C+^~mJt7O!S6Q<TN3j7KZ*5V
+zvsI#g{{g?dlr5KA`FrkB_m24+vhVmdVdphF{yN@iKiq0apKq^WY_~)=i+g2^t?~-K
+z2WVFpyf!gf(`L|i%3Z#xk9h<7<^s1dGncV8J$i>uS>QSDyNsOu{QeWMM$btAmuHSj
+z`|bh%*^2#)t0rw1(rJAG^p&Z;e{zLP=Y8l!NcU-V^vU)lWV;`@v#@T@h<>9*?DsJy
+zz@=Z<CS9L&2O}nFk$0$161HcXEuIZ|F_*JK(Q==XN3T3C<%??Cqu_hKE^Was6?T$!
+z@ryL=HI838{R0J0C1Y7cuQv}UIV1%5S^jbSXFHG8NIJif^9<wshY6arSHt=>j%lE=
+zHtYp%s*!Rj<%c&E4zQ*^Mf&_q4fSf8kPSXtBY6qycvryyx#l^hO;UACtfAk^&DI3`
+ze_z>!m7<O3RsMoh>ZzYnABw$4A=3Z*9LV0-^SF`!O}0&6*T5P5q86iHqtzXdQL1kX
+zRo`yGf1X9tW?jUnDsK|@yWF#0Bw~kdwyr}S?(sVen_ofB8UNFo;rxp5FLKz|5PtHj
+zWlFxUgUs7}h0U)<DSpMd-B4rmtg(0}y%pqmg5z{wkg<1`;)y}7uYru*xZbP%*rjR9
+zl+54rsFeA`_`eX(5j-jCT$DWh?$^B94wef^Jxji^)+)qawV1IQ^_d9~_blWx-N6Ro
+z#}D-Wc0gM${Fwjr3gT=n<CL0(+Hy<oNfw%<Y3da=U6DFS`CiysQN|(vz_(;7)nBP%
+zxD{$WFJpiC_D<l?EBq147@Iopmj@YZE+X&t>oOKiKx-Ag{WprX@m&`&@RG0aw;^NG
+z@y-Zspv1kB6T~dxIgD5DIly?r)ETob-eqx<Co-mwajVHYEVN<Z*jEA;m(h`M0X8q{
+zcZ>Z>t8cf69n1Kic(7m5(T^_x7LJSdHHqVMK<w4nvltS`NpY_RIGL<P4!FR3voUW<
+z=m%eG75DDhN6MG^hV%y?Mtzl_6~+`W&?ow@d-fk5?a*asy|XQ%^ebsu6?4xsps(4`
+zr>Q;7z`hXmQeQ*;4Rtn@mm1lQ{-&^R=Y1owS6%+X0WbYbqTFjany{hc{H;MBxxd~u
+zR!h%g5m)K_QCdIb+=Cwj)>6`Ws7v0_18#O*Zre)IzVvD2*>jn9fNo2_X4{8xPglqO
+zbkU~cG3#m2qF=;$hTH)8)ZO4Q1CW2cjYu=PeT*gTQg^zJjO(=wBinb@C(?$lp0*KM
+zM#9aQrWa%+!pK{PeUmFIBjNf?Mq+`uTbXS&AT44bEs&821~U@R%<r`p;@cv8Ta0g8
+zGke87XUd;hLTAz`^z)#B_>~_@o<iUG(}b<)e4z(jh5x_7Z}8>z)A7!8=Ne7hc)hwS
+zza0N*&vdc6o9Pdor0$1BJ*?j_ibNY}UDAuMr$l^cfB00!egke+S$l!+@1p!~MVxSL
+z<1eUB!uxjo=e?un@c%5--N4w#LNC(DHl_`&-@i@P&ApfFhEo%6Re$=9;MNaPDz0@j
+z=~Lg*``#^RV+Gp!FZ{m`|9kPDb9eE-Y4iJc%Q_dM&0yGW^BXC7M|}e3B<Il}{Y+zz
+z^&8MqG349|j1AL&bvf~mxuMQI{TWJ6(zwAo`|{zszD$f+(G~QoSR~SacDdxO<XK-v
+zKU>IK(f+rA&(rXqa>iEQiO2ud5A1#3UwP+m1em{$HWooHtyC~Sp<r%MvTB{rhS_xj
+znE!_KO2AAVp8Ma>$_J|?Zru)Ap&qFI-;BwMXJom0(!urim~g#Y^l!?xKPk&DV%d7T
+z>^a=y|C_Sk>Xl`w3y3&qAxORSzbRYXDa(dY*6S#n!@J=B22cH;m1SKHJb6&A?%%Ze
+z^KZ&>b!gM==qqE3>i?$A?=O*Mbw`_jMY#q4rp@O6mgN?(O~)MlJ@0Ew=@t1z%vC|B
+zol;lB7>*A5q&?D_%ZJnF$Csu0cjoq5Aw{1bUMA@?rgY8ExNZ8p?y`~T^K#T10)3t#
+z&VuHPnBMf4L_HXF-b+zO%Vmyx#l~A=pE*m}=l&YsPFFE#YIg&U-B+7_tUuI&7b?9C
+z^YE;&0%_xr_tnefUWj{)y_ZQl@57M!zWb5n|Fye|XumR^YtC=Q{h1;mTPza(6{OFY
+zuN+SGuMn|c<+<%de7iD@Bcbb%{Vc<Ju<bIb@2*mKdipZ@uPU;(QU{K;oBpMRZ!x9!
+zE=8Hq$kQ>Y*J8{{;g{ct=8V$hJ(o28c&DB?XPo*!96yndj-9^Z;LZZd8_k#5_ml}|
+zHSi_uc!0C7UMBZlh17u=odTcKT@at?{Q&Lrzk+;z?6)``HCW>&sr$;5g^MqfIxW&M
+z%haHcE@Maj<jdrJ<sDex?@+iOg?1jmJM-`!^EC?hlq0Hv|5F&>LDi9~%6v)X=lRto
+zD!+{DSeGEbWw{5$edn%s#v087I$gh#M=nNr&JE3oSw<+^dIWj9AWL}LJlZcXfN6dA
+z1|?U}4=?XI*Wq^<&*HDy{&;Kf&X`7dDy9)_2>z3}M#d_SR_b_yLmtL7+5_2#wgw&}
+zVm^D?n{gT6Xy1@D#yJ|E7Etkyx>UTQmAbS^<DSo@Bj35djX#_5Mtn(-=T0pc+ZGYu
+z9qU7T(^SB(VjwM=W5+;xP26+r7>I%N#mnTLX@?^Q(#DJJ7)U=?vh5o}4(Jv3?i&98
+z9{+j9cRwa_Wl-wyg<K3d-i`m`gs+KcveJlHl)?Ra*8%z_fh=@pzTSoT+(o%M;SSzx
+zQn!ci7GsMCCQ;7ra>&^cC1*!`!d}=>C*{f@=;zz#Fn(^Y)n3j0fIK(I2TmwEFGt#L
+zC4-ki{-!*hmc`R&51jL;Z)Y0DG5-mS<P|}}D1B3VgAq%eT^tyCcCipJ4BZE?e4}bx
+z=$>hJsCB&@0RD=(FAB;%kMw0BeVTDk@HzHT?~y*u!rK93tJTO@Wd95M7*pIG9Sr;Q
+z{{;31+RAploCnycf4ZSs?qRuibA=-bpV1`z2XXI~-rIa8-49LqD?<9bYPo;&(J!2#
+z`b9qw)KzO?*|+fEzWE$|(+2t$8P>PGBlPX~r6c!^`hU^4u;c@Q*lNq)xSD(7mrvo|
+zx8VyW_r@8@XS!xadH;I`eF2sldwgD{TQ4<s_}Cx%5Ywq&cj(sBdi8(~xi!}Masc_p
+z2>nj0MgGY7nJe(Yc8HJV7S9X3p|u$28{^}}IIp$1S06miYXvUG2wY(QZak`RvD_lu
+z#0O!oG?x3E@c$;2I+J^Pj>8V%rO;dpxO&j<9&6_axcmO4{~2Al6<v=ZT?aX~kpWr|
+zdt9`)^-{TyPw!3lTsi_B{4db=pGWA&gCq1qod1aPAfZc5vJXG`WU#&hOU&E8n<b5>
+z@o10+)YyFk_3lL*;;ckpBgRnN5u+~){qrWq(oel9|7Vt8rp`B-<oQN;?!P_X5VW9h
+zGVXtX6T&WOp~oU_(tUVc&_S!9gG<!7ygGt@<D5%J)^BLWY83}N>KUwKUM<!Zo*D2r
+z?M)azk!ufi7u4;zg`XmMPR_WATSW{<soM!aj``I%sc#5qo4*MhJoV52ppL~u>Ui!`
+z>YzS`=amM_An*58UdD2SEbv@9o};Fj?1wlfi~uJQuD_9Jd>m=1G0b~+g+IM?`1$@M
+zq%Clq?@zc?>i=q#{;!()ze@)D?-4ffmr5G~zUz2T(=X-MLo;7Eu<cUp%`g_Fy_%4D
+z8rBTfrI3%!|I5{h5^Yvu?<u|3;c(E}b9S%Qe~I$r66q>%D|tA*r>6|~4D$Z*LwUB$
+zyGzt3Rfbkr`+?t^3T14={oHGy?_Vd}D04s3g<sf<=*wu;ek0bF;9kV5<jzG%r@ppf
+zd$#pB$~3r&M0~@OSs(bJPv{NWM0~?~SGJX>(me{kC}EC7sbf93RprYnl;c$E%J#XU
+zQBMv2SL68yXzl2PUSXFd=u(&aqO=d=KfbSY!66y<FhiVGT`&AUouO&3x$yooq0hNK
+z`Gop^y>>nQHfC+Tknym(h0O`?L9mUR-j{lWC1`WWS-sX(iXP}2YWfKDuo-<>$h$;J
+zclFpMk{;^RU83-4tWh&<dSISEUt;UgJMq3+=&r9%eg-fB?&koXI4?T|aMAyepvfWj
+zEf1sIyT!6yrhiqnyI;lM+biPlt+VpO>#RSc{oPeVe6<<2Z@X7fHcQ#J+>ZBC9Py-x
+zlPSOn?|3l2n;Y}L`tIzt-e|OYLn^iL&?Ped%~+NpERdmSC+`+E2GRIje6M!I37maN
+z+W%j>6;iO45mvyNA6;kt5U`dN%d<0n)A8+lGY7{Wqb(5Em@L4)@e=8;k>fJs5_xt;
+z8u{=L_L$LV@-7t@@N&TP@+HIZcox#O6xr~dq42mx#pLVCwqff496d!gY)kNM<)^@Q
+z?<IB&2+G>jDb7mC*izS%#_{e^`okwifGq=Qeg|xB1)E>Nb~ww1?KZ%1bi9Nu-Ijs+
+z^D$;z@4oEPHga75Li-AJPWfGhBl=S;1+D1X2H`I<Ke%BamdtG~ZAOW{PSDC<(1uQ*
+z`aDO}U+N2(8>pu@>63&pgmk0LDl_)_SPx~VG6Q>E<j;?7uo!#DL!YmdpTK+r`YooW
+zd`0S78}Hw2*JEvvo!hLMc(&yOTpHl2*<J)X=Kj4tS&BX4!<eVF;5Vd`Qt*}<yl>-s
+zPLZ|H#r^zj`ivM~J*mhlMOo(c1?MDOj7ezJCb&1F?jSrV+o~wfwl*Q}0hF(}8~ae~
+z4T7wL{-II!L~$uLYcehceMxh_>#E92EJ9tpH|~)(L2=%XTsKq3+$%$!ivY)(nH=MG
+zYr&wHdvcC`5R&>B=1a#BA<h$=59k}yoADkjC!F2ZTfj|ix%A<eEo`Va2$-esNNpp>
+zka7iZIz4~~IG<6AddRn<sE6PE;(VB6zC4j0?_!KMWD-Hcx2DIN`eIFvx9@*xyfv{G
+zvd6p@WA4G2*W_edy!-U_%;CKD5~T5LAkAwpnknZ)K;28)pV@1DBV?bedyREMpF+H)
+z`E5DgTL<~l+-Q{{EjrGgXQgVKo>j5=Ix_8XdL%Tm-RaVq_FONVY4f34^ykgLr}{~U
+zoNHLutgF!etTfFH^-DfU(p{$9HwvHR^ly~*OJ0F`=$9NaUKYpG>6g3`G+2W)`X&GT
+zOj{=q2AxzQo%AutC%M*c(U*9cJ}Y5`=m)mQ3X%Sm&COxVjS%3Wzpk~Icj<a+hSbA4
+z4AikFByA+BP)95B3*C<LM;>QgC|Bhw625G*Tw41=)K!W4Lr)e7pW`LKRhhWkA!ChH
+zpnM>>O2#}!KFS&2DbV@@+GCJm9~(GRd>OP|f%YjM{unR>!jFk~AN(zJFxp(<Yp68#
+z2VbH2nB|Ujcmm;7mfrZ7RgXG3kH#QhY3x<s7}Jb<QFct&XJ&>Lo4(j$(+hZ+KQkQN
+z9%x+kvLElO07n)2lZ9_Bsnm=x-aBaT!uU6+lm45*3tZF*^6WJW^QOYcw!G0!t7MX#
+zhgz^x^q=kTBiuUrMLo9igYJs9Cw_)CmU;tmuCDU%`;U|z-c=!<qi?X*f~NMA^eXvi
+zjgpsaIcfFZZT;~A@~@f0*PA;~*M|IFYk^DZML!>s^XqwKx6<lW>rLZ2>(z@>{af?x
+zwQv!>?YMa4wUBz{ZK!KOjy$UghwS+g09-4M$-azJefjfod6rKfmi-q?`D;D*A&?mv
+z&y90wS|}xaoQv3bIg&O?Mxc!^f;LJOZJgtz4eXQYW2@BogD;@1QhWVZvDZg=leF`g
+z&A-CZx3N$0FVeyo(t;^zfwaXjBrOS=102U4x@h`_`LED$e2+m|X<n~Yr|_Mn@Li|u
+z-Sa&*-}w^o5Sr3!g{Im1=QJOpEa&7!b5TznaPkdBBi#SSP@cG{5WcE64vf)zNZ*oc
+z`>KA2_zt&Q`_!31m)jom+KVOcBaf0XuR5(7u^vgAmh@Op583{z-$I$6olqD4imy2M
+zN<oIw;jj8zs^4?WhPhk8{OBOxzZ)&~<xozqWw@li{P~L|zb;cS?{nFBn|SfaHuZs!
+zToVl7>1pI)ys|?mC;B+VFRJue7mcsGn0L4$i5!gYPP9KUC~W{9yI7uQJd3nb@O|yY
+zQr_oz#umIAIl?Dw`~mu*Ymk0zZxXnim)v+XHJ)_cbu@MGp^FEf2aJwNTW9LbzkIPg
+z515EL^&#g0>9YXtFYmut>iqQx@^nRWg6cegZ5FDz<m&omzE}CLCVq0*55V{Z1-Fhi
+zSdZ8TVV^qdpAsiL3&`3Xjq~1Iy8KvG<_?v=8u>3)`Ndg4Xnume5?SuM>P{?uJ%9PQ
+z^z~ftNc%j}KEm(C*asiQ@>Gi_9pjH@0cl&9BWiEV_<o1*z5&n9H8Q?mI*uQ0;u+`f
+za2BMYY&(vhGln1iH`8Y`&lGAr@=T!>^<-<alR~E)6!#Fb0{ERTY%gXDAIG%g#XfWV
+zvXJyuU#In08!wXUZJpNYrtQ1%e-?S+zyg&=L!Q+arF{=aUA$w%@0IF%F}|<5C~a5P
+z>i(PhUZ}oT;(OCYX?w0#_g~fbL#w@-kRkNd*2;@1*K{d={t@>nsdHRRr_M?XV%{06
+z3m}Sl+}f==eZzW#SP!tL7WzZYoQAY=z}*d5qJ`h78xgu&`XFgUJz+DM5#!#WKA9Pd
+zdOFJGSx1J}{SIxa+`%T(t<8(O8=~bd`hyHdCk2ofd-%6q+I`{<w76p!V!S{z&l`*8
+zOcA!_&iYmksjrUyv&$L71aLX(Yg9fQrOyJ|?EAC^JwsclQLk2`$$M3=Q72<yFAv=D
+z?gj5u{f;)6NV^MZhB|+ED=5z&?zo6^T<RBpCH!6YTDKvsryF#GC$hn-9l-zHcy@H#
+zxGx3nsjDg8eRYC1mjZ9GISD^-OdprDxg?KtM<V7`f~LgUl?;e@EN}D){TgHmGrPsa
+z9B3ChooF<NYX|+J(RNO6T!XPN#a{R6d`;NciMw?A6^X6*?b_BvpJrHh)++z=_j|kz
+zQCD`T)y$+VV(1G&?^N)g@=HxmxXtwHYXxoaT-Rf4=*v>J`nvE%%XlK2ELT^H$#d&N
+ziuQOPcAL1bwp!2`{S^n4pTAA?O~&)Cu1;a^v;}3v-O$D^>ks0-qJ&H8sbt&<;bUC8
+zKbbK#nv+p}sSdbwExKI9LMc{u)>_m|zQFs2v~N;&Wm-6zLwUGN>D@}{@9aVu6Nq)w
+z?vpUJ00w_}vvm;V$v^ZS@Puy3KeU0fqk9Fv<-Dc7m1DP3^cVZ1&<h7<UnIviG!L}0
+ztuyiDU!+}=rmeMHV$Tp}dDlcE>NySaFm+4W7s>U0BKY}f!AN2Z_DtmKW9Wy7{-=Ta
+z%;1Yj@^UwR>(NdTf3ag~w$=9aZ0bO1b1l|%7wYPGu}G{pUdY<dL$*AMzINmmS#9nj
+z>w9>A8flDg`{9Ms4p)Pm$U7ZBy-<$ZeblK!?%AS?{Q>XkB!vw<?buYDjX=25s<=qX
+z@bn4E^Ytx;Y{PG?vUXf3zqPuvty0MMiyLMoGRY52tOMHf2gYjOJ23RWN85zw(F3$y
+zqFwy%9Id}zFA_0{F2@GsNJXzzuV)X8>jk_M87dOCE7fSbE(TdT#PzK%?g1ZgC!%rs
+ztPAtLNc<Yp13p1}6K^hkV9vzvT}keNJu&1pA2pl6Q>xJRm|%zL(ZNsf5RMSqTwrEf
+z;aIj+8_c$<L)q510b6Al`)|MoelKDkh9cOrKyI%LXIl;UUx%j#Pb+YeA$)vCllLjS
+zoCes-#JE$=7B+cV#N8wKo}W)!2kl^$!o#CE(nmUdj8Q%h(6^Dk-Z})CZzJ-P-qSd1
+zLEhcd)H(t@348%p&!B$H*Mnox=JR>Bt===JBVIMwR&P7%tOOnGqb$SN%jMFqlfR+G
+z6nzQGJA{1~%5!}B-D*t~(Z*KX4|38>npQNk)7q-~&c6Iq=pmwU)<=1cb+#$`dzyD|
+zc;6WP<o>FaXR(+Qt)OAf2RFutyxahu%Nnx5r?ahPld~;7+?iOR^obGBonM_z(7#(`
+zGVt^DBCFZ8yw4w8ZMBQ_W4Wk{dnaA^hiO5cY~f#rHqrsTDe)foYtPhP!DAw5pY!Hx
+zz*pqOB6;_dx+aV<eM&9GeC(Qohq!3O{EIw+z193=W@FT|Qnc4*R%5;LV$ZPh#b~_5
+zn3Y&L2Y3ZtZk{+RQ4*b%ARPvbb~AwW?9^*6OE3;+_!gfyE6fmbdvk*Kmcj`SaMNmS
+zAH#jj{N#S@{g$#_?M7ky*#%g=Mvm~Ib|!!0+cKnS!6yVx-Hg>u-flF3w|83=+N^|2
+z?=Ux?GfVi2ZPZi@2+XHaEnE0MUkV&{0f&*PMZ({ZA9$mk{Zin*3wVnGR~*mVCq|RE
+ztFfkiWSaLZsgmPcit(k~{_W$b{tDnAQ|msEsjWJYK8xs@TqM>>zm{t)Lwhd3s(}t&
+zfLEJz31Du=xV4+?2VwVO59<<fn>tMPqck>4-1{Q0ddH3Vz*w-fJ5hGuUU}aw`8?K$
+zV!%XQA@kG#=55N3^*sEpzEI9j!v0O<+kkK7^ugmu??rkm(&<mD(vkic(i@RZ9|Th!
+z>D@@LNBTs@rE#QpBAqe_eZicj(m%#Nql5nYu@2SZp<Elo{~kPbJ#t;Dd(xvBYrWbM
+z{BFhnIy{AVj^el3W8azF2U%k$=E*Mbuic>69kihZE*7KR7~TuHE@(`bbj@{b3G$Ue
+zCV2+wv_W|mWfv&E7RFPn_**sUACKUDc&NKz3=`T<ac+2o4tX|Z5f5p87kIX7Qi~~U
+zRxrmrMypA=d6D6^4ug(68e~k8(YlD0oZNkWul3&-r22OOwx?;&g*g$^BZ5xJV`4_c
+z+7XIao6x^ztg&0crztbJOzJn*iF3&1Vvp8sZ9>~)!Ar(sea+B%4)Bf>`IalxW4goN
+z<o!_6{@Vd@KD)vcev^3z0Q1~yMD~9I_y`B}5i#IqjKfxGld#?EO!&1H>utcxwwTx7
+z&|~$`eoWbD^Da5}W23>tg5l-D@8?#mbF(YRfAi?yCQHVBfD9B|YXvxOAP=!j8g`cT
+zG^{XLo^seG;ANL+e~lHxoCsikJ~vtuI2#?RPCO49-vAi8@PDhYgPonkx;(xM<uZ&p
+zDn9qM;_PDszUy4?#Tn`wVy^30L-x<2-^Zo|@3=lA>ZnUrM8IQ1rpK$|ROIAJyK&mL
+zxb>REX#93HHYGAAVLy%W_H;Fy8_;GT+MGzQEzbf*t}mWY#Po$%n$&Uf3|{BGN9+Mk
+z5k6Suyro~3t1ggy<T&?PLGW<n3nuy8D9EmdcwaZX$fT|RXffvN`ZfX9U1-zLnhto3
+zTg<H(mzMy`DVMg!w*ns=-_aaj@cnzxw-v(IMjhqbjmz-<JY^8{`+3k8@wLH_{4a>H
+z7!AC1VP0$io%7s}^JgdW$J9Ml?=cDMHciSw&!Fw+k;gE4tO{Wx5-~l%Lm&sZQR^($
+z9n-`3B9pn!wwSa>BA-3irL}L<iw4%UlTqK(x||cdx3Pz7y>UxoPq0Y%;}!ZntV8?I
+z_FjB*%Qb#LmdlJr<NJ|r0)FlVde|?lEwW$plV0%m9@;>XK2;2$ty)n*_&oZ(oRUkw
+z@h;&@b^ZYTyvI0x`m98jA<zHcAx>z&N?5cta?K<R*yB8LfszN5ABaqGt~#IJ^Jq`t
+z#~3jGKH;y8^CmZrO=lKqT{FyNgSO@X?{hv)*g|H~qx#3Yoi3!i@qa(~O#thQTl1Sf
+ztqXG9C^JKU(%cuCl_<pg_v$V)Bjh!C?!Z_9?*dl`fD@nLF-u(9+k41!i1UzUx<U)h
+zF-EIxn+SPB(^Wio;QLQAQvK|!^pUYf=#V~|A@5;bD(&Os{Euufy<OiHcV@;?{to#8
+z?<mu!_b_I97V8*m_!D}=tqIn%CtvuJiT`zm#24h5@tZHOb+l#p%`#6@$BO*S`$v_R
+z_rP`K1JxUxWBQDj%-BT2H%G*0r+?sL;Wu@I=>kkW=<5RD%%iP7kQHg^+X8$<h0HDN
+zBM<hF_kr*20M2_tMZy;e_d&l<?Y)J%?svfU4-p^BOw!+Hj~KT#A~wd?(9gxlchn(^
+z9)>J>(Tu^e=qbp<`Pzkc>lly6m;ze!B;KSyEWp6|xBz46xw*CPMDy~+<EioV{j;mF
+z2<udl#eImlFVheeF@MKKOyNJ3?T9wOgDEqP#rPCrPa<qujBe8%+G6^3k4gND3VKa#
+zc1vHH&L}gE#yk&#m+;>Dwh-kndB6E7;WL%8qujTw;TZFKjP?M!Kt;bgoBG_?r&0Ht
+zN4r1c(!?`@A9nPW@Qe}bFy$Z0KJ>9l{;*Bp5ptu^Y&~O0-c+Kuh*%~5;2LpPhviu>
+z*UA9)Tnn(j3+QY5ynrtlT)%$|_)Z0QUWV54j^BJVK^>ET5#yPb!$xUy<3Xg;Cch-u
+zgSEUz=zsEs&*dJAwnVWI&n#NSIUjixcy2r4*Fhun`|T!Qb4%VPc-aYf+pgoOja*a6
+zKhHjjd8GL0F2zT8fsgJLvEJ@Zet_}3OWeO)Bm8kM=DpAVWX&?vn#Fs#YR#fdy-;_q
+zS(hgo@Y|&|B{bSqam|V~n*(cANUc?7E9PrNtX1SYy75HXPfwQc=?OVrgKSOzVy^J#
+z&A$O&&YeIkg7tnA_PdWB5PUMYx^GK(R>IKM9?*l2TF(T@YkEureH#UNgm^VD&g((%
+zoVRDu4hj9|z0<z|XTM`?bHG%BIT+M>hS3UfyiJod;)k46qPJQcXZma)J$kj(ie4h1
+zmxzh=@1Ph5)R}M426DAU`$nE`#037DO^%Bz*pm3``Kf-k&H70X`J@M3;)iy;h4>v1
+zHfl{K$Af*L{c6By6~6fWkX;MAy#sf_j?gzk1NR%7#r-bY>d+s8r%U>3_KNf6Ym*i9
+zTW3o88$&;jiuMAaJ+>!oFaN_e^$g58ud;FI`b6Gs{TBM=lIxVXhrw^TpYRMx`rl>j
+zA3yDguvT$BDiyJmTZG<i!}%$(S5Mnb_|#o-o-w%89kpG;=jRQ{BVT*LpYGFZB38);
+zA(wfB>k3@PnsM~U=rWqe`5W6T<UNqjyN|{?<N<AI^a;N_!FF2Dm-dtS(he24ZyUfp
+z@$L&Y3mg&e#6SIUrERH$jGKmi(0S+c4y@E=7AjlGsYr{imAcIP+?v+4!K=mAN*i!t
+zH{UorA^cW^qMS>f0^lNgzVy?sN#9+`^t$2J=F{)WMz`^{&|jwQCHzX>b!F!XT`%*I
+zmmU^+%{rl*hFq4r?tB%ON9l1#HAG!SD$XI>ZI*Z!vIJ$B%g&c;5MwfVCw2GvSa0x^
+z{e;06db>{xZm?Pf3~S<So3>-ZP6PQ}p;z*mU%(*FmtPTQu)G)G2Y&uqDbHs90z7W;
+z$URmy_E%+)Y3RF(e#RLS+=D#%=W{(fN#M!AcUL6pdXxTTf+r;^kk8#1b^S`jG&(6U
+zDjap~;JrZOqy*z_U~l4jo@WQB%Z+-34?zukU*IQz`AB~!nRtA7cpvxb^W}Mt7j0}+
+zz6i_o&DPOMc~6EhPG*2VeyfuAH8)%5h;?md!V}!l=TZ0e7a{$7_@0hC^E0$xp<-M7
+zP~iJIp`Q`{ys&<3!8`rMxQy8TWhmQA+(aH1_o5m5jQ%{txPZ>(Ip4Jj`j+^@`BE-!
+z!uz*0?K#GS2&h=XJPV4b*h>$vAG(YIehtd>yx42at$HOn7cy8NmSMgW>o8j<_gd46
+zcO~7yfH_Uyo}4+U*<3Oe`~AtyrpIubQz}|a#+%kXl+&<p1RrpppSFdJ#!IwLOZeu(
+z9x~n5H1YtRjdVrxT2;)Q64B?mNpDw+kYh{q%>|5i5ir&kXvX8dfYDSCFgknzeR+Wv
+zd&F0!;>rY7T^V7>&Ed=4tOIiS4=+H!dDoodl+j?us~S3m-pC!r-0q6<UhYBK27||3
+zRVDQ71?I=%-p0yAiS%nC*Hy6>Y%(W{eNtWg{Z#5quaf_>E2VE7O}n14);7ws+q#6e
+zVMPLaq^!mGzKA|GgUA!>v=-x?K1b-wsxc<xP}4UXW0{MyP`rzn?OmM~<8&=!S?n3;
+z7r81W{rq^f3~L|YELCIpYqV1q+HCQ@L5YY-vr_Ec-Q^v9;v7)v?uE}f!1Iyt-@Mtn
+zjIf6y3Eo9qg5NXwI~+-zOP_i8eIb80MiRVlxER0B=kG`)aXNm76iqG#3?HAD>Yt0W
+zvsD`7xqpDPs~u^LNIQhI%aL}IN@HB%ex$K|L5~s2i?fs0qi?iFtx$7B>xz2r$M3mw
+zHEr57O&dE_^2cB!XeKK8faD|1pqmwVR$8=a)U+mx@xgiji1X_v?b<y0I=l_z7{c#c
+zHBI<%@{0Ss+QE>B8_qNt2gDUTB-+18o0BJELTdH#d7|u`q}c0)qaMm?H_0=Qyh>4a
+zwurGA!hf|t9yn*wj5noU`tZvhO|$)*3K*FO=|05=HEB<gbOm49uVKA$1$WChRpI4%
+z@1$hxV&YKK=udUG@WFvL^D4wVqu%GRpbe&dB4DrM9jN49`c2Xs%+ITMUh?duo#%<3
+zzlgoWdf~%ve&v9_(JW2hLq0Fgt#=M;dxe#T{cOfx7yiJgd!(<gLxa-23g<_ZU7i;_
+zi*_@_7vKLI>9mViwrKI`=c)Auefth=DAE46l?}zc=ShA`xVEI^c@TAQO@F#N;eKtF
+zi1k~q2c)eM_vPbfB^GEdtHE$t^;$94g!qc{?DKu0^PVv)!8uy5=h06~VkN$Zu<xmg
+zL3V^3SpoUJ68jR)VQ;9@x)F2H)ujttaQdRJG>fc?nA8uq?(g-rR`k-Rwu?M`$&OxM
+zsG-POQr%k+z?#E5lcn0M#3Jq|P1M(*&U{dJ`*~bDAmg1mD^VZJwb&nyBk0Yw0I+9b
+zy>BpzE%W2F57}(%kcgpHkeJ1N!$R&+*U59|E}xtFVL#f*K2O>k^ou(L>#c7xmc$v&
+zN$&UDcg#wZG+dr=X`TderE9s6D^^+t(iQ@5s3$Q|#2R2sm}rtP1kM|XUzzn)yk~H~
+zXVT}Pj19>6JK{VM>%FGGWi<)^z>Lo$V*|2JQ$U-HOH_-xvqJKoB;zT)ajvX;jDnT$
+zr2WKhKbNtSimZQ#JlD|{%jFidRb;()uCzZ+@2{NjnyOBB)+~2jDC8r&3ChT!^-90m
+zBWT<cYBj4u*}_KT7|W>G#~ZOfa*lB{(d&y&wa2*Y#a>^}C31WzyYSvG$C>eot1;Fb
+zXO3@rtaXkv&&{$h&YCXgKgL{)H|ngWo<PgB8iK`ESxnO17{E}Ce*O?}wF+NEvy<B>
+z+X25WZMmQm`py|EVly5R^Plp86Zc1i-*xiJm?iSWo)|PXB4!5CooOGd@glAFi1v1i
+zduZwQ0;0VSM0=w~XpeAe;_h}dPcvTjF<!4rw|rsrs~U5w26L+xbE__7&#x8WPs9Ov
+znSnk}Q}pHvd2`PZ{sZ%gFE@U>7izgazltFVIw+{pihQn6exgn<DhTUEzLN8V?ga2M
+zmbdU1oK=ZBYf=B+Xs?(n*ju;=Kj_a@sM;!^Y$op177fcYR^<r@AKFD?p4P{T2gWgg
+zF=QIYka}C^IBq&B*YTN*<&63-K3A@Rr0Xh0*8w35nzT_r`0=^&>>{nlq3y)3>9!t+
+zYYcTc-#M3d6-Cx(L>*?bO8EuO$G*bEzG6R~o@$@)MSFPdaQ`3+sfWUPKzL44_r@F4
+zy>Z$wjZ$_-A553==y=9+;knY*D0r^YHG=jTkGEuMuQ;#dnQVM)G+A#*KOqak*;W`&
+zd6w2+$Net%i#&6}9_ny;ul4$_=EQvyniDcka#LbitRum*j|ay@leb?SO_rf-by%JO
+zSLy03gy+VXv%GU%gnEsrI4c$BYW0ostRqvM55G5E!pRs`Th1MPKFof2kk+VttuA);
+zTK7yJtS_5$t~|TFddS&rR=CAX??*YmmYys5?Pt`zU2#^6Jx2hvt$_#l9Ot+*(zpxB
+z*lB711UH;J0INvbH(lClit|79jW#<AsaFa^W^QP~+-b2Ib{7rkn7*j`D0rb7tJhFZ
+z4*CoN8&5wH#La1%*3WYEH*=#Z!@R$kE`2P~Khgq6`cJ1z->T0boj9pg^a*}+@EVnm
+zYxVc1(=SM`Mc-)#{%^(q%hmU<({8@UtBrEG|6Dsk6K8LvNuI0me2r&rRqMQ3;X1ho
+zTzadt`It3e^RZ6Ej}UfPZ;10BVfVrH;L+()Pe7XwO<!lFZ9as(2W`q4I)z<fddwa{
+z{$kpCYAa0IcC4H(=P36JyCSm^SATyNb<ugJt1|1S+h^^i$|qmi&*#O{C2zO~`w!NU
+zp==g;4qvHs#oturXQ{Fo%9q7=R66C)ib?X!iF%YG<ufi_p7r%imv_WE(y#))-*ca>
+zVx-^cfbn<q;W%C1&*FWQhXsGBOO{~`)55C?yvC}6+2o6F*tBDy{hg|P-c{kb$71#S
+zkNCYCzZa?BY<D5%n$I!U0;>Is(blWerM^JgTuT3`n(~d1?o$Kvgw_rCI^KZ!x29t7
+z{JTf>`Lp=HY*Me#cYCz?@hdd#sWR|@waC8+e1v<Z?%;Mab`E5Q$+wuz)8u))&@H+`
+zVlS?hMB@?g9``ib4%{Mid7f$V9ITAz+~hlGhxjD@Zos>qWAou7;KO$~;L9*1j9038
+z$~pXBSjWCCVx@(7r)<1|wWN|dWuCX^P#@YPY%ORHBhHP4FT_<?Ggi@FJkP^(nl#@C
+zOB-YIjI*ZOwn3}8J`bUd(fGa?&q6gX3IC$$>b@j?Gmc<b*=y16uCl_utC8-<IOM-!
+zy41yVr|h%x(r&M|bDf;42PXNnH?O`$Z(Aql>{k3=q~<H*5|ZXwz63J$XvoZ^VeYfn
+zS`k+?J{i1PH`iLF*t<%5v>TI*T}XYmZg%>{i#0te&Yft-=Z~!xIuTvO09|Y8LFK1V
+z(>C(Gxtz8;j1SRldV{MiZ>&YcJ)=#WJJ@QrOzP-kd(_o2E~4DG-ze4@?A6-?D)uSY
+zwMEl<t@ox$yWn5(4lCLddUnvx;Za(DMQE*676j}<cZ0d7;`VvFqAvOk<hg)H#Z?ZV
+z|GL>F`j?fi3;VTg^lPm2$)4aNrq^t?{0+?(>-K1mh<NkzY`iX>4_Ij{!*jgdSX<LE
+z%mRS*rD?nyBy~t_Y`c+u;5S>+CZ+?p=$3GTzT6FfQSMm|G8O{&sy<_d=@ouSXERP}
+zJN4F;kSS=B;8DH?Ko{Mh#}-Y-a~z*OU&nrwv5T@Q^mRi1<9TF8uuk0Z68Bax&qe*Q
+zZmSS9Pz?D;e-ZH0&q+|mn4?T|QibH1H>cx$pnjJ)XF?lB#9}-2-OO?3+@>D$<y2}0
+z={=viyeM@in}vOBmZQ(^2-oF#$tzLsikZBJ)F$k47;CLU+aTn+Oc`&Kd)FDV?;C_p
+z-IKnDrFE{Y-#!>-_JwdCm`1&In^`RME<CI27I&A}2T^}m*f7OE6N`F+v1lHBC<+;u
+z{f(`+0{HFIkM?=dKTl{M=KMa(ZS1pnU*i*wt2UQ798bFTp&wcLnm!;lYj3RA%24B5
+zgLYjFD-t^~kN-A}cKY)eckXT4s_Me$X0y0|L7$eiDZ-jPgY)sp59EI7Ccx4a?6ulZ
+z{?F4y?1Uua9z^gveIGkw^ja(MZ5h%QBW)?t79*_*X^luDUs;T_1xQ;)xRvfEBNWX^
+zf(AG?t*%Xd*%k5|$CviR*dNUJBlS^V_h=PQ;#u$2s`2pLVgdd);0dmmI`X$LK#L&D
+z?gxK)0`D5qpTU3fnlkVjKW%+6uEm->H+~=crC?CTMIep%u~r0voq|931#UV8j2DXd
+zR5IqVyQ{m8a?3;0Bt2dz=abOIxQ#z3+u(4#@2f4;6}D49PMr(KN8BfmtP%45x4<JZ
+z9d;Vuz;9PWQz8TNJ-BVNmGR`Irf(|kEikT}|Dk5n7hYk~PkM&1x%j-vm@HY?kB+Ba
+zKTO*+=_gw7MeJ8Im49!y{)kDK4^A715i*{B5820jG5(h%{2cq>X5q_G`kL;vwll6W
+za5eD*%7vS)GNmV^eFyKYYK>-+`X1V6YoTtz=QzJh#JbU(;2FnLQ|<MS{x!K*UIjS*
+zqHKJZtslJ4SPR*0fg5spF64Gi$W+N%yf;kFww7bOYIBRMrOSJ*5Yh^H_Q$(8!k&3n
+zVxj6E*3suW96sI8r5`}$_pRF3Yb~EDZI8u09(8|{Wf!3C&}3=LK|8+%Xd{Gn7fhA5
+z7x^wNtA47?quthPxue~EJahVl^?@JOxU)q*`o(2iW`3`=$J=Y&K2_e?9y?9i`=;To
+zRPer;N<H<gy0^6j`9C*R+9S74lQAsjO||badewbp!hGH|8DD}h+%i?}C;Wi1hIWQs
+zyl35%SePsC-BeF=_^c1F;QlE|{+`LRBV`*|1Kvd0pkZ2iFWo9+V5~1Z6L_2Pd2>U*
+zgM42n)>!6!9_=oiENx$THaSM^3+sNHE!REn4IxW2PCNHeO=7Q7hwnx7r6~N6O;E5g
+zw(Rd!+JUL$Q`aTGLmOk@oN?MRL7UZ6X)B}PUQL<;+>PB<__wm38&IzL770&=78!si
+z4M+N1a4z!IK%T#Ls+4QKIaTO#gj~FJs@xm!9)zaGisMGx*6>s*SFs;X8fy^xVCm<a
+z>+5214hueyy<DKtmd$?2^2Vw}3vm85+MG6^ZmcCGkc~b13RBo@CsvxIze2Z*K8v#!
+z$D|xhSs{Pw7_0EbG1e3>_yyy^P|g>)s!N7})1P3RxF+72KBpsGq3T45*yq+ITc@rx
+zsdLfYc~)U=p7rchxi_GFemc%c(A{f2UvAIaEH!T*M_$HtPvg+bxy@KoQ{}y)x~X=I
+z0^%&9a8>QV)s)LwS6%W!$KCdSpsnX2Hy<jO_52P0pTX~U)$fa@N`D-zoAutI>OFf%
+zy^EB6X;{rS*8NA+(SW-CP%g*$_vO6X*lWF|exL3b_cKp0?$jOqw%p!#rQ4*B>?X=D
+zC_4>hiT@`7!%-zS@1^`-uHum>JhGiDkvDlfb&zvl9Qh~s+$;YCZ*$vwE6(Ya$oI8#
+z1P_ciOf3@paMs6yH;6r3dLEPj&eo~TW_nCX7ndlSAbmkTc)RwVBFopfGG2R6wzUIo
+z*DDw+0OQPZ$!``-mHcK#xgF~y%Mt6O2;YB1KhKo!72hTg-+=cm>*bxS5Y}HEPa*H#
+zAgv5*Lz(cG7P08Fs|3GGg7WTbp$@qX=>eqY<6XzYyG*VrmwjQ?cYgi%<NKc5aDUxY
+zUF-{aMq@Ntya(kHcP*Mwb`zc^l;4D>Nt8V__N;ewtm9pb>mX#)*>T=|^oBMs_vqV`
+zy3uUWms`Hkvz+&Q0^!ZVUl3%;W-VjQJAvRDtck75d9Q#nyN*1RiyGb9nY<sP#U8iz
+zoWcH_X>u<x%J4{gcw-7}EQFrQYdmf}b25Dqby|hkyClk1nOVjerb}-X=b>51%QHO<
+zd%6JX^M@a|xW8*1)oa~6zS$gQOg4k~9t=@NT8=U<bMdRaXlsg@1)f$M?iBVQI?4rN
+zt!CYoy_T8T1estG@@l3xMEPKf>4t2OAAH;z73(m0Cho!i5|k|k{M=_PemP>gj3CMc
+z&<EOa$UYS6fCpuHo?eE0M+<wc{k8uWd+!1tS9RWtt{IJFVHA+D2re;Y`yu>5l1Ii6
+z$5D)ANw#E5@>r5>**KB*%xuk!H7{n*Sd!zWk{{p@n;7DNLrE<NNomSGbz9nUQj&^<
+z1WrPGXi5{>!@0j12?atpr%o^J$?bLG`~SYR_RJnh;}F%COL8pF-+S%#{MK6E`qsDB
+zUJuG+75uu8k7Jx)qJJ^n?SnAh)ko81?&WDWc*gCaF_ts^Vkxa-SjKxfC?A;{sBD&|
+z>D#%6d{e$$a9>AvWKbB`pLy}@R9~^oOWF7_&JX3q1=^W@l<iOp#-k|P^$7F!OEM3X
+zXUc~|<$I+j^Wfhq>8?ZmSKYd4g6QAQcaP=js|s<h?14^!IO|cT6Dwq1ian!TUz7*o
+zLHvLleg(>-34WWv55`WJC*r9hcQNOO*SY}f;P=&eXQx`=w*~rbW---ECCcIi*D2?V
+z_ALYJ;rHANXQ$fWw+;2)H-9u;%w=$t%b=L@h5Xlz{2tfi@hy;#FXZaaRezlGUW`0*
+zzMD^^={{xu3aW$UT)zUmT4u}lL^bLdewuDLJ0<f#XCM}F9)!w6=0k_m_3*PC`Jg(X
+zdUO%bQ$7{#eOHa9Y2TLX1v;l%<9c(#kHc1P;qQ#3iRWJ5Ol_x%>&pQ@Le&@1{CYd`
+z2S3l>atWGmJ(_;<gOXmN)lq&tk6!(^4ui+PICZ?_67-ggripig-ziM*+kZ2XZiAne
+zOVPXSL|TKNm6xE`yXt6q9nBf+k~9-fWy@Icl(Fk@x&^%S=JiB#CG%32W~&}<I+mvM
+z?_c~j<Tmrg2-93_r}=xMXn$Xvda{}FMKq73i&efXn*FUO(oN9$k5_``KBAe<2q|Hj
+zX`NECSjq;b{g$I#ekFZN)3gS~fwJqlp3Zkd8D4W3bRJ>er!pZPAzJIceU@ce=0>7V
+zmaV;9wdS*Y=R^3#QP4;0<CbvR#H&Q33v_YWHl0XQ9;i&YtW<fv3H_MXf_Q6=@)|5I
+zces<xA^Ki|9!+(eo^Q2FDXXk<Joo%rzMn#0Gy>X=FpWfC3-K@LJKc1a+t=IAk1}mk
+z?`5{~8(MxAeGb}H#|c$-RZJi80nxb6b(YI+LdioaKcdf}c#rNCp*1IcrTOKzUX|bS
+z=T-St%wB$_O(c6zet(-^enj8-WvcA9T4g8O#$rX=D@Bqv@5-69l`8rBG<4#$i^?ud
+z=ateNN5<kqmg{(){ucVFn~1)2M#|{Xj8HUEn;|-rjTrBLkIFEek+S(jCM%oC51!qi
+z_w^Q{HJzb)E^;5ul&QLIQard0G*46#z3GhX3lC>pie^pGTmhQ<J}^7Yb&BS9z6qK?
+zG&{|U6wR+}f=qpJcAD2Inx9?@nww{*ndm*!d3MTME$Jm%i#@Uq9BAjX9*NrfkoWAA
+zahIgGq>uWIW0Ky!doTv0^(yzIdlF}-eiS^$^v;V@KXgxq+j{)obP=!|eZ+d?>5bGq
+zXycS8>L>2aP#;l3?Xg_uX%Te!@Za1EJ1W0X&J(Ryn@9aJo)@4C)1BUZSD#4F)2RGt
+zZRSX(Ok0{RLAk9*Iy49UYVFyn47C}J@^ut`P=4?;kJfSmG*2;kJ7gQ3*Ggq|>eH}0
+z$@2?zM+(iI*Pr{$1kHnKLaw<g7I)FPDO~=vo{HuiJoP8JeYg>(8@fslbc21+Df*y`
+z_-S1q{DkYJzCdf>>cq*3YsINIsn3jiXr0u_sUi431pg!Oe-!?Y!~cnqlT-Kq{Ne@|
+z!c-tE-DgtfIWgrZIq~Kxn%B7Y>u-|&IP}E+AMX0g7vB7Dac%kk{M)ZT_s7>B`q$Op
+zxp&LL&F&{1pWpoRSI>-u{`h}2edZfK-1q6F3r-Du?(Q=`zrS(#D@#hBZuM6F_P^Et
+zS^fBqy`Q+{t1tY;k3U|%<_BFBP0rCDJ@)F0|IgpQ@uR=VEcwB_4}a_45B$SB|D$4W
+zbMcQS|L|vD`sWM(=!^yKYg>JC(?|aO;^@EKeeY8Ji;=SRQ$KHd>l;t};eY)<xAkrN
+ztAC3>``6$2&ZmBF<-f0Z?5$(&e}1L-rsJ-Uy!^^PPJQ9O{pe?h9>3Yx_0;oCOIN+~
+z@Ws`Qf3WQIAAMx(a~Hm~=Pu*Hm&!i-JMaAS#lQRb(PP^`^<*slqpDw2G&;WY*n-lI
+z!=LK<U$_6uhOhtC_kXzhfxo}!C$wg2(a3}H&QQ_A_b1W(6z!G0Q|zR<;75wY4ZNqY
+z9`Cg7bMc6rOPE*gPuFYmUd!<sS{u_eQLpxu{?^Yijswrs%kMh(HMpB6mfc2o!X1I1
+z<_YJrv5b@Wx~qZrf6+O}i|9P4a=8brC{BIf2;a}~hlrc*Z&)nEeRQWRt%VwK2Pa6+
+zcZ`kI7LAQ9DHVs)^Z1;GkqP={_Gk^Q&wU7T;J!4iyINF!56vCjSM1rJo{w~2z!>b#
+z`fpFpv+i=DZ*-pGiJ$Oy_??r~=7=WR7r(gvo{9SS7CsZ(%3tP!TyM0m{GJI~OEN;~
+zDcZ<CuXCq3G5+`g{4UZSnkoe?^nR!2oN!>=zeu}>*OV+SADxIJ{14T6m*p7yEK=uc
+z(SBLFtF9blrV96|W3->0#w``@kz*eQokM-b;q`sSgVeq$J^HpoWv~zN(VFbV;wbIQ
+z%oHQN6VD;+_~UO>sP)=3AMw=2Bap3!LE9*u!ISwT%D;A+=T&IEkBjemxp%4*cBOcy
+z_045?r!yQLIV110X~X!gZT#%i7@ZI5IXO{Ue)7llu&W<GtG+MD@2O>OxqfkRJ&lnd
+zC)Ap$VznpWuVEfTyQH&dr;i8e4wlCM-abKdx-R;bxBBEn8|c13_oQq%IpNWcOugfl
+z_T8|5TiMe$mzAKY;pEAQ*WzcVdf?ALenj54JBBef%=>`lp5}?Nk>eBczDe}ItNj!F
+z%?tHCR6}EBc}9b9j~#Ki$3DmF<Y@hh+;4NEb$=Uw)4dUG0{QJhS-!>RtB+;O8a2Nr
+z#um;~-&q?XC!LW0&Jwkbismmqby3d0zm0Nm{FA&N2L2}CZ=%@7tL5<bQ`(y`t(-1i
+zD+Hax5a)YFJ+vM%6X)|zPG#?yD+XWvL3REea}+n-CG=SJ#kb-Z-=C**7f?no(H$`;
+zgQ{wIr@+-hd@c7~`{cyRn%rG;i){C}S!MB7wam{;ByUl#<B;8TD$KuKy!bV$OV^UK
+zQ~vnLiKoFI%y;gw$!8$PpT+w*y8Ey?x2}fVpD(BR>#@ntR9ok@<m^AD;x18l@jO#a
+z`&ytwSJR%`FHU`@TJC8fw{iHdRsQ)b98KPvMs7(J_y16HlVpF3@=Ir=ccYBYjf21H
+zKgZ_`%#&+8GS*t9g)01iSK%L0bbO^+^7|8t9y;&$_h9}D(DWLu$pKn66^nOPxWxIE
+z>K|8}10V3c)nl1YRLiyIHz<DDTP@EVs<6#>egJelj&^;dLDEd}<(g`FzbLKG<TV9&
+zA1mjzIP89vqV+nylW5z-`Qu-I(?xqcw63W&qLa@Mq4YMY^cMb-^!}yl;!kM5Lp{=<
+zy~O-Izgo&mTJI6KDASu%e5a{-sWr+^1>Q+6&^I7jm-IT#D*@+$pPi9sM?3$ieS+@0
+z`tysDFVUVCme!xV&UxR->s<9s*OkP_7Pv-^Uw5bC!zDz!o9DuBbbj|Fx1~4BdA$<k
+z--)R|t(NP>S1JE5E4QbV{W6}*mTLz|mi<AM%)=Y%&e12}zp6UBMv>+@d2Q^Mls_vR
+z+5Hpp{cu(G-f%91|GP@k_d_+ec!J$`lZ;t7ulAlBKA_f^(0yA@k_(W(bk{1M&9wmi
+zkW>7`3E4;cv-s@e+L1Ttn<#xNDC;{rMdwh6FSx`apsF5n8*N<Pflf4?;ycqHucG<G
+z(^F$rvL1fFO7ben1qb8;=?XpS9^enCwKlgZxlqOT;{L-Ft)0G!%p=DpNH6#k#8HZV
+zxE%c-eLHo;kMMU|+MBTy{jsb3p{X*&V^qnz+{W>|PW%J($A{GVI?uu~56mTF3+V2Q
+zYc~ifU!begxm9$Q@G^>rzN-uIR)xCn<cI1mURo1>y|Vj9meUVS{h~_J{C!pSJtUj%
+zr8@;4n$qD`j<k<*x$Mr&s~=lJabIu<*xv(M@8NqIEE!1rf0e4suR)%Xj!9>K7J0UU
+z$Bw4!%Fpt7F8_Y3^i#@ww0H9R#5c;%V%1K5s{DM9>3aSRN|$tk*A?&cnd#{NU%yp;
+zJE3)96?BFhXcK)S*>gC%RsQ&nWjcFOwc`c!U7+vSghSjj@gl<Td2rljk4|~0&e6w{
+zoG5mG^9}y42y+RUiSPQ3PL;dmJ~HAxT3h;;h{Fm`aotJ$0^T5A`+k+016O(s@#zNG
+z(Rn~*{xHnTRlBD%^~mm;D%&~CYQ4!PVMpr~SAK!ca@sLTbHb&3CXx01^)>bVbqAl#
+z^zZ6yCg}AGXuTup_hS5kDYu~eulG&TeofkkdaYVhKxffVxs;1Xd2ayCHS^hf+R-UG
+z&$>)~zc1zUijHASeFSmIaYL!<Q_ICEsKuk#|1<Mfn))?)ZaLj45+9ko3hlV4Z|rll
+z*YwPX52qhT{tmn4+7Mc&L~<AIlUI4hCTTw<t(9Kvq_aSF@Y%60j31rc|L^AdEv=Vl
+z$Nwwxnmw~z`KP_%(5vYVYwqKyuKwt&U;QfY^Yh3#b;mh*9v$Bk5r1^5Xhhy;chN!L
+zm!JnOr8B4$ecHos6qVo0XYwxQ^SOIy?=r7FbV85+7l-_YU3{uP?NE0&U&pelo6ZI}
+z<*M%=$&1f}__TY|rO;`q&!zA0bgmVh&Fc~m@_Gu=-)mG`c#G}FGPD<u_TbM~>&|Eo
+zCEp1P|I3tLYTy4C-<{Gq$@&lNZ>p#By+AjwL+5>}@_tFtnfaeTvH0Z^T+Y{^PM)Uz
+zgw8&3P#KM2jDPwK;Xcawr?c70JV#L1V+%<~73uWkPiIN*`gf6DnM&`>CDJQ%e~!<C
+zqx6LP*!5PL=hglOI!oV8>sx4@%ehCU%A9yUN9mqOmx<4$UF9QFG!I$k{>&R?^xdWW
+zktx^sBfKW3oX(m%^$4HCfU(8(rP>I_$D`MmftIo*kZH7!6XW`;%12RG_Z63mkzzcr
+zr?p9Zk1fr8xOH9&;~J-PYQ=qJYOTPhNmsb2&Jh>)q3zs<F~ohmwyFaC;y3u58(PnN
+z-xRH3ygJVJa5LYRianVM@GmmHp`!2MDF^A~Vi&I&UsV6_)MC%Wyg#Z~tx2PAW?L@G
+zZ{^zfOgGw7^=B7pErX2r#}_ZIrgc(G>-Mj|Ikj5$YjhWRsqKD8+W$)HJd`|wocV#0
+zGdnYx4_Wny_BJ-Q;5OS`<<_^eGSIq&=&F_H=rHe>qi*TGbCP2sy^!wAUMwD-(zJ)O
+zcXpsp++fA^lhw38^x>&RX}I%uZBJ&s`-jDg#l3tU>U#GJ#Vg$pbG|DON1^ka$v>Ut
+zya><5<M)1>=)1;7uP8eC=6*HqC{=wSo#`g;q_~&w4>_Y~q5h~`=?!I&f1h7X>yeJ~
+z7~x-5%Q)!VL$~FJ*83s7ul+*q-B}`zzF7)+Z}GxM!3*@=tqgq#@j9)$(lBl;SNE3K
+z@8=AzmimbOeoi`jl4UT`qc&Uzzjdl#Suf-om6Fx+d#_OX*N<#;5*@FtmhuDdi)hdI
+zIy&R$3-Vj1mDj(w`Jp)I+_^NjeVI0`Ii`JL7iRJI1KvX~&2QPtuW}Z@-?O=USId2b
+z7(?)Pd2$~Dzw$Rv@GRe5AD8z4Kf8+dM$kMlfUz&NO{ezRbmNY58Tu|ka~V9xgZ^c{
+zIyZ*KEZ0I#xqkZ48**JicZT-PQ~kRxUc6We9IbK)hqhya&Z<m;H|bos0a|+`7G%QI
+zZ{8WpELaoE6uCF0Z+4p#N8Crssl62a^t0uH?o7YdlW}T~r$?`?*Br|1fO+&9Wq%Fq
+zmDvIF=m(Vj2Vk$v4wy&FlzkcOmDvIF=+(;pYS=5Y1Lo2B%6>lVmDvIF=vB)8D%dNt
+z1Lo0EWnT(=Wp=<kI#1cpgS|34U>+?|_9d`aW(Ulp#mc@I_R8#ldDNxsU9eYX2h5{I
+z%DxEp%Itu7)T!*9uvcaW%%cuv?|{8BJ769a%3i=;nH@0G9S{6{U5s%*LT0M3n>Fu*
+z+bP|6E(7xD7AN)JJ7{mu{37t+2>7l9Jolg|g6wKYlV9h8B@=vBQ0=k_YU88e(<2_@
+z{dF0qa682K=>^X5&o6lXyXO~t8=$?!Pi!5_e0gs&Ej-4bme8F(^)#1E-!SQ09euA^
+zmVLhi`UBebai?R!q~n8-#ovL<_}~fJ&puz!ex35ngwwHbvgi)<`*$dNEiob7lM_V4
+zZngGBOQ-NIzINT;j%C&spGu4J$0inDb1L0+{hy?1ue#=Gh97xv(?a-hj-Oc81%KbV
+z`A^c$9S&LpwO5QELSD~vnvRkkG_Kp=Ea9_dH#}B;F4HH@Wx{-q-O-7otMM#OOzsq7
+zwbQY0a%}t@NIN&-y794eartP5<kgAsb13U`$nRs|732?e^1OqnrL`yUKUTB=?MZVV
+zabE3ioY1r`x+~|aW!i(ZfBT;*#t%=Fq23mhjb&=D<NcFwRnVHdaqssR;N87=^zX`@
+zV}Dmv-<@{dI68)OA49rNy6V%Jo9nyjj`gpW)t{zv`ECVh)-?Zw+clP1;2g=+Rvcp*
+z%j*5o9=w48H0y|DU+WsnnuS<5>9}LrgyVxtoXES=;c32(*1(|7GgRk`cnmH1p@`Q#
+zpU%)(>)=HPg)b7dw3cll@gv?BJ@MUh)Mwo|g7S2fqx=_)E+c=A=F>=HbS=#5sZM^k
+z;@IT19~|ZLW5}J-L%a(RFY%hgL1%7jV+$OcPi2aBJ&3ex9nKp@7fPDlRK`Ul$B1to
+z+r}o>()rB1pLA^Ui!94$_v74A4nFAHME+>a`-pZf^G)bSI^Cgi4fN)9*Ijqfb=$&g
+z7B0C?jyu*)(z_MUHSN$Jh^H1jH%a&2I<!+6%Z<-(q`h)BJLirCbe8j8i{C9emVEDA
+zW*@ap$k(TyJ4gE2b=l{V!)eX!ohbhn>WJ#DXoPu$zGH2tz1xWQBJ|ODFP)fNvUPEK
+z+1|zFWn$feGI9HYm=IU<8iKwh=@U0TmpQTFTN%eLF2e;Vf7JC6*8NX?^Zqo^`@qDP
+z)6OL&6Q?G>oTjyJ4|IJ6?YM5zk-mT7Meww<Y}aH_+w;_hR^OjKmnruAdAg+UE9rZ#
+zKb-mUjiZ@k#bcTOG=C&>|I}FK=i}WI^UC%e!FcRGr{fcoW9eMGA$`}Wm(W}}cxeQ6
+zy(Ik<c)QG#90z|t2lp3=K9Qz#FS;jsz}I((B=N`JI~O><5BFCE@iW{ODc--@;(d>Q
+zqWpH074d)ZNXEHD*3Xx&J(aGlcszY1{rj0OT|4fGTWx~;uY><$*)9<O1o<VoV)x7b
+zrtZ(U;djC9M>5oI$ZxG{9DYXf;-z*}O5-)%F(G+BD;Jz3gG(Scgt(o@vQE8d;xPEG
+z$o(bwp))g@r62bZmf@(&%(A^@X{t|}`yA~%l{wP);DRaMTfHPrG*G*tbjgj{BDG2K
+zb1kp;Tt~9>Mo0gt%+<Vq^LB2NMg0$w-v!jpXdkx~*Y8%0X4@jgN$(qP7-jRNcx@l^
+zT2s0xy(A6(%8-ob{Z5eQj?S^kWowURmew7~IG2xQmUJG=X#0+3grCarnhE+2;uO0a
+zKd*mcqNwdCwUO0da-Yk1>AudsT^L(_J8iu?O3>zB0Mf8e{{zO)o3(5Byz7xA*)Y@G
+zp1OovmE#iO;8v3UJe|WdzqoTObIT`=WlFs07oqz<zVS%rFve3=-#o|rqo{sqzF%<N
+zg1+a*CTYHi>|w`!fYm0pVvJEVzBBC{-zDt*3Ac;PH4{rdcz@=p`qKs51D*F%l0KGM
+zkEi5~b>NfR9iOAM_b?M3Br88ldkIkA_tLs?+V4pBO!GZ{w^JW;Bh^y`VJtV2VHSV2
+zBg|<1smu_bM?4Q^e0YA6+`+5!sV}_c!3lbzAKSZeV|wzNtGh6s6kA7cr@dE4CdW1$
+z$=sIJL&kW%#!+&Lc`-YGqwJmFt5TT9S6uvw6J<bpvee<7V*1~>%f-)^@$AR*f_i^d
+zJzd2v5wh8r7t7~*JX1FN7G*#E@2Ijrji=9M|ERKm8P7G2oc(Lc{;6ACq$P<9o8<dD
+z%D%kBC8}-y7nMl+b$Hg;?CX?$5YGd)bmJuj=v4M+@T|4P^Mta09?!Kl`&X=Z=DEae
+zHv7_f(!L7MbvFBYWgo}$cANc(vOj}ogRMNDQ1-9ldCKPhO=VwN>Jksw>?=y8y&KO5
+zVPCJ_+e&B8uk{y>`Sh^iH~O`eTRL`XmF6k{jJURDy=aWZhZCVdFsZF<Bx`MR!Z5V1
+zSbuU*PZ-+fSSsq*lc89&N^6b!YUXzbL#BpbKY25iw~uNj-jYGGNhN%S)*nk~KExb~
+z2JnpfLllEqqiNki1F<4}$M*RMnb4!j;g4$3SW+_%7*P(_-rU*P($LY}u&K4JwR?{S
+ztIe(59nD=`+UD(@T7%|k=<IH7+}YO9sd;vGdbW2p*UT4d-R||2*WHOwGKrYH!^jNm
+zcZL%oUr=jG81cA~5F%hijf9>ww2ysEtEIY1!~zLDVy?*+QVp}PFO=}5!g@mU8*wA*
+zH=@3fVQO9@IcOku=^1YQp{UFohtZ>y6W#CE^l-w^{lgmlZ~5-4G*@Ukii%1^ONJr_
+z!Xykc6;5hPKBlc)c_0?@YpYkeSLNc0#b--R>kp~;MAxvHG$JcZ%^yk_zGN&hEDJxV
+zCv;!ZNN5o~ZfYB-!nN7|P%=g$8AEXPdnvDqkhq=<(kpwdG{t5l=uHJErdT3LbsmbE
+z$wbP>B~zuv!-j4e#3LK#*9DWw_=YuW1_uXg0?|}WED=~^vC*1v$m?5!n9Q1BG7{d1
+z>Jw{HW@3#QB-c>w`sf<U7?DZkJ>4yr6X}E95vQu#4b%J!uuf}F+n(OW?VX*?jol(-
+z#zduAX|BP4J~1P_a;sTwk^w$c9r;knV5s~Gh^3P8RFW%-Y2~!=+}zOJ(6&J{x!N>;
+z3`|9FaNVLxd)eRG-nQ+H4Q<U$&6`&c9e(4$8Z+q+MYDV{2sStJ648<|$q_<CV|Et}
+zEbdSF3_rNnr>9U6DC;O{$<zjAV>DBSU&;yH->dQpa<XPHbZ;`&OS~KonMu(arMNd!
+zsvDT^Wu1T*Bi>jz<g;;KRF8l(nL9t&0!_KCnZkr94k8ccE-5r@tw|%<(@(O;9wt}6
+z)s&nddlD~69sEYj8z<iDPsAc9Uqy-}0A;hYv1^@nKo6&6eQcKnM4=P0@CJc8^ARnL
+zvNBcqu}}*2TP3C;E>jN}(@HKD_E($9;jlftWu+x`FR{S(IAu%^PpcVZc}T=#CjJ*<
+z6WT};;wl*))|d~7JP;Ov+uf;<k)*Op#SzLhbCsxbA(1zh(^(pYIAA2aG1Cy9L@1in
+zA~9;=mSaQ07YrRRas|MAQ>{yDA(~>*6;hN%jX@1vfKG*&btayuPTKr8_$@hSa+&){
+z0>{Ay5d(Z+<^@JQhIN#7r+jM05V(qpSGN&mL@B$%Z-fy+HC1Xhu}&irgRe^^$4p@P
+zC#KC&ivAMsRvKEYKkH8qhjg=AGNp{XhOJ~}AqNP<(t0omwutBhHk!Hppz8@6)#xrl
+zI-083V)Zq74vGWd?hOU9p0j>)mRXM}RNrlDt3gYEq7@Boty?<Un>)IRAB-e-yh%L~
+zFp}s8q~~7L9eIyX7DLn>CQ(u=(ZqDhz&h$;L`Oq=^ZdK2tMlvfP<8bzh5m7Fg*7!b
+z^Q)`v<*D68_8*5H5s6bNsV>5d8@^C~$j2;c=^+>KH{JZ~)zI~-+k2{enwolgda9qF
+z_WlyTS7+Z}!8<*z_t&I*_WgC~PCnT7ZOfhCs;l3b_I|<g-!5%jWmb4jq^B(V-qb`?
+zRFvhXci|?NSbT#^Xuxuy3Rnl!0rfx&-~oa_5*Pta0B3+FfOEjJz>B~uz|Knd`W_`y
+zr3m$fbu@RWJSeR~$y1i25%jK9%d+u@Ly=H&1G*I1+>=4DQRQC0HZ3~vf*uaX29?~`
+z&15em&vY#$ryKdJeaYdt0o6#-0g=;39pMTV)YKtCvLcw2w$%S+1u#^+09prko9@+N
+z%9~}T#4Dk2^oNYFU*<5|Au6#B*`TvLB%KbqOh5}0ZH>K+-FrOTC!me^LxE6I<dqrv
+zf&wM>ZpzC)U462ZRZ6Onf-LB%hvPw=<dh;}NEyty&izT8WG|j5$as+2d{~bT5Ut2d
+znA}rQUy|dArbx~wV={$gOr}8PV-ADdA<al6Vw5D?#YxFYra&`<1qm_LmsZv;hpSCh
+z%$6wm8w^2n>uc_4(#YQm6_-7J5*D`5h?wO6H1?T8IO?#O&yukLR3$hKhTdo_3Zjj0
+zI21QAC}3XEA}NSxFKMHR0V&v%gE7*C;p{glY7=ax5km^WIm+wpRV=crXW6KG%~&`E
+z*_utL4}xrkOo)mGi9s*o`sMhbE9A!lGNo@)pD4;8_|gv%7eSAnP2C>-3a-m)4zJar
+zRj=;ZNTkbX;m1VKFbalQjwNlLU!n!3bv;)5l;!p@S#DIWzL?+2zpZ*;`AbMIP#Q?b
+zL?@Eu#!bAEi_|pkPGJCK<ml%JgZcqA=%Z2(8__^An9K7l!7q_(%g+pXV1VHg;DTK9
+zjFC6tPsPL3y}-#nE{Y|xdZ1K>DZaiWs5a3F_i_$b&=9Op+sJx_mDN77X=#0`1MQ7K
+z_d_BpY>87_Hx7hiDbr5TAk+sM^IGi|k_PGzG&mAL-teWPlq#^8(bjWRqKikt<dXs2
+zT1w-5HC(12iuz(C0x2_)11lf_sR=55XXZGR!dR)1g2Kf{+8}FK_K__QeGllNFl9@`
+zz!-^M?lr16=E#lu!YMxwzVnlj>2QJY@Rj?#rIqGVj4{J0slLpg>5t_6Okeqa21EX2
+zFweshZD}ex5RDB+HSR~y61YoPN;+^ttJ4(Oh`rYr1HUr2^hOgZ{am?bGj5G=27{yo
+zMGeD`7o9nQ6)xs-F?)DOPBnt!sPfr^xsuv2(M~#BY&ySJni}zDK#n|#U*N~y`jS#C
+zDwRwQ!>l2jShHql$F`2`yF1pb5nUe095?^1b<_MBcVZi9Y!s>PH&{R_cXuPXXB{>Q
+zNPFfa%bn)A>XhY1p3g`mLKt~eCk$|MH0!U4{7rKt|HysT&qv4)EXW>Xnk3p{xSBlJ
+z=-EVm?2a2}udCT>=9d?IZcNP`d~Qrj;*z>CYL_ewld#bfmM(;{CfjUz=jdr$u`dNt
+zKO`9-r{r1PU!Lu|4X1ju{IJkKj0BB6vpsdCS;Y-stEBneeU*D-`TElei!Xl}S??mu
+ztR#uLF3(20fQluj`<UV960zCo;86B9sn|WIhgi+qE32{>E+mnZ^`I|jEkqx`tjIO7
+zpl)>;tc+6ZfdrH`R!pF!%J~<b-uMr)ieQNv4(F&hSxq62eU{!UHSnz5oe{}@AdcL0
+z3zaVw4o?BevgXq7wN#&8OP7%IMwYzKhRY6lMYb#G59>);T*6(u_O^Am-|^w~Xy~L6
+zLfsR|V8WnuA<<ap?N?)Lnkg}9S_Wo==B=rmWEZB=BH?HTZL;Aux6NE@Gq1IoZ?l=#
+z+03`w%y-z#AGVp-+sq`Zh9O0U;!=0FI+`2@hN3nF2lc~VDGWwnRA2m<t_MM^=f-@W
+zxNCUN$CV!`zNjCt`L?$dXiP>Vo*d?>rD(vWhxlR%nz2MZ2Y9BN2muvVzmkiO=6Pkh
+z(GE)Y?ca8Z^T0d6&wvYnxY;FKKq*iLlmivOB49C~0n34vKo#Hy)&c8*I-nkC0$PAJ
+zzyovxJ-|Mo5AXv)APmHTBrpUV0!DzNz;WONa0)mLoB<vM#(*b)CxNGcbHLNUGr+UJ
+zIPg61BJdLMGVluUD)1VR23`l=1l|VD1MdJo11<nUL;itMpbRJnDu6}6Vn73y11o_l
+zzzwVe)&q4wJ<tTS0BwK==mvU#eLx@J2ZBHthyzJr2si|c07rr2zzN_Ka2hxRJPM2f
+zPXJE>PXXtEr-5gHXMu6xdEiChCE#V?72s9iH6RVV4!jAx4V(ww0e%Kt0K^jHA1DRN
+zfO4P$SOhEvG+;Tf5~u>)z&c<(PzTflO+X9K26%vOpa<9o^Z|Y#2!w$+kOYQ+L%;}d
+z6gW=d8++TgcQki5bnfA~)g)v`uPG<bqDDZszxz`$Xr;+sUn-GM;*9O+9RreK%Ps;1
+zP!0Hc<1sm=zjXVfwx^LsAGQsKIG$t>g9IAO_L@fAMngaR^vXVi?WVs&8#Q~;Mt#s>
+zOcgFparAmYr<`ygyXY+bqO<smb0Hu*X4LYN_f9m;mZr3y86Vk43;2%~@E@NgO*<W_
+zXsnk<Grct65VrRu>ns$;?w)&>?mYghuFcg64W_yC9_Bufs*7t5eyMJ_FSp4_HHt1!
+z!Fj{k+O_Bue6c9BP!^&*ovQ}J@~aI(95fPHx@-~J^c5j$@_38qcG%-IK3&1O$Y3Id
+z!LAy8zsqp8SvGLF8RzejF|ccH7LN+2wQIY!Zfz}fb>es54Znw?YJQ;7UsF?4NoCs5
+z+$0({cZi0zHqp=ybH^6Zu)RSvbash`op|4k_r2|6Qv<N6No;EB7Mr$oh)pdpw{8}j
+z5N1;cuzi!*)Y&FBb-~;X_uU?`X-}uvw6{q#HULeVMPm!l<`In@dqm@QJUbgj<4!zx
+zHH*eQc<$XMnzn8hP22E<dlSMoH*XWoTRft<vqLm@ZxYQrJH_U$O=9ylkJz#aXl@f*
+zS{lWcR+vG{mX6J0OZN`3Wlxi6*#>m9iI&c7qNRI_XxX`0v^I5$*0wIu+U^mp9Wd``
+z60Mzhc5M?|n>}JH;@G+!@az%Wn!CidEkH}B*w(&TZ1e0E+d6^WO=273-?q0~v^8uK
+zZJ?uVTc>F2Y!Yo<ZKACk*ag5(JM!M%)F#@uG>CT4)84*Kw0CricI2<UbGvAV-*)7w
+zeHXABZap2M9p%=JGVegx4wQ9A>vqwxeVgd;bczm?$@cb6;c3_;Jk1@#vt^s`w0MLE
+z>3iDnzGsWr(a<S6x3>Wuq7(JexpR}~+`U<J!M+Q1*wu(<6P_sBt}S>Xd{=9?=t8-7
+zfe*U2cVVoFXXh5t)eZMujiL+n)3vuvbhm60-CMgvcYC|&M!k0<AKj4S-SF4F3qaX)
+z@9h#h8(PH9Ej?l<(%-pfr`QR*UCo=sE`-^&bC=lN)h&7&HjAFdCeedB>DdmmXS3MT
+z+$r{g&b=t7y@(5aMaRze=FV0OXpgT%-wB)oP6KCvM}aY*31|blfqg&_NCJm|MZjV}
+z1C|3XuRuSCXBFTE)&c8*I-nkS3hqw><G_n6r2kid*MQf7w}GDl0)ESYCt!XOs6=~e
+z1?XcPncHpVE<jV}xcbI&GjNl7{`R!zY<3h@x5eYNnGKt{<z3LQ*Jj>hTZ@A7?rv>w
+zmUA?*nAUF$&Msq#7O!6)rnHAJYM@!DP?#q6Od}HV#lrHtk`+%xj}8}#NcTqAGyShe
+zdgBqEZ%<lXt1uF}K<^t#_UaLG#Cz|sq4T(d%;-zVRhh{o?UTw(OF0h4<QT*cp|7kl
+zW=WXI-a*3{koi#Wv4nc}L6?xL2IRb5rLI+awMvN3mJOBd8!EfBN-ny}$eK$3n#y4|
+zD<?L$THfMvp3;g-!{CY*VJMxSzW`BZ2clJPM{}{%0j#){`W_74tJPfT9O9To%dzGf
+zRezF-c+pAnvWWhEnvl9wv@&c!Pk43oBzn@C^i)A*2Xx5@s#gnf>*{<Oc;=V<Qw7Z_
+z{dXUOW_=&Y4`F7BxpeZ==#I(h?Ee7W?>+_@hnk7j;F8q^ei^;?Fmf%zr9*MM4Tcha
+z>%$JS$8^nQ`d~IpU%3<3XFC2~gVyyfbhU!vXK8bLso6mt5guTx9!=?qVX@ipCfGnS
+zkG_4AZWB+0!u&ogwx(qJ-<k@upN3Qb>C*T4c+w#Dr!^<OWQ<H5u>+QsXo99}nUNNy
+zL-AAG6eq<;aZx-Jp2AWX(M9X>kWzb0KD&`~GVC_|QE7r*FqKe7u{jZ9Qx|<mP<Due
+z!c$lZNB+ql`LSfRr@?~`lh#<O$rheXmu|FtKoEae@{Y{`Ij6(sNWyxWIlB;lKa^%u
+zRK_cll>s0E^v}?X?Ul#V7%XG^HwU(aW0Cf_*_E8uUJTQx#|_&zr)Ykk0=gTTnmU`i
+zAVD#}NJ0cN^}bk&#st0cOG)mX{Mg@h?^>JrwyfEQItxShwIX1%?v+o7#E4}V4teeI
+zg-oyP$IvFSG^8Tn%gT<*e!vfS0aL3CGM^^!(pX)2P^;{Q$yeDS^nSnB40a?FM&rTm
+zE?=dXy-fNlD=U2~3KxxRlOQz|MeiCI)*M}BR9j6GE>fgeakoN?dyBibv`BGxcXxuj
+z7I!Ps;_mJah2jw0X@VyZ$d~u~k&~R8y*tm$K6g&CGdmN#O@vAK@>|e7&n>2N@+LJw
+z;lb~eFdG*8(Lca}ZA8*54cT-LYu%vHUFTPHO3|TJ<0d=rGn*S5K{%Re^{&Jpk(`Yj
+zF^&xppDoEh7*jj~tcBArI^i=G))coB3iY}i3j}Rij~{;!FKypN)~mE6-5*8PA~q=8
+zc$A0dXEZ`3-XEsJ9n3!%aRq$3oq5mcYRYmuVwZXHl&myN8`+C-lRE!Y!1U}!d^@dQ
+z%!KTzDcZKM9=@a}(8ka2(I$<;^vo~;d^z0HH_DYG^bK86rDKqnwHAs9hz$x<)VZUd
+zqEEqC_$@c7JxRNlRBw?u<y`PHd$sCY?U2Y@-t=r?VxD~wTd&ql3asP6LXDdwdWkoz
+zU5bi94^4xv_zS{GmyV7&TQiMYW+!wO8<<hM4So!0EmrJmJv?u4Tr-?web2Qm$c#2c
+z7)0kVr?H(mTqlfWemp=g2!gK5=dhqduZ+GA#n$B6`Dq9JWl~zRQuPS)8>}Na^6>-)
+z`;`#`ep!6Mi;DVW9^KpHrb9gwBQd|ePBju~mv!|k@Mthm>faj;_^%%%S|tYmM34F7
+zf(jHPaBfN|&IjypKak)o3J^=kF+oEO%zjC#^8Gb4!~LYxGgry;hU>VKIOfZ<Dp1k~
+z6AzkFYxUBIVKkg<NI+i|8k@J7_O;NmS_=3>|3<uyLr#P$ao+BCz;&}slp;gi9Bi0#
+z#c<gAii`RrHO<#{rOQr2nP!tLQ<b2p!hpG;TA!07Tl?`k`;znPuMD*r{7l!>?0ZM2
+z<=6C0Bk6Ihq+x-M*qUTqfFBOg@E^+pO)w8NuhA_Vc-r<4-4&vPI+-a=7bEKt^8)Tb
+z@k|40`@}~x%)XTRj1U(ChatD$s#tPW+yWZ^zO8L&dU39bi~i_#%4!aJ-z6oDH&vbc
+zOOWHIKx1c%L$Z8YpF$n?V0nXC`SgtQ&oxj<gG=4P!#0L2Jf6F`TfPlh_uNclClpv$
+z9>@MyvT?uXg0<g(xdmIb_PI)zT6t|+Eb|K%JE3%QbK>6&8D+3Gc4~!)&aMVpbp%;c
+zWZKQE+fxHhkR*K4?BlU_IX0IDS2-7cER!YX@j`KIfv#?2X7!VXAbBi<+C;$pr|a(N
+zKSt(F@f|E9qCAhBdtc=aW9=4mvg(sS4l~k}+>z*rAg<%I3GO8J&0T$p`u&>-wdeJV
+zkm@@=H-0hGag5ub-(GL(>8Fxhj@)J{3?nLMON}O&Jfv7%sO4JJCJ!&<>GeC=j}Feh
+zFH%?>bD91G4NxOC=k!H#a>IL!C(i_eWO$LaJ8JxM@{KeJk3J4IJ=1?i)vJ|k2r&ps
+zS7H+qH_Dbe*EM4)`>KAyCjHF3LfqW<M*gw)t7E|+Z(medzU2poF**CiC!nXtcQotl
+zv@)w&H=iEjhBB=Oo*8WFkE%b|2!AnmGU)w$^}0vEfr@*us`>A_-+OhA!*@)&zG5h@
+zDFudJwXWQD^Ue1Itl}l#h~w(p{GaHCooF?-`ZRD#$c(_D0Czo~l)sodijo7E;ke0j
+zL`1TaM&lB)<kg08qSY6d5sh}TpV|Ih{?!Wlo+?t-oJD$ZM7bk|_Sw<X+4-wXlo!@q
+z;HY^6_;->Wo4VQ~w-rR&Hu}SdyKSTG810${x#=!i-^;tRawK?P)0eK1b-eyAr1{rb
+zC{>Mt-R!3}!&8TS_g;EH$>tI!%dHYpF8&^+nio1DXX&QPnaM?sk5sX^w|cC<4r`a#
+z>F1-KhUA?RqKOMzScm=Ew4B)C#E8_Ly>;kfb!-H)(JT*f+~GCQjm>DF7ADc73lPGC
+z1K<nf&Jiz1XZNzDN}JqKE?c<<X1YjiO!&uUqSQ_8`C%J_$WHDvL!BaqW}ia@3nTR9
+zklHGCyaJKhtR;_UUT+#nZ)cJgjYJ5xAnzK<<_QqHl-_)h(4m_x|8`9|SEt9x#n6Li
+zc+^->wNX`cIQoFeVLN}V4<gjtM&*cmGykXl7yjg6M#gf@#`?NQtG}0rmnUemrOSHG
+zXzN^Nj0hw09xt3>K?mj(pZy&jEh-Z4XnC4Lx3l^>gP2XbrnlvHr`1ek(sH1~e!lnR
+z6NJf6!uP~myv)$kll&pq6Q8RFsYt4S)M1W%XC~GzE&UEZ)+vvx9CR7YWTUKFi`wMz
+zwJY-LV`>4$&v(ncJ;;yFhVQGi-YF!$?SS&Q&3xBZdTx2Ab`aeJs~WemKnp3#HW#cN
+zO^nPqE<9=_%5OfR=Ze+swSb!8Ur&l~>X7brXh3t?#@Ex>B8PZrov|#o7N(t&8u3nT
+zW{a>U)mQ62d-Bo<lqg-^XxjP3e5j((rx4zt6y-ZB{nI-o$uS={T7DTGLL=RDwdQN0
+z6rpy%{Gi<-#O<72efX(j!(fsSKs)Xjog(9SM?9V;RAx(3a4vNf@uM?P>i3Rt(dXB;
+zMfoj!@;@?+X1YobT5C4lQco$B4mOee2|Avw#Q2+xEgrVjL&m2q7qdI4y5))3jd9B(
+zk$!xcJ^r^`{x5^vKPSCFC69@TGD}MH{RX8*?Kh1ap_h2O<_wWny$2`$^!yZFtqbC+
+zLDq&2k3KrMNACLr21eG?6Fv!&%#)P)HQyxHbjexql}NWG^$&2fL{XSeSO3nht=GqR
+z+1}`knSB=ujy?G(EqU0oTnhq!<jx-KP3bExt!imIZq4!h+d|u6E_Mk`SGu`*xUrlQ
+zHPJgzj?#UA{lfeiSv$I{mEhH7ViCiNsDD_M%)sGjXEElYnDpT|uDyWUvMJ-HbB6lc
+z(z2THQjpI|Y!L{n$L4HVfMyFMV5{!6!w>l>7G(doNlR?&njG00%_hiYy^ZBbK+oRM
+ziIuglA3XcPGJ!{_MabQ`XI&^gm2sJ$pOM>~pIv}7@i(2^wj$WT$BQbJI_L14^W47z
+zfJOLt?Q|COD*GXPy1Ag$)N$QuHzy}2-ClbaPQi}_<?nI0;82_X5qaQax`Fqp1|~;c
+z_^V!Reyk&SK;NW;q<I7vAMPGi35k*EerZ*Y&-aMl!CiBIn0Al-eV)H}_(>UYo>kq(
+zP}!CFjA$YP_iAqucR}p%?UYiS>|blDy>Cg_?!Ch-%G!b>P>Kql&c7@LAdlGcXmxC1
+zcpqG0<(2WI=e(D}e88c0y<-Ef66q<BhBTY@Esc%N%HY`IJ5=K-lQt4BbBsWpYNEd-
+zSu$K<zU0$4T%Tv)PVjA&{cfd>2$c?>{1pel?dA32>&=s=qgbJz3P4eK60*~6;H?9a
+zz@yP)y0p2bo`QCNLT}BBC*lgH|1s6IB+#yqZHFJXt&d~p{_&D?K@0IcF)iDUJTUQr
+z#HAE8X6%nQCj1$!WL?a&hQp~CwFV!}=omij0Au}m(m`sAmE*jE80^XVp1ET@yt{V!
+z9lWu)Gr(nh)F>X(4QLMDXev5vLX-?s8`jm1o+Fv!JFs#DD1vsS18{Uz)%!15ezx@l
+zZ}7R?Ow;4d1!v5Wy4(~!2j1|m3{5G5;@mN#V3$5z8z0WNTsn>e-daP%ro%q1Jh06T
+z6jeL3?A-IUZ>jYs%qHuq_b1F1vh1`vyS{XU`vP3L+EjDV06}fRl=%R4&yFdIW(b#i
+zUM;#oNk?$*Cjl7SRGEl@nKr$^t*bEr&$r$&LMfp5EubV(%kbznvY(KPsO0sXHBpJB
+z<u3F|sqBGqZxfJ>I1t3L<(0iJiYLqfGVQ68@tcr_qResS$BD{x1hlLAEBK*fO}uXp
+zY)me|ZW};$igR+i3aWkhJzd-WeC8BKlWaXQyUtI4-g_lpoI0!SZhRy-HqeFAH{kh%
+zdM%)#NYd}v9;`oQ=1X%^{mij`Tk+->1sO`<Dev(v(e2jU%zF@-_GNCIc*ErT0#-)!
+zg|WbvWFz!83Dz|9c{gpOHk#WuAnV5rsXTy=B5CAC>VJMe4}QnHB15|u(5vcKbcpw6
+z#$K|wnthmSr)<@-ya~NIpnSfa_Ri(OfAz%(1@sbxBp@(psf5(FXanfui@H?~^M<$2
+zi{k$|Z{PGIS${Hry_q4i0#QV2<J&0%^+es(lQma!Ar8Lm6Kov4V|shME)?Fh96fzc
+ziUzpvQF%<{2P-X74W^fTQ^1<Q1RpPE`WwaGHyRuX&J}NM0}#fH<qxb(W{)cPWE4H8
+z)iqp5`kUcIw$0c|xKMhV)(;OFKf7yaSP7Kv5Y?{)pmXK34Tnt`?k#kTs~kKJNI$Rc
+z!9<uirvgZ>!KAM@S(6LAab1^-pA$%2{Lvf_3xtNr6*}^K3dhS1nMs>eDN*`hn#DrA
+zX;UfEH=g4_2KOS%_k&vkq|ne8kn@|<l<1oWPWSA5U3QS6Z{67m^R>$n?--Q%3<RMX
+zT<F+n$;{5cUjhPHcC=m#D;)6}N#$|Pyx*keT)464CUKPMpyK@48eFR;k?9rQ4dVP*
+z_`1i*9;wZ(Icm5Ly80q`{WdR-T|u`GCO$Fr_F#BIC|o35l<N6YWhr5i`%N8Eew_>+
+zbV~XefAi(WUs36;8+Zd`>bE}*EbNUs9ZBf}5xMwNG{YwR6{pC-$D>nJ$MgrF5o7l?
+zzX_;Y{MgIIiYOk}rw#~v&Du)=s!B5qZ3Xx`K1BSAGOzC;bwddJr-1FyZR9d`!#RF~
+z&t}n3d-5=L11|5hzXSdD|Ifs2Y)*Z<PF#Q6As5GNhu1Hj{uJh`NeHSY)w#vMZ|##G
+zwC70$jCNz#oV>C<Ta-5a$_#4T4PBq`Iu`O5&yU{zoBqbRAQI)`Tsr4_^hM0T^$Ew_
+zpHTSAL%LhXp4We}iQ68gFXwqPeTsr}d59_&b)mx_#jC~q1t|-gF5^a`pcwe)7aw{j
+z^k{r#naU!ke~N0cFV`&~*#`h>E^T;v+p?8A+mvVIOoR!R?fdZjlM|OSJ}>O51w?)~
+zw!C!X199H#a>h9$f>NurTbD%qzXc|n4Ae2hoO1BMYXfa-b4Ibyaa!tbjrqO}w>UlY
+z--y2+lZm(iGX+h0wv+z4G2xRfQ!}3o{X6|8=uVti#H$2JD%6J#NB(x8G+P<9&^_L%
+zW;tbLG8y1~kX{~<dvxe+x_W}l_jsp=zWp?T;f$G;O<JRzTX1SX(OEdBq)sL24XW%4
+zUQuLAy+5k^oE`J2awELqgGQIQozP+a-NV$sqvpbfHmQ71%ShOP_IoGusEgCp%*v@2
+zY1PjZJ-j|##1%Vyj~ux^gFB@o2h^|l9ByD%gmh2gyC?z=lS&Q4&0zjQM98((oBt-;
+zE&xsc{^d}Wjv_4TLPWvDU7+MFzWX9&&1}?lDd4*GZ4<RR$B^Dw_{7j~<AXe5PXMf?
+zF-{Jeg-YDJE-aI;$GB#lMAf!X`a|nDRnvOTtYSmyMAY=D_<@9h7ia}Kz9@SV(%j^|
+zIos?o@_cDc7KnAD4nLVrO%r}A;;-k6sLs27!G0EzTw!JW*d42MDIyFniUS?xUV^?K
+ziyqR>@jngt+F!Fq<<7_ReW)1W+we{G6o~@2rQmL*$wOI_%GJldUXy3kd^6PY=Rbwr
+zR`LiwlXXnpYo8cVKeBn$B|1n57v@$ZPAk{`uANEU`f>~I@Ll3uYum8%-zGPmNYaL?
+zA%`cKwbdqYN6rUcL07GkllqVKJ)6_he`zxBuyR^t*zYE5V}87=oc%J8L-W!!nQ_Kq
+ztm<~BlDYDkA$0qDltV`CwRkN~0GbG^faXX(UH*-Z+^2N+Ea%kcX>30-&ZdfV?&(k`
+z*^0xr2a6c)SAXz-Pt$6BNEa*2{Z}aFzXp2^ZJxx)XH~S;=EZ!`eN1Fes8(B5Pqmct
+z49(yGk*JwzX<GJ*lti-6-l%a|01a%H#}$+TQm&^~A*Jjccp27+Q!eis%TvVt#jURd
+zzoBPo*(tHjl&#%oEv06<9Y3~*i}2jUPaeoX&mo!_^u#(`Ra%2z<*xItoZJsZ%5G25
+zb+op3S6C%Pe`;<Y)!o`M8$Ybmi!f7BOy_)Y@9oa4s;V+oawn~lZS}6Ai4HpdIOP!Y
+zY206o`AzRr$d?SU$yoYdZBnVv9~LK^0@f=#rO^VX6&z_U4h!%4d5#oDWZ#Her{OYw
+zf@o+d8>%V62CYGE4ab=xX=|d^lo9i(=>D4j{7!kfJ^9_)FES0{ylFLfnRR-mvtE0T
+zcR%&n{nW=n(j^pRMn;!m|7+ik?yFQw3bL3#yH@_bRjD~CLd?ph`J@WE4>&5k$zl7Z
+z)D};M@AoM()NfMbm|Z*F0Ad)`e(ik-ngpizu>n98eT_Wv&P!6YxDmWX$N2Q(!PXC4
+zv5<dgD>EYjZLe)X9(A%T+oV<AgI8+wFL$J*=C$Uba}+cZ?`1LN9&LRKuDo|n?L?=L
+z?DI5-C#4&Th7!VjiW}CDgGbemX@4B?h}I3I&KCS^I{Ol0Y|u?c8S*SA8nb=lvwZ_K
+z76Tm$kXp~YDAew(;N16#gHJn{`lHG?ufF`EGUwDr$03Bb1kat1o#6Vx(8wT*foNd~
+zQfTDQ!eI$R1c(SEcH<=;>rSRgea$SLIWucW8kz^%8ZI{Xbk`LYrr0z(nPh`SJx{-h
+z`Hzr33)YEw2FPpj19}SUWS&~3;Iwc~{4#O@G+#vsnL|9^Dw$=yYcf97DBc11)5N=!
+zSiV)6?}Ni!gLL|Q6LjXh<8<be7RmgTW8{xWFb_;wfMh5P_l$sfZ#Q~a3Wkk#`g<HR
+zB;hj}<q!eBDB~*sut{m56ry?8cI6u@)*XR<?(dKk9NK_`Z@Ap!HW%9cT+=2S(WsTY
+zh@tdL<PX~>U!{Cx2rMWmOzL@l2NzDzZR}Q}I+zhy#O0**&zU4UveHQ<afdm2%3F|0
+z@P7Dt_RqSWr&yBE6}$Bt&$x{bxdS!=arD4VBoZ1qgLn+x4AmDCRjM?TK1?*qC~}8e
+z-jX56X?&Oz%&cDXvn=`lRZe|XBZb*Yoh%p}h5GFc_9K}nDVa4k_Fjr=|D45J|B@q2
+zals;oz{Y?;8yfL7*#OtDfzco|%6;s6N(;J*fnlVaZ<hM8slkOvidy$!Ta4g1-c|kq
+zll^*C?ZGECNRTcP8I}@Nzf7nD3MLx4IXxQr06QvgC@F?RJa>sH48}c~8xpBbfPNLn
+zV<TQ8F-&J}k|iaN!7cNKhe33Br=txctV}I9<lY1v*1^ad5NtXej<2owW=MlOoQGK|
+z1!t5@6i#4S&%=U0BxBllg7<k`2=E$K@_&<%#qo|~G%Rz;=>y)C2N&X!{XrlrW#NgB
+zLR~A-<axZp;6o0=$2fljc};e!^cka*$UJL6K3_^cnjV=vAq<=7>XjQMcRLkw@+}g}
+zB}xNb*t0xY5K3PfhGGXHH#)h6tSc&{#1%D$cQp&KW(bZ9PMMS@A=UB?MkC1)NS=fv
+zfB$l6oeUg!8%88BjwVllhXpAkyD(K9?4M(ERh=(ek^1cSwi)ex&w#2dQeUO)S5yXq
+z3wp#vj0h@!S3_GX>3cIN&KBNinFWcE!$4*wBBbw=ewE0B2Hm1HPv)UApO+OaVHy{r
+zN2A2Sl%OGSpiGktReKG=Wcw*=(;td4@}8Njor_W5fw72>*;EwcR^}vF15esSN1i|;
+zzk#;TM`Q2RHY2!=HoenW>*B>HG^7uy4#8R*X;l74#z7y&9cPRrdRr>Q)?4&madJPy
+zhzXu>SiDIw(l2{##zE}+<YexvWI7>RKXQaxX0MXMup3{q@g#exhC0e%^N%u`goRQk
+z2VO`HPX){Ky&^Hg-cK<}{z8n)i-sE=q9gk*SRqY{XBdqLti-*#Y>|xLGZ=h9j;8uP
+z{@LsmvbW@$EhG#BOc(+7eXd!36l2(jvIUtaOD^i=Fl>H#Ml&Csel8Z*S9qA$Si1ul
+zyQC=ykgq`Wn0x5;u%L;1wZ4g>f3NO#GClDVsnZm9k1dlqu8A{zu_~moo!&i>J5VB+
+zGm4-@Nc0bM@)RT(OcguuyTUEP6(H7g*knH#m1>B@q%@dwQ+6oCCxLO7PHJFYkD+ly
+z9)^jgKw?=R^)@VlM}FtkdX6k=B4!B^Cq|7@{W`v>B)5VGW~?dqzz*YAH1A+FG?jRH
+zatmxI!q4yuMj{^KZ)oK7w+!FG3b1E_B4!e+<V#6aWc(4v_BTV=i35l}YJ^txJd-<f
+z%u=sm-wDvcs^EQVMMl{r$_$MD52HI|d)T}bVQ(NK<Q7=J6cMD8>JIZ`sCSH&8tpR2
+zeyJx%;Gf)ClEz+qb^JNGhCDUci(Fmutp;mY5GES*wSvNXZ3Uh^I>aCo^LVMzFnamv
+zC}Tx4i6HtIRKyE|hTvmcQo!dOCaKm5G8BL-*vTMvMes`=KEYKz>V`a-12*#xsb#%m
+z-v6JM6I@hm*{6YU*R`=xdd~gt7Nf;RV`Z__3L(6bU%t}ED1=JU%=3*{f{3ER&FN;-
+zhPPM{{*pKURptlAiVwHX2%?ZXeB~a8z_0HGz-q)RaKWGldiwBJlms8&O_mg?;gibA
+z$!<v|7Zo8Pm;Cvm82S^9AhqZuN(JX_vfg(TRM~JVM_VNhM|HV4qEDi+7zFR>-kpfM
+zd_zU#sA(|vJ^0UVUVOt?o_m1%JrCh}|J(Exbw8TU=Cht9IzohLKeF>$_UH;~QpvDK
+z8OONElJ!@~nrI=9r(t+};no=0)vnBoO=kNiCCZK%d#Dlq-8D7-$DYBVhE0symro_C
+zLS^`BMS0iC#M<%3`0p@SNlDohxJ;_3078?$<_Qk3Z>|U{VzbJrdQ6y3mM$c|3DurS
+zUY&jcyXJV=urSMi?p4<Mop(*bS|RzpBv0@2SM|i=>F9s-q9<=@FOeHc%~9h&xkA2a
+zDn}@*CvMx~u|)MLq%cvFL4QcQz6pR%{t`Z5j(V+%`8HD-$u7t3RvDm(_;p-N9kiIH
+zUi^NKW`s+DY8&z;%Fg^$^}4cGA>fDGq<*!5ZHU@qkyjFVS&>Vbbd{2t)FI6<i2ji5
+zO=ztFZjky&`d+ai4WgU~52t+kNzaZND=y2xuX$6az#{Gy<{53Ga-zI)L0D|M`b0Tv
+z#XHfGygjAs^itBL;6x*CE00?e@yh=Ym@~UbQw2rrfg5D=2<Q<?_{OEFFEJ~0d|$Hb
+z^m;Ys;Tr#>7~*zoMqaU53OQs`_?EZ%YjOe0NHdQ|%(yEG%%+uy-=Dk?gPc_SuwD^-
+zSR}Ky$b+2jPt}K>#^*EP(AzE=rpG?Hi__iW76Bn<9&48zR6xb2eLW;u(fxXzJSmi=
+zM7?-qlEpd3EtO`-nYEt673+#k)oGLn_9k5&LtIV>CWf{gi~u%#xSz>}ODiQyODO$F
+z*8V&ez7L?n0T@ug1%HTg4qv%8D+zs(ZO%<J4snYQ=DBK*j~gS$<aF##;eR*7txV5;
+z=>?07VHbBq4GNRfDhQ$tvVFIxLKy~BOc|&sqqOxdi<=g^bYgH^-HPla6><~|iZ(tB
+z2c)HBq<^?xY&Hcm048CJ^84t0nJ+0|29<55A6`i*{1BR<lgVcDD@yZ9|E|TxojKmL
+z{F~+{Fr{5(S1)=J51KU{E@*)~F9c{Kvt`OHxJ4$4?YU2Lw=*!hvtWZYw}suiLMDpr
+zicvoxb46*&-1RpMBm)VI6jtYk;D!S&ne|h`6!rv`RlRL+W(V<hmoUi#1cDTmo@T-p
+z;|GTLuq~r-J!u2*)|H-=!^U=_ux%M!!8WkBvrjvbzy#VsU--;U*V{zVrc>HT+OyFh
+z>Hv|TXo=a^aF>tP?Zy8rJNZx~`eQMKEf|BMRiq}9Kf;pnE@|<|t+6L$kD7tr$33IT
+z{`iGnVo{rkf|ZPy(^h4ax-zQ1+Y9^_;XI5e#HC^j^xgwW0X7@n<36xt36KFLFKV9%
+zjwcf^x$8<MVEwd@(6gNqdSh^&Yzi(_u|3D}#p@8+Qf;kFaT?!JoN`x`k>8JMoj(F6
+z??Q?TEOGnoKL&ws{`JzEU&#Re{+WBUrkLb>Nqz#$^exu<KIY3m8jh!Wkt~Ax@q9<$
+z72c*mkeu$Y`zR%r9BDUlZ7mXH#Yg(9ie<nug*1|oc~i(1mMBu*SUlfoyd<@_G^Ac_
+zw7yH8Tt3ScAs0q@N^6Hr9oGAl_QDREU%&wagDPB~FqV!5pS>yDl16m|rQy^N`pe8)
+zyfM7`=g5}@1V~_0^+tlJ`2v@9yMkv|iZ2&Tx%oZTKK`uBkOVu9L_cG}OA2HF81qsL
+zDXvCs4P*|o(dHfE1IxS^Jx1+EL3&PT6M%2yNgoyZlY(v+3UMVKt0bPYA*ebyMF94o
+z;9a`MCU6)~1<nn7)wc1f&D5J7(9D*<`>;c7NsKfL5qDtUv#19&fl;XB=OqXv(mY9F
+z`+vYFqP{(>V9u~x#<&-eD-_Oz3dCgN0A$$E*iMwN^&)^YD7sJyARH9U7lF`Yz*rK_
+z3|UB$yTyy3wN*N$jiKH9S^P4jK&O((5NW-O-aZo!PfQu5F8U@fgg{6C67U#>s1XlM
+zxlcqa?fRE+pl_iolTGTC$bZ)%n*W)|_511EM_vUKm5c?6_4ZWT%tZiRQ1B4wKmJ|&
+z(gY!rii&DRX-{aQXwO<BUj`ubaEV0;G>Ku~ke3Avg#vgH+z6sJM|w(|NIN>qc8h=^
+zs;dCkfsIm*`au-79pk^EICU$-^C3vBnWYH~QREDZ3#7SZL3lwYV~)4LI9eMJ?&BCe
+z?&z$@ZBjp;>vpLGR#3A&?K3$9>4m&MA*B?I`Ro?FTY4pvmvllKM|+Ju2tYJ@`}IU3
+zpC}-YD<_7>0J~2az03=X<SF!ky-MZE_QF7@!1D+i#PbxFf~!In?(0ry!)SNhf4qEz
+z?MTSM18u}jf^raxPM^njYiJ88W*3<3MDRFRp9*2PVh+szpwwTx%ywc)EOlTFMeRfh
+zZk_hwNkHm;0tADC-HrdVU}J3=fGo&n3g<RSjw<a_^2^2*%IxOky;TVZS?=k76#q$$
+zEpf8BHEit^ZoO@5QBMCteG4?VNbC;~&U@j3AmM(tF}I=!iUtS_MUiKR{}p@$y$(XQ
+z9$l0mk~okEdBKJW{yXWL8Xp!lJ@_LrIDTNj9r42cQ*Hwb!AM${9ejvF*=`hgY?oGy
+zNTT_C<rd*XU<lt4NBbCv`~0wjE;t<q_=*<9eC`bf`jQ4=7-Peu=^+DsX_g5eNBhaA
+zc4-ArB@!7RAo4KU!MM*G_)&q6=ttQRv?dVi$3?IVwNVkA(;R#3LP95sXO!$3`x7>;
+zS$qfS^WD2=2JpUM3Bmy5$DWU%;ajAvJ}I~hBxO$i5uHK&dN;6^tkhhP)=^pz^6N>E
+z)R`e)R@Y_pI8S|aCrb2uZB*n+hSC@PG|K~)Y@O_z$Uhn{r;ob`Ko1&kN_lyT=Xoe9
+zGXIb1ccQyLXZeG`g%*$=2>$WzTqnB3!Nik#<G+5qJ9xqF!)}xtI*L;kuu(86&kDi~
+z`$tk1SB;pxuj>@C1P6o)0FodCbr5EJx20ST_y}Vbh<Hg+j1x9igujI)1HAvEpUwCP
+zIEgxv_L%E&F}|TFU7icF7#XT9t1p`8jkX^J4vFVOlejj#O&Z2)7a;N+h4E!T0%(Uo
+zLwJEaNH4DDS11Ly?`E+_@a|ymhyEj8l_dfS8SOV30V;{KPZX~II=0%aQ6Fnxy%dw5
+zaDiW;<HNU$5ss=9qtBT!Nb$-35j243xqV6$NPL$2^9uQIUUwe)H4Zv-gUqG>IY9Tc
+z(z{w@c42#AB>&>%Oc0p9*WSM{V|zO?*q3Hq65k8$7Va585vi&FSm(UHv#XtXBx-XT
+z=(2v>yVU*Z@kpG%236_p-EiaAz=dN*z3#8WZF}9wql7AIQY`LsWAHLxKCr|b#*TWi
+z@cAFoPZzlY3=-av3j)rQ!xJOjRfckfS?UIPH(9c6u)Z9PYP)0^dQ0PfM0e>1H2v55
+zmg(wxdU^2v+dthu;Bmd*&~YTro-Aevj0S?>Kg$><>%D}x({u+(eH^c<37vXy7CyPz
+zJu}RL_zVfGRy|Vv1_KwDG{$|FRNNQ_Px<!@%g#@h{FLPVcfN}(n7f?_8i*KHcxLA5
+z&HY+tc>GqgG4K?e>(Q~KlCz?@Y^T+se97CaO!&NH&nlv_ZqJnocu-8&pg5CzJxkcb
+z>@U)OG}Ss%O7l17Mz)Vt{@hFV>e}<AK@VsjAOPK_nC)ow`SO5v6~M!>zd*dcr>Qw)
+znxg%rw4w|B);3Zaq)URPXFz%Ql7wUYfo>ahSjp$#g^xR<5&q?|itn=H*N*<0>+@CC
+zZIA<$nBE9~uVaHb)BcxoXVR~SqkjutqQ6N!m#-@ENWBw%K6M(5DoJ*SyAS*84h@%i
+zE{aBbOGm9eJ$UK|Efw;0JDJDrU%ae3#I==KW9Mx!-xV1C(-$@#rQ{Ywo2~IdKA$_w
+z^=4GQ!K5GUDo?oDFc5ftpxX;vk{1OgKvw3CyIvlH1PlOScmR|~oNo^;&ntECZ>PQX
+zb(CM=EvL3JXeZ$1xn)2Y#~ccDu@>pu-!mf>Y--o8A^g`li;9|eu~h`RGKb<!SHoMh
+z3=P!1hBhARg3Hk{MXupW9fCNNSlbs&<(I}EIBlZi7J!(9wV)r?F-m`$XB`)NGys-+
+z$|dZbWYnV|f}`(=H@Bf{6cUpkx7H)z-W_TCIc;hyQ@<Hjcz!hv;}dtcI=l6<Je-BX
+zY!|I>Ian_I4bzSqE=)}vI68@|#xNYe={{`fd#4xH-F>QgN)a-=PQ;)5>O<S(S-AQ)
+z=U&apU9GCatiF7V)E;8^`?NM9BgoMD&oGuJ83<G!Z~K#j_AKX5<WqVlP9C369hGCV
+zo_9X5<n%q<CTYzHc*!rgtq_=6e%!4Rt4daMOuWtE7WHooA0E}gJzI;ik>O-#FJ>sl
+zL_zUyIbc#E*}JUN9)4bYM>FS%=M<Yzn|GenD1I%FHq;_6u(sSYX?VL>(v^Rg>V5X7
+zz^`+ex^)qIPbFvh=@4k?hrI^c>oVA9vGhp8D>xTFM-QgLOy@Oj;KbV#EBg)+=`}_{
+zJ<()&9`>%K4@iGkwfCgajrW^q^H5|ZgFHR7G~oC-UDwCB;-(9C?&3=b4p8D~lx>^s
+z&bxNbO5@8G^o8j_JMrQ2@tHiJt~w1G0)h`ez3G1P@Y|+t@BDrcVffLhuBEJRjRiJF
+z^z0;IzW?`TBB<3EP#A_0#b#+Z{J;ecD*1j85C9k1R?&{FjsZQqGuo6Ed=3(~CEZ?W
+zFA-kbjtHF!040C|N#1OO^Sy0xbeOLtdflH3ot~U{lOm-5L4r_$OziQ4>Yvxn4eaum
+zLVsUK29~oEK}q|P2AVufoBKMnxS9?nrY1z>Woy^v_Ww3U461l7w71(8k0&C!v}!bQ
+zzk$c$_nH=i)dMO-?Vk{R84W)s{5B@LG@i^4{aUxXhzlAcc~i3^Vrf`GGKsn_w}|&p
+zViS}W<3kbyO9ka#Z3n6m8MAnQF=YIh4_X9o1Js%W4S-Li6OYEb=$5i^vPWaylY^sN
+zv4e4Lj|SbK6`=3R*M$-r0JxwlJFevUfpWMo$-8bA!0|_uBQ}w=HUTBhBL4cBCBS$H
+zB>eKB-P6aorq4J8%n?@tE*Aaeq(%gcnMWs$$;$<O^Kmv{yq4_c8ooJrM@|}0IF3{=
+zxDE&YaN^7eI)3s9@ZJEQGN113F$YWlZ}r#%@+S*#O&h=$0mnV}VPHh1ED+5Bsr8gI
+z(>9?4D2?8NE(luF2~d;(7nGc<bhx$F^ny}@b^^O1Nuj6Yt)Orvs9E+?r%jGtht5G`
+zK+^l?`oD$VKWkfi)Y00PGmJl-M&XDT_FoP^*<$tK1Nu0`Pj_}l7GBD*pN98NAjPno
+zTg2O^56S^9tjoXMIQ>hI?#&3+VkzS%QnAX-JFvVQzAu<ZYvtXXEOq}{BAv}m5%|@=
+zqc*e|;Ojrk%)&a_>D$PY%_Nvz$p{~?)p*U!Q84PB8X;GvF~~N_H7R3+F_Uj(k#>+y
+zax9irsDu-3X7@rulyShLQtL;{&Y5SVA<fbICuZ>rmU~X1+z%GkPaX9TdX(41#H7kO
+zIYS)oR)S)MN2G3V-n?NV7s4YV$)q4`s4gG1vc(q{OEWI|{i)+)VGfJVEvYzT5;F0j
+zTJ^7l&p)UJUOOlo*@~N!Hr03kk}FGENJgcMxq}bKRKl92Emfp-JLpWZ2y+~Y(pPx#
+zB}W+LbP`oi>c6;SRb*aMmD@$w@e`MMq-Z>G&Q2(hxzYPzsE59;`zr3b_w&zK?DYrn
+zeqQoQwkTxZtXCb!#8tnKj)?1*6x^?sp7?0!)fq27%?*6dX07x1Q`#Z_au9Qp-%VZ?
+zA!=dwRVzafl0r_ZTt3K0Nv|cU6L<QBaBl!c&>W(7#~#|R8Rf#!PoVwbm^Iv|UG^@l
+z)`!K9#IW`^T=Fwb(iXvJk|;Md#z$K{TO_mDonL0@QyPDFL+J^b2&6u>Dj!}YD16Y*
+z($34Y#-`*604K++++T8uf>q#8Af6ZabJD?5G2}~J+t=AS(74~f<*%NjPMHgz)Q&a}
+z;v%#@;Neqb=FvBEkWXKIuI8BCHyCC5Q*e|Te<9)%3h98NF4BxKWlf`s4|MxMP@9sc
+znaKVTi4XkrIwqX1&Q#&<?19M6e21boZA7VXr;3ZKL0<w&3Q!=Z#pJ_GWG)hgbmFH0
+zp;vP|gwt0T;tk9b2ZZs?B!wnfV>g%|Oppt8WG!wm%`&H$NEp>2s0@bvOdp`{#CdEp
+zuQ5mc&<b_3rVj{HeaH)SOww*J<-NoUO^isvF`s|`P~o1{3^0>wj8|cI(*nngd=FM(
+zkJY-0kz2GAA7HQBC6sN8RAK+Qe2rNiKwYRq<hVnqql*y3tPdG3u@osZ>Gi&j`P`bQ
+z!ftT}9X@C%RAINny^a~tPgY@%#J!0Ts!CB|4^F&_`FxC8XtJzwjd^rTRA_Rha`U;I
+z3gS-lAPOCR$A-8)kpMB_+z``;4GZxGMWtQB_#kib2C|!LOsf*oLY?Wd>zLQ(wBijW
+zH&-zuW&rU949b3{tX8Q2Gy0QbLaas)@rGn~^g8}6Plln-xcik|weK9#dX_5(L;qS;
+z>?{tn6V~Mp=m)oN6yO@SnM(;m_R$uvL2b};hnGu!K+R0w>``3<RC@!4lncn7F}A&#
+zYlBWXypZz)Qf4GZj^<jSV;it+en8|5;wJP}n0T(l-=l|h7z=;j*iljw6ekzHbXo}y
+zp8?w3pgX=i^8@l{`nHbhTA(XyuuuGOyIcvA8?GiOo8t?VA0a_v=!mNkTCoaS<A?j?
+zN-Q4D)kB~8;jeOm);AUFFr!?A(1%r+D}SHqP2uAJ8X&iC;RtUX_T=~?oD1lhF}A;{
+zYl7N4y!_<{^dA{p-Dt1FZX92Da}fxQEpAjApiPc1SNwqTnL^W>r(KYyz9Yq_km!x3
+zYZnD)x`X>raWd^(n$q=K$nS67mw&C=%F9cscfWgy#Q&B^F%pWm2vEA$%H;$uN>y09
+zhMC648f<zb><^ZgGfX+Tu~4Jq^-}ge)K60rx<ZZwae(Dy!<fF@N#*YVapL5?Ul2`(
+znG2wQRIX+`qwN=J7DeQ~YwV<Y$UD+mppr8D<6_9V-W%h~7kKMRf$_l3&+|;<$^b+)
+z|B9jR62N5c5e-~tYnTs@9ug685G3Ib*jieu8P$$*{*3<+lRlv(8fh+Xwz`YI(w^Ya
+zE||6}NgnB)IN=o!AGGw~uYFnC?|WPnY%U#F$<hel+J3WC^@fu#)K+49U)MGRIp{I)
+z8RK=PT(F_;Ja~qGe_lQb-Xf1zFuhXI%g|$;aw_@U=U^B6P~uQGz~4Aix;8tEH}{eH
+znF@Sg>O`nYdd>2@n^6p4U;V%^W0ZEe05;v?$a<{xrdU(V9CQ{x68R8*T__-$8tPgp
+zL-of==4IOdX@t`p=XwiRx6Ur@pWqPEl=&Rh3;dx)Ewj3OAGeIpE)C21Xp6Oue_Fhh
+zAs@kMMq3|Pi8sWinIrV!3DBzylJu)*MvrxXhLpu{xfH?0lxAM7r&Zm2=q+mMOlTW<
+z{WvmKLi_ZAT%pIt8Grp;4n_g&Dt;Ls60%YLIoif^D{^o{zrH%9<z%kDc&*-RV-yvF
+z<=VNq7ELP)JD84ji63l{JZL+KGH-=kGV4k8<W(ZFw<N`OvaqQXuWCQWrS#IAw!PBc
+zBy-k!HXQvSn5jmSX+meLLZ^{oLuDA@fvI>b)oJikCQp9Yc60DLkSzp{*p&2a_uh9#
+zW2so|?E7yQrnhEWtqjwlVyk~proBb4EyQ?JfN|qdrsNouh*G0FhPz>-4EIm3MB9ph
+z=)2jt+9&`Lup?7JP&e%;AIjXbPeHIqN3JyX4(%w-SOmq?i{!Zay`F)gM;`4?)(vD8
+zy#==1j&xUhr{QLxAjnS;%!CU}<{pdcYQ?@CkFL8~j%bCD<g~OLmN&^{a`!o3&G4QF
+zVs#Ay%eDoosu+5eek%8^?B<(0RXCespUx=*tFz=2m1wVOF)W=2bOiPkSOi})B=owu
+zOHKvFgZAV0UY}FX@8{f}rqX6}zQv@Y-jHm6>l9vy=Xea+=ohqsdk0YH4rji-+Dv%K
+z4v@D&rfV%Q|1-uDbG-zalck2mO;>2-eYts1R0;TeCHwT?7vLT&|4gBh`1~~ugm%H<
+zw?y5%71F5AGy5ZDHm;MRh4|<&dhR+7Ow}+K@+hnkNZn5>m-Lw_ne*EUR|KopHt&4i
+zbh198Hb%R^DJXc?Pmax#vb+dK-NCV4yUp~slT3LHj?*0n89lZA*1d>lXN<6+w|=K{
+zP?`t*&!%;w;8u%)e7bGo*V33aSQ~IEmoDll<cniILoX|`sd~tJ45kFKnEI7ZfuoIf
+zVnYP;8H6@U!e?ntRg0FL$|#=s>&4=~sx#G08;v|M0LZ?9k$yad#+BE|DJqV4><ZLz
+zt6GDwS35YuXUiT-<3zA=yBKc~c8D-8M!ZljH)(`$NxV2SFv4#Eh!xaYR$AEno-bbQ
+z%P))X{Q_<0u1f=hbFa?oDgMz-s_lP_hO`VnVdAq3?YC9=W;xcP&QxpPFo54-J_B)-
+z78qumC(+otQ8Yz(3O|_q6Me0x8`GTL-}5DDcBpGG;LE5~c>7QTFAC7Ql6T%}?oCV-
+zkK*ROpofoDgkit7cm3w(9*2PU;NPLY1D8=)WQRu-qBwKNO(ZIbhkt#7LOXs~!a6>?
+z<XL{215&)$-(%wJcTaRUcv`h|2vd4qu}g_%<TMeW6h~BoFq7g@hIGt={Pn;n=7PV%
+z2=c9e2}N2C({Vz7AUFT&U$)vK9%DMDITD*1>!l_}MsX`cfyE8!zx`;JnKk=Drm}*I
+z#Kp~Ya-zN6-^wLvF#EhCQ(y+9?Cm&-^R-f=yj<&08Liu$!zN5xJw9gf)1|$pFnp);
+zXN*hc`FnEG)G@a3UMkUL)t#27r~mKi=U%y3qkj)G|9(R#`=8~ujHZpxn*u4|2@Uvr
+zKkV9Q&dCqPx;3pjo!ZbHwe|_ymlXi#rF|`M9^vIK^I7PIt*=DvLsD-2Y|WzR^b^^T
+zO)9#|9~j}#JbygaAFn^36k6j`)+fI-%|2A;0MoMbCnblI?px<@8Q;5gzdCYIVK;%=
+zXS{|G6@xY{k(vWzO0F0%n1KGl>faB7?(ON`B8e`EM!bIxnI>53xhMa`8I1M$H1&6v
+z8@9n$V%zYrn>U6wWK)_!y=7K*1nU<%n>*mlD0?3H0hDk-CsjOc>=Py!X9gBoCG=vc
+zrD%c1I@!k+)!e$P?T^P(MldM_H8Q7nu1aUP8&ycfAo~<^E^RDxUOSgt%HR-Y3f6=*
+zec}4Wdn?hghC+`a!5=0tUfJ#T)Y9L@jaZYIFPsK(F!L0FN5P5RMbGO7W%GB&XTpc;
+zXSd|%KaU-koYA3gm+7C^Pej+SEbHf}WBIo!>HD^5Kq~e*XUyt?i!;oWwB-`G!10>`
+zpX-*<%L2Jrv|vT*WUr(*HL}?U15pe;e^nAC=_Vxm#KN3uQvqgxMkBf52%eNgW_J#s
+z=9{;(FZoe|RRfDP%8a<2YLHBTo=+VG5S<?Hu?y8#EZ$pSQ~=r@L2>+?mxP}YUjJGc
+z+gBWPuMOJ`prHnfnKw=&_uHdR!v3MN@D=)oa19v{+MfM;BLFqnWoo}i!YzM~E-l2&
+zh3VL1G+<A(EE^&_Sm4tMLLdCZmp9pw=7Hy)UdnWONN@wj`yLfp{y~$!ZzQ!&x_4(|
+zZ!Qcd(=ES=Y6uLAx7TsyQFusmrLNk)T=wm)xUmQlps(YNpQ?d)p{$#=+~|dq(!p@H
+zX6+q-k30G#y){E^Y=Xy79V6W=N52<za`(&=UNTyDr?xo!xe`;Or1&T7c+bRVVbQ5w
+zt$yPE8hQ@JuE)i+D4_?5Qt*7mvP+2KCVO}YN%Ov*%FUiJs}b)0NEYdlUnDT3a0&;=
+zyQrwYDVcMEn()dn0cg8__v*o^C3~5Qn{}{dT5rQUvEgs45Hz60Fq8P~_lZIvGcLpf
+z!|`02=8fnc`QV$mSs(arRMWY~D|4Sv4me?xQQXv$`@fjx6^bUpc!ty9^Ml1f^B*sW
+z)<Ow_&tlTr<lY?DwM_$j<lKyS&NDYXJA!j5&P)N6964u6f0j_csoOuN8%kkx{yo3K
+z^=rd-N-~X)GeGI~z|EtkpQF)EBdWb}#PL*rP9~1wX(T{2;gzR&ixr?>c_K+?cBM)Z
+zkcV>I&J7Y&M!vVJ!8M3c_voAy#k&;T{4KF5+y|En!l7teUpw*hPZ-K%dEtw*r}|4;
+zse)noOGx?XOfuYFw5nE_dM?JdKEK?sqjMJI_AUIuTN!Jv9SfAb1K-q9NKn05eJ7_f
+zT6{s+DY4n2IrA~no%;N<xIg3G#UJ;r7|?*dz(hb>;<<p>O2>mpytvD$3)4R|2@F3i
+zpbXgWguWU$L25O}i=#mI5d-R2S<Am-6b5789)?qDR&0#}MjZ1h3N^VMj#&Dc$ff2r
+zfgs5_0A{DP!5Ze}*})8M#=932u&}bTu1oP0hO%S_6So4{b_b69rF6QsG+-A%kW6|=
+zoFCkm)m1>TBs01nycICZ`_$wB7VX_?%<yK;Gc>tBGjLpHB74*NY@Sfc;-eBHkoaNW
+zm!^P5H1+Che-l>0LH0)R98UAq3}`}vST3?CDe@7vd*0y%D|sZJpJSMk+?w3Ycs{Jy
+zO4D*3-4`>Ax`UFRa%2|mU+=6o^ihmTwO<0#>sx%#Ue>)jp%@^POk{7j7SrkweKc(}
+z?M}Tti*xG_1qs^j|6X6rSLFG#`{YSNsBn_t!LwA`nvOKR(e>z{3quT_Op_X__C)ut
+zA#YpKMB|E~6aHQ5nEm<le=TjYW2>BP3yyc3`RKhXA_<VLK4+sv&-2P>06L6MO$%+2
+z0!#Dpdp8%<2(pm`&T~`J;MbDMUikZNf3Q=(X7@N%-m{v&(9xMH9}DnUBYkcpvu?x+
+z6gnb2AlEPRr!r;ftJb=47rjB}+z$EZ%8CQM68dliCbfGssioC$EV$q_*J#0q$%fSK
+zPx;Ucx8-9_7dlpISTYOIfmgs8*@SA#omz)L1>Yk@f2ihBdbpC66$CHXx*>F7b)M@Z
+zwP|<XnUEl%X_zY0AN|^^z3wK4gG>AF7N0_MT&e9aCwxH|-t`q8f#7B+7%5P1+5FYu
+zcl6I<WD;nW22u6dHG6k*I{S1JH(LFVU%Csse_Q5lW9Yk^wvb<_I=)0X(pWeH&2FYZ
+zIf+hvx@UiIfcE%xBv<w+b8SG({AsB`l$z_y`1aSG7Y`z23L<au^bVit|42l+{`-Kp
+z!Wy_pe%q%^3sp9OJZG1ao_QAmJ9!LT0^gop&v^f-Yb&O)zjB=EXLj<tdKT=Zl?&SN
+zR_xUO#3^x%R)^?&|5)-zbVjrXYZ`UdyFX-I1Z*_w>nZ9hIj#0IQ$WVVm$2~pnTJNy
+zSz(NT3{LGXl@#Sw{mR&gBykaHeExA+q_!HvT970g@b_l%U1q}z)=~w5=K<ufTWK|;
+zLl9sk-+1NWQH4<<LXrcQ?3Vs%PQ#=oade{){uf9z@{o_qAt5I=tA4jB16@t|M5>Wn
+zwcTh@f<-KL|1PPI9?`hkY=Bs8otN4&Ag*3Yq{LD0oELX`sZqUE1lO@3_~UFy$oK%3
+zg@J24B6NEY%U&4pC%lajFOvt?z0S4hcG9jG&W`oG{`_XI-{I!=p1B5EbF>>zG3g%9
+zFhDeT)MnaSbrs`l)w;LAT{t7X%6#qQFLNbsEoijNx<%D@MledX=}7(OcSDp168JM<
+z!KLt$d%5W)(rC^#-U^L%Fbvr{T#R(QlaA(exkN00Mlix7WZFgAOKxQ$daB-%0?%2C
+z*M2unIRtRJQ^of*s3P8o@(3KfQtBftAay@Lx^|?Ixw(dTVL(M1Cs3^92?E%R(YE`t
+zcB*{H1GfBH7Y_}WceHrn)$?NqDnMC4`FQtat1Cyxmno{%Bo#QF2Qvz!{!IQ)c2DfA
+z!MwGX>;eUlx8K3Ol7xFL6f7KH^|(IrrFBm-pSlHW(6hgSqe$+q#hr-#!^yo9ngR6R
+zfPbiWnI2!cd5{i2oiKo1HZNQ+;D#7AMnbBhLG&)bzNclrIz$5Lv~XDGVHLtZXbELu
+zIi`ru^w2Nh6KZoz6+N5FY<NQ16Au+tHXym2n&|&F+9khB=E8NEjW&45lJA@-vvW&e
+zN>fOV1aL3=`*5X40uk=TG1A4q*LwM|xjp5{`1p4B;as%UY_qdBRVWj-%3Tq^B9bTH
+z=CNcs&o8#Zyg7&Mx`{2jzM?$QO<nbr58L7LEI_-S?xA1bmOuD=E-J=UY{;aFHWsv*
+zyIG}Uk*FXvi~G5VoUBxYwbMn##_%Y%7B`%_i^lwDGL{n;&@YwKG0>+t(Z$mDl*$SE
+zmX`U|=SKxHd(sJb<!$eoXmR!?%4+oxP*U)Gt_8#?I;AS#y{+!f_=7Z?cv=oJy=r%J
+zq@IJezowAX;UC=Azrb*ACK=ZEIw}5`M^w$bmgij}B-X|49+~eo<N<RCkp|Kq%WWAp
+zk?lS-1#{O3WY!nM^PQ91HoR&cwAu|kCMjlcibrR+@6-ii+>C*@{Jh_7d2EP0J(zCz
+zD|D;0^mvc@i*I~Xy*D9~7y8b7_7QWJ#jy0b8JSxdNKj^-Mx9Xio4@TqD^~`dcyA)g
+zgj%rY$HjY)5z84C;ND5LUG@PA*jqie=~7E0m+!p8!t|H0!8(c{%#?Q(#qpgzp&dzQ
+z0{`QtDKlUd@5$Vj`S=g>+X0Qa5HRzXM=4UO7sUh1d9U#d>0D0w=f75xe?uC>bdPGH
+zwfDD3S!*31hwVL*92maIZ72wm<f{0@*AEG>8SFhBGv#&^Nac*+&flNwU5t6M&EL5*
+za@v8(V$x(P1KUz7e$FWfYGqY=`|Q1vnXzSf<lxmVO|VR3LcvAKT+j5V?!R&N+q_s-
+z86u32M=B&#wQrNO(EJfg`G{Y?Pr=Ie%Xdz|?Tu-lc4J<(BC!iM&D^<S)3f`G$AKZV
+zX6MW^{PWuP#a+diTe;`DLy=>1iQ~}faZm>cOJ~IY=gdrCR8T3l<#JmNjY+;&@a?Np
+zN%W-3)_WQKz|Xt)c5trBBk{>h8igFB3vKh(HI&12W43Nhh{8`4ka^S<W=aD!c^xzc
+zw19U1{^4F+P8<%Ef^eZ<yRLzcM3;KrdR7?BrnDPQM2?&PsMAE00ZzIyYl-qlci2}<
+zh!RPUk97IG_bA<R9<;QN(QEBg&Cf^J(TZC86a!B`dH|Yi(j}S4G&0HPb-i_cF3S8R
+zrkQ02zZo~LC|$omD7P0dINheQyJJu>J@#|p=hV-k292;JT1wwBZnRNLE*wsg#U&~L
+zCTut^Bsk(&KV<HI0AoO$zYdLW4C}zK%*jDV+1xN?)yMQ4=I9oP%+&EeRk#rdU9I2A
+zzYM*oBJ9DO2p%w)IA}<CkZ%aq1!K%>faBNr0!fB%$N88qy9f<^D(L%`d$BTCaNgMc
+zO|vXbjh`Bfht30?VQ2d>5v>2a4L7<(-bT53XQFbN&yOEJo~dQ{l+R@1$-THK`yECp
+zTp8Q~xQq`RY7f@XvYafq6$tZDhk|?k`(<x-{BFE|AbYa?^<J&gUxf2A9lozZ+;woZ
+zaLI^!nE6w80N=L5KOXUB9B>$G;KrYD8QBP@jzh154z>T^AJ5tk9Y!yF?}cX_-24L$
+zC1>i+GLRSBcNpROk-q;D!^nVt0@96uqg*N-@%zIyvK)k+X)=s0cuv53He4>HY6oO*
+zig2mKw*u645d7nrFW#rXe;UtZycgg}z0B<&hzy0Y#FRsL;+qHG0v|e>_el;T&V0Pj
+zgsXx}98nQoojEV;_Lqli3_Q`F#Odd;ZgLq_jV@zu<16U13{MYJ%~6;uNAv{kOYC8C
+z-)}GaeHFeZIC_{fzL9+oKgQ&p7}wo5_Gq3PC{s)A*Q1$kt^+;pk39M_4%RcmKVaPs
+z9BHR{yOi%_ykJcff6&_lyuiK?=l)dRoCxKUHNI`3-<$!jgu1n(9s%lBhCFLfk2$DQ
+zyyidHo||;t()FI?G~#O+(tvLCXBgtGLmM7NIQMn8z+Vc#3;sIzABMjp{0HG@TFNvV
+z;eQDJV`vxGF3DIwbw|0U5Pm(v7wUEQ`|z_phc$n3>c^&TPw8)UYTS&9j92th<}R!S
+z;@2V1L0znNVQq|fHMRRfahRjxx$onXIZWhudz2iHdom|BN}5unC9g9T>1Gb@q1HoO
+zo8+INuFt;EtlL~zvyF))sd<rfs@#0wjL`55%vU2>XT2U{oyT)+4;VeH$2rU5T$YZt
+z*<c-ZH{w*oUvw>SVN(yiU%W!m%71<>w9=i_qnTFT{*A!k1imeVe>Lh{a|zQeRQt?K
+z_q<Lwz?N>nH^QH!V~)P`8<}HSXD|FA(4}hj0qQ{hxq#^azpL==&!?M?H2Dm*A2GxR
+zZ|>cuZth_=B^Y6^oAclbv-AezDB-x;R&F=;f#ww){_f!%q}y^`57XsK2oe`dyiK3P
+zfzI89@Wk$z3w`gJEb9*H^js(XazfXq9r8-tSrJxy@1BEZ3~>D~7&FxUaQNnjlaqUx
+z$-R1*9yj9GR+z5>4jD*OhxB!qwuI66uVo+Jk2L=NJ(~C7kAE%jU4~~CzH!fqJi>(J
+z9(o-;%e?wD=r#DzzR0^zf2re)WU1pvUkeX10%^)nw^LsWPaKE1UGUC)CaCg6=CB6u
+z@9HuMt6RSoyy);_Q~Z`*J!G8#9QqXDmmz&U+V;@bA`c$>vFz)gc>1+Q?qAMC|4`<~
+z{aS0ibeGQW7e6+=kPw5i@xBgldy70oH}Y8v&8F@~IITa|(_<pT0QV&B>5vDaOc?WF
+z3i3_AUg%KIB;nVR^!z!WebT2QJkog2JbArwG;xsP$wMQJJ?2Ehn6!jEN@j)P!RDh5
+zw|yfpnxw}I$0+N;aZ34NogSy{4C4Un#<)F`1ED_-Fl1kFU_}@3nq7&5O@oXu+k9#N
+zXuA`2n>S&7%yH}WZB}%zJKD^;3jVxj?f@LlM_3uk#kw`V+_y=^V}5R5G`}BDN`47|
+z;omha#9B^;VN9qpxG&fr^>KDf3im-9;=s>&HH^3}{1M~mPpDTfMK{XK1+hKM?@mg;
+zulQPExB_9U*SC281mki3c|FYeHwdn*Jx|XASVwGtKV9QYg~qpE#z}pC4StO8Ylur|
+z-`!{*+tW_BWruFd2dBZewd-N-$9sRo8~UTPi~Uuu*Yb6Ua~s0B$2|q`>2qUrE_w@N
+zAoWebegFAFH+!Hin@@9}bf4O{xmCBHd3FN~HsIR?q?v&DZlA0xIgic6yGOU@UOdY#
+z?_n-DUvQuKxBptk{RrPdMH{+dE?}FuK4zQPwkotE8Fg*V7oLYQ>r`G#6c2hI;vMF@
+zSLoB1ga>%me<0o|grB-GIyQ}z9_A6<N7tba32~^Ge!m9qDR`f+->+id;=NqIU#@U}
+zsghfCMxS%P>Y<a;S3}V^kD)wE_rk~wCiMW$l=-l}@xpPxsCKbAllxl1Mdl2I%`jwt
+zq!eM))pK+00Y07jBjY@2VSdYnKbJa32v@onwX@9$URg6x&viWW4bE2Ixi`gqL#0#Y
+zmoU;l>Sh#t>NE!Qav9w48V~-b{wk+&>TgaX8~y?9okqdk;Qin)#j^-*2HZ@zwU@e#
+zT!fR)D!7KH`Nl-3uX1tIH5-XDvCVpMfN$dB2B$X|a(Wy=BXLfH((m<XnN`1q4Nl*j
+zkkN0J3YWZs)DsTH)mAE<iUf?i{(9ffX-ojV884*bJ)vhHl;9M(gW;VWbijG^y4Y14
+zNK7zPeL}21+hOHPy}}b(Kh^C`Qu;7lrzU9GowF#gF%k5rUB3YJ55v@3ab?a6w&PwJ
+z=F9=;AL3~O*FxY6DPxFHdaGFxcjnwMb<j?Nr*~uh_nBUoy7fLMd1N1W&r_GVj1xme
+z2hHO|Te!cf^sA^3g6Aa&+qkH~rT4Q?zaw#*F;X`f#tA?;0N2a&jM|6pq|BRTh5)An
+zJ9|>D`nzD9?@80uh2swEf3yQ@$ROa<;4mJJWT>`2V^TLV0rAux?A+HHJ+;r6BS2f5
+zK+nL}IjBEFndKjSH6h9aPb+=rQPeelA-7+(*~v32*i@Sk=3MBw1ZAKc^kvXf`y_RR
+z8{#}qnhv8Rf-<_Al<(>KhC!=Y-(XYIf$q=S>U#<Ma=EH6^GWuij#_X0Lh6117o6Dv
+zhr6u8*)B5x=0D(~JncH}?Pt#m$N7Yxbqk#c{fTrE`LU1GeC`Xp<n~p(97jC^lx3CU
+z_O4Xrc)W8>H`>QOq#jEG>i=(Bz1LC(i|;S8{oZK36^y$`es(w`eb)rfGcgWNniKvQ
+z=FyHl=M8Men)g7m($AY6b|Oy?<_Yc*e1~$Eqs)O{H67*nI^0giU>x;ck^U0&^_u3f
+zFe-F0#zKH~*(C5M|DQk|F}MZP&#sj*a{=H)n&X0>^Z5+zr!1z(7CuG$f&cN@+8?KN
+z=jkW!ooVwEw>hRhyUIAib-|G<j3Y<k=enQ){@dWM?qwXY#$c~fhp}p$!&nRFc?fH>
+zX%54U=c!*|z4f5O5WVqHimw<@TWvan=;z?%E>6(EPUJH^q7xp=eSzQtGw~}+=PvjX
+z>hi~`%<?}~W|#koI&isIOHwa{@!dt0=7^kXB?sYr0@|Qtu8yxnR>SuCG%q4L0((Pl
+ze^R)kGD#Vr?nR>?-@Ro?VbJgR?*65wii5eYi;}s4?)&GOj7K`dXAp1-dZM~TqfwSh
+zqjZ|LhOG3|;j*Wv4#^r@y7cCBn^ijM6jUH=kawv`oL4-Icd&w)QC4O$ueZO9?!O#R
+z<2I9gd^hGpxv=Br%}K~B5#^<bK64;6NbBIGekD97>+-o<$@$}(ZZN{%#g2)5g}j>5
+zYa^X+-x7Hp^~lv{3TA?)Wy1|PB)T|+^T`K+f9mXpeJxg}+FYS^L6$ZV{z|_&Ug>+y
+zqArNQg?e{u-_(10h*Qor3Hq|im}^#ItTO!oq>tl#kMF?K_49AE#)i^EeqkoxIY0DV
+zh%wnEd_ecDGa)JR0`kkgF)FM41Ku;9<d|8a<fO#$Shbr!fjF_=r}IicURcM3|E2eH
+ze?`3z(D9UZ)n+C5i`jsm=SG2L4PlAA;yj|a_A8a&sK^xL7rY@V7mWj-J&F5=-t)tj
+z-W}%?>V7$VF11(xC3((4>1tidIpIany@NXpqYiEhToK$lxHzq!G#F*fxFJd_ZY4Y}
+z1FdjIX@$}!HAt_DA~zVacaZ@2UT+vX*tUz%whKCCM#fT}d_%R`!{FMM>y!)77qX`o
+zh)@rk{`xa5`{UI0E&GG}5%&Ig9Qhu+KH3Lgb8T<TReNQ(ekpjb=1)ClrUU0X>OJ%u
+z@O>(E^?Fm5m>ssx!XVC-l&w}#AC^3Z_knP66M5T!YFqYJ%&n*+*Uikw(QieA?002?
+z4$sE8o2}^Z>slXZINF;TQ*BlOt{qf=3O*NU9PWd#O5YL-$Gdre1I`Xvkz&Ib7(h8)
+zzZ4o%pm9&yBV##@WdN34G%UF%dg{lfqkq#nMji2OjN3SRqkg{}Wo>s?o1Y@j75%Ff
+zURnKnmBy_r0Qah1ZS*r-rJLtP7MmX+{e1Y}$CJ7QW&Q2vhKzWtJr`iSXCN=~SqZK3
+zVtqP;XNfzpSm{{aO4&N<I{^7^M80d49%Ynn#Wuf7UphIrBJL|+%K4f&_+R=`oq>n|
+z@ay+qXW>p(=wspz-jxm?!rW<#8XovU)|{kW^{#4j71BOKSu*_3!(T=H0r-CpKjrTm
+z;C~MO-@(5Y{$=q0R^t=lyv{o}{5Qaw`wX$h%En53pQmsj7<vDU!2e$K&063#=e}7O
+zBX0QTQFj`C7x$BS4oKJAjdAVAxc*<zPo_;qUsZvoC$uw;&QSS|Ry3`huU)vE9@ErQ
+z^zSqbADkD?LnGaAC*DRa;Ob}`n)?JUy-yE*HyOCI<_nIy^JQ;MkN+(A4}!P+CE76x
+z<<-N#|B9`l`|u7req_6TANQr45!;~ON8_FP);0S5t}jKmZk1EUz#VvxQ0GOz-;Q_c
+z+xF4#gLQw-)bAX}@8kX0EZKv9gnjH4ny6?oa5w7`p0^S_F*0YHH)~wJ33#x*XWO{k
+z%PF{g*_WEe)-JL56-Bc_yVuXuXSNbFjTIBq6O`@->+-{CIeWu#des*)PG?icnd21m
+zt6RxZN2_`P_Z(x-G&R$w^S+St1DU{$75#)Zf`{7CrIVV^cDxLHICG|{n{`f%_)vyA
+ze0L^_4=KQh`LV{)lgML&quTrmdA`kkEBH^q{~P#+cg~C)JJYlS>+&NDWgd@TL|tFx
+zy`oj#VV!ph@=iwHScD!uguF|AEpc)`;+>=}j`wGbZNTRhwQm*(%{>tvb8E2<dJ}bA
+ze@4drYP@g8JLTcrPatnFL9Y?HFX21rP<ssI18MJ>Ys{VC7nZ@Lk8m1m4#}RyIy?h#
+zr5`!enzRzn3^*^`DTLR<xjz<}{b7WihO39$3AY9AAlzEGHE<g~l0Ai9h<^!fGvT=!
+zVawoV!dYvuW3#K(`5JfTG9?G=!nrV8X!74q$o?<kpw9E~?9Ufb9XPk|{f1jGepeE=
+zunvj67I5RbLZ64Ae*A*joTJ`1=Xa?#dvdK@^rVyd7y-=nfq*Ls`4x2${T)Z(SI*qx
+z>X__ntGl-If&caHQE9n1M;^}MeIIL&ch!CX&k;KD?$qzxM{s%J*YPQHc4R&t20wP4
+z(udaae$J1Hz<q~4Z^Lk|ldNy?_{KTxThyKP+@Dx&{_BM3l3<<LZ5ZfOj7}HtwQyyb
+zs(-fDr(K0Kt8^Nr8{=O_y%p|Xs(EuhzVAJu<>gq{5#}?vSLoe~_D0+1z`MiNJ}2I-
+z_72qJI34LWMe}m?WF0aC5#Ph0Iev8(<cI_7I%kKmkz}-UANNsw<yiZ1emO7nt)|gd
+zd&twg^+VIqFZB978Xk;n{^4x6S>HDN5QUptudA6a`T6C#esQSZ`?|bk2(QxN9)!QE
+z!^;u=I~~3Xd3k}0J5U$t+r6r9u@-i1MSSup#5sre$#7iRoS?I)JUEH^lgJ|hbXLh^
+zjfLg_y!SgHGONe&Y{c3!72{$4evFd~UB<CbF#hn~AC9u0L3pOajnHE)>tnq>13Vqz
+z?@@lJ8|&z+H|MYnZ>9O7XK~2cAu*!Pa$w%%I?U3$r|#3?&k3JQ!skkksaOrSX?o9^
+z@u}mi&bnb-Ix0~P^}SR%?@KvY3;)Z@a=K9N+HFICV{5tSEMx{Y)?`<2HOhjU!Ef$3
+zk7sc3jeQ>jm~}Rc0|}m`Jbw|o0eL1<*UFz6{#xTCWtHtwuMVi!aHW$UP0Mo)m?w8|
+zpFs8P(^%`31tZ@J52s`fY~$b1M#GaCMjO|AZEJPRxi46Gv(5d~d5!?j%&7G-Va~Oa
+zIxkHaqy0{lx$*P1VH~IRye!yOXxRFc*{fj0tJhPE^Ekfs;NDtO(^I6?<awTCzWzfd
+z`7Q2oCw|U-xQcK`o}2eon(m&98^DB^>KvN?-NTH>vwKWiN|_jC%%97dJ>sb=yTaKq
+zJ3vw55srzTh<{L@wQIb_IO_70DS7<<&xIxs=5DRK9H(J&?0Z>9>~0cSwiW)#_ktg9
+zA-w2gvEt`fa?eVUF=DMn8DYXEz>IRFM678j6Rcejj58Ktovij*L%{u)E^fL8OSj-=
+z<hO^i3(8s6a*jZH+B#V5*%Yk3Ef5-f)1+XEIxD@vT<mlN4I?M$HWsLJ{c}FLa7ZrZ
+zGXLPtN+;j-+p9loTwHB7zErJrDKgX<+2<5arWh4wcW;IHzFJ?6jvNHeZV_HKQaeW0
+zLygDT$CO+1+;K@H-Ctq);V?gh_9I=@X2x5g_&Tq@Vs9_Few2w}4C39yJI}@+DIjl%
+zc{~>Qb_HdUs6*^%jI*4l8l3%}Z4li;@S5Ja!2xrs%>gCVCTLuIoOhAp{g1;xz)yYE
+zK&V$zwVA@b51uEYZj@tLgJH}Ka=ijTf`@y?^cxlAg+k7L%Nkt1xk2DWh%%=H|6<eY
+zTd8DGy=qs&Utzk@7rkmL%vz+~a!ItFdoiXA-*cv`=d%r#?3icOw7mhf9#Q&uz_*Ej
+zQ`IKW%y6~Z_p2O?H8<XQcC8Y5R$j|9j4Mrdumb#G1?o{@o<y3Nmq<9zlaz9vMSsu+
+zLmXTJ+))MpXdSpW=G_$4-5Nqz7Ln!~N8*qd=I=0hZ}9D*LHvfa?Pe`+VEVWRc=mZ-
+zFizp+Xmw_80N}I=?cNSPv9_o5xuf4Az-(SH!8*_4-4!!R?Ylmw@^?8{mwCY{NSD$f
+z?HFO52mdesr}{I-834GpdnonzYUJk%J=-t{@Lq9k?;v^6PX470or3d%2HGFjQ_lOj
+zeZMzjF(y)tichh|4aU{}-c0pXggxk+1j34I3HZCBEW&C$=G2(~nRopBtHvDrBjDrd
+zDf(n=^Ct8e`{ZtfdwWJ<o051oY^#oQFKnfPBXA)mwRTs`#oT8^{Z9p@AHDGV5r=)2
+zT3ZojeS#Q^L9gU}kn%9}sR!X@y05x>SBg#q<sy{#e%Ev~12oU|+t-efHlv;4)kwD$
+z@&Bsl@fC>EL(QXs5WmmI_t%cgdPU9uz_A$!yAN>YdyLHck?Zk(k>nB5R&f2K8KfPg
+z-J}KU@SfS<X-t5df7oH<;+X>Hhs%Il23Np$&<ygxYvJd9K*IG-!wq*3?^TzBKSo}p
+z^W6XAIW8w?8f|qrd&)fS3X7~c0e#qs@@6{txfV*`*`wgf!%rLsZ;vuOdcG!~@%VA!
+zC&)ulHoU+m`%E4^M{_UgVOt#TJxys9Cl_(1*y4;wob*<4G7x8?j+5%E#!`7s3~f88
+zb5MZ0Ps<rQ9T#5Yp5tO;pz463U`Y4{>J6h5lyK$;;MoBi@*mytRI*9~u<<NZ`(|p7
+ziEG0yfCuI)!pY&89h9^3vxC1ixL2ATw(OZ$v|jB2>9bUnty4xp+A3$M0wLO*7(iKj
+zKYdmkbgDmP?F*~Tz`wYU_N?jd_gsV0r8Go$l64>t;OhBYLrvMdFzXTLTd2-1#QA2K
+zl}fL2bYz`(UN}M7pP17n!8fZb=eY{hvz_KAe`y$&-r0cx&vXB8xmrh@PZ=rV+@-(w
+z#=FZ{*61>xY)nq8HZA)F>O1Nqx-smhXV$rl@^x{>Qqz@)Iul-CTu8TnVaU0wWX;b|
+z{=_u^<srfkVGhc~ScXf0OaDyi`KWJL*c^2kD^dPajjUIyuGa^8%|P9^t8^In?E|!Z
+z!!Y7VZyoM3s!+G(tI-BLpIp6D?Y9IXy*{Ii05Ep^7W0<CInJ}RD|z8Qz_~s~RQ_=p
+z#%IB2f=gTQRO3<i^O`SYJgGC|*Q;9rLY9s`;wND)Pjt(BSigs?v8UG`>z%UCu?OEb
+z^SfJ}zn1T()EQdYS4=P}8!HF4JKk{ry5p5s;(6z~<1WzZb`Q-x9(!m1<H;RH9aH(!
+z6nS~yG&kz*u3ad$ih_$2ACut0d<mR(dVi<RR^M_{+9v8}w!dY_Ch#+x+@3P(Yi@P>
+z;7+VOOj@GyU|z^4!8a*r1Q)8gm2K?g1<&FuGjF+R&Wn=IoEIJ5!7n20WxT)4Jh%q_
+z!)>#JMgaLxce9B6?Z~iGoeLH|f3v?lc*7v$XhvDJxiG^U<UZRAHycL>`D9PUZ9Hi%
+z?z$<s^=?VS?}LZu2A@ZqsyJ6LCUX+j!%t$|lw(eM(zMn_tUq}v!jo%@#m-K_0knG)
+zEK{(l`sL<eRl(Mvk-gA-r$-<(<bs@Fca*tvcOW$Mt%Be}mpiz0Q}1A>U~bUsFKgub
+zf%z%8upcqr+Us)}lns++QN|YMt5NUV>q*e@zSH)c*hfyickBjj;Jn8DCh{NCj{!fm
+z?G!h7<-<%1`g*b{x(`+3tACz*QGVa%Ki2rRJg;mwkv7`$;y%U$IxpHE;aKDu&=TM;
+zZ7n%K{b-lTt!%*r5^4JhIDUk3lH6OIM&r#+v0;)qO6^}exmHlTgW&dMTpQ?ip?--$
+zPjy$&wWJgydM?Oi#PAxbc=E;Z3Jz6foZ2fL9TD4B<GA-8Pug=S@{YCEJ!nf6>Xz}D
+z>@h9iTEG_!xiXO-_{(Ezo*c`x$m1ThPT|?`L5Lp%Tso%Y#Fgd*gx$z-i?uD~i<GyR
+z+TIY)HT#%9((^10X=HzdUG<sRN>TH*m*=*t&C5QMGc)@r)5Lr_;8x7R80)?vE+to*
+z0)GMRSiup;xOR2x{Zy3g=%8d10iL;zG{eR#u+cJ?_ymsyn^77zW0fs3)|Gb3Vssq{
+zBjR8RbvQJ97;eFbZJ&vH%wYYr{U7da5(h>%HR}#?-#tWIUdo0B`u?+HB4cBl6KvrP
+z#{?(Jua~u>pLzt;+boiCJLj034Uev+$`rm*H+j=ht*5T-$*8kdne$A)UN>5>ApG4}
+z6L3D^ek1J!k%ku@6Zt3e;e5b-$tu)?bE_pM@Mk84IaUS(7oPgI>F5lx7ZU$Ep79F4
+zYM&^+S5G-V?M;;PGI7Ag*kiH}8K-S?@vJ=I9rTumH)~iWC|PfieS&$T%5=sjQfFVC
+z-A+axO5fHuCvsTZe+hcZ%_B;dS;eu%@NkXJ3w^Vm?U{k_X_p$7J%#n|Y*`PHrj=7(
+zs^bUoEmqHG?3b^!t)l}<7p*=--pDGSWqVME<jit&hjk_#<8y%Kh2B0YZAH6|IIo<g
+zWJ{zkU+6ryB2Tt&yS5P&1e_DShOvRXBk4Zr5%{7(v@PJR2>(wMm)55!I<nH70C*;7
+zK8SYP#^ar`i{u-?U%^@Ykjs-8W`2}CxUl|o*HqF*l;aXLp2tUS0enAWeJe#yX83+X
+zos~!j>Yf1(eU1_@DojhKu)jK|KRy!Y5A<{U1D7gzdZY8igrlOv8tZ$nL7lbbIzh=c
+zgeJSo#s{fi=MFp-bYopa*&FSv?L<0P<(o?Pv4hsLxA2?wiMQ&Z@%Vhw{>=QKJ3B8-
+ze2z25h2pXUJ!3E@S?9edj~c*yjjj>OeRxjF;j2H)^w#{4V99=rEVVX`K^q;$*d)pj
+zNyE<^k-nsSJ+5pr>inB<Eb7jB(|($lupS0jXA7+3G!1ZZ-mL_z0|Ce73f5zleY{0S
+zMHjohvSBec5@W%Ud>Y%BIhJq<QU?ZUl?^=0c7oxZZ?@O%B22a(q5PisT%q>3l?)nf
+zYvg$j<38OU@<wBlgeHumO+F>dGt`xzfrw?7rGRiM+os^(z7>68SuY%E3IC3qLp)Q0
+zZhuag_7~8Op5QOTqR&n}oIvOUq>0JQMO)^F*(SDU1K|j`uGVn<h<i;p2>s;zr*Ktd
+zyxm41-XD$%o+}$z3Jw*)KiF(5l6QResL(Esi>2_h->Qy^y#~@4+P193JL&Zxl$8!Q
+z;6|rW>2jU3-10WcEpJus|Jcf%q04=wRk_9ID3^R1=lQicvR9$zEb5?97K?cby!;C*
+zo+mw7-fVyF!6Ra$;*}#7fASRgyLnx+EW1>C%u>#IudeHGWh>(z%0LcKK1usEBNBNY
+zIuQC2`J|76U(c6Ht`5BO08c3MBW?G3sRKEV_~&r=wz^}Ke)v5hhj(+m!@G5_Gjq;+
+z@b5jL&c7~KH1ed<ciE%lQ^W!0=fe17p0s(yJeV)i9Y!9ekxjj>Io#KXIJIowgRzmU
+z)<|O`USGf!=bamL__ny6C>!s4;IGG+JTMjc$NA<3UA21~m~Meb)&wtk7ls_|yF~g@
+z=c0B?GSf0omhUN>AEpf(Kk7-k5{Eq3H8t(9_}E^7YV!rsb<q6&wzWwouh#t=`dZ_V
+zBTYw2u@*`A(q(MGx+DXAyA{tYJSW^BYuuC%WKU{Vn(*MO9HW#Rm~ueU2-+f9hBB6&
+zql_z$$Ufb`BVsG)EAA)gbBd&KoWDQTbBagzb0_vQ`Z5;z$N1+5Nh_#lMLoyeM})75
+z^DJo)8C;b)LD|X!?F8(2#=2P^j`H9BROTnPBUjHU948zv<Vh$S;u-5LYbi?-`RImp
+z@TTgV#Y%H+FKye^51Ns^$b6i2EL$mSTVp(B@XyCI)0*eZHM%V`xYvuc<>arGJY<m>
+zUpXX9J3O?}H9_S&Ucu`UjYlrvaIAx}yOri2pOE|v-yVJTk@mRSIh8&Hctr9lKWJQ!
+zMLjxdnP04LPebeYvDz*TWlTIb)R<Il_ENO)-q3NSo3c{#_2WX9(9Wc9<6+tqG`uS<
+zo098gUfpP}x~|$><I;LZgz??4HU0{H+#YK~#955>`W((<4&NM?J{uU{mw9?;g@L~&
+z@;05G+3;^NX<sncRo$G=_#>i&&{xs<@sX_x4+sO)!@o~pLLH<`v@Mfu8yi`RwypeB
+z?}vilP-`jF<sa1l_P^Vpb(WGGKE@vtS&jJR-hk2{t??}i#l|P8bNM?j5m}<WFL*Yy
+zou)}{-M=6F7`3f64{L3HTjh+l;c~R0?2@+o_G!b`w*j;(^MKf=v(?W<ebVfT80ujp
+z;9DQG<602Oc=&IJe+>NX;pZ8ZiD>s+ue6(OakNhYkFX_~cC{S74B&;bBYc4Rq)s2^
+zd+#1|wwJP`MIoNgo=ANmt&4sb^tAd@nG2FW<sM3Tus!C)N1K|SvT&@F^bz$&{mj_R
+z0}ZX~Ucj^U2;-ST?psYj+b4T8jr43$^pSmj3F35AbkTUKBm6sU@rzr<KZN*~D}Kg^
+zpMd8^TU-?{Q{wGWcFZJvTB|&E+P;;x`nJ{f?U7dBxQ|)muU2-E<3F|LtKXWj3O}pN
+zGSUEqS9&cw7qiVTr~}~@T1c8`(Zj|@!BOhcTez~~Q=yIQgCfxJ+X#P*Po5nf<UJc7
+zAJ%KqF0{|&RrZ$7!ZF$}N&ZsKR(iga^Oj|tx3MPU{LOj0(nj0o!_PIplQunT>qI}&
+zn4r!?UxFw1z%SSD6SSR8>RQnL#U=VI*5#H>4LLUh{`5;lv%VpJO8cc~a}L^e5&1QR
+zucN_x(*{5~&!;BRW(Rpw<{ziab<}Q5rcRTi_Jq>8kJt5}PC9kjCn!4g&SAq_XF9wa
+zO~!M0ey8fr??&xLWe=QmZSbeGHCqvO9uT>Q$L*4JcRXk*_ciYb%%P4i<rRK|wxVBa
+zydHfsAXDVSoa;Y49bLbW7K$u#YXjr{L!U=X&}lFGRCuKnz@P9InYZN6xtOw(ix9_g
+zWq|T%bIa+dP1+Rw{aLNMmZ0AgTjfc)p|VG;*R|A7W#7@}Ta}i%uuo_k&x!VXsi!P9
+z;<^<f?8ipgzqDjQ*$6w;7>)O}-Y4b$Lr1j#o72r_kGpXmras!SMzI;2Lc7UGN7)D0
+zxSuqNewG{WVC0X|2Hff!1pijS)xcHVAnS6=<~Qq4IRo?9r|V|P$UUA))t7Y$Cp_N4
+z^BbM#hTGtDUUpbGwETc=Q!q#UShqKjHn~~eWOO6HyIz;4a0BnJ*xtA3I<Ib{zDl>!
+zLwoJj=3iUYnKCgeeu9qQMd>kCHlG<yM%qlIUEUbAJ!fcMJz2@-DuT;SH}mV=QuVs|
+zcZmO`k}p)6#FwY=eq7lrsWzW%6kWOfsBaLi?q}5f@m6)GEYFH>cm$qIM|dTB+1CqI
+zx`Ni}{!2O8KT%Fw@w3{9PdT_H7ii~M9PZ?qGg$497<Hkw$YWz7*RZpYmnXvgK3B~~
+zMWZVHOO;*$ZNbv+UsdK(HTQy7bd_CK9ka?eFNXH}*6Ou%2jG51gXjfpCoTn^F(<fW
+zzo0Mb<-j^5ZsRizq&MelnI!vk&~>yyzf^Qr6BjkOjYQ7d-4c+l7t;4oX|a|Be{fvu
+zcwB;V67VghQO;=bd`BGS?0;V?dm$gtjtqDVPowBXvTl<b#O}`vD04sUCsYDoeHGxZ
+z9#=NixNo`z;oNUF{F}}8iO)17`&XJZ*NXjOtYefuH`;Ad_s~)K8`SAuMLWq?|M&^*
+z?~Coqr`7oa&<WIud)1^1RSm)`#Nlbx*YK4GS^pRM8|s^b?Na-!bApZznUViBj4Mgg
+zsF#`1z%@%Cf_3l_!iMQOShQB#WdVP(J`Qo;V_S{;c<%GSF-Nu1Nw9P};=!YkmsoXe
+zAk@R-4!e3TX&Bv;`$=6m|0ua7Y4{dLwK{k6Mg#38Wrfx`l%7F1+FxCduxItzO4cDB
+zby%<Kuuh$^c}C6e*VBGxZGdNgjyOE`hG+Jxj-gCq2K7M!)6#y`l&2@IC=*ys;To0l
+z4D<opo7zv_*-z^~(XgR@V}~)31cY6n^kkmF`gv$rohw#nxiUkv+Zk=&@|Nub{(Xpc
+zu*}mQnXgzzAAxTu&_+2Xcz*8d(N_N__)dG|33@*~M$35~N1iijbB*i&2GQ3og@3^(
+zVmEpw_kq1!Z<hrtKM}pOa?SUY+4!Cp@a-BUF9}30r>%Y+XM!!x^N2H&ac-3TX6k1i
+z{M@O|q!}k<PrAF)ZKUG+Y0wx0&-7TAl0&Qp<UM#Mz@@<Tf;(yBZzvn_c*>M)#Ih0p
+z*%|8b*DJbaWXe88jJBWd(|g9fC|}oe-;F;+*Qb=L^d;^CUQY<Wvs`qZR;qJAuU=*x
+z?W5^*FT`t9dj4E5tu(!O|CaYQAaBy@?hSG;gAa9Ht9diFoAqU0o6pEO&F)GMl=eO<
+zm2S1tpF=wmb-iMg?O$1^Fx|^&Uw7RW%Bh?ULPx)&Jm5xW^Bz3s+8;ilZdjE`ev)%x
+z#dl3d_j|X5xYrZMdV=@(@)PhLNau%}0lsp?jY7Arb2Wsc2X(a1Z`2F5_z<o~_9MR_
+z%IfZ2V%G6K2hS4o;3s;X)$;uf>duKJ=01d<)bkth?>+raeBBLym2ZieoV~<!VNAr9
+z%?Wb73EFUFN6ZPa<bf%dr0k04?zHXwZQp}V>2r6~7mKH!p0c+-o_lWS!*L<t@Ri)>
+zdF2zCPY1#O68yBUN*<yHe$K)Fz?1wQ;rBQAsRKqHp$Krvy;0^|!i)G@J_z&hVBqwP
+zXY(krn*Shg@+|U6)_B1?Xs-G$%7ZY!{Wm#{nK}=jEf4Ak=>1@|XRglB>O9MlXRd;2
+zmC1284|%4*&-*m~mwlmmJ>oy_)0pvz$oZ5FdX4)t0Jn~rvTv{KYtj}6;1(v|hcpj;
+zBD(ghV-UD8A9Y-zc|GzS<g-&*$85@aD#DbRP11IPKxo#J7rhU8obntB@&1J=c&9x#
+z);kN~<V(NDH=ZRPN8C)?6{6g$uIH|h&!}j;Q{m7!#mkX*AI3h?`!nn_FUH+qgc0}I
+zcei~ayyG&`jw@Wox`9q30DmK%Yw%nL$3CmOQR>hB@@Tm#;X$}u_kHw^3D)<@PiS}l
+zP>3*QefyxEq;I_tPFR15Z&~<u8NxG#cmDLEPvl&QRqqQp-)dgGzrI5y*;enw|5ERR
+zt?I4D=g{c*B!A^mcNMAoh1A)OhcQl0{Ad`b;rLu|MxF=t)9$)Ai93yNC&`OooE|fQ
+zFHRY=jh9rL$4`;BUSf9A`D3kk#MdP01NvF6pSexqtnYT0-XyO1obue)8mo#(OYR{J
+zi!Ym9ZI*SBxwIYn<HX^nqov?$+}YHN85b$|Lv>6Z+M4?Z%7y2UZ$0A9w)RWMVeT>F
+z<Gjh3tJ?*sGeO;G@+5naPrO&o_V+>leV88e+r1{`v&pijT+}W|{+jjSIcb-tT{sTy
+zjzgVjSE`+!V_3Hxhoz5cQ<e0HVe!bzRrEe(fZf_tC%tU0xmDYnT4u_=CC}}XK2B^B
+z8t@wDVSKM__5E`F{bi0t(8>jf^Q0+ZH9SM*5IQ?shw%(oF2a7T^D%TjU3ETxq>eVe
+zKho;^E&BU&oV)OSn*PpjD`SL5<=H0QH}s%M8neVa%sCKz(RbfU+68J4{vOJ2;%m9)
+z(6A<b=9yH&xd~yf3a=0<hJTIbG5GCKyl?PD`*?n!I)-*c%K~lpapyMrm^5XAt&gb}
+zmJyJ$gNM)VW7c;GZBHQGUHJZ<rgO$X8H3$p-G+Mr`~!tYvG(}~4Rspbv3e%`=X`#e
+zJjso+-=915=dG=}n&)0y+0(`7^%8lExK?RWkYBQAp}G^xVG8fTHB{VxS$BPN`2TG^
+z*w`vv@_#Ak;5o`s^II+DD`E?QGKUlcZSk)#YkP=p3inyu-Z_d-iSf<CnrVf(-IgEc
+zLGRD3_xe`#=%dq7pGB?RQ4i{lr1(*X>`HUXM5WIV>0Vo@Y+<lHN_Ma7)6O?n*-~G1
+zxTQ_`0sjRa%Mjmbt49Xn=Nd(757bcfquPA>u*g*^4ht@3o}-O!o$tgS+QtdyG4rtC
+zMBL41^A+k&mQ1zB+fAKwqa6j$V)IU(HSx_2bMB|kr(1{Tw}SnIo7<Ghbn~De-_rNo
+za2-JY@?(8o;gC9y*)mNBorb&``530V@(0<c9Dy=Zj4JbGogev`OMi&+O&ou1@mz$<
+z1&GJKy7{oAW!}mEC2gEe8?VdnbC`KlnM-u}<gHvkv;6PAm+~*Pm4EX4v(wsf#i7$4
+z`MzbJwl1TShFPHvW{18P-nA(rFq>k7*}m^Z?nfN_Hqx>Vr_aH+vL4%Y8;(SxZP@%X
+z+wf`|ZD=drKii1+bMW-}@7u=HHzGeDPka0qJZ-DKbN)-;Sg?Cc!|pj7>`L2!U6H=?
+z!kwKIj@M~_^*#F#Yass;p@*5uZgt4*ofjf4B%PQWiJo7|ZKI7AeYod)!4amJVe9*Z
+zpGb3uEzLu=G;P7MgHFRaG&>T-$D6*FF?4@K)+EV>+|Bvf*DcpQgoFEbr%}*G-toGh
+zxZbt$y;Q-b+8nC$wboPbf87$cRl}S{=}*wTgjV>}QIDT%B7#?58(#5D4&%K3bxYi0
+zIcqbpZu<!wn|G!qjvdfAwqN6zx<@LY(kQ(g@I2kT-sNWZ?B!;Pf4P}lw%puw8|}u(
+zoTTQa?0Mi}o(%DBDVd*^n{nPUB{OJ`xrueJ#oFm~xanvwe6wJG=IiL50QG6gQSViN
+z{j!^F>-{pBm*ZqT(PB>Ie5lT(=sA(|Az{Y3(V7!K4wKd_Yc4ZnFO#-LT9w%hvtW{x
+zhxw~}E%BvNwVSX~ZRcHA-rsTGS=oo_qu0Qj!?Mn0o4qJ+>(@&EMBzcQj<X(dsIRvj
+zWmaX#dTPTtaKou|+@pQ$(RvAgMII@cRcftG`5DJK<pX~V%f26RoiY~MVLPt(MplGn
+z{;kvd7*^Tmq8Y^Nr^A9ThBp{tSv$UMIbK?)ZKu=z;yW1^Pqa$E{@ZiVoa|^ncT_kh
+zy1Ud_BkWWBOIy$$(jB*VHu`<3xd7$lp&aUmS@Iz2!Eo=hJHG!?;lNUpatfaJ&bHw|
+zk?NPT^Cz#D-puPQHAjX;=GYx=v*dImwOvcvrYF1;jFpW;!eSeM{h1x(YKAfUy8dR-
+zdo#+!z7KVoT$O>4H*=+VD`kSTpJdFTU0$BOc<MJHk+}~-Tjo-(gt70+eky348H~~E
+zimP-zu2uRhV<YjwfP*%AN|2s<O6tBdtRG`N^$nfC=TgSSd-neAU99wd9G-WQNq@M<
+zIfHw<zMY31-gnGcUwwnavmopY&I(_8NnL}(yHkaA_PN3?FW)yR88>y=8kCOGydZ4?
+zv)|moyPTrK@s3HoM9Q|fm+?bL?h!aK?6pQCBx|oTL5vZtzet?nw=Y6spY_|I;OuF@
+zE(mw54cZo`d3NF*WgFp8OPsst+m?Hem55gb+M&ia@x?PL40@PEdO>?UU+FQ@Ryo$3
+zNZau&>&;eWIsXr3{f{oo8VAi|KQl?mkCSv+l;Qk66rHzORwMeHbScFvI>8Cr1}XE+
+zL%yUxfspW7De6AkYV+EY(e;7PHs2it{qqcRwpoW{T?g8HXFYz~svg^Zq8>w<WX}Dy
+zu7^c~J+11|x(;@jx3|f7$q!elbrkJ}4Gv#%O6Fm<FE3={B{ZGQ4v7qlyai?5t?BE~
+zkJbFvGJo5CDea6Y8+_V+2KUy;>n_tW&Ww=E`P_@){%<+Lhv<3?{n(<{l_q75w;=qK
+zx)Zt59CD4e)$gka57PEKJ5r|ZS!q%(dM)BA{eL`p#y9aD(ZBBCnHzq|yCQ@Ep=AE4
+z_)c9=(*52cIm5@j47QbRCXMe7nD&7?eWt02@;Xaa*A@?Qz6}-~l}^vBFyZa8@g+M^
+zc8umjGL&3>u^Ag`$%inVuN5EsV^DNF?L1EXx3a(fO;F}2tDo9h$5{N!xYI59m$x<l
+z@|MNF+%5Jjn1=Y<S?$GEnsTq1(XF0)WIj1F?b3Z3ujct@%nc6q>oewiLEAd|Y3ajN
+z__i}BeOOglY4YyIo{U$M8NN%~pJ!Uqunrgl+qCV`(Yzb9C-*j<k$ZeXfe>l1qvzrV
+z-m#}_&l>ke+=0Nmy{S7z-U~cWpMKRQ@8C`dioGA+Z5fyS+aS-(@;+JGYfRZ#ZSMDP
+z3sLuLzxTJHgha}50}jfmpJ&~Wz8cRio_*#ijJs2S_48jf9X(0?Uxe2r?h74*Kgl~U
+zyaey8BkNbwZ(qo<5pz@7{9v4MZwPp`V}(cVb?D@kdUKwq{gWqy90Sj&eUozdxmWzu
+z$8t|L={?8FuY<zxR8s%fRu19t24#tWJz>W=q6FUyv~Fi7W!JY-$+*{kEPJL_T=Lmd
+zba~V8ZIQ<P{(}VX{ewhC#(ld9@aMvvyj|#B!61=c6W`_!lD!ja|E`$_&TL-Ww!oha
+z&s+GjycPZ|Q8+@`^k9uY<Y|dJl?cDZ7Dibv@nzx1qNAFjZFn%Pb;jfdjXxu}C#`H;
+zEjJww+5nRN7h7fbMBJ5ucX?+#o*}o~`FbRly2h2i315kDmDac1^q>y0{`o-*?^tI;
+zo$VYK;XZDxcUc2%Uh)h|7u1z_vCdN;iuaa>JK=quuRbLDg7bp3*T+4zIQAv)BXx-W
+zw4re$PUD6V6xl3s<HwI>f7tbL6b{sx=Q*lxK9>D9D=*4Ixu<)AX?PzF!ZxeEU!vek
+zJo)rv*{iYR3HNEPM0m9=F7f0eUH0LRnvO1Og(oX)ctX5b_Y=5bomFG`E{`Lu>@J~?
+zVzs=CYmdz+%jK`<JQT;d?~RYeUQqMg2bz`nWz!MLY^ftRLCa_l4sy0!f0O1>S4{7<
+zkxwP<RJJ^`=LFqp0mYZ{?8fYGWIkB+vB=3e_w8w-K1CJyp(JI~AO&$rYoGf#x=!a<
+z_$hhB58t<>wfi)!<^8ZKzP1U(^+@E4=DlI1ugCko36IM@7GA_7dPeGQcJ_%^^@)V9
+z!rGWRax*)*)mb&pLF#ND@U2wKoNGB32W2kqw2|YkyV}blZcRpBrCR1Wo_h$GS0`(`
+zm_3w^+e-62z@u*PuF(Dmc7=Fuo-~r{xl`G@lzf-_YFWr<|Bzjwy4+o%5w)0$F(21m
+zx+_G!CmH;V$5WxwG0kwq&BS-M{dV}XRG!spjX3yYS-bn0pWctZ1^&IZ`S~#VyZbFp
+zV?5lHTLkA;pF`#zulLc$YulXc>nlEPC1(Yl;W;ku-&wL|!ncPWTjeNY#w~5iG@A3K
+zZVC4SyL=qwrI_#XCY!z*-aq+T_%7m8J6l|qvFcOlKacLe4BdaL&e4CI6TbOK>=rN&
+zKlfkIf8Tr=-Sdn?|2@#eJGLsq37$ob<Shvw?sYaGE$wTh`d5M%sR(y67B-T1VjQ<0
+z>wkRjgMMPW4#Lkq^5Ol1kED;@|48<e*+=#8AGGz+0<>p~?xWLf^pPcti?OYjH-FS>
+zPXgiVb-$3_v`%ZSwHJOZ>*bf)NdJOP&+*#1n<s412(Cvq7}YVn<9e+hb0p7Acjy|a
+zspVP1fMX4HU+~U*+ugMRhclro^-mMkT(0keB8&*DK`8gkh`n4lcN1IVdk*uSJC_k~
+zAYLMMa12kK+P`O*wRUD79M*Q4c(<>*iveM@y>$6ULYKbMx=zm?l6wf${jWw@u*XNT
+zRwn)R+=}r4m&zyTK>u6y`Bl({1o-`M$_|fjL6~<%T0AM|YImSZ*dzCO$6IrYvgejf
+zK69x#@N1!C|0Es*Z@4daFUsy5?+!cT#rA3}o}Z)sDP>C)55Bz`tEao(ilpXZU0N_N
+zlzJK9^(*+VoE_@y-x9eD{-(0HaFcgaB-T?Niu2A6r6bQPO0nKn`U_GIH`<nQ>$z#{
+zAHHizW4CG=%lVFY(p~9C^UP=k^}xGj>pe>D_umD0a?a~+;fhfa{`?@;4zzm}r0x#J
+zA$b*L3#QV1r0?voo8toC61=m+alr~@KZy1jIF@O1WIghv&OBj10sS!H*0$HdmJW!u
+z&Ls{9!Lx8acLEN{wN<8d?|M1MzERaeM=?>Kze?~#b$-9obBH<%f-(QP?l1PoXT%+Z
+zy{f~AV~q$qr1klTXNU3rfnE=V;NPe375)hRJ$n3bY?q@=3vQLQ2K7c}-b%X&qateU
+z0RFoi?MrB>JKL>3&Eos2OqZr#?2lUTRojq%xn3(!zi-naIafMG&qbScyK>O31w1?E
+zA+NMV*}rktB!zj0+5XFSfqz(O?w_?QbfV|3kQ?o^aF2LM+#?QJxJR5LF4m>(3K0j1
+zi^M_BPsG7E;7cF!|A$Ebgf4pV{@fv%w^F$O4}Y?Qw(?h+OW;rStu#9ibYV=4QMNT=
+z@w^mIt{3+A+7()WI6E^52dO{#UnlyKGP-QkeYEbI?UXMe?i7TL)M4wm|A(+5gk|V3
+z+Dm*CVbrslj_2Q%?#W7X>lyjZxuNio%%RljFJN5i8qe7kn#uKVtFcKq{nYp*T<$+4
+z_f1oFGamj*8@(qkQ~?)u!kvVR1HDd%%Yw^=E4@wTfD}BvgIz}IZEep77ESMdQfT_E
+zht8(y57=n>Pt7OSw2^j<PTQu8O4F4Er=oJ2@4u3Hulu2v^Lkp7)bG4QBD3bc1$nd8
+zpSP6Ja^IqS*ty#o{z~$3w^7$rTRUm{N$FBo%9@sTXOz8}fL_;NEb!hPx93@No$*1)
+zD0>#`*$Oj_HkGwa!lt|4j$DF%zeM+Wb6@K*VD&ZiOFI-{Ev{&Bg_#LFKM30Ry6=O~
+z2JZ)<^_~wxeuTY$kZY7@%>nS&!_PH$cf7xQkZYa~Le_Y=Opk|NN{{|owVv9JI6Sv0
+z<6&X*c;I<&ukoz;JB`PUfX!<M$!|Ps{zivUKXKhb_RF(o`I+drc?n@#$ZzU1JO4b`
+zbVR{I$05J_LaVy%=lRUqXHC-H1Pe~J3E@l9vEHIw{SLrq+O`N`=IRcZWp9i0x<g=w
+zc_1YAAm*v_*NYEQR(E!rb|@QO(R%&npp2Wc+ggs7wdWWwsd~(i&RVjkT#L?TR+?I$
+zz1xO1_(b9vX+;6*maAn<E4cnYD0G%Oetyu|e9ebk$a`w~9}2zL>riOJmP3FC`k!YG
+zy%oy7*Le8JucyMl7V*3YpMdvuzFnbL@b1?3kk{jV9o}hk%ZE4{@V*}J-7_o96u8&%
+zKD<fh9FCjxgEHsX>B&#ghh#l&Za8@MxLNx%>BHr1r2SJX`p{O{Uw<iOpWjCMCAPBd
+z{gvLvyqJBC{-WNpL0&}n7wPTk52e5SdcObh^Qf+;OY0O9?kCTPtdKDM{6jhO^K)VP
+zhHh8r!?WA<_Roardu^oM@H1c<&}DCGBmJ6IWn1<^xX<3!{%-~HA|Lb54`u&Xou}3E
+zRGv>(x-pj-E!Ohq;xXHQ+mgrpNb{Hn+t7cB)BA{&Ayj@S@_VJLa$IEH<P#H*N9PCX
+zP_<RIN0)u%o9H|={!5vMn2&Khx=;G!X9Bm<4`rXg+Cz^$-f|u)x9y>~wdd&9@Ml?#
+zpGkeW1~xxynU6!;IQpqGTwmL4(XgIM|K~&dI#}`^W(%|S7|xZawU;ySLxIV`sBHvQ
+z2I=c{AIjQVty67zTl*YWeHhg<NVR?E`7i4JQEtUCYt_N4_0KpSyA!^eU-#-U*!^>D
+zlULhkNYZuV`GLV&@2Hcp^3#qV%2^<m8~<U{KEuHbr_q=Z9h0s0Zkly5emoGxgME5m
+z=+uFh{77BX*}535^R&h(<!Oz!JU8jFaISr6OP7SQy8{R8aFxBe<P!qd?q2EZcMn+m
+zdVvUWvZ!~<{8NUXy<bLp(8*R#t*w6CAN%3+Xc@%&b^1Hk%q-&`U54AXKWCLwWGlxm
+z6SVf1{-pC7)+BdgcF;J*_4)4)2u>0Ap0kz7b0GtJM`;M-P$shIfYg(9d|JmR&0&6h
+zZSgIfqs*r@yuG$HqSv-YyypwiRe#I|o7LaT8A-}2zf`iyDh0nH9f!EevWc%nQQM1Z
+z&z-vMlMl$5PvYjJ19HBIxRVOl4T9@G{G4mpZmrj_<e^6Ea!+d83g>B9a?Nq)0orh?
+zHiv7N7J*I?{vRIW9T;-X^HZJ~*Y-~=J-xxltusBmgK6cT9K5T?SN<o;o{}}J`yY^T
+zajk|w<;BGFEyv`1s|9Z*w?&)k?l`+$=V|;S4d5OT<(e1kx>8<#;Q@jF1-cB%51#0;
+zG2-%UR5scEdMtYGHbv8<Sr-OE&%-6y#tr9)xC3(Dh;@!RAZJ8#hYJm29S7X$G&1y_
+z-h}IaUR}TXAX?WGA4pw~f6#VafBh464SmqEu7^H|*7d*#XV-Q6f2pg-ru&=#-v6x+
+zqGyRL+~NM(<_`pS@-*&TtZ|2Xz1I2WH$LMTIlOzwlZqYn^$f#1*U2w351z;HijJAv
+zGb?=TxWI*c?+YJrUu31i)xW^cb@HDyjOGJpxK_ULnDC;i9Cf}|@(Sp32<v4U)+x4f
+z-qZ6u<)xJ$$Q(`jUGag)OMm-;%+b_sBF<ifayDq$Ch@ZfFr7JEbkNnD4SyqGyI}aw
+zmm_f<^st6wl5GqUh6<J%W>Y^CI1wg!x~_JZRcn}WFX<Qf&hdM{h7)bO@_ZrfczvX7
+zGPH!#IGs27*1Ot((|ipl;@0gS$R0<!u0x8l*;{SyL*8%dacjZF4wKgKNV1Iw-l;|0
+zzvcru({uF)Q5tR^1Fs#8j)7#|Z`K&_+QtCu*Zl)ItIfJyU>gHJ2mf30F;ymIsByYZ
+zjszvo>*nabF{18T<i3EmjrYeNTk=sHqu=kh&-((yukB%Y|6;%7{i((+(z_FP2>q)X
+z{?ql#)ck8u=fVAeL;JO^B%OOW)9?Ss`&3AB=;VATDwR`Fjzc9>LXz_-Nr*Yd%&>G?
+z<(yLv+j34$In8nAe9ZYU#y00+Y#26X_Vc}d|Gf|Yys!JZ?)!beUib6)cp7{t7b8Xo
+zeYbYnvf+w-f;o$!PpsazEwjsKKBvo&>MmY~9>8@=6(zN~Feu&Aa$BcF>O#kXA5q`#
+zI=0?y7JBrZ#$ms(W6nFYa{!TJ99WP*Pg`N?7uB*{;h~4gq_XFgl+y#xwR^Wa&Q-(&
+z{bQxhQgA^h)+H5iruAO|Bi61uXs6X(Sqalg;2^21m}%$uu5!Un9`QEXWd7E0{RZIa
+zA060UO+U>jI`W^}et5hV)??~&I9@O^-@CE2{1HPwR#NU0ae?I@qdi%1VNvlek{vbg
+zS1^emUKt^&J#^dX7N9@qmWv`vIpo6!4=g)Qxf#J9rsk(%8{lK=Cy?)VwI}Pui?x1l
+zZ71K5(6^z=-}RZ4!h?4Hs4Cs%TEhlis6>A|M5z~XO%Vi@JXe05MWj%Dx?ObMYf7xu
+z>Q9=<5OybsKk_AY=hhB1tA``XaiHq{UfYVRYd()nt>4tMvZkD?nq4DR4rOsKi+R;|
+zF<^|V*nXIxgJ<|*c<+97t}LP3k{yKFrw{J=9%^nMP6iU$jmt2bz)~nCS7*O=m9X1z
+z6~IG68dHsGbLMY{tnc8M4_v;Ml8Gr*iFiWyezsX7DrNj?G1%#yiTRxaY=csHoITJE
+z7AP-zRzilIqNy`wAW`TQXzxB|Hc++TDuntYL+X^Z8}l;}3(UwQyN|}4mV;BgChK#w
+zs}FIz1vtA+d1Z%hJY$E07f(42^3z~0$FVOJVQO&;H*H(Ayp?jpZ&0f<?SBMGPbG0Y
+z0I*Y-I)TNVUrO#o$$?46=YRnP`>|Fi1+DMvvvDI%l55Vwz0k}lz0^NKz@DRJ{A(Ta
+z3=OM{@2I~JPB{O>l7#B~axcH+O7XvY3|XA_W$?FcdOL-Gr>EO#k0=DTLZOQ9<Vywq
+zNj^!xbC-8P#HZ!Jpl$YWd`Fb9pjPr3NvolT4J|G)>i5HJPCVmFE*XH7j(NUrL7lmk
+z$D6lx_Lb76y<5}zyy7BjSwnj6WS~>JD?ry}8f+V@6{T@RmrBn9ydKe+YRK*X&}~bq
+z4^s#{t$t`i@zgl{o!weKAE#(CCDvKz(cf;2{ihsti5gIs=r6wdXdk`r*pAbG^PyUP
+zZARjSLGH@3+LbOX^`FVIH<BEl0jD(i!dkR?-LZ+~8sr$#oj|U?a`rjvMl1ue!|NOM
+zzlOA&w6&vTrs_lt1%r8W`4f(3^ly{v^E_>&CTa4gRl`1LX#aTm;#0!Ma$=*45)g5g
+zVtt|uAJ=>S4D{#xdz3twqTYO+Cx5xDH>50_=Hq`*r1E8e>Urbin(lJ`z;VS%+1>eK
+zM&GXLiHK+XRIgl~1DLTtC4z2Z{-%I(^nZ|edO-}g>Rrpx&wMb>g5T~?2WAi4ooYEd
+zN4r#nl+*){@-Kw<$}ro!uMapx_Wf{6qkq@vP|7wr-l0ynm&A46)=Z`!{<%#^4gC&`
+zN-(J!aS@+~f+=S$V(O6j2xXO?)c<G@`dNCX8RbvM9ry7hdr0(T{<{mffBX$J^Biu_
+zT0$5lDy%%E=3cB%iX?GIm<XuXy1x#wLQT-aC0P6Bw?a6GP9vyGq0EQSEUHfCiESqi
+z-2q#>a-HE5INJ677o`dYT?ihJ2smeDvbl{L4<wV4!y)w6F7$TeGT?xmmmGptdDc;u
+z4IF?0d|nnitU*qW8kfDk%m@6q6AJ8nUztRIg!H};o<N3|?tT~lyeQUq+qvm__Z%-p
+zFO0K5MZ#KWEh+G~DY9Y@X}Q}Duyx$OJvT(SOYYkbFuB>OvS%%(IV-Aa4{^nL1*0ph
+zmPI_GoTfO;%RSMOSN@fF{@B@ELIdWn+=)?MD~m3E85}wKamN|DqcN@;Z8EmV4k#^B
+zm^{1-u|qi2SC!?irFtf~cwzJ1VgpksKAy4kG)q)T@@3-|H(>8LTGjd>$fq~JTWE4s
+z;GQHpt~1RPdK2lN8@Vyzh$a=$RtB$c!}f~w_TMd3&_>vfNG`iEQvH|Y9g&m4YwXJP
+zDik`lQyTfMbmP|A{Fg7+OYp9(RsE8NKj}Wx#XxMJm9v;kLGjFAr<6XO)NiC&(`@qT
+z9)lw;$SBAYQl*$QEOKdm)8dm4<AvAAM=8HS%DK+di$YfG7bp4mqDRrvy|by;R-cZP
+zT<9FT3h|Kf%q?$j+4r}1z+HDvt!vB|s|mL+2u9N;ggTz6v}4NqXz(0<3Ho<F-hn%Q
+zXpgE`^-$~T_#o?;$(QSce<>vtBS-gD$lAOOow{1UBTeq}S)I(gsn2uW>L>A19a?sE
+zQl|(RsCAvq%(~yA{7x(APM3!G?)+?s&G`iCsWHRNZ%4^)=!v+!g8fpod2m4j^1JaB
+z+-Bw4<pT8mzQXe`_w#X(lr<Tc+0whWVb>^5&waYfVWXijX06g@RFJGtHv+_Uwf;g~
+z_gw{`7pEB!Iu;2R$xZ(f>O{!i$#d&=?CyS}J#aIjZXEh2Hk=f?!;+lj+E@)aTROEu
+zdo>pQ0H*Y-?`4jItrGp|AmX{12-t5+p*M|wSRkZ%pExgcLg$an(m!h|;mg@mGW<qU
+zFGsm^6jn5LM(;PmXa(ikdnXB?n~=+|>X9|u!RU+?=^_owt^t3^`3!w@MY%a&duwtm
+z!(;LZ3V5(I);k#t%g8mO-)viDHhB1?_{$RR`a;8uYH#f%c8*n7c0Q6=G(-J0P)O)H
+zZhWLEVy%%T!5i3WAZa##m#gpyBdOr+B~VMb+vO6G$4*?|^^9Y|<W}`D>7Y!|b9!sE
+z*?Qnx$E1y=8mbxb`FO{nXhdkp#PXF+Q|x{+gpZ_liaIoz9Ik@{sxO50a|7gb&!_tQ
+z8F4LQ$iFQ_D;)l+Dpq7_^hk-Glwux}!g|;toz^@wkSgKFi1$8?iim3!#e_-!)ojSW
+zTIB8-^LO7pwyCGUd2zh1|AuW$txxQ7<~c{m?kVv{%o{S(%x^^lL6;BScesRSqo+YS
+zXW`y+d*j-#N^_S~;_cu(mV#08KZ_67yz1c+w#_{*A1#daDjKZTvF9wIgppxHewD81
+z;9qIQl4%+LG+rb(afB_dIwqeQ;VRRY4^*<aq&>i<^?Pi!I}&7nqTALSQEl6T3b&y~
+zkmn3luFaBL<<iyC$dXE@pK-ZsQt;<=J-5&9APhGVETsrcleor?y|WXXOfe&S>BHtK
+z9m0D=*d<H2tE-{odXU#nAL+|MW|g;%nvL+OF@F7k6tn6ww<?Xj^OLl1BlN&N!wHP&
+zL(cwSm9swATCRmkLyqMFWIk?4f5LzK8}kdpObVkzf}vJw<Z%1($bjufc%kZFO23Ud
+z&|Q}yuMw|xbUy9HS!r(J4DbeU-9?E?o~3(-Rb44{FR_I>;-#+9Mrk{qCWUv~eh7M=
+z>OWt^<tmvXgU1Ad|GDXIC|?9)ezgWkd&#ya>Q5kpr2vHb^?0hFeHStSx%}bFl9uau
+zKoNNN6twK=<g+t>Dl`YumB(?^c$)QF{-D?l%$)t)2WVOHeBR;m9TfChfR~m)okB=o
+z`C8P7`ey2c<I~&r1}%O?U1zKLoSC!AX}5%&BEZLpKVo~Q?_~fV)<n=*!HE5*!F!Zo
+zdW(fLrCTpXbw|K<MAAqnINar35jD(|VMaduz}0shZ!~ttl>|{(pYet&iNZo9T{n6&
+zN&<R#wN}gi9XRRRdg?x&eB~jagWLg|VcX|uBYnx`!pZIaJ+NxDDY&c{UAC(8{ie!{
+zfa7j0-Iih(0;VG=Y&YHbLqjoafG#0o+e(^sA*VPvmZWsOP}sOWXERwL1^8Qy+Ib0)
+zh>=yk8N<=v>l!R|%wB3nfH9<K4Pr<cs*~2N7Xl;G>L1Boaf;14pRH%r3gu{Y%3Im?
+zSY=<vQ?8XwLL&&YTyIyIm)incgc2`3t5k`jCC5Wdawl4E8nmrlKd!U(5Z}MvkpGBW
+z9i>koS3Xspxo8dCd$>yth8-VJ{mru2%3olc5k$461gLJ(YkZ$r`mp%wT<@l5pIG-{
+zekGS<$%Ye8Bs$QSx2o0B{Z$q43IPV=e(_;D8jAB@=V3J1-JpG`6s^G`KbPp#ahEnx
+zr*f$B%~0DZ!7F|A|4{j*+IG;`TcG{nRt%?j??HsdDnjC)b|v?t^psC{<-xBCzv%17
+zs%-(D0N4YuTe6jgTH~|$O-Ud^^0Y>%UW+6UNewO8qy`DIX2)aR2~Qm*40)=}iqFaj
+zG$M)d?0l-Kgmy6<sJ!XjC|5pyhS5sx(NNEKbNuOcLg{$St|6ltq;JWRUQO!(pJ5Cw
+z1bl*A<9blCV3QdVY8o_b(tLU3BWg|SOhzY!tD%%8d3wE#&ey2-*50|~n^j$8c$CC|
+zW5wBEv_6z1qP^8JqvFox-PwsFNRnXe202nCY2)x}?DUBwGS9=g+t;LuJvDpkZb!|J
+zIjZ5H4j(Idu1o2m!Jvl!A*>e;@eK9EsZSw(XD;5*3YF_SHiuo^eIrwpjr8wxNAwad
+z)|ZROd)CW^dVoTy^QY;}YO)!H%%Z`OujkXd>&DZ)fg_9?97Or6YPnBK&d;dO9a5cw
+z4d(UPnS*F|ql8WgN>a?-=l&Y5j3@m2P=VMWR+BN!OK4*)u2Dub+%)7Tgl*!Z&v0(D
+zdlb$=9hpI%fI`}G*SWX+?975ry!=hk>;UYB!J}5xMr~~<$GQyal*5v@g*MnqRJ6W`
+zJ+$swNARb<LFFB8VVM&qE+rb0Nd<BaBLn(~<j8#DRplyWM#XKA#cVCdX8K#+`KPJQ
+zMeWQ>HS#sw)3EkxkxqRzMG>n0#(-}4E<rwU1~TQY3Y6T=f{PX1*8&TwN>;$#>R0i3
+z*+El<7EkgVJ(ga1d1IM{DSwGcYsUfS-FtDTmIV9EH*|^}0q5oY>%0}4zVDxRAm&a#
+zX(>q2)4|b7Hrg{PPPKjlEf!_K-5%ZIpuoZXaNjYP*aKT7>N%BQPTEJ5Qb?W2@=<k7
+zU48BFdzZa>#i_r-X^gwHl0{3ViG$zb-k`RRo6fN|NTl%_(hj`iRT(Zy2M^b7#!<qb
+z$p)+)YjS&!l4}QpP2uAj*^bAD$1~1?CHFGmfo=n>;~4{*RaJ%$(of&OB^$c|KRQh{
+z0V&igj2kI7cCvp%%&^Tr3>{vfMy+zhS4#sG=%!s-MdhFSbYwzHTumbaI#&ib!tE<Y
+zt23FNL@`@ytiNdxE_InOXddWB<t>vhxq5x7{I&I$Myy}Ib8~#=syy=v?ZP5E5HM2q
+z93Q4XIbNe8jXXVP=LZjr0q1sW9JJk-`JU&&UuMdZ8v}=qrv#13%6Jve`B<jiol!IS
+zd|Pc^yWV8mp*CjaJ)>Lyk(HozXgn&DRf^w_N%9)pR4#*_%?6Tds*0|VeMbf9CvhL>
+z@^`8C8g2MWJ|?H7UiW$UF!<NImMD7sO5n9c)z+Zi)E{<7L)+9)%U4ri(w{>_+3gC9
+ziuiqUvXb3J7Ptt)4(8*aP#l1!XhHp@2tW?<t3XY05@ow*H7g_<n_lVlP?jpgw1~Uw
+zC#p*CC}sTW|7aE7gC3x*z9v>My={bqQ)wT#55dk`O!!5~sHCuSren@H^>0{bm9hO1
+zYsp?vX!hDrF2+MUKEEbUr^0RvL`@ESAl~73+Ww|}-?wF9S$Lo3<paJw#B&Doz0?*m
+z?yl!edkvPa4zM0xgPwVqzJ(VgUAR{1+?!j0(lZt(*4r(7g#_^+?A}EL<*v;~-Fe$d
+zNuD1fUV&7PYqk$>zN*LBa!mk7SrE`@vb|HW5NnQ-?0>kuF&Q${cYra20koY{8tZF!
+z>Z`1}RVuu*BW?Muef_2zZWMG_rMnYH-c19vTIw;p=`jbU>oPAs+4a=)3?8ORgd=o5
+zun6&;GDA#nKpNqPuH3W&Kn%;1?0|Gy7i7^~0oh@Ec$jc{_@EM~I`QgcFI>Q*!1Sr@
+zosjAxT9FC`v@WO(=lF$`voApw`#7&FP5)v3+|Jn9gcWNW#P^m<o{(`PTQY)r2}z%M
+z!h#|j|06p$gOgCRriY0A3*7sMK_$A6Ads~s2gIsl(;`KBHDfh^h_eg>B^Iuo^9-(6
+zfqki8ONM0H_mpHz^So_06iWfc_)=cbZLXtZC-5Qc<Sp+}7^xOJS3CRQWoGYKUQwd5
+z*p?z+wso(ZT%Uun+ti(xhn>VBRDxF!uTGeums^>VYUPmBc&b2d!o5AVmO`L}V<r6V
+z-(jK2Vcm_g(IFGPaaTLH_bIAV;b#Gb&&#_NsE-i*p+!_O2XXBrz=oe-(Hz!-``cF%
+z@uNZsm|OuGX3l#MYMr-~?sk=mdwwdOvFH{mYKGXxe!u0{wUT<#krlIM#@dsp#WoLL
+zblxWs;{!SUR_N3&5!*<ezSj3d6Yy#K3_Hr1N6j=0eyU;y9zfLCHuv9fs(ykcuJ3pI
+ze}`sepyo^ubvrOr@y+$}XEAOig@0<Gv4?ZEsi1qlrf)7$@n)JvMz+iHn-oCoQbhsg
+z^)}BZ#lY99WTkdN1sx;k%9CQuyANASpasY7Lf-i&1i7ICUi=r~;>cq<;d^7EDc4mn
+zFQ)kGw<U%wR!gWqXTl;Es7fJ*jQjm7c!Gz=i3I-#Tl8+~LszoB4480s>hiSR8Y5<K
+z);_&N&ujA4-wERr#QW+VaHhnp6P$VqE{#xKf2-L8-tKhBi7-lBBQqVOeX8E2o`Uv!
+zxZ0XVF$3%&a3f^*@MX_PO1ZXV5u8)~p$ThKvFsZ$mX%L^nT4re#pEjNo8oJW_T>v}
+z2VQxFjXTgMFV+q44IdH}hcw6qJ7&056(iCa&xFOQ%PT4fFy;|`Qm#H{0AMThIjm#H
+zvrlnFCB}2h)^np#pBPEAVyLY)?x`F!XvJ;i>Qa87M@XP=K;|au@cVseM74O09lfvI
+zp?t~a&;FZ&)%5lawlVoaHATv3;OWY<<#3N;w=JlM-nexwXSkEt{5O~1XYSBqJ4|CU
+zJ-uAqhZRNiQl>iMM#iPetW&IAzPh}A@Ox1>q&?vJ9b0-QxVU5RtHaRkJE2xnF790=
+z$u7&N|J}N$Na}46bC@d~4lTXbtUH~u^Q*w^5xY9%{%ZKDi<q9(!N1$v39N0E&S&}T
+zdEuK@VY{@>K{c%bNxfp`Kb<c+{3vm~HI)FjDVODWxI*V3Oe@>Po!!4IjH_4C{6d(z
+z5oTUpu_*kCSShLJLrH9$tUG$Fx_-b0o|y!y{6Nxh3<0IU*=_t&lQ6Xr;s-N3D}bzN
+zFaV=c7hXN5T{?gEjjJX><*QIOFeq=iX5eJDGMrn}vAsW8RjXJ_m}QF$rkD)nq9{5U
+zRpuKbn#4_v)@PW>IJvkp==8u34#)TV&EbH8^r2*UKk~#!r>g%xuBpC^!*ibLIJ)!$
+zHoa_vM%)jP6K2>ozkDVqe1@TPOI?WVzu2FA(3?B}O(WJa#5e88=)lV6i7c*Uf++Tn
+z#qWSa!|@3@QkeSVhJdj;tw`6}pzmv6Nc38rSy7gKQ1SX6>Fv+39aP4i(Rhfi6ZDE|
+z%&ArvMsmia7gZBMKEImk3oXQqk9}`YfHd0YfBdS73|y?1?N=F{9OQmaJ3Xp^RiN`;
+zsGUM-9Lb!n;|xW!UiZIDPf<hi&WQ?dQ<q-8lb9W6I&!uUAEHgkK@EqfWvQG||AELl
+zE|(wIA*VtfI|<zY|H8Fe?suL4+i}|KBtJS^j9RL{cg84F!7%#_SuOr3VVG}S(htAs
+zwp6+;Vd$q&l>xjO#?v5CEJoc(oh?+Y-#+uH#^)tIVZ3|!!Bhdh@tHCh7n{+fHSXm5
+zsz2HcgbRLV7@Im1cB!kX!-puCdTUmj4QwV-43cc7o82=bYdALGD}wO0qLa;J<@}M`
+zQqFeXEb9KZb=%4Ng%9fPN(^*d#l2lEz{c9b{)oUl>c2u3Ft4@2Li`A>y9i(80pl{F
+z^@4<GWgu6t9G1})2K!gt&c{JYjrTF6{#h^R`TdqqeMv%OKWJN?9~+XGfIo~cVro#Q
+zw@@2xuC}rB<FVN&rMbs0iJ{*iDX+u~yMF^>HmoFgud2vOQh{!F$m#Z*sOb}iw*He-
+z(pEmnJI755@#WC7O)3&pxyl%eJ%yqAH}X2s+e!3vM~?(kkjG=5v~_9v7bwR@gLY32
+zLSG9|xQ#YVYJ#}V_thA#9GjwMrADadgYHNyhCL(BrxuSqy_d$J$-7e-EH#><b=@fr
+z{Z($1)zTunrSo(+x&6J~$1iuOu>IGtnVej=>0chB_qMQ;)ANzMG|I!00mMe<7m3C#
+z-)~eT(#taFAnAa0Y?k@3!S5Z$^xgHID4MjQPm{B|#CM15+5fC0XTyxkB(35C$vNv8
+z-mTSa_eNhD-(-Lcrj3=9ced<F3{Fl%0QdK!|HV8IS1dWK07{Jud)?zS-ojQYuD);c
+zwvTVp+(i;S9Wki=n|S_k>lE$pS{BQdi^}<qi{Bl-sY{6qTR{0nl<W1p;hST9vZGY2
+z#rSC)SCsHpz%KfFulCX?{#8!b4q-dt_sJ@s$3^y+nA`{DQu+r<GXH80iI?4c(gAia
+z93{6w3Gq+&o>bT4uF5fUVkTbe$7TeR_E3t!ToSP)opXCd1zHPHZ1DU4ruuK+a)m|J
+z>V%ZafnZTqr39{C!sV?B`AUUHS_kjjk2BotsdsudGLBoBizPAD=jsi`XTFsMeJ$l^
+z#6kqq?c5=g!p4q4{O-$ds`DY%3#%r9Txj#=manl@UJiu}hnAEZ2iW;jG;=_((_^9e
+zQTq9JGP?gzmP4wDiT^bInvYyu0AF&3&D?Hzb&E>_wBO@WM2oO%_>D{x%L;@bYevc?
+zdl1Kg=$b{zY5^*b8eLVQtmi%s6u<Ic>@ZyZ`+I|SDQF~<H`O_+AUL)}j3hOlvR#sg
+z(s>aHj@-zCciTEySf$*)`Dv?uj6pcT-(PXx;x<HGjVbu>ZK&OYtBrZ4;+st(v4uv(
+z)qms={p&NAcbS5LfsCbhlhkzlj{cnR){=dtoGr|IVaOBRAarkBK0|i?PT&4KFyMoD
+zXUxCb8C(==GfQB}@3scf-@ovqGSkE$A#IU2cC{GVtX+uG1N;&AI)h7dtxMd9)uuJ~
+zwk(-j$J0Od3ux<F4y*D0&;=Qr?)ws{0q{VWJmf~i;ITxGVDz9#FCNv9I{+P`WH%Cb
+zA-IZ}JxujOQc{CX=OvG_D#=rAHMpGae#<+fj|weORFX%1Z;xPRvYx*}s5LT|_3?v4
+zlC5cd$QDG%bs!d%ir2sB@ch82?s&}O%5VM!U*dI`BGfKK{_D2esv?_ndeZ!F>M;)>
+zy`iIf5<;2%JRTR9UrX;rZ&g3!`av$R@!^*0+6UmT0Pz1*S9c<Y3vIG?EuL(KB}fkN
+zV=kg;RBp7=^Y?#uLi&tSt1+-9|GP7wefzq6RfxgabnWaJ*bwWVo~oASKdL>*&t|W|
+zvzH`cr{lwp3Vk(-_x~{<CS|a`?9I^4D=y1rLBu@pzxWqQ#qF^IDS&C>1zQTCgsvU^
+z@<+SV4F_*mq-~G6+sXx9%_l?EqONQ$0lzb8*&P+-xj8H6H*CW|zp3fz7`IHMK~vRu
+zgqv2Lz1;pn&JFGmzRc<7__zyu|Ls}4u}V9XPN}mi`-loWyxSrhE<6?ht$s`~V%w8J
+zVE)xAu11R_i$6?Fc7?;-Q%m54SX~S0v{NP(<i2JFRNc}!hWn=?m|htc-X1jc+0+m&
+ztlQtY>&-hBO#gzKffPea%2QT3DBhb%E)H(*?C?ss<YrOJHJM?plFM(w$=t-?<Y$Ys
+z@WSy6Pca;~@^l1g({t%S&ACy;hd-VY!y26Z-_(!vT19&B>gjiFR}37VZxF=(SnYk#
+z!HY+m$EthjPTg}X&i6_913m4kC0W~>u=^jW;YJu%3h+Ez$(D_;T&JA>IXYtU_lwbj
+z@ldHu#(?-SU0%tf&8tYH82<+!-u<O7Dh(CQodX_4o8G(<MR3m_DL1fSg+VYnGSqQM
+z^GatNKW(Cr#?nvdLujrJ)W(NRNYb!YKBw_-rsgUYDiS4zt0SM0lmaEGQUW4k;P>2r
+zqVH>{n30|bO{=}P+-{}`Bf85JTWLDiZN%yXdh*g&nYd@5RkLizWh+>~jJVLolyh`7
+zYJ7-0L_zOxO?Ae+&J?E;SigonGp$G-cJdYqtqPVU%S%pmly%larG|jNC@86&zLtZs
+zeHqwWBjg0~Z|vtysr~CAJ~;g;=zhsvNS!w79o#N=e($s=o>Noeyr-^b=J=$4DScIK
+zu~8$kG0uc_Pe&+FlD|4DVX7+%7|2d=qCi(Ov3L`06PJw_ZcoD+*l@Q_SExdSXFzDH
+zE#v(hQMo;wXXn=gAAex=XpW@hFiah4CPY=4(u@dQZRT$;x#cSs@b=OXb+nVYnuNB&
+z#VpyD93I0`jf}_V0lC;ris3iY!8*yZ!zP17G+1gizG&bY5Ma1hKbi(CDCcs=i){3y
+zkBV`BBD{d~8(o}c=eDY@R3JWTI=k`(4<WWq;X()V>BFG4k4@=A_21MD!-8+&QpPoY
+z2TVRrf7=>CM2lz}xz5IfmELJb@jWVoySmhtX8&`^E;J@g0nD-M8&}7coEzApzQvsh
+z>WYv|qqMzL#kY7_z+0;-q;-3R;ppY>AO@!#_^H}evV=scyVm@}skZ}CiB%yQTL?xT
+zsyVjdjk<nJn>xMmM#J~Ilt)u<q#dJ3(=pUkO>gDk?0Uil?U$t}?bq#6-)b5<_kv=~
+zHg5PmBCS>bZRXbWh1Yqad+brh{m#bYfjK7e7BD+?m?wcpJyG4Hv(}P6)dk#wt1oOM
+z%K?-RDn802iocZymoY?(ph^()aqZFCCqs2tByLG<AI9AYSj=yLE@Y|cry$)fEzPr#
+zQePV{QoVGj#t|tTCs0&C4m@icWt9fsU_I{X+lCyZXR#kb>(%r-hxs~#q`o_NWZ$(f
+zPq^M`;VXhRc2{%d3!0Rh-CB>hZm&)ckm_7d7mM1oyj#<pBL3ozzxUsv5B$NFQQZR6
+zS2~lU+ZQ}m^X<}ON>p-Uq%IS*ahzeV3zL(UeW*SOtkfP$&^KRJ$f2r+X?Jivs@t(S
+z(Q>m38#H~bPA{q&oZi(Ye;9tPW4*3FE8C0@dQlvx_Dt>7#RIz;lNqK7fWJlJix!95
+zCHdTn!ad4aPs|&Vk2=yaO(^V+vR80&D&pT0mE7OYn^RoM9&YjlW)fDERjD&N(Wuh;
+z51vEm3*!Ayaf1WBrfh!};ViXqLq`vz)<oUjM39RHozBeP*pk~0$guOzB;A1JhbEPu
+zYRVR5>9XJdo25pSZa6fBk-qyPcgL3M2^^WJ?~Rotmd2c8y|WR%w_0w+^2r%kiytsc
+z2^Vi(K{PpGK~}$y9Ue8zqY71NB3zX}NEedU-Tz4#Nf=arWLSdwN}ln}&)LA}PA!=8
+z1Kj`Q{BmorUi7@%AVnm;s}vmYn|j@_W2qW@JX18Z)LFfwOB6tDp|2nYbZtIwSOgC|
+z3_dmx1vIPI%Lxp4Pp6&L5uSygOALQ?Akb2xmz*X=I+nLC&|l#uv6(}#ID?4wQ#!Nw
+zMtVK)QF@FU2Kb<mceJ3l-q=uS|IzLuPUcW|$g0(APjhqn30S?6w|r;77<HJ*+wMf*
+ztRWxnUEC-6*1rwlobi+F(LBX|%1D?gg<;Nw^UrcZkD6hd3L673UCBe<4W;)Oi388s
+z(oaNQwkV@;2DH47b(Sx>HxX<18JpSfvl#usMeUd*txA`72NSObcS1^fbJ@=~oEF``
+zF!1_mZG-KK_6H&1pSkm;_ibSv1F(426Rv;Z;zaqB@{=tL)ux-1&VY;jY%D-3Z??Ij
+zA>qH+k5Z=qirG4RTh?FdFr9!Ir~laA4Ab^kil3pf2eLCx9BjJ{wHA!%A#j6h*69TM
+zjf2jPc=7EMIIyc*qOKLOwc@y+lYWE$QF50#T>|*JZ&WkO;;VU}P1T;V@3!A+X!{f9
+zVIIwG;-A<_!QI=nnHFM74OP+yhIoSw9kNoJdhgfVu*{3my>V9ckw+;;qma3Li{Mgy
+zvAK;#fkW5ZV@o5!-uJCRqq$lwkSrY@fkQEe*v&Q5Fx~Mdi1?AZS6AP!+dFt`aryFk
+zypitX1c0P5f#}<886{nU)a1>1pWh0l`R^Q4y9!Ue%e5v2o@2cL9cBuURb4&hMBjty
+zJU#Q93WlVWibV|vQg_)cz8&W0ewxcd>bE=dW~H|urToV}$xx|&!YZGY;$|OX1k7Si
+zgiH0ppuz_Q8$wM;K8(<zG-G7OGy-$s&@RwHv!@m&$V&1cmrA46e6vfi^4nH$(lhty
+zdR&7jc&&|g6HrY*4u8lHte!~vv(BG}tCnu~kE#R~{H!>66UF1XK{#=ExBEeWRsHA2
+zAU*4Qu;M{yhqIQstv3UIayioit!w$n@BgN1dVS%G)VGf3lN)r7DRvtnHCEQnENQGI
+zErINgxiOBc)4T`a_%HYCc%3d4L809v`7M^8VlK;Dq>LD)jJ*F#*>ICVwr<FhLjjt|
+z*y>YjY(Il{$K<CE+%Zk+7jO0ZTBJkH#s-5ohTqbT$UrCUts<(Y(E1w(N3w$N8`V2Z
+z|AvH)1nA>7TDFQYULL^Qh?=ocO1yi{6-ba8gZex~u*~`kyJSxtjhRyfRQKTH43zsQ
+z;Dfb+ZNf+#zGJW(_4{pHo7gRa8ZLK_A7YxQdT8ZYCw)c}l7mgF!|VUf|Lm!R{5EHM
+zb5&J1&@Pj_+nt)XBOB)?KCJjEEI99o%5Nh@@od4|!zzdz5}S}M%9}vR0|&*DQ?!`R
+zCtaN9y&7l-&u=#Bmg(<)+i%h}Z>5;n!H;z^@;6Pw!o~|9Vj;I$_@s*jsFT<yNT$+R
+zfbhbF`samUr)viZXJyfmG4mH1y6#ULlNfh`8Q+@-&6%Anh0IcOF_0a)JnAv*D*11H
+zb(hHBW5dxe@iRx0!<S*I6-)u<g0&80XPtQ10*u(5^WqDsx8`Pw*T~^NsP|!&vv~^2
+zQXTNKjzhNzx26qJ&+>rgo|>DZxI!->a)bL}cAV9mC4wcAlv~q}YesxM%^$)>xY++_
+z?ct<jj9&AHf?cd|kTl~_&5N4<d_{ccXY-npuJs(oi3R#@jVd5|_zZ-K)Dr9s1Wfr6
+z_}TrY;(LuNUAjDqoSUATXg-RteG5kmvE%`wf$A(U7yDj}KZVEYq!nlN8E@ksYrRGK
+z(=J^!+e#460n^5i@iBOR6VSdtw{rh5H8^ihL()_iF&X@3i`(iLSEx@~gxhVZR(pUB
+zA}N@2=Fd#2v%@6cXn+L5&RS~0iG$9S{Ea>qjA*OiGzFFSKKfGl86$+4+FXlu)3g_~
+zSG2!jFVjMr2cH~p?ba>El!XWMqSrgpvzfEqn&DdM+POgr>qYJ6YK+qKY*N!tE?2%n
+z)n17clG?EcE37xnEwYE~d*u%#)n4>*zkRPhm2`b}RC(H;zE>YdG?~d9!by&U&y^-l
+z_0+w3h@ada>cy$MT=vf;7Sdc)0^x=eYZt8PXzda*P9J{u&odH1d8fA8BmIU87ysNv
+zNCO7<Z)f#MMT!+AFulQsa`BPAwbZ9Ed(id73Y*<eH@Nl|mzL9_fQ7G!tz)h5(e(;q
+zK>S#Twveo{0-kzRfdZYg-40qnx=wm^GH3es<^On33E)wqZ{XBr{9~blii2T-YaJSk
+z!x?G3aI%Bc#)e!anD4+%MroKcR2Eq1a-(_d(z%8J$DMh2jsNDGq0Glvk2;{>B+P<x
+z$-#T;jYfi@^)+un)^R3U3}5do-eMe)&R@-UM1}UK(GjY{0U$or*f!>}1asjjBKO43
+z`nB}XP3b|!1(n4IR_UN&5O!~{af<}ePk!hSZ;I=ZnO&*~d}=!dU_P1}$5pSaF*PNz
+z^uR>vQXL^~iN!<r3JF^@dqU=BVfc4CP+c?1B^{ZC4yC|{4!h3qGdhg@ON(7Sll@QX
+ztrvH4N;C%DPbvG#MBv@+K7by@+)L{Vb_{X5bb(xY8r6H|BxI*!I&5rhaFE>GD$T;D
+zzi!Zsf{pFH>v7b6;!}<b4alC*vK{FL7Tps|`@3A!R#C(|fkH8zCrvB7zFGZek_eNZ
+zcqs9;g6bdOF*V{fl41P7R2>GX)CLY`O)_7fd4_H0u-#Uh()NzM)EDkzwLGAjy4;%H
+zMmRmC!5dBimOj9b1Ugv<+kE_s<C)4c>-Lw@i}bS}<BWdtY=?~&wR2Ie$|-D1x$*wQ
+zl&Yxj45Q8^VdD8?%l#)0JgM$ujpyu`-ec?OZ#;>{=?{?+>-EkF(>5=wx(Ox_=2xho
+zj=3ad`By)W#4T@5#I$^!e6lzK6=S`NihdxbFuhA(Li0;!LtV1h9*+>tF4`pS5Gu|3
+zb^J^;Ij6a^*6MhmjbS!CZa9w&4;+K&x0D`jmhr7(_8%6KeXEMd)fE(0SGE}T{?p3r
+z(F<<i0kk#s6PqjJa+KW^vCQ|4Cwk_er&zYS%j6cg*n+t<iK8pw8*Na##goGAsTl7A
+zu=+?E=MRH;E^v^G9Q;|%RbaY4>*2Ovs;+NA#iQj6&Cc|`3a6P~&(A*5V{We>&xhAn
+zgLU_=F6<dbcHAYOj<*!`7i8dUd%}8+JqL{NTrhu=yc;3HqM57T%AYv~78h}ZN0JVq
+z-40_0O96THMe^#rVG9FiHey~Qh|$ly4eQ-Jz80=2{nCk91DoJ(9E&Mc3mr)9Jy)2-
+zM}L6Ln_2SY<Z_7~x?I#9)aE)8Gd0mw8rC&Xy}rR}Y?90g8<?GHq;uk~Z3Ym#)s^)~
+zeSmH$YuDXBNm>YAr#C;TvIPSt)x$Z`{xKqK%Tn&KP|QFP#OKve$-NdCON5YU2ahEJ
+zZj-!L406Gvt5$jtCxgFAIJz7qLfTwvt0(+cs)2(PxZHV~gWnn!cU=Kj2N{ME^N3uy
+zRTGx548-wP*37xD2Q7uGCl3gDYo}rcK{kKtjw`-zb#7V4=jBN_^&Hw<N9?YeQFOf)
+z+hq<uA04;2Csd<#Jl#hXRq@(ZcWRDmZ|Lu&+dZL3gYZ!cqvbW#H`D8?9nlh6$wA|y
+z5s`>USG+RKn{KmvuBSb`K-2001X3$36Z%~3!#?j`C|60b@>1G5P!nDlpFjL<<88w@
+z-Jks+w(O*_EWSAjMl4Q(c#Hs5mwU1r8nPg+X_TvS+P<S4dyd7usDA&TQOMYg?pWg;
+z($Y><R<-4P5Im_GPJMBwBbg3HHB3!yg&QGV<ty-+_Zz<kcUD}_A<KDwKD@q9idh{>
+zp6VUj;_+nHWtRtB{Q6P?S5){m$q2woSHylOwV-&})tVl>s7-x5Yn?kH&0<{b9ophX
+z1^5*nEE49;W|e`hUjj~HPb8Qbq!K`ts|TvI9`8y1A{8JmJa^#Z-*Eb9&m?fG`beJ#
+zgr<XDxq9GF<xjYWUv3>v@_i{eSUE!8fuTFxDR3Qq{8fU_G~>%gvR8eTlF7s;VjN_^
+z=9(XZ0Y4@hK9^-#w?+6J<C^g$z7x~+wBP>q5!*B5ybMVDX2ZI})NudWN~Bi+O07rl
+zXcvT91~8&`R%|`zGk4UTCmZT<qUX7*R3)DEaTU#=&s8Nk_?WxA`k;wT8ltZ4A?n1r
+zao2EkpF!1U=qCfT*oKr{vRcl;#kxao$;tCiJAxHEMOS;Zl{?SeLnfMo_{mi-Ty+Bz
+zhsjs@pQ4R%_vUM-2E~+36~Y{L19}H_(Y!7itvAaknUcGy*sFY<0)83fQf;5FQC;N<
+zKk0}Gt*M<a6Ry7~>U(L`gt)tjY3x~ICI$IJYogX0&-gMOaqtHv$H0k|L%RYe_SF`O
+z&JH{|WbzJ4pjLO9$^OVI*s8k>6e`If;=g4v-RWPB(zIDkSPfa<TG<{M=}M@6&CQJy
+z?3CJlNLmgCYQ-tfxe){)<>O&GRt>Usz-hUX(CnnB|G;joz<ZPCir!3nSh-)`%Beu^
+zF6O~LZ)&H)^cBLo=XXS@vk37mYw?F#mK(s{mgJpA>77qAT$sS;9cgIM_gFtUwZAB!
+zYscMA0#GW)Hx&lXwVPugYhthXzwB-rV1|BBo^?VN#Ks-YT3j0tD&}mUgqTtk8(F+I
+zk#DCoUU4P6NP4m`hr+pV2jCq@i^!y1<0fys`J;m;0l5m{MGE0dB4v<AgpD4xHq*vK
+ze+Id-_;}0e@X_b|CqHc+ahR65bKGMJWq?%C#ESg7P(S^6s^qcdF14_a&!;j+Wwb9Q
+zOs^Ln*I%A~zy4*<A)7p;qF&_EF49~|breD%>9dk$-5J)V<Mg8NhpaD9fbvtchv}Qt
+za<Po}A-9OECMv%48+swK7}9<o+*vpn(*-fBpXd3l)Ku{@gBiAHjY&#h{io>8>5+{K
+z*f;AZcRBp$@*wG}Ifr5Jh8B51{RZN_CYL@Th|zhRzhvbG^F}>m4Wgr;-(J3X!56-3
+z(OI;W)cKO|Jz)8-i$cqj#D2#8Pn%-)=P=EI7MiNRea1w}cDD1e+4FfHvtTYs{fVtV
+zO9+z)VW8*NchT$CyLB7h|04Z!ZW{APR)%H`@8X{fG+g&Qh+a=0+`6g44OF6i3wPIY
+zKz<!A)?z|NJcrp9Yd$p`qPlh&?2!Y<B!mm+ipG)wE{+01IXv}@$wWNqCug|q{@HGj
+z`LqkZ)}UBp=bG;Fsxl+%Ot3!{Vg~P0*6!RM5BPU6BxWUdK;gV#L;WXEBmS^%1G#8j
+z3Ir$s&TPIs=lco7H@#o???#}oSR()U&~DP@-3jkDHQcLLQi}I7$c{qk<vALS*mhL`
+zX06zMDtWc=6c%^2A=VPER(lYrG4KT9fObsL==dWQNV*QKV+5wUOmqr0DhBa!s2X{N
+zmEWyAxNF0t+5ON|`P)|6sL-L-@_GcC8k<;RD@HS;S$8Ft-IFxIYb81qj0chm0t8yP
+z1mS|g&%YP|GQw>cgx$9deHQb5b98`a-xXd^iIK}F!y#*iJml%P+xab^64>Gi&^v!>
+zb9(0HsMQKC(a-o4tZHSN_f_FH`lAE4k277-r-eGrrS4kbE?n{n{p7}>xCB4K)4$j+
+z>~2f-j`^2q4T&~v06Qa$LBSnqIzF~F6ZAdVb#P3Zl=au`-hfb#*>j)D*p$tDg*kBJ
+z9XsKkbZE9NFL`R=)PS3B@$%NRWVq1ItI7KkOAjadd2`U+iM)SqakUU$03XM^<jq^7
+z{_!0J&U40u6%d)m#wU{a%I4xvWQK-Lotd!z<kzH=BmZ*9u&1NnoNogM;7T3kcMSn6
+zzJ0fFv$C3X3a46h$25X^RhzPt7Fg<a$$yM9bL^8?=SAiK*y7UG$rd5J?O97tacagT
+zY#t$<Q%=m8jl0CE=iFlf^|rm+jl#{&F4aC7uIRb;P0wLocUj$`Kq?@=?J{xmwfT#1
+zzmG94le13S@u;aR3_XdO=x`;h5FG0)_E6}D=hqiFT-6HM@r>qH;$ip;_<vgSh5zY{
+zwMf)kzpD+JdyKxVPdqA|$j^oxEXb+K`9=4`4zZ$PrFSK6v_ptk>)4yL<1;%KC_}F(
+zkmpm1^CE`3=7KF3qwY#clU$;A4n2!^dVfFTB-9Gw*6(V-{Lb#5_KaMtTzQ(lFZt<e
+zL3xM47hi;auv-jo&-Fo}$JissSkRN_cj7l|Nt1j;Q}wLCpv->GffxH<J}C_b>B26v
+zzUZn)-Sy@0<(dt8tBXIKPNWEC$TU=?7a-?nGy1Q%ij9k;JY<$^&PxoV^u!)^Ceqdf
+z5CJCv)re%&b4;QtZuKk)h|q1G9`3yC8}QN_%r&d@R#NV>>aF`J1l%Rk!3)HG=q>jx
+zbNR@C<DKVM<gt>S+k1<=ry$(U_x1LVfIBcuc0ZaA!tHl+l<+jETO)Jc+eWw3LyNs$
+zrCp@n2kTf%W}@b{@xNm5<+4qn61(uw{FUDY#9Hq?ibTBF7CfL88?2i{;zapua+ZPr
+zes8$rTP67pk3VrB?H;ZKIHBEk&B%s7lfI(8a4;MkO66yB);#He^{z*292>Y8yc<D|
+z-IEp>u<-4iF|Z%s-P^dc0T!AJ-lkRdy&<o8IXfg8E}<QI`~8AYRtXupSJt3q_Zbj`
+zd7aP4jsHBP3>O6}>2X!}7X)2rIO;uXdG>k(iH5)uJ97I6sfQ&dA-*qqUvpzFi=Avt
+z)ZbHkM6@9#?b3bk4x|U!d<}!Y>P}u$zBs<V%IlB0-{UdaTmMRL6p_S{BIo5hizuav
+z`|d4A&3p><=>gaEk8)M_b}NY7Gse&#m;hCf%#+E0mlO5VYL2hND;*cy{8aZ+UGzrc
+zk1vdssS0RrZjK@AJPkgL+~6{>oAe$IM?98Rx+ekwLx)_&eorB7L2isTT`SeYyi3|^
+z8+ge^%aL<|K5a+|15dSiQ{4fMchfUR&V3})3*K3~#dokr!d}&<a&6P`BH<TZuq4d0
+zVmSRrXP`wo`yh5>a&>wtckE59=8>-Q%eBJgeqSwQMtru(loN<XxuPMb{ay7>$@!l;
+z|3RS(`sfzYq09=qXkXWM*B|#=FXIrw)2IK{e8nkib<=b^dLSS(&D`;gP9sm>W}w7q
+z#zE&~#NdI^AhmIFHYPCP10w6Rg;c+>)@@KC%g_r~NUMx|rb9PA5g{;s)$r{(`e%0`
+zFWwzCyR~Zc9PP%!Si6ec+V;P5T2=(vkBNQHy|tw_Pao<LuF5Seis*M6PO?ZD?!p}r
+z_MuADmd(A_ajIDrB2o?IvykzB4LP<e+p<>_Ej>TS29JwV=?8}Wi{|;)c@8%Nh0+>m
+zFB89voD9_}penx9dY*B-bC!WP*|7b#;fitpeqpQnju7nj1Kp7wl^R<_)jrxlS3$^q
+z$GcWqg1{Ch+SNOL?bPC}fn~(#&{kFL^`|q#o_})q-KscmGurkxfi@35WtScb{cUQR
+zN`Fo`%L<F72<>t(KktPbY83<6Y^iwTK<r+}fg$B8?KfSkHHO_)8>H5AsrdHBf^D4Y
+z?M5!N`nN5U4^YkSz=4vy?1A|yU==<6qc%O=gTOS#P{VT*d<*?_8J(wTf}!(iH~5?l
+z<HEl=s+6snjz<<RSM6&zI4%v2&77$AVDh%jek3o7pI8iSqp`@JzZmp)fsr8%x)D@|
+zaF^@MEZThxU;{hYu}tzOW#wW`)3Xb2gN%oQvWp>DQE-Yfw#@eigCM2I=PhD?bJ{j9
+zLhiF&-1orqNMDs%6Iz2#&rfh_*Mr0K=qTvg+gezP@8{m1vne}~QXaqO^ZVZo2`Y6E
+zXw)u%>hS=*?>@OJPfj>dg!ODQ5_5n=9r{gdA9K{^h^e*Znf{D`OL|i}^JGk^U;`QC
+z*MA;<4)piIPM<jMh|(QQ1KUCYB!4cQc5OWX;_CDWF7+RpA>~jS>mG}A%`R@BDZM}7
+z!A2^cS&7Y7oq2SfN4;Zq>VSNdQihvDG<{lo@A7*XEG4!2Qdp^NQ>XEt>_@+a())TH
+z_19_k{*1<*oPt*vz_{AgpC3>)Jxg5Y<0x;M47v*n%xe)r1;;b}N_!-ZtU`C~7SH$>
+zm7i6hSMwhar49mXp0$o&M&0KVZgfjT0`k(si>DBeB+drPHa|(&XN_Vr!%2Z;4<B1x
+z{gcgmMi;f6j_dB2mA25|o4<oU$MX2}H@?*Q*sv^>*cV{BCZp6i@QFRQlZ7?MH3<F`
+zI9_zP_>T`@8h%I2ukKub7m0WHb{-v&?fwSqaE@~8+E?!gw#e$7VczeZ&p5g7BnNpw
+z@62_chc!qne3zYytdm<3Q4!gzd8cF21{U>mKe0brn5EaPo_`P0NGzEDB_CTyb(k5u
+zKVrST65pgN-jR%nOy|a6cL})lPcGoAfB~34U*k>GleuS-z@*Te-hfO1WwIl)LGgNI
+zh<Z+B;8&+#<NO0Z%|pIB+$!Y7<U~ml2@f-#!bzvvz`e<&PEAt+v<ZEBDLN3OHr!+t
+z-(N_}lc-`(Y)O7;sEsxIsO}9{1D-~^M+Ow;fuQ#@4D{y2IUN{<3jI6#_9IlMi{PVt
+zItjnynlbhA0;}16d(Imd&A;+|tzNc>_pI=4;K}Yu&bK1%iM7p6|2&g6U;iMuBjo=N
+zqBudvDWexlmYCOTO@8VM+}S)m8}V_2{{x2dCMCX`R6O%7m2bcnfaN`|?J{i_$2V|{
+zkUw+e-U<#ktUCjU6o9s0G)n_#B}M;e7KTKRDh-mjsrpXhp+Bhuzd?vTTAb-1)5;DP
+zr$ESajT|*^JOOlycIzngmpuoLBL~wxOyM!A@L)-v1_k=PH||;?A000`9@)9w9)|R4
+z`o_Mw)M3a;J|*fe>wao6NoUw(R09q=rLhn`744%Yu_zw)`7rsrPr*%g`_g{3t9Ro=
+zs8N$znM~tE=nAkom&XYRCTWm}G{@ZVbMCdp+CF5+H%*Kvx={Q6iu#Ki;rCYluANK6
+zO6<U6t2#t;4QnQ%?pof_jH9?#afyGOuIR@>ZmON=0)-c<yqne&t2CjkKG{_?qZ@~n
+zne=O83z>z-<EPST!Nc}Z0G$!08!vf5hnsRj%25_LZ(}UAQO2L)VA;K=wfAI(4E&IA
+zBnXttc3ayGhz=szpwvejPf?8-wd(Jh2bwaiu-tqsh{J^?hyDmXNijYa5RP(swQ^Sa
+zVBl2tKS+{7smuGbe!oK;D%rO4(@$bNqXT|Vg$!r6lTU)4Ka0H(9e^eX+P&e~t{!Qq
+z7!$~-Kk6T*6=H_+QoGay(@AKB;2lrA5)~DprvgHV!M=~{`?*hH*jjw7b)tgbb-VdN
+zBT<;+A!thdPX8A@mv;`eI->Vd4Lrq%K|WKP%l7Kq=JW#_ki&4v1rN#&`89vMs(MW$
+zGypcO1>$W{X?TT9C+|dSJ%k3unNl9_C#nY3urZ1u<LUk}YYs!K1Ilk?r_v66Zc>UG
+z4j`*x7@>ASCPfufpn(1*)+2IO9cn@QgjN<<WnlD9%I&!x%dIF|5w);w2WSQ+gzuQH
+z>idw_E)QZ7-)GBaq=eeNxfH*@S;9Qm`qor8A+#{VFr0ZL(Osy38m=$+=n0b=JD`Tt
+zzq(G{)442dP&eyeGc@uajII&@&9R=!)ZFliXPUvf%2&q6l6Cy7dbLeD_AKXnrr6$Z
+zQQD|giQ1!p-D2;tBdWOSYF*f`K(Z6Fx@+;we1&b*z)rzP*P}=Z$gBiWuov2*)NJSc
+zL(<F4Ki(|U6Wrf*E9lB^mCxA^R%R5i%Rax1wK6oteS<F>Fm+!5M#UGQFXo-{2x>RR
+zJdEN@BX-$bd+P6SusBnvbz~N0B|h}ln;-`MC!4LnFwl-TME~id5|RV2VuuSfG0@)?
+z`#<;^p3zdPKQ@?`vL`jAnKi0|;2)~5-<K+e*>$XW7x6k0{ja~^Zwz(V${gHxJaWz)
+z!As%?;0Hc8(%%t3w4y7Wf3sY?Htr)a&jR72KC;xg@k8j;Dl8CKeZ!>)@+@1G`|v)*
+zdeXn+XpYQtNdpF;`6V*$9X9(c4A+_cU;WhrQcdafCx28SwU6rU?^AP69VyZ#%mtE_
+zb8u@V!9ZO1a}?>EgaQ3)deCx%xXde`-VKg(^D|tCD_eln+0t7OPvL)_Iv~xPFUCek
+zqj-XZ5BO%eL)KfgLKR1MpeJ{nA`a>f?7TQ$MEI1pF#lAi#aKQM%If`zyP%Cp;<x4%
+z4O1<;_MfHN#LF@L)}BFEJdv|#6d~HPw{@|otVHXAW|DO=<@@C#lMmtlN8VdUwGqT^
+zqouS!p+JEGrC3{v6?d1G0>#}SSn(o76SR1XQ?$4gx8fGuHG$xg-~>%@4Sc+E&v(x~
+z@44sxd(Zbro-=u7c4ucdGrQTD-}CtX@-COT3>(aS0nrt3D%bs|Xd5=&7awA+--UQy
+z7Reyz_$K~Bp45~G{O+LX4===j^1ep{QNMtocU&{juEg@}AnkM8CG15d)@`J3?_HKm
+zoqV3#tZR(rPme47g7~Ee)!Gj_@*zH+#S38EQMX+#aH;x98+ryr{J5wGZkrf4dK3M*
+z4+_9u*iEc=5ubhS@IuZAuhCjJWYK3g=|HB^;r>?fRFZSp@h)d^do5FZceGb=^cUM0
+zIiA$FK?zZDqnds4KiLn;n9pvP{fvDWOMD`VakU;My<cuJ=7H<O+V4kn0s13)Veewy
+zQE%PG*<2xnvv?^C`@A8TYx0SsFXOyXpPRB=@>f*tt^z18MFuKgM~MiGm~0J_UMbmd
+zOA73yHcs}A>!}2ck_Pw9%$kcoj17c66F(7LBL^LL5W^7K-bU>vl83)hBS0HUNAooi
+z?D2)3jpp!>g@QunrYYrfSd0LQO~3R~a?+cjHjjtMa*uNgf!L)}U1K}j0qbWMeMsee
+zsvJ+bQ+8k9U#AyxXoPB9ky!WSFzPTF@2_}t_m8vp?WBLv5;J8BHCmpYh6Q#hK!HlJ
+zyiHz!b9jpzE~c-6d6ZF>hWwH}-8Kt)^8Ue>hv|J{>rMTBibE-JhXf0Ylj~PFbtSQM
+zjWblbF^ilFGkT_IyCsBu)xgsW1ykGKCpzJNnsgWL#P%I?PZC|>v)ff#^{NZ8&a$Xn
+zPi#GlA8bpo>tm~-^zDRVY(>zr4Ob)~MP!(x_LXAms-CyV(&Dc-aEFB~vW|+z`U6Ya
+z*lQ3ynBC{QF5N@iz|46&4l1KcLbk-}Aj12KEMn;{M)t5qOD*8?$&nzPd1j<0X3r^h
+zclCShz=4Tv%k+F!sP)0fASx``{Qjdp=77@!9_6Pdp<6XmUBqb!^*Z;9+IFBKK&dv4
+zr{At~R1jp0VeBj=uC{czBH>R!4x`ob&Gh=18c7>`{l|B^{u`TIBg<>cgC`EgZxP04
+zH5o?hfR*l)&2K*kOi6TYB8r9Xljmy8K~vM|_cb#zvUf)5A(Uw+HCByP?~Kb1&N0_k
+z6VHn70{}5uMtF~jnE7whP>T*Shx1*9;af94f%mqeH=`5-i+@w{&o7$k1&*v75q*rJ
+z&NCuXG4)^DF5o&t^W$MYK{NS^nx1h_5C1sV*DX3MUjf3d^}UYc_0(YhHqzE~36*yH
+zmdp3Z2E@qgRgTlogfDU2@&pd)oJiB`qyoGszJV218_a6!3FqRN51fL>!k8vxB=0wo
+z5~7YfO9s~iGXSKNdv-%Wa{&OcTbL~FX5^hZs<bRsa4-RNUN%=V=}K@g+A>dS{-*%k
+zwRA8_zFK6O&|6E}Gxl&Mq_33qt}Au$@>A2sEU@^_>3KMWR$Z85I@{p5@Ru|Q^D<n}
+zEs=`F-nS9MY6+*+1-li`e%i`=t>ylD4WY@hj>TQ;Wrnj@p}s?Cwuc1A@(32*cE(Fv
+z9mryw(5%bI?C>4e9+l9jRn)9U-R_NBziGChOVl1zq`}+JYbd3Ib#vU9t%aas#F0R7
+z#v~*;MrA17)#)l%SNH`2A8^lsm~mXCL%P`*ZpG)_NWo^3C5v%y{1d|t(7I>9-Ke_n
+zgA2&E$f07T&CH3GTcK1*&qBx4b4TpLS=&^AQ*cR}cyb@cv!l=`#Wp<~Affka1xss2
+zlUZ*6n?{G%pP6T<8eR8pN*1b-a&E{eV;k%Cl_-+mX&&~|YqynXdVZ!p54PXSXVMsG
+zGk15Lgv5Oj8vs<8fn-Rjw!N=&iJK9+_`!_XWt_0t$?uU2P?#A5)E)3cF7lnV!WF0$
+zh()}hS+{RO&gf^(Mfx~7ASZoBUOcFPoqeBG&C@oQn>s&bsGPto38$E81pMA{75gBF
+zgubEuWt&5uAuM<y<*V}_zXYEBZyAlV3D<GU!X0izy#6KEJ^nb=J{`4?Hy>^=Q@M{I
+z_sk7_Z@u_mEgHfnq;D!_=HCo&C3n2%&vs-6@DMA7f1OXCsNJp0KIcCv;Gn8Y@v^%3
+z>&RxgS+oJ$>Ub}>0mSWEO8FAJQF&>#;Q4y?73=HRy9-8<9#tA|<DODVU<hTv6P0P7
+zpS`)HzSKDgR!TNsg>Se<Hna5J3gdbk9q${0L}pdP?g<x-oA-(SaPd8JZW0CCtc%cd
+zKHBbkWe~mX+4Lqu3|lzqt?!`7p|n=RD^h5K5L~?RAgp1nV@mG!ogZbR{K>7jvjUy-
+zm>T*G<s2~10Uni=`GyA6F5aa-e|a8>j1^5MVzAW`Y<Kk2K;rh)po!ARn-65Wusk5_
+z-4@NbM|l}ak+5@~)?L^38Q)*C3|?x?W)I>lEZY=#Cu!7%$IcthNzeUkPh;L@l@&x+
+zZPX}Q)y8<g^#?;xlz5m4p7ycUARH(l?svXkgTB}D7azMo>7N&50$>&|+_M=kT#s#d
+z#CQ4&{bVCAN<$X{M~9hZ6KABv4BP59-5_A2r~X(0k_+WIT?{rVQL3%Gx(jyp4WGKQ
+z-#yjTLvi#LwS9z(yevb}biYO_#{5y?icqB;7@<Zdz}x#T>9Q1hz3=;wpj9$AQ-`Q{
+z(J*0EfVT#)&vkG7Eqsw&pJr)kir*!FYs?g=aj3*pfg!j><cwqU$GXCFMX0-ZNP!ye
+zQ~t5cBX6qEG`F~p7jllx2^S>IQP*Nm@28gwt^s-ViIzRzQBK%dxTq+&Rxe24;|atq
+zEpNLy5kQIJ`8(PxipoEmD)$Fk7@ah4J4t$k?+^FyaN(=ufRnd5jZGs|6elO_xbV3~
+z-JFQqSlr~+GhN#sZ0a>Bm0|^N_FH<5&YPLRbCYl<OX>z?qs31v`i8j&s!?XN@ixYu
+zpj6Sz-55*A6A??<^mJR|*_>b<aI^U&Ureq3N`K0*q)d_s7Ur|JT&w0r7mj1CJ8!8<
+zC3B^Z#unf_3DsA;|7-p5?N|WdDsPl+Bb;+~J<dx^e>-~(ntdZb=s#N`mhZ0O&I0b@
+zE#S-Gn_HzN=hXD{aQGC)<-?8o&GmO#o<U=NN~xugJ8`a=d*k#vSOVO)IuD<xvvR(U
+zEV_C=wksYc*cDvsM7`!=+kt&&km-I|fj8@qds{2Ii#B>ui6OeQVML-o{x^q2r<43A
+z*SCib{4Z`{51syB<@$EeSpUuKpsD}6+%B5>zjGg4<o}Cn_5cQiIQ&O#oV5P5-Sr5p
+zd-fut4vN(U)Q^B<neYplrgO2CY%8P-{eNUiUA!h_@cFlNBF6Ia47YM|US!4Pl@(_@
+za~{19kRFfk&SPBK4J<rraPYjjk@>K9xQ8<;ct<7is%@re(B-K~R^6L*5t4C<CJq6W
+zhjrV;&$YaGe&C1=bN5GZhimJm>rMa67|m7@(emdOyxCca(-6odQ){OPKO(n7rBg=f
+z)%=wH+442h&TTcakB~@Kejp5(@)D)`#n#^bxbx|_aGHmD#TCr_5rm#&oNFxmJg2b^
+zYLsZ2=*7m}dXdB!<^?^qOE@XoOi>;hIXgdCywH7K4A(QwCXlAOpxoT{_A!;hPy%=S
+zWIj3};F7l}0dM&>ITU--?=8K{qqeU(jqj`Kgq^+p52c+^q+jinxrRX8#9ak_A_>Rf
+z3)4(7&~f5zc%+h&QY{^okYzvDi^TOzZGCRPUH<D6Fo-WABB1N_Y6VnGq~i^W@(4~5
+zaA9f^Qn+Club2u_xLXG)OD&7Fy{`fqj%%L@PThP_J>rPncv;+3QTs<**u#Fj&KQLe
+z=_5YA;nMyX+Ba6;<~?a3(6VTB`2}#42+lCxlIl0o)HlBFw7gfddV5h;B?l`~V>?UU
+zQXAV_&rH-(SDzdh0fPGaLi-ruL!o_eaE5{wm@zg9U3RUTp%<dr#t4hII<h>{Q?r&#
+zARxfUr?(0UkL#OG&{@g9D$oLl!jvKlQ@l@#u&@=6BU~fg9>ST8mDZ}-Gpk({l}-vN
+zl1OFTIb-$bl~*tFEdHLU4zaNutB$dm2lSg}(qrPJ2v^c1OZYon(i)3jyan|QY6=V)
+z3D1{;Zl{SK^u|x~@+`huY-+EKfgX{6rG+Z5*wH&X0cwS++%*xGWs&(-<lE#MiCa>?
+zi(I)_$Nm_GC?=Q6iK{<;|H1LBppFV(I#R*bMVFsTr|Wl~_;d(`y4>*h2_O<hTE}s>
+zEB`925f@+S7_3F$7C1v{d0m%*OUE+q^PWC#>?|*weh2&IFzdnkQ})6wO1SAUfgM3d
+zE-7E$A2qfNPY>0hzqh_?Gz-SvEy_dbfgeWy$y&}fM!i6Yf79M0IHu1KOj4n8z4%$p
+zfYSV#|JxO5G>F})#>K*MRJgUJG9Cz76uXE3Mz4IJMD@VpVH*RfKLe2rb-p=`|9-al
+zj9?@Jy1vDE@IS&spzb6u?-xvM>r$NGJhgv;l}Y~XT0d@YonsvI68$mM?a_|K^8(4y
+z-|qN78D#*uigYd}IC*mBZ;%H)^3Qc%g@46wRdnOgUUOX6{GBX^c!qCn8T|QKZHvzm
+zbb?9-Hpwxi{yDUyU^H*7Tj8^IsKgAxyRSrQsP)XWlhlhq@t9umbC7Q$9#3%4ZOK&u
+zJP2$@?0Ts(<7azDA3>KO;5~}I3G-%F8De!>rlnBPI8a|VzR1dZ$q2`#qn`V195=Um
+z->n%#Wn|4b$gW8A$K>eL4iNcbGx4*O%17zI$7%r9FG9aY1s=VI(~Zh6rm?1X%by0H
+z;VZLeK0f_({>A@$ZVr85MI`i@P8UdPf_B%@_512nwsNRQ@EG4z1}{_$G+8(K7<E7v
+zPB_*gVWRfo9L-bF&Ah4Hnn7h@?8AjJacveL{$BZ@2%9fz+F9u`**mE~{3tDf4xPLu
+z{-``%oHj(U9UG%TE!SBT*eiX$q0Rr~eM&Od<l$?{uQ{Loz+un);si+(mc*x@1Y0_O
+zU=8UmoEj~ku#*W>rEx>0zO`eJJ6(P05*lApjZgK({XO~atf<K~w7l*um8gN+Lzg;c
+zlK6YgVPojOV>!0USP&{J`y7{wV=%fufM34)@ivR);IfyM0pqLl76td^N`<E&5m+H5
+z;VH#Siqe{oyHD|sD3o7{ZmRhHYjW|P=mk?<6(EC+pNG>t*STCHL}7s2xM5O>kfS-V
+z3(BJ~<yI*ZuCpDAQ@Yzv1{<<klxOeiWV=0Rp!4F#ET6g*ruhM1{)A0*pw9emOt}1{
+zd|&^gc8rMe?s|82a9l!@+!uRxL^M07`^f%8|Lux4UN6(M8U*yds;WPK=4a18-%P1u
+z9Hx*Rn#UAruk}=hGksgv;s)s@viP{2%~m^GaVZGdsf4XpP6K6d?Qfr6befO;k}P@!
+zn>f{sI}93lG^6korX(zDFIqnG^=XkR7pu<KvVZC%S}z_6y!^=Y-qrm%Np2V2)`xei
+zWBt;Th)$UgPOgf4I(PHa|0cI(2R5Yp{>>rWiYQGS+DuQR@9G>B3twGQ>8aK9TfzT6
+zmV?Gunlqcg#4ge%Gk%BvBr9-S^)yWOyPb0}%Cnr&{Yr;bpe4+Jr2&peV9nx;n&^R@
+zD6JbsM{d<^M>wqV?Uhd!T3PA4t8^K_ES`Q-_ln_WBV4tB<Xibn-7|#m;si!>>Eu^D
+zIT{KG{#I6(M%lQ{SMrGAqejpjd`KkKUcku+aTR*hb^%LSxS6EV13G_n;1Pe&9*b^}
+z&><sV75;$@Q>;?=y{`)|B$pJ8t~1YhM|7!_sf|Z7lqp%y!gYbq{<^Yd_k+M~JmHpD
+z)Hs|G&%Ur?%*ytiQbcaC`d)n`l+@K2X3%T|`IxOhuH#KxjD7usCg~qY&M1EINq`cs
+zlQCgw&_a>L@Y!`+8-aDF(W9ofOEFv=Oh4g_ZCo6wf&TIHemS#`Qw5guJKt3~%Q+){
+z1X1Z`x=jynRBs7C68xpOh_Gg1r}=#OYHU+^--LVlpLM#?(JBRM8UrqohTDY}gDUf?
+zk<L1eM&L$JcnqB=6Pu$uMcTf~*oT*uxH+71ddB8;QEs!#4|*=Im#yn`k9a2!74K0;
+zOuO4FBwobLwb97Z!!LZN4U0|>!9mOP{m_YgR10;*c#_^0*8!XM0edRv!6rZJs%?`v
+zfsQakG4nfp_tw-=Vzi%qOq5%u0J;Vg>RUEJx>cfCq%EWJ`ErCS?W^(#n_ps&F@(<>
+zzUFJfJ0xjc;X1*j@{7=N6m1@s)uK<N>k>gfbwZ2GnGk1wZPw%gXAH9-I#Q8P8Z6pi
+zx$fkRJc(2!h-54e0h1cI?v<>4fT~R$@cy(=R<c$CVkd`PzIoQEU`fjRL8tD~5@Rvd
+z&I-d%ZaYOM$q1gp$Lj`{e_6GrYt1HKMm_40CUE_7i%;MxQXC!h8!X-~m0DC|b$ME{
+z5f<9dihq&gpKQBT{RNx3=uHu@bVI<vs^3`zrXx|b*Th(0mX+G!zoo3XY_2?_w<5q~
+zbVQe4cpb{G1Qf4<d<(C8*g~8qoGN4c`Pc|)GID*$H{cP5BdWf%_DuV0ni@`yuZ~(-
+z{EGIpah$1eN#avBcnX>=tqUBHYTaV!UhGLKUTOg=8qN^5!?*Drws`U=!;+8?@{Y9;
+z*|qj=ODE4P_1-MT5JEj13;9iQ%jnqw<=ZR@FK0YS)zsH49p1jpFYEJG@r9nNcKjy%
+zm2LJRBP0DJHLKAOOs4AXt@W?=wl@|WB>uGg_dwx?_cHo{(~w@vF7XD5syFvoy*~U!
+zKMC2!eWbfWzRx+7(_62<>(3PROFPaDgE4I;+SB}OSDwKWGgxO^)ypu|SEd8^ZrNmS
+zQ@-eMRb<ZZPN-+5#}4~q5ad6`rX%yqvMEP>B?Zz?snnW|(amRn?{xSzlu{O-o*ru(
+z^TvgXe!nqyz&t>v5p?`DIbO=q_3iPC&vG5)mUA!F5~|Da$c7;t8EFYpDmG5!K{(rL
+z{@*M<a^gdVFyv(dGF|x5>`9#Jz(<;eFFr?Oz`wo-n&^ayN1P=`s@4X`h%rls)Y}5E
+zzKl$fuCMNdre2Xp5I8+%Wp>Crl0N*(ovbyNJY;Vin9lXYiUI7#l)?{Vs<U(*I<=Ox
+zb^W#Vi-`hH;A4Aps-)6J>zj$M63{~X%NIg))kp+GDW|>fBd#t-MH-zqrJ~b{1Qzny
+z-YHfQ<V+al80&Y{?~8<OO3&`h%DiGedq2vyFv_UyrW=9u^iJLS<%N2a6>W`jFFc22
+zTZd9omZ?Q}_=Uh?cph#+<_aGHbhusG<?|vqFNsUAu5!li2dA)v{y7q>LD>A+7n0;O
+za_c|~8>HnlbQ*0eAaUCfnOoVu$)OC*Z^gxkbcHy7XE~0&<#!_2nJj<G=JY`FV};wS
+zz9|>huA#10lWdb@8Fc;Si+|;h%r#X>z`F+B%xu9!q{0dd5*#U{9|(kslErP!$p2==
+z+7@QIZx}KtN;x5&^XY-BFRb+g&y{D?{@hpA+VVYG-VcCoL24zDSD&sp0NGqKuYcTG
+zFZ@a&O%JH4DBqIo-wPHDaO)5Vk3=XMT9jG-s)(7HgFQI+kXA&#cKha|amNr^KxPGa
+ztm$fHrrhT;GB8@cCG`0*MC53}p=uhk_cd!U>H8l(+3Ocqkj_tm?|=J#IvM$ze&2N;
+z+k6sT!Z*Knd9t(#I5Mo4BmLE-Pv%}`u`xP&75sLXbz8kjBEt<ooKr`6o@2Ry(<idE
+z=pm+R<*9};RJ+euTRCkovOi9rO!+$Kv-T9zah`^&OwD_xMc5~!I;3phLzsW&HkB~K
+zCX1(?&*^v>v^8>a>(6&G>YD|koAbG%DFv$ykO@hZ&}(h_i4sX!h9*6$MC$9d*$X~n
+zK4DD7ZY;y%SDU?TMeWU|n!&!e=nl1ll(OA@c)#8Xe48kxM_g~N=p(Mx)GiAktr)<i
+zaUTx=QH6jupWU(FKF_~+(I^R)06Ffr+<gn4_mSb6a(G+d@mz~|#u7-={tV|;Q=yNG
+zqh>%A@p;y@|NAkF0@Im9Qy8@yp_(RUNO<nVSGl^U1yq_nBlUCkOvs2m;aXrdp?jaB
+zD&PxG_ciX(^?*5bk9Vf+YQ7#K6t?Z6UgG}(Uc6|Xf9@}gtF>zgJlr@-pLJe!JPCFX
+za&EggWERQ;;QjWNcrq;C0pyq?%@?1)-d%sBo*jZGS`py8ejS~jjWfH_Mix7Vwt0P?
+zO0fDBA5c9o+GImo$iMfFLB;M+p2==Fkrh@rnp(raF1Dazx8{)wq-6qxKWGd6?<7fo
+z!ofkIa;j#kW}4<7-v4Wp$zG*Y;4?BV^EF0gaLBI|?juqrK=*%<YN^2PUOwaa?p`vc
+zEbgO_U(Cwl=4;Q$)Y5>Hy$MWN{6~L(F{_B%tttE$rNxxRdzARANLk!!jg?I84{*5m
+zKdIkLfQM?*fC^-ga??NjNB{dfm(^N<GC1*93h&YLDy!jMr9VJcvi~CMex(Q=O)>!%
+zdX>_Fc4S<RYXvIc|0H>tvJB`a%Zcq~!uj`P($3zFUB_AbeW{iF`~OD&IwLte5y&3{
+zNEKUh`S5+kS~=2b!<vqLjbW-lNHLeK`jZvmh`F@QHj&)5_Zv%H9geO1amQ#u#BE9&
+zyIbyPl~$q={nnCm3r|p<P5TsmgfV9x-l)7P*yh;KUJ)VYNo?KF%0g@q=7nNy_6>_!
+z%H7+_tIrpYHwRi6S%Td(!nR`qUV^J~X!xvNIfzG*`)Au-9B<xAcibgwv2R9_CkA6L
+zUt8J%0yOc5N&N+*0@n47k*&7lwBuerR|NCMv6WsI=j5&|wUo7feJk6TD}NKz;W%;L
+z{tyxQhd|S2^`?-$Fr2F0z2hFg;05~e&8m>^!PtI)O6Nz-xE{HSu8c;|_B(<1!~R-p
+zVEo6MY&}T?KT}a6jtH}6ql<ziy_s#oL~opWgej5@@QG>xAgMQLG61RVi@XLKOQypP
+z*sO0(k~B-yKLAd<fuV;==1XP4=5XJDX42DK^$$sH2}e&pcc0wga_xF<cUK=A(n8~p
+zpK8#64fl!0SqI@}%J{BtUIl;R5w|H$tym#?BX?nD>Y@Uq>ld}<8(wLDe({_<h=<iG
+zl5yRX2sQME6K@ea^~vmMV#Mkt@oswQfQZqM#nScli8UCfyC#(w!e%<@NHutoU-a?*
+ztkc}R^2ren?sYJ5x!^7*U^7rtwlSB!vAIf!CYI*Vyo9t)o>&fWztC8u?#(=^MfKs_
+z<Xkzx+ts}C5RjpVZ2e(JmUyY5PUJ}$Tq7k$li0OEuw`w|9U#&qcnP3tsNgko;_7$h
+zmNGk>HB&%zt<bG689SN1q2H2UKShPK!Thx=lY5%UrxZ6Mj(EPvY`Q+PI~LUs-7TmY
+z|B)6mp>-b^^QV4qa9Qv3$S6<cC}8NEJm~w7<tUuhdka`B{DX0dnkGN;dIrhEMNv!n
+zf+PDxb$2V=_9XP}sCzl}0S<<UDCqkRt?0ALZO?!PpvN0}_DC1H4MmwGZ!jG{cN8L0
+z#LYERQqoQvn({ctO|QpCqnE|xvl7mk#30U|TXAa~B<!H`_vGFOB<n&^8S@F-SEa*a
+z^%9G@_&sX;Egj&?r8pN!=6_0P)mSa}jKcNjv|dxO)o#V~%t(D`^<PWbfkZt`fC7kd
+zGbvF|10V|`-_-ekBoY#Z6hQwIXeA2Cg8nCfB?_s4{wLr|6p{h`PawwPjJtV|1Ex)E
+z3_kW$hZ7Aiegr*`@)A|H&PD4_XbD7<-OG`}3InX7s<7{2F|5u($4o5$6IA7ZgO2fs
+z*;pPDy=))Br2qc}1@P})w*MnR7OdIJ_J1Ojy+8V(09GWe`rZ3KCd2fK0{C`h?*%7M
+z@&d4_d~J5wJoNCFG0m`7iP=p_@0}Qb84bl5QPzmi9&PxX?p&B$E*DG|w3A6)ioWvq
+zq27m31fl$budpyW{I{ZX05X5S-Xpy*&P}ewu(R*j8+(X9{)awZckq)!^<D21)was}
+zk@<N@{#mQ`EYDWOwQdE#`Lo~Ai7jS{xZT50D$<+C>Wscya~5TA#+ebIIU7LlZ8~5?
+zpkxwYHcjcZd&W6MpZD!kyMPwr-)@C-hlgRdoL_=}<=&z$=5BWH?0zTv3~}0)cGY~>
+zc<ALYeL=MI`hdgasO{J$_aga-^0z<K`WzoEI0TbdL2UaBB+A^^UJ)+MW?q9t<$J>0
+zz50Qs+}o=D)YoPpuXdylf!f|t9nnMFf9RTD>zz+T)iq#G^%UI9bp=>dt>f6HzXGi8
+zO$Z|FjwGx$m;FaBM7{F1Ilu=#&6&tcr`0Tqa)((Xzp5HC+Oi?88~D%l1)g=k3FE~(
+zn|7fc<Uq)D>?Y4Bvpm>t51ij|)@HCS@CvmOhFY#47rQlx;yaVM=Zo}T%BQhWiLol{
+zh?ZLMVVkMH2J3`3I+?W2B7LZJjYI>;PlhKN9mDnVfh~RxC+&^So9d}t;mJb5JQ5B4
+zAZoXYRfReZrPNj%c4si|^MBxHb<I}_V84eIj&%2lsLVz%>(YqeK>e<QAJNm%D?h1~
+zXg@&F`odDeCCvx%UojsYpPo#8KNw6vE}4+G3t5945udVYXLYkbqd<EQ^DN0<kYGE9
+z=XF93pgmJ`8>oz)tw}yI2B?%Q6nN9HZ;OcNG4cTJ&CDULut#Cc6ZPCTM(vHV2Qa`Y
+zahHA>2P^?OV57l>>wI2o8#9c$ga?v4-!$^5RR9;wJlA2xURy$)sv~7xVm2U$jzgb=
+z<k>Syv&>D}O7nJoz>NU+=y8LbpYv@=-*1M|;G&7<h9Ci9M^M|!$Ucn45*0w)zia1v
+z2zLWsWXo-TW!^f$9`U(d20Brpl=>Z-R(u?Er6~S!3YDLGtbyw6GK;vGz1W?Haox(n
+z_4HV7`zPGz12Z6ez<Mo9_Svn2H-)3p=FQptu?s(d4?JTt0lZ#lusJ%*rP=l{fG?O{
+z0jfM4&6jUGeyJO!O*Aq_7DY<!`{d8mFQWUi`)05H_N04Lm<IC^IUgEeK%n7hL%-Wo
+z_!^RuJG`96yPe$-{>M~CDob`dEN0f}z!bl!V+4}7=X!mC9?fq+f^Djc3~Kw$o;jSw
+zCwbj}Xj*Ne7n=bw1O$VuGKEg~+PzNMhodu}iZ|NNEZo0@6sOgP2YXdg(5EyQ-uk=G
+z<hi*X>UCldfO_gL0nT+49nS0ZzyRh7hobvekO;%uyYZ<tpX}E9OFs9B7SDaLPCPc$
+z>O~OA49I6?x>Ug50ny9X+2VOy)P*-9wumLC5BKiBXgK)Z@Ahx&Rhi$2&rcrV(!Ti(
+ziCCZL<i?2eOg}pM8;X%VUtFITdkZ&cUPwO1mI{YBOMbC2`a9kCjnukv2Wc>CxX``$
+zc%juu`arD>2IPL{VF8zFSn%>C*c&`PG#(I^iiPB2k2u^hM%8*8U^;qI+kZk}waJY^
+zV2)%xKVr-4cUgLEKV2F0jktFGU;r4(!qEWUQ)QlE`uU>4a*jY*e>?h~r2k4b5jS6{
+zUC72{@uvf&>1TvM!^<XXP%T;)(2MZVHT?`S?Q`?M$ey;-VpwOwH!E(R&4f=UyCD|^
+z&t&L1ihP|RJpSQCs7u*XKaZ!VGQ!rQHnp;|C8_bXOgEv0Mr?G|(6Rjrrg_;m0CM+2
+z*bcM}S#6s*?qBsd6opfJtveL%qvdGeO+96Y{THdQ)+33njLm~!8G>Y?`x7A11Ib0~
+zxxVM<A=D11JLsPs*mCmq+ZXP)3J@AU?^zaJY-_s&*_^L!3!r41j~?9&%}6+KMfkwm
+zDNVOClfCe=w$9g35}|FE8Rf#@c!>uS$?5iI`^?Pec@F56Ry2(}kWV+}8PMw@Z*MTT
+z5s5xD0#UY;?fG(fOQj*Y@A_69^(|M-{k|DkE=1Tkj;+$}%Wf~gQ#1mo0&Jvico(+h
+z&^cFDbsZ0K6kMiqi#1Vg+Uc8T-Fx0t0pr?$hojHuTEB2yv+{LP76H$v968&aaIO1X
+z`NV*UX|^jwz=UOf)IcI9kp(acO+*Wdt?)0u6_}Y|a~NCk`?sm%etUQ;(tnj?nT<pb
+z&(yC2t6tSVjEkpj3gJSI^#zYmhh@l&rEmQ=D{PTm=wwsb>|mYIvhb>Ml=sTQLK)I+
+zHHYN64>^4YM|dL&9aACLh!O5T^>8;n6&fj=op69)US;tmH(uwP!S;|%qn&%+v<J>&
+z;O;%-&A=`093MEQ(Rp-LMHpP#lkN(9=%eGSV`5<0@WuzVA6oc-4P!*kJ*$qQ;D_PX
+z4R}L@g09kvfx|FOUj3^AB4CQ}*<JJkO_nP#lZa~@jZajy_8-?fwI|&Ls1q)<iMFPJ
+zXY{0d0V9c=hgLbnz~teLyXYBOcv#P(J8+SxY72c%3(xHl^8^y!BU1y2s)knUg~7Vv
+zvs>uIo;`P<NVuL0kUU&y4c$)z59uir{g1x0j^3hygL{nJfl5Tq^Q#rY|8ajfL<`cu
+z3wstlfdc<=GKgs5)jbZE%mcS>Koz2@zSVkBuwZx*4WOuJL<AhvQzi^12^ZQzGtmI1
+zS5-v7RN+F~=q*}!UXPJ0aD>RYZ?!@c>=E9$iWa1WH}sT=fc?U~kmwj%Ko9kQ?z7)v
+z<LaWYofvl0rbu*SF|tU7maqaj2Di^%6}DHw00fm|2HUL0M*qN$K=P5rAffBRcGT4H
+z#u29-$i(!h?W8In-XjS%Z7)Fu);GFS`8bbIbKbzqr?>t%f!Cq>Pca8w{!7QnabEMs
+z-c@E&PM{H)x!8_h9T(#7)V6iE{hVRP!&0k0i^+|tojxp^cz3!_ZuT+vj05+flyz6k
+zeyG9Ym<eLko89P!8$kYMCM8hqVcKvamJqzoZ*;H-qDDRZG^WC?Y(N7@qt+u{mew3V
+z@pD3%eCR8FES+3dTb#7utz22#XNF<AIXbqq3qJ&N9gA@eWWu35Q)mc~IXEqcqL|!1
+z_~q2I&78;Df&Dqpit!&T6`<mEcpM)`pfa|E-cKaL8ggiDiA8_Jyg`||5a-sa^G)H`
+zf5hJnaaG4Em1g+ARYsBH1NF0gY8XuSF*cXO7Iz_-D95sRm3r`5y>x}T*wj<<9CO>}
+zrJwkqCP=!|M~0z-IUL0}w9@dm{e<>GhB+s3L9XgluS1z~SZyiN!YOhYZK(_cb#vvR
+zmbTOnJ9~>VC84$tGtBiYCfg1D0A=CFS`M_%X@$OXr#B3o$sx2QDE)~0(6~!yTP}AZ
+z`(R#mq7O0*P+{%R!dwwsEW;o==`tvTE!jfgc`ifoDuSm_oxq(=Q=L-#M_4Y8EooYi
+zbuI`=SNB{ZWF~h2Dp-e0`w32RO)MbuABX?!>=U`|%d{Vd(hm)=C21k9kamFL)IFWf
+z!A8Eaza>7U7sajrNX3GiluKeuQ~C)8rKx+w@sT)32T4-*>_GYkN-~93Ii<G`9GAi0
+z4Z??V^W&&|(t@({6E6oR=Y~T?PhTyBo#)65-l#p4`v1^QVAP$=c8(wm_GS(*|Kn&G
+z9oyGw!4x@+NUS=1i6FsTT3dS2px5o8cQOycb6-B1sAIhj>(5cJ#ZL>}%JqTrp1v>)
+zr;}NP(z)Y-?jK5xsk2QHdE5zE>Jd{9#1|NeqbjPmTThln|6$<<hdu*R*1cD(Q#I6o
+z;nU(^od$y~?;gHoRg#O`c+U9g@8D*fBqz)2OBQvr6&fTF{_~8-Pl;X%qYqfsSEK{6
+zpBi>P01*ufx64Bo(Tjf<Z5O3wtu|pcN|%>_HgBD?(v}Ca_APSgW6hO!|A_XngaXw9
+zAwM92T!B?T209x%FFM^;7}2|?>H#@8%2>=;ls|tEbXu9=HevZbUcx%WGJQlGSQY5}
+z1NDRc2W3DmN?ldI3fmbQ^_Z`deFZyGnt1MUC065)#ZHqIN%SM&6LGAp$B-ZNc1*(j
+z=509OXJBlar;?8hrSXlQ%mhlTFrit|RA>=2Bbprj>XPD;4oC!k0?17L2Y+PW`O<~d
+zB@nOakui?v59&_lPTCbZ^i%YU%h#7UmqeFXKrHaFUa=Hf5Y5SrJ^EPkAKvK?j+NIg
+z1WklXPY<z)f5>-|t+1k>Uy}R-e8dC_1$zC+@5GfR_!1b|Df$n0>51f1No+~n_9yL+
+z>97%x5!jHxl+LmaX-wd2?xz_~jNd%we3TMMyMlv$=7QUV>x(7+q#dUns~y|_5#UkP
+zt-vlZm=H`b`l$8?G5cc)GlC|ZrN>U#UV%5A*efLHCqR60Z2u?arg?Xr>7A{e3Y|~i
+ztvq(2n!|E>l>Nx-hfgPEr_2funu8m(hW_=@(bfAJed_)zOVoGxmK*^Q_`bo9tojBx
+zAY}I(4)}aq@GsxzSg9|?LSKp*a`7PfnI##Rfe=Gx_g&E#Rj7=oI;g~vV<e`_Qj=5k
+zCSbC<{6(>J63V8Z5c5kU0p4o~h|6g5fx8YNRb#jNN^<(uwdWl!m&APz$(IC72=miM
+z&ke5)f^#o<q+9(ER;R{Gy_g!$#%l~)PkSUo!NNwYg?){XKy$m8$LYgMv5l#c+2om_
+zf@%6IoY4BR{@T`~qUTq~$-?^(TEYZp6W5}4pRLh9rUu&(WB~ni`N=*w)hXWGw2(gG
+zp7*Z3qEcw2(onaP?lb$IcxJ0<nF^g>KrHNsSic9|R3#<?vN2@t?06L`=GTs63G(vL
+zX-#b8-2ZhPI+Q;kv~wepknV0erd@Gqd0^UDj_C;}4%WZX_8R6)QJKI9wl<d*{F0?h
+z9ilvLFHRG`stsAV;-i07uq{&=QjtiLa(JkZkvLk#zRK|gtU=}QsxI`r?7!4HXBI`8
+z4N{z6kz7lrsT?mOB>eYJ-<Quz@VKRAyf96vIoj_NsMXOPtr?VXErhvB{z<qt{MT_Z
+zP;qBBdA~h^DP!w3eAXguJ#3NPu8mh?gff-jXpbpE&SxhpQi{rj?jc+lQ@|f}XHz%{
+z?H6#kUcBzhs#Y@g!J}{e_{z(*T~#W~%>OOt2Eq5YHfn;R6%m#_jV&7S0Xe^Q^%HX^
+zHGSqPjqI{j^$A-eMBg@AO_G*UgyMMQE_d30brP~~N^Xzuo)l6?{;TR~55Y8q5VUk2
+z$bDbvz#kd$?XC>|Jb=zf4v0<MmccR!8(bbe>Z2vys8)&zdOiP%y^b1BC-PGQg~lQ7
+z+PEyRh?*Mk)aj0DewLXT=zRGk5h5hLv$WZoK$Zl7X1^WH4tKy%=G^|7V^z5LfaJRL
+zF(C7eIbuR`?X*2AKs-~<{Ozk2G<kCvbVnF1VYwC#+rGNvXuHV?kk57uYM09v$ojDV
+z{>CYzbOAHOT77f=@ZobrNtnPfZ!ui;cY22R-&yHU-7|^jY@E(4t*;>i(Z4ec7$69%
+z3a5Fy8JEnbDLA>}3F6pXaTi3Q%8;+-KJU3C{AJD8IIIa5GbxwtLFJlr{g!6&*WyEx
+zq?siP&P=!+Bn(A^T$t-DD%@CAdNIk9yI%pKAbUGd!K{tcY@}ye|JAFhk(o-TEWyn)
+zURO)cwA~h)1$(o)!5Bb8b4w{MBXZ=;*6#Ir&A}ahtW5dPpLh>`xyjqck(i^|>nm~n
+z;nu`6PHJq7c<aIrtUh1MeQ)5{J0Rb)xnnuyc{iA@%wllEth6DG1Lh&MU>q`t*vP@F
+zbh<eCLeNzZn=&(_!j5Ry2~ljpBji3jRGZX79?i85lP8*crSz0779xGe*M|3dM)z<R
+z3<PQ|3ixH`$0Pobvkkm5sJ2VFMi+W;41xdd9lh%It?h*rMIIY(NR6<PT+~JvuwelA
+z>s}{mn3?WTxR}KqSU$kt`3~B$I;tJbw02VbZ?qOWO}7Hmr5cu@8oTj@%&?@EaE`CO
+zE~Rg;CTiJJ(UD{!sU+@7Nd)3OvZoiZHElQII4YRPC+~9eD4nHpsz~4Kmu_D{9kt9V
+zIqjW+2W_RjM%F8O3pgHjHpVtIRSaL!lhPuuVcl#&o88UAswl^P;)s<dgvh6hK{C2E
+zQ07|W?>0#U@#Q<*wawXIKW&&sja4jFu$B88#z)R9Hve|tcrI!0yK|+4ABl{&euUiz
+zC0aTJxDsZn$fQrit=Zmwjs3CV{#@LCLty-wT7I$~CEbZ#9`re&RB`pq6lrqkp#E{H
+zp3}_F`S|Q-MQ@Ap!!+N8e=Hrge0)yL6ixKKiQ2uJ^QsX$K#=XKLT1jvBI$G1#2}71
+z)4AFgP#6{y(K1D1QDz-zQ^u}0GFLTUPqE-CaK>Z<{*OJf`fg1$>FY1iMV*hkgnOL8
+zc6ydqI=|y3dU$IxFylis=4tZbmgHA+#n9XAJi-O6s+dk8u-um^yFQw&g&)7!<nyZS
+zdC#z))s{&>Ln(HDnHPP;|LjKZ+pCrJnUzFiIFZFlF%iE<JUzoQJ6cx0wnW^2c(PCx
+zxnM9EtsN!k>>V>`NFHCdMLiTp`c*^py|#>@J&#0kXuDX3)QG$lxdz*7*2&}FE}!R)
+z9*bvZ$I-%Say8|x2Fg{}!g{QpsA|VQk<tD99r=9GTTnlPD!FgC2gkDxpisv5PFeIU
+z;=M@9D6!D%p)i7-cSXD?po%NGEl25ur{U@Tge!!RDLf32-IvB`+fvMW&$${^&iW8L
+zF0cvXtMR<MQ?73Ki=dN|PxaTj4cbUF^9+(|0!6b>R5-ur%d3|=^%yPs%+mxxqH)t&
+z3?bP`&Ik_P%zxgWHJ}t4FWnt=B~8EuXU==BlCUdydPQXg3KD@KwzeX~*y_$e)vTE}
+zF1T~}XK#hYy3Rl%Y-gac<ZG~<k{`UfAS1saQOrRJ6wh&P@~^MmBYi}wj@f;!5W3))
+zTk91HZ{nKrHd7LlYUmqBeY4x9Y?!+-G&v`&_pS%<c}#fiO}9xKrrdJwUXFMS*_3hm
+zB(}9o-OHJr^Ed9+FkjU@5MrCR>e;O?3lVv<n<9P+r<GO`<w|YzByD&%dy{mCL|9K;
+z(I)rYcEP^|IIaG8$eHQA+Xj?6C)hMU^W*)k;JJ3rP=@1Gj?F#wfs#3t7P<#*eYz`g
+z(|F&8?R|te%J_Ky^tej;p8S*=I)XAI#%sa7CY|adIB5|xzdB*Tb$28@!1KP4g2v?3
+zH2|K_0x>|^({rP6Ca0joY}wWych5ZiiLSGAh(E#_i44??cbT0F)IN5E+)^R?vtwzz
+zpG7>~J>J{hMonLO@hfJ{iYcxYB_bh-$Mc9wnSL8;-<Y7z{z-WM%I|NsEW%BHXEjIx
+z^UE_6vm9;0LO%5KBhNZa^CQbD-R^L0K$-ml@IYXEf^4;r8f;VB5m7EuwWp%ZY*z!I
+zleuQLt~8h8+F_+vHuQXNSzvI$6MIIoGeB!lM5ZQ>t*j+BW(9!ao#{Jl^rme3OLhdI
+za7gp&YAjv?bffcNyOSbvnFsu!(sydTa$m_=ZcK5k2FP;)gP)Qj!#|VJW+Q<gaLaHP
+zl?oh#)cd}_;)^}j`MU}F)4Odo+3E>N@In))!Rx~T^(gV<)6@e6#MKPUvVnQ~1w;Zg
+zVCwA}bF`ZQzHuJaK};-UM0ser@y=vs++1zmGDIst?*%IQw*F=iv}C|D=Bg!`J@<dy
+zNgUK~ePwTdc1`SlcSLr+#5n+SJa?O<yBO%Z4{7^~z;;CBYl^l!PW24By6L8@HjsS~
+z#px>v%~0WHw8$LDet29lnrnQR-ZY@4X^%RSYPOI0nHN5lKz!vzMT%Glrg&4d_ES9A
+zmga@OXWH*S*=Zg`|4lmqW!p8m|Io)1ZeJCZy?yK@`lU<E|J$&VqE&0DIq<Zb8(KH<
+z!XQ6kMhEr~9VQ5dn|}A-_?#xr-zYqe3Ni;30M`DBG!jt6j{@G{^3!B<nsuz4+zsit
+z)t#-0yJHG4o<cZnV;`BuzIj+x%S)zKzwS?y;^76~)qS&$pV)iF!H~aY5l?iY9?x1`
+zl9qxOKKwN|d4fB4t(PG96EU0ikZO3da?<d8^-$z(g+tH3yI2`N!C~LpmGv(fzQNlv
+zhQ|wp?W@dZPBMFQ1$CbB4e|1Lh|#Mj2cslu&Rf36xyUcATvev?ExnF0O~rN_n6tY9
+zC9(8H8rko|*+QUTA*)Gg2WGo&F?-Ik*Ol9w&rDV2&l1HnaM*(D8L+E^!_<<j>(;km
+zej({H=B@)VtRrKCj*U8s!DCjFcm;^<o&LeWR<VZM`FYI+bE=)bwE?`v_XqMOdoc+K
+z{%h|6awicpGSxBN8})I`w5@+_-jlZtKA2FACK*D$xC<jadDDEwkBh2cEv0bBWJg=;
+z5|az^^g^qa6HV_K0$a84S-umU&a1fPW_r)Gnr>HWGv}<ozwJs07Zha;UdeNaaks30
+zb>$4&DhS5iF>)9XJo-C<3$`@pQ$>fkXXl_l31mF)V`lQV`}h4b!fj}|Ze3*VAha^*
+zipX<o_;mB201$ApyIXU*DYr~eJLgIMI^_92P&`y`LqUNP#BQ?CQdid&%)W0O^7yOa
+zEchVfz`L5a#fW<Tc%ksQRWhx|;Jepxj~o3t)yUXP=iRN%*IJ)tv+e--l3)29x-ltd
+z-CWU*IHIfB^E@($T8F<xsV=h}qi|@39pMXeq0JgaYz>#d-%L(cR*u|*mz7_T!Z9i6
+zxK|>8_J$#thR@7|onMuL{QJ;K%D+7=L;A~K%Q>Zr)FsvUK$DrT`P-9E4LyI)JGBiu
+zM8#O*7Wy+)CFdELgLv$QqYk|1rSpwYOdBKYtVPbi@3_u?bdsC(_4U41cUw%lZOe3g
+zp`KUx-LU3F=c!YkR+&<#l4hMlp|3t1ZdKqCq^RRztAB_C5{oE56j0h6s-=Z;Ot2{}
+zN>KS=r${!rce4nt2OeT8897X5(~9MF<?S%C>Q!d+6FX9M3}2z6X=Hfi$9+d?LV3Ii
+z3}Z(&RLyXg!w&u~1OM(fQNQ%=b2pi=n_r6^N3Le(X${n<2BpMFz7`Y(!Zvi1S4Brp
+zm<P-C8rTv-V-;d`;w!@j!9Seh(L3eSNPgeeKS&qem;FJdq(o@`t5p5|sZTS1BL%=~
+ze=1Ct7nWDU3%4fn(`EC&=x@DVwe+VCaV~RPFe4Kb7Y!I6pam%NW+QLDr#80QA&aG3
+z!c~i26B@?7+?+qNI2dK%i|)8ZlCn=Hx|{r#UDluynlB#B?Q2%mLIV*;PM>|9vWq-g
+zzLWMR-EM_{{S!h!-T#+_ghL={f;xF9h(UNJu0keP=zZCZAT1x|xh>XWw`KFz*;4YJ
+z0LD$D?4=Wja8g75cRqStS6cg6V<w21rJaqBTNSVTq#`z30_fmU<CL@N%o`J{P`25e
+zq{?V67U4@=8*|E6vA*`l%}z9mH6w*vR9VUHRLU<lYKG_WGiDic+A6kOD?+s^Cjb}6
+z9+RgQ`RZ4erTs0GbrvqX&bYBxi1zwCT;{C1u7qM|oFghj{+hZKCSRqT|B+j;_oR+L
+zQ*t3|eC}z{{7vMc8R+_R1Ml2#K?=;@ED;55U3x7#8(z);z~N_eqi9HM*gAU^qH8C~
+zK2}Xlo`Wge)rV>QY|KP<vq4f_D5`&mAzf;SD!qRx?EOJ=?|Y-=!EH`tYi9XGN!?wO
+zx8<|>AwB*4ov&MB+$IHWBRjS~hmbfG_sovX6(e?b&}?D}dD<7@gn7#f<=C*{@Z$A#
+z<Ql_{BJNr6AkVa@FhF_MF`!xRV1Q#*oH2_pX}P~aT!e*=>EY6U`}Vnr`uoGO=;<KZ
+zGVGC(@ss=`TIYD{-0JT|sx(r`^QHdMna#m;mvHFodLJ_%zv2ho4PnT{m7!JL^XI|s
+zpEN$arbf-A`@YeLf;j}kb?m%|KLjc|R+$4Edzn?cgp|Ov?)Vr|#3*PX71kYl`FHrl
+zUU%=Laib3W=cVWwQ1t}B7eURW*2B!0r8XGh`&`YF$-e~9KH-(ui$3%<k43!%x4sxz
+z5P*yjM>LTlqWEJyvl>0T#h>!~!Qpy9^ChMm^!uHUb<3(^gxLP)j-u%&o08RnnRZm|
+z^OX+a1CA*~iJ#Q>O;au8HMcnghrpk4h1>2ppKLn-`3Y3!M!kZ?r+QyTGrkC|DDHKe
+zXL8hBd%K<fqJ9Y-$4qM0y!zHlB7GrgGc4S(k5ps7GOUg1;5z@M`0t^~-v>#H*X#{K
+z+kJpOhk$CK?YCSDGw4L(<mM&4ylU}G>DO&wgJU4s_<;fYyw=tUhImJ$MtQv{!@2b@
+zqvexK*>C&bPV5Yrqb=catxjRdQFaFzBewi>$+>z_gK3th3t7%DN31@lT83}(T1E|*
+zlz%_o!n!uLW(`7MQE5k3x4s|gc%l_Akg0gtRJMKbTR8wn!0*TH9M<tV?w}1(T!$3<
+zcB2>I$REtErg+R<LicE->0fO_O&u6MfIVB=I@_noDD{_pq>0|D?uqAym?Xn@_cF`h
+zC=R=r;Z}e_e;L|USo2u&=Q6(xOgX-<p<F78&YGTF_asl|c}E2?*GS6;NB7AI@jW_E
+zCmG%%D@&c#*uiR@$_xVab`n}x^2m+__n!-6tLS9<#W5mcX&oPPJzjQ#gfHzgeD5#%
+zhsIL+N?YdsMQubbE7Xb@;|>ccu9HxQS-qkK|4=<B<2}WH@E9)Tl9&;uNov){D(RbO
+z3ElGfws}6L#uB#66#KKiT4%Z_q2m^dXpwB<U0z!3;3=K;znZ#fq42=p&dKj><r#0H
+zy<Zic@f@q3jWTQ4$X|;L4P$707ltD+YL)AMt4$BL-{&`URhqUVbd!9p|Nea!tIduO
+zpQ@3QAN>pa0~{=Tc@sm_z|YXY?1>x8$~qF9T0!?)V>d5bqZoWHuvv%9Z-8=T=PFRU
+zYY${yC^d|SXvppT9BzI&8|kmh_g<zagz#=PSYS!;xUb*dr*)c}!*d-<U#-wy!K9)t
+z>d>*UxIt(@1O0?mRl{&1-kn-G$({1W_oe1Isl1!=t4y+G;)(CWc01kE`gM^Q)B6Y4
+zIkJ~oUT6L!(~~~QlW^&5^Yey2eu7BwzkIK>o*f#5OxN+p=X<Mv+{NrabBToK>I4)>
+zANNGgE4(gfE1QUJ#cDWGX;Z4j$M8GBSizjz_j5kf=;BH~$cZA}i^tUS6oLw0TuHj|
+z*hAibW#@kXK_}@iZ$W8Z>1iNG(R*!1ZBGTA$`65f(0Iq+aYQi+pGaHM>0mHrV!j^n
+zk^P!hIF)D0PNB^oI^G^nKEBiEwZy;7)13GqajCsEDg!qGkee){BE{~Vtjq%&&ulaL
+zwvLmmSf9h@?W`)FaaPKjf#ri|l=B`^(mP+(-<9`wM_ko@a5IIfas70oooYBdl<rbJ
+z()?toxIY%QJgsD+%W$aw*EC$OBb4T&803$Uca=Sm8HC&*B<^2wyNVs%G_}X^lk$GP
+z@t13Vm#YRw{2Rzf&mgYuajajl#g7^@9VDoKOo?5eX`xq7oAq-)JO0voPrFp(f`Q<j
+z+Y(uobaV+7+j&()6<OX?2m6x1tvuL2X>Vy5k~FYkp!ZJJTpiX#9|x)JffAFnY8ycd
+zPPpXgIl;TwqAKSRMDd~@{M0^Z3sd~O47Rt|JDnQ!4mv$h?k-hJteu1{2DUd<$v7>t
+zFx&ERGacXLiEVqQcw-m5rBA&V^KRRE<)`Z}1<lmVrHR~%i#Rz>SehO%q&(K;JX*QT
+zWXC*_I!)N`Qv1@gbQp?eX+n;P3*Rms_Mc72`D$J^FB7a@9W<1y4G-Yn@a&T5U;;j2
+zc#6b?w0PXNu_v10I>u69t)%|uDvkmUZSerz*I7~}d+C=?q)G?<KY`Q}4v5E@J-5$D
+zFD>1Bfk#-B&S2lAS&o^V0=L`B645Mw-Q^2kb3&XusIli;8pg5hql@D<%2N%>>p{9&
+zV%`yzF-I2p9zs7Ia8r#-{)Q-R8;M~)w95}=(HOUAV~{0D9Lo!p-;)iN_pAqfVq-sF
+z-;MT6_YfddH$FTltsN3QV`nK=%$+i-#M^`ZFQ&c&n$0i%TdVfowQCebQKPohDvGFG
+zYPLqv+9QaVp-PRaqE^jNvs$%RXlW_6sTq4G2#FBh=l4JV^S<vna!5SMbDw*^-_Q8w
+z-urm@5mZJC>cy9Nv0n;)o{9Ib&%rGId|*2Z+UPFvJgx4dt5MuNH|~(jAMnoCowky0
+z>ikfp)am5&gf7sc`B@X6yq6~7SE%US+F~#N=cwkOcYB{KolJ2L(tbagSlC7cIf~)D
+zJHEeDa`M%=zr`2=Z$%2!DBjE;;Z3=!NF|<@<PzJrXb;kZjNhn2nPL~{^{8R3f<0hb
+z6cT(9-@$^eI#5i@<yTg_wYTB+bY<D6o2Rq8Xy25L;?Hp9IX(M9Cix36<d683)+35S
+z`&J$CE8g}_u>IU}?dv*56EQB|10mM3{cqJc$T^nS>}oV)fFq3y++K2B4TOifbvWr+
+zovX)(_k9aNiJQ`bUqpZOmu?h-jz&N{W{W_~-;LUKfGzrRPx<)kGA*Z%4#kZ8n!H5A
+zAWVq%o5Azr^c}U2Hrn-`pBX6Z^6IXdB&p1&J2Vy~?ay~PomTpc4GD0ORD{Lv&kz3!
+z>z%KKJTvhZF3RGu?MSCz1V2v>>8m>y=$O`HQHIk!e1>y^-lRW}U)kES%m??^627W2
+z>})|QX^4*s!V-+tL4Aw$mnl2VzZ#f7-=et;R}F)XF8U@El^lGO*b^vAC%4u=YjE4f
+z9yAwYm>jK1&{_hH7gCNU0zV$|c-|h*!xe+ne?6HVtqNPH55WcZC8Jw@oVoo(w2pdm
+z>Y3V}$$qW%I+QaTuZ`f<81GzY%V2xfZ_hew&zmk7ZqjG(f(uvI4YsJ!Jsk$O@MRUL
+z|AGj<Wu7jkep*P-_`Pr)8{Eim`IAuW>DN!sg-rx?ET+xpF_5lol<7vxdrj+A*?h}A
+z>i1&obF@xIoX$9Qmw>M`HoZo%mz!*11yxY<Hy?h<r7>w3c`f&>c{HhZzT-ps0q;cD
+z<AVuKU-r@*oXPmJoz|l<j<G=&x0Jc49Ebk5Ve%E@#RuNs1NimiR|<nwJ|ET8Rn`95
+zn-w_rS2++{Oyp}1`f&;#XSiEpM)N2i%R1*l8r7ftwGTXE<U!je&A9SaGR&^RkX%KT
+z(eRt}fY2H8>vD9*s;KOsiO#tn^3zcX0qH0GJ>-W=HM%)zp@qD*o2*gH!Q8TRw`YNM
+zJ##*XCGty0k{d!F)yy$>$4AFJZ{rhZ`An^d?TbX;zwPMRRw-LU?WZOSs(%_33^(a1
+zw6Pz#Mg*!ioT)<{T+naSIgWz2L$uFxYRu1c$u##&X_+T-U(C0uy*0D1R|07{JIV}^
+zZfNC5ZZ*SZRrB~clMtafjg#nfX%LpQRyIXy3-V-V#>1@1LQmaX)JVq|J{b6V>xFXt
+zpov1vYQN2oS9XJc4Z;ge`hwlxd7KTuT~xnoquX+)9<MlG+&a&#;vV=ae*BT%^g7)T
+z(+4m4s(P@$V2{_fU{BO^rGw%Ah?i=RA+%NspbiF(*|taXXXAPd(n;d@oTmu{)o0k$
+z_~X?tE^1dpa(|3X3=2Ywf4d0>d^iY|Yp>q+*A36RMGhL-Ob}}Wy?zJgx%Y(4#Z_+n
+zefFm>rHacX+g>I<CIi0Qh7}4f4mQshUE_20Q~n-4z%VYue~PP<;iOj?mNt*yiK$ET
+zJnj&+*n%C%<sOWDZ5uqcOAIe%bU0594(LiBlj5~qC7dzY5|~ZBcvP4Kcj!6KR%u>Z
+zFNySl#~&~WT}^x@ahCT=SzJGiV;djS{6msZnN*&maezn4pSx|ln|g+<xE*{`DuQ=b
+z&4h;aLA~1=?&kip4K>lve#{2uugMF#C}kEhbC7wn)};5OW`*s*uT5~Y*k7e!6cwfg
+z_w5tUTlEpnoCux&%B$U!#?<e7U&yZ+DUb>a`oXt5dqCrnQh{dJ(of{gREca0S^2#`
+zx~&;mAtrTlZ^+)smZ~=RVY>SAK1W;KIKDG2g<+7(qxKSct!~MtxRjV&@^aI42u1(s
+zkhTg3IQDN<RTg@UzB9ez4dXLb({uk8nRF0K^$B*@8r=%&-ey53W}p3Vr-0<uU7?)h
+z^(7|$TzX0tbgLh3vf&X75Y!5%Eq~UlapUP0IKJiFm?iM&&e)-e)V0}MbBr`8HC2hI
+z#~+#2uNF``1^T>Wu2#~bAT_V`ilmEps3&Jri8-6KABa!kset1P-qYA4-L@Q@#|}0k
+zTP0ttM#8viZ{*|eCQONi`~89E?_F2O>`OldAYTO{UrnF_IfDYzl>;aE#;k5zHb4sN
+z<UXYA^QEA{YeBO+{*}f_OhL%_d;Rv+o5Z-3;hS^H=W$a3y*k{nGPd-e8y)ZV9LV^%
+z3!S#n7<KqM)cu^l&9jZe+nl~xs}b(=G$fyV%_{x*?z_d#3eR_Oe~A9ShMM<cG4L>`
+zTG!s`7>@bh?jT}fXnSL8;$`XHeTkHWCW{Km4;>l*Y7}MW8X5U<8ZPlql|Oo`t5$MS
+zRT)2VYpyl%&G5Zk?9OxM=~y$E8^k96``)ht?RniIk`bsb71AWVY{_r&i;wy=y!T<w
+zEqnK(s`5S0RlX2u-ZlqJ@qT`7)XHla#CjRF(@sPANETGGDfr`@Z{~pOQ&UDui6YlJ
+zxT-;KUQ>lCZGkqWnf%3U7CqXxRER6>#EH4^c~*!J*!}5`(jjcv1XXy&0;GC(W}Qdq
+z3y#cGWZUritSR?r(*UEh#I4J%&O{~^(>JU8+i&pCJr~omsB(8{wVdk+19il}M1C7w
+z;WTlNPr+}yIy4B0iwm19jR|<W6_px%d^)hU$#ZEr>s#wiU^wKn-)H9)gM$7ZZc`cU
+zivne2**TNI?nzDKB7cT(l@g}KxxG?NTeI~={(^O|Wo}pmR$+^3ATRS&dtq)XO0VW(
+z!ejFIJ$Uhx>Zf@Xk4>G_9f+!jSTox?!@sb#x)#vUV96QEC}x`3?8iCO{k_%bz~>sR
+zu83#CLN&_yvDz8}u3c`L2$5t)W#0VqAbEB6V~R;@u76F>@oz`>cotfxM&&>K+ka{E
+zqZMX-Yv*pCL791^lk5u3^R*ZMVtK#i0n5@k!)%KCbGvCf+UD4-_|0hZZSOS5ah-6C
+zWGTIMAAJ)N>iAB1cAoiAw@(g)D#p}mWR3WIYf5ifo!(V?(@P-29}kCRs|CsQnuZLm
+zYnSS$_U7lm38#ywD`Mazq!opnSw>Dc6W_+}Ij0h=%AWWXPkDD@QqoTMX4aol&vq1j
+zYI~~2y0;g-M|>DYXxg>7>HSV4m`2ru`pmKoB?EtV)F!GrMB4Izzb122>!*?QS+Ed)
+z2FsaFu-f6eG~(WbCBIt42*vaE@=R+h&+u%w;wGH$xs-~+Kp-yED1RsN@XhrTrk~iP
+z<>5u|8itejw)SuBql3@cYNpNqfFXe|D`tK^8jE5Y2p%6^$Oj+Pv2It~3i>STQ{HG^
+zV2RQ=kD2qpft&R@a?2g<Y;Sil)}^*BQT~ng6Eyz7evxoKanC%U`3vs?gGs#w$0?V}
+zfnxZZy|9R)oVtK*F+Izr2Z1*~;T{&>1FbuZ60`6$;o9Ir%~Kh77p`7vIJMWdc2WH*
+z!ya^j3QnNgu>brw(Sl!9zplw6He~Enb^t8I6Uj*j7rV(n&rVI&ZeMXMc3A<s*&SZK
+zLc_B44c=;5T9o$nM(PRupnPPXQ;lNpqfG}m+thB7kbH3ZkK*#$z_+rkq+c)6!RHwS
+zx%A8wE#Xp?Yn}nI_e6d_cj;NW|97$KrzzLt@8hpOC@w0Wf)^k61pDiZyT)fFO7uIh
+z7HE`(+jXSyHhO<i{Zpr_RUU2%ZSLgeHLpW;jc`a|kB<{A1m!*y%=E8Ua{qz-+VcJ`
+zwSllHQN}jY7drNNx1XiAsNS3(Uh<e(T;;m8`Ffipz34}Y%J5(1UD`K+KqBUsyFPv~
+zAD<ta9lW#8w#Vlq_U~@+M+lb7dyDbJ|EbyE%G*cJtizY^F)93I5(bE^yg+eP$L5*T
+z08Q<Fj=;cz7bXbL`e61z&kzZ0*=e@K%IVo7BzY|FzhQ);X+lqP!M}~(;K`57H%P}m
+zf7nq~oh|ZRXt@X>%3j&s%nJ<0J`Dail3kvk7mjhRt|pY2ZD@@ayT2i%r#6Tsns2wc
+z?VeBes1T~;b|LHUVD%3n*i?^ardbG$$vUyV)o*j=(#9JTMu|SlEjH)eI(mhlE#ZQ}
+zHgM-0XQPk?)mRm6#81v=h;Q)iC|%Lv7tTI0Tdh3y$)Zr*y5ZB&@b*CHh1GGAm`c{M
+z8QVn*Hpz8nGDo^~k89gh^<$ruDjN-M)n8z)BR~JkO1qgkES{eO-7ekCq0S?e8o?)&
+z@<Jz6e*QLp-shi(RSqvb=VlkD$I)^tfjDkIrIFHai;t=N;qF~a|9U>ID*u3_*KM^G
+zO4omMoZc>fBQ8jsdY1q7{UDW|VgK6Kl&Qm`d!{>3OUE+R4(A2Of--B~#+U-}j5L+_
+zUY`$~v>6k!6#Xd<gAc6J)jj`BGE;wSn}mCQFX-P49FCp+`TNPDn%3aXZlG@d?KEh)
+zr5@v?WWu_&FFh#TJICBDa;NRRXI8!!`>as=pT0njHirNcb5<t1PoyD5QzuM=bktS3
+zW|9ipagM`j|DvS5nR*YZX@0v*G(|lYD;0UU^?Rtc0!%UIn*RE^v?QZ*c&RAQ!6dB1
+zG%I&bh!<$l@_tsp{Wak0hjd8Zadux#AD`cp{_A{tmr)){Wuh9}_ddR&x_)^Z(bH@1
+zb-=Hi87h7_h1Ci6-%F5+0mpx)r^YSr;uV#c3xqmb0>zmKm*2iNXU+(Pso0K8zuh?^
+z*tsJJZg2glRhk!6+E<r+Q^%-o{`Q9YitVLNl@&jhvV#>2JBL#c@-GT@!s(TXFNRZX
+zP77Yt<wOc(8p84GEjN18ZAQdz-v4cY7z)?tm&@liJSaAKIO+u4u&JOxt8?vV$gf<Z
+zO}eb%)fc>vip3`b@Ut_|U~P;22%Jt#biP32=kHaqi=g8<&BGA!4hMrBW@TW<@Yb_e
+znhEz-gLHG>HZos;KQt$FsQ*)!O$blobg-&=QU)7R;sG(oYoOlaHz~v~-CNGXPd<v+
+z*+vlW)p6XL_gMcNU?1D2LgV#Dko<U7`5(h%-anJ*wntMCok#ngaM6I&j0aS6=FRL~
+z32=8;Lel$xlis&K+haQ(t5$3_25KNv!+iQu1NuIq5Oux%N&S7P&$I5|`64ZFJh+(e
+z;C}c%&$TEBP%+=6lHyHG#|x{2g7!=cmmGHz0!O~QoATNm6O!KTol%L<-0b%g{Hd}I
+z4w3|G)=kUmS?rI<DKh2g9Z<0?O7MO?+B~d?mn*hq?CM2{UHyIBS8>f{pQMKEZ`jAN
+zslAENmAV1?kVg6kb)dhr9eN+=Uo;7-&Z{B|1aX3@Wp7iQUcU^PPulZED6B)-mD@OG
+zGs9C+Q|5oo_bX4xb3;cLMhr%s^L$QL0F&`?AG8v35=wWa8w^?3{RQ7NchQ3=Pxe#Q
+z<&x|>xZqepu?LqazJJ$Ilk~&KdznN@74%)9B^tt3H+`4lV_%7eak;X|&e53g^abwy
+zl+WtYpG7cdS_`VYR$a#3J~h3>+9+G&+Jhc8sWn6oQ>?mk)-hioC(peTNIBL8dpwy;
+zdxT%m$X}xGjVvtOfu5p$^%y;9Fwe(>)z8cKA)!eHZDXdCpUWm5H-1vINJ$B)R<@TZ
+zvzFk;3e3P8nLRsN9zB1+zPWXN_scl??$+OiVW}MBQfB4tX-vfFIESO-#ILWgl06&+
+zq0*S6!)?owTOcf<XftB4I^<@UEl2qYy|%POY@Qd#EDF3m?M-hE4I?I|jDO1rf8pL^
+zEQcLEsBiH6uYc{~4dzIgLrB?bh~ey(?9H%$;XC)nEL{*6*p?;=TAX0p@6?K>G!9eI
+zE2L*v%9cXa=JJlX8ijM~NOT(EjCE7PSoO!|dQBTRuRQ-i=o7AQFd{oRObS~$PwD8Q
+zX9h*-PlP&j!v1xYR)<B5yJ-B$*H=kTwO-)Z7^JmF3~nm!zc{uV{j?{fh~2R)`a=<4
+z`@$4agrkp}NU!+e;gKn4YDoOitnvY^)wcCF|3N~6Xx-Xg$g62lYo&vu{P?{Br{pg4
+zV9452VA1_dNJXQL%VyCHhLNFWY)CMhqqA4^*RBZZh>?JkDh20nA-T<lGdx-4h`f9H
+zf2+cvI|JbU1E#jVT>TAZn+~<XGj(Q-%FNT+?Jy5$hu>)o0wJ@xvOW5gH#Amm4}1R?
+z?hEB?(rNAM1)HnQ8P{aN;0Vc@=hI7OeYI}jZcm|n4U&m3gKCM-aS&~$ar<ZE9+|oK
+zekN3^W8w96hCbWty-b8w>g|J)65RS<|1uo5RTo`4>8uP*{<!gscR}7-BLdoaum27W
+zgGKv0X|U~96Yu$(83UFX;P$r&qGpP5i}JRmvv3D2zv)X#zJH}){=uiTVP)&t`r{31
+zhfP71%}b)graRaBr`>GD{9bQP9=5CHSoz=G5yro5Ah8m)j8EQV*w}cV!x6v~{`_eC
+zLpyu-Qh!@(L=Up`?lx9f<_k5+Crkoyed->l5N85Kj<{bI#;Z}7n+`*-Z8)POWDMbT
+zy=sC`?hR8EXLf&_MELI-SL9%i3FUOOJ<@oY9#!Mi<f}L%!E-%?njxkwuD^Q$8Cq`w
+z;kwAfm|}uat4>`Q4_^zsWU~og4e|ib3_)NlF~@|(9=)C>0d(($A6Y=qr+ESkN(Ezy
+zx{v8%KOn#2MrmTY*oJRxDI#(hqOUCQO86zJLh`F{)ba8z+r?gOlq2;0nF`(z+0=6n
+z6}~LsEb+vfjz;<#n%RM#kExclAD-Jyg{oOLMR{YqQDP8UwHrCn1~G_Rsom|uP@WCf
+z!$|5pW(^8Hj!u0Pye`Ud6h}53gMKjF{eDu`I{vXYJS%pSN-;_zZm#DTUb37F%;jZ6
+zkuFzb?qN!S`MrEVLn4sYJ&x?1REyG3e&_?puN42?PxW+{3Mdhbb)5S0bR0!@-R`$&
+z1}fk_r{ZdKmme{HnCT#uo&-2>&)RF9)S;y1)$lVZqn3KMhYnQMu@c?)U09MEsa{d6
+zk(_zB52x{CoCj9d`hP&F%W0wXNAF~|>w4ZNU4EC@b{7Mqep9ZnI?xwL+c7xYnkRP<
+z+oQ0iW{Bd5?!R>`W0l~_8>2>VKGj2zLzZ??noAM9fZsH7CRjF8w=ro7>(`x{+1RH&
+z$GZH?A`v|853uIQQV_L+7?j%X&c%I5I>yyE6GMl2mVY0^>|E6}AEw_-eo^ns+icrR
+zck#NO|3VBxDa-J@C@b{lk&;nP?g@fUgTY)1O6FF8G0vt2V&#l^gxMmSM#oXqh+u`$
+z8V#YzfHB(LA-tE_M)V}<L>gsd5k235>CcZ)Rm--h++|B7t~&_H2E?K#iVKs0JXuy)
+zu1SMs%Ss>LGHSux98yE68No3E*=I;SXLjnss8CD1{E!!N)5(FOQwJDDQwYX*piRa~
+zG=PjNUlz5#?2jV%h5K?tI_oLgA1DD=r$%1Os^Nrj#t5QVmc>zDmwzBRdVmOzu7U&8
+zznKcIfyC_+e;(dLarwTjr*jaQzX7vr=Dmmm%R!VOv_~Y#bQ;v5%;nX&XOcjRbhAT|
+z*3RN_KFA@Cf@m8t;H|A@z=7$$q|J|-dE1{T-Ea_8y8+WzB85G{lRzpl&b|tG;WZo7
+zV47l_WmtFW>%tw5>|ZA1G-MH!7ZqD_NY+y^{JqgaRuN*T@7pbDZYWE;(F~VPL9F$I
+z`#m%MHQvr+sXf)K#BVa&Cdi35m+e4I^j0$$L|3vnTna8KpsX+%%)un{!fIsR<opS0
+zbmLM`s-L%^6y@5@1j8)~YQ<=EB&^<g#V8s9XNYxV)1ZSH<EimMsJ3P8<(->HB;`Z>
+z^Cad{^W<_SGo<DMJTW=aYLs6eKxo~HeEG`FAY5+g7^ZA-)T&Gp+@wd6NrUD%4HKFT
+z1a*%jTPL;oT`1`W6G~Mkm3pLGO~meAT!Vle(39=gFPeST@l-$q{Ugv$PnT37Wt}0u
+zHJu?CYivg>qGvo!&*}b4cMbY+VIbaZ@RCMJz{kEtW;xly>$=tMLh0NxfXH%>LnB`@
+zbut`R`>xCU^8f<nzBBi{)I3QrRTFS&eD&5!Hx5|&ZiG;!Mz_I_oeDAXcx9B(^1cdx
+zHw-nt%!g{~xrRzwt_Mz>h6%#dV_spT00d!j_TnJ$BMkx6SO-u;1waiEOt!D8QYD(>
+z;vFzW-xbBGbX$##k3)lYn3A8gOAyMOM^+dO<^H+j+(~OL0wpcC!}9?#`kU#!J&JAl
+z3|X^GhJ<0XP<YC>aydX|p6EMX&tue}<73lcSiB1jjr*B4q}c6&;`DvktderhTub2&
+zpX*UZMJv4p<;X1?pn8|pmsise&U+-sq1l<pX(vz8y(_61>U-A0Y1T*uAiTq3n_@Pp
+z61v%t&w&$C&}vXS+=6noKgMgt{4^cIkxDan($zA5e`p%Ajg88pRE*+hK8@mM=OdA3
+z0|PP75Y5k|K@YRQ)8g;t^ZCBTC}3oPK<I}{gp?dGf2Z?aFkV&v#Zqs$N!6^qNtJz{
+zg&(d)$HLJ`lJR$%?5S!tI%+Tu9XklG>QB2u1}#$qh<k=K#au_-1FqY{w+ui_L6jVj
+zX*58lS@*wCyE8&|kyZ~(Mx~jK%Ay9^!{ki?5?3RE87Yy~GHH-Fl#i3bc%bY@TJL_o
+z8M1cz9p}^io@OaJM-<9mt_AsJ*c^hP9uT=H@yrG`pqbr3x!WIS5J_2Xht-1{M3TD|
+zY>m)lT&e&t!3)3yZo3sZDJ?Vtw{ACj4&Dd@8e`>~34p;901O0qC_ut_6rk#HS_g3`
+zt=-*iwYx?H!(~04NaJj*+_D~A!VDq>bTbza4YK)Q%qnt!Su{@j4i`v{AsTc$?^>i4
+zg5^RPV7RAa0S}*)v9z0Er{R_=J&nbVvcpCMa*X(B6HS$Tl=W`=b<iE?&Gv`*KBc$E
+zIU~{2)Q&e44S;<$4I(+_B?-S1uPa79jUz6<Mc(nP!Z2aR39z2rIO*6qI6B52Iq5OM
+zhBO9fmU542II5$yIz|;f67wJZj8Kh4HPJ|q{Iw$w;8wb&MnX@$*&~2jUFL1Qi0vhC
+zMhhWvJ=nXien{xc4SlPp*svrnMmv(a-(t84rQHZZeU(XwlkSCD;zfq0<7!^EoCMih
+z_2>oJkVQTPV4jx<j_#6BBhe7ayB;Ymcp}g&>1oq{%Y>?mz-T8$paB@=Mu8~6ET4Ht
+z#?<I{(NtAo+-i>4N#*}2Mw&4qw%${(n?@JSVRfS1Y=(VK?%tgghv>FMjsxM4&|?^v
+z8qLqFK?Q&#EdY*l%bq}D>c!PX@dNAGVMch7=7)GGNDd|f==#ji32vl9=*P`x-+Ky~
+zy{|{w0=UeX&#=sfBwZe%?(ZoaKO?zp$6Tww3#Du~!&5d};guknu!Ch40Oluw>^Gry
+zyk5uDNnOj)dCfrrN&#RbsW*FVwvK(#V7Ks}rF(TGXvSL7gdmM5A>eRR6l1eBgmNB%
+z=AExAR0Wia7z6>ETHZWSk8%9#%B>~_<-90{buLR&Es^(QBcg#U49D;|OHobtTm+y*
+zvO&y?)W_0s#PAoxqYdP@<icNgk2cV2^2Od^(I7Kl9E1&XLYV-zQ~=nrP39P$wWq7h
+z^1a6rz>Ocsh2`7G*yV({<K+YZrn9IEZ&=e5Qh)@ZY!?+6W6X0T4mYM&S?W%WjsY{^
+z{qp%REdE^!%gq=PB>^>ZKDL7EXm$-+J{ApnFm)k$m+-}XyesDRz^;r{q3c3)9+ODK
+z4~?~!Ew4BOpV&d&B^QhpM(uE%u9lG)C9}P{d{zvk5sV9v1^=bh_4dbDcOX>x0QMe4
+z?l^P<?5+1-iinR|!*X)43d=u=>*ShG2IW(SU}`{%OP0%!+Q3KxNp#W?#m}Na?jQoC
+zzGw!PMX>;cI|#3f0o{hOTx@F;Bmimj5NmiUmjNS#z_)T~y(uEClx|$+0hC(?mTR_J
+z$yqcBSg!_o1FFjtz!6bEtxZ!dktk9xk@+xwr@v*aQrPnc03UXMT14#Kx<@D(V&(!>
+zdU64HYuaij163Wfw_9%Bh2#QjvN!@~Ng_@0^v(8ojhWka5sXBMd~iJw?0eVF1rnU9
+zVH;{jIe^6Q2l(wc&V;`-G;-q@7#!(dNyg4=Um2kc4M)?ASI0vN%d#jH-xfez6x8$E
+z38>vDkj|r!CgG0<RG0b?lnda%CTBjj&Kt+sm`2BvvpXAeG5}Wgs!7=qfh7>WylYn3
+z>?p>ehrT?rCc!9=Y+gXrAd#X@f=GmO@p6-ZbPsKGoz^02CymWLdvChfDuLZNgC*+4
+z+hM6P+a=3Pqy2Ql8TPe7l<nM5)}uA~KUscZ!!eF*og^@OfYATrHfy*~Y?la>;UdU+
+z*K%SIAh#t(2l~q(R2W7PKIc#ts^Z3gr!#m;d2tsdfXQ8^T@%PIS$>{|`0rmEUuCWk
+z00V=_9pl^S1B~(ahYDlRnpW-c4f<!K9=#X(%~Tux$fwSWOsBo`*BP|Roemy-WQd9s
+zgx<U`2OtR7?S5;d*W&GyDYk)JnL?I==(BdryXka#fE>e6<QQ9kEP|XsYmCWkP1Sb>
+zN@QG-?oPi~_cmkx(=<aYM0@8kYkn<<*PY;O?Ee4q3M-@tAoS~au{DqEh8xGaz(9Ec
+z1BHHkft<2t0zs5r)Qx7vj;*r&eJTAZ-3kE7qJ@_kqQtYVg;KZWo{7WRI*pxsZ~|G-
+zw;M0AvtkG1cDvUB9}|jv+QSB<-5F8<ps#BHeJM4YDUmt=LaLTo<Awu3t)XMf$1;X-
+zfEW=5?2t3+O<l=d_U}EDz&leZ8KU^vhGT(HKMMMop;hpp0G`9%NqPJkW0^f2=hNFR
+zrA8W{-+Uyq7y;;uI;!dDE_&}6Z1?+)J|1|e4ulf0SF}TqP^2=A$OPw)@YJ4fl!bA#
+zVo>&SHt4mZ9p{gc&Ye`N%$*eD0(OUV-@KOB)97TTnuqA9Gc<0PKMWg4cKevbA_CHL
+z{{3Ub;E%i%y9kKGX(O>v0zheca{)pdva|`tyZ#8PfGn*e1;DvVW?Ow3UYrVi0DUbh
+z5s>8!u^fq)aWdN@QB^uufXk4M=198yEVJzsmG$4qLs^Kg0P-czZlKx-20C605Id{@
+z)5;G)QO{*);!JuaSv9VVKUzQQr2VRo7ct7jL}dR!PU>L}jC{Ll`P4`c;&~WFh&S=1
+zfV5$Nn?!@IJ4UtBntyQaBnPYm3jl`p02rPF`6jW{-9b4W#X&u{{0I<Yf<UZ@JA)u!
+zFt;FyzSI|Km}{6`q+YinJe3>DWp@`ky!^k+LFSmyPC5?s_Ud(O7>!3f6_sMo9^+|u
+z9Gn73Ezax;jB~aFDnlj$>F!K`OPfM~_)&$UyJ@Mc+Y@0a7=Mfu0H&|O3`$aJH^7wq
+zB&pQ=WB`_u0a!`_-oZx6A*XxlD3{3GgThiiJXOvwD3KR^VMCYp)VUnq=Ip?hf&|9;
+zMu5H&*|8-`4WLzqZm2n)afk_3BI85JpK$g8b0=F7K9U9k0HX6Q;IdVbS<amjP`Zt5
+zK;NRNmf&ZdK*#Y@TElWT)N{PLy98dwMw&NYyLifZnKDJLac7U>Dg{ua-+cKlaNP-a
+zyt5mu|E4_Xe1*CFzv<x9Ye6~EJ;YIaLBFU8#2Xy&QjY*{Er{|4TpbC}jW;1w5b7h!
+zp>G(2Y-{*Ze5f&Ad}tS`=tTeD`9Ig6*sFN~+Ikwk3)s~;05<?r-ijf?=K?}g2x-2o
+z7{?IZbsNfaQI7Gzm;z?lhsN<*q#lCv!X6dARHpo5<M(qhZlpx_5{LKos|U@zP&+^?
+zajWDnFHLOUxcUHCFsl5*<)x`Js>`P;ua=wQd}2*@)Gqjbzr!$NmZm&NuWEfs@$WHK
+zu_eo0LV4G(3V^&vQ}dG+PMwioh9ft-Bl&^EpdKPa<;nmB0=^+MjWx7uo<IsTTNgk$
+ze(I*^s~lfN{1qeL4M*nT*sB)cr2JHcBv&-3uS*CY(jks+5Njv-Wfo9GxOxO3hw3&H
+zC~itn)sb9%@nylA1pe!`2B<9Zt{VBJA|P2JC7`TOW8g9nNcZk5aF#ZvYZ^_DZ^gIJ
+zTrwat`%R^S_+lc3fx(iTr-tdxMCNrS$uLCwY^&Y4(gQ3A2;hBS!1*pVky$;F0#M$I
+zS`077acA?Kdwoi}wD!q0slj6UxR-!hqH4Co`Z<r805u4HGHc4h8zUSVG!7)4B%z$;
+zBK?3B$^k;9AC5+<2|)Qpgxl8?M}z;fh}~)#?%qN|^K@TrAS7-{fM@=S49%`VCOCbk
+z;*ULx0YXojx{zp0u<C(c18gB#xjCNPC<_qF`$$}5M&~OT>9ZRDDm@69(ye(wOg6=8
+z19F}orKBX8cTF#jA*uwa*VCawT-L~k`F4S?d`59>1|Wzio_x(ddsEjZ-$^7w0Z-=4
+ztw#ADx*5^v{g)BF?IL*zq4s!2P5>tW%Sm>u@L%jpK{+>M@G5J(0O@cJ{9byPljq`a
+zO^U;tWP~*QR*B3MA74oSFAxx?uVuDV&1cm2u99WWTAa3|&GU-81dIr(GHk_7m+W%e
+zRX`oX(cM=95{>tukY<gr$i`|fKN<xz3y97^m{3AqNMa3?kEGc(C>)B>fCIs}0`M^n
+zz=ux^;QRp>R12XYdZIi5VRiZxYy7(9TDuV-fSZBvp#sRjAMi5>;Oap&g*13Mq-c*s
+z+(-<F1{e;qjTm4gBE{86kI#{Y;NpB{2fufnqW2V|uhNcKWU0+h={EjT6RZGMR%XZp
+zyCvR`bHs}cUB^%j$N>&|Dc(j9%CsQ>6xt?{)6RTMopi?)81?@OZ7_;Z2|H2;k(aUj
+zK$n07+S%IeW*9EtV{YNck#{ieKzpny`2iDxzkv@Rbaod`<H)|BL_}NfoL`>?9(7|l
+zvRamcYjy0k7jx@V89>p_D{i;P3rJ^Ufau&%*L;Bhfs|lan=SD&cn^TGjgg4%k*)A+
+zO;nE8n`j)#+TwhoRO8Sw3&<&SaVJYHdH6}dwUC|7>jz`F>j&(oQ4s)J2K;9;fb*N8
+z)BwTErB+(V0eP|{1j*{`Un)D}-T1m}9XAq-I3dP3PU2`_#!J#bwL!JZ@K|#Q*R#a#
+z;7?8TjObcM?}XprA9rQAP)7lG8UhAAt*74!Ryq!Svym*h%d>X-=5FrL^nZpB2^c~+
+zU<j{R|4hqRU-Gu+0w#?Nc^^^))LqP)>Du*YNNbr>VmN5}0gE9AsAzzk*)^^MF7G-(
+z6<imu0UcTb=+IOuN3#E<q%;e#0$vMfatqMp-tZbU(}f4%`P}24_DBH29#n;<c}c?%
+zZB32nZUnH;5}5$hsq}iP04Gq$szK@?1m&}nhH|!B;Z-2{ozfU{LMJSBV>&zQV!_|5
+z14E6WBer+*$2MsZoZ~wO)o#d1=0(rmhTe43!QU{l!}Azjhf*D>42j_vm&%Mk$XrFW
+zaM=OFJ_yt>kK>wRBmiT0hKvO+@y`Fa>f3<&p=zDt+!znMi%}jhEWOejn$~CNqzf&?
+zCw#CZ;xIf;)m<*$F?U$J6Yg-(_YAS{#Z)p51B6fzZ*vRE>Q)4x{v#9+e{q07qjHS5
+zk%aQPB?2gr&^@)3K>w3Kc1)cuiwXnkTQxFl$bEp2i2%VTII&Zk^jJ{yN8123)bdAo
+z*5tcTcDFJ>CEB74Wvb%pdM2or;%x3hIW`PXZz7`_?zZ#T)uGAStsoMRd@u-q2MD@Y
+zU-Ee|HM+%5XtH@>DDAuylzER?gY<wA#?1qSm4*}mjNAYucTrtlKnHC*K6}`E{%#1<
+z(u~|oa=Z}S|KVM4UH8aXVP<EjjM6K7es4&s$~?pOz%P^#cvE{Mh1F_b!<|3yb=+xH
+zCZ%@P_v;-n5d5(R2BK<@?KS)`qwVa2P~<6>lgqTvZ@yIx*2ji#@7;7oCzDP1u*+1f
+z+OpyT#~28shmLtEB>YE}Plm%Rs=>X?r}UUvL?2V#zmnQ!37)-FOdXPAuR|chG2NR3
+z!B)-iTHpXnSF!ZvRxpa78Xn^bQlBN&Jge0Ek`N<6_@z>}-b}HUB{<_PtU0T`*bO#l
+zZ7?4TKNC$^{|6J5dZUL(9TOON!uy46`=a(G1CcN4SmMsb#X<*!KDuIM7}$E$DDxU2
+zoja>gxfu3PdT0C;R=C8!yo5<R`m3#%c4(mXA?Ru(bmZz?*D~=^;?}0-)Rk^a*;RUY
+zZgcn}tUxdLD*iHN)iCku&H(j*c3Nhd-fZM7)rWQWM=Pq*C@D=VZ3lQM5*mBa_;kwt
+z-T347r?pxZ89EPgg{A)LFkhQnT8C&0GxaRD@r=y0!FNqtkI?>M4DEx{>KERAVJS(M
+z6Ky|mp;p+<rS*$eJLZE{=O)GKuU`|>b^J|`4o%U(suZ0(NqUCfn+00=7vIMW#0ecI
+za6GPf;Ga|1-<cV_;IB#Suu10&8?s_w3&*szzjUXUSe>xIz_}erZ2lwg9@r(Cf=RUP
+zT#J+%Ptj(h2eNqhz`Z8zqA?5~fQt(Z6Et&GzvcbN_CnXP@ZR1CUH`*`{*20qImxW~
+zrKv=h9U4pq=Wyz)D*KL3Kl|FLvD0AJCjVcFPek(n_;3#*MEy^yM5pi1lyax^f1P{B
+zlGt8M_&3?|uW?6lGJ_@8jqLHIZ2k1=Sm0xHIeD&@{EUhC6)RbP+nxI#AEAxG$>mKo
+z1#5&S9sxqzMuH!beGF56ip2M`oCW#|7G%rT<>q`0vj3c$`_Ih$siapgO;xUKxx+Wv
+z*+4$OI!{mC%zU0QyTSIn5%i$&ca-gpgH`{u_nZm6xU{eF%EBzxMWl&t)YxX=H{KTp
+znX}t2vB>&P@yt<|O{0M0H@$kHbmxm-$3<qnunL9luUsShRw0$|v|#$_M(9etK(D66
+z2x0Z~k#h6OzP|ev%2L{0e_9qPJu;i5h3-9@%g{F<WX8xnAd*L<it|t~2=eZ1m^Ysr
+z(6w<6SUUR1E3~U3kSnNGErBk@9WxMF&0e4u^{*Eu6(g@aQk2yG9?2W1_{eh69_4Jg
+zFr2IH<gwNF?>;<pK5gAr6v(lhlp=dHXw1x4$2wTwuWQEph-#J_Lzh;X@%&<iqerE^
+zL*viRYb}&-eF70vb%%$Vj6(RO(#^w$z4iNpx(Mr%FP|I*ZqqlfwWg<8AG9p7QJ!rz
+z-RKTH-?1-WIu|nNs@89qW?_z45+QbupPSr&rgG=w0>yhBk;-I&a(#mx9TuT+o0adD
+zO22O=X6-1SB8F$Ebl2yd8meNWX!>7gq=X5Ke!8HfnxzrF))3yOt=H4~Z9$pg$>APe
+zZKvtB@RgHZs%XUmHK^iuuv(rJ8zT?p?-AOlSk2Nm;3@XVz@PQGDnfk@J~J*F2`S22
+z4Dcsc{*p?22dn)0Zl@II_NLB32U*X2eEN3t5;+13LWd@~_sgZCG_nT*kICmz`8xv<
+z;!la1K|eR<4@T>0Za*9@69HXI%@C>opP%c>z^vKT<5lf1V*Aep3@8G$gTs-XQMt2c
+zWKZkE$gxi)1OExmb{uFl>&YifGAzDvjMbi7f9$=1OkF`Pvh1%5{n(;aNbEQ4x+hXS
+zUixILlKx@I5$kaf``kJ%^-bUrclBSC-`|ni;N{BTbDd2p3T@p-)ZFPS2w3%3r^YRN
+zbM;N|B}&URD<F*x_sR@(y<(=t%Ws!H{zBu-o~t3DWTC*f=WT%DUV%QavxKd|?XsuD
+z`9izt7VWaTqm^w^qm}#{6CP4)t>Dz*Gi1a^&fabDKX-YjBsu3DQI6VQ0t;QO7J;=c
+z$;F5XB@m_}h?EebH3Q!CJ`-$K{>`$(FiMgDYlJuVD|~{D8WFp_(jwhoXN%Jo<^}D~
+zkdA6}Ifs<+n-~!zRKC2=miWN_gO4l7z_Ma>Td#~`FSUhu1WN~lB3F1jG;qNjspb|S
+zW9rOjb#2_ed5lC@X+t=s;IpIBn)Xzt6!RWk+hm;y2F;XCpZP(0$o;$O;fwMndt!XT
+zbP3EnI&eqdSz0Qo(=!2O;t7AIDyqM|_3+v7NCn$A59p{WahRBB@0~;#(tQ=F|L-zw
+z^fV#)J4pCdWJT#d1Lv#Affwi659j#b{m*OvJsCSq0RCg}KQFm_BMOxK|A)x}pYVTQ
+z`+py|_KkS+xl`0Z(1}cV>x2(PY@;xi5wyq)Kh2w0Q%}iN+PX(Q9f0&cGdB2Qex)UM
+za!)?IjhbiYZv6<R<Xq5gzSM8e{>OCjn%B>B&%WLu8X`=Lc#F>9E6amm`Qf=n{-%q8
+zim`-PQdM2Fu41$>?|{DO195w$>PU_0MC+?d_?sk{9#f;LA42+*@Xoc{y<$XRQcXf5
+zNJ_{BO%>nK>cevy6jT*p)-zGLjDqP*+bn1jB5rOJ!_v3%{{8z~v=-hg{;6p9Z7^A-
+zEUW4yZYROFZ!u9U&tH*$1G(V8YdRni5?UQe*Fb)>Vb3SD1iw&Qqg~S)_+9w^so^cJ
+zTl^({M<x)-MGOny(<Ut|O>ZLAh(MsWhURvx9kueU%LJViO%0vrghI@GkNn#80im?i
+zzfbu5mEW!laE#w{xagoelUdUp=)Xe*p}w3e449Y_1UO6yk!ETXGD3$>LF;%40gqcx
+z=vv?#X174)E$<7Dcyu!aHnqQNN=0EGNX22bt+ePLNX78PRLAg~-&u0xI|>MNOe_5F
+zP=5lL_<r2)0O8NSawWdz{^B66mLe35$V+8I9}+FP`p;Z}$0&wxGh{A2PkI4;7@;d*
+z{aB-`e?<C(57bnN!z=TLr52u#;_#t`5R>5)XzKCtK2B+=uCspxy%>IRk+rnC=|Is!
+z+dy^n72A&X3q4$tC@@c4T!m2lP=}?Wf!RN3bhmowB2MXYRnTN<HL#$q9~Xh*TiVPF
+zhb}1|91`bS`p@nKq;9?uhgo^olpawTWH6tkRf$EU1zFHX{v1)IpVisM+xUecB7fo{
+zu<jS_;0I%9?Y#JxWzgt(qX7Ffi%NSq^uzDD5v40MG5NUhXfw}50yaESvb~v?T2Od=
+z%#T;zJf9g+=4ZIbJ0{MIB#j5O_Q4J|^9r*fhtEQffy3lLo6u@#*UZ%$+-xNAe6Q;y
+zV)*J5r);+sL9d9_*bLu^7{*oNl$RJfM$TXtz!N!iKxdb|f4<@E(<<hXKR9Jax5drP
+zuP*UR2sSx2oHeL7Ao8g@WLR3hHy~bHPR%{L5T)GP`{={d{><un@Ca+I9?lOIe@r~0
+zb;Rw^Zld3EcA{0~F8JniQRmh8D0B&dG!)E_Ik&#LwrM?1apVxueYSoURakgMTH9Z|
+z68YHWf>bIYhXD^`fOemS;Ynea{Tj>uK}V#&^bSJ~NMTpf(C(3|BMPXaHE7x2f0YzQ
+zAEF^PycGTpysO>Wb({a_*zQsQ(R8T|j@(W7apHKMkmqofkk{G6pd9g>-@kJmv<A(&
+zOdAha(}p>wL=K#+ZZn*<`T&2dl`))!I%MuH;_H?2Lv%qxC~?rr?gX?C=c7F~;oGan
+zW3sDf2OfsiET^*Wr|nxffL8qFbeOLY`YYGZQk!{r@vjF*ic*^|c+M-7)I~unfq7>Y
+zN{+*keP{j#^L3HJ`%8LeSBsk$H7z4&Rv}%C8Y>5<VJ<P58y67rx1n7fD&G7S#~xbE
+z`9$Br*{WYzA9*wCK<5GH{_+t`Z#R`h#}4D18zogFB9##P;moskvg)X2+bKL|;E8|C
+z!Y}Y4rytdryr6xSJLg;U<DV~u{um-e9Cf}`$?=4U5@<>NQ(4o@@{2Z^=-Om19@94?
+z5Hr6T=3xY)>}j27;khgQ$8s6RnI-gYDeC3GZskZ#V<B|xKvW{^vCG2uKMwgNLuT|h
+zD?-&f)CHO=Fyhrao^02jW5=G8Z!GUkt1c(8L*Km}ahobwrSR*jDu3~8Qo~6?3tYbP
+z#SR8pTYp6ubcoI892OBd`T~_L_~qWT-R@a`T$v~5^IO1JT6`pQIJj3uoGd*4>p)cy
+z_lrwVhB57?U(Oeuyx4aMSTUk8cqW|X*UR~bvPX%T(qrd5zsvQQm01f6RC5Q6Q-mzk
+z5pT3^)#5uFbuU-GrxZ+BN#4sG>UD(4s;0lLvrtiMXvC(GY6gw9!C&ruVt7@B*b2{w
+zjz4y_3sQ!Mf}>i-^@MDtgyy}b+83%?#?8g_JclY&=FDIdjwf@eFA?5qY7dQ7uNGhS
+zEOKkwep7$FShLN4DtJ|&d$}Frq2PmaroF|Zxip(PTCHfIpL<;5_ACU3HQK|DFF2fV
+zKVjBO%!g4*^>K}lyj%biEY*_v8n&`sa-IJk4tU3D_6sH5b7bdD*^`rbC6oKhB;#M5
+z*1746R0Hv(Q}@1xhq5h_KXUna|J**>9wpdms4Bl}+TOg)z4vS8h1-a)IH%*e0qm${
+zEsMpAe~<6#_CbqDpkDOw#&e;H_fxiodwLzw3@M^5;m?##mX$DXgd4({n<pvC0+i;k
+zRA(|8?W)R0iD&Zf`1l>GI)x&XP4`;aPaIxHs!Fl%2vYt+(_txM0(sgeM^4^NN}t@a
+z*CUQKNdGmwk2jY#mz=8mY<_aNl3%QUixk2=nFXo!Ix~W748QKtV141-KHJ>T?^nWE
+zS3y`1{2pK+8MnV%dPmkTpps!WCD(5L3q?Ee+NO%CP((Y)gT2KU6F#Mht1FIuf44(I
+z&M%JUSWF9<q`SP|^S?yXRp_V$(~Fv#MwG#x%>lDJ+x*(v$u)VaKv}gMuPC{gMe{tY
+zK|Tj3@mq*SL1q!N&n1zEWXBeT0;H9lhSJ&A6HQ8zgy$=0Vc|0+^A&VEzD@G7HmOTB
+zZGxhO!5|{-HqB<G#sIbc&fxtAW{#C~?+9=B^mm@pJ^0+oTgr8=X~usdBYdKqs%_?Y
+zN-KO~EG;Ps9?6757pj=A6cRUE`yxrr{;=ue=hEai+DQ%ef7$DE1uVo?BQ$QgkS<UN
+zzwN009qMUhd2RNg)j&;PWZJ}ZReWh!u(EK6;!}Z22fnz{7zoKbkxB3adNYDRf|z=m
+z-<yz8wItX@3B9cD*>!`64@xfTvV_0Ip+9!X*?%1~5x1FfUz3zTzzr=q*!?=~+#+44
+zpMaN~W?>0s5hJhlbS)H2PVBSNbm9gL1dCPP4a``*8+gEA;G*+hn9u<DP0fb}*jxa-
+zQ^agM@*g++Qz<EZW&gNgp|yPNTTt7Zab<H$sG}kKNPzG{R!8=r&F(WP_ktgG!^KHw
+zuzq$9Bzh~ov+!{LBSEd47>bp}jf?sR>X*vtPOjfy7cYzskKwb)ifRoIR##3J-HiQk
+z!`e&g!F?5#S(g|UlkY)~`)k5}RRwIZFd#%M+bJq9?%<jq2^FKuJkx;tdH<#-*t`Yb
+z7E%pYiGc;1n;*abut-Au_JyIb=eV7oqSe>u)`I}AK0awra5Lk$5B6~f8)IZd=WCO;
+zqVZ^NmMgH#Y~k)(o#*+^4)fZpMv9vq9q*4jo$quV*BG``zq0>5QXKAa*v4u58@0kL
+zC3MLkx$Yk5a;K}LKkKLs@{h7ho3M&+D^a{@xfBo*c&cN%podjSC#F%j%GXCu&-mUi
+zc$6Z#U4(h!YAvPyQQFEzC}Y;n4I*5m@N2fGdTk!{PX56!HjAlRsK1)?Ovdft$=KQW
+zz;lS{BU7#*o}Z2S@ZG&fWqJ<7iK#9IX=^X9RP3Q6@5tA!<!VCohyC`MCt>P#8DxT_
+zd6V~uBp5+qmP$O{H{~aHd)ni>G}rbYb@1d0No2xO_P(WUDHAhbQde!*^YTK|%KQU`
+z!8=Q?zW!+6U@ckqte#n@UvfQnkz|9{l4tVw$mxS>)0fpQUnW<?V*-9`s`(t2qW{!?
+zWC)ed)$dC){a4ape!C&Ht`n3A?y9!hst;Go4VIMuIM%M1JG2`kqt#nE^F&tq6vZm_
+zn#op;J<?S+e}v7x>WS<6sd4fa_q34|_%Mnllg?5q?=aZ^nQ*>wpW~fAInLg3`2v*7
+z%j+RFkXR=ZqjkR$W|xq}tA*Q_Az6596C>(Jc3C04QX><8pV*NP;eLJNFAYP~<@h8|
+zKjs2fjK0#VGwfpd&6o2^FJF9!Mmj{y1m>8^lyG@X!<9iV7~6_h%yRO%)AG>pmx67w
+zmsl4eye3$pF~k62Gk1b^+`+)V`No9Y%&G4kh~o9EsDLqlu#x)K+q^|Dbf}sfhki|`
+zl&+Gj-vcJ8&oC`Ulqz5Ls>AEUjJ<q>_r5XNqyFxl#zeYRJE6VIg8UO~Cm2n6s0=Qn
+zBH|bI_&0>A(Vx(R|59Z-DCA#EXRbvNY<8Ce$~%Bk7F}Y@PCR|+%|4CT6S+I>Pdf^D
+zu{9dDpO493lox;6{n+c6wVKL>8dsPv49^w5?6T-3wt5MVLY71lQzq2kO{ClYBzD{$
+zZ0>4`5mwot6CS;{^oW@^0AvujMWJt1w502Qk8mhF$^<fE=Dk=QtdN#@mGAH{BHCkj
+zPj*M!=;>ybX`vIa-%m1uaeQjhb)qo$ySHS?<@~oGcg_>G@)}O+)Re#<tCS2jbjl3=
+zWG-Yb>TA#es{yjK{WKZ@Vk!sDfSi9*<JZjU58~j(>b#z^MKMU6z>*rUw2ob!4^hS`
+z;q0Z<h9j~DZ=-4rn&+6k%lkTxsDkT4V;1&B-z;$Vb=c3BnCN#+VVXdof+S;hE@;C>
+z@@e6o(Cq`E7A=I+l}q_@_9JucqnIxZatddHEBc!W=CdfjZOW2HUr8%^I*8!GOo(wx
+zib%t=vf&!)+&R^}J2#|eWM}0SB%i-e*(;s@35#$IOez}sV`lp|g~7zNG6UEWH-n73
+zaqe+nQeHs$SL(vNo5t(B46D7;Ia7&R%s(RiwG^gOQn97Z(|#Mln<6W4rGU1tLgC*S
+z*s4B~i3@u@8`1an>G?2W<r#3rbyg(u+atR0OMk5Wy>d$2Lpyuf9^Qxf-zzhJ(#yNe
+zcoZ4Gt@HBs^so%5TFWKkUEZEvN^<GGFOYm|QvnrMZGdr`*k&wgz4U}x>Gf}G-WCIS
+zhy`ELdH?YIFmB-3w~L;r7I}nRi~`f}X4d4m&G6EnsDvpbh|gC>f-LqfRtw3(Q=1Y(
+z>|TVICb@_H;QJI*_%XJjM{92TLvk}RFy!Ml!Zwzy>2+Na%-#I%nSY?EjkfO90W^NM
+z=)4exYxmdnQ@12N@5j4yhkaD^uoZYNH5yX4j2UI)Sz;6hX8u|EM%?R&+0;&{T@KC6
+zkbvYt-N;gNN9vZp%&oJjE&0>E>m)8X^gM4r|9R3>{OvFq=KoBQ5FXmTU!k>CLeiRL
+z!QSNrFS*y)%**+pg8Bm#R18uc{IXe1#ONg1TI7hH1`>ErgUDD16W+cKl*es8?svsf
+zs&7{RP0_)^ZXDeb!o`a7{*ETUd#V#w_s64T(AM9;P|Cf`-0$gGY$2Tm=+zV6r3Xt2
+zA^}#yEptub&uG-I`wa>=mZ*OmPGQ)5<)WvOG?d_oJ5W1cC^Y=JwP512dV=-T3gzC6
+zb#_!J+kYLW(sRfh4xY;o+GYLH+WysQ=_Sqksu`Y;#xI(Yq%jfG^`F14{O}9d0>0t*
+z;aN3EBL1Q}xW7B{(DOjZ+o0h7m%RhaF3v^WLJ$3et&>W$0+uS)MShPuJuoOPvom8V
+zS@W|GPukY7LPj#AjnKEKWp-Dp#1|HL{SKe>pnhODqA=3Eb#P%HC&szvqa*KCbMdfP
+za#YWibI;N*q0OTC+ULjm!4C^WXE`jbO}!!ess^X$6Fa({O`n=i5;BwblJ#@Yhlf7q
+zZPaL0C8J$tkLWv3_PuFvM+Cze(jGpA4r3l#$Tq@GS<O`-s6x42QG9%5&*YgkYO)yY
+z+~io(9kdc}U&mD9UaFYKg!_Fe_e`hGEE-qA7!qgo?+Etwb*k4ZeRn#p?696A?y2_v
+zWLfh0Rox%rVfpsIyTS%69E%wHRFHFbI9La(HQsS&n9#rZ)#XNL|D1zNgFlJ<c<a7~
+z@spxYg{RC7YlYw39@e1itGTU`RpwFNi|3mqVi%WA1Fw9$owIBy{_vEM4<m}V1AvKi
+z-#%o`@UF4PHTS~%<J2Ca5Z6&fOK0r#r$MqM7OG+OmFTi}w|L4A6YHfPWB9lC9~7+K
+zesj{S^|@21ysT?EWl^6tG33lo8YwRNI+l0jPUqoS=+vw1HW|4>#F@jlJ2I0pMP$d-
+z>uL9m)Qwn-xQ$ee6kB>}yZfBYWJ0q^WfGiHx_M%iuLV$V&<@SXa5zcz+QD1s16bT{
+zE2?LPy!t;ZePvi1ZPRuOZ7IcCC>jVYUMTKfikIT<?h@RkcyTLk#ob*~+#M3!El6;J
+z1wP*U`F@<&F*|!Do7o?e-H~(VuvOR0E!8WxZx46A79FZNw#`#rSA1naZh{O7M#U?)
+zui3!0%^iYNaLGPo@9^g1jpbA}1G<|bb<<4pC%=~-_~$~~ScBl8cGTMs&(W69Sp0^*
+zGc~AVJHwC5t6WgUj%#yA(#eGW$nn)T#-_EiczX|Yw{P8KN%jL&%hKp>g^f2t&Nofe
+z58~*4;@$emr_W-C7F<%JtU0^JMAd;WscO^xK+Qowwk&_G_Q!6xx`V)!D(OUQZvuVT
+za|Yu7J8ax1%bpJBL%qNbKbK{_r`Ouo-<-Ufgn84VN-|xo?0(x=MQ70@lDQe%%Eb9b
+z+ixGPlWxQUm8i~V8>&bD(N|QT3>zJZ!|=UGkNFnV_8O0&zWvvZTPw3{4Lc%!_4+Hc
+z=Pu_0RIq-$TN}q9=F+2EY17Z+1tExieBOKBsc{!-O?sx%57KE7enXYqA|Lo8p8eQ6
+zrKrM3daqBv(*P@0cecc}hbQ<)yGq8d@R>-D&cv6)b$!8F+T~kfqJ3Uk|2}|aZ2u~G
+z8oy-I=O^u357^p|dgIj&%$6CR2<FuBWvbY4^svQB2B%xQ>-d4NVh$M&Zu#|Pkpc~G
+zMnm%7k{oyl6;x#HDYhPZbW&+eTu_T%J@|Z8o>&{eo+TWnr8mwZFASEkVpZ#BnYbW&
+zFaM8h$ESL!W8)Wa?P{p0{FhB3wKOW_F;Id0w-0LJ3gLlurl~qZIfla*GR9AYF}X`B
+zxONG|*kP)s@K0;6{m_&TYyK=<l%7=CNk5Z3YFZ_c22U{Vy}p?;nDI=HHh53Trk*@8
+zc18$W5d`jK_`g`=-@)05y2HjPoO?}Wx%Nt0P>-^3?hTcTrYT%Go&fjR)7<>Y@BBM_
+zVIXGv8W-COsi*!bc&rA2j>zG;ckk3#n3F@VI*|X;b|4ZCxPr_w3D$T`-e0`_6M}4I
+zc{6twq+{4*^6NV0RqG`4w;G7U)?ECd!dEM|OjnE+;}ylrx(++AjI1Ex<%CyH*ZYuV
+zpeW(H>n*v{@1F}}_n)8V7ag|pxdVi#t|-0coOur24{F}WfcwZGuI&Lt+QAhR{KqMi
+zXD*1?s49FI{pPpOo*aWo=ACR;-<Ci@whWvQw{W3+n)eSKrH+#)!Axy>4fK&M6(xNh
+z@}q9K|4@Iln)Kk*ta9XCTDf7=txk%TbBz(5gqxkqv5}aytxg=Yw;`Kji1xzrFeY-8
+zAK#%_e!R~Vjag?cjYM`ajm!f0zrORGdlN6^;O;r!QSXxf7b7H>&s0uV)T^_*E0cA#
+z+w1^_TCYZUkUDPAyoP`MaZWNT^JT|geX$VR@k?fj<N}uz;;Jf2$QZdIDVeQ-({-?T
+z_*Ly$R8qYnKxLa?L!w-YaJLBq_I*M)AL#lSnSt~qFUnIVU$r!j{^0kC2m|I5Spfa_
+z>4)yXUew3FEew|sUELbH?O$4upti3r7h8J0mPzT}m2{m1i805ODV|_TYP)f`3HIF!
+zZZc<Aq0h)MoXMs?2mC%SUGRzXh%Jj6eM2kj=lH3-0D)b{LYZa-5uURedP_Z-@ZBgt
+zHfv9BE>oJ$c1;aLnIJaZS2n}CEYrCZ<3kVo3B4y|JVZQ=D>pd+Ix0B70%J`SnCae?
+zS_Op3h<8xKFCB+`f4DL^6h&@z#Bb_sR&vQrJ57%}<traMd;e<d3^pJP39)+O8<PkM
+z@Rw3d&B1b{=f>bSqO7|IWEN+&?d^wN{(ZG?Wt5a|z3y+PYgg1eK`bYWHi0dgtUSZw
+zQ;%mC&6C;9vvlmgaT%@lku2Ff`jQ9kuQ!~7)+RYATsX%=4bMPGkO_{A6_-WKL@wuz
+z^$V!#Pp>5mrxcaSEPE~&I@P2vRuJU@y=t-$1pIDzU!oHDC9}7Irzw?n%X88{Sz)7u
+zZNZrxLr#U#*Pjo^g8O`n6U0?jq_qo{71;ms1m_9OH96jO_Z`m^#$Q`1OW)VSUY`6b
+zl&2d>2P!0SBjan^VR*ym|5K=#6<0-vf6tT^KXPbMmBd^juQJ`Y=wJkXzN=XI0S)`4
+z0>PibeTh?-g+^7lgRUh%LV}4cLcd${tExy6`ya(~bA1ka%+zOXp{9iBZ$ocXE1W#s
+z9o3dBahPjjTFV`=lN)88XQ1&@*78&tNNRAFlpMq1)d%_3ZF&Vq^93>G$7WiCOuF6!
+zKo+>9?!-tibQZ?7QX}cspI^p0kW%V_tvjN_*WhY|?KALIFluPoeYKs#tTCPaP%u=x
+zN#;s*FPfP}yQ-hYy8unMNW331ys|ytpM<TivOwvxp(gkS4dhI8MXwpgTJNQGc<(0B
+z?gLojvgG%)p-0(_{vFzL{bt`Crw>&RsKNtXoi}o{F;+(#z`Kr1=y`c2*<O-(WyrTn
+zK>@?K)2(KJANxs6FTj>%+@w}&NdS4nyA2us#dRNo=K0^Bm(;B&WSj+*A%LXU#R<Y6
+zw<Kl{2Y#ZOj5*q6Wqb*p1}dPfD7s^Id&0DF`VMnZbx!F^SeTe{NRyers@0awJPrzz
+z5fyFPJ1x&%iZ9615uIT*FV`b7g;YPi@(Wk6b9|Nkj#Bws_)dzD%WfwBaOh$2;Rv^R
+z!<rk}1QN4itEH#LMF8!O=73WI8suzw`<a1++ryb`0*g$4z#96@Ee9$uf+m)CB)Lz>
+zv?o)qTH~JBhPg>>R=9_6Rd|F$o1r45$l=)fswq_Id)_?xv&E~=Qj4He|9l^C=x0mv
+z>#!ns*?V58#Xav2@z+lJf%(XM?(EH$axeKaZ%^?afrgXjH}ThGOIYpCBOn|(E2cmx
+z>h++8Hvbd1;+z{_b}TmN@+YS;EN`$R;Ko;;;}n@?w|+0U^bg_H>3?w+-|N-j59VF7
+zSO?9yk=$rs{Y3RkXoNUDs#G#}`i^;a`XW6$A0bz@YG#7^+zrp{Y!)2?;4AMH_QTs&
+z!XKM$^k*xqmme#0<9ZlD+bvxo603F9`0>{lcb_f&;0Ba?pu)HdggxcnNr}YxS`&cR
+zuS!Hn+6(6sRN(>Oe$w?$YO!eMO-nQ!_54ft^SBOa9?X`k&A|K)Pr^^!3Z1s=9q-tm
+z16`$dX+_t8+~1U5?^$jNVxq>X)I^CW1#`W=#T2ZfSzWRxiNB8056btc=l*QDb`x*5
+zdNKJznmipD>)fdKE}mvPn&W~LMl59|P{~QScleWi&)Nk;xG03cS8jz-M{bkxp&h&a
+z^n!1yd*bkzU>s5QtbjMz^Oh_O?&P~rCMQfvFwvGo^+5$|<Ep$oDfJPX61Pb;&$3_M
+zk)q|!p`Go{A$I+_3wwq4it#h*DuQoHNOkOX9PK+2N4hd0n}=(lL{2^V5$<RH?au7o
+z!x%xvtI-*6WP&_lDEO2k6#R9=PGAhyhTupRwZ;QOWw;z3nb&%qW?j<VqgyTUCKN#{
+z&qq130+ND_VSB|mHk-T$l+WkxZfI6}96a$(Hr&0Qm*)B~guTvEuNRLUXj71sJ>4Bg
+za)-S=)cE#!$$KPT?V0MYU7n~lI!*0HB72?=CBcJ4*V{$F3gK7x2;r;!hppHFVb!yn
+z1@myQqHcgslbh;-?4YXY(`~5QlE9(x(<!;PG4J-3ez`NZh#oTV>Cx@Mwr`_<kw^EI
+z>#kp2*P&Q;=kOuV_MqjfK$l||j4N^CVxpmBPuZa+DtiJy2_L#R>y+kK7nR+ko0N!H
+zQt>F!sMSnN4&O;v^(ZM`8r`Y4tfMc&*XCB{t*G2z9lg@DU>6?f8ta?zv8nUUTOOV8
+z@vQR@eu8z!jXhMHH{bA6KaSfa-KlPN)TfRNG>qv8+1c$n+PkqQ2i~W*kbYh0-uY{W
+zksOGx-Ap=byWu!lA3V|pVbsBXcvfKAY&gDO>t54f|5}7&^CiDYboc0ZuEm)qb3~Np
+znemuPB7}At?^o}jhL)@MMQU_SzMiangtvr|<;)K+RwK$jpwjbe@?XZ?c5ERow)5}g
+zcZ<xWRW3FKzHgTj@3~YU4G*>;5L1%uiK^Vc4}4bf4)h5bKX@8_7F}Z}1~=0q?*bgV
+zso(&7$AKAHwE=c{ZL+a3D+W!;i+;5v`MQpRupNoGbTO_vQAsDjNRnDoh0$8O^fEU?
+z3>jeQPiS;ewjy@(>df}!RBcTdDW4WMr=nDT=wq1h;27iB$G>?kVPs!vZ4%^)@<6N)
+z^+b13A-;JzAjbU;)OH}CHt>R>_&KbDIt<6-_Y>Rj{^K<M(aYjMho_w8b;_;I=M8)R
+zl@Ri#viFeVFE{9A=s1Si4vf*iS5L5gC*UrpUR*PutvC5@e9G)c^dz~Vc${{X1M1DU
+zg5^$5{L|~ZuK9Cg$AfCzPz)e<lfLgW6rbh5`n7i_rlhr`Y_EB7*l;vOuDEmw&)+}e
+z?K6m;@#+~I&mesU$}`xWLGlcmXH@2Ib>`=FE9=BCo!R@&x|@szgkI#0E7!VeE-wjW
+z$OCcqBnK(4GD8mwSaG1wWcxEfJ8<-G0r-aN(VrrVF(*vU5YG?(TSMqk#;~FCyl9*g
+zC!S;Xg=8WKz}sNS+I`X7o{ex~=c+A=?=vfFJ451no+Eo$nEP`eLb5h{LVOn~GUWZU
+z;`cIpId-;fb<Vn~Q<4@H^;N)<K9Bo?InPnD=vRtPrYa$CA8@`u7|)!ej#NFp^K0@R
+z??S?08`#5k-Gb}v-OSDDAFZTj+3|L%?ej&UlIyAwl<wb0+ama>S-(8L8x5P_QA)2~
+z^;i$jl!&>yf4B9?J<6pHaqJXRst7A&N!9uMl9~GAHmFsgf|XPz`dp1v$4H%R$DMfN
+zu%zxwh%)8ffmCTv%LCIuGPTFS!SBJ8_zTV>ms`!QYha{Op2*$b;ae@9`^aN&0|6()
+zs%Fa=Lyq!jN=!R*nDT%hTUk|gx3>yy-Ph(VW6axLbx*nCZHmj4m}d4-<wp)UjaQ8I
+zKVCr6k#lFD<zCOXlrMVR71MR~nR}J*pp)ie#RWkJ3n3P^)I$nEOck1@1P(>bGskiH
+z+LQ}`bzQDu92D0PJreX2lj8a83-Q}i?HWWI3UEe`=ZV1eD)O==^Whupr4{_SZM)-R
+z%lw?WvkRBEn?nc3?AVo3VOujW4ZiESZ@~>!rfqHM6jH{0Y!3p{Jy!jGI$Y85TS>A<
+zJhO}X)Fj39FrL*s;R{uska+8?*<LyLK##W`=U$i)(>FI)@pPb3Wr^ZWD2D9?^*TMj
+z!ESBcooB=x4q*sY(pKFxgZ+AFkpkq1i}JnZY;~lL!`<;74-#wQ%%zD0UdydDM|>~2
+zRmx`)*5nwo7+3_6cFc^Mqc5|ldlNN;t8))eBUQZ;(|}kiYoxuPmL6e}p8m=?R89LA
+zyM!8!L&$RkQ(!RA)Hk62PGvbnGxUudyw$AMBoA>eZE*GNoY?VQaN2rKuOplu8}4|8
+zmyj7TzTikSWX6-IuVvE%wKW{GZRILi{|jE0P>8wrsK%jr38NxpjC)Rv{%{gZuYAFa
+zV7d^%E(qIoF=M*$mJ3dSt9t-x9<dt4M_O-M7p+W@mMx1`1)I7w(ELBkk2#TEXQAUl
+ze_83rC~bWLTi(R?mvQW!ri?l~Y;MKOAfh$ulUOUpdjlT2KO9y)orDIrr+8eb?}8gy
+zpXSP@nmo;%M>X#U&Z|0%OB`v{%xUV+JPbK)z2#C?`uF~D)}OVQ+1h$nrWQp_Fkm#C
+zd6)*;dUq~p0I~y<K+1bz4f1svLW^qW=>)dkzy-^e)uoWOxgA$f&0!l#hxIX}KdC>;
+z)dz7Z=KVD;d{3jM)6@~VE#`Zk`kY@+o(4c4WnWp|s>bTS{@()nGT09;DQhlPX36;X
+zZInLmaWLR@qG`l%>2O8=vIbLj-`g=O730OoIi9$2S`uBd&a2yv6}7E-d%IDq$dmNJ
+zV}N<;gjQ4=Ee&8N@;8MHrrm;A_yennl1Dgi82GmL<70F;N)ZS0GIDPJ9fE_VF#haI
+z87nIRU<^BkcHYZ|C!K6{V3iZh5wH4%2q+)DUTWFfUvo6PQ!c@GhbgEW?ZlHkLE|R7
+zi`N47bTg}|w=G4A36~c}-v2afGnW>&%DE{E73OOj;(Ad1t@CAVcDO(visgqki~(<*
+zXp*SZWkPmDSZK(P?^T;_hAwVnP46)zKN@;}Kw!wsATSYV)7xUmR_4Eyp5s#LEkrSw
+zufs}&-9hMU&t?3az6r?Uo$2gykKgx{yFLnQhLfj~$cYLZ2XOs&xct40)B{GopSRN&
+zgs#j5Xz;Y?PV7`&SMexjbR-1)<Fbq4!-Bv0NO<Sr6j&Y8Z<bv6<JT<^12uHT`cI(o
+zsT<~FF4~CM?ftv^k#-5BeI$mR{;tq$Jgy(uuGfw55w6G7M8Dh2ghdWaGXJ?1<b`wU
+zHmx+kO6SMno8s{c%<ibm8H4VJAYVTrm(CiU@wp>U(rzjsO_@ND1J0(Jx40hqM$Cj`
+zo>orxp42Z4hE;DFI^g6#+7DXQPZ96#iuG&E1e=7}hPlXJsoRmI3%4ylp${ZZ-5Ecn
+zP4F;X70nbrW%`5Nc2A*~n2*o#bk953uB^PUDEo5d?)Z3N%M)jl-8Dyp&85{nJH^ru
+z6Brm9t1TW6K(m#)4CLHvux4ulse6|4VA=XnS`ro2#RF49#-2rmP*njIEGB%#I_QP^
+zk3e(dLw!~(J$5Y0p4+$@9U}zLdhUl8s->f`YMG52UmbJ$vS3ov;fnR~?pXQ~$*H-M
+zC<c>^AJ=rY+Ff1PqkyR2;`>VWbgB8cOAFr<doDvaikK<qoGzPcA3Vya)AwXDyGK(d
+z^oF8lA$1;nF5JRN)l;KOc1zjIiDct&YZd8~*nUR4lSOkxVeL>H>r#TO30qis2j}>t
+zP%X}}V{}>{Ge>a{ms-ilpI)itye+<?3@W&$m%isTkT|QlF3g>cHn}#z<IblG3-*<Q
+zSbiWO?_TP;^?>tB>OOzu-YCaCUJL1RD=uExk^L~XEc^$x<oo$-Qt6-DxYsOp3C=C7
+zojC6he|0<|a#R~~(4^>)mFfBNDjHU<d04rwa7NLk`LS~dN~L%%Vxhz^UoO<!p6erA
+zjm-6@VoU*ha|5ebc=}5E&w?XebUs{rXSTUt7VA(rLcA@oLvaaz-V)K)ZK(dK^+NMz
+zET&-NN1Z8s;kG+XqFAq22|Ih-T4*n201!0467_!H?$&22(-|$Z)8Zc>Y(BHA`nXoK
+z{^Q)rp<D2=0*L2hq&vWtKVE9zrVuleAurPgDE?>5a@$NGj$E$L@!;BR6MZkXQ)L+l
+zSWTD&lMpwB9)I|F3WgZ}ETDBQTguec%5F%=<7!R7YUHaL9WTl(iX;Nwa6Ok7gBtVD
+zO*Fc(3qmAMO(+vS`fl|XzG<V(97&h}5^h>pS=!m@t+m&{h}*a~yE`@l_MeApw5nd;
+z^)k55)H(Ns(J!fGXIUSnHO_Ah=|syl44TZeO>NX$qMBDAgK4!%^%ehwcIC9vcp*KV
+zOWCd8rAi6Iq|m-8@H%!+et?Xr<_(q7hdXN9>N?pb-aVY54-peftj<9ce`)o;i;`8Z
+z!zs27m$FRNEEABrgIw;0xY0Jw%i)`bc8lC~kS*cE!#TLPD!-iD%8-_im`qJb(krY=
+zFZ{*Lha0-mAuC}Di$bitoe|@JEPe}HT1RW>w%s54J8BuBZ$a`D66-pFnTmV;OD$qX
+zGPa8UDvWQv%|=47yby5Jz;I_*#2Z~kTPbR{D4TEfE&VkQ?gtoAatgzbG&KVE<=fl9
+zL>DhyidwB*QYivD+jTJqHNx|her+ylBgTWQ#?4WBJN)9|CsX{+Qn<N#2d_t+Q*pP%
+z%}xPf{JA}q;0O6qQZcMwcMN4(;oqu%K<Or?%lh%LgYTJ3v`X*lF0nvHu5C(m%1$PT
+z)`mjCH~>%)glejdnP_0f2DY_$*b!K@XtVRHr`<jaZYp1kC7&Q&Hn_1QRd@<HLPeWZ
+zEzW(HhyH!%Pm_}e2Zv^<NC+Z7!C`KhidH3hajQ7@^!q2~nXO_7Zi$Mqs*e#ps}ZOd
+zVAbSpC@N56-qUMBueyVntWun*jIwpP$4Fw7Pi+j;#<n9Wzqscs9u>!J;}4}(zU|jp
+z1eS-px4ECFgMu1S#OKb4m(pYjA9;BiM4YrU9lTES))1}8G5I-20~9E>n6)fbq62QE
+zXBA&dIP8>aItI!_wwGt+nnc-p!CGiq^dOwc<FELVXfq4Ef0U?sWQ0?2%1^suiL(0-
+zvN^u<L%yXy?$z@8i1nSKGGc~K)!u7LAzxL5MA7o!&igpeeP?gkJmtKKiJUt&yDCV@
+zVzbMfB`I-MKEg-?TXHXA$X4-XQi$4>w=+X7MUGW!d>#qiO&UYshxC{pnV_JLv7Qw4
+zNmE15G_rK>g!)G1PCU^y6YF4oq^p4fe`6l8N?G@+<7w_pq8p=gS@})w#_4$2-dXOe
+z`=DIawK3KM!@^<kpxIipgd7H6RqW<P{U*Z|Enm<!<By_ER(*35ZL&wY*P4xVxhQct
+zvva{ZQ*iUM{O$i^NfyES!Pp^`Y8$n=DNw2Cxcu+60&tFEPRFw1)qJ8XCirV)a*7yf
+zaG$hvW`0%ajZc%JOW!dkfG^~^a$;to2%x8_tn{rud-qL`di!j$&x^+cM6{yEUp#pj
+z^e<kpw(3Ynh)RWaQSIHY@Om!jBee@*VBl3?ATviLfK+EmXnt9bzqc#DrQp4sQ-oh2
+z^QVhBOAOIzVFPkfSlV(3Ggc>yM$9|}yHlgdu-c<1EvHnRzLVoh?p*4}Mh;~JlyLEq
+z&ynR2hz`4a+o>^2sbSI>$j5p|-+-p#h%&LuC1pjUVMk<BLT;niwz0q|n&B8t8#hcH
+zZp@*3rb0-Z*fhp@Lkes_^Y~XvT3(PQ$UnYQvJX=$`H?H9YOE^0)esFHcduxfTY1oD
+zGs{rgktS27*lN)2af+Ge;#R;|Y1fOIvf-4vXW(3TVvd~3Pv}9d9|M#8MOyv3e!73D
+zW%lZdvO~1xvXL{`E-6n!*jlzr`MDqk6_n6Y?pY9VX<fQc>w2RQWjo7S6p2ydKb(Jn
+z^8;L6L!TA>MHZ>$<(G(QCUM-VMJ(wsX9)f$eEUE_=2MKO!u<AQ#v59zvJAab5qMrS
+zjmm^dh^9_8pllE~4+6faou#fw_*|%Six-;O|2q9PK(G}ovueu1pRpn+oh>{&7S8r&
+zM+drFW)~MUE!E_K^<$nPVc#lGokQ_=WYzIA)mc`Z#!Bfni*CZv)73dNjG{C^$=p|o
+zn&7oQ0<1v&1!QH<ky=2W`5lqmu_-$xDEx;veIV$v#sWZg3FGi;q!p~80h!a%j%Miw
+zBB!aeECiMM)5CrVwEmqW-MC}sO6jpeGOGx*7t*Jqu{Tl$L=@guVK8%D#SE}$Ffp|p
+z@cCfvervzs(*pfT?#3_k41rb1=H<iC((;T-51z-EOryye+OWgj3ys7RYe|&0*(@6{
+z8^aT5yJBDaMTz*%>09gQ-v#8@4B7rT+x*=0v2-ENv1tDz_d}V}6FFHtbg^NU|BEL>
+zq~YB`#<|jR4_!rWbG?F7(b_xCX-kF7)HkXoDuhY2uEn-wjkJ@#`PW1KMILi3xz;^u
+z4Ts->1N&0G+Pds7H@k~lO|K3Z53$vx)yb|^%OJL&?^jI(gc~ccDKCCPDxJ`f9fJP9
+zJ62cc>(#!`y!-Be2A7CXm9%n%tn4oGooQHCt;wq4TN|EQE-h>x(gAdXCDrNU8j8((
+z1-V-=3X-afBPthshat%#gM85r6{roWY#i}>HD;W5@w`iV9lm79l|O(Cjlj1O=XVFV
+z{HAXOaRlCzH?2Kaa!QkUFY<9Kco+9>v$#hVwUDGro!FM+x|tMBCSBReqEQ!q<^#?V
+z+Lsttw?c^GIEqsguum8BYD94Cv4&e<09Jy9rgHUF>;oYpb)P@pVxKS2oN<A3?=7s0
+zC3aBy*)inA0||4D;|p!4i4UZ9r&ZW@!uuzze#xHzI(|o~3T!)>$(-4zo6OS&HklE(
+z<WQ(zxSSb&@L&wRB~Jd?$^{4xe8XyXVNn);80qW*QS->-S7vV+mwKB#-zdkl^R4rn
+zLM3BR#nM`20QmUt2j9~Of$aOCg!btql8rle&-15^NV6OuC&*ICBV#m-2;$g;icWiz
+z|NMAm;3^^+msR@_yN*5H`s>hK_jW+<Ctfadgoz_c$Lb|KY&+R<ynnyU9>efjCW8nH
+zqq>r7k0dnz?$&PuY>T1|p>2L|R`QE#k1ke)(8vO<*Xudx8gC=Gkz*$#8?9hYJl4Bf
+z^9n0K<xtbYv7|<tTH+!K=aEFg`N`keA>1|3k4142FYk6vwUM?<`BzxWNnp{bbEyK>
+zU)jMa<qz2^pbOpoKNWw%C|s*D`Tdvsl&%P}LT_~Q4oI(<CgRj6A4~K}z{Dk`BS+o%
+zd*h+LsWhV}vP)J?n6j9;(QKv6V)<;-<5S;2*;8#Ya*_EoTXe?Tspk^Z1+K0Ide&|S
+z5T|jqQFuPaZAnrQM5x5<;J``cHLnm<DYFpdhOD!a+tDogEYhQxVo(4R_@VSU`5?Ss
+zcu{jKWym|xinVbe@QT^HWTVd|&>8?O(PY@^%P4UqEG*sUrE@bL$Ffak-|2tHgFjc%
+zFxxq|$k4Q4-Fef;d3|SSnc83_Gn1BU1>NV~ug3kW@KmZUJ*FFH#1X}%(@9b;soXsm
+z;7z4*=uK5^yU%`2B1kL#GR{~)Ps`X15n`kN$!cb3o2$W@E0Zx=VT(CI-V52hQeRRs
+zq_*LlPh?S|x%SPI`RVz;tDX5OsacZ|$a&8fsG>iM&sltZSFBq$;L$kl&}OI0D2Sq|
+zVNgY0V?74K>!(}5Zn5OYd;?^==!lxJ61(~;oL}Kh*l?ZjhoP8gKNiuNScida<ug<~
+zjixWKpd~;%+zS3KQYTzfJ{0%}Djpnq4c&@*Hx+|2eDYzbR5T`(KmNx|hR>971r$-I
+z=JQ*H_v&?K*~hJB;~e@Qd|PEUex4>grU+>;bJJ^jRbyKZO<6Th+D+}!$Og%DEdc;`
+z1O8aH-DM-bbQ+uOMROXr*Q{2$n!5Fp-;igrZjZxb4%;Dvo}am<reU9Ii)s}_OxI&Z
+z$y}!1rL@5Yzaq(&F=(l%LcYYs9@u2+@%T%&KuBH`vw}IVx?;x0PQzw5g1=%Q_bSP1
+zWv8sY|D4r<fgS26TbIKQ9U3LfTx2M8HXU9LG%C)hl7a77RWYWrnVMM~XXMKi#X%fO
+zuQIC6`J|TY^Arz4RJ;Y>&1|a}Gp#h&R5K-1MkyB8H9Gp2Z{@K&^O<H(7)c8;_UP)@
+zR*4?x6mllix++)sEal2+RnOi6Y<KmTQY415CB>nipmip;2Q-FSTer<D$HI#=hf3Vz
+z4!|2_r}8k{MDuO@`??T7g?2%moW&MmCO2<vtv)*u;>2~>(aUle>Ef4EgFQ#D8G#si
+z6x1>DEAD;#Jy<|N`1|2!7#N@WS}Tx{_(3x+n|&N5$1nStut>>BpCNucsD$lOe)y4*
+z&np;0Q<>z_QSj6mh8FMHqXY)XOx#c$DOZy-ntQ!Hp9Hj5CLcY0fJ++cD|KBP+Y7(+
+z+WFq7+$s<5ng~9s>Oztp$>KgY!gK?4;Df#dXS&bH{CQ~dA8-ZrwdDIpnuqK;Sf0Qm
+z?a?D$)^rtRXPd->^ZcyO{6Oy`HT}ifCfoPxSI6e}1YmNLHAyJzatuYM9VoR{IH2j^
+z)dTmxj-1F9zgG*_72h9k*Ws*3U^GPRhbNFC?{(4;yYKQ{^7dNI)ArVkir>E{hZbS2
+zEk3jSJ^3#<h7%EjF@I;O<)uC0qQG0VjYq#1_YU*&VMy%b+Xn(@n90+Lh5RPD#`x6}
+z-a|H$01VphB!%yR`>s$HiZ*=Fum1>~m~Z%AX}1$49W@yWTQ5&s;oiSErVjQ4-{_;>
+zlg)!7G7n}_K@L7**Pl3FfCz@y@~YLrnuBY0^XmV6W#LbLg{`WKIJHl{(vR0Yt9LX|
+z>TSE8)km6Sr`o5`_{+x+g2G$3ep1#^Yul|71!!<o5JA=iqGIzD|2MN$kbE~V^y#xS
+z2=jV0eOV&51ONJE&y(jo8rHq=mzL~{dI<Rjv-F)`QO1(^@#-r?kHp<|4>BcA_<q9|
+z_xj!ljB=mK-LgvI_2>GuBWJCOencFMFyCG?nrH6z{Q)2NexH~!+!VQ6d}dXXVl0;z
+zqo>3~4iFKh%dR%6S=oYx5j}1CjD`y~(GooO-%dNAz-R55k_R<e8={P<1m%RaE`QAz
+z&s@Kty-cfXR{F~NVPMYUV~_gGsvGTj&Ho0$_^!iV*8EK<(cN#7p$<|jV2PD#FSoU#
+zdyYHz&z|p!JtW{=%fxqJw6GfX%{CIGdF|S)XHfG`(O5fkaHaz4iVw|qa6Rr6Au8P@
+zvgWvW1hO*gtL!ixM|!U3iOh1;Zt@yuAC{XJX?h||zcyf!-~{_l&5^7oN?`AtJG62=
+zX{h`}PBYkc=K#xte@pbU6Htge5R6@bUs+=k(uT#thT1vPQb+g773WGCEKcM-*-WD@
+zsB3$q={~sgv@LB?t3&Lqc=+w2cAt|u5*3P^n>CJ_m;uw1=l}3)WVe+GTH_pk2<n8y
+zN$9vjx9M~PaPcD)$E9+N5I!w&9DS*>3aQFVzn)!lIz2gh!w@aOlDIH}dK_E%R)x!5
+zb+mTm<j{UVi$q&hSoF!9H@<lE^Nf7z40P6aBz$=|;*r7WQA=D%Q+>BrX}4F^tV2a@
+zUvicz0VgiIZJOBX8(D36_)=rqKy!52!k~-l7`qPIoXtjS(VNVg&+@5PJev^-UyGd7
+zK27EPh%5gq$Gh##=k^*mGv`aZ1toTDdA^gzr>PBIF<hwNPe=635tOiTh+_QyPclkP
+z*}eL2xd|=-RP;#+RMz{;1X9j6atUIg7nst{t`qTMXg8$N&fTjtVLy%pq@637V#W3j
+zD5RZBnc~DkH`%0}hbv>nXb<S6Ieei~xiik0R3s+=s;PxmY23`wC90{o4pH39%{Hnj
+zj}}SX%w6L6Vycsbd~EvjGl!4y@8b7+)#AnST7#(gEa#}EEGs{UMISrHJKGUFU)(l+
+zza1JUX5N-X#W#Y_4OuH~p1#=fv(P+I)A86EfLuO#YQyZ>T@E(@pw;5`d+<u@h49AR
+z)6p0?^J5;RaOcIvMH9yw$4zUOI##F6sd(T7;F&*&{Y^I8O;FbWrjXI;=Rh2y3~nA%
+z`{i|!z`Qs2Sl2}DbL(n>0L)5u_uwwhH_WWf-Rt+l45xyDCq&*e>xXajId5va2(g4f
+zr@Vm^MBc;ecyGwrZ+>@$VhS19ude^;atK80av@x8HO&;fl@q@Lt$7a$-R8Xm>`ZF;
+zl`VQ6s=3T)H_<bdgE`O622Om@caMbo`A==zt719r%WBqIIjdk}fStKDB>TwX+4!E&
+zszTD;%@%k*JbI1uVC3I(Y1)={623=KIqb@@42Ib2c^(;g3Y?|%MFKTsB@@Z-b_~Lk
+zQ$i#F8|q+kRJ%%#^mV<J&c}(pCEB%;DjG2DTFoNZ3j^xo_Byx$>@`x_@1sHM=ZxFR
+z*8IdAtHRA?I65V9{?ehHMUoWsgS3b`y1Cckprpxe1*`JO$$Eb~MhgZkKUt>7$b9(F
+z-BCy4iz9qb(C2@D1FuM|CchcgZrY{H`fR_;?mb4>WxQU~2U^j>0R}w0qiRvi8ZZ<>
+zt5j*7<j*o+yAvJpBrBBPNi_AtISX2|^t`SxO+wz)hWG`z$7FdI9hD@U)N^Ngn-5KK
+z+o^V|EP<9wEj_m&?@m#cXS`dv^Ph-aK&fsDoN8Dc4No^0mzcii5FCZM$39l)@PW>Y
+z5m|<Zm0P{8XW~=b?c0;FYd@4$N*2)&?YG`LL>C@|cr0t8i_ThTkPa8?u>7lo0dl`Z
+zoVLVUY<R~L8HZ%H-CFlVIi^R=B;T#PwlESx4oTGZn-#k&JSja_k-MD}^L0G&E?h3v
+zdfaKUOKfn<JwmQS1Q_n}_D0J6Y!-x@RUwy)F++BoK1j9O6YrA=`W(>T2T4uKVhPRq
+zB9J1HC;Vc#6JhT6h|#P_%JA&4A+N6<{G1J^w3`l?+Z_&dn>jg<T+`RI2fR6N{T8k6
+zI)BLXvsS9(AlU93$hVL;4uV;6rhdA8!dFpEb`E@Uk2oXgt2g9eT{Gm`5faPbPv4v{
+zralx-qxt>M>i`KcT@H)cUl<bNV!BjTDzoB71wW`iqf=2+S>wJ>gkZgjjJ4PnRqR?(
+zTU3&<R<ZgZf|{!okwkx0_|8SRnF@u1o}MBFfk;ms;|weAI6<^LoeW%j{kc1;bKx_d
+z!F%Dd`z2)ToGJ84w&oFgE90R~6C6y@ahQ@N94{rA-l7n405bI=&XK~rh;!y1@wbn?
+zoq2AbFbNuJB|83R-%rXg)3x(En+7PJ0(@(n@v+g>kHHeh>G2UQloFgPt`_3fQj8<^
+z+ZnCfcH*5jziKnuhe}pj8(Yni;oWqQZQ7T66ni|tguVZZJDGftwOX^jeiGpF;mx#`
+z;(LNiVi8ZK(_Ft|zH-75D*vFc>f0W1tr`XF`$>w!qP5}2g*W_FzdV=-t}y+X!Xba{
+z_R&JBy3PZc@oPziHr?eiZaQB1R`yr#5S}Gbtn_WBTSi8R9C@7l%QPH0ERobCuj&5U
+z#Qi=dB|onZMP4sXE^z02E7PBaQ(>bxbAiIeTq08qmk%RtDu3oKDH!!R4BY{YP8Jr3
+zp+P@}&h)>Gm->fd%}^a#Ewy^HuZ{h#c{!;TfiET4?|ZTeBdC1Lf7$(`yx!Keg+8%u
+z3tliAj^rGG*6&}1fHY0Wkd4Oj-}+oA;ZWyn>NDykvqqQqzAY=mY+{MjGZyf#6Imes
+zY3&J>+jqWAla7=X6EQ#9m&1A5%=TddMpz0kcNIP}&lhKQo_pX}2n4TNZ7O&@(FU(C
+z8O%d}pCYx!aC?4Fk7S5d+a9en^}{!<3Vf0&cEUQ+>}B5^{l2)zu>AFSU&=gnf5Oqn
+zrQVvqj#)jY0-^iqEZMIxpL-@H(Y{{%=ZrczH+PULpi|-yF&Kj!-_o?(aZlgUj#YyM
+zAA$XeZiAqIE-^?8xLG>zS|K38?xKLg1Q+d`0|=femhLBy^qw2^<cjG9VPHR^A9fV+
+z;k-c*)q5LVI4skINZu4>T!a^M`c=1CP3Dw7bC(AFVysUU-8A%T+TN#3?*O*rL2T_V
+z-ysM49J(c??U(#Xq-bjb!!?S##xBm~ri;uyAWg0<L7GMVSwhqDfTsh21-)`^B%GIi
+zpg|yV4-KfZ=KJp8+Ikax1KZTqHl~dT66nkKQ9!ll_PA764}VR1FGj;fl3MuoRec@b
+zGaYw&(X^;mf+kLdZI!xZd5CO=DJo(_g#=^LymlxisuTUE<eis+v1csYTo<K$WGt+1
+zp=bg}+nDWGAjPZ|qE?rxmlaR>O{VPqK-rwb$Ij$zk=EzPQRVOqO51xF5N2KErP$=m
+zu%YMCnaQ*rwyJ#}a)0~=n|M#h8*$oZ9>+;&e@%RSvwkXhw|Z+U`2@4LNd2n+{$ZZM
+za_wyh)swQZR+feS_F+u#L5AU>Q3WX9@W_G0kyHjXd-R;U=vPru6-fw}qA6{*`Rz=K
+z+>#OlmZj<Y<acQI(Sv+3JqY07#U7pV2+O8jv<v?_rg6*8cP;WyIz3fA@gV_HGbtch
+zak7UVDxu2n4;I-bUJV+fZaACvHY4wMf*)RhE9iwAX$Kn4e%BHEN+^EvC7b4FQ7Poc
+zT+^<<oQJNe!mduGNsK%XRXoi<d0UbLs{HsVEE#o!$+q5VPy7QB-^dGf*LY)z+CFqf
+zf-FgFAJq!HNT)MdssZwXf;NIVoki>SQu$8BO_>mS@ASEJ2VgB*z0gH$xYOH4fCCo-
+zz6ebzTpidgJ?&M@Z;I74R#tdqjEx|4i@5*Py<IOtW2ns@)o8|$Dp&DiPjH@5XrVL6
+zr{nnAln<<Od<Z#JE#0gY#8B1gMibQCQY&kQk=WU(IfUi82BCEvZQQ*zMPwwiqUnd;
+z@<x)|4WCV!W9E^;KdtjsPJN$Gd7W<kwe3Y!z{*Xnj<qKG%!?TmH_9WI>Lr85oIv$%
+zLA(%aW?QK$((5Gr5XE==FA!2G@7HAyi~U~1kUPs>(9b^V>4v2K9b~ZW?&j28nb=Un
+zS_4PJv~|Lu)YtCRk>nePvExQ5slPDJDqcKluQRDQ0fqxY{G$7=4ZV0&wRwN@za~e!
+z+2_WEzrLvs=pw|^|H6Y>Jpk@RUV!+n#dzGlFA}Gmu#j{2^Tpxp3Nk&x0!|cw+s#wi
+z9tHyTx9LwAMnu-SzQd8h-?3?ZObkd*4fP~5bbpduCfKD_RDHAVje-`9;mq-LpG~~V
+z%q+JTNaOINRv&{)k)DpU5RJH|#u5&Ehj-n;y%H|ioc=OQFWE#~x_GP}?Wvucyc^lH
+z4rvFQHZ4Ftx)I~y>ZwzOuw8Pa8gE87dQ4$Px(Q-!kzQM$qe6(Cg6L-4JO(ri%~eR(
+z6xO*S0Xgn(4jx`_g2Zo|JgJ!pjPv$BN3S6@Pf&{yX$JFJTQ&DHt)T4`w_KYDu~N4s
+zyJ%1$_;V-Gh7gTVWV&%EAK!Rturq+g&rF-e7H#@H3`L&bpH}kIM_I!qCu{s;tqZIr
+z>zT@rqqLnO3+D=r?RKV1(X3SR3=>MdADkS5qzipsSSE~*sQQthE;3Rh?OtVe)2v`g
+zW^DKpiAF2`R31Me)GntS@g})=0RsGDnW$d9ksxWqfi)G^6ZWW3jHTK-b{x6?39FBd
+zxI|eiX2olSn#Y9Ntc_oB%vbK8>pr0f&WU5j=_yRTwXFBICd{bv_`<FCl4PIpbc;iP
+z6=y$J;G0L*jt<4HVb`Q5_t}ZqEjdzRIM!kfF`B_O*<~XF*k=w4e%Q^n{_K6<FK{Wi
+zW|1%W$&5fOgFNS0@TYn~3z}UBWk=O7Ui+){nC0TF??wD+fsdOK!j8G^Oy}H@er6ck
+zETiIx+oM}1lQKl}c$bhkFe97?z>G#Ja<9Y6Z6%ggk>n7Vn<4M;AT6Rr7=BLJKfawI
+za|YGAVVt>PFwMim$B{aRfN+f416BebNPGo5VHqQWp^X~+h<K@^AsHUI7~`c&bJF1k
+z45i2pyXi@v!zD=ya9md9*5Fi+uIZSe6rm#wh<EwOv`7c}42yp7v`p98(|f7Cj^{u?
+zSc5%^Ftolm3<HcaPc>@ReT%3w@nxM}7z$s#4ztJ6K7yj-hgzc>wJSb^Sbu#D<Spb=
+zB$ym{J5A;Qk(~OpL7JVBVCH4IJQupdy*u}}KT4Jkgg1bz8pCM+M0*3oShhO}IXQZw
+z>4XB4Zh*h<s0KEx)}ixQYcb^T@RNm=)0J-L2d+*)>&8;S>55Db_fm+p4b#+PL^)wx
+zzew;B!hZ=T#(xR58uj-;O~?ZU@0(G+uQ0}i30~iA3LQJ{=aPYC)m=ivE`2+m<r?$E
+z;gPzR$9`MuG4Q+fyPN41B6h(s$R?g?HsQq**XT@C=(_K}cU^u1Z$?`>#*8{i)pkDl
+zjB-W^+TrYB23vr(GQN+NVN@kK|7*1QXxpd}=~L|HH(UUpN!E@ajkX||PCup<w)(wm
+zAhaFL+|)jJ{}RuUd((qA2CrVAu`1gX_oDH4!o`!Yk(|d1r=QHbuJ<fp*Bd~t#1tt5
+zbj?O^<@4T%regkH+@X-!rN4z-{eo40M&t4KbaTF-uQ3j943$K*8RTQFS!^co6hll2
+zhgsLL|GmuP6;ilLbdV}~xkgfnB3wwi-e4MaU1h7;bGMkpxv9TY+mH5tOZ2m9OaIpe
+zQ$6(fd~$VR@Nit71s*`)T`Zbaq&aHI+nK(~u=(0zVB;+}>D5)2Fxo}vmKXE#SOeSm
+zVUyk`X!g6@5%CW7>8Mr^nb;F=Qmmj)U4`sr%y`XjXaV88Pi3fO`<|`pg;hPqZls#f
+zxlK#FGb*^TPc4L%tMNVF##xGFTPS1GxwzgsAg8prLyhZmBbsYS73(mkfMoIXz|FKE
+zmsxjaSS>;YDLZQTNqJ&BO`PTZ6Qez+fr7?Z18?KtRkX`ZCnG<M{JU>mg?CIoJKD7A
+zYTK;$>{i}d^ZXh=->y@pC&q*L3dKmp@}%PeoH4GKsD5vdU^3%urq^Mx=_M@2BvTC7
+zG*HPIS@bZt<?sJ>;HVg;*}OCtAQXQ2&H60vAKp?Ut{r4(>~X$v@E~U{!kRlHF!NO_
+z>XV$wt7Ppj`#2U)f@TJG0{8+HSk5cjgOL|`O!CHmoFIz&G9*D6iCO-a#1iL6EmLi=
+zyJn+a31?Saw?s(hxf@GNSVxVmvqnApZPCAM4QTw1RyfD@gG0?+o~h%dVG;Ym>39U6
+z=s)GdfMRwwVJmk)IoKWx{;=)N$~@dq$vWC*p{Fy!?QgHs#`ryJ!2)`wBm7PK-Qvp*
+z)+g_JPRrlTELvtx!p6R<xAElYdN`V$u}HD8CtWL`uR%)ZwQc*r3Dcb40%$@k<G9C!
+z9Q!2@o_ILcBLW7Cc!cKZc+icU{SEs}MrMr=ebnLo34vh-A#!Ee4DJn!dMcIIbbdvA
+z^oF82$`)DR_G^tkkB&^Y#WBwCz^tGA$envpUWgT!LVnBhAgkDTapqsRQfUyF7{w(e
+zGcERap;e=NVub=S_RS5}GpF;!x4m~b<MN0Y`h4Cp@M_KBZdW{E3&M31!D;1fd>8Wz
+zS}V-wgAgany0aj0H%wy{qPb(;pM9C(nCVHkKLl65s32XBx^RJ<y_(Jd)o2;pRFC&I
+z;fqpdpT8_R@mV^1a{~tsmvH;<d53uHmFM6Rezwi(JX3(yz!0JN<?FXv!~K!q%h=dZ
+zTw~9Xt8(F<OkS1EYQk=^X_M8T*O>-X8(4qIrp!<kK&<L#6VZH&z|}EV7ysyldNR=k
+zh`n831AN`bp|FQV2kH=LM;>tW%lEvWiy957l~_gQ8lev{&XkP)fCG#_wD-au>PSl*
+za^R_+w+hMzn4S$bylk;U0f$*6E9H|NaG6a|jMuyT#!Wl{R412uxGDK+^|$z^h1#rs
+zGJP|SI+D%OOWG+uMlMlWBjlBrF|$Wej={21!}qTuvTXa8&L9!?pw7!bygjj70<eBe
+zaieA7^e8sn=+4gvJ*>Paq>ZCtW`?A`Xts;hVfEENqZ^2-%yt)yH3+8fUimZ#C=ZH+
+z{hTBlctkJjam2J{`0d3z{!$pVSw57_o-COyH4l-yLV8%ay@-B(`Z>x*WNC0jn|V5U
+z3yQ*ON9G}(6u5PZJt^_&Tf49w86A3_-j;EZapdsnSf4w)&@Q&h-L!u?2l>G2j*^4~
+zalaF?vFeXkD)wINAO1ZDy92NJO@Y~kH(5(u6KM>))4}MYHTUq%_62AVFH86Rt|l$1
+zDjViG_t09Lxd%F|S?E9<aP%UEflqYLp{^pq|72s`@V1JML{gXS(-MCNhOta@QCGuN
+zrz19XzxvIZByoRR@34S=^kF_f<*UwvOxneKpS%^Chy@y7%|bHnA+8p&dg(wLJime%
+zTai@t!AYS7nwa9NZtdrU&^CUgGJvJBbE;`cV@@Vg6=7VS#@t^T3a%ZX?{U|OQgzDn
+zll1(v!Z+~c<fxdC!{0;x=^yOt$(E7Ne3%3EiwC<wb1)H_z}IS~Zh;_y6M@j0<iq#=
+zjXOv-?*d>Ecz#RtG1POZd1-d)OpjnB`VJ0YIJ|$i*x_RUb=8k?Z1f+nSukkgU%LJ}
+zO!@~Tcy;zNUmK3<zLQ37n&Lpj9uAJPhSh=Nx5O*8wm_uxGm9zA_xJ<l+WdSHCdJ4B
+zY~`dUvwExpgBI_;smO2Amo%q}n-&;0yy|l2+bwFy58}$<A!+Yvyey!sRhtay`kg2@
+zj15m)O5V*xzG!oc{Sm*)&IAt*)B4?SK&pmWuXTc0(su+-$hPn0uWjKa<Y;=g@tgNc
+zli121A8`H^DGDhF)QM-ZH*Ycwu_yPyyHUH?nQwob|7?;U4<2GK+h`&ba1uBNp41F{
+zSX0-%-3il|_Pv#vPqboWKfxD0?RM<LL59=D>qEX|X;dqoi<}QpF_V7Nd)t}pf4$TB
+z8Uf2N@<qlbq9b~%O!RMlU$6`YGu52bPPPIcL+b_6Dxn3x%tY=fT`eE2n~PBRG)c}S
+z5cWb-!}TDUb$QQp0_-iNa7~Uyf1@k?oZEZkh;mY^PCxm&KANY67#O7W$|)qi4+S9u
+z)a6*RGSQ1=(ESj7w%)O94DwQWp6E(G_GqtsWOeE1m+XW8rEKl9$<=*Od30;W)>}0R
+zn3+z@XBfG!(6!TMd6DFKIL-RwI?UDM%ZNz{=K$V6KhOB=0P+LJ%C-bI1G)U|r~A%X
+zkAb`-?XzgE8m^)<?6nNKL-AF^8(`nO_cK@Wc246xWA-3|7M-04wiI$w(9^tD?#{7m
+z<ELUtz4U4W*CruOz50Pocd+Hcr>Au|cjB*&o~q<I^>8lJSZ04K=HX(|?x%5)Ic7H$
+z0)e;APQvS1Z`Dz~8seMiUn-js|8<v6@0WQ9PyQ4mr&l`>+x|+RH}C{W+J!5RdLXkr
+zvAfEBo;Inyi`Y)qHEn70;4=6d#SAfR-mO%+xAyG?qdWMNVwb(}QsFsYR60euMmCAe
+z^yv)HL;)n6i*wHyHU^xd>GbS*H&2uVb`}5qwYE;yP><>Twx&3q>`C&k#XQx8dYUNe
+zrtHi|nR~(VG+AktGotc$(cSi)mm{MsMQ3KHdqj)h4CAV$zUzvc98&2#*0TCbUSip)
+z;GD1C8gtuuMvwmBX`lYEOJ%;dTG4i0KB-#e8QJ+?+do|&pDY*YJmf3m`+lCx^Gw9e
+zg*7yOv!TB$?Aa$PdnM?>R26+CR7Fzzh(9&s-EhX+$qO7G$jlbn7s)ib>Of%)ML?(S
+z^n9yI4DjrcXTwkKHw^Qybo?^Tg|Q#salM3^(>-DSr&?3KMFfEZWdB{khK0%gJBLts
+z6kM-*{$PjpZQI8G2|j7(@`3+tDj62W|8G+f-P6bazTiaZk?DVe%A?%>1cgWJ{{#@d
+zAKrhP0mEy*zybc6%+NWHP8^Od^>=r;G@Wu6a^d%+=jr@>^I8;lR#Y28)!xZ7!Z&%I
+zSy$&(Abks-Jh_Qtx}F;5blX*n-wz|o-mhU4bmR670c-fWUF>{w;ar17_Y~Qy9i@r{
+zewQ2|S?@+SE=!7y{d}xpxi|~tPM!z=_t{$Vst4x({r-V3Pcr{ADde0S-S2h!uR|~T
+zCz=1u^=UnSCe{8=MfVi(->&C7fD`(k;g-Ws6#p5OUHZWMzZ>>t_zC5I1}i;!oT^u&
+zH?NjFO#E*<_Kq;-f2OAo`_Vn%+n`i({{iFtp9awX>NGQ#fyz#@--gHWF-h;k&(!a7
+znR-Nz-jez3q%fKaz{*eIH!D2rClV=o>$1_4cdmC1nVA=y<2yV9BOr9`5uAXvfPvcx
+z_mBpPG_6Ym=gWD>y#GC<jd%R&bSy%taHkc20HLRN+AdFcyz5K4C#-K|vvGGF2jb_u
+z`75!4yl#PS13yk&;gphnRw=+tYE6E#wjkazT@Q1aiC_peDvck8HQ=)khvXLley~IS
+zYMs~y(t7lf;W^CgnA<CZzS(=Oi0P>owrPFgKE5o@bTFUW&MrWuKPx@_(&vI#R`#P8
+z`l;dOCuX=8pEERUY36i&D?@eQl!(n_aKblad;5y`#5S?-hJN~LmF7g_Em{DP#6tB@
+zL;KCBxoVIaSB}z^fJ;*!3k`nqFolOE;KX27;bu<lXS$xIx{j)vV29dkx(#ts;_v;+
+z!=a_LUNZC};brZ$@7TnoS+AVKWa#@`W@9)ROG-**bj9XL@{8dA50OA_zo!@#RWph!
+zg}Pun6q}uQGAE6gTrr}01Y5IYL~um;h`JHudH(qN;+ZJzG!}&S)VpLbt@th~7_1GJ
+zl~hcwkZK5d^=5E&6;RBJ+>kCs-d*D<l{~D#oyU%47^A7~kJT*g)as#7!nTxJAE!|<
+znausJbfJ}s%{;BRO3+xkp_J&<2=!ET)yGbX*THNYU+NuH>dhHcdp6r7*<O;Yy5fim
+z&?ZVB#u3+Ali>xOFi)ALi19t&at4*2JwjGw5*4G=QV9#tJ*aZJp~{~uH6tapmkbiR
+zxzz0~UVlFJ%`V=l)k9w5H99YGkzPuuL$T^E>ay~B3#dHuyt2BI^QP4mPm<b*l_KRK
+z=|)A}SxS*o@noR~fNJ786B{V%FY_u628)&YIbfEmfR(z;+PiA&%BKB58JI|SobiGf
+z+i$RXi$;DIck`s0wZV$~J3Cvgm)Fxod8VV><Q`J#$zTyiDnd}{6qlB&e2$S&XF37&
+zy-p>!rF{BW&rNA;;ypwVc|}sar0jIw&TiKId$Ke5W*UQh!)A)|4!xkV^gQv`aR2bn
+zD4kxzq{OYhTgobGO1<LIWe`+l>Dg@f(&~xqRV){XN#N%{sqOcrC9b+56_xKXZW<<W
+zBkltVYVDe~S6&$8{k+bwiie57(<e_Zs}V0$35DPEBTLg-8YQW!t{Plgrc~?AklHc^
+zOT{DP9O=eYR7@x{MYUO1S^MuxGv^0VB-0`zNWX@Ufz?b8)+q(vxsoX}x#_|5WSa=R
+z974yAh@NW~<A>|?ojTkE51~1VT8lt-#Y`R))R~5gt5@*H((h!hKhzd>NKthXt*r?I
+zxaSD)BR>+_Q!vy3(V_13HErqWd>gi)#V~SPY&{D}bE_$B-Uk$K#5YTQ2D~?ak|A|j
+z=x@aq!hNi_Vz=EV^&Hfxw_*=}&s(vD`SPCPQnTw@v8xtHc-8`WSJ>C>t=I_*y1o_r
+z*8KneQ?V09+xkStH~;^S>GFF8czi`R{QnK!+xwqBv-f}GoxR*2d1sG(r4F5<$o0eT
+z?6GfcOOt)-hu+y^pLh$MujxnL*<)Xt(DTRN*<)Xv)l>GxA9`nxeRow)*{6T#ojvlF
+z{NsN7ojpO<2shL5!|&`-7tq#ThB4;c@201}vqxSw;1c6U-`UGWxLkzGavMMR&YsXO
+zG}`#lclM||W6WsdN8j0#`htufeP@rnxA1$y>F@0E4&(Um38%laC-o3X{SrU)&K`Mo
+zVZPME@<Z?JQFn>&%46eKe`k+pp7XDidRLD1&Yu2$9>e`7@8?apk{i@N@_ydv|D|{1
+zy6CVHZ<tJ@&V*yW8<+pTREGR6dbB1{sX@h*@4j7k;rXMlyy(Z@LKrpl{81PChS70h
+z{#F0!+jXP$GL+w0LIH+-=X-Q{&1{moMs`&kTbI|t$%b+8LuvlEb$J<6q|tSGNk3DV
+z1E$mmqwDg@m_lO;Lmf5k|I50(1}T0&MCr~t=X>-~`PBGvrqaQ6qVi8sWjI6AAC;%{
+zDxIw90W*|NtqjBNd&AV&mHZ9T^od<y{Lg+4)fPRp{-3U7!nAJswfbr9zM6h5PdD9I
+z{gvLY0g47r(e#d;uEy!)FR7F4Tun#U*-B?vAEnRCJVv=Ggyw<Kx2bTyp^miqQXh`c
+z+e6+z-`0~gn0kQb%eJSR`j|@R+j_6eZhEXXa_pTi@3!+hRaiC7xAj_a3|c&2>T{y|
+zZH^OgXDj#R)YAjETe+`ddH;~q`;=iEB#rzbsrM(txE9~n%$G6(!~YcSP4jKNR9ADX
+zg?p27e+{!^zOBcL`j`%s+j@vNX0^|^^)ONI)<Mmk#tJX6^+?@7T3cY}=f(G|1-70c
+z;xv1Kt;cFV%ddTJq%N=pQie$C!75l_>mg!)DO_Odr5a1Ud<$$nSod%(YJsiCsxS4N
+zY3VP7yJ3N?m+B_!IfMJ4a&y6M*#cYd);j7rTVU6BGt6o&{zHi0rj_p^>N(TmQ)b!@
+zcZ+h9hwfTn>t*^Abzy1k{WIz{TVU&r+D*NJ+IRBBBbu9f%Z?y?!(}o&>+J?F&QkGN
+zj?5;TUVlfNG}-kjr)=9~mxq07c$2Ls>Oqd%O?LZ{4+Wa+`jX%$Xzo8V%_dDxR5#sE
+z-=ob)sr|9F8ex)BMJ+!`y+&m<HPtn`KBKbAvXVNb!YC+IAR)?Rq2FlAG+_x<M3u&5
+zM5(2tvh4fR98Ir6#${DAj;Yb8?rwZU#F>1(>%u%LLlQxy{-Um`jVh{3>M9K+F^R#Z
+zSCl5z97zpI6RAOom1Oy<CzoPQG(~rax{I<4Ra3}}x{k_`Zq+1X+EnpHsC&Yf?z)kr
+zQY2WirM{~jNh(^Jk<_rHD>OQWMx$eEC;GqQpVV38F}|y_=uyQy+d!24QY9bC>?8X}
+z=Gn3zWS%SOKQmVnFLf2U%B8L%ce&J6lu<5q6?w{~uA<CxsjDcfT<R(sP%d>9dCR4)
+zqU>_1t0;#y2EyEOsjJ9WE_D^<l}lYk!^@?vqLH*QaQVxnuA=;MsjH}<T<R(sQ!aHC
+z1!!Z?Eu@V>YkaxXT{NLw>MklOm%58e%cbt3@^Y!WsIpw@E((@Q-9>e@(J^P1OC3hD
+z%B2pYP`T7$)KD&U7&X#H2W_H_0luYN>NHwhE_E3#Etk5BmX%B0MG@K%E>@IF9Y!n5
+zr4FN2v>_z4(uQ!dx?JisT2n4{8m*&!p}lwYn;+0gv}vc*Npu|b+8mX7WC*X*;ME$u
+zN`qHu@G=cvtieqh+@Qg;G`LQKD>b-OgC}Tkp$3o9;Cu}pslj;~oU6gv8azOQGc`Cv
+zgIyYY<cJL))Zl#@yi0?3Xz(@--lD;qG<cl`uh!sI8oWY-muc`~4Q|rl1`VF2!F3v3
+zsllZhJVApCHFykR$_)R3&Y@sO$KDE<)fl8#{tEQE`TKPal~eb{`xvW#K<AKA@!!`u
+z<enm#7~^Cjj=QZno?$e%JB_Ax7taa%mRrX~dG>r#v}HuvenZ?DD2eXAZq5FdbJF(j
+zzHQC^lzYM-r%i3xpL*K``}_4AyDw9v%`*vN%F-}oR4-%jN4(3%yI@bD&J+A$YXZtN
+z!K2Qk70LUPvxR=5=6IH8x#d*%*<8M6Yk|_0!!v{@5cX29fjC<%&JfnYkN2^H{`Ku1
+z*lZ8--z_kCe+3WxD`j@O3|U1y<NOnzEl+O<$TL8pPCZFWtn-mxoj2U6BWVKl7^(B(
+z!&Dg!V~NGHMJy-FIH`ko2qKAU*dtY%x#}D_(>%3<=V9$MuNFFwq(8$H!)BQSC~MPO
+zO3ngam=5uorOHP=K_0-QgXA61L7<PNh_eD_6%6kRr!5%#vC(!@+@xLsp3g%XPH|7k
+z=pPztp9KVK?k{!7%oBHic!tmuoM#;x_*%>hI}3TFEm*&gcY3`>i#T_P;i&&eEsgyh
+z9qGw?@4Kk424(yRWpa9pq63D8#W_L@O>elhI5EU=Y4`2lMZC{p-tVA(gh*_kI-9i>
+zejmg96aGVbhCg;Jc=%(F?_n$Twue79&TZUpf*zf|qNoS-NE%J^6-Ogzo7bnV+3$gS
+z_a$rg^ZeTDpxHk6EdN;aiAyfnpLSi|{sEv}<K%h!)6N~X-<W#({?vQs>^E<7@4xc#
+zy#3}q7wu2`!~Oete=Pl;;rku;%=>sX$}nC#WA=NLYr7xq<ayXS>D+Pq(mcgc!_#aX
+z^1m5#{h|5em+_tD-OqErsy`T6U-+fuaNu$e`s{$eV_rAfG?u~M1l%2h?UVQ0#a-_J
+z?*pS>KdJNzWw1ZDEe0Q1Y|VHJJlVV0%4lm6`jtp;JfGQ$uqnwq=;#wt=S0{_x+~#c
+zx)ozF%(AWWOl%?he^GOM$3sXX0=jOE#PS2p@sYvic&ah49U{k`q>iI1-XAiSfKNQq
+z{t4g{dXC!n+C5+GZ@c@8{hq_0?uXcLE5ou3B_iy@2)m?xm(VfvsJz#KIGe6J3Y=x`
+zXW7$3bD|%DCW<tg7^~tM;?C5P_H80Q&q~WaGzIQ|33_>0lw}L=82Wx5%?DmvMx^fl
+z5d4YxTs<{!|Ep71i?Y4h(Qz%$;*JS5TM%o~#~96V-l?KK9FM;_-pg1Axqx^0{?tyG
+zcABxQo##$TJ88xP?H-=fSNf(<*Z!^AeU$+`%d5^>(~swBG7c=X3e`DJ=C}W7$KE)~
+zt)GuRfp@Fg<b4wIzf7;Z&qAF<$-H*)9Jv;!2fm#Nvs<12=9nV%yP!RtK4*L)Y~IIu
+zPp3a4D(G(2R?4!bkpYwS56F4{kaXY#-*7JrTPA5B6p7vNZ;U0LM=hVxY~^~JMSWZc
+z9uj=u`j$vv%nAGF8uHFay05V}-04|^z`ujDsoN_N%4@dzOal!e-j#2$eP3#KgI=?*
+zTyFI;R<-kP1^vv{NME|0#uH-vndRd7W21l0t4w=BBKyzF`!Q{AM)JP>xWqGJihfIi
+zTed6mmdm>wzDQrthtp}?Chi3qzT40@;D<I_fwF|Mo2?xu%liXN<4bWr^ifeS&w)i&
+z+a)$Gjh0C4pvdE=3CvCV_Z{3EcY9~Yd&s+=u>ok0KLD58M}(~_Zot^-Z-~pgYw|pm
+z8+dOU(N#}Q(ckQQG!OGkF~XVG$#!wIk?vNt6Q-Spwn#%;gwn%St<W!Yo6r+8Tir#j
+zJF0Y`1tPJhcpmv&?QA+^gFIhz%HK@cMxUBSI(4zI9ehZSx{Ypz@wLhJeNEJJd}5mj
+ze`{hp(#ylQEp_ty=7#0g{YaxFlkTyJD8em1M>|98039egr4FGG@Nvys94E&m`do^3
+z1J2!`#}(Pjtq9Wep-;8!B90feV>*#uI)Z1_n&Z6ZxA?E<KSfu?oo&=RA^SVW$k0h)
+z!CQ@Jv*igkTbbw|k5YHfl~VV{bd;~?BsKPeCaH&rI+X&N-^im<e(=NZ7NsxehJQE5
+zogCxPKePHRw?M}+XYe6$<~s+pOj>n$7sd)YI{G`QrvY)#8PXgdcT}EV|D9p1J>U*o
+z2ePCtA>JY1gt)uhvYiWBBJ8_+OrF^XorBh$<9pb2e7!jT9!adplI851#5MRH@8cAl
+zB*%V!%TT(Di2t(yU&cFpSyIQ^c;t5t{HRxG2K<9rHm~>=etDagTYlhgWVYljKD2)>
+z{AQe5AJ6dA$Hl!#;LU~hg)C_GLRvpTI=M(U6KOe)+GEi5sQ>ks!2riD;5Gx_GZ3FR
+zX4)4btP}NJZt{*qB)0yDywiU*_|>HxN2yQFkbDI6Yvu)-Qwq@zn@_aM{158%LHROK
+zW{)bf3uQLCl{rHzbDVd90+9sL6FTu`Y3Z>H)Y0RBf4S!W7x-;s`QX1D{yo*1{%54_
+zpxBe}=bfOjs4K@>r?Id-1N7@d9rHl*TML^z??F)B$`g7vBC*96sXWBJ`$g9BBR1|{
+z2Mk$q4|yed!=s3knIidUuFzGIOm}SJXXtAMDy=mqgsm)wLwfg9PfQE%9>_GGr7k8-
+z_ZsgKQU4Lo<!@o$kl!4<+YUO;Mc-cG0&hO0IeyLYyx%TmKerKzyV0&Kn|NP0gnHJu
+zM*ufNX1E^Vct>!?jm`1R7~k{GlrlK;UUo#@>C8Ss((0t7KAxdx#o6Cx!TlxDxa1}D
+z@z(3&ynDuW9*cCSALl~Qlf!#OJO@0Le#GJRRpcLm#M90<Q^;=_X9&U$1>HG)qeU7F
+z%Q24OZbvw_`=BGTUmgcH%XTW<eZafPj|3kA&F~DY54=^J{ij|h%-49gpuArgylHlO
+z%j#w;0<#t7GQ{5s8e=`i;5+Z%w_q$8uKcs%j=-IVZ<R-Q*CRll<-~ZC(gV1w>?iM*
+zgz}rkxWoG+7k?}7T)6s4S>Xigkpi6$Q|)*lQ~G<T0|@@Ps{iazde+h<oyS(VcvmD4
+zdj$QA{N*v&>oT=_DT?OU2dP)+Wa{#RyYF$$@gv`K>}|_mZe0hw=3<;(y#lf$%Gguz
+z+m?2hYMU8Hd5?a%bqI15`7mWG;x><WaS@hsR@&6LkfEDDChwU=`BLeqqb$!mout>D
+z-`Mn@c0}F>&O_UUGMlYyPSt3T^yeb|f%agRQ-7K>Z0+kCwqoB%{@SW^1+pBcDtzbO
+zy!<y8n#NkD|0|`#hHmP$Ye0LuP^MLVyWSC5qm?NR_-^FYq=jky=D*K_GQfLyhsgxa
+z^Zd=$sYr9Ik`LI<sm9`Vwy`Hgrg!R5%DIc%2lzQ2E^eo8sbt$aF&}3=Js6i7;Xepz
+z1sxc>kpA(2Q;LeC?87ZTPub6QduS@=H1|C8v4#20HRvbg$NL<VL0YV|+p_l?_bmE2
+z^}4xY{?m5dpM^}kY3k9JHr;mgPc0)(c&X*uet$Ckqn{;DYPmLLzje=={Z}u@+rL`O
+z6C0>IH1UpMJXUbeGy7ZaPT603N%-Rwe?#<j$nqBET)RLEE$Ny2-M&!tO3b00Q`7dp
+zHg)}ePyZA4lb8JyW94f|^Obv~JU;rKi~a;z<=3xIUH>P~IVbGDPW90>=uhjisn2&=
+zJKL<M;xlZox6uydS*E<J)5*75K)a+R@~!uecI+96zOfy68J<m<cyv7EpxhRU?f@>g
+z!EeqmaqluZV+i#l1!5WCKc;W?vwr03&ujj3;9JR`$@f;nuNC~bgE~V-p`Z7*b&+PH
+zZ6DhBN_1l{q>uDoxxycfP%c*dyq0(L)Vzkgn|gDG!#s;J=9*#adBC^uo+tW(7vXMG
+zv<v>6LcNd2Id=*jSSwJ5pzrAqnde9F&l`)mHE6G=nlE#m!G*ZHv~`BT-^jaX+dA)7
+zF0sBjY}5Q8e8=2-&l=1R`vPu0%DIAEw@J=dIY;1Jp#g|5{4Yp@FhQ6VFd@tvT3{B#
+zY=0ZU|795Y@5s63aM+D7ZkTKs&o;wwy=xeGj0<=r%xc7IgV_W#9PxuND`2+5tiyNC
+zQ)fXK-HiD6H#Rn|L;S6XzXjp9{X?#KWFV{?gjEO=f*FACoa3|s&PCi(#F+&Xf!Tzx
+zTi%xI^9SJ;_uf3GNj(II<$bY#P!|mRl04vPr8g)GbNn{|kEBcly0{iRi@cNlZY5}M
+z74Y-2(jRll(T?;_2t&qWpBVufh^RD47mpp5G{Et@H`||OP;-)8#NDLj{~*Gyf;kho
+z*>0R>ox^w-A2%UhJKSf&{W@UwE1{1I{SN(U|2do&_CBqX?tXzZm@nZh<v$bdR`iF}
+z=nsq3H=p`;hpKlo?CYrGQTb0*^ix6IgYZj^HD$^lbN)T$LuJ@Xe9u+#%FpoqdQD!L
+z2lv~k6X%^besF#Ky7MpwU`#V1M_tzoFvoVt12-Yu>MXIAmbjg5L3tPOZGcw*UIF<u
+zkNpxh>$r5O)H|?vGx|qRu4OpYd^Q)d0`*x??+$h9jD+#S<iixeP%n((Yl697jM+&Y
+zUt@B@))?w$20za^EazRkdz<g`$FEd+#jiAsJu_DrM$?o3@0;@fMmj~u2s`G#Sq?wK
+z4_9$=SIGRm|3MmA2$R8woL~;Z-43$@W-H7lm^Cm<pA;v`63fwUzXu(;FOvF-(!ElD
+z{3q1;aiP?Y`YU{ICmdR2J;6DXkGkHQt;Y#dX9(zFsq!a|mMDMfD_TgnEs`j}81bMA
+zLmW4$FnI`bKjB~`ai0q7L)Zotmb6e$7_#8KDh}5?s9(7dWg35`(kbYfZQaT5kw{`X
+z@17o(x_@s}dSV8=mekALWKAPqSNf<@0+XV=TSYxonMzJ)KX~M8sUOY-ze1!%+1w}A
+z-|vfZJn0F;xp+G4;lh88@F!nMGmSS!Vh)nuM!g<=qm(xbgl>(#u|8rhFZTfQ5pSf>
+zX|OPMsnFMaOCqf(Vh*Fuv{%E{RTC+nK+cFRvw9h;+f#&2jPZ$_80LY-iuMZ-hdPmG
+zqO8Nf-|jYy`E;KSJl^=Vl*u09Ty=WbD(I)nSdUl}zqZGl`$gDCtQ;-OE!y|`ujM-W
+za@emMm|G&;_23IXQ#z5(GL84vWuw0rFYjD?KqCD)kI(+POWScQj<Ma)elfNi+AoH-
+zi#fcDV!2|SEaD_TI9H|Z<GpC=3u0UP7scA)4rJSF9AmidR|r0!);XvL@e26enr0}S
+zd~>b)(FOywIO*bO(GnpC`~vVuO;7Sk$TugcN7=K`I{$0AC%~}JBi$q8lnk9I$M)m2
+zcDe}g>ho<~erHj4s3CE|HJvnHQ;hXaHx|XVinX2F5@)i0O1J$c%rTcCKJ}m^=ey+5
+z2M^hKoQkxrN17vG2Ww?n8v7>qNglC2(!%ydm`2cgnrXMiI?OYvLuw1YwNmFrUt0!w
+zPm4=kOMmA&?)hq+rmvhY{6h=#%^|rr5Gdk$bR?G1SKcFM8?M@Duc=*tI`aF0K4Dpx
+zmO%Vwv<>xgtp+`nf?k)ye`crtf<R)m@n#C+4yH~=j||tBbFf2ly<-B}Dp(V?B7L-Z
+z73xpjMyuPJ#hvtm)8*QGvb=vkB-fVig?$Cr8<cLRWpKX$BY2M65Np1sFIUWS<=Umw
+zA@}O$Qb$($bK*|uT&qH@@n)-Z<{y%>%5PzBRNpexw>d1Ar#T*m{RZ#UEBzq{ddqfY
+zn1S$Lru=tk{&k2mYoIMZvaQ%3S>{TFU#;nS`W$JjRPM?6PCORefpMC8060%n-zHL5
+zlF~(XH{ibHiJkqF`e~Q7yTNDuZtgwKX&;Gi1=JCQ_9S29d^HQOU(hwiaOzEHlXAf#
+zq(@y&V(p=~{np798tqgblKh!En^tnIUe{Me{v8YpUGns6_sDk+hH3F90R9JLno5<=
+zX6;Rt94*{Uhvb@0KGGAqqNpdDYdnyNS3(Y52eWFsTz98@x)pFvRGtyp3NrwHJV&x?
+zyOe9|K9F*1<UNe7JEWXUS$y5U4Pzh7;+>GQ@huzSCIEK5FJ<vo*qia)2fGPo0P?Sc
+z*$guV?lz>g3*o(pTMFX^JOF;`zB2cmW88ZbYc5-_j}O)MjHPY_>emWeUy!a5W6LVJ
+zhb+D!yx5;an2*(4FUh!}XHbrqlm*0{XV4S(D#acpcwnZ`gQ;{jB21>zCA`ZYwssYT
+zt<aWetkt_M<_R>%R{^GsC-sLvY?*Ck7Wdu`er4-D<@mk!D=Dk>=N^GS`DV?-7Srh!
+zd{e|>Iv;k6w@Ss^K^?Z*{topBe~oXg{%tX?r`3FA>l7V>I&b_+^0JXyoG9Y#)8dqA
+zai}Bs&v5@2`!I039r(_I{a(4Gku``Bg7KiOxPR?o8>w`u@AL@jbmTv5n?H7|W38&A
+z7wN3));7s@iFAuoqT)b?N$+Lsw7B0+9kH`e-&W(D7~l2znrqKm{STu4tF-zL>egn{
+zsRO86o4toPVJ%Kpw>B$>`yb!aX4#;keTcQxC)+GJMp8#jBjP$x&)cY<$ftDgL+%8<
+zJ&Ag(q>d-{^UCCWxd?HUKEA<U$u&3j^@Cs9dhR&hjQh&gmz(Re_y2_+lCNwYag7#^
+zWiLcoS$6jGBEYlaQqMH!9@L*R#wXv&;l2FhQGV(ZJq2wXGCYZ|xNo4s<!IqtDqLR~
+zE>3;l9&ukklAs-Wc&XvPqL<k3qu!R0pecq=WB7n4P956hT~5(|7g$24y3onHfa68t
+zDEC<bb3S&MZ|ne0qfT|PU%P<3G;t8H2QbFK#HZg<*UbXT8HxSeYxO^F1&coUka_I+
+zR_gBkH}Z5DCnQeg{$c2G%M*Fr%4~Vu;yV5+j7OBoOiw{v>Y}+e?)2Rso$<uzct*=L
+z@qFW_iBjMFZ)dhFurhrM{>lBSEYAXq`BT@C+xIwS=6IISCAYxJ@{M-DPT^ZMUbu<d
+zk!pXo$aoxM5yA%_w^)vQeUA8*r$=H}^?_`RGF|P6#6}N`#Ae?SiLrbI8-dp#<_&QB
+zV9$YlZ5(41;3mM=ToH-o01g56!hQgD7VHMt+{1EFe-HJrd1ps`fa|G`!BZd21w6+`
+z{cLlheCvezHJjR)24wiQrYQB3h0uNvM5zZk6m>=)h<bw5t@XIo0NGvWY708!8F2Rs
+zq{MsqoN?;j<M$NgWdsl(ew+uV`Q}CkAa1XaJKigj9`DuCBi^ehHJ%-6wlX8l7T?)Q
+zMVZ{8rYQ4Dk310V(b5n#ybCbTSnv^Xo)toSN6`Mj0q0@ccvu(ZC5^2HeQ_^66m5>@
+z-yXJ-d+U?~n~IhTH}~(j&)(3Aa&eqD9%yfjF1Lz`nyu2-W~&_IePtALztD24rDeIb
+z81e4KoaE3S!`7i+fcJp!wR+!+)p?=`(^DpR7xGU~$2{e-DxquYkxo9A_od`xa~<G)
+zr-a2@E3Mvt2%XbO-dEf$PPP_j*7afQ>DHZM4Y06P?*Bk?>mNLYeDEK!T+nsU_~gU!
+zMzd9PY1o=^>O8SlOkPwtnClls(L&O6%l&bOF(9!px+S`B=v&b`v~}C%k=T}vCD9G1
+zL8d#MZ;Qxv#kb<cQRhGj8%9ag3^m3lpiO2Xk05ZBhH<k}y+e=@h&U?)%_*0mjVg;c
+zH~dNBV$2oUCbQ5Ug;DMsoSJAsoXsP{)=bZGYXZWRL$+Ep@NdyIxnZmA#z<`8YjdNO
+zki~M*4;MvWjh5nj5OEi6d_B6z^IEhB@#;{IMaOTBE*kiT_+AOWMf?654N@m8zO|hf
+ziLowM4V)CE&b2zke+BMb<j1oOSB@%;Zs~=3f+nvui=uD+9dd1PB=*WDk=WHk%c8T#
+zqHlo?#-I!#z<$_1ge~Y@9K9}96`c#eY~^>&hRSHeGm%&TIGKYq>H*IM&n`gxeE2oN
+z?*aJbAUt(Pj)ebk_%{@xPlFeF0H+kqi)M=amRlZ_aSr4Y`g!120Czt8Q-k+K{ebI3
+zkyt2#@1e$MYGi(NB)$!Ye^U$cL3$}I_eWD(7esU5pACN(_(5u5Zq$qXGuhtocL2vJ
+zfyvQK_%Xjy_&JA3KaA&ACEP*yrv#@&i<oz)Jem^ud2}Y=I{LRxjpm`;sVx;z>enS6
+z*%qlqQ=<clWIid+QfF#IwA|keo{D;bPE7DL1N<xlJnZ;5_t$1e$#2}~>*?s{J-}yD
+zz*kBkn^%HQ1cAFE&{`dJHiPa4AYImN0`jh0t8_Y|AMnkyQqOWRZt$I+O3=hC&``m(
+z9D73?2NU<gKj>L5#*kS@rM@!8U6Oq7j_WMO*hC)nVrgk7Wy95qUmv;#{r|48Rj=fq
+zRwe%kna8L4zv|P|zUbPY&;LU9=d;kC*ZehXO`!f~!3TB-KJaw(O_>Jb-rg;4wu(!g
+z`in2N<rcoZaR<JY!>`r<j*wkGI%vx-l|91N#rQr_+y8%q=jVPOwtRQ}I3F9?tsD+j
+zj+fET4`zj}LjUqEyzFVeU5CNl;(mTm#{D(ot}17F<lB9}MR{0;&U_JnI?BWRpZ2_I
+zo!l**m`bM(=>*q=t?_NiGQ2O#&}Nq*qg&j!Rowge?%{B|9p|D9r+q>B?|spROSLx4
+zafhw;gYw-oV>9{f4)F#O`E4QSb2-nu6<rmt1nq}fL0_QHjquy@yRfz8PP>g~eoq@i
+zVC_=I->Wj7&hsx*!d6jhvVQN%`nB5i+tw}aV=8Vc;ugGauTxxkj5fYgYvYaG(rHxb
+zJco2Lc89GxPqGaEjxoHTaaD%ry2ZUq#eEoYH=Sv(O=TaW3^TMc{Hj|zQ&c)`q|<m6
+z#*Ct58MeuGD6-pOVYj&BRopb{Xw>xcL&i-1%|TnvKUKrCKQ(Ms!3`O6j|cgAW+ZX9
+zEq3qs;I6J)z9Uq=ZRnTVUd6oO2l{wfx47r3xPSY$qkroKc9~!Qwj+HezVWTQWFJ59
+zxn1tYl(6N;_w^`u_x7#R+V`4n`Snuyor?C&u~c71T;jN40OoWmjb9N~X$<d{#<!o#
+zG&)e<?W=9Rx&7!5_vtgcrL#|^vkB=e+a%>9wwG)-DIcBGEzS-V=l6&+VHe~hgYwZ6
+z7G)roVcn0EA*EY-e^co_!#P1d_)4oyZ^5<&i6qSn{(>@n@p;$yFRJ)Y9PQ|TK+}Kv
+z7|P++Xs%wv-4<uq`Ul((9qrh&PKz@galZMSao!Vg>a;k^5N8wIm59^WEzW-UPdI~g
+z^0tUKS&LVWc+bN<74ZUEJj|Waqav?&MVy~%adHvo_n%9hxdXH~+Y#p-t$bs&I4;Cl
+z2KV2&UpUN;GXj0@wa@K#xLk{~)e*KHgnKC054AY+kk1S74-K<vf2bC3DdMp`c?M*b
+z7Vk5}`vd$7w0LJ|@rn?y7VdV$%h%%Z?Y-sj&(h-c)8Y+4yfV0NAkWw0U4nQIYVG0H
+z;v6(VOK=ZEobB3~^s#7<+3;UA)XwYhXLh_bh<7c%UyU}2Xz?yYJkmp@7H^*xZx-T>
+z#P?jTmuc~?K|In!o)+)lTD&ocHw51=M?9Yv?;X(9cnxp=(Bfnv&Om&712lC+TTl50
+z?Qz}bQs;9ruUE8q+qnOa@0hFa*`&qWfq0jGF5kFI#{07tZzbZT;QQM=H>1TXMZELi
+zU!=wRoffYY@xFrlR_-Bd@vcTZmfx$zdsK_Zceg%*`_gZ}yY|C5=V^2Ij-4`j^5i$S
+zY}w+ju-DMI9>jH_khcD~tj%6i;~Pu8F#qIz7xA`(F(J`QoV~$#tKK4d>$BuLZkQ*i
+zbuYDUA3H7(>CJl)y$oZ|r=Q7v|Gq+A9oIKioY(!cSZhiZ`aZ#%K9hT9pLcYu6}sMi
+z^Q?BE51f1DQE?xGXGV8@Xoz*;Cbj-2-XIO|?3^*5?=Q^i_GV$jXI<Z#`r~Kzdeg=Z
+zsn_~A!&qCO(bEas_fYFtc}Q>8XKEZuzQ_8RT*qY^YgOG)uf!m(t!Vj|;oA|V@7Mg?
+z&Uc@7W_`kE^1UaycDBfxp~}mA_+H%4RNhg@31OAj3CQb2<h9acpM$;jGxhEw^7`;I
+zd55M_t1IblRyTdXm*V?`ZttI$eb#l|ZcMj0K77yV7H9lt^8EhPG`T+C8kgryjt{#0
+zOA``bt6=BuGK>TGwkx6D^5WSB&`*)V1Lh8EGi3Y4PE+;n$u(WAKlE4oSr=$HkZUD!
+zzc1+?pm24rR-YR+Tn$j|m)vtc{AtJDWvcxi*5Wj2_5bu!-aTNLC89h%RXg|5$|Ckh
+zR2&Q83sjo*2*Y~^`RXo&U(@aW{-@fzcB)OCS{aTDx<YKvWLwsu9Rs^$TeCfrcifIw
+z@5VdPjvpgU@`mJIgHL<s>}&AZY^`1|B5al_=Pjx(2T;}>YW=u%m&}*zu%=hytPt^^
+z|5V~gyiLz{uK5<PufgJ)D)WB$Q=SJ7TY24RDEuk!Wpu6Y>+ri4-xIKV1hYe%RQ<N9
+zyboL{-hNBe%??}p#J<Q<>rX0wo-?N2^9g<AyVEVo|0<<}eJJ^jI7itWcT@HXL=t9T
+z&Tf})PCNu!IE=paTg>;{z0L9CW09BxbNthMsqv`)RNnhYMBAF<{YN*%Qi6c}$6M*f
+zyeMfjMZFaf4K`c50?k&l$~TaFZ_*#>-Cxn+rrxq_6)KEh`Oo=Oo@3p|`TN}U?GcTC
+z-25rm$(LH6eJamR@*TAX?fdoW`yTauj~Y*@zqVBEVdgW8cWGxkPlG!h_~SjH1)tjd
+z<RtLr-Dn5jDEl1WnX0dG@AO_pTj2L*W1!j5gZ&M8zDaq=yWDD2??dpe!vSsWo%`^~
+zw=}sIVt4}a&-m^R;_@AZ&5AbomgY&SKBOz|ld~SH)V^UK_3dd@ex94r^_!=w?`M8$
+zubupza)=hjRAEkmy_x&XNM||klB)fQF=~I}s{{7_#6W~~psb5{<{fnC45Gim93owQ
+zC~0)HCHWoq5ZVDZz+}MW!4z3`|2$K@MQ-waRMjsBXyyCY0lqgQ`{8u*4)~o0`;h7b
+zyay-lvZCA{asL7B)8LVBA-;1!(iQha>U>?_HYnG|i8h2If7)?C-ib>bu=gbSzMdcb
+zb|w6d^={)c2ly^@*M7?~v)_IJJ3W}~XFDuLyG&4RQ~BX{%f7Zl$uB7PN9u0ghHm9Z
+z$|T>X&-sP}|JUeq&gkgq@X&<6U!OB2q+G91K5^-wQfdqq>P`)%S;;%td&l&$n!AL)
+z%G$Czq3pH1xTf?@s(h9~a&9UdeRg`f()65+c-!RZRV7qq@iXsjN=-ENFQ=zprTlA0
+zq<g)C2bY&s29pXVYs;(eL=F|TUiym9!b|<A6Qg_PESJz6fv>gGE9+z=6tpu<Rp^?!
+z5-QXrNPQLFDHSuys-(Ks!GlYS>&j$lO6sa>@2c$*Q|h*rv8WpO7;PYPMY!tnk}h$(
+zl~xs?WO@y?=;|qp6pBlKPHn;Br(mt<#U)ZFF*SS2n8kG!CEn7SipfZ-qN=3Ko8Dbz
+zr^roYeP?m4m&%Yu(U5{nzpPYbOx+>D>XLFsk*!%hUFJQttfs20@~qnKHIc!EF4<(0
+zcczf6{C^NP*&^R5xcu4$Ng|raOzDL5ez&;EFV&Mf2@yF+^(pD;H%dAj;T5S&uPf=&
+zPTfigDx6vttfQ9IlIrT3(uyh&NvU^wRRuFCuC&qCsUGD=6A~fqh(PS6!QwjEXw-F$
+zkLQ(^%{UJ|Md~$1;i+Z0q6(-2@uOO$Ws{4ObY5CP4bBy{#iW;#5~*Rj%zMqaQQk?@
+zYrXQb(AC@-eNe54IjOkxuCn49QTK`|Rn;|u%77~2JE^RsnAtM1Nfp&X_4A~f>ZxT_
+zGFxgUPj)Y*AiUP@St#?J<rTm%TmG2+K%^qjd8sT#*Hna`Ork>i*m{Rig=5l7*9=gR
+z?gUy@4T=|S>h+dZOC{y9$%I~Pd}QH=cyB7ZV>;SR=F3K?p8TE6$|{7WZb?GbH9859
+zc?uMwIhEdQ!853dJ*lm3dR;}ORLV9OH5xW#==npa4$QcLWfI+zHI@B(axpkkSBw-S
+zt2$bcSFomRMn(1XTHv{)x~i_Yq6$<xrMPAi*s<j0|3SKfGoT6;lcXAFiAl8n-DNe^
+zx#_jlUU20)DwQTF6qic<#aeiw(5D(bLui06W5X8L-1Q&lUr`4PBIPo4cUx0>vA4AN
+zF2&kd^X{cY^0Ey?nyB`mAwwsF=FkqMLOn7g1sQ2jsqS4Hq(WwpQgPSPuzz&MKd+Q(
+z%SU}rx$o*0Qs8|?agEfuhb-Ail<v<#zG0<9)StZ4bfb`MTUJ>dtSu{5wW}$cT!tZ`
+zM0KIgwiq<z!p>}lq~{}&P@X<{dX1n!>S`}5W>-T+tIB4geA6o{RRq!a<EY08F}e{A
+zRZ9;URyv~d4>jFa+KnVjHT2>OFQ!gu5rsXb1X!7ZLJt;7q(y(MsuWn(I}vftw+Tv$
+zs~AbBc^5seTcAOelSQVm0hby#7mgP6GUmq7qsF8gLO!{rxTZ>I$evyWW>!6=s^V_s
+z4;i7R)LTh)|3IfoQRKk{a;}^Segb+J;VnX%XR(VGi9`j6GL<9AA>ti?F{BQOT1leQ
+zI4}!s*u`~Snxq&MR+DTJ8Bgy3KOV&>_|CXcP5t-YB;OEBg!;7$M;p_trdCzoS!Il>
+zt(`uN4gLLtib_HDwOfiS>XPce)%aIYG8N+qzT)o`BC*q(Z49F1f1%@^jVOdH!LquN
+z3`E1c((_0v;*Xc~JficD$h+`X!?;Ghg&-KO=xkjJ{+(pHP+_`JaA#-vP?#SM{X;Zc
+z_+3U>gFyu2U`=h3PbLcqUQ;KYFj0Ix`JO{g*^ntiychT|K$8!FJ4{2w^0U2yaovSX
+zrFh0Z;k^?TEM{%1N<rx|>Q6b44f9=m!Px>igG$7B(4|w0cK>c!ORLM|lMKnC7JJqE
+z9%z<aFZi*{ud0)^f`u{@^4eO}=Ve27VeuM`cj55f?{N4biXLREc8`oOHcMq4ZYX27
+z<m&^qWi?&+Ek_E$-eiuGim5kWYXNWZl<IU5pRYx9$-*89*tukQQPisLwH)$)K|3a8
+zm2pxkFYJ`}Wy^vO7FSlvhZ$_$cq8zoN8OAebu%WSe3Bw_z0zZPr%yV<+&!f3?uqEi
+zR3d&SpA+bOTSUj1ni6zHUCneU{BT5LOzQeak*-%yi_}gJmen9!O;Y006G1q=yg6rM
+z2m_y_p2eH1iYG}K^B9qme3*2r*!1LdRz<!k!!l0~mdf`XbOzj6Xi92okWl5lh3~$g
+zhs-DwuPD@&$pLzDH6M#nuUCNQr}GgO@kWfd>+m7w0rreWqm^JW6}*eSjW&WXk)sba
+zXA5q~ERl(!r!8tw_TNaoTe>1MBftCbp+&HBk>l}bm@e|)_q;E3dHIZ=<QLb}PQP>1
+zwd1auJVMEmb;VN!L5s&S<g^-`Ysz$HTRX(-{b}`dl0&ePPxcIwSsL^dt!}^O!$*oL
+zf~a+JmJaEH!AeA5gD44#qKawJ@seRUycKI>P3L=1LJk&BLTPiMA9))}m9?`(lQ1eH
+zSvyU|)?~7_^!`6fR>~4`9@&{z?sr}q`eDibhU(<xN40!sHnKg`$0R;L&edLO)=csy
+zIj2=Kn64=$pG{KSiJyj~U&E)NYA{ewuPm;~C0Q#jR_ncEdUc(YJEj%aOjT<(B0-t%
+zrKb<7J>7e*VzGlUMXpv8u0i67BjXy#6+)_IoRaEk)6mYz_o8gRz=wd&Vvw`Ed<+Xz
+zO_D#4s<&&)y|v|Km6b!hLd&VnS1@}D0!4~@>N$|-)k;|bP0-~_1qwub-9>q(rmSvy
+zO_i8!mnm6Jt?!_!jGByfXR%mDLZbBT%-Ht+Z{$^5jXqm0gjy+Fizx_jQ&m?srHnID
+zi0G0-R99i9!$Jv4mw4p@OR}*4jY6t2it^RgiN|J8C`>}(Q7fN-IhKec$9haq1**Wm
+z2XiGw%wWBv?eVOWn~$rmsktjx_HD7K)j4Lc%S*Zb7_&<`hxkw9s*y7p^M9D9n!2m$
+zn_NWd9N(oAR#}juMVGZC@k-ivlN0$@3sjD(43-z8%aj1kWkga1g~8xm`g#%ZIB9xC
+zrCez146PG|NG3g}SO|dA#qvmy<T(w<xJz{8<cO_j3wi!*VCM#|<jFZUm^tULH`hw6
+zcg3la^Z9lPCY@#4TT}|a+KNxN8qcUG=DS;7F@^Aws;f&yK4nSPQ#NV(lqByF<G=h;
+zS_bw~Su0+In_dI&;u^HBXosp~ex1n~$KWo8<l2V81zgfK*KfsovRqij*jHjC-*-_9
+zriLgD!<N+<$(2Y$x;x=crk$K8sX3%t$TB*Y!l+xiOup@<rr<_05iZFzeqifCXV@0a
+z%`i(fH|MYs%}vI+Qgid|r&XGJ26b?2ZdQDq=BDoRO`4le0&LdY^?Zj#b5jR<RCCXP
+z*{8W1sDoQ`&o$Ho1?o4CI?pxtebi|jwROQ$r}+TQeLwY?YVOI$&`V#Urc%YF0zcm5
+ze7|H`b*+3zEa&VIUiHRSwHUB!sw?>zTMdb4(0DaWB*&WXi6@@g`o2ga4vX;L%c^TU
+zG0*+MY~(s#kczxJ`<xI)JN-w<_X4j`@mLDbFJ-4`7-HDBlEUyc-qH&3<YAp!6eBOw
+zc^BVXWCmSc3LJW|&!;4s8jJ{KwPKBn(+Q)nnvWq?1R)yK$-b+n)`fTGa*iXU9F1d)
+zq4?=Ni;KR=7ZXcsxUwynhvWtF9YwV+ErhQ@lraU@6wc1sRoP5F0!LoLZ*nFfWfEJK
+zNWS)G7|FSgEU_Bmg!p|^;pmB125uZ(Fmc?Kg<hexTuutQ^Z%|zCWFGD*;yPR?6MBW
+zNRRIw($4Af?QEHiEyHvVbJLZh^1BDRvrOhBNJ&<PHBsxm-D|`YI*VZ3$kq_+@phgJ
+zdsF_z!fUR-Qstk_QLgiq+H34G4iZwbSC^E&(-ak*Z`|49zSmwW5*riMK{<YQ&U$6G
+za+H>9mZf5w<xXvdNraX`#5|L_@AX16Y`3K-ySo2j__}1y@*U3Z?Ly%V)t{W4%XQY(
+zZrJaMQ}w-3G_kYtE{PY=h(ye>%8*<+=!zN@Zcy#nLZ+ylE_&bO=>q@BJpx~n&wyi;
+zs7(X9wSk{l5c>wy72NtE#*_~g|No8s_TGUej2%t(yF?!Kwo1l)`L>Doukw8ozB8l0
+zwdb00?6>xO^W=LaZL{TjDNmZmerxaG6#3R(sM}k6O^p&RZItgV<aB#$FTb(tTYG$e
+z?7#cVm}0+b;+_Bh+eZKKJ~-N@gKvohjXR7jz;{-gVa(bLe7p|)Z~A}U-TVLayL&Uu
+zAAWa_{iY2-(D}pf?y;ZwQf2@8p?CL^@AFmt$h&*&SNZNAe|L}lveYg6<qy5P$9~-8
+zmi_yO-rXag$w>e4clQLnQ-1l8clY>i*Gw?5l_S6Vew+U89{HO0nje36&xde6gxhq=
+z55K!7-U6Ha<L~YrLAWE6fBfA&`L@@Ozq?01?3(i9@9t5LzkAA$zq=>j43qDL{m{F6
+z<lhGoZtIV{ySJ&_gpu!6{m{F6)M;^`T)w;WWAE-U+<)@!p1a~dcz5s0{}XTCQ3$K7
+zsG4dV``x{({+G(o<;^=D<|wY@KH;&-aG~%2$lHI#wPjUg?Z+;|(Ek%<D4jknICWZa
+z@O#QI?0=^WLw$M~Aoxu!yQ`$SRE$r@EXVmj`VOL9j^V>EK7aWCgeH<XfB!p(TV9iI
+zX$9uG$-h#P?;xIp9!TC-ez)5wKP*j_dXw*e>m9@f<VB;ugDCxa2=lKVGDH0x#1?#S
+z!8e-j?;wt~>Pn9#2c-VMJBWNAZk&1x>~&SNesKR*#mzJ28*nUJ9Og^q{|?{yQxzK9
+z?cqMIr<||(jWOk#65q7Do9_o|->TGGfs_Rv(%wb9(3Cv(DiwB!Dc^PzZvt}di|+@T
+z@;yEl?mC#K0sdNrIY&NwC*F;FU-5c2=M~-B=6F-e7krnl2jJsiu4djayf*U}wZ3(2
+zw>om1XiC2Kjc+4iPJ}tvlyAK9-I{6YO+*L$E`$A5^4&$a`II!@c)d|e_vGYzkIJtn
+z>`B@hm;O7f#*to08OfAy!u>=aFW@%{#&61Z_QYI8%kNob^UcH?U@lf`Wlz9-p}ze?
+z*)J&C{+E{iFVuU5m#Q?=w6w1Q{D_iy#JiPn^Qo!Jv@l;QySL`Y_x{d-$%pww`CS6|
+zOjEwi_+N&6tM3do-tzabvY*$=b_K!*V4l?c_!!W|DzB4GDL-x0zJI7>$mE*iECut8
+z!GCvs_S^Uv=BRQHM_Q+7b+{7n0Oh7Ey+pkee?8!VFcm6X@~u$5C4ZB8PktD_|52^6
+z@^?MVo0MbV{|BuM{oy`C<w51O>tU?qTcgVVEK|yAlw*eizJzkODdi~9Z2*V)-l3N6
+z=P)Bwe6MNzf9)^ze-P(v4L-Nqw*eZQqP@#{;eVL6x0_p++w`|whbjAV?R~w|y2*zl
+zz9$dPTgGVb(E5z7a-*T%s{P(|0`e+-4O`hGyM?=^oBIUyJnvNH{#laFwJ_r~c%lZM
+z)Ge)aWnZWH-KgHJ)Yt#Tz6Hk?^~U9`%5T(<;9;S%)6`p=cPjTHjwNcX=P~juo)J^;
+z@wTdWKJV4$Eq_+<Pu2cM;23#5px$Fm&h=h`S)<_Fq<UC`vdBs$2lQ0$eew;~wr**0
+z4)j;e{W#w_g}F=3yQAI0uU7jM+m-w0%HGDe>0y%FA-~k#>ovN)DV+T6RrYf*A1Sy@
+z+3#xM_Nl!W{x+!fFV3|-Q}6Q5?Uu*imHnyO6Qb<&t@688odJ1Iy*ZqG+qhl9zt{V^
+zDc=b`$&_npOO393SKOaD0Q0Dtlm1P~JGZMad{gxVv+Mp(_V@5MPRd;P1~Jk2#*pu{
+z_EKR}U>CCAQC?DheE)Z}f`6snzdcX6`8MowHGll)_t0wx7{zJ`84c>a-0Q#u+Wum{
+z|JuR#YX4%t@9IFf?SGLpE8crWMR)zhe$O|6_y@G`rAYtCUnHH<JpmoCsG)~wpMmJv
+zw<ElJjs3oIZ=|2O#?JpvuA!`v^iQ`B-*eYUo<a8ms;;e0>3$CG;cM*tJ_SPZ*GT!V
+zkD`@;=HA2iY1i20{TB*WzDAB&;(c7W>(<D17rIYDJ|V3<`@yW6)<{{5?)AuT=^DxB
+z=za|4U9rY~KiP%vt#G%i_nnEWby|JTKz%oB<>6SlZH*iw>An)>iE8!dn6eM<h$`O)
+zydS&9e$V$1%IA8)Zr?*FzX$G_E|nheQL6CK8~Er2_W*n!py(lva^}2XzyJF?#Lt6!
+zpUSTW;r%a2UPJe9A>@vEL9Q#&-HLR^zaYmNx?AwQ^acApX7=;o3sOd>yAt-S7wq?u
+zS+B+yBwwL>4)R;9<+mig>lheCeOJ98<qYxuH1b>Xg54e~P|-~<$abZBBg(n;1^YeZ
+z5`^FJf{o7<q}Tp}{eE>L!XJFWrk_(CQn*j1_Y0(-vDSWH`j@DG)><2%XQ8~=aIaDA
+zvlRLI)=K^=-rq)kBjFAxdL9b90Pac^p29)lTAN-dh!m}ravt4xp!}6^Z&&Uq_&#&3
+z-JTsNPs3XKz3>eP-=dXo8~m58m5fZ_6Zx%NYrnVMKz^}S%Hjfls88EkyT5Hhep}Ys
+z^tm4Gu^sL<75*dSze~&SBDfE%O}<Z#w&y%T`!4n>UbNqjz5s-i`Jx=x=>8e`gXX5J
+zocp3pU!0>2f6-3w3Vg_a(JtRkxC1ZR{HzJ}oA9EXL(+XS+NWHLFUC;KeXGXL*nc)~
+zjaDn~BGj)*3qKD5m%eECk1+CE@uE#nl%ZQ+wE4%k<PR^}_<ooCK}&Bp+It(^4XQui
+zi1eaxZ&B^t1pj?6O1Yqqnl~JJQO+Of_NevWB)y99XPuq?QsCdS&c;tF@*l8Hj(2pw
+zNB*FNe+K2rTPNqAbRXdSPy2ou+GET*o4+0+e^_VZYaa3|U1!tN*Ic__XTJx}xy7t?
+zavY>P3*Q^p$#nzK-pGIPI-B2~h4drq?D}yYRj%Qy3HV#JPRdC9{yfrO19xdMzcgDG
+zq<a$Fo7UOx+u+`+x!*$mJJ#9!;^&~BcCG&0hd8)S%2s0haLdWlA(h_@g^y*5K2Ak@
+zWURN#Hv;}y>+STWApdO5eIn}PTQB8dx<d#*a=nzj>HZ1wD_C!rmvT|zdO1h$qvp^>
+z>*e|b-7g?~<$6gMB0soiu9tF>=+8*MLCgO&l&59A&F{D3`?B?Njiir~!B%SFZ$SN4
+zueaN4B;}9wa-JdhKfZ5SZ{u?&+HX7E>C(+P<*xNMzZ=AN!PndG({tQ7!t$!`%Yb<I
+zOE$gThVYp$+2!FHi1#Hq$EW)@D1Yut_V|&3{D*7dZ$WzbFWLO#7o7LMWcTL+@{^Zr
+z{>gXC%U`nj!+9u3-Agt<8VPy{y(HHG=zbIFHEH=xB>#BHZm&sbpA|3J^i6rMRV%L_
+z-`Bll)6*$Pf3ubz<;QI=+5CAb<%^f(x?3MLkJtzII^|w~@*aB0mVerSZ`aGV`)|m{
+z^Rirj5cG!n4|v(;AAY!VUbgXhwI+X19xNvRc-f}66A|A3vW?#-kp7sL?fO24h~r<j
+z+neiar7zp{=h|NIWxKxnk^U^W_o?=H3*~Qo+2)5_OIxgkKau?7Wn2Du5Aj!N-&v0}
+zFWdBb6Y3Mx>XS!#<7K-)+>iF(`m!xgtp$E|ye!uV#rTEv+qL$24e<|Z`MsDXCvVCA
+zd_Va^o6Rrxx#S*oma5;D6uymZ%LifL&j)vra=(T0jBJx@Ep)$)_yuip?McYn_+ALN
+zFGY>Va2K`7aZ>PGgs*I~%l8rdXKL<ikY5Ab1*$y1hr31l{xrfbYm;kbbW?G`$~IeG
+zd4~J}?$v61n~wHrYm@5^0$=10Z8kr<mGcw0N2>hBBfVX1Ha)Bz^<R`vQ$$Kix<MMG
+zyFo=t2>}6VX^`#)0qK(NP*RZY?rsk0PRTnsxZsHQ`Th^@5A)e)pPiX!Vt1c=c5i2l
+zzd^7X@4DalDXlsncen@LookP?>?g8l9ByA7ZeC-yrE?FnPb-NoLkn;}PVdk-+;zu-
+zku+zQ$2{XSG{v->2%f8g!h@EGt6|I>25>}&Q`i(={#(Q>W{zpVD3Eoxdn`BDc8AdA
+zq3%t!9w?Bnzs2cCK<Y)x$9zwkGuR#7Qk&TF)lEs^k)y$_(NVlp?Ij$47rgeR<uShe
+z@h3hYp~^$;++nb%i@)gVy*KxX(3c|P?mm|zhel`z$??8pBNRn44|h(rzkJ$LK9d=*
+zbwPp%^S@Ixe2|NSl+c_b-%GCAl!`vcy+xV>0iU2K@l<DWsKz|=>Tk`7U|!^aVvZ?H
+zJ}4<(^xnldfNY)TL~3bt$@Y@3?5=h${iq@7LAO<}0z$I0SvTi26Dj_<Y`X^)ogH}7
+zs`ncKufW(TMoBDF)r{Ww_3{01TI3Q9G)@Gs)GY6<)o9W)tdo3tu;{p~DR7s)ika$R
+zPm$|1Um6)eV((SnmG$xZ4V6CLmunnwxz)TGZHbcmVE^bkIKl<<$%wh5X@s2bQvi&7
+zF%EEe9!FmDaf!g0rZr6JkVk3QTctxiq{oiF3e_L5A7cERgNF_a(5fD|w@7Tk#x=``
+z*7SQ|CZk72r^_u(C)%FtghMXWU~nM*j77>u53q!`sU{js9TC;$Lh&jfAQTv}m(fRe
+zYF>|WL_6rKaNHlJMY`RDM8QwHTa140Q&l@V)E^)FHp*|X<;cdoA^fS<EPYGdEoO(@
+z2!R>4k2!5oVYj@UC_qtF<(wgRVDwkH3j_y;t4r2ALAWOkjwv!GThF~eeE{Pu*c2S*
+z$6pgT)*r(?Ta9a0uM}yHxN25+z>L8m9m;b@8Q2-<aF_7M(-(4JosOX3cj7&VhYwSk
+zdX5jSa`QAbfecT)k1M?%duWa^n(maeHhun9KVmlq?^VKl`nuYN3=rB7nX8KRVB$T7
+zRsX-0qTMGSdqfNZF3uhN{^m2_@A(Z^Qp>oj-&e>yN>OaBnWp(G1}>N!zTtVKV#!@{
+z@C$x+Gv+gOF~jcqaGA|B<6gvw5^1yMLC~#tFF8Eii>@=9f)MQgDz`=aJ0;#DcSUF(
+z*GahjrVee4;57kL)sG6Pd?pP@aEk2~u&dWIE6Y=}a{ZU&Mjw{FVbax_f0=C*S%i9f
+zJ@VH8*$SU6ZHpg|QDI%L?4Hdu(3dGGuAb*0t59cyBCfAvw2F#5OWWJ0%d09mIjed0
+z7`s<bl7Cxy4)2epf$S%SBDakd9g&TkkUv$KT2fu2pLKP{xyTRxHhC(WE4o&_cXv}k
+zHlAp)$%JRy#f|BJVou+W$8+j{*wfReGR3P9M}I{y6MIs17bvZSCf-|9lGL=hn*V@H
+ze6^2BaxkVNyh>C1BftjzC<v{2l|?Shw)9uE=GBf)TueoMd-Ra!UmZ;6{Fl!|7YeB{
+z6Yr^kU7Aj|Fx682K<3Xx+(I!x`go0+icE>RXTD2mYM)j$;*!TeF=gq0Nw>ys$p(y#
+zb#!#KY=C$wtO?`468fZ8-Zz!kwTfyPipIx(*3vgN9F~Nr?xtp+9QPUMS68&3n2UxX
+zbftdRx4thHEU|vBr4oTXZcwMsRr-lcZ~pn>rwmoD>b&t#jcQJ=A_liV`;O$K30c2B
+zN(&DTzv8P#`)Yr>{CXGBAmI3_;oa!Gq^Jw)xU*_?S7pT@NB&?3R+DE5*)NgP3NEhr
+zXe*&PU7=(juBuEkRr#seC~TtKPeOk=_GDOBCJ{`ldh4?!j-l<U3M-VYq8wU0dAzSg
+z^o{mk+~CEOYx_pXMU|H0lV_w-X_rPn`9-O%V;3d(Wuu&%v#jFjCm#bHy5Ba`i3h2l
+z(#gWottnF`D%f$qa@YLMPWS`nCeYQ$pInoB>F^o!Ztv6RE1cD*?eE!`B@k(8X%*Be
+z&wdiK+Lo%Y+`p{P8a1fPLX_z4(phpmStLj5{<;8F0;l*(L`WtoN;OC<-@N-7<LOPL
+z?Z8Nm)#t-d{OhZm2$(clUfos^lhcg+Z@n^$Zt1|MXsu?OyxRB6)t;=AUx;VNVsv!3
+z^mQ#%b2%Cv)b`I=>HEaKmJ(g2EE7?7C)gNc2+o};XXwY8*S;D8zUH_t6g8iDGCQuQ
+z4fPp#tRLIf?XD7sFg2q;{TVxU!L1zdyxo>A;77oZ{fX>eoP9#=sEXfjm@kLP_!YH?
+z?b1H!{#APyZ~wId*kn0<AN?;H8|F^xrs$Z)H1JY|WGcE;JEOI<_W1LYdg{5D!k|(a
+zS0?==)z>Fh?*)rhyz36)$3n{%eher_Bwhc}SrDsJgkbBlc_{5tbX7T2ysqh#=UgSa
+z$>qN7aM;>TrJk#eQC2W7R8q{AO)A#2Z&?>!A=Lb2vYlpyQBXzllgg|8-&G8f*y5~x
+z;lOf%RBz!q_qUHM_bkVx>4hKNQrkOLK9Y4-;;(Y>Rp;rl^1qd2(O2cvuF}!+)~j{c
+zEsp*r-o!ejlcKN&iNVbIS#02;wJr8pz1hHs*|xR$kM%H1U*gK>JKhQ{1GdcM*7Pr=
+zdgM#0Li;*&^=e-FS36KgkEnmz4%Eqe>PJ+gWA(!3{2V0s+H~CA7VS}5q6!cbkM0;d
+zGS8TGwtAipTjn200*VW%D;5!7XJf`l^uM)#_4rYr6+!vr(>KYv;IhB!Dol0rFB5Aj
+zL_>+UK=xb{<Dm{R&$2&@G*owf61E%5D;c(QwTROvkFA^K#lvZR=cVS`Ugv&YSx(%j
+zYb2&GEKjxe#*MX^6v_Hk!BaS;R714akLyL|eOdLpgdvB|Zp;#rXj3pU#XbTuG}BD1
+z_FoBNL%b>X8U#VfyZWvwy%j~V$?6$)I~K-G0v2u}!y$Is;amG!bM@W}$tqV*Dcz3n
+z(XtGT$4G~KC|jFTHfPIORNr_u7kshoPh3uqL|BDHCMCc3;r2}K6ds51obDIf=21CN
+z!}w!(EiaOj)OmkD6-dTeO#M6kBG)KDCqNfsB!c(s^lRET0atThZ|l{S8uoGB924qK
+zg6MLbg1PyYN1zIusJcJo@0j?8aO@Q0h{~1gCs}swwAuBPGs>Spm?Ztj@RGL%qe($*
+z&kyu|B)xh@_Y6#WR^mWC7(P~?wPKWVvC9)N-OX7cY2oHZ8_E6TQnBu8dao%o`+!3q
+zm&m4`Em4gpjHkjtZ(d)=Qc|Hd?Iqavr_bQY#$O#P+Q16yPYZ=5Z0gUd^mJ7@kKoB!
+zLodj_s|vX8s%nX!jj0q0;s7y`o1X9P3`T30>gfGGQ5UYJcb_6FVke+UW^X=!@P4=l
+zm)t$xp?cQjwC@^b3aoTL(JI{<{DfWQyp@Ry3OnfjdN}14{L;N}y=4M#{3dHsw)FGJ
+zg!Id$6v2(s&lzKr!b7)8hrdhbTr>z>FG`a{m0P1l4-<JB1^A3qX`p>2jRJ{AiaDqE
+zzzyR!G*$*G9qfn2jY4=uX|T&ovH6SeHW9~9)^z8anR4^P`>rJC-4S(JqHM*6w(x<w
+zTo_J7T|6v0qApLAZBPmbv`(qHdXH~Gah@VzS{9FUEW27pIgGYiX1=M85*`qLM?><D
+zxv_0W02fA;xi>#8iYIpdCUXQNOLDG`;%=03RE=w}Er^%kJ9p=&C=290ylHe7@Giv<
+z*q^5lZ4*6*;xQ+RvTY975e`Wg!1xCsAlWVcE4wgGvf1ul{^8l~S^lSueEppTFqZ*J
+z4V3vn=4=0F5Ooysb{<R_fRfA@P&Xc;EU?XNVGc$!th!qC(Qy?xmlXxG9k4CTBfJB3
+z69dg;5DnDV?E)_}hz1SGqg7)K#)F+H)*Xl*9YCN55YPbxMF8OmqD+PysFOf6{AnQ?
+z9WM}N_axf|FrHqy^Gg5<o<24@1H@aHccA<ycc2F<fY1v-cn1&@0Yt<A(KAHZRCtbQ
+zFE9Fo9h89VoD(2)1KKeF+#}%nHvsPe8e!lbAXx`B@IWk}#6*-C1488!0DuMvMgj-}
+zKp+J`M-Sk01Hkt!c(vylAOP+ihyd-e@iZiOwE+Nk;66UUw+#Sa08l_Z{=X7vg93mH
+z)YX8xHNXQMD6xQh|0xv-+{Xp3V}UXjC_extA^Kw@1KNWfAE2n*^E*%wVBvdlKsi8J
+ze+fVs96)eNL>V1`^Y|QSvj>=_0L;h$*n0BV7z_w^Xf|NlZ-N6*|A&DEV7vl=0eD34
+zQ-Cf09mwfF_J9L|0E6EH#`YHhSkC|~dH@!_Z1FH$;JT?-&N1KWXBPpYtP60|Jz!sy
+z74Uc(03UE#j{nO>Q$P%7fM?HtqT&NMl0cgffL8<1ivjus1AcG@kb3@;1{Xl^1|-o1
+zKn`eh29(|Uj{|`82w3}`7oh9`8UpOIVgHq2z{*Ho;d45GTOI(x0D;_-2RkJ|6@l#n
+z(XHCTJfI2&BrpVo-ApX*qCu2x08TtaTlF^s1H8e2reJ`7Fy0+#6X=r<Ko7a+1fC-V
+z2=QN!2m|0h&zb_=s|R4j06;KcB3Xdo0q7Qi06`!rK*R%d6LdrwzRDMAN02bvtXH-o
+zkz<Bk>b$x@yxZ#UQcV@9DdEsY|4c=?bB|H9M*r+#?p3NE=(Y@zmj$rPA6T|<!FaY+
+zdXVkUjWuC%(1ktq2Rpb>yj3G3|2x|PTWT&_o2=pYtL$0BuU7BXfJtMlv@RR=1oT-R
+zMGE??gc1hX7M+X4t2JU}4_mL6<qVUr+GGyvuC9~<^TtcivN}o?wEPCe4T_qd7Kk@)
+zoDq%pT0P1fmR&u{1}2WSQr91_FCg)E{!w<cKc~=37!xK+cYet%2(LFrW+`HxL)8Z4
+zrDlW$?M%N=>o@WV$D=j!3F7me@02E~q0B*}KV|xb-Rw-wsbyE0)tD1uC8YwnFso95
+zWY|IJPT9Fwe86gvYSA|sS*bt-%oc<_J1rLfc2y6sYYkviQ^2OYfU`{h8~6W>b2^}_
+z-~o>C103<+@Sy>miUwSN20-n~F)3IgzAHfL-M^j0h^oCJLd6X%lX}sfUD3ED`Z%$!
+zInu2=q$C$kiyed--|6pm8a3_Qb_w<RufBL{+WGA)YTAWuH+<gt?MrIf+3lzJFnfp#
+zKFrP~0n=YZ{6m-w_1WSV`7pvj>j5m`R^zZD>Q3XZmah<Nd?(Ph2=#hJAD4*uuf7i=
+ztqNf@BI3n;K)9gtz5{Bb;=Vl*@xnd~>a(To9qKdCHZ4Bvt4lhjzwmNZUj!z@?I-(S
+ze5a-Da!lu??JDX{{jfD*pLk4w^?UpTTZk6E)7-WqK7k!X6`$a%OB*JI9mEHpz}6)M
+z6D8u)iir{yR|@N*&MoPq$M>?Y{n-~uV0&KEcTP?Fcl(^WQzuN!-X#aKW^P*--{f~6
+z5xz-99}o3<c^@Nw{_nmw_`FNoO!)LQeQ5Z+vtN2J375VUU>@1l>V-83FBkPW;fs=X
+zemmbX`+w`K`+wFs;p_iXXJN!FQPsW3|JBQi|7VQ}?ElXiFBzchT{<w8M0`3ho&Ro6
+zQLkf)cknn+RV96&Xb4zx4Om-^ZEFx%zM?dXb;fC5#Weho;Bl6R>HZ}kI|&+LM*BT4
+z+BwUlI}iS4VMo7ljeq#6OGYT5*h1s@YfI8tL$*mb2C~`b!`$_hD`j^)XF#I!W+;6`
+z#xWFM&oma1;M-x?X<WVyB}#BdveCDvO7afo#1JqiBNl~WlzqyR+{Dh&Y=b(c-4kNh
+zI~#G2YD!AM-DW-vC(u96ntzfHXo;fp(Dv{q6Rvm+yKS6&jy~_9NyYVlC(5)aiS-U=
+zXnrnjR;k&gm(|}A5U=bYes{>SRVy5K4S!PhOM2x*23Uy6gdP9d0A3@=K)c~#q}_1+
+zN5UeAhD;n5y|Pex?-|N2Ti}TmRqvfl%CDQK$2c3!$uov%{O<xX4MlR`f6D`{s`8DA
+za>O0zcGgkNSr%<}sG}$`E%rN=(k+Ue`g^mG58bh?-@#_LOuKXlMx_+11WEj&1)*<X
+za_0M_oCBJ6>zBk9^bFq1&L6J2rnbCBy%mu3uGI6W&s{Q9cvUlQR3ErAf}L_N-T<$N
+zNU*aaF_g#}3(`*M+A?4=DvX{qxX3j7+{NR!t9!o{Wujw$3&zQsWVb-9bLAXwr2?I^
+zx_G>@^Y%*a2IJNUJ|~K4Vdy%1mw=g6?5TUv^e<n{fye40xE~VsPqkRYI1OdFoYuR7
+zQ(;p5x>)S$7<{-kTbLB=;ZaP}-Il(Vi3=y@BD_9;S9+($W1jLcZJJk7dhyQZVWYgh
+z`{MZoT=og?EfFfy&R|OKI6E<0w#IAcd*B+8u)FWf!05tS9V|3W!Njp(Si&_Ff6{MG
+z3^TS{fF`g=HXIp(31^#t)V>NUKqyIO^mTtqW6Z*`+m|NXT8bOIO5~uul@A=uS?z6l
+z2rRx$@KW}s3ZYyZxOPmt*PiW;8)*5|F>-^gLx6UfU$4@{FFXI4=A`zoB;n=G1#UKa
+zJlQawnUGrW-Af45{7sE>Fhe8HrXvh%*MX$P2kxCSS^$pg4*2f;<8}`sFXt3hO1WoV
+zDCT|TxWBVXGw5{rP<2VVl{~$JD(+U$ZDvG9f=G_@FbsUjhO2g^pRVE+PA#)L-&Pb^
+zKr864WXu=N-~8n*hrYk8=9nLIr}R&3R;Cr4l#al8=41818R5#TD)*hy`O6CB;sK3A
+zUK9jQo8+7n<}Q<VV4u(tFqQ5DU2RcLJ?J&-Hf_%ZBZmd!4|MZDFNFPHtwuRVCM(rD
+z3(2t0=lmMSTJ;%skGuA=J+^w;#Z(NZwJSCBQwiGjpI2R6%KHOm1TFhd%iAeZZ#g^5
+z8;pjDdxb=<!`0ZGea6FU8JN#5%b`(`EcY8XYBs30tn_ej(Lzfw?eXpT76NvY<#c)e
+ztZD;!-UD%*`Q&XQQ8kda)sTD;fNS=gKH0~Na?yCFB$${_BS+NaIek6SwnR7G($AjA
+ztCO4!`p<hnI*i}DlHYFQ1WMX1Qtmv%aDIEP5@1-^?b<0ZdycXU2qq0|%?R-zVk2qw
+zd>T1Y*Yl)c5IPZg-h7mKr=4=|(&j1ca;n*CMI8_(u8%c8Xt<>;>m#+B^KU@@g+`}m
+zyw|vnbaLQT*8rXWU>@C#6U0KPL~2EhI$@4}AZhXKLTuo~dD8u90|6EI!m{Aaqu0v^
+zU!{YNep<27vgk6>@Uk`4`K~|O&yMeZk`Rg|J+{seZ=u&&`rkyNvRE#Vunxv8;^0G?
+z8+!h&1-4Dinm`VXdV-Dw4-b_it>Omy<IHPq$6@CJyK}+2s5sM2d>e<6JnH+p{GS6?
+z_rBd0({2z)=S8sicQqXkgi4EeQ>4_0wznVwNDj?acJ80+rr4HaaA{8StU5Tpre`7t
+zMq`Zn7IK*;4$KsmtEb%$yj!UGANR34gkHEk+m!dN8o;r*7dGMvJm_b#$wT#j-cpuP
+z8`A4okY8T0BD?sogBT<V8k1<nk{$2AGoq9PALAHsdOn6zoWG?S<=cuX4cLL)ySE(Y
+z(b@Q5jquNui(4(q(-zzfX@YE{z`H)U`AWC@Ys<W*Yfkg?v(79$Mis;TAc6_+QMxe!
+z5;OXTc8kPg&iMIz=h842!azrmHp0d24840{ZH=2|tC+#FwTMIy%jsRFEz6FhV}gxS
+zmu!&ac#6e!V_dUszr&k?&`E#ke#u)UV)gObkVDw)Qhj0;*cd!|ndi{fVglawUrInG
+zbzdkq4CL~yjbXnl2wT5fw|iSTra^r1D+<TJqrZpmPN4LGCH*8`dJm=;l$IbmDxltc
+z=(;}gd6C9Z*Y5k{8M$ll_@%caVJfq6(_dwIn9lqcG#A&fLb;0Vtb7*?aIBWBJJ~(U
+z*S^wqo6<xIALZ`4!0N)R91^>?T&j&V-lv|I=!DhIGw5<i72IQi<n5e`2ym&m71=zA
+z?^Z)aLCR9VUo*J-9R1sA978IO3HE;@WxQv@_A;sVgRNOFYm7%-)%Gg!Vw>Y^%4?l?
+z&H}Mf^z+jE&k<VgM3Jc_oXqDcI)T(T(P|<kXZtTs5YJWQ+3W;aKR!b?F@F7+ps*pQ
+zQ$HVadvoq5k!4yfy2*a@@=^9(7V&vvUFc2bLe(8DG~QB9LCV-8Y;E>*(4!$S>B5@F
+zc+nSc9>1vC&u_cNKa1W<a0N5Ul*O0E^-XuinG(*B&BvOw2r$toYLD3T?Sr*U)?wW$
+ze~}^0g_c|AW<)XH70q0NIq&St)yr>-30T#%cXQ9WX&9&{TJ}gr>h8{HyuZkj8m;mH
+z>3`^=GX32HDV>wxR21(l)G0wySof&(&jy;79JlMQL7*2JHw#KD8e6xzlg6{M?n5+}
+z|Agwqq%0XcDv-M=rW5dgs5<&Wm2@8C@~w_=H?Rd)#8+SB;UFkfK@%jC5a?H)MIy0>
+zz8!nazhyJDZXfV=)S_F@8?*%xgXKJtX2|U5mf<W)&M*p8PQVyNNkCFW_Ccp)a^{^Y
+zk*pfeUm^1!P*U9!OQ+l3&7#BH#~(cv*QJDm{z^o?+Z;scM@o(~iKyJ2?zy@-)PVm<
+zvK7oRqK*{siVzN^6%*0hB9q?OcmA&ofHO3SA!nE0sTmUW&ht;~5~OC8NOFa4y$s4!
+zg0|%FAx|Y{RA$}=+0oS#&=+gUOp-#Z$~DLj-6)D^LrOUF>g7(my5tis{W{c-f4Bu{
+zl@i&reXY(eYJ&d7EiqD~;>SNQjO4c)R*w}FUSjCJs(jdMLA_3fWevZ~gUtcC7&40J
+zx7?~Rv&GeCah8OB*|u0u7H!2DKgo}jxTl}%sV?n&c6)>%dfWa_YQO6bw77=V5&Jf#
+zP~%-X%stteVk$Na`U^~TuYD;)>JTLqKt1j${crAoPys`RluTiToEG<UkJvl87pH8>
+zJue>I;_kM8oDpJO7;a5Vn6^_#g60@ny-2|SDBs*#ODIDloKuGGjJgGZ@gGawJsgBp
+z9YKqMY~&wve{0*ovIY5I@IlCO4POiTw8gfe#5}(D`pB6D9AcD`kA@O5lUIM#oqwCm
+zp!THufuwuU?_VU+z}9y8HrG+(VO+LflDVqj*XDuzK<JhvI%OC}e$JjMJgw%3HOmXa
+zZ-=-M?^kZ^lV&uC6Fzd}Q>V6CNXVASofO2oI6dBR3|vGOfJkCGdMoF@M7dM=AZmJh
+zK%DM~ccvJG&lScVH*CwwKMxr2?g#T(kwf~4dehd#*iZNs4L$s2=BL~;^XC>_%`YBi
+zrrSCuI@SdP@m(|OTwA`~yYpK=Rcs%O#6{k`UbWi}^E3#$_U`Zb7%yKsCl=xx==U?b
+zg%9{Qo)670Blw<=honndE=uynV#$?Pedp$iCf}|5oZgxLL>1QyIQBnBjKe!;|8?^z
+zmZzCe(gfqDJ!lGYZzL|RKkiL~Oj(bN@l#JxG>6F>&zJPi7|w)v53nRp3QGS)N?YI$
+z(_~;d+6x;(30==iS8h8_Y-(h_cungxiw`Vz{qPqpAnZ01j+Hd)Y}ut<8oVoI+*}oN
+z$h%707c$lM>PIvi-)xj14xvH}7Bke4G^56W-?Rgfi%K>(2a;yRo7a)#qJDYgD3gOF
+zqlsVKbw+>miM@d|UyULo@jun(j3!Y@CIKwFw=>v=@s8?5P9nD+^mmvqd2KmdKh4Pu
+zH$R|%OYta@%?}5se9AF9yC@J)ua2!(Ek0#;q)%6u7M$AB!t8G`PN*FcVJ&S!cX`&>
+z-leg;8q}^Db{cKC17mvR83(^XIEI>vp6;dHWYtuybR!BmEh!;NjC=UR_8*4x9cyv<
+ztu2|<33l59aWUxfqTQN)5iahbGE7xWf|-07#+PCc+B+I3{e?gg2UuXb7{h_ukQm=~
+z(zm>C4QNMbqEC*VOk)IG(=;hsNLvQVfYv8&=CQhy?RfR<+BFM?<=wi~+n<?gbl$T5
+zE4Y4=d*EYLuwoTarO}ggE&RyX;BJ&3dF}Q?9sSH<*|94LoRMcAbgxIKR_)ANAG9k7
+z%a8Y<a$@TbtnRM^&(+`rq0$&mKzx=FC?1TeXGxd?Lh*gxS)sgh>c@LKrp0$N?H{W7
+zk`|>yH5|xJbDf$t#Xn!gJs6F67O4q-tjXzFTw-HQ42-=#F?BlEt)B&PXt3EXoEx&a
+zqz^aBnBRR^hnCQK!<$Ash2lRJq_i$Ft_J-1+%ox^MzZThGt$6Y?Lhi%-`SpiIUK`u
+z%=LNwDt&uozYOkOsb-ZsZ6+sZ#ylAR-EICiQL|Q&A4B4c6c%Tcgt9{TFd6;^vuv~U
+zerdD@;zNl{?=N1xgJuc+;^ZY%RQ&9Hc;8n%>(??xM;s^fPDH0ea^PkW{oOAPO}=Xc
+zvP=~^bWmDNVD?-_Wbc_=DVru(z3t|aV49e!i$!7Xx8-_UA>Zn<ZUaZP<lszibtO*H
+zLxYmZp2^PI%!dc8SSrLFdU+SFjDNfAwd}v6aFI$rl^vGe?oIiU^X0*sy6ebad?^^`
+zPQq}kWWUWJmac*>^qccrWb7B8t;hqLEd3w>_Gg6j-=wcT!n6_s8TDZ}-!-ezx=jtk
+zi~4mL*TZT0$xr*;tV4pMuPDNI*P$=@=%4gR&lXi;A4C=yRt`98Mxx1&DSZr*8+R5q
+zs5af8U_Ec!DPTSHrEKv3kbg*hJ9>epFfsJmyO%=U6*;ZqiVeg?Geo=A)0-P09~l}b
+z3_sWg2P1x2IBzg=@-5LO-wR_KUdt4u(&@TZ-O|);z8v0*>bn&-q};Ly9|bWViaI2g
+z=#t;Q)}7O;d^BsC##k+K$c$;tOfkg3HYLa{rb;|#3+A|rs48nMrS0U)Ka6CsEa)oM
+zzQ&lIQVL?V0<q*rG4I;kGO45tf{dRl(Q>Io21azmBO!**pb5W}cEy70a+yC?`!e`W
+zCws8@OtQwv<rXd?XB1F33UWDx!_FC*-tV(=121CvN^(<5eR^X}>$`t&c0P!2NDYaL
+z&zQ@(|Mu**?><{jNgYuR?s_A|O>^ooVBY2g;YDCA>3IE^j$w*E4>|NvoO>DDXcIb|
+z{*>^5GE9PxrHc%Wmzw9;{^>SO&1g`)$TF=486t<UO^}%Dg@r>(an(x%nyuO_&Gz0$
+zxY6K^zl^Jj1(auLdAOVtVZs7yM@I-`T<|if2Yz@R>prwfdT`607qR_jt&=k2uSxD2
+zD)Rsik2d{|SW_<8E@CDM;$Jr@(%3Z`?7-`EVYB7Ky-7j627UtP@-MA-;0rfam+LoL
+zP_63x5%U95nu^Y>pI*wb4bQH11p1?GB@2S3`{^YTuM3TBxCMv&vUcoAt}}OhRpUaI
+zVr~T5YW{`!w;AZ&i;WN0gAu>v|KMBg(CoQ59iyG0al`OrDlQ;<K;|*FeGql@Ju$*Y
+zrdX9Gng=zXpVIw+0r#VCcuPsqyb!6~O5Q=Ww@*HMm&HwZB=gU3uWe~L?sAFUsx}SV
+zqFAh@Ae29M?T0CGOCLd2euL81Gph~E?-m>WOzYf`@T&5WG}E!WiOchyFt_{XPYoWK
+zS{a_G8S@@KBrVs_r&@TJ);Tv%Q9tdxA+^{MjTPK{At74IkU>jvjwBjpZ<9-}j*q>N
+zua`M0nvR^!AoyK(oGoP)yhm+Vf5ywoMITwqT8NX%m*-!1?f+Q#rzmSqZ@(!UYF;e&
+zY03<&WIRO83~9yl4Y&%wW+!Yvb1Cb5dFZXZ&?2~O4f#5|#S=}&p(KH%g-8_2Csay}
+zy3?mhM|N8GoBKPI8*uwh4>9w%KM8trXqL(TCI34TeG(dbUU&I-D4Ebz`i_0O?tXn(
+zeL3}XEb$>!b{I)y=g2yKkcx^(tW!%7R8Gpa@v$Cn-V3ryhPS^qMXCgO;RW3+@v+dm
+zeYUZ{T-~*n6`Pln$WYa`zeEwNNgp?nY($(Hnw|2m!ssBS;^PkEvKa^|-!ub45)1Ed
+zSMl64riA07N4Wt^K9WbqVP+|dkuE{FYcov(^XZRG#{Z>E9C|bjeFPt^_dRB(<(5T>
+zgnVI{!_FV|Jivtf(dR$lC*<abU$Aud5{@yWb39hyo?ZH2d?`}`!UjI!>(IJVD!u0#
+zb>O-0H<yKJG=A8tTt_*R1_+M&Vh-=VUtZV4>+>3L`gR^7gX=}-^C?>+ZcA6UP(YR>
+z$jES1DVx{XLK^o@qyacwZSs9g(bpYF^&7zN%RgYI*pD!~GJF1IxcAwYph#Ia7C!Fb
+z03r0f;5jDTE6-b5M116(9K8jEx3>ga3eAPia+qm3BP89=l>yCFSuDq>JfnZ4z0>7=
+zUSI7LC;Lz1lU^G2pGE|&s#WM(r9EU2a|)Eaa9;zyl=!2PK_n-b8E+=R#mV>c1-wL$
+z>1<{ec2El%$`#0Nr8Xm&@Hq}2FYpk452-9E&-f9G+KR6a)Up_t=!r!2$LkXGv-e7c
+zzV(V{Q)eO6J!s357T1`hviQedH&EDNQt!-;ndv4?jGD+VS!BAHaNUeR+P}WBC%i*;
+z;cSW5Y{W_$gBVAWMO(wR2lOk>1ZK^@UfvtYnFp`ChZ_{oZZaO^3}HX^GfG6HqO<>Q
+zXp@CQob+DjOY8*rrx&;fjem))GBc{QG<r0zn}#-R2Y(o%-3eIuxz27S#;}TaAv2J7
+zm5XN?G1z44F--+(5P1wZ0Fye-zL1MPM^71&))8Oe5qOK65$e)4Diw|Uea}euPdwu~
+zr|GJ@cKTFoeF;Z?zURm3%VZnIWK`52)alKkN#x1n2t(?1k{x%G*VK=@6K837Xn?i(
+z#i)?v!I;-2ck}p8&(5~@TDY$T_xq#I_x*2F#DWlY43=n#xgE0JAFo8mbr`o3P{}5U
+zN1_J;5iigq9P42DzL!FfE|GDBIAOy=7QAeTV^I0YoqzfsZsvez-VJXZUt%37a~5Nb
+z=hl2k$e#};xwGkie1qu0>~1`7Na&jA`LTDgXR6%pdmUR{e`7u<L30gy-C60`;&9~<
+zu(vFOy9IvZhi|(j*$RF`V?(CBY4}y7@c#W}7vah0#y3+LeKy1BFv9Pb!oi<>Kju%2
+zy)(4x2ZPs9T8?KgEC$R^rRyS|td1adO5#GC{bwIk`A9C-eqbVRMdQ#jV(U^GRaai0
+z^<B>(j9}qp2>REbcLT=p{NtErmSddXYzMG!Pkk#3<U*M<k1V6k1k(3T*(ogo3R;K6
+zPmP#HRzzEso_5ogJ~?E|H2m`ZOKJZ?|2oD1yo2LZ?1{-UD5WZ;HO8bif2A24<K$7T
+z>9>_912;{H=uUe-m)3{bTDQU_p6vxu`u1J_?91IHUv4nV|F(h+<(X{2aHFO0C$t@q
+z3*udJqd*Or<Yz*~%o0*w9sZ83%9WbzYWWb9G|Er?NAl*}1Cc1lg3^sK(9jreL(~>i
+zMQGd}_05d9lS20H_y$^P-2*|8E(=z8g3Ne<4Rvc!zzg5nDt~kJO{_!G%o_fd1H>3I
+zoa%+(r(N3AF!$38*$jV$edkmP0_tQwLfwGx(lTM<oo<0BRDtK&iV4f9_G8vQBSUP1
+zy<yb{%?SG4m7h7Rrk5@nHT3Sl+BO$|wmqM7?sQWCWGbHt>>8u7kt?3&zs*5mRb(kW
+zASH2fmC)Quud#XdPSV-iqw`46%Yaisif15haN6VhV9>e7GX{=gqg#`&E@f#aQG?Th
+z2Q4%h1<7tWaEX5zhj>HP5*)Yo<}#MKcp~uq2d6u(me07`*@m(QMAc17Q8dk{j<>og
+zHh(wMuJky}>9N0S`;~h_crqE@p=-&yMh6Lt3aI94#|};-jjEGkfk?Hu?%ece2Yy~G
+zu*fhsN3wGW>CyHKuJn2`<ym6qQ=^_FHkjgblB~GXo#m+Jr(KiJ@{BrqNufG%9~2F0
+zQ~fjsgJ7P&9I0DvauHA5UVjtZf6XZ`C<_fHKDecTH~b9{)7OYJ(Wq8>*`*;DPFt~B
+zS@k<I$w6p(s!g5uHd^C?q3z{F%)NM1#;Mi4=EEnQpsQ;{#@87vr;BiWrA$>;td>A)
+zuwhc^N?FQLNc}gOmIC()YXQAZ2v>qT{-yM?jNdl~vjqPAAa`*3G%~Q^h6S|OUcxcs
+zPz{y+8zap=>Y3C{&?7FCISNs@Z4V%_AwLXM-#X(MCORe8@e-Ty-R^kc`R44=5%FFO
+z6?Cg7C_R6iGsnZz+_uN1L;g2dMLWVE#n{OHqKl#vdNwm^&*&`^BY@^OEyUFw7V%?)
+z?{!b9ApC5)K{uC>yLn;r7-llM*BM6lRek;C^uGkXBlkoK`<yBA%ZYp4=~&r!zVF*8
+zLLWvN2eT}T;R{baWeEdg54x82qH?-#eX4*!$)=ZMmy<T%P1Q(Vm5;<od>&C&3h*%D
+za#`(_p4Z39*Y_dug-n836GuJAxXdVIm}VASoQRP|W6s#xs3>XB!AF}S--s_lE~b^!
+zhIM!AT#V;<Z{>2n3A)Aqy`CgT(Uo2{+u}|ONGy>ay$OVBwaNyB^#%{Bv=x!_ACjpj
+zX7)TIotlZ4im$87f6MkYK~E&poMHSrp8SY(w9JXZZrZCi&-`{%{Su`p^)+5YOU(kr
+zOXZb-&2_Aneo$aOV@dL_iCgkRUQP7tX=6+SuP+Y+H!mkyclSYxE(w3JeOm>D9C(Il
+z_wp6B<B0YJ7zznX3pX(`6R!nzTi`%;1n(A5+z`Lo`MyA`T-qtlSY3Gi3sgO!-Attr
+z{P1wBNyXL4Q@}-Mi}F6s|K;doQz7k<ai3x}{EsKb%cYKDZsNzzQ>t>(zQ>Vh=#n8S
+zrmeZ{@b$=M!{AEJ+c7Ywc99zNLIh5*PmB2wdq08kc=p>;Asy*l;C(R{)sPxz@lsu@
+z`RDo^%}!o&L6q+W>p#9ozC;#sDt3i7-9v}yOee;gdIr(5^1v^e38B#Q`$*(I?oZTi
+zu=Rt&hpNUO`*Uy(ljTrZ#%V>0DfcLW4w3mKhj?*kZGUN=!Xd*KUX;hLh^fT6i6yp@
+zg6y9L+D^v@WG5e`ycxkSj1-Y@9?tFEU>&uG*4D1;5llwcbK|*pt+o)~t4)#R#+bTo
+zC7BsvgF;(rX*7eYIi*EEjKbv-v-3ZuLjTAWsUJ(*NXEJAtVEJy`G`is$<m{cmz^48
+z49|<M{`_)1cZoD|ccuPmdx54;u+1S8i82ad4b@Ak#@}*q6%Ar=nSFZe#Y`B9b^PqG
+z*4fCvcc0#XV_c--;T7HF)_jqX6d^aUYun>|;V{FbiaCkw=^)(SJ`x<~3cm3zo)IZX
+zGoK11*xg9qzCEA+2`oLi8SNrzy~_o7;fo`z)#g1q5YP7}Ob^}P{<w)8Gm`GM@yzC@
+z{(Qcl-ECWxWIzQ~o(XC*m3y|6{q&4^jbAQ=mOKuE)Aq1ijkS8^cnzfSUiLKoEr4$k
+zn4(ne?xb_%(Hi7}Ds$sKAr{nQnM<ZcN87sM9O=xls0`c*+71lVEDbX1al=Nk65GqX
+zJb<$0h~5g}*Rg*W9(fy7aNMw_G)c80noANU2Y;OdBuGG85+(vuH~PPE3pT8ZY#THx
+z*ZhMPoFKZ_CYrCK5l=Zx5GNrP$ZG|g(x4e$`Nmi2f}3ZXiltg(_CrH^lP%cYOnPtS
+zO&unl#PiOV_pj@_=B5ei()pL#yH-j4K~8%DeO$&#_H@9frW&J#b5lUK<|RF`X(B5a
+zr&f*k071%PDg@)E2}j14$@akrit-Ewv%=@gi2`iA6$Oo18{FgVNw11?heg<nJfjQw
+z#yNi%Koce`bj_T7Beu>MTocgLG!UUj%M993aR|{U9-C!^T7kfwTU*axUD6p_cf}*u
+zK;0>QU*6$UJEtB*N_9PqDF5+Z>(I)thWLESgEm5FylxV`(`K}cWwZC}-ROfvc^O5m
+z;h!2H<F@(C3+PSo*#$&$EOv|#-grwN6V2`(NO<lw-ax+VG_UI%cy_Xx^cnqXGg|a*
+z@ajN-pV!0@!U;KhxNcPnP9enKir8>M^A1=(sid&aRxA$^JG#Ysd-G>4pSJihk#FB8
+z|M$O`qmLIDUF-OJPnf9*J1E((g{Tgn9JDv*Eq?1&=K}SB#y7q_Gzbu*rXouJ#b|Os
+zE7j(nPIk2Be|<(_*sv-oOKSfvWY@MCOf<W|y!cDg=G_rxL(y-OZDYtr&hAW8xH$o&
+z%2`s<Nd#SNgz)<!MP~jjqO8z<oRLnC@WGbKF5F|g>`&{mn?HqoH)VVsBF3k}*^V0>
+z>B|&bg|qEUU=bwTf$#40eeCV$O%i?bYsEZy=DHP|cjoB)5i+7&Vty-a2?#zu_u(Y(
+z#s|xJr1_~{#&mSV$L`hFBav$PE5G8T8`#IG$`fTMept!G)%(2+wtA^9I&YC>fJqQn
+zN<c?fX2dog>2cH;{;L!o<0FFz5}gS3IDE}(kMHo>Kuxo(Ox6$EP9ml{M(Qa>`9$(^
+zTe&>j5=!9k(n*1QXFGtg2G4fQy6x}Es}^q);VCh(anCuW!Ow8e;FH<DqTh;*q=EmO
+z2{X+LLTp;U_+=yyGnpqG8|}Z3hiUl}>_-<d2*cBx!*?52fl#=1?#5}z)-I^Rt<lo9
+zB=-{C6p*VNRKUQ;V_v|qPYeA`&=m1H-%X)LnJL3vXgdhka(xk+f(mf|lU6e-M782*
+zuBMyYV7VIWYyHfr#@k7HZHbm)I|J!!W~$HZ8@05(694*)B|rKt0-aI&PmW8#j&VBl
+zD97Jd@td$%#F14+u|qBx?~&>um>wO;p_A*IwYGaTqo4e0nnY~GeHz<PVtoX646^>X
+z-_kR1uH)U?Iz3OYsj)dJL|F8(rV?}XKEWXs`9XwY^)I`FV<<|fRf(xuDL%wdz$-XJ
+zd<8Ob`EsgRd6%(_YHHgkuRg3j@(7JV(zRz-e%NR_<d#oiJ>~C1ALlj>I!8})>5$YC
+zO)o{B8$k{>)8nUnyLTog7SWz$ho7GwQ6&v3xT*6Tda{kHOB4qLA7xug9>hL}^nwHj
+z#UC>%4kkmkPQL~^&q=%2WYMVPhKRQAYJ2LvfU*xPEhbtVFhaKVIT+x}ZNL(n7&y?}
+zWIx3oDHhBG*Lj$_w_5m#eh}PKWDx|cFwz;D(-CIn@0le~oU<X$S~ItQJ0dXsj6#HE
+zQkRkzYcxyAL3FI~*;qrJGH)JUXEjA;x5Pqma?#0n>Ie`SpZVwujp(8rOLG&OO{5Pd
+zIpA}7j!B<OgWHCDidoC}zWJ*4x*dj?;#nG?oo2|>UQX~5buz&!f4cV)(nr-mr((@E
+zZ6#K-cl9-^OCnx=Sf3WEXI@tNj8*3P;Y_AgVo5{EkdS}>F5Nzk;WgVz={c3eK^DRz
+z!VJkC#Elf1QTee|bET~B8lAk7pl#o8Rq#=LJwm{zkuvOqfJ>OkQA-flW%HLF=?3v*
+z0tvlk_CpELsW`ZDHgfC@u+`QKUVPHMg-1e_YJDx4X)WDf*Oz4Xrx^du1>x7Y<!AE9
+zUFTZw{($SYb!UHIpQG-YuDhN>IjT!E?r6GjS<j6RrlPODE{9Pd7;r;=FRx(k%=mM<
+ziS0A&603c)E>M4g^9Lmum(SIA%XeRVobJa>XYLUYwKh0Zvb3@_l|A88wt1KOsPTJP
+zXq*N0rmbltAGQCL+tniqQk7(7TXwN*li*FmoKQ@)%PnOU<muhZX@xl(SZ><vHS=+u
+z^#v5^$0*kJrV>RnroDgHtyvY1joeiolWK+EjK6V>klleet~uT+TjY32x!H_NE#wSJ
+zO7AU(DK7aMn48~Yy8WWn8(NLc@lCtBc&jPz!F%_h{tyClFK=jz=n;0ptd47l7y5p7
+zf8oS;@<?{z{e9=I!e87KHtnOAtACg5sIs|hx)lVrq4RfA$QgC-FPFbk<?)Hr&Zme7
+za1C8%;1J%=C$aidHfj^F_V?Zi(*9)4xq%fNn9Bhd=)6k62K&n~p3J`RMla|I<9=NG
+zr406}j&|1|wonro=Ra1??!^TsLyZvfC@Gj~I0HC&0<{w|jq39bn6EoB3CJniWpP!>
+zbv5>a1)(1BZ^8Mc%&-mSj8%%gtn;i;Q*!el;^T>0obUL|4hhnHOw-}@Rnu2Jb_YL=
+z4ZFa@v@*9*H$~_pkyYGrHbx)vI!&iZer32mLfOVg?prFsz+C)&#f=L7K8GhCgFguq
+zzN}7j994kUy?}c@>Rg#XID=7rSo6*(Um&1U>x^|cy)RH^?S<nxsZCq<P}`UyA~Ec4
+z{ls64TvCL4`t{^n*@grP``2CfQ4On5CvI^T2MoTwK<}&lx~?|1&#%TMbs_sW&%L4=
+zu!r-XOc2O6QXeP0Yxk8GAEAu|?+qG%Jsi2GNeGv~_NVPHEi__x?_n?#3OAySK9KKL
+zhDX(X{1e^^Id}6M-hPK*pvI$*s%1_!<+@wNnm|zSSHHI*nF;UR8i5v$gb=_dT!k>s
+z7h?pa*B*_pcQh{zMn}=da6^e?Ic0(mO8!8na7f&V8`qeo&&ApG<Akqt)<n@Bh&$Un
+z2RrI8_xn8AO9w7r+57tN?%yNdd`BWI1oTuJ^TXOv)w#wrCz)b7dzu{e<)ZVKJC}uN
+zFe|sm(Yd0Ye>u#FDX4Fc>8>k_N251McPoX_k?)L((OWmI?t~A&M&spzivqG4Y_dgy
+zM%Rt7M4tNxf3HjPG?SUnOy?7P;kGeLx)5!4(Dq>1=kKilj20G5f8b$q7L_Bj-?`xG
+z%HoBIH*!oP0RLPRSZ3swKgaGGzYOhExWvsO2kQk$T^pZ@MTt>A*z=i5mqmF?tZ!uy
+zf=!KB@)MGeC3O7mJJP1Ah8X3>4tz<QFO^R+UEZyT@h1ja+=P2|+tkuhyr;HYt>Pfr
+z%MWekGfr^X?kLo&)-=y&g?g9Ysr1Yw)`Hv=nWkmU&r)|(tMCh~@@0k|Y=aMve%LIa
+z8fwZEnQ&Y)xR`t!xR{Ot2+S<1|3zmaWe$9ch4*yF-zMUNIeq_C6-Ejj<bT}#G-{Ho
+zUEPh?pd9g^wKT0B@O>c)sgowT17dC$fYL-mGLTsF1B-vL2f(z<(|jyF7wm8y5bL?|
+zL*0H?m$EnH5q~(9Z}4GYc`*Ch<@wPz2Da3<yAlk~=uwIDZ$$eza`9t<5JM96t)_;{
+zKuyOFBhs+07rVuc39&gw1r|A+GEbyOHZA1fWE^~XlWwIcrvDB;Xrk7GiUsT{&LRiU
+zY`$74Ncaa=TYlIT{BW7aq_Ndn7Azj_&u+5Nho5=#JU?FGsTFL1uybZmd=>R2vG#AB
+z#+6dpoY>~3e8iN}^1q>dJ9AY5fzs>Ekj|sRO?y5+vF1bW@6Ne&_8pmy{P}lxb-=26
+zU0vv~9;0!-{=L-hz5s!(h4DAfGa6Ix!;UWFRE3X`8M4o4(_BtZ!7yv;nH2A4g~|8D
+zX72>puY`lIFJz~Q1~<kZ>_5pChcwBmEDe@1>@1nzA=hM^mWbjq@3(tyZ@evLfYTbz
+zYL=6DL$6z)rjlp}63~s$TqpIj9`7h5ay6MNaRN%7xlbmS|HuenouM99`;o&Y^TF?J
+zpy;~|H?=GM{kjc0a+J3Q`Xb7nZK>A}Mg*@lp^gq<>*QLTUv%&lYxZL3xBA_|rigvz
+z&EXY5a8!IF5GnVJsw_W%i`)%&MXZ_Bt_(qr8%XN3*@mv+9#$rCuu(Y}^CoF|-Q9X5
+z$o&lq`RiP^?*%#0Z3AOBb(j?Y*x9)~$Y_TG^v(i(59l#Qa%jI3o~PJAGaq(L%oBrT
+zQS0UCSGmJGP^K%VylgS>-wT4X4+ELei1XUYFYL#)WuLu!)UH{tuo@z1vBVgSIQ!>j
+zl6dcR2b|64`Q&e_zHL=K-D-KBRj?&m7EzT>GO&9l57Ia1>1n~Cv^u7Hi=csxJrvvi
+zlsmdjgUAtHx0EIpXL$5=46_XvU{FzC$JEIZwQ@*{x#(uj<V^FuZdaf%UzhJBirE}p
+zTaw(27s&%&9N>K(S}A$LOn<(aIF^Ses1UXe<MpWEX<6U0r*|Re{K0vz&`(<kJtYDe
+zjv`vLs*S$~$&HXn>gU!4JrsLe7+&5BCsG|{e@y?XC!e5lpW;~@F#rDcU`1&5-y})@
+zV*MvhkPAbo<Kk1fW_Oa41(qHl9tGd{<MN4+V>atd^}E(_lI0^5%eW3g-rq__ndJ24
+z0BQdtv}=8!EA2ku;ry%IVga?f8EW&wcZoWI-~YuSk|YEbxA}IlYXCYHxdPcLnWuT;
+z({KVrS~&6<fa<?B8EJu2KJI&4&@roN%FeTcwk7TS-!J<amXKiF!Mk#4HnPR(JPo|-
+z9gaYmW$+Y2u^rUw>&T@Sr9I1!i~qFdwx54T;*Vd=L)1;?dv45eQXZ%;?|lb@IVXm9
+zR1q@hJ&P$0J#L7qP=>YVSMW_7mzs4hJ1O4;VcZ~SlHNCXvic9#w)D0OrYwdde?DW&
+zj4&&k+{mQq_C{}uu_j!;J9~jh$%!S}#~Nn0ygk+%8HK=t((Xs&e?Hg>VGkOzs^iZl
+z8=7pEARrxtUL!=Mi_`|`<#p0;=N4W?tuqrVn{++q8h3uX5?+6{K5@9xNu#+`Y}9){
+zWz!^TBD3yfAvXi9t7;U5^*Kx5>DmXGAmX)swI8M}>HW{8l|L{lq!gD(03SDvy|k{w
+zED{%BEt>_!^E3-P!iBmT(F^ti>(QJ*nZnDXB-nm$rw^9PXrS+Il=qj+VXb0MdeEiF
+zp#8m3@Po}6o*pB3O>S5)sNQt`_zem4uao0t=OVd%WAmtd_PxrZLD%sTVUWGBT>coe
+zycxlMHD}e_AYrnNVt4525V%;st<J2Z(>l7SuHlDE`sH#QRz<A#ywu>Nrf&A>nVc&s
+z5C<vK*J8MKuY>AZGG@ri{$$B;n@?X(3td1J{AMs7JrPXSj<tK=vtN(k%xv8!v|TK=
+zOo58I{|3kFmV)kxj(pdFGf$rM{hg6s^9P#EJV(lC`&q_}2lV~mizIlbDLbKaHih$z
+zBlwJO#^l#rYUq-?G0tVabxsJo!)0=C;>rHjK3qC-DZ;}rO!YK<P^%eZc)_T#&qofq
+z9sPD|h+vywugdO|3tk?L*n-K*S47LjPUqR-J8V}0=fuFLw@BQ>5h%?p+81vR%3-A8
+z`fzs*D6Xgfo-Z@e%*XmnXj!c(qK+!%+bY{Yt8If>F|C>qZ$ukKDU~(VB#58p%Y#bK
+z-iBgdpD^=t1jqa)RtLgx-@VL?7Bhf$JH@OzlrxkwEDPU#-zB@wzkJOH8$z79)%PdV
+zm*mixawf?+j_?aZI29<#`qO|kUIYE1Jmn)<R~!jmi!0gW=S=g=ubHO3lOcAYb|Ly0
+zP@Bvuet)yv(lv36!+^{>epY_?z+{9zHdJ~Nm!Gfi?3=G`#hUoj4y^G@vye52_`0I#
+zq%Z$cuW<i&v-}WWx<iZ1Fn%R7)v`5lszZlNs9E)QDs&-&(x=u0ljZqNdz{N1v*a2B
+zK{(bzlNP-*HnnmQ5_s;N6OM>4ioK-$sRN(-7W(e!t+(avhJ|Wd`U9TrDZAq4CiBvr
+z+`XFdSBK<Ut3moG%c3uZX|AvSJQ~}3ZW~XYW<WOO{Rpp3Pc0<K1x>Kd{54|5Y53Dy
+zUYaDqg-^fBXsM@cIg@W4?fP?d13^MA{aF}%u#W%8EYUB~0Ut;V<3)3_m!Jk_>xvPg
+zvUL&>brQD+$w5aYq|sZa47Z0jt%SeU6Ry$B^S}5-4h|tTNgfzn9bUL+DU{Y6Ilx5n
+z?Nr+61Lr%`{@g>(-e1gu{;Y47>0A3TNGyHJL+?pKH~W!5aus~WJT28cl>2_fG`S{z
+z1P+JrNR(Ok@J5<S%&)<cj2iAGZar5MPKWXZZgh+H6^VoQ+g(0wBIW2i1HOs()D2wu
+zw(0qk9L$fzU=Skq<*(p|okiqso5|^Gw86b%QYVxWlJxxF9|k^GKBg^K?r%7%xn}T@
+zdgsYXod~lHwr)a*4vnm@Lww#Vy01^R%3Ruvo)bVYGL}(F`ii0>k7uT&LaX1qb7YQ!
+zL3QwVvr1)7Y&{D)15LC0_kVC@>pkgN?-3gutCp^GS7U*hiGDs8A1}!Cg19{uXE)|I
+z>%8OEohi05p05ZcQ#M4_o3JF6b>kyO7c)|;fZt$+*U$b3bwG;0@mv&jR&ky0H~TyG
+z6oYV1gRsH%VCrz=zNFZnPK_j@oQIwu_aK(+>D0rOz7#xh722(Ow=BcCif=cVa-L6J
+zAl!GDdAMV59l{o&OhI**zr9`Q@(4!z7L5(}8^AHl-yCNhxcALA+1qa4^Kkp*{aEU*
+zbX+(mcKSJxy)n1W@baD`#%I-r0}%JxeLOpj@S$ew$qQ6C-t`_U_tg2#iTNV)uI0X%
+zU+x`>@}S&dRc_wjnu_n@9B9$cqbWiUMB&hb)X{*jm~&FEL;9qUyw~&);!PCc3qh-8
+zQQm`0Eh>uMhj0(z8_!8_{chQP=H6Kzxi><0-$ro{Iz~N>OYRfp5o_M2cb=G!Jz~^H
+z8!_id)9yUF&`0wTrsqepti;bk1z&}B<DTVU(BX|R=cmXslD^GpMok}AsHhL${~j#(
+zyyq-x74329)D(GUqW8}0;~8A<MHxmPFV1)-3QyyC<52t=r0Y0Y&JTx!Cj2kU`!D<V
+z$urt{y~5URgz@?w7ww!T?odB&c@e+V`?$CdM;v7;_eXmvPs*@78#h3~<S7S_4_n)i
+zR*~m%t3%EIcfs%ZkK|mn1b*9(5C0SW@V(aoZv_nVYN=<`+nYV3Hon>}^J+U4bcej&
+zLSEywa!o+FR&tFP-?CM?{(4#@LH8>NJ6sDp5@ETX9K^SiRM<M@UbB~a80@gQ2s;7a
+z%JJ=F6*d5OU`W{d<6fStw!`KjEZ37O5!R!^`jq?EdwJ)|4(mtQEPSiOw-gmNL%AQ>
+z%X2h#*f9uu@RYDM6W<PhEyK1ecN4+}w6KK;yA|JN;oB!F>?Y-|=R8EiiEH5FR-5s-
+zn1lY?7wP+fFXCK=up{%{6zdL`!TvYW7(GPxV?XJ}J3C&DbUeOjg5jD}dX#-zkX8}m
+z??YZ&5pN&9F)qJPM*3TjKGQjLs!WIJPe59$R2r1|k05TVDihDUHXx1%X)^4ew6d&L
+zX^cVq6)Ha0;tl~`iTK?2Dr}1;whstfmm=<Eo8GjZ(Bjvr_#^kqbFB>1pwc;y^G3k!
+zUg>tKwzxF=O>3aqhipK)^O0V=|8Z+pM%X%~UCID;8R3+EB1~bT5-``1+@Ab+8fdyG
+zBfNy;m`Aw_GkDv8d)Lxk05{iB{mRYtoZ(12wO!6be1M&Rb77O;ChM~D6j_%ZT3wcD
+zZF&&(h^RJw3T=8b+H~K^vP~yzZBnGt`Dzb!r`Y}2Z9Z=8^0D6r5|}eMQ+SpP-!4OY
+zT<Ut0{5m~yi99pLFiVm4(w=fX1M`d6ySwc?jtr1_{CkgG*40{B4bbEoRaV69I~!#U
+zsIp$7<6ot-1?g;2@sl*m^G92iAIG&!lw}#(tM@6*akr;Fei~>u!&htt(T<C$yXf1F
+zz1viH#@(*P-H{%)nzgtmsknKF`zYcbI@+;!lNNWgf?cYAFpXtMW0r=mLnq6!FGtxI
+ztMC_d`~`eK(cAzPpEP%Fa__r;*!uWT$KC^h_boTl4DFV3Wqx`%g=;29s3Xj{xi9j3
+zjB+N|@-jSfU-|R7=3cG|q)_HaF`^^k|Mfg`Z$`S5naJ-s?tX)Ksa$*aT!}ed@5F%~
+zVe41;<^#?z0PahW=TU^&(IZS<0qNgz{|WhQMYsw0)&hH!R@V$w*GU?_N2)rD`&1g8
+z^&X5irY=L&-R(PF+_l^Q9=`KK``pKBl$U;$`zSLTdq!%!FMzyPW`!+(_HyfDl*R87
+z=NH8O=L)pj1QoWw%8TiHPoiuxJ3d0mLA=NBK|1-F%dH%wk)J2m><rXbo@*PIIOGne
+zxCKteB@O^i5&J*m676o;CYZG(qJUxgeTy{mRK7j5d^cywd<X2Y&n6pgnePIW)qjjQ
+zOI4g+TAW4|=a+}5Yv{XiHlnQ<$Dzd;uj1T+IAe|xXQayKi;wI$b!jqADdOZFBTj~j
+z)2_wIR&j1Q#Ir=-jkDuK8Rva1&K4EtTHXckMjMRNs^Yx$QRms_{*u;0@ulk9>*^c#
+zwemMDx6Gc+@#p()75CkS!=0DC)4CvUr^Pj9p4<8p=xc|{>vZO&`g(uW*9*{IOQ|2|
+zNT(j4^t_8~89YUfJ^e@K?M(84{+BA)bE2db?m1nSxzk#FCgLG(hqjNyeYL_9<XV4w
+zsv56g8cFx6Twj``u}ESK>Uaj~o2B~1t)|hR^!~eHJHcyesE@v{>3hX_#;MKm-=6+v
+zzuyge(;DKfk1s~L7otuNUEUn8`B2_hYPc|LCF}Z}@1fYZyofj}o!r0TI`Xrnavi4#
+zaOsC~&CP?cjb~N@jIa9abN+>~Gkv3x&cYba(Pu+O&%02pS3UGx%feWyZ%+KV(85^u
+zg<}1G&U2B4;%wq`MGIq@TvI0;SQvX4`MH_y$4D3RwCCEMh&@oVQ|OUe)kfJr5~Cg>
+zp7Y+7LfsZpH-*sW;%~MxdA~Z?Y+a19J}_)&r);tgVe{a}cKU6fokAbisubB@lXo~H
+z2y^a-a;!bz3R^iJ%6a+6pr^(QP^RNhCeYb)z829=<a>39b1K3GVfX%7b9~XpohZxP
+zc<BYQZCd?HVr(CW;g3J(Sr}`LE{Qpe0SVSUA93<u4O`E7Ra^L$aNgP5)&4-tmm>Gi
+zNS~=le-X;<Q2W7LQ(oBzd`bCp?fpom-23DD@V@M@btq4bzo0SJ<qOLW%XPOkd0HF$
+zo)GIE<Zrw~qSrII9?}Z`=R7U4oZgn$3ZxlTX|gTY#-({(=_#qpXjYzVo98?a#n?77
+zjU_RzG5;NDl)`=!_9I9uMfRWhyaT>j`6b8VeE7Yh{7mWhSRVXdf?xaj->nbFi!9{L
+zyWr1xo`_Z7X?B*EJjGQA`pmcM`)AZ^HR|jH4RbAepEGRz&a%h;)!v81+2`$j!`60u
+zy9DX=z7*e3pFevS#WuljQ(xJS^Hg5R_U0WCwgKx;JhObff8gs@ZsL!!c?fAWBJWwF
+z?LJlqzty0jOPMdyqHdSY^wK45toAI46(St-KjQ}Qy%F1D(LP~Oj%~vr+dCy)++lIe
+zd7Id`q1?Pq!Ct4NqvucF*13PfbTbgI)ROnKJ3MBbcf~0;OoSi#(drRz$Gl3%-CDrA
+zgkH10iKd}pq5F)yt`K2ahR*r|C&_i)Q{@`=V{7o8?LeGU);>+{Nk4Wf@+F*W%Kg5@
+zNOM7nI^zQPQnuBwuCzPz^sZ+LxOYsxS2*n0d{5lpP;2aGTQ;xby?ovs=lQRZLv6l)
+zj!~Ovrmi@~L0<&CXKXLGI9u2PuKzI1BuoIFg#8@MYcTJ@d;)V8D&<Ob8z;jI1Uv}#
+z&k#1JxrZ?X@agay4togf0@#CK-w68**gu0^2@`@@2=gnLT({eJ3igXI@56i!(<9Ao
+zoC?D=?4y50T4{2flk1<O0Z)aw7iKBU(=gj%{?Ws2L}7mk<3O5yV0dP%2l71`@Ody7
+z!CVe=HOx<7Dq$S>&PAe;$oCGoF<2S5qdp}tkD|U@qcGw3OMK&+R4eQkU|xlJAEy0i
+zM~D0CG~=BM-G=Aej*k6sAAm_5N;CSv-3#Tq8)hENdyCVIo8Y$q@C4X}FiU#K_2@@o
+zx52yx^G}#6e2c>VIqYv>_knaa5aukH!7%0UFQ1TROom+wb3Xk1$g==`Ww5V+dnx>9
+z!u@O5i(!w2UolJ#OhdX{Q+@>Ye0*<&;Tr#M;pQ5D8|=4W+UagdGmdl0b-9UXk1XRf
+zE6a15^#aD1jG=Ozr#|Z8{^odwKc70167}cF^_i+f$KJk>M{<2{S_O#Lk9Pt=r@w++
+zavuENwe{%>y$&hVDW_xyry*sBS;&iPiTCd2JrR43!@0$mhdHNzyo(-~PY-k5?eXN9
+z^7MbGb&B8Zg50>ZIc~l$&)$AMO06wQ-7blz(GT*+LGB;A#Nyi^F3%G1pCwiWb-8$F
+zJEze0)H^2&-7X>LHMD(moYSe}#XA?_<@+TWL+4s~#$1QbGuKh+o$DZ9s#16K#u#(s
+z1)jO_nclf^vrV3JpnON216#m*f<j*m&+bH=ZQuj>zWTTu-)i8$+7V7!-6xzf(i?J+
+z_f3P}O8BjWUmpB=i+i4hiDmFx2ET0hQRbVf?j@4nG$D^1Z%EvcVg5YxT&%v=;d@;l
+z>d2Dc9UG$J%+VF9>=W>P0(Cs%JI_3Jw8^r2z90_JR%o*fv{{{MmqOKE4lmDg&yJ1b
+znK`tR$A>mTTQN_eX9{VKS9vl`-hs?V*dt~*<w);v${5sxZ5UAH;JNpGy~9>OD<{jb
+z|6s@7?Y*ft#%{wc1H)Dk+VC&<b{+iNkY*dwELUwfitP%&)$l8XUk|Zvg?5GCO8Dig
+zyl+u?bFFzP@+e>%X!!d((%*slZ$bUHfo3w>mROt6CU>be_^G0qTUFbPRy1`t?Y1W8
+zSlFA<E<4aZThTV#K}VTwbCKR$q&F97&9#_6byu*yE>9?)r|QrApFSwh7bown9Px&&
+z+Y|CG{WTpOPpSL%{Y%B3B<4!K*_I0?8zvW~5GD_10?a10PVY1y+3oCoUo@$&^1MXn
+zdrSTKR>3dCSi`m8#nwYYzw&Bv9+>ORN9yI>_#H6YVfMka!yJJ*1Tz5RMHWmZj0a{H
+z{Gu=`07qcP!xX{<VJczDVM<{NVDe!CFk@hfU?#wXU}nM0gsFouVA6ZK#T`BI?$3s>
+zH6{j`O0Fp<keS7`Zt8Q-XloWa4m{rGcrI`&<Z&2}U*5_2Wtq7*YiL;NSLEF&uFZIO
+z{y^*<y=MR?w}^FKPr_9^H|iC<%p=+?sgstxsq`1}exIpyg>WBX?Jju_h4X|do``du
+z5l%S;VcRZ@i2dnSzLf<&w#qN>k30O4-W^^ePTdG7uh36>XR*0g+}Tk21acC*GjHtS
+zyD>bw!*`hGyw()U@X0$H%$NF|9#?sD{>nA{TIxhXJ(6W6|K<IFXCSZ8ucTe>gJmh*
+zn$%rV2f5)Fy<|Jjg?$Msx)AmgFzrL##?7!tnD*ON4q1m-bsYJ$$+PUejCJk3j1}$O
+z?KEQ<OhbF}4UseA^34Y7<E9M9dqVFeI(2@hC*LvY+ivSj_yh9iIr_~TA(zJ?`xF1f
+zJ^22^Z$c&p&cRbH!yip-11)T)Zc5%&Rl2dZf(Ew19L4;O_l?E<xZoly&0M;BjwN*>
+z@!s(rkfW&cr{X-hhx6B{EEn}%mkzUKuihM!B9Xp5lwOfB)J2PN?GLC&ejm9ODejZR
+zWE~Epov5?Vhi@;=H23BXlW(Ol|Li{UPVn9jr9PHB3}bBubqWgI<B`NNq{%z3NgaX9
+z#XDfjtw-*X@+bFv=EUT^6^2P0xODe#l@9gWQNHuzo$C?l4PJSNm*EyD{egs6fWJPf
+z?tqWw7^B@ICZB1;{C4%oH)ESYtLtDpFwPDY_l|!e&INxva%U{Lwk7nEd(amVf6Hzq
+z7ZgR_>5D#Q8YhYUw+}o!le&w<J%wMRjy;8L*s*;3EZtQ1QJBsu)NPy4J#Z7luWeIz
+zt=|THe5vw1Ug;o-dO#cKYk%6^srU9h;$pLhXEGv*^4)R{u}XWZj(0(qiTB?YS;@Qq
+z%!BQ+75T1F`-ZP{bi9$gZ_K;~CuBc*KW48F(#<ez=RxB8t%;=ml8<6si<A46QKd_W
+zeQzUZ`z_V?-i5uvA@@z&0Uv_lUF9t&rWqmlabP>DWPILFrY;HU!8j75UIf|ZEW?DD
+zeGmJK82JOo(rDi_V`s_$rLVz3egDb*IdSLENI#q)O*~{ZVIDaS^w|4)%u~2uN!=tK
+znO+UkZVkk__GRt`-^E;tJV5sMKeczaW&eLb=oZb65zn@+_Z@NG*NP;($gdCb8jZfe
+z{6_m^JxpJz;D@)x<eqR+$M=^g+ks)?oNz+)$rky3NO}N$3jMZ6NcNS#sD4ldy6Hz*
+z3GHxS-kXpGjkQTVJG?VchPw1obFx&Qe0R_E6^nlSKJx0}r``tMzlkJ%-68wwc%(u1
+z6RO`7!rkF3iaU*)#a)j=^!GK0dxO#$5h{u}&8d;T@;q52(W2sAg?N0=EQ2~Zj8}GZ
+z-j`|=@;upEo-OK;-1AX&8KLs!`+cr_wqpz5CAik9%6GST6E6_=F`Vz(cn8KGmgzE{
+z|L~;?813JCjT!Ej?v3;wB+lI4BF>fZu4M-G*QoMj_}<w~JUBB4MjbtRCmM%_`_+p(
+z-=VnEGZ3@6fOzYNXB|?F39$nxvzZl%4a^dI*?ZEI9Ft7XKzfYJw>#8*-nE?1o5oEs
+zvEM27^KVJym_pZ~S<dw^;Pk${oz}@>Uw*k*-^ikF7sxmn;=Q5eyptCr?`FEGE%zH{
+zWWGb3*TXnc|Dha5zYo79Di6#d5_j<IK4^-1GX%Ya8sq84c+yG#(efTx`eLL>8XEPX
+zq)G0>^ZwlH<T)6BxG&JBv)|Y>{8Y3n4PS})H;cOhw@E!r=QhXLHymPYpB?YVvDJvi
+zBE2H97-WMhP@%kwOu-wRX!$J8rO^qmf?WgiD9j&WHha3A7cryatjNN9dB3hOw#4OZ
+z$-W>`zr<;T&Pa(o#PL<=)$&mPP_uOf`e5?x_AeWFHhH-<#+Yr*<5(EveunW>JKBKt
+zKVIlGk-B~!EtYpQC63T1Jqv}s$xE4QT;g6|#Q95Kr0*K)E(Pw6Sn~b_b%7Lrp!Bmx
+z<hhHVeLy{L%dG~V(vKN{yyoZI8Km)`)XyUH`^xnp>itRkQ0jh5RreUlUrr)l1WoV_
+zpbV{E1<85|okb;4)-PS@CAkcFyFIcTmjM2D?)vtfpU8Cs>W=txU$^l}UwOV^)u6CN
+z9iD7w@g5GwlSn^#Z#zE8+`AOtmJUk3!Qe?apJ|9TUBI(4&2eWa(%TV=n4t@#OiJ9-
+z@9_@1U7mz&$F*GQO)I)U$_cl{skeB!(5rkb9Y!Nl!mp+%9Y(IC4x`N0m^k;D61Emb
+zInP@z^l=}a$a6m-p|hnK^ucp2yx+@vWln!XbcrilyuIbbH{OX~<Z_C61o&-lvnApr
+z&+TIxdnjvd$qZXh#X9wVrSnelI+t9}njWQIn#O1v!Vcn{0h79k4q2nY6E5Hy!KdLz
+zI;h+6GL-Ui)9}KqgK=FU%_aqJQMSh~Z7=K`1sB4e08<CEGU+!8exoE@KFUt-`%Ik*
+zGwXZ8t~rK(oATQNdmGFSm^PLFKEQ`y);PmfPoW!Zu{Dfs;ahF3bjtHXytmrMHv`0*
+z4;V)~<ogC3zv=D?_l4Y}2?AfIMfjFiEc{DzZ|wL0^(=8+aYXFYNa8X2ohsirU?1px
+zuRI6Dz1BteHd4L+!*A*MR>Ji}>ikQ7Q}KxFH1!4`>7W7MsUzViY^4K4jNkh(zIC8~
+zJjAmBDDQmg0EOMC)n&)GsxARpm+jxmHyx67+r~Fy#QRbW(H=;%;+ImUy;Hqg!7zVA
+z7_<?}y4<>h?V$8t%Ke7r)&v!&2<4eZ{aLX8g>p>=%y$Y(VUOt}_0MlZ*i7}N=k?V2
+z2_6$W{wKU|^Ay{F_5WM9_P7!4!MJRXY@Q436Bh4+Z9upTmDULARj|`qOFS^{nr=85
+zso`WuH=JB>uhgH-HfH-S!x;EmQE!>nZ@QK1Y=rlya#do!yZo1C7k!-%BW@n`1t|T9
+zY<I3>lh5TNZR#)#z>jAg3;mL|#M{J3Ctc+ubd@Un{{ptD%H~G=5ZajcF$<7JPn8F8
+z&2{R0*j#h+^Sw=t9>xQgkYo0Yft$KDx!1+<pa<pyl^g@8-zTtL=q&o^TX~n7ayI#0
+zhtCneSM9amYmo1Sy70YJ!Sm!kuHbntp_@kN<nCQ$?wz3S>figV)Qi2juavpp!Faic
+zI`=cB?jN3Q+k$T&!}Nn+&d=S(whP^2ZTL*M&xaWf!?SK#nQ}dNB<#XF<QuEWH43kq
+zqvlhlfn4SFQvPV>y9!o1<Ry>qbc^d0T)W5=^VQ|z%>~X^#}!N5{%(e;_I!noyQjED
+z!8c3?@3QaqP!8Y6w<FZJ>m0gpcTx{WD){lze@mXsahq*EZkLdU`tSQU_3lcYgQwpq
+z-%fe!19=yU`xZ<iQ|gF&PrTg#8n`}czfr??FG>IWc6C&~tuO%dru2Wy`@{FjeYyU;
+z`@lWv0yW3tc}Z9AIZ>CnXm`^@Q{Xm_?^X9+xI1^3oKqP}mh~!KfyCF}Fz-2hsoS^>
+zZC#WpaYx;Ob%3dFr@bv~wMWB3N0ZQ}*Y<$5gYU2h!FSYINw-(L&&RbQ>u?eETzQmk
+z0m(~NBiy!`a(#z-QXEERA`*yj>mZ%@S&Z*nX3F!KO(=5{+^^TM-%g1;z0t%%rz0xI
+z?uU0f6MQo&l2{w(TSc;e4gCezcsK_?-754*ecmsMxlN{6J7=9=2F``<w-i^D=Wk7Q
+zHh0fXIbVMrHst0#_hw4Hv%%h`F&l8(gf!!ZgGO56m8Ow;i>r-$Ey;7f87iHB?Ue0%
+zHt_XJ#2KL8r_J&`WI1?O**j;L(^u~sV7zicmbd-_&M&FkLcEjCw>v0%Lv~C0i*;L}
+zQ)X<;>1|7+PBmxSR?y!BF|IKj^_cjKFyE+WJHFu%Iz6OY=t&jtzDV~8;!K5vXYJ_N
+zvjt^rgn1rjMW%dPih6$kK%M*{uFFJB>cMagmHP0xro;6Lx9>jmll#y=9<ee|@5@l{
+zp+bk0yx%jJ_kpP27ycgqBVv3K?`(m;c@TGv(Eb02)pHhQBFa53j8XSluA<OxzR%@W
+z?>xzSxvyp#MUPl6-@K?RFvl8KWOnX_5TEaI{e|zCdFMsl2G?unMBQQ?>7CAVTTJgt
+z6)#o0SL0OrmHGY_^-yu`cG6C%^YCJZFABu}%J~=ORMf?>FH^n^laXN<-(<>p0Q<t*
+zz<0h!>LEXCI>$@-rt1AD+eEMA^@GtKeCw%mo#_MneZwnvl1A$|pE;lNg<k#K;!Q!v
+zK%SN2x!yCxIK;Kh)Ln9ZEcCBp-kam447i+UuzP>|zFK?cofyt*{c@dWu%d0g6-c_3
+z@6ZK=UL?LDmL<+Uq0g}#m}85v$v-FRQD?OUK0N<rP5D5+F~$9oq@Kvk5A40E6k}eL
+z?PPlA#ofM1QOdZEkko;;ucPA)@s^%?Z;Y~4a3|01%68)%B+E<PfwQCRD`<xthcP!g
+zfb&_ko-u1D`SKEh<1F7?E2-~wfTr6t%UEok7N?%o#nu2%L!4*kt9DBLUEIqu&!;{f
+z@~P9s+{cu2!dPoU>fAk9>U9_Iwz-P#i}HQkBT6@Ot6H1rt>$H^LcdRGlxt$YSKqk5
+zzYVl7=!4Gp&(pa+Mm%^wu=TccTwbT%b6nd&9Z8YIXF^_^66HIZV$DqGuP6UlsPvVL
+z?gReNuN~nwi1o!r>yvLgggnXeRH7XBsdbE=+B@|;qm=967#ZQXFKB`ENZPcN`%$G6
+z{~vHaC3L|z3f+%S?C99beTu%I$^I~dV9tga+E4a{i~G4d-$FgIgL@s+nb;72DJFD@
+z3))XhzD-=zw!7y}wU#RST_o|U_KqRve67Re7-O_7vQ`dL^V3$LCzy8#_i*m$RckvL
+zKHd>zAAS_$?Chw^*V1_x(&bsWd$xER8Q&svqKkOvmvlzAv1oTvzm^+r!E1uizGoob
+z@XmGUcOcu!`>i>{?05dmV5Bc~?opR~mRid`@qIaW?=9YKd|a$wbM9Wsdwt-i!_Y3j
+z`&O2D3;Bt^FwS+ID86lljFJj^<-0H20FR1EI&>I!CN@xKb|jKW4@lj$UF#Q#UE3ko
+zKu;0#^+&A~^b6`zeyl_4ac95ksr2x><+?~>-Oi-GtVdH)B6EyXwWi!m+@Y_D_h=Q}
+z98mhlPGR|}mq^|(a+*G>ofwz6jAu}J?~Zx<7wt|l_|{@!Vw=$GbV~yBs<osczDd=w
+zqeF}-uA)e9%189iKv_h+qL5p-KJ59oMSb$yykRj1*$Vk$D|P$&$j<`2Gi8z&k?*YY
+z$TL(PPxD9FNGF4OgHVptz@pu$;?2jK6Yb*N<^^Ir>DVdxE#Yh5=lcRJLf4I{bR+VO
+zDc<QA@xI+hi{M9{RGVXbqb_U(cF6N%|1Z|wK0K=GY9BslK9V6snUDlyh;<OeXrr7!
+zz=%-?42lJHfS{;ohe|E&W7}A1AKTIzNCFWV8%X#Ni8EGg@uM0Qks{h4popL-Ac$yZ
+z&TtGSR%x}>sxa?;uf0zaefs=<?|WVEANx9A`|PvN{#bjhwb!~A*T7usF5$Tg`e0O1
+zhrxJ_w<3)%RJ!KKR@4ON<8aRSFQmWO3j)U5X9tWQ;6B$B>Y_s!W3t!IafW(6$bG0f
+zukFrL&Z94mYd@T5BELjq<Z_>Pa8l`1IBrU9MWZE7sh;y69#{73{Lc=-^}i<V1%EH`
+zft4?gnUhrQBe8$jK2a5y^!|4=J|?lTqxDWhx#BZ}9mLn2DLg1`dJC)u=T`dC>ix6X
+zLx`~%JG!|RGNHzsHbSir;rW9tp|cX?w*}Wc<6@o95Zg=MJL9xOI{I#pKT(daym$V&
+z*ua#LzL!$6yP<F=i$Ax%K6gjx{VwV$&qdyE3qQ2dc~fJos{d8<gZzyf^J(Wh|8p+<
+zQ)50||BmW|BGKz!BXTm^tO4U>@?lkHt`CB(if_rjhsM_CIu_7$AfRI|<ms_yfKR&n
+zc%~=LW)<~#DTOT*;20bC{Lu^F$#ijS&BeH3ydjP`#vKSwHH|+WRIx%E@N9LV(x<)l
+zvD(+$h4wr3J<wFPp<qVub#6tQu`TH<dp3BM`>;0M!k9z2o{zDxwp_2vMm>1-M0y_X
+z{SfaELyWqvCgi(`x;)4vw14b4l<A(0=X0mT9pXdP=BYg{&bQBQWX!GQj@MizbhpWf
+zd9KF05mWJ%#8t`_e9YU02bw@#2gXk&W5hDXL7vjhIV>l!-1!;j?9!%WXh_^|Sj+q#
+ztKJK~!OwdAQ2kd9zG08~D{VrqB?eDUKOL7SN5%_i1Nw`4R_f{}_2I?rL&}!jXZ=B9
+zYx_bgWN(Z*PL@sC?9^}JpUacTGsMZkKV6qnw)(B0TTAlV=<}6#-`hQ7A%}X_oN@Sf
+z9kV>IPd_sj-qNIu$Mm<3tGy783y#}=pHR9iSC7T@`PBE+-WL0ME&92nPT{;iRj6dP
+zzu*{oGhn!K_$#>Pm?7QSqsPU;LNzWJo0skDAzmTm%C$iiPwp2#Q@k><iinLzxr{M~
+zf)TdG3WvDoe&OX8I>o<KJiHn!3#GqW{MpGrqD}jW-$6qs>Ex*6Ju$CySVlo)A^3~B
+zB<a?w<9hE-$H$ep5W>@}aH@{?+EeU3taSYR{{e-)yg2`lG5msi)EEyad)H#NEn`Mj
+z2kY!_8B34WB%7V6=tZ#JcO>#=aE?V{M+4!QGwdDBiz+%JKBJ6ZKUrbwiJyUA_GA?e
+z3hHO3Q7dEiG1QIq;NIcKsM}eeWE-CpD%ttczg}rqqfMi;;!fCF;Zy`yC~OX6p`YvA
+zmGoQdSRwS3W0!dh>*i#xF)ei&?HXxAVU2sS!dke!(pu3+cDXqjELXT~7a7Lt0Onrc
+zHvYqMr+?^xqwpkRwpo=(Z?rm+o+`*wRSB<;vFby+o!sCe`)8q#-+#f{P221ACLB)+
+z?{*pv5qnMfb<UUhupDyUyHXzB85jyK^86b26B-Bdjzjd7TOoRPBRnfv&>=E)svxpR
+zWIjXV8vp)n6+fN(JqFriMu@gs_@9u%3lAFu)72PL6Rj2gN{l7k^GviB`YZH5lNTG-
+zXPi*RsmrJ_(SkZ$`qvmSd&Q<E^gy<Ziyb)MwnW7f51k)(u18;#{I`lL$}vo=>DlEm
+z;v}ZIj^)uW7cy#e3hrS}%*K4SAe#~!W*n}MUIx1HlIBapOPuRoS2`t*@j<V}>^+0x
+zPDN;ueeESGUf9N&W_O(tRB=2o)@Pb+PW$k<bKhLE`>`=`r^WCle>Jw=9(ZxRU4`$i
+zxh3wbp&fm4g<w*);{1~2$@ZmJgXV}WSv{UDbhxg|J`DMxDXTkgd|TC(*T0AS9z`9a
+zgH#{VuHNEWg!-(&x>{1+=1kPjct024okQ8LBxY|ee?#nLDf^cWiu)Nuq$#N81LtJX
+zAhsdL#0ux<TL1ST){p2A#<*?PzI}_tZ;Uc!dtuyp@9kb6ki&k)+--AeP)57nd+}QI
+zeODN4l;xF=)k@IzMSf!5h#kMaf3Yf8Y&WQvzL)aEk7G9fJs4Je(wV<dx^#E1YS7zC
+zM<Cd?yOhsj`><VtALz=K{EupkgWtZZFwJ}&E1hv4C(_khXs562$M~)ri-mZg1*rd1
+zM|P!VjEgy~?<hMV^5zEqk$YSID`R$0+ggy`-}!U1+daQ#M9iLaP`yK}H}k`o-Cpq?
+zaSFwzp~Dw<`lF2Ma_SuyiToJG7=NrH?y%3+6%f;wbN1y_p2hk7a_VZ-{d$y33_|KZ
+znXeA{$`AI|Z7#|^=dZLkJ>Xc?ao4{}=<Q78O;evKYjM8V2mTw+KBLb02*&j`uI<Y1
+zfd2GBtN94yuo>1p&RL*0n-8jYNq=+1zH6m($w6iR!&nfn$~ai*jK#g#LzFGnr{1`;
+z{cYkFflti`F9Lp%HVa2^J{;$dV+}NO66tf^Q}HlKTV|k7Ch2*{f4t^(>VDBL=V(kU
+z+#mdolE=wsuE94B;C*6%ED0+coj)JQbf2u}PwZ`lr!4U)-*)5Gl19etGtlN^%HNee
+z)^=jfSO-&PuIeKXj*n7?z_?gH^l+*@crfLu06$%sNDW0gqoSUem4d%hGD^|uIP>RD
+zNw*On1!d8nY&Ch>@Ii;R5-Ztm)<Gv9?aBNt;!nT8t~aKqnjudG5>2)zxHvg|fQspJ
+zzSQ@iqSd(X3(mI-PmbB;ydPTW)RebLIrC9Yc%<UpsSgzzjOP*k{FnT0=%B=8gDj0X
+zvN-w7fgT-(>_5=1mGyc;-@jGXpp~xeP>x&HEv$2MflW-tF+<*UM1Dq|4QQXxRJ21R
+zkypZ45NL-Q(8Gf9g5#36{(zEO`K{!^jLc!$#$@R|F~*A+`!@MT&WV+RQw)B|6l}l)
+zYMkvs9{xLZU;LkSdA<KL|3I&gm!V=$78A?)Otux;Jd1WCUL#pV-XHn@qQ@@dsFu7<
+z{$OQ~FLDH9lh@Qc8{wNp-?tQWSFZKmPT&r+oAChLeVzVqEBUbs_daHM8egILAbs^#
+zI&3S6n}N2Pj5!~%Ru(QH-i=j1Fk&q#bjMx|Xd~Cg8qi11x1e4NpFd7LlEQi9KGb1D
+z_1EKiUWToDkwbF1PKVSU_>bO}ID}n1zy7a^x12Oc*+4~boHa=4!GDZnIU1Tc1YB3i
+zYjVH789dIYy9^^A=>f<j^N{aur0SX3#zQ#nL<*onT!&x4c^ZlKuAWl@#sH)wWS2Xp
+znMMfbSy%w};n~?ZAAxkwxA1KX<>P!Z(y+?|#^pHHAVp76I0>|urQYcB_mr&_?Us(&
+zNH4~n%g<B3HPrP{&u6wLQkP#Gvx%d`y`wj-2cIi(d4t5vHA~TkmtLi8OKNMdmew}d
+z!Hx#IAlYCC>Kg3aM1#=(H3QY!No;y!dhF=9g9=Yv#o;w}`gJ@9KBuj?;g21y?2||A
+zVFfe9=$he)I}6`cx-w!VTzawcIWmW|bY6z@9G-`^b`o<g3$)~4nan1ywp}Ez@;2yP
+z(MYuqBl}b1?(5{(+kvsp_l;l#|6gxwKLP69(&rphv5dv`fSCJl_wd*`Q$X*E!fb<T
+zJELhL-<fcL`-lB(%DyPqgEBo{qa_eDV*VoVnCpYv%q)@j!uDm5k4_HP*`!4t@c1Vm
+zq_06DU1IGP{$wob!?KzGG~7E6WoMzy83UT{1|k!LM)Q5<If3UtkyuMLDaP{|r~7Db
+zf#P>=!MZwk8|a9}A|X#KdMB&{l-IM2Mth*rb)>rwsCeC^8T=Mw%jBr<q>da=vi;oX
+zLb0)6886-5v)_=j8S{y{`V-*A+;3lwZx=+AJq+_tK;2e>FD`heCnmMD;XmI}c=Ume
+z$@q^oM`!wC;=9^Ds3S$2umF8oyJL3EHqbk)aW`z+?c|Z~h{VMHiWnji*Jb-_sqyb9
+zUG2O+ej1#!?w-|8FgNBREkRm!ijoV@!u)&&=X*|3^OYDlg3ApV!w7ZwMc<+KMU<?0
+zYm)m*lyh=L&XHJHdoho;@;>Q9K*y3H|Gn<5OxL?8yYIaRaqlzS`}}HcFJ)+qZp_2m
+z4)n_0KRKY*c8nGDM_qEnVI3P2WBS{ziPX9SN|q!)H;UshQD^6bZ%GQB4JjMjfUzh!
+zm*s@Ge?*&ysVY{QwJ2$}Uy3@t+{yO)9BpMZzuaj;_RT?Ej)L~l##8oLjG^2!OjSTG
+zc|+qr8#<QsQySCRu(oxYp*q`*$#dsBN@uk1Efuruq>N!$dOxB><FRvX{Pw{f9$4a>
+zabMzTeESQ=F~j+zIA@y<M+QTeecL+<OQ<c=i>(vlUbMEQCBMwF{-O0&+{-m}Tr`&D
+zDN=isrD5t(TAfGV;$CU1=%d)50jvf1+M!3-ZsHHE@ZtF`-y=2~@x)8S)+~|kAf7qa
+zW3~~oe2Rj~wx0OkYvyvlH|B&epKe5(y!n=n9TApsmgD|A<M+-(o$or#wW`gz`+%~?
+zVl0cxbz3exkdgR<LA2j55BC0hm3)7h^V<U%iL+Ko|9~L*-I((ae2=m4Zo!dd{hWDl
+z{K;GDJEeNBoBwt?+J$@D!-~{C8^=+#ZsS`m(O>1LxSSH-E;awH9{c%6h(k3YqvCT?
+zF3@qQ(p8j8L2s5FRIz3Qcz5~F6h4sZKf!C<B(YRc#;i>5o*e7+FbE9S%<|Ee_5%po
+zy6uX8lj+5v+JW!T&VYO8)Z4b=8Fk@j9Z-5-@-&Q9SbkXPr0BcLc&tCvIOX2!%pMyu
+zm(RUe*JUXFlQ@g}iTi_psAX(Py`OZF#4JgqKAB+(U)`@yY{r)lsrR`DN*Qa@A+@J7
+z0Oc`u4xi<rem4EiPN;g&S7FZnOc(W3HFE+I=d~35F#>4<662$@9qJ-+=StR(@lR0p
+zdSkE1UxN=R`jKliI=B3cV{f_W5`S<T&V$Q^HXEU(4%d)=x_*2wBmA;@uCOuY+aK)9
+z$ooFfpQ(7i*2=t3EPk)gNDlSYiH`*Ph?s%g>++3Le!vBhR)>0TS<^wQ@^wFP&zw4G
+z?yZmqJEH5Fjq<zqXL@4AlxV#;_v$uUN-s~ni&t<1rl-dR6Zz{f=I=!PB&KIn#hc?e
+zq@65v!oNR}5q+i``%PqC#)v+o#vJ<)|C%S`Tl1w4?^k0Zmwl@Dqo=*oOOOBXR?m2S
+zgtjAholtx$`)|JPKYn}7TZ(4=0R1%%#Fl#;8<6pA9Djv-TX9ak3->eXv>kl)DawBH
+zXEPM<<puARExLtPXD9lm^nA5fO4`Kn`P<XX?iWp?>vi-?a8X>x=4v9{DjqH}!m0LG
+zW8!`zRPPTMr;48C*qFFeB)0l34%UtIJpAuLVl!CF9FOq83mjtknx}%sqMde(Azf+G
+z{#>n{F0J|l>eG&V{ohhF>LmRCJsc}4CWyq?qkcyAX~Qw6Mbk3UgL!@K#}4$yQ>QI6
+zv5a|t(E-L&Po&FE&{k-bb1CXs2bt3|R@vvv9yQwFLcOoR_AAo=-i&t>``IsHd!E=C
+z(f)$5JGOVu(>6x)Ko{qQ+VIc&J5M6cL?$D48EoJC_VvciDUpBgC@is76&e!%r+#3G
+z)l}$F@yELUYWZx>u==DK-Y<Np8<%^{XeHBf9eNk_<^B}=_8Rn8gML=$kNaQ3cjxKr
+z_l<=2MO@eFYxdV1eJ*=$`kd`QL!XnT?I11?Xvsu<ZzsxWM>$pcx)R?RV;VUX`Z`bc
+zXA<du{mgXr0L3MK^!Xt*4>(tXXQJP6@2%r~^#A*m{Qs3N?hyayI%33Ds4~ejepu1_
+z&qpd47o*AXp#Sbc-45z!`+RYKKI*ck!u^+oH$<Fmea)DnjE}XkqPMOk#wr=x#{^R<
+zW`Fu?#dm(ly=L_1fU#bib`eK$eT&v%%qyU-vCTQ-fNJ-D5nH>WH;zY%j%_#-_4!!)
+z3I70fy_q(GIv@A3)}C<VF|BgeTYFME-eEE6;iy_u=05R#pL$!h-FX;8Wf&(vM*GaQ
+zK7N1LFx8$0+w5R(TmEjJsu%6bkB;i;@8YHtO0Fi(!iPHl7Cm+r;GGM}3+en92oFbE
+zy9%_n$=Rg$14g3n-8OrWx|qR<^ys~64UAJyf;Rl)uhm-T{YD##pCP_ISlhGT@G}*k
+z%%!2O?(pBJTM1*!qm3((e~Yf`-;ejw(rfnh($XIKd#JY!rtR;grNsChbG(<9o_Ac)
+z((fS83DEJwBh^3C4xt&(N}{WrGHsvw#a^`zpCbM$4R-!dC7zbVy)hEo#1@5lkL^`@
+zuahKSqur1Bsu!isLw}Wt55RV3ZaDKk^AqzXOY0*o#&5M0|L~gu31XUean1$M=5L{H
+z)w*ukea0%~#m^br%%YEIlQRte_bT!RL5HUjpJQb2cxQ}P#@Gyu>>USgIirYU2HEYy
+zH&x$`V2m>}?rcO^N6LHVUQd4R=iRzr#jV*<-a|Wjo)a(Y`<lM7kJpv=&WRB6e6W}C
+zuU0uH4w5%)l6~toe5*m{E71Aeb)ZDY#AMsdrY?v!*?UzVGvEHbI({<xIYfFu-U|7i
+zL;GT^3y<H3W0@|WHWY&2igqE*E7JFWb3(-f^J-p&ZE9m2{5RhH9P9AsC~q##>$HE{
+z-B@FnU8Zz3YwMKl!O|in?{Qz4{AA4))2B?GFm3uIRDRmDagoT?S6?+Da$U{zsWsCk
+zR9}7N)srWWtC@D)v^99I`r3%>6P|H~VYK6V<mmHp?@}W&z53E8QC?*7go#h%e$BKi
+zCf7`xeAR^OubB4zQ*n(Fev0EYC_j$lALTqU;WZqm)=Zd6nZ`L)@dGteua4l$Q*Xlg
+z)T?WzRZqIo$l%;0|9j<BW5VPK)l)CK3XiUudRj4f!ANA>bmTi9=lNpe6|pI2oUXBb
+zsEeBmo@v1M6|XJvOtd|%D;F_Vbq)9^#vQ+FwxX-t&!=Di>w6U~V!o04diLfYDeHs7
+zs_|$rzT(dCx4Blwo$KCK^4^YN*{HkMxUyL7t^WIW*~XM&6=&>r?azygonK<SelGiE
+zY7b%LHD>pRQH*(QxBE9@YFjHHd*r8w<DY&YG18hHm)^2|kH4w*T|6P~$0YL361{!C
+z_Kl={MMt3lK6Z%6^}Y8Y+Yc;}`m=2Wx2O12u_vOgv01PNroXA$f%~JWy$Y+qjVJc0
+z#NDd1e}6#vkp?Y(zpW5sG++F;^XLmb#f{@8I;9rjg^jLf_Gw)O+UmyQK#%V5=<#gh
+z82zF;nziogu*1E$5nOxfxMn21#~Q&$i(U*gP-0{pc1Bp^1t*yDeU33LU*R1m>Q6I_
+z#a>y%j4sOQEd|4p#A^n<TulEtzH0@?+qdD}e#)L>^?4`*&ph(&NTWSM?7FAr2hd)O
+zmy|WTA(fICeTRE+*aH$vivBfU_1Iz=MpWY58_~s(0T(%PE_-fa$Vn0xY-tF5=Pct=
+z+b?u8S&#NyMm>t~$B8;y;+NsSY3oHkUwk2~8N`st|2AWtSPGYs_yr-HbAS6x);~0%
+zP}!oq<)E(J1C;%z#CoPKD^Qy-iA8iKWqxadbCQgWx16^)H^y^pHVCfcCz;G*=9fJ<
+zp}~>-9K4$?eLBJM;JXTA{Vnj86GTV-7TYGYRdj8nM-h>MTO7++BR&h<4-ACXfRAqm
+z59&=)*TnIXi~HlGtrh+R+kxYd-=&>}&sx)C3*y>ByFPc!$2rcq@!xN%`R(E<FivHy
+z_P-^s6>5*!n<;lBFoz*)95ni)Zj0@b@M@<kqi8l`iTJF=j#uzi7u!d0e+G`Wmf7)K
+z?EMZJgPm>o-eAmwY@;J>?71>YJnJZUu!Et&&P;soB((cq_9;I(#uwqcCz-^`T@5-i
+zP5P3tQQf}uHYd`<s^em}!vCl_sQzctt%^qNLw!F4pHqYP_gMX%kG0OW>5U%$>tZwf
+z(h<LPpmVIW=L~OF9o7}}lRtc*ll32J)Z{Chy+r=U(nd4z{g<4>vZt!z;JuCWUDgfG
+zEQ#4TEk9&k>e*#Y^7Hww&<)NxdT+Lx<ISR9+G77M!5^8L9%oF=$Jot>{OhffSj3R2
+zKqrPpCW-#SS9hk0T^?+(M^LuN^sLL9O3`kH^=1!dtw(s6Nj7DqT@kap%o;4VT<58|
+zC-zqXltUSXcCR6g1DGo|Jt|K~waZS!O6HF;C`W_$u#&PaRHMJ~Un09xzT`h!q18^V
+zKChNoj13w$PB2PE_OQZ>oo4oFNa@)5tuNV@;RWKCH3E5eg(nRh&vAk}b4*3lK9|Wl
+zk9o7#_HY!=cSR?OZJ9^n3f?0AS=3+o-55Z%6J^hfm@nVfJhZZ-*yE5!6$(%Mrkrzb
+zpQrs)Ox!br3v7jRJ1u{Je#SQP=yv9Pzwq`E@?fh?t5(YSit|or&YKc5(zKF}!~~P`
+zHykrGU&?(~@~QZsZhgeo9P?tV(3p-R+>5>NO%)6D3O#oC@4pw_++yb<>96agzb0zC
+z4nAKky1K>Aj{Pb&75}^Q4eBiG?8A5#sI61B=|QCnKSO_GgliK^y}}#H9(pX+OnZ->
+z<E)dlA2M>IjHMaYYK-kh|BT3Df3e`n4wkm5!F8e5`@e#6YND%UZOYPiv;pwlTV?KD
+zOFA~zXIz8+YQ!47u#oQxwmI)bR}>oIR?*Rto=N$UdS_3hzq8AjWG5IC5M%$*J<4v_
+zs7vH$M-zF0NFpzY{QE#_9>BBEo=H8nrQ6O77^_ZK_M^+uT0ZIkQO;KIgAbmrd=aW>
+zzm57esaURp!!p}yb#1_R&W#d-IxcpIT$8Kxe&}qYfw3JAMWYQ)6!~W|W^{1x5r6Q-
+z&e=FWiM(%UydA|nnH_3yJ^)S1!9C>jleYM+7qh*B2~IwCdJ6RC%_L+vzs47t@px~{
+z_Y+{;sKb=Foy{#`Z^m`6ruJUy(a8IB2@Vf!hx+KWrtDR9Jx$YrS#MB|Qfpm5?Z=U$
+zby**4Ibxvfr61~a*Y%UNO#;W~MSFXAy<(0Pj=vK2ZE%jn@-4=At2FL%TzfOW#1daA
+z{_}5%PslH1eLAM&O*0?)r@y>GO!Z#gQQLDIV$9AZ)W2(tip}U>zIVzM0og|tUI=6D
+z);%hALQ?9IK;OiieM92Te9!~pZ)Rf+-7zHYpI^Sf@FiOO^XD(iW;;<Y(+_>ZxO0!q
+z7dyW64%BsRdECEtO1uzt@s~zg{H^86me0^ORUU22NgMsyZ_$P`X0Jp06@+6FTOxuw
+z+&V<*>?W{XBQeJpjybd`nrW<Xi2t9>{T{UE<Z^|R&sf8xF??Q?M}1yhvLdv?`TR|_
+zHYz#jTF$BBqK*{~^U?P0(~h{m4EciP@xok-w6iW5$Wwat59Hg8$q4EV-ayuiTw|gA
+zn{U*Wdlal|G48Y62+C(Uq@Nw&zdN*^e!nhnCcbwPXavS^=gc6=4mH}c&tqH<`oE>q
+z3@@-12K@^8PsU&3zcVI4oj-PTtI+m_B>SK5^E<=eQg&`)*DLi^V_-7Iz-T<X9c$pN
+zl;OZ9E^Ep*s%}(qXE+}2!`yxd>DNe4A}z&>f5-7W92s|I(BOb^4$@^v*C4H4%9t>j
+z?wgQqf!zLO#vNl*L_bM6^UgOjT`XU4otl-++eum<Nt~hUUe|lbQRU+`oBmXFHw%Bm
+zF-TqN_SaPmSGG%_Ip%D(c2kFqDHoIc%4RFEb$$8nEy`DP26=_8>#f~1gWpM;jv&W$
+zLd5}5d)UczrKUmONBjJ%{N0{dOS3~O#ilMAT<J{Id7{?J?YO@keZAMP>N`B4Xh+mq
+zgnLNVqW#{w#2f#zR2ifR6Q?L0ENMs>W7v30>pbfcd!vy>+XHpcj@ibd?I-j*)Ju}~
+z%#5sbMuI=-C-^;$$pGH{`~DtVn4Qc+Oz%%I2J%7*?}9pYp;dbC^C4VYq-D{C$!z2Y
+z?K$L^c(C*(O{Cv@O_kSQd=TpFb+}Kx@yh+&TZ#}Lvp5jGOfW@H5q|O-(z?Bcx|}<-
+z?d7i5dSh_&yHQ=IMwCO_@&P*LXFrV#LmR0V_V?f}9ilEOOZFBNj)h=o;2(azUyb44
+zpiN#rp=gy$!#_u%voR+BfbrKve^A+njX7S>$fnvhXWhPx_;{-Q8KsvttZjnj#W80Z
+z3vBvnE}5?Q+z}Rev~7OMS0i*@>bOQA@84fjb^ROHQH|euSw^+>He6qd^A7Ew!`LB3
+znm^;*du*V>4_k+PZ-PEuy+`fM5nq(PwH2DjSFz)_71DP$M44CfH6p7Z-`cB`5BzMr
+zcNX4>>i36bl<zdLXo`Z%9Qq{@t7<g9L#)wJI9B6WzDLD4;W`t<np`3FP&H|<*e+o%
+zysmV1svg@VhJ69Qkx{zEvHHIFAme@*-|}ZvnG=I8u5K!aI<w3PRj0|^v(@+a;l8pZ
+zZ|lX3#5d>*vIOnYZ;!Hx@MwF;$8i5|;-{eE%4TbS`J=k*N?o>BuN^l1&T;(gbycUT
+zK6R?a{X_b_IVNqfmr<YCU59mMFTQ;Tj&I<2+3QMo3tsY(Z{zuS-0#IY@ehq7HIF)-
+zJ$$dtIq^E*YZE?Z(_Xdb(tzt{_bOjtj+@6{%Lv|v@;{CU{*4)_w~c6r$Rn5U(SAO`
+zMBYIoUN}JP;RIhwd{w!}dMn0LEynd9zHfHligIra#_SodYkUyxlPB2H;ycvlynu24
+zebC_5{6DJ~<BN5BL)ZEB*STla=I}q};hlSt_X*6SKMz*){|y{>Aiaz9H>7_fWt9Ys
+z(MVU7DE@B_j&qS3keZPmLV6Y{w<X)yisS1@e?|JRMDZ5?!qF4*7#SP`oUe6?uCs0C
+z>?TbX9r+_3(Ci3xr}&2-p6K24dSkbeL8ynCfp!fE4}reIT0z}q(YSbFskMl@g<{dE
+zqYdwRz1L5b{M$b{kFEWk=V@NdXSMqAj>H~PSUzemlrrj!@JfjjM1GrPy{Y@keMe*u
+z&0qghc(EcGYt&aicHH&fhzake;=adh`s1AOdJmS^Bko+_{uA|p<eT!eU;NDAN?FG%
+zM0Zsqe2UmV;=Tv;^C$ZhO~N}necCqJUE{g8UxnwtI<9DD_Gtm*;7rDP&)mti+Sh)i
+zU3)%w2OYP^lS6Ez7UySLhdk40a;S4(Z|#$P7!^;c)frlbaa^__l_~PtLx$m4<+Z&y
+z20~2^F=1a7{oyLLkEwASgugu>yq{5D$Y(Au`gvAdbl{&3iaWHmy$=2R(N{e>1@Jnn
+zoWpqb{XMD=DO;U-a-BV>hn8=5W`<Wen+GXgYw2$F?f|XFScm&d^u0C1i6h!yVvzC~
+zW1lwaXANWU%<3;=U>@qU3vD*%rMNSvqrbzwi+iclrA<;q=>^wOzQ-6GDPw7m_D@oJ
+zIj*5qD4TZKAM1Y3O6-#u(U#gLLE7dF!@o^^jkNIlNn-N^`{;85(U|SZ8+RkmCFFf-
+zn`Ce0>fJs2rFmxU)`B9dsnE4AKj};LtWL1?7TO-ro7zx+2lL4L3f9l8TE!O_)`9=u
+z<o7J_&$IbG>%adO`MtAOem7kCJtFcu>tPx%E4kTPWY4hr6NdtAxKObFYC@Cjho-5u
+zxh&cwW5-mq?$BYMk{_?b`0;#6yFJPQ{b@5JW5bNl4|AL2+R3x5Wx6b%_V45ULcIHr
+zFUX_!cK~fblE2(Fe`d#Ekpp~sk4x77U23j%qTVCGdp>CxtEp>~y)UfwvlIP6r~5lm
+z9F68=x=N4ZM>&o$Mk@-`7#+Yp`PbBV7JX?2<30_ReU~VCIlbR_BhCll+h5GqV-Nq$
+zu}hs4$Hwr<SPNKB>CZJz6!mv?d%qviLfo62Q%_E$CuzHvjrk%UrEh$#S7(=v@@<rV
+z)0@H%r@~s-(Tuz&A@9^ac~3&#1IRn=P0D8dozXh)oP5PcUfw4!>E$luort_upabXV
+zykX?+PaCB^dHW;p7UaDMdBeziy3SjaujWvBpS*tL-GIC!k+&Lo3v}LN1J%C`|Hi*P
+zio9nb??mM7r}OS0t`G7KeyxWF7YC6yfxIQiI~jS|Uuy@d{yG_XgF5eBvRBh!FGt>{
+zfvSF@PkYT>!y7y%W0iL#OybIeXYI1A@peCvNfs=_*jzmh*QcsDM5|}%^UJOA%cujR
+ze*I!g?Zr`-cL~n9#$1H+T)qEH`r@PQ_||&a13eisU|A_`h_)Un8^+^nB5Rl(TOCib
+z-X_kVKeSKm-ro^D`D;Q){z6&-8LWobbQr@NzwX%O`?GedJz4UQ3CO<rnwHT=WTw_r
+z4HDXZovdTbI}iCD*5&d(crO2=Co(x@djEg6887_fiA-^=G1!@zr^d}6Uh9!(ifb{R
+z1A32xw4V0q_npYd-uRs0U?+-sl4Geo3F>a#dBZl^Y^iy3&k03WMrhlC8Ti();40?=
+z{13ld6P#rKMcdMrT7&%&tI1!0V=j()vWBX6PZoU8xX1~2@9K^9GDH4-tK-&(JXcY)
+zN$NG5^AR%rJDB@rK~+C~lemZAbMsM_w?nVT+#?NPO+NB#)3^#VX5Hxl;}<xdgM0rp
+zm0UC8G_{vU8G8)Qf4nT)xEROFk)|PChcpZ6XGm|CD81ZWA1hg%a{7GSZ^7|y92cLa
+z@Db*qZzq!X!nl1Ha_|xt+rR*Si1SdS$*!>K9L71Qh&I^;IG;-_gxV&17|v;*8R3yJ
+z;D2Ox&wP<F7@B0R)QqPe9ewYXIK<)#cf{<HP?JrcJFIC=Zf(p7*2SE{tIckYrR)m1
+z=2ja@9=q}1+z%(e6-?7kC0y4gvK;kbi_izebflk}Y1G>j-_ZWrf;pz<_MTTY21s~&
+zfluq_$UkkvSo`&BO3%W5tE}+BPFE*tgtyDSk@y)yUZ{Ib?GsL<US$6BN4c+l8RkGZ
+zT3~bkh4rMp`+2VtUul)BL8Qqqe#h*d-6w8?Y28jaYLs59y{^1t1|rnYm19hoqie>p
+z4C;$k%`s_PEOr#1W3H8GpX49^yGJGxoEhq&2H@Mia;;mXJRYf+cw}W^#W&C&i|z5N
+zSGj-c`h6+fn=<gDsom6X8(no8kBIZ@KGJKv&-|7(%*pQaPWn|P6Vc|sudQi=)?s~y
+z@_xNrt!cShk3c!q*{O8k>vt(y!n)P&Q8t+@gM1z9d4sk;c?9{u7YIg58^-IiNSjVm
+zw&dG!d==@P)0Dpj=LPl6d;Z%L*@89(+;5{D8rys_#<;I`KJ8Bq`GQN)CvQ0CY95CB
+z2($D)jR)uA13N12H$&*BP`w{zczm^sJf>P7b}Ac_m4$yFV03R2-&>_)rCfC%=_2@X
+zqn+b4W`F;OVo#XfAbiL^=feeY`EFqZ^FQ3+IVY0vy5seQ-8~o&;%nuN6egv9!D@S>
+z#<>d+D^1&daJ>4X2c5+4<J6OPSw>;{9`Z7{7qYUj&g7>?Nm-B^f{ScD=CHmEA{J6{
+zIGSbONna1l=ja)rzt+vkY-?-Un^=&f-6+fO1P9sun(I?$ILn@{{gX)NJ>pxv(%Cp_
+zxA@U+!jb<_GO(A&t}<f&ewx1y;Qm5=|8{+k<9X~4%x><-R$&}gLXIVFLQ=;1O6Q{Q
+z(8jA-Fe7}yXXT%1WBA%`rDHGUzhS;_^z0VgLh6jT-^g}lT;G#B*eClOOYhD1)9Y-=
+zSdgA&g?r=rTH$3lU!nG<XHq{e`)p&4srgx24m)`yu{&n6Y&(<m+T5Q9@0U|by9o>J
+z#TY}$tqx;*v!4&ko~Diki2r$EkNEPXHW-H(OBQ`mpCsS$<5!i>izz;3E1jEhy&<IX
+zc#Qf^qhqzhn6~SKhlF<R!W`?beMnw;je3Vc)Qja&N2B;BwgLUJ>pizynJkmB?SgMg
+z+kLL<<PrXSs*J;+#04EB_9|%0bgk$C6(;RnD1YOScT@E5%Ej37SoL{c>qV2#ChL3~
+z%Xg>lq}&pIR^;9Z!tdj`#vh3i`{BlH<7v#z$v0&ixk&dmXB*Gs`Z1&zk@h3ePpbfl
+zG)?WhE8ljW_u$W?kMG~*%G~?G?%eE=eRaVn(S95lx3ss&>~wwhFz+I*vX9{6`^0wj
+z`u%1>_P<ECiBHS!|Iq&+*gq^gtZhNK?@oUZ>J_7meXYjv5&bPwVmgzqEljR@U1Ohw
+z6)sE`WIAgWZD$raE~e0I(xgyK<j7L$Ye6$AjF`k=8Gtf*FIQjp$F<;mQx?}Ti)oL7
+zChNKZ^-@?_#^N(^9u}KQqiZJ4DR18>`|XsU)q22kcF;dP+-Tn+xH0=3o{LSU5fh&*
+zpU(F}Mq%Oby|en{?PttL-(XDJn<M)vZ9R5(5A0;T-IyI1GCxVZe2wLC$_$U=t!ql=
+zOPyl254515PgytiV5%j&rq}@__PV<AD8`ssH_;B1FG$t|^JN^Dh4TF~tv0_WxHa2@
+z_b*3T>#+{9Y}T1El*hCDXruVUa4l(kg?y;!eTtV10gV!@`(=*Q-CE$}>{M}&XHX|y
+zdrOk<+^YAGZtCObGLts;Myqq;6=ICsr}$v8|7dUqX}irT{a!@B7fjq&h;fh~h}`Et
+zN#eH~U5t|>_$+xXoy^-Xr9SEUdiWyCMfX5jlVjARKEXO0(D)!(T2{S$r}jk(QO=Fo
+zHDXi7Hl1j*{k>>^L$|*fzRUIruFQTJ-#-)G)C}}>TVbmeFBE-pxJ{mA>Hegiknu*?
+zMr@xKUr{>hnL3}lubr#cHPKmV%tU1u(B_QfJl6K8PrX8#J-x@aX11me_l5$-@2^yR
+zEwMH4!}UI_=iS!^3>uORL^74X8rnGSSl|a9K%Tz$zKwfZLK^>?>p+Aufzruy?hWnZ
+zrxNUQpS~U?c=xY(H*3h(%N&IJ_4=M*xX~_~{!tmV_Rw~k|3crLFNY{zTHcQ+Uoz$o
+z^IMr-pRp{#HBh>6zord>H->v(5HF3mK1g2ip;G0OR^*)#FlHdVaK_i`_&3NxAAIB9
+zQQSNJjeBX@z7GBRz4vf$+E9%Z=-PKg)blbtr!HLCd&Qm7R}^2yI&Ttxow}q~cp+6s
+z(%?r>R$`&~HG8PnqvqH2Vcb`sUUL}Mj?-Qh8;MRAPtmZpokDv+!y>j(qvOT^d3UJt
+z6|+Dq_1+EE{g}|rBG5r%s}|tABph=b;bUWVTI+?QsP{Fm{AYi!pzynK=OoPEGK_c9
+zTl!<2v{TvHm*V`D-Mv0wFYQ)-TLqX~Gr^b8r|a)Kh`)vTuv7VVktSI9H<tIoD@xBl
+zOfV(u9hQCM6}1n+Yu3-wzF+kDA_f<Ijl}N@^Ok$E)D?g9J=4`!i#<^#%6o06w(GUF
+zb^63cG-kJ5qc9v^n51mWKh?NUqj#u!)1NDawq$#9?OAg{+#yd)ySUa17!!&9y=RCG
+z5@a^a5v(uC!_K@{;?6ug|G9BfntR_ePDmS1C8k!)`2)T;8_#E-t+BYmHz&0Z;34is
+z(B9Lh)}}7^nmpW%=>ITi1TmbzM>sjJ5la^GAlirVaOi8yxT=DWi|-6Wo`=4tc<FwO
+z^+5g<`G=ZD7jb7Ps}w*^VY}X_F%LoHa){eGl<{0~zO5+kPzK=`_?FmY)!85JR=O_o
+zO^o9kpxu?R+R6EWsr|SXE5Dz}YG)P412KlohR%Ss*x_0|UVn@G1FGK3oFeWg{wKSv
+z!~(}tn@E4E@kto-c8jjhjkGyHeRk|tKBxSTZ};(yD%IF|JU>&@vjY5oNwCfTd3N0Y
+zp~Ql3bN=yNv%5m($sVE8cwTroJ6?E1%fCO^t>j1IC<dCvhRDR)kVm@TPu7@Lkzw!K
+z>8?eM!Vj#W|5Lc7)7{&U{mF0>_vZ6`?X87bD1)*d-(}q19h6mSTb%;IhF;mZXs3&f
+zi1xD<8KO&t?Cp)P?XQtFPT8tcH`c`W{1*Oe1LrESgTpOiBT8N_0Qn~nT`ueAZ998q
+zCPQ#KS1FtNV8Z+~EAIb8AHI%#M4pUub=!2v7U+wmx-WJOiaR&$blcU)DWW|w_tV15
+z1l!uhzM8(X7bndv_cJ}$g1eQiGBKPVL-`(!XFfM8?tHSFwqr4S!wEHBs5ib%_I1==
+zrU%Dyf)i$RRggw#oLKg6CH`ZsUiU5H_~<&6=zAgD8=>!=qVEN9@0^`I_C|8gz`Zl|
+zy<qfS;YlQxk?<q;%KtT(EuAH9`S|u8f80M^^CDTw&wW#F@LtT*d#QV;Ey*VOspkgo
+z0#A3ZGe0kpdV3djA$Q5V!FQa3$i2=hyQq7>dH7yuq1o8Uv06W_A-PrG_YuDhb3SO@
+z1^TJ_WJY1!`S&Zmy0#$gRaKi5hW+tE`eU$7XQ54>WI33tr|EZx;oYuRdit}tAh;TI
+zWVO^8V||mvGeNxzf{UFJ%y$#@esmZ0O=?~jVZPHI_d6(i^)BMOu68)@S;rz}mn(fs
+zJRFWoKj={j{^^dF)jD$ZcTC+!F|MV>yw~tbudj80nE80Oa<|I=>PwmKdANS_C6#Ax
+z1^Rp#*Nz3`zx=+6UaUdRouJ<9C9Nh+{2SvajOvZUQB6KRZ&_y!#^Jvt-bk}E2meux
+zv2_vc_DPpeXTJZ!OT9jKrqxl9Z6wSak+*r2*xsaE>@w~TT|+)a^Dc?6GTk#rDO(2D
+z7e@HxU?Oj`SMil<?kK(bV_s#?bqr;1(K?Sc`Eh4ojoDq$r<`f*uTkoMi6Mgd?+-*;
+z{NIuIenwZWwOnWvvBar!`O^+n|BHy@q-`#I+RuRe730qagUg*aURL_2;k&4hjnTd_
+z6$H(&&{o96IHLUR1Pg=pF0uFwv}Z_5=U0$ftQ{&oE3tlw`9S>_pU-?r>8naLen|{`
+zPpQU2FVI-%wD}`n@X8emznSv(H7_eaNh7>4X}bGV);5Q>nqK+`7&S*m>AoS2q24q3
+zlJZ{&M9HV2FJDrztyr&suGa?A(#Ueb)8`!jT(3=xb>oX*eG)r$MLz?HR*8Xf`YXM$
+z%>%U!vW}8}83i7m{8N_fH?%s$jU_e~+yA#{N3)rG5UP(E8zhiuAeJL#82SDYe0ySf
+zZ=dM6Sn1KPDohL7IhN|@0X4Q|4Qa)9ZqemaC*)#n5?^g3@ga|^aae`<b>hp6#Gv8$
+zsT3T5sVV+PwzhjB*3IWTm92B7mQ}qPs}}Fu<1qdd{$jJ!^b+xONcZa%-Pd{YkOyVk
+zB{<%RJYRu7`z`vpDy-sM(3Z&vwf0~Rkp>Z8`N5Z|8&T`Tzw|n>XFK=7+8pB46{5Uq
+zU8h1k@7G6n!aae1fL|;9qiJkL${D77sOYOQ5a&Lhl9!5cej(EOo3f1>9Djne0O>xY
+z1kzTd!^oElxgd%2PNcsheRN^K$UZY*T={E!1IJ}cvyJK>DqD^{_|C<+cN5aa&4%%-
+zGgVB$`*7Te)Qv=bl5!7aexp|Vfk%iVV02NpG}5Z~7}j<_<xY;LQ?~cUObhVbYIc0(
+zn8Vg~$IX-8-izD)U5Q_&d<n$I1H9Zt+D_wr-Ik3nDOrlx7aY%j)N`D2)0}c`&l_pc
+z`kU!#+873-&6FcVUq+s%|4XiIMq{TB^T=nY7>b-X!!#C>N9OoK+b|QU@4m{|xtcbL
+z&b?lI?+UDy4t=Q_$F+1e&aW5jr7JXTVw^3;sS`Yc9le;7d-T0acJ#*U>(KYc?&!6B
+z5I#S&%2|hT_khUy3#Cnhf;Tli^;gXKX3@#5bQq&xRYvWB3kJQ>aD;P~wt4isUn;l-
+zyuVQ9^6VhvuErh42Fwv#(gulBz_^kNnHO!sI1aqe{FD!?@cd5wjQ448ybELIo8#;#
+z#>wCHc=-%z%iw^KIa7@<j<q`>?<54vB_{JbOJhb|`LebbS94x;f%FyY#`s8W*D_r)
+zks73BI?+Q})B!19AI@9SuSlpjrv07U6&6Q5js==lp8<ZkK+|fkrq!;F!VsE}NSEy4
+zTJii*&O83&`sQq-YI(N87uOgITsLxM46Kkfj(ik#I<LIky9Z4yhZi%wxS@hc&v@T>
+zhjbhK>85NQ2XhzbF|iCbaKC=Il7We{U90i@2jJg*$6B=BE$M|E8JMBRO<4OEQb)T#
+z(~B+U1O4WG%8-5E_iLREWz|<yera#YriR9CDOzS4Lx-z=HU3~qKmVsX1^$;h4enE?
+z_Wwhj0{@{-YyS^*I(xVpZ>$r?8*!z+l^OBmunx=<5BjBiO(%7Nrw2`YVEI;DFX>cq
+zEt2ViP`$*oVC-4ikQ&M-?#bMjRIF0vd*1ALw^P^G>X_RVPEBSTbq1}@@oluFZFRof
+zMta`r{CgX17FwOpa8&v>$kOO@_VGWqktePZd5RbX)NN4K2dzq<gg)=baY8u<Ygh<8
+z=8Uk!PfK~M#E?+1-WKe`{!`NC;KWd3_njoV8i^0Hm^vlOYt#{*q<m1)H*9lxy0(W5
+ztKlKWfgyItbI9jnyUa)1J*dYPbp~kDjg!%CYuRo?)^wg8^hvDf{2>dZe~ckZIt#3&
+z$}b9eIc9M@Xy9H!cs^v`O9cz72<N!Jiugg>F@D|l4eB<n+p5Mw9_?_p_hO(-(dWcJ
+zylQ(d-l1S;p)6;6rpw)D<DMJnKvxmwcSzejqVMv^pVQwY#F)t26%GjXb?nbzB$5A<
+z2<El)Yoq-)%(3<14$$yA@y}!ZR^i>wR}}7$VbuxlP>se-%4HlI;nM^YTIllr@_i}S
+z50_))Z)o>Qz1~v?Q{wtu=)EB75RYtAd&=9frm%kVKv({RejpvZU1Crme`E#Y^4UXf
+zQgX!UhH;4dtE|JR;_E8@GpRzsM<o3k*c<n)qCMpe365|f`L;VljGMIJYjKlkGes=#
+zaIn?M-KlKogMz!%>M)ihV?DV4k;Z?#Lm48n(4oKVOl@=BfjaL;s-1|oZI9WEk5GlN
+zuq32tFk>VRw3gVir${@tNX%x;U|&bWkudj_jo4Ar&ud=lStB>GT`nhmwkGx9UcJwG
+zrSZFn`?BOE&OfY8Y)6UnEEqhgA|3C?#oBxf<1Dyml3m+`ariC6_zL5&Yq;yLt;SXv
+z=XM{AtyfWIZm>6&@2aiJpPKJ+3|SGOb?GXr(XP;X%J*JW^{=p&7n<R%1)T4ARybet
+zd@fGUu`AF0paktSL$}j+xSxY|x+OTt{#rZL#q2;W+i8)sQ=N%+0^gFW+o=@ov=;TK
+z5MO9z*Kz=T#yVA^PL+^#`0SSGB-<OFmAqW^`iU(QLy4`75$NJb%-qhs8q(*5$%&!a
+z_KfZ1eeo`2BF-byAC_m-#+*tk?msEX`mVxxqyJmUN#X~QgL|z1cl6%WX}Hg}zmn}n
+zKe3qlcg7Cqdf8kXcOv-z3i@W$>3BM*{~u9*`nz0Z?RIMMZ}fG!8t2TH6@@Gt{(jGY
+zfZvmUp+84oT#QoGpRtqpFZ`!ryzW>jKGY?`V@wy@ku0qJtS|i_sULMT#+lR+W4Qo*
+zM0;fNjNTl`HyA7JJJ`Ohisu6lL>_Y>=G6Zf+o6UdlwZ8(B+~8}zkj=m&6-7>s2;D`
+zItH^lR?V$ShMa?A0o$!f(IZ8xR4kwn=GD(#IgNCe7|MEm^`d^DH(ea#9P94-wJ&d9
+zYQMQhXl86{FZOH`<`4Hj&VMD-wHZ8+OUF2txRzxZb@nFYuL6DW_ra{Pw)O0VJ(3%u
+zF0R$#KF67_C_9de@SNqYI+5wxr_1zed^phu1zVhs7ggS<=)xL=_ICYO!1%{-g&9Hp
+z^ylY8W+SdrbBlB1U$3++;$F1h>x59JBiV6>{YE=7OWPHj8b|UG$Wx`ryQxOoiQ;)~
+zXjLKW@V=>J>=LXEmE6~YtVaLrx)Vx%X+A6NG~>JDPLJ7TC}UWSlGXh>E(rUmOyh4n
+zV;aR9P@Zp!@}H2n!!IhEP{ESdwxhhCBRcp+m{a>O78`6;-)p?o>GQw3UsU|KWi>gp
+zcj3L`FROR>{ueK^y{NNY#Pw$<|C_kqxoFF_9ZKGL^SC-5L|HpgMj)@v*@Zk=<4wVl
+zGOYTfY3+3ite2f!v(0f(=K4XL6N`j*JKdGLtc17Fdf6Y+HXdVW6N`5^#=fWNPhD2L
+zFgLieuvYH@&Q+M*>1Vg~?yJwnw|{}U?L}Q?YJ2P~{f#VqqsUt17g-3;41GUO-!IaB
+zTib}GL)-Cj<cStJuC4#T7kguHaBtiUb{wJ2)%VAl-68&uj-9h!Y>M|eKM{N4M83jD
+z*ysGT$LAg6J>1|4>asT%#+`TdKRkqY3(!vYp`8R*NVn4`Tl(_z%Afb6Eq!8vYro#u
+z%j69gIYlUAG0tbB>@cpk_qI{axT|A!HgPnl&k3)TI=u0s#IB{jXK?}Tp}|wpPKER6
+zAGjCttNlybx4JwY?G$tS+@HS9m7(iAv=RQ)*Zb_MZM}6(>ifCqrypvp-F@W;QbEX&
+zo<4i>)TgYY{&8e|k{I+ip>1AA{+gG`?>0(os~$NOYu`1O#Dotdugkpxmg&+K_HCY`
+z30?d~slJzm^NHwh+H$Tr-m7C=g*vZ&QSslEFZ0;okOv?AGI{X^hkW?RmpLyR9P;8L
+zq}>}F^5JDKD?U7I2o|33;%8Ck7F}o;Vm?))?yRHO#aN8NLHqQMBj0*iVJcIutprb0
+z8Rqy{DVRquY*BtG`x#p}x=QTJeFk{7;7Z4B+kV0eGVZ`i=ZbB;<0TjOFmIgdZM}N=
+z%IFHg*P|cVP5Qt2&$8DOj@jRT(d9)K%J?|<IQJD-DVYiPa-&Vo1-M85WMamid7S$6
+zm3=TkRybL>SB7<vnB-;PE3NPfC!9n=z7Xoe{x0iSi02D&Zz1k2#Jz>cy9jv~A@3sL
+ztE5jl(2k*IryBeV@k<Jfndxfq$<?9xf>X#ff;<oFlCNpfqhDpZ_nU7qhOFRwmf#!Y
+zON)-vMrMV~t6M|Fld7|SFvIM=kXR{#*}Fn)9)B8U+~#{7v6ZwEqfpLJLogre^R-W1
+zacwB`{?{<hYwA<%n;S64a+Uw9*g#%A!xXuKWxuesPv3-AIP^zjeI}y+&u5I%$etAY
+zmV4OeD4!hAk3Fs*Uorow^Q+#y{EucbhNRKuFTgm`@zBpKn4hY@u?O3-*aum^R)2@z
+zJojZ~<60%LH>RlgJJchheO;Y8+myaE|J~86BVxZ^Dn11(oXA&{KUX-{ZBb*TD!kC)
+zcrmq(ecBd<&qJBTweS4bampzxg%6p;=e0F<)rm~b6`0p=Pc^&CFs|5#OHuYV@M8l-
+zAFh1%D<cg9X%Af~*Q{%!6Oy{LI_I*lzabN?+oI&Uv%gZu5&T|wxyTkD=&{no_uKEn
+zTCa4Uu8i>~Zvc&+EjUIez#rUz^lK#h+<-CstblPb(xpf<as8unRgCWM;(GH<*~TuU
+z!$@;*-GFo-(k_%~5qq|jF;5bLx#-2(7{sxtGVUw|uThF~+CqHA_O4Xej-Q_rFZ`-A
+z?tJxf+!<!nbDuoF)S6#-3_QcJQ;;-1B=Ngbmzv#2&ew5@Ap32`bFZm%itT5`3rmd!
+zg{4}KW*cn=KeOQ_+Se3_Pt#^%p`yJ%x{mmv1!8x^{Z|(|lCtvOP`4%LD_m3h^36a!
+zhG{vNV`ehOcE8go*9;MVv%`M@uaEDT)6DLfrw9&p`a{r`5YF2pj5|oVjq~$%w8?yD
+zoak=n``3q+{Tcu5M;*Pf32xcaE5qNsrB{ZJvTx6q_(duDaJ5@8=ap;CZem}$e!RT5
+z4fm3`m%L2f&(rr`xK_n89>8nx%A54HM_+HiwZxC)K5i&xpQP^}({=bM#&z?UUccM$
+zaK_qI?Sejgy1-iSj5nBg5_4!1_0)5a_klA|etAph=^@jeHZq~&jEspF76j`Hxkvcb
+znQ@7ANWBZzV6kf`0RO1;9aB?>N3(D0>DRRSt}ip)yO95C(4Eb}1!50ahj#r0ZMS~3
+ziV0kRKFk$=Y=zg%*krWl{J!QRmYf-Xh_(>9p=A%%n8qXAD<nN&+<WkLIUBLoU-6QP
+zFY{NtLmi9wl*<0#?GnGY+B9<5{}1ASyyf$g+=us-=R1A>@j~R`o{8981efXfzf;md
+z?kQTy{30t>Sb{Vf<7r>{n=+>d2)1*Z;1AEz^oa3<3yj!9AWC1W>rh=jd6NLjFF~EZ
+zB|LaCT_iS)ZO*>DH_^9K(#1kg`3<#)O?gGiw<0!ioU<rzpzLk3C%RPT?&gBHQ;%`o
+z4`tp>+8bhAYx?=3zqP#L>*d!T;j=<qe@I<MFqtk1#+;uHfIR-Cvel_ztXr%r)IIJi
+z-z)z+j=aD2abt`Z)*%#HD*4W&Efd#4V&UWYFw7gu8C}<^x?rBmz5wND{NLCk*Q(gz
+zYVO~htWvz&VtzXiT#EK+aX$3MopsbRO1$%>&dx6~QkG#XbKdXJ_k|yrFW==iFZz=B
+zT1J=TL%R$E{SrU&UK*3La*NtG9N5u|CD(v&J-c0vqbu>8Z87}IjKn>E4&QxR_6d_-
+zzW--AXY3J_8(HRPY{}xYWIq<;hcpr6`u;D7O-cKg+tOVatKwTPw%*H}pKnvLHt9aw
+zSjH^gY46a!@|u>h9=<QtzwVQ`KZ>St-0`1WJ+WW^v%0@b{0sRk_n5*V--YkjA<wmc
+zQL(8xH}Z8K?l<2^ef~x7+U<+f(RMV&vc_8q-=26PPi*PIfzTM)jQ!r~-1&l{H}n3Y
+z`lk&2^T8JF^I*04%RF&^S+K=ldPZD)O!-aASn9a8Bma7#*KURHe+8bvLK}TGB<@g;
+zaRvFga?tcXV^Zz!D*vW~$p0<myF~EJmiPG9%6D|X2dw5ozwF~S7G8O=DcIormZj;T
+zitk5WXub2mR;6#{SeSyk1<EPYDc=>1QAzxvbSN+GY<r<+j}GE?+!>B~a6Kx}_=aC@
+z?Zp*7wpGQj;q~8e-X5e5bE(2g18*?oi(Y*xW$|G_MboRUF=ae1(Br=vv^0!1{!Q4F
+zxtbK+Ws8%&{eO&;9Da*?tE)n4jsMjPYK;4JUs3j_{WR&GnrGBOP09b$iA?d&PGq_i
+zO;l}kIqLKstshzs{$bl$%KwD1LU!VO&k}_j_{Lc(&LQzGsmo<-uVGtEqoCb1avwE~
+zwU3x$<4RrlC&>E+lB<)<DGeC!ejG4H;CM081HS-IQ>t|H^o_3$QCD;B2Vv@xqs!Dh
+z0Uu9Ya44krskKhpwafkOm%Z)!nZz4iD0&u`uc98E`XsN$!=tSoZDSaN+h+`P-2G4P
+zj~xAOw((8ez`q(^dz=-v{nB>H`tyyj!VRPyEcyI8wIBSHwIfL%=fQ#%l1P2Xy_~6u
+zR0i~;A8j1M|B^b6HEQzD^dwBzA6wzvH3|kG{W2z_u7fx)MQ@W7zK#25Vv8JII56AT
+z(aAX9X6+(-timJo=(yiHMjm5CCbsgw=$pZJ*%tp_+Tj>@N$TL;IMLi!&JzE$M!^Gk
+zP1Dvv%HDC4YXd=f=&}Kc^c!1MoNYDd>g=0lnku#*^7tYR<R9~hoiF?15jWO&1IA+9
+z?+e!#8sU1s5w3Gw{Hh}ucL$Mf*EXZ%k-XZ*m$suzUr>Hp^v7)Go~`K1liW+_8gM0J
+zNmIAjCYay1qHZUN&O7GJ(Ry@O&mtIa;pEfA+UFjX|H=l@4Sxjs>Wc`Lh1h^R%Xrbm
+zOyEA2(MUVy)W2zq5>{BjWB#ISQAfD66aTOm<9y&<hUokfXT+VS|H@d2%N*Ku$p42E
+z`HW3fg)$pFaUE}(yy*fzV?v!hL+Sa#hU|qEKd0hkr<S2Uv<dZ;B+|4q<@bL6JZMp$
+z>)W1J^{7BO-oI$QOh+QWx+7Nj6FraU&-B#`z59>V_|6Zsz0E}O&Bp%D?>w*DDUnEV
+ztoS00NuTJpRX)Sm?+8v8@{Bbi#3l4HUNh@ER_}EZ<DpWQLw)rzuAP+MB6E@hFg_-N
+zE>8T}?(JqYu?3@c=d!CMK8)BH(3brM)X`tNt<$6Jh$fEQ?M#fu>}8;#Q_v=faGgz`
+zG}7l<Eernw->XJj5YL1@_MW_!&RwCqZQ9zJWp~@9I3C7z8IE7!XyJGeN5*{V=(yY7
+zmb}}pz`Y&eyX|9<yX_C7cia1F@3!~U-ED77+-<LGzT0j`e)6`*jMxVSbup(X5pznK
+zV@@a;b54Ch*`s+h-i7oxeeSG;_w#SRY92%4zZ|sgcJ?6cL#pZ^hCJ7kndvpS_6gn=
+z`up^l{gLj&EQy=k+xMSs?ukF2zZCrw#u$9yFTFA8+5U{9JePYGeeh8@SD5$6W;ITp
+z*0O05bMBK;Wv^|XjWyszwz2WM%HL4M$OaF_{R15fa0U2+Kw^>Do6**aI8)!f!R+Q<
+z#JYjvTc6sZ`=0x{<jwf(M=xl9Tpgb^pSoA@6)PD36#d*@{;rg_sr+Rrb6$9neZ>ue
+z2_*5AS?A-MGxD9u`a6GozDNJJiO&bpR|k1t#eKKDjk>%sHwcDyx`Y@icsF;TihH|4
+zmx1;3A?C;PhnW8yoj;`WC-YSP#eMRZMi$w4{!mcIi6kxCw^?G^$Tv?#8GLu0e)rcs
+z@5Vd>jF!LvqcPy-Jz2h&1i!1kcZYuGC*P>wFkQdO=px&^fxgD-+rf~cOYP;mQ%~!5
+zs?1aEbmQ~NUx?VLCy8Gcbw9*OB4*1XXMoXqbRzy`fU)qXTc57$#b-C=##X$4v!bbt
+z>C3VwKJVg@w64Q{teb)N-FM%)UiF*%?(g)w?fTsddfVamXa{+p@6JIPeE-#Nynm;D
+zf3AN2?EmooNgDfe&-033BOkHmIqp@damxMSMp*;U#@Z&0etKLtb2082yXiEfAxO1I
+z<B<xHPC+^qX)vFktzym2W4t)p%78yF!QAlFiY`&?r+mU6-Xy$>*?%T!!Pwjj6RDvW
+zDqrelUQe=YH2VA1`qUZI6RGnY`uH{2W^fAWB=M0_#3e0p<K}{Q&&8S+tc^J}&vPGA
+z#b2FN7BIe}>%;Y%`_&u0ds5FG@5PhZs4?_EzwIr-^8DBFo)|mDY=?j7m<)m7LfZ#9
+zU?OCw3-Jv%?s%@zTA0N+DItl=D?S_Zh*KJz-{XHPKAGUDu~uw)LE;WAw5#YV#rO`y
+z@<Mr=%HK+Pa`HvjR{=ieDAvZKct)Gv)Ae(+pR%Xihx^62N4v_uf(N-nV<-+4{KZ7N
+zl6Gt1<svr~99!<VF`g5|^3r7mReV0lKN0!eysXna<ny?7>XUEAH}WxN+~=E>&&-@}
+zJPYI5-|?&p$B%LR0%f^-*N~N*uFXn@9X1s*&-l3WRA_pNdA!EJlt<gY1(7eQY4M`X
+zIu^S1X{RTmd>82tT@qU1gn}wIHvPBhOT2fpYMWJPn>D&^&L=JtWG&+KGq$+LxR&^k
+zc`jz~OL%9`IWMI;P}Yu)70$8n3g<)c+{7F61XXP2T#U2Ln|txdh&8qk`Jcr-%0<uM
+zco1c5!@XUMqdabf^A*a7exr;>H>;TAhmmhxpYp=EcM$g;#Jyp}fP_rV{w~9P(w0&j
+z*RY=bUrL4WFT{O2i1Q+x55f6J#s4ZBTm9c0lcV%~wtf33)el7)FRTgWjSRlkgOj!g
+z_v&%4J^wB6;&N{_aWH<%?`xek>&n<p#K^n@_eb@4e+};6uG_z|Lmdk^AH&Zdt?0<~
+z=#(!4zcUVU)(<d0e~YvV>*-<~TaZ>GwIe-;^b*%wq<4`1(3EZb5bH28+dFaX)p-41
+z;QWGf0>(8+E0LZ=+JdwP>0PAk1py<4<HtzeZwHM0Z@a#O5u5mioBP=8aG&DZKC!-s
+zy62JP)0khInl(=T0Ih33u4zdLo^296xUws}^&56T%zOBR!qJnMFj`jooA8gyukwQ9
+zJv_?O9=%?__mvwH1u{}E-I8ZJP~JlWlx#q`fWFt1$D(034r6Oizn7yQel7A!gClaK
+z*u6uZi6}p5U+6$5F-yq5wv)cmrwj9pvZQ4#6yC-RUF!HWZY<@gqxfbBZP{+^NtJ}+
+zdhasxK4k@t8`_^yj$%B$gXrty8N(Qk{4A?BY>LfYII8vLjOR{2POL}m*1lBPH_8hc
+z@kab-lk1n52_@43?h_eG&OMB}xaHHvw5m_J1GvTo_c>;0pX0IiIsV8#$J?>b@rCy}
+zMTWw#u)weWm+*)Sogl_5%lr^!mZLnu#6_JaK~|w2L2N+j7f##akn%??qE8|c^)t6B
+zUPNM}V*T}xCH|n|Q;X+TfbT3&ZOAgexJKfqq{{K$f9t)eNQHX-)O53(K3~L7`k{VS
+zp`Sg9XVk+oM)WOOuT)f_u$cM$-M=X8OUmKj$MZ29bBwcW(bi*HY9wR|k8!h2-%i>%
+z569RzIEpbvVtU-RIwjz}jl8C$VJ&f#4IX1P<T<3n9&1TwmJvx&ex}})Yg=NJ@_iIP
+z1KRWtjXR~!sWJWMOlBv25)>BVRN~L%8=+~`!R5~xC2{0LzRs;}BbG_AC)AqCGQLkg
+zi5#sr>+&d{mA%AsRkjQDUTsg5GXZ0^K=h^(Z!w2^5yX(%_GhK1I`=t6XD7(IUc>gt
+zxdO5h<6j7tEdHBv!BOzMzrvXF7MRJQ1@lwG%r@uK>EzwpoR5%qSYDeG5S^gXH@8xE
+zW>BBr<}4Pu@p{pjGv9Yc$Ue&vKBuqcZKw;&<G$%3lsWGV+Gl6pH->qVp<xSBwFB7>
+ziS%cGR%O=AP&{5h>)+>Za_wki&O}fAnVUcdN;H1p0NHzMbFO<XqxK}rn;<K;IQ}WC
+zWFHFasrYJtu49wVyhdS(a_(=r#+0$*wx6kWYROGXkIM2xBC{$T-%nA$py+u8mumGd
+zH}&pQt}l=4u|l4s-WmOz(#4H>PQ}(P$MF^JUufOohcEQ%4paJ^WB9!nlwO%S@p%_2
+z|J%Gx`X0(pSoHm`?_?j;VeO%fE%kW6ADKw8-M!|5B(IySpmTcABRByA%j;83mf<8Q
+zgIe_|l;MQ9-xZ<$FlN_j8LDBE){XX;`06P?_iM0j|9cbdaw4Q{k8qv*0&^@8ZF6V`
+z#&52by_W^afb6^YdiGrgYx++eWkPHvH72NFRM+(QQ8A`zK=5V~>9L!8<hGr;8Xsxr
+zCfYK*l;$<-6+wCP(N0Bu`i<>=&2!3c$?RW~2Hh=AL}Si2w0RS8bIw&hCD(&Der&%f
+zu>_m13K+NGnz~HtDqVbCu}7ny0RHpBmCF8I^n6%b>}kqYiZV9i4E7iOuHXseR4P0V
+zg?AKcuxYPMTY{hbMPvV<Zjbz#eW~<LKe|x)Jb#3`x-tE{f6jFMxJ<3xTqhWNg?4$=
+z%`|9yZ_=8-iyudwGZ**f5~CaEqHC%mmP`=OmKRDKQ)_EJ`aIufH5PjGeXqU_=xd+8
+zHgkjWAGF^elE;0{A;f@({9)RE^BJOpKNbqweCHU-^;!$^_#R_J*3y5C@!1&rlH(|}
+z-0@l-+lx7L*oga;@8`huJ|kX;<S#`YjwSkq?7`R=wn_0!A3U#OO_ERNI~$Q_Bl5KA
+z7?dG>pZ+1lY+kAFhxPqc^a%;Nz8}k-I^3t-5bXf_Z&Gn4y_O;Ms_v;*Fbx^7u!`5n
+z!x%iqCSoJT9cL5ck;EO^_s`3ydFo>7FG4@9LwXA7b)*lFK1a&JSgSx9k2Do&-@B#}
+z#c?){Kfy7G<2)Q!A?-yvh&1t_sr(E=^97@fwz+p>tWbt;x3)=a+0Jv79}?{}W(ZFG
+zG-7F|Vx(IgiF6g#^T{1C(L+_^NPEk$#5@Mw#4#7g0?=CIvui>zI|5n~#68kyznX`8
+ze{C3tK6U-rLM=UgNE#QGy(PWx&htRNo_hn+q65V7N5nP5yo}&^JNWkYJgv(Njkh6h
+zn3zL(KKhRRJ-(87LltkEMj28SQZ>?Kq`Fygu|J<TD=vEHJ7&ctzT(_jaoJC)ofQ{s
+z&0A-2-=j_TV7(}hxGN2Ke+kk&q;*K`NW>wh?`rjwxWvU_-K!uwu>Onz?~Nq#JQ0aw
+z-&Hn6eWP@W`bGf95*_ca2><f^KQmUm`ga!>$A|mjP3pc!-v>WoA44CG)%VTp-us7f
+zzk)O!<?hpVtro5)g73%<s#w!CXhX)kHbBEd!Po~g|4h5wHu^B8z0oGYZP~NY#YgDi
+zKhT%5Yl)@GBc|JcNoKb{{8p#<l<EBu&avS0ZrmQ__cKFdzIC0eFpw{}UD=%k&I=eP
+zBYn6xU=-qbD$-D-i;%v3p7NiwaJ=BIfH4-wiAa->B1qHDQ+OxWoTqTh=%1G0n8kRF
+zCSuevr+ghvb|Beghniz{MYzefB29K~w8^flZL(>vO&_g*T7y0iJqOmJ0<=d_Eq#Gw
+z&eo0O7u2}L!hMK#ZO`d@;As{M=6$fqF3l*+n-I>=)N?qYW4QhDJUypsr^&qYsQB<X
+z`==?}lmj@<{ie-Tb&L4_fj$V%4f!j-_UDv1W}93&iu;n_eaTn(@E-xx0f{kfA0hU7
+zNb&UK#TRexjafKkqv{{_3GITmpQm|ojPn9*uTB3x;vzjJ_>Z*5#C+9$(@Hn4uBpc$
+z55xT&iD3&~GZbt+LfRORxaM9vXe_dycVqn09xu33Ju}pE#vl$PVlo!FZ$ciI_Ucw>
+zrIt08JL@+p`u)qzIzH{Q>K{Y~o&cHR*-Te~j=A8*lL`|TDk^q2V%Prjj4S6Q@&lq%
+zYI91%ZO(VmR-6-pIS^87C-GU>R$(o(+=21xOP=dgvwbvH$gGUJf1AiZNn^>I;F+vo
+z+)rMavKHgaWfMysd?NU-JibSnj(*J#=&@3*{o-EL<DcW6HdwT;;`e+J^$)C1wT{=!
+zZ)WQ~?-Fej&V7f15b@{0GiyIFmTl1|Cz>rh%CRfX{h;HvxKpJ4OlY%6ezCZ(4L;f|
+z7xD+&;gV;GU3MV#weeX|pW0x(lv+RXKq??Q{+FEfxURq26r0HaWW7KgeXSDd7s@Az
+z?{Gl-AaU$GWlc?ag5zxBGqb%IhslHQLDtz>6j@2k2LI1FC%O}<^N_w}P4YjUT9kaD
+z{04JI@*dk4eh*`^&d3&joJ2Z*{I-;_BatdY3h!8woQ#y)kxco*uQ~HNFgGHN$zW1q
+z`U*B2#~$N^Jk{}1swlEZ{2E`_GAT9tIhorsKN(YdsK`Dmd+Y`(wLPe7e@pop^1(Tj
+ziRcr0=Y~vorOux%>)Fa4|BtY>h;)A}^OC=uyFu~qIbsjE(y0pfl$}$C>j$rBCl;TV
+z`RTJTXM^g`H_#tN^lP|F`Ge%f`We?WXB(yOVU0Ut%HB!G%_=rph4ino3tiEtf1A+O
+z6GQ!-t12O%Bv&|D9f{OrW62Sp?6KV>afs<VL*4uUW64p8m)>!|it}aNW4rqz<O8ny
+zbB_%}&SY=gd22K62&m6m(Id+Zc~0A>YF!qetrz;Y!np-U)^V6M$v(MkfxUoqAvDw>
+z9wx_@DRTD;(It$+w?5Re+^`L5?tBO1+{G%Ww)#6kyjRxIA3Vq;;Zyi-8O}NWCQ3Xq
+z<tNgg^-hW}$s^Trf0?ZF+>34Y#GS49k8bex^eH8Vj@P(}d!b_)Gj07DZ>0uwc<o%1
+zG@~iG-g<*r?y1F`kL3pii)jimgcH$Zf5@$s#$d-APAm<C=P%e$`$p;?&rtqbq42*@
+zcG&3e(3UsQe31LqCjB|vuQI#$41EdZw>qWNc}8X>{h?(^!+Ov@hWllBpME%{k%gn_
+zw_Fxk*qGgCj-IuxKIQ8EA1q&(oMF`4zTh4wJCtir(ee|=Xb9y{*DJPH;GsgOM@eX*
+z(|nuS%a{2za(=4eHsUCCICbT{_!(Cb^MpESv>$En82^Fm<`vJXxEr)V_~LZ6kMbgD
+zEYICF=mN;b#35EO+7qd&XO)dJ*QQeKEB+$-c(m9BOp_S012rE;T$3t{q_sL#BTYuC
+z>2q&ppYz#Bw<66&nupYYv;?UYX${h5&`e@EY@}@jG4MhPSFb&!>~$XtF@Ctw#aQj+
+zDc6SR?_qRN=H&cc6H@%-s*vI*TSJPUYz`@2PyG0BYzj&2_f!M%k2jOHDE;~r@y}Qx
+z^yI2cW~>_*jPu(X5s-P!y`s=50b@F@XO2*DHgCl7HzO4Pa}SR9B0Y)p7o-D7N09!3
+z<g)_CAf(|)W058!%|e=sv=C|H1Nc8;7YCK?!<87H)xp(H1^VYL^g$8MsVm>RfwJXl
+zXBf`+;5-yu-7}|&&H1X%%X@y|MOQns#a2C<Y%z@FIMJ;wb|}L!-(QfwG)gR)U!;c_
+zDvn|(wA$I@-I?-+76|U%x!3oO8?Hx|JC5qq^&h!*YrIO{FLj@5jHfuR%fhHrFeZE}
+zpPjDr_zZP#1+KGYjfzQJKGF)}hOOlPhF15X|EpcQ;G6=S>)7SzNNh08>z=Vu`JyJ!
+zuFoSKK>7$NgEX*Q@mb+5;OA3F^TGR*pGYooDm(a(N%9h@U`Lb0O3lH&O7N^z;8_FU
+zSqmTs6oiN!9kWY`8HH4Zyh$T=bVVg~X~7<RHtOaUL_k}OCdjS@G8Z8cIzL+9qYFp-
+z5MP@5tyQv@^~WhF17+so{zS~jbyy?Udv+-7Ey@Mut2=3XRBbgm_fIj!f5OG2W1FlG
+z?M*ShxQ>CGpKCQ0(%!xpd8>)FYpMOR8no?1lyS)h>eN>C`n(u*_JAo$e@6e*^YJ{0
+z_voWqq1V65PAIxhTMXKdU0$yADmRuZ{mXyhcn8w_a)r;<{9@c`wjq=1c5cEo_2Cs*
+z1L|I+?<e>poZo?S+QF3Jd@jx{$gib1$F;=s<yumzW!?+X)-@wZGh(7YntTSzq24Xp
+z;+%#ymo+QIebkuX-W0j_+7qc^$V;rdeBAru>O{H~^CEZ#ZQ)f}#G=W?vsQ4M{mHkQ
+z%R57mO~#{LvKWWAIg#qmvccmW#+>^IbM;_(Z@dIw=q`>Ahx+sWj9(prOozELmGbR3
+z<qYs~q(}Y4wlU^3M?_|jHFv%7c53XOl|Nqr*67?TF_wbV(PB*v-7EeM!S%iPSp^zL
+zsXxZT?Z!0P<mCKR>yRrhr%o%8cJusH$30=pb~CZqHY53Vk(QIWkCU%s8T%D}&uZ%7
+zr~@EQ73uRsSa<j1+ntk5!2u*5h!MRxNnIrC^|7v(oylz45kY?o)^kGid+80XKYw#!
+zyA}6S-}jitvb+y%IgGdgXtS*HL`vfZl(S4f&QZVe1J5WOAlsih#)mVR)m%Hh)_*0v
+z)|@2QL-Lni>qklIbrwFO#%q<{_n(OR&<C7j_s)WVu?*w%$gY5~62~=2)hDuL98-Td
+z9M^v=SD2oRBlz~&0prlbfH4aB-^Kk8k%o-a@?~VH*aaB1%k`YRR@=`t*p&JIy`d+L
+zSg|j}IKK;(A0?hs7bZ9n+WwXMbC*-T0?$bQ7sJ@2Yy^?tYkeyGO{dr&C(=FGz8GWe
+zm}9i3B`sb;{zcaDYty^(6vhi>plx_Q?inS+ZN~k-Z|K1h+_X;XmJ)iNt<k!rRa&>y
+z+M)DGYjG^Vu^GoA9G4Iezau7cTNBRbpj_ffKZdy-!u^9A7}q+|6Enw+tME@fPA;bp
+z4(fFl<mv=<!l0w*qnviUKOJMLGITTMX1#rJhavlQT-%9TLth8lAb5=uVxSHD3iQ%r
+z?bTSETO9iAd2)m4IpLT+#Ht_Y+Le%w-C^x6Jo<E|`!VWtPHjrB#kgZUDn6r5ZsVBU
+zso@uxputL?ZR$LH&U~j|pl}t}qP{mht?jQZ<->gk+F-8Ue|vwul4FOhSM>9Y^=iL{
+zw5&PUR=6b8R@h{<6;3qbg{{Fh|C&&nf0fndr>>IkzlHp((AVu+hjTH;+f_(Wq}!2R
+zMcT_Th!lp5Iiez9e1`M<Q2}GvD7D_rqYR6+)r=^7NY-OULENd?&<B@?c0IUv^@d*D
+zqM_RN*B5?9c;#b)C*9@@D`1?{nEmz`rHfW;nUOP>v=h%R)@5v={(l(x);7W4^-O8$
+z^pq2Se7eMs;=bV#wMT|Nglr!4*^{)~Uo+b5-sL4-h}pv_bJs=eKe3*DVuL-5>pR5m
+zYlyQJc}ut^@msaMc$Eq5TU(<ssQ>F}m4~r!e36zTwN^~zsu52sxjuSxT*b@KG8X4&
+z(^bkoYm}8t{cmxi$SYOo7=3Ir(d&-doeCymwi`Fq6Uw%aR+?^Hv?s%Y6H&wXd=ejz
+z<H9tu2WtQ2e7}|OwpZ*<{S1A!3o=nH{xyyDx0W=Ly8ZA##_`HokG0SnGHlL=_F?Zz
+zJYDVs@!jtcW229s@3gB-u{YW5+nu@|&+-(0O>u?ZYpKC`G!nDj{piiQzTn3<VV#Cd
+zx?E&Z;@1sSejml{74M2Y%>@08P*CAl{|WE%nb@OR^=a1UB4q>ffX@?u=tjl~qpc9;
+zKI@XN<HhnF!T-TKVe-UhC*<AXsCy08Kgu5k-^g2symibwBq@0ZBkv649fG`tn(n%J
+z%_>!wAoA3PxeuR6Z=SF_Rr6G)dp64WVyfBQ>@$*^{kv1NXN~B+!jokEQ+AoIf2@yk
+zYe>bEVk|qhGshSEz-Q$<5s8y#bnSgc;aK@FK5Dg(6W?jVoRap-RXBg{w?4$$h<E*L
+zbDy!saWOGNRf$xl6m+nvUigPh8TwuLh-8X=Z(2*mC;W`^{3O;@!7end`8MQ5;Y(@9
+zLOskb>L4X<`d-nuaR21xjns*#81<^H^3(L6@>xp?`^JVScvj`h1r4YP#{Ecz?OGo&
+zPwN23fc9L7G!BUv`Ld=CFpRT7n?{315j+27JgWiCnug<LNdJZO6QmZTwMhN%GK^fL
+zGG)uE@T(2Q3;)LDqm9Ia!Mf+y(I#WVMy1mUYMhd4eCH0V_tZm5>~FOFt)h=#b|glA
+zmV2a(??4~jpu)Vz8vgXyr&VlV@e6#W_uSAl{7|pnF^&BB)_Ur#8tr|3^pRNK%*=Wv
+ziwvz%cHxXeL#+I$#wZp$LX^jSni{T~1J#;Q584+UsrLfI;3>;jbh>;2*X|kM0~z;n
+zOSvg@afZ?MOy$7%GZ>Vcyu>1`OKkNt7fNiv2x#&p;2kd{j;D@8$a}PbJ#?~xd&zX5
+zy-@4|IS;?W+CBaX$aLn4&QEb(`DCX1*llr*g(bKRkNEOdbkZJe1HQi}PuZjVx9A)c
+z{=g5P;`vIa1J71G)$3!k9`D?YKH{EHJLAP7Pi_=z^9IF_G~+(|;?PsHzb~{0YivW(
+z;XGrZ{neB7(=SZFdR`)b(s>DQ9nLA|c*+xA(mV3qpqc4h@f(bbef3alw-W^aUW8Qt
+zq{6k8xG?CO5b_*<y7yia&sE&?oZPUY+Y&cS_dBoed|K>J?8$X8XNJ}VlP(CpKfYH)
+z>}mWL_kBKnrpGsG6YnuL?PTQp=$YO&;TS3w+4Y8={U#SvKFC-VD4RYHEAid0gy&o7
+zG@zWBDCd@^ddr^)y5a7T(&zMU<o`rsq!o&Opay+@`;%&pUVwUEg}G5vq2}dpaEv1T
+z5b5MP!}#h`)9|391xuzhVC=vEbwG;0@pe2LhH<=2kLTf-mvvK2qp-%^Pe)s4h<C&|
+zWG!MtLH`<JdoY&zL(eMTqd3YjJA}s)eSfZ=*W4o+w}Cnt<>%@%>W>sy3moEQ{rRa(
+z*JBm#{(UcweUX++|I<5<;T>Z22@cEU3WsHt#tG+IU57DpG+W7{1&|+-r^KCkxR)c?
+zy>(7Ounv60VP{uo+}ZVV+}TV&XvnWiG*4WodE$ARCvMg}aVy4iGx9eu=1{0!WLN4m
+zmY{t4;n7EhJoDlTvwPn8y;z_Fb!=GL3AduJW?N?WM7+}~Jm-AJ(7v1WFBq%kx{KE{
+zmc|0{Z=ij|r%w_;LajHX)4cCHU-gIDE1H)2^rd(s@A*PY8eLpkkMM3WdkL|8A%h+r
+zqig|vLzZ{?%*JH3*iOCKqkFOR9<izKiM=u2@s&4r&ZU2nwml_3(=aIRw`x(3+WG!l
+zL4#;(GjpQZy<||_;rX)mOm{;T+6&jiaNmuay#)6s4kz!ptPkecGUsfM(QS1oTbY_M
+z<Q-?GB7;P)msc%&#VyVapm(*w%=<pb?lm}P{z~z~naQ&AJwe7pqKv&KH4AgGGRV0j
+z`>@WV$R7&vx{cpH5@OpD2Z{K*7#~+5zkDBMc_rqIiZe^P%y#E>2k2*FbT95N^D#E<
+zuaJj4@@+WY>gV%j*TyM_*vU^#R=O9#mc#RdTIW)TevN#iyxDj@7vH@Db={5UGxYOe
+z;`5wHH}S|AM3nsti7C6(32H2ce`hl12p-*28R-w^vFJZzDIRb#-i=zyZfvsR<x<if
+z!TI)}Cuu`zbX6wXoT%`FFMuC>?5L5v-?4(K-8fGoT9%xxWl8aO2`Sl%^M`8;|C8T8
+z$T}*0^&`V1j!CoZ1ss43$TI6HRJ?WKO4F}wGumYj@r86hDciV29@pu6(6+&C95-uv
+zV);cdwy#6mem<0XBE|$*<}`tR&NYqhBU@G8fU(439AngBHFZfF+jUF?(ATFKx18}L
+z_&rPcfL?&M`xEORwp>#LZ<u(y9<<SVV{eLe+qs_WRm>U0F^IAvXv-?x-;cVm-XXlp
+z>px4rHfJQ-<Z%1f;ye^Dfm~CE|Gi6Se}rpAj<uCB3-EuTHL`EO|Iei@Bc9!Vf_S4?
+z-|=2<zOv1r&mHMmNu-Y09U}j|{)`%1zin4G1_8?t`cx=5GA=g$t-6g}8!XoGztR8g
+zBek8U#vfj<_kY3~)0jFxxBZRgL_YJd55AbBG5wn{zV$n1ZoX|K5@tW$PoFUELv6&)
+zPH?XlWr5GBKsyzp4JvBeM9*gFejzQ2>hUS#8Et>n6X4;sJ;!?}tH|Y})VE}=)kWI`
+zt0q^=D{oCwHeXqFi9E^_vS&{pg$+6;4&y#1khCux@uwdXn=Iv@Oq~70XqQz(6ffk`
+zEU%6Y&iV%+{~ke`H<ia7>R?1yNc%0+X=Ay>+)Qz76EnZVh#h?!d1sdQw5v_O9ZSmw
+zOU5Y~mGjRRULt$b5$ZKG{=!91^~U)TZ1PEJt}!3&`OiI}`aXlUnmA7B-pDVVrSCKD
+z59?E)uPGar;a(8eJFK356MYW%mZ=w)*l0RGb@{ZJ@iA_B2lr;yxML;f`YRQUJ4$=4
+z6H3;9_X%ac@y-)sV~~3L3FX6d;E7%vO7dWaj+gC!A|qJSfpDEIcpI0Q;{T`caF#j4
+z!IyF^piC10|M3#qvPSz0AEf_th4OvgQK9y6$OFYs4Hz>|n8sC~8rh{dx;QNFA<yR(
+zN(b0)w6Z5;oRgDrelF4!r13~|kZO@`MY<EI5$ShGtC7|sJ%Kd006dh&;1u~U+=F46
+z<Hqy3LC?#@_$Su)h0!XON{QGgx4QbloU;t0J6B(u)};e;t%gF^E<R6miEYlE!F)SY
+z<@H=zkuYb3;{JfdOPl{S{7m{}SJTEMl-L6Pbqno~{aXKDDRqh2q)W8h7#5Bb*KMcK
+zrydKAD;(CnsOOtVHQ|79aJ1sP=D0q_kru2c+8>en5%6G)fu?*7mL!S28wfHk!!-H~
+z78AdG#uLQFQ?VkIUcEl)3(_ujf!M{9?=fXBb86~unao&;pN4+?6zOxwT5~NO|1;6z
+z&}YHK9QM#}w6;b0`9|q`o+Llj)nKkvw!}K_6ZfBDPih`Ly3pgsulf|<F^!+|AG}_P
+ze|1f&v3yZ;<NQS{4eRdZlp#L<U2i>laAM6ws$o5CW0f6wK>QTy1(TKenBT=YoWp&<
+zoJ9JL^~%njG_i3M_=zELrTYhMAvOuuD#KW?-NmH{qFr*XRG0#?caQSjc$UNu_vt;9
+z@lWcxKUuB0Zv4$JC!3;I7rc!j#5R~O-?H-JqGvb43$_cEKI0r~S${10$a+HgW(Ne9
+zx6SE#T-kX44fj9C7<yy9_~B7kfVEdJHVS>w`oeN;Pjv?V^$!!w?noqN#~)X6;CoLf
+ztOe4B)YIx7|K)d2tNXlOg7Z7Eb`^ws?Td1rQ1;Ez507&%v`uWkL)6C%o}V_$7NpH{
+zUc_2g&$U8idipqo!0Qx&_lu$phz~BhT&!=atIX~yTyu?)SlH2+V5^chI>|Cc*YNwt
+z*-vfG9Brrcd4r1CdD0j~C)U;VGaf@)Whop7;o-#YH$Sa#m6j>{E|m2N{>P2A1O6u^
+zv34-mf`U!8z*+T#!jD_=gzCfJJx;&lxWufbJzzlabeCeSS*pf|m3Y8wC7v{bONIAG
+z-5-FQ@Fe*aV*0w{F{m-YzvA3!P`H(}H>F?5uq`oX;A_gBkK>1O%oVT4?54BgP7~z_
+z+`AU^HqhJ?_qI4}1VuMSntma8yV>8se5ysgYx-b51&xCADMmu@SwbepAL$L`@PKZY
+z^C4H3p6}`)>Yad&#X3p*F|+^ae{lRez59GOKBfHkxL*A7PZ`0VVw~b5gW`o)GrUOo
+zx8wflR)1wfKQxir1$pApfjUk|Fs89JVnTzk)^&a7612mRdf69mW<0te^=cAZfwq@j
+zr=wlLH?20*{v)x0{)a7pbd16jzCh?X*2VA|!MpH?JzOF+7ynu=Hc4w-dGAm#xJG;~
+z9-tk*xgZ%Vr|rMlWBVU0H=Gjig26E=Ry1wx1K)V3+4}lB&6eSm_W4Hc|BG*w;v0{R
+z?)`?;>vi{?CI9goKKjN&R@y4DmaY?g`vB(T9LO)<IXz~3%I7DWL-}aqW+#_2f^h?A
+z%z{*N$m<yGb=$)lYl>rM73N{CrSPVTLQ1~a`M9FfZNz6l`Gvatp0cfcDVKXh#4}~g
+zPx?0ZWBlJgDgDhoc=!Gjs+^8tajc`ukm^v>f<hOE<j?rdTFN0<%T6~LQ)#*U`|rg!
+zVhP%dz7ZbrjWB}C#XhG1V~F<BjI&aLd%r#JX1k1gm358D9Kq+9n({=O_L$M84&o#S
+zFn`XMaltqcdyizmchmlqaX?SPxr<}T_(g_b2h#5P<s;{aeW;3Em}5+nc)Vvy4996H
+z9M544roU^9(9@AO!}AdFEs|c-dfA7y*kt_kEYt_bbG}eKZ82s3(-l8a9IzT}FV;Jp
+zul5G_fxq7;<Hf9~Pnjh#dsF$AlppuAa6d?_c-(I<|6ZyAGRS7Mb3d_dGrGJw{?c}=
+zrP(-UN9QDS-8K@Rf`+6gv?%Gdet_fbWJ#z|>`{vZqxzO4`OW0xDz;ca$3@}yR<7^G
+z#|rk@3(pasPNS;`?SBli0KZ`d8TW5W$`gumE^jRgHah$czOg+wq5Acauk~wAkIze3
+zu(Fn8E}%bua<e`E;(9v^eVP+pXnW8;o+xN;ZDW!$0%eS$I`(=-$7m*hJ9nU>eY6Gf
+zD7^4u;=OR6+>BmEU+^yeS0<?T(`P;5+Kl`l$T(-*PtMUXz^@bCWF(apoo)DP7a6{~
+zCL>9CRqwMhHVx`xy1q|FT~m_xq@6UzncGgc&~F*-L|@`kX{RRLPIIK4hM}EG(N4qA
+zPK+rOFw}lE+Ra~pREm2X6NX@jHTpwH3GF+?d3bur=xIl`OF>Ze`EM_tW&ifP@7dJ7
+zabA>xUdnnEN<4{ndcX`eCO_!ab?&Spzf2tr=vRLo`}cf_SwZ~t#w2Z*zKyZV@|Er=
+z?D^FCdfyw$zG-WL?t9dKJI4{}MnYrFeY4KAvksvQ{^$H}EwF!k@y%bWcNXeR+UV7F
+z-rT3o1Ny|e>aX^aa%j62LLFyVZhL>dZXw;?XvgiQjtBN3`0WB>)fm&$@1DpMfA>VD
+zs}uaT%V)UQO<c<#%khZZ@&OhvuImLghT)73^yq7=E;D;DxJxY+4@vX`N`6g|KKQH!
+z{!cibG|n`A3_d14x8@Vpf?uWW41LWO4N!PVYa%gc2l&jIO6{+UHG4A7C+|R-$bEwj
+z@RLhKS5JLvkyR)A9!*+T)bI_vgF3Ba6<upl+@YS8@*(%xo3ReGTFMS#^a!l~B|+*F
+z7{f|1RmjUVgFnk)z6}B|vWEK6{>ABUg%aM%P)zK^muNpU<~iwdiI3!XkjEqYVr@<k
+z_coX>r_7w<H25iRm8ITm(C=~2F@v@w){kdXvBViX{V~<|v$NxczvlezS1kI9I{i)r
+z{L?=!qdndt$J0-}Gf(>tR^nMVo|%DS!2@DEDxcON3JwCsQTj58A(;xEPi!@1`!rna
+z2X9FddoVY+$jK^iO8UhHMeWm4H_E-#eV5TMa*?wk??5WcT-DisB5l_eIX>{=UgA*e
+zxD>_YM{)gU9D|W!!IdB%lmPvujN#R?xgYtLj8S`6=RB_bA;nH3to958?TRn|V|y>Y
+zCNZ3ItwlEV;io;`yB{(!EAAY^*eTVzj(&PCUf#nyYZ!B!z9RaalC1bMYl3ah{6h9v
+zR9s=!Emwbsbvrg%)y*rs`buXA%J<|Jr%S9lyPvV>sNQ!;w}Kx2WFqIp4df%_yQ|RV
+zTd1GxAeL2~t@S9ZkJtzJwa(?kKlR#SFQIN$$ysR?+ql)~&^-I^AI)^1f_i+0>lHZv
+zNO<~{PS&_powUCjak;|v<$mWxlyi-YBegeF<)`mkn=|DxrL)c@-ZAc7`55C$v^if~
+zl1R6hUaXmmz-K5uu+<!MYAAc*dN?sFn-l4;d~wm$UV``fK_0J0o{314k+_GIgM2K{
+zw1x_fCUJ~R%RA83!_!7?I_ka={E)I60ACOKNBf6oaDUdNrow@zEQ#lHF&9H(x3<-x
+ze=Ge@%0i<YUmeHV7MaUzQ;`SiV$QvP>cJL&WQI@axu-wLm<Vm49S2gkwP)V<T6ZUJ
+z7k_4jQOvd=PBDF(*`6hl@wP9#(s}MO+NiBm-{?>}Hy`M=><6RYE`LJ#zCNz7I>qMU
+zs5kCB4*Bk3jP>*IFZ9)l=sl1DA+PO$JfCe*mpUz#Aa)?fYOp?OCf{&8TlS(KZ;}`i
+z#ABy_(1y?(|HFTS&-#NeHjJCRDxNR*6K3Ww5nk&J#}D3QfaSHl_*Q>>i|b({zLke(
+z#2sJ2a)%s1yUhomba(P+eQXOi1>fkkFT{HC-^e>L*rvXRCC03~XP}FB5p8dC`hn*@
+zjpyjsZ$Fah{%~Y3=5IjnH*g*w^u(Q~9#!}zQ8!jP{px}Wdy4V9>-Cyqs2I$7eCE>_
+zEe}4b^nIyER1A22dm_dRZ62r#XN(WmMtIP7v>maI8ymxQ)T8Xxg{D8s`BW@*WB*L_
+zP}ldSv-nZ!&+kaj6>OJ@_5j*P|2@8PB;~Y$9wUHMgmfg&W0c`oi8Mo}C{h?Hf;2}b
+zUQg8bYN*F01`gW)dc#;uTf3j&d)K1uJ*KiT-^G1r@Pc!2e;TekaQ*#9Ra_eGt6W99
+zc9U@&SBfn=F<btD^>i(c<ogn|DaDcaEW~$Rg<}_vj3amy$7USg$8iacS3jyS;4cuq
+zI+4DWdy5$BUyM*#LqU9VF1~rIq4uUp58Kb*oqAg9w&+tgQ}5GA`~&)p;vYR_Dh3MI
+z;s+j6K3i49q`@~wK1$nkh0jX)w;FR>u-C-*YHI4(iOeSYiG2(jH(Bo;<cd!38tE&^
+zXN?nCg1#TzUm)!uCL8tJl~T^M)V>p$L*!A`>b-D|m&vrL#hUjX{+~W(s~2Q4)Z?By
+zCSaU~REfkr>AH``h)$P!m}$6oBNFZSe>z6lCO6{v&=_U6|1gfvjZu2wH*q|GltTIl
+zY39~|@hOg<BYlNroF6c<k@_R$BMm@01!*wS=}1G79`!1}?tL9`XI~O@7W~m3OYI%g
+zrg;bMmxZ<choO8y>Hkc-XRd3$b3w17F<bn5^jbrG*7FZ%x?53B8QO=}8_Rd646Ieu
+zhjE|klqb|a4so)wbo};DsQ0i6?0y=Dn0xMGTZcScud=kAJuxYNHiB`t6_3f-Gi-0l
+z$NbisN0q+M(mF1-`9=6w3+WuB?;v@=gzv2Jg<nOQg6kigALxmpZi;U_zJ+<u_$j2p
+zqMr&S%E2oSQP{3==hx#^>~DVK7g%WQ&vaaOl+lgx6wQk}*}7d`d$dRISj@PXlktpu
+zAcw)jWJ6ZXH6S-aW(-Cf#fOCBn|l~&oAh5E?Tv51F&)JHLfqetce5<UA8nL%kYxmM
+zF8Cm*^QXiM;(8rjF7|_Ln<40zOM<=r5vM(zarLS>N?%ozM?7u!`B3C7_z!t#XU%i;
+zu|G@W*;1w-q4(N-%61>?<<=v_sV4?*mf+l8X8S_7BnLmr_)p6PTZZ*l@jI$9rW!>~
+zqaEG2hc#w$NU#Gq$3dSVSBDx4&EVDoyjRG!zaM?~hw~K{{i8TOg|y*(<rnG33MB5?
+z-gT<HQ953TH}sao6{fD@OUMj4I5M6#>rbqgPaf`#m1$brkGQcii*&t+FM6(uH<oiA
+zj-ZP<V|6?6Um5f9TU@UtcKfy?eD^4^aw2^&DzzTuBy9tqgL7h8s@Se-uf>gNLti1v
+z*N?2@z7u)3+Wap>PsRA$O8-oo+c(ZvGSe?7&;}p;_9H#9i;8I5avtjBAWvx#+6?1Z
+z*<-6%owV`tXq=-zJ?#2(H>tS4A&GI9n!irb*etDUDtojywu&J!GL&DOTOZ1Fl)d(h
+zRDOoy!y-OmwQ0(5lnW}X{-8JgMOXSc+GyQ)u8*xpz1EUs5o3=qMw;yVHaI1?Zu&iK
+z1eCAMN#d8bTI-WkylS68f1A1_{fU~rTaqtcl1L4|((InCd|Aq8hpCS;x^PT~W&byk
+zsv1at8J4rg$$v!21*O4BV#9scWsEI6*eS0gR{M<fsaT6v`HUp(FHZqo8vve%{*os#
+zcGaFMlLJ6A*N#i18fGclMqce4JqLfWPPJ=8`S#9T<#DHj`><mFKy3T(i_T~x=J-F*
+z{@Huj?yDV%!A+kU$l4qmT+7CvnMk#kEBz+M!OkVb6Seks*5)a!_BtF>C}VAy<6t$)
+zUhNcxRtug!V|W^&?<E-<i}(j6*6PMUa53>%>gaP-Vl8e|w(EF?wyZScjcDh^!H(6=
+z$>C^H;?QHo$z@xkOwi&(UX(}s7L0?Pp+3G(1~JxTZ>+`1c~r&SV1KlF<|kY8ha_oJ
+z#p@Ti#}l3{JXPvjiS(|C+E**0uEV&l3c7Kk(O>Sh_7UvBwd|t>W5VNSh17aQ`?L7N
+z%2qC0>-qcRntLZXdM_f_yx4j3VXhy<jrgVLx9LmExS36tsJ)XD>u5_e7_!M=$Y=GA
+z>v!j3JJ(@-KC0=?=Qzd}nnpz>Ml@13QUTHsq}n2n#JuFZBVF<e9wce&6!8NR-*}0M
+zlgOLL*s%{QU&qDkluSmOQ0`gB|JZB$PHd3M$JKMLm*+m*8(ZA4Itoc=EYRA1=##%?
+zGK;;@eU3NMV28lxe4yj-Fdne%hhIwjg6-nN!G9S#IAEN>M=nO)?_8$vR_}Nv?%eS~
+z+`0F!%1^5H6=j=N^J2`I^NPYXi{O0u>oI%9h?u?d67XuLD!G<@b>?eIcS0P6nd4&)
+zG5P*}j@eyts=~gi@w7QJFb7L7;9g)PNgGwM7s9i}rxRCbdFRj*=#P<YqEDzE37K&u
+z?Wv}wCgPkrwn~)oVI_EnQYnM`N#LRr=CyxR@eKrr-P$XASEOCPL%AoPP<BxY&!1Rg
+z^kEt(xK5=g?*@$D8J?KLrkUwcGC$V5{3Vrf|BR6_zZ(~7#=thG_$+0I&-~P#%{Ze?
+zWU_O6V%ogfgAK^<D4*IF(<OS3PuayK)3oWDfp1kks&Jr&ZHy~@y>U0!)f_$}ul&nD
+zsCakGPn=m-MxFE+$Hm=FHS$eFy`Dq=vK;!O`K)~L{~~X(hx=p1b_};T)l=J?vB)QK
+zCwab8)Sm3_b;{?-#rImvm?P93CuIGQ_)?W4Rl9tKHQ+fnzIxpZJ7nGM+>sskU#c-G
+zOoeTq>iUC<eJ}-WKg{)q!2A8#hiEg}6;71>w5jRR7u&e^p9g-=WZzeuqQ=x8*O6Wu
+zU8T4##XAqKQ!!RpzJ==u^4^boWdqxK{7p+CXUspI>Hcbvve#zb<$eB-b29vm{69zj
+zJ$>@u#W@+euP6RE?=ikxJ?^(>DZHiKn2V*_#)sI*oV)FR=$*SukgwoRYVPj4*zEo*
+z(jdIQi}N?iy%g?s7&~X{*u6V+ECV;D0d4+Y)6XEIZJKmRSTJ(Xev7F;iLhNXE;GOV
+zXN_;j{XOCV`mFn;zdpe=>uKn?aRX8B;TJPrv)V%>PkGc2Ix}*-Gu;I5jqAg>o-`cv
+zk#QV!Yzm*&kI**sy)!unxE9>qCpK0jeUA2}NZ|ePCNbrD-`#bwvbmv6VFk+eDBQHX
+zJN)s&^G$^Z%(3JJ-*Bq%%G2p<Q0(%bg7s=N*f|*Yr5>RLU8ET-d(d&!zeU;(4`av=
+z+TjQ7@Plsn-$%c=^W^X26}BIBh<<#lG@^Vv-FEze#;DzlcAGTdnsjw0^T-Nf_UQ4?
+zHDremaxms?8S24rt~#z`wrl?cmQ!lQ>|bH*AI5*K@x=>|3pT5YZ#eo7>Kke=ZCe5B
+zK)XVY<7|zI_Fs7SeZ0&0GP@!!d+Ax)7M;&)d}_UzrSoy#RpVZo<3h(7%GPV8h5Ogi
+zE(+(RI4{-TnTmV+RqXWQGDE$?{=EhLtMCTzRz4!yPsHP5sWm4aq+TrPjXM))6NvH1
+zZ|?IdTN(GeV^Mxu+gxqNv-SDPCvTjVh0aFai~i8Nrj^#w#-XFIOmO)UsWG~pK32Am
+zq8sNJpkH+LIQkN76T3P$|2ev>H1acVPEhUBUckJ*#-!i@_K7DJDwv;Q|Lq-T3auJ`
+zT+jO`_qL`IH#8@ZuP~oq#N5r+SU~}8hwnL|^i=GdT;slg*BWma*4=)#1@%;JJF_i5
+zL)k0T-r%8jJli}_VFmWbc+QS0UtZc^|BCTFHLc1L?DG6{EAqDDJ6sd!KY0<x9(9=o
+zT0d=SJmuo!lx@|#zXbOV({>LsfJJ=AT+lM*BX^FQNA>4*;?v=oj6TFTBrm)654|#i
+zU+?j8Eusy%pL}k(CTT<($!F$>{JHLb$_gK%4@!fK<2oy;W7O<q-a$I=4l`c3;Y6mG
+z`X|~Q^BWI6!gzbE+jVK5#1Z58yRXn|%?_en3k^+^U#0yQ^1Om?xc@Rh({j#Z@`%rW
+zrRcMJ&GEKT$4qm5FdN;mhjIQiV^sFqnHJNQ{iUz;+NJlR-8C>z|9AOAcrN%s%Kpdg
+z>v`x0Ters%V)>#SmOe_{;ok8;T)LkfS2~S*wGD~*1E0t?e(`F+m=3<|dZah{DgTI{
+z<NQZRn@$V#@TGTFDx1I+I6lU-KVUq8<Eu#TA!U&Mjdbb-ipM(_#|cPRApIA3*_&~!
+zLt2M){#60vIUFb9=eOYaGSYse!$>yL=Satq3dRPEn~>);9ET!}!%uEOsv!OhuHS9V
+z7CH6$KhnoB^Ztq4X_Ujy5j=4NYmW9Ed)TT^i|<&jVH>`B!JaeB6AzOQCEn4XXv{uG
+zco2*|Z8t|h?m(zlA9d<O;?I^|ukEFL($5Q%PmSE2>UxNCS?N2thkY`x%__AQBKaU&
+z=hnvTO~|_*X^^qd#@tSCz<FtSw{v!6xAXQxDuyKarI8q0xrvyw5BK`%GD3J~PoF$h
+z%+nroUVVrd<_c?w^(_+oEQOUb8S8Jg)+aLFO(0A8xNzJF79)K=K+~EGt%HI5_=B~|
+zKZtaRKE2H-gL()RBf0g6!mC*B{QevzTXkct-E*;ulSrF5BedM96g$-A&dHBvRGbu-
+zu7_{d_Sm3xAz~j=H?~}4=eHkG^M(4D3(&W(|0Q6I8LP(JB{<TjrHOvM82{XJov7mw
+z@SUgD(k`sQF58arKLM#Q?ljQnjPozN#OVefO`JLE2@1|sei)}etoHg|c$hlnQ$?@#
+zRYkAe7TeQ<w*8QC%NU~yV~93sKI2sJU1<=k*qD9cLuy|4*ZbXPV9a@{FxHAZ_7L$`
+z^oYMA_b1k(EbdomT;-fqSRem@|8C`)8%m1Z=Mo=f@SE*r-kfAkZBvqaM>)Z!PVVXW
+ztVK?lmgVLYDErd8wGUoDlh`<`I!~s|4ca;x<t(@ma(lSZCjH@<sKPsksQU?W?=6vf
+z4EzblR%wA6Grz{OGlGpab%sTFzXJbOP@rN2*I~R_xaNND`Ugond)I^0GW3y%iH*5W
+z$Ep0~MP~P5ti$})Dd#9W2EWGlsaA37(v^Cj&WmRix;!tQ-(jhJxy|SA7C++`a3oI_
+z1r6mM$z|1$^B|+wSK%1e{_5z<J5Wdd&$E5>N!%Nz{lpd-ch{t|{vKbs0q6V9@fbzl
+z_84KLHRpPaW*n<@OcUxUC`++F1L$MoX3!6u{xE;XI$Qx+le`4^qoLK@znq_BeRdPS
+z$xwR*2L~!1Ka6*d;GN%G%zunI9{lT8<a4nn1JsEaN_Jb@=bZz6-g%bgVm!0ommtr{
+zXm3yGRQpk}d%+kmRBXNqX}5a2632(}PDSsY@}bHqwZF8qW+>LkY2?Q*Mg9qBqwoCp
+zrQ#!<rmw;a=f5kqAGw0llAm5hy(apQ{sG4xR&ifg=8v_k;u}bRtC;-(>N`ipib`LF
+zHamwn29NaabJKq^gzHUbzME>+I;Z(q2cNnI-^-n@a5r(BhkI9Hj+YQ8A}IZtKI_5W
+zI52+kNp7(3(7Nr=gBqU>&sYw96R*PfA8s`Eyno7rJ@I9VL%3h1-_3ilH$ISyr{j*1
+zb8-E7nHn2BR^k{%@`amI)6gdLeKAAzc0bB_<?%){ny5#6HgZf~cS7+roD=Lz_6x_(
+z1RX=~QoPST-v`>rI3etF=J8={@ZAe_z6;pDVHFe2?f+_wy?c-+OddN*TQHQ5dsRqb
+zq%ypFL7(rt-wvyJmKuiV)I~LEyh!o^QP9^PB5{3i?P(0-#KS)wtN4LQBLc?zKMfc!
+zE>U_a#t-3o@+MLP@;r*P3h7}auFX-@K6sWPzKgP!fX?5Fv9q~ZVGq-mje8{I5sBU5
+z0sYP>S@p?Gl>Gie$Xa#DPu3}a6k>{Gg&UGa-FC+eZ^!s+OlE6axc+O^9xHWCuAR^I
+z80%aIi-O9=hw=NU7ZKar@bgC>A8mH=A3N44JM<{ldS$QgVwp@8yIbl&$eaCQtsBd^
+z(IM)W;I|`xHNI6AY;ms6GP->lHyP_!fZq;a4OtezeQk5hb*&xW^fjvQ65D>BrEp3_
+zm(BmQF6F+r#Fk|HH2hwz#f%g4<%4Q(>dxP*_%ITi1MS*TYRbMA+u#O#&yYIB9ma^c
+z!)JhJj62VknsR?DaW5^sr-Zh+lY9{B^YDeL?{;3OFpQSG5_gt-5O?0uy153NH{f2w
+z*=k>}0Q?4ZcayiqoVnE7QHS4gk8|rQ3KysX=Wo5PY?}7JuKYybd|hFtyz#oiNZE^{
+zw>FVJ@Vl5@7G7Xmkp*@|bb&pLxJRePozbtw?6*h6>@gR|?CRSwH|lh3m<Z(Hs9+;G
+zkq2YWL_Dj)k#-b+KU3p#w6i^o9OA8Bg#VtM-{wT|@7qe_;7z!O4;Fn)6`n=&m2V||
+zo7YyxohtNIk$#>_-%b5Ig69o87z=(0_?E%q3p9mTv-zS=Vhr@|*+-QRcC~R2_=OI~
+z(|@onzR2D-rwsk(={Hz-Ov<Pe16ZHe3Px($=Yh<WJvcqAG+sz7gDmUC!a|Iv(I?03
+zpIE&<l0|sOIK%9*6%qd*+@sFPSE=?e>mbXR!M)DG^W)9~W_^<J>U`E7Cp&1`v{5Fe
+zUSz0}J>Dl4!^?4J*D2tcj5UI(_mbaGG#m8vJ?csVgGER5*f(t2pTqyGIqU1ZQ9JmJ
+zCFd(&xm^!rx@$V)n0xm-Z&sMyx8nZXY^B4`$9Sa8SEcqF8z3^!V4>YLr>ODCe)|M;
+zjP_o+FSFn3rES@+m8`4msn!Xvl7qQ%^nLo$-|y-bi`loiD9c6}yN0u07dV&W-@Y27
+zV`hZwMMrgPP~3UkYsg;Bm&kjBe!X?tC!v<H+J!F5ep^5E!45qC(*Vj~EzUrcmu=mW
+z<ldR~{YzDhiaC|jV&E~2L)VNoyLV%p(@xGWaf9!&|8zR!RBc0b?Ssk|2V?D#N^Rds
+zdDa2lpPdzVYS6E@(UxV5qGMSaXPSEqYe#vEvI>u}9%%>C5u`Qxp69kC`O&WGQM3b}
+zK_5@CizTmiS+>y=hlF~C4?(*o-rlA#tFZpOq;Zyxf`^{NcF9t6fqJ@!z(+rXHu8>n
+zHEnLF7k;h|{l@X!f#+>!sTj{!n965xGRi%@Pd)kz4${;fY?d(Q4(I5fP=|NLcfa@E
+zaonSBF-z%1iv_n9b-GmdRWo(>XR7gMsu<B;#uj{?YbN(*r4JW4VrP#2Yu4-D0=)OR
+z@Y{+8RvFh)hS-AdZl{j)aE0P`C61iJK|a(+ADLQ!dcBM?A;Wj=0goI#OVQSK;FC*q
+z-F|pN@$_PYP^aQ2@c-6U^!kzRr2XR&@Z+=}4&LuPpzVg&TVId$+@X2cFl}1U4hfGT
+zIL`NC?8*M8*b8BdfW~|W<0-7aF%fmxaDmxf)uC)>v#eW_MzlV8RVK5kx|#bN*QF+5
+z{?mr(v3$i3?M^5@iF{xfJk)qR=ejZ)|31xBbm53M?q@9C^=Y>K{ft49uFPZ>ix0%8
+zMC$sEe8IOnMRch7>2m3hJ;GO?r^_3I@-ETkv2R-;CtL>^{w#^_Eb?ypq?3pv+~(wi
+z&P+@z+Gd3AajL=ZM-pvLlZ?|n4sqUR(uWo0jzYO->vF{}2jyOha#P@=2PnT4Df@NI
+z-{YW9RT!858@|ziGhR%Sx2qZ|`zVWZFs7<7w@v@xG;PQ3I3w;vwEb!s#^CclL-^1^
+z_%5-F4h=WO$CKkZ0y$y?#!Zh8u-=y!c^CZiJsve~-Z`G>o~h$0GbRnk4QUSN5y#Pm
+z#33EkCf|J!V{jh&t8BdJK~q(r>5SvGc{taLRwr@>F#^WflSjq{BO0>qQco~3pW}$_
+zcN@PcdbbAgr`n8fd#VQ8#6vQ#8EoUbdEgiGUObU0UU$5A&a*y@iMja%=Vm1RXFUIq
+zajk|cTb3i>t*=Mfty|(k&)k2dk9h;0P1FCHV3|0!p?~L;|IdHs|8j3L2j6-C-y+Rj
+zi}{s{Zw?d8k4X9~v3H21??oMIQHS544ka#LEO@Cbjo(Uo`Dvxc*oSmjr(H-#k$9i9
+z>Ll5>O{9NyTzoC4$D_O;v~U;rsWWxGMUSTEb-VD4^+IFrKpk^*e=lNNf(GA?dxyb)
+zUCaHA{)5xXK11dCt%^sN?&uR=iqAtywPs%NfYOJ&(??(TPw;0?flr(JxZ)uv4GI`G
+z?)9$<7#7kq7YB?haJ&u29cy}R<7xMGW0l%ho`<9Gd|J2Cu49F?;C>s@^GL5Fkx%^?
+z$8TK}FvcLwLRx{e3F#<O2hy8JZy|kzG*8Fmb>k5#OuG3&GqktRW7Q3WeChER^+CgW
+zqm#ZN|I)E}U3(|4NgrisC%GT|L|rofWZC;a#8`$#aKAI<552J}j4*v>7W80t<vc)p
+z!~KqzG6MK?kG0L=HNGeITm3Fp*yh9^_l06gU(i8ZJL-aru3V#rzEZ{9%bgjDJ7R}w
+zz1f))R`R1K7)w$H$?4eb^tX09A0?E`LH_Ht4D~VK-?;Z0-Yd9qUHCU*wU9>{`iEZJ
+zc;ce7Z!&1FQ5O?%CXseyv6R);*~fx)_N~!6d)C#;o;z1;$*8xO$$hFva?y4H?K7Nf
+z%}=6j@t;d<d^;(7(AJWtyvF=?$U+-Ao-1^$aJKhA9jDdoSmI%P_rdbtEMw2t%Am|s
+zhr0jsA=TcLtIW_F=o94Ws84!9a}NpaovwXpgJM5(vdo|9Vn4(9Bjgz=qlM{v9BH&A
+zhPke@Th@*~n2wZT>Lf39mr6%6`C^GNmI_F0kpDZDJ8d&KH#dZ+H`?oDp|3Vr?~+eU
+za?PwYK6yV}*`E4JY@U)S?$HF$FA^h~@dy$s2COHdVoXvt&C{`9$xnPcp=|INL+-<H
+z{Fw^0)eTj>@jEG}{VtyA{`r5vJ$=gBE&5^7+>>;yQD1G$X~+Fn5*c?bH&=z@{$g#5
+z@0R&1l-WM?-4x&ZKb0$G)~PbL-``v2M3gD=koFb6YeXWQ{YUDt6jp@TTP9RYJCQ3G
+zKN&Rd{)f~!cjFwiUlK5$L)wP)?9yz(0HD111m#4D@e*@L!}E0PC*rAlA&b2m*X<Tg
+zKD}y6{F(2f-5$OZa$%j);ZkoMh{TfAZ(I^rxCdvSr|i)#j4M4`+X&)d#Owj6=h2aE
+z#E?%1lHj{Wg4b@w_o^5}0PD}dHfR0nt*H%NTT{8lBKwIKccV^9cFxv1@*gK$eNyu2
+zT-4`$)Q7RcJY_Mv{abIQyu;9*rI>r$(8f3p1wW9x17(9=JpKgaRh%CNoj#2A8?tRl
+z>gmv8;t$$ScPviP_fpQ2i&N{7`kki!gEH@F&AXjp?J?&H!Hs&?dHmy;onviH`yoHw
+z9{Tuw#w2VHy_kO5xF^+w^KfWEdcAdz`27)wMfxJN+bO}g2G7+^yn)BTKR#_N5IWfJ
+zT(wsrcu!{R=pl>&;=j7KnAM3MJIqH|mc@1LAw{2_(Cdub$F;{Z8BdvE+=SyVcpf&4
+zTW}nUelIys*{QNm%&@jkL!a%rUzO$8{Z;vp(#<j6;@?2mKLkzw2(+B~@Q-nAR@RHI
+ze6HY@3+>6d6}0EAwZyzl(kG?Mz&oa*U&7<jUaS3tvQs%p;!;g@vcad3?$D06<o;e=
+zUw?cf$5P)TUgFSU#4_HFd&*9UYs1Y8rro>?|NFN~`uvmrAGX_l_bc1|EX)lfw2eMi
+zi+^rC@jiLo*~F64SeC!Ry7M=zJ8z)xZ$|!)h$AX}kxYM#_dY~AW+i28n0Th*k=5Je
+zt+`&+hMzw=9sI)SsDn5Brek)z>3EWFioK6ufCY7o+;Gepi}jAN4Y`l?&r8%C9CoI{
+zoUWiut?gfkfjZ9AHn$PfGm$V!55T|W(O&0FZ4W9q94Gqf%xi>ZBY8a0h4wDU6j{_O
+z==F{9S_?x5oC52BGbngK+V>P(OMjNNh+RuXQ0V@^3A$V(v8RyVHx2PKE4~%)%6f!6
+z9(}K@&pofvXfvMSKOoagq)gMyz4sP}b_btOFJ|23{4}nxWj{ro@pI{CxGxb}WD~E|
+zhv$z<44AvXC)^7e9{qy+xw4-_nnT}#n6rt#vf$5;UaD+;JXS-}#M<GN_}DS0@I-H{
+zzCX}!H>BbQdaQk&<P&K7#J${&#C2`o+xhzaDkhvKTxXkg)13Z6wTD0CVpHN8wjy6{
+zq)l*pTf(7a6Y5N#Vft`WU%NG-_g2F7$pW$I8gB<Q9~(tow_OT3A1PVwF%IJRIZ^=U
+zl}K}t5=ef%2W_F;AE6CKkk1d1H`>-oydyIV-l<*foe?vM`KcefMC`@(J70}dwo;!D
+zRCYYH1876N&eygSM`WL3ze67r&UM;|jR9?5hkxHNN@0$=G}NV^?RaN+pZt(9?KQ~1
+z{(s5efc(WeKY1|H{$}L2EQLu-xs5U#Ww*X^TV$Y$mEgWdTayL%6I<nfe=mf0`0i}d
+zNAQqY?)!#XFMf8viy5`8lb92My8jZNVplgnnWulGF}du1h1K0GaXg5pw(tn?Gq@I)
+z=s1goI&P1bJ|L*u4f>x1Pw+p<q7@5-2c&IDy~eN+oDABBL*}u5Pnx^%$Yb{_9Fh?{
+z(l$@N$2iON!Yc<X727lrYU{za3;$o{G4Wfe=R5^<dyn4{+@pm@3NXj^$-HQF?h*P}
+zEc>VKoF=c)9eUY0NWFh>k)5sUSbsnFtyJE!K6(EOdCQQGxaeO!pklY)fxMBB($$fs
+zh0s>CX(Y~1DQF;VD<_|Cc9$d3X7GS~<KE7NZNxck;G7qX8`{EC4zI&~7ZaVb6Zvp&
+zn0D?;ZX!>9G0qFZN>18f28`wX0>+`%Y-8<@0!Gbk0prxM3KP8uc|u5~NTZReBo-Ah
+z8e6m;r@6C_4#$?b+uENqI~cQn_8@sP;#Iwi--oCJIv!}$m^j+sL)IYCcQ$kqZ?_I(
+zhqn4Pmc(OMcJEk|em@X-%Ue5%#V}}OJ<c0C@x4u=XSvYqeu(uMg6BcMJ!r@RoHuj^
+zEmsdUo%;q4VC+3vtLwl$l(Mjz_n8M&9}l~bd;P7>8Twd;Bjfp<*&jS7)~$bxGQ0S0
+z(L|5Ib|B^x_f1V>mgsHhhdaDY{j(`?A<$lE1NXlthE=Rz@v~rj(2(XUFvdqep!R^~
+zU!e30zqr5@zLvVMImFa@Q1OR+_S^-g8}B)1eM0S>xIFa3Yck!x_z!$J-y;t#ytU?`
+z$v<=dWWWQ8|8?UC?>R-`i<e=Y4KPNQ_6wo>7Si?z%<lyc99yI83o_cb*!zHreJH$`
+zt}lI>UL9-78rDzigVqEUJziz0Sb2|VUX?aM;_q)Qa!7l!b$<FkVJ)+lCwhF`B+dct
+zsTjkS7$5<SZ#`L;y*SYmlT^xhp^eu`(RWZkF;Lq8RJ196ZbO@r1<SM?P<WSN+<-nC
+zg(LR@X`8WQe%v9J6W3|k(~BrMAV>4}Y?F7^^kV%*={ru{A7~i&xgZmCWhzzQ@_rre
+z{}%VJA<jWGW@jniYQZihFFSgTvbo7<`<(JM3X|To%kj4<8ywo_(AK7}Eskr0!{-}u
+zK0LhJIV-Z;i9p_OU$8s%FP0S&dB)DgdO4Q150KSzn`6$$Ym|KAuCe)RXit$yoh<#_
+zV4pck?Z?qylyw!KWFvO;v-?z=pMkmgo2wG(nhH~VBqeT)ws}LF*z3paPA$^=)u$jY
+zZOsZI#8FiLz;YvN)N?%BbhhGk4{aPtOl@VmO00^0#4`vdyc{PNRA}E)<CY|2@cOj>
+z1+mSjuV<MT>As$$_l3C^T+*Cv{5Gt{{6moOI43EW8QO<}^J?#X>OIaMKD+SuI_^WQ
+z!~oee80S}`e$@}eowL6cvp0p7eqDyG;T(*lE;Ed={U8(3*Y{G9<KK187|AwP_Jsp1
+z5B-m6%Tdg@2Txl|Q+fTTr7LlLtd4lN6YPz_r78MIn|*i*uA{UyIFEW+ym$6_^#4qx
+zpAIjR`WN6|p6*zXI`XB+MyX-^w#E_T^ZW3BtoO#cr76m1o9gDLo(?Y+-!!)2)1mpY
+z*Laead*0OLfHoBpBeNtt!7fpD2qJ@h7k&4)&|8p&-hwRjmX?Ly>XC&iv@C=+H9cZy
+z7<ZOYzlHhv&|lU3`x)f0g-A_Ezd~A!lt4dGme~_la!jq3`{<9g<0~~cXj8#?eeoLl
+z(=YFdrF0DUOTMH}{nziE@+Ey=zkYAvm+bFrK!2{u=U#Ueab|Fz@=O0OGhJL;T^zV$
+z;6MKT1=@r71o-|yvHy9qvj-#AqFk|8_yDevbMWuk*2(tcLm2b<O=s#*uAc)XZ>~lD
+zwLbZe<W|T=OKjqfR!MC61xYi>GHzmwkYf6kLoUL?-jF<>K8@gek6BwBg)x#$|Gi_2
+z^AGDq!2oml0Lom%1G!Xm3N7LfP|~67i>qZ0C)14CxfTCjpkpWU-4~j&jbnKC0mhT(
+zdZ6tY{EBBzGxp|vI=+Koa!19Mr<?Y1Z-x}z=ltY%1vi;?o#64Rb*#JVzEr*>e6}C&
+zJ;46Qw~vRFJ~OWME@ni<ha?TTGo$o4loQ!*q*I>~(-6;|M_*h(|JjgWGuyns@e4J7
+z8DF>n^?EF%?E3zU>-b-l&XThK$>WqS<o)=juTHIfE}f@*^C@+uDEqq^MLS1o+q?k&
+zIsS#RXC9;P-S-9U#p2G=kSVyA_v4-W|El7BoYD6?Xj9ogi}toFzr(hjKwE}ye5dgn
+z-<kh~YWwRm3SZM&t$704!-f<;ac7@zj~=J|9z)cNY0O8`(+@_P-Jjj7eA>BRLZ0XO
+zHQ@0z&zAG9?*FLr`}HebQ=0KPx{wrRQ_Nw#zCxQ5oBjGPGGdz%K|S357c9R%{r@)d
+z<h-kRkE_P1c}=}qi0f=rWRo=4*bm9`hZS}J$3QXVCBa<88r!DYAdhnabf^H&UI_0_
+z1<_uc!RNenzj_|hJkIQBwtOeTZ$zZtHfhLvYn1JmvKJ=?XT7J|iurkOnDSv4oZ5;G
+z@aM@kr!3q?fB)h$&IAoEMEQQm@7oip^PEI#*aXz`LS+X?U!!3`#;uAujFDBEjL~0Q
+z;u{Ygok+F#e90D%C)r|}64R|EH#gaG^2y2n?Y(O8dzvnL2R_C;1bsPI#}YUXZLt>f
+zdTmho{3JS59CsD_C+@64n=xJl?N%y4_wfz8Ah_(PPvUY>W}ls`!@G4l58L+~<l{fn
+zub+N(9_!ZR932a1D9f<aGv*nl<h~^Hc&%AU(6J=<H>z}fPPtF<SrOeAb>oyQ(um`)
+zkY+{##?^lb7_)Hx2+|Uytw>KGy@Es>P|g!yc;yinM}oZRBdclSI>DxFE4T#BHJJaa
+zoNLiW^m$?X$i5%WZ^il9qQl=O`_#il$A3+F?#Osyfbp`TErlgqBT;??^J2N^=z4tv
+z!GA99>%a3+5&d^o$e5vi{!YWN`QFz1h=Hs03D=GMx=l;2C+>XP-LJ*@8>m0^7J=|`
+z(LdRY%Y*O#0(oW`*NOeeZ8~0wrw11f^^RU+`@+u>r=s`?@=W?)2P6{tXcs2IU_3=*
+z9P>ZTNQ08skoR`i7s%SLd{HCM`pxKN9?qAtk-hOHW}C_;d|jM=)mY=Am&tcYy9XpB
+zc3`?$`t};JO~N}n8S8Kj@^inVTK`9|JYFbzy1JIai&PsEgG<`z)4`_rl8e0<$8$K5
+zpD%V1GelRHul;qBi~$x`m?izeSM}3+|DE^sU~}cT?~u=4FE-dKIv<R?a`Ot2n?FVy
+zlV5r2UfzFJ+Wj!@ovQm=;sucogd03!OM<?>PWpOPPaVA~_Kn2fn-y2Sv8>A<@9UL6
+zxaM&^te3WEwB2tx+E(Cm?H?O02pG**1&loy=MGZV_<&J@Gy<s#>66QeF)VsL+h?8O
+z1h!y~mMhydk)=E8ov#?zwuJnz;A(Rpt&8&QQQY5sUyuH?I1l6P!!aC_4VWjbQXk@n
+zZnJuAgG~A=E^SQGz9ojf`PpFc%NM?wu{^2M#CHm_G=>zvV}TF%TPr#>?s|?}HZjJi
+z_x7V7vW>cAA?K@6%(&S3wC$iim*b!B>R4#fH<Q>mbxn3a>pBh#|08~p#W~=;cD5;7
+z@vp$oUp-!7Ku^Q*+VRS+^X*pfFB8xGprAcwGahFGb$EBR_?Iz0T9-wfrt<_#J6#-^
+zWc#%50soP_8?mMSIoj-=X)Uq~!;{1ZJxlwPg@P*`#-p=Q$E$-;dw?}x`L{=ue>?aS
+zI}}>!MDZ@iProw7cRY{p`}Zi{NbW&RD^vLB@6cz4{?bj)AH5OvzZ0nmsXR-`pQJ~%
+z_||z`qa_~J_D&<wm^AAq*f|<|*@*6Q&cht+uX%hUxJ`VH{P*@?DHap=*o{xcz9#mY
+z5#8pP;cB#V4Y8LObDU+Pe9B4WRc4^=PSQRT#q^a2%^xt<Yn%P1QQj+V&~_i8aK8O5
+zZ6E*f%8dM%5lMPM%kqd<*2*~>tP{Ve(M8IqqQAzvJg<iqDIZ11nsfpe`TbpqGu|ll
+z{-sr_&$IP-=3X?fU&TMp6O7D6YG0eelYFyH*)p)bs6!ipv55BbdaReTiBaPTAL!)x
+zqz<h^+f{_DeA>9=ke|8;ZFt%$^_{h*>q9a__Hj&Wk3*kM?ZaQ(WGY|Q@7}Ly-gNdy
+zxWk#7r+nUOhs2%hR%S$(7f}2&;~%DKR`$jZ1&w=TGU`z=q}Qj!qstdNM93AG8##;}
+zn`Xb^-Y}FOB9<ZEWBeQHvc>lj^}u}TIvQnJE1Xa;U-pwo$IsHT@Esf%c&1~}i+>gW
+z;oN%_&opqg=%(1mT@O)5tYg6b=w3zZi3LJ^Z@Yf)JII53DaMqnwR+<kdvrW1<{5-{
+z>A$bm&=%+Ud%336xb!-Q7$R=G0{6UI(}T-bah+6ir+Ss*dB?9(b)BK(=@IwmKFph!
+z#w&lS4ImbzuSan0xinz3{4`)><5+@p#-$1~=yq+RL0WnkbMh3>x`XsH3Wo%TV-M}q
+zjRN%1e8)ShG0FXF`qytpo=~VEt!RD1G(z*87teO%2*#c7tx>iU)OqC^ZAYnFtmj&f
+zW50|#G8P`^*1Qno)u?tUJ6rJ!$7F09U8FNtuOZf5fi3%6;e;8G_zH1nP)6wwneS7<
+z>tE5Cmr-k-nloy>`%JGl^XPwcsiKc;t8qA=ip1DD9#6J06X#D&MCn|MLn^)q*wRto
+z%8V#C1k*W@PkVv@ajA`FJdY-MP0V-S{~<qlZY!+p!A-p<&#^cl2_F1dtMFpr35%$^
+zW!;HU&M{D{V}I>J@)%Q6E(Q@}zteBv$Ezr37+qfs01sjsNyc{h5^LLRy}$Xnd#=as
+zPtP~OvnniC;yGB>!h!6&+l`M0nSw*J-O17N)dzU@Jkf6vuWh^I)%&V^ej~~`lX^GY
+zV|f<j^(>q#Kk)64^S3)L_R*|MHO>zG*JyVE+QgX6AEN&MTG5NSL*8Z==*rE4nP3zL
+zJDTjGWRtxM-w%bG?9xb+ZAF{x%GxG-V^I0;1*|69-8Y4d=1}e_sEs*Ch1Nu9YeFoz
+zLwk%Jse_>%DI>HjX<82^_n5us2WRa_W#N3!_#KeXA58jie$cZ6>)eCMp8VcE`TLw7
+z8^(91Cb9P6y{Sn*j-TV6_?u|l#v(m8m&E!Rqfb{pdM8f^7@vWkF9pq-UT$^|o2B$Q
+zrNM<Zai8um7TUX3Dmuk`k7v~XU^?&o3hflsH0;3@GUinbC{tmD?64M!?>lv}v}^f+
+z=o4eknX>=KylqZSWC7~C9P@HH+VR0opHZ*za~hpc?Fxsnti8sylvz#MgO;?f5S**|
+zL+(yWj6m^^pO(tjw3%gjLN_M^p+;v1V~<<)N!G(Bdt37*W^D9)@&Hq~#ul5+ciCl$
+z#dd%g!4hL+1-^G(>a9#>Qwjbjm;X+=B1pXZg-%Iup>qPf;;$}MKC3^xRPBpT|Lc`@
+zDeB7jLzEXiXv=AL#_Uz#KV}xjdwgU$XGph+6)@$eG20&lf1=mdh}QQ`Lt9?`dd%iK
+z!|?9ZOO%fT$MIFKE9};=89O@TUd9<|bE>zr;kwPK%4>5fhqO79%OL|!P;xNkVammn
+zk16L)90%ETi@cBgG31XSf6N)I@v+HQtuKhnx5D=-|9Xz^wff$Ly6*IC=f8!^V}(l?
+z-*g1|VWpE8so%S5gu)@H#dEG@)w*t8>wC$G<?4TiHMcnh_+S3R!~lLkfxlXXnHSzd
+z+tcgPk><pM65|Nh)-WXtS27>UpuZ~DAGXEsRw@6%f*KV&Cg>ym&QIr7#GOdAkugvO
+z+nMWr7_wcM{Ygx0(6$KuLc=!)(f3|Ya8~lN0ZNCuojw89awiyEA%5ImJY&4Bypv=0
+z3nvsNSfI}{;>nK3yU*eoF}I8QJfmH{nH#fdPZGkjP@iX%(>^z1_QNNL&AQwv?fWc2
+z-Db@GJ#EnO%<B8Bj<H^1_I>oxg3K@eaylLq+ooVB+CwlQFz#@_@TwTstaP9q^eF-Q
+zR2Or`X&&wiw9CfGZ0G8b!p=AhSvbx82HLmdy3^V%^mg-d)vqjn^BJ@g>5%eA=yFKw
+z=r_35qxxa;xHjpBRp3ikouOh(Q8)3~3bmK^8($**Gw}6=YTw-{3rTFOF78uP4>FXo
+zsyimzmL>7Z1^3jGJB2o#=ai}V9O<A(>DHqtr*gcCL)BrmI<>)8XGf^jF@rZJiJy3z
+zm3jY*vP61EuwnEvZ+<eXPJC7KOcfuYi#8x0(12{SmiykTH(t0ewQ<nClv~Da!OZ*1
+z%)BIH9ZVQanOxaSp7Q|Tn`oQ;uNR+i)`|5A1~6BUue5_W0Ii~v@mZ5?!9b=BQhVY_
+zPkZ74PxE}pU#(79_|%n7h1TQn|64~6Nqz@os=P$Wy~ojRmEtS9(iw<xxb&PMN!~9n
+zN~E}cRe|@+$9<0LVP_`hW2`JK%ZoQ6Eho=bz_^h3Mlib4dE^|kyQpK4(3Skx6iq4J
+z(k4FA!=~W-=sRLVhj<Tl{t$eT1%AMyjir|Vxo=pY<L;GU&HK|z>Mn`>J56xJi1lCw
+zudvNvG)dmH1TvThawjom|5$2vCm6fKP`*0np?+n=YHz=RI3?FtYrd7^CkMRCN$4l)
+zRd3aM%74dLoUU!j?gR~9gmf>`2Bepf4w08a`tnkRL3tFk`e=E;sH_ec<B|Rg>2{>j
+z9|epC9G6xrdQL2?tvG)L=`|#-mGgAWnIiB_4~dUktFv&qveobj-dls?#zy^Y!nq&p
+z*b;Ykq?As;7mC@8*Lf0Ye{zZQy`tXO&i;hjH}i#h@s><$fyXB}*r0Qk8fT2-EHckG
+z@<9&9bZNtwF-6Xri8cI>ptCb>i#szg7KnvgQ_elBMNS0ABJSx%6KU!ah~XQ~<Gx0N
+z&^yMzq~G_xQD%1;=)`iLKN%vO>>y1?pILQIF0O}R-S%5cI)kA)l()huz%}U-*IC9w
+z^C90%@Cik<3F%nmbS_shOQX2Qa!PRDUassU8MpK2r7A|)A?n(!l|2|9w9)to{mpeL
+zr0-My+Iu|H-OBxVlyNV3k)4pOUc<dI@kt|%S$XttEtziW4X$=$9AOL<Vf=W^WPU#A
+zrSfGLKc!8?dvfjNTQP?=WW>Hcz5HIKBR$cmY~lx228@p}9v(TS#!2W#yoF>TWtADm
+zs4<4|Pdrax{6uh%V~%?#Gr?!pXiTM3SLiritzwg(0)4j6pxg<16#%^=onZW~Czf-r
+zwmC_(&z~wx*Um79e!R48puTb!=Ho6y{EN&7k)QU8eCL6RUaYzMabAS;VWWHT>G&)}
+z`ejTf9=XWS<o_GEPqJL?1I@$vJ<A#ACuSELOOKkR7{^DE7c^})c*#&e?RlPuduvWU
+zIl0E;Nv<(+lf0(QDsgDUzN!+mWMU#^X+3o?9Q)vo<*Hq0YCH9@6BM>A_0N@81&ph3
+zeI3$lq#q+?h&?Cv5=!4@(BFglwy=^Dsc-uf?X=_+v-_AEn+kpIozjr>-qzYlzAszj
+ze(ys)POMV6Mn2;i$CbxKj~Gd&H*%k3Ir*C+8?s#<_0O~~;k%<on%#kL8`h^9u~p*u
+zZA3rP#!B!eiIIZ$-(RKWbB)2YM*6abI_cHCZfX&_fxfS{4P#-FYsEzLWyuOPCr%+9
+zr|cC`v67x`Rcq^^78MVv8|CdIj`0MgXZ!sGB|{R+Vja$(K>EuBB~SDJAoH0;BBO+D
+zL&vF<_(Y-kqkWd)P$sNy>}O=|)bXG}i`|$7zCJMvimdoUK5M~4j90+*^mFZ3(SUbn
+z>i0#r6*LNY-_W*X^vUAfy~vm*7@&NXOFu2EKAmfI$oHA&yIPMM!u?s+rS_?~&ZU2H
+z=$Lbn#;@Vps>+@!`en-+Z+{o(Sa0$_#hM+m7NkGcw*Hb&VZxDabb)7032t4Va=gYH
+zJu<l~8@qBbb&;-p-iL1dX{>*yvau5X5TEguyzk1#f{SQG@<qmss6Dz#+;>Gemna>!
+zeP^v<e;fC1(0(}Q;K(>LW3;||2zBlqiF~tzab9Qgoq@R=pP_wXD|x=&GazQvxms7p
+zy@(rm9wa}bd>%c*A5TqXDO}dArj^)hLXJ}B-Z$Mib7r*679Co+&Sn`$M7Mj5_@0^J
+zR>q3X87O+?Ye7Tl52f|;ItHk_pZFKuMtLHKseKG$O;Mjj9PT=6YnpN#<uu+?WvG15
+z3XW_oeJ@5)KJD=b(Z}47^1o~<uS5O?GG-oY<oI^SLxgyg)Njz1q3ce|YkRDYPSGt|
+zdqkK0Z{5d1%~#|aEgyKq$EE&E-Y4$0j2ENXap#R8F_HEjQCMCJ_-%iVQRk6wirr@4
+zyv^?3Qx0PciEqCp>!IgP!!yul&G(0}1}PoQe8KbV8KeJ~Z-(4&_Q^|(VdN`7p2Gh(
+z<<uE<J^CNPv51IHB*1;#Maz`UoL}P&$eM}uyh7VdFkgwKeIsQ(6|DcH#4`+S6`S&3
+zEK}Iw0kO$bSOmA>-e&Yu`%gWx*Gt`$;2uQwitIOdSueKWcd;H(@0822Ewo{qU>UGH
+zi9H5dcmg!AgZ-{)iu`9#+4AjMndz!>V?c&m1PhNb-Q4}3fZJ}2BSBiK_eB0Fd`EBG
+zz{x0oh8tfos^Y{`ZaP_LVFCS6Y1{QAYOyK6bzA${vfN*^D4U2}tm6e%+@Bk2EHpy(
+ze)n4+X*yBU*sljywZe@1N79E0eDi~lcS?tFZL7D3iLc@^iHp^6oBX5b_WTM1bmvJj
+z50^R|V~p|T!#SUUZoGm2JwzQHecwDCnig1$fip982IE$tEl3Zkv+p3b1KT*aCT&hm
+zJk59<?Bj+!+L10va=pO!AlJ;p9IJCo?ISIEq$qXjlWjwECK16V<r;Vk)~wA-GlFr;
+z*gITHZWRpMT-iHo7*f~CIbZ}AI@zJRWQFiGQ^h9}^y-{|wZJC!Z<P@r-JQvdwdCCe
+zNBMnUq|PDM0KfkU);X?SO-QXscOY>+I)VG{n$+(yWoz;K%-6A{e~jxNQ0J?kgFocn
+zTes_vK@5U1%M`!HanVE5wJj#~TgODdOKdCf#?d+_SX(Dpw8U&BZzAK9KCzH{dG6JG
+zh+2~p#Ix;k?O3yo-O}zq9<#S6#x2Knwu-}>u3e_=SUJandJc>I5ytqO7Nx_cy~y`l
+zGF>%2<F^I!*$T(S3t`N-tR(lSHXj{eJbu(`tT`Htu<!0U%K!Yw@m@QiX)V-$tZ>Z8
+z1oXvp#<qT>w$Jye8{jyl-TA~8#pAF(lpnzxaJ}XHd}AEy!+kSpw>lN?_uS<@`?8xD
+zAJ@ecyBXz-P_~?@0oos;v^?%F9mm*lEq=^JKi3U2ayxYyqY5}jYFnHjkIgO42wA6A
+zO1wsi<qrPB6dkt0+;rdb_3$S9dhkTOVh2qOEQO&zLU1fQ3Z7l2<QKP&V}*aa*9mA^
+zpR4;STjNV`e}(&X4f@D31(Vz|kIWUF`XGsQ>9ev#Z#<lR7tV5Ky7@srb_>q2s@qOE
+zzt;&Xd%g5;ta{IHW#8~cKlo}Uw9Si!eD{jxY$J?uPhOh+#Qm0UV|?HHyKG}Uo{h)(
+zqPzPU&4mGD(q+AI1h^lNt@r;)(}%V8(&c{{`$TshkT`S7R^wAm$F?;oT)YV*i2wEc
+z(N!lhUE@cXT|Io1=0pAs`LrsmbW8l+KXKh^_>w`5N#wU?C&~MA9XYKv({<ftN>4BN
+z3y`0-HD|iNSEuaWhz}M=n^o5;+_gH*f2S}Phes85QG>pBnD$s2|FKEmJCITKyd2|8
+zaBna3Xq-dZMA2r;h{T+$mMJ-<S?kQBs8c@or?lNX=Ox#aAFfhsr&?oLoyKKKFOY5R
+zMw`CtlrXLX-lIGlLcP~1dr85~;JoY?On5`VL_THO@@2{|q)PeD9U_nL$#Uht9iUxG
+zs8D!7?nli*IRm~?26e}bJ8}AdD2HVvm#aOxj-{+~9rvY@Ms&a6sePz@i9cJW<Pi4n
+zkMYmOtZZXBjxR3GHnJB4jI|c^Kx&PxLEi*vzozHR>4N{EVpJKSn8aO*pl!(aM=TZN
+zQ{tsi*KK*6kCrKXe$oM!<Ck)#r#@lKNsgEDwoW%T636Cw%aq?sfwpB385ZB9J>gSX
+zhS;96>>4dwN-UGhlzyJ^E~_=3e?KGkK|pw%7Ljv?g%ozK8@IQ}A9wCYc^8>R7qKwe
+zR>bqB4$la`;Y5*-G=u&x^o7}UQN2AJvIYG{7(<xY9`Bx1XP-E2zI=~ZvebJ7gY#|T
+z^p-FNDlyt<&tJ<pL68TVW6rav!&zbj8}fK0?#~p;=w3s|88NL8>M=#ft7LeiY3V=8
+zUij4XL$YUo&@rP;_OIDy(S;sQdm^t!@Il^^dYbJCFYU0sp$?IYS=S0Y&k4;>dLu7(
+zvTc2lw>o_ZH9wk~wY@^!!X*EfJlfwgnH=%$F>Xjh9!$QAe=own`;4tlf9{834)u>D
+z%;Bt8<RE0X>FJN8|BS`o#yJYiITyzdxOXdZ(e(8DIR6cflqc4C<IXbH%~Dt~j8DC4
+zR9w;V;ESC`@SxZU|Hhb-&v?;TSMsGV@PD;K86Tl8>4|RbG|(2m(X_e78`t_(MSoas
+z)u_0R_xwiZFMp@}hR>E5l;kyU5WHX0dhy7$R{cQJdbtp?#6ZE1m6!(O1tVGbfZ!gH
+zGsJco?ck0}(jg=AGI5sjkT1_8_83MN+nzBgOT<R+4T<X^K5+8h4WRGr+m{Pi{-}V_
+zT|l}8I<pt!u|Tj76KP_`@%gv$oN=njvoW3l@h;iMv_mWDP<T@Lx{bwNAMYIX8#2Ea
+z>G6*I`6>=sBA<K;`#}1Paf$Hl9r#AKtmiLxa<5EeD&ufxfVL*V2yKD$xnBkvuvKDT
+zB^Sw9Ik{HTe`&9mk4OwoywCn)EQx4%ieTx<yJ5atlfFc34PJICLE{f-e5jeA4GC=%
+z!kEE7YF54-)CDRG#Ab>6i1y1-u}DOYd4y%G2R}0h{Kcbwg;(|+X*cEbPTkil&7}Qp
+z4(B-c(ajJstXiBZmJ42V;8NO9w>ew5pD%j%Hb-zj&|e{AzEhB=>^#H|&ZxIX<rorw
+zf!M?W#*z#ZZ*PB(T<FH=`}XhDn&D!zus*|or)b-FZG%A?U!~&`KGCY`VQM+!L)2Sr
+zNW*clljRsG6MIzU2SO}9#(kpy+FckorCNt2Hqi<XB*oZ9kA0QtCg1Uh#t@$6SM}fe
+zJ9X`1x|((MTzk`}>-bR5f~I~N%{FG9Zy4Kf-h7E+V5|ziL0)6uJ`dOzk5RQ;@g3(x
+z1IA;RZ`@}l{{C9xaJMTxU5*huTGYJQX8hpKa*b}r{-`xRet&?qSFlxXw?2OVEX)hj
+zn3n&xVXTg7pKI#9n>3HOS8!feJJb`t##pPkhhy<Vlvf-6`2Alq21wm%?mOp@KAB<0
+z`dKV;?62;jPf$%y3}DxW#5C&j4e^~biYsZ;A$U2fWgLo3WF^W`P6f&teXITs$8bRR
+z=>@<0pXFk%=W{I3jz%z7zEpNSLpWZ-t7YGNKy;roK*!Lj`%mADsBfO3aM{!Az`xW+
+z_-(;d5IUNJIsLJ$Ppf5*b3k;P|2IODj2z1ocR>8R%SO6bNA)6$|60Z7N#$~1k2v_D
+zWwK9&cgE5-_7HK0aQ{=tr#a{sk;#J#9JZsXBgfv080!aBjC8C8X1Hl!j>O+Ky0&4i
+z6o0AtN{NvS9yYSCkoIpLVgON(C76hc$NUF%LeYc5o2Zz{2SLNBE1Q;2f0sMTdohlP
+zJ9;aw`x$CX8Fh=PzpzVCw;A~EmHiaW8;^RFOFegBo!lYzV26mQC~-cU#h;zAhB3H`
+zFH$r!=MsfAB5Rhy2{_negKU`b<#@K5eC=<EcNSeKF|l0U-DfDePi&qyzEpNnO=!n<
+ztGDgh&)-&d<i#8N*ke6Kngt&E)-i{A;&sv|RmXQLZbq4#b(y!L%$a@4<UWzamm&Ug
+zP`3-(gtV$Cy4dO0PtilpGZ({(^M}0I0QBKt%yZf}aISNnS3#zD1M_@6j_-2rBTdBl
+ztw^PR^cerf^`OfGB8Q)iWA0BqMk$iQ$&922zo&e<CTQCG%b05i8RNRViSvf>pHICC
+zJR;?cJjP5?wm;`$9{pf|!toy{Soz>7?@{#WrF&eg^O$oU%AwyC?Q*FrVLSXC&)@N>
+zb)<;)aV`#OxJCSXi;M>FYz@x#0O?Mv!@WGe=noBh@V6M-Z<a$k!**@HN67=^bzeO}
+ztZLPEPnf$IXRvt4S1PW@sVCDPwa)$o`Fs8cW!(9@UYzy|Vmw!|0YA9MjpLF8KNS;u
+zmcj2S%!N0o+owJX{jlU09^qpvz{BPWAJ9zSS6LH?HAMTGdrhNw2KSC}Eq>^s7STg;
+zZIJj|(H3XM7&UKxs`U(v$2x;P2eRLAO}Z*8?v#NiB@TCPZNeP-rLvvVymn3q&%Y(U
+zSt~o~%cX3o!8ckfg;%F+XdqAFm&!Kr^9k|7Q%M83erg=X+fYyXe9sVH`Ib&?6PrVt
+za#6PGFP8Z);fd6`O&R*P&As-su1z!jod&45BV9^HZSA2S1<{yb9f&Wz;M2`i?`lkZ
+zJoke)Gda(hmwSR@`&bM4jqw<WgEm^V7cm+tM!UADXkUF^it}OmoW9~^;uG5<m=BlS
+z)9Z&iLgQmF9#@gx-%ko}zQiG~CjKrR_0AsLEA3GH$BqgegBbTaD&oS!^Zswy{u&<{
+z?UR41Nt=9yJCGMNx^E<}2-&5sq8Iban@E^hx{WDU=fo5)n#2soxtU0$XKE}#exn-a
+zv^^K>!U}~yR;iCObX(Ggfa@dW(4cNpkKTW10R3wCxALc8Kl{TiV&m)U!w0>XrTSXd
+zDqW^up09D9zK4ES3ipn9@jqGC`_Ia^pv8HFbf81=NPOq}$Rp#dd6~ppSV*jN{mz|?
+z5e>eB@y)3R{Wbd>?fG9{WV&yKd~lcOcb8*6-LCC?X&;o|vwr)mMulmh<L59h%l(0-
+z%Py{(Dq~uDme9K8j@aRh;=XhqF^cjalbIfzgSLy!J!1&wq5eBalOco5k^P$GVoN+w
+z_IlpxiM>QQj(c9@iO$vgUW{+Zwe14@2V-zBW-6bB1*fvn&$9g1R>2fzeR9F07wI@X
+z9-I%5_MQUyl>1s!ghwcq_!U#q-1`aRc)IKXO_9DEqHVh+Cd!gbH*JiALDS}c5cAUd
+zp0Xb-)cM#q$M077Jbhz5`9KfdJjOt*QA?Cfwqd*_SpAj}w%@o%@v0Ih66K$VYgccQ
+zB^aNH)R!1z+rZ=h``>&9{?=o3pQ3eHEGM~C`7RjR_a+db55x3yJ;q#6kGTRJ=gBYY
+zV4rcU`!!pSl_b7F8;g~Kjd^XFm<nfT{*duQxj)M?t1=@}r_qietmA8gE@fg$N2=l=
+zUa!Wmo{MKKQFD>k!<MKqtnAEnzXxf*xlGn)$}RYw;6Mwl;r;|=20icgE$LmS7JI?x
+z1w{@N-hU0o2<eW(o?hcThW{ZS@yNe5|BwHgq4$2(x)JwN?|Mh5-akhEIhn4|GJ(6!
+zknbZl4P~>(Pbm4IUzNhIpuXsH@DEY0VMyGwOK`vVWsflyd_vY;0prlbfN>qpe|mX9
+zY{Y+w;{qhg47HknI1T&*W#1t6CS2>nvexBL?wLKDenm?~r&1#EqSYD$n(8+#>R%Q}
+z9e0$AosxfBp6GgVh<Q_DsQeuFrw0?>Qy|Npj(JEOO@YSAr3@0(xH#8?rrvS4$C!<@
+z3h6_nVKJ5FA$|2bkI{@&!Q(wD@tpT}Ar&q082c7`4A#4SdR+Ew9-9z%PS^WeMs&IJ
+z5_plbxdwtC5#0cIl7F6r>yB2T&1T1BiOb><Y~Kdb{PY3zUxAkQ6^76fCx~?g4bMIN
+z9Oey5T=O>K^>^<uV<IyKjit`F@K21n<37(tJx;^DqK@8sKCxF&_J!|4emn)we|ojD
+zY5ALJNO?QTbsQPf*tFSfb3Vmb+l>1iIRE<>s(u}2Ov?1>J&;_C!N!cT1?2i&(C3@(
+z^WQM$1Maboxq@BP;`|eN@2KcqbH9%<zYAsW8rLRsfxa*9Iv2UScb&WPZjD>p2M3ei
+z9)RbU-OczWScly;kn3BB*v*t*kO%WO;EPNBs2BKVn{jSVMO{BdIlIsn2d81}=Guhy
+z#OP>5`^5Z=v9kkf&GTM`jl2tOGx7`NE6le1F?dz#G#37wI^^X&aVeRv6!|(n&vY-r
+z`!9UXK5TPtM*e5mZawu_D(%L4ji8@3?(L8^UnV-UM`UeT=Ij{KCV0BNvguUFrbBfc
+z`b6G+_~$rvC7S-xkEv*sq6=Khb`6P%oe2Na7o2Y^49>*UMVN!T%45%DX?}K>%sGyq
+zHAk3-c7mjTtZxD8`fId9NbI|fu8xtt{ZhvmhV%zsqSg)S)VASU#KKiJ9Q87<r+${{
+zX1;%Yrv5cIvP|^2jJ*V6sQlskjHj*>YV7YScYTX5wOPk=iMK^wG}zK9{u*d2+J>LS
+zxMO|lb-k|FJ9jHS)U8)?$k*#trt7umGd1pW!)rv&bNeaSr=Pa#I=OZ9={o=Ag!(7;
+zSO2f|Rivk{xPQB(T=h%SkY&P~mAmr@w2OJpl|8C8Uz=C!s5j|QadCU<M7!yr8q36I
+zKaJ&t)EEz<4xD#f>pAZ8#MZ3Ex$pns>|em6s?IiGc+V*rh5;rd(HK%4AS$(}JAjsA
+zltH3KMI9h0AmSi+EY+x}sI(3w0gS{3l0Zb_jMcVCdE01hYpvQSXnCmzR8Xq4&Vk)v
+zf{KEQip+Q4&ssY(Q2T!W_g{0ZYwy{Iwb$`k&w38`13E?Bo6sI*msY?%Ccn2)^YPfH
+z6mt#Zx^2@4@Z-<Qci9e__s=a~RJRGStoXesae`2{b!L`7C7)k(P~iq``$Az9ZXT+5
+zZzEXW$0shx!M)}F<qf>^A^IhvZA#ex_IPmV7{;7$?8hG)hRn0?{Y&{tbAP)4X$%tA
+zwDHaP##NitI%n^PU)AfJ=-_aq{X^AIZI^)WZ6&^msm6(kwkv&|Ht%)Th>Dol*(%!<
+z#_h)3sn9WEwd~WcWgf)Xa_e)hy+6cw9O_WG&_*ax7({#T6j_4cyIB$^J)q8g;LBf?
+zm=%->wup@?_hoLB=NWAWv0k39vxYv9#rk=`ulkexe!Z!%pe62xqJ2r)RVu!Ma`r^}
+zDzq~(D#MIlA%5p|!W)TQZ*Zmj=eVKGhEv<|(f*A407vj#X%qT!&G<s`CR;yHdt&wh
+z_rzn7!n!}Y^d5OL<q?{HIo^z>TotRj`|Lze_Jzh05Ame<y%IBSwQG6i{F|N1_D%Cr
+zl(9xIMsE5tBl6IDzEoxC)^RNi<8AAn#!N4H8R}D2-)`$0bC-Wfd(>DT{uyYYi~3r|
+z3%l&gjKmCK-_6o{aO%zfg}j*;$C9mM--BzDbh)lQbG!X)NoCHMrmX*s3~d9|zSp7m
+zc%#vGoFDI>U7sq$cw;<jx3*Je{t=DA^?;_a4vEVbvl5xC&BL!Q&^#FH7NXukY|{!H
+zVcMrfo#Im(RCe&R2WTlOPdLq8q7N|xl#xxQTz;*+)&{<$yeek>4c};U8wt@N>u<Qj
+zD+OoFtMNB)Z&c&y)<(r2RO7u58#8@z>^*u9LTrjpypG<HcAMxv<XmQZZ_KDZ<U6w)
+zv$4P4yg=bnzl)>Tg(%&w%c0^4`noc<t-08iz32+Y-;9`9Tz$8~1Whe3XqMQvoJX{K
+zsMK;d+CPbnBFgZ9E(6=NOwTPj25V^BQ7E!h(6m=jzHStp^y3qhi?qZ|8j1TmByPb<
+z+3UWAb7`~CN=wHfEDax3|Eh4zW6Pq)Jz&ep;*X*3>v?}fI9AL(Logh(f*OZy{THfz
+zug+<+c_@PyJbD?@$ZBOP^Tro_W2Th-IW=d@oL+6)6@<mE`pPerAMP=tdx=x8)LTQ$
+zn*?dqI*-!r8a<P_R%$F1;todnjjnapzzAre_*Fl>XOQtLX+M|Ix<|>xm+tYKE3Bf#
+ziasAdj_n&7ve-aQ>bV{9<hG3RLGBE7C7%j*<=FI0PSIxADf*;1b?f5C`Bd$W<UVsp
+z@~+5V|4o@IXyCI;>Ej~&YJ=D!<PGImiKg6oTs~F1IXU!m<s17{aEItnZ!__JMMHvf
+z!X2%%o(jI)7emNTKg>X@wM%T1)Z83v<MTzZK8NED?$4hJy_2+c)BSY*#I#rt`s=^l
+z6BO^*uI(D!fu(|{^1=N|kN@p~?402@1N<gvg_W`6VP?M@w(W+(%I;0p1}*z@3KsZw
+z@qKoxy=#&-NB={bn1fwl^RmCDULy4Tp1)(PuF!Q7yIS;T{C;JB@Z*dcM`fXy$F1$q
+zKRTes66Jk6@6XOxuBROT;)Bom7hjwrR`19Pg)PnUF4W^EU)!Z#fiV@pe*H7F*+P_c
+zAKMQ9KmJ_FEzhOg9sC}3Z9f#Abz7foA8pwJ+EOQS{%E|;5skOdPR<!woS@ASWhC_V
+znxK8g(I#tY<I$|v!SwOr`jp49rn}>SZfD|nRxIllOaNo8Wv>^+-=a?uWj(Y*d7603
+z#Lsgqlh}FGoy^j9*@nnq;*NZ=4XcrJtgRj!U(dz0D<Jg5RnNLcFc#>ONgbJ%rP5A_
+zbA<bAt~C=eUumDo_2AHEC1a)@WCn4O1V?K!Xiim%SOD&3B`c*JG3g}v-~49UGF^`a
+zt}aFS^%sX#>{lbMY~2J?)O=^R!#o!>=5nzI;#~MDlNl%Rw#^r<(}W*-QS=nY>9N6B
+zc4Eulm&du5gY_}rv77;g`@wkT#GaFwY{*mjs=r9v+T@eV@P21FHIuek6JE2XXv_oR
+zBznP{A6Uk<{GWn%;MDpho>%i+>}|Ne-O)`SnfV8_+}Yf5Y+Yrd;4vh(`SP(M*RgFu
+zw2ue-aFKrg4Baogm#ejm^D((x%P|>SKy1_M6Hgr0_z23My2ok0+wC-8*7nQG64a5?
+zez_mpIoOa;GEvngUfR`|Z+8n1MIIOXF}}yX5uC64IsV@1v&Uu`h#xdjmoZ<jx96VF
+zlxjG=4<AS7&&T^SB4-MPl<y~L)su%6t)i@Ld85i>J-)^NlkO*mKs=e)uk=#?!f}T7
+z(fWiw2{vt0{6x~8YbO{+V{3)NL8Je#BbTRe3{4ONS$GPA&x`GI9eB=`uLp@O%wx6<
+zAAOx{8)e#$hAOB>+GOFl1L<X4-vQq6WyjE#ca?o@okhDp%K7DgxJ6=cQ`X3`xTKBo
+zZM3OV$3t)gw{<(r`o!6?#!o2}9fkR}b++(gQwu8u2eVChnY~)i`<MO7Cxq+EX@`}~
+zlSk(8Jn;ef{$X3M(LkP|l$h-8;2&8wx9Icg#6MT!fuKB2+SGE~nqA#avDZMq>pnkQ
+zVSlDMpB$JAwtfDZ{fdub-CA)zM(=;<XYHn}#e7-uB;h3*^P-_|O)V#Os@~sFAGkvA
+zZ@7NamqTo7%tG;}cZ%;zbFm?|9mF{?dbVr&RW9^=N4L_6h0|vn;X;;~emDCjJilkc
+zxAfhZl6HmS1>X~SW}8*4=MKly;N{A$jrf<lzE!v;SWCSe=U20S!8WnAB=(;pv@D_a
+z_<zf`5&F??BZs+pw^y%K=WtG<?4(=n5Zhvh_>3vuq|F++pIF<t7HP0tW_^-vWkegq
+z)|WAhudJ5%5$R{K)|vJi%Dqr%lSS;c37V%6jMLARyoYW3X(qeAk@x>M@^L3lwW^Uv
+zIc?R@W_evrsX2@rcjlXxL(5tm!B>me-}l;fL#PjJ_YCt@!Li80-tIjd%Qc4JbnU+;
+z>*oZue%4lC&5a_zaEm9PeLUO|#wC15c)@<la&7ZP-Y)cneBoCQDE`naQ1+X9AE2G3
+z8uOH!Ow?<s_$fx?1xg;b&2ke@MeNsBd2TsoljkQ$v^NsJt*%wz30q`eNn87CZM+p@
+zc6!#CyFA2!n|0=^#D3|S6P%d3&HUuw^bv9fS2RyQ^Q|`AUp4*Am)eB>nQsccV_7x`
+zHha7Lr%wy#mLsHSgi6ar{*<rx6R&-y>~P$-ws%v;&-R@jrXM+FJXI;q3))y3(WTbk
+z`}VwTR_ODr9PeJ?=T-~OirWaKp7|^r<Aig^-s45|oZ{TNv07tOgtl2WMg}p~-fFOM
+z;Z;9yUi8yCkW#(AJhJr2zACbPY^Yxm-e?Etlfu&{{qH!;{=0&)hYAetc{D%k%c$$%
+z^NP_P4!60fkhmd!b8~U7Uk+`q6d#86Ck7JZY;wJ?jTeG1DkY}c{h#&84t)7WdpGwj
+zuP}y9knIY(N}D<CkI%Mo#<l%OegyaR7;I@cvR-V1ys(lL^M2&0db@SK9XZ%F6<Wu1
+zE9USP^xFv9I@K;qu}pk-JDwp=)T#H`#Mtpiwp)3|vB~2_p9h{&`>Wj2aHPM=F@j%r
+zjO;aukDM>|3GsBpQqqg<g1N(cvuJ~%@BM74veiHHGty(q^yegaec@6yr^aZT=mkr&
+zeD!;}jI0OOk8zpPlZ*lUV~iP&r$so{S1W$bZ7fddy=<C(I4v19_Q>OJ0iS2zck25O
+z<lNu>W2Z6Sre8W%XrI1S%hMM%WOY?{H)M59MySpDSmVFi`X=K*c77D>SGb>p_G{aX
+zZ?bz#&I9tJq))cahj<L6zyJD1<-ypgMxqVlVm5tNHxTRX4>@^MV^29SF)u-#4da!H
+z|6)O1!acOE+X$?{yA9R{-)75Gb09lke||U{^NDluLA2$3JtwK7Q8ZJv!%kTviM7{4
+zeDtIT<Np-eH_?Aqmq*Q&E3gi?Gqyk}Z7|(RUdBCmde;hN|Hm~!Ve4(Td<tjT=hYa7
+zN60R*4*dPoEWbwjG|SA!AES-ezsXN?UeziaK+<AE*^#~HHvVWa4w?~Yw`vY+JQI9l
+zhqhHknKq%^Z?oK_OEJ{D8TF^#Pklv9)jup)bV<fjfBz>9sWR~5fzXmv)Lbgx_l6qy
+zt#QO%slguWQnW?5B5RW*ete)Cfxr^2W3MkBDLU5c5)((olO<j8^g5S6G2`_WDR0+`
+zl)tMX;V1tu{wgnE@4p`7zlIpw$@KUJXWrS2-SNmCm$7_Lk-5Sm9*3LyFv>@b7V8^5
+zSJ}S2N58E+na?e@>@v;gu34sRH2R4@X`7bg-<~!ZgBNQKjvl^m2HPZWKjX0B+-D|0
+zCts5I^X$`s#*5ZGu|H}PyqW<9?iq`TJ?;yO%;E}>G01)N4{3O%zRtbx7=4a!6%R5t
+zk=~Z@S*Nzivis)gYGsENf6Hm?-R|tOwR8uXMaE27tZny0Uwq722jz?9T6PsQCBCX)
+zL`mFY@>_v;L48JHv)l5)#LZ5z<D$Q$_-WAYMPk<0rS8^pQ<fo+!_S|p_figHn`P5}
+z+ve#|T^}x_#C;k7`bVB+^VeC~ST|@xDu*7u#Whjy_pif#bjumU?@~6<l&{hLiMCIE
+zqr-Ep!|-kNFcw;e<=1ls`-;+aXQ*pRUfN=L^t}?T-zT5P_Ft&q{dS-B6C>`we6K_1
+z-|M!`O^AGap^_1Qs$yW+HhVXHqyDpOtW(Hg^o%$|#niTK(k5YCo~i91D;!3tpWi4Z
+zKS8}qhu9=iHXRgMb34Y|a*Mh+`V<(o%dLF<tqpd0#FxF0<Ehjx*En4+``N0Ta;?xd
+z(o*gS*8gVknBjN<>syC=^^eDFY^~&Pbz5NHJy`7%-|gmgVypgI-}9L7=HF+!oE~EN
+z5j#?2`R&zy#5dArY)q`LEQ`KT`;ZfGEE}WzL>b>Duc9I04$(IQ<tvI=Ki}79>*bSs
+z=sUjm&Ns?V#F68V^jVI-6m=DwM`K(~RBHfjjq`>sN$}flW0f_FZI5*~^R?Q?Ql`LI
+zIizo&nLCn{^}VnCPxu|T{`L>{DZWrWQ$ty=#J)HY*QaaU=%mqVPgylu$Noj0*fVgi
+z*W)f&-95q;v#!n7t28%1>?5E3BcA)r*g+XtI*PnsLm5?!oH|S7zq%|h*<}gr06(tE
+zLf&AnQ(<Vz_bQ@^ezLx`s5!>=YK|w@k5Y8tGjp4K_W<5K@QK>zvyXm*y!qar*gnnF
+z4Po3g*I8<;wOihZE5+E`qUVValTi8VEya2|Os{E_Wu2_%kk76w@mfjWZWH;@rrkG+
+zy;X<E6KR)ypd!201#}w`fAo0q1!=c(?ZIhZ<q5@C;`=Sf8pc|`=7%w!1taWaE&r#@
+z@wcDYvTvg_8mdpT9LoNCxyaJ*Fh2SB6$ey&WX|oq3J)Tkr*&B#9mBYGpW<6SUP6qU
+zTG}s<*7n^l(ZfXIg=`15hsah!;S}wP%5v)U-Y2#Vo5(O+4%0Q*9<$$7M?Y<g3)Fo4
+z`zL+tztGf4x;(o<n>XuwYf<(BX$!#~^^xZXU+$uxjQw6q-G48CZrl7_a4qp4eI>k%
+z+9&y{a`a^XIGpj#{Z!e#j?A$?4)$SA-Y!1<*L|R3J=l1{VU%+&^5;7Cf#x-KS1bEr
+z+uoIH4`oK{$loIE!Tr6}$_I~oZOXme!Qmn+qF?QT!+rRj4z=#6b|xRivEFCz5o)$|
+ze5Kw{%sS%})sAIa#;o>WVTs8o@eyekESSvk0%Z%*YJIMKiMd7x!niN{X64i8P`a8v
+z%oaoAl->17-`>IJHyXsJFc$}TpDmwVto#L8N3MCTLz^t>kEOn%A6_E<qtpxk8GZTK
+zSDK!LIwbbuS+e)$np9+6dji{NQ~FdLLrGzZC||{)pJe*%Y)L<NOB@*RLuV>kA^WMH
+z*4rQRNtPC?yxY3%ypK6-<2koUJ@)H*v=($&zxqna!do3p7W1+5me_CEJWF%)^de8k
+zQF*d$nBOYo$GrZi@=b2ur`CepvB&R~9igX-J7^=zF-ZR29$y@L#7I*5juzo*M`A5F
+zPjCZP*>kkeYc8QItKdS>e<*!!xs0z>B8Mh!rm+vthjg4kV?mmHTfki6^n!Oh4cFd3
+zyFqlY^x@#%aRF#fbf3bI^M^Lc`p0($A%B;e_wp^Dw)^*oUJ}0Y=zQqcc{B2%o#D`<
+z^5A;DC|6Hxav%RvF=cDqx6aGC=MlN^lw^&z_rqG|nZ)y8o$$T^&?K+ezmf-T6JL}+
+zWHP7ZmIw3clv59?{&wf+;%r-qPNXQ(<2k<RTr1jx3K!S*H^DerOI?;v>s1_j4WazI
+z7X0GagGw)J_c!-eEAafu*vCZZ%N7#(k?f;LPo0Xs`eu>mLA@8-d24%`VX{wBG?3WO
+z(NOe=@^cULiRQUU8)E;uB-L>#_&JPEoBxb!e+65{XJB4-49xm03^byt;Y$>qd1y&C
+z&fj#yc=m>htk1_87}rBjZAx)mdc~)(LHG&sjxXT7^#`+f=FFeE&41uJ<=3<yVVknv
+z@BegZO7S}_)`N#Q&Q@DxwaZd&;$T)}`#n#$Q$E^#pBZbz^)~c<+a8_=>)L{$rqqB?
+zmBiHLx<wx1WV|=@Y|K;ido=vAi#!DC?eYrNOO@E1G}vv-_K0Tt@FOkfVZQXi86a5K
+z9m3Zwt5?_=#LvkWe=hK#BBy<6w_9TQ%}bCMKMnPLO~(bMtekuOuRm5X=?>yJhWJ@u
+zW_q9hMByb3MPJ1JrF^*QPm#OEa9q~vap}4cYYWoT7+YV4vin`y;gL4TI*2*IeQ#;j
+z2D$Vme3QQZd9|-u`JvaWcR!}ywJCLu!|1iKmko1jivE>8?GKi1d$li}l+*TAy6yR0
+zwH7xB?`%r^XT_s@AnmC3osL@d%wauVk4GJH>s4MJvjnp~yh^a>4IQ(B{os?azr;F>
+zdVGdD9U86et1ylZ;QT<L;%E2a{2`7hobSQ;D2%1|oAAGRC3wQ6Vy9CUU7m6UU+I>(
+z+$d{M_y5<KjIW=HkLUZo!Ux(q0>^i-52T;o4@Ev`Y$fk_j`*({TRB$#p<}M!sb$kA
+z;k;7wm186hlF@Sx&L=7Rfvsoh>y<cOAo?q#hrWW}7fh0{*ul-l@hq*|Do5S!{7B8G
+z2W5Q5)9-3|?&r9E4*IIns3|l?$2?~6JSS=4-%tm^=?=5am&$s2pN`$W<#2X=_i1{C
+z0pI(q@KLK(U+MRr$Fuk9_W5ZbPDgIvPc-fZ<!4uAl#Zxf)(WF%zSup+H69S!H~gBl
+z@vzb>=NYeA9*j5Q4K&)kE_jtZ<DVY#)%5et_4Qj6j;ELCG7~%WoE%zsj<j*O&?kGn
+za8lyi8MOPFn%*tCw0NPD{^(+V7f(NMSnV6m!8qDXI!0MCp5gtIG@j7Lp|L(&_8|Qq
+zv7TPTeL32OaYm{4ix+5{^ALS-m&iC1tP&f;N3ij>3+@YL*Su$A>U^PNF>yZ4LOzr|
+z2`)~s*`jR-$EFdAT2(o^L9s>E`agvSR+>JWzTe+L8yN>ZP?4RV-U>B8`OZXq`*huJ
+zH+-bxjO-P=p4H#sC%W_ud~4h`(28YWC>h6Dhx_~@e9wW8e`~MmKhR0x)u(=>)(pmx
+z`MbV%lFa?p;@_fZ(o(T!CynrZ(ub$u8+(+G;XE_D2Y*;>ZE$~9T-zzB*bQ4WU3><|
+zGNdA;UxI--1vKTEXg`D4NHsb3k2a0r8hHkunTRy?LPcYj=io&dT8_NXRBg^ZTCLtk
+z&_2x@Y_)7Yf|zg9bL>2Mk1}}P^H9F1eaJjH{Fqbguq)86w|%7Aw(GE3gXqWpCFUT@
+zyII$7jNmWDxTo%&exbL|R*3d4Pl??v*W_?g@dea}F7Z%?MtvRIi1BY|Lt7~{D_n?u
+zvdhsNFC5FbDjfetT`~E^kx#}1i+99g;wv%!!NZIffORP@vSB0qu=Os=>z@;|Oe6ZC
+zQA;eR)k3G=<rpy&sN1n=#wq3gi`eAUA@jX;+6L=1P0zUR_|qYKuUk+16yGzbhrhXA
+z>3QSICf3{Bh<0D%5u7sWIzmeX=g-ABgnI0QcKN;*y0up3-e9vXt^9l`Gc|gm*t3gH
+z0QUppThwSd%{RLh?%IpmZsE;tTQAS&I2HohpXy}sr`l{OJ&@=XB>oE9mSc}&jkcYW
+zY<mIJc@o;YU1X%;WUHy;*Pxv#<9qNUrC<Gx!_d4{gVkTt^m7g?+hD$@;ze+rg+=B{
+zxxpjaZk9av-RPTpk=FpBwNa7vt;T&n+LJa~0UVuT1Fhvdm^*<`R!>f2Hr62z$K7LM
+z*6wmePi$S8VaE)KuL5roB`uUWc~i#T+lvlO){X$my?%_cZDM(sYoD!q^%^!|P&mCq
+ze6`fN$Nkl!F{+;Eo2?UZ|0b-lPSFp9lcUAn!04H!pW*r{*dUDY8dmgt|F_CNLe>P-
+zP1?(^_I;H~KOuX&b5P#Tga^A^e1}i_DAN~XQrfN0hoVJz2hQVjF<veG&KA70WptL-
+z?nVCJJ1URA3T9(G{e5CJFuoDau~w#k=1_jo#7YU^oqW5mA`%NN$$3US<~*$L3rA~P
+zV|=G}VocVSBG60u4%P)}Z?oR|1L|EcQ0zRDq0uqwJ_}Ih;(-zqNA>y0(P~c_(6oC!
+zv9kPXkMbq?0$l6Id!v;N^>DFUUMlU{@vWjo;86+_qcC<cZh3tU>OvfCKc1V7Z*-ok
+z;=$Q|KRZG5Ck~pH?vMH67tAMB&rc1G$)zG=4m*^uPyqkuAP=q+{l243=w~n=`A?b>
+zvm%rMia!x~(>957sJ_`?6$O`C1p}484E>A#bXeij=97=t<)ZD|llacSz8E-B>Ix-p
+zD8ID<?;NVodNQ=xrq7iP;+5YrHjMBa#Q5=TpP=oEkms{_=AF-VY*k~K^?lT>9r^rG
+z>bgwodNJPLDEJ%oeRy+mhr$PJI;?DtSl>tXD%&x>a}M5FI5Z}Bck{&lV2Skx=9fRZ
+zRBU|i!+T>jk3!iS=Oklcl}|XbFYef@@X+mcZPtD84(;6}*56X=+(Gg5k9B*gyy_*s
+z+;w=Daq$F)R=>}7is0GpT2^t-=L+X_A&#w|XUEQ5Z7)O}d8@V;r45BQuvBa&FZo=_
+zv2W!uTn~O_sik7chz!6-zH4xfUU87d5~5F7p2kkRU@!I6D(06LW5OGZDq0^D8X&yl
+z6y$%iE|=iP#>rR2la%X?(YE;gFi{5}6=*tW^ATKVsLUlTe@62>j8{`CIBfCs?{yt1
+zlPk$-KZjc9*BTm^o@HgZhwN2+x*aFVrEyP+_uBehtpA79So=5eicBR#xA*m1a@Li9
+zXkME!-Hz4e*)F!isyqiUekK_z?i%B*qRuXiSz_j-zv@-%4)b{&-z!(^g3#-|#G}z`
+z&4)Pm>oVADg+sRy%kjQ0!)bcWT8X^44?RiK;S%xvRr5=H`S8qp_%>y|uWB3G6ZE@F
+z4k_$w`(2NI*PZk3-+NU%*|uSC<<#RgywAPV9+dec-F_qgV;>vt+sFP(a7K=-+ZN3u
+zR_5@aW3qNp>5*YYBMq#bFL19&UlnQJI>AL<OI@|mCitHmKU*~Kwm{2Zsxc2#-11h@
+zf7x^NH#UA_MB`U6pB%r*d~H{3`%cp4Y<X{{XN)}_6c3oLKpRv?u%{;vNMDCA`M?_P
+zt6U<Z2*nF2OB$j13ht9``c~nJ%Q(@to;Q4(weK2){vL=#8;3HRztw&RdLQC@Y(M50
+z){QIoE8h~@jfkxVv0{Ik=?&ZM2_C-M)V5TLzxU<(gpgOI-@(&8ncm;_Fs{Ur_iP`8
+z3HT0eer^BU$F*(J(^2K8TLZdCn@W)%(5If?j<={br>$Q|=`<M=cGXWc)`8eA8G>0z
+zn`gH%)rGxx=_y)<bYG}2HE~SbkqNn+Ckmc$jl^=K4VZg!i}+?2$bLrA_kUw-?nGS{
+z_oy|bpXjO7y$^8jIo!Jk_h>`7ut&A`KX9G4*b91;z9p({`51HamLA3|6#Y=6#CfV{
+z>BE>~yv^%zpL(Kv<MQMd${f)LVcTaZUMKo;%6Vtyw5dzSI+QtKE~dX*5AhmBPi^}E
+zg<kSBYI{HKwdi}oc78gd@R6>)Q29*%<U(b~GhOeoXcx#aV`HfpMndETCHwp02#UWC
+z?R-A?JgYmGJq-Pyja3$Xp31Q95R?DP&y?=I{br}w8q&VyddBzF{Hd3i#l$ATyT|L;
+z1dF=3w_ip7>lFR3-75A*l0IYea%J!IISi~2|1^$=KKZ`(6{BpByw~!5TyHugALdae
+zb`uKQq9|wY$GLd@2RaV2_8n(Cl!Jdc?q3Sak2dGrN4zL~Pk%v$!z_OG=PJKUm*z3N
+zJ*0cBvJPz8lj+@Eq1N7n_MzNWq3l%qYut0U#@fy6!`fXU{^D#i-UFY$Rcz6T(~JEn
+z?dzmYD91x*FG-COx)inQD|DSO=N46HJY$?MsF0X8BJY?l@|CEx!91R8dx2S6PBC2{
+zYxI$}HT01ii*~N6I1=|}v~GLSsE)&Zb{C~31$rE7Jax*>Z|_mqW<`2m&34=PVW#)M
+zk>k5`SI&R#xn32yy^=|-m-8hSbr8x&bFq}MRqyvV>Lcgkwa2`z{TPhWb~SeTd<dNw
+z7mIT62l9^6Q*f+@bY6o$%k<8YIi_?qPVKwNa(w$~ruR6Fp~JDhT;l>06Szv#xp<Bb
+z;by&FP1nAJ5$(gdK>Kgz`lo>gIf$i8oLbWQYxigy_)x5Py{$h9wRpr{TYN8$#F{0o
+z$i=4pQp<BZN8!#M_fus<%JuBjd;9wH+3Jwp?whS4pmWE3$$Q&ntu(a`&;HiGbga2i
+zA1Yg$4?k5lK7986PrQN^OZvh#T6Cd`14f<yygc+vJf8fY#c1O*V>-@io%R0rqA5S<
+z0%^oUr$$p{fyF7|i37xch+3n>rZX-$(I)v^jH@8tfA%%hKafZd#XiH0dn*c~R(T+5
+zMGK-bhEc}!kDZR*gJ&o{;(#Y+&BC|$ofxyOI4hd^(K*UrcDKIo()Od232i$gb_T}7
+z8C!~DR@WKX{hsKgf{V|<cZXw+RuF%M^V1tp*wXFtUSc@r;Tg?mDBlCh{Flo&rV0It
+zN`6aZye&L~Jc>GZgcPpVAQd|}9T2{_P5X{3*{|RR3EpIj#OLh-z3%G%&*y%Fz6qX@
+zrJ=+g{R3?!<=f4IZ%iAZe9^Hfd8L86UUL9*bc~{38<6ilcg*@V*96c%>T`B$+ZsN<
+zt0-n&j^~Ljw7o{X(}8zh#XD>FD_(F3#@nEttWD%ac)k<&SLr;di^^9vbfqudW6PP^
+zJk3QI^F|wEfEAyOcNXX}H6Z^*cz;PwnQC*&bOXv%f#>JpnY;N+uvzLjy<F|l_)Hkj
+zjKDL$x+iP<IJPQgRTe29wxP7M2)0_313Jx3Vvkpj{I1Q(uOuhG0AqyV9Y^%Sl#lyX
+z@+X~ZcHco8Nx`sFv2~^hma1B}FB5Elr735e>s^yzxxP9zW)Vw{v7k@V*rs!}-`R~S
+zW}uID$BgSt{l)^yzHuB$+zMCBs-LL(c6nh;%I=6(r|j|{T_56nb?;aD`{{Uo_kJC_
+zraAt0P-2h&N!A;b(W=D#RrGB`8BLV2#Fks=vBh}72c6(43)T0FrpEr`Td(d{v84~?
+z=nNd@d)ARQ_e+noxsNxd_zc_Y&s;x7kuRPm@;2_J`+--K_C~o_SC+qsn0;8E7fw-q
+zxoB|A`k(!p@5lLu{r}mwjM<j^-`)8q@k9FO=UKaKb4pCn2hfx|Fs6gdAKzWSU+F;&
+z6+<5TAmbFVmBM&0F_xx+p{3Tu&lP_*|6U%$$$TB_;|Bd-`Pt1#f?x1Blpe%GEK_9<
+z-C~^~<Mc|}oMJ6{U&a#k@SR%su+gFE4BGUWyZg%g>=U2?kK^0T`u>wS_kMwU9k@5Y
+z;>dN7^00YW&r9y1{f&~>6yKA@73H;R+z;Sd)r6SnKa9?0peJ=!CBGA`w;ujX?X|^!
+z$C#MXHV?n2JOTXDA5gC+eII81Rn9{j?#@|{^KH38utRkB>vHs%yR;s274|@p99_UH
+z9q-GFz9Fvc<_iqN*0Yx&HDB!z9Dm~Z*Vbp(?0Sv!zx+alJsQM0u|*%mfBGm_?o;d8
+z<@jH9qu2NV_dY>txlq{`{d2h2Sc7xgAv}!ZV@SV2q7Gy5POsRq(*B270MCIhr)@3y
+zfZtK~aiQ{&<X*}4gQ9IXbsv7rBZ*sU+$Q?GqENGSg0>st8YFmg!&)uxsJ{QcfatYo
+z3*9DjbHXC}YSs&emh4YQ#?w<5t1%D~U2T2BFSZw02ZQyN`x@}Fqv|cjCuH8_aRXwn
+z{MK&wuzJA&*_qQ%C+YYXf7Enz81+r2vU$Az(gv|*;99n^Zy(-b(N4p8it4lD@*E<2
+zH?&N_p>e)D7O5D*Hhsy(+Cbm>Zjioi7GJ#XOlE__Y)IU85^dZT3tvorwZF7Qn`Os2
+zC|=w*hD-C!e_Hn$F8YznGaq)V{mmlnGr(~Z)#IieX}#vv1_s}h_)y}99}ypB-vI3s
+z<S-`=9$>y$+=zWWZSx13FADY{Y2yPqb_>*pavsqaX@H7Jk{TfP^zo!^Lvm2$zTxyh
+zV>9QF;OnVpC(5%9?K@5RKs4Nt0AWC$zs~i;ri>|SbfuXO<H7_qPCUPTV~+g`*Sz3S
+zyg1w9SKUfKB>sCkU-GbD%2-r!=jt*4Upb_(h8#v9<<fR>4vm|zzQ_UEQKagt<0AcX
+zu%p+;N3I5)cptQgF&e6n*Q$U+Y_&-bzFw$gE&R`CZ@pXDZ%90`p!n;FkI0YjmVJBL
+z%lO+v!GGXAu|c8U0ldwju;6i|^Fj>?kx`v;U268-ee3-OBe(|jn?m1mAL%S(KyO;8
+zY{qHxpn2hL+fI`)fp_wK?U$(WW=e^#Px+lI5_h;5yIEsDO+uYKk$H(-qVJ-;$;-RR
+zKUazlSm7Hwj02XA|1_BQ@{Fj{G(v;VQ8AsIHoq<Qg{ZrUGOlI&gr=olLAiG#@1+-c
+zjYgzP4;cCT-f<c$asHQ|=L-e}<H<dS|3ADGB_%(p{CAS7|KsV>yL0?(aQzs&P4S)R
+zLbYbqpdK$HkARjz5}#-M-Rj<~`@nmyP<!X1fTG2(E>!XwJ01#g5BSV><U#!=$IwFb
+z*_jwW3!aQg{B+tfaeu%y_iuNr{*O4+9&Yo!D!&>#K0C(-=*O;wsxOO-2ZRS3i|5DQ
+zr`|2s?>?p9rQWj)@Aud17xA?t3#qGq*m8$k#IKw7u=HJ8r_0Yg4={!e%Kxg+s2S-Z
+z?t!AKEqCo|%HJ_x8pO|b$=wpaKH&v#BD!R(`;^JwdylrQ!FV}N$E+$8Iny+mfBf$6
+zkbkq5)la!wjlbo1?;q$}%3Hl5;-D_ocINTqJ@=}%zxM8ItOb4--x$t(xffx+4~gz?
+zM*45W#WEhY-dadIf_U<#uZ`Y~J5;Q}dH3fV7o2zLge3ar8>C||_8KGp;WS>sy$dh)
+z_Qj{PG0zGYQoh3YuPxRK3)R>eb+78*KL6`**8du`axq3;Bk>x3ad$@S87^9w<*Dee
+z))xar>mS6|UhgFt^HOZ3(0_lqE7LpVOQUxkWetYd$E6tilCsywzA<{8fq?iLGG2vY
+zD9pN-q%Vuo?r=x(fN0#s*n9l$P}|O5&#%+y@2_o46kh&R*^hf8ahK?OgPT=MVSIaY
+zMq&Dc7Cl+wi2b3YAod5wY?3$<GS9nqlO{cz>9eWZun*(tAh8!PCTIRE(|h>zyi~qv
+zq+HP@$=!W6r88-x;48|(dG?CUkM@1Z+2>OqMZDq8V9Z*LcH#Q^c*u^e7f&*7`p&!5
+z_lXI9tcp>PHs&l#(6-1edz95eGdYGl;b?-sntXRT<pZ=cL0eKzoNq)Euiry?=N~Ok
+zt)hE^t4iB|V0~%?V{PJF{qM=fwY;3;Xfb#!9BYxf!1vsJv5F^1TEy|P5a$js@o%5$
+zm3Wp5wq1htxG8lrbx7f;*f{RJOX+Uu11UHt=4;6hQRaEX!#Ktv`Uy`?tho7j_w#`&
+zCgm7B=L}JHRiFCRLWP6i)ay!kk@6L}S=&~ghySEse&qYrT}mFjK*#zRHc8<}62BtY
+z*_2}3P1~k}vg$hIy@-0xxWWjhOqlwX`J+?}p^%O-`hD56tg%iDEK9lY-6eM^I#cb8
+zd4@{7yvCFlWeG{VRK_y{e-mAra2wN;-e4W=2sSXrE%z0SrTtTUmwAsse#C!a-lV_t
+zb-o<8cS$_fxe5C{t|7PZJ*<5y#_SR+4{MYgG$a9f(*?TOjsEY{m<2W#txscV+Zepx
+zE>wH_D)Nco&na)O3XxxEv)*5*_FAOz)Q`5_nZ+Og&$HnMTxaZr!Cx7+UHzlZQ2h7w
+znfGb`&b2?~-lInB?Zl^Zp|V9?6u3C`#qkPDf--UP!1K)^)}V3V<@#l@>`K79gmJwH
+zNAkDi*Ay0?st@BL7U7(Gi<1pwZ6MSpHeW+U-ri;n#P<ecUgU$18h~}l*mg-`K&?7D
+zLRF~&5v7NDTzqQV1jo`N<G)7is`-rA0O)&*@Z7g|D?Kdva0_knG1@yXpnOJ?cZ&SR
+zT0t7UEuQ=>eR4FWg7a<_M@Y3zn^lCePWdUHk0y%Hron9&3l0Y3!jf-Yf_b(aX#y4~
+zj#~!`^dSB}e6hk$8pIeA9K$*uCHmw&7kJp9#$(LW=j3hr;e1@5O_Vwp`ILT!>v5UJ
+zCt0ZZh2s`V?6Q>TcTL*NHwn)i2rm{H9%B$3)O;uHcDUEu8;B|FPGhCzL3=Si?c0N*
+zsZP{=r1m=j4J(!S!odRT@c2BD(Rl+3tLJGv-(TO$H?#L7o`b34coUnYIjG{r9(Olw
+zrHI{KAUM7B17LYcXS_y%@MMfv$+%5?kMC0^-2ZOQImS?J5}Hll2?O=3#(ZV@S?00G
+zgZu!o*vhnz-`giFPJPT6?c0>EfZbQuo$ocafHsca3K|G{dEyVf#-kStuSR|hbR?c$
+ziLoHQBWSx3=r`hg7U?#<5_Idi!k87pvv*_OKRsGw7GW>7ag)a0ni#XzQ!W!)VFjrZ
+zU`%Zs8N0m%N5<(c$68v1bGAL>b-#hR>D95M-9opry#12}4&1}I!@BAbEHs6sT|GQz
+zZNNRlLu{c2E5vn|b57r%i+6v4`vKf5(mph9#Ve=%c=uubZaMDXJiyU=8uP^YH+L#~
+zRM}5ZwypOQD+f7by~*JIHfPNG(Cg@>>|)E{nDyEKhsZ9T!}-<$*}X;jj!ZA@9>iBI
+znx)r_o7#>%%CT?$@bq~4<hvCOEyMTgojH6b`uLnX)x8kziM$c-tzD$~PR#f5cT!*9
+zhCXSt`f0n5N<720Cp0W(4bXW9@jiJ-)5ZZsDo}H()UTfx{c_Ip!ZYDsihBwi7ZAs<
+zwjnk3vWC=UvX@nMD#RkX>&`x3p$$88WIVJVd=>Qf3Y7VL+L)Tr#H2u-$Y?$m+k#uM
+zj)YQ*?oTbGpRd><VUJyny{bpzE@JHnZn7pt7N-KWf^#ak9F^L~#HZsaP_K9V=SFWp
+z#}_|G#}^NnO`gp7uC$9bemY+407Kal(5}Tt8U=pr1oN#vn%+<1o@Ra9Lct}2XUn}8
+zi*5^ka*QMR;%;KH+c8p!Ybic=!5789g#4CM>D@Lsg7aig`0U|~;Nnsr|9U1ft}|yp
+z{2SDHJ@|nkXyZ7s1u?(MG>*GN@XOn*Z!w<A3|_0XvCCwP{PQl_sjKU*oa@v@orrtY
+zn&<o0@92FMlPEqXU+4kjE<cI+|1?r2bAquM$5)Tdmzdw=)Bl103Es<BF>(Hl^N*0C
+zI4=R8@`Fjr=5*swqfcK;d(`&3GCj^qyvBVRE6vY6d_e8zCfup`*;2i>Q!hOLWj*W8
+zEJml%rF5!JbDj9Q`z2mTJlS;uY0WI|c}f{))1~7vyfi+Z+!uVA*LyaOi6@twRhN9J
+zocu?F;QxppBys&TJ&d47ZyW563YHtzrLp7%hbZ2xeu1(>@rrEdav8t$Nf}X~+OS;f
+zSV_Ak=rxD?yD_L^nZ!+KvP{NUKw?Y<kFM8gy1ra{M&Q}Z9Xc+gzP=OJO<e!#jy~Cz
+zTxV?gk+{BJUoX?w$&Z)d`bYZuG5UHCb0D4*!+1<U#b~I<dQxxOS_n<<U>ubK%zKB4
+z_8ozCq?{{&wT85M+qthL4~AY7`s3AWB56gLje}}1Hbk~99>a5Eb^8)a=nVA#JdBgs
+zXzRI1Hz3ub%?Z5byv%DHhjbyH`SB%+PvF>p<bz96<Z%u!P-CP_>sH(K_geM$s9Rlj
+zr`o&z7UTQjHxy5>E8LXgn%Z%CQ|jb%)Y`+f^UrsP+*^1IKY4WUOJTh~;(JfsrFaRh
+zIkcU<QDcH{!GH3;k1kN{$u;^B?SHof<u*UTT*#?w3yzQL`pEuAFr?y1+8yPIPee=i
+zeR`i%hP}DirD9*`*BCFvo3&+NiN$J<yAAuSZDD0E_o|`xUt2UENPWY3Xou%={>%Kr
+z`Nn|KN1T19@)IXbS$3Dwzpy>&uXZNx(H4)GmW;z#5-hTo%X@9s>Esdd-;NU@`V8Fr
+z{+&vnA$SXdH4(FB>HZmZr?P?aX+6SB{4YcOLSkQ3le8p0c04@+<zTz9%{HRFo<@2e
+z=^dock$l**9fx!fZEz-z+_R0tvAV9Gk-0#}<i!5R*(^LIZ8y`;aBZ2ewtM$r#fO}z
+z+u5^N@P}N#)4V;`>*Mu3yytjAUw<0cOYZ7h!vtSw0BH7W+V0?XT-z3WE!n0qdm1v?
+zm?)I3EX4c7_4b-;yOkZqN^3r@{S#x4etq+>?v`PlS~X@^!jJndu_ZYd`$@F#r?EAp
+zT{S&U<7p&suS!9rN~AKuq#Z7?MZLsNL_X&VrrU)Q)7C5V63@6@iGA1u9V$@v1Uz>I
+zS9L#!G7zIua19)5yRXFm?YLKl@x8KqXo5T|<#FD?N*SlbY(C|`<ll_<*6IA4b^ebd
+zzo|L-PsD%9*#bfnRoUIfFpK&)`+tD`@wo2}3=_Nkqpy2$opsI6y=SO<TnF|!u93Fj
+z+QBmaW`XLDLjjIIUEZSd1Z6&@GJmg-aa@AAkicB<-l6EnBOIghY%oC`2>YYI@*@@f
+z7iG3X#9sW0bV;DO80$^(;|6W3K}$eeX^VBNjw>(xXP{YZfEYjblLgAQk@5BzPkMlU
+zj^oIspC!!&V<oYPA~;ViP`*gn@-_=j*RBPsefyz5sxp~pGs~Xe6T+OBh;;s?iVkr;
+zU5azkj_Y|1X$4X<QY%tBQU}tbNWZ3x)>Js8>nDhAQEZF2&T?*@j<NCl?OJwbMhD|w
+zvBQ`_-f8Pj@oQcyvQ*Kr-<kER7Cb9lKkv@0y-qdO%<xd9FPj8j@Cn^6e3rPB<Mgw{
+zza*B<N8fTkK7)I;_nh>@#h4PF2DGH$Fy)Fhv{`zVHYvAg%%jtoAD)XH?vuGcyC+C{
+zG4yS4c*3tSh8#-Py-L16d2RO=E$cZ>m!ZFw?{JS-bZ4JTO)xI{iQO#YwQ$|vA$rl=
+zd;db2RvuQkw(dENiGa4N$cx%`W2<-1zfIx&xrD!Hw{E{(jl)A2k3KCkp^ZED?vLm6
+z`Ch57!aZd_{}KK7XQVffHX-fM{m!wl3j4fV{R#KClwIEO1>>y*gwOG5KG7%kn;q5_
+z1C_qS&^nLPb>E+i=L*D!A&_=l7<aj~?uGjW=g>s@!hsHD!;Eh|x=`UmIt&l$7frD)
+zlsS~$uIfyE+jNZOo9>qW_xZvK<I$(%db-Vby2;bKLiJA3@r2(Ij79cG`YyIfjl|UT
+z=@?#IXa0GYmIGqVYz}*k)nRYe1~#nX&6CzXdWY5#3)agfhsUfd;CSa+OIh2kv>l}W
+z2=6V#9z28k#nCq1=&$)_io7lDuB}foj(FscF{>6d(uX;-K*!SKShz`Ju2$js{zB_d
+zN;r(=DYn64&8N+#oI`NorX?ecX&iXR>d$zi8yj6U${)0m@r>N&8V|nVxlF~EZDed0
+zcjp?<#j+PLdR+KFP{%wf)p!Z>aDJ+OegN}~H@e0XlSyz0CyN~F1{^WRe5cF&TVuV8
+z{pv!AEw;wmj`KwZafsGfZ{j@4ST#6*9q09oC4=+h^?Uz|YrFJ&ui!kP-`j-q-TJ*Q
+zobS=^J&*IfI4{BZvpC<!_`x{;6V4CFGb-QT>+%Hj|KIhMN&Wu~{x|DbXsjdVV&kpm
+z@BU3$<ly1)<g4@xGMxz<Q{EA8OuKJgmhgn<CGxc#z8w5koA4q^r@4UqA)fOJKXG1)
+zxOy5Z`aL7MM(lqZ6ee_<I-|`PbLW@E)90VwB$(TGi#)9~eK-99F*l~UF(+zO?1^U_
+z9b)I>xFd_##JDm%XUsbK)je{%vYY3epw7g{|Dhe-Mx-HOW59EM_1v0cD{EeE4bw8T
+zVOmz|FsI42Jnct$^9fC<&BJ3BafE*3QgTdU@I9mBL|laD$VWUgp~HH-P|@;tHLrWV
+z)+;u<V%BrG|JzRu>Xy<5c$G8o&c4sUpX_%U5uFz1q*kQ!-=K{xXh~v)@Y0iLBNW29
+zxg=H6wIXFCBo5MtZ()8>Kf<=0-?b!Fn^=-s7+#WE6j_qG0nhT?BD}jGv?Mi;c6s5Z
+zJ>C$;1Niztq{({eHno;8uBkH^N;wN!x*2DYw1+m<iBXjGsq5G2>)S>t+ZvwBHS{av
+zw(Qe%m+iI!yj&-)U8URY55z4-d&HesFGP<~Dsi3{YOE{ei`(?_BHC#Wj;Yv9_#ef8
+z87H)z!vA_5i>4gs&HCKLxzk_DSZ9UvE1HU}J9I2XW2VqKC%$zT{l9g;EdcEiSz|=;
+zzFc33U!8|_JHIoYJc+VJjKi`*N3Wsf0Kag@(|fVjeuisN=7VQT91=?#yht=rU%@?g
+zG|{Y&19IM_ey=~}S-7^G??$QL#JkPv-4*(sR((7?IQuT!hV8bU`9%~K=)xB}tZ*`>
+zV($?XwnFWXC`$^17a16eJI+NO)kTh8V#bgz69d^U$4SU*46g4pUQ06ei2aQqt_M+u
+z66DX=hUGXf8`>eUl}wx;#Pi&fFJR2fF11%@TkM;Id~nV-s1B*UJL~C3o?~&&`f=}7
+ziF3A32uIen3dc$uCz*`#(qvWRyJPXc26<Ppj<`M@=QTLz9(fkd!#I!N7{PHKj<ayQ
+z0mpf_sdemDjWfLq>sbB%eB;f@UL$XWVZ7+^8cs*P(Sz%sAU%TgEz*}ri8=Yk9;BPx
+zUc-;)FDdmJgK>0V61SHA1XDaQ{uKOg`sfewFJI|A=g<?MzIDkp;qj;Q8QSKEPc>!N
+zE!J4@Oe4XkjnT3Km&AUJJC4tsF7nHuzF+no_bF4F`UmirQ@zG%;6n;(yvE^*ZPqj$
+z-x1FgWbl83{ty1d#rK9*#*;(Kk+xtwQRW)#vYcIA;1|0r^<A#x+bC<pH6$<oyQ2vg
+zai%cdT>fZ+&(W`*wpcuVilZOLZhia+N83M|_JN-ZE?ujPS6gnyJPx28?dQJIu@;ow
+zn36fV8UMhTs_jgoVw>$WRtmn4^5Kt39D)r~ZGUX-)1>vOWjVT4#uIhwbINaA`n*th
+zAsr`$KH>U&fapuI_;C69oPGCVCMTvS=EI9>e=4|Ds(wm7N89LakG+<Z80S&)ZB3So
+z_-Mmo66b?^*AmS$M{vIGrWT1M%j=BIDffmBPsC4YvD$BH(Kg(#SYt^C1J@+nIOkmU
+zg>Fc!Wf=nXDgJ*L=Z{w?9pxCUqofaCS#S;J>Kd8DEl#(>ded>$jwvSXoh-V0M}OhN
+z$GOiSU746-oLJgJ27_z*=0D%*hj+wpJNSxa-;?XK$-zB-PsRXs=b$U!7V-I4tTM6B
+zQP-)v{IZC&gm^9QSdQ^^$?@i<w9~9hI#EBD@yd7B!KdrcKc@~>(f?5g>To+%9c<dh
+zcXk%3I^^j(_;k5=|IMQRti!9g=J}2~yn^czADEb=w~tJ)K6yvgClB?Z&O0A<VxAkv
+zy=vJplgDbgahchSax`P!H(M>v!3iZ7r`^NkBV^>1oBM;&V!s*n*z|z=OVWJGh&bMi
+z@JfsI4hGw-GU`FGCbXi>$ZI@0$kD6p_Lj*QDxsa0)_n&9ZPr7ggIR9zT*Vi|ePW3R
+z8ZA2>gkTz&+AfPeUKra?{H!tM1yASgT&wX6)tV{34JO;{a`4-4^PY>oak%G@7=WTr
+zil>|NjKmWIqbbrAu$zg!hn0;Oc&<i;?Oh{rGid)}MDH*5YPqoZP!i{v`@hK2R0+z^
+z-?%)P<X%q8qz~%0=Deh@Bx8GuPN0+JR<S6!&Pw^wR@6xvaq8^f>x-*5NOY!C3&|@q
+z^u<_Bh#%A!!3RXQr{WMQY{chmyl=F_7oi7aegA{RZfH%=7RE4tDSi%^^9hIfSmKM|
+z{YjSH5nYZlEKRv}3}lxvT`(r?@gnq2VtmG|Z@@>o#0Kp7Jx?yk^f1O4?Q3ZFByAI4
+zX&u5^GC#1^y1`g$Ev^A?b!9^`TCaEpj$aSP?=I8!+n6f6Lmq7dqDrnS_{?~pzH_a$
+z^oKKgzCJ;<EA@5r0;&)AzX|_oQ&)&FW52I3X5&fv%Q2t2TI$l)S_=%y#@1rYueE+w
+zOB<xM;)hH*SOC{{=50;>qFl|hk8=1VVmRGatJd)m)b-#!Kke~RmsKu*f*AUgN#BTP
+zXt%;P3!OX27=%ssQ&=yyA$^841nZ`WG*ZjEM`)iWuAk+M^Vxqg&sUDkxlY@+skO={
+zt_JUBsKbpa90rA_yeySp(cW#xCE~cGY{f<2dgIyz_4}mNT?0Ais>IIA&6pg<f^=TE
+zuA4DfBrXodj62d{u`MY-_vpB`+^680i}p}Xe22K!)Qz21%ea@|u`3oQxc8!+g+EwG
+zncr4k^P7d1C%7ab7&D-aB12R*gXqU;j8im@`+Vwd=;xZeJ=4=X%`5gX+pwOD+@}2J
+z9NMp;EC;9MCLPl_7?d~~oC9y8pEjvDk#&NVHiwu|-)4IAx^`IQ^b17)<l{W3^f@V4
+z=MKwRy90A@2YuWuPjrX%zlW90&hBrs{>Rq0DyBmb-U~>(Rizl4?uEn3FO4ze%F$or
+zBmR`5zpVX@`Jl(HN>{3XxGq_aa*hw>i@en%wzA}<X9(7EnVi>%y_O@;nA(N5-Fb`h
+z(e1}MfU!sZ^zB;|Hhg(N#o^|Auiv7+&u{a)AXbem3uTmk{e5SsE?J_#!EYDI`E(Ua
+zO3p9u`}Ta~|L0qjJrl9bXtNNekM1qXzr2JoF(nRThxNN#R9x#a9e>u&Gl>7p)2Z`h
+ze6z>#>_|H%FR{DP#}?AJNQIYsjSDZ=b_#g*p<6ONcjJH5)bR*IT%%h1@Q#A|ocrc-
+zeNKLpHli%+{kKr&+iJ&B6zsM7Td2FpUZdafeYcPvWUmG3qsw=3yt+1v_ssG>i1I9*
+z>oraV-y6XEd;D^R`Fsdv6#Eyw7LmT}l^7RILUYPMAA-0x5BWavU}I`K?)gDyFCZPk
+z+&x9+7S@$Wd$BuG;-MaHxQ>5Q^{w)E=lOY*nRdNn<%Qm{#s@IQ7%K;BJ$>3-fp@H~
+zE`Q2juo(0bV;KL(cew@kPsTg%hukSQ?w9EJ#6_Y91g{WSmZ~B>#B*n{Kg}%mWqv??
+zn>uUKmlCcIs0;CN-^98=`xARzeiiNU4bqq^yb{~c?l&{1uWrU%sWs|T)We-|i;637
+z3f2+6Pu^DIA978hzW?S-&lY03Qy&DLvLqf)udOXlaII*c*=nt8Y_;yR@lBUKUqW9Z
+zjJfp2wVR3CwAF3yu#R3gDNCsYKftj`T3<r_$ep4ek$vjEll~?&f8Dsn;=|xImx=87
+zQt`9hi7|e=;L(zwAg!@&DjlKoQ)?HLC%njeoljvx@ZJAK`B)yd5#NzG>0vy3$BBt`
+z7qwXdiEW@{s~tBhT#&yV%KEmwbVyx$CFk0UhnVNfB0uBzJZj(YUf|+2c8opWlLMEf
+z{&I-^EVve!o8WuDBhCbPv~8&4r@>`h&(h^*{S7=l^O(%Cz2`8&!%(j2aweWQZ3)KM
+zgcR`|Sr=z$S%P{CQ|MlmJV&1A7M2^|DUldamkT~L>nr<+JBKIQeZ&=de$P^k#a@C=
+zpuIxAj@=OGviBI+dylM3&~|=Z#qdPoElS^`YyoZ+`7z@%_%Y_(iH_aZa^IH|H|E$I
+z)S9uv_5&4r!+83<*BerdQA7WOysj0gU;VrxwP9dG>b~(9%Uy=$q)!U2JK3i?CK>0Y
+z%b3;2SM3XSCH>f|x@!%~8&&@4#OvZaPji28W=w1qCFUvP&LI!Xoq`+ZD_a9pc|*Ro
+zzneF|4@+%>1Md_2B;ko!6&NeKJTZwWKjUVluO@#r^EMU7!mIslp1B=#z^^cS`9A4w
+z`?o5F-Zc)RXPt-pT-u_y^~FS9QLKEw%CL6*<0o1_ZFYD9W`l>mJx;&uUwk*<-ElW7
+z`>081uOL!6u_TeEBh`o<WP?>ztaN|OGZ1gHHtReC=080guXxT=fOEX#`9fpJ57oFI
+zeoM!-=@Q;0`K$2{rd$E?B5!76e+A#PJo3LL?FiJR#s{6Wkrf{YC;G)<gdKjygh3mF
+zXXN}Yr7V(jq;m|)mO!4yZ0;)xoL%t(>ZRSaYm$=!4W4kY!BeH%hGT1zK4&}D=<^Kr
+zIn~_1(6$7;gv71XcAtE1x;`Ht1V0pPkhY}^n7-|cf0EUUd37xC$BN>~B|{bqPszPQ
+zQIWFk;CpxI=V_NzVm1|XedV|tgR<NZXwbeu@pOswM_V!XMmR5~?a+LDyT##3?96*P
+zxuKjqs8eWJs6fdyLuQ+Y_HXDzPo1VEtG>zVz`537KTx=xv2tB8>lf&IFp$(G_gsN7
+zbv)?x6X!GthAMe4SEt&O8}xI)e(GrY`h<>Q;nwut5x75PBHv%4j=zvS)5BI}GvjzY
+zAbLpd6Ccp!S;Tko>|&H*4QX4n%{t4N&hhYG39*^I*h7j80{ceruL&pSN~kXJ;7^oI
+zcagc-qAqwo%DhZ$zT(LR$a~vKFDK>w>0CQjC5+m~QX9^xPwk6rN(L|=kH1afBCYq;
+z%bt|jn(IqjrB4Is=Uumv&u<g_6xNfrcjq6bJtpYe^x+cYZe!^tD}uf5JUriCS_fL$
+znp{^Z{@>y|F$LwA7izE~=nMP3_4l+`x7@NU<pd4Q)B3eZx-BGLlDYjq+E>;rd4E`9
+z-8i*3@CMq7cRFIl>n>X2@r!<e{Di_|wx4a+&$i<kvG>OqS}%B1i&N*I{q7x)atQuJ
+zO)?OwA547Vqu=E|nBOFg5131x?KdqcZXdVAb98wGFCpi-b$D)F-*dwgw4GbGp+zvx
+z7=wlTT)Uo&Ga0GpeK-art~=hTQEQ0jn{0e3kHT}?dT?Buj6<6*<o<^IRllET41D6+
+zg!KN1ILHy=*w%2*@vNiy{*)VhS4rmssf$qG-~Fs1g}qW*boe19XZhRL*}1~CF*9_#
+zwGjCqF4%7Eo3F;5+x(kl@BO_pPA*S=taZ8NIs7hd?((rlT}A!~N7_r>i*wpby?_or
+z>`*pqv|W1y*FQx%cDmOHAzhEO7U^}QkC2)*-p&e?<#m*U7?#VmjgHv$5*tPM7s1C$
+z62nsDC|z9FCMPf7{F1c49g|J*K3&OaIA1-c%bI2;(ra+^iw#ROQ4&zL)-wlAPH!Cd
+zl0`fK`WbE<*Cjr2lmVP@IMZ|946m{9dKELwuG7LC9PKc^^RvsAN?zPw{Lhz$?Ypy;
+z?KS#lwrL3CaB1RT1!J`=6>M?Jpbl1ac~pGOh7_?xjWB&mc38Rkvy(L~{aoXc+Su5(
+zyqDMB(>&uhHrACLU(I;CFXlA)2*C|%=H7QQ*OeCV1$ASFv5luE(Uzk{HdedJDj$sf
+z7_OJm#xM|f5L1TOn)JK=8RixBFyyz1M?*Vn+THh~EP?UrX}270vaUiO?#6uly)K(i
+z>iahj_F1U&OCBS*49f|4xgg`do-1(|Xw%vca|U%^d#b`o@%;eDf1_{s-{?dcI^!;$
+z<9gv}EzhpOxBS@O%lZqxO=9H*>94y?$=@*t_zn77ftOo*3G<Gq7y~Fo;|2In-?NKx
+zB);QBWhd5iy|$-u3dX<`vBRg{?#J4`>?cxQg=P8mWsK2HJbWc%4F=bE%FH#M7N^T-
+z@%s(tw=;xxWlTmKhY3x)QewdvUGoRKj1>u=#6QD6c)p73;4q2lu}sMY#UJIZz8JY*
+zN^EbT89v(Wa1Al$tM$;Q@KZ-)E)Vag&g*P`fc857#B;QnFVl0`adAAo`RaJG)lb>R
+z8t_5j`HP1pxc2_Sq`s^fYr>;4#%EKWiFSTN^S)CtKO#u<-=<v1*t+(tyYYYJ3>7be
+zHY5^rTFbR4a}rx~?9FCmls||g6iU&y!wkk`Euq}Lr5rSJTuUD<bZRW40LuT$kF#+j
+zemz6Y&1Z0=t)=n<Xc2wi6SM0imV}q__#z2yx50LA>x)nE(pP=@Y2h8{f8(ak545!e
+z@6mqaGogLb*3UWuOH<ru|MJJm{%HjF=H!2ozbnVSoN}KR=)XdoJ{>>mUnt|}|9_UV
+zJzGxS|Ce&!n^VrK|4TVrzoVRkXR5u2du+_2PuH{$lsuqB;(x5QR>emqsvP~Tx{7$R
+z(pYPepIQ|UCPHuaw_MvUNgPXF5Xbhd>#SqVrqnMc#FLM$j3=uL`djUd&DQ+|@npS2
+zY@^eaFZQ=4A+Ip*NvsreSD&1?YUmKFKA*IHNvaxkc@O)6aKR8fKg62-HSw2*SS5kA
+z5_jPgjJ}bSdq!*-q8c|lPuiMvg;$B3s0{amC~tY!TC3T$IKllH_hytKJ7t`seFBdr
+z3TI!OI$)faj0D$O^N_zIu_{R%k;?E|YtoBDtcJ<)q{m#5s2|$U?G@j;I%~jJ*?6e~
+zaUM<%kyyi&O?rY43Lks_gobYVlyObohH{CIpyuJeJ(zv}@IfV;<GXeoufo$<rgM|5
+zqsWJv<AwdADyD?sjo|vE2}9)GPNSan^@%JO->ua)PY%JfB|m_17Uo!MO*q28O!!$x
+z@DHs+>k=!^7@n9kd5Co|*pT%0$wy`|&fT+Oe~7X<%48pz+<Riox^U3NsR8p<{D}>(
+zH>Qk4JUteD>P1`Gdj5f+11Af=yiRbvJ)$pMXZ2J52H?%`jc9wqXnrC!34L0H{ssS*
+zU|&Zn`b+#bmyG|Fw5xj?ef~1v1;uG3Ps(?kW=l8oCZ?TXE>76?_YRcZBlbv~<08*%
+z6l^k-ZA%RIvA3d3fHoc;?6G#Bo+j$=!Fv(0Z8A#7pwInycNS%lZ2utnj@1}1zXm;?
+zoOJ2@y$X}CQDG|=C8yuo-%~TEzxc<{E;}D>_MAIrwcVuJt7dV3Yx>ImRt?6ABUqjq
+zh;Jxg9_+~+?8_N~hu|^>C%uulqhD>@L3=5C40uCv$C#l*xJPvilz1g;1^bmc0#A-D
+z!@dEIUjFB}<~>I!3cm8ZWDk9Rf>9Y`7mmL;rDS|cPw**tP5DmFd?NlH#|m{dc|nX@
+z@KyQdV~JIBmL*o+esUsT$$zC!^2k?UEvF8sU#-}wrEAcRY&*Y_rIt=dy$2ds2#zD$
+z%wd+3Z%<~7!t{^nU#7<o$AeqhAH63$bbNTC1ao-9$MpN0j(+&x)IQ_&WJI+Ku`NpH
+zDIJK89UWKm8}D*{JLuDf=h<gYj5}BJ6N$0-hPO*}AM{1-*%s_d>hak)Q2JId($|_3
+zhKNsRKYMJ*SP_i$M$Rkjl@gp=g&$v>a$#;A2wj@wyj%=gxjk6--FZqLIeALE{NH(!
+z|E1i<kMZ|5$E+SN9E;SokHOq=pbtP(*G|G7?*oiE(o@<8V@|*9Fekp`H5*@U(6mGJ
+z_~%^g+-^*CxG=5`L^nAG{~u%ON{$`T38GzViLnd1`8sLTtI6%gq@?})WIV@bcz@*3
+zA%fTE6d#o#(m$g#*3a@Uu}>8|V2l;e7t)n4Z_;D%|HD{6<G+mc)4yY^6GM=?h%@c6
+zu62z3o_xbpW4(1^L&C(^m43jOXCL?#&XVX;Re#mUcrP4yacX-gl-w734eK4ol-Q{^
+z2~FeJBCq_vUuOHlXOHP$3{QBtZ^3(B@YYorGaJsSOKl5oN>VpN8S`K8UNy$bAi=|%
+zruWg)B<^q($|w139G<8|c`Caat#v(hR{zR)dVjPLywh51-_otgW3VT=<@9LE37Us?
+zN(Tazhc=2%{ZMJ6<v(ky<?Y{S9XzGc3cWd`&wrM@!Mv$nqYAviB}lg*-9J<5H0=G5
+zH?$h#xJK_~SNHL6g9UqMwe=<TGa{p&H#EWTZ5;O^=G<!QmaC(}Upm3dY`7GAGqyu;
+zbCUSj0ql<`zxH-5wbuI<TkSJ(j=bu`S3Q&>cEa1=Dt?qa3vuMgvs7t4+oWy%t!fkN
+z5zfi4kXIpZLcdiW!v=VgujoVEBtCvMf&SK|4x_X>h;<0}C^rrpL!^C12K!qf<TV~^
+z;K<MrD-=fmf(IKJ>Tj9h{&;?f^#SKo0DT=^X;Eg+`oAH24ccBzEqqnWKDLs-2@DZ=
+z{FlhD3f~jmz0*ikn?tOu{=P18=nL=@_}+*B%Tb?jXEA9SMV@T7Qco&6{S{bWOgwk!
+zhD>i>e1}zyGL1KVseJ4$DaQ{6nys#&ug@OEIiX(mZycwsLmx}f_L$$N9dcP$i{%OL
+z5IOb;<U?MmhGizt5`40oe2Y7<(#khiCugDEY+hwL+Ubz%VwvZLF3(Psry9pHbES<@
+zHqH@jNbPp1``dUQZ4hM41k^?77|OIo-`~RfC|4!gp<J*&CX=?yTDxoF#j<9(xh7Fx
+zgf*#EzxOQPLqAPN`RR8mKBN6*4_=2pZOK!ZwxzT1Y(DqKdM$Dqg~CJai@cVcj&jYy
+zx2trXzeJuj><?TIhsk@ib~}S@-60t#7+>Z!3DObTYK1U{sB^v;<AOf->_f(Ua3`MX
+zb{N0!c6ZTEiCBfRxNd1aWwz9<2Kj?ul>T<8HW^neywfV_Z_KMxYIL5=i+$q`E>18%
+z;;8bSAK)FX$0{%N-brkGe6Kv`dqa61Xh@lOE`s%9{td)E&M9w~F0am;au=swul$Pd
+zS<Ahll*dr-7zsRYJk_0B9{Zhv`kjIFslYe<W&~qzaUz6qM4dY473YK#W2F=8TNUy(
+z(dHw=Du0O=toJ`vn3E>v;7H6t&KZs~zU#$U8-ezxuKqaW5ecre=5hR)tCHsmcJoTv
+z)2u4QesgAv^}C-f7Tf*OFS2^_Azx&9aoV)FiMJn7{u^S8qiI~e*s+P7e<^)(h!IFx
+zM2RD29d`qDu;_o3yP<&l;An#L(j9C;d71@hVW3`1BEe=$(VOOO@zdAiz@f*1J@19D
+zL4UdxKfRW7qmwqD$WzHcmZZM9KGQ2>lCjy*E*y)tY>#c^MSHM)Uq#z+?p24>{42vA
+zygblqQ3kNm=}eH$In|t9OC3J-=DV*~em~6L2uw+EEgFmK|HAc2+m2i}ev5VDJ*2OZ
+zzJI0Hn2Gdrq}P$YK^ij4Yg~%7be7t8)_``OfVFOsj#a_<w6uLCeYxd&8=tL-F>8Iq
+zXmglT`(z`aKP$l-tqKL2+CqW}EV87nT<d5D%WEU)2aR>_39PSW!(&z%<~40%f5)=Z
+z|CIJZ;ICGlu5eW+fu>YrO{P8V6R0zvF#;>ao^&kkJ)(G+<ZnM$y0EpxTQWMV75LA*
+z3{7hT+7_k&^VZQno-W99^w~8X&BwU<J9@<?FOI(K%wFd+hkOpK7h+T0!~BMx5ntT?
+z*aOk3P*a;X9$(q7Grkh%4XkI?xiQO)wV8YTAluGds@iK<Oxny{8<KXT+>g5Xd}C?C
+z8A2Q0nCUGVrLgD753=p^!*RzTjw#f?l33K3vyLvTkHn$@?^caEM+|N6-qmC+!?>rN
+zr9n9y=R_dxG6PK_vybBcDZ#jFd@x>UvTcLfR@3Q9j70wIn~@lwT(8A<GqgBSrsbkz
+z?RG`G`O&6-^*98lXN;l7h{^l>ZUlSE+9y(e!8M+qme@5RWp72_Ev3T@Cp>`{WpD5+
+zpW<m{zY|%VaMb=fF-ZG;4f&ig?o|FI($B~{{Dfd?+Im%q!A0B^9iQGAxjf;j{aa!z
+z>QlwB7<yCMfqDD@WeJAku0hO~Hb2O_TH<9lS*G9t#MAWEqn_#@)}VclzLqQrH(6z9
+zTMznx<Es+S?*V<{aT5E3djib+N{q=#Xw#9ppS-f>PDzF_&qo+5En5fh!ROhyhK%1=
+zLz&=Z&+plOeWs@-N7jGZC0^r^SxU}#$6H?G9h|?9lt9{xH25loQM95WW^LDemsi@V
+z&Z;%AN0WVJll9~4)c39sTB&?W#>ifmGRzJupL@d_vi|3cEm#yH?nX34+c?_Lv+X{;
+zUdaFl7!L76Db(X)p0@FtbFIo_fE@?DKzygupI_hSw?_j|xwl7QtE4}^p0S#1sh1tC
+zun{|~g~VqV;IMIcD4Q-_j=oyOcuM%sd<^Z|#kC@It&(XHr<-y<k#&Y_dw_b&r{hTW
+z6WrU5KK(2Gyap)y%~G}lu{!_s<4o@W8GD9r*XQI<J21au*3#>!8#j8MKCI#_dWo%~
+z?0w#=G@7kzK{vPH`Ry8?iTyVL{c|DGETn6A#I@>``Ns8EWqsK%*S_q3$*4F#WqRBf
+zpVO48M;}amqbWt5%(T<BpE}0jpzD;MI`&WutKl0Ya%;@j@Y{mr{Eg^Uvb33dQTnsf
+zAD?;G6IVd@CD)aoWHP;bG+xd;?aTi0Jk@5@;az@|FT3r(zTK9oMreDe;;js447_pg
+zSihaUG^KUUg$KsHQoI@0MAn*fZ5OV&w2Z^PMtz-M^Y8s7E@qqPkunu8S-(LY598<!
+zwOQMYmy<vHQrVX&9qVc<?<Q?uL_P-Pp?y&=_vmQnZ?7X}Pt5uT$C7!<79to>Sf2Dz
+zIO#^IFV^dL;bYe;TcURK(_fLUW<bWPl$}2Pb9;~n^>=%4qz&l5ucJK@)@B@O_m;wu
+z{<?|l6eifeu4C-Kn6(Q>j<NS}q<`a19BKdf4vw@p+kTz0je846j=62u5nn21y?!0}
+z3F_*e-}CqDGCdWuy+#OW2GY$)tB`(;v>E9=B-hnm;{>F$ks?Toksd+%3(|X6tF@kM
+z<08<EN&RCI_w#1TDbCV(VW1z*N};Q1;+)?%exm3A#{{F`+oD*fqk`S<$9ONgIA#_7
+z9chTd@(G!Zsj6^esyfmrSW|&uV~T52qTA>_FphIGAU^-(A!zsN^iSo!K=#zm{({|F
+z>J&Q#wKp!pv5GRK7ndctk2<XMcy(1~V?#Bs<Jvj;S~ac(nLozTNVBmRJw}{YpQB<;
+zx8U*Oxv{}U`ULt+9R1?s(JB~1j4$anpSI({m4aFBDaO25?xcOxoP<N;!Q4)Ih5Xzo
+z*MTpHTN+QFkFj&<wbTPOS=22Bd@9!8XQVrh*6ulGD0M9P$4_HxZbg1or?`yH@4Jl6
+zIQoC!GB%DrGL6W&X5zdP$4VThk8~Lkr1>M&J?60x=kZfr#;Zu%k#-@C(6XCSjY;GU
+zthE+?rELx3;JGhSwy)o18z45}S$xmZ>VDJ%G^EZajSX&Bx+2iesNg}z3tN6UJV6}7
+zKVXW?!M8|@?C(<^I7a$tuFU%}XtSWXwwSWj1KwCMk_Y`<jN~cC82?Qs(=!)&Jcx0%
+z9_M!1uhn{($1s=sqs<@1y&G|_9?zBT&-A`_Ak(`J*Xs4U`jFu3Fz!vG=(D&s+xrFZ
+zE6xbYFL4Oenovqv`&qbmgE#i_u1sdD=pQH>$A0B_?%}+cql~GjuNP5<fqS75F)K7S
+zW|0rWn01WB{}HGM@85oqb2^-^WxPbOf5h5LeH_YtrLIq1ApRKE&<&u!J@d7#PwuxV
+z3#<Po(@Pt*Yc=Lg#L)MR=Ds{H(D_}7_5nRl{{;W1<DHH9pfR9z@8R5aP_P#yww3E!
+zlnv(`yKAuSzu{0Zuh`bUud;D%F34njePaguG<S4|@N*s=fAXo%^tv8c>a5C-c|s`f
+zA3qa&)Z|!vdz7rZ)P-!bCZT=j6VFoH#tGgr@|caj+fSb>%+EikjNXjK0sc6XX|(Y;
+z_vOW`rfXFk8;?;VI&r6r*P67gBR|4U)3onrvG>S_ZOn@m&l8Nunq&ZVV_b5#@v^nz
+zvrMn{!%0$yw;bPVoTul@uZAZC%lwp0mJ8(+U6;1s1dXxA?^kyGXMUz^E5msAUc7to
+zaHeN0`tA!H$AGpRIIP<HtQ%<Oh`mmpq7ff5o<+rW(1?kt5=|p6L4R-_&p*v&)Sm7#
+z)+1G$E@PId=J)zh>KGdRpNZGE@%|`9ANG#Q-ZPQL<~%ooeS<dMDRCm!TDKh3bv8T+
+zPjh2}Yef4!4_UuGp!)fB+P{U~6<Z0f_8qSHOkwc2b!;Q)AKf>Cc@S8hs`A9FGtnm0
+z%|0=(q0c|29Pf^NnQJg{WEIYdV2pszVNB}{=iD!HSR-^Bc>c7kC&e=6YLW^+fHIV6
+zY0wH44;J_G0`yOy4>$I1pD90G@(7O4bluix`*SVILpwj=7wHEYP<lJZN%8d0zhoS#
+zwN}VzRDQTPK8X4=X4MM3$5;=v%QjH2-~FsnY<|9H<C#X+NUY?6+TVd=J?vI7)eg+X
+z+AiliyFZ<)#<Ww%wtt#@aww4&xk0Et6_9y8E%{L<Gfs5&8p~kA^=jQ&&$Xz}W@xS0
+z3=vxbW4w<B(|3~l<g0m2_xCK+;{`o;yIe63WunK?7dVW)AZ^@!d19h9UY=MtuFYC^
+zN~_g=6Vg3x*1Tv_YTdYck#np&r9ph=IBy@Er(*&J)gF&?N7`RsTRKnKIBgvFvbAyC
+zW@`cH<0Ja}Hwg|wIQ>B;^PVTFbU-DY)JZK*J-q(=iH9FMDG|pQjL%$cZTR^9lm|TB
+zhS!%eR?~a!7d<4{OvLrd*Luf&!Pk@fj90}*XDQ>q1i&{0t`*zmDE_x!v|4!J`{Z5&
+z?p-hU?*5cztWG`r*ziOI{ko2}Vu3k{+i_j}f5^(m|6A~%G7ZXcy_)}^zXI*pxu2oF
+zRod_uCnee&SA(}&l43i}#e1#4E>E<tRq+Stzdsw-;up1A@tanI7s39r6Z0TkpYRx0
+z5}*COdEm)&ZM#pxc<HCxlz9%r|A3Bl$NY|;t87s`f$I|IeX3$k^%H-=xrqt*@20*e
+zm|N~CqQmMxvJrdrCF0+%Y+%TLooi7p$Y)D}Du&EKJlpDEyi}v7nK2$ls(Djp&l`-%
+z7r!9S+Gv#_73)}vuVBvnRnxz3u2b}KE5-z4I@xnCsPh<)`gDH5y*X_L)ZDAaQ7~?B
+z4C4DfyqiRQHXzRruwJdl@%=-Y-e2M9#(gLEE{yqr<00DFp<NE*cnC*gXMc^OU?1a1
+zAB!(=+=C<M=58E6!;#oO`*5TW&Bt?9Ot!r^(k`$E#|QAOd8pS{`0h`?RqN^^y>}lQ
+zP%$1d;I)aJ*FT~#hL6GVRHUnr?nUZAdIM?j9PsN%KSY|3)Qa>+q@74r*LaNvq(312
+z1L;eoW9E8|kw_t=Nk}zFGm-8>`YBQqQVfavgtu}02B~Bo@<O^A>5h5XJ;H-He|%nc
+zf8fMi6dNMpjSb(Q=Gi_2tyX}0#;#VYNbj2jdmXg8_gdAbv<<o#9YrkVTJ7T}*w<*Y
+z>Vt;z*~Hi%a?t3L^L~C!HfG>99nWC?i!q50M%i8ndlbeoW$X{ePI`T}fxVl;0Ck3q
+z!CV6_W`1GPo1zr47Ao;>rC`*wSYvR07VR#G3+Hqv+8hp%D@z>Ka6CN*^KNXo$$AUC
+z{+K{hY9x4gq?CzkORu5-RyfIc!yGTKp#FhKQA)+OX-e&yqvTy7%+oGI#W{1E<<<a}
+zhnOJ|@p%(@$MbU)R)fT1i)4BS&~7dfPYyC(*fYr3xW_&k;$!>Bo_u4)9@5f98uySm
+z1vg%+?DN-OqkI@yhsQI-e&ybMxY$BpeT|L<5K_KvV!L#W#7s>%A|bIe;68ZDHLA}-
+z8jJ6&8`M~3A6$X+2yvp2uEx2qwmftPj)JL1dluA-xHZ!Y*hft%=Fhnteo^5wu%8%<
+zg?NtFpudR8;FLHMDwd)<bS-%c#t|3U4&^Dk7`K7`ugx55R}dS&&=J>hD8+Z!H`uld
+zcHq9pu{5D#71Su4PK;BJV|DjapD0_<kvf(I{Rqh?d$ql!JJ4)Bqn{ZL-rFOwb0j8X
+zDc`?%U!N_h{GV~X`1U6~1*^Nc_jjYN#bO7n<R#<v^UA+>rtn3)p2Ty4{fn}?R18|-
+zLny1?KZmh(|0%i@+F<^Oe){HXZ6At#q4r^1_WYiWx=$X!F?NHZA&=j{Im&*GZ^Ha|
+zoBq=_KIQ2Fg-!X7h?0jF^u>r%IPsNQ<~9;#wy_0H*Y^d>PRG5OlE}_a?;M3wWykXP
+zNMnw>PmEd5VQ#J?)^J$$o6A_W$7R&*;j?q+sC@wIQ_1rv=irR=)6pjSRh8z48WNj}
+zlsw82sZTvLNBK&!48#q-Ps<GRn_upBG;iLKN4*a2x8j|rF|IoC-Am@sW;4t@i>2Hc
+z0}B}|t5%iwtvT9$&lh*)`Qn9s%<WmYKMVZVPd-B(JLAbX`e-?2qL?!w`p6QuS>vrd
+zWEjsr-UV8KcQ)di>rEwtJ6-3y5@p&L?6CMebxBR)SE6vh*5i7ozCKiNm>BoODDA}c
+z_2MfzCApaS>+_!(##Y*s-GFhW<420T`U=VgyHqS?VsMq1YTU6L$6urT`uP86S1Vuh
+z`C`|l%73HYV;OVk$0*m5^JssMIlF?ge&pS(agd3j%)V|7)1J6V#r_M$9oGo{*ADA!
+zbApUj%0Y^#>y5@2gTB?BBf4;jZ;<|DMAIJIZv*F!Xf$PGEGeIL<x5P=Wbzs(ie2zh
+zr|55kJGv=b_)5p|dn=;!fvm$DIBz~bnAm)+jUCpI%2V+xdJOYr>Aw?|%|oetHy%yd
+z@=s!AJ%fI%8@eJ9HwW7>44z#V8Z7gISoGZgxyUPqs!~r}%`s0*CHm0Qevf**#*|&R
+zl*kUIli&B1Fot<xr;OvytFv~k{=mZ)v5?*5cg%SS(VGVEPtm4KWKzcRRQ0v0ezavK
+zUet1|Kija@(O>z(PZeFc0^b_)v06t1i6+Y}KJIFt!FQgL=VqkG<&4`OqHb)n2hnCv
+zqklWm*Y|_w1-d#ce?t6%#3q=}3=FJDUY75${S$oCD~`l{rvF*BBUXGmZCyaq<r|{E
+zRI%~gIJd{Sy{8Z2xl<!*53mm3j#I}Z>y7eLvoU<O9aeqGInQU$yE^OhRD}1=A@+#I
+z*yQsi5w-rMuU7K@0_|J+G-ztoJT(`(B8s25=xQa$5WhA<#d&%M?cI#?mu4$k^XAp+
+z**C6MF-d%SPaBG;vgYOZuKrSEA^b?^{}SGLPV;-uT$67c8sRnm1ls&OQldQHcp1m-
+zNdH1gA-P@og118*z{fYJSQD;V@N-;Okp|xAl~~VCW%rjX<afd$?01$WszJBE!Q6EC
+zrloBgb6Y>?2-OwJ8fnA}_bq<D#4hi7x~)8+SGrku;ti75roA!Cy6?PGKb-i_OHyvo
+zaPoR<z_UDq@%r{$)=%Nz5r2IB;Fv`|hx#7uZAvG6uPH@La{6*C#<LSnZAt~PKiFxU
+zn_P_NqL>d8&c-#-AJ$ttjfu(k=h$)X>#ccs_r9z9;(Pi+n3rR_CZ)o-PCvy-!(!H?
+zQHrl5_QL7|;2-oeyvAop59uqxxVYt<W4OKo&)vhl7yiFITaBxLQ}wlq<8^tVT8}`Z
+zF%}PEfAAOHi-uG5LpTTX>D;TDQll`}6Arak=UVws&e3={g>n1rMAX%1E)ksZfx(HE
+z<CLb<Q|4RZTf(~V9qzxH=VbMJKlOtz=2#5Xr07!-3ZpLJ^HQ`)b(F@_j71@~4|7z1
+z&Bxq{X5SY&NWO9?`j2>Od}b1!xoeJE<4yex`<Suh$Dr&Dvz1JSu{}oM|LnOcZ$5Lv
+zJk>UQXF9I?9g1(=c9oX<$y%?lDmh*rz&JV{<BOOM<a-i2p3=MXRNOMoi9t#ZnIxvb
+z3wA!TCslL(SM%(79e)vR`r_k(*vmM7GaiWTa0cUVZ{~e-dP-r%%+xXYlrI+B^O>&<
+z(KBB~9x<TsGlqVpu*5fG4m#e$JZw<oI(#P5TWWq4VosGK9Xi`(l#g{8r{jDa(gdUn
+zk-|tbkRnLeBmEd@0n!qr-LHC$7q@whFD~>N_Z`lceUa$8^uFj;@<ql<p(|VGYWZP6
+zblAyha}_Nbg=ZFqlpnDt5J^x+wBP`fKy1HiB@2-l8)m(VA%EBqe<e5mb8L|YIflg3
+z6X#~-SBp=Nr!SpL?9cOc43BvFEPcO>Sho0ozWzUJw&LwM*VzuOs88dKYR=E=idjX}
+z6?d((%s6Oy0%cCDu*5Dc-lSq9a^FIq+N)_tpzzqWEfo7?tsU!yW0)8RhDX^R+%Qkk
+z#-eSiKkQgvnHv?xfvnr~hq_zIiAJKm(pRbZMLF$GiS@g+Sa5f=%wzXe*)@SN{5(2-
+zxvMt6(^b3dQL)7cs~ADA%qG75G{K>Dh3W$ziC>x;SG+Fq%JDAo6pe6uACKeIdgMRO
+zRy3Yv`#sK`foRGdSS)+R8|JDtXQbq@+;W>;#}b#7G1637qlrDz?laTANW5UA$emv)
+z+Ke)=Psq=o{S%B!tQCw8D`Sa#QLXY1s1RQLZ5{W?@O@wJ?^Ytuk$NA^|7+MDf;EXf
+zM<nhrBG(4IA*IL7(>UeFMY8lG&)hEUHPV<`I8g6Rm|w$HwoX1eSmGw>_i5)s-DB-F
+z8vDmsW93V`EVJ@7PsH{nuI)&L5#uwoz7~7vQjR&6vq0KwnZ^Gn-sCm1m}=P=SK}m3
+z?9{@qwV&PP{7$f5eZvT)vKW@P361@V-x3<D;<8X5`smzD&j{rI493Qn8Vi8m2^ocg
+zdBt%|I>b2L_81;Y`*`$0p3%C8eq3>*Y0uA5UgA70>We8&UUjLJk7w8>Ms1UIn)a&`
+z`~{;}#UL<Oiw(i?s0aBWXTM_MImQ|ai~a7og3X)mk$8Kn<@<uwg8M(6o5iG^ujk6C
+zHz^)r2996-9AgD*o#3iz`)!xGIPsbBcJj_ynI78dmM}h4MLfAbxH8F@oCg&CXp%TT
+znK_xBJMYgo>U8_hyjrapZpJ%0!e?=AN@KqX_DQphea1P7SuNLOG4ChnbKW}#=jUBT
+z8M%({ZYV#c2d+{vW}G=O?U^_0L~N%T93PMBxNI6nH=y|e#u+#Ia8%-j_+O&dwtDaw
+z@pRQySsgw1qCd>Z<IAi1@SJ^KJ$Jl#&mAPLd_4Wb*}4AeD8Ix~%zle;;E4t3?oxho
+z!7jBf`|*At!10<$lg}77J6i_93VhB`vFLsfPhXsKFQD;)U;E&a)acWil&`8eOt4+V
+zkJD%tJNRb~i@wnE8V^}E&(L*zE{}A-C->fZ+*_#cz3pOM9<s*KwtJS=(YOp>*`Sy;
+zaw7M%&3%}G5=+&LTBoHAJLZEga!ySA(f1x7+u<M%iMe=3e`0Bm4W+72!@bIhscVd^
+z&90Na>t>zcl{|A=tk^|bXf7$1wqYE)(b(Hx!`SQGKR#pyaL%&Pe(T0r%J&AeIW+>$
+z8KEv~4E83ZMc2&A@w3DAZ3AM~Z}9Hu<C{{n1?U_-2V-DyiqD^MRW^<V|9>@GjcNAl
+zI=sg?7ADrBc}YWbDQ2X@3b|-g(rV)gtX()jk85I`nT#vjYWW$fAkbpHIH)N#3E%LC
+zAF@t=y(#6YY!Zy$K}O4-K_ZhwTe>=|{Z}fvsENEzoI{(S`z?u&9^7FC&yFd3Gdx#v
+z3EB~BO!t*p9i#A;c<<Ob_Wti7>$hkFf9QVMi{FH`K7u{^6kIF8p6z(<nKAw;(|nwM
+z!N#m~68*U@*krB8SbDCa$!f=WJRtbUr5pFgtc`x8GSCKM=rNWO(g-9!*5E1}!Bbn6
+z{Ezi`I`)<RPU15)Sz>cZEK*{QBAH0Et!KQXNyzUrw9TZE;L$6QUR8M4T*HFk9m<hL
+zAo=(W979Nz{LgQod_H~y<)4H+t8u*sX%>=+^jD2JcQ)$yuPd{<p+5XVbMx**|Cq)7
+zP22lM?_eFbc7Vht45xoBKEYv;-*7BGGbCnJ&(7lAkSC|SfNQ0RdUj}8Z0iulCcwT!
+z(+5W)?!t2p`n^;pnmjFf&8*eWoomw(`x&FjGrfPT_%7P0={&#prIMc&lE3&gwuZRc
+zV<)+c5K=W#7->3E1Zfe{4M?>}CejF`dZdj=E09`|)*(H8iAucwIMOWC;U?O|;&=m&
+zD{#DydKnz&;n<4fH8{587{PHJj<a!$QwE0PdK_o!Bk%G0<Cr(o7+(VCQ^jt&$(qbD
+zjecVsr|I~A369S>nyiautgC(bEMLqzPxoI<siOS{^*nXfE^{(gFrTZ$b6ArLPelLq
+z*BH@^-8>TYDo3hB8iQ1Ylt7w<Gz)0~(tM;vNRJ~q!go;SIJz49!{db?QU9^GvOo}f
+zs=`eY3*NpyBCK%3?f>Org&S`FuM8{P@ZJ4lLNk?o)mZC@-$B3o(OiG)ac}7yWgBR}
+z7sPuUPkCX5AwB&^G2tm^;n}j|VzjFy_KssA-us>tdpAA)B(^Q?pMW;<F!qbW-%B!<
+z!`WDeXje)b=RC1vYAU8Ix`1+9`X_-Ngeb!S4R8wmrHp(waq0>wvlv0!MB2mBM#8L1
+zmIsx+r}uwjRuJz67>AVDL}DvXUY4@;x+L>30_!Zt_tm=wF-(JXN#e;b$9HM#Ua4(I
+zL;AbSe>vv!#uB!h$b`tNtR)Y;oN<{dk9@9vtimaD(XJS43d-N&QvQltUB;EPbAOL~
+zXwVz8et<UHM!S^Y^px258dqvt4yV)BYvA3qs}tq#j2HG-KAex?{!_f)YIa!tH9jY0
+z^Oaqy&CW+2*tfV^QJw?cF%|R8e8i&NSOnL8<1k81-TuRcCx27yC@K5wr}jUM9N$i?
+z3tWFXPv4Y$U}mQGfU`;BdziRZb5$RoRqD;B?@EW&^?}h#+1*&jk!#W3yqL8wl3j~N
+z4<s&NtK|eA(z!XpeMO4v64$3+U8&Yk7yZXZE1T#7tOF%DFPhk7l_6DP&6tFKuB5HQ
+zz~KqTnkxHY%sReP;e|5BDzU2joAVOiQ}(M{k2e(ma0~UnBb!oBo$ylfbd+N^zPIhn
+zm=z|@1NzM?e#}Sqohuw)93oa$g5&pc>@!e*)R%FmcTZ`u64x|Yd(bv}2ix)39s%Dy
+zHTivQyCFEl!AGp!qm&GBxbny7aVp%@wQf95AI<NHT=%?`=ARpRo#PE{-Z=6kj=xnF
+z^Px|AwtQ2>S9#B<j%<utyvI0Ke(j@LqsO#U{0<+nv_DtrX;}LQ8IQ=CA4u@}?DQL$
+zn^MlQCT+)B=iEK2$+MUF)32L0WM{-Y<x^2#T<3S6JMB%;!{y=GJ-Fr^6Ho3LjP@BD
+zPYy>KHl_~y&B?0W$G?=^{fiFj&3y&9#ybD+8!9GZ(I(8@(H$21C4u+pqeVV-@Rdr|
+zBN)*blh2*@cGCGO_$GWO_ZuwJQ{!JvazA0`v3ppD^}pj){>*F743$@&j$?!UF5^O!
+zw!352)fnSVhcdm4AMrmp|J~JWgQdc+NDN}kiIZ@h?c?rRE&VWWOw5B+><%}1kcz42
+z-+Dq*iuhKqfX{L$oQpj!W67RSxzZhSFENN?Y2P~Z@65Cl^w-d9J#~6x6KcNRqOl4N
+z6{`1+!MCp^R-KNC!?JV#yG!36i2GL&|4!_JsZVXO_?^H$`be#oXYBvw;M*>{QpKAm
+zPg||W$VS0|ka#<#8xE;hC94?w0rO`zo-f0=cYsI!1@>3{LxS0yEXN*!^`KtjIj72p
+z=eME${lC{F`x+<qy1zsD`d`wNx}l5X?rE(PZk6#jVl-$so*RuZ`TO7s+9dYad2zop
+z0=)i$Ls|ZkJn%th%zE!?<^M!}lkeXEp7Qw_N)~%A{@;o+{2BkdUh1$mkBV8NKW<8~
+zT)*#nFv&6z3vDyT$?}=R2I{b)W?h<e++GK0pWQh)OZ({`RgdpJceS!(x<=+PcsFHJ
+zF19639rKdw*{L%#wvB%>?2P@vqvKU`OdXohw<p*z7I{)uPyEDL+J1k4rs*y}$KkB>
+zEs40Smj$5h(*tULJeBB5vR@8WXnz_b?wBR~58lHZt_^1Xee^up*hQJ{i=Z1TrR{0s
+z!uEU)Z8s16(Xbi+zmK68X41Ek<24~Rvm8tGe_`1Rvaz5_k3G~E_hzdRx}I`d;Uh<)
+z?Dgo+<0aNj{K?}(@yC{&K>goC);oqn<gD0(`snjOeTmn+U+jG%m|xF+qxKfZ*tips
+zIKJOuW8(>CiC5OQ|E!D1ig7)+E)UGqxG}nqmf`=+A@1!utozU=T=#xDgL}UY>s}n`
+zuk~=b*ZB2KUgHFZ(<s2Q{TrOqHe?5mAK#?>TE51y2kEh;4&#?dfs+km-F&a{1?3>8
+zdX1Zq4&glbW5&Do8n4{wH74Tx$4HGx_hNwj<NID?<OMEc&-vhyacn)D$;5DP3(~)l
+zK1IT-B2RH5@1SXjtYyf}USkOUkH1;TT!!MD`__}N@BEpebYfhm#)eL?h;{1@xg^d?
+zIj+@$&e`#uk2TajylJ2E;V?p~AM$j(T<%{U?l$aw>xKp936}CtQT`_miDzn*t~XAw
+zKANrUL^^R^B=e|M_<Kh`6@%551r&94c<?QUW9tf6QCE|PGHLd)*L<iCKW!hrQv`bH
+zG6yC!PN9$Egk>8!yu+%{W8_EN-`#qG<<&S!)bo^2KEVo(ZW0+t!G1&ZBt!5%#}j>e
+zLIo#SnVGqIitW~<>3#k`vIlEndzjm-Q^YT1DsdNmb~*a#z1b+NMZf&FA#$aUrYrlk
+z&F>q+KQWHt;}s`ZgCz#yG-8OC21j$8F9R<^Z2Lr7VW_uBojCqkKi2K*uN4m__BY`+
+z;mbufCc3iA#YR>78vWuPb%Mgs((<rCj@_`vR1^$o`W|@{jyvnT!5w_as&t|+0}okG
+z%vQ3o*K}MC!TtiRV_bI1(~p_0@G!Zzss;^}eK6y*U|m~;`V*(aFLilSVnivdxHtP^
+zhdBd_Q+PLZ%h%eDs9>qYymC|a9cUANm2%vJ>6mqpF_v+ka{Wm<w(_1$Y8~8-^{^WB
+zA#AF3|DN{^Z9`!6R3rZp|5iE{eyiqd`hF{#L3??(A+k*$@5PbNq_5du*=x<Xb^)%f
+z7_DrZ-4(05Q4Se<v>Bj(RshfYv8Q4Dwi{eA>juUXnyLDVdZbyn7RI$R(OzNAhr4vF
+z=VxbTbphp|{bO9zLpG%bf>yJR-<zTOfY-#o6y+GN*O6Y7|M$eq3@~QwN?Aj^f^EpY
+z=)iuFI?E=j##HtYjMKt+FuxSrjd*hPCq^&rM{2aa#MZAey~j@v2!_@(FDd*Ccfsmz
+zzsL*~Z}y9?lzwqF$Dm_%_xY$(^RSpzi?x>f4eVVCoSkt8_4pC2qc7>Q(*A<<fN>nC
+zFCBsRO6ZSAd6Tva`TG@E#~GIc{CpMiED1Ay2IeOIvo2U$k|o1p#UqBrJm}wolJGJo
+z$GGUx@%^tb*NDGOe$NQ4vYdKc&%p5}ZMS@k&=iGXNLn^ix4(rohyQ7}HBDbjP==rL
+z>}C4;dpXZuq_4e$zSs`Fi1GsV@mx(Cw=oZSc8zr#+Ai<hK<e*eufN8+p&(|>xkA1F
+z3Z9#U{QS*I4<eYbpffky_F*_Df9Q-vo$j#mk<)SIMekIJy7vnyA78t?<QM)vBTLVG
+z=JxK9Vz;8`maRAW;T1>fO>9{J=}R2tA{}~b7UP+4J}<La$3<V;n3HQPM|An%-y@GU
+z(Fe5I`x4Qg_D31&jhJ;8<&Q?2)iq0OjnN*D$r{al)h%CT?WC?_zEP!fo~3OO#?4nY
+zW1F$QojYH}&t)84+KyFzuKf2V<N6gyui}}{F)6tY-;DovBfYY&pYb&&qUU<Av3$PP
+z+t6MRW#T%?Sj|O4!EaOu{%(>oe!q_Ic>Q~zr4<@C8FZBPzOKow-N&H4_XT3sK-#Qd
+zp6NXiV|X|I)7Ey$enoFsr|$i<5tZ0m!V~`ND&^<s)VlR&@Vt4In&a0`S9taGp&V8j
+zPdY2>l9>``YAATP%t$BpKa^?IC7i}FY0g`P`_q(KfcO03o13*+p|9Q`%3|nyh-dy~
+z_c3TZ{qm|sr+ti!E#A+YuGTKm@l01b96M$-b;WG|IX9~|Z=UTEK4usG&qInXp0;Qy
+zj=#QH@j}!C9t8b3n2K3jsFwxJevUL7>p_>q2T-(R7w7|Rm^OoUKMg)~b4bNs_My%5
+zKug>aW3WLe2b@1W3UeOqhxa|8Gvq6M&tbm2@u|@pV!ZlVWtaL4u5HD&r_nyP?GWgO
+zi}I!gpgTJ_j*UCT7V@@_6mLU}ii?!&JH44QYFrNwR&ndQkl$oIhsY~z4s}>#b(~%D
+z4Er^I;0e_`y<zk-^~a!HQN4%!$8<He+1F8Gd}ejO&+__#0%9Y_)5+;seF5<<HwQZU
+zY|Rf{k&U;@a&N)?owMi{qUOn=y@uFxid~f67jO*slQ|ydI=BJtk!rd^^>H)aZ=rs|
+ztWOYML}7;t&TWFvJ&iTujcL5!Y^|Wbb+Fl@4OKJN56W$*XJkxM%A5R@Ee01S+HoGh
+z`8rdzdr_cSYyi1WpbUQ_u2asxp7F)d-;7bpcv75ati$y)6`w@^YK4iWZ1xWX)cxh=
+zYu0Q$GkY5CznW5A=!Y3sC|_CDeH-U9{=cf@_PmEVxtTFZaOAU5?I--N=~+7#zWX?y
+z*|g8-?XR&6JM~;`&FXJ9kbYe^OJQktihq4!dOzqQpP#So#(y|d&6zEvS&N_Fvw*&~
+zw|I>gFei5AdyTC)(w5`Szk7`&&byHY;Qld4KSbKz(9fvG@xI9pBfqvh<ft`_LA4`7
+z*W=nE%sK8Meund(BROl8er`JE7UMK?Tuhxwn`x#0^q6nUy5Z71E64Ra)3UbO<(Fs2
+z8vjq2rR=DtqwLi2QJ-0>W2llIu16hD{0C`TSZvXWC9n?HxL(Uz8;%#!=aB6*Y8Lyk
+zRoc65dM+krtMw*z&EW=#<-Fnw#UJe_HXD7k@t?NMlXM+iLtDFD4(iRPh@Iuu>6t#<
+zLFV;BM*Fsk{(fqoeWloaf1+qV*9Fpi(k#*>yS<!@O%zdf`xCxZ>-4E&%LzWJmN*~N
+zMV6Nbe&b{v2ZZ|~?pKCt+a%vKRd?#9D7)y7_4zc7-Qw3amDJ;$rgh^3^fmHl{R2_K
+zhB<YI(d$+5Uc~NXM@Fp!iD}BVX{c_$Zrw)K<%*U}x<d6O&o9EY>3Ynuj*ea6%|~W+
+zv&&zMS<CHpt*g$8>UHhOoks6MZ5PS)%r!^(4|p+-=7By$Fb}>yWc1-m*9fjcQ|fbl
+zjrH`Ry&}YMukGl=Vw{Kn`Faf!84ccBNI8<u)6(y=-D=J3ev`4@=#TImo|!hSFCKB}
+zb9hG9)nH6x{!A@ktSX1bP&n@jZL<{?+UTRt0{0wVZOg;4dS6D#k%$Ssg0Z;9aV>7L
+z9=lwPLB7X(mtLuS++UcXeB58g@sM6ae0r|@>~dvCa0s+^@ysmV!09uyb_64N9$1=k
+z8>_9}X*^$T(O>_^$p4L76fg7EEoxjoRjq8h-obwh>5J+04XwvH9lbn9^42Qf_U%}s
+zD!K2%I=6JDl9`WX4Drw~>$$-yhBf)Jv(T?j(?~fwjg;sgI^z}bQCa?lc8=|X8LPd?
+zdjE1|r&KI)X^tU|m+1e9jk1uqO?a-~m1@jUUi91Ds_%TFmyD-Z&(t`h(Wq61_P9{m
+zpx)xX=6s=t^%nI&Wmp$|x}6xa$AR`AczJeg^WMD6l@Dn!h;mdcV=N)8CruKYag6Q*
+z(LGQHQ?aJIZ|@J<zD;85DP4eHbje1~3s(@EzC-*vCEkUOFH8Fs$0_mjE4@Z9^=d_0
+z_BK<??x%|ne}}T6HtSO2n`SDV*jLl&qiFQl`CNQO*5<RH*mSg7=U<UsU%a7K`Tl3J
+zN5@(oZk2qu)v(>KOgZAz0nv{0%0k;-i~FN@re)(o1i+&mBlxQwq7OK7A79hAj~}4?
+zF|h78DLYTl$f2MCJzOtM#S?Uj&9LD2OKb?ryGV1_$^Dt>_JClUh<=YY#ZSy6_Jp?8
+zF>A!;?4*i9!DnLrezCg{UzDCA-A9iyR;+Fdmu`!7Tq|{3P+rll_eqtSzsDxdD5^b@
+zpC_gW<yS#mKdV;B)n?#0w^qdllNc$Ck7CRcxq{#19#Prt6a}@dEz(~;G<pYOP1uR`
+zmFsWwO)eu~uC(@pR+9GQ`Ouyiqh~5y==8*?iYAN#e{z*!^fE@e=;XB>n)IFUR|=nJ
+zU+}d8>C@nA$tw&sKL*Ks+R=wMFh`%0ADe)01dWE&qo6G(YTL>=_}?)@&1oZI+mk8&
+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%0A<;8qeq6g7B
+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
+z=ti8#5Xf%0A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%0D2T%k{y0d%@0*y>rpL<I
+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
+zQay{A8<(?(a<SBqEQ$<rPShiJ1R>Z1s*rUoZ?%0A-y2VSqH&a^{#Jtwb^0yZ7azax
+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%0D%{SMBQw7Ya
+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
+z@Du?gdTB*ial?~0hhY8`r6pA%0AfyMC$kEX1+vSJ%3bmwb)Ht$fVA@=^qjCJv~)bu
+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%0DCrKPjckR=cPPu%AiqEQpZ)!_
+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
+zeTswPEcN-`a?wgi@4~6u;DBQ(@-}eumCP%0DU`88?Aal2?ALO9Hpviv9+z%Gyeq@F
+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%0A%c=x4m8Mu+~+
+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%0A0Z;D$wl
+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
+zcLnQ@T!+Bf=Z#Q#p=5UD_{L0Qa%0Auz`8pr+HJO_o$mW}Y6tGyPWK%`d+3}QC!4zU
+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%0Ax_VZT1xem0u?1Y3
+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
+zO(4aCnwTCr@ITFShw^B%0D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
+z;ZzIBPzL91|2kZ#gi@4_EZH;HW%0D;ST)|C8M2hj#XPs<fJQTHt_INZ43c|!Rg6xP
+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
+zbunwdC0=9MRQqKQ=eU4QteFhY9}R47(%%0D%c=I?JXq-h^XGq9$7qzp-e+Ci*V9b3
+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%0ASd^cR68Dgz
+z6(`yS4;)XUA6zLja$|lHoKa-syGIY9XK;)~`<}C<yQ)9cciBROUoi+OwqJT{gSvq>
+zzVnl9fjg;)<@8=$-|Fff($XcDBWR}ryzOzlt3wZ5a~b|Vq^Xo${<!|t2!=8Dxgc}e
+zp6rpEfm}Y2tEp9Z_nH)~Pixr*i}qCd2ZIiUJ++r$dh^w*jUPkkX40?UnUwFOZ@}&a
+zJ}f>?)c-+{(qt{e^|jh(=P!{}+fIA3v@Q|X+nT+)rvF`DIO)*w)cv^r)@2zA11>!t
+zB*EuFiMSqDmh4LfidVE~nH`e0I@gZFR}b$EOFS3SRvECrSKg6If9&eFvMl}*Jk}U4
+zTQd|we;F;^8o_2wzZ;x)$x)UF9~*)nBRd(m-dAaViG3-%!)e?sKgw|ZuUM!c<=d1S
+zNogL-LtGDRBJ1sd;CH&Dv`!tC0OJyfS=PvZMAL$_VU3{m^hOV`vq%lQcuaycnAtNG
+z@cb%0w<+q*d&^6}Sw}AEW(}qHv|SDF*lS5wNSiTpi6qv)%MSr#-J43cJKf;=dB;-C
+zDGE*ZmB**k9?fu5ez|<s!!xA(3%lxi+-m6&C467ZBm8Lt!5x9PURg==t;**%Zlu+e
+zA2Y=D%T^dijB>AFr5T&=*kh`HmHx)R_glWmCD>CW>oYA9O5Z5ZASjWtm411?`>wAO
+z9z^{gf~(_uL_bw@gO<@3A98OrDMiGjZ=pjoEc~2zAZcR|N&MP&sZqOHx<J6aj77=b
+zq=T|&D{%d^d|L8vw_n&zV!wBG!!h^6VEcYW=DT|{R9#vAJ#ocX=%bnWRP*;2q2=V!
+zD`ysk((kb)Wf^6d(No*q&zBz{!nYrSmydsNuB_{Z=#-p?XITPh<ApqvPc53^;?6fu
+zT7Ni^Dq@mnzi+LjOYN^dNjmLIQZT3r#P!@(hwV8hp{Yq?apJUSncWW=4xTJYI_#v8
+z;_Btr%dgN6kJ)^uC0v9fh8JA2)I;gpT=t4&)SA#^E7dxMKDrb2e+c$fT*<}t;ySEg
+z&kwB(qOmj&P2u`+4X__mvkS?jd91a4xSm{L1MC5bv7Hw0T40Oo%l+)St%5((ilj@v
+z`6M{g9)#y<s|+3;)>C0?sJV3gGTrNeD#mSn5u!Qk-rDPi(rE`A4+bqWp!Xg;df>|@
+zBK-6rI5c9+S2WTMGg@mNyr^>}ZBf5JyFmlxe}|{#j={qulPl>PaecegLymWCc-(0#
+z)HtVcy}Ql2QiY}u_mavFjI~SO+XV~WrQ8TF`JpFq>pi!P{AD^hdG)Ne*hQGXEW`0F
+zgwp$Y*1~qPHT2dO=IMr!#P=T+LvVUzQ2#Sa55$t}I}SudkSM`)2ClDnPRf(mDdj<o
+zg|&2+xJz#sB8Ifj!r0U{s}e}NzV<ukjx{vQ!+Sc-!UAfoI%XT6_UY9w);^hhC50}*
+zdb8fVJ`pyO%y;magwi8=-gSP9*Pt)59nyOeaEz$`L!fsmdE1y!4=kGaJU{BT6KQs8
+zioqq=40AGF4;$|rVhGgIPyYPLm?uo8P3GD5;(CC|cS}q1E?d$b=RajEQzAprkwJRH
+zwcUCb+#4?0EJ&dj@Ng?xB_=}a@-ycYOhf6}neMZ`rt<VdO)>K~c)8An|6>S_g|2!3
+zOST8BW5!*jj`-0SQ;cAY9o7FIbjB=Wh&t0pXW)8-XMZx%DD3vseA~S3xIW?C`FWSk
+zRIF%yPZ`0iJn}&9ao;e@I7zMjcq#e%gJe1zPmYE4fke2l-y}kGV<=tu_-rtjFh*CI
+zb&?q>bYX_?f6rVWm!Vo}q`CG;gN*+lP181t@{IYJsnianW9zQZ9_S(3t6_*{nvcUe
+zruk38T*HWvkFdWzhT-?w(BSR7UPdqkmLBSFHIbuPT8m*7j3Kz~DwWP+7E7uh9L&pO
+z#DXtZT8dLXD=p2+ngv7m$M&sFSBeTHS+8Vcac5ito#U3<RA*=PI=|C7D`tkE%=d72
+zV`mh}ts4a}n+C0Bi>5f=lW6ajp#Y|bVE5&Z=Z#BF(dtdq3h&Nd10k7p@>c!Yq=z>|
+zwJUxO0o}%>d_4XzDR*k6V8zT0@J~KAUY2Y^OZz!<6#G5|b}{?yON#txH(hu6xlZSU
+z&gf^hnRZE%=32pL6=OqiaQ>Gv*KjY==Pd(+dA|zau(|U}*E&PmyYY?IEW<<KW|$nH
+zt8|Jq6ir#DJzWS}%f~ubuCt@14dpDV>Kg*zO%vK1FYF}k_O26t`Kt)du1~g%SFoYE
+z4JjM2bq&EKx96*k=q|L?rGhg;KTCi$zMOTdqy??-__IfkTZVwuERf@Q?kZZl#S%7_
+z@1?N70+UpmUQ4=sG>FdmWe7h1SXII*b&B+}&RQ*Q`~g(T-VAa*Y)QhJjm)3d55dp#
+zTVFbNInrd;IER;xP~q98UfHnteWb$V`4ql4LvS;qF5<(rW2DZSN^!TrGB_??y5gLG
+z2`!RV=U4l52*U53G=A$%A?XZ84BqaggWm8H+TCe0+PmE+EyYkhzdw{<G3Fdis`F@y
+zSv^((sRCO)ox@y7iJY^lpG$|J&~|eCmTV}g;B~==cf*x%{qUuEi9-iz@61U{7ZnV_
+z;bm(@UaMHsV(**nQyQ#-UCm!P1U4U|jq1qk@4Y?*fi)5X*_+9vmk0MQ*X(-)@h=Y^
+zJ$Q0IN$GJQkM@-zaP-pSJi7ZVDPXjEb8pvUnD(qt`MlAF#IkucnGrt(n^M<qhT224
+zv85SrwzgNpy)(dRG=7ja*)ONQ>GTkYt7^4~9ym+ewAr>|Z}Sr%KM#rCv-}-(@mI#|
+zf<P31viIZN6MnRk(T6JpzdVIUmq@J^`6eWp*Qwu*x(`9|7ahK5Nf9*T++XTWAD+SX
+z2QM8n1srLwRPN8}??>sYG+W7Y$A={R=yk2-+vjjnq>!@iu?^|cA;#H+okLJx$fnP~
+z_892^m%sAonitUbs$r*Iqz&!FTDdY8vmw|?y*)6zE`*fq@MX)7CodtNFW|`a%EP2%
+zbw!V!;`#)&qu#Dv;7Gf6CUjSJMGYJce0I6k*_k%L*#6<V`VgF|-(jcl_$;aRdWl`j
+zgI7@HR?{G_?nF!5AECj8-V@A|D#h6o0!Y_7qJppAeGPrfcNTD#+tc(;SI_GgMDB%`
+z`*_C1kbK3)-Vf%zf%_}ZSw!x2pk)l6OtWGcf|(Z`$#SF^(jKt`^gY{Z;n}&Ft5x?;
+z(3Y;?*Dx3v1kZP0xux?$X*&DIUSqFnp``T!AJ5bYn#@SWR3Um#D||$yD9)JE`kE5*
+z98BvVOYB}rNcT}%#!$WSjW>f(YcOHP<7!Rwx&LJU$wzfC@rHla$KH#SGvu>Xp?nbZ
+ztsV-et)S3!3Kj@i>c0g^#uhEguorD>0o6hN<{-ozNYJmZbR?w}>pyO~{}#ADjwb6`
+zJCIJjy74G0c@Vlu)zaomLusee*c0Tm-obJWzT$g)L8O6PW%})iLAbGtI^)0Q4C&*$
+z!<U3_y@RAvr`fI7VI=Z8sdWA0gCO#H{i<lg2->C2)XvhS?;)+4W9QR(!L-^QonkAy
+zL7+WbQ7h1Qnk2tY;4)wOd$@J(&e4a8exxhLD&`|*gP`RcrJjB^g64n2`OSQ(dKeoX
+zwDwpPK)T*QxhJYK2&*kw@-Fy#(k@M8rqSZ-;U)SBH-CDFRM~KIBOUegT%3lU-nQRC
+z^FGa`EXvaWTJbr&9~bT>z5dK*JHj&voeO+fySnX2-#_R^iG()5Ei+@*^N}ZM`%ahX
+z=Z_D-W1T}mQEKOC)~svW?*D86{>Gjym8xE(2BlGpfu;eVXR5w`Mma_kHT1D&_4oj<
+z@0n|U=sidiwn^?QeKG*6Ub*`2FR~(Saec-%*!2NMZRw3PrvTcibCE}R3kINf&py@E
+z#Zjb<heL(^_kD!sn|7DyXZex7<a(^=zBm9^+1}PmPsWl~BzxV+djAoYI{Eannt74T
+z0$MI@2^xTe0o7IRrB1Z!^%Ffu%|5{{aMo|R;zJ{o^||1{0IcpeH_~xDO%vqkW_?Zn
+z1X*|FudPXSCpAkwX?b8i01mO?zEtg4(hI(7ndjP#@anaN-h5448fRck3|(^onqHpK
+zXtEC?`JPXA+MU}7A#9{VedU9+;e?Z(77_z+E~`>bwVpzf5MRl0O7=5IO(efGZ1tz5
+z-Lm}UGTjgSDzO$NC6Oefo1ZoG<3Ga)xU9IP8${~}O^Fk0>4y|SP3oGF5Yjbrp+q$M
+z7r2oY<lUL(KvKVSH`A=TAClJQsEQBnC#BW}_aE~80!w$TTd=usAC33qlQh2EesI*@
+zXBu*3KW*Xl_ib-`zCcoIqj1!;BQ0#f>mR$%_JbmeO-5ajKgq#|UHirECb&{%cf&Z!
+zlcd)XEx*RC9}GX|O?@^vO-s45Qf$+!CP<m_XnFG9owQFPIy!4xKTvW~^opqtw8JX9
+zDtG9Ah1eg-f}vR!w2&s*JE>azP*EK^IFWajHq2q})qVRboMgRBDn7H5W^r;ir;=Dd
+zD0K^q2%V3l1^j$`lp*&G_E_HdA?)cv((#t#Hkj;#j9ex04*}7nOSB_h$>+YoHB7C*
+z;*$+&B7s%2x1kTN3Z8vNlRi%JpLnZuZ{`~u*&U~zZ01H<Dd04#SlS0`c+^bZs``?w
+zlb@_n)@cTofHi)vK8DifhwT~~yx0fLw_=}?Y^_MUk0nItxHf|{L)YZ?#3@o0duf=t
+zPaj;?m98?~6-#3gOqFBJYKBSCH5o>e5wtCWd<JW+`#{{Eb;Ak9E|U78lBLm&%`mU0
+zeE93GD4OY+D>+oHKFD=hD0@Bo97*rWy~nkJEfA7SNjeiBLwb_sXizKE2UQhQayyzl
+zNTI>e3*WA9ft)qV_HF+eK=OXed%<t07ZTjOPB@+lrrjA(w>uZu0+EZ=1$XXqB6VDy
+zTv}4o3pMu|VvbBjlA2cBxygRF1sEkS-T9>KXd-7cA|rBp!QJ8&SHme@+NPa4E48~?
+zz*crV3sgKwYR$)u2Eu#c{L_89oaKi}ZxYy~Wn@}GGf&Zc<?el?f`}zuJr2D9CNr%X
+zr@~3pXuk_oi&l6|+qt;*S`g_?nI+rFb-i%-Vn+YNm<ZaTbcyFe;jQ3)G~?5VEQMy$
+zep~s5WH0Pub2+|b-x`vfVPvoDgI2h6MB%dsK7PF-e!zLG2ROw~RAX;LXrUS@%f9uu
+zLQq>*^UhW1_h8>>Th*%`aD-&x_@AdpTWO|+R`PAITf}yr;n7%<=z$~GN^bN(?v1pX
+zH;Yb_4zZO#IJvzIhRMVJK`W1v1Vz*z8-(;g%y1<8kA*QLRizzXHW6)*!=;ydOTdFR
+zQ^?nR$hHU6A{J)Olv8LtVVPoG_uC*~`0b7DJ|}4BQ(ez1Y4t!OpFNv<X*6wZz012L
+zeQi)7u(QRzV>j)4<7U4w-X1uu_kgEx)}0o2=wZ94Y&%T!pMD!_A4aN6S*H=$)(t<*
+z*Og>B?WY~peG^i&r5!k|kI1<UoT6dR_u2|lyP?u6LBH84l9VQ<*^YnrDLCNdWhNC(
+zTX=eJlEL|I2pbT2{K@nz$)PlF{q&u7NU1)1oTE{m^d#FiM(}VqH1*J18M?<w()C+9
+zvRc~V$kWm@D>g>a(q-Jgo`i1besbCVjimuiW>vt<PoWObjC}0ST@g;(>l&{aCDsjJ
+zl|p$Rbi2|PmwtZr%b)||-^qtpt@I>Cisq^7^mRd6;`OWpvbLlm8`q239vzTWD6m;C
+zY!7K`$GqUsiY{;-RQb?w+=V8*HY8~}y#oRky)SJIjiDJG2!7?3*ahvj?|XdiM$!0V
+z>EhFGIv{FipL>zZ8PY-p>nF2^yP(?n?3?;!&a|DWD%M%E9Z)Ji`2F=g3Mpf1i-d-L
+z7uelOSa<u~0osY13d!TkJ7K}%d)7%!=V*RDH{96q`N=D+*Y7L|BUyJjDfioU0*S-p
+z=+C7gq<s^7l)#Qo$gchTHG(yQw8C6uOH^bhbk-aDyeo~M?VU>fm2|%o?vB?)Jhk;8
+zEeI{OcwN#70_yIuV)X}T+a3GP+eUZ7l^@}s7UZ6xwUm(qOItf(`>o(`<t}&H!?S%e
+zm3uqEH&APXbf685e3nPnM4$`!eZzIX1|23njb|Bsv!WA*cI-T36z@v%yZ)8pqt^wQ
+z!e2N~E%u~+bDCHh&e93BE8Cl|yM&PzmwcZzJJba^VK)=tY7ohPWW>7lZ3n2HdB$#_
+zNg-Lvve#Cg?}9$7qCpON6wQ|$x~BVD2RN47EXz|0BUKeC?Q1OSf(vY~0;THANTa9D
+z#a#0007W&W0?`ezB%2d#6BoL>U=!bgys1G7>H2aTff3^lSdsm-v)lh1EzA6N&wy|@
+zG^&xm@titMYa9zWIU(8sHdV(dg8p7aKk%8M&9~_)Mw4y%r=XO8R@tZe_qji#4w?%6
+z^?V_8gutn1&s{a_+VOtft|<j(Kah0k>*n&&4Ih$=iq6u|brLQ=sJAHwd%b$d9PY5L
+zrY}BbjgESK`>WgJFzgPHTOVKC$#DltmxVZ5O{^eu?p~ETD4RkRbYCEiVTDk7{(hb_
+zXCZifgYu`s>STi(C)u>m=jd6qaV){GyRg{LigB6iE@<h5f2}^SoNQs}&~wbRRL|1z
+z%QS;=7o1%R_l<EE!Pc&$9gQ6-WNnSi_@z%nscB)1HU^^zYLYjKdGHj2<?*BJMrW1D
+zvB!;c3tp$_3D`UzU@(e-(sbESg0BR;8cO2Bwkwerts@t!)mBo!pBh9@bPp72D2-kG
+z_uxjR!qDQ?%g8fe=}GEHq#E>c^f4IspjW#3e!D;^FdRF6xoa&YFXfz#oqsEt`dy6U
+z3xiP#Nya6zg2MM<Pkzw+?Iuge5e@1Mr#Hn@^FM^4_}zzPt7BALL?6J+*v=WPBa6wd
+z%^}-k8mZI`il^Ecj0a#LIKTdv_(QnpzrDIOO_5CP6{<{}e5%(*Hd%&YRFDYo^e>m9
+z!up=oIw9?g$QQ1b#r)uUq<2}JKFeTGLF(1vQ}<<Ppg4M4!bfKjdF+arp)OXfXA)<r
+zh+$>$JxI2)Z($j1S=WBwE<u63cr@FROFl$TImh!OgHZ;h4ejS_6wASGuapnpj66B~
+z#Y}kqr($ZD-bx08Q4Sr)<NDc`(Lq37Uc<vpo_zlBDd9~2QoY3ZE<Oya0EZe4ny**|
+zM4Ihr*jT@iT+6fPqTBgrRLLIlAS1W}SZ<yOjk#0-Y_x>)C7<QU4JNnEw60UAGw~J3
+zeI<Oq`^~sosuCp6o#dnr%aXGUC$~y2uc2n>B=cjGN-($Oez5RLB`E8>_E;byOWwWe
+zFz5CIkEoHFb|`-<L5=P;cvY?ntQ+_k_Y7pn)o;#im^c)vx9!L<2S%v^(B!o?$f$z1
+zovae)1Ek5bnk>58@^4X7wbr5ZtAcMnb~ktyKZ2{|d(+S83&^KrmHFTBKGAcFi5y@A
+zKZ4S|H6l~lkAQz={kd5F1>}6Tp)KdK?(6Y$ykN!kzf*m7wu-1c23l3vFSY$rWVdZQ
+zYW9}ZQui#}KFSDw4D8yaU#)LFhE;LLe#}-$lAoQ<wC!SC(L2A<R|MCe&eb;mWR*rW
+ztSaDJ?V>D6UU@+FXPx&Os@lsY6n-_F)Gpp@TU-tE`J^ldFG`SoYU?HJG9&fUH%g5&
+z7}anji7v8G_X*5cFH)PwD?#q6rxhwrU8ZKd)BeE-egc*@&&~<ao`CbBH;$Xa#mVfc
+zZJ~M{sd~Mf@iPp@6Zk%vG`f=f6mrA1F5Jc;PQI_bRLJZ~33Y4AegRy+Hf=3x^&US3
+z@49)W52D1#>aX4%_m+9C_mRpu#9%yyTRtbhac+DD*&3=%>SAK#A^lC<jhS?+wv!Ai
+zuAe&M=YdbuSI^+0Vd*x<EKxG=>=!Tfid5<ju9z_f;~6|X-lCLc`5ekpOC)%8Majcw
+zyh~*SUQsiqw+Q0;ok?$v*H?ac4)ytRFFW3dkW*tMd%ri-Q#Aq%=HdF6^L$+AiSB&?
+zch-3p6(1ELU%50k#jjtk*RLqk#|VA_F-rFNS6g4e2M-NDeO?hVJ#72B(59zU5gCao
+z2IB=B%~i;>bAAaYy(&I#zAa4l+-O~IzW=>mx$#3DT)*(b#ozjE2Va6-!>=cWR>EZ4
+z`{!%LrLy$&Rn`gN`hSg<^c2N;)xfF>#}v}65P8k&bb~cD*Ql?t)Nw{|4czIq5n!FF
+z0nO|kJ&*E)$h%+W&`(_}rREDwa^U)Nw}f?`xfAjVVwT2_EwmLPkHvqvyXW#dy}nI8
+zqPTure)`vCSGivUdBd|QRX!oI;1Z9p&6_Lre0pi3xc*uBXP?EN$G%4W7rylB3PEzJ
+zw7~wz)$gcfi6>?l!LMO4dr9Ofi8qiU&RSmMD@gYJws6tl!h2L5t4Dme{#M>Bg_*Y0
+zH_*-Kl2g<aBv($PJ#Aa|UQesBjs@4Rx~JuH=@F4y=&-5xwfQ7K{$P5dA>+v%y}KfO
+zoVfl|$*s5Y!gtm}Xr1@cR4W0pVAHT9w`C>uyj3I{uAlUSA;-Z-musQl4!*U%n@@JU
+zed_+s9iONowktSr{h=lnQYnj@YvI|b^RFK}=9ACqTiHJR@KtYO!9!MDzo+?VS8ML#
+zIsm6xdT|p!Id+*nU&O;N)JnsH-x-Wr=wvvyY(HEF_4Pt*1Bdv@sdjwrW(x!KhFNvk
+zaQ&F)EH>IH-mZg#q3-wnC-}%LWAYJI*$q^Y1v9gZ;5x{-tnyiMtPWB!p_nxhd}KY@
+zyN93TzSG;QBl(>{uY;Ry27Ie@-$G!!YBT2oK62gJRN(~|KkH#~7-}EuVBea_yM8C%
+zLU_vTXyqMV^2ZOcow;7kdPi&xXBqGo%JX6!+N<8eH%VTpO=i60x;(MTh5X;BpDR;2
+zaQ%s4y1PF5aleBq)sK9Uojl~2g)*X#oa(6|wfs!|h9B?E6zFVu2V&FimbT$M<eA3h
+zX)zz4P*q>aqTk22K=a;}E0^#N?y)B3<t*hP?<qWU>K3Vmn*P3Gk^%2v!X)XqX5%|Z
+zKfYwM?TdNj6K%I|>WDw3UN}_9iR<qhj;#3XCjTDRwi#d8={}DfvejSKvZ9K5Ep`<b
+zu3t}9Q_-#Q;Ctv5&bEz`oJan0ZlCk@?Gbu!B=u1E@8GDqQjf>2_poli-2SF2Zu0)X
+z9WXSUsF(AWpQ)d&ZuHv1)#L9$;fJR^$&H&_;><|=b?%;?$m-%LM(}$eY27SR(W{5^
+z2d}S7kmV-BOt^CJW;%6TPiTrke-Blk&K=tvS`PxXw{qUT;v(<Vxhxa4;f>z&)59qL
+z-^0cI#$4&o>!B~w#JDq<i_Ayu&HCb7Nfp(N=En7-{aj+OLs6&!4%`TFEZ5>9Ki=j(
+zvAnv9deEl+J0rLr>aQoXeAv|h3r`jwH}ByjKXFa|`DR6<Ufg0jH?ChS=B{^Xd3pmV
+z_1_Z<O6Mfs54X&Vd(ljV@L%(A{a-UK*#|y$H^5<GcNtR~PV(B8`0&KuPkJxxY`Ad!
+zT!BZdE0$<}0M@IwA6^#WB%e|hBQv5t>NTDgXT$Yp)xK#xf8)dlP>pPUar6xbd0T=}
+zT4vTqYU`V46AXF-3|JPY?W_6#uSOiI^UrdSy-r@6%=T!bYL3eOU@#h>q_OyoIqye!
+zcbyco)trNz_WbIhi1jb^_UU^3V!#Kum&?`cX7v$#6z&$8^Ky`VwVz%mi@l<%UNK|E
+z^*6nln7;Ay>PKjKX``7~!%nU}5>?;3<O}t_V;?K7U+K+t-hR8TkI*})d0HWsojldJ
+zpyv3?N@|^@83(TasAtjrXf@4GpnStUzSEMOJjhznD?$B8y@sv*$$*cba_fQls(?=r
+zyyg7uMhSNE)3d8nu>0@zD&xPP{Qn3n_dJ&QReyryo#B4tO>E>(ChX}axjyN2ioKm=
+z&_4pNS#R^CKqH))mm;ZposGQCq2i3Db0c*~`#USHf9J%+(c^b*8zFns;vR2THnOjx
+zr}@Y1Hof8>gY39|oZ7Z~Y5CV1q4Wy(^BNsCG8L;?<a9Vq@5oa*c3gi=`%|B7ZNrVg
+znaKNc84DYEV@~+?&x}I74O`f`as4ujg}HofNuS~Az7H0`HLT>Q=^?+bzwS_XEB;`?
+z^}ne5E$I@9{0yt7rX*{USjo~|7JBdYbx^t8&Q39)5ym3!T;h5E8O)nEi*X%fCAa0-
+zne2P=mD=L84n2P(MCqlRG?D)TRJwhTvNkJOt89yy4A!P+x@R2ae<O67!~{HY`2vSu
+zFZjHijg>5}^G^RqUk7zl5jO{}e`Iw`P-ggpFQA%Y@}B1%3%Rb<;r2?=S}LDM7!R%=
+z#G0k!(OJ$WXwtUuExX1-R%&hDCCA%M{n&GUk`eqFmL0tM_|x_#IKnA8tMAQ1)_-UJ
+z{Tcfm>gEv&E3RKdM6kQvHKPeE)6ZQyvw?-&`}p}XnrXLQoq`Zk|HZImMeoL;Cg3Z-
+zFQ2r4g*>07p*F~}g_`F$iQ2y};O@@Xdu-iTc;zy_^1vWQ=EqVb4c>O^N$v`phwG1!
+zjy^Kh6#W%^w4c7{tHQ`(Z_9<hE4<aCUtmY|{|gB6KWV<y_!V^gWR@&T!pNlt{l~1z
+znyCvfTB7%tFJRtYG;~$@8%)@=dkG)I$Sa;5?(v0B)GR4Q6n+!LC5T9j_<e(fpyT?v
+z#u(Y(+-74<S3LD%$L3#*;3nwa80&QY**CbpQ&6!>8YA1K6-?X-eXn;o#dDTHZvv@1
+zM*<D_n!$dl13k8j0dmfbSmT~vJyz$2dHDYSZ%*BxbkJ^wz#I<Rxg-W0Ub=cz%cYsR
+zQ(OV%|5xa~FDsS5ry0sS-vm4|W5DirANMV+uct<F0uR1_{;<_lqHK6GaA$22T{=4p
+z)rTuH6P`V#+TXdwg70tt(<<Q0gImpT!?Ju|!QEMyv0JW5?s~7s!oLUo{(OZP9_#az
+zhGrO^@!;R(JPXNIMHjO_HtE&atwZ(i8+aMLH1T9K1KHv=NowIN6#tS7>>qwkjjiKH
+z&;Jd$>o+IFDz(7o)6vTP4Kt9PZg{cmSg+oKw6!w~`Zv%Q@D};Btp$QIId{E?odN%w
+z2d3Fn8uc(yQ`G){gBQkUY_<lpfV;x>&|4d4;E}81I(37`dM<w38H|O^uwmUtuCc5Z
+z=wnES$Fk3WsPqrztGnv-N?F=a{xn1Awe0(kU$?-$tJ?yPR7}I&hQ+%(-QVfab&fIj
+z_b$J`MX35m3q%~+d`<V{G`z1&GXHwMmui$}kKS*Z;pOZ8{P9Jt@K{CLcYN(MR8?JP
+zo7~Vu?RNBK!}rJT9!dtQ&8?8Xb;3L8=M=18;43!%eLzp)undDiZ-&}c=WN=2TOp#Z
+zDQe+^DL8IBf1k@pv!1ya7ka#Ah*(3rcRjNejGbju9K6@Yi@O$gDNga?QoP08U5mTR
+z;_mKxL!r1k3yUqVNDIZ?-EFb`_X9jHp2<w|BFSWunPg6qbFQD!V@m<L2scvL>TOk<
+z{m^`ErJYV7%(kobw069~Ae6)U*rd%HeYiyz^}Kghk^!U7X7JIrUU>Mn?p2<xYOTNc
+zCit1SmfEt%OmF>{t(eYa(q*v{KzQnNS0|RI20Z^pISl^%c2O~b?fI_ksWRt<TwcVN
+zy}!Q=>(fcrjY#1$(u^X)*2TQ7eQF6gTR-e7sk3ks2f0;p`>C=Vi#%9z#$+RGXWYDx
+zI{4Ox#O|}}155EuKe-bPqejKh7z~5r(gdQVb2PV$rT7)P3a@`Yvi<vV#jFb8$?$N&
+z<XiZkxLyh@H;;BvaO7zLo(=i?9jzRBV1bu}rwEkE>VA#=9kg2YGczaR28i^ulVu!h
+zvVkoiFa8BX<TV0`npgMkJC;WFXjSvp%Uu6emVHx;9m+&jukOTz#Gujn@|0SgdS6(S
+zn|B~gPdQvR-<W=-)G$C5JPXG8c5wa2Qnb2)A6ZL@_sl@Dv7N8Fvx<_3#CYtyTB3yY
+zaR~lcKFHsJ<5$z}OT$8{^2Kp$Yxu?J-`(JCiI55=qwcXbWlrO+0<2By`yI@6_rPEj
+zR}R|-J?m?Pi73WEy@&QAG)~CdNJ$4gEQ|0t{6FliXB(1W$!C<RUlbX>*6XFjE@VQJ
+zPYdW5@x-0%LMw0=eeo+ZUO_0d;_W;S+C%=oEPkrPnh1Gr{5gMq^7*Q+>bSnMbJ+;!
+z?{6@k2>z#hp`i7?Y6g(^7|gPzym}8#$g&3e=>1J^(Y5Q<ow>~u35PrCuhpvBe#Gun
+zHvIId`(A`#b`_X68MrWaykI`|*kLvAIsL?b9<i^O5QIG*99`XJn~$`3uZhKxrOF$&
+zT4KiN)VSIGaagdjMc_ddR65*ovf7e&XTrB;$@OQYgkg8K|8%?1wNpM)N1-r6ZQbqu
+zgFny&wt#W=^q#oE#Fk~7;R(XI7YRf9ov!v!=IMQ+PyFR+3X!}YxU;8A{+5-bg4^ht
+z)6i~<uk?Dh)a<)jRqUG~c=d*JFR(vGO>h||m}_25XrJynTp!K-n^#JVD{~_0Qq@<x
+z;j8<86vq#VM%erMGFnQ@w(j%QPSZwTo;KtSK}4>-pYP!mo`EfWAZ-N=)w7d|#?Sk!
+z>P`y(zmbbKj~Q_0+<OM>f9JWKJAB*<7IR#wb&fgdL$n+kGq()#6ekP1fbTCUHk}V*
+zr11)DSRX23v<ELaV+R6yO~VmtbZ&fxK<)Q^$K*^~mBCdrWv9i}PGJqp*Keoptg8GJ
+zk<PwK7?d#?g&`*U=|=Wqee*;C#6*Drp(*$xVtT4|8Wo`af;bQM3nt3qrN+g=u3Jyc
+z%BFW`-KbjK^hs0+0=~nAI4MffPrQI%S&3>d!a+GNEnY6Gw7>65$pty`9Vxp-vFGM-
+z!@G;5eia!|lJ^5vlHiKhjC;knocV>*&$zLX-d>YGO}8J9yq-wy0}&4Dj754s_zxJV
+z4_{12xuxJd9|S+X$84lpDDwxxxSgh)*9pf0zIH#Aw?wT8%IIE;KXv-1_;V<E=A|yc
+z*~W>1I5v(#cm13K7??)C%0qra=ca<~cY40wy{y13;J6bR1|P$5%bhKRf3c)#4Hvu9
+z*!q-dG&Hkjst6k#wqYtYQ8OUD_?-I%naGm%l6;7%YR)BE@A|EQpzwsxr2aB;HHqod
+zU-+>tm4V08<fZ8Qvd+sH9wKk4$XBwYqX84J7`q$eoIPg77i7s@X65AD5fTqr71A}S
+zg1%3{V8U49n648hk*hB3IaTbJz`wV-$;Q)&FGUTTig$Nmb{G8hM$_EPJ$b;o;j(Cd
+z*QtPildh=R`|(&G8Fb|tFp5%mpuUv$yXg0?x&M479yd7U44BS3R;oF=TW~JA%qTFZ
+zlfo*6?ZWjH8a7CK0_HINnQC)V6%|AlQ8p!VAC?#r!VU!%E)XY)=hys1DoHnm&4-<~
+zbm!B>Q+Q|bU)&rCuyqtw9g|^_i6kpwD?pW;eZ9NAAxG+hzCCfE$1d}knJ8E*Cg4Ba
+zjMm&PiJ8xbLsUO?ABXri-BBtS%4u4E%+@?ZQ;Iqwm-rC6%_bq~LD}mslHY3j|HC9l
+z`nej-D<I!?(xlDs@2pzYa&ItX$y&rg890(!$i`z%oFZ@nTuZCkMpK02tszaa36LnY
+z-%G1VvAx~C;c@jh4ZSKT690X8)6hA1=L)((w(5er!f31U`1X$z6_DM+lIwG_Z`@%v
+z^5|kWj>|!@`Q-!3iBp-5U(x_Akn<53=cE1?5YfE*QiGWdt;JU)30dc1&0R2*4+)Bv
+zQ^Z)TDiR+ZjJpKfh}D_H+5`}`yalT2ETE{b-?SV9%1l%V6`q7f^p>zzEdUP{x7bqB
+zLFt`1GpIRB@=JVtkD3i_xy?H-(G)q%ee7n!r~!FHl}SE0Lr|Aki*?Ffe-Soiy{k8|
+zn|MS&IS{fWM+y7YV7hsgHc9nm?}}7VNo-N_A1v}HLtg<cEUBO34K?HU=B|eCR|ciF
+zgxcdXNtBz^(g&rn@u>WWw}@Kk!$VQD(CWDh%3tgLE_6jDn=ofC90sh*d1`p5ERn%v
+zVU+oI)2@}eFKzQoqj<atF6%Ts^QWy(<FqM%mevVu1ThV|f<7DAQQzqlFNLlA>kU>h
+zX-wot>@|;`BjO-K9zPfiX`DAX0Ws7pUB8j;5L{MH=Tk|Ye=S)hnB=;uYO(W1Th+L}
+zzRO0xT--^s1Ymir1?%1=P;p>@B_R$jBSN=7MVWHlIm46fid!61+-n-l^ELq`V;R`~
+zqz<lKjjq$wmYevMVt`^HyB@nQb5t{9LOzcNUR>v!8*Y&-FLygR&Gz#6nvCDYEmwG5
+zt}Q2~OjWq27RB>;bv2nk%)uK>9H9UXgj*YNvM~=1s28{vOF!#zcU(ZMH`au|U>d4R
+z)-si^650x2U}#G%+Z+VK-?38#9<p5NZ-T`4*C#;cLFAK=!Q||vZJj|+tw~yzCC+~6
+zQ*<HQz!Pr1T~!-it6xpt5#I%3vg-8ArkbAJ6w}B-gNGMV>OO{rc4qe6g0`1I$7ifa
+zQp@Zg6{oj9fQZ@hNtZy>G^QN}m0_2XaZyN0a84?Y6l5rbkBP0cBPheFh8!KGxOZ7F
+z<Sf77ojrUt0QAKN5I;y%!7!G|tt1y9q_bTV?JkQ%Prh&NBXh$&SO_KIuZ~b((&DP6
+zBd_TUyC|F-%A1_^`a;Kt5(-(UF(Y)j;aZ;$Owh=UH!lL8G2cweBbC=e#=vWSB>O!)
+z{DGgTYpf^7_U5!3Mc99lETb(4WXe~6?~cq30>-L?QVewna&abddRtlL^uu3$OT+Z9
+z_ACk6k3@q=7aTK^{gyX|^IT|v612Rg*0o(KNa+&cJC6UwX)l%dihVsOXFYo4$7vDk
+zqZnFB)tBRtWBIDVL#%iy^H}HJv_0~Rgg*vk6b=FvzkTv=-xGxd7qZ&Gke4Z?y@gT>
+zlUel&gyX`6c>*$`|2CI<tObh4IRL0^@G9c2^*4sW=|}x`*fyL0g%#@bM=}`8dH<(I
+zCJr89y(oE-DS4R&PZ3!sIM#&yb+58GW<ERM%b=11n<Vj6HlbD!qlvA0d-i=8Ip$D+
+zDf=yr(d}iU#IXfX$(f`@qji_OL>{e}lE&Z4T+7dt4W=gRgXsgRyGXk5pq$Y+yZ%(X
+zDppo1lF&F~wZT8d<sJafqEZm%N5k~^E(9JA^^u*<6fM~Ueef&k4J?kQk|6x%%!EoO
+z^zaL1WJBDVO^sPLri(eDH}e!o?NwhrFe9bV-xFX*#b_E^)S--2Gxyc|flk6NB_CQv
+z@u{Sh5;ElOy*A96q1Cv*Gs*q(V{e*by+IOMl(a@I8H~I+y!SD+cm%wLGcqQFM6RQk
+zlv+F`2Dn}9?Yc<|MriqJC%F+@?@}iEAkCwS^pcZUM44Im0s<=w@+eAqYvZzIG#RjD
+z$bDo^1cMvWM3pRSSQ$A(A+73u?Q+4kC0t{v>v0sdI~3?XZsMbF#)KY3-LZDQC4$H0
+zH&I2ouYx%7x6&8wES3c9IJYlR6Ps*W#8$W#%s5zTofXWOLY^DR6Cs2OAKk1>KU6q{
+z;WJVvfn=eQ8_6J}xap2P-cvmOgq<cdv5!pXr-ZDVRrTO<e`%qJKjYYi<xk_~wpB6G
+zi%DP?JOb=r4mY1;^fG{6eoI#>1WDxGKV$!>;6^e<qRP#PrbHLMC7g7#{sP3Z=Fp(+
+zJEfl(iByJx<RA9aQ>jmHa@|HJGSvI&Ve7wn-=w@msrHLm;t*JO-4t(gox)xd&==TK
+zlVx@204au!DE?7D!OAuqjHXE^nj$>Xeiflb##H;VktqH)nWF5JVjuZKPDof4t+bMu
+z;lX{(aUS^Y0IdBAPWLepT~k)fR0)^VRRRKMq2{r=go^SfO|`B8GBtms65-GjgAqK>
+zAoBHWNxwgF7d7RcaWY<>r08rk#PQPRS`@Nw({j-I#6KVQJ6?AJ6<!>)R2*)a4!-S0
+zMS-q$2Vd*U+~XJJ#XR4zaxbNWRp~qMn1h*<$9;1fzCz<)L2+sn4C<W*T{-W!`6S*H
+z|9;>P03{Dw%sldLb-qdUY*`i$<G%W`P9Xwm#Iqh{ow_CN4#hF`U(`sNnUjitLr+8@
+zZ`>2n;mnxA?xvxCgwWO>HKgu2QOX;CsXcVmm=kCPH+CC2>Y~KWpk<iUg6qV2YUJ&>
+z5?|%5*(fVQgHZi-<_|iVXkkElAnSE==#EXu87*vo^@h8}U5j5W;Je8`2N2O_)3^x`
+zE~_e-lC;orYPpI!BAC3LM&kNulorNz+xU>TueV34eMXN|v79c-&Z0!vf+}@r$9$n#
+z6<FThu_Nv-ku<^k>{M->nY>*7z(V==@uliDl~BzXG&hGdVn|h?PvveKDj2eJPtm13
+zHu+`4yV~pm9=t)gMx_wFVy!pAUNpm+gB;f)rXT<ngF;&0)sxN&<)C3Jv}dTl0C`ol
+zrZR3Dac3p3Da4X9DjFd0{?R+3R@9z4g__7$N$Y<>P~8BN$Xo$mgP-(0VPMlU)*F<}
+zngh9BW%bcBay5|vLF&1}ujb_stvhr@l?r;#PFjl?>aXf#+9ih#PZ6*9GQm!=7wW4n
+z$u~U42o>g{&ASmhbCGLQQpZUX#3men98%smv`p3C>Vpz@pqTrq?Cw8frYUDz(5EsT
+z+#lCma*;6n58A*pDug!qQ9-i%17w+lGt9k$S~KcBY|P~oub)Ac>TB1VngrfRtfxl;
+z!B1*egY$PPg7b{F`}uQdi$uP#=H59plj!7C`;E(pGhq`K^FY8n8`(j+sz~U?ZU6CP
+zzDj4wa?Qh@G!rwY;MeZ>XX50|;~OhauP|Ve@*ila%8$<XMz$Rh_u}UB!|(GzX7i7J
+z=aYYth;@^w@9>Yp67u_!lNCJ&m+If0FC&c``CX3+Va*&{zH{Vw-DMaL=<_Y3wHIM=
+z>5IymYA~rTn;vDVe}R=%PmRAE9f<W7nE?SkEf^Cx<QGRRr(u*-81=5gK7&&T(8&1p
+zo-N^^t2DHeWKHbAb^n|{NOPnniA|}-t}?Hc7vY^8o$lO6Kjbxtl_DOfh^LOiG781A
+zPSs&+{R_4xU(JcFG%eFF#E;<HvdP#HGLO20qMIh-Ij-W&1*!a2k*vux9@g#8!V>d0
+zjuP6u2T!wp!}axZ{9sMQ5fNKJ!fx}^yzhK3h<w(WT<W1M1+(*qG?0sX{9X5FTfrKA
+z_wvb_^d71>%ukzPKaQfe8J!lhUw0kd3teL@bY2R2(a|pr7O?77Hv*bT3v^nz<A6H6
+z5g2%tEdp%?*v%$=L_?klzh94LO9=T$izWwTBAsk9nasW3?Z^nM;R!GH(zcRcP{%yq
+z@%<u~8`Y|r;_wVV!Uoo^Os>1`*L4(Qom>Js%Pf}MTF6&!8k+qxOM;VJhoqBkoR{{V
+zpg$(kodvB;==yK4;yNNQ>X7eY0qdQQly(<Ucag-Ee*WEq`&D{3=c&#g{#rSmnyz#8
+z%2a!2wV`N<FLdtRK75sU^xIf36B|e;@{c!dM-l%#x%&R&JC3gjfi+^)<JY}qT_2r>
+zi_rMgx@e|S6lbR8>J5SOQ0bn}Ob8wKU*{@*awa+jY>g%g2p|>sf4whJRhautRn_;-
+zbKS0sL(%@6N92#+S1gb%));#f>JaySZqOv=YWA}%Oicr)U?*r>JZ%Hv{ABQQ^YCH7
+zhpJ|3zUQbv^*o#19*5$rmxv73iINmSMjFw35;|abpkaa~mh$+7b(!iS)~MgAJW<_)
+z!Xc`_-%frEx4>PW69n}C>XE+PDQ3tinzv5wn$kclNYu&J9eWQN3^+u7-S?-hJ6GP#
+zweH)Zw_E_|mlI?A#<CLCA4j@v+-Dp{^>O)Gru7Z=5`W^mziifj4BHRWw#_;_jkJ{?
+zD~Dj;gL?g9AH~)KBr|`}ruml<KajT@)uYM2vuQgQCte^~ZitK34Vx_S&1^pZu;<J{
+zDH;d&|HcqCsUZ-)xC=XL&UmiC2{8A)qI^3lH_6e9Y$N!42g<;=`&`~n{B5y*(eZr&
+z<M?y?xZOH)QO_&ysJwrvhrjw^Wwptc!SQ~<&<09j1^0x}?aP+DckP6Etaw#|f}7vx
+zO%!ofmnbi-XS2S6g_m4|pc3PXN4+1$)K(-}aglYG;ge+N9l_4$2qHa6B&zx1U_ys(
+zfuki9$4vT(F{9^_yC%2CMjz^ewmh<Xw2N?^hPH#HT=64rJ%0a(KxzuXjlZ8gDsVtg
+zynGi%mk3{cV8o{w&n3bPU9HeyYOn~~o2dR@l$zrMH}@|=C5Ek{RloXiL@$!XgkS4$
+z9`wb12+ofYLMx-zwabIHNIKr9uaCv69Qa+;cFv;Lj@3JCLW4`3&|JFN|Kh-}$3ffU
+z-e`V2o~9=lNZbJy#8-aJ;jl@OdPDbuudEA#w;UF5{C9z`{CfA{FTY}1kzSr9YlDA2
+zgG+<W#EQG`D&!@ebmfZ1(Y`)D)@^z*_ELZ9cVp}veHfZdF+HtKe<?k=ZZF((c-zYD
+zte1V$k*F0Dxs&a0rS6?dpBiC%+5VMM(>*X5%&go?HfXqsbKVtD=Lfu(Zug$thl;&z
+z-P=7nH#G%6x#uysZ7WGA6(8_u?vjNBXy?K`OCgxugc*AE+<hSUuV<OUnCAoDPiU8F
+z14)RbxJLJ~12PTMzU(D$Ib2LoqoVnb+Ybd@y!W#1iytE5A13R3C_;vH#+<3M;f_3&
+zP4X{!KPb@7jI1&vH2w%TNHMzmP(^9wd!|hBA$0NG(#{T{#OWosj@RddC(*^YfqKHL
+zkKrn=p7;lxw2R7K|EQh&5NoCF^$!KNBC~;Ib{}4ez-JAYWFHP$f0~{DhV#uJDDkrM
+z|Dc0mjFG!dfw<{fT^=2QJjfHc4GuV#)GPc#+Z}vNV|4s>vt2q$GwdCAYIlqU`V&v7
+zX2yeRyCCaRZHNgvAmgp;X%C-u-I?9_f`S|h4B|ddU8V7K^cQZM0^o+RbGCLwVu6yH
+zb^DntP_~cVSH!k6Bs=r-GWAowp#H@$No7Yz-j=mC8-5CxB$;`Z?Yi;BefBBP<PG9Q
+z{T<KDy(xhO`Zbr9>vtZmc9MOu!^MZHU`UBv0l)%%-#=AIJd@^Xdn<wvhSH|Ayg&Rg
+zAH<Ci73((e8pm~Y-Dre0S)dMdjNd_5Xk*Ye#N7W{p}tNfoj){@gju-8wXTUF-cHf0
+z)`|)uIyh*385WD8X?&Qd%MJPGqNqlCnnVK6c4M)Sd@Viu{NMF$Jezb1aWR>OpCu~e
+zrEY@eCEYFYp%+ya*5J#QbY-ipw3<q+cAdWf;&$}8fk`lBm=#`Td9i=gmTvX$_>JpQ
+z*i#XQYAg2+`xw_6YsXt#hz|+24*O;yry!;!t7g~faP)RezPxVX9an+*+($1RlBmp%
+zWxgisp#kp+T?uO_*WMm!{hYoKCihIl{AL3cvf)o(+6J$oEduXaL&y&j<}8sosvPX0
+zX5;iCZ^NkVY{(rCM~!(2a%^9ZB`;=>OH|*(64uZb-JifBgdv)`;=+e5Fjr?XKMS=N
+zb=2$mq02ZFb12!N=+`Ae)F8W-7@M#ai7#h>VqSsVJKAf^utij9;@g(hGSu9cVgJIF
+z$BraTzNmLrRd#z+(V@u(YpDD$2B*XnC9>P3rehP*ksn=f_ZcfG^0Po)a@@T6tnh*}
+zj|MlU>CME2wkRob5mwQ!Lx(6@gQicX1FPms?JkLB8)N33d!CO`SBvJZ!MD!VfK@J~
+z2&bChmGFzrXB(fOA0)_sbebboF{Q71mczm|hrYJI`^_d;BZ9I6)&6Xeg+k`1((zyE
+zU9GZRKgWYn_c-4IUB0>_CRLwL!q^4ir5RS8fkvY6dzl=B)~xg;MSZ|FHA_U3>%_Q&
+zqlAI48<WPz|Ka5T`5wLFwowtC1u{CVgyGj~I!wN;@xUkHr^XT2rNGn|iy4-a2K1?4
+zG<DDAKd_3`He)A!9gn{K&yeGr0&?0#KvKv=v`LLU5HIJmYJx8{A3PDL+eHK<S0Z*%
+zdofdmch}#vzy11zchzdr=Wtws7n5Q`OlvB8UF~(c8svn?^Y!Pw%mpfY>_=#-5f?m8
+zCw0wl1-X(R)B$?DUWokqqpEH?iC+^VG<M=_>CGTSO;Zo|sI%0<4n@Hd@HWkdI_nM;
+zp=@fs4K;p<uk2|qpO47k{%Hiovm?vVJns@dA2;D00V>FKpdN@EbuqU&<_QC_f@9yr
+zrq$J;7Z0K#E(Ck-uR56+$snI3uLivexo!Ws@ux%#dGjWS=Mj{le3ssmuI0NIfw0#l
+zR!uEMq_y|P*sGWPHbh?{m+VblkDf}nZPtpQUq<g5nv*Q0{JdV*(2)pw<LhBk=#eYE
+zEG>|K>R0c4s0Eh=!I-V0TB*2%gwb<C49%0qn3Xyv>}MXyBM+gn;Tw|WC6|1^Z$3K`
+zh^KlSxWvhA|1!D?CXqnjCJtiIN|&Rpx7!~6JFh-lX^0wQB)^S5Pnj@5jRaedu3WxI
+z0{y{BY#V%(FKu#a4XO+z!2d6B5m7r?s&_F?Ko84(=Eo#9Km=W)<Dzcwg%4fC`hm0e
+z$%(+^ytY>Bh$1pf`?(A0t^Dc_V-4J>Tq#F8<m`M#UGQ&j;Vmvd@)@6Uk^VIIHzkcF
+zzgPe!k6skAPFzyxT;p8+3X<hjm)~4#59r?px_uy0Ckt;Hr09D&v7Bvc@vT|^#r?$6
+z1LF{|!-S6-dLSlG8f-RoLZK9(16Xv3610;b*l+mtoKRYRxKz2g+Y~{r{0X$Nzn~7+
+zO4N)Bk{|s_F=rSwWQpm&v>8otMIQd3CNxqpXnEECOTL>a5OYmf$jGIbGF+1~3SXRf
+zv?OMaR#}BKe6@k{70NTZ<*yU{a7b=Bd$pShomxE-O1hs5R~)5jQGDwC;)JR7M~13e
+zj4V9AAak|LG+}V35^gtXh1(aYKAQ?a5`LKn%5MfH4MO)sRMaUg8-wE^0*~+9Dc2g6
+zs|ks43|ovn;|<(fi#NcQG;0d*BDR>puo(7Kn$5EX{I09bz7G=BwHx@w{%n*^1pAhM
+z%8<W85S!->1JYlUF!aD4ulg}>7kB%khD5apb`TC|i#Q?tKaj$A$00$Z81Kfz4Ib>9
+z{FhI%wPWUXQ&`eavE8ea?A1j=mEEhSY)Hsps#_-u#c}%(!un#I_|b^~c1^a$C0*DU
+z9KCjym0W^!u5bNUYlxuHq{!x<G%oB-8OJOSBgt#%leymhiePKTUHwv#05<!haeyjO
+z($LSsQ-YgIdJpTuXSruVnL2}!5tt{1MzP|WfUg)f=jZD6;QL+IelJGoMYh`#fsqdH
+z5<j-H5ViFD^XT?7>wWZ?Tq>-l{(0>!7UX0LgdyaI7+|HFAzYxLlIuU7)D9pvt^mg!
+z35q{xYtUD+3c!IDW`o?v5$7e|Y;K*Qh<lWM-O}0t@c+%M24XDchm?TEuXTpd^ceei
+z$7dbk|Km6hN^Nt3KiWa~ee1{=0$QBgbC!T>K-AUdr^*Z2KVc9iUt|1wI&af?$P0H%
+z-4Sd;#0OVnx_o7dRveO{o4tWCrZix8JDX|yk#Y8t*pl=y6K&R1#01~X30}@oIluFU
+ziN>h$%a`X1L<)@YTzr2)xN-@pF-=yc5{q=@`9FsrX`JabOpHX}f)3MmmBdxP27m$<
+zR5uy7uFDK9oQ*%aHl|%7EzTk`D+i_m`D1rT#~7TrMBpON#c>P-86_PXmXt_fpBk}%
+zCt7&<5g%vDf;PvMK)X{8mx!N>A|~tqUQcGLN&%xX9Mcy*37W^Zj~y#ZP3@AM-^*3m
+z?oC2}EI8sLPXD%{)>8q2=Q!8<+tX=EohW~u3Zgw&lzq{xLh*8Dc$`y6{vM-}_82G3
+zjrK0U-`9bi8v)%!=q8*|3e$D8-}YVm<mg{iam{Xbv-yuvxM^&eA%v$()D&5v!IyRe
+zw(aq3tJBc&N>fWV-?SD;pNVxRhwoYy5ZyEGq5ZXTM-+}{NW?;Ef@kK@eRA{nG+Cv#
+z|2`)Ft+O=dmSuO0nkr9Jgr+}u)?`g4FF<xX$Vx!nNiuSOC`@77X<8cv|0nB5BScJ7
+zEh2KtMFqYKtAa26#U(acd0Hl)L<tRbG@n9>+C6%u<fUrT0D+2;E9Fw*=1$J#ng7kn
+zVdPaLXn>M&Z-s~#jk)Mazftag3El>^h`*I>MfEbp$!UXl8Hsgn^7^xRH-412`R#7^
+zlh3H!*;a9r#GcYkP^Il!btaflmXYMo0Z4w1842v!TX27$1vZ+rn_WgteCx;B&l31m
+zQOIfEP5<I#Bm({$${Mw4QbW?FnN1cu!^@N5_M5LAL(Iy(>bz@Q<)i*ba@>GBXhK-~
+zgw>Alvn4VFlY-}}F^^kt63^Zh2$-jNu!%^$nK&P%oEIDY?x!QyGwKeQ5vV&20<Le7
+z9Xgc5X{)A3oo^~<QQHZescpJ6+b3^Dg_G`+mw7}jhG+4{z03-ah!lf4>x22&y==IH
+z%SN3Y`)2<(UZpoQl`UhX$1r?kBp}M;22AQq1zL5~d<t>gnX#>+^O)gEvHH=eAGydi
+zPCHh0?ooC9^|!cXHiiqPN4uw8ER4)RH<ekkvW<k4WO$gwv3=^(V=+YFo63{*lV@Mc
+z@96cQD7SkG8GqpCczr4Zzh55fyKR#TqCyod7sn?E=yLeKcNwwxbmrK6bRCtLO<RB8
+zS)a9J+LkN@^wul6HOWOjE!1RU2(am{zvb%MS+BV?nzPP+TMsU5nqV^C{jF|S{&%FB
+zS?sD0gDq$OaWcPK+vCMIrgU@rFecIJY+sf~n8|YW=WJIe9DgI|LoT^lUJ~-s!v_RM
+zrwq7e%aHS~s0%_8Gf6&ASQlKDN%C1MnVEJtcq0Rjf5IlFZl8Nt1&xdjfXS_{FYTCI
+zM(b_7j0?4kIX)t>ko+WlR$WSav&r>Qc9&^~V28v4LmUu`E6q$_i8qNWg69>37QtVJ
+zmMp%*3&Kl{`8FzHBej*ui5<#x!frthLQ744iW^`uuetWqlwq;p#^V>)w~v|e*%1nL
+z;SHPVqT{EVzcvQq-NyJ9$b)g;CwDxmhP`O<F3C{?Z(7JVe<C!+#q<c{iN7b9cQV2a
+z6Gn(wu#}OQN2Aj1B&+t0(v!t_h!(bgJlu^~<pL@5l_h*rWk3`s?Zw@!M|49Qq$w&!
+zDBhJt-ForgYH2~G1@(OvS50tbSliKvj+r5+<21oP4*9vRGwhFO(uhr`5!<<CR}nR1
+z{n7afXS@jics`Uw5|L(swln4sniM0YhkqRZ;zqzN`=tMEm<74`<JjRKo(Qg^ucG3x
+zW!}{zbL!@hOz$<$>K-18O!qM^G%Mc0gYgduC(euOxihLA2!<fjh0e4?6Xya9cOC7J
+zq}vJmc`9F)IyO1&wv+oM_GajNhOKBlXUvOG%;A%cTqnOD-L$WtxZ-eO;kRr*NL<_r
+zGk-!_mD`snYx`0P`4O-b;m|KNuC{otGj4?}CgzDz{B9M5=R|mNb5o5Ed}ZB1zW2(?
+zwvn<1Bk*Mg)9ASdu<$o?NUpvzH`^dH_X<f@E#gpp9f-N<n>dG58`Ae&iv*46xLQ7o
+z589K~G1TC9B2QH(LOFh^2c+NkY@WqP%N1oFvRZ^szwa5X#?YbkzY^6M+qeUY0;)z!
+z0!ohzaJnXC9xv<v-3L?ijjT+O##h0~;S736BF(lXiP}Ht1+G_eXqeK}k2aWjG^H=R
+z?Jb3r!Dns!SyTZy<r!uFsFfhr|7QDs(IrqM?YZqmTXM@~NgmEyKrXSH8;ld)6pRzq
+z`%AC-?agmW!Dsw&mea-=(qMKa4EmM~v$k4cl6`{i1<7N&q@Bp3LLQBTWmCyRocN{#
+zjlIX9J!e~PUQs2WFGt~SJoh65vv~OtG(xR&ijBJ&$$vB&EZ#vR_kD3Rs-vuIJbLX%
+znV<))4|z%-vgliDlL2i8%!(kpimn!_iDm=CU-sezG0U##RX1}8o5q6r;?>ixTIHMx
+z)D1q%n#=yMoJvlWa8MI%N$INQCz6+SCRF!lp}GApQxC~M2^~KUMn;f5Gm;Y}*3H?#
+zOYEX!HHHAq)l1O+k1n8}fdopygCXapBy&iuwt`&#DjxA?Uk7c$NIy)UUB>PaZv=%?
+zL;*ablTnnMk|1sOBYw~6uJ<o^CYc$>>i4}0!GaKhfcoC0!`*8)bMaa#H5T)Gwi>ib
+z${bu4fW$27L!f$^)+Gw4o>G#Yn6hA}%;a>`!cc6GyCIFs7o;PFPQ~v`Mep>Hk6d4|
+zo=w{mWTEkFCjCL+RJ7Vl9%VhNm1X(&wPWhQb4%Uw^_oS_wd6`|LtReIA6oKqCadQ!
+zj&8|v^B9O$xgCI$4v2!xlnD~hu=Jz105m}mj59p+a#C&pVY@A_JrB~Q1!02%7c?Hc
+zf#d`UGel984_0$7Jrs#wgd?yW41jc+JEQU_aBAr?OCFJ~rWP`QH$}isSk5?^;h3Jm
+zxRC(}-z76PZouOHM2?@kRi*8QdeB>#WuY2jJ0_8@zoqON9SIqWlV1(OLC3N)0&#x=
+ze7IX`8z0MfbcBgHY)nK4`q4F{bR|DkBG5|;yV}U1;KS=mU(VZuF=r$5HM?o>JCVsM
+z7r$<fx0y}rVPHt#4TL2kwrzj<wrhfN|NC?+B}Ck@vjoQu|AW8ohgL#xN{({W=Si%s
+z0b_)!*)I{~p3=T88>kQc{P5?LqqwlYBzxGoAt#M!GR1nyuWKLbxyj8GKm=sG%Awjp
+z^je}zs7Q=9jZbx?31_@0p}`(t!6vkJSEs0k*nD%?&gT^ER;0azcF^o<UCF)`T*DZ9
+ziHIY4POM>=RT6`vVGremL;FxnAt7qA;b7X_f*DgE!UpkKh}~|XYn2;Qt@kF9NdZ5N
+z=U?R3HmB`ZMMJ@he{akx=g8R+Vy+raoUi`P#ByhkgGJRrG=aadG5OB79TLSn1w{s&
+zvE}vBk5MnS5JmC}w$uiK%?w>XAW~6;fQ?biACtpfMUHW08r-7x<ZSiGeMuH3DdGG_
+z@R;3&(J?xW%q;scemHtXPIK$#C<`MaJUjoB4aA~Zp?q!=rP)tMd5ZD{eca!5eK>ck
+z!oCV?WY}=sO%(X?{4y}j(0^62K)eF~Mxzf!bhH<Q6HtXphuM7a48jO`IfR$gf_>^G
+z6GZE-mYi)v+H}c-zwcq5HT?#+g%z6pBE6;Hhq|W_1xm1GRx^nVtNX*!DB^{F5hR9$
+z?l4rs#*Nu64>DWNa;=)ii1skTa}5R{w(7`*?1JV>+-~@e0>!Zg9q2+iS?~=Q=|jE7
+zNJG+iuXOm(o&9A8(;w9bI#|i<@ylrgc*r)+MKRc@3L<eZEVg9LFuD3izlID7(O4HE
+z@aVE5QpX~-FE-8oM~bo@>(+R$OM!V2A3c-26I$v?wKiRdGUXO=j)Yp%`QdC5zeJo7
+zZglkHfV(PPqnJuW%`aj}k!?Bx71M|kglwAkdj=AtLPRvu@3@2cn146M8>@v#Wgwbn
+zzxxOTYg|cnMvahTi?dVT*aoV4;GLdzL+=l?UDFhhGUuur?db^13jUZuSNWLfe-5>a
+z9AEjHBWH}-3<Ss_>vh|L8V;0FntPG+sf-a~we<(U)9~cgr(F0!l;RK*6z3Vo&OfPG
+zOpeZ9&uYkNoO2MUFZTyh>^aV6z({VfqO&pM;d74A#svxL1o<1<aVR5+z$Rk3aYu+j
+z0EUiBFBZCX2kp0p4|@veU)@J2xxjr0<#Ca-g$Af(7#C7OJI0-~Mu<{}aU~%?Nt#uN
+zVW(nSfXoLn@0Z-StS5|~Tz3P%OgK#ugMK`YIZj*ZA%<nym0Y|2T5zi0=OyP*#g~1~
+zwVWI20XQT6(>1G=AuC;Sp7Q`>vz2r}QWsala-RTK#cu^0*nIyP-keya(Km~UN)DUA
+zKa-2AybZjM)60w9!ahL`8&oz=Zkygb4KGDb78^5lRtk=joRzKAu|+Mwh~OU=T^0hn
+z%@%Qk2@-P6#I~a~Z9|#I#e?c7m9M>_x!4)fX44twln~FVqYELhXGhx)wmFkKPMfEU
+z!Nh>vYpeouai8Z>LdYGc-*cSnTtAQdtqo@bg89=z8fMhXdy{*hhc%LC$05JTPdsB{
+zSc&-(oMT7TG!yH$p4F4&SJxfL@s6FGbNt;~@W)WE&M%v1MIC|y4^F`mrNy|zfOg)7
+zWtCi>{dh{qD?`JXb)}{3uL};FSBr?8YbK8*uHDr4xk$gyGw%1yw?ZytIb7#|3oY|>
+zKZ&{*urV<}UT&ONJ$A9sfHJYcjW6&!ee<!Mj0>q3pdN3lKp=V-oGdbwgRO2w`k*>m
+ziA)RUQeT(0F-_;>8CrCD=!iQ>;?|wgoBH2~XxtXW+tk6~6ycM@fjSoK%;#w)IQsut
+zz^Gp+M@0!YGe^s$bW0Vf{NA54i*g3m-lJ|(D-#O@2!E8GOB(yF;>@b7f}<*%URfKC
+z&3q>^pHGcNHCQe*x)5a6TSXRqfECmCC=GMrSzJ1^wMtiZbZ5Kh715Z;<TfQy=II3_
+zqh`7JIHC#=k7}Ad+@0ax<v>JgZWsRKoQ`d}gCN28kT;yAck*}t#;x)zK<GID;Q@vb
+z9Q`8jX36s~a}97^<7OP?jd4p7yaA}F27uOz8ktm$F!0lqmdYV@oaV5Z{%i-xv8}}C
+zB1lGVTo;$^dk71XkC^R5v1H=a;&sv{3KREbY__!tq6D{ULbeB<1(hZ|tt=#U0@n+!
+z*w9!8Qo+e^P<-uQrT{@`pgE9ki|M-hJ6zDP0b_p4!k=kS`Sw|=o(=|m<BqD!PbZ-3
+zV~&d8W8CwX%ESMYka7^QrUb6@Xa<F)tfJa|2cJi@=A~OXNL|qEsYqSW{f9;Cgw~ax
+z5`fy3{rY&Xl#+6@CvhM2S|h6W${_($?0a<(8Mw~A-E@6-0o@aK!lHmwQZl)zG!yZB
+z>T+5!e(u_3fv;I?u~6ujVSj9%rb<f$P=cPw^*?z^?#twc-%B#J)XNV*<D$G+H`xi(
+z|Bz|NBN7bd|Kp`)iTLyp|3zT2ZMeVJEus}x*ASU9By-(B^C>cgD5Ce)1+tGuD*r7&
+z${trEC1uJ1X4+;IANz&)DLm)h^ojm^E2TmNp!**zRQ2uEc=YNEW!x}X0ildxxqNK}
+zw3q@o`3ppC?S<6z@B^!<ee4RbReVQ%2*~pLT=sdMe&h4IYBF$v@(lR8e(<i?L#OcV
+zyVS&MMIY33Q}$hTL;l@mL;BriGja*W34M8_sZ=WF%gbM6C9;|ZfE`A;0Au;Q=?4dP
+zJ1WYlxj;D^2$W@_Y_`jfbea1=6pOz<8~S46Cg<(kZ@o%)@S56ZbhH*YC2D){O4LPf
+z<}7}q{adb5f*TzIrDr!v5W>-PV{!f0_SD|8@@+l;@L+wdF6ZC@o#|kw{JZt^?SI6T
+z+;57+1m@G6U&bhGrib`+mwC>A)&!YNBYfGkFy9!PMuOxDK&Gb_bHa%<i#CM?IIXFE
+z3}ldt<lY()Dj4VhbkE;&1zv48u3)!*L$I>ocaK+`BvRz?YhdN>+GVKHyOH1ZMFCrO
+zzEIA7WUo&|Zn541f~-xyqp^rC&YvVmX2)nYByj9Me%?v1+sKQq7mz}HF7&;-Kwo99
+z?d;&jRLXA}#^F*4BZwXB^0rzmjZ}IhrG@yb*6+3#IKcS1PL*Zt4vhk>7S7GOTPmmj
+zuFl0DOk5_s840!NfooOus`y$0HKTMOnU;f79{YB1;XgX+dtW6k4&Uco-eCt%KTTjj
+zrLnHZfwV}-rt*u$VApdupJ6D=-|_`6>pv_eHg9IyHVc5bs@b*6jTIH9oj2JcUx2wu
+zddKIy7h~#=R{hax2SPK;suU}Vy}%{hOHPPCCp8EEqX=+^sbxdg(RivBaQvu|a~=_>
+zIBgU_^G~p0?S(K?UzM#0@jO4EL0|ZBgYGQ}DzZUg0%~;uzC5hGOgi%)1o`D&DtX-0
+z<suBf#HS9z1kTI1B<`O9zO}AGXPqGHe}3!RmK(t*W9##62aw0IY(HKtJ*Qcy_D)YE
+zkg6F_-~m%_>_cU_8VkbjmXHqAygKAgCXraWwk=M+I&IiRIT-dKh4kINyI&4cA3phB
+zIrsA6E*eK<&^{-G#(V@UjlE>`GDFOaJaEclxJ+-NDSN2{iv>;Jvm2FTF13QG$zz{f
+zp6HcdW8Hc-gRD*f?=*>i>~#H{&|4CQ=V}lj$C#$y9J(&?e%f^60$GZAuX~}k*?cE)
+z7{)P`YRB93c@<ZAcdLJbsdok3Zmw;<yFmWxAM~$31<hV_vsl@L=|#EHLuyd{5HHi|
+zJydsu-~P$zK{7foXzMfoaoHu#wk_EehVP4aE39@5@e`iB(Hf-O0iAO+)2h2c;#pmn
+z%AZo_=^$Py>;tQofq^?6q}vY{rbVWYGu<zX>iVG1?^A>`)Y~<$Zqw1zfAtRf$Dl#4
+z!FHz5Y(ADZ0l%;G{WF6=N(H+9Id!Is?ah$Pf9l3&!yR&jFl7^$*WG`H%u7}rbR%vm
+zh<AiyaOfp`SV;UrP_}^l%_XY?Cj#<yi#q&(mdes&vte7FpF3%SA{!QOSRpYj0J9Ec
+z#;1<A&3%zmF8BuYSz7Cm(Kzx)GLHhNMgm;^Dt6Aj)7QNK7NxUb&!kUi`q1cQ+TK^Z
+zi(fFVu|sgezg7DFa*C&z@QC%6@75%N<0oZ66HNQ?$|3)>M1He*0*v7lryi3X#)8>6
+z44Pi-?yjp0_l_(B*M@+HH!tf&v=aSh9-B9B_df;?`Z-^Eb{_y#i0_=qw-H9L=w*Al
+zi*!I!PZHM{Fx~J;zG(ZFRcg46F6}%*NSuiICRz+>hXQ7E^QegVZoFXuqJUK<B?@xB
+z2wWGA@jTWUQo6m}a6W!~PwerCSd)d&zKLhVa%-;wvGMW#TqQqEmfXI5i`qJloOXE|
+zQC={uM}k!vk-rk}wm<pgtq()1fotS6R!`J6(-B(qd)BW$Mb;Pj-)&$-g*~{tWB!1T
+z#DPjehsh4!SzT`XKq^Jlj;D_37C;UFv}&Ez)z!H<)&#h9M1cu*Fz$`ODjl)$cVC~b
+z_kc~OZ!bZZfJ+$lJLB!Ez~e5=z3|D_7?$r@2jhIbfxabyZ#Ktj_BL}`njt~*FR&ZI
+z+p(@O(+g!7^;1XIK44};S?b|U!j~}`wzEMg#s6-u^JKa-2K*PK7r(p!Y`-1mMVN$%
+z*8c*Y?g1=aUN>`Go+j_Nfe+^IF>_%sx?sb1>g<*fAooXx9eSAQFxwGK(unVU^h}J_
+zboZ@TVkiCe#VgO+*(C&aH2JDraDBPr2ea^g1MsRmJ#OMHt*za(0lLp&6#r)$k`88w
+z`uhX_jTkZ3K_$;^D$&^BU*^H@07>j)ocG`v^L?K5%h|2?htZ&(qmWzVSpqIpxp5v0
+zGTM+j>#%!R7T9J(rkd_BrW2c<T&M2Cub?ak0?34-kT#E}HB9mLy8x_;p3$|glF_x-
+zWHEk$=!oQVC0-Ke?`%1@CC;6z`kx$re+loT8m%CUdXq}q1*9-aOu)XN&o^8H<Zg+l
+zf%k^Z*QN*4!@M(;7cwqQLL@`Xz8WY%lJz5Vmz;6f%gTphGgrZ_EngDL!7-2^CcA)x
+zy&kE{MvPmtM+<68d~;0Gx5n?y-<sIXGA&2ulSQZ>Z|>Y(hv$>K{3z7~xYnu;_FYjm
+zB|IU9>&x4nyp{d1;ig?Cqr?BQ57#J*5sJoedMIC1iM?N7w+ziEegjB8{60GuJCW7Y
+z;@%{0kHTBg@6<BHM_H@ED4Zy-NsDl*K1y#PE$fo1D2oUl-scpeVw5V7<+q^V;qi1*
+za+Jj(73OaOdw&avlg5%QPmV(WQug+W;)wVMPzt_FupIj84;}Jf-Hjeny6(X`VF8Xv
+zoU7?F(7{O#m9zn1e>l{*pAbz#Kb9vko#VOT(rziXxlX~T1>ft#SoEps_B$2bz~N+Y
+zwqY-1=TqZ5+uEjs;`kD9Ld4|3%`^5&59XUxClfR<btN1s{Z1b6M6n<W!fdb<d{_bm
+zoAlOGJ`YiuFy-Pt_`(_wRYX5B{kGY<dQ%prejD1j6qbI87o#YaINSd*{Tq;Y3%KUI
+z!U^ytj~sdv*p9M*8MNdloo(qkLKk&afa@}E<}P}v(XmIHPd@KB0cTZHmNx<qS6=WG
+z5n{bg!{d1{U=~~8hKqP=y)XG{1MKmA+wva%U)?$7yTC(S?9=wcXlmaz!159<)!R|#
+z<q=_dXpy%ORzaclwoScZV`)_c%L#b86)Ji+$8k9<NbQptn-BhZ%eF(&ksWcyKpOza
+zc5yj8dmWn>bH1GEGR>0ME8eUXlYKCNjTVjC-~FsEEp7SZTag-yER4yw*s%EYBCQ#a
+z*fgr}IX!c@jhogBMh81NlbFuIP{J0Wa(8bQsSl<oE{5$Y7~eKrb6ffUva@*I9Fy1d
+zcw<F4hYdXmR@Z4Q7RIYKj#u8Zv%|<5t%fpk?6jK_BZZg_{?bQe8)G}o+uxJ~7&cBl
+z1wH0RM>cK_$C@hzXT$Z1+QHz&<rQt9i#`&*;@8U<ZzyHMF0jo85BV`lT1LpG`^4JY
+zdw`T4Fo`Q2EKAZpUZ6KAnOozK<`Tg*UI$XTg0?!-nE;2bEdF6gFGF9cA3NW7Bm^EB
+z_z7$cqZi+SFLls!AVW9oXMp<MZrJV1axhG8>yW%%4<;`%^Su?$(s4MD;B?I^E2_jT
+z2OeiqzkON|A^jUW<_I_>ER~I!gqn?dv@Fyuo!HH`MLzGO^S^ipGsPk1!=<kAv)aIA
+zeGI|EB6GqUcETKnN?g#?G(BfAeOxSSY5PB0C9;WDV3aIwM$Z1M%*>XZ3q$ATl2noQ
+zyCu31Pm*CNh-=UK`KR}|nzOpPs1xQc_$KES-du;)+tSN93!?O0y$|v3>zdw|(NR`D
+z({Wm@6d`Aqz^p=0Sksl8h5C#B^(W81apmn%8Kf@m0B?lEd!NR*H^-ld(&{@c8cX~7
+z#BMF<X~a_k>K<DUG?Oi^9=bnJ(I;Kxep=}yXqpTx#gq-jv5=I+DVy)&4O30pl4!1t
+z+p>+9vfrF}un|%$cXrLhx9ljZfGsqed#WA`4r;REMCCSsRRO7@`nVszn8=ua5uF%X
+z&S6MY<)9l=68ZF?d8X5|2Z+)rxE4*5pz-B@6d%!#F{X8EGW#?-HBHRSK5ohY9t>+r
+z*I$}3J6o$CI^*jF)1JCf6x=Ahu}4X<AMNLX#5NsLr6>fL<mwBUz?5`>+v^P@BqJNG
+zLKgk%i3e*56JA76F^dbVsoFKSTMl;bY}-QH0r{rkrAOV;VpU0W*$ml|tYpyO=b7^u
+z?awxHsbi#?F;?7(GX#zYE%P?Oq*SD#M&nAWg^{pRHe$olZxgrXXY65T%u=;$ggR+C
+zJ+aIptOI9+lj_wLgjSnOFW*Ra&DW<v%|Du?{E^y~>A%O2TYq@IKjc8$9%FurBcNsI
+z;z|HX5m{;5>^qMlE?=+JfV4Vqxsn>=GUzldox^XwCG<*GNlCLs%oH(b&h8_alK5n}
+zVz=usVk@R4^BitxnbJoxG`6tg%gU;&rLZRmVdQB@T{Bn(_EjO8(~VZqe&?Z_z#Zk+
+z*!#^(5TB}An23q-+eRLTwkpzT$K=0H><MTbauw4S*P=YRV?|C>{S@IiyB!0pdY=WC
+zu=MoZm5^AhM6`B130pJsq`O4)z+UV(R$AY<5gg}=;@9wMMJM;vZ`3!+MG52>D0JoI
+z<?7^~L?eZNe{y6A@cu?p$(-yJwQz%a{p0*+#C)Yo$Dx`AmvNvVyNt||6qihqm)J(T
+zs|cVJvWr(RHe)|SraM?k8QYK~9mzt;YbO0!e>zX(Y>l89KGK3ZkEWOb_FfnDpIgon
+zf&y45*RMY{O}#dMclvvpx?609GLLmrObdHIeO%LH{zPenfDCj<r4rTM))5zUvS5=V
+zNWs@-N%PG-i!cc{umYb{yO`OH2Zc1fBZYdDspubz1k%ZJOaS?6kH;1eLrdNB>1WO>
+zUBF#JSmyV#wLL-3nHs+|^y{3G$iR%oCIk^SXr0^<$62Ec25Wwp&pu0JmY$ACu5tG3
+z#L^Z)R?-O#BlUE*DCTVd1eEk^s`o1SF#lRGhljk8>$|g497~U@lyJ*ebl@l3V!Zc=
+z6GZ(OYaF7VtDxlEFT8+$Ld*>`U9;NSmnH5&R6_6IInVDpm~8~{UG$udIjrVh4{Pje
+z%<B5fevJ%P8PaQ2UqFcJ4$~8Hq-ffW7B^8+nInF3=4Ax`B*DXN&$|j(a{BsRQ6~l<
+zziydVxzT(6lcaTL9;zF(_&VzBAX9qcXk?o={gd|BdII_YrDQc%wSlw3kC>+1Fl5=H
+zM5%2e4g66hE)1&P@bPK72;F2%t${;hxoSCXvpQ{_RlV){I-1_i(0kDi-26o(ULy0}
+z;1uqFIRh<JZyCn{Ktksmmkze0$%#TuTbflpw%1R;8zHw^JtD=|30W!Qz{p#D{v9CY
+znd*}=RjH@t&&KJ#QVRQVM_?LDuG&PB8=H(qCtK%GlL30oE8~KUG`l6R#Apr8nTcn#
+zI|nKMr;>s$&sJ;4p<H61&#<|9J^Qxy)D2rjmThxWv;C5MTGQc~UQTQj?nYy&u3_nt
+zLp)2Euc11gT_CQdnA-LGd@ucV8SVZuWZwc*YtC~<W}joh%yuv|Z9f>KBZ--wE&qkp
+zf}3sGOd9+p5m#k?t+^3wS*kn4k5L9c&=s3$9K@Xq`K&5V-x-5~F{Nd}J%Y)nR_-L%
+z#LX>7dFv^u;wZvIjlsywIWu(=6WOKW#FAUa7D2f)gy{jsi(0S!zT_|cV9)MO)sC8O
+zyL+2qYx^B%n@9#riU7k}$nZ5-MTebljW*lRHPwu0ESN{2XKzj8t0W{jI;cFR_dkRV
+znhp=-D7)t7w0!O<Fzz4&g_RDLtT$HIOFmWVKH;8pjTBgK`(5^!gM<;p!k^5Z4EysP
+z9o<4I!{Jbm=s&|oOLV;gH*imst5zIh69Y*DZG0J*01-3?f<J0YlROgLsfn#w#zK*H
+zQ=7WBqquxdQ7>Gi-xq^L@36LAWdurW;E_Qh-v8_m+-j2nmJ-#n6FC1C)ta{60TbSG
+zNe=EK8-)=P5Fyw6rF@6d<phxUM-mYbfTrs*N2Qc{7?8$qk{JY=)AnU$qpypnzY&Sg
+z-%jG<{Ewrnj%)J$+F!*$5n&=BH30>c5>Y{7Qz-=jv5=gA5)z|xFbSoZsDz}nN=&*p
+zX^|KuBR6`$fH7jM_wsxHc>aIRea>}#&T~KKT-Wp8LSAa|Zy#q|y?<Us>e0h6iCxua
+z%+R@mfNg3ZH!AF5mWX`vrEdFeudna}iIy7_<o+=#nGr$-6I#dtw_q#<9I_MZz2Mrj
+zU3(Xem7foaLjpRmf^+C|D-&o`0DJbJ6RWrgy-A&Nfhnd*sQ5=Bn?0phs>ptK1Mx>7
+zX;J9N1y`f(T1~2`HLQG_bgTY+KAsZNI_i=S|A0hvV7<ElE7XivFzvIbRBlLVA`;z+
+zb$2?qyKK>Et%(b0$AT7I>$dm3(AbbUSFLS7%s~vB9|!Eh=FAga$@?Fu8NF}wp}Se0
+zk;sm6DY^<Z7}o?IKgG0VL?WHKv9=4Yh1<0n)C`9fsV>H4s)hq>bCt9|iN?ZMwlcBE
+z_)cudJn_82DOH%U0E%(}5)zFZ&63i%O%1+N0k+K`?|V@*JYcQzs1L#rrzj*>2lm+<
+z@h17!3YGo{rYMGbAq+R~z$(nSZg1~bt#?ihq$qHL%4Jc5!~@YAFo}z(6X!V3+p!lH
+ziHhV}{7Q^*%s`AHH&5s7_QYGCG`IcsW3;(X!W1RiFL)h;RDV$KzM&?)627fZm1Y9M
+zV?J~5-H&}Q-3}-LIPnk1i0Eo999=jEus!$59PlINrmpOQ=)wtUJ}&_XI=Uedc~5^v
+z@4Sp5{{esxa8vg}gbCH+{p(u`7f`7e$mh&-W=i#{&f-gslO@d%)OX0|x;LdWxI+{l
+z)By-K4=5Mu{Hz!$Sm+J=V=9Id7YueZ4;{KCj`YpgURNmVhdew3_gTK{Db)bj<!|8z
+zwUFNNOP@Hj(>c$;ev^?+8XQKd$R>W&nIjpT=GHsL{@HjeFY2-W_lslv>)gDZhV8k}
+zA5`dn<fn7r6_HNhCjyGOeL7`39is%>Q~kCWr!}Kw7A`LEFK{0P*6iF3lwtB8iMgnI
+zec`;cxR<C`DmO>`Q)Oq6mXttpOVopV*7}9gBY>|l3ges^NOMw!4<IP!sIF8#w^>3%
+zbOR#r-8bpK-1R9@WztImmvW_TrQh-+0Z@J@fCK>Y0|B}G#!;Eb2X)dK{Ms>x5|s8L
+zDoNDXbScmkCmm0zKmap_#(gj9`u#If?_a+AD0Kq7^wB!zF8W2fv|Zh?-Z$KW$8bC^
+z!-wuVOV@B~PCZz^=nDwu4vms(KUOJer#~^Bu=FD8vb|=zs9oeQ9rcT6FJ=J@02SP7
+zu<aA`vH#1h$;G4m_hMeP<M}Uj9OgDTMm6TjVK!2K2_Tk^FK7XJ<6|x@&~HdRO@5^F
+zTDl6L#@`rY6?3$GP~s8~KrbdF=44ECr?%)PU){_3qU7`BGh}h{IkG5u1rc7X;fs4m
+zeUN@jipDz};cVb5MF()jNYyo>SnBqlet{F06mY6K(0(`Wmc{Pa^ys;J+cGOM+e+!&
+zhv6oDy!${(=we}P+YO6L%iBrvUghtW>^pBnU9&%KR}ot%bYCnla_CJD1Et%XbZKr@
+zJ4(vVF`@93Jy*MU<#D^%iKJip8~Pi1-wt5?N9Lm@5b80W`r`K*q?1@G|E+}&wgN!h
+z;3)9IC20{r1h<avMH3lmfLV-Bpt4x<y9QlqO2X^Y3pW-{OY<ft{n52HcrD|7s=1y!
+z=wxp*_Z~aZ3~=*Uc7u8Nl0c_wr;#r2f?&Q7S!np~1moS3T&I(+fE`7!7aH?ISIlla
+z>9t(G*l@JS-2~}w03HAaJdLriR}~-2`#k~3iV5mm66E{Ta+qhkC=olQ@TH?sXYQYs
+zLOj-0klIq#d2%W*;jv!X-7;q8DHX-nb*C#&<V6n|d<2}})`<eNiyWr8I~?wl7&Z!c
+z5tGd=)(MJ|u?H_)Y^NbSllTb+r`D1R<=UegC^{oRz&mc;EZt*LS7ILPs@suneo8*f
+z^%-d)FUjPXhL{KUt?wPyGXG&M>z<WP+g=p<bUfz1F5s}~xV)7j^U&a#w4_XqbdHRz
+z)Z4=;ql1`WU9JV51+jd=;iOgFy^ALRGBKw*O*_xebIyFK4rHGj6`6UkbCC)-%54^<
+z?qz!Vp+(eDdzJgA@*-X)J=Q6^>&)+OF8w3%W#Y@omqzJGopXm+bo_rT3Pl~a*R(&`
+zE>tO8iSTraF6254>A(LGlh>K~@a_BmqohMnw%c%jD&YsjjK*AP*E-SrvNK5c=z{dZ
+zIq6f$k0u%uUSE?INPgcC-tfL5{{NB4QmM5JACw0m_z?h8er0~-Ar$>$>SKc2jk!Jn
+z`E&WvCC-^2nQ_kdYNV(5C1NCXmGglrQ6l#eq-FWR099%jjQh6I-gE-SN#=iHNgV?7
+zm{i<hrAiC&`@pLnDCu6gcphMMIEU2-5am{E$GyFTmELPuSy|!T4mV%OQTZgsU)))H
+z=aW_A%F0H76y+jCnj*EqpA-|x?G(i`-_84wFG{#w%<JepLOqt7<&bmZOtt|(wj?>>
+zzOIZte`U;W3{Oma%<E3U&gZ(<q$QGL8<HBr{}{~Zp1-(tF%D1^6U}`s;=>h#XBQ=9
+zegZK37=SXrG5~qVH@q=?@XqQ}*=jQX3(Z4U+5Y1%)wm^f`=jJtz5w(P?F@<%o({9u
+z`y`;k*M>+(@ZaT@*5%LVKGk`&9d+|l75AMet^0sVk;?OxXYwKrDMzZtOY_Nel{O*1
+zuN<|1`7{`r=?ymiduOHlFE-EuV1vO_vX%sku2>7t`HqFyM^ikSGd8MT*>)+IqVsr$
+z=ST20ws9Nag+I*%$0M%!Uv>-26BD<uepOB`573TA7-mS4Aj$ZvI~R!ye4I+Vk}8q9
+zi+$0FJ@3Ih&K4hpc|pXgNt@-uDyrjtm7rV34bcnI#TBl=@+toa;;<x27ZP-iP_*3D
+zl-i7r(E?Y`Ke>2N<7~F{;?26r$?UYNScV7hriqF3t$^><p|vUGi#VFuDMnxFx391x
+zI%>K3qXffsShnVP+_)P~$)AAj@oqdHYhZA5uB2kKAfyU;_NVBV<Chb1cj{NPMlhdL
+z2bEASw|ASK_lC>woY>UDBNrd(&$~eSLOU#et*!2)EPcJ*F{pH*mM2^g{M1hdLPUiI
+zks}`I)bwHXyyYoP&r%EzVwZC+oaY-x#m#i#FV}Wo)U=J>+E5qQgao_HeZCM)=;M86
+z^i-&FWW#m|qKSrdNfWIX<-dLzP9&|@Q>Kj=nQ3Edpd5|BtKqI6N@|e}?Dch}%eA-&
+z2X-{POX8D&Qg!cx$N6|S+)!ZF&#L{^+Pz_(aDHEvp?)>JSJC75j?{K4!XmAXy@-Qe
+zJqS~^+i8o}Bu>@mz{3A*s~Y&niu=K)ZdlMMk({KYy-^*ZKLhce0Vn#tVu(MBbIxj5
+zhFmST%lbIA;w<QhU@iz=X$(_2uv;XK>WSl@Y6TP;Z2G-?a4w{Z#+t5r3Mw^BJ6Y!t
+zE=q}rHnD0Igj$$6WAK-DK0L9#p}sQ!H}kSIPBOV}{?VPY)WXMm4xBPzo|6Dly13tU
+za0XH(@$csjQEl?S{Rq)Hd1|L5K7i3RvMbu$Asl!mEF|aUZ&IsrfE#Q0GOs7s`&^UQ
+zw3ar@$E)9en|Upbv_(2mrAu6AG*@~#bBxyq8V?%a;rqQ<7xe3-om0S}V5ZGW5PIp`
+z9^%`g@?LKJ6)o=17~HG#7-%aJKLn$nSfn<~I$SD6ZhDfJng*`lBjnx}wlWY8y#RTF
+z+fO#rQuI-=cn;6r6LtbGV*||p<<>W>fzYp#E#B0R?OKtMr!!?5?KO^DK6{84=r{S9
+z?Uu{2=pO!Fp0?ps=YLJnlS9n;r)b*$?*fqTthVQjg;!<uoI~1e#en7`=FG*!<1MqJ
+z#dOJ}j3?19`T{Bzro`&Ez%C%(^YSknlkvQZ5Lt&u*YRXM=Y_5Eo~PRKF9iQ<?wd7t
+zdiK3if1Foiv>APxr&F1%+Ptxsq(+>|==E=FdaEM0PW>3d$v3fTn`B=%JIPlH4CrPB
+zDmH7s?V?gP3@4vvUO`U2@$g;iQXgoSdw#Q|#MQgweOiW&b`6bDN1F3&{qZc4=^Sb7
+z^b_OR8EPmflKf@z({<>-4oD86eWmnDs)D2r_^5$auuYbu!uPNXbaQL-F7(@GWidu@
+zHKzHm6=h8Lw8_zqwH1Xb*J+dUrA=?Gai7C>9okrIYr#`EiLDbOJ@5OD*YLKs<dO!_
+zfrI<Fk)a}B6bffEO_|!btz+<wK_Lj2{zbg0uPSOGWFjjqZ?;6%(JUcVZ6+NH;nDTU
+zz-Aw1>NI>JBkxLCHO0d^<aEeV>49B-Vj7od(rFZqw$kwL6t>moJ5Kzw3$dkXzTdvJ
+zGV4drItDo|el|JBG7Tee;i`9{%q2z7m6?wuz+gpnvFp{{8bUoRh*@Cy8D$Uvd-kFe
+zxq(|RI@@-<BNy$!0PQ#96CSsi2NpC0e+_t$^L^X$wgRE-zSL#aob1bUh8K}NgRZA4
+ztW|}MUJC(-7@vlmSx-M@J>|b}zvHR9>E^9z3<~|U(%aB>i@p1bwt3E+ux7iE=9|OO
+z2nZn*n0~n9K5Qzzh;{l<ru_EWY<=(FxxU>1+nF<)S&Hu?uSlRzaWW>?#u^PD@9Ly2
+zh(@n}9swP7s&xtxxJhX|YiPs$NS8cvc~`JzHdwkmS4IuC98&0#%}oA17CHSW>ha82
+zdv{=*!_=<q?08|W*7-e$wS&=EL`8-P=|}E$@>+w)l@A+%dc~)b0_&?epPpZFpWIf;
+z{oI=Vd9n1@1X1tTx8AhfpDuVO4^B;PPUID(OfXz|tg*G=MVW(9h53A=GGg}jI!|!0
+zKjxU=cLRgtXPib0ggHBuvsUQAgVOn-Qm4KNA5v2e>U{cYn&|4AI>j%uDVddTT`dOM
+z*BRYrX{gg^wOeK*>_8;y7wV1Kc_;lv_rGG0+VxPJ!Q1f<@d{UfwIET;Z5VHm-NwF^
+zLsLa5Tw(R9hxL_Khf6o9`jdV|HO)nMap^w2v<ENGrx-#!UfMhjx%sEV88W`*YqVdD
+z7libs@piXfA2(jLsC(d6N?0h7EPhUU)AdI#FkVmMIqcd|!czm>OP7s@Y+6I2bouQ~
+z9K>e&k_OBF!EYrWZ^v4M^@--TlK8}6zNU(y@+Tc;*})p<pxOCXf1k|9gQKkc6=54w
+z5N*-m(f4n52UVN-e7~Pc2x!g1pR1A%e5w;<jI8ll=QjTKYR#ma9oZ&b9pHMx_-uU$
+z&&x||r+j~`k5%V3NY&-OPpqe+7W(@>>dl06-9H*#CUHz`@VhNT2)DQ^(5Q$I$$*zA
+zJVNc%&Dlj`L>OPWh-C(4X&~D^^|r52n|Y7mOP|sf1ph)lUK$vNc0sm-A1V|V?foe8
+z_YZuql^((gxLSKRXSV5R$yLLMj-b?hpk&v0rNRSVn7h#P^R3CargGz5N>4$BZJKx@
+zemI)|&Ph*v<2n)Ym@?crn!xuU!`-kSpz&Fp+C+{>V2_D$3~lP$;@6y%LjS;gEkc!h
+zA;wpl$2X}F5CY%2^}=H|`K}|fKT$cC1Z?%9Mf59J4V1{EZhQ_kl)FR1Eyh>NrU>OQ
+z!x|t-{tGqt>rhKSUeXet_kFTWFmi*u1hfa`fd3>)`A?!(o;1&;P*B6|yX^te=+?<!
+zpu}BIc+$9ylE8tYY9c^2etlz{I|kh-8raj{$$W9(wB8W|^tXSjtk*6Mb3)-%4|TRh
+zexQ-T&&uS@B#Gw!eP&^;>UE{#h25b8X;vgFtz-FV2iaG?W4~B7u9W`%duzqa?`y2<
+z%_XPfO}OdD2kF^Q&s(!!MfyQ@e^ecr+M3BA^+s$I92E(PaAsh6ZZuOq7%}3rv+8)g
+zhy+e|Dty@9dmukIH3V|^*-ybZ$i*hPE}Lc5jmEP?T}psbavDG7R-pXt#|q+&hUa9|
+z{8oNaCge8`5|$*gR4)8nxaO(`t^f7uuH8%B%(@tvX0AUrgO+jcjCue?VZLFnccxkc
+zoC4lzgxU0aMVifOh+}%iR5FQ6w&~}bpV{5VHjbdiC(RW%guJV9YHd}u9KU9rm7qbh
+zCI76p90e)iP*x$!JM}@{IuemPR*m+&gL7oj(;srwpeZ9yBuAU;0~7>4PKpRqw(aK-
+z<{{PA3zLZKeSSY*<2?9v*AO4aziUs)qXv;TS~VWt5qF&t>c_X;VgJf`vfl-7*TM$2
+z6&RbnMX74)hk3-+hc^5nmaM<vICl3MhqV0Vy_Jcm*`5W_iy94z0$2WIHerLBPVqo&
+zM1Csnn%aQMofn&;jh2_6l#1p&6`hs@24fzaz4>q)XZ4FM?I^zxv@kQK68_UFxupyc
+zDGRNz`S^8489u(a`s9b+Krrw%&%>jNed0aQrHA@hGUyjd#=HqG?%#udyqx?QpM&*#
+zAvN_^cFHn7S#eILe!+6E>Pzx(U|q9h*M5L!r=r)dznY^e8Z&His12>C7>egX_tf{w
+zg${Gy=$mj!jcaeM*qD`TP0{=mnxW-+PqzK;pSn@C=1$Y(5Ssgm=a3-M_dr5t^R_?-
+zrIgg`q2ZTN>A2iHBWQSY<nczsZ(@E(V!*&TJ}X#^$1G|sy;B2$xxWzLq-L9E`!R?b
+zUvDHTPv35*7crS#m*XL~En}-y&t2a?z>kBjo?~Ah-Zy>)RjUWOI6u;Dw6fZEuc_+E
+zhgK|uB%J8Ce@>B%(kY-J)H>S_{=?fMbIOE>GqY;#KApP#EjNP;5`?Z25&VS|v3|%&
+z7G7MHrp`h!m>2kW#%5Cb*AB{$3u{PxS|zDG;VnPy9r)~fSGH4@->BP5i;vKbS3qqi
+zXur}I52&)5pu(*evsSCUiw(D3Ff7b)M6g6sa*GuR!pjU=(c95c$|&FQYc|z{p>QrA
+z&$0I2**&Xkxo^?SF4>niU@fqqacUnOX11b<IZz+?{xyYP{=e0OO4e+GYI7Z)ZfNsG
+z*`z8!@`Au$(3s8c1DfsBi0S645%W=|xx%xO<tg|_fE_$L?Q=-uk}NIb)349JvK;@7
+zcl8`RDmh+vA@J<e@}tqU>&G^{DUj1MG+IQ0f<a=>D${8l|99j2l+vuRba>Wr$E4e+
+z{2pca(lR%O=V!`yj@N<xH^&b*PZm>E`?kL|UJR10%A0d?eD3Of|JCXTo;xOL5+k*P
+zK|EJx2km*E?!XQ#0}|iqjC{QA!j|LPSt$+2BCcjIz-GTw1EY6%;;Wbbmc@bCf4q_P
+z?`B7up>N!76`_8fK6@7RQnD~L@1J$5WyrTRvgCBSUHIB;_2qn7*m3XP-5kSl+Iw`F
+z(CrzyRy)j9Nh!93pqTAH**!D2+T60-iS+BR7smBAI3<QjOVV+4*NLy6887yX;vbpB
+z_=`2uGkS8ee!u80Q?RCbzwmLJ$RNO8=k^x<_+tT?EKj<iIrtFfGbvDc9YznH^a_ic
+z>#2ITB|(sd!W{1aLNipZZs~@$Eagd}tw(I@kr2v8<@zRwF2&xlw^E%R!?YZ<Y|W%9
+z?x?YMcqW_w)mNh22q)UYslRE+9SKM%!RIjm`s6IZf;$8*zCNW==>ZJTGq8W9{Z_3i
+zvqEBj;&(M=VxTfozjY^q*ezS3;OU;Waqi%84w{mxU%JvY?ULIOU{K6(P4rl|fMjPX
+z1@0t;z2@LPb{2uqdw+N27w?-{PKe!JlWqL2tNyDz_iSU0*0Oz!UDDljH>Yo`l;3Oa
+zCXyjc(=*k6Q${Cck%5j|mO<qtY^$IA(C&e~Mufqe)Dx`WW;gFvIAN&nUS8ciHf^sM
+zpL`r7@pdQ8nJc`@$~?YNO4DvDUyxnV9<S8nqbj)*%R?Z9s{b&9E6GPkk5enRJ1-;B
+zXPE_EKQqq{J}23WG`${pIw@{sUt@F<&1TZ)lEm!W>){I1*JpB!4#?^P!HpFbw^CeJ
+z(m&gp*%C*uy89D4n!{|)6gK~~?P)4gDi2~h=#6V?6NmCpG{Y*VH*bYx2Ry=d_NkKq
+zM3yPhT2>6;`UwAa&U<G=ZmpOfl_I<ktMjhdKIeSjksW?Axc-Vh6*sxNMG^LOAKX&B
+zKK}i&b~ZqsIx=A%IO3(VHJ}iG*?gg2lQ4M}(sKEiV|=r<Ui=2DJWYRDV63~@5iIxZ
+zM#zR?uJgLy6MyRR=$XC>Gq&KHdLGyOV)$DyXdjoLlWreYrKghX+r#;UDwM-#eBb5D
+z$6~~TnqTZ$*g1@nJ0s_95SGFyP%W`QJ<j~l73@Op-y62JlWl^Sb5S(w4fS&e6RK6F
+zDW*RAFyQpP*yR<uz)_H7#C{kU%9qo7Ax7(WSI9f$H;3@XCtXQf0!8mnHsq%DP}Z*1
+zoc>)G#ABaL5}z))y<U71f+OsB1H;vyA<rZS{gTw1BQwjHsgC#S&iihy*Un+x0tS?6
+zYP*hQ6AaMARqern;0`Zpgh<cpptV47&#4~y6Q{e!aDL`o#N%kK?qVYP{R}88Ot|((
+zJ=W3?mpB??KBRu}VpU9tVMs_9+kG!S{73+vuisnAyJ_j%zNZV}V*LVFlEGeW72jLr
+z{+I_Mu+q=0@$Qj_X+Gwg5yI!9ujcNL13en#*bg7OejO7knx|yCS^Y$2+jP!#_Lp--
+zx4vgUKYEnU15d5K^rCe59Q>)7J?$Njm_9H_G$c)W+6P|Pk@r&-BnH*LY%}Rviu}~V
+zZ1J(4IqpJK`*Z7(^~XCF*}to$<aIq2;elrTsa?QdtJUq}Pn5Ng%rOD$*%`{Huc67-
+zgS`xk-RP^~Zq4zx2A5G2<<ss8fzNbU8>`H7Q^<(#P`W#;-2;j)tqS^D91^UUM&I)M
+z#~Mt0Mbov}tY*tHEO2jUTPd%0%XJT5>w}*#ZQnJcon=z~wE4EU%<bkU;W8URWhol2
+zbvup!F+vq{ubwC>{byU4uBg$gJ`c+<^I9~1&0&A(|3(5uq`kH(uuh6LhZ}6E@4pR9
+zwYsuQnrv3cLw-P;Xd#a#Wd$_#%DYq#8`KNLV-?A!M5H#SH&s4I@y`Y>q@tpVws{+)
+z{V{uSpa}{$V?Bk;lKuVob`+Xu<r_u`u18CHoIrL!Uqmg8$PW5r3{SSoL0Dxrdqz#m
+z|1k1@Rvlaa*F33zBPYFXte>K>w|=v^_-=rgj_2Pvp|d@`ya$qKMHWi?zI=gp?N>7U
+zcS}2?*$46*+;AV{vT7}<?i+WF<QIKwd}11T)57%khU@(WcgAQ!q?nqLx4y?DxTj1g
+z*&20ga3_62rd8lZR?iAJwYSMff$iwKFhA^<Ks0}dmE-xBq>%X3<Ga!J6y_(erMY)z
+zzL)RG1EuDv<=?|Qy!0m$ec!yVhlKw_IIxb74f<mOeg^4%#lKfXVjna%TD9^8Aw@d<
+zpLmQChknx_ycJKe3Hp839LLE}D(x(pJ8_PhP-7iFR;&{eKX&PuN3$|8Pz*^)<+#1I
+zddB#caI>d2UTZxuO_(<O!hNRvaN1kF;^%M0PX}EArTL5E2FfSiTqA{|S?OLDTPoqK
+zTgLZP_$aqE!3{O0eQg7A2JZ7cX10U%!ds35U^V$NA=srZ#$c0}j7wx1mmded#NvJV
+z?B5hPi4=6?gvhIB3QvBT{rLV}|FTShXkXl?(}@XjM_=Flb3|5zU-Q{_XXjVnpE;r)
+zz0rFkagF%0XE3j-sw)5R5w(?lSpL1N>=8RRWHW?Ro2LQA1m%$So7q9bPLvJp5TqZH
+z5jyL7s29`$%&x_eMc5gTQ!8NBnu3$l%#PTJtt+|o@n4I#bG*jbchqcl^N1|hq=xy0
+z*3Zxc`d-gG9^_|h{x?%uB0&HCe0P7m$xA%Cf1hsZW8(3)gOvnY`B6B2WVw0Mpz93W
+z)x=>hLOVwdSQe=1ww_GDgb;Vv3NpfC#cMTbl|@NuM0-rr_gCMx-=mj5py{DA^m-GE
+z7JEmp`Prwq77w$a{!G((+pm}wjm7kn1}D|#W*GQf5;xwn?|02Ec05#2n^l5QMZ4XZ
+z(s0<xmXi!w9g>3(402&^46a>62Q~MQz>T)d;*E6H4@FMw!ZbJ?j-$G+0~s5ra^lmo
+z-K}c%^5lXbT#NiqdWa+#CB0C2kR-2J=d=@(2uZ@^(pM}H;;4!(9Mbk7zCm>!)2eK%
+z;`R{N!gfGv&J%5rVGODu0a#ti?gs{-IW_|^@k*;A0aP`onJVgP9cDZMcBNu(CE*kM
+zxj9IKhz(!Fcl+RIOEu<O8#zHH?Gwx9`|lB1p#Ai;jDuW}-2+w9tOUAtB?6sdZ6naS
+zy#4uh7K3?e>vx?%5@Wd5tKArHfeK#vsk~+6E?&FQIwP!ccDMBjWypsG4_zPS3)n&v
+z+RW*)kSDcvfy6(jcrkS?=4sxY5m)zVX}5sb%mqzy#7s1Z*CZVR+gY1-OhR=oXff-q
+zBA~%{$c-`}4@;H(R&<u&!A!Y3JZW<1$-#g;PO~`Y4QKZ_)+V$q;wWiJz9Xr1nI({m
+z_Jfa7271KdpLYk21NsPAj=Y(uJH_rJ%5Ti^^*gaorVrp3&@QY(#S+N$O3T$L@5LA@
+zcrwYRPH8!|ow*eqcBlB!9ZI!~DGudE{RekfucKEBAlG0EO$5b~f6QQ;;alW~PYqXE
+zIqiF;N>*W{QoQZ<)|chyCnbY!unQv!zkb$Yuy4~Q(%6(fyt$UQ-TiwV+5c2CKJ}EP
+zt1XOd9LN*2)mHXYOk1ft&ZcW?UJnuYz{$AhYY54(73rQ5Rf=s`&K;S<9ejvf8VK67
+z+N2CZ(XkdlQw_pjs}ptI6YHt7Op9gZ#4aPX8P>b~p)rZ~(BktiP-ANJEk)tnZ8wLY
+zEv6}o4<FK9@}uV@8pNqIa?<<vC95Q>kxuK#W!KLATIisRi3e}&o|5Sk+6;ENP+_xY
+zGTx*q$=EA1O`BCA!k+rg+*0-5nA%>AwNq<Zpm{7;eaMt-lHI~~jS7WUw1f<I%EzN!
+zH)CD3>7vsD+5|$DP#VK{<{;MUY0}F`Jn}kToz7M+sRbqAPwdD>X{#?jF@SDI>i{o5
+zf{l;(-J9;X`dRo(qj$G514ZcdA*qIrj;YH{FaqDgU6$5?9SGW?b~nkA>EbXq<tMx>
+zqzGTdvK|_3*$e^kdwvs@J<*B}nAG14UIq!hK3)_HsrbGQ%{mzQvL#<9tEGi@ws_6h
+zi0vSi-nj|w?&X^-34QLhTV6Nr%#>}UjtefYmHSl}S7_9Dkc{K;);HfyB)jl{ajI|n
+z@+##&EreYU4LscC_|W0;GxXYz)7Y*sqU{ThM(Q@AJloOAd9a{o;Hqbq>H&2*=_Haq
+zgxJMyxdk3nl_;}T=9cScuWucClE(+TZEjRnW10%-A31|u1=xSbZ|5@ZUq{Ps#RVvu
+z=6XIEiJ0)w2L=6GS6wi%3G&*lHqd@E={Xf~019dRwm!A7^FtBQC}4%l-g}Lu<#xNn
+zS#zTXX=CucO|K#Y7M1ohN)8-{tf0+pHAT0VO7PkE?&uJ=LaM3FA-3fhi>9AjH{lMx
+zHuz7UEYuopLr!4J8<v%$TgUu^aQ~i%LO0_$R+#EEyx1+z-O^gPrpHpDS5M6?D6DvA
+zA<|0oTu9ont%if2NGn^$dc2GgDm{7I8RIkP2Zo<>Ra|GVC#TJ2L6h{Y4a8=&B29%p
+z;#voEwVJ49=aqvCQM>;(Vsl$+NCOVtsn1@TST*!(=A&TtE;|BTGAJvb{!)W~YWn!=
+zc60q9a4i-TJu?or*AHE6FHysD{JN|lGhq}{E-MqUJ5{T(pH0Fz)LZf5v*wn_$rcc$
+z?7b=I#@0sf)uK`#u>yH`4mkKUNUgtekadF+kM&S@d}B3$FwIH1NyEw{^|WSc1(bx|
+zLeXPZR1}jAN(v29%1p!#7Bhjq!jK@tE4#nzRSs;%FKBAHL1!YUK2S}MS@T$kwO41R
+z{Q9V&<u#nxsMh>eu~?3zguk<6S8=pkulZ|Z#tQkfN#-<~7(3V}U%v#u!T8jJPmgg5
+z9BffmDrL^+nlx+g({UD0Q3q_lxP#7VNK43M5m<@6wV_-(Q!hayUfK<+Pmyi$cKSw5
+zY!J|F?(Rkeviq^4RmHq5pSA+mCox!Xp#HK^ras1{g`7|=EABV2j{0<fZ&~~L^ivvw
+zb(6TbU5Wav7V7m+4cM|f;uVdX4PD+z|J7ez5vwWv*nf6QUdfV!J>`U>4KEy^NM30u
+zj#>A=X-pg`E=*&AoludgvIzBFg268C|KoL)Ang;LC7_kObzYAB{YnD8@@oxRz~&HT
+z`p4^$*H}g9jT)JAP%XECJi9vxiKgZ6Dh?z%`#aEEA|9&f({iVH6=^;ro}p#s5;E=&
+zb?8F)%`%iikUPb>rn7dT2NOionISxTc!}*FMGwGLhdi5_pit^wFj7O~-r)b1uy?9m
+zNId_N7lYA1*{kFt;Y`wxCT7l?02}sWr{T;uA!^UHV7n=5g|n*6_fDB0ZZtVV8PU2q
+zuo&;uKjAfzo4Sz>@7y$X!yP0XO0e)g?Sq*9R4;c4VB}};nZik{^7s(g@+o13U^m=l
+zF|aCBWByCRWB<CKjgVS!B8kCXpWaGOVG-mFATtM!ct7Y1mgiu6qPz)wy+9^y)|%S;
+z>wUaFesy<qx>DZSVyI>i&PX41KpSV@&RdSbL^dkh(y(@ZTu2ItcJC#v^KbYkZI#w~
+zhDVl!-`|Y1%xN&Qc(c%5(}&UOHOcpg473Q^^0>UUR#;hNdikH}SsvKOfJw3Vv}G;t
+zp2~o+%NB=5@IZ#)bX%q&G;kS<0E+zsG&1+g5fc6;T?Wt@+#R(+@722p@h6D~sIcI-
+zqnI9W$`>>E+kPh2pocZ0HD$>j&3(aKo*cFl&JJn|n8r;{-CSvWsO-^~8PYWcNW%yG
+zr@>x`2g2;|?~!1?nfic#w`|m<sGWcQ`KjrH@jGpG$}6B&87;rbx&}F{FQ=x0nLO10
+zc|24bM&N>!;WVCFXlm`o(b7N=pYiQdQ*bb6o22c9K<)k&GBRYe34kDD{s%qCgqQdi
+z;I%F&lp72qg!`B$&9d*AQA}+hf+1mnD;Mxlatz=)bN=+9X_D*}?9C4b(Tb$tKg|`@
+zj<_y-H_I)=E0BJdcFP=ARYd5zoZAJr^)<+rBVz0Ll!Mnd5hfOMBDHK5;R~hSl-my;
+zNZ<nqQ;JixQ<g;UxQ!Ld|26+G*t!BO1^$g!0q@Wf1g@z%;0Mzi>~9Q`ECYzG#;(Rb
+zI8nQ1yP2Mje8OxN_GT-3eTs$Qcz$1Am-&$EJJHj~_}@O87<SwZe}OW#z`n%E<x|Rz
+zSj5DO<`{?VmGRLtc@{D5e?on+at5%R{SI=Hft3e)?>oVVFG_-q)!ZRM#3ngjJG{bk
+zbTn4M2sA%s?s0|f`NrO4Q5b3yHmp6Gk8WkI7^Sj;t7YmI@(i-8(OQ37J=cpRHVf*@
+zFXU3|p9iqN5WtH?9Te;R0it=<{$QOEDu~!yV9WH2<vfcfbnv>$Wq+I|Gk=ax6u9Ql
+zSEs=&Sa&E<sIw-grfG}De!9i046FDILW3%`ehk%C4A$=yIVroG(YJk!w=}0w!d2rm
+zA(AZSXYg6*8gnwGZoRA4&LUplpu%W6l-c2g_kA|;&&+GZ4;VZyPF_>CLqT07FEn-s
+z4dc=wb-aw-{<)$7pGPH<yJj4DAKabbzQ1qkB`O!wC?lmx#*mxz*EJ59=sx=H*2}LA
+z-kkU0br}}IAWDhP*5ORJ7ICZzvGZb}c^PAbpnw34<dSJeT+?Q12xcZ_@6f~p_&toI
+zLcE%mMeE2s_0<dPuDuq?rRfn8Fg(#rq_9T392pbSkVhfQG3!T0$LEnbK1B{#D@IOm
+z@K&;lFpS=<VmctsA<CyLA`;XW3H`-?7A2C^${)0Bea>aS9vBFO^=QY2*OZ|AEhsRN
+zG#^T~->KN=j4EQid1%A8A((!5{_tn}IC%DB0T^<#&BexQJfV4$RbaS<g8n1oD^wtN
+zKyRN?oiO`?<*m+Rf9uLhro`iuz$?WQO;JubllYgYL%B~RFkNeR7ODih=F+BJvTvgN
+zV*-no8f5rlf+SY@5Sn|>ww3E|*$T4>0wX=3J1&h5i<`>EVxew&(Dv9AQrC<+z4<ez
+zu4<_y!v-=-3|s#xkc$Yu?CbhEY7t7?rB6F<HU(~88LbU}9t7ttb_eY?Nx<Q&E7aT$
+z9tj-qOPX?+{|4P^oRw8&hx4|EU%X6!BH!TZ2sLsUxTbpAPKp(!K3k(>vr?jdF22!6
+zDQJH3j@o8<6Sa&{P`@ckrGKjL+X{7L;Z1|TzYZDbM-QT>n7{Yblq8eYQD8#sNszk&
+z$(_Bt6k%n`ocA;!J$(p#2g$FlD%lii^qQ6<0O9C^kq`tEHqr$MaU~$aek>RK&Z))2
+z1K+cLxcdO%4NLFqIljyVw&uE|RQBH6HVDLOincwmsPlO==c<*~Tfapr0cs4RMK_Z&
+z>R3^gJ~)Z$AcN;qHc1eVup4U!<LcuOw*|labr1g<l$myt`A-2}hSB44kn(>eg70g_
+zRx+I%>(Y`6q)!4d4T0O_`Dn5z^mEfnTff-W6JC*Q<ee90E$;#LraSY_m~~ab%j7K2
+z<!=wQDUS>oLftX@0N+RZ`lX(sH-M%FGWAZGof@Y!21QD*C_=hpEd4cXBPhpgWB7>^
+zYt%%e^F>@})5XQ_s^^P#%O6y7x?YN#c0{K>YF01aRW-Q_5nbBNTof$g*asbMNKJ$l
+zTc9~c4S0%CnZ5Q234B6WahPOYP3QNXt!H|Ze%^&I5AI_6>aP54yVm@Dw`5VJ=V~0$
+zIWr6%EOS5g&I@>0_nSbr!7!bMG=2VstE=O9YtO6Bb(0=)nP)3}-{7ht<4ooRCp$@T
+zQSc3?Nu=^XNdlqIX|YqWcUO=I!RW)|+EWxtgPF{rZ#}1kvO!i!_ZR_Pajl7KTCIS~
+zguLsOKs5<r$X#W6WxSu1FN`(63bBkjH^=T8I@eMlBZ$z`&JD=RfBh&y!1dZH^+iYE
+z@P6sguit|HESl+pZj++P#<VdO?Rm2`RQY}xPu{Niw?)=;`yTsAt4WV`rG0j^v#I!M
+zvSdM-9s4^Nu;=kBrdG^X{20eQQ=)*Av!16J@FA8CSFxqy1SFKkV~2uH{yRGUT?{!y
+z8+DHS{HkUUVY^-5VFz$^TV+yy#8oXnte%L@7=&<#tus}u%d(3X1KQ9^D+U^DyZrpl
+zT%pokhW9pOC0fxQ7^s1QW#w<Qj4CWeZ*lgHC74F(+3-aye!hpWghsuDnPSu4fnnx<
+z2%%n=meyvt-^5$A;yzF=+lpNsXAA}XEP{SjqOpGesKNRrIP=*6-;?WB_#A=|&vU*$
+zfFct3_X>8E-{scLXk}qEQ^cfzxaLhm<x$S86w`C$j232ylRA2x9X;twJDpv6MN{ad
+zFIzN{JQHxQ!2}Wg@JGvQfxQxf00qQfOl^b<Tm(;_eIM)h<j??Nj*~U3VtBINNsBr#
+zeyJyfZ)%zv&`T1|mjY?wJ9^~KaU>Mid?Yn&PlguO9z4;)s7T*meWFp^^uY3&!}8+6
+zFuM$4?-!;?f4w^EdKrDvrEMb8k-T+6W2=O$b=A6TF^^boF^3p<f`69Z5pFYVKfog)
+z$LoRtB^bPle_qy?&robUk1<8?lM?wCdBfh)ZrumNb<fjzXx?O%f7%*p_t86ntSEx`
+z#%TfK`&Fj$T)_0eynW))Y}0QVGj|gL58e%tehDX?dx$K1NM$|wfkFQV-ztrHKGneb
+z98*~;<4d!#n>!hdiyU1&Zal2fYI`h?wX8Dqb$#DFGG`jh_f)ho)O^ah)jMHfaTj|J
+zU#!~`LoQx)`YqDPaJNTtX@v1__If;BP6^`(tv2)OSEeFdyWiPjr~N|1ls9bfJVHgw
+z;*z;C7x5=TSpj?Xi9#Q?Sq`4|j8GK~c!DlRG%4}CYhjeu-T5!-`MyC6fjv^4n!PV=
+z?LW>6T4r;W@Uh3;Nl(7l%nd(;+IZ+#$vGl{y@##{M?D}gW)sO%G}rWrzITJ*lfmK%
+zv7?*3t>ONh(d57S#pZI<BG7CZ5m927E1+CO?5Qzvz=w|5qR!C#b4BIGB}Tlox?P=0
+zjDIYXU;cOR&-<{kRU=8GcG(}m4zH|G(LJs{sK(y@;Ec%o)X$?dz%MA{le8aQ@a}Lh
+zFXce%4`O%pdZki)65{th%IFg3c?5b28P87&<foiuw<(ocxXd#kF_bCb7y6~3s(d#s
+zogJdvL_Jk(&eW5k^a190vny8n>MHfY5aVux-bRsW4=EBD%Cp(j`ZEgrk6*Zen3mf%
+zQTKL@FU#v#c~Sh({_%3x)&6)Pdi0>0jx85ZKR#f5C`e2+HMrWQEUj?y_z*Tn)4tR4
+zhK5N8bvaj32`6!{r)JK#TG=u|c@}zuo{1MN-tD{Nj8s!HM1#wXCs*V7DVD2TGf>xf
+zn}^E`<@cb!4-W^$F;Oi^ox6xbk`+3Rj!?0LBm(H^Nqi->H<4ZIEKM;c8mX#3gh&GZ
+z*Q$w5+X)q>whl<j?FnRqkFcN(Q)LK@@KAjwFzz1)ex#&&KKA<Mv|NK)T4F&VQ=!9a
+z>X%3nV$ImqG}LQYgQNW){Y`%w#r4us{qSpHk`MpR=@9skxFW9LUQfJ9gmx>)n$V*^
+zfhfkfHNpKfMAxtIU}*&CwwmR5=jx7^1Qp5FjSoW|p=ddLpd9{YYKnKK0h%~oWQ!q^
+ziqLG%=I@V^Hz%gOSHmOaWqj%TZMOSxfYP|>@P5cePMdrox=xVZrzU?N3cVmYvQ<Z9
+z{|@^D(HwLllVvB;24BW2nW8^xpNb#bFA3DS#B|?e%jM{XWE;e@PX`?-a7SIy-{@7O
+z9zW2WOJ;A_&7tSgZoiSQuRqI<BZ}9C?lBDRaXLMEl~uOQr%hAY7I*gA#$6r!LN!k?
+z(^WO@*VmKg)cfY}8(f^t)fD=k^p$hi+=Wht$7)bdLIj&>REFc&{VH*tGj%2#3GcO0
+z{8Z@F*`r}@w^ogQ4nS)Rh&}HE!~Ry=*-OaHa!B8x*QK7cD1S&QkV1t2n5R?2w6j<9
+z=$gK4i^H$BMf)y|R~n@I@a%GD@Gc{}<Q)!S)n)0f0TO19zL?<Jq$-OjhotJ&mt4M>
+zvUooQxJnJ)HXr<KX2^p_1EMfmJr#`lfl=p8Xw4RIh!K8P(m|Nmuu2WuhQf_&0;4}t
+zwU=(8b^rRPbo+J8s<b1EcLRRoigRUIxwlv272i~9z_p?U+_UY1;mB^*In+nCmBL==
+zoI)?q)*7t}x?g|t#VTQ-qyzn$h2mk6&=z#Yz16e<l3qMDA`E?Whh!W(yl<zlba^+$
+zc^)xD!zL98k9DupH}&|t(TbKNjQAdS?ZpLr*inw$V!1OpOkg-Hi_cbuk$Hl)5i)j-
+zsja~QbXU(0U+?N6zXX+|8=tQWpFH8AQ`dwBtVPQV!F#xbDoaGONzpC;91VDAMT}f7
+zjuhcdWazQHGNZ!QoLDjxlS*GXJ5;}DUkXCOBNm6q_ZlQIm)paZvK+=)0+zee>?dU}
+zBNaC;EUE3MdsgDiJ00doTt=^%tQ#I#qC(}260n(;#kFOQ&Nk_TZu7!xT5cTq%GW~;
+z^<9~)fTS-3?0vjd>wFWN6am{0D&o8~fUDufN~Xmu;~Vhb@XArGy=C$I#Jn|n_0X>Y
+zViCtzj`=lP`46=MNZ!jJ*nbHe09QR}amQ}%Mh~4d#u~&>O;_u$uIISCs66O+@a9Cf
+z=5m*FsFspyr%yimHHYwkt$kPX-HgLHP4hSw`kpmP58yig^xD+)?;h8-msa?*qpVig
+zYQ4<~#^Wdo0Zrs*1G}Jd_i~Ll5#x*V59ibvp<eciEipX?LrvxC+31`T9D-&coB1Cv
+zrb=&pC-CZ2_52bySyF+{68)1&jCO8iq2G~VnMLrH3!A4pr`|J%Xlq~a>PAyNKF$)R
+z&k8F@*vQ;no<dMv1TJ%WV1ae_K0X4~ymgz%9w+~*cW<l=W`7e(5K)&g0b)9Sb51$E
+zmv5%B!4Yt4P4^}g`wV8f(ugkqbrouY>{r%4aUW_}MI?veyuK(`tuJzfbzln2d7feT
+zcFE!56F0`STA#Q>Roc^8-*eWM)DVEBRu7leA4vUytYkUQ<~9S_4~6z(i}5`j?1?jE
+zrA^Lg;M1rrC_FBZHrMOTy!M;BZu3d*?fH9KQ_hv>$Zx_Mi1^J5EOx_U8wcNWnsH@E
+zWe$^+C1S%Cz3%DPe2W9tKb7@>q!>TCj0WuWHNYBvITb=FQXW%55qt2k2$0gfmbpbj
+zt+??)^%~3OotU3n%rI-z=*;3hEMEb;sh_@oVGhfsm;CqI$)1o-b$R<v+$mpiZ7%j)
+zM-^CDbm62OLJEBLulY7hZn)UFXe7rtN*l+1SY|>xyB+fPZSxkNdr$0Uee@c;m-j<p
+zLXuoN$4DUwz)0g}{0H|am9gG<b8YYH>g-p+QifdVb=)AKELba8V->xkv__hJM|pHB
+z0h{?6a)yjMzgoSgS_s~jp85>aOW48;f^sM?li5?rG0M|9N&hydk6y{?Cp*qc%7*7y
+za1A$U;ZDG-*nsLBXhIKZ_h7=89sFMcKGy}id)4(KI`he9Fi7#p&brt8_)wK7G|#;%
+zoAc$P@+Tx*b3L#uP6+_NIU~bryR@ytoVs3=y-$1iTAA%A$gt<;oL~I<>K7+v+e!3i
+zbbKh|0XQc<>5&AWfYJAL$h5XVdJp#I2Gs|=M?M?I7Wfsw(tN|@zsNvo=o8Sj+omCi
+zFYHdG1cScIBW$=!jQMIh4(8$dY*DWX#YeX*QPXdMJY4FT=dQsy4R3Zti*T%clg7tS
+zhm~mi<6_2HG_`qfv#{kJ%w1o6;S^Q=B#o-A14_z)b2HWbs-LG}`-V9u(rn<k$_Da>
+z-8U^7lAF0rmmj&jrspJ5wi>MH_>MNr$*Be3V02ubN!e#KScofAQ`rP-aPS*`Doc)q
+zC%z(0k<{X;sTIg>YU8zbzfkyX(TtlGgTR?%tm(`vyIAGNOz5uw^KhWXND;d)Ds+0|
+z*Xqvfd-4oe$*|r$<zv0<s#v);>B3H}FZ;^sqCQpUEJ%pqnG`p+TySK^89r9lXP~_Y
+zwSV343)`MEfA1<@H$GH%HCU}1-3oe9LU>dIg<rR<m*X8$K8dJW+l>7kbU>IlRNQqH
+zp<-z7`<-~-p;)7r(5*cBGnM*uIAXLr_yp&`=Z`t8d5lkB`=XOg!ytN3|DY_ut=)EH
+zKXV?x6<@nb*>=@wxyn3jH-Td1O|1+O%5QdDLjCx?;j$^w;w4XbU!L=fN%I6aI>|JW
+z?ctIz+(SJ5Ct$OUdlol!1rM#4H-@pq6Ck5jH*7^B105l+vnrsD`Do+O{C!yL1-AbB
+z_)8l+B_gNvLm#sW%WulVN#3!-PWjP-Qx@zxm_zl+kpwl98%t?x4Szm@&yi2A?OM8+
+zDuu7^p~YqQ0NH51&4JSo89R1I%Qe$>)$lrp7ZJV8LGB^O@6*jsddM9C7oYXL@n-Vf
+z^OAg&LThxmr)*wfGx1b|bCz1<e!ol!a?k-ZrfTUEN~X`y<m`ZXNUk&^&VfV%a{t6t
+zd~QU}p!{o2MR?ecY~}rFU#&wEM%&G3EeYz?M_4tvk-nruh7SgdzyEL`;}>!pVf(`6
+zPcA2pG7cA1qI3c%=P6DdNe}E0t4zpXUZ|ErQ)^K4ZN274b)@s#Mm@@BE1`;O@lU^j
+z-9FHgxL2o}0G0L_pdJ33>4uNYd1XB5gbpfVF!yw@JI5-00vea(0#5oOaeEdN#vNMs
+zPj-JYtVWKZ8!yTCarSTP%@_4h)jV((&m|VFo0>MUxJUS^f~!EhL4CxDNr<?N?j|m1
+zSH&;GChiR3C3XwJSxM{($@qUP*3k@L%ijuy6QLbA6I5+;Py*?pLQj890TuV~I6q*g
+z+{n=qV?!x&-k{4D_DoAt7k4jjK&L(9J)rCpL7s^CF;?&GRVxxp$c7V0)|ytW{CmWm
+z?RaxjPeOJ>W?xNkr=E4{E7~-gX{r4QjW~|>6<HA$j$nICI2i*I4ms_Xm2YTk!cMk>
+z^d2oOP+V>NL8wz6Y{2;rPUarx7Tz#)`2%=MK8c@_nqzKC52&(8BYYmRt(QWFXj7et
+z!&RXw{88?v@8h+xQE*?S<$(51W@I|Fn{_+OZhZNT|GDL-_WQK##bMmdW3^Mv!7DmU
+z69Vg_vQv>Lc!<U|2S51g-Qt4eU4GZE1|)n7eeO2G`L8wN&hSF$hdoAli4MF`dOy%b
+zd+#g5#ZN#n8ClGf)F@xeMGWB-I%olT%HC-fzG3}btR3KWBgT7%JJ@g#D*Mi><;4#^
+z#L-ayN%tm}2p`<Vp)M7oZW(lHbN{76Fvy*6a$4AapA6qQm#@ZrvO>Uo<D2H){al01
+zc8}{<%jORC02{0nlswYsWOVqlwpn@&_+7idw+B!ccAhTKoRM7QsA7ysAz6o6JWJBx
+z|4F`l2iWqN5^5>Ei9WuACT)wfwz?0Q_u`}1n0L-DHdm@!Vu7P}5V7_SKX`Ee1!vNl
+zR}-A7!Q|LRf<!$2r~z1EQ6M7cvmPPZ?-%@}Y2xT|CQj-XC)_iX35jCQGSe+ulr1_J
+zYffU+*K%#n1bKu)c8o3^gBDmMmGJC&rTu}m2@IVS>sY2Kt){sPwEMxMD8C*~NR~5{
+z-EX4p(v_M09}xwMvfHLa-RgAAdHQkk+&!nPg@4^V?C@K&WejEE&*0}*H>U%>rTL}Q
+zKxzVP8Q~%}xnTb@OHe*Kpqqx5qJ@j<z!aJLQnW&&>!7R3ovY*_v%oOC(+#*kAGMTK
+z<vfeN!^^}zxx^rT(0-WVEKIXDgWhMHIZ*`ubR@{~O)5n;l5$!De1B4?)Rx0Ng;j$$
+z1WHcgjebK8kH0c^Uj4Bw;iS-f+a&Z);HJbjr2X1g<(7$$z;pX&=Ma0Y4*OJ9?*}c$
+z$Pn&`##=!WJVDcH<|A;C)?=Nol-IJC+urr#v)`R0i0$=t%wecK1%52**)`&55t<=S
+zb%@MkUx`Yp19|)-=r~4lZlq56G0q#1+Y3FjAs$D;j58Rb9;|ivBfRWZC&3rSTY(RZ
+zaO1dq2+T?13x`|IWxb`(D|JFo@p^;EIcD1d*Cj2(8gTr%JfTPQk{fU9Z>(KiFSv_-
+zE~mG;L+9Es7T9Pl#z26kAr}opZwpe;1^4J;DtjL15}Zzqa;&t}ugl%<hYZo&dw4yd
+zf=dOx7xEZ92!~fU))#!)8-<}&IX8(rf#>O?cOKEXc!ocISbd;vn||{(YDcGYG3Tc<
+z4lKNQoYNBOS0j1Y8hyAKT(A#Yb?lVehZqoPBl3UPom2bt6ahQFI;%qnqDp_`dCebi
+z6fP{{L+r~y=*n|DwO!&rFbAjvDmIjFDRD9P>6v{+U)b7m70x4lXW+M6=^lKQDWUSq
+z>8Z?d&MA7kWKlbOXvyW+asYti%uWzw`|sG@wt?gZkmsl}=O}P2BIe{*aN0eN6<UqB
+zYgKe2ta$Oiy@#;6F}cx)=$fy7^!|1)dFDNLP(eFCbeQJlOg*9##!|TM-(yv&0nXy0
+zy@h^ZilrHcC>n-(7{JdBe%XJ%cm=rqb<BwY;B%D1jc!1)rEn#Skr!%!hc|A(8iL)?
+zrN)P)*aC8>c{f+$7tSBVcy53ubAF(7ndx<s>26Tb&r$j>boT2=F3xlsaX3vVp)YpZ
+z;1BKpD7xyuCf_z{(WL^CGC?FIBt#IHigb4fOb{eQCnddoX{A9*iILI`(oA}kbco34
+z5#oSt!20F=1MXj*&vRebea>~Ra~MT;;oDYU*h<Jvr(ay4ZktO^7aNq9srR`(ZeTz~
+zt2BhJKeB+;1WKm|M*h1fsu%P-Uj(=KX*Z5M;!eg(O(DfMUAwvjq8b3~;`<MFNea!-
+zd6!OU5OnCgO(2~z*ttd}%Z%cyc&4=J<Xn0JADzpu3X!+zjtUYkNG}5X%FtW2JLL74
+z1}x=HRX$Wt4f4L*fo1Dg>OD*(GScMJN3cQ&UVZ+vK_+Hhl!pXO1r&sCNq<T1;wIE?
+zk37m#*Zv&#m8WX)>hnH`%kU^3`>xU2cu-82AJ)Z+e`oN?!sndu!eerD#7w}qaMD`M
+zZT`?2R=BFStC67XY#JqCeA@_PiT>qBHoNld9`6PcfBw=q3txf~SAQXMP%IEt0Jaf1
+z9HbRXN`#H#<AS!Jko((bp-aFsCvRt{b82!4eiH2pInr6Fb4i^;XYp=$Pphv0L%t-y
+zYX{KXIf7JG$Bah}JL&X))O$j@#?L;IZeRzKGG(0rnv~0=Y~Pw(>hiOwT=3%d-sPz}
+zN-4J*OrG^*hyF7LrPK>L^4E$(F;Uq?Z-&g{S=Xr-7qD+Tbnf+xTM8%<YR7V-u_*Jb
+zYfnYltc)64u$T$DUG(A01{owyeRCB1LJ-_y>Z6`{S~k%EH1c=_QO?;}+$f=b5ZDHe
+z_2ZDk;Z(i_9jePEmUyU$-DL7ly3J*ZCnxb`e4qe9`0?tu#ovjt<KT~{8b}qkENrqS
+zsRcM*WYZEXv;<Q;C;|F*2m%C876ToheW?Z$ZVa!En88$Cih^@5awz^zJ^^lJjs|aj
+zUaM;vj6T4B*UNR6NyBeHE(EelcyBn^3iT)@v}PL@5n8W(F%Drrv2aeBN5c}r8Ggo3
+zZDUxc0%l<~!Cl|!HV<IJo5|>@pFi)V!6;h9qs(6!p|!>~{~d#s<|4yrsVc<^&$>eN
+z6X^2Mm2vYpU4d&4wv~ARNzpyK^5dW|F9bY3^y<0d1!MsnxRu+v&NF;0`?4xMAX)S4
+zf^T^DEOZ@tAM<vr)t?vJo5h{YJdhK%9I86_`0Oh#kZ3UwORW1ekFP?}FSD-}&H5^x
+zhb(SB&{M&na+&rV{C#?kJ&xRl&enyH_xEpz^}q*ei3h$@@GxS(AO0Y=`!w5C4G~x=
+z8UvXf3ZPBmliUt<x%(HBX<SO~;@xxuzIg;!k~3Ala#C;3u(*xUYHn56PcpuS4I9q!
+z?9M>MGLI;o&N?>G29phN^Rr$Z-PH<PO3!=Pk9{`Btkj@s*C^FWTYR@7fb5gp(p$01
+zi!{)H1I<Rq{TKX7I|KWeZR5}6Kkf^AVX00Ot%1ks$PiVdMK1Avcd00cvc>3>$=rIe
+zdyZAes4&CR=z|kg+5{L>%%D|i%w3(3!2JgjB?buYaH!M%LQ8Q!`|3w{I~dq$^l|FY
+zT#^=Ioo4&jS9(M7{CB&I9yyq9%V~`DOR`<!dD+#cEw2H~yTKZ2)3-mezsMZg!-Z=X
+zLT!@~_|cn1G9<yoRjz)=$4t)t!FjU6NN+aTG2YtWu>wc>%i=y14}rhNzqK2CeEWjx
+z=~^$&>bFKf&7tXJ?Zxz;2FldOIXl4Qq^Zrqt81-EZ-n8A17|Jp(a_}!j<M;%v%1N~
+zH3CbkUfAAcV22jsJnJ;x=(orwk|u?E=b{y%F@gX(<ImU-rp@Ud+vS5zSx58OUpV|)
+z88goA8Ei`Z$FD{xs1S6BDS>9YmCLZ>L|v#7uIe#6wxRMakmE-h>RMYNq6K6b%>xon
+zk=7GMbPDci$;0}BtMlPiktEvuPje{b?w>10{iO3@jg!b`us=B8{=%~@g@pPeze|31
+zqoap>EumdX(f$l%6uIg9-YaSeYCmq=XA)B6Jec2Fw8~F0rqWG!P`)xkh4D|S1=yq_
+zNei&M7-ggW(1voZp}>E@$M$ovj8FzrZoS=T2v&Iw2;aI0rJDmlpW#PyO5uElbq)%1
+zW6c{HeE|<0)bk5Mi3oZ%N=VecrgSELQS_;MnZpS+G}vj3K1Utoe`^R{^3V!qZ15lX
+z3>`m@<Ls92YrpfX!B;i7M-Z-o@}O>~H92D`)qRm(ZU_=Kb#0LaJ&Nx*62$+$Q360W
+z?c!r{_Wmf$mRu}yUn3<iJ^BM|o7E)fk1mQ^OhUdiE8P_XVzjCqjaAt<vt;cT0&eTe
+z)VC`c9Q#5aI&}pTy*j!SO&|xfUnXs|C~!d-nQ@5tq}onK8=f4!IWKS*!%~wD#l{?9
+z@cpuoFWb|>5R~o`5FD0k1HSv0W*+_o{{79tgnM_qU{6)a*)0_pwI|o|vyNYvRErh|
+zKhOwU(Vas7QW`ms`LCyeW&?|3KKKDOd@vnM@{zz6FTSL%(g3T2W-Civye|wxkb(=)
+zUICmM=LJ3a2&>We@C#I(mC_Ebt`2ZyB_7&J;C)Ym6sX*_i;-PdA^P32R>|5);a#mL
+zJ@SdvJRBy93%b8N`x3zg9(wd}UZ09RPjx{S2a)e=i0)=#4=%U{-$#F|&>~+z*)I`n
+zvzSaF2qH+{pzEsk+$3{_%wH`ipK&s0&?8eAjph_3y;+<16p>jhgd>d998KPY%Ese(
+z{77y~O<tYVWr!<bS7LAvrTLYlvM}37?vs9JNWu=+1p>#H7vG8P@twobJNK}n4v~8J
+zZgy;KP2v=07RXXTS8^u#c9eDTKn6w&#LE}^<L&7wk7WD5VHT|rZ&bGK=HQht6TY{a
+zEwI(K8!Rx<Q*T^#0B6gDa35zK((<sGu2vyaz+w5T#NU#r&4;`vHASle3C_fa_6(lK
+z%=6~F8&#|dD^O^5^<*Tx!85fQ@H^^Q^^vq$8B}Gc44oqu2JsS_U!2p$16avxTA_v0
+zn}UeR-ZEG6%gcYYf8OK)rT3a1L{Upe`khi1Yt(IJ7Gh7m{55w8Z{<1k{}s>VpE<v@
+zPu2^mzfMqDm(78|54?r&TDIu9E5Rb*%;UYWwkbPtyqmxfFf6fI^dTb47gk+n7w~J1
+zkaTyln7mO+`SKw1MAC;cKzETuPkeKN-AD;tx`}|!7_WDbIQUN3izs|2_Dq!KW4yw3
+zx&9j!C@y$J_xOtF;h+Ki2RSVKwCix{tm148pTLFytb!LXci$8O{}j@%%X}nVI#=8?
+zXsU%48I=+^_dx2gfo{c4l*udj5rwUg;o0C$*VkcTmUPR=PNSVgaQnxFHwe<!B=^Uy
+zs>2R7eBA!#{*StqRi}@zvX1HwC_H>W^@<PK4A_knS^2h@^G8k?NqMkwBiRYk#Yox)
+zUYA;xxx2F{2;Sp!_M>!NTg*z=3k%pvAsu^bBy~3npnAFgQ2BscB%|FjevR%hQVM=c
+z?`Uj6rc@1*!$EvJgH(ToApeV|E}SQfFWNt&oZ!}jp|STqhmHi2x&+}seypM5+(A#`
+zF{|q9`OPni9~b59%>ZhbsBJ)vg;$Xo={=DT2!!FQ&FUo}LKTzX<n0)ejSRs$P1$})
+zCJx<~T!c$Gp|HP%vaU!SBtI^Y`EY20LTZNWI<Uyt_){E=NH1<kA9Vge=VgtYD=;1#
+zZ8$VSP)**E2V62mSyz*?Fk>&?7i~7V{{boU62_E;w9sH~Y%<Z`1HBOGNOuG1fg4kb
+zgz^=_n?q;9+--`T)OKLW1*FJaHt0kOxBw%PfEv;+8ti=eoH8X#y_>I%C)+7gPeq%D
+zA86KcsXWJw^t-C#T&~MWao50*!9xGwVp@yIukHlC_(#u<e$IYO){NZ42=$=l$Idwl
+zJJJ+Ho=pNAF5^E^tLBtIJSUeUAX8{QmV-ZB{i`kQu04N+*lXxA@YQxF*1)vW007}Y
+zX%{K0;1&DW?EFiS0Bk>*g|hf(3lzpxI$OohRtr>p_P6ZLe)}g7%R#H-WjG$)e1O3;
+zy$2rH+X4iHq4Oqiz<=F-sIg<DE+*iYPuTHDy^=D!5Dq`%cg}@RMi4%M3aRoD4Z$RR
+zblv_~^B%?N?mRjvdFp`Suf{*5n#)Dc(SRf+oy|Oc&N@nJ<Rt(8kcS1njUjVI0TWK!
+zdzjhLX2qM@Bk&je-&`8hS7P{rWWIk2;F%`N(7mc_(1&KME-nFhYEeo8m%={qZZ%9l
+z41}QGGzT1Ln1Re!rA=<v)G4X#JAVZ=?vmB6#`WP%n~%_%YIke(zw1IgBh?Kdn)}5;
+zQ*{62_Kfde1HL^O*u`Plo#46NW>kUyUJ7*S|Flj|qq0G5HiubvW3f%I(rLd9KPhUy
+zpr0eVW%iO5Ff_K<o?=lKwZrZyB@ejPE`D&<yYF?%q|E@4Z_F8sKZ;DrN-wCEahI>I
+z<HGaW0lIY-tO-+aKMnFi%boFBSifIbkTkYz(WLIddvz??#sf6M_V>j-6ih^Dm4SO>
+z8!YQM!ZsF2Ryis=eD%fnev}&WhSNNeT^o0LHnevFo!5*^h8N>kB}>BMZ<_%RXuDbO
+zr{L0~+mI5Gz?Cmr#K#CEbXVYSvhiJNXn1v2_7$qM?Dd)hl>8cKFgXR&T`Ic%$m%;-
+z_z>!ZfI5cUCnW;)sXnaO-b~`SO1E(dSuNAnk9sVNFy0V<-7WBdF~UsApjMPO992iq
+znL*R$z6S}^9LT_()MJy71-RTJw+p`s?kOnU--_?R-k=gFoMm?LOytuU=jd?{7r}Wp
+z@s=w)>Wx4t`M#Vh*+zal<P1R?vn^w*m04owT{^3;22ih1HpA&I7~>9->K8UH0s#8~
+za=m8p?$l!~r5fhNVYebd$6I*e(M8^cCbtOn$3<JAz~eu?`qiUDZyte|h_<c2Du?0L
+zKYCnwcFvNuE_mlt`Co~|md-7F=M?p?y)xDRI-%dAeDcrB6l)a-8}@+wc?G^EQ(#Q~
+zNFS!&NPDV+x$gm6(3rnh9nXnjDRSi7ob55HWqYHvl@kTLda)P6V$J`09<XeTW2Fu8
+z-79T$G#^)b0tM%ZF6M-Sv%!U%a_3jW51g@~zkFn0*Em7m%GH1(!t9G{px3B%?aynK
+zLfMCVj~_nh>4Ow?hoQ@HoPO|;X2;p<NQm6qda8{E+cH<xFdtXMs#SmJLO?Sx{!i`i
+zWDD6$^r4N@q-OWsZnyn<dIxxExWJ1A9io8I!Ds3Cg#$qfZAi~p3e@O%NZPG290C)&
+z6`S<5-+`f#QWJe4+D#>$b7HAKH^)1=b6KfXn0A}6p0x!gy2YH^1-L<4VyH@Y=V`Z2
+z7^RZ!bmC2U*<&W)xYC>(DNLtJ{p&gIku4yYp3u4N)tL{o<yAfpD!vZwxZpPkJsDXn
+zj+5v2yEobTY9^oqPod4-uCtiik{&%9=m&bYXW=(b1N4KU@}XY^Xo!u<T9Z(YNJrbt
+zBWO{+ovcBU?8I;pl=UBs{q*gNxN#)-Kee|VN>;jSI633uV*ePNKk<FoEN>Hp3hx6k
+z@~7ZyA0IoFIfbd$#H%g2EN&j_u2DHORD=1{uel-4iT?=#G!OZbQHPPx3VgB1GGME~
+zuxmDbIYjVhCo>76xFsW{JybPc01At7D1*~rSG#O}qGmgbFmU+;!hfsYnIYfolYO4e
+zt>N4kBLVz*KEMKCI5n4+sE=Op5^s=XxeuF7;>krnx)${4JYo(k^8@luK!!ZMSqO;q
+zzU8o5e7%m?SV}o(NZ9OLt;LL8yiL<JZxrQQRf}E<)0geR8NdP4&^LC~M#zAtt%0%C
+zlS`3&^R-C}xZB-h!DUWrsEKArGK+`IyX<G^f~19m7B@4<J;R0JXJiRJKG!hR;c#)c
+zvJYkB#puQ71E8a*e;>@D?32!4<vfKy?5F-&@me^nVwu#3OIdY6ZRX<buRvCKiivFN
+z^=vt(v3q3QXz0QhNz^1bvS)dYuW<3PL)>Ww_X&${A*`CO1giVH<!#tp_3&e8aiCL&
+zE|~fT+ek3t0gv}5eh)6zRJYqg_huUw-^B(0-R6c3eer>)?g$67!O{V6C$;u9E)BJY
+za->FRo1|T>Tfy1n=^qh{;_y>guw=g<WW|t}$FqP;znGJLTk?nQDjtFR#M59&Wn^_`
+zBJgj_o%B$SyQ=|GJFP#!6|m9ZIm4g5MDfI!?hm>Ag_DbFZxF_xf<Nq{^6Ewc1H`ct
+zz2;jKFk3&!8^m3MndGMLTcGjj{{2N`f0%2-=D`3{R#MT~%qX51;;yD=5EXdV_3>;k
+ztg8Pm4)@Bf4~AA7t{ry6uC7VN5EeWUV6vDkxb0TlJy|`1<cA|`U9YG>bjL^36J(Nn
+zX_sU2@#tg*(e`co`}gFsi;@t~vUT?DTIF!oY2@mnR~QE&`FH0#ozNGoVT&drXN&a1
+z=Po>0@Z;UoOTq4VNmw}Od1%t<HI|bP5rU3fr?*MFJwkTlXG{={&@^1n9Gz0pt1l=$
+z!o;;#_^~YttAj9`w+}_(67@ATdIlEybpgh^Bbt8=`1gL&G)|Y7yL&(cV+do9gh*gC
+zfA`Adh>ir4A#q@4au7eEq~8Rj%13r@x7&fO#Yytrka>fF-Qxys^NR!4U;a&uIp46_
+z?I*OnHbv^e;Ve;TrSsN5Q`$A9>%l#z?nkI_CKok@ZhfWRCv^|~yk6B+!|*h5cP>Fq
+z#wKSvjrh=VOq82A{-Zi`WGVrBIRTp43$0d$IewEs<?t5Nsk~vvWu+{pb6l`)gR+0~
+zbsIXUnrOwhNU_8Dd(FuHRypYTB~m=a{rpTfSEdBF8WWsdwyx9+a$j832GBx%eC>17
+z#^A{XxNmM30Or;GL)i7&gC>!g;WI=q%;|c1B6tMnZ`@1qOZbefh#<YY%~gAT9x4`h
+z^2G<*|CSpmay2Yi_sH=xj_&cgF^*@4uP#RYofPxp0WcsE)RdHYy6>`5=Wm_e0~lf2
+zJ+EzbfxKd*UnI6Q$1-s5&Y>@UQ}>AQ70<O{fCto2gCy^UeF;4Z-JM<FZ3h?%Zlm>I
+zZ4m;3;n<Kya{I2kS@t;9MFW)n1pbE9eJ66CNeCObUM6?|b}p1r5)%0S06rf9kY}MB
+zVcMu#{iL^7Ng(Z_acWOoAmS^(_^Q7&mW6->hz@rmufyW-9xsRF*MrHM4d;J)O67q5
+zmrh%bW%rV|W+};e7i8=p-$sxr5WG}pylaej6T*4^-y|~jbm`VeaMxkVWKB?mO7~gc
+z``WlPg0QFX@+(BLG{B4+3aDv~&%iw1*4{jeAsq`2WD!?0@SVl()P~pd`Ej^O?a$=T
+zcnSFlcrR?8G>e<krrhlx?5xoYji5C1?2CT?3|!@`SwtCzQ*?hO&o3sgByB1Jbwb<=
+z@&Be9^wRP$w`1^hy&wxVCC$;zv3h9EWYcJ{$JFEbdeGR=-(JF=jz*{qiH4i<ZQTr>
+zn~3Vn93>$W+q^;K_l4k(aQ<}g{Zzu+tF+(HLhS;0&gMn$ycOzt%WT1<blTx<?Sn#g
+z7cwUDh)d}?f^1qgY}zGw_zF-%Rs7rPbLn(O(R?}fd4J%i&})B7hwE2QIveCb_fGjD
+zH!!8T)DwACuy(@uu&RPEl&G@HMeVKztXw8H^~xeIRIXv!M_le<!v`1eeb4hz`L8gi
+z;I5RIQ~qqJ&1tzK@UZv#=<EEt?C9fTqZAw;TSo;%#12K}zb@3KYy^P&??Ub1wsXTD
+z@gej>78+^@<B@b~#sT`<S}#7)hf+iiY)2+#Ba3ikSj^r@Xu2SUgCh9X`sXcW(6JgJ
+z<i}cabrkt=w&>ySr&y(ldZZO1#rP&gWnLbgeqj5R8D|(lEi@)_iX)}CQHhs3dscVe
+zBn%t%Lri5%x;;()xg96vtyV}wL9QQ_qTw1uUECNstTrkX{Ock-D1&n{fP3c^-4obc
+z)mG><>_Lw$>law{mF|amo{JbIAhYdcH~*>3ftfPwTm+l(*q}Bbn~AdW+6JJ;e7gAR
+zGcNu2^o7OW?Y?}Iu(Qj}qHv2pXsv3utJHV@GI5u6HTDzVMfLnrFkE=`=NiF}cV8PR
+zpm}g1gE}ex<U<x8*;HBTEO6>+NZWl=4$5~yC^1lJPQNX#p&e+U?+*fQjEeA~C$9yc
+zvkmTJnjV*{2W4Yh-}U1QoYbP3V&os#FKlAdpl_Ct@9x$>9Rc6avAB`rbWp}AiQ#(3
+z&+7o`iy9m@_G?Os?q~AswqW?FhQr-O`IRRm2kv4dm=`Z!HHWuLMc<*Q30k$bN;2aw
+zbemNAfvegGGMx1Z70*IByV?xEybprpIzivAgLzK@*KwbYU~F4CF62u!$bMW-yV_wh
+zJXhHYl#F?ZwLBy@3ao1)H13!!`?8<c`8HXCjW?nr7lGf_@O;kOgv8?%loW83^z$%_
+zWfd93xFzo&Uab_$!giYQ(for4#x(_s<gi6HGA;%zc@ZcsFLXiNr%C~Q3!qP=I46qb
+zUp7YK+y!yF8mTHu@tVb866?=8V+Qw5YZwydQf`%@*ct_8{>5I5po+YiywdSMnmphu
+zXI?6Bbw(=0Fud7Kdo9TJcL}768M_R&LGxaQRKLl>x5L(v9nxv1YmyoiqiQz|jr}2g
+zDB*U0XyTM;3@LXBox1;<h0@Ha^nrT=h8muZS$og{^r4|$fCIJ87JZnB@*l}%9%1{X
+zY5Ayp^+4#-3#Zl-aO&oR$P-tx4}2!Qyq9>UZj8J8qJ}`Ya0dR(okmc<MKbj<+3B=L
+z%@R_?!pMv4YsjC!$45WZW~uRQ?gtzEjJ-$=s}KZ{#15fhMY-VeVqB|(53r(PjXI?K
+zfIzXuTcE8t3n!7P4Ajnh!e?Uu4I(G+$>-RgG2O?{ck%xoyHo!pyLP{2sj<e7i=bYV
+z_XK=3%xaxI4guHL9>p)ghwB|de}^N(?Oz2_ZXLa7EL`<|tuk?@M_n^(EL$Ad-^_We
+zu>fSmhdVZqg*QK|Oer}v+RMBL{<8*W!@CY1*@1=6&|eI22&ECiC)oS29ZwIqfI811
+z@Yz2)y`bAKo-9DI%*D9>e5lj@&7j4Wi}p-^f>Z$g%X&dialqJC_dvk>yBTf5S|9*6
+z!AV{Bud(;i8mWhY&4+L2H}nTOK=BKXM3U`?F!lik@TV{4&P~QqQv~l??c&WVOPi60
+zR)0Vamxzak3Det9rezRF=u8yus{`?uudxOW)sCTvYh_yfkY+9uHAy%u{AWmkF`rTT
+z>6ihw<4NsVH|y0V-%lmf=ZHbxNUAz7!Dmda(-F<CFwQoOZe8yUTZ}!JgmWId#`S^-
+z9H+tB-PLuZo1~QwEpx{BsesxG%FBbhc9Lp9IC$&6q}5M&$MzGYHFjK@<SHPt_(q)(
+z+O}Hncxt~4ns^C^8}N4_58jFvb<<LKFKhVxs0XbC(%apxT|BADd*B1TrQ*mMlH*!0
+z6Ye3`bL%vZ)b!#oxEq&IHU*(OA=Df#p3M*K<D;y0Tk}|LsqovI?bEWbQ09L*VYb!z
+zGVLJ<QYqcp8CdQBkN9@n+~ZK|M!j*IE-z&@vbd^rg;@XV)gmUx?HTY9Y8glFr0C%Q
+zIorVt0fJCm49SZ55V=rBAUgN(A3rC)^#NW85aH*%;%K^F<h}ooV;4gE38pF#X6$2|
+z`{eHV7_!YE#q?wAN(_F(pt<ZrR&!b2%XCYwQIfInJHI3MJ-`YBWcQET;^M*cC&0Jz
+zbLPocy4g5J$r3UVUGq8HgwK!cU_kSsSxG18ihwQXL}0nIlq)#(z`u_fW9qCHBZ$09
+zxJvxxW1K5(jNF8D&pM}1<bo=m^%GgJJ-4rZ;gLRQvH!eH`B~(6iHrvDRs8PcQJ~_L
+z+Chx~LQO!b<|H8dDS`#Lge6o}P1kREwnGUyn=ako5m_2A7tO&>#~deqBHJLT4odJf
+zmc3ZW40e)R17cAfP)3GU7AE5<=>dicf0dTsaYHMusq!j~g@*r>R$R)V?D)t15J^8O
+z+l3X~V;<;~>YHy)<bPIEv$PwYhcB2p8<F+Y)4Uk+z2^|_<1(rX4@^9e^3C_K19&0{
+z;fA@*kU67<^cEa^sD-oQz@rST+v(s4IYt~h_nd$z0IJAsLxi2lJT-LZ%6c$hLJWLe
+zVapm+LVl7JCC+0osqyID8&+!-e9#M7fsw0?`6mUD3z!kYWb%9UV~w1i)r(Z&?FO6D
+zJPd>6)3z{ZD*l{zX{-XNOU2x_w{HAVbTEu&!5j6$72w{9y1Sz5#{WTQN4JPJl;^nE
+z7&6kD?H3#Pzf<2X>z`St>yS?ka=`Uiia9fWYE!x>OYTA)#kdT0j$D!P`9tFa6fXpg
+z!12BbOT)GUZwk;0@*9458-|c~VOl%-ly`x^l=7^oP#o_nz?<RktHZZ)pfJS=I==I<
+zr#L?1dYv|g^5X~~_wYhu(m;RJx8CAknWa-8ET#O6n<ebk5elu&O9^+_p;|@C(y^ee
+z+xU+mW^E3?hBw<8NOR8FGT0}eVK{$HT^$*-=K}|<Pp+MXvBmD;Qf`QvbSG6)m#z?O
+z$DDEJe?>==`SzbG6~Wps2EnDG?rPP&0#MeWQID*HFPkr6tbKb^Cxd7IUBAsBCxFk`
+zc@eTr=)b&7Radfag-s{`1A?N`I0o@Qog&Y)^O=ZEVcpeqJ(mdYiwgw`Qg>t^DU>N8
+zEb_yv>K^K^vZLgyTq8Jm74yMi6kMOkmxaJp)N${Z4HC`VRaquOt{i$OO}*kX@~TQF
+z%BVwxYwA+*pQDATdvb6$5vX5kwNfxW34D-xO1^T_KC&l}lVbn!+Y0*ht{u?5arbn+
+z0Yf*O_3G(xCR1s5H*3U{vrV!R(^(bt$<Sv2|5a+kWc6e$%#f%Hxn2RfDDRM{e`k-3
+zu9;7CkSijoX}_))x58;DB~*pZ0{9Y~h4e2^io9vgLadv?TMhKTMeBz>{*xke6NBSM
+zS4_t4;rrUTA0ag!=t-jVA>YV{={jVxz~&V4oM#3}m^*?9nX)Ai@2T@vO#<>^S~!Wc
+z)iQ1K?n1-4AjY7J8P+Ef;M{eVZKfx&?5u`o;gx>`==*og10vJEr%)0!asEKQbE@vi
+ztK6O*1wPUizsx4wZMeKWR1pTKYkObhYnodN02YT9S`I<A`A++<A78DpR-3H+yAc?q
+zwEfw@4Dzmkq&!yq5#>%9tIyx95yTfM9J%>;=Khmel6Cx5Hn4Ya`#=XYZ0iR_T^j22
+ze$%WDf3G+%TGt}kuIjirO9EN*C(~j1&&x*c9#|*&q;+Q;L|gavyp#J&HyxgIzQ0XO
+zsQq@9V=r^INaTPUL#6EMfWH$@UAGX&LH$P%;ReuEY?gm^we|=Nb%%Q&RTmXX(<KL8
+z4L>+A&Z6LGSD@AzE6C&LU(tc4waNJ|<y;(?5iCVC%O3i+@GK~otF{gr<jH+#Eqw+I
+zrlnZMIrSVkC7>WnZzg&i{`3B)GzSJ~o*Wl#C5wsyJP@KQD#1sPDdaPOL#B-=n8>M&
+z+#HdC%nUg#9mAD>*qy}E-3ya0AkV@x@sn2l5M-ZYKXt`lv#l|bys4<ML4EU-zSD_p
+z)9FN2P6b5+kuFCl$@i-BvLKgl<jzVLQegOcm`)Ludvc507Us*oCFu>XrXw&N0=Oj)
+z$|ki{{ntzq(u(J;%Vr^)CqWkqW@c;c16)DLS%6(X4iCE>b0*3_%{V>SWtiRjqlNBo
+zSJrB^CQmIs{<=lLnomvl-1dPN<)utoo?TqiD00l1@(g)@4fc=V_zwmJVpDxTjRWc;
+zfGdF?qIw)_*^aj@`bmF6`-y;PDj3m9Pt-z}1z8Tc4bKuEERP3wIbVkDXb<gSB>8%i
+zYhuV(M4t9U^3|xov!;TXG*rVFha}H<ltFMF(pTqma)kI1I$#uc%>MpvY+;XJFoH<_
+zDZgd@oJ0=+x_`!x=~}Q+MR}05Y6+*{ESwdbcgy@Qh=!Q9mqn~mO*m#0)(KN%#a08Q
+zpFych4BTieeLHm47YoVzvfcr0;7s`UU>pgHMFvP`;FQ4;l;14Jhr+?2ZB=nFY?cCt
+zX5jh)_*Sh&Hw+V?TCtXsWui001Xcw8^TTDf5m_pS7Nu^TEYoxc;Hc5P&)rYNMybva
+z{(G|pIa_=J5Vjb_<9%;{7J^IEyQfl&Z{Rp%@EQ$(iz%Giy9M0S94B?{IZ6J@`21T{
+zUT#6E9~9<iN67fvC&Lf5bcmVHi9BAZIFYv+C!fJnL?)JlMdSYSR<8_PP|J1UIzcE#
+z{k-npeR~u-d77Fj@C6OfB<67MxB)b%HE0AG=lMR2+%HEFkGw$Y>BNfVJ31A~2$D@p
+zA;kVK+bab8V)&@t1JkP3j!{EHZ5A|ozz9)#Vy-X>zDE#PF@7)(J~JZ+nEV4OP09kq
+zPvH+|3HR{omqRU<Px^596So@(|ELi%olLmEC%~;TVhGMc<{H8Mbd!0hbu~w5fTG?9
+zztr6o6Fg}?`Hft@O)_Wa%><X%@u@+M2(|L-U?MZcmY)ECU&HR4@7W;67Or(tC|w=}
+z!{JI^Dq*?jDVU~ew`w}7aQ0m+`El)oE|BF?K!V#&=`;aytret4)IgAD)Srj`a?7TA
+z!3++fT`3{z8|?+g3)=ieXIFV^;qym5`n`ZHXy|=R6|MkW<^<VM-PI3(87`tWf2I->
+zr_jEFGJIzJ+XTb&V(FuJtI3|1Duh?{Ww%7TL0Yvan@g0X9%ZYnI_4Qb3}H(D3Frmi
+z?(pPqg<NcEHCrp+YQVjdw`;Mt&9^DKu2Z1L4-vR+-)RUna+(kfzn?}mcI_UPTtnXG
+z(mL4m|8?yM#mxh<6SR3zn|g}(x(fY>)2|1;jol)pXKgiI3XVWSfu#9JT5=Z``A>jL
+zg0xKh%jA&GEl9pmKk-F0-2367+r340;K$?N3ibpyWd7qob@WX;Hu-0@;5QG)>llKI
+z3RyQHxR|pSjMT)_Nf3YS*l$IR(_|ok@KepK2Y6zw0nr+`%R#-iO?e2OCD!mUQ>1IS
+z0&SP$`P`}f`UV6DGtf-^P@^3*HLr30_SOUxC_>&gvqN`2uLX4FlcEzFAwjuLJ%+o0
+zN@QFrQ5<rK>XYNp14oM<HC+_e#`ayrPSX}72grNEw-JnJ!l)`!$zAJVZ~H)3$S<-6
+z_Kp$8M`#QuUY#~u#dUG>B+UD}Abv<3ODRiD?Er>V3Bm;z79&l~nTe*kQOCdBY@iRq
+zPS(zzCKiO&XzcXE_)aL@w^KxsbMOD;htg1eEUl}1kYi)%G6c)zMM!_}?HiMukUX#s
+zxshoST#q2jCtsp|=RHN8OhYR5w}a(r2(Q@xW{IG=xcBc~+*G1k#KXZs(o9_VFV7?B
+zrhC|C><RvNOc&7aVnfCw%ig%2@$^wxR04`s{x4W&mCmc|>=gp1#P_4_#n(+NzF#Q8
+z%`7O2LP=5jQAZIi_J=rn1yW(<0AaEp+@V^g>;PCqULgv@W8Bp{jZc++*TZscKn4fB
+zvHD~`(Q~17yLM`xROoxv(;q2k7^6~B{(RA-@oEy9@7pL&IxhtP6NENoo&1U+_h>y4
+z*f{&;53w~M%IC`<&q!s0nBGkNZ6aham{Aoz%ULltsWzqbf(6(9`8xdJ*KNw<$+bR9
+z&Xcf8P~-#R!x20Qo-2CB#ECj4C3<{t069E85Z@Ugo17F<Te<hqaV!{+Gms#NkG$%J
+zI3vapWY3xQVsOErDZ+2DoPThmqTuUwp-Ay<!`b}wW7h8Aey|Ocq}mN^va1aMWYbgc
+zYb_*4@vS1oNSyZBDoR>V_}Zu-CK_bYeW=+;$vG(}0yBxwFm6rsi_e(Ex_$w0n@tb+
+z5UsJp?s<p1NAeX8pU=fij5P^~x$8J?&r#*IbCAWoO4UWVZBjZT8hbkPPS|5`TpTDr
+zuln6Xpr1%L%xrl~Ib|}`x2;wN-j6>Wc7YI{C7kj0hmN*119I+}d0e<&GKXczTJC4P
+zL4Y3Yp0OPjy0ovru(nHFA<dd~Wj2a=tJ>mcTtvAK?<q%M4j}hJ$O_N}vcAOADDZrs
+zGX<3=YZk12c{9s%3EIuJ35JPaxIi<+ODvc|K2eqmK%{CZ_r9gkbK=atYnLJ;sjFXP
+zb8owObyM#P_3#_{xpCvc;cvO<9h8e|;kc9-E-N^_i%DjpO1xI$zL<>F$w{T2TS#1&
+zr6%N<{8tE?u^}TRS$Y3-Yh9o4F+NW6!h>cIa}vj-*UeaaY?*0gkx4*(LXP7&IJqoB
+z$U!ZZJ)Y2Zvo%}>hs8RVp025@t7fU$ZjD%OF~>Yd1~Gnqm@6wdzIhB~Wf2@F86TJa
+zwX(fUrndL0<ZDYj6C-MCz8ty5nK^D+Ny?za%``^X<;v7lo?PT>Z3hh=R>sBcj7v$D
+z=N6mf)JbC2;~H%(x7#4^oHEWIsO;C>m#z{UHuhA@2#Th01l!Jg5qiq&I~qR*J6bqu
+z<VhZ7-m)mHi33FSw)z=5>86U-O<6nGm?p9Z1^G&PJ`n;B+Iu(ctAaK0UW74>WZN6d
+zc5U(U+%OGC(;9eV!Bn04AJF=UhFhG(7*m%XPd>;r+uFfWmZ_v%qPy^;fWx+=jF@>G
+z>5hGVYjc-Q=QzmL?%O%jr;{ehu((N(nXSbgTKZxen=RZVhErT~J6{6O67nI)KfkP8
+zq^|m<(G8Od@p9+BpW<J$tSuaElqXSj5|xz_HDcDndFi7??WOMR;n#vP^t_!ul{K5W
+zrq5Jfc>CFEW~}u2Ks7JdW@`dxw7smR|IYY)(_{E*`RVsY?Cyusy6e^d<!p?No-mf`
+z`PqcU)fH7X-}<{<AzmZ#HNA3N3TvG{F{AAL(6=a<CkFDaeN^L)w2Eo;zla~4nDoZc
+zqQ)zL20f=}uJP2^d`n{JbEDGc(AtOB=N*-AS}H~dJ`<#mD_jtJv36$7=u{AXW*Ml@
+zgc>o*vaoQ<mQ)=a)bp6P@BR1nh~p;s<9DW7NvUeFx{<0UqMX=#K*Z{s!|ce~SJ~vx
+z?-OA$@^!RQ634~*dildS)@#R8Eq<Hr0^Zu8CBu_n>9oYtEV#TPLPAbL3!Xl07gaRW
+z(bZhvD??3Ky8bb@v%g<%V`gb#Vr%ovho!w35FG#Hxbox~Ok&#og`<Catg^i-^n<Hr
+zi!tZD_ssGMZI{a}9gJ=|ZlyX0cNb`6!26i`BBLdCGP%w<5#qct>XDvJ?`aw~z3ShZ
+zS~~8OqKroP4JZ<cB$|xtjP>tnVsig6O=vu0SkB~n+NM*l32)nMgTt?{9DIomnRwdT
+z`*dH2K5ZOlnZ-qzu5OQ3ZyEN~pO&f+pL$>Sl7}}(56ZwR-^pBE$?!?y=IV@Xw1UC2
+ziEVt9Dr1$T;N*r@;1fqq-3CJTGh9#6?XR>~{j128+*=vemJCC+qZ)NpaVMd^@licD
+zj3e?ZOAhXQ%7Dy7axcW4m@xwc%0?sC;^I81_Q&+oysA$*bL1>LI1pqn=g{87qWD0s
+zaN}1G1#^QU@^pX&A$J1q1xij@Z#ezjem6&unD)E{&hrgz`jOgab{;AmRl;<1-ILcy
+zQgL;r@d6`Ve&o=7R{`X>eyyggbo;_Fz5J$+7RkgUf+}u_87*K(aa>n>&6R$Wr?yVI
+zQrc{4;h2#}lB!y?U?L(R6}ysI*;VqfP&!i!f!LXQH?uf3j2V4x8Ca#TP=3mbrRh1g
+zAYxbdV=g`0$+KjAHypSy)8zkH!$sb`ws*W{|CWQ*FX=3+pn`YM-&|~dzD^7-0yhin
+z%2dUQJY{@yMn7h_FjiK@NmS{@UEAd3;2f8ji2O&Z^i3i^LTKr!C1=wzyHITdRM7Tw
+zm+ionA|`cr3z--jtbwescje1@AMQuI3M%r}#4wNf`{1W|{@$Gd$$H^vmo!0hPT!G0
+zi>zQqMkXhy&RNk&5Y0U0W@-8N^6O+Vq5P4%)|wY*mr7I=<E_o<)oUk;;}KbiS1tDh
+zSOSWcWyZg8JMMn(YFGF+zxI}7C$7b{C(WBxQOVw%_D$#bpu^OjL4e)SJjgp*qPfM{
+zzPX3RiN!uKCs1$9O>%y<Pr0W(-`TskQq_Ne#La5y%dLIwYli_&(x$zNLu=BaWoLTc
+z&Of8I95LL?#mf_E5l)%rwwMs2YHz+tyYnD;(K^x#V(D;;y`Pa&T2&4aKgHE&8IF~l
+zcb!XMC@R~P3(>nrlTrU+`&`YS+Pe5{`0$iHPJf<xYO{2$zL8x^&e((=72RoTZbkE5
+zVqo(D!R1P*ufm7wTN6dG8jXzC9Q48zD=azZGom%myQdzi{L+;k9eHM|v8&D5b484{
+zcWqt(_Q705Be_yK_Rh1;%nA{!duj=K;qTe+d@dNj6Y#wJ4)gDlIaSLMhGkDk+5QLK
+zKQAk&*^>%_R?w_r_1m{IDl0p$MV6;zr*dDZ)XBNwv0j6jA9!NP7&>lSEfXIa#Lnok
+z8yZxf(Bve9DfkqnuPwJOC9x;~vZy6w_f3}Gxb&C-3Y>&S-obi31r|AG^b$GWL89T$
+zd=+(&nUfOHT(+{}^JA;m#orgQc*Z5>6I9J&B#0K9zZGQf81y9D(DQ19YvTGUG~8r^
+zGdLqc<vtedh&3@vzWfS3sEg3&nE0^2+`xR=WOc6&o?!1jExe%QGE}w0nDIR9#3}{K
+z$RPa9da(9p$r;lZneFS>;DTj|*V3CMR+4=tDxR4ax-oLj)UhvBPanqhCQJ=xXhxr#
+zYp3rS$I+|&S1yF5=S{VKm|QJY@ucX=(zJ0`E=s-;=QXmhn|yRL%BNVz_2Hm5YQCu7
+zvZFQjxS~=-YG*o6M&n1S=*m<V1LIc>*qRH|ty*c(KMv)RmybRrx4=B#&flO}3?x5u
+zl5hm~R!f+De<r`haLR6B;!&3p$TeZAu-IIl>7_gn-e%k>WzPlddv>C=MC?sexK%E3
+zCvT7Lwj{=LND|Vv<on!2Bb{BiCTdTz0KhaHe$MPCYUpTspY}g76Z1hqX`IhHaXY3Y
+zZm;V)8s|*@EQONB3AEMsTTI*j1>QGEk)Z2q7k=~fYJq2bm)=dwc`*A^{`5P(G!>9c
+z!iK~~cb~Egzs3ASL;9M^L?wN(YE@&=kE>1M=`@e(5tEr2b3K(uy1(M4v=Q8z`3gHT
+zU#2adc?7XM_6f4QM?YdoXKLdrzTR<VINM6sx+HFs7UWt8dto(Ln3Hn%+*J{41C|mO
+zo#&~RUi|Ykl2X2t<SBg>&nF~TbXn?JMf~%3LK!NNtZz2MldRL43b=)zTK*7zGk{VY
+zv>W{)>CAl0J`b<He^-A@y|}VqaLLiyftFlJXSA*9%j9%(Zu~M{C__^nttv>K;@}uJ
+zM+q8c2t6|i9d9W}kY(6E^4Lkd=NLa!fV%St`)2)8!ybaYf^ov>)`>Mjb*H%c({)ED
+z!u;CH5BEy`aEr~j$7!!s*$RJ5Z!0(LA9bF%e0eRV8gWDIW^0jB&~^*tL_1y+sH6M2
+z{$_=OYh3toIVH<;gQVD08880rda{|X2)%dVhswFr8~P2A1A;IM6_sCAI~iQO&MbPj
+z%T;6Pek`-5niUF3s@gFR>ghD4MCj4Re(kV&aS1QUwPP_m&3zxrIp+0?-^XG!)cMB%
+zcf|)>vOJ?n^u9^f#PO7jE;tQfBHpo2lku7f=Jl{kjMr&FBmEO1=iZ9sDH{uqkY)bZ
+zb-9lej=q_G)+*C_pz-taMJ}#|`i|J}3R8cecjD2V<1dCkuQdXl-G6<{{PdK6>*IfS
+zN-gi{JxF{{6U^$b^?^mtP?n|-J$fP}L-W|O&+X-{vK8CXeIWC3mw(-hkcii42>WXJ
+z7YTP|2PN|<&7_x>P9EatuUSjth4mL7DpodLo(>%+Ja4t-<aAV2G~FQ@`V4V1Gu+iW
+zrN3frTG64jmBeLH_3)cTN!oyGes8srsA>fA*sF~qv`w=k`BHbTm}#SD-=_mNwaUx?
+z3>a0K?HclLik=-=QN(s7m`sCxGX3BYb2O)`dPfJhC&;CKP5NnPR;KmG0ZE>n_C8(l
+zhb|M%SndOT&uVvn!;D^@S9K=BF430=V!P6(7W9UK{P(~aFP|7)+Pzwor1Kzzsrm$a
+z=|)$L$if}XuMb^at9?|}CE8pqO$}4ON(yk`rk*gUncA{^5I(dV`{E(RQ2mEv(c0qY
+zSpSn?8^A}G-oRt-n*x4uUCk25ny%CSn$hX>=A7+!vhoWEVKjylwSrfkeXbIeC{@7d
+zRI75j(v${r``uts9h|4w&A$+g-8%8nqutIkrbfaxD=ed98(+ztmzL1+K(E6T#Qprd
+zIT`M`F+?%diHzR!_~lzu@SB5)c=6P?643LY`NSIC)CcTsBR)UMDs!D0{NZ~|gu~k7
+z0gH5~Nh(4lPcqGO<5%Ttaq$zvqkCt3$vI8Fa#G;HxNphN%`BKhm51+KFZEFsP>{TJ
+znP%<@OG8(sorR;x=j3OY@bmY!q4(khN-Df+#Q9FI_$gI?Z37Gq0EL;acW|XKIpY<6
+zm3kGtpS)<)<Wc{>a#hMf(LyY7Z!N67pRER(3|tM#DzgVUg#U|}OYv6xLa!fk^^tzU
+zm8xA^3_{@3M~zmcjlztQqA(iE5>qDBjVw$0=qI&&?gr{<<1%J5c>~6{s}`)AQ^tv`
+zi4yuMA4><X%d>H}M5r0bMcv`mr1c9+96HX>tn4l(T3d6DOW#yDwswDLb}z<y3~|RQ
+zeEM!y-}%eJzs(jzv}?1wwC?Tuz2xB6w8l~~(f1`R7<KPR9yK6d2`j0Ye{m2wxt%Wc
+z-`F{uVUzYm5Oag^Apc^Vc9n<dsB%H^*7x@vky>#O)UmnE_!m1iJhm^1vBLDWmSG|<
+zPF~wHCbf9r69URf(VAd3T-uL&ZIvOK+*B_FsVex`68CZ7UoFMleMMDjfa7L=WR<I!
+zP3k9ashjW}+s-&=<6c#@Yf?|_W$Y@VKPwFX$jrd_E;lDjzie`K`6d^OJ(v^D%U2bK
+z=W~bE#`a(A#RwVhAE!lBVEaWU`n_3NYV^Kri=SHcEA>v5zf)s*9~7M$VQ0e-bnLV6
+zsioxB<#KaFJ0YvKg#pIhB~{IVg1+DEwe-7JY7U~+DhnCpi=~8YjqX<NHCzuOZqe<2
+z%KQ{f;4gS6YH=uK=F2?8DP3chNVgK}4DS6aQTm*n^XJ30OBVkrTchn?*xQOgzE!G4
+z))`Rjyc^`)eYB&d+@CNk4ORuqS<W{}Jdf}*0h!I4<c|ZkbzGhq7&hIiTGnq-OZTlY
+z9Tm(maVgoYEYYyN(pee9@%)#NQ(NeKkR7jy`@8iD%h4aU6Sb_YZT_Hq)rU^5V^v~m
+zO0DnTRnW1_ocL@#iY#{Djqh%{<G1Uc|5T6>7<f}$*I6#rCGw%*qS3sFi#LK{(OzUd
+zJ(batEYchhp(EUQuVgp^Hf(%zWZDkt^@`FJW%~kF%Q0k|_^wOCSK_l7Mx^|US>spP
+zf&%I_#b_a1E0^9f%98o3ZXj;Ic^R;K0gNS_=Hf}N+t04g=VmN7JL|M@a5XnnM)U#T
+z(wLWY{FBnwpGszQ3{TFVCzZDuT=R8QTd(m+RUzN?nnnxXh?0<~xtR~6e2$+Sd3<)l
+z6U1daQrP}9pI70$qjc*ASLzZ^s43#LAdgO}wxFC4BBvnaabHWG!$X7{wsJ(|52k!)
+zBkJo$oSu{O90H&uGO6Rg=s7p=-CO8c)E>>iF@({5z8P3jv|wHRk%TLmLmF09ZrT_q
+zlNbwa3W`P!u1MkT2j=ICttBMZ0@9tQS1PYeB=e|3B^mD^<On1ovvGDk=3GM$0malU
+z`L-QZ{gNQ*xcz$OeEwSkpP1Dj9g6C#o0q967gjOn58S&gD?DpdD~%etF=)Lf&FEI4
+zY5hd+ZKF@^{$Q}B9OH1BD1ak>-h%GNrj?cK$12SeQ``#=h;RL?G7s|yl_mONS~b-w
+z%^f0Uv#QG+EVl1AO9H}mQr#;gy4CEACd_SW+pqd*7)>+(G>c#6<V`)fq7h><;b*#L
+zYilaDmDTJh{-tenrbwb!smBba<HZr=acXDS<>4<Q6!qE5vwm{Jh9z%KJXbk_-211R
+zKRZJ8_HL@$+KBY}wD{ormwN6B?niUGF@KmQs6Wkb(-bSc+6`=Z`OODzTsI<C{N8dm
+zG__5J^BtI`+NxnFc`Kb>L$9$&j^W>gdHcEGwvVe-LZy`g-}5APPEk{^IGwqTftw`L
+z+}_)~Ny;66)u*o87f-2swn*dL6jauiM^ZP=au^izXRCSbm+zPt+u=CKN#(XGIi4S}
+z$T)>a-YCv=f+$6VOTy)ITE8m|=Jl~l9#%~GmFkOGV$i-tqs|(yB=gC03C~;d-!tiV
+z<b<0ia!^wL!NcQEXeX{jN>s$br_4X~TD$*;4Pu^G#an(Z4BAsQj$3_C&T4hO#cjJ#
+z!(o0oMU1VF8;?reshL6D-~LMp9JIDG4_~#gK%~(sN{C-$N;%F@6&0f0NSDJ&CT7jO
+zru+;o*iR!o7b<J6T)L}Q<oN@aK4e+?$k>o3Qks9kJey6^<X)&oot{r5+RN|$h*-w0
+z{o4BBC#K);2_2M=G}PKLlKNCeI_@f7q-$SJs@$!mn|EsI4*qqCv##9VvF~af=V$fY
+z0~2=op;QC*^@utbf%dhg_)1#05rsTmW}D|mOop=-?=v;BMc*bFTzg%*obu+x0-y7X
+zd&08#J41kB9(_qeVV7CUr2Jx?7W<&(a>7T?^r!>cGaJL--V#M-E+-aQm0E2U!8LiK
+zynP0r6mGUvj)Jo{ZteY2y~)XI`cBrbCU-WbO!w|xk+hK?nO5gra6nEtPxF#N6mFL%
+z$fr`o0viOiWEBkNOs~MwQ?pk-j1s5cS6cdcd9M8|*K~{tj?|k`wg;ft<K&ZT8ozoi
+zxZyvV2nqArIg6*?=Xs&XUe|ub;LPr4_wiire#htK`7;0bPoLwf{6u4!PuBikq5IZU
+z`fqM0@aS$0hXF?veR!%?lz)jMKqQG=`Ks8sfWazP9~0%J8sAcFDiuQgs(AV-N|8n<
+zx;|ehwItSk-{4B~eFkgsE(x8KZ0Vcq#d7^J3MF@>N~M`98I_#{156B!S%m65|F{cf
+z?5tNkiWRZA>Je;sd7I&Nc?9pVwRb{6)~TS`e|2KceieeY#pdY`;$xn+w8^2Q#ax-A
+z%FA^Ubz7dj$WI%=aI3z2+woPWU;f;WeZw{-O|B>=bT102Kf_k}RH*l)ic`bDw=(T6
+z?CKQ<OLKRzZ)-2hZPKSbq~nXWSJIVB9qYi~_bW0uEq@NNA(ktWVg(PcHq0{e>oAp9
+zgsL_2tD>qbl{ogkmD(5#FhPn2hVPVxS>gVwzKv5e{<bO+e?2(U*KH)WSk~uVp;?UN
+zYt9PWGw0N!8}}{?2~AhIB|@%G)>s@H)PMUNCEHZ{ZPlVm(Iq2Tv)uDjC8KBD5?<Dz
+zZQ&@Y%JX<mm)A(?prL}R*2G&pdl?$}^`J=XbEwKK_4O4qXMIlWSLb<D35SjHu-Nl@
+zv!Aw~f<hIqnp>L1fZd0h8tY%zYfaVATmJFZpSz+VUCM7(JMoKGYy|0~tf*A<ZNH^0
+zrOP}{)wb$-6>;wQ(j6{KnITN$%SJv#HRB$ar{k^JiHv)fJUun*7K%?CrY@rE=FMk*
+zn=6#xx9bRw{u+0aow3B<jg28CuHskap@@w82jz*69xXt-mP*H{iL2YwBwrt|F=fAS
+zT%LJ$S=kT7ZFXISH0|{%gl%BLf60nCoaTORVX&CUZroFL^cv5r2gkLv%N!w0dQZz^
+z7l0=7xeZ!E#xn^%K}Y4y<M;oJp_Dj^Lq?RuH3E%4uucq3{g1V;4vOpRwoF2B_r?PR
+zcXtRL+%<UP?k>TtvEc6R?hcK+6WrYi4#V&Fy_xsTd-LXfH8uZqRo|-Hr_SDMuXXM{
+zebz1t^)nwg{KC9p4rKem*)2>RM)8X?u$bC5v&2zlA&iBw<nDo|7%jt$RrchO@+DpT
+zkWP@d{Bv3X7^L*|D_jWyL7b41Yx&Rna@7<C@`5VJbvF!IYZ^8Oc<K?0c(io4dJGl8
+z2VT)A8Thb3;*7!x>k{9H&X$_AFykfzS-RA0LCOm)HEmJ!p0%SIdsIDG;)-JG1p;Zd
+z8`S1{jhzvBmAqx#8WxhkoUugHYq(hjK1j<p0*9S4Jd{Q%!)vM(`tsQxh4ROMJ)8U7
+zJw#iqSV!nx%RxI#gRVJo$$C?marb9QuDM542F0o`=0@QvScT1{Z9SniAV*s+w;29g
+zI*VUjj>?6lh2bJVxS}ex^pkmNKt0NsztrG`Icmy6(r3D_HqnN<V-WxfIs{ld=d#%^
+zqw1X`6+_pf)3kY-)`hC|FpZIt4eE+R1~}ZDrXjOPaM~3`-NmYlH18*6=<t|aCNXNT
+z3Kjk5G+@j?p9Rb=?<W!R&9w%B7;f4%Q#%}8Hu(7W;k;fMnv`1<EXVQ7*0#(3N0D=E
+z{N{uJ*?LX9i&oJW%~cjV6+0u*WNQMSA7UE$mzMGTL&W6y@JvbhqV6doyGjWZ7sB~P
+z+?Uw1HBcD4V7K_W-6Q1=7|M;q(3FOCs@HLU60*iFISt&5kBWHe*$jdxZ7L-dn^cw5
+zH%0aOe(V@pX8lN7_Y5ny&HjdwZ8`Rv1UkC;V<f6r32xsrL)?H)+>vd#S3VdDKJs5x
+znE^H;mTZOxUDwxb`L$BdCAxXz4~N#N89hPUAebeaBEXILb*?gd?pozH*Ugf2m6ADT
+zffwT-T;cAupuU*Be6?sfrNBSMYn>PTB82f?<HK(5o3@y3G74B%zj2i8i<e$;+E1zJ
+zCHK>&H@+TxW~wCL!{o!{&v&&hrlb~HRLGuJ3@>qLPfGL@(3cTqOJ{T^am~W_%hrqx
+z8X|==X;M@~@H5YweN<>CpFS|bGRO2aFM}pi1aHFdVviLo`Xf6brt$-e$0@cO*~|kM
+zvrraInfGeOil#?`cP1!F6U8$UE_zJDZ_##KpN)gmF1EGU+OtgIjn!QgrqG&0g*-xP
+zSm{5r?L>(d_@Bf8RPu{#v5wW^i9`+)jh6#|CLYM<cQ{9*N%tGHbn6luH_gd<%+@RS
+z1cl}6P!r6KLYr}xY^&}san{TP#@BK!Gaj?4Xa*|Ir732r@|H|3C}qo4{pu}}nSU)n
+zGn+(1FZLO_hizs*GAuzs6H+b>>~(`=3wlOm;F4GODq{Z?pgW7QH#J+`fK;XEWILO0
+zLSpe{Yn2!hBgnwBcT{C)GLWCz;@cm_3;Ds?ILY|4ese)cC%p#E(t%45cVXZry%9e}
+z?>B@BtoQc}3X)98x|@80nex*>`Q6XrUuRuX!h_k1=oyq#wGk9U8AfJ>e%!tZ;SB|9
+zn3LTL6k$#RnIjl>@&q%mbob*G6ocS(MR>F5sk30|*my?RT3l-=MG2H6m=~v1e*_f9
+zA^%}5ZDRJC1pOpwsulYh)#rF%IX7%R!`kLLs#`RkxL|uPkOUzLFIpwz5~xCk)HR?e
+zD6UzpZlpeMtW`l0zCOGc@<~Fnz;=kIl1G6CzFwIRktx-GUD*slmb&Pg2_JH<Xowf?
+znlhckLe)qig1A^QzY<6_a}uFz7(c`#PvA(mYNPHUxxNL?Hz=PWLZGRWcdPcHpM@RM
+z_$GCgM~oRrxiCSlQmIL&6D`(JGy2=Mx<+R&Nlh&I=*m2kNv>E-QAA6jgOWUZXa?nS
+z^md1%D7%knSDE5q@5e+$jHb#0kr@p`Aj<KrG-R!EHx8N-^GH!RYw;*tUB*~4?PPtJ
+zngMmnM81Q<)a~2`w6O=<Q?V({<+El>+P*i}b{+%I27ap+PjRb(;oNt@P(zbIJs$lo
+z8u&e2VOiPW(f9|HsXK|{<zWafRbQ~|=V(bCs&YP6hXr%y$m?^=KuZkK+XG&KucM`j
+z%h}c78;$Ct-?*OStFX##b6Q28=;H!^QWKd|IrM%Bca0Y+{M6a;<-3zMXFClXLY=#^
+zRm--^*KhRT?9YkvNd7&LC0T>$0(5tK3Ve-UoSSvEuPGJ`4v{d&!$n{0`|Z~5g~n;)
+z6$4ZQ?B)|V6(S&UwT94(OU9>?^Hft4&@4<BX{hMcuqQB-lF4sXWSBx=lGSaa%?*<)
+zij#5^oR!E^NM)`3o?S5E7KB1T*|Lycko2-Mc?(V_nHEl^B+od?q>}o`T-F9;2n<v2
+z`xl%P`s(hvdrG%ix$1^wrWIlHRq%w-IFNkZ+zLkBpX8e5se%}h{l4Ttn>Uwn1L38;
+zk&033K{|Ji%JlSDnB2;=y$*k9aly>1&CH@I{_6QcB8Xx*!Y<~LG=WGZbg4=@n=vI?
+zbjk}0K4a7KR0j&Wgo)*f1>?XK*RCekA5CTcBbPghcLu2G3GRIHqPs!T_!C((hB>Ow
+zU6%Qfe7l%m$K5}D!?R*1>&b6^ZKNrvKM5*{Mg+^gKmRr={#qU&DZy4V)#&A|V4gjC
+zKUU6Qn1^Ma?CzwWp=nd1_NUj0cnZ_PYj8I|Qn~oO`6E6XHxg5V{~!55JON5Wwc3Z-
+zANJ{z@Zlv076K#Td(7w_6!}<1`5)|y{mJp;kNW(@?5X1vfLQ)eJCXtcZjfuA4nCT}
+zn_QoLKA}Gz%}>M_Y2j1^@j~=aX*QFn*M+oJmV;PmKPShPROA#DW#rSFvjeaX_t8e;
+z<^3cWrcz&^-GxiV`vGCnDl!s+50*t5*`M}?Z@v7bWOmXV>KlN=T9J^09s^z$VYB6g
+zB~4+-f_o<<V-7n@!j8Ohn4spM9z-uq-D29Tx%@iqK3Y1=ta5q-aj3Px9t(01d}RBh
+zJ@ob@=5Y+=)Or<KX&7rQ@n>Q=EgA$Bib5lHDH-li&xEAGxZ|f%44uXDtLh@UnK;w;
+zZ63|0E$y<^9Lu1T_4kcRs%a9dOP5fX+hQ&)zL0DM?85kmSJM<#U8NE%`yzs(U+^)3
+z4O0b*8W$pgK{^o<&i*N+C3y9_Dt?AL=q064hVSpxuTn`lI#7349xbCXaQ1lxnigm*
+zwW^oJsq;S^4j+6>Ng6b)5*!<2r^o8AoP!K$Gp>y;ap@;Bb%|gXD3t}3LQ2)$!UsRq
+zrANYyxW*r3F(anbD3*?5RGxKVB3}_l+&Y_S%A!kGj<jC-%?hk7d^4?EdMrS|ob#?!
+z{`r^yFlZ5EjA5_H`7%>E#(Bw26XP+<!8%FJOYCZHRoL<EM{aRpQ8bOL+v>!mvH6`z
+z_bkm}+tDZ5@!hy7lyUkkqn;xd$X7w0Yvse41TDSKjdO1Un?(%(<<XH+d^R;}jGhN;
+zr%>i}e>7UUJnn#QHX`%+;li=q5tS%v$VDnl*!OjYXnlgg`PZ<o-PH?f*ec_AbuIxZ
+zL7CsAzJ_^v^KDd4i;LaR%2hlOvvEotNl?{>Shrao-_{@`f8RX)Ms2K3LDL*qSR$id
+zg1#9a4|z?Qugh(?nycCN_}k0<3zg7<d_s6I3EhOv=#QdnOoM#sF|GER&YySo#R(p(
+zt{Z5HQ(@E0&hg3=9h%zeC1+pzEoQx2{eSB3W+dIHZcEy@eH0CTTzoeh$|*nMmoS(4
+zRLM^&w2jI!dD5NLtX>}Xjnlp)QyUbmi&5o%>lDd*QF1$XS4PQR;vJQEm1vLCnP7N{
+z=>|7Er&)*#jMU)d$r=9@m&gsT{RN@4!wLmG{*$%;+9q)>&8!)A`AKA)O>v95_IL{n
+zN5d!GaH<7n0k>6Fh)+U(US_+^I)|kf^m@!U=-YX8e~68w6X4G{F*h-;{fM(?5SEw(
+zx!7v&JeH-?E3lH;BkD_TW!QLg%-A|_h2}~OG7=|^b1^1(b*y_r9nPa=utdIJ{~j{k
+zhAUgAtxwXU#Zy(ASuj`lvfF$8J>C@0Ptc)eObPqQL(;;KS(Y;xhH5BE!Nr`J(o(@X
+zhhml5OeT|ZB(BuF9u&QT*WdK=lbt1x95{zT{7||9qlu73wo#woWxm7X7!OYt*!_9d
+zTtk&pfuWZ}WVNJtrd?R1Ee?oU%vdS=vrV#@DOHWWEZ_v=!L`DyL5Gs5h+ng+JS4_6
+z-!DmT%9&HX{Bs}sM4{Cd_}X0a0rkNhvghL4GL?B&jTYT8mszyL?a((d5k~VT5$PgT
+zNYi4NW_^Es0|^;b2jp2Uw4-4nOZx&GOS5-xFuj{kcshQv#T=Pw)cr8yXpreC^w?ar
+zf}%d=IZa91$SNjgvY;fn83GFhUUG|pS<wKJ6y`@t&5L23mWm0-PPr?V`sCZpHrdr>
+zfBetv7-8AUsz08x&vN?K!jIf^D@|L65G!z5037-PH_S}s#_F-~Ayi!HB{})o3|~LN
+zIZ%KqI?UNB(^fpIb;ParT(kpKcO|W_ZT@_i_1mG=IqysLHY@#BCyHfIAC~mNXjjtR
+z`=Vrux^uK(oQ4ife_pFs45Lj|K^|T^rz}i0S(s?>Pk6fvf@FhMrXoh{Qd@OS!#VC4
+ze32Q4WaHtCmVp38{d4?x1zDl~J3QW@fv1z=ZGk~;l=<nZmhV4iSr&`wsEVj*uyv}F
+zi08M+6?DmW2{BNhaDDnNN+yD)XtpH$6)V+h>Fi}1R<>lRX3Vi%`>|~zly$!N8Oq8m
+zP<NKT<(tRWYWUBG*%^Q5$mVU@`RQsz*Py?izMh;wfo<M^)ll4>$?aQl?^^8_?L*zI
+zmKcVtc|b;8(r?b7z|ohA5H=)pKw|}`GpZOJsNj&b%l7za;*<-ZPf>yw!I&&wsYHU;
+zW@;?bi$sANuMFYlxJkJ3!+fkDCY$p{K8O4yr}-nG+sv_Y|0|=i)9H{3CWV~xcjC!H
+ziDAfO><kC%wSZWqTe-rc%$=o~8#%LQDhqHROQB(A;lbOK_kPT?$t(7&=rgp*>s05(
+z+kx7f&HFc^we_n`+0-hZOYYLOmMWiWWUSY>&YA0wx5to>`T5lNH=CF6dk!)3=gz)r
+z{l|LLH+Gk#w{6{*HGvVL2EMH~E$`mf0lxcl3Bx`VjpxiiQ&%>16ek=mk@x=l>aS)z
+zWp75yFL#{hZ;BId6K=iCAqo1OQ_!eys1(6(M4D3}KFwD8Z+q|NBiSP2&p%Wz-+FN0
+z3ZDV5$jkVbx-*(@d~V_Q3}%`mZ_&=1!u)}6sc|(3ZqAE7tBQbgoJ*S-mXr0YvCiL;
+z$39CLuW!8q$3(VzeQ)2z#h-nKJ6;-JszTlhSFkTT4YWyLM_yOo$en22f5<$aU%!a5
+zyK^A76B+mIn*Zqz5NILksACo5amm}nUp4xgnR_>n@6t@NCI@T_%G+n`W!rv8*+y89
+ze?#KXa)8ohS+hlqkn`J2xxP<fdA}Tm)vf}-nOKUIdPupxvG^wC>3rdKl$awD_GjAV
+z=Eq}yzUNDaL~ner?-PzyVX>)+BO{oFoROTF8z&YJi=zb41{H(MK!+e}a4`r6lnl}U
+zErGZ|&7cPmAs9`JAvbDjLVZMiKz(AdYjJR~Z?R`_xG9XOtI4-I!j2TkvrP_00+)l*
+zK|BB#CMcXIz#Y?>32#?X-lZ$kG7bUg5(Enh1<8WHf(^kKV%R`xATE$QH`R_B2n8eu
+zVgcEKNI-fZe{OJfz|_bA@P=icd7f#Wg`JU|nVqSDv4Oe5K&uy^x6-u;UL0=<wPV@F
+z`g_3NfJPQ)<}<yOp{8)A!Nrlqfu<-sf$fiAf6(wDwI+@g$XN^;$P4@gB*~3s3S~-W
+z3Y_Xs8cqTyjUO1N4JUOc4JGv_jV1LajU-JR=+o-oFh2rbK=mLe&@BiN6akU}(SgcA
+zrGN!SC;$gz1CzC(rO8TPQ?eaA5PDk`Yz6v_!-M0(cxJfL4=_A2IsvW>EKW3KUVhjX
+z6f<Iu63C618b8njnMfNtGLtirvlKA40F-cM05dqNASE0Y01Hknpccmg;DB?D!v`V*
+z>4*{KW>zOuM^<N4`&P$PhgJtxs~n%>tmytfM{fEtb^OIhTHleWfVqIFfW=zxeFA?)
+zNl@%}@~G~6R^BtRtqev0OM^Ydkl%-od>=O64sja_905uNG%}tUtPGe6gzx$?Wia_N
+z#Y_z)^(Boa^&A*T8%YDDO&nQdjYjoG4Mz<|jYsuIjYdsw7!w%XalAm@U`;SL*c}W7
+z76X%mvB0We6_5o00)z+n4d7sIV6iq>8Ep!z_P3+iW(S}C13t`W1_;c5nEx=H0Z&X;
+zCR~4Be#y0GKNc3l%T1r^223P%B@G@JN*hQU|NE3$a0;1?8I75ZnT%QX826a>Slj_p
+zfOZhSm;jItNC4ymLI6pD=s<WN%{Dcd4fGL=2(kj<;rzzoV6rw|=~?V<inqhtb_UCW
+z2|zqJ{-Ab{7w8G_gmcG2sK+~4)a17EH;CT>{1<rt2JSyV`wrQufdi8=6H7fyLrZ;2
+zBLqfky}uyx{*#$Z`f%4&Kr|rSzajk}x4`Bm{(Xy48Svk3Gq5z$>Te4A-^ytW^aH>H
+zXk@kqu8c1ZHTm07Y}13k<Zk2dL4!YoMcyk(8O#cH6yx}}%+Z1^!T4aUzcL7XAK@J~
+z@phQoxZn@(S!93D<LP@QIasXqPxMxXn<DIZfE3$E;B-(c;6F_^ZRBdm6j;Z?4cNv(
+z2cYAmgCsyhASw|3|6#=cHQs-k(R(QV#W?{PfJEE;U~ljX2pWLQOs(`D?EhG||Cg#&
+z?>R8KVS2=|z&QpS<KO}Ca8dz306%clm@4%DP6lvg@SiwC2h0!l0=<BqaF9)J_@fTT
+z{(oWlFB;<Qa*bBt%6v$h>i&yh{$m;ZUqSaibL=WDmSw;x2<ab@{-3%0FJqfkFW~=s
+z!qh}s@4us$|GpIdGuHlNUa+s;x%^+i#NR0V7t8*?Mxj>UcK^Sl@Lv+Cf3?)pt7Gk;
+zw`IZFAVKgy!GV#`P`TjJmH8hTa22C?uUzK$+6`xlXNq7-pBm$gXYyx?WeR6XWeR3W
+zWXhcCeaD_j*+19ue}(!+CTo)u!<Fu)SUYTBbai5NlpPUJVA~rE0fNSfmnM|^2fO`i
+z%=Rzx>OV8uU!v^sw=Dl*`Ae8x<?#l>-SBZv|3zK?H~DXhsZO^;e=paM<(-MP0ywen
+zO2z_kc;{LR9K836d#Aqtz1qq_|Aj)oYfnD!_&d^F!40(548Uo}1Zc1qOH$=K11vLa
+zKQWOr|0R_(IDZMG1I{~s-x2kfgs}Zh+l`EW$FsjFsyg#sANW##Pb3Zgtw<(+>yXjE
+z>-hgk!QV;npGXzR@Xz#<Si7cI_unj9;NM9#%Q-XI^Dk+k05arW!|@v<>|D6&3~dh`
+z08cVmwV2eBF(BRhJb_8SAh>V@7g+Wnf~Rgl_0L{>e=QAK!f@WTUI0h~gsmW2vQ}ve
+z=#`Nq(02%!{^nY#V)pepT*Hh+3s6yq@=DN2!TZ^p#FJ7>LwJI(C-3vYqJbhiN@Tb^
+zJDONZymQYZqY=yIw5<`mzGc$1plh<qk|e-Nu>qAmCH^$PxOAH844R+RlU#a9;$Ez&
+zMrwsa8WxRRJzl3L0VY4Hic@+?oO877Cj3}t*t<uLcKBmY6m6IjH{V3rA`C->{7Hc7
+z1-8C^6Pg_7YS~v5XN`D~9!3zwW*Z|}^2PVkUqS#R?=PSl%Hn_@U1|ZS8#Fx}<zcB8
+zMT|z&o8*HWn-c6~;kF=&A@Z^)d3zX#QAv7zDDaOuQlU$fKgn@uJtpO0a#|)T=CDx>
+zR89ev{>U)Ffm9IzL+tsXjA)+HNq7}y?{gQ@5Wd$+Li?hHnQi%nccQEg)!R^o9gRQ2
+z+dpayJ2~!|MrB24Kp+WoBA%MuzjDk=HGfAE^EB&R|2zp3TK|_sD8+jNI0=-2CL;Yp
+z2|Kh5w1Tgw2G6mucgb-WJyD}!;Z<XKd1#UKlx6|q!8C^fl_{7Uo6uNB)Y*uhvg-OO
+z%&=4Ev^{Q{lI)uSjQzO0RECHZ$o)_@@XL>HSXUZBR0WAP$Ifl@v!_qiQs1An4DQox
+z?$dzxX-4;H`u8X7p0X^S&N%!Oc>Fwwndk`bhchSGdrkT;9=aN@96C20GB+JiGVA9`
+z=ocQNN1FK!?N+f^d9a|$$9IW?pYj+mjKrdHU%67}_&Pm$x~Q~O_X|+G?nb)0C_UHr
+zS&)^GJoy<fGGEsM*J)azp(1;l`9z1;Ua2U&s=@92bx?P;EjI9)TIH?r&)*VrwB~`s
+zaE{4dz7?NEaa5wNZ*O?>of?;XE#ea7ODx>J+d;Y8TB*T~|42i;*9mPQ`LUE5zOB{L
+zk?Z7w#GiVN=lr7v*EyKRw}MeTi>4>k<UU0Rx*=&QX#X*T0I-<bq#AV4%x7xx$s5?y
+zewg85SFyk<efZTwtO5F{iNJ^K{yGyOJ-pNVhVL-&Hrp&yd&TO!iLS_zH8^f#S)R9}
+zmS&9DW1wY~9lArw-lJ@MFS?)LAjMo0uZHJS0qaer&+}vSbT!s~?ZqftE9QV-G>(@7
+zzAs^2?y;PXkqw2mzlWyQu`|thJf}cgAxvi=_HT6A1@48QWxEKOZZ-lM=N|-3nGQ0P
+zn02aJ7Q%GBMRGJQzrmF#FOJ)dPL6UdYjZj44xc()D92W31jWtecq0c=;@YtZcF)G4
+z$5;l6PQL@z@l#TcV3Maef@_<3PzP>KJolfY2_|MT1W+gL#=G0KEQH9#RX845FClX{
+z9xc*^w%0H~@K7xcw~ayES3iU$=LxcHZ<cmAD|rwc6}4!DR6$I$r<62c25bAO;0l4(
+zx0N#@Xeja@+P?JR_HOUq8Dn``NZv5&EznRoKl!LQlJ7JHvEAo!Ay1v<*XQ<6k92XC
+z!<<=Ll$U=LR>Gj3%JliX_i{tJS=4TX*X-UA(avLaTu2S!uz^*~41pqd5q9AO_a-}e
+z46+-OEpz1_r~3NlTQyZ;*2&}3Wn;Kk)JXg6!KFzVdYdyAKZ~>(I&>51I+<p{W^#Or
+z7kt}w8F1cM+E{I(tbY@~Yi&K<u&Z_8Gt41uBRY`~X=R4O4_g)WEF3P(p+)%BR*!E_
+z>D6?8o_@Wp#W3E#t<@&Xx8Kz+6K$n_nb8kF=3#FuBT(_c18{ij>e9)vIrE;;+44f)
+znf>i%*9iLz*W$!CtGD(${3!`TH)_ZZ?<`xyjVHDBDI0?O5@Zxsv#_Pv`FqQ9i2(NH
+zryahLov35#x8v%j27-k;6JP6xXh9=y#!oNg8pzi%Z8W;6Ii7rQLse+%goTt+#1Puf
+zTgcFtLRl10`&fD>p+3E#ncY!#v2?3@MI-K$&kC~m!M=qTsYSwoC<NZhxZio4CQd)n
+zsQI33We>Q8fAE7{B<{U9z2DfD+YtwxCks#=Z91POKdcZK2}Cw-I0S^6^L}T5az_)4
+zqIkDFD0~R{Cdb2{`cT{ZqO~rzGN3G1k4xbd^C>;)SN>5SqrdFe^l#jw!N=n7&$@{o
+zhtG2NR{Mg%zp(OO*ZkK#FmCTQYV_`_zR8^sB(yUItY)bxlSf4465scq-qQ<|;t7OH
+z4!B%=XgPQyd?c*%hsTI7JDSge<en{|g?V5Mg7quJ^OK6=IJN3_Xw0tUxm*YqF!!(7
+zoBVM2r`U90*1ev9T}^m$`6Iz`ZpTi^Bf$&Fs^~t6I!EjYy3Y?{nwRU$V-G~f$9Eel
+zySIb)9voXflku)u;U`>|w;#1=?j?(nHJ=v#w0JvpEoRF#f&Dy)1jLtwALDM!&FanM
+z9<^pNIv-^`q?^FfZT=2{_d1|tn#t=?v*EQ~B*BD-*KXoFij*0yU#ZCT4jX3EEL_7^
+zDB3dt7LN>khv9VlF&WKesivsN8VZ_|^picKj`GWP_%M#zFt4nFQTG@|^+W8rg=z}q
+zsby8A6<vLw)%4P2U_lU3Q36gRhG&3ZKA?#0^i^_k)yYF@fcIlxS5*w8uYT})t?goU
+zgl`2YAu@uJo=46%2)xJp7wQomA$NYS{q~U>jyCp5C;Znl5G%Btv@j1dmU9ff|F|~6
+znKfdHCjAN2dHT2Y&1*kf7vc6fKAP`$#Oe66XUX}5y1pK3IL63g+dA6^-b3)M8~r7B
+z4izvdHRI@ax#vCU@JDuSU#1(1Mow;^rYbV(%IdSfw-6m(N7j?h_*sa{eiszb@<ml$
+zsEG-4So+@N<{^F0XX})bvpmi^upF}yjH<f+93u(;Y8&M`&C|%YU{bUDXNAf%xpd~&
+zK@t)-Ia$mq0%*oeBNMZ)KKEo8)ATxi<Z>mHykkxJ?&nHSy)I52v<_@RjF&HxltVcI
+zEFrT71iU!)Dg5CQDL*MsutW5WLZ9wU>u<G~(al;b;|a^DjO0$7-x8)uBTd~vyfrMw
+zDNeDb@ObnK9H0er{byQ=nA5`7T!P@u4p}wtJF|VLmM&;**4JeK!E0Yn1+G<^=aGx<
+z7U1r*=cPqe9D&fImi<o$d<$xiG<#&D$)KwbXnRgym20gbP&+TSpDzxJX$^Uca3`43
+zTJ9o*V$;7|Gp~`(;(M!3_LJ!IM}{0eZiYwtdqjo|t~{$$k>9U;Iv_orQL=Q)%%yE*
+zMt%U^76cyn5b5#-wC?E>aL?Z;&O^So4CN!yIzFgdyP3=BPqtc^fq5Xg(pGisxM7y~
+zxkYSGugo0VIX#3abc<iZ|AN@-qOvAMSpPsS&R5lmGm^erefu0~aui92(*W~cZ%|!~
+z<+R{J-Tdx#Pqu?-ru6e&t$*TKmurfT32&|&uUy`xqpP0?4c^XNGU@?0InLd|@d0yT
+z`)vKV0dj*TZ8v6hb+>9Q7XVKShn0*0fY)jzbFs7I;csl@uGY2@+66P1K!$cRupdvJ
+zX!LQZ1u%$k_;LDU6+Ai5fsu<g4l7S)Fo6c1pDYZb9D<`v7YhaX==+6varaf}hEJZx
+ziYu!Lde)4~4?@wNh3!IEwXLR}x$%#WjR8>wSMsc`2ROYCwrQQCwi&J`wD?5NIPBhk
+zvOgwP9nN^1<PFq*y6Z0Bm$D+1UHnJ{`TF)OyhEzJ2DFD?&mZ}Eg7R<}zZzCrn0kVG
+z;*&`5I0TsrH-fm{RGNC0YY6G_2N8j{OdBr&^Mph<FEf+oM7+aXz~FKen*q_WJxSd8
+zE0yUb0s2?GcT3(S?v&Q@ahwZc9SkN3`ehOR7J?2p-X|afc(YM_yV2TY@)sLaHU3Fe
+z_%bi4Y0voqVVI(S!|7Rphjgw-Q)(-Eoa!XrYg=t&ssSF)R>~?wN%>b?nB|SfT06d5
+zh3?vb^1i#R49-OMJU+(=IYA<xH6$nQg>cuQlQue6xPykdetz|NKfRKtKPZpw6v+Gf
+zo4K-|wm6RrzdSfneY-LvhtMa=k^M;ck=4nQ^b99-LgrvQc3gEaYE$I6$npO14-<_`
+zY8pZNveSBak^#9vRsZ=n-8Sd2kO3^mRIPm&-MO8EgBLfw4bt~RxN72qg}e*muXR*D
+zc8!po{sMj`&NomJ3|&4ia7`~f!M|XkQ#?PJcsOuO4JjkL19^`}WIQ}7gFAOC&e=tc
+z?nLgb;d_YGagWUpB5m6jfro9J0DtFo4ye~tN05Le*@NZg2HEEOItJdXCYN&!8MP9H
+zV6f5*N6!0&uG=wiOUo!~>GIWj=6-y&r_!;#F7**oz#hX=excqpcs^)W!2K0tv+_oL
+zsnQg6VqM?$bzE@5<$3Rc2XSJ(L?H7~*xR$lL6c+Z)-7;rveZ3<e><SOwPv5vmxW3d
+z5MKsD;^HZU#gnr#JM~{D8a(pGzsuR4>qLO*<R~FyM0mZUygKg0tRXni6k6zc^GdF4
+zkEn1maSDe1)Y}khQJH5Uno5}EaBqd|Ej4hrb&uXL;qJL60X*T>y?{KF=*K*fa25?-
+z8@P*;OL{FmA|fQeg1c=UDm;Bw-3?ULdxPBYST|Zt-K#|A>Ox2TxcJnSP8u52;NB;H
+zLeZi*A4Fg9+L{<l`KL34zx7N=+MB}jLtj<5kzftW*Ei>1EQ?4qhNtu_{Tm@B=`I0f
+z6+Kz~&0mT*v4cNbX}d;VSHvh(2tmIu4adpeS;0Nd#@fPH_P1~i6xVO`flR??zR6V&
+zv2A2vmB~*>3NVN76F|ZZM_m49Mz-Z6^Vt_KhY<&_RurC-Pkhc?-#hU9vDAQ*JEjPG
+zTO65r)E<qSTAb??27_K-3O(4jp0oXr9!`k&J?uIl_kB1i&8&Dkr4H_C0wTX<LRS8w
+zm-oveGUQ=zV*Sp_QvEt>>Vj(880sy>^>Mn`kjD;jmk>X4ufxGMW2@2Xr3!hSGtRM3
+zfb4#RqR$TM_1C5NWmO2BNLq==%Us!>dY9UJR|zq@J{o8;#Nt(q)=4g#PF(Tm@j*x*
+zL(UxG<naTP!#vuHWWPoIfQ32^7X9{%K&rEGFk9Z6w4@h@Hg?1{$$-duGq*7LAm`Ku
+zHgTnIhNBj8`gHuq<eX#Zy`lxY^ULcr;yd|SkCPmaCVsedzlmI`pv{T6PL^#JZ3tt+
+zId9ypH-CR%zSafvP)zG+ol8=w&H~$oOUsZmTD!zvT6{tK5<#wTM=uq5AiXmyq;4hi
+zDI$E4mFgtn!?SGfHP7vS;pW5cyW#1+fLn*qgi8d{El~lVkNyQJuK+0xcU+*e0&n~#
+zfPiE*ek+CCQp+QW8*B{;3|KTQLF2npjcIIEyvXLUaHLe+Y1S0QtK$>^raiW*kPmxo
+z;_qZSqR;jhVcgVve~Ogp6TcP21Alqj|7hohl;Lj@P{GuV#4R3dKUo3UG{0AN&K8vo
+za1mt0@yfbvXh{)5*0EVm^<$6Cpz3izrzl4@LZ>^1;G@4GrC{VXyxhc@<RiRDwerj=
+zy@Wi#+V9arsu+Ph=hB96p{scOa!WN;&l-24$%sD?`5bv5pF-nqXsD{UXx7x2Am@)C
+zk(G2{c!2a6dF63Ip{CSoIsRLCvm#LNxC*oNv<fq>G@?||E%M4LFACi@LTb_>XwYl=
+zoYxfoWqeZ|CufC4+Xs+=8kKYmQ!u78Ud)YuOAMWnx>C)J5#>R~JxQ<TH7M#xO!O(U
+zeEcyQaUs81EEu(tM@wckGLmiUnW2ZBwl8Ug{#mI8Q$#q{Lb4Ij3&%oHwb1|1EPb#;
+zv1uawX^M|!mc=XA{%5nayEoRZntIk7v<KRor$?}LX*k%yJ(0jsI+!R1Lw(t6qN{6K
+z`o@Mj0)2UheX$L}ytbAR5X>}r&n|0rh9qBs_NUhS8NM}?LiFsHE2d*OMeA<c8AoUK
+z@uABNUKs2F$GY#nM5BDFLzci6!j-=LJiNAPuT5vx@fQ;+>Nla+$NqhP5^O1cy4{4M
+z;9h9LIR{fc<o@2U<J0INF5Ls<(u?2pq?u;QVaHl^yARP#P^^y|lix6gyk7clN%n1u
+zZQu(0v0pg<M3Hvpz_M3TsejVB+44Z{xHDbf=YSlNBY&W?L-B!Z@oYK^l8i5;T(@N(
+z**-N$J4b77|Nc&XR=7@_OZ*F0D2Mv*UN;rh+?oMx@;_pSGM(66Qnm9au>LG-!3)Mh
+z5<gl#E8)Wn^Mm4HJE}M67W|^yfr5iEogdone6uiJy^^@3ysQI4a60D9zPpj+%%o>Q
+zK1l8ehiWApr$-M}Zy=lA3w_suAk1%$6MLTj9z2r_<wGRjd3SY({_x~z<d~#U+?Yo*
+zrGFl3*H#1FVh)JVr{~MOO_+>`9BDah%xeW-o)cqdsg!2Txj<=VpLa@;M#!p~2!9{a
+zL|I1QN9?L(e9Jkq5FI+KzSndXjuPJ$g1VYo!>1S`Fobe!++l#xTn&cp93;OAD<>9L
+zEuG{FzI+xuk~7y5bAZ3-79*pI6)N1|QSy@I*maO7Ob-EG(MXV|$_(pJEKlCD{6^4y
+zv4-z=jgBwgAmwme*^Gk-iY##RMd3dWCh(E#><}F#M%;?U+Ka`S{E!*pBME>1d7?n8
+zMdo7^r!pZ^FZ~nZ9V+W{`ntv4m&Yj^<86-S=ycB&mf#y`LlS}ktOd_O8>Oh;X2!ZF
+zln2qoUc$P_x`w(S4ef9-zc-mG9#VMQid&lCUvKro#eo9o&tcn%97u@wwpvkH6AtSO
+z5L~*PaRgpSM#7m#h4`L2V{ftRvJM8J82j=awFK;x-?&NjxS)ZoDmxWtDEuQ%j?&j+
+z2CwI7)@&6iL~#DAnj(M3tKIYP76wS?9h*|7pg|no@Y+T-O<2$>>(<0Ke|qFSU*HCj
+z9)?`tyg7CH5Y%q9C_Ovpws0B}`g^kz#ZUw?N1mlG<&Lcq+GmkU?SrcXR8v|<6t5Ya
+zpB1c`akrDi9MVi(0xmMoM0{#nze5$vNK|0@fw6YY!&c=cGeS9;sn=kA0CybOFSFLE
+z=uD_5A|(6N#fU1V!n_rBArGY=4Due1>Z?eVv_q2hNwbLPHeyj{Wm_-Ar^L)HpvSnT
+z_xo3!tqXfj5wN+1)1{bWMky0r`uzufWhr?VIQxlR#OAJjT+i!OlY?d`gx77S`u-T_
+zSz$KWy&kFdh4ffBlrxia=UIZY6MEk&lPB(jYaY5!>4lp3^(Tz|pA==j3G$LJ1nneI
+zw{nJm{2=^|*r%KTrhGz^zxEKv!ESV&t3KThULQe5zwFh&Un|M=x}9?D2z>3Xa7K*L
+zU}7j3Gozt#QNov73WVaM>U0^8aJZ!?y{2Q`H$r>Faqh0>RaPlE63~5dfbDVd_Yrhp
+zH_9*ITV`9>ba-=ne;nt8yuq8eULT)dC254{3_1{Uh$%#~Q8-DP`=HaQeb38&#?k-c
+zeBhS|F6qe8-YMg1tUYM%2;3ajp?St{nLp8ldC<X__O4C#fp8b$+SrHsbS&)aelz0&
+zn%q~2gt{;iuG&_pJv*lv$Lfnbdamxr28iv~Ta-VHWf#64EI)TKmbX)7A&!Nff6<0|
+zMZLB_a^fG_GKZOdj>UYX9s5|m$+f&@9c<u46^4f<%_@*|fBRu9aX$Ue?N2eE9E)<L
+z2ro*L9X%c97=o`FE^L!4Dt<~A^SeE&ioee_jhCc&olBx)=A$V>w+yFwwjTKlrFKO<
+z8_1BhTz;)Wnx6Y@5MDeDZQQA7BavC1X8R)E*Osfet!n<PZii;FdbR4NTsJ@+=xsbB
+zd7(c-S-C0m;UAFMAAl3swMVTDk_nJwd0lxo+%majgOXqm0Z&Zh=km1jth#(0x-Mc2
+zE}7{d$~}n~_KUn(rT2Ve46}RNeYmA@^?rfN`E9|PDN)VKXEVLO*G^;riu^gI6~6<c
+zkfD?=t~EJxj(!VoF#ZScic2t)yCm_am-_9|<75f^LNH~9RXZ9J^nHe57raLbou|j*
+zhq~V2MQUt*ZGKBDq%EaIIrIngrK%_W4NQhD3I~*RLGc3WnU>zJSV9*^O3Z~;zp0DM
+zTw$vFa4+St+ca9&Yoxwgm*A5s)P@hQ-=y$N&6LiNQ2FA&p>JhAM)$X4FzIE5U*R`+
+zUi><5vyQc}<Jipz$rM8wQ+`EpD6*5#<XuNO5_-lwH}_pL^{ue+9W(#1&iX~w9ENOX
+zyLLF3^$x`;OXEtf#lzf1B;lymY3e?dOR=xu<b2<u><`zOT*rqor~Tf_HWzNo9Y@>=
+zQDXRt;EE-hahK06?6SnK8W<#*#rklot;B{Cx)?Q^6TY3U&tw}6M4j0U8vPGYX*ON&
+zAL6O2O;DF=P^PJYOoyWQr@llnfgUN9$bX{GC_1kE&yq3x4a!#dhZR6UV_F{x9NiYk
+zFJu9(hfFt1QR~!aY(nQVO#K{^-tfy6C!sEl{P73Y?V00zlm-p+C{r7QXeyPz5UawH
+z4C_N4<VZS`fZkiFs-ELRL<GZFbty{_eCETBy^Vp04Ni3i(yHN4Q*Kf(Ia$s5RDkij
+z4z!7pA>8s~m~!KTNz2=3$7z}a2+KnY>l-?up~LAt#?j&Un+JY#VWx@^k~I+@G)`G9
+zvPb(?*FS_EM05P|2$tPmlXoT#lg_D}9W}@HqHdh%z|_Eo0iYJa$LDJP9JgoJ0~!z8
+z{0#=Yv2uR~lD@k>myxOU-L15I2%x{i-bPK9s}3}n{X1}(`rr++BlU=oj=wPG4GrV^
+z%3}pUI_yvOc_EP2VC{98@XBRih6Vpv2+2r$Fw$f(?dEwmdMr?|)gpPrZ5qdzcVWJo
+z_GYfD%i_XUT%n>DiGR@_m_n1ZoDKf1M9Hy%RozQiE^`=Urz;SmTJEPBy=@}5QC-#i
+zX+qrjb4FAFlN|yfdaS<mWTJkPY#)RB`lnJ+q__i#XOS0lFGvQXE!-_SkNFgov4xoR
+zEzD~v8X@b+@Eha3uCChU_K;xo!H(SWuMi>>E!e9p+Rqg#pyS^V5Xdw24OoL}AFf2N
+zRM%15(_cJdfWc{S8i6OMh<m;Qg?`?%1p%}P3eRGl&|pVu!)uLG!h0FLK|V>_D1-~k
+z0^xS?HsFO9#@#172AT0<x!J}-(=zpQ-Y9;ud&)anOToBRx5AB&@MH1%(tFX!=fZ8i
+z`#W$Q?MnBwsuYJ-_n*#wQXxLBz$GJ~zq(~ntko;dDu!x(9b$h7#(GX(=??BB+E8cZ
+zR`%;`H5<)teHSPfbW2D>j7J{)$KP8O!Criwse7Vv-?D-YT--ax1Q&$)CuI{2FfaK$
+zJ7aQ1+I%RsKGV3m8Bx~v<JLfxxf3$QWI!%eVsf>Ocx-t!Vc*BuYvd)G5yo}MRc0=)
+zhC3JPOWS;|oW4Hby5T+5XeTjoG%3Q}f16@ywOfriNu5)A%0eHCj21A$b_-7CGn2KT
+zT+$C@FhC^RY&>jAWLd|}0i=VMW(=34*nQ9*SgYJ@rg$-yCHaM6mt=A<J+V#nh)v;s
+z2Qk%M0vdj1ChEU;6Q!A=BdT*8M}|#VsDzCvAHr<eV!n_4h`wZ0!(o%F8)u>HWNjT)
+zOsY5haXq!>sP&Zdje0!Q^L7<=nB?C0cC~oD)PW8g-|wxM)iG8eXSpG05<+Jsd<U?u
+zt!lk|{BgaoRSaI|R`E5_5ZYPUjusB>d^tT_MAm9aZ0;@1_IvsS7r_MQZZx%v{v_-U
+z{PcN|vB-7iAb6&}piFet!JA-FY9Zer+Xok*4%a&6!0IhG;Y{V?Bgmg!Re7JWV`<K3
+zDzV<HCVzw-aPWBZXiCf=1l7&coVCrDg5Lw3#kJm_1vwRC-vV3lq=J*@{0|liO=C7>
+zgq?``RJpX0CGb#tCK|F-)0$HZ<p)N;sZtcENeN)!e^5(NYX1>WaUtXW{xACnd$O$G
+zuP+cDy~Sg24@S|%M*I&o#KV_KSJ<h(q}bEEWS%D*CP<qO990wZ8uk3M4_l8YV^Yih
+zE@!eB)x-59;6g5Gmj2ri!Quj^ZIP6LHb^F^(rBNn*7-6mhAZ3{jmFQtuQKa*SlP7;
+zaC~CSIJ<c!<(SoH<GJze##gO1vs^uc&p$Ty*NC52F5V_5=&(B^v!ud@w6VhSHHFRb
+z^N)_K_HMIJ(JwgCwtRp1v38o-uP{@3yAdwb%Vj<I@wkL@6HjMa_x)f&vEi%cH!PJy
+zb9-ZareAiGn!K(W?gg~Qgv9ogRm77<?4MTb#US-*s^L^X5Xh+B4aZn3+%e`*_<O<>
+z#1BsRK`F<U_Ho=1Aikp95EEVde9yHIp|y3JAfL9nD3{hyQATE}Ch$_tBtC!3oV_AZ
+zb$2=K>Jr~0GPFc}<*A0;6;r!vJGmgd))|iVdV3Lg9iwX!+s^+Hru=4*H;8Hk-&!zc
+zv2e{*!cY~Cd%BVVtue7Y#D4K$`)c*mK4WX;eF5%yW_`2YDHuhW<Dyzc0d3`TmU&}?
+zS+R5@SCQ?J9(+8#mUzk5Z=z`_V_(_-`z6HVi3?iDuAIw9U%s!JB(d;B!LxKjpr{#Y
+zs~L91C9D_y8rz8!>?(9a^pd4jrP#?S!t`}ltZcYsvf7icUm--ag)P%f;6b~IVKw$F
+zeQ-g+3cRqR#HALf?Bgbey|rahp0?lHZe<8TMRb#R4)tfzE<L?c`1!(?m!E>$2AOQ*
+zp^xLTLJXf{tBL9Ba?m<oz<Pe?_T;VZsh4@%Q81yD-&r`Ee7TPa<#au3(vgltLrp2{
+zow-ZBb2F7{1nv||yeENz$CdDR9`W@z+GpRD4BLw{MuqDY>if{~ZfpWf*w(nUDeA3k
+z<%4wReaSRD+2%}zf=df$nu<gr^8GuZ#%bQ6Pbo@0eD$16(qq@RNm>jyzdDWV+pxnN
+zbJB;yCOy+Udge$n;`ay%#JmA03nxU5vR2!UVaPcLJSh;_=fMh3M^pTu<|V;Dfy+(Q
+zH=i4sBzMZrRuG9ku)DzB+X$SMk6%YuR-sH}@vgM?c~t4n(znW4G1O1&xaX_YiOwF>
+zg?N}-J)kd#HRbRyTbRjvot-{9RFW-oGK&hF7|=VpBi{}L9EY+C?Zc+D&C+;^EI{`}
+zxuxw1q}BGPp*`pso)>bP>Cov_ZzO?Hy!R{;9zS?iP6<_}to93T4T*<AO@#J0&AL}U
+zAza&R@+R&D=*I4(%%`(kdQn;-%xy-Ycf<}=vzkI73R#uN+F-e*ZhfimhHXhExb|m%
+zp3-`Xw3%~HfGQzU#&QaFp!4&)=ild^S!0EMkO<%4!TelnNBbyfmD84eZGHa`KB((=
+zF5&ixENqLcWv}Ph^i_6t!bPE-Z%kJ<|2z&q8#z^kud_9EIc)#--R-1KZS4B9yEiXu
+z6^CwFHf+(gXBNX@t>HkO_2OX$5nO!x5IviY(3=<~o$tQjo6Eu`M{!f73YT2x`Paza
+z>>tv1*->{JxWAr$7h%0wIh_g4NN60-abGt)-)6HXrT}Z3&KK#xI4$b;U-`2$MQ9~X
+z>pf<l?k0T3jYnDJWr=&VG3vUpt;lhoYFZ9)6_6?HO&c8>b0^r<6ebb*4zP~D9{I-%
+z(|H;18!W!`=LEfs1kW;I9J_4zh-OVV5^;-LL}+#rETX##&r!_=yU)`NEgcIFNgNC7
+zYcxVi3?zAl_oanO4W4yo(gajRER%Uw{dQ5J2R#C!*r)It$t<ScIFaw6b_8eG>TlAX
+zf4jsAJYbI}w|(R$ViTbkSzYwxEftQBu^pG;{v@-C9G~*1AX0uoJ9%SaUG9Mff8g?x
+zkF&vk?C9b8+jhdY1#(_ejcnZa4!{Q^MuFt0N*lPb5H;{VE6iFTh_mbpf+bS>TZ1)H
+zyvMTaRBw~3Rc24~>|yL#xf(jwHxqm9$@b}8gp{;KNAYis3;<!Sutz<N*Pct02h|7}
+zC5-x4aFoehq_*7EJkXiWFLDhhMY`GK{msY(=5@=gY6@Ov*;quYTYIXaK$@cmx970q
+zefVKdq1NY2dxhx7^Byl70fp>aQWB2rF)|q}r;yuK)_oq0(Ff;{W^>&0c8t4bEEfiR
+z2K#Y7<30(jL7XwVXql{(NZSF$I)~s%5B7@65%gPrWq%IMQKxi><xCRu;z{TI>vr;n
+z%K>45BrOeAfjQAm0nr_;h5_-I&P`8yjyaY^g4!$!Y()am@7h3i?Xq13e0XfC@l%7d
+z)JGKkEQJ6-?hAKBT??RwCSrT8{u|cf3YbaC<wrWau=4(|uqW|pZsh%(Ri77Qy>sP~
+z0rYx_VZxE~snPst>AL<U;+v`@|6$z~0+JT4l$KCgxo!SbGeiV1F{Hi7tq*LPi&X$p
+z(?Z_6ryJ?k9JFBU1s2-?5jM=t*M0F|;~Jz?bk_5H+)JsBr-9}xL(SN{GV#oJKjKm7
+z;z>TzF6h<<o;U=QJlMzFK+lGkV5pjGWV}nak!4{BLeI0$ucnG|8zs8Xe)rF%5_4>`
+zCeuv6l@@}TrxGzPgqUBv1{~(=2vLC1zOQR`c{PpYD(PyWmd$kcnEiJ5+U)%=6|EvK
+zdsF0OVON*NkOOh0T`tL-K5V;gcI8Cw5$3a=_i6t7u6CBNw6F<z)40K8-JTSy77{3S
+zl2O5Xvw;({Bv;CzV0YR^%_z}ZnLcz2JsNw)v+6$NNV0Af&heZ!$R!heBG%N|X8Z$t
+zCZeC6=pwIg<MINI2@m&>d^cMCZsA2h`yJ$SemLGe#R8|on$sNoMUZW5RdaA}r(?Gq
+z?!Nr7j$CSg19c~GN2UjS0+VlCZrr)+ycr9#E_Y{Sz2JpY`fE<~-4tc6i0|g)%l$ZH
+zJ38VknfDN`{2#a$zwtN=b{@5}f)s&E4Gq93#;v0HDfAS`TnBxsQl!Mojsccjp6EL9
+zGhGK+_f47E>gE_C>w49|q4hz7;9Eb;>LT^t=b;W1h5~;i2L7yN#!Z&$@%;5?_h@_g
+zr8=;kGIW0(t8qu*Dr#6ufjQzco`TZgjfUvJ!z~87bIi+v0YsP&{soS7#huV5ze+=A
+zAD>qf#V!T5PwCwL-1)pE!h`*kX=O|#mcB(CpInnQws*1U=*Q<T_fekGzs_w7DF9+l
+z2GIiwTaP$=clPZJyQyNBrN9tQhq&OQ!4MyA)gVQ`nHHIf0_#!>-;28f`!&|&qsJ!t
+z8;VJP@EN<px|dGlQa#WmuE=K@_mZLlaXi0;-doInlH)x1*R^;s)=#7;hgQfaPGp2f
+z*;|**T0ta>F6=FjNaUc{^aJ&=>TYvB_NwFe{msRxm(EZ`UQ_free?*GNA?r%pUa1n
+z&j!<{8~Q7)I(;84`mUt~+0>-2?Z|g0vmDHMYTfCvn0j#ae;+>Gl+EcI=XXnc@nk;p
+z)+t@jkeX$<KcBX${5T0Bd{(X`WrIv~`oTR5*u>kkFm#b2!P5&d84L>YN49=d$?t@?
+z^TEgz;9{*Rd{YVDTH8Z$w-a#8s5zVb@Bo6oNWR(i6-P!qVHs&ka0Cv~Aoc&L5hm8P
+zSDJsEBu_jFHgltc_hh<i7vVR$Pj7uw{&|VeGm-So;@}(hU{Jc(Aosy3_j8AJ$lCZ%
+z`sO!RBO8b%`TLvep+wsfE>aqU0pyys!<48bv*0V)1&>IVmbG)&LK?P3K$r_Dxu|7I
+z9&6Aq)YJk;)*vm75EZ-ePyt9E)#oYAp%ZLWt6ss<z%!cx-48yu!;JS>aURH#SuK#$
+zZ|rwh(a`RhNB-04x2xo29Rs_TNcogw#ECWRAcIHOd@@=_bFU&Yso6|Wmb*d9$oFGY
+z!sH#z<@5s9U<J>N6Vsq{bEMs5{nX-w!fkqe8r*aXaq7r9{V<3ALGp!Vd75#uZ^qM?
+z`_8Pv&FN#L<pkz3(n>GOjJUs79``nHerv7RP*;#XMA{T`b+l&lh~0pge9z6=Tec3e
+zTM`k(S*&J0CP$q+Z@b}C>@mj9@bW_3jUTAP<B3|RnYQaXz}RgUeSV%lRmWp)Enn3*
+zuwY*%Jhv|3wTx1~L+lvIVZ*s_kVE78a{uApQ(l2w&S}dfvVXOX{n|vcaYqZ?oYSj)
+zkb<{}vh+M1h5*+~Lk?>ypH%Nradu=kBt@yvqyC~(LcprPT_|JQUGe@$dG>ODLOW93
+zf^4(mf;Iqpvbvp1`P}riM`vC7R>nZ4Y+CMG-#p`5N})D!?wWXvMN#*<nEU`P<p*xQ
+zBP}eOeML#+JkRwtP$W}RSPLG*2{S{AjWO)HLjKd7_Ab!Uw7gE;=Qr;3@<T+D%MXH@
+zP5vF8)RoIs<;-PaE{zhPqOmgp@jP!C(v+t3B%dSw+3M$%`YrFO-^76j2!yq*pQE}f
+z6)aM}N6xHR^z%b1OF2O-$ICPi)7Gy|Z&5q{EEJ=6gbdQql0oXPH~e}@;CZTmlM{82
+zx=lZ&#sQ97PWox54fFVQ<8?Ok`FZcmQh~+Ua&X1^wBVAQAh%+u&2JA)F!8~lES((0
+zwhRn9D+GLmg8{bl)*Z1rl@YOloZgQw3P;|~6m$b${PfE*x2s>Brp`fZuB(#APv71I
+zaL>JX*B*8(e4SbMX8*|I;$2h#YzEK-gCPwnY9#tv3CDHMxqZA$r*ZZjl|a~J^P~GW
+z(wNsx7X58&7@P2Aa4}kw0GdgzugE6f8dG8+w1G<5&~AJii#LJVrxl5<-@W^8X?f_i
+zq&&Y{h3~U9Q(SqK6UeMCd(}>^+kymt4KC@d&3rv@ahp)oqnT@MHr`n73W50_0CYf$
+zzgqtbBpvZOT?5?`;qnG4C*v|HuMxk4{wv`ZthTcc5>I((=dRskPw+gd3GA{uU*!DL
+zk`Q$C(g=q)81GyiipWyqY4R^|E$qtz@}c%n+fE{%9e5(O5qP|zZ^zQU5lpuP=%fVj
+z7|l)OD9zpUJ@G&FF;UR+)}Yn-F8o-Gm-EHlq|2x+5iSe(YdYm3Cuh_C6Rv`8s-d75
+zn`(s873Bo#pIz)#vIKmftQPljK>l3s^qT29*lXhJpQ%r1BgTDC6X>2RXb3+%f2o+0
+zr`mSflVayo$pewh1Cb`;%d2}LOzJpg8^_;4bBGv!8uui~3-JN|#-%LiqS!49eHxoY
+zG2x4XF2t9Vo3o;S)PLd+qLp@zp7W)~54c8q4qZnyA5GWdI;sgZyXJ#FSzVz0#7xkL
+z=ojW(7&N(d^_s+-me}iKA#B@9!3RLGMgaanHl9uXPGX0;2T52~Q;^ou)AyNK&7tF=
+zzcm?#tubS~AX)(vbb`qx<TR(}4$|BCtHpflV$w+%+bl<Ow-fY9LVL-NcI4k7&I{jP
+zxg!(~+0I1Ulh6mJknuZ&j9ZlEFGNjdeY22vDc^VK@=dXN1@1|_7R9`01JZbz(auxA
+z57aIn<v(Gs%bAY3&SptRXS2|oX2@b9*()WN^l}vOoZUGq7~!x8`-R4SM6zUd76hqA
+zgX{&#Ko-fY>sDc>HC;LuK2<VkA26>ECA(=17Y0`iUmsdELES@wYW6Bl3G|d7r|czp
+zJxtKz@}AEQksZ2A)yKG><IwNx5vudgLR-hBk}vo|h-88Iiu46|w>t~6MB_&NdKL7@
+z1Z^>9LUxKo%yoAtlkA0)=<E$fxJ;l$A^Q4!53O}Efrk|5lF)SYIRdmUP?XmY`*&q>
+zU+p-*>Ck|#KQe`!s``WW7E<L`)gL4qq(9mYNuFL${la+Ang`-xYX5qX3tc7pLSsXH
+z5#z&p?@rb+cQ9?UOp>-4!{DEfm$Y?{Ssywav`q$$(r{f0&Ls^STz{B^YhrPYrjy1~
+zp2S6U(yK!hzmQ&|+9#SDY|L6avi1<wDy$7%)nM5RKP}XRXSa5cO>XYfY_r*5mx=as
+z4ykP}q&DOGP4IJD;pa9DsoksrFYG;5ZEq{C@!^`1A@!29ms2-ggJ;&_noL|Xbw~}d
+z2iJVa_i=MBBxT5bMx7k!>BKctUvMY`1Bx;Lr{*9ABq?xcAnl$*1C78w96RuNI1KW3
+zd_DyOm5J|D@%JX};RO7U^CFZBNrY@uEmQvC>qF^eLzG0ZmX73}{0gUIZ5Y+C$2*pX
+z)q)NrXO?^sn~b0u>SR~*NchBIWb>0Ck9WX6_-I_R?iOR?bFCeT-@r7l9O<X;;rF`1
+z<8{QtffZqN4c!xQ2SRD`hc6R#&(@X|Vjd}x)=E?Tjq6U~6Cc1>hf%GtGLrH~BjCr6
+zRM+1mc7H{=4Dz>dzjQ~ls4I4$4^@<7gU@Dl1uWsvc~Q`PDbRr~p<8aD`bL@qm>AI!
+z7>{$~Qyk5wlFqck@2C2uFlS(**=--IpLaH&iqB*4d5jHu>L^;@i@3s!`@AH6w@Cc%
+zW%8Rl)OGLeu3cRgqfJR&&=oa$VfVgc!21b-t}(V5Xy2mLaQY4O-XlD}`Vi|q-A3UV
+zv}YIk(u2Nqp&#&DZVma^|Gf`=C7L;Tz3fmQ_^yST4~!T??1KRR%cbo>GuQ{FaUq*x
+zhtFVhu3%qyIDFxz(9?KMlyZ63Rj|`^U9!+GD?;gLPd%RD$N1Lax8R{K$QO39ogg2W
+z*4vXTq_YovKJCZDdlbDZYJRhNexiPmUH9Ehd;%U_A;y))^j6poF`iDtcsiTIw$QpE
+zZ9H9u@pLtx`jp7&^LRRjjHhGpcs@)%0FUPu!+1Vr7*E(`_zSy2miYNyV*Ctxehl<{
+z)QJnb9r5c!V!UnB2aRoj$9CQCjBSv{*2!ZFd7^py6bI2}I@RDr5lvHs9ObglI9>M{
+zN7MZ}?naEE`iu`N<TK6`KBL{>GYWZwtjA-#gzgu9<4l9!cx&i;=>2f`jpT=bHa+pq
+zm59ZgLqq*XvhSJfb8CDUPWxhk7eUw1)#S%!HIaX^CxUX5%(K(U&vfuHuDck=7S|}z
+zrx<+p@mQY^e}(p$iHE$d5psTu@Gs+a|MJe?_?KqkTP^|(W{NpnD3ue!!K+ICt)QcF
+zf_e|~D|hr-=^FS@zmQLf_EFo&?vk!@3%?R_g!Zd`<^0e(kw046ZDPFu8xkUY0N$HS
+z>s)B=OmRbBJKydVKDnq_f!{`Zeb89A$Zxw0x@&7M&AVLS`XqF|<CEX#qeSAP`Q6*b
+zYkYJW#&7AVse!epj$&T23LTb+XRI2DF&Pd%8cB89GzLUh+Pj5hJq$j=eP=HWzUVwB
+zs5oy89YZ#m`}-AaT$o{O_TX5oMQ0xToYqS@p?_UwvECmt@|xLI*d5_~p(j!7dv}YN
+zFChPdawcR?$ktPw;D8NJ=umCF4R+inY`tpt$d5`qM%hbwm<*a{0R8sC_U(i1+c(7a
+z1z{hD;aZI^#<HIC3A?}CVE2~`yAM7b34R?pQ_O9x4PCv!B7RHbS||4FQ)6=xt2?EB
+zG8=RgwTp6j)PCAuEF1009%8q%(5}5n%3cu@DYCC*yOUh9uVlNsa9ze<9E0q31KaJ~
+zdsN$PwA=qq?#lab<gRA?ALOo%{C||YIxr-6^#kXwvi^nK)$Sp=t4)S{#-BN#@#_5l
+zJa_fp{~&ku$o&6V?&`CDkh^M~|DWZqYW~ICmG6Hkca<<CcQu@IS02t?J@gN9R}T%z
+zT|H|U>!*0EFPZ;8%UxaeALg#w47sal&Re(*xvMk(Aa_Oa%4Dj)bpAG1mHKbys**WZ
+z)xx=|W&a>o_12JF)p7qzxvHl)jvUYVf>StGb&{cPCm3>7asNxXs<i(gSGD+`<f=AJ
+z{cXNd;at@r<@a+{M2pjfegD^TQzs9}P4)eQ+|;-~$W3McKgdljH{_<~|C8L*JkCw!
+z)&I|OQ`d2BYB=+n<9BjXb2v9u`UklwGt1<ED>rol=TDjpxv7TX>q8Aga#OF2RdZ9r
+zI5)L>NNy@Y_;b$>;+cPxhkEmWDG&AhznO=6%8-ZJ_&a&14gVw$wTAV_eg9$}s(S1{
+z&qH~~{_A<DMVyD)eDlAahpOc~l<!~2LtQxbpXZ_6WB+*`>a?-{JP&m;_507i%|mT7
+z<e}RBjXYEm=b>yv@=(bbd&*HIJJyCdAyZl&Drra_%H?Vv>Eb*T#Vqxdhr%^ZhZ-*^
+zS<B&%uMP7#){gX(4sKZ)rnD>{Nxp0yUqg8*+UwXH2$<Xf@^7cBxv2J)A{Rx^jHkV_
+zITy8;a#8g%7nN$rML`LUB43-vG@a^rXdgrPRo9D}xS3R+Zi<ASv-$!Ss?jk!8oS9i
+zvnhe`_<nqZFEBAl<Q|rE)1C_2_hI<n++iP!<1siMgWr#%oW&6$2Q`04&f;qES=2Gp
+zo_WsBu8rrd4@I4^pj*V4wrtqnMX3=Ymb|KGqtF+*ls6E2Mubz1me6NQh2Qu&)tAtI
+z%q~@@ihXXBCXruD>Y$vHy1q5m;JZ?d-NBnIdube0|8;pN(xv8|Y>waNov7ZD=$!Ni
+zd8fyy78|jAE^IDc=Q8A-x^GhRPMQx}=O)_?U60Qc15(~3p7T#GL;mRkL;mS`&Oe1{
+z{2VHu(f-*qeo70*zJ8_1MK!}lh;i(Y<Cr4sL8Hh&**fGn9%~p!$~$T2Xe{x0&^V4Z
+z<Psk?jN=Al?#ZzWblep(B`xTpvD`TV{;n9$>4V1ecFr@c{GIWnHqshB$}@@abn<w1
+zEC}5yayAP^{gRg32~)06^G~ENUD@mdUZMMd-%))w$q{5&%Rk*=$Unsx{J<o)s_Wxv
+zeHZ(Jr0dl-%<NMA!3E?uh#VBjB<Lt|P(yvf_eiJX+?AsK5q<<d&*aavfBI!2uXKcH
+z?<mSExzv81?`$?(5Dz3co5PkH@=6K+W?soD)*Vr9sp%i*me7`m|3O|!?4e)3q}ztE
+zCcapY=ZQGaJwF&G>QMi+eA4;OPeK<sJ_(uPi8tnVZyBTU#thJY$*H!M!1%+NKV<G`
+zHRq0&j&zVcMO$x1duTi<Z$vUHb4T+-lbGf{@m>R!&Sm_W`gz^J;CxY}Az$Qlt3H{?
+z7ddYU(HcWby_z#3n@+xx9ro4^dutzJZ^^f5aVmSMPL=j5PW&hNqD9WZ`6ALOKA{8F
+zglIn|dhdjd-qS$&BH!AP=YW2sPdabpToLOMqaLALk)}(?R=YG?jW$i7HsLoVv~LFc
+z6_hW^bV<L0@<n-QS0d+&wCiNPNWG41?B%$wV}r~WS?^VCEZNuIKgt)u&e48}stq04
+zlSDpp2W%(hPde6wWgm%Wq7RL3Rp!;T-)hc?>}U$?XiA4_M=3T>#<jPbl~MJeU4u)_
+zQ_!4Hy>snIVFTKihcywOwyzjz75l|q*3%GBb41x}Ln-D;r5urobNbMuk%$vqEzP0m
+z{D3LK9WbT0H-}m41D5l^lc`Rk_pRL&!<)0h#^Rdsk?z2FTyrYy?Zo)3=40^P7<@Md
+zzZsV%_<2X@W{Nqo8dfww*Sz3zcOOZ$x{9&_e)!7U@Lj)4=?<!U378RISeDXW6!@-R
+z)MG1VE52Jq_6pw}P~U@L4#Rh}F8L6?J1FYb6*F|E<xkrCN<{3`AYwzShy!=*?tsp)
+zqTlt(Wh;LW@$*$Zw^97gd7dWL$0j#?H}X>{W`a%*uMdd*7*eyS|BJ<5McW1jPDsyh
+z4x!&Y^$vCZP1qv$g3#rZFQUDu-M9a)-8~9?Eaq>7-Cd*ZF^_viyMEv93L7o<H(0LP
+z+$^%W^F!a^InmHHh3KC%h*+BZ8P_@yKiOPKAuFEKfZtLMiS~>l+ivAOl9O-^)iT0=
+z6ZxYQwD(lDyR@%smYeivcGq;1YInzh*XS7{uiU;4_ge>kSstnsHK#;db2sSPbDCKD
+zG{5_7p<{Bp6w5-=(M!$r&KX*}IG)yk!mhZ^?RHIU?^;Va8S>@CI4$nIAN|$nDb|C4
+zrbK6=>qBCHWYW>|#afG8wt@C6+W+SYS_3rhV~h)}r=T3hh3dG6Xxyo7W@m#L*I1~A
+z^c>n}3p_!4*lFj*{`lfP<gbZ6o|Ym;qW#WBQ5zyK)(gdcP1Czx<2|Y>_#E*_oyg7P
+z&^pwpra?KG9Nivw;vDH1;t%+`@SBN8J`6=TOM|*>bSNuGpPSueO9CrDR+ObC=aO#v
+z9kow!E`*#?-`?p>#C^_2`{{f8i?F@UMfCoOrID`LL3MpeeXt%huXmjrOq@t-7APk_
+zKV(g!+L`&HPmhRo0a;=V)#>QZi)3RcUZQsqIaY?!peG`fVLi0RK|Sm39LnK<hXZNr
+zLsP7QF0t<l#?|b+Oyq5H^1+KO^xL(e0f(uZYMEo5#p)iTv`$H(_hwA*I@@JmurNJ1
+z|33VgT<0tzJDTz$+0}EpX|C%c*iDnL?@MTJMX~nhBIg^SGhx%kIrn1F?VN6sr!?>l
+z(a)My9HjRu9j%yGC|UC<-d~A0VC4v*Ys{=`%tF_godHXX&^Kn*H)f%4EciY`=o~Za
+z9JAS^n1_?z;rY!GVTdiJIhwnvHaJX-2Ydmvo5q8_Bi^U=`wKw-1)#qJ^tUH1>Z1MR
+ziSBk~QC}w6CelAGYeWr41I>|VslIbIJ~wo%RecfkLxG=NLN&~!hdXZVwnGoQJA@9J
+zI2nG433RoH{o@*h?jqh6x{v%e$U&HxlYD_<_SF};K|9Cd;LXr6Qyo-C9_X6pY+li7
+zA{{+d<wLi11>|7mu_mIMU8S4bZnh`^%NP^U%&yW5-&yfpqKW8bSLucC!tmYUCeqP%
+zRY&7H#3`2HCaI&RiktwoJD2tJ`-AlK_pGNIP2>}e>{)DL9ZfvMKC`=BmA`P%V;;^E
+zea%kr0PQ&@{KOeu*O`=$h(F9u_)WZ@pSfj8kocT*jk}%30Dec-%FvlqzpdG%4%j3&
+z?Wq&69ErB*b_w5G-Lx(feZ=>=ZNm4a4rMrWnuTZ*?gpPIff2Dh&ZI-h#wsmMLWf4z
+zBSy&&Smu(A5VkeD3*U_o%SSxf0vlToTbdsjR{>k<5`O&Ku&4Cin)xd(6!tWeb%uR~
+zIT%=Zfnpe|4vbY$-QQ3jD|~0gcV{YwvBGy@_%2N`j1|5M$9EIOI+Z|=D~tT^1>I)h
+zXR9{V?0S#KYQ~_kI+xdPO<{ZL;=B*#(OhD#8a6dwy(j7IM$z|1(f602SJC&LiDF;T
+z1&}2ZblbH;w^2UVMLN*&E}m-=I{SN3TW~GS&%?%CD{M?G<SmwMOge1Lhg7%U(b(&P
+z{iFT%h>o#Y^HrPS42=7NY(~d?F=sVfm1Ai$9P`bl{~vGf0v}gd=8vB<mt>L*?MahB
+zXsevG1u6zOy@0hunbHCUicU*`f)xiSP!%<3b?eH?<kqG&foYRoY0YqPMMVu4T^7sk
+zloqILbqf@!74^(a&rWDqEh`GT(EPvO=Y3ByNmB&Z|1Y1<`Q*$w?|HA!``q5=!u^hV
+z6X=u71L=bvyH7Vvz2E3-{70c1OS3<rFK0se`^k7Q4->Ke^j$GBcY2Hu9X75KKkEuS
+z1K$>oI@`jgGdBR4I&AB++E}p1tBosubQWaFSu@CwDw}?1a*y}W`_wt-)S_}0%2`F_
+zER_2;%VF#hlzV+T$_g%LJjW*29mlfG?pfe(x1(Irw=30os*-W?=UrYX-YhXa$z%FF
+zdNR4aX8cjcgWm2H{xR538bRK()n!fv;1*Y%=LW<lnY>45ZnBZ;lUR3<F)EI#Gv+0M
+z9&ai7wRqgIdaae{lhfGgeP8D=puY&eWn2=8)d_q+pFZ*cSAjP0tWn|SMOpBKTQ75d
+zJ-DU|AY=M`zzX35eld&>;CU!xTPi-_3X$!(rgDA>I(ZOdjf>7To+Tb<?0e#td0Kv?
+zPd4$+llFofW89NQzmNHMK*LV4qw5*F1@fb!ONLLE^q#e&0pc3crW1<yt*!7bX;W$O
+z-o<m%jw-rjXu8Ds-i|;1E3ze;HqFz#f(ibW^fxfMg}zB^eg0sa(5KeyEa6Q%`o8rx
+z=302UDCOI1Xl{$5a~b03sLU1lXujKUl>1NR>N4mXsrTPZ?7usY(!cZ@63cr7*Bbq3
+zhm6IXckLtmQ*MVG_Vz@;Df+MiWtO4LvJtva%A2oGG{h(T_O}&(O!?|R--7&$HvZvl
+zrDq^NvyNv_+bv_?wzmf;k5M+W?^SZy9>{A9_Vp<KZ^ISSavb%bl<WL+e&&=5B!|xV
+zXWBe}h3r&x&i~f<9&huAbN&W>&flQV`Dyn-Uh1>prBfK6oZA7HrzBt0*05nIz2~+J
+zWzf!W%<8OJMmsXbtpXkm^rp>ay_DUS=I7ygNMfvQm2;~FMyKdLe@#7EYO}XA)0yMh
+z8qXD~jn2U{`z4U=mZBdMd6o>E#B;MU@j1OZJ6-T_GDrNrTc6j5v40-txwMr6-C39q
+zJLz?%wX1un)49Rsb36lHd>njKzJhc$=H{#CR=N_GAA5>^Zeiel`oIw;1DQ5A3Yh#B
+z>K{Pa#f+!xJmoEwSh5ly)TQkL@jiJe@P=9NhJe>adDBUFbyaD`5L#<EFEXyJe7l6_
+zca+WKjN<An#_jDzdnuXUcA39B-{B1Z@vr)4_?wk17JqMN`2VY80x_oCiTVtmHWnPm
+zeW;su8{4d+GkoUav;=;HXRXz`&xWEi{P`$z4&zHFxCU2csnedH5Ir1e<9MFgvmZQz
+z;(D)=oD!eNFBxGgF}~>hyhfj&e;s|I9Y^)x8Tw{9Z;Ke6gXiecUS(r2><m4j&fvn5
+zM*w|`Z<o3M0%JSt`-z%voU6~&LQ0RA<Jl6|g>>*nk&~{<|4jIWtHh^bo7m1R)bi3*
+zgYr_X*v@SpJi~taZ#u(nAAW|NIQ9&i`tw`0JW03-3*BCn=eLcbcWtKa-C=%99-QO2
+zxoF%RQ%aA$+f;i{>?W`e`FsgrVJY^W&GS`byTl5oUeg}bYo><jHPP1WrG|gTom6Ms
+z;4My&GtR3eZh_I*jy-Q|T|m7p^BRsg=U(ccbEB_Mqkl`#*Llijkue>&QqL5%XcM>Z
+z5Mz^o2Ord7N*jYZOw?tl^J3AtLnb6_6CXrVEv}CfmK5QHhl_E7;pT&ypY!nnb5L2p
+z6U?<k86W@}0KAqxn|Q%-^H*rRu*6aF&yx3u6F7H_8AteI-)*t6iD!Sp7@xM1uMGS8
+z!SmjK=6NsHOwM~D7c3B&tX*JaiJWD044(IXo3Y3-=gXuX=8E-g23kGJbA%o0T8R@_
+zemV1Zpf2JT;@|4bsgONFj1Q5Iy2^fLiQwKQ!M!J%#_TcJ^NTo_nRUYNkKr6=c6Bet
+z9G@a{yp+1r5qNjvsCYLJyVIr4`=gv&%gry8x&67fSnTZ-&Rs0?8y#hSulFdAtNHy6
+za~a6DOK7v<ZWkMcCBS7r)A;AQ5%{OJ2>(=R{BzyPV1F_0af<DC;tKbSwBPY<wdT{#
+zfVwWU&-h;cJ>`w_eVj9BHvybOy9vzmw^UrN{8EA6c5e)5&>rEx<M|yLe~$tDee0;g
+z@x--^(?|S%&rvnDt2ws#R*44{m)QTE9D9zs+^N33gN_$9U&gw@n~bqiFD>V0jGH|Y
+z*QQ3|+6}{SE#dg%v^7S*w}C&d*Lvx0@W|aG><fN4-stC8pDLP{Cq=h&m5POp|GP0h
+z!sH*pBP|mi_L?lu$9T?PmPxqW+oXfE8;B0G8(0dQ)9%%Z-M~`Dv47SCEYSX-j5Y<3
+zr@w!6;0z<9?FQs5X<xw<8>Uv!{A&jBF?bWf$M<Mkfm3+4fjzTJ<JG(Ioa21V?2%m3
+z4^$p|roIAWrLKQ7%5<PieUU7)vQo)1$+{lzGc3n*b(C9%a!V^moU5bE_2U_9`)<J*
+zO7EK#*jcLS)$flE;dbVsP94XVAeGo&b1UYTwEtWG5bP%%A)eT#Z3%pOA1I>rT<1@5
+zyeK<7C)IHIXBNkSGLNAQ<A6LiqRfNfo6pu|?$@>m-6P7RQ0BDpv_VPd8#GKMjUkvK
+zpS`r`tYbOKkJs~@K)IMRe4b}oLo%a<a_PIQL3@MS!Ap;3S3n+o>Ai{%ClAgu6P}e6
+z^WwwoYe(?i%ug$PccbFFYimc?*QR~Gd-WjS?f85*=rV2mIyB$iE`0YU;k&zwcy6Kl
+zjGdE8o1odkZ!Z--d~-PDZ1QZBBmZ3@wtt&M=38JX{u_IT_7LGG0Vi?bhs73i6w*FI
+z@sy;w<ilx)L|dMT+IE&U69MB|Wix9vW4za9?=zGgCH3&%7QS*lXu%cvWw^i3x1Y3V
+zubVc1uk)hx2>#tPh<~py!oN#3{yqAYWBI?*Vw{u)PU0DmajXrc&;P9^9>!SW3DWLs
+z#b&l$?2g*ytm&)5Z*Llv-~P>4hWKs!uiDHq*6pSuetWgoH5h|aY`4zfnK1Vp=kpoV
+zO?$rXzrt^qjNrHHc;<18&Ftoy;56T6wq0yyCkXG2aao%+KLB{Jls|~+Jbg&b3GH;7
+zWsTR+UJrA`=fip9EmB6&sWoDkMth=v()OL6w(rcpgMFvZ8<%U|_&aj0f9)u|@um^H
+z@wLbB#^u5rZyMFUv)BffYb<4GlYq5u6Fb=!;f=$({~X8HipITC^4qKPecIo!&&;2)
+z#MZW-hO+&npBnkDDT0SPgg-Xz40z*h$MDASVfLTbiv4G`*neKD>_5}T<BhKs-Z)-l
+z14`bQHeXA9elD?kke{OuCHp#0^N$$g<i`gF&Y1F!wwBipv$c$CTgxd$ww8AQ$ME@l
+z@H@r!(6qIT7ui~#qIId5)8IDRawIm149FPnK7Oe$=0CK(WlGyy2C*OJqyIeTs~@zt
+z+&pA&srPy5aqKNQ&r`IWBx9j-K4~Y(dGdMZGs!y}ns+vm?gC56-GrgVwmPq)O=!$k
+z`{l8t%x4dp0)EEPv}XzUnI%R1Ong$0_qEy~8@^KqZTL17(cMjhHhfnOD7yR1myfmK
+z8<p;2eDrOhPPPxcK_7U7zRF|uOxM;bo6RxWX7fDp4cM&qJ?5{CV?lepsADtgNL3z7
+zyDvc<^JBi9=Hl%6l4oGMH=lE3r7*YJP80a>SX<3@+Tx0>=4@@N$@N?yc3X<?I&omg
+zUUNR?XhCeG&1UPM%_eQnsmm<m*ir6H&~+Dd{lEyj#Y3R|6KWaHxLW4k-_yQd0c6%g
+zapfN(wyA_=#=GUZK4=WBD|wKPBA$Z0TNw3n-rKc3Wa9|^-U_t+)=8?&t=b-P!H6<T
+zQ05OOk#F0g?Dz-mO4kh9%EuZ1y45m#yT{G<Dqe#;$_}mT`)f9k4cZsCmauEBld~da
+z!%>;1U53~?(@)9X9$p?Je69~q+|?ttGsM&4hifal4d$N$eIB3CXQ&gM?cqcQJV>G|
+zOj(lWrbc304ec6z9>mFX=4kggGu=6kc8k@t6Bhr=^&WE$V4P;eN}KhG&TuG|4o(p{
+za+TPomC(-3N>9VPbHb_gjDTTIGVRrqN@&-XN>2v=at7tIfU$(Qv)s37qx`s-_KD6S
+ztlI^-B=#8Ih3N112YtqKmF$POoC#Ck6_B{*Ejg7>Z>?97O6LzVk1uoW0LLYq?b-(m
+zbi?ZK=4wAuJGOpQ8;KWJ1m#Ra@d;gnKCvaov5`>zu-m){@N2PM;@N~<<I3#&=ntFm
+z{b9Fx^he%-HkM%@-D+<iw2Sb02H)?jdKACdh{Uf{c8RBGyTsEuo{X#?;AES(LFo83
+z`9EX6s9$Z+^s{&#I4@zwf5m+K1m(nk)N1jV7ntujhm>*I$9ms3&F=7c{_ESPF@HsE
+zkv*8iwiQ~JerRsp1#YeIWG!Nk$5@rW!vBP(#WlLmiR0K_B~sgK{!{zu-G;d$+%Chn
+zxAGhdcy%=2JhnlZbK-GwauFYfv2WYIW{E6tK+6I?&%a>MMyfhbx(1r1bnKaJ;pHdx
+zcq_r{PbDv|ZKLRahka2q#a^46nNj>cZI<bacMWZgd5)m@ecBj{T`}jsackIUTvs!%
+zSihb~oAVNi-#2=<h|KU`Vjr|sat@R_wK*Wv@<vUQK8N}luaP$ELCH7uiFKCnqu^cQ
+zExC#!`#|Q3n=1aji*$bZbW2d%400{RZ`OJ05dDwH_wrq-v!^TQB-f$74W+&5u0H^V
+zOP!ZJp1Yi68e55*OM25m#xg-!v_BzFJ(USr$Ve)`0?I;<Ydc!dUx{r-d+pCMXSKGO
+zh&sz%)4s)(vo0rn58+4jeuSZ&y^KF@LS{6<E1BduDZfN?9P9?#s%hOGc?9ZS#)z!4
+zPUmJw-v0)3$b%<&THC$u7M!usGd2Iq?+j;^=xvTr&%`)=w(`Z|eC-_6jV%(p=~-g;
+zmlRrxy3Ppqrt|)qJp2xN{>+z#eDxw4pOhZQ$6oaO_SPa?vevst;uTz({esr<ldqs{
+z`gc(;ZPiy~hGY&o_sl3?7M?fT8js8@k~tWcGN#X1?$&tZ7mTUr2z)ABsn@X!_<=m!
+zETMJF-RSYw>mj{f8MR)Miq}ix5!3F(IL!69L9a)XzaGA>p0=*k<LEW9C`-g?<MW)r
+z-tW0a_H!y$p8b@^^KyOz_yrI69LC+23*b4+^ZOv4{|?_oN382*MeBOe;JPZGLC8(B
+z$uF-2kGK+i;mUEt@yL(CNBp72=qJn*-Yb$y?w`k4eNJ_*0X*~^%vsPnDMvro2CT<N
+z1SfxjXUF2NKjf?bi9wlayvS5rgkLtbT=glDs}>&Pug^1wsYSe&lC2gG^PMBF74pv=
+zdXJT@DvE5m3BziQ7II(b7s$ColR9_6Z^p<E;s0FPE7J}(ru5iy?p&mUeg^M3cMaf4
+z=Yc0}7{S-htn2aauTi{Hz`n^<->vbkBaOh?ux<M5g&0f0c?NRM%NXM`puI1njc2@4
+z{0`zbabl=(b?&#|f&KjlIy=7cIQp^1-t9G@4dc0Qe*Hyl%NtYiD9ES#dnHh`PpI#q
+ze<5WM>Z+2UDajFfE%J+v7!S*kU!)Fe=_oq1TR3LacZaSoHZ1SoP}zFaw-jY(t+b3j
+z#&Egs=zww0(E%I(@6tM}x9&ZToo{BHH*b)JP0W)&w9}wrpi|Z9t>LMlVU3K}QcS~o
+zNkd4(*5sz9hirVOXd1RWjd2OhzBa$y-d?jJ%{|0CI9tL-a(zuGwncEot&PgQx1o_V
+z>{>Z*rvHTld?dNDSS|s%%{ehgJ=1c%X7!|Fzz-8qZ@tj6h52&higloEbz{VKzSZU0
+zkf!mhh~*S~Ut2`W77o%f(*_+gzTy2r=-5Kgv8O@Dnn1@|H<TvQU7!P7L(YD|B>|yh
+z6H%rl5Ol6LK<^C0`9`=Tkq+(<y7si>Ks3^KdlB)AHxAdQm7RBxF(pU%_x!fVzh_pF
+zf6uL&-*m(;`7@A*mJj03VLa2E-fTH&UBtl!{P{lO&qOpQc|EZ=XJ$0LgRBviJgdoE
+zmC%EfH@O}-vc5SxP#etEO~L<$U@kawJ!6b422Xb_b5;FN>*0F^=R$tfKEABWa8}EC
+zDdg_8q!q$XVjg)e#{6^K8zHgjT$pVHzLc{_ElV^C-P<xM-3xqiD7H+wrhAd&(ml`{
+z(8nRVx5n!f->56IpOkTK5gwYn(W|!w`)^GT(LF2F*~fgZ$MDWYG*4`0G|l_Erg<B*
+zPY-FG*ih@WUQb)u<E+^*n&+>XrPi!&#F{ZDqoR3N=RdCJKR(L*ON<b`24iXG5?ArM
+zeVRu)#@v3U_+paQ?emlm2x;9uPvF7Xd5GV$JiqtXkh1!@n%+4Ay9={-4h)>Jyy&d?
+zPJPZSaefE=d#=j=3!clKcdk9=d|c$Q%-y0}^y$^y<I<}w;@5C|di9MWdbMTLbMlv%
+z>x4Q|y!(`#`F%sqNa*)Ldy;F#ucub}IT81_qP>Q}bJ8_~H0oLL3B9|B{(Qsxn#7{n
+zkFtBb5_>=Txd-sGAK&cpLiioTZ{n{|vOV{vwi!F#naMuJ|EL1KPo%Ry)G<slDBFv&
+zy`!9+xG1|^`vIH;cw8<tY)cUh+afe<d18CbMlBQ71OB;w#d|<>=b2GrmlU1%tkN=@
+zjsDoqa67zeeWpTs^%L}I#cfJX+IHWuXC|aKlJ~}1=QRw{oXUK|g*~Egqdy39nbyXX
+ze<t-4JSUlwTAQ1i8Hx|aGZxaLDXC6xB4`2RKJQk2rYic0#`Tzg@S}0aOz~|sLNhSF
+z-M(y;*d{b3LmNra`z+4?NymYqd=wP_jH}m?mXHSt#aeQuS~i-PQZbKoe#B$sBKlA9
+zy!H=+GSSmRGEpksmDVy*&^Rg2bN>?ZD!rhq*pp%5SDr%O$*(*ma(^h^CUM*;CmD&&
+z-X{8WWJo7Ik*99uI^FMj(Hq|koO9E0=>&6Dlz>h!w@?N6<qC=KzfsOSN2LY$FL>T=
+zD-cKgfqQM5<O-0S+MEmeMVGO?#&mWY>a7<&cQb7>vI*k+R63u~bUX15vQAs$&>0Kk
+zsvC`+f{Wj+taFE)jf-7^$U1~~($z1ZUh1lD9VI47G2Sm7f%oTW{~_9@d`9E_ugHJ!
+z-aJ#sS}<qTyPbQ^JLcaEH>S;TMfp*Q>w_9cGo~YPH0Rv3cM9$f;8_SfOc1{*n-s4B
+z=e&3wcs73Ch&A{oa5m>(^fp+7Zxa7DHhIN59>OB?bPx`2p$?4vuTzx^_NL7nDU<Zp
+z<oGV3bwp3#*{#Fmk!uF=d!OL<&BO5f8SfyEyfc1pA1;rij>YeLiO2E$CgSJDwcY{k
+zyC0yuDR{bF;>_1#jt&5S9T?OduW@PLYFcaDy}+j(;|$4-vPa|I9Vq)C%04&(_dbBK
+zO(^T@M44-y_($Z2RI{?l*YX4PQTJ=y`?D`7eH8K3GL3tEncKHB1`Y&omg<|S^-|Qy
+zQ6EOUTdVcc)K689@bCL1`cwT`g?D$n2fWMJC0OGu^}73av)(Sjxx}vq_*CkDr&w!q
+z;OlFqIGWEVzl46j#&KIdpO3u_K3`%xiJoeGjpzd6n?2xd@BR^ZmvQTSoG?aoQdi_F
+zj4R2%i@lhSbBFt@e&QYR?d!+Ex6Q)46W`Y4-%&Pnlx*nZTEaE=IQ<wI3xxX2nK~9E
+z&&EHd^-&e}&2H4W#idRlXmj5$!oF{Y+>w4LXg`?`V1E(@{XFhZe4M#8Hp`g=b=Tlk
+zMNgviLkqJDeVnOvo(tarXU_V<2%PyI^+SzXKXjSKnNu{*oP>G_ql8t$C*jn`of8ce
+z3&H1=rxfX#KQxFlugrcz<IE=f7hSOEhZf~Ir@hn-{S9;X`4MyXQQ=Qp<P6}Ufq~h@
+z^B4mhaSj#UyCVO6?TbDf@70hWuVPMGu5()v?qgifCgQ%#N%WDZV$8yS()jOL;=f_`
+zpF{ZXzcl`<(75k%!F`{27xtf@IOdGI;$7f9o?%g!a&Qpu-86{zzNvB9TfiT00cX55
+z0+%r_;m0b0%QPQJ--*O=bRooLKjfJ()_?2gwQhYB81Zo#a7!*|rTTmwds^%Bdo?e~
+zxFIV?@RGL{@sd-~FTPu9Fb58<5q+PJzMrDY)YB$tl=vc3QRYOHX}?M7MQ+!6kud?K
+z16iVRrH>~?Co<>ES4t{rpP0_tM#>w5z3^CE<?)$fv`T&p=DcR!v|ysmC0u%#55tM)
+z!eR?UyOec@qIPR;hWK-<=TjK-P0FS7Qy@>6Mw+?Q`e?(%cl0HAf$t^vV=K>8$`=&9
+z+lzN>s}}G0Y!7}@55yeUe9vdQ@C@(>yx!_fMH`Yk4Q;GQSjNj3>k(XU;j->m=NHrg
+z?Ehkq;F&0M(kAG4f0w(Jy61aU&e`(6A?NIRyk{(-a^`deJeNp*Dcl3M{G}rxxyH`W
+zwmnmH-lJ<Ich;AfzpjdBdu;drnrrP#*n9N5jq3frdO+nJ`zUb}aAOJaWJc$lGIsQh
+zHGY6=8?HP1rZT1ka0}=0S0XoV^lrYy?C+g}c}XU7A!n21aJo@&@{&CGqpk}KV{P{|
+z#*EukI2-#qVkBK&&-_B=9<+5%wTRt@@7uV?4!zS=Z?xsO2brVLur_+kM|<YS%zn0Q
+z%QKa`p80E7uZ=p*WI7*mw#(dyC2vquj&omgr^-$A0OuyD{E>o~(>}s+YPHLJKrH`J
+zJx3=<4(~^${(|I8+~EB$+V=ZV!F%w+ukpN4<x<T582I_WwV%_k^_<aPCgjW)zh36}
+z4buL10lw{x3s3nlb7o`zE+33DG?Wi`DeeC(L-Hkl=BYscr&0Fu1Mi#zjIsRR%n$T$
+z!T;`0Sw@_ZzwZ0}0Q1@~#}{)S+JOHBxEgR>YT_&Ao(FIA!o}uc?u#8WdPFBG{E^dB
+zaL{JZP8F!*H0<>f%ec03y(coa#41>rzqMESM>9TwqDv}H%fxBxy{WgYhujRlY3F)x
+z3hjpK)=NBu3nivxIzP+l%r!u!ql`-1ziO1VcoqXZ>F5|X0pQ2`z{Am=y$thT-qcl~
+zy|_s~M92dXb6X*3(WiO6*l8ImR{?17I?qh3%1Mqsz`|J)tK$>QYqXYjmA>AFIwrB3
+zplkuYSkB{hY@7)FT`SiYO6s;0=(FaeJ5M#KXHBoo)u%f}2kVGG$rZG#o1Mho&%fm7
+zqDmEv<a%%BZJ^uOlMUntrfrrzPkzB!xY^@eHN+YF^Ap+nIgCeWoKXQ;<`*j8R9?=4
+z(f{YkOJh#T7p^OWr>XrHHU&4Cl1~V-a(E759`Hju0l;?<yh6xXcPM1HYW-WA*qBTF
+z7KsD1+MTKOgAJJf{H-chqaiVcRs4a7rFnIfCI3^a`Jb7Z_o4mKN2t$b`?_B*p^fjU
+zT*+d~y<B*cH8~@_PR2Q_4s(#$>g~pSabEs)VBjFvj<$U0_d4)6U5_$ujd7#P{MpK8
+z>nh+kV{OFh_7>bmTCp%kd5?1Mckq4GdDLSW?Cse{bnN4qI<67N_aMeb*>M)nRf*5-
+zPKloqiYeM1)%+dDhq=fVk8iK!6I8jL=_4=aCr*?1dCAumXO6M)9ODZA+~2}j>Xfbi
+za($+){JJ~j%synqay&Pbc;k4sRL8UtotD@QD7y%OWwb*(0^<DN>a!$OZoS0e4cTke
+zIUvfg>?J63<dc^1=u*pw0<T1M{^fwtRbVcs9ZM`@2>^z2RJH%k!hXU&#(VRtFAf||
+z>oUX#hhjb6p$za?>@GJN?=DmWH$3XRnEkQ+VwUsA{E*DwPJ0Z(3(st#u~zrIQ;q(|
+zk}rx5jpv!aZ4CBHKIulr(VCz86@EX8IwD-(1n_j~2DjuMd`o=<_hGErEsd`N9ybn`
+zP~LZL#=cyVEl1td_cDKXud`qBz!6_l{>Q%F8o~F}?SPkdzj=|$q4qn#<HIN$lJ#j8
+z+q-b%ayKt~%gtA7Jg`!ao4i?L?95kIWYqjbV_k)a<gH&Uyb*Q90me-;fEtAF>C8Q%
+zX-7nKF_7gj<{#*1wC#-=+xvnJZShvo7w~XM>p;FNeO%@7tT%#wG$x<uOJ1$#|MD|m
+znb_NzlQ~N(THSgv^9ri-{HBXluDmdC)EL0Pu)L|j1+8<`+>?i3d!GdDDb>03%1KM{
+z?DwXj@(~)0PnHZ&KW4>JUbU6Nnx-VzfaHO-*FyGLi@mfKdwH!lF}BvL<-L(MgF5&5
+z3!e@4Q;$y>ej;=5bw1H2c3F#iyoMDjKU!&QLt%<PmlF4lYtAzc$Zu(^bF4KmR&o|}
+z<{s_cpM5;FpK*!?=XPRZyZ5-UAF}bPTwprpW!hXfV$rX%#ijpjkY@ogl}m7nURUx#
+zpkKL5bv?|vM!OzWPsgbBkOsX995i3-K*lltWcV4<2$U^B*|K!2YgmhN70FiN?Sj2)
+z39AzO?Iy-Oc77$W`76fd&8XPFd?#(K!}pDA-OGeVEo3|#$?MH{BP#(1|F|FhOvH1{
+zTOf93hRAVQ!gf@CgD*<7(7&Uc{LYW9Uu7S$w`O0S&fJ*o;-4F}S4m#nS%57IFc;x(
+z=Ky4`cGssrkKsGQf@!t8H*#*ko6=r8qJ6HEy>qj~^Wry?$rs^%1@qO$y1ak2wq`>!
+z09%-kU}lxzf`^Tlu%4nr$QzP}x81d@4y<p7H%oBT0pOZ;(G_y<JZilpHoz=*!GPiw
+zzwGxx^WA<w)<|B}mt<ZcOO0>k{*9?PFORZa>H$#q$%h8|f5)=MuS9m{vuZq}e(Q0A
+z>k`jz#9Z$HPAIiE6lBevxw%K&_1R!!Gv?<yIo~mzkL6nGm{;%umwERdcAn2tuSk4z
+zr=#K)ux~BQFX{dZVCiEyKYj@7ATM{j<T!jmzI#n%?Csu|AigzYuHm+L11}8pM{N~L
+z*q}{6)|N4a1y_N`dDz(s8qZi?7=t5rX4w12;U8PSkvaS0Q3cZu=ByWULmCKr`rR@Y
+z{Y4qtDm`laCL5*P1=usOR*z)1X1P8QJd0-9W$ad_6??l?Y!<mjDnIxYdCGL;p-NKV
+zQ)1*J+Fj70@jphLy#F`wo37%g^L09&nAix#+~5q_`YApjo5wg$7JR#y@Gd&wi7yWb
+zO?Vma7+0uL-f#B~;J0soe>Uci`Lt$UrE%gnA-`P+`E3zkFraYC3c)9B?&Tjb`j1Rg
+z@@mj%lU$LKQyVyb1#v+ecs-13pV=e6bo?f)ay<XuEN{#+{@5oOzsG14-ad$ZC%zWo
+z2flX2V2<v`Y1cDW#YkE!`WamZ+c`uUeUHjXU7iGO%(Qz^oex#?1C5}Q;5B~J66j|;
+z<>=>Bo}CxfQ*LZ1%;Y$Lf6EyY!dOI`&+&{Y^{BHi%e_O}wI5si==Vo>-1-=v>wL%M
+z<cX<Q;djiJ@i^Xzo(bi4=zHLl$$*nH%42Q9WAR(?z~x`X+!N=Ac#e<%<;+Qqas7a2
+ziN<E{iWd~TvETpB_>JNVV;qh+8$H?rokW{Dk&`x3XODfeOmdw6=4v%w1N8e3lK*qF
+zcb#sF`kDt(|2*;}FDl;Iuy4sRmn++*4x4=66PUAKith&d*DiV2+=Z6046+RK88_lT
+zVPr}WvybN!!QV{G5GR6$JI!)l7cyGFtFJFmNAmGCfx|mKj_>i!vfkehY|Hcr%ms~w
+zRiyva0fW{CLGP;!&_vMY+S?_sGyNTyms;h+4cXn0QD{?lMIL3^P3HpKe@W&LzaNNb
+zy(R7=t3MO$kHqD9pFi)|e@~+9Q+T$=KWDT@*kb+=@N{p~=x^2i?Z#MN$MwMdYCqh*
+z5WF7t!OFTGk3MzW7oe%RkTKa~UU)M}I8wd?lwn_L4+xE+ZHW=vD7w;9{IM8c<o$Oe
+zx_=EqpSnHjhSq#0sA+L4@w1%gL@QP7k{k3p@_bRe=NbCz7)M0wajwPtKK!<{-iFVw
+z{EX7uP?y8`3i&z<>{Y-0KZ_kR{ae#7m`*e2N^+ruXw!G0<ZI5JOkHBSCHKAO6&+*z
+z_;T_+^dT}@b3eb#><>6@{t~0L&z}RfHD;}vhm6ke`>*)E1bE|R@g-4ybg>a}FTRYm
+zI3H`l@;42r@}S*^_k2vP&7OyUKd>L`@-nVIT#w?4d`qpBFK@pw*E}3@&y@3wtM?bl
+zi;x|bKyD2k*?y=M^@&WruE*N}e84!A%%@$g^i_EkXKRhiJn|;_Zlkl0ePQ1E60B!w
+zjInU8rA{puT6lM<;?u5$Ot`(qh~FJH7IvLPUiJ6$IEULsMg<&Hh3pp!0VkO&p)Qp?
+z8t{G~(c+E~eePoFL=Lj7=yYOtds7$oc#5B0<L;cRcy7wy;lvu3_}%BPX$Qsj9@Axj
+zZ>tVt-d?rT_dJh!NWY_xoEdAU-*xuf=M_Ih9~ag^+9Y*;{E5CLmzhFe&eUacD3ivV
+zrfr>Tnz@wln>sX^uf{cQRQv(c*^eaC`SVgE=E@pAS5ZAzCgv(+y;LCm=6sk|i~E&J
+z&3-wjNoEdx3HO{E(ibz8IrNIiv}uXq^#o<I1(vZ71mm;Y-yYcWy`uwralN?h?Sbp?
+zn`=DpbnJP_#SzbMqc5c`xF>tRT_O1gmY9rZzcBx0@`NaRzcs<L8k0HdMoQ;&6?##w
+zMCZy*=s65Erp<tybELC=PVD>b37%Whqxt$~$xlBO*VoT8M2{=<(s@Dl-36xD<BOko
+z@409b-##EY+}9VJM1_=jnfbyJm*u7!6TEu#NuRT40|7(!;dA)57W;U`D&Pp<ME2Wo
+z+$!cQuXS2$BIrM3^Kia@qWkR_72YoL2$s@wePlqb?PGX$zcaz>WqxeC#hr4lnuqY5
+z<^px-;b~n36;IhHr~aA!Wm)E52i|Z?O}<}D{t0|+v$V^yJDwZp_sdGTIW2|a-%E@x
+ziK#pCyC01BZV7mD{!X0(*t6CbXyZ@2X~yo8xs!71rH{0u;+$<q9Zur}@j;k(j$T(g
+znd5i@w{;cnk~pvuFD+kcr-M_h%W{EfO)l$=GTwF~=)D10<JzBRrSm-(s5xY8nYXI-
+znpqWt?ea{DZ5*1}<Mm2T?<V(AtZ5+KM7c4)8THR>yeyZ-vnY7F3ha*uEy9)|yxZpu
+z<DeOvmornB<U)-X=R)aAbLk}CFV1sc@(eDNlo(9qga?lC4#=1fqAh_*v$;?uFabOm
+z-y|^csD_DJCt1UIM_hCIQZ^>G%Gut7dQ3)Qb@<of)0)mYJ`OQf^W1wp;|nbWZ<Ypp
+zoPcq@pK`3-lH*u=@hnhB{dkkh_kAr`pUQN0nR8jr1YQfolP=4p(Z@(5<~G(WIqxMl
+zA9!D}L&5m|Li_{1rj#*N#a4!UWrL^qDWm)htmO&X#|5}8KXT0}AFiAM`Wz%~qMXs}
+zQiuP*kuI61@%X+9>&@@DKZ;?k>N&+LIars^(sv8>I3w!0AN4RFYBk<fkJ82sc$bb<
+zcx6~0>YiVPy!dM1*gC$Vb$81E3)fM;XpH9`z}O$1uHcFA9!xd6+>6^p7EI>@X~;s!
+z7T3q6p@opY?aOkZ$}NSkL%ZK9;jOF$=CrQ8V2UhZluyGxB}|6_hp~8-S2AsLfiYWy
+zdVb5n>$2Pn`#@(Gwik$FJ;3|1`}687eSM<S)p-1Qdurc^J=&=D=&RF?-J|QtPvZHP
+zo>%nvMC?1^L9v$Km)rrD<?54{<z{1_5!Pv!Is0-2hvH+^sPZCkFOCO%js*=Z*2$1I
+z+-Ii6XNz#1#Qg)8nEiykThZ>Vj5D2Va+j0$7yB0AfK-$F7}lIP{3B@h+jG!fTA!!H
+zct&;0(40eV<J?(A`Q?cl2$L+&c@7bG7;AGeBj^!dbj?xykE;ID&H#MYGlz1NpD|A%
+z>z9R6b=DwfVZXXim1i9L!(xL@+_aE#Qg90QQ(cQ2bH<6jvqb6P%cFP?d~om}V>5sj
+zPZ(u>uf#j*-Ks}<_c6R9tno}l<S5{N>a}L0uibk77c*`d%FadE$YqMwP6W>tf?!N~
+zo57|`K=6#<_pRX3CSGg_EhhaX9o})FWu$Q}!#9lv<jc%+9_<oEX9HS%Hpa0V{S&?`
+z-t5kdZScSk9sU&aZQ<RSjQfKBXW>8RvL62_i_OM=!sXfc&)g+u<~6C4^U^`Rf!z(b
+z9hZMq;^l7eqIF#b)6N|7%l%Q#^RCL9_NwQBKb}3Cu{gyS=K_ffZd#c`e;MR8GG3$c
+zL?89Ml-Yy$?oIMhnam+q$Ks=2<o3Ciu>cHot+URfZzkn`Lt^gU<<>e)9=@++3}ebO
+zQPFv890B?nflO*DSrY4-0*>PEE3*GfoF_VkB<&D*#>;rbhr2JZjPA3PE}8rd&z6i#
+zm(Dx!vgfW)XRthb6+SkF^`(uY)}<+a<Yg(tSX#{S!?OtLQF*?h&iPimlQkUAMEP#e
+zJ#{{|+I^pXewNgCE&ch&N3=~vRZ!_ZDFgZZ(bAAQhnxLjUoX1KQ+?RyX`hqv4WOM3
+zA<oHaHv(Rn<>^a(=5fA(j5yxX^-hs8t0dPHec9gvt`6FpgzqPQe2lVIe51E_Zjbne
+zu-v~f4>!t%Y;`_p*sHt<*5Wxl-;L)iA55=yEzoL?`{2on_kvs(=6-o&&Tw2LIvwyB
+zw7F`ZZ}!guUYnT#4+s2E51j2_AIteqtkbKSX!I{Y8&fkAWW3}_BgPAb2DY1FOmf9v
+z#U`uype`-K^E*6`k*`3XBcQdcYZm#iM6*lXY7Fmr=0aRaJ9nPz(WZttO>AIM=J(^(
+ze9i+uc!ivi*W^FPc#p(Oj0uIgWgeY*zzvaDm&mZpyFJsHAnynZ4^HY)eVDc$ynBnB
+z7t(etq|1L%>#l!*IjV#VS!!hR2Ik04Kz63C9Pj=D8aNYuXSw@FmWy}h!kX_sf^yE2
+z)Z3)<QOrdH=n`X(1}pc;`AWcgN@7?3S!|Njd&aX2*6}^$Tl?t(@h0DgHH-#cQu>w;
+z=y6BrgRAA@8G>gNUq#+xx5(kE-K`fZn1{R^oanTM$$y80o_>ioH0!~4Z@7T|)?7Px
+z!r(ee>`%RRv+&$sCz0VYD$bLcN$35wilRJi;@XPVX@l@$$|s3D67lp+;Qz?q&O%?a
+zKOgA7Q{r-`v&3b8IA8TOg70FY1DfESExAv-ysOFg39QC)Dqrjuy|XcH;u_ORxIc-R
+z{qr&$e=Fu?8~t(*?}p4yJiU9wd3qLWvM6HoTf!?y%mlFo4gsF$$=Vu+s||J5D10jD
+zXGHYt%0`1adX8nf$vV0P?*M;5fWPrM^@QvL{jn{h!wXK^CcNG}z&>;75-w?HUkg0w
+z%Y9QoV|=<(kNb(JocNfuhq!VjWx}5w9hiyVD{w8wWuZMQ2D(J~Mq;fi87Hb?p-k*T
+zy1g}+Up@<{K8u}6E1q%vt=JQNO+RP6O^F3MK4^5m()aa%l&2r_k&DlKC3RyD`P+O+
+z;x3nGY~%?{w717Fw$jFM#f+XB@=T30dcr}+wt~v%bNn*mCu5yQo7_^+Fvebe(lBOI
+zj}SDk%>FyRFQX44c%BP>u3(z@ewNH}x9l0}H60`QO0}J&4CK|~nuyB=Jt6*%xZS|(
+z*JY;|#@aV|)&blYOs;YTM&cLeDj=(dU%M++fwhFNeE1Grj2ZiBT-S+>hjDlju8VOs
+z;F^Z(G+ZZZf0OMP$3@DgU@O<1`u!=4hd~-AK15e!#fH~a>rWU7qCd1P`0c>J)-y1!
+zWjz1?&k;OK8hje<kyby^N4@dqs5b_mOIjbsT<2vi-Y@5r(yrZAm;!!OXg13K0d-s8
+z(=F6(iErg9u|a1{@U>`TTPbx>OY^Uw-0Q>QV+@sBgL3OpE{byOD|O%*l*^1L*N$@S
+zrHoCsl(q+3AJnljHjgN`8s)xT%9s;N8544AJIXbpT;qsxt59x*?%z(7TV|>pVe?0n
+zYeTuupd9(Ae?hqz%GoGqk0{rQatV|hhjQOXxrr$ECieTA*6?yID0dageV+NeQI4@Q
+z_MzOq5#^duZb2#SY?kJ?pxl0xqkY>0Bg!?Q+yyB2*sxf*L+`(V_p|YS8{XYG%KCpD
+zYuQR)$5Gz>1AT9X`8N*L+lg{hP;YyKWz<v#?USsq{UGo|YhhsEWjt$t;OM~e?;IUC
+z036}q{^f5U9q7Q-fa}md;~v*6Tzz=oit7-|%(jdSuKC|lws4^vmG0?w@@6UW|7qEq
+z<l~43Qjq^6sicax3Z8G+nF)BcTO`+_<idQs13W}G%Jb}m__7-`tNwCzc5)5g-wymf
+zc6KmlmWi)!dB+7k-bw$-b3e#bu^!s>WS3H>Lwrx1KwW=oV<E(x7|BjA^-ua70l2AB
+z<Q%j!><s2g;jL4kHPp>5Mf-d785!+VBgWbq!%5aeW67E?6!Co#ksGOl-B>scd$JFE
+zaVhFJ>1XOpG8{{rhZy5e^A^An2kCbmwADF2`w%Ri7s-=hY+Wk2W$4)wnJckpJ{WYC
+zxgq8&l-ST|IluJl0bO}^CE$PG&$VtimE?Jr#NFfEjAg&5a{<m;jB-!^d^lVc&k17;
+z@;vE@pZjMk%jIn4-{nlFXzmy*mpUEVoPjQf7$Zk?M5{mxz~|cP%&fYI{}G$dSf_k*
+z;XJc{Kj61i&U06}bMSi)U^-=~I!y4&JH*Zv^;y(mwdH1^Oqo6(D~72PHB4<B7<im8
+z<ipdJ1qzlL2L`_Tl;Fq3`A*F*5pHGzK6p;N1no8rj(3@imt}VD9q0#sIoyEvUmY<Y
+z^l3}ZvWy2lY#CE=rEtF-*SuLuR!n?nh;A?bkY&uoC3#3m_l$%~xr_Vh$OqJZdiBFS
+z-q(Jsbh-P?3h(_GgFCIlJ5X2Q?XRqmoGd?n#_T_E+XT<OeuB3bWlCbSp;|1q4uJ2&
+zW!g@p|09Y|5*q_;+g>L8OSi{dZu9}zw{rsOouG30n%xEZqx<m9dd>o0wW+8c@sErp
+zbFo2Q;fnl+Ok@0kI`n56<{WZvNaw{dVs6!Ab1G_>v*ExT)!!2E(Glhy!FPKwu9NYO
+z?fmMas*Ulc)+xw7{$)YMorq@(Uu$t0&x<s-5@q(F-_$W!$!!wPgzL<6uidEgxm$w$
+zqJM}hyP==qH|>SQ4&$D=ZW#Y}W6WXNATZC@acqYETiXore2cvH??gW9M!Q#Jc^<h3
+z<1LdMe=TlG&(VKNOq_0!%NR>!55~O%Yh=2uuEfri_;XA1rI~cF19HWV+X&}(Vo!8=
+zQxccuN&~APA0~6DN&{o+@=`kk%7?Xab&hnn1J64a2D}}&RnXStAmL!ghkCrvec`ek
+z`Bw7XJ1VIUPUl~~zQVin9HZaGT<yg($`6!bj$n>D@Xg*jC7->H-+M6@)0&ezg8Bls
+z37PE1-0SF17&!e9;4U+#!s`PJzKXJMqTaV|tB^GgrP5}N<Y>GsS3bSj?O0glrLtAv
+z|GQra8+W=qYoHwp$~9$nPG}>3`z7ZZ?@iGmUXgtP`<8aaQ4OPSU=A}oD?EIY?Yn-0
+z#5?1;Liu$1PhgyOhx;<dlUg{=J5s0g(esV<9%I0jCzb6IZQ^{LUJ^XzA=LBgZ3?H*
+z@3AxybOXXiZV_E9_Qe@HFi&Q(9rL_|Hq+nTi}F$Mt)-H`WKq@v&juVn`!SX?ZqJ_v
+zIDEBog4o)G<EC5Ec$51W+EKobiViXMp~Sp3I=#T{nht?pF*b;W?>hbiIN6Oe9#c8y
+z$BQ)HDRGXB#GT?N7>eKN{n=1s&!9gXH)Yaj>P|11X>z0PYW$w)QHQq?^B6QH_641r
+zT-usWX}m1gRJU6Af^v*$nGx`oI|0aO9XZm9OcwG6+GIStZvbaLCSzGB_6m=g6FeWs
+zH=v(4{D-1x%niJM8q0NgOEt_Zy4B_}@5=#<-{oGvjq=ULg0jbH^Gf5Z3IX~XH@bso
+zXI#tHY0Q0EC9>vntI9k4)<A#2X%%@YXtotX&W0N5C2Jd#iUuce;d|_}gZnDk#s+Wy
+z9KtMZC0o6KxuNj$ql{I!+zn|v60XNjz82{B$5(>2<(lng++XykAOGiTTlqf$4vNRl
+za*yME%u@DYXNxV}GCAW6YZ??k(GY$2E42C4wsW&IKI2(h*m+6hyA!p|M*1Vl9*=Z%
+z`$v>LUdaBmOPf5}e-_*2S)h|Xt^3Cdlr0|X{|DShv|Zj5(8Ewl+4r4@bz*#7{^lMs
+zA#02gnM&<L$T_n)@8#3MLjbR}n^llmu6G%aj=I=nWsAEkZhFgY(<2N~ug`jDlS3T8
+zB-rCEf!wyFYPj#ng2_GJ>X6aT_2(Hw#8Ec;<Vyp!*dIlF&SSubj{#P>kEpM^8?Z-O
+zO<txJ^!@vns(r$Ei1U+exum(dk7qUC2LBWIN}9AjFK`9^Pwa59zaE>T_TjL-hj*ub
+zP477u^8;MA8g)*wDHo?a--a(VE}d=J$yfp@&rYN~$zN7E$E`)V>I`^S(1;STjai%x
+z#?lW(F;}$X2;iQ1nCQ1Fa1WR-wO6?dw4RB&*RRlKt{9#&ZvHXM=K;W?TQ@=M)U9-j
+z7jav>bFglF9)jHVI`}Bgx9{uIr(+(!TG!*9$$3Uwhaku7MY+9|!}S*XP-Y6saNb`>
+z+au?`o^xME9QH-V2`*<$H_rc?c=oYN6|Xb{YjOnpe7@b~?dDk+VCO90WzvTXelM^$
+z$+HjO*>c?9ugjcDJ4yV0UH`75Jr{l-(ZAn^-)~{vyYYLay-l9g;@R!EPw6t%`2E09
+z#k1b<tkOgL^6i1c^vU8LuHEbNVApGVpLG5?yyx2Q{Kr85Xlqf1@q{tfy~N$lyd2lq
+zuy4)za1=}j+>x+UJ_453|KkuWHKUKOYrMhprnTTrXj{01@z_hQW-ipN%z?_-hL52y
+z{r@rCMoIL7=ySt4;2FV1ZGQIm1J-vTXMtaI@P9M@{}>F`Zv6iN{y%{KU&jC5GcDt-
+zdS&CW0`kX;|1o3-viyP`(Qz)j0qf6PKC!!8=G!T;TMJUgN)<{nv^`zt&7aicO$C1u
+zvO0h}dkO)(<MVoa7ZIDw=e+^UTT;$M*LfxJR(FcE-m6A^QLD}Sm!ft<<9a-c^ZX?0
+z#P@Gy@!M_#y!I4KCsnZUte)TEyJ)7T5Y^8dJgddCF>X&`44<JtGi}CTY#VI<(P`8f
+zwHgzhw(u<W1AN*2l=1CWk-avsALx5`9s96Od>tE54|NMutX4HPXG7uko$OPWw=zrn
+zob}#{>#1{n!E3yYecp}r#@e9VvL;n7aZiso59OAwQ{|RC)Z={s<y8MS$ojF|eCptx
+z=e#qV-Fh4wWNZuc^AF;ANusAvqMyh0^LjilZR{zO>gS8~^E2^0lI$r&^z$Y9`B`{g
+zp6)4>>*q`L^Rw~1EY(ve)6bXb=MJ7%^!5}g_#E@GoUsEjr_=EKR((Gm_l^2~2JTnr
+z`<b|3sqfFhJ!OG<InN>Q-r@Zt&w~JiZ=PWp76{4`+&AC~;X3p|%h-o&2d)$dYb*XI
+zaLvMH;d&k4yo_r%t_N{-<GLN!GF-H6s&zycp5@xUU#~6oxFL7@A;t!J-~*7Kz$?Zg
+zY4Nj=7)wq%$aB8*`CVDcO_gFhA7|dJXXn$OVNW_+zb7sBw3d?$1kH7&^jk2@bp`6_
+zbZ)vcB9wtd*PnDl;BVe9x>EY5HH(}UnyT`yb6m3j&Q&rS?fv)eyBsnR`UATAvIDvc
+zp6GyG;gy3Y`uayQ`Sa-~4S4>d<l9`FzXQ)-rtEndee8kvl1*-e=hjv_c)+R%GuFn$
+zbLo3OLE;pEZ>eH#ivwDh@IHLM-?}V!h;|y7pB0qhfv@Vs?%|sJr*!=<hkd)9ra`-%
+z)bwNRc1~fx-oa+1A*O6bLfU3z+-$|)oTtx1K6~Er&#u+kQFD%G*MFX4_OoB}&*|~z
+zpNhF{Y;tMC0{%_t9C_nD%-gGuvQ6Uo^&1~XTgiBidaw8CGwewG=Atv~m*fol_EFBT
+zpBi?C-JWaEXV}zNRo%Zf>wZ{`gLXPb!avJ?`jFrD0o`^Mc)dLR%k0kqTbrja9t~&=
+z`WbN632(=^gsu1EIc-+xOMto(N$^>X&F(cb(_*hczu-_^le<)6mI4MCYtk7f@+55+
+zxE?2C9wqKxVwLNU<#!m%3S(8SX^+-P#g$*j2^jm#crx&%BDg^NH7gQr<It{!epE5W
+z7Tagr3w60rWmkdcxU{1&_4>8HIneLVQv>+$Uhw3l#zO3u)<CGPtq{Det(5tw@LTz(
+zUf)*O6;r&c-_JvoM~w;Im(fqogIi?B!g%qFsXm46HniksI_;hV922N-&dsvh0hhSP
+z^9DSR6xp5;mc@p~+3(FoJs*|$fBR*uujBb_;G#a-W^i2A^9Au2f;>(h`3Wtbd==l&
+z7oGMcAvuR?cYQmfn>cQpwj`8A<N02|$0-s|vubc%$cH{MduUxYi(IidPhFywY0dHb
+z=(J|H7xP9QI#k!<_R6|0%!a156{48CAE6HREsA;jvYt2kb_0I%U(x@&dA_#3$NLlb
+zibJxViy>FGxF-l)&&&DiSRyvJH6k<Bf<}>l6JKCFKk-ei<BMNN8E^c^by&`INGcz@
+z1E8Z%{d9zG8Sm%^FM58nM`UZ_4&Tm)F$(u%jEAs4Uq&AfVGgPPApQwpZ!=b4E52<t
+zkF_PDKAZaf2S#bLiDQpnma9)FTN&Rb@C)<Q8Z!R?+hc6Qu(szY(e@m+wlDcP?Kw~v
+zeeAeD4<#me<-jlW+g$;<B9Xpqa1OcOL({ejZIN}h)c%XvtGpAqKDL5u;t<+%9nt#2
+zL#UTyeFkMX7u5T&7-c+{)21IhWcM=zf<G?7`upELhHuZ~T;SWAMtn;<xR26~m^Q@5
+zv2)1x%mbe~UD;#&`zgw1rPwaTw_jN{#Tv9-IWk$<so3~`XcG9xi_d&zev>*^i6rlG
+z=_?}kPrzHVc^-ZbZ3M6mn7i`E_CZ{0*{z@p8^so@7;p7|SnrQG^S>?5|Bv9Tw%p=p
+zl-_`Gs}H4myfSCAz+pXg8mM=L+a^5tATF=lSm2%_T#p$#f5z|T4N<g9T;#7;bXr>}
+z+m2@23hDFFzB`1A4x{}tYjdH&*a&`Rqc@9j@ge)qgiJaM{AGjD=80^cQ0MhLXCtpL
+zU*??tPVFw=`Sb3VVXpWoMP>Yb@gG=|eYRQ?&OO&)aPH@v`O5u?9>_>NayAkaeNtR>
+zfk&F2h@={Oyi)2)FfWzjYhN@Um5SFCd`%l-z0W7UF(9_XXzrl@ZJG8XJTm8rzUpU`
+zzPdsBN}boL!M^^N<bUpwI61}dI8NI7EIUPwW7rsC7=z}`((xYeU-oEuhA~JQQw91C
+z)QY{u7xT2kNn*V8C#LVigSsr^cm`w1!puy!@a6Ph4`h;sS#Gz;3X+?~O%@vLZhfwj
+z1mCRk(UuzNO8QP7Nn#C9_h`?fd>(6anFBV2wdi=ivgta2@w|-t`S{;}D{7?rrcFwV
+zPfI1^3p4i9&QyWA2=U{$sRKxP)20XApw4G5cJ|D<B{UE`qhrdufanEM;wMX)QFzAx
+z-|Baze)^d-##L;6&U?_>P@tc|6wuR!m}~Ra=G@Fgi_q7240F5}G&a)$IR`X$Vsoy+
+zYVmk(7DAisBYjjP9*C{avl7Vy*M~3?u#!r4#5&Rcr22hoPUmAj=iz<_t_R<DEbo5y
+z9>u#`)Zc^8rf<TlC|5hD$E)3`eS_WZf-Qbn*D1eF`UN#AA9Tibe;x2iUy!iGDo}X~
+zdV)s(A@byQcY(15D5DVenYV>!wLHrUx~=X6ZF?8Yw8~lk7{=Q)I&&GLvrqJ~nNH72
+zc6!@ZDLWJ}<&SShTNB0a8sA_o_dI9xxBG1w>%CWBH2Uf9{gI~!`WM$5{mY8l<9R&e
+zt^}E@9`XrckiTi`C^;8UANN=adyGDXv(VN!@pWu<L4)$oTpH*<A9XIBh`Gd`%K(Si
+z-#<E#Hk7=v`v_zyNFTM@9&tY2#W0t#qPe`_H<#xk{(PpCf5$}ntjEP>Vtg%Va&6`C
+z`MeDC8KLcHn&*-jXM%J33*UEh{1JbQ$yS%XoHF-~t?pEdwoY?$<_FVxo`FoBW%e`9
+zgJpDj7mVr5m22H(L}HwPF4XFIZ|wBWA2H`srVP#bXGhHWU6}JJq3xdg)Ik3mA1s=4
+z^ygQ_a}K!q<vYyzzmGEKpTV5xP^UFvXwH}Zl{u$;0NUQ~U=J>i360EhFMWx0F2k{M
+zAB+EXc^hptjTCK+a}M^-RL4Ir-X^wt!V5=Ra&0n49fjhu)_CkQTqE1L<{jEGE8cxO
+ze%S|3wv6SYv~&JDv=ev_<MGSJ(2g-mJEy)=JMUpUe%S-Hma+NdW80~Cr*@+6p&ebe
+z5$!mmwDa22@6b-!duT_Oji8-9wa2#e(mS+czK3@Fvgwm7BQZ)lPrO4rq4xj>e%V=Q
+z=gpIjZRfssnz!=zFmJl-z7s7YHA*{c-f7<61048em!qAjqqOsdcWUQ7jK?o)pq&gZ
+z+Vdr2$y~_^i}P0UiK(Qyi=Q6u3+SMpkl9th`@WUO`R3vg-%Ks~X5NX%j_1608qa%x
+z1HY_O0~w@7_03i|Tlj`L_A8buBqjDqH+YyX&otLdzaAZ>e9egRQ;W*CqWm3bk37>I
+z&OYYvssc?2^7l;iEeX2SYjjDUMm~#-@{Blh<g>si<pQIXi;nWFY?L-ec@`S2jq*{x
+z9i<IZmzzc1xT)f~G!)%)KBpG(Z9AXR^C>Zry1izeFM=O^Sk05md7W9U)}aCL@gtNM
+zUeZYwLYbti?Ow~HVw>?q-^4+fNDaY6LrX5?Bn!-YU{!%PuNtcFp7&UvuQ&4Ri=nQL
+zqWU`DV|~tu`d%FenW0LZw`~3r_d`5KzXSSB3%?4!=@QYSz9>A?MYvxv8GJM2oiU#!
+zo_&+Hu8;J16?~>`$Z3N$*DwxW03OJ<&0*fKsMRXA;cv|}2jh;={-GqLVm8rkpZpK=
+zzlD<Bq6^_U@DW{ph2)3l8R;s?Cm=b&6I;cGBI0z14QFkbHq4QDx6~6Vimm(GnM1lz
+zK3jH<DY85FI{mKi*ag`lMcr$w<fEW&ZV}s)d_^jb6Ma8!pWfr$9?-V^#_B=YGOY8G
+zNbE;vRSo;6?$_2ti{fhCr1O=qz8fT7Q#$*?Im&1I1o~{pT5=!VrSvMdi7t$O%<U5Y
+z^!f&l;i~*?MLy~u!~KzU$`7c_QE~OCKe$hiH)L!NUnBnNjI+}&^Y$sRZQAPTGyL+p
+zb5vRNe61HjIa$wy_<80p)cuTFt8$%#^%~#BnjT&=bI^Y3AoarRS6FP<7U#L%vc@sA
+zi#1yyK4zPS`Is^GoU=~py~>iS#gA!)u5+BW;pVt}|Fs&-O(@ywajkAA3<JhrHHNPT
+z^#IpM4v=of{FGcUU(|Mj|20$TylKx!zrjbTx50NmmRK9tYX2IQzh;w$&y>?sgZizJ
+z>q<LSHBTI0i}$qn;HR@c)BV4P_EPxW_vAo-F>Ej{UL@V_QBOHj^hR8_c5jn>zj<)H
+z^!ffJzGeAzrQ+i)&95)3FpM4G+3CYY`ILK>aXCWPB#{xy26(o--6QN7jIH38VGIOo
+zvcL$>L<Wu?TTXHgpsb3GomM$1AybxxjDEiy<*Yv_f48iXxzhAeKTP@Ej|oMZ#ki-z
+z*X~M{Nv<~I@DyCM<BKrnleX2Dyx;hbeH%6e4=BGK%H-Ueg#Et3*iq>!%yH0|(_Q#4
+zvDZ}ZU5;1sUow89=$gvM;D42lJxl)v+OV)J<K*twv2_^Bf^n~u&1$#zb38ZWjX9K`
+z;rBs&M^Fwj*!bV+vaDm5-=@&(xw&#Z)}J#68pd}zu1UB~!8H-rNw@&hhfmPsXD*Hb
+ziP?IU%ldZ;3|>XuSrvW<pBVZ*1HT!c#Q)ub-(5c%`rU=!Ee{R-o{Zl!zAyPq6RyOb
+ziznUhXq%zTCxiW5pKs~kbMTwI5a9LjMkDO@=ykNjCt1b4u|!8lJwtNbL}Npk&n8+;
+z<0e|&;r1B{-l=P0-f+X}_F9UbMevMvgJ0LrLiUC*<}DmBZZtT*zAqeeCWkU9Z|3F7
+z&ycczB39uoHYz;kN?YnwcuTAb?+xIZ#hD3SB*}P-OY$#DPP@%swV`4OE<pJp)|>G-
+zn6rd3{6At(#_*i?2P%#J`k0Cx%=5e3F@CYHCe5?v<yPXiV{i7%bW?7o#T>QE+*xRM
+zxn1F{L?1%2&$v^uc2Tq!%P4=N+Q!W_xWaAIHl2j4baH*VGFabSIZzuMS2qR!8-nA4
+zGn*^vGf~4>kNBo-TG|9&F&O(L<aCAUU(+UMw5!EtvaUXz9hhb2%=+f+WX9p2i2Iq%
+z*`SqlIgT@CP%jNwHPSO!->HHxugb18CY)NHSmhXrRraimvO`*KOsH9IO$e7vOPy3w
+zw{G<Q;Xn0sO%gxxg4_aog5)~cJut9#fiVI6&1NrbC*0=Bt^&v1T*vc<rJ~2f{yT$x
+zX1_us`t?iNI>jrz`KWJ!GeK+;Z^az2{`vIRvTksvV!oSX?9Fad-TFc()#c5@eEat0
+zjGeM1rp}F0nr5@^PJOl+I<Ln|;Qca*$Iv}^F4tgf7Tx#;j!DORnuWHa*sqMK$9-T5
+z?Y=VKq5Xq+_VU7X4XgCQj9-|G#^&YddzwIhm(f?xNl6<w3x2s)&O1XAANfm+e^?&T
+zak?i3h}%}knf82sH>X?dnVA!ZHfo_%YmVcjpI0b$w?{ia;*3W)XFS`AH-TqbO#jcV
+zMjHK2Z1w<W60>i9jO(+Q@U%7Tw7T~JS2I2rX$^h+=3_2ee0Xx!*AT|I?p$-OeKA~?
+zNsPd??gl;X!oa}ezgBUYMF-}eSw<Oi+uiKj{Fk#26EUByXr~pj3D=KsU;}pR8qgQ!
+zk(h7fz!zr+_L#XTgk$jX^)p)po(=pqaZi3An7Y&DT=2Z?pTb6e82>qE6R|%!wCzGi
+zC3s!RL6C_8ERTKpWzvBU^GvBdN8K2CfHZgj=E_Q74qu(+ziS%g*Vgfja5-Rx{(Me{
+z8?ja1Qu;_HY(8stquMv_W~_TJ>UikM;d15D#5#|85O{XaJkbJwHtpUN{M}3VYgDmL
+zXJs~r8!{E)`)DUQojS|SUMXOaaM(b66-&CMMX<P~2o{~=!QzPauH#wqtl{&(u`WU1
+zUN2Sgljfgc2;B=5@%0m!H$~1-)A<s+$&EP85~Jm@TQEPy1d07zVkcco;&1--xXY~b
+zAzkNG`?6d~vdOIm+&G!ba*WYVTa9|>vfR{Eg{SNt(%D<F?u~f9B2(cFd_7IrQnAq(
+zbK+d=@9A@0@+?#3On-w{>$G{F&rohx@uO)g%NVX9yAAI)ppPBkU+^FE8?urT50u~3
+z171RzHqZ)Hj{M1?fq|{{;<E^xkm&$SvETH8+$z4HD>96)((E>3kKT%RjB&p48S+i^
+zZH`y{QTSt(|Bz#1>?7K%);6|zm+3x+wQtT#n#ZG`1bM#e@t$)m_9=jG`hnNlEnYP)
+ztFa|#Q6|Ft(}yJduH#-`spDQ>nO|fY&l)K=e*)S)bk1<tAfJ4d#1C7Y3y#Bgm2=z%
+z#-Yimm{FGlXUzidP9C9F!(be+da<csnD859+(+95U)G9!xz<Zyjyg{5k+tSI_F~kx
+zMB<sK7`j32d$f`{+-elgrp|hc=9#}JF=h6FUy%II`TwO)5@TKo9ls*~hKhla|D)hf
+z@`=V_zK`hlCHg&OzcTuBsQAZup5MMM_7%;!VjJX$_E*04LuS7pGa!h$iHp6aarkWd
+zA-i`5R7}|y1V_*xIWGR+x4I|mx(w!yKz)24Np$9z;|23(k`{1%lQS8&p5G+hhKxFM
+z4NTisFrCaH(|%3r{fmkj032{#ezoLb(EW)i|Kh>^#9EK(5AEVB<=Km#KQ`%$)ybR%
+zrs?Xwpx>|0Q1TXiN*dfQ=3GTzzKOo<MPH5#_9g1FFN-<HYtKes_*?d*^YcS$PWFZ=
+zD@dFriMz`+{<-(9-D-`0D)~S+3v9E$5x@s+VD=pyID8`DiM}?3;pTr=F;$3@!YY1v
+z_Mc~&vM;zNqKz%yFK9E1y<s)B{h#;5B}WGiest$h?C{c2VuuI8Z^qDOb!M|ipYn*y
+zSg5zU#1V{9Tx*esNVpPL&<^HEs~Phkh`F!D7^@*e^W4VVd1t}Ap86Q}dz17#@;CPT
+zLdLKMk5LlqD*XQKfx~Chu0mw(>++0|@kN%icX^~=)#G|pZYrx8v@M;#_gu68GsFSc
+zE1IWpddGXh=^v)gx0a0=laqVBB+=qpjjR68YZBtvz%xDawu<j0G4N=QlX>TL;y3?{
+zZ=NkG7a64-?U8KY-31cEMaBAh{@?sKx@)~Fj&kq0`G~Vt&M;{^v+w(X{wMYQ&v1V!
+z;Gy@g^oO|iVf2S<u&l^7Y5UQE@@0;Xe}`;dSf2f-?ez(g3kTnk9%$P;;<0+?SpFrB
+zGSYwWXB*!pO<C(rW~`$Mr6-UxJ#6?_OD&`I`$q?O=GTq?w0)p2J>@(41Q53*Ku;OJ
+zdF)#Q{mVcTdA3RYLnyw=1$~}|Ycki?q+bBX4E}@k?6%p;mWVRKpRlGST3+^Lx|N%i
+z4Jr9=`qDC1-*V93WuPHGy*HDP(@fe8-0hX9yzyf58kP8lEiIY`jCa7-v<h#(Mdqai
+z{Dr-z$GaW;!ZL}awJ85RQ{_}3e;zUJ_GY2{a=_^P4EYW4*l4$cHe?v{pPb<~og9bC
+z*U_0<4O-BOI#!^36zx%N6#fcr-j3%FeyGQb#@1lpuW{!am&tcY)PK>6Kz}RxBJ!&4
+z=Vkb2v6f*<BtLJL*U0a!ZC=nu8SE40sJQ`sUwV3vxAa4_OW0C4F{5oz7$aU}jcfBu
+zD0|9Dqj7i)b*t&EqR)$pZgp*raPzIRm0pv2H|Ahkim@|Z%-Jem>3CyxkHmH$&-&)M
+zJ>HR3DlQ;p>sRrc>mYFftrrT6i|3xE@?$ZsB4d?2cDjnCvRLL?*(xsN`eD8weS<N%
+z_K93gd&Uo%%xkK6%&E9%|2AXZ$wLrUHt?P}MEs~*+^Ql!+DL}6|I*o&=zro|`U9<T
+zufu=tsW|5N^XHiT^H1y%{*rMLI{;5t;XUcv9jMpASjHNR8@I+~o$VN(jb~DKV`nbq
+za9&>YW}|Oww6EvfOgd;f&w!>q6XsqNe;a4#A=CMzi~(h<Akzj-BVEP30V!G6orCMh
+zGAkwj#!F()sq(tMB+u7r|EPBKzu|1f>rmcYiLubHnr)Q>r?fHtxE;?WFrHt4pYH&?
+z(cWOWt@v~DP!IpF(huJ#db5@Jf0X_&kz7PRtR2C##l&^z^ho@D_HnAbTkkQZ5pj3a
+zX!0!FS0|gie*_I?*+#UtM0}ik#HL6233GoEPY`$B?XjNUk&k2ib&-V?tTW!zZtyv~
+z84C#egK(qpRkznFa>|xLoOZkD0oJ$^nXgorDYlJm)Z?&42Y$D=oHPr2{MIDe1J0oC
+zab(-`(f0hmvF+Iyzcq98@t?(f259#e<dx%Xxkk<3GcL>Ov(#FC7VwZ9P<Y=m*86g!
+ziU+KG-&H&nKmP{gn(L0UzO(iEGVf19V*9Mh1*feqBmlF`BgV~~j}_=U{nke7J7cJa
+zGIt9eWb6#iUl8+mAL=38JqlQ~=K@c+fL~zj{6^i^UBFQy>uxAa!n~vWc=|UN^UnVb
+z`V&DJ>Yam)$%4d?re89B&jG(@&I|P4@3e~Tu^np>AHrmFkH9+H&dyT%dO7xT$lB`N
+zjQ_s|jb+Y|2BTH>u21h6Z|-)|RK_{c`T834`cc;3On)W3n;#gy{^=3xPoK5EofsS5
+zlXgrTtfSkzmA-}O|9<8K*EFR%xh;I5_&(l^b?wNVV5Iua*06s*`IBiq-hT6)VUDrY
+zM}xT(zVGFk2+C1!^>M~(10KEMPZIwj`|wfb!<pb+cDCY`SKxj=?&G4<>u}$1kbh3P
+z5ARU%Ku=&lZTgy0XR<1H>P&@Sm#O%mImUG)?fXy6^9mhP!U6oc;4dP85#oqYW|gPT
+z9w*2cYMoV}RjbrkVyk3N5_d%6Dvo}2a+P;7V32E*q|6joF>Xm4$;<!cO97#!Y}bd`
+zQbYNP1hmgN<Kq41sInp7j<NiTYc2MjZNp&THTveDu7so3uNVd>%TixOpO)J(mwyIN
+zH1F-P!V8fPO1%DiIV<7$$pd&k|C>h#cz!~=;`H}b?AZsuui_Cg{!sn@jvcfQt^dnd
+zqw&vU4JLyK;r~=z^TI>tE|Me0>6HCT-N3)UJ<wl#o)XsQDcsu_!?1Uhz4%UIp<DW_
+zg+A9Ag$ul*^5m)ZE>b+zp7km(5p5*PG8+mKR{;B)I{KLC6Dw%zKmLC1H_YqfSm#K(
+zjeh$1m`iv_=6JSKu6>9ttFw=>uEcf_SGA61^?a$(PyZ|NAHmv<leN1_V#I~?Ip%4G
+zaWJCqEq%V~<MAnIf68>myjJm|Lq&U*`8gS91iWjG@BDS<xsGLQ6dcMJ$Bg0382=Vv
+z#n;neUd9ujhGNQ}I!oBsF{r@eK1&_Wt%lM6nm*&;@8$TtU!T!kSz<`sNa_u~bk?!F
+zAaOF|!G(A>8dE;XBV)obPMjYXt}|jN|H-t(rz@8^(=kq`Ognb`gjcT1VzfO~$Bgsi
+zj$tick(gt#p_pTlWSi=jqhgPh>eyqF(=4Xe>Xs2}71FusLLxg1%`ew4T(o}Ui`FkB
+zJjHm%5GiMTvVZ-_K>ymJ^?2hr>+#x%_4w~m)*~`vJ<yiqN;vWdwNLM_P;v|5y!x&l
+zulj5S>$KsY%eW!&c8Q4?fsFF8CkFa2{d!F7^sDQ@7n>Dcq_V=3SfAR*;=Saliv^7F
+z)!7N&7^fZlVT)H?NqX7t@;u6PI%qTDkw#ILIZ4N23}uoY_d^8#W&dgU{%@6mA-_C3
+z<QqhNgPRv#0WxXCTI(?vUU)=Io$&#cpF!pPNlSi;ZGg|J^8)@k{dn?Dx4P;aD4MPC
+zPS<`>zTdWtRdNWdRbys+FC7Du<Nl@O>G=DM@oD<mO;hnrHczSYM0R$R9PP`{)IFbV
+zTqp6i#uWJ}6GtuntoBn*rL+HK4j%_?V&9~!=4|m^UeM#cT;C&o3m8{a`gse&Sm)&^
+z=RK};PR!X5H79s)x`fZwUdUZ7-$xpm%jXK(*;c7|uz2TesR?DaghxF)+udBbU>5ad
+zz=3hpky`CB$ERg%^7_!$n==2`<<G+A;(1CQ&o~F!$5k9->K(S}+-4E9gKN}wqShvl
+z=QY*NYL)K~Wi7z{@y>PdK5R)Gku{<Zti^X0zd26*7WM$YQ{}JAPel1@l&?Ncd6s2t
+zy?XY?PIqAdYooJhGYy(jsd#wDUhU1aR(sFNzFEZlX606$;;*Kl?kVq3_v=nY4X*I(
+zdj4K_CWIOH+%na<>&HyyM%v=p#uks~O+0t<&zj`ysc-14=`4NrWLCFik63^c{669;
+zo@LB5$zL<17dASTtvT=t&mOza=<&K|>wH3qc6TChPCI_L<GJC|CcE9`J9}D%HwEv;
+z#QgCu%>SF<+BP{C3mF><>?ixjezL!VXJPE`9`ujDc}9l*8P&~M@{O$Lvyy`+2|93v
+z%-t=bFW%?HF~{FU8<!|sit(n7vq~Mbq4P`{n6D$ixnrg!3#NN#j<GW$z}47ev;DO=
+z!DRm7EndBz%fHsgdOe>4E4Y7E&UH3<uhMUhc^Eh^m{$ihlYXy<+zQWi7$2j;dlbKW
+z@w=9BpRm98<F_?U!OPDXhefaVW5$H=qxOUv!%Bt0m)1zXrmB8T(tToII7jq7nS}QN
+zu77PHSI77Dfn0#+i%ys1=M{UCSlV3Ad2#8>n#_#>uRVcrdzeSkdZa-AXgPb|qt4!K
+z)G2EraAoAAP5iFc>lBFH=^7!l0lY*%-6Q1vjd*t8=)f7qH1f)AIYVOY$Mei#b#*;>
+z3b)nu;lmZ#igq-rZPwRMpF!*?8`l)>E&2jZrGNiw@OG=c`M4I~isM?0YYDEUxMtyM
+zz!hQKE5PGa#zQfb{m%Vw4D>IvSLYJe>fHP?qdy5g+uujE*oU?6un)=4N6;tYt|;n$
+z|7QaIj79U;a5;6R0{c9hvo;hcyIm${PW!w?Sc|I}Qv&yd-Nih|u=jb(s0XytRiNX+
+zPxC&5`%F3*b=HyZ82<(BOY~*>XHkbjT_NoQ@PDqvjNIqVLVb*VI}QKuVr)>QgBc&j
+zyXn+r%bcrya<15UEzG~J^N#&dw{d+ywJ~Mdgz#CCi)>Ne#{CCz&$j*vv}7X2e>&wr
+zz-uk$a?BjHzXE{W{ebUFP`AUFfAlBi83Ao2DC<iu)@GMJ?)0^O%(yI90ojsxPI4Vm
+zwqqIW(_VkipzMr+fwhOUY)XG^-cJR7wQ)_swL*MY)joREm{9YWI|2J9h5hr*u*p3l
+zv|a55`e_R8w6}P~hd<GANya@8=>G}ir~S0~aKYnFyVH%vf*x~krqAi|e*gIJIC8&x
+zo3IMJfqIAwhzH(6U8JiO|4JQoJePYLJTdd&EL5>&B`3q%0|$-xm5ganPTynki`DUf
+zhQ$uFB^SK#IpibkQ+vFhKh9W6Iz|WP;@P*AZB{Wq@MgTi`(O0!_39q)Nzz&S28>(z
+z-qEHmtk?g?M+e5!fA>v2Z(q<hLxl5XpAPi@_-$48T)cyLIG*|+-dAgQnu+^w9UX$F
+zdygu3+HWd&deKzy^h;C06P^n!9WWKl_ESeZQ~6zXW8M~MpD)&ZA@1+gb<e^5H*jBy
+z`zvtYew2LKK5sGZ+i+i|;r<0v!TqzQg8QBL&;H(yGUd9zU&Vce?(bJ{|2)QY5$<bs
+zyKJjbx68IZr`u&)pV95k(si?~pXjz8(rsO@`@^=b)9tdYPvD;M1~2!0I(1uD>b92P
+zevxjA<v)H@<xVAyTY&qp?!zUzJaNcHMdjymTpCZUeQcorV#d~)uIBb5nA_L&{cPO3
+z)K>(^pC;YwA5&*RZ(*OU1FRl$CkQROlX*+=K42%^2eD5d#B<WLx3~wz7wb;<0KQ3M
+z|5(_6%m=ei$F10b|K!(5XUL=ZboLG5gRaYiPKI}YpXqZZ)a(F_3tFktfYo)<--E`{
+zHX8B?ZLspP-|EQUCPk0P_if~%H2pEG4l87@t1+Ao19exTZs7mGIMiK<y2sIO2=!Oe
+zw&_*!@fyE9%NUE8L(&l183o*riR_ob9NbUb$NV&wYU5Rm6Jreb0VnNnC)8k^rDLqr
+zJB)QpA(&a?+F}D|2;VVT^Bcy@=Is4ghXc0a5#F*?9|BgoGJ|I?Gv2D4VKj;EaWDF_
+z8_)X0wqP51<!q3AOl>e%$2uE=xghP3j4u+`RDpH{xlXjfAy4wMq3}Y;*;W&>wvB2-
+zl_6YIH&>3al7-#q!(Pg_R<q=<5nCn9!Tsn1eZ`~pCcr|4=hNOFVIKe5Jekgxf{FRa
+zP{;M!SYr=_i{Fe3ZP*YR_nUn{O0V*4um9-41OKhg`l7FlHQM{e8jErD;oYmx9v#?+
+z|NHT7KmH%U<>Go7*CAY7N79{rn5#6#vIG5jowh$%Yto@H;AhfUQ^GW8+S+{>;~{O!
+z_Y>xEb~njdjFU62bbcn}L?^b%i^}=*m5{@`Pr_9?+T1Y)<b#%yJEEX>hSO9a{X4>#
+zn5lH0du@%j4J3cGyp;Bvn+EMSqgM>K-;Cfl=iJOJb3?J~84K|+?INRzRkoQ}<vfUf
+zb03$0Cu5Flu`9OkbZJvnjXl55Qgczpe3q#-xiVv6miabc*5iH)-ygvD?6c5a@LN+M
+zH#(4UW<pNv;u$vPVuzvE5&Qd9tSR>QN#J2iN7CVO5^G_Cx7(#{5p@lBdV4Yzawc1c
+zzVDGUvLU{d{3!WSL(4fL;{blo()&kboOyV^xJB$WPNGa;d^sOUtjaO|2YJ%)oG$Ub
+zfAj+?ULWW20Yl}hy4W%MA8>g-w8;y*ce)R_gw-K<J;?Z=>{ASVig!^*d061xR&{&`
+z-}Cnaa@O7i-mlr+3%Gdz_>+0$cKh#~b+Wg(cLL6h?ieRom`<G__Nc@H(0h?Nd@|Ed
+z5xl+kt%1XP^!-n9zfa#kjr#-oei!ateV@U7pT2(r_vM=Z``5RI=--cV|Mj=kJJPO)
+z@%s(Z5MA~MZw=9}@8SMSC|mJ9>e^KKf5x*v>GDGV@%u9<Lp|0+rzuAr7Ujw>{Pyyk
+z(l4rf$oI@iXVakj%u8%&zGpAw#}A!_`P(_cYX{%LoQuqNI0pRm-klX5_4Rupqc>Lj
+zIpXegyY?ub;|$hlhglIm$g{thjAcH-+t2u?D9^Jo`d!e*k})m=A800Dou>~5Y1rpZ
+zxh%H>_3s0nIxvlTv~l@e^gG9zpZxxGJ_Gu(C$HLh0`>EGIq2Urr<?tI(C%kIKl^s|
+zc>5MkQ0GR;RN>{hJUcez%<Kld4>4w%js;*io5NG=t}x&@VA{!2!+OzclKe00vw`w)
+zqE93~oNO$t+A6VmUu2F%(Mh$>?Wv)h`w;7PUXwZh0p(w|!5C&}qeX0$hPU%?&iZT=
+zZ3W7!$VZC&XSh2(GxnOtoYFII)cuXU;hl@RN_2l)Gso7o19h3YuK$s~F3vZKjo(Wi
+z?dkYCm`GP1x>xnJTI&6i*aVZ`eLw0if0y;MujPz6?1C;)E{Z)JHe6iR(=}0JOJ6|6
+z;h)Vq0^`z^&9QVP<10>oKk3+dZ&@rIocv?O-_T#^0Ojo18uX<_&VU}7YWAB+p1r5D
+zy||Bpmp9W%+H1KHYm3BbVNM(1_N|1={eUO40&OLlZ1b~C)5pX*+>o|aEz|AH^z#_t
+zyCoRE|6L@p#v8+Yp=g_Nd-vB7&uoFr+a!5c_e$K%7J<>Q&Py4LZ!3fnTfDlnRo~>h
+zEb&b@@Z}cS+hbzu3aiYvLdQ<>bIoqlS>rL^CH3UYzdjD%h9IBF*zD$9$X?^^5WU!1
+zi31igT0MTV19W+h)<ab2xV6kb&;0;-sXPO?KX13uzeDqK;Iqc>z%yTO>+corkGFDa
+zzi^-MH+|3k_cV20%=k{+pWKs^b>8Mr63=D%?3>>EiBr*!l-(n9LR-qD)#Ghu91&w%
+zL2|BI>pj|bEjY#K=h;^XYb7~zu!rv@eAD+1Fur?Eg*S#U7Q4~iU8iVz)LCC(Y^4xr
+zT-3Rz0RGQ=Y#Qg3afPqThJY6$phbY~+040T{bsCj1bo8l+m8;c1mnIRld}iUcK>>;
+zk-$}r>(Q5SKlO;jkGuc29`F9^dp!CRme{M^i9G*`Gp=BBj{5ocqMN@I@0Zr~cqPfz
+zl6RW<(L?rT@h9UN%)bXbeJ}I<bmpvhr#F%DcVf)FL->0^XjYx%o>Ka7)A)nO`?n;I
+zs`w$6Gu}L(^EcjA{jcPpSVSMJGbFd2#a#8R-WqMcT9C8W%^urhADCw|%5y;LZt;PL
+z=(GIuCMp;>$ntUKhB82BRu?2zb^?7)uF6@B8wc$IOW(Cl{c5dKzgl9kavx9BeunIC
+z-Ti@n`U8dj<(=)~j!?Gx<ycuyt{vC*R!owgm-Ro+G$jwp#5tJjWIRWo9L7+xFz4mk
+z?)+@Ac{$)23svr_aEdW2x(mz=bwuLX;J4FSV5|<t*a)NVL92V1AE5YZq8!I%YFnA{
+zKLU=_ZBXCyAmi;ADpn(7d<^+ss`y2%i5^eovTAj2)cfqWw87A4oY(1RV?@t$b)NS2
+z<Yhb^TO&TA?)!B-6Y>3ycNhG2Sl|BBl%16kUsLl_)WLJb<V)%ti)X{V+BeVl)#IKx
+zz<8U<g<=QCvlQ)T8>BzmY0SIHydpo=J_fY;il_4rVxAv-h_O#QnfFv;R^9dEA=*LM
+z3)$PlfSF<RlyL)FG(BZLHJ)=e;kyd`oyzO8NMam5LRwQ%#n|0dVsCFO$$Aox{;Irb
+zv;{&&+qf-{0`7a`xl=`Uy((W3Pn#c+d0Zm7C8OBuQH(EokIH{Yf4`g9PaP9gY`{n#
+zr*#$lHcaQKLt{ZxK7n#2nr^dCV@W%#mkK^V;5c(~X2m$hy&6v&Z<TNMsczQsd-hZ8
+zq@VIC{9MV5??2KnyS^m{+F$6C_(?pkUoUZFF<&{8vB~s&F=x^On?BCR`b|e2+PJ(_
+z_!<5CByYnS_h0K3|Ga}a6n+7j3ox(}|6{lwcyX*T5C0e73gI$-pkizC+`ird-snwd
+zrvjHPH?~Xux93iy9n6W01(|j5p0<%MV2%U!iMg357idhI|3UnfIx$y<`QI(}xF_aj
+z(dRdoHh0ht19koTX*^SA{^GUF!<LI0Nf)xeTZ$`eF#c!KJ@rv#;~zpB4`9BhVovI<
+z?cV$|O^Hc775B4&BO0fnF5I6jHo0?hL3?*0$oM*_cR8Ma72|g}pIA4_fiop<@)h|<
+z1U9b8KZyUcq%TYJ_v8L-i9wk;bUVKN4CgL+xA^cyFrKLP{RAJR^U+_CBVK4cRqb2)
+zrG48l9;d%ZG`U&6W3GavwO#1mS2+&c*JBQ@gACIBWRG`c!_)aI!FxwDCGM_Fhub=-
+z$D1*6Z$4m0-5J)-{G7UGm$8N~n8bMB0eAAu7I(l2=Byxd>8boo2OrU~DU<2!6r<A<
+zKj~P~^V^#1(BCbdH&f}VR-X4`4yMSMugr&1Euy=hVr{QseA%e8p~i6T4o97)nyAwe
+zj#_OsM&=t~*2DT7T~|pwU1`QI3W)67n0^HN^znMs%XKPAxY>q8C(mP5o>Atg5kC9M
+z+%&_uv;l2LjT+{Z7#{*JI)(GYe9zOA{eCdf<W3SliN)F1=(lHx{E`2svvr(1<JxTh
+zz`$0OS8K84d?mg60N`pl>ZTn6Y1^&1=bod@OC#>ZepdWtwtJEf4fiW?Uz<`kCAah2
+z#??96FEkAJ`C3XS6ONy%*YIb|lN;MExt=(OAsf6j<}Wa<Lvpyx)BBr!UXOM8Gs>;R
+z+yzckHc}sz*o51?qktJRp3E_xU?YD2g})n<xw9p=(01=nrz)QJbcsi(U~(n;@YDy*
+z{wwk9Ed6W+o@Mat@}g&rc=i)Ky9m!drJvo3XFtX>wlDC=IPMtFwHVtA^z+tx#7L!s
+zjEQ;Wm4-26hGC2aS|EM38v!%v?K%%6_dv5pzjZ^-ei)CS$rIb!jI!<clyOBB^FlJ7
+z0P~gHD7iMpeq($Bun^N{BxmU}65p@mQ^umIH$+}pn!QTC1s|{M_JXu8_!RpXPgl*7
+zZ<Vb>4F69kid#?|TQ?Mc3e|5Kj3wabcnsjVPcID>FBd$=u0w{?4*1z8eTl@|s$L=Q
+ztLKopiw$d^*h8bus+lStE_jyL1vdEXf0eA24aD2>2gEKf;hyg2Gor7*fw_vi!QTpR
+zw@Gp|C8j9+L6|qJ{mf}6`409BYkQUF_Z{<C6_i}tJgcXSd1To0ke+ke0LyRSEc#+|
+zzIgvIp8r(mf~EfJ+h+-l$a8GeWwY<!(K_nv!zu<m`*lD0Z1JCu=d9!t5ku##i->K9
+zZ=0j+$o>3v&pk}roNn(3?Zoi^clb}=*jMqNF+Lcd(IlV3c?8cvof7curD3fH4mh!K
+zzzdZ@tJw<M_>VE4EWY`bhy1(_roAW!Tykx-k<M>=c);hO%2lk6WZ#jdCmv&7i*TL7
+zF#&s(8)Q5Z`V3f2xsWsNP>AtjoqCTr3FZ6vEx!v>uNPYdnpA!0-^KU-${g1CTI#J?
+zj`VWz)E@6+zqvd|erdrhp26ScP6e-j!sWC(ZFVE6OLCy4Xv@v-0h~QeKMvq&3pBL4
+z7kDz(DX~RCGqbgn9Y8Nbz%9MKd$JwQJjsa@N~fnyOm&`fCgkW^?BBlAX=l1HyWIp4
+zeWpir6ZG8<X42C-K%YBI!rEu>Z8AsOtA!6M8_adIg?E;@yLb*7ZxP>sHt_Xd1a5$=
+znWKLY<5HHXyaZX!*+lf`GaqDbN8t9f_*`ZE*u~eN-dcw^_okfb+?ZqEo0Av0EzU*K
+z@70EJ24m9&7A|lr7%O^WIy+}C?fPz)y=yUkiSb48nYJ`-#$J5EvO8Y{93ABQ(1&_N
+zkBj>a0Xy9ia8{=#*e`5|Lhe6T@!o5L#%g!m&y%?TWWs&U%e1M<HlWT5XSJKU{splq
+zJ5PA{)$aG!y?`~k2>tzZE@*BjR1n9!c2|mi3jmtKvrOag1-K^Rx*oq1k~di8B%Fe0
+zAH-FK>l9qfC(b@!PTf7`C*(AFY~x=mU+~u0+yirR%zt~^`Sg9e0rT6E`=88X*?rav
+z*|NF|T@!Nhxw3bfy->V4SIV(Kh8*|)=3D@<xzBkn8=RHS&W$Y1Uh~lN;h^X(R=ZzB
+zeF5sjdtb-~lI^*2#y&`G_jvYq%`}B4UZ!3L^M|?1pCUf#f-@LLB+D4Zv|axnr!gD!
+z*QJ5$@})d&amh<i2XL<7-_<VY@Y-=_HRS@3hxR$oiyaZqTCS;lPH-P>r_1m^4)}^<
+z9RY{=kn=5%aS%yQc{b~>ubFXof!;m^+2&c=Zqe_Quw|lOrqKO#cGp7+@4O0nYW_;g
+zjaE%x#HsNZKk)LiI>9eD=U$%K>AAZ*y;p%_)6~ss-r4s(B);e-j<o+Ezt@Ss<|6R_
+zi>m%iJ0I*f#<aOz!vOdrS=(m(2S0Z>sq<2P9oIkMx*gZoaQ!25eWBb+{Qn1BU%~Zd
+zoxk!+xW0(%He8LkzJTlVxITyLR$QOO^%<S#ayhPBaNSIK1lKZLpp}RJWDJKr@Y#o7
+z!o~b_pVa>k;7a4V8rOZeK(Y`2Gp_IA`VQmu<NCIK_AOlZ>vH$vx(C-~x{h94AI0@k
+zTo>Wev5^kX5jt%gK3~88h|a@_eRLQy_Tdk6ui*L+u5)png9|kAFxZB}({;X1M|?sJ
+z&>rJ3aF@g#`5>+{aD4#RR2_$ec|A|n@mD76xFmJrJFDW8K!!W~J{_lowlL#$9?)7H
+zx8y|qpL)zH9mj-mT)3ylDt{!2YXaJGxI*vqG9BlnNoeQ`-bVnN+a~pdr#W*2^Z<lF
+zd%t0gI-Oy_N0=~aHl*_waGStatl4|vsPY3O{3w`f7CWI|9wptpB7Y~osRm42w&EL2
+zYtFc8tFuOQFp@jit>U+#%(uKC_Q(lhTSpp^7JGtOgE<g4fG<zhyu$V}8$2KW$DrIt
+z#GatW%kdp;PO&E<)D=3Dc-EMwz2Rx7hk4vtx1nO{Wb5$kMcVSCE+e)9yl)L?k=j$V
+z(cFjqv>*HGz`RcHM3jAYMB8I6#@a>OY4IJ&kEP8l_>?(kGmkRp8pib~eNaX``yqMR
+zI_e6Bo_$wx0>0om_60e|iRH=^Ke4tMbeHkZXoF(d)bGANtjwRl|5MM_XZJ`wo5f~F
+zt)Xl8gkQFMYGz;^BaY|{2G<h*Yw*9OgRzzHZMdi}t92cuHT<RtxQYHO9TJ;&sN6pl
+zwY36mHKMKQXshfvZQX|Q!I<Kk2}7SN`o13DJ0sxjCarJ%SIqlcd&e3}5=RHdVv|_7
+zN&t)jTm;IXsd)2R>b1a=(bnFg&L*W|qkWh>kmN3Eb6)|EDLGde>(`>4cRG7W^PP}W
+ztIpE?=w-I@YiG=Yy-tre@nNm+X-pO9C$xjHrDeaoKIs2c_3+SHggPhKG~(=J|FE-@
+z-_zy@vU-`a$6s4+tNdP3t21{;ozYMFK{%z3k-TN8)1I>o;Csi$^R?bRZ)?9;hkB(o
+zVe*~Sfd%Mq?6kRfCgm*3V${3s9&3btaC9JwYx7fMjduKg3<4w9BPe{1aX0`vJa$qQ
+z=<_6NQp02mGC(2tq&oK?kErr5r?ZUPCw4xVcf*gFjJZBdV$w9_$TtFi9prbwUyp}k
+zDQ`o-ki45~FAMfJF>hRQqt{CQ%kId9Vl8f<j`7rK$I<Qvt#&t*Rq_aFHSOM+bCfVS
+z#%glM7)j<NID<L%sGAI9j{YcimMO`Z@IPX&){zTVZZ25%M$pt|mvi9fGp@!wefuG`
+zrf2B5_x`(Aca1eTHcQ9Isug)j*~ph_-aaa4MJexBKh(LQe#o^*Gqz=4t<~-E-T8@t
+zynDXr9dqTb(e0M`vHA^HeTR3=Bi@B{jKCG>(-K@qE`yvv9;df6C;7$!$NOxvf1c=c
+z<J3V^5&laP=}MmQPh|Z6A1WP^X~Y7hn*ZS$5N*S$qrSv2v<-UNWWMl;JR|vrlHKo<
+zzPpTFAUR73=Pw&<tIa*-WagYBY+S8u?X?dj<<lJ!KY4@b<%st|XU0FMzpLbT2|u=p
+zit`NGG(N>|5^e5tMSgo*Y_&HTV{L`ReQtAK_2ZdgY@ht~fb@aqD*bh4e|wQ{D)YbG
+zHz%Ftxvg)n_AjTK{mfO&7<k<OkKlK$rEo(p?jNS#-p;XxpWnO|d&S1Zc>0mom0pnN
+z#I3|HSclC{h2(wjwky1pQQ>_K{WYBx)P>B@anLZQEn=G<p`Drb#l@bfgsf9pl1f)r
+zm^|~iB7eHf#{rQoD2JX(A1<*IZkHGmX0j!BBlZ*clydM%YZu@iJWTn=@Sky$PR0LD
+zU5D=nD>?<|&B5Oym&X)MG>mJqCGm6<^M)I8&agNivY#r{Nt^1MLx$=bV>-M<Us_{=
+zw+{1MrgH}@F^x0C9uRZOe7Tc&MrlxIeU11XuzsMJwdS@pIofE9an=lr=@HVlgw#P)
+z;oIVV{F=G}OU0NQ=}$4!RC#vy>%4u$D;@S_xqm-P`BQw>9Lm`oC{sSZ%(GhoSbPX`
+z#~3T$?j4ac1M+CGU1G4vKgx`?0Z%W^enVpEKV4vsPR=vu2J=)kPIB7fTdZA5bXQ70
+zz5@TZV&1yNZ}fjWUng{()&u=naMl5jbLH11wp&JPZX@dHZk*teN8{dN-O@JhL-8T~
+z(#x19)<vBiV|cNzA<X}4$D8+rijD5C+m8VE^yTu$_&mmVD(BsLy1-n;T=VKW`d78N
+ze9!&%2<O3A<r0T*-S0;okF&ohTlNlRyHR!v%8~~vo|CgQY;qir6L&W%-zBqX+yUDk
+z_aYhVH;cyl`nw$KKca2wvM_J?v~DLNa*=MwMmt6G%YLz~mZG-)@Gjf>6x!lB#ygdj
+zxTh$;_;kj#IpE!*=Ud=@1kAVU+|m~e41AZc%9uc#X<G+eQEN4O^u6)(k2^+Z-<Pfn
+z^luh_;zr=)7L;qLp$|I0>6_jI8b$dqC4AmJJi`Qy+bs4z&0Zvfd-|Tcv~TY6wwXb<
+zWfJ3-UEsDbPfh$z(C8+2v)Irt%ttcKDBJ8=@n-5iyGoh2n0q-xo$xmcLB<U;mWp16
+z`WnFf+7hQJ$FrQJ;tQ>4J8c)D&WnYp+vfVQTu*Q=$Tit24@K1KqK!=@_p`u<wNS-u
+za-JWIA*A+HI#2u3%@WgSogcq)e66+4y9V>Z`3sU}e1Aah4X#stG8ag#ao=g34xeWB
+z$KGYx-}+_W#rpG{vJPbzgHLTD&9#>e+CVdx>hap^!8`gbuK3|_TW^kucK`I>?#38p
+z9soPlMw8e!5*PB!mvQwri=F#TZnd0e59O{Zw(T|{Z&ZkW=}XjaZY69~8(rSrdj5JP
+z-)+Jr-xtyK6ZQ=|kt;#J76_lTNboH9wDRBSwGm%>r%B?#vYv0U&yLb_-NkbeZAVKR
+zTH4b3cC`GKwzSkU9oN=&cT1M%0k8i1SmQU5(8l;r#u_%R_Q%H>8$*%bI6Oa`wlg1a
+zCWBXQ$vTGO_YC7kz-lt9<B4YHj7?*Eq#tpNC;C(llp}X=T#(1I0dr^m-m%H-9ic>S
+zYzg*C>`X5`ma$jBx9ReMO0-eglrv9k%H1<o@y>xdJewBG9YLFcc#G(K#UC`L;vgT<
+z-@XZcW6o^sJ6!kS8aRJ$jxkKDNGmAAq||r(UgASRhUU2>_R+J1`RU-j-^4f<O=gUY
+zfNLbWu#enIGai)OY?F2DVmSvgzR~xQOM?A=z2p<A|9lhlZ-%l1KWJ8<-C%PcVJI*s
+zDrY`Hln;$4Uu`q~lAE6~iM-4>SGAe0G-5$3N4z`7%o)LN^o2+H)_+%Wymwk&5#9lP
+zE`C2Sb7y|+xw`;UUD=<b9qQW#2F4o9`9&Q&bK1;(ws&yO{1~`Aqp^903wYqS<9T*4
+zO=6Pg4`EIm-Y00=itlIZ`NntWX6EK5LYALM-(jo6C2k8EOP+(w@NASZ1B@krE8}tU
+zz;{e}YS-A)p4?U9q<5N^Ht!53(mO+q>7DfJ^>aj1mwrIte<@?>G9O}=HX#S*V_kHg
+zi_4PtCSUy^c-Z@mo*zA6_55fX)_WW3`0*v9e{+s;8*Qc@M}P9?LZ(BX^5~D03F&yl
+zjDhseMc@BI^fFiHX?qd3BuCYc7ND(|O<$)T@9s;E*FWqPBR=;ikac{QVe~c(3=H6Y
+z+n0^@hC?6vI<BLJk!rZ+4{tts%ICjj;%cJpRAA@MysQ`FmL^r7My{D*w|kHQpAE&f
+zF{gC7S+W#-Uiuyx+svo(17l-3!a~4^<pxe|$=8=B-N0$hz-jF~qaWT+)X%(HpT;=O
+zv0c?xQ9HENVW0X0o_;T5Vr-^BVyHhM9sAfn_X+E{B)q0C4f?sb2j4ONQi-kP68^q&
+zK*c;_U9TNIeqEiqF7S!vlo|i{eTDlcX+GA^3C{Yb{AjEZFinZSZ*gAhGI`?G*jV};
+zrmGY_OWqMMGkM~$KscF8`#1{E0%mgfvr03^=Z4WFzcc3nCpp2~9oX+D0>4XK>CDia
+zR0<wi1YBo43_SlMt_|ZtTrr(^wu-tS^rI;p*cl8^e-U)ttYHOR!)o(B&v7#Df*wnf
+zIu(^Otvs+Zl=Ght%tSxWQMpZNXTW!F$U5C&a1XLiLC0`+eGvP;sBb6Be$V86nYF4a
+zozJ69?mw23Z_ZQYPsaF|%PDL(yGKQze&ur(#`dV})hmfR9_Kjkn7Mlw`m(F}KU#KT
+z><0(?h<Cr^e#Y8-c*M9U*RC*BEM>?X4>2d%&Jks5jW1I70Jz?rKbiTgFy7{hmh6n`
+zbpFS>EaPKSzu*+rH3fD3U_@P9Z+|a7`#+bwhU>P(1^0I1Iw7z#lV^WS`*zT`^bGDl
+z@Kw8%J}a%(7c^JsWL(+uM>vn+rS$#2hkg7y=o4|vgXgulfm5H%^L+gLdChqrCOOY*
+z(5G7RU2zrno$Ve`Yjy|QkbQ?XKB@OqNbdvk#h<)P!M}g@#yWkNZ`OP0<D-1{as3_S
+zqH^kgP9L#v{JLI!h<irmtRQ_}(AeWKhc;~_gBixfPv>K(FP7-YC5(-IrW1Apu@d@D
+zX1QOj@vr^P240lhWwz-Oj==wBtuwN}^XYnh?^q+sWEO5@%qge5@tWcPVV#bA;laLn
+zHgi9#Gt{8Hz7Vt5dog32;E&30Jou`0#%sR|*&T-h(Q#rw5V+^nR|5~>+KKBqTv=SN
+z;R28R*bh}(hWL0a9Mo$C#U2niWm>D}>!*DE_?)v_bLW{#FT^-+jLA8?ocg1lzVdsb
+zSI-)Ho=+(Lt@qkg>X@c=`>`v=lTXB&Rnm8q^UfF(b53a`%n^s@C!%ehi*r6qqc_W(
+zDM!Arqi-JInR8=Wcew#;T_Fa3K4w(vdD-!5$l7+u8lU}LAX=&C<t@w$uAR7^!<EJL
+z+FP%34bnd-o)>jF8SI_;XTHK%ezfUl9+{BD#smDfKM^6mjarxGD6i1=a5Lj{v_H|;
+z@Pn~~@%)&#W=D+nzqd);S<>%|f2-_jF+aO7<`-z6iKY+6RIZDI)P1!)I6@y`xcQ5J
+z+bOwfl6aOfI&&RPr}xJ?#`C){cZw4b8{Nt($dCB`UgrCATHS!zRk-N<&Rk$li`(v0
+zW6mqVL$qYYKljPB*n4zXow*Z0d)l3lXYK6t9@aWQv<Y#2`?qM<<9>gvu@tbg?=0X7
+z!VLO<E&8}*p5=+Hh_N`oIAnS6!+N?}R^WOs2?fPJg}lVvJBIs*2DN`E_X%lgFLUIe
+z@ADq?<(C^oejyGz|G}a-&Kc^Kd0xqQvTol0mVE}^d)CL})L|M%V%%?Z{C~pM?}q!R
+zuEW^2syu;-oT|U0z&fcHNMIco;CdBf7yRL#NqPg^p2#u(H_r@-J8DN+E9MvM#dpk8
+zx#TvUMJ$v&Ewc91kz@WU#AcFu*L8<BV?DX9T+_vq&Hh%#9Sd6dcBi`rYwdMAoi(<$
+z-@tsDSg%Uajag|E>o<=4%MThElcH#R;A<S}2|!2hJKy)|V!XWIIGvxf+;FywEpEt3
+z9%B1EZ<vYpLwL?JyjG{pYq#6PU!3sAyp|!uBF{L!RrI=>3Q5MRu~baNF=%gves0c4
+z=DY1qFNHBNzVc%IJYH0ub_(<L^Z(I#W_i!N6tndGtD2ViYqaBgm~YN=qf2|D!*701
+z?cK_ffbk#(U(Ng)xR&6W{~+W%$g9-TOYA1dt6V#tjdAV1^S#m6?se2Da1I=q)OPUX
+z6T>oRN{4U)&oU%$b(QF}CBBNbBmdzDUufWyb(EQt`#N*IdJmt#vw}%xf7ICC7pMc@
+z4O#vK#@sSG`{-+QSobmcz2W<TedL_Pzc<z>{wu}4I90bBrA&ghf!n4%_+5pAlZ+n<
+z9ML;U-;&8EHnXjpMrjN0`VM_}tl@wE$UA(0<#E2hAK$0(J}u{l#MfN~e}0K4Xx|-y
+z{Bca(jp=om^R2hy+mDW{8|z=H_x|?HfqwZmF8POqzZk6^o{80uQV-Ydi>QNhe&m6%
+z#><RBhCUm(dJSdYC3^n24+DyRohUHSEifQ?OKi0V0~+5vq{kCt{2Lu7Rr=(ly8`-b
+zN`4z{8-Q1u!KbZjC5&j^AZT>=oj_S0yt?V^1RvMY=fenjJn|w7{5j2Z6@(`Pzc(ne
+zpihmlC;Djrycpy2<NcK=TRP#7IQAKv)%g^8o^9V&<L7>v1ALVP{%LnQb92t_)V|3<
+zk1^rd|Nj+RUPV8qYd*`T8*_d;6f<pDJ*RXEZ4cS19&<!Jr1_^Dr!GgsOsn3LhS3?0
+zIGur3yE8!EGh_|#8|RAq>{F<Z^Xe4wHEb)a+c`mWJ?<mmGae_c;5R|d^ZbrFR>1M^
+z-ot#;x8Ti9!{_@yi{|^KO+)it|Icc^Nx%O~+aMnD?Fup0ix@`>-&IRYPv9OGIL8^6
+z3ue-0U{|^-1imK#e$aff1N_rC(1cF#&>dBV%UnR6xpr&x`EJd0dMC(PNoVdyM~CKH
+z;?#<ruZllzP228u7|Kp5WTziNUH1ioRe8t)RVmsi1*-A^yE#~Dw94FGgta1HsCdhT
+zxmxCk0i8lymA)LyoWzE6h4|9){J)xci+J%&8~lgqH0pD+#X_@`FZcEu!`@y)`W13o
+zao<`~yHB;{<G;s8!GE`YN8vxNRf>H{bjo=h<!#P2*XPR^{{tCyZc1JcbY9jxh5D78
+zv{?McOoP0Zk)vLH+~jn2C3w(ufO^sn*VwtP&<?s8u-$Cb4!Gv@mb_8dglC;XV@tH$
+ze(m5~r|-jhf0t`bInA^#%rQpfJx^kP*QE;7hn`}YxvIM6EbEQdB@5>CU3u0=JQcrR
+z@nfbnCwC8I=pepfd45+_H_r9r-pctr%dp;Qx(xe2tp&e{qg9@0mN~^S2gi2LIObkS
+z6*!)N6Lig@vg|+CHzfAC={)J#qEpPlvu)CX=f86-ZRNYo=(le(Oa1VG{{DhfNDI3M
+zX<<~ulV9Jz9jCte_bdJkd!@=6(mCwH8oy93eDy-=p`WEM#C=#Rqi$Q_6ep<o<;l(X
+z-7$E!&UWrUPCM>>L+$9CTf59m`h}=&qnvHLi#eq1O&)`7t@+OA{KtwBZ5=ZX@b`hr
+zlo|)ys;V4ZZ@=y@9;fbF)Xh3s=F_^&X(Rccd)a<E|4&B&o0P$|{4yxJI2gN=exX=y
+zSwi~%o#V?b7kwNui#5gLT2p6B8Rn_?oBd;^tFx+*#>v*SPR8>XhW{D+<^Fqz`0z0j
+z6L`=LWBmJV?N4ERQOSCkbJM=SKLaWkx`lC>`aj2h#&PE7&3k<KR5CL5KJ#>DNz==9
+zJhW3FKhb_7I&EEndzEV&oz_|~GfQ)5?~G!&wT=T%slTZm?%C1X`O^cVw=)&(Fve=s
+zr(1@~wYj2atnn!0tI}S~*DvUJ4Sc^uzbAh_zld+6Un}9k6nv<3fuYQL;O>RMr|vHF
+z>sh5MXc}ia3j&7IToZDd!%@%x^7ylKy(yt@@w{(8F~nc1bsZ<XRZ4iPv6{aoZ$&tH
+zsEALr<ScYC`qL;j4iSk@`=xw|(-Md{tzpvr6y_lanlqA@5?&i)C}>{Wmoe^pK+71K
+z?jJ&*DZebvsCl41IvVTJF<ckt14Z=z$ebtoo+16;P(=T2m3v@k5fAW-4T=Y#&e{2<
+z;sHj^N%4GC7R`t7%Z}JZ9y1?fi{>LxG#?TB-OWYch`C6Nn2Q7G>$~NHo<;c|Zy3%8
+zJykRZ8#WB_K~uJ?IpEwTHLor63p~yFW#5Q9jHH|Ym-o>>qtlBdJH7NbNjEyZ$MOFJ
+zIcozyk?0heRd_tK{qQI<i>c)?&OgU{+5^Mo0-hx?MnoU_MI1QDb6QF-#k#-z))4>b
+z^9(+p>GP3SYkL0%c*_$s55Vtl#<z@#e!RM`dlz+Idz`vIUQ~Ctt~(X$RQX;sy^V+t
+zX^OY(eJYQRkAs7v3+nV7)X}ZmqaK52`>QqnpDDI)iY8#qcbSRdv|#2m(Eo2Ai;q@o
+z9l|Qof=WdTN;ECF;C-gRNm#F&b$zEdR?oqQ0Q)!N8<tIK+sJd@NBb)9V>W0Y@!$>V
+z?0w*aRzXe)E^Ky_nHuqLE6H?ZFT%5AChV2z`X-adomS%ojT1%p4;te!&lB4SfQI{R
+zyw7jL(scH=qBgE)8z)K|rD#KVUumbr`~Cl_cFLrk6TP5y5_NpkbLF4Vc}+RSmvp(`
+zXc>b!O*e1z<@zCAB(Hz)^=ilY{r$i4n`heoIabK(J|y~7=E4y_pN>NjtF1X=B%8tK
+zt_>MWvt_czi)1}bB{Kn6bQkDv$XJP{1HK6|yVzJ5v@=mMYsjf&44ItdI}*O#@E9BD
+z70Gq8NbnllmfTMC84~_?w7%U~+_&lI+jQn({Co6Gd@h)0>|OMY_^37pzCNyfF_k_+
+z&O1U*+AI^F|0@Mohv;KuF)rRR$!+V?f}qCpw6VOq+>qSCul*hBUNfR@(-^ATaBdWv
+zf*@nnWR~U3M2q+pN9|@eYBjkf3(-bn(q(+Ha0YZg#@Jf|GlxUYM8@hkWH?=XHUo1p
+zIly}h_f~o`eTPEM>O(3wLX*oFNR0pDpJ^NkQ%8J5F1(XC>DHXYV?&$K7}`%Xxxq%6
+z=REU{hU|@pCOweOo*n_;)Ba@EnEFh1b0Fw$4Fud&B;szx#)u@>yJjRgDKe|eof=8I
+zQTD|~U+nZ`6Ze5k+BM@Fu%4}lxR&IxkA(G_$IkR9KXZLSH!me`7=Wxs->`r)FA!u-
+zPpioY8c8E0HnAMPbtsgnJj5~*e*)kBS^K#8wj6wid1*oSx@Z$id(e(O;1P&#6N_?`
+zBPW6u)j}TUcuQhw6U=P+s%gL<&RmyyA8E(546xWsIF4MM|A=YKHbYnEEy%vLPI@xd
+zcG`z#q_eZ8N}Pnr0lUKuTF)0uEACD~y(nLP5^&OLqnEr_Fk*FvCyNi}ExFSlP&z2u
+z7CEt?&{^&;{(k8EV1H?QIy)8DW+Ui^=PTQC`eRa0RvPPe%~Xtbxo7aXnYyI8G}f97
+z#cp){Iwy>%a~tZEx|XnxE3(*_Ys)q#vyoJ%$CzCqdv1<?aZ}=e_heVWj^C6EI9KID
+zpyRVHOlQx-+SI1DdlP%NOT4~de2p7Of5W982YvsjkDf6xot?5dot*?&DSK>p*4Xo8
+z_U>rF-4czusfr4B3l^iIcbmXU#nkog2LUTnP^Xb;b!$&<%F;fi{xQJX)O5BYvNs#p
+z{7g1g7Ig0}D|6T5+q(gChOxypr#4SA0BiQtdx?YGfU{fWYEN90qn{Y@Pib!)ecP2&
+zac5|A(;>OZORZ1HbN(iOTq=36Z?W-vlF5CODL+L1XAj_%eT!f|reHj$)?!ag-JLaO
+zJ(XP_#CU>1cOCbDX}STs%Qb78CI$9vb0^i_<JOk3y;iq=xf)B!5{#wxnd}BL=x#*$
+z_2IC)5#NU6>trlpjOA301#sh!MU7$M&={<uF&IN*psuVGc$hx&rge)wZEiX{5o^Km
+z7@20V6I-l(ya~et#^^A-;?!edcotw7<;zc6hcRHyYsG(juE2$DT%QYMwiU{1({t)@
+zmGq{w^D~{EjXl)>m|I|VUig8P={a)%HxsSxUfCYn=PTH$-$S2P;F)yNUBGz!cBhB3
+z!duYJ<F$_h{w-xM#b?U_yGCrQXJcIRu^uy-?-PAlfZsJ8Em_Xx)LCdh*6Eq^Td-Fa
+zWzF8pa-sC4xl-kKytRyb2JoTw%%W@=_6vSDhhjI#p4soW8CU!AGPKG1BdB)+>Sz3I
+zGs5_9i&T9^%4P0Q*2ibKZ!R;E$ryc3XSIPon2={bk&iJhMf?UAbY}c~)He(3RI2%?
+zaV_cWk4KF4Ox-TW!*TiJ2^5VXOFD~wmufxsw?_1RBI}6hzK24p?^9b)$70oYd;MVF
+z`K-)tPO|^(_bl#l;sDYyr_GywNjfY3KhdkH>ze_&W-{Sr-sB#vHDG8Iytnh{!1&d1
+z;JmaOoHPo)d;O!sanqMS`hUlFza3F$;-kay-DdDjWe+5?#9^j!QO=mNr4TZ%&H|sc
+zVO%Z7v~R37jaW1GeiwN@2Ru9dfa$wz5Z@&+M$pD7fZa1NpV8Xg+2GV?v+Dw3cN^BJ
+z3;TK-aDr)JZfCVjGM8*{>t@{tn!M2q##`M}eZ02$scc}+GubUs;5FdI^}ub!Yh|fz
+zf(y!k3qC+xkQu^jA*{LJ1AFNpJ_wKpi?=C!kXoeh0e+Wdh!2)#qZ#0|cpGq995^v@
+zC>j$T_qBgHdhA-RtQ&nTW&dL>Yk~94^hLSyId{vPVehp~G`6?Rif!LezB9SnOkdi}
+zylMHPm@~j`Ip(Vr__7voM1MHohwMD;@dnb`-ZuC2b_EL&tka)966}v?_~*0FVci<&
+zgP6M8Bm94Wu&eh#2zxqW6~RQ&el8ucpIyIRy(g~L^_CrHKbMZOpG&cy=cWApTz1Gz
+zUz?kkqW}91?$0ro-)1asmPNb7CnwV%#@+x~B9^;R;#`pji8UvRp4S~6dj5X;G;SPg
+z^xmTURc-}u(v9|}0*9K$HF@qO8}k;#nv$0Y;MwD%d%A{t`th`-Bp*DLV<X-Le!W%W
+zdK+*XbUy70t!`{`%fQd19OCZ_a)EePArRYCNF}k)ol77qZ7$Gfnq|q)I%snyWXy?Z
+z|6$YE%GetXkmVWog!;`W_@XlB3U?mLWCsQ=HSJ4sj5iW)XFRe_kNdbx$1Y%wMd|@&
+z;kkwOSjRl9!&3UDHi53rqWruty8yqVDE9@!c$PRa)OayuTaIB<A(CY7ZS*JEDfzjL
+zm>awl^RR&a>sZ^Hu-3e%JuQE~jNcRW8M)Eh<&jtYU=bW~y~Bhb&<7uW2*Y8)DL1%&
+zy&w1MO{#jICQPBu3e>gPhoM=Ft*h$<uWKgfOP%7AnVjDoc3P4_=LWZYemiaIv!`Kh
+z$WKK2p3WM;A>T9u?q=YQ)R-|YaFjd7T_^m}81P4Dfj<gcEfR0Fg!LJ*=>hv@JOi&z
+zIm*2Wux_lSj&&yHDuTIUyFvEFxK8Dj%yhVnxyG{~>RigSFIlqG=%24*#EAS-s%dYE
+zdj#))0a={iFU9Y9n9GT%KNJfbGMy{%tkdJ#8?nva^;my@O}UPD4GbJ44zO6at$fPn
+zqdaA8`bo~>nnFH`0Nzv#6Z-#JhswCWK{NlNZ0{g@toB+M+XMWDO*oxK|CQ|$n=q7E
+zhrV=qfqOO=7>72&zBJ;Q-I9BoK2rFexMqsL&-`4px6A!B_z=eWsnBt6OMsJ>;5*``
+z)3A<4@|GNBff&!bG^|%(JPCXIiwS4@Q=!!K7Xb&m5_Tv4w>%X|rFWJ97RevQG`#F;
+z2=>Q{;AJ-8r50_Tq2Z+%{z?dc8dgFYR!TJd`StzKuTSH!(^wz&csX$xU}cD|$5oxf
+z=z3gmSP5u*z)rZ4NL%*wzI4_G{Tc&aG&(DjT^9_w-vrIt2Kf6XXpw0Fe)oV6p5N`(
+z?Rn5Gu`o}7wE%4k<2Sqh8F@%_5ZCaW0rFjNx}S@))LHBrnZ3CZ;E<r`8DlxL@BTO7
+zZwcWieGO#HCtce0E+H=I{X{Ng&B-mnyx$9anh^Zdl1n6&&$^Lr_kIc-$#p01C-{ju
+z#pCM>Msl63QP^0Lohtt9=@zpxoo#SB+rshXsfJYN2Id$KI7_kq;5pI8GQi<%z(E9S
+z&UI&fapG7@(W%A6UEo85sV3Lw(LUBNoIiUCzvFB#y+!EL8AW(Sc+S)%gFI(s1dWP}
+zpiv)c7|yr-K-XP<92ylFg+@g{qZW_gITvf5^JkP{P~S4a+lzAblnaa-T*kEG*dvhD
+zg1t%i1NhHzGl!|qgMXtz$AFIMn4kE)1^iS<^JZpxt=LKpAL|g0HZ)enqy0m}5P!yR
+z-aL=>1qf5wa3no^j9BBrF*<W)j8kNcE!lF>IaM6u_+DV{0<J~8**pIz^I$Co?{n?C
+zqelm3o1j^x&b4kyY`06=MW1K#KERc;OEvF7y2V&qzt(y_%CU37!}vJR$B8UcQ(_2B
+zp`Nk9ChqGJx%b1Uv)t}>0spfJ(*fre$=_a@-r^du`y>|QTy2wI%Dmy3i^o;Rh<Dxm
+zY1B)Up7{#TR(Kv3xMy9#OfJeXu45>b%-M+>bLDn=P9^ms&c(S>O;bt3gE8*Qq+2ff
+zO+KqWWM&rRrk|V6R-VJ$DNCu_JH+#<HzeQGEiV01$DISbRD$tOTT?hvs`WwW1M}ii
+zXD7Otgwk`Ve#C%(r613QEOnk*Zm3*o5|62FV}Ww$IKZldcB727<E$<OL|-j_=+B0*
+zFQ=p3@e%3`i`pg6^GuI7lRBBkg`$(G1|P%ogwj~rybm~KHO9Moggz!M`k1To)uNBN
+zYM3m0F8JArr;m_jQ*jq%%TN4tI=f2iVnTzun45E_70D()J8!rg@iF`^8BI3nO%LJm
+z-Xhtg_cD#ghh&q-M%4M?^M=bN-KMd&;;|(7+fJ_(<7EsS;yK3C3^uMW*v_YO%!g<Q
+zzjkHrL%`wF^&Sq!npIrZ==Q!D<-l{0F+K>~7HHp_H6Qqo?B?<ccYS%eyDk!O*8|T-
+zl3PVr5qa!xcWUiD?n!0IEcK1lfz@G*r{Vj^13R;U+NZNy&7klm{GRlyJgxK<<&aU%
+z7}QtnRk|18r4aZ9o`;r<&|3r~hoRD07~)H}Fl$;j+st1^Unu(jgdi)_M-)G3)b53B
+z^%P{Qkekx7RjOFFB7K5vby68=d51e0^LQG@9G<@m{Mggk?qI;(K>ZA4-wpT{yn>85
+z1fFUN#vE|su4(U;{9V%D<Q3SnPm1j@WFpny^b&c-{D91-8FX&8XI!H577prDu42rh
+zQDJcNlw<WNQ-POX*0CYE&L`eWyCJpKj8AG?*XQc7&h?bPovU-@kEQ37LIx&Za?bTw
+zSNuL>WqJ<rceU1~pbTWwq>Fc1yc_hDNzYca<!&P^`9n`Sk2;ji9{CZ*Mx+i!VpPV!
+zm*3DLJdmPeS5m&tg}|GXs#p_S%L(HG-&bbK1-5Sz*j`=K27e#L?-HG>Owp|?)%V2d
+zg3s|ia5-fgBXN`9?^5ksxdPuxJjS@vk5sh{^}P@8rWW^4_vs1IgWNQz2f1-Xe-7ez
+z#P5&r>AFAU(}hPzf54wl6+ZDMcLw(MD$#XZH7Fl*E%#0uMLq^jISko&RWI;K(${kg
+z$0d)?9=`9-n|&Nyk}AR_BlH|2amlwv)Op(M;ke{$)N`~a1+GAAa?v>{;gLZbv~FW*
+z{_=r=#~JG<Dtg=|m-5I|*>}`w?7_Y(9ev-e+$8&sw(FAtYp3D6(y6<$2KL<gpy_Tx
+zS$?+(#7%UfkYfV1>)c6@V+?x(c@X^HE&GmoTG@N)p}kk`@4en@<yl41-lI(gc}l>{
+zweK5cjiw$)hrvBJiFqi}n2+SexyYQYYCgbkPmOKgz?i3HoDa-b$z!C8<p0!uI&Gy|
+zOTyIN4-bc}xtMqIfaLeiD1uFY&y*DHnUbPC^Z1B*rlFqlQT9wp(Vi*co=Gmr8K~nR
+z#{X;4JE*<L_?RVHw~#E-Is8-6^IM8^4$JWEiq;{W17l>6{)UowdkvD~c1eDgQ6cgB
+z8I$J&;up4rc~MRJk~T2+u;i1tg7N9LK4%#HvzT*x8u|St`5@-L-0Ucv%p9mbzn<)H
+z8{!j$u7_eBkPjHsEnW2?InP;)dHZL{a~g`b<;3ouX9|YO{U~|dA+!F^z`)k{pBamB
+zczODf`LQ3`$<wA<a%J?nwmWmo+sj<94fX_&cs&9fS{`5SGS=!R0_e9f!7FK8?NWxQ
+zZ>;c2Vo7(t#KO6fw!`C1=QFuk%(Kd~PIFy>wt(&0_J=lBK|8$@vd}@63Dz|gc%~XO
+zuFd{MY;4l`$8`RzkdEO(_%<+xos4a4sT^jEQ66I)fq194bznfw*kiiC{Py)X2l^#n
+z?X+!$62di*4RZi6ws*vAEreXi&zY87#At4gSS`)q&(@BCy!M}rgMe{B1~{l=bmari
+zHw%mn6bAhb@C+8RH_u>qOCI(sbB3#YlQWWQ){?W=p>twW&Sn{7k9M#!$5togyCyfn
+zeCnxI%<FQ<^3Ci^Zk|=)&BXkN8<)FN0as3@!kcfX^_Yk8)>}jC!u5E=G-T`{Wuu>+
+zhj%~1*k>{iihD_pcKw56H|{S?%}m$;m|S-PU~s<V!d1Er>N~~1+7;jG@?+1t1B}Tp
+z<6v$abyltHB8KK^o6M6T^K|FnJTdQFsrVYKc1xXhi5JN=EJ>|#OTe4fW1P&#`g!5^
+z7v-@B56aoM#6;L6brR+nH!#51*QobR4J&6-7BFdVc0(>S@?16!0>e0?8FdC6vbP<Y
+z)UJ4*$jT?P=G3RNn*u@M(bkog3eQ&BxL$akQt)c0gXb}d&tzlWImTHEIc<mfc`j^f
+ze|gNY#5W~BmsCDs+_O_L$1edkOJt8<l`jF@kp>)Tdg4GR-kKxt$e4)!zOIzK9gInS
+zRhD}+WPIC`vePz8%y-sL`Kv_l>ucYnu4#CA?CWQFZXVV?wcIDn>FA77wojKGGh%N7
+zj~)!xwd#F&7452Ju1AjJXZm~n?F)fv$(PvQp|#sAYlm-e-|EAI)YY%gmQ7<^zM6T*
+zliJTeEpZvLH4<m*g4`+Ci@VXEuo`oJcn)#lD%X!g5}vkI>|9U6_}a`>1^zDg_XFNn
+z;(5er10GscsMh@FlUScqjKz!*c`)!0%2GxGJ+EL)a>%G*?R#$+63<fP`EvctepAW3
+z>kUI}>d9x7Yu(_rz>TaI@18Byw$c3ND>}yXJ!p?H-z$t&fX`J$dc4#jo+pKzChGB?
+zjWG7V=(6;gaSCPQt6X0PDLLKVK))>Uned8ybh01TePG<#jg&c2hOtrEANJ**0rj1>
+zJCyIfgSx1njf%eG2K1}TWgJnSiG-YOhp6Kr9W?AUl1D3IuW1I(X=(v{Gd>B=R4BJ9
+zyfMxji8KBvI3q6hpQbxU^4St^48h4Z4JX$P?r#Mri}T`72$&3Wtu!uRT-t!MYOq{L
+z`+G5-s;nKxwc-u6PEC?uhk66b3*S7%n5Qxp^xv?Pz<*86l9R+vH=U_zzzWg;d%o~i
+zw-Fa<-wKm-K;n`wDz?RWb~)*liE#jyD!8ukwct@8cQSUqo_F@^^`paKsZ;my)`5ZV
+z`Z0CNb^o6+)jHzc!D3kAS~^(6TWN2_7%Zss!=yvxbAY?K7V}1>LqqucDamd1*I{h(
+zabPTsz7f7ehoZ;#1p2{w;5w5YwE{oh$vuAYnXix^qE4H*n7R`2nZ<rTgE4d*h0i*V
+zj)EswzXv?Yve^5h;YsU_<KW5F$KuKV`qOdn<Z2&JUh%i#NyZ;n-@Z^nJh}S4;>oJ~
+z6yV9Aj-$eOy8*~QCkdXMD|qrv^k=?~c~9QpND;oQ7{r%b1YiEgpL~3IccDz<ORn)#
+zcwVaU<rIxCcWHe2ec~^kQSKy6fVKi>GM;`g+3d32YNvBBS5nAPaKnE5T;tFR4a5KW
+zCk6KpY8+aj%M<>~#6KyWr;QQ&718kZWYITD&qF?Yl^YSea>c{^#ZbCN_SJMI=NQlW
+zJHW;BDWh0Jc={TRkIQu2>1z7704E3E0VkIxTiqz?5jn?M<<>ISg{||Yq0S}fAJ4s&
+z|JG8;16Hp0Gwl~jQRaE{k1>SUzisFj=Y##8Z>aIiK)*(QbHSfDcPW>7gCcbs3$!&N
+z-wHe_@uY~4Yct#1BGXnCB6f%1<&FOj@iJp~v;UG?(n%GHaWi?e`RFfYX3>4xEiT8&
+z@kRA|-o!otKQmr#F@6RuYBTJPVfcBj#?MOxKVK~P`O0^JpBHHS9IRv?i08iH8p$=H
+zGi7Xc&Qa7J4!iq~4u{!Ey1$DwuCB0#V0I~eyD(=w_w{4-@SB>VZ>q)C3+(`A%l$I=
+z{&GX%d5(kUiWbkQ2v?aV*T=)+V}*V67W%YE@&%`}58%F(c)#)LLA*ciui$;gr1RS-
+zD{6yd;Tp1yJnCisuaR(={v+lC{Pf3*a6D+^_^;8YZ$9zUqHF{*F=ONNyq5ClDaw!K
+zV9QSC<LKZ!Hxld2F%JGu(M|;Nr`7&MAN|yTI}e|taymTAef5F22l{EJ&U~&B;#Yhd
+z6`rLt*NAt&e=oM6JJ%P&@e#J5w4-*q4;l8hLHp03eS_>NQ|#!Qn#CT}R`#Hz1%Hz*
+zs8M7KTB~e9%_3V+>X)~Qep$&KVhaknqu3S{<793)k>Rk;>&#4Zvu_vrUnA^7*{|Ao
+zXU;J;^qo3Bo&D&9oq1EA+YKyxN^*ga9*@2G>HPer9&g}3=j6V1HpkH71v3kB=DDk?
+zBFVelP$KDxpF(D>#~d>uCrMv@$uC%^b1zMztRGpNpKTatm{G<~ReB^}zch13I?K4t
+z%>Pckl3`pA*pKHcoY<4qGtxUTzFmgB`l*n!`l%A?OPoz!g`LRNSjpVXN$G5roY}0F
+z+#~nXZ{A6`%t1nXbAP<-hmlwtrau(*$`*CW@pN5C`gB#^j-yZUp+23fV@Vj9O>!n~
+z+AkCq7>s*!gIi%=kUMc4czoxE+{~(`>_mwR41PGXnmLRh53lxq%RLubJgB#(u9~{*
+zUCa}6tI`ksH-I_t*1*6Wz&`_)nQNLr-?Eg~d`eUH9^AK7H)XRS<zsaIggFvZjXrkG
+zA5UlRn6f+Hgmt?Immjw(WTm_*X8;$R)-3hhaFNQ{z&+^O?Gk5yqS6pQTgF+ARt(*j
+z72P-B{=f}A-hq32ypqISZaH|q?RQf~+TdM!XDk;1j8*>T@*H)mjPFUjMtt{P^5kt~
+z-aF99NV3H%&#VHD+2%zXw`uxwHE>dg_jS@o;NmFiB)`@n^pd|*l551)xkf%&R4%0R
+zfcU?|Dqg|h?-H?pZwW-5=5Ro4GZ=5wC_hSkhBEXmy2D_6?`F@wi#`zK+klht`{?fm
+z`d^iJ-OR7m?0q_8^iyvozDd^HocOXyY;f!aE9spqzWsWS#5YMiOW~2<b>6%yb>6%y
+z$=4p-JmqA`jaNEKZamPKJlE;P->G$?{-pA6TpRjpkglEA9_SxjBm589U0%>qyie3>
+zp*?}bZw~=qa}7DZ4#E}IE+p|)7*8Xez1;$=*ls>4<>wCiVH?_~EvV!g@$Y5MkofNh
+z`qwfBXk7f2MNgTu)%kfe*5Q2x^@_a}W79e<d0$p#yp50J+uO9CNd@|UQ_*@6ufLHu
+z`e}37@R_m3s~|v(Ef`Q|vY6wm<-9=j3y?jg(jMC|W;0(vDfzsF(5$Vcn2Y-u_xS!(
+z-7+m3oTq(*Uzb?CnD@rk9P5J&F`KbT*&oK{BcDz<x%{`6=O`aBRw2*Nnd>xQa{d?Q
+z$rCT&dA+S{!tS0t$z|@fS&s5&cZ|+lB)Q$2n%eF$*BWigjK<IA=ub|WQg}vVx%;OX
+z!TvPby*qiD@WA9lmeg(cX6wHG7x?5d%{vr7|0$kV#M|A{*cvxH%6q`acbSW!G}bDy
+z%tzJ>p6+q#(AQJPF7Waq<e&Yxo+_C3Zp|-#BFmgaVaiYmiMd@)c`BTs?|qvqb%Td!
+zqfcL4$(1Af0X+NNig=sL_=cDNR-YSUzL<N(XuKh}zN${nC`50;^DoM=kV7gg(#a)R
+zBblx<@xPk6ckJ!wRHT}n30QCP`jNzTuOijrG7k^WMnWUnXS?h}*!e8zVEQ5Mw+i$b
+z>wiW>Vg_6#@#-a4CV5}`7a0FOTu);TGJ|tK`vLO4-w?Uo75gc%SD+2I)8x`d(X{8t
+z+2zDkr#FRmG_)C0aS5nTp3QYKiq@lSl=Y~vT3zM_r_RP^P8Q=Du|dFi*VbdKwC6I6
+z7d@UI*8+x0T#1L-M4dPBRYY=mfkwFE^W}~aS#aNfMV(v3SIMw<dt+kaH@J0-<P*9u
+z$MeuIZJF#{9&L4KljY$(<uBV%_KLKdsc>3EuT}xxr~*6;Wir~j(?+u%<E==oajDn0
+zHC`fIe3dyLB*)HjX&?J?b{S|t?;)?9inW~<NlrgClv;nPWp|!Rel{d|W#ZX$2L{%D
+zl{_kK=k0{Vs|=;mb$`@nJRi_9pOI|#La}C#c{FHuM*B<R{|cj3;PW>+W`$bYU+T5}
+z=`i>%(e^OK>v1}L-Uh!rpugKQ?7R05t9$e^V|5-KGtkmU{+Dq=i34^G>H`+#naegp
+z`%uhh6!STUHhiF0_a>DsO4st!+(6@UmvRSq*M8zrOUuIljo+MyXqxl9-m~KCJtM_D
+zzUw7!g}m!!Jfkb}!Po9eMRbmrdAOF~`YLm)pq{hFn*C+zwXVd<OHyaH1T^dFsuC^N
+zQ;x8hBL!obq35VX%e`E0^yA?B#xf_~#ksP?D%byB{A!Epkl2EF$CyO2=M7~uv?UmD
+zIZu|=<w@Szk3Z4(ua<e(&q3?!+qOgk?jxWrzt=WJZ%T|jC71f``27nxTla^Yjk__P
+z=h3ex4X5ozTu=FZqb%@y-Jf5f9?!Q^Lf>+@uQh($S8KHOaZLU<5q$G=$)7#cUh$k@
+zeV(l~9`EBE^4lXK-+Ve(7He}Q=PL8q04~LUSl9VD>MPOukCF8OHh1FrbL>CnHN&xB
+zo%RuTmsxFYKl3fB{2Tco<Uq>q0jEvm_JG8yUYx~Pw!W#y_Mo0GfS5<y{J(X+?m|6V
+zGz>F86VFi_RQ}m@i>(T8u{EJ>eMw1*@>A2abkp7oAU`Bpl4b>DvDjTMbzX6!!s`J}
+zcytl-x^x%9$yTwYVczqwLp<5#ac`bEJ=o9pLEwc1a9#WK9xu0fK=P#0hnHo7u?>aL
+zCMBmYK)uURW`Q-KM&hQ$+6q&xikgKIL-=mthiv1T{7jz9HC6zBRd};f72ansDT|#6
+zUOdC|Oz;-CpP#Alm=iN#GxzDW*?A}nKJSdEKF^%T^Etca5OG==@Zw*9w-!rma;`@@
+zKg+mG;%Co7TQgCYiT%p=)OmbT{O8m8n4``Gd5#yoertjH!-;sub3*Q~H?Xf_NxYAv
+zZ}_%M==lw9VOp?1vT$vIdRRX<0n7KJd<o`#KKdU*eauxyy=I6yL}#tbGd#xbHyT^S
+zCYod5cfV#k=*MElyQZAayou=Z44yHvU5sx&#?Sndq0HT0+)!otZK>8({tz;~e;$1$
+zc)4G!W1fY^d|;Xz3>&Ql!)Xt5E#EKlJ8%;9L{9plxzk9?S_{vjysSNQ$rr)EgVTm!
+z;Ol_r--vJN$&5KNUe?Q*m{UCSH4<Yng8#%<j5W`7j-#KPcdkeJ=s^Dh^nK&Tfqsr<
+zjI(MeR=M4on~E`VKP|xjFEW;m#a!!^5?>N^g|X+#8Hb?bQ)7*{K-Bgp#u|?%RNNBk
+z3aC5bTzrT*6!)pvP&`+xX3lHOeSgI4XS`SLgP`3#n0v$&xm@KbG%_zrY}CI{9(G=o
+z7z;J>ex2v%dzZYI&OYxWdpq)sG4AJ`D-%9#o%SV;ORhJ+Y;if}p<zB>X)m_U3(o9N
+z@gf>yxj?clN1VvA#8q>bi*3r`Q0zw@%j}mr_j}9}GF0bP<SkHVtN5vqPR%J(c~MHS
+zmcN%=H!6=3;V<Z{&N25d+izVu)>w`SaOR)+%13Bd$yk<bx73uJFjW$d@FwAPAHn>M
+zb&`W?c7n<WD)Q5P;LnqDo|M?aN!(8ztNr#>eCqu73<GO&S<Y!!H05IaCg1pH?eA<b
+z9^yh3Lp7XO?NT-?d5^MLJ>F+xz-jnC<ZJ>iW}ee7k2dKi3J%&-@N=?;<Evexaf8aE
+z@HggbFBKaV4L6h-ur|NlFd%UgLe46Wv~1(1p}g(kQDjrb&fq@#c59&jKN(lzTEH_H
+z%jG&})iTaYJT7q}RX!XAlk~$`09gL|reotN@T`Pu`Fx35!`DTYNM}EY^_zH)%57C%
+zJjd^1+-!3O<9O=$i$(%_C$>>w(khBUO<w8Vi0Q|&9v^{hL%0(eCb5b-z{3*L+IiUX
+z^{bS3c}~MV8S#y>CMAEPF2DrM=GoA!qIoYFW!{52mlNO3$J{fA?7nNp8uLF<H2>O8
+zsUCP`7H|^nlq8-$=I;RZ$E<HLHrO@!^7LIU&y?y@6_R(7GRD4Am4mq+G_m?r#_>w$
+z1M#(j#|hKncRBBT{|&s~Ka(+rD}Zme7L3L&Pv^ZivEPG|TPe0l)*^&wl{){n@9W07
+z{7BK7l;|~)9GS6y@l+1^#rgjc9^-0REB^jR#%*@ma@6~i4h0%{F1yJKY*6{4zJ_wM
+zoC&gy;c2ZWF&EkbmO~#|-f*z@EPP`#7Tp!JFDnn~vohvOJ!Op9zkvBiZ2A-88`c#|
+zdO>`naz(cmLa`=~&x4q||LcAwY@CNZ>(j}4X?s<U=ksHnX2EMS_hF7TZX-Rq5B+Se
+zqis}$=g%eWreaaEe_mCO*yWq(Zv%dlKd8sJKaBhO8I1Q2Jc~JFdE(^WOI7Zn@b&3z
+zRZ$Ed%w6FGjA1IuJ=E>Tb#E<vNPK)IcvDg5{u9i8&O?a-T8#D>7n5~XF9`I{+&95v
+zPS05=7p`lS*r?p^>stc-%yatXjqi+uxEKDFdLPXn-3vVCuPfyH%Gm;6tG#XXC!{{;
+z|F}md3f^?{tS>U1F{nWEH~O)BlL9+|#M=KeF8HKwhx5~fwq|U6XPm&Y|A2CXa1ke5
+zv<X}|MR4K6#JnPyAkX-d3bWs-9D<2|sThKZM{&<_RRd>pPXrTc4f!3v|A2-K!SS(_
+z>}BSV<9gM1tNq3^A@Yob|M&^2zL3NQQ+2VP)Mcm#Yvo|f4$rH&cm57@$#bauhQB_4
+zY?uBe2mVS~#@d~^WC+*3`P9*YN1uFsAbHhTqfy5Jl)M`WWt;2gMI+r~4B*U$W9c5_
+zMUn1RhnXi#(LJ9o(Kdmxr`8+=U%8m^e|tQ;D1Mp27@Eu*CAd$;GyKBa1BX{G8f!4m
+zTVJBb>vNROU*w<ID%X$qS|i`^oGK-Cd_Zz-Uyy5dB$iIDr7{IxB+1yu`S%H}TqyYj
+z7(0n)Vl8qep2Qk<i5(8tA#|k6W4!5=Xmcg|iS`1J@9Aq4q<yc`eTecSe}jI`7M=7O
+zvwyHI@I4&2U)L}6Ss>r}&z=(*S>YhVY4x7v8E4mk(8Bo`cVoyf8VdshD{wXHm~>+Q
+zJroN(h&hiqM)H-h&no!&)R6_0D^OojbjppI2e18Nk5}8Q_`674@gDD0_kIiB9{`US
+zHo$*K&eyaVbkpYhIsa}tPaPZ2ddSoB%-+n*$#wW^P^WTkPT`r`bbTgjC*7#>BRgz6
+z<2*~p2Be-8givzAv#vLE-pEiaspiU+^P|eV($i-ZOiM1E@oZzRih-AJJ|&(1Am-C>
+z<GC|MwkH31rx$itOB~M-?jwmi#V*;V95Ov!iGGbU?WS>nmzrQAY4N*0L-7xc?^DYd
+zsl+dgZxg#8zmt8^zP-we{2h2&lzX<s@N=_VM|opBc$++9;pMyEnT{OMbm#S^K!3N$
+zcPjSSzu<l<#=tnsQ<+;8<A4kT7+CFIi}&~L9e_MN*06vJ2y;u$HjHgQI69EQ)r+eb
+z_J|KYGZY6{;IDB6{DnrsANaTs<-R(--+No!x3H%uFEVbS!~l?d^7Q}j5}xi%vH95I
+zMH<)Sg43xxr2pq8@wa2%<*2iP=VgooRBpvDgbaLj_I(m#?<#?pP<n$GNe-<==sm#s
+zVfxKc?`PiKCwfumZu#yPtQYq@W26s@-)<Iixslo;{eDh(xT}P><2pvQPVZaIfx}U)
+z(`*0OSeawawVKDo!+!i$|Gv>U^Oc?Fr?WdhPI^DtH4{_ZVEjrqlz7_pbsmlWS^gXq
+zr%U3YYyOVwWS<r67u$<Q_3Zw$f?_um(D{x`>*ijwarMI?tIabS+XVL!?v7VqbVPlr
+zcUvFiC_4qYHn^padVTsD%HB?=vt^F5@uA#u$8`GH59Q19X$Q-!oX)nclo;MYvG-=1
+zlB?qJh_x0x%vvvFtR2iB%l#cpY;=j=LXF=BZeQq@*-yHom1P{g1C2f2frP@3CD_M=
+z&A$al)=D0C#?oh8?$z$8rqN&Wcft#_brcv%DjEJS$v^;xKzYAE<Bk8i>#yU5zRN&I
+z#~8+nkc#Elhw=6$H9ZiykKes_nIF95c-l6I{VH$@*EJIBqJC51h(!94P-5P_e-GRk
+zD#DHY|2W1^dxq_QW&D(R-@LSF{D8+-G5%LmYW!ts;KGE;G3L)h`Fos)33#8*sCkHH
+zR?8k0dnx*#B(`~{0}jgmPIC}4F3S12lD~>MU@nlQ?`94z84d$`F$a794ln@vKfc{k
+zV<%0y2W$WLSZ~_mpZ3>aTf@SKFb~Wz{QCUi>l~82%M1OOnBv#Y{L74$8MW2{mv_ti
+zklkGqvW#%RPFNSzr7Hu|a5*g&co!?=7&SaI*pcq>c8*PFw@!P~eKM19=|{(yC}xI!
+zdQ0=Cfc`MITgd4EU29V@SQxvvvCE4#tuIioX*ITb)yY;bnrZby@l}kg4t8#%_&#oR
+zo^&&)|4Ad^O6(zrXD7_*)9#*gX0V@e4wwhouv*2Bl<#ZtJ`z`Xe+U!gtADwEbe&WP
+zb92khH{Tq;0lfZv#<NuOBC(_~FCXNbfQOF66(3C=E@FY-0bgv`+nB%8tp$JQ>;3N~
+zoY<|j*IgH~JJvH+75?XVW{EXlN1of~10=>jXf|<u%c&|)Ddqm=$;9XQPag*RMz@)<
+zxoNMjfAc@z2hV8EeVAuEbx(rV0)0Wdj*hXseU$O?-R_IW8b>Z<{_}-m*B21}(9H`D
+zZF{0G%ADmY7PaJUjU<_eT*b9#tP0BiRwJKXoj(=w*Z#ER<IHchcexqTWvu<&`O94T
+zxwp>bdRz~_YMJs`*L@FhY}3>j4EqMRc?M+HC-FRpXPFL{Hf4sf%#C8)TyxX9RqXI+
+zD@OQflDe)39JIJWbCFwO#x4k(?FH(L$b0;1VBpzmjAJ$Wu-aC0r{J#LHDil%5pxx2
+zg>h*p-kB@W^fWm@8}Y@tzv$SB%nSUfijTDrCrr&UFU}RYF)rk+q@u&L&HS*OEp&T2
+zek%6PyW2N+0OoDL#Q^i2#nWA(c)Dee?2$I?kvoU>2<4^9^@UJkb<P;HQN~^YtXl^5
+z3t&8wXchZZ>b2X22fb3-=NJO^&BNNq-mpM_iIYsjSzSXsaSHk{M&jlyWqyH{m$B~5
+zZF9m1_+eg~$Y^^Ab)1iH0RvqDe7~1DnC6W&xSv`tguI5U|83?}O?ix++FXORuAC$5
+z*;GYd3jbvf-{3YeHvoQ{`u79OM^&lHgjntzo*&M284I>$hKdQR<j3nJ&o5&l1odzJ
+z=X=7)JMAsv_h!c0FWO%-Gt4>2IJ7+~W>=Mh*~zn_fJ@U28n!!W5AM0=!W~&ZX6uI?
+z!x+F$G2S{w&VQJjaf+e%dpQR(T3kP$$Bm!|L1TNLe<t+61!IlG*(#Tb=m9Jx3-DX!
+zw&gchjriu)qHm7Z7G#Lr=jB{O@k#uy;jgsCZ>}Hljqxtqx@E+7`{w-hwyquVO}G9=
+zV!>Og9hO}R8E3hEH<9t`V~k0w-iKl>VoP%~>MAi>CD+FM<J7Z)vaNn+YJ2|y!0lje
+z%(&#O9*pY`dF?UM{=l5wd9!YJ{!!z_?8BKCvje9#=YtnD=X<Revj$+Oz9gBYO{Z~M
+zbJhgziq3Az7Ta|iVr$pqt@~gQ>$s}VmjywU&o`Vn<2H*eUr=J1F-Jg5^7%=>bZ)`x
+zbiW>T_TTfcz5kw;52f$9*J-&&@((y|-(s!~sq<adcd4%LVbu31>SH~DS*$O8AM0aX
+zv03Ttqt4FkOy<Lio$2-Bp0dQh;eQ4G@4$bqM;LSTu(1<zX_HqSYx0U?(2kj57@zyE
+zSAPROO66mu%wu4$qYoEE%>GB67qc^g10QvEXCKBrzkL|@priTT_={N!w5=MrPqn*S
+z+U<?+&hEfH`^dV<+faVud5GB9qb;7dpMm;+96y+S%sH5S+&V~EiaAa4Jg4Nk?nocZ
+zh8vUFl4Mgh7+;+YCE8_tJJLVRTJberbz+V8Z_ZDZTr~E~SN_d;E*lZJzamec9ois*
+z*Dddj{}O%w<uUcM?rQsPFW9&``>6HH?504u%eJfxWawmjcH7mf+-(m`a(6ht%9bRW
+zMLuKvw368U?&PVM``Ayj58FS@_M#6F(&@2kPW?Ie=Noh>@2|(dHSWwF1Wa>Y$jeaA
+z;oC@TOaYI_QU&fq@{e-<80+*BavrMUsJEZ5be>aUDu-|=)>CN5ccFNyz_F8V(og#e
+z^0hkmO#FNmf4;b_uN|kYmF7@e6Gv(5bECBNS#zkZLmxf1t;BKKS{oQ@tM{YFwzX)K
+zw*DzF)Yi&T+Pd&KZJik!YHQvoZGC8zw(QVQTTy&N-4Ol4Qup_G^Ltf3BcA8^HenJw
+zz_{D{HF-Czd1*%Zrui|+{`vf_?3eLw3Z8ulvJvgWW+v~3+_BGVg3R!Uy*V2wABVlU
+zy(T0!$47=em$-A_W9YB-65gLF_6W%U@JSHQ!nJm1m@&>isGqZ4K4)H+TBoz77WWe+
+zZsqf!`PbyjVvO;i{0o+fP54#$fOXNhYxpdg&POn(56tM1^M#<Z)}>EThyA=~-qTf}
+z-P#vWZlc&gE+Jm1GVKe;1vBYN?7PZ{-B|;gQ|>tPaszfSR|Xz^0&V8N2U(JL@g?xv
+zFH3HAL-KaAec(d-rGn|aEHMJf11medD`}^<mN5Y$&h{{PQG@pKGo8D=R^ZZyt*)$D
+zQJJ65*blTFnzp|1A!n|%8!)cQULf%juFcjN#_Vz<E_OQ`Z5uf5Eg9Qv$tSf$^kh*-
+zt*en~siBVS61<}y*!`1wydT^(&>ygS3Vc6_XO2#?5HQnK0h4w!#^KiKJ>IwO8p(^L
+z^S*CiwanF`>~9AKwgMOC#qJS2S~Qt9G1q2!A|2!z?LG7@%BcJkml(`b5zjG>m&jl4
+zOWqjTf?CYIX_Q}$b|;Em>`P)7%la1;%^PIZwTz31y6LBxr#<*YvFTfs-G%Y;TYt=;
+zhbHErTx>R-8(dTAtPVC{o=rRM1uDA=O8{FAWewZ^j{4*lkAAMSQ&styF(=bp$|l(#
+zLRR*lGneL1Xh&{*g?Zp+5biAFs;UHKXy<v4YZnAx%{C-&3FVwbn)Z!VSEFBq*Cp&f
+zZ4fb@K<W?PrPdtrJ><KEJdewy1g;pLjk%=X#uz4G4yHEp`Aag+lhNLZjN9nMu@A1u
+z|A(|6%hAr!mjTz&CKSK_Mb_w={6uSenCGyJ6D=_95T+Ton|7ejVNI^!9uPRLqJ1yc
+z1J7kW#)^)gzH$nV&Dd)KceJl5)p{4M!*?bd{jxtLuEFzzYsOeItr`!Q72_o5FxMnh
+z*HwsNUJnlp9OOCfvWBt7O7Qm){6BP_vUL(Zka4*HuRlLpWb34H*^0k{%l`8naM^7d
+zmwn;?h|Bi<op4#F#%0$O;j*iWa9Ia%S;u7Zo4{qx3kBK>avkVPYu>ZI@Y%nD&u;vG
+zjL+sB2cLaZ<Fof^d{#RGpPgHb&s5yWtn9x`v*5JPp&x^L(n*XX?pg`l^_4qE;4bQ=
+zfrCckue`=zx#Qrk`-||`$pgka;;$=4!CxPH2mIApguk8{fxq4j?mCTgL;S&Vz*`*S
+zQ={Od&%X<tbd$zOH@^c;`qXi7(g#N1q|+G(vj``>I1(qJpLgT^e#%UD4$n1iIBvdM
+z<Ex+iKg3u6G--5vHRWC6tIZz*j=J&a0CCn-+$YaD7H91rfwLF~>akTlf}@sLYTfBW
+zNxT)1bC`ABEhcbQ8Zt&Nan{v?IP2TMS$7J~x|%+4&k_cf5O%ERy_vBtji0)GycMoD
+z6b`b)=laO7_rzcI^tlIIoMjf_uS`0~?`ktc_)BmJaTs78c&kR<Tb<$hV*Ew?B=B{$
+z*jAV0e;{-5xX<xfFXRW{<J~pDUv<>Mw7c|ci9$|$^c={3_Ij_@+~;*vt}759QJ)rV
+z>MHP@l780_`hUc>hp|pU;IiO3sIy-7<0rDwSlaZTpUvknMbpjHMLEa0FgK7P+$^OX
+z&Q|V?6@u#yicM)Tt}7E<cToJ3hU2=c1cvAjQx<C#JjZow102nC)_FdzW4s5hMT6bt
+zg?)U7wxh<?S=y6Cfaktw7-wwC0MEr=_YAS$qkY6DvU2X66nRhLeNGgA7y7laA8GR$
+zz2_xn0C~F@dAp_g%kg~WlpcwnPri;k-8r4q)h!g>&amB}@G&;|8SHtCaly<UPw*r5
+z-x-}cuNn3Gj><_GD2lyk7@y#}ndObZi-3zewNJwSw}BHAaives9K<>d;lsUXqh9dg
+z!9jfZOwn8tAJ&6jmory)CY}GP;I4nrxa(@b?bTIZz<eyp(C3Z#Yuh0H+Un!4MvNt+
+z@mE~oFP2wpvTblpzJvE%s|I`Bur=8teiz$CzZ#f>IhvEM0uBmtpE2e#zFT`U`DRUH
+z#7-u;GH0Y-$?=?tXQYovy!mwY$@7(sB-f5UT2sXT;v(j5%@c<*F3=S1=d?K(bT?bg
+z?iR;(2a-|x&E^Ak(lwKt-9YL)F5>{0amXjJX5uc!wkoeM7H6*&x;+HT@6)h+me>j%
+zq;IRhiN6NGk%t5JKFr@ioe%1YVetHhhG&Dc+io?ooTpLd?~}xPnE#RR3|{u2@}ath
+zcHnDIk{o-A@7N`FNSwE8=#wTsZKkm_`vhq&^HQS?!Z+igEiwEyQ-f{Bq|MZ@HnX&y
+zli24==mWGiFLwD$vKvw7M>XB>X((aR;y!V16&lJ|KoSQVG_(Qx)u*E;vz()1Nf=It
+z=kI}!(60-0ZxZPq>a`k46OVXf0IS58gtupp;$1Ik->-(z#C1nO6VrTtQ2KJ$(Sh+D
+zM~7%)PV+OQi?qx3+q5;!tJgHIUTEHh$I!g!F*NVsC^S#uD>MF@;26?8#(1pPu_7|I
+zAu&K1Ti1xcFt`slp`UG<KKL|m3HsVV-)T+vUctK4cG;ai)|jg4-v7tmpT|d4oqquE
+zxw9l831PA+1!^uBD=OL>42qi8VNtPCJ3v5GYDYyyOKnuz(w5fA!XhRZHbn$7E^V!)
+zHm$a$*7i4SEv2+Y0Y!>>=MJ|)q82SGLdd+|?>T2OlLc)1`@P%eegC+b+<VVG%X6Od
+zZ09-8W8r@>vNzuw*9YILxxG8zqkoy?dr`&rzDT}@HPKJ<y&Jmt-ZS8PizMH>A+g~9
+zknffJZ}?sf`JVJkjxUgO>4wBzlJDIBzW0TqJ5qcPv|%3j-aP3Sy})i{4m0pQkGa5}
+z4c<qd=M&9tzWK7|eGBaTo0nrwo8F?0Lh`*3_*=LSzNepe<9js|`rv!h6L(9#_u5JL
+z-fMmEz3CE<azH1t|0}+CgXDWz;CnZM@2x%=-wQ>RU9%6q_tTT`y;mv!Yx><!`hS1J
+z5#fJG-?Aa#Z*v~(p$CMb^o>ZQe0jR@H^~0EQN`a@ke@KOPY3v0B*oueb4l}3v^Cbn
+z-(KtDZ@<leSr>ncs&#e0<Zs{6{Otzd=MBZ*I0=7Skm7Gq#oxY){t&-rpM<~t>?HiH
+zMaD4Dyh+11&6_6l$(tC<c_nz$!{kk&e8!zuyeYKO_Jn_^cvDS^H(f`0UGk>uByYN^
+z2XC6LdDCmqp-#q|Uh9K5Dfs2|!J8KL82cQ}o3eZ0+}&NgX<857G&O@aP5ZZa)50FS
+z={n7uvisysQ@ePR<VPy+hvG*WI-TT4u@paA)14nNUNFlB>f990PSX6SD#ee0SDu<Q
+zKO%k{I0--c3HebopT8#8&yT^6e%ON_b?Im!?MH|<E9uh=J?)9bJ@mAYjXv3l5&E3x
+zf6lL7>w{lSKPkWBnZJ^<9{ftLs~`Ud{OaI&ieCk1DxPKHe(%}6c~*4>&*C275R?1!
+z+`DaQ`wC#ebFcKJA>R%Je|PW(LmXQF8D+!gexb}U5o~FzMp+-qlGa!#7ecwnXH>51
+z%sRi&N1adPibK=;sPpn3b*@6W5q;D-s*gIi6^TQ>KI%NTN1eY%xxHtpeS*{(L&l^K
+zF~;ktbMl{Sk#RYyn6nS}^x<O8tCSC6zRZi><mR<LWQ)Knz=<&uAF?D(P-iBIi;Vj*
+zNS>#`x(s~SHXk}6=aT#EJO^!A<0OqSLbwkva2R9H#JcIH{2#%`R=f0*aJBvBJQ+tg
+zs&a>h7P;(`>dRtT?(d|*<b9OoAy35RdB<1eIUU;T=s)^*X}fr(jeXlIbD?5<f!EqR
+zR@yI`=Qu4XXD)a3`GtL=hVc}xW1QxFhbvm-c}lPO7=50-=!@S6+KztsgFK6r@=*ov
+z;o06T6*7LkiVJWEdYie*^)VMJW9pGd$5y*Oo8wpnS#j<B(`8PWR6N}oJ>u!EkTC)B
+zd&JX~`$y(-dyItrYIz>ZJ9JSSVdx7<9~MWL3Qn{cGX^+)Mj6|8+$mzg?I-LxUYX1O
+zu{H&l8Pb+6DweioL#|ow_uDBr5C*?z{5Ew)GM*Du@%lLSPhspb*DA)_HFk`dW6v=c
+z)t&a=jytg2#+XYDv%bh%xaf3@vve)znd2jV00y&rj5+5NV}4!6kclRq(Z7t*94H?k
+zo~CQ@_SKhhpZNRC3m;T*y&1!jx}nMZmNkr}CZ73T%ueLTZng(v9N>}LWlrT$gvmI_
+zFU43#3ybx;T-vFG%!||P8lj2KJO4<we?Mp^E@F96EYF8TuqJ>P`*w;JcPIA|A!BeK
+zM8%N24lr6(%2)%$EymCF>9tav(dIjHJ=8gduQ)-tqrO4+i#hazALQ{DC%zZ7i&MTp
+zlq(Kj^}B<U-$@>tiS|DAfZ`EDGxm#Q+u>$OQ>mwNOyn)>`|02_f0gTzbC<?}U;Tq;
+zNzq5Fb<e1J*^fWU^&Ls#y8rp1iY^_vw#9v$vDAYP$r$&cV3Ruoe6ZT0UctCG%iWGF
+zj2HB4POQmgUZQg7WVBoS@MF<lZA*J{qB6G5odLd8gKupq3%x{tvv@@Elr?b~qww4!
+zhjf)||9q_X6$bT!5Pgy$!tU{h&8AXZenDA0wol?e=FG^G_UjPoucR&clzFT@lD71d
+zxpYZe_I0BzUcCRTIy<`h68x6n*8*?ur}EyfKK!{BmwAhri)6I90&DE$wmb3eYOlz>
+z8^7D|J6+o=W(3!kLMAVj@^Vm}jeJ|v9Si-Rg>h6<AH*6OZ8y6!0k=6?UdhQ8gDl{b
+zzb0Df<(VuQPxT|0&pLo7mY^+G$bR`M)-eYCYUVylhP_T8GRZL_(c&=XJjaUG8rGua
+zTtm|h%C$2R7Jsc*m0SSW442QRCx&N<+?g`gAapK#k2<`!sX7eQQOr7KKsS`<@t_~3
+z+8<${ZOTL#Q#tBNjp0MiKV<tXF|{ykh)c<PAiIDLMT^;wJV^^*>FNjPXtW`^=>I4q
+zJx8pMF;;3o-}*7e0dzQT@D*t@>(8_5#=5qfF;A3z7-I}$T5MU>%rg(&@f%WymHr&T
+z_n70l(1<K@ST}9j{bW8}6?b-KjN_O=+j6dN=o@X+9p%{QZ-Y8+Q*pCpT{#B#qh7&U
+zS>RBAz0afdRlbKFV+4-)=UPprbD_(oc<^y~UgO5ZV4oN?SL;q^TX%YFdu=H$|L4R5
+zMSf8)mVg&8(Y%;^*s$xd&Tfj^c9T0Y3-l^*q>Hcr3;mwkwGVT55!O*@j<{Z)5oC-k
+zAonwdH5q#EScmfF>k{|XIS0eK*Jb<?K4<)a9F^-#>iaSlh!x!>RE)=5TgGI*DRHh>
+zyf9trxz&(E8%kNukvh}VM0RV`khz8eue!qCC--g&m;)!c5AE+Pm9e-WZ^~!5mvP5X
+zPoCV{+X=ccsY@0(B4vS{GC%fvDOn)4Px=%S7dTh8sphN3mN9e-{S{GzK7Iw{U#$__
+zhQ5^(xy?@D=l3y3wzg6I%FA;Ucgh$=-azzmuX(fGuesLlXVuwfGrnCjXcE4E1n?dq
+z?oBMt5-&7r7<3q7d(NR2sq61Io16{7Cg(t?$+2Ti&TMHbk21%H%m+9Tv@sZJa>s)X
+zR$~4dL#p5G7thsr0=2(b5ovN)1e$)i0&oqXuZ@>L#;du-UUW{2yDA{#BP4)RPa1ag
+zIi9DZPB;s7Mq*7rh}ccPv_Lxo;d+O*3i`=1R`W#2hm4gL2%P5TTc^2b$0@NX*8rcS
+z59Sh^bf580W`XwZ?WC{Rb&2_)zX8a5%`(2z>5P|<JBzVUEfptM##pO4+djyBGS(eD
+zjq$o<{hr`>hh<g$by8nte2g>NlI^o>h3`Ili9HK&m?hTw`^k8zK~E0%Mw_FCHxezJ
+zC7S&BHIyv)s-y+4bS8Vzf|+venb&Bl@mi;%4PJ8(WT3HfU3}mXi~Yd=UCbd;LHaPR
+zi$3guPG&Se0Gakfm$dZHo#b(f_fVz@Gp`(Y&Ruw3Ep3H++|l+j*E@7w+gz2ur8oec
+z$`ky+KNIV1Cij$EquwPbe>-UAQ>dSG@_FVx)obz7$>a-Mb7#rew(HtR$7TX1NmDoh
+z;1s?uHc&?m>c_p8|No;infnIwn8>(X>AcacgGGCa&v@0^i$CjEHXtGD-7xbijUnHk
+zs`eDX8*f5AsXAzbVV&y+bIzy5qdrx~&*blQ@!^0Sc)*#^DTZQRhUSE#LycteT-w^X
+z4=${iT}3~~Df$^%w2Uz?s6$c@$!V50kHitQIZ^8O)8p5of3tw!<B1=@lV+?7-=t`q
+zYj+Nw2Q9|gkH%L7RK9ECjTqnbRzAx8wj<eo5NpeCHQFJo*fnydB<}GrAJvpZz>Hov
+z&{T0fJtA6h;mByb5_N=Z>i0`j9Mj;<a*rN7e4mB&HA}~%rd&7u0As|Y?+@VJlmqI#
+zA8jQE(6577-$tO`@eXaUE#Yww06&Q5vu$a+NRTf7$;<P#;2oebv(P^4@qk8qA6Nd)
+zR;nJXjoes+^i^fMjC~V|3~@u@V)uhLRl5gbYquV>n>OKh&n((8hAxRQhPe@I++<mv
+ztp{RFTd@}7xA}M`YzFkHiJJiDt=<a8IIoR8Z#He>zO_6<%J`Rpxt2oA*D`39?gxFS
+zM>8fi<H|FRVXzpojn`eo*oGJv;XO<CuhGsm8|{KXqvS=F2|f}S<B*P<jDv^r%-i*u
+z4beDr^YVN!`8@O1=IOI^zb^B(=jroryuZNowr5ReyvVigS@>O<>#=zb@|+&IYqR>u
+zU7N}snyNdRs#~9*I~{ee%=Xy*y5+;t^)Vk7bla}HwKZ4OWu@}gPG2bV)()S5HJXFE
+z4sMH!fm>zX+7&u)?TS9~)@JFvwK-jRYiG$^qAG9g?Ol0mhmdDlE8JAx+AQX+4PD`6
+z>Aba!5lwusq%Co+`|?}K_JML=WR2@pc~5iYduf{@&0g!C4SZo8Cg!V|@<ec*%HvJn
+z=3uQ$9c?0W(W0Ig!AJ7VdOHVtmCqW+9EdXR=WNZ>{zkh$=mq5v)4momNt1sUWt^O;
+ziDL$1^G@v*FL>0M%qzOqtt2mIOmM5#_5^mxxWT3sb_(n;bgU_Ief-`K`vyv!2|J@M
+zjK&uMS4N}H2g%>eTH6X1x%+`nvm_n2<4@3TN*P1SBVLcr1#Zxm$DHpR6W3Y3;945v
+z_)N<+Vs?D}<=Rgr<2%MGilD7UD8K$o5$3ve%VIY>Dh~R!PAdMs547g)4#qx+#*0oU
+z{fM&GT;O;U?ja92%<sKHfZwCv6EOzny&sSM)PUyBi76V^sA(8!TEN$IFbBLkAN4<Q
+zJlQVgDB95g^PpGkBfnn*9e&MF#p_f2ojm;j<<aJPhp`SPLU*0V{1nh729mE^pK=2-
+ze_p-g)n}tbxXB&oCfg6h6b{Uzk4tO;^#6%YO2!23aOc%DmE!VypkExYz;6Lp{BN*N
+z4H$a>ym1fUTp&u~1)*}AvG?-P9_<F6@HpuC(_|d5c|zr|voXGX$>hF30DZEREI>L(
+zzDGHOu>CapwU;rr0F&pt&d$}_UX$n2qwxnil&|`;9m*~*^*Ho_bew1HWNdZR<rVWC
+zKfd{%E)Tj7c`;h7_OloVwASVPP7k)Y)1@vxS@OSi9g3HWz~9}<@G`w0^>EzCEt2uJ
+zjKJ}3&nOQM0G!vC4G<F{jGD|Nc3Wq1=d+#3-MCUZ@vNDh$^ASxeg~h$?oZ<Hw5e04
+z9`p?mtkZ(LB6T(`uUA`Z=X*oZrK8Q|^F!o?70VV9C$0;PtE;xkfR9%@%=PFumbVdx
+zr^mw3JsO=-o{2H9rQTv2p$U*(9$bd2PRRJFQxjY}He*U+op~8=0evq@EQ!lAL$Qg@
+zeyqVu4f=fTc1bfL8Dp(6*ZMu;NOnrsm3=f-AB|wcGJ!tgx9&P~Tpf9w7x>hcOm6pD
+zvz?I_E{Pw+ddRm-_tWTS5&BsMy`Ol>dElDj{I5E$)>TypV>IKpu*?kw*J?ayka&=z
+z=k)vzsf)Xu>*46n1HglsW6JcNCHDktOV33;ybqh{XG-Ro+$Hl2?Vw$Wc@l2qngM;=
+z@219xGRvXo)Jwe(@L`NJ>g9jzNJ_ocr}dx$=w8&3p1oYhafD6;y0S@r*L<}@+V(<6
+zGMC>l9#^%L!S=hAf#q(5et6c>_?Z_`*E$pP=ymAtW=Y-ex_Fg`c~K@hq=CK)&_FHQ
+z1cjDu0-(16$ToKLOvwHf7Xlw@h5>GtiZ#qw0*3W+TcZbhmUS!e;8r`r{4}6TQ@mn3
+zY5PE|X~^>X23prTWuancvlESf&LakqJ{6$8{erTMl+_ax1nJAQ&Yt6<y{smh*pTvL
+z4n&LnIzGk3kjfolRIHRf%v>jw6?{V*ZR$rB_{(g$e>f?gBW`+J>MgP8bJRacZ#iF)
+zK-0kzjSm}+GsoeSG;e`CmjijO@q~VE<2lC9nE%kL&iozqf*$hx&f`fb>+eNf)#%^o
+zz)ERfH_Q**ls*7nx7t&&wClT1DZa4!E5H}V*gFTmw*d#vfqYXPBVDC#5^?sDKLLL)
+zI12hjc!X8{N!r?vjw>r2<fTqK-?<L`nr$)n{C(VyeZ~Y`-VeGs8|(5nCm1g`EOkS|
+zhR+A0z2{CO_jU0=i#)K{{XAsm*;p3?gL9lkSUaTIw0lZkWil?e;{VUYlkJPp&;8sx
+zG-o@bM%KqkM@R?WlJRQqbhK{!^Q*89=4w7~T6cQ<R=wy~5iJDYFjk8CBJu{WsHYvm
+z|0d_dH?>#1d@uUdsQpV`fUGc^co4k8+49+F{E72vt7x#x09VRVrvtW2fZM0xceF=r
+zH^gkh!Vw1Zc5ofdx2YGLZr$ok04%;0S3Ha5R4gi;(*$!cLDI-Z9cwqFat_8+tnw5-
+z<)`>JuJ0dHcr^^;V7b(L;(4mfH*}d#p$z5wRgtwaru`a>>1OEm8={OeJC%DX%fDiX
+z)wA_FFs*Sf<GWq9)wHJ}*tCZ^qGzLj17q`?2GmO#Ej3S^BeomF*jOLeqG>O2W`kbL
+z7F?I1L~c0x5@h0C*8xUSj$(}F4eCs!ux2@oxy<~WXEAR%bM=7l*3n-;$N7#A@yd8l
+zlznB~?@xQ%AIt8ZtDSPMpK`R8dwp8&^=mmgl}qTask*}I{tDKW<*{@7kfV8iDV6VC
+z%F*E~>-?0Xq32{zSP&n6FdApB)q>%Wp+|3tFZ1Tx>vYc4b(uL+x2=&mQ~i+t{N!tx
+zUyps8ow7msq`hngX|5Nvvq;Bd%FVH6fY!yF0_G5<PdW5SKVbF_<C56XM1J%p$U+<K
+z+1kc-fzE@GDckbA#`C9x-$GxRf_7v+3{7t{^I?>0+16|BZ(~mRo^tJHL|U$8`39_U
+zuEB`JnQ6>#plpvJ+9J`9&<%_;RotL;&NA|M$e<})mN<$vvEyTfqcz7s4+5ks_waoB
+zGbYx-e$a*4z>V)PwqankO&@OBm<?-|ofBPQ`@&D!gvsxd8FUBr^Sgm6f7w39XCf^c
+zXx{5In2OH4ltE`2G@WU-lkNPUFfh$q9nzah&>D_$tK1t<Ia3WWp=dbewxBJ~ha}7G
+z1oJV0jw}ZqsR!+@2Q6CqWBTkym7R-vdhRMoXYCDGd*gpo=5jy%96URBk<MR+K0E>3
+zlyX8)-Jgm3M}^n+rSb}gRbFA4zd4+dR~UGin~_(T-##=XomZIm0a=%aI2ZTlNZmoz
+z#k{oO6&{(JmidXs)iI|tX|o93BJBxTbL-=uk+^kTH{3c``dC~S|D43D>w4kU#lVvh
+z5~tp1v!xB8H(qf+X<(Rmb-Tmz5~qUHTW*(riIB&NQ~FC-=ln^@TA$On6aP4kJ9#PG
+zsZqG|qn@}?qj2MK=4T2=6Nwalgm0lg8{_ZpOW{VAww3e)ZYchPK5Crccy@FCx7Z2#
+z?DU-f|6#26p~{X$efEWqg{1v2o>07-dpM)*mG1lK`-|bVE@>z26U5P9f(O-D)1)mv
+zoB6S=dKtT5=f_F8FR}My<)cHI@%YEd+!?5UI{6-Bdx$0OTD&g+PNJVL8#Pxr1%c>G
+z6F|$qCB*iF7UZCzw6_<@*!dTZQZWA=`UTn9VV}vf7;Aq5?YQVS;dbP_GItQ>ZrQkv
+z_U5uNw#TY<=Ib>(OUtI7;B0$6c?J5?FcNgJrXKSwead&CjXjHSF}IoG3pEaP<DR^P
+zeE+9!Dn2>8rb&)5m-;<*VDMh{k9r`_-Fi*tiL%^@GDnx^K)$y92$^S6ykJ-jGIxb6
+z&v}qKo7%S}J(qSO^qqW<XXR-xB3_QB%&F}~v=vca@r0rqG3Q(FIiB1%prdaen2w{#
+z#lu6*?wk;PJXAc{V@H#NK0HdltZy*4TJBu>ubp4!{-d_{`8fI<OPi*VVbdhdvA7R1
+zu1mg~u4SBp4&{?Y8wl4y8Rnh1R)F!+UhfS?Y%_ct<cW#I0h#xSwtAnrLgtvFtiky&
+zx~N{}(;{EWx9Zw_u}10%+YRe(8NVEOvT@Xj<o2&i|FYTCvASd&CEw78Vu?+B`HG%9
+zW$&2n<X4Q5d#Cxr>u!e}nDYIefN^>Y=j$AWaxS)S0uItHLcM|Z`ge|s_MaS6c46)f
+z3h}bs8!XhmYxJY;FVsFC&(FONSj&BSxd*Cj>hIv$9Of&KcJ*CtsXb5w^0K#Pq0Rk9
+z%8|C-t7SfzhLP9W+^6Mv6k)!k_ncB~X<v?yGuu*oc^#)}E4;uSa!m0NLtIsaHS3>v
+ztOq=Ya*Ru)%t%=N^r+}2FMj7lGA%E1zAEav$&2@%V60zhe@x^8A2_DdKuf}b6i!X*
+z!l^qkwlM16B3j%nmi8sV^IP$J1MZ23j9u|`pvAqcR_(hJCsY1e;88|B@VXN38d*M;
+zvc=Cxr2M$p*HqcLM>)5u-Vo{yq29AjQt#JLHW*O;9)^`=dxF`v&t4u+`u<RC_@iEr
+zKUN&6jK-5zeIhZQe09E4(UIQ2uks8K0bB=+0V0{aUwCx9ynaVjeE<KyztR6|{f(;P
+z|G(>Rbi)4sUVo!#vY?y45oO6>QH%7U=Xt{}pQE7iIilQd#BQ@kVH{tezY%?ZD!cm|
+z@!fQpgK<XUR+LHk9eGGE=zA2L==}9{$Xk<I+>0ue?-BPEjJ&BlOU<*K^p*F<3R`%-
+zwfM!tmeNo3Kg#IC+uHw#^WYPU9EpEH*@vZA56jD?E;fn&<hdT@Lp#XOxmShE0Y_d?
+z>q<ETeAJUwBxBFAoz$FjENfq<kI@RXPkm8+g8gSK*uOH5wvN}7@^3oxK=RO0(8l=v
+zJ^Y&jDh7v)@kM{7u6bL;9IwVX=-cy*8;`m871uTTBKc`3T1fgaLB}-ZH`&s^WnnST
+z#CmJ+e@%U{jN^r?Ce-4VVC_61=YFEId6>$FTo&{?o|~K7WPB|h&z5s2{m3*-z2Y>9
+z>t$BH;|nZu`2MEXQ?dFNxh1H(k$b_=9esfY%Cw0e5>GplNuz^S<iq#lO789`kUm!>
+zUuto`{pP8Ct}e_*f1v-)0go)m@VUDBuxO``RkcX@T{TO;tGyNfp3l{){}=jPm1g){
+zVco1YKi{{{)l}_sb&x(+TF;+nsPhps%v4N)S{aY;+i#}*uD(gXE0sqmG1^}4&IDZM
+z=<hH2e}doD?b`3^!XAEC=V`yIq5p>8)m?q~U41sg@9OLfzbh*{?RRzezv*{%Wrp9?
+zxW4?Zgz~!*%(r|BzpIP>TfZyrli|Lb-xc@1tQo!hu1@RWcNOuZ&k1on((g(%mCiNO
+zepmer<##oRepgyQ{Nm+zdYF51Z+vYjF8>V!PVIZOH{Rrq>&y3w`MIP`GbH`5u%@K{
+z6@9PX?csZM=)d&6LjR;*a}|BBQa1T;z4X2M=P7)zm<PJ2@0EP^f8cwycj&2oul5e@
+z?t8Te^TcmRyS8ZGE5=O(EFSj=<$E>y(iXR$sq$pg|7x$%<n95?Ck?1cd=ES><$sm!
+zQF%~kyBMC^;@<b!Cg+P^YI45yw<hPC|7>!K7?T}zt_nKc1klOK7=0R=u#Ta(qmGdD
+zzq;F|E!z{Q-L&PB7FYXVZDnk}6?%N!d(5x7#eVu6>Fc#?4fNoMXxalgWHV#=u@4b^
+zLm#h{|J5w+p)eN)*2{z*K3H9TQe8e+b=`chzV$(OAFRhReXs&4AFN4z`(VW~e6Z}4
+z4_2e{!NS;o_qy^ep-)FY8OJnYv#+SvPyZ_;Fvip6gB9rQgSG1ue6U{W!v|}CSNUM=
+z?867^<sLp*+fL$xbvvHNzn5$uK3wZk`iwPkk+y-6I+qgZd;|Tp0x5s3rD=aHGg=(5
+zw7(X3*Gx<KYelrb*2CIg>xUWsS^@2^H89g(E12@vs_x;hRW1Fs_I4(7clP10HNL2~
+zzt+A?e=Y4#xg(jBxd1$c(Zr-a{Iy0FDSxd8wZGPC?XPudAO2cLI{$Njtv0kdL7(xx
+zP5Wz&&h*#1C+)9Qnc=TBp@+ZLS38pJXZ*Fv$+jBp@fB)MGja-lE$bBiS`&NtYrVZM
+z**+n|Uu!?sY1_WEzt;YWweA_$rv0_n3y-_Mu)Dt&Y5C8!zt&6IUyJo*`fJf|M%I(z
+zuf=wm-)emA5O@5|#qI;IsCM^nT)Xv*cbhihx0k=xddstQ|Hh`Rl#Ay0NVk-~)`Sdy
+zt>Oz#?XSgt&{h}B@Yh-&EOy5aRsLE*jEnG|CHt55*IJMHUT=<d)}O>*Yy3(4wXQj>
+zyT8_^)Bf-LwJJ~R?yvQe)BeBLUyJxao78yV=k0cHe=Yew!(Z#Sdp_A;YXZszQO~ty
+zr}o$SAMLM2*@gQKz-j*<w7=HjPw>~W$lv09`)iE?eUR(J5c@{;@Yf2W&u5&W{I%8x
+zi`*R*|DM0rgrFMJ|JGltst<pyGeB#y=qq4rUoG&u2=2dmd6Pr`#xDYn--3KF0XR>e
+zi8+AZX!>hq_-c`Uk)8#rn+{eTPqs^WOZ#YDpnbHW6)kRbXp6fh!$)f(>cpDw^3j^m
+zmycE~(?_dO`e^O@JM{RCy?wM&vMA_9Hy^G26@B|?9sCb`wDwN=WFM{P|DN{Ida(~5
+zE%RT>Kj(=)e6*VT@X;#y*QtH9IPW98ihoz*`xPCEe+%(<w=%laRXXWv>7z7Io>e{G
+z?HT1}=!l0#A1jbPTB87+l%Lj)BLyPut9AJPr!)Mts9jIDA(=tH9{whOkKRw8E!IyR
+zQR;dD>Y$UPFBJW>q%Tw`x|F_9#1Hyw&7i-QnfBM>UP+1E&uw%{DSuhlI@BXXbG@DN
+z*V+kQw0CKfjOUrkzx!$F@37nbbhy!}%@`ket-l~Zzbx%LCQ^P`&C)N6zGGaE*>T2N
+zP5WmRFpi~|=y(IOozqZviFJn5HHxfy>BB^SuoA1ljdL$U?L&DXLl<E^`|rEF$pg8$
+zv<fm3*BfoZ^b6?eXA#6Y8IJj4-IQ5JR@BFb#2RJ2jP+J@5%eGMR?-Nb<tA<{>ci*j
+z!S@x8^iTPG#gxxiKKOGK<%t`qeH{^7QkqA<FVqo^=`$#zLB=Ea-ic)H&rba3{$9`g
+zhyGrqjcYUgz08!q*RqrPdrj2-UZ>OFD?HKRoMlyjhH8JW%TM9&wL$xPSts%LGV+wa
+z*JO|K_ZkH_eG_v&D&_ArHX1+2BL<PiF>d>P1C+m44q#7z?Hd4p%6Ihls;ubk?<M_j
+zq`%jiE`Kk`I*xDX61x%OTHnpzE7axhrD*k7C*|+;{IO*Fnv?i?eeWc`Ucc|d*Xud$
+z>-F2?%HOIK&x!@cj(+Yy|4rcF4$!)tz`NPN(?9g^y`ueV6zC4$v)u1bB=-eDbI!N`
+zaDnbex$0{AU=fz~_nk%HC#1==1#?WE3?Hnk_a@sH3Ei$4mOfad4a9ksOH0Ais7m`>
+zjVq`xqTiKAM2bl7>37BY?c>U4OY6ixzoesYKdk;4eppY^4~sHw@Y+88uu9N&n}_HA
+zrzEBWKRjZ#bKgHR{jiqUkVD-P>sF@<<1F2)_>!j&Kdh=g_SHxms$?$rX#7L;i?a6`
+z?MoF6t#xlR#P-U^)4o)<(w9o>I;J)LWqiMDZ$;CdhFH^{T)jVD3jBQ%eI-mO=gN5+
+z+T?QopL^=`VW9s4=aTc7@}YW~K2%&MLFGfm*zh7Y%VE5YE+49x@}a8F@S$oh?(RdC
+zUGm@iP<^ksyARco;{VV0q4Gnn?cqapZeKoB=W8FTOnLJ%)Kjf}sHS~_4;9x%Pamq3
+zta-Lb%bF=4Dz2e_$A^mYAbqGvXR1<qq4uGA<l|)f{l}CaODS*#yl}f(t98zfF`7mI
+zuNeO<H}J4sMmlWGvN?YGG37+p*#+Sz?ceqAmEoEg1(=YRvz|L4SMAdNpQEh%oCZtL
+zjK5~kjFdlB)vL+&h7_$bXFHV{G-K0A{HYe6!k>zJ25YoGm6hR7RXJ&GH(x5+R8#&`
+z*A{p8r}|sbfA3FqS#fuNsuzp?Z~Un;@oWU}?8QHo$rwPFpUS67r0{HKpLjNqc$VQ)
+zC2_2WPgPY9pQ@Ce;R7zc{c#$X3Nmr&o-{7~AQM+GA3J~E1UfY-!7}TBCyc=uPvJ`V
+z)-K<w6rQAftA6oHvR&1$e5=@3j_qaQ!T}rY_x7#&U50NJb<bN53rWx8^sN#p->PQ!
+zV~k_;&Cq!sPy1H=>?FQbuWH|_H$PVX_O$&CJD$v)f&NcV?XxhB8rH;9C<FOX`bsh8
+zD|rj#NOuhTVMsrk#2(Ulz<lm`W$wk+OlR5VwBOVt$G9IhEsi>*f0i#6eF@+1Db>Db
+zKIl-i^?L2J{|?(lxp<ZI-&u$CzwQ8Y+Nb<?s$`s3==SvA0q>yyPQEo$#sS)NBDwvH
+z&$GYvHsu(8!+E4H+VBx&(k{1YuJT7xHpgmdb9}i&+36+>DRb}mxVNuYTc)p9s2=z?
+zHSt@~o2SusGdq;_<(hB`U#<!NrZ3loPw?fUEs5(PnBmJsJJNdX%LN?Ude`yfz8uIO
+zsdF4D`Jb|5YCQyxLjM0)`EUK4I^g+b?p*Z$o8920Vqm^N|1GWW{W!y3+sl7T>y(i9
+zOGR)=Y2f3&{mHh{pDfnwGPVR`;u23cA59MWpQFHY+U!A#MhDip|Ed4K)1m$UgDL<2
+zM&}!47&FFu!Q099-4)&a|GDQh{*1EHU&`E{^PSy*Sx*^D$ydq`j55~idz6et9l!wn
+z_dpLITuOx3eMb8+G5+VtWUj}xFPKOBPjc_z&VP#b<;RrFy7Ti`SAn~o<zqJ4v<Xt)
+z-B>o(7Dl68VhNY)?00}G_Y0Np*h{DM9oyK4@7Rm~rtcVe<tWg?GVcF?9!|#^Sfq8i
+zU<Pj_y<_gqZ)n(Dati;lKOXJvU$*HJ{L9>ryZe`!fR(iIWcamlFMJ4nzjXhmX4vAZ
+zyT(%EP&S!yLiK%?w(XI(Ux~hxo=(O5gj0KTBI@l3D1VHjftJ#-$?kq=?8DX*8fVHB
+z&Qw9RRsL?ZQZ|48UC~V@ADZFo))#(!3ia_^$fpaM9Qqzq1r&_W*rR+8$VXV84SGMz
+zY>_nXfp7JuagTz=Z<YH2Ef^zYk6^Y<pEIAeJU%+u;wHEJvDov+sCU30b`&!&PX1@=
+zQu%NU$kBz=3AiQ(NdGhC%P{Bf1tOUoAnh$F-?Kk{#62eU{}%ke`6K0vmVaA|`=vL(
+zNIwL~VSvqil?z$!tp%h!6OS+l3}fPehVrb;uD3-y{YP>_3+(?S-~ESppA%ewv8nvZ
+z^c7(qx_Ok7YZlld^oZnd+5crOYfR>L#=mQB#+n~pFZ0$Aw-{S32lzMt&uSmxDbRDq
+zPW0A1+(sFw8TAKnUwi>=jtguPb5{<&@y?xw%3lOJXBkcI%QDWUc;Vo<7Wa!^X>tey
+z%TT=L?pa2=A!_6rqu)=#w-|4XdCwW2Y%=$-bFB*MlapjVA;tl(lzt)CCB99#0G9tv
+zUeLer+Zw|35!VQflk$}>v=F)=o(C4vKFFAaiP0GQ3fyzAkI#TVi3{<}7i^Yo^i%PW
+zrQg?O8cv!0%n2{}U*{U9zf~pR^(E~m!rXCeQ{s}@;0)010zZBUKJ*LV#xEh0yukPD
+z?+TR3(q-;VCZ8c5g@?7c&wW#^EAlSllPB2RmJ?VYbEl`qbaZ>Nee}o{_vvryeDuLc
+z+yBLwF4no||CFR&-r{a6WX=N4<pR41w1GIq?>8J??%qY;R+Qm$mSMYm_afeXpRpDH
+zOC0!;oNMC1QqX4Nz~qF_tabl@K2Ah?U+o%mbK45Qgs^-b@c1S3P<->$`P`SG%#Gjt
+z<oxgt=p4~sz17q1$N$%6e3RYBHzg?Ze2lrOT3pfu+U6xpxK;xVa^3<Po7@uM-ayFq
+zLnbx33%3)88=MsW*5jUdo5JxX+|$Q*7W1kF9&Q6Xb^iASb|K^dA9MZPWwhUqvj4!^
+zW`8e7e=pE|ufqT9@qg881;T{l;j@I8IpV$KBHRzzTOba<S|D=ptmBmeVL#iMJb;Ti
+z?hoQO4En8da)lg^`H;<hsSthR%w;k^Ib_H|%v1k3XnmESpF^F!u9N#zHH<rRq0GA+
+z`Q5?W(FeIkasM#h%lL)(|4KZEOns<hSAp1%J{(4y%&RDZ&2HtS7PlYqCiIZh7tg9u
+zFgEXLk+?1OM!@KbI~0u~efq~YlI__U^og?Bk+8}~o>ep7&i)T^kiLNYPST+uaj-h!
+z3odl&i<}jj|9_IR^*7)6<eaUfaXyV7$N!XU&(Zh9kB@LqUkl>n##=n?)bSbs&x5<w
+ze3Ku}D{pblR>lGfISn$8_(S#@GtXTW$aAylOBUE8^^bQku2t4xm5V1DEzHBa&*FJ*
+zBx)FeZN3*Me`CBW@Li*M4dAhddB)<#>cvhoo<&h7=@@;7KTDb?_g#*-pVj*!e8;nM
+zK7GEHIP_UDx%jw@>pC@lA$?YAs9#;jy!5#q{9Y;jK&QL(^ZTr{OKmI3wiel5aeW+e
+z=i*g?!Lsi^LR+iOB+lGr<2%T}wVSfT^)chF+Lv>+AH@ClDLVU-v|-(4XEjG`ZzN*N
+zy=uHCe$c1p$RQ!+9bv^}Zi!q?tE1*%_pAR>{PQl*@OgmMfJ?njZtfJBlgQ{dg}&vv
+zsdFkTq_6B^hxXR*ps$QQFZ-+Yn_MxeP*|JXoAJ#W)V<%+;_e4M-(RHG68(v2Z{Nc`
+zw4Wy1FF?D$WlTSz==zhGYd({Hs@87z0@}Fc|EkR+jEftY;H2Ppn0~q$_mp!PUsdu5
+z%;iJ)zZv~A_I=UGkvY9<9p;yO;^t_)1pVb4FSsX4JInT5?Vn<t8%?Y~0hk0s&RKxT
+z3gS;d`Nu9O+|o8t`XNQ*zjj6YQScD~y^(VF4XA@<4KpHT4xgyE|L~S*Um*s|JxAjA
+z*ta<kugboDM&f}Q7x&aN$07aE<QR6kH_^u${2?(%@rU8s?>B`f3g)zDMvE^e&gkdF
+z_iJSQ?`YiId5z@d{NET9O$<DyWhSxR|F+Jdz%l;yUB;P?#-+}|br4zXun(V;KEKm3
+zwh0dV7vY{X?JMY)VPXvE*Kg53`pT52&S*p?)G3_X=F%RRnga=c=;zF5y28qHe}Z@0
+zK!bmx$5*1i{{wjsp8r5U_oV6tZj+C%!Mk<(U8>FB@Hy~qCTKTfLCy?x$Gg{1?)LS`
+zcD{RPPWPDH{;0~KKv?|cUaTwVB|l@obEAo$$or7<6RvsCmUqA(td}9bLwr998bA7H
+zoyp<2_U|kZ<8gKTtw0>WwGCGzF2Z)FjGxuwR-<j^hb7IDXAwemGM^{yHu=`hHri`0
+zfQ&Rz*`^oMCpai`iHY1ZFt5d98nE_joqtIh6Ya{$I`1!_kuy7!)pE?BRl)PYCm!O?
+zZti%rIUa3$W3{#?SSw|k%Prw}&E0LLw-vN&ht!)smUMhaTR!Sd<+BV(-|<@e7;{vh
+zjUdK6>bA~gb31q&&&h<Fb<E;dT;_+AIzvR}NOir^K5a`|YwFy`2=Xr6-$q;m%s;2^
+zbIsfB2ix#0xJvnev_=baTe-(yEn~Xp)!fb;wo>1bdlSH;J6yG2O5gMBz;3DQN*_+<
+zM;^1Pjo-dcILTNA^<8-o)PBJB5)pmCeMQdsjd7MS0uL66K;Py5!Wh)1%Ee0B!1+_>
+zd3L+nH+9g95>|CKbFzLG<9d<(GeeGA>o2>8sFS|=ct4Q#YxMP8=@To)%5|0U6F00H
+zNeB9=eFo}-^n1LNb*Q$Y2I|P6j?ZTwbG<5kHBS1Acf$=UgtZxz^|CD6Bb`<6?v?d(
+zzS&owdVcW5KNpA*NhPyv2(`EyYFb>%E7|7CHbsvnOFw1hH@!^SL>Nb%^UT~_DS1Jj
+zi;()lGRYH<N*moY&f}m|E@j^P!pxr)Eyn#o8SB$p=Eqgaer8+qvvaK4(nI%<$3^8g
+zz{|w8dlb(j-O9GuuZWvNKe2Gc%@*_9Qe}5<FA&W-5Bvd)!>4sb=DRm!?pu48K>~=j
+zcy?k-RLNDjk%in3{*UCUGw2_$c`|55dv184%(pCR(t68(BTv1WOzykwzEjKfj9p6}
+z|IM(co#%6W7&p_qb8Qa1x5XU@9?UVT{KX6HPyJn;hxU0$Cl=bJyr=I#Gv%)|K8Mi9
+z1CO`3x#mK<OrF!Ib7f8t@|4iR|4Ik?iaaBtV!u=7WIiun4P<_Nb1D5?-{E?$mN^1)
+zxi^Bo@a)?Nm3u6gGL?_K(%OAsgxY@x+^cz>;!?^emv*gL;H0?+y3~AWPy7e-oM`&v
+z(|n%#=DiNaF83$7XCIPrhv`e&PC3Kcc|f(><hDs#J1ya2KKy~OJu)Gre86*bSvn4J
+zMN<1e(r=%73h?wb@^0W&l=+0wju*I<+bVG*;UBxI&0nN)Ptg`H>!CdL4@J{_5|*#D
+z`Aq0rQqBw&dsDOxI_<mY(<9QC<S~i2g`?`@mrA|-LD#G8m(UAynRn2UXL8?{bb@%=
+z{uNLA8pewL6ZjSQ)<j&ynYp(qntpU<i+gmuvN8E$54TlI+?kOW5mbKT<iR}q=xvQM
+z-@>4sbAV&e4|BB5C|BnnDbVr<=eEF6<C;nw2-;HLsn&Bc1+Y`!-jMKE^`HX{F4w?3
+z+J8b1t2`w5?y%IqSIW5ja;~hEF5`xhjxi63$~*mV+eEWT_JjIe73wgUqZoSY#DLQC
+zo1x1ycASx4l(-XRvhi+i4RF9*?$X92#B~n7DV|reR`yBQkgse{kvE9G1g1ldWL#U6
+zi7`*pjdGuecG4$m4Eu?=u!j|TF=s2>VZ-w6q3Cz)LS=8Lw3^)Uma-@PN%Djx;QK3G
+z5ABGtCbtD;SFkK#83e4Wa18@pt+}toorCA|iUDV#ba2`(azsRqXAQ>lgyaEt*|`|^
+z52Y_t#3=xt769hZmsdYdoyw|>7XWfVjlWp+ake)PZ4F1A<D*ToZ`_-rk6@*xa?w0P
+ze>!Vf{QJ}`P%hZoB>Tm2E|c>+Ik6tUhljPehauxLe+*&hZC+rP1OD^qCuXm8_fqz^
+zF&6GcaPJWRm(vH5z8V<A_>{jP-sRw331crbH@QOqkHg<pIAa8(&w<vxKw4v=4Nv~*
+ziO=(#JnEPy{jG0ObCH@Gaig3+VNZ4poA)>HjLsn1mb}pgc5bseJ0NqxS&e|n^0+Uu
+z(yc<75|(LQVCU6<&w&p0m;5*a*{oic<5^ptbM?}$iZ$SGR_9&5B;%v6<DP8pUcRTT
+zROdt^%$PH48=l98;+?&~_QV$0FG7FF$9Mx6D`7{N<w_sK1$IA6>1ZO-<eE86Z%Me=
+z3N8oAJnbW7OwEU-AJTdBy+Yk`4<y58MLcKj!0GG{=4B)OuPV}W&bhu3&qnL<>|joh
+zik2>Xm`D0jkvaF16W-VYfw}_u%~2!2CTf(&n*9B0qJ`znO{I0{2lWEReOKeZiR(^a
+zyaBHrHRf4Oj05d2h((RLc2g;S3%O5A`q;);C{`Nwl)V?>9_##2#A@k=qtoP`ae5Bc
+z;eLjdUN=)YPTW)8=67h<CA=96?s0jBxkbVoW3l-^#u8^a`o}Q8$=*K{NV^hgB4r5L
+zlLkUqpv=4fqW6+pR&^$)gJ#aeH4E34!<|XWU&G=`4!aD$%;iyny1#Lc(lb8O6^|aY
+z@9^3K<(mscs?6+@lo2SC4_$%f2BO?8J<9p)wFj6_n{xWzP3iikpQOIlO{zZT-6#P~
+zFAp_2a{M86zJ%Xg&2LSWuY*4B%-anRw3jf~ckp)yQ|(o6QfDzIy$QW8fVGP?ee?{}
+z1^(cp-)~^N<6~T`NW>064xDAE95j?C=^xB<^*po5vn@Uu3q#4=lr7KVc^SP=O5gM{
+zuQ-=`Ge&eVXzi8*;b6Kv^`Njk%NcXSI$sU_9V+Fz-G~1dJFL$`e{jZ*wr%=LNPF`@
+zv}=(b;dgjI#iV9j59ZvZZo;#473jyA(8Gq}f3D@>_@yn!GRMfAwSaAXNHop=0_2i2
+zdG^k<i-(v^rL=)u!26(GYzCW3za?XqPD&VoV}9_HV$dh=2wUawx|7c_Hp|0voRbpt
+z$!h&vi~En7p1H5>#3XH({~XFuhPsJ)!*ssi*C;n~KMb^gbfEh<puY?voi)ULiA`QH
+zC_s3k+;s5W89YmB?Q$*Be)DDN8_sn}-yfDK2V8z5V+icT97Lq;dN|7bTE=@@?EC`n
+zDmmBU8;Pg9>f9~i%5MqNXJiaERTs}&{7{}b-zoQ%t-wU-Tg-Z)H!QAaKF-)Nw_cw+
+z^fDHlE(2L|HSr)HZRN<AK@D~YeJ;>v=Klyh$!AQYjCoiq?MM5hox&2_Uk@c-^@_zt
+z0Qy*z=YW(yG4m!vURq55uOU(wL?6(Xu71QCZPH#VHb&-^`T%{&oZp41b^s5{94B$(
+zSF#-ivs63Gdo_>k2$hF}?PSJ(@QR3S3d&hyWMA1%4P`aP0|H!!L;fNDGFDuP-6Z{o
+zs{zyExM-(L!#J#lxHr)Xe6N&ee7>LfE&ey<y0|yNa}h)Eyqvy0);cM>cts!%WoXa{
+zOZhAAN0}M6lBcp`OPuW3j)cfvbC5iVxu2{Gtd%iX^RY&U=kMeh7SO#JfX~bM-gX^l
+zEY~yiLGs~*wG`!tLIyzJm{Y1MuvEs1Wlkop;cb_;_<iPDzt^f0LGXtXy=VN2q3|>W
+z9IXb9P6(`UM~8r`v0c#Tp$i9Iav58GJYbPy)jRa%S7!^B*p%g}SdS@nW+@L;HY=aV
+z3qc!*M>)_P#*nsf9xz9Swe>(4b^X0l!MlWKzNEZaonYMhpRzx;<k5)<);ie_=GI~?
+zkSftE$HsF+?1R8sA@2GD%XO~ymt6aj^f<?7jMLHM%x5ei%E5tMvQG9P70;IA;r!EY
+zf@88Umdc>=!C)LF5u2f8pw>x_(HbpIGPig*>P@n3lfTz<-_tu2bJW><wP$*u$?uUe
+z=(p(?ap82Vqa?-&S<CCex2p}>t0yOxXnY|aea}$mvne|nHT2sBO{>v<i8Tw0Wd6F4
+zejd`fN<;ID=o{sU1#Fg)aT?H<^Fixo>hZI@*Sgvv?)};$R#R3iuvf(KttU&K)vZnp
+z_6X@`uF8&=Wq*OPe(1|L8sZthb%(8Ud+Z}WV1C=_Jo{sflm2U_q(ADc(`18wcT+%%
+zHyz-6=nvZ&{~}p4#G#(aGJ8DYTs|9a(Z68Jfz-IaBG0Nbmdo|U9;uUF4?W}h;>R(E
+z)B^`<pI+)dj9(<oJrWMNvffE?jQiXPa-Fd+ljx6ru3>IGV3@mf>;`2oVZC^lJ5ZLL
+z*6mCX<KL`7d$Yj5x&E)dyh-|gwPFsle<j-UZH}M5$ZOr2KQczi5<5RuYqRXC*nG(9
+zGnLH|>-k&1hm39Oyr0r1e49HY4mq>pb$5h3Ke}1Qkp(WthgAH9x%o<m6u#~nu}Dz>
+zYx>j1>u$O9Yu}itE3T!#Wx{`clT-ZpCTB?DU-14f^2`=#D&;=*VL0&`^pyL3x1-&X
+zjgW0YQ_M+CZt16$%s<%!dEeSA@#6~~F^KsAM4&;+l%wd65BO|0(m8QSZ@h9|rqQuC
+zSHjF>&UyO%UXQt-=FOLTFxP8XdL%4U_?Y>OwmhCk^@w8H=H<NIj(MUllo8x`K;iaO
+zc_x$ZY~T~)h8gr77S~E2G&R37;;-S|grLstYwd0`c%ISPDDAw4imS3cU+x!NpSaRc
+z{X3-dR;Sv&1Z|%q@o?h-;&w>pVF*i}2l;6a?Ss!UeyUzigAMgvDea5EVUxaVu`LHe
+zA^OenyQy)?P=*M{Kyx-?jcs3dB6)~sm%=ix8{-0@EzsyyCz8*EwX8sT30=rJl1yGY
+zWK@g$`@5BVlAR%+yn=d22e17~lT#jC>dNy{I?rX$ract$@zB3OR^Kgk@M`u$#VAgY
+zKS{o3sazq~b|wdr220+DHC2K+>TgB8IT>-jNf#?^MdwMQcs67lzvEeZeV(us-xYNG
+zu2#`gE$gIs<LDmkW#hY?KH3|i+anJpef2QbLIy7-k3X+7Df1_iHe1$Gw-P*0V2$58
+zSmk&pua)^MDSM#&Ftj}*nBut&{}IpqAXo9+NoaEfW5a>(cJW-mb13;4`do;*XKKC`
+z;<F%qAy>FH;H@+J;H`z4x1No%)Ae}~PfXa%)k&I4`uKCaE4i@6y{r#hm~w*tPSw&5
+zV_4@oMvpU**UDH{(ZubYD&H_^{Y>&=>nta|CRN!gmJLS}*Xy#RzrV+Lx#qEUihqm$
+zL5CB+!EaFV{aunS{IZkrB&y@*V;u&&=x%lV9P$QpOE0?1JdT{VV)Sb^=8e2~FrHP?
+z#?i+Z2T7l`X)>Q}P{xOQL$1LR8OK7#2s$??Wi8NnYp1JnOioGUbMI2;nxs!k``3Ec
+z?M2-@-|6WA3&5fHbmq<Mf@hw34tiIN=b7VIe5X3TOLQOq-$dWz=UBL2CjuW?j=a*;
+zwC5@r6JSz&h@t3;j4u$_a$rWM@)aa~;h8ha<M}*GVcu+e>}W0bu^3y5KD>rC<A9_m
+zRv5ZsHU0EfQ~omPUx@DvbF8CsoZspm2W>2{Ywa*(o^N(2IPWK%xjyxt^b4H|j)3#(
+zzTo_e&NQ6oLf2i|2b_Q0p~iJYq{sRobr!6x@u;)v4bUyx7en)H=Y)FBwk}FNuUTln
+zgy#*h0&x)6k)L!X11FNn2^$JT)vpS~^j{W;j^_)+isuSM%`XZ>HLmA>ULaQCnujZl
+zYdo&uxc0Xei1oOdam~Rs9@lVO`M3`MtU&C>wE@=}ToGI|aZSKA0#^VR`QEn)BkIJE
+zK?%!InJ|*Rq21+;^E(x;0!EiUZI!tb`hZawFpA;bm_FWJk9Pwlzw9ojr1;khfGd5G
+z4SVB(%zoucK0Td&603t5GSO#6-!c)$M!buiAZ|{IukD(zEeC!J_|K>)b3fHb{}}gg
+z4&D`gt+zhS*!hikm)FO;Gx6>zyz}+(ZV2AJh<7Ju_inEg?{?$ehkd*&=t$$w4_{B?
+z&zKWwe2c!G#<wf+e8|W$H_=C3$B!$#t<Jz(+TSLi{HuMG|0l|a@or}y?+)VKT)g{J
+zAMfJ2oeMMC`83*j3gv${yEkn1p!|z?_p3hM{T1(a<K55tXy=c3_cq==-N(Ba-uW&p
+zb06>H-EZ)22;Qyk<J~Xtt`hH-_wnv0csCL68vA(n6yD9myZL>*TZ?z|@b3G4yn7h$
+zR^Z*Y`gr#c-mS;Gnm*nw;`prdUE1&hJHO}*j5Rq@Ka8n-DQ6x}wg+}LIkfrtv<;5F
+zY|n=%--jI9)eNZ%Qg(b<$~`ra-{sJz%Cm{w3-iY2w{c&V`};B{9{1&94erJdM0;#N
+zMEbVTt~x>Yk9I&2T;`UD6|z3=>rSvzF%MCnIlqlQjEvP$DVDqZ-jcRj+GDDv>`Xi2
+zyQdlLtmB_ao{{Dr`F#6r+M0g~S~x(63D1IN9!@6T#zSet#Q1X<?^MRNr+tTeY#4iN
+z3FMz9_ZJ^3dnEHB69(&<L)e<6;=$36LfZ9rN&euId(QNAi5kLcEcJ?LA^SN`_OrpR
+z>oN9znPU%e>?`{iJI`x3oMh|`Qoi<TKcSz=v9HV+dxISN@bv{^2F5<|r~ld57xx%@
+zLons<@sQ0n=bGG$X|U<X_}T|T+R1l+^*<X^&L@oNJ0}^_h@TXQxgg$i*QdusnbG=K
+zNW1ve_&t2Z`ESX%s$q3bj&UOMBhU$J*18L#^vi!(*`lGp=LwZJRRmVaSPt|FOr5*G
+zZL{)W$_+&eyZlS$)2~4B9hR+cF|^;?0vQ8L`r%`&|9B<kGj13EQ~Fvha1WsWgy&4a
+zlj|?cJzKyu5aRyyS*|zSVEgO^jz1>P@+DI7H{}^M$S2$M{%^MODU1&fs<P$Q0%st7
+zNliP!vopU>s&!1*?)@?NH*mlZewE{zx&Y^&c38kCAM?*Rofk{JH5wnZAG$qct}M{v
+z3%CysU6T9L(&il;>+rnT2*wJP`N{XVUb~Jsafs(x`OdJfbr`$Sh~DJpi5udQr$#78
+zP3QhtuE)Ab?xz+6qK49&MK0&qYfW+)r^E|=w!JF`+8!ALjXrld)U%jhUD^xkq1Voo
+zx@o?&)ilKNnIFPx+L|xVYEO&53^^k;j;uhmg5zY)_aS;e*r*xr1Zrs0<9TUuDBD*4
+zJ_Y#pJjSH4?za1(pThxb!bQ?a`m5Ch9itgCgGrg;`UGQ;iRN8?=#zfhzla0FC2mZM
+zqt05?S!<@?#XQBq2I-rNcZDiOZZ+DU63;Oi+mSw_Q7?6r{_?!d3>gbRo>z`dbaG@o
+zyFJp6m@r{q3()6XkZ%J#cW27EKg2oUJI)E`&&7L|OO0tOWZvIO|JP~p-#}*dNgeh^
+zp2xHq4|cQeSDx-yf$o<f$A!7pefSOc{(JQCBdK!)dCpR`kG{~?p#|+7_5=T-QyiY<
+zqF$%?$fWqEfoHzJRq{+tKMAYTrLPC~<8!3X&(f6dN3KuCRtj-Hel=lz*spxZgt^bn
+zwr;k^Rj7EoGVU<ehA%S4lWRo{+G{)&(T!;PC2vh_EE{zI{+BXNgs6#D(5I8@Am6&h
+z9%oF7w<VL$FeVgnJ@t&f&0KF;GVTg+AWR&X1lqC74_ad+@jqjI6zaH~peMEYp=j+}
+zjQeG+kz>F!1J4Zn%9xijzOwdhAv}E0O+0#h`{@6O|LMEAnfs)uoA<Gd`skOy{;({+
+z;~0SZt8)Nj=8Gsd744=k8EMwQ0DX|^?0%ptzmAJT`P!fCC~4CV3Pkj0oyql}7xY0J
+z`-bwTB;LDWqum(X<c$4mlaphTS2Q|2S7BVnT&Yd&wCj!b85wQy+(~(fvS((?d9IeR
+zYkblVbg9es_xxQ*KOvqiOT{u0)|OJ18IE;o{JqJc&sdJ!cdcU_s6#&V@t5eIZ)1z(
+zz4Rl?k4ZmAMe9M+I8O)hO)g}4Z%w0pjy$h3P12tn{GO)!L0_siueaT>UX^>1hIO0E
+zXLsNkeQ!RHzCXaR+TR@<VEG)c`D$DFSo$*F<}&_I&u1+EzVv}m&z~Bjp1&jg$htpc
+zS?))V&*<kKJR1!<-dtH{KQS~KuPekwT(jzJpLMJ44ZI3jX|iJk)c2{rt$3<H%>HU;
+zvKiN3cI?=3c)<B@&BeT}V*L9nRlMw!+>(M3_eSproOWEq_}HLJH4XOt5>7WH*3qYC
+zSTvrCwbXiAiz{P>gLe<N)VU)1YF2`taxX6^WZVxwY5988$GB6oE#k+1dH$6#RJb2N
+ze+|YjtZZE?_Z7-P4{I2kA9SQ&<gqsTCXL`eZLFAkCxh7M$p&;x#+L}~b{PwB#0KES
+z=x97|;EuR=__p{`Pe1!HkH=na81`dcFZ#I5Hb&PEGgdun4;}ra&GW^py&gN?yv6nq
+zb}`VNKv?>Fk;kwPv}N&p=|$9M(XW1i*JOMJAnY?j%dg}&Rx9JxPl_9@w=m}NcAsU-
+zdGX?x`)Q21!0~a7mUFz8vKezcf0jO9GZJT{#zX%%+9E^a966@pYD}Kd7?Zc39Lq9}
+z31c$?%WY$Lof^~dCv4K9C(Sy0<XIS-$BTQ77qQ7*V|%N|*tU^IfHqjthdb<_OCC5t
+z(aqhJ8S^iFD5uJO@qE2La?#Ih>BswOn-Q!A-@Vz58q!yEkYV|qAH-VYULz70)~l!I
+zhOcxa53_DB&9?H@H{wcX{YK*al~Ue#Q?7-+-!b;-tI{ugs*@j#8vS%XnBO@IxH}-#
+zkH93J<#kPu>PHURO|3=Nsn(;ab92Tz?fH)Fkq_oW7R`z5l<}*JS4HE$qOTw0Hbt8J
+z<i$a2mQ!_RG;RiNbxMcU#Z7C9GwRIfB>Eql0lXVZKZcu~(lhJgv@vjBJYX$%eXZ&|
+z{&_jk_?Z(x_Xhqs?i;-sbDU>4V~%CqJfBa^@q~t9#)il2p%b36eKH0}gUx+D6W^UP
+z5O}yD7B_PK6n{*3Wt_dGd3o~tyw+yh7+5<jZ}f8eyn&C~^phAZ&p_i_=qv1}nX~q-
+z5*hz)vYlsbm3vsE#q^8n7pS&{wOQ^H=zX6!b8b>D<FkIDN%B3P@ytU%tc~%lYtQlp
+z?=+3p2ZxPsZ91z8<7DiV^UzN*d`sLI{pa{HuV0RFDR8(M{gm-j&`;0wmG&_7a|mMy
+zhHCAzfdA(Z|F><8dj|d~zQ*v{kD>gs{CtW3`LU%E|MM}v5x{?MYsmIkTjUssAN^uC
+z%KphQwUWNgcgW}Zi5Y5KxaZl`e&R;H8<y94r^&e;A6Q#D+FV;&I67K5YEyk->2!=c
+zw${(wq1@9Q!8w!T*@5wF#&~>vk7vRPIiCDLtvwXqoWpq@z7g~Mr!E+*;5V3O`3>e-
+z!T|G}!#zX#tI4w|lhNNDa$G~u2RXJ-b=TPBnIS1>am-WI*cg*v&k5(F5^%h1v@AEQ
+z##DKS<}ijOc<riAdEO$i5x=D<W17I*k@djo>CTXf=p@>ThHQ(*17@>JTpdQ7%h?<^
+zhHr{Dd;D??OM!R9IU$zGu?vjD#Mr&TTDzR{i1Fu5-vT`UQ+%c2k@MK>_uG%*JAX*U
+zh4c?!W}lT41wEGYlb%O&QrB2zyk^ibIo8l*HCEj7%u7F+%l=NYVzewXY&PImL*FZm
+z@hgm}@ucE~t+NzAq#Q$Ci+CLXzd3vYx{)dQj=b;3ycsgb!Ok||RhyI@t%%H158ASr
+zWj)-_(sDcXD#|3RcR1>0Y)83=YpPfcWu3|P;ky3e|3>}8d(=N%*H0ck3-$AC`T9P1
+zIDKQhk*M^sY?eHHdV>1nJjuhS%N##B;Ndyo;dA=p;jOi{86ckm{<Su_Gc*t9nK0@D
+zGswdOFLm+o@+fc>>zsZd)Oln~_nODrN}|l8)+Fa`ICvZPnXG2U2pQy7Xg)sHpxnMz
+z#>4lAUXpzL>@Gh3NAU67zWMmmtGoF4suUkDd|2{vU!Yvt-^s^I0&JJI;YsmInOlN%
+zjkX!aNE7>HOlHl;33p%fFlqM}&==&M8(`0Ia7@1F7o3tP#u!!moE*nrH2)589IYw_
+zi=QzvH2*%ki+^J*-rT<VH^<V0f3HgMZ#kyPU1NHy$C$S3b2zgy`1Vtk={c{{d>g#d
+zz#RCCqz@T=;ZpqDaJ)kwmi*gin(pI;8T?y-e;3xqhc~Y+9WLV=Jbe0a==lcf8WFs@
+zXoS_TRPuj(A2nLzKC|5YyX4{BpHUv&BjYK7ck6y|T@xqBzXy=#vk&0iEI(qC>cep2
+zRqzYW09~KyQT1(-e7pNIw(+9m*N?e5HGfz9`bW|DddaV^OJp}Q76SS89liLqr#U)i
+z)N=5`z#ZNAHF0Hx=GT;G>2FRNe%@%(zdyyj;MvWF;<d|3|Gf0OUMlfZfM1)y&wf~2
+z^m8TMJePcJ!{)dcy*>Vz*O29#$*b{gUaN{BmN#&z4Vl0m0oa&UwdB!;r2l{F;?0zk
+zbDK49ZhcU$FP>$nY}LFO&vFCT%lCXn`j!hmP-&7k-(`Z%468Jo&XTfrj*=l1Z~oIK
+z^X6>Ln;FXrxZO|k=IxR<KdO22qkZw_=I*>XxApoinx5C3=FPc*8@qV3(ae5dFL`sn
+z=DSSJBgRk)*pwDs4Bot@zOWK}*=kih`MeZQ-T)aR&nID<9>-(dcyehr?OWi>6Vy0-
+z(>KOF8@9(+=7A^UyJddG*ZiT!<T(5o$5|XlkmJ~q9*3Fc!=4O2oZC9Nix1~%_!IV(
+zXGi0gT&(yoXrns=_%&1W;UCGp<!It1^5KighwspQ_&UjlNhgQ=k$iaRf5(ScDIDx4
+z`S5nhhac5^_|boZ59gkQ59c<g`7qDg=Sn_&msxSK;=?n*hr^l=-;J@Yf2=?}ulex!
+z*`3J}$Q1#|*|dLp$<ql($l%dfGvhE18mMDG7YK1KeKwOK3p8l+ffB1h+K9dSd_VPp
+zRn{7pzUM;@F9$DLfi}Z-iP<3ixRZe_dDe%v>EL>Ci0#rwFc5814qzLozv3)2dZA%%
+zu9SI;YiQq#jN*QEzV#~TYBA5CF-G^GC(mr<-q)ZYp54UwAozU{zb1Zf=Y8N2nREQ>
+zwAtxzN62$EkGO$IlZ+v=Se{9GMEb>Y55L4*=?=73x~aZgp!-r{%^&qg^dZamX5w^d
+zGkJuxllgh1@6<--a2C_!3U&(^+imd;%nO2N(;;V+pw59N&)4sE>H8^dV1ZaA=d47`
+zAGJ)^&2Opuh_EfsMN+1r9ieBxuFmM!PxZI&$+Jfo3+mw5IL1HX*(5<&r@yb&^LVDr
+zS;Tpq?-I72a5O=fK7((1ws&?$d*9Y`!FCAyXdmUz%P4<eMtRQ7sy@n}pHcpE-2X+{
+z)cid}p4+3m5m03>(PbCNb8wGH8&_)|^#fmJ`B`Z=7yS_RKE*wZ9%appzJxORK1-jo
+zq-@H0AJ08GOUhSqZ7W;+Rhh?Vdi>60@)PGg&|}VP_4%yx!IS6yM94T0^Jufh``_w!
+z_v+{0)XyjA=d<<mL#XHL`q>@&8TvhlaZS!by|?IR=i%9Hy4;y~K0`kT4isa&rDx;)
+zm-YLz@xEHW=h^S;^z-xZ{964S@E<fuKfi$f$@=+7JikUirw`^>{rtyxeuaL1HJ(@L
+z=M(Y#a!D(M^liLIKVORHJePiy`y_yMd2176q)1yC&!UlDy}U=Xi<-Ui9I|0u)fFSn
+zLmM{AmhZgAIr`A=4rZA%?E<UL$+k8pygR>W_s3dz5^`7VB;}{ZeWD-jqaWhbcvdhv
+zlripQYyfkSlSQ4*UTpJ>uC#SnGu>h-OHXA!zH<wp1CR!Dzr?WSDPLKXkuhSem)&I7
+z`8fKYPWFR#7RtKJx}sEl?fM)d>brEOJbPb5f5SN6?LZru_dH+u$E1oAb@cHTX*)S$
+zsQ4JU(TD6xd3F!|1x!9O!XwZ3bARdr@VP5-PZ~yej==p`zGs|g&|RL>>u28HH=OQK
+zdvUZueHn17vaWIZq1}*`=gwQ&;!eap>!`*(WBk)cw~Vn@1AAPan@Cz7=?nj9Jfold
+zNc{d}CS#q9ar&7pZJt1Ln^(t)Wo(!(|2xR$zTh&clV7(-`H5zQ!?r8W<uiUCW5?ga
+z*ouJTEz~0hrP_ZJ>oF@M7J`a_CI%US+uc1f?!+YUhDpUdQ(A2ec0<9zE}waW(L%O&
+zSw?$*Iz@YoTRKm)xZGc!C(q(9w!IeMA6RTNPQjIHRP3=4HP<*kYoVKp(@`a^aYg`M
+zv)@(tet{MBzIfp^hRTt)&=t7+y6i-hy+xNB!E%+?7|VG+|Dgi0{%4)Zoe$ARs5AL?
+zYiDxD&(xVt;=>JZe9`d%9}a(>d%7)cvxCiYtxTNB{o!VLUViVhE$--1c`jqk5r5{E
+z=8-SNXIl^WZ<l8`9|a#RNwnhsxn~WQcGS=0h+I#o#JP=U3d4EsT>oH~v}X1jqTSQ4
+zB(cGl=UP+qO3%dmd9v-*^4yw*cFJ<ZpxJn~s5uWZ*y^@M6YX7H;xK0UgwUhzSu=Sy
+zbfx=+?+2Z1(9Z!fN0UB#{BN8)mVSl<P?v>%*VMaS#_B<RDz4dlckb4~?uP2Y?kc?Z
+zhi2Q+>O7bJmHAqxNy#!o$8({tM$||6JnDM-6;l=%G$H(`>$4t~aT!(ay#;O|_s8)2
+zzl~kBsz7YF{DUQ5Bi$JPxfZt(^G}@0j7=r?dBq%_M=D1DN>>0!qrSmz3g0=Vxut_;
+zey%eDqMc*-kU7(hZ!j*_;tf8=aoH*LYRU}ukQUdj(!K%E#al5~yKx^nE6?3If^)c-
+z_Kt+dTx>s2d<g+ASog&9r%@(?XA`I9xm8>9+)7;Qfk*Nz3}YK>8gK(?b47IN(`OA{
+z`BVw!->Pe#Yc5~;^r*or*H0b1(o?wnkqLg(#qraJ*_z*M${2}uV*RMW^T(s!=9zhJ
+z5M@T-|KYgGahbS=;2Mal1Xlo8KCV?;^4v9O$A|v~`sh6zjptxYjkhZQh<>_m`s74W
+z?pgX$0cM7H&o#|pSDz<fENq|qq3C}c{ddt{_TNVTUG%@pHZ$?UWzrvpXV02T2D<|R
+zlK`%#0RQF^)rUowwYXo^eei<zNuLL?)SYNv<4k8BoLHS(0DL7Ko*2t>`$Hyf-h%c(
+zlXLVL01;T@e)%0m6G+c@=ZoBOz-?8D!W|<r(;guCl-%pz#~26wG*4bO7x+*<*v&QW
+zO<XlVERLdXPX*v$&1SN^_{My(I6oG#qktcAiuFBHpklsp-SpFE*VAjII{tjV7!)l@
+z)pN7-2l^T6DF>{40Tt(yFdiUO?!TUW`WpLG$v)ke7{)$Tr|P;*_Gu03@`oaFy%HAL
+zJJE-5qceW$VCkEGZ2{KhRz-)5V58JKCeW`A>pwMy&v6V9brvEuj+}1em>&0F9d;kb
+z^!SNR?(yz{{9h||Gmhg}XEL`6W0Ntj%sQtE_{A8Pt(Ua8M{Y^aZPh5Yz0~!diFH0~
+ztbG*Y;v9PdEA81>*IaL$Yv$dY4O+-K$N2n5$_JNn-Z|&x*3!}($oBPx%TC9<`-P74
+zgz<ZtXAUm?``c+em<&8P2srN8qT*oXhr${Urb?I-)-s10^L!EJC4~7siCqPNd3kEw
+zw@8>@4w%ztJz5Sts8sct1<YS}ay%GGJm`i`)$#LD&q2(AFV-ky8xXGs=-hp&KKV5+
+zw0|qzr)T@<)1Zt#krogS#sly7hm#VgiDzf^7cUU*gtd1ZU^sR><cRrpNni!!^A(cz
+zd(4|{wwI~9O1)RN6X{G2>bWkyOFY0Bs?Z+CK-yLXTGWC55*KJ6oYR?H-PN|9b5CTx
+zop0}T`&)b63p_kCBAi+H?kMSXY?b?LA!$c*+mn#9o&~->DSa9YXU0~xF)wie#_;SW
+z@MO@T9I+R4)$bS~uOsun#_}B_=yNW(IU3&vm^_O%529}~ufVrq=<PMxP8hgp#0s1p
+zm7qnzRql(RMf3xhfj%EWAL=Ta+fq4XznCRnV7)9mg!MyDW?7c2*X3k>T+4nAzrPfb
+zRqnQiJa-%3@8Dd~??FU={{Dba;({!(JtFZxnh1hFjK`Q?1Rm|h`Z3LMUG(*7KWIPr
+zg4c>jez3k&($l4w=jN))Wh-X^-m}ryR?y(X7~|XM|4iJ6@jQvK+rB(`_U-`Q?Z?=6
+zgGTHGZfu#8=f=j9_6~MQi`RB05AD>npakpuV2SFpl-Yx0odG(|e}9>Kn{=sG#;LpV
+zTWQ+Vub?+=n&wZ_rYg`N&TIaKkSRuvv%O}s{dKI#67eYT>ruDdTqbj59YK9{g}d5B
+zmu~yOC|`j%mvxgzkMXP6AFT7BT+1^O<E5TZodBJYYsRP7%o!PLCf>jInz_KAUNaYx
+z$BiP7`<LW#6EH8SdAK=SEPi?_zg1^n$lKO$P4Tw*nzuDdIe@&DFeR_$Ie|b8o@x1T
+zMV82I#yFUNFWZ_g`ItNx8C>q>gzKH*^D+Op*64A4I$OM83ZC6+C=~v@(lux0l@7^f
+z?70<jGZZaeLwN)8<mq@e0)5X>d3(D2&V&BJrDiPZweSpZDGp8@>^H1nso0w5H$uT8
+zQHnZ&D?#8DeMyX9w0H&JYGD4>09LdEfVXcSA#t_3TfPY8(|%n-?bqMt$9Mh}n7bh0
+zvZjPGz-*g*cg`r*S8s2=e6x%Xk%Rk<e)JbGnS-*ce7bI)9Wp&dIqVBz33xq^dGQ8s
+zwhg&obX~#|9Pb&9?@WA`W7Wk4>d%iYrw><=iMkuI6%U;Qc(4p%_+7}=!%Gz|f32Sw
+z^t`6msXCv`#W*lNo}p%&`5MP9;L(zA0)Ms;f954#1+H}Gf1&s~AI~)df3R*-H1_xT
+z;)NjUTY>LnEZE>|Nl!^zd-8-OKJWxzs?M<F2@m*~;~aHj?J}=RiK*5{Pn#gu#rN{D
+zF1B!8%u9UN$9Ut74(Ts=pWAst%WRYvA-7Q`%#__y@+M`tzT{2Hb(AxS%PUb=75guW
+z<+;<!Q3{4%%oDi-wVd&L=suJ`q)cJ1;Tfs;<}XF#14Z3I$|L(wN71LD>oLz8uF;sg
+zW1o#CzVZ@%{2>$0l<OkSb;CIv(GT;3xqhmWYw}*`6VVH&==j;hqq8vAYpMs!v-U&L
+z561l<uj}&f4J?B^u~eSpJ{xtdnKM|fD<ki^gz??znb{SLFRo-s${IC$^4x039r?jk
+zHf4*-z%@=Y=&}gfXHo{KjNm=w5XzZRz^u|#^X(DUg%9S6)y;s3&%DJJmO6_b1?-tC
+z;<H)?Vf?k4J%e2+(TAD|qewGjbvg8zdrISEF6J<6{}*L^cKWoDe^VE3zbV;1k?T9y
+z<dE<9Apf)iZ#R%m=veoU0|pyP6i*oedAS4l!?`uXjGZELdB#_P-xWhYYF<(x_BN{6
+z9*cyE>k+AaFKI7*FB!pt-#xoC8F{ck>|R_TjxH(?t0D#B0QBeG(4$Lm-37)su?F8W
+zr&ta3xrKI)j_tS#{hWY)XU!7r1A{Bv4)k%t71R@VyTnh)CnJmO4&dpxLCZTT2TNaA
+zz^c{?&aa~%;sWT|S>O{{;1km3f%(8Y+6lCrKPCRd@B;BhGMSsor^>e1zbe{&(&zp<
+z`JQLSXw%3Az1^>A>X~Sha>`M{3T+6<i<a6ufFtBVitnr3r_AYBH>SCbXC2=LT|9tm
+zTZy72--SGIF6fx22DBLTHCCBddJgUnZy7B2JkxobRh}J5k4r(1g{H?Q=<#i&$74!k
+zKG5Uvn4(yDUTKgzUhq0ei-mQ&odx)AqmCnH#E*H!KGJI5X9sS!4}#_}U!$U}lM~aa
+zk3l{;2Xtiz#<89>3GWY=Xc{Xf74z&nV*@=+ohx{YrmfQ@ZG9W{9>8~gt1%vv-=t{k
+zq(uKLC6}JS7!PO|tOcEYTjQ=5boOZt<5Zoe0Y}$Y_Dx$a{sw4kHEHWN5`Qsz>snWN
+zd+S;yq^+gOMqvc+kaRUG&|B6X?FC)!#_Ox&7ot9&Stoh@Xwae@-~@C01n~PU#!&_x
+zJ4%`jobVGT0&DCafTlsmaF0||#*4<wP1+kEvs%NXjK99WvV{%tiWgFRVztqmPn3Am
+ze1fs~CrUZvzQnV@xl9^8<bOe<M|5<j_rCu{U7uoIz(XT=*tN{@GKL534~)y3vR$O&
+zc;w(2*GrwL?2-nr0KXgCRfah=)LBNr6L_-~IwISlk1g?N72x8hFJs_lhvyP_wu;Zn
+zL9Yblg;jw6`va!R+$LsZzGLK0Pxy1i;sR??mra)bzB!RPJ4hJ{eeRN>OH(p*tsFDu
+zFC|0QHXo>1wsJjSLY<i7CtQ4i`Oa&{F@DMq=6=ASLytw}r=I}0=ISvMMyYWVw-mfG
+z$^vGL)%*T{$%$3v)KS>~I@$l0oRjyzobjm9C+JnVnPX}5omvjXc%<w}S@h}S={Y<X
+z^|3Es1<zz&ZN^jS$P$Y=MmfG7V~bSCJPLAr-Nu$NE=!E%`S;ape0fsdTUD;~y!Qu8
+z+8pX9_N~FXHzW0OtQYn*SEzFW#u7YB$;%?Rr`x=x=H#2llb>i?nlVz@mcGh-c_w4;
+z=eaAa8(qpKjN3pt0`KE1tZSendYl#Jjcy6QH#a5f&ARvs^BP%xIN;$!d849UmSs69
+zSF_yEbU8!hI|0fKBUQP9Sa&Q-TrS7|Cd$_iQ{_$cL4FhSJ3)N&6lwN_^>NBB{B{-l
+zif^MK=#^8oJd8FYsAK+_b@4R<@Ud9t8u#ujC1YiqjZQY+4;0G|j>o%T5V#etb4Z`Y
+zTaaNieTtACoTg~hzYNeQtqYZVd+S0FQo3}Zum8UZjx0x=f$)o*1b)<|2*2fl8(rU2
+z1;d=cMj4xf-_I|sjT4T<zg2)0b=(vzqkz?#80d*m@LV3a#ub1O<6mbHwv~i!{l5*{
+z5%~(XYm7Ag|BI(L{a<0E>Hk2$mNpUEK|J6!9?5G~+P}}zyvC<^4P_6unQHH$Qq@*%
+z#yozZBe^=-ugr~Jg6mUd-S$}4pHt?(vohJ93;pvZp6kZ%44zNcHuM)E2g!9Ob<tWU
+zI{?^<r3Wb|Jd-0{$O+dv{MILRm}s15n<c#v9o=ofpc#(>pPnvF(WP3sKGoW+mAdiz
+zv(&o1s0WWS{}()}=2-W-%KyW<Xg_CNtW&}Pbm+!oC$|ASJvGHg<||vwR@Srf5kuC~
+z*j3L6)N{42r+llbOH3Us>!WOxs?!QZy{s4dyL(Sx@GD%}Mz}HmDC?~}rg>6`<Lz)u
+zrgk51Pd>+aN%1+%f#h?9Rf^BCPVNPqaqNF@+uxG1?Z=dDpE_I)>J4aI!~cUw7gzlo
+zHl?56o3<(4-mkY!X`@Knlv28}+yj7qECT!8lurb8PU^@H^@EP=qmEpY_yy$;Io60g
+z6Ga^xaFw>Bk;jtzd>MB4hwe@91&r^bA1xXEI1^)SmU8fN=ydhc=j1KQ%MqTRh$iN8
+zAA`QVSWhD`Z$rT2pW34MCi}4sYnu81aIo}`hJp)q3dlaCn~lD0J5k8^LE;tarp-nG
+z=G-%DK7MMOK{4S`PI%la{d{PnC(XYPW7w}{`Q^|<d&$Gr8atLv8nxU#Qj(%kwSdL)
+zgYtYC#`)K5@q(dZA;+n6J(r>x{{_zO9;t9P6JPK9xDPoU{enL2N54wZuTl|e_BS^S
+zF0G%m^mJb&;-Stm1+;D_#`fYCDR*mI!i+9k!gstPmv&m}>7|&r1D`K*|1_g-Tf()d
+zYulW`QV%?tEunf(9^|T(%8n4b#+d`Yv1nAvmQe3jg4fTXEg{_GJhipEE#YmySiQ)v
+zZ3&{ueTsXPG7dQOn}cavLiL`(?s#p75h2?PJoG<yG?`1A!J9WE+eOTl`w0&pO&&5Y
+z=lMDAHHQ-KV0=}m^C)n@01OSuf0+Ausp}b|_P&1&y=O#hshgiME{=uti?SPi@XGC_
+z($-J_K9$msNCO0OkID5lBmNO|d9J5Qo_$2yFDH{-eDaszU5y1T?vBsnI-|RPz}yR3
+z+|RE_w)bUo8j{sFZvGFR@7FfCDxbzv+N0PvV@(@vaT`C&*x`|b8%~BtB^r;)fk$Gg
+zzus5|9IEvYpV<F-n0rZoEw!eb8}j6NTk4R9p?BL@hc9kXHh-2sigmqPujiNXd$_!(
+zZD4YjZ6FDqHTVszXTm!ijmJ>m;goGugo;H6W0OqR_SW0|Sv66EaWDF^sV&~2Y-+Um
+zpzrQZ^r?#HEI-%c7SBk<qNsCZ%moX0g0@BhPjc`+=P%4hw7M-nw%F$WdOxjOZ#cZh
+zrO(4_9|4~t5h>UIUi7WQa1Bt884q5#4X`%NC5e1<n=7narGCf#l!Kr-&&V8nQxjVO
+zn*-W*(CHC_-q!O7;v(%S3I;QZQ+9<7n1}V%%I?@-o}*DV1@4s%y(ew6{q>1tFIlVt
+zIN8%?+nKFwwpmivx#Ohv+F{%S?ZyYH<DW)-(?R3bbDxJi)e1uguD5+56?2{ZVaUhH
+zeJQ^3agAuF&ExMMCs#joLggTwgYlahzdz+o+pGWPRkXjS?LB3?KG&~o*L;=<2QT{l
+zW=$Fn!$ohI^q-x*;V>Zk-?v@A$$h{cw(EVUGlzD4@_O24p<DO~3lUMU0Kc7nG!2Vi
+zW%RM)L~`}K+!pu6OK}bAK@ZMtaW7q-Y$xul0p2`?x~U&d$NZ<(6753t2^#udvV91~
+zFj2`$@t%3Emoh#f-skq-E0KE`!n#fT&&SHH$U5)(Fxf8mM^M)aU!IINN4fY{AFF%=
+z8z3jW2pWFFl^!XdZ$Q}>(e`Mb`OA1e<N9QKP9$P;ua9dZRZfr=^`ytvGJ6Q-cDKfH
+z$OpOm@qdb@)sNZVma<1CI+KU;_5PBNaRBE-p8>DqUXlpzlJW@mloHH&54uIV;;Ctf
+zlNZu=db)y-qDMR{dzON24){$eU}*zyCbIspiWQD_icbSxZjrX<88X&euBK^(<6n=d
+zTmXdG;15+^fj>dE$j9%|IeG2~Yp`1tcvR-9_eP=>IYY@~(!O=RK%vtLy2^e1WFT5h
+z7~Zl|w6{uHI4wcjM9L<d6KHbg0lr6o!(~FzX6Bb*4pZh2DK}TR&-;~}%J?K6bCI1B
+zTOr3sT+V-Qc^mf<v&7W66>M+{WL%#W(l+P4XVK|HGX5VCSRvQs`!aUGqy%#zu>RpF
+z<EdEG#<(A?TAmAn4{y7p#hu6bm3hM@El$XsCUOr$<UVhReZ!ek39_^g;~5TJQ<#lz
+zEAhZyg1$_SGsfNdN0X}yDps}m@!ci(?%iZ^pOFt4O~pCbo~2_&XKUYhPhN52vyiPV
+z(RfhC3qaWe>~r3fgd_7bOo{W13fs=sygf&tedxqlkma)Q-Rm;OG5K6Woa>GIjD4-S
+z6uwY4S$z1^>u!>#?{)Xa(ezq-=mV8Q?ltft_7Ad>Gn~1{xJMdjbbpP0K^}CUqD%w&
+z5yQN{Sf1+F<ZiTp{wrsoPj;p5Q&{=Hk&nC!_-v7WUZGz2i*F@w1&<YG1}@J+--4-i
+zz}OI^1K|6oA7c#XXkr_9?B8|&D64M!u(uq3euf<WD?jA$63XHCBpOd7bEzB2oUP_q
+zhcub?!uvZ<UB_p#P)8-}xG(Wt)UiX-+<J$;p5*B}Kp!q(9eR%r5FbQciLv5EaE(hH
+zX*gwaTz~ISFh3biOi!M=FV+6Eo;Cdh*GR-6z5n=Q75lKiKI6uH1=9bEzn<2w{&GCo
+z+x`#UowEOP{V><~soMXiKMjk~Y#-ww4C;=i+o!E3rQ@Cc^|Wt57<{XzJ?w0>pR$Ls
+z{aHupe~fw7^z&K97esxG#}mSwuRfx1_YOR#ZEr^G8hM7X5ww4F1oR)U^od3ny44Ft
+z?$pFWpIE$xI9MZP=(G$4y2riuMyc~LXZ1DCmky-;m<)|8zR+a*xDa0`*ZbTVzD&89
+zzD%#*ogU{he{Z|rI~~bhzDysWk6nIXJ@!|aAI9!T_VQ%{{wyw+`|%BZ`7-5Z`Z8_E
+z=+oEw=+m~0KJl#8H6K#;jmCd`U9x?`huz^`bwu%)T;?m#a`ywk^OT;-IjJABw2i(o
+z2XLJZK1khdp3HMNDbWBKbu{#`d2)X0+^@*_nUt7<`Po*TnxFaU`3W^S+tA;JQOd`S
+z^V60{&(EWf)4BKN3x^o1;tK~gOx65M>ypz<?F;*jyVEkz=stW5=6Cd#)8=Q)kH3%k
+zncK(w+=qJTYu0;yrghCvmY$zb#{3lbF+brR^YeEf=n8oDEgv$!&V5o}<Cw4POy=Iu
+znf4vHALX7GE$&_mR}Y`?sM+FfY)-cKT;u0utnnZF(lq9B!ns7*a(Kpov}Olj^nOQg
+zI+0n&^BHwq(2=H7bD`Hnz&N?jy#$PP&DRRL_QuC#36Tw<dsS;^G8^x9;CBM95U%p6
+z1;VZ_kU23TUwtoWwx;*VA4S=ymI(&>PVOhlIm_dm_1Lq_l5lQNK7D|1F5sJ5qxrs*
+z`x~;pkB;}&Ro(}k^@kdy&FY&UoElEQ^`(7F4jc!~p?!q0nnh6hn5+WKUInbVUu`iK
+zVkqdy*y2{urL9@oq|mN_eAfP9A2x4mrG1wdGOpJ9e&FH$`|>WoJ8xAqJ`UHDUugy3
+zzO{%s#8Y;q&wRohf6<q=as3i~PuaMp9Zk#14+!mxWv#?oo$qwD_fU`aFqRVN*({rF
+z&hOeA;GRHgf8ZnVrhKil0YJIU<;w0LecVw_gf_c_0B`zzWSfyb>v#xt(05A0GCa{?
+z99YAe=yLx*-@4uAesv5mKmJj7`q%Nk;yXVAUE8hc-y24Too?vTHi<LVCigoZsC^yE
+zCzR`keXRPFKYy@{-$#EGdER6~G@kNB+jFcptj!Eqzi}dYX^NipU#IBcYbTO}t~-9}
+z?;iA~eflPHj<iqTJ9>N^+t&9LZBKNZx~?C4)AM~v#(dX*c<S#CW_))Zah$$JGMC^u
+z`TZ*J`ZL(J=COcVDQ%6yT3QNt`2nj!z|7+d*A|V#|2%KDM$)8vx@1v5&(4VGONOZ5
+z%(*#^xtUN|=4LVHWn{5U{*ntCDf5bR&vzToZYg`Quah!|-f!2rG`jZSW1qAK-*L)4
+z_yZrRJ$T|O_u+XSfO}@XfQqp)!Jqeo=90W0EIgWghG!bM=eve$I=ItafptV4$XMa&
+zaZc_w&TY&MGfIy$q{cbAQ}JH%%`q9{9Es=5J<NSR`sr}5(J&c*C%sol-tLjlg;Qsx
+z_X~HHP^R02wZixT>GFrG=_APUey1*DACf*U0a+gP4@;LPZ!}Z&XY5DP*Cm*$|4dch
+zuGV{!s5^ph*yp+n>*KWhQ6C{+;`gyig*V*ejY7Uy6Ht4(pe3dBWd}Ve$~GH4UGxCB
+zHxuu}pa;#sznRuGPUapU_Z*uFM0>~440!oc@DknORg!|2(H&mZDR}w2!)r?lUisbO
+z<x9a!bca_-3SLHccvYw1<xj&4b#KuyTW+d-U;1hjZiFBAg=^852w+IqNjO$3*rnjM
+zDwHQ-iuG4YJ8cZ#E=S#<r+{Itr#Y7A{wHw!olmq6_=vIRlud=Umb!{H(yo%CfwZqY
+zcue8!(TmH#S0_=1-9>!f>C4-*tvqiJez&$s9cOZ4jy1T{W8N0XhR*8=-Ws@=xjJgN
+zA28Vc_6ePH{*P(ApMz(?(Pb*mr&=TNub=2mv#bo7HN=zV%bg$dd~dq!0K9ujt`qvw
+z^E~qdZdB5vT8Hw^`yZ#}oiQIM`_=j}%5HVzN6KFHi)t0WlXj~4?<aG|gI{ugP}+5a
+zFG<_gG{BAL3*Pux^F=KmGp=7wjAu5MyUkK>OZ&}PAD((#H)M=!TaR&l@e{`N;>TKl
+z#@Ia6pM6Sy{`Ijm?cU57G^j($W1817$8F`m6wTgyNyhwwE(iR1d%z?2;CJf`z=~)2
+zI{pCu7Kk|f|LLzNxK#p9`#w%SQ<AIp-+z3+Xy2>tb}tF7hiJdp`k`yu1ayp5|5Er;
+zE%9Ym7rtDo@r8b(^E*xruiZvkj-A&7UVp^97fUp}0vcWtK6MgaH7LKMQp1b9j<PfT
+z1_7_#TE5&Nl&=Zxjv~09XH*={X=*;VV(xvHmAT2O>3uR^V3|82v{asV8xEclD$SGe
+z>B&!1XOK5C)=(^(m<YZ2a^S>x)bVZ~b)4*b$U60`|MCw`4WHHw_*C|Q&y$}3pWzwn
+z<gaLFua@CKD@u=mc4JQcbrma5KT<we$^i8h%d*M;ndgCP=-xl1*LX4JvAjyJamDZB
+zjD1cVnw5c1B^mhi<0Hvucusx7S%bB2)XVO#KkU9|HD^SbtNaujZBKBqU4;4AujN1L
+zb^K1spypE7uYIwZUzPsYJa6~W`&hdi^NrAhA*Z(9Ff~qDwKcRk{&l=d$>q;bp3Pi0
+zfJ-yaeFiqW|9C$=2c!dP4}Op9$vC@FW2D#h%SV&4F6t4fdZ<e@Vm$==m$|{u;reuU
+zKbDE-m${cUCEGLQS>v*6oYqUH#9OURama{=gms@If(IM}GIHo6od-Cm;Q7G^imuI@
+zlBR24dQa_>a&MY8dEz(e+F{J~HB(QWXZXwSX*oV+vk}V=(jMK6^;2~;ZG%`qdZX<R
+zBDj=i{T#wQWrz5Hb}60r>w6!lGyOu;fF{Kq?w60id)kM_>v7x%eUA5E;5Z^7=YGJ_
+zK)>+(5N!}V`$n753apvUZ>H@L-$1z;mRi${eQAWacQ-Xbo76hFe>cCI?TL810`%Um
+z>m%%bhWc(kp2mqMgu;mwK2Ue!TvC5p2Ha*$>!aiIT<+&H{#OTJBgjW7OX%_Z2;<@X
+zX&g@|<Xof2^CONY241al6US+1S%G?%WQ>XS^?7<sPjF0Oj%iwgcAOP*Obfc%Yf@v%
+z()G#M-KcK`+6wtv+)yR1lJ541+b@VF);1>FSvC)S{ONm&f4>2K`P0J+$6mi&jpdIT
+z#}bp%IQFZ<y>X2AKs?*>fm(aJQ#vB|Vztacc_l?-X9EZN={Oj_TCK+agJa1-LO<u3
+z&Q|?=-oKKAj?sqUZE+(P;wtVwo;hc>xOZYaVZ0CHeYnT_>3DxL-an=7v#WKz??RV5
+z@R4eddy6ad^VjkGjgJ&eF50SM<ZkAEChG71ak}4&bop`U_sb}M#G~4M^Ls+Vwo$`y
+zhK?1xY_h`dKYpa}fq7ZC;G36{s!r;e_vt$C?nn;$-A8HqEamEQ>SrsVpDpwILi39N
+zTMub8;OcL#&MPIIev5e-^f<%1u8TU8gPzG4=MDP#S$O^wo|6{btowSqj8z(q-!WO?
+z?i$@!#t~tj@pZbdj0-YB*AoK1FZ(DxhOw#V7(?Sn>Hbvd=Qp6;1sVOhNI$<C&m$V{
+zx1oL7g&N*Vw>LtUy8`Wf6XjC#`5FDZ74ue;QLm|=x8V6*AEoOVq@S-xJu~(5QvGZ(
+z`tTJzvy2w^tI0Gj_Sf(K@gem8kJ31ht)K7uI5}t%o*xx0GB+*P%#XGx+=-n?mp}ff
+zDxV9SxgrB*AL!?WfZ65x`C<L+!}pSdE+sB#8|i7JztudCs%<=>`A#$S*I2zf8t|Gc
+z<25g~$K#uc=+93-NRR#Ry3WsI>}TnAUeV9Kim{m=DIQ=9Chu%^TL(>wr}$ZGU~}9=
+z{h4;auVxD|HcN=7@&7zrv@z0Fc=)RG-<r)F19d7+G~^slPUIoG0DM4$zy9?vl4iwc
+zTM_^Dj63DDxSkuDoT~66JYSl~-_+t3*o*Ah)_l3&GXcMT86#;v#y8)s3eR^}+4J3K
+z&3v~6&jyC(yO;kn+0J~-%!BG}Ue(69@Dorsb1{3)ZE~KksdK&Nsy5H1O-`#>?=lvY
+z=jvkTYVIj+Z*l^GHExNuMxMvxehP-OZxza9_hEY!QM*`v->*1PCgVap(km{+r~Z%P
+zLIAY;Zklpxp3Si`W`vD7uj}9BSmasOqHb{`JaTXLz6AUJL^3J!wb#Gi<Q!i3yMs^R
+zyQgC6+x*xf$Xu)1SVwk-Zwzz4P6$2XUN%L?>9{-SWc`<MI<g2ez%M7<J5I-AI#y5>
+z_~-}B|NMml5jdJm`XWC)o_U_D9Q`dvzb&C+k9&jAJ><UZ3YR{5v^QDecL#s-E@;+-
+z0&!HRc<RD@N#*ae#-?TNV6?tJ<JJVD33-m0yjk30=P>s|umSqs{x;@+^XYu(AIP~0
+zI-h?V^fDEbROjg!0vwX@+G)d9v7&MZ;@R!YZ%Dru=3c|RUdp)2_6oNEbDbkrY!%_?
+z=HWtY7qJz<^%ZY19|-4<@l2UF`D@Q6+XI0WF2C`a_>TK0MqQiqSqLw4^8*d80a!Ec
+zBz*vk3c_`q<2Bc`F<u+{9iS{h{{nLy<H;TJSZmsRG7p!uu?^xr1MAC|aZwr=H)Ig^
+z1oN#1z<Gg_M;t;M%*D!F28=H>;W;G}<XbCBbIcW`Mxee3{W=}rm-3q&odY8uea^wy
+zJ!8-><|IJ7e!aiL`h4M)ZKF_^Pt0%QcZX%pku@p0;gnd7=tFe#p=5IVPyfw0NC!UE
+zJr0s@Q1>`UV$gpc2WjxO|C=~ScTWD#;vki7{(o&8q>nfK-^4-kEk1P|q;vQGdvTD=
+z{k`KL1+G+akhWdfcO0bkz=h`nd2WB`Ars45Tq9WQY{317&|vq>3bnpuJ|)nB4I%3E
+z;BO*N=3=Rm_D9GbfLY1qE$)d)-F0{?wiGlo&n<@@|1`=zF9y5$H9OrO6}QHR>0Aqs
+z;CKJ$Tikauz7618=7?NHn;-pRt(Uv$|HS~{3N8D;qJ7AJVTeJiP|yAzeV`2?ih82<
+z;I4dxtE@c#8eB%eE?yJJEA`5}4pC)i6zXgU<pm3Rolmd7^-pjgBIMM`d`i)Tb#04F
+zf1McG^95T#BY>aKeg8zio)GP*D`np9=gehsBfp6G9S3cQ4R$*|*Wz}Z54j@>ojuZM
+z)8FFxm>P@ET;pCV{jtY7-Y{v-w1jAm?!r3VY>LzAt6Xe|ejb&tCu&qPzc{}8KI(qn
+zrr+TkE@Ke3c~$(!GM^Zfg42rNVE=gb9rU|3MjQXCwi)&sH(;%EOU!jHbA2-=-&xt>
+zTwkE^Kp?h6?O_O&pIzluYLKx|zlHYl0rR(k+s~V9_ht9Vk)N_pLwo*=^)wJ;otrtY
+zv1RTEwE481*EJVD$mq1CJdOF-8C#>`N8=gs#=`Tb@SHincUHAXoZP{9OVRn=;Kmpt
+zgk3B869k-|#cu$=pn<tR;eHIhoz?>{Mri!HojzMO;jyo+1h5zgSa6IUnb$?d6@5EP
+zoNEMP2U-Jz-4apjdNFp!DEuE8-%#O4=@Uw4nWFJS<`2Qz<~zm#``bH8Z=kPHV4}pG
+zQsRw8{Goq2Xx^6%;Eot9b53RA4)giimtp*XwKrO4?>!IyWBi^-y?r<OutF$%L!D3L
+zwxY}ojE`|yORS~c{A7G)ePzI^9W}u#E^Wm(l(YZ*eXUbx%yZC7KRP=h^FCs%csXbm
+z+V}T>A=fDF@@p^;t88T#$hT#FpyE}S<0$5E1nSrTxQ)Q~BhKU8)dKHp?I50;m#Nrm
+zDgSz&eR>{cjS({DPg{P?OYV6nXGO1ZAa5kbo7XtQ!AB^US)%FSFP~4gj}H%aBSq2p
+zA1?ol{fEoP*=67hn@55#fOegc;kQm3K*~Q^{#s3r%+bi)oo1dp9cy_a)_rBo7$*ce
+zHzAVe{*<x?%9Q)X3t84eJ6HQz5XVE1H71fLnDp5KFM^yg5wIAK?<Rhs#eE^9=mKeh
+z&jP$;?(`{%2GpJ7$2`aApSH&JRP1WI4bNwx{po=FEYwLk=xU$B1tFT{+=8z@SA+i5
+z1oD0f9`yqE+iI{js#5D4-x3x+^mnCK?5l~<wmH_xwi}%wd2aJWXCCH+_OY%t%N#^j
+zu`>ttc%xBcPIF!<bc5nmy3W~no+V>^MB}S4FW)+mY@dhm%qD#d&9~>#X9n#w8uW#0
+zbd20k!VB4@(o6eGLmKwX;RgEJjP@IOmJxNa-^|Oyb|QeAN5;ceW1s6&F+7?>gSTRS
+zHczj)W)nKHFB>%KZuCLQn_@a-!ue9CgXp_GLYhl?AUxlmi#ebiLKx4HbaB5NEAwST
+zhTd#|HmY2B*C(d>#6HfWJlBE$p90JoKhq}`95ABFZ*yia&z%z*EOT<ow!;e`KUBxr
+zANtXut`~gb`uG}=u4^U!ABVnLGT+_;7j>!pYT|~(JNTW0z8TFA$n#(`?ZI0Od&#Dm
+zcHY+f(2^K)E#;4HanA{L=ZTi)W!H2<w!65+9opmlZoM7{F_v9yp<O11Bqo6-8+ORa
+z7vc+o@PW)h{4EPM%C_^Z=;P2ie(p0X+|47G*oJ+R;~g4lgD!Fd>zHV%bzNpQI{9Yw
+z@l7M^@r>|g{gY(AlRWy>f!2ipJI0+ZvumY{>=_ej1D-w(IsNC{Q{U{F9A|md{lW&6
+zt-=__pA8xiirAI-pEkM)m@iLr#P&ubc1}2&$Oe2DN!@20@TuNr3<T&QFK{lu1D+oV
+ztaKZKcwb1JZ?RpCdVNEq@pJzu<ocw~%jqZ|V17Sa`40ym|2+>{YlN?K#$z7-!T1{&
+zwYcP=J?T-J7QNv<0=RRG)dA&0IN--hu0M$JuuVRnj`tIQFS%%+?M=s8D@f@X*0Q$H
+zX)VN$_%x4LOdnoTL@yjDqGv+Rx)5^rnHO>#^#3qlYb#!`D86JQ`N%Ey7=B-Ki~U#h
+zHKcup$un*PE)fr(?nt&*qAxRnrz4<~jl%!WdzFm!S0DW@PjjDQzr~e~0iN({(4b40
+z6WUK5{7Q#%o)uHM+WB1O?n4_-kvGQbUHT$Re#kR==nM5b;H^tM&KHy7>GLc%(H~$J
+z+md=o=-MKl2{){|B4I^JfhUD`plz-*`jO2E3@$Yy^8*)pnCogfap@VKbsFG%C3JKZ
+zV<?NUqpgvyz8|D=_)VAjp|JK};25c!k=Ewd>~V9z`?<bZ&r_6jB3A<cr^M-VodtYS
+zyy_<Dqc&Uf&dDAzC}@)YOinNlSBkE_N%%;*UwfcR`Xeivbw0*>9>&XaEaL_3YoWwA
+zzu3n-1`WW42Ii^`*3(YHyw3Y3%xQ7+LyMe8wrsYyd^Q>%H|7=@YwzQOo_5+1e8Mm5
+z;j?*fdD?TCE8OH>XEZ(@YnpV9bm?8tI?Gz%FwQU9J}_MO^L5Idq;<g42J%qosSWrp
+zf-yBnUUQ2*b`o^f*ljjt$@SoQFM@uD!J}W$@?#*dPR5v~fAlZ0rc-joILZ}5`5W!{
+zj*1%?W*gAU(Z2sppOQl>v8Gb;W;N!Ma^{S{np4Umtv+!s`4MHV{F;|t_N|ot!M9=d
+z3Hq(2^LaDxhr};4x{J6^pZ8QB&((dTJ(GI(6X>VvV<;X*AHAXZ;+K?%V~U=U&*g@r
+zh4hnu8s9DWAJHy#gc`*s3Yw!vKQn63o)N|S@8kV!>LSpYn>`-8QMdag;Kw}4YZp5C
+zpij(Sl6hV(C)(shP;UY7740pB?y?%c@ko$o`oy6%0j>kCk3W>$z?>kOx5<1g)(ZD2
+z+0K;s5p8dNI-t(DjHS&K^)Qbc;nyGhoH5;VYodnfPs{zE!knx}|6UBsm=Lr_aeXew
+zTCJCP=?FvguT`iu5eYE1O0%0Ch#Fbl&ihP@`$G%FM8L37*PZ82&r`m+-%YK3)V=wM
+zk;V4$j%3&Te9xoihc-mc&!wCnOVI%8+>|H&$^6qHwQqjYiDYgw%KvmC?dx{pAl^m5
+z2O454nIlH({;bCnn<(SIlI~9@&51R+Igrg7P*&0V5by!>5`<0_9P9Zu^BRPriOET2
+z&yV68o^N}1vw|n>_A4}fSZt_1r~G33Yux8qk&8~K^AqdPuasU(-J?wF9wu~;A*gHr
+zxB@ZciUMJeFA%G6RpEaBvz^J-f@CrW|BIh@CT;v58CxKHV+uqE^z)s#ufqR3Q7(r6
+z-wqat=;Z}s$LFBS<C;-bAnv&R_S<)yS0Kzgpv&LZnM@{yXvP2RH)YT-pGfYTUPE|1
+zBJurmm^bn++NwEsm*CzPq@F_B%J@bNPAW$*dAKk3NSlhCKZAZ_xmi)byNi$EUCxw5
+zhXK9lBs`3|+Nwwy=+1oGuwHKShC=pF<vGY35`bN9fq9oa4+cEnM;*xn9+qp+KKe)-
+z>5NgauuYzY0KcbQoiZNz`2>?^`R|gkM#0?naZI^rkNT^S=T)ei)H<Guh{|Dv@0ll8
+zeXo4Kr5*>GG*Hu|B|en{z|=Vas6&-lb&@7s!1=W}zq{o8=8?u}8sY(erS3Qbbh9Uo
+zJ1>LAEhUY!QZ#OtyR|c|vkf&)uCry<@%Lm>>TKMbxaqsyb+)DG;|hI#_)~`RF^9fi
+zN*-R!b37TktCF3k$s8y7nAcXxb6$n++YH^exhppRd%C?xm+Q8`Zz#Vu>UO@_q1NZt
+zYm)6bv?-$xS>ZeE5|#H}(tv+-rq|Nrx~&<3=3e78GscN>mvX(G)nkm)IYv!)PV2EQ
+z&;GV(XWqbfI+Idwef@ayP_o=ka2$a^boszQv>rN4J?dHdL+(#DuaSBX<^Qba=yL^j
+z^tl}Iz!RQAI}rqaK~MVSJdyVU=tI=E+#KNkZ_xfNqxD{Iht6|!jgtQi=)29(YZ_yD
+zrF_ReyeM;+7b*F}94qAy@&Wws@rau!=Pc%4z$F;ZpLkX)K)bp)lzO%W&mwYeJO^lR
+z2mY>3=|`Ui-jPmM$b8PVZWZQayrt%a`ENzQF80cJyps}?9jXF({<-K!4e4~C!8XwT
+zvyiiDO!6(ATPnQ3o<p00*#KIJXOa2#YQTy*Wle~@YHIw>j^w@?q0gH~qQ$pUPK_+^
+z_yZBCV~XZk_B`5D=-Uz+EM*VBl*{QiHs6j==QD4%eO%|F-X04%Y04ha?t{*_3jLGg
+zg={Bm`Wi)S$%{}&cEuIS)+=glBUtAYD8GP&&k7u1o&e~c(ne1^EosymN#|~LyrQwq
+zFYdO5y<5gZN&*jkG3XJ}_IOhQI;~&WFZqpN)F=RqR|WItgTB|=$>iefilD>(t9I*b
+zw&k<(4{!{eOSE<AY>d&*_mM?5efBbOQrx0=#eIzb3A(WjG%rOrBA%1ejm))B>*-E6
+zetkmOs%WnpXswgqe9fz9*ZC>hB}ls>?vGj4V%g;=yIlFu^(-4xb#vd~$g$q#zog5b
+z*GKt-$7maxmN<@aF*c0Ujl<KNk8sa=B9#5?<-p%HZ9Q#_?|V*eV`Tk4mG?BaQPYl&
+z6KYMh@thrazW{BX!#M_yzDN2@nW1^5D{&BOnsPeVb-zIL=eQmxzWxYwaXj&TBj|!f
+z|L%I5>w6w;Bau3%268a<{r@@MeIA$GEZW;-E~FWZQI{*M*;vb7+sFweCVI&Kpx-y!
+z7iKqu|5@OFR`g8E3;u`khop_8(e}lbw+ZtlnIpU(a7muIVLbuXGbu4!)&sdahI(S@
+zdMb)hk6bhLl85F?{g-)`Ii?#DO*}Imxy{MJv#UMg1@crM^m3lt<zCD-=%*oZjpGkA
+zAIxR`*BJT|h}a&KW0?sU^Z%gCM4{|hxjeV7Wh=RU0?XvynGs&>VH`s8&#M3*!#5=X
+zx_Tk#>Y1RcXJYOujLz<QDSZYA&u5P-`Bce%%iJ*jzXUM7ANa}jZD|@t`qfN50P+RT
+zLp)`vI5&ZC9pvgdcP@05={46lt0i4MtxGP>u}<^To--bFccPT{Cnd_Tz9wj1@p;l?
+zJi7z@in2m_&rjK0FT#7d-zT2|Hc}ocI>2u~%XgqJq$}5TC>+=U-K|VCI!~N0b38o`
+z+GEE&fEQ?5ndNnOZYO0Y6k@)8<&Tw(l6|8Mu}tP;p8_0={(SQ=(C9$OnFyYPzLio(
+z_7p}=2b@cPh;bggq^z4g!UCP}RB;bD()KRa0^8xa+muc6JkF)5@NNU`C`LW)FIW$G
+zu61dd%YJxkme`~5zd;}W@a^dD5?k6W!+Gw6bIaT<DBH+=dvl4+z3WAgC1a-Kfr&~X
+zwm0D2MAi*D3Q08nJ;-2@z$5M!t}V)In%-AyeNp0s-Q=G66Z8#hg5PtUlOB75fO&A7
+zr<#0`^U^%d>1VEM+kL1^+8e?==a4_SmwY)Ad?QAC9M+I0u&2$3bx}VOdUBXF;bxmS
+z<PFWTy(aB+ljE)QUx3a`p8>SB=XCVhYb}s5M0sA?z*?H7&%p(1u5#|jd&0noenIZv
+zL;l?!gB-<vR$9~-*2%pdzYv#FCh}P09dF^fw$Y}Fe|IREJa-Xs4X`iHjl{Fe+oY_U
+z6S<{zJkK(N7A~R<mFJZqJLCtVg|uH#2KEJ{zrrD}%(1hsO~p%{3|?33d<>dcCZ;EH
+zBptfN@t9s)RFz3u{i=qQ5TGF<O+!Xrs9;6h^_qJ?hwAL#qpdP)mdr7By&+!k1!vnv
+zV2RE3L0o#_Y0OnHPvQ&DTN}Q~z1I8MB=s@OduVW%KE^o@0ne$I$v803#eVQivOSVi
+zyy6_%M<tz!CQ@Z<ffv=li;2Nh%wUX5)7NZ6(^nf~vU|{1e0!8*x3GrHU2WrKyWrC@
+z$58a=J}dep$M+uO922yR<Dx$y$9VJ8N^S#gmimnP(;*WVEi&1MJf8hYEW#WuvM5vK
+zxp`P;-~+~k;A_HqSo#lsN%IKOvaGP;^DpRU%;Ux!ZfyG}Mi2f;8630@dhwx@t%7xY
+z@D<U%i*yw-Dc6uEZYL;5N%_-O^5>_}k0F?Qz;4$NbJoknBcm??cXm};d3#33^7dSr
+zOzs;ETA#ZK_``Su)Tv|~%~=lKyOpTt%%>GCx{P}-ns40GnS90w-sSivG2ZQMP66aU
+ze+Cb^_~|qc$&cM-d*u5_7ytMyaV4N=jv=6z4P7qjsuBJ|krB9E(v}xKR=mL%ARlCW
+zPY>pIa-yF3%1(l_8>G#u(e?&jMt!yR*iHqrvbo*$g1tu-ACbBr^!K@@;uA@<39UJP
+zXS4Pf`&h{kub_Mi_k+pgGx>#TkB@7B@pCfQ!O<US+6}z;0PQC$?SwpIA)?DqhdvRo
+zpj%kc`m<=S*M4gseXI9=+Lgy4%LJ5v;-8MIemsA)H@=)@^w2{!zI^Y58VhBTH~Xmn
+z8^Fz!UiNcc{~FZqGiNKhqxEEtRppLZCw1g}>d2rk`DpuN>c^&9^Dkhmvryk1_;x?(
+zqN!qMECmkE#q%0V`FUT5ca)JUq(8zicP`~VQ^tCC=3?!{f#;TdS1bKnS@++LrQjHf
+z4`>D)o6~S?J#lgvGfr=6{c>)WVr~kP8FkqxZ>P(1zG%~)N;wt0E0^aufggXtIwO5z
+zylB71@h|^~I6heV$aCG0Mos^bq7iu?Cv*GS=ktG@YI{<AKn!ii(rq`N=q?LQIF`(1
+z>~rcZhP6o2BDQxq+AypJ#|wTI3Mf6%BWl|yXAxG@F$U_`)FG)m63*No^~DN6CnGNR
+zM}H*uwW_=JwSYf`9<#oP@ufW#k<%$xRo~kp=Y;f(v@W}*rES^O$@Xk516?lEe&k%6
+zd(UfJw%N7+%=5hYMTsj=-)&aZTM%rpBj8<>wdVp3votNcqz7K+VZ6E8A80>gz|=(J
+zuN_m*He8i#XB)r5FXfnd0rJg-jv*+2MeJpGE}|i)^;mMy3B2bRW>JrZ+;oSS;T?qM
+zly4%1EmCLXngv}>-1#@r&U@}X<X91h@ns<Ix+RfCBP)+3FU>J;l{)7@o~6XNzJl_B
+z$Rg)_v@yD(rO&;eY%|hE9+=uMpZZYuagJn62)#D1?eXqBy~b&?xvIyz@}p`^v(8|T
+zckeN-gx2-*GS=VEHBDoEuYa>Q9XQdM95nNI+Fr$d5XdLF5ov>vazs22@=8Sd!mN{a
+zbt80zhv!&vl|G94S@)10{b@_8SSzRXc>X5(**L5~94<&E!~DJK{I?o|EpAf!iacb?
+zoTU-)p&GeIxOh&u1v2o8wybD_or+gA(`3$XJTq6c`R}Q3^ViZ}FPfmw<wUE+Jvbp1
+zt1K#WQ8DKj-x>MQ1oJh2aAmUHG+U%h=@AWWh6sA_KF7E$0zGlD%f3HdRv>t;pK<LE
+zo2sAO*B!m{i%w;*iLnW#?=tt3JhTG`cDmbQEj$Yrr{5&)1KbnZfd2SunjCL)qg@$k
+za(q#hA5rp3%+VJ@qP^T&>(bwmexy8SOBvJq_=1Z~JWoBN9ExWPhX>ZmJ(L0=R$G?J
+z<DDnv(J6@$)>^+&v4Eilat#?{a{>77&5)@cmHxK*C{NqG_q{c3L&Vyyd}aGEzm>da
+zj$aWSI(nz_U$xIDP~-p7`ESwJtMY#CLl#TBp7iq)OWmv9{GvlYuk0F(nYko`Y^TYs
+z6wJN8)V+ar`pa9~`UyS!ys%d2<5g18<PHq*T8sbD2UDGGVZ5k8+>5kUbn~gY?omZ!
+zZ^anb-_+uM4fXm%Ep2{Hm)?Y&n`5o+<_j|pWg9-<;x=4>_1e79_S7u2^C;T|_qjn)
+zlK3Le+l{0>qL}`M#?`p*@}+8x?lM~GOI4zAI8XUfVSe8+RO}S!^n>!PebSHWW{>it
+zYT&cLTFJljLu>tK>o`+0%vG*G@QCzlDzTQy`1}Vw%#ljGs6P;(4Y`MXgTCC{%gaYw
+zlso7P!1kUTIoST5NBIO_^=6awpL*(ZE$;9M-S_x+0@fokVErWJaFmOjpN7W^GEUDb
+z$QA70Yi-^0#4Z}OmG%ai<68CMU+4qlJ;}I+<~7bQGW?p}T&4Wp&S!j(uL1wjpR8~T
+z)~lMM8$G?}=-Yth(W(~r=!kTmQuPhJQk|F3b5`2SxKwC!rR47l#_gzcMqt$`_YHsO
+z5trs@`nmcWy=mb(o}&!fiD#1PTs_-AinZPmYH|ho(1G=n6I<;j%Qq*EaxHykll1lQ
+zh8FM)9CWso@h!|}8$_MKsF(5d#&F*d`kE1odPieTlw)m>zk%;3WZpUGJ1@MMY-hdP
+zCp;jU924a-ze|<ncc!^k?pM9|I{2Z*9In^LhoF2_bJNNIXu=S@$Ny4KsKT1|1x&eL
+zR)sP~;1(A$+hVU}$C=lC2w-=njK68eY5T2eUh574e*FIO*W+hmJ$(K$#wDHNoQ^d$
+zlYUo#Y4WpUH+jvmo06Zs<>e7((^jup_cD0RX6R45hT|U3_6)b0_E5g42t>VBpvnJP
+zd|$!*BEhv-%cKo!Wz1BxUyA<v8Sl#sG?kiWlfTkx@?SBa$tgj(luuj<`pJC3qcLXt
+z(iYd=-XdXjl>S*_p}nT0&VB;)t`4$l9nWTBY(DE&+gk{H3r==?fwNrt9*idJm`?&Y
+zbeR5#di`VV8;mRFF>SBMyj8qK-&FLm676~{=57evGOmvGfV7W$!u9qq46!d?*9ZJ5
+zevN(t;jm3QL4Sh)@LTRdi)qEL(kG0(L(<q#Vv=6Jq!%9;ie3yPz0mJ(HTuS7D+8Cg
+z9*O&0N9@z-kTWN64PXst(v}Onr=~4qbzeMK)66ZMo!R%U{qt#E`{ySlty6sGzEpdG
+zRC|-+m!dt3^UF4cYO@k>GFls?O=7tRaMRyEslP8NT-&YBMW4`TqxC@#^Nm&NwSNY4
+z-l2^lsFyJG)Z7YQdL470KhE-B_K;3rhk0LHnlE#dD>_FWNZ9%UJKHj8-3ih<x#xvC
+zS|4;6H<xRL<1kr2;}-|R@;u9akJwH;Q1dW3F#z+hppSVN{0U>SJGnQk`Y(M&0@330
+z0_t5d1t-)M5Gvmp^PHhB;6mM~cQr1Qm<k@A;De5*^-lX<Iqn<De@gQ*#@!cvU#IE2
+zU)&f^(Rbp7%mv?>%nbxqYd?=^#kX`OyXNrg9_8yt8^`2(MLU3UX#B-}%f)`kVy8p?
+z8;<wG&rZ|%hEC-(Do$_lTZ}^|bKNw#!$p&S1n382G=jEBKe2zJ>_EWi>|cxaVW87q
+z(@t=|GS#0~4b`8NE&lv_)j6>&$Tnxt-yZaxaYIskW3%X9erQJd>`qnwGo6h009tAl
+z$#ubVHZhZQn$JeMJhQ^*q}#N&RZ1D{p2Pw2KS7!b++qLBn{AIe$McMQCS|af+D7AB
+z8J`8^Nh5!c_9Tsz`pD#XuJkDlC5{5m`5klf80Hkv__4H$IQ?k9GKbX>|K4T$TyLOz
+zM}+tS*Mu*$s|{<>z688GfIiZ{qf+<FV+9>=xYmYTeaK(2T>6#ffVKtjo_aX>h_GU=
+zuke93BUtUcDa56LFy-HA2UuSg>I$FL;^u)rdSWeY`IgFQ*be-eSV|qTw=Fu~inJv-
+zXPSP_5}(Yw4WZWLkM&u3^6($u*PDlbpy&8EC(=0am6Oz;xmOOEU&;p5WtR7-_h5!>
+z)H`OtqETx))whJzz6X2vX@$n473`Cy@mHUuPnmmpn{=Oun|Jr<)8-8LUC{%FYwl5d
+z+t4Wl+AaPj+TC(t-)k}pYw|G((~`uO(9f$o6?{{5{rv{D9xm+z2IptM;1S(d&dZ}c
+zV6du>Z_ms4c2NfG7x(z~fj+)9Grs+H28_Pj<J<2fyN~5*jAaA$Qq3#4*1+%WO3;=#
+zVDOZu#eHfdt|ID&3&HOf+D2fZy&kg1@b5uJqYl+$9!}HvI77ERiu;b3YvyZ8%}>q0
+zfqx?nh2JOe9d&YxG{iC-o^#^aCc`?jj=20G<|t=ui~HFt^cfPp-elY)wCB-l_`9GP
+zhE*rezmS%4tWRgGi3|P>{M(lS+rQr1!-j#n0vw+_XT$x~O|Ea~qtbuIH}ruvw%175
+zfG_$g9%#!kSGxg812@aQ%s+8zeEMw$KKXmhYw?Lw<HY)met)>Q`?tP6zD@DK7f&QF
+zO$H2y-yZDo-E${Sjl&OR;P7ibzHRGB9(w!J1){R7Kpg&b+J9@?r_+926NjXIw>m*J
+zp8slR@-I7f?3i$R+P~{SNr4EK7KrDI3xp4KRN)$dYffQ-SYJ>ehU>W<LOufg@rf}q
+zrvzlU%@tO3vj~P?hD;7Q4p%U`k@7llV=MUV9?0o?%pPNW2{hM|JR%kEWRd&eiSBD^
+z*Y%1%kVlRHK1jQ6uukG!zKm0TUE*il2ce$C{r;Nk9LiKaMa!jJQ-yw0uA!}8$xEU5
+z6KGqULSA}X)A`Fgh|~L|ALAO-cZcpDY4Ok=IQtm-XjPnifAoT+k}U$iWE_@|LwS+D
+zZ8K44raTxvk?fMC2A)KQd|%_kG>r@ICKX*M?l?LAeLn;LCiK9eZ%A0)n0S=1tWkD^
+z?7+%4!Yu`}z$d`$D(+3U-ss4&)GU;Cg!vj?oXargvPRSYm+$G`{<|6cra<!>OXI-q
+zuPc7Tz3;4GgZ*KLs)K7G)}x;Cj`aNS+i_^~pPEkR=`qjHG<4f>_55c&>e$(lmf!kk
+z^hM@@L0@>5JfC~`tq<C#>+!AYQODaE{or>)(T~HrA8$RN%AV*@{rI8oM^leFX7HR5
+zbuheJa8GZ(AL~#!`tb2|xtAa4Uhar)^P7Eq-|vL_e!=mR<BT|=@a)A0de0Z1hkMkU
+zkUj~}5u|-X<mQ_@L6>RQD@tU`*xa@FKbklr`Pn#Qm(uq4^i|-8tvp}c(zbLQ_zrl^
+zs&A>-1GM{9?fjy{bHTKQ9^!nMkGgfCX#AJf^0<*-oR~?Ud8rdDv~#2N&P>#I|G4h_
+zi?VWm^EH>>h`__{FzECAHY}DNG_58n=ca5R$G(KITod(Hg2wp3yUkFOTMn5tv_jbi
+zCrMwKM?p^>bvr)OqI{);(Z{{P=+6&d)Z%)g;O&uxc0Sq*V%(Q&+Z@jbc<D<<U8E+u
+z3;N?`6Ymx5vX$L095puSn8`b6L$F?xdVE|cJ^p=phCtC_Uudm=V9M@iKL)*PbuYiB
+zdyG?@os|Cj3!LTh?BvvhvirT}J~{Gq8v~WT-Bml4-LJ%Y%pGX5jlFFte@r6~tK|36
+z|4KYKY6jY({f@dF<Ie9L#j|w_?bY~y*hqD*%NvRszawo$pI^{10|@g&%e!DJ?Tuw`
+zc;x;JZS|=#v}e<<{gXG9&m+fffHoWEV&%Ug&p?YoMdSm_>l#%4!}-$Y-Mx<2P=D%w
+zxhDYJTB+-$4W0BfHShVsCZ`|$Ana&-fOzrX0P*ZWA<wvDzN{r!H?O;&GGC{k>T}d*
+zIX{eL$T)`dM=T+)qF!YFMV=|6Y-pliYw24r@rbY)=j1Ub4fMVM%K!GTvT?3WCiltt
+z4(yY2{to3T%)`la^?b^Cn3IQi&N}eu!PL097fpLtKJ?Cf;Au#Y^#h)9D{pawm1(?X
+zoG0S$WGNeC-ZA&x>B57fAS_<W{{CuFZ@Thb;$+xP@Eqvdedz_7ALjE6E#7l2pR5e`
+zQ&af<P1KvGWdqXGYwuS6@$?-YNt{BPlQPOHx%jb9*82djbMRfBmIu$PIf>qf`Y*|-
+z|BjQ?-&60))4Zy*rnlags_WL1)RieO@78s3{GJ|l?a8R?D?Q-kyIb+BM=2wO7uY$}
+zQGjp6yG)!rL*tz2fpgzWCQpfTcLIh!&}72VgSj}|nS3VIm%DXeJm&2-`xE~fb0I$p
+zoVZ>34erx$WxkNiK2N<)&F#WIa4;>$KPctm)Vvk<z{Tc1zCADF+epUT_<DR>+sC(N
+z#<%xm%*6)_yMKFcvin$uVJz!Tv6hN-U5SOg@h(rp=P?bRhOc)o)2N^C*59t{<Q&_H
+zhwywh_%8P{xu&_cZ_s7$>rqFc?(f%nJbyz!PtD!oX`-EUWl?T{IMS~`EV`#NIU4^{
+zzu2#J3+fnavJ1pqTm|C%w|w^bGOkL1dkNCti8ie!cg*Y1cfnhH_Sysa_@z8B0Oc9$
+zr83syR-*6R=j6AHg;Emad0pTizb8%yn_NrR5eWY7U_jS#)KD>F@^#z!_`W38<j^)s
+zebN_ea+lpE+VgeWIr_U(^|fw>=+)O#mH*q!|E&CJxAiWciiPo`H^1mKU)$o&^5nT+
+z7?W(D<<K7;a!s(gZFX#(JGY=k<+f)2519+*A-iTIV;R`qIrwJA*gSXkusnAJeUOUq
+zzqQ2w2+z(B<2fA0C>fIYwNIVTXe<N`Lj7}!2D{}Kw4iV6T#vc5ZMazO4jIPSiaTYl
+zAC+%M<p~R-ttzzhKOQmY$md$zIiA5T`$$?&KQZQ$^ISc|dCa3?5LCskac1J16`PnB
+zu+g1a$8*<t?vb1G+#JYw)p$3$F3+vRW#JluYj_>=+ehPX*XFrqoy-q#=tz99dlr36
+z>?O{Tc%FL?>8FRjoS<icX7@RBY21@rB<bq#TL!y_Yx88jzr(eI-Ql;OJ!7zp8BJMi
+zbGFEhh?2xxSZjR#^v^~63c@GA7&U|4>h07)L(Vjh*k_1uC%#_-c?n~!2AtfW-U|&x
+z+GaY+H~a+Ul1MZ$tB5`gOJ%&N(-}J{wAA(KbHggm#C+zi9+ZP$5nd_dP4RqX*1sKZ
+zYMPEWH7#*kiP%15nDVz8jk%~nUuJp+>+^5xN^`9GLdYtmT;FHo{pcc{^D-PQgq&4e
+zB4yf#CCx_rg^-Dg>4%!bTtkrWm_zcPpJz;%hus{Lv5uz1MNOScJsZ4nu`m3vJjeWw
+z><?pB&Eq-XTw&XZnNFVUODYBjVYmw8+HskJ;ff3xGDgsmp~TIXUCW#(ZBxLT`hg?!
+z=1&!3@sW-6>D%ubcB5liK^dQC;4qaRn*ON+(M|-ieS~LSt$N!Koi6tt2Lku4Kv3GU
+z(cjhOpsk;0jHi)oE1C!c?*?vCdGqXzd2ZOF&O!-cd&9tQqh^US(Hid@xhK!PfM<T+
+zd#L$rLmavm*IBsAah-{47_OnXOk8ES&cO9)TtjdT#s%OU`V_8#xK77)8ZJ!Ap%Ppm
+zx`&EzU5+b&YXGhST>WuDt~->c%k{%`F0O1{FMoZwytq8L&cP*cB{2{8;sQP%>cDjz
+z*D+il<C@JmioM~c*3Xeb?XM_mowGqt&J{C??V%XA9duIrbll^)8t)h*&91;aTvng3
+zD^Mo3^FZpGR9SvUJpj)Vc6_iu$6n&K<9U8OlXY+(f#1+qxk}@rJ#=ts#H?exrL6NU
+z>c7@RImeG=i^XBgGv_$GiTS}h-A2rFqn>BZaahjr_^vr_!uPXA@@&lVx5#r}=&yVk
+zjpkhkX0eXQB8PN=bcp)aFik@q=s`n<NdK2_(+_6QkV_QKwq2gF?o(??#!>*jdsIw|
+z&d%=bkIBwxpL86$1KT<b8pF0^++(zN*vNAo)YT8N`j?q^?-q6L;BSn(Z@%GX+bS;D
+zUiy&poC|Q1c*!x4Ufc+pcB`l^rccN?{C_w8FQ;GAXvhP@Tigx0?;f+IjWnnFX^d$W
+zV;(fOc`zQ1HI^fCGyDErPIuT5W`v)F7id<c)$INvupICzl(wiGw6#vR!}`3TNE^@1
+zCj<SQSsucEf-`x6Xg>>UYKmS@PXQ-?;t_|Q!0+R@qPSXct;4mJ=aO+fhHEvhM{$9M
+z90D&p^f0cKxK`kTE_-MhuBEt|aXo}<39cqwjkq4fwHVg}xEA38F*>vWzw2=|;5vYN
+zEP_K0t_be$$Mt<&-@`Qz7j&CL-@)~5Tyt@K3)eUG?;KqB=`{y_bm%$M@pb${20nD1
+zq1N12aovRrGV`HXxVGW>?Q9$4o`Y)(?l<Gwge%N8@a!i1ei_#cTsI1}zQ2y=m*Mw1
+z+)u*=J?>C7uD5Va#x;qsAYH)R+?P~%V{c@fl*tLt_QnKh+;iZ`#HFw5_p_MWvT(2;
+zYrE7lq}FQ}=J|bAJ=XK9e#2hq!CEgx`NFU0@~jJW`mw%Cy|G5D`6b1u7x!4d`Wu#?
+zg7UV(92Rdt|BWPU;5Xa-V#afC#`CLm{r92%DPnRl_nFB{tH4WX0~rVWBK=`m=!udB
+zasSBF>yZ1WV<9*7ht9sfA{u87SmW(z;%$^O9Yx#UF4Xkh+{iQUa($ndCk9oI!dd_y
+zC9hLDX{61AwVa2w2iQOkDFn`oK|}Kk6JG-S25O#rcfJ@j!sNQB1HD}4GDg}6%3Zoo
+z;ETDRDu53Dxn%nY@*FedSd^(my*nUZ<c{8?&O?mpPd>ax+6O+5|3`yPj3BKt>m7Nf
+zVdIiEVJ>lJhNFqgfCC&0=%(~{q0F8WDssrL&J^rpQR2@zn#VEz!6)=_3;Gxy#{9vP
+z6UKSbCp|_qJ{<3NRiV$DR9-rZvZZKrojlby$`{w?v(M{fpQq)Yyw8O3MOly&FH|)2
+z;m@aO=+90hrA#M+Z@3Hb{|F7&!?aOC?%&zf2ih?j-9sod2lwky*Bn6~n#OK%Gk=fw
+z#F_7*4a!|#_<qn~{IhJHzx^*_U(Ow%WabGdpHtI2{^eEd58fXh+2Rh|%v`n0+VW#{
+zHv7i!Qt>!vNqJ+rdkKA!A$N?2%t5#WfKvzX?IiTKdXtX%5{tAkZ=0ImqQp(4t2IT=
+zP(8N`^3rp=wg0K-7HchcrhuG7I1W>|U+Ljo*12EjT<Us$Eb(u-oXa2fS9r-fIF~c+
+zXhP0sVPhL}LJoIS-`~kW+auMS4$YX;OHZi2=b-PQY$Y>zuzol6L%%h?f2*K(zd4V-
+zK%FZhby998|D!+b0M-W@7C=9;tQ`sCQnmKSqaTzTC7gmq&J)>`TZ^1kz|~cL1*<3X
+z(rq3(8LTwUdGuN>?E~-2Gw}W|{nL2A{S(%zuwIpP=O+3$*DUl%S{02JgKztdsM7U4
+zhW%U;bH()wnzUHbFvbnhG>r7isEQ`ckqSm{lXi}XCW6n2cFM)fGk-q5|FW1=Ogre?
+zadqCyu>RV{ygNrW=1JSTJoC{BT?gNMnQ}|4(c!zHfE&NR-VnKOOPt%(cBF!|YM0E(
+z%KeJ~WW@1+742*jJq2P5wER?j*8})Jn(Qy$?&vQpTqAJ#Uh6Lg;@Wn+zsUc%zj*qi
+z{xS}1^N0P#?hpEl+5hS<b{_68V*l(fX5t!+YXv4K@>YMb>R^8{@#me%nFsm{;#nbZ
+zXtY%(@oeGe(s&lu^I_Q6ZVEejTUqv_ERlPjxIS^dxV|_Q2WY~`ywVlfO2$i?{hZOv
+zy;`xn?QZ%R0Umeaw-LB0>oad+PUvC_bx@|2aSZUz)HrfA=p5m%&Wgrd(wcm+RLV-n
+z3NvJ-VG_@ztQ6L34Eo<D=o?$Z8Xx^a>D`o#Ml;r5#j>`!DEB+y6zA|Z%vm{bd@uMT
+z^fk)Ka{ixSUS7-VtQpC;gjY*BIRqJaA}+=(HAnJH%(VC}=2jZZ^T%7-q#hhz;H28V
+zJXi6)bMZ^LEMGLsF?=mURz3{A$8i`D##yR!IgawNdELg6YCjISd!nW}!0Oy`w6izP
+zbEb{br-)}LCt+?_M`)9RhnIfckK4Q0pX2x@2w3!!HtRRsf}oOhL7WE#DK|Fr`A#_p
+zSNTvD<602nnHk0@*zK0%TMu*R66eh$u8J3;a<6mEL06V>YmEG<r2j*)elE<69b1lm
+zQErfV39#l&;ClT%)U`1de4nlNGB18!w3pwT=f)|k0Dj}a*LIF9bK_Or>Gww+pi6P)
+zm&H1@mp~T+y~6sg<vu9m2V$<iuVo9FpFB_t84P96?%WL8@9RtsBFv<}K5#h)bdEY}
+ziqD^e`5UO$!52?P-!%Sh2TzqcRNjn)@#pB1JSR3BeCV}HLGPSQ-mt`N4S=p`UHDST
+z=bI(HyEtDxXZbFA7mtA6MI=x7GuG<<3(KS|wWca9Oa1bA5;E-M#IBCypa($D2Wnh7
+zH?Mb}DIZz7?X~E$<O8VtdEi22rJ@7#tI~8}-EjqLL&F&|DE?pQJcl_5qx^St*?y^W
+z8y0jm!0=Uk_crOLMfy1<ah{k`4BdVZ+qxg^rgWCi)Qfh?f{Rdo0b^0;1AaS*KaFYp
+z0X+IMhL4WzX9BMEW1{gg@RS1W^G*Eu5ok7J;-%;-arAM}pfBUM1-~9^inJ5c_Y3!{
+z**~w?(RL)Ra_Mqy(D#OAAg3%QeO^R;)8QIkC)e<6`5AP`ld11U+%DRv^>t4)T37;H
+zO3}CHuns9BOFKyOMkTi}UNrPULj*U0M{Q*r*BHI^!o%!iG%9U#hvV9oqH`Kcda838
+zU&S-Ss8g*=Ri`0th`&8%aB0{ta!Ffrtu1YtwDqHc-n8{_g@Vap@W);>Rnqx&uBUK0
+zXzHZIV$?fck1+@1<~lQ?i=DT}a9whph7zAazqsxqrpI{-@4M)>_;xXL&|H=apxpiR
+ziPCfr^kFgU{VeXeHwv9`-}sTNZ%P6>=%A-`zZx0G&Czf*-*9!@+_-0wy~`u6j|ZXe
+zlin^4tGITDK?@3Mcs@)V;(R27{hZw3#x}$HNcLOC1km|xw~FpM`!k~V+z6}*+8g@e
+zJ!4LLxPNO!oS&eNgdgYsu$0qoh#Qe{PF&K;X^g2jv?s2UH}!?<q?PO|aXlBf{`N0K
+zJK=k>{{Iba5FR|+PI&l5bR%UT;wt;YzPvqYaOnl;<6@2{A9GO^y^wNHW?VC_k^Ydg
+zpRG`NzUwDN<3s6#5Kw!_?8~3f7q*of+}b96m%8xo+l=$w4Svu2PJ-JSuTP^+UX-$b
+zES2^TBe#&TprxF^v8MXIle*PO+9ixT1}a)P=`x<bRJ2m!<)l0pa{r;+pgL38%ovgQ
+zeYrC!`8M(V@J1y&7_o_xP926Ucf3}#n+{{VRm=9*LszBzO<SiYT<rK_TifQKu3)g(
+zVeUuLP2#U#`m9{zM63emm1mOe^Jr6(XKSa%t2&ahT#h(H=MAn-yk@8v1($+eq-gp1
+z*}ZA`Jo1TP-9g%cY3HJijAKjLwgw&p?ZUgosXZ|8`6+-)f54-Ju@?vvt69n~+#?_!
+za}6(rUPidmuAjmk!d=>Ifln;|HO8ICFJV|EdHAIGPm;-V2|u5-)lYCzG@j+w19nxE
+zcS2XmSPlKLj+g_&2vkct`V`-flxIJAM)^|0-(y}S^K;4^xv@su8=7x(9=O&;^B(m7
+z4m&qkZ%dmb>Ih|w^B3UlM=mXMU%piHGK`b-lj9t(=|-*%TIJ;V_n<6g1tYI8f&X)<
+zbB@SkZmK%_G>@l!x~9`L(Bbk4gV;D{F6s$jZBmD&+_>Ak#wo$PK26%DX(4GF?e){O
+zj=kQ##>v5V9UE1yq==)+=8x1m63->xOqp#;;^|F;OFN9g{v2z~=@Dme=^U%sA1NB_
+zFB!%&uS-tPv1+qZu@NKuJ{V2ph~?7u_$cJ45^2w+|Jw{{1C_CJ9pc%Nwg_OAQ`6i=
+z{fTFhvP03rGZ=3Z_eN-;q#xgfTuz#qqL<my|KkHmv*+;LP!(g9{;JHgKsv{D&Uusk
+zEI3i}(T<$n_F0+dEqo<ue4MuDgWS_Vy*HuWev+<Shw{;(1L;Q~?osP8&h=<G&_@(b
+zfmWOjoH4>zI9Vv4kFr@A_!Ow+{`_?^eiLc4$Gif#bd|y-5wRHui#B1={EC$ODT7`E
+zxa9zsJ1W$;Bg53X@_`=aVh!eqy0#q5aR<ig1K)oLYpH~76{&Jqr||=*^F+3IfpTXK
+zaDnkVIX~o~IW@~=Y#_p2=EE3c?@GbHtOxwZW~(u$=wc@PFXKDzwaN3~ku>~^Qt)5;
+z7V`=d{{PgmoeZ-F{Db3F?DJ*?e^0ZL&&#vv*K=K5!T#GBu<zFm_8TH6hyBkZ|2gd6
+zeonz&!d%7!jC6xJ;k_R4K0sTAqw>n-i<{yHu$G=oCZEaisMxIQvc-1RV>Q=0$(nwS
+zxry+&A>IzXk8ADi3cWVXv72&hHn)X`X+G6Y3>tEInfr%Jy6YO`7tA+L8XXLt;e1~x
+zStpaGGak?4PE}^Omc^(~T=0)#dn{yK!emB~(gQ~al^@D)^81jv$a5_6oJNOqPR1m&
+zR!CjiI*}Yi*^7N09bD&L;sHOnT-k@%*H!2@<@My{ki+o}_3ktIjVJX@v-=}_)A9NA
+zHxKssW;SE)ok&U<o%t+x>$0_%r1b&H>T8cG9m<ne#C@yW8Jkl4dQEqJEqUd%cqR0b
+z1&k@24<4OQc_)&V?NNWq9z#B7dX&5~9DFe)*Z;f~dSQo(Epr8)ce6DV?rPgRRK??A
+z45*ZT4&A&o7xaYhXqTi8pJjIG>NfTHB3);-k=FC>_4mPNM-sQ{4wiQ+TUqz{&v*Xt
+zbh177B=0_WTJd|2JTEmh!5Br6FSodnueG2~aftBs1GdBUTo}-wIM0>lI`=tiS={r5
+zV&^K4vL|q#FH@E}cR+7hihE!5BMnMfc&AJG7c{jH{GreQe1fD^)=OCbD!wuFmm=D=
+zlE>M<8xo9LQOdLHpj&c3FEjz`Y>jL$Keg8u$e<<WZYdKm)--9zLB<2Kjz~Inh<O@D
+zDqXCNac}UR_K7vbV`~KH(;4w!Lno{nt7HVyv$g%G5AT-Wug03B%)s*sydR_Y=DOJ?
+zic+?TjooY$7ZLw7E_B%@`jEH#)Ghn4O$1ugwu#g}Ht=c}{q)iIJ;1j;z_C5}e{1-O
+zysfz38Uk(k_VMofm7nV0d(O@Q&A61ft8wsdkFpgiJJ=?riv?+ORQlMLq2rU5(f-7-
+zvc0byS2ECm`Dq#Gr_2Y5HYx*a+}~i$R^2<;U4U;JPO=uMOY~ZckoT_u4fE^VUw{3X
+zXdgqrcF=*xK1v=s)t=BeuCIWd;Qj;mkv&J5Gf%<pl|JOzO7P1{4TEoftZWnWk9CLN
+z?fIwLZ;mF$Gq;Xd=u(~=FY?@>>ka3u$Tbev-dWApaLvisw2Zev+w^cLdo6RB&%l!N
+z5s|Uy2WlUeeo{x6nxM@@=1US%x2NBAymg~!_W;)Cl6Q+aiNW|?e@TlwYIJuVvIftr
+z(TavvYdeV#@Vf@^8x9<!ZFIP_L){d|y#CS%jQs`A_hl7E<Kr$;KD;gYs=vNq#J0w&
+zJ%(44-E9-^rtAhmWt*T)f->A$!E3tYxIatVS}5TIe*6$~Ks>V8wmDYHITD{}BZ8c|
+zLC`m6PGU4<g3NZF);chGyPO9t|B$CM1`vILo=7TsNMES^8T9q$4EiefB{27`VpIGt
+z9m-zk6NRe0mZ3@WxF0inlghW?wWEav712VUHLl2OH3ljf^UBIAt<-UNI0oFyIyZFm
+z@D=z3+?g09?ktwL!yF+)hbY{M0(WN&V@$YZlFy~~<a00<iBl)RkzBNOw#Jb`8b|2w
+z(0p-=yZ++tI1<6LA6?uVM>c)feU88WZ_M%EGv@eq%&|30#oA_UCffhF2BO;j!hKrq
+zuVls9?=|khIQ4(7fyr_5fvg(k8zSQ%6CYwToG@tQud~UM<|LlY?r!70T=NL2J80P^
+z)i268+0b#At7kzWbIvN<uFVy>2SM*>OZAw*Z@q`R0Byh7!{6kWd41atq}-%sWy(#z
+z)3LPvT%V?g!}1{GUDV=!@#3^jDD_^z=DQz32Sgue_oYt7zF2bH(D|&eJ+6@FizmtR
+z7mR)QW!?7?(9MKcQmXt_K%+6%5ulqhi}GYX;EOST<hee<T#BK@yV+u2mF9`e3CuBl
+zzLW7M881Q{3QF7We#ilD$hg>ie?EESCKcn}2sYY0rw^XCopCWg!+0j(gVZC=q<vNM
+zUQ^l-Zjk&PI9|%VSo%sSz2OF_Hx%}zH-wblu%{2dniQ|6ovXMr&F9}@Y(&7fpi}Xn
+zyE9<^1;8~6us(bdVXol)4*t(g#g)Mt_kRfeuh~unKk7c$f6e{(=K4z~)PBMBooTyr
+z^Y@^GK!$n$1MnP8dv^A*S1%%)y7oh9Gx;;hr|h`Td<>o}`PDS~_ZL3k$J}$DG-J<a
+zBKTb7V>NCoW87Cm4tl=0#r?%a+V-T!eiQBDz%%kq(zg`v1mE;h?giiUuRNCQX6t+J
+zr>HkSD*5q}W8LY&iQJRhqtC)P%8w<buhZra)p`9~?U(T?bB$iu;x0!2svS*->`2>8
+z&7U8~oILS?g6l=l8@LC5f6ua-hCGb2k9^R5?#|BZ+qdZ;WPtIyjah*)p7BL_en0B(
+zxsS(ohcf2^+P(Rr9{cylwBJae&{>6bcH~5Q?f&CLvTOf-n*Y@M_h0@<?cdi__TImL
+zI5)k2KiQw&zyFfI`~H3A-aYrEuRp3~A}v!&nP`ZXiO|<YnlAmIE}i50e&B6Wr+VI!
+z@tl4dTvLoY_Gs$4DRasXnpN214$i=>!#67%p48)^-{+B^(&n6B%sAqMQv3AR^ud2Q
+z-gh)iJ^6)+e_=lUxBQoN?meb#ggF^|Qg?Yzy(dL_K^@Zvd<x^6^QliagP%5YKYvnU
+z!m>Q~pC5MDgWl}JkB%}G@hx)?dn)E;L!!TEz*UXwXuQAZc&fiJ-{>y_xH|scU%ZX0
+zVPAhSaBqJx=hgmV0<N8}^cOGg=`ZH(>MyEZ?k}eQyfgVW&jaH+0A`y1Qh!nTxBg<)
+zU;2ynJNk>6e?nbb`io4yctz$qB|m_iM4RAD^BQN-FvS~bKWK<u;|zVfz?liScxo2$
+zY*)M${PuZA+4>FhDyN_IQUH=bZNJ;$q4dw45`P!?xGKfVL8GYm$bHDzM48ipy!xkp
+zvCqf753H$jtoxl-nM>ZAxt7TT2SDFCEOqJWajxl9z0ZG;9Au%al;^A^2ZrVkNm!2b
+z56)F<X(?oe-aK-}g_=hWBaf^rovH1hv~P?6uFgc?IKI1&DEgU#)dl@}!^)^x==`3(
+zt0>nh*IqQS2>ok-{Pox0D;bMtTrIqNo^p}QITlJ-SaW_Y>t`|cDP(=Wly4@*FUWy>
+z6O?Dw5<f@XR{<smH<qb5?9$#r8|hMay2+fuQ{&Gjlb6n+4b@ZT=8VKuL>uuEo3WJ{
+zo3Lb9nVa{uWP2uV7WBYP!(8MLKk1{Vd~oWVp^d`nwdY}8;ZVlpJYVcrv2XzIL6ve&
+zrYDT%%?Bz+>akJBlRR#Xn<d9~Q=Ik}jx9x3rR-)+k^9@G<^kvUyUX<f(Vdr&hsZeX
+zz@1kpvjtTgyfgH?LSRvF4M*(CThy9&l8TOftv1aI>AybW!ZP=tmEGko*2{4X`9Rs<
+zD~FMW7bc9FO$Vq8=4d&LGMFb2wuxKR%R5JEyxK&(YAlsJ%ch@o#2F#|;vvHVulD|{
+zJ5RdlBy&N&i23jv!8*^-8NxH1@CnvAl7@)!((Xw*0vh5{$NA@xq&%~*&DVWzYlXiL
+zp2xhBfC=ZC^;MEbqdwLpX;X9T0C`S@Q0E}7_IIyysOY;+>R3i#ywqzcTmJ)eTI#c#
+zls-#*$k({=Cieo1l#a<9UeNjW<OiY~p=Z7<^-Rp^k2Or$KFf`e{1)@7eYF0j_gFrP
+zq~~=%eX~cEx!<nrEl=~D1N|5(B_CNQ=Z}6OoWCWh`5Vdkt1p#jJYs5Zdjx0#&o<;^
+z{$^qRXip1(58ZV%Ip_oJ`{olxiB~;oKfQ5%@RZibrg)}YHx+f!x9B#=+2w#Y_geM>
+zZsMcvv}cUJH|>$O&d?%f=m?Lq0eHzhQNz9hba;OoWl+*#e4M*V^DwT{4MnN3Pr@84
+zeD-DFbC%YzrWnd^Cv|>>>$6nj0%J&Ju226-*5^LG=9)9+<|yW7)kS4)QIENidKu{Z
+z86SYYYaU;9MEU+!ZsPhYP8jBn1C^Vko|vnASJt`tdi`+>XXyDey6AtcD`i1b*{CRE
+z(FcUNgFkv7ydUk%miCRw3CaeLB}zS+GDIKp!ymz`O)axveshVx%62~~!FVL^9#MO>
+zN1*e}ySU8VdtrAOkut=;-dA$R>|rWjfYH@vU7*tJTW+cEVQ-q0q8TE+{-h6t5Yn$q
+zR4i+|nf^aV)EYBWa~>G8DO^N3b~0qY!G6eu9?1Fz^gci2eFL&S{@>!4;~F!#l=44i
+zfBCK0;{NJLcNu3zAN%IAA0g%6=0`ucPw?~+rL%Z2KjmZdO20;bG3wQjg*>6nt~bo{
+zTC~q8+kClaaOvAdUMbIXQT|Xq+{{sPMj}gWY&%DvOYw^0L{Mn|JleKRuXE9llkJoV
+za$-ZARlt{vnBOLbI^wK*MtnZTkdh-m<;z&3wpybT^!ojb%=M>pDFi4(EIG)S7^!;h
+zLp`ar)%>sIAnMwZcY?>K^z1KVt|MlFlj>hN`$j)mv&dOBOrCF3eUoFE5x<FjOWFKA
+zee_NDdoTCK3TqwmKYst3wri!~kng<tG}_`GzI}$X3bc#%X4#fpYct~GGT?Bvr#G!i
+z!NF4zDe{VFA^9kC4lm#t_I%*O5ZY;L(>Cj2%AYP}b7j5MEvREOvA=<+%;8A8^)1hc
+z_C?9G{C%CbFZq9y`wr+}?9wtf>%#7GA$<}#UL$WvVt_u=H~{0}GmpvvCHK14Z!Na(
+zWZPJGrI-tTN8i@exa0q|9<j;&!$->AowG^R1w7f<kFqW1_1Mwm_5+yH67I+2N*+~m
+ziczz`Va~H`Q5}EDBUY22We1gwi!#hRmZD)FYQC8%!%!}Hv{Rj<@Z<&(Iqxf-<jwce
+zaJ<QL68p8r)21Wpo0sto?e}v36f|D$pVH>?ZRV7pns^;`)6T>-<_k3*ApNzlmY#u5
+z*hPCYWb3Esqk{i`r~A*d$t|5}IPW)3(l6cbw?9z*TL0cB)5aek`wwWht>%n+0n06h
+z{`qguw@}~GZpLpHfLBvroh{|B8HxO^@0J9Z-{555J^rus{CwMUYCZF&f2sY2uR-@{
+z-l_C;p5ILA>@x3EpdPqb?~W!f13g;%FC{Dd>icOvJMBHphqk$leP78Z5y&TP(4T0t
+zlYY;Z%9-eitNnf-U{sX_T?_cNI1-JgZ0GsFyTQO&?px>9Y-uyB54-%i&dnCNKHc{-
+zX>-l+-}_8<@4aMUz2f>d4OYHYF?rrE?%R|n`G8?AaRS+55dFufU(i?Zu=I(&A#Q}m
+zI^;*M%RRH{i5x3B^xyIe8xxJwA1hz`W72Ll?#H72&pKzqohg{%{d<t*hF@OhwpXNO
+z6XsV|K1jRWSC4eJalMqC!GpC-He+Op2QQaAn7r>TtR?EcY9DO|^vsEyp#Opg-;@9?
+z&fvi>{aZYE&->kZ@YC6!%!3)r{g3Y}-#c}7D(#o%LA~V3U(q^xx$dVY^j9fgGB-`8
+zEPA!*E{l4*Y<qhA!G3c5{}1loJwB@9{2!maB}=lwlLQn4g@eW#G0H(u5ouinEfv}>
+zh>A3|tEDY%`Lt2dqP2FD5I_tV?orXKN?Y2ZrC$1>7V83P)!G(Ytkl|ebCzQwi*k|s
+zCHs57XJ)gzNw}z=*6-{0$Gnm~=giDA&ph+o=9y=_=$HHb&*Uk)jyg7Z9NYThOp)9<
+zp-{?w-rXc=9rMOG<0sOz&a)u`v~DO`r+@jG-J1UejKmX%Qf29Nb!J|7KGfPAAL^Yu
+z)jHY!!^}Ey?N61B9nkE2cSx4cYLt#Uv)*vp_kDC;1Kn%e>sftW%5yQFZFa66(n<H#
+zczFJ(_R(dX1EIX6?nb<o^DO-;w5QL7Ebg?=HZ;Gh9-bX5b=lsNlig{#&9yV_kdoW!
+zn1>nY|7*Mp2ICkwBv-dBI(qzl*T+wme`d+qCy(UHSirEp0Cjs|4k%}h4TZhW!W{Op
+z8Glpg#P)qO9^HIM(;#5y*`ACJ!(2{vZNnu!L|cA*NXrjf%MT-3>^g~Y{NiXgbYy4K
+z(Sj~?#BXX*@9B}v&P!G<uD^d!?H^2+dz?2UGBT{j7-lFKo<H>AW!*51k3OB^%OCO{
+zgSH?C()9JtUOoSs|H}Cf==n#xjLknOyC<e$*`Qz<aNy+T=8L;O+T2^ab^D<6;ehRt
+zbo(*pbOHZ~DgMK}BI`iI6_++UH(6cxM1Q#B!}E$^npZ62UQzsunb=g=@4oMg<nSXO
+z{`>)DeD?W+IX@Li8|&hUyE43JHFV~wBbpt{%J3rYfs!BH4OqtG-8tQiam)@q$7nx|
+zr!;>euOg574*KI+HJ+!bKXUSV%sIO?O}jhObi^1YvgXgw^H-v9SGZfnxVZ=Qw@2?t
+zl~tm?-1oE^CGX3#>f*G=s9(Cw(Q>b)1ml>l&-d>boQWfovZ680IQ_)?@AGW(<(WBw
+zP7=LcB==)oQ5U}se=E_(zX#{8O}=~oW9X<q0RFcOZ+2c8oNM!Newc%h`{(?>7yiE_
+zYfgUy9eX9}{dRC>PHFFOPUYI`1kWo+z}qnw)1}TZTAr)r^NmNkj{7EzyD!Ex7VSSa
+zICCe8h{Yvs&}S}ooaFpv@x{BL@0;@bP-6SQzP-!ODD3?#<JTeMDU;lnMiLRwJM{;b
+zvBBXP&{fc(U%0s0sp*9Gu+{~_7xaCx+T<O;qc>E?q8qmiEPTTqj{cSVcU#s&-w8)I
+zR_s<WKZ<{b5~3UanGGvxhVZW1t$bSl_(2BmckIaM+Gm14R9>v;>iR6Y`gdo!VMdGH
+z$Kp>}{Qn<^)n4al%vE>x+L7BtawO)9v1;7IAg`paRi4!f^Uj@z<sA{%ou}-wAG{Cy
+z0<cxe_y^dQCCaw^;UTr3_v5T_RX`t}dTO(C_TVhtXo8}rOZF*U>i(?nzXg44_(jc5
+z-@&>14fCzZeaRqW;1)_=F;v52XkT5%&aH9w>wW9m?6wap`>-5q@~*7sbq7)f>kjF-
+z&w`S~==ZVyF@EX0wN}VDWx4)sz5c7Q{%^the_!PzEbQk_)<G|H7xqiMhdx5`?85E5
+zcVlSJ_>z_>hf@X2ku=rE+)Fj_;rm=k5eeD$VddxBBt+SGok!rG=V#8oG2Z5U$fpp$
+z2XCtq<Lm~=n+AM$#aGAKj4$89`>;Y+*h1gQLHno*&;GPljqiTO`o+iL{en1U-7YcO
+zVf^F|nsrWY5tV0udA|ssPkC6@1CFCZy}^h)L$Vfdau4HE=Z~`=(Pv2C2Hl7=lpoYn
+z4PG3KCPw{ooLzwLm!Z8%A@4S783@?DQnrMc!_wob&M$des4;kq2U^wn{931BgNiMs
+z-O;RJXa2r&W1Q{1peD}yF=c*6{3YKnL_ezsj&_Pe_43Toc<pC;MRb3L^fx^7bc;Mg
+zoscm<)|=8k$%$2uM2pW!$ErtEtoqp^H&&gwq`JoZZ;>(Qv_nsq^$$o`7-yFq%U*q)
+zn3Q)@sS#W|f4eh7mu<Wwq_o+Ye16xp!#>%^mxYRR%lM9_NZ(PwC0<qW;n%k8BTg6#
+zXUzj0Z)lb0c{RR9X&P)1x&HXgCy0aVI0s^0zJYP(59_#G2lQjeJeSdyL5EZGIH!yy
+zV4M)+RWXO289x@uX*{C@ybR=Bf8x5t0@&9hQU48He_kpzPsn(oh|M!NKNkz^Z=l{R
+z`YOdNo3u4=uc9rlYhLTOJH=8Jh~uBdI-6&F==+N_*niVD-S@L_&s;>YA<fRg^K$vn
+z>8O`4CNqZefsQi-12s>Dyi3cvpUyyAp|N(pxQ1s49>_iq6vaFG?hav$>MYRM%o&2L
+zvp_rtMBO-mIW4Z9V~0{Ietk3SsqXrmhj#yXC==tuyHwIKKBtieY@X@<lbrv%^?jz7
+zq>dePenBb|bN(5j;?3!A&%~T>Y)!|Te>?Tz?ZR{%a$3iHf2BxL*VxQl!5fRjiVa0#
+z)A}MYHC80H{H{nCD0`kO5&@K#*A<Csl#wWJ|F%ekP@aCaNNoR2ky!T|l?UL3wMAmh
+zuZzU6XNttyCyT^Nl$pOO5(33oQzXiNiN8-2iCK>qiAgA%e}Q&?j{Z=NtSS=IP$vJl
+zNPJk`x%0Tz>Tx}x_p<(ZM~2RNbmA`+Dc*fI!1?ldxq1op#Fz2>nojgM0ncYMuT9{F
+z1ngwMw;%%_<~6Nj%X71K_wY4p_;}xBNXE;aX%~X#l>gi9CZG5T^S*9K`}<Um+(5O8
+zS5NP^%#%6c-gL-+Rowb(tuAwaN8GxMRi`|I4EvXkr+Xj^7bCXw9<90d`}<W4<)!B;
+z`ChE|7JZ>e+?uH4C$XNICiZpi+^=+wxmoSx?MjvH95TQu=!7c|^hCC!bO`82=;I9C
+z$8U5TMW&Bhhwa~__fV^|+V8L9cuKaXwtYM6`4!y1xnO{^y)w67o<SM?f!1HDmHv{C
+zzCF5cFu;Pg78Q5ZGmidkrNdmeH`jjd-`yT5bjAtL;koyd_M0&NGTV1jE`5(1rT^rT
+zqZvJ?$9CvBz=w=ofsUG|?-geZizieo_3_GyO6Peqsc857tnqU1Jv4NHv!>H{&qE)-
+zz_X@uL;BmK3@~aFJF96s$-AL<{2T4ba|<Fm@MO=;bf#PTF-5mGN?9@`@xSe<vbSl&
+ziT*85w<~#)zEhC&D$?|-^EymP(`!x+h+KMQ>_rH8;~hQ2hYfIUtL$peHYOE~w9d@n
+zW=>Mk^24N0t=IET?DSc}w46FsblroMx%C=(@8I?14`q8~o|-YXlvif0%m==Qx%R+|
+zwxv?9(%zf|7*d9ivcP|<$~*9F4cB@N*G+(_Rqye+3;HGQNn-wOW#`I0Nb}(g4aoRh
+z&;WQfeH?7>TD12>))+VKOO=hiaDZcVn*T?k*Hb>pI1a!|+4RN-dcIFKhekK^{S7_e
+z3w6B4y;-mf-kU1h1Xzl?S$lVDd+SG8--n@h9KrXl%Iq_=^K90+Vwa8=EGSL{lWMJ>
+zrg8b*tTuWkGd9~YjBn&kN~dBxJoh<hOM3O5x!Z`Y=Q$C^7#o0R-Z6MK_g;_1v$Nx7
+z&wNaskr!xd=Y+oMtTN!EP9NEsbygX+L5B?v-Ld8t*m|V@(3Q3iGQMZ0v&wheqRujV
+z)qTn%M(TYQw|OOWl<`VOi7!w(N(*zjs`JXi`i4BOeB(~-M=9u^*tJdJ?&WO?cLTC;
+zH+D~|Z05xSoJY>>I$u6LU!_^!|0)aDDIHT+nDu_E-p71g_vOucw{lyi?r%R(dzSQl
+zq|Y4v?t^aZUGV1z&r$sOdDJIw&YVxFaR#%U8in`UwEozt?+<=l%ZGV@#r}Q<j(_b*
+z6|CK><kj0*&pog=Bf|$cH*~^9`+FZPzT|an`)<tY<8O?EK_6Fi>f^WQV>12T_<uF*
+z%So`eW|`yc&DJ>k0OnVOqX`RRiGT+*f_`UVZLY?*2f#yk=6XhGg%hCd9a_-J`yGC~
+z+m&oQL+4!s9nX?HxYlXZyshFH4HI}Vb;_AKPJ#FNf!Dny@1P9Ix{3bK_h(*^KI?sT
+z$60S-em$OV)y7ZB+Ow1TCDzHTQR<FPu9KffVK4BU8}p~&e|e{TJm#zhOb4)*@`CiU
+z&9)g&Spi-6Kyjgzr@!afKFlfC7thDay~GJB9{}%3=l^_`mr`^2tt>phc_39bX2bv|
+zIVgkYw9O{htMxajXVDhtdHYYJpYHbcJitl$#J;_Iq;nIdW3DGeTgr7T4skW`QS{v}
+zDs^hwWS-!Q(k}aFQrUIPZMX^W{C-f^7$W=KT>au<ag4plu-c2v(|eIGCA;5?^a5t^
+zlHx8f>p77=UOe0LNG{CY@Cy>=HObsP$r<7p@kwD7pOmNf1|Lm!zb6U)mhgtM;7RX^
+zP00A0iNj5gWcI^2E?@XXm3xKoWZ~zklfcgmz;pL8@RN6v_*vZvKY1EI(>md2fH?7<
+z?Hzz;N>bT@`8sZ@Al?6Q{O|WZlJUP&KKsE3@<SV?-@>cUaIe(<yPw^j#p6<n_l<j3
+z@$g6WyQlT@E8bOgR_N#R^z+N~_sjJ2uzr3Co~QSQXC6>>=V$eI%>nh@U|oN<es`XJ
+zevW<~$*S`z-o-yNz;O@C<%RzDKb${zm_B23mX4kHW>z16-Kow7y?ajPY!J^s{|@V&
+zym3(*;W~DX_r0lO=er*sYj%d8Am6>bt2Q{_nc3Dg=e_?i*tjln+<f~-#&nZo9(_*_
+zHao6=e8Co>3AVf+9ekWQ^W8$--^2ZG>Of<y=H8z0ECa@4S<qsx;8}4WWUk+sZ@bQo
+zCQ2U=$x4I%P~HPPE6%gXGM72%`5Qx3zJ1p}=G!|X&$Z2cv`D<Lvpv<AgiS9}Dc*g)
+z0&uLTZgvPmzO|%v3GYug7E@leOt%&~_X6)SUom6PLXEBT)9^caw+U=N_O<hK&$Ydx
+zd3b!RnmgXxG2;oBn#V}AWf%QYfRix(?IOsKXvk(;Y=>?92J=)PR9lBG6!MNE|7ur~
+z_epvIcOT&SF5uhyWP57osPo?43b;jhf^7h2>HFm^w6}>ks-6`OifiQEn=kOU1)LQ#
+zuf_yvzdS97FFb?o@%O2z<f<(EQ9sVN)PClvz#r#&XU%hM5wtVQ;GGV$;{1+v3F9lM
+zpQmFISuY?!KcV@~=2oTi<O}g^2=#c!7VEKH!Fdr6Id`0$O1^{f4a0lCwC!fa89P`(
+zn8SbtH1QgKk9|bVTOSxHv0tdU^8*jF@Yj4&&1W@es)021))#Ej;ViTv_e_Bse`vlP
+zFqtO;aI>E>?iI~<?r{lq?+)oLsP1GYt-9WtZ&!m}I40PclD9VsA@3-GE%z*cAN`dp
+zSq`}KG~72{q;mB$j-Su&|Ai~Lje8BzB4Gi>;ZJ@v7{e!m5p~>sl+XT~onYMD3C7`_
+zV64_K&TY<xk#~}tfRC_YtrZ8t^WB6kPu^J#eZx}sdtU<BCX)^cAI88t1&A{@XoKI5
+z77F%4eXo>T--l#wQm~t#L$!`(#e317r)~v0-mC9l{{Vkqc(_RX?i3-&uL!$e@(7hP
+zSMnp`AjW%xa$zgccynpI?Pi-AHrDN@VdH&!`<P!8?WgC(PabGeuSbcg@6+>fMA!4k
+z+-Fz=dM*r2FX{HZ`a9mw&EL&UBFXXaevN5E)xBes8Mjs_zP>{7PKWoN1dREP-<<E1
+z-!GEEx@PESp@csI{sg@?&kEXBDet$s7wd3toIE479DOwcH@sH>ZF4X5D;1gjpVQ3C
+zC0|{k@6=-cphm1y;~yfq1naUf{E)NZGQcxA+H%I^`WE-tXv;JGUCEbz#5H|ZJT`!K
+zb9vkqJ~O_KcZi10kbU<N3)?)QrE%W9=?(uRzR}#6h+fd_Y%psRVNuiO!us`u=i=LW
+zu=nNxr}JU|&9i%9e0@xHXS^5he0Wv?xnbgYKRl=0u*CAV&uUy!r=c90|B^fDj{U9G
+zEAN+o)#3Bc>ieZ;<6ZiHo(p8&-WvTq?~hh>HssW~qnkQ2@T?EUlj&z;PMzu9)cL0F
+zr~DZGe6^c8Q}E2})KB^w)}5GD=S%qCZ>Vqkk&iOIAAK;#9OLCGB`r?iJpyHU=W$Pq
+z{P-cKZIvrYI;PHdu@FD^4{Ubc1kZKrbH&AY&V8yq;1PX*Z*?|daoinT8Q%&y=xV&j
+zW^R-|VouuwpySQpSH<||rL!}%RRY@jroOKy|5MS#_jRAl0kR6~dll*^`7$@|vF1v;
+zS%J3aeHCqB{S?y1!kGU2W0zbn|45~NPFeGKM<0!?ZkZ<xV>IK5@o0A{-cvtOcL`i>
+zb5Hw9JP+yT51*ac>ki_1Ir!Vuhl<2V@Hg_4E#N0B@&D=-MdHT(LL7M1Bc|d1F?hBW
+zWg5!o(4iO4wmw)SUPj@%eQgxRQGK<Pw=>8e*HCB1nr9wG?E|Eqa5eKT4rykLbb_+D
+zN#99jYCh<X%y(a;dEvR>3zFBUJY^5KjrzFDn&1rPJuTD^<UZj9$j(vrV0A{VjC(cw
+z9yaVezcriZYvbHA90Pf86*o&BB4srAS4_-ra~#UzXkvz5|AtG+|3??5q#i<enBxF{
+zZO%yn=EM(}#_BmaOXqpy9s}R|^!uQG@8LOVjPaBa9^2L9YTjF4um*F%Z>X=O>kQN1
+zdpms(J<}5dALhIdK0AF!gwB;J;)zXiuME1?a&<RX9`o&mqi3#S?0i-`Z-7P%LP}o0
+zv0UMm-&CUA)6dStiKN@*J%C&8FA_7KZ%-|uK7rDJ5_q6UJdNkHi3;%jog>7y^qo%X
+z9#Zlp-rX2YoH?BOp1iN6)GHqHQQs7h1?lg>$8E1TL;A0!Zfhvt_1`X0@`3lfaPK@_
+zPszDxi}OoYT7H#r?kHb4j@D0S)<y61y1-cYo_yreHL4!<%>(o~G!=>bShVHS)yiMa
+zy%twNHSfV3VtiWq4_bC!0eu{>&W$`I@1hss$+jyTEfwZOnTz`E36RsVMJ>LN($kqY
+znewlf((ej*j^<qaT??9jJ`G=Wq;)#!tsZg_aHeU8w)4i73dW+Kl=Wps)*OCGsJxCz
+zz+a&3NLlCCS#{bv)rr&30=nmSF03Dqh}ie9%+RKhOCtru#b4#V<wUu+J{WV-Q_QlH
+zOGQ%XyxQKZzE`bOdVIc6d1DK++AJuzT0ZZAHhK1T9p>onPv`Qk{W5powTWNjuj*^A
+zy(z0Ne^y`fbzgb9ub*X&m3^U~(v|3EGVfUH)DPZy9@6@BHZHE!xQKPa+e(cK-d7i2
+zRwTxQR`!7Y$1X1t{7s%W13ZuSfmMSBdTCq37hBRQ8dXd?@5ywN9<VM?g|0vTX7U!X
+zgEYqVhqXR0jXSs0{nTAd6`+-28h&BkWOGgS!Lz|xWBN44)Q|KJd)H^pYMm<XNGLwL
+zMe;|UiK6aT5i4}2iaYhYzsYw7-$93@eo5ORP5)`QAZH$^h|#YSwhOck)<f%#BVdbB
+z*8Bx{p&q+onMj_WwXZY-@{9VqX+&(dsq}T`u@T|<&fQy6N!q7zeNXLEo$3x}UFbR$
+zu=&&V=_`?aN9H@<Mg59MU*}cSe|t%h*fdy(&ts9Bn2!L8_bFxnjSV$AT#LM0!aggN
+zyz09_JFoK{6ZC(c#61&yPygOnYq{eOcfDhR_8-TXC~+sLn~yac9oh+gv`v1zf&JeQ
+zw0&9qpKRZdi}qM+na^PSkWuIJhw6N^4ZLhysI!ucMdGtHK{f8qcbTn;Jl99wWmcWJ
+z%Pjw-?=rhi-(_}P0_|+M@2unRH{zQ%`cKF+jfv1V9)*4mzF1%`ZI$w&8gK)T?$4Ln
+zeTdWWa_3I8>9>|SS1kxaN58t|6pf?24{;C3XVUW%sbhRT=4Y9npV>}<wY0S|Mw?}^
+zQvv;FB--R!GpxGANZ>Az_TzxI^FUuC(T*^eJH0@Y?j9w)`?qDJHOCns?}}UA1;3}K
+z?~41F_@(`F@d@zD^+s8^^NNh0iO<G>_Q+p5!%n#AUm2irt?-hDeYS>uHf)w<5_aO;
+zchaz5qhY^B!tT$4J+B+sx!!+Wo=U#FQ2E6UfPacxzz?5nc6gt3p|xD`&Cp`zDF+No
+zv*={0v$Oo;)5&m2Cri7f6ZS9fH;65Exc4{GTHypb=%hjJwcMQ`ePEu=rJd-bUem|Y
+z|0sR@vi!vKaRBmzf1fXQCpSu($c2}%W@uvRf0QQb%1=xaL-5VY`!c>#@^8k2OMfTk
+zU#L9mW#nz&lQgi@N%QklKEj<rmmY_gbNy7rc<*kVTs!697vvAruhTr@sQt<Ei1W)&
+zl1Gest}X3T=69EZ9%7#`k4T+)VtRP|Ox|bN=+OV1p8vESm8OID&iwdvaM20qfO=<|
+z4hphp;D?{^{6BH#iRXXk9Ho=|&TuDR{DkMc_9W)q!Z*j;CxM;Pb)N(}#?#a(pvU^d
+z^K<Bg{m{O5pN>ADt4<0wJE72ghrajS-xA5OF}0@=h|P-U8~S@w)oF^&c7Ak=NREj;
+zBz?n1tU<<D7wGq6=;v%nC7;&zn{`i-Fpj2DRWYUarF~e2fc!94I8`?;f$X?3K6>C9
+z=A13-1-ZgIwn4Llq`e%f+iF0*aK5O=HDNB;FY(%M=VGVIT;dqiSs1%BWOUqs&O)7-
+zIbqWNzv|#~ZHbWBMi{tm40DCUe%3B&?zq?bEPZErkH-7r7V*Z|j3{Zm;le$DC1Abf
+z_(f>~uzT(XoR6KkrsW>)E8*D^+I0B)d)`HYzYp=Z@qlBA35lO#?G@>|UnN~wcpjN=
+zr`MRkZ{CmdQ+b#AvMzV2pPzM?`hMmCciqMuQw5?IZKVgCBeym?uHZd!<|*+52g}X6
+z_+#8pEk>aoXV%7HBgNgtOSlhZdyPu&>y-t>WX4K9z}R!<MP$3o@8rdEwpE9Byqmcy
+zwoKlaYXD!p%oP&1%xlhjI=n_?EAz)2qQT+)nIaUIdkGfj9&4<swArb;wOQ67j22|a
+zhk@^ZVP|E-#~eIq_}1Xv@!<PmH}EmXM0Ys;d=`$IG>-qkzBo7X9^tDKoU_Gv_DVNx
+zd|&T@pJ~c-cA(c9hxFpc+9RFZ#`xxL`aL_V->{}J_D7of_A%<5n^ot=tU9E-8;?=v
+zysSEdn0FrEr|I)L;HAo3hVK_S2J`gtJO=8(p2GLF7oMfR=e?JH)S<7qp8cQ>zh^zx
+zxi-CCjXH&MtiwC;9dU{JB{R{_?Z?2snFZekSz|g^+tBBM$A0i7wKvN99{BE0`rUi_
+z`B(MxGxhUU{k$6ePS($C{fu{U@_x^=(C$C=vphWeqW<n|JbzO^zaP)X>gQ+T`Rn>Q
+z=C%}Y_CC^{DhulO=i>b<`h64XjnL0|5B)~{oN+zF^z+Z-`E&X?=C15~{rr49|KD^!
+zcwV8OKdGP5ufuT;pIaoJ{!V-9kFUM<+Rky{t>M2oZt{8aN;_q`?W6R8teMZfILULF
+zbKK1}&pj;qQto}O&1Ht;9&<w?I~KAC^Y|FnXU!<JH%mS`lRi-~sf9Vdv6cqqNgvT1
+z8^56&SdPn_2;HF4DN=W=v^e<28>y5zSX1hpn2a-*IVjBuK3T`8DM{DcCH-8JT9S~H
+zT&H}`-+cEMww3jpvh<I7Ka74K%9LI%<!ka-kXz*6qAt!cx3{^H90TP!&oT9X*OjEa
+zst|<^&j*#^x6hn<Y#iK-x{WF?8+DwEhzI7<368OO2Lt^zE27O#sSxwXk33e5?HLYQ
+zL9xtHwjVkZ?*sQti1JRBc?D*3YyH4f(yepf`K-FQm$4jXp5qN)X{Xx-9v;Zc@_8{Q
+zo!q-L)OUL@{`2Mj&4ki}q!FvH!{0qD#*3(L(8jizwMAm}FWXaN>Xc88I4XYo3pQ~y
+z^)tX7#&+XC?Mn-)`w(0O<80>dat#`1A2EdUvgLMqNZllwn0%Q?T8}rY*pyJb)HPyU
+zNkR0!cxA}bn|@vVwkt(x$Gz#ox?jq^&lZR>*EX~l?=NHRn5Uof!gfbrrv2a++8Z>k
+zq|$Qt-cETEydONYm;E^REnXdGSA+|lBch+fbsK&{B;7rFCD`Uj(bECUC9#m`&HRf?
+zMgqPv-mm(AjJ=3iF6YzeKZ57s#zMzqKF~VVEQI~sOWDt%`yF$j)|u}P+W8+*XP#C<
+zo%#N5?^<<D8E110BSXENBe8yj*Y;V{<D**?o-5<RIbxJJO|knWu6vqk9cP8CTZwuC
+zx?@`pQ6^<!4>3=Uo%pmKmU~2xyG22?Z?hA<v{|;#JvmS4#(3NmP9vT*o{Q&z!5yC$
+zHzovthk0?f?QaoIuYo>iW(+W*O~ON2&bjoi@9Df9^2mBJ2ViJke55FGUW*5u7vgRw
+zfOfn_qa(jHBlZ^4<CxYcdkWY2HaX^6%joF@hV-lV3k9>krN6#=V?lf-b3Yb8+{!)!
+z151Ff+PH+B`RV|hw-~zdAO+Xvn9ni8J)NgxZkfwv4So}@Jm4u0_}&CsT^$a{xPVn*
+z;j9e19oM(V**(FdqVYUO!o$66z(e|I3b`b1+13)aHAu}-xd<@dVGDEX6Bf4JfVND+
+zg!U@X&)is^<JlQ)364;E=5qb$?>*+M)=GSHDdT$3ex9l5{D{%psVD`lf17J0&l$@1
+zfMbhU?098N{UT?J=>q<O3V&0^)dq(2t}h_oP{)7csTyyyCEhq5_dv!C%#M#Ay2uF-
+zugsM>NY53<!v0OrRTT5p6j%6SJqu$rfd`J^KLP{ysx&Q0+7Cw)QS{do#vB5kw>fsa
+zUk&;t&dP<M@-+s7yl+R|(`CRuqU`LU??y<C1MUE8rBUn@xNc57?gC6)J7$UF9uiNe
+z`)@)mP(bFnt%#)UO3Mcu;eI*KX??}ST9SH>u@ro=-kw|1Rd@L-?=0KKb=lv^bKRZz
+zGk*il)qvAwEKqBNITj7KQzGS>g4e6(nsEP>@M`!9T(=}@2(Mnt3f`|vc-P{&F9vwo
+zU#zE`qs`zE@(!(H@ILgr1^trmd4my~Jji@JgA2yJP%qnWh-Za0H9opV$*U$y@e;q8
+zv6mo6THf@d%`SMG-152~GK~JeSgnMGJcaNq$Jk#Jn5THeCM>UkSIHP@P2bZo9@0iA
+ze5%Y%=?Y$%Glyw>5H|~mlUF&;e!$6Hi8D$RPavKZEZ>zlxfM9+X+$I~6UY4f8sKF=
+z?xE3^2>NngFgotBmc<XA0^3R4@05cc4cK_Sm@ffv-6iL_s-?DgX=_0V^~&ryjyO{|
+zr(BC@E6;U%;#&TW&9*z{0e`1!d6hlK>9KHJQ##S)`^DYU<Yk>`l65wVV(0gtN_Ef(
+z_Y^;cIV3NA%_@~+^^8_y^;|wC?hVe4_p+8aePHu?WW3PV;+GH1%yW8<d*OW_i@L~7
+z@zJhO%a{F1eiG*jrs)!<YdGKWhB#s2yjI3t&T9tfTh!Qm_L^`ho;ZT>_~7|~i8_0!
+zOFWPR<Cz-9GcJ$2BeUay_!g&#=aKR5F~Io*W1T1DIpxK9a@?k9a?IjlN#|R^haS6`
+zx`j*jL;d!AH|lJNwj3}ZcPt@c*#j9)7+qGto^A;zg7t9zXyTwz>MN}KM2PKp?eUOz
+zPXMN!sJ|WZ$QAQJ1~*BXD4)<<jwuA4#&0$`=ikUWKHC-QX}5)h;|k~5uIhZ-2sJrD
+zv_qYh-*3hE?}FT`9n#pU{6KS^bN%93FUCST2|)+x$39@or|aB>I(0)9$?pZehko-E
+z{yrljO;TQtk9cI=@n(M~1Ulmxamf8&?LK8<!s{2Wa$MelhRVH*?>7OS&2d#Hi0@77
+zi;71Vj9cV)8B4*J7kaEnBlz-Cd{Ya)ywGh%8rjasVT+a?Fb&5T(!ZYdXP~V;T+@KF
+z8nEw-mq`3hgG}F!@A%DBe8cxukhh$xHhe$X2skO?i*ggV45RL(a8ETinD4RG!Wo10
+z>aptMmN*r>zMpd=bFAZiljQNCM1*%6U`|(K&9MD)N&6GPH!kmnZ`9aaYmuw4&Zt|0
+z<_cW5Ce9b#^U|;5xi5@$MtX-Xz`v&CrEfb^ekzhu7GP|Kp=AN^$XwOl@B;gw0b5t@
+zX_7}&OF1w>D863_*z;V~i7)VX8g}SAgo&_Mg3cP-r45r<(4NYX0~0#I{=@dv0|9rl
+z6Sx3{F>zuZ_}Dzgy2ZsA&CbMYQ<6tc(lX%3#Fyqpge7zmvU1o}xqRtmqkFz|y6D80
+z@b@+HbM)^cp9Ks)$!Ax@8^CAf8nPBU<gInCH(Grfr)hi=m*4FMk1II_)ZMJ~Sms;t
+zfL`2{u{@uZPd^xR{T`)>)1=S!{w_Y(;{PL`>+PptT>%d<&2Rs5BvsJJcnCpz0r*GT
+ztiKL?^bbequeiU9zv8Scf5qoH)-3vXk$wpBOd}%YmKlcZ2mNn`9p<em>bQ5l;wQUP
+zft9;c5ipAtH@Byj{HRE5g`L*tsrFQ_HSMX(^Mt%}o^%rh-4G8Ig$n=FU#K7FTlIFn
+zxiQg4ENbK0BOR=RUV7Up;#q&V)@Du&!cxG!8Svq?mXf0tdhBQP5YL*SsI=kc!hUlF
+z=M)d@!CbM+Tg*6~zl!JaK<|D%ln(N=WjJdwPQS{nQ0lTg@?7>$HC&qj7w^<Eh0^`J
+zpeJwS3VW`y&+JX4+v-W+uZ$0x7QdWlgYjL3T!T089N??zewdE|eR$AE3H!*`>uxRR
+z*^l*xemq{Q!Ux#ho2*iw$DAhE*5!~j(pIG04u0KU4f^eA&5Cb4Wuw${xt<y!*ZP3w
+zh});lQc3IOa;;s*_zsWDbe9Ay#+y$}(4XQ7hT|U12RMG_hHwYRxTV|#KGy)Ib<|DJ
+z&MMk=)QPQ{mbri-U@dNO1;><_Sg+^wKpXgGonF^pBVN(QD(Y|;(+dSkPOs7LuPan}
+z={;FvH}GAeNVU_5?*gWR^Ayc5Ezs|UpU2wQI#mI5*YoqS_BAh1YyU>M_RCVKdEjAj
+z$(txAHIE{`7m|jubVy&04tY&WA=gtEo#L7nAKLU$rzlW1?YN_<ZKOZqNzxylN3|UI
+zTfQ2XsdQM-v&z?yw!<V18H=5DAvfq|G54bEHKBmBD%8^%f0DM7|9Eyw@v>IhD=uv_
+z(MCzzOKV`KFxQl!?Wnb|pO~YaHuZF~(3x(1S?V%T$^rU}FyCym2{@l_jdP}(UzWUd
+z1$im(>NYnd)&RHlW^K!Ka~yOMk1g8}J+V$UCd81smX3O8=V`R#N1X)&Yg-8aD(F|N
+z$2#9JzU&yN6SzRt@ftOW?-;tSmQ5z=)|{dGQvKxFLH09L)nOa*`w_}MTM5`2G~btY
+z8|JA3b6ZY0jP;2K+Osfk^~E(Ub!RG=qJU{;tk9VeFLbI!p`&0JCt;W?Y5Lm4G^5a&
+z(?j`%O!Sd&)`4ejkUVRoRp<;47CPir<tB6#OU--0Iz!T&x4574lULPQkngppp3SD|
+zJMy}x>94ov()2HwQwlWf6{U%^f9eHI<8KwJHJzr%@At^iV~5Yhq>nDzvhhpYU#)HP
+zhHLC)N0jYK-9bbicBnhhKQ~+RL5`t`ypX)Wx{Yz4L$8+i((;a#s}sBOm2F8LH7rty
+zxw$)WSAi(tULW(_ePO;j%itTuc*{wN*#)qLtXUntNygfW>S$t2T=_}3HhWqsR&5w_
+z6~z`fV=ymAf0DWDW&raVqfgGKH*`b%5x=;KxLB=mQKI9E8H1J9TiEUyV{`4bO-EDR
+z+H3j1duMwsZPVP<Q#{*YiyBHlN%Imf>K-`S9WR;GvRn5>A3;FOiYxwoL!uJ=yF|wo
+z6W%neY=7V9a`m2-Y@-{!=O1{Ut@n`6n$QJ^!<))d$xmU9{hA-F1uxjt-f8V?`d4dz
+zb_>7boM*4$6~qzOFxGsUuXn6R>d=G6$+f?VvO}+bmk203DCV}=&eND5@`1X6nYGMy
+z#q}>P$l@7*XEosAx}TlB?rAHKS76;&Wb>vGYR!`maBY)^a4pESJw^FrEN$1bEw1gk
+zT<=)xGqBdHLxs+?FxIwT$s+35`DVj$*EZKR`&DbZ)H(03YHiOvinXoRTY>AgM6C~N
+zyBmA;yO^^;JR<3Uw(8S|l?;&bgZbFP>Q0(i0JITOHWP8YF65E%j%i*leN!0gO30O&
+zp?b;NpEd->t7Kq>UK3CGpdZDc=S&$_k{^r~&yD$dKdJAEF?k2!Hu<~-`c3cEJ|)Ya
+zwu+s!j*_h-eV~0Vk`Ds5O_34@I+r{b&a-dpj;gWneJ^7a<lZRzWl`!JIzO6t_g>KS
+zl#EZ0dl_c9x6=f;<Jz`*n|>**^(zC4hyADI;!3Oq-epBNw#556-uMEUt6&RY>FA@3
+zeH1I7A?o`FmgqieRUa6me@Ln1vF_r<t+XRuuonrBOOMesPIVg4=3fq}@og~-b>~oU
+zp|gc^WyxG;T>taDocmafZ5cs4n?PN0Ufn?2AM2bt#yMDZuwQE8>G%7&cT6~$+k<z1
+zdXyi?r2i_m%u%{@RiYfaG}`*P;ycr2%)Y7VsvJCMHSo$g<oD&MyZe-D8Q%?^dbaJW
+zA@81?_;Vq7_uLNN?HkCr+xfOTUMF>=P0*1{j3qrcv|&!x-@0{3uFuy5AMqNsHt%#L
+zZnx<5OP`*X``E#y&X!P~V;N&49xT{bg+i@0&ZWc|=94%R!H1m;-qiP;;}3v4!oB;H
+zs}tpxaMXC~I>viP!7;`gs+04(3H_JDPT@F50q-4S*ECb+IzG*)vDZnyEyoYqp|2s}
+z65H7Rme{HCY`6%naJFFn2BEK~A=lGmnBZ4<?fji3_+G~6OPN!HerkY+Ek=KdhYaoY
+zbUcuA>F*^zXj4(<O(E~-?UZZ0Go~4M+W6Z7@s`x5utw`(BaS?hnrB)O+oN&zNEVH7
+zE{L}+;C(#*A!&enB2(0wAiSF(uezg|{6nb|(oEF_8JanK@Z{EUK%D%X$UOi(CzAHk
+zJU66l0FGe=`d9+q`;UYFcl#fkFUVaB**t3ncvg&kWzV}%^WM?dHulwD^#z#x#l^a>
+z8r9d7bYC^`7dnkGn`e<H|M=j4hd-`DoAVC-2koGazDk_cz~Nl<_uYg4S-b0L^m9!X
+z{-lls9L_aL<Xs)B!Q<E$^-9>f9@(ebW2z;N=VBdxsQ$mLa5?;-k~6OfwcjY{`=b6z
+z-<Po{em3-+a%*A7z5?@AP_L1^N82k0Hz|E)%wgy=dS9Wyb$jCV!tV8%5r=d2nS;lJ
+z!CFL{#*KDMU`P4Nt;N0X3ZL3rh{e7-*Rs>Rp*p^Eo1r`(VJI(9I#73d58Iv@R&s16
+za5e+-bSl<kFsx+Rc)5>rZQ>tZ@$A_it?y`m5cQog@j&mhJjy3T*k=OX8B*s7b=+4Y
+zl>Q^_op<t-?qljcsr!rxE8T}}%n;h&BSNKVKhMnL_<1fLrTj)5(|Foo;i>j?>F1f9
+z<L4O$8GV&o^&O)AkM|tk3^_jbcWtT42OBN*gtd=n8*$R#F?gRy_)0h7tLA*5&1u?S
+z?Xw~+W2m#!w-dgy!~`v#?NjzhFQ4jfnznsj_bH!Fwf5=!E-%-oGgJF?uJbF~bQt$o
+zz|T7SbVzs4j}ghVjy$qZ(Kl&K(bP92P5l@$ATN6_QQK;?n=UKN_33zXd^(d_mK{o!
+zrG1&I&9Jn?8quaV%eMOx=(IrVK{KiUU>srX!@A0&_CC7Zt239yFXK8g7s+>^U#E76
+zx*wA3GwpY%y?I$HV`8d9J)LRXlR^9Ab^AS_lTQZix#^<}E8it(sW<OkO8YKm0@pL>
+zw@@~>rpFsP=<&8ZrSEM*|GECkJjWZk(jG&9CFzuQfc95<=&#gtN1F4B8(O}SO1=6;
+zy$5<MpE<s#pRmM?_g8DyDDLeQ3;4_}LJ#}uCM-P76fPfWXPJge`u+i1Q2GyU@8Um5
+zdK8@!j$t9?KVV&-_8)xa9(~qT`wy<o@8mxSDgVJF?LWxV{sUi@|6o$A(0T9CjQ`-2
+zL&|@^eJXGGhWN8y<v*C7<3G4I$A7?fOUC5-4}Mb6{eJKMgU9wC+*6S8ANacQAG96p
+z-hW^pRQ`kM$Mhdu+u=V*$7sAWI@f=2XF>P-CVx1n{Rdowpc}5~dk&=J985elm7IMb
+zwJm%ZV_zAA6iU3LeLk<n)t(#qdQZ?wPbpt&<9>6Y;~vGm#YqV_cz0!NA><h6C6ix_
+z{DV4Sfy}49P@QoD?eRYOv`nHr5<_ZRnWqfjx9m%$=5buZQiEkKzlRRy%BIQfsR!2e
+zY<75`OT2&XUev1do1I^NiShj1`_FF9SN^kO$*a*l6fX$td3@5R=$rdTQjP+KO1Y1;
+ztd;Y+elTOrBW)KS(6;a(WedM7XxEIgX$yaPuB2_rd*~yZ1UWJ|b>e-ROA5rG?0AkZ
+zA7pN_1yX*I9?Eo|X+Cz3_c(maS{6T}2lau)Ir;!`?-7gJr0fGvOZmmK1v+MkxnL-Z
+zXF}(EwO#QHOYemZCoJeY?`?TTJi!=$#s={2pXYn4_<*+o2Xl+4J@Q);k)X%<O`eh=
+zBMGy$P|nHsv_EDfbSI(pDz5ce(5s{l8lG+E18<d)am<Ax{g__-j#z4sCZc7XFBpk)
+zooxXee((mK1Niztk?a#(B4vuGo)Z_=5@(j)LuPD<P<zq#mY^FtcC=*{Y}-@a3XhB*
+za5MMztK(`TR=;{HSYP{Z(B^FNDd08_c$KkXp!W#(gFx^220VFz<X5z%eiEK7{-XES
+zBG3nYT87muP&|fw*DL3sN`6bf?MuwhqWSww@b#;S`(w?ku`E8;cVa!y^<pYH>u745
+zU(YS)^fT?sC%hT>n20$`$AU2qjCXB@FKu>uq~pY5aam8siJ|VV_NKOt!TT|PXqNft
+z1F?B=?nm~}d~WT|6%Jz||AOz#V6E-dcH<;huC49u<XaGW--SMg&6eBQxu1EzzGj=|
+zf<(Z4*<lQWoIB<w!TUe(J?QaIZWXIJP3sMD%2wc`TGQ*fUZvyAkn5Uy)Wp&>Z<q<*
+zV1N#m<SBkPOt+Di3)E#8+sO9ry*#7O_<MA(Bj0==S4U3kC-N+PkK^kzHyu!M2Dy6#
+zlUk|{D4*~!(g5HH0fs#Absub4Z@5Or4v=3lexTR>R7d>MR{<}1=0E-2%djgC<jOGL
+zex=W^)9_xV@w!Umq}h|Z-<R)Izn`}Hb=m(+>!xe9ZhCW`;=PT!?P87pG>#k1QfKJp
+zxw5xXbPso*1IL!V_xX>%57^^C_xpgJ14{NbX2th;(Vqa0eMUoE#Z3UmhR3;lUk1l{
+zm*>XJU9d0pKtF%86C94xCs#i8sc3fcznDs<^*3po2o>8I#GFqCAAZFp3ie#g++*|P
+z_-3+Q^cw|V;=RYec5~llBJHD+P2qmMf96(rmND-}f9D^+bSGUynq+*c%*|wd+L;O7
+zGX>9?Q;IqI^LWSL2o?V_74-kMv@fof_Jy=(UR5!m(jH~5N28w;w@!76_kd4C)P6Pl
+z919%Il<~Y(T$7~*N@p$AeAT^47(SuwA6L~;#RpY;CC;U2E3LCq=6KAo^1q;c>aFBa
+zU!sp$+knIs<5<~-1)NL<4yFTFFJHtwdGqA_tYus1`$rO2S0`pjTuE3;Hbsoy|EqaB
+z@v;^$G)i18ZB=-xkUI2QqtrPi3s-8dvA6SfIu4}s9zS(x%^xzj>g~MrK?YY1SRZRi
+z(;fP~^08Cb-UL0nCvh|+>T2Dei=*8ibc3TQ8b{#sYhym=t^G<q@Vh?6Zkb!I-+GVp
+zjBqDaOk_ynuTOD*r{8+Rd05Bhuuh-ip89*Y^Hizo%MaeQS$Gtm)&AZ-#Rlq@I1T%b
+zZ#z8YQ}~^%*W#aD8T%j{I@OVJI6B@y?%mw{c5B*Z3LH`T%o4579MCao>@RAS$Qamk
+zy>%A%*WZw_uxp?Ptg?i&4mO@i`GGdZST4sMoFnNs$UQIAo6Nguxi=DvdZZi$kC+LX
+z-emT7<XO<zeCP9zt2ibZO9nXKmiwhD_Xqf2X&}pHJ09&ncqDfoBbpYLVvLa>^l0c1
+zl~!M8By>QY2lZ4(hvW~W?wmQ#A!EsnVtaVC&+%8!w^K&6lyE*gPsK_MC!fMt7Yv~c
+zt&=`jKlAj+IA4s_<#O&4Zk}P4eih!QSp@y5+*JBdua^GW4>~9Ak1dfg`Cc898Q8VB
+zm1mRkz!$CHESveRP3TUH74+21IjvvT|CPoPIbXY}=iu)<STpRS0^hiY%xUGhM$XxA
+z&G(n>Rk~xZuYotNFP5=_GJghOBz!K(heSbdmw2lpD{p9pyqmZ|(&cc<!T183@rV9c
+zgI%*X^+3-d%Uhvy$vdgvOQqg&1+Gq1F@L2Hujb)-q5S`98SCgSER|;&Ez!`%oPch8
+zn;`s!SIc{ec?Nl}KBJPa?HRuS45HA<gT9=HdNLkd>njzE6Cu569a+)aH5q#2o-BAm
+zHmyCeTG84{@P@Z3Pt$ak#a|}76}=scf4s3z*|>_%`aAFJR&@5~eatJ_*MTizSD1w=
+z$EVTY{8HQg6@*dTmRJhA+^2KKF!rkM5p`C`JfM8f^sBkV?TNeGI(Mi3?hgIkr@3ae
+zua5kAJoNQ(?W*r%;cWq6=r=_1?1fslU7`8KR+rM-OdW&LvEEIOJZml2yNUH~3MU2_
+znWK$za+u5wJ&8Jn+_#v^y*F(i_YdaU$EUS-zrXI;r|o0v23CM)v=Yzn>)uYwKA(7f
+z9_%#TejeK2Mf&D`TddS^nKdd-$r`WDX`tOFA=4s*g^ZnB0OFi}eUXf>W9;0hJR#4=
+z<-3F!Grc|4v?dc@myd6GZm#^4R4Rnu-XK<skxHEizW#Z+cH}F2bM44QCo#tFvki^2
+zJm@%U*#`B{82$XUDh@NG#uy3(oHLJ}xXo#Kxp9b(u}vdlr**oPL+Y*_Ij19(J~9Tf
+zS=uv<FS-o6xb_L0mDjy4zF=>zE>8P$y}WPjR+T>qYshI&6&z~M#N2H3iL!`mfD;*l
+zQam6>e`^>xz*#;H>o!ZL-{m{DPETLY|LpBvr~l?&#{JCdi2LCktuE~+7$5dX`Srzi
+zB@?T(Oni*%L;EA>i%83&x|^4^^6X%>5pbp%J)KMR9&{Q;7@p7ijsxSEW5D>?PB0$*
+zK-r9q8wNO=U^lMlRU3a4GNiT`#gcae#J$$n;-2EBRuP;C`DMzp(d0=tQJ14GBTB&=
+zytZdxQ|ro6YXFPs9Ma!h0D3@$zkgKmgH58uIYoa{etGUUp`&WAWs~TqzggPln}s?y
+zVfaSES?sJBb}TrTc7c=kzNTZP^34Su@ga;0NymuXzF+ZC@~M2YzWZ;Ev97YuLl^t7
+z26PN#p6k|xy@zLl>*PAB#5yt$DOi?h`>WogY$!ABzp@&gN^>IkV#MZMHU0GbaBlK7
+zZaU-mDm}i}wEjS!UIg<l{d(5I_|0Aw6E<1vyL;W*2WBdos~xhe)iW~MG8*Nvudad2
+z`dW!cL|x1sDE*c68JRAp>EMaS4@EqO2Ryn*=}jT%d+B&&mpNMMwjt18(UB9kIlEJv
+z^L3l$-LzSbHotg8&E*n3-uK;Eu@%-bhj$%xjQ7u(@hYEEw534XC+lK8owcw}%J!ca
+z#!vZj`RP=`2tJyYJ?HK1zK!g2=YQllHP6d~t$a1xV5~jQ!^9h8EUQb5l6*b{KL5MJ
+zdfniA?jd+1<L!Vs4eKD__(N*$()*{<wg|c8{^^E23P0(1jU{2F->eJ!9LBP*1FiA=
+zFzcT=6TAg$U=3{ARp|50eJ38rL2s^n8n{R4hvjCmLpenm<uWdp{g-3z?Bk4s^(w5<
+zcKY0-v?E~)jDan=PVZHweM~0sM7?dxe!XU(KQT8DZMW-oDm|+C=!xO~dMEgIeUK|(
+z2Orct4R!!+X!?>a)9ojZD40yWc3`7AW3YDa)qB<^bSPOjQtZqHtk>^3F+863)QGfi
+z;xCt}{gC#fsj@$Opzt<X`)(f9=LMxK(LRs5fe*J<iV)s!aB6p}dpfD_-QA@0y`LXc
+zdH#M=tKvOt_bNCgZ{S`d_riuOY@Hl36ip0LG{Lo29dg6Y^EitRs5~b{M^&E28GBXE
+z=u#sk@ArI!_^Xa4Zr!W!HlDh^xTRxX%*V6oBKo>Z)NN$_Z(tn#E*aqD1$lOO9&>gk
+zA_o=h_tmO>rD^y*-6)juGR&Ap#u=IcTgF1B<C}qtDj9FccRg)4-ql(<#u4M11b!mp
+z5G`SQ!S6jfzLDeSUb3p^vi+==j*ZklNL9~g8?2{e9c7#%W29xhJj^xf>G(*(IZei1
+ze%bksjJ*ulLDY4fS=$0zC?Vq;Ed}#b!mMMr8Jo@T$D&WhNJh@AZOM+0W(?<ew97p)
+z!WqPvY5*%?31`Jdb4-knPWLk=D>izjI};ntdg=IRf2h``3>**nHx}~G4COiFt#LAz
+zvU42eSDsHL<NNiTOrdX}x5k4ncTUiLRThqN=0u-2Qn(G|&I!+pWzA*Ioap`W^jzl5
+z3C2A=Yc6x<gy%+4XBuFYbAkEvoS8M3s52F?$~%(*Ywggw7RIV};C_(W|KwSypgwy+
+zT4WrnY+uGU=vY-##ioyu`&LznX~1d3ojFS*?Jcc$Q0K_OdpK}Ry#Mg!RI+xzT7Tyq
+zQR{Ez0k!^yo`Urk3fb#-tM&Jo-e0QVx)wKQt-lF5>+fFZ(JMyk^%qg=uW^s!6XYG=
+z)A=Xv-NPIiE1+*S*o@=rh=q(bI^KB1wv6$)v5>Lfb&7=?-%TuJRif&klJBPWjSGEV
+zTIe_%uTih;^C{yV1uh=lB0N7f4d0J1+n4&ejM)(ZXN$By<I*Qv0of&ji=2tt*L6hn
+zc0RjYoq?D333SLK;#BACGVNcBh3pp~`}^!k{XANv?1i&Oh~%oz3~>I}$mDlrUtVL8
+z+7AdXbcPuVojCM$=5Xb?v6SVpkJ9%Mj@G>$7S6C^=ucJ_ufN5et4B=S%{(``XWOpf
+zHyB5dbffcA(e~#Vw<~w2I?jw!W>H@nwL8}itKYBW2IHlf`#WFX<>`;t*^GIRGPQcK
+zla2*8p?6e6cOb7{hq|jjJ3!_;(Y(3kbkJ2S{Y=qIi+4}1opYV`1EkOG5%+b_Wohq;
+zaIN!?ote3Lb6MB9iJhK1H#G-RKVPnM)PC=<qWc=i9sa(pXR71d&G>fYL4_0Ui%I%m
+zTqA8rj+3#B7~h?HyZ3{RJ-1o;LXC#FJ2)?X$$=Bk;b=WS+*e|rjFw$p=WwW7=@>ji
+zE9WrIIlNoW;TyY@zEmmKX^ou2O}nz}b2DPQX`7EwepuRZw9!ZFn6)ac570*rIo|s&
+zVf3b7x^_t8X~4e^x`7X}ytr=2!}+7}*LC#7V|vMztAnrZW=y|!Dg9NQIpKQenC_Be
+zigq)m2l<RX6vo(bOtCN8X&({CRF1j(#zCdat<d%obF+Xi^yXd!_(E^kO>!)-n|!dD
+z+|X4^I3~ZgiMGVmobwDY<B2EiRnI5u_O2FL=WPlow+x*}q(<(gi0aoJ6R=c+_NPJq
+zT}S<w=XYPt%H@FZs$32$oZYUjc^q!smCDKE@ReOkucyB1f<5ZxS@#htj?ILA$+3%_
+z%C=si;~cDPKiW1GPhBbFVCroVuX7gdIPn}7b>c0Tb~A@Zk28mZyP3m5e5TJJ6Yhh%
+za%qq;IobBD*HGUEm@lHb(J{e~s$<Y2V;D1V`*wb_^Y+Ckr{(UmZ92QzIq!3+WVXCC
+z8DGHsHs7Xg%b3~)GVf7`eAf1h2|B6{3Cy3%Y2B;fqs|mTKVGhrZR7qjN%VZfXGH&s
+zdVc|&8_3(n8{&;g!u{g2`xKwK=8)nu=k8H_=F3GX$)_k|H-k3LIH2U#X4<8UPi6cd
+zW0JYg7+mOVB29xY2GH+Wr)0^IDO!$@Ml2;qnEN(v&>s6MXyj(*(HWX8Q(R_k9sR42
+zEv0XVdpeJ5TOfNsrf%Sh)^+v`Eo<T%TIzOWc)r|w)8}OT@lLu1cws%(jz{NSlIM3v
+za4c?TR@mdbi1j!;uh|)X5z48#bM%e#qlp);OeLAy>jL0r*ZZnZp5g0tQ3lsdopBAB
+zQ2|^x0oPyJt#Ezlpu+X_8rPx|u7AH@t)b0^$`i0f#@f}WSYFy)SVvs%jOU%SC+n=7
+z_?L6X@~-E_+eO#&;<xTh<(#|!-cCjTChb@&V)L9shaC<4&}Ui#JU`L%`1v${v{TtK
+z&qHo4elG(X+fMtZ{G!vmU_3w6zO?jS++8A9f0Sn|zz^u#pw3AD#=OJyxmMf4Xp!;n
+zhxaMI64rd>jO;daOcrwy=jro?-dMfl$2@n)btLCh?{y37R?ziUdmZ$vx}90{1sJn+
+z3dSRuakumLecCq8@^!5{V`2+^U2DvZEjPZO%bR<OT;CXZ2l1Ttk<mZ)N7U(|^WGJX
+zRJQT0hoS#!{#lh7XIVC`B;N$Sh$s46M6Awv_I*_+sD0A=FIDaR9Jcn(9SZjr=!x%k
+z>UW=SPnEs9L&3n9hi&@#P&`j$J>ROI&p})N+>txyUg&AutK%H6E1A%;#@N`hJZoHU
+z=(=r(Qe}VIk;`9C5h|XeyS54sXWDo{w{aS9^Bme}aI3X@^Tlc}C4JtMF<g{=<fEqP
+zb0AAw4jxKv3trIdc%c6r+^gDTKEz+@Hve%jRkljQ6@;AS`&IhgYZ&h%S$KF<KmRqJ
+zKe!{))(ZVRinf;SP<LJN-7@|B!uL~U_v!EH2WiyLmtZ{iWIdm!pI72Jd0vC7*|`FL
+zXW{RH{pvgBFpB8!*6c`?-I3Mbo%*>*rOIyA?cS!J6=6=li)WM2*6<-H#ku@1II!87
+zbww)K2k)5^uurG=<#>M=-X9Rn%mv!f=T~(5KEQG<+TWw!^WC-j-QM?7Wna?pOwiB1
+zk7rly$jtFL{rqjv$(StMUZJ1Y0=J*ddVZOHz7Wrc?@+XFY1$vI-?=g7AzAZxfquRn
+z^LK6*-Ye611K!Wtk-_t)_462X^8t9i;`_T(X4W3q{V)y#r=(KrE-4bL@SA&R-^R1=
+zpfFEv&D&qFBb&ZpGY>A~M%*D4!+71fA~~j3<pAW}V$3fo!f_b`MxLAZ&-u3d?<xl@
+zV>u#0{JtLLlKFNdIL3}LSFPRbj0`V#rep0hXY1-<9ppj1vj=n6Gd?$7Aal*5&!5f5
+zx|oM==Q(3z^PHymJg4erl+Zk9O>my`N-~vvfjJ-{Gd+z>twLO%_zKqL(|G27g?W;j
+zT4&tc;8YK6=(t<qQtnv;mMZ3pf(!~k7IBYeH1l1GNxVPhttNb%-_70*$0^(CQJRqX
+zp{to6dU;l^k~um*^c+Womdjiv`5z-c^r1jTp5=EV&p6&kQmKNMt!AetFyF2g5u0~q
+zW#=)upZ9J6mezpIari{gF8GK!4vlnP@MzZ@hd-0Kv@x$S1xp|{7q(kdD`Cpdie+4p
+zQZo2o&@-5$(m$j~Og)fFc_WV>PUlDA{%ty6<=6iG1)dR-G&pTwp)-9*p~HRnsjfoj
+z=|Ljd)L+q}%eXIIU0mq6^}R;v9F$WB_LV*eujrL{D4^oh7oQ>urhc~Bc{Gr|@2jzO
+z^7+k9^$^}OzPQy3UR;j8hQ$_3c^_O~=vdJ2#-MM@C(77n1of-e_jSgY%qh8|b*#=Q
+z8Q@tE%+Jnnp%X?Md-xpiPs0BrQMTjvaJG$Np)kit8=h6-e*iB1Nw@w@>0r$m%br+Y
+zr!CUgsR9i2B~=aKZ?p^jWGC;TfgMe{{T=$<Y4vr^;`vJ6D~|WTZ<+i?tZ>rjUjbX4
+z2|Sqt3+pF<NwSVN4*E9gY)gDmo@?xZ=O*vjjsMDN7#MA7Nc)aNByIxl>F@TYQV*2V
+zHUtm2RNrf8KGN6e$+!o6H`&Fz%BLhmH16?+8tn1b7<*@^&^ezmjl1q^yx1kS{SV58
+zD8o>OqFjJ71O;~2w!tXpqnw9QiE=K=Ae3`ZDp1Zw`83K|DCH<;qMU*9c@z_607`$9
+zPoeZf>5Fm^%IUh@)AV=z+Y6->r37Uxih*(p%HJ?2Mfl4zriCa4C_PX%$+=o6&n53P
+zFc+q}bDX;A*}%;p5h|TLgmE^}Qmj{xH#UmrZ3{k+cjOV1U40!_VI)Bup`ESiI@#Yd
+zW)9C1lLz+o`OR9-<bj1gJd<reP8G1u4&Grkq_1p4#<{HT+dC3#D4o2%u=l%IUzQb=
+z{z1@5J?5bf>u;XCcL_Xp9_Dr)b?@Lhb>26cIqyr~;C=FL+S?Oj0q@95o1IC;eVsQ7
+zGk4^LUFyE;d&o;7(Zp2#hK`uY<<$5e%jNXj67gzzabM-*@`|$Qz=48?`PLTqo(??t
+zt-4}iHT0$&{5!{>zXv}lhAb=H!<=1!k9G2bcovG5GN#GTm@Jw5d$IGc9=vm58SKd=
+z4&%^8b*;=f4%(mR4KI_veBO)N(w^Ej6);e)6u^F<ZF5^sZQFzwZ{;2I#O1FrZ+qmL
+zybkN8!RET|rDf-BZ>V+8c<HIdY-?dhTWj;XwpGEr@#s_9I#}~nptq^IjrZmKq1Uz~
+zJfe*JgTCY)fDyEWx+RJ4f?rH7=KpslAmcs$V6hzljs^yb6OV$&nL`vVcNL1V3X^wx
+z*TNQF<S=%O{A)P*D$ilMMS(S;uY_j^=Aq9e&CYnx$fWg|yWYe4+uOKr9*ZZ!<Yl0j
+zTbS$FT;VW}w9J2qws?;mc?J0daYTCfGI-k8#H7+6VZ5X9|99~}ZLl@No1HZk&5l)=
+zzWa~y^}IW=v2{gLv$J9@^Z@klVGeoV=u;XuH<Dffuf(&9cy8>#^U7}UyvOL<oB68u
+z7=<!7u^)Yv7V3MofpY`@_s~8CFUGNf`K-fn#=mW&4)J^5yH?B?vK5ZItR^uX-%JJ%
+zzJzx<V(iarJjmzk`})8edV69G9+!x49s9iIQXlL=H+V&Fd|&(&+Z&?Wv+5G$Gi>K^
+z-Oe=GKH3@5x3{}rjR*3e6#Zq|8KT;GM1OxPzQ0;bEag7Hml+?8F;2z&@tz;vZSWxT
+zr~^;z!xd0GYf;viJVuQi58pTN9yvYVH-L_~Ci`l-lQykc3w{Qk2V1uW-yXTB*@+dX
+z`6I4*{~zzS-UGSBxgqahyd34-&tWs21sQU+mLChjhZmvThq3@=K1u`1y(sfg?m?N0
+zG6!WgN<GRflsc4Jlp2%>%8yX)M)@JiT_`_5xfA6Ml$j{sN4Xv4Hk6Slw^B9%_M7o{
+zILgIZu27auNBIuQw^6=@G7aUMDBnQ&I?7a(uc7=CG<hTbhEcwXas%7Mvnu@kGRjhv
+z>rp17T!(Tk$~9V!T}^p}{!8(FA1%L5Mfrl3S>sTy(sGcpY%jjsjl%E8;P+^hXYv0i
+z{N?=$m*MYcSr`9vPJ?<r3mTzoVot~xCSTa>Tw9R4uKg)BuX)ynglmMNL%FUR<-N&W
+z*47V;x~{GL;K5j5&bi>D=ZR}eUCgzhWndLxxEMTv{A(*?FRdvuKG<SRu8t4>txFVa
+z1%IlP{Avn#*;O0pgY|=-Uy_IQ4fwW#-&R4-XN-eSENlx5nbqosKL4qn+Gi}`sgdwh
+zVeMhvl~iG^U6V(hW=dk4n|kB*34deMvsHkO8H*0RcB`Pyc75U@m*S<2yNwtwy9scg
+z0bE+vl~VR%UCrY?tGv^k-}C;#CM}E31g!@FBhN?io>z{8Imih==tar_!a!NTu@RT~
+zH_mD$KKtf%#b?z(z;D);R1GZb{Y}OtK#mb!!Y%P5ZZ8$p^>MB-1F*cI@ASTYv*L~a
+zB98{&J;b{B`vte+l|IcYxfWl(NF=L32d>z7DZc<~Oa6ptOQn>**R`O(;yY1~JWASe
+z)upyCHn;U3Xfqfrwaf92=bPwXtTe{i5zAv=x?Ch@0&k4vW<KHvgu<y`6eqsau3+kq
+zdZy+r7(j<yQt`}-oSEpahp26n@<!T8wKjF|Ax9Oja-prDN4HyDY!B4(?(d#VyI(Bm
+zD({9#eO<ku0k}@@8BIK!pGpo}Pkkq352v0d8k~CyM8Qa{6Aj@ReCR?Z=Kp*?Xa8oM
+zJq+)`v(a{qGnHq;Ts5t<1Bl~$Kxedp@9NP>erj1fn0dS)H&^of8P?coS`IMB{zV?8
+zQ@Vwb812V+G<`ka&3L%psH=NLEp)J2hwDu12rcg%QEOVD{h;R6N86Pi_(k>s_$GCN
+zFTL(0{|1cdwVdAP9t(K`9jEL(u3Mhl4)ZMYl*HH@>0bq1b<&#_cEcx5)wYoA3wqO@
+zSfN}G@*a@Cx{}}J87t@?l^XwT)qQ&(_N(<P!gHKFE%V<1-85NBmp!9LMwfL1uU|Z>
+z#@W-;RWG>E=nB)zM^go7VN8%UWyC3QNd859lKvJ0mv^0CB-RX8xj$D{7KytC6$t|+
+zfYNwQkywcms=(h*7m1N)7Ks&S6p1YZi^RGCc#bk0W&E$&Q?K<e5>+VGpDGgJenny!
+zioahb-uboDi^QJOio|M^k*5}knZ1jIg)*ZTewU)nk|MFa8119TwE%tZ3D6t#4aXnr
+zXWzA6@+?V10|Q24XpamH9XZyT(C>dqUJrWOn};<qP~m^O;F<t!p`DSMe&@?Iu~@E&
+zd3vpI4RKverH_ecFV=&e%!p$Vht^W(25C1yZwb}Ap%eO~J<GhMAw@&(N8(R?Mdm7p
+zPGPOX`$DiPv5jkwea;1JJHh+DBJahH*gFB&e%i%y4Zv2e9%Vo8RkSfBPn0oMnY8hs
+zKg-VHIu})mFCA6u?*+_jC7#hP=Gh3>$mmcH&tHPyxOsmF`I_VjlM_+icQgum5!QuY
+z-={)<$bAb$at_v24f@%+et;8TUs|7JEWfy5fOBUW20W+#gYUK)Z1?&^LE}B{uePVO
+z9cd(PK>O9e{V+G<CTio)|Jjusi8gvcS7RIBWLwZrdksn3NQ;~mJi{CtZO=fveK7yO
+z3n+S^|6-NJGqnM`ALjW8WN#!m&R&7<qWJEJL3x~!C+_N+_|545i|AwZ20fNgV{1Q`
+z;{T#0+QPl5UYcH_=x2b{&~aCaU-HAHDp!kH8|R*!FlMz1Ye{QQb8%}=*rs`q>B5@T
+zI*vKcu>R@eP-i%1wQ^otF{k}7wmzgMQ76y8L!Wt;{WBKPZ7h*@uJAm{nH_D^$Tr+;
+z19Qi?<vvnQ@I3Q`7TDH5kLtO<1mg=z-g0frMZkMyG3E4x7Jn#OTp3V&Cd~u$Z>(?a
+zi7`GsRMC<@i<XXn7JXWOI09Py1@9Txa{~U+`*)fjDw)5yL*|R{T)AKN@4~Kp=vLmz
+zB*z`?uqmmV@O%X6BN#Mnp5@`(=E~iGefCn39N4bpV};hM$g>BYS{k3&4R0>##-^PJ
+zxy=5h9jg1E`xnKNM{%D7-@F1|6C0-R@j`wEAFT63eEThYdy)S3m-x0#fBTzG-`;|6
+zr>lFz<+tC%x5kC)+b6QVCI2Q*Px~W2IGieb>oCUI4GvtuLHua<@2sUtFWI8sdquy*
+zn<B#-z3#4h$QrSs<)24+-nz*-5A%AixVrRl=D7sCQ$a`6p$OmY!$guWt^r*9&HEdF
+zn4fzWjqwruw4Va)QEwazdhhN&n!g=NZL3CqV=fxtjCpB*L;q(W7Ku|=9xKM#X<x0>
+zJ%bCKm-#*3Rpa}yGFNtOj*qz+@N+%X803c&60UyHp{}g6bi7mi(ILveUI|>*)kIsq
+z4_+$oRnqt#H(w-gq5S>F7wk6hc)z^IsVYHUN*;<fJ*<cNzKcNbm4K(s=qt}$jznEo
+zWi&w_>R^3eR@>{Y<V^Zfj;5sUZh&9DF7xkX)+v<5vf#yvb_Qh8j_;_Nk8JsWMK?Oh
+z%ZF9YcglX~VZOBNA9$C?eIMs7c$Lh{&0Id6+gt4K+Fl#<<0>he$Jo*iLS428KJ=<J
+zp+iSY{P0j$_-^P1zUrgOwvs-dG;9rSoA`NalhXI!(K(4|;|-VmZF0gJj%*zcxxq8J
+zl<}67=?fh<bo}9113oJv^DMwlEwDzV<$!q06`f-Lk4wqYSMs{*P^Wh@<|;jAYgAze
+zjDOR<1vhl_fzYkex_Nzm*R@6+!_BpZF$_Rkf$JfE?ifJWw{c#72A#y0#XnYX+`*82
+zo=3sCm%2+Q9(S}G9!o!KKH6EDm+|}Xyd&p@cmqw@#2axz+`-;|i}k*l-<5}s>IM(j
+zxD*eSzBJ84IVRqFNFB*1_or4k!|8L8_=hY2Og=G%d2t?b8CN~&Giu`0n;5&-;8pp^
+zrbGW?eQz)lA3jRiDZHQF-<Yv~evy~4e>^>oZ~qKCs&u_O(f+U@*}7hx(}H$JYI*q%
+zb#H5h)b$en6YF}!!CBDFUl=jK8JU-BUrYtPXYYe>4e$(t-z>K80&Fv|#yO7Z9EX;r
+zzso=VI6yPfjvMRkYR8?HpRwa^^k?k28~i7><0gO>XI(nLDeN?c=ek+5UoJSluW{9p
+zRM~52>wqt#2a@g{<ynWc-?q9$&tpkqK-TzQJ;C@l98vS=?`9sqmo<;y%9_V-oa8)S
+z>g9cF1DscVxj5L(bLG0-v3bYvD{J^iVC<BQ@3M}D`O|sFAJcrE6)&8UC<sM=<@$2;
+zF`p~ivdPnRelO0;%x_*^W_~?+YJNGl9G@H;=9P1N<)I85lk&RbLmQkpV}2rvHu>$e
+zA=JqxCM<k2ZGGR~?jgLNZ*+;rYB2Dux0Q7!o8M4x_%qsA`<VgG53=T*e2eq`Gtd^#
+z-7WQ~wOt3jlVi8gk1vGvJwe%Ab-`%M{qh{|BIk*Y@lzLSkb5Nmdmy!~&u0fXH+7;b
+zYn0+SyBU`-M9B?rb=_9d7I7C4ikB#Pu)<-ExY5PDS8@V%k^=Ib?`qiSOICDMr}kxd
+zjtDyMFs$FOOUbf8b+qNx16}t``t|6>{>R*&1O4=uSnHLVhUg=^k1|M(ZI;8m5blwt
+z_d>j(XySU#$z=navpbEI<J>~tim?or?Jbhy3g|Im-dZ;C96SEMM33oJ@Y_FtcaBGU
+zrCIG!2C&Vvd|ukkm|p5;Oe?%y_2w&&cCGuFZsgHT-PEl_UFy+~d$|Wag?XoxuhgWk
+zbYkM`v8cywL|t*%$PoGk9lnxa-`+RmD|t;^RvECJflvBM=_hS3=;|lU=2PSR8T*HS
+z&jas4Uud_`iPKNRyCc^tpOXuA^6H_{mXNDZ-8E%-Y;WvxyMn)Oj<(dmHj@4)#u@>q
+z<BPfXex+SOec)WT^rtSNzbrJ$E*D}R^*|ryiuMi0;pB&BNq^KJpOWwMeO>p`zMl4*
+zHm31;N8$?9ufX`Z??5^w4H2duVanYp3GP1-2ExK|5)N<m9NQh4Ycr=T$4Z#qN~Inc
+zuldBCypK}zv)6QvefptRtuK`Gb{TB+IP|ks(sm2A48XjFsFzd5Sf=fQt*LzB%uz5g
+zaXaTskC$_HH~kinJsfigIN=@kuE6Ak---^TPl7%OPp3R`ZLmL!pm#qa^>OeJb<b<@
+z8qhjz4B8ch@0;^Pl5qVTZH6vucCPbg=zR}(Uj_6O(tH*A<=8pDuEKr^R}VGLLC}q*
+z4yW?GNSo6A1DD-7w~-0EjJi#w^nqW~LK}FS_R-Q0;TFXSuQ|8%Wubf%9@t-x0uK>0
+zV5jZ0e=ihC(v06Mk@~>Z^rO>;fR5@19BG+&ZfCw7U*wF{@7%>TC9a@~`4RHo^960J
+zf8bE6;4aN?z{h-`hhor&oBPM$WBl#9>*l_`rv0gHv`6A5dC0<6-a~ya_(j?mIv4-b
+z&gUL7`YHZ1^XFM=?#2U;6M*MNxgJYfxE6!b4{>eF7qFJH=lo5N+AknK&o?pesC#)z
+z*-gr3nw%(#VU5vd3czL}ZUHA`QiuPEzMCEQz-H<fmG;;(2bJIRdEjl@XOwUBAD)ao
+z^jX?>z~{3mrNcaNfjSFlQ_f*b(<J>ueu9o%*)lH1wcAzB^@1$*qMr?(T%P>cLDl{;
+z-ToEeqv^FW<WI_8Ax&1&{^Ncm){Kks0Hk>XG_UQ>9D2uC(>A2cIYs*uIN{zu^VW>&
+zjJs@mbCj|-ztOJj%{2a^_hjtNueK|{0O^qQNV@zw>5+aP1NtfY`z7aI(<5}*4qbbQ
+zud6=OL61WsJR4mseW-wOg2u^|18T0e9?kd>rdlG&J)Vd6r}qQ2|HAax=Mk1HA8$hz
+zETghu8J<$>WZFPAmzIoc!dx<54*1}6%&WBhIfrsi<C!_FOm&r8v(k1>FwJLYB+3u*
+z9(T+I=JQ6(r+FwX&(n5!RU$tWEgs}mGQ}ILcTPLh)kgc4zbg+f!gq{+eD{ya_tZnT
+z?M9nzp~BvuMw{eaZ5HFaYHji^f1~t|Bm%)`;-B5ba7^jZbqsf+pW$MhO&Qg|_#GqS
+zuwCMwdrrd*#TN&z@Yuw4KwQ@nFrqcgFK@vvWj=`X9;eGX%l3$p7Rm}A{{BGT^9;F&
+zI*@M<&}T^>(k>a#p<;x&4&K9jxz%0K1p&bMF7K>2iyg{q*o-51243c35n@nJ<^rNF
+zi{F4@1pAjc3=|x7fManQj>#I1uYy<l0S9yQ2*$nW@Ah-OFb)9U=Yxi_bLiZII%!_H
+z9ejK{)_$>2d#8*kf61-RY6p5WtGxpmGtty4VhbVfmHssu<K1p>&Kl%dMfS~m=+U0D
+zoqMmK`38LV>joY7iZziB8+Tnrv-1Snck4I|wl`Ux$GNs;FLU<6KF<r!jgzLfhYOvr
+z&|iVMtk3IepL@Hp&qdnD8O-QgbAXFl$O{?A2e`JA_k;f2;py?!Lg|eEo2PszdErQ$
+z{R&az{GkJf(Zu62#%e}_u^?3gb<Bf#xy^BshW=+T);7kt2V<AMA<W^`;N^Geb(_CG
+zRW>;^&Tf!0BHD5nzWE+-BdSC8RIl2D9T+H0+~QTb`*uUe1LFUDvnC#pzJ!S_@A-gZ
+z`lhu{?(p}~26gsWY%A?TS=ZEc87FCkr4NE}zc=f#;+x*EuX=}zwXO&H8HV){&e~u6
+z(_Zj?jOW#E_{EBD_(e0u%CS$@e)%dF*Olv}*VT=ho^R6YiavX+t3m(mb#<AB;~C$F
+zUsn&I&RtqpFQlJN;`e&+#+t3eiwou6X4(#<9pkwX`iu4vVL}S58s(oN?VsyabYJf6
+zO7~}XL-${Db)|c&rqFqqzAx^9!9LoRYM1kG`IXJb=cM=HH!6QZ1J?Y%vS|J#P4gu>
+zek~p6BWWIbz?$<#k}!9sd)QSSbe|{3rF=o8t>K!kSPyf$jXpWjKKT*p-y2gt%|h+d
+z9G>=RYJ1Pmb+2vM=k$0m7ND=Lceee?K0Dj6r|<3R+u7MoY{rv&Q&Rp6H+1d{$clzy
+zB`dtJtCWp&U1B)ose4|)-oCimsg(SadWk5w-Ia+mll+r$lPBPvCV6L2@y<NWJHL6a
+zKG(vtT#_zkDZYqxezs74%gyet{@XXb-S5j+73+9L?Z0K7Uh3|$U+5A4J{F%0O^@HC
+zas8NA%?te)+e3;^!v5a2{eos^xT~w}{>onPy@8zDlEgdE@kw{vWqiP5Wyga*(J%3D
+zy!-oM9e*ZD5?8u1KC(UT?qef3uWO7AE$MyyNA`4`-^sqNxEOH~^J~^(JQnu|0@4qE
+z;8ms9?$$9z+e46>qOi9ilwY3nen4<fNY6WA=l*DHan77GhY07KbKfB|L%H+*?z~J+
+z_f^2Rjdqu;Z&v%YIWlun%k5q<54xA43);5Yzkh~~qlk4wAO3FWqgc~Nnl{!Sixz^@
+z<Nt0~v~bX)_y~R0?3+A<GIP7t>^vhn)57(MEBEHgz#hDJdY+Pj8ySbB>Et(VkxM7s
+z!!;Y?E-eF>c*G#ezO)=1aXZ>zJ{eQVz^?;_>40HLCm2qn4S?qhL|303^FIgiZce8<
+zFQd-to<(9^ph!$c8Rjn%@qEm-r$|`tBH?!xiPfS=l%qsb0WlY4I?CJa0nrC#+R=a*
+zi}LcpfLMbP*&h&9C=Gi9V&tBHxa)&}@a{&vT>(+CGawG^z&n&Gl=0R8=WE@-`cuG~
+zZEISXhdBKqzybXW`4((d{Qb#c=GDGFap}HP*`R}J|C)Ptby@KcY2QP~9$<$JR+ZpB
+zUfvPNS3~6#mivFRL7O_Rg5NNH=QplQ{LZQ5RiLNKU67wc1~@}Su5X#X;v4p4Y&qKE
+znSI9zi8|ghJ~HY7T)u<*GW&--S5wKpUxPgdzP@|kNAsbaj`0XRp0p3;)Y;01Qi5@<
+z1<ZLG=Q0<#$+)R_V$uhxZJY2e1wNQP9{OS*gq=*;E9GNsyo`gT{B5fg$t8zA8l1Nr
+z?h5DjdIjfqG@o>1tz72H#DKr#IX0h6$B&UuUiX3W2e8g`SJyg}1xkmUnAmer`S*8y
+zkl7Qs)qVUufkXRLovm5@Y&}6g({w*?X4Tn$f;w^C&#S1@2wEZzM*=UzBXh!27x0>O
+z^6ctJ`o%%_J3ISAXuBWF7h)*8d6@KV7CL`IUHTpK8kPP-e;WO3=U_fe%>6W_|0FW)
+z)fkr1)we=ivAxF+>Uk_ENv!`sjb*vU^EA>Da2@DqD`HrpD{R9xY|JNevN(8g??=bM
+zPxgK^Uy{tP^^xn=I?RnVUdNC0#~Mugy!HWyVLU&*)4HTSD(A_SnWyIuW%y2-&(%#(
+z_a;<onN(Vz@wdHvSovw(1*M7W_52L}pqn;^s5?*C2G2>h0cKZLJAXLbRWJF9x2p~H
+z`@PEN^4KfNFS2p3ieJk3Tqa1L%VAf>=khG-@C-nexuT=(%e`HFE^GEGpGyPU{s!7!
+z&9+^cw%y!c2o?5z)1_kiDJSH<DdU@l(ErllT-41ujPtwc>ui0Gz|F6yc%cffsz-VM
+z*tsH^_Tzj9^HG1E@|QXLKiXd0g?lsmed}Gvh@l0~6UGL$FOB&)Z8z4+#RHs%_VyfE
+zpN8uSz_l9hXSL_j)K%%Y7m<#82_@2e+f^C$P<B-gEc9L4o-4QRo&{PM30goO%-cIw
+zkNG?MKipbRuR-3u@?q+2S3JnMr(LhVV!i&%XtDbQyo&WU>OJu?4L5Tf@i%2s@AH&Q
+z5?E`?4r(3*`;q&$tJ6HlU<@;OkfC@G>E&B{PjU=da4-+gN5R**z}L)61~^8i`DE_Z
+zY+p{E_T?NJB$5;Hjy7ys$9&{gwRdsX5T&EKETwBcdN@_K`fyj;g-%e`47_FgY8uf7
+z>!<5Jd^q?0T)cNRs&@|p<{nu(ZjJ7r@7X`U`Nfe`*}?-KV%-Rh7nj1zfju9Mj*3A?
+zjQ=1n{_W8WFQ#38<nYPMp{4sjTL0}wRqWXHFRR$GKORWQy%&xjyuNp<TkT76Pr-d@
+zO+x0UgHGxV*E&4=@*4D)$fa2SN87u^$5)%tzgAn(jd8Q^4L5VJfH%gi!WZ%XM()QS
+zQ*RxW(OZ`t$gF?z^SkRZdh2}$G=3Nl2N=`xgZ7IT>qD3dKW^Y>{{EBy*4Y2iW%{mt
+zA5DL$?Pd@BMo%}fW1vS@tf2%taqm8mqX$L~aLzlL%X>>c_-J}^tQ&p)j5@`Wese_e
+zsqN<~zBPAOYFqVZ1~@%+-=}8j_f<Pn+XBHbY|L49exxqWJ*2Y^D?4|nNBKN5c5aRI
+zt$pQ)Izy+<pe}NJ#juwrK)&dD<9DSx>|+(vRp)$VUzYx$$HF<4`iH@@vr2#1Rh!wn
+zDr?WGqiK$M3+v?T9Q96ZM#k(v`XOi`i@y#<KaXf!)j&o*tpDGKHNEmr1LR(S@<A+Z
+zrB9A=u9HDaE@M{wtwU<eZEl6DP3I4gc#?j8gZGU@;`HT`Z%sy@ZgW<gzJ=$}Hf>hw
+zYBF9S*4GC*@l86Qd^DYTGrwDOj!2HjI^zG*hxq4g*p_sHtv>!#8n&G(j%4beW$eBB
+z-dNJ=>jGQ7gstqbx*x9gNG`2Dj<t53#?9G>m5+4jAr;%5wgJ7`1|(1X2H-uwz1vRo
+zHDANk)73qFc^S`(=W%`aTeZ}4YNXF_GxI4Jwed~oH#>uerILh!eXTkM99Nv9e6`XZ
+z#kUXfyKeR|*v1I`?LGQiK709Ks#_oMV0^nCV;c|nhHE@c((B3#efeuU^|}^V*MaCz
+z(RodG;-i%=weLIdKyIAFd9`Xy_dTH2^!`B#|1DTgoAq8e`zEZEMJx0k^?Ule{(C;W
+zzA;$ykGFLjaqy3RfUghbXSl&`{h%xVTOy9n|JuO+Dgf_$hjVGl{(w1QsuFXBc(ot*
+z2+)2X%*UTTP`;kpW1V4%WzMjy)_mc`4^#|+PoH7=SB*%<(9YAZHD|4prcUc*cKqFg
+znjZB&#oX7Lv(`ydYhIUiGFz?_7jV5;<LD=cGB#~sXR3_*QS{5-CHE0m$h{%@<Y`Og
+z85>(EgWlSq@La3gm=50aBmMtl&=Xh4IEqEBJVWv|jAI7ArEEBrxuTgDaUgSaZcO+A
+z%Sz$`e0Tt8Fk+3fSH;HJoUZ`-IbbUP$6S0f3pBO5Z?khR=D}q)x4MnS)&t--E4dG?
+z&$|e7p(Fib`n*dKa~trUg-yIyhOzpKoG55@F6zvhAoGN_GGD_CZA(Ug_XD8sVo_uB
+zOikMcSCV}M^#1cKS6%BY?)ke^9Mw78Ck!>T63$u0SU=TsY@Yk{e4y|%LgVCH@;;Hi
+zP9KaT_<=e*;w~^`t|rbe&sEC(UEYzW&sGxO-Wc$Wao@c|<#zdIn=AP*)OY`&pM7{=
+zs*EvBuHbF92x6UzB|HaPmK_&#aG!#skA~yoeTqL#D`=K{sR82?;gH?NJ6d1|egXAE
+zBd|6B&yX~|gD;#fIQP+(mHb{zN~{Jw`Q$l~YZ5lbJ4T(^0DhyzZ|_t42fUl)(V^Uz
+z^4JE(y@ltV7z-(8N!hRvZABPA?P_Rs1!vg>XtxK}(mtM>rEQKr=i(a!ZLg8>v(R&l
+zsK;fvN(`Qfrwz{>yx?v1yqAV?i86kz-X2fAsQL<?HA*Z4ucmD*08?DhMqbfMKmK=U
+zlZP1xCAPW3v+aPmHo-HK5$-7uS=h>R#RmXO4?M>rcvZ@7F|p-OY>zgpj9Hs)yR6z)
+zo;UBzS7NTNc6K&j`5D@78{X`^c_^2!JSO+>?x5eGrFLH~5AUIQ`0vgZ$sg#seFXfR
+zw%ihJ<2`ha%4K}V{;ocZGI9L4=s`y@cYx{1PB4`p&C+Ld3{+YN@@DBkYa-BT0#PXw
+z3Q*_Ha}?ce)$vWY>)!&r{Z{>dPtEtgr+*&=+}yYLjvm)<A+M+DF+GC+zpkHe(r05b
+zXVWJn+QNN%7mzMH>s~i1SSh<`hs=&-bT8HqG|qM=?ds~6StPppe6HH1d_JFkQTcqX
+z+?DH>@iO)~6fMqyBds@T9WZ@Q(bPyrXJmaNSnpi0t7}Zo^lsp&&~SKPR6d*XUAgf-
+zKFB6txDy;{|JRKf{}=Ibc_iceV*Osh*^bc-99MP&N1leme!-QT0XW>9;K&0UUGS0R
+z%gf91<(Zw}=mUJbzq2bGrs%r1w(eB^vKZjF18~H5Dme0Wj8b8D{deOBO#LVW1NAM&
+zH2HK)Q@_SKc@KpN-nL5bO|P#|^!QIr<IhznTK!-B`#1Xc!jz)xXY}vy==Z;>P;{Tt
+zd!di(-z%WY{9OP4o81{1edhZa8QobvdmAAy78W|Y-&1Wppz9}h>G(h0_hXuOEYj~|
+zy6*-0_usGvnX{{pSLNb@9Te}?tJw(*qYleG@P_!X@@D6ULsCf#&wg^Ss~-8fhT#s~
+z=Z$F7;u#0><_OP$LRLfWuidY7n76bJlZkJrb$*IE-_kHefrE3!^@;Pu^`(tj=R}$B
+zSlaExM`Mlj2@Kn-<k^+o_&*1ALpuX>yo8ryO|NC1>El^e#w>%5$#-SWhxNquTw4I=
+zQ`^<~sOjyB_6CCX7^ljZmT$JFI&x0%tYMtzY#3)XB(v{F9|rgRUf28alMd$cT{md#
+z98F)F(=o^~=;g0PhXzhyYtwf@z1*YmldpC2&w;+_Uw;ej-Gx3cKA7uMarWqbO!QM3
+z9qR7pzU;INAm8e)kMngOO`66JoUO(n@AEy8&mfi^S6Y?muKiPW`~A>fh&HoTX%}{!
+zu~o4>7wI_se8zv{|1sLX<dw3N{^eR3<I7x0`wp}pH^1$O_p)d=sA$&<+U=of_lqJE
+zW1-H9)HtVrUY|W%(e5id^tg`~ORI639ZTDJ+*|He<K~`y0mi!r^4idQe7laOWQ@Da
+zQFS!4K8S~4*4R1j3sV_>a>{$)CpxxB#+UJ)6jxt)Pdarg#us=*Z7XBVhG{<Y)^^n2
+z5fBwmwWrpg#DCSEI@K$L^?pD+{a!$LQKoJWh+!y`k^z}#p%=K{>b8LBgYpvygSG^?
+zA+)Xvlr${cw`alPQm}Nu!5oa$fCDfLyIH}pcKh*ZmAtzsrq1pjk6vpvUY};{7--{}
+zWNI7pBr-Q=!2F9-6nw++n;Q}V^F=2R!~ek-5=QK`L?DLW<{NnbqGM*gFT%4R-n;Ou
+zNIuig(T*_ViE^{viQxS}$Q3Wz;(G(n*p4f_$qBD&b}aKsI{;bL1N2Z3y)W)H<~yD>
+zpiS`381EboZh?+F7k2L$d3M7cQ@Jetc;}IEDJs99E4WkTpo`_^pd-z!<o%MManrie
+zK1b(%0)O1rh*E)aHp)FHXYo!>lrvFkPzItv25-Z<+BP5MQz&y#`l3L`+}6PSNhqhG
+zoQl#LrI*f=RDx2B0-h-IA~DvFcWMSuAfvZ2S0n6zZ5YS4e3@TN<x=v>I7G2c>gy=i
+z@-OVIfc1uqi8Mti#t|(wtoq)<isS!!$1Ca~Beyt%7>~%fHgmMZCwNiK&5QxYTnOO3
+zpQ*lM{zQzgfNd5TZ#cZ?C19yJb{p#x?(`hX_b)nL{azSboP4bF@zy9ior9724&7P#
+z4tu(~&v)oY$w$d!&L|Wwb7Tos*M%ZbQuy7DaunqV%3+j4C<jpvpzKH4r~luBvQ6iu
+zf=u1E6J-a=`zY@Tl^-jqzX_wXp+IPEdj|!G+_n{E3g-l4ge{#Y;`qXEI{EVM&ue8~
+zRO0<+>NEHzf^Ud}z52Ib|K6p48~XQq`nRcnzpH--^>2rF%3~f9_*)KJa5B#ySmW(-
+z%%d<LlsZFzxhl+i&l0hFFXTEQ{eMyB9aivJu~BvpnRkL~LEX{fG7e<j(b5o4e<Rlb
+z=070n+tTyT+&r8=w);cIn_8+}($D+Z^kYTqgjHV;Jk;KrO3h;*>@(f=N%f6!v7fII
+z51=pJP3p>`uQYABjLlmoLC5kN^^V7Upq28$%UB&_sgz@*%u#kF+Pau$Z$WpDV(xy6
+z5=Hqn%EKuCtN(un1q*-M{U}W+%Tbo0EJay@vKR$6&$fk{2Rw$dK(BGG>3dP8X`V1w
+zuld<1^(eDY>QHJ?9z=<te3yCGI`u=^z7Az3%J)%jN4ZV6F+tbE+T2#HzhxWaP+$XX
+z`wq%jnS(~px1NuDBU)1`dE%Q6`CytSy2Kp&!|+4yOQ<`0CM8xd7lpM{#<h6Ohn{go
+zqK}wn{WC7J_DRsmW0<=~G5=3`&H2x`8lz7o+Z8=~H9eCir!yyJa8Ahr(sEewDjDyq
+zzv0}@$(jG!tohG;b2q->dp~&052TEG)0qaiexP|3-?_8CzeTSt7kDD{tkMeb#3Gs7
+zqBP;wzk5hu5#C>_e$$`BHUF5rd$QEFggQrscTPETT!>p`UPt;=dWGwKeNY(J+bdWv
+z_sp0Z`>kq`>;s-lT{y65zRVL$d0Ls(2J>fDX7JkE(|C^odDy!RFne@=Hgg&4{~6=z
+zzEu6s*lw?W{&zmt|Nkv(y!lqtgJ-_i<++<?hwuL+??FD`r0K;UjMkh^dWmg;u1<Ox
+zujnN>w}W0HpqB`75!<8aMRdO3DU|T*`<?P=TUtT8Uz%41XF*5Qyh_}AVZZcvt%sh0
+zZS)Afdj>S{q@<z7d!F=KprPuyPll-<0~Rygj*-jrreGYLBhr#v^JW+5%oUt%??v5V
+zylWUd!Zl<OeO!sX%xlIRCm3UeS#J+b4Q?UdsKgxIgSHO59T2?dmv{L_KoC8}dGGEV
+zd)~X-L(NXFHS?wZLI0pH1pOoUpmPq!J6+~%y;tU)?Ptn7V{dW(|M?BZz(P09(!q+V
+zp=;&jDG4R&pf@vCT*NjzKeFCtOoNO181)2qY;$Ww^h=bIHrLm*(iciw>Hv5w_40nu
+zVISR`O6G5hw)A2i>aowYk<R*KTzpSo)Z+_NNyhwFN?a^$72!qFzA{BKWDkl#-)BAe
+zaebV7O@pET{NcP*a^_~}rocmRV|!{EN)^g~QU|2|M?KIRoF(-@zGoYhf!=VVGnP7F
+zEUg1p<>-K3$im<8Ub0}5<E0L$`55&-%APc@^9I-a|5o?&o{a8iHbM8BnAkztZC$SN
+zHFvA~HA&qs@{x4ErY^c4^M+Di>)k2;b@55)gOrP%^+Av8#QI>H)(3ZJeUSOJ_iBCc
+z1FaAKJxd?FLF<Ftv-H7tnWwai?zcQg_w#-Nx}Ud`?#K1v?a=*}=jeVNck>x*Pg3t|
+z>d^bx=H1l$%;j3|o0v#u(~j2rfP>l@%u|g%K2*P?OZ4&e6X<+iW69R>ope5N9G#E4
+z-fy(7_cY21t?Tjsr%qDWyHD$Sk7Vh3^E40m#&LAL8m+TYr@UM1X;V7&Lz=!OOV^u$
+za;t9ROS<0ow5~T(xAA$DZ=-w*<w~jZrRRCH!Z&ojV)8(-96WT6ozBCb!~ew7S^O`U
+z!~eV;x?U*pzzK9c%-N&fEM0F$7hP|;)b#*INh8m_b))NXPVbSr+j6P9)pw)2@tepA
+z^g({}{VaWO#wVofT~qV_uCC{`ur9@Dd6xopz0>3!o{*KnxjA=urgc1T?CB4!<9Sa~
+z$Ma_Cc=-RxZ*<b}yvD2?-d3e`Ja3kc=QT*<v+aYZn_}M3_SC%2y59a1=z4qplB?@g
+z2hV$VxYg)X%eYv1r)LXf{IgAX<~QccTy<l2E|&g8$oOabSPwa;jPTg*0_c78DdIQl
+zc|y_ksn6DLIK`^lkm|p2<0;1ajaZj&asQV&=}9lp@e*gy=Ng-jam;u6Kk8EV1ChpL
+zELcrk<=T%X`pElrqKRtIRCVOJHun^a3Eym!I^9D~h53+^`s~KUDd3gvPe)tM7*W?U
+z*BZ^7emuiDk9P{VN7jK?&vuRnBk1VWR>mTUWzJ<kP-n$n0UgPEjDQ2))l*s5EMv)e
+z28?&|%-}lue5rjM&+g-S2*1r}sV$=MQszSR$-5brcDb7YJglI}Tq^gt()s=TI~O_A
+zHO&kMzFt_=>`X@89@TT>E`7g^#NkQgCggj<R*tc}bg(@c!rvG0w+GK<S7+{n$Uo`(
+zAg<H*L0p#r-+r}{cV(GPt;{1r-QCRk&0Kc9vVK#SS2>aD<#?y=YEKsMez7^vwUz7f
+zZevaq-qHP8k!;oX*4#5(Bt?|)EtR=DiAUpu_M{)UOy_J&->sAPA#yejk$3AXRrwmj
+z^d&FT`5I@-Jh;rOzv?sS8~@W5mv?A<Oq|uFQg5~FKK`D<o#<=J3BHMv&ol4Bzg@{W
+zI{)H3`2ST&qrfHPVaJ_G-O%0X|3`O%@Xn;iPXMdDKN8=}cqJh2I$ww|c+6CkX(&6d
+zIPYCyz3%jx*zDW_*l5$xrsRBAVNSn~XIxV^;xG9vb9FD=-6`fX4EWQsrvACM%{MnY
+zu5r5m2=k@AF73ttVLorPF_^pn|9=i+B>lmrPuzFA;yZlru?%}K@gq(njmUhH)CZXJ
+z7rIBmlvARK<vZJDPDAFBk6N>29+R=wEE#jR8o&KU)HM`sj9=f(J-wDdtUgX2w-2;D
+z5@Yb-cT;SZl$k3p7D@i)9b8uo7V;kJi{)Bb;*9zX^}dY>k2Qz6c%2vMuZWPBPfWaw
+zIY`6*RSo~2siOiP&&pVltL1Mm#_>n|<(*ZRcZ0iMQZDjb1$fG@Nay<hCsN#3y*iQL
+zT;G{*^9~HZahgqD7>PAYy5YDuK922qjE!eCIX2$E;W{@$T`EBsFV^t=Qp3l)EPOiF
+z*JtS*FPA7h{9&Z}TLm2ZfKSqQ`AY$@<o5yLh4S&jp;T(xkyL6jo=rcTO0C2HJ4b<z
+zszdhYB;M4$V|_^bq2-Qmce~2(`rV+N_Yv>m8k)X`E8I1=Yx?do*0U%V@mt0ug`+Os
+zU)He>L%h3eY1TTd*Xt1SzIv&|r|%>36|TcS?8>Y|UpMQJYh-85b8S0EJ=eDOQXzTk
+z-~Z)GzN~f6T%NJ~Kgu(ryH3nAzKCxWe`s{b7dWTPXTkgN)Z8{Y3wC|{xxM{3bIZ1P
+z-huPWSbfSbw=uu1sR!37>o0eBAGtXUaD`P&8}Z0*zamtwFzDAU<E4LWxs-9EF@Dni
+z`oSFgM8+Ky8~{)F@-DSD$91gDc*5PI&wqt>MxF%ir1`5HhcQp(G>=4I2c7?QGvwN2
+zJoo5zU}*iY%3A)6*PQocCG=g7SiIIFYS)U$@*ktlV<=DI|7Tv5`rC4+9JaN`x+%`P
+zSUsU@;@<E}apLx=l*;1_-c+_3{H1tTd&hmkw0~c)nteXA){STRz+3*WB=5U9(Twk#
+zwGJ@=bYA}n(D^$%PfX`a@Xfjn;BV`phoeZEk4#WL)@tT#h_-}fj)=)JkDIV!zR!}+
+z#TS9k^|wDOZPY(Wy~<^dwOui#>+?K8f!3|fNKf1F2`RI@<V(g<U!K&lmpY~>PF%&@
+z2fRzo`h6>((QoCqY9yZ6?m$U{OS{lu-~S^TgevgXgF8<^gVkJbVjKVFXVK%>@FJ&S
+zr`88M-L?2(^ugk^J{avrAB-<`eoXoSJhVmEfeyd7Ged`k`hIHC=xVKx)&A3!-1Z6R
+zW1l|>n%lplJsEgDAVz|>hKy$ABQWlZ_fHLWk>B!u6aGJ4-|4_RIxAz$TTv5lvLZ5W
+zivO>*Y90F6djTH-y!Yt$`!Md+>pID2;D9l9)St*Jc@N_i@3$xChM-FTQ9!Q01l3*w
+z?Z>;cZb7{&tzS^LqFzN>{xR>uv6`jsL|=Uq-d%m6(is>lFLiT_eZ(*!Z8zE-@*U{~
+zvXA*N`1@BQRGrJ;XRJ;%A>TtjRs!y{jzOG3huXFhcraiWOP(j<9wYLcKPnm>+S2&H
+zZB-2RvV319bA52la((fek@!Ynj-b!IXj*j}p~t;Q`&G&{#x`1YGM6f!dE@6ft7A&u
+zv8{lZ-^RI@K4~k?bJi_xP5T1hvwZ`0uRNoNeyC%8AoD0a)P}#?)?~pA-t6iOH|K+M
+z(<?aN_FF4?M_kL)u);s(8|Ub2!1pO)Nn0q`?Bs>-i?58;+uq>p_$i{HttnXVM5~oO
+zw|khfl`2V3BQ}Db{Bfzf8Z|90z(1TmRiobF9QgI#%-m-KV(o!cDgeEXut*%nUUv-M
+zg9|*~0vwped^;d&+T<A>X%ke*JDhH$uTI~AY0xJS%(QzKXv$@6=6NQYIxKTC-K6eQ
+zEqEE<|MWejzwZF9%473kL#}9B3;JSA5NXY{9)eES&_??3X_|r@lJt_0dxoz&Y?t?a
+zx~BMS`mLG!miNyw4wO8Cx~e5Go*?Ef6i<YL5ob~;;#lIjw$E8&8~q3_>JZRpdW9A4
+zB%es@uHdQH?jT=V-bKI3{}6m_WSXy0zo{l)Tdw)qoDM$&c#(U$Rqs2WHW9|#WGSD7
+zKkGhTKXX6IdxV6%Yme||blau>QT?RXj+4-B=RDU&-{PC7_eX6X4}9B|eEt*Q!ENuK
+zm<KPzHwV6S-n$FkWpUnD%eBW?NX}6KWV9vJ-94lS+NF%~=a>orSI-McFU#dw?f;g2
+z@zndrpMxG^iuCdH(0us4Ic^!_D042|2RRM+9(`Zy>%R-yg&$F0&r9p;Yr5*|&uD$`
+zv46Oddp`kv@7pIa?|tx%l!uhF*>+7NW7kZ6|Kr;=6OLooaQ~BjgAJD{ni9r*XF$H_
+z@PVXl74*@qUO$xg{Df%_W!=sFAEv+3_fO0N(lVU-KYbosp(ps>&**8cu!^JIByEPM
+zCv7vl23mow;&{!ucBRZO$oqd_hl#qj7d1`w1Wo<?6QHR#-a9c()#00|&jiGHl<sIN
+zO;;P<`}lPAjgMe2zXsbw;@(&;^QH}?y$st<+RON^UzV-x&Z56D7{9wmvGSisi07s(
+zJkO<FQowdN4*HR3JNo1pqAjQ4StIP~`u957)gqqA(8=wIIB*@;_b&5Z;V|mVd@t9=
+z3=PSp7kLMs)bl5`IH<Et`iJL&&YR?X`#&O`{{eRN^;z@n?`FO?9LHXMO4I7s-f|_E
+zegd>Q=p<-$%XZM}QvqS2^g~fH@N^{u>E~agWFYf=56hB)muAt0(pTnCUn!u>#~4e`
+zP5b`-OZ;fZ_T%#-mzW8=c5*RgqF?)WD`w})#6qcSDgR-QEM1Fp##nxi;f?Kj%`OPq
+z{*Sn33)5>h(sj*t#_8Xo6aP%p(d&PAC3k)Tbkwx{#B_8ezF`~|_o5+_N~O)j7%0dx
+zVa|6vpruE$=;wR%lfbSOk$CCnq`%`qwFgN1(0E9mu}$k2Uf5JK1^cRXR%}yeIfS^^
+zxkKtV54`IMhU459n92Q2`XwUdd5lv6-?>D|QO3l1s~>Ru)&ou+aOVkrGtON1O5Q%?
+z#J<Y2FCp7y-BW^hhCe(jP98KJvNa8l%b0ERY*Ijo2kIoACbYn27>GF>BE*9-&%}2%
+zd=sTDbgx6$*{=xII{b!yAU_7pz88HBHZS0jxooYvxYwG;7`OuNH<MTASsPk~hBq_U
+z5Bx{x`co${*XcNdv7rZ?;_V+_hMghT!vo#xMtD9$(me1Ki6_>{Gc};4;X0RRB<jLD
+z->*}t4qEsj_w1l+Y)f{MHM)&oXrGat?6m)acQ5I+wr`6o`S*@~|9kj<E_q`7e+S<j
+zSRD{sQ0PyfZehe8a@1bF+PilNk)&LuUx7TG>!MOT<aioYe5brW+KTihzj3Wm^N{8_
+z@_r~~1G#A1Qx`U5oZqCDykK-7X?M>J+y@TXq<OE-VOfT8{_`f%^l~RJJT*?5W;~iV
+zGB-~9miE3EJd`#x?I%z0>vG)^->s?Ct6YowE>`o}TdwVp)EivkD{Z#p5-)FMtcqWJ
+zCr*A{fiV}zHmbNM_^c~B&vpf8mG}$=58?U^;PG4EiF>1Spf}Hw^(xJWWL`7ylio?p
+zafOaQa5cXC0`t74+dl%D%Gdc+OD_<~1NfGHg7Cy<C%g!{Z0NptkMPn~nX?QuLEk~f
+zU$D%%DyjVion*y_@fS>zYh#&`6`lMAJ;c)1fM|S|xm%%|4RXsk=)Z3DS`kOy4Jx9Z
+z3hhf4)~l@rv}qZ4(IJzU{YPbTLGt)A*`Kx%<~-Nd!(7@*nJj{f9MgIsA<ulq)^Ft)
+z<sI4s<B1OcdC+SIQ>i5D5H2N0qNTrQP6umNi#jhFv3VcNO`4w2M$2!w-wE09oc2c?
+zebbfvsa)gBI<4_#|Is!6!nPBy@muhX|7QWYKfe=eoZoISn&mxRz37iK?u%1*q0VLD
+zS<3K~oFby7MOL)9OztIYY;}o{4H_QA`0i6k@1f{l-NESVn2Xm>r7lnSL(J>VINwS1
+z$Gz2rap&p%3d2+}Fw}tz-X$3vV~bFI`~w{q(u;Ek{xZf=zGkDk&fco|C)f2p=+Ei4
+zxE9%Vx;^FwdSB}4s9RkVXS`U$PXZ!zdwZ%8&l*j(d0*TuAQz2BXAN;+jFPz`c;CdD
+z$a8)C_$&AQJ|?ZAtu0^Oc6?f0L%;Hm10s$^Og*O>JfQjl#REKzOIypOkNA2SpLH$o
+z>cKms5qghR9}igbo$-%0J6EEQg6jHsHc#-1`A!aB_z<x~-==>M?UOeY80g1b2)bP;
+zc^mHl?!ovcacxV$sBy!ND?3ZZW?#$rv4WLGt-Vs-+cq(Akn3ViJi)j*(tClZkCTU#
+zNScqxwefLnsf&bomH6??d?Y_$-t;ose&t%1SjjcGhGVahF@=m142bzQ@t1wq>JIvH
+z@$P`p?4-{I@H?StbuGSmOvj7mRcqb9pqh7pwN%JhlMrppXI}_4J1<0<oqoajGFQ3B
+zROb?+sCP@JdcAoD1w4d%Qg6K5-jR#k%b0bnh1X;(<3sY^nWpkmN79X@XedoT&ug9&
+z|C=kx90UCzi}`Fl+7sqYwom79d58B3fc}5`uF_5TE^Q~%p7eqSd6)XwDIcUri@f_h
+zv@#%8qKrf#Z8BcaoYX91J4v6z<oOWg)8d+!v0pk)XPCx+Kj82u-&OH-n7?O*wOPgh
+zeNV^zOp$Swo28t*j`4IDZ$HS<3eYy=Kg*%xSK|M#ysh?mgv8}+siT);texlLEjbqx
+z5`Tc)ru?08CiBA2cHE83fp&f3%jje3(A+gN`LSl_HsGZo!Zp;?5pPC2BfW<FA94*v
+z(`%?2Ylw7ja4)S<-fg@R@C3qo9T@*N>tK#v2fWun>LH-}fa$j7-i%q>BFx$HJbu4!
+zaE7^<XLj@aYj_?6zd8TiuJJ_ma(_h4+q=9Y9Jn_1y!o@{t&wsNZR{*Q_PXMo7jGY9
+zUH(DJ(alZ;;3M5&4oY3YsHZcmUf5167<1K$zRLj@@mQqkg=_K9|G1K@&)=Qfs6rdN
+z+j83&K19JDFc!=CWA6RoH#R#wkFwHOD4+2T$KlKi0NoONub?x0ds3+f-fmNCGEc8b
+z@|-=Q+1Ue`w1?-Cc&9sPh577=C%>g)uD<$Dk^B+t)CR19O<2RPc7kuIwmV+v^qg_O
+z<Q;#1!<GCp{%<PpdrW`R_o%OSLjwhXdn(#~yi?nx0Wa@t#Jit#de@(MA0F+*Pw<;O
+zrRtG@=!3E@8W3$yw5PVB#8GDAcNoRX=gr!`3H@TNQ2WSFztf(a9t4ieknIgZeutti
+zuFX|etvwcc8EJ<5u|o!n<XHNH<-YN(coTHa7ta&PbgTsRt3R}-<h~%|{d_uJihn;n
+zRDJiq=*x??c#f>?p@0ZrLZz((esJdXA{m5?4nC@6bOH2q?$1d5H%mvqvF+pQ=wCRF
+zj$QyAb-J}E%coN-_w~4M+=S=!Ic58rX!CH-x`I49!hOB}p1$6{?Zo;z?V{{`y#nax
+zz05|Z4|pc+5ZE9?3e4zGm$`9RFDr7PD>CZ>d^ZBRed4t9l`j4=&!$Ia*}vB^u`lTU
+ziBCWew_8uFhd1JzFlcM4j*q2Zt0MA{)H~f`vb2*q=atciob#njn<DQlnQkZ<0{it@
+z>S0xs$>w6IZ^^r2QMb1~yYVT;pz#ih-jJQX`EBW#2|jCzEtNWR`OX!*50bI>E!lAg
+zjJYY-aUs-2*zUXXOg!i$P%7`wW*?yIR|8_{yB$92@U?Mo_3z{CV-(gCeeV6R9;NI6
+zk9ZK{mi$A<I&d%jgK??k3lCz=kH#7^(s6*rw!{T}YK?ktqq@<#xAo)im0x(Az48j<
+zA*T}dKjm-_jVtbLfXAx6`>>)T>OB9AJ@GHKp2U8bq35jbxi-@MS2nwnFMR_0;pHbm
+z_kRIzW&8)}Smk7&&=E_+cr4nA*)+{Kgq6KSvX9hhsDD8(gl-{YHcZ~fMOt3cLCb!9
+zZX`{+fUltW0+FOmcrx_$!8;$HzJ{HEzOreHd$P}dLbSE^oexi2Fa6b({QW0DTl3#J
+zF>PInZ_;OXI`-ScYK})po_MXi+Zy!dagW>xTAJfD#niq`p7tdWj!Mu`dcTBrWmRUM
+zykM=h*hznzjt8&Q@!-V8&N<KZ>26Po&;Kvx4ee~X>ICyfzZds`gYRe`dZ&2F59346
+zPwy#3yYrzhchY-ELD0pXPhbxz|0L+*8K*r-nozOajgCwDQw>|nSgifibsW|n=i}>a
+zUrDe1Zge&wcrNnV#AV8VlDJsYB+n1fcjE40{8!?vo^?(x&dME#CFDI(LiS%keKI?4
+ztb_LDzS+{=jE()Hyr+@8EY5q~x4B2g5<JH!qUuZ-<C@-+=Q;5_P}k9Zt3EUGoYWUo
+zyc+L(%<gNL?&}@tN09syZETeFf2no8hyUVAKKu#rr>{FFro&QvLp@c}BK;<ykI{1P
+za-p;xBprqpIuo7Ty<qzPKg!xY|2X@>DI?D&zCJit$C!oxdogBZCrN*NHwg3j$4-2u
+z|1tPVpZ}xzWE^x;dD(I2GP+frTX`C~gg-Lhmh>Ic@}^qZ*zVKu%#`~JE!D7HL(%z;
+zK>03kJ~h_t(2iw13-^@*u~~7yjHihwnqqUE!_b}c_5K&-&G#dzB>iIakI6d;d1g4e
+z;X=0%gNUc6wa%W7LHNrcwXbB}7ZAqLR4NTC{qp|s{Ek>OcT|m$aHQcKOISmI6=gJF
+z9jRd@jM9b{nKNBYvDwZhz?#+-3iR{PW2s~srWp$|FdXlk&yuYlf6sUNM~GW`_(<xQ
+zaZ4_J&gXMku}i_M7?q0|8-TxIF|W;~&&d=WBc6`uWc=NolZh;UCVf`szjYSqlC39y
+z7U+2AcDx!F&*|8zXVAwp`hVunegU>$|E;-kR!?_2%d=kV5QATLCGYzLbclV46Z7ts
+z_~zyL0r4~n>0#psuqRFs-x*JQe0mNYhn@qXsg3cS>DbOyq~rgGV>?$QK3Z(&g2c(k
+zcKVMK+qry`EBT90fWB@x3Hl1)o4NM}L^TTagY6TVo$U)Vu>k69e6EjiY~thVtHVza
+z2hht%``{+DoC8^tG7D_E2W4*D+RKVC59@z*@4ql{VqYS4hm=uZ7c*Bp;QO1_4Nt@T
+zZ~O%Of&a2kJpT>&=Ez*-4;&7fAD-T)HW#<{iY>w%EW#XAagSmU@8U`cVY>w9K%LD>
+z8N#OTZgYj$Cg!Mi%3<pa(|!;k;-&bmxB|cVT-~)EbqNvW^A?`3;a~bqD#T*hCi&Y)
+zBjWS{e;Z~z<djG7PVbEm7Y{jog7a<W7wJ{qgmqUg?P&UNHhteM@AvIx%?BOLcLJu0
+z)$^m!Uqjou!l<`7?u*fn1)YZHn|MD~g|XBbNgc<iWA5gJ*mYlHzRnMpoeL~q|1Wf2
+zFpNFXr-OGy6NlwJ@KNqTZ==5{6mE1TnGt6)Xm%RL&<pd*anbiA&k_)3#sUI1!p(I=
+z*!|$EZn;+GbAQU2WXzKHOJ4}MCz(qe8RKJqG+61U>I^G!J}nF9A>e#cC!A022Ise)
+z1kNWN1Lu?e132ILh4bF+w`RW0ad=}7O85ioqb)r}1MCjim7Bg0H{$c{a@b{o*n;>-
+zqu!~E)jJh&j%}IKFF4Nj>hVb*9r)h}J;ritT-PxQMN=Fn^=*#P6wHS`E#8m00_Q*1
+zM!veKrdj&Wna@SeKlg5;@u#rHpK?<sMx!3+q@^xnkUibHU+u31qb^sFDMlwH07r31
+z#u`kK`!iM5_d9+u-yRv7V^0p<<5ULcI2MW*`ceS;WEI;m=QxHj#~B{1bB3Yxn=g_9
+z;G4M{pi7qZ(*IvUo}%xDn2B+YzfL5pqH`QS-dCf|8TfxXN*KJE?asn8%DS2OJr~an
+ze76G68t^-c-%Ti0=KW3_{G`&XwLR9{_)5UCM%RBW)a<McFLqvrzW*|G{Feoafdbz1
+zvOMcKH!cM8(aZ%Onj2?*UubUJ8=M;-FXmu9&B1z_;{-!<oH6Kk?EgpJwFg&K-}&Et
+zg-f^#C&^8XA=X0;l8w+Ftaf}&djn{FfZTv0YU*4xrP@U%)JJKZ+M5>vn`mC78HCMs
+zp_<vUvuw9J!#HKUKv7g$*~%kE3@0}n30zwd)H+?w+3)B3`<=WDNia3pnf>ETZqDO(
+ze&_ppeBYmMyvhpGcQ!{hFfJ5y9Y@Z_9vM2*WQD~Bnr|EEJ2qH|x6D#;T1E73<a-t|
+zKBIgW-unxB{(+0_<jr*b2D*O3pzGCi{a(7htvnziH1Xd1={Y+@$J(Eqv#+6}n2z5*
+zan4>ve;?i3WAC7&nvP~V*j8B3XDiHQtT)&b?qJ&>&Fi6Ud34?%`a9V2N_Vy0)j5JK
+zuT<Ld7IltYmJAG+E5vvjo&>&~X+Yoql5M9tzR{ci=t{otU?VA-U3O(GP1;yJ>F}jG
+z*c0gQj6wYczn%I8`h2;POZ|~b%M1KFy_D8?Wv{)J`hfQ*j<ekfF<gutmJRH@v5wDc
+zw%y*Gn|0o?*`wr27t!YMAlhslhBocy_|RtS{{h;(_=i5)AnzHtS#FM%sAWCGduGcv
+z<dttUdp=jgovxkO_H&xGMqMvmT`~?|=~#7El{xlxam_I6B1n697VA%r{Oj*0|5jPB
+zA&;jHb(=Xl{1;pEvwbgoxvW8PSdGWBKR7b*`07BHm?O);uOC--dTRf`k6JAF1l{==
+ziAg2Tm=A(iQ-58^g^k2q3t%s&`EVoK(3f}Jhrc0{W4<4sNqke^XjNa?!ahWgQN?i}
+z(JNar>9@AiD9eN`+ox<+jD46ZxE2~>*nacA&A$=LzRFmai8@C<g)dNbKVsRIGgcJ(
+zJiDVOIi5MvpwUR<|DfWjuzA09eC(JRvxdOTU>Ydgj2QLr8rb}4J#Vq?7dI7494N@v
+zn}~;em1M%-zth7s#rr=6c7Rr8&RiyvspvQ2vw=&3oVFjs7Ydmn&VDx1QM!O1{p;_^
+z7(&G3BX6Zb;cpzEc1zXomIJQjp$V}4uRK2T+z!$`pF9x|z?%T>#P5JFJ=h)^?z71{
+z{^-TW$L^25b{K!ON5vc>N7$!iHsn^_{a0yAx?II{j^`XtKR$ZfB<w^k+7D27@vzeK
+zFQIv`X9DKIiH?!yL4AkvQTLNO9ed%Sj<NHytA@1~{*rS#W;r<>5#)4KS>wsSp6wVN
+z|Kj`@RkQbq;$1Ji?!+F9FYj7CigC^9ki4s{u*GV7u3v26Ae-I29b>oIT{T=>V87g*
+z-f@n~+@0~X)6M7@ot>^WU)t!7s<r#|-Z36u8{J3mj6B9$>7E6TsoWVApL(CdISL%>
+zNmlp6I6__o;>EpcKJPFp62P2+oy46T>-x*vv=2nXiH~eqKN0;eBN+tow2(<0%p+WL
+z=f_Ypt@GpAB8eD&LkD(GBgv#2Pr8kbCtccZ;-M8*jPBniDy-I$3Tu0$g7K7Zek33s
+zCB1k(G0r%B2yD5Ct3-Yu`w)?@$28jmoaj`|XtY}OMr(V#(L%nHM(+vIIoNeP#tKsy
+z)fRI9(BH?YKe&c53DUdYSGG3ru^{Oq8e%Q9(u7Nkn606W)-L+yR`%^za7}yYB&m2O
+z$!bA9k9XW}dc^LNK{}_=x$V@BTYtb5da0EoDtj?>fdh2=72<TpY0Q=L>jyu7=l_>}
+zF#nwk(+_UGY@mK{`)d=UA7qYV{p~$AG^UEfKfUjKxfr1MM$Zub<EbCnNoR~5+sSy0
+z_5Ncc?6Jx=i)(GKP7DTU%dwHibrIczJ#N~^sOKQB;r=@MpJn72;u{tvijfOYBJIID
+z+Ix~&D`+1KhZDdn6JgWCSV}ZL{!mRKpzvm$n1*n?#zHQ|G@9=x;w_epxmag9xU|Le
+zPGI$JA(;cVPuM^`;ii+Yy}IK~Cs7Z?t8xe+FK-Vc&!xs{r8c#-HskqT3Y>JUCNWji
+zb-UQ!y25maR+wAG9mws!&dEP{q8+*XPqDs4=X|XD=uwl-`CP_4tA9KP-uYO&gH7-h
+zYH6hAYFjLqz97-OR3y>nFZlW<>onKT*kV=D|A?__dsxO@ID0>6`MXeyb?@;-iJdB@
+zW50|A=|XG=+vtrN_HQ_P2<SISVgG7tYOI&OCX!L25AN}VD$GbhjrH&h8UF#APQ6$p
+zQF9YHGW(Ic2L1XviEq5XDDOgi2=3iawA(|v-XzY=jde!mZs9g1HhKf|y?c*K8sPj(
+zuw#&ZkC>L&sy^&KZ)lFC$7OAwK%C|Q=b>#r$#}(}EAmanuI}xd?9&JTN%HO-C4aX@
+zqSF2rma$miMc|FysPV}<=$_tK&mYmefz4NokQ@zr8y#761nHRMVD2uSbLvAUrnyAU
+zLszUI9sBE!XpP&wL&h8OJn9#3Q%rJ$pLCe-#9|)0FFjmBbCr(buSt1;b3v6nfd0Ur
+zld5W0ijtSDGx-wZ(8>8&MRd*OyuqcNImVVuQL;DlLzR#B$qxf!Kgk2ZxTHarS!=nC
+zYT~)~F&*40E-e<SMQx}2fM~P=#%j7AH8qk8QjDkxxgkJ2JcH)6lT-8268JP4EkEB=
+zZU(5YsOb_Q`2ph>)aW-|M;qYhZmrbJQs><2e$ddX;+>}7O6}3R-&J*!=M<8xLHyt0
+zUojndh-<naZ@BemOpXf(%YGwP5$}a81Dh!Ni`*{u=^=j~ZENzHi0r0yOy8(ee~k<4
+zFZ_2oqQydfLk{~T%4nR*OxokjZ_<8pb%vd6dnh0dkgos9?|bYv==`K3?7$qsK83ik
+z5Z0W^$*S#JbC?&`tZA{FeXEn!82aL;{^ibXv0xJeePG*ig_oEyT2Jmsgyqifh-KK@
+z+f%~41~^s=?XS$2arB5GgPa8nrI~a;zS+-m+ymTy#F>F+urH?=rTndvRcsg9X${p_
+zZ$54(b=rrJ_ZQI7j}@jzFEc^M9m@U$T8D_{t+!C$L1XH#h%7bf8#0mS6Cv6~h;|XC
+zU6sk-qE(sC67Akix04I$dWf!v23_Au*E{ICF`%Yb-}UF|`VqQ*;=zDue$Te`?jBp)
+zC+UBJjvHt!Q0ol#XvVmpJr8-h0s0>J6_M)!-sv^BoN(%k{dJZ&JsNvWSNp`+YyNz8
+z;_Nlgw~x(U^B=EFjJ;-U`^d7%<?X}EoIhxv7_7B5XYC2YTFY<0aICdU+9wWct>>+=
+zW3BmLnHa3KH{Kd~j{c19`Q-Z~6Vb8b`!arPtUi>PmtL3;1@rRgC4D}W6{pVcL-|(G
+zKp)E6N5|KP^3%62%!ji2t?~Dv+;ZRNeJGC{{k#w5(BjYgP}0{7?L)ceuAzM>PaN&@
+zq1^uR#Q0D$M={U$w)G@`d;cIG$|!RBdfL8Ro{XG6*aZgXjQT&AIG((_ZInE@d}yA0
+zVBf^><c7A9=RrZ+@I1M!ZR|XG`4`~H)n|t1$#c%blfR{S@}=kD$&$Wf=Y^o}^=-rR
+zLi87y_9-e3tv_E!ouM}rU;h|9o@DP?Z3FrG!9lV8?+wFSow)zGG}pFH0B`-|=*V;J
+zdAjGl?*&8~9ZsEuBBOR+j$V5>M{n4dr8Vr+joQO*eMNkpE4JGs?mx)!v^whOr6*i6
+zzBVm~v8>!C#}kTJ8qP^Pn5E7=onAk^6>%~GJlA9Po)e^tyD*n@U{)k#yl$-(8{(Wh
+zAb+pwU&|oG`D5*98@c;F&S@oGOmDD&Y2ww(Eln$DyZ$Xc)Lj_*n)AFDG*-H?pLD|@
+zbZ5GL<7G1Es6U-FqLW5+qPF%0hoTeRi}7~ru?(WShvSqWmt4D-)=43)t*GU`w%kL1
+zeTZ+yGhC;7@tjlJ8c6rsQIja_Sd^IUn_@M4TCB;n&zOD#^{F?QdBzkgmyQDkHuF6<
+z=h_|QzLn57tfKo@Wq{TjOkaQ8lbFQB!QQ=+aYLWAMCiXQ#KtXS8Rl8eJ;a^^KI)B2
+z9eyUpR*$B87}MyWMZXh|sJvmfs+(C?h<rQQhqE*nXHuK#be-3;{sWWuG1}8m>*2Y%
+zvCi_jsPkD)?=R=E5b>idKQK07czq%el6lC$hVW5ejxjFJQR@+f%adzNx7;OF2@z^Q
+z4bcSXf%WmhcLic;xz0f)-hrG6)as`1*g7NDSymA1Tt63UrozNt;5T6htCM)8=Iu1+
+zp5(Fd>NGy_YSQWJEWZfBpOx)Xm{*AJtXFjPLY5&}kk*=qX>7zAK!bA}n^uH6scx^L
+zHRP2%eY)kXbg>*WJ99ewiZE|=#PTlgtNTs5cUKedNrjMW+MS%``>wZ>jdOt)6G>oy
+z`s|3roxuH1(fzkhyDb6R#Me)_l5W^miH;wTu27stx(e*i+6EK-_YQ$Gw1C<@bz~ss
+zjZ0gQxP{t;jpPc;mCPMQJHQ(|I;b7s0dZZ9!E;h)`&J#%U=!*iy*lVQ)Sg(f`nH5W
+za#Lbww8fgjaoS<vp|x{N^bmazB375q*dlD7&URfv`>ERZJ^k+`+9VYY(64*nTg>mp
+zy}g)0MDwjjB*u|nVH`m>gbnY&-2suiug8x4dynm&EW|?k{~G%L!{q_7oc?a7zia95
+zqx84!u7LQI4z}$$c@W`pw(Y`y>R^L@+G8jGhC23l21JFhZ5Qz$*n?ehsjIr_|Ea9o
+zEJ5v|>=aSgjo-xIUi4!xBYvT2(V0O#Ix|I7=Mg<FqwmN^pJ6k`{K^6b4L#@9B(L{q
+zg{D{EW4_1oa$UC;iYBr|W4A}Eqx1h_zRQ?x1NUAR_o3E$?obcgX<H7-S~S=*A;*LY
+zY0OIs*>CLRBtV9p&sfH>uE!2Zxu1BH>l<9F_fhCo-*kB5Y{ufG@gQC=LhCkOMPuqO
+zAs!iOvwn<NX1&QLYf9~*>C=Ssz7K8^$rT*u9P?y}b(SX9`GUqepYjK1Xr!|RL+dhI
+zX+E~nIJB~jt&;7~u)S(VjRlOVps2y`1m{WUbX_!bV-G=WK60=8anyC$-0kFtKKZVl
+zbaDo;Z+-ia@@?R~0(}NAk7xdo_60n1hoTv3iWk!FJnBp8kwJK5L?hH@(P$p*_}6oG
+z9vz{7qhtFyd+nV{AC4`Nx^JBIUk}YA53Mr~_U2Th+H~nlEm6B9LDw=6yB@!k>vMF%
+zj<3-^Ylw~AUcJfm884VZuQy%BR#W0bG+Q*+UJLRVHxtivZ1YjmSOlBxdK$O-?ktk&
+zQfQ7$qB#Ozv8JsjzPaAQKEU{ndUGadkVWTR#-59unyIKU+)ZoGYiux)vqR&od14P~
+z)HlQzXLJ&s5I?)`u%t;&KbqkA;ydK`JM+}7zR449GQG7gm=Y7=Zpb8T$3)HGH2R*Y
+zs%{v*#iNy)pDo0<RH|>;*!wMV4OP;&R9abD<<+UZHCmQ;{)PIDZv|c~o%6e5510;3
+zPpX(;=`W31j{Ks#dA;<>IQ{+)#_Oys@E`PP$Xuw>0l83h(}C4pdrIgMQ=9m5KKtec
+z;$dXo)R`HA<WuBF^yOQniuzOMyC3a#(KEG$(w8KRZ~|)`^QhTquzKr5vcJyEz#7*=
+zySneZRGhxh{;!xWPM<GU?3Tl0*Kw{MM#q`Vv0`EP2l7Sa;JC(!r5_%BjM#t8P&m9&
+ze@#U__&+JVV)`Bj2Wfouio~H&;C~&GI7oHwub8M0#hAJ9rG;WH<m$TA``}|jU#3h4
+z{^c^p76kvBw%VP<Ug_N9w1sxi9{d?jd#S8zHVnXuo8;6~Al(CUmydA~2e#>8$))te
+zkz-nmWoeLIf%kGIq_FwnJBBVUv47vp<XVP>s+QqCAN;|hq#nGvOE+HOT4*l4AmP;B
+zaxj?9Zo8M)39S+J3$t}&63K9-TpJhf@j12&jzenX+J;_*N1bBqJBf3Q>qq^|qP6|x
+zp+PnL=$j!MpGADs;sDn|cgcQtUU4Jp+cq*DMjyQ@e5q<Ye2jn6IDjT8sF_839MQ}V
+z*+J&@Jp%bY)%hRq$mx%HMeSe0`bZPWI89ue&mCR?{+fPSVJyuxy)xlS!`vx=JkVu-
+zb$4$)^=aDfuE90cUoDgN!W5^b`V2Yu+<K{r`1b$w$hztdKGu__oy^gitPVAX$KXS!
+zel4K>u^*lK_YKB?F6;vK^FNTz8j8<PpHAnH6Y3>dKS1C8KSakb3kQ0^037IQGxUXV
+zpsN`Ndi_Eg>&JWSfb#uez6RqmRs^|_UZN%K1Id8${W*2!PzRBH<+K)B!_fr%Ar5{E
+zV&;ChILdj4K4pVl?t$&RiN>YO3WUonKWa445u`(-qc>iF`0}=JpX@iQL*nT=`HpUd
+zWjw1x+M-c25itd#R@P*O{r%zZ)Fj|9=2!sgf4H{BT9!>?t$f|PKd_UC7l2&v(!a~=
+zP1LTlW|5xn*ZSfJ7XHRg7HeCq9VE+Tk)8+tuV&O`irVr_nj_iJD}%QMM9$x2oyWCi
+zi**t8_fhK8RFmT_y7q^Omhq>7she=<gKzOE%zXB1BaWn?#+s8Yu{P1qX6mD_9|jlp
+zRNLE!+38p3-gwzgUeqCF$K|)uSW;hx^Wz>G!jB7VIU`Q%kn!b6ht}>l3tVhhaQThR
+zq+f4#a-*NabzoRK&%vgHT7P+3gQb%`t!oXZT(kFdK{pqq2Ya=0D=%Db>G5(Jr*f_V
+zIQUs_yur$&XZ>M*-g3<@>wP{C&rusXwc+jee6yoZg!(WXu-1$8Mv@upGrgiAD2%d9
+z$QnhOycco?%hITa7~Pe{b`~LRKRfA~gQtXcaJ`83%$>*|L+p`O%JDCdTYlvhr=2!6
+znim1pF6KuNx?{Z2as_gLO_{9;i4!j8PngE7l=g|zO84~#x&oq<=v`_B>Co^Sd%4nq
+za_Jd7>nHgK^(@gpp-Da)=<A~&eM|u7A+G45Z?<^MRDW2f7U|T7c_dFkR<8DWST1X1
+zn+Mv<a(I~0n5h|iGpHYuZYm~LX!X=)y=t?N=3PM<(YDen(keNIWQb?czSH0HweOxw
+zbC`5f#>u8V*-dQ|&GNkl^*25bekHbh1?c=FK7WIisxYwJ#wv6ET*w6T6OLXgM1{%u
+z)<i3gftiva@rS^_NgmIHJ|D<ny%+X8KjLj^&Krnd(N~!BW?-+Xq;*hf8DSaAg8RIq
+zxDUF*PZ+bX(XycL675h2LE<%<9$8<uo^6FiG(YL^QJa}`_^AC%>Wh!s*60uzzj>}$
+z8XY9}MA+tu@9~C7PUiW0XD8(765#Ud5`%sU^0XBWDRk?Lu+H^Hs|c~eGhoZA<GF=6
+z9pJvpI;`@3@JHu9?-2K8sJ1?0ymW<~Kzf;BL^B;sNqnEJ^cTz-v@6$|Nd2(KX8Wlw
+z8mwO(>>)nT$heicq(A6%<RPY--ebu1+{N{b;-;*_nl1P2!My!XQOVnVinqJ}u{6PZ
+zC*8BlCHXq`HzSI=-A;{KWqSxqSrYr~x6jDhrj88btS@|be;t{0I2Y?{VW|Tbl{C}(
+z{G}B{oU;)z=cnOY3t_h;{#%HBdq$A{&teR6#`AnL6}C9ozjjl95u*;9h7mpK)yqh3
+zSOPhg=5^H65F<@IA9Y=Tg*Q$4grR%BZcG1JD%W=*c_?yI;%(UaLXuD5J9ge9lHR$9
+z@v9;orjqS4sbZxGe#w~4#79wwCW>*1Z(_O5AKh%_m29?jbF($Yc#!ni)#m(yh)Hu0
+zaz&@XHnC+iCdKA-%r(@Ksbjq9Y|K|fY_cZnPn%PW2TYFP)T=Gf1mgp{5@MmazJbbd
+z<vIv7M!-0xb~;niAU8bC`Rn+O1oHf;Z|D!~M+5JvGKIb}VcY||{3eoXR+?DLI`NSy
+zv_1v*xtiDM!G7()hg)n^Bs^=RefY#1JshLz5+OJB!;kMHdF(~Bnc{-p4_iOzUTR)E
+zwKB2mF8RKT|C!`<n#*VDd9*#rs5JA8YT{AVmXGGoi;TM?+sNa+V`ai=qfqr3ZBJ2q
+z$wE5Ut$YOiZDgSHS6CjVeTVik=wnzrlSO?ucnQhM*Wnu08sgFn&PiC>mCrWgdfwm5
+zY-#8BD_Px{<KUNAb65jEdmnQuj6H;9bDYP$H}=T62K}o4dpm7AALFR;+LG^tpA_p5
+z&pq_M+y~KT(mPX=s_yjJ&+KIXcIa9@=4P&H<A}=p_%prtO;!H~_7}EMDGa%ya5M6G
+zx-p;TyJUSOtU1Kj(wNekWBcxFLfWrc&trciuetvv?%IRnDzE!@cURJCwZN6NPBv!A
+zT!RA+h;$unqJoF6F-e>N(>0bA0V-Ww9!YQ$877@hYGAFEEO0EU*GjG<R|^9vO`wQ4
+z7{WliHnL?5LrmQ15EsbZy}r?lX?O%efoOYv=lkyJdM(=mQ~QrQdhFeMzsGrhzjIF4
+zD8~__8%ua@g9&-=No+JLn!$75vYg&^|D^a0_?>{bm3c@gUW1+e+O@Qw`WD;AI-yI}
+z3{<jn@?-2N`_!~&h#k52^*q<U)+(&XX-C=9kZVu<YEMrq+0*@hI($#v@5R27-E>GO
+zdF<@%0oUHX{Xf%tyPuvhuJ-mH)ZV(EN1vY$%#xvMvL8_U`vcnF{mN#+9{b5=;hJ*#
+zfU5PqGUrDOP@S#8PbQlqk31V+QsY{|9w!#4?)fbH!~^`EMc6xiGyA(YVO&|nUj~2^
+z=QuRtnuv4wVIM`4WwcKL=euXqcb}M&>l?w|sP9hjcL(^qcKMB&+{XLm`N4sgNQN}W
+z^VM8;JZ+aRgH6-U@~B+-5sx*1=hL>IWQI-m<M)8kZnlclIPBa7ba}J#d}tUt)G#ei
+zvEFFLdio_94}Kqe2E0UVGLQR_FSNiQ+gOl|O+R<4S~;MzCgd3*Hb!ggQD<X_XCWrL
+z6t)l9y%kIwt1Um-Wd3N%8%ZSXaC6dLO7<CDW$-EBp9k3|S!;U9$JXW{cWGH3zBhdC
+z$lcmxljybaOwc>*V(41fyHfvO!)J_3flG+j@H#p4>{GnSXLu?W^C6$l^%naR8e{`+
+z!Ti}?khx#Ta}sBYiHP21dw6VXW*pnQchT6$J`Tq>*b%x+$4(}C<GsZG8=KqUhj=gb
+z<h@mVE;&!9&qB24o(ss2F_0s;+181kD#ZZHE#jwhNd7Hx{21&jY($-GM9{7#5{5@4
+zqA}@1<%)K646({?)_-NLeSl93{(bOGve&>v%1;gJ#D_H3e`T7W{fu@YkE-T@MKz|T
+z_!`fz#lDkXH&6$k-Vvd_58VzdRKi66Di7Q29X4bsFmI%@f7%q6dxo5}ph2|RS;OZQ
+zIHL$~91J~c#0280ng*Yk^r}d4ACf<<7JOC{Quz6sqMP#G$1}Mqj5#4|=x1my$mM&3
+z<2?;*ufPU`KN}`J9l=@|Ygzw|u9mqH&KiU}+Yl$@HK;P~G2xT1AemREddFP^pMb{2
+zIdXcMYY2Ozx6t@*F+IjDWFOpOdb!8TE(>(w6<I5i#XYiS4{Qw7%L$Uq2Ob}|cGS!D
+zC)>#Hpr1PM+uLXiYuK*y@$VA%=^<N)>x7Fz`>7~hB{=I*qUZG$g-OT}XS|ORO$STX
+zv5wyHGnzN*S3SZp8JY*p$HzH>pKLxHYc^2#gyu!_3DSH*G@pHJ|E<a$EEKjv?q)9y
+zihFiX6&|K*V7J8IBUVtG*v5VJuwT%%Ug+Ie`5eULAnTU1-l?~^K2!`xFQ#`f_t*Fg
+z<GB{9noTSDoRRr=UZq+$Z*#xtOFnD@-}g1rffeG~+)~(DI@wS2ffeYoD`HZ2`bkdd
+zq(7^LjP+|(H4-mCKS@W=;eI!Xj2Cg-SGb=`4d`ngcrobkp|Y*uTMqxVw2OVN9(c^R
+z%C9TE_Z`)zP?H$N;#|ZGbE#2tIoFvB>_(D(mB0x^TgXmrG0D##!`v`0U}wQYSWm8H
+z8<lk`PggqqY4A%7zK?0WtnA1j$rl}Q5#r}%M2|cF3~{7>(?etUsk#R;NF3!J*uB~e
+z?|e(?Iq316k|Dg_VjcFl24{j;+n}tG%ea1yrQ&QZiL*&slcZ_6`;=m@uEbu%(xgjz
+z?FcY2oRe{@iJS=NPGPJu%cJ*_Z?P)(=j2x`g>D?G$&>z=_hqp$pX7LZ1Nu~MN@^L|
+zw~b{A@kl0~&#_G5bCH0PYx7_A$gy%{NZN*;3=gH)2KNyUN&LVj^QC(9%-kk>;TW6D
+zfU0#8g)c;7_A|~0KL7N%1=)Qb<5uFcTW8=y=&DWh|4nqyCc0;n3H*;RNLT5tb}-XQ
+zJlIOlYE`{w>DkGokNz%$F7b)hHuPfwZ9h))Z;Fw=zBFYyW579}ZXh?f)#e`Tq)(kZ
+zYxsP?y@Wxdpttx2(hI9;K4uq<vxolfgx<uua1AwDr}tnFF~+XJ3dUqij&U@J)Z9=!
+zHCLyfzIduE6ib!qbm99MS@(-$9OJZp>|e!OO`KOcdMz82XHFcGGGuJ&DYE<Az6SgE
+zL|+lqzY{V(@Kv^dJ4xrjC&0OA*OCj#{tbxU@y2*B=MY~Y#QBIbhtS`ccoCSv+GtCD
+zG4csT4}Gs?tci27JMv+~+knARu{HF@5FAItm^$o87X7F;<WaY<R^O2KXFH0u)PtZK
+z1J6OOPxqLQbJL;kJC~3>ddX(wnZG2@P3n>Ns-tHM_TRJ&qs79WM^wyV-Dz??K7h@u
+zOTCVo-G<Wtux-}7IK{TK#(fv0ZFArQX-Ds2yE$b=kk<~pmoYe6P4BJ*t}-eyB)}=@
+z7YD__5_O)RQ0Mt^_DwimA);Gs#3}+yz4<_JmF0?A=*#D4s?i%T;>0i@1BvfQ?rtgv
+zJ!R3CY<2Ezj=e=lH(uq6$*m?k<M5bVFnY6$$r-7<mf>@~39bPSd<n_wYVI#BF_!=G
+zVPVq8y`-;$A49gmmZI#|$S%YBKrZ86$Y#R_8{sDDe`R2sTmyN%2t9H`@*D-29kw%6
+zzO0O~=!oC0EXG;j@A(+Rl_Z<7%|wjE7i%zIrF}xZ1qVlSYlAC>LifGv$j4@BTVMX#
+z)p_t9&eGY&;+WE^oOXUk{;5p2{Y<hOJr--in#?1pV*SzYU=0I8)sJ1HiA~_o3$X8k
+zF|s%Zv#@@;A^YROPW=w%hx2BV6UdDTtGHX023zeq>pQHcuCwk`c?*s7Gj6mqHUaW{
+z2zzFN?{Bak<9jd`-FlScH`xF0nb7xp2c>?fM4T+T%JjsB&9Z2ZSsr_k`v>38J(lWo
+zgXCjhO7D&s{dQ9p-@lLh4u_3)JA~SfbS;i<&evu)GmkbVQ4e4<@o7KVR_IF%KBV!G
+zp4Tqv$ZsYe06*igjy%zQ{_<x#@|SNTUW#3jkD#vQ(2w%|&U^EqDLezZ7=8Pghl!WP
+zkc<lkJ3F{Hq~zx<;9o05Ypl)d$m4yR4fqUk<kiR?CN!3M8o!@ukL-Q)@};q(?q{4n
+zE9bbX?6HG=3UYn-ep}XV9Izd1STFItc2Md-?yda4Qn!*GuR#xpKj3}ze)RrpjP(~|
+z?>g*cy6*|@@q_pEj5+p5x9}c@4UR|KNpAJfe%@~V1p6INo8H7vOz;D86)?vwQQ5o2
+zpmo9XS18;C>Nw*64I%WBCYe|46D03<=EHG%Q|fy3qiixjGyQf1H660uq{p)87n2KR
+z(PN$VTW`1HX1iUVY$yIDUZTrSS4fxjJ^i?kE+1VwT|v4|j|0C+ez6*J6lX7&c=Mi0
+z8An=nVMkskUJXMh&>Uft`e>dj7}I#Wbrr`Bv4*<!Jo+rs*bEvcu%4R2Q)3OiqRjN^
+z<z_kT)nucobv|z*N6<_5TAJv$oB2@gt<&$TbUhHe)rr1X_r%TZB4KW)wI&|elDn7B
+zQLsMOTXpbhFpg+{ncv7%dyN|fp0gC^5;XpO{{jE#+T8W@-bR^|p9AlJr**x9c%+Nu
+z+E!B=`WeaG7V>#oOkLGY;58MJx8fOE>mgce7oYtV@`2%FDp>)!qYY)e<`mXzoz(#x
+zhFbG$*k0}|>Y$zbrnpXnrh5Ni%-wSY+Xxt6nE1kPwDUQh^FE9N@Aq*H*A(qLeWuHE
+zI`GXwe(xPt1HJb~RfD`Xn<9NJYmh?@$g{>Cn|WERG2tsqxzNu%joQM~=Tp75^O=-2
+z<nNQdLR<!W4IA4>{<*^^7}rJY^EBojB%cQ~O}4jInaGd}mhmnnSr1#h67rkAQ-!+y
+z#6uU;caVGgl^08}bYzR8cZ-+TZdEQpc4>A>VrZbFv2N$VhNJg=m)_@`+oJz9&ZTdL
+z-G+D#bm36ON&^4?C5f?UQu!LX!j`k0O?ycCVylB0KOeXOB@=G&aL-r9$2)i`>HCoH
+zh&7G&s2J4{Z1s8QCkKBbPQGD1>a)7=4vl2*mdc?%;mIOTT2p+1o_J1Pty@L}RlLh*
+zq}lKAv)`HGvq)W+^>i@i?**sF`|E<FN8p0KP3!#H3)2{sv$&6PrW!fW((g&zpckiZ
+zJ#dpvPOO4HV;V`6&<Okp9#6`|8o&=0M#@CL)ZtoXBgH%Ad54$_9m`k+Bid#q&Yrfj
+zo_xV&XJt&w!S8vh=2~ZRePiflnWypt?j1?I!u4(%p{E1kFAv(D>)R|}tdDh^Kifxp
+zQf7jm484!P2VMeC>#>c*V;e~>ZX_F-_$t}Xay3N%H}s8Tp=A49P5jV89gn8wKH@*;
+zUDv?=3h4B^FOxbX4EhY`Mq&<Zp}^W`pJOW@)K%SOiG7iD^rEIPVze)e`=q@ehF|5H
+zZvcIW6h8fd#Wm(L^tn8zkk1C4ls<RI49^9w2xC9s`tIjg-$~qyL;KD%-u(KrV-ISA
+z=%|nAsIU0^|E@ax*)KD#9e&TROYV7nhI{b*y;Wi&%rcJXf!57$NZdZ>lan6lfW7xe
+zvdOUKG|sT0dY{2IP_oaH%v6hb-`p03%e|snOh)Kld<VF>AYH)Gfj)qt`+IukVxmJd
+z2zPw#^$!i&@P#7E#|~uv(OjrWpU62US;ziRdb}~2W}ESD`a43rfSR?S@gT>qR<h0e
+zCg?<@Ij#j8F^t-`OmA)WZ#mvdJhWsw?*@D<o*1;N5?hOP*?vL)t1|F+xBb9hkl%3H
+zDr;QfvVa%-k?Ilqx-R3|2FZvp?V+FfGsX4O{f5lV2q9Mn|7*@zp#<rA6;q5W+^mSE
+zOvnVpt}c=Km}4v&*_<A-IUTu$_tcU+SX?3xSO&nBMC>d&?cX^v0{$I*y&%osZ5JZ0
+z4?oXGIwZ{T;5Lrk_HaBaZgub(f}9)h2lsMJG|u+2)=YL7(UH3kSDmu6Mhb;}WSgLF
+z3ik!&vlrG8*azevbh3}gu@bUnb`k9qdk2bdS%$iod&pcgX!q_@{-!Ih92l-}7Wnd7
+z`$#`n%H%Nnyy<B_I4k{Np9z0Rt`pV+>w|R)njLm=Z7`NBWPZ;W$0Jeihv*P=hIK-Z
+zSr6ICx6>S7Bw2UczEYn!?edA+Y~)PNRIBc9QFj^q(L9YW{UrF<>kEa0-`sa>d@1Z6
+z)EbQKQ+cod9LraJ!o1gSIJE{lkIZ|GqVM#gLHk^_Ccosp9bj80$^QSe?X_mF%<-1C
+zm#pJ<;Jw1+T&`J^F5cHT!+l@WA#0!u<(?px4V+hD3U-LZsJih&XCS7j4cZH7YzwOg
+zi!m$2t0MCU?O$oYc%*IacWeBO8KL*@z6|wd(&Lad(&pM=21MI9=pa8O;}eHm@rm*0
+z506h=q4H*@c4(77KLzy*cRzo8%<&y`kFik7Wb_BgoEH=yof{NmUkHk)c25;dy8e@{
+zGc_STTA*x*=4<j!P73Vm#$+e*O#;Y^K@B0CE8|QDb`Wei)XEEGTJxdK4)$L|S>SSd
+z$!F=cD}aH@%6<*VBLOcmUY-2dU}oBv^$}lk-9ba*aG}Sr4xb4~eRmeuY1+ndJx}yz
+z)2pXACb4|o*G(_Wt_F@_m&=^6t&laSdye>3BYF&QtkYwLb!l@(qMc>5Zq>NYk6s(V
+zx6-B46-2KP+VcwTm15R7{R%Lqw<|^Qd>Ql1!Y=kq*M@|x>(qyA9hsVZ&{ZGO>#7gw
+z<k*(hh`f13)`%p3I<Ph?^TL4pgzkHW?sYJq2hW(sdwz9PVtjCp<helBjeO*TLa}b-
+zQdiwbzrNF2Iz!#a-++JS2SxV7>Dplq<}O71jWb0DbH{l*(U!T0MWJqFkoh0>H2J@z
+zZ*ac&h^h~Sc$stFj=7wLI8e5i@9_~|=+Vu5Zr!9XOgIO4IMyk9hX@((M=aV$baVcQ
+ztCpnM!?7OjhfRF_NEULuo8I4DtXqk9d$s#U!=i=HINfz5Uw*%&h9q)gXwNQEx*u!%
+z``^hJM=j1ixL##9(MLDiC`3Dpe2LUzJ=(G)hJ1;WnCCyTcXqiF@abM*z0hSpz4ydx
+z&{iFz&*|gHjZ?9r>)tDHeaT-c`MBc=ZSu`iP*>p2y~mf27wnZe8BQ*M!&A+_E5^6B
+zSMdJ#9=ZQ<x&NB#$JneeD2TCw#=`F%-X8+bcj{9#?EU}kX%2dI&K%BDIZeKV#J-$N
+zT8+$-R`J=Sq8q1o*TN@GO;7XRj~t(Fwv7PiIeo6<<c&G_BH$LDd{1J$UR^n8zj}=N
+z&<93NoHv&or#`fMtVMcAI`nYzYD8}tnO%+OZ-W+GHKHH-g+mJ`*Tz~q3tE^*_bfP5
+z<^~>?S15W$k4Gb4A{wdtoT@L4T64*jc|MOu9tFvZ1m{#Ws+_81*=6t{&2FNf&*v}W
+z*v?CAGi%0*Jo2oZ{0S$w%1EA`e^^5u&3N9IKz>!atX$=JB8TdmDu>FqsC^Xwt3d21
+zx`Edh&z*l18FA*PL=!aagEhyYiSlN~Sx?|+g{!XIiUhrD<izVVRnJhT$*IvK%(VRw
+z=#IvN+S<?1{*LY`$t_D{YH+swh^nXb!FFwO;uOfOoqLW?tKX-4-UySOKdT(Rwpr)!
+zouP>n%i&wpc0>+e$DX6-@U?zc`YLR<Wiq)BuM(5R^)AZRw7q`MiR;-*j-h8ATk)nt
+z5|8=?uKQ%3)Vfd0_sp)hw!4qJ-<8WKL?iIW-u?8<{Yu_`gJ^i?DWG9}7Bu|tyJamX
+zw%LeZ*Iy-lA;?U;M^k$t&l)6-&|PO1c;X7z{DG~eHPLW}iTj)!f?Bc7MoqC|t%7KB
+z?%L>98@UCTJ8-90^Ya_5s^*LaEEWCC&4H{E^%R|XAQS%o$3J~4KIKYs<w~yPYLRm$
+zspMR8M}}b}<UY53OYW=Oa;y@PbMAY&<~B#ny%;v<+{4U%{r-Rd{eHh+&)4($eDrqa
+zCRHEdD|j}?)nF7WNU8I-zI{nO4|<|E%Kps*;`j_dR5Oa6U1l3+-sPt0X2d^xQMTiL
+z7MC0MRob=j^IZ|~BmST){m<jTk&q?#U?5IvhND$`za)AA+u*Y-Av@?<O+OIKxk9x5
+z!AUY$NWnXn`R3TN#2@y_NEBi^8isB-L2S!wKOZCHXv9AQ>5b5<rdXxXY0%~cm-$0^
+z9~pjVRB-9l*gmbjleFdB8uQFBGY603(rD~ut?9mq>7PEQPMY83v1ZNiI+j-;o4AMv
+z#~O(;YUjOFLVCbT-*TTo04`B#F}rLA-au!bp^5waJmWi`X79$AAj*x}Y&!5Lt*ekI
+zEr~YysQG&P1wioWi9^>vf2*Vm1SwS)o56EW&-($BB&&1!`;<)r<8@E~C`E@5D192R
+zek>Gbn=J^sTtz!yBo1t21S1K*oy8Ph-~#qP4>XMVd9b3M35{_oz6ehG+(BKWtaurq
+zUdM<11O!%WE`MsRq6k_jnK}v}!alF1)Ge~MRyhzvv{m#}=5v6A*V8+jVKQA;2q7hJ
+ztx%gKaZ0{E^pX)-R~NjmX$lRTLNBxY_^P2}x8fkrWW*$;zxyrOt*%Dtz`|iE?e57O
+zbS1SO_}0nz<o)KC)_-=*PlaDg1wk+7SCtzp;6vVRKbEHoaomtB{}$K+PEphOB8iJ2
+z#;rBSnN$94!MU@>M}8zKJk*_4mEs7YNFLfPKO?WVeocl=j8?BF?#mug$iX68s(Znq
+z7nP7(Q~Q|X2r-h@tS~EPUVES8N0ZvJW$*swsr!;tJ3ATm0kehTTAm=as#-Foa?{8r
+z1ycIjRKe^}|6vJr)rrCllDef%U;4W{%-NUT<vDrCjG@hK9;o3&XDWQ`@6XHxh4RzJ
+zUVxZmL$pS{DiFpe<%(qbUQ!vAR$wQy3lT8|t*wjdQm7eZ`nl;(DrD-xgDZ1>xj)gk
+zL$~JxOacD3Sj8M5tlf%f{OZl-QodokPrCNvTR}>0_?~1{k;feTCC1<xo2uOSgrl#J
+zpw!ToeJkEOVK}}dZ=v<y-g0I2fkKHB+6>!c+M@oN4D=1Ty`#p!FMf)3GDNh;-bwyR
+zZhyg_&k?`giBW!9F_b+1B{JKb+48QAwG-8Xo~X!sanADsXfe1`XD#-Li@#)UeoR7B
+z1k3RV)SA?*8%nbtMHLXi27!pO68!AD-JFNWhM?P7;OI8=*yqwjp~d4>RRvo8D@AD6
+zf{9vWJO8S32OoN(k#OUx4L}%~j(yBKoSs9uIKD+?elj|VukQn@w}w*(HIdBKcUXNj
+zwrEEUqo>c|HHV_0PIH*+&XwdZBBO2@xaS-9vcdvbj;K-1`md#u!Ou_$6Xw0>e@KIS
+zTzv4G;DmpU>c_FZ51?$syJ|h}u_wgl+P?pM{`uCrH)plQa_>@8KioO&AE?kv4_FRa
+zyOXYLR;G5q9TR6UlW$R89P2A%zsE`VrTVAh9SjiJygexyX(s>vD|LqR0VF4>bzIin
+z<te$D>6JgZ(WHu9=e5wfi&d29vV1C6t^($5m}c1pyzr>TaZ5-0l*?#fjML3i`QWTJ
+zMp7&0LQ=`kqn=&gRf#Nd9kt+at8bbSU%2CP9{q|nFM9q(f5I($>?$|&o#$xFaEq-8
+zyR4R4QSpy;ZUXx5OxjPD?ZUtLaJF2$@#L}ByKl9;hl5#p8U@;NFF0@9$KYUF@MO2s
+z+g}J23Ilo00OEjIYA_W1Xkf;@qW0(|s@7w$$ovHAaqxhhwB5cgdf=O2-(y<7N)1Ib
+zS4>Wgm%vz0WJ(&ND!gre6<H-Vytp#bA&8Zn+VG)?Gr5T3*P!p6pDSxoc;kx16A}<C
+z8(lYD7XHoCb<71lC4A1ZUhN!SzKD4ovHxY*0P41)F;7rWM4w+;`1JO)i)8h7N>8f{
+zey*1Z*@kL|@`;&zg{Cm8O)hH;H{ceLZkTySdl>z%16bSmp7EA(y)A`zjzgjB-qYl<
+zBiy~n=Hx@)xm7-WFZQo3Ykp1M`5V*UBbxY$>GtOWP%6+p%n&0@F<AAK;|UeMQMw|E
+zY%0K}P`%+07V4v&F{dV(nK1(QgRP@$a9&f+G~MFAzc};-{os;9X;adL)A}V<yT@6Y
+z!l54SgVDEySF4-mx`IMa;bp&-Zd8loe)F;U*UQ|DE#PK*kUH{Q6Q8ZkXdm)frGeu2
+zukMO4G1`NYd!~<-lJRP>csMKZesv^qECFE}H7iTda|ePU#q^IZ?D;~wHb)j}Hkq(*
+z$>)P7fTpHQG^NP4Ul5nxv1}jqsGxS(Ij3qAwMSO4b4E^hToOrKYDx%5UsQoIT#N3d
+zIH;t?{;$5`*BN}u^!SgEJXG~=X(i3GraHNSoeA#4nn4#s=-hxi<tj?3fGgbNjL|34
+zx60pvesw?|oV#9cY3atQ{-MhqH2PXJ#0Mjm#}BA2cX*jAoNaI&3vVNLzH&>1Vv}vV
+z%t2XG8rwPiU5?_kvl5IULb7c>YNvYqd)`n-_P>xn8f34lpPM1B<u(<Iwda;^=|eNZ
+z0YKWDeB6<mU4)Pi@n*Brj(Y96`aO=#KrtdXr{*9RWUZCVS82Fq)Ft;1$J~|1_mnnm
+zSA@xS(LrE9sB^`Yx4@Il%CkJMUFC}ME1vs(=>%81SWQ4|>plIfO~7yZWm_-Sgo?{C
+zoD%GT`X|C4xGWpvBb;;Y&|Uczu1R{ni|x)5R4n&4Anq5-c;{lkJ!+HDte4>e>M9#|
+zbzhD2;A(Ob6<Lcm21$=8ufGD-A4Kynf#yQe0oV0Py`}S?Tt8SdrNpdHJw25fPb`@f
+zM}I8;1bijSW$!jx9<XM8x92WuLqR83dd1T4jJZzg-;*O4A4;lbK4Gst6B)I;oMknj
+zSmFnXF0*xD1(sAkV>VWf7uxL6yDqiumnUeiV7Po)d-y?n<cR8%E~e&3Jv-v!+X2Mt
+zPZlf9BF46>W1cgzK`nA8)Yl?9i3*21Ph%qTDwbAr6Yer@kP+#F17~5jw74;^Q~<8)
+zj`Ml>eVcCoe#J@WZU0mPE0o1~Oi_V7AvNt-J>7<xrqRabCwT0mKj*sfvR*dL2Mmf;
+zkXpk$qRNrET({r!2frCmS?J~)N=Q~r2+=QHW<7HnoDiuo9&QZVHZ-?*GrKHZ?7TPF
+zdXtL+R+s;jS&2R{-;Q30Llo@J-b0v#t$X8s<wWcfI@HTorrAM<?akTxXGa$2<mbqi
+z{gHD23rEmfCCKNb&e!Ily7}>Xf08Pkd=lNWhWWYTw`AkDG>5>Xe@pMT)YrvKZQdza
+z4O(;{Rk8cFtG&6#81)WL+ek+{eQfoeBHmpisB9Am3g`5KHhQXM@|2CubCSa4Q2TuH
+z2-J#hTzHcbv;7GT#IsZ~F`DE5N|D<!z~oSU+NtSN8tNCbA#L~yyWI;vbD{kI=&@6X
+zFGQ7rw)!h@PA%_phW{V5=7pzAk6CLPzuSbSfH4~%{Ub)?mq*wN|KvIQyb@tc$n4{x
+z3bwPo;oSVkxtZc^O?Y4)*(I8HRp@_ce+-xGwZrqup*in3>FT3Yo4a)Zg*hfTYK$Uh
+z*Q34DH6Qv6+UnVO<Cs_>|M53_%_{j%&0jRWf>*_3dR_qHSJWdpX-kpNo$`<Sexl1x
+zEQ1;R+WeEe?ZVgk{2Kj7GzPc^_@J`B-U>KbKU=4_lDo>~SJEGtP4hb8T))oW;z@NT
+z$oL!Xge^kjd<3H???^Gi@pb1uvTcDE_N5KkE7yj(rk}pO_xiGK#ijb$XGu7Pa;+zC
+zgt2iBr_|yg98Vr*GcN*=7@PMZ8`kWmm>mN^`6m|BW1DPyPXd#b9bKzuZ1Bf=p$U5e
+zFhRfBi&Wu$=%oFtvQI%PV^yUWiEpJU_BFY@3GE_vR;diehW!a@_u??5BtGlCK>i++
+z2_^&=It1@h`s&F&#wYw+XDo*Kh{q-STgr!|Z(gk{81@P;%~PK=&aNyhpG-`M`V$H`
+zab>4bta=FJ9+b^s?&JDfJ^5hR#daxI;cL8za`akm-v?=_!Miac@cP6PZhHIk-Fy-J
+zZho~BrBNIy7yQ3ki>0xK;kG-O0_$1GG}V8xNt4SuAN4@E(@68M^j@Z6sVDOJNw6<E
+zmi8hqFEqNNa$1L^G=X)t%O9M!@0L#RxL4=Y0+<vx=l=8~oJ;3te_5%7t?!_B91K^P
+zrMjFxb2;7*pOWv@sshh(ed7Cm7M|)+n<qp*$bHGgz9gAdQm5p(=O?7XFJtPRq7BOL
+z#2QJOqiD5;&$2!RFkuHw<P9Z7QH5A2$x#9j)+|vZ<uv<yCfwuNnuO<fMv=Tnm~<Zu
+zKu$kIj&rj{8m`u{eOYTCk2=c}5n2$|&i212%(1T6`>-hJMhn#Q8`$A6-!7*5@jPU*
+zCEHu>X}WiM!U?nflB_kM-8&ti;%MH$o$TfJ$=$K-q6Vug5shmbRvk#_UV=MgpN<(g
+z3pNqH)bXZct)3?FL4!@U!&>&|@YkUHa3Mf?J73+pt(J`h(_!)%@3EGmXVFz35urr+
+zg}w&`ZeKE5%q!+U7A)&yWx5mET)B6{4+TqqQ6plNvCB#6G>(L6pjt=JKjor-H{mj9
+zdp3zCd$Zvb-cgd-l4$-~y!B+ok|<89?jBn6m(5*mFZ1v9hLWg{K|N2@Ms&cno*cf{
+zatgPs@cHGLplbG|Ne!tk^%o@T!;HJ(%7)lWFD>kQY;T=^A7KgMgI=rSZP1OiWZle0
+zDo6svRUPh1E~(8gVAicVql8tb5RJOT=e+tp`(}EEFELsG;UVC2;GNYyy}t#hQP!)2
+zqq{VP`)#y`X<Y$7_t`fEu6w!a%{}|k@5t&<P_U(4{egk7J2n(rmi^QYQ0Dy;2ryaA
+ziitWJp~Uanh;DJ1=?Oj+$_RA#Ei=%>Ri%avADOw&wWZV;J>9&13RfoZ*8i|EOe7x{
+zJ~vm#@fAJo^<$fs-<FVcBHzIRnr=rIe;;&98u)CI?@mc{+y%HZtvu3k;v`=`+#DeC
+z`5Mds7bH(<i7onSj~$Tvr#~xW9YhhPhCP+f0~iJNknj6c{Wp3Um}|a0$H`+;$rkNJ
+zrd#UTt46KvOLJw&uR+g%OJ1(yPiNbVX%Ae%o8TCkxp@He!)}3g_M>5L`K=R9DaEw=
+zz8@O1clpyZJ9gXPl!<V{qI+=Q2I`?nT}Oj2Xh0QnbMbQ5pBZu3CHgntyM|~X*dzJu
+z=^wOINrpPqcGV@U@7<ve;>qj%OynkWL&i)tN9?$b$@L;?AWn+W-XJq`AJxntlTrlp
+zb44HE>Jk;ME~TlGew(jHcXl6Z#C!jK4zl9%9~A3m9R|hbNr!yhO;sT2tr?w%Q}=;x
+zJ0JJAr#4g#KAVIr7ztcjCkp=9|L%$LlW)-Ny40z^mib%ZNxhQouF&^0L!rM;eRi(u
+z2@O&9%?zs0&p<@@?jJrp?se-?R1nN!5*&Iynmko{MB_*tO7`^xVotJGd!Y=49Ct_v
+zgP?^^%pWYJn?upo#ab5p@8JHqvEeus^^1pHCm%p&g#Uqs&;`3Oe>oaaK<y1l-xQtm
+zxm$r@?imBXnJyd0Idg-6GL=jt8g(z{!dXaC-PS{ht9_ojBi^9xWby%MtLV4bHnP0`
+z$9S-cn+*G~hzq|uvse(wcSA|sttUKQHek~U^!rwDz-t`~8~O6e1Ya+>!hx`whK*qx
+zT!dJ)G@*l-6a1^03HK{1q&qx*H6GgpBoM1RR7#DJF78q|@d$iWzu7`)UNNhI{E<gn
+zf0q9-Rrouq#${5QFkQt>hwnyl9i%*tgt5^c)u=!dnX0c6*IZ%I&4>KAkNW!dpToAJ
+zB!W5RRzs{F#w&iRFu)b=xn9H#g#(>O@>l3dFWBGT7jB2mP)g!+`53b()6?s|3lG+8
+z+kUs&S*wbBd~CEh@qexJGCd>AO=VR1<U50Z<mh6<`Q<(vCo{W3B&<CYL+!kB|G~_&
+zS<`O77gLp#Bqwy<J;LZ@0M74x84?4-JT<)5tCX=pA#mG%i#QQ^UWfKdtxkWY-+frH
+zljyDoE7RkEnoYkLP!0?k6s;xaexaOy*R>Y=++cSWQv@9vnlo9^@{z=!-LIc<qxQ$>
+z))93)WhY3xtP$>O9*Xg3+xo~ugWYCPJJx+E!T*&%PcKNETp8AXvy(l~=4hF933TZF
+zsXd|JbQg6L6Bx_xVrJZf#8%}dFa-0*caUj2!<LUdNwvzQM9K{0U5=?vHn>0y`VSD$
+zEOlr9+ek;Z6+sjH9t;flY_H@!7j1yK=k;=0)9Pt+ctF%9Bv!C1^XH`*TL-eT4)cF8
+z^Nvwq8&g-T;$`QQQ?$KiYnN5noR_lv0m8Rnukk$7o}70JHiE)Z-S`n0RgB?VMJBk^
+z#3HySiZ3s|*yc6I)x;QQzhgzyErcS-fGhl*Zk1Gha8~-Sku0EzK2anfR!R$)v$?u3
+z`Udr<zEGW>mSv2*43cghmpa#zD(4(<<nA|w+C0})X#?w?lr>~%Piu#T_@6i!q+x`d
+zr}DT*^rDNDqcvSt6S>ZUzjPwMo{?FfqNyKXYV#(id*v_A*&S_~a`wNh?d1a%?tn=#
+z+$qXqkLr;Yuq*GWTo>ga(FD(c-ipZs_yuaJA;&>s+<tf|i|^x{uQJa?=>P6`_C6DG
+z)v3o-QT_mdJRDy=6_;H)Fr0MJ6q`4EVqL}q^MT|LN65l=_`P0Q%%{phzP&6<FKa!-
+zgGBuGO&EkWPJYI+t;p!hxk61s!Xz<lRBIAu@s-ArIls{#4nof_!62s^RmwxOYq+YZ
+z0&m>1s0P)7Kb#|p2dX73*Y=)<|2C(8Ryg?dq;*MXD|iJwiugEWanC`t2Ob`9c@7oR
+znz=_F{D+nYx_M>&8<1+=^yHA!FAh%Q&hzQ`k){dy2EDfyZf5GTDKj*FkNJLk9M_I{
+zBF)BRb5Zfox+4?$>@IZpw<@&jZCFN^^d01<A|vSc8_oYajFm0hr~P&fp5cklyPOPu
+zxH&$k^Bq0$ua*d9`rGnjQd3!H8(&ILaR92ZoovZNqFljk0=SW{?|eFeO89&^Cg>*U
+z41dz&dav!(eBy&$|8r{CJiu|L={6hk!Mi<Va3Ja4DqPTavsNqTUOETE{1ro(npKEo
+zWasbVfAiTc{tUbGadh)g;^a9`{EE(^m5MVBT^OS?qX5bQ^zx?S9W6o>08b0U5uf>V
+z*sP(lUYGN-htFh!3i~W@-7Agk!Jg^^#A!*OfJ|`t@QY0F_r_le`7e*MFSG|_Gfh8R
+zzV&IADeTm#(pC^C>Ea&{v5>;eU>SH}mBx1b+nT8MEa)k`AxF$Vz294u_$FiZgTC%`
+zx^@DMPeF}zxBH>OQ0w)()?y}o5lY6Cf<~*Lt$$0#v)uy|R~)SEZ_@r{T^3sjkFjSp
+zBo;SC537Bf!D|J$c&!1=#_-9$=eJ<FM-l(w*L`g|t;__-!S58}rqDtWi&idyjgk3F
+zvc{u+iE97L3rDY5Y4m4ET(`H5!-3GC%QR)=yYadxd^n=*ivL;LZ>kpBXp#%(@jAY(
+z^<4}1@yKBJA!ed>#q>4}w#Qf)k<1JbrAcN0&ZtT--|AmIH+SD9vYkq<vXNs|^Alq?
+zynYq&qa?!$7Zrs>bhkMsqH+UD=B7rTdmbo9BgGr$&T&bxsK?KGvUdjQ{0ZDGx6#-r
+zS#J?vJ+vm(vDG-AVBnKLMkIu62}r2&q_1991{wJ%q=2<4ACDcVW_jT(k{-4vAU(lL
+z%NBhm&ToO*n7bmZ+t#t5+aYo#wN(!%_04?nvO95!Yu=isJnb!y^L2ZZbY@7l)*<C9
+zw$yuv>1exR8KX01<dR~+#?Knh)8h|S9`YW5<qM@U@+5r&xGB`@g(vTvUusN$>!kOY
+zk=P1Ti>PCb$OB$uTT;j3=`X39)$KBy?_8%E=Q?_#cQ?7zf7;h-Fq0a+btm!;nYT7p
+z$?*4QpFo^{1;{jy`}Flk@4em4e%hip=rLzwBPT-8DlkAdxj&E#{r*gC-(ZhaYT8(r
+z>+ia+UK1=d(;|OUdBlb2)0gf0ye;Qazm)lTa?FX(-DOq>ds)b^QT|nixO|)2T?QN8
+zwG!l?Na>$)*e3iy(FX{9NxsI9cT4^!d2!*vxt8yU7h>r^L_Q`X4Snj71}Mup@Aw&}
+zc#!)A=-X~Q@N;h|Jm<?_RL*DeTjI1`#oSa={Tz8tV5F~{@Z+$VVb$q6$aManfq9-F
+z+;iyAHsAS5wYb;+)_}GK)76}(MQr@(!MUutD!(R!FUESg?I+eo4`4dj-kv12&fGW^
+zg>2}C(t1v#0+!U)N0W(3!MOJ7NHwqY<i>Loi1Y8-4LVhL-ZJYi8z6B2eYM`{^h^{P
+zl3gWWZ`9x)S!G}}34N5^x9h05rq$*0f)1{#HHsL%5nd{DB7<EAkF$^73idz00u65p
+zXgvtePhuk-C26TPZAAtVb8+!Wg!Sc*81=Fqg^88(ZRVK@+Q5|&;)hHpY;9{~z&;{t
+z4-yD1>k=SNmEsZe{h-b|`gXtyUXz6M3kCVCSNjV@o~e@;xalg|fq(4*0T=fyig1KT
+zb%+}L*$$&~_|P*~t}%yBdb{OWqmk3HP=LcMXVFbMN*-xMYq_VbeufLd`K}u-dyM3l
+z2SPhXv~xWWq!=p>9zyjnM}a5L?6<Bv?=6*`CiSK{_Tg^M$Y24$1nVL+WlcwW_MFd1
+zShBG26tzs{pq~I%-=+)x`RjLG^;F*UI2<ZAG7+n7%k%IY3t*n%-FPwYSnmSjuQQl#
+zQwY`x4$%^va){y>8XpJ*Fpn>WJq@BTS9x&~X{S1qDSHM6GOx%YHNKCYhsl;hA4;3D
+zhU2ZDqI8=aTf>eJHN|=;?G)a^ZrDx;xf<UrD=_tY`$=PxUS71vSW$c7OUPtS{v@RG
+z2>41eB=!DAjhETQNi1fAa(LW!gFu;n<@{K%(+V+m;V*y`*Ckl%8G`l<NviY=Iu8-S
+z7I0JfdBxm&Ubsi`5iT~=FMk(BbJu+_{NSAY#X|u44*i<XP65}I3?Cg(imYD-<CPW+
+z=U{{0(oa==FI^6KvnJS+S<!hdyHL+ot_`xgo*>Z@@)z@DH_uhdvb6ZFtx<Aawlrb+
+z^mKI@dxtjA5M9}&2g#{0aC~)XtMl}Z!Y(he(kd(-W}Xh>4f|oW8Em+7pnM7^Xk8V7
+zCv3O|U)!G!aeXuB)dlhcpw(p<UZoj|4R(B#|G`lk-C5qphu0PB63X~zx)sjOFSV7T
+zSr_hr5hXbZ_em^dKtYhtRNMI%`ijoW0JWKrm6PCcYEql!b%EUv7}M318IUqv+1DxD
+zuEMJ)5L;b-KCy_Gp*NQp_=L<g+dm5vAAee=+Y++f9XE<o@*9q~CzK!R&;?iyWE%PK
+zG&JGKDYv8$9zwE=IwN6J)L+EVX<sr+7Y79vFqp3DH`|0YcFb7EIootgdF>D{Mx}X(
+z!*LFz-$?r^DlMjF8v}EHlL`lznWT9AYMXjfdPppL6+z~7tXq&iFMNrp8a6*E>~<-5
+zyY(Sa&Zvj+=M*J#LIT~Td4K$iZYCe_d34GbIM3`qBPj#;J^WF1gV367J@uQ{^Ujm@
+z3q-i%nwhhWRd46QA;(wY&y=sE?+Wz9s)d!lLKPAf5EFu;JgcKKdm>GnMVOzJj@$6{
+zUfT6FjjC(zocEvSVwrBk$CE;|$f`M_uOPB@49)KwgQ~A6FSV92%zm$S!QVF!eWBmU
+zO-pzD=+cgsmGC3%Bfc6vHHYNmMLC!FN6yv5*_NW-z__oZ+BiG-O}gH0b_4qm6TsVi
+zTdA+OuL<2#PzxFVG})Q86h%eCG{YWGhA*G+*>DJoI5Mdy=3OQ}nl%fbUu6923;$lb
+z*OOfPqRCi4*b}GaR(AG>Qkv$)5V4afQKBPh7QV|VNLX2zPDU%;qShi{OZDufTTM8y
+zf#orV<FY!uYO>nSzz(G2(6!%4L6Amr!lXthzt%Hy!iXV^6=(?ZkbCtRv}(M5w@*aW
+za;F$6m$;)@Pd+XBifDs2)#WCf@YU-ZMqklX;8|Awp{Pt_d!LZ^UFhrvmU)yJE&C~p
+za}qS!vjGGE=6l3WUXDk}-xp=}`Xlz*3QQ|d_MUWJw{5{l_lfTJ&L(h9nnbm(sj0Cv
+z_p|xT#lbIEl`(w0#XZ@M$Ez<Qxb}GfE@D|ejoVAumDB|3q#tw5WtL4ndfW3)l5OVN
+z6;}oUF0yIfvDO)lcM01TxnA{_KK0CMvu+A6yzhB<s?kM8vB8vkPmk^D98mUVNBx?s
+zrEsUuq8?BX)@OBUqH$vZvd2nmmK|RK6k<;k`y=|onwIcM%K5oebWRs#sdXT}cEK%7
+z*f;EUzookSeBq>VyTFp5!o^qBKw?IrB7=K|6BxKPYaTk42yT5f-L01Ht){q!Z`85r
+z!dJD3BY%_{!4k=lF0T_IO8qTkQ{tz!mjcxD0u>9N9~5O|<-6wZ2#vd4Kz;74{>wa7
+zj}5eB!rgNbO+e3k*Y}T~@cjN1FeZ#DC~NK`|4R=z35`%0RXFnr^my7Wsu@<_Q7w^Z
+z75r^hj@R}=T1LCplbsCut3clzGlbUa0d#I$DGZ^n$x{=MaAe+2`^G4Pb4g6LEzd=e
+z6u+zGjS5O3((gu<7zs->jxdYEHnR17a4#hqVc?H|7X%}?v6|bXc%s$0HL)5f0=h%l
+zY*tN|ptM`%INk(r#as&TOFj8B(4Ulu5JUbBcE*js^D(P!S5Ev4Xl9TxsbSqIzMyo_
+zKASEXm(4zon$M3)ns!27<vQhhY7-s^lsWkr7=M_rO$|px;x-VOO(KFBB)>e1Q4fQq
+zaB<=O%!**VbJR}xj7|`q>(48#tY6JD;^)%0y{%#cBMwit>iy-3noAjlK_=I9Yn^A>
+zz0LmCL&Don|Mf^ZXA4^wBp;=su8%NME?(9-z(2VjzJHyba^Dk_v+egJDMI!Lv`eu(
+z@~^H+SM`R5$l>xyk1F7+8owRzNo$pN>zyRSJ}rPDC3DVJEY2LWryl_KEqy+eQmqM%
+z+L{&K;I@YwopUz979E1E-mr{VEglhJEE_%=Q=Zf5Mhh?A9V?{3*r#~fRjod)?R}-t
+z1oIhPnTlF>(QWLo(4a-shX@o`<BE}PDmS9cr<-KpZ@m<Gos!$ulm6gN<DZA7C#eN{
+zG4iA=+p1Xz69~)q-WPxs{oT&jJfUR*<4jc)^gsW(_r%4#^d6vDtRF9n{HB;_y;@+F
+z<8GD!mG{%n=A8gk;(AZ{skHKO7;)V&9(K*Zcai$I#Y%aeyZ*k%;OwkDRab{HEu82y
+zZnE^h$#=Trm`T9_d^2(I&tN$1^2yuWt^>KQ<5%p;L5-cE?fgFZiPSi<qMhliWw>Ci
+zcH+X*5>uZ81aTstME2kp!i~;mZc+nnv1cuoP4Po9?y|vq7uz}b(tR-+Y<+}x>WUw6
+ze5S4kTV*4S!TIm4zaBjre-@WBcc`3}q0-ykSc;h~843BmOzd7b)BUTNe~6lzk^0}B
+z{#4r>{hy=Xu6n`?Si>TSLj`xviBGQ7zHg?0?yOQ#oJe!WcdyDIJN*{srIoLcqcnLM
+z3>NGmhbTE~7)%>b+)=kV5qKPLOy2tVstTxeTNtOT#hNwx8!%Z@F`h&Wfc9eM+jYYb
+zlMV4JDrFD0MYJumV7j^svU?>RSL_XQ%<n5F)(#;>uvkD{%vJ_0ELki$=(GYo1nf+@
+zgSi3>S1ZCv%$$Ab^?#49j5y*84V|#^oX3h}EKhpO7t-B%Na3pTiY9iQR{xZbCowhp
+zD-s+1iwxwGiQO=*Ufob_J<v@5EfJ59kpyz)t<~QN{Je_7yP(xFhs{^4XD#m=G3}5<
+z>AqqOy?q$@e~13Y$Qv8q7CO|g4*w5LG4o;s72aeRovBEzj--XPl)0OO7A6fdy%V%#
+z`f@|Z7JW$RHMKA6Cko?#%)WFBY|swv<AomGWL(HqtT!b3Sdh<Zi^!V(p?br%!`iu>
+zK)r12uH}ISMj?P<ggCoL4cHKD<RX}q5q1q)I`P2`jZ#0YU=v=aK&Cda4&1$-Kk&O+
+z@-sIk!U&~5KUI%kJ7>`fya8bu#SL1t@&0agepSfr@$z6=PcG1Wc&=97<JZb{Myslq
+zWHo1=E`H6n3Xoqd6O^$dyOTh;|2HOp-Qcr8n~-5(b7?Rc90FzmTir&40}|Z5LCf!^
+zF4;XV*e9p+<D2m<<|q7$M@9W@c1tl@hu57x=uGm=c*^#?e3@8VV>_Atj^w7uHr?;}
+zvZ<~VQCr@C6_y?fEP?Yz19}9HzTO~uEA;bA2maL#|Izv2fudd~z45j?xgs5Zt$&cM
+zxct=0-4ZSYVv8wvm7U=J%kE)4QrQ(5KcIJ-vbM9#33Or9Z$~W)tC!^xrC@kK!YiGu
+zBz*8{<8|Qcg5w|WqGst4^q2Sr6vCc&zrVm$#`usoeW`i+GY|5q;xyzxsZ*9T>?&-n
+zNJ|x{ejQhS_^8kC-ER2-g-7HzTIS$1X3IttB0FRv0-0%<guLf~wq%_D=+C@-!TEu*
+z5cB&H;;puc2A<>pu0<vA;epIC62&ai{AC@(zaOcv#EAeVFFE_}M93{}I(u@4<hS78
+zYIFp^Zcb1~z?t|gRQZ1=PgXYJy$UX*;3qV}PkL?2VkxwlEU9;rb-b#1i3@?9@!U1_
+zymr4sX3PH$Ck8a4DQ`fjza!pS6BZ86wtnDOw>KHJxAKSiVB^o3=jlV&52~UUpJtVK
+zUkczj;)nr1ec}Rrckp_Xu%rP*w&xVXQf`tg)-aLYX}qb#mXULw<H8XpZ}pj%iz6;S
+zHuWPDbxy)dQ+P7YhkQRXf2}U8tdAcs@crC;*)l>I)CN1fXnvnpF6iXe{DbGr@JCQr
+z<YOAfVa^?jZG6CoTKCy-AS=14+$PyP_^9AAa0t*!ii*57{_;JiRHlz!M60&VL)mxg
+zrX$FBVl=m++QM*^)^N|JT}H5$Cz1b)Z!)ZIGUR|6$m5Y^0DnZXaR?3FxZ^&IYh@Mw
+z^rjF6Em}Sk#hq}irg<;p#EtlooiR;-c1bHMgX{tcv@?tQH0DE>f?O$g^D{vo-!KQc
+zlW$kl<jiWHpY06khgH~Gv7GzW#VBiu?Rm9AJn5>qhLdRD%V>nQO>I|1wxQwHthQx+
+zc=@Br;YXuvp()~tnVApyBV?Qhaa!29MC0rpWiI0Ld%NDbp_lM%I2?JSPkq^%IA$w5
+z`!q{VH;h<G?9a+M9v09%)Vii&PMXRIi$aXJD&S3~^pk4)YDNp4`0mRRRW)8M-A(wf
+zRkjytH1oUs4YQR>{p&VmaeuiX51nkoPr(5^%hpiNncv$He%S~)KntHhJ_uvCsT#M>
+zxuLIfB6ir+YGn1diy%mHCcKHPa%+SCuv9yEuP_7g!}U{5wO|#=hwOgaeJ1;ANB$(J
+z(!H-NRZsCmKQtk9L1VU+Z>y@Ja~powIr-qGO5Wztx3a5V$A@{XY6n!W>F753euq{g
+z#Ep#<Z^Ok+$w7SKBOXlkfrnpxto*gAG+9-{#*yu`prYtmHtT=gM{nL8JUJpq_XTnF
+ztju(%Q;w!F1w;A_>zO%u_p~tDJYjNIdKxj<xeoMYZJi8&{f&<|`qqCI;~*<GU1~EG
+zZX#)MdkGT<{xG)=u-~9A1bk5yqS`gp>#sTsV^MWptN*YnGV<~=tT!UhVkd=bg7-6r
+zpDlm|dnHr7KF4x+EEUT|Johp9+A;m&M<=4=Tz8}>D5MPbFfsX@OHp_D^~8zaCR^Tw
+zF(AI@dTux(3;n?ll(nTnF?DaXdYw@J-FaWjk9`ot*wacxNcOAIg7vbd9QyAi*6c3m
+z^dL@K?}Aj;`4)~Y9f>4hbefs=Lq-w3jj2}FrHz%ni-%q1sJSn`MX?-rPuLgyTP8?C
+zD0(AfO|APAbPJRON;-J8{4!AR6!QJ=<Z7o4Ng6r|ma8JM#&4<BsNGK&b$YBhzV0`m
+zBx%!K5i6EArERdi8-ERt8ddwJQlYsfjr(=1SUnQcZ*^$g=^DA<aN}v*_zuH+lRpW6
+zhxG+l%X@WKt>XwXe-PDBO2{YPFPh{+K|*w+L0rBoEyy^npxfw9^)Dg^$3PBt2L(}f
+zykCA#xcq5pN;(7arhz$Zi3fE$Pzyz$tK3`lK!t~V`@NX+fC+wi4YDB~^6j8VKClT(
+zRfj<}=~u*zE$Jr>_!~FhZ)!b5B9~tJJ%nxk?CkNITyCr*#sutC4F9_o1?WxORa*Yu
+zrQ3S)Ce-!MwCnoUFzf4KvnEHM|6Wp;k;Y+VT$T-~;7;kCyHKHn3+v^2SX*%76_BTa
+zXJTEPC;Zx0<;>Smg~4ug1-@8QQ3~xEps^q)GVOJV+PxkD9H5i_hEEq>B!QKj>hZ(=
+z_ZQDs>wc`&=zz$@f$_p9;?0~W>)X5v+#31aik>6lxYCU~1fA{t#G$k4Kp%yVKylaR
+zYU8~{pD+S&^5{udEou;<m|j$~MG(ivBuddk`a%nPLzQFCMcX8wHruClSI_QjO1vMq
+z$=}w#@eNs3yEPq+Hh=32j*xAU+)=5L@QOP=Y+=KD-57kIo|EPg?y2@qtIt1--TBv+
+zn6f%oAyE2+2}5m~gV%urHl1*%8U1||8{WTXyE#fJZk4@!x;i88Xk;n{72dUc%wv0}
+zPUBSi(=cwV3L@UDeYPnveBVeDeDZI`mDY+LV0i{S1>aFNLLZ;M4#uih>(9I|Ri*?l
+zZLw-4`j4-*B40#VroCk0uS^Nr{FsK1fxLJQvBmeee}9n2iEhhWuFnH!z4l4=HuPoc
+zigJ456i!H}%_`T?sJ48ktSu6dL{OR|s?;1Er%w=7TtdS%CWsm?xP|_Q6@T$qPN3!s
+zs2~vyjA9!emz8kpWv)D{Z__7HT}9w#B~OnHmuU-Po%&Hdk1RTb=S-vE1;)eH8m~$c
+z&Oa_!Sb;N%UgLyme${6nd9T_QtBr{Vzq5G|Q-X`l>E21T*YhIa7Rzrpn+t_}_%TAp
+zcEb;>{@XOdA_kwRukCIwA6+>EeC(6iJzrS$|595r&$ry^gTCk=vzhzGb05a<k=&{B
+zao?>v)Rr99dhm(Hu`;tDS;x{c=*df)?UaB)yJExe7#X!&cFDeJRN+>e1Q|E^zgdmt
+z(=|Q{eWeH#svFXaxrk#yKnrJu_@<UvjN?*@g<Q9bNli|IwiRV>FYtR!#Sp$uwm<re
+ze-R!rah5Ci;mjl#5_2e{E^*AzUjVc6EKPfoHRngNo4;xW#w}=0%@GB<l$CxcjJXVi
+z#bB4|EBchr5hNL>^Co@>igZX#;GxP12~)t8Dv#9eTPz}fvQ_m>d^9;_zrp3senYXw
+z*&*S9TzDz^MPK5|a3MhC;VSmOuqww~a;H)+PuE&!(><8WUfEDC;%D(VBogNn)}P{j
+zRg3;nZD~wuL^QFZ@DVUL8+;Nh++UvPcj|tRGK=Het4BRXTJ<8oh+GVl{SnAVjr8`?
+zGbrk6s2<D@)Lv+xamu0H+7_7hKmVtn_4nN~@C>UpPAI5{S<?T-HV(F~PM;kubg+$s
+zmJw=O#~EZEUnl-N2v3Uu{DJHknF*yDJ10h3JO?gNbaOl1=hTihN#cjXZQ(~Rb@us|
+z9)G^To(@m4)p&B$FGc5YBd~E1U_=e5v(7Pyg8;df`xs78AZdV4McSzZV(1M5uA2&v
+z5ALQW5kuddNmnnJ(l$~$Sc*}t86@68lAE63ffIR%wh*Tr&F-MJlHHNQvn<WUg7XdF
+zJs#X$=KSN8BqJ>6{R_w_G=5@}4h7&pW%sD_wF@iIf-7AJY<WtiXEw@0Rq1NmcOVVv
+zu;Jl1t4l*sC`>U5aUpKBP7q$V%McHXZtwPW=?8Wtn_B5%LHJ9#eT{6`oA<56oGKO`
+zyNbuQ3Wn-CiycXvW_~Q($?FH}i=;o-%@JIFsm9|TMz|3naqF0AaQcHgk5f)I_+yZ6
+zOwY5gNWm!KS3Sse^#+22#|pA+<G6e$&|FtyojmFP!K6pmPl)l;x7loss#S<;ZC$o*
+zV?Yk8MS<BPIJ<lTvKoPTN7aeMF^bCbo4#{!|A01@cRm&>T2lwbs&D@TetzOS`Mhut
+zX{rUu+q{A{yzbm&(7z+Z|7tZ(Vry9g^o_vTt&uoR`9dN7^hz37D5IDKd~_oT-cepe
+z{!3+Y5xKM7@aLiT>Irk~tTtal!?_^Td)Iq6_y)?(7Lo;gKDb0P_5c%nw?1N+LvMPU
+z-OU|}xaFC4gii|R&|D}yn96LOOu!fm9o<I95Y=|xjoZm3rmDFI$xGK*iw4KV!%2Vk
+zEy5Pw;rNdSQ&pv)gx%!Xu(D7u17-kn4=ui~7Z~il1rrGkhlLD{)c$LGCO&!VboQP9
+zf*48FLUK;Litw@?W88}8&Uzz<d%joZI`FfQ9Yq?jRr%@zB$jSL7RJz@h+>)gKR9q6
+zR+nEL$0Wlt(txz;<c;FwjhfN1D6wQS%Ie7<{a)tT9ZdiF-W{-&g^Nz(p?%NzleFy9
+zxbW5ge6jFN8(loX3ja={$BnEG_dI{$(~Fe;wOgseQ`je5^S{i%#(L=ayu|~?N&tQ%
+z4|%GVDz#%<H6G`dLn_f`<~${mtEZ8-nERlmzMqFZ!meW1q%|dBj)tmUYy|a?GdA2Z
+z#~c78nHnl4H>IQDA7&)8{Pn}2o2UKoOO(~~$kslBfvjkIxxc%pqVkU5_d8YcR8Ojd
+zZD?wh_naNA3A+(kW!Gez2Ods4`&TF!`{_ufKmwt#{arKBx;ppBkq2I^0bKexh8WtH
+zu6r=ap?R;m4{YUzLKj!Bk0Jg=sT~h?!z}9XGGg+tHxBKbR6EadXncXeOZ-`LHd&Ux
+z)~t}Sep?mF`)}+W&aa;p!cV)Z$)@Og4C%8%tr1ItgvT)Q0;aQt;kh>%aiXAuu}yH_
+z<e=|Cr|rlCty3CpOFi*Jh?d%UFTdl~PAN$-Ob>rtC++Cv!PjwvafQy-(avgN_{E#?
+z714PSA>SH!=+#qE@~h`9H2NJHODSO%j9VUtBcpg-gk5?W@gA9ux-DF<XDWq5{?chh
+zdNRAW>|%If!fRG_okd1pO!KUXlhZY66%4KWJXC1n@6WB7_q(9+wV$2+gMMe<QQ4Ob
+z`6ZYfWV^1RANcaW+=|u`c9C^cS>}+exsjGWDUZU>_)~wQ?6aq5#>!=f8H@D^1fyfk
+zR?iedtowks$4rh9!eIU-h958Xg}~jQETrBy*egkR)M!1ctq^)ck^_$rA6=w=JL~U#
+zsnrTEBQ!=?En>ITLY4J|-(W@Alx5EJXMC9s0`o?N;tq!zYJxUyDwIR{`UzjQt~O0^
+zSs64hgpiKa<+TRY+1=;mT)CWb^w;0(^`A^)AN5XI@eQn`m^bz@Q?FrK*hEU@>UmM@
+z$f#8jDKBN+o4atFN~)n2ttHs^2d{{69prMWV_GL)4g$?mTrG+XK5FVJxmYn=;klGI
+z!30;3;9Dt7k+hJ(2}@P{YV}iuI}PuWi&8ze_biqCPk<zTTgPp&fFwC@&em@VFYvL`
+zxx$oLq|CNJn};nWn&DK_z`Zs7bN}x+8a3{!TSb7(mkz&m-H)GoB}`ZQQLRnzbt_U(
+zsTvvA@l;BSln>&>1vw>}$#=>~c<DBF<o2Sf!(=P8Gu_d1jbjOtV?gM~oa<|a+88bh
+z%d}+-Lkt%`_Q?~YI5vOycUbbvF22}({bO+T#q)ef6l-#rV9TC<lCs$PBT2vwMU}=H
+zKnq?eq(7nQEYvWsUbY`%f76C(AhWuyXDdqBpv7Qp*ux4bnh(HD>GVi0tiGR%ko4al
+zLMV0b|8M4u`9xsje|4ovnLwSFA5jsftN%mvk8`Z7g#*WxjM3tr1wF0xp5eXZASrSc
+z0L9CQ9s&^^9sA@v{hDgzJj<q*9A5@l)-@Q-@YEL~{)ck_|JN<;UP`iF*7NUD>S6X@
+z4t9|Vx*ijtmFLQ38}3?FZI9(y(O@OM>0^#OYJPA2cjw|9I@d71;SHJlI$I-KHKDck
+z*|2=`=4$mu%CT|@28mm5Dr-w=vA(A*JzhV49;?38nPci07!Z_TjMAbym8K}Vp*AnP
+zszfZ+99<daB>ST-^AFcFuK+*rA&mDz7~?mS@|<r=??}e&MptXD-(9pIXT%J&{<o~+
+ztd;7k-s^RcF=H#N5Bu4<7SIXYxL@&Uul~=d+@PE`5_)8TG~ORNr~B7OC$;CSZqVP1
+z%S~z2ovvE9I!dLUF$GA5A?Mi|0(HzP8A$`n$fha5D+|;Q<dAHZQE`tnf$m}5P!ZZ&
+zub47Q=**;w!nZf@$ht#KE5{9*NlcjnlFx=ftxftyricXFQ{wWw;U;;(YVoz#1xw_7
+zKP$5!Nel22hn&6I0kiV@s^YG;P*w0}iDB0}@HUnBz&V?GW3pFfoo~@>eu6SE)Wc!$
+zslBuo>rsqSFwP1k-#;%0pAn~D>5kEuUWLR4zW1Cr_(3a3{o7%<Oqe03Nd8QiwmZ2;
+zMGef~72Cq%t|a`f9pjK#Jj}>w_P>s)Q)LE)qK-F<Dgu%sgfC|WsX*VYv_u>vC@XwT
+zlsS1Y-_oyHi7jA^uSuM{7b#eriRamwGE5T{)^4>jQ8v7t&$CbIcQ;;-5GOo)+h!sV
+zxl(d-gjAlnBifTZ#CU_;O}I?$69onI6NuVsz6MCRXN>uSvhi<479Z`OiOSP#h(`Ly
+zDS@vBc|-o)0nGdAhY}IljJ<(w&eL^fWfDoBO#In7l|u~|mTiZESL=md@a#Vp3H(}Q
+z^azZ6bh6cT`7%l%@9P_|ZN?nS`?|0d=ToC%?`}R4q28+d+tCK;C=SJgP4$f@-SMr^
+zX)bx&YMvn)u;D|`wK|ZdYf2$N`odQ<ww82hTcb<Uz6bEUqTw+@@KduI!`+m)DN-=C
+zh5u9ryW)B9)g<FYZKJdG%Uu2QNIxxJeBe&li=!stR{WyYObGYPsrm2rOoE2w9EpFp
+zpaJJi!;;<W;aZ^68IN_L7nCPW3r2UEi@$FchWA$qy{chG96oPW_upHa$`9SOPQ(d@
+z33tO3KxkdvxOyU^rda3w^h3s@r9svrk?8JtmX_$Q_hu{$L6;a?)$J;~fMkJnp`|Rx
+zH+d&mRmoesGP%fGF4eZs5WFerMC#AuFp2<DMCzOM-t8J4$mR}ThDJ`1Jp~UjCt==j
+zAhjxx1g$TQ%BJ;Z{JHf%(8i$uvb-Xb;hEXbv7A2p;s&`mlf-+qLvO4qJ(7bTw8fxz
+zbG<WnAGokS5k>O5T9OmuNgDdt{dP-+8Zmg<oe$jKviPQ=`KMdS6pOT%yw}3r26G^o
+zEe#j-=KN1&fK;{o#9Xs?uqowf;x6+6ALJdN&=BZhFp;T{+BJLc{6Si3gC(|5u;D0S
+z_P_N1>JmEKLdPMo*D(Oo;TKFRIqw=j_cQcPA3vI9J%a4~vSWd>zTvunpm#IGXD{LA
+zAm^uq_H!%RuZ2CO1=QNnQdvLp%N|=>($s$kjaF{OR-kTy<_{`W6@Tk&4nAvn-qX#j
+zAoo>>yh7b}nFSm4n+X@P9<FZwY1r0odm0Q1W}mdbhPUUqakEx41~!Z5$HE;uT^0bn
+zNPw<GE>pv;F2!3y6VvKaRQK;+)8ZqP>Q2a{|8}ohs8mn`jfIj0<?71@N;{9=sI7^w
+zAF%8x(q^9&Vaj6E>F>`Zj*W89zt>lxSoTmIUh4<-tqJ}Ly?_4~#p9@hfd4-Y*^V+!
+za(7v^r5u|@=~_pV(v01sbmNcuYqG`4%=zMeCKV}ozW4T&8zd<;rXyCb^ou7m7bLgk
+zI`gsg^8>_K`2iBaEsrdsLLXMHD6BTFN&^O#L7AxLUctrv)qC_oo;WZEPJ6uORbBa^
+zZTr$fq2p#ZD6JSCH_6RPiWEF(&4~cGWJ_S|eJ<`>wUyT%=(eW2cK)}J=K4~BLIf_{
+zIbWJRdn%WGpY)IOKoO(#O!oRz34@IROC8}QdESPb2rnM`KCE`%r5_m)1Jt(*mU?Dp
+zR@v<$|JGv4HvW5A>KLL3`*SqyGQD)B7CBno#8wsNlaQTo=LG&b2B@$3Zm;_VcGlJU
+zppZu*&V}Ts$0~RNMyq9O9m)2uyk`NNaFCc0p$D))H1CIQ)cv1O#kTQpd*$~SmcUPm
+z*qu*jl`|H7)P?^0?`#cA9p-uZA8OlJkn2W{bVV9BhMxsdv^H!h-{W@6;~JUee4q!H
+zr8llRiwT+JJ;~~k+Yfp9d!bjk%vs3U$D$1<Yp@sA)^pYps}l42)!M+AU0Qx5Baq44
+zqRHs5F5#y=A{jr#@(~h_9!39~7Pfjbb#cE7>MHykxYYHbs$u~-`?1UTc?Gi&iD#te
+z6Ug{WF>P0~`dz4jB;*1=rA44!Y;1l(VA{9nSu3&4>%fZ};<rPs?v6UI?Y^hxQ+_<t
+zkBB2C)n!OY5X7)Mw|6TLXM3U;*@W{j{w9IRwPfdTD9vix-7b{Z4S_Ui6L9x>aO}G7
+z{&K;fkmX%PNG#>s0z0BBV5G-cxI9;Djj2LbyHRaRu0&vmPz>LlRa$LMGYs`j5ei*k
+zw6QBV6t#Aq5L2x+XGEf!7}$_7c4E@FxdPw!01R%=_jA)(<MFlT{qt3S#38O3=vV}h
+zFQ4-`*!J=aA7&Ka?3Lz$MhG<zuxQ8}L(U4AiuMef@qtyZeB|NRPYu<tp|&4qFhVL5
+zgOI{2Y|TBnQJS|$=T<~$nRltX^!=7#xh=-;;3odl9f+sasoiYSN#lU<USGJI@7J?~
+z5Xa3&eeuCUTZ>m#VALh`Qq4gcFMsoS-~wIYrs=UYuv1ZgtlJOT%ZTi6Z-3x<UuppP
+z+HO}P6<UfQh13=@Pnz=w9$4}Z-0n|TVL8LsorVd}I+CSz&dtcT3jI@NqyL8SW-dqM
+zHQI8C@b3wv%%0uVxmRd=3LZ}y?srm7g;fcOZiWVeGTllpV%&O<`~kyf#$5DVO{*_P
+zac$mT%^od<6%P=U!-G%<D9jyRgMdg+4(Z@8fPsBmNBN^B>Qm)oQCNc1F~hW(1;Qbn
+zJt5l)j#%O)ftBJ-Z&q3kZBmYAo)>kibK#r4u_^f+oKQF8O5|4(<Ci#-e#Jm*0zBqf
+z%gtrAqRxDdgyml~<A}MLtEclXMGR^dLyHK}=wgGngv}q9UqQ=i3}zi;?A)@Q9oqm%
+zOouA!g%A7a@`1-Cg=rsHpY^2*lXSI$W#D`KUF-5?!}s`TT(JII`A>fdvqpVw@(cN;
+zMjF!^qf$q?#B@02Bj(V|Ik2!|>DR@Pk{Y=YJ^xUksT5PyGXHy9(;h2F9U{Aw##xj2
+zuDW95)`P6MM$;Lf@4CH1EZ1((Q}e(Vp`P;VFk88msi5@WE9i89f;W)Y;OG?MxT(5K
+zzq9I>)~hc-4|2>0+iWSg>bMKv$RfhNB-|Z|tD4}`TyDHuzOiI0I}rn$JP!O5$ld>P
+z`0oomy+OmMYgEg-yqS*%EciIe^#mahF5f)hr1(Mg!IM*_ytUunIV6&TbfaBobuLkL
+za(^Fnw^0~&LR4GW--q03G~OKJB6I;zC`efaQti`P5P?Px58e)08sjWV@lNyaEB_I}
+zaTK!eSxO2D5JCg@INKL(Khpk>vGWXP^L^v~zrVKpT1C;?<fmGyl!n?QRjpZ6)n2u$
+z_7)_nYSpGzjZmdktFe_xt=M8!5PK71ghWK-aXfFHx6g6h$93E<t{3;K>pIW-{C>Zm
+z-xU-Xg~j~v*1&(DuctKmSq{p;R<$UBdA(3@#g<i&-#9R(D&&x1P#3DwGLOok)&TDZ
+zE{3k|yzGk)-pg#6zYKX0ny4H0-)X(<2NQhS2YDP@?d1Dt?8%Uc{CaccKu1i&P^hKc
+z$+yrVh^SF~jomn*&uISjR3;K)&Lp-U61F_u@XrDHKQ71yd-{T}ACsDTUXLy?Mz0VY
+z#}gQW#0mDVmYUh^%_bj(2!!Zq47NWVdcFSBsbaz<b~ls(`T=3<zd5U(!KOHl4;+%%
+z?b6-Sy)<)D)%#w`FD&=?)L9^bE+>&Xio2)rT|^VrfkN>67zm+kg&Rz>oU9t|*#~l&
+zMXzlctlVXUisOV4Pgor9%?xac>nzY*&E)A3icFK!k-o#ZeY?sp`R#1%E7Z^nyDQm@
+zVevraRZB)9N5M7sitqVWee(j#D}25)k6E|a1rK9J?MotnC5efx+0-5m=I9+J)-l38
+zn54>O3sJdtzEPH{>MfPrcB`NvZa{7}sk1c)R&KA3RA?+S+bOGU23L{?(#?CDxr{)Y
+zMYJ3xE+F1vGNk=H@!q5^!FOiNVe-i>X;)c-X{~$RF>l|sXUe-yMLvAHB}M8UbpRHg
+z@BB>Gje?<C6Wjhd@x_v5XtC?fYG=<!Fo~N37|ooRphfex;#OI4-%!XQZ`K~gHSXa_
+z&xeET!FXG#`AhS#>zK^tv|{$XC$xYN$>o^+z~QS0Fh$1vW9H@Rn!f76z~8gFv0Us1
+z$Darsn7|Xn4lmrpb2t#*M+5|r#zSkOSXVwL)xipTHh3^xdL+&}Ce<_Gkt(yV<MG?b
+zNWbAT-@FCZM{=ju>gUxcrS?5`rENv~P?IJZoUS{jif5{9ykFm=PCQo$?I(vO#@8*p
+zQ}yIM_}{2aTabOO`lKu&xCM8Z;aiY5IG~t1zN=ZmQZ(BAyVA=Jc}*5Q#W%N>!fGmC
+z$-%n<+4SF$%`F<JU!M8o{M?f7#>(&(gDZH~_-XWGcX=+IXzQ^>gO{23mq!lv*XpF5
+zcb8PKfPi_8xEN2Y^iCQ-W|Y4*ly_U1^5unO!TWP);v4=A2U_k~b2NflyTS0==KI)j
+z-Y?74P4A%^&YAR(<qzf)Pj^NOxJkSO-NX;mC)Z4?4YLsLLd8RCibJ%aL1;5WSh@PJ
+zv{};QfN(#HL+;^jqTd$=XhXaT#M3B<i+bn4eX+;36pTRXz3uA?j!Du{e#at`1g37F
+zEGlkn=GF;}jGi0H%7cTAhbTxFmcFJrBk<kkS|RmM(6|u0)2QX%t%-49%n@sy5XZAq
+z<yofyd1?>xA0Fw{Bc(1;-zVrbm=){RL2Lwzwr+w~k`v}Yf^3DU;h0CDOCaUOl(fUa
+zJO>WZ22P?1`{miKx&J}zWKQPMRD2a#xJySr=v3cLKG@KCF8mE^?iCQPtmn73m;f!F
+z+Qeq`b+%q^p;=+;@UxQTe_hwgCm?E4@GO~cZ)lRk@m4PTDz7RXs+O>A&e;AhYhR?i
+zjPaB9XE(O3<}1+Yi1)<px4CavZpoHTILt=?Y5yKvP%h=yCI*t^H8{QX_gjPTMQ+p%
+z)3QC=2-Q$#zn>e}dl}63GLyViZN<$yr24M)!e7@}&}k=HueQkJWkw3tA9Tf3V(_9x
+zldRZfoeFIuDxlKcGt}|wkwQ{V+<~sV*RgW$e~oV{wrbO=@W;ydkd~%}a4Yv4S*yuv
+zG<U3GTFZsMIsuQXIw-x@@EpQ9RIi%v_Q%}03qe@6!k7K(Dw9)RcNCN<koA2r&_$@x
+z?<ub$YX{X4TdxS@go<JQ5jh=v6)0Pq6ZQxDLV1@YC!WwWuedu3gxS@#d>eH%LLJ2b
+z^B>s0QMn76xDR*NVG>z>oQikyV3K=8HSL1{(kVFW<;v)tl<z+7qUq!pJ=9!TTc-lT
+z%~RJ*>(BDl{dtBAZGo&nAAfhTjj9UAc?FlemRU`7n6z)u+i>eDkAvJA<-4A;ch4Pn
+zVGQH}3#xVRmwN8VM-Drie&~iPh)T5g*kwSaY~nA|tJ9m2AMi5ZM*XmRQfw8ev3@xN
+zLEbD)Rfw41ed~d}pa7e}=C9GmK)Mj<uhoE46M(Q+_cZW3-xel&oMV>tZ_^{^bU!x6
+z@O;^fbBYId%=uGCiBh}tsYHcp(hb?YJYpP?*UkzI`8n8r{7Qc(|E=HD8|o>|oaTy9
+z6K(ecM<W(njUO2#$n-GbCN#O$BNY?W<zg3WQz(j+lF4lqeW*8y_Je3#$*=pdb59c9
+zH$PqJJ5#j}viRa+Yugo??f2ZV1vb1e=@ZgT41WnJIp$dz#R$XE77HQ8AYzDromS|N
+zW4X?z?=Afoc+3{1@(YfOtIQgY<F7qBwS0wo4n!AG&#}D@Bj}GZ-3DexEQiW>Fs$@4
+zg_`5P*!jtT>Ypb^(Qd{pz|&V_*lf@lf}%bHBc4LzAsUoYuDbj?`4rEtM}+uywhrSK
+zE4$}>n6y~yIJX=h)RKG%+BX5Dygaj#(_bDgL2wXkz)N$iSiat2I<91f_OnnagQJ*N
+zv56xzCs{bL%IKgRW9M!^!pF1m$4{=0lG3+Y^<Ez$LGlt$oqj3Q3|xPbRGpz9#)K9A
+zAe`P8q(!yl7M<qM5HLz~BLcow-N=uEb*<4@1I=hT%$a|;jNf?FSVQ@1Uyq58H?O*a
+zlkx?4Q(GM?H$p|<?Z|i9tZQ2_OumzVR&mKxaq_W1&F*XwU}pqYrwbXBtn%7$7dK93
+zV*2xpj8rLegS1Yl&}v%B--jnVgO|Qf3OFRoQP&pJg}!t7{S`WY1azx>vr^w?#vjLK
+z$>j7@Be84Kh~Aio?=~?{^eL)-(tG~V@^ttB`rDecb=|G9eD!2#IoFo(F)q1c;qSV2
+z7n$4bDm=<f-uGj(h-&Me*JnUdr?R2^Ns}66pfqp%AtsmOR0#o3khMJYnsHfNh*d1x
+zzn9;YvYDXvqEhUff?m}v_)bu`TXP9Az5SaRgrUX?P{bxO&eBMTT<CVK-!IZ;b$b9;
+zgFKf=$q^*@)jkWMSn7T?U)-_1rGwRVn(Q;s|G?G)h5_<^3om~9u@pF*@wdJ|s5w#%
+zexrr^I!?Qae%-b31T=D8pqf+WD0EbGpIz$u>DkJ_w!1>+U^eP@Zp5J<Dkji<-Aya8
+z=M9R@a@Qcfdk(3tNiK4ce2LfH=6{y~Voio>S7M#8HFJH4yt=&aL46i_>y?hqmw}%1
+zJ;1&?J67tQm75`7=n+%bPsPqoAwzWOoIQ=JbeBrqa}B}X14vS!)qX;_$<7u3ot_7}
+z!Hcx;HwCW)0x=8uBO6Wn!-7g@N<t_VhYlp_EgaX3d=Rv)d_K(o2)30JZd|8Ij5pR0
+zz6f`Hj0RiltZ3`4WXEtO3>{v3tj{;fKGvkFzmiaW7gW0Rt@W4F@27iWw`B}MvI5vg
+zAZh+>Zxe=X4ce~uf5P0Im`QxA<kgv-Hc2^O&$_M0cpmR{+gvxp=p?unDcvHl+j`?r
+zr<ZnPL-9CyL*f$a46U}Bf6glcGM~*DL)wBzo)bn~E??LTKO;R)e@0?skUDF(tY@U}
+zHupnB{?H`;;VB3fN2REiS(Cn*okrSF_9F$@+(sIsW%&9N8Tu%vjEJnE@2IuRe;vCH
+zCn6~q*X;7biDjok6ioRuldWBXz5NI)IjFfj*Rzyfp{e|j)A)nY#`?;_fE>$cm?;x%
+zP+H!;lI_f7JI@$!p~HON+j8W3k%#n>_c%aqK>{>17y#fzu7_;OVuQM+U8l4Dsc5P(
+z*+1!W-jBRM+`si}Mp%bY=u8U(3A)*Qu(_CNuHLgGw8`w<4R5!ev*>#pM&UD+Pbgbz
+zs7fXzPMdG~8yCiLkRS1qo!A=troUlil1&o7_vp@a`=+_QOizJzexLE1owhEsP!}ek
+z>tPq@)6|J4`6+7dj*_I$r{yLSv`R^n=aSNq6&xb8?VTSmu@rK-N`5h<xc1)6=8=X+
+zC=&=ds?#1ivu+#yzfkAW@fL#}&D^3OugpA~9S3Umu7?jn34vq_ueClrP(vx;blfxR
+zArZZguCtN`(gvWl21@@8TMLlhiH}B*!d^MD#0OfR=Dx&o<M8RtzRHBFROnSw2!TAC
+zEPiy(H{c)IE*QoEHFw@r;dKZY#0Jd1v|OvpEiAeat{H~CbzoKJjAqFmHU$Qnt)|N@
+z+^ony9^*6)YUyS3bA0g|iHVb1WA@cQ=GpYmGsslkb#f9f((m?3u$!N^HhA&N0~9Vl
+z4vMe$y+;OIu2BN<vu=C%)KMF8BKx=(BH@UsbeZPHqJp6WrYM+OUkleND6ZZB9I1{T
+zl<q+f)_L|uRW?|4eHgS4A6uJx4K(@U!k#VF^Oop>Z)Ki{=ZUv21Cq<6TF)4#Ll0$m
+zI!g!6%pbY@C4&v;uX(rXgk=U#{$|B|h^9#@s@vv;rZn_Fvlvo+t9EpIggM-gKie{M
+zBYzHVO6@2XA05-oSXjG$YP_622E-1f4V+jksdZhTY{4TvgcLudW1E2kz+;Ir&hsvu
+zMHlo9L_a2sHfp;+0>)BX2f_^o=RH2$W-kTf_IaiDWy(V$&wg7wv`eiBPRuaRpGJi_
+z2FKIIs;<Sz{q<ZbcLxVM$7J-ob1U1z^3RRC9u<KFSA@e)H17r71f=ejrDV@ajv^Jp
+zciUli8+h~gK7yv{S5zyW_jpM=2jcy@Q~yVdl)eVpr`G9n>z26vh|dy*MF%KoPFg*G
+zP)i6e>{%$p0kFGLQm&}QxsnNsij;bVo|YfO+;($z6GKyar{A?C?`&w>KB~%#xnhf%
+z@EO@?eZ@arLdyv<TRA!X=5y)=Kacskc*z&q#^kic0queRmF<7Rqe9-9RCoFjqrK9!
+zA+RpEdyH`xSZFC{sSOG@8L&X1=K0OPqV`&BD5kV9{Aj@IW%uVG8Nyyqz=eFIf9mf~
+zQc$B`Z%}Sbmy6CLzJ&It6P^P(h^uLuPyLggp-`h0-sM;P5ce=D_&oV4w$yrQ?RJ56
+z?o^HKx^QZoZ1iH1Dl6zuO(^EI&sG<+SGO{%=J@4#59mr=>a(20-#37lwX<{=o+L#i
+zd(+?X9_BCU!D6|W<)EBiseU)N;olHVLt(2LYs$k6$h;x$5#|{=4I8R<dpHv=heyJ+
+zbZZS4Zs>ao{z7!gTxZ<)WJPShV2ilAHzM`yN2ds(xpE1V%eB_VU1sdL&LaG;NJGra
+zmiA6Rg;Qh=^4b;ehzL0TyDt5v0zMbnMm_<Cd3JtzAUv<!W_faBNq&ICtK<>@M~IVK
+z_NyJP`~wQ#dhX%&o}Z{!7p}T?wQo*tz6~_oSh<<Hl2#_C@jIXu9PZV<r+)?;m@Hng
+zq`7F%9X<SR(2i@yis*R%wGn0xvvA}dBC^jdgI`d{(CkjF@|w{uquid=efh8PFfEMm
+zDHvk&zNFtrtCbWujP)B1j2;<=q+YU}aT#HJq|SeV&g6>!uxF>$c4Nm&`>$tziPy*T
+zd7<65``{>&lPX3Ed4ehO=uL0&Lal8Q!{pK1nU+aas4J)a)^qDxQf&*bUx9qN!4o}?
+zhn!y)wD|{x{nW940-*V4AkK_drk>~unM$ZSs3h6gv;1%?{R_F{v%)$iTEwb+pT1@J
+z*!JB$TMLy^gG?05mjs=pka|(rF6Mb3Uwhts7lpOTYYd-A>A9hb@tR0J=gN+sZseb9
+zOrY8gm<n->^|YbJ%l`-#EVdZs(uLr^4aOLXR&Ll-^Aip2A20-8nX#3R^NIUrT($Ox
+zm7chbS=4KxH>_<QY0h4)>dr2iv~RYF-#hiYMjs&>9WZQc2t-(E(OwQb??L`>s#(nh
+zQt*irG`6FIqKBGUw}-Jc-9~OhYz5V@@PSd+D1}FKn^&dFkDQuV_D(-qgerrICg&c9
+z_QFL1Z7LMqplWuvI2@Yv?DJ8i(2U3r*@wr$uyx~YNWb`Hv+B$D@UnNB4)C&7!MX(v
+z*Q(03Bj#i(cMMbiTTg?1JSt(SQqzYx)iotIJ-3~eZYxc`I`oPFD|WNoIW<W(_56`1
+zMTb49-t$M#R$_y4I+FW#v2tVKXx^BL=1{^yj{NqC?xc)Js*+<%mk<ZzkXABEne=4=
+z`3x1R4ZFJ8xXfJTvyLmjABSgC(xiB`RbWj|0Sj<b2lqi#?XZ~Jc#p#4igiRQ0N)Dc
+zND}p;#H_F7^Yc|I=Y4gxyGFL0!y2F}hLPu^6fhSw>}b6hL!S=Gr-vjeKBX<5qm0f&
+zK2rz_Vx3mctF6rMk<`yOl!AT@=fBB!`Ky#QYdP5W4Y9lzre7H_gM=`!ukrM*{S@qr
+zuOtSKoA4XB-~TAYH6Hk8GYqI<|L6Nq6X%Ldy~VVdUa^R1!_Apz2_-7I*Zm~LdBBAj
+z?d1?!;=#3<mBjkvk$dV1sG_+Og&7o%o2j_}obwb&9Jl-p4PY(j?^m1s+V5I#vsNS`
+zrBkMIoGwz(-rGD@KSKv<!=+spL|kptnvKM-4$KJd4^ROeG=qN|I+PB)%88!#wuu-H
+z%fj#d7RCEf78m7;C17W<dFEA7#+NXon@l<LFBd|7Cq=y|H|w3kCk$-fmF(P7KTpVw
+zB!2Z5QWz+5Kbc0ogCGL-0ZQdfFZLob`d-NTblvx3ZvE+4C~}~E`aUl;Z1#g^_3?YG
+zpGkdeHskL(;#-3gM&NtAEA~%oAbyH(=I+mn#w7CvHZ~kiytIVC#<gYimH3B~7&q)T
+z$CV{Abl+eBpM)#C?rmSx@S~X5W&~aj)S}`rqpfiuQj?K&vb=ft)e#%C?S9)gz&NS(
+zHZS~{`)1}LS1`p~v9q_)n@(5W1B|pqgSVtL+X_)$J>+T`5Uu7xyM+*7D&wcLg^{rX
+zDaPDvy!H>Dvui8I;YV+KH=$L}hxcc#mT3$3@v&~3lc`@<9mU2~I!XaYB|0LD%DsFw
+zB90~rcp5S0in@_^p}%Kqi=+|hPmTP|jedTd(`;6P{$8`o)s=^U+TX6l7g9p<$wObz
+z^SN?dV}d7qqi4|XMaVzNLp^uB^k*Ebne{`Vvphe%>Sl_WPaZD^@on856;oL0Qgq}?
+z4_FlH60F3NEb)`c)8<(ZE%$Iu4XsW{@WZj)>OY{r(k{q_+1cIdXNsq4LtV7jj!5`?
+z+x*^a?L43>puE{~S(Yy=fGV^<#Grzk7~3^~kMCYU58Of<;Zx(g7Y^uy*DYMV2(Q;0
+z@mCIhd-TJXY1Y@Vi(T!-_=rIcIWAT(5#e(tIF^tXB{P|<=<o!~xrHN0J&yP4cR5s1
+z4&$RW>72cq|2L2-w#qD~61v4JmAP}6S#j309CvvkomLB&3hfr}XW-Va2#5>PnHQXF
+zevy<x)7p}gpq6rdqQdGao4)-v$e6v|$C})=axU;?MG-%dE$BeqZ`DaYXpsW@1a1DQ
+z&%#)VG5TD$4)YXu2~pknM9}?GxR;{lhFqhU<g+~doIjBvye#Qz0pW;3cjhL`VsB7}
+zKEy-)BAOmY*SCAsQGXR+DWtg1yVNs=GnQ!q%J1>!Nn95^p8H<v$No@ugP@QE0cQe7
+z&lWM8u|#Zi!vMf(89HBT-TBH#JoT|dOaj!ov?o+J6#LI9Vnp<o!@g>T-D!qmpGS6l
+zE)($;E^ImTwa(d}_jLU8!RKYa@+j1;=lsg2Ma;2M-5e)+C{)c7pVg`S3l}=QU3K+!
+zqObu~@883tK=kF}L=3n3n8s~WG`~?E6+g!l#Hq>a@wfCQ+DoY|+%5H!_F~Qz8XdBS
+zZ<_pu(??-oZdz#NPW*jb+(Nz{-zx8byZN)c)=S~M1vw?Y#TR^r-R$rZWhCHnVE#H0
+zaAgk4v0yM4cBJ}&dnqTr$KgHSlS1WRj4Cmhz%YBTz{8o7!HyWEMS5NtO{mCHruqgs
+z`h|Tj=G$xckeoM?Qn$h)v^D6pb)$hYF$n=_Cl!;6N(Ye;7Olb9o1_|Tr3DUJDDTeq
+zGg~&CQchWhRqMs<N@gI%FKv;FE%^%-faM1gc!c%m&DZ^PDx7oXwtOXpsfwT#thrpn
+zxBf>Xzdl8o?(tGa35E@-sr-i=VkOmSjWShFNeaC&BgnJZ;g(p%EN&kgdigw~8F=6q
+z0TORK_d(oQJV(LN<NipS=cm~pz7?|E*OEzfrjoDLnj36+MdnS$Ruo}>_w^(lmPlU<
+zkl&=JnIBS-YD+!lNYK&bT(qCA+EPb^s_X3jV#4eu>iJ<YM|oq%OKzG0b3)QiPt1vv
+z<<(9~=F|HSUAzCG7_ZdwpbiRbmO=-Wp^-S(N8wk|cVrf;83d}FK}_pUmd*KSwh(lt
+z^Nu`jGJ=9^XP%b7U!m`oxVl;_Xje}<4cM|l3610Be<MM-XDZs7!{T1vTkv|?o#)~F
+ztjl&PRlvpj$`W)^#Ij6~z<ri*{1XIu_;NQchV@?o7OrM=^y@0yO{v0e2Hlmsl!leS
+zm{rwn+iyKQp|2g~PJ=4Hj{COjOce%1T>Z+_nttxt)FzsU%x`+t@YU(EU)UFr5hQ(d
+zEk6P>s~`SgmR0xc>8t+t8##j+Xznbt!2A)zL2V`&8-mS2gYSS1A8MWC6eHVLK+yNq
+zuL&j$WIr$1(Aa%^QvJ~EIdfc{{E*%7BM{CKBeTuCD9b#o&K~+qFgPe9O}7~ycGE$c
+z*~0}O(m+S4vATz{`|mGw1&ywBAl93FRlO57m3doCDjC;7DZnw9hst=qP+eH+YN(r5
+z-rm7n_0v830#ts|mt>`)bbZ@3iokx(z&@<M=0kkY9n59;y@JmtU?u#v4C$rnWLuQ1
+z=Tg4L;AX5wUPDNqm{Z-~o|jx}Z0n0NS~g6AC+0^u9blt(R?CgE9$#){gii(Pwvvkg
+z`PML&zi2n{YK9Tg+SfHP>8GD&W^S|(g4M{`WT0Io@<`j_vuZQ6my17XFf7@{ugkS?
+zevo^>T$H7+`CqJ&)rwxY1->zLGQoTv4s<nm_cmWx?nm^w65UcdDHj^$^9O;Ga0n_4
+zS)TF`<ZH1uirGd;J&!!-RAx@fPvAo%I+_%Mcz}dojLZv_Gyd4ub;|Ya8|KryC!WoG
+zj(~+vdjTm94_#$QKfB&UDC_~J2PFGrY9g=N8_QIUdbj+7F#_lFAAHyQIRyW{yOvN4
+zN&mZ&U$T73w<6v}IjkU?$8Lg0hnbUq^9sx9`XX{LXPBI^jFuUGd4@`~$#8fP+|Rq-
+zC?|?1?pd#<-UqkMPi`MKOeWX=Ja&GQpW%SyshOPYw^%XvuBhkoC(HE}TVKoh>{dB;
+z@^-kl;_8A0-Y>r!7|4vakoq&%6!?1W$&K}tCjNz#JdQ<xS$G{zn$bAY2WjdW{`64V
+zcj)}v7&k<JcuHw5(LS;b4gD9(5Py9yVI`oOVZC&CwN0I#9`%W!<#$QW`47is8}5CL
+z8Cl+T9B(B5^;M7Q_l*ySbP4lytJ&Fup;E`J6y_#dJ79Qw#{2<`LssT`XIYAyBkt~c
+zN8MzIp$A{d>|<S=W;X7JeZt<uw0ee|en(GT(!+IWz$V4!{($V~)L>QnTy#6t;R7o*
+z<JAA@k%hQDay-#n|5x?%JU)DuZb5|P1hmG|ll;3Y$W80$I%|THS4CqQvV*K3#aG8n
+zn9&)cUzna6+5LzPida4`YOZ4GTls@brSx|%6qERslXeA?X39HPmoN(x$;<%@mivk<
+zaBW`Q7QV-m4;59FpX3Tm^bi3!pwb1Gusij36IN+y{&^GGW>$B3KJ6MA^dZz`$wuZP
+zmu@yUKJ@#N&1HgKuD6#QLC+x{P$pgT<`z{bc`nL;7w)oe{(*IkX{_Vj&ZTmyaZ=26
+zmtQYaw=#oyPYa~v|FO=M)^BWC=j%?r?(oZdrt*jKpTO=J$F>-tyJ?ka)m#_nfmgh_
+z<uA#G-iu`L-%NwJyNUu$`W$IQ*S(*traW@!-%E&5`zI|9r2p*?-v~Bjc&rN%{Rbi<
+zT~J&kt-!Q-*HdaWzDGkbMtiUGGuKMa*~qCO0>eK7u?J%R4wlt^`-0d@QTxv{Y$-6`
+zYqqKAkCke2c%#A{U!_x834_sgyjH>K(7AA{OVEK82*pmmLzDkkvV66=pxcjPc|D*E
+zPt!dwRya&kn@zC1Zh`5mg}T_^Ait>~y`ApQIOA@-RWMp(9O)+$3{RUD>>(yQcmjHm
+zJ<YZZzPDB-`na5bkc=|F@|%2-iadOM+KPwMK*20d^8Jc-btTxB6i412yrHK$bZR*J
+zPS(MoIlM?hJc(dQcnf*upao+(o-HM#3TKV+n&cri${9n}MvXG~+d6`S_;zLd+lEZG
+z?y%bclJS!il>Wr054xzmU^GP;z#=XD`^r5pRSv5jn=|@Z%g=83%;umzh5a<&_}8mO
+z^0SKXh5=Jw9vffjsDc_vt-pi(EFo1x^q~(c^W-&Ha8FFE-j`gBbNeI6$f)mN6qla0
+zb8eZqz~P9-=VI&c)gABW13oOK=*uP;5!jn+$E~lmsl9kR+1bRBq!#!oEi3#iX<4gr
+z(>|XddmrlvU##YwW(bJ`zAW?{-@f1aaAq@M5+uf_O`^zfjs$H#^$Kt7h|_&VXqRa<
+zfb8xz(Z4R*{S3U>qP<VCP`(QA{Zf^6V%YUAWWD1-=Y_`Z*g64h!>|0vA}?;i@4yxP
+zJ^a}kpBYPz2PF4!obyK5dj0SZB37eiB>+y&D?d2po3yL`Giz?%|L?4f99Jx*pVsj{
+z;o{Hdt%q*UkInlepn{m=KLKogo|5~D>kmrxq9}%11GD0&_o{v^&jIwIsQV7974;vg
+zNiCESJV)1#CUrdDW(B<IU~7^F|L-lnG@#fwP}fR?fYcmMr~lYh6dzyz7g(SK{xSLd
+z4_1q8b-Ax+B5bfDZ1DQUpyr13b=HOh<~$_Q64MRa$pxnR$tU+Ui^|Mv!Y%WQdT2hW
+z4)R=%6^79(XU+*kWDL(nRrsNTrY<^X_uZt!3zhMHlnk1B%ng4J6hZ%uXnvQV*w#M9
+zj(^AM(aYncE;9L7S6=ldPLY#1x+d4A-?H4}1BXGCg}_IqehG4%o2FV8u<8VZEZwsX
+zG%N{oVY>MsFAdr&8ZvA=I38<%Q4}dz6xn+Py74R(^}3C7tUZa{I=bmVVm#YQX7XJA
+zoy<MYv&GY59O!~u)}Zni{9wu-iBBd(dczCI9@rdV%VYAx6MfWRJJT&@iN919GH<&)
+z{l@xMxf<+tMKvs7{yt<o-78^(Eq>Kz^G-%b@#&eJJ$k;<{SE^V$-#G)!gTH;-nww}
+z#Nzge#fzgB&Z9Mr5~d5cJ9#s}yojjE*v8^OSviovzq^F2UsQegmF_O-ZOst&YANU|
+zh^m1=zTld3i0jagoK?^LZCz>aabk6ElJwir=OaeX>0D;E+#9{;qi35;&FHK5bolA!
+zUYUhdv-p7}5&w{G9R)G0=R=`p8yh)O(Q9unBdqVsGkR3tgl7#!4R{;uCt(F>5*>g2
+z?IZLjm#BXrpY(N{(qA=yyM0u99dMZ9v^rXAJnyEsF<fB8;T&cz$5F7p^HC)b!i?w)
+z_T-8wh%pF&d}(N)K$gvxkRk_NeChdZ9%WXG<9WNFfF&6qM%<{M<>}6|IQfoaUPZpB
+z0w?B^wUIT4K&`MWF?C&)x=P<?uO=P%BqsRS6B2jNABTP)o<4gC`+~IIVGl^^H^1Gb
+zWMncGDsi%^XpEMGuFFk=P01L6y#?fsEhoNfYTe)|KvZwXArrdOTN}RP5?M}-ZIdek
+z`wSB4IA|gx6!~N=`aeO9+4tw#R(TU^1nKXc4znn+V3E4qy`ylI;!bOztzCBXc#dTe
+z*TRrWAiMHap1gxvz34;X6)JB|xJ^$HT)25dh~r=uJ_X|>wg>Hqbt=U8^S}Of8>$^`
+zh_$Gy{Jwml38+*Y+bgjdd;~HBt#sN1KbZL<uwSgv!spvyKZGIQNkWL)!&hkaX05^O
+zw7UuM+@Y<?I$<0IhBF4Yv*`&~J>`~-HTwgED_Z}kll?-)t>{b+uH(37q72M<M5t>X
+zhkqb#r=({9GY@+5e3O%S7|DJuU1Lu$ev{kHKkUwatRC1a@~xfBLnA8QdGY6Rtrx9N
+z8Cx)B(FCA@&gIQ_3UW!QRX4Of-5uhE5W3fu6~Fp0o_{3@y!tMCOkXsw0-wo2YzqP;
+zgD6&0TJiaL4PJd>vCuTgRTrLq$*)e{`^oxbTfrF6LrS*su-0S%mh(1M93qf-d_IUu
+zOsWVD&j9`prk0;edFQ1G=+YEXv)CgW&w9T?$C^DK1fqf5crZ2>5sUDZCiPt3YttfI
+zcFzbz?n!WIlXR`_5Z48^DByR4Lz73B5i{WAq<=a25Ed`Fuoo`Fr@r*GjTwX8rQp_%
+zvoLdeimKrwF}`aoohoo{n|8A(HO)c9s~6b`qbakYm-I!C@6RV|NzAcK3oC#JGwu+_
+zW^<UNwo<}6qU-;1&2Q!Hq=ESg7gF?;88+D-_xbU6e%U7J<Rn@3vJB+OYRzE^=}2GB
+z@Vtcar|2T%FHM3q6UTX*XUpQRc{+}NNdmBI)96Q4#2Kjo^MLcTKCt$T1{|I_8<sOG
+zRp-S(WZ=})M7d`>=N?@Od*H5O^e@if*6N_ia+6kd->mMdjWvR0m*|#nG94nQ_B-|L
+z@$gHb>FQzBWk8>8Pa?E(uUvZ2y@MmSLyfqfM>kbv>?gmAvHc=0nb(`0!E2e-Ahz!F
+zNdYC1aBNJ)&HwPxjEi9#-LR%6s~%4);-jxHCcB`&M%FoZq`AorLA|hoW7RolYl50b
+z%`YC3u)kIY)2(8J#K)tdLD0H@vNy~xH&$vHquaq8u2POi!NxgwYooVLt_5`-&X!>^
+zIY%WR0qPqQFEIr<{O8%kSGJ3MgJudBT77gAho<|dZN(mt*A9=LhGtcN+kA$~>qVby
+zx`%Rc^q_1P_bC)Nn0rialh*TK=7wU+bs@JzyuyYK{7+=)Q*Lllxc4rm>tnRL8m;&e
+zwAkHV!QiAFTKsqJ&zX|AvoQ}sDuL6f;E}vMFFH0yYk;TMma5@&)+|~4!1m)wM{6^`
+zU-f{O8e}?o6bt^<n(tUZ$e!T>Jh*_$xi{~psgQlfO@0d>?W7Vu&Up1<e#y(lRwg&N
+zyA|%|=YF<jBYX4UCeQz&SsB?I6)seC)XFZjhirivLw@$JhDSHty#gq#Ei5otzXx!{
+zfB6Sv`8{!3Sh*+oKHTeUdb6$4#gr%i4JR`<-(|S<o*}7Exh~;YCljHooeX=%tR$HN
+zk~G7TciC)O>TgPO`q1W^2S(5J|8CEI4(%$A?u}Ks?41Y~YfcL_iA0CBb-rvC4~BzY
+zNl=$Bz!SO>>1;_Jk$*)I+@*dwT@V@3)iO~deVf5qU77#r`nRW_Q}cNY9X>XH`PDYO
+z-e&6=Wcf)1Q?_A)K7FyF(>UAKe_QdN0B=H@1$s7}F>Awo!*8!j`i=>L8)x|$x@wca
+z+`uO6?j*EPf#V32*#98@Hn~D#X19<WW#bb<?K}*(pmsjrY3~l!^8iL0d@Gf+|K_%D
+zCE!<hD7aY`O<oIsK{GvbZQJ)h82>t`15g{P9qQ7+YBh;QC5CK&5CPUFvk9KnO|eJ1
+zC2YjaJP@rY@~bcC3XnYMmaW02VTfnNHvKoTzlMY{$u8=Wln+12*B~Ul4h)>Tv+t7B
+z-RNAd#n&GXlq<rSIN2Qq+Xv+=e3z@QhaARt3$DX~3F1^?bjB9^o%MeorSB_W#;#fA
+zw9?)$?-skBU3Cy5vCcWm45<2+%?JZ+gs4`@!M}`L`~Xu$hyKc}6r+;4?Vx{A3lbit
+zsLqoiSXAvS-?(okdtXSGSLI`lhx2|FIO!Y%%do%9pJnm`#ax^rndKx)nU)1p?4fU<
+zPIF4&pRC98sb9-twzWIkRifJg(^AW~_?9`+r{Al(&-HDpkB6P3^PJ%OEBa%`=M8<p
+zaLa<VFHK&8OXoNq-6U#}@N7@^o56yQlGH2yGl6^FP72{YMAg3Mf_}Id4z~8b@>JSs
+zuZKegJR$Btv~G{mnJJ{|7e<%3h(KmWe_UakRFEk8_{D8pDfyggssC|DVCZLaqUAfd
+zY+esdL>09t6k-dTg@4^p_*Na|?NKwb$pWsZj`B(L({KK2GTHr4G9|GyFrUkmdl547
+zJOV4GnLW)9Rk(sTTYF>z4Dwy*r+(`kqsZ<m+DtSLGUM>prvP?rBvl(|u19w~HP^0M
+z<;E7Q78O^N?&M-oKOO&R6HU4H510_t^%B&gzF8^#R&-UM!LV=Yb5Q2`Ka@v>LznOQ
+zD&i1VsB9}kk*&9)`>_{Vx3sVpj^Da1T%#cAp(YK>pxP4m*_tfwe%p;I+I3Mjj9G9g
+z17?Dl6D$J^z2U&(v2cPq<zjTSReTiM3mz$*7l+K(4|b`%Ce#l?uv=B$a{Z@a;L}5_
+zYVjgjd!{}}^gnPh%D`?1aDGaaUrpl5i6Bv7?E@|q-2jp|7!^yoL~uOsjo6MPqmpU2
+zjuqbxS=)()f1?mT37g)p_!47|T2eVI|KGSv-;KW;(#S?gN`P}t`~2jVFF2n%J_<#R
+z?M3BL&4dZ^VpM&bt^4@|YWPo51E84SDN0&&jbRV&^O@}RKCJhkP!REt(h2!E`0VCh
+zvjK`|6DB1P!<emZPW1!s9Z3&{k{ALwO$q+I2uICLLG;rt=`K^}VYIJ$KC5QEU@+@?
+zri-?p<?YJ-7oYd8y?t|al6Ao2dGjTxU<ZG4D+b^Bjkz_Q@=Yw4IS;7MF>3&Cht2#i
+z>d5d+G_eV61bRADIJ8%Y9KLc|_n%)P#kHuiYiNb{wTHD7OkLcW|3y$ukT>#*%l7Bv
+zdzcdr-%ND&N9jtJgi33|)#>kR70-U9maQn|ysI*e!qh(QQArl@%f$!u9E)TJEXGp@
+zTszsCXK!4SLR)2)|90}KsV{g>&XWNBWOAy0lx}d+rM}EB-C!9U_H{1)XRu?xY`W+*
+zFV#gx?1N*Xlv{q8#mUkoIF@D8%?Fwo`turc;>9j$$UnJfHdqAlys!K-Y~a{<C~wbT
+zbCyeamELiNnHJnI4GzrmB31vz1cqXmY|XR7Ka!1__RcJP32Fw9gmQB++f>#OQ2<$Z
+zSh5+8J>6#w&c}L7eI{gvs8_m~d#!oqr#H(e-sR5p^-Ss4Vu{PBR9`mwL!6h~emOk+
+zA$9XJ@$m4ODa4HWBkLNAu1HWLdOvyVjAdfu1$9YvP2W^#zq7{B1!C_I0s0dSBcKNE
+z8zp6F=bJdq8Ud!*(-KnSqhI}$IBpvdt?SmRh^u+%aC$WWG?%&gv0+40WRcuXMLn$9
+zIthqTa(lXT{TaJ@6fUIQAP+Xm%D=<<e6xaFoTw2PAzGJw>dL2}ar7`AlpDNZ<Uq0~
+zfLjH{5o{ly1FRnWwtj=*$+G-U*tI3X6=S)eg-aesZP-ln>2soD><)_k<8rqc0zYU4
+z7VMO>iC)VQ7W$3qwK>xRz@}^el2@W^E|za|y2Q3ccYE4XfK#5WwxuXtXEOwKHZS&=
+zb#5G_>3-Lp8t$f;-o$PvyhM8e6K#cms>s=gy|ULVBn%;GW`}(180}sVyjY-=2g=M>
+zPx00{D%9yjTcFLJI@__JQ*w5h4K);ULw_@$KW&M9?!I>QL(9B`uc>hG2!Ap}M2!A1
+z{~hL5g7jLk=Cst#Ga!kHNc(~B?27Ik(R^3F_+)&NtM5W|x&@=#@-XG>bb_EYfPo*g
+zhAO7tXW1LzlJ`|+O1kbaCO27~3GiTU2R3XB)bwlKOTj-|AN63ty_NDiHsg_D@AV_W
+zDt0&4Y+es|wVzl_Z2g1GSCZY0!%A;>HDeKy>9xBC!R)9f0Ap(V8Sez-fq&hjD(EYB
+zUQ3$RA%CwSp6t8JvDX7>`~*&RkvmP)XFO_&YChQy0jtA$TA5t`E-0K<pPoHFZCxn@
+zf$tNMkHSBVkW4oFWJ90!NhVJvc9Dfh;VQ^!`d2~CiIoAfuWe7xa}|<;QUiPAW%x+m
+zf;R>)dmOpcBD;z}NOec126=n;BjKEjni@OmOenUOU(9xNBRzr}U)fDuf(@GOjW_P2
+z?g2X7%B3pt>XzhRmClDM6-e1v@KkdtQqNj-aog=3FnMgyq`gJ{5rfEj!jwg=0>dCM
+z4Q-=R9;v9{i`dbiGc4am=&wH>$P0U|<dLfCk4(q~&hGW3?G{XjMARu>qzh*!oR+^t
+zMV!Xy-~pfzTJ2likNOVNyRw;xhG<ByBIjNv^k4kT<jzs_qCiD)0K(;7%S+ABA;}4#
+zE{5(n7(Uf>H|X%AT*kmOWeMlsx`S8=cb3~iCtmdcw8H##Wlx~J@BGv?W)h!Z-xC6D
+z72F_RD@wyAkv)9rd_HrsWy(Bc<l}I3tsD&XcmYQ8>R!%IoaV(0SM4uTy=s1T&uhBJ
+z^Q4sTYcHpFe7_BU3?keBti3hDl=;f_FQs>hMj42MT*ItzK|_qB2Dsb}!Eg^`P7}#d
+zMw#w7uDuj`eSt&N^gB;+7x$<epq*BoL#ST_h=mzIAL^ekmxlG~k`b(^KinVVy6^lx
+zRDuV7B93s8n9k^+3sy?))(j6Onw*j)v2Vg7Q;>f?o7j9pdO_GtCa*tWkZyLhtj2U-
+z7)TnA12_6joqfHmk#eRD66wm2?k`q#_tM=gW-{Uj`&RY8U~_P&5g4cRaK7hB1d<;>
+z=&Z0rU!~4#|Hy@|n(J|&g|@sgF?c&LpVqMR+*0uWJ`AIoYIP-i9$OlgCPfd+M>5ym
+z4*1qNU7M-7;*k^IFsS;}l9XBJv=?mogmJzy#%;jwp2u`#gGy3^yQXEs7?{^%>$#=U
+zXy)Iy13Gn1S7&N&c$j}`s4IL(9LZGFeEWa5%gl2U+-yyxzxEalsvC)_AUTyVodHwf
+zZs!`xSxzC&)|SKWZwI<Z(6N6<yI9-cC*(F6ECBH)BZ=nCaSjh|qDy_vtH~Any*4i}
+z<terY5Ot9gt3dvm@_br$+q0QuSF8tKb?mOHz^<$Ye;rB`h5WD(C9$-Ze7vzgS(amE
+z+sl1T89dB^63;6{ndbD;XUXa_rK~)mtR7EF)8{&Ye+pI@5E3N;dYab4cUr!63HHeu
+zMSm+$xa!ac`_W(<__1N{2@a4qLVA1=D&qn6c#4x!eToyy)yeIiJczB!@lZ8!2kuJx
+z-(2UIW*^o-&pd$uJ;ix4d>>9WR~Hyi!a!fFmNeMKt!BjB{3Y~XH?H)kDetVPtp9Kp
+z^!*!+*;2}+sPXCGSc@E2xs(JIe&Dw|FS<ln1OKV@U7w#|z14<A{)FuQY1K0ii`ty=
+zi_Dje8%(5on3OvWN}Be{SGdx$lLsMxvbonQOTB6rRY|9Ej!HAeZDDABOvAWM&sLpN
+zV3W}kqLB;h#)AnJJIq*sJ@fNCl4{-U3`};Us?2U*bL=RAArS37qM-+_);jNf67&MX
+zu)1{%8sX3tjOvT}6{^EVyj3eLkYXhNB+#SNWp2yG(Kq2L3sAB<xaNQ6Hp6X$y&u9N
+zFXpT@(k_Lwufv>wRRm<$^l@C!jmkCRD<d9$Y2e-P8-bj2xk=ygg}(4*{A#T~RSBhk
+zUwaYo$?qzx#cq6a-=b#*#&gQ?IR|Xw{Gk6PV=D0(YFJ^ic;wNfV_smTd-cfMH%zrU
+zJKx>2dhdwU4;vKbk9^d>zk>7|)aOQo9uOGG_br!(fh~(omEIfK*50!wy}sKJ#BC8J
+z<V%zNn}u1TNc!6Eb@N0+11n}lJReat`dn1;)wec4IWfFqR64Qj<m<`Od%$MfXT_`t
+zu>WT8H@Wx?h!9P1yzQxb{5NCt!7F+(N`52K1te;XsTE#tw7Ki>WH2%Z9UZbRog%vp
+zvW~S>W=eN19GrmhU{Y#Fj9tpJbS&Qn`Tw#Zz%871G-*fjnSS>tY)kN5`Tb2lEO6y(
+zt%kuF5#)N$A3amA$3Y0&LoM4cJ#=nj+(0-v>uu-w+fL^?yV`e=h!jO@adVj1{6Oun
+zNlA6I6UdM}*mZgU<NnFwfd1b$clJo~su>u)sW+2bF%R~1$dY3W7*N;>G!=XuuFYo{
+zZie;J$>E%Ny{bypb)USn&QQ%&nWCx03F_E5YVFDY9wo9V#TL|{OOx7`;dZGQ+D?{U
+zSaL-2#Po&)?HSkDIPax8Ap=71TnkG(`L^%cEt;6z;)!XmvEg0&f9I!X2&Som{475w
+z_-kJ;=#sfq{GNFj=2Hb%duT>0xhwE<^PE3?DpLBS0BPM9I<1Pr9?oNQS5+I-2SSrG
+z`emt!E#$UZ^FCR0M+;fwzdd<1So~9%GS8tE&uVky(>C##FtS{4D6ltl{6D(!lk-sJ
+z)pmu|_N^3FQ8iFlnOtqqSF6t76wiw~(K$eip3y3g3l08|aL*&hd@M8PEz@e_{nf^F
+zAxwr^L8$m@i*Ij`S7a+!WUD;$q3zXGRHM3Jg1TTH3&ne^_~H;7OluhA_tO2>qmRGp
+z;f1wzETQ4a|M&NJfS+1AXVjHIS|6^0>7{E(U(ve_CBBE~4X^F*(8bD=MGCa=FLeCi
+zQYAr|2~J)liiBy!)b(*+n~@$H5u2pcEQpN3ZeX)l9woUQTp^jCIS;-RfMM@(>(&i>
+z{qgEgPE3fB4?${JHC8t8&OGo~S7&x_oES>44_(bm-{_dW0+Dr${@9AU4G~Xw)0!ZN
+zjXUugmKIiHm!^NT&A-Q^#<34SCvV~dn$E?cs!4}-(7BFd`XtujK41*HV(#Q{UAeSz
+z;q}>%73ov;k1AD{m7%vio>6Y1Ypjw1P#OJ6pq@rxegfC7MwdZBfQg7HI31?^P6E@l
+zhtBCI{K*EcBUYxF2h5v>xm&nl%D=7dj@~i5HDaxbR<oR(;hk}f49VeeL6xCpoJCbm
+zA^X;9b9KoV(D7&R%*pALA?z+QS}N_E^_4x*>e|=y`eV9J#Emx%(o1iT-Ef?Mx-1eU
+z^~8_5-~CfLEseR>F7EXVnwU`DT_5c}Q{Cx>o|g8C@1ClYAdW^P#X2M|9Kz6hhw^XH
+z!@QyHZh_3(v14?1_-etIU0E&Kt{}by{%?P9ViTIY#*>`906a>B3RUt~Ns^?7eebLP
+zw&RQK^IEc){crLnn)?`GB~WF~&t>I+3yL-9aIa>;YKiY)4P^7ZrS5w8$ErSBJy4m{
+zx8906Rv7c7vgnB}!l}H9ffY;vy{DrN*f5dxvx+3EM;f*JEi5Rfp`{>iFn8@DhzzLW
+z8UT_CrDQ*s@u>lZT)s+vW+IvElIJF9j!4WlFm4lez>AmK1THrHN|ZoZ!sFSQ<o^UI
+ziTry0fZ{v2SE%nel%K}PQd4+Xy&T*daC$2+ak{Tt^UvndaEQ+=YWs~PHQ4-|zOH*c
+z@)M|xCWD4{z#23tA4gg3odc18VULF|+v2V$+T9XN%)?)4vpZ7!7c*t?FJIOtlmJdD
+zaIv8>jj3y}?r%0tRW@wC?!f9!<*+BB?T2{O>h!%Ghk98O^;N~L!0~-cV(U~BS3F#=
+zxvhtk(3^7$3Rb?L63&2h!woy9cZq_y+dt<m9_6?sx;zZI(WhCGmn8pq%fOyK!&)q{
+z;5B3Y>ijCSptxTpPD!_a5$5#3LE1nXhctal$%0LUSj@ZWmtaOZ@=RZ8ULg<ceD9gL
+zty5{Zs}l%m@o!$hH$3zxloBM)NUkZ8ID9t6d}h!)-!Q}vF9QpDLWNx9W@K^S6XBuv
+z*Uy1*2$j7Fm)bHRa4yf`7TIdc{Xtj2*&WyFnt;U650g2?;f7|u%S>rDJ3clK@?|~m
+zjtc=Fq`ro8y>Yjtc5KG>YyKLP-5JsP2s!<4@40(ep62yc_(c$6DNRer{+N=TRa+cE
+zhhi^>cCrhjCh2o8)?6A~>w)Y(llHW!Dv!!2&zwGRWYEpxOBXsBOj}i3e^X<@*z#HH
+z$;7+RKVrk$Hg7O*3da7h{^^xG(!%lk6}UWwgK_?aaG5>xr$=9mxZT`K19yQk#MYGk
+z&F&8^9cJ&Ul*e97Pnnl=P!hMM5KCEql|pUsuAee*?Zy%GXh|-H=HulfE-!tcFo$^h
+zC<}$Q&W<u}P@SL6Wx{mNqtC#;=!v@<oCB<W=+`BfUuFgwB&MZ{4u-X3@AeGqT}cw8
+z&$WmII|E=Jj@L2mFfGvs?zyOI9@ZzeU9!dDY$K~ZHm=y>Rzyx_Cb#M>{Vv`Yw1+!<
+zY;o^x(JU($rKHSh$C(awiZB8*L)};9yG)Bsa;@Zm`^l*1*V~?<J6&)0q;I{1F?3Od
+zE3dUBZ;o2CC!ceyx4)=5PJHnlFcPy*|GZo*<WZ}fqfnQ57|&*P5sZpD6Pc1qBQ~@6
+z8Se8bw!A0{d*743FdhSH9?kGOd-mP!!}qi24)bCFJj~XfwTV#1T53G#B#d`8Cdu3X
+z^|p?lX4w#o(>4zKI$#X5j_>Npaa-gN=#QCr^qYo&S>|@3-aDM9qYzTyk$^!ieqQ0}
+zm1Lqb!FtX&>2-*8n3m<=?2q*eyL;zWw-$^!sH?cUtU4m(2n0E(jNEuYOT!pa=!RUG
+zDlSKUr%pwA%|*KvCqlf#8gLgow!Zw#*D$|nckAZ-G81agKZ@0>#QqrM^RR@3XN`bG
+zJ07$KJ**)D%Wi$HMm}njppCn1E)PT~ewO{B)xy@G873!lba2yM=AcO6xvkTng>Tb5
+z?dv9hXkNM$1#Gs9;MzQ@6Y^D&V<YB(o{>a$TFkPBoy=?ptQ3nI-;y1x3MFlQd+y5V
+z+~6*V+HCHtPKQ;np}xOT686Y)Q(n)ahdoMs&hAD^8D6chIxR17Y0XWw`tRh)5-iHe
+z-7Kw~<7j3tiznW9e9CLt{~M&C5$)6}v)XJFoa}c8lxM{;?BeKoUV0D#(olNq<Q~x2
+zm1{UD;tXjJ*aev24Z@DuEq|eGwlp|4!<QK<+5@xjpI|BjBXnPnPNy@|PuaiHdM?53
+zMub*AGRNU&f~>BYutE7&ln7^2*YK$;ueb5uLNh!8ue#p%^T|!xA6lL2v+|bhUOjE#
+z9{~wE;K4=y++(2})a(}n(?FWAnsQ|Hn;-6Jv-hocFU?i+d=GVzp}8H}iSI_EH*Kfw
+zo@Gi0a@rRLjR*f?Sx7eZYjBlF>h@p9%N7#Ezw{9Mh|kcp$j=KqnmoB5RdbId!hmHI
+z`*(R#Urds@CSl`TwUu$-W~d2?X%3MvyVW>@G?pmO8jvfd*Prr^KD*l3ARclHw$FB(
+zPmby6*^O+aV%Fc5aDd?OeMNmL<&#PUqQUv<$*UCeFC5Ue&a)p0Jw=jHO1yE5jMHo1
+z89xaRrs_y2u1D0@LO)nvj7N!IZbWhQnBo4dqHn(MU@6GlB9?xqs;tKsseIww$@NIX
+z#VU4s^fmr|Y(O7nXk9^W>edc-ZvUHqd|f0le^#W9^bP%bX(s&q@3K|`WG}<klci=i
+z^S=VOYBWToVAiy6Z}(f{Gtx=9b=BqNEm>{lY|GNQ#A4+5NQ|qy!QmZNzk4V3-08n^
+zVkhtKSlk=9xseD={FdRlEWHIf({?x^=39q}lA6Zvf#P9(rp@g{+YTAML81I@U)3d3
+zUE+bG$O{yo<$f?{Y$8f6IX!<<IcLK;DO2=sPQM&|uK2+Qk01IR;o*O`1ZSsUi5KFS
+zc(b$J%m@ss6sA~lNpC=$WcoJ@3xa(sWGe6ub8Ex53Bcl?yTM+nH0x=w^0X+zW@q6l
+zw|K_oX9IyvfuPfmP&qPSA~gVTCH(&Ya6pg074<q+pX9hXMz{CZI=?T=d>QR&Xx-*B
+z&XfH9G!@sIoAu`aQ!!mby~WbJ(jM;fZYOO!>;0|o9P*nOw`<cz*^(blR4JJQ>uFuc
+zsGOeN;NPFE@@HBbeEQVfV^#UnQ2s8Ib8znt+-r6=`1d+h{;^?W@;$_#Fsk!)_&(`?
+z!hUDWKo!5!?+tAq3@Q8krV!^9{9^|B5#+MUmi)hkjGi+5j!w<wCNaN>^KgC=?K?X@
+z<TBUEBxj9xOhV;X58>J*tIIov@ww39S>_n}uH*mhW+wO52QgkKdmHNN#rNA$ZyMJJ
+z(dKqs>zF}2i%fp2QRNTVRenGEki@;ah^--*h4dkG^ARWP^`hS^QD!O1WLm5I7}nwn
+z{O-o}PJGh%tj1>*KCQUE93RScE%+_G)6Uc`F{<j9*;V!bF215wJ{HHm74`}KO2OY)
+zkn1*$$`$zD>z)94^jvQR-nE*a><Ru>wCN6vZG1+5A#4SH$n*0{P=9<zy6}Q&Ozw57
+z{ACGMpNbj!Y<?N$$p;Pf>N*Cb4(i-Wr%RyzIjCc1R<&mio<DyU>2kZDz%#|V9}`z^
+zPXhO$*X|ic-E&aq`f%923vHi?I>XkJ1=D4`Q+2)*ZFm&@=tQ}h9IFJ!a;L~>SK#{n
+z_?<z$=4Ar~GtIN0i}IOt)z{o&@y>fW?un~hBQ@YhvO5J+D+>K*ir~;JCH8Tp0Ug$G
+zcFA~6(s9@sSIrk~U1iYoL(Xq~r6)k%ac`uKHCe@mF3mx<>EZu#M3(P`%u?&c6J0K4
+z`G|9c$Mf2W@5h?GlkcCw_h<0_)?MH!7t>E|GWYll`pUgf-fukNhuo*c4l#-QpVJ{a
+zOmKG0_sdzBy9+uxeP1tST*%pR`Mwx@uhYobCqxZ56Xtn_Y3e#@0}vlK)Tz!oCbMso
+zbe+E;o+R<;jHe2doL%%c&h5fJ+bj76+ohi&^z$3&=XT|HnZL&-on7UIFI!)TXS>}D
+z=J?Ax&rP|jY>F(m64yyvq_r0Im9Z(Hw-n}=F)hncPphV3Y#f!#L1W!1)NRf7mg_aK
+z3iCdQc~4=EBVxlyd!*+S)<LOXePl*&;cV31ox(aw5Tj;go@apFcy<ua_D`VSxoE>Y
+z)ZeV>cV0H2-^cyAMnJ#mJ#!7x?=wQb&8Q=w-+83#6vh=aoW?sz!zY4H(|C6?d7<@d
+zq1}hkulqS(>FYfc<3-v454hDM-LmhmgKo)-E8L8Uv6VTl{J%`Mpji`pFKrp}{?pz7
+z-LeekzNeIKD~PM4>GsXWYopua4nw!qe~)ex0o@K1;{DxjTM5nX5<9q@Co@l15BrNY
+z)iMTL@_V_^*EqJVPx_O1R){v0YrpPEc+Vu`dhvA^yxvyEA?@75^4!zSCfaB&&4sKE
+z(MQn!v;Rlly?E>$SiAnw-jM<AsrR(KuJ_dHe#M9vg8p}c&UsGyGmKTIb%N|u+&5P1
+zed^lL;=XQ_OY3q!rhkipy$t*DD$sl@*29~an*`5rZ|D>}sinCKML%3BxwuRx)1hfW
+z;)(t?TAbWTtS8j}QPkgzHO_UJ*3X_h;n}j1XTOHAS%r5pSIH91FL|AOB8B=GQ?eBG
+zEF(|g7(#ZU{3v<BjAU&LJYkjQ0jtrkIQH*&b$?-Nmi&Zqz`btBWqiA_5Bsct2irtk
+z0Bc7fZ0soT-1{QZ9{G&Z30`)B;$`+%u;yla+;2^bc4g{03m<NAxb|=KArC*+g7-yK
+z96;D~D90|$Ck@4;%F!S0b-ju4J$q$B?b{aarO6BJab8H-fc)@2K8JP=71emO*j2vv
+z-=Ex)Il=!J`az!iRgN?6r%@lV$Y?)d+sTt^z^A6+-Yo91>4l6Pt)&i+dTQT_@mh^B
+zSjDm!pTUIM|IMlN7f!oo^*|v6p22e>H6~rYnit}|V=OWsEE$iBA11zJg=y@TvE}?Q
+zM=*G%@?%js@r=Y}Zc^it1sEwdvA&=eweBy9&6RdOwxjO4QNj6Y$#TzM;qKS|M*sUs
+zQ)JeEdsW#tpZl`XJt?CFa^b31i<RX6wB?mS?;wuNprd6t%t;dC+xIGCloxp_CJu6E
+z;);-&xT5CQI^Ke7gnjuS*9o2>9ZLT*nY@~BWzQVb^Ac|UC-Uq9+6F4kgvyIJOj(BK
+z@kXZOcB8862Uur!;rZKbC2L9SjPrz_#ruYFEsOFSLLoO~JyU?3oj0;rla>j+>I8op
+zWjV-|<&cpbtkLONB|B1XWc<u5{3jMT{`<#Z-r~kbb7ubsYF77G)pK81ofwxBBZrX_
+zBajo%;q!w1wpwgevv8efPQ7Sb2z(4o;*<f@!?u<?I}2GOXzz|fx!dV-f1H%gRF@|*
+z)$~caQRwF-)whzeEGM}`Fz3B|pW6wZKcD9sJ(KVr>agWJmqvdlLEl)7HA5Sy6&mub
+z)A6Zcj8nTSc*Rz``!C=Z$KN|T@`^d+@1KEB^}+XBasOD{Hxrk;%nu>&#Cuk^R-K74
+zKH~@Ap~7<<H(!DGF0s`bWv-5>E4i?0r(ql<e<RO^F$Rv*(UO~kwoV6apj?h?d^(<6
+z<!G5k<LE_ZtSj7s-(h=aVU_TLK%QwURHI(zcyY)FjL+l?Vk2EdKdMvu^;kzS)=`Wv
+z$1jU_g{-Fv!B|K2SRY$5))UKx^;oNMzKH%a80ST~Rf(#4Cs|cL9si%y@8!I#N<!{&
+zyXYgbk9)@|t_Rdx3EAU3l)Ihn$|^k~0-k<5=4T1`(glnU;kk_Hv5RtlEEZ3Z=TRTW
+z$3Z>!%AOeT%b4&>^xwQtc*HgCpGWD3mU3Uf|A6i=PxWT&+L{k(+a76S3C4I6aRn->
+zjQx*|7MK5QwAh4?gU@x^=TL0OR`zMEzo!}uV>feFRMEzRHq|^_?MB7_Tb&zVKa#VK
+zB4}Wt;D01MLt*x~?{`eEW0sraS?+E4FZNhxg+IGC!}Ep5<UG`A6TK)nzX){cWz?mU
+z8|2)+$=c|zFchC(inT@C$UN}ArRe9b4=9X8$$OZ%N#Z+NwLJZ{kRf*SfL~5`H~Pz6
+z>fN*(za^id-feI6Nw-e_M!z|^(O-r!pC6(ePT9LQe^E&JP|-iEl{%4eX?}%qLcNj7
+z*2~#TWinr<^=mV+#v9kKJIC~E>d(}xkHK8tR-MWH2g<fpYh4**OWrz<I-^mgbmZ)>
+zq>poPo%A^u>tP<=eZefQm0uLN9~7H@k~gQO3oW=emwQL{34MmUG(Qvl`5fkFuGW{A
+zi%ydE;@7S($R2Dg&OZw|b{XoNl)TzyuK7sfX}KOvb$PbP*e!YNmz6E-v;9l#O}`a6
+zJ8FqMYC^{^k+Yvra<+;W8ke)Py&mNx%B1}N0g<yiMgEK=*SKyVXD7Q3X~S<t&Th%i
+zlz7KqVlOA}K-<$#`Z4glXclcKk+<ouQ)WG*<ZZl{e3AU3Y)sx(?Vuke$1LPNQ3zST
+zEKE}8i9M0bFAFiqwK11@Qo9VPTlbOsLRs=jRX6G)4`AKLPUz#;P5R35ob{;!<)F9=
+z`5Sc(nZ_xdrLs5rek=O^U(8>bkyxsI<fAE!wb%i#{Ys&QI-QYrTMVT?l5e7IIocU%
+zADG8^=iFo;ED+ym687*Ue$yv6WZwuLek0?c^0TntQMRP4(`;19bIp7X`{z=8=N`Gi
+zG+opFuty(S?%}5MWFcbLdOt_sXKJ}<0s6-J-(g(nMcfa2vszE^6E5ci^qO(=lou$A
+z5=&^a@P;qu&lLJtk~<yycMR(@ksx0(z{f7aTAkxf7yod`Myc~b1Hab$>LSVY!<aPs
+zSgu0*c8wNCTG5X3Y#O|$*QLF?PGoNt6S+dmzU7eZSIHRuw#2tQN%^Q}1$A5(`axFZ
+z&4?4%1+rG$`b9y_;Ub<5_wXKb#n491c1qr%RwWOy%}=rn`kMefGCzDc5wyESa>TRU
+z%v(2;dN5_fbhj6yuRF$p{A#7E_L+pk=Q}*wirC&^?4`k&QO72)=eSX4CU1L3`a-XC
+z?B4Mj#*Q|^>kl(_wR-HzCybro)|8CfU;l~Y_7uvr>U{}o>J-u-b(0lBUzc)UI|*{-
+z8Rd9C$BFVeF|~!C*d5+i&}Pb2&7jW@$@%UV^RZ0EydB?3BOhTuUDeNs^iym=Z<t1c
+z`8~A1E!?|$5~w4B{zjayNIx-`_}nOXpx0>~kb6ZZ-c5eZ^+F$oNDBKS*9+FkReGIF
+z(d&fqs4>ViWyCf^y{%&R#oXHT+rYapcj4^yn5T3<@fmrpV>mZ%tknIikT{MGk9{rY
+znY{CgFMin0Lwl%qkw0^<=J`h@WfrXCJ(`{)&ZdLk=dN`pmAo%vufce%c}?$%SZl`K
+zMLCpvms$tEmARd%W!jZ8_e(G)YdprX{HI<6D?z(6g;p-kT?<)gHRmh&e|Jn4meANQ
+z#GgXW!?(;5JMxX<=fl0F6@8&T5864IG(5>}vrXrmlc_V4UgvOchJ11Ybp+CM>Rj*F
+z(4$BXXG?q|ZM+K42Xcj+t-bg{abyR|tXi)0wgU7v$`%om=OJl#^_NCR%4R4ZZRTJw
+z-ArxL5E-I=j$2j#dz60$&y((MLRtEaq8}nFb4=-%PP>Z4@@IM0-s^?1uf{b-RZQDe
+z;?^4GesGmt0djJhHkBv#uzbw9!VNXCJxg=q|DkOvrF+<iAd3<QkGRvbG?r6<ztD|3
+zU%F>>gg8%)xZgP8{td)?!u?lXt`s>n4f%AXmQxu=z;o$Y$!-2U_Rql|IOi%4M%4KY
+z_RZfweo{WE)Wwg{xcU}8b=pspK8N((DQX?L+3NF%t^VNy%q!RF@{HJ#SoZD2N`sC-
+ztj+EIUv&9n=r@A$=b-$b^fh8MMR4uCxb}N}tr6FVr7;uN_Uda*xJE4eGjJ`huT58H
+zQTcb`+Hdul6JxmVw|<_RX>F4;Oximlx}S0TH~ujW`#C>vqMwzbyN>s>R_7CVlkRI#
+zWC+#A`U5(bF8XMt13!l>W8=`zEcj&Be^Go$<qR%g5%f{_FN)uP(3n($6N2CS#0ORN
+z>s8P%{g$WcKD~_Jo{s;h(|t+=eM%m#PmA)=*Vw0-x=-#4YToLCdHXwk+WEr4ecJJY
+z>XWVe^!N*^Pt$at9@Tx)XNLLhx=*E;7!|_L0~<$1Fft6tQoKh$H&d;v$vWOIKZdE1
+zRnH%zpRba$e&z2qUe7ZJ)x-ZG?Wa{*pNd7=p>#Ot0xITbsl<rU=6tNeB*-13>yC;a
+z?o#DvhW}B0KdkjTBfC?uME+bF%Z2CuCNisPJAL)2>*HQ^X?xi|+I5r<pVD=Bo$WVu
+z9|cbd<sn1t8*6_;m(4O3NwtM-Gj-d7XE>kZ@ns4Zt4fbyFh11V6fVj^*D8s*!16DZ
+zU<;{sDtw}2^|+~L)PKIaY^=UR?@7HHv*^VM^(rivB*t@nRQ%A4XJk*Koi8jl)K}P^
+z+$)SPF%)l)+ZofeduvR=LN!!uz1aShudevQK^}Q&%y);mW2l4ESGa2|t{|>)4aUc|
+zUu<C2+TU*sX9e${r02!ZF;VhfO^YE-+q$i4?6^1Bon!ht=Q$q4A##t!J@QNyYc%dB
+z9blpHjK5yu7kA3ISqi5rS4y`swoay+V}Fdoeayx6{Yp(6;%l9KVSMbRUCK{-%#YDg
+z?;CGhm+*v%KHPz?)Gu}ZMB>WuteHM)ru}f8;dIrHVVwk6Xjz3-!dQ3OAjH4jX%(C2
+zTQw%hTQ!b}!~@c&lKF3zbPzveOT=;fObHIj;1O_0s<aPi;6oYG-)ptcD8JW~_;HqN
+z43huV7$m}D&@K~oMKnKh#^;Xfd|z1mj)oM5iujlQS^HMLP~ua0M^@oNa{P$3$QVn~
+zG~<2x$8Z*tY|ovY8fVeaSX6As$`YK#uYX@*O#O0%c~R0{6g&le?J3hSw9Eg*xyaDh
+zZ7*>n>%OFLCy&$lY<UjDd&CDmM&CPe!oBp~%7ZWwGtX8Uo%oE!TjO1`zcV^AJ)vR<
+zr)dmd`hx|SS*yRVa{I7dXQ6Bm8+}KiQsu~*ed@DY6AFJ)@PE^Sb97&?#`q=fB<T3g
+zw9dH^H8&K37(L=~@$8HFa+bGpY;SVk^sg$HfnjVeG~#=UF(f$AY|D;fabzy>%rzz$
+z<)$)Yt-I{qMah@wFh`4%370u*%UM?$>q0&B`&v;LAB$dm$9`%MBeECrRRX^Q9LJE3
+z=|=t4CuyHi@znyK46AiFIlzPBx#N5J9Wvx`8cR@o?os}|k~?r=EuM=i++2wlR+vyI
+zr*NMBBz)zs5;HpAE7zEh^sA!``(FAG8B1&bsQt7J6(=}`??ahshsLC}1mjfkHoUtw
+zT*CAD`)}GmKP(uP=^F9l5nsM_KIcr%H|VpK>}QTo!Kq~5-wFDBFa1*!Y4IWd`LpVM
+zWvOLuB-v#JSX3_rzIOH%ke|E7*DhkISbD+c|KoVfhS9pvqkpBT{gCbcZN%%F%owUj
+z>ta{ge8Xb%g|6f(AKgL8Jqp(06K5@;$+8i)XOXl|$sr$wTtZy+Oqeki^vMkTz37L@
+zIwH>awR<4Tfj>wd^25E`)$t7F+D|^frB?B@;Gxz!|I@|d7|v{I9{1UQMt?tY>a+AK
+zl-Pw~uI)a_Km1%#<r!$wSh_pOd;682(-ZrYZzps-PjFw1KEEQ_<3>~TRlG&~!)B~f
+zK8p0Etd@L;nOueRwbT9R^O!U6{3v5rjV@1oR_VWpG7Fw(TP0_wYue|kT$70#u>L!U
+zxj&X?AOd-nK7{2Z{-f6&0FRssp7A_+<^t{$>mWC538|R*9QieQuVHog5qx6!#PPA5
+z4)WC=Vy~Y_yD_nzPgnjIjH@HBS90D0c~;36%*82nM3ub5c>fI(u(sC~B07#I;>7((
+z3D&m64;dSLEpLdg80}BvSlpT1n4Bh9)LRQ-dtD(YcQh<&gIJNy!zg#I7tXf1DxRaX
+zEq9IKO-n39qQrmwNO;pTHXVXD{qw`%O$WTYg1E?(J7+83-S2+k@Yu+|++UQuuff{q
+z*hchk@c%G>$Mo-z{v97LkL^2C4H=?#l9mJOoOPfR)lZgXJYKluH)B2{`nP4Zc{<)D
+zX9;Gly8e4THe<NC3FS{5ojAv|WmyU<)_#!lG~lc8Z4=y?i2fbJ?<qPDrpR{qeS%<K
+z4ER<;#aCJOt^RRZE)lF)!;o`n!B|5%)G6h{lmqQHpYm6L85^;`D>jXYeV4+FHL&ii
+z05ewBK`rw^zCO%Y;xVl|B4#Y{nj%NI|8~KGTkpq?aG#j5aolIjo^=GwSnH^mu}5xO
+zfEgPxzJvDN{SRZtMh?M@?JvQM?G?;e(rZLxJ`m$W&2>L`gStk{kI53Z&u7&&!2n^L
+z&`~jC`vo(W>phaa^@y0U5$m?YV#X4m`rN4t#xP?`*E-jEm0IKC*Uq>UUN0+I-%o37
+z!M~KO??C2L=giDiu#og)D&8P+s^AbP-qr8R8Y0it>qy~ct~)wj=7SsmE?y?qq1fw7
+z@iGG(#X#<@*Lnl@qyHhVnlVr?Og(q>C3CvQ@Du}V$L|#n)-fV>2bOnNRO=Wf<0z&7
+z%n=QG{9nlfKIFHoI#~V<#w+t%Oc`i(e^iYFX>Wg2%lBjPp8bBnn;T0oJR^*Cwc6BK
+zM!KyglIgDbqny#9d`iU-S<*+^J~P$F>Ste^P)78p)-_&Sl{5b!@vEEVOq2JY*Shg8
+z$@{U%H|#;5<wF|3kz@RX)S00V%ov7eMB*d1_>tsVDSJT6a6guN8zoPq=&s3(iM`!?
+zPT&6#=hbH1^+vh>znV|oOCN7svuwujcS)U$QD=<mZ;EP9M`L=3M-kJs_h!AW_?=_N
+zJ)GsZw#s#Wjlk9r(chK4n)U*04~2a^UXE)j8mwz0?TuYW*{G&hiD%b!#P$Eu@_!!N
+z#~0)^9u0Npp5tY$5$|rD*cU9x=S4h0^*c`9h~IJjoAUfvpTH}~7t5qy%oC}~>=PSB
+z%C$=HN~$$ZVNgbJViF5PUsW;vXoD@hC`TImgW$-th>t}?azLr)_G;ST**aybYo23n
+z)s)M4@`zy3@O-C+=j0k6hgi>o^B}l1uMJ;kV2r0)XcP9TJxzN5j2*&P2gZ2lIA0wY
+z!`BhM`nvFS21@XC))WM5{wVl5^vOKeJWud-%4Z~M!ZRR$Ou*TR*kQq1ideI~Kk9LN
+z4&z2VoMiQopLR$it@*NJpns7sS~t1#Bxjj>5_r}r*Evs%op9QWA^&|}P<%z=#=&#y
+zS_kAzev+*9&3hRO)qv~uI<IuC=6RRKLnB2i>M^%zv(DQ~o<5JVGWgOC(RYdM)go)0
+z&-`YpF~a(37r#gHQMS20*E{4u+QTD>HvfX;&;99)`@!1B9+Iz1ZSXH}`n-hQ=TYC8
+z<@EV;@SAzC8}NM^^a&f~o05HgBR-59dKcO@6J^*o+L~uU#*g7T&nn|d+MfITI=pWd
+z>SX?C`Xxq<WG!XpkhGQj*{w}Def5dtHvduPDBT4yX?LY@V1KcQu@=3b`9?X;Nu3Xl
+z`ag4*Tqpj1nRVdBJxQHILSp$r=hL!%UNhP@C*9{Au$cFaaYg70V}8&l8~>ZKXkQxr
+z!EXnjr$0YBVp>B5lh{VB8~nP|X7II(m}|5$W^eM791qM<Bzcn9zc4=ji&deKxejq5
+zH^~?<9y=~$w@uDPW0G&KPxd&*by*k>nMd(EOv=8=JlbcX4xY(28^4MEOmqP^|5G``
+z&^QJ7{Rn<f4|0kci)Fsa`!C~sqpi$^WAT2f)1^PdieFV4t9Ol$rLu=8*<10+&tmQ}
+zXK+0<(dOhVklY@otz*Y5WiO5hpH_Az+OMo%RvIsXP#HVVI_F?sUb=P2AB#)1#8#T0
+zW%PxVe3i*pW^QsBSH}1<8=nu#x?C*xnm}6)&nnWH>UqL1x;^GKufsJ9^YdxUOUNE7
+zgg7q=&dY%Kjh`>Pag!fSY<BCC8+_)#kUW*GeSUvcK%1Ln9)h{yd~kl$oap%geV(c3
+zB%<lll02w9%TLxS8$~jII_HWsuJMQsXK)OIqDkVd6z=^Q_&rC*@kg|MW<PBN`2Gip
+zQ={zahAIC%igA6{=M`^gDY2{lL9o-eLFc*JB_81If}_4TAGUhjiDUL1#vJf05VRg{
+z?P0#y{J-=3UgoSvctcfSd$ma`1O71XFExhzr6{vh&InNsWlhw-6zwSd`{>AAp`{-8
+zYbcvQSz@m{6Utsm90HWR_vuPw59ne#J_ZyZ=CUQ-4g74hn0kD)*o+TpFoFO3KXB@^
+zvD1hAhT%Ss{E~iJlB*`2$sPC{#=`0^Ja_Go+Viptyd|Vn$jE^Yn9doTPta$r^(J>F
+z{?D?j829L1By_bz=ql+{MW;Dcv^$v@@L<MW%uTCz?f#s`@W6Ur;xNZrw>t-A>yiV4
+zmwy5M3lb;zF-OG$lRr)~l;7LSm7x*Rx9wbrb-&S{Yh5U3ZH&K^^$xxl(e@wB_ww`$
+zr<{0-mct^(0>LmVll*B5YNJA93q&WID?W0|-3I#CT~8V!uHS;%mxP8E2tU|~x%lSi
+z4y7C7!6nfywzCQS`32e<w6l~yHEF+%QvTFrU+A$fXK9(1xpe1BeAdHz7`wvwf5|_T
+zT`M%PMCfbnLG<-L(ig_?+r^1z)G7}q^Fv<E-07eh$vKx?>(bXG0{TfkRcQ?F1i!-n
+z7-%S<pH-ll6`Fo{);UM=5G|A#YVs@UK0HSueJ;~uLY*t3b$#Z6ehlpj&Yt7)-d>mI
+zl&L2wjeDO2t2<8RGB<7;@)!T^LmuN@4R@gz@GfUYpFjP<J{51s{G`L+Gx)tp<8D3<
+zdY+jB-=Es&pZmE9d%ZCrd|@v4k#xVT<GR$K{}Dc$yxFhPdfKTWW2B1tN)yWFI1TS?
+zy0%aJT9;xT>)+Ss1-vXWoA#}V{H)9Uz?43(!dCV@&SO(G^P7&-pP9Ux_>hx>nC5ah
+z^IM!F-u28GjKAIBE1rFQ^cvCI=>xDpeA6QqF;_FSrco>B9|7$~H0?5Gf&EzgyC8?C
+z*eu5EoPUvhY(CFID!CqCUO9n&lZx+k&lu-h^EF-FF$HvGD4B_4$npC&W!l8eetA;q
+ze3$;MI5P9WZT^DOnA0i1(cHQ>Y_#v?xP<#VUC1N;wCX;8(fj+n`nU9XEwlUlnV7St
+z);^DNP9yFU-^3hNdBi#XuU3R44!X|TCTocC&=r!erBCFY_%QyLjCWLQ6jw`LbNXOD
+zCwjM<gKvq>ug0EnLK&=)4Cpa4fv+yZn5?;LbVSZKT<}@usYcnA_`PyM*<O_W63X&?
+zqlG%`g!^r{|5@ChC%NEz#OHht^ME-)F0k>kX_Q@#vajr@G@7w4nx9beLnqeXPJA->
+zG+?c8T_*IJyo)>?YiAMG%_@xl;|qr5ypXvWBsX0~>Bq!7Sgz%9(75Em;JhvRT@a7H
+z#aB41#5zrQ(=jhIvBu_L9dP|M<2TE{$1jeoIDJUtI1Cl8Ua5GwIo#=%uD8z%b_dtn
+zl04-j$`%z8kEievWPP>u`CXXbh3_9<TNBq+l|yWVOpY`}TpO9^8RP3J>@25mTkhQ1
+zf{P>a`!%H78QcTT^}_a`U}aM0Ja~=uM3;ySYYx`fQnkkHrNsV+4pJ*;v1J&?a${+2
+zg{-lqdF=I-D^1V<*2qeUE9i2W7n;}yYv>d5EuNh%J!sv1O=OPXT1c)jMtmmfXqdPL
+z6K?)y`fG3vX1m-CVsF~we*kNWa`Ie^*)+_<0*u!}T#I3?G-cG<p{@YlsMgJ`eg0_}
+z*E)?KAigMRHI{;<-rpy7i$<&|8PBO|-GrQL^jLNtv~IpnJ&gJ(Wv9fP5XNDjI_v8?
+zNcZ{5TNIxl#{Dv(_b&I}w5-GP&4hLEn0*O4;$0Xs$~TfnX2Shd7?;~|fBVlXjmLjc
+zDRln|=^me9T(k8)705R3gtc(b<!UWRPTdJ>;qrgNTF4m2NDJ43t=7WrpH=b`byXv|
+z&JSTt)EOIPJ$#z`Pp}@6oBi{+9<UaoC2QfKSZHLyQPx7R1~_+|%QFwR$0U{?W{+7S
+z{hdhvi^k~x&^;zzvd2{DJ?49$iRGaG<)F{yLjP+pS8Fg=Ys9zh-9rBd?>l$sedp_%
+z<}dl|p)@}<M)Pajn@eb(G(At#JbA=|2{hlRX+ElH{xh*d_X>^^X}^^2&pc?axJK<2
+ziGykWKTGxs(){<vXkKB$g!S2J?#-n6jsDs(nqT8~9zyfu<3t|+$2%v|{P_LrDF5UB
+zy^mEI*`FzzZ~XaaF^<puxHfG9&6EEdI>u$Xw!!K1gG$q$@4a2y;CM}ZHZaE_=Jy1j
+ztJk@9O+5c5Z37G?lnu3B<rS9y7W3<7^|_bEZ3*ife08{IX)LCg<QbeV=W1eG)X)5{
+zwr2;nHTu$s?~cmJCvgHVs=OG?i#B$a75IgPCipu=oZ+!Ebvbi@Tso};gZZJ)fW{L2
+zf+eTU_K9=R=MNd<a_G!Qm5)S|_KRTdo_p|IB-vkx;W^0}pX~G3<Cz$q5qmYBnfR`6
+z9N}H-&GC0V{*y!Bb@O4~)n$&qYv3n`zN_~L?^+!ie^=@-@A~p#-u3Cw_`9YZ=3Unw
+z;axuskH71{j}Lv<6^D7({o(O<-H&JJ)6i%uOh?)lF2XakFNpsGXn?tXKU8My>;AE7
+zS80Bw3qNykex-9!Zs}p_oPC%&cOPTyYd%b!XHBSc2g=0`Q|I)<)cM3DW1suTp><B3
+zQ0Grj?jDrm{?tgD&ABKGd6zz;vaS+0x#CODoHzD5|3{Q%AP3h$zBQFjExCN}c>e}j
+z4^6lhY2EfT*4*ylGlu-=XD0d%W%7-|Ie+U~u@mxL55G_OU%#w<Ipho&ZT`0809u%T
+zAO62XY{fr_#*Dste4@B-I=Hq(>-U%7{dHs5IoLll8M88-3CFBVc!+I7dzwztxe1-8
+zR9-mx{&7!Rx4!T(v7KE^J9aI`wi-G_wUz3tr~Gyi{h5iaqh+!x#wp9$qdM1#B)%s$
+z0p+)IF|oNS9b=AHf%?G~dx#~4a(9*)AEn*@Y~lk|NbH8rp{(K!H?Y3JvbWOVwvv3u
+z!d_C4vzs4?y(2~(CyYy0`!aLvn%=9%E~4cfUaNY)Ir1(e;nA0e_>6BA9=y%BvT9z9
+zWJf(^ka~^9WSuzVZ@E_4)Oi0yhxYSyA!I`CG~F<<dCcT0+FH-xSX;)DS{+M~4_R|-
+zJ|!3p3Jb3;(<iasF`=RP`Opm1F~be(d~RpQ0*oT#sv4eIeUaDz5(lZuGpE$&<Q$Ou
+z<>fAIV;Jbi=og~=NwDUvc7KJ8fuf)P2K_7%U!+WU66QMwI+6Te5~s5{x>KKv#nO;P
+zF^<gJ%jY6SouAdu{;%Xitn*1zl6Nl4_s^014ofhWNwKxA7aJsTDH%&!bi&@NDF1HE
+zar5wc!K^ZjOY)3otIPKJXNoWAHeYa^jZ1Rnpvfv@oGw4AaTUu`8I$(?@{~TaO@3c&
+zPLsrjah_L&y}iO%NPEu~wwvqs>$B9n2fw+$^}SEcJL&HC#o}(kb21cO73J=hvf@ak
+z#F2>)Ql9H?Cff#@I*oXt+bfM_;0KW_MvJR1A1&VdFuuE|`r<?6sJu@vj24C08XAv@
+zd}HU|;T!+)I`~E}*6CkbUmM@}-g^(vH-7vY_{KubH!eB~-{@nz(H`R{eB(n$;Tz}w
+ze=y%TZq}iE<JI>b%r}lZ0^i^s`e~kT>NU%?yy-AJqOOETTr+`3+!3sMJ@$~r%r3zf
+z<+@ujzU~98L9Tnd!(Uyp?w@$?q3hl+S@*x2u<n0bvhE*x?-AC$6|DO<S@)@<tosif
+zVcnm1g!TT(e_*}e`JO}9`?~iYeZ4P<9=hH?sCiOGpB*)}9_qt;lI98I4bS{nr7``%
+zah{NU;833M$^@P;9ru==H{{2${*y)tPmp$yC-nObro=_%1z(UllX3AFU$}FOFI=3D
+z_iuZ;3VgvjbI5=G(-ZhYA|rNv`Yn^LrUyKt|9bF<oBbrl>aJO(JmTgt9<fXFi1&=~
+zi2saQ;1N~{kGNQP#Knxyp4=$?Nan+g$sWd>W-zCi?>`Y6rf$ez)kOPKr`u~PtlkyP
+zLxP{tTfGjlS-&5*pOn10j8%+ZyP*&^`u0+nd{X?HF3C*-@2E&+s<D1}zBKu9#@>Lg
+zh=~~R52J*CNWP@R_l1AFN%Z1N<P6Hml7B4C{}HrVX)G0=@N&@89K$$e%OfYd&kJAp
+zPr+}rvWhPd3nVG)0{W1qv*0(+{r-Y6d{;K%F-|8+UtQ8vl6IYs<|+~ylerql_Vtv)
+z9AsNofNxr;hw?=Grvv$7zLG6wLuGaNfqXDKQ`;x}<BOVqTnzqkaqY*1e_WgoWj|Q+
+zAm;*m2*y9xh<)T%iAhm&!n#;TP+!DYlEd2XSxP-o^A}TWe_sHN?)3zV2)w72SP!6`
+z2T#l7Y|v#B=A*QKJj1iGRyK#jf(yI3uH7AUY&WjUFpk@7-Hg5N4mX$!=;)PI;L-OH
+zb5YL)bki-wJ8Y1>K-o3oC36}0S#!*X&sO9A4egu7Yn%1>b3SjCc>Qe>&q<$|W5qXS
+zo2)~|{L&6zC-(y^qi{Rl!82r@1MZY_f6na^o)?5)kl3tkf;R&7eGAL{On9tXKdWYG
+z9t(P(lqHY-&*;`M9(!|ilknJ^{TO(A8E9&w@V>=4@Ru!&r;p=ZF^xSbIc`e$dldXV
+zF7au&51CHsbD4bQ7(LecOZ58>l<?{2B_CtJr_+AG2Z+y9K_7l%(_nrUk;hr<B?iBg
+zZ@Z)5+xB{eX92z}JP7mun^DHvZ4;c=3aoL{9be~B&AU;*$$hP20`KNL(6&SV9n$>!
+zFBpTQ=GSMRJ-)62{ylZpIRAc5^KatzvL4!u_J+Z~F|PFAHe8G`#y3Bzc=K-jfAoiy
+zMjiO^H1OucGR2>l{P0lzeDh)WbL4RRIX%vwU)3^O<56U`ct-K&`@!paK6M!0Onh1G
+ze>cXPGd&)C={XMPy{D8nZyDpwKhnJU>@nVa-yyttk(S?RFK^VmC*Gei$)9Dv&Gv?V
+z#dd->H%;Kp4X=?m-z)s*qr#gjHE*U|_Z^9g<eEz!BG(<tmp^(CUsiJ6IA1;ue0gw;
+zFW=_}@*BrtdkJ5@^WBH?<#q2V;maD2obydPWEteiO7P|t;;RDQ<80ITE$#Je=MU(+
+zpvP^aVB4$&@AbX)hmqqh4CJ`%+?u;N?){n%_xJf<7hUgQ9x8Z}x;<Q5!bdS)1K^_r
+zR=c~AJXGHo9-0_%L&>kXk=F0ac^-4uQqJ8WJoEw?H~RZG9wbXI9vgFFke6#-nbPC*
+zBaQ#dYZvHo;<(>C#y=Mc|FjO`pDhyKRww-MVE!q&%^^cIppU{sbsbz2e;VVVE%XoU
+z*(dx{(fG9Yl*p*UKktkF#~A<I5*1rCXkTPhtnY6GJX7y&!ZSrCy=<Ik(&r?ru#tmx
+z)>OhXtKM@2o@oa>vwiHj<G2T=B=$&tf9eQ4^KYX{))hGyJd^zLrBNm4R$|>%jjg*(
+zc&g@=m0HfNd<}ALz!&$=Jd{uV>g+@1+)6Fyl23jmq~%;<OuJizPa5JcGvqJ(mkIK1
+z!p-wsd6(v+f5iW3->)=Q{or6e>VD@?KKktmd{lA~;{ILhp&t^rJ=?(?N*?*B(08lK
+zhZv{*ZMa>0LMr-ia*0pgH8qoSoZ0Bp!h9Fw53C<_g`5tTI3o_mo&HQ_vcsjm%kzGW
+z+3tz}SD*g3S&8Kl?C3Yi*$Vr|HP!9&-EqNj=#g>~6JFwvggSN`sZJMbjPmbpVv@0*
+zuzhoZ^o%;9k?QpYp2s9mcX>&C4(;UIQ9h>Qn6~|VbcBAzMiy<7v$q8~;`mpg4WJ3;
+zJMI$PALG)TireP-rLmi9Y0OX4YV+t19&&D!SeBQAI9q#zJ6m+nEkdv1soe$Tmz)ti
+zPQzCHyOTUCyHw)WLU`x7a=uWbam=`Xgv1Y<eg@BQ%-CPSf4{k)#$~DKmd1>Ag);03
+z8=_G+7zd7l@@p3V3XvOwzF&&IN9=(;6Z;-P8)9~M`*Cly-_`~feXcj{j+$_F_wndw
+z{WkiWCX_!N$KcBo`W!n-pMRtBZsqUP{~2GO9j-L)U}~7hw!A06rccyhUu1k7&yrFi
+z<K`&;Hnnc^xnG&tE8R2Ej}PK0)>GT8Fy+dO+ML<CwwCv3kDY@5R|ubyScY7PF$Jl9
+z-%QN&PJ3*0<eB+H{#kt1s8wfyRg3ZtX_7jikqKw3hoX!jxW9U+USZrX#+VJ(D=dvc
+z@Yx!{37gmko|Osqli<{Ldz=e}v6fjE0xxgEd_e!uG5EquC(C&%X^H1da!%MLF;tAr
+z36<64CD)AP3RiQ^zKs49G*3*RWS3{2)sbiWiNo`YV)3z<j>F@b=>7{H*xR{dbl*$h
+zL+7ked}wOGheRJ&IXoiHV9C67`&h>&V{OD&7jwb0ZWC>h__buFn!dYpjsCp>4k`2*
+z({$F>(l<5Sitnu*wGkU~F+Q!yA-@i5=c_XJ^Sp;o6dZy4ltkDIUDjU+NnR`+mxVdx
+zc+}`I4I9S^txs{{Uc~D5c>lko?-^-l9qR6ty)KRWo!pmsrn)cmO0j6ZLjThJ*WpuK
+z@*nDq;kgeF`Cs_mhZMFT<jrKF&u;-wTnagKiO8KB{C#C;59IgOR{G$s7rwh=2FhTa
+zuApp@+~Btadjsh69=%`CN0b;1r(%D3cZhQ1qCD=KMshHkLj5cBemy;;_8#)x=8)0j
+zpxi^a23aY;jQ%^rjI~)L`FadzvB(;f(*jw8dSoQ|L;ufWBO^xoHoqD&hm&HR7YTO#
+zGSlcG|D(N&asA7%S6h@%Y4dRw>A0oEV{uD@1)jXe59%PU<nzQ#hOGQj$$S2SzFx*0
+za!Oy2`@|k?b+`E{-`JAsPnpKqD@3ltT51JLYNgByStp&Tt`8BDO^w|i)V0iFyXMnw
+zRcm73Zl#=J%n$SX+e5?$zZtytdhb-8<yzk(o<cYzGP(Lqo*e99Cx?tJ%FpcL+{>nM
+zCwWoCI>)2z@n=)knfN(GoYQ?XJy)*(Rj{)z9<yg^Kh39tc*Gqu0^KC>9mo)OFEWk$
+zC`&BS`lQiMd*qV*DW>uruF5Fg%y4e;IR+}n6JvXfO36#%4ErlER+AK7#$@(?$5b^2
+z<yNM;yjs?g7qTyN#aAqoc6UtWIsMh{GMnWV<mcmEe1<fPjr6{lb(Kq;-;kBLwJg<!
+z@0Yo;SwnuA<VjwT>rVCg50)8^%|Es^|K^afyBqD=VfM+Mb6UuF%>CJrf9)UpybF)*
+z^FDW4pZDeu_c2~KUjzP72il+I_WAQbzs;cinV`?P**?D;w49`jm`=IO0T;5`9_mf^
+zQFnN_*Xny@rQP>PudDjj`JN$vQtRbz`W-|5Ko)gdnWw1hC_8p0ztZY^+CiOGs>7q+
+zvE1kr|Nl7F*1Ud>m9fvVj`QQraXxJ+%r74z-f%VJ8`@p+hcINB<yglb^%!HdINyc6
+z#7eF4P87TL@q%%*oO-^*#?EJ)bS~QZHkUa%r0&FVVq=!N6LY-fXuGPv*OeT(7=xk5
+zRGjH@L;2bfpNVZnz0p{IrrNY-hho(KK<CRX=!snWC2hgJKY1S8kMVjYYE&-A_|0VQ
+z5WJ6m)s!cD(MFb8O@H0_%1^ZO)#AwKF+Wk~Mt9DPTHlN<%(sM$Q_T3nylrI8XfQG-
+zfe)V%voj~1ak|ns=F+}mw+WsZafPW1Qcrf!_T?gjt9|jpM@L8I8RNfqV!qCQRQ2-{
+zSbrRc9d}dzzBGSxgnQPd`E1yzWI49qp)JL_+zmmdXB)$}V$7=P<9egZv18qpS+u*Y
+z(Vuf!t^db|Roy!u-1f-lkL`O1|DWc(#HXgSSa%Pb+1`ilazc;ne6a5k$|YBTUYFa-
+zwjD~WaEGJD?oRZvs<i`hz~cN@qQ+y}XQ;S_N5P}FW38k?L*>H?69<cO_dM1QdL!nw
+zU?xKU4r6SH!!b{6L7_cyg@Gr2a*$*0BX*_8XEPLb$vl^|p=2bkDVAlsKL3$EkA6)d
+z)PE-0n9#cCoT*{|u0$<yUmo0%+xE!$=*OOr=EK^bE+xKY%!A%8=O-5PR|s!dl(S6b
+zlYIjIkMYP1cvL16zLI%hWWVi^{h)IcdM0C@B@O^%gZ6&0I6AVVB##Sib?1TR6yNIb
+zQ;BV2ADC*Ym@~=(U(kMDtZR~^WK7z%uP$=VT8J+w_1qpIFH7dg=OLeMfX=fnmcpks
+zv+mx};uh*eV!vdp7siXa1o^X>?q09s%6lZ<U)#yPC3v=T1kbcXWPt%cc!sgV#D*r#
+zNK7s7;rdrbIaf>b<j)bEGn;vU$k)I6e$Kt(<ItTSl06eT4f$w4`oMPy7MHdIaX&i#
+zU1N42Lcif1qN7ZX828EdSHupG5IaC5*|YxAh|xp-H+&ZT+|KvN&*J8W0^3uUNO>k?
+zk;ZBz!zlV-9;OcW(ds^*vV@6#v#o5WykBI`jsBm{(y~OdE5zT9&37)~@Acn=?8r41
+zB5uutH-hiZ@xs<J@6D-BZxGMdIgPTf)i@o}fA+J^iA(<q%#Dooa_zBwHP=q*3(W$5
+znq~CW(<f~f*65DvZT|KdeNpO@DVys>@gC+;Iv)Jz3t}4@^iRWB{`afJE$_zv9r*wF
+ztB~p3OkVQ7K`u&xPi}uz*#QR698xk;qD^vn?M2@{fxfMP4Dc!Ze;;UjiIy8ahVfmB
+zXO>V#veJG)lOGlRazOeJLtFkGb*Owxtr91+O5%1Uug|^+#vzg%@GH~GmOwnQpPe->
+zueh%kdmN2vZW>?62l5nc0+Ckm?{v55xq)mJ$UJ4BRmeD7mbqMqml996GPw6$&KJf^
+z_GWEYzf#5cO5M9(Emr>gRiz{UUi;yG=>6A(Aa{kp7wYkeUVLm%O}Wuw+z2|k(NVNQ
+z`Zrx-UR;{nk?Zp-BlJJ`o*&3MFEGy(>N1>9)llXEP1Q%y&i}%@uEP7T!`zHuOqLmJ
+za}vCNiTOprgdap538~}rD8oLqmyFT1xYp{lX#3WZvHSy{L_eNEeWWq&X{XQV$TecD
+zNMBsTHD_gVyRa{ShWxq2rANIhP%r4#TWl-eh2E2fgzwm&Q0Fi_laV}qPP*_L;VsZf
+zt224NhwWq?m!OVSXxF>YcFR__#aQxQe;N2}EB5;{(BC(|rO%rQ+5K~nUoOP@Xf`OP
+zsQq*j#-<zfaDScWsyLY8zZFL??!M%?!+b6a8@rRBsb@|f@}D_zNNi?|D;qGd*04`F
+zs1N&;Z}oRbKC^kP%sVHsrg{1aTF#q%o+*T=8;LJ>uWLZ&+JJqO&&gSRc8yyl`ujXD
+zn0M@P+^4GXF+-rgomhY2tb8{GPZaXI)qlO$Kx}fOE;lLJ#GH<malVhTZ0cO-?ib~F
+zmLzy3SYtcp_c2%TZp%U$SIINnkIMuz=th@o`d`qlT@ov!Wmu!5{)?l;?c(pnxkk+6
+z=cn{}W@?^SHlxkG%c9INKR=JTSR?cEmIIl?$($5(Gbe@J%#0bencUW?7&p{67vm!s
+zk<OEa-VpbZD_mpv3fHW<B;Oh~9^)Q)gK6wO)49-_lC1R}J|~l#7B(hxf4%m<`@BfC
+zYA5lhi1jxM?cMV`=8~M_O#z)v*YY@c1LKn>Gp>(&xa4`6v9+N6A1f)Jl2;NlG-f1k
+zjZD4Ky^Fru+01RwExt>hXId9}<aKGQZ|`qG6Ys+qm=VSaqkoX4u>YL|-ZJBxvVL3g
+z=B#T%<xYoDIU`ej?xYUJ=b9lSUBmed8?v6G$4HKqt2`}_-#wZ9F+M+UyQmZ6MXVjj
+zpeNl;TPfPGnsK1SQn!c)qjdbcY7E%}et<nL4xSrNbbHg#uP<O;R*7G1Cch*&>rC|4
+zGf&1&jLYXSex?N)oZ9Q&WrX~l*lTXY`|tf$rEw-GYWV8WqK(h~D@Thn|8=xD??AD*
+z<JL-Jcv7*L#V2uWu}F<MwZ77b;d9ZVMT-LcdG1Y>MzMITVHhu6Cs+f{yoVrHJ%TZK
+zFl@ACKX_W-LlN#_j8k{gl2={h3Qu0{C^?C1BY`z5=N#xO<s-^Tl-CljYX2n2jCV0V
+zxFvG6PaNY)8`r=O@3PPF-WuarwRu6@W+&F>9E)cSE!cnDFk?77_4&j+Gc>~QT<84#
+zFn*V<Quf-n;s55!kZbgB@ZUZYb<XX`F~28hYD-ySz-9gpY`~{T&d<yT+shK2=}6*o
+zH>mr}pl%)Ka~FPZj)vR{)O8Z;o7s^I2lY7{T*fT1KEXInp4VRHbfm-1<!<GYt{m}v
+zrp?XdPDbA%dmqgi4Ugo$VusuS({%eMO#&Y>+)3^_*Nml4oHT8{`_5R#EhC0AV_+pG
+zY2x&dy&TutT*|SgdzFj1=%KBufpQ*W2~jT0wlF_8+ESM7b(wpBv1s!oKi)Qf4%Wie
+zKN}rU{z6+N-zseoa$n9zsbg*P@6V2ou#QH|*=q8P#8<?(T*VEv`Lr?4L%9U%sReJ2
+zgCE4Gi#sR!#E(>XT$kj}k^OK{p6kYTKaBO$7p4Ed8Cyhu2k1A8#`PP$Zq7W3*yrFg
+zJnMjt!Tb%v%c1kyPRg6)rXYtyHo=}b1MN7|NPE0~<{88!S2PwOJtb=VG-!wW75fyn
+z-JFseTl6_&SmK03;K#I?%uA^Lh^}G~w{|w_aeOoD=I)Z`798{(WBXSc<SpC$yFQZ6
+zk<U!YUgjyj^I<QD0gPZj`methN2Xw%)?-Yt!bG33hi~w<gO^jMxqxv1!zqdTBmWdV
+z2lr-!&nL*|z^e@hd>ZSC=jLY)f5}S^L(aswGA@(vq|Gqxs5$(__R*2FOL-6Pu|MUV
+zd3r~VW5}`Kxse%JG|uBO_F?cq`syTkwp=$wbPVd<8e=h^u2%f&2JF$no)Q;Za3;4D
+z<tZn}jc&@sF0u7i>hhS|F!+3};$_{Cb$TH`DtYktS}*Cw^SfRt?(3GbttGh|X~#)i
+z=xskOll$taO7EKDggvgMI=uH1$d<J{UpI}%LdFV@b`9dP2u`JOqf1?|&bh*)O`~_a
+z+MiiYpL6XN+#9re7W0eFXfLSzVZz5AqnyXFq%3>ptBU6iq}i^8`N8BizXk7{ZYmp}
+z$QG&0hWRG3sV`w%?vsX_c?xpc)2rORr@2Nr-*ZEU>aVL9kB<50TnipxCiB$UC@1?X
+z#xgpMcBBsX#A&3V<)CkM=6UiU_y}k!3Ynmt{sESX*{n1|BmB;@ApUN{?<Vx`6!59d
+zp^#h3`=aE1trv{*zSaxcqnh_s=yUWJi>9hCrGEd5uCEgHZ9;t$`CpX$5Bk>_|4W_U
+z9wq;?E_ci4uE|Z?o5?kS_f47x-Zyi5ZhbiJekB}s`%%|d!23e>2H}07N4L5sg7-xs
+zlSQfPVO~P+m2P0Wi->Lg;5f4~@h@Hq+R92U2l86V5>fEV-&2N$?h?;j3VH28m-BS0
+zmeEUj67y2n<x{9HGxoE`jJM=%3+uxg=S$7tFU%v$briOVdwcmI{OIHoe#G*tH2+yC
+zYvv-_Vrw;iQmrYuaW9q}UaK&+q`N8E%RTarRA9d$|48=v-+s9`a_lRLf7F)pkJ*ZU
+zd{KOiHo1+I-xwF@(#OTk$1-1WC#7z4vjKlGG=DMCE<C#e{N-1gpRCgS<f#&VLSC{8
+zZNKl~(UDbFz)vponoIbJ%K5Z}a*b&kb893|E#6IEt709o@mq4>H5<TdI$~C)1M=Lu
+zZ{glRW}Enhkk3~R^1LAJPM^QcpN=tmJAR+it>Tk;9`bY0Bfk^-g}*<H-!~g!H!_#>
+zxlrhobXZB+P9-#LFBCeg6xzN*e5?5EeRx*#Zzt97_efnK(pWAU6F#r%GWuQ7?NJx6
+z;d^_fkxt9mbn<eyY*hz+-X~L6Dy1dH9j$o#6v>V79-*bhhtSfyKpWE&0WIx3EG->J
+zT1t_YuJTx3=qN!Nxyn<Rke#)`UPF2*FWGNS0=;znP0>rdlwPh?^m0c)4_QqQ&{KHt
+ztDpzwuirzONPSYyhv_dJ&_kKFA)W<#P_%%yffm>{_T`tH^JX_s->ivq{vdr0rYaqV
+z@<!pAqVVQtK-bP?nD<*1k0fure^lw0J5Q&6+2bwFCcInFpC#H~;e&rGRxZK)rGc-$
+z-6pwq&PSPR-w%0Ys`Az3UO-Hl$N4Ukd_2kA(7TOyO!434e9~Kg?t|{bQ)as%r_DR(
+zuhdB|%3XVG-;-wRd0r%&d198)_jJ9sFEXz7+S4H8x^3V~^E^9sCCdno+APMw+h4(&
+z{fgk}pK)d;S94Z}>@gy*IqiZC^k?ibac7z2Am9E<@v+ZKTRTK=;WM0@A7MPE5XV2E
+z>@>97piN#dw|Bi%9EtypIKE%V-vC<MiN4Ia@=$#njIuJY0d^YWHo%DUy)oMx<g_h;
+zeP)Tht=>qs*Z&#g&@_FD=<)A7Ouf}wkDt{z#ozZ=+GY;kgVp{^-+~)m?!k{gr1oIZ
+zH|-T(2>K>vsX8O<pEz2S{h0QhBkjp=0xe9>@{I18gM39My<F^RZe1_73i?F1VtlGz
+zF7BhOM|&=HU7i_y2y@@~SMsQf^AY31nx)3J==V6+?*$E5pY%37_>fCIlCsx>Q_gV>
+z^G3JMF?`a*122;|e$tzQH9~po<5){+Jzkgo^<X|pduprh>tfU|0DVA$zcQ;snG8D2
+z=^u7!6I{UeQlG#aw1^KN{WH{Dyo|YMI9=Ik-lS}yTbM)e<G9D1-*2aW_=>{9ju@R@
+zOM>=@OzyLk4M7)EUo4J1PB}w(;X=t>&-3kFZ=O;wz6yyh?-Q>OOGC+TUo4K>WB!$x
+z6k{<nnQ-G<rpVd2{gx^9pTRxSJ!zbCO}r(UYsUH-9U^ZX_@ClIa@Jk17RTi*>h3do
+z51P~4sc-Y#68xOwbQb3LObdGu^t^jtRpYu`>m%HMCSzPFcioNWrZ`pJXRsb-S!(QS
+zA5v$<<Uwr1OE0TF?t14G|I5n`jW@as^?w+BI)M9z<>o_)a`5>w$hsSHk&jIAi`#!v
+z+jI)#&Yxt$$Nu>7+W1@BbC;j5?BtByAXXm7@;HoTNMSYSQ!kBw{}{e6eMw>C{{MY<
+zGP(cQ{{OqaJD=YE|GmCDk-md{cfM>~n-?rw(D9hxPEz^pScY-uzh&KgJbRhjfPTD_
+zzB}~sIP+lN9euAd@YxZ6o#Z_4+y_TTz6_c1tTUCr4)Mv-pk<z!>@bG>9fCu3vBXaO
+zU0<D&cm7`c>X?z*Jjb1wu-6$YCBI}STATm3gj*Y&fd#%acl=~j;@Lla#ROj(?MK5l
+z%N%h1p-=P;XWNfYX7az#vD_hNoCe|#l0OX!o=)h@4rzyynbSpluKRze`x5x5s_Xyv
+zX2~)c;Dsa_LzF?#qM|+^T2!pVqD4U+Hbtd23bwXI8<$%8leUu$A|@JkieN^?mRfCb
+z`L&d4J0P}}Qj3bMrL?}8;We1pme!53Wd7gpxp$ID2#dA-{eQoFKKJt`Z@J64=bm%!
+zIp>}eykGgPjK8YI-M#(jek;jd{8rwykL<USV;}CfGW;lhD?_sUR)%T6m51oJLi<Pj
+zU-Mg;Wq0>m`BG266>W3*xPB{_+eh$Q(J~|bR_>wSiqqY1rLXo|$@dtYHlOoR*KD3i
+zQ*o_}K%=$a%2Y3ZpPcbq31|FPp7Ucrk>$7YoS%NK8Tx%vmfy->dibrp{V)2hylH3o
+ztwdr^e};Z5So<@y%x5&$iQmfb-uzayf68HgE24wZek+v4>;*~sqrA!eh4x*^_FH)~
+zr2SSjtgbV=`n6H~R&J3Tb&&rb@keNrzsd32HO?oP*BblUx*TKcFyqeDS96Sw4dmIx
+zVV-~R7+Xi3)#C05Hzn7{o07YnrsSK3@>$^-vjFg(ek!yb*pM-44;qhe8_-YMdGew+
+zclxZ<MbVDc^b*HVC;s%Y*YCEQ-Y}|ecHX?O#eMV47PlGogSNd$yN)N+D0#>44mZ6N
+zcCvg{EakJ(7wc+t^BT$JDgG+f2`+tA=$k@Y3}f}tZ$kN&)Qazl54`+)zdwrKN+{#E
+zGNsdRrS&8Dt^9q{$M;(qt^HPZXup*T?YClUzZL4j`A%b&-^xpe((R6;{8l2i@>>~p
+z48N7}NAOz-_wZX;^Rtfj(OG^gyYOt~&(t_C(S9p$u2+65PiViD*Sv=K0PT|e0%Me~
+zigmLS#uyyn65$qz*GWzm*6p|JoJh3XjZ_x7V}7FQ-W6Z-62`O{*Ea~y;GhRO{Z?$-
+z^U|(((@Q+}G|FQ<ajT{LR?P4mr#Z`SrBub3e0>M-Y#s{t(536|P0m~2Br(=Uao?`@
+z4UE%rGscDXy7{z7{&w__^0V@3X~g<z6rYySj`C^gdkmiz*`HX^!+cr@i;Pc8DRq?E
+zrzH~dy0-RddDB_*QnAO_`HV-?=+KS5`m`LRzC-hmgF4P&E`3_GFWZrPTE32bB>h=(
+zb=)}mw7m2|M|(!UobhQnpFS-@)9PIAQ9NVFdqoGBVy*$|a&~LklRBJCedOs+f1vzY
+zs<mIs6WXuk;%vW`i1KS$|55x}BFeAju};61Yf^U{r(er*@oTvzMLKz0el3wplcb9c
+zNAPR8>70+?*Aia1csBi7FkidRqhHIVN#?1bUkm2jJuyPRmU`{ia#g2ai&;4#X^5}F
+zHK`q-gKvW7ps}sHfEyml5~zp!k|gkDht_qLkEl)f(08l>_f-#lUzCr>dAh&8aGi(u
+zy82ePxIL}>6|TWM_+Rusf6nqt`JMJlc@x(iz4)bU(|#$z9)2lf&ryCUw`jkVlj)bD
+z<${@^H6=5wH6=!<x`ca(FJ}3p1n^zP52aE2p`3ICKa?}h$&x=lt{;kCJK26Hg@jur
+z{fFs?GVL%wls{u%`+KotUz2)O+uc54f6;?^EkW^LY#iMOg>&i=AC%{M_@GSh^g)5F
+zSwi`1oAyCz#5|<wgQES{=!3GLhYw1v_CZOU-36a-9Ki==F2=Ao%Qs}l*~&NMM*4>6
+zbDQED0-UM>AG#j>SZ_l<06lvXasqXI<W*kn6GGl$<Gl*-D)Ot74yN0Q=NZ3{RrCv?
+zZ`26vF;0aXz<h#O4?Hgx2A-29XM93NW1nLlhfhe~xT57feL^zx0RGX<CuEoX@qI$x
+zj2zo1WY5pEPe?{SH0ny8=wOUp<r6X$ywkC|d_wHw@CjL}eL}_`!6zgN-txZJ*h(Jr
+zxCtJZ<r8wX*C-=@+Tmn;LZXysAn(T#qkxN_{au$&$a?#5pODc<@Cl(jlI;^>XZeJT
+z>fsYI0r<c@$!$mQ3wc%6)AUrx?(z$vPslQ(wm;{SJ|UdbGsGw4mZX+-pB{G%pOC6v
+zd_q1EP&U&yGd>}e$|vM~;KBHCi<{BY8kG-}j6r{QQKpG^`GeSo$K9p$XKluPfo{Ga
+zbG0uB{Xh&O{>^M(5c+@|{Bpq9aa+K65@p_P%onEirs?!Ijf^kI=qz85CqqZ~1)+Sw
+zH8CN}7ld*J<%@ZY=jf=u(-*|<#TSHh$?nA$g!cSNJ$yl;+F#?B`^@%emM=*7pXSH*
+z1<BO?Or~z_3vveP{=e!A!ZjDxKIpqQAMOhx&$E0%F4)lJ3(|N5Ul8hqC!n6^tRwq^
+z+^l&L*9&cB;5YtR+85+&$M6LipXCc8^gGKJq?Gai=*88Pv9o+ZXh$cG(HF!H_jl*f
+z$Im`KUy#vZHJ*>^3o@^VFUY7~d_m4SplD76>on&mwt$jhN4Ew16Lf+$0A&wg&h1!Y
+zyQORar|eC)Z?}8c0>%$4c^2}Iud+T#ztLRdUhcb|*bz~_2xn-UAZa!4od$j~f%Mc;
+zz9(G2jIW*9$8a9$dy?79%+tOn=RV)jJ`Zz5IWXgU@}~TMWZ#oI?RygI#rFh+T<GHB
+zUVKls_2PT-M&8kVPj-(V=<co<D72LOhred|p8W7Az9%Q5T`+~f3ApYtjjg6JCrRFw
+z?R!F-#EJH-B>C50exl?6vlri!QAhASp{z=H_Vmwwc)!A#7tvS2f4til?`GcHVQBjx
+z$`bwV2E4mNaQ&9#Xv~3wcY=1vJ=unQKT^ptv@^bGsrHDQtfN+czwV&oG0oclWocxM
+z8^O5O8{Pe1uFUp-iN{`tjQGafc+(sCT#wGZ$+^zqdtTbg9tV6_7jdsN%Ma!)v=Pz1
+zYP82gmT^L~%iFgm<?O$q{a|e62UDHp2Q%SAvzs5x&+z}p@q?-Ou)813_jG;#+x=kt
+zp!+@iV9xC62Xl`0gUP1HpF|zydCCvws$=-U5D$C$!DMLhkSto9@q^*|Kc*jy*7ppI
+zSBf7@W-Vm=V0Qge;ih>|(XW1_UtvYR?gb6Wu~s=4)P>w9&<`drw$$-eKIRY(o3iN}
+zzWFlf+fGf-=4yKO+bnuESJSft8#~(PX3?{XEPA%}2)-}PNAZ36KAtse-<R=OzAx(|
+zz5BlO{jj_5%Yz^M>%K1sKIrcIGVg<b-S_1a+V>?Je})2oW}c~hUq&6n_eJ5)j$ZMH
+zJ{P4~zAu71J$zqA_3(Yk(66Z)N9G<-IFd&ksZu!d-E17dy~nk`3**?8X8F5ha3JIF
+z@?XFKHUG-rh5cdwe}5Ezmn~WTE|jUx+L0E1@HlYyxym)}`dF90%VzEGQhFx!9?IWk
+z8U0;!?7KG)qyx0^$ayb`Lsa924=8_?9afjW$|$Sp4NTZp$5wtNw)QJwf1e^haFlNh
+z`BY|~<ww7Q!v?x#^oQ|w`NN#GU-_7Plewhu{ChLAeL<#+E&V$Bm~g*o^4^U~Cr6ut
+z{akk+6MarCj{Uvx@Nli1neT@&P^V1a8n091pr6T}zBQxl-hFFE9l^JTbmh*2>8&qF
+zuIuhRTJdM)o5Hc5wo&nDk#RzElEL9)#5W~qc-=Dkrf@vu$<)CXHnz&yc%?_(+W!cC
+zDJS&emr|7FmlD=~Dc^ZL-9Ds;U&@yKn!f`t=rh8-6773m!~IJ1J=SNS8@qU*tMV<!
+zOy)4z5o$_~lGt{0lB0U~W^lYsucy1oA-l7DGe-5|o3Sg)H-mjy)S-Ms)Ev+3oa1`5
+zeL8R={HcMWmmPi8KzH;h1C^gZRxA|IEpr+BkNLV4@18_F5*_Z8&iB}#%)1NqSex-~
+zU%b2YDmC7fsJmyq-^9C5vQ5TUuyY*xa`@s)5^3Mhi%fsa>+#2nq7|`3+OAEd#)C#c
+z_8pexw-MWyZey(DQd`A3X8nJ^LFILjICbF{_IwfhuJ`5~9_P6AhVF5Ww|I@VZF5xY
+z<at^3{ZZFvSc@U&F9N<Sl6a-$i_B4Il3y7Pb6oH76TeKAr<eNNyb$x0;@uHmvAOYl
+zp~~Ysg|T)5%sb2TOJ3XOc#YRu(<)bXDdp_7=!@jaicXgNW#>u0&Sug5jKJ@0=;IG>
+z$jTYR{>9P1s@1Nqa<yCWN&357lNcy+4Rs8wrQHD%OMOBz7+dY;MOTZSmA1}`Q32_r
+zNBXGV^*D`AKZ&D`{U!To{|SAZs&Xb0ha>fl_$7o@?nB8{iT~L)WBK|+wd6q;GM0|S
+z?WuoZj|ctWevI`~FUB~cY@cz|jXBDe9$Md&T*^E>_F{MD*)8sn_!7YBL5H}xI$ogi
+z=|p3R@sQ^yI7{3oodV3w670cFNyV%JcPQRpiT5Vq**ZLn*h}2CHm)9{Y@NkCNrkD4
+z@q4Z0Oe#u^#qU_0zsplU#P8oH(vs($dzs(zH*MdTgCBWR?uGxxm1p-ogjcxMF$2?5
+zeLTj(9Q^MeMEO|doa#%v&Gsvu+|cG!UweMCj{|;!`ySluYt<+FFeiewNpe&5p*{)M
+z?_>S*y+=325>fnq4E22<^)?#?ZX@p1;Q!j;D#uzQ#@G-laO*I(@p!%xV-r6?`&Fzd
+zC*=c8yEVk|7r42Q_b1?;D9SvPxhQv|RH4j4nT_`<QD&luZXgsZnq(A|%m@{ftcI*G
+z1MfiS105KEJ@^38QCw_-f8cktd4SN+O0-kO;tX(`jR7uU-FJ9%tG94btMXf!oSKCB
+z={r2yT8q6}w7I~Y5m)t*H<-p<sTmlPi~V?1*U=z#sC?XgAq$T}{i9h&v*grl8;y4^
+z9nG~BcSoUb>Ef5L53AWd3ga+C+jp-<-7C??V#w*EF$S+infE^6Wnqdim;!vAi~bwd
+zDxp&m{Qo5CoW2<Jp=u%4UL*<FJ+eEUeqt@^@fS{_k3+&2S+ZN@$()|@Rn{iU4PztW
+zc9FyiTOv6UWe>raSMiw1cvv|SBh6?Ff*&&Pr_Xsn#i7C2Y4gd@@ek<#fGg!OgJZYm
+z_u6I>eKNz5q;-roi;mD{AKfPPt!VQ?Ba?f^TG8r_FK=ahGar2>J9E-3Z{@kUlTBl1
+zRQKyA;%`NNf(6b)%pZq2rHzgAH`gFO-k5knXylDLR$8n!U--VZ8H5J-t3n0-J81s`
+zAGsClm3TosVIDEQ^Bnp)4fD?YsWUOhvo-!LrMwFKn1_3$DKqg+1?GJYu5&O~jgG>>
+z;P8iAr=c(2LBK=iXw|ucr(yns!yjnfiTW!-tOx4=-<ifd`cRk6!}pDb!oNDw4d7td
+zChk=`73e4NPvPD#-LR9vy$5!O9pc{a1@|f}g?lU6N25APyE)e#@sIJP??!vfF=tpS
+z1^*^%{QK`k#J>iGe^HHpHt}!VN5;Rr{}1?=_aDT+dyHQ2FRJjbf-om-!#r{R?$$VX
+zJ#etXQol2JXlCIdZEmE4jQ2VZb8<Jn?Thw*&3wDy@0_DKnAh2O=kv^|f_LWXcTO{n
+zRdZQ4XfA1C74VOAmwxbbNgv}~^zqiXqLKfNXOr;#JmPp<$=?;YKMl_r(=q~lnSp21
+z@U0P^LjRT`#;RdXzeedRa1+l+YYobag{xbeHLiLc@TPbp_@&VX8t$$`U55RzYZfkU
+z^_q)YIc~`zg>^82{k9)K-&e~Tnt;AfB0aWhk`n}H$BEpDc3(8CM(O~!PC&as6<6GA
+z+CI@=%;p;6cmSi@F}AxyYHVg`Y?3@>HpVsw*V42a_XOcHH>R-9Dx*FLbK1srZ;B7&
+z97p)EeT&1fc_*)K^<aJnXP!CP&mL~|fcDHooAk?_By&7Dbt?U)Dz9fgaG>9HfZO#&
+z7l7vwUUM{@8arY4u)xmaJm7f4QKx{pWk@6JI)Q}&+$9`n<0o7cJZ1nM54h!^g<UXS
+z+6~5kk(ik`IpYNfBjR7jcABp3kbQiJxf&Vo6u&FSE4%t%4yic5pSxE1vyks+<cd9q
+znCn^DH*+d$9Qv9z8d?UZgbaYWI|TW^>Mga0mKb1!2l^m6w8L|pKX6~`YjJ}WD8=;4
+ztbts|x@w%;na`%VqkW&Z#eHWaN>TUcU&iyl;`uH---hSgdOW`k&;N|)8CuHuCr%TF
+z69fiRC9azG4=JOr<wv4}nZkW$fI7`*@&9UzcsDuq6RbV%<0nN2xJyxA18`!sz<HOu
+z67?;`{4Mc#oW8*K^}sui^`};&%8?kAlknUZGn0%lYF8Dw!%&7+DcOc{4R}=1RQ91+
+z^0s0xIKa)tS{{%74GSr}9fmfmSn#Zwyu?tv#A`Ndc}D6I9uk&(RbNe+&G#kSDZj`V
+zrY9aYj58ZhpWlA1)gP~M*njqUJzzq62>C#;GFIq!Vuj52y;yMX1Gl&LC|d_18%7Pv
+zOAjy}OX6M7O~&r3qdywt;wr#_zTv|hm3x!&Ap1yqbSBow5KoJ1jX>$&eeS9N=dU)?
+z*LAv%BTj$MSspVytN&EeJE3*c6IGFd^8n+KKPJ7FGbxUO0o%3;Bu^Oj{)Ie$FhF83
+z#}dUD(@?;}#+XRInJ1P1Q%69WGt|;NoBUSb7ESgYzNmE_*ZH7_TX{djv-=LOZuOyF
+z`oP=r?j7O}Tp@K&V=ja<>olJD>|L$vHI5KBz;m1oynPzp)^Wg_e1q^dJK;So0bWpI
+zhYL!E;<`PneSR}13_2FCONxFm?xf~$FM{W^|Bb`DOW8k1$-F`EqosTf9KVeINmv8_
+z=umu&IqLo@x?j|RItecu^ZFd)>2}iJ9HGB}hxuutH@7-T#<&hwIu5QGJjA?}n34Ma
+z6VvJp$|TCim@~%meew$dWBjj~o30~03}qh5-mM*J`&TM29rt6**Bp#2k#B}r%UtdU
+z$SZhuz=Ji^_@{I``9<Y~79B%a<=pm(p7FZWtES3>o1u9V>}BpW;djeq4>k!f7>asH
+z!zRU+xseD<f%^`=^BQHT{kW1RdX4_6zv1^Jy?5Is=a3_co}eA<CrS*Xv4nnBW+0M!
+z!BqP)Gdw@pwJ)pd+?VxX|GEFdUhL7~YHt-Qj3ufIna{jHe6*P}m~>3|w6(&8JeC-R
+z{z86f3q$@(4~eHn1J0vJ<LphXVcE}MKRl?mmG2Lud<S~Q+^zhM-%}nP{h*@pl=I$!
+zEXDB|g=3YhWkA*nFH*kGo$}qZe}jBCP0M%FM85N7%XdB66!|VP?PJS#el6emjv(LF
+z^^or>!Bgw9<U8qO)dGh(g9u}x)x*O{@^0?`sJ94O@m3r26vjMIr^3A~bKH}EQ1%##
+z|3~9HCGYHVhvK^>rs<3q86}*g{|n_5`oQ=?MadQ91C+gtnW+$Di7<bIxA>xyk~ZZz
+zp7W?=-uR-_eRBTetEtl@miM)ZQ$d4r^f?mAnI0aW^d?rdnjzA#8&izA3AlJlByQ*f
+zSXZ@<A2LcG@;kdRIU}UUR9FKz)rdbc>*093gH~yM-;D`hsByRWG=`epzM$hg%itH9
+z8cXF0Eea?9#OLg{z0%F@gD=$3y$|79tX0*A8RReMhw4MLl`@Aqd$_WfK18JtzR*hP
+z17m*rbRR~Ok5<l4<^ZOo4Z{pYW5HVzGs&N$4M~r^z4a;JMh1S|!{-8j0K-+YDU*f&
+zcfc?oxC&f9lX47s*9?)3Bb|GR;P9GO;*{jRwi<axC&B!h^UxpSCGqdZw9?7vRK-ln
+zJ;StI*nlw*Z;4l)D(X4MBmr{4tuF{}%}s?QhtQ0~$>;-f7w0(CuR|`4T$(gZjK{7{
+z8sSEnL(22mt2X1htdHzpB4TqFcu;1JFLY)IpQ{$U_t~p=V=PIZU9+1qEn&m6N}R_$
+z@D87I75!EhvQIv1x!c*E)9Ca?dp>)<w1?|QZqH}U?`*GcT&-ubY60l<c7-#R!WrTV
+z^H2CH=L^pKNN{FuY9)ByFyV1C63f6VE6G<Q|MRf9N9J~J3bft)wfLISpAvIVJmDE8
+zCHt0n&<Ehrh14BV_eHuVKHs6nR_@n`D-{|q@O_!cIKYQ<8UG3I&y+Jt(Io5155<Oa
+zt<pxd7X0^g@dq5>eq~xmJI~Hc9HaIWpXx}Lk^lKjb++JYJkJpwBKW2qwdfZf20sVC
+zE2#(-l#IvwBRkYyYm)54DjlAI@S50%fezDuZJyEMQcpfl;vLmFlKaZ4lYFXflgcYS
+z6VGS%c;0~Le{5n*%j`VwUC$TN2L#V;JTGVNp&rlg!}DL``Mw(h2IZ3-%rC0t70NA?
+zW4JE&jye17%=t{7iQQZMLLOx+pRuC#@etr5zF^B+ALVcAGs1OA$^U{meP8@`D;<2Z
+zN9Bcy6iR)WvpmenTSZ^auDZQp*0-|tfzG;DwBFC(ooAw^cb<u2Ta;JK%4?F0xu0n(
+zbM5SZFYQRa479`e_6JWj+j-?)&yV)@oyxIHV=O{FmT8n%1HPVP`LwE=^@?v%#*aOw
+z+gb2Jo=1;|xo?uFm)Fd={&ecG$Mv_&xEAPf;Y!;|v9@7YQH;fA{Mx8%p#-g^kdK$T
+zXU*(r_Zmz0oH0}Fk!i!(G_|9R`8qA0ufrU&-$A=6nHN(2Qm@_!IVyrRYQze;#)9Gx
+zG#Rqm{AG}PRxwXP3F^y>G)c|`OXu{Q3;dcJV&1j~9oFxutaS)W@HEK*N;=}C)9q@%
+zUq^XQ{J9D9AY{nj>t}g*mM3SkmUf<f$fGX6xJ!J`*_MgD60aQFKW^w~XHK2S<bbjF
+z;g0k^#=Rbc{q~|3mojs{y|i@*WNz`9#r#~w{Bw~NqIV0+o+XyLaVo}K8A)D4pO4rI
+zcc!sI&c*q8ej<u_iN=`cNOCHi%bba!8jtLutk*>rB@N@cW?u6`Ef-TJHsageJ{aF4
+z!_`@q+Q|~D+{Cy|o^zcvyv1ega<0eG&Jx)VoA##NW_+*6O7tN$4HZ9pBw!!PoW+gO
+zk2Egd%K47a{N#O|u$}LgYuL(}OFXOTgzbFB(g^IrToqR?5Pww5Uf>c&hKkP~*n($U
+z43&S6w4xt)<GQ^|+#%R&?89DTEuOFK@q8_we^>TV^U?3+o%$K_w}qG=&i`P*xXM=F
+z6{F1r-anW5wGHJ%Xxj1JKNtVV8Th?P_N|-c9LM!?o^=$z1<lICoP23(x}CD@P<;>Z
+zZ`%?H7(UxD=-W#?u)hC(IuHNPK@H54+}sYj26{%^Y|OGrZkVQQl0thUi@}o~?9A8A
+zyczwB<~{w4x;;i5Yt2#fm}fVaVE+5(+0hcNvrIhq?EA#eVKUz8Zn>hb!CbKZJ<O*i
+z@#d=?>Xt0@zxk>_XI^LS6|a5k%4Bqm@^LdNm&%#D@tc}l8)ew!CU+F`kmFixFL$Fa
+zwkUtV_=67fjFlR=Z#9X`_YIvZ$ymQc_LIex54qKnw^`@NGL|U61N!ZQo-h}A#B6eh
+zpq&@E7O{3O|3Oo-<bkH-^lxG<HLLTgk;(K4o(}nw`p@aoKK&q=OMd8Z#+AI;88>FV
+z<l~_~AICrJrF1*z)(F=-#EbcFo9*0J@LYk=#pWhA>S=nrK*dB%&<Be7>3vp2@{;Gu
+z`PE1fa}BZ`_CfN*#Jh5!d%$ZY$7H0&9fvi?bF+SoPu`Kek+R9=X+PYC9(mF6tsnA^
+z$FOVsRdSX|<sI@Gh0G&V=2vG;I{nQ8B2Q-Snf)_siLnAg(|Y7O*Y?|Mb^PHRe1~s~
+z)cKZ3>O-+*uW>h+EjkZmt+T$c#a%y~Ih7h6&QS~Mdh7m<c8>pO<KBe2enUGF^Qz-J
+z+ORK^eN`;+TnF$Fc*B^o!~;1iA70{eo+D#aZu{?UNw<$e8{B_0Cw(vu*}+)6X9#`T
+zjoLlLzjEN(&_|lw3~n$kE9)PEI{I;L<IG>Le9vWW`>VO-TytJI2EUx6o9&F7Tu<NZ
+z&iw1l{lxRZ`s|k{Pv@6=67(mAwX@Rdu6LUaxP0q=>fItbm%YN7W?5@%+_^><OesrI
+zrpmx{DZX8JKhNALSdAcD=#N9V7&R_)@>&v`s>L1BDNA*=y#(L?7rx(qWx!xz&i0|N
+zbfib2a7`Zs?P0EVu5Aa`zQ);aGv5t!WLx0BJf{=XIqSVT-?-0NvzxIbnBSZ-Or6u>
+zp7<xwgm{bF*Ll#P{PJ>`^YVa09&TtEMCF3TdgB?HlR!HdZyt1_a8+9QykWh}yF>jZ
+z|K)r1%TCqd-X@)wFy6=*{jvu6%m-Sq{<3uYiGKp#LjKuvdBCXJ&nTH^zfIo?YYJfd
+zDEL|AK_?JeCON|m`u^A}T+ii2Ji}8qp%T0md>{{acf|wD4>dK>Pkbn1DW1=fvxf9_
+zkTZL+M86B26#2^~d&lw2{)KY>6}WIQ>ykX9wJzf?_)s7DG51aZds*u+#@!Ds!QPTF
+zj~2U<ciyf|jkas#+>qqc08Hj#JfoS%HnajX^u?4XzrX0(MuR^MWE+qZeD*T2H>o%g
+z^)BOw<l$;mEt5D)gq`G7J&wN9H*T-+^lK%)#Yuq0$|06ZeUV@JdZ+d>R<`6BG5(g5
+zi6wF=<UNfCymxxoZ2u|nv1i}eZ_1(rHLMj}GJT(~`wku*SuTAi%>BpR_vyOt)1~ii
+zQ@Z+|(@Wnem#oA)5#Y&e2m_SMj61Pro@sG&s~&U;>=mt&KZ<%#%F2Lq7oIG0Uz_sr
+z@nn?X$+BMYgzbwzb9{-*co(DX)o!p8PZ~v6`QD|(56p9DSr7cE*Z8sQKZ+lVrW_kT
+z_6ZMxjCqOK{-WSS_x`f4T{yAqKZ+B#90yJm;hkZhRyaW#sP=-*lJ|@APZ?csAkyqk
+z793dSUU7RknUjSB{*QnI7iDNgWv%4+Q}aa}sCT)3hJse8IbYxo;Te~Z%ITY-5qDks
+z|CdHsQ;w5HjCo;ChF9>tlYtNM|IaicG5Of|@Ze<f>t>hx=*;}nAC0kfGI;Qt$sZpN
+z&OZhoaIciXgFqGzygUB?@BBAUKKA@8y+AAx`;^)K(*Nf<pM4y2-XHJm?T2+A#=K9(
+ze)Bi6#4_KD4&%IzyLFB;--msHH|!Xjf!py)Cpdz8lQ|Ck_qU8}5t+%fmO9im7~&J%
+zM18{brtKt_4UWng8Tz_LM~-v6r!t4wEXRX7O3JF`{8G-z)k(=?VO2Yx%1Y<%ku8#g
+zHpn=&TgN14;{TjqPf9K+@4YV5nxFKXI@U3me+cs9sKG7nrq9L_i_I4u;FR;?^jjSN
+z5Wo=ccs!7OM^YCtAMn1}F^x)R$&gJ>5a0OF{$hKZvxVpA;*Czu`dDJjO|zW%z*u5i
+z|C^lovM2kTV-BVs8|@B4o2Y~KWS{u@&wu9SnijXTvc?^3)a)s>YyO+(60qOe=na=9
+zxmS7e)E4*Ue(2k%ZO*n4m5#T+$_vAOdUZ?##)p~39M~iAya>-n9RB<Uthw1E2&WtP
+zd*e*}{?!j+i6vj!>=cA*oUv=a=mgNug{XU!2Xb}Qj3mEpK5>f^$f~Qrp5^=k{dw#M
+zS2$bHPF`%G;|*0hzMJt)^A$-C`X{j#;tgYS<FUzG##K6Ih_-}T&hnF9azgmlhdxdk
+zUh8;n!f)V+3D^}d=ZLky$-%q1p_>Jlyq1{^j)^6H`DN;HzKD54J9zieOKP2$#$ioX
+z&2jPulXs4D8mP~;KIeP~zs(ncyW!c6$A~&6`t#D1&pCPc9kdv)@wyc2_5&AA|1xFc
+zS|`6M_K2ry;WNf2^abttCo}d~y%WSYIidTUPY)mGaIWdIoNwKP@p_VelkH**q0d2%
+zua`dMH{arX_h;iA#!_I6g@d+&_haew6TZqd?meHHkPOPYot7%bdM#f+-z~<xy&S?E
+zV+}1XjXUuXbB;L2)X9{|8Ed00K61_x=bAcOLt<z{UaRCjem?NL*7@NbuO^rWwjdOH
+z9W-HQf#mWVo2<cFf3|9oJfq*dk7q{g`?1zOk9|qhwP;^5&@TB@zZdq9N9A66&gR|W
+zfbq@Art#9Vk1kp=<nqP$H8eCl10pi8zJ2m-=<L(~Y<%{1TsM48>1~FNp^he!EM-3B
+z@Pp1J)M3OS>u`T-%uEb6jIE`ReR8n3A8Ht@Ec_-63nVX4oihyg-XTnxiwiU(2)cdG
+zD~%FsFc0tUz_UEYFSVAr+W^y`)#Mt^GRTf~PB7k>6dfSGC0)A{bkcH~++xTG-|m~y
+zy~Uno?3p{{jALvO&kr@A&Vdo71DKc<Kdn^jP3K6PH4<M$@`Pay*l(Y)MEd<&I=yfL
+z-Z`PiJG3GHT4EJKo{n_S1x;SSSRs2x2aF~A(%+nbJ*a(xVNAkx+r<H6&Og%WITtHG
+z{viqK!Xn9Xz?6GR>S-?)xGr^r8m=LM>r#R1=>pfK?t2-yS`Rp9;@)n7>jN6DOS9mL
+zdH_3tEAGb$SH_3pyUx;1zE+k6&nX#rMq<wb9X9gZZw8jzuI>R#(cy!}0-iSDd22U#
+zKA_>b6mzQJxdZSV-wmD*bi$Lm66)-py}CO*sRN*nZs|o`@FXmwqZKU6N2{|A*k`7w
+zS2r&=#Al5D5b>}f_8Hm_7~6?$bA2o+-VA!M#@zy1KlUWh1kj2<>@nL79si8`J)VQ0
+z-fYI(W_!?Bvxog$Vt5?-_lL*!Giv`dU>w^$)iBzr+dnU@&T!c519k6KQxa>Uopscv
+z)9tpdlWU2#ocr2L>1ReiU*D$MSN;nsuja4NHu03YN=xhaY0IOWFg3?$tGXayG@NS~
+zjN8V0SLGOOJ>R9QHUam?XT8gN<8V)Mp;oCFiaZk}J}{8|MuA2U2O!&&8sQZxPDf>|
+zkaj#3_i$P&$DY0Z#Yi2>{Fo70ApSGdD`mcg3}gD4M_kUfJI`WVkL7T#A=CK4SN}q}
+z#jfJI9w|Or5?gL6+srd6yVu7ysgo`JB*sR&3wZUCEpcZH_<lSBeh)h82c0jDJtQ`7
+zUu2f^B<3Lie)Bl^L@@d}$GHsOf~HW{+1GezPbmHn)>o;}veCF-&RF<Z8^NlF+#!t9
+zVlgHRc=-9C@4%BKFK>1>Z@$S1(!P4Crq_j<ev`iA{l8E)X3kN_3OOSr_NSABe(~K~
+zPj7L_uSmmcNwclR`1aFDi2)|(r*+P9>OteNXNRFrHsejioBkVs*~l|g7a5aN7g@2#
+zn3sD3`f<-CwV?C0$-L8BL}%`0jJ4)*p2Zhzb1t(cBq_U8>$5Pw1n=HvR*H-iMISSL
+zk5aBdKZnKFxL>_wTrwa0oAT+S=Z3*QYMrs*mH9fS80EJR`oVKvwWy;O-*Su|@G?)~
+z7^gg>^7Qenw8^vG7<;MY#H)2aeVS^IG4i(J8|Fwa#`p$<hfzNn{zQ$#7!c#mtZ^n?
+ze6yUNgWT~<32_26kov%N7UL)ka;va!%(K)v^H@mbt0vxBs56gxJiN<u*_YAw;zW`;
+zm9f;?sx^N492FZ6yKh#sxM7U{o`H}_4GVM>GO0Djvt-jtkTohD1M<lx@O1iSzqDzN
+z$TQ`khh4&;aV+G6G2<PtNqghXNkiroco8O#<5^PbBxgI1{AQBCHHcDyKIP*&3Gm|C
+zIDr{t**xoEmuHx3fGahCRgm%tU{}ub$Mn_JFhn~J>!mM%hv&6$&uiZ#uwBb|K<L9`
+z=W_irhSIgbyHj72_?`M}>?eRfea)|?Jf`!yX?%J!-}$uY&94{ze2nMwDO=F5SD%pt
+z?b<j*pZgp@pDod^(@siz(O}WDmuVa6Fn)(R)*76PsiObQo{Lya%}1=N$xU>qIpKUf
+zBsQmOQ@?|Z6)>+w|6-4s#)4-UzunL|&W488h_BXe$TrL!Qxyi@P#4TNbv9#<C|ie5
+za@a@R@!T)r8Do3)GoIhm&se)BbImnYqtxw@{Uziu`olk|W43wiAblGowhz{_H;6tA
+zK|Rf~Hl4&{*e3)fZf=+DVW-&0rlgw3wmiN%*7WH3%BDvfrnEfHv%arOys!lh;kp`Q
+zhpf1B@fCH+UtCp}^n)M$3g711vpb)^%eYC*VQHy&Nh<&+#<LtEaSo<3hJS!_on0q=
+z*t5S`*yEdX^fx@4R;uR`Jg100bfZa^@tb*W88?MCDsN<g!?*)}$Xx3TtTpDss|<<W
+zel+MXY0%oMDLYec0G`={H|JmvYKDhw_J-?(?wjE{FKPaFFt^03wbZGD$9#+a+Ln_T
+z(_?L~;k=5>I!E}how1#z)w$zgkb}lxt=-cvn&f#mFVDRgVb7A#D_B1_IdQDhSFlF8
+zR;npeV4XB3V+qFIZcJR|1f2&mdzhrBkTM6>w{g1@!}{cXuGvh^MA9i)tGG_W8k6`K
+z8M+4;FvfU>?s2V>&Xr3pGQ8(y+n}9hSk^t)DbLk&t<p}kn&-^1W`laI_7%QyV~@3Z
+zV=7<P>NirJ;aIEoRh#o9rkPqtgk>S-m~(m&b8VP6;ytVx`+;ZP!~frV;)yfMM+HQN
+z7rA{HYTMGsqRc@%;ufFLULI}%uTwS@@;>q-rQ4`;svyS<=}5PQh6jwbkXg6={QWd#
+znmpyNATkE!svN`6GWQyYhE7o?j#r+Raj<txTverX4)mus163*PJBH7l)ImS)1fO5s
+z%kwJzT+WMPuTe)?3bN7_ayE0B8wD<G0Us0j4f}+#Z-bx3A8_V>sxf)%pcc_7@ht0D
+z!&n$B28?~6)!<7HU{1&j4bo1=jRg*nF3TK@9PfArE4&$s`lDg;m?k%B4{^&M0i3EK
+zH{8+Ua@_j@$`5I{_^@8XeTGRpwNJ;y>Vx~V@4v!6p0mjrlMh@Q0zLwKAwCd~gpZEA
+z%E>q8@8Mpgj`XMgg*|KI<l(m`SBG8{9mF`urREUg^jK&0r?zx{FZk#UJFlEe8djMc
+ze+FsaeAfugmot+*b4xj#<KP&$Pob^tkCVE~)uerIrBz%p+V<YS^MF2sdxFa4T4qR|
+z*Qp7ks!3vt^Be4m+9>;OwjfJJ4P&hxFw7Xx3|H!vBC}e=mz^?gPUV9Rb&589JLvm}
+zy3WFHTkCwzWSsFV8KrzMzKxGbE)H%{<K!7~p3PwFN61OrFy<{I#yXP<tA$T)8GN&>
+z!RiXsk)<Q@(eBlsz8j30$$U*l0HW`i&)dIC)B>ipgE1fdRZLb>^jpA*XoFLX@2t=Y
+zH_x6WGFv(1+EROgo7p$BUdH8Qy?}Gs^TzKIQO<8K^_5&WE}3)jxa38Y%TRY~I=#wk
+zl%#kjwBpnj_a*8KN{*&8n4Xx6ewQq4Nai#(B!4HqcvDkv(BB31%oIPJSZagyyTm&R
+z_Z`pr`A%&!<+b~rXJS(mZvvm`zn2gBW{J7kd6fH`5lVhAEy&39fvJpDo0XR?UUGWe
+z5noa*zmhio9DQ6_*y6@FgT6veTQp*e6GUHwnZBCpEcoVg8RL7Fvn8ZxyD4#AA)BHO
+zuMvAh&f;5*$?zb^LssmOF}RLL+l`^I&JxciXLCOlUuR5VrBgjz&xbX|;e6#<)nhlt
+ze+N1_)yWOjjAeX!thrS`wjYALgLdpMI*b{Hea*9!ld)%QBW{77J|X@)+-pKM$hD$L
+z<sS<^34B=ye5nDAs3{ubcs*Q8vm8@&o;Nv$;E~dO=5Y+<P0<>MzLE5^lDRwY=yON^
+ztt0DsrY9c6Jodr-J%Boo_TF`P@9TW$oPd$h&s^t!KTY~hdjI*)eeQGA-*7J%kF?0S
+zhUa4~;Gv6@J-D*ox#yJXWDs-9eIECl^h+tCFO0Rq4H@&3ndg1QS81B;!A6CayQRi*
+zm+|zN>q*XO#A7dd<o6W*e%-|XjeuvwR%a#b5ahm4%p0(nV_;b;=QKFHxs`DShSJ6p
+zS^#+$>k0cgi6MvY{|f$}sT=>lPWlx-D`2bx|5*wKK^xWFD&^lsKR4PhJ=OxpW2|WP
+zR<3Bh757Q+isOsi3TKfUiY#(HVLS`1XzlCFbW8^_YkW@9aO$wHs&NN_?oN4Lohu{X
+zyBfcTp$?CYZy=X>!V4Ct-;spJSg?Th_Bm&E^=Fc47|kfpfuM;0A@&`gLLKYS$92uB
+zfBBHn!r>(nqd~_Kkn=eizdHKgiJzs!$eS+le0dHqkMRv4dj+&_K%bu|T?}>n8CyfX
+zQJ-9Nc}KfXV!lR_zRH+MzZJ<>TUnPJ3i&pm<4_gL_cK!Hk70xxO2Xk<f2N*oXQ(l8
+zU%ls^7I)9LRo{6=CQ!M+8J)%R!;C?L?_Q3l+qazGB0dUUj4>oO{{^ibXs4eY?ex8)
+zU$0O6<C>BWZceu^UEU%#kbKOWPx}^qWe|OlBt~$c9(b2IPeU6;8|w2Y9aI8iTg7{i
+z32x4J{h=ML{&1bdM*&;{XW@FbF@-X1z_!OqtQX+W!m~SL<HfxEjrWQIp#_#<J4MBI
+zO^ILREz&CBN67JF98PhlR`Mh4IjzM#-JY1_+57Q!fqP~MzwH6;(D=mUXxt0OdH#NZ
+z6O_C%0|Xx9dFBQC(MtxYzLTc{hiC^6aGa{`n6$lFpIzE;>O|swifwP)JTXxmUm`qw
+z!>KnUE@a$_k+DUd!g0+%#Q!r&TIx^ay$akLF|HZBZqbC(TI#{?ni&_5^kTKwaL^9;
+zU5(h1jL;4@0~0UfAcfxR{Gah~$Q!6%6JIR*4Oi?=ct+br0PBbSsxWHZ5a6;5>ymvE
+z9ucYYfW}Jf4}QZuT^rFyfg#3l5&LPxhF@gF2LDQY6EWXE(Y|Mu4G!@@{7-=g?}ii}
+zTqOBocDQq~HxFPRLj0O!6V~;~3e3gqwV-X-$J^0~Nl$YuH6fznLGYaMu&lZEhTdzv
+z0{_2|g%9f(r;IjbyPo#NR3;A9i5olG>DO-L#S*kNG5*@~#!HFoF|Gj57V|s^?Te^`
+zXNS}ojvcaw&o!nNkp~aM@2fDMFGHrWXm_-o)HKvtj^Ck3J$TRb#ATw>-{I~Mc}wy_
+zl#OAWF!bZx46b8+K*n0ddwU?`2LPjxQ4Lw-jn=$Ky>mAAOxnMhzt2MZ#N`URx<u_A
+zxG#_Ko)`CA6K(Sh3h~pU;Y}P3+X_#Yg;cw1G@d@A@s#I<1c&U!ZsJq5fPDs+-spi#
+z?;nOspOZW&89b6bO@MQApXmDD5V+09Z_<}y@RtgExf=i-4_V9IdvcBT2HLoQccKRi
+zz2UzXa2pREbk_uxTWLJ#&3o9NFb4OdQs;Y8=U+S0f$XvRdW`jYJ=PpO)*L-n57$2G
+z{o$z-3pb2VYmw{lc-Ibn<bK%yhQtQX4GGHXCT))3;YN{`^|ANhx)9lnx^UpcJ=yCh
+ztkzKqV_}Y@D|K8Oj{nCU=`x<d@io^Ak9a=xlIe@byqy04=Gh;Q6>W&WWNyTLJS*H_
+zzf`y}{!-yJ)H_txyM#?9_7!k#)#Dx6>$hIo<-G9RWDskN?GRQGP0x7#JTFwA4A^*v
+z`}u$&VYdYR+F-vSbfOt>590bjM|$B#eeeDb`ch6!-G_V6<6aKu9KYopDCqV%Tm!w(
+zzKWyJzL{1_{Rus2UuCE#?K6e;RaiCdlq`Bw(Ssh*He+etN5AAbuXLp6qU-=uj!rg>
+zI{c>nD^zY68^GhM#+f36#BYKejJ+WDG<o6q&V<lXbv{Sysf?@`=#UvoSDG#QtS{cR
+z>)cD9?$CSY>0Y6A_<b#})W6%m6Fj~U_%xe#pQ`zg1?D^BBTK|r-Y~8$x=`!#J}vQ+
+zl-(sSGM{~E4TbC7CqCWLPQBKBKTfwZAIEs3Uh>C^9^GrSTdX&<yp=SL{bQTd#bXav
+zwomLf^Bvk6iTfd}d9>e3T2>Btmg4^*xcX3@w>Bp>qHI8UzCV7WY(TN`%t9gji%~}5
+zo6)$^H>T-Ox^1Pc#+4cC7Od?H#cx}U)2v$H$&8iHa<vU)+Xf{A{S3HDSuA3;h;6{M
+z<~uKKpdV!<@rr(*ZEZcI>_}{j=Zi!5JwCEj{$G#(-x;K3In47q6wdK;xUNK@-eJcb
+zlvN^0%0k6j|3Lp-()#BgX%T;C;@KqT^$P184ae});B)$EM~AELy`saLE_v~=NAZgN
+z1J~J*aVj}a7HQyQo;xV>>pT*RKJ2v1nH9pXA@9*%VK)hm^cS4EMr2K%RTu&qz;=d`
+z58?L^@G<(hvOceMljMV$m#NcUR+1-q7h@*Y66BQn64K~N(fP?qRmv|V?_czzDZze$
+zxLU0B9EP#dRp(Bcl6mx-jWoI7LG8a5-ndfERZuS2dN3{iH1rAn{)Fzj3+BCe8_(8F
+z=<;{T>&4&2(YX?Se4g3fLb@1Ib5A=M=Y0d_JP-G{zTboV{$51Mz<xcyayIrO%<&l#
+zJ3+;k{X2O0I=hRXF_+kCoB1Fx_n6;MsM+;npW$Q9Q1EL%WS&Wt^?>)XPCuZ31>RUA
+zZ{9rN=zc(4M}*5=fD83G!BZ4m2$Rg7YX@Mlqf+@4=Y;D2C3uu}<@-!L1$g9OFZ%Dm
+zDZICJwD@N%Yt4)$jIr>n{NQ8Y1kV#5ELY=|JskEw+vj8dC^^q2r}Cl?Izgk!^{mJD
+zSX&YF={f9;@>CpFto;Vi$Xd5FzSu2}EOt*BF)3L)hPDCfXzTIpewVfdZ@4puPJp)6
+zJiGsHGd@Yq)8^UZlONDm!)6>lydUCO^(o>bQk=;l!(1fRqLN?XUZdzl>K$LGNa9Ys
+zpHA=0le1wu79!+C?uGbXo}95**6OpCwTd2^xd7zbdg`FceD)IbbFt{uXje(%9>>tg
+zcx)JlWsT)|_cqf;9jGT0Ym(oasAr>`3s7}rp5=wdC-bZ^$sZE`<1>?#^Z&}28Dev&
+zc7MtIXOFkIRV9$^<11Uu$jVlpIagx@{Q`ZW%o3<-aGvMctn>64AqVf#?uIr{_ts$N
+z`TB=jsh8+u8cz&Coz&GV^1P_@Nb~_atJ0y)hcP@sYZetyev4NpWnSpBiEqCq=c}X6
+zW5lgNtZy3knj0Bs^IeJMceCSXj1=6jGK?qkL1XJtkH1?VrcoFEgufH+4>&%~bL7$_
+zzk{5(F@XI}InNq5Uz*IfUv15U+{@Su)Q$PA*W4iFTVMD!p1E?`4uGFA7OxE$g;utb
+zNBGQ|))NimOrEFqiVk79$o7n<UWhTUZr15X-I;n>pFi}P>l?m8&X)0PW>9oFQRh{(
+zVcN5kK662<caWk@Jpba8TvdQK^%m4wgqQe@aIHUJqyM2LZoc(eYxPZ#C7cH5IqY?w
+z8{FcCtcTqp#>1``b1L5&lO5n>kzw7GR5pP|mun?2^00fc#7bvQd)i1>w&obXNqe!%
+zr(rMl`|KK&?JmbXitmhB+!_L13|I}0KfWDsS|sue{knefL&dl1c{UCG&H=6t4MRqO
+z%u!4_&-j*D%jaQ@ovY$9CRR&s@_LDV(vSGS-vX}(B)*iy@3I%~rcB4V+n-K9@gVoE
+zVh^p6cuztDupchr*=3Czx8l8a)*ZSu>CyK<kDdnJJ$)1A|4y+3J}i64dwHf4@T$`D
+zYzoY3-3`*W21n=t-kZd8m!Jtg`!#hA6MVT$!%zBG$$5&=R@CM*mWj@SauD^R^wq7S
+z{*Y(Bt=9w&D(B{Msp}s+&uSCz7_TJiT*<x|^Ih&gSO@h1wCC1yuCX5T>=kY>w8EwD
+zhTnKy&fSD{?f{?Uv0K?HF*O)V7r1nfoGHgQz}>sj=`-{At-*K-+tpbjyWRslHN94i
+z0a?VPo;0JQ{XF(5KKoTyolAslh&iEdi#X^H5eJqC4u`Vf=Q9|?cZoYg$KUirUSqtV
+zQpn$>kb_DKTO{s2&xe|T@lVf<rM~=)j&@7VnMP8yM_i2hL?$s9!*-2({`(5QhVX2f
+z<X%v5m>=JtZZ8Eqs5j+WBV2ffkhCZ$bEa}FGcGdeI`%?stBn@7*=A0k?)_*8wYXP)
+zgRxszxYX;@*Q5>g2gTo}UiM%^f24ILMxB$|&v~k6Ov$zY=;t2PJppxBpzewubyuM7
+z^HFyYe9kyg@$?2D%im5dYsly?_dxau?d(Wz!}U#+zeD<d9@j-4#S@KBVSTS}N*;Ww
+z#U1n3mC4}n0yhu?ZybYtT=S|{p4sJC_gDq)JD~#L>cZAlvN!py&<`|Mw&gQ`|KtM9
+z0pl91YONmM(Ox=efb!SC`x%{I>|)AEt0eX-@ikxUHPce};M#C9_FTfp7dq{FFEHmX
+zEhVLif|5PJHNJNW{bTzO26*Qw?6a&$Qt}Toekfo&kG|Jvqo|7KcNdBe;j5q_W+a;Q
+zLq_hGb#7SB41*8WjZr!x=5ga(JoS@wJI~A#Pk3IIa`cQBFeh@R{W{Jcwpr@=me9oH
+zp%;~nlrqis(Uj>IIzzFh8S{}gO8WFZU*0vgL(?&~=1B4?+@E?&x}9|xD%W%B0P6}z
+zl4ql?s+lcrbQ|T!Rjq_=@umXzEWmYk)x>1nSh2^jzvUJK-i*g+VyrWriAm1|wJCpi
+zA@+0k2_A2WOibFwvOSEwJq$8UzT~HBa4RAW?$F8xcUV<}J1XAbT8RSp{i?LgnbMam
+zboOGdsW0?lOqMyo%^O}IV`I*wyMC<Z=RKpqWek7jkeoOr-Oe1q8z#26{QuMVzjRE2
+z%Us`E2DG^S=*NohXX|fku-;b>=z>cTb6M+W)CX1l3OI!^e*xduUBo%RF6FIU=zI^)
+z9_Cr}i@5F!+?z<Fqp`%b<Q3qZ)$}g}{3|v5u^%Y2@&6Y6|3eb{YLOe)|F6LRqwxRT
+z`u`>5p@f6R-K**A9~$6}vIe-PPKqVcqdZB^q`Ji5@pXyxFi&#O%vhqLYJeNA#P_^6
+z%1oLw>l1^g)hE*BX3|H0W&HlcJF&#+!(xmx<fKb;lj*#iWbQi;Byxt;B)sv)WIgE2
+zpxqDP_qJ4MNKGO=CnuSnmn(i>Iru;K?gtXv;sxSkwFh%v8ftKBOxj!<_T*B=t9&s<
+zo;lu8F@tjOdskI~`=(Ri?!emp#<-65y&)B+L!Y$_Fi-HFh>APIy(Qy?ZVL}^85^hE
+zZg5NOl_fqa>gX80g^W{_6OTIYp^ZGN!F|UXP~x>4tswehIe1^ze053jaKds`YcX((
+z>)o$$Zzgc87<7eaynXg6@RNmN)4N^#gCZ%OsV_IMM<9IwAEABE2*ntzVc{*@<JsF=
+zdGBWM55-GvWIoe{rIQ(7>8hl66VFsEbeK=ibZ$%rL(Q$Hjs}k$U7JXkVy-G`WzIaf
+z2JL984{|zWz_Q{^1Hk(hcFG)`S5#A7*M(J7R1{Q{PIwh5D!oceR0KqnA|fCqN~qF%
+z3yF$=NRuL+gkGdc?*Rk?gc5p(&_fT9Kp-LH=l?Fw#X0+Gk8#$;T5HZ{KIDJcW2gy;
+z92r<^&&Je|i)#X+C+{=D!`!%*__#|6ho6d%!xK#IIwRu!bS(cmH}#QsHunJIV=qYw
+zjb5i5|GvOt#OssDSt@fl0m-fVp~DCA;cp(m_Kt%03<KsJ139qv!Y<4Z<=;yT{n6|x
+zM`@}+=kZF^H-hG4FUe}AdDaI|QY!Rl#Y2fei03GcesP`x{<CcugM@^)m$C&wb)L+)
+z-Ff0dI4zj~#n-L0F#c=ifT~FICDj?7d*T8#XJ)Tu3f3@Dn$CacXzFLgE$$guH4=4<
+zMc5!{;t}HR;L9gxu2yv&FgmlH9-h*rY+-UfLB8z$+{J#@$Xuwi;BXuC+hfF})@_A_
+zL`~>_kuP!gnFQvny^vDn98{|{;=l}2!r3VDAXAA0($y<@=*%7iL=C@2fPY)eL=&V>
+zd3UN7=M0B7$UD|*I>$;GxHQpCOTP_wqlTz8XRi$#?x9Cmyt=YU4zj5PSv-Oh-EJ`#
+z&4gC|WNi_RAkM@}Ckc_qJ%c0%$5%D47b>Cw=w$dUnT*N4*ohkbTKI=r2A65q>$Pb|
+zlJoIQwJV1gYC<aJ-%kz(@Wgd9v?uU~^VcM}_WpIgX=+n+d0$~)b6<PmH~78WV@CU>
+zxBr+)5d<F@J}5<Fz28UeZhF>ID}#DS=;rD2daIGe^LLYiL*n=c<gb_U7qh;^iu-aM
+zwMc+v%2+(0N=u}>Y_+i6uNhyg03Q`DHd=7lqRvl5TyVbn6?@$BcqnT>hH>vyVmFlZ
+z8ZM>Moj}?n_tbT7hgXF=KTj`Z9AxM7!3$v^p{>&vp~H_hZcqENVBLBOgKDlnEYV(0
+zXIa0RpC_r~69G4Y+-E00^v8b!ggDr}mVn#%#emk^2&hH;t-H90&;F^Yvl+-MgiB1F
+zPkP1IzQnsAoRW(_5*IQ&lDZhcy7Xp$;if@|Mr>cW_hnP)dJn0iS+ML54UX6K+bq1z
+zcf)@R^D58T78WDP($sQ3)R!Yl0FljddF{?pV`CRo()j4kQyTn9`-EPC0F81T=((KQ
+z!|ue63~Ar=K|sc}BA-gjXzyQL-eLgX2TU^YGEuJ|lH0HB=pp(Rnc`>$*BKXo&%vVs
+zCZ#<<t=;Q?k2*tsv2R<Im(1~RUz&3$uya+pwc9RPS@ZPrnC}~Cc}RYS>9$ML?sZw;
+zsE4q^S2z>E2eGnNj#ydjkl&?3E-KwniF``Hzz7C|(r14-ZFiRj=XO{AK3Sbf0LL|5
+zr^J0UE$wi^9X%JS&|&#dXtp!T>Hk|&t?5^tw3{3`$qm(V8gc^H-M=9ZF`HQ)Aou*u
+z#OtxMwZnXB+7(N+AAu6O!zH2jAo5z_cNADdaTA8Y&m(qj##s#PbI^XDBi~&9a_<*o
+zB6*k_Ji74=7kD)^L4?AHu^oB#aqh!!=FEOIn<**ZchBWEUhHMk<1}AG9EO+_+n=nh
+zC|3Z?SGo4aO}H5gq&1QPo{()L+7hah`x&}_nXynZ`|W)qPD62@jnx*9I6sAMkBb4_
+zWA(GaJ~cN9Y;M5FF*Nu^REXS{EY<QU7c~%2;ga&6Dp2ZqV%WVz#tr5x+|6i>4bFWv
+z?B9tdbrRL{jJFMb4VReJZr0oQt*snq?js1(X#==%9sU{?se<oczzKWfz6R_s(MJch
+z({|?;zijdKe1%><3<t*T3D20IYI6B`X9~82W^CT(B~L=!z{VNm#2J0&X_(bp2eu5s
+zaj9g}3WfNi{fd@OBbn~gzE;AJl8Na~&rg+C?0i>7mD-amD97APsrNE+mt`4;x2eI8
+zXBBA@F9_#q2@6fT7eZ{1(AzaXpKzO8m~@}qR#sA*<(k)|uQB~iSO!G8Ug^){z3NZC
+z7v6E(Y!IW2T*+iv`jGmy$|wXlUPsDvN_P~fyd(2j?eW30drZx$@=Co-TzAZF(Olx|
+z5eM=LD+@V~ob*!bFJ*~pl*Zogk7_EalF5cf1$s5L6Z3WgQM%y@uV%KyJsd)YHjRm`
+zCW$N%E&GxZJmH(Wd~Pj^bwE+p)A8|&67LsLDE0oaTh`)`ewE)}z&>jBsfQp)bk9V#
+za>zedU9uphq^qy{-qD--MD{3))68;43xGD?(#MRWEyog2bzhYf-ss%p(4e-|qCU@j
+z2++2LA)OVzk<A*wlEpd_IHRo?sM7h3sJtdU&IvJz>0}x9+q2bf5uPj9@@fYy3b={}
+z`k!RM_t^dR#1WFYJ@lh7bA$%T9UUC)^RvY;lz3zEKUF2lkJDN^Y$;BwhS=MDE8vrk
+z<hCM&g<QH~TsC?7rBzxGwL2+B`)qygbgvL{6`?XGXK{Gzgpoha5K|qI8gQ}sDJA!r
+z*r(ULs>ivj3*_^a2@1{K6)7uwVqj-<?(HV6{4;K4+RfF~2Kvhy10M!;4wrB{urqIp
+z*q{d0d6sUz3e6#ktnI7!J74sK(PBRQ&fAPR6DV~VM;hYObC@0A%>@PcEz#c4m3v|w
+zUTH|YAVT^yu_eI0iPqVE8KSiq;?w!d-5=w8a`4!>`lS#?+%fv3E(f-fh0=16_GES}
+z^A0fV=+dX~uIMigdexXERqz~%?oB>@44@<pwaw2}Bt}K#tihX^nlyDz-%-xrEvOAr
+zE@js$p39u037|P2zptBKXK#kOeVBskO_>VXe^tE8KuW6n*OlP?k>;G>9$#D1se&kg
+zzzVE2EN<R0dIk0~G5%ojU=XDN0!ahKx}}$tmQzOxi_c?N2jA2k;lNx7!eu>?IEy=c
+zKflI=-2RLpFo*Vghh*MKS@SlyEZE%B@`Cc2Q>_5>HE-+bbd>3HP_mWN74rUr`1c~w
+z^)W>MVn5KnQkejC#X(o(;Nos5VXIxKHWw8^uNed(P`iXb9O{yV504LV&uZFwl30@J
+zs}0zeV;29cTxh<q*CfGqd3&X#Gc`F=yjd+pEs?IHB^vFOK-f!+sp;FSz*ALnF%RwL
+z$)WkI`Hce*ZEd~gHObOTPQ`odJ^rytvD3~A@_0uMn#iEG<c9b!ABUdVPm2w#S_gbQ
+zS`y9m<A*;)^i^q=V{~wAVlGVpD7yVN@5}J)aE&6TOs1Q9xV`sEK~fd<ClRAJCU)3q
+zRmx+vjd*;z+Y8QJRM#J`+A^zxXXvy%xa$n`yyVHvAr5&q`xqi5VlgMRO*LbLHgMa=
+zEiL(`UoPy9*ayI{YDpnOKZe4~?^p?7nr!oK*?&~B%$xBslj1<Ghya>2p_{&FSZ{ht
+zTJi!09*TV(ST_4LFg{toM0!e1Tb)`eO!a&8f;0OkQFGd%=q3?-=8O8l2w)|aE@JP_
+zJ%+woI8UehC8J*0&zz+ge{Dj1MNOonKEcY7)|ikgcG5LOF7Kw)t8H@^XpgD~Y6hTt
+z{?<6BT;8@%+%0)W`!Q}e9-}AH-*{Co&n3nwbGifcQ8@)oyc=^5YstS*oipu8sJRFA
+zEC*Ee6Y~(5a`%ztp@@wNg*Z{CjMw1kV?TPG;ByRx3u2ABsP;?tGaSb%8@nBNeJ`=N
+zTE2Vhh8aSD$Bl`*t{m`t@jiDwC2)<5j>;hf0JqUnewmmzUa}@k=wt6WzU-5O%MxDs
+z;N#$7_EdbpmP=R<aXlM3_cBe@?}!)C)CNnIlqk#;U%nfLlRF+Adf)cP)pyK?lmUe(
+zUm1EWqKMG5N!6Ibc1;TgwJ!bZyAAFwg;Yv7t>*;aYy4%?@>pqqh3BPf_GHzc<XM07
+z0-ehOLSt1ArGe|RC88i~`FHNvX^VNSg$e!xBkrZb-`o4g7&h<Ge6S{JGJSNbBuW@r
+zXpjYe=!-dtKJFJ?fy6NV8KHvyn8q8~L})s-)}M?fPPzdsr=9;|LBD|`qy6F<uigHZ
+zdT(5g_$|#3gc5t$@h_D_8`t{!Wm@cJTRz*Y?>hG9x*I5mX&U=<y5Fvw$m7}eEx5a_
+z%>Pdz(O&|*DEI>mJepK)v6oq%<*?oTYbb0l>x~YxybeMr<(6=j7c1Q%9CXWGaBneu
+zo=AQhs#)X10y({LwbZq3FV_;ZRClJS7b07h)S=(Tp;bOX+oap3`!8doh^dyb4J(Um
+z-b|<B@$NAZ%*UX^7vaW2du+lX++!&g-V2DBfFd+3>;Bvpko!a0?nO#ifK}xYx3JPf
+ztd=`g2%mVML|sd{<@nNiBQwhWB~oE4CClPt@N%jhwu}T*kF9%!w}ZjBHqx=HwhBsA
+ziW5a9T%8_U-uzP!H;%6E)m44FT{B0L){g$vv<hRRBOPCh-PfrQ0O#DQjV8=1au`Nc
+zgN9a}KhRr}IfvJm6co$RDmUoE$kFhz2YJJ6R5D`<C&;tVu5$0>j*mUJ`_R_&Pug6o
+z`&Pg)c|9NN5F2CMN7(B-h^slxH^${0<HCKPa=pUkISP}0TbJCRXf=lKGsPjZ23Y<u
+zY|j!Tr^HBHj^h@9v5YPCV`+@}ovw3^;XU=YRyr%+%)`;v&3DJoZ0jhO@ddIeG%Db=
+zNfXXCWlegjzx{xv_LMcqBS;y!XE~k$WeifLyGF9&U{|-r+sX77lOfNMf7nc&TLY%X
+z!7T)E)=qO)Y6y;77w<OH%srkHzVOBV7Die)A;WAx+TG=BWu?<1PaHryE`aLotsH$<
+zly{&Tf?J{wLs{<Hxj9$Bx1|uva`vGqgGyhbE?OvOT}v&q>dQCnWANNED{0cQD!rpM
+z=rmFhF&#O8?lE@!;(XBvG~MmQFH{)8z1#12$k)pLS-%L9KW9&`YBB1d8XWbPgD;A|
+z#U}Bc3lM4Oqhu}5_&q4pF)&I&#={(kXdn1#w?P4`e4kE)qy4j<o7l21G|`R(m&nv^
+z55Id@P3dZcoionSWGQC!p66UYcZsX@v+Bi~y13{qvz@v>{RZswKNZ<hGS)1R2Gh!l
+zBb5$pW0;R<Ldz(6!Y1U;p7Q%XX;z+;f=&;UD@!b+*-lKfsabyLfoy`uCmxCi${ZB*
+zrAM|U308Zkwyw%26L(>%x}Y$<^wKM_faQmQF?p=<aq_j=-QXl5$ANb`&vS(z`#sRC
+z?P$|^As9jR_~r^j99eHo{#5Lm`_KummHZryy9BOw%!E-AUOsjdcFy`sC>DmRyB-5y
+zT?<mMyDi+SNo2zybx(hkGvx?lZO`nue~z&BGY!i;RPHp`M5%W+`;d3YllTBSGF|rL
+z(u6<it3r6b?~QQ*4e5l+GS!^|-y1#D6vaqjsSxbDugWdr@tuu|l}6Y|8o&Fo#b@SK
+zw;heO;f>eGcHrrT(=<myc<{UHmku9x0gW{_^$#qN85GM*Z47})*Jd|Xbmw*<+SlVu
+z6{u$7!Bml|+<;DFfHKgu`_7}@P_EF56)#^Gr(BV+G>uH+3I?|PIxcuA^n;O9*O$vq
+zW$_#g(+$bgT&fuBzBu3R(xeUSYxGx8H-XRJ#c_s6vE^KP0ze<!j?>974VU6tF_>w-
+zIqtla;=kJ`d;$laf}(sAbrYFBUBtMoew<gh7U!<pZ_R8MSK-5gOAC~`(+v9h&-8kp
+zB#sU9F-~6(qX(kQ$=zJJ6Bp~tVs-8nCq`2^$5b_aTWFrbV9MDU-$<3&V(e~U4Y@-&
+zbnm~PTCqNh7b#cW*-nr)A8u{SWB-KfBeJLo5}!_ZYGS&J!o1Q3KT&LUTsZkrib$f2
+z!a*Mt^68EbYn7T4t69Yj<H75L+E1j_aJ;=pt&~CHT`sK8p?j?&|N8nZe8-hOH=p=(
+z0brv*|L~^Ylhd;wX71NFss(cMA{qT@uMw6_1n$)WPr<{8Z1c7n^-G8dUHtD(qS8o%
+ztu*EGiSP9%k!88T6MBoajE3}m)t@$c&FZL*#))OtHi^S)=$%}aR~2oE6i0*}F}9A>
+zGeSwsXi-%#eA#Fog$m-kjm!K;c-(xYIp@S=4gb&QhBqj0Hx_1Gx8Ns~?)LR6{gLd?
+zx6S?17f>9Qo7UlH^!;j9j8mTa6sK9vA}4(J-3K?#<qu|M(UW7I^~KUqbxs<RhCT=#
+z4nQZFozw}hM|E5qe7~^dJ5s3g#_YBP=8-VtqZDtc@mfKH^G{M)d?RtuI@Uf)v_Eog
+zeAhTg75GBb<oDLw>*I%cej%+dXT>QFc&_iyzDtx|MvP{PkG6&9`gK8>I3It5@Z2_k
+zaG-*vjCn^?JRO(U9q&B(yaoPJ_I}GRq_(H*ueOfx`yR=a%(PD#xs<K4CXw=<g96u(
+zIB2VpN>2J<djfi)>gxXNkhNNaMrZPmkmt=rnYo)_DTz-2|JH;9?G1e{Fs6L31C!io
+zJr#ozfE0o*6dfx2dq9sX43~QRg2V%&zNhp>486Z>gL1i;I+;6NxaYOdE8o;K-%BxC
+z;5HAE-XwD7S;M5R_yk9O5yB3O1(r!)9xQ12{U0&On=&l+-bOj<Tp(c$IJ><4FM+!W
+z{U|bN`)xvZb-`oKOZ9Xi6=btQ{%R~RSPE&RI_d{hh#I4C)d1Y@DE%s3M1N`q*Xj2M
+zfLeV5M)uy0PZL;!U8h#ULM#_yF1T(#z8)^V0L8)wVy_>pbju?+e&Pu4WDAw2TRI<+
+zHZQhKbRW|_l7<4ET7WVS6b2<%^WKTM?l1&Uwgfw2g#fC4ojT|A1Jj2~`@QE@Osh4y
+z3YTYJT8y>w_cW0CPJH%vni%O#`#X3&zD|<W=6ISEtt+ro9AfIfixXxI5@vm)8KIUI
+zUS<`<W!0oVCz$%s9eeATI_@;jPufd`v}`R#ovR2tUr`?TidpJE#%+axfKoMO5k~DB
+zR$EO)O$MNuo-VD)@*x&xkM37qhz~V6>aKqtC7kwpO7S%-xST)&$Ss3-$e2cAlySa4
+z?JMa~36hsDgQavG=)fue*E=zG?jyKMGQsj7t9d6R$iLkieR2Cl(42p-)Mp1_|K<Sh
+zFHS2p<{5FnTf%Xr&Nuw%tx6EkRmU*0X@;i>e)pKpA8vo}HEU_GCF+Ytu8O)x856Ux
+z>9vi3tFE&fUpEc;bn%)5W>1`c27#%-+xoTeMul*op14!++(g<}+-%||!e8>&q`^pm
+z^w>nj_BDDxD1Di<3A&(c&BHL>PrXv>1)yD%DKQ)9N%o^XReb7qT0S~cmkWdaH@lfU
+zRo86)MkUHy%6{YZ?t>v1CQ+O_On2OZTrD)x5GWvyiPvtr)T|KX7Y9%lbduuR;UfEr
+zvh>jqi=3RWqy<j6&j(@;Pgc01idMhN$WP@LQ@hGjusNee^MYv&C4u>eYPQW+wi9l$
+zXZl4^QfMJ<OPM^X^JOYb0Q@rPjN)k13VEr`9&x;PD(2(Bs9c?;W3zU8jx8<VxD{5_
+zi5&|9mLV0=Wt}FJn1^G5Q(8!IJWp``_=lNE{Gdi+o4DnH@5Sa}+DtHPpGxu`B?i-8
+zp}NKtMt49kp3{EVyaaZ!9a3<enbjt=t=($qPrV+401*7tLZtDLPio=bM5*2HRD~#P
+z`xASCF+psw3Vr`+chl*)sam}LLUxgRV~_IZnr;NFV(nM?f!#3hIS#)AQdChS@DF4W
+zTgI)kfQz%+zb^et22OPj^YN#?o(?A2J=&N@{q_y{v1zyjPcqC>Uo%m65?4a_EfvWN
+zADD;x1w&?L#`hald|QNP9)sM|8=e?#UMx25=Qlc2^RfH<`WbDdg}Ov3e&=mZZ2?8`
+zp&96X5@KE7Twjv$-fP&@SM!0c-`Zo34vP-1c7X(Z4>w}cm#Lpcj-^n0{ow*)X)n0v
+zXA9n9jz%D#=zE46G|91hHa9%N%7AR0@(O!e7NKwWtrh0_Ffi`ksXQtr@coUqWhQoK
+zRww5t>w{2*A9a>yBxe!1KW3Qf%1I!zBKlzK{A?FHz0{)Q>(eQrYLZmH<dR)@9$>O0
+zpm?Ihmx0i{(B|KJwPVj$0yve}{KntSAbMG)(nZ{`za8<bzOA&ME-jYQ1wZ^;<~m&6
+zUnRYUT=yE|-@LR0=$8f`?U+)A7AWP&!zkI?Ao*dWKV{5os)p0#JIp&a_=d+4vhOHw
+z#_a{S{DFk;VwPLat?ij49|6v$w4vrAS0vOeeIjqILVJqiy68Vd?V#`2XKji8#NxC3
+zZRKy00V$pu7X__8g$Mn;*Z4;ua)pb$1NX|y8~p{B_OE00o9wYVOq_0>rUKlT{nS8&
+zCogfoE|nu2XdnGX{{_xYPx?OHd%9z={}dwnCeK#M$9$6mMw*@T{g~tw=sHq>{1IZ<
+zL&XgTV74lx0yYY9d{nFlrzc`LMX&1_tWUmxe%-BD0&wo|J!WoT8OBKt`95;$7C9Ps
+z$Lu_WX=&1*`p&#qU&)g{j=x!8uihD)Hx+AY?gvuAI6YctNOXa>CdLVQz}P*HZZw|_
+z(2u2kpOfa`aa|wmXNGqjR{?as@AL+Ag~IPxS%mx`2zR9lpx_;j(`>B8^91ofo4>Zr
+zvJ&0_0Q1A_TK|mB^GC!$+OFB`Uz4rR=_{P&q>gYc)c^Y+eD%GW)-L?&IOA@4`!&NJ
+zx~aU-ny0<GwpKh>*lbe5b&n*vH2bENCbWW>*K?XUfBYHE$J<~RsoLy@ru9{cCsd5w
+zCJM-CxT#B2vwMCug|EyzZ?&y+<(197sTkVKFnc?OGK)JAnaXVzAAdC~AnN4m5v@dK
+z6x~tDlX;n1EfBb95f+)}<h6)M5ir!ixt3i#%lG7MJ$T128KxpQU#&SPe>m!~hIOsT
+zvJBYu?0Fq8E&l0A{56Rhne7HrolUAyk=b2C;ro*1ughX#feJ7U>r#9#7uzwq_TKrq
+z(~DT{E3>hl%0RpIfR2xx74n*VS;KoL2-J-<660ppFOto=f~eDpb2^A^9lNcO3wj@X
+zIs>z$WI>Ll1o@YQQ*L+Gh3#AvnZL8UYz(=zy8&xGOBo0`oti=zP0g(J&v@4s^>8@N
+zJ8ELgz1g@I8<rR&a<}$v<IR_n1LD%;!%hxL*JQ+|z3%|H7ZIL6cPGxDiUCYE2#aMC
+zc$ru%28H<{`l#K1#Bpn%vmE(kn*-ADGHRQQYU`BSeF>>3N5`*-4=BiWMRO+Q6M&c(
+zqiIrlACW`Oaa<9z%Q5mmWj_#;Cn(fVg?fA%!spC9!$Obn;|cUjefe2wqf(&SxoX;H
+zeho5hoQ?MK7I)trj#8*5z<oSU6!n(ItxzRp5ky|jX7!~r=7=FI-*Q@6blTeCXGNrB
+zl&D`3odf`mO+_h;HAG5|5lKelehp~K4{{g8EQl;z16x%Ut>H3r+vMZ}pgOZ&%e|xi
+zXx6Wr$mzdZ8B_MW261u9<Pt?S;NsF}iE%cF!MjgyX4Yg8|2f?5cqL8+5KFDM9m#-J
+z`a&^F{b6XavXT~EpA?FxOZgjhT`P|YD$;e^4fHV1ZH~Jq<u^GD+}e-2Ia@iF#3MeV
+z1ynu+x~=E4O=|S3B<{>;z%EI#e}c1n{?wSz=vVOZfIb>H^6(QsBGs?}0l@R9&LACd
+z_rE-)sBb#pp(Bs3EL)-u=m}2<N64?GDTD3_$>!h3@L@<?Q|bYo`2@L*+sE<oOgFD|
+zv-ovp6qdWJ?XbiF&iIiUA;)Cu<3#WbQ!hLGb>cV=!z#O7VuDTUNp@CCBWNy*2J2`1
+zX@2~)R7@Ftv@^J5vaJAxj>CKR%v{6w%+91oIy&P=z+E0+D7?*oqz9Mdx)BZu-@dI<
+zEq*9f-OA_gpw`J@q8qi%Z47B33qu-A=D7J$_aUUC)6>(z&V<5FvV-`NJ)FK2L0}>9
+z1wa`Nj(UssJQFnlxR6{fKF<Y{Im7+uH~0UkQKNup!)v1)gmtTMEVNe=NI7jb#1kjU
+zzs(z}6MVVJ=L23u>afcaXb>WY|BIgH?82Fv0yU4{6(k;AGC$S+w^HUXA;Lpyi5kDn
+zTGJ;ZXB`zm{M#z?qWMG{-Z3oHq?0zsr4VB3Q0nEl>rG)7-$yK(Qec#yjaLZr4a)4)
+z#nIjX`O)sH&d~w$x1$zBl9X}A%iOD^s!?JpMty7Lo=GEe&Tozy&IwXkP^Dkp%pmZ6
+zE&ZtM|0qT2xT|djY(<L--9Q^&M!_9$y{vPDv{DD3(y-E#b(Ic7WddIkZo7Zcd8;$N
+zh@L=R8wcSwo4}KDom8BmV?80Kq1&v^*lk>mI>apmfxn<CZf{hU4j;ngu}YaT>0fHN
+zNejE2EOn~7aNA<8@dO`~I<?y+?V0+WG|lEV4?&hXH468RUBDF1Dsl9k8zp4Dyp<2I
+zQ(C`%Woa5A3v8(|tOX-4k@JJ8A6h=z#xp<K^&u$cPowfsyzc)MZ^`ASP=qj*GYuVI
+zD_kLE)G>%g#kBD8kzjSfHk(PfT4GAaP9de?(uCpM3090x5k1lkXyY`797XqQVWnj%
+z1KK@#6Cfubst`7>_cdprMXuz1>u;Ai5dRYGxMb0)d=lfd-ghL1l@K{5+QMW+Z|V){
+zIMg+%#aq<ql+mc*BAAN^3*Y(6e2txrU+rf&qnJIyvb1KB_%C~{d&=20^^b@(MS?dy
+zPc()%U&NV*)Y)!nH}zW-j~A#gH}xAv>X*7ZUX#H%Pc5m$&#oc$k2RXt%C<6>h5Xjs
+z8$TeW{r-*#nRE`EJsCQu92B07nf<NfZ~i0lAEs>Hk$N)S$$~nJ;NL2~KG7!UfbZ)-
+zO)lBhqbdQrT|T;WCw9QH)xvql{1q-109>AzBmH2c)H~n4`(A6^#eo0pmT035X4J0m
+z2)mAkjaj1*Ke9Dx$)b@PZaBHc3EKJUy$<>VwU%EzjlIh-E3mf%tRN-a<pXc<RY0wq
+zk4rv;7~XjVBweH=?HzZUOe^so#Z(7YH>R*1Kc94w4-->lIf!BV#W?q~UICPK!Z53c
+z&xpGocjP)Eosw9%mv_S>5WHcFpTH{QFMrwa9(}@nE@ciH_a(1%ijdQxvu-(yXRVCT
+z*y~rD^|1l99VPhMEcmY%2RzeQt6@ow&Zfugs4nWPlhCN2)(_Zt-;E!g_jGKd_fm&)
+zJ7umyGMl?b&Mv^0Q8Jn4_<~(O@`w?U_QN0hnR=S&&B+dosW+m-%YrrdS^`P76vhoo
+z5BY9C$=|R^{_WB^tBwYi0)PBkUBIl=@(lajt%k%-;h5U&`_5ku*+Sko_`3dcjQ*KZ
+z=lgg5=Y+*q|KZc_i4bVN|EL>b1O5kAMZo(uR0xD96Q2=ZPvpWq(jr!kEAM?;Esqd@
+zF2s)^!`E!dYRM)^`akWz@4=gY*;nG%Q;Sx_@!Uz$`ejFavp)-c)g7&W;_*Mi?sZxE
+zx{}6?7MTU;*FkG>&jpv0&e}UEZ+@(<Bz$o)cc{h%eCv9|tg_4q={DAc`M0OE?8-_V
+zRB6@9Ns+=F3;cGPvPwyuJbx5-;W9UHbkXTa2>wM@q|hDDF1|#6es>tgsB}>xcv*y=
+zz=6NNB45W|2RMP+m(`uZy5gwWJ2iSjSgADYh`ovTvG6-TIir$Dpj9PhWcy4;RF8rP
+z<Q`V&t1V+cT2}D*`pD#itf7J&=Ye0S3x=2yN2QLr@>1f-?aix;X~*g3iB)ta&o}p%
+z-j6BLU*>uHIk~-6Y0jYc<k&ht-e^cZ$$a#l#B_2hj=o5v2KIT{7OE$FjuXbn>!H5x
+zdm<K|)v>QM>!O0C*jEaL$?4EbD^76@x;roG0u{yM#It51-MBG4ce=D4!7q+4V2Xv2
+z8pk{sQQ-<b>x`LjH`Z4I7#qF*v-vBs)l(32LwG#PG(@UR7oSt|EGbgzhSej?ow#n{
+zTXBVYCC}?_TiwRIh<mInCO=Y_t&?RM?Di1j6X!~S4qL>@0<yLh?ofu<=09hc2K^(7
+zvd_;6$LVD9NbKDxxhwp|X8KBiN+07~xJ{c+hkS*u4bKW*xHRK>hthnpV;<2g?%r9G
+z8N5VO(nBw$Jl4%kPwlPvm~YR#lW>c<R-W66`DduVPWm1D+CvSy)`qC8+AY3oOQ%l%
+z=*=$*I_0C%XY#SVdpx{Y)CK3+0=Hnf_)Kxv@6B!Qv%_Eba0im7S+SUQ(BY(Wb#nA%
+z_i!y^(dTo`04&dIH!+F4eYWl##IPx!bn+%rvdpUy?HNksBwn!3d)+B*WA4BIf!jWD
+zuiD2Nn7ssHIo7UM5vta8`|PIDGr4_4vi$G1v|WgeLqU33%ffL}Ri&D-!Oq&iZ9|JY
+zEZ~{XQx#^1A@+)J8co|eE&gwmvd$M62fFfp=%%x?=qF~rqVadP&?lOW-ha$hZJ4ef
+zc5^OYLwp))9O|5?T5Ef}IkfGdYEk>e{Eoz7J#hLZU)7gtCIYRRiv@e`6sA*8lUL>*
+z<k7myVkK7nr{g)(Bp(7PlaiEm_#r6-zdaGgy*07ftJiljDx{L^WYhmIRf5QCvHe~h
+zqHaY>N^dz%zG%13H)Qwq;J>d`?OQXN_0H1bKXh7?U1P2gz?shX?K9wi_{MW`7kR6(
+zD9f7CMRrkF+Coq~uAs_iY??jl?oJ!^GXS*^xv0!>ONGVV5)g+xqV-G1c}na&nU^^I
+z#+Go*+GG&H?E9trXz8~8jOHLcS*p}ZcDpWcuR|K*h&D>e!d_`k7yo<~yTdd8J`CV|
+zPNv2vO5tW?)1xP7cg4iv*Z~b>WM7LbF3OeqkBPTm$x7w$p3q}4;b|LKc(*N%uhd;V
+zLuK*yN({7hJZXebY7t=X3mBVY<}qFNW0G`wjN&FfJVt)wpw4oT!}U0v6PJqJ<(SOP
+z;%D5t<G*tjyuln#4kYlb#wBHSzD@7E2brIIF|QF)YM<sJGVXpou?Ct_A6?u)Tf=$s
+zVl?hYZ9lu*m0_mjv0OnG9RI`Xe{u8F7@?_Krf*<AQuvkO5j}Fe&C`d0j9P|>ZnC;B
+zz3C1%MH5ju@SDUzQ`1ddmbYQB(a-)UagPd!7BHwlQ`#epiaP29Cn%b1H0FHYL@K1N
+zzL)iVx^&_07nY^!qb&ua>9eK3(8eB|Z3(<Cdm&r$ZcH;#>o#8b!EU`a^v4x>1NkHO
+zY@jBf&mZ^(>~NzdJvb$bcompp;u)4THiDN$h@L};4%lzhzbHY(9!7eMr>-4%q|{JT
+z8|k%w{NsT90a*!^n^Ts5-7@aVY!s)u6uE?+nG*f-Ocaux90|IviixG<aA0tIw7?0U
+zb{>NeFeZNDKb8gW8k7c`gmcXfmDHZX`-cF2!#79P@F&smDilPRCt`EPW@W<@)iPbx
+zufg{zjg?WJ=dFSlajnp}YO1eY>}&6*{URaA^#bWd&?tTu{s-FtD(Y|Ge$x$pFud)~
+z|3-7sxad-VvQEc$v)gkbFmp%<)~#`hrB;rg@ss%XAzb{4h%!@u)2gT&bGYKU)%?q)
+z49(4Qo|jh3P5V(=D6Gcri7`+-Lc|Re<o$yR*=5Gjl+bU$DGAT`>N=O2n2uGfRAJ5?
+zfb&i8>Th+0{9$I@L4n@E-q}5??>vgBqLk?hkLi_PeOmY6@M<t*$QJRN^s!j|5r>Za
+zhDh1SlLE$hBda&Y6))I7a>y%md}$tcvYb1QM{wJ}DCNG`4~Z~sRgMXlx5&cDpIE<*
+zIlc;1+C^DPn6Gc~PX1G#8_{~g31>zBWg`CwXyK@8(PG@R#jN=ZlXMuoQNa{o)MMA=
+zx;|eyXW|)?<zSxe5@X9C!xOQ&{meB^^xe4!zO8*PJ@*||4!xN_Z3PFL@DMuB%MTdu
+ztnkpZuMtS!H+8onzVt|m!=GfYt}v#uk5paq@17>rC`IbRZyq!k;f_b|U4r`xefNG|
+zW)qm`ji_6io4#CvaC|LF5wX3xB<3)JYic2MRgjE0{qtwcxBp0v365`)5i9;)WQwu3
+zxn(HTCIYTwiRM5PB@iK_9Q15gf}RSxm;<6PZz`F2iCUMlqk<oK5SU(|CFkrWM;DBr
+zsPv7*nBkiJceE+rtd|b6kY_a7y{94n`hr4+tdxSi7goFL38|39gZMYSvUL+?D%KSh
+zSAA-eV7~!5OWi>FOVgwq&<~Cq<lJ7j6CW&&*wiJGhfnPnEWIWT`~FkssJ)ehz89Ty
+zyHI#pRxU;(W{wHzP;!aoUR0yl-b9AEPj<XO8G)ca%vNk5vn|rcuW86z*bz{`hcKgL
+zs?MUr09z4DW}9!&^;aRkp&1d8hHj+(TOiqmB+|WzfjsTj@jSbb;!jkK;a`byae7k9
+za|0(dr&;p-J}vD)htX30*@t=1Vhy@;W(gXmzbw75XA4=y5(PR9h-Af~>1s!&{SzZz
+z7@dnQ;Vg`e>Fb~?YoU+ql8z*|Ol}g*#qb^0xv$CuUv8>oZ8W5b@@8V8Z@m-t__C3F
+zE7;O19@W!}bkxhJGKwxm;@JIfUc-qmdP?lL;!dSBKe0K4%)Dv%WYaXGD{K6x@}Hx3
+zjzY-fRRuX@{pqiN<OG&SA0#}6TeN*2#uiQv$P}5LY{b_l@l>~eHAQDJ8z>fbqSk(0
+zzTH`2*I(P69+0ktQ_6N(q%t<l_a7--+hM9t8&u|+VXWja*`Y5zyF_knYN4@Md)Lx8
+z%EW3-49r~My7O~c;E>iPazG2?YS{v8H$BrCten4Q(v{`2DM$K>^>Ho_QT%DIk5tL`
+zDJochaCikf)SOhge^xcI%ij9u!K+>z){iINvM_TFwIklRRYzRg<57U9HO+Bu>f35V
+z3mRD_U6%evr}|^&`-)qig_(o|<=ecK8n6PaDw-~xE`Q3AwmLDEWvQqvGGa0=tJZ&?
+znukx{pI_L2uNhTE>*&1Wcpr8rIooPj|C#Azb+cQ>Qj|36eN}916_(fYqVJw|1h(V5
+zajg=);wd;ZEL*jX($vyAx5Ca~|5p_oSg^?jRvr-5;LVu_l>-U_16(VJ79cA)uTtGm
+z_bNR*2(FO73nQGL4|v&k!!_JK^-Rk#?H0gywets29td^#z&f;hI@8+bdiovk1V=8L
+zv+KjXR<j2_N~_y_va53aN%+vFx!alxnB}NQDZO8Sm0bKs?Kx99R@b`<%>S2Tch|Lu
+z&frHQUkIy4Y|;nk#+xDe2RJg=n2!Gclh1@{ZfEE#GW;xKbP&4tyn;IAyQWv=b-~yl
+zXFwfx^bKcc*E{a@DG^U6-f#mW!(`Q9n1g-C#k`#PR&Ta7O0p~1gXzM!UFhXmA>?2a
+z&HsQ}DdfVJq_3a^#DDaAy!OE)w_l0RK=Cp=jYGgM&+g&7T#v_l4zsV8ZhfM3xwep$
+zcx<dhT3rozw?5l{&wbci<t~%#maVd8qsvZBUKiT?@8jBmooIAwU~luyJDiW>^T&7l
+zu`S%#6UyWaU>6v6WMf6r4x7O+%pzIFcAL)Qnv^}#skbdFIs{xhGgXrJCvWXnxJNiD
+zc5wvR&m487L?yyiVzc%_R46Oh4R-Q3C6)q7Uy@P?K#xXQ%-F#N9K9qHI3U8*V_Z4H
+zy-9lRm9@%_Z+1htM)LyyV4!UHv-r~aLFl@*K;hv9CeY!(iZiZMSV}5;S?9FOinTxj
+z%Uda@)m}BZ*+X@wc$I(h?Q=Ot-wKZZjX$Xwp;?GA9htgi{Qd!3d$BvBV8eVTsh$Jp
+zj^Ge_0$g0>$Fiaz%A02(0*~Qnye1xwT9BWKk`n|?6HpHhbHmk;GoJUbTo$F!J2W<O
+z*|V&nh0~)~y|SJU8~(6)ZakPfOBe4MC6g^@=_)(TzAuOW_>2P{<dgrCrTR|>+J0!r
+zWGv1fdgAUi25A2=6EowfyRPYFv;GqH%}X3K5yUOO?p$LFz4|$|ej!?H7VHQ2HciPz
+zZa<?xba!)rV+`d+?-}$7L}f;J8e?IdHW@Fa{B*aSiGK-Mr7>8et*ML-F{`<bx#3hq
+zeGG%Gp#>yx?ya?jNID<y+gg(`rX4B4@iI$4PI+6cU|1tPKa;P9V7SDW>z)=9Pdm_4
+z>(Kz{9!PoHTEC83eH<`Z$DyCUVG?6<_;YkVqjEvxQP3PkmgT_GN7&Kc&pdBShiSWa
+zsqu4Ki-Iu`1Kf(r0FG?u^^27FoIK>Dxj(QTV%rS+qVeRBx2zpu(6$b|*-hTs1R}MI
+zl(vP3YSSH-%Gy&TWpT)1xu2#q(P`L;o>kUF7E;d!jiNt7Q<-=Vk$cxT`ID<n!WvaK
+z+XH@8uy1RH-5B5KSfv(JL^=_9DKAjVJhK1vV|oL3E;;A!D0?6I$l`vFM#|s5<e)v#
+z2L%1a+RC>L#{k=!smMp~#oW0F$HJb_!<U|>0f*DQ{)ar2jWBv^TGlq!cQ2&<^d!~5
+zC6RV~?DDmtRqQ5}Nb&hf&DNVQY4fiHfjGGa?BFn|cmEyYg_07KdrnUtxCeZXf3?E^
+zmpRkR+&wxwCFqOp5Xa8l%^EH7GDrJMZ-;hQ<?|5)pnYZSax)NzWBek+Ox5M7^2Z&Q
+zw`C&?>{q5aV~Er2pM}lCfXB~4@m{AQ)oTyq;EiQ2U*Q7RmaoLRDjhR>K0r8~eJ-eJ
+zXH!v|&g}H6P}3Qzww-rNag5len>5Bc`dg=+)u?w-3NW)$)5c+N$Z3qo(!r)8a8N#x
+znfF7Kl0#>xUeh^Yna*spExo*=5SLdeS`R7_%6zSH{F=q2vUAufEYjXYrWD>zwljs}
+zrKk4KDt(t8rAtYNj(S^~R7Tj)Ta;M$ZX7N<j@y}#LUIQWBMm1roe%SmGQ2ZR*fFJz
+z7&e-MV_5DD3U3^D6)mZH&EJK_iILwueN?8VGkA7`vuS?NwK!45J6gr<&QqBI3ry{7
+zX)N`M50vNHYRgaqE1FX`lCsqHD}p!M1)KOhEyr#wyIDn*{0ZYU@Wi_CO5%52$~3Sq
+z@7nvztV6GF{`9|r-s|rv*C2ygfT|x@9bMkP(yn?K)9~72&>om(16oE+oL4Nunb@=Z
+zl1+Mi%Bla>z6_x?S^D=wgV`ZISer_`s!aGC@n&@>;iCO_d%WpcvWgix6NHqMu9$M5
+zKC4%GC|Lk0s7lx2aTX+7AgWdJU<0GxL&r?Fr%p}pYB~NweYvb2U;p@g>A?}e^RAxv
+z+jDdBn=un%^5B0o%@N~JN*znn&A&d(E+3elkY>V?f7N}D`i46(cd(YOY=U#GclIZ$
+zJUv<qK#3i>@o*1z-mpdf?FlRLnl#*rb!Jl{k?v4`&$43}PtK@gFqU~hR}1gKa=V?r
+zm<#;1zcjk;(vnl{IT?1Wt#khbH0aPIaw6@av%`Gq!l~J$9G(NsrY~nRG>gBIg-J=}
+zS)#mn9VN-~#P=J(#{9|QpZT}8Uk0Y6t7a9X=bTTUF1@VHFab??RnzK*4|~1&J(;J?
+zL#r8nxjyWSUd3NUXxo%58u-Q}_&v0&37NrzB&Gt?XPx*El3;-EwT~lX64xZIu-puw
+zGli>0QY^d&SfD|>#R^#;PUf{>&IVPj6aP|U9sAE2cDS6LB6<xv++ZKEa!`6FD0{lb
+zAOnF*C-h1xWpv~K0t%`o6*42Vp}h6e>(E0xjCN-t*@y@Yk;qnI$G+-9x^0_;yLz|3
+z9{AHD*J3X_MMgWhmed9+B*)RDv&SWAAI_RGPScf!Yass6TT;%_0$|PH1gD-#wT80g
+z>+hkXtXZI*>k4E<f|cqHF>uE|Eg-!wY%}$wJoeObtNb_9Uv)NHiu;>P-6d@__+HBC
+zh+ji#6dc-ISbUv!{Ie$Pba}&bcOt{X-|0Ql%>xb`p(egYO8F&x%zsM~gKz5wTs<60
+zP*WM(a4x6(Yhs+QOxd+E_3o125i16p4n;FN{Jrc^QR)V6OqS}ub;48>4sUfH6IwHT
+z+URy7x>MbCj%;*#2{mB12-eMUH!0GX)}l=?w8!<O*8OFIr8}&`(FFW}O~zf7tyO@3
+z<d#x%;ir8jM|t){4hBm&`4~W~kno3HL<;7i2dd{FFfmLrGOsF);N}RCJ8yI7yTThb
+zgR>}(0VIA1VN%?4cxX#dx+{u7@<W$tJD&$sC@#t++u>~rEE(r#NsWaM#nssw3airm
+zY&Gf~%+=T(k20z+Au!I8tNT6`CZFXWD|x=2EO@*Jn-})lxN)C}&neIR=W*T~Of5c5
+zaimYXNq1{Ry+fnsEU1+IN19)5wLY9}Jcon&Hatu&St!aPPtbfwJHWBN=W<_}&F0`$
+zlc|EzA;Q+yr#wMZ<i!&6T>PP|W1FKoXe^6Gi(s??lk2(s=5%xLR35;M(_dv22ZG0&
+zlL+mM9-HnrPoe|*igeH|^rE|ue`aiFP#W+gZ<Xzl&*4?w`sEG-+-F<st&!}eNv{nJ
+zzlj3F|20EM_+x(_<HO5AArs^FJpRADI&ZZ|uAVRYvtB8WWpwy~Z0(~P`%B}4PcNko
+z|0>>>Q5HR1wJwuK7H{`G=Y~{iE^wO$-WzidSlm->8t6JYx7YK5u&&Lr3K~^o>BkJb
+z+;^H6C;Rl8i5=pH%eSzHdy`1%y)dYsHZ+lSDpNsxvyxW#P2m=QI@vb%WIIR8{8i%b
+zkqX?4#DVt@AjhvlhFq6zx*wly{GO|{j^xE%xA@*H;Fcsl^Os8W+Yu=(AN~z^E0dd-
+z78!t<SpUPRMN`5!y-7I;hpm%Zf$JXm&WdkRWF5y1YRQ5-2i7&(e6JH6|6aCjIJlnx
+z{iTQuEBDYeg;;>j)Gv9S%w(206K*6XX1%iU6;<!>G#Pp<awA2zdgjmglmeF=C-*B|
+ztn?o8@550y8R`$zfyQ1soTjH-Dmf0xMWVlmq!}hCr!27Q@O3RN#Z|~UAK0f%5x)l&
+zPnG?BZy0=6qy!VJX4-bY=wsP!_j{5t=firU&V^|okD)X_mf_RCb@0iuT(?}%9NJ<I
+z0|O^{+1`5_`3%To@2gHuPGFI?T)xO^25|-l1;Kr$K$|=%m>48#8~+>^?_jPuMeM(4
+zK<BMLCBIP%Gz`3Kvz1c$j5Tl70a(6`44@b~(6`#yM48l>54CM>^v>!?l_!}On#q-=
+zypS_-`O99Pg->r}oUJ?P7OQ9N8sJ?G9d(;GWX_&`|G6>aG_AJsHaX-r@*MZ#b$o=o
+zOtqm&_CF*a$QODftxBe0%y(@ZqN+Sv2lw(olwmqgm$wR4J*l7&J~}%#RFLnUxC(+R
+zrK9uLI^Rxem6iN7-^jf2P#^b7buh{|zfjA13+N>v{m7qmPGvQ=Vm&0D8@p3x%?x9q
+z&i$Gq4*^8?v&QbBdK#@%D4i(RNJad8`=Vl8PbOzDhEd17!Wp#6<5)CI6f2uv#K?cE
+zEK@Ka=mTZ4ObMhW(qr62X#DXAdEM<a)k2fLvtDd`p~2I3$x3S_fw8gIQ~m3d4uozU
+zA|zN>%FC6MXc|Izpq||4I<EPeo?&~&8n7yT4$weSiO>?71*U=aDn!Ck#kVZia#blZ
+zN+Rzx`QY-NnRSz8&(1YMu8<r+*WJZJ+<uj-f|~5R=5J=7Yut7USpCjaSPydM5$gn_
+zKulvi$T9h%$<i@uCBrMP8Mg~G!T*#(k{eD0(VoX|EQhaCbbnc&tbI&~4B4Ljdiqtp
+z+G=;T$C%c{PL_UB;NtRO(Ol)Q7j|&l{`K3fm&UkTpmwKX*YDMv4;hC|p5;v`8&h)Z
+zaGOI0joMQgWI5XP;)JVKn^vEhhkLT=NlswRhEHQYV(Mw)Kg>9BAr;M~n}@WQk=!`H
+z3JL^XsuYnvx3L2_Kn8oi&u-WfYJ`6tn@Hf>It5aXZAk9-P)R9PHggy1eMFRqh3P3K
+z=K`0?r0FN=<$4CB`=uU~M$#_^*cX_jjkdM6a1?Djv~5MwIm(wxWHnn7z-5HD@BotV
+zaKFs39pO5wvIg2OKSY^0D%zm)cSwC3@h;5S3f|l`J2yCME#m*0WIqibc;82RO+CLl
+z%z&$dXyySPGgi(`yVged1y}2J?(yQE^w%jdb9>Hk?cQ=6VN!A&5r<#omL;PNdEfcf
+zc^doGooO0-fFnz$NZEeJTKHybQN@F%EfZ8dy^9(z&NXYd5MHDJQnJTAH}SM4?56-~
+z<s>&#+B0^rXd4x(Hrr{yqs>!C#t}q#BUw4BT#u#jvzT#kSyRB@%}E7-RTgS9eQFvI
+z6_I?j*HJ{#ITQ{UaM&^oR)61}L^#&r;RA!-w3UhU)JV0BhmgKNA_08UU1L{&bA)Ve
+z!D_{4cec;hu%P^pC^XHegX4rE@A&KnV)(4j;dtQexWoO;fWu9)M%ghi#fq4-T~+&M
+zG9c0mys>F(e-*T*i!<Xfzo+cxe87~WZJE@*z6>j$FrQyEpVJJ06qp4nzC$d$LYNqk
+z1EP<MV{C5k`uW`m$liz%I!KGpoZC?C@~Iq;=Pny5J*eqWZ-Q#zw7>@2POG|m25M%<
+z5&ulPl5o9sPVYwR-{;S*G)iiKp`TD?3!8i|OZJ6A#NC9HXYVVltvE<qe*1R7qNvQj
+zxx~3^UDS}cq{6+#E%l=g4)`qlK;w91q=RHQcsP^6)7)gVgG5V*4t8W}oPJ+!y2N9l
+zjfpx`soefZSK@ZLha=%C%YRqz>xcwhZ=GPYB?o%=8AKkYEJ9V9-gSOhNwR`&7XC~+
+zK~P*(`}wnU9(g}avO8gSae5Q_NnGq}_$SUYAl6ann){DR0hyfP?Iajs!1FKsZPaoP
+z0@E1zRnIF-2{WH$i*Rqit>fEoZyt)d`l8Bsuo!=3lQ5fJty(e)+GfM84#4mfF)#MU
+zzYJ5-I-B`s&NCSmWr7hp)62a6w^kQC*T;dC&6R&HxeZBin%J=wsTlt~)SR&#_){dQ
+z7XpxB3lm9}&OLsCj_)3cectqmq#_bfs)5^7>g<?_RNZxW8D+!6?*6pA^oy2>yK2<l
+z*?O>sUw(a0jngnaVNcZO6N_tvPdq2sRxd2YSv&!DW98^iJSI64tZC;El&W=O;WRcj
+z!K)<aZBfp7pZ==2((%9`PnlnC4;_KZ;_Su)bqGp8jlIe-$<Kn@7xF%}OF2F15cglB
+z<YA7~;V}pGM7vhPJIA2v-)xHY^)$AcKb=b7vCcBksdl_z{HtIo`>IHk$XEX2(Tv%#
+z4QSK*P0Qk+Z$3ZsHnJJpR{E7CG&7UAU$|kq`ki`1S>ET-`1<~Pq<LO=g$a+zqus`c
+z%1Ltpve3e*QlHie&!o{*lrNn2NFJB?iu=QVd~Q!+3migx%E>mqZ@PGKtF>dp)n0)k
+zLC4zLK{J{leK7Gkw0S`E3Q_sb#2!OkM#u;3KWNYClviW589q3iVtK`7;RI?WOMIpg
+zt4gAK&%=?tZ=~Y?j(d5C{D=M!s;GLPR5&In<SnD{n%>Mqm(DXqxSD-)H~o5ClK<hC
+zrC7A?%LTsU)|%!^ijlH!9mIbh88yGjLw1o^0$7uRXw>4ZXv6iU)LXWTiIQ^q`;Wyv
+z0-n3yIRi7j4nCVga_^b%GLniMMG?i@mz>{A2|b{^`$MgiPMbTbT#hq;1YC`&d5|_&
+zuevmvEz&skyR|S8UC6Qfvsq7_wUp%izgHuXy&Ebhdn++Xz@62Pys~r`)2t|cSKC`y
+zexX{YZi4bR)t{$Fva~v}uu~t8IV<%39t)q4qFJES)#GBlrFT|Gwo!iA{yzz@Rurbg
+z>F;MwNJ#F_rJfdYLY>V`ye>OlMZD4I5ZilocwC~IdC(*J7`->AJ;!J^>k`}^o_`r&
+z7Mp)%^nq3faOOaC?4ZBb8%i&YVN9XxB+z}GQk%=FYxbx5c|Po)e4s=-&b&ch95G0~
+z6o^|>F3R3~X2yPm9>cjg9n@T%$JsxEmsDz?ZufpBj~0193#|UhlTPm>$ghKI^?O7+
+z7ObOH{>#!8dnuV4+A-sYeoKyGP?`#?Jw0#8G>%)soPIdV+C1_47y{+HbR%@?&Hn*$
+zK#sqRk3?UoL^L$m?Spr|@|Mxg+>VyS0FvCz$spE9o>ixF9M|n(jJ#-;d^G+J(52|)
+zWNy`ij)yteFt-xBW(;sLw4#;p871^)g{&dS0Xs)kEq5>LcWuftTh1#r7M$w&uh_^%
+z0~M~9=-lQ;Bnmncm3S?n5pGbAk#O-VpJc{*N`3ipB{!qqjhT8k7+v+=tLuFm@Ev6@
+zcNq(<GlqZQTIz(n?BhuiKWYZ{2r-lL)?BRNOTlxPBb>2uyjF8-P8H*l5QmMw&CKK(
+z$8)b$)5?A^HvGiL8K=-9jqysHd3!-?X6$jyD|tsLXv1{fFZ8i!Gx|oJyRJIlc=KGt
+zC<Q^CU6XH&M`^}<8P;}pj>v11h2O8VT3o-#F2>)?Koxz+5@q6dCUJu{dg;>v8rTQ@
+z9@L`X(?`Wl*+^ed-e+GQ01nT=TsC7aCty7Jdc2+x^QT8!>6<`$#&2?TdlHXQ%S4Al
+z8TfoY$@lq;JkgjCFz&`!#-prf|HF}_<gN}cby-h^#>vk9hxj|TXnpjBmCWzn+F9?-
+zx?U%RXM0NV%+b$I(0$B2dncN2Y)7GdQaQXucq-r9f%kpU1xatLxs_wiV_S^3U^D;S
+z)I^4+^}EnXkxpN-cO2!03q@y#=NI64X?Q`Beht_^wi%H+$7e5dH-z3uP}VoBrLByi
+z!@03S3tY;jmazi(y27Qu#XnG&f&YEnql8wtPn&8!upfBIs$B3AWZzA|&8^&{KZ)_J
+z)8q5TFgD22zRDGf{)rxty7^=GoBOuCa_;*Y?tQoVwM-U4{mq&BL(Q!oMT?7Ejep!L
+zJ=Vu;XN-pVcyHwpi+oV_P^MLr+FPa89OsSx#_I_0ZvscZsp1>Ov*3P@wA0*5dBqo7
+zkTjWFb3JvMO)lpl@Db<XnjZ6DX67NP=D`dtZOyZ*#ox@r|J3DLR%RY1A2ttH>v_Qb
+zWheJ$m<#biqOWkimLUl9r7O4}x!=vqL*QSWhm$c6lxaoZjCGQcBS>=?^RoeSb4F%v
+zjOJFZJIGrmbE617wC{JlpskeKEAj3rJ?0T}>xZo3$Gu!L3i&G<^J0DEV&BwOlr@)u
+zUgq*m?H@e^b5Gw18}s?z*Yk~+QJ(v{@?-W@Mw6uNruGZ`D04T6W3bp3_Q}-aJqp+}
+zuZ3L?`d$yZUJto=nZP$keBX~3zSnB_UQ6ElCV5?EoH@OWlQf$5+k$30d1+=`jB&%U
+z<!HM2k;jH{k=~M@ZqQ@nn2M|F-Qd4zY>yu2*q+s6D>j<lQ_|-qxGsla4dz)*;z!B#
+z_k|ATZ;2$Y11>&^eg6HZ+Y@SOU0cY!z0IxcziG9!u6!CYEaQTO7)LbPT3p!#*;U0Q
+z^TwFpRQ2T%))$FT)(UXH#r!-xH#`${-;KHh7^{c4+8k~D6yDhoenb5HmY%G5pqv#5
+zsWrzlmp@t#8Q-o;`pgE=7qGns-Nv8k*A6;!<3Nr7Ve}WW&?$svCI*_;NtLTJ0;%E!
+z9oP%3af8(LL~A6D;SAKb1?y;1XFbtYIX|J-<tG6<%G=|GPftx1=>CH?27V#2qQ)h?
+z=E_#~EsAlJ>$dl4zx#VRHrq+@x%jDqPqoVR`qaW$tZ=9m^9BlIg`)G1E%Z#(u%ORX
+zDRnV``*Uia$#X@?T*DBa`MXm(+UMPyZ_GiN`Cs`)Ij%3`8b!&&K9MrK#2cZms<PS5
+z5xxsPVlHpJ25sblX3|%f_(%Up!XhGVFT=Ml?CCFl6p$}1#*2(53m{8B^}ylxUU@*R
+z9}{w7Q?@LEexJxV$wpPGh;3I^J2{}gmSLR9b+*C&T_ONFuI#BiuQ=6x>_P1Dn1>>S
+zx{U?NA1z6@%X^VuxZbJ-`2N~NF4_StyD)R6p_uYls4~g9`vYJivOv^Hk#2683wQty
+zzt8Gd6tYG3H?L&A!Mxzvo@RVwWY!F1h}l`Z?8Q?)o(yqe7VlzQy&!m35OTx%;aCTu
+zWo{l|Pk4AjixT8r#fFw6;u-!mGx7Hx{OjlGbay!-9^14hOO9B6%70dl_{J$mmm?Mx
+znC+YJ`|eYYEl11-?ALuY-<a@KB}Z(@g8l4M{=IU<wMUwZ>aMxS>oFI7jxiUr^jvh4
+zC4jH3J!FaMW&d-s#0jSyzbsL3%JIt*#wo`qOB7=M*W&k{doZ_O$v5Vq-1-$YzdiZU
+zO9#92qt=r@9zW`vJ~BVre)8e`X#E()kM<7eogWn~JDeZA--91*Jo)(fQC0on{OGxZ
+ziXW{z`RM#8cJi_L(XIi9^P}Gl_-Op-I|Gi7AB{wR-nl#9*oCs~u6&~r*HI{Y?>aU=
+zdS*cH{OHL6UHs_wgI&A_h?pz_@5ygE{N9<kXUkqQmf&8Qdtjg516Mwz_rT~wA@;!3
+zZ}hv+n>6!9A0cbbi}g735tU<rzVTk$khtW1CFh{3hii7z0kvngqg-#X)B(!Nn70e{
+zycKuuOJmGw)5bmP$dh~SS!1ccPzQG>`1hSkz7`#NrD}s~iFi(!4T%}T8%Yl-KT1x6
+zj<odCsA?#Y^L>||{WiZPjWi=l4kc~mnvnHQ8iVzA=}x0vWOv31i0b@+sC%TYFKR9<
+z6<SiS&I}GieWg}Y(qe23)b)k4((Uijegs(3ZbUr_>FMr4jD?5(NA7ouLy9ibUVl7v
+zjks|OW8G6<q-{G9>h|J1%i5F-R^IRUqW3#_&GVB%^n>TCf|6%(xx}eX=NRp$D!oUU
+z+%s0X=0&whulUc*ci%7T5Wja@pI@~Y+oY<&opX+&*_m@lhP~3w7a4wPlJAk15q3jt
+ziJ{WQ=j<DBG;k1e`qOef-^|Ytg<Md{bIr>;<$V8f)Ai|^u21KAp{>*%e@EBN_!!=3
+zw3WKcVVVv!SS@Y~o||0%5zrdZsjhV2!Z@o!v<2{fUF(b712DGaS=?vc?}+|0RO|kz
+zjJlWmTfdFxP31@5Q~W`nCwMsDY+ueZF<;I%svuxAf^kl$$~WG@|JzWW`?8|zJY!1Q
+zPF%SZI8J$Qbf~}$+Xe3S5~ICzN{d_Czs03ZEHCts&=k|ESH4Y^i`}6onsRR0G{PR9
+zbKP6m;wm0f?+oIza3o3Jo~EbG_6pELQ|s(A=f1XNy<dX&``QhizEyoN#>WQ55;c#+
+z5*49|$x%juJ05)_fBqWk8!zXJ6rZ;2hujNLzXxmLEXjQuNu7;392Obij<yH5dd>nv
+z#b;`XtOwc<y~+;O<};p?d(2P8ec|@|6|RvMhxv`Ri_wm50B2brc{AZ{3}4<Vu?z7n
+zZ6O{bLb|w-*VpA7E8wQ|=82Qgw=jK=ZS2h_&j+8ZaT#aT((jxKd?hU#l{uTs-x%k`
+z81E>2H$q?-OMRbb#4r~}g4chGuKFRV12X+i>a}>LBp80kjS3D=OJMAe5Qlt)u|z4?
+zoE=Fzc!&KZ+>CII%f2!Pq+u*}W&Y7$+S{UGk?q^&-Ii}Wxw9j^0c8scacXr<i@SPk
+zi<=jH(DB7rwhDe3GgG892Kc?Xp68&6+YJu(7&}e7F*%#IQoDh2!;5I+CHf&wz*^v3
+z7hpb$B{#S7r}MR#GB<aFFJySF&t55X2y$M4?+Uy_%2rIfP<cqn9dl`S7{NUS=Fq}7
+z>ubc<fqrx4pjGbxA4_9RNz+2#@IU!E=?~-1-FAX0@&j#gzh7^*PXJH)F8JQ_n|S6J
+z{X+dgk>8?D9{4Z&ov;1Fit+Awln1cB7`w^m5T-XKuxEIJvPU1{m9^aMI~jAjX%XPC
+z$PH?}H}Q;TS3ScQwelYQ1Wo$%Vh(|4TTSPIB<p&IIA<>)Urv$#pDTO1Yg3S6{C*kV
+z8n@H$RL=7&TQ%Ft*oxS<?@~4~!bt<|`R(dfv2EGiVR5F0#q+>#&J)MC0kmv_)wGB7
+zY!=|+jYl2Q=K$u7-xe^IDdx}VQ1Jo8cT%_gW06_bxC?bmXW~L5e&1@4cQrUKj8C^$
+z;&)|8{qF(ppijvWCn;RmE-|6i+&zfzM&sSlpv$8z^}g3`a5$$|0d9p;JK86FDc`V0
+z7)I%E!zlhkM|uzb-~GjWV+ek~13Z2YWjo3w{J#rVk%@q_mX=e<vm2NP5A@BlW3LD8
+zrZ+H8JHzzHv13n%?bu_C%^qZI9y6A>>?EwOcqC~=94}?u9L>ie7bo***9r4nWfNm@
+zwoj^5yjgM|08SSeO2#q6<3*nbd917e@XgWk{|U6;icV`9@qa7hm`*@@<O7zDZ7}Z(
+zp!XPqS7L%Kaf>N;sI~Dd$3_2ik!Pw@O!+e1U()px#qQUX^kw>seoFj=xFbF|CS`Z*
+z!$h6{PC{OO+C#tbL8||>MVz}h-OhfU%6e_STknzvVT`Xru6?nX>lpo{4&aq+-GsI?
+zWOM<)E<4=LKwUuHtx6^<zoW%1zp2HgZ7V0Tz@fiTr)={P_MB(n`J2GCH-Sev;RQ~y
+zQ<tRAk$F)p<q0it3}b=gvvAL8k~6qJ1s<-at|F@Tz>l$?mCda_!dvSS{r{pa5j<z>
+z4AlLA9=o?P+De(9K2I6j+M~H<J8hNqWnJ=tzZdy{{vq2wmv1y+Qkzln+DAS}@BTdg
+z|Gbh1)>gN;+{2M}n-Q!rz>hMV(CvQ#j#KEz2>G)hyi)d97t;3yv;zCUq!;z)#p;s<
+zRSl9G#t1KPX&;a{BARxRu71a(<i$^jyhwZV3YX_|mAqK*exbBO*5O~prn|zu5C880
+zyvAyH1v4@{>Q}Z`tV_nyt!((%@*nmlTZ@@bS@WR+&4;+hOpym$N}e-8e=_pixKiz7
+zhV}}KhSuMM_JRJjoltgk*>1O%?LL9ICXH^q1rWkKF2y{~_}u^A`TNB&=I@^;cAvkK
+z^!&Yc(*Mr+d;P@T=kMDm9pC)@C`ZlTwpsbc2F%||%-_n{m_O_ZSKmb%5=nAjNE&8>
+zHa{ymk;$p2HLvzuUX;91{4B7)v0rn~Mt{#TrWTzcHhZ<_ft(YVRs=kVV{c_qAFE`i
+zKmJbj{c*@nL4FV3F<9zX{%AZ$78=>&h6cB|UeHhCil=IU<K-R>b^FXEt(jam#0T&&
+z6Y_E)=``DTN!L&Pz(1I)39_;$zbJLByzitkd(})oC(^dizr|JXTHyRQzNddrG32vS
+zk+Y{HE;fuaJ+{bEfaQz3i?K)aaIdZFrv7w7<#O3yQl}z*cX$VLTb76G$HkE=M0dv+
+z7_rA7`#!M^{hJV3<eqtw(uG{{{cw`{seYMU^B-X!eJlHpe&@w%MZd@O!TfJr7xUB1
+z!6R!a75XfAEXGXzY~yhHDJ^i;Qx4a^YuTq>VDJcaN&f~IK&IOH*V3coH|Ljq-hGVs
+zzDL~0`rcW3xL?3M+)wFwy_2$KFJqeXZyM9}7}JlBV@#9vy8Wf!Y^U#X-p%>O9LR-r
+zMmjwg*V!mMC%U0h(cnptK_)$-WRL*XP)7ev-Hgau(SMB=LsTu>2bp9aWRiW5YgspC
+zl02uL_>#=XC0s|raJ|ST7U*wzw8;&{m3$f0KGVg`*bl95a_=tfF1LK8RLL#>4w;4i
+zHaC@amsv785yJB;fG799GfIywvrM=#-`I|Y9?Ln9&g?gbeKz0NaifxJLx6cGTkgX;
+zQvT9YC11<G0&nuG?SS)kEdvI%3`iK~*>y?6*%#`P0oR;pwy&dqZs(Z)J@Q{3U^xx-
+z_RWH2P|M4N*I>Yrd$gQmz>)gP9W%S&$o;zW8OVO0Q84T&I~RW(+1cunoe496T`zDG
+zeAKvkpN8L#6aO>t`{{{Y@GH)O-|IdlJOA*+W5cichA#LK2V;QegqdpH7msami#NAO
+zEViJtRO>x%Oj#l7K(SBK`MQFkI>#@1j|W8W5wz<%^&Xd_uR(jM$RL*iZ(qiI<b-y#
+z=0xhmPiDIKjxT%LH114g&T5H0MSO`P;!C^|JVER(Rdvi4k|=L(N^)P!{q^^rG~4H4
+zoMMZxqYiVW<v|W({87qv++R{2B0Nj?uF-qCyTvyxU&m+)$UGZmqY}W$IOMbVver|L
+znJLO25d-`G6168!iau;wioV|ysFSIzaZfRfRX+6Zh7-GNU6c(w{rk{X#=npJl)T|h
+z%-z+Q_d`mzN`E5JJ201EcK?A#Wh+$sKS-xL^+VD=?KX@<MS9|_ag|-|0m&guy?-V3
+z2R3y-bxyg_l-zovs;AUm<1Y`b@zVzxbhaeVuJ`*w_5OZa72bVz@1!Jk7CH8oR>nJJ
+zzf|3gF7r^)H!E_z(l<E3oq6CFVc^j|+<P9S@%sNe_%i_b^UewXS^T-P_}KXKs}nvN
+z{`~BO<Hw(t<^LZ1x$xhJKh_L|Kkop48h}5>b=W)L-aM2^Gc^9t-cB2PvyvIb7d#eA
+z{GmSEZW1psBKJwIZQ{s<*f&teY})U4{(nIBVN>OOC0D&vVutJcXL1u#|73)|)ot&Q
+zXWi%bp`6Y=NSO8S=u!WBz1DBqTZ((u<rkZ``hKS9wXo;QIv<4nY?6C{U)FcDbI$UN
+z`-C67M}Pa!>+Xeeo}t!*wc<Br-!X-@yE5wf1I9G5fqxQv3NOzwtbZ}(tGYkQGXuHy
+z7bQp2G_08dtTo`{g_(X-P;Wn|#XTE%<jL4^bUxdmxR+zKw3@Vg%UOkG{vn|yesfrj
+z#|%Yt3Abv=VY@it3G}Cqu51`{8XA*}eBxt4`Q$w}bC2+$Zp^S7>hW!TZZuZyt6ESa
+zd2=<)viti+I(;T{3Y;o9Lw&ZBdWJslat>mloU?ur@A&kY8>3mB>G-MGl5fB_4gAI%
+zTz_8)&j~+9e*k?hgRuTG;T+1qc?#{5-aPw0Kj-X1(IM6dti2)TG$y>KrWP^wK^DAG
+z=Y{lf+choU*fm|@D`igFgo(GF%Pr+!0NkYw^lO4MS0wMA3OZDIpJS|dQpWn9i#;G?
+z^BFWIEqa3n*%$xTO)HvLHXeJ|7fbX!RdvnNPjS!RZJt&fbDjq4Ie81XwfEE(_o+<1
+z@u-uh^U>yOnnv1D-s$7h<h~~7KUQY#QCI%Q_Ney=-DmEJyHfK+U%SQ~C3y@KPGr{4
+z|5Sfwp+AzB3wZQAeS<>P?u~%msiB%=HXVLb_R=feYfJQA`u1=#=U?1QUoCs-m2O_;
+z;d|*X$-Z)>YZ*l;;C+BF7<dF2ob+#k0b^_rDmnW8G6SR4wt`U!@v8@nXwT?(jC#IF
+z-vrb(1N%dc*|4i!`s0|a4?L1*iaLsqUdLj+&+X?i+n>bmimCZV1=gz%Wy=(-yvg~-
+z%*kr)cJnj9n!S2(x_#dx%FiGWQ+@`tEoIxmcXj$4Ec};z4uDf-tHtMFmB=?&b@Mq`
+z==h=woxJtR=KwrP{J1i{1D`qlaNmIf?K{Btc-|%3N1@fHbe8>(;G?juzw%L_&q1)T
+z#r;n4;r9Jjyz^d`eSfFMLH3>TSa)I0zg67RCt=~o)@fQ;dv&P0rntLL!b8%&@{f3{
+zo3FvbPTl6}{`56i*t!nS?>q*+xEfz-O|zZn<RVu?rUhYHjm`f%_`L(=Ig}YFRTIvB
+zdt120wbnN!jmpW%(Uesn=Tb)D`Pa)pr=II$wD%1~lewYIDGy_-pxx5=#3b9OuqGx;
+zLroH=<tncsw#R&}Q?#~EOjb3#u!m<qFD*V?r$k@6Qit~R8&m(l+Rrl{hRpWx9)mgP
+ztcP76@WsNt3dnD?+ZM+kb}7SgZ(16DSag$CxXJzTYf86?{yf67VT9q(EAx%nSLGW^
+zA(PSm)J$8j@Qg@NDRuAh2b~$Bt8MNk;|vhIQgPk9m9fHc%-5dzKN2e(EobHQ|KV8S
+zd6EaZS=N`~#0t+5ABR|C2yl;fanova7|$I2e0#R;XUH%%lKz)!J5gtQ(OBUC-Ckam
+zx)-c$Ce187vq!swd$e1w+g(psW!kO69=?+K;s8&;$-=&VobJP)r~}3v{E@m!o4$aJ
+zjzb?){&pIjU(?3R-{D5*=lD&XkvG!l{EYa--<6Hd2IgPY?-S;u^!wx;!}R;F>a)==
+z6&*hRlyk;U$~T_G9L2S+ZuX@Ati3RF413`-{k!YkRuujF?S(Z(N46I(H<ZrfYemP_
+zy{*0?-zYByCZS?$;|J;ICSpxb{NHPD`k{Grd(&qMyW5+-Ua0I%=NJ9&v^RaSuy=b?
+zpy>GQO#=*NZ<={|z7fVeuEjhKz2blG{QdSA^Y<64`~3CM^Y`=q|2yaJ7gq1{x2pf~
+z&ENOZhRomUPlMNB{?=jsZk_Od&(?5V51My<|9`Ko;j;cmwl!Q27}C~oasOk}yIq&&
+z8x4T-(A)#*H^DD<lW$y>Z`^v>{~lXIO`+12=lB25=*r(M?A_Lo2RPE!&|Y|KUHPr!
+zyWqGNFuWUZEx+`Chppju4Zj~3{%7F#SYhwBh7BEt@ZE=w1Aarsb-|A~SOIwM8ux!k
+zSKRz<v;C&R|E#XKwePWY#o@w_rYo)}Jbqnq<%9noUGb}h|2|#u?lJjBa0GUsz@3A@
+zn;m2GjYgCRN@(o=9sDtXKd)N<S^T;7IPhn^_0jNWt#$nP^OFbuJ@_-`--thJFH!ij
+z7Wk95t0TQMoNr7*u~3{#6#b_ED|uc(oxM(M{$>vwL%9C9Z2)ps#@<qbvGg~LR|PkG
+zVq;j=ZO=@<S)avvU+q!v-+Qgsus4;k4vArdddzTj|4dzdvTO_!w2dLd=Sq!w(ENHg
+z4<(3Vp)jT!b>{C=uU^%Z^y$21)RTYbn;q@G$~E#n<CM0G-uJg!H$LCvqi(#iOE(TV
+zv5ep5DBtkZ3VsiKU|ZCE{-K8*!<S{pU_3N0&pR+)9LCfg4*xiUjb(Fj@o~QIk-5M(
+zR!x7y-b{NysuVE)ksf!(F2MeOf&C6;#+|VX)OXqizDu4Mu1Qh`G<Dl+F*epAIp27u
+zTi3y{d&K4u^9Hl(pl!jYZ3~+uF7wpX&v2!#vNsz7_bwiNu29(!E>BJn8^Xd)8$u@M
+zr<@zPNZAm^XW0<GKtK4wE$%b@4!0pZ)$ilk5VoA!;;!!3WkU#R8v@S=<ZBzk>Dq?y
+z`v0K);BL}#^hM>>#hSKi-P80LD(cL`jPIQ3M`Wd|bnBUZ)a!l#$11zzr+?*~?2TD=
+zgVow@5b1Zg-5}eZk+C6M*6-un5H31~4dH*vZcx<k`0NJrwA~=L-{E!xo&hqCQBSqr
+zWA;C2w8!!L{k}(+OBt(p?}gw27v&pqlt%o%^#Y#5Hw>Ql|1a&kALMz(Kvn9L^tr>!
+z`*yS$q#1aAR@QT#+czYpkSZH67M>yT+7CLO(2`b(L!|QUB?2lQNx~!Z<fQKGc}Acr
+zw#YJ!g*<D(*g|I<R53lsn@DTCp(B5X-Y?|5c<{|%wSMv0zCF$vRH?JKAv}AsmuLLW
+z`XuCY+c3&Up+*!LPh5>B7+=yVc_A6oyi#&LCukqdV|+S{>1gAj&hGsKM!UQdRWUdH
+znt#X`dl`?!JwDJio^KvyJadmQp78l<Jd-dk8-;Nr1paakM8VS}jnIFb-#dGm|J8le
+z{67a+FiykzaEnX5xG%iAmFEtrC!)N`^RQfV<jt3Tv&Xo?u|-%vs~F>JQqTTEZpp;3
+z{N4ec$)SxqmS7!>!Nzq+xhv2!ewD6sDC+!VFLhFe{5t9*oQ9pJU=amOhMiAYNX{*%
+zLOd4_dAX0~XON$T-|;*Tb>aSPjD;BCv!~J4M&>YQdz5c!yZ2DGhFlTS@!3fC6))zQ
+zp6KR%XnWuzxyoK%6-j>ntt*pX(ec)n4sUXsQ3`KlJg}yuXA$7AzA1Uq_woPmH9~{(
+z8HXcW+ngV+jYdN%7FzR|Cikng>2_<lqV?ve+Egaqfra`aH!FSBFw8?U_(5*fY{#5X
+zlq@3svKV_#)$=)BN1?8R&kA%M!*v}eW6VCWOG^w<IinBSl;V7xe>2bZE8XAyJmX|n
+zB{8m%hRU<$75N1?@hgGHH4-D9<62s{#-%TY$C%96)|+!HYsJ6)^KWUMQ0XwHLR$#@
+zV^bgWBck+8K8*)#-y2@mdII}M9)tJQ`ThD<>VHnU3b33^oHE*$qCG!g*nCIRvgXN6
+z^|@8EBnAq{dZYCDtGdq-%4$WKKJ%<8^$U+=wV!F5bervea8pM+<342CehF<a!~3I)
+zE%%BW!^z9+O{qN8ms=St{JETMhWs+3-kn`ppQJo8+fuSE@!PVhQ^&_=rU{>^G?uwF
+z*k7e*|N7)e1=csp_L2F<b0hOJ%h?FuoG)wo<nA<k_`0B4&qLz_v5v83jM3r~)briW
+z^^f;?u4~JFtj(-<NY}ZaS&RFmbJ6e%dotfVh;QOIsrDc3(SE~G+JCf{_UGaKTC~4b
+zx9>Gx*z;(QKGgQohud{KnX(USaA<9dJ9MPdmk+^O^Ja9);M*f;JF}LF{qGR>lZ?9%
+zQu+CgcWxNFl5~YRHj6ROtWRQGg~^MLzn)xmK3D6{r*f=;k>IyHzsR@<k1{tM^AJWB
+zKweqq`lu_%7!ur@$a!C*&5vur^mO~)U`PA3-InYVuXs3|G(xv0rwuVA-sFsFmOCMQ
+zU(y>=`gzL(ev-}0K;JLWaSlh*Hc(uS^)xwAh5qcp+M8A!biJXKT9#g1;<Ib}GbZ%K
+z)6(tRhAV#o+6{8$jCL$B7WXIE&2Fx-Y)`IHEB;^?O`{ASOMH@7j2-*qvJ3FLncp*}
+zg4BPFoCBWLzs8+3qQ(v5Iv!;LN(6=RL%d;irX;A(dUMY;LSlF<cYT%1-QsYq#5!f(
+zzEL8ZvhIdfiNm&iVsam7&ye9=@rt~m##Y9yo>9RuPfeVK@lV?wbU!8iye35&VN@-5
+z^K^WCQ_m6a6-O5&iz6%CJc)01Y4Tr@BfS!%b-DC;H}35af3M||8;|XMNL#q|Ey+&~
+z+)6S280UDeo<E-No?*1Ov?b2yagO$<82csTJKD$Nxy0e_@q8hke-h8<*pL&?HH<<d
+zWNyLrov(GI8!^!5z!;o!^Nk4g3n)WTicyTLKc929+b^KTIB;(`>2ucXCf}Y`(I0Ky
+zmGqb~?=+vs<+}fA*19LIO{?&fbgusbwT`PGcT`0LC#Vx@GkeGb{p7qf)_D(E?8B;0
+zC*Mt{SDk}(K>5I@W$d2c17536)9?88JJjF!&dE2NvsHYnf}@;mJt5fp+17PuYn_XI
+zhwz#>#t^$?Nn###=2a?QIc29)MUOE>&Tz#bM}H>V#P<`PP`&W10ay$3wyHRuqJIcU
+z-rIJ{RC6(Z9~5-7GY*6FA)?}^cr~xAx=+Pp@lkJ<;aQ<&5_{<MaLmh?<$o^dii1P=
+zGR8`x;Bb5VJgsMO&Vq!6IUj=Yz4r{}9@jm?@{JuR7QVGIdjZJKMrgImm<K+5b1U$t
+zuW|O<JTGVNg#1M~lr<%XgciBexc<<mysD=D=2o6nZcO^BKHVSB`>XW`zF}4OH@_4s
+z%8kSdnQ!c3@y}S~niuknbG5|S_YJCV^<fXpJ%72xles3rb)Sp%1=$DN-I%woFqYVw
+zkNJ*9lJfz7#y943)YCr?b^EL(C42CV<OLcOOZ>Ga-OfJwtkrIw#C$n&n@OSFxX*X+
+zO+cR)_t}j+|J2TQNb^WDD2r{&SMy36zqu3ez4V1W)Ms&zrQUVCA7H)n-A(K><lBF6
+ze~9*ng5Kp>_zu5^F`tz5aZHkJO-?J?N*VYd5M1E?X$5zQUBhn}O90<+43hwV!hXUd
+zEiUJT@V7BO!d~V9@6$hw;}jcn);x^P%){26FljvIJlvW!4}&xFur)IetGmrZBj-Wj
+zzNBj&j?gCOfqpC83wYzJTK(cPw%RS|We&ci=OCDwgHIoM4l1+efO{~)pY;>&tpD8(
+z1@|@$cl!*5_uXQ)*xTI+vsH|Fi8aKy{!z(iUsl0<qy^n$19R<V;;x(vS}^^;l%9#c
+z&3S8E<eYxMUM_Mf<DI;QKD-B6XK$b@)>t0k^NyBLe8X3^5=LyFdltsq@=m7QH9fTy
+zw6w2Xe|T&XQ(`31KPt5ouvm%usds1G^#&ulhdy1*`{A?4B{^4Ki?JS}4r3qq?84oq
+z#8>d_X3li>)zE#V4)EK|KTX{pV9QuKVJ~5WdhhIz7&S9d_gC)4+=rEKJjZ(n|BpwL
+z!5C;{c%fqkrlm%O3*0&AKjW?RwQCL^!x$B>sY3ETUzd7Ve4;Sc&V6y6^KNxo^bf=A
+z0{2|3snN`3YKPs?%-u2q_=LF~);vJs&6}aINygh5iu&y40?`Lvi1~TBPRTQK9&Hg@
+z$LOj7e#YWr3>zOdEuuF!Y8`)Qw(~o-SEc5U<1%DT#}YRICZkWq{y(5~j(QGBtA^tK
+z*E09*=GJ1&<4K0GwMfMRdBUUP&-B6d%QC-eJejit!#VD7eKOPE)w;i#zEW3BpGWFi
+z=_CEa!G`RGJmF}v1@~`99n_WIjq9~|caO*?*U3In=GOR@#NFZd=VBbMX<gM9-dDWn
+zb6nH-|I2x5kM#u|=Y4#<z^&BpjE@g+8!4|D16<ypou_<9c)ucCQ1SquaeuG#RFl6I
+zgNBXNINwLF9UI@@g>Nfxy#v>?I4;KM=xq%wiX}!#%%S^$Pm$ChSqt|ajz^0)f7eOO
+zA&ChD+^#e3+e7{K;cMW&Ue^HQyP2VdNl$Z~b0Ox(V{egIWu|psl5!o#JOgm&c&Fpt
+zG7T5ZOBrce2xGB<o212zW%TAJ@{Jjq)>ydi`F=<GIq>L7xL<)%etQ1ly!S%#-Yy<6
+zO!I&Y{U6$c{tNAob*KFod<@$Ec5WB#4;_Q{_o@D9v_HdlV;zUn`@iKLKhNEr+ePn5
+z>q+PD*EIewn#NN;Tn5@Tt-^AZY{>N&+XNZ#Wx>nNc<xhEGkhLDWy2Z1{$ek~?^1~w
+zne|7xID8a+tFP*8_ZRwk6nkPm=e=L{a_{9{?rrUHkNyAkQRLej^Lv+XUp_V8p!~`2
+z=@)8R4?5n^qSjKK?}+^Djb7@-o^2t0TUo~&5;Let_9E2BNsJ?-DapOVw!KT-_cWiq
+zxR*W<{??$b+#2JLqd&hrMt^>Loc%fJ2>pqMy881R`nGq1ia%5g-fvDI@6~xuv+2p?
+zuK0itK|ZMyUAe^hVl4Fl@uV+(f`>0_rG3OS!u^fmu|ls^Z~29XRizmB$uDsv3U}wI
+z_>N_!oWFwH(9jh>F@s-qz35v&Q#$qi7xePHH0$}8qu}SCr5)O$V$_SY@%<&e)aT2p
+zZ)`8m59X@poX=N}f}cOk>m5IbhSc8e^`m_Iog;kv&Ont<p{}aMrB6QnoxJfC8kc6O
+zGkReqvu*FC{-DMw+BCLnoC<54qOFtu8jSytjawO+vZj|l5snq7bm7*FkI=u@j?ur@
+zK4Sl_KSKYOp4`>H4X02aiG8PYwrdf0twk=+O)x(I^OzMwUfHhyr`*qYj9c{o9`SL<
+z8o_VcS@tu&=-xHEsh7PduS=#qow_H(DZ;bjZ|Zj%bRBg@iy!~{n7_u$c&)ex9<=cr
+z`n_BAd!)~m`Zv!Sem$t3M~oJi*Gc*rb4`uU^v`s>tb3IH|1HKa)9+6^$uw?-koL_Y
+z!x#-1{OH4TP3seeF&Foyf&=WQro=pH+SsX=&A99GTc(_N(CCCy9}TDHbiJ6n0R2|i
+z>HjIy4aEPe_5XxTSdXU>_uk9x9X28T&K&(6W9>m6-I_J-zzqHSU5tfsqBG<EbJn=I
+ze@JHh_|>=rw*JlYG?YUw8)=r@JJ~SaKWIK40zO<d?Xsy?TsCz$$C?>8;XpWL#vRn-
+zUa#w-tZeD{oEdyL1^=IGOs1cn_<UsM`bS3?v)N;wGh?2aHRfqO#ylZw%;6qmuE-km
+zupVQ6|0%<G6@t#N@_gf!{Z9?J?u=Yx>J?**OE3QQP>z56m4@+^J5|2AA)C}$t2}+i
+zWGKfDS;k^K7-LF8`FF%9KXm&2)0bD}bZB(C<)Xp*K1auY=lFI+TihL$EpASvDapN~
+zU)#34J=TA@{)V>y&*yf<qw@iN)NM)}zpOkof6!+@X7+@&?G(}1;dR>AF(&FSbBsT_
+z=i)cuyJ|SDwjEv!+OSG+Dp%>)^0bcaEqxB;vfK<knJx5$?epx1b5g!Re0d&n>^w-l
+z@1Vp{Zbgy!!x+odx2{YU124?KKiJH8wIDrh{ZTNsHtOR0p@0Uo4PhK4lme81oG~-n
+z=-);C^oi7&i=NtOW4t8ErKs$q@*el=l-=k*upRSMmV5aAoZpVUTE*JiIA6sPz6`v4
+z>RT#)apu{x`Wa*IeTXq;?mwmPe+Bpdo^}5_`u_JIbGA#a2{qQs(OxOa=_se^ai6Bg
+z$t%`N+h9F@!l92I|JbbYpPV&TzlPbZka73US9^^)#+t`p(dU4+>0HMd-QpW{>K%-s
+zGsd$ge`+cxFtz9(TK3>spfs+`w`T@osh?=MfIjqW=eN3@ThR{oLr?71=ZiMyXnX*E
+zzl`_j6XA_4ZJn*(e+Tcc!~2su^_fcrAGvR3?8tN`S5%~~^<j-;Pvso0&!kTTY2z}+
+z+Xb%8C<R`jl%n`bRa`If(KmBi+*6I|snNn)A9SXgM&NzJ*tt;Y>Nnnx>nBWO=Q3Q!
+z;@La6`Y}hhn?~Dsl+U5mq12<?fU-<qFG2YfN(f~j$|)!(qm-izKmicjKqlKtQBFiT
+z0i^^5#I3Ce<!qE;x{l!}XP{h-5=6Nk<s6hDC}*OaiZTf0JpIi`lq*rr(tR9^a=NaA
+z-y8rg>__>hq1x(?@&SIoPn^Q<z9@ZkTLmZ(Lfi6nzj9G>Q2Z!96fcSg<<I!mHM-s%
+zso&|Zub)KOhv&Oc{(!O*<@YFWqWsQK@M2%b=rO;Cd!ul*P)rmcM;j2V?QIkYylq=i
+zcB7=Su9!f9^<NA%9^T_PGS3Jz*3qip<6Q7t&VhsLc9h@fF>svh-)ktZW<C2Q%F8G(
+zp=`;zzKHTT%3744qP&3eJW32@Bg&6aHlX|n<%cN$jq)7IvnbD?JdLs*<p(I=M*-Vu
+zdlID?<w2D1p{zssF3Pu27V5ShLwOYC5tMqA7L<ok)}X9Lc?e|{%C}HfqO3q!j<PK4
+zx)^1V9v9ns0Hq0~v6nVt$JxfWv*7Wse4pvtQj{fGeQfTfkN0bM+=tSDvH)eihDRMr
+zEy|}*E*82!J@qM-n=n-XnzCyId2`ee|F|Cf_q)PN?@oc92R1y~;%=yE;hD<hK+u_-
+zBk<o9n*Y)sxWG@}x9<Gc2sz#OFZZr*ccgcYvOx>uwLD*&s<0=?`PK>@Q{(q{ceGc4
+z4s-AKrw;lbzU~IZemu2kX9x2VaQw_;5%Yq67mfX9EH%uc-beLIa@u)X+|fGD-#*GC
+z=o4js<L`^zcSJskQ0Cl8`p>i5KYmovW5ziiVytmJxsg=Jj12<sKhu*JlRW|3ATJo3
+z<rf4xzl!uXCGm=5v|YC~4_7c|PAtgRsa={jQx9nt#8UJX^x*ni%~NO-tu$L0s{uSQ
+z#yG-lvv7Sy=@J#c!j)%-hJ4#-f0;V6=hN*u%-w6mUf+^V@7#g^={Nn2)07Y0@_tJ0
+z@Z`r*&$Ax%X`ugbzCr)I{do6T>1!<YH2a7)e!wgC4^L5tjkdq1`5w=JJr5b~JNzGY
+zKd$n&q!_Q`uRk@~AK`t#i@Md7c#r<w-$XkP$u*Yx7TZBR<X0!)ec@Lx7!uR&1zZ>5
+zx*1o-8?f+x6Rv;vDOoF^Wv$ul6Zl}eue+=@wF7f>LcXyNGL}`CZ_FvezOs+k09`ju
+z$nhAva6kP`!`OyrY3^O3>GVPC$nsbC2=Z6OQRJ^r97X;*Nv@D1!Dln=e1UWy<ua5@
+zQ6l;}USGM6$Dy37<)X7uhN0Yyawf_ddYzw&GDyoy!?WbKDRoNb`t8BP<+q9Y*`kBp
+z<+n@qegC2E^4lf){zV6s{6-z?LOlohSva*@%S7L;>yo|R$~uFcEqg7fIkxPzU9Xc@
+zG!AC32e$KIU6<_jl9s)gr+JpIciF2?U6<?y`R$208QIIG>@}5f(934_kiCAO_mNlm
+z4qrp-^!jFQ1lldI9?N(RT;36!t&{gCzs>EJZ|v%uZ#;*x8l?ecCQ8^cRbEvspZC@A
+zRvA-!CjJKw2EL9feME){Eu7*#C4H_*zrB0K$9}tOhH5<gcCXGWt8`gYQu1DCtmH`k
+zv&1&vF6RjN?t404fFp4kRNM4(XKd9QSZ_%39R+~v3(r(}SOb?R7-4U<SKcqs@4hd2
+z25M5gPoF{doBQ9-;L3fe&k$eq0R4D57pi}gB?kh(@!(q(D}OKb<&txjz5&dmkU6_U
+z|3qIrlOIOuhL}g#u$sl^DWLPj&<ERV*E!xntF>)pN|HMB!JdwGkF{)%Pw7w=((mdN
+zPlwpa=wB^)hp#;Q?eg_a$r+T9B_F-^m5r*nK=pUiu2%0*uhY$*GA5R&qg}32`8Lq@
+zLEd-M*V66hG8d5@-<>D<%H}77_ohW}f44PJbW)+ct1u^3=x1zXIrW@P;9FOp{Wg6o
+zc$Sv7k<Z_)VG)zKPyxnGqW+1tOux$0+ICr1TRv+=EB!0}{$KbmLL1qN)|APZ>^CHQ
+z(FLu{d0xWvMYtbf-OOod%ufcuyMAISdq%!GU&8#BWrp$#59AKNG$}Fs!wVcUaw+O9
+z-u-L7kLUaKn%(!H($mV-{=Iu{Y--Ys#fo0lXC`Pr{x#_Bu%ZIj9$erK^%l7FWnoT+
+zv(Xp3Xn-3Ao`fTX$su?Kno(q0F)!z7sCR(7XHWt7c!BGyddQ6cM}ns-U4$p}pi_bR
+z=%30uJd+BOb4;Ub7{0k6iFs>Q_AcyABzCZ2eamkT9^i8SUplg&q_n8O9|fNBTb{A<
+z$=NE%8giB=<~7T!@vH#2S}Sp^g7{sG_BIWim}EVp@&DLMfZtDglI0@{+|jsaj~pO6
+zk9!}Sn9RfTBIZp1o!gDMA5~l6hET$&V?5rUP*fl}*bC8T+Qz=HTjh)TwmQeQ$7?TU
+zZr#B6kpnXM5(540H|Ue4^Lmj+Of91RugI!T5?00NgN1sx4N!EC=fwMK`zhaT7ay&a
+zZXVwA7}wATx=_wippA0Cp_aIB*C)MW=yO`_n1RWua@2Q_KHju70{`<uP00|(z_nsT
+zqpmL!l{41Nmu8_48}3qeCduP&(%w5iDe{)t&^nDeGPFbA*yVGT&DyZzZV>m(%K75E
+zm^Z7yC9HV{i14iLTO{#oum)2$;6~VDZc`a}<}E1@xbxhIHyraeimvTC=A#Sj9@*k@
+zuKwWBx{qN06l3OqNDIv0N~GJj;GNg?b8m#cL|CKRZ-Fqa!+3@eN5m(tx*ILXi!=eR
+z2e?Df2JLP)&Fxx~W~eSX6wiWKlk5ZA{x#aAevABYcW7er>8Rvd5L%GQrNyzlD0#G2
+zN)GR0iIEMMRWkqkj6`T$ft=5x&wZQ0yo1E^YgDY6h&s>A9Ccz-<a5lk4>W<fvodwI
+z(GERwfYgWgJkQ|U3iS1P$kNYa-%!DIVpKb{BdzaGn^cYS<f$$0jTd&b2L~(Lb>6H2
+zB{9nV)(Y_{<b5x326O1KXn$JanuW2%8bjH@-w>OS<Ox*YI4E(^>!<QUtA$VXmHfQd
+zi0`R)5O}Gz!1cu&lOM3}k(J^zn%4=BWeOfsyWsI{wB-jpC>M+(PT~2Da`ukCjVoNC
+z6Lzgb|5NYey4E1-Cq2EBv2`%l`B}L871Wi-c_*#0(I4QiSs61QlbkiN1n1WMY8MW3
+zP4VoGSy__|0#6x7W*+3G(HY#b=<_f+b(Mw#b*7|M=L>I)a7~vHPfXCHOBpi^^LT^K
+zzXsZ0Mw}@{n-<=gK$;M1a&N9y>-?|WE9qQ<<T1s2SGc4lkhKE^+GpamJG*jdhSBcl
+zzLr+GF(`{*J^Rq-K<Ev3^wa_FKTe(K{;@;$If*m=qT1-_NQ)onxrXw!Pviee%7&<G
+zi0)S|c;guz%Fkyvp8p(m5SM0Se=r+z(roeDtN~utIK(ODSNY`y9qp_`ovU3Tz5&f0
+zU1PCuuSEM|%<JT#D>`|oO~29neB=2%$XO_*==e;OVJJTX(G2J08^8A}Una?!c1ep%
+zo<v{2o8F>sY=*>7BLAHWK69&C;LZWhxd-#}jnSJ@X{>e9&pSyc<Auq*c!S?8C``@X
+zRKRm+fv{1?^K50e77pk<D|+jg0VRH+F-99@wyLc2sI=Y8)Oq(Z_aGCO-D(bS=_hp$
+zaj-d(#GXHJ>u|2o>k?~Ceox!db%}@Y`_@4NT(*}VyV>byFYKg8{Xm-^oea5UjN;{-
+zuhCgJYKHzP`g(Ov6Fd&Mh2Kl0Uy+#kRT<BTlIx!F5bFoM4!o^%W@5b;^PVv+!E-qQ
+z=4!PkqrNf8nc8oMdm+=l)19gKQyI@_dhjmkPQa+c{(p{Rf<~*h!zI->{-VgBAALmi
+za}LJjvFcNd^Rz^tNd!L+c=b77_E-EI^jVGH;8~spnjm=zVyW3Sd3CjOt35F}1M`;)
+z*{KfmX&GgyyFEr(9pL*#>~p{)$V=M}j&5<Mn>}QFeYPh<|2Zf3VottYrRV}_=TfXG
+z-tV|0-QEXuBG-tgX1)qu4)}9U$RDfFew9f+cayX09?DyF$-9A9nRB>@4k}(xzmi-z
+zU$fn%%)edi;!*MKdhcL5vtJV2FbDi1MHmr26Sbe@%vT49F2Nr-QRaYn!LzL2Kwa37
+z2FfwUxtoA1iv~#CD#(+mQ00k9z^x=)SWv=q472%7WrNW48k1)VSEAnyZWypL;wxR&
+zU9pM$p8b47>TUq+M?X?PznYZzP~rbD>dnY*T&phnA4c63fQdhBCAr@1!UFeY)H8Y$
+zY2`ioEX&N!^EaikP9|ZG{|4}`Uhu9+@NW8X<DCcZYP`E}bRp?!{b9K037(kB@q#Z5
+zXmM`^A2zLArw()GDXW&VMv#33)^%8ado?}V&NZ&{q}6`v7e%31Z4u@`VwBD1eV)-Q
+zT+(Vpo7_wut~vPrV&WWen0RiA>>eN=I~zDj{PkHY_wakun(vTb8pe`V#yRtZKIiPy
+zI1u!xwljG!lUP%nC*r=nN%1u1>aq(5l$cL0NX@|9-hlZh&Oe1Z@OkPV5~ovrGow&_
+zBep`o^xy@+6O4CDd}5Ncc`4?8;w2N4p4EY*Ngqql#+A6Y8hF51hnafJss%~blZ&<~
+zWBeX_4C2G5JdCBZ(k0LGTT5D3qV9XXq4)^TiIf8_nf#iWwN1G0A#cTZ{_ql!!%n+{
+zd0!!uTJwd6E$lcXvc&IA=CrDFmU0|eyU&8gsqboAe<%96XmS+RTM51o*}zM?!B1SS
+z<URtwF@GtuIhve?@n9Y)Q?wDcxduN=T3cD4%+Y@9{q<V?CEJv}-shaV0oOl&CEY%X
+zG#K-|1nm=FxaK8ZEY|4F8gDT7MM68UzrcRD2(n3_lDq=4Kwq7Ebv)Xr<T}K<<C-S#
+z^%z!)I5k@2+3QoFXXYgS*7!x-^6Nd@+Jov`d86omr)AO0>pSV?%N>vpg;oM*3h4_9
+z9*lXLL7o?y=;3>yp?<c5wcuahA^8eZ8_}0rH<7OFk~Q{O@OAQt&)~Y{lfWCUvF7`d
+z-Uwtr(1SmBq$PKYC*%iifG>q=5<!fMF!&ChePRUg$sU~a>N9LymyEk?V?3nU?9U>+
+zH`7w*{yzO>CATOa5Uh3VsYv747tj&EY5&7-#wU43Z-N|X$4^AbmG}$dV>gv@aar~E
+zf00@*dd3r}!zknWw>(OwA`B;<J2Cmn*A;$l>VcmxaE>(Gd<JkjT;q7Gx+K@?pAQ|9
+zyu?dQ#vVN}<pUl4ho)~HqcOP~&wX*`v6<iMGgnJ4o4@n<AT@W>zoK~axgpszVE*GS
+z-)CDU<M+vZ$drQ`TZ2`Aq21upKV~}M;|rH10n?%>9XzXtJsoKY`biml2KrCBFL~Ci
+zSx)HujNH}eFu(AO&v&$s?@+mV$KpDAxT0(S<UHWJ8CVy8@1VYSrP3dvo~JohIg`=g
+zzC>DrwipYNYr<Pd`#0s2DTy%X=>By2%r8@Z#F{d(H$7MD^cz6`Gx1C&;P-!PdBbBW
+z-PdWR@^z#f^vm1R?US&EC+WUDfM=67seM+k@)l>NKJ)(4or)Ls#XhrhU&h#-SO-z`
+zWiIOsIf(|L6?IM&YxG0vbwWGjY!3NeADzS3E4*YA_HKJ!?RyuPDLw<+OO(8(^kDCc
+zj^w(O8QSDivehOxihfQ2?lQLMntkc^^+Q_RzIHUpxVWTY7p4!jGgoz{kK@s|@sMYS
+zg8$@&o05%yM>FmfQ3s57@7~g)@;inY2WCp@S<DT6PJ50s2kV$;@UVY2#ur1j#kb>y
+zze>!9R^m%@q1tmZ$8RHkPXG)!cMJZaXcXs=XYqy_YQM9JzD||Ra+Yg_&L6lL>u?fj
+zR7And13E#OU=r&337%0`<+m3)qXC0{*?VM+P2w|XyV6R)o-}I``myZpF4>gvut-1J
+z4ym}c(}Z_Vr9W8VmP1&>eNUAA{iZ|d0BPh1ymzE^X%JUIv)6N8BMmO)CxdiE)?$6D
+zZ!*{7^wjwx)2Ov3ag4d%u-3TFg0TkooDQ|``1|eYu5~<owZtGQVJu$y|FbO_Lj!pW
+z&&Z~3L*K|xH+a;#tNmPu(1|HJ?uU*a9k>mB8Vww8$l5#PKn@2Syz4Md(h0&XfU)(p
+z>$>S3*sn{e%L|XEElu$I@1Q4y;pj01?n?AQ`2T+9LX0K8w?A_hp~1bBumima8Y}l?
+z<POuS6`6ze?%c2N;sALD{$I`i!)k2j>v~t{dYA1_caEQX>2o-CtcAF#WKW(M*ihKw
+zZWvBILZi^2^@Cd6iRUX_>`=(<X8wsO$mYUtPC2AtP8vYm{l#sX4rrcvI(5ic{~plu
+zPh+iZ{!rznHmzv?V#uC-u~+YelikGpnTdJ8$*1Nh`hKp+U)Shdq-rj{MHv%)04<br
+z2gG6aJvdy&gk^4H4`^A2jxErB*6d@8?%xjJ3h8F@|511S(NR}d{yRSc6B6Sj1e*<6
+z7-(uEQaeK0BK{gR?Matd2Mn0f$Qe&*2{vHtV$E)22}!`9V22U}A(qi)E9Wfj(r)c>
+zTdSe9mAbaawu)@EcIG=ilP0c(+8TdkGW+@5_mcT$NFb=YXZMfq`ObWQyzhPY-Fx4C
+z@AKZhL$J+|sc!nc@a6P)b&u%PVaW0KgQxmFkEht*Ggfsh(YIdfQZcSk=Dv{D{Jzw*
+z-!YW`DcIx=)SLO7M{NvvH3$9?>rOi(HU|D&1#C<hc7-yt4fI7}XNVn@cyg@+?p$j=
+z2J%;d8P(q$PB)x0n67%;XZdhE{g%(Fh9gpG#?rMo?sK6QILH6$v+8jKaQFkWl?UH-
+zJ8TvA@^^?$?igdMyke`CbI!?n1A0^4Gh2nhC$V#W*ecXN3YnMqC;@G&T2Ob|kNQ`&
+zOnS3y73|au=5eL`vp=AH-zf7qJ*pLLSdBX0XY`nT#=>>lSL%XnQ>KpJuG{a6CSEn=
+zk$J)V{!Y8V+R+z)Z7D-LgmJw#kf-YWd8*oiJoe<N*M@YtPmIn>jNi_$8QESlq;ss@
+zvR>=GmCod;cUfW1g$dRp`}?g{xBks|K5@Bz{knAj{{{T$z2GuGekXMbF7wDcsc~_c
+zh6!+)+3U{^mwD&Qr{Xf-+Mscnj<djJT<gz_%f!EYDlT*Ph72xq2kJT=F4MnmEH1O0
+zJUI(oW(}V|OI+s8KU`}E0Fgj$zl!oy`P@8J=FZ?Uw7KO)8C<5sJr<WKbI(+7!ln!v
+zT&5rXPWOj0xJ(7g`x5A68N_A6@b3b6=eI9t+s5&Xe-xM5n^Qhl<1+b0c{zM1e?i_1
+zVlxu2&0sNt&A@l$II0{pWBihk_n^}oi3#AEZvn>e^=_NEjKrobb=!Y|e>J}?PZi_v
+z<9-m&RnE<mx#T?1B{4x>%FORPAoxp{;4gpWeEb3@{_^Z8_{*z;zjWB-i4XL6QGVkL
+z-Pb6=U!EPsUtTu&ORlvdksFB>o(rAb3OfCBIUe7tahCwbWz&`={h+bWiMyaLD+c}S
+z&n!=C-w5X7#dklqE;Dca<lCt+n9KG2W|8*)E}^f?HMxF_HRf{Mw#An56u$LCt~psS
+z7H=uX_k_3bDMolW4fL{&{8pj(V|SbJDd#o17w%VVlZ`{EF?h>!mgaLi+P?+Q+-~k?
+z<1OT21?o~#G%?;1z`c^WdK{4R<*|568SWh>UNcwYEkAPLEtG@h|9C3i!a8T;EyW8m
+zcuVos8GPX$@b+|g%NE|B0B@OJr16Lmyrlv(Zh(KdVF8Y!vGd{$bK!SX!ap*yM_GA*
+z-(&0s|87NWh2uQl7p#Q13w*e%-`4XZ$KFS*Me{;qEyc?+yjX&7jbJS!b-UJqwTSMI
+zgSGrU^Sh&+ztfnJ*;0|&t)nuF`nvwv;4Ey@yKmJ#ro;u~Ja%O3sLY1oqb1)-jlo!!
+zIxrU69Vf;@*&xPJZ7`Nq(g!bRj#-%x$fvI0nM(3Lyj|sfRqOI!;2WOHIOtA{1@xaB
+z*1p>xUeV7Lr8Q2X-qPdc>G)54iFA~hvWb&?(##LNjdEW=8I*_9;UpUu4iB)5QJe&J
+z^w4mI9^xb)HaN+)ad48Waj)l3KC1@Dd>kV<NrS;jUVPOzAx`pzES#j1{xSTQmPz0w
+z8?tbcX2)2k`CZ^7%?2l#zb=E5G*5t&a17QwNu1=*P5(b|l9u-oCuuM^NtXjB=>mVZ
+zWZ@)vM!zP)Ntz8#Qh)PUoP^iE|D_C0(r9p!W`mP(ex}vnB;RP#I7x>CC%GndW}IYk
+zDua_W8=Ryi3nyvJ!bzIP!AUwXR%jjvCkY#zWWxkFN!WptRE>j^)SLk)+4n|zAdIrB
+z95_kH;3PHwOE^i*S>PmHSvU!K-Sr-Ek`}!G+4q2x6sOLNlY|^NNyy+N4F)Hn%>QB>
+zoTOnKoTL-=eb(S42hjG{W#J?TaqZB%#7PdK?D@?ZoMiqaagrBq9*dKN-W-dQ956V^
+z+FMV>Nvff5|8etJoTMoWCs{oSoTP3XoP_fh-M6F%str!^X?&mZ(mF|;q$vw0iQpSe
+z1}ABpBu>)ez)5<}5+?~caFT{`aFVVpoTT|QI7#RGgp-5}PSTKtlcX9Z#z|@%I7!WW
+zz)7Bk4d}Q%gOfZFoE%QlJvcs2Qe$wEy@TW9BsB&n$-Cu$1}EYAiq6yEBn3B(#Yt)$
+zI0@}Z!#Fs}n!(B8B;nKGBzqh<N!=N6l8tEhdgySy11G5;2PgSz<HR^g)Pa-iF*r$-
+zbI0r7f1D%=I_nHha{ZrA#Ys-QITk0W&B95#!H<~1Nz|L~9w#}5cWbk7l9&T0;rwl#
+z!AUOfojgv`ycX>-4o*^!vTj|Q!AWY)fRlV?y~auELC2Ey6XPVSPlJ;*o&hKM!5d?7
+z68cX+Xn6NH$wLhj<0Oy2F+NVx>A*=YiHwhvd~mIvqunzBPEvCQoaCK#8JvV=Jami3
+zNoovEBK^O?GoCyPoaBuxoaB)#oP_26n<@9Z<KQHn1}Et}4Nl?;P7WuzV~w!`6W}Dx
+zC(n$NY=caG{)>~xNhrgelf+4u8~UD=^#mE5<j@2-$rES5Nxs=|Do#Rv-;jlqEIxTE
+zPV)TV_&7<#;3Qn<5;Hi-i9h<R7938TBzpc}x-8+d;&GpKAfCZVIF@d9;3SW{=(8$u
+zy!nF0N&bEC>~WGqgBmA^WZ@(+2Tnp;wawrpMX#J5C)s0g6598Vt<yM3)L{NjoaB#R
+z%-|%Hse5kK?e|`AlIv!lijz2f+-#iWLk(K*&lV@iU6bw~3hq}!X!jw%j_WA#(CH&L
+zwZ~my&P$=c4s=QXRUrFXmL+H4JP+q9t!2}>*X2U|&XvAb_i=L=vnkY3#JPzJ@S8c|
+zyb(QC)j2P}uPV$u1#S56G5+LtUKXC|*tkU!m%0nKxWi_7GR`sg@Qokdh-)6%OS6n)
+z0LjDgip+%_Rv4@Gufl)5|K_lIopEaLoq<()O|DD!E<kjGn-%k=&i_xJ)d4v?%-lR@
+z;D<~2@$6ai!*v>daNZ`HAFgru;lg)aXUPxx9!`Gn{|G-Gnt&f=$20sG!9ZkxJY;SW
+z<h2|&z#E#QDj~O*L5_pC##nC5@o~)^=>f**tNqG;>4UwYHoNA09m7WQ)4}(vVT?Ys
+zZ4vBF<;NN0u!s0tl6v6jxijvK#uC#FZ*Ow&w$SkQT*KRQ3~%!cUwOR+=QWg_)(-eV
+z)O#(v62sXMYtb9*5}v!lo891ty#FVI9T6*<!FY}Snd-{mRW{?Kdjo4*ubvaz<i0qz
+z>AYZj8|+X!>`<#Ovc2s#j8k*PAK7Aup~s6irU!xnjk$z-c;14eRq_`FBgBtxOOn20
+z4!d&|aURfg0lxKd_^*|CZ%(krp3QlQlV6WcG5gq^d+xa}-olZ_^<f+-v;TRgV}C#Q
+z+z(or{r%im|2htgEBa5;ZsYh9j@K-`Zyw|KQ})_li=$4)wA~_aLCN_8-3(9`mnP?l
+zEb4n75?Nd-^O8KX&)p~TxRm?-@ZR@iFC6*23-zBAkHg#B%13#;S$LfI8f-?i!ye&t
+zF6UzXn^iCj*$TG_zlnvC|CECk(SfDO=c!|$;W_SK1n*gvx^Z|w+G&g~Y*RmzxG^&o
+z_hz~SpO3qrVf??f@oVN_Odi>8Z#vz5^pBiNW9~b~m-GhrnLKy<l+VQ1XI`0Omi8kK
+zGWH|r@%i^D;#IDY%l3wka9?$Q1@yuvb#JxHTHq(4430-~dSb4TvPa5e&fg=Z%$+7K
+zrDg4uy1i;J&&wx4*I`ozXqvG}=6d!i>UB<!$M#0Awx<!32z!V-W1RZaBx4$0Ch-+(
+z8QW;DW%3g<hZnE&dER4P207m(by%L9f;tEds2jg6;|kWJX}kKmp<%AzVzuDyz8s04
+z9V`~#X=*T5$oQeovREgd$ptV{&K;&4`p7J&Aghe<IA!E!mC<O*xWcp(F=_5Ezs%2Z
+z#mdA%)+vB?h;ZEEwq0Sj?QQxAb6zAFN0dGS_tKY1j@2${zrS&Ocj_n~I)o2XM)(lj
+zuC6uT<~js^&l}ldPqCIJ?oOu{lNQDSK4I-wC(w7D5KQFGIOBUU&*IDI%NBoxIUQCw
+z_;;T6Jt6DoWzjIgzbXFA_djC3{|B=U;@j|ls{HgvmyY_J+}B=3`H=CgzQ(=rp&nkV
+zAHBx70JWf%ai^-XXbpkZb3yB6xX=B<<yrSDaDOW9KXWY8KOMz6_|kCtAkM#p(Rl>t
+zTX62edA&E&e?9p7Yi;Jy4PM9mdU^~!`>&}1Z#dc;ICsBt{~h|Y_&&AG=T*~|EU~}C
+z`0*GEx%-#chpG$Y{<i93mEW^V^7C!OwL{gj6fvNZIG)4(Lw#Pw=Q}G3R6|d<a?e|0
+zHym}VC$8A9wjC{ooCIv<$aX)4XBQQz1J(JEi+k~0yTlB4#Vy-iy2N%bULx}i2m4&=
+zaD_*$WSgOlShl~X%x*bapdLgYF(+6B8?nW{)btVD8^0LGWjHQ1zb`TS=|6!3<J10+
+z8N1HC^9#)0_@Ieja*<;{{e_PG^c7|w|M`wML?3kQu@B(r!7<as9V#=wOU)kt5)+3B
+zverL?ITRRoW`bA(=bR>%z!XO;0oG$Se}gXpt1LOqW0jKMofSpOZQYRgHh4xpwk(=1
+z{nCXlOY#yk@5{FYe}&y@y3=O+F{c9CfjmC|8E0E|qOH9sXQoT@-iL4Ok$!GBb%${;
+zrtcD3&@Pr=a$R^syIy7)_wd_j$Ci>p8Drk)9!uMnEZUAs|F~N%dfXZ~Ch;Ja*av*f
+z?Vxi4Jn7QUcj9^GH6@m4_3RdzyvU(jf<2n~*~n2ZZC2?=ai8y7p<QYYXnTrfftCZH
+zg}Dp(>@2s=Nl*D&?Srg4Xvg!Vq~~CXUsYiIS1)T(h|9R#e4fv6u095toNejvkO$Xh
+z@ql|ty@7{eOO`SAuGFWh&ZDRck)vhcb$#NOVw*PGTsz<~YX<oIfbnbRl6FH2{R$^7
+z{08mQ=WuOgFY|oT6WJwt*uwfU7CP!f+sbl(FTMcuIk;Ks!5q-^Szf~RV-jm*pUMeZ
+zb`E&7hH`=WbfP{kw84ywEYLSEy(oB%eY1Hd0C}jRJfd!$s9Qds&y`rZe14f=0v9>#
+zq_f@XWc^qy<EMsDUbNW$ILh<IX{T2uJKefXIw>Q}C1hy1NXI9T`A{j-<iX^+3d*=Q
+zbnnYol4oH&6OMWKd!AK0y-acl?NhFp%l4TVIU7Zu$A8{0`g5=N&##-gOC5tRmbh8=
+z;;i7Bn?lAhn5c}`MCNOgUW^%TaO-xZ{bik8{#mxn0R`5?KZ^FPME?oDP-25W{MGaT
+z+d;<e=r23#3OR>Z$aZ%HJa$6nV?LXFUSz*k%Ra}W{(U*#=)M`==n+r7{%+x;t}H!-
+zY!DOnhCXGZKigXwS;Dxh+*>L*8|{T)#;vg=eC@q#-xjp5V2;-AoWB@7{?udaFIO_Y
+zYpE60J{fg|IL=6p#m<UZ>IQ@9aLrm}c&7Bh{U!$D*ThHOtrnuJU!%X}Sm-*J)&q~*
+z$TiBOELYVPh-^1;tp@dDkzaJUepJRh?kdqk;_{p90l~#~$p6ptcjRF;VB&Ot;4#V7
+zm6%RD<gi(vmAr?rpWp#y{&s2imC4(1eVKXJXWp$N76AHgv{odiU@TWix<IS+hrU@V
+zQc|RTHE(!;yysk7t<R&pvCa1Rme$)(yEyh+kvyO6^Azh-rt0y3q%KmA=-y(s^FmX0
+zOW!Qf4b<OVb<oNwfG=}7Z5O^#i}rO{%@`lo73N9an|kIED~!0bjj9#i)Dhcihd%C<
+zxf8*XuTO4b8L+ce2aDA-j%NeAUS=D-IGh&!UTxa{X8iZ3b-fpZ);84Ta-5&CsOu||
+za7RjeFxGXyo*Ip_$oxV1u))M`%HgAXgWnY$&N1uehKAWr-xZve*WZ%-6Fbz6X1#|m
+zutWLcn{3)Lv8R1vPm8R0Y<hiP{){=46Uf*7E?H}l>?6&Pk9x5i(4W>_Gw74ztYkfs
+zb$z0d`~*)#UYJh+@^b&MZr|vSt$`^zM_b}MxOO4R3_+J&G7hgz&Xs&v+AhpC`O;v&
+za=bC<UF-?Zh;IFSSnHNc`t{|BpWr|DX^Wmbm8~abYCCc3R<0ilCn$d>9r`j0^e>>S
+zg63_YIg+zq_T)FMgnZ4@c7lCfW?a{%E@XXRYh2c><WMR-?Lq#h{j&;_`-y*<zOs_@
+zw-_gpx8BghYV}c%`ULlChv_3PPjJpJ*fdkkZ-tKw`}$ugtuql{k@_Tf#rGnRZO;2Y
+z{ltEGW~%r@;p7U)VLp8Lc9g;A4pBzuwD%Hc^ag$)d1i02uC^sk40w8@S%+NC^#vEV
+z#iw0*ja|Y#muRC6<?xl!H(Q~0u?cQ}cW-+E$~-y?{c6ZAclhanz*Y7tox`?Wa#X|x
+zTP_XZnFwf!;Jk`7p&o}t_v;fY@!#bSDX;%gv(9;G@{gc}-(dNSPi^^srEd7K9w&T;
+zG0FrB+pWHWYrfDHo9!yG|Kal<K>w8wzttDGSNVoHF0W0#luDN}X4avF`_(0X&gcmH
+z=X~)~mWpnd_drhqo8dcHIgmvc=Rzy|#Noez>uvVsTrVYk?Jku}X}Pr@)pqIrR7O9)
+zZuIj(qo4mG`}W~`1P_Z{{9Dw4I`_8lKPvnm6rGEz{BWz?O&b^7EBg8z-hFeyewF8-
+zn`1bk8|}k5{Movlb0*!kHkon2vSbxx=vJe{gWwZvpW>R7CyDE`U%|I%SO4Jx#;A!U
+z{&iT(A;+*)2i@wyM<vIa<X<HI?hVjqElOIkdvmT}J@Ac>4Qo5v2|GH~TE%=;cfFX>
+zz9{=--S>qP&!?cP#_t&veb@1&sZT<0e7owbm@e__y#71E&jR~?y+2oc=A$XS7Vi$y
+zguZ_+X@z~wl{yrwYSe*!!X9H^YsG)6OWe=@{j_ng^MP+F;>>Jw@~a(m_#qRTU-ii<
+zjG1n7={1%TYuT;)k*YfQnXunqO6hr3+NqO6s6*lQK9)Tar+q5-2`!qX9)DY7L48B%
+zX?w{F+F1GuXwMP4t2j<TS?+0EOVbLO=9xOaG<n`|`Yvzqd+eJNTOp^+oqUsD@`9C)
+z(9XPQ`QbLa_YE~w>a<Jbn=;apqKr7?I+c0vwiN5UOBHhst)XqT@nfC@y~GTAT=&S@
+zcGj1^k}EXbo+j&3rzce^J?fv*ugZt7MIVb8RQ*3_zvM-JANM|o_YeQtXL+CTSsZf*
+zf1$_UX&AG<=hNx@pZl!ZpZTm4M|{@t$9&cz978|ySx@5_!E7jx8;-lx2#%)hL2WX+
+zC|_+hI6d)FX$R<F6z%K|{;HSjGnj)KI&oJ+aJE`-GNWUZO>G-$lMz334ED9I#8P#w
+zJ5_yjr(!%q&JB_`QQFtQZ^gcDVIB|0o{qG~2PLkt&OzCDw`*Y21NZg1!g}rf*Emk`
+zSIgR+FW{bwc>@D&@y!?Oynk(TIN#T9Z#oi7kZw=w)_4fxAa{6coPHzg7=rKOiS2sD
+z)7lwlnQI0AUYX!`Nx$qfhkm((&-8LF7W+0=v`u`aI@(|KYf)dJ%JsK#twrL2)w*qZ
+zjsLaW(!Mjx@CLWWJpq&hnz)XN?|K41P1d7d^ak6+ZhQQ#arcoOAGm_+R*vlGrM`gn
+z-_$Rf_1rn+7se>GLtJ~o_+qqI3+V&T+1)F)|Kc6Jymt|E<Z3^Ob@?IJi(SAnjqgC3
+zHXLWpj2-HRl<uG9y0kBR&mN4Sd*G*lU(Y%8@n_V>R@jq}_66pdH8ol%%hd1Q(mMGV
+zWc=Zw%zOVdMEkv6@m=cWm1Ev3R!^Jv?!$Wz4QabpRmYsl+icIK9lf**#6wBnhU4&2
+zhq&&mHu*bKr+PDvmGwSGo-F@w#c$%ef*$%!v<G#?%GIj<MB4s-<3~q1{`CJwF<1Sl
+zPN05`$MdyL#Gw<@v`%#OS?X!ap%bO_iK42D?T9vT2ak;E1?N&*7S2|UCmedwuk}KF
+zk)EBRA2mnasxAh-2trTL4}=#LWb^~y?SlMlrCdXP#0Q~%M74h8nt9;^cR>fZzX<e%
+zLCa>y|K^)^^lH1iBH0AH%eC#~1IMt9$BR`B_*haoTiSh;KHSgm(e%|?-Ksj)ty+Br
+zswUVidElEDxmCEQTXh`uszV?CZ{q$1Jg%zT1IG8BOEOJ{veP6G+CX<okf`Cf162#w
+z!xSo1TX5Q@v_Qb16|44W(CVpLb#iGNN>Y+0z0fvfxG4t_%S}0mo+&Me6|`3hrQn{K
+zZYMM-s3-_c=KuS>YfUl@#pBWM`+s?!{p`u!Yp?6O-u2#JW$W-;#!^Qc9hx@D?tD_#
+zYWcJYV(ZWEHUXBx-94Fpeq%*bYvr4{>F?s38Pns*OTzP$EA%<C9QY->b9*{G<JQbL
+z%;VRG6(0+}_Ymh}lklM(DaHZvnYU)lx?3}hk@}y8;=MP?p6y8a_@4QI=x1cCb$QPE
+z+_kQm=tzZ`=L7Wx>|2k3hB(4~!(0Pl<4V$06LaSWbyRB!lh!BX%>D%CnQa6e6(@@L
+zC0b#5t<pxbD>NR~U>3%^HDr?iO^dILq0YIj!09X#bUNHnV~;mWc%v)Q<D)BGo;Mpb
+zOh$=cP`(M}gHDSZCeD!k+2hT@H-7si#;r|~)-&U+(q=Dk5%ExwwbuR4XA~|<>RiAv
+z&411jT(ssmToeGj2dvhV3H;-)>dug^4g;4Gc6{C4nWfK_dOe(jT?%%VJy+@d?CtE)
+z=!YhI55M|O*e0%T1kbbxaFfILfQ_RoQ2xL2%TLsMfpR8W!Ty{Yb7U_>asFJw`Ovz;
+z+G9#L!Z@s4pEjQFvDGQloXOa{plN!J1R~0ZFA!}_ogy$+pI$7w=N_>i;yM?)aTE3U
+z3q<E&91VkR3^}*T{^k3CyEaAp;vAg(Reb#Flk;?*DZjDOWo`m9UY|Nybm4h*gSQ3U
+zE_E*+se9{a-KdlCyiBxF1X}K|%tNYkSNRj00LSYy#N9YMcD3c6OWw$aWE9WBPNT@E
+zV}J|4bDiri*_x@%s<mmuv+CIFR6)rcm-*-ejhGL&Ti`1YX-!qgd|XR^j^p}FA1=Zi
+z?XKgY38J$LO5eA7#BJ=e^qu&PeFxl|s_$!f&teac=e$^LE`2M_=(VYmG4oO(^QrJt
+z9B}&g+BiwK!MwMepYgeQusA=x8B_9u8@twy%ujE|r}9-CTC4l<a}6UV<|_s`@jKVM
+z{_A=(wB2dbYj{JRAK^c$L%;u1N{2p6>(I?eODdvu=+v20k4~Mr*o}xTeZN=zA(dlu
+ztp2?5pU|H#p{>D){(S!l_2;Iu|L^M0%TAy_FLhdu)0_Y27`^$`i%0$L97p0!D*d^=
+zO7!MNW2@-S*|&pvy7P$W&i9M%{DUXZoiqMC<G=qsz4<X6H+<dygL-qunV*AeVV>^1
+zE@#JKDLan$=jqPhqwP3M`;S4>$=N6W*%O%`*5Vdz*Fj!!i`Jp{o<N6w+&rH^cW&m*
+zvq>Ggo@>#e+c_P2tH-&g4b`ard>&(TPelK`{dxNH@+(fPKi_!*{W$gJ=%X7u(YvU6
+zx9|T2z4=$K`PcR47ygTSbMyaWy}9Ys|I2#w{5t*_y}9}Sq2Ap5KkChwo^`z5+;pz^
+zm-Oa8`hQVxKI5#vuQxv*?>l~Syxx3zp5FYm6X?zNU*69>m88DB{`X2(zUHONQi<{X
+z9`g)WgWuXctIw-;`@B0TLrAO_9rt+mX1Chy^lI!*{BNWdgO;~YcFp+CR3YFsg82!P
+zSBpL?`g1umaPEPYDcW7p=ULlIQlxDf(Ef+mF4_nEEOycv$_nQ0%TzfZOPNjocis0(
+zC(wN}-^jnB`+nsA&${o3?!)d-pXeGvnBXkzW1QsV2X(v!!#NbBUa<1Ae$RVF&!NpZ
+zoR{vPUcfoz`RmqYXg^z{_2FiGjp)M*sSl4nE3mzp=d9HydzHQ@yKDLY=M&PC3{^)?
+z7ha+JLtS`)v{m%r5q@8y`(v_?x}NZuKCYP4?>#oAkDK!P7zBU)tk#R(yBmD+3!OrP
+z%))nsy?}G8z{VcHMy?IgBu3XE@87`Fok-70dgcRo$8QY#pvSX#KYmvySf8@V4{E*m
+zEW#@K%lHgt<lqqtZH(1D+oJnEDEMi=oYPlJtoOUG?)O$=Y{6)MCa7WfE!q^!*q1S*
+zZvaOu5Pdj#P|o{(f@fBz{7p*#!F6Gogy_H*r2ovA186^Z0{!<(TL1kAtw(zxuOHRu
+z$7ja$Bc=OcL=Q?oUX-)_pvU&P21*}3Fa3hnhjZ<1to?F7))Mm+#yks6VjmK{_Ba2I
+zUi*5KTbrw+YeMQu)Up4mKGB`Igbl3Yc+^*@;p*LV+23Za*+$aD&%UcJn{a4086&#v
+z&k-KqrM%K*KYK!5_S>%?ugiY7I&!*f>IWYN-0sG>Y8>>zs!V}TOH+sKx4+<S8t4=`
+z#iv2v@0PKHPH4itDW|^<r~XIuzw^?&2l|4$H}#bVx_<31G8SUIm!$qZo85flmpW4+
+z#sC+5urPT(o>5<x%Li9uqdu*3?i?P~n=!5m_0gM_v)zU17qp)FeOwdtCFq33&f%5e
+z?8sV75uLB>ana||#^Eobi(WvTqQK+Vd}{xYP87U>XJz<~xhsgD8}NU=-u6|=ZJ_)l
+zio`zo4ewRPmDc+<sM{niV!K_kCJWPmouXm!F*^u)xSlqQqDP6Kok*fDIL-ka$KoZ^
+z9m)U?7s`A_SEufh7#(`Q=Jmsj94O<Oy*#Y;NU$+(7CUj1u^et092$Hx)9;N>^k>3)
+zuWZ$OMQnu_`%3WbqNLI%qaSu(5OhyTz}j0lJwhBgS9HkO2WQgHow{X~yNvcHwDkgh
+zyhi6Bnw3!dfI5yRI7aNp3-InS(NQfBf9QYHWfy<A-@9ROj1Jja=TXjSI)C!2jqc<0
+zO!rfFhv)fvCeztFqG$3&_j<m@mK68@HO|EoqE2V|1g$r2*E**-`W21z32rlugQ7FW
+z-Qzl;jbt;|5o^tP*@yn`{7^1;8|DsubDVC^H@!6#aAKL0@&4{h`n|~D@#p%B#DU%W
+zGT$3k`Np62Df^Ab4Q0Qvdm8pb4fcbx!#~sRET8Fg2Dzrc(q~DZ(7M<s@k_v08Jlms
+zwKFyI`hG7&UsCc>fPd~6?uXNa&gS`ZKytUAj=mIdt@YXSVeOmFvxhQy^0hOuM!9`f
+zl-p;T&U;Y%RiDjy$ZN*~ZJXO~pTs(By}QqgxA%G6C+`vc;Q?8zD^UN|5B7U+A01s+
+zwqrVf^uqQ!DRXsXCg`noUT$4KBJ29cG3&Z#WL+hWM`Ls9PQ8X7pe{RdfUymdpJdJe
+zkG?)*)~L2M6}Dp;=JqQSJ^EVr)_KZDfH|OYydBrE8vO^35*_-hL)oHJhZSyT%#bq5
+zQuUeoKDG-SNZ;;Rpb2YH?y;HuUgGHS>wl-A=(@iQWsh!3bf(P2oD^d@6li_<g5m6%
+z_9N&s_7!#Zrv0?YsZIMYBf9d}WeyI=98iz4=HGxT?Ut13w78p$PLaJ(S6wpeV(;FE
+z6>a|Vkis{<#+9i%rhpf%A`jf++SUYbvg1$Hl`{59N%~Wad(yNr<%=HhDu)#>OkM0R
+zFjuel^m`o`&$zDs%s4%sZx{++T*=&2=bd;z1RchRIOwt5+Zgvlf2SPFlxbb<1&oV>
+z^(X>f|8LR9Djdyy2}VWWivRoknjR9Elsva<emJD?z0asj8<A&&A0V%B-n;Kt(oo!&
+z34B+1qH=(l0AS_|)ZyU$C-Pv}OdQm@`-XJ2)#I7=>eNom_xGQA#v=|gwO*6D{~S(w
+zVTiCh7rgQ6)QzIUJ>*fhbU$GVH0kx61N)$?`GtZX=cS{DqC4nAZW^moIltPk42|mW
+z8KW(y!}mpZd;X?a>T=W-J@?(mbS=g-_1t%#8^Y_yQKsx&%8b+N_MGhXgF<7JVSMD7
+zf;t`meJx2V<aAzt);i}R^!;Mg{aD?J>kgyttEhwi6=;D(2gZyuSmGL}{W1~zMeqmK
+z-O1^m4W)a|;R)^+e^WDHdXHBu{?!L%jW~B_a*yS$(d4`}s-zwoXH*b-dI)`NOwiwK
+zb*cgQaFNJ@>(lkv>kU@7M_bNCR;O118X9}~P@%F5aOsECPJI(#*cWSc-_o%Q>H)7s
+zZRQ~Dp%>xzYOSNBk9fV^Cp@;#x+oPwTL#Ll7M;~<cM)h7_LcgEoNm_dtaY19;>i`D
+z3EI#HU(;GQ1UydODfU3fII=Bdblo2^=HPz!kCblv>H9*)Ok5Q|2pO;3gLk+d`LB>s
+zi>nOR-FGV<`jPL44AFmoFJw%|?=oCl@p~DrD6aTjAtQ#X0hfX6xqf_y{;$AV`w|;}
+zN1X`A#lEeTSZa$Xhn~0s`?>++Hta6X=j@U5=QW|rTT(XoY32;6KpDz=&bVgOevmZs
+z3e*!#kVaSZM8J)?jMK*Y#wSphvo=K?PlNC{JAf|^XLxSYN7Xx)JsOI2c#%Md*bLl>
+z|7W><VpI2@$FfEJ$25MAOdwrdL>}-<fCIuV&qLC;v>o_CgX+`gwC%t;>QPDWIrG_0
+zDd-C?Lzr=u-hK(-WD(A_M!-h{&bp=81B-3Oq!@*jrRcBE-tBeNsW@0ZyVWJ!EJZoO
+z^HPkr5o27@Y7Q<Y8~}Ejx8EvobHg#(Gy!fBoV!ShWxvuo3O9@Y4%`rLE=PZtY1k=?
+zQr_1mF-w-Ap5<I8tfj#iV`ytR$}K>9Y=in0`rEP064G}z_N{Yxgq|>?EvYh;3tAFG
+zA(@*uuH{la?-w1T{l`jo31~0Bz5h5}nm@8%aw#_qDLwUvkAX(h-<^T=sbJrXJ>s{W
+z!#%ejQ@DpZ^%LQq{aQ!91?^TJ8~v_Te|O=#eD|dO?i={-6zY3P8wqW=SLnn41f0By
+z=M6UDaIdV(>nPhmni9MtbqQi`U@4teJ#(c+xGsk>hO<ATb7xPaO_^yl;A&1Oy--8)
+z<Cw1`>Rxi*<Pkhcdbk#Ja4leJ8s<H`y(=>nuo43dIAZtOke-8eoeKQqV9hQtj7MYa
+zGtQ7x0k<Nfb@m^r#e8OWKAxU~b!x&mEAhR*`PNL>*qz~in?{+I=(`rB$Kkse`aElT
+zJUKHwpSc1j&cV88tDj2y+{2k^vL~-iW{)Y_Y&P}SMu%Hzldjqg*z5pK+#~bw*JEOL
+zDEYK<daxk%()MB6iFl^gV{tG1RpcVqCSS%kA3A|e<~cl1HGlg){HD*a8CmKYiC&yR
+zZ7I%);EL#eZ<35<0dqNnr`zq_J?%y5&v@F1x|Hwrjp)=0?3W179(9b;7xZaVZ?{0}
+z?G{kJi*saU%I}n>f{_??cYx{7r2LUK_eHJ4NRy^@(O&zDUOVtX2;<qEYg2HcZZp9)
+z_vkho#0IC3ZHg^~YLhXq)|>&lkNK5=KYfYa8PX3x?H2@_c4tDM%|XYP1QTrr>JCz_
+zK$xTat-w93>X-SwR_eFL)ZfMWFYiR%F*gL-JJ_@@;}aNNm~1zU_pKB@tVPD_!+7t+
+zcq#8551d5X4@daiC9V<c!rozQ+C}LgXpu=;kNic(^AUV;P-5h8Zi}ezwMKQx1y~!I
+zd#&$1e(vk_+}9_?mw<6G(U*X++D+!>-iWy`$=uhc=NpQDZ^C}=uql(>M_F{zaO0-5
+ztLNu(wrl0D`CMtYU}Sz&yQImQuy1_ULCnib8QR9Y4|5+#9Lxl<W<kt-z=(k<AFaDq
+z=6<)Ddl{3O`}d8ho3_3k>TKiQDCOE0*`xb}yew!Kv5le3@NXP{0<?y)##OOz4j&Pn
+zuk#t#S4~_}pHyc_EHwc<p$WQ>Yt)v%hL|_zhhn^+Caj&$S?vZAT=P8{!r-5?*$aZ$
+ztIT0LUd0JJDmFXL5_c;0w!e8@=C9b79hBLD_hKx@5Mu-4T_NXLk0WfWy(Qy_aU8p4
+z9HEhM#AFQ2pStD`fN!jU8N>YQF@;9Pv_Qthn8AeUcFnia=aV>``YXz|7)OUZY`_Vm
+zEUR<C_tvP5=3Q^8F~l&}Q)SGJuD`B369dkCXjtj9W9O>4ht<0;OHHE=+bZ^EXEg1f
+z=*ldf2maC7>II`WyNiq-@K-|XiTxDg=TdI*#=@+!OSRiv>WrxW4mbs=2>SC9&Xk<4
+zna|0)Iq}&kCsK@kv&N%7%$yWY52FsVIGVN?%Z;`;b&L~{7cZu(Q*3G&x1tF1@X!tF
+zthz$$_;?<lN?r|h8oY4EO^eJ<<zhtfoA2vyK2F(eB9;p4Ht2htYe#aufycZ^d}(M;
+zslKJn?M8g>#3spJ=lkiANz!-HN59tnuZc+f#}khs(kZs7xiPfr{xIfq^@y%g#k&i{
+zFou{K$Ml%84bF|@YkA+D@(+w<GGkQcj|FSC7<CkqN5;BwoSa+6LCUS$?SIS;b_s5A
+zDYHA;X!LuH4ldD2t#tjMX8?O{z1{Eio-sTa!F%Q|j*NLf4evYf-o|?y@9i<~EAhS!
+z@9Q^%w%!Da^rhi!HLeO=U&G<|4P1;b!uSo074yh-D#vv}Bj6D*OB+2O<^ku*uD4H)
+zl4d%zi7{oO@wDGs<x&T9$#{X+M|tNwuh4n2!8aXRhTk{;ZcMyKd`o@N$54JSo81Mt
+zx+ki?$z-$lTthn&{3iW39nVkEZBYmG*2&UV(Ny$@`{Z=|{t(Z6{Jy|YaVu$O6~cGp
+z^moJsj92k~{XgYQfU#1EeGNPiB2Kd}O_67M2)sg}-7fjXP3I!vKNm3{c=OK&_?|IQ
+zet<Ic&A&I%@0}FodB4gH;|xC8`1!!e#$5xOxCV(^y&~4Z_7W?-a==MB#$V<<<88S{
+z#qK!?aPmI<e-hw>eIsrp3~=mwfy@2}b90BlNHl#f<)3&rUXS4!>W1-uk^cXe%%ctB
+zZ`KCzYJ<bsFM`4C*a*H1_dBuHPvKgQYZk6XT!SdPANR*_y>{|BFIP8pdp2l5V_UaZ
+z2v`qc?fp2r8TUHC^Nw-0f!BziimCeoA68&2++K#c4@Exb7DgGvsGju0E}oYKb@A<f
+zV@<-a`kufZ*ij%hvt7V--CoX?E8xVA1nlM`n9E&(##L^v&ZGPvIJbJ+jliil0hT}K
+z+Rlw$i0g3j&jwU{`31DgITUhM$$Q!r7F02|`x@78t#K8;%x`bOaqWd-pOrZzj-H9J
+zS{P#!+O){?fxoKcm_bK2{-$4KDCCPO6LK#2xgO-xL%{o$LKoib0uOj)ppnCvqs8bK
+z&p_py2fEs67Ml4w;E5)oV;Q%p1-wc;NqU03(y{UVg1c?I)vLx;7HP#d9d7$&!-K5L
+z;u&N_U7kCYMzh2lJ%|3f&c!~)->-0*gBXM83E$5c&!&=1HyM59_?~t${)$MfoaJ(T
+zu+Rs#U)IzkvRA+O%N`Uu*TJ|L_ppgHz3581ylSV*Bh6)lZx}~f5$9HQSL_MXxH4&X
+zwLDC_8v1dOukqp8PR27s`EiWF2YQ_St(F+K>UR}w-E`i8Gjv;~ePfF4*o^;g$HXt;
+z`x1|q_GqA)Eb@%;<lHRdFsZ&&pbdU&Bw}7QE<Uez*2%Yq)lv=|D=}}0YiI6OI#Eme
+z^)c4Q&vXuJ_US{qe|&cy<qg6g&LzF!<NTasjK+^Lt=5#xWmC*8Yia>awmah(gn>R!
+z`@{*2O8(X8+Ukv~>&lqcKD0A8Jr%G*zuTpnpW<AU(Y~p1pQqMmb*c>OLpuoz-``S?
+zGYNdAW2w4PZxD0?*0t4VI32+YBwkUpw1+kzy3Rrqb80DmG}PGaQC`jdRA@UY)46d%
+z*yt$7_vM7Ep8&@^EHStC<zgmJv@~t=je5m*SD;SEP&&DfqP@ac+~m684qEU{`R=2}
+z{L;7Sufe`HDx1e|5gxa3Ke*{o{Bthp8qh_6^-ixis$u|IjSorLi9B<oqp?6qyIy*Q
+zYX2|V58;6YS@9kHl-6qmw#CirXlL;ESkI+;{>5j{-r_Na4dI9M3)`SgE!(jH<3~`R
+zt;cgY?Ev(8a~@^wBD5EcCpWM?@M1X_<=zfCF}#lnoN|soN17Gwg>-vq&H?@p>;Gxr
+z!dNNXbGFsvk$<->>>;cNVfBxq-=3fRZ?sLh1Y?|z!*lGRC&m$<S{(`C(OtBIsBn}#
+zhJEzm8^iAKCJ@JhpARqwr-tX(wM^Ggvi>63C)mq`i)y>sqyH*#9{WT*SpmFbVP2@e
+z^a1z3uJ^`5ftTIo<Qpj?WsE<<0rjGo`y}RGbpNKQ_NdGe>Ng_KiTtWVeAc&UxNDyP
+zoLIhwu&URJdx7*^naJE|N4gbzWv}d&)r>jK=SBVAbEowSUSv!=oW<$k$+Tey9z|dH
+zt;7PbF`qemR0Ft&_D2}Qbm}%J-?~HTYA}zF5{Ex@e!uq+>Sb;L+Fcuo^@=XU+D|7g
+zbK26=oeuBpKMYHbTk15YW1enJ4GC^8i*yT&oU}mUq%g+`SP5bOmPJ|wHeAN_#JkA2
+zey`#*6`zo?nK_1MFb2WH!q4_dd`w^6){OKQV|n&=)!!)li}nKOFYEG0yEDfsNNcQ@
+zoXTVS%YE|J?~m{E4eT@LysJm-xkLDUZ>ZmEXFUdZJgZgubT|4`rsNn&_JMt2?8*mq
+zUj~M=GIz_T^?S=Jj-NaBfqju!3A!)Ojp@fH(T{_e6XM1&+IVpYbEjeRLXD@y2ao<(
+zfDh&|mo<)b$y`4Ge6+;UXA@wg+UYCjoO8Ynz!vu*aUj+L_@DZ?mh!N%CHNiGnQNy&
+zaNTZ?@J#);tO4ggvR7cXNA#OLa^^8kCE-1ceMXzj-1%OHv;FhKYESzx4xZmvNxtE^
+zgvoNdD^^~tdEzpjIl%9$hE*;c+GM>S`*Uo&|1+lD{5Hd}Zm%qcebw}woY@~W7M6zM
+z3J2q!G@ITUc`i7Z^V7Ia@an@F2h)bXsB4K^1N>XN?Rfl4yes}AtdD$)t>Uj`>W|02
+z^W^_4lRwMZE#XY8aXQP1hiid{=_kKb>+8SFeXj8;^W2c%r!V%C(ng<GTcF^X{>Xt-
+zRDN*6U?KNK4hDfE%Vdvl6`8-^?8@Zt>60{E-o!nEy4(-;du}=5a$Sb?y&GJfI|eTQ
+zD>=G9R-Dx@w3*<1=f;%J?r<r42wA}U!1;!w@czp~S;5D|!&88R%k($g!^F{HN1YLu
+zXBF&KXuXArGvU*kMmkY>!rNl~O_|WLA}0p@(Iqrp*p8J0J|@T>aAM`asX+ykE%NOS
+z>LT^Lf74L3Kn_=>=4S_qr{r6Wt1LP1T11}4J%O>6USP!i_fx-TaLuCW4%)2XH|daN
+z^At=tjeXvpq3pz!v`^7%em>7qeXgz<)Ao+}3Qw|K##UjQ5(m~%xN`l_JLl<3e`lVi
+z5s#tl5&tM0?JOOIqpyMgEpu|XtVh8N#vZ$EcyPtA+M7mKx7Wg$ewucQ={}S0Chf$z
+z=bUgpI4`uZ;kj3<&%KvqA1q9-6B&uJp9bt=eb(Tt>nPtWwz+CPQkvGy;j-^?J}fmK
+zWszo?gZd$bn=Op#*o0BsTw`C9nsLVQxS4x|V<P=H8)KTDRcFn9U%$71!trO#xo4c<
+ztf7A<>h(FJXU_Szsr__AR^j=sbNjun3CH7k$p=2>%(?cJ<M-16cWAINZ(bMwFY|iJ
+zkXp+M-{@Kz6Gqq4cgEj8D~ol%Kdt-yTpehJlH>bbaDsk2WBUDl^n0#8A3Mx`FIIB=
+z`RJa0;`4DZuG;^yZhsNlUsUqH&zm)-{nconxny$ZUlHdGeW}pnrVr93#5Ls4D0?Jt
+zA$tOI3c4#FzB2QUKPzj;oR#Mdt8w0G^m`(^$Q$SP-esKk>v7(s$JylcqaXkKIG-In
+zew>$KoZlpT^eBDt)ZY$gkGwRTeH!<BaZ#2Lz`X-k8HlI>+^6B5_`z^?F@A#|G1`o5
+zR?Z2*eI1}x<LS0zqcC^&82od`yixqKeOSTUB4hFhye+XNkHFjYr=J*i+@QxF=J?Te
+zmowSx!gv1YR>>prZsXrDX8b2%{BP^|Ka4&cMjiR{f63{2XP})s15w||p6wce{W-c%
+zJM@}V*G=}SOC}$;CWR;H(+y+#H1OM@!3QWCnQ_j`O%beX0+-t_@!Z0(-pu%DZ)S00
+zzvL+~-1VNd`?6F)w9PF@v}FSBN{?p%b%I8;b07r#c-Pz6!D)aG$|?(*dNV$&H{);Y
+z&4dz+SpiyGV(bHM6RS{{lC@232^mwdwsBk!RT#!&VBqh@?|^%b$mVHRA9l140j_;n
+zoM-sfi2ZDUWy<iLdxbVthL+s~s58UwX7s1*1Z9mAl>K^MSu1kR%an`poRpZ}38mM4
+z2yIg~WsNCg<dykBUKtF<C``nYo14go8n1?F=UCLle2H~2cj%}=z8CMeoZ$WPy!TsA
+z@V+VUecuV*FUfm<>j~aB=DqJf!TUvd@8c(UAI*Dz+X>#!((estZYqYk@>}uSd?oIK
+zjMMQaU7lqL?~JYCw;P4#BG2~?kpaZhG0b5Z;OTF!k}Dhbbt#c68?L;Y+8h$UjAe6`
+z?xm?&`C(AU5^~mORL;Qp>Gs{1`A!0a#p~i`D=x|;DBrAcii5GPxc|M9Z(+Uo_A&>K
+z&v_QGOZl<Nfn!PDf<FpPc2b@Wj=7iUUlY(akble{m*mrkcYgq5%js?QV=Pa)V`StQ
+z%U`hv!^}mAZ*B)aOTT9E4YFHZA8nPp;w5I+jRs?9bM8(*$oVl|z0snsqB&KV*pWVk
+zdW@XBs;Frs?-cvN*a*32rr6y|ZV<6U4;d>9|3`eQ`n~><dH(dsJpYFI{qSzn3En-0
+zcgwyTG7e+kE{TPVr}29muBU-VUc2<1m!ASo2`6rL15H~q62Fe}c=9eWHUB*8=*RcO
+zrvOLPMK#gZDsTQG@$LzjKjPQdR{v~(Wp|+L3(pvX4>hUyEu8<5o_~?Uj`@BZzNb#+
+zA$;=+`b+%u*|B4ZxU@|@O1;XpCwTV<yc_s7#_1Twk?(|zr@r&gkMZGuaE!O3zYqT(
+z$M~(hG1mT_F`o4<V+`mq8W`UZ{7#^3BBA1bhZ8*+j#py4<&Dpd;QWcw4$YVtmNk55
+z|E#?6E&V6f?qm4o4|-gG{p~yZp3&oa^|vP;SM>@tt{RLf{7;VS;s0e^ANnWO>*Ty~
+zCH~I1{`+0VHRoGuTv3c~Dy{(Ii#44?zL!S*MTd2t4Wls?Gn77s=OA$;XyY{XQT}f$
+zyI+-?)J^BkR)f4Sa0=}ZsRQ#HiS%nh%u~GCEuyUhaJ><WpLsg)C2hL{jT?_F!<>H4
+zp?=hlc`a}m&tNh3#}tV#<97oQpSvj9PajR!K9{!Rem593+@RI$R#nH7+3LsB*|P2F
+zY$dMR$J2~0<C_*wo;gkB&YUu>)eXg3E#_U499^9Ipc>Z#{GErtlkqp%h^68_=5&rH
+zyI&kSdLOQB&hBI!bZZgilGe>G^L6_88~2lSF5@=LHFFgE4aPs|5*ee<4!e};hOO9y
+zpvX46CEsn>?mpso!mdx*BTNh#T^{QQIlH|q^)k-x;K_zxatts=RxN1mT8A{Z&!yha
+zr*jchYCT{O|BnY>#5(G~5i(rh)NH~qhQXi?<8Gl2Ycvkcc|2p4zC-FsvcI`FHF(~N
+zXU%+P>N+Lwax|J^&gII;dauG*?=5+eIfdiN>tAH<p?c;hlsG)hr5s}HCffVpoO)^=
+z{X)-qnRCeeG@LgZFvOf10kOfE&pdKPHfcHyXQbVz7bR`=kn;@Vzj*s)tn-o&I0uqH
+z#<TZ`4kn(ip#LMTNzOAOlP)7I741y%oDMavOl4QZ)0WZe@tiGWKAl9odpvy>?EPMd
+zehH{k{D090`V1QOo)KH2an#ux5yt9Lwqv<mrFhSBKIcq#p;PJ-4k{vTl4GC@ZT(8*
+z;cl9J$@PzY`*9t{0$P^(zzRq8lfK{IH4HNs*PxdA^d^;0I${@#PiH8Kwr9uF)4FD-
+zYT~m~`MEm^bet{9;1~<a3Um%!Vwkco+r;15D4N3DRye0GIyp`n<Y<lfmp5>KN*vXo
+z(LNAno>$7ejM8+(nN%LIHU`61PkG2{mv|Uqr`^lZBDucai@w(W24`4goku-D^#{~>
+zMj2SRsYT-N(Dr3(qS&j&SbAw^f^lsEEmG4|?AhY?dyDtlzxR7v4dy+Ixu>1cN;{~d
+zhQMP3>ANCJY;yMGXs9Cg{jXxDThAP-MPb@;qu<O&sNlFhX^r{rk5axN-9Em*oO(Xa
+zMQ%Lo1K%B{?}#<YYy5ZO_hz@?^j48`Vvfxs-41i2y(+mdHVEJ7tBKz>WorC3|FrmR
+zz%{o`3Af&Mf!Lolq(3YA#QOASsH@Tauq5wMTyiGXL}p`;Z1pP0TR8OBZ}rNotr9OF
+zWVHeg+q|&R>ebkQ$B4@9WB~>_mR`o{$NxX2yw<wKtI>6EzM1#bKwTkRwV3Nl+<To#
+z!6l$snFFF~D(!XsscN*(GsYJ#N!v~}@KsAG_en3-;=w;E-0on_F2Xmz#Baua+lBk*
+zffs&+J`^*4xyV1%*tVO-L@UBMSNW&s(}$GtO=LZLb9<`D!d}Uh`GiURX|KeKRB<?O
+zk#YS=<kISQK=5se%3Z4K`90ptyhWK$Y=i7??g83`y<g`jHKOf7_CFYlo3z(6!<P7u
+z$7FwYt9ef__f3Zvrd<Q)LUMq2fIltv!qzR=2i-y11cj^)S&KMx{$T&ij7;)qpRgoR
+z91QCmWg9Nf4xa49M)qbv^1jDX72v(kUZ8TJ&BWZEc6exTNd$WWu(kyMhXJQ2J)`FP
+zJCYCL7Qi!gwR4H1OBp-tMZuMG)5pZe@)nPA=l(`}KlJ0+N3iegUat)BQehKj+R)!N
+z&%&K$xi^+rlgity;&PMU14i1gAE|>hw640{DK7u4t~+3troM@_3^d*1O|_X{bfLt$
+zF2a2$?z67Oex*;nvo#Z>yqozUP2&*dvy163=P*xKe23w*Jdwh4#%Cd)TNbI3@kZ>~
+zsmDHL4o*u<l33Nt13GR8)|)nD;n-HMJyLw&WxsLgc1PtT#Q&Zd_or$bXQu+dj}osu
+z!o1S;$#eAlf9UVbKVy<VS)bKyws~!gXMr{goqZXeNtpBUuZlec<GRJosMr(CO<r!Q
+zzL^rUaei_q`qac26R~!ed997;2Gp@PBeB0&4|phxzFqV+1n<~{{fB+&tBke=4QEvl
+zbiT=0bIh;tYw^$AAU3(&`-hl62kRMX>=j*1yHQ+@ewI`Ize(Gr(SMO;h*y?kPO9-g
+zb4e{SW~ZiOo;kO1!0w$G-`!TRcQ4j&skY5yF8HO4?*ZDxPugfX>CA;`D;6*9rR|%J
+z1529*eq+bmQ{l$e6m1_LGY*Jt=mW;iq{OAQ*QTnSwO)<27JIJ+^MG^BT`Ty9b!>8r
+zJ;InRa2rql`wK&Zn{-?g#z_UQ?p2Ep>lUxwhz;<Jw<C=C7(@Toi~S~L_igAe`&ePD
+z^{m)huPn0G+xC@TCo9qJ^VrLe*$0v}iM6Q!;Qax6XYyoY!@$W#$G}pwRf%=0z@A{<
+z(SYc8w`v_ihqqMX-Kh8=OEFh_^<H|AHmi8&pugyM`fI~#O?;xuZxdZMVfZZc@1t|D
+zr<<awCDBR2{eIe=wxzUBWBN(GpYiR1DcS6y0ARa_{@ljA(mykXrpjwHk#&dlK4e~M
+zOaJzXtq1U8=&Ry?3YtGXk2$*~zRAMmcZRbQFB_&#sTX)2dmeow|L9{(G(5Ze?0)a=
+zQ~QC_{VsJQrE-4l_t;0$n8jj0v6}hmB$p@i9iB61cyK1_uO!~E_X+M@uKW0k=p*-f
+zCp-R>Px&5C<oEpcys$aQZ&<EU_uobT$b+<7DmR>8uXP2!4{6%D614wy)B)O)v~Qd8
+zy|naip7CY)%{f?yak2aY>W_f8c}7*xmJ|4)mUgU0>k;~NaBs`+F_!_{9dK@udOxq}
+zPUeft`NikfqDZeZaS{D5V?wv%y9n08{wm@7JdPjmP+~eQejSHMaB91)V4n68xwD05
+z6L~<MO*~WDw0|qlrIUuUMK6j^iNevRVvKE?HroLhiQyT~7GJnDeWpIMc}5dH<Cxb!
+zzp7yDRLnKkjo;EfKZto_nZ`M)Eyj2uzRM1)m^<yH$9SeuH-a_J;QM=n{obRDEs1du
+zp4cbQI;p4VC;h>G?9pO@G1kM}@%4B%<?yI~Vi@(jHI$u5*uR@&!u@+Pwhdkr<GFyI
+z2^%ZLhIa9Mg@=vC4GIU_`!d`c<Lrxkn8P6RSDNv7X?$3%HP1=XHnfGK3^-u49AO;S
+z0N0ei$6m6|Egp4^JWF|Qwo5Knb#AVqpSsX*)YG;|%(F+z`aR}nL?6-CO3+~|ael58
+zTSnRgkS<)zyq}<5!ii@0WMeDvOxplqhB@h2uPO4r()5SWR?Ba({(w(kLp;3*G&}8w
+zBRIRpOB{u0dcV(@I9&jZKytsY^;aY(^DV+(ZXlg1xMJamOz!r&Qn!oo0Kt<J_vGxI
+z2>Z6#IS^{>^xpGlV{nR&Wg4*=59llDlX7?l_j~>Q-bGjs(%HF~6&09=P3LLa+u}3Y
+zoE4WdCc{q&e|Yy_FKGEeMEM5zjjqg%2Mn=&X1$Fl!?7wj=#|`^p~O0`!ot`ucskvc
+z;5pmk6=00Za2`!%dx8_(G->QwoLBA9Vs8cDY8%eV#n?ZL#}UJ`<#^@;|HfD`q=#~H
+z$4`lW`do?Ex&m{!obpb|%hynvo3mR@#$RKu-zMO&;vnhw<(QWhj9uh(i~k(w$dI#o
+zej4?Z`<xb^&*_-3JW*WEIA9Wo5`AP`JmApuJwgj8n?TwdGM7Sb@BSBKw4uFi_-@j(
+z*q5<rYI$N(5cT;aM}T#U;6e1e6m++b{Pjp2aicm281Vr<d`@(>ZwFz3HUz+}jAi%r
+zCh&7MV?1_xMpLK9wQn>!U$!EhLQfT;>@w`<Y2ck{d(J$Mi<mE%dC85ha-Jrxwkhvz
+z8KI51KFb)B4C5o8<!f4P0KQ7NM!(G}oJ5%Zp6K#R<veQFG{|j?olf2XxWrCWdxUSo
+zHu|2*@As_#rQg0W{cgm1Pf@u5NBUm;f9(59VkfWQf$(#sj(H$-ZzL}H#B=-O*QVMZ
+zzKAO_FUr7}x7m!u{oId)pBVdP5sr9f#m#^nHwmjT!0D$XpSfyhqi*K|;<Ipzz@$%n
+z-)<m}bzbh9IrwJk*OiRs&2J263(>L4b4TShlm$HZA0eZubvPTuyILGB&wU|eJcKKb
+zL$w3fL%1qF6Eb{w-|^{?u@o0-$i}Y=8SS{5a1Atuj3p@7gli|RvLnM;7x&L&2W`dN
+zMy<&n;gveXFCS3winDd%W%Oa!^V6Z{=Ml}5<j>D><HGrSN>=&Pf1ft!+~0bie3a)G
+zb3Vr7^nE*8<aB33v{k~Mdd!$CJXaX_w!#L^1-`ZLTVjjVb!Qd>cSzpd+rZN?J}3IM
+zm~>lootLApNn3-@2$H@Q+FI<US9*rX;;sNMK^aKAMDj=rf6*><*kR&RIqN#Gf4Va~
+zn{c+eKbxB!T#WgVF(i7t7cj0xkx8PbJ!AH}^A|tjck)fQe9IVP<PqgOcj^V-7&-<S
+z$8>d8`SgzaJ9TcJD?DSGXYN&cem9PpU(Bs}uAbu#Tl`**b_l({hQ7q$Wia2MwJD3^
+z7+0dsSvr0j=achn*oxjN0KOys?Eqdo{hyuhxSDUqKg!M9?oS*)Mvjl;<QT8xyxF<=
+zUg!Phf0?&&n%Dd3->GvB>g1e}hq5&6n&e9&ibe~lcrt=}SJ(=EuOC*l0&qckENp*D
+zzhlg-g0XwLv6#7Mj^@*jl{jbHI3CiFy6o*vsY{#Xtr+W5rMbP=;&$yfBp){E^NVnf
+zzWpV0khB@`X~5|5mN<%M!kn6pLwQZ7oUM#WWY)&hGx6+$z@NlJGjZOuC5nT<t-?3f
+zPMz%i_w(xfj`2JLoz~?j-jT8ep397j?>BBh{mcA+0sZEu&(_=7qbpB<a}~a=Px_)O
+z4d4LN7X=L*iI+T&@zUNteQ;<npRSyH40L5+vR94zwxKWibVA5l=lL$!p6;>~eeg8i
+zuYG=$p6rtK$9e%4Lx~n|9@<!nF-)giM)J%zr+jlL#~9PkDEqlm<mBXGnWNknX*2Fl
+zsD4qV%>92a{<kdPc`IH@8S0&!m#EUiQ(pU%KPY;Nbo%-FJR+~dGl{aK={jEO7X|Nk
+z2^~O~D?vXkk!7ekm@=gDcig>lGWa8`X%ukSsBj_6nRbuFq9}{Su&y!BYK(bdT$Bq2
+z+?A=IvrcF=3-yq<Bpo(BI+}|$w<jxY>_?mXu`S5ls0L-;Jj2056YtSKG9|p#R*x}!
+z!$vG+T0NQOD0zflkF;n~`w{&D<I9}^JMm59hbDVxkE~5BL%H9N-pU?bhUZmdp8pq~
+zx8wPwG0*RKOV#~pj3XyI;<&B_%;nDdmycyduW}9A=QkVPQoQyOtb3u|=$<@gow**j
+zU5@@YCWQAq<Jjog6+yk>4^Q^~_T2IPXhxmAdhNoRC*```fp57trx#B4w#pu9ac7=A
+z*`xpGRP3?cr0Fp4=MO1fpaJC?Q2$nu!(v}xZ!9@g*#s@cciXJtLCVQ<Ii!tqv1WA_
+zyHmwys?nvrZ3uJ`^L_ZM09SZ#;=M1v%B`{wdH!wJxjVn!?-kc6xv$@$Z=3QTqV9n4
+zizl1P2cSyJU+)xO2HJUT$dmzhME{l@EXMCjeuw|(;QuP;kY`H_zWM1Nqx|A4XtSgI
+z!UHH9jI4H9He~gBUHW^DoB#7U%dPnvVP-)R?d@7^7>`z|*j4FH>Om5HUUg)%R~_Bz
+z(bub;awWi9jk8(SB`441daHPQpo0_L$y!InxRiW+I;JO{l^dYVL}o<%A9ek-AFj2O
+z4`)zfCv>JRKiwP@oA-o@NAOwkalk%vyS>_2pI6hRY@_J+&KQl1f1+~lG$d=S<`ihe
+zL#Dmfr9TkmWVBzdq1*v|G$lUA{N$f8S2eK~vHuF-oT3i(A?J|jvo7R1U=AO0_RIh0
+znTE(MLdIs4?eXl|c(QhSJejR9Qbuh{GCaLCnVl6*RaLhntEb|3*hpoc4yVqv4tZhx
+zZ{WG#p5ofpbt&qRO6w-L%tJ+evfrgGBl$4nD1FCm=IKHo?{KJFD;59dGH1Qm0EUdM
+z$G49***4o`e{=m|KSuko-(&mi$2<C9=sp;EeZV~0S_hop2gYZp1bonMljr7C?Ne2&
+zeL1#pKJ{<Pc`DH#TjC%}Y}`lxn9c6W!Bv5r;eB55+zlDCYC}fyx>(A0Yl-L+l)W3j
+z1>N;N@|KMEPJ8P>Y>mVtAx}cTyPMura`>>(=e6T^rTD7#i5z+~)}qh{Be5+5PJ^rH
+z5Jfle`7iN2*S~Wx-YJZ|VN8(Nyqx<f5>ucwP5T(?6zW8WQOcajGL~27^?PRCeq#=3
+zUzMAF5Pjlr#)IYm?Du_d>U~H*OT7>I?ruEioq3A*oMXBJ&#D2V<EYCWjU72M9{O*M
+zbLQ#sEE*Zl&~Ub>m$J1yxTl}dN2vpKxQAK<mK^#+U>wh29PRjBrTxGt@1t&na5cr*
+zFJn&#9JuN4$~SY<=i-0z?d#A7?j6cI$ft6?9&!%L{|%ITHm>)|BI`WH<|zWa7chQD
+zl(HI((Y}?sk>sW97tb-uvN6_45+`*f@WO&L^9eI20AtiMrZZ#yd`-sIm&?;9|1UNB
+zy`^=yN{)~5+gR1_MNS?bY{2_Dct2;%`&oED4ew2*n{dy>{_<lVWh?x$r?b=jDgV?K
+z#(hZps@}O*Z?{P!Pmq1$vsR|WPm6x3jGtf<zCjypCta=TX1)I0K4slyEwm3iZvQd9
+z<h=>fCzVp~8RSj5AA$FnpL>(h@5LNkW8xXN+5KJ+V~HK-TR!@JDc%o_A0AwCoNxK)
+zd-|UL1@EKB`Ie8qpN{vx$NQ(RRXnee9M0OB7hMj7JQM$a2lw5$KZ^V7xc?OQdvV{2
+zdpqu1f;xtBxZgX>xc|n@E`4ix_U**83T>17Sf%oh<r%yibllUp4o05wp2B@6u4nOk
+z=y$_|Mm(DOiq9yT|JUI`$L^%ef;>z5?Rp(=+-FQQ5}Q5lx5v;<0@vc{{Q{4Twf&-}
+zCN5coXTD!{q<wbG<+FrEKa({h=XzyVr)T4`aAsT4%G8&&ujFGWM_I_uA1Pbh&*S__
+zVBef+sW=8_Uy{>bCd%LZNWX`7<)mSre0FG%xjOu@uFR3yoM)^*__ze0Tm2bR$6Pd=
+zO~GorCur8T_`nwx8rHL3GySscbxB{*1g#67OJ2q-h{{#6>0ABf^yPe?kM@cOBv*pu
+zpvOGjjrt39{bpok>cnjvIIfM~>pb<8uLrkX5B}_lvS}F0`e!vghB4IU#(;f$^Zz=A
+z11B6q5Mu~7;R2oSezRZVX)2q`*JZDh##^4({}a{?eASv)H{+@XBxdjx$@>ij3tYdO
+z@jQX``>*|?8%q8m1-On$?9#Mr8bt@47jwRgK7TB3w)^7Ab~EBW?Q{mevwujfDg7V;
+zPwQCTc+peeN7IaBath<!##M|<#=kvT=#ooQEualsKpXlaH@S?<&lo8Ii6!vZz{$pa
+z1Ab#GuC)V%g+lbXB8u}rGE-tW8pc)3yINEc>GHm{U)$=?=MV4LHuuiG^cCbDa9Ui@
+z$jJ)Oc&~hPcyK4)_nzM`<0}I^{|J44_Fcxf6Jz{X-WY2z#sJ3iEXKGqZ;ZQ9$5a0=
+zj`5-~W8A67_|&v_j`2Z^G3WafL%(e83qU{aN~<$Szf(WP=g0WQ=f)OQwmFZmJie`r
+zsP97(7kOqXfN=yk4lCx47x_}N$9l<s1nBFEzJ+DXGgH2ENk^e<VkPOj^f>0~G<pUK
+zjgA4H7Xi>vVW$WD=$zD>I-WAe8IIf{xd94uW9^byIdYB;e7IluRF2E<bhu&k;Tss|
+z9Omh84th^t+CQT6H=SRUB~X6bfzdrF`>|<t>IVn@xBYnVg!{3!snct^RP96hAe+`3
+zGC$mh8(3#vY}oud!>Z0;^O$`|8FP?wkHjy$ppH*J5$D;9IwuJ8fl&5Xjw_3cygYr%
+zD?X-h=u@#y-_E8^-?NRKzA*au+=u$TWqQ1<+n<PKK42*w=r3oIHjJi7=ia@oGi4e(
+z%X0eMV&Ln!Ppb3btzi|TIu@mWzvvD{CiRHI>**I}s=SMYl~++VM!2!!tti{`i1^{{
+z&07OgVkmnkR}0*dt7BKL4$!JE;hp-<O)~G<9TyTe&pj>%^8u8pL_Zhr156~MsRom_
+ziCaV$UKZ&9{_2qYYKHwRc%e;756)Zxc8lL|R^$1+lnGp2VNo{wq-P}BJ>tFSu$oiy
+zS35XAjnUMjp!IsG|I5Km<LDeN*K=q#?kp?PdE++WjP>cc3z@WKP;}VcsAsGGeHZCR
+z(m|oGrf(lswq3DEo9{&P+nP5wXQRGPsrl_e+17WP-%eSF`t(i1*){p|+?2OgZU4YL
+ze`}cfka)UipTY+|wBM-g-29-m#7-<`E!I2}=|V-nota0!-O0U)-=^hrZSfn5dEBq8
+zhdQomBldDG#v|<x!(B1ZR-h+9N027rx*XNHKP3lOa(HmJ_8SanJZS7Y9uGb>=KY&{
+zkAFWFx4gFZc-(T~a&z#o=HZA>H<k8#D)v>2`_Y+dukFTOdm4M~Aof}{_O7F0hy2b|
+zUFQ9whdtnZ!=A6=tl{@(@%w9Nd)9gV!nd0CS47Y5r;ilyL?!U%=@O$kp0>pYXtQ?@
+z^KdeUG-!(f&IS6(7#&9*S9BWje%Oe)a&{#;g`fK5u)>k_j}p8O{Fsn^FgIO;`K3(-
+zzb#{I0?>1pf4Nm?^KBRP3x8Qn-)fsNBXJ4O*6Pv60ywkiPRv(@_BjloOvqU0F+M2k
+zXWU@QBSqKDnCL8P>$1kWOc-a<<rlU}JflEk3vqB!7t5e8F|iAbxz%<H-uK`PY#G=}
+z+P-O4YBkP})pFL{<l>yc`<pTWquHxr9$BO12zB7}J-6_zYWVMeW1irf7wEIB=c`)J
+zm&B?Q`AIzaxx8^OhBC*&@p2qjVf{aa_lv}T{($#Ytg+ud5Ts6?bbA@&uh2(L>+mj@
+zTz>K7JbW`7Wr#O?jGYSH@#mcicWfO}c-MXxyzuRdNAW^8%G&<`-d#O(Jl<V;@hCos
+z4gK%<pfS=m;Vr^6VDf9s6N|d4_A2`DdUtrRf_^UGiw^D^m2FQE8Y5o1Pk;A0#*tna
+zGAdHT+1LAqvk}~<;c{@zS`;#-<K5vaLdFW*m*ZZEYtiaAveX|g$9-U4$QYO(GJ0{h
+zaer=Z$f&`$<hSmfqx_t9eqQ-GQP20u-;#%lry0MimNvOfN<Zhv9y(QIqR)Bn)3&PO
+zlLFjcCeIJb^V8&aJY8K!9m`eeQzY-lX79WI{&@OiX9w+SR2ljN2rd4cmy@Na95o9$
+ze&+KOnt}E==!02ZRUAAjF*x&cqaBoQQzs}(+K>9)+Y==&<ET(hdzLXf^&V?>%CT`z
+z%=Vl_u{RahS@>OAVGc6Sv~85icmnv%x<6|g6VHlXEjq4i@%uf_)$*J+QkxR9Q<Oo3
+zBe~dJcjCHLY(H4u7mb&Kj`dUT)f+ALs*{r>ZmdsiDOKNprsA!p12)^cGCdAFOKoKK
+z1Z8ikY{Hng&J??(dFf5)!*s3dk$hO%)+5dw8quhV<&AyNCiV!uBXNW(=N5aFCA7in
+z@px|Vd1XnlNBliqWbE_POHE_*W1#u$J;mNEtlup3cN_j6A6e!4?G2e)OX(FV@Leh8
+znpMiqnDpG~$FhU9XwT=grfaF^!nckw$z#61@l$l}G5bp{{Z7XNUlrPqr+vFGa~Tuw
+zWb9+g?r&#IU_5In0gq5stoQ=Ft3`WG6?Jn)Q8oG__7~17mvs6sFBl%I)iM9dnu~)W
+z8Mm9Z(Em4?tB>)`P&VSuPDSyocE%)+_#=e*2x48rxX(#4Cm`)euF`hIo5bGciyD?K
+zlY0Ky;<M0*wP?V#2v<F>wspo}rK56av0NGGC(GXCeP^A*OV^@~-(t@<{cbc5z;&3j
+zBI7E5t}V)i8C#ujU|T!ElWdZC4b@EwmSNmwb;Uu6&!ORG66QXHwXCq(y>J!Rbdy(W
+zx5%1?QNA|PmP+XO8{AW6b(176M~HjU#=gV<wWzDcZo|CNUUjY5_XM$4!MQD&2+E0n
+zqTTITI_KlJ_&>fAA6LswQw~_=?)0YMIulp5)#lwtd1!o-*lrZ*oVv?<)cg={T4u4w
+zd3qH4n6{L}sq`nFhPj>9gmGRpJU9)oIFtHWZDSaaHQ4N##ieQHM40Im2UlX=X5pJU
+z`h9<}Utr<%`&v^+aE@^e3bcO`_45(TQ!qt6;B{^-$Lf4mV!iq87B|q;lA2bf){S;k
+zbMSs9U|}l8f39A?n<f5HJYD7N^r(xnad%v`4%1OqVnOOP1pN3PXYACe{T}T`mtd?-
+zxCcO6FUIdE=5H$XNF}sO()wD|{iP2pS&!tLaCUoB(1vO6_Rh3-;#<Z|Yx8n#5N^Is
+z`**#!@5{3b{Xw2x=-v1|6Kl-z)0Tnb=h&y=S#623UwX*?wb(FK*galRoH%H;*aFyS
+z_Zsn6=@xi?N%KqJq5T-X5Bi9wza;Z%7@u_wllEUNF7;wH){Ioxu9tjyH+-BiLh8L@
+z{9k0%gLbU<LWwe&!z#2f1+adm0oX~jc{6BB0UB>nsanrkqb<eQhbIHSZhfuCJBqc<
+z;of_3Huf{V6wg?U^DO=Rdw5QqGi&$IAkT?qgoh+?+jm5^I-YssG;GW&QG39&SAou6
+zC%BPyL|xzmtJq_`QH^JxI=A0*Ooek;E`T{2m^M7<5T9~S*xiCZM|gJU({4>t&GA~Z
+zCxd;khq4TVGFb6N2Cl(xNAE+ksz-8c<bUt4x;4YPEA0-+d;O<uc2`+a>AfqR7O%pM
+zc|4!(Jqphj?^gPCMZ?@EF^i_^T+8EVAHca8R`F&l0rSnYOTc$)|CAl%_iz6Ob2j}6
+z^zAb#=1k$Uzy5}PTyA;_{(s8s_nxZ5CGu{@OkCx1eIBdo_g0K!{=WI?OVCDcjV>Nm
+zxiblCQvoMUz`wpkvl~uyq?CQ++JOu3K8AXmP;b+idY7W!>&H<B+mezwqc6PH!O<3)
+zwB5-UxM{-2g|A7zg$sBN^1Uhg6u`~TjltX*MLaSK^XbP~ma{{y&RgRn&O6um%UENc
+zf#VxjxlYrnloQ<`w&%<NL_5TPq(9UtN?rlb17FEz4>jx=8r)RPeCU+t2#=J04KOJ-
+zD1gh)lO|*w3`52KobiF#so9@2a`<5)@NDWK;EoW=zp42q>RUegR(6oSW$m9(vh;vs
+z7*B!zdumolY{_T?7Q(a2yWhy}j=zz8B|V%CX<7TBkYUULP53{!lg<o8&hZvSuooQ_
+zv%zn-i4VQGJ)S(~tV?S8fpJfZN^ova{^ZaH&uVk&j~JA(w7Hh?vw`o0hmVr>f56(8
+zoGEMB!kEcNV-e7$V3_aTrDAaq&p8Hl;>;PvoB$U;9<sWg037c)1$!q5zJala4QHi$
+z2lh_5syjnp`4HoUQkI4HjGxPQ1t=G;>y{h<SciL<Gs`qOQmo?-SQkUTGmV(f5Lz^z
+zcC>$Cg+rZz^5OMa+`H5pH+zI9zHh%UWJCa9;`bOK?bR!OYhrJu;$Ri|^>aRB46U3m
+z4d*E!y5@NDLlT2Dnr@2ytRiQxK_AMH#GR~9(mwFdI``Jm6MQGJ_+mdBU_aPC+m`<1
+zm$RbGX+1I57r+=98|k0K<)a@YX*SFSb0e5K=aKTC>-BQ+y2#J5E&8dMw(K#<OIV_9
+z^$qRk8lWu$;DNq_EL)=Uz|ilmETL@D47;_w%)-6_4r{Z!yvasG+N=YgTi23#h4IvZ
+z-%6*)lTpU#0&nHFeQwl_dGs-Fvs6Ctl<2WBPbJ-%GVsk&zz+A%gu2#blrf!je{%gT
+z7T=rhpk=iN#m6jXE2jHvIqS+T#(cBZ9ru5(o{+>u>=u2ZMgG@bhikN*X&7G(#>ag_
+z8+)G<-xqKa2PD_I5#M(vbJL?tII%BdBogSaIxh<Gyaw=9sr_sHlE=2&^YJ_|zLK86
+zoFbT?DUxHlL40Aa!M)s}4Qe7tTM5ceuf?;|@}3n+oY98#DS6L)lJ5{_ypteqNm?4-
+z*>8vEm&4fh^QrT_!*CLJfd_h&b9%Md@Fjo`6S4<h6T8+j@@qvkj{Y{$nqoYm-(jx>
+zWG<S$u)QxMcpKjZnEx2xCM6zGx5z#i$5djD;$4yC7n+N6P4$;P%*;diZ+JE_@7W>1
+z(r(s)_Rj#HjpyZfUJAT7ai5OG8*S|N1b-M;NQ@UF$G=+ivFH__qe|>Ij+b*@$r!-V
+zUYynIGo)#0lZ|uR^cyP;$`QCG%p(f?bcFByI{trHWE1n4>uHxM^z9XC%1W`<g5j$5
+zr(*ntgb&hGHN+7Za}9kqwVW($H@l?21J)t$435*7TUsnJ&*lnjPILOaQ^e12zW*zl
+z4^gt%L$ZDW`xhQ#<V~YL*tSDn0s3;0Vcf&I$n!8CD96jaAGWX-ICpCj^#8jeIgL67
+z<7(cENSg+&9U1ZmHqNLz*%yaA*2}u+OF3KnW0L=#qkl91KuxUItL*9pUAHJXPhy?)
+zdLi&`A?#<)74049dq_UiwAN)R3^fl1`V%usBvx*e?}$ed?LNspnrKgjjVqH_PaI3=
+zJL6JuUF>$BPu3-7a7}(Cu%y<6ekhC=Oqz-@RJbNP@E+%D`gSSTEAYr1n~w`UkGUXC
+zZ7aX#pz(MnfO)N?y*F(koYlcz>d8qr=>O?sF;Q%-)c+k4t4@ur0%H`IW_}2ajq`k`
+zZr8NiQz1NK-?-klir+~*$ry$w8KMIi3^*@(<swsvmy)(`rOycF@ke5(qVQ-yX!~xF
+z6;5>a1Vc`%f1<NJn8QITC%v3~6Dz?(6o8+ulzpq>c~RHIa(u_UHssU!-k^+`@98^}
+zP-VD}=xa{BUVT%Sij}qvd+1!+&~C(<fJTkQ+<>u(_NH=9aE~<-u86<SC4c26tMPqQ
+z#~kyQsPBc}V7#%KcydY&eVxOYGc#3*vdp_g{T}_{!<OW+Iyw$x|D?$B<_kVlxuv7Y
+zk8$6UPqsFC1#{PBR_6RMoP8dB$VhWpT4%?zawX1u(5O8BC5|)s{V3xk1JAyU_sg6u
+z61OQhh4P$MH`slVD={rKyr0GRf#9pT-pqNyvwX5~74gBE2kQ1GnYYhxSftZ&Hf<C+
+z@i@SQ*t?3|%>3k8I&YNd7@2=d=g<a>id^wIIq$_@YGPQ+<U#vLJ7}ZZw))ol9kc6!
+zx}Dv*e$mg7>yVq5{|4-HzVD^|iQ!Mx=J1WyrQDY{7eCPXvPq9s*ea*sTiPz?wXBNG
+zuoUZ0ohIWkv20j!oDvR<dq{WfpiMgFY*}Q3XJQSQH_7j`iC+wJxfBb1)+~9X=+`dg
+zY0p@tcyJ%e0*G;L^vJw|=DCM?hu99zlSd6>A#>FpGT4R%`a9Q#Mc<oll|x0#6LT>l
+z2)~tpU)oyKGyY?f!v7*)1f0&?Mp=EQ_ax@MSmI-=e6hd{gT#kr+6MA6whO+aRPsh&
+z&G;7&qM=8_5^wox#>-$_`dvQSDO&N;@#<L#`Y(2g=ZcU2g5>!^gKd-?lB7F7EU>%L
+zTV`$c0;GMoKQKPO9-CpHe(*{m7k9fmGamT0rMoK=xQ@0??t?F2UQ{0zaV>Tn#F~%x
+zVbO7Yz*%7ahJHFa2Aqlop>l~4_WX=1Mm)$Ikj}cyGGnvnpP>3eT<uT9q#r-0JRq+Q
+ze$Sk+tm99^%I5P4ojckPKQ{208umnn20ArB+Dv@KVxDQ@`=^zjEM)Lpq77QSl=01o
+zLz?o-(@vTE5c+st-Z$Vef&pAcG*%uKT0UM%I#uHCV9g^&mq)xbnf_lfCBvR(Z!Dio
+zJ>28*WNaR;ix@*=Ws0#A!ig3)5NT012GJJRbYiIp&fJLE_HrP;5;&AJ!!4p`8Sfkh
+zep-|yE*<YY?Txn&({~&&_jr1|{WSFgn1}Xq%D@AS9iENzCe*kReO^<}xITY78S|va
+zg8xI)xCRpMKjuZ`oM)bv)pFJgZ9{&eu}fm?NDL6t`cbh@5*Zrl+%l&v^*_1z2F6NH
+z<n@h=ak}1{=<EgFZv{Q|xX=Vf<9Ze2JQ6PnL|09Ch4OcMlpo0P0wIxA_evf-T|P<Q
+z%-03)^eK8Krs7M5qN`H$Q_sZ$3NSYX@X+SG*m_)>N}OpvtjC$e1Ci2{#8Ybm{TyAV
+z`V2aRaV5$?XHRBa3rt!R`{z8C*M6_Uk4k^l_>&yBrR?YVoX^JL-3wV|(|NMwaaJ*v
+zc>V_RzTL}xub=Vzar*hwGM5WPXY@YiO|?|LEN7w2PQH(-XN<ES)X#sO`_71#o}qJu
+z8^#r-<eAExO%jWt%vt44w4U=OGS&>vKf;aAZca|LcVexc#d*9V4IG!8Xg%q%&+KbZ
+zx54)ALK|Z9-#Ge={qEP}rT&xoK*B;dsysEU$Kk$WP6^V+5<_a9@Y}RWQ!#i9@NRpB
+z<~Ui?bP~%X@451aQ)};FO;t|p&eUoRd$KnpvGTtNt==hq?=k%@px+HJZoKB9E3i+m
+z{?*W6HR!!7aj&sSx3;B5cp_t+H=ob(elG4|+&_uCgZpK;*Wx}KcgkR_$j=65{c7mw
+z3h-)-KPfzCOkzSD0!~P`Vg3uR>&aL;MoST&M;Z5XgBP69BXlrh0)1H5_d(n(zEif}
+zyUL6Wo`Yv0#%9oQ{6a>L_kKRZyZ7Qwz4qC-uRvS5*bpwh<$N!7+PxLH7^6~T2#w0W
+z$I$hS*Zm0!Z@xj~_S7lUu6KfNm;bZP@%W$LF}_ex%Lv(r5T9ecn{+%$;q!?L_1qb_
+z=V*H1+fV?{IB#$58X8#>`X>B!7w4eYdwmzj*6aOgm-_xS+&M>oz@0ITUfDG|_b;Q4
+z0O?O{o9$<Aj_e0Y3P^Wi@A5b6{w>PA<C(~un^Ww=@3SgaqorjWMzqVDW~|r#PMEJq
+zm-p*kVuz5TjD_d)WYNQ{^rl5tdQ&6x(O&O8!M@@*=Yp}I2@{)|`(^F9cS5n7-SNVA
+zca7-vSQp15=NRCG@xCbAeu`%$*F>M=EW?;jVa)jtc8$V>?0LP075F}9_a%ER${c+y
+zuBqXs58qXeDU<(xJ?D7Ld)Av@rbD+)Sz{`jy?`*fdKYa3Hh3#pKkltER~x)$+-+ln
+zr*hDspG``hIU;+uyE6W0Oxh{b^bcch1k9ey1g;5w=f*F2a4^S9QRhs~i-vX9hc?av
+zUHv|`wHWVfoPKXQe*2wv@xLO?b}gQ_;aS5jwP#+N@w0&|0T=OeLPptlhO=tj6)dVV
+z%_!<r_$|$~HL$J$Tyyjqm*LsRIbV9cW&i8%dlUU0b5e_MPvT}*XhMlKveK()>;wO0
+zJj!vB9*E7D=?1I^Gt5y+oq=Jk29ECWK6-Ih_P8VSy?$gL*7ASG>rHgHVepp9PH)vf
+z0CXJpd8N_sF&<l`rE*Wu_Kq=rExX_Qp?`Sr-uH(L=g4q2^t<8gble+)DxX$`y~nF~
+zyx;RV7p2%|?#s$(w>Mtfx<vq=jM)V~`{+zu({X(S*9GKlaD9?KwZcOgN9W+0it9XF
+z=ZdbAyiIqG&J{j@eO<)7m!K0Ck$2SZ!%j~*$_6W&ddhJHLt~#e;(23Fkh=SM65r~I
+z^eo&Nb3Vv;eDqzS9yZ#N3DGtkG}iWC=F@&LAKDHTFt5DGdqC4Q#mL+G`8*H>uihAY
+z7|$LKG{x=$O>-CCJ&5ZLl~-#*s#^45IM=LRuM)gRu&O!3ck&GVs7&A)=;z?}mJE4n
+z@{`*ohDfj0XI<|yZZdO8Tsx$2k9?1_vdkDAN2U0d#9YEEW2~>h+OELbt{AhnO<3Cx
+zVQrV<eFNS%jCsEZ@Ba<&>+zm3Qm2o3AHn<g;QjP>ft?z>KLhXId|$|z1(=x**jbGG
+zRkVx8{oA;&!2OH3H{t#T+$kp&c`?sKk+F-f;UV)nbv}@WS-^F1qN!6QS8}f>@lLdD
+z7~fx}*X?9^-{$4c5%R3n(Kau4?(p2;xj#df_Y2L?=H-_O>pOKJmfd=UFi%>9w0p?v
+z7TT9|;vbGF+JXF3h%y(Wfi@aECzD)n+AapK>&~pIQv6fEq70x!XxB2lx0H-Y>{lv8
+zCexfUuWQYe*`Uc$pUT_bkYp~onW)Qd+6X)qa)l?GdyyM#T<r#}jhO&(9O{`M{2P8d
+z%yGFoW6q#mmVy_`25F~iVcwYAm@+Rz&q0OJR*wFZ)BoAcieIey2KBU3Zbm$f@xK0)
+zD$ks=Y&T@A@&d6{;)5wTt!ZwGXV*32x4u!%va9fWg3&e5LLC_SHe)V%?|W!NrRwhT
+zS}|WQ>bk?Zy#>CVb+8R1x=L)2P3xiwW@6@q7UmF*wOVG>EeS{5l8a>x%ab^)uM#=~
+za}}=Y%9wRM8I@OfhR;mQ@u9ql@+S2cc=iCE-EPKaJ%H!;<N0l&y4X)x56<{cP~Kih
+z+#6fzvQDl|h_W2)G1`iRtc~7pXOKQu{WKFZQY|=N!or`e1l>Fz_ZBPQtSZO%<vi1Z
+zC0!ZH4a1EsG7n+kn{i@SJug*I63d({@r^!~I#D^&cxIv@6{w3*A8{4saEyJ<zWi*)
+zC|=0j1NJICf0z&SmE|5}e|es<oZfRr-kzf#?_(OKse_{4hw=;AH(JM0AU;f8;#Y1&
+zTNKYGIjP&^Y$F_2ON_)`iCx9Be*$GP5=R7MmDs2krzmH^`wZ4WY#Dt{M<#%Ckg?x+
+zehVKp7tdsmkXOiSBbNio-kPB-=XJ_vnA^``y&V~qV`+xu>}9#XWwVb`CQbM!&)%%z
+zE}~)X3Gr_OP5~a+tznt5&bg1xMkSx2&ctq_Y}7dVBl2a!^EIUdGcI=jP538u?gq3E
+zb-AJ9P@Ez(9CP6GNW4GN6EDB1c@F&FR;Qkg6Q7OsV*ehn_lfT_b9lAYZOzb^ler(q
+z;T#*U^;)4^?naSMk@xEnJjq<Ij9c=I=4)P;vqbgna5iV#8c%*l%l2sB#{GU&>nWJe
+zmAMhitj-i=os_RKjsWF;qOZW5Y<pYt^5D@OL&X6i9Gy+v$Jn2YnPqM9Lf~f#rZ9iu
+zMXs-@*$qTC%07M%@f2XvaJLA~HL1q{?PU{Aws&XfAJ$Q)^00F*bnfMe9d);2KVL;z
+z+(gq@A@*<uqDNEq^OB=9+Uc#$Dtqn{-8VDVE_rmH6T0vg?{~idzu>4i_KGIDae(`x
+zTFZrKbHnlea#+<vzaZu~c@E#buIGt<yTYqdPq<Cxd1XGy^91*;6Buy#+wH>HPaBjj
+zZ@j}i@$-|PF^pa0Q$sP#Q4{u3WKPO7E=rA$H@jxy@{}<bI6b*36KcE#Yb&|GnSc2n
+z(}<=(!+(PB`TTD>KIlo5{nc&Afc{E;T=2;p$swD|5gKqxj_}<K(XV_Zt@IJH&nBAj
+zPo#?GuF9B^dgjvp1lvG+pJ4lJ=SWt?#mec2B&Le9#bf_foFVidd(0Q1o?%AHwA)f)
+z$4&a|FSyF~ls*&jeWv4oT=Er3+`=0@@|J;;4H@=3>}ot`jN(J1WK~Auz0p7A1mzSy
+z<h-p&kFQ&mAsiFO6_u#{L>q<wj3~Uw_#7M`?lP|b;u%LjR?NxI@!kK3&KYA7yl{(m
+z!7oP7qJ-qkrvEg?j6D``8Dr>1z|M`buGF_sZXt3(J0`TLsr}F-?t$b7jd?!sYVZ5S
+zJ7t7ygLsy)1Vh$(!P6ht{Z_moaUWqz$BLtV*KQS^=ZH)(Hdka-jHmKZZTBVfZp<&G
+zOgCVx6I$s){Pv4|`5KS5Q3bj`jE@t-vp_UnLYmi1#7nUsN`SW~id;(baG>Gu388M%
+z7=e<WOt5NQhJLLfXY&)FRUSvbegS%FSBQ3T;KlIFXIQPG<D=bGz^2?`j^q*m5B4bI
+z(P~-zJ^Ut=*x(hKw8{Le8!X`*whB!tIYA<nfs;>L?fRQO>js)eWk*^bxQq0Ck&IvQ
+zyW|s#v<&REOMf;%U*RG{#VY6jT{>5H(Q)&;M&_1ttmIql*Cx+rFLv3tz?go$bRqk-
+zN&2GtwpjYcZ;2;}OC`?w1n@|}0mQHL;Tcyl!!=_uHy3Z2@s$Hjm|Le4xOQQ(%;`+|
+zwki1+^;fjz9VhbZ1*CZog>($%E8bAJ_!`+O<bM}ZCU__m-2~oveP$f+>YEa?bF&v4
+zLx)l)#261{wDA=lyTzrg0sTbj&&wQ_q{#!(?k7Te9*wBG?|j|n3(T2jDf~NCKclX+
+z67><k3XYIE`@H*yl^w9?95BvYU-$E@$GLX4?lWcFKJ6n)zN-q)3uZ7^MW39X6LmX(
+z)wU;WyByC<JIWZtpCE1`&G!e=1d=Cl9_H{SFBIAGurC?E-`F0%AFy&y*y&~b)8u%k
+zEyG-zJaY)kIUnr55<Z)9`m2RW(8jxX1}uDXXi#J*dFMq?_v6ohRejs4bFZ@eY?S}A
+zJ~Mb;oD?H|Y9F9nClFCOERoqXz35#=J0k1>=EDdyJ>&Tk^j+9A;5Rx3xaSPen&ka`
+z)G;~KF)d7IKe8k3pS~j<ppOaOv)qSxE=n$F6}LjZv76ljXD@h;9ckm-)?|V6IPlE|
+z@Sqz+Ct%i*2j1Y7f$lZ{s|MjS(WY|FI~~C5J2R&JH0a<RNB+0Vuy+XESuv)rf3_a#
+zJ3`K?5gUaD#qV%@`>5-Bk~TQoxCZs4J=gH84WQkpo>2IWdX=`hYQGrZCny)&j(75Z
+z7xio#yr1F!wu^{oKI?M761FI>`pFYRB7-+Xx46N3Q0lx2ZC_bB&QQ6Cu_sFlgwDf!
+zcCGTP_$sdqJWB=nqiw6a8+AVPU+4HFtbOwh%#Q&)qHUxKK!@<WSf=SR@<0Y?(pVBO
+znp^Mp$CF&|DY$dZeN$VLvhJX@3pL%yn3n9zc>G_0{{wbQx&ZTNksrNI$sWc7cde@0
+znqi%1R<|U5f2ZD8H0&~$&@}qMHmaBuJmbWUsA+?@lDtS_HTrm1<QI*khhrO*Y~ucl
+z-D11l&7DD;#1AK$rtJu6=n!b7K=;M&IH%o}m|Z%qFwX+hos(KCJlATBWw+QiD_SDH
+zV@h4AJ09!u0n*vdoD}zr1$gtLALGP_b4IGbKJ01VmyvJiuVcDs7qkOyZpPR3W_Y&!
+zN$kP8JjN{be<Yqf^CQ$H&QHD~ba%V^faZ%V%8#(lq%n#qXR~@lUk)58a)niT{kWE-
+z+sblrzH#o}rt7#LxQR4(nTF?FJbc#k^}O%@LY;ly_ucyYSAm;?S}!ENqoifyonCKt
+z6bENS$AbOLvl@FL*xi!}G|zBDz{iHzTeZj-#_4t!<=SnECl5+IUVMwTgH=7i3o$oP
+z)tVt)+@$*eSblUIbxi2zw@Cx#uO;Toh~?IjG|^$&p9$|$pwC~n`H{S_K00QsSLk*g
+zV$LtL!+eop$-li|Bt{5h_2goN6o_Bm#*9C{Ch198^u2CfCIGy4r{qzLCubbX=^*2G
+z^kWVBG;H&n<vuI}9aoIGD%SHvTNB1?sq6wTWORyu3jGXuMt@oJaHmL|eBikV<qoax
+zO>;>*xB|mLs||Z%kBoh`$iziQII&p97*EnSh2It$w+!&xLZemeA^1OklcvboNtC&$
+z-vB?9=n^>-coLC;2Y{=rrp^@4lM2crw)bShv=yOzh<Qh8gUHw@ab=TdsQlzbg+>?J
+zSS`E``?B_J)t6u%4@(+-q+Qmd<?Csjg}E`j@;3GK%AQ57OOg1PJtel5Do%Jv>TLCX
+zL3<A7S&7HfD|ZeJ3XIx{uArW9i-zCl8M6TIZn}Z7Sr<w?nz7^mA)bkD1btQKTbrD3
+z)Z6@6=W=Bq=>uJ?dE%#sRsH`(z9~0WXP>u8>-@wnGs5#g=t=PO&ESFCJmTi@!wOa_
+z$JhiYS#&&2*=`uPpptQ|8OJ`R=s(If4_Ebjtg~9n6nys0?iWC>I=0F^Ul~#HV0^Lo
+z{r*_|wt%rHSqHkuYKo=G;+-kNUqF1j$tN!o`Yu9Qfw6Iba}jD>3_4-WK#joSdeN)X
+z*2Qm;pHlgGn2TxAC$oc$E&CC%xr~4|`YL~~Vax#X9s$NLsB6v$?e5G>k<JCbPT9jf
+zfhy(CB|g}$o0gm|ZgYk)jsGULhK!B7)TNw;JRoK1>?`RzJF*gET<PWLrKqEH{Giu&
+zl#oAim2C#cL_H33wTyR^&nj*5$Qzl?;mmmY#yF2>q88u(D#LgK<3Y2HH?G+Js)oq|
+zTfrsATdBv(*tC9QGw7(*120INShQg)nTXHXmx-W0+IdOLZ)eY`EQ|lkS)Q_|9}6v)
+zFYg8)>ZshKPXWF^Jv2196CBi?M~1UUyy5K5BeZLuo6hNp7#qrweK=pvtEl>&4%uB#
+zn9P4}w<MHK3-}X!xoIp*OKc!(F6Z{D>6j0Z!Qs1^pl!^=zRbP!U90QLOt!+Q^Xf+I
+z4<;4?9!j)~NXfh7$&yZE@Ke<FkHl7zd}tCwDWLpfrR?R-fswo;MJP`j%ggk$qY@KJ
+zm1Aru@B^hqigz7QHZgmce?Cb$A?a>I=bZCddol%DFEmbU9gL$G>(Pn&cSz!!5w02Q
+z;jqk6abEvvkNLLrXKwoaI?ftxUF#jtM%Z&P^ySZTc5jul`$E#g%oDI^8|QsuZfvw&
+zx@~06%#k@eBK-Y3zkN-|IwfveWcPY&DDyMQ)5?$7k~21h{~7Do#+`E?!#!R{8z=t+
+z+RsyOoa<)<{X9UQcCk~o#P;tAi7{n~P2l62HWa!_+Uyb=qovgCicQQFqFZ2n<R1+e
+z_$IR63&jlZ*+$COWTe7oZzeV(H>139pEso%<9h$&%=waJJS*BZ%9_)z$hac;N8!J6
+zvg3I|cLvZ`Q`@_|F5?{ipMACQe?Z1NLD8wkBHk-r7CLt!<9Qe5-o24Gu4&kJHMDJ~
+zEli$0I%TcCn6gQKg#4cKtj9ec0k2{<?adT8PkIH60nzlNXWNg1o_*3I4ltFB{!oq0
+z{kuNTR(<`5t@`)GR()amp%FWCd~2(+mzm%>*(dz(n*sU=>wQUwG0661zv#HZvR@)?
+zrR-1OJn~LYdPUBqsjq6d-U8UY+%%5ff;;HjqZ@H;z_lJ%FRmV3>u`1B>cVw1uC=&2
+z8TS^~O}N0c9K8`&JFeBZR^eKSs|{Bxt`=O)xEA61F0Sw3`Zlf)q1}(*ir@lGeRMgl
+z|1{M9U&DPFuCE&E-3_>!aD5rqmvH?DuBEuXhzsY@(a+;rg6ng*uBT2Gbu7mHGq^sD
+z>pEPZ?T>y6*R{B=!PS84YFt<0x>EO#@lCG4wE$N=uKBp;;hLML|Gga7Wm^9W+UV#f
+za7{*gvv9u@myO>a)B59!ab1LK2FHc#Lakf==osDd`M795`(e%tt`CmUE#pi*>fizn
+zKKgIC&cRiS3wY%y&eWr)nW_)fCh<}QY5j>cfDcE`pH}fhAa1I0Xmb}&o}}saOR~yV
+zns79ZItanx^V2mFAKF-BGhVdF@u-t|QuG-)`8{FHhcnc6TGNCpzV|8njiY99h3qpQ
+z`Z7WE&rgca#H-q#@%IuRPWMmyI#fIHJ5cT}yuSl<@IA9N{ytUkmeRrStfwCm=|Y|r
+z+&iYN{48ig<<svdOPiy=XP%j`t<L9g32o-rE1UTy+RUFS_<=DF!}ve9&$wTC)^jfA
+zVXv{TAw8G=8S7-fec`5mY`>k2{dR@kZ`WwJ{{XHUQ^DQbcY(VKygwD!DY(jUmEkJI
+zH31h8^-&Ag#|;H{nB1e6;QltQKjpz)=Kle>+dT&Ep3H;0_cFg3uCsBy2N!b(RO5OW
+z*A!eo;C|r#z;y<$({WYenxxOs(>P9Cr!uY(u5w&}yQ8!Zo`9=F<DrwqURc>?5Z@H%
+z*<lc$d`;tnF>qIkwG@Arx#G_dPk)m1^2~nklRJh61Cf5_4wTqPuZsQSXxuhAH|%&R
+zb?~3kan%?Lf$Pn+_35?!0exoC=EoUpQNs@5`-40miz>iBs6Lolp7jC!eB7Al@5S@t
+zyzkFqOpd(&tMs1wfQ+LeU7EM2SjTC!^U5pF_)N9u^^4A3+h9$svDW8eX9>LDeU`FE
+zHm&*CLsL>k67Qj<ls4<-61(`Fd!IQ?CQJ{dCWNss$MoUNVb#Y1_HkTA`cdWQmi|-T
+zHx*;P8RYzhD;Q_J$i%$l-qSY;q-asM9{0_<&Z4~chw+~BDSp3Ne}8J;`~7&|%=d*A
+zX*=)vukrj_`uUW+=TG7J*YtC9I(SZ-ekrSh7`wbr;QfE-_Yvov?;pYY&+7M8dG$Vk
+z=bzHg&&+#%FP>kipZiYG-ko?qSC9Xbqw78b(_4qL6F;uMA9sTO^y2#&`hCF(-gn^r
+z`K%xFTIXEq3ygWs_)K-9@H*1(@8J3SN8x+q`EoozOScz0L3>Sje>!7hM*6)kKYslF
+zBaUCK_g(?^A>&qjig8Qq7QboxQW0x=+E?0)cTalv43F|b^bzs_Z+GF@O!~{}co2;7
+zT}^#ft>~RHg>v4!`+L&6%g2R`kP$Q942F!Zf{@X~E28MXnn<_zts&CUF}KDTwS{{+
+z2A--(*&vW-V7}L2j&H^J`Ujq`HqW609(C&UJFFGEm3gJMoNMz&c$*KXxXY3Yns&|S
+ztN&Z^uEz(yDkm?Z?wGpwHt{cAmZqM<u_7s7q}g>M5#LKf_tq!#`(Z}h9lsjW7v^8Y
+z^K{Oxg1@P6%zjtJ|0J*Hyhri>GxPX=FxR_2VeR(F7gpO!2H;aP@omH}jF)`{bBu1o
+z8Zo9H`ZC?_e83-Hyv>TOd|+x<=L2E8^I@D@_e2^=&u$tZkKi|M9C-COIlxV>zp2Hg
+zT>y33MS3g?W`j3&Vv-k&^!VQlWApU5^1s-*M)`GbVO$fZGsR~X`t#qQjp<`Sy$NOH
+zj0?JFHf1VTF#l=tHSsrJ?^zO?IOcNRPB}k2n4=*WQzqnUIm2yhN8}6z7Vsy=SFr6S
+zcSoMAfiiQU6~N>BjI|<bcq>oVKskf>f<#)}zc)wV-ygNNDH#NLotat=5z)4_cVP|Z
+zIJ@Qd?Tkq%a>n{3&cl1AWBk=N^V`Q#Q@4p6@MXs8Y@FKf-MoEh(9hU_PFE)2Dw)PL
+zLO+3*aDJW1>2w3m-b_xeBJrKE&ew|EL&-V<;MWX$U&d%`b;&pR#AZ;{cSPi9^k-?)
+zx}ci|Fg~|P`3WS$)>=1&bx3|f$>B!U6#J>TE1s-mZUDQ}yPWIW*e5dIIeLBHtL3p5
+zV_gXY1!6DX=TT;MwXEyH<Tv!12K1WJhW55;Xp8H3-RK$?YFW{fT)&b$S&^+|MW&7Q
+zvzkR#R7syMS;J2sColSm*yXR6m?t^-S%tQ~B=NV<o}uVZ(`s{>118s>Z=($TJ9bZ@
+zP3kCaq93qtdTT1|#4?N_xJmLlZ^0b459DN0gokeupZfZ}P3Pj8aJ+n{19cvKb7(Lp
+zF9R;xe4PBq*oSeE#{Ey=fbAJ&liVuvg0@0vE7UA}@fGO{DOYd8`w|s{rkHI2rhV8y
+zrn5RXKWj+$M4Q%2yivorY6swNuVr^0pe+ISV-9X82jIR81AeHBAPo7eXEXFK3|o(9
+z6pz0U`~Ir!w3o1&`n+S36Hko=wC)<^H`G4xA<q4_c#^aP<($-ER&(7YSLVEA8DQwo
+zv?<s9x;&3J2<e=$lq>MPzixF#?c4g~+uC=2j`M`9ALYF{{6HVA@mM>9ao=6?4xGn^
+zG;u@V{?!@gJT~cXLH!c#gzQUFJR68_fG4|w%bTgUm9c~O;T)O~1!oxVnyKVRjO$(c
+z#7%S7KkNwq(z<P$v-06;!H>ZC;L${GV8?GO-p1HXonBd_&$}(}e2k#qY=b_u!kbvT
+zPgU{UcVy<sSuighcGi~zZ<&GnTTc}jsG=O`>uDeDAGY0;Qt)t#z{48WZ7M&vyMCUt
+zHDNv)iT~%j8#w3y%Ix%qj5mEDW520ni%)CW;>lpPa<XIbDU50PaZ~($e^dOn5Z0Ws
+zBk&Z5j>P-DBinFw^?M=ZM{`u!l`a$?^PHb>#Of7!xUX@a#9S(9+;i%}#L!@o#&4@!
+zWz#}?wx2saN#^&XPkFF$N1^y%qwKg5T&UtY&@Z+CxG)G@m}@gd8!X08V61JsJ>`$J
+zxOS|~tHec|Ts)Sx(EFD*rq%Yl?{C^EZ5k>x%7zP#S8#tF7w4uTp=>U~jdR6LUE;>Y
+z;>l0bjtYA+8tn~|p0FjK?-j|f1Lx;_$sZA0$GG@YnARn!8{f(fqP#cVX!961r2z9s
+zpMCnE`0VT5f;^kd=cZ-{XD9ZHuEI3w``qi<DC>8wcUhM8R61>V)+S{*mjzC%K^t=i
+z<)+c!%>wMAJlm>hYQwWO&#~G(;(=MZj|Do$OPcvDu+Qi}?$5JL;Jd>^BQ_I7%x#~u
+zjjpuXf|Nt%>iRPJ8Hx5vOgY9;s74<un|dW@f!PSyYK-5;IL0{t4k^D|@Ws*Nea*Q?
+z0^(190I-nA<m8O6W8Dj}?gfJHSEopm*cek~ld`#tM!RHAnS<A|V~<--?1_NW^2F@K
+zZalBx^K>m>eyY_)pG)Sy@pInhI6Gw?nKPBXjOYvI4|9ci;yM*J#!GOSoYxk#!?mrn
+z6@1cO?;?yjDr2S{;sVj{{1M~(xSEq>MWQ$ObNW3;n_b#T$i4y2tuwLq%v~ODlQ=zL
+z&<2j=dEPugy}6vzU7vNuC)J^xh<LQmdt+8s&XNFgiHNSk*vwc+^vOft%Ndh3Xzx3<
+z((Vl6Dp%*#ngPbVpzkN!Kf*J#s}KA2bAXL+q&fc8V(Zu^aw*fgSaOZL2$<j;FcyNu
+zTe9OOU@~Z7%!E6Rn>-cYhqv{5)CDVhk7oCd3tQbCv<a@;l3|XlpcTI#Xy?&@*ypWG
+zF+VHT^ijT}?Uxz<SSq(yicrtb(RP7xWiqFGFVK2h&O7@=Ia9ECONPFx_miH-+)b7J
+z@i~_;;<Irleil1_fs6Ds^qK3;m{q}?4Y0*J<|d0U{-Cx2_S-jUyT=JfC};M|`E-@U
+z?xwvX?H+^ZTZ!0F0q>P?oGP9J#^&>t#7#31GkBhzCiQHUcn+tin21T{si4h9z-UhK
+z{HCo?P>t1(0DeG$zq(4W9>HQm?Rm~I;gYx@AoNYIz+VCJ1n|JG&r^8fuW~M9uI=k}
+z{Ma_;Ybh$!eH0&3vD1lVBu)s<IIaQdVb+<&`_BRA5Kl&QT%8Ju&Cur2=HKXgK6AO=
+z=XZ*p=t}XI<h)MDd-Cj;<$NZvPP7^0^Dm2y9QHT;5sXVx;jR|f*!FzJh~EfWby7Nw
+zas`ZC=iKP(bF|K9T$MaGo4p|66sKZ2-8|-<&ubay$T{RC9KXC{JH&To%sU$e?AbTE
+zv>j#sS;A4J(U}TFJG`=Jr&oi$Q()cbn$8!Lua+G@5BuUwKWzx?cq@JGXGm@i%sKFR
+ziRk(iZX!(ajPpr6jQJwNv8l^V>^XHN=I=!MG{!RaX`Py1&lT5-^U^*1j`^DSSIMc0
+zeZ;e1F6yh|zK^*J&dUytUH2%S@qgP<XNU5yyWS<Nhz@yM?-N+_9bEq);36RYc}rZg
+z?xy3`{|&4^VT}D+%A9Z5e{TTae`}cgnl{nbNuCFbyb^GQMW3Z;i{MPqy%Qf48QJGt
+z{{IKYUi*9dFmDguKg>8L8aBm09Q1q@V6&@N$#=0I2%EVxkhmu~oGltBI6}eePxTzI
+z%pufAz3uN-8ruJWGQ%s=^*YWW=lp4uskW4_WV6mI_UfNhK5N4IVjUZbafYfbJxAEv
+zmprCvtfsi1HYkg+?zuBBDEe3x>*c*-E35qdPCkY+Nk8}N=QunE3pJk~5gO-OiAzEF
+zm9w(3SJ7cnoR!h|ZNzyzD+_XGrTcDY<x6>IrT8=KD!^G8l(TYG%HN2yvJr5BE7v~z
+z^X;M0{#1|pP$hHz97`IzXlD%?rAzY9oCMk?NM7BD-_aEN+1-m}e5+DH!k?+^S_!kn
+zHT77VC3!wkj?P&_yGpjbRoiM%&zWE6%Q^e_rgh5JmHEB5NsdFw14e#@K6HhVxcLK#
+zc}07dn9F=$A<<1JyCLczXg_I63~B5cp;tRS`i3xu33<qwp#N<8V>v$M6GcCRuI>!&
+zBYEDPE^%KjO)+LfDBdmkO~^9|4UD-S2cDsfwxBaMOItcFE%(&KseljiDa;+N;~Y+8
+zTp{W@CD(?;A6=LXMEioIFIu!tm34w1esr3|$&07A{B%g{Ue{Az9A7E26xu1=@Vc76
+zUgqEhAEnybkv`craelQVr`q6`nznc~@s+}FG2d4J?|hCax^=S)chIrq?P-q`vbRXg
+z>%jJP8N==J#DBtCE3rrd#-8K!z*B0rjo46`I!{?HHZ<jLAJKg(u=aR&U|y@Hv?M7%
+zw9&tob6defMAK8j&wWDtuA=EV;&T^GcU*UCA!+LOi;j#ksjKLZP-GgXX#Me(^i?SG
+z<^4ZSa-W<cXHiJ!wcxoM!81qVG%4GnbA%SJcfnJ9BBXV_C(|cF+xUi@l^*TL%|uHo
+z3|^A<_F>ZF&aJ`^8qV4bbx#4Y^98SnwR%Hre7A^y2>G)@@T>RYnZ#O0yVUIs{ZXwG
+zbGA&;w04fRR<`h4yr2Od$65y*{jn6|$$XADtMLlb1y}uvXFl5a9dqb%ot;*hyNC4u
+z5&i!*?RQu8Q-!N2AEg~9VdZy!&JMCH);k^3<>|vf+2p=gvl4S%#Z!>DB(yV-ceSXC
+z`gi)OyeWD8z>6?O2mP6_C+oYqy!UCpepBo*8j|9h!<-A&Ene_C6?b6ONKR?mjn5OG
+zqE%JhnaL`K(VD1p%Sa3i`pT?`Z}MWYKd$2b5?y5l_Ci}^lXvh@6@Q@3-sBaTZ5e-^
+z$`vX8AdRga-}$T7iTuFW)*>+p0*Q?t`}Ul+Rd^F~zXogDW^D3)^QfAyHT0!2+RI~B
+zdpX)KPins=md)X#vOIi5d%lo0ii^HXo4B~dsX7h^Df!I8q(8pK<#`qoyt58?XC3fP
+z(FyTRSw7y0ofz*F3*On3A<ik%ahpQIKaAp(`aGQS=RBOUiervMnFFvW5N(s3l7y3n
+zKPy;eezHI#aEIXUE9jqkh_Q7-fI}nNL!a`a#BT-GOYgG38vtWFy${R&Zb+Xm`@11M
+zQFLCn=Gn?@OO}g`O-y1uN$jP%jTzeF`rVaoAn}sObJAj;bNqLI6uR*x&>H(a##^}^
+z?E(j-Xy4H~h4^o$H&t@7#ZrWM*3UjM_EJd8v1uz>uJ>n|-kW73aiw}sxHoSdvo{6L
+z%bwclJ+1$b=>MO}DthXzKV%1qhtwWxkv*2y@8&<M_E^r>gJ&M?cYHdg6LE9>wk~h(
+z@0I=F*~ELyk2yu<P9y%tnV15vmm)t(UUHeU*%MpWDCJtl(K75oBeGs{TyV_KA5~+f
+z?mnz_>XfC1n&|hxFiC&J#Zt!>uh8tt1ZJ!gxz%N|$GBFio?qyCh-WM<%S-E+75R8h
+z{63hU;!i3bO{K)4>ht~sb5GmBT;7lPg*|e180dSkmL)HaZ1&Cotx$-)PCQkJ`C{J+
+zt9nFd<?1|&lpnqbn4tf0U<zXfZSex!SK7v!V>cq*Vjp~q?)M(;1H!&+{JoNY&q9Bs
+zf0l}8_DjNtCBA-Q7r6g56&r_rIr86(aX~)1E$MT5l5vSK#@y=hlAmW)J{RKspX%6n
+zZ0Fm*S3ZG1mVS47JG4#f9@eGD5st+D_i30gV)Ijice<2~v9F0SC`MzcoWxk~+pzY|
+zhRjKZlCcG>R{X!QFyO2zEK#u#GfH03n&SD{Oq$n;rpT|Kl=FY2i~_K;gK_(eRT=J)
+zd;eSeIqEolN(Q$m$y|de9rwkbw`bVjddkX(7eQw;{#O9MJ1Ea*EHLWmtPVE-x_~jv
+z3K^3W@6R{Y*&VgI#U`to-$;y}KH&uzn}9UbYWjKEz?(V_qt98bVp`fQ2IfX$T7F0P
+z?RBFuEtxyZStWjdr2Q<6C#YfoO=N6K`e4N9%WGKaW%An+nx5mQy<{QvD&h+VxNMB4
+z3H$YWyvNS(_s;m~XpW1pmN`mH+IZYw<iyPqJr4SG)?&=Hn1@=>RE5srOyRZ;SH=>%
+zNn+ej#q+BT<I!3dxYqfS>yJ}DbCt-nOv*td7AJrE_p&_WhLZjTZexzkiS%J*F5Kqk
+zb(tFRDVv}EA^Kgbf8RryLSmEfQ{iab{67AljxqfHQ8fmx0mmURVI%9jsaS_<9VaP8
+z87I!%!fnmMYf_#sd4R~1n4m4YHpv-9Tg)=%G!kB9KJ|i!!gaS`eqPFuo-6{brQ+~j
+zmA>4hP2C=xl`jZAhI8Ho@8IYB(>BRxGiJvN8Rc6gwnY-7v<PcS+KYF_SV-v@U$;o?
+zk3PmNPIHYn;5l=zgb0VuR#{8tn&=SwLMx4T6W6ev$Y)%M1?Fm=4rk(IiT81B`fB1^
+z%IKZvq>q6_+$`4pERft4#!>o-_!wU#p<=J9{;Iy3#<dblhxb`xL%0@vcxh^UWTl%F
+zKHxJcf28dl?f({h65FS(wb6z4<Imxozmj;@ECyUr&d2sY%k~p{z@P2Y`7atoZ$@8y
+zMSH0B-z#+Ua~WUaK!!00aqeC)UVdLiA2tK{)?{1~);VA5+~@i1J=$)qL1JSU=(F0;
+zbry+CW2HNu@qca9jdE!BeQPO0bXsJbK8*AG80Sv$oxCzxJi5j*KWdE+jI1&9c#e;?
+zyC0=o5wKd#^`wr-?F(X0mV*umhMcbQ!sx!j!nr-C5|)dJ4=uo-#1UOUxlSqfK5dvt
+zgYg;nA?G8E^`Sq1ZcqHX_Jbg8#b?y5o{wjYXC{8}B|Vu1Ihg|R9(`)4SF8X$kX{A9
+zWBzSe;r+i3XLl8Wmn~|H-~T%05eXGf@OG6GBKc#9ox08|1m8}5=XT(_mxr^P9pDDj
+zSuNxDhO_tlmNr0urw^INni%+#Ea;jG6>rt^63QP&-H~XgHw}AmI<A?xX5pHHE4S}Y
+z!<^8+YFe~26=~{B&FbnTOdhS#W2EddjNcY$-~i52>P%T*psp*!anHh8@Y*%mk#WC9
+z`MdV_IjWyCuE<Zd5A36~?H~>S{aPve;tJ-$zK1e`Mgw$dw9%y;wp4URz!Uavq0uGg
+zrHkK@*3@{wB6A4R*TwI&rN&FlP5LIbrdXbLfobiB%5{B3XnL1%LXK8z+(v&``hYB+
+z+VB1Nzen-&RF^au&yt%`h1N?M=4-6Adpsx6<C)#-GB&=OivOoE-U7#gIcN|(a3y0r
+z9IDX#<>QRu+cb*r#3x1YT{MaLI25khm|>2yY~YvaY}w<OKkN@@UxxZj+L~W9J)Zn{
+zc)rBXx6vm#+oNk;i7V~mZeu?<FG=nMg->RrJc&yfCEnXiSh|)l#W?)bwTpiED#=|G
+zz&sg_#;1u<e0q=I)58j%COVG8r^HQ^1M&_UX5x6ejlR5?^T*S)nE-B6`q*5IQiJwF
+zSJKvjxgXMDcas;klx{FAII20d1@Fi^E1W1k#1}B<ifQ*`m_O`w;t%w_Hp_hXDyGi!
+zuMG_nhUnMhb3gAIUAKCH$V;*o!KSsTN?D8g^k&BBX3S3ephug3j&=P1886psyj)M8
+zyCTsO178K))vlYv%UFvSWp3-!O(JhN=rOOEL;5hf$79_6vF%>{F6|bKX}5tg4v|kC
+z#N6)Aa6Q0FUl2$f%#c?NGDeNDR^erh>uGCT;O<7<dxWp?W4&1C`$llRs{0K5?=YVm
+z^LtzI(n9)-DZ87r;N0k5z`;S`O@kWe(*F|sLi}}2=kO7h3p$^1ebwa4>s6j+wD|$*
+z)T6sS#z1V#$McxCb*P7Oh#Hr6B&)%{?aTNmn^f^{*D${+V>e>X*yhn!v6m(o#+rWS
+z(l+My_#5M;cMWBW6umYtdHYaSVzmqWp|3ILOu>U&hq7yE^FVrT^HBDvBQ$tC`9swC
+zhO$v!b2DQlqs{>8l$=|j32q+Jc|sVA#QD7I@9q+tw6~cf2;Z!xJ^|kZ@y(0+n-+XC
+zg!kV?o2__%4DVN<j|F(QAK%7bE;J4gV1|z<eeqJzzocKQb!_Q+(3Z<B@FJ0|Ua#bg
+z>%_WrxB|b8%sI5xTin>`wUjV-LsaN{#z?6}9oLw~J=GE~S;dK)if^}xY#MwKc(WSt
+zI3e&fQ&AVsfg0l`@Jly&4)9j7=$z-I7NOiA>3#4HQ;j}>*?Un3<8=FG&_Av|P5PUB
+z>zU_qJxf!kna0HWL}#jjyeD%$Gln&BBY9h#d88?Oncq<CoaQF~0Gz(u*`o5DF}^-w
+zqK<KNJG}_U34A}x=uAz+|1%k@z>u>l6$Rhgh;|m^-D1p<*iN8~#K}gPh^@Z$S=|}-
+zfi!$j;<z`bY>efG->Y*7-+Q0cHYB8T81LGUc)cBxFS}9r&1T8JXLYruRKCAnufA!E
+z($VrvYE*G&B<}W%o{aMMrqBBxoROvJ?{E(pD!%#NKaKLefw}ab-RQADL8~Y8i0;!z
+zsq19y81Ns|aRR438m0gLkB20l>tc)Zs^(Dmg=kBvMB@bJ*sW#0NxXmWA4bQB{XcP&
+zj<d}&jE`EYV-^45?a^|SGfu^Ou06|s5&f-^T!#3LatO3>)?11X{XThp%>7JT&Dk`3
+z?~62NdKI5Udxk??L%!!4Pa|K%cpM^Ek0v7tMSm<cj9pVflh9U}<2?Px<Q*|iIYaxr
+z)A0Xd+?Q(JiEzz!>4RB=eon`HIH+f_bCXvSy-CCG#{_;qqT#pR>P*=v$GIlGa?i`7
+zV;-P<eaze)%7YK|El69-MVg;ofH^9_d=U0HH=GyuZ)#4yrRRkE#hB5Yxmd;A7nuj~
+z=v35k@iEF{#0KsV_upd7O*j^FL!cMKI{v=MqHkN5A&ksHA9Aou{PXxLs&9l%#u-w&
+zO5g|GXW+6&DO<4gSQkgOc!#lO-1i}~Efdmm&re}Yje1NCz`vaPpFcb_n0v<gUySE{
+za*jpQ^N80h=0<3CKS6m_RIShb4^ytPMQ~J@xt&m!v4IIk)#!(V`ld^q>=xi1;F-it
+zA`9=r`;YxjWK+zqc-|`7(d5A>;X4PTAIpQ$e)MU%__uYYB=3XOmSVowkL1C73Uu{X
+zP-d|n%Tn~6`6C2g6G}EfoDv4S&f{2g&Q6{O)8(6H1yA-(VmD7)1>&{(2=*SXhKRyz
+zzZxEGBZhvlE))GRFh|uAHzeknI_B5K534wW;7fwEwF*R9gY-Kfz7H_Ii@ntoJ(#`N
+z4LKbWQ;YO!S8aCireW<b&X^sE4I)pT)<imHoyQp7i~~izb;w$k3W2T)C7An`aa}q^
+z{&c;LfpRh6WhrQ;CdOolGxkU{8HjBFZf2acXxf+(-(%Fp_xOy~-OH@r10fw}USiCn
+zZ+Hg$7fCS|JNrxd^e2VSY|bpD+|&Jnn;*AbWcN+2-cqqux=O`V&BeL5o83^n#p8Ds
+z+xxw---ToN&Jdr&QpSog^1hS!>CWRgAA5zKp)c-Iqs?3Hwmr<ac!tD@A|CjRTZpxI
+zVEf}r*7V7r4eWh0dvqE33am$1$5YA4p_<VSW3(}rKFd7&kjf9ucr`L_lxeUprjExq
+zL5;^`Yy+Ilq(zq{+PpKdW>Vf!df`^AO%wIlW9Aq9?JnlDFl9VX%RF(8N9M_BArA~P
+zMA>vR*27|~J#kr$-R0FwY`g_3hrGsv*P7tpwlm&bJRJqzYhb=eN5%RPJt%oK;aU5%
+zzI;KF@1yvRya(wE=4g<;2O5Jqk(N5e<Eb12j1@YM_NbD_=s5q?S=*A-r*IED`W!j*
+z8s&mzBmS$d*td`Ve^~rF)&KNKeNJR7>i-b_-_N;EZ1L(*7h~+?>YkcVyz6xIeN#rs
+zxFybjhLvU5>jEzZ;ib!)MmZwrTG9Q2#x4_igv!S>3;TYWjCY;4!r0=qg7@dT%|zY(
+zDo<US=N0pBkhU--x8%HJ1nqCc-kBxe_IPdRAK&|$donX=Z*6b#S|l&m{3LnoSH&-f
+zv4#|{T@a1$ak}~r@GQWcz6fc`4+?MV$uR$^FGBka=9Rv2H)R!-sDE6vP54*CG<HoF
+zxgF)ppf|8KkGxmM-lI(t@Pfm&)G;qOZ__kB9i*(*lKr3N`DyBSGKa+eTgB)WeNf{n
+z_mIjt!M=jmT=lrn%ouy{y7+Ap+m`YU(EEnUAtimJ4aPXopv3z@iO)LU8)qNR&~D^o
+z<T<)-O!3SpaC+n{qO2<9_J~~rbMee#?&t*n?-u(b>IlhWGB$xZW2^ADZK4~DiEeNl
+zWhfG}uq!ji?i0T5PvXC{EG;o1jZLx-ZxKG1@}5m9Zv)m<!BgkJ=|k#VuF!L_k#m8v
+zVV&=Dz1Am|p+7qxRJy-Tfu&90>tX{e%iNHJ4bHpYY|dDAyUf4jE^yS@#`y<69~3@I
+z<l=KV&#8N}*?S0kW8v#_nE$1CK2_7hl+%&E{vW{IG!3_WM|@GqJvxE8;BYawOti%n
+zn|JHeE_n<3z4KhAUPtki(IjQHpTN8_-wXFh(5Bw1)up`a&w7tLLa)zH5`IH2^LBN6
+z<KqqPH^eVZo%77aQ-SsJ<#N1G_D<cb&W)492a+eM@k?&8wr$<}Drl1kX?THu;Q!uC
+zK~=B71<p1z)YVf?8QJGZ<DyRL$Z79)t)_z-aNaLRKNxp`bUOQEiT-Dc_suu5g9V^@
+z7UBQZSToW<1)Bc3M%MW%(N8cxOxRhM2}zEYE5Yv=YR*qER}V3+gr-fHpCKQI-Z!lD
+z#EdOKxgySae0yDrG}DJ4%*EhqXD(6E5ii!~4rA1sO|7Xiz-b}QpJ}?Rio?_Hg`3*N
+zUeeOG9}_jKd=<|e*>4MyUuGN%?H7ESj#c(Mt{-scbimx7K|>Vl7&u(dQ{Nn&KjPq!
+zjwQBuc=Y+Rc+PovO#H9<B+f{M(c@9~#yl(|G19TVtHkDwv3Qh!4%dM((`3%E2Dy2^
+z4Rto?Tt2tzcx8^p8UK!Pu@86XcxFEq_}d~lp8f$`$8yXKzvsD0I+17MY|=-Up7Zh&
+z=2~m&_AH!{oF~ac*rnoJ)yKO%;-|$Zv!tonE39hG%+Wcm8Apq;lt~L%T$9y58(19c
+z_6p5SnOtmV!XVFF#&!rqI#Y$lI&kl81EzH;cnuYoX)<7$^tg(fsPul%|5fM2nA@I7
+zaUNsqJ$@h1YjN*jE;i7OUbXC}4Ib;0I8wCzdX;`(s?H)E`(|-ugSSKGXp!Vzr;hVi
+zk`unqd**?mLD3&aR*vXf>8rBkjnQ_Bw4Duk^6e6XR>gDjhDOUQb~XeH=k^r-H+7Ss
+zlYXN0iu5J3#GZ;YdS@!^^hkan#;2zLIQ7b;$LIbot7ANOdU27d_ld2M@R9iTPQw^^
+zzk#tVG#%Z8HL|fEEz#l45qSXjRv7mRdEP?5DDV<0b|K4&OvGUPz^;ts<e`l@=xp)(
+zby|Iuj<RW9?ratN8sc;C<-4S;O<r@W=+{W&gyTIKTX@>5()6ci4z7g~lV`J+tGj;N
+zR&SoxrP4Q=G$zN#@1ECuNV(*T)_rr(H=}0+mcl}x#!}P~1k$QJ^@(N-bfDnUb<)oJ
+z32Qng?6#K`jq`Ec7s;D|eed8Ls308UJZHX+Hi_@nEHT(DV*>SiMIygIKkB>I={Q&5
+zvACZbw|f1=1F>kz;k*l;Z+GeE0-W%u<VeEY7@DsOO5bl8>HC4ys6L$S6HkP3=lTUe
+z_k^8xnHTa_fSG{?PnG|r<OCZX!>_gNQ$BoDYWSd!PmRX6QZLqo_Sclx*HAACIQTYm
+zd>M+ay-)Y$78T<uP1(?N^1=@ciM>+J2ak1<wwU%_+N$??+53kE|Eghp8DO0CEe7AF
+z^p#!AS)5)<Ig_n$SMI!Jyc6<Y70S10g4ol>6uzO%&XRmVTLgB(z&SPAu8cAu!ZXKB
+z_%o_{GE=R+*pnscFXZWrm*x7aapod?*JN}`u9}czd&CLExgdZBmo)Z?-3|2vmD<O!
+zG8&sO-ZY9R^I<Ga;^kMg{DZQQrRd`kiPfy+a1r*4@M7JRT4vMUh`QWP=7T>(TuQj9
+z);t3HJ`Q+&BtI7YDeVqd<!p_LO;<qwJ`?**bSU=LOqu9IHj7-Y<%X_IR_uv3c{;by
+z4#sjlRqVp*sc*c8Woh$9n4?aqIgj=WNz99RjK#C28T23V{%aDqN6ib*tw(9M(HKqL
+z!}BCc{hW#eOL!tJ8jyJ5S0;Z!T32$?bdJpHQqDDKiJLILOEJHy?^mQv;M|)4$LlE@
+z058n=eq|y<==7EyQG2x(bK4<#K^3e8aCXiSdOJ$p!J%4dKaXB>T3o^x<)55?(t&dv
+z@NkLF)Kty8(bj_eeL!LtsaR<ogMt2o9=%8O3|t@D6QEz?=JsSl*bggpj(3x>$?d(u
+zix3a7&s>M!OWdJ(5|^8PpF!}D%OrkKpTtw7-z(_|Bhunhc2dijj4_EdC^-SkV(r3D
+zkxnz?Yf`z~fPNiAJ0!Npy{bL>U!tsI^aVkSl=~ZjKb@}NG^;NN7%2zeP!7Cp0LFsh
+zrk+#TPorsFkn+&9*pHB=P&nzg((hP`vab7+3a$^)cNP7fs%4$DD_|V9Kx3!(kt3rx
+zYmPp1?vdPDm^0dUp`Q9^C(htbZ~lNPdmrdQmZf}HY#zy<M0zq83@f;jSmf3g(eV*S
+zVq6~i5T22f-cV)EMj5HYQtg<L)(qQfOR5;Mv@dOR`rct*+9)!4<DSLTjgYU`wx#4L
+z!p_=Eqv*Mn4qW7`pjH1$e2Dg!VZVhUt#1DMY^1!?(Qt2wzA||O;l7c+l4?HO;cO9Q
+zu8(dT8hnxV{Lz@$`UODKep1ih62Nx2F<yFLm^7N=XT4$3i6^;ND-)YVKg{n$PQqBM
+zR)@PTqv94TzeLe%K6;S;1A70TM%|$6rb7{>C!Oh{os!<naeE$cO4~s4eaz3wc$_&K
+zcE;HJljwG3EgsFs1CP9{*5YpTd8Wq0L&Moeb8WxH{x@lRN$|k*dHTz6R$@<A0tXf1
+ze4R-=&)h@TUF;SZF}F;^9Qn-(l;L|mAFrRkqHV?U`>{dyV-@;gHeH%x`zfKHdxXB9
+zX>|rMCi5vBw=0L&cH)29Lxcef#R=wcdu-rj<37-#TXC%&2x*vqb3oNk`66R%V4WCa
+zL(VpPTW9Lx-(Hq_%_#PYi{t6ntzxgDPo1@Ee8$A$;#lg8ZHoWck1{Pj>}TMv0hD{)
+zp5*O!CJ8PJC4kpI(wbr(`&z5Tb8wZ_6?;qV*{LPY?9`iXv9}oSs7pL%7kdWY1(L;H
+zBi=XQ{UW?uhB}*YEycA2*J50axEgRR!nLevb}Cd=4BD^Qv+(UBR`G#P`iw(Q;T`iA
+zK7_h@t=XySl47q0<z9Cuc~7B_VdqxwHEWW{4}3T?7?ZwPVl~Fxoldd$H2TAHDd6rs
+zPJU$?*QR%)-)Am~C-20Wxf}KQ@$4S{Mt$Jb(+}$Bg?LVXk4Iv~-c$IWF#*HIwaKUO
+z{co^eABj!!=o?Od6U$cl^G-iIJIH>;>~4w6cAnUcO-L_uCIR2=C|%|hmy2&GZKjM<
+z()XH-b#_YnPbO_lPZ9g}-I#xg@q~4GEiuV!z}dzBzm0hz?>Rk+v&dCGD&!d$AAz}?
+z8|_<xw>D;&LtOBMBX+NDi2f<g>Wn|qHWGuH-~CbBA(G$WyoM6Dip`;|$HH;F{2q+Q
+znKTk-j(Mk-v45CPj78#ZhR|=?b#VS@qxVzu_<lG1oqn^=>^uAILtjOA&Hn!b{oW%s
+zm5b8f)N2RYCC&EBuAAhIi^r3f=~#c11DW=QjKpxYeQtH#B+$SyJZsG;ec@c4|DAeN
+zd_%hh=GkG6Kw|^SYy>W5pWI|k5@SRi2KpCp7&l^dhBl8j`r}V@fDc`%``3`(Z%qmo
+zMVbxr31wB2ymp_;sa8`mNo0E0*JKCF(3cy1IuE1K>Q>`jBcAWa{DttmC<0o`jEL-+
+zIOeU4!Z|AdFZ3<oy6x2af&8Y=>dD-y`LeH?w24@dKF3rr{0P@Ac4LY;RPDx9sW8rP
+z&=&V_?n2ZtF#aL--2LeP)2P#M_Ih_rVBXpdnaPenb?%ugGeKgUzFU2uEgpRYeGlVV
+z8QRUk)!6;>0hW{fJ2yR_{X=_GW55L>GipiQr}>T=;HTR$R<`AztMe&GKI;}2x24RY
+zX!?hyv1Yu}mMUcK$laH@CjqAJ1s-7BR>uBxfd`JDJ(q2P?kmIkQC71b?FFOFE_EyQ
+zfa55xIk;xwnu#ldYdWrJxL(0U`_vlXwCAG5UIO(U27aoK&rUst`p4@y+ct0*VaG`T
+z_b}dQE@zX@C-)lWfahh{x>e3b+MjW})QgBsYSl%q@C<lQd;f$tItLBJ56riwb2bsj
+z*ybdWlW|;+{3$yqV-z2?=FHuqx8LpEao)D%zv0`%m_Ii`oYtBtbhc)mBYp$?j_i-R
+z%^9w94sUSpnRRO<jy>h)Tr1KOCTIz+bpU5)7`)x%SjSfgD>!F+2$Pkhfg`D9_YDoc
+z?x_B-j#{HtXvz1XU#~Py@?JA0d9;-)Xkwh_&0=dnzL{|EpT0_D0xf5f9_SE#PzC1J
+z1TS9L)ggB4D=Dis%F<V%%{wF8k~&tb*z|^gU)ev>jBJB4vU<X5ajC=&AfHFuEP-Fq
+zRnMc1^F4{gB;kc^;2D-pU>zx+<6OOh@%!p-mG}iUPCI{}S~Io1{0P6nI)4!TsKuDB
+zzi&u#^*u&-#~O!>TfOV>>@my{=P-=+Xfs2&LEVoI$Q;d2SD7lFXq>Sat9ECq0c*E&
+z@0qP`)UmwDwl8(Yxvj~lV|ZTzE!DieD{t*KV(qq$S-aIEYxil&&TQgiv6W7*A`L`*
+zjPv~;`92^2&jvm79n|+G*E}KlL&R@^XM&Mf?HzN~JR6C%o>9VQ&478{Tf9&m@2y@K
+zdywZL%UC5mOIk}=j%VXXP(Nu9(jGS25j=xA9!GyP;FP0yUsjUCrOmFKRp@6a&Ru@D
+zleh=t-0v#<N!%H>$VaSo@6z-dWiHaL(96vp+c1pPo{Y(8@s7!w0A9EA-T|71_qAS#
+z<3agwl`2R04kdcLH-@rDi7y!=n)0>_Y4a)bf;t7JI%Hl9N6(3)=LGW>+OFPnPWax^
+z?>QFsi}UbX+9u(gBQ3H&I!Sy)n1hn=wd;q>Q(B+oUZm|RePtg3Y~|pJdY}D(%LK|j
+zqG46Xbx3osuEBHS=vs^~KaaJ&d$!0VieI=a#TcrBSFtDQe?z>wA2@LUc<?J6dxB#>
+zJYplXXDB<-lJTsTF}-Q2F&(qjm<>JVfF5&5k2$R8g!8J#-s8nlKXDv!9dRD@sNeo$
+zcJQ#B!*wm08!$$}ZNO`kLy$jvP4C$ToQs5c(6>8Y0nW~^%ZIwYfV!T`tLxEW@=j{*
+zeu8y8qR%MKql<a`(hr$?capah_x!b3!uhq;p7-hXcr$N*<II$Gxb}xCPwn?WH=Vax
+z(d3ttzrs0i{tp#R&Kx-|aQ=}*ad{N)gl|AQ#F?Z48X4o+-k1@8L()t-z7Odb(n_Rd
+z+J{d34QZ<reZ#tdk0#!Y@7T|&=nLUt1={Ag9sK_!W6Mmx1-yN^OPxL8r~+%roT9e#
+zn4Ir^qnvShipFnOZSw!a?xb?podmxBR`B_^7GjOdaRnI@E;rZnG1qrwNB>`gI{Inr
+zDd!2!@p}QM`h0V+2YHq-CZW)3k{d6c4C-^_EUZ<_dHVdQ>`3{VVshToP6N0m#n?;!
+z#+X|Po&vmNI@rZ{;>J-qM|f`F454q~T34MhlH*3keFkkHW!#m3Rlmh?Kj0}_+%sg{
+z%suA{Y;|V{|2%hnHt>(VO8hj*!-g1>1@OUsQ%12++kPDRUB5@(jeatRpX~R>yEnUm
+z=oYc@3n$jPJeNq%MIy6P<fD9`T^a!=<PAx;QCG1jS{!8j$mv+K7-*%Kd9i!Py$Y_T
+zp)BoE7UTV*2>CQc6Wxe;nbnB1p=fTp7W;ZCE=TU*<H)z+H_oRu4a6T3bH5`+S}SCs
+zuXrB?zNtrh)O9qV&TVJWhiH>motT{pIJMqV(nH23uO<Rm#QvoHTO;OZ)os+9c6&uu
+zi{vtx)rkE`yL;jLmHv+9X|KN+^)>>p7Z~%C-=qx|{;zLZCpLLSpbrAZUXQi}w}|c5
+zUa`yju;4k+PmxLG%o|b!nrgA3Xzu|n_hHQ4MM6Js^kxbFLL0z&Y4f_C4C$^9vMtTa
+z5Vz2tagm168qhLJNUvb;F2%Rwblf!Re=9-1a=a=B&n6l7_H6bZ;*M*u9#Ks*J&8Up
+z!n0{On{qgJ75#o}`c_=Y9AbxBL@v^fJ?EwaI6qrvv}ai7PqghB?T9!Z+&g#vN!bCN
+zhQ6`=+}HxfO7YDp(Bt~0$k0KnTE!yk+<?CMjIXD`&rLik@zT2`?k{b&`_PAux=oo5
+zu~(tJZ@YVwVeF#)BlAvt9&=QW@ptIhzMmC+yn=;u&Z2FITKk*CA7GugD52=C+_(Y`
+z^DIyg*O2x{KkY6Od(8#R12T~|)4BP+Mf-IxlUT6i^#I@K7jsX^Sx5V2)aMiX${xv0
+z;S-(ymGmDHJ7dbi2>)ES+?sLzbL)0rlKM>S9l$2xYZm5;FvfMvhqKSphX8fdpe$wk
+zOHhYzdrwB<++m;20nC?0HhLe?x}WvvQvvp40d=WHn;VFCiT>$};x8ca*waST6}eOq
+z;}rs*ZDKrx>o#WQkXA;$UpYMLa}jKeo3Bf(=C4VvEw)d+@aJ`z8)?s|&o0_CqI|MV
+zbcQWzFG{TVucT*79bc9BxSaE~D7!?r7uJ2hUiZDs-srLa9Ct3C7ssyPyj${Rt2lqL
+z)TO!~pVKyllXctqc;b82qp-pFHQXB;et^B9>6B^c6U%qw8Q18`Zg%j4(r>`~CUtf`
+zKTKWoB<~A9&}XL;FReF(pDX7(es>+dqb~kEVlOzV>k4bRGW$G9_xF6}_t1U$D*G~W
+z{>RNzbbtOs_h$m(xv5*_<zw6_@DVj};>c#NhIj?vu4e9<NVm88hKt?8_??+RW1GkR
+z{yXa+oolpt)TI>ayxQzTk;E%db94>ni15FJJUZSpo&{|V-qdT;jy|!kvwkp&Q?~1V
+zUW{iy*JFv~jU|`6AjR0erIg*ya8+N{c@y+JzKlA!PpLNvfd+1s9J?LF8%J4p?GF@v
+zu!m<j*B@*AJ+YOXq}J1-odxy_a4zNZYiupI$2or=`G<!KCEq#Ey}7@=EJfR5+NQKc
+zI#WhstN0f>V#lU@6WVE;AL;b`fMeQeEuGuvHO=VrW=zQrPILRb$jSYl<=*N=M0ay7
+z=-8Xx2A6ixo!)bn#Q!Lw9nF&MjK8oC=U#*O72jT0>b^mI13G}^X~WEZRDgCVlXzhB
+zfur0yztiT_JDnc{uCEIbhV1y6^>*i3J|kX5+|!6Ql8i0kQWtuw%=3%-{~G&NS(oSO
+zr;)f-VEb9>5S&{DukDk(0?Id(y2Oyy4WA^xx5{t&uTEoZ65w3&^aX+=uaM_Us`@~G
+zuXDHK8Ruuob=2Y1yBuE=<}B)TmeU3%66y2iNKRelQytYd_?*9xwN=izF#4+KnYl?n
+z<8lQjq#Kp}x5R@sn&zd<CfuFX$=^87i0$vw#xveSsB0VTxlzYdw6h<-v6kLWo3`wS
+zJ<h|K)E_$j)HC>Qk^PeBuoy?!G&;og#$bC^{5Hl5puO|2?Pt8lu-1>z=0B<IuX{KS
+zylb>$si&mw-QI8P7sbz?b#tEgqW*TLuY4-)1Mq)4`toa2@%_`#H;%c|+3!6P?ZjMy
+z21EJB@cT~G7pJdWWUIG430P#VO@}cd7o=U(ahQ4vod0d$E8Ax9%xQDy+%q)zrlH{U
+z<NVE72xh03(~}YAKP&p&KH*(xe|C&H5a)J!uSdmRYYky`5!cmG{L_Hb8KfNOZbRvP
+zXp4I8J!)SLpsl%hw;XG}WCq_)NC&W%1rmF>KAk|_)3N?TKI73PW}i2+k-4Sf=>pKZ
+zv+$d`Nv;L$YjV6%e(sh<67MDMFBSZyeA>Qk8WU-U))-Mfa?D?5I%lSgk-RS|zKdzc
+z&99&=_gJCbk|dmi$GQV$9%S5^>3BX1ZO^2B&A66wt2@x{gY=Cvoz@+!<2{sf*%zg#
+z)4zCfXX+Cl=uBO9VW-%m<l@m(M5u?aPY3>Zb62G~8k_!)I(9#Op-dfTVD4{~Zk_W~
+zNPG|cHLb2s@@D<kXG{#E+yMIX=6?+h5-#TG{q`W<5e5fe$_~CFHV^USOo^d6H#vm!
+zaH{xc#a!w}XS#i2%R?LG=_QzN^#66q%cJH@;wCwJpJ2Q?&Y9oYe`*8m2c5%WFU44F
+zoSU$=^XJ-LuWg2wVZAq^FN<7-*SPQFT8GEI-@)IsPrz9|-UnQOHGeMBmy^5kJiOzR
+zALzWDd{T9+*IR6LKD-3iV!QLMB~IsE$1tz2;d%wvwC(icdCt2x-X}O_dA!p*!$&-`
+zh<W9T2DCoSFY#G>y`tt8>3`TyTchWM<~IBi$4+8)Ek&IxP{(8FBkNp_^<zAe%dw_q
+zVzXf!x|@2+ZEI4Dqx!08+!Gi3l&h03<2UQH8TSQaZf7}rO{yrmFLN(#LbSan<)RMt
+zh?rOYe$G(#u+#rGnxi^Q-4^XAOO&lV#}E)ZQRZP(`r6OY)=J*hr(YGizEAM<ifw(t
+zXH7%JY(ih2!grjT1o{-U)VR1uI9KDvk66jXmWscM8vBZEYTN<vXpd*JyB6zM4vfjT
+zBGFeKc3LgNX)9k&I5NJI-fYrN`a9``m~);-O%ju8x9C<dw>{X;t+e}5d(V`;M;l)k
+z_~~rM*|Z7A>I^v(|2JuP2?9Q*>$a!*R9}6TiiN!l@Ym!jyHurz?QrQI-fS{=daK8B
+zjC<=k%ARVP?BR|9_KSVNK{zpo$B4uHiMT1Tmh$=n7~E$j;yb44Id7u=x=z_E|NAk8
+z-%HW2iP&$mB5FT`K?~C#nf|#Ad}h;UaINce_6zLM&W&Yr{*&B)5=YW`&67Q5AC?#m
+ze-S@M@VTzSJ!b+gsKalR`M8$8TMy5&`W{v|Y41-)_NmK#`jWJDio|1A`4YB@tqx=E
+z#FKZ@&dP2Szr+vujQ7zFmUsd%D|_DO?E6InZPJ{*D%OU!OHgBMb;Vyr<r@@yXevK_
+z!G|1=$G)T8{b*P9pYw8U@>k#;s0&tjc~2(nHoJa%f2IL-t9Zho^{@`xY5(r(vjpEw
+zH^t5!b9BsWl(-Iij{D}%O0JT8Q1Va5(~K$1wQX=z&R)mvJMjMD?5_6@t30%nFWrmr
+zeOBu$K(|lizPOOO!KO{#bF_Om7N)<XeCfFNj`Dp-=fGv$*UvF#5$(3ETfBm~>oQ`?
+zLLWPOkHFXK;&*#uUxZ3+({UJm_{ovueGz^)#up(q#uwqGF}?_gB*(DI_dZVB+Wv<2
+zes(lPedE1ix5juSE$%T#`Crj4;}~(N-TCl&+Gcqw=J+9rn{tacfc0Un%fjuwVozIv
+zG18`1_+9Xn6UFX%tN7kkB}cz!EX~7W+kL6fLotkPoVGm;Yg-o9ef}#d295*Vf63iL
+zgT!@(+7|at#+x(Md2k#0&m2*-El{?tYX?}r#KJ=xOHNS#6kYer+LwP?Rj0QF>mHoZ
+zm0>%~ufnw)t>+V|E5tU+N}JPHPVmp@Jr(83gEM*yaS!&R{Bo2X(DO*${Xvu`ZBE=I
+zw7KNX&EdCz;I|_NeLR6r5`98XGQI-kLZoHpXgYc)cndd*^KTpTK(0&`%}_C8)88MG
+zIF5{a#rQeX<@{2%aGOQO6i*)d{?LfM9A%3W&gh(Q>B*fFKK_Bu2{lG%d9~G9Zrh#Z
+z{Jxg5Bpu6;at?cPc2MlUut#a%DDnOxtzttLzJX^>heuz2tC_#odS%_9VL<<#`4@HO
+zRP)T1_Uma=I?-T^G}=+iZ)JCLtMF_eOL5+eDiz<UP;AiG$@xP$$5ic)N*iO9>o1a`
+zEa)%HR~=D0{hy;9+8jRiee!Sh>HitZ3Z3(1@V}%%=Fol;W1zoGI1v*c0pO$Crh_(!
+z4`uK9Io40kQd7>-G;zQ~+NNp3aP}V7RjX+imbn>yA$$~TTtQy&YQhKBhwFT=#JXCP
+zTp{>L<-Q!hEnY&~qbmIkVT$mTNGrIiiS?F0Kcw{a2ZzYRTj@_rP9ZB@i+6j66phDu
+zTZM81`uwv2A5qk^l;?#r1vE!la?-HERj&vRUXwCPR6I?ED;tuf!<69@p4OxopWxnj
+zr_ew;4t!CLe&F7?;&s4rU7w~gXmcL*XGE?NO&?`{F`gWJRM&NS7OqNMHZH<R4lep$
+zABBr~8ZMZBlXU9k-&gvBfu>IHNEgn0@DLx@&o0H?&oiQtG2vX${B17j|2a5c%^@|H
+ze|aH07(%_%zfZoU&$|HknRvGhb21(G$L=dMJ_-c=+>znzo8EACI__WPLGGyB9wF^#
+zbnWj|9|`~O)qP~%LgM$uI`^Q1wfHi|T_gTD%1-_AlRHx<5k9cTmY_YxGg@X$_Le!g
+ztjW}~xy&(WT5H`dd$M=CJ2c4nk7ZbA+ET_*Hjc7!Dcj-t#rLSgy%%LSqAckX(lW#)
+zlvi-?iJsJ9zm22Q>u6uRRs7s2!&)Z)cX;Ei)=X0*cSg!tOyBR#%fMr`CgaK0lHSbt
+zM4M|GH^^DE+j(&$cV#@H>I~q_?*iX>r_~oUOL|U~x*2~0b<1<`qrN&kpP~9T-s;U9
+z62DVLYtsK~8Tn3~XOS>vSZ=yr$13#+kKBs$ww3vSsbAW~bGa?iE#G%?{_)MSl0LE1
+zC*5bdE#OP$(-w8J;cOK@HQJ%G5A<tkt?JE$>}Kk{C60&0*K^t=$72}JDIW^~*2iPr
+zk7_<B$D@37K+$aX9m`H6?jTJ>I_T$ESJKFgn-|r45BR6F$c~pRjdYg(4dpK$qCBuY
+zm7^cn?=R-zjZ#DL6x64V6In-G>=C_V3XXF=Z?m)<EO{(jl-9A-`2Gif9IXrW1j%D9
+z$M<IqDP4=ik8Q&DpiL+<A<iu{o=?-}jJzk~yD*27=n$OKQZvcR$2WL^=mxP7B~RVH
+zts^C|Gbp>Itr_MvsAC15e1V%j*#)ig+Qp0odI58m@O?yLcOMiy&D;RN#1}+9W@!8@
+z<6_xpr_jaW2=D~<c?kFO-d27la=x(rrY^~+QYiLR|9ktiFML&e<`(jt*<~0DQk3cB
+zV)3yrY_lSv@N|BEY^(F-aHHx=iSEZ?EsOQX<H;=*>KSzsF7UyoYK!uYr1Al4Nx#;_
+z92=rvewA_f`23H(#^6tNe&lJ1ez8TEYV^yw5>DLgQtzznqB>m3*@HQ_S#qUD853CY
+zvN6{o^C2JGTxgV?W*Ce`N<8t<(tghjRssj!?9z9Z>niaxx|l1f&%28A6z9C%;?+hs
+zN<4$BO~!@+PZ-(g{q!rw;Ic~8;jByrLI2b`tFh**T)zL<sS38v61coNouS?Dihgg-
+z)_$*;@pI#}>o<-vmj(4B!MaVSPW(`7NwBW{R5L7Re9=bCQK8OhapydBUQBKbq}r%+
+zjI^b=PUGGsU&XuC`?A=bsko#&C-qCdCHDC=-QV}<{(cF(+TGvk_wL^E&i?vNTyN1A
+z|AqbzFm62h6VUzn%PFcqpJ4pCkMw)~_$qfRb8zJK`4wH}O#0a5J^!74evux_=@`rF
+z-|Y8Z-+Y3x6uomSKPFH8FOG%nf+(8UhIZRd)Nc5l?QTN56aU3_0~1H*@J>As_c1>T
+z-W@q@bdLJ;yVLa?&A}YG-{|+;Ti)4M+Ukt$>wlomSHJhK^>uk(f4-sn^AX)2#zX?&
+z?5CYWK*wXEzSmc`X=7zwYqzhieIw6dGaOCFr^J(!EhFVP5wTCWL~xFJ$7dIzul$y|
+zjST07jIvkUB=(AxXSU#Xdxo)CUs=@ey|P4b3-h$_tR3B-5(o46Z%@_VN)9T_Ne$Y$
+z2XhkCbJC`B)-aEC!Mn@@_5CX<M(5$fW7g#<z)<7zey?%U3D#xYJJ*Hs%Nzg2b$R5}
+z(f*X`{=8TBXBFjV|Je^-ME9pFuRj{5Ps{61n)wv}f&LWzo&Hd-#Q1Jy#zx6q^_4qw
+zIg8?c;IWVqxl!<QnX%g2NI67a|I_8F{}<@~Gp~6y`d|Hhb%q?*f8(9~e-Qou;J?`a
+z$FAu29=l$*2e_&_0gMF2CgI(2x%m&mV1}`=F$d98M(5!66U@O>^l9q#dJWMh=3pI0
+zJ0cG_H-5jrYST|9TY(2ot!lYnd^D=sf5Q5|jQRNEUGMDwtA7W^IR{TK==Yxf?C2c0
+zcm3byAlEmPx#u65gO6bj8p}uL;5t1AGsxHHJ-=E%XHFl$QblflYQNU+)!uai7%zG!
+zjJywXa_?RL8jS3$@Aq~t9>qPI?)oQSr05@qk)a`VMscjsW&K|C&UcPAaDx5tDtN3L
+z{>8Bl%<uOGJ~KMjYyOF`2L2EG;c<+01=?KknRnuLIfws&dhW-#&%5jYj@!d%H+-UY
+z|G~BDLA&MuM7vw(^?O@CeS&uX!Fl@{+I{2B|9iW&Xt(wR?VA7KJTFAM&;JwcJ~kIP
+z_PP_aJMJHA_k6Vb(|@AfIcRsziP|mx$J(8QcKiN`b{_&S6Yz$!n{Z#erO*iD_rNWM
+z2A{ujWH@^a*Xy{-@VpYw`R>k5g+>$ZZ*D9!cH(y>-W}OcXgr4htMR)LziaV(_xeI(
+zD}Upeh2Mv9C3*{uO}J0RGXuY$!}VBCq0x)`bUd4h>y>qd#v^#P758Ph8@NA>Yg>1r
+z(T;lvcNbSzSD~>4_X^x!!xg`|&{&Rp4ekc++t#A|%_<%u{dFqIhc~L6GPce^-~(Sq
+ze~U8knvrdN-gUPR4NCk|tb>Cx*Wmwg-~q=O^(B-eeNpu6SEnnS-R0r~<g}JnIEiw~
+z0)pBnuZ+1Z<DFgrb$;!bvXNULIkyga<BYlFbxTN((#HBW`j}MpW+q!^s<H}eYQ5(9
+ztJ*|2@`mtOS2KUe#0F=B=tG$IUfI)c(DwAbdG_?mkIAfS8?mRah<2vJk+Xz{_a~GO
+zICx{m^-NlcXT0KPRo)@SwaK+{hS(iGE8qB>*7PFg5vTtIzUOzWgWrZ@o!;9Al)i#C
+ztc5!619P7*ka`tgU#WS1L+b#g&-8_G+$4Q3*<U_?Q~M)Q&Nua7cJNi5o1pe~+MUOf
+zAHcJj`S}a5PkyJ%oT<yahh>~TZyfW3L|eU=@IL<=K7U^OE?)ZE%TkO5^4h=mOH4Vx
+zbF&*^TuiJz?Oo0KaLR5Br>v%Mim@yMiRV2d)+=!&&ZJKKk2iOH%T%@i-@tu2uG4Xy
+zhwE#&mf`v+uA_eA=nc3to;7U@zl7iafomzQFXH+Ft~q!<o4zKvuE+nM#q}|r<Nnk5
+zeI2ewT%W>qEv{>DHQ>4k*9=@&<GKphXH4=p4e4k6+HO(u!2i+<>2)86^;>&D`E&XU
+zX!{yZPN$E!)#qK3%ns5{=Ez6;y(8x^KQ{egI$Xxzkk|yy^WMO=&eR0SAwRz~Cl`6%
+zXB3s<*~_?}s&Z0`ezqpcIM}yHu3y^GP~XG0&PytPcJ8s;e3W@TFL37*9mMlqEpuL@
+z|1(QOH<qToelC8&rP{_qY&L_+F6m;qFH9$dKZ_^XHrtticDjX!zQwEfD92;CIa`KB
+z)^lDJ?Rf0c)ZJ){JRW1zV(<HXVX^HiF`Z_~vHeJZdwy>E2LWSZQ2KMD%qQoPb9w>h
+zQ~D`3JU6NsQ+lph?%V@Peog%z{|~5Kis=qMr*7U@P)fYy29yoYO9A7!aky@F@PD*U
+ztbTgGXH|82Q|`!%_wN9&CwjaU3C5V{5&3KkaD1`fn8-M%vl2=!A5AFx9OAySZ&P@V
+zws6FAXX1a_d`*=YrHt7!w-kLY#a{3~I;KCH_httf7m@469L@d!^9#;TFNt)PXE2xL
+zqK{zgv5S3xz2Gv5snqE;8H~@_>3!_v&eT&@XUeSYOqKjQ<AH<625za*u^}Y(s-fZ%
+z)JRNA=7Z{#J<2$U?1$v<F6kV2ey^gt*J5qhw_HDO;PWbcEA~?J09*4)_Y&6l8~gTF
+z?5n?Fue^e5F0LW`f4k_ol%6fOemnN7y)rFG{J2Trv@V-H6k%*T9iy9a?pi(*Td%F6
+zpCS)WdpciLPlom~)xd4J`C}iy=w=7U!pYtH6`U00!HLDVvj=i<bm|38ev7)eH^O;)
+z<HLjx>lWha^n@z<88Wuh1ou5b=7rmo!{y1S(|#N-xJi%C2vSeE$y;PUr(*5fE$KNZ
+zyU2dZ`wM+B#>~sN^>=>?jLyp<=eZ})#*RhKQ%?-wn~G?!jFoat<~3z3OwNJttk(4V
+zUHa`m?~PNi;vc~Jg|Mg5@AYV-XTk?tyLpDyJMHV)E@8g}<NY7qZdr6y`ETfVUp0!`
+znR_y#V}wRP>(sut->br2p#KPEK-6Pap5O1$7K5_qncIo;W3J3K{(pT4XGe*|Ll$2F
+z!<i?xi-yiEMqKc~u+lrdFs7}iYWlr1$F%jxw0@6z0`@VOJG1aD^Zzks*47YcYn0hq
+zaeS`sF4UEMerS;O2hhieu}=C+_@Aa@nKA|i`+Ut?y3Yb1&E6L^KIOjrMQ$%*Z@r)J
+zhjA|<UUs^?#kR5=VSKe3C&pM-MdI7S`1=W^12XHjW<rwB(Z!kFA!jsciUybKeJ$f7
+zYFb3azoXrr$jj(cP{nVfY0@O}yskxP63W%4>U|=yRDF!qq<()MzpM4{>+!or|Ne}R
+z`siy(2Op}{&#uL@3ay*J8oy~HcQ*D3?R_q}5cC)Q<c%{u(mXi;Za|U0xD9WA#{11a
+z1wWBt#w&?arh7Di`MXo%sKk?P6S9LVYz+e#`vjlD$;^RNDES@Y={v<fY@fspTvJDy
+z2lE(jb>Gx+Vi<3*c)B?_hx3U2+<e2<49}<kz<N;ET_nEK7o~hCV>)ea8}{oQ9Y>Zr
+zG5VLX?&kX$a}Q^5q{F2TX>rr~-xV`Q2kN@YPg&+d#xI}9yrzt|>oay|7;CBCkR0ct
+z592yA-;2*`b?;=37R<v%T2>+P$Whm&sEhNrobi$pT@tUoTtBO|RQ?(21r58|Wz3<e
+zVkgp(vaJ@`L%A5&jezy%KG^Sl>$cIeDR3M0bmTjfUDl6Gqo@}9r3iG`R?fL|@W?dA
+zeyHot^a7q~KkFE(YzN~d<J(Q>|CN5@(ROVk`X0a1ot!p-<5<J_NLKlc3)*%3tq%0{
+z)T(E^?9`{ze(SZ&oLZH)u?_8YF*nt=IO%A~Wl!F!1NCOBp9HM#$+YRXo+;*pVZQV5
+z)#=Lt16ijywH5D9se8urU&r;lg0__RY+_qCyoh$Mca6q%ULdkpd|ZOjmed(KPrwoC
+zN}U5<A<hZf!}}5{rX67^_<zU`us1(HfW6X9<?;hCUhJ5*UCG;0pWa1V<T%^DD!J1{
+z+ZNB1KJllOw%z=kE!RrU7RKpU@lRCS|BX5>natR1%`Wh~7j_S1SoTy*en4`!EKCNB
+z7K6D5EW1zaiP7%Sf&_B}?A18}8W`6$6&f?H@3U^~SCeu5os|-+-*o258pKWGeaFT2
+z$C&TJn71>=vbO1~OfXJdL-Id;3SI+Mj4{?F@JU#$v|`?)j0aQqqS)Fi9(t?r(DW&=
+zgpcmXFb}K`G^ygXpZ6+=H=E+-cg2=#e)=-nGtzGDJ*BA&@tfxuY3rJ3v&Y=lrv3F4
+z^Z5FW8wW^l3r^N{_RObjI=%^#n;dwjAg<_OGeCRl=YxLT=Bb*lrr&su#x4>(r0DFk
+zh7=BGxteI#2yJ~fcz>49(QBl|&8E2DXmU##JCb|!BsqUN<ou~s{+h|$_eyR%O5e?V
+ziTmn`^jwLfwK4f0!t>S>2kyJvFm_ddH!MLL7s=fGXS&#t98;ws?H|THcwn#Md&yV&
+zB5kPvVB{3~_Gmrt?R!-$^#UD7ENCfO=NEf(w9XZ!5^qo2hZ{;aEV%sVx^CtWGj-hq
+z0`FHTJ-4l58?r3xd_cEl+D)=X8+j(1dATMrCz)f}qh=(Q%I8zYy`*?pAIA7y@m>1Q
+zbfHmS@*rqE&S_EJoF2sY1v=JvnZ3cg{5RP_>ZgNP>sIQKFel#-eNufI>o57Z2nW8X
+z;%hi3*XVxc`d*;vzn1(t!8gBQUnJIRJ$3B&FyH4Fm=8$TGh5fwn^k?{e9&&_z35X=
+z<{_TG0`Fd5Q)s;T<Qv(6J#S=B1`uw$QOSZ9|Cf^YbPWz?Ye2}={0`5K3}?TI1HY`b
+z&{+P>LL>Sul+|>`*RUT>!ToH)C+T&@>%=+z8vScPUvMsK=!0!2`eMy*=s*7=zMYre
+zZjwfsmwp)cyAz$MW17wp8y?0b<NgP(dei7kiN8%u@dYpZM$HMno0t!~U*+?<9NkZz
+za(?Mi=1jmm0yd5|T0LGA=fD!s?#vgk2z(RyqXy9Nb8z<j80#qeJXD(cw_~6$w=?e6
+z$T}ylImY}^@#Hrx72mhjB+q*29k?ZjS7uh}IJ=<zHVtw8qv=H^^9se&3P&`HAJCus
+zh6ahh{))AeZ{!S&rav<z`9G3n#~81*Io)>KWDoSU$Jp(mCW+OaUKLd~9ax^D4^yUX
+zuX67I9q}p3R-9HpX{1JHW4RA7GihpT3HMB+v$~vdWIhczyt#j9ut>`db27t$lF7ht
+zCzcy}fF02K-X)*xOey)$Qz}P+&|KACK_1OTTME)$H|$Y#*KI?}Zpeq{q-FgQ8+(5G
+z5}iAS^d{fEA+{s&<PR|~2j0#e?IK+lj$$u18|2YX9aeGWgbs6dXS7YAoGon<>vM+0
+zFay20nQQX{k+WfKtYU@tt6K1XM<xioU*sw|)yIbwkKHSIS*~~e*L7w7GQ{;>IFi4{
+z(s3Te|FdbY${B`!7v}QU(D&6=F~2VP4bC;%j5W<ix!sb>rf^Iy8``<k=brI~XP|w?
+zJ2As5rbxTcXSa9<F@DmqY?pI6P4dVo9Kksbfj2&FkJ=9(A5wY2^6}+Y^xU_;ot-#i
+zNaZJBtnUia9N`keNV>vFc%akERi2b}<%@Z~F;<4tQqH|RUFAS@xsS)`eZ1+{$IAiG
+zm(nG6XZi5kYTt0rT*|YWc94wo$Xv6am49WZv$|d43Nlsz=z;C6nQA-cos05sZWF(Z
+zbcy&(UY$N!>>B5%1EBL)XdAC*Xj6kTJ*ItI=u1Rd>DRFzS7<tMDSjVwP=@yK(Y+G4
+znQ|x7_*&^1^n<Zf9vbY=9-QT^RTZV~>wuvZ+V{jKa#zLMo}}|@EYrA+`C8VSY8;Db
+zduw-jmW4BUdrPK9#?+ef&uz}s*eaJX&ak5~iRrl~vq;s?c3aVIkHPrsPW(KH;ZEN>
+z)OY6yyatYg*POf`1Yyw%9m8`#<|&?xo-HzkBz>N0o*f!Il2v?r!3ktmox8Jx<ML!y
+za|vUX%Hx$Q*S1^1&DDB6!x|4(zRmn`YR&OHh_kf3&}sFN2Eh9ubJ5{kEyum2<ZZ^G
+zQ!>5#fXm)Pn`|9dE+#%`tvJ8CJ%33&xg2ZQxmD@pHy+DMZXi2BTeBAL1>nCHUEa{;
+zn^3-4m%oYSC8lDJ#8dee;QUVV%aRZMu*S_@f}2kf+#JjN26YBe-+a;oB`Qw`?alLL
+z3Ow80w}`i|NOuD^?zEN9=4iaCt$B5JWFAGGg4<~a587h2mJ=*y&L!|bq%RozQgjSe
+zd=~Qp)-Sz9Z>v5OYMIVAbUzsT<?F-Rb^(2*-z>+@n4%YL&BXu*98xxBDgW8Cwanq9
+zyfOR;W8j#W_bOn%=soeCQCR6aFf_<Lw+MUr9Lah18P~9G^@5FSQ|-*5%KR~rmpohZ
+zGq(6QK8x`k9LafB^iSqIJ4teH=5n5`IxgqgiTd!8=4<{&ns6KX5Iu-JeD!D_9My-J
+z?1P0q*s2fA55+!6zDJ3%uKJK+jz9Zg#&10<`2?7cG9bSffc{u(NS!+G**Up7N5(aG
+zG^bi#-ZT1C`<zv7z+&Dp)UEPG9nZ^PtmI{ONRIQXN6wd`cjQNVc1(V>Rp7zaD0^Mn
+zjz^id^7uSyv<=SXNke}w_z`2@I?9HU`HV>q?$9uQQl1R)J#QUP7f*RBC%eL)103zg
+zo{E^thSp5PQaKr#$n^{*lO@eI$211>`JZ#&&Q8q9`a*&un#=ufXNzhH^V{i9JW5{$
+z(dIGZMep=H`25TMA+h&dJIsA}b@~df8SXy>J~;-sZ<IV;@nrdUMX%@Z;>Uz<S(q-&
+zlif6qk=+!YKz6hB!+Elsx#aaFU*vJJo1PE<1G1Y)hwE$XaD(8z8CSG8+WWiW##NGk
+z@^9KUb_K@JNPip2i?ti))SgT|#+k#7{u#=aJ#1|CmSN9-Yzyc_EuZ3Z3-}<iWoU#y
+z_&DZuYC@e+;l>Wn0zOzUtkzY0CBYB>Rq)xu^fhc7b;UG3^G6S7K8UipGj;)J3C{m9
+z^sQH~!8t-BZBX(ip}Q6)8CR5f!|3nODEY@)T*ipM+fp=1Lg(3ioOz)V#BnQK`pN}z
+zc{fLLYi`Zt@@h)1mFU(?iKfX&D=4~bsq3%n%1}-O8p-{}+Z@Y$<~ajQhz_ZUK8D0)
+zZ_(}>aM++_dz~j~*<O>9?VWGDQ?}Re55PxRK743dQ27}6C_Vvvu+AKeFfULX{Sp|7
+zcDMzAk<(EJ{cZh?y}$EE8AIg?#sd;K`K8WtFajse9-(=*(<Vj3JM~{&FOIop|0qs>
+zMDrbwu#Wuo)^yW0$w#>UxHUa2@$J-_vfTo`rswH3-LKd5;K-V;`p4E3|1%bHkG72u
+z@4hTGwW-f@8vDG2(K*1_hKw)7IM!SjV_Ub^!<h2SWhS=g@07{^8)?DB0pZ(==m%~z
+zlm>Nt9FY^sI$t4vchrq?t=QJLbM>B}&eL=rKRhc9>-y#Y2+tYS#yE{jbM2_ysMxDo
+z->rQOz{9tuXoKGMYvseRFRNtFjM?<3T)eI9=zKUam4k))E!w*?e=cLfi%hz!+uN4S
+z4wBXp+KstUPSAhf*Vg!}^qIB$`RrgIv0rl8=lZU7kfN_=JPO7`9B(X2=H{qa(-iDO
+zZ>~M}-P@xN1!Xwnb)E|H9`(Oga+;9HxAqJFUql*L=a67-reNNDO-+o_m~V1kqVaSt
+zhCc1;D~;V=FXks?B+`|}uR!a);2jJ1dy&M`Y37WmOyHUEf){YNfL0kTQvnz^QAXZ7
+zFNnOl0PtDq{7UpF6~;{x--`0)3h_m}31zl;HyPKaX%j$wWTnIe!1H*#d4k{A+`-sX
+z_`gWU47s2rJ2+WlE_@>$an^Xhk{sKN1;55?H3<Wq-r-w_r>_J|t)U*)KQ5yDmPrdX
+z^Gr3aOdiW--)BZ<q!>fy=O}Mi_G2t-yqOVx)1SE$xZWh6j&)dMF-Fzgbc40V`xNM?
+zH$T$vZQY_}?^YM~*&&Hp+>qGpO|R?nLiXcnW8@5u`z2;C)_Re%%PSO{k3%YMMx-?L
+zai39iFX}53U*Z;bI>uq>{3gAOC#-*W>-heZahPZMQnt~VYDZb}5{#ixk9jJKZ1Fl6
+z>%pM^e|C`h7@}RE>FoI_@{HV9;Q39^Mx|eLp7G{%Q9kpG*MK(Ye?mGR^?HrWm**Uk
+zJiNL19-o)^9*4X|_(tM;*uK;k@NIpU^3Aq%eDqUyE4+0sc*rkmf2y$Xq<!U;7GrnJ
+zPcx^{DPjk+S$IC|fnBve<0$_ZxhQp)l6QD+^8I+%EOI)GUDrLyM;&ILckc7*|5NFw
+zF8+#FG9Lb}GYnOiDLG;36I0JJMYK<eYM)ffEc|Z#exDn^Enr;B*zJb`36&>dn%J?l
+zx;|rHhQ8F*;vc^!6Sj9`l)V00<}=<EaNHzwR+~2H>PU+l!Msh6DA+a{w+KHPi*}|e
+zA~%6IUM2a(L!y^$Np~=g%5&L4%2tRkIue~JmFq#}+&D0t9qe$l-=T%|vos!%``mPi
+z<YJGfrve6u^F9Y0AaTTT=U(|5ae||CGyw<u30JS)|J?g5Ls)rT%Pz^QGIrvOXSA(E
+zROI2ZZ*uu)f?7^G?U|gMbU|sDF-EjJ9Q6gC7k@$K(p&?$*x)hF$(x&o1_RCp(2lD-
+zKmLDR|8MbsAI>2&;=Zb%mE}D<x`{bOHvn&}QhvQA^LA~J-y2QlQ&GQrO+{a<!@UCd
+zgl)dCNzrO;_?EKj3hf(QsAEKMJbXs}RPhw^lhoPJ=YV^$vZ5bjU_PG~mvWwGe~Goy
+zxdPgZ4Z#&?tBvE+`8vSQo76ARf7f5tC2}(1!yLwj6`tY(-oGUM#u<ESuKre+{$5*u
+zsq<i(#zeM%=c&iH->cs<9tOW}$9q2K_bhiG-t)U<W4^mve|I^)3o*xHM9IVg=f+D&
+zpDl}ZrUG*>w#LaEZ6FUKeuAXi#%sBMt~|^AMe8yd)12_lZvu?dsJ{znnvc0Wa(W7p
+zEdy?Tv`@!sHK|iRzAf~vJdJNiW39p3QCGtLvi+CDR;|zb(EjWodG6j1^?SXi(9TH7
+zP0I|GtH-orZiCU|?H#Au0S*g-Hu3}S2D|BZj5CQodh;0LQo{rDVA2MUvfDWvuaEJ0
+zBkpVsKb3%=V-m|r!P+5?8|V0VoaxMKU5UAt9GF!XxjwY-`~PwGHsDcJ*Z%OC&kV^R
+z6Ow3zv<@08wNVd<Eu~ZjL`A_mKu}a_qtceDtx;)9Ev=I;h>&Q2@F9X3zizGdwy7Vz
+z)~j|9wAP|UMWu@N%nYX!653*=)hfxnzu(&XB$F_p_TK;dKJP!zbDqpOXP^DO*IsMw
+zwSLQlJef#<PHe$mxOLA*T}EQ7E$y^!6|5QNyH_ynW~YC{vd|CZiFG#jaf#ct>MUy*
+zW3{+e?-e@<9nXm8PXV)C>G-a1$auqz_As+W`j=-IZphjHVHgki#%;(9s&j;OZp(Nj
+zCg)tzPthIJnWP7?Or69*#XH>}zm}M`?KbN~oU<ftYIWam{r_Ar>fXTGFV=B~l#Ii*
+z;KZtVO#Iq6B9D#O>(|(e+gei<7(ene5|c*9oR|UH_OPb;v<Yq2v5uYiUq>+xwZ=Xv
+zQvD!4=LYiiU4Lh0IsIO1*axqPZ4&7K`@)O90Ns1MS;zB|_*@!u`^`61d6l4F^Nj(#
+z?XkuRpNXpq*F@BT^VC}3+e6yh5^J>!UQqOR=XTI-EhpUFmzDGLkuMxdi>dz-Iva|=
+za+H>dBz}d~+c4&t%XMcarg2+x<0Zz%Ko&xuJMj{!hk$HYSRi<Q8|?z(5o#<y_9=1v
+zxDGFVPPOexi50Wa_M@-;($@_Z)7_3egLvHR(?>C`PQQq4Bi^^asp6!eFGL67*3WOn
+zbLtkV^mC_Ao8Kgc!bThYCga7uq)LyS6T9+3;@W}_CuV@GgWBb2|HZ<$P6N%9e#1WX
+zEygg=w#0MRtGVcn#fv8+?*MHGYvUy|(BGabQ0^RcPQ(4y9;0j^Cx<tdaqRu(>SK=4
+zXET1Y{urLk5KoA>(E(#Vc{W)Cn|qZWk7ZMrN}jb6|F2@%c;09(vs?NUUHS?3aTjHO
+zQ^f$Htt<UC0yP`OP9SJ(_R;4tNIu`%sIXol3g0#+xDU5lUY_5ZXF+~Z_O2&mE>sF`
+zq|tpE*EV%xxJ>lJ2@*pH`wT9bGq{cu9ToaV_>+s0EF%Lt;)}G)xi;jZ;(|oH#8fz(
+z;v?)0Z%NM&KW}qAan0&8^p{*_Y%6&_cW6txAyg;lm<z&K525Gn5Xz6aZnbupJCfQ5
+z{9)37GkSY_Vq@;igfU0o68u7AMTnRR=u6rG^Ib^Wreqa1a+-RxfQso;XlQH`>fYWX
+z776D|Vv7%b=u`gt7m18F+Aub<4+Up5bgN*@lF#Ehs86z9Z%e)W=1Y%;&8-jn%`J~2
+zk4G`4-7T0qe^`g{i$_z$%zeB!Ti7CYyOcLp+UbMY?g;AqpMoDVC(Rf+5AX~Qee+BD
+zKwn*8B(5niHe91{4jZ?;m!0v4_p;CRyqBHu^n2O;JKxKef1|*dW%p$n*Dyjq1C&L7
+zWuD<rsO!L7U6%>eF0(ZKl07sOrJp)@tH^TuM$nIdxjf~KH0&9A5q~5UU2X>=%QD`G
+z{I^09t60|7C|59^-n>q&jSy%v<99F(aq&opVrBzmv2FH=*dHG>J7~j`^d#10ob^ha
+z{2v|Ec%<4tpD`61Lr6PL`Cl={b9@YFw$Wi%QFj`uLtB>7-#xwm+$XzsztY=Xjr7%c
+z&-7Jd@3PG5rruPic?D_4qI^$yo!~ezj#(wrSF#+W<##^tWK8=U(t0mfe&7*Qiv6DW
+zSzopqeOwzkWp6CnVaJe{FM6BhNvzFOST76Sf5>_<eb4i>pAV*vO0*;^5>MOmE<w2q
+zePP|2uCSg~u@5zmB6wA1G*ugWGGL-EDmGeEf1AUD+T0{<u8lm|)qy(37ZePtUwfhh
+zyhb#=f9ffF>Gv*v>R9iz<yqR_pDq1)Uppx87RmdTS9-<1;MW0;$-Fe}Cb*~49s#sq
+zML`aKHDd&Q=;O)#bx(H9IoR9dymN)mPOTcQ_8-GcFg`)IcR@jaJ)PJ>7yjvjRMb@@
+zxYYB<6hS6zv#W`vjky&aGulVFBWSMnMT(2cPWTdKNRK-*uE<wCZnQlE-vvTz)LEdm
+zRh*7z!-Ymwr@t>UM0NUM;g739m#a%=3LaW@dLsT$A2V8GVa!fWN7<JlkLoeZSK<B}
+z;Wm3ZejBsb2!_<GaYZ64dn2z9V=GO4Pz3Lru6Q{!zgXdk`y*R2Mc^}|#mr-s?eYoV
+zSI9isHn!_4DCa2JVd*#{GtiddqGwoR$BB!Ny`*W(OBp|T=J2*XGZ<eW(Uc;tXAr#7
+zr%8+OyG3L7ctbA>o?E%bt0vA}nVeBHrKp>5GtRr<Fr%-S-X!jDETv`O{%-;z+r2Dj
+zA1-sM&3bXpGIk&N1LF7mg*;*cv@7xr%Z$!UjWuSboVnl=n~o-%F-tOn(OR8kp4DhO
+z`#KP68`R(TFgC8nsUB;LwvWHk=<(^ZZOVQN^&V=Nua%*H%eZ%Vj4j7hOJ1w(Td6~e
+zL#Av~bYvFFS#hJ_S7hdMZ0pu!hDGbGSj{adBciavxbF%t#{Ir#S&Fo3;)J;P&2n!B
+zpHmoNyT#^_w#(1ZwwEyi3#&>%Td*IXO)Dx-=&-+tJ=vXOS3%jhz+59`i>)tXABc`|
+ztDRdWal?oK6fiDLhudyRvF?m<$^NF^XFJ;U+{lhW_8BI|+nr;dVbrd%%gxtCeh5fB
+zRE6`z^RG(%o4oH>{d);<KF4?1!Sy+Q1vz$`$8qejk5|>KwyWzwNACu06B{z_?@cLJ
+za9*0RiONLRw@%voem46+1aosf`%BKNW~Y7Ot@M#E{5$r8Ku+I?tr`1<bD8;ZA4Z-S
+zPl<W7S7K1Ax-zEY#G08;f2CvQ)82S|3uxE#-$t834`f|(O^q0`ri2g2_W@%~rtJ!&
+z$FY$hfBAA)&7+CqE-S;>lu@VQ2|ayGg<zS_g)D_{<I8L>F6O~+89S2SZq?s<>y*zb
+zd5j3^F>&@~_I#I$A;G=GXC^YlED9HQ*bk%auAH`ihO~2>Zo3heHvgVjJ>y0T{n`z_
+zV_&4hz7OAdBOMv9{_Z5wFMj7z{p$%QGPJudJj}dc9Ed92hd)DI>d8a!Tb?&o#nZ!r
+z*`6rwD|o&sdve15G}0^%ci8U3<hf%=9`6@rdq_XQkB#cd(w1sK9?t#Ni*Nsc_cvp2
+z+H^^Q(TQt5uGoC=F&7sYjkspvnvN@gi+gIQhS=q8O7E@9BOQ1XWpYf&S64y?ysi)Y
+zeYhQSw_WsU<nP_uKac6YiT9OwUlro}*_^|L&bu1E!*kPAawp$Wm+9m`AMY#7S4D>$
+zkUo0G#=hLe{mRp+{KnjZ!5V)BW52buvcvw_lr>4}V<zvoAmt9<X3>{wQB=jdWIWWG
+zICXigXqQ#eF1BhbEQxs^zoyeAXYQEu@oOHcv@{kFWOCDLwU7FQctG2U2Nd3AAFpGl
+zKu#)QyxY6`@r*A`GY+!oO*Iyr!YUk@zLD4{_<x(m%cp&5K_u=95ElpU?k46Bd2@VI
+zZf;<_&5=K1-_<J2pyk+SD%yL+p2QWkJToYBiCy4ko3SW8iF&b}9H#A0iip88y|pWp
+zP<TYd13JoyGmC!uysiiF@hZ$+wySM<ikQZpcu7k1C1}f1!CkzRxO<}vbFK8zcMM|^
+z^+ZN({1wP@FF8I8p~%|3<iY&3R|`Fy2{8UeabrgGKx1yrC|>_!p6@?jATs${k#o`Z
+zljYlxm39~3nsMVBzN5TIn=qyY9bCaW^2}j{*^sO-pA&m1_U~xfQ`gx=oTuhGpC@{a
+zLF^LF>%Xq)#XNQJm#}t-wfJw~FM+l`&$&C<@xzR+llUMKzc-8dj5)!0j>9yD;X^3b
+zYc$Du%`f;nvKDl+N%R>W=ghRNsmv9Rm;6lVGWtJi=`)q*Y_98a&Y$pF9nXGFa%nbu
+zGV#2Bi2kDvjeALf!gNb7$x;Wl+1>|UvqG?k8>~IxMfaHG)fGnDZqT4fFZA{hFLNi-
+z?Zmr8Xt3YRHl!K%0_EVfqH}M|W;YJg=jUEyt^GZ=MR1>Z7O~d8VU0dZ2Yr4)W9NCp
+zO=W0n8QZrQZDY(q`U_oAZ}gl-n~AjpcvGg}1rElWx>vVla!y;yQP0Ypwp5~?1*m6R
+zHMn7od-nwXW0D!o_+S3#zU*jh&WrK;Sp0V|#AbkI@GQ_5ZkIDsp5<0^9>vvp>8#Gp
+zc2s<8TJ8C@n{8r?l^VwRobMwI6`#*r(?r`Nms{I(2k?6Yacvn#B%#i)qZ*fsG>_|W
+zR&A?Yjc0=0b>Wj;TWN<8u|&t>;CU&Z;8y#DHN7IM@XU;ug~K%Ox2_QKqt?}*g?%QZ
+z%QAGiVh66vWtoiY>qWUiJo`zX@{6NB^|Q#|(l}n_=o7|VuC$at7kvf2ma-2f)*pRY
+z#V!`lShrHp5zN<~a*gAaFAw2ebsl5!tV*5p56WX>P99$C6uXr1z1i<Mc?2v~cQ3}^
+z`>1~@(i=JHnWkK)mpDB+>95I2Px*+l8ZpHKv{k3Q7%rZZ@4%ee5!RRikg+{A@nYKE
+zVSOdHtR9fJgVDI01-s3%l<N%QAeE*4HKap3%W(N1f0x9}tscnWxZmcBgr6;OU0YvL
+z5#DJx(N8@5bUH-Z4%$Uq49e=I;YQI7O!Q@Y3iLU*-&FKt_4^oKq0<u2S*<HgtAc2o
+zPs@XWDD8#Y?MGHC-BrkJv_ZeR4?g5Eo^`ui93RrYStv6lx^twFK54Vb4+J9MBOv2=
+zN7C0@u-~iz<iw?`9lN-uGGhA}5v*s(2DN(3nP&a!-v0cU7rz(X5Bl<_t^K%fTfvXL
+za_@*X@`?PuoODFdmnbnF3j>V3i2c*h_6;gl41MuiAO{l5nwZv2Vt>N&+4dK+SqFEh
+zKTqPmbDVSQK^t%GpG}9U5Bjh?5L(+sUzy>uPp`EZ_dDp=TF`eCd{(*OEypa*vyfS5
+z?=b52vh9?`I1a4SPjl+Td>Q|d7>w*2;w6yosQ5zh^cAd+xi-ld(_V>z7Tv;g%0OtH
+z)a59t%eujJ(dD~zodS_M+Z(O3RXvso4}~_R`Jc3;X=ooM*4caYx@RAkof=PnHFr+n
+z|EII3C9y_QOe67n$P;63o>VlDj_>%K^6i+M=bgrmWT&wu>Ev^>`BJ(wlyDs_GG*Mw
+zXI?o|Q}%LlABx#d`oqxyhnAdS7>Ce++_bKov?u4JHD{c%x6OiF*2%c>D)uMyWxTE+
+zV<1VKuDR(CX;U&To*bE@HyDofc#rr3ci8nVh4abt{&FMMCH|hYMKaGy$ry#|EXFf-
+zC1!y)FW$p+Uemqj0~NbT=r(mQ3zuhmf{@A0<|n&moL^vc{aop49(+c{6JuQ-MBAua
+zdXBM?6O7$j<a@#>!hT(3ZwnW3@AUAzld+XM!!IWp>ydE;DW^{9$6}6qw&~bBxp5yZ
+z$9E%^tGU5Eet~`M2_1_Dynw9pmua7%^#+W)N!+y`BX7pc^CJHy{o6F%sSxtyc^2ap
+zhK&lwmy&mGq<e_J89xfo$wO|_<(x0Fs*;P()i~pfq2!On)4q6|w&LAh(6xY^IU0X+
+z71pLnAAfEbEBO8AbY7J8nNKP8|KR5)ATPF=e&fFInv5?(8_qd`ONg~N$*s>XgOE=`
+zkYC*8b!nb~73P+M->B;f%B02mOpNhP=qp%OZeZQE3+*D7y<lz*sUu|6jeAb-unX5H
+zJ%ACuGUW-!GB;zMKeH^`v$HAN!&rG9qkXRn`2}=-Jpakprsu)$1@-xwSM07v+oxgu
+zUf@=?P~Ro32;X5RBzE8(_I8x92<3OL9?(P3C**D9&oqAHj=f(5Z6KCyC|r?xE-||7
+zIgIhN(^^Ibi`U3{?D(aU$y<0Pg>}9jc|ND&$t9aZv;~f*PtB-3g0_p!y!Zk7s53G%
+z<-`G^jnDLe(or(*TBoVv!V<%k=NnVOS6$2VExe0^*0BsX`Q748nd8Dns%&Jj<*JRP
+z4(K#qEl0X^*~E#xpSXSFJM5o3?KRpm7vkBew`6;E)T)@Pv}ep6qZKlbqUqaFccy#!
+zFzIg6>7poyy0GUYwi)P5XpQ~zThtml2k(~Wyqk7hLu!idzsbn|=fp%pzn@Is-f<mv
+z<Lbflg1q}SJpXb3^KZ)Y8?q`^=Yy^e!A?H&gI=)(J6q3zlRYRy^v0mi{Ecw}Ut{I!
+zJqN{C2A`h@sd#!1gYKV3`?9+_?CLt|!6KrIBF49?CX$*|t9)B2i$+PmL|&hpzCdCd
+zG|BjqXIUOpI!Nxhw8awNPou_CHYE$?{9wZ{jXjMy>Xk9P!#)A?X&TyFm@_}g3w#;R
+z0(@q+Wrm|X+Oofu&Aw5J-_#2&#{W0*pKIywO-e7$`P|f}ux@;s&Nlok+cN_D*dRJy
+zOj~5-Cpn2aB{~1xvWIzmAL)N8=iQJwhKvu-#U|qU(L<gW;`#mO6&Oo!y+5PC2;izY
+zx4@Wz>yh1k+4<)b7}Iej&Mq+S$JLx?U!9$^{|3hm-W#V)8A#8)n(5CTcIZCbjB%fm
+z^W1IBP6vx)Yq9S(;Mp4HMO}7a+`wK-p2W9X#flB^tUNM3CAOA$@2-lc{{^~qZxr*c
+zCYs{;3+;eB8hd}*pITF{H(Pm@()IP@Ts^)}V~TNo(<53_mth|Is#;S?{H{9=`G)IL
+zCxu<IPOx7-ULEPMy=9OwB299B#QgZ}1^6ypv(3K!)2<%sUQP7(<EsYfmtXXxbHF!u
+z_}t;R2hR&I1_iB1&ojvISp~*~V+~{C^a3M{i)VC0+b457rrOB1vYo#{J2za9c4A!>
+z)ZS(}dMu}nJR@6*HNrNseXMI?&2noD+ew*$zCq!Sr%&MenS%G`RP=$lKEwCM{xvrH
+z%bQrA$?Y?~3+~?}^*Tx7BdYYJNPhr*!#a4(<(Ai6o-t|#$4ct)Npu_gwQl263R_xi
+z%)MtoUZYGv+Xn0}t}xGW=a4tv$g{ZPiJ#LyF0l-GsfW=2i}3C%&hsd3q~@jZ&O_bi
+zFip4DVITO3wn@AE$41W+_&s&ifG)tF2YZ^nHWQ~|Y{wf$Ehf-5Eb=(+o2My#Ci{nH
+zdfxC_;Vbx?vD-ba)ft}gao$n4LAvBY-&}ng^)iphITHCje#djdg|{jB$!j(#T_okj
+z8qKqZR@sb$xhc^hx=!+Cq<54niX2@IXrEu5`6gYp+r);0a-R5FnagZXcw5Ff!_#N5
+zf`>#umxX2>(lpv%=Q%3Ue2R6!zHWrpmGz*GqIbfxzfvzkod{`EsACYG{x?z9*5`VA
+zLXiSv)}Q;bZJEC8;y<f%)KEm*In&mMIym!{j5^1Nd)QyJCmtsCS!*Y>%)nSj24ya@
+zVI;nBi=BblSXL`?LZi?Tr=QAW+8-dX!S+N{d^natnWvIxB<M%l=NyeWv_PMO)ZqW8
+z#D<7*f!0ebOwQl9Q@*iWVgNEvz6&NA#pcar?zY$Gq$$y{5!tWD(=Hd^C>tx)K0KH9
+z?Gf9yW~sNxYq~s^-H?-CkKjyfkaTM7nnk`-b8WWB58zcxjuC%)V)L}`6~3RgJ=kA<
+zek;b#il$^<fUgUH$8?1l8@7%ynA2kWI{Vg)5kensxi#ap8pUQr_3K4)&g9a4>(cS!
+zTW?kSKI0m@=u0R5PVwY_-Kt_b$~b`Dg)t7Cvoc>Jt8Jc3KY=;x3O8GfYtTP$<6_Uh
+zabO-+%UCosE-hnch8n{QLyhB&&~mYB<+<dNTL<Rk2+<8US^<p_u-``?0Pd#=oAW+^
+zHge9(d|$5SJJ-ht>|6BT-*o+#BhP;vVNTa0&!aG>=YLtv=>>XDQ&yVrY==GbPZy+^
+zH*ra%Z3c1ZTkT30WWhM?rCM#;jFYC98_MUyIkRKhnHmS}T+rQ<%2a&PDBrconLx6;
+zKCA5nTkW$zgGabjUuAg~=-O=me5BD+ExzfNoKG<>h_^Og9FDb)e26-Amx_D9J^Hsu
+zOMY;nrWcDS^C*7=#*l<8a53`OSoTHn{i|k-K+)fcuXGz^x3*i{f9!MS=?Z%a$AEMa
+zvVz~ZESUz6<d5vi%-6nU=Vbe2&d{%QfqpiX&+z@R5_?7T_o!05_%Dn<D!xq{?de(N
+zlh1Q8mR*_{@Vz(0e!ayeCO_vO+b3toNP7+17uNS<^&I9|8QW4U^W|dj{}-3MjCF{4
+z$+%A4PMIg^G7IH=1ZAS#Y>N>EzY;~6(K?xjk7bq573i)fkyUXeh7o^lPjAoI=@O41
+zE%9f#57y~3Mbzbf(tHO?2jfIpf^|Pr#ze(T-v@c=&f9V@caRSJe&Kl+w)V%o;GXnO
+zOy$cs6RVN_v8^3;Fz1_hb>7anpQp$DI;3wa>9Ct_qwm4s^o%3yYP%!_nlh<W&MH)l
+zAi?Y~Hi8DnELV80U8wAK#fF%^`J^Wt7f&LQ;d<xX+$VHyqutqxy+HS+5uyJy`Y}>x
+zvu+0J<iyEjJew~;zN{RlbhKO_5#;fC!TgH~zyCbtmMc5#T{qx*sKdtmPM!BP^h-`V
+zN9cBr)bqQH^E;yEFzds)6womtUdfrqtwZ{&w^-%lZM(%{TfT_?D$41vB-4w3oEnc-
+zJsyn1dMeWT^Nh2T_n&p%q_HO;ZNZSVn{=CLZ@FLpegS<$nz>Hj7vmmutb6C|4m)>l
+zkp5k*>vB2IACbRrNd8G}7kV1wjG;f;A@jA*?hrc$#ulQE(HE{4zh<tb;Fwmsl+UNO
+z+V7R9^|cCZh!Ri3s7QZa)-hykJY#;dTpe<@NjdMm5i-Wfd!|s%79S&zKKGaNSU1w8
+zkSA&MQhe_*1Xna254WcF1{E!2ysl2vX~ZN?%3Ub_NrjgpU3<OqKiLKOASkg%8Z4eA
+zvA(3;<$@`+*%o?$JWKJse2a>o^o(xD*H9+UxDv#0<M}rBC*nhI(`R~n#J_8^-N^VN
+zMuT<gd%Zmz%h_yeg8nSv$+=e~Hf0!h)Cg~~Z$-Td-$gp&E*Q}yWWrIEI<6GxM@d~@
+zwy=)AnUf(Oe5t^A4p%#_g}4Hf3XI)f1fPljOYwit&-=2}%XQw-mu<wJ<H1H5!~aDt
+zb(T~GxguJtW6>nm)2}NXBwq#E$oM_<HRJvhwy+=Js=!5_p#uGTRFvldcpis5fwi<i
+z+aZuA;`%v>XU5U5yPY_B+-EQCRcq$+5<jn1Y$zD--AF74{drCJIj$Fe^UIcA$|khm
+zkXS_$BQDV@7z;9AiPge0B7I&|lTcWA+&fRw=R{1`(b6mPqiV+hUg$7Qqn&#3yuzq$
+zwU_oPT@-DdsNZ>wwAv&exZKW{e!fn>U9aaxltr9B(jeNLlAkf6ZL*KET;VT6ulmp~
+zmpboN`Uu*6?8jU<?N&{@V{IAAWmXMiZ!oTGduqI--)U=~#KKCX^@ln#F4|L2=V@;6
+zRfgC2TvhdM$U6l_Xs1mZ`G>=+lkUQig5@$+$7~y>ZFP+3a@(oHXN|cff+0tLDEjbe
+z+e-1B(0US~551HzXgjh(;@2FI^HP<T_D>=&gtzWtpMk#;o282k!-<Pp=;X`#QFpiJ
+zi~?i(1kB~LmCvJ`-=Lp<q50X;D>{6obsau$yw%M(Muwb08-h{Mkkh_nv@eMA&1|wy
+z$muW8s={5^OZ>F8(f##T`hN_?wW(@I1tAaeyP^4WU7w8p1C1^`4gW`p?+nU=tmV`8
+zsr9<fM+<MZ9yE2c-Eb212FvXog2A!VW*#hi=(jg!`*qn8i_Z(1vfAUa$iHq8x{bBT
+zIou@YG?e?gH=SN!ESaG61R?ZY2<tFtj8(XvwF754rK`|~=*OV$Loa2i&`#N(PeyxI
+zp>Kw1nb$A#P4%M}``n2lBdD~Ld6o_7N5fp(KktHS-uZIp9c91I;oGCd2UW*`N81Cs
+z-CppvH|u&HtJ}_ffOYhkS6ZA$PWd}^tf9~jrPJVZ=G~?HGdItxvrZg_fjr&9(=WH5
+zQoK89P4~6v!|L(qL&!!oj0aUSSI#VgI#!oUpS29rerA2WeLYIY)Y>1fiuB+Q2YDWX
+zdO?mkoGh>jYoq9y-kt*{WPj4(99e*8CbSEh6)LhR`#eaDf3%IZ*)xnHI~pz$xm4uI
+zD1A8ZV4Nt+WzMzx<D+9dzHH3(d|mvM??67AKws-pluv`vMzQI>M&|F_^dzkJMLZuN
+z#-`AOxx&|zj-xL_LGaW(8(1Os{d16hPDzoZpCj~>z8(dVevZ(!8295a?Om5kJao#P
+zaz=qY>?`8iY9;Ca#QFXV`Y>0oNgd`0qcs(GDIb^ExTiDZjbgZ;<jwX>dHVv<dj+Dc
+zsShrUr>DnfrpCr*l1_IwAKzgoL3bUywBu3sS)60YH-LT03%<l-%uD(sjRwb&GD)G<
+zuZr(U406#AvprtyfgfDhm^zB<lIt+ERo47i(T9s~d7-I))3<C!Vl>8Nv^^`tXPfNr
+zV7|?ebD?^B2GU9Y6N9<7h4KXQjGs<l3G}<zD*f10{vZ6F`K<X6-%I`t{pp>vtNUHb
+z?)<s~>b$^Y%n|(^@zG`^R2?qpuLJqgdfQUiSu)R=x2o$J`Htm(k7XvD^ev=Og-)A@
+z`}4(|HvLY^yI%$`WPRADX;r)!<1I1Vuf(^%J4`tX`pX&U3)<7XSFgvm_Rz6?tc@{M
+zjP9#jG;Pvjd+f&?+X6kd3l1~3T{&ax%^6$Ny$tm(`zhlW=V{AlhxFNU-N$Q0e^_Ab
+z#5LoszU=#_s(1rD1KknZY)3A{7$!E@CTOawttB-q@=C^xZnjUNy?OLD%Z!5WL_bUh
+zU6~jn-f64Nbu$x!$5@Teb{YN?^TcRtwugmZ&v32$kn2z5Ba;7&gc%F|mXVu41LL^v
+z#kB#~urTp!n#+hoL(F>Yvn8{ltz}0MZ|^G|cBo~rP3c(b38EWpU*z=+@oFAo42o+?
+zQum|(zlM7JhxFO>6zRqokFmlJUNMd_ytk%RFb+5temxeuKL9Q6jHVz!7e+L1{B>fS
+z6H_Y;{x95YyHSplAL%Rjm5t=VrlViDZ&V}wXq0mzeox15()|nZ{{;L$9skKIQV;R2
+z;JH>y+^<}mWUh}&^w+OZm&qZ8@#KosQWthQ`NIb_f9U2pdZO9h$+(<izuwx9HF%rP
+z5We#75^GfH2gjnm$gFUuV6j!CypecGx7O3`kr=J7OALoy;&Z2H^e#h<4aW%c)^(!R
+z>ryX9AB;_HpoQS8k2j~$c2NAS$OoUL;{XufuSok|d4;AJ-Q~EBr!ND~N3%*s!#?g-
+zF{lNv!o&4TOub<`j^+10P`C^~GxS(!U7<(ntj=1+PURNGi$9|C-6xnJ7o}7?=cUQd
+z(kE%*(hjjr#2l~-Oyw_C=QT#LFLx!B-}r9)w(y%c5*!EmvWwq&MA<z}{7~`kw5co5
+zb8(SZ_|fEpsK*+oZ8gi>&+FfAv=j71{59B4#*Wzivkt-c<$UD496Bezpywp^%EH+z
+z2jd>j7oKN>!om$TW1bAGfq+?(B2U9Lz!-(oF^0~ZUglx!(N>-fC#$KmBgUqAw)E*R
+zth*l~O}&mAaxLRBgx|DHjPWq_eB*Q-ll3=l@b~C{Kj!tx!ec2r2>O0Gu?bwpn&f_@
+zo2C6rd+<B(CG>w(VIO;pwVCDN7i`9Fg?#;z%ZNO^Jk**h3`<<v^c&&69tU63Ssz?0
+zPxKC~5BAxGx2V|77vTTou=Zn)+$igYzJ3v1XO~$&QZN9_=CWC#*0Q~QiY_wlz$`<>
+z9H8xB5PcE^t$3U^;U^EaC(p%}yi?0jT+^(_DY_n?!~c=`9nUlmesQo}xswO&%3p+>
+z?1{FdeCF#iuEE6e5XQb3yhSn30x9P)kFnw>sMgA7<@a>Amzd(=da+{>+%V1?k#(xY
+zmyhY>?8#hixxn{)7Gu+kHXBjUjwtOu2WSs59Rr$<FvjYSyo!!k)TI!gAM5Q$_<jlH
+zBed&j>KwzW-P8vT|Dd<0ig@+piNoy~iOCy_--GdgoMnZLvNY&N$s=5kpjouxtkyoh
+z|3sTkh(}VV8JDIDK}Sv#dj+GLcra6NftTr~FXv}*jl~5SzI!t+(4=ngJmSkqywow`
+z6Qle%iC^(4Tot$=$997VbRVl}5ah6K@cP|lI$eoQSB#4~V$!jr^3bti+K042`;nIC
+z@gXJ7*+}}BV!Z_dsz0b#iIjKP6DLw{)Mzn|@cxrJ>~T+%SDG(4ibiOctzrVt9%MsA
+z*+=20U6gJKD@^cqTw{bDz9v2cpC&GNqBYe{JQJ)Ro=4Eerwuf^ingKjyA9D+Yi_y(
+z`&-autl)Xkmt0B*G6(;U*BHr^wc9nWFm2wC{+E(bkT+w)7P_KqQ|=tS0DWCJ=fBh3
+z+tXgN*>=WoHu_)*t_yK}57!08K-`$~ah-?jKXILl>#K%}A2VI=AJg>sNA&ogiR;UZ
+zQH|?MdN27Ru8Fw5pwpd!i*mr}xW?le$1%`;zo+WCRF!8gv3{S?bEz_CE}bW1dU3kg
+zrEuBYwaeYV!QB6q(DV6e$`Vo0A@7oy=^Qu4S8{MHR>{6IyB{lt&*_&iL(@X#s}N6y
+zn|lSndbmf)ZoU8N6MfAl@{m|(^pW9Qdcrp_mkyM5*!#{Hm`nGc*kRwfMa`vG83VxF
+zrQ*6X&Yh-xe{dV4X6W_SEINvK`lUYA7B!yg8=mty>Gt89s9=YWNim(m2KNXy_)F@H
+zDV>l!F2ekrUqXHj`-;b{=O)vU#|cDKykmR0qK|3(pQX!~<x&_dik?@eZ!ll5jp!<#
+zX}Mh54&wX|`g(52*%zvh>r=My8kd**?iUVH4p8`h%D%3_{zb2%g(rJdKF^@s$=rL4
+zwf6nJs_mO{`fI0-L%`qb*k8Ku9%g(LeE;Zjp3TM64Z7b7u$Rt|{N@R!0N*X`Q@#qH
+zLY>9lJ<@EQi2TSu{g>NVLB95J!5f&*bCwmv+zv#Qjh3tSnLYGNeTY8$wXfQOcNKp|
+z^y;Jmy?3ee8|tWJjB1~eJ|u7R9~z(P+j{=I?pE`w8FlW^wg8U)yhrEr7sjffJqqfA
+z`fnr#H~HBap#Q72&&3jaAH}>o2koNV&GY3SD~#E~DfAidQ&=YZ`?7_(bYlU=so?zq
+z+R??m7X33p`tIWN9^AL-zD`nqOdP<R@2RJ2u2r$VX<PsHhf0rGgE}`8rzqNFF|J8&
+znLY1idsvps{D<T_Q^&)2UYA|gr|`>IRx|cG@_dqiMA^SG&Coi~hMs&i`99jzKXg#l
+zgEmsm*q@0yu^y+OuMYO=vonq7=mOpNCHm%mmR%c9|D5X?<-ZSkS?Oq6tTWzMvg&`h
+zG)@r8y%+PHX9T}`Pw{|zIG4%q$ys%sHJ!R?@O{lF@5`VwXW-la1YMtm-+K;bM{RN`
+zKFbv$f6!!kL$7B>>vDD<<l1e9{Qr7}`H|;|vfrYRJ;59JLP{P0ukZSPuUhAuP#4H(
+zDaHn;tQyv_;ERP`qI}V(&rY8r`_%@SyOiVTCq+M)#`hFH@9+B5xxXvgFsQ7rqMQZV
+zP6Isq#vkH0^`$?;f5pRBi#$xfuWF=q#m`Ue(Y&?zpoW{2jHdahS9=x4JndarKI?In
+zuET3tH6K>>YCb)_!u?W?Jo2JoV=F%W_c{Fgb2<F`GdfoL>H9$w#MWtk`nlfhsIADe
+zv8upWT1Cux!-##hz&J3r!05!4_;X*@i_LyE7>G^y9mlm8o6{0p0i>lbxrJv3aqY%+
+z71G|1|Bw0%!%ID!*2P_g?^&lGU>qs4?BQ9gxiqD4nWO#t(0>~$4#Y&Et!sqO<J{T@
+zxq@?7cx&qXjTU?1L50h_bXl+FtykG!JIJ;RUgfAglr_!8QijJUP7=R`ygqn3mn+gB
+zxM;s+oMiJjiCIKmmo~toF)zQ+n|*_O*#6q%M4l=LugNff+TJ?+=WkIbkqfB%h%{MK
+zI8U%XD3ku+Jsr!pPsNW3YJ28@5p$nQA9&C#Z%oGtjHq~&&bL?VZ$BsBZcx6<ko&x%
+zKb|Ww0=af*$Mk8vKK`cX$FN?t_uhZ~aZ+c;jvDf>Yna4}5MK_lx4jGB3U-kA-cfgf
+zHHR|Z)ADIx8RtnfHB9C|_p#?>eHMh*W(q<`tMdl^Ee72!_J#xxtR!3;FR76Ibgkex
+zxk76)m-Y3D-x%XUd&jI1Ik-gZ6cT%gMdrv`w^9FrGOiteoP9s&3FWOZomZfa5!p-W
+zyHxk7zMff~t>WK#fr|Z*bYV?CPpneZa|YIUDf;0-<iWf=sIO7CIx|h=n|k!+fUX8K
+z)HBP#{vU}KS3|yvMqA53XMB*WeAPy)@6UY$-*8W48sZgGUYuj9@1i07O&H%03k}~?
+z6H}SkKIm`8L)h7;WGl+C(?OpdIrb|DReZ$<-|G`zKrlJcH$RrM4)CSK`mRwpYyQr-
+zs}SY+WAWnK^xU^F7e{^2C;XTZZM0O3znwx)zJ|Wst$B@;-{T(JWHCMUg5oR0??Ol`
+zF^^^o??t(=AofgVa=(6OmFy{;^F`G0gmo+|*$3+FQ4aPe>Zr?>IS~;)=+fk?pg)|`
+zkN#8b-#mx<vfwLWEk`xhcdP+d6RsA~hwdh3_CM9U#{3z{y#I(f`8w&E=HZjd-brvl
+zmp1kGuy3g=JCAWj%=1JyP>uNz(OC6pS21{w5~L}PV6P!&cvSEcTP4;5V^z5Eeb<Ky
+z7xVr|Yidk%q22tWtei`*4><o)6@5ZGe}VCwLQFW+gY=&CH5$SA<HBC!GCxFpKUA?S
+zs+$xKHc8*Jk1uQz-A|Hru0WmVpK+YfA8%~6y`fLdiF1(VN3?fE8y4gJy@G9CCq7WL
+z*=*at#=e!Y8~BcEMPnW~@4kn3Gj#hM-hEt?;@$lbg<Hq{X83!G{~EzPO3TM=^U?31
+zUvWPJee)&mJDNYnH^s!{CT}0`A7=-SJ`T?tE%NrnFS!IVBG+97pPLFxr6{ayYuB~)
+z^~@u`!C0vg>ewOY^(wxt5OqTxx_z#AlKh6ybn;|j;$GEZeyq++jOckOHb;&21%0Z2
+z8c~nMpFd9YWQI{E_$o1!PoK3-pE=HMc&fL@kr5KTiZ}jiV{gxsD39mhv%oWB{uj={
+z|Lj4<>w?E!g+AK&A?K8i2lM{H>?FUAr$fH<><%@riCf`|E<*n|r5<lo_HaD6cYHEW
+zJ&5(K+oR;=gdNrO*xoqM&q<*N^OL?>RrYQvd-@(e`{Tjv3M0Bx@z}N7`g!cijvOAF
+zWkk2hn7^oL#M*zV@n!rNme<*+*2|AMKeW8?zTQ8G_bl=RWyJ6ashbWe-fwroarVwH
+z;5z2GL1%CKPdd)7Lf>*OypJ^RBhCBAsQExSk8{F1_Bi_lr19$hxk2|&P{$HtJO2D3
+z`bYED4rWb2_Ye8|27E&v|8~@8hW07`y{_}D4;6-O^^OZtOCZmC#NKpWzuiS8_(a-W
+z5DS3V05hysdls(gxIQELfq43;Hqe01*3_(cYifqJyWn1gI<BA|>nhp?U_7Xw;+esh
+zRIK1p#DiXdy163?6Rle7yJ@e{EODlc6<^h7ThnuF9sY7a$JLbQtzsLgY&MpGS5W-m
+zTZ}`AZ>BdYJu!XCf2e8SkMN&7=G$UNH#fZ-&!`_ECeBjYZ|Indg&`H+hh<V<X4F77
+zXoGBkD}<{QX&(63fP5gaEl?hLNQGm)K(L5i<he8!v0!~N27{q+&y4U6vC$ztiGU87
+zT88=q@twjd7Ftm3yH?v%v`kDq`zeVR>|00o^@P>B5T2KPcs;%s>{ZCag13$OR7zbo
+z_3KFQ$*MK^Q~5tH^%MFcG0twZRpv&g@YgLV^41))2X$W>;br}{o{Wphm<qJHVjZy`
+zq>2+)D%{t|8Wn#E{qrE|SfOS2a7fj02J0wmr$y@cW`o8O$kF58r1@=U%$@#!?11X;
+zI`re+{kAa6Y-ikZ)1yDTa>wh>|5V@JfN$4meJ$exvfp3UeB<@RMbi8f>Uvk=xcFVq
+zX0rfzK!?8%uw7xzSF=5*pnWqBIPIVv*us%)4|v03d{g{u-DmeUD0*>@#)>9JbS>m6
+zlV@VIQ;qRla8*}<(a^Q)cj~NycpHlqj%}Lw7Cif>Uat|n59QccMDX%_Qz3_vUv--$
+zsR{Uox?}MxH&=>Z;5fIk7xfbVuR-Jg87u8N#)hHYV0finMU0DK$`<V4K9z=XcfUkg
+zI<!M*;nGB_I}DyKXvAHl^Gi{G#$BE$@d(KeQC~V+uq$1mgYwPMavo2<Xm$yC;xKI;
+zlwb13rRH0LUxH^op4Y2)#CUpHo>QNs^xSg<1D5|?p@i4TTjWAb=ZwfMTlv6M3pVea
+zw6_KwY9v0U==iGBjN^AQWM!U3)iA~*+Ppa6$m0#x>;sBls=~XN-t)O0IiD^%pkk0;
+z$$5^o*NAaz#udXwtYN{Bi0sO=NQ|Fq@}7lL1h2~|{1fEb1^C^Gd_Mp!<5}sSBqnA&
+z-GV)SA@cCy+ePG`Q2&KytNU8~9*eOZOaFyLYYOG0S{Sn(d=KrC$0igVCT{pdZ6i5G
+z*MBtX$g|sX4C;5Qh3>jEwmkb`tJp?Vi!B2Am<_bw*0yU7Zl&0gqKvoSRq-mQ(-?#F
+ztgr0jY-?1t^=&z8I6E~~WB;=c3J++Tb@W+oU(t?~v6893UZ!L?Ia`d>wx$-DJcpz0
+z0c0C|%eDKcwh{lLv?0ovLZhVpDC;8BEr$Ou)YDG?VzK#{p!Yw<9+Fth9AmVjz*vK|
+zwX%z6@9q8eb{9Ekb<#hd7N1$#iwyKb^}DKk#;X2}*r|cvmS-2s80H)M80o0PGuFmk
+z+-o?8p3!~zR#xdw-6;EKqFcBqy)G*;)YA0dnW*>XFKH|@wuf>zF){`J4EI-Xj^@<!
+zAE0SG>tj8MC3TGUKPVI1Glh>D)4Ut)#GLQKSTmz@+Q|7ztZ%VZ8n-&bG;jZt{jAOs
+zDT{KA^<X`+FDJ$DPWSl+p0hIMulB2TnafhcUB*VrX!PGa+#EYa_siG0U+Oy2?%`sL
+z>(I64oM-OW_>TcC^Rs`yt=mES<J`L9gOk~JUe}t;33`pZgZ^gy3sL{8<;?t|{<z4c
+z8snov$6zKcmHyE99mBL;=fs4vxu%Yg_#D&|-v6GW6BE!E^N?>1=EEk@omQt))I|_y
+zp6l6YO%3e_>Lc&|r}}<xU$&5O$+(WmU!BaeJv<}LN_YlnR^_{@Juf3~;(*-m8PG3&
+zO24ycb2VgM-}(1}F@Ld-KFFKx59<_m^chm_9Kk1Z5BaVw=eyf^{^ZR6urvSXh#m#J
+zclsFQ<HW;#6lDlM^{#3kb)%!X_a=Czif@TUpw2A|W$(jp;=i}l(6`W?Di&Hs+AU{K
+zgXaD<Idxj>)M-e*Z)o0*wx%3UpXTi*>algkkogIolc{(<;q^Kdk2g+_EqKU6OY6nY
+z)^^2jXkFzGbX?jNJ#TzD7|8*L7oj}?t`M%RdSBtW%I}Gli@D*<InI%fs-xhz==u%Q
+z^}7^(`<Ra3O`mc4+~nr#vKspHWf@Msx%F(ZRJ&QuMqS70$oFnt$9(hmOMh4CCL!I1
+zK4p_NC=L4Ze4S=3+It()a1DO;=4{VUy75k5b_HqeTkm9hh#|~**&t^ucW{0Se#vol
+z1H8<OkjpO6yy6ag!&m~p?j@GoW_ttiK@;i>tu54Hw+YUXlE0e69rg>4D=g}#@!j=|
+z{f75T!}LXMwU=^##s5DuP7mt9c{dK_F6>kHm-neMX5^Gng)*vg%J}+e@$@4ogMK;m
+zF?>H%AhzzaGJV-7t_rQ+jp2VQHtF!NLSrm`3kC=AbLy4t^=AY>FP5PXy?6iSJ#7I|
+z2>1ULB*eB>{5pfQ52cU2Avy!OV)U^it_U&S1aGP}HKCR~-+({9*Vw!kRag<g9vO>0
+z*;S76JL?DgWwU(7Jh=o3L#PAm$u&;AkOJAWR*9X5VJfU3FEKyEoUg6+aQfSQHU~Q-
+zqHL=JreKE%=9X!ku-A2RU79}ShQu6+r=Kzmv0*i}U$)p3b54{0BbL5Vwbx}K?WB6q
+zs}Xlj&P*^b|A=ox8Ve~V{@&uRkz9m4ToMaO`I)kATXp}jKT0$<0r{pyx<AP09vE%(
+z&`0I!oV140&8#{AUXQ-jSLNxmzX;|Sv4d+;e0M3+=y#M$cl!&B1g?*&<1-(lj=$G+
+zy!Hrnob)m3IBrNCC!&58AES=jK1Lny)^)t*2z4y}7<CK`sbf2&i6uU#j%rNZp}`m;
+zECcn}!1eWh-JxZ$j%H3C&wNB4nZx9<&pVLEwvWi;wZr6bKk{H-x9NPC$0(7v*Vx4V
+zQ+fgFPUaBXxRAc$TXkMX=g^EcVj!T*qw@4O-fftG?;g!l2YyGJ@t+?i&jqMoC9Z&1
+z*_AGxt#EdNGB2WHLrR}mVgpc5>^1MO&lCK>HC?Wpy3>Aq`nV38`LC%P@PR)jJdJoL
+zNyp~6QvCbZihjq{7XM|bVLZ-!h%ZOmLBEboJ^SXt?L1v$&d^4VxP3R(4frE|Mr>8B
+z67gd;E&8cv78*;0SEkPPG=26>y<z3w`+82zu@T>dJ%ktt;ZRKCzXvqN823ACN}t&H
+z4%5E8{C;Tv|CaKh%;zgp^K#ma`Vcdqd%CIm<SRq^<ky0g+F{QaGG?@2j<^eqO`ZZ{
+z$7zN!5&yjp_hs+Jvu0eiZZ%HZ^f)EZpGz@T94BvLt@v1p-CSIaSDRU6dt=yl6HOL)
+z!pDU_2rJBF>f#%(S9{231m{@U14`Q@ZY*_?R*9T-m@Q?KD346uC9#wj8aJigIsIEE
+zeyx`XJ(qYB!E%M|%s3IDnW<dbOkR*S@@?VKHs9Sg%II<Chm+o+L4VhF5Wjk7@VM<5
+zGHzZK6HLbK28<i)!m*P$bEr!xeN026MR%M_`z?&0VblmeMC_OI-1I53$P;$+{Yc1S
+zT$69doN>CMe{J#n*~!zPgL^e5?aQ%4*Bj5D-5L{^ZJ&*HbB=5<)L5SjBFnLU4)=V<
+zagI$LSdSj^OOe|wmx}8y7>(YxJM8lrM|fO^*zkE0Jj)XP|8d&dQ;+7;V?9}qHRr92
+zw?Vxo$NL8UUZZqi7Gvy|ohW1dNBR`xjP<KB)+6*enJaj#_!R{-_HFJMGY*0?rp|k3
+zO#i8E{-+KZ(>TYp#u?K_%kPY7wAJoCv#*EtaY-4M8|Xu^aWVRNN$gOXNB?WC$?Nls
+z!5{USygJXjmqoT$bAk8=&$`rHARcySpMTI8nOVP4itBwmclfufhVXBn&Ym`|<>p@c
+zSS9&>VV?Jm`n~KkDANQ_H$QYJjpshYeRFaw|2|WQdPPu|kDJfQhsmc1`Mlrj7r!O?
+z7%Zx7P4S#j{PfWO+xqb!tcQb`W1L&V8BYQHT5+H9@f{wKeL?KPomhO7VQWSkg2VHm
+z_Gda=84n+!jA28{kXU;;Wt=;-jH##WO|XnuD}9;dtc5s(cW0H2y3nZp{9`GrcX0j%
+zn(ha5{&SH(+m&Gcb%)8Hw)R<Nw^F3z7CQO=F;D(Z-Yn-!$lsrnf3AEmIcNR|Zc&bW
+z!1p8a%&&bv9+-cZ=Xt+Jzu$ksDSM-!H5H&WuI;agoIzSc-L~K}g65nlu{KIX_c->7
+z4%=_G%RYWI#;D@@p|XhDuL}etIi9Q_EognR>wV0<l{XKbdtG?8?B>Dy`A9iSC+2UX
+z?B%)iXSk+6g_^F67_uj)G))iab-a^)qS%jjYr1p7{=szT+B|e8py|$^zO3j@T6~by
+zUVholgZJ`hH73*7i2sxGt_JUZLwfUpq8%4tZ7u!KZ!E$^8uA35$3GaLA1CD*pQX<D
+zoOjCJJy_G_7$1xN<doNl$&^^1QTR0r6sD(~MHr7KhRB9o``mZSIS#ix*|iX3qx$qE
+z>C>R@(?Ce^KPTn%={veV9bA~0q3B|dU{1u7fB4(r{+uzWKbK2?`ZT`5O7<t}NjorN
+z76)!Vln%X$clW-p`s^%CZ)^YMA0#i=j4hBp^9^1T<4oOOV-v^O!36R(Cev1X)X=m}
+z|5hUXZJ<N5u0@-;hKwh>oOIM{5`X4%cvm1a`pGWmyQ6hE&UKV=%3g_if^n&gZnn3F
+zI_yZeELCN;j`W(XWeL$K+-A9HcMx8c85`MLCN{71TcD1Qaiz+e(!QbmeQkWzNFDP;
+z{6MEd4#0n||Km_ENgq?Z3%{4M@gd(2qfP+N|8<Sgvrpr-J@Dfp{a$PF?6f<KclYFZ
+zN8QJPfBKExCiaK-@E;d(e>OxqL~pprp%=<7wvf0ArAD-bI%(=;ZvC-?e-+D6j;vL3
+zWSVrbUB})Tj=tbIQ>ige@D)NDU%@p@>Ha35Plt=GQ=`RizpKCdOf+7?bKl(bd`3Q?
+z6m@P!T@O5@{9!{5KXrv#L#(qu0Xi1bYbdHP_9^p_u65NOnXWlJ&Nj4h-jIHK1ka*B
+z9!%FtjzHIra_CxE`BITq4V@3kA+&8X_ZiT(H#KeB_t(K|al#R3+x?RjZ6n@H%|Fz7
+zn}+pvFZ!(QpNd8W^}ObO5U$y5FGYS4^XSxA%xl`zac*CWb~5gOC%ig?xv%DRt&$n3
+z&*$1_UGJ1VSG6mk=W;;L<!doF6^&4PXn~HGuu6YJnsgr05Fe@hfSQM#tHgGtPKj}J
+z8M`TjHTsg+L96r7qLoI^hIjqOri>c@Qa%2mA>;49zdkKkuzJ5Ej?Xa|e~!f`nFBk2
+zbm$!T!;e1s9B^dLk241<hRlI$KEWI~DR&OMJ1__0=;M|H|NC=b^AYAi&(-<oKwHin
+zc<yR72TK3`@#nyb6-H0{JAUIi%mHWr2p_NZ5C4$;Bfj+T`-eZz{?U%~4JiAGtJVGy
+zFgEY;57|HNxcbojW7*Qd`$yXtRUglg`Yb&{eLQ*UQ@d2{XB(~_*v~ve>ht|P^|^9L
+zeGFY6?~wY;KSF)HdFnGu*Jp7~eY`{JGdE9t&Ky!7=3kO0{|QS6_}ejg-dE}O`!xpp
+zwbW}xlq})!<>?R9K5`=4QB#_7Fwm~mGQ^@AmG5Znjq0rPYd0!f*D)F&PGZm*N0Uz~
+z<Q{aMQ6g9z<r15@I*DgK|LGp%gwquUtej067blDK9=B|q$GT@6`Tx1Z4l5*|`Semn
+zGlu8Lr_@RO>_$~r=IJs02Fs*Qb-FyiIQfRQU8YR)Ypk0W7(ZvfUvvrd1ztQy(Lc}R
+zo$19|ZzS;@Y83BytBy-gU8Ean7<Y8~_zq=5tg*K~g=Z61ci6+U9`9J{m9*}TdWMP{
+zJ|4Y%e_V&%ymW{xfM*R$2h+<-HN6~WHf7vPOH-$^zqgmBCg`(pzm^SK%$agd*7>38
+zqgfo!NO>x({W=)8<sUZ;;CHx;Qo+1gYL1pMBfiRF{3hNsp833b%#PCE*G5O%w5#7M
+zdCZg81GUCz`y4$c{KjK?4Y$s-QI9L}M#pK}6JmrMFbDUiYrA*kcIv6nrswgW`j+Ez
+zbZZq_clnQfgXwzW2s*G|PExwdfR<m!4BkUlK|bB+6}dp^J686pJw&j)@SlD~)a8-y
+zy9e!M9LP@mPiP!q&dXz$4#+x3LDr$2zyvKLja)idMv8HN`K#Zk0D<Nn^A-HB{hQxd
+z@He%`Jn|R6u>lwP=$JlNs-W+Rsp5(gEA6d3x^M7_E65L%b~t=7_3?lI;h}N`?d;2S
+z8QjlygP+{3`Ev5)EVGJdS&ZMw^KkSZd3o^ajOiylx=;7#TY32OvcvG{1>k3oGUk<#
+zCXD}<(eqXg&+g=RIG#O-^m{eW{^So2<;zo=XaCg?^YiQrdelBSeV^YLyU#!9yz#a?
+z^wPRX(MySgz?d1ttKnH7t{{ETP1;hn+7Fp8V9jCfzH?ifNBdzOr~PZ`Ys)yBtA2Q>
+zj?FpCW8TA6`_rAs>vpa484X&p-+YTPuEc&Th`!HUujuUvO_%?YRelcq&L2|w+=A~j
+zInN95{C(<MbJ88qXHVDs@KD-HEZuhW)xmDR(TTQ)bqp2fT$7k&rMmqpri_jo1s=*P
+zHYbPn$?4jUwL<ra7qo3wo<0eqPdd>j;jlUr?Hqq4V{@j5&aspASsZBopgt-`AKj_@
+zXq4`wy*Yg`T=!AF^+WqM;>CR?&wAOFlgCjZ)$i_{Je_%YOrHMyot~GWJo(ZOJ%)bn
+z+UqwS#MOq2^YOEJ=Huj>2KM(U`S$;u_b2Du|Mh#bT=6r3A^c3`O^4@a0(tT)ze(|X
+zkwuE1@qnKR4B=;vTXZNtQ+U&0e#Ry70XyvdA7;C!y489N<|*&s4+h%Tl;`~c{hstJ
+zG8_ADY_@|*E_wxJ3u=toINIoO6-LRE-{ra~{xIveV~L8F=GVT(xfsm!7eTv<X}jm>
+zK>sUu{>V9<nvX>i`-yQT=X;LTJQ4jXocu@&ZoO&n`3Z3iZ@Fn;pLhJ!ju$`RYLAM;
+zJ74fo$zw3KA?vVZiSi}M=yRdl)qOIl_oc-*4XiKvFtaSD9wy`g>gi0u&tiOA#;R(v
+z8j<!(5B2siRt0fXTmI}fnlpZ5F|IJK1GM$%>dRJjDa>fvAG_YTAVt4N#!YpNil^_?
+z`rhGDb&k$5d6w?&?(1>Aq4XVGE3<AIy#AT)pL(sFebYdU2EkPQ9M&4XXFIv}VyM?b
+zT(rA*Fw$W^i1tu^-AP(yG+Mn$g@sJst(|dvC2n}5wFq?O<oEme9>LY)_+5`W@6>h~
+z)J;45@NqgV<AW~}n{H+ENnDC+#UD}K6R+ht+}G%P+VpP6y<;P~NAsd*pbgab#rI&p
+zXFq29vfSf$*5*H-;QsBtDgXJzd|RDy{NV`SzWamx-&W{vpFP62dk*uhwMX&LHTv9j
+z!Kx04vBR}CjOVU#tv>?KFg9FdSLt(C>JT^&&FeoNPaMP^v2{ot4x(O9{a`Rpd`u2c
+z%rn`~<vEi*Mz3q0e-4*;h@<VX`n)pa&@AfH3U8pV#YV%pvi}^k;6ud^(&sGqyI<ve
+zw_mTp3%dvNrO_ksr9~4JU;0OV{>^o;{0D=1MPj&w(@Ga{HVDB2^!<!Iich>2&xuPo
+z0Wyj2tqa8NX!6un!Ek3Di<wtjTgD2t3SPWjX7mKFB;I8-Nz6O&D371}i`LY^V$8Al
+ziWFmRQ)YShZ>X2HS)zXiza3ZH*R!jR@y`+xbKI+AjuVG;+ZcRbyUgPALh%<Pwqm>e
+zzDwcgsyMYOc8xc@{tWT+HJ|>1!T6A2+Vq0=c}vGoz?i!ViLc*iU-SLmo<(Ci#E#Z&
+zqD-R!b#L_H8y9`1+2>KDpOiBn+zOknkn5LgehJq56zvO<2Cq;#PSFAn+Yl0b)zoM7
+zdymBK9nhPCk1OOE&GAnDZL!Q`;vX9~ritUmvxf_BhWuEwO!P?fFAo}Px^_iDM~t<~
+zSEIJoHjUP<Y{-Q<6isbKy`4NDKNLFONPGz7;e0!}So`Ma@Bb#>%Xy&q13KSbcwB4B
+z`6d`r-!Oezmq%Zimo#ru5Ux)-b88spR-CvzD0MM*v?sRqWfx$>dJxQZ7R=>DP|hWw
+zPrLB05&uI;wdQLv*J|f<h`%lKdXsxjT<x>7iL*}GnQ_iL8LLHM7}9SlGG4`m=#K|M
+zyB3YBK6bpC`?>EJo6cyXT{Qh#TT_!)wc2N3{tm+&x`gxg!q(IQ&Rg**R_p3)%v-_O
+zpk0BfY-bumc*b+cwuJ2ppDXby=ID88v^{^!Fe6?}yNCzJX^bOtU532m0`W1Jo37S=
+zd(K>X@Skd~Ohz4+qI{Oe@;UFjP(ITY>Uq_s(+;aSH#Kx_5nnKZGFL9qbE{L@op$EN
+zf6=dsv2|*nx4kvXQvKt7TWhLN>oof3StsU6OpW`&kcy##aW8c8x|jZl$cJ{o&bLG7
+z>f|lTPS(k%8~ITFjXN=gjddAfYP9FvGtSY4e`xKm+t7N^9+!DCzt?oV=;uV+kEoeD
+zAC}3O-=ytDh7EbXm~oG=!Ycm+{uuukTWY=@z<mqm=2HCM{kGrOjw^<15iZ(tPNz;A
+zbLS_eGTwrTINgc$IK<v`SRQ_|=KGqT#JrE|y>8RgfxV74Mpcm_@tGWJ6xm`IhP{t|
+z0<=Xbr`-wmyK6t@em4X2p<v12{ca+jxt9#y?>>#WR7HG5?0G@#d4_Qb{YplS#on~g
+zxS<~phx=Zoic^ptx*v|v`=MiFHf#tVuxp4dkl;9iwiM0olf7_<-tX3Q4c_lsj<DZd
+z_<6P8B{eonV^^NNvTfj7+6GCvn3EBFI}H81J!h|c;`@X5%AZl^vRmzy=VPzD_AS3L
+z|1GswMs^RD_vhw2|Nq{=`F}v4|9h`Mot(1~p7F<3d>$F=s5%$hQ~UAG`+4qp+xG{L
+zZzrCu`2Ht9?|1B&=6=L^|E~A5gU<U;>iYQSA?Y&)&ikjoq55?u`nBav><w?Kes%hD
+zUY`DJ``*C%`J`u!bBEYG9&XLBPbcN+(=)#RKRauj_Yvnz_3sZpXL>0!xL?g9^lR%G
+z1LsT!cBy`yi2kj7L-i^9voN3hpEEzF>-iZOIzMB2erh`v_T`+9=*wJtl+5=IwMR*P
+zZ*X6h<@BX{@*BjYA2qa3OLU*QgQFx~8~bSN5I*})n$LFn^c3Bvf7E?in3MkR`q}q~
+z^z*DE^z-SupXsMIR@01Md~Yz#pbq-p*VP#8!&vOvrO)|x4W<`k^Nh!?@2c?#n8b=+
+zg?;Xny_EG_5(_H620UE@^&&1KKE`EC9j{`nQg^z^7XCT9NqnWnrZmxRV>~vJ50sep
+zwC}<=`Ndzb#xjj3yQn{XPw<}SCI5lGdsq5ofnZ<JM}X-L=s2>J0YW;q?d^++i9>8$
+z$m*fntU`&W)NWU?@5~n49j>#=jrJ}x)RZd6j(YHOhPF9V@n9+UQD$HID*EZO|H@Lo
+zBG@tEm+fsgbl9g7r@HnwtJcAmkEuP7et)HjwRVWHv&@#1Kh$6`E>=7B)W%xdiP0D|
+zV%FZCz8=R1)+;zs*Qa@=QGxF{zOF<?%C%kM!=}AXd;stlecE^a49xTL9R8{zwAM#^
+zPRjU&h3Xzxnb#0Ixe~WgoW4-bJ)+9j3HMjv|ND?P7|VvXIyDCP81xDEGxpCS#y~Jz
+z?S+w6d(z3Ok1o_Ygj#K*=F*ra{{o+LD*ivkI5zs(f8+PN60;m_H%ijM2<uoPu^QM$
+zkB&DdbX)rX{w|w+fHIH^^VS{i$hdX9L(Gv9p8cRrHtWvyMqIH%!5wETQq_mkIe)gR
+zK4bn)zjf+<W9&Dl-<*B|7v=sH>L0{<38Sv$5!~T58ID=0*(5RND)+CoiAOmWV;j&q
+zjwjH*D%=P4{bRUiY#+AGn{zgGA=<V|>`N{B=65@1bkXd99Ol=yfP6RFFnTH^{#vx(
+zF8lcLB^KnDQE|nGq*vg79r^B1lg)a*cBAsCve6FC!JyG(U%@iR#FNy==GNy&sLy}X
+z220QH>Q|Ml!?TYGjISGRwG*Gmya>11JXdF|_h5K)SwPMKHv7Ec`jMq(tFJWNS{5|g
+zx<Zh{JjJUs61T~ioj#LeP!v!97wgm(P5oW4B<|=Uf6sKTpHXI6Wmn)k_Gw8C{m0_T
+z$$uuk%yP?ZHiPG%>%`6+2f1oejD7+|bJL#qim>ZvE5;AgK583oRCpSHpsvyYJ=B;Z
+z#X0NCRok5MwyD@1cVDDzKa=z$js7m<4c`I2@($Y-TApH_?x|}s4an0Sx}z(=_~zqQ
+zWdh+fV&@ccsq@=~)r>Qa_FzwN7q?}+W}PkhMC)w#>{zB$`vD&<Yh|^>eku_fbcbCU
+zy2Bp%Im%Fs8xT*=e^14L75NM_hS&kb!T$5b+733sSaIlg9kbA}FJKJP3iA%Nu8cc;
+zzry>YP%oyf)VL<?B9Gp&*GOza`(jvcvy=2cXL(gT*9olzU0&&9J_hPvS=*XoJY(bf
+z`pnNnk69vq@CuJ&jlDphm4oa){GiaEJM3WO4)G%`H&@zDY}=#%)+gr?9`u*XjLQCa
+zn#|)wDbkl2=0d9!=_|F*@H50c)8m3gQdpwns6J-*^^8osD%cZT&qYqm5VYa;KBaSI
+zjIK)UtNJ1PxUxeq5#Cv>=!X;A#~p3U>{ao%k_YCheV4I_$A(*#d>3uZD17||g4Yo+
+z@9?=3Etrc92K&aFSZR9_w0BwQWB&!m)k7w{h&uHWS8d$GK0IN3f#nL7q^2_#75j#B
+z0%<%FyJ(ut{wkLkRcED2!z*p}*;z6#ly5ZSw>V>3uCb-O5?7{#J`5TQ;Cm(1iw9+n
+zt+qA&C}jNX0~-64SZ6Gs{^WN^4CKxBK{t8!dMo`e$G+Nl0OKe+m<igie)sqe`<}(U
+zJ&rz&>%kLQn@Qi$+p}%FmV+ZrnJ4g@d#uAF4aZ!kZ%zo~fVpTFfzQDBYPxxcoTX9+
+zT#EjXc+DXd@6Q!F3;l72#CLM3Z*afTW*=Z4rm7TAl_Z9%tR19vhhBk<+#r};6UTS>
+z&^DjPs5hoCf0W7cSr1|g4U`{EAy41=#05p&ug+;B=OEj79p=RTaUBZhTDMchyRg!^
+zbAmC<F@A2&2hIh~3DS?Tpk=`^4VecRJ6iVx@t}tGLj%tkP|kUI`uP_0^Wt#>{d}+J
+zUpLzlm)&^T)@L&=&;S>8jNpAa_TAir1q)K!3m74#!<_KfJ~<!p<*XgA`E`r(<?njc
+z`uQ9Bgk|K;W!fl=$*G@P*Y66{Z?`#6zp32IYIv5W>d7+{+GlZpd`#P4ovY{DLhS2T
+z>UVLx3xt)=?FR5^8{{0m-Xexq8+f$Wf5uqHo9*VDbhSuVo0G1V{=Z09CGRg{Ox5J0
+zXiIK8C_7Jn*>9A-<Tv*10H3?JFT3jxeq$T1M{w~h;=qf3V>hl^TnljRc)@QxfosN{
+zec2sdec9)51@PTyF#BEjeG2|l9-%DKw&Ma7_tMy5FI=qjw&V*%7O7FTZ_x=I_KP>F
+zwc>WpNcFmN<Pfe?j}^bmWyK#p3j6g@X8qv!%v<8gmMtod31bNHoN<;_WJk>+yE;*1
+zkKfxT@u;rd)7K;WB={QFB;r2Clhcvr)$18wDVjpL9@-d@7np(PJey%W3dTziJX^C?
+zXti77r$y<bPW+Y?Y9HNh&j^jSC*wQ%BC7N^IO#!~<`5HJ(yKl73X52k5u`V3itLHu
+zB6}+BiB9MIS#C)hId>eHnt(Kw)GNiYmSUENK1~xD?*w$uC1;6@@i5x<gkQqEs}mom
+zABc_}G_Iy3bsc^`7@gVAPjbFbe<#}$AEDyhUaV;;)3NVacE}hh^>&-*q}cyhS8H65
+z>9~IG1&z4k#)0`C(DQ#2<h7O@I@pNcjmLM`7jb+;>oc;?gh^9IW6ic_o;b<qnStMH
+z(El~gci3lc=DZxQ`k?}Q=YI=tcquWh3i*7Ro-fRgIu8%>`Yy`m?-=r`$jOVcUI?_^
+zbu9UU<<^t~%EyFqF>Rh^u^(yUB{6u;s-I;RHAN);$ZYDw-f-dn<;1xTV;+R2iVcD*
+z^0KUXm-%$&Vw4-fJBcGhT{r1=<Sbcp4>6tz@*)<~CcJlKk<V)xWCEUrLJBX^1%8@+
+zK|M~yoGCQX+^_Q7i0_AvU;TbHe$=^|q=}K`Rz2lf{QlsE!RH^h5T9A=toiLT`xVUr
+ztsUjmi}ksgcI2k2LpgXl)@Nv4zAy3WJM82QgZDSF1A}~Dr!in2jLZ}niD!LdF?XvY
+zGe;KdvtI`v@3TT<<H;-a83yZELYY4vO>Ne=G2f=0j?l{G*1`8wdSb~Szm${LIR_Q3
+zX1sa&Ne6%LH=4KmjrVT`jd~vR3Rg4jcJaRv*L++PpI7v4;_v*%&gT?8qmCH+Rq{A<
+zcbYmWVuVm0QW&Djw&k~dD&`b*#yk`4xZzNn6`omd|E=GU80-n<2OQA(v5lk;^!IoK
+zc?BGsAKEw&PXK%h^#(i}3q&{Bfr!E!7)}2ab>1&@j=tyg;q@4EtN|SY<M&Fu^CWp%
+z$`B){Lx>FM5HJQSj*@X0&>;}Ja36IB$hTX@VjlUCjpPxilM?(`V}Znnp<hc7eDYtl
+zj)D2?b94+fTE_so5UcI&na<c=R#e6Il32QHyULAQyK2IeXI6IwLbrle-fD-#v^!Xq
+za)(>2<VpE;4du^Zf132KEMwNmejk3>-hQRhHSp}R(TN>KeS1XVh?XYS+oAA!(KUFr
+zu3??%8dTh9uhuoZn90>OY!o?J;w9qyKy0wC!Iy&z^3`|LI{LyPx`y>bbPel$xCZGO
+zW@}x;54Eo0D)Mrmm9<7I`eB)6Lf-1vGeBOhG1hg}5;qO=W=XWwURu*?f9f-Xbq<X>
+zR-H@ZpgKB-Cq(C<p8dLC=dfPMM$z>HI)|9jIryBIi<(aSR_h%0Tz@#7!}@-mLwu0V
+zVdEg3gHOxXPX7&m=WsfQ^`dilq+jQ-UhpiH&SAY>YA)A2<9e-gSU*JPuzrxvfqWv{
+z=Cq4-_|Ly(dv43oInd^ZWz5RaIRtdfo`Qaz!}=rY9Gd%e4$E!U^Viqq>KsrfW4Zmc
+z9GydMeSY>grE_>}o0{j=w*NCahmF^LGM&S5sZXwR_~CW=bq)vqoL}eAH0Psr4&S)$
+z$U28}qyKw4hcCUGU+3_<xu0C;@Xm$*XLSx!{`v8A4*%-@<T{7r<{YYXxFdOZox}Q%
+z&^hd^J-p80^$Y*+)H%HVkB`<lJo}F$>l~KV9x4kz`<+8|4ohqQ|EqJjp!QIm!<-BM
+z-_<!(<>}{Zzw^JVb2z5^@H&UzeuU1!TYIR^VfuGIxz6F_e|&PC!{a~scshs9pM12=
+z;khlC;R(O7B%yQ;3xDG`qPQZzQ9OC<DZjA@*TE<KMi;IHxMn>0@pKOHkEwI`<#qpO
+zbq-~=(m7mc<<~hp_U-&Shw?xF-=lMQVu;Lo!(aYqI)~}k9jbG<`9OZ1!xyj1uXE@)
+zLFpX6_w7%nb2#z3Lv;@G4=A0(Ro_0c&f)m||GPSeNe4cj&f&rTq0V9G_(9M+tj^)B
+z?;Kg@@b10=ox_9wrp{s8caE%cc;esGIsEh8!|NRW^lpBg!?YnfhYgSWjnXIlh8gS2
+zF2L^@k1L%+75;~C?fJFe*!F8h-?lyGH)<aH_jL~S-^s6YnEzj&Oy}UGFBi(knp^Qu
+z<rdKo5Py+nd}~M<F8%JnuN1a{5oxm(wubmaj*_^j8XqhWX;=8-ku|<e*Y@@tJbkCw
+zprDQq@cnu`^BQaW@o)pkYxT91l?0PK`2pj^<9#chmE-?P{I7D($SH5)S)D!)r(U53
+z_5HFlHzI8rju+GH6#2E9yqDP8|3J!!i#~zxx9`siUd@d;&v}0x?nA^aL%*s#mu2{F
+zI@-SfQH-J4W{b}^`EryMHR@BpFzVfc`HcN`>a|M#Ia>RNaQ@FQ8dG~9OZm)3#@<fP
+z2yeBkLhHa=tpi_GoStnqxjkm1fj!1E-E8!ghZ_~{H`4xU&bDO8Yy=P1Xm?K7mVBsk
+zTQZ2>j_*bo^;wL)moYe9TF=2T3Ws8%5AuudsLd|BR{22C-n~59Xgh7@yYbg5Ok(<g
+zu<X6xR{dE?8(}^EDs8)c62}GKJI`qKb>I<&i^RTJK-^38job93hDYMX(<7^V9&@!|
+z2Na9W3OpEOP0A0^9yN{?;_usTk0>O)il)a3z2f+)_<QbQ#6M=d<#@>g?R%V?Pn*t%
+zvPU`S(XYQfKr1T3P5pAve6;b@bRX%q#OU5n{6C#mV&5RI($HFE6JE1Ea})CoM^mSu
+zexyOejhMEXUY^-4xHqqY|84IoWgI8;4fQP(QJxuUvL_^(?6F1@?RZ9=r}ZzNLR(JN
+z`}z6$8RZIZc&&Z#^p}%5HueLI+35|h?tex<qOs;`v6*K)4wJD2Admk;=;vybJ(o67
+zqYRWyyWvL_{tRRNbyw6h*-t6Eiu5mN6N#}3;M)DLTFX_5Hk)=q-cUt~SS5m=W(W-_
+z5xXtW3GhyLorXGiG^P}NVZN>Ve7Im%TWR7sT;}v8aY`WHh42k+hUa~I0ON#X;ozK@
+z=r==r!4*y-@lekH_F&%3@n^FBmhGYbaRR>a>TlTQvAB2qZ0JY2P|I#TI+o}6{;qt~
+zU(@lR&it#Q-Kg`!&x0n>cl?Qm{Kmbwmf)(?>sxfD5ydxh?pBH~*SvH9<@vP@o5JR=
+z2S3t=IyFeFbJ8!jwqe11N{_|7er+fCXM^#y7>lWm_{lEPF2hpv!JiO6SB&{nHsu+w
+zc_-2?NC(V%`(JDaeWf9z(*KEN2F#dXFmwHn4b`VAvDRJ1<Zs*T(bx0}7IC1qvFv4`
+zrS0}4Jgcm2ggnq_@7J*!jBuMhLF-LRA-4*aEo7!`GqXL9eO~d-)HRhF%Exu13$&WH
+zP^i}w`pg*XLAyfArr5No7fCa2LS=&fpqp)p2TvSN9oyzAty^P!R>qnTIl`PRF+@B%
+z=CZ^vqrC&lf9~3WHB5QDBHUmHQGO}p!_Eo2!3#B{J11;UK8N~pZI`0%tW!B-xk&8W
+z5dAboE@!>NxSvSB@^HMwEwS4d^y~6SGo3hduF#bh<H5MXD(-W++3G{Pe3c<w;np(N
+zkGNJW(<zVX8IzV}Ju>p;WI5L-`Lgg_@Z)pRuEbO~_T^%)5lWSt>&s3<-oa2qC>Y*)
+zj4M<(vMSVC#(tun>fq@wC98~9pTq{ow~R|j9jMWU`ovpOo|>ye!#d-|p|;ktvA9k^
+z|0n2YtaV(XcQ$s>uSc+H+2<G0MqKNBXPAxdQtUCU^ySQnqj@WM1L9>r<=G}SxIXft
+zW+dgANS*|F1?HAuZmtd|TG!IXJQUts#y$vyuotz(U4ck_nX7YUium6gqaSlzV$sx0
+z&J~m$=AM8ui_Bd@C+R;~6m1q?B;Q-u8&y3--+E%7ie+-GUT3|#>FXCwLdKp%y;)(X
+z&SJXqn)UXXeQI9OUavg79&2+BalQ(j_7;ZgLmbB{j2*{xEXHvxezQ-RH~Q1Ek^lCs
+znDgcei?p<j{+oDTAu;9~?I*Tw6Wg;lck7rm#tPAQJmTJ#qz>3AtK4ia)BS4~Va`8w
+z`Zn>=3F?@vk7=EJ0^bbR&z=-qr_J_w-Cqyu`;oXGtM!J*$sU2ZmRK)iOq<P8%;g!7
+zOQ}P|d@CzY)ML(F74n!Zp;EKHED&BTY3Zvdm^qjur3zOee|jCW5BrV}d`B_&o*9OU
+z#|@hC0Ofl6FEG|H+G+pl_?=0%ld(*yP~RD$#?;Rs?|uvIr5v{F8i(e$3C%zDYVui^
+z$odXMZnvppDZN_reQhGAO1pQSpY36Pa;>{3H>9h~<@Q9#bOq9%+eMz+g1p_>OB~-^
+zM_)#pai^YGBS~jmNUvoL8JD5&<`!3(n|-eES#BjqKP_<)*w2OH-?LfLK@KaSz91-T
+zQtiWE$yrAy>$vi?YaJ_jgLW8~m3-PTo@e>Hw2blQw+?OhYu`Gw-RpF_qx7HC?Izu$
+zzy4DtTczC%q~j)ab*k;Z$*Op1LWdaFL}Sl$O*5{V^vi`$cAbak6-e{2KGUJU+R#2`
+z9i2XA%uuJUKO0h4#wB7O(Vw4Z4}Q?nr%u@F;`fQ1?=}zlj<^}@OE1c#-pGr&$hs0s
+zUTo)kRo#AyJm^~)koY?bs4FgRqMftELzXxY=#QsG4={yuOz#h+5w%CqZ)m|Uz}s~C
+z4f3X)5BiM-xEB6Q>6@w_0I!PueZmzT3S%TVn{l2=dpx8MJWu4F$T?FAUh*^743)Ry
+zY3{r9Jw5K40sC>DI~lR{wmUdduwkA$eOGdr#P!_ZL;8SA=>kW2jrD_MpSj-}Ec>{E
+z^DrLkeT<h0p5BA8@f}27Zo%}NEAm#UxdHpwE3&t^9a<ME5&ved#)tBOE_#jSw(?t7
+zb)E&eR{ZOYW!AwSrQd%qn|<8*=KWsvjo9bwx$-yds~r0a->sMY7TxbRx_;_6w*OSg
+zwB#qAd#J<CMqWx6b%JLgmQYm1f1=+3_1_PICcJX>kiHaN27CwRf2m%>ChNLLot<$U
+z0^mRXsp5(yy^)4J<g>hym@U6Q;&K~hm_H4m;Y}q~(U@Ij#>yD4cWgYS*6XOahyDnR
+zS<UrCzW2&E>F@d|WmrBN$8-_{5A@AdIGf*`&c2EtRQ>l2;gL7Un9@f5Ir?pJUWZmP
+z=3$b&)AdZ-7EN6uyz&O|)#8{xar*CwT~SD#t>}$wmZkhtH)Qy3p4MHQ`DUNUAkG*~
+z#PhErKhC!qW=!;*rQiqImrtCYNP64A3x?e(hYoBwNI92rbg@pcw_{IoQMVO{HkNs#
+z@#3V!_?XAF%zIZL-bm~YUm(&@7L2r({ZZrc5I<Y6Ul^ZO^LK0`d513^bj~oA+huw_
+z2GHL|Sk22}LRX$nHd6o7KL=M@muVRS=^w4Yw;0=pG2b8M8g53J=UzQTPm6lGM4kt)
+z9Hp*dt<2T>MQRO^&XD%}coB66>+PlZ&wAd(_j;~frFDDY#Y?tlvu`-qolKWKsPNRt
+z-;Mo=-`IqC-qxf1@~{05MK{R5PdK|n#Tur}7`aVit8xtenkT1B<*urr|7!{B^ib)m
+zpjSLooSlAX!ZXQv;%hTI{nQDs7LQT7TH%KRHL5+-XMJ1rTg&a4i>O0+E$NRcUmnKb
+zdT7FH#7;{8UE(awO?Qayb)C&NKQi(a(WSX~#%0bCeXuJu)qNVvHxrp(9sgRAN?q>T
+zGeXN!j5+e;+kHKMK$}sYWYC-@JRkTy^3N;SKRmnfA5^g<pYlAD-0JW=7+dl(W4+Fp
+zHd=q~R%055><cF8@y-daCVfgz34Z+<o(W)IRPodzMunWQnUH@&$d57|&t>_I8++^>
+zdFW+<8tc@D5_f*N?U%XrjFfSwK39M9L(F;Hv#z&`%t&7am48OQQ+W;(Jobw8C4%X_
+zUG_ni@z-w-rpeyOay{Q6LpyVwew`@)G4XTan!p~4@!G`p#q>DFmfLTBljFB5N#EQ1
+zkoJ-ByOQKnJvC2f4wmea^ZDu=zM@Xf95>j38a3Y7lS}+uyQe>w{D$~DB3-0Je2BTH
+zKlN8tpC!2e)%e$vGh!Iia6{^m@z07)1Lwrq7+>nlPec7DzNz9T6$<|{KRH)oX~jgh
+zdBPig3Qth`fie#H=ke{Y<~%EPHY3YK$66X*hVfdCJ$JcXj^7b&L*dtR<%b_SbLH72
+zWkt^YhbBCmoTt+%Uf)WWnrrR1G$xt1X1(u0`q9(=_giY+cUHcd#B<vdYRh20rnxRU
+zE1yYLgqrNTh<hUEXR9DLt-)0X`E`}->0EOh_s$8sWF7@`<N@)$2EDHR>i`xS@1FxL
+zqAf?*SZhCn-!-B`!5l<hQHQ3RjTU`rSodG(dau#El*32$g4a4v$HToJ-*!4<hP6Wb
+zl!L~=S{dEHR+bS*3v1;yy-uD@5?74ldycN>4^Yk?CoiriU0xF9QTK9i(SW?H__$}2
+z6&RZi>ZkGkz#;F^kKrbp>tsit^1(GRSIL|0b<)=GY;3vxT%Rh}9V|&d)0Z8!wNGKn
+z{ArQGm|<G>A<sp=hrXL&4xEQ@pK@2#r>nxt?O)-$iT5g=Ve#FHAB)`OH^R6M#Qnx|
+zxE{eppUuuhhuFFZc5q~k=yfHgJ<swYg5^Bw{-Jm!k@%_+5Y8Ok=%+3+dhY)yOtHuS
+zrr3M)6ow}85$<0!1n(qbF*c*%(cG2i9Wljr->ERg_ILP=ogGRiN*PS-(`uA{*kdUi
+z93!z>WDab;k9#%V9WhblJQp%rDddQq@_PZXtKKk-%hN{GA{JxeQCbH_UEdo|V2{&!
+zX147Y*=)~njkT`vGz3$92hwrhY$X2wq9J@3@+G}$)VfvTc+`Zs$6cPLKj8dOhrMci
+z!fH7^o(zsV%L<we*3+lOlabF}X*G=Fd04&0INVMhSf5snP1+^)W~xmuWV6rnKKr|k
+zU%F#k*eFFGO_?^rXn1?{S&8e~K12K-@{SzeZC~U0zUX0+Pfx+zG+Mi`_e+c=;_`GF
+zr|b<yH`~NPBL-eL*YDbhufd+Yk+B?R88Q5<8QH1r9gjjL#7U{Tvcs-=y2B>FA2iox
+zIt43eu8I#rzu7j%CR=8qFCKsTYiiDInWFHij{dRWO7zb?ml0pZ_)?ua6mE%%8De=1
+zv&BdL{A&_ZqGsejsgE-^CXY7aXT6)vo-erldMuCqvtug~FWHxi*<47yaom&PUO$Y!
+zv~d;B#h5R+jEoIQyQ?jyaX!o?ul;~yi*;E@*$7e(#uzm3escgv=@p@G%64#v;IwZR
+zo$}u#CTW~8l)IVFwV~G3+Kj3j<Kfmum~KXjYtcP9?(y(E7-iL(t-dO^tA{u!g|&4S
+zaZr8{ZzaxuH}&3(dpRs;kGN^M+9QtBcvj5!P4Hvh+U3>+#vqI>v<mb*pkFJ$FVx>M
+zpS?(HE?4y`VXPcwYd7i_=37F0@qQGs1sEI7i|^mgW;gy_$GG@qPCu;D*o+V6JZsSy
+z>_5qQMhwR#o3O6Y2^E_aUs#HJ1J}Mgl)c_!%&EoBoC>YW?2$P&JI(n-++^xfr~Rfi
+zWd!f&;@qNsya;QgFrt0KethVh+N0&7Bh9H{p*sf6DXxd|aBHg39z3VUe#D$A3U8#2
+zZPYBJgX~J3(F4>?&`yyUDt{WG<`d&Qw_!egEvJ8W=FF#;<ZJ}rDV@B`C)$3LN-WjZ
+z)M!1QrlG7xi3Ln~XfEbcgWIF$awFyw<s^@>(F%xeRbs6Pwum?MGppU_>Ip<vTf?IF
+zSOL`KPqhkrr<69Kl-*I5GuKEvF3|JsWZHJ>eBAL%El=m~E$VSt548Oar+lYOSESu?
+zNAI)PCqA?Xef9?PF38E-(DSfd&qKyg{ga-DY5XQGz+<vzFJ&w*!69tceMAgYti_Fc
+z_1rAX>C>C_-1Ox<yGhSYBj?$7`D~+_o7*?4xw+(azp)Tk^mhLt@$~*XkN^7EZw%n+
+z{VmV?@HZTszS(KPA!RJnoAcv^@f>m2H}d0!5ohwHZyb7t&3By}{6;%2^3zVd7M9^T
+zLVU5O4pYvI4GQ;#X&(JX{#b*RNW<7cT)T|3<?d8^AL2;dpQnyohu+vKyR+t{WH455
+zmy`F5ud*ka^>#SC%C4wgWzPt&v>y-uG5J{NrQ{RFACpfd{+R5X`p0Bt^mdyzhGWCG
+zi>w|Bt%SU`5;DU|yCSjD4o6nnW_+a`sa<K$ii#~8=KD&!CbrUENZU+YV{uKuH62%!
+z@vV`UY20pC<M)Kn?e=`+w*dK4kHNa`U$5F%tL*}Kw&&MaL$!I@r_Oj+;i~VdLE9GA
+ztg?e>8~JY5`7!fp`JQ;4HTwIRL%t88AHtD3krP7TFL_2AHk<6q2!A)B&o-gXoAAF0
+zb>1Ylq+2g!jQ34g3$ukMeeB9-l2wo&Sr+jS&pu395#%!+c}xrs<ik8n<S{{iPy2u~
+z4)gsC)MXaFort<j#y3&iSK~f{`{}q}fcyElpN0DwxUa53nwloTdy}@Je|N0II>S}D
+zPVE5)9)bMw_5}(nSKDq=Cr19S8THvULGeN*E~5}K{u|r%{d;)V1fDOE^ZqgYJLsZJ
+ztbRXB8XJwLeb`gtcoz547H6eJeG2#C=Yxiv|9w;B()ISacebY7Uu?kmEw`th*_sNp
+z-I5B$TLrt8GR-h;=kEGaJpHXAMc*IKv2|rzmzHj}>s}p*F)aEbyo*iOF=vs-5A=J#
+zk}HWrS?I`-H|Tf7Y2*IH{EYBs`}b)@H+N^VkBiMM<halTb+-FDb-tvJl<o90o@YLC
+zdWZeU321YCrR8p0X+4Ph2XWtsy0Bk7CZ31cAJwR1>t6O#NbAz7i1*66)I?LR*t4aE
+zxzoM@H2S;xJ^71sbzR-jCeLJI4@8vQ@mC#N`C9ZZ`1J0{r>pVUjBmk{zhUb8R-Omw
+z-^+OJpntC-?)mA0m6rBIS6cKx2=>P{UTH1R<HmF{zB;D2>rJ))?-{T1`4;kAh4Oak
+z`?a{=p?@zS?&SD^GQP*NZT;>#(LJc&i?lwLzptT>M9w$g(&rYO7hc^L0rbTa98d9+
+z*lhRhRL{M5{ww|5i|6m_=OH|Y+*=qO*&((UuFy*B9sMqXchvDu%z4+X-?=Vp^4yJg
+z;hcAA{mzYdckp~6=iP4SyGxrq94DSJ>>D@Gmd^`L?@s$VjPbG@><t&{P|tJqh>GED
+zm>0=8wAd|#<1Sa2XTfu{jznw`i{0YS5Koph_w|^fL!2jmE*>3k?meyBAdO999nns1
+zVNP92Xrq;LKZ3ZdIrl}3Z<upmz`Z}`-lJ{pock=#baL)L#C<5|{yoO>&AERU_r&yh
+zA95Y<-LaL{U-4|8mdzlFOZ-SDeFpD#<=m%nzuoAtx8vD%!HGqku+}&Z4}q@!a#L?l
+zX*;Mzhhdz5&fIZx|7IBN$GTm2<KFv0U-n)UkihjEt{wC>#`RK#VSEb{x@MhWOuqo>
+z@$3;?U#UK4?zFk*%)jC5U%#>j_shXp-iQ%7uWRkUmg3&R)rD(6u7kK{;M#<139c4g
+z3ve~^tOu7#9Rse3xWc%`;=1v?ug_V8|BG=2y8E(GTwz>eA(L~j^jb<bKZ^bZi8|Y`
+z>g)jC(M~3iXtaZT4_Xqm8to9CSJbS=|3<qM&nrXx-)NWPd1Z7p_NPYM#5DoeL|l_`
+zMQ{=0K3vmiS4A7K|1*7~?V(*wU$$qg(P-D|7;S-Qy~6d2)Y-vkogJ#JPbG}?U7?yf
+zyR^2>F4ynN@xB7@iMJEh&n72SJ;RY^)TP<>qMl~$YSf|Go@mjAXhCwUPU}Zo7vT8}
+zT(fXRaaH4*kBfEnCh$#dvpwBvwoT+W0r?p<&GuOQuEKBDooDe8qgl>~9Nz1qh531}
+z`)~E@7$wDr#3-3(55y?B;(DWJe+%|lj?rP#e?2GtJfu$`eGAePi^(g`Jr-sE5!eU}
+zJmZ?iyZi9Xec&Y@#{0PQ-Zg1UdW5-E<PovYq<(bLRQedCj-o!6x+3H;kv2Dzwn|!$
+zS(l_uPOc4Q`NBi_E57S&^&e8kh#_T62*uWp)aB4lC$}8;n5V`5#|Xz{Z0SG4e94!i
+zZ9aT!yT>&^PK^2fD!!ZQz2N^|HKa}<rMId;ofz+Rla5uxHQ-6qi`~5F-B^y<VtFHL
+zZ2F6G?{}G-GJ#NCiZW41^ystGv`1rn$v<9|pSN`MZ%<{jg5At}i8rWi3BCILuk?G~
+zZ_IhWXr<p+6a$TDQMxsrr&MX(+6nqhMdCx?f4sKCM_D!yUELLoV0}hkM!#%L7l-Oo
+zWkzeNggDsI*1ck{5`Dow_(q@T(Y%nGS@!4iU?CH`v`Xv9D64f`mERV(s<y*sjIFWw
+z|F)Lb+OIlPPN6-UyBabZ+U3Q653V?VGbVDCj>p3KYy-U=R3FG?Cu)rGFl`j9&Gx;-
+z@4_A&G87JVY2q!6<x!SFTT#%PAZW_OFz8U2G;5n30F5d(8dGH<)fd4(iho|xRl9W$
+zZI4{F^wY!dk8v5bTZNZo-#BrVojBGPU8Un#*IJw(-7d6|>#TEylFw-OT#oj!onLYr
+z{qZfm#^(DRyXO)3#z`9p6F=&Bw6()N&29ACMu(6_^u}SOH+F~CWI9FvI$QkBhAF%1
+zbo<c0)Nv(7=ol4@H*j0j=#ey0CF7IdSP&W#H&Dl-AfNWFsL~tLK4H{VhsK-e(sQ8X
+zs{FAi?rm0j<6&sSW4B-};&O2C|LHQi3-R16opn&t|KrC$24VpU(j}mvQqm0~0xD7>
+z(mClE4I?%MDT#q}jV|eKCek^&28<pJBR1F=`|-W|{r9@vZvX7={eIv39*^gvi6nCn
+z@#kefg1drv$8J@3rFk;7upvytYY?Mn$dR}Ew%Ppsh31b@Z}yo<5ki-}?j5_2uO~y~
+zC{Bgk?w5<leh^eR+pZ<d@^Am9ZzzoTr&(wc>$IJc&2J|%_FFy`oR&<VuTsi;mx<<m
+z*B;=AFYoNnq^`UA!QJAkLWrVE=<lFBb_eECx5yiaSEkKwe=}FXdGw5&pNQ&yo32Tz
+zx0ZPh-6Q0cdnqi^{m{l73ot3e3-{<%kg|b~;lN!%y+eB@k)gvh16Iu^r+?eu5zNg4
+zyn|GfB{j=gB&o8A*>+y%(UdbSn9~0MI_BX~nF)z!Ei42?)w1SmjZ9?{|6kJGYfCz4
+zkk$(ijQ*a{jvcs^{^fVpAObzwukQ43v2FU-LS=9CVCT}CDxAt8`Tohw>$Cye-K}oY
+z_u1c=3kpjT!(E94G7O8Gfe_+(pdtK#mhg#}f1C4b^MdUTQ|grot6uuyt(e%L7)*xb
+zGvf-`v<LQW%|B2A7(jEZ)8Y$MIO+IRfODavf^Pcp*R=hMioNfLLC8in_Z-iC!rWdD
+z<St1r3(@=(+HQ}b{b(lk@2P_KujSK3=Gw=BvY${l`ZiP}7U*dg+>+#}On=Ff_7XzJ
+zJz+9FWy5}NrM)Psegc}|iogJz&zitwNzBz53eJZ-@s`5<$FCyYpt%~HIr^GIUckH_
+z7KY6TBiSsI7*~xfrVFnVtf75S8-McDc&B<^>W(Wz{&p4?faO~^l<P*Z*&E~+84RsJ
+zKV?_+C6AN;sk^0xX{_#9iSxM4mlzqF55|5~K`yT8*4tvez=OdQy+aYf+L9==JI@;|
+zqsZ|695ab1NRRMGA6N)TM|Nsn^uQonb!nnsB$vG>!zzO~$IFjjIxgkdx=|)g>42oI
+z8j-@@FZqo|>vx_yQMw;ocP{2P#^5cJ>ry9fX?TZu+~Wq0H-53BZY?(t|E+A)=X!4%
+z{64?FzT<0}4+QWt!XwcKT;=<y(*|BJ6%2)FOWUpDwvlT-lQ*)TTwtA$mmFD|b`4%a
+zo~AC$Wv$j3$J)pr6ltHtt_?J@Qyu$L0DO6m&E;5q-^(Z@&F0tJEM)f#G0)wY7yGn3
+z6R;v3fwLnDB-6Cy&|MxqVA4TmCxrYnp>IZy_5~O=TxRgzA?R9U9+P!W;J33nTf}ml
+z)Lc^<U%8OEuom^ok`cM#Z~3&RN%5UW>NQ=31=9UKpF<QgEd42bf+=Jj+TP4?B#UJB
+ztGWPX(7!JI;|xNNwY9i*DvM0ZlJa9I{p`MUUmaB~uA9`E@DiM}i!D296#U%|JRVzJ
+zYRg-01U8)6x3Lk9rQ{?k3)r6qxGzcB5mj<GhS+TaFvK<?-3pDQu?mPl3n%=c2QVX5
+zFcTqSRxtB$`8l(b`{yn-0ngXEYi`cO`&-k@rq>xZ?|WZ6n2rV`33aa2`?(K0-oFPc
+zIu`7HJ`noa?92jp__^TmVH{9ixv&!46&A3htFJyZNvoO?6+|??h91uV@tHx40{`&5
+z<9?p9b|ETARzrxM)swk`bZxVLHH{KQBIc;Hx?HFE>1^JonI><WRw&p9bltjoB4-+3
+zY(u+xX>DZ_$6CVffnzs*i51=)D|mvqi5qO1vUM_Zc#_&<izL-8!CqZ@yJSkuWEL^n
+z8`<V>Kk#|8TVtA9eE!R(>xu{FPjs^ayl;cry+;m!OK>7!Re1aRPZPaG(YL}b+U)PL
+zAB>&;sLJnG_-(D?ZrjzIdgChTa>d?6bH4UA1M>?O)cvJ{gj~A_rgHkWiS~5;;JqZG
+z{)Czx!mS21`@Mwe;tN$Bv`E+YBStU$eJ0ehw2mILc&($!nL5!d&o=j8M!)zpWp>h5
+zpW?HsIv>Jevt%J__Bd@s60s7o_vYEv=MM)95#2MlPZ!dXMQ|ew(m2auDR*Ej%<p7k
+z?d7h@md#>1<jTTS*W#*aECk^W9$WhJb&vgbdfX}UbQiR#dKKJs!q)}za;^UFBr@RQ
+zxFi`+M{iVHx6YDF^%(sGAzAXe5c)4Y@q%t_c5Zc7c>Zd7qitMuB%O<2%6Th2;ss-<
+z^r6V9zn_M`%WA*i_C-%!pa<J%<y%VuA>cJs%qq*}xl=8eun$Gm5>-P-I;S#S*x1hJ
+zmqCpr2hx(P@!KZ4vwOs?I7Fu)xJy=++lEc!JUca1XdNM!;?G!>C%dAa;-*?&r0ewt
+zj;KLD`S8j6$aX6f6%k-sG7Fu6C0A+NdLM`xcF*__uEek{^Y!Q-6|BuDmx={2&ARR+
+z&tFMY5wf><1`92k!D?z%^mI--ywzy42N$j1JHBCQ^8jWrwJq+@D6h6AFE}ej?LG0^
+zM@A;3OAsKZ=DyQ(7sY=$&mrGIo#{Zn0XQ0ubh@r?tt5AQ{rn_V(Lg?5J%2FmcH~&d
+zpUwLj7V``9ukq%-f|gU&D0lt!%L+(^oFF6;n;dF~7$m9q$$KVa9gTA4X~y^GLa+%D
+z(EabxoZm{RjlSqvEGRYo`zxV1^SvF=SWVD?m>@Hn11I$;w^SMr$}cC#UIL%Eshm1u
+z&})XA84Qng<&^`wp%-o&nNI{RzKqHhT=cW!edG7h%Er(<D1e196kaig{*#LKE~z93
+z=4pE1-FgM}&lsKPyac5t+m|n8uS;RaH?D9WS((EEw#7L)k$X)pZ+hNXv1bNYI1JF(
+zJ!zR_uY#>GjF04IASG2LBv<R?$0({z>ZGF|43ZRK$2f>?ugvAWo_8K>X-)-gVm$n?
+zeG5ZE$t|IKJeyq#dnAosMHYOS&UDFn`>p-G45>%Ri)oIkN8X4pRgaKwbll+q*pi?%
+z4(gL~)|0F_H(g`o8)?@BOUyc#cClu*#H8~CB(a{?q5c_P&!ez(m;9;pYd-LG=7ytM
+zx6dd8u&fxRkhh;s<4Qjs<zb0^vc9|^_gwa%we}y~7Zmx^iO&_MD5_$)DiZ*r&8;JW
+z13S2Vu?q3`{M)`h2wIZZ#bF3fG%wpYFfRaRa{jUdhZ}Ju_@7m6=TxajkV`+Mp5;&x
+zswmZqs0ubFvld~^s|Oy<MBE>IJykLA?C}l~#sg<;Zm*L%b7KFDdT=u7JsyL<-<Ees
+zzg~SWE9HbL*C;0%3p5+9Fv3q)arIuIk^Sw<-U;fR1+J`E?xbiaMRVO3TbH17aN{6j
+z(yPLULva<h*ArVW@Ne{jtqZR0S|J_ew)DAOSMGm;>$&M(YQvw#I#gf49Y`8GH-SQe
+zG*W-Vl@5+9%OwQgYpV)(rl;J$UJ5c6S=$z0{a!o#Nj+@%(|)-3Y^{<%!#@9HwZNL)
+zRq!Q+k9s*-k^vC(mnYEXrI#`jMY*7*VeJndzEQ8TNYHvz-FyXPX3OqjtXY{F?YoA8
+z@Qt-;p`=E7P?vyv?bgy?IPLg!^>}j1{ZxxRuG6~BCYFt1smN{@gpmxv_fsDHRaWJV
+zmoySM=<r*{G&315v((Ip0NoS!*%P)r{<$ddTGc_jW4C4BzjHbEq+luYZOM`Nu?+o@
+z=ufhSm%N7iw>SG6G}a_14Oj+M-8>f`;~za_)ATNya+{&7@0XTF_%H>6im|XPdFJJd
+zQO8B`nHYDPo%#{>ap!hITJ*_!ZGgQ7vY-9hJzKS@Ax1JH!9ghfK!*+rdneN*n>Ldc
+z^Y3gX>1g7=bezPd5$S>3sv?a7Kc7%+oVU7`_`MiyHt``RXtn0;wFDd6twJQvsi*s}
+z%YJDm5bc+A1x~nPLp`pmf7jmKl5lL2;Xf0JTBmwJuKQc{F3m~aQ~{N&6Z~x!VxwTy
+zV2L4rTJve`h5SKT`M|k}C!nBvv9R~>I9ad9#9B#~VaY#}9Os<NVOo4~e}Iw?px)U1
+z2hX~tX(c-+Y@Hf>_!MsPQhb?Bv+GyJchDQwr)b^ArJPoA<29!k=qj7rVDK$p;~lh*
+zS4XQI?>nOodb;%)XpEk(m*SQCwVeU4Dw+m99Nxunt)CrP9H)l)zjBEh6`KB__O|Qc
+zqvqGV%Iv&ce8e>A0sSd5Sb*3zrijCT^F4;S;WzG+wrlBY`PCYOr;R+TI`Ba0M%@SL
+zQX2mG!}XnzJ07iGs=dZA5i~RXmK1ySc>Fc~twgApNLC2OoXRC(vA17FNVevW#jGqe
+z;gI09$B%T6O_(|FBct#_&|LNjAsyyi*7~jb+H%Ja(dCYfU87$x@vSjvleks89Y&NJ
+z<03FfVcGlC2$K?(@_xko(3bDvv2{XUrfX8qz=c+B_j!wa?ii<F+dVhRst{&)+4+V8
+zR4i{~J%y`;l(2Z13l>Tom#63_!}v5m5>{B73<g9d*m<-t8od;rN|YN}aMC$kUM^vX
+zP1+}0Pm9FIo`!m-2nLBy94K1q&<Z@_D=(JcYY{j~Ie-URLnp-7o%7^a;dTwX9YD<-
+zc`?Py+Xd9#Q%)<OkG*AchdMSEmmzjVNmlX|X#YV!y)wKP&j2HWz~o7~IX*^(_~7u-
+zQR?i#VBSkge~?p;*Z8-Y)8XztYWEL>m=Qu-4txH5g<55FEOv!Hf!$8`eYZY;d<~Ul
+z7lscKZ4z9)wYw`}HsYUhvY2d?<H6p{&azl^EE9`br|6@Jxzkjscg=s!<^}17bISZg
+zt#WC%^w1HRU{g#ESOJ6i8IkM{D-pLXYgfXOT3<47Rt&<v-B;OJ@L<?zIh!>n@n7Zk
+zlr-Mk7c*Wj1{B}qiWRSfgw7l4bjGJAnVNS`SaZVILZt#h$l>H%d3qtC%{(=eAt0qE
+zm;qg8s^_EjQXrFea#`hq5&xFy)g9yP$6z@c6~n6R<)+3uPb%V$aX3Hr_W17TS7d_E
+z{HFIo%)bxIxa+&x+ES6z@NpfvpDjjE6uc*OeRBlc6k%JPS&HRkLThc%y^e?xC8Ux`
+zau4so3|rr~ZgnObhjsWEjC&EL3Y~@Nh1Q~{pmQ)iDkrM#Fzndi^_Tv2Cyilg_CW+(
+zW~*G%7PeH<($AE695y3w?Pn@eD;HUo!Qf=n&Fb|Zfq(7CXXw^_F(WdI?%rvJGU_1D
+zk*a{ewQK5A1F3nF-x8_$q-}jLa5vi(sWSY;>}i5?y@t01%mX$20jHF4Kn@!BT+eIK
+zENtP?Y(|9>H<#O8x*O&l;k;M1#2}~-1f|-lu*S7SDiI_RFkQ>$Oec0N!h|t9VRo)e
+zcX<{08Lr`u5@Juib8u4@_E21=mQGgw+fy7Ud$O_~$yYHwB_kc!cKr_A=iRn(215iw
+zytr*u$q8u~2Eq;<ijtVr<D(KlA6g%ezs-NZUT_6nm289J)3b2*8>$v^hQ0ND@+E~l
+zo|Vzt8C41Vn}z5N)a;z{S4-^Er~k#BEv?c>0fXfLf$21FLz=sfS7EY8kT8?KBZ{63
+z0<&X6#X$}p=?-7dM|7Lj9UmNqTa6bWf40GoK=YJ8k!1n%^+}h)IJ?a@ZFCg=NzKx3
+z-je%-!`X>gwcbGk>!-V1IoR<TU)pK&H!~86h3)0(`07jaNjzjT=9p*u7+#bKS$Vxd
+z`k2K2?t-P}O*nunAcFRO#ruR*-p>Vdg#l3sWlH)xjU!%EypOMdD*Mt%hjMy8$0{|^
+zBxLt0Z{31;&aRap4?jkEGUXL9(chPfS*V}d5&e>Y;Dq%(8)t?J2{xJSQK73)uq6E>
+zDeT_rEkOAr#ye-Zhh_~%D<l1&+`)x<bi-arSUP>4$(WPh`Bi9JS51+ITe&&>WxHaf
+zV)Vj{9(sFMTM3W1U7WGPgZeG-c;UsFk%e?k$28Yl?$ar^6nakbsm-qF90FkVXX_v@
+zijDIvX+ok}SVQZyJgNBopSwgpY&J)5KHe1%^DL;?d>9GLs_7_*YNo#!0}ncg&(+d;
+z_n7))E4_u<agj_TKRl(}%~P&R;iUqdEc!g|e@VcR8!~AD0D<|sY~gQlBNtZS=|bF$
+z{T#j9lQp7ny9A<v68jQ{|K%PD+sDt{!Yc@caY}(`*ZU(FDsT{!i+}q&+|*iM_CkuG
+zKF7NOa<whl{<V;hoZS3nKycw^3iFoo3!d`Qbmfs~o-}LTi_Vg@o0>mm&z_vy@65l@
+z(JtU15z1Hth}g2stHfL?TV8iaRd&~FfK~p2Us~p#u)}4~>VAO1K)SBds)~%S^uYIa
+zwd39G5Wo?gX*S}$y-nfUEJC4OY30w^Geow@-mk3X5dP&<Ncz=!SJ9tPmP0o0M5~_+
+zT=|NZjYb+-#{bFRIQIX3u4M>IlB78ePJfvC=aQ{k5Gs7A8<K!nQre3*&4k#tZ3k(X
+zj6`3A4y<wn$aA$PyojjRI;Da<B2IqIJ<^j#XJvBM=oCb^j8xIcl)JRFS+v@_=XZhZ
+z=otZ#wNk0F&RS_m0`e0vcp3K?sWKmR=+V-<YCt<L*9NO{o%!YHAGpO<GVu}q*gLqh
+zj7w^Ik19z@pXX~HfLG^GZE2LDVwJKYRYCIL_4fB-Ko2!(HIai@e+$8criyOy7q?3{
+zpBKFs{hQHVoi<G`3~0zPAbC>JCYSb?ij9{0aP}Lk)w|C|q|uoPx3)ERQ7y!Yr<^yS
+zY&v?o5-tXLIvv4WyDXBIakwxY(w5JB>4vj$$#_4cXuJhISaXefjJNa1&1_L9^KWk%
+z(_YLygY?k;;9F8h6<;6mJAor!&@NrR<R}%1D$Ncm?;7}PXmfD`|C9Dq@n<UDKhiNJ
+zq%7oOJZKRQPmkJi|C{MX1i-YZJXACwnLn@EjR3!x#w9SP^dVaXb`@Vr;KZRAV0f7v
+z`{6&Oo+6!HK@h}oM51(17;j-xUP+m1r-~OV^)nW0gw4(;ZAi<1$0am2x9>=JE&JZ4
+zcipGonq4|k;H>v<T8<mh5W&WRh`kYt>|L$+-R>ZyqH#?dJr&G>=RSMUX(eBfY|o12
+z7`^@c`RpTKYpWV&;#>AF3#TGiMV8>!Y)_sj1V!{l+v(k^RxVYlt{iVms0jOf=w*=q
+zvw=Ak8M4!vcNx&Q-om%9?u^+<LzBV<!70Bk0w{YpzJnDi{{me;F%V?hjk@a)awy{%
+z!7H5dE&OW5W({fL@C@YTJNVcU3~Z8AXfyLSAc1`F+g$#npiX~<72z^Lif;cq0+WNv
+zEykTiI<rs}B}OdIXlSy!939|ZID3hK8Mk=rN{Db(Kva4lsJ(NEeOoIzH#u%H<3nl0
+z&v7E%J*V$`%uDU)Co4^xc^u3%?AqVf?yo3ukT}^@d;3Hf^=u=V5sQa9Z0}4!*FQe*
+z)Dv+F&z#g006ob#&%I9)EkV&OS{+oT9QYi2pC7Qs@;4lULj8lbcpAbFrf4<xgkrps
+zqf@kstj3*J3@q0H%}P?+Q7->B)6-nSQMMh@1;q8+Wx(gam1xm7*4hM0<bPM3E;!v+
+z2ajFfnW!*>9*%8mCRZHme?O$Rg)?Iueof-g9n!>I@>{I~?{Yg~44+*A4BolRX{ilb
+z{uU`Swza{%kC>MveWLKfE3N`xtqhifC>_661JH7;Ug%C%FN;g@lCb*ET{}})UWMo4
+z4vxW7?IB=ZeTBN=K%NFIY%2w}%UAbcQOa$N9;S=<x-!QuxU<h#P^IwT`Z;ly*6veV
+zAo@y6wa2QySn|!Lp_!FW6hf?NX<r!dzxtF(Xua&W@(;~C33>4q7{|S)8nvY!2D+)z
+zHzt|%vSSWhgL`Cij+$jRmYx7?ZT)Kv-BW-<<>cSk|H?ir`;Wi4CTW?oj8kP`_!Ohi
+z-l<`(;5AcT3HuAAnkO(EcJlIRG81lHQu;*HG&U@^+!>Ah|J2p?^UY@Aq^7!W;Z3D`
+z56f_`Vi>G29{7d;N&#$<L!syF?x-~|k85qp>($Bg9_98+re|;=X}HBl6-^Qc&$Sky
+z2fdWNH$U*_a%*rG5tnI%mM}*5y5HHvp`_s=&&%;8*rYMI*|;4nK!q^DR28c>RuKpt
+zJRzlDiHUIw+DT%zAvq^p(N0|0KWd@1IQsRM=?v2TbcPhB4hj2z0{L#vcg@~MES32~
+z8?WdFn&CnL`RBC2@3Q08<P12zydx*$O*NV~nIk^*!gs1lH9cMO#mZH**76xtU&Kke
+zDsM8c^1LM~S1t8wj5arN4*g(oiXS_8+i{VS7M*g|&c1uq;VTrw{VaLPI%m%?w<DlT
+zTj5wUr*jUd6D=Etk1O~8PO7Cbblj}ad~}vwaim!V<YyC3l7b5U#d+gi^5vg|E9TC)
+zJ=jte0nf|_%mwJr9P04=EFp5jg;;0WPA+>sUs5d_3TyT{y<vN~K2?ZGu=0N{uiX+5
+z;mo|zhQ2NHW%s<pUGK+;o|M;AUDSG0M{k48s}esyf3YaW)$OQ`!#BfjNTb}>sy4%C
+z%-Pxl(Y31|k6uf>Fiv++1l-RVEWHWHFrQ8QQsVQ7EY>RJ5g2~BQ;8DfjxxH#)G&0c
+zlDbFVzQp78DSlD&-1$0VgbDtPQ3jKKRsXP&2@C$lbf3gZKrq*~q<dMJA%d3e*q?<k
+z9|QcAp-n^gQ$4-zigMUa=9f>ohqSJ_=<#Es^%@mPX6Z<z&S=xnXLJ>>-J$M#c_g58
+zXLW(cghXfw*$QnKnM%%g9mpLNM)!f%txxAz#jC6r>nMsjEp0=bXPQ%jzbY1u<dmUd
+z`k7s~QnOA~gsD1o63%Ov-tL=`<1<NWo6=UXP0zbJ7I+V*K%JQwg4BGu^4D2ZCb_(6
+zZ}-svm`}*MOW`-6jCVdBKO(ChcjhZL<fR-}@+QuXM8%|?q-4YZ=t#<~>6?LREV2Rp
+zm3Kf+B>QCEJq42vDX-9ghS_f@i-uf8D<+}d{MPP;<!O=Jt1yy@Lhs=mxKl<i!`(Ef
+zj_ob-tuOrBLh<)8b9boPyD3~cI!?%pN9Lri;IZ(cv=IPJhyT}V#*aCPKh)^#`w#nJ
+z<gBSr;k(#-<|TD$g?Tg25jutQ^`PV=DogO^gFK3d8?QQTt2Hj0|HUWgdfJ2MxgTuy
+z2qW3`nxhW|4rq+Ucg&NvXOkkUT&NLui>?DZg6e?|R|6XXmS}hMaDd#zuJrqcxEt}e
+znv<kmKALGhZT;Hw=gnFRuTfAT`&k&=_?cC*pv`-=U?9Co!aq!r3hQ64LY`0~ox&W-
+zRRW^*?I{^NtiJj8L5toaK{qGs;`-fVL(Ka6I|uupm@o8snDT7WgGiZ{+a>e1+e~+^
+zGC-r5b~ysjUC(C&?#lMzdVctcE!5jFAzd0sT9xR1`j96*oCI@<dCgD4_{ewtX2H{M
+zDV60M{+3LaD>g^`*0<@7YzZL(t`{aW-?MV9zsok6`H}dkmmv|r)(yE15{g#ORWTrf
+zZP)850_NQ4n=W2}+-K-3wsys@o8aDea8!MUWM<l;-L&CR4^>xTt>DKsYyC*y1Yk9d
+zCUyq+$CVbcm5!#`MZ0bOaV4A|D4e-RBgEP)$@#(DihVZLHNRAqhDK6S8{CuuT#SgB
+zl|n;NYw?rS6fwlj=(%b1d0u4m-NTmWlxCqOe~7}MJA1;@=4}!zN~TR4H{sgD4E9+k
+z$V%(_siKSh3a4sgL-e3;080QnYNB@nD1J}D?k)ltX~?1tE;5ZQQyBZ!q@J%v@%;|@
+zKYsE3P7ZSq#9L`Wc=!Cm2^02dL2oO)nIc%wRSw_<?U`@%_%jyg<<UhA)ki{u%K6^4
+ze6qJ66+dW;5X;oaH21FU5VoKBB_Ag}6$mXuwCeAQ2x@ruz!p4>&%RTRC#jNuFk4MD
+z_`|k9p5&;FURtlQ6VWhr8T(S-q`bvIim3Qn^rQWEa6oTcI;=zAJc~-C5&~M|Ph8Fi
+zI7Nx-<#AtC-;#ZG02qjtovi2dOz*Osw=Fs8Z`wZ066lhZd9By2$@>rd7YnkVvHqIK
+zFwpQY;5C~aRvT)kMN+$RO6jsF?Uj5)zAn7e(3CVOZWW#A{=;)UpG=Qw&0tl0v#^+F
+z^J+EfDO6u%b8huCEii*s)0<8qvo(=O&AB;eO>jG6R-BBh3M_&o0b{PHx`<;0*Qd1_
+zn-nwS1)p{G8tM~{12s-$(fKnqt9~Zo%`~}B8JsKGzuMSs#nB4u{e{l2i$odRa?iQx
+zk$uyBJwUd`rS6&Z9-Y%5qHa07PCq)M?A$~Pcyw<j(ClO?T74fXns@_Ecs{SWUidf{
+z%`WAh?Dyy-JrHB)arJj08&+eoUgOj3WEz^$b~NXaJ7zDjcKohBAE0jBz?zb_`6|tH
+z{_D9kQn*X(!E4jko4ra!h(N*{o6f5**-ace4EFV#(S`gU!u$LKxS}=4hjr!GQ|uq!
+zgTZz~mm9X&@r^xk_me!edg9&xv;2sOY|1YXJ9}3(4x&2Y-McgYF+pVpxe<GYC9v&@
+zA*J^M5*Fg%0+PDxxS(+BBfxN?`Ewq_{r0#%w75aOc5p-M6T%M71DP)@yzw-n^~Yoa
+zv_`uP3MwhqB0c^To0L8@*>dj-?WoX}FW0PX_iTnHT;u*>CQMe!Xg&^a*t7x|c&Gx{
+zM?la|8quG&DmBwf_GzQo^W-wBhL~l!sF`<$U#Z;M@g1`o5KjVszy&yEnOaQlGUNd@
+z9P625+y8T)WW^Wg24T#HPJ$!F03)%DbICJo$Nn-J^pWPJ4c5Dck&B!kjDQ(dzj4M-
+z391x$35Ia`T%auNp|xKsnQAOpYk2x|9#lEzkVjHvmB8OjVwn#h^W<z+2-jZfYh<(z
+zN}G*r+NRq&oHdo0SNn7yqF!^RASYrk5s6My<o(i;JIVEgZs=g&Zsv5QBlefXDvRuo
+zs^ao+p3Hx2M~s)5(PC4Z2bD;b-<#qQWye5MZ8ya3+}_%Cgf#_xWXYusG|?}$^n#t(
+zf2|yKIJzpeb@+8CrO=Cc$mmdc)ar=%Tp}h$v=bAA{%cXEsn<tpMDP?wH;w;MW!{Nk
+zEUD@^PSrEuUORucnP+TGu|4%-fL}GZ;*rU^9pdcFU$_79hoL4pwv*jN-rto{p`*QC
+z?zL0ko7J}vWI@?tSqY7AJ+~d6W;#7$`(uC|*o;XvDi`dT5QKgK+r+rC_p#=BW+iCg
+zS8Q_?0x^LLy){#BOO+0)B5AuXbr%BZkjzfCxi1F$dqc&>ljAg<o1j_7>^(0Mbp$2^
+z`#+ExGUnLES>V|NaYR|BnhGT&wv^a?sjQ<{-(;H-!PGmuFDEf745T0gmYCmA`1z1z
+zF;w<I;`A(joA6;h!A0TIs@d-bD?T#XI4SeVxkIeg102q(rFU5BSZbZtkVnqx*O*9n
+zE#oQVrR{3FDXoahjN|oUdAl*~eu7QKvcWfQHyKTgj@Yc3wZ&ih6$QI<Hd!8&6dg{@
+zb*#UgjFj8heh~%q2MAq!d2%2=b-}bR3n+5XTBDD#c|k@s(%8!po;z+YI9A0GuJ&kD
+zJXdx5bRa}G-^NstI4mZ8=NbIo4$$ok*-5jU`4GnQidm^){Nz~@L)w<vNdvLx`(ek{
+zT-)M$A>DRki)@6Cxo^GA)fp=_Afw7V$WX<CFC*vViJ3{(#&1MF3B)84Bg=tsS=}}o
+z*_5}-XXJ^N{SqUbwAGkov_J~QGp83IBs69)WNl13ASC+}i2tuH`Y*E$2mhMx-(n+T
+zlI6Kr%P}Mt<e6VMNy=#K@^|{l2bfUp)@)Xbsg6g^=iap3#YBJuNM<P(dyH$InFNpc
+zR&)R*=Gzh^dwsA?8TRr{6XK-kvP1rwy0QwajQ38r^e9!<Dj$3dq-r*;#J5}Xg>Nk1
+z=A{B3@Ckr@k*`tUN1rtk=U-@!O81GCPJ90lV{oiO?hgf1@9zsJF<MGw6F=N;xd96C
+zfOVY6#OWe>;&@;a+m`L0d-C~1*N0`*^P%hwAJKyZqufyZjBz5mHBU&|1$LY(dziF?
+ztDE6vCe?FXNkrs^;^20JaVX9_IE8!D{?Lugvj2TPlL0Cs4d;XAYh*O9#?rB^DF~7(
+z9C4<;D;EiwOL8Ch*6ay7PK(i5!pk0(xGe$uPTGah#Qp1))OX~U>_b1L(@q)6OllA5
+zAo}A$S`oUDZH1C7@X&gRB&e2ODNRtl+b@(YPe9}gR<3}dUi&r*z}Q7j)Yszt)#VVb
+zGCu{;hX#U_cP?QfRg|I-f5CQm!`A?#7+b`byA`cZ7Y{|$A0GI~GTJGjyu@EMPfpv@
+z>+h#XL9~3*z$@F8y>aZ-hTVzO)s#Ky7cXG|>G=U^GMXZzoM6#8@y%K<4ux!|{GLtW
+z)zu-!$C?Ufv}H7+Uym2wulkSK;J}jvAwIUk14rEY$T0Q?o-$lcWhuj^d3`RU@y1lq
+z;cCkluvwzdLfUg~=#8eT*+$VQX;SrUB<iFObLzQj@UDioqdnzsGK=J&3La`Y|H-_r
+z#}cJ}8g#PppvbD@5Q}!Zv`vGTJ0&v{p&U7@vwp)8A|oeKc~z@WDX7r<O#0U8_d#70
+zGSEiFK>FHwYpG5K!fR1}+9&DRpk>0&{@nq0Ms&Xa=EuP&DI<T`WYSufnRgyKl&CKz
+zm_wD*`l#eJS#uGW0X@0B>BPe>`g3u-S5B8~<UmU54%+uPs9W~LUDHH<T!%*Rj-c+R
+z1*aaZ;eDRdj4oBD5aWQ4r&>l&=1)Z^&I-!wjh+fFItv|yRD3;hxnI)jF*|iWU5wC`
+z3+WntKGI%8?{%QlI%}qT`RCMES&z)ftkMY-f;j)Ol8`vjz!u(ej=RFVF#`b81ku!{
+z;V<h(IoqB8>fiIS*iaI54q_=In2x-#E3pvorl{HGfHsXD|Ab^3@S@il0Ih_G=m^8C
+zHTh~&&t@3J>$SI(wcFC1IbgB%r<=F_Ld|P-ee%s9bT{zhkO6Pmb@-m^0{(G{)yYEM
+z*nMbF*}q)>*4ZBfJZtT5@vPt3YQ?*U({g55=Cn5tTJ@QkfoN1kp}FU$6?_&%k!<}b
+zUR0Y(Ed`r|Spv7Ne3ut=pLhS^j3}&iVqTL}QF_(Gz62yg;eP#7`*J0<%aGIt*U-#O
+zALfKq5jB<^JVBB4B1)@d^|KqlZHz0+?hBzQj%pHoVU#+;<y&RR*X>P>PEOaPmh;5e
+z80g?fuCn&;jNU?C8HFMT_dTeC)Oz=Nq$#5hE1?spY*yF=BZ0y$!fn-y`VecIvAH07
+zXeaZf97WTKyEh;5NRZ2h^2l+0#aRrpwkD0Y8$n=7MVk#U>)iV(@#<-MXuU2Fn_2A6
+znDmu}1|NT3M%P(Z?~X><?lK`wFa{hiMlc^axnIh&I`?(k^BMYq)2omLq?}ZM#GL?o
+zc{dcsZ*^?{m-o3>kIaDSB#K0jG)pTazW3uoeq?u8^eSZ4fX!@OaV&MNNh|1GUQV{l
+zI#q15*%D@K^**rhjtK72)*K<{X!@b5jJt0k2+w~_^rNk9*igZhlr7G6k;}RFx)<bY
+z56d5P7Dcv>CJlps6LGzr<cDw^xC6LAcuY7fbi<;8l(4AabMOr5-<46C7Q^=oED8{^
+z2N#LK>iCj~Uq-HE{QItqZpah&4K8q~sv;cCEW`#tGk<muw=Bj=T4FO6z9hBFHCjzy
+zpJjJ>NhflR;KOXcBlczz;;;h(!b950ds|3wRFH%Gp#<A)xv+q%wfzp61KCS9e<vL2
+zitVy5gH$8u^A!hgAkUm5j`<xiE~+jC!AJjh95e|%=n(YSKm}=TU2Vyo|8Bd$Ez8)j
+zfv8|jxKX)A??aL!)z#n<bSX&Bn-xT5Iwn?0PI5hr#Vx0`T%nLb-G}p|=n|EnIt|AK
+zqRO^yXN)%`w{uZPbDY-*o)zc3%1HJOzBsBIE>|m@O{|F$GvNfRvhEJms2`YZ_#Q5~
+zrw%CXIn<UT0JR>NQq|SkoJF`#bw%NqO3_^E(4SQRlW-$GjQd@|Itm!^r*+{%(Fu8A
+z#DiuUGcHUQ7;kfG=HWFUA#b|J?EN*YS$Ym`S)yFA6D~SvkWY1z{blbL`gx%p^0oKY
+z<>dbPlCDlt&Jw)xgqg1D=P%AEr=>m#%O#AgV3`IrO+1?Qw;BK0o;w4sJm%uc<Wl1q
+zw*g*XHrM2M+92AbdY&sx>6Ltso9V|E>$(F2O`v}r1wNB9^;P@a>lCHk{Rf#^=r!OY
+z@|f+RjhEwZ=KZK6Qc!og*j7Kotmu8Az204Nk21v8WJGP&Tk8EB=XBKb(+c3Ar!1Wf
+z6x4|G;VWU}KBjqyv?Ewk1s_ThEms{Z?O;e&LaLY*ktIu1O~ms*L<qHx>+NGF&?V>f
+zUHHv~tbn2420=I-c?r!4Ax8)6LXGMASC*moq?dp7$Y#{BM(Uc#N9rrao~OoGI2uD#
+z+B_wupCH7xL^@6wVI?5Wk7j->=zCj|PRt9l?(=PIAJ)2pFL<yTy=Dbp3Tau)kLdlr
+zX+{n<RY^2I+;{v)Hnur9$2R}Zj!D^17~hdDc8x8!E@sLd{k`=-<BYi=dzFREO4GK+
+zPGQK0Wj*-Tig;$1FJ(hNsPFdNAoAJ4s^qao;61J1^15L7Gq?f|JRw8KhjS?Z=QTV+
+zU=+<1IN51+%XEdr$qCl>dmXP_Qfx7tWSLc%n;~Dd-(OkFq)RL5GBkP}mLJKVtl8pp
+z)-KQb5ZGWqzAm^SqVmj%(=NAck7xdN1d`dgLqffNx`{hVi{=>g0evERtk~YA93x!6
+zhSY`n4(sB`s6Ee7$3+s_-e!Lto1hNgUCD3unavqx@vXCuUXTn3|Aom}ME&w!UB<k4
+zNa_iV?0aR@J@<s9Q6(s=G{P9BG@gtP?OBdLeW7-|DjR8Qz`>;Fpt%;Ng(HFHGtjfj
+zC9}@z#x-&SSB_6jo@zGBNwZF9(IY(g6tdP7wd9Z1W%WEDUg5KS?t+6Irblkh;ZfWZ
+z48eyHi^%|-dTFH3v5C~K-hN`e3T$uQlg+bWU^C3?9wqpu6_gOZ7T831>ME@0{Q>?G
+zBHDNdKZBVQ_ee+n(TbIue({Q#`PQKcjUc0<4Ap={ppu8{JaZX>VXRKPN}wc1*(*T|
+z-~Oj-OZC=f1`af=4)x7dry|Q~SlXYZVB(nXDy{y|!0p;<pIaPr<VF9SsI%5>5}$23
+z`1yxxm%KegWq9>!e`YT1eO%-UX?D~$%}Yb!hFK(jPF7-tMKvW^FYWKl;`__W3EKS>
+zlecD*pWO`x-07$7oYa0@oX_9Ry-BQF;%4JPE;~8&xwJp2eTk$4I`M5hM^Ij&ADd_%
+zFsr8U-q{K9UD#(b78KF`)~h8^AABZ4lk1eN+~s_~+eDEyh}oe}HS?Cjyv+2!h8S|$
+z6&Vo~pSm)~yJ+rP*}j<)U(D$8KH1bKFj}jnl<JidJ}?2!sh!-nN3!|pPa@MVLOk2Y
+zrWm;b<v-S{87E5p_G-wZHBvVqWs$99)aN`vYK30UQqqRix@g`2PJAQJ;eWZgk{RHj
+z@>-)zox0aEzAqFQk<leYE$AN?lppM78tb-2&LZk<8F^6qLBzO#hb)zf@mx8aV@2%n
+z9no32iT}mPS7hZIK#b{>QyQzh=F0KciA@!>S!x`lYSN-GN6Etb7Yg+6?1S>!onuVM
+z2N|<zoaSJ9ta!*5W?a~w_?tmvG5Y-0`-R4rWVV_wh<qqum3M4`!G7P#J_qq)HR~!K
+zt32DTV#kcmknnZ*g~HoNyodPGcuTwbJ@`<Van+S7?FjL;8bM=uwgl(@VIJtSv>0hS
+zN7V8+u(QR~9EuZ!v-`c-vK3Hl<C%h#13Zt~-L)XTO3fJ@QzPQrhz3tc`-_cV!;kU5
+zYhT*d&ad<Ks{s_e)E|G!(5-IBVrj!U@pje-AD`t#S>isjvB@^Vbu1=az%(T}PYb3S
+zjtx+bN%qVh$9{zl&7H{}IaK4WfZi9VoLcQ`kCC>W<#gDQoZkVCV0OCA>hMIGZtIKH
+zwR-nP1TLMc=P2LRqmYBwJHNG~FuG(BU&F|*yvf>gJIU<)n<sZXuMR_ZnTc1$yef;y
+zUBEq>-9%Bvi}fENS&J*@)(4Mk5!tM`7kJ^{sL#@OMk$WIl8tc>76R7Q#|di+U72<n
+zv;7Q{x3=|NB6(ZQdi}DTHC()C22_LP$4)WV8s~2NXn2Z6@;-Hm$M8%i9qzg`Y@4<y
+z(7wD*PqkG=X<BhajI1wOzBt+gb7JX_KculA?%seTA1^95!vk%IcH=WuD=EeO+*>xo
+zLr>0L#JW80t@caniY}*HigLSwEe|pNR0Gc}>G@gZ%bC~jYlf|X0+z{KqnvoF1!K>h
+zPa3Hrb0};q-p`R+R2T{|I_OxMhgMV{++p=R{A((uyXxnmLnYa{cLd@bq`-gsE$&0T
+zD?(#sw(t$XfSg&|%U^Hfec2K`W8+h<X|&bCg!c_o)pHL-ZT&64hu-X*72@O-@7zB}
+z2vKPS8+#}Hp1KdX4w=`{Ek3Q@ty`(XhMd$=v7wcWj6#n2&i_h;^{N`nYv#!1I;t@9
+z-#T>;TK;PMtoezmz|wb&e<b!!q!dupP~lzM3m*Cqq=--kBpp=O-8B*n+E>8!mlqVY
+zJFj|+p<kjmZt9M_9%c>?sHp0YpFh|)_*?x+H&G2R@5y(to02`)`Y}mLN;BnJ74X!Q
+zT>@4@rN@A^Ru(ZW0>;`4?0-qBzW8b+7H8$nWnyP$CLSMTr7ROi5QBOlI@{!e_Viz{
+zhtis9&Uq<}NA=Z3tPmcp$^OCZR^RdxqD*AkfZbl-efKHKAge%*3oK4I{j6uxP~EIb
+zqV=(=U%pusHgc!odW^`l&?1t>tisjUA=}d{yB_UmySK|-epJ_tfDUY*9DdB?z0~d0
+zw;_1INxoFBY+(uYJp#&%8_P~CGF|_`GF`KbF|OR>RN))(3)3@;3}1<Rr$PizTQm7G
+zf-qiTZ*W95;AOHq@Rg(G40?6@0eEpn=SO?lsN~&&kOxkxs4nz(uhwD@Iso*9nHkGV
+z>Rc982Hw>4p4FYN0NpvSeu{VI6dJG6;0d}ijvxYk^ZLA2ZB^d@a~Qbhp%BuHWn2=Q
+z!|<nA`PhTBIuRZ49)C?K=fIc6AV-`ws>QYiLbeoia4xp^cz&s#MVRR3=UCczHO~9%
+zApZNolje3c<~>^VWZw4TT1XK$+q?>PpQezPHNFfWlPkc+6EatU&~6?;xD7cxvko%X
+z{Vg6_ph3=``a`;LXeuRaG+&Im!guHcAK^1zAIce(#-?3G#gH~e^UwHR#b<^OE7C1D
+z?FxdtbukRvgG-j`st`@pc9FmIY*yvJo6d$K@V?ykj-OZQC2OH4Kdsn<K*`hc82Fnu
+zgUyGsW;cD86EDK69+p)JmK^H1mj7KFOT5s;r?p^)dH*Sxz49`h(8fNTjPT&JT?!ZT
+zDCzdCEN#o&-UVquW}*+5rX*jGFj_#wm1YU(S|(u1tIKOS?MP8*>4d?RFSu`WIf&eU
+z&}2d=wM29-EX(g{&+Y~n%uZDd`%vH~hty#LvcR~FGP}yQI`x$CV%8i7>^Q00(X&!m
+zB^;G?K2ur`Rfe;^CO^o)h+0*&zxN<(`DUD23TC^p76ZHfi}Rfh@7GnV>pMXtf_Fay
+zKAek&H2tXCR9t+qJI+?`q!8ema7f{qk>231DdU4CYGAUdiMOnV-$rkQkUsksI3+_N
+zQ$DvRg4xQ3!z!q4$7pJ3iKri<y3Gf*0KaR6&G9WfRF(O9L|?uQ;F7sz!J^zb8%p3g
+zYN4ZdqVA8_>q<p!r(amWUOd$Dyi#oagx)*U*_s&v8~06Nr$GU7xXp!{kz7ys*B!9?
+z$gR$1)Y1)vUKZx%954b;D8r0`gG%>jl~nMA3Rf+XHurvS?k7nPa9kS$@q{j*Rh2+~
+z7BoSgSJyS3FA(D&Ggw6DI~b65^^qANcghmc*dPm#5`iMXX+1u6QaG*505FbW=P`5H
+zs={lp5(351+7_B<e3HCNc)0O^NB;~lVcN8m1CiYK2DUQ*SfdIw9+{vF`?NIpwzyXy
+zi*YUxF<U<d2TozRjbQ&Zw*1o<c|gs@tWBLCn?EihZOqdYlrv9XxV~4-Kqc(=YlP>^
+zuJaUAWoI6oREJ)UKVXut<AYs#jBi;OnC2>ufKaK(nNCqodZBXqs<<(75d>@G;!YRX
+z9iHtory5PhUezQ>U~#g&rjfIKajJHz#s?B!uF;eroO>(sySIsts%h5gFUl5=^y3c{
+zO$<tYDc$Y)sF!w)#e@T$=0j{~0;<!c3IMEL6dU9_h0N19>>rA(MwwI)hAN1;q0GP7
+z0?vfajJrP}ry%uPe@xo(74u6zMB@z{&wiO-HLta#KL23pa`yl^UF$D2yIW#YhiTF7
+zx8&i^?68Px@Z_Mz)CLDcVwZmOOh&K}-04AFnnLrSR4*dE8}f|LP83h4x&rh`jRUx1
+zFb&(lsBHY`lFBYzW9Xw<z@7bPoA+_wG@Wuclu?x?9aRGdFyGPG_)xKeuRjiQse7^~
+z&+@M}ZKDY6T2=iM6Obuh8$x8t+qOn>hjKOiGHr@xV9@89AtEmBi&TBIQT4{VjR@+|
+zS!wDDiqkE#>oVz@#4B7eHrx~{4?7L-xq8d)jb98fnz>i~NyzCf?bjX37IwX9{ipJY
+zrhpsY@Qo$!mjwS_T~CvwE=N7q2}D;*+*SG5)CJc$4U}&^_0D3U>$+P1&=oOdoXZCB
+zgYdmdV!Uod^;4mml5Mn(TTPGoo|M+uS25baAkUybn#V_e`1HZ<61UwdjXED}!1f78
+z7xGn}ivp<Hyv9sH>3QH6E5bKK*(A8aV*li$p}bm;@xJcGUgew_+q~GMq20)afiHW6
+zi~2;N?Olq?y+;c!$1j$JmX6G!$CF)$k5h`U3rRv);E*|=T+N7mq5p@AXG`BQXr$G;
+zlR2k3wvZm>svYFbFZ$2rfp$g?a!J3Drne!T?)mc@oS}Y^1p+WCm!-BmfDag(-odc`
+zLg9=6zC7dA0gNz49(K-(j|sztK$+DS3g1yOgOpKc+S$Y;I;L0Cs&>V{&V-(ramV#8
+ziMwIH%Q<_)a5U~qq~{2~lRc&V2pmgK`*~LlIg%cEu?KM<*c~`&7ex~@Pg<!qTTyA~
+zHVHJbUG|VlL!nk~yR#OZu^oh*h~t5m%U<MD#-WU)F0|=5xxM-@KbB=B>hl)wZG=7=
+zMK>flk6=GhP6%?QZi3}Ld4!~~!cVo+jn*|~v!@tgJk%9ovhCRcoNw_9Gcx1AJ)y}t
+zSLY@^=*BPLH;tw^ZRcls16C~mB|Ubfw=eaGa~G+4wI=@6N}qn<C#ATA>-R{lh{^t!
+zE&2KhZIfDHti>LgMK5CMDUfc1QET~Uz#N;E#AGtZV#@c!p6IXgJ;Ub(QsioZ$#M64
+zzgP$gv(INpc|A8K3GAzWU;_7WJ`Xy<c_?8TKAMf$((b#D?4}KbQS{e*!Zf^_PYdmx
+zNP^{mtA^aG?{n)o7V=oMw%8ZeXzQy#-=xh~+wI-8SS%~5=Dkk7;_oN@^boo&-+EmI
+z@Uu@VeWMQeCA7@gDaYbmTS6U0#D2I&Lh!Nd%K=Su&U!zQy8b>o-8Pf}!EXWmI6}83
+z{qY0Pe?<O(HM;9-MuosxwB%w<NGqWQob<2d-bf2mAFt0$E^5WwmF&zan>&cm+ZBUK
+zhF<A^FS&D_vWajp+1*Q^cHoCy>wDK20s0cUuZQ_Jzn=ylI-77t?6V!|C_D{7Swjf1
+zH^6;T>@5f>z{CaWNa%z#9&-u8$_Q#+m36uQuIcf?S95?uJuWfdtL&k1xbQ_HhINBa
+zIB)GJTtI|p^Y7+%C{(J_+4m~>7E<LrilBNPmEOu`W6B#Hqt|J1Y#8WI7kPy1O}p%{
+zI8J{3cI7YMvTS(@e=Fro$zubaX8$WMpCBDbJ|2oT%cBtxxt`H|!8<dTK+WusvA^JM
+z92lL>Qru81V<K(5{h#-$r7vta&NK!K3P;B31N?GJM7n9?&+5OWyYK$jZX}7%g@Y!G
+z)TB{+55cWKe-#sm6eb;L>)v^)SYTsJw|9es{(QP`Cvs*s*43rk{!BvmykO@pO4hRW
+zdDMUB1^=Dd?p&J)Ev@xe#}A1VpsK!fO2Rc$5tHigA1c>miUBOMPjs98V6pl-@0=~C
+z-eu95EJ#E80JDhz0^fG8oR5o+!rzH1!(tIZJ#GVbF%&-K`Qwq9)9myUG@?ltVT<**
+zF3l<nbkF6>+xTz{8P2~fTDAST*A&IVWY^oksjQ-?og|=!cx2T6jCYuG$zT1nrUMIp
+zoj^gkuRe2LAY54}p{j79Yl(jbQ8A8K^cit)`AEDh(UA8Mf9$qEW5c>r;f>9Fa=6Vg
+zvfwj1>S|*^w!$5*xF_`WkV304@RUp?X!Lf^y8>g@H;Xr|bC+A*4@I~D2BhhP9UyQ~
+zJOfWk6)T5>hYs7vKKXY;k=(oGO#?P;tv1=`*@2qZ4s5B=jub3&9;w5?6!xRh!5#=5
+zUlh=2c~xs-tdGg_H)Gk~&29(8u59Img;yC~wg|o>3c`yjLNSJ5$vmpY#LUU|syoNC
+zUCneB8rj0>dUaW7a*h}8UL%<5(tG79tup_qHqn!K=wGIBSQ7WWJ<!XK1NHTOWQ#8?
+z$4QzQ{{VGq%Fo#d)ENJ0>QXZ3IFas+?uhNZIfi|>)ug;AxzXXZBYYcJGS+PWN1E&Y
+zR^xEj!CFdBZ4G7qk3~26<`FFS^jx`HX*l(BJ?dNk3RhP=<hYY%2H%zAxlc9?(p__B
+ze+W?>_$A;k_mq1syG3?ptsm+*9Q}v41ZSg;9*#Q1dcM(X%kkr%X?!xhDMw{DlmHkR
+z(5zr*DR5y4*W5N2`Sc$`we^M6ny8^7mm#B!vE_OE_yHY`wzjiZIVHe}&4fC{v0FbX
+zd+->Q=2fH-UfX1^?>r=Lh5l@<4~r`}d)v+yB+mrU;TcSR<&;%OIih&iAM+b5r9L-P
+z`{OICOc~C#!{p(YyGw&%Z#QNj3s>)d;h*YNzIA+|Hr2rOr%k|5USRe6Ym@&1juBz2
+z#mG}e9>miDZ8nUTVMy29%h3R+7rlbqb5j;kaq=hf>Era;zyix_3Hz!Rs=*vauPn#t
+zIih>xRIv{u#l{Cw@8e?E*KyyW*RBWkcW#}`;+P9IX3(B==9%Sk-Cz?4^F%ES;Y9&T
+zB%UUohK(lHuJoFI)>nm3e>*=Zn#c?JHocHK!gOb?vj1c+BD_}nZu{)>=6;WQFE!~%
+zf@5F8vHvYk-ZB~)WL&vvB46X(R$EJ%bzF0v!q?2xcS$@!V#BkL_z~T6hothP&6ji<
+zg9sgc@JPOt-H44P#hoK?k40r^KV&2&kv%OQvt_Lz<I#4ss3%k<k(Hhg4mKO84h%Ga
+zoV#(eWv9D_zC=5`=zYhS54HmI*I$B|om%24UazIx%Pc|+Fpvw`M$X9?UzFw5D2+=C
+zRfLRG<X>Du3Mu<q29NtmQitq=JS220$y5G90Uclh!vWlvATj6wNi;DOw3M`qo8BH^
+zCoDgL?2S%#5&-N&JS0ust6AMbigN%v%PQ2wV?O(8mXg)A+!!S9#Q*{Wzg2>t=Aoyu
+z&Y+@ZUd5P}qfOa!c<hg>ejJgqRY3<r8kXG;5O6EH%HDf@79d>Meoe1PeZrej+MzVB
+z@qCB|G3}%kif)B)AqW(p9n!MJ&V+QHJjKN&$uo6U5^nxEra~f0-Q<&kU?GV$^2c-O
+z0O!_eMbvha_$d-hB86c|3ZCZeQg#F)Ns~1h*n~0_&XbEcxghO|-qR_Ac1yXxn})0(
+z?E+L_7or9;-WD1GozfXPs2UA9kAU=FhXT|YYq4m*=i|fECuceScm)#_v2X*ZxqUqW
+z`=+5+_N|}FH8Mc1<J%&5#jrmI^+?*quKS^aaeDs;azKs09O1o%_gCt;%-j#L9`f#o
+zJF>n(`rI9-=I@{FQ$AV$B&MkT={n``{qx&X4(*?Z@ZG0AM*rN8bfb9wdzkvhKVf~_
+zb$y>WLVfSZQ{QFyZuG~f?^2{Y?g-<x81FyL@yek`r8((x>Cv~4_9R^<)18}#zSrpX
+z8>i&&pZTA#e`e|aS$u^4nVYA7&ct^o<n&KX)uHt9ygc;LobvJL<9Uank6~Tk89DVm
+zZwP%n>6HBRv3SY=eN22VfBywOVgDUGQ`M*P2>s{D(|>=(cc0DaKl3p4*>mP6tIsZ7
+zAL9u1`BT-Q^?4rOjmfD`{A5+1^KTx^KP8S(pY!v~*GF`Hc2^D5=lmh#_1}5w^B-pp
+z=AVp{51n5vIqi4m*M>7c-u#LV`L;j)x2|tzPJJtf^xth&`RCUU@a^%s4?oU&|2EQp
+zCTG3pqaO>A=ENh=mj!r#tbRZ8$A|WR^_c_l?&q5d*Niw>Bc~|rFu@b7Q5e>4jaNmy
+z&10U-_DHN_o}&tOa}%+f`|+#%Viz1QaY4QyJ{EPa?f>!_wYX?k*K${f-SSI~>u+q#
+zRBHREqR0vgB@!o|GSqAx+wIw`!sHUW4TW2qbo^(DIr`@_2V#L-0XgrVI^Kf#8{iu2
+z5*r1ye}$FalI^J|?y!q^_C#Cp&<e|=bXkH=dIELI<FtK1Y=u>fbbg7&*h<{cZeL`B
+z#93gBIKNR{;;xOC_-f;x0*$M6M^0U7Q$&0GBIBZTX|yRN{!_*e6h5`!&%Gk{Zp6m+
+zkB3}aOnqpbMQk~*#D?8$U-fh1A#9fVKe9#T{TABSCBAkY_D^)%-Oe5#veLg2?D!QH
+z`ZMFLZLq29VVre|1tB^>v>ET&_H*&wHQ(#)iNEJF7LPWJuJ`f(FMZh<u0?fy*?o9E
+z8NZux&BE1hgGoEeaBJ%OZ>c(=j%AK4>AM9p&0Hlq<09HUD7%Cea)zPx2DHWTM7E|&
+zLv415{#!<i<qFqZK{J-}D0{I<UUO4M($O~3j9GmC*KGFWePW{+L4QJyedo5e3LUFw
+zXpA1l@F~lQ;p4>S$rr=Nr~mVP1?nj_r22oU{{J2QKdAp3`hVC-uW{zMP8g%h!GE9h
+zgwok{e*UeyjPP3$<Jvv3;Vy5m;jTsc+%lIRi=3FB-Y@#{C!_ZZzO3j~<L3@f@2~pY
+zq4f1D`0kWkdSB@u#G|wfp;`Q9>X!#-axQ)C|1J-0&82ta@O=mBddcSwPg^JIy0)RN
+zx!)d-Z%_Rg{8%~CokrVDo}X6KrAvN%`1mw0eL25wru~5Lu=LhI{wE)S9=|`ixBGK=
+zAIy#69o|g5f)r_wtExU-3K}}|=0oe{!TNDxZ##B_tmjYi)RX=a``+~p(&v07&;Gk}
+z@{#oc+wp$f5!$m2@5dkE{S$b9dQN{|aP#5&`@4tf@5*=8o?(<JTkM104*Qa~iEFQ7
+zh#E$n)m~O)pK@QX;M>#ga`%J|yS-_&!qyC}mc8U1Ja0c^w7m`AZ>wZo8>~cWhn;I5
+z)aEO)y)I)#+cTrZf2zP`JRYB*?3NdVW~Qh+pJf!;3(O+opQgRxI=kASt#^@K60T3R
+z`9=@Y_4$z3!iB0X+>iX>W-Aa~ZJ%h)wCN*qVq&Iy!!t#`pI~iVeCo`U;6aC{rH<M>
+zGsQGP{HAXY>CFbzDG;i+jYPfeHS6u5Q4hLVpBe_57{p$|J+HlNwCxYqSs`<^eZsiT
+zWXl;vHvOP3K67S@{(HpW4&wjB#LN`!knhF&0O(ZwnIb#LIE=+>GVCkbi&f!19A0O8
+z#>JBxPB_^jzDX&b`OF464`e!?6S<BD55sec+0!ha^>D`P#=3SzEH7hg8@C8vNgVZ}
+z&-et3evC!-#CVZ?-XncIjJHaA0NP#Mi!|)N)p|UbXE-uFm0KSDrCN}VxZMF`cJifc
+zc7-APFxvQOv@tX_)hK=gQ&YKl?HP|TIB~S>p`Q5a46)tWzZ)<gs=_l<Gfdj<Un*xY
+z)A5@=LK{LwV%xt1*K@cMxE{mRiR*q`aqV|BBQ`U&6aCrTRAg_Ge%z?yizA=rA#JLv
+z;rzIW_U(m%&_+2&DQ(+m2d#MWe$3(fF;9*{e^-X-E6|c6enHEYddp?qiaqcas}f~3
+zjcK+z&7kc!E>F4=O{va^+uoE@PEg`7kRx8eGpCI#HxS-vvuu`i|A|FXuGp3ETukg&
+zjK78A8>J6kL?1IR$JVXi2gzEE{#$K_4a{HEZv*mSf3-(urtZV~uSI*qXgB+G5&Ewk
+zYa)<nw7piNy%_Hn(oZ5%WY<KC>}Nej57$JrnD(!Yf^Xbt%uJ2oc^LSe8<FpKxkhlm
+z80#*#4=14B$Ny(v&+$4A+i+qw?YO`yjl@#h$8(=;wcD{)Xonn#wu;XsF|7UCUi*y?
+zdV9F$`TGf^c_K8RpXd7jH0W#_=1O1(&pK~N_w{8*5s#N=q;074%*hU&S|oI81D>Cw
+zpSde$f_G`l%sefg{^f&xJ)}2F`|*Ms#Mi`kPG1k>{_(7I;^e_J?_HGBhOy*1>A3!P
+zSI9fo=S93<_>RwL2Om}ey80mg{|f)7)*Hq*zkS_zmV(JTaGGK4#PfS`E&Z#{ScK~_
+z{5J8w6c>4Y!SLvhJ<<*yi+y{M*g~N%MlqHTW9E==5AX9C%(o`dVb_EeZkHQ;nZy#K
+z4L$oe(qb`=nAo@Q{M1x2NK0Ktk0%H7fp!J-kLULR@c7|yyIq7dxwsJfdQ^E!M=SfS
+z+_*mMzun-keP(+`%EsLNKI>{WTBXJsoAxtfC-rtO)_H)J#&{&sp3oNXpf%Q#F~rX&
+zURHzP=dV8NR%_Ah4*NmuSqtlwy~58^lzWz^c)sqb*_s|_T+aAxSkH|zA5F92<qFJc
+zQ`te;Vn>B}9;iY6Ya8tfv+-3ov6=jrr(K_qZ^ivH%&UU_jHExHmmb0DSZ?`^m{pE^
+ze*Z;f^Dsu+*3y@^TzpMiP)565Dc`nOp4uAgDA4x;to<OqE9Lq^`RMaWv}tyYr3}zS
+zn{@HRT7`K=AFqdY8FF?{-szY8t!0%de>8d)V}8DlXD{RTLctnt%Fx!k2G2+7xSWhL
+z<Q;O3=p#R3Hc2d5L+mq}GNqvgiK|3A`MNI+ncK+oxTc=jp`7srXK?Or%*|>%V;srY
+z6&-f$E@kgt7+q%3Uxsld1?SnpiT?z#4feM_Sspgm+GE3O!GB(55!38=)Z4_fVC`Dl
+z^dP^f^r@^))6cWiT5A*cg_tk&q4z{?wF1~*y=J>$%0r&?(H4s`2G1cmhh4;{VZ2uC
+zPoBiB7Gno`%sVpylrI<(^q&rI5?@yO?b7GL7_&YjSQW*~B`#{Axh%t2mn@$?)UE{f
+zyu_`TOKWXn>0^I8If!zCQm<PrW6Sc4Cw6OQq*1?@W981tgWng1(RT@yCwZ)vJW!W`
+zJVLjMO$qZL4`Yl&eN6mEzVtb1-mAuF1o^hmi^QuFf5j2eC%Y=ZcaE5G%HE>RPW18U
+zvZF$s#kXa%qesk8a$Pm#%xa;jx1kPgnFSmx$N;Vg<TvwL>z*kM7JdJ>VvN>Q)JrVe
+zG0%a9JlB$BJ%ge4Gg`v&aSxfR#-Y!~KV;U8b7aPC8J`iOt<kxVv*;UD8x^0tIO81A
+zx2jFy_mStBg}LO9HbS0UEB33!Dz0cc6lxOxpC{jUY<86GMx6SD<xh6qi}Ycn@tO_b
+zZxk-qy=Id=`nF!jR_}2?=*|5SW4RS$+F*O*4VX_2w!f`0L;S0y27Qdczw(`mQ=R+}
+zbK!}Eu2Z7XnmRr%`G><zsb=v0v~6<hGB5^@b6#w~^ABBWy*8p>zq`}uX@jh=347cI
+z!BX1P6~gz#Wzx0<>E&qG?{!=vPlOnT3iIPx`d>-=8&eYJL%07oDC=H~K^V{3X1==@
+zv@Qr*#`?W=Yj4kgQP-gRzN-9#Y-AdwXQ97WSjxsXUg8eLJ@oPZ-7BbLWrKBm0Amq|
+zB^|p|#uuA#y;|D^<}xb~Sz~j|LMWSY6CmGAD%HP{-#EzalbEg`ye{L7BCRzoMZV=I
+zv&FgxZLI?xts@-;ZFTZ+p;w)JT!}h~$8a+4gP@oDG5?vL#3%@_vL#MyXqCNPeBIRd
+zkWo)IG=^Rfdy_G4b%ypgn1>^carMWLw(0kyBrnFJ1W(jyz9c>po#qy?`DM(480b=G
+zcvW(`#&36-^&>mYI@<eo<$g;&iSl!=vz>Q=NQ3Rvl|G9Pg2Go-7)Ca$Y^oQ~9}V=7
+zzQ}^5q@R&S-lLxxg8Q>daH0a@vpbvis;7&bYQ)!I&Nqn9G1gKTYsroG5+6J^5KqQK
+zpHTFl*e7Fc9Bk{bhhgs>M!Ro}|4HbFa=bfbBId35I$lb<0uRy#n9i4&Yc-9JyPAs6
+zGF;IW#_>8PPgpSYnp9j?W1a2HpGlZILC74md%}JKUb@LHt!)CWZvt=7)L%CHYZ!Qy
+z0Kbjb%lv*-FbP$>pJ2S+2iag0>&&zbBjd@2;;E2fR@(=^pz6wgCFTz5mqh)nddMyH
+zkXukss|9nb1#^pfGTQ6j`EwQPE3`+AgM*2)9du_G_*z$SJb4s&jRNo)p>5cQ!H<$p
+zqU{CaYFLnY*q^(>2k%6B&M%){*Lyr2_RVOwb$W-r27CLMW6|f8dTyUiUgS!)*YbEE
+zQ-R+g4#Z<fYY`6y`FX;duurL&O!uIFcZEjFyA7vzh|IJH_l(CBWNg=PONRInP2f)i
+z0}X3nXLz)|3+X+s`V9MuG&qF)p4gohzO6pJL+q?PW}W2)EexX0Gw<r{*&SBpFn{8D
+zkX~&E-~Sxy<Z5fNp2Pc{=4jhJW=$p-TW#;aJK|HGXBZo|o629<i@kwySpqey?R(;a
+z5kWh>w09!*hQd0_H#VN!IC6}{>tp^ey^cPsRd%Be4lDC|6Fguc*MIHu@h;=sRPMW-
+z`rQ|?wgcLhk?;BL1^sTk%<<c09vv$f9K`dy-DccEUnpjU!o-T2!&vDX-Nwbl7Mrvk
+zZTD+FY6sf``u#a=n|B8Bukby;HO$)uPlNtor8TSU@@P|PFL@Mv=j1_}>*O&?=TV6~
+z*oV7_D+D>8aYdg)AKtIWWe>g$8mlrv%o(QtVvf%=$0hFSu!+$ampGLwCKq|gZ(t1n
+zR@>XN19_Z4ETbCgX;r_+F~=>GS%dF(8k{%v)-HudlzuVZ+hg%P%SIY^q)uW0&%%0g
+z>ccS#nsph`yX#mK&Yr`4)cU7mKdbg!#<k|&!+nN(Pgtkp{xhXj?S%)hKe3$gT(?N~
+z48GZ&ARZC%?<&#(v)%?>DSSdOD_G|`D`8Sz7kx_7H+*K^z1T8UomqA;(qM(djVbQQ
+z#0m-PvR~EvuuIGHW6}Q;%$cdG#7w>SHV)c*???MKQ`gSAgjN5sF2vc}mhu_gHyhp_
+zeHLlRBVJsiKghl>a#~-u23H*SEx3q{7aHP|MOqzu+b6zQ+)rc5hf&UG{$nC-2ir16
+z?P@z3S#KLU&L(|T6gG>|eb+<(4|P``CRKIb&z+gO%+8K7z-+Rbu^E&Qloc)tifEsX
+zR+DJZ4h59<A<0-tMavU6DYiCGssrqo$R>mGvBBNU7}4@1MpuK0@|a|zm|9|6OfVWk
+zli68r23<dBN?P;5Zhyb`oV$Bjmfekz1pc_s?9M%N&U@bTo^#&!eEfcWy}~&S`;)tf
+zh?j*^#9#qju&s~d5!xm#HqCRrE66$J@SHKmg;^382}h2e2lbtm7k*~Tc{h)zJA}UC
+zT&Q_)@!e#bzx^)n_%D?-oO`24=UfmhF;B)~!Q^_uAmRHM-US^c?*ir>;*XMEZ~w!T
+zbC<Kb$1!(2cn<vlV$f^nYR+J;P4oOa?V}$0YZBhkTz6On1aG>?^S^Tk_oKM}xEy8G
+zP(F-n=gj53C!^08`_Ou{S57eO=9v1#<y<n-OvuT4T+CnsMv-ogsgKMFh7XnZA7Xg-
+z{+L~U$h;4j_ZLj&9Ij<!oAEO_!1LQN$nzUrQx2(hm0i5w@?W-cU~4&i4yTLAD7vs}
+z26fSY@zJ^noI<)-w$D~mpohkN!|UQ-FCIk~KD&5k7+r)<Azdu_iLL6OhdX{Uye=9?
+z(M7<gi+>tM7uBbbF6P67ib4-7_G(>t*f!Hp4sj$dAEti6G1PDN80t5B#QKHGTaQt{
+zn5m!OtU4*V`$F6+#0B^9yZXJux9jPnwQF>+U4z5a+d75Xb>*wJn*C#2ZFqHfU3~wd
+zQFKu~sEgu7N9$tTDWr?#uh?oD^w9ds@VaOnMHiM&7ymqrE~-u;T`c{PtrF0~=YBN2
+zF0L9y7a`x+H*XkSL{1@Hq+hmG40>pId3ap}M(ZPyL0$acoTGJNpF+C0a*wS-(8IDl
+zN9$rAbn%@zN9*ETe;+Yp=XR8{eTXiey6B~oy8h&7nEOLpy@O}j4~MsfyXK5CM)+)D
+z<uJAoI)!Xu?hl{~JWKG<AK2jNyZHRgpUyEc8h*E8q&bne$tJ$>e1QpGy{z@3ztf~%
+zI==CI0p*KtY^fLhjnI+tO{!6FRb(&D$k^(WG47M`nW47#2a+rMk}d1|T%+6eP+u?a
+zQ*!@@^1U(J$d@Vf5aWM-s@)ad6^Co!hXngp@CRD-9r5;uxZZGstYykxOiW{)alNH=
+zn_i1}8{aQ?+96Z3FV59muv|YZ?S|CF1%eBtoDRYLb&j&P4xhad7r0{}?$q|y;j_06
+z*qbUBj<C0m0ekbGD`S6Rzma`G=ykbsuRF<;F}YgSGrc}=*%<o3Wh3^1X!((2^Z~z2
+zv(bK8=<kWxeTaFj^0DNMoJ4Y3HOH1Sb~4F1f<7mlL~;g3khA8GEa%X;=2&u8pG^9U
+z9$TN|PbN95k1glvCsRKfLC%RMk({9s`q618Q@clwEob;-YWETPQS@Yz)9913tr$8M
+znLXj(>pHqAH~a@Kmwug`i_aFiXFUl2tFS?1#KWJPpV~5_FZY25kM`xl#+R#o*ze12
+z8RE;W9q{G;Sbm)F88xhz{hDL#&s_4z$on(99(Z^AGb}st>Aah`G4B#Dzbf4#n3(V8
+zJk`0}Ury%TS5@AvO0|@xl^W$thIJ`%*jq}(rVnusucXhjymyxB<yt7)oBsQ6XTg8Z
+z<SN`(RSg?mk2hzW;FXRpLlEsxY%xpSKn#yvyt7o9Wn#umwi5Q?XmWr1H-DmfxySfZ
+zq-mcLb1icQ)QYX{IoP20^?0UDa42`$YF`4bJ~CeU;a~TE<at}Yu~VNt-?}RAZk>>K
+z$+u~xTTA3Ji^ep6*}Ku>U*i3e$MbFt?-Hp+<Y0*qyCj}zD+iH(xX@ItX&`qQ`6yb5
+z5iOiB#N#2)gvzwJD}$={Y}ot<1t*DToHn~_9KloS4mnNkvokd|&0B&Uv)L`<{{zt1
+z{j-kb@M8Yl<BU6Pf~{v|P;PpYv<<O;>@l~^V$(K@dDdzd&y0CoXEjcH#qjr>$#ch2
+z&U9kmw3Y&bU9`sSm}z)WQ{>WXt^ByZKk_uv-sWq&s$tr0zrm%=qOEzZ_TaO&3ZJFa
+zPPF4Q&*}Cnq5Vpeb^EdH0?;wJ=H6}l-6)(Xoi5L3hZ;5rkI^-T+cZx6V&uOP?Hety
+zFRRx>4NVwpH@f5eZJ26v7lxE~ULZ0D^{nyMJ}^$4jd5ls%BfZxU$ZV<BUm$GwCjB8
+zsUgiX1ZNT(IHWe}HHp-w$}M<DjtBjJbA{!4ZF|rmZ=&fdg<M7CKLKrxF>DvlK-&X(
+zXDj};7o14B>vo@<_u1#+zg|i#NY<&*J<Dr*-U(8T?juOU^EL;ak=wpx+TKFjZ($$)
+zuB~RH?We#7-oW4c@D%YZ`>wVFV))m^+R8E0cT<1X*Za-``W_?iBB~_0K;)cYcfFB+
+z-(<Z$5=gHt5#wmUUdEs&+Wbv;-yt~fTci(M$8)B|PIn4%Su&WLvTIA>u4Wles$eVC
+zf(1qHlvek;D-5=;Q<$Wj)>`5z*9aHo!ZOp5D=}Im2f`*fJF?%52@_>ZAYNX(>)B4o
+zX?DLgL)#9qhoczJ+M!>IZI*`3r8LLJt4MQ*n9cHiqnroTd>adU61-bO{69yxb(~n7
+z*&OETwa0Bom~(eElH=OsJtfJ!vz7Y||K1eXFtLBBJB}Su%<JCR(FU1AYHej3-rqEe
+z&A7&9R-UDL+nL{YU>~rV7cgFQ;qP`lci>6jp+7{QWl1CSarGqPT6c2{p%3B;F5Jcg
+z)Js3{-Qt*ErM%YCm)|<v8%}O?3%BVz1O@V~CO5lvoUaXc#=HUUjFvfFJl~7-Onc8L
+zX&*t_m`VE&qom!2v~iR6#!=F4McO)(cK#@7QSNyOllJ0K(tZYMlO`?K|KgJd^|a(I
+zgX5QJeqv}I5nmpSJeP@gfojcH^^x>unG-F2o~MWN-2^#Xi1F??{faNZ4mHOOd4Nij
+z=r=B#I4JXUBlG1-?cn)ro)7&VeoG9y%Y5l3n{*D+)tPjUBOPrt?o0PxlkRGyi<@*E
+zNOvFa@J$#@cbZ9uKEESo(zPJnojhCQOBXch;1}$OnslE*x?7O0!<X(?Z|ZdKLAtO>
+z_c5efWU%<=L5C0A-Y0i^*HAa`$5;8@Z87g!%)2JvyZg+$tIfL)``)cH@2)lPKI(hd
+zWZo?>@BYH~?oRV=v3a-9yd&q#Kbm*MS6@jyyv%y{#+l@;+2mgHXsR4R`;!mUGUL-&
+z$L?C%8tg7ySmW|6tc<C&W%%11PebNxd4FI3nR3n-^W1Oy`d`0d=E(l$-x_X_g$dP5
+zuF5x_u~q9^ef{lta(sF<|IB>&?eibdetQIdJGspQU7VY)Ez8-j?7Q<{X5l^WN4*0-
+z{+(FfW#07T!zG@3Zz_AfycKIHMN>`U&&S|%CbAmakG#WCV*kO1iRaqfx-QJ8GmrH3
+zt(n@_KM{UD@43G@<48Z>o1aC$&?EO>_RkpI&%fg-Tjem`ca8f^e+P8E4bRf2Z56^p
+z{)!|y#{97o?~2Gh(}g`38XNju^-UjrH}t&Q#7$8XH&MqL!xM2+axiW>cZTZaeV(p?
+zI-i)B332PLMdbhR>C)q1qrM({pXw!^<h`Tl@lEo&d~;Bb+o8i4^!n5{wGM~IoAKj`
+zH)DhGCUqvd8%A$pkH$7@js7yfC;eUH(_h@DzfZhR$D3D-L4U<32lYoA-2Dys9pBJ?
+z>ND^cpSe-rd8;b!sU!@Bsc;;^PvjU7#8|+)B=fZ&@*3w?4|BuA<K*~G4$qZ_tDSro
+z@dEJ%@W4m^&~vJHDg4{_Kwk0p9G+KZ8J%tobX4u=djL^`ff+m4seNI!QutQ5m&Wll
+zEbRq9pgZrLUPNqJ+*mmq@{%((t=bNBOxJNvH)1;C%hq~4-I>)c{@y~qxnG`dbQ;Uy
+zw+ndhW)k!jWLfw-sP77>$a{!`f%LBpq}LoQUc5n!c*)yYEoZBF?<`g7boCv>&$~Ro
+z{tI)zjXYyf!vhvqZRM^RTF#i$X~&bDwsK07Fdo*zudqYOCVTuYZ6BXFIA88+S2;T?
+z4-Ls*rAj><i?Z9%@@U^8#~8GA2G0~chwweuWQeQ6br{ZH)M>2K@9P(9RjL`bx<}6N
+z&r=H~1!e3xH1Pj#43DTzzq1zaYWY9gLCGD8AGqgZ%$lwiPWl+vk(i%ZcbbRqBtPfS
+z!2deGg_58273P_4oT!|aJ<iZ0aB)KoZREe~@wnzfo$$fQORkz-a->6d!LZY8Qx4=W
+zYjaj=b(wR9h3}Z>>#zsr5i)uFPlwJUiaf|c!aSnBJbpS%9zPzEN7>{N^W_oq<zYFi
+z10ko)4kinhC3l|}_7EePcbB#=$h+Hl50vXJ(ETboqi}C`AfowGd5-_1usfSJZq|Vh
+z2?zY(nFTo$P`?Itm94xfu}i5Z311-=gTH_$j3<gGj_>O5B%Eg9FW6={t2xK`>+`6o
+zPh4<;wO-@C`h0O1oopDQlTMRIolhrqzC2oo$z#osJl2^!623eVzC5Bvm$wV{j;^!8
+z#~;wa&^rGe*8zr<`?e|9!_)bcDL3gWH)+a+&x&!eaN%F^tlHzYy7CEp&GRSZSLd9Q
+zGI+b1!>7A0-Ra))rM}*bBit<Fr@T@RKbUJ_#catkcVdLk2=hqX+{J)B?BzNgxmh{J
+z1`T(qoDGqF-{kVl{?2+cCaGM77{=SX(C@npeueO^=3LH&fvaN@@5_BfjOCw|zWCAd
+z{F{iweRqi%J}S0LIIe5VU6#-ijn{pZtY7bS`=P5_(I*q<<lTqs&G@b3_?|E0|Ed^#
+zFk_?2*=SEm-e+6&s{>XtJ1!J^r9xZw+xLH?-Ok~7g0aOLd&yB;M6B}pdb3Ud9dYfh
+z+USWo`hK6*(MyK!X&^?+w9C50V2svmVl<3H$GKLp67w+EujX=`=N(Oq^&b%K+IIB&
+zNj)iY7!AaV?Z=K4GlTv>)tKeD-pFx%&&MIhT*K4b!8ta$%KdZb>g?p|vd6s>@bU0c
+zKJq+Mrc3G>pKNrm`BX~qvc~&;%Q40$mr8un?uIjnPtuG}yx644y_I)wpo8}xqb<%j
+zL2WS(eWR*=<TV#hN1t=Fj($BI_BupI<V8C)edK&rnYA1H4Aoo2-v_3T>}PFeZ2YLL
+zijN__!m|W_&;FXNygiu%4SDxKTKlQC+FTLbu1vuqN7$ZhUe@};nHJ$q{9XLkI^lxZ
+zTv_@kIc7>dw$mbOx?#py$LWJ&e&1DPxMleHY@HHb%!fwN1+nStzG|y3OyrN8rSCAN
+zZqK`^hfI9wY_7EZ3}dGHd(8oxF3H^9_A_m}i8)#yLDYd*MZc>rAG6e%`$BnlU!3c$
+z(CPVwp2kNsc34EUR3h1y(oU3Hypn6Bn=7GAi`+4V@3NPifa}a$MBV+o(AV2BJ1=`8
+z-17=U9+fHe+~HhX&cdf8h7Q+}=+kV-wF&MG$Mn-NR#f9R>k!BO%Uy?wgWcVv)Q*YQ
+zwUx=el{IDj2l7wO>U7Wic3U|xZ;kwx^A&yK<g7OL;k)$O$&>i)czl1xS^d3%7u&=q
+z?7HB^?k85i$T_p;>>2QpU<XrHx4F~s)Z@ACv3|kUV+>n^-+ALZ?~mn>Z?*ZKvfe4>
+zEbfUQ_F2q3g|cQ(8yf7h@5Y8O-|szRl)iQs=jNEc|33LKgJ}o3ACUQHlg!mY;dP4<
+zH)j&(WhHAOn`NDQeSiN~tYlLU>rcLf*kgL0U|rVY9ltmC?|0n$HQi5$0TL?0|6?7G
+zb6mO(bu67Xavf>oSD~JsED!hh@3@V!WE$NE&G)ns_=!7i!S|6&OJ$%9j#Iv=kngE6
+z$afZF?GvPvYLt2Z7|K*A({G3S?mXP<>4>_R>gnPH$<@=>zxVbr$hEgmkN-{YRlU7^
+z^q1RRPbQ1)mTq-VRQr4zGNs2L)02>+?kj`i>Whf?E>~go>P)3}FZ#8t;~n^bj=%TM
+z(VRMU@B?G9O|q`UJEDmk`Mq`QU5$Q9|LXf(yEmLilPNRn1G&(NBE;pgox24Ou?q3?
+z#TMh0g5VIY{bXOSCES#YyJL7qF7FjiPWtOF`}=nd<?v3%3Kv>2!{H4*BzeXFzdyTy
+zxRZ;Cx44$_QHSw#vs>MDbE(GMqh{>7T;kS694Ed`A2*(CeiE_N<HSjLLHOftE`=d`
+z$XSCqb|LR^e;skalU76P6VIW)MWF|)a8+4iSNO!wqb(!OGP&a)OmF7>`^hMKGJLu7
+zwqeZgJ=gfysa%D3^V_%be!9X~b$NN5TF{L+WL_C*BEA?+IU5H2U&LkOl=G78mDBgN
+z)I^Cn7%NzXRmkJ7yT1XwF|UZyI23bH?!SBGW^<MLMVJdyS0e2qDerrDXCL8jw;$ne
+zGwvQz9&D_U^HR6v+*9Tp7DTxV=>w))%e3K0@{=W=O~JUow;Jyja36*IF~Wa$OUX*E
+zk~`u5#`mdPOA)z)%zf5E_h%5}2%cM7b9V*{ttG}(R`U7%q14(^2yMvxqea*t?BH^x
+zzT%goXm~^4Cvnf9{XEURkrcUz)a(4MwzH)?2Yy7l$GHDL)Xscd@oyVDyZbiC>B|T4
+z@~#MMZn|K9+*+#PnHq9VLl&-gkvle;EKE?zQjq-wwkEM8`^$yMvyStUb5jZNzUEl|
+z0?+JwI$K^M2F6!8FG0twe?(%p7hF#d-{O65ltn&H+h7h*&S32MipXj35qKY;_y_^H
+z=dhSq66e(<TS|fCttDIci|z?u(sd(mDf^7qU)Xo<?;uYuefT9k7jgXn{iDWdl>V`T
+zcqQl))$(5V3HFamAa}J|(v6toyog#>s!lGKHG29j|BF6Iygc^P2<oqWB7ElV=AL$s
+z-Oz$D2Jtua^>d6@4HNS28Rwdqu8^zn%n`if?$coROD5;tiFg+{!k)JbvFDeMuxE@B
+zkudZCeaYH{)zB1pv9CW8yFBl*kM>PN3~&0QCAhXn<~dxSWISqTg_FK}4*h=k4b{n;
+zOWwM`)2MR-b*5g45lA~o8o&DE(0vHD;vctmbDS2xh1eoDA;#`>zkESoZyj_$&iQ01
+z*maL^6Voo{qP!VxhkI!|LD(VN{0`W}C7g?s_rPxc2H)LX68lrlZbrD2v>kqocr9CP
+zwGZ>a9(?Y6&{j+Fxd@-@9<Wto0Wk=kB>F}IeS{ci#Q4~nBLC&WZjYx*uvlOVmf;j!
+zfjFD{h}?H2rd$AZ5DrYW(QRNo@JXzzglckw$qdGh>&1R!hy~HFwp69=En%*h$9<|T
+z(}tV@GG)-u-9A<Owjn1QLteFYc#=+2EjcEUrjB@1jbF0We$?-&ysb_*JnLM`Of+-~
+z&dDaULo%azm3Nvo6rOz{1|QGXC1Q{@#XU#X^G4ya4rSWh&(D{+1oLdRj4@&h_g9s)
+zZIc@|oas@6eM<b_UwK@KXyYl+4|yud$u_%~7tVQNuyB5yCi=>hh)YKd4DvCaBRbpQ
+zc1-2j0nMBE#i@s1Pj%|L$(cRa-xTs@p-ur=KgZZQRiCRGZ?M`z=|(pOzco(Gi>$_h
+zBX-gY_}$G$moGTkiPTFS`8J)#+JtJXwS<#d$8r4pEYi|eS*HYSqb^Aw0plm}Ul>1`
+zdcyD6^4j74-Z*40jxWlcnSu00ot|9H4JJKh=Wq7mH^hR9Lf(ck{^maqlPhQg=8>`g
+z=2`rPcpV|{H%Loc7duBk^3uW&JFh=!m!oWx<a7HI&|kpglZO3VWbB4qu;hG96gRkB
+zw`YFLi|e&X;zm2`#1HcN4fCZvO*Owqc^3Ki62*;f)L_4GjyyNd@nfU-CA2S(e_HAz
+zxJMepxusomto!*rg>R1>RLEzql!LKPm85@oY3TQb8ggdu@P;0h&AH)1PWaNee?wo7
+z{Cwoo-jmDAT+Op$#D|HZZ-iC6XFUDB4A*o%RPMvPTBFq3uYM3QqR+P>-dwXcZdOke
+zzB8^5a!n~L^SI`ivl?z7Mo-Xkf)hDM@8=mHGe?F{7RFjDfKP9I(<-b*JlnwET==$G
+zci~*a`70djJa8HM;4j%8-dUkx*1x&dbzqCFuDst?JV(v7*|3@<abqZzL%pt)dIjjG
+zrgZGhHPw%#^X{inPdlBj*ruL5JJRT@=PwN3sbl!Eg2TvQLk6yUD9BL6Lyk&0Z;Z0v
+z$mZQQ3VN;I%Iw+S>{|<+AQ(U`ZW=O#jjm-+1agq8HFAvl4$bFH*;Bc`r!|$YZO!Iu
+zc_;ErS*Lti&iQ)tT^RFSoc5LGSxmj(!g131;NZN;vJZ~1*Dze3++R6gT`&B=<e2>2
+z7cmb(55H}<)vNfM=i7rtT`$Ynitw8{>qUnD=kD#}<EpCl@jY+JG#TKuNieoirftxO
+z0Zt)mtyKpoTA^O2FF=KY0~D;@icyLJqE4Em4JCo}C2gs#Gb&!Wi1!Ap%H@K0pe<HJ
+zEl{MC0+X2@5;9c^7AVkUe$TV^KFK7cv{X>Ozdz0=lXK4AXYaMwUVFW-*N7wH11~u{
+zx~N-K_WFQ7+#bN5^((tI@Ipa7+>mN_Ol|d&O2GKc<4OPKWL}p%h#juZpoC}Er;exo
+zrNfzuzX4PG_T$I*_4@4-9n#)<=J$)~{C?Zr{C-%we-qzp=J_hi)<#zcY}uFRWKWX1
+z%*n3T70-}!vo+z>6`y4u<I!AWZR7h7yFa(b)Uzi2-fOpIXcyQ6USO+g%RGcVdHPuc
+zcDP^e!@055Zu^znertGx(}6y=stwN3GPm<+;~cwiFvsA|fVPWfYcA0>pesD=Z|*>y
+zXs;Q67~>~Rp&rOu-k00Xy?7e-qMO?r=X|B)e;n=))%=kj@VbW2%-*%IKSv+fqbx0x
+zZN-^BW=(%?@<86%CgDlHjB#%__2GTtRoyDO!s(<=(EUHW!ucg@;;sRYqVoB*dv$%y
+zyOhp1Bswe5Ueef*TJD6b4#|=2iO0K|z`F!fs{@v*%yPXXUzp@<=i1C;oz0Svrk7dI
+zCEz>po)Vc_mCUeQpCr~2?{Iqi@;TRcy>8gEY{9cCi+S}1pYeRd{^)(EBcS%+{62sy
+z_&hFiUT_><b4GB@StpX`3h9yuYZ0VRuc^<-aXx-AZ74dAty`OUQy+bo2jBVA#gzMo
+zzH>L;ar48`*5i-1J53D<k=+^7Dn8`xl2>maUsn+O=C7;!bH}JSWXe=lZTozhH3WV<
+zDcRM?e9*D8Gd6RM+aGYI(#{ZB=lJSd(#&(n?^cFaI^>JVU&X)&d7|fJDj`!bCwPrL
+z&as(`O6v+vP}mQi=%(HD0por0tTpJn74Wmwx*m=bbX)v9=^tG94Z?#y0iPZAjksr>
+z<VAdtG&#BkywDn%Z)I{N#=6Gg8Ryq$b1&QJb4bZK#6Bbrf;k&$%h7s@l8}72EQ@v?
+z?)AN<MmE3CabQ1m&DFIw#0EH0zx0vz#OG#iL4TF?OEZs?H(v$X_vP2}7I0(ZHCjJY
+z$9fj3&7of~eOg)f!RiDJj4pRxp4gX*eNg)dOFd-zV1(P8KX|n7t=RuC*O1*Rxm_oS
+zFMkKep1I4T#@4LSK2f5BqJML2m1F3@Sk75!BKtD)MW2wLmU{j5tpT2urPQ&S^FPS*
+z|M;Qj|4h%&^WPJ18N<1gCMat&`oADMN8tMd`PNM1r(WIJ=7b=}hB23Fn|i#JGOl1`
+zWd(f*sxh}<WWDI0ENeqxEPXdE+J6BXz@>Ad@!7^&aDQ9$X%>6jJj@}E^Ww5J?p2iI
+z-WklPYsVcc90zW!uYla)A?!Ti#xabs3C7}}b#dSdp5vX6YBhbWki4^ew^Fr9JPzj&
+z4sQs^853^IRN5=$9?zIcwL#*w{NS5u6I9xdBpZ@Gb&Lh$W0(h+KGK!cUn;Jl&e7|)
+z;-WKD7)uas{8p>OK0gC|uO?pDcgVM@fhY9kWZOE!LwQs@U4=1LVcc<(OY+Nrk^Uxd
+z2H)M+0huGEeQ1Jey|cH2XG0VC`*>y^;n_(#vO(4iuq`XW+U}`KI8|sPc^N%wnfQC-
+zof5Uar*Q)4!}!zF53EDK7Vj+|xOX4!ah*$rZ(AX@l6!cM<B{C_^RoW-4FSn@%K9?&
+z-2m)J-%8b`>7dkZo|&Qi#T<K;z?D~-f1hiKZ?!UyaC<|#QtDT*J-!jYLGn=60H=c3
+z`^>{z8*g*`^*1}UoHu=_QrBZ&-RzM59qaPDJU=5l9pd{)Jnx>eg!9*GoErsrf7~#>
+zm;6f+WJmJ)<aK+5_5sK2*_j%g>#S8!*?xV7x%h(W0_LYULD^4=P8dAxXrG+L<jo#&
+z^~5DQ@8Vp_WXm{yPvoK9wJGXjmeGg4ckaZ4^S-1twQ*A`Iki<{YnYE!5huh?W`)x?
+zp)aTX_qnf#hpmn$*!tYXlxq!b*x#QYTh2H+b$<3G{9X#&S_<6SHbM8J)MCK0CG*e(
+zjcXz!)~`hWjRNm_;X9()E6h5tKP4e?k30{S0JeUd<EvIAoRYBCH)*=0`I+-bx06eq
+z@;Lq{ZweY81Yhhcc<1AcmjHbW#g{s)|3v?M`m$R#+NBt~w8kMXs_oKCoyuYB3%+;R
+zx2lKIv`NF(w$$w1yj7G5;vAwM4D<ZHpXUkIi2sk1^?XEhD8y6Zm0x(2p>q;mBux4|
+zCi^(w!?{2^$NvH5?K~R~vYtQf*Zw)4_+sxSoG15*eQfjY-Lh7?Z{l3J`OO%MZu*A3
+zNuOH^+TOypgfn2=-j8$CS}HInynjZV1zg2n*VaC}g*iR<Kn8p50`SwovE6uQH{J;f
+zZZxEs4|A(U+wJ1?HoUjjytfta-81aHq<Qc0latwJ&3m`ty{2LBU2Wcb-$}{rF7sX-
+z@68+bUevr-d}1>D2;Pg~oyn|wAmd-0rtO2zXJA|p;`!bc0o8-+w%cwi*?Ut!O>YmV
+z@*4x{YFyR0A~>_}dZ9mGg};Ad?RWg$jQ`IEGNkZ(KCT*EmCx(C2;yglGuKM35naly
+z6IpL!W*5(KsS8h;1#(I#w#GS4_Q_28&5Q1vI9QJTTCUF=;@fQ@3;*LDb4BC4d64&U
+zmOYH~awq)=L!g1>_6o=37=2LcUa{T)+VL54EE6|*7U=T^xGeq80zY`E(lWvre(Nl+
+zo$gZhqu7&|M8Sfe?^Ut1>w8C?Nhq~mX!z@<KkChxdzrkGQsq38&-bGZ<ui{N1LrsR
+z{<+j~_@wrjvZ%v9U#ZK}j`*g};rWRB<>VRB&*f>x-uMT`G(U>IBRkE#BHSyIdzVKZ
+z)BaxOUJPTuJi=Hm`}720gR?oZSoD45C&@c)d_A8dzc_F&ruFXR`+tFFihCIAM;?l?
+zZj?ns;q}6g1tY#pFzU^So+HiqT_p0A$g5h<fFm@TsWkO*RGK;ld@HSeW2K$+HOsVH
+zKeSz{Rkss+A8lL`qgBH12u}-{@wwNHo+^?otCVNr69ay0!$6GhQLL-zz86iFSt6^>
+z!F(>Wu1Ej*Xi+8~3uXfLYUUUot9gK^oN-FdjhT`&%7^p&yM%8fnHBynn#}GIzrk~4
+zJb?z%@N<R66@4Swm4aM$+(ey!$!};YW8!be{r9@}?e^|qYK7SBx#q?8%5Lx)=^}NR
+zx<r4YOWP{+nCKr<RG;*86VGDX9FD^sFLg*y^L})j<h-3eOfO?|U8eFJh<CGH?MTl-
+z8~vb-#G{%U0&3djujT8m52z|!HMoMjY*(h6owcxkebJ<czQH~t6Mu4r(b)mkT(_W+
+zFZh1Iy!Th;Nw+tG#x{$e3HN2d=m4o>r0vQQ-N&V3hbz=`f^S(yxhNPm{JY(pRCe>7
+zd=G0sC5&ew?bEf6dsW-sw2o71s+i|To9E$S&%d!hpQFCh5!mV&j~8Fn_~YtAdkUWA
+zhCO>u&Wm=@qj0TdPm$j%l+DAdWiL^G=#5ghQ!$_e(mCw4j9YOL<@Jgzae%ma#>#%k
+z#gtQ%T^j+zXn~CGN1yZsfA!UoWq9}b3kA=EspXEbxs7%2(Y-Uc7cxBP_@Q*pm1Zr%
+zv1E4Br#E#4qL-$*A3V`BGowJ4X%h%bet#|hk{)|vn|AXZ!kh2WE-v;D1J5-Ep4eL@
+zY)={*!kX+J&~?qqP>&#avqay6v%;L?#jYMIsB(Uz8=$_Jz6RxcJA^-Tb<LDL$vgRk
+z=B;(a&!6*Z*RT)b%%ZPA2>fd#3HhUQm2=01^oLD$F&>?=a1gS^6VyS6qZu#uCH?-b
+z`nCXLL%A2up{>#0CSxl%e3YtxRCq(h_oEvEL6h^`6OCtFy%KG*pFvyNxcAd8TCc}Q
+z-v{P8uoz!pw}|Z>eMlY$#vOR9rI`|e<7MeujH^nmbBZIErNiNMIO}u`$AH){wGMr%
+zfi>wW-whc3{Ao8+KfliC=a)J3>!&QqJ?1enx+jJygI*x@8eI97ykcoY>MnMTGCC2-
+zAD?V<er)!<Csxn+sZ;qr{kJWl)#p<8AhcPj$AzA;W})!d#y1(TtMEx&;HHYg_-4^t
+z@Ewd*+4noINPWt0iC$u#oTtj`=DwgENtwMx`_m`QdhQ?1c!bpwmwXw<xu>AM$=Nc$
+z$7Kv>icbaO&~!XC*N(m+v<rrfzHq+5^Fg}PEV<xWYk@UESX-!ubuZAaGQLXc%rN%T
+zvN{IrO@T;qc`%t=J_GxUwTmjT4=l8EpZnv@%#Xi3g6E-RlkD-Sq`Q%5rc~Av;~}4I
+z*8Diy^v&8nxOSNBh2uZS7`VTyEWL-tPn&fr!p)TDPVfw)t-<hWsY%BAc*W|AUCbTA
+zaqa!=y*)oZu1{<j#JR+NjdK`d1@_L^r;UB1>=nR-J~!yo{U*P~Z)Q!-e$t1VO#2M!
+z1K!(ZXtD1V4b!_#fBBd5xk|`x?DH3HtUB6%-?YD3=u3ygSWoaA-s=_z)JAM5(q+=_
+zRm1_tEEsz*Y4BuOf6z>exmth&koBy{a=``c=`zuCNRAdAOFI&NOdA0|+&mP@)QkC;
+z;GCu#b#ni_Y>DWu*NA+4vhnv12u)dObo+BglfPuG1M<=IIVR4~2P+g^>3otnr?}Q{
+zv~QB`9Zy_}Hqke^*B@Q(xH#lBHDU3=DNSO_WnHSK^kf&0&?j?>i=7zjOFeqM@fD-*
+z;Y0&(ycc+xFh{?8WX)EangvUoy#?#@9`pYHnDwDvy!B;0c8-td!J;^1lf61llj}m-
+zEwNcio=McBtfh~v_^m`bH#pPkH#n!y>jV8+>u`@yuPJd_u{NQ<rTFeK?bHXIpS{z_
+z?4DSBOuwPc<&3p7{%#@F7AOMGBXkezwwbyMi#mm5*M-G6cj_qTw298(fG;6>ThcAk
+zDt!*E6+1o8K)sG%lyj>pyaqU;@#c4Lz!Avvpp!+~&!fy^`@CH9+hnh!U3ksFUSE!N
+za_y{tUV}AKI=0)dSW9D#_~?+1SE;4W3OT>=4EK3{vwg9|mk*BR=Oc`T<G7N#(P&a?
+zrV9Nouy6Y1OxAe|v~DQb^`rOq34A|V@a$Bh58dIFn2_wL%-a)-W=_QYQPGaB;c)rM
+zh+|21^|fo-H);fUG@?zhp*`_eG;VztV`sbTFs3T>T^Xi~x@KTMe0K!6#D>A;ni0lA
+zcvwdEc%R5O`kbKt))V`VIrpevJg1EOG3}1Dg)sLL@d4-MXpg<b$M(!WG|KJ}dxwT?
+zvaCege;w6Hy<VI1DW0k1gQLx2N3_5<>@mEwdq&FM1HP9h+X5w#q-Tc2ip)u~KiUPD
+zpF~CGr$1x%;Ku+H&ZEV|coS}?yyDXAH5Fe*|1M4y;?u%>ejVTc(M$Q<S4@mG+ge<k
+znDHaRy%lDy{wlO!=voB|)~cf5o22#RO+Lr79b@~c85`+Esd?|CLNC@hcEK~hc{a;D
+zn?aj7zUl6dV(t&Fvz&!Xooh_nddz{b{Tz3H|6qT6U)KFSW%~PG!MC0>&(1f`<_I66
+zyx6E-KY0-5K>32Mqsz70Nc$AdmFps<&Z2Osvrv^f^;W5KwO#6r@oFCHXRr3<4jj#M
+zs3|>Xsn+?|1ysp();Oo<QwgW%q{KkYmGq}bn;X)b(HHM+KPe&gfVAJrHm4<AD)eh5
+z&xU$!4^r0SL*neDMtc3y%zE@ye_UVASD+W9?Y-sS7$0yD8~Cukh==p={zb<Pm4RRK
+zs1o-*PwANK*O<TKqJ%T~3dkxL>#XC3#`s+%a`<38AoZElfu2ZxAfA0m{~b%7nZ6SK
+z_?OdrFHAUlzg7@S$lPx>bLo|3EE7vO+5L{)-tF?DMZ@O?c{yZrZbSQEUZ+|Uul2u}
+z&nG#CNRu~yVImO!S|ZSid$xU=&V|{YY#fzLHl#diT`D?G*R~hGhb4G^Zq_oj>A5%l
+za8tj;MZCg2Y;4NppU-XAcJUWPPCGw)sZWh14z#4kImd(_1HaLb_O>^6vp?2Ht5@UX
+z{1ds<8dst0<rSOpex+Jj5kJ2#r|m5C{Q<7yT@}~#q+j;ScBfW+fA$3!KUj2-^}gA}
+zO!_$%^wAO?Co~-V0_2UA&LZ3+k9Y(3MLe2W=T{|H+vA*4RhC(xN&_>!YV6e!*6AtF
+z_&}GsJ@_AOEM;XM=Wo_NQlqn*_#5*Ks;cZK0oMhJ^@p^t>&HF%4A$qwTF~aTLYr6l
+zhtuX3=Q@mU<0leMoprYOeYaw-wS#XdRx5j2F|Gv|OR;L~S-|>65zy3>w!g)&Kj)`P
+zohR@O&hr-Zam$Cf@8ans_SgDPaNn`MVmy5dYeeB*6?lcp^jgrzwa$EtwVAFE8mW@Y
+zonZTN=Xsx6CjM(-#)h?E{nk43&~~n^>-w?|QV25Je2l3T<G~t=9)CK<GA&-}L|Dfe
+z<EM?^Z><s?)hHdiD!%q6W*EHT3el<U@G-t^W`=eo(W&7ZbMTGp&_8)1;*knpkq&{c
+z6TTHZ?Iw(IKIR*Wv^eyoA`eP^h2R}vIo&=x<Fy*nCE#UPuX(-HaW*!k7=5UYr60{$
+zKYb02uMx((tbT05`QrPB+LPLSL;Z`iAJr2MdD(lsgEl4Bccz`{^FG=iA+s~)&{{ii
+zZp+wg)*f$2Tagvc&oKv%pK$a?SBYKx6wU$jZNc280~bn2AKP2g?U;kt*vLO5J~T}k
+zS8w&Iv56CwgrB8ucG~f+zaPlw>ILst$vI!28du?^jB2m1&@$%Aid(+Oyidul?Kk#I
+zjr3>b+yky+{6z)lUeNf*o%fPHM|PR_#J2$JI<JFg)mn$+E0Xi7#bMn&-Xkmu;V{$1
+zFT69=_#fQpB|d2Q9VIah>##0o%DMn|mhGCJaQ^<jp|tvLpPMUwU|oPa>jWmh@Trmk
+zJWs6^9H)K=h`!AIJ&$`S)k1sYI?iw1-}AW`;69gi>r^xo!<iSdus-2&6~N6g^TVYT
+zCzH0C8g&t_RYcRdkli$p$BeR)&@I5}79Vk?-C0zb5SmBX1aNmg1GsbF2(Jy9jP&)u
+zdvLCy?}gL{V=Za~&;BCcnmCMxtns~(hLESZ<VMZEG@1E_We*QsNAfSuK9_%4TX7BE
+zb$O27RpiOn3O`<@TFm#NU5kCRp$-4uIbC1y@oY<GNjvGcbdI5i5zxbnm|p^Lc=DCL
+z9O;($1c|LN*>&~H^dAKu1$=USU5XBRb`OoW|3ZIW&d9I7?~U>HI<Ee4=L$C`OM5bl
+z^NoHfy~&S`><j2O{DJD%vO3QR&hvj;u{W3(0dkscpCRWZ&c<cTjo|(dnReZba}&;t
+z%guRS5YOQ~Va&jJK5c}t9(2CL`rvs^+40zZ+G`$nzV7BFz;EVp@YOH%`r^~Q7^laR
+zO#1G_vr@c!&p8Q)XF`BHgu%^qVgq{Pne?dljrg<>_{nprQZ08DRcL!1ad^$#z8vvh
+zbXE2$$+^S+7Xzmj1O5xq<~rcRG_<Ld+M|uq?)tgZXZ=9hd2Jo%coo_ZUx-6ILl@F7
+zk@i%)&;8*^C9?}L2REkN4_=@KbdBe)iZpfc41PcGp^M+ed;PEGb4Q!{@2veEOt!IZ
+zpk7ma@1hm`InvkLAqU@HosjyMtO4JN^I;>-IL3~y$Nd&HZr~a1sdwS|J*-m+{=TOD
+z?9A<;4WBe}5$0R5&>k1STr2JZKZE@p=(NTKLNP7plg8I1OP$YQ{u?=N`h?j(5SjcV
+znE!AZc{|}j891`ufegKje1|`}7WCc9`q9@9v33i{e;8lPTf`4Y!-+6s94mRIuf3Mf
+zk^Yg#=AJI3gG<#Q9Sp@<obTg*;(|ZgBKv)jGW(r5TvHk!#Lk8Ji(EefUB4aQuEHFh
+zc|26#`@oYVgd+P^*(xDq-;zqQRb*dcEHN02Z45I?k-ey7SHj1heK+>qjIFU73<iT4
+z27?*n=llEfo^xOKyzU?Od7X2g_w#<HsoGPV8MAKoLpYch`V$cmAChzhxoOt4&!9Ev
+zei3zz5pnGzj8cJuO{B;&WivN(@oPwPcB{9ZMEYN;Oei&vW#>P}Z>-&4Q4Mx|@9lA9
+z)ko@|Ejk|OiAQbU`Bl8J_2I$BA;+#sv}A8T?Og|duiWLmx35Z$XG}RdqK=%5+$R|m
+zFo-{k6o-&xLUNg__Z=$jc-q&V6t*XOD8HS2NqB=JG=)-n855VzpZ>iqJ4Jxv$FuKf
+z@+a8!gXCq;E2hzk524FrlLuPMSvR+hoJ?LS?N`I)NO~vr@3YTjcR{0ji!SiV{j(5o
+zf^wRhN%I$;lQSXG8DI@g7CgO7a$lUC$UCL0PS>bZ9{bk9j}QLkUd83*>Nl@Lzf<wB
+z9Hl@wAw4YL)h<1WOS5VN#`!-pQUp*v>B?`NoPAH5BnoI@$4k_mktxHA4Vr~~sRJvO
+zhBtz{)yQ+&f7(~(rQ7P$eU1OTy4$jL@YQ#!?h9c1O^3)=+24dqy_$sP>nqp$Zksq^
+z4h6%TVP22k>};b<Z054FV-bq={}pKZ7(Mdpt%^UI{RkxgqkHoSL4kzPdzEz=I&7hA
+zWcP7WzT)M~|1JIw@315EfG$s5Z8nWSDDJzok%ZRI^>{M2nf0~HFP0m>let@dBw|6l
+zgg4kCn`<v?WY>MSn(pU#QnhA|63R8dh_GmlOnbNoJ8E&=T4I`I4DP@p)$6a;(viG1
+z+h$68T{X8S6Oa8JU|ZI0el2|$q%yz`fRgi9_G?@JWqe=7Vh(q2?_+aSZ%xb7eUfS<
+zqEUe2A&uhe#L=wxUWdziBJ6SPwaG3uf$rUu3g!F2%&l7{VPm?PcaQH#1CT!sxMr`S
+zQ%HC%3+z(p9{io2YOO}IeQ<g1J8;Z1g=}vAUye#v@k0j7OO@PliPbS`y4pu4e#C?H
+z*4Dzouqa$#!0oD<kti0Fh1%>W^1ErUQt&O26dS3#JkGr7-MpsLJdtF-2?2=gUhKT`
+zdYE&eGVY-D#Oari*LJwjHeM=nC)bGx78b=j94%<I5WJ)%8$+sr5aYhHFL|jT!R<0$
+z$Iws2G!Z`K3sq_(OeHB9?1*{wZ?$GlLVDlQ?;s4MH-gnJ9l_`TKS6JCiDlOs+{y2o
+ziOauC6Ty!;6T!?bcO0OmGd7rS<`w9NtA%eEDsOC%0gQX%jLCVAJ!-0$F~%2Vy}wsM
+zzh}&5hrJp!U%7kPS;}V6yjt3PMoKDXSXDy=8VONJ;!P*q)WEDxna-v3cZ9j)!yqh>
+z2m6wk$MCK**&Ngqoe_xVVnSUi#-W|izeZkVAWEyYrLBD__HF(56UVc3yv^YD_=F)|
+zQkgFV+5%DP-RD$3)7ypbx4muBGgLS5j|FCqeb734n*|xFnuJKu^_rM@#Kcx<0Xlts
+z(NTfqw7~Hp%RZBxdyLd4ksgKxKY()w(Ow1JsZOoOx8k-V*2s*JOFRKr=E~!6tEy5^
+zZVhQNQ1$4?Xe6jm5S>6uty)#-gXAF*h%yRn?R)4>7z4@HyT``8M?HUWTAsA^QHwRg
+zV^MYWcS2ZL!<l+cz$okYFx9=by7OpOn}=3iZTq^hRHcBK$wp;{(`w->^$`QIrYvYI
+zGpVJ#xeUR$kW<GL{BK_GR36Pm@S`mO62Z@B?OJJixPA99I_EJG%ZWN>pHc8T&4~f!
+zn(l^C&B29nWy!6P$}AsyT0N~uA4>uiXF)3YM0C`DEjVyY{y}oK$Q-xJtyvj)aIN%K
+zdTPwrK5M=A7H`ewy;C|}K5CA5v0~J(z){rqvV5KO&1aM5^tvS4M<-~FdC;J}p>#^?
+z9L!i(d!ip!5?!m@(^#^T?{Hjr1n<qGiv~3aUHa-<vcH{!x`B%PG8%6&7_9E!{HjFs
+zr8r5|V(YH$xEl?r;wYqN=HlhEj_;<b97-}`KYyD)lo~5f^U-4nd*IX&<>~XE<Xe&5
+z=+K}D(k9gZ{*B}Qabs=)U1Lw)wp+-$)|)iNt)A^Ja}{-QTJVE}C{-7(wZO&cc3xrl
+z$&+5--fy|XFK$|4iGB22jPn3Q%<&NOvWr;$*viY?L}uhmk+3*1<kaQ`Z>8vAEivDI
+zBjc$t-@j#9@8v%Hv(;^~qNbTmZ9{)_O^g-bbjvhtmTw3s=rrks4i9e2(L)%ehCzu(
+ztKEg#TdZl&a(&NK+G)%>m%8A|X(c*_S=M;m;;9vDl5RL;hWaCpVJqVB);HdpLtk;L
+z4!pqd!yhwuDrio?r{^A5n$9y^?5_FZF>hSWhtstoFehkawI`-Az(E2#S56Nani1N!
+z$%j8zTx&lguaYGHI+Ww<N@nuVl<mTgV3`f+#cmbXo+dw9cRmc%R6-810(B%;whq_Z
+z%nXbyYzdv@d|Nsl0O_`VW(DdB$Ixs%_3VR3v0)8M+lMh_F5gXouaFKK^%^82@JIL!
+zhx}x^x~mYP<)dwevKs8`w{3OrC09cxGkYvcLw2=uW$E271=#JQ_Lj9ypK5tgy*>k#
+zuv|Tof&~tgXm?CWNWZp&C(TWorDvT3XCfgYV6!z>Ye-N{6cRDbO%qzvFRw_Kvb3p`
+zKnoJBiq9=usr>yx!-AJsk-j~+_^?KdJ(sZx`;AbWVB_zC(zMKHAb%&8jXU7PhXK&-
+zH}m$<-I9oqXFWjW0PPeM;akS-bu5qg5a<tty}vzDv(kYY6>z4rD})u~H_ABAMt_sg
+z9zD(rZ{$wDK&{#Wu)~5{*)`5sddN4Y%T9Z4f*a)wOU`%iBj#>RrmwRFTVCzK%dSIg
+z@g|dfmaVr>juknA%rXo^esU_@u(#0BJY(QsfAuVL#nK{3__9eY%&^1CT-7Y7)x*+r
+zr(%e3PfolIxQ2|Gt4ps?)XA;O6Y0OvBQ{G`pJ3GEwP_E2PV5ne?*6>nrU|d-BJUIv
+zXG^)RCu<w~-&!)tK>;uCuV0^OoV8GEpBhe@Z9nq*ej`;g>}_EW(-_|lkal^i*DrMc
+ztJx^}y|2E#-heP~tVO6`QmY!?H5$)s%~N0^5Z{my1J0<B<qQ}WK{I$zZ^EKvjbcG^
+zGqSF%H%HDLi7(2&gwE%e)R|9OF+19;X-gkg{7Yl9junbM#X8;ZxVKx_su32~C{MA}
+zf-4i|#e6S@44XfXdru4Fge$<htO-6^10L6#ZeXiFRB!xIdTtnb=+Jr--wS3T51IyZ
+zd(&ll(Se>>m3FHR9F2TsyUtGarVifKUJt|;H~+Ng>av7%T4%lW<N{0<W2IB+95fE-
+z--8Qx?UqhXjItKPRZ|dcQ!Ss7@3CasBR>OunSU1%?;Dk)r3*mv__+EIt_;a6=qT;(
+zTsHjGql2Mwh_X9=A>!0Gyb*DiX_Qo?pNFI)rcrK+THYOL)W>F=I#spa9d^4pBp$j`
+zHz@BdGt}Z_b8;I+@)SA-Qc*t*`|`gjyx`T-Z(2yr5vW-#_e`%GS{`yrM7DSGTb7KP
+ziPnAzZe&A2Optu+tFb-%$y^foGWw9_38wC()&i!^5TVX&<IGH}aKdo8Y=Bce_spL0
+zWXJk+Dqx~KB;nQBsHuVaco=Uwnllf#)Y4GDwivVgx)AMeYEc<WnC$9R^~9QBezMK?
+z{`?>?PScMgb*mR(Wp_-yHTVf6RiOK)*Mnnv1u1z!1qPYI!~vbfuB-d%LX&p=ucOq=
+zvp3gw3&l0HlGP7u(6l)^VosABPMG*#rsL-I`xSD=Y_ToA`&oU{sho89D`;o_6}`Tn
+ztJnKZ*$0Iu8=ty(bu3VwCe5gDixAsKR`JNJz!G5N!!}KAR^pP{ocQ0#;6ter#)SZ-
+zi&>jm)XWSYC3JYJHD0IA3dQnJyk>0r&QV)U!+$__m_z1RpxJUetinj53K;LT|89{Y
+z&5H|I2W$2qu3%e)&Kt=Fsh64C?gw1c6fF~@#AIi_zpCj{S^~8?RG)BM0?BKXE&sT)
+zjjis^((2*#5{`h<&9Q7f&hGcQo0Vd|RoA0Wy|R5m(f;wJp+4X<me+tCYna^c*)&>Q
+zViM1CO?GnJ`;+E;*8O?ECJ6e@@m*ZNl14*1Tz3C2a*Ex**}3S~MPktr`<$p@k*HfZ
+zA*++$tKfrH)&oBI06AZ?r-LtyWE3}<c;ugPgX@2@6B8=us|_F30a~{?V*<9qQQM@J
+zF;s&e3bfuGlJ4`_;tK+HS)Mx^{uz5==R8Px@C3ZkyUoelgj>s<I-@(CztcKMF3N+=
+zsM;-FFIe||BF4iHa66qzygL|}KDu)?;UD@uGe&md!!=9;<Rk_Rxuz0V5RBMr_yyth
+zXHmW%0;pM~h~8%33>>99=y_)(#G=$JDlWbv{Y~Kk*Xl+Ba{^_39F5RhvU2%jb)=Wz
+zCg0N;?4rG6BT?J?OQ@Gx_IP%{Oz+c>YyjYC!*T0MKreaxrz|3@VG8zp`go5#x0O92
+z>C=DAjlcV;M&=u3yYunnzA)ti05gUagROZqn+O^eJSU9h%)6utwUIzyqAnnPsS^(S
+z9}i%z$go28-LIiC(hs9FP`4Mey-DswK?Fx@nDLLwiE2pZzE|=|m}dB{=x_;;XPC->
+z+UYnG=){U?rG&~Kwi5fPXC@N@&$Z;Df2rMi=Nz}q+u6yuw~Xnokvdq{V37>@Hk7VL
+zkBrhl^8FMz<UaHPN<0jCs(i{&I}W;lZDsLKChkw5uGw0$htvvf$KF!NG<3k46|Y?3
+znttu+sGo|>JW^Vcfng;AqlxSW+hx;sbG`W7Jh~QkRK!rtro}H}ih8@cf8<ua!+ULN
+z|8~)SfgoP4WHf0kBxtj4uvpQX1f`<W=r7|+@~<w1%NbtERDa_mGh~@!HO<q--A|_D
+z*=3D&B`B%1LGAZQ)slkF(q~mW@%Sl;<IOb}kVy=p7kLeNrDK%c9?fG<$KPd3QrKY8
+zKm+!W$*6sP#POlo-Hp`of7t{tErtjC*W9q~(@<tgm320}zyhy1teEMB{&rHhv0oZr
+z?c#Bye6Ax<e6G0T>J<!UmKTEa*xvhh$9L$X%_Y3^)3i+4g^}!8U*^RPK1rMkBqnM{
+zGV~Tpya>*6+h`Tm&(&&q6g(J1;7&&c&w#iiCf$cD14HYOWTBvoi=y_MgXEo?$Z(5d
+zCD=u8yB7llM2JxRbpuxjjrwY<QGW~?_4lS1LYTZied&bTv26IxM&AH7m0dC)|JXcP
+z@1mBlWc4RGX55cA`lqVWCe5CEx3777Jnm4PX^Rij0y%X_RQ6nTXIM)T-X8F^7TIr2
+z4QueqJ%B8)^>Sp&AEM8ikyK`I7hBj<`^4}2-*9y9#Q2^cNKjqkWc^9q<N?GW%>x-<
+zmJb_~&<tGLwlbV8KPo}>XU&(Bj$THlI|T=rh-pbAC>(%;6OUycCX{|5xeN7Fwr{y-
+z<!X1FITbu}VA|hCDyVp7soeDQ-4@9w^=cMv&q^6m=gLO|>!z3kvR<w|3U8hSzK;SE
+zzOy8jgr(on{o8Y8x1T4zV4l!Z`U^AvfxuDgJ9@mH@k%C6_HqeL7yTSxmnyriN{<^q
+zsWFZs;=4ik58=OM+z?;sV{bA$#R)H7A=yA4$!dOU0**2rW)-Y;)2MWPpWiM2GW1?L
+z+kkJPD7$qJc#^wj^=28VKD;22c(II8t{L{IhW*o`mf0HVhq3HV(8;dEuUbd`Y@vN+
+zx}*oCA}f=+Q@KSo=^-D3ALdA)uHLao{OvM&NH?EQtWYu3GWi7UF49Mmh4>QV_k11)
+z2Y@`ponM}Kl?Mg3UT!^O;eYm2xRkJb&QC3*6svXnNhGne>&a)`L?UjkOKkIX)hz!>
+z4B_p+^*f346so*cW+X1yBk`Kh(O_AIjH!9EOuqbd(zPys!vNt!coB8Nd%%D+D7;z5
+zA6M9eZm<tKWFF7ja~bPAoY1W-1<7Xp^4i2)o<&C<)Ul(@;n0du^>?lF{vWq>^G~Zq
+zJwd65G*M3n?->w{`n9Iq9|!-qT|9Rz;z;?ces(^wjfD4{kNf^_95{bI4xP<ByIxxk
+z#=#H2)?{xX&#ugx1pIGSbcdSw_w->9%}vOPvhn{HSA%GuwprY>TWB}86}Mv>N!lHU
+zv2(}poxYj#2cLoUl+N(~zgGSK*21hH;U`~fK)yKb)0=LIezSU2owK!#VC@c2UHW0W
+zs3&5e8gnw;eyB7vD_TvCm7RGz8#4amByYTRHU)Th9Z=roR>y)_VKC`F?_O2+lQ9eO
+zvryZqENHKqE*bEpA_2}jo?>I;9W7FZq(fM5c~w94Rzl6qjlM3(T^Qy<ST8@h+u2C^
+zUHaLF4lYg&pJ{r$_EhB2p4(#Ky)%I@<9Sb2HzA?^p~T1BwITyC+S$>XxH`|7DmE#^
+zsURdpRfO-Xk9S;g{j7xWRNfS4iKI@A8NPhu++tqU<<tCc?wIpw`5*91!ZYm&zN*tD
+z^qjMZldP-sXVV{Qq*6r=^%oFyC4Xg<y53q$Y@s6ZLw2zsewmuJTXRHFKlyS_MMlEE
+zX;fA`E5sGwF79@VRLo+7H=o#4Pn%`)y(~;_&#r=Dx|wiUkso!Nf*&+G=XgsVG!C`+
+zh}B#}jUR-J!T$XhW@oxT{HkTbVCu^-U%5?mYthZ}`aLFaz^8Y`;Uz|4pSqsu%_<Dl
+zn0MQHdeR>kHEZo$O7@kU5DqFq)?<qul3W+Gc!aw_*M-}slHm2v`gsdGp=>^xHD^gK
+zlyli8j_0(rnG-dV09)kERY;W3bYHv0PXFu(-G5iQfb!1?CtN}?&BZkT&_#D$rj=@E
+zH+?$bD`1#-h9-2TEf-92a8oUNk;4vOzcja&@M#sn?COx^zFAZ1ahZ{-rlDG+bayM}
+zZ=_~8T^u}7<QVKw^b3d`qIWbJQ4F*MHcQ<11xMMj$Dm|!<Qc128*C&cbJW#VP}f&O
+zH3V_=ACe&yZT7e9$X}~Blo@PXbn+}}`}9?&UK|BiE|LAGTp07Y^y`7NR>zE0wmhC<
+zgSP(+E>+7I2+lRN1bnSY8qi4|U|GL_*J$Rlbw;fA$YurhvV=3bo!(8l+pER=*jp@9
+zIA@fB5MwVsbIVVa^szK4GzQp3I4NDMDnc~eet&r8NW|MNS}?-k%@;&s_1bzdi<$cy
+zY5CXK^^4b@aUyL;${&4mgM#bI!Y<EnjA~_k3(9_WmYj#=#&bU`=vMMl_NVCZ)B^0k
+z6{c1-yb$mDu~ai{0#1AAsUw!7lwE>)l~vH>GYpUkkV?Cy9rzG<&0Q0N+<2!wzj6y4
+zcJasXI)1ed_<dJlv1(MR@wntVYQPuaVVO=?rnQ;?va|`PS$Ho)dou?dl7Qh~)%cz2
+zu_%En0aR8Se}$|hbTlVA*_~4zhJu)RFIF^WRszzHq5|YU0kaTGR5Y}u4~n<e_D``5
+z4wmfT!cGlf^}k9Q2Y9{gLH$cFYV1#vJJZRC#&>V+7d4uC0!>`NL9^vqK}PWN`yCqQ
+z*CT-xQo50Mc#{Mx`bjGzwkfmqS|C(8K+363FMDXZLr|6@*NNa`O?ZB_E9*hQBX^vU
+z`^>_weNSRgD&w>VXizY{t4`nHc1d32yeboA^EBKbOEGr>GB~(?CUPo-hBS5lw5~HT
+zX};U3QlHcR^)}!$nROy~GtXq@=;OF|YU2k-v~#AoYG*1uVRvt`>95iO{bfK4Dlhx;
+zVV5o1UfR*V--(j6?>ghxsr)Cbi%~I|+WRdh+O(it3*2-mU!o}?d**plh()XXm;TAi
+z@>o1kyDX=0gI^hQ_M)A<0nj<>{Z}!KAa0pRWW??^i>0p1$Z0XtK4g4|lMT5703;Ol
+zGxiJFe}JWeU}|Wvd|9zJ*UN27hce#~UpP#JW)dc!lSWKwl-T8|nz0lOy9sJ>@cPf^
+zwCFR7krXE~pycc`E_Vj>0{X|^SO7nw#-V<<!n#N-(4!;Oc`e9SCq5Ey%Nr%qlcu$G
+zbemm$VWQL6&Z@)en%7`(30{1%O1`E6PAh25$RkAsobsS&A0x1ah&K$Uho2Ko<kf|a
+z6omk(@1<gZY-Q&MsHK>tw8YqEQD2Pi>DQXvS%CJo#*>rofQzzzif?mzl>bN*#cH<$
+znl}U#s`2BI(u%9kwM}PaG}5TCjrRopCg--iLIdp7F2nVrHg|0{t0cmXG-r5>6I|!N
+z+<eC#=CiJc)LQZEvL~kUcW3FVC7h@hDujMtm$KqXg&dwq9Ckte)CB$KbCS}w+cdAG
+z58p_>;gpc;qedyoc!l{^4?4^ZNXCtxZ7PAx;K>@yYovF~6llpmi3aUIfs&*<a+AKe
+zv4{ATqkjx``{3WKelJuua#0bI)Nt+p*7|JcXvcz-r<-vJ@-(@pN81%5Q`-X~TK#;t
+zRC^6B9;u^Oz#Jm&yHZV7L2G}s5276yC>D#I`?h5qm>(DL9T&6;rsD1Q@v`zXxG->h
+z=jNi@Co4%wiPlw-mmbWgQa|xa`vfws^^#y}6v)dWDLL}6r{Y$zxasGpI-9w4^^Eg2
+zQ?czAZLiYwanbuzDFr4R7`4#?SztSjf|dhy^(%-4wZAFpH{avL;&ovADse9N!U9IU
+z+y4gcGXfGAXGE_g?-78|57Me^yYP(Na)YrIMo=pM%hjnS_N9^rMoO?0ZH@FLTl@M;
+zXu-NQ-He5N>gw@w9m3PIwEi_eZXJ-fh48O>7QaG^d9GE-F?%~Rv;V*<|CFsx-MiHB
+z1fjG{b=(p;jpCKeU<_k!AVew~z}~FwkrhN3kHq$lR)UVD4|hverc|Tks+V;oTK^7{
+z4>O$4)j?ZdCXaME%Ehv4C0lL$Mk}*5U(X^Zye@CaIE-bBvT~(<(Q@IPy$$Lp<hK5#
+z#r5uuB<VuE{|nr78kiaR4-h$C=wBOhQ?e4twFe&QvS5ubtW<0PAQNA#onDXz2<_Yr
+z*ZGMPa5pp?|5?5)K=I$+D=F8^lId=hx>ypsoCLOZdK6Y5O<2of5)cub!Dt<80`xjk
+zmEQzMmj8*Bao=jptQ8~XR9yg8bc$8fmOSN{q#%S)BAPQR8GoM}xV{jc#P_ft=q71=
+zdJ~`erJEGubJZk$O17^#>volL%k?tsR$1a(?XaAL23+l;;OuRPy~)D{x1Wf^C;cha
+zH@%RZnHtJr<}61^26;Ozy;&QA01UhR>VDh`i;>;dy6ta)Kds*xjtD?B{z$higt-Tt
+zF%nM-F!BjatPJoi$WJGy@>;_P?}AE}Tnq1-%ZHY{Zn|;g<UFOG%5Jh}joL{HO+0dq
+zSm6t^^U#r1CYJ$(#N%|G?yH!*@4kN$Vd!Y@v4isf+b?)gZy^$tDB9dFS+s>;st;xD
+zo3Q;i<-Cmwm=t2#wc|-uyIZYNd^<7vlra7w9TyPxx{y;V?re8ken)gIRE_TpD|j!u
+zcyDVX&Z;L3*=-GFq4G|{ly<(S9gwpRKQFdLF;WFmf*@_`8MkX`z2S`GAG0g5{oh4m
+zB?bB^#QA%RqwX@osdK_f=UX=FB}A&RzeqfYd!GDXXi95zY1x_BiKJcKHeVx1AZ)h(
+z89Z1gt>F&I5!3^H0Z8ekoq8kV!ID{E+F7sV^G%1p<RsB!B%Rwl<XVts8hcXJv{#*v
+zWfOmLa<W#?H~rs?yZ!3?sPpg`AX=lWYIqZWP#Y?iQ>4Ybzyt^S%qIY^m#Nlo`glb)
+zS4?(N6RMu9En2-eTB(VH>uIG?nNW}6w#YK0HnNfAKS|~H!dv?v&&IYHy|NzAg-S0n
+zPiZnwd5yu+*tge6fC~s^4b$8TgpzvJb71~+f6G@{(?LL+GuLQ_8GJ)s)S=!9_jUnD
+zHkfhjb&nWyQzU7s)8Z+Dk)PAuNc%Bte<ED%fzI7E8di8_%RNXV$>5D=VGs|W6#y@`
+zmSLb<JN0c|0~TEsz=4;?QVZCnPPvjdws!Q31y5<7OTb#FrR=W-qQvI$wzdaH+G|fF
+zTNXPkE?V9v?<*sm&%PrgShH#LaAT}>ZfDhqEjYoRTlu$V_58$m$Z(V<pJCvqh~L>a
+z7HSUCnF<bW*h$s9TwLRINb~METUZ(M&p4}-HL8kC=LtpqW@0iWzY8??xGRSfhdhgm
+z4`}4G(SAXVc1vmT-aNV#kPyA485vl$z_xnj#9B%fl`cP9h94Bt#pLV5Ay+4V06I3m
+z0=A42PdZ{nw0gYf9>S^g^=EC|(KzK(ii_s)aLVN!$V$nGs)Klx-IGlft_j^SMe2wB
+zV+E{Z*tI;o@nVqa8V~Ov#rN#A?N(oE;$3L}kLrH<=cyhy084uB)S12D!9rM#-z!jM
+z9k#Hc#9H?B+B^y6m74r*kt-s<Y9`1sT&c$|>Kvc}ZR&ZWJk=?ec0`ATN&$`<!Gw3s
+z<nJHI8Y1I_)5sdll6G=J2h`!-7OI)d(i~*b4i%)R>MqQR5#B3HS-l|&PZGB}2ryf6
+zuWi%;dSo}#d@37~=<BY)ynqeWHlM=i9YBZo-BWM8g!(+&>dZSl!0FZx_`X>x>Q>~M
+z^tXLwTM=e0oK0OiXRbJz3YH2{24UPY{67cHLJc3`$q9+-B`&ubt()HLg>7}VjJFgy
+z)Ba>~B!)daEbR5ZB&>A>7L;1$#_TdXo@ydU2}%X8_D=yvUF?FE_wot>s-m4CxS;%$
+zfL*NsIqscPjx$15!_d;HFm*m6mNwI$bm?@hN~G|Ut+3sie*)|;9=XdN*i8(TDr@pN
+zzeCH^!QszA_P-+Oml60&1BqW<_?B%JCaTI9s7{B*I0FTdZ<-IJD~D3Or2%#y+n}u4
+zj4Fv)1wOKK=1WH6dSFZj!DS~R)lM=vwLBp3(8d+x!+sYlQvN!fen0V$MJVn2CtJ&B
+zkWz_x^QFXx-@xUhbf_UxWX!b3?#sg8gv%}o@wptx9`a@eaX-DG_C>ie5GF_%ZFp1i
+z@F+P^ImWo|0L!%G5_TBB@vdNv5AYMUPpll$fLi4<%j>z|ruhU;CqF5c^Yv(=y>DWc
+zgwls9y}RLXL%5rEkJf>1TQs89<$hnW{rQ<SnwKQ`z~n^AH_kDx+zh{Qsn;UZqOLU8
+z&{ccmhLy6j?Nr9l$=zplUw=_u5Dz{se7|DC%KPj>=kqc0rJd<TY`r}>Y_jB^J3HG1
+zoo>^Xg9iWM>^WvC><E+HG<-CBL`AI~iwuL&1-nzSY)7Bv$g1eB<5D86s!BV@@GUwL
+zYaMZ>m&$u@Q>}q<>qQW<R2~N&%Fx#8$Y6@v+`qhg>vY3$2%@>;+nN!?d9oUMoZb+n
+zeI~@I&ZGb48h34;qw28r8nq`E;G;rT8=&5eR^F2Ct=rHhb0(@S#jAwCFC49r(ge@6
+zSdN4eQksa6g~j{{b;d*^!D6}{TYZ&9^%?@7Ep)71o}O{%D@WU}C#)UsD;{`)7pK~l
+zH1uK&)2q4?NMgY;?MiOT!uZ%Yr%W5E;|E6-QMhoC{HuKC3WFMGDLPi&OhPHIn<)4W
+z?BZGW(?$`9?UBQtj85X_X$|svFEtUM`8CCVF7YTBe<CkySKK?+)m&-)gP+3GtgEgw
+zHz8!pMti$i#e`eGDE#BN+#^xwSJtN`!W<z`&f@mbk4Vm0d7YWupMW=ePeET*LeY<p
+zhk<DXhyI2rt69-Ip{bQHf|<|GmjjrTudF}@^q#GyQhscIuWdoE!wVSC-}^FcowwI|
+zF5b6EG<iO!1a6{62Xy`^lQ@)X?N%`wcq7~<>nuIn(JGT(4IZSJT-0_4&G;8s2Vz{3
+zh37gHZw+fp2o7v93`=5+(okuS5?k~LrX37dAL+9aP4F`^13wr!jEC&kGF@d^3{7NN
+z{t7=^d|_1JPCw(2IpV82WW(WY2+q)UDK(1LO;UND5ippcx~SKzKCjl3L{X!-4Cqgg
+z*|ER;ZU1e_A7Y4FBTtqJ`Q>@|RnETFdu)&vi-3$yrWJaxxq8zn4hVDH@Fcm;tUh!?
+z==7L_P~(-_|3!hC-zv0yo;XrurB!Jok^_EeX%w0GS)W#G%htRy7~*@@Boi!HFdmYF
+zM-u7n+9#5R<UEW_T>SMHdH>B+eX1GxBlAig8c;7+)#ov^WggGhBLI0O*|c1lFzBOn
+zKO!`4(Ae#?qB}tZ*H>;@SoYv8fo`5HqE&hWMGh&bcBu~>2S{adZq%_hVnTK+y%FnG
+zNp>P~BscH!aAE=b)*&w+2PNk!w4;;S_;gzz^`uI&-oyv=a3_APs^3E5Vzp#E{q}Kb
+zI|aaUn7*O6`R=bKX=L7XEJaF*Qh2vC;MpHdXs=+XNkbU<3wxXZ<PmaI`ZpPCKjY>1
+zUzID<!OFt9q%>AiyeU6wQax^ZH%cJWnm*UM?cGJMSKF^AZ^gEtDent^&YEq`#mXPg
+z+|C6%=+hhz3twb*&nT28`%~E|0~Ia15m})zwXq+~s0}#w6>uhvu}SGr$2hLq<(}yH
+zrSl5^2m;MEu>yG{mHiQ#XrDW|<ec@?T!WMTY*(jbIO?vRW3#fc^`z!kUvN#VoRWiU
+zs3Ohyz$G+5%GtA9P+$%7@<HwJyFn6hi$<Ng+Ow3tGFXyF>rqfoFE=J>q(F@r$ii>K
+zI0|hP2DhRqQf&fns4cSE=pDCVtG4PoR;SlM*Tz#_J)KrDB;<W!S9_wy6Jd4=H?d{>
+zGA5<5JhrCobE2TGCFO5ii(zP+gP;mnb_d1YcZ+Aq%BXtym}>#o(6bx*wLY%KS-Q2~
+za!{xQ@(wEQa2X$CSR14YNiLY=bVvGNqW<Cxu3}Q^^JQ^Dvp-VlLW};iNKx0@1f{mc
+zxv+8|Bp!P>j+Co4@ef-W*Z5taA9%Wg9UwXyWB`1#VKQ$d8O>(QW8|?Hi4(Ct+p{Ct
+zCQBfc!g1)J!RawK)w{PwcrrlpQSF(}qxl$&?>Sera|=$>d0CVe{sIyaqm~u=qL8K{
+z^u3)_8F|~qb#WaP&dwsr<aP^772RjC{$~VDo8UIXx!pqT5TDk_GDKclaAm`L%$axd
+zn|^^e=$Q|~vS(K(8*>8MPb?ds`=#4w)5`06+FO3BABQQg0_+bs>F>p{6}n|%PXuhF
+zn%tvGodrG22o6F93p*Meb88&EO@24a<`U&Jop&hz2D}kRdj_;SyL{8iI&j^Uq-jg6
+zX}p*6+^Eq!P&#b55DL(^N3M0s2sU$uS@iOI8mj0t=^}CL_i7X@Q5f7;oK(ef@vYvH
+zfDd!{@P91dPA$)*&`G<6Y!y7bXW^M80nZVhg-k$^?874Y!hc3*pk3W-+K~sw4I?*B
+zH7?Cqd-`FH|3TuiL$2*t41!7*jI@dcNPmoV#LH8rCZf6{%eLbcL@sHr$GKj}ZgLB*
+z!9)~+ew@T~gGQBIzY@*(FNcpC?=goduYk{_8h+?RmDFCva~I40XZw9=FqLpnwX9Ip
+zKF!=PjbmWleKJ;!wLQmy#sf-zua`H>0+kC8eL+@df9)r+?MK4WiPf5}ODETsdQZBm
+zmz-!r{}Lz(D^pxkL(bG5<O3uMxtkc_kSX3OqLKK~?d^~ZWZL;E)ddg)363{)QfAgH
+z7AS>?bo|*gPlk8R5T!C0gG>oFGRNg92CclcOuvWkWTfXBw+ny8S!0YbRj>AQUpFR1
+zPT5PND+uc}%Zl@_r^y9exALnCio20+9dNzv=5&Vn0bY>v4E97z6G%GFEN5gq6@KxI
+z2(8zjROW!HLAsO9D^~LUpk7ce&n#<?WaJAi02B*~E0oWa$5McbP<Nhdi@#pIunTH_
+zjV-hAP<Ur_I(T|)cSM1ja>i+0GL=QwaJ@4q$mS*u{(F5U@-T2U7^-}FugF!xl2jOU
+z8=XOw1Itte{*_X%Sm>bFLBBWhhsFt8O#|uwEq$jm*>)<I6qFUtnw9UZ(l~HwgJq5E
+zK$odK&7KdM8`Gh!cV>Q;#>)g&+xcYmg@>-y)j0#VyAy1bTU~N$kx38niKPz@WfI(V
+zGW_XIE4+dJzK5V{3@a2~2tmwtWlp>ba<3TnE4UL1uT`2`9FZ+z4!h3%=~NE)eASn(
+z=FZg<SVrV&mVE}@MAd~J=%cDa{8q)o`F!|j`1XWHlG>AH6S|YYR6fRlloI_Y%@oJ7
+z%L$zV_G8_?midQ#z=?)~pQ)1Tb02E=S?@3xG>M_;PyXv}C4OpguRTj&sWwnyDQOoh
+z9df5l@GbVo5w2p#b>Q;MI3E;!Pr0EuJQ}dQqh>%6S`Yj}*Sn8<2lkfUOxCy#cbr2~
+zE*33ppql>Xm<-ytMI3z7$KnZwDhD};eM*i=)C<k!zrt~{#}PXajG+pN8*BXwsQiU(
+zRQNM^!1R*!)AY7#CMH~`4mSC^7a<>Z^s*izxF9S1Azdh{$7roKrVRX_E=@U4c!K7a
+zQlK3W059wFMh16SigbeCM5d@_VhhWG6Cv=OY+gj3yMz5ZgC(*B`zg$$Y22C^w#HM=
+zit1bOl6AgRSWq3;z`0)RuSWavp1c><ET^m0cXZhxek0n$-fC)s&(#hu6B={_!D4T-
+zclEQ^L@4xLt5-UxN%bE}c91yB=^pXaA+CF#A#_?XT(-n3L^ouOFMlV0k>%Z8;_BlF
+zsV@xPVEj}Q?E!GK_rx*m3G%I7Q0XKapY;&zos{<AIXk=Mz3kDjILG<{jNzZp#;Wdy
+zULgGB_ZeqiSZX~=gW#;1bz7A1f9GH4k#TlM>U<U+wvW6R%Z$Ua51Y~$vr13$bTn8W
+zFR(p^(K-~eQNbnYV-w?$($)Dl6HBuv)Sl@-SlMIpwUmz3Ct*`|Fto7OwU$+Phe=Y&
+zD=#jr=Azq!sDo9ef=FCWjY`-sbicK%+rHk$UFfZ#UsW-^GrXkV;27d)*HQR~ZPNQW
+zs@(W<tE_ne@Vez1%#OENZhJUWe<n5a0mAhA&}%X=)^xuPcBfIPG{SmjB%3Au$fmDv
+zU20U5US-vbQ7d5K3zOcha-_-gR^J&L<bBr`;$sa2<W81ut7k_D#<Bbw#27mxh~~P_
+zBGyg2d0e4npY~r)%iFjuyy{~LaF_gUsjAvje^#ARw4}_kmGTL*67={;2GOnN`u@mb
+zygC<ZICm-(nSEF7lU6_LhLaaz#H|vjohaQ;ou9f<7ivQq`7PCH<?WbJjT3XuMyy<7
+zUc-DFJKkgN1+({H<*<$k6R#=0YX}#a4;%wR26-|V&%G-E`lNJ^_{EFcw;Wt#vi|N=
+z*?C006KPYT<{NEJ-v+x*)&=#-j=FuHoJtkL&@DiV`r=UQmET%i??~S%DZgM%Y%W0!
+zZQZUGFZ-9^OZEYzQSdAU<W-NWLU+2ej;L}|h{a<h=J)Q2-<HF`S^!qL4^lI+iTVd2
+zY8|@V+7a^dk(D?QR8q;7!K1t`i#(n?e9AxeM;z1m+hj6`6ZVLbs6CN#p1l2KLJ#zi
+z*UN#REQnbQR3VllJIxYQtX?n=&f)MUY@QJJ0frJ<qPWSS`u}RV{UqPvB*MM}>t09`
+z0uPG62Nsi}Y0bo?F{S3_Sy8B`+<JU|sx3Td+pFpjQ-J)nsD=MW(!%F`iCUZSvCC5T
+z`WT>Jt4dKi@1ghB?zw4idVm#<FxWC<A|k0EIdT;pzwjQ)xKO;|MlrBP&o^0SZws&v
+z$BjD01qHrYmMyzch9rmgEH{WWyNRC{geUtx^_~AfA(=9{(XPnlzqRXq7SB2@f>u3E
+zjRJaUulBtu0W+xP>MuX>@Tr}!R9omhDCA229^=**Rj%wSj~@&Oy$V^@L;{a<x(2G%
+zt7{Y(qtgL~(V;mn)JAa&yKzkRm=;tnI2kfRpnNYgMV*phyYA!l#MIN0co(9yAIRjO
+zxKXATdUZZa1l=6i=Dq(Rkg+<0F9oWi+YFn-m&~GFmcx7P>$5}t4BLGQ6DHjw-PX^n
+zkf}2l!}YkyHfIr}WhX<JHaW`<#s0wfPk$^BaE*29EUjO!sm31SmjHJK^<FN=4_2B=
+ziW3D;E=YR00d>_ZjyTz^r3~*EJQZipo5ro`?0P`S76{A1s;93i99qS#YPnG&PTo~l
+zwrvc?pL)2kZ^yuZswXFMG|-kKVn5zOB4OpZv)tlz1k1OqPJkAxXrZkCOpB%fnI7jb
+z3M4Xal?%{E$lJWVl<JkZ>t)jX6Lp%ZIyi8#sMZi4`1@#fUq>7`uGVuj-~^kzbUCbs
+z4{R6hwtwvX8*?F`@?fSs6C8(CA1a;#d%<@&1Nr@nhMC@@i!9TVp)J}$H&$ZyLi!pO
+zxp+Gt&9gyB>hbVT1%I@PQHd*lB}<hO*xBLWYSNI3*-=s)9??VnPzTVMv*0jsb3bLz
+zhP(mPF<OZ4SX6Rn9%r}SqTH`meOh=;hQ;FFUF$l|7Wt(o79JR;p2Rq2S)=hoTfq0t
+zbL&Yr-zdD9LF1VJcp-WS7!;U)Z#v1*xac;vZt>|EqCq`-JRoJpS9@kPvCiV9o65b~
+zhuh^2NsdO3lwsJ?u3&ens-yq|?NZcAkG`w+*7!rTd7g0`^{Ia;Kw+|BMM#YiI3lJs
+zr|6g9|G9PP@$UOlw=gS=@9#t_yrB5*L#a%g^34?0iT`|&CaXcFjTf6keVxH*#5QRo
+z_d$O4kYS(@Z>CS08$X<GMy_={8=yU4y>Y(_wAQ>>RlXP$uZTRZgvh8S?Ph+*n<e01
+zR<q(*Noid?>H>wb6_ftpQh#J`w>{iHZ>4h8)`JcN|1)afFbrr1UNS0qo;t;=o?#t|
+z>v-A&x^+9Gx8nOKx8&1Ish;}NPoX={sI>UAVeBJIxBHi-yvdDw?~+M(e-&$#>*(ed
+zXIS^&4P^7tTId8(uVO0c6d1jJx(#)+h^)Qd(=Pe+CyaCnt<Q=_(YIo6;7{@^WB$6_
+zA93%OS*x$-3SNlxRm#lA@^+oE5x-SwqDSq_FMwDO<y8-x6FUe`*T{0_x~?~9Zt1^A
+z7wK;UGr<?gFJc3pr(NC@G_2!P@f_FcW1<T!p5g(@xMIX-_pL`IYznOfH@DO)FxHQ3
+zxT&W#)KV1-+?g9(3ugGJW-r5NA7`-yQl+I-g=;w45*SB$CQ(kUGx8@X-=D`v-Er~S
+z{MRcl;x#ftt!x+M;>$eC?dNj|<*o^9unhJ3?h$BdV!ZeFuW>kqZKn!@i!%`m;Ppnb
+zj3mob9X901sZoz-|C`Ng#fg+}5dy$YUlPoO%ESCpK|kaZ@J+A1_n1z$nSK*y*{7qF
+z-j#6zT=iw4al>EtIKnCdQ-h8&j^EZTo%x-Oga8%9F{=RGefq5Dq@O6JI9Jzp&hLMJ
+zTt+=gIrEM(d=j#}%bpU2ZZ2GS??+`=AGgUt92KuWM{V5uy{#5#brM`7rVvTV(MsEW
+z>1t-6KxdkMr{ss4QMDwWmV#KN&A`{j@95V;_z0=bQXdC9T3%4|Y{@($(xB!R=%lA8
+z>V1#K78IzaIRF-f_jOegHC`XYT8Y-NP%7#+Cc1P;AHa#SKZnCAP5cM9uxywSYxz$Y
+z_6-6fGr|Otw`SIo|4%BQ<l*Z4?!=p*ize!PdJwv|RppO8^5uE~W@V!jnRInfZTJ1>
+zJZ$S<?fFMUYmVczR&$8KTdW~sdlCy%)Q79X_%4`l*%alpM>Yc=*Z_<*me4#Xki0kn
+zk$E5=pxL?sKgT!teb^?K1r)!~16p+i{}>H!M*#O+fp>i)K3;#<xsw{r+)>~uc66g;
+zG8N?8@&v`*DoC9x*>bz2R8^_)Q-KZYKf3<W)R`)@09pj+Z#A$~+Cx((mG5rQf&QZw
+z$vptL-hO#cPHr&H*t_tk<lpcmnYSiKz6`#fj@0K=!q4rX7pZH_h<k_a`9rBa4i(S+
+z0zp29d^S5OGi~QT+NHmK1OpaIYyM2Cxh*)J{?31X`)}6~>_yny=43^bfr`ccbzKpR
+zqSnocPYn+s9ou^1VXt#}nzMlHv7g$4KI~|JEatS3q9qD`Vu9QEbQ{nYF~hlN3!iWY
+z;&cIT%^uB1NX1CSL;K%8+HP~`@hfMPMbOxU2Bl#<J-FtFtzvc>ky!VyU}6%;0~5_*
+zir{eDpT9+%mX#A`_1kN)Hxf;h{+#^QkTe#!sZ@@7I51Olb%Lju3(@Rsk+CPcF62dd
+z!<tt6BCcvsLHIJJN7GicVY&?U?RROY)YWNW|IfP{MXl|-y=e+CQBx{FZdN~a@-~rm
+zH)1GN{!oz-@@(P1?c>m$S0&IE@-U#5FSb*O5_1!Jj>C_CNE7+Y&1hy<p+$CYl1)*Y
+zA&H$;6J-w4c!>Hfx3YY<JK!%x6z!3i)dcy9;Cu4Q^j0PJ-vwV97V*Ej%5G@eSSEzI
+zujpy!a4T_9S)+qv>G~hd1;}dnpy++yNFrl6!`bEGpIyq+RG97NKRjlZVW*Mxl&|H`
+zsV8lO-IEXZXG14q@dn9GA#pbLb=9Luu-)DgEko$af10vD%oJLcsh~!GHYcLcHTrn>
+zqISV+2?LMd<IYl$m3hO52TpbYicv%<rf2EnAjVd^w?wZZAWJ!6oh>qbe8ME_76cqX
+zRR{c-f{$2>YdK<Qk-L~Gi}w%0Eviy3eTz1I^;(yfzW;tKAZbJU-E!t!>jyM{MZdk$
+z2r4Z+)Zj!Flq0f(^#x%=l~+mX@Er(A)3<J=it>8`=Bi;9mYopcYQGY{@UhA_t~Prt
+za3Hv>YaM36P8eC!jC3m~1$e1OY4bx?(TG*B*HKvKtyV-r1*G7CaE|I}br)}qE)3n;
+zq!Voc@_~KRez1r!fZjw1^akVGCTGlT@_$r@iLo8u+nHFZ6B^weO`4sX8Y;x9!zF>_
+zrwR@XrCbgp55VOheAb<SMKNw9uEw-GnA=i6`*r`V48P4j(P-`8Xi-#m9jHB3oe|8b
+zeZQ$i-H?`c%;RoDSGr0u%E7u}g&f)&_|8RGZ-rL3{$vFcsiFI<HJ|&X%=DDZE_GpE
+z9~jF~KMoQqWgrJfAHmG6OPYPk3q#%(UQU(kqMIkJF@&l<>GVvGw)IiamBjn1g^3@U
+zdxM)z{4`&W4pqFat56hew3*2}r%Nxjtb6pFtAn#HwiMN@7Zilu?8BMQ@Y?Vamh9Hp
+z%nN%S#UDMq&v^C=7&Jm?6smuet%25Bv<_p&{E?~Kz0;RKHLq_-KQMcj{PIUnOY-w#
+zYFd7j{b=Ll1DgFd>wgSc;d@YjLtfz9b-^Q?tGjxhQFe7KPFJj<J(U}CGeBZs)=JVR
+zvk#DaA>y?uFbXneRqS-pXRk%V+!)7iDb=7k$mo$!_BAbjs3~{L1qnW7?83b2{$W0%
+z`~&tleIh5!9PfZu(HaWyxTn*?v!fh<4cqNqRM?5|`^TNL6LK?BIE?V6bsAP!6<-VG
+zdO7}0Yy4iWfZ%CK=k8N~jjtK*h0Z(&o4vf5F&5n|Dgqz8hpq)M!b}~+oX<N7lEe1H
+z%XSw}VhG7cS`ZmR<#4aqVKk2KU4EtvK$<m6eSiG7SM~|#bcCFy@XSdnzQ<cqxG<^7
+z6J7YQQ7LyacL%fpg!HRFcwe95Ie0_A<wDQY^X9mfSr=)go@-~>UkmkfRp97r1&Ky4
+zY7UN04ipMmBYfv3e)*~O-g?VLH*Yk5Kk(<5G;9xl!1o*ij&YeI?S0iGP&*=zeE4y$
+z`9e`)y06{8Q<$O<&u-~lM%1_p=D$>sVK2SO&fMaY&4Y}f+(eVa2RQ6dhB%E=rT-*_
+zZrft8{+CSjpzu6;{N37M2HQtj?5b*AgV6q<4fg7gY~F6ey9eIxISFemVH3mI<4<Sn
+zDnVDS5+^wj2@3c2==;@&VJ3Qr2_3FOsRlaYju}*!!FfH#FCw>d2|zx6W0W14xb>9C
+zs$ePgh{}5*`}3N}l@zrM_Hrka`bIGx8I$IsB|lbhYcdGn$w)35Q`>*dqa=|}<-Dwg
+z`90UwOs}7{>xFzcfGLT3iRgH>`_K3a>9>&=Pb;6n=-Rh+*La^p&Np7EPX88iNw3Cw
+zt#NH{=N@e9<@(S4Xj9q(;g4U4kTg+T!Nvyf5BpUY?)eCbQ+6`89#S(?X5MZV*fGp`
+z1Qc~4t-eTh_G##FBF@pIyz`pL4K=rjuB0&s;N-pU=`yr;Qi7R5rue`kX|zLYwjVc5
+zgl5!}bzaS>^~-JWQ`Y;P@9$}G^Pd%M0qFNcM$k0Al^`8_CcKt((F@q!^y&B!ES|EX
+ze5`rG?Ax3vC`;o`IC$0HQq!KwgAP>Q<2eJi_G<m47~zoKZ&@`*2ZP_}ku#U;x-{n&
+z|JJ&!(jgidC%4NfZv-vGWyWsqUXS;1$bIDTrp{zPjZ{frd+Ee@)@Z2zWk*PD5@OhX
+z`RY_l1sbXi1)(qwgX9=H=@Q7wm-X@VF%d<o#(K9`M|Q-sp<pgd)Z1D&Nu-1=2&W>f
+z)u%F`$J@Jh3VZX(*D%b*NAQ4G?{xM-!dZ{XPgK+a++*0X3(f+7wD-xvrFaL;;>6=B
+z3_C5Ed#i4C2#TK_1$zg_*CcZ!VQdyZxWSdMQ#KD0W*v5mJ>md8QXm5PEbJrUjC=)C
+z-c1G)PaDdcTY`NLb%@J7^q{WTS%<@7>o`Z9Ms0^|7_@iyS413O=?eD09u?0x0PWnq
+z9o&S@4gPqb0{wVkd6wkx&++O3NI`3n2<;?mYjlu{iKqQXwBL2d6okMMB~Nr1p6y`N
+zO)iI~@9w&lC&V$flq0UQ7d?o)(sQmtE(u9r8qv5Y2s=9wSo*t3fGM&9p11xE5Vq0I
+zJ(UxmRBa`{6FKtUyB{g*xC7pN6#7Nd^-;olsCc#wMT9B3#f^ptiPj69tJoeFyS#lT
+z4{c}h#BwBm?$+KceO&*&KEflL-W%jN=|!gIFY44G$R)@k@95cZ-dO^BW%+tAP%F&`
+zw%~>Y7PqKBKbzug{ykY+;>;H;E^=I&6kK`Lhx9c?oxnUm=5fXdM7voV#Y?XBP&fjf
+zRHO&&+%#36Z%k4f>J?h3+g5PV`tG6MQ<?HS&g)v`o0^qERY{hkMAsprbI-4t0(`U6
+zPl~=ZP7cip)7cj(e|~@6Fsi}*-bco?^ssC_)V610Qiw@+q{!JA#x~4y@6}qsmnr#^
+z&Ih0`g^qb0tjKrO*%B~nJX-+g3QLIsCo;4x62GqOr+`;}$kTSJaFGoD<9eZ2uDi{0
+z@9u;SEyywUPzU%4E6pb@_vRzuf{)l$(dB|Op}n+%lT_seW8?iP@q(9uYI>U+UOp0i
+zmToUt<y@4_Y@=GWRY&TO7U-L>9p$%d$_B%q!45$#{dg(wo+H<scq7|5-gK!2(o>6o
+zNvtNUvkYJ_Se<A`SjR2y-n231)Xbrk$-~}I7hIO5HupSO*&uT7-7PzbkFg+ahG1gN
+zCu_-lskjI#5B@vky#i(kH(4=%$rP+wq-3@Z>X!0W<$?xJ2^Lh94e4yzC*j%ZYtup&
+z-Uq2gHs^K>&(GON#$NS%zof57%VN^F-!&gw2(MGz@$)RvG*uLUHpwl$oHT!N>h&J^
+z@n}(j@<pj2nHZF@ScLAj{Q#Y16XbOoKNcWu3wA|L8rd;`=cAjORlr=1@9=XPU8ZXr
+zzpm;wvwTR&LsWCwEL)n3zH^8;dO{2vaBL42r75Ys>Wq~N(u_U}S9N}WfrxnQl>SB(
+z4e<?E{Xs{nv_+ID8qD3c&$AckDpoI4kKC$ZBaPKMMp%4J*vSkAX*>UMcjD|36dkUN
+zEGd32C|c&FhfyaYE9pUVl5ix>V8AN9d!6T}g@?d;^m_O<V;5u7li{x!ZE=|UH6lJQ
+ze2&EfeWIs)m6K^7t*Y4e;LdXRG8Hn%|8aEY(NO*WAJ0e8hDzC&HdM0j>r_JaO7<;;
+z7!1a4W>kt~r?StGkZjra8S6-4>|~j-j@@7wX8-#A&bjA(?mg$8d;fdi_xp8U&&NYX
+z3>%a<l&nGJXV2|#R&<?kGBJ*S&UM~YQb*zxpyZt88)Cx&P-yjdVtK#GqtMh}o~lC=
+zD=YrMK5wG-{ZU|^s)}We@U-SDMyfc8-s0%wV3!nJ$B~gl>f62GqYn6MEi@?hKH{01
+zi*Gj}LEU&{OqGE?!!=~}205HezbBjcrngLOB1myEy}m;Cz^t2JpW3Gx8)fsgh)a9P
+z#mYsf5<Z;{>>+=JUG~T!Q-?0V#@_=4U@?B%9R$7#FZ=V8K^W@zY#XfZa^&Pv){zRT
+z`I^U)yS<?Q@X;Ga<f6`71#*<3iCQ%2k+~qrdg5o5D?ei2z&pD^TiiowVX;m$Iwzsd
+zL-^s4AztKzP`c%?m?t7ufh!}&K~xB_H63+$^bf@<3^b+Qj3?arS~DP_KC<1SwP3@a
+z)aIt*|KoRe`_+1Y^RviAf01JL7ZrZ}U|DxJr~6^sn(CIn;>e0>Ne!BeJ802`W66vY
+z*K;}xk)EpSP7~5tm3>7^%G?8q$ioslB%#u#D0bJqLK^=*089C>p0~_CN>PDzxkh#k
+zL%W6g%7q;=Ncuc~tP_Qmzk(WF&!N~`2MX689E=2}FGCvt9LOP*-`-#n%dpPg^}Yb3
+zDshx(FyZxqN%-W_q@TO-@;UadxX)%7iF!Xidvmr5;^~ST^SXBgcw70*-|&jIA4&7J
+zhUT4;`E<HMSG}QyWN;g1tss~5xqUJ&Bn;vI^#hcC7AglLN1jJZ!=i;k;?<3n3Nwg#
+z33{QqYSpl?(mPAB{e7Wj)DY3@TP8U2X9@0~!0r9JlAER8Td8%XbEui(HAw}juBzF^
+z?W-u;4Uf7VXz)qwG7nQGIei{pcP%h){BEyBZ0UI`)$w~_3aAjT+uUq90%pTa|0S9;
+zj6<InuMIyg{_0ZxD~umCetYR2JWwyX-WgG~N4a@VM{qDi&Z(p==gN%m=16eZ2P=3c
+zhi<lF#lM;6OeeKhAarI7j*oSL_Phha6sCWyln1N-YZhGqxM7oaCdlh}gZNUj!AH|3
+z9&TbW`QyncIXR&*xRFCYGw`f{<-uyM4|;t`U{|mtZd7D==BHc!3r#6yA#=i1*WRC_
+zDU8nC7W3LDZ?C{Zr+$NLi;QogaZslt$#+DqY};154Cc>nAmeB;a{l-={`}#;nZTSM
+zP{gPtQlPj72K|a0Z)s=0OPozw<zEM9@A)G!VYZYpChtNd06h*QeJx{g%l=VO>d<YU
+zx|sblTuU6i0G4lXXkQ&=4``x3j!|a?Mo<=ap?%S@)hH1K;?#YLZpF$~6JS3?S)=!p
+zX+Y7?y~-v+7qmlv77**ti$~(H+aH<#?cJTu;dcw52+6eexn}fw%8PWq!}as2Tgue&
+zz0jMH56m_kMZ2y~Nt)eLvkfTwU?!@=H(IQ>k+$Fv>(t;R3;uVj-mjumUss{*WS8AH
+z`sJD+`M#?;&VKLW4s%eYF{$Z9!Q0T0Y_<>{R;FMB446B;MSrt}^3l`#4&A-s@eO@z
+zqAqyvcNnVOD|<=lsI~FP@$IN`ug4DAuhQNx%raVafgPrhIKnIK;p?`CIVk*y$SW_A
+zUeIlnc^xt%11aij`?G2}argUO_-?K7n^lWY-7LjZgroXv{pO2zOdRXXGQ%d$YkP-$
+zG~1zxKiU3A4Yt}Kf?sOqxMueIQ`;e`y#;QGGs4ryb86vI<u$9evM^|EzfVhr7zo(~
+zl9lkhj23#D;OQgb^~*YK2sj<ynf^z}z)8~`?xOJQS}i%$(Jj%ETQJf8?NNM&zt(js
+zMa_IN)dT%^n(&Zve1Cqi!7Omi%2eZp+b3j7t;0~oB%1a_Z90&)&e1|YmOSh^)s<8r
+ze8>g7b*?y#^y$u;;T52P=;djyb<zKt00KT~ZP()K45V463t9<<v!4g$O%L8ZiS+e7
+zFVE(xZ*Fo$Ureo`%cGA9G&jnDuV2ylat4ER6C}QzPRRab3~%%dp80C6k4QA)4fEzk
+z7x<jO?fL%evB4oQ;Qnx!V9w8viPye!yoc?IDCqZ%$Ef+lKL^OQ#KD9j5&&9YH~Heq
+zScmkS`rJL`%3^x0+;S}a4DmcV6>iob0S(m_zgK^(>;d`iw9!i)Cp*NqIRa&R=<Gs+
+z2FK9;Sg`-L)fQ2?zXd{Li&d-F1Nmvc2^-N9?w<Pj+RSC(&u-DDHh1Jq+r3_|a=W(|
+z^-H-COZMWC3Jb=LWzf~A1*N%EtK`G|9}?9XLWI>n@`$f(XJ9jqL=C~s%CawZyDbqX
+zH3=Sy@{;DPqSEZI5B0!>;!_$<?DP^0uT~l&jC)s`o<7V*z#)35gD>#lvmvT0{d5H{
+z<KUlj{o#AA#rhgT_`nlX`XiNW1JUb(${Nhq_H1k2gXWG}yG46EsYf4VsVBt88&RX9
+zuEM5D(`UBF2W<fHPen%yp;zlreG8OWxtOuQeyJ(!+DBB9NhIIzP12PZ*iRa14}%Bi
+z^|jsVhzT})`z&78*5Oov7@J<dkD9gM@)H-XvjwXp(NJ^1)r~I`^SQd#4im-~FC%V~
+zP;=+xd4xl6QH8*?#t|jg;%Q+0d#N@+@w8FHiy0q&C+j8oLnoZAZcazUf|8w|R?(JH
+z_qF+n5vi4Se!>rVv|QjqWRwID`%JSbh?%`~&iT@9cup|LY^W#gbxVyeVDEdE+9vvm
+zxb+)}w+-<Uz{ge(Bg3`K77Y}LT1J{fTtd8N6Q|53uFm(3{HJL{OkC_s=VUcY?9>=L
+zGn1!OZv^yCpC}W`Q-Yx%vVyGtu5zDITzz>E-7Gp?7Ga5u@EnLBiHesutz$)Y)<@`s
+z`w3(-9oI*LC^*_XVr8h2sMX31F&yRVvw2bJYW&2i6;UIv83J7tRCwZQ*dJyfz^!<&
+zVkC)ksC6St#uQ0u)~F?lRq}<)UzAAv2(Lw@zyk%ss{@ZvaCi=sPjzqOZx-BMOLF1I
+zU}k1=iIWZ@<II}@ny5rhs<nPYr>cRO^<VdJx>vF3d?TJCu<2N;-M^yUzpm)-;rk^4
+z*51P8ZS`iIpSjgRlOA8x-v%k(sWIoWxfv#tisT+bzL-%mwIC4y%J<+of$G4OfU@?7
+z2@$2ZXR{G|D>_SXqcp=#;koBs;?<q!X0q$rZUy0d2QBvTF_^)pGDa{pp*;^TLn_$2
+z%m2fdt&(coGvAu*=GyYxaA$0v!F&lIL=ROF%W4yYl#b7K-9Fp?g!cV<G9GqQyQ1`@
+zemBo;M^9Xw_mL45U|(I#P0*m-W4i%I+TK_}|57fBJk!+4h;u4T;0R2rsJbqX@ipuG
+zr)7&WYPqu{HC0sbaW8$?_!rE85|F}T72Eoa=&z{uaMw_sr`&{gvOlqlM*1vgA4@|Y
+z0wfv>p<}o8h0!=I!<no%t{Uq#Jts|0QElmmD~}Tu>Kq{LeMvwY=uzyIv@ty7J<Mq<
+zM(vW!s9KA4`kP~D>M%$6R!m5YiEtrTtmB^MBFV5lkxc1<^(uuM2dXAL@CE*cq!C<2
+zQUT*IYg(k4;?ccAF3*sk`qOaz%(~0JoceNJPe*><`(||iWLjOPDc0;p)_gD`FFN6&
+zx?#K01*OfnQgFR}4dKlg=uT?0Twg^*KV9-j_!9XU)vt(ss|T{0j?b;ksz0bKl!9qa
+zI6;1Fk#-7h%S>-oubQ-;3R;GhF~{v{&9+IswOrR$aCw4}a}~fG`}SG)^)Gqmgkq61
+zfnJ5?`}+XXV)qu!_OpS8g&M!onV$<UnxKp+`iY%ckLra8)9GxaK>Bc|xsjqT<wnE3
+z(p%S?c`iVI3?Ec=t0JeAbPsNIH?g1O#HM_c=|33;kcl=K;VjH~0kw=UTgQ{|eixEX
+zNN4l$DIA0Lq`Glce|^?*>={ALuEH^t(=c;?vQ8f)+$Jc#mu{<}Js&lSDKaXa&m9Uz
+zCH9RI*KZCEPwG(RB}9dFa^fmK+e$b`04H=>I3`ZkK(r`x_1@GtR+LboYvn1cGUh$J
+zH=kgA6u;=p+qHemoLveXu{U+tAF)aN_l~=?o7bgs`JAb$LQI!~n3%*>1a1O>DG%?i
+zeB!a#pPN4>k2~AMwzwBDSxxFJHg@`;#<p7)qo!3<Ai5Ep;i}XfR&8pvjD?G)uSU%5
+z<xsRGr@vNN=$jSh`)G%;2P#kF$Cl=vT_a=NTY;W!P0NJ=)IIt=9JTG8$3f64cp}~v
+z(4Qcf3i)tS<=Wf%658PBxZ2v+`i?zwQcUQm>jN=MOSTdLRl!9d`OTJX=YL#tyEl9#
+zX_%=X(G^E!a|U!ACqqPh?hO}P4P2$?&fxkc@ezP14|uAL4LI^VA##HXZM&?H-g(57
+zst7Nh*LJ1;POq8BkvL0v!e42=`2zS&Fy~swH^tXu=U_vWCKq;f6}ziu;onJd!y3aX
+z-^Zp9ji6S<+GIq91EFbe7VNy!bS<%W5uP1e<5i_FSO~Q&&}k+H52Yh^BES^+^TgfE
+zjO%a|rglAt{UNuGim<D79cJjz8A7wm-_+;*9lTYOT)`Y!qcTUwmKMnn8T94uf3OQX
+zKD@Y%S5|gb+DBFkrEKey&K*|{wzu<KYe>RbiFaFd1kefrr(#@E&24BCmZxd!!|ezc
+zrI`AsRktXG=((2(%Z6!5S=#rlOmB!P7H?iFU}q{%O8lIB-g|m*M6Qd?*QpmgQ4+>;
+z^!1c)EyvYGrjq_j#L~evQold|Grf)8Hc4vpcgmsULI^k4J=PfNMYnJfJ!g*q@2D62
+z5aCJ<4Ck;<Y7@UvKFN(Y=Ix|k1rjP42FDlMKdK**`-2=ST`#U5sqFNyHVL4;(BEvi
+zL`|q0ft=IcvOlTfn)X^jS8><rD4t(4>4vJhdhDW?+FAx%WD$q9gV((=3Y4SwOB+8M
+zQlsTWt`7*5ls0RX#8k5=tq~(5ng^P`z(B|72GB;D0^91^T)#v_tu0muIppD#L(-Er
+zWu6AIhpQFZZupC}$jc;q0R01fIME<E4@aTaK%;h7gml%N3OEATy!n9@eN?XN^0>5T
+z)yGzxInEHGLY~1-ritowCX<7C!sns01lG%74*Guf6ddM&g0$*&uMCng5N+a9L#nfH
+zIfy&rtn>PxGd*lOJGSdWKGU4e1Kwb4oYL!tAlS3%HP_-gHB|O20!;VenWDd|yw=$@
+zI6#r`nW`S2dPGZ`t`9AmMQ}WXBivQo9gb_ZEhl1cZ3XpvT6w3|OZaiIA60w~Eg~X@
+z{g&yU%u;xbN8P6d!-p!Bqf%`B9;_<OKEZx%yqZonxF0f<YgJr-bgA-e%{uOhsx-_^
+z8;hvv{4OVKI(NHV^r9T;k7E|;v3p@!{I&QVYeeu?vA^kqJ5wdVo11L|AP6~7conUA
+zq)km#^t`f?lH6nMvY(q?lv(rEKV&vr;z<I>bUCIsG^=Ouxz~YSfia?c!LEbVyQNBo
+zS6MFN2HeDX{`*{pdrN|z<#nX)sV;<LeAB#eqEnB1v0U*d{X$1|AkX|2)VD&<%<MWv
+zs4~fn^d32TQ8Q^i?9~+UUnt`?Tmb;$!*q4Q5pk<Yi(wc`lx>Ryg6rsDRfkF?vR{wb
+z!Hyvi&HPN%xxxCVB;mxGt`(bUlnaVj>UHpU&p)T%uCFyZtqNBtB2S-l;g~9Y;~A<1
+z6%m6qO-;%AbB2B#MF>wKTp7ilYoL3S(y%;0q|*Dog@eism)|z*`%P`VImh;9?-haW
+zMW6Nz#nH4E^X(*6v`u8NIG^LVL(YiDWz4qihWReNCH35DMev~RVPbV=O|a!8^*zd(
+z@Kl+jaPXxue(=)tFH862CQO&)2eaDt7B({WHf6nspZZ(D+v6PeoV>mYc5h~rHQp%a
+ztupa`tx+!gSphq)w}!nm1GUcQFmsWh;h!^ptBv_BXU+icy9HfiLH#^)oz{rYqOJ4;
+zm0}>YyL}b>mL*-y91pXD76jyxJ_s}37y`z$mws^f+)0*wFdx<)M_p|2G7`z|7ixJC
+zT6_nHn3NDL|I)hL=Y4LoWMY#@v)+@ikqWfvGNjtb0({2{>CweDJ^?npZOc+gJ@f*(
+zn1ZdZ#&V<&KS9Qrr%OV3z8far9A-XA^;y$Ic9mqKJ=8IDx2a;4kV@-s0nhrJd$ME_
+z=E{iHQ;a(kJ+jaToDqKN_|*~*y46+_<@suLTUNc9c_F83g2($_wb4S9jg6BcoS^~<
+z;iSx*pRNwl+*5~>7Rxd&g!Z%Ex7MLZ&w60b9q~I~=^~OtP2qc8&$+;L?TfeH{w>(2
+zc0IS+$L}Q1)4ZppijF(ezw^ptPtqzv0J}iV?-H@5Bmc%tW!nVkiKG56d0yQMdiIr+
+zSi;BNtCs0%>>|V$2M7YI&@G=h;hnMPJ&Jz5j;Oc>9T@UUK51&50(|n{Wi#zp6YU{-
+z_BXi65J>vGaeyJw1krALO=1ja2T8g_pT7u6hCY^+K0`5Z<n-vT_B_T7n4skptm@&C
+z3n3-_M<Xhk1o3!R?RjpaMApc>pyO=58Q(p-EOdX0GKXiMjAU2^Pq7Vq&_E0&0N8MB
+zA#_jxx2gc(5`oe%nfAI%Ru`=<RA@CS6DGqOH#E2hrLOd9D*UAll|AgHHN<NrjruCG
+z(9RR}mm&c$Bl?)Rv4amaS`oOlC5T9d5F$!OS=&|>COQ_uc&On!<nsmveyY@9b5CeP
+zV)#{~%^mIAp|_Rd?{d4z5$=Ou%UXF}A*c*`KZ&_{3}1U?8Hh1ElXE8Jjk$+cvZ3&L
+zAyf?sTq?5*cG3y&>*+_ebd-Fipc42&x5c%2l#$!9*kt$Zi_;JB`k!*n9O@22G;UXI
+ztb|5BR9vo=!WfyFkyb${ILta8Giw8ci0hSnnbTx8dPGi?0WE3Iyr3I7Brd~2YZD1r
+z3@(jjbU6KB)piJW4}9q(mr(&Pt%a*K0V8Tgu{KKzdVhy$%<6sf&1ImgLeXqoeY_i}
+zCqwVwW{Za`UMS*ksdOFvB>EGzz#(cQ=-H(zbB^2eS?Tui>&ER{Fr!J|8#(wq6hjQE
+zR#I?2^l5R2zzp$v97Z>ixF<yOuIJml)U6)hsb1zG?E!|X%n__M#u=@mliR2<Rg0sS
+zky!MhDb<v=h9NjcxCawb$flb0M~Eejz4T(nVemju1eX-fv{xg|9E2b|CL?eTqyd>7
+zEqPpQ%@G3(k#N^MtZWFfjd?49f--UsbFKG_LuAVTQD}C=+{RUMWFn!vt%Y%@ShPUa
+zSsLsMUCn3Gd!Z5(#_`TKsbWCnF_K#}f^qUbxv<HT9gfiPOuql3ax2l&J7q31BIMuA
+zZLYR6cFW(zm{;tUn^D4<Qq_kb&;SoPN}^6`f8B~fuKyj!#X6bTp|OW+ZL9x1m=!t1
+zb5~Vvj3;aa$LSkqe}0NBa@(qw+cfCVJ~Tvg=J9k3@I-ludI@7TsXFnWIH9Cm8T)Ta
+zk_-i1R>tXVaYK`6C$hzy9;%u0>OrjB**tDoS&Ey>Ns}hgX3S{gxb)H?UYxBL#Qg0n
+zbb33ecBRLWzt$-9OIBw%d@MIN$R?7&%eC)4Dn@TRDLI!Njxew_PQ&#&N!N_1Wz_2U
+z@_b_%ZJuwNd{SX?kBhn*k7q%>A*lOmiM0v-e<VS*>01tCI6DuD$ldxrgl*W+l=$F3
+z!0md2Nxr=q_>C$Pi!~>|a+oYbKlD|^YZ@l-DB>#vF39AL&&gkkln!2sR5zYA9eqH<
+z^qyg(z%Cul9V5*7yI$_ZSOYq{nNK)>zKB`wt$p6Gc8r*6;xE0<D4w3uys#8`JP=>P
+zp#wR2z#n755_<BY2q;zU*xW?NC6dI`%{Vp>S)=8YAfA+c5u`2&exzsi+Um1b0oH16
+zCQ$91U`y(-r9TWTRlkv0TuO-`gxORQoO_<V%x%=WTcV=e5=U9)(x!){L}a8b>Rd7M
+zPwdtcYwG1QzYP5Q{yE2bCA3*erwy=u{z}|{rukarObK0W;mD7`UD*FYyTM5J>nC4S
+z<MrrHZfyl~@3o2OqoY+@w6~wF#G2-_BWAvgifF69#B!<OZu_^@FIl61g;lW3s1vDg
+z!AN|=4qXJ_RykVv^TBTe39nnzxVWY(SmGqB8UQ?A!s+4rQ<y&B${7$_E^#6g+-6`U
+zhmePyJ{Vpm%bsxZQPJrHLVL(V0ABD|WGgqxVH6kfHY_Gs1r2N7thtKI1fML&cDIP3
+zdV(yIU&xbp%ufFcX*Tgz*B_m5Vc97W>~RcPX`q7pEsB19MTE!spv;Fz%jt*k1jwz0
+z$L?Na@k@?b+NoI_<_4QLP^WJ;7o7q}v3)bbeVxs-CI~ldg%K5!R4-ediy<F*7BqQP
+z1%Stb!?qe#^1cQy#h?ErLf1@dh-AZNM&TZg-)1T_&^`QRek+_gGIqEcJ3xtA^PLPt
+zd|VaTE47)Xzv&ZgCdEQ_n7a{}Nb>kJ*S%|yI)GDbDapb?CYjPS@v(yYmh$I!G?{|$
+z(E*u*b`pU$hv;!WH4Uu={SQ{Re6BmV`|7GB`QHB2W|SQ}hMpk1{#PPCff>;Lk*bZ?
+zyDv}Hzhm?|dojEZIF*c9eZBdb{6Rz}Y-G^-KkDG}J7qbSn+38l)n%C#>Dy>Sg$9=G
+zD@HP7+KCdG>NA=WNSGQ_w?4%;P_FWAnd@y+XfR0ek>H^hf5VVIja2;gVq(O4TZc<u
+ze#Q28bth4@39KBc8~B+f+#|&2`VZXVWWt)G#?>h!WEi{xgz!7v!76o#PAYxbOIPRA
+z_JF-aI2B4{MU-I#;h)G=dVvXljDK|DF0Hjix>;cnSqUNT6!DUan|DiJj&P$th`Uaa
+zs2L}maO9VtKmFB6v+8EDS%=1^rdc12ER;<<o8)?ydNt}-uUcSL4Qx1;dR-wR@lt?)
+zX$yS&b@2Gf_?4GS?K$o|iBYa+sc8j0=z*Nf@8ru9x|PAN|K?mCtpg=)Yb9s%xM45!
+zt09GH^x$5*q@Z}^;-<kBl6l#~yV_@5?++~XX!&4FP~|ec5nrMaaZI5Xd{%td;d>i-
+zPEyd<bxAL(H{n8|)g;o6aLDa$r>{Z0w{a<lAD7JP)s(?0)-r5{8)<IK<xz(QqOY8B
+z_OmG4f%{7e7mjxOS7Yz<2x<|ZvsW=aBjDZ&^#RJ@o=Q7&IXNGF%&CNFWOg%TpACLo
+zd(qWy&R(~@DTrq}m9W!3WvKr{tQT_Emoq{Ibl$%@0MhCCP>}FTS$X<2U#ahOD7tb@
+zn~PSUGMxc?K1c)i_@;Yk@h!#t%^0{c64BycI1={m7bfJC_+R;1LB?x?c5dH2U&WxE
+zzLsA_i~m7zM0cg5E#bH5cS22$dp%OSh%dA{9~ZMzNn(uM^Bzfn>Bbok8DoT8Nt)U#
+zEt#y@S>&*~#68^JbW8Kf#RqmPpskzR&K3P$TXm!vniqS819M&UN60~6PPT^}+`X-U
+z&MX1D?VwZ_WC`c}%fIeRZ)(4VzgUQOG3g3$sQD#n%vhFMJ97-thD+E`#jBfVQZ;kH
+z)gE$O73JVNM2+#jdSg}W*K_qMIy)@Fx6CfUyScFC=Ls)9CFrdF(G}HtIPZA}i_c+o
+z^n6#L22j4wh_)KpQMDw(qrw92wul_fvZTaDyid1Vf(S5UWLN2J0^&DR*deb<c4f!M
+zct_1{M(@$0s;_GwznmHiE@sZymh}u`J2Z7`6~+Z1zix-57PZvwU2*b^+K2FY{AhdZ
+zHBlYic|nUk;A;t&RFK<P>JGD;S_Z8vIU2ysOC)H!Q<uoI0yM{<Qm47|&8-|UIUG6G
+zp{3|JHILgui&44&m7ExnCB%~%QThwmpyp3*Zch5w*5_%#%D_OvvW=?KVo|m=7?f5m
+zSZ{xxFLXfdceC+^;jY}m_FT`fcuICfYAZ%~{tN1^yp|^?(a9*$duvjZbz;WUK-GE6
+z+^O}h$sFwRAYfYbZ=KUK(DS-O<F(<YP*ZW!Qx(iZ=ohN?yd1l1e36RkHusfp>_rLI
+z`yZ$MOH33nU$e3gB(8|^EDB<n&zDxYmDL_+PAc9ZhbTWu@LN2)@+Qm^9l^Y$8tU*h
+z%mk=#ZuRwvM1p>LUK5PR^uWuzg#zP)O8XpIn(g*eMv5;TQ$@Bh29yz_+5B0BbaK>&
+zV9tey<{@&-5W-933sB>&s356q+2mE6WEdl<F4gV3e{LvqbcgzNxqBnPU+U9d|3YJd
+zkCu?&>O5MnQT7tfzI`L(gV*(Rkxf@jPpg=OZ$ts{@Pr+O1Mj9ojMGy}gB4W%BNiqW
+zIhoo;t7(*4*x}#VJFZ4mk0uvnWyZBGXRsfNP)4x){QEvVB>YJS=}woUT2Y9snarVZ
+z&Jocjw>W+G-=Jpuf<-D<oX16aONK&jeV$8;fmg<;%BWl&4%G9{?#hH31?GPIjo)6U
+z6_DOEA$Bz45<|{fE9j!R=J0Oc44H4~*HGa7mF2OoPVUA-3c6bT?qv-IXF#g9ByR>?
+z_6O8Ym4)aZaqZDIn7c+k^#fBOV1G+92LGDU&fJGhb$bQBaol2hR#Fw3L7T8UfXDa0
+zyC|zSssEz@erLiMDPuIFwk@O-t;gGTMt~mlr*o+(N#i?GdM_qy(>_ufc8kv`^_l1N
+ze)g#2Z^^n`pUkXacxD#+!Hm&ufYvg9UsyYRh48+A9E<nvTh}t6zd45MW-}M2-_Fa3
+zl-<oMIfw<qe3Of+6FqY~z<8yXFgdtZ9)CfptKfIvE$T{+%}qwf;w_JTC&~DkB!6aq
+z0Ve$@BmA_lNHEfjiRd7@mDJSQA!JVa1f`l9EY+EBBl_Oj!ee(XgyApdC~&;fsLNAf
+z>Ii2K(K+*z`ontp1UhlVSiOm6Q|b-#v|{8Hs3m_h!D3+UVAS5tTe=GMKo3n&fJcDm
+z?wtsO0i;r&_O|Uj@)y8fX$-7v4=BA0+<E_ymJ0E=jx1?0#&zH7uF{3TK9P9$GQ$QX
+zxY9?IY;{WTfl|vjuO;?JnN#|$3XG&~lq|M<U8uXsYj4gzH6QTc?53OZoavo*rMK%d
+zZ-ApQ3$~{lCuS7nD-1Y3U-t89jRW4DR;ksFCh}W6C1w!Mx^SA0EiBD}F<z~%*mSSH
+z@rK!R0<GNkU3|<WS209~+G8HB`MFAya@Hi9Bn=Mi@MLr-?|)cwcQA4)>>@7ZM4&iY
+zw6`N36><dlijnFeAV{rhSo*ta?~zK<DMIimf^RQD%^)G<-j~5ExJHI%+|SW@_R;X|
+zFzKGtW^Y3Du!jNwo_RMkVuF_U#l_n`n}}#5&pH%u(ta%4@vPHM0&Nxnf8Td4S@H1f
+zN;*Akp@0NnVnyUHptGoITcYH%oR;D5Np<1C4>0&GP0!QErih24(~SqI5JQdQ&-6s}
+zXlWC=9Z^L1DTE0F{s%3Z&au%_$22W}DozrFwo5tKJshm~p`9&hl1LONk$b>+l`?i|
+zS<RI3-Xm0r1mvXyFN9v5sBEkIyL)GybN3FfTgdLkiy*$C1#(xjv~yikFGcIwa83VU
+zvxieWdDY*P^8Kq1u)TozwOok9@xx(umsV8kdH-n%bsR{Z>1{CgVDKNvJ?RXWj>d=h
+zVMhKu?QeV4bIM==qTm8aFl>I619a*B8fsE2J(EjBwF7xpw6lNQ{LN(8&WFm^j%>6;
+zAF0<hmK(f4#&;fCUkPTV2lkDeCU&hXW>!7E_a#=0QZRmTNltIkwW842{rG(6D(Yh8
+z4G)v*4z(Rm2Lc7PhaGSr3%NCpu?>ix23|ibq!NLVYgR#x^$V~I6%>vv6+UE0BM4G5
+z5g)+`Cinr)VMKVbTDLYen#+3)H|dX%FkU<a*a0UO{ZsfnZYhk1lf6!^<fnV0w=*k+
+zT`<WW4Y*er$kbM*t~-W?SN}qc;$8f=Dc9O6-wOGX!{O68%I?$V#2HfgDrS$^zxPF`
+z-pZN_xO0Q_2bI|-Ke_cK3{-7Z#L|mdhXEtpuxBH5^AQToxJE0|QwBk#-s&PoCgOH$
+z{wYfzErfE!>FNQW@>^Rem86qM!g53x>50UG-7oz?s39Rm<2AeKrq)QaDIq0bE9K05
+zJ};xa@?E2E2R*E@s9Ygpxt|+R%3wQ|Jt2PEWpNtVH!V10-!W)iV+j59BFSxhKj+4$
+zx2|)TjU3E0{IVH{QzB;|Sxysi9c2tX9I3^54Gy7+A@jT2pU<UE>utp8OeAsaOX$W7
+zAaa1mY2d;{Wnz_Y*hCpf6YH=@p)2BMx)dm}`b4#f-KN!ltTAN;b4_f1x8`g%ty+e{
+z{#rR=a365Q$&DIyHfyxKb+Gicwo|SFUI~?_*DpHTonTt2&sb-!zcgxm$NX*mM$q3y
+z^l<pI%zg71Nwy}yIUC_sm{=%EtZU+><o_R~x>~_tv;+Gz*N@)jjen2|qOdhPy3$_V
+zTi8A<I}kr(9V7K-j~r9QNwlJlzbMnWHgQXS<B&GqzQ<#)%)ou{D6<ej+rF2X06x3@
+zYcrXTXC&AB0zDMlsSZhQ=4tm4+*Z82^(8QEjQu9<oieOuC!q1}EqRf_4AK9JZ3@Vt
+zA=oOCFKSGM(R+NtD^rWvXFfpf?If3En`T(Bex13SE&AWrT8}O3LT3ZjivKQ#gdAG{
+zV@NHR_>}oj58H<Vps>VK!STiC|8t*VL2Z|vN%s0<?KzE5+WL*T0$Z$M;nTb6gW1bL
+zV%z;%h=c9B4TIM&O1a8hFB5^@Mns(6CD(yp^HtcYoz+=%z9O58G#q^oZGT9i^KK-!
+zowP4)B$enhVh(y$M<FTWbKhc=DX!@JbkS%=2K{MFe`wuvSN7uETgN<yy((@o8%a!!
+z(!<^hIZ>NQlDLQTJ)6Pbl%@U42fbfzttH8zkN<Lg189${Y0~#<^=lcb&7GCs+T#?@
+z&O6d79P<5L)Q|htabtTqJtf<7?|8jLUV+=u-QlvPuY4trS$88=6Wc{OH{M|SCRiQW
+z#rYY@>MwVr7rx`UN~m-LJz`A#FdYsl|D!9{OWR>>Dt8!bsaMk%)J|!=vG82F2^%D(
+z@ds-WtuItT5OxcFJVCi0`Qtg@5;nORN2$nf#!A@4$doTV!ppOXLkdcy-UL-e=50E?
+zjUi@+7WIa3txV3=El=0*YzY-Gdk8^1SZ3GGL#O+d8!x3ttIx5jd48E-eq;J}jKBU0
+zv-SLQ_3K2Je01k{Pa-t<j;K|@C5QV#U&n$l=URf)()t^4GpFronfzSP&HwZOEeD?E
+z2q`&rz`pN|y5%O{Sf_hq*~)p9f{#HI4Pu#TU{UMj%lZ0xsx&2`o;v>DzF3~t=vV5v
+z2#tBEV#ePg1~`)dtJ@Gyh|tQ@*D6rbN)>uEtqtekw|yndBGr5vGx^-?QxIpgl2n#7
+z!{f7zlGJ}@sa1O4bPpWPZ#Meo>lio)5_sVc1zriiV{=I1ACuevm%wilrQH(oO5kxg
+zf4HD$vQj)7^v6k{45-hhpZ75T^6RIkm$*0!9s*PpU-$2H6+Gk?9bEMl_iZ4L-<(JL
+z4&{AlkFwiiYIGc>^X}3yZd?dL<Xz(69v$^pB!>_gkd3ECW@{;;!X`Q9V^4M2+0lQp
+z=k`{HYau!bAIb@iNR$|L;+O$Ck$E7Q)mt582C&`}8Hsf+>*{n%cCO+aw@xabuTy_W
+z*vU^g%Op6Gb{42<`~x*GS?b_!SwYP$B3*Q<h|GBQPls5x&ck8U=`Z=RaWy>W@+2za
+zm?3!aA~QA2<7LL5`2HgR$z$LM_eD+d;-rl5`x|?^mhFnuE?X({dpFN$I@T@h{rOVz
+zWuPq%s?oI@3f7z7yVrxS2-BSK#96g3S-kBny+6Na`UEJF<Z=7Z62++hBj*S;K#!eK
+zQh#9NqHEG7IKs9Yyb|3|3gN~M-ksl;zqK1YmTeY!q1EBO!smuk5%i3SD0*g~Pe=`9
+zWz#<Mws(+rJ0i5zA+_%Bsp9pMyMyrwt+{o;<c3nkX3O-3Y=(I2+=0r%HePzKwB?QK
+z%v+}mZ$La1ZH)~aR#zsG;+mid)sPFM`@ll>C6z+0VV(uT`${07x=rH(W)+*_XLt+P
+z<EzrM8@M7jFHGSQ&sHcrlmgAK7|u4gtELqR+U!TMFU;*@USqdG(IFbr(Cd?|)>~`g
+z+}H$7^Rg9D{G47C&((d8LXz#mfVIpGjrS@*{`moTD0=z7)MhuSxr5%qTnec|W%X~c
+zAaV-}SOLeMnVnm+%C4%2@Ou)hynfiSTKgW1>B(}x`qupge^v)1OLKKjQ&o4k=pg<P
+z>iX81iM((9)*=&1xfs@qJejlkNJ<e4BU|YWlWKQQg{yXf>Y(GPGt?cFC?EXxsdMg2
+zSKd3y$W!mbp6)(QkP7j9_(}Oqn9W3O(mU}p@L@#*FF}^bwaCu!paXI{A;`0gsOu1=
+z#4YiQ!9tRKiC=2iosp0e>gRqJ<ZiNT<Ddf#W(x(*yLE4!&@&l>)1jV|oc;x4*TSB8
+z2^eukvxJ`t&mn(LNvfJ;O^#r#U~(K+yaCJ#@tF#KdLRf>FN?%0g(o+kbT8CJ(UeJ>
+z7t5+dCoN~~P7>DT7OHlo=gHh%A)<Xv&8(VpoLy<ZGym}A-OwamH<Oq4Ic{kzk<wR1
+znt0qJw>GV5q>E^pv%Ay|G-WXhw5=4@b%<dps>f>WelqG<?no^_Lq{cN_n}B8%hbT@
+zp?%<`05Pacqs;rsib-;1;%WG2g(Frtl?6jTDAC7tya0=T7Oyl8yN0X&`n^v>VQ28u
+zJgBz3_>;N<`stV};Vq$}J4}FW?!p4aKm3jvox4*4%c$>DQ7P2Nm!6wMoWgeZip8*i
+z4xy-NGrHUEAq_U~vs=fY`OX6A3_yCZC8*P!xxhcbHE4)Zpv{jR{MJ0|2YA7orJ=83
+zzYbfX{O+?~oP=R2Z{nzvdt+XFW^^E{4o2g2*Q~-V;@F=p`j$dW^uoa=oAVRR9M%kx
+z#vP^u10Q0>u>xvFjL=N>GeaaIi3P=aco2^kIFx2W)X75aMfO%cdN2mPZaIS_Vpc%N
+zwkJdt1QegU0%A074$%fqsMJ8(z?26T#t=`2QIE4dCyy=oHU-dF`_OVHi=~Z@ww8)v
+zU{0rqNy22r=grL??Qdn9>)*`|Qnt+}On&g%O-}FRRRux4KEj&B2DJXtH}1|>q6aO!
+zAUS$X!O~kZHJnu-#8lzYwnz=gsfQU+r5&OTy_35SK!W~8Z`+ltOhlvygyK(PdxH*L
+zhiIv}Bvuub=k8F-z!3<&g-ZmiHJ_^jQ7xn<!T|J_l@mZgZDEfodN?zBq%_`i>D&FK
+zQ|t!<--=(sttgL991BnLS)6|K*bSm*AE9|aDZks!W7j<?9_Wf=op;VsVNbcPxNWai
+zHJsx0WtqbxR~aEeH^w6Dp@n~*IU*9tBNZ05FDJk4+`7~BtPbw_5nJ$*nIum|b#F0C
+zx=74(JB&zq0_DFx2A2`zLEFh*hx181k=2ar&_TeHso=h0UDhSN!z_;3&^^V#u9t8O
+zUfk*lsB@kYnhtktenGu82gl&HH=e$_=s$F>^+;$UK<`HG0|fPA?hi$n(OB#Yew*?u
+zir+S5J-gLOxdBw)YXbhF{@eFZKTp!-p6v+rkyy}M)A@}KdP@a`$(wsjOw(EKCYpJv
+z`)`^P98bnH_G0cy?V!-W#b|b=+zd#elWx@@`|Bm-K2uoTzehzW_jt^lpqV>WOB@RP
+zwo%fcCs9_6708`}_08x=pf%~F;n*<TP@oITu7|){cP;4MWN+Km3KFQbhLXCkvu4Dg
+zEkA|!p&dXd<n5}>c}l7i!||_iX^5~btO2=W6({>JeB81;RLjYnV8sQcGqs?7O)b$I
+zMuRhlq?2(f$Pd~VhMJ_L-i=`)_&5<uE!#ED@CR}325VO&SRIeIN@BGrsRTfY8~vLD
+zA-)WC)R%H7_7(?(8er05z8<bh3B7mKdf9l&uMSDt8BT|cx9?h+Ar)keHPxz-ua+#^
+zjwXfJE=n??m!iA7yxI@)Bbk#MSxXu*BZGh85UQugL0{D9Aejw@fbI`Pgi)<_EsTe_
+zrkh;nHpyB}J^zT~A(hB=6}ZZ(K7iK!6gv9P>@_rv*%wlbyt~`|n^GjK!DWU!m?hLA
+zJx@e5(;tH_x(K^Eg&kEmZCu(sLTN--;L<b>DCN`S9eY%w@U2SRyDobau%F_CnysvN
+zp+D-!@2xP8Lesf+g#NUQZ9yW!()V-OR~@`y#bN0qxiLi{E9vBM>2@{S{cwhQ4zE-r
+zX~}WFI)saG1^Nilk_6Zr%xO8&l9MOwr?V>(_5o%>lvxu;^|QSeZx*(Rbgx0$$-VpM
+zSi8gsmo9E1_%cI0VGj^(7dTm?iPHQhUvfW|mtGDOOx?Bnt&e8T7isSePM_al{>}F}
+zvjh(X*1vOwhf;mc;AY6Af9LPXplw~CY1T7mC&B>?6uZ@C4|7(DL7hAh08Q@=R_v{w
+z{F07rT`Di%+Ylza(OUDdUuu>ikF%8dOH711_E-M#-)?WS^EZ&XV>J2BMOYBemIKar
+zI%77p_YasZky974*4mh=bIxO%oI&{UuGP)M5H{K?gjh}So%!@?-`NcBl1*;(aAWlf
+zz7_h*tsnzXuH8gyrTkv33BEY+g=A1-MB{rs+tjasU5k~lqL@Z}&pv!x^fEzK6w%9>
+zDA)AY8ZdQyH9+bB+z@^Fu({Yz>paCHaiZv*ru$Y`eNm>rsUV-kjtp^1MooS~7A*j;
+z4?RzjqG^LGc@U3i4mr|4BY(|s+oj&^3~kL}MN<VSUboY17H|2#gsJ9(mHh8dobRnq
+z*TCB1i$8`ah=fwIH6@ZPHMYW(;1T^qoC4;LF6;|Boa{f)tHfb-_yLUya_@9Ta^ZFM
+zK4>(XMN)|T0}}lLQz+ys@buSEGRU2t5;S<4rcFoJ8_Qx-OHN}T(~)&<S0^LYp#Ok5
+zyNVmLfHXCFgbzPHU2@yoy-ga<+qU4@-|~44w(Q^TBv<?^(Rmg5UFc7nT{^%f@OZX`
+z#XKgV$<}9Uz({0N71g_Cf+(3Z*8W5Mjx{fC6Ln2%PU7G{$d+O}LM>l@<x6VHJs0D8
+z<hms!N|mn58a+tbt_T4K75)9(R@PaZTENfMD`z$7<EJ`lSXUN9T%oBpJdNmdW(<_d
+zv}eZ9fALc#)Xci->83Rj(?O<OJ8>3CTs@m;ovk<!E6zP9)$ja~-qI3VhzaL1P)uUq
+zNQV@CRIA?-Lx>v&Rm)^Z)Uk*D+TF{iF5+Ug;~vlnl6aw4pnlnijEGL|u)YNbpLVpu
+zc~bP?4I*{tEI2+(t5aZ?D3@3xBDx%cuXYq8esCrjcR`uSkoToA_*=CiV1e^!>bu`g
+z3N_s0{ncJ+s7zF*hVd)O96K-Zg$p*AY3=V);E~WW_K=7zXsUwOw=4(r>=CzI^aGao
+z-{#kZUokldHC7w9Q%KrBz#p;S!Dr(ziue#Ns3P_i%E>@TWS#s%vtem&QZ8}JWUYfE
+zROEDpuQsld1R1XUcC5h~3F@c|k`8sEm3LV%dQ#RItwh?-)Id>rbnS~r8&7_Tyv&1T
+zFPVVAkQARpK(k3ee(A3AZo*7Xz_3+ak(imnt0>cP((DIes2an`_n0Jb&_Y+r9R<su
+z_+y-hzNc|MOe48g5<mb*)<GO9-Z<@DOr8N^7WO*pakHf(vLlnhZxZLIc3NthcBnG)
+z4cnEcYqy>Tsc;&1NeDlM8M4nc&swT@w%z{a{jSY(E?F4pmu<i$l_E1p#vyB9?(08X
+z#T%M+{{--Iy_DJ<RwNf)u0aWWwgG(+<pCm0D3yA6Wd3dW?Q58Bs6F@PisS?MlZ}*V
+z4o;%*W>#b~>^^-rlSv`Rbfj6UTWKTe{B{=ZOti2r8aKy7DdU1fuVh3%<D1A*cJ$u3
+z^B`l=Bv)nL=*s}@9!GOx>PX#Zdq?h7_e4#xrEC6r_#*m~uEN`QmHhwSc9d(iU1R~Y
+zL+-chPisMQ|Bg6M7j3(FPHP9jDF0FmX65TxdaEmb6mAyzwOWXaM9H0XHnTG;8NM}K
+zVa08;O<Np>47yG#fCfs&a4&_BtH!1g8(tz)MU!|N^U+M;5-d(_#_A#5UUx2a?2N-#
+z{FJp-75^@M=^6C7C<&$AW&iv0!Xm#}s~i!#Z40otw^v$Ph?WE&w}fRCLy!R8#QXjS
+zp^Au|X~9^X%wD!7RX&x?^h58!Q1k?5@2~nLr~9<>UW+(juMkway2zAc*Od-Em(P(Z
+z1Lz5_3<oKQ_y$nfJiH`AmyX$D!rY%o)|ov3W+`C>&Zbdb<7+~dlYqRQ;GLcf!_HXW
+z3FGDFE0&)xXtRZeRn<GE5j{RFBOSJ7lVpe=Vs4f8^v=6>&)j+GtW;J1c+z8Vtcg3~
+zNzJX&<y<S{?QY_Q1%97?@30qL;G19tp7ylbPEdI;Ja-sT%BCq=0BWkU-S2(z2Wh?Y
+z{;kJ2=}Ik2MYLefue!(H$nN}_x7qthtu$39_kh^+%kG$LK7M?2h1{X)2hu4IZQpq!
+zVBb{UZU?{ALt{KfX~)aGT28!<l<|LTjk?t9yR)>lH3#@xS>&=^G{FD;mh;eMnB?^(
+zP)KLqWk3h5%j?Um2OR4~%vOvhyjaQ&3N3D)7cOBr1^MysbMmaoc(M5Mtm^1c1Y#}=
+z53BP-_-EwD&W4n)%K}-V?M5x`3P%Lt5!3R{eFkS4mm76#!|?|FO1P|8N)V%1fL7k)
+zw)C@0iGT8i{bl=6Ka*Z1R;yny&uBH_pC(v~jc5G&h>b}_*g5cnNuT7lBkhq7gY_4Q
+z+<rK}O3c4rzSTRfsOAjzEcI_coT%mAOyczfsbJ6hejDl=-ks`^+(!{j^@m0S@0p>G
+zBSRi`gebJ@_ob|vJn=D9il)M<#+2Qm#`uzB@DG_@!bs%&WaI?-3F5H^-il5Q#{V6q
+zejgjUyAcKWwCA_AJnXfh{F}koC8Q679YID4<@=n)n32yIfNRXjJ|=i2a#7TEa7WdS
+zkQ={j?@<x|>TBx&Q-2Qkrq{v}xO5CpQXG9Xy`y~hz4C^ypzO<bhqJa-f3ALdVfV`R
+z{EITx2ZskjrEJ^7KP@EsZkrfAA5oSnRDAX3+m|T#scTi1!g(({zUltF&NEk2JoBE@
+z@Y>bSibNFQP*WrGJ<ov<?&ydS;XwTp7^#Waw87YJ+H5)!@xg!9zacFe8tp>0CufTB
+zKaV1nyvi@HzVWx2Twl$blZO#k;`Ay21YR$?T+;YE%FgA@N>1tyUm5C5G7IdzvLDE)
+zbf!Tt=<3mG@f}3#lFJFXmGv%8u$k*KV#*igKo})#cZXnx05{8M{>E*}_;K0ZfDwnM
+zTv<0K3cg&mwMz`SE15TYKHlsj*iT?WeWtDUiSK-PgziSjcZS)*(Qu<}+H&P`%>_TH
+zNllXZ^@@!TUBEg&<1c+eTuXh~VStJw9Zk_V_0o0>0POdhOZONUJ7}_(`0#gJdi0rW
+z)Rh366*jT-gn?RBZOeQRubX4>$8m<)s&~f2tp5fGDXn{a1#A@rII?Pw$3tZLTD(~9
+zNBpYW;)T)05g7AsS>KcA-qe2|>tpm7F{G!hN2-5Sf=tE#Tmy@qxTcFi099|+1R<GK
+z)>ZlyvB)yUuWDfe@XdW5(LuM%WYOj7P{~83>3<2ITM}y@8h1bblR&$$Z%reYs9;=g
+zG=XK=FvHQm9vmh?HQpnI4cBVUzy)g@m{E+&+=$h)VmDX6&q@Y~x@o6%(P@Z5PissG
+zE}b>=5gZ0O(mF&F`=Fp5$hcD<$edGcqwj6&n$Fjen0I<$(WA;UqMf#q=1bKV0_1$4
+zpW}2gE07=SqxNa```b!G>;oAi7M~TO_N@f{R}PqWCD~zyxjNg-R96njQaPU>)0;MV
+zJV1yF23K^O9?J1fX`+!2ICCT^0?^IpoNk_p7*av@X~AYrLK(zsjC||hs>{H5zNqtz
+ztmQAvn%QYo1MH~oosv_Z_e|yHUPdHjQ}_ofebL6z#@om#GpFWmu0$BW+p!cBX1bP7
+zlVZM1Y(y-EWunKgBg+%^|D=|is?On~1?$gCeWr7HvTPpz1IOXpwp59O8816lsRLrZ
+znRC+(Ky`{2CS54Zzh$;`pg&}Dm-*78)K&S7exzcqUGm){{DMt{d6J4q^MhP1ivy7n
+z(p@t-5Ii-7f9XD71G{vJ<`zp|0aOh9!sI;`l&sA2s_32c7zEP=!tY3r!^$+xB0$Jw
+z5Q|BCgP<7K3(qa*e@?)J|MM5UQouiGqWxDV^Chl7JFrwns9)oP8sJ@2;Cu3-Nlh2W
+zbixSdmK1l?Yj$GC=hvC@WK4l}+@VqlWh<s<qQj%iwZ3BMh=O$=lj|^Th9s@9->2!>
+z6b&!HN%<YLPaJ>JUmd8@g(8loB0E%dPfpi=3nrO2zRvj*B>K@{fEJ<DNA?}7I3xun
+z=3q)*kLDIkhm8P+24%_VIMdJ9QXqbLDqH>wjh(V|6Wr#^=GD58`epRfZTg(hIJPd7
+zA)R~VF_Uy5EL(Fv%DI4Lvmq6v!!z}P*?_qq=%f<gz7SVuCNr@+jeCgnZR{y+;cEuG
+zZX+4)-~S-@$d-APV)I)w_d>A-wVSOAsx97JV+76FFGZm<Tduda-hHZR)NbS`hWvIY
+zxn>vlk!)@mjUrqUuz!3JbJqo|`1L`gK@1;NG$V`Cg6(hH?!OhsSI@)xB3~NoprtTz
+z@Th<U)7Ht%ikGl&j@c`Y=-KEyR?7tWKR^1_t|;2&*UatHmhw9O#1t7;C~O#9mULs=
+zx*%?jypY{soXFQ;%tP<<`b;IYgtvw;9{tt!-0!OG-Z%RIBfZGK4s|i5oI7S>4w;en
+zmtfWNer*unq@(?k<t8c4s-?{#u88m^D=uxh$t*$^N1^XEhEoEy+pG|C*7NQ=<!Ht2
+z_fh8gAt|uMe-Dc0K5D*jyn<GN^uo2rOS8Kf_L(h{$6tmZN;~WWf!86V7nSER21G$8
+zG(*;4*r>p<=JMx`x+mVt;ozTZIfj7QdH*tGVpTI2v}uxNQ7-~LI~L_JXz1ZFpJj>5
+z;W)2NlEOq*6Zww$szg)A#%pkQt`6SmRfSlfouB!>gRlCB!>ul0wA7ARHvT)N!YH{G
+zq>siTvUWl{tLMg~sIxjNj%mAdX$~~h2~WK>g?j2w39HkbLGB3~#52Z@g<%JL2@UX;
+zh1VU|SAdbg6qv|!pvkYXJq>{uOD_Ipzp!3%mMNxn*z+hW^=rLx$ho@kgi%yJvZ$9@
+zDRD^t=D0el>U0bzJ{A?7(8BuiXj^F}^=9k*Ns7rw`Gy5#p#S4*sqtg_Gz7?y^Nbjb
+zgqY~V1U0;^O4+uKgn!QKsK>cAjb=dj(<p7HJN3<JO~^cn+?)a=nFP+$FEBBn0bYKX
+z%^QDTS3g%XK;H2baBAcy)Cje3yFF9Ux9N|&0JB2Z_czWTLLg=Mr4~E~9{7GxKugeV
+zmP~vL$yFLJedq*~)ze!Q@5`1u=eFCDS9O~jw$<w@mhP(F!ir0J2!I2Mrk{J5N|kgp
+z7d!R_WS~0NX78+=^NpRT6uBmHoU-LOZN1&to1^RTkC%-#xa_oM^LPB#eyZrVS=%@;
+zxoP%M2an@z3h+DeRl0hx%!C>LABxZ_H|=H_=3UYwX+>E!i|J_jOLvZ>ixOT_UQ{u)
+zG^|f)opAc|FIec{;CrvCFvv72OVI7l`oiI7CbU*ggRi{43jLvFH@c?tNpIlh{{VGB
+zioY5)i)gfL6pda{M5B%9vrnU61AS~KM%ySFU4{Gq8ybBKbv<Rof^CC^vd6{V;8Z+_
+zdQ<3|J+sIA{ej^=b1c3leO7b&-`JC0#h69REgoYaBGbqZ0}gWmo=RE7obN5}obR0~
+z`7wXx6)<<CRortOt4HRUyk=mg8lMl{cuZ*L)rsgc_C(0JX!DY6H|QupxfXII%5*1!
+zmNu(B5WIbOK3D7cT(2=+zIR~c+Pf5OAB%QOu(3YS7Ur{ITLuDC#U6~!LdKr4G?#<l
+ze4KkO%6^u<bJ#}{7ln=J2heluvD<O&z{UM`;KH!66IbV)u(1T!_E^{`WDH|4X&5`H
+zpU0GMR*k|BmHeceHYhtCWVhWbA-j*W6n5X2KU>I;OGpj?k;TR|C>d3sFYl(#G>&T$
+zbTbZXtwx`taQ}Ku%lcnBFl?jcx~kB7aHX69sN4ymhQ>bPXPavcqyGG`QH86Q{$tuV
+z?^7ET#twM=?oz)#>Qr;oIR@Li0`30rXBEAUi?O|`eSVv1XBS^e)M=rey=W)%=q}Xl
+zW82t9zAxtj_~s<E_0MQ4Z4)NuTlJ$+_GkJWorCsvy+3TMc)!ZaOC6NDr{pdC8RYI*
+zin+O+u(gS6*rmNOtn)zpRoifB-}uj;4IH6dbjXEH`w(P4N5!#4GwYow^L)oT(D(25
+zPcU}$OMX_!Pl9h~r@ZGioj^vpZv*;VuJhN84XFFuanGc$g>g0Yxlk?XKPG1Zpx0X=
+z3*IVwGUb>FN-o$&d+-E>LBH-~^o957a}u@h>6@VJaof0lK`-Y;nVS@AJd}ADGVLOa
+z+X{zc7Qy|feXHaxrT^(J`$_0Rm&x95$~jF-aDu{CT4y-7O8bcS9<W>7<^cNeGwlnS
+zR55&?;CG2`$x{WLG$6R|m@C`Z@;v3a4@mnj&&_4~%`T6!QUvXfq5UDOU*<P1iC^dN
+zo%gc+=B_@zGmE(jjmwFThrV=)4VrEKlk}lWY|;GxAEXZlr4R4Wec-vgX{21snS*uT
+z>8+VbeedernrUrV=WPxI&27EY4rI+tlDX$7t8WV$S5yB!?_T?mlod8F2-X;>Aah>U
+zpsn{=d$J+%+hMNZ3z(Z%z9}vGhW;ZVyGi;q-nq_Uokuy2=y#xDjXS!(5A#`Ki;Nxj
+z_B9h#UXOs)=9KH)BLTau4>Crc|F6Q|u|@ttyU!mS${!jw)_Kf16%qPd=fw(zJlFZx
+zf3DWiziXYI<&4wiVg5MpdB%k`%nlpL=E1^(_d?fiIMbs};jhu8@xy-RalGe=0kIKA
+zF{ZOn_Htde;9|x*`$Tt&ZDii4>^GiZ%-v%5@0<&~`!W4)D4y)&ncUIy!p2@);*+E8
+zk*6@%x3N+3Fc`6>66ygwBM38RcBW|(&zeF!d&7K?rfI|Hb6@rx%kQo2vd4=)fq75P
+z!2ZEK0=ldbYxh!iNX{&`oO3Kse!<`DQ%KpT#9nC{%uxops#EbT!$@KOH+FMvnwTH*
+zR@z9!4v#B>tJi)a+q=F1z8BAuH<xjJ%btq$Y)|+24Rg2tX1yviY<J%YK66{xPTdI|
+z<u2}(=>nfQIocT;^!W#MvK8dFab+iZ1-vv+rhKvMv5v;usUcY`V)2}Kv$x7B$2C>?
+zaiOl&v`@q!Yv4Z5u_^_hES+0||3_xfj#2K-#<jqvy<)z1F|H5bx(HVc_xhXYUzX18
+z`o#R~y{FF4#*K1sSN;6#+{Ao$NenW#&<XQXr?Y<98Ka{=b)&*c<5|daKO44pgcbiT
+zTWu*Bs!QjE^!3IUzpuvVC;FW8FZ&hG;ThK|)Q$d3=J%?vO6K+Z$8WB09Lz_I7H_ZQ
+zVvF+}bT{}_ZkDBNG)cUdLcdmGUyr0gBNlb6bgqH-@T}av&`sgqa{ND$F87w=T7moQ
+zBV_>6#xmSHv|ja(a}h-!_CmI~<7dON7yJ2$=(WS&{k-TKmDe)Pvya{N_Eb5)Q8~Yt
+z<mh9+THj+1%<tj<s~}S!kg-VTsGBXtbIY!9??xTu+2E<$WIRl@2FXXsQ^Ur>?0Y~f
+z;lyT-cKC2ca^PbBARe``ZM@klJogmtC3qKm%Q~)c;aASXxiMI4(adM`{?X~tUwnA~
+zIFJ?IhIXDNa<$^WGf*D*<~rIuul|`@`z4wOF}EG(gL*4?U>SM!YW6D;cfX|1u_>>a
+z>Ez*6&`oc>XfPi|osn3pjE8A&o*c0@dq$#pa@c6~q86@1ONp6ikvuXidoBI0FkUGc
+zFDLhJ)FW}9`T0zX=aN0%EZr`{y4Gd8uHrjjFnec(jYIDa8~ffBHtculJfTy2yjOop
+ze~23$u1V$@-$hx#NoQwa4Qw^by)Mw^1mj0q9=O%(N=)@gbK*+^nZSs*%Dij`EoBE4
+zuP|cHeb^&+Z%11x9|Q`D_OV~?wlTlF&wMlV6}3T+f754;v+=wxF;(^s+EVHprg}@_
+z<z5M~3h7T4=l;7?as*DmJ~W;CFLXW9$=l@j)#OoURLee`9NM$^?#UuY?CImXm81`}
+za}sI7-tLux&ni0DKC}lbI#7FHMDM}e3oA*xMP&z)Z9$gbSG4aPlw2~<ZS0K>&kNb#
+zPoR(dOPTGXgX)ZG$fgu?a(uQ_zjGP>{*`ACu^4D@vCyz-x4XU5p30hLv+VDcvR5x=
+zAFx+Hi9MS+Z7&EiZ_7m4+wYORy-e21qAcYTzK3_*Qr#ziUk}H)uP>(W*t#X4&4AhH
+zF2US0zZd^slBR!!y0;Venz8?cX3|F1?3AUM`#PQD86$bhw|}bmS|{jcALxDw=DUD-
+z=KDMBVI7UUeH_;8-P6+9CS2{HAJWkdj9ci!!94V2uhUXCoVlnsoNjU!C(27+q#l(h
+z2Y;XHrHxI`6Jyj9dbl!|BMms4J<f+Cb9`m?w<2q8_Q;DkuM?!->!shN4Wx}L#V_?K
+z(ueciK7M-uze_<&KNFszzLoeGd`};Qxu8+5Ri9Rl2(A25XyqYID|SH93bExEqaPdx
+zVjzcNO-|U@;4MI(Qs<<zo#<!yL6n_ocdDEZyGumxjk)dQ-^oU2o>T4}IabJbqRu4V
+zHv()&(pfC_tyYJ2R?4IiyVFZ0Bad*NLRcdayUkmSI{uw`yHMr>)>GL?OwrCV;fafg
+zf4**UqRp+&w7E5Qo4XU^`d0kkGTYpArrhJ+u>{Yqz_S&2)_`X#QRZ?yTZ(rQcpk(3
+z1fDO$v%52VhTnLn7uPO4e*n+-;Qk7{Z{fWfyjP2NGI+ih&-dZ^emuVy@@}{@<p!`%
+zg%cMD?+yLw#?CWA%RiRfsm76BTsPv1+FL#U>?n=??{ubO&i8;veW$<F*xtV%{Vg@t
+z_wVG`fInAe+PpN!%WCxY%Dr}PpZ<T?YCgQ5c5BdO829;q`i1cQ1)Kx34Kl|sygf7b
+zW%-wT!MuR7$DW11)mZOs7{@Uh3w{OG@7w1N=6kJ!S<a2W#-bUnv8B0r=qn_|ZTDHb
+zWPJwoT>Pj|*cR6P`g(xzdFuBU@w*puN10+Jeow^T&jpmNXBNiO#5~V7+Jcsu4u!Q{
+z68a_mmnOz=KWWn6HJ*E5#=h*bfbs|BU)t&e_94*k!YpKvnRiU=l^pVt%QoTUf{9EY
+z?G8aahrGKE@~Bg4hunyLom<GHbJe6pJEQVBVa<(RQ|}-@#G0AQaW*#$tz#4Gf$MrH
+z=y{CTX0FO!762V;doAr(OSBBdwYmfEHF2HDShhMLtKA{S1JB0V@oWkEF>^~F>7MqY
+zlx36zjHTHW<Y(~EbzEOvmg2jH+2rjQWZnZcwzU84G^gtPy^Y@8T<4hkUQHvrG>tr<
+z@9)v~Gy48clv`=Fc^pdvW4Y^G(#Rp9k>6>X{Ue5=k<+N3fhN8rw%=BFBA!*E-!YU;
+z+6iMG#|j>AI@?G43-hZdG9JHKK|73YGuk^jZA~qyG}|UGKs%yVTM6iVvSB~z1vBYD
+zuf0Djzwxf4+pt%+;kOtM))j=l$GX0Hp`z2p%=@V6Hv#(nqQ3uO$`zRwH;g@&<JhkG
+z82OWx{IDAbEk8U^$n!j^m^XFu+y^?j(J6MUT*O-IVH~!_F<-sYew8&7t-^;gvWG3n
+z{s=s}HnY~PHrKjsC^Kb}r>u1s<6Z;qCBY|F<Nhj>eBxJG+P;KO#4d2hXg)#N5Bl|y
+zQ*qIb5Y#+_b{NR9M@XmsT8t#GlXk_i=I*oZmvwjven+ql=WDuUoTvCGrPm6LpN%nr
+zKI-tS=LMO=l*}RI!gZ_A->}T#TJdrIBIl2Bf*H==ujK6Ycg({HK79!9Po&;)?qebk
+zCNbVqQTE4Uk9l#>k>m}9OtJ)J-D@7o?wR~pcD2yiS}E%ZUC!ey2Xwn<+GE)^L)AYP
+z<-A>&lj6RDa-!y1$b~4&IwbAbHT|(H%lQH47Buk@`f}sj21D5bU*-9rb+dPPW{-FH
+z8rn634#rsV2K(1y%UmF~lV1<n6X)Uoa`uP%>Ose(ogZVJ(LaBVE}vzuL><lrinhKt
+zsOo=D(eq_^{*11lKJm*Ys`>+?>aQDBe=X~`SpP<Eg|5Fx*FUYO{N*S=qwBv(*MEwB
+z9?@&!0O;&{x($qbIv{)}=nzLBII10GquMcs?I4Y#eEJ(!+3ns}bvp`!s-Cc}=T_a0
+z|HO0h&tD%a9O1VC`&ZsAxVJ#BH_8fJb6kI1cYUux7O+OHH~PYbvHz2YG~nB=cOJ`c
+zMZ0Sa=J>-UezNTjeF^E8UQM5l(6RiA`moW}JXr8;ws*faSg0BpEF8sO8YO&Poj$AK
+zhFjz;o3Y*0*~7F?%z^%1wwQie67NQR^=+f|_gIG;NT+iNBL)58Ch;kVLT`v@9)7w-
+zTY@^<esZ1i+Y>)g<0|TnQ^Z$<GG$!FCsS@_?&k|18^||^9|`o*SWDlSB6*tcRNRlU
+z(&7Us`t~W0DStWaZ6V%cj9J9)LOaketdA&u8`e#b(Ng41*^rf<7KB_{e*yJ0JhRt$
+zzotBVdf1qIdieEY)5$Se;~EP&CYR^LS1h4oy(?u*T1JdX#Jt5TokriElt*3BC`mmZ
+zZAf`ls89SK?BVgDO{Vn*j*aqN^7~1f?ytYAbf;R#+n%=b{&wGRU#XABN>crPeXN7^
+z4T49pj#|(a>yS8q)UyKhkY-rdosYkM+`WCuFUTKvo)I{24;%a6uI$p{EARUR*$TgE
+zX}sBuSj{f;nnsLCVhfun>xgzS@o6cGLe?muPOkjhBjBGB8yL1HdE`G0ViQ}Pdl`N7
+z-~9{m{F6WIw~QXqeJ!E$l+;UKpo`G24+f9rt4<3WJ3;3)pzRg7W)CQzd4K*QX*GY?
+zjy(E<Bty_gVo7(1wiAlB-+4URhW^d5Dbev0;fCblZ<7Dp+a$iR*Z5_&4fOuKg0_+1
+z-bp-z#X8`a+eP$0QPcn1w7rD%&sgXSk24R=n1{|2(En=Of7j#64sepTPjJoBCd%&@
+zkY<u`_osSoEGnWG-pk85QWy4=TfC^Ok0!58*2gxly=Z+jK@VJkzRELuo%bZy2gZ6X
+zuG-T^t`X8F*BX73lg$|4c$>?064ZW_XCG&c1Ul8&`hH>Ibn<W<^?{b3Phm{kGAZnD
+zw}|g}J81fYcvdQ7{;TXqi^jWB{KcnwLt_m(zjvKlPxO=EIFpw=|Jdut`E-oUk`s*c
+zT--nO*zw1i>+sLJP)BFn-KW>(t3MeY=Y4vdkJf~ZL%1?EI$yij<8?9juifFr&sFC$
+z3m#$p>s7w1%zCHR>X5wa?N*1|W@CIaDhF1biF>gQuPw%0RFWH*`N1Rynx$igZ@>MR
+z@QV$G@obyjjWW8ukk#Y_k{5XGar(jkQsm4((Z9F8$J?R%7i#G2WBk~@W!wiLTj?0F
+zKD>7e-Wf9@M(w6iF=``Y!d}$2H2S;n%#kr{l>Hl)^-OM<+cOz*|CH6Jqxc)fm@KL3
+z@sg-3SQHD$vzoxnO?`&_h!-&bBIPhI@fX;pqL{V3oQIt#W^H5)9b-%w*Jq)9SJ94}
+z94?zV?GB#P<6Z5KORTeR-*tLS^gEZ}ohwGwZ`fT!V-i(ydnKdCgx{7V(i2yIzGpJe
+z1l}v-{8t%g$gpK|P-f|faqb#9&X66NN0wPeyV)3?6`~KE-zx3LO&^gjoTtuO&R`!w
+z8+$+_L8HZG%+kS^cuvdpaV6s|b~8Sxn2t<MN1rYf9;f}P9nY=?eRJJ(>9d>%rk^-&
+zk7GW1-ZpRy&`!2_bX(`^wjM;EDvR!4r0-v+<4Vue=Y2+l6QZ5)9r!=}Spu4_-zu>%
+z&r1F}{y&&b2Ut&;E^nqT?^?0-4c~u<zJIyY^Q_dfOqc&L>REX20lfd8vj)j`T*FA8
+z!}mX87?1PsTQp83_Ltnd$lIVF)EO$5GG+I(Y~?p+Bvl@{OaH3RRJ6Y*`+M~))rOnt
+zJ7TL?g5JziS^6a`120H{7c55^%kcdQTn)HZ;#!4kHLfJCzrL)>pwD5dQ^f&H)p?!A
+zf=+r9zsQo7tK*v`e@~^vwr!R@m}knB#%9m7HhXnw_k!7~te14mLz(DXOL8mGKE~aT
+zrm6FVrV{SI>-Ylhf7d=gnC~hrb(ZlS$B<Z{#yZCSWY6LIMuKMnuX|R9XWtM#>{*$|
+zTS+@8bE(7`taBegy_58K@r=zdoX~b+;7t!3tFZsC#`VAq$OZU+C9b2m9>A5x)io__
+z#Bi;irs4|bLZ)HtCuN!{IV*=;<EY$&5woM8eS_|u!*7@V0?gH3iHrHzAILnBZ5u4)
+zs}2y?0ei+<!p6)01^Hu+I>TSiSka{D{W;Dt{R=+vfkM8WF~E=o#_?<e_4@e)C!7ae
+zW2~}WtO)dYD<&$LM`8?7_m3dg%X&w@&lFnU>;>P`3|`S9^s-$0RL`0?9DjJuGsnc|
+zfj0NGeaG@_gQ08@xtSkObO_ygca^QyOhEkHl)paPG|8yQ5$~naRxvbL=+eZ@dBz;s
+zwwus4`rhoqv&^Vxogu|fc&-3BqHKrwY+Rm`{NqNG_j4Tw(|(X`P3L~fylN;XIjWqm
+zp&a@v#_??VsApfqGv+3$$FumTXAO8p?13sgn>Fg$zvJ0mc(%V9`!wdR6SVVk_h8`#
+z{7vGTivh{t?+#r1arJ8Xa``pNhunxSa_h7YIc*Cv-^B6~zXFGT%tvCF%Mv+HZFRoL
+z^AgAjukbuDbBoI3F7^e;Vv{=hUp}UIGx@?ij)#ipC}Xa8$y)_p8!$I#xrea)(juAV
+z1DMls4-V$X(^uJgC>MmR#j|$GqhZKrbItiK&s-^wo_xPrKlDea)#rAM=dO%x65qzl
+zvA#|&@|%mq@twr~sd$=m-#3_Vz*vsO7!sFiCjNiQj|THn7JYAxO`f^DApht45pxrL
+z{-p0bpEzFMzgyJzu?JO5b>ZJsF23;8un|6n@iz>k3V#{H(}r<>;Hu}ck%kV1Wu$W)
+zrm&_<wGNu3?1nk<z|Vr9Ij%QlOI5L;v_rP(I2p>KQKN&tSGfn`Ph{_Y|6razT(dH&
+zJo1JzADd-jNB?T{hyF%mv_B#FLvQ>i*<0~lHNImk&C*j8Pav<6v-%9mH|o3~<vq3$
+z^4w1uzpHr&d56vObMTx84nHUKME`5*DN#Ac?{Mp|7m)wZw~q2*75!-GdzVphS+(42
+zz$ZTUlID>yr=mjqB!}^pNk5ag7wGu3@v<j&K}YTqnVa$8#D=54zy<n@?<K{Dvn(gy
+zHz@Let$B`=4Ozj%efmv@oik~(%t@>}+5?$5Ph2ZQ`w0Xg6Qm^9EAgMi{{VBcFn2!X
+zdC>Z?N0khA%@DSnBl<#0%O63((osHE5|@GZ_N`I$RR?}Hu4w*0$-OLblQ#}>bTE2F
+zE;u`VA9VijVodKj%`ooT)7j(oV!p+GTAR*JFY+CpKD$}yv0T$?ul;!T+Ez6l(2wtW
+z>d|38`fDM#oh<U!O<pj%D7W0|DG68?ObQxTWDRSL*Qa%|Yd=`X$H4>l>OPhi^^vsB
+zzEvlc?{*FK6Mk>6c?9i!@F}h5E&L$+>g0%-G8Z(qy((-JFsTXr4Wi%NqdCqu{O%Gr
+zxWB`F;POM+gO5>`y&QY_<rR!gC7sk89b)sbp-+IWJmFh-ClZ8g^25RWn0oS$Zf`c;
+z<Ct`f?eUr~?Ql6ZhSlzzM&D}MLlfy-jl?{siR~eCwdcVOFS8JHe@%zCAJ+j~2XQ@v
+zYwz_aujN?2p7GYg8#j5MeP@R|{rw&8-ajk4y_3GcXG1QCcDPm6CNEIkA-D;>4Vml%
+zUw<%L9ssRCZU}#n{@5G)zPooI&-bfP)~0un7ioH@@0-!wR~a<Q>M7@*O~19I7bwBF
+zgPy-O^;mxItR8P&5B*<G_x9A%wg&kP{SI2qPA{HW7$4f$sxd}8@O%gEF>aUlW-&)L
+zo)h;l(2KE1(<iP=d_e<M>FhLIa|%lT|2SxqV>BD>zVbr_g&To)O{>d0)S~Dr1)Ajj
+zXXX|1?|pPYblF)E=CP$e(iYI!<+<v!yGsK0g~95xJ4$klp@p9QS=<K?6bzJq!#rMh
+zV}~0|wz*u>T-%%@%BCWZ(k@E=aV>a7LgC7P3vw6puXA5yOz7=_WBHb^W6U+}OYD7$
+zd^t|L&TiHAZm)8BxA&W$AInz;yS>GjgU)yNc;g-&_Mf8v$LF^n%ahlze!o3z2lsow
+zExv!!8nmOTs2xePBckONwxI)Upf3Vwe79de`M_@7hI953S7qe*(|>{E--9*#^1FIG
+z?~!4D(sIz$zhk_dlX_&%*<RXGzk%{*5qk&pVWHgb{GNQoVQjz=C?WJkn^MpBt?eFt
+zPJV#@Z-WfZGPa(?e3Rr&?GDS^gtGW8$LxmR>3G=qRpfsartwjZ!^2#6_n;m0b)#+Z
+z2Jox9zBib+F6j3DgJ%Pv+r?-H&qqinn0t@<=;*$F1AR4Vw@Jp`D!lVf%oTa$YS0(k
+z#u)F$OSzwep3m-<HOuw-HjFF(UV*j4HA%l^w)boE3VF4L(%DPjMIDI#YnNwlA+N^x
+zx0hhtMCWRBc1#wWpxnAkiO=5TRK{y$9w%T94eew77CnFTC!_w!wYC`FaUO}^F;CCq
+zgAWhnX-ht7o?a*TOWbzWSyfbL{bc&NG>JU-7vq?$`|xCc{F`O`&q0}tcdlp7ORLc<
+z4AQ^8+Z(9t@pR0n!`QhCQO9D83CGsPI8~s({+?&@H^w23wvEGY#`)G^JmZtl?pVqt
+z<_*W@?v*{BGpEBlG_%7y3?A4I9{9q<4)187!}}t}Mf`=tPdJ^s_7lpMMO`oknk+5y
+z#d;a*dM(~hEGAY&YUn$*^Dh^x@5m$1#&;#7z7rf)^r4n`FKDAx*&}osFq2NpgbsI4
+zvy#b6_4psG7#@F)SKrUn93(IYq!IFzZj`(DA^zU(-E*<Z<;`#RRrq7r?ED(v1ri@{
+z=hDXo-)FtS{N3j;ma{|oJsVs4$n*En_6=F{^XIDd(q2LSru?Y5X1Jao{h3;SwNupE
+zc_%R(QP#`YKL#2*yqEX-{!nWF<i7V+^bLEiJAJ9*rJ%28x&P7UH2__v?v9?x7hc*i
+zsrBm}ld6<$Bv*Y7``+O>dy9O`MbBD9K04*@3wk{ALDHS<H=wx}CJocv5<}58dDAEL
+zxW?(jhjF}^XAyedXy<%)O4}~u3b*fJ)LB+EcP|kG<!tOlKksnwv$so(SWKVwGQR$O
+zqMu>^znJ~IoEU?<gR|$l%cl3p{yZbHD7#qpw`T9dg~Aye+ZUjJ%tL#*Cb>2_zFe0)
+zH)8v1jp4QVu4c718_|CDb<dD4iM0&+xJJ{(vkwjASD|mr|GRPTC|M12wRe!ZdYo8!
+zQ{H~|b3#9F7ha|4m-I51eISMo`=)gZ#y?yOIq4ca<9B7sUODAsjP0@xW`o7D+1zG1
+z>m-dw<|uu+MD&p)Wc;M_=fc3y{>8Z|G^x4SialWNOl|kIHjBOO@L*v|D|3gStoBnB
+zzdswayHWFrs);>%UubeHi~-jddBih#-VVKTK=jIH!Iokho<iLm`_<;~KEQFD_%lVz
+zt9dr4{av|EE2)Q}o*2s7Whx8|pT06Ei)%*Wi694Y{qEO&nSj2Wgmy1JDQqxyqYBa+
+z<v{APJD?}+!Id%!g?c<sO%5A}E5k-7?#;rrA6Eme&ir5@J}GQe;o3epSg66hl@r6p
+z!0!hO7XB_Z!^QzzRd|MRDik0jF2V1u6QJAR-NWO<#$5bA&bsiIvOmuSs?h&x#tdL@
+zr;Hee&cc0u3G}?mB3(fCt-a~&ry;98u&l?6?gPKYRbwf9qn$MhZ+X#w6B|X@$EVG1
+z&r%-j{qU3G*H4UO%TzdopXS&Imha6x^AW5G>Y7(UzWk5#JKPj_@(S?he|zu=ZzX=O
+z!nGP#5?2G{(&gaSGma`5^a`HS%*6bw*o)i?^tYHxd2>tODOdyY4D#kH=L~9_UTfdW
+z^gWqLKDkz&)qwXwess47j6CDLoy&SW+6DNIiE=BU8-J`>@vF&@{eJZDFhA#7H=&<>
+z)>!n^yU~`*KA`*yQz++-?+!}+!vBm-&$p%2*-t-cA{k<QvXi6Dp>o@?Jbfn)%~X8+
+zYQKH@yDz6yT+C0koUk+2;a-pSByFW%ab5m9#%>4pvnzEwPr<vr#=&eYWQrX#6>Tz>
+z;}r5I@Y9ZmN1mOqoEo&9{h5xxI|JR`RfjQVNk{MjKCNXUX&3Hs+<t%au{`lY_7EEe
+z{cvwSCUH8G@cj$Q2AQLM&ca*=9VNpUi#z&XIf^!#ajyG{YO`Z9_|3#Gpk1rL13x5k
+zNvp$mUu;zJ&XoFLd53Me0OiN;?eW<EH2Pc%eQe6tIs`|lO!M(anuh(NnFoC#`ddDV
+zkMsS$i_mA?{(I4WVzvwr|6O=$tH>Oup}s>8c8d;Q)6nfX_b7YA%b+PMq42f@`{5iV
+zi#&s|`vZPIgKtFUpzHy;<65kbHqdW7=(iJlWEW_BD`<K<<c^4LJ7tcGt{av)W{he#
+zWe3WKl&b^u_r<t<{6XR&fzBnSMcum!_dbQOq+Ajyl1qMm5zCH?4=UH+f1=OTB2zET
+zeVv#+6Zw0CcN^aO3dZ8UXR5uSrf6?qc|W}9_<IA-dY;8Ie&_EEzb6ikrPlssXJhS0
+zKohvCjSk_x^xx)rs$s1ap8tESThU8EXCK$+d0%CH^x>J=eWwv?zH>X)P$!;|PJ45M
+z`OCH4(O*;NqhE2ow||D;;{F2se@D6E!`0~hylB|i1Adsoz5V#hxVf&fu<^{G;<<;$
+zhK-|<uyOZ4z%zFZ7V*qEXFgxGsK=}NoWidu#U55_wm3X<w;|&Y8#AD6JV(ab7r2)A
+zB3@Pjy=5I^I_OVAzxa@h>17!6C+ovz@?6mDc~uhz6<uT8UetJ7%D%Hm&YT#ZS!%Z!
+zp+q_mjx`4_ApVox;?O>2WQe!*uvZeJPr!EZ85*j?U>)t}g72NdxYe;nyn=oL7UO2|
+zoA#%r%1^v3VC+3CW#N04GrEjFqMfvz{b9UnD}8j8pWj}O;}BLpa#`AyU&XvL-aiz_
+z{f0(&R-(mC1-A5+ip>FIcDCZ%sQ@vAQtp|8XSFy-|AR8!_cv-wfIi4*%j43PH*Poj
+zdj@0XpF+EqYAiN>LyVR;`fj)G?>)K>V(#+)-`4#nz8?9Cfq9q>zR5PXj|m&A&M=ID
+z=3#$`NzYy4hCyS=>w3Jc;c{<vNbReVTc9DG-Ck4feY#Ga7X*x0@GBULr!YPzfwz<z
+znVdntZk{vGOlO<tsB<gw&z@O>`FhCj_2*C~ZgtZ2<=!^jtF7?k<XfGIzc`jp*GwI<
+z#{{uY-lcJ+CS5Y$4aerXJj;mSuVE*>z*NQ0U%R&8$Bf<AUO)f4VU5@Ej@g6xbp2Fs
+zALZU;tF!lP;;OYeq=PQ>EtGC`I?<nStj#@J+b=(;G4qn5W5<c_Fr~9z*}kiZ6NdLl
+zn~WFO8kQLR?7g#w&eY0yk9E(SIVfYq`Rl5j>U~SU!+5r>HR`*P__dOcf|y<3*UuT7
+zTVl64Ve2W8C7xld8QR@$&3AX8t)Y0UQ>xqgR^3Llw}NMQK|40&H_aG`xwxj`qOTL_
+zXD{U6eG_?(rSe2jZsb_aJT{R3!Ky;OcStr?d*3^7|GT))ISE3RIg@f}QA`uZmb%*8
+zf2QKjXwx05amQKC)MEp(XYN25PfFa<O>)LjH&gYsO!)s+?*->ren-tz&p&hOI$!lK
+z2>F5WLg#~DVVzESOvj0Uj?1?5eeg2Q%WiEmoq4vhJKXwX6@%dG5^qO++hq=$C6?xU
+zx}3WuR_P|s#}t$~(QUgE&*-b$2|Bq|+fz@`<+tkcC+Ke`$Tw@et&BMYFS+u;VI7fv
+z+9BavJ=%uZ>Wo`e5E+H%nzqI;^2eRepBNa(U&(P7e6_GK@43N(1OCso%5$e>g~0-4
+z_gA?m;J1zI?jU4$$ngDxYAr9gzQ<c|o5HLri?11(gM>ae$$w1_5|&LlI^wi2{@C^N
+zDlxZ1l=(+^4w~rjs*~#Mf%_ECB#8Cr=OP*N;K;m7r4OpSOaF?TOUyy?Qf6e%rQ#eU
+zrQcCGNRDLQJO@dq5jGsm!IJ1}g(Swj6W7W>*r*QtzmtRHof(xs<NnP5nfw{)%<*%O
+zeD~Wb2g%mVo9EA{hVto;<93W;Eync#?r{u9=l-hv-{k%>hjV{%%%Vm4M~cTy=uy+=
+zR6Ty5{692)@uKmoEE>O0d|TxonfDKj-!sRC$B#7FKNvDPas7XpcXH;BN3P+MGXMJA
+zX@Sg%bEi$#<M-;1-+Uc!9l%&&{48+)rG?iDy%^8Mxc*<wy*2Mma`_(m;mF)u13y%`
+zx4!%1|2K1Q-T%Ym=iXZT<9{so*0#G<?yV)Sg^b8M45J3~SThj%znYt+eX+{Tvh>IQ
+zXLGZ-d)_=Z%X@$P&*f%$=a2vOxmm0S|8==pw*D<-SeVzHlym+bGFIW5jVp?4tkyH4
+z_)GkTccE|ZH5OGs56*^TXENqJgmDf*x2-r``re4PB+-UsNhFgLe09)uz|{B;)N@bQ
+zK24Nud5^J_@4~(JLLa8jn~~}C#$itWS}1HAXCIK*<>s06vuJjM#!{|@^Nb9!Nf?U(
+zTEqSEMlv`-FaU^C(#UiDZ3e#8cs7vL1*apMCB_f#2Z?Kf?|JVK%Yz)uwv3nemS&$8
+z{cchAmr~9l?T6JKBu0ABZkMutCS@H`Wf?qETtuw*^PUqw`c9AI!@hE?g1W!{I28B!
+zRq^3qpGC(#PM;T3??2D5{5~(rMPsVZ#AF<=`-Zli$9E4)n}4C(+!R#(Z(?k7_Bm<u
+zFLawFM@IG;>Hp&FulSwCu}R9Ae!xx!#|Sq1V(RUq#%*!-aXm&M{m!HKp7B_J5Z$9u
+zZ1WG%=K=d<AajAcl6*q!9!o1k$Bk*<EJN%fj0e+np>+IG(D!Q^`y?8l!}HA?aT$Z4
+zxu_j-g7$Te{52bcMnkh>n5h!H7vvuH7AfaS@kK3dXmlc!k1dp8U+b2}LoRt~&`uc<
+zyE!Op)=be(QsVnsyiI)hx&(JGYF&smFiGO?YjB^sHqUz*lQhoW`^!=zb%2<+e!ENT
+z6l9)e`ex;5dtv*9Cd@gm%1w}Rg4V^dE~9qF8)G!OCDwzoFQjQt#QRScy&t4+oJ~34
+zBA4&;U4Fy&yYT)&iBW?b0$x*XD!V3QH>uzJ5^XsAmx289zl4lESl{!Yv&_PEv&L!`
+zUmx>Hh22M6pZ&|p#ETBbnkR8zpboWO>%X)=FfK%F4B$l{Ja<s^&<4SU;&Wq4P_HAF
+z7toj-{C}xEQSjx1<+yJ*H<LDrzkQn?%K-ZIqR`EvoNb)>e9#h}k`2X`-(EoB|4D3p
+zxnZ0U%pB+onri(Atft_r!mpP~ZlnNhO&EXriSYfGguWe=tJdDobE8@4{}tgUk9cz5
+zYIM1$FrP$JW7Z$l?c#bKYL_|Ot_s~Q+LD4c+Ld9uR6ZOT2djy(u~UeL9;Q#0ne_ZR
+zO2m(yJfv}`J&?c7Ff1n*lye5%X2=LH3pU-Mp}u7$X0qEOKVqz{lu3CB<-S-nzx1c!
+z`J3P^<N0suiLI4#8Z>T=|4vZ+2(h;D&M%7IVITP(`IxeM6G!S=g(Yf*+-R)H@cpKR
+z7PMa&f8&{heU!e;>jL6K&$XK=eMxKqizMzLXkFl9e{l*{P}W4i%3$mtA#NAOAnE?*
+z?7@5=Wlf$-;Tzfx#ka6Q>D6`d=jbD~j&uAf^W0$U!8f+?Y`B2&f0cEoFLDcZnP4%z
+zOq|W$DS|~(Vl0&XB-q*HmS`EU>q;YEVqW7ATcRu;z?`)h^ebU`LBUXMc32P32FDVY
+z({6T%Y4Ka><K?+<@1vz<zRwoVy0LD<Sd+#53)_$Ov2X0-9cR;Tuf;KvkM`9HU2yF_
+zOg|^r)-?D#jYGqBe4R9Pc6vj^Xx<3g*x>J7LA~FBPs_f02ln0K`z5kA4tRGk2L0^x
+zOz^0)Lq^iZJ2U+<#1Aljz*BPE<@B2Zf1rHk2o}Ggee@&XE04__gk1BicL(^y!@a#(
+zVyjP;nD%ZjbT(zJW|vqZ#9%1nT*cQpj6aHWG9GV@_-2~%izF`VU7$BJHrI_9tuhaM
+zHWT*($u_~N9INlu;a<71Bx^R{`$Ve?{bIMQDLDtZDywi`jY-;%LfTUP5Pg~2L8t4S
+zXr{@TV086QFxmyn&X>j1+CCsQz!1g{G!_Uwln&s#Aox`<WM@jEnWRC#%?ZYa2)>Vm
+zi`J)L#3dHFA%zo1-hg=$?AUG8U;OnT<AQkw9cM|Gl>262{#$siV(;~WiM`%S+E0+*
+z(MEjeaF4ed^HG_h?_{~i$0uo9BJrW`KRjP@fDw=AftvZ*SghQe^I421Xl)jL+qh=O
+z=6mnObsnzw;Ht;Hxdz@pXMXncA1mZ%W#+p+CKO}BryU0uigF`yp@;>wDl^rax41`P
+zLgD=d8pEj#_kEujAIFL3CgFw-Z{k<g85iW}DgUu&q<_p&Vijc+uI^t(VL7e-=8$iv
+z@R+9E8q3MjSWZ^?WIp?oUL&Ll;xVN%8o$bZNb-Le_I_`rO^m1c?s9v+OAM4w{GV;6
+z&bAEyZ@2mT0+*N@#I~Yu++zHV<6^%$HGToHIF=G;W3}oN_M|E2qEE9P?g8%_?$=|C
+zcP{=;zyFfPZF&%GjcW|1A88CG`rblE8^&RZDIBJQl+Unsp?9yNFPg-Eh>X%a0t@1l
+zA`HBf1Y2dH#KijeP&}Vwj4d%)|ERI>=4!l_BN_{@Qrpl%l6$a=afG4K^>~!cjH`0r
+z(RfQf)>}$&!+zoCDw5br#u%@}IJblT+vi*;_HGmN$e2eJGt%UJ4dtvPmO<tgugc+>
+zL%YO8M#%3o8@&m}uKw|vcGP`$e+X+BGIxJfa;rxi7uG>v=wiI9&uF}>%H0a@>OTZu
+z;UILW6!nN)8RSr6u2B9XE&UhqAdNYYi{rT^7`F#z9?Vur{N-i2#TplJkzt${gkE*8
+z^<*}nF*E#eq3zi)u5-dpV=$y*iMHKm-y=9R0l`bUjC&1nlf-{$yx6A=$a#&@o(Vc%
+zkD>5_riArx^6iNJO)TmtW9h;Q=Zj+<5bT48M3&(94`e`ts4Hnt<vDwWVLd##0pn5&
+z9ul;kBG#O1+LIU~R8a%D7W}P(abXR__OK4&dPL5>XzMU6;%hK3nlWV=&+V`_B3295
+zNDIah&rx3`{&H@sk}YUUySp-@Fr==Ov)C5l^FIQQ`-{fY>ixdL(;B1VjEI9Om|3s>
+z5qc;t;)xrOQIB4vc%bY>u_oxN%^vp;+PuUkjk!UHGfKQ8teG>hwz!T>@nMZi4i93T
+zMsYo0Kar)KfpM<%lO=!p<(G&2(Znwx`#$E$BEQ(@F@K)y4K3IkbbJNAcL(%0f7UUk
+zw71X?wha86cy*ontb^<5kD8AU;qRfn#MEG(FTdU73FN1PUy-x*oaC6%SbDSgH!+{F
+z8M~vTG3N8aJ&A3=yL-U9cYN8G&4)45{TSX_@VNtDR`{=!wHY5+iSKq}kC=pdnR8$d
+ze$Q<{U7b_CU7v<L-_R;Jef79E54?32{>B>Sd*|bNKd$%TV!glrsKyY)e)qP~vBY|>
+zXaLV7zij}G*2S?8k&njJKH<mM6=VIa{fgp^#JxAs*6i+)ICzv5S8A*pV!jbW<1L`2
+z495ATI}5|-c_{mD4-Dh|H5k&4$$a+RqCLXK9<Tyq#C=on{4|CiG5eNj3_s4#3c*|g
+zzqiz$!2N*jPimf?|FUW~=x7RURQHW)H+lU5UGL9O?_$mGf2#St1D?P!GMtU{FUS%T
+z>o>SZ%rxu+=gn#WZ;n$oCC-|{{UM*>w-th;wMTHYOpVDlUS#1bg&z`cEo6K|?1wzZ
+zo~QZz3mR|D^s&iQe!bA|rJa}Oet<TIi+DP*?}&+ZulZD#x%WbKb6mz{JTw8aXk<|Z
+z*72r*nQkrv-zgKl=*vTPF=8vLd#i?WgNBSrS>{4w-VoX6(vIK-(e_B2m+*1=b(qbx
+zPs%;=h=btz)wmdIRLhvX<RX{0N6CfKsdz#pp1$pTu9=xV%AYFH)yJG~jQOCQFA1K)
+zI6sajW!86pMA6Q8;&VdguhBWqsJGCk3$oDTVL4atmOOAvNn3W@?bUe7q_-DDHtF`h
+z^Z@;%FBjdA_xI1%>)Ku`G5Zl6*CaTbiRqq?al8y=(ciyPx8;}gRgI}!R%mbN7s4yS
+zYf$!W7o>;E-^KD{>%7z?)xL9u?$;8>^+@Gcln)v7lHK&ltj5gOy#vDWTFhuB?lS%<
+zO4}UqQMsp}yxE|UTC?4y?J#<Dli-{x{nOX$)n8s)vCnL^dOX2%&D;n*XnS8fa}pVw
+z`iUb_5^q=Wo3R#`cx$DCNs@+K-qLSnTD(e)^;~PVxM#eTIu~(e)7dYWhMZ&b_viT=
+zvi&%n>(E4-<p0<QszHadjh3Mp$#FX8S(U~<-3lpS2Oikyvjt|%b~eP&ULP+*Vjb1q
+zmSE1DM9PWjyoYLhmHxZ8P{{MX*lq0QT+D9uc)t$c5FfWra!U^5V8o!;`FU~tGWsD!
+zF#iqP!rV8Ds|N}k!y4KNGaEd~1H?1xX`8%ivssV-cF!!raQ$G<eD}iNT_XAtG5&78
+zO7WfZMQ%vvPPONI^!cgo1s}&csKMXE4Lur1CN0<uyjRd?0b_(uT#++orUT=l<A8sM
+zz`qU12SM7e!+~`6o8KGo<3yQ9tIX%ylX{h(3&-w@-yimoC$2X0PZU760bRaNtM{U;
+zKq5`vcEnWvBllphxudKoUnS#BK5Q6yey{Rsjx6Iglu;aC$#?$FoJ(&xmaoHnbB=3b
+zou2aL?(#O{eN*QIq>tQ&?=eT<X75J1zj^5X4fwy0+1>WNfg^&W-q5M^V3c*rS!$mm
+zja5T;{n}fM{5U-pk54f2t70m@C+X6UXN-cb`OZTV4BvlY%3`C(TRh}{pz<hv`{jXr
+z=Z(jN&Pmgw={ex*si1{%f>q<6acuJL4y+OTRJ#)r|KcT-n?NsLWDXXCu?Fd!AA=d{
+zMR}Z0%>C5y>70$<ORnkBW3X7+WL4~6MW7)aqWr}3vsu{FYK)W@w72v@2X?u>84t+w
+zUD_E-A%`<ZBQXH08d@Y*;akRcxZnQNVE({^-EwyEz=J&Z?Uwv&Q`UF5j6*XX>h?;-
+z#@Ov~e0j#WpYdt8b$EL>ba?yj>F{bW&f?Gawhs4ZjfYO0bNaVNig<#O+gdzg_L3(4
+zcK?9({cU0H<ucYmAJJ-i5cIRTpS(zXc6Cm?FKS=ck@KVcLoUMn&}U?>rQ#uYKPY*r
+z(z&LGj^&xZ_qF>K{YbsoUx-OE9yEFIcZvtqga2@T`u{LkNMerKw0uiiCBAqVI@WCF
+zq~!TULhNiI+ES_*GsH7F$bZ!h^s`P0FC1fZJ<mQ@r90d@+<&%O(IeN=r5q>l{c%ab
+z>7D{PUwo}4{u1MVv0<E$*4T&HTJGgM+D3=_-cPBx8vegZ=g%wV$(0y?ziwOC&GWNT
+z=xC)zYd>|vGceAF^jQFP2JQ=tqfmZllnu}qeZE|i=oCCVp>=bE#8%yo{+Y%WZ(M_l
+zwdXgta;$C2`>l}iTitQm?(qBZhWK2E#cz;pXpu8(<{}iFIaAIMa{hQci}y>7E&XP)
+z)#JM_Y1?VU&!d3(_~j`^zAdiS3jI5SVxs`f>b*wtL7J^@0d#ZjR7IzM)iM-wcQ~i0
+zdw<gRqPX`PeeVT*uMRvUO#jkYi(^`?ZYAC^eftU4;?GsNF7p~eW;}BDp^y=|VL;aV
+zzI(7nC8xqdS@-3=H#(n?oJLPeyvhf~XTC@BnZ9J-BKgo5r?!<clIi5a`hNRuJzn63
+z>qMW%+&neiFrLNQA$CG8nz+FUcHZDXUOe)5@Q!5<4%<5XI9vKYmq6aD#CN^Uuf%2-
+z$gFp(A4+H6>VmfL_pJJKw&HB8MaVJd;P2w#RoSy<H)ne@k7n<+f0FIBe|?YO3fYg|
+z!}HuveNp+2gQj*<{;8IHrrqA3(cWP6GO;c2EcKamkN1*wOZFi4<cHpt&Te`r<HROi
+z;{;GgVCIF`pRaM6r(NLi-C$jl8wNkR&$=NStb;Cvze|#7$;Gsl-+ymZ{0zp3`?H^;
+zc=~q+^DFUQhV^6~avrKcJ?EgFv;BG$W<1udLs>n7_HLPwbni88$lk_yV(O__M_kjD
+zT-UgIr#+En-nTC5&6wMjkQELGRqROpb0OnO{C@uS8_rsSXMgzoyh}Lms~%FA2M00t
+z4s^>ElT?n|!_ZOsZDlKDoD0v`&Um}>kqrFil1ZTLNsvJ&1?HzKR&>svRGXeZslH+U
+zB)h3+GS5)1B_7cCM&_5B#QD|w9sLsg9LPpm+4uhI=Y>4wW!eo{PpSE^*ehza&PJO?
+zz0Na393v0=;yB^kNl)eOP<whLL+tUTxdh%{5U0*qjy+_fx0tz^tc{@8P2K~K%+KC`
+z`TXq8vml53<`T)F$9ADVxp~R?;ED5H;z1CTvbfE}Zs{j3G}@bc`uOdw(>5g9^kNu;
+zF-2pLN4vj=b|=to;z35(c1yLNd5<HENwFDIx=66Lsap|4mignqrN4_7eMi1T{nddk
+zd6;;g=p*$~#@tdCx-Mi0hQ_n8`R->dg;_#gv88S>KSs{$(z$2w&F=Tj&pvkAV7><5
+z^6V&T%@7^cFV`>cy=NHt9rWvPu>WV~yW{QQcUZS&cJ$A7p!Z|UPb)Dbp71MZ_ch09
+z_eT1gJR35$VlP|#n~)L5Z`#q9gO4ruWo*hg_^xT@hQ6i;B@bhk=V2U|Nf;NNeKWo)
+zR)hgE&bq**UH#wwJa8mxH%g8bo^N*2PG&ZW%*6ef?_7;{Qcs7B6)EMTndZI<-aY5H
+z%CDNTz<kPI*kdy>+Qk;BI6t(F`|Ei8pK>jI&_Z#Pn~<1>?0)POTTQ*+mv^|O+V_Hf
+z5DBBBf8l=~^RaI3W4!Fou!lrz#J3{5)#!v?)a?Cr*FZiR?)EDEe7o2um=lryIXv5q
+z;JqrW$$E){*sT0s(1zcN|7)lBUpjYg@iW@W`hOKN7^{#$U-#gm?(iVrMgOWyHSUIP
+zujHqIOuHm=>_`;frS$t<Z}R>EynpDI>V3*7b9ByZo)reBaxGzx#(Z%9k6{0gpr2ny
+znFG+tBg`YM<=~0hKl*B{!+E$MdmQ-yF6=!=7T~&2uwsoPrxB9{7kJN+_v3mWuGzSV
+z$psno$a^&2?7MMo5A=B3N8#`s`qO~KOU{AZ8Qlw+bFRdyXUEtYJ5%qWxs@a5ErEHf
+z95rukn77KX^0AV6gDk`xRV>%1=gluRx=k~0?Q0TD(4|7tl7C0j^sCgnCQ=t3ZsUDu
+zBg^pHIl6s&&^FHReoc4&JN%yS?80;A5RGUWB5k!{&8KDUba;GU*ELk`H}MU9Fo@g3
+zXZK4?LZh<;?OQT^lXvIa8r{-#iar#M??=9tV+r|*Inx%<=UC$w@mW*RIFD$5vcqdf
+zUEd^@;V+dg;(&IzE^7jX0^=6<<Nr(W+YBfgT>d6B_+LLhc4Wy@iUxg~L$UqAKfC7n
+z$REcU`RzJyylEuGPa!D&6>0GUKbP-Qmj*4@lP@Hdt;peb@lJ1`LE#@!-lH$)IXbs`
+zG|}R&drONeaX+AU?jcn=R#tqg(Qh-YXzOo~=f>!~SwAU<jICquOu_RS)>Vk-#n`86
+z>}4UNMQjk1!THYFXea;HKzD2)1}^%LL%HOq^cM`-YaH6;fBG8jL@mPO>$SW-4?J?-
+zknW;<Mo+?g{q2Thl4F@NHf<H@`vyb~KzV^b(zidJ@+kN0|3%2yj*TjTYo69uR${Kw
+z(-k)DGK^a_&w|q&1BI>8$?>DU-PEIS@sl??(Rj)=6Y0=L(5Dxs(J!ULUH8=#_U;bq
+zf?f^w;>EZZZdgN`UCxI5g8f-^LpkS#&J*oS$sXhD7lwJ0w_|3H<Vp~`jk(6-d!^bo
+z@7t?n{!N8FF<ZvIOLXP1e#ZUtU2-nGP4XXDkSmIxSL$yWb5sSH?QEgBxWru67L_MD
+zC&u%m;2+A5C#BkMbrrRHqZbwbjIDjdeT<=x)SXL>8~TX_8PRpkMZdR}D_tNgHa_V0
+zs0#}(zgXwR8h4yF`~AH~pD`}evMFsWw21^0Dn^9gm8)32p>HGl+tNg9@I}EUQ14Jq
+zw6Nc*cQ$(U8n2}k^9i0_VW=DnWkKEN5{<*N7VRgEbv~)|UD6TPcm(v3CVhZ5XlLYE
+zqM>tzg~XPzX=ptCJo2^o4Gf)|kmi;f%xA!J1a+S9QWRxEN90=N*fbF*DYixGSR-?!
+zY<T}6J}Fz|44Aem>WQBhzpgF*x!UX6pkmfqJzu6YwM?1lobN(L7P-=CWKO~1+`ZV#
+zrrf`4q^vwo%gSbvtV}#?UsiVZzh3q{BJt)*R;GMRnRgy!GRnJ@drNpOgZ|r)&5pbS
+zI(cTQw}8)OZ)+7EMfrLK<T;)vkSFcgJ3qU7@%-$4L7hv^X!R~4mYselp!H|ysFDL`
+zIqp|t%&5msz}`}cu`0wL_UN}v?ALINzU5fQ_)WXSDfnK_sv63{XFI%z)8WpBTnSFn
+zA2n`yK4h#H-Fqd<<ro`Bl`YO}Xr0Wn&vC_aKk8Z`xZ9UyJLT+Ri?oq(ckP0OxJBCc
+z>I@Y#L_cQY1HAMu+SsYXwt8zcpQ|#{xli7!@&RFO1U$T(PNck*d>&2buIDp+Q;G2~
+zV)Vyp^&0Rj6XiH{3ifpE0qEC|a{?LgW9CtjwcD=zH}MYF0H2Z07hs>E|I}<e8?u>0
+z#-lG=B-1Hp_~Yrf16k-jTBeEVn6Yzl)oZ!vY%M3v$Ms>J_uzsaa^xgjZ^LED8Sh51
+ziOi_OdaY~97OFz-v>N=K9dbkXYg_GJ%--&u=y`y-ge<joeV;ff6ZcQ_O$=r73}!aU
+z?H3v1jo+V*_vI`J?;O^7&m$K7X1n@LyIsz+LPk^nbAk)b`<wb%9`6yeurkx`P5=$@
+z-UK7n|CH3ZUFxL2w4X~otjqdoL18!W|9poyT{hnTp>NCaZNi%WFehIezl&{P3yhRY
+z8yNXe>Al1D;PAZzM;N2~5zyJ6eBT_%x6D%?rG2$mFyK7;Wc=nH%1*@AhhB!?iO>1=
+z)g={_E7*oeXFB_J)W_Tktow8TeL#Z0&D#~mZ2AuD?{^YIgz`sarUm+3ix-WxcqXn1
+z#uo8is(6Qy=XzfN`J^hNY^$chJrr{a*}<1l7z0+_i@h4W;K`Gfd_o<hXRMM>-lAh1
+z7=u781NM2}JqqLJQTC-%;fBuDd&?M`7{1*i&yepg8DmH+M7TaZF*GYZaR#n%O?u+=
+zS<MsgwI7}6V=>>S%e)7F!<`DVIX+4*ibF1%2brc?#~J!E5$B{j3pwIJ;xn&tqM0=g
+z?=Qz*xdLsGT<tn8X2ujF&-mg<yv<XxQk$3j8)c<7Z@-*vZu9!iE##TkEui8sa^kbP
+zk~Suub*}Ty5ZP**=VS4V(Y|ND{#?O7Q<gcxoZY#(P`K+p?0q~pPKkXuDe`^L>gk(#
+zAJ2h1`yw`dp;dX`C=_=81ocw~zZ2il*35m3aqN`YN-Py?w)2kzdFsTmA)E6WN5ui9
+zbKag~QeTAmz;JCqSt}n88NKfvD9px{fb3R{|I^k?8IJbm9RYPN!2L9Wy_0eHl_8#8
+zbqL*1W}<zSxye8uL)dAZ7~d|)0Bxp{1EO|oiEXq(UTZC(Z|j11tJoXANE<HNPJEEe
+z*~HRNw*Ck3yT)vFL+PYLn-_5sEtF48ZRS{`J#uzKhf5idw!Q_)R+Tdve}%{Gr;Rr0
+z6>7m(_P1xJ?`;<z6OV22eE*Ai))p_+)vjegwZD9n@f`LRjdR&OLdIK6yb$q~-Jo!d
+zk0S@p*XK=?2aDyvi}d{(+&^@(+EZyqt<hMm^TZaprN~!D{ieSU$Czid5?>SB(6_*%
+zy_xpuHL^!8fG!b-e9&8^$}QKjE#r>OvBnTSagEL+O}WjN`E2oj{D}B(5vz>2(U(Vz
+zy#H>k<RR}K!Wt*GG;JcslP7D<?#bA@Ce@l9lW#_OEaR~7Y1NmM-kS~kGV$pqc6y`W
+zBC7FLKB&#X8qf;Y*v6ApJIKRJz&~(b^0ttNhd{^v|H;Fv^*IAEb=a<;<_|;is+|sD
+z&4yTZEohKf@-f}7gIX?Kfbt~P6y@af7!V7(UCY~TMe|8Kg&KdpbeoS5xA-SYj-9t|
+zKw$?b7l|#2X92WrN0eW>_)3`gKY4`2su?$VC!afvLsAk?I7Xt?VIBqMOsKneICdx`
+z>t&5s3tfiz@#K$!ZSZKwpq@&(A<BJ==RtuUiEZtyf5d4&2Xi&^LMLiBJ9{rpXD_;N
+znZsBS;@*a0DZvepoCfIE{xtbVhsb%m>?gA0wC~h7jnVnO4;F^7B_@lnUYs!&GQLLK
+z2~qEmI70DN+v4r1AI8e6(C>@yH~nTTHJ6wd?6r>QOi`_y{_!4-sb$kA=Ca&#l5@P3
+z`;~mdybqKwI7Yd9hQ}x@V}vpxpK@NFy5w3j@<_-yv=_1&bAf1#jv9y9kUbu;IV}8U
+zj4Ag7Vnb3-?=TF(>IggChk0g0nTL9=FW=R@iF`NfpOEjygD#j85aW3S`u~x)Xk36(
+zwSDXDxX!?JrnYB&NXvVd<61(RiYtsCUpA`|`Dmk-kDB{mk+n8bW|I6WqhuzD{T=mf
+z|IoeRZ*!w$tKW^1t$s5~wt8Cf6zccEL#NLM51ri%88GNhtH<BEpc}+r?oIo(thgkz
+z{S9SS=J_&p8&3RA%A+luWxXVNEy^{vpRj(Dm=!4Rzlz$+oYuei2fmH!Z;4?}I^*8C
+zm}i!~%=M~b3q|&WEVJ5Hb`AO$e)PWw@<VwZ=(Cr6I2W>-#P=`M@KA1<(FQt8It%gM
+zl52h0@T#G+_bB-P=P4Un2eS!#jqAsIEkS$EA`i!Y8i7p6bN5<f-SfULJI@JCVxrkC
+z9&y19$H~<?EnW>S3-_uaLoRJ-@fIgryi_e@#|DiL+ljpx@}UKtbXE*<BjYx)-j|q=
+z&1`knP@U-TE|_e{Ie8T^*Gmn-8x^cR;+yI{@x1@$nfq0YrJTaOd@<MlrO@m2dh`AG
+z8L!ElT#tneAMd)%D8i64YSLNAkJ)?ez1fFE=h!T^0bfo`p`US{^MkI4lOImB+({ov
+z!CZfZGTJ(iHgwu8C;zuPBaUKzsMGPxhW;bO&nHh?0J*s5dg$UJ(-KFi$vaKUd^=yo
+zeT?M;ki!<xr_tEt-F>NgH*WL)8|Az<5}UyoROT+1yfR<Z<%MIajnrq(!2Z2b%X$rl
+z!emjhUaNEF3(ynrEO8wFg8$e(Qr5d2Wt}`$$(!|~<ju{!!}8`<StlW56=cC_5O|7Z
+z!CjCA@BXp!l{ubXG<%d@G^<E2dhk2LdeM)*qx7PRbB6UI+H3~2jG272$Fm@(RXba}
+zmyL37d-xHjHoe7L9|Ero#2oshM6Fvq`U;N6n&4jcs?D>$TRiS*`^<7L8KA7SW%7Qj
+zyrlj#W%G|_C{LyX5xZ5e6Rp-B&q4Y7&GO0Sv~uq#%6K7D?j<0n)<O29+_}%5?=Hy9
+zcV{)Uy8U?fFv>n;m3s%{<=z2Y(V695<%8uCht3=g=W3s-S=gK6<`!=@_R`WKd*l+x
+zoU=1qWPXL781Dz(8J##)%aPk<ZHEI!*~`XMEz@)!*XH<|_$i?8=2Y)JS}yr3?iJT5
+zwkgchQLztg@s^-X2J_OO4I+1tKZEujXizzUD+9)q{rVhJ#o=9*t71M%lwm$N)!W6h
+zRK|`6%EcyW%w!JF=Kg?r%kw)hc4>ot@z4imx46t9ThCYs$P4uGt+(d8y%qDb5sX<F
+z;~fr6m1hpxcDlwuovLMn8o@Z9@BS#O<CW$A3Uer`@?T~nl9#GN>~T@8`vt{!;VJQ5
+z_@2DCQS@W_w0_ztFqal|2_-lB_M__h9`E3PYuO<~Ib$jJsxrQ7XIee~eeRV%I{Ty8
+z<0~W<r8YL-H3j2ii?<YguFa4Zrh5IDk64la#bci>__<H++EvlxeIIoNis~XCE63m6
+z_{-S52*#AYok8n56~B2v#puw+SiqRFPCuTe9d*)n#&g$DY`sGp+ESk7qD`IVd^dPT
+zldED?uqGVF^OSo}==MB=xq3q4pvbqkc+X%S=4cxkbD1+=Vz8_t2c5T!Iqsg3e9)hx
+zkM=p`$`9`;ou6}xi7_U=&z^HXs>YtVl`(%Wm?|#j9lBiFoOhr4(d=&fSCXgq+l;+H
+z*~D#5+EZI_ZKh9f$V@k?xW<LK9WocgaSV)UD97(F$oy^?%H0|=8y%JtwHw`=B&Il?
+z-OLzGd&5wyOUQ0?c>hM+XKWzjEtVDv&vNaOj`}5c<`#*cp)SF^s*BOam9hDfGa)1S
+z7t&eIG3RCg<GQv&?QsLRx2r_$O`k$p0~oKvd=K~Pv_5qy?jO=QRIf(AUY4Atn~tkb
+zE#bS2t;j5J522pl4=VY}r$^@feBgJ5yoL52#Cr!&AN^&kL5uO3#D{0R_0sG?e0u<M
+zO?~4a>YjyX?;AVE9Xl@OZn7GkX{Ue>VIOUzugeTYcL!*rX1=LRvm2ZdlYE2+L30O8
+z<^fi987RAdu<&>k<H>nBC^p!uvN_x<DQag8+PM$%`D@=9##>?xgAMr{d{+F2r)nL~
+z|K?=LrMiI_8#x>I>MWJNd?ImbS@*=LqKCebu2)B!19ZJ!&CkLT&#rj0<di@e|E}le
+zHH>YrsLihoDxHD4+<`r~gR36b`4>zuntwa>!r9+f`=AxWUKLm8kR^6kpU*e%zm)tm
+z)mLJ4_3`}h!2Q@$-=WVow0~IG=x|%XlT;3sIB4@m2YN<{kx2(6j@-DKF<E8fB^Ru5
+z#OGziFN-jDh%qtuH_%Yj*y#CwW4-nPS%2hr5j<D1#!E$ConUnKQ@;P~>~xMY(s-Ut
+zfqo)7Uj<|6h@-$*oZpGBt-`^5C3P%M+qhSCEZ>fP?A10Q?%4}?wy)1Tmg*S8C8mmd
+z@cnAyMQ0#8lEjxbj;#95Kj$NK`=f8{BUGaOZ+su2V!t4shs-KE5Bb)qgJJ`njeE?S
+zz7%C7@a^u)=4bajJU=@#U`Q?y`+Fh7rjNSz<>h=$aWsC8KVO+{+A2cRWxkf?qOo*<
+zdssB4=S=71U@k$%%LR-{dd|9zJ7>YOC=*O`Z$Ez%u^Y<NoVDmVdqnas{@}NQZz=wK
+z)RS$AwO%N3@zgC370q3np1Ut#?hftJb9d31&(mkriZR~C$w^!k&x5J&H$YY^6!Mwl
+z_$>PVojWas1sF`XfL^yj-`(7I%7-CWW;)zXld)b(reOROb!qwo|6o92_S0vvLHQ}<
+zR-l}Sv(AN{?N)0n;DFiU*gWHf{1>!ZoHC=MKV;n6Zzh$$8-0Qqzejv<-v-RHA&DIY
+zAM|A&;=K#b(0w6e-<rWfx;0?buOBEZU#R>Zhx(sE|2uX6GphfLv!YF&ekm`XXdFOS
+zhx~Eq<v83jVjT9KU>v?wG!8rP&JL?b`W(sJ;Bp`L`))$NQhndvFMfXLe>K(u$Ao8N
+z9EUO57E^pa#&vMKu^=wQY|zB)p>zHghnShw&nv$Se)G*&RLlw5;L!$f^xoHxo%m;H
+z8X`^7cl2I6!`M3UyC;6!9K*n#)Zs>q8Q$3$$)S-Y#us@m$K<P*4$DU0|C^>Yj0wk>
+z{B9S=Rb*#kSD>A-4WcJgZlzBEV@GHsu1u<PL+0V(IQe4}(YQomj7`1RWa8QAamI!E
+z1NkHK${l^D>O1{NY2&QXv`*YVTl{2N9F7^s?&tl(V|EqBjJ6SuQTsh1BZD!b?N4z3
+zFizwjoTEz3L;Q0C^D`>HO{M6cX=1(P#_96{_N_Pb1oYS^vb$F(S&e$C@59G;_O2Ml
+zUgW(>%?J4VhwoJRWM0*}6?1RXcSXfAJGoU0nG>Z$*5HrMej>|x<k)lmDmC^J=ae?<
+z__Q96G##`_<C~a|$R(Z6o_KuvevoG%X|WN=89ROCzJxuNwuSJ6Snv3b>pYqv#x3M0
+zP5(7wZ)<nYBHdtJ^6be<Dtedo8Q(Ir9;$=~q{KfwG(`WKJzr1w(b><5EqMYlTI{tY
+zqvxGEO+a#uc6*;In)e?CpHn_DSlirx#*6K$@o@3?lrd;eYy)qwHH|X|F2|@;?E7k5
+z0_p9{r(8iAXY5zuRh7q-_*rIe$aqGttHm8^T?q~Vea1l}^Tr!~Y~~anCq?;*x43ik
+zvsZ_F#9Q3i`rb=JKH@Dd_3U?zH;zawEMqgQ&0eq3BQd%3#|R|SA@UxDdw8RxV$Cq#
+z4M~SMCE;X;JB}C*%)Lw<RNL$YLmcmwOz{0qR4itx#&IL|Z&+hQj~89;3as_6$)>Y?
+zGH7ISq;lvyLOrv)O3YYuuq>9IDE35yd8X9b<G%G8&vd^NGJL*$`k_l)#@6uc)X#H7
+z`gr)y&>v%<)AKsSM=Pk~mT0#zKiKTmf4Y$G`~=o<IxhL$)?wY8J{!DN{Ik@$G^vY&
+zo+p1=t*y`Uo&BKqBOUJPQO<SJ-4)xPHNLgptNN{aXBXon&cL(BHcFo*uUA7laI)l#
+zOJ~c<J6sFjQD+H4Z&dM&6%soc9gfo;(pf9*4JBb~Q%UKxWNDybP0%p$j=fOEzQVYY
+zI@iNGzuOeb0uLOLd@j;&<{>NlX@~pS7t*=jOZR8*eQ|&G)g{f|0IrvDb<HsHozQjJ
+zUgkMkJ*!E4LsIyA`};cF<h&+t6|RWbw72$CufP404wui?{h`CX?M!^fbKFduTkEWM
+zZL7(xjHO)il4?i%v%urGON@-|bbG<aJKUZ9?Oq*z?|7iy+lAk;=eK+5t?gbfe*0q^
+z#kxPRZ@o7Qbi*~-fZsf4Te)PtH}|ny<(&2q?#;vRgEM-(XYjkuH1d3x=V_^+k-y`I
+zjL(i|?cN*QYK582GuR_LLp|Qk3WaUt+s;1TH;})e=~zA#Q#j+-pQW(uEqm(-pQ4L@
+z*Ws4^M)89L%2`%1GQQ^$lw+fuAjW`rg}1+@!>yIvtBvlju?Mm}hj_MxKJJ-ytMtt;
+zpL4Kh)<&US+RRD>BU<q!+RO&d?(zQqvviL3+NkE$l+Wh!d;)Y(_R)?>%pqdMTP9I1
+zIa$sK7V|9TuJD7K`&j487$^3R_5zOQSZ(hysyg~-WB(Y7_7NwW7#hi7kJmm)jT6tj
+zQpCA$P<F;w8js~aLBBARx#0O*J?bT2Mq8Jmjdz^MTrgYu?f`x8+;=hVEs1rAojHd8
+z-}XM{(ra>OgKjwA7U+g}EwgpbWBMR4{~h-S3-j-vrOYP%fTp=O&$YU}_WousmgyFI
+zQRlv9uloXJFN$b;5$!Q^@y%ENxZeHyxT|w>QRXiC5MYj5=$`|f_oM$ctba1Tnz2T0
+z0no?9k@WHO?+5a`nNI-UegWT}z7&0nx45Q*bq1QQe7@Z?(UvkDH?(4!l4nJxiFbIH
+zd`j_#v6zeZqs}-n1B>dV>}R6h*}7gw+aZ1^IBLo_pLD>oKR02R&btG{yp#0P0Q%vY
+zp^nd3mZ)BH)MFo*)h^%g+fJ;t_4t<G%ze*Bxi{~WjY4O9f6uJ#BkZ<54b~I$4|9DJ
+z^(l<SIgGiUrR;3r)l=H^Z?u2Pys;a-=;<51vV4boyu5p?o9Ec~zW-<01$d9=sLWSK
+zxwPin(66x<t}0QvPG$!Sg-TqMqgLbZvLO8s4C8^13>5a<1qlHE=Na5w{N5E*vZ$}4
+z@tk#4)bM4aDaHFqiH@~u(9d7dc^w#M^(lSt&pO`{WstC4<At$rmJHcaH!5uC2DR5+
+zt-tZaK2`kQCeNguH972KT6t92f1W+gyJG~;b2--e4zc$Nc4)fz+fAOIyJL>7bDwT|
+znSS4YFQBpWD0kBCCBFA4KauGnt|t04%_BxDV||$Kj`kIf+w@7VA2U1Yk6Fr{Q8Z>@
+zozs}-3K6r*^Zh4i%eTIP`Qh33#b-YMYNE$`HKuUsV?1-sv^wGVb}!~Ay^A`Q(rYu>
+zaONz?^jrFT{ma*%7<(e}AJ%i{t12$tjETNowhZl{4?AVY1asPA{c<l_CFf{8A{(rr
+z+?m<zk#{a9o-5C*Y>^vW$}zrPMc+iud4ogQ^49)JEo1ULr9{Q+YB_VeV86;4eX)&Q
+zWXQ)vK9A{G{ats4jD9WWk#=`187MGUgC9FymFX0j!N@e0ytVMoKndlCKi$|#U%m@;
+zJi`nf!$4oZnT$!ow<cr(!)}}$wi+jwYwQ=|lkpsWtfAuCDD$Jti6-O3?MAQCVr*oi
+z$Mdu(>ZMJnLf%vLzbt;ElmQzBn+0V{nUPGR$D9OyIsAUCey>{Jvx>?t)z6CGmvSw2
+zKWsKW{|mA0ssHnNdC~8(qTi9C-$v1I@;5nylD2j#-&^von8KN3+kHGp%FZjbkM!U5
+znjt-ZQPcBZhIl~A{SW=#QGG9pd!Nwv^7@{Mdz7s|UT%ngpzs{jdz~&%{H^twSVa59
+zvA)Z6IVJkcGos76q?~hlS+2Of{x|YGI<lVk8L!t3{I*^Y9o7w^x(#9722-!oN~}|U
+z6O=mB75H7{_v;MZ#(v$`O5KJU-Pef5q^FMZHoUt;$F9@%IXbR&jMi7)GJ<bxmb}xx
+zPYZFXMTfIfPSk2~smpK=oriBIPaV81WE>qV6o?rY9W@T6x?I7P6byir%P~9U{iKZ_
+z_TL|+ziX#pOc*NPnzWlSiWX$*Q^qeOuUl7#Hk~s5vfP7$fuhEfZLBN8EI3>?GA@_>
+z>MJjb%N4BW%W{9zIAiR`)B2m|nH!q9y*1Xdub=%~KhNqiP2782-#eu5RpQ<w`rgy}
+zUKQ@`(YTtw(D!PzzIVUi$99SAYH5B|CA=w4%ox18$qVuPFmvl+t2&)6)Ecf)-I%SL
+z4gO!*n2pk(p*HFkqPUO$Pp4nQ{-_(JPX_Ud?G~)x7LlvM_N}OA{R#atsAm%I>05l4
+zaq7^4=rcio3HnWp^qFY!-s~OoA9$xyzjLDJ^l^yj=dbhK2sg|5sb#cy%w==R_;~Ki
+zg~GaOJ-0t6PLjD<;_X9>B{3h&`Mw2J`rP5$g8#xeh|ONLfj!w8%=_~ZDV`6!`z<-U
+zI&oWTiu!UqKa)B<uQNBxIZ{&EyD;}*w6|8b_Zy5+@Y|`|P+WhPZfhOdT8p+Ge%qkf
+zi3Mwr-}&cd_@3u#wGzYB=?#_P#9iv{kO|8s8JqiSKnK&<mq@@3FwZh+Vqe&`*jCa-
+zH0&0t1Fk_oa@-p){(g(mw&dZkwcdN1;0$4WGirX1*Jr%z@g34u1@&LPZ?vC~9_V*u
+z7L|GYcaqo}-@Kfvf1n)BdnDHW2JLT`cewvgp+Baj{8Qeb%)^|Y6PK6r>U4SB4+2BB
+zqNH03+W2hIoQgjV?)?YuS)h@j`HiKVLppB?pR;}UXr6N^#`yb#>KS>=UHbm6L5(|r
+zdk<*;(vRZZ@91}hrchQ-*)Z+^+c5nb1NmyKuR0ZLk$o%vPa3Ypy~}i-apDkHTMCny
+zKE*t*rH{%B-=vR9vM+qJ`|#>pAXjY<8LRbq+9AAq_?yGNe+M!>vM$8e3UaPG151nl
+z-2;r*wYE#_9CgOKB`0^gvscSy#QfOHyw@1F!*>n{egLruiA(g;Zw}+J(+0RoaP69O
+zF4R=tUQ7AZ(2hkskfrF$Qu^AUe4d{&$MoJIjGv9(TwCX@G<j~gkl0OAekbt<Jzj57
+zf9UU;L4Rl6qOgG2@1^+vJX|Z5L8ipLD1INsbB@RNu|L$rC>QHkYV5B(^X52op?;1-
+zRQlc3$KSKIsj-X%)OddD4ZiO@&iAk0tiDef>ie7D;QQopzJEY}zg&O67T;IL6b%%A
+zk9Vtzzgwlho2}c;`L@NLna<H4t(rCl%Jujig<NlCQi7vP8x>{$2;%^a^|Cf-d-u=Y
+zZG9dpwtL!LsJqDd1MT3=a(2tOL$PB^xk)z?@6@)h(d9w+(7M#|$_xFA%M1T6%H#U;
+z%cC!URK`ffS90GR{$`_m!~AvBi-;p6I8;2V=lBaAA^meyJit&Js1pp?2v0ojrtX)m
+z&&m0%^v{s-ayXyt8)Hf>T|Ucvv-xEI*tQhQRrwRepP4uv9Ji#xf1V=vE-3r!khN1q
+zxlKzBsaSTl$r<E1aHn_RdeG>?O?}i+>C?zqorU7d-{Bst@9-W!U+I}2et(Di$#-_R
+z^MBOgUb?=+rH$38!MOI`;D(cJ?j_&hSuDqU^H6N0(l^z9T~EGL-|ZdP+wJwE-2M2y
+zucq5OTCXs5s7Jnl@{DsizT5i4m-BC1KXk|`j6tu>w1Ds3)JMM-i!xm1X8GoHt#|a#
+z?e<<+)-9MWhNJQg8kz0lTfz63FM!ydv`>W;_PO8!1{})pizMz<y}yun;M0QiiL}zw
+z@cbNp&vI1WldHvlt3+ccMT%@8zF%8Z=XN8O;Dx`_vGh6*)Up$N<Kt>ZifkbY7rtBK
+zQ_s@2vkdJ!IzHk8l=WNvPRS6xY!`peeOr_tKkXQ_#WcTC$Op>fJS)E^a6|eI;@m*T
+ze@1++6{dJ@Ol(^pefv+ou*UfuWpsNP_J*)iasFpT)_I$K9nafC^ic>IEy}k)4!y^?
+zJR455GB3<-+6^RbK;x8ufViN^bat1HQ9s)F!-%YNL+Lky+pchH83Par6Bo+3Ld_4>
+ze2H--@!zMY7_rV0T$6X%ZTQ<X+0Ym&SM3<c?=rS}K2CVK#3!iwA~NrtUPxiFPl?Fy
+z%d>ygHUZX+daHb0>FAsv_W%AB#Sczq+ZCqu5$2}dhcVfu_0qrdd#)=zz7mhG^PP>w
+zcf06c+Mr}awrO0EFGZQOsY}|S+Qi>iNSmnlMvTj{Q9mC9#<P-qV~5JUL*I*C_Dx<i
+zsr+IU4phq96<gyajMVd%jtOCo8GIYrWj`ylGDhV3ZtulchGMxY@ZDsL`$W7~mGd#G
+z;wrxQmA^_(Z_dfiUmgRm0RJqRxsfppyjLZ$#pRdhN@h0oO)!kzrWz|bLpK<soFo>E
+zab$|%!ghM8nVo$+BS<wSOO3=$B>~AHznFdA&Dakc@4d|~amj-x%}8hOoJ8!R&c2}K
+zWP^6d3Cv9P5i?W9yK|wOk+FY&K1Q5Zbw*Epq!e>dsxd>qc}(%RK*Jh09N5(NDCVz}
+zn4qM4YnvAU%|<}K#K&YVM9k4$C9$no11m+}zu$gJXp^=j%cu~2iMAw`ch{gQ3wr+J
+zLi1}>P65*WT3xS-(<au}7LWS)?RrchOYZC?wlv4@n&!TDV*E146s`U2m^x<_`Zc@M
+z`e06B^e19(Jj}H>S@}d|iN{P|r&lqC#0O}cn9hFwj)5V&g0kbZs+=m*xTjv=l4gR;
+zH;ZQvW2_lJLtpz{)`fx-@vzt|*L%CHpUMCKlWh*9v)AczdyN$BFOkm{^@Z_EZ2z4X
+zfS+N`-e&4~oCz5p^Y#-Ri%JZ=D!b7YyNkAU^Soq%P2Y<4ejl5Xay<QuE#{)2eqb|R
+zV^OXa{|6s#MxAYxtxB}*WsK&1!9Q&hU$q6DiuXkdg~CvdfFhj#s)WKftg>6(54^M0
+zWejws)#_Od8$^B}=8a&gCe{90ZEo;lV-?PvvTt_}>ycQK<9gHCkBhwpdTOTYO>Gmj
+zOBjnAhinrC;%}f0pxJFa_d5|rUAQQRQaDC?k&3-ytba{4b@eUK?OP;&T1n>NzEJwX
+zTp7l*%t$#W($OM}MS250KFS#R6Y24Dn<XFklhE6vSj%Rt)ua8e67(L<VlT3lz2ihS
+zmZ;Uz7Y6-~2Q9xO`AAc4XeKeGn;qt5!~S_*U1qE7^R)F=+c!fm+v?R=TOkiLLw0KR
+zYRqP?Gy3Ho8K?Q&B`+u*_oCz;QSk{r<{iiPB0RrS;(>1V=;tP7;bI=l;0bV6x&{jQ
+z2h2`S<#$O3xCV$(w0>Np_}Pc7#=c7QwHR}yYldMIm(k2J^uEOJ*N;>0^E>|=zE2;k
+z2f&9Fw&vwxpQO*^3h0F^<m@BmEVm@4BDekzEiPjy>YVlNeX*A8`f)9;h4miDwDg6X
+zmcC%DMcP%OvH#XbjQm=@gL}$Wn9kAX<0H2Z<DD{hET7ePgp5vX>dQ1X%5q$@Pc<a}
+zAJ^`sY^TP!psxh;4zB-L%8e6KhCV~!tsyfd`PNJAuD;^4AkN9ne=m%%1xxNDyjOfK
+z5zzNJmRpO)(;hXJvoRj)FG;$y&<39A^PH7>F5^PzQy4Bfi}LsSZ>ai*^m~@idbr0d
+zMfrB4@TpwgZN$h`=VlTo5xYtHTq|q-imZ>Lo&x`^(Bmj^6tv|hlnj79^4TltJLk~W
+z-|3Cd$XRwaYTnn!HM|RZP1L--FMxU6Wj~Z1kM%^pcRzm9uL$eoaUYMJIA`PDtIm(d
+z>+|DZ7s-X^%3iG6_$$oidswfQb$+4c%%c}WhrNB^$fI}Y_(XlS3tnC3<B};~0p<*B
+zb1wMZK>pM(9}~Y)%V2Et$mi$b`CIUuKIuDe2pP-U6&BLV!9wAgpu!+Nc|iGksC}{1
+zd*L?X@ua+f+)sKwPEp%J`nfC;f4WMIWfst~6=RO?d99Go6z#9XwIMyxf9Z>VDdZPG
+zU&w$LPs~u?YH>=He~iQ^Z9G;O%Bfog+WPiwYQ7j_wuk#=GU-)9res|49_)3Dha(nD
+zGMs$g)OdZB`aHHD<Iq3KAMw@S4&-J3Fcn5r)PVkU?Xe+WH)06*_AcfE$aB2JKTnlW
+z_w8eO#*p24o5~fSe2SdhY>i`*F$A+{$_muIQv3B$HelZ0<)i%keu=iMtQgEQPMv4;
+zvxabznq0rV`|(bhZZF&V>uXe74;Bh{v0maM&0ZHWmVHtA1TGF03dE(V$KTbsqPWNp
+z827aHxl3H;T6p>T9#8p3L2fyt!(DcEljI5IemYj!`LYKm_IP6~72p5k*VLR4H)$L6
+zrQov)50$d$yYOs}<}t)qP6v9t^u&=^Pq+M5`7^E^r?9zdi2tSg!Cc*F!@X$3cOi%G
+zrccJQ>6>H@=4+ed$HyJZQwC>D-59~tQF3}t&PKY#w}o;#^ElMTJKUQ1MUua$dYY0!
+zuCE%z_ge**Hwu}JZ7BBVpQ8E02pkx*Yx2o{91xy;?KS0BOTYO&n5Vs?@T{&a>SNgI
+z^4Q1E=su!P_b$7(`MX%VcRen-C(_wXD39@<+%I@`MofqhblY#BAB@o<tuPOh%1@il
+z?L4(0w$^HnMNvN@MLtD0;k)`FT3zEb-hE7bGL{85dVfm~NPP`$A;b3{&4iSnLmGd#
+zYP#|F*E+0!=2@ej#rR_Srk$f>jO#|lAV)^UAS)e!d08)UFPVV%=r0HPe|LHq<N15|
+zeIP!J@vQU`<u^#a!a3RH^mw~63TrH4Cl8NzS{(Xyay|H%nLfV8e8_+87)#4yY-)>B
+zW2HRCChkh?g{+wJ>_p0|YXHB%U&$3epzxJ_-20LE%4+TX;knWH%2><v7sVKzfwATH
+zccc~W_igE6eC5L}A!Etvfx^I71`0bz;VU1)INz`3ZH`49)=(SyEBIkw4fWT9N+*H-
+zx69r;u|%*MHjj`unY+ZtL~cgCVIB9FOb;BXv(%Yn*x2Yr;!Vm{W;9|fnq)2PcolSH
+zDjv`OFDzBDMS>d-o-KAxL*tcU-;Nl~?&OGnCd^!-&`XobhQPMdE)j{fxa9wl28H`}
+zT11sep8wrf3woVznT&Co$XuWp+Y<5*(PtYL4W0RN4=#=Q_yvoJbNZ~G(~t3H93OQa
+zoN$bIi-YxkSDm#*=Td5dKJSQ+tduP|S~|r)C7ss#jQ0H?7J5MAEORUbA0^h|5r^Py
+z?@{}9rQWxx=ihHXCoy^CjW+&DE<gPJgFYWERe8s<x9IkPk3C+e^&)8(__XgM^o!d@
+z?&q|fuzcG4x28hI18oY^?q%$;;)g2uVA_A07!Q<@dlhavbnFV|ga|iu&}NtuS=!fu
+zV#;4Ss&mb-Z`+<P2(}LM2bXI9a^{Zt^fiSc439CAKO~)7&3oy%OFx(u;OQ$Sj$9k3
+zVQq|EMgFz~^Pdi!r}OOj`cF`JkixO~^tFn2f)CvB6y~fN<yoW3n}qWI^2KAahIlsb
+z_oEW~@%^zUvL@Q|q~e{qojn7zDP+l8?(ETWv2kUE$QurLh?5SHf81|8m)%1@fSPoc
+zvC{M#3uQL<vCirEZS=13!kue8+fls1g3eO~J>7zy6EVR%ti4&<eT_s)Vo=$?KfI<e
+zdf2|#W+<BqadL@qxMURnc<#_Zp8NT{QT&5`eN+DHnDC8FJ!<`Kz~3^o|J%g)Xi~CS
+zb+}M?Ii!5k$VYr0G7tB=OOEA9<8^7JE3ZhZ8169kze>=9nc%wb61yYioytUqcSl0a
+zGwAm&`?lfuC_fj>P~N!~`d4i0Z-<;}#)tvRwYgbhyXZ$5wc7>fz(hO4#P76-A!i)n
+zUgGZ`_8aUU_M7b=;0t!L)3fLFc)bg^Dhy7>^C!|`cO(5&PaK)6pb29gohW%#hOjyx
+zyz5xr*IVlFcZ$$W+?_;U#`qe~NUR~h%8h|u5a=1!ufoO}?<6g=^7-Fy9ex(UGveO#
+zUf(vP`?O>3yGG?sxEk$QZ4S4GbKQNHnsb#y7IT6+<N6%07&G?LLkeTb|CW4uJ-#i`
+z--eBwypkTZ?}YF-YWVq8Qx4;54t`zdTmYRIeS?M7_`3twfv}3JTXMU?WcPVXSsLS;
+zq@QpRZ^2%C8TXp_FmH)yy{wq8RO%d7&HakETtR;zQ^`!#;4N2Zn)?*)bG?3_V~KhE
+zG=ATY-{r<f=<hYH+)mGwGvnC9Vx#1m_>PSGm7wD*DkR3B6KlIO9U6l+UZDANOvk84
+zV#&k)ULi58@mB8#VI#lWd@j4<LD1-2Je$Y!+I3FNJo;jHxRFe&U>?y&f7;ws){3uj
+zBi0PB2H%dAb<^bTiana`-2ht2bcp<DH?%?rY4vI}&n(#KP?g<LQq|cpx!!1XtC*js
+zE}c6#c~CITve046i}2Zt;|AW&GLmubop<a2U)+az+&4r=>p(~Aoc+HU$p7~jK*zm`
+zFZy#(4ZgS=eDU#*7xKhjXcrvnk>CCh-x6OpImCa~f&Z+Nwek0F9h3Hb{#Hdt*Waq}
+z6F$o^M_o^j&_{;L+=()8V0)lHU>*Y0N7<$arWfQp>LV+^7BZgEa?e1xh;Nk?3N<B4
+z*R-`A`-6X1vd>O@e<C@j4$nWR+jsG;!}8ADTNNIsE%t2CXS`K>QMu<+HWVx<=3Pp*
+zj=*dULuL>^Ta7jN@xK=Gsn7LzjN_snG{Ub}p9@8c;(KPB>s*Pg5PonO@rI^EW7`Bv
+zt<K!$nVEH>=lC&bUrH$K1KOs0r%_&UvUi+MnMUQE4cMVczCRy%3U$Fcdz&}QSO?v9
+zo#39Z?DJ913*vjb&FgLK@}d@W8p!{_Yc}<9K0YWuH(LdVApoAX>OIV-vDFJq!`x5Y
+z)W_Vsw2yJ0r>|$N)#%nT{sZ^U6r1%GqDR%Dua@AGHhFA^_#D}wd+Ie<8+B-x_%ItO
+z*A1bLc$Zh5X>$!ct3sR1SSxg(R_N($U#n;09x*(L0mMDTwzkQ*_s&$9`E2VYY%AZ(
+zpuICU_C;d&YqYz>Vu~8zwbwNDMXyQqv40ofU5-=KZ1Xk~9~gAHf0RBp`0PM_&kzq)
+z_;m04mWowv<M`t5mTt}06~EKCQC(iAe;<5?xi5(`_$}O9hI&?vs^>83SzJ^P*ZK@y
+z&u2JSBVr=eH&5dmtLPh+f0F*@8tQ&u(fqqa@$WADU0I@dH~0Fe+2Pp@onEEcA+mFQ
+zI_b`i)9)eaF6qVJPRxy*uW$A$J3C}O+2S{PlSg?u44OKWVeS^<&p>AHZ1E~H%&7=k
+zOXF{{#WQ<bgpNvNouqS1K0bt#vAZ&}S$vd<DM5J@bi2*eenKTegB$T|VQv{1MmVG5
+zmabR+V9={km#MITBu^9OSJuy@9<RJd<5p;yggD={l}C%@$_Qh>ted25b@YLs*wH^0
+zZ7VJ>FLBLcUw$?cTjOHS!2O%V<{9Z+<Bhg8607fqzo`DX^le2Qy)*H?wO#qRT5G(q
+znRI}DlQz~y@AdeuQ(-@I?nuAgv$)o7@&a?X78mELd)EZtOIf9NjZ6Dat+rXbOZ)E<
+z6Yp>0yV&Jb;X7hg{6*(Ht<?XQe5m-pssH~6o@rvumFqap&rBN3GhbStoJ(%@YAkj3
+zX_;LfW&BEslT%~F`C~rL{}ODwMmOX<oEsl&lDxxF+Vzd4*-eGQdE@PkeZyE5DZzK>
+zEELZ0=dnZ1LpSmaG`9}FPsTi>j28S}N6cG}CF`kVE**Of*8T>s65~gHY2yDAjIH1S
+zH}tQS9O2+^g72&JJJQ-1-A>~6t^N|^OZsfdSx|@A@hOW|VUMQnMtQMX`%etzfg93c
+zRookWZJBRba{54br4B2;8rs(|taHiv|2OpiU+`lbv<?|y-mtjjwuR1ToKgI}AIlJw
+z++yj_-?c3Ls`$%x5`Wk&_O<Y19Kv$u(c&>5=g|2s*0uOSQ|^hYGp;exk1Hj{KPd8$
+z>PJN9B~t$M8w5`;EO_O^b^87bFZsUdpcCJBML!e!dj14$^=<!b-{|lCcmAsT!}ay>
+zrONMxd9MWn1F~Zv-kc34QrU#j*8k)`(9g;f^fPK~z}3-zy#D>=P5SqTH|d}EFX|t$
+zB-?R4asv7pC-SOs#!>sptRFAK^F7txjsGKB+GRf{@^Y{J2z_AQu-@MPgZ0X~v!9fC
+zr5xth^A7D#jxn6fxiIX#lOsjGSjYS3yf^sfc>S9ou_?wGTnjA2k0<_D^mBNvsxrA|
+z$sclq%8s{7&H)$6IiO(W36JmeLWxOkIPu9z<U!*^o*m{JJ_b*Tj#I8I@~;glKe3^B
+z4gVY8Uj3>(yFy~gM7Gd*FveKJv08kW-&!Yl9@Wq5t`8Y=>kQ-Qn!y6~_`rKrK8dek
+z&*C}_LKh3glzhZ-eo)WL6p6#eej`5OIu@Hg6U4o<(i2OyElJ^vIXUubuHlG%ue|e$
+z?6Yc5;XYWU{bIrzTiO5a9Q~cI#|ypSe$W{9{q=1I9P>KnUS&Cc?$si@pOM($y+zjh
+z6*`6~o&CnRLFf}5I{vN0-99)Z=aey*R|NYm=5AfU*yyTQC>3KuS@C4%+}3%p1=ISL
+z0i9EIjo1bZv16*36}Fx49u{AzD}<-;n^s-F@)Ns4az4wsjQwaI>-W!M>6b>Ddw!di
+zP37DYvW(R|nZ9Y%)n<*dLA>vofqX6Q)eh-@Dd>MG!KnW7H<bQI%*^y>mAvWeX?rPa
+zUVP^BVz=kHG%?Zj`KpoL>RpC0I$RW+BQzW*X7=S-<`$=%8Pxl(?<2)~0fpmNcB&q?
+zS7a=%$`KQmHn9WS{PEMa6@F)2o|AJJymzvWHQG614BAA;Gf$Aia^UIFHvHi+c#j?f
+z*5lV#s$(9hzwr!~xxi<AX5{!B(BtD{?{aLcbhk(P;2PncP@>N}Nvr2+>^$+QinloQ
+ziwYY{DDSQF>wOinz1Uv-@lLCJ;<cU3S#*o{*JFjeHD}bAH*EIGj4QJxGUi){$6VvI
+zzREnLhLfW$<ICrAy@;=#<Sji(#`H?btz52i%8b!=8@9R5Rx!G4v$73eIgx8=tilXl
+z=hvs``4;b*p}D(3a9a61pz~=2bv!R|OP>)szf$;Hsm9%$K4Ly^@P2awdS3hViRt;#
+zJ297Wm9uQ`ijnhmh<cROsdL#b(s`vv%5bLe-9^Wh5q+7^kM{}`#d}5dzN+?)#t||}
+zMNtf0vHa=tbpL&$NJjI0AHq7Hi%}%Q_;D7+&%>ji$IkQwGc2Qg+v$r^X(h2ICi|mi
+z(ldE!{NC;V5i*YcQROhIM0<!C%zWFFu{9lULjSgf?F-$g0e#bM=U#f4J~}7H)@^~l
+z-Y)y4j}y!`Rq~8DBfh;H2Pv1>dQpvad))XGbFN!yqAWXkm}PRU_-&_eXjJ@5u5;x7
+z#H6;^#!gT23R+DLeT7SecQ4Hb?Q1$K?c`>R!Df`R3Eyn+ea{%X3c6t2>ZxesIYH|h
+zD`2-<Q9F4m#_m+=pZ}-Fh-Its5jv6fu}qftrsGsJK7LuGQ|2czv~Ls2JO}hKD`a2m
+zR7(Auy{|)mjLLo{e*F$@0i>Z3-^Ua`3K*lyNO?Si{*08-C1sRI8RCB^YlZX9y_oY7
+z5e&zT7@v)ppQN01n`YByL&rt>^BT~;yY-L_qId^;#JalJM$Z;3PV#}vvQhgQtIlXT
+zwcc(z6=OIJdj1)I&}XV9=&VZOj~7C3pX&xErbCe1D}vSv<`R<_GLA{1HX!rGSTc!2
+ztPZ%08{^rcoHugZ1zX&grzqzv&PJ`xC0xg0yD2Dq!fq+4vRX={&#061!T4wHRn@k#
+zA5gY4W82a9?Or&Za_O%Cd39Tr!C3FP(6tjzaAvdMOVbCBzIY??rLkt??Os((&GB$<
+z6lELXIa@W_%lm#_5#qCxKIvOfX>~DHnt5%r^hJh#y<sf#SL?YyalP#_my(OeOnKF|
+zIy<KxbcdD$>Dy&ySbn?9vY-FIRDbgu)UW)c7pgcF!+3nEV3%CZJ^h|iD}7r@{95Kq
+zmoue0d;>oHY#nIWMms|diyZno)}q}tw9{BvV+rPV<nL>Td|9odU1D!C>{hiGqb!^8
+za)}h}PmlX&Lqq4$;&Z=fNFK%fKThoRTCv+~_M)+7hcrrh3lG(?S=W(rs<fV9GcGgM
+z;!Q%EZG6Z0VmSv&E^<Pdpc^v92O7G@71=Sd^gWSS`Zm&YYT{s??~X|<bHdX1D{|q6
+zHBOz<Wro`8WBvO$l9Y)B!vSOYL}A!Bi?Zo)`CCo1*tKszKb@ULU*?$)Rn*%l(c#3V
+zKZFITu$O#Vq0CaR<46tjGTO`@pQU~IiDj_1Fm!fV#{2d0l%F#~&YgdupVLO>>rtFf
+z&a3dTqP_PYt#iej)cM__I{kfKVKb*ZzYYGpbIw^O`5@`huZMA({#rU&&oOn2dP}!U
+zpUu(-9`emh@ZxEu8mEmi>T>;U3FeaRWPipaKH-GyPski&>`9MP{Q33uDBB+ci@1bc
+zqDzOMi*e2Jyd^~XBK?CmaZiGL{diF8NTi2-g(2KH(U1Lge0+TTmLa{Hdt*4W;Dj-(
+zbp~T5TD<y<8pEU7o<W`}Z3PciZM{slb-Qls_Mx^;L|fTTX)oH^U1UoD9S6|PiD>6U
+zv~v>LIT7uggmzBEo?U^qP7dq*5Po~#Y%j03wtIEl&#epGdho12`f(7PcgXP3c&9gw
+zx<Q(8pN7c4Z_)V|D`T4l4>laT&IzkEJ2RrsF>f*l^Aca2xB~kv{z9gKz7YZ~RY*Q|
+z8#HZ~21!RI#yFg8bBIk^oo-S1Dd3au(fTZP4%VCXX<?0uIg_#M<hXW=9yJ%ws4ELb
+zo895rz1`k|n+EdNF;2!#HH8`;ZjMar*&MdkH2wW+=}p%eOK`uf>F?{)n?lKln^oTQ
+zHs^eNb2#DqcU`XX2r$-;vbSxzVf(sCAtz}XPC7vTz6UaWskz>n#q$WUx3qYX82Bz@
+zE38(BSOC%ZI&XGEix*2Wc72^^bhda_FW$p9rlI&^eFn7Vw0N~<i&y2SvxaKitHC#R
+zOwl3F5qRz%H%H<!U4L+NZlhtm`|sSY&fnjDlRAHl>Kp<yZW=hU0}Rnjgp8^eNBVm8
+zm#BQAQHh!A@~ZT=%q2J(-wp90Q(@#t{vEvc*i@a%#1wzbGVTe!e~vm2;JUol2^h_e
+z@)3_~d=F;?-z$En82>Mt=%kJ&b*TJ}<VBy5d=AVl%{+xw%w1$aE-~Vw(=*?m#K;=0
+z=LWPKIE-hpNa7mn9d#x%9`8YJyNhQfflNZq5MC1OfGvV0HQr8G^>*v2b(z*vu|}t%
+zj9S{CnIGB6C`=(Ev($y0P%&f^%uMqneyc&rZ^!;V<g=t~v*I(CDj|=jO;_e;2<t@o
+z7ZXDe@@D>(q4l}JQ+A9ia^%mx{f;_#NcqB+`Sus;#Ir=^QrJAy=O$<j4`rvI%&F`~
+zLDBWoAs_$gMBl%t^J8w@GHf^U%lp_CtrMq}ork({v0hy4FY@qH$JdK#Q!zld^eZ|@
+zU(=6`)QevQeKI#qt;TDjyiUv}+5*g267sjw87pJMI%C7qkP&-vIBrK`UiF;Si5wSo
+zqrM!+_!-8LFefwptSyVOO^$T_r@MIG86VP#qxu|2pNVIct}c29b@510&hs~kzlJ;N
+z+o9Oo|3N!`eu8%R@(;h^djXB7E#G}heFM4^T>$$@0Q*S*`$-V>1+bq4v7ZDCD^)Tq
+z@4R`x@;hJOuQzJP?{@z4?V!$c$DPNNt)93y`2S@O(4WJ}rY9&21KxY?TgSw=g87FB
+z82{C9qZ3Ns)K@KMHdp27v+nx}g_3KW>2h}S<y<&M|ATa>n*RHV4tFo;Yj3j03#U&L
+ze<3s8;YQPI9EJU7pdH;_2l!&d>gfyGNrz{f#1W*AJ+XCZi<8{Pmhx95R%55p(f`)X
+zYW*`$a6s7<WX$|?;svO;67@@crpn7F{?eHa?;cy{9JQSaIZw9RCS$Ek<a%U#c$Qpc
+zwDm{PZl34FuL>FS>I@??rcg+IG$j6+%%lCPKQ8EhB)!%1$A*3b%)c{Dk4aRI$<%*h
+zOy=F>`{yMc$xTE2=r<UTXS;@Cs*XDz@e_;(^HF`eXgqlK9XZZ;L}P8d@A+dg>mzDR
+zsxT%E7@tZVE6g}|$`_S(lQ(47kl3bXN8MK#Ta}=(;=I{Lk?rDm<&a<Zg1_~m{$7lI
+zFJz0}I4<z-UI!QY*DH7#3JWfhY$C2N=&{KuZD?}FB$}L(c#|{UQD@#E8_#JsrVktQ
+zabX;Y^H$5X)zINZ6CGYvTww&)9bitt4ljbMwzI>VjjJBlEL>vS#eCEgmvi$#o?|~2
+zV>jFAF7a{Nc3v4WB0C2P`@T6)aB$UsYoPEd{u;O!!EbZtFg~x?w8VZJ&sIX;Fykto
+zb1ce^s^4la*ZOTSPM04;^miRQO*@0yyOphs_L)j;pW**s?ovKg2fNf>Q)zcijza#%
+zd!}imN>KM?yg#`?=M`hUH99X3<&?u+%$?cgxm`-Gak_?c@I2S0<QwABnv#$7vRqA^
+zd1lm^fT?l3!sZ6Zw;eoJgUq|>a1~?pc!mvLPF${t_)u-~xQB|r3g+u0rXhUq1&O($
+zthmJ!Y@mG#8^{9xuhTZ2!al<_>J%oB!U-}IMiA)B&+W~!ml!QB>pP`P<q`R%_*AHz
+zh_=Z1ErL~WfU?6y7zgx4^0lYc*>yGOhH~6V9~>0S8OC`N_b6aCJM`6SJDdJKO=9<2
+zg0ccuQxpESEP;IgzW2;&8vDKro0dXWU23<qoH*9A!&{2?>k}u&?4c|}Ec0kXhs(1r
+z6K%0$7++(K%Q52EaGVPLhKv=*hGTV>9vj~d#xbhY_!<%?m8bzvT<4Z*-xK=F*J6zn
+zCaAf9tn@7B)zA6vzZ(%;zI5&d{oY?NXZ4VQ7Q|Xyg)4AVKXDL=KVefg!u#`xqlIr4
+zW1Q*)A4J9OjK;WnCv}N>g)vZfB720!PO3MFg8-haaT=Zy3_HpD>Cx|OWce!J#cBUU
+z`4KH=zE*TD`2%80Gv5~aH5YwhzRpU}o!_s0a^|e+F4H!j8r`@5l5=PEtWKXv`_Fy~
+z+Pp)2ZPvN|JH^kpzrnYV1E+N1Tjm+@*K-x<xRUmWgo@WYh1ijHtGnDvxrum6a`J_Y
+zmVV}u;~MzLn87^rtp$iXZA?>fNZ<q8bPU{VJ9RsBiaSHb=A9v<c_(uRgEsD)Wu@+{
+zw^MgwZ0@Mi>tA@CO+1~HTWh9V<|P6T?q67<@QrKZsqfa|dbUv5t^A5R-1p7n8td{X
+zBSg5)B=1FB^2)sLl*XojeL>UMw=_1@S}Dl3sg{79aO%ud3vGS-{5;9nqc8m3C2lR_
+z6cXe;9Uk@I4VxJAn9lAB^myy>yZ8EG9ai!r$5h+})_kZW&3&1<QqtMfv>xwi@(%GW
+z-Qq1re<I*(--s$dVEQ6!%-#{X={B)G;*_P+f%EZ<GCMIzB&RWc50(t(Ll|dB?$C8;
+z6G^(u<(rg8nc%M_j2~3@ujPHgr%-mP!{R5PeA?(|COnjQQjGCHyQoW+>wBEPuSCiF
+zK9Z|Vro1{_m7S>)+BPYFaDKS%KZke7hq;f~)4DY_%p$?KpnSu7Rd$Qyc4S`1m4b)G
+zIL|fW#~!s*-ap!eYM_sQOxtF@k2d~T&IY^mcpGI4HmUu^|Np#AYM=Q4`<YJX?!)_4
+z;M<Lw?sCvMze)c|Y<de8hK%Jes@TUlzrDo8KJP|ibHyIRby}=TuG2B6Je!Wr?GPO-
+zjd7jx)?pf_53cBP)FB}sd>ZYZ^ILVUFZ-Ofky5|@(ksKZX&<kVcBs$4GBTdI7;o}Z
+z`kV1Z_@3j6@I9IL{t^97F~%qB{n#r*?VnPNG5MN~B__@$>%VMN{XQ-ypDh^mjQYWk
+zUnt~v=-5u`D#}hEHi9xk=R*t2St|X5Hx1`Mu)2g#gmu0tAMc!YkEb^dh@RgiGC_y;
+z4c39ZROOt!Jog#URvWRHFebDaeOdclurB6{2*);i&#xn$E{4p7{_1D%*X;m}=h`L5
+z&!!=qo_6qwN#Iv)xPQiCW%oF>s9f$N5tRF~E|)o)|HR*T9$`MmQTemjpSuGJUo?XK
+zHOl=_d>C87A2v&@z=gjl<W>1ti?K~IhF9n|jx%}Q##}*)H&+U8-t2X0n}vLLoH`A`
+zCLB4gf=$ac#h9v@%AQ4R^s0%_>9OD3a!AMDp&yK){sH>MK5bn`zmpd4u%U3+*#LDw
+zioXwKA8B<YKAQaiolhLq4`RSG=4?zXEto*mLz8;EQ+PiKxnQVImO9Ju+uS~)zY<$F
+zh5gQmzrbeid)(7_zO`{caF}V|+yNQXuv;cSs%`Awl~{*v#tVu5KCz1Z+wA?fV4Sm_
+zB07wzc*LD}cIc9j(U~7C)Iwj`Y7`1TYz>GWSMxdMi;4@bR<-Xhl-4<VupfL{&iA!H
+z5dJd8`Q@2C3hOGiaVYoFCrB?kA52VgUUv%r3&k&TON#uL_l)|MHv20$C#KTxV&YfW
+z**^x~G3Jc%{O$Mj2rhkjVvYE4362lOlUP3`I__@5d5*{~=O4Y$eWg%1FDyAyFUx+I
+zzDf2)?pWD#E~|k2y{!ztBiPR_WNrz@MHPHZn=523#2{0@Rbwjq`D2+gh`DeK=saQO
+zX4g4!$^@@V<-{q`F@?o()buam83)^LG;9%Dr`X~Ill;y5K%9}IVza(7cXy%iY!i6@
+z)*4e{%T#`%rrgm6MGM#?UZh+^nZjkBQG4WA<NLDL*1mqMOY~TGDcs21uLjk4?ACF9
+z$z&nVxV(n>A!7w9*^14333T6m_|3D4Wza#F5l<4dL#z+dk=PQIe(lnanl`yILt*$Q
+z3PW+CQ<N{8q7Pg2vTonUZwhlTDLgbKf4xj>hYyB~+8+)S25^x_$5D6OR<>;O1ocLA
+zy%!V;MHuXk=wJ#faTt?|_*Jxz?wkjm{zn6a>OHC+;sy{GkG=%tTOngZKXWugcXpR$
+z1T(QeA=ruQ`x(#X<G<4vqm*%lXb*F*u^rZN`d_QtQeD)4YefH3s{iv;|F{0|f8VY#
+zquTZN!T))?+Abd1E{i_vXhS91wjAx?9=}Z5!S=nrEtS%C(RZaSPamf(mTpU=s4das
+zv}ND}sx8a^7i|d^wPn};qAd-h+Oh!jN<66rZ$PgBO|M%9Pe8A_PWtZBZ}-)U6s>Yi
+z&`#9f(Bt)6$~H&(2zIV<4iU38na<TR??U2c#$e^D9i4+Ax!ybFYWiH>)W>`w)ajWo
+z3*+VPRPn93XuQL-jgIFH=)Aigd?I^);}epL>@8W9Gr(_St+x3P`(q{Z&t=w1-ZjB-
+zz@8ekzz2yLD!grbe>mMCw8?$67=z+?IRI+V@84E3m&{_G{|0h8pX+w?|K&A<g|8b%
+zfcskNYLz35ylExZM_kz^mNSkgru>2LE*;GKe8a~;<=BrkG?qU4`z}5HV+3zf@raP%
+z5j^MfiwZ-_oGUf|S~(YT_a0S$v3$GMFh=2?jl_qijC-nKyk0)mGWF+;<L9ihAzQC7
+zM&_(a;NCUID@(WKlm9?leph(CtnTO4q`tWEr9yt`adP+h`1E0&3#9F(!Z1EP^>K{9
+z<b;Z~I1#JWjp7}%D3|Z*zYN#QGqL&$Lq_C=kz@I;f1v#z>@S>fET<HG@8iwC?+xA`
+zZ=5(^*!3?LMvOhN=g;VWy)HrhW%J905kA|zZ{z-%$GQLZQTM1b%z?hnb2`TUoCSI&
+z&;PYC=<C&Gfp}76tr(s?rSH@Kl=<Wfw23D&v_FcSYR>QU`JndG<$3$xf{=+5Kj|a?
+z`Kz`Qgy-}~UODllZ0M5n5BgN{EPccoNLrmOOxJ5AV0<wb&TJZC_s`Jg-*6gbC$afQ
+zlBr>vf2P}uSqe*(c?iqw;d2oB&PPsQ_dm4$P0m4*!*>5MN@wJmVYcCn;aoovVjeM1
+zr`;sJM3gysk8PsuKVmjXTuXdT$XE)wCpJdq#F=}&!r!9b8+mP)wug$pVLaneC%ZJ+
+zA$GSI=J_^^?~U;%#4g48`wy9;#p3r%zku=a4%f%f;`^I}gK{qVVfzW;Sw9G<Ic5BQ
+zz>c|{vS&6qO;#Mbjf$mhvSTG0+o-~@ADztazRmAq%D4G0`JHk~W6-G;#)$YIc4@n%
+z&h;d1QE?NkF5B`swB^IGCp==A$1TM-%Ov0A8i%}{{G2@V6PKzuPU3kC_1$cA56&#)
+zspoW}+@{zkJfBYgj{83mAD56py(G@D1+DiM#gx!a<>R%!O~>R1^*C`|&DY~pI#Z3)
+z_2}ayBZ>aW-YNaNP}94Q8D2Wde_HtcrOF@vngDU#W6-~T)pwS{q6uLvOW7}pLHEa|
+zI-PrbrlLQmP`K+bo;~w^(1_Nte9Y{(t{D`Z^N>C-7ri3(!~VS*7oKq^{Qtje-#y9&
+z^nItTkGz&KDD9IA`Rawk{C1{c>?R**ovi9V9si%-JgEF8V(RRT_um1YHL-$wX1Dh#
+zyn86oBYs8E3gQ)Xd!NL;G4|#@V%~i0)?@kGvdr@ra~U6mwehU9FE-aT@ILQB=6KwH
+ze<9wF==fO9^QT(}^GQQtd_D9@IaAG@lp@V`dq*d!`u;dcwdDo;<=Q?nN#)WM`-qMc
+zp$`h55ijH$-7Kfo<2S#<yR~xmub%bDGx`j4d(Yq*ePH*#FJx4KQ7`AY9Ih~gTEW60
+zrWtgxU_4z>N0}(0_(?$LGW6qog9{6SkujH8T%f5_Um&*W<+)yaZ}whiZ<crqVSNVh
+zgG<%e|2y8T(SBj%AHPOhYIxp(I!@|T_Ecici=Sd_bKkc)24^e33&Eg|we;0Wp3y6E
+z%O!6C#wXD824@`2lo=r}wGmGtTc_79@hX^$j`CKS@}ZKm2P@Mde9fXftMQ@+(DwG3
+zs*QiR@%3#?p^XhQN4D`-8gq@hWlfrSVbi(ddQ7vU|7&qIChue3Rdb7+P1Q~7@fy#8
+z%-}%2o_V1Yu$vv?y4GFT>{MRUBbcUD4ISQ|nNMV^hWHL-1gwkKPE+L(JM3Y!bIeHW
+zpt5Hm!~O6$?O!~J7<@f~J><8adG~lmde3p*pNIFij(VSV6Xqqj^G1~`;4^}wne3y?
+zNxN>3zF(s6^V?hSY$={?Jx(3(L>+TS)o~-<-vOF!$CYfne6@kU{j);`bE7ZC-x#i1
+zTqdqp-y1Rx<JynwZd_fsDDPM5GmP`Om*`kh;*HUM<MY2NEtjwBE96tt)7hQ$Prv2@
+zXAI_|iuO5;1^rgpzq=&Q_f+xa`Mm6{B4^oc9_{Et7mSrRRlHj$lfEaAN#7Q*mb$%}
+z$9N|2A^IZ|D;0W>GYflYa2odt&@Js&lIz44|MsvQJp6a<llM!Wt7mwgxmjZSP3&)?
+zQ-NN8b8Hx+iR}!~cfn3g-iL1=6}$OjIj^EkKPvX8McHcN8R|XUw8%4-x(bt;{Ya@k
+zWO$BXe25qkZ1XG=-_B%P8y&WNxV@7OtM*zR+e_R!wweB1Q9FH4$WGtZYd@CVp?Uhp
+zItKDP8FLTXkTJHJrCostbci^{YDxOOu+icYySTnXVP|(?oYgmu`X<)wMbJ*3d+$fN
+zRB$MhUHn_<joc%8)m%@;obCh-9R5O&*m;QOKzSs?oI3VauPS{D*4TwE^DtE!#u?Sb
+zA{YP0uEWRmSzX*DSo=nNoktrbV|9-E-ZK0Jf7nD^V66lBSn>gUFY*00V?x$>b&QA7
+zZFs3rIHT4=8{*7uPC0thVZo8LH+gl?4Z{h>J9Kz=2v+Yl?|eM_eW9?f<!sQcd9zmn
+z9uhJd9Y5FG?*#vvIp?~)3qRc9PJ9A%1Nnw|PZ!j8c=2TltB1ZG)H$h}8_qV#y?Cqm
+z`)%_s{#l1Rx1RZ~>pVNw?OE7Um`{;>p8RRv+zzp8uQ=S{HAU1}?w1VXagkeVC_irZ
+zrbpA+8Pyo4>c(s^n#>mVh1|ltpv$`IDjTyk;iQZk`FN-v@6;r-Y=h)lfXv&-9GjKh
+z-n?+PH%*^Y2QcOq_5q&V8{7-_=`-p|b#5)^`S=^K=16=2_8|{EXbQ(EY;BWsc;=k0
+zNBKr#lQ&-LP|QCNh_|>gjBPc>YV!~-!xdSv@o*hV+`@KQON<GKI9*=7p>kH%Vjm%2
+zIH_<fUr)>fD=E2I#|D**+9&qAE{}LXJoAqRB(8G?#_}BTRmA^iF;_0vka<%d<M(+E
+z$J}x&xQ5Uso}v4`i(zA(x2XjB3HlVWTir47hx%razf9}u<9dx?Ei=~++Z^S(w&^Fj
+zj<&`lrBQ{&Hm_azdF(XSdXgs?_b<mi+F9?$z0k~LAN?X?`s`?@eY5D6XW}<)cppGn
+zG1^Zc4~30wV%z`0Ulm_^KgMF2K0AAI@L2w0eRgKb+1WaIpSd*h+HdnR>}N9tt5(rj
+zMAMmDYUKZo_D9rB|AR`<BI#aeo_XBpD;G=W=&QpVw$(a6sl=TMmOpeKrHj(8?c)fR
+zv5ZQmTdf^?y<=LNWNsKE)@qEL8~Qz6G+yOnCjYxFHke;h-|f|)t}2ufvR7dJU7cNm
+z_3~Ba&(h48G9B|*#ybD5av0_QHVAzI?YtZG7&30^8^Am>#{seE#0SMrdc>lW|CcPH
+zZLRr&CFu=}D+6EO_B_6)-#|6$4cHgBGZtW7>>uwIYO#*0#=D^fscdv_Iy-%CDm!g&
+zyR0vcX9)ivzrS5DjAMH{WId}h%0_Q(san5lA<LR5m*+&xNlCjY@w*q)i{A_QW7FX{
+zepef}NUp_jyh-rAIhHkM((`#yZDuQI5BmjWEy<zP<W}2itQgaBcjjiV)*^0i$}=78
+zJLY!qKE^U#E|?Et$$PWCFKD*+G3P=^WU40SQkY^8e+Y8|`F;w|f|+wxe3ihPO>>>c
+zbK!?>;JNTN?;OybZv*JLVL-<xq`XT>59T)UQ+Oymm}j1astniqM&X4uI=@L&_C}{7
+zYNP`ZyL~cs>9rXDO3+-jrS?>xPF7OR;n?W)?bE<lsUJ~Rpp6IX&&Y5su5)RJ=6R6p
+z&y@ACMn8wL>xq+3Tte^w!6dXdNIn4OqWlv5M^M)2y8npp((eu#4UqHc$3c1`mR?Ho
+zYODOllHYO^&feXlaP}nL&Ya_lk7=e;Z0O^OpZ=#CJKxP16<o7%LFPY#g>i&=LodW-
+z<GKjfJY4f7_l9wVIX$qq9(fC{w@U7ijk4dJC?=%SYWLFMttWaeHel@iD(-gU8^)KU
+zQ5N6Zj`EJkS>nbwj4Ru&-xohL+OR3BX@7;lh<lr4P5AeMa+coiQVzDmD)*Uc-*y%6
+zZ#PM~<YUam7ScJv4E=xq{Z71}@%>Psf6Rp}vzI!lrR+(xCB3*#$<I6weF48KKc~*e
+zLDR|)B`Nw^1=eYZ^3Hz<58I~kidycxi28?)>1KN?DQhwAGu8rGpv5!L{@SpSr=9!m
+zM2kziH)TcBpubf*+iBvSrSL?lKUMcCtiRtMEr^W(x{kZcRhWNeA|q{<v%DJZv+&%y
+z0l_K$4g1lVrcWgLsbr&G#-SD2wR^42-cF;%tJXdR0gcVT_;V}U<5>^(c;lTlPBf$Z
+zR+nSVtspjnU4;MpQXx-2<w(3uu$04)ad-ZLdrg~)M+bkHFrkotTA%UJC-ve>R89{A
+zduz~Wb!QwqrtDGT&qRHcST9Yk`0p<m%FA*`*lxKKV}0j0u!lW+n7DNsL)KRL*_cmm
+zNjvk&b@oXPS=3Ft!~@_%e;i-P6aRNVz7yOq)X!KH+K@`*40Db1^Ph~4Ls{d<xdCZp
+z%Q2}hVypZzJn!6lR>+w9%s}D5(*uRo*t{OV|LNmTUw``fuN<Q=_afSNGpudKoHyn<
+zDaPEp+eo>7E{hfGhW$DJecgcg=KKil|C6TOWjtG8t`5*lWvEAFSJIEjjl`fcZ*-XF
+zi#~+h%R4b=UEsBCnuka2){;()d&Fujp$+lwc&qq?e37yV#-aw_Ww3Xe%vFx>AHeUF
+z+3JSUNrzZa%(2Y;YqgZ^i2sLoW;b-Wb}!^#d~<iQRr2?ylC6pt?I(XtdfYoh*c+$o
+z{jxW<#VgS`U^^N2($${zb52X{LE?Sd>Ya$$T^x6xTTF~E_6PfViS~8yeK!1e=4*eQ
+zO1#It{A`T}agn~yJ?+J#ioS@SU!%`j=7}!4MSch6+(rGS4aO9|SLL5-#5VNZZMAx(
+z*kekKHR9K^APKoY-Qhj_Csl5_wii;ro#77ak|{&w4X5AuGQB=+(H}oTOyVi!lIykG
+zTb_m9tlwo`g<9Q4=BJgjQLA%=zlx7<Q)_ll#vU`N*6f&kGs<Hbhh>jceM!l=A+ZJ(
+zwhrYwVt=Ldcne+H&A}9Cg);1&M^!s$k1oM}hx@{3e=fLYScm%mKb8C;-JZgc+2pZZ
+zL1QHDd#RlcLADOD>^9IKee+_vUk4d;iSq8Y6?P=c`KulS+ELm~h0W4dG@q0kQ~rGE
+zHgi9!u2cDLcqYbmV}U+rW9{%<b{y9C9dpvzC1$y|)GC);<o7fV=4Tn@-U0lr$KPl0
+zH#LV?0p;E-dp^$}hW7cO<^@aasVWzST@F2PzPkW_m*QR^LEBO~x0GiO3Gj@Dl(#rN
+z-<=yP_iFLZyhOPdYbf_-$IHFNxZ=3RYJXJf?zhh$@;SR}#tkDegI^Z^LMLY(m@jm5
+z==6}}9`SKeXuE|>@N6XRV|rgsKbmL9XnYmJxXIhC<Iv=+GoEk^g)bucn@evP&QVDp
+z!j!cJykm_QPAXeIZKW$tS2iHZFA__KXY|dw`<foFv;GmM{T$FDWYnnL?CiZXoxSM7
+zWnz0H?)WUmK0;@rpBa6AVzP&B^;T|Bx!t*s_nz}awk|HV&8%;iJ88OZvn6M7VrRx)
+z1UhOfF&dl@{j7}6t<V=b+`6pzh2&=0v=@RGX2ef07mm-sp4RFx?tpxwGPA%PYbd*F
+z4c2XK1K!2nX2q1=T^S$7^KO~1_FdX0h@sEC@?*9CG3V?LA5u2lQ!r=ulZTI*vo!O6
+zt{WcPu#9aR#<pz;Lw%OEmwf~8jpchbzrQTE2j92Rek5zH&7*Dp&(!0vZtj>#ohF2J
+z+#K@Hig^y^3Y}cZyx&v!9nYcpZJVX)qdk@OzLjsszJ+U9onh40h71$e|H*s=TiS;6
+z5o~Jv*XAR5JNWKDlaJu(!*8CC;IT(eoR45km&!-*^)`j)`_;DLd<2V6#kf8<P}p;5
+zpwKlcMm06&_4x>v9afmU4@dv`d;}kF8^-5d+V<x82$Igod<18{Sa{QX1b=$5aQu7(
+z2|ph}tIKoiNJFcPZSbfnlk02)>YHV&c@Ei<yLSrDSIA3hIIbprG@6}i%Is#VoEs1$
+zp_cy24K4EC>KP$pb)B+BRzfzND{)_oa`d5LOo@Lk4Bqf8W5fhQE#B_TvcM109TMMS
+zc0xu;w(wjpC;nHlP2M@l!F(OQU4*|j{$7<N|5y1onQK#MoM%mbj5OMGGUQYGf6|6_
+zvUP!5Mf`zYk%PphW+pm#{_9zB9p98tHkz@TSDf*oA;06hc&>TZTFR{>apBp%I&0H#
+zJ_F0iv7bDX@@4wchJ>7nLuY^1=)J*tj2OFmoL-%wc=UofJ>D#xFNiq^V~yaAX?1=s
+zJT`{;u$3PSX`*Ht_%PZ_9{hbv@!WdNZ<(*}-g8u5hSPOkhPM~xWgzeEcSiEwYVh9i
+zPRb$g<=XIhZxwj&m}1`Bd1Bss+J}aDZ@cEbV~Tk1`VXq{oQUzfa_#GRZym8~i}FJF
+ze0IUw*X^xS*uTe5z*}FybDq<`FfC*xr>ndX9P7KMtN6s1d9H-<TCK<1B#*#8x3bu0
+zLB}!>`+1D^5&Dd!#(xKGDfoTA^@QjGhyI5D+ew$$mth@;u@dz38DlWN5;D-L81Y$Y
+zzpU|mpNc!?6@(Z0xa?2O8<smub)E@#p2{=9c+t7ox91Mw`ZMmn)oI^5kpJw*hx1I>
+z+E;Y7rn?C|r`BWt)CbkR$2=1lx4T{j4}H}fS>7s?_tB3J=b4~yWaS#AYjbayxW>;X
+zaruaR67=zv_(O>?Y;{7JEqzs7d%X%j*}~Y^PSUH3)Bcr|HL}afsQeKP!}%jVmMi3c
+zMw={tf2v&Nk9hob`6E<YFWEafe}uv#px?o|jS7z-v_|pUz#5f5f<DykmWuP<58l2V
+z7kNJA&!M<)+#C0YfuZ~n?VyoPoj+m>^ruv!!~INLVG;Pbxl&jI74wGkN2J@1pFg7A
+z_oD!flRlETR^eJLaaP+zrZUWJ-mZ5)k*yjm<X2*yN{$J^@KpHVDakR>BDS0ZZv#CO
+z*XerbfeV#SUrAz(<Q>!bMgA#&=+kJQh^=wL%-so{lejwkKe5cCW{3OkS1_K8Z*15s
+zzRD&4Ltka$`%nk1)IR-;*`DxT=78)LzRB2)5QyZ0R|fLRUX&8w67rH||5?cMEb!vC
+zVPEHx<M=xNo_U1d5;C^dshod4rf#4JQ<wdlsBuwGgc0n=hLvl5v={@orU+k-c0S_r
+za^E#{9H)<MSzMk~gqu6MJpb8?{{*J4HwrWO|6lqy$>{Dkv~NIhf7r)<+N9n9ld$GZ
+zFbORmlki_q#y^WwT=P%h=vx0moZ|l*^&a>a);o+F{D}8v^$G^^|Dk%t&YX<9ltZy+
+zKJ#iP_QhUYY2^zpK78gu&$i~c1v>~`^0Hj;?DU30BD9hIai?N$8Jp?pi$Vva>_P0J
+zz_d+$bL<PCV_uefw|&9J5Z*tUNH_DFfQ7Q~tN?jstg<t1;~ra9REA)Dk1C^J<9j=_
+zk!SxU_D}kFK3ife$p&L7_gBp0jQze`?>WpdP>VGmoZak3?PMR@&%ElyKnb4U9kz?U
+zEAdl8Mm?@5E)$ob&K|P?>*2#ZdkI(%dh&bJWmpeG9z5U$jirJEAGDwBYqw`OLHofz
+zp4|pB2l@<qso1efl|SOcIzP4KRBQ|>OlA722zDg+SL-Xs^67-~>HKp_<+Wn0qVMNP
+zopOBvGN-oRJ;nU=*fYbLPx^T?OLcsFIMyz*>dl6cr~f(6`G|>d5;3uiD@bq8G9DsK
+zI~egMV@=L@^J&RzI>8QLPdeB)ZTi8!@p#v;_T&5gUNF<{GHzRZ4C!-c@9XnY19JXR
+zrTHW8J1HfLKnFO|byCO(w+$9X_xD3Z{k>oJx71R7_WQf2P{{kZJvS9pPEz*S@2j74
+zjrRX=9Q}oC^0DLex1^}QC64MV`}{xY@3)TA-yJDsA7_7eOdjrUQ2cZ!F~@dAung<g
+zYHAk$yM)N85_eh^r;RmT!CdW>>#5TPWe%S_EPK73IULCR0(98u1~QL$0q04N@^`?=
+zcmeYl;wum^A4YqBA?Jkw<6(VI|KEK5|AQ!xV;syp?D@H=7wdTVppgusEs>yc^3Y!4
+z;{Z};V@?L>KXOjQ*#EtlmsvU<gZyPN-dTk{mC&a!bMSB_-V0=Y3H>hR20GV?{uRiq
+zbpyTaQbr(igIg{3ux|A2pchCU!oA;kfyA@W;eRc@Dm>c{WDa@na-Q($Tg@|7oB9~;
+zzdP}SSD$%8e3WN3JmH;--#ov1Px1-xybRy(_TG!XH9Cf6E82Um{hT)|^PE@jJm<a3
+zdd_>d`JDHj#B<(x4bOS+O+JTldc-pvjJ35FWBfSke#|2-c_4wYZ1|~aPjbJvSnD1~
+zCum<)!Sy3uc6u*7+~Zki*ErEk$cY9mC!DEs>SkF^XjVEq16OEYowNT!%JVav8G$+{
+z95bBo%o$EJR^!x!XE=p$CRd1Na>m>mXXnF=(XpJgt;*Ye8U4`foOaxkTr2S#9cMy1
+zd-%uDhro}L=O}$TX*Rl{WDD_6h}Va{Z0k3Scc6@SI4d5)UQr3T)sDL7n*lcl+Ti=v
+zJj~m|t$m?sTl<(F{rp(iJ>M`~<C?8~fdwhIE{uD4KYabxz7ne`JLWBoZXNo=clg~H
+z+{+kA_k7TD9nV?jZ0#$>y^{AeyXR-3ZfK(VuJnm^H#&1`Ul_kZpFCfKF1ZbJx6KQ7
+zo{oN<j&`2@ziub%Vq4#=oopZ5$@ackJGrl#X`ba@l@0d3!`TVG{yf%G9z10Ldh6Y`
+z<pj)-(}+1Y%xTWFnmVUY^H8o(_fRfaIn6m3U`+0GXZp-(=x4|=rcHMOm`iKc^kMpl
+zSkBIg+`~X0(^+27p)Y>m>={yKnbFiQe!>&f`8|DDIp=R>K5aec%n!5*W4b!S^Wgt?
+z=e+@KT>1aOycf?o+b48@|FgY*`=q@l^ia0hoa3^+LF4)y$Ch(%ra$D~iTVE;c>e_a
+zI|u(R$G<(3LPjO`0r14T8Q(_C42M2vzdamCgBK^)Lq2H3-T<B)$Nw`=DL$R}EqDxh
+z^)p`C+*Gz?Z+kX~=VRujvZedlv-I;R+25YM+w1Y_z+c8YA!o<AJ>K|-z(bs~objih
+z<wQSH=g_7Tj+HneJBW9{S28uujOWjCY96a|R-H;3J<ADNA*Ts6I-ayx4;rn1I9Hhc
+za4u9c-C2zCqoBPzGSl&W)LBpY2IWtfKHe?t54qDHYR?k;)xI3>B{q6>D6<d?NiOg(
+z+F6(tLSMc>yXHB;-WG@U#~EAOMOLY04xdlmAZNVHPc`B8pNa1u{R$XYC;5t;Zg1^Z
+ziHY{xzOuKd^S`lYrnBqbm(HHi*f{a7WOLy3>zgKit6@!G!tMKV6E^-NcULZ*{no#w
+zv!^dkXUjkvYu}4^FHUD?JLBE+6Jy--8%o{T@e=p+pQ4=7bavW{>$5XH-jcOJLu=1T
+zXYV=#^2n!K-N5QKt_>QnKAg(V_*r{)T?uU;LHCTQ>1+)0!kBBYuU`*Z`B;maerHp5
+z7U=DKJK~N>+~6c3qmIwg@AL+zWMNw9hjcXFxxq0bTfFcbtnHbQbJ}k5O5!&-(FZwC
+zcvf|*7qapH%neQkbYS*x_RQs7;xBB@+k|~3nKfr^_kz|9&UpUbw-I|nGCRg>1aEK5
+zTC=#`8?)pefm-x!R<k;1j&+M)8GUz++NSJv@24+G_<7S<n2VsT^ogv(xZlPznK*G&
+z6cz&g?<X3+^d_6X^i1oQUZwp@ZxZ(Llbm0Af}2#|oUOp~lkq%~!1_Sh<7X+{A>(d5
+zZ*R_?QJW5&QJ)UfR^p1J1CZ&11uGalV<~={fndQfg0=hc+bIhcVv(TL+Yx*>eU}@$
+zy>w@X%k$Bo{WRo)r@b+mry)~3?HTc>J@zr2c-k9JETnxHPdqQNo3ml86%&0Zjq&|<
+z@!cK&0`AXl&z3o7nGt)2$@4LVb&}4doepmY=x+RAA)iindpnZd(igOuZO@|JS+qMF
+zX;>pV4BGCZ-7ebgMiN)JXt#^LWYKmP{m4cV^qaldE4457##k3)elNy8eX$oZFNUsg
+zG1mCS-s2o+)Nyj=QO|T9^(NYndXub2y^8pwp#MiP-j8}G8IOu>m}l<vflH#TY-bu*
+z>~AWr=x#rcq}ly^7;A-P(s#{_{T5~Z7UezZRT@uvldUJcNzQM*lguYk=dZlW1j{HT
+zKDV5&0OqY^HpUTj!n~hR%-!(VA4ESOlR>8{F%CjkI0)J6pp3uxDQbME5T2Lfc@%Rn
+z-coaKtZvGdYkMrmJe|Z?H*|RS9V_H1t3^!J-fE|Na@y{myu-rZM0d%Kcy~#4vSV^E
+zeuf!JoMo1#(-R}+LYI7k^m-b``P3KE+0!sbr=bm}VvbIY5Yuxm+B(-O$;`!g&&7Dp
+z1>MZWe9ra4@wpzclHQJY-;Q@{@ojA_=M8h|7(;Vgi@AI|$}gA^%yFqZG*9NJdBXfm
+z#$26*`6E^U`@->3x}%Df6l_Pzz~uRm3-Wq@FpT~Cxj)$B)&5Xt@r+sF)rB%m%Fo_D
+z(D!w;DP$djKAGv`+Kphn(jS?7{i~6XQL}ZhAUPakXL`hnDYYB1mjxt8FZ~FpcLx7-
+zV`r&h9GR>A^ge*=V(qW@L0lgaJD18$GlaWuA37}YKhV8HGeCb;f(zsjQ;E<1uirPW
+za||0gL2R)r@jmCICmOZsiFnTp83{9xX`l3S#yqm!{1)Hw`!}oWr{W8yaHajcU+njD
+z`tL9G-zW6nNA%wxYCFoyklhzBp59cr82uGJUjGagA4)$c#?vwGgt2vVvEN}W=RQ<!
+z<oBJ!vtSkDE?67AJooDWkA-}0d_iKYD-GpON*^KO4E<rOA+hDe=`fN`t_J!KeQoHs
+zOk6RO_EX|njy04&LRy_yJV+lRythi?I*B>mAm>f@3m#=W_YwS^jrRO^lkx$eUKPqD
+z`=Z2sHoi<>Bgw}zM#ZMS$o5HYQD=)cm%iHetrGWgwv<<qn@gK3&)#}(a7&Dj%9(J$
+zSVfHRDba>jHyYpKl}fJ5i`<fb*p_~|wxwU5TdK>el~`UUM_je4h8CCDl%<lJdQblZ
+zV@JRLm;RV+EB)gl)~(WJ#?&y!M<D4`{0!yJb~d|4a*bo8or?SLf8s{{E7}^D^YC<b
+zf#%Z<n1fohvySluu_k90<9R7pW>SvwH6rFh67pK36Kc5DDYe%-_1Md7@%denZQyx<
+zwbqNq*LqdP+I};$7JLZ5P5w2`TZwX`#+BI*GM|ERb?zL-uIilM4XCRX`-WlD|GL`~
+z3{LYhIrk_N+-HA2H_Ci+Y`#XHYtY(ieHL*uXsbtTjW-JhUU3<Jlo*Gby;-B~)6b(4
+z_h*l~?@FGpn<dV<`2Hc>U&XOVg5Elti3uike;IW%UnOa=0qta;=0;Q=Bj(f)`j&5+
+zyg28N`nmW{w~HUp{Gofa!4KbK4BB+8=@%Qd4~&)UBi_&Xl6SYqdtToU7Ojg}wBMG7
+zjM=XY79OZGj3|gd3Vs|d2^lYkLxQD8e=Zech&AV|5ZkJsJ1dGg84p@1L%lbhd@N61
+zU}uP9lyJgo|HviGj(!g^iKQ_F1P?nFcPq91%*QMX7_lI6gTDCZWBFS4&rG^v3)8W+
+z8I<!B%JI*h#QytekL*>%gIHmfdkt2(cXV=(cl1<+{juCA_g32Fk~=48wL7)+Gh<$u
+z*e%|wOu2VT8S|Si1OE!iIWhgF;?{hLOHSdtWhk>PRxY~eQv6P$e4np17*oCF=2UNm
+zHC6c9_c(`6-2INm6QO@_0`Jo|YB}Crfp;75ZjwH2;BQ}wX#Uoq&Z|oTM%e<q7qxB~
+z!QcL-`P&ERlL_7Ei;c(QZ(kJtRyvBmy-Tl$TGZ{Yhqr0|Mn5_9W6Cl-<DOi?+_onB
+zr})y|e-WQ+)#X)aKKH$U5l`Brd6Ms^H#;*G>wc;?4`Up#+udNS(OHfDgaVjL+-JTK
+z#;8WjTO_st`^I@~yl*U_?~W4$zoNe)p9jqA@ZJqx40E+o#;(z8<GdM-kP92dFOjh$
+zZ7R+~?7P>zdMv*Zb<cJ%hsH+b4*}jaerB>S6i+`%o9z;`akZ&@8UwL*!7M1r5Jz}h
+zANGFG=GEC?jPJKND(<O?eSdtc-QpxrcF1mX7&Gxnv^`?qB3QUz#c%du5zhg||FF{=
+zYqmM>V|y}FC5CM*`I2>+#MPa89GalNFZg7RF<Mpe^=>jY)hj95gNEYkioOdQYQMD8
+z>)qKHk9qiJF8WS>dmZK|WK3bM<S7y_n%w3X=u^0Jy_1NS(?71_LcH^C%@fbXTKG@l
+z$J@QR=w~q>eM<JVsS=+y5n~w5U>~%$Nx$Sh`!bE;k`8cP5_iCuxxLSrwym$YoCk$&
+zl90Qu&i)l+%DIYSu7%fHjoz8MEtAle<swI2F8Nmtvr}ShxVD}hqwqU<4%#)d$LmVI
+zo~KTgZ<plm)O*g!^8ck0vu|jh5tj9nF^1ssUC%o3-Z=7bl(`CX7LeHE_CE6VQu1%!
+zH~ssKa(|4jCw!dwya9C&=>6bR$&vfPOM`_Yt1w@Vq3WU>`i$A*G3HuwjM?oDb+oe|
+z7|1V`^|3G)otX|SwaZJ!+s(mJ`{7XNz$Hc`-4P`A0sV2K6Ul=v%TDCpjc;fN;Mp~4
+zoqgq6oMq0JT*uLP%CW(FW~Ix$dhp;n@Yj>Zs&PF_kHzC?<9O--%-4M25=Sr-Z06Ux
+zDvSC`C=-UvMuR+=ewHiIk{6yGEL39ustbV<3PHof?}5Rf5y1e?#<ieS#S8qS`&n-C
+z>-V#e-p@WhYCjvjm(l0sk)yBQ$AWqvyL8k(w(?@NkI`qP4Sj0IzOn4&9&g#(l?<N3
+zKGrGwn8LQ;J~j^f*uQhnA@-+ni})Ob?S$-QTj?+TZu;2F7uh_G|8KR)d%zDdj$J5!
+zJIe!K=9+28zC#|_W=$0gr*Ns-%bG~D37(@mxiOIcS0=E>O8cgI7HB?&@5n>D^q#hN
+zjN$tbS8$G2S>==4u&>SKzLrsKR5?J}z3T&NU!(6^9m+GYC$D}NW6)FHkG?)?k4v0L
+zhF>N4lSXE%S8K5ClADb7(Gh#xYCPlG2aV-c8~z^mh1`$0$Hm*+Xv0=n;{o$x_kZFS
+z^E+K0<y6w|J)lXBcdP;X1o~BKHaj+W*lbzb<m=bEQOLxhSkMKJaygz7pAP;Ex^}|!
+zX<$A!{Jzzk0s6m1`t@Pvq$kg^o!sJ6dEV0KF)n8Y%DDdP^l`-Afw3Zn?7yO4o{m}a
+z_gL-?U8D8}-@mDN4r0PLF3ZkFzihl8ZopoVa4NPi*N3y-4W!X`><_D)axb_6>n)KE
+zOb8fL+A%(~DUJcZ3>!-;#&)iAR)Rm2NDio}Y<te;-_Es0=xop<=65CPEXCep*lQii
+z2MyR?AWNOMO7kx2LRX{Sg~Svylx)DU4p{45t_2^%pcHGX9c>N7o19LQbuGr)SX{xq
+zq0^c=*~D0v+3AXi-88w=o;o>br$gZ7A(ONolbkLg$O$D;i&yhx?pH~)Jq(%QPV8Hq
+zB7@L2u>msP1~0Tw#U(T5Hi-5UgN5x{g)tM~FVX^J0qV7=Px!xJm>QeB5B&95z7uVw
+zzboUhxtH;N4EJXXPhXmA_v@rzzCk}CjS*~b5gUx;kBoy}AZJkC@MR5RCQxo@ARh<s
+z2+6oE%&Ppo$-djc<HK0XA}3+5;Fx!bp7s&ZY56VdikfR3$|6(QR*ZX$ZDfq_NPTT+
+zZ=XV38s@`dtckVVW3J19xk$|+*29G3tn>GB-9e^=`a++_><sXq>Y@FA%ZUB|MZNzs
+zj}P|$-JSmapHTb%?@@-D_ocFTEo&(EmV>^yZUScdDeUo25f45(jeA7X@ZOZ@fULR3
+zNhDOP3o%?n8RExI6?yBe=%Y`&(T4QIKqfu$-8z?cjWOSCpO$pSPl66;2eEE~;1`V!
+z^?zdTmPuUTeD}lP$Mnx#!~K!A0^Q%f5+i?-jt2+9O(C6#{*X|<xc3Y)ZdBFN$a*FY
+z*Au|J(@sP>QgqqneVqT#Xqu7u{O#UXSUzN+ux`)IVbzwLZp&82?TXB;{eQuKHgW$R
+zHBL3yvl=Ht{<b^Zxpn~b5b%O%L!hDErR^gf^UFv{8Ee>f(9}bNh1bpd4{?w4{-r_U
+z<9;N&3Um8FfilC|5i&!W&b#vEzZ?_nQ_eBl?3c$_<-1=C8q1x*f(3b@8rQsmpkd)&
+zgTY*(i?DVUh9rhGhW*~?>St_~#0z8;{sjG~s}dbvgYm=u@<HnLi!hc8Ls+Y!zvx(^
+z25pa|tWXA8tkhUVlod+i;3IM2A=wB1I4m=SwND7;kGfd5@NplfJECzfUOZMLN6b0%
+z`9w@%|Ab>beSi2WeLg$;c$Oc@sMyqCS+$B2iR-$-x5D6C+fXm(w^rB1`Xd^PHVt`&
+zKH>*y>(+iEM_&qxKQ?WK)jAfESRHLBXJAH;H&CH$z?Bjs$?}?<7iRRx9!y?agLi31
+zqzp3)YxdwdJ!1P~+nK|JHbllj(w<1HUSH=PkM|k3SEFr-&xVzpayjLcn3JQfO-umB
+z9*!5BUu8?YHLT^5PRaLO@hCCf8D|K2U@6xp-Y1?7Z9CKvgYjmk#9ZS9AfJPGpJy5^
+zZssf6hdQa`yAJM25)(>1g*N$imd1_ezQVjRD9a4nZIi=RTZzKfYx7cCPouBT!IwGi
+zTjiV2(SFGoMfBg-)joYZdlvSyc9A!}B=XSMQ9A#}j`Ph2ifo!^7TGk<(7AkQgJfKx
+z!rg8bEW6v$-?Y{TX_GvWKIqru>w}U<0B!so)}-BVt82t~e(zM=gtg$0`R#)1*O0rK
+zxXiY)4bS;1asHdU{nM1Mo1yWSf;z70A(3fXA=7O6U&%Dpy3f8nBJ(dQw@S;VzKxXl
+z2E_9>VolyAty_KtbjY~vDj91>#+rS*L3ph4UE+MkLP{Shmwdb3Ua90wZ<ZKRmh<l@
+zCnquAUy{5QV^v=D+}D)vfA$>AT~!hOA!F}9r=Qi4j?+%=Gwiq3J<PXt8Ou*_|K9|+
+zq1&?!y;h+&N`5xc8&&S1Px5SU*FgT|Kab?83-JG?(7%@BT7`?egL!7iAGp4&7{5V%
+z;SZ1%?(6Y7!9O~|FUorv%an9^1`#lCaL5yQW=tF28QA+8c>ZAW{NV<L9nh)brRmS$
+z>oybU-v%1xe2}L-5mG$k%fiE%qeGofOt5s!68Oc&kTDd$$#}Ut_1Oby_dI-88}Am}
+zf*ppjyHfZyaR{~x{eOiR1;!P*Ho<M{mi!b3_R$jThtIskn2*bIA2N))0>(;Nzu{5(
+zOiar;b+WEhnWyXZTj!ribgsqv{fIu3_|M$K)MFA#-XHV7py5yG^4_NPnEQps8gk56
+zAbt!w_w#2U2bn&<FgJO@+Zy{IH@l3F`d75$1KOv(Uauv}8pQgd?<-}qGV&QqeA}no
+zjXHxfH}vsdP-5(x+#qDqzd@Ge-yJCPS8NygOl-ZY;>nx)i^tgKU4gh$LEiz!f!8F~
+zi=JTc?8|NyyPFYr&bb-w6~BO(Q}HFd`)QOdIAjw!&l^4a%W9t>wtlTX&yuk-npI9l
+zyGd;M+=IU$XARv#8!BJ#CT~vA$dkTG0`ctUDL=%W+~@V${S@eOi~hYFzrU-`YbAC9
+zGA!c<*q)_Wqr|IQD!7U_I9wlGKg;mmp8E#!jLVsg=d(vWzY))O;rZw?FC)g@AA>_S
+z7TQ+Yu#Pjh(ztf%HJ!MkNAg(`({ssbJ>HU&lwE^<G%GZY>I$)As2I;l2K{H|yYH4f
+zGFQmndR{>3od5a4v3$@<(x=H8A#Y>7C(Lq*>sbbQyG)-8B_Pkm|8y+hKUra0vyKIS
+zV!T&MurB`g=VSQ@WaD^dz8ki$6+6i)w1u)S<$UT_z32M8ti?%Ex6G7_&BW&=D^N!Q
+z?=91IlHEadmiYzBA6UbsJOk}iatPbAOrH;|)b^3p!J;!w$b7T4&EK?d5kF9QmTC58
+zYTL+6V!feFU;fHJZV%yEoe_h4>r55Atnr}h_l&ZKEHAS8FE@wnA$$Kt_K@%D^3K$J
+zgf@TLb!j8!IEOQkaiBZK*hc7JJhus1jiABxE^Q-ROUzL&vKTJvRn%*Ug*Jyakoq3)
+zTs<b!i^k;p|027`-J|Uui57Py+CJuZGEmW2&x7v7@#Z-M^<6oiO*j?XDGSA0+$iWO
+z(9kS42cxsq2`1J!V~s1a`=CFEjFXj&TSV)nIwtW$pk0OKc)8d!u19&FKwnq$yn%QK
+zpxH3Shq@zUkXOrD#pSsrF{}@x3G#cB_hp$ArB^a`@m!R-RO|V%xY$LUB^mWy$ZB_P
+z5Pkd>Z9mv9zV%`1rS?tYXI^4ljk2`;0BbayY3Eq(E}6*KA@a+Qh|M5iC;RGoUV*Zr
+zLpFm&*(R|WT#+Nj&lqhNr@deT+QoY3SyP8?{91>vkvQ$wpAk^Ujuo8|gn33Fn2WEs
+zBXEo-(N9Ed1UHSa5kw`{cGyP1F*S>91k*I{9gB7R0m;pB1!HC*Z~HW`QRcr?+a)HC
+z(w!eSl<xdaEql`DZ`x~yd7A~^Hj1ZBJ$fu(IdPb$oy`BwWc>9Smo|z}0yIUR4s8=~
+z14jN*u?bwAi-PuNnaa){!MKdp$s-N4U9>wk%BiF6LgD0RX{%>@?T~8kO0DZ>2bHbi
+zF~K~**c90sur(avJ)sxL<-W<|d3)0I_4-E9?+)O-<S2W=0V(&2T!i(E8p}{Y>G}_8
+z-TkruAA4^aA4QeEe^)O_nj}C60tQ6vKvcwloe&Tau~}ueNy3g877-CKA|g7d*;quD
+z5W*sYG>gb6VnkF_#AXqZK?Oub2DQ3F8zhW_ii#SN=ekc_ois6FbY}j)H_wF6m#ez=
+zs<WRu_kEzJPMftvltIIOF0bhQOnF5sEO#t5YYA8{^WiAFe`yO!zkEpl{*`v|J!<st
+zU+MiIaJv45QknNc!bjTKDQM?d>=`JR7WiYFMqj_QeQ*5({r&HsHrnnQ=dlmA*~JgO
+zm*;68+V9`9>O9hiBxCKHI1QhM!Ffz~I6v??W2$_K1nY~jv`0ONGW>^!gWq=yo7JD>
+zyA#eKexx@gif_f$flV?`1j_VBug~$XO7`mFw>RjsclY&ZZ?qh%{D(+d3Cjd{hPo)D
+zre&=OM7zb#T08yu!&SDia&Ebn%-y^Q*ND_spL+C`T>sLRIJb;fitncHxy2Zt<Z9Pl
+z&%w2%58UJk&Tr!>{?%UfTyno(Bb?>iT{FZ&@td*jq*>Y5ukfr1tjI@v&r)r7<$p!O
+zGw5$czAsHJtMZW@PFwoM;uGIJSovO2elE2;b+Ji*4$l!8^1jaCy6YaMKM<^o5}THg
+zIk4sY`*D8-6_q~056E0Hr*WK&w>pDT_*k*gA0p+t8at<auOn>pje8B+a%Xg^C_O0t
+z<ulxVvH2Z}wnBZGR}Sg1p7^<Ax~z+Qc5{+350wY);oNMGZ~ley(iO-D5?uZK%7(qw
+zc;!Q@5tcV;{rtPm8h*~L^o>^MM&o{?GiUiz==a)YoqI}riPhn|i`M4)U%_!HsDpJz
+zy{PkA)Cm_G{soFqSJ;MpLw%#aQRdPz!tSLTtHSL%HRd2)?2jX*JtN_WwnNi0$C|)^
+zhpT)p6d@mz_ZlbPgA>bD8%X99a3UX&zR_05d&KY2el>nDO8GR{CVlldU+0Xd!1g`;
+zd{gX|cG}0~`}r~H&qw@k7ZU#;z%@{ZQDt|qP9%9oXjy(uweXj5Q!*Y-zAMN#)D&D-
+zzDLOz0J9@Qe=6yqo`dvaMjV#1V%L>u<2M|`^pdTM&!(eDnPz0LM^O(x<1^xK9$F!D
+z8>0OSmA*Ms)F3q<yTyp_zPJqW)2Xct`lgY7HStSbF@w*Om0u#ho#g%BRblu5XoPT_
+zh&uZ}%Paj`9GCeztn^JFZLXJoV_H!8kk+(x#>M^`eo*gckk1DV9WN4xYwMNQ&MJ}j
+z+uvtALz!;Y4uSKC<I0yG=aZNIG#S?`eHaU6jt|$;fIVwzAkJPGSlB=-Z7Sax#uS!F
+zU9i3CW18)k@n6aE4Iy)BAlx+vb?sO`&S#QwpNTSOgv{xP`oXm-9S>H1FihH1HEyAq
+zGe;edxYJ4c+$~zHif<<OooG`X4b(w-@vSPG3RN4iRMNf7+vl98%W);B>zR>e<etU9
+zP1>0Y>OJ~oY!~*6<N3dk{j@oHgl3oc*0h21kZSjSru=6uFOj|u*$-jg>HH$Y=b~u1
+zQ|_suF;{WMlE5L=?#wrQ9pHH7=f`2pw<&c|o3hu>4<uh>_;OM62TU(J-3;xsW(bdF
+zs(ohktw<g3Cz;c*sI2tF7ifziuEnCjwAv~v{cj!QTrRpAr)1cYxBTWp>Ew26RJkN!
+zTOVzz2`ZfPOClV*5ht_#X4S4T$}Nd+Cy)jYNF2*|`)wYXJ6?a~LBu`fgG=uxWomH>
+z_7UH!ow3g5T4>m@;ktID%?xR0IJ)_z|H<t&zKgh=hA*y;@?8b%#)D%G<oou*Kxa=>
+zV3-~i=r7wDw<l)w^FM_6y*+h}^4+E8`Hc4z-_x-w|B?9Ju7>!X?v(r{t@tjaFXclF
+z%j4BImn8u^md8ka(Q&z&_wN|)?QzagD(_%Ni4iAesJ6mTpYnz4HT)ACQ)7E%{@Kfw
+zkL#dcq-9t0o-%?yEAyp4p?EC)Y){1U9cunrV=im?PNwF>#&!D37<S|(&FssN4_+Rq
+zk9=?<(oKDo1;#hPY`wD@M~l35y3w~F$HX~}Ia%dcIY#!kxw2IMbu;nzhdQ{-;Vbnl
+zyCW+QEq)v`vebCNW60yOe=RSS_xd<g$92=yya5G)uO34D(q*g>+M6;@fSy&NW#t57
+zlr6)5K5i?#+PE#b2WcbTj{6Auibz6!_oIw^QQzYR`QE9hXsvu?%De&CSA31w-Lw5p
+zZRx48t;<XMT`%9O3Uq02ggMvi-YeyrgQUJRuc?|3&@Da{R?7L#s6H*N>0Oc@r454f
+zy{UZn%|Y5v_s!%Olvh>#KFfa$#~gL^^Kbmo@PYk3o<qKOZEzaj_mIaNmoiJruxYAq
+zcUfQ_^xT)s|DpR&7<C!(fo}MEm|iS)>ym#;zo#Y3=ns(b15)Ni{2BirYA)&3YCoB4
+z*P5|heJ^RQ>M%o887*@*M9Vi|ya%y!Z{}DWu;V_Z9o7=>K;|=-{sHl!kMgo%eQ9S&
+zpSYcU;x5|U{GqT;S7B}V1Dd10I|coJ+1=SH%znJK_Ao;+x-#gi&+3@tf3LhMZGFS>
+zSVvU5YFVR$xQ>J^!epL2qs)UW_VwY2XPf07Q1*W*bEzSJEE<Hm6Y@w^hjbZr_t0|l
+znZ^~B<)*X)uXyP9`HIYuaM?pu^$n@h^i^Z$q+dX657hUeUAL<Fn1;yrZB<v1`gFF`
+z7o0NoV@bgH{ys!~_dk#Nqz&mq;;N*J1f&ZoOJ<|3hPJ%FuJ|;PI-&SfG#U4t1?~Cm
+zh06JVti~L+Xg`n5H)ZrHu(|RIeyONfDZbyO4kNY%@?BNtM+o{}m**Z6d}fczOC#yy
+z>421Zbq;xa$EE#-vg`Qti~VPbFRIB{e>7yhybEayN8(+`vC1YPYpyQO_9?<g)~Pui
+zvOKCk=mp6Su<tJV4U#(c8)X&2dFl_yc_gjw{oJf=2HTIJHUyMk5bV4E*K+za(qBRO
+zyI%PK(c1)KQEqOTZiLa*A#-?G&#pdc!|}m=o~>n{lb==Xv#OSTydnE6sb!y4A^Xg$
+zWuF-#`()R$Px@y@-m$}F%q_T`bK8Z<JWQ%jK+T2ei;=pF8l&M2tU%bPc~7Li>B-ac
+zGthp@&(p<^c&191?*-~0?l_e%0PXbH=~Z*E$Tx2_@0jzPDyw8!#x#iE4Y|&^pR4MZ
+zXVrH+&haxxd_@1Mj`^CtF3oC=Y-8-9%$vC46SUD$Upe+ec|{M=Pt95ukT&%hJl~lN
+z<JrQUg(ZgnxwPW&%sgGqcjnfW53e4<`Gj$OubP)APwx`EC$}-@mR0(G3}20r;f_4r
+z@I{oP{D$P?n7ZnlOrCy_d3xPUHFrW&4Q*vLw>Q#~Jlo`ueRus>9x`9#>Oea8`<ni8
+zUOaEiAs+6`E0H!qM}$GNqz}iM67iYbQ2Dz}YiLsQPR$9E^s(cpS@WXO>%_a5ajLxH
+za5GKojO7PVZe)F8#C7SDd5!)=5y#`Cj`#?D2bt7d--}h5ZdQ4L_$Xhld=SdmV5{Bm
+zB@{Kys5dlG@6nhOCd-v)mOL%!$4tUDP5dUHZ7RRR>6=5oFW&TxQ75`W%}u>LkmoYa
+zAM|G-;VtFC&kq>a3E;QP!+7vPBTh#L<Ft&uQ1_SS3(gg9!@Y&G{UdRv3G&Ux86Jxq
+zw?mH4$SV0x&3`*5AaN)Q@2odC+o#PpamdfR-P_OK?TZ2aW*NQwGLKy|w2$prmbh=t
+zNC@;4e@FL~D_<k>o=mL`{})^EPUojq&AlbxbAtUVaZ)#V;_XuwHQwOzz-E;HOMfuJ
+zA7%8LO(&O^sxgmh&JDMehmj7{spJ|mt|;d>V_&pc-jqIho6{3xy2)dy=MWq1-NkWc
+zqzxGpgEqJLz;xOBRnFHsVRU&ky>(Pn-}gSQf}$dzARR+@NY?-=0wU6#Bi$g)kSZe5
+z-7$1`=O7J3cQY`Q<iH>?z%XClpV#mA$6f2(v(CQzoPF<Fcb&8M^E|dcJi&iX&LHq&
+z(Sg9nRe3Hn$wtnMRV2X&<=xUPqB#){1OVZQmoxb-Mc!PSm7#ajeQa7cq4H_ZHW!{P
+ziqgz4go@SBZ8XcCGn9%=y9>aiil~$%l!&gQMX8U15mE%4pLmwkJUX8C^w)XQpY2FD
+zn}m%B|4m~tr}78*g?MkhxlKqHXZ5^Z6|fdX@!N2<<1Ip6f4Df?1j#pcyGcd0hF*P_
+z2)c5?*-YS}DEf*-u%R=3VM=`=HCNE%tlZmNQbVX=LiCLUkL8P{&>}t@4Hc!VriZq^
+zIAcv+P9u)2<E)r6z(%`_125NT@`WzJe4PErpGNr=9Z`$)ks|H@{e2h1%@{}OK0wwL
+zcDqr6VR>#Mu#Mbw>gKmT^)KL;o-kCH`oxFZtS3@W!@gZs>n}gp`7!kNmd``(mK>`j
+z&{%pvif}GzgBR|Ih7o=AOBTX*)R!4Kb&i}n+I9SKwrl+ZmzDJ=ycw0$70261uT|a=
+zP8K&4<$w#KjD>mRcdSSQR|TM5?kgwo{GA6162u^W{Ww5rJG45V5EjEeM#~l8&StiJ
+zGkrxcOrctYat&{*-kLs>*BfpZR917w*WCOvhr70ON7kfHwvWJjb^wCt9IcwAUww=N
+zYNE!wWxYY!cpq`6$hprRm4Q{ZeV<P)$`26<M${@cFbNtIU({X|CHopIROh-nO{}jJ
+zRlLut;?E*Fa$6}~dwIYZ6PU_<-2QZ{s7N)yVlHl~qS8@qTtR+u_0<tF%GO>CYO6ft
+z&=N35e{Sr~yL<?P*aZYAGIvUya|(8U7-fszOxH>(0GEPnc!yUshwL9k%EI&)Suyco
+zx}M94cl9*|Rp!mW`1vCRe;HQ=RNwdy6rVg)SLvpyGVNeN6L@=5D#idWKJco&8jZC@
+z5wHs24-oYW3YB=Sjwc!~PavX-hpm{YFYt0M{q(LAs-e1X92#!pf=Z)%H;1Qn@LZ4Z
+zZ>K~d2N?P<q3vo^dqWckV!LRjE#JUjoZ&i4_F`2LfP_;@0g>|D@Fu;b?!q!DC|RcK
+zDYq@Biedo$o%ZhA$pE94r(yQv%i--6awh>O7HM!;pHnTnRb(mhW7f&a9)5ua9n81A
+z?BDy68FGt=hVpnX7Gyd4QrjccB2}_F>E@k59CQzM1I{>7tHDgzc^843Rs8T0jKvxs
+z?UsB^v3QY*r2V<f2~>FO&XOg2U+U5mvfmCrLXMno=VW?oAl{rIX4&`>!c<{NR!u~g
+zf~ruKzeKlp*PAYDj$O@Fq)8Stt}@Y^($ar0gZ?>Af_%e^qkQwP;TD32+DHLRy^HbQ
+zfWsofCKQEpbn*lxmX!}(2=gUMPN^B&I)Cyj9AKTFCksevcx^-Twa~Cm#s7C3j{X-$
+zo5xY65OlG^dB`UWYW-b3^|##uSMA*dA#RUS++^UrJncSgwt(A_*DX{F7t`$XnF_;K
+z1bDk_yl>qlzPDQLn-@SedTsl&bl`Q;@A1}eWEp{;=XDzbs<fDu;Q8~{<f|Zg$QhVr
+zDkR%Qdd;d?o{RbV^P29DcsJd)Gk04<!!fcX++E?Qq_1Ch6F&yjWBlt1v30qObx|%3
+zUro$^29`{l&e-Qy@f(eHRI`2=xlvammWM>m)jj_HSr|0Jy<Mj}8Xe*GWL#G~nRN_J
+zIhIQ7I`&jp_tE&C@EC{VCv&<V+CbzX>`bI=yS?qM7o2A=hFrt+gM-{^b8mS(erBlp
+z*$?~zw(*N9eMb?AM-G&_v=l1=MnCw9^qllj9Velk31mtF`-$v<jpU3kw!Q1$&77N!
+z^S)a#=|LOrB-|EB>#3_sUrf&^-KZtD)~CT4@^ZD7PBKr+IR+E9z?Y0;gJ)TP&awst
+zvgVWc74CO^SOR#RhD<_ZA?G;lFc-Xr0QnY;dqo5xKX1b6y7>M#R+95m-_F5o;3;AL
+z=mfT-bT`TMia86NKj6JH$o<ph*S?qLxZ_RyI1eVQ>}sWyX1z|SHSE?|MiK@dl1W})
+zWRc0d!^`qtfW}xWcq0eukXWM4rii*2XDwI16R<E48OWsKg$Z(zAVt2tHHh$O+D9{k
+zD1W(&ax(`u@&_h;jcJrk>8SqT50JxDX*c*u=ncgCwdz`FOJj^bN=v!%?Z?Lk-WkO6
+zx>Ow4wItEbyCMwa#$=_1$Af059T74$ZJn1G`-E|-WaVyL4=uyAG)b<%Zgf@V1$|d4
+zRFqaDE<djG`K|qasuxApyAawc`^_q?c$I<E?zD_zT(*2!c#GS8z={)djCxOQo2CLS
+zK2lMzo?~yy_OUQ4(9(kowtTpOUtCte-ks6_)2T7jK}Q||WZUght1qv&L*5_rVhWb(
+z$5b(MN`d|<UdCDV`!*i=X~`&SqWuwam`tN`79AJ^8oVqQ_m;O6Rc^(CcFD(9wUO@<
+zLz^1Vth}VBOiB(~WP3Q!_tYegq1EepJs<N_16rvDwv$e)tN!VlL!|mnH(^SuxzfvD
+z*B{MVSHn`Xvy=|Q3aS=$>i=}UH(b9A@PCJXmnfl^AiJ}7_IiN8;AIN7awEB3dTe@~
+zvR+h@PYo*3LjWl0BOY%oJU%5oTH93mb64?}(FSAQLM6&~Ic0Pl98fyhs4)<BG&0yo
+zTCm|5ao*)K`0v`Fq|byNo|s<hLg*NQsmK}UH2-;0zTvU0FO_70u4LZyAmlxn-)JUl
+zY0BLSl1|@uK7Ac1+}N&lD?cmPuT4q>)}6X}I=f3OA^)!1^N()7p7pb)9x)Zv!#Xb7
+z^FLl5!m30^E_60#BiiJCBH+TZ<xi^~G5>;qe3)kqtI2>PzjI@N3xCYeMYDN1XiDv`
+zu)Glej&t&zSBWHD)r!{-nFVVG#}=Koku*g?`!!y2P8A>Z`6s9f!`mAr%y2$wf<;M-
+z%FOLkXPu~_uloXot<3o7Y*|B+m;f1t2Itipv2ld5Wx=jzT7#yQvgG$`zi0_kQtNC;
+zN<_Q*zQ5@p2@h-_fB!6vO}bHbK2=P&(YRrQ=<zPCtkhYx0imwjSF4gcV!X9I4#*Yr
+z@P~k7+oGthMxCkTAC6GF<(U+~R!a~x?iQXBWX;{}w4j$jWK#rNd2NcrOfWKM-td@{
+z;G;o|`^#OUb$GraX!yrl@cMgO#If-AF9tFEhQ!vr{Yr?7yAI0&f;NiHuwIi~qRJe<
+zKkiB58%c>DuV57aDr`TJ&_5n<$Ia}@+>P)L+G8|GugFt8vx+@)gA^pH7Y?@V&%r3B
+zS+*5xIb}7%U%{Dl597Y-XZy{{w^<)-@G-u)*UPIQ{3xM*hGVPrDCx@r?6P~Xq|f6}
+z9^wj0w9>F7Y%X+Jn$nCNWARC_527m?m1y|pSgC=o+>P5cuGnFSvyQvs8qY^KwFN;v
+zcO!&I#dWS-BQKe3>8X*dNoVP)302-kf#v&}ADSs__lw;kQF&z!vhJId-1ic~K!sUB
+zpeFi7*FU<Ue<tLY0dsdP$nwn;J{3c4^b3J;CmMqc?AtpoOGVa7%}#?>*xUA~UWs^r
+z<xu6((7ZBxL#^xC@NI9B>6x+T=EpOr8(wLJM`NeM{{7;24E|VWYFm}5J`UU+zuT;b
+zK0yghku^5YHYbuCY<l0tyXg;cfhav*pGvX0T#%N8x7V`1+>UX1)K8O`n&t_7?&8sg
+zF$W&(N|PYuybMbtO6=`iJ+)7nDHIqf6!HUJ1&guRe(VNDnM$Oc(S|u@|6DHR-!3SN
+zVQpNq$`7%cos!k;MJAokT<UMj9?IuGQ^cSAj4!82j@$ie&QMxl>id;hR*+j*#Se5g
+zN;l*Lq(eL`R);AJf{J2YCz@~uz+EQQ$9U#}GeLf=;|{czhr?3}RSpFw+_cq3WYJz`
+zkP69$z9MG7k;?a5UH2lb@B+<YY0?ok7WgVePu<R3qB!sRM^d5|pJ4wRLXTvAYLgz-
+z^#>O{%QW(S$v2{cw8NO;4w-*Jui$tH$~;-bO`9+5)9gxwKoQS?`z4Ke@1-sUJl=+!
+zy-^*KpqmipKWoRKYLO)ZRH#0T*-daJ6o70`edtNfxt7kdO!!`_nq+%d!gGH*<PyEG
+z;jPP+Zj*|w^g(ZZFiJWDG=E0?`DBT2tgo^`B}fwKx^J1FNj%R|8B7#Y>p8^1gfxus
+z`70r1G%UpeX9I1vHxY{xtuM)LQ>?fNb<3lT+$l|=kLO7s22yHCzX9cRrQE3%hn^Mz
+zsV?)rVZ)+Hi4rwOX?C^;95kY6p1g?IdgeXOvi98fuypq%QR}rgQ!|`f2gD(GOgxIM
+zaqSB~>Mi{=mAD9(x_RZU#uj*_t&<Z!(m74hu}8^Eqz|J-rN`O%XoJs$sBH3sf7;o;
+z^Mg4lEYhQAW!WO#>0RWqbP?|cD)Aq!z9Q<DF8+k?>!Ok>qdA-Se(Ifiv=p==8!u{)
+z;2H;W<0@Qf*ex&yz1HR+5z@UVn{wvZ8{Ns;7Ttt8=(hx<nk)6+EM~Z2;+%2M0@H1~
+zN=n<$O2W@ndUFmakp)@xtEZu=r~pb5R&dePa>DJjMLd5_or)r)VBrWxVaXB1<i6>f
+zcU}1rV2fay_;sC&Vqw2nfYCVw(Cf`VQ<jnA!1EvXcg}|l2t)`0KFi1)^KvPFxsJV~
+z>QR~cZJx#oNs}VL6Qn(Q>j(Dv^ai?8fCz5~phark!xqXI17loq!A)DEaYaf2mA7T#
+zjz1&5yKR;FRvbwK`uypHq1dabuT@hZrZd=(=&PT~DI+AM;&nX&r@Z;ctQX0|(V4S|
+z=8>~G5*MK7O`i*R;K0i9am*Dk>l9o)WHaFOUeZ&ux^vP{FZWtDMrJ6*@_ws1qI;(D
+zIw|D{+}gWwZ5QwxxVi&7SISrccMTrILP3)mbtZ{56gJCFO|IqDz0pNDX1+2?i4Uia
+z<){YgRzVKH`SLfwrafw4x`Wb0#N9Y<+o>_Ae|Yffm)MGe6wnZ<Tb8AqW&H$F6hD;G
+zbbOdC{JqY6Lf&PV;zt1sj^2*GEy#y0Yma@YUBsbI+^WQys!Irb9EF;q6|UFcN>8(E
+zdJXoQvWji-ejXMnR1%y&B$i(`*%s*;jwEa}B!r2k6tHxOD5*CEK`ZDV-ZVZ6UGMgi
+zH~7$UT5AlmxZyV5&y}aPuvI*lcs4bMNRMg!ajJMxvRPcZ8F-fY3fa+&$HTk^uQptw
+zW3u#9ojz%m?YnC!X%9MCW*H;Ph(ns1#)+^TYGE9XN}g`xn0aJ3B=nU=v4GL-Z>uX9
+zH*G`_60T5<v5-)=B}*t6okdr)-AlRoXQxDZxsJg_lA>y!{!kUmi-cbJ9_Cs{w)@_6
+zkngSvcp5-8#}_<ZGLoC`Irn=)9nI_~Tb9$_?$&5;D*eD*o);MBk|t>-YRcb>HwnXf
+z$n2tO%}!gGHzIb`J$@XGt=jQk+ANu7v;-=zzd&f?j+x8)bsXa}VdJFZ%oS;T55}eo
+zjynF9pJsmCIYjkS_&+k8?QW*-)?HI?PSRy;tS<XXh}L1-jq!oShK1p{j<Y6J#divh
+zQF5F=zit=V;b<79c|+hbPL|3>3)ZO7Urc_Tv~rqxx_VCA9*8zx6zOpr5^L>k=s){_
+z00&5$0;5Nq&6Nb^%64P<-`0*EUl@ujT&qb#Ml-G9A#M;?lXk4)F`wtvtK)9s(|25$
+zk2%O<^6~E|8I5ZnmgrV~=EFWf;?KZlsj3eb(GjvM6*<Rrej$bnO*(&|kVar2^YN?8
+zmo;JV9ohyX*{IP(>46IE(?fc?g)lKP{E@-;Q8|B<{<wyH!w_~jL?i>EoB8i7^Y}RS
+zW&T<#q&e^Z4fFi~#K$z!H-2e+K^ZTtpzG;ACcd9JVxF>y(uT(=PWdMM6U2o0e;!>J
+zU^agpgn^Td(->c4j}z@%Bbw=NdRH`c>=Fg~&VHs<nOtD-E++-thg}k_fuz3^8cY7^
+zngyoYtAuXJ0o=Gxih8&{^(pjF$Mda*u)wqKb$Dk(ST>m863h|#sz@NL^-N#>`aWY6
+zr^3Q*<fl5-Fa9bbgc96p<l7??>HWj!{gz4eX?YyoQgD8Va+eqV!1}_6erI&Qp`PQi
+z_R8FEbBG0v;?GqIa!w?WaD&6&E3b4_fe@LeSD-C?tkRL5YUDhPIy5_2-@V?$zSzM7
+zds2q8KpEv7`E~o}zW@`FAu?DE7auq}Y+6*7B(Oqk760=<?ZQj4lIte*sPw;`m=*+n
+zQKI9Io~vJWjeH!j0Vxt5b+Z}9m_Va)Xw@P}$o@>97pd3IT8(p5DuG^rpC?c)vtbw}
+zi@D}Y(sz?D6gpny$<$v)2R|&M9$XNKE@}=)Dr(jjr5sP@z2J>akAIF6MK+8>76p-O
+z_TcQ6K=YjS@+eDC>A@=p+03^b@Ac`8gZK4F1M7aFNd%nFAv$MuRfHq<4CDW_6!Wi4
+zNII7&!)H^xQsXsmr{s|DufQ)l=cb&Z-1tt2z%)m%XPRF1Y56(zLCN=mV(z(VoIos_
+zMS@8jzF0CC-532ow4I+vt(R-M1calbwGCOJbvRX$N$8|i5jdcTG|P@9z}X1@QS6wI
+z6s$ovS)#N)K2s0!<9yk`Z~Y)6*lpbe8Ye#4+xc_hp9Dk${f-h5y`pOE_`TE(h6!Gq
+z-xWYsT<P@RdF<~9v?moK^SZ>HD-6CKLQYp7fvxke^d>~9Hz)~ytspo8`eKnJ07Y1U
+z>Q0TP*IBxNz(4&q0$=ExT?*~axSBBm-i63FVRK2@cNzD8gSMV!&`zEmr)O48)Q`8#
+zZW+86t51vO-UTYgA@Ae?+i2f8TvRwgC-mH?>=SYRZ6PN3pR5v1Tr;!FrzK_1yKH63
+z2u;(<Z5Co8i;Ur&tL|@<rz~+U3jTn8XK61>nmGQ?zMPy#V`)z|;}$4bvLm&Mj=yY^
+z8=y{aUIMn-&3rAA8zTg{zIZ$p>jyLc6=f25+$m`W;L2J|>tvpw9>$nI*KV6E-GR_)
+z(Ht0MJD9MVV<}JV9K32qd{>MYr+veAp+*!j7fn2Od&I)laXse5pw6>X?wu#UhY{0b
+z@n!Qh)(2*7wVE>Je&}%JYW>B0Zk<ae^Y6KtAvgj%j5M8n$Pi)8o%Do%KWiT$^Gi^C
+zWl`bvr($(f%LP;EH7Zkt0rSb?*!r$tAd(r`{FN9ms@GbfoEO@upahzN+3doI+o*8h
+z)q02h+pC|_H;bw8>uWzO(tJrjlx;(Ow8f^@PCQ9$Ir~bx7|4cMP%>x)M@qjPWr1GG
+z=McW>jBQVUw{J25B{Ae`KNItBcn;V${8OVw-bRtSJePl%qze&{)Wz^RGQV+r&1mx5
+zfBsQulcJedh_x#>@3U)`*f)?0hiCY+9eT7%R5=w?zYauenSIT;*Vqmx&B&1_^*wC|
+z%$sC=fm%YaPNJ8{yrYmur$h3P@&%%emfaygr;UC;-&o1jkOZO!Wm)i#!FgF#4r`V`
+z=ySoF_r{0Mq3Y6~o(PVhxOzskD6P=@XqFLZugA7jDmsffLRz;G2mLVBO%8qM=3UF;
+zpoRVMZ(5@EbgUM~u<ywkm<javsYbi~BMud&NCTR(Px&vXAx3}DW7GMWTli5!F-NE<
+zRTp4CI#L@Q9<lNDE8R2k5E{PCcU#_@Dcbufj5JI)!&e!m%@=P>B#mLLH>Jee)}tMz
+z`AwXv<i+-O*BaY5A0lt^Fqw~U^o;SL{5zk8_GNa*cnPwNwB1%=6j`awbM=jBBCqDt
+zC+C{SKS$vcr@uxQ=I$t;QEl=RWHD^QE$@Vso-92k?6EeiH&2pTlH~d-m+T<Cri<dc
+zmr|%>C$HCkDA`E_@tyM)sTqzi*Dvc2%4<)=j6;NBiv%mGjgbSAzcn{$$l2k1DBc-C
+zhRy_6Bb2=4Qndivi6x<VlrpA#Yk2A&*k=rq9fC9S8tvTX3an9>=SG50b(FceFxuCx
+zU}MV8c;bw+9(^_97xvnLudv!_r^X8X6~n;S{g<ZZQ94{>v7ugzfxW@c#hn<(g!#RB
+zb-$yG*)Gi|$uizUS7(gH>0}h(#=<6C^4IT<+GVIaAM4GCRkB3p&Ss#LV&K+$GN@}E
+zU|odLDzvNlu4JSCe7319tqL2dJURfCA64d@2Mru-t_BZD;Z`|EgtEUFl-wUYvqs$7
+zRf2k3?wpvQ3j!x=g7`SRe4CNS>YEcptUNky$DvYo?sHSbsj{#n4mi(C-G5(<UO`;I
+z-?L?;kv>e^`5B+vr%zg@?dH<nt}*06rglsU{RWu-Dyg#i<Y{38v!pob%~f_K@*bT7
+z<rnEi0?v)hd`&1u+GJq^IsLZ@4BL4T%9u$1w;rX5(INx2#2ieJRyhYdJT3^uGoQRa
+ziZu;ojidYO<~r$NodawC9N8|QBqS%$4pqFJDFsU?6YPqxz+sIHcVx|yWeUmbCc4AX
+zb`)^O)e77YU7O_GZex!%-#ZOZ_Rt1<71y@6g^Bd1ncFheOeeU`<Wk>(lq)S+8kv~@
+z$S~_Na<jVPmgf^zipj{XSYLI%SaI0dsYyYFP)pe<p_;R;#Jq1yE1%*nqHdBifLaPa
+z=E4o*O3(r#$zq5zNBy|uhU-{DSE7cLaCj>qAcuSK>LRGKto-#o(m<;S(B4))6K_WJ
+z&+%BGKg(i>CRF|Vi_jvwW3qNpBhXsvP^_-s8(YiSj*lkyxs8WxGh*0Rec@WGJ_XM&
+z(VQ!h+iWk_d~jwuzB<*w_iaE_dTIYc(~^Bk_Pps|&428YP~Iu84R>Cy@o6G6gG^NG
+z`LT`uIR|NM#~11C=u}(f-EHpgk^|-uow~Q@WUaaRSiR9iUg>X4XO`f*k~<%*KgY(e
+z{vM=kl6NA+Pvx=s%HzBuTp$UzTSS|I-}6-3`_oz70%X8*+m6(I?BIuXMYu7=n~kP=
+z+UFhjBAuLoqOwPVIkYYWW%f{BQ}YO8!|&}Y)lJpQQUpbdc~s}~xm2OXAx!piZ*O;(
+zP>_>lL^7^GrkQNUex0}*Ce@p)UVry|o{tEa-97%h$#g6Op}vr`E7a}Ve%0CC_Hp3M
+zdcB3sC-+gAM*Uk1j(m&Tz~bFq=)LIr5Negw#gB2HlDJ6&mG?-OgF0f-M+gx?a?04Z
+zb`Rkx{e}|dax=HuxtgURK@hEUd^pd<QcA7{a;AT>ELwJ#d!J$FtS~dNrV=X@>dg!O
+z^Wk#)JMNHbY~UwI%gi#%n&NfBO#v34bU+nhqNycAzf=VQu~#5RO8@zqYP+Rcq6;EQ
+z%Rua;@X1o{KIkRL3?z8b0TUPaQZE;Q{DT<SXnST^3eiD-niFf{Jywhq-0Ap8>wvm0
+zZB;ld#wX>P5Fu*=qD=~~pA~>!o?4lM<x2jcZ3T36&?(}%FvGgx-^nPanH7b9qItLV
+zjPRCEi|2HSmXK?w-NCc)%(Ri<dvX)8xm@c5L|bLal4x^)noE6F+1!B6GMxD!Q~b`y
+z4jaw41ai3O)r~KY7x(TyVtaIMsQ1##pjgB*T#&~j)%iU-?3C)FWD3CIzp622V<)}z
+z_`4$NDCYbX7$9)x{kM000mE&4NK#ZGQg-_Oou@Yu<<Wa|RQ4@fZn-R&{OBUZCXlre
+zSi~n-M4ET>lI(b7wtTF;T5kaHCY_0IWQ%s&D|-#3+K^7pCF!%>Dc2yS#w%{61Slpt
+z-vHO>vE5MJQLG3g6=l-!Ir`h)JXwy_ka_JZRYC-7`gWJ54iUI@*pzCW&8Q7{Rz=M`
+z_A#)1N1TTDE~~&XXGpZzC~-V3Gb{P>H|XtdIjq(6nzK$v<l+aahduz5k6}F$w{1g;
+zd*--@%%rQ2lLK0&q88ITC90+D8?KM9<*HCq0@pud0}S@qW-?TNhAM~F8>{qJJsZ^H
+ztTT_|J#Qkpa^y(M18hnNS5h1pibo)Wsgep*>2p+D_O08rI~3~4_sBsz%5l3d;k^W_
+z;JY_t3|9-*@{l<h+i`Yy24JUk+K3H4S?FT?_8M@~#=gfsbzx?CFrl`@!&_gbCc?UI
+z5+~$n0y8KXu96407)9=?sJXqh+>3;^s!`d3Ow82bY&v*rgw^9PVFhvsH?6FLibYn}
+znu>YUn;M0<fbBaKbLg8r!G+O)8qrhUOQwvD1!P|vh3b*nv^oX*iwozEHyHyR!JBJV
+zkVSkk5y*fviEH_m6gC0aT_-Qq6Dm2JpjrS_o|VOMUQ_J+!@K8}rOCK?v<*(@0EDe#
+zP(15C=LEgfY9bymwgVE*2(k+S=<@yh&Q?ut2rYtf3H)JaPWb%SirIn-F?UxKi5%B}
+z#EbK?M8`_R_{Fy#r<mgL!p%f1%LyGW?yq4Z+Gf&SGHS9@RhwEakZdgVOKXvjw?nWw
+zDb72K`-*c1<DJ8V(~lZ_zh#XLyIZT9UePs8KpyWaL8I)zVC`EM%M$VBZR(RIh)y3s
+zpY6QXS-K)jMyLP2;Nn*=p!|m5lw<D7WS`u3>2)t<PvFA-A2!g0$;1Z1hsim4#3$E3
+zzn2yE$^<D?3HjG>dvtGceyeWV+^voKb%lB{H3rJ*!BLf^X!Wgt+!#?sW3}6X!yIRN
+z@j{lU)P8fS5SnS+%Y=bu;m;04T32K0X96G0W$KbZC{4@eadm%J&kQA~wSG;9oUku7
+zB}C$sqmK3TE#g~mD9KgFvysPnZx!l~Bse?Urp8Q0_&rNdm`~U8X}RTG&@i~H1u(&Q
+z5nxd!z0+aiyUi!cG(Iatt%jCBBvRclc-R&3H>xcaL`PI{B7Ynp+sY8`U%{q>sBng1
+zz%OnE<#Gcj+S(O13-J3vSEs>RHVZT@cREeb?clibw3>`CLo`%jS|_c6Vpi3vb6XlT
+za(<c9eozS7^ZNri7-`@FOu>2HPfu<RS0XP`X%GG#Uh{^84zqGw&u?D)=#5*FB-I_b
+z`Wu(;);=3voHPPNo*Rjnic5wa<W*<=Z<vCsKl7a1;?M0v2_q2RL5oATYh&br<A0V+
+z&C-wlugg<xKEzxqSy^w4aP#`je-G2CY%=@5uEwt&kN-1FJsADZP}#`2+lM#3I-|m+
+z<JbQ@>LVJ{;x*5T`N?XzH#`c=%i*>njgt`Bo(i4Q0{)M;>~aP#o9ZU!2)#P|OW)T0
+zCG*u?UGP$KX)GlXSL>viRz}Dd!XRO4BG&Hlt_bP==$jfSLnWyuR(d5`sdI{d7P2`Q
+z>&<W$CJ>OX7+9C(ujJKBWd6Tp`53|fo1Ld|Whdo-s}Y*_>i@s#(e|B-n*QG+qPDJ8
+z{=aa2#YFzsax{X!`p*D&9{%mWz-1gre)<0caq-`<3Zwh&;{T$$+<kuZUsTgur2li(
+z7<v%@UzfcRviE;J%dZ_8BAnzGJTJ6)e3xj;k^DJ#7SAFDYXc?g*eqncY8La6{OQ1|
+z`Y*TW;M3hMDnzt6E8XsdN_xD(bwNN%q=3*o4~Cj!P&Siw)R4mbf;V!}cimy6ZQYbZ
+z=ElcwJSwHo{#df<)9RZMmNR~FHN0?z%=%!b+NSc`)rXGkGX%S7%KUwW{WfKX_X#c0
+ztg2f&8-ZU7$7kuv1mQfiYK`veKD|n#`iIHBF{q`j{SB|bM2Myfs~{pN=vK8~?|H-B
+zuXEISy*%G=Q`Iz~m+E2Ng!B75_{*D=jx)nT(@rT}Xn8tb>Mc8wyv<sw_gvk6TH(pN
+zDY9dWU$CaSh6_f}FP*LQL()z$@Ll`dM0H7DP(k#nQ0c-ZPu%2Ofc<oXPm0ts+xaTm
+zB%i<H>3AC%m>`Sj5*@VPsTda^Qv<2*rI+y(a~oAJCXt}Aof^RU)#ts15&)vlcdqhY
+z{o<db18LxF`|h}NFNqN%7nu03jvSKw7o09=8k?s)?57=wD%;5BS1mmDpj^g#cdf3x
+zx;gF1I5o}IA?EFH+w&{45q)U>g8n{Tp7Cbn`EMrvIqvN<ojEprsl?&5Bn^lCi7970
+z8t4AHbmikLf;pJ?PaJE1;vJWL$%<Ei1R`SR96uak20p=|Q!*Y!sE2UE?TgM$5gK+4
+z|15oP2&?2;;Ac;z#qpWCm-B-v{jLhn;s?yFN#~t2c<yXiqB7zRHrn~cs(OV<mR9)L
+z+sr<9p!|~<9yfc&4f*MN%5G+5qM}%MQkd7$uEAmP_vvM07RS5UQkkM1|B;}>07br9
+zIPvy!(O{Eg|0Xrl9mPJ_kCcOeN=t89xP1N%^kG!wWc`*Inii<q@o<ojMWydhW0T=?
+zlppA8x)BIr{#W8Go1#~#SEm1R-M<%GF(~?JiWRmy+7{M}v<dnYIX+1{RugbT_cQiq
+zCW}(vt5hy|sG?F^+at%h-$7^Ln>QlUhEX<F(Q_JRxeXWmgUCE)Wdi}kIa=8Zz2mjC
+zDM+A>eDeeeFwHF62^@rXs6jF0d>1lh>6<+mbl*6PA{5bQOC1{}ndjJ1ZTc8-Ul;tb
+zrT}ZAC|g0kF9&^dS?1&2FYoV}M+2`@uJf<!210pa^`XHJqme&ER{^i2IGdmmqXLn<
+z7k{<)<d?>G_&16}#^sG*@AU=_(qA>@txmW9hPPGwcdkIv;t5ZEDG(lbr$r@TX_0}H
+zs4qAC$_T;6KK^5c$D2^!cK8|{@)IIZFKL{{`RDlcHQGnxP(n&Ku)hfkoll_rOi~;8
+z{DMeu>hTyd*`EdUY*qJ&T<@=&89e2pMOsm`);VrA+`pDrqAH(h4<H)NkB)2xrShc|
+zydYA5=GY#Ev#6vF=&4;WmS-N+sP>rUi<<+iD@$?cx&3(*J{%BdO(ns`1~0d*UiS`)
+zJpntr5_Q%5tW}=M%~xD3f}+Zj8Ns%i(?9*rF=V^ywo?K*Z!aQa-C6y=bh$~<r5mS`
+zZD*j`hAkI=N&RC%EU}Z$`}`%7GEuliDbm4J4~b$R=^9dfJn`0O1NX7>R1zTcYDQmr
+zpjcnpvAw;=r*wR|oPgi>tK*5`^{yh7Z3o?XQVrp$lE{b162d!?V5ZRyJooZ>naNSg
+z4x00otScKHE+{I+Zdn9mW|+H2JYZ_r44q-aY?+qO!DsWV(cJ^NMxRkva~?zIidcKZ
+zF(c#(lXya)>t<k8hWxi<+z;HWr904~eEFHgpNn%xzdgvK&g(asK~}N*M%iw(bNfWo
+zqPCvB&tGOocmJfcs)gUw9KYF)l$9)iI7x~Ak5Di<fl8bWDTQ-Ws!i=)a!7eRzap{9
+zWf+mFQ#_EHqVvgmii0jRO^I{fcs*YH^X!VQi81thrbtQ6*)M|*51d7IJ|af=n6Qxi
+zntmhsE~@laLVlJ(h>1x4PM6y<SdLm~u)Iatci$IrIWr%xRun6=fuE(+x9pGJHvyZV
+zla^;{tKRx0=XUtXy`A;27}L9U9l#V@zXDK^qV8T<%WO1p7&WyiLPK*Ry-d(C0{d$s
+zr@_BGWGD`nOpS-vTb(04l&X0}o5w&st$d}l_9EgD*RS`rH7YG6!_Bx2Tt7DjS(~@w
+zoSH5&zVgT%)9eGa&s%tT3-he0?KW2^*9(Ek7p>wu7HE=!T?e?%yPjwS3W&mZD}S#B
+zdkYsn9OID2XHt%Gx_g)8mq5CC%TLfJQ)QJPd~xFfXob@h-ZFZ;r&c)ZmH@}_MXLWV
+z(d#;sxKw;SnvKX{pOF!+>iglR9~|8AaaM8E^uny=SA=>^pgUxI=O|i2snkg!lZB0Q
+zI8VIasgK`2b7v(v^4eP9SdebsV_kbIMZL(8evg5A<A>LJyw`-<A{z^r%vx<{gulqr
+z2Nl5b2Y%AIC;RDTTX|NRI!fBQ%Itr@b#XNr%;V^0Vcia<#W@~zL?m0G?`|Dy!U4bj
+zGw(|dxne#^<-%(2*)f5g_@q|e;lLR<v&n_hkT%?w1v5v)(Uz#%9|PaXx7%)>!M4+B
+zR#%D=@4m}~J2=5t;V;hJ(wSx<Zkk>t5GZAQM%l8LuOH#eWxn*DP?avy@Ob!p_3w>F
+zv;maw*|JF9=UB%$q)(-NVO57BYQ<u!<;bjc@P;Jt&gRTg|1_gU4(1%$LVF>+dp##I
+zc)rbMd0?d}v_`%Z;;A}y%~cognn|Z<4;`Rw!;rtckf+Slp}dg45|0g$yQwpmVvY8I
+zI#+04sGjSJ6&=faBfF*Bwld4SLeG!X??fgGb4PP%yBd20tc37g6!tk$K-7r25NY!5
+zS*DU-*RIB?Me;9K;`6~bZI4|>Zqs1{wbd20jj6Yb8UruFYv>6nmtzKC6oU<-ifhS-
+z@m>s`x;w@p)!2<+@Zy?OLSWNQl^<DrU5=tZj;fuF2#c^5T-v34i=S9w=F*@dbD!_M
+zpSsJ(QJ&s2pwnn+gn6yQhO6?%lwz=wC@Jq#5>S%%p>T|R{N&EN6tOsULdMVe9c-qj
+z#papt+sfV{A<6?pOsxY?(!7~ItkS!ld~;GKq1NuddsZda*aR8=sZPF)->t_$aRnQ(
+zPZXc7q@o(-9Zj1)&c<RpzAjJ`6Po%ZSCzOHWg=Nf3F+WE+B@}{=Y-&<;XO9>QSIJ0
+zHyW_wD_H?@15LN74Mgw+K{C5@ZOnYg4vU7U0g@-C9S7}D>Z|Lodcm9bS>4v;LesQk
+z-X?yX;xv9qh`MuJhf8Uuo!&F=wm2HqL#`1pgXK#Ae5ab*n~h4`^<7EhJRejUr_V58
+zE)11PNi+!CIvPZ(@m6=h>BU6U++R$6d849a)E_Wt?XL7!`j?|>sobpY43OR_T)dwt
+zKo-P5@Yh$(<k0q~SH-QEMLl|lGqp$-MEep%FqvrnD$-3)b}VP{{MQtSl+M-R1HnMr
+zsfuHBGLBb5Vp^Zml}>$R>Fr&qIDu74{gj{K&n!5HDhM2izq<ck@*^~{8Sh{&!r$jt
+zlG~^LC-d(2wI2XUox?;IWIW)tjG91n?}JX$wjKQ{Kbpa&wGlbklY3CGWmg@5EB)@@
+zJ#TqOi5>4jwO^0Zot5yIZ_L6~rO@IN(!4Dj$1pmr!xNvSKCl!|?Ap>|Mpn`h4;@Iq
+zJMG&dwEcq{9dC`8ydrf~SL6|pKT<=AKXPEF-$;1=DvBO1m-gD*%r&rrUAxhe&V04%
+zidLj&v+W6Yw9vu4XRp-1F;ZVG#SpF@wLl^8b!lT-d5<gM(hq%|`GrsL9nBxRBX0um
+zPJF@5h4Wo41~9b2J##SnBIHaQ-(6FlPg_(MPA2HH{b9+f3~F-<p{R^RNqt^+wM=Hh
+z%q;DHJLOq8sml=uoY+^!!*pQ88BMb2a6s>=cNRjr8ILrov8xYU3KeKxh`J;TxwPt$
+ztoN2uMBRDTzW@hjsrxJ#MRTlp6wN*NnSBvGq_tI3uMW>*MN7J0UY$7kN6LHqMM`d8
+zR~tvJ##$%22!=Kn-X<XxYMnaT4ch}VhMO2+<-<+n3WGPocyMQR8EnAmYP1&>5EQ?D
+z&xLe$Y6y+4c-pkTv+mol9X77M2{eHER2jNtv2s}+j(JPj-5kPh@bR<8&2O_p;aqnX
+z-gx8Z7(R0N@~Ug44CNXk*(_?N%rVb`TeRC+%ks)yzL~jR&6Y#4yMHH6jBg{pvPsR>
+z{55Q`>ok^d+-wL-S6-|qu8kJ(e+llJ*HGn2s%N=4pZ|?~B8dp!%m-<necP8t(=oXb
+zrsm%BA1X_g&qZ?*-X;0!zv^UN|7t3;qM&W0IIl|I=_SUBUS{+4qitnys(*{V{a9J$
+zazFzY{_LeQN&&b!<onDNK|Ojh#!M&o`GfCEZrR(I(;p(2Kj3|_Py1u3DHML}juK_X
+zn~O7kRS_SkeN$Iy{93`AE|lpw>&~0f_mHAYVbKch;M6;Wp@VBLh+ZemTkl~ik(6bM
+zAj^h*rTy7yU43pJDcX5t%5tvBidl!_z`0#k$y4!=>Ac%xkx;EOJwASM9&x*f>>l&l
+zvf9Oh+bEddXV!ykctI!8?Cl5F%5v@%-LYM}+vf-)_0Ei^y)9DxG$Wj2KTRQP49hGk
+ztl>nJ4t0&ng8hGOy(*uv!#faxjOMYt=;}U0;i6v=j%3R;Lm*4P$uEhWg=C_FinmG?
+z{DJHm=!06Sv-#mx?d>X^ovL|^Mq($d)uZ!v7j3@@;vEB#-!h`hS~xrSBO?DL0piv)
+zBLB_VHQJR4X-FGP`|+FgSjtKn7qr!fPh~b)zFFld`{X6J=M&{)E#DgM%D5{2axG3(
+zvRAZm(kbb}Rof)PAeB7OAIixWa6k-piB4ibwmt=)vPN?}0=w9=uep6R@r%a(`eFi{
+z+H5=I8w{82?n-N+Ke+=#>pq)jDs`L24}`d(b>xj0`NrC3v3?Ei7fa}HcwjmxqTPGD
+zb1)pAg)d-fFq|od9B;g-a;ZbO3%!+P7eU<&fi=g150HrdT)Rs$-rZ{w7p6xpI2(J0
+z#i)+@a8!pQ`L=J@SH*ejQa>bJB69WR$Ys`uoY>Ztfg^$jCl1L#bKH%Q`vp8mzTz>p
+z!r$?I)v)U;A{|KnOW~xwq{~eJ9$yXBf?AtH=flt@y@4^v#rJ0&#qUs=W}!p8=r#J1
+zszK2w)5>v|;zo9Uh64t$R3|(CedOFt3foc&8{M-V@Kayv?f``bpv(I~&roWoTj?uu
+zCe;xkDBxb+oh@wP(cO=WcY=<#-=IN^fxXUkY32+a3;Q|&V~j^p1>eQyH7r4H9j1Ia
+z{a&|kKJ{-=++aQ~yGmjjM`ew{H2X`(*{f|<SMx$;EyaCK+11RorgF9l+wj!|)=MUT
+zyNdU7p|n9G<4hNO0*#pWL1EL!dsaMU6@{a6y`w>`jKZVR(dM0kmL{RMf7ZBrWD0of
+zUrqI+s)uKczL|j<fiHRC09t{Nyp3pjgXt(qqsMj`mbBUsp}B!cRdg#Lrcmg#D660-
+zJCkAecfYe{zeDF0>i95=rP1l0Ehn1Cn{9Hz$?c2eZeTn#;X}o{b#aIIGa$aUo4SYp
+z%}lHM>@GuEnPG;TN4$R}RJPxhn~O{8I$K||v9#Uncpvqg`XvDOS=Z^A!FM0kslfb0
+zDKUA~0GUuX2*he`XOni1i&u*s@&x8wR4-NgFWWy(dvrAp1g1;(cgbdMeQ$;40^{zU
+zAZU92#*crm_Gl)M(SY?&^EUPdvkX&fB~ZCVPy}dNucw@fSxv|Hrv#c4MwWVet%sDh
+zr1Y;-X_$mNn{ebA+t1?~o!ZYVl#S_;@98tUi69nt_QtM+?LPbDQt1k-CcAhi<$_zU
+zj?~URF-45(pSdgD0i~#JennQMNirExGrA2JbjLsc#N0{P2|%jcdS$<O0nqw#^;5;C
+zmHGCrg+*RcEBtl3benx6+|EE<Lt(#6Z=P<$+L-(1g$~@@EY>8K#h;$Gp-)7SI+Ved
+z$pHPx2xbkSVmf=sZSc*z+Z+KNNn{xK2>8)kWwUbD6&AKB5>-{(yt~))HDXa%wFwnq
+z_I2e=GQSGy&=Jw8DcOMyMm?A8UVr(h3EL7D_P+NaaxpAyjED+)ImYOpabEuH<Mr<m
+zy_`dS>XIucceW)jenKR7{HaslMl)b0mfMQ5$HqX%tSB=+6e&M9ba_~}AVYP7fJQ4x
+zq9SOj2of)8nJ`wdl`XBclkqjsK?q}qo6>~NJ<l!J4wz<)#^ZXiaCBduA<FmF-d)bt
+zVWRN$ja(Z(PCw8j_@Qq7D=%rCd5ZGJ;RX8|$(Dt2eQg6`8Ee_(q(rCmFullcW7qcJ
+zK5+FTp*Pe}$&TOi_up+*@Kxo6k<z1ghVqo6d?JGaM8(=%T8+MO7nbFzz45uRagF#m
+zhVn@zzRTR5viCrFHcQ^*p*W{L_)pZS^MZL5EysrSg0{Y8y1#8G>HH!s(|F70MT_Fw
+zMe(vNhl}OLufk(Mz#cuHT6U#wF@g+*Dl{uXw7|<3U%izy;ja4oJxumhy;njkC~Q^P
+zc}bi@rt6r6lP(;-St`bPMr)sVdbSZOf9q#sp?!P%9gT_lT-W$;cP-p4Ebt*X8kWVa
+zxuZQ=H4?p*;U=1x=(*F}FFz996WPM7S|;vi>GbMU_s!UXYX5u0440%tWcyqx4@XU_
+z+j-Z%F(1JPrnS@z-d+e^FPYVvqaGjhp9Ev{QM9FGeN{WaWcshB0o`BmT2AbdNbO;L
+zc{~t<E)JVI6KHynW$UXLoCdEa?Jgii$aS}g5uqeQ4NZ@M#xTB?kPUu$sI}XeMnL@T
+zn)O`yWPe*y?Ko{c+><+JRHw8ywYm)1;+;&G7g4bKwq{iOWC*N?WRK1#Tot++qm`%R
+z8fbALNd5W_F<kxW=EP_<3N=to{k2T|B$u|W_imW=?2U5$E?z$qkTcEt=3u!FLpth3
+zI^Trkgp!XtC>V`RB;iJ&XU_6F)s1%#UvH6~3oFAC7hX!b3zNTrJwwm&li!F@QCi9}
+ztZC--e3TJDHlxx{+5Gs{F?|)-gJ2Cx*-8g|<2rY@Ukh19T<LCQbtm~-;;0)@8n%nC
+z99@`|IyJ(AVQ~WnsSKdldqjB+<fqb;<LTg=dd23X->THgN~WoE)R(K0On=9%l8zB=
+zF;EcxbQ-?xkw?ZfY1~}5%PQR!2K8Hj6wl`ipk=PmcXX++zrSUG=`Mn3tZ8#_dKMUG
+z@b1BOK7W$QV$cpQP%Olu$t8V0^?=AJxusBd@Jy^v^_}U^AHxX8I4euKjL!)<XeOA-
+z<$#BWmcf{ekqLtc?qt{Lr9tKK2%n6<d#!%BW3H{)E`_eGQc9j7x}CT%dIPvz11cMi
+z1lDl7DQAy3Ud=uoeshoh)rU|`DUj@><vABcf9<g<eCqK>oJHWWFRX|B1(uZEODGEq
+zKTTyY7uEuQ18VFHCIHKjze|B!DKekXGxe(XxkEl93jJ*)WBZdE>eEy~0MdM!lwGE3
+zUT8?wFvr1`RDf43rIO3hN&Lyx%OgJP6-{A6J=mK0Z=wO3U*m7<@Q&CWe{%NJk0g#9
+zgya%PwS90<Zw%!lxO5c;HP5L2@bDnzn|RVT=`@1JIc^}cr9aN$i{5@Xw7ZWxZ|!5&
+z8yGy>p^>S2y=OUQN*!HAVdCMJUy4t!YIPUZZoPH{&!HRfA1CO%GC-)FA67U+u06dM
+z_oBSlTIMOhUu-hf(Jo|x62BlAQva{gnjbT3E}82Z5mY_>7X`YUpLFRv<E}S$#fmtm
+zxz47Hr2fJOucAuJz(vyC0XiAxzPW{%Sj^=YY@QdBGBdUY0~)xauI}6<I>tV_fOt0X
+zhcxCF9C_m{$7VGOR)xOB(67|gGrL{hlK`~Q$b4FKhOH!<iC+HuIz*yIe!|Gh&%=JB
+zoRI!XU#TxShHs_geIlG-w!K0LCoZWXwdMOdjX`WzW5z$cDc03}f&H)S)@eJqJ(DTp
+z`L^}GC1KRWs>EtLb0v}=Mg>{+3eQ%xFAQO#X+0;=I@-yDvwge;0syN3+B70-l@H4V
+zXr$1~qKcf+Yes+EV<v;edPQ;cMTxq%7kZ&7)v6cImQ930U$`l9#FqGIkO+4=b4$q|
+zFMEuA_i5C5vcOVo#nk%e3@-m%e$`RGRIC@SBfb%uMc<4o!i(ON5xlRutcG0DQ(p>%
+z^mcXsiEM7to}kWN&N<3S&pygd&rzIU{Chs(XOq713&4{Xm3)jp=H^c@rzEKgc=a#P
+z;%YYOGVZrm+a7P7$eF~<{8va$U{G68fl*+`9NST&h~gL_2W_P;mxV{V!MxXjeoxY|
+zZ9_)s{w1=hWLrcrGtQ~KX0>z42;<O?T%Pg~&m3dEE!$htHe3d|+ACj*)cYbUOT6-j
+zlfLgsY2tYvRS~ElXHOAQmcivtn$te$Rkj9YjdN>F>TSf4i|xu=o)Dcor|Fts_d-fa
+zl>yU3@>etU(0%pH<drn{p$g&5mV-a_(q1p@=XLI>748MfWltj43EYcq4gZEk(b|b$
+z6B-peLS`6<AII4Nl?*PW{q4l{7{}M^(?keW>@^R*3j-#LmcMz@Iu+Y0d3iZfPuX?I
+zpCn4eX9}-%|B+sGKA5Zvg#7z=CuNVnz0_3vZ^+I4z>O;)J0J%l1)A%;p}ijh@3i+(
+zRVJGbX`Ai-w*2JcGcrxWC<%{{ZbGm@)l2^~Qt;2hiXczLL50+`#p3Ghs-X7K{OrO)
+zgF>{HgYM1cA$)q3dRKsOKTSleVfR}W&h)l5gii18beZa9<(|J2b+Mdy<+RzdZPP!`
+z=!~lv9sx!HPR<pwSCqzlg>=WHv-FP7Z5}K=;5y?RYEi42$Za76Lv%o>H<g`4+2vD9
+zC>m6V>nGX8{Ml^@alCz&v`8Cao4+8j8kD!@V2vq5${oEa!vL1+ZbTf*K3nyQEVs~Z
+z+^pil&#L00Gtg@}&<(qfWNA;@UO$^@=@rMWI$}pL_Tl8Q48vs7(FIh6G0k?R4981$
+zzmW}nk%6Ra6%4~kf!{qt9RvT-G^k5eD%^hmhqj(}Rvy5nVtBA!4L@ur@-fKq+qOWm
+z5b-P3n|bVKN*!du-C`8x4%8qe{S1A147l-{JcazaUA`Q+dmJr{<$F||a8gw*mOVRp
+zCz&D;a|XuxI}F@WBm)Q78cvP_lMSk{wmgS7NDWLYHXMr$#121Nq{rL(0epi$^2F_r
+z(aFz3*2bwU+_SDn)i1dpp}+96KTvwhp!YoK`}UW|-k&ssWE+aQIIF3EICBq(^zi4t
+zpMSyeCUd|Y|E|1VwGKXcwD7_N*YJ;0_S5zkjX!k1MdWyswm&h!TkfJxqiQbec<lMD
+zsY~S~s($wmZ#DJdL*IwQrN4S}JMb=oE`?`pD=-8!xPWg&T?*?j#a={xi|$hY79lH(
+zn3cvE^sXQ8ayjw(`pEAg6c_Z6b}&SgpCWGTF#fHyP5{BDKO85Kg%VHuo>h20xyA9b
+z7h|6v`+@v(xsLah@b+oIBblJHb@CIgD}sdY_}MgC>#F!AMEdWSI5)~K7xki(T3uf+
+zM@&5_9}vl_e`vnYpCDq+ZG%e{H2jvvCbuNoXKDNG_4BF+qg{y)9*2?<8GK8ke`xf$
+z^2z)+opl3can0FEoKT11Ps>_Mn<_E5aqlE!9xVkCu0NT0wNlJ6P_d+(E!a%y{;=r*
+z`QPWQ-;cBL{yy{hZuri50`K2r%-g^>4_@FlJrt$D)p$qs(OS~yDaG?&-#5|(D5m6p
+zsIPmzp;~z;a7R>yC4WN#d`^cGjpf5&v62`p-z_#7i{-=4_kXMTLPJ4xj7##z_zPn*
+z_2);I--gyrF3LX1*s?YQK0hY<X1o6G4J{DY>RU(`Q}Q4dTUCkeyu}9Yb^6=^Zn>(8
+ze;1edzf_m)bf#$%w-c`{^uX=|XQSh{19ySs0A16Pid7OiS2~_8;3((iQ#wOaaKv6g
+zqi^Wbz37U7D42PhQETUE+$D*tgWN29Gw>py6kvD<$T-L~AH{anoi2RQe?7&G>ABRL
+zuGuCvpuCWA7O4FrgLasWuBg5(yYem(dkGX_%&%JRM)6fHp$*hMfYaE=$)C;|R;|lo
+zEC;Z!l3P`|k`K<LC0%`yRDU&j7zQCFOOW;iJV8NZMyWCs$#5%U<+{_$zjW1xZ1qhO
+z>50J;7>H=o9M15$Ot4)t)*P@<ndw)d6WpeATuHFiWV25tQlS(j2vG*Bh1oeS`S&jt
+zu3BgC)$h*2++W?&k&d<|W_pzB%@rW@LhSlm<AXd3apw{ZYN8SbTVvxra$nB{OVkq1
+zq<R3zmouam<_<?itO6T(Rvk18>v+T?90%3Q+bpWb1hPC5L(B6%Tdgw3d&Jq6hmU-r
+zwO~E#;hqym>CLAMOZ5BA@u2jJ*e#6B9v{3c)AKs19;^QD5v*L!<Y2X${oCV*V>!Nq
+zHSHI?;Q+qj+Yat~#@`5;!CK7A;eUDD!_hS_WV&h%tyBHuEYCTTCav{EAeO0qQI`LY
+zw)X&P>igP-fdHWw=^aEtr7FFHR7E-nQbX^(cLGwBF4DWSgpO3HiAqsG5JGPO1SE7Y
+zl+bQ||33Hq-udo#=lwF7%$%Ib&RKgs>sdSN$=T~DI16siA9{Z+4@~zOkpCE5$J}nD
+zv)PD4{uL<U#P4hMAYPIva@>5A09QZ}uY<Ye4&ZSb(fs#Wp)`J9{V0lp43*8eU9wIr
+zY6(N4ET3$$V$lj$WMUxKSLz(`#*ce5Nh3^>M92i<XQbrGN&2M71O5hjoAeOh04^$Q
+z@kIZSD2JFG@QPF2Ee7V6@tDG!J*~-=R7w5;PArJYgexu)L>HtcTNmXI0?ZPLgSX%g
+zjjG*`z;z&&AaXaL=l7t{Mw%eFM<c^7;1Z7OMHNOw0p><NIHzR=48n;I?~j8SHwy8s
+zVho;)GZ)~le7~YWhGOIW>*rs_oCKOuEana%f>jugnlUFc0uaC{PT5rQIKhB|jq0XE
+z$}5T<8^h$L&^J-oLjkX7yEHuMs1yfpzl1}eMHHzYKu%F;oaJv8BMG6LY-G4!z6RfA
+zBv6YX6Q)lB(nOKP=i~FlJmjQ#K`;sP69&lQIYbXC(huPVgT!-O>D5JvA{(iG#o*}@
+zWr67&HeiNk1Vy;)jTCM;EO4Gf*;%r-sJo4HZh!{x9#X3ju#11Z?I|%!dJ4Wq;z$z7
+z<Hy6Oy=cQoQo!p-{PR1%6_aFjq8selRUQuk9AWJ?HF&+iEtn2c_MGlL*hjo=6h`tH
+zJo<t4uJg|l_Qn`OPI^&7@9*9$pE*Q<6ytdJqH2`*5}!~_-BB__;(y~L@WWxVe|LWz
+zOG|>|<bQB_6g|fo{r~|2-^=2&NG9M^!emJ}WiY2S+=1vL5MB<^U%n+7`kQOnMsQN2
+za*>bI2z(UTbI3QNgF*5pM8`_F5AcU!B#C);7FbiM$M`^OvpC|>TFBr=CO2GF5Z^4J
+zC13%b4+72-cZ2?0QzvXjQg(s7@EPQL$<H`gQ<41V>;(V?@Cnjbm+<@CPn)b@5hcmS
+zS5r8K0)IJn9OrBF0OyZt!dcf*MPDS&-@*LxQH-qsbqj%Z8kxQ#a9ocy68xit)C=r^
+zWnY4jm|mNBLP9(V4T5b@!faC%HHemx{0YoNnEeF~4g8)k(+k{O(4!o}$`~djHI{Y>
+zKPplT0h;0FHIg#w=P|L0ZjL0_)JXU;;jyU6|BGKO8_hQR@h@Q!UND!D%nL56{O-S_
+zn8va0@2+L-DEbS=FYP%i3UODWoBsx5{2wt^N=y$NdGnb}u;#`-1lE{}LV&v^xCsQw
+zO6ECvhA&+S^8i36+&i!-n*+`aYOu;Uy`<6;4O})w^>Jc9!oOflD&lrO1iV}#^qcY@
+z<`OXyszvF6M2B!};X%T<FYq&9cESX9(NGX`4uwOMI_$+E;}D({Cna`K0GAc!;K#ox
+z!J&<|2gN?A$C~aK1*`?Iz|<OvWhupD1Z;GGZPD&Xu|^A4U<@0G_b_@1Bs2>=O$1o{
+zXTXxu@D371{uQ#4OLD}$gjJsr_j2Z$4h1Ah{}aXmjeqAV#wTDWUCLP{02L{7Oo!Ko
+zit4{jEunKF{|^xN!yo_t7e|#y{3gZ3fMHmMl4it<1OFepRhV)F_-|&)xF2nVWJ2QZ
+zzz7?u-SEa@MnR+x@YZrd{vswy;|w!b8JISbpbLAyE9EZs_`(GUkH;=r@KU06;E%n1
+z$hD({z><GXVlt4fC1fG+|7vG_{@*y6F(T?e>?GP4QU34kydeFbwv)QFVAZJxCISOY
+zgULbMv-h-Hu@p=|`!5EL{tt)70Fa#LRIGUFFulWvl7uNSG)PTOin*`pXU`7BB<V_7
+zTb=$(tX^36lhtyv&bocau}CCDN3n_G{6)dd57%Amn4BnBO9(V@jALGwh-u)vgK6%?
+z(2nE!(eg5ui2TMgFJbwO`#%L-Eh&PZFTwvCa!ZKZ2o_+jAekVVT^t!O!!BVcT)vTm
+z73V*F>BU-rV}-|d4*$!@`!rHu5u}+HeHi5ra4{_SknaIt;|k)CCFQOt+4u(hIN{$m
+z)|Byx{LBMy!f;Iy>A};~H~)sMjRGk))0EKse{m<&c0@*=?gd~HJbNtvpNWQa6MO;U
+z8UhlOQ1Ju!V9y&#WC61OB3{lDeE0v3d80-$DgO5?GxXIa!s|{Lx%Rhvvq-XY`T~NL
+z7+)l>7yA{-cSR`$$ls#VtlWB>gB<myf%fmrD>xxc>-H}u`lp?=4V~$6*M3;$<!Qt(
+zRLa))!l5ZK4)}xDqhvMCL5A;<_E(nS>{b0I8G+9!b8&d0pMjp_+!bH=Px9sIW%~#F
+z{w++w=aGkv#eW(Q3=kpxc3rCqkE&kPC8hBE&Wz4f3=^6UHG{B=7;#eHQ`V}hbe{U-
+zjS59vBhH{eNMsp%d4&3P5eDE7jCb5G+poGw#^9o<(D+j$6uzWW&&kW;4BQdY2n`q7
+zDedG^@e=X!0eu#|b%+*33z}_^uh&o_US;{rU)M~R24bw&P-&^-uCu4u0}kPCrD+vu
+z1)^WNc)D<)*brnWMwAIk62*hnB;(%%Ma+E2gIXiJT<(dzW!9?GtW$3_u!WFA$f3!Q
+zWaz&~A29ga$OdM5G*EYlJ9NgN5OL2%#)Sl}=Az>wgsMX<BjgdHF4F$O{zU!{{2Bcv
+z{qg<p`O~5UP)`5xwLz#t1TmruLIVvn;MF@Q)vjFDEPUFNn)j@ySUMAf<Ijv%LiwST
+z5lo19XsYh*)52%r?=g&MZx{L2C{qnN6}hK!%t?U)j4Rm7%hof~m(i6m7&JI2*Z#1q
+zET?u|P%Urs3{#p1rLWFpRwJ)c)BVS^iRGDQo2Hr;yHpM6vgoqt+y2eK?Ei-;T!#uk
+ziT^cE|MwS6FP5LDJX*1-=cwmsu%)}DUtIE|O#WG+j)kIyhK0&#m0%^kZniEdR1-Q3
+z8HVyfbo7k%i!19t)K|(YTPUM-XY^<EW(*{Biz__J<<*x|uKCcxC{n~If&pp<5z<S9
+z2pP2NTa|j0^*#?z#z_0ipvh7Bh<1n!#M2;9f2A}8+6C!?hC)K22l{7vD_B(Z>c}Zx
+zv!FTA08~686%r4LhpIz33{v$KN+X_MCxs+oq|lP+0|X612x6t*_W@<dF{L9=SyWC4
+zu`<wvR6$mBbquByHNSa6e;Ue&WihL}t7(<+=o>%^p;iV}tq#44h1y0jH1{kGfcKj%
+zwY17A4S)vmy7Bt)dhrJ8y6XDsdY)A&mCH)uxt*C95`Px75y}-Y16_c6>aLXkGh8qf
+z=$n8Mbtt87l^#dAc9nx(GgJy;?!xX*?=S98;V+0LM#-Ww5ElpnL@YuT5r(pH!SyF@
+zP3wH$nbcX(8I7U!zmIlCJwmylL=a+zl>P$#Z2ofo0Q4)A8p;=;h3L~SuIg1>dJ&%9
+z8H>5ont*xY&xfW%iKA)|Gmr*@c7v6Y-e=*7oiP}3e_k{j$^*rYvP5+u!VzbXOXz_C
+zrS7eooW^w&h6~M&;zC)Ys8NH6GK3DKSYM%xy(~goPWxI0jgKa+X3lwpR;bQ(DK&+z
+zB3vU$DG=-4h9Xl>TlK#{RuM$i$)@ql&yqi=8SLoq=<OH)b%FYxWt~tc!Vd*PQK58E
+zUMM1z2I|3oiJ>=$E@%eiOqVbEAiWHC)bJlH!3`02Vf%M9*XjH-o|_PAhylbf#2dkb
+zs6-4yM<K?#`34Q;(vTwrJt7N%kKM_;20Ei_rq@u>R%xlORo+(GR$-~*ub%<=h6q5=
+zx`es_QRIje1PinfBB3W^;8__^y8P5%uS>s6ugf4*H&j1V&$HsR^0f4{;<W6vilT&~
+zd|A!k0H|jGb^ez<!vC^p5AhSO*Px!9B2F{)qE)vJA?zY47VT0tU8<&E2KkBTM1&wP
+zSeV7lN6n`(Yr3nrzvxNALhh;i^PYnFq!5BuDfIK|7-k)JCHH4qC6=l^c_HMjbZAo-
+zSCl_O#f8Pi423r26?>ES!d+dfw5=+jWLa@fqbGg-O$e40(GD&QC;>x;R=!piY||%T
+zD{m{q-)Yjt%0<B?5`}|OM7bME_*02x=Ba5_QIt|tP?S+rrIe(Ur+iq}X4C44$x~ue
+zX47O-XVdA)kOqe^_}@i)pzfjM5Z@4?Py@)Bo(S~Jph};kM7vC0qY%4=mvjt97)_0`
+zf`~v<^*PGqwMRcV82CayA!JefC^r-<${a<52uAQiPoSg_QfMON0@07aL)~%V@_*>h
+z<S*q<fPRR2j+#UmAsivDkR8aFzJ&hm^Y9`Jp1+7cDf+$(HQFBa62*sbM;JpJ^sK5p
+zs(O{e6aS9m>g>+^&UlQVKL=V46@j`$01$n8l==!K5gOMCAqgQlA+Iry(GSoxs4B!5
+zWDrtpkZN$NEvIxHjk%BJtJX&AT_bEz&s?G~Vy&-3-eSnnqOI>k;xLq`c0{E9n0{Yb
+zgw8cMBn88b=0%MmP7qd*KK;nDEIlFJVJMy99!=KpKe113$kIw7_U^xsGM3c;oz?zt
+z@%c}5c0w$mOOPd~9Ha*l4!wq4Lje!~v|VorVd%mvRw$h#{aX6Hbdq#|bhPw4>9-*=
+z{-S6K7eaqBe|~>fe_6CP3Lj;G_-CZ?8XQz;moBT1mM`lRJ`azQPR4NhOQX3^WT-C)
+zbx36Ck8=6v;Yk=tvBW&B(b7%*6G$_p8R`r1h3e>T=@pm%s1hs@EEoK+X~1AW3ekkb
+zA}SE}hz$fCq6)$X)iE&EGd3tLtuGCMxI%XzJ5ZLtdAGRC<HJoRMixzgazG^_1Q6K}
+zRYW$_4BDXEu4h%zs}^3^S%@J-YoW{#Y>0NK4D>*^2VsF&LdYR{5P{H3$bsIO!Acc-
+z$xU)d8g^Nsj8aD^BfcQG5vfphXtAzBMTFX4sWYSi6Nn;4F(8DXR(k%`si-P?108(;
+zq5*mzVSw<2R6#2cB8W)czKWZSkSq)vIuu2T@I`Py74#x2i>hv(UT0!hT9ZP+rrLES
+zk76D?EQUH%$GTL+>3xCz!`;lP$(7R;(`D0D^U%i#LPQ+G#D&|%7G;l+bfIxEKy4r#
+z5PXnPsIfj9BFKf*MbiZj{RlOMaD~)CX7tSr8p?R|7jzf&8>*zC&k%NhEkIi3S^;Q6
+z7j;xJLK~5fO+*p~UAms7|8~6`v<K3zA8K%^d#Qh^clj@hje$V_e_gQr59NP_tE3G&
+z>{3t|O@y{Z>7jTLI?!UhR6T_%_Ntr0kZ246S`%e#ScodaK>HCH2pqJl3o)7&&4O}v
+zd59)Mb09pSx8+3@e_vmsS<&h!9Yis73)-g}S#hH#P-a<@Wxyw2bNrl(C-BLx>F!Ry
+zPSosFV&vT>sOJxzRT~+h;_|PaX|vxG3%h5B62rS^2NEs1XTK)Ob<ciIWa~cPr;e0c
+zD^pLp?q^6nU!g9RS#wkm+euJhYw~2cm9kk7yz%*3Z*jGrpw)H$<;W@SmZix)`>5V#
+zQ1He*T6}kHSZ#O4p1;OeWOuq>A$hhoQGvP1nBi8$rbh6_;p<>hJ(Ik>oq5f98g<`e
+zn+(Al>#yt<Za=kJlu~i@TI4(x^L?8n`tZz&*OWB9=sL2*H}{;3BWU)%g-)b&bGQ!y
+ze@28oa3A!nS~{2XV%Y0HsHi&!w9wp=4pmy5)3gAsRLl-5S^$xG;z(EL+iO<$KCAMj
+zGrpFKi2T!~$TESmt(FDB(&W?Bmch31(@uH!`u=5%kJo+o+WuaQbQ=ErWR~eJq-!Dq
+z^KxFBvSg`c_5~%deNx-ht^9!S3=DLl6lfbyog@sQ-zzT0PlVl>mudJ=c+%YB83Aq^
+z6`HKS@ShhwC>J=9pBIi)>Dm}`t}%ac`73gq=fZKG%e6(J?dSficIdj~Jk#K0+qv{S
+zO?wsjkw6Q}K7epsJLmx;@jlKv%mT?ikE?*g{$bBkd@sDXJo!L>9$jB5aB$MH6rSAH
+z+2x#n$>r{yI(hoi%|p}K@siu!wcj>%c5=Fu++BGb-<-G}Zw7qN3xHJwfZ;HAkT4^K
+z2hbK)i1hFh>fn$iVz1nD5!^Fk7+3R`+S8wzphpwT7xzBTpA2+z#K^mADpbmCGqi9C
+zlrH@aY@xeOJ}tFwA+FPr8Ru!ac6$~&Cf;(?4Gt)@a2}pZJ<X4CZVm?Si5^tCZvt8d
+z!`_SM_&NoC%4y5ene07&HE-CfBJ*9sN#;}h={t^bwPTTaRg4qqtLK-49L^^u)DE*!
+z)1~gV%JU+YN-P7ePVG4=X8rk2WwV*5Z`vosy>a&LOgd#q7Mvyoj#KElQ5{t5tpbqN
+zhmtu2MfizupGM|dU?hPM*cfgGVhExP!;vQ}j%iTDd5;xm#*lc8D#&2P@Npt@iZ!@c
+z3*2|&bYIO&<Tpu3v^)rh5uY$-6{~*41^8t+%Sa@P`-(X8WvjD%B4|l8(>9Z&bVrK+
+zJgrL*_grw^*{n!jz@2Xi$Gf4h`vAQ&U-PDLeyl~4CclMfzO;Y*beCj4r?t}k)f4yc
+z(m%6mS=@&(69N30;<nsQeBxQ+HW|(g;>o8V8(<dcW)v^{ZX-TFP$xzVBo{={t(af$
+z-m(#re`<E=)a=g~h9?iS!pZ$3h0}|BTOu$$hHSrmcWor=-cVn<WW+LW-dff(mE6+W
+z85{6Y&e?V<_0%ZF$xQ5hfKmHor3>pGbf55SJPQ>uuP3L%QmyW+kg2%<<#m#1O%ONG
+zbQVI3x>rn3XrrX&HF`8IA;wNDXu`b@%cWX~u9kQVi+d@>Bn3)jUNKzhvdU&&K3uu0
+zDsp0TTYX;UTFs1?X0PC`)4E~ysTR5O0^)UmmhnX8_M>?b3w5)~d-IQ%6j>_so%;}l
+zZJOau?S3roS%j08&iC9i2gbFx1?L|uX<n8Co$~((@4aKM(wg9(=azeBR^E@TEdcr8
+zE=^i^J8-o_<3^@#e5}3)4>+WsB@O`hAmzMp!f+_SsqiYKFIJ)>xZ=do{`RXLX?Dma
+z35+1@izf9OaK>FNp}-bMlmO#IU%|slzEqTVU}7a=PJn_Ew%<4&*bM;%ur(iIJHhz~
+z5GN!41YB1bZ;|2&Oi~zkk(?*y5@vYFnS*<S#}1go)+TXJV0dYiSyA@Lhm9n)*h*b9
+zh$aZv4Ob|}9qE6_6T}h(XK$qJrlg2Yg;5_8OA_8t^x{8J+IyypryUa+)r<rl(wq~#
+z2a|x*09<6VinI`*jUs;snJ9rV4$z4htL;Urc*$uH?kTBz(fr2ijAlo^9A_ZI@kk?#
+zi&_QIb^wwH0;As`*@X!fDJ#M8Fm9wCwjK_5JH*eSqzB_Q($?bW#5lrC8*ycUML?nG
+zyN4t}<lVRdQGqazL%~_f8$xXH1+I6P`{FZ2FOGEDv$;OPl_(KpF*5X!Taq#YfK?0_
+zwmDRyG;|qem6XRBMR7-AnI!}rBrRC}XyYU<k77~e^%C*I>WK`$0hpKt#Yc=}ao}{2
+zC?jAXrVDn@OK1q6GHM%Xjjdl(_`vvu8Dxp+qyOnlY<2Vh*q31aLxFP&Yz;of3Qi!6
+zY>o2L1**hgN^qU<*I*kZQVBp}B=b0P3$FG!g&&SY^baIGR#U+5QBn}5BE#DTJz&K3
+z05XACb8z+vGvMK%M?q90IFY!iV7D~jW>hc;cL=BndvZu?LNFcWk9^fg+>O%~l?@j^
+zln$clChrDO&H|UQUG>zFMCbUdfJmSf9)~3HbC~lXr5F7bP6S?G)DvCY5p?<um|O)M
+z!l|}tOqdO>M3P{&0QeNrG>xbp_^m|lH<1UPg`)8|V37n9jSC~6fKdsvCgBA}H6gWy
+zsTTp2QI~MhL#iNrS(1;6f;r?xI4AJCx;R<UbV%nzG80nqs4dtDQdJk<61M>?0i!si
+zm?d8(xP-63;*r9VB=T5Mia`<Bk90jGmjv7p_W~87PmmJ26fXkGBdM@m7-KqN6wJ{B
+zCB#mI_4ooXqk!B#tb<z!o^cW^;z)z@!K8k`9z~9EjzvO!I0&o1;FrM}h1nMgc)+1b
+zJV7`wfRr)0NbfX&1Nam28CIevj0H)V5WfUanox>I_eGB)?>EwQleERO!?YVocL@%_
+z03^VRD2z;=pcq@N<wF8-y-40id%^>etmjNuB!c7HZ3M4lq_OH4kX(_Q3MdF1Rg%@f
+znTeV%A@_<7C;@a(`w_NBd6e+}CdYumASw-@GMvauW(b=G@x3H+$o2sS@E8!`IcX4?
+zU5u<Sa0EcAC~tz71+IcUY9y=$jA6wef<^-DzX8BA@O-2@k{}c&e<+Vtx3FboUL@nW
+z%=w*j*nbU4kElPCZk!|tz++B&bHco6z9>KozHyAJ(%laBdoiaa+#SSzxE4y3UVOhv
+z32`Je0Lm~gVUk6xR3!sf@uJMZ+Xqg<l#$ej4~FnQfy9IGMu3TmxF#eoqpIK{Ac0w&
+zBEVP-gA#QRK{w&DlUGx!(b4@!zIx^?AL~VkZ(5;kkuI&*9AvMw$zJV0jgIuOI9d_x
+zT{LJ(JmB^-^C4fDpYkafsro7MD-Z%e0yPeWW+PdyNPo0aUy))gDR18BU><VydDaBf
+zq52ML0&Y-!$_EvZt*&Pc0ej!3A}DLyZecD9Rfd;KG1t?jeH_FWa=r5hu1~YnXFkev
+z+g+rjZD?~1ry7yA-)0Ys^^YlZnlH4uy1de^wGU4;&7!Gcqv_o1bn(7-KGQbuqt&-C
+zeJuE-T43gnOqnS&rB)TZFQ{&!AAH0nZFfO`2P4xv-_(AU*jT+M)M|=J^ApS2QJ!pA
+z9P417j%8nvvkPWzUormDIUcrCpSH0a2@1Ap4J)tQxS5*pb($x)py-hZ96By>IoPri
+zs5<FEH)L52V{oUAcd4h2o8DYi8cm*hw01AZxW1wor3sDYr-a;JUa=4;CK)Yrk&gU*
+zli~7Ed44L*^B(s0#lw!%Y{~lT``;__+A7Sk$02Mkv(q<s7NQ6JyTA7Mb$^v|oe%hO
+zzwN%!Fra!6oflzjC2{XpAbLYy?5f_~0)0Y3dSMa%Nr$}8RWpCd^-Uze<&AIP%yAc{
+zbDOKLMrg(2%fbA#k-|ZeDN079dQYY-Zk^Y780h-k_3R}dZ*_L2h0CmE_|hoWKlS#Z
+z*{0u-<LBa!>^}Jq9gisJ-a;ZcEUK^f&6TBQE8_OV_9iP#+2uP-3!dBd&Uejs{&Dec
+zbrjg~SjUX}18OpfEtmo?jfQJ#vT>J!_QrkqdrVEwZ)dyioIiM5Yb7Vb#c+>{ih@9-
+zK8h3n&Qnezr#l{>?zTt6gtzb6ZrV_AvTLf)n)~<YDlVbT`+bkD{IZQ;W_rf4Ixk=8
+z7#dO;zW5rmeAa2noB1JclCJMS0zI6+jR|CHsJ84gHnPZ-cp9?FqbVKs`cL-@!xp2Y
+z)T|<C(>n`BwGG+_jlCqbx?pt1K#3uW^w&E7w`J37frS=*)lP5yR|e%_Ux+y#p)+S^
+zxGT<89?Gk})p@sx^M!U@%FLzR?SS;2*-9bCaDar)M1kOCISj+sh)Ysy0wy;E4f*zx
+zTY_TFTH&PbhY{jI>Ez2RgdCt4h6N<Rec(%d&zq*pK8XN=iTT<FTA}xA*X2R!v<E`{
+zK#e1thw{2_&1~=55|Gq3;PDxPu4zru@pc+ugbx~R2*h=NruxWqPIl_BXMZ9YsewJB
+z&8deyqBF_Ft9c2MCkUv=tI-2R5YX#_lnChcLDmG~I$%{=6GL!6t%*5!)EGocJNuO2
+zWex0y0jPqc_63;S2=s+^){8*=DLB~>R7N}NL=X^%$5I9xc+}`k;?|9qUjqA1H=9f1
+z_5m-y9LB@f_>jb{8ZW;RR>{}cOglSA!e2^x2UF7ZS#WEvmMQe+?F^T5T}ZV}c<o!t
+zra4Wv4>_r`qb!&6$XM|p1(xn1!UNA3%0_si`yp7|cQK5m8%Efk&&M#2ymmXh%hKIP
+zE)OFVYJ&skM^;YU5Aj&K8^}G{<$pWIFw7yZ-4AiagPO?Y#~s}7wzuc)zE_{mKi0Tp
+zH+X$+-pP?(B<0=kn13%Y7Rt(pUlC;f7FZsXOv}N&N1l|i#$C~o9dxQ`Uwzova(n0f
+znzw5A^R=Gm)#?!|-bH>^0|O5m(@ESu;w5VC5o;Wgs465JJ$Kf5@}PfRUzW4KN56Z3
+z=bGR7;G1hqO=BLQy!G&D{zp<edxrV<0#%tS;cs$A60gjs9{e?H<#>s@-Jc0FF7%f&
+zE=V<lqxEI$om>sSD;WLjiAsg)TMbFu<r&_HLa&_lFDA>6tDbEndQ;Z<0wzM*lQtbc
+z>;_c?#kLgBsUH<k-tU<;3puruGveE}O)cm9UU5dP^o%kkeQmv5KH=E`H=e%igMMXw
+znX8G=RGc}S$NL7q3({U^YF?gL=idnNGV@xmu?HD`RLCd~l%KrE&iCePhtAtey6te1
+z5uqdM=G=Jp9pOu=`hF3bHAb?J!7JQF5|Vm(RwhaXRs}-lRu9aJ@0kZS2X7%J9W1N^
+zvuqMZLu&;;`x~!zs{C}c$&YaS(qIv6Bcm<<y0^*IRVY6oah<!jc{uy@&(|JVZw13e
+zQo1vxemPz5TZ6?*+A}#LpT|QEVR5rbQ`_R}x{tQ4^|Id{IDHL#y4J<1*YH*vL9!P5
+zQRH5ab8OSQQL2?|6YJ>m{8~_8oZUN7N17G&SJu_#eYKpuHL{u=^kYdQjp^6EuXkRF
+zOM_DEX!?VDolaC(90)8XQeQ&ex#c<a)q2(2RjGt>&r|=rshK{vUJWS{1>Qlo(Ai9|
+zekS>FZNh1u*rwAmwKezq6RDfu@&S!c1j45%ZHzl(>~;5bz%KzVTVf{7-z`=zmv`;l
+zesK+rtbQNx)M9^>YO}aEAYH0+2XpVSy7UvKOV8nnNact-Pki0%H=X=`zJBd?Z}SWB
+zWoBCY>+bv5aXg8GHHXZeF5fxM`j5Ao)7x$RJ?`lp+#ZC46ZFFkNC_!egYb>jGcVHk
+zz$H=z_2u;69zvbB1<dU299n;POo~@oTvD*5%Jdp+(fBO!-t3nPT67gI_6$Ch3*A8P
+zXIPE5H(Kf4;`Re{*hGVdoU5|mXOXjshkYH=D;r}J30OQQ-f+||5Dos0aGo5K4jmZr
+zbr>yL&)umT=c}m>-<m!Lz;%Nx?=dHiSv5AEcAp4!9G)ej1Wm(^-f0S2bnbpsFpucZ
+zjO<3CT<d#0F3=LSCZA9P`5rfu#h#zgZ3_n-CqjWsJ(!}<gRWaJ@V0ZaG@c{)Pt)M-
+z)*Ig2)3eswAk?=1j)d&VuJ2gi;hLsU-^Zh=8Oz%(7SG;R=abvso(-#m?k@DoLC-Bb
+zo+G?_FGELR;pT$DYJc`(s(#5T@?@{*0L9X~a``1y;ktVaR_v@sN%2tB;dfg*K$rLJ
+zx*UcnR81lGhbhi|gCavt4Agw`0C4SAxqS<cc$#VtXtiGCP@&M38MuB5l4D~!qx6=Y
+zn#=XJqW+Y0dq7_F<;zK6&_2c3!m5;vtX2FL>QI)gsO-y$Z;%JY*zl^9lq|<g{I6w<
+zg4s@__FIh<VA|pbD&&QjY&*}5JYkV0AD5ZATH6dpD~h^yo2(aY=3qPIkiyL(1$JA@
+zt=(=1@?_NIKW}rFo_o?_9pphe=DI2+AX^-}^>H&zD}Ole2lI|yP4$rYtG+^q!X?VI
+zI^uNqT=llE(#6cYW=&CU$^vtEvhA<8G7k&x6zQ1a8xD4OCig2c00gWT#|A1CHJQ%Z
+zy_v>27|*)A3C1&%E>}88e!C1@dzq8^v8~@o)&o1i-hHfm;Fpj0i`RKd@|n&ij~q+P
+z7|&+BS;qI0F84ZUehVdC9(1rciLFP-?h|yTdPlNT;>ZnkSfz?7Qa;{aS*IQd50fSQ
+zBe~uyUxX8a?bXK-2{aw<I7qFEDsor^4uzDED~<{8Q~r`F*<v~)J-$1xnRE#ZCUD|j
+zk9cYc2r2ZA<nqMn`PQ+Lrlp9z0*+(xar%Mlgl@ne!SR;^;cvTvf8^JDRps$93Emvs
+z3sLgci!(!xiVI9<QpW`2*@`lZX9~x3<ANniidG`~slUuh<dQD$LxC=!MTKvcB^*%^
+zc8kW}#uP6#C`CmPGZN)~P*0;3nDVu^-0{aVdxV6abxO=@(JKufJG<`^rfcz&-X^6+
+z%{jx~yD^)J8R_*E6<wzG<>gPFu-iS?m-(#Dqe@nG-y)Yo<69ng|MvHh=l9K&KQ*T)
+zUn)~yeG7=NkMJUj1TUr!@Mp`^F$yuZG%IWR<iSgwwFzI=K19s0sOghBaERW0EJ^H3
+za`x_7!`8b9Q8L?~v_yyDAzZIR4|>kt3zjwP;T<h%3ytiwxJ*^2G)cs@$KR83CzL~M
+z&I^_`n<+<K<}%)#dwUPmmbTW3do0d=+z`1CxNW;W{bNbTTd6GN9QZoE+~TxK0NVWh
+zhfeHWgBiDQKKr?k_762be%I%WJSOOx;T5vz6qS;)EFv?y?+SxX=I*|>)bPg3{!#v-
+zN<^;NT{}fYWHNWht#DH%f;`c2ZJ{xU_vUedkAQe|J3x6~){V@QGA?Dj+!tcO=)?Yb
+z0M0Sizo4-vTH9vxAdb*BKQXJ%LVIsu{0RpOW#ocqU$?}mQdfLK?`sUMGP7U*!Yqeb
+ziE^V(r+nvH@vP8S2bb@B%Jt<p@H9LNzq@FfIJ@7~<|rYuZyU4Dhw7ti;Z^tBHGIH-
+z6j$sWaGRegvOQUFbl7xg`!V9i!$)DQ&G~MJ(+_bG`^l7;^3*^)VkKgY=kBSm<mDX8
+zXzW$dr_R>RFBiIo#SQ9VkA0!BvV(tOlQqS|2<4V@glOGD25gF|9mXt}=Pves^AYh#
+zwOdv<z5Dp$Wgx(0n6gjPMrcJ+<3)|>jKiB-zo=m5FPL$O>>@;MZ(_hw<hP^=#bsl`
+zSj!=~v+cKq{qRD*{Rqdg<w=D=?cbmVW$musKveZvp#sB}-RT^?jPqb%Lto~{DfF(4
+ztEI()x8AD7506j9sez5k6!Qc<#@G!!rVY}~Zd&b~iwkzQhF5Bcfnz~(zQgGJm=pH>
+zw#wrRVCSE)?XXib`xp@(mSz8+4_Out=4&D+!}s3DF|<v)FEK5i%-7d7v+&#(J8jh*
+zch{b96l7-L9W|SD(%vbTat7wjbUH21W^c9%m`vUVx0cD~f1BRYXa1AzpFObkL9(F`
+zKQ=3$gpQvRpCR_%!xl*m4f*eBK1nfBz0Cf!FGTd7Edk&DFr;YI=-52hY6xVK^{0yb
+z1@6E+g!?r_e^%K5-%!-2dN8(@FN}~oSOUonrzaWYZU&A*yP|FIm4`$dbND<WByPU%
+zecKy3E?6{vYqYGWJLJ&gtcA|=m;7|V9JWlafL1zXE6LL;#i?~f9`l(WB!^GdG6+}A
+zeOQo|4_Ifb(wRNl4f;h8epQg;uX(e3*(W3sjEg%VyoA9x^OBj~=^~?T-4H(bkS|`l
+zI6it2^{qJZQtopWXQb7^a!)?BxMxuJ7X|hex#eF>JBod(u0p#$3y|XJ9{tJd2Gcu(
+zKN?tH83xSt$2!O~Vs8Mn8=1Wf;ST{ptG-m^P&EC3H@o`8kqHVfY_3tNEXAJ*-6D&U
+zb-E3w_pM25I?s2q6)1Q4MHY6}A}STv%c~q~YrpsW8Wz#waEvMp9>`>x<8zhC3y-?S
+zGx-+NyUW7kZgshzgOWE9vMFnDUb$i4!hCY*qZ;^Fv@7bTp|@q&Xm1h^Xf!Ib;SFyp
+zJ8^ZeqJH^NdcGO$o7<Wl6)v)nC|^q$K7a7?n%KAIvzu9B<<a%w+Q?)Y!`Erb8|z(e
+zPuZZ<xvKZ|cAELQa^l?wOXl;zGz00_snp`Utr;nDP>|WS=KbXIg!!~`RhMkIv|cN+
+z4!u%(eBxRcKPtBp9@hjY8ny|FYrvU*|0DdT0PvLw#kvIBfW0f>*`&`F`xldB`4rAn
+zj$X%i3Lokem<N1<2HF(!mN+SYbN|xTXl8q`A@hYXQNE9pe3N6tMV_*4S2YgQmn+N=
+zKy-R9vp&O#-Ah<nS2CqnW+IRU%s6+4uSHf-N{WQP%X{1F5VJ55W>u?@EbJQjpwP`O
+zbbiN~_wc>4xaf}X4#O8Axq)5b&rQ|sU80cckPTTAq087W=`Cj(F|+FGW(Nhe++{wD
+z2lh;hkuFJL&Vou9xbXPdi=?m!GD5Cp!bH>(bo8Xl70;-tF~U;7H<d}k$LHd(`69pC
+zx|n4EIK=zw73nXJC|4(qh6Zxm9};noFU*!x7{}?%R+*j9ym3FT4aOrElp+G2vVIT3
+zb2?LxYueWwH|i=$MRp0iU&pjt%XVgLeYx7f(fr-ClEr>mF?jA(RA-BA!S(C_ipo3z
+z_4Ku{%e*^fceb$MU~}(Th!9WWF7+8t9|li@m!GbTM3j(5EiRDRa{r#7SYa8sE|FPE
+z+w4E%bXPvP@_6`56RvgOkn;XG^&JJR`8&b%vtqj?`wKqLhr60m<#LY(t*Q1tF;Q6G
+zA|5HHaFDQhT<0|oIvlMwzTrLPN;!()8McoBwKk{Kfl`~acFm?uhi3*{e>ccwlRJoj
+z{M+8i{Sa@K<2U0Q=W$ZnQ#5n%_gl?6o%@K-vf@^x5++ViAGt{tc{$y5eae&ZTaG$o
+zlS;D6OLOtlcF~dyknT3z{agVaciSd@RW&zScT~74Uo@d~AVrQU7VR7m|Ii?1E751!
+zo>#>nuFtZi?~~uiVPhFlJ*edSCP=lzJHozb?}$GQ)AObs5KD+$bzG-K+T&e*gV-rB
+z&NPOsv!9k7ku5le4fINgx;Ol^xcu>8(nFlbNrFjfPt7*H?Yl{Ro#_6=OGX{%3OYJ!
+zIc9(35Ip(Fx~?a*-p27Cno4*}x?)OmWSA-AmD6)9;XFII9mgu1>4RIT>VEA)zr`n&
+zaJeEE7Y7AT3_G?$ue_J|zpdw6Y@Zpb&YkND3w;PxK0zlq)>|p)66eI9Omt(sLpbsM
+zL$7YqW?~-JJuUHSk2hU?qo!<G44mj<IJcQf*0Nr2qDMZcR^Pnr?sgV~k4JOn;}6}`
+zwa&(`x!AN?7ZT6hvCVKPdn|{X=1$jrovHrR67-d!Hd=f%apxyv+hbN@Bd$odyVjOE
+z<29FD%><zIWDs=4b0ejb@2OH@GQ~j2RS=_8K4~E`1ydc(uE2Mu66N2ql`?SG1o}$*
+z0bV#;3_BubSvS@ajxS?JkSY5rb*{XFfd$OQa`?4-N>?rk+JKi+{q|Chy1iF8X%xQt
+z(IZ$nLV<(cQ%rb+peS$uRl>qfJoS_K0<9F-A=j|4+;ZLnq}CKCp1%=_+9~QsCBBwm
+z$+n0Wk>kjnwEcvUT|rKfF@~UM57L3f(&vhfma_;loyO<!Kb&bFg<H4sviHMV-YH&o
+zhY)ZKT+f@c|11@MZ}kA6X<VM$!SO34_UZno-bdgWcAm3jh3ofEF{KQ9h1)H>fpmqT
+zL9c&sx|IfADZEQzBNR1TxDBJA*<=JtclnB5)cV>o?;S}w_5FOd_0-(2m;22Rbx^M*
+zb30&?t$WnfJgm?;yy~9sQey9%H(Q%v{@5U@a{}W+w!Oe|o<~lpTGD6GresTT6{p%M
+zlF0B{UU#Yee)GMgzJkxD$iSCz+YEFoWfh>XVArg-uBWLBxxM;3Sp~3(pDRu?9<}$w
+z8bamA{uE=BjHriUf1t{Yz2Sr6K(tA5(0IFUM4X+>o9(d7=J3O%m5J+wVER*mJ1fAu
+z^t2SAl{ECks{Y;-u2~Eo(xbU{nG6({=$t_-<(+va_ZG^vlCagp1_J@IVktG(uq4vj
+z#<xL|V>HmWrguR7CyHNwzwlM9QM%lS{oEuQbX;0>T?#TXc;8w}6de0t__OQR2g_}y
+zXNJG2`MyhkEh~B?H^xvK1*FejO~*lOlD;(n!mEAh;!MftUOm85edB1u-5VuYmk_61
+z`rJAQ&pR^d$9|s89Wt>>FKl0M_CEGEk9kl1RXl6qxju*YivuKgl!2p;A!!AE9|Enl
+zT_cs&*WG{2iOT;7+MDQb17YlvcgPDa4S#2{JF%a{H=cbi@nFC?x%v<t+`X*JDlLgT
+zdKvRzO~Q_fNr$WGiH6$3<Qeh3z$Fcy(B{n(j^tB$Rs=n74};gwh=@BqiB3ve-`{PU
+z8<P}vJ+ElibM|{lyrVIB?ps`S^if?`rpmQIq2PM$q|b0Y+y@w@!_N^?z3>F&U<ct1
+z@=1D8%JTXVI}WvLK*Ljs18~tmk%;FD;=GghCPWToAl`dq$uXY2KUTl>;y{jd3w%=I
+z-r`vc$L7#)%0Mt>PWO<4I(p2hMgUUzyn(|vF~L==Tf{|CGVFgwfIA6OVqHJuzxx8i
+z^gMFwx<Iw#?0ebNjuK9R{Q=Lzg{j>@F9Oy3oyl5f3b=AJAe%%Zjy7Cje!=JxV$cUF
+z3T4&lg4$QUUix@E6F@o@Khy|y8r5E)EF<}jrBwyxU56#PykSG}Z-zqepy~Gvnx9qD
+zzk6Y!{v>wmrktWkxYAh-dA9l*M(T#WJw-_msQSm(`a8ZXQG5A|pcKGt(r$Le(SYtJ
+zzsX-h<8orj_Nu|l1N^{U!kr6d{@+251?!o9g&v1K+cbG0_sSSJ<G<;w9S=}INp3>c
+zo#}0#bkwgqcVty_PrVuxI<gnZ`k9lp|2QI5pwgA!*4rZEquC4Rx=z-oH~mi|)&}iL
+zQc&<qinY`rU*WZtiE{s|qF3TIG~a7|KUsuzO}p2(H6ula`z1;~z8FdNv0vlaeELx2
+zgeopjs>r@lY<Tt2y#12ziL79XqaOQ<1w;0VW?|z=@h4mH*;%UesS|m!ra8HTZn1A(
+z?Rkq$5AJ~ISKh~EV#Uvgt6MpmtJ|M7uM}AyV>|jBmf;J-nC{Q~wn}TcQ%WX6o-1=T
+z@W+eN(>6~{#L4ER{G-&Pk993qRt3+QPn_{09hUBQn~M}WOqqS;xOMQSU#aM}jOhHT
+zv}F4>Myz~Xm4asd%Wg>>WBl-Yp6uNCxLG)JSB?U)*Pho;UCzyq<!LH$**iXIl83H>
+zPbdUklCMm{Ok#F8(@UgT4nVKybtrxa34O`5pISih@abfj$c$KmEuTNMzqQ_9=v$C{
+z=Nm5?S(4K%_1^cL@4F1F{4eOHdj}Tp^s177o{H#s<FhEzs0ee*J$@oGqSr98CnCr%
+zmkHQ*y$3ZYCNfz3dkaTT4T{jtu1<^v_A%AmaV2&I%FeFv7yI#DiDB;hFe!bd-78Zz
+zTr%5&jLKH$dv$TdNoD7BZRJ7yKk_dGOwwOH8|IO8kBC-2F@F&vDbTm}g6?EeTEJwn
+z&0{2HA!<tHdslbu!MT~mX02&uqT`(8Bf{63L2pEAhD|4oh|R>GRTx)wB$ZD|HcKb_
+z-rM^aR}pmIP0E0sk0je~*p&U7&M<dRUY5W^^)@%>;3ULg*8PX^NOL2Xo943SjlP$C
+zS#pzO+g$XYe_7)d#wvW-xQu+Wd^;1J<eW484T*X6`HjJ(@LuFxV=>KQ4gG=3yZDR&
+zXOnl!O&$JmLbGA4W^u*t5yTV%!!ypk&o1cQa%^{;S(|sS+_JPjGGC9Vr8}tSG!>$#
+z2Dp;+jAfK3=7lS*J1Tz;+|JFiYfLZ(&k*W()mTY8n5KyKr27a*nhE9$<`-wY53DRO
+zm0zFjj?iv@Zc1V1F`;;KFGWPIuf^6GH^N!zoFS=@<=d=SK~&9?CaP3ksdlg{@^c@~
+zE#4LBAve3TM9T)5`8jneQ1FU$n=#w_(I{4>-N$2x-NIgMr4*VCCkz4@Zh&zFi)n9~
+zldiH>BXMp4=Nz!qpz<XcfZ>7*JH#O@_7?oC-3q&5Qky%&D;n9vmppxt9f@yUV2;&<
+z!Dgq}(?pxse^@$5h!hrAa8g3N6Re)fvY)48x6(`)%y7GuH@t~)tM>z3c_m+r*B@~_
+zvchFJ3PQ#w2L0-JyQPeM0Y;RYJw5kC-Vk~v44!ZuTlNDKCb-yxzj(?Qco=3Q1@Aw~
+zS#<wwVVYAUCIGj%LpMyRa_vLB|4w(8z~aT~_YbkES%|<liF<gj#5^h)sLycO&l!;F
+zk`qFL0>6FWxQ+OM&t44D+p%=u2X5o4Di3)wUBE4(cVweDRyDn{**W{{f3+uFA@5$_
+zomdBR2u^TQTnKP0bZDeXo>Qm%37W{j*A(TqpL&`OBI+@nBH#LAluje?rH}0P_{-Eo
+zmH})(Ba3%$VM3W;s}M)JedP{HY6^u3AuhQhqhZxBCpuFFJJrK5NM`iPE7kKyi}79@
+zcUf=j&$CypBF;<2W#b80B3HlMcP2Woc#KpJk@e#E9G>8Ho{pV>@blGoA~QIezI1u)
+zqdxV5Zu}3o$O3WqKM#ZfMvWQ0HQGr!{u*xS(L~+naH6x-IE$Ra;Zd1m<5L2`<9I8F
+z{zu1Fsy8)5R#KpjA&!V|A#}Gd({CRg5Aw19b^Mi!?eFI~B4oYN6|RVrTV#hm7LE-M
+zdmZsF7<Ak3F*H(reg>yxNVNxRWZI1jCdvy<$d!=!KD0Kb&z92VNV~5jEt?P@>HL_w
+zxz=RaS+#QZ&Xw0u?W`948UuA-LeP0O*46PJsNcrCWQUj@lN?)qZI13{IO2?;K1xim
+zQjtZbQ&6t0#>-?H3Ye+dozwFVwsDFmcEvT@Sij1?A;^8`^(wqfIi|{xG&oa5NSC=V
+zKHn;B-*$#8g6`;$n~nYJmp);+5zCiQ=KLMNa8G!YtmKvRNz}O!_5_Z?XDk}>8G<9D
+z9I5~P(xITpo?xYV^=QqQno?n6RY~@W)IhJ=@9LdgvxO-l#pL78=Xd+$)MK?stJfT<
+zOAhI%;qQ%qn&vA$TSRxYln)bSlY9l-*q$H3RAsNSko;28NIR9G2a~vs_u?aiziv?%
+ztA|-ulQ0||vRIg{;wc~%;y5VHk?|`y?3CvJ{v>JnS4~;p+pfOLsfL@I17qXcRgRk@
+zj@#|xn~UPx4XYcp)$QI&(gnJ~_mhtNE3?o)zrSUm(W9evb$feb3XwNg{fXH^fq{KD
+zo#yq1r)M=&p1o3%keSHK1+}s%%*`c7grrpP<!NA_YrBq4*HUwH#O+m>=<)TD<XfJM
+z#KfJQ;t0$-$L)!N!Q45FL)Y-h`L{{ikEc$9zdq1WjAu%^UFwaIZa5`YNm&cGG@12p
+zY11Z_3<q1th}-)LOJ+_!BNr=`_%pBfC|X40@U^33GHCX+YqRl0+HEj=y}we9zy5v9
+zk-wzm&LEGKrHB~|%h+hd@8C+NKWoDQzjLoaYk{goe_r41U3*@mkU(}5f}hAgOG*Q0
+zIAeN3EE7U9kLzIu-j8CuTX`CE#guEh#L0zXvg)H!$_-q-c(>a)@u2VFlxc<WRE*1x
+zIy>E-v03Z$X6Mr#asyMTM`ET^$45#~>y#80b+kh)nlV}R!|S}~&F?1(X9eX2JnT8C
+z5Nc%?8GOxMT}ELq7v~?i$@3Ki_cBmOTSeq*;Lim(rGDOYus#X)u6R$xm>ftK+M6H|
+z_>$f4^N#n3?<^j&%DwknG%JPlb(@4}L;PO7^*Ye0RM<2acIU$ap+zxh6i(#aOMJJ1
+zK^5G0ToQNMdr0Q;@*3WPDV^EJcJ<|kA5jtP<@b!!%$50Ve2=Lt8hOs522VKtp&dyT
+z%2qV1%KyRe=1t2fMDEa5mWcU$(@j!x@9+x2S1%i6RJTW0RQ9ci-n6*KbPm`#NjwI4
+zQ+O?PSSDGJaQ*Vn*ChXr(%Zn7y}N@)L5|_q$HyOoHg(=A1+^8CrTcF-QM}M=;z*6_
+z>Zfz;*|Dg-%-~9W`m3kvAWC+}ZxO;spo&`S8ob$n9dwcl<s}L4TV(%)NSl(1Jm?J&
+zva`s4=BSqOK)kAmwq1^OzIo4^e{UOADiS-NtrXO|7WT)Ryypvw9Js~$ov}<$A&0E1
+zQir;M@~#9-qxV4oq9WyX$FxUJX>Nv^A+E?zL48PFNJ~DFnyhp4=lnpPufrrk#<|}_
+zexg`$m<{_9GdJ2!+k$K)@w1@XhNSfN`O(6M9kp=8^q#HZQhM=%oN5*Y4PC%NybegV
+z#k+wfKfC#73OiK+)kt{iF55doV-kVaU*HIzio=u)#J5(v=btwy^0+D&>(H=1OTGH~
+zZSw%nUvzgJX#IH0<MFI?IZmp@cVb7A9T&!?Q-??Q{I~2|r>jL>Dq=qGm(#e*2wn6w
+z=D(JXdgR7oI9qtqsM2t#ER<oxlRABKGAFyX>{|}MeepK;iF+OCkGdCEZoOvO(COMv
+z1z7<P2Jyb2Q}ef*-EQiIa8M=VoZlV3GvcZ04UFZ65xP}NJxTh7<D<vfRk2>IBiz`1
+z*JBGhccf`2Z)8qv0+V7@F#W0ILp)g@OB|2OPJ>2k9ea3LJU9H54T`i0mB*?5oawX4
+z{q48c=PE~tMivh@gZSxZ>`Cg?w;08}70m&WtnrmN$Bdx`&%1b1zcvke3phq@(wqc~
+z?+FtPyi4gMV>BwBeb2ja{DzZUh_OGErA>imiFGksXmo3`QT>jj+Jf84yD^b(gFnIy
+zsXa}OHd5|wioId{-PtgVo)6r=If8@D6g=42+F9d&J*83*UwFVwgIQ_`FM|__=8Et*
+zTiNqQd;Ow-=m7GzfBZRdFBM!EtazGAc5UWm52hhY@iqJ1<vscy)F$iu##3mp1xKVe
+zu&V#pNckvcIXA%c`HvH(mCGuvEtK03e{}vfozpxju!S_ih~7z1<%#z`Q6R6m=~$SH
+z-qMQIbC#{A%K#v5RYj;eyEe}>-F0P+B#StW&UDCgPthb1m1UBy4`}he6g!Z8Q|?2`
+zAhLFeG^xtTBM2g7edOl=I(MUL);SR4l!N@ULfZB8iR`=dWam$v$_@zbNQ>E4zHQlx
+z=0<1cy4>EKf&;?IiubNQ0sM_a&weZQ@W;wO=&AsWU&ZKa)%TaZ<myZW{-S35cH!Wi
+zplt0&uDw$WPT8Rp<Jg&L<t)~XR7<oh*Cc<+@M$Imjx-*gyT7K*DaeZbeG^(qb}&+A
+zBv-pwjLXG;dImGD=U{zrdZ6eG=ARB+ldYY3RHwf_c$v<ldtf!K?Dqb71K(&MvQ_sW
+z^$g-?=)9O}sJPsI(>l?GNuWBg>YZ4&1Y~w{R1k!$JZXCb%q)}m9UVwkiND)(*{kou
+zF7YTn({#sT={;Vr&_0Sis^)Ua2WnI|v#+i|D&y|zCGCiyq$7N-+=X7JK9d^d$VVt}
+z-L3c$Fx|Bjuo%GVA*sqyIsCp@cZ%Gyu<s*N&p2_x;FzQ-Aim|zUh3*4vq2h?Y(bCg
+z4*Bs9s{YE(wVPbWK!qM*#@wasxO&@R+oP_ZzuqsTrm;jxnc5dd6HNK>o9UCT`A*J4
+z_s+JaH@l>c3YB*qO=-q1it<*k-!yYj6gbE@n74=T30s=ORKjoz8aydhl`p^h9Z#1(
+zts}pz+>^OnhWgG@6i!IK4&4ijk?qSRE1dW>;%rl6c<@zQpu_95n_`uB?=a8#X>e(w
+z)bN<?s<$LEFZGW;12QcL3Gbcds-I;kd>g>wMHmKHzL#)5c{WkH&bs=oRcjydOEx34
+zIYVago0yh1nT&54+B{H>_dMf4a03r${Z9%t38yFgBr@Uc9lXJLMB-sg@Yrr7>sBD|
+zjKcRNFW!i~x}L3+&a_Y7f<FpZnO3(Sr<x1Qe3|U`earjgQ|~XP&jy0OBA$GrUzYxq
+zcOp6Sn153D%y(z%`J9`F!lm2r;aipFK4U?KM#)O=m6q@MJEO<b)0ne{cJbF23@>Bz
+zEuR0GKXu7J4gvL|<18`{Rf=xEijJ*+xZojbx}WmGIpO~81x@pryY<Q3rsJmBpXe1&
+ztMg46M;^8Vv8daf{R=yvm%I9d=%Z7|&F#(Um#cG*3pzBnlXYWv6uzU}=p_n9g?i7s
+z8$TJ%;%%iTo_A&B>t^L7KG*vd`{Ci~rTHHyq%nADjpQ^rC&G5>=uRPj+-OB1(E0(K
+zb*ZdlL!v^hIl70$ANe!jc+TvYb<o8B+>({x$50~Vnz<rO6~UmC?sMmqW&Vp`5pEIA
+z82%Vt5y!6x0@7D1`R#A)qOMUvlEe#NvQrv_s7318L}SlBr4NSegXD}CK8eXTYb@i6
+zbc=)u)*Zf*c*R%cI~Abh(m>dBELOi0nk{%OXLW`z7thMUn?*UV*t&toIimxVKlb}y
+z08c=$zX(Z=QmjZWl<H<BOMm>M$wr0ge!cAn{-7hmXWb`;UVEsqht1dDRT{6HX5~Bg
+zpz>XX!i84d>{ox-k+WmU_jN4H{<80@wSBn?`TJ6%Rt0-mX*BA*<Kj)}K(09!8DFe-
+zLdAj0UF^gMJ=@^E*{2}P=bPL|iha6mPk?m?XM;E@vhdUxlr04(-I`d5a6Oz2-P+v#
+zeEa#+XWO4U7d;R{KNbm+teS3`>ZM5oG6|T6KN!k=nvWitoKFGiWjIjjdgPr^h17Jt
+zSVuo#<V-1_|73J3GJ>_Kkif2K*mI~o&=yv^ZN)pVijle6Z_Fg}ZXnE4E{e2nweBW$
+z$nNEmR?!t*+TN*^YR;ps*BOl3GTc7>zZ;*jRc+8^hk*wSbsUSaH|~2^ItH>K(mw-V
+zyC>l}^7#oMo^G+h;Bk{>lU{g0yxlnJy4Y!y4k~NX3<?pQOu2}+2$v#9C;7Z|R^F{0
+zXq<ca$}Jx^+{4lj<O?>gdiYs;Tcjp8Ig^WCgrTd#Ky4TC&+LOQAM5x`RCd*1$mF_0
+z*Ro-#<7nK|G^frF^5ZxknU9mM`L<fyW9MT#<@qjF%Q1J3AIsQ`uA{Cuj@HLPG`Lz%
+z;!v{I;n7|dgMJ;zWeqGoiq`qhW^ngyIrrR=lj^j}-Y!!Z<TDO~&U)kxd+R+iN;7_0
+zmLuC%m)gOkB{KH^zjtR+F6qRq{Z)PJg{s2LqY8LNgP2B2wZKG^PT%yfQ1Mu(JD|N+
+zAdF8EH&#Qm8Ot$ypo6kgxp_Q^*M;=NR_QxU3-Ux8Ia<J}T^;!kt2AzggD4igW?FnW
+zPUXt$@IYbIPSJ=Fpp*@J=}tHpqiDnpesb7N3dYs0;n`EN*qRp7>MyIpPTryIv+~yL
+z&od*j*aBa~)=;~uuICSgIcB~|iC+Q!JgEtd=?0;|?4@-JliW`y5qQUeoM@qP(Nys}
+z45FxDaSR9kxijBJ^rLW@9;ik$-V|4&bT4;51T?JkuT3!KSs!waIKQ-eZjT2ZYyrXm
+zW0$Qk2s-gl&T*1*w764{MwjYneWaU^v!~@Aw^<Lb7aM6cNmvE%bq2x^d7fNb-@s<2
+z5co6&C5D@2VmqMkUWLIq3O62%J*S46g<MC|T2dBEn}=?|12*EF!ssbV0wMbuCo>kh
+zo(MV4O`8k2^qJH}q*c>#SK~|P9IZVaE&C+X$#fCvFUz9)roE&~^pJHl#_~I@lXu|_
+z#YiK%9-RimK_{uE*gz_KCiU?mjw2%`p-xrQ{He!}N{z5-Ku+a82CO$U{)D@R*;*bj
+z8?&YMqt||?AA<e(Nz12kPffo)loBWYkm4xDqdd1F<sQMBW0-C@pml*vm^h~3O>m<Q
+z<!06BX(i1>GHsTWDakh(uih0nR*QdX{;9^QnQ4vruW-hmS<)ES54yLe>&%5m!$9VP
+z(2Kyg<5!7^Go7na9hTl}kBFa}>}(YrTHuJKrJdt-Z68e$r4v2UeW6%B@#vj+X_nbX
+z7GBKbPqt;dbI#6|A(Wh$66YzcJ(w&Mdl@I`lYTogryiz)-1I51rS1hc6yRo*A~wU3
+zut5oZEC-{}#GkSMVL`;wDD6uNd`MfhelTW-a?~<|#(vXSbCFI0$2PPB)%i{gu+zzJ
+z=|oRXxux-R_^MGfD~iIPhggQRA@*nKH|f(UvJlQr>4aDfC5G2J2)aVAwZmiyL%;c+
+z#{+lS8gwzO<n$hG)Jg25+hVY6SExBC@ECYU%jmpDA=*Wb{xpSC(q<u|IFMOOs5qI~
+zGYAJ50(L#|xNNoO^0RbX1O&+#m8#RCYv^(HVQ=u@is6?aPZ?`x=dQIjIX^!Y6EmLV
+z(Q4cdP7=_h4^w&sMmWT1ZGymgF;@Z01_){M3z39#enhCaMkO7QS?ZiaOSq;~Geavb
+zL43|+Bv?%e#hJ!SCr&5XO!(CJJt^ZYcJa;}|1yn9aouX@&-pWRC&8>?{^|A9{44|8
+z9#Wm*nw>x4Szf|7L}YRk3gk`sgPIO>PUtSL0m%3#K2V`wrQS(+7i%vCdYu5|y_58Y
+zQs-1jsMAK?GcfH_lv?<hX_zFEdUz^V0!=%e^m?@7mnC|Jw(;CW^jSb1#sOGM7BQ)<
+z&51I&TjBINfCR?23F(Y!_jnK!-%J(tv7=&(WX5A^iy!UKlu(e2hr)Mc>J_Jkkn{EJ
+zv01SH4Wc-0aIJU9LtD;VF*2MPGnpPu?@yQ=Q<rmbO;Bsk)Ic3&A<?rW2~QS25+e|+
+zq1W~YIv<pO`=L^+{va$y*G>r_VEHs6@<#1(KM?hyOy3BvH=k%q8>{Q}l;nf|h|bM_
+zOaf3}EUiKlmAB{)CL<%KU(WY3C2f$U(bM{-*F(sq5yFO?d)M>x^jidRNlI43#4k%!
+z=v{zo6WYM=%XT!iV#Ii~mt#2fOW)(JLgqIKzO~>?@9&^21N43}&d@yG<vG#w#)PNL
+zC`fU9cD(gdbm_T{GYma$3`?gv>t9Wxw6XSwL0c%gLbAQa$t~I64s=02j=brjW;eIg
+zk!q@7BDo=i2EDh!^3H-1mPe3i@{!=5v7hkUv8^-sPfc8wO$#MV+HM%vDB46k%~)wd
+zUU7;n%Z5$k;+R7iyR5a@Fx`4dnq!JVV;L{0j-cdqbS#q!>l1c<({UqfGetJ@5wx`)
+zgz<!yr*k|JXl_sM+n9~{e&Ay|PS<Z10-Jf!-;(trxXhUKDxZ<vN4_~ea;mkK^V{R9
+z$hN8n2TrR|lFxsYUNt1_)p66=KdLz2GLrReHsrHI&C2WVtY1DobW}YOnP};tA)gp)
+zRn%>^zTKzfto-IcK66&C*IF80mwZ~ymb$HKP2IYDLhQKl+W7&EDEEf$H{}}H?^=re
+zs8N?sqkUhkmF1q=I>NqhIL#lMJeTQ>;*-H!ZrA_3arJpGJ(h8LS5rBf>n1*gcjBlR
+z2bUe!7ZooiU?m4Zk9>m2YAnp?bPk65e}TFow{RShRpkqt%sV)p<}KY%IVVM>y&^l;
+zD^C9rC53gKt139}f;w$So{YtJ0aCl?eX=D&^Vqm<swL{WCjSS!2{8d>gqUO)?^qKa
+zxo%*9)P}CTm<lpQ2ovZ@m@B%r1tS50FyvbB7v@iERz_%1xFl7*VIZGA%Z6Xr4m+s6
+zD!cn7j0U&a+N(4guH(GaAM*-;G3nKgd71oB7MaA`TVt>$OaWGA`wnrD6ZCpq>33h6
+zVAxeP1?LhC5R6r~!t;eccggO70dTVFPTVVXE~r};iZS{n+t((PR;J&@s$r}7q|*@@
+ze+Eq8q@M`dqcDMbkZJbLmlG8P?phhIs=sC>uqGGn$g^>ki&7cylwa=#6VQnQ*=}K@
+zbqybhv}Om(`WS>|;tN-06J_Hk!vA-@)5+Nx-}*ryd+zd^O8Hxt^7bS5sI=z_ZKyO_
+z$BkF=et1|qqBM=3R-=08w%#-<%{TP}fJ$7(kBt`k!j)p=*LG5Qvn(xOzc{4cCtOZq
+zWzyw)?MUhNJup5uvBR~SFpQS_Rix!qdt7wHrFFPy34S!)+I=wZiVwK7+!O!N7`(t*
+z+7~RLO4e?aWbIxUhbJaBa=r;~i^D|FCb%UoZ9Z88z;CuquDi1$_tkK{;l3-93n*Wj
+z+~&q)MbC!h*x=T<7PzgU$z%UEESeGZF?UvU{9TDxE~Vh@9GNs}T!K;Jh7xIOFM}E6
+zDdOc)PtwgJf;o_{R}wfd7N@5a34r;+7RyV8m<S-xq4~|jj?w1Hy;8R%kQeDvFrAm+
+z))06aoPlhNI(-iWPKn5E#d2Pnick6fWry!g?nI>wg^ercF`loDo?)Hj#&3DZ^|jHr
+z$0j#6xnB>j0A0X46Md8k`_hK(X2K3j2M6`C3s#_9$<%Xt)0Q(mhe-Io8NU%(<gg$N
+zP<ndd+&IsWGbc*$u`*F+FXvNhCI=cSN_Rnz3y*|Su|pPeN9Z80EOV)RHj^IwkVpY;
+zphzO7SX?*7LVQ=fa3uI7Tzx!)k-FYgWvze9gUOrWmBXXfk8ZVgblkcf09;h%HP)^B
+zKx*as;n6{*Rk;r;t4upO4avP&y%b7`sNGKHe|+O0&vh*{*RxJYj>hT=S|90~Vo<f-
+zlfvd(rqv@iq=^KK%g_v*@H*)cCPgde(VFRURUvMh%Ie{(79sq;lqE{ej;A4x=H;iE
+z*)k>}_Iy>Z&Rfrph`BL!>CrSOx-ledcy?UPqys?<+c#24Xf}<M$&RC$@}wim!q_o2
+zuM3Y!R%;$8|DDfYvfbQRS}xnTYe_HIlTT?oZKyPlObEZ}_0?BSuJ|-E{Fi&$g}c?=
+zN&m@VV(#R38-*{PJTAO-oLqmhV;|=b|BCj>f$wO6`(F3rj-F<7QggmjTph`Q<#DU*
+zygqC>{$wO-Su#+uD~Nv*#!~ujCT^4Eoo6oP7#pn}ZMs9Mnc!`UZ!gG2CaU$qbGCi(
+zRwn<+Pl4~b+`~sF1HT8pa?rhcE5<0dCve^PCxV~E<HBw{at9HHrzXfJ`C`pL=ket(
+z{L_+UVDCWv1gmvEIib%h!)$dM@^_a1F;&V6=8j}{rDC&+x<pzN@UGihxx347SCiad
+zhPzT_%dj;q!<zXj(<7X#qdU8gt$RE2oxfll{7u{bFBnD&`z8D7tGlXq->CgtcIz+J
+zhjSC()!Lf5wSz;5`^r0_*QPO<fLn8YkzQa%%^E{ZAz6c7s>;B7qramg*RUMO#x~mG
+z!tlZjdYN&6g-!`lk||eV^N0U|Qf#KB*u13_n}4HHY^9~xx}_9bx0K?SFT>Nc3{P2x
+zKjAmYM5GP((31Zxlg-kS_g-dF*!yY8{}xjDx2GkW|4mwQNBQrjCCo!9LH-w@StKgy
+z?Ady6N+N~W{N)Ofr6gPLO-ZB_TfbZ>wr(lKyC{j2;ps0|hPx@rUp<oXLu9(6z#anp
+zwy5919f(euDCmW15KJ5*6Xdz}B(}DQHjIaEvwFxZ35($Dm0Fd<=C@An$3kvY(0#3_
+zu5*7|q;_RjHEhA->z+3plhe1`3*8rMNUExM=EY~B2g(xiTdDdkcF=w|eSah}H8mQe
+z9`IQhOcEKUyo*edm#&(VTD`SjKd$Y)483>~`fsiJR3@F<y~ciIkmx<>u6W>^)Xq+d
+z1V|BQ-X2Qb${qaeST{GE>^RPoT%`3m8+2J8c}HjQeF`U!`l1w18nWWt1-n9g<I8DV
+z$-8Z<^j%<Vp7K7?vQR3G0W%QW+wpkN)xEDjj)$odC-1SQ=VE=xYa!NqL3l3u!g(vT
+zx0eQBlurk&y+^<b{Y+lXSv0GcX;zNaq$J84x|t&16-&ZYhJGEb_oDSHJXDzo2c6jM
+z^m%MNjXy`fc*FHD#)K@4+E>oaIN$cT#5xXzk2J{PSkS43HW~&Zyb$5zoND@;`k~0K
+z{_H56V_l41w>t>geyaCsk+?2jo^3mc-NwO>Zn@rQRLU(!)F$Wf_w*uo*P38E<LM54
+z?NgDleLPjiqHQx~m!zPuT(v@i@Z(H6O-3E;adcDtI?2!O^{tQN=PGtDt%vVPxYWV@
+z?wMOXIC{F}*7x_HZaKGxzpB!RvashKlp3!q`_+Sr+pHfq$`yk!@dBt>X}Pbet>#O%
+zP!{&twuP4V<rxHTcX6EBQR~3IimtyJ8JvnjArB=26;ppos|_kej7|q<lVFm}p)|fw
+zAVfFtBHn^bq3We+`>C>`$UtZCb^e?1fVO%!(L5mGs8G@g&P3O5woof~$4enJJ{6v8
+zRH49F8)w6A%YF(t-yYwa+nVe)n0p(6IvW(Cb^XYkd~{qZeOIa;%n@GDAcCD<bG|)w
+zLrbHkVOwdKm}4-AAwf7eb8od!zD4gGiK*AaMM};_!%ksWS6D2bZ;QU(BZFyB*c3_V
+zo$>8WS3Q3Xj;#bod$X{ss)sI%SBwV!v*hC@D&2CN_SSpA+>d8-<K1`!M&xg2?Lm=O
+ziDbT29(uI?L%VfAR4%q1{rH7^dqZp#Q{Knw$qSdm43H(WkqljzuM@Zv4SBky+gjzT
+zWOwk_VA}k}Fl`B@n~Z<Tm1m7;$eKl0<OZ$Y{tKf`g3v^pU%!GjSu?xfDY13>qnU-+
+z*iaaSczzpzf&k#lFYf{%hyoxFJ@Q^#bJ9t3o6Y=mS~%$TzI=Ux{oU(4-G099Mpie?
+zpNJW$*yN)Ts2eG31oe2QHmI}60Y{cg;6$Z-7ZZcwa*39DKFa46MND1sB1N~X&U2>U
+ze8wzk{~Cu_sz#@7XA*Lu#-32`+Ce!|Hc@#!FBIK_M&-3zX&&jp(u7w(iT(bixb5M%
+z-xe3OQhVueDBpBwb2vL<EaX_bA30BJi(da(*dBAuv!*`Il?6O*?H8V_t{RU_2cVU=
+zeeQ+jjoj&ZolISZq5URc#_-1a`h0Q5vcO_)6vGiZfxw~`s_pMa9&J~_D^I|2kj?5+
+z_U}qfT~!p!h9@DkG2{VY!Xc37AG_4taYgk(aPuxQDUIw2Xp-ojhHa{FVm6HB?kNA<
+z^?PlXJr^+_QB1sPQTGUa#ck9_I&f&r0u0ho)%~VZ@H^!HZ&2??U;oA_y!`61@b#X5
+zA#BUnVxC3qI5`*u-*cQSiPWcTiwfCCA4{6Cl-qvwh{j<&+E%qj%a`+lI7dH1b#v{|
+zvqe2WAh(A470-rph0g`4)qD!W%N76l$%`*{^J{<j6Y5DiG7^&reMcpyZ7C(=T@>oI
+zOryYYdno&tWG(lwN{9~Cj;XulMy1q}Z&p#gd8CT+v#`&$?}N7dHLB+ati;o8cG4}^
+zY;o=4cFOi!W-Xm(|G6Yzc9pM{SK<A>-$TE4g$IKx+MaOb#vZY29LG^&<CxkyB5d8B
+z2^Mz2Ia|&A6AeK3BJAx=8q<p}Wjx8`7_-DF2CB<oE{DbB8&5ayMw0Zxr?dU|;#wO5
+z5VWU`^1ZUYqKHyz+QCIa8+89ViB1tEK~8%T2YmDK4{aoYp@-oaYCN_o&cEa7D+(t`
+zIEaETo;}-eMo~AQ-;Xt3_bOr+pnk5+qqu#l-=mpu*W?Ez#Y%@S<hwn7M|Bibm&m7@
+z<j7<EAk<f`<@OErk8Wq6?&<S%yUTqsYGC&Y*2i(6A9R};oA-^&EZqGg*tP*VLsXu2
+z>gk^zH9GoY6fTah<$kPQ4}05=C?{TuE~CX0^}XRRQXAope(31(aYx7FFc95e)EjT)
+zzg4H8*X|5>jUM`D0RA(+1}V8x8&hgySQUm7=gVAoSNLT$q;FAI;w0C7n~ry~CV}ct
+z=AvJ%So_B_>-MaBaAw_}rCXK<m;HYiUOPs-k*wg<=O6J>N|Xv4+4EQQi;7DcFx@}L
+zw4l-V&Uj+eThlwywUBMH+JHsts$fG%n?`P`xHwDtg!hkOV1{Vh@IUYXS%mkiE1nTs
+zm^Rlk;8C?@CpR2C$qlF{9CoQ2{{V&D`s~@s?^fQb-VXP#qwGg@sCPyk-1Jj4L{(gQ
+zkUwl+i{iGK&xh7pT(7=bvv(+3x?JwJshnOYms)cF!d|6ZsJv>Hww{0HlmpC=Ld}b*
+z_=;t-;hoO-dGCfCGFt+9&s^b<rrCtd5p6f+uk@YsCINAr*N62QbuHYZ2KKx^ppT2W
+z3Hgpu;1{jVygL%j^vQU~B*D6vajfzKUfswUi6lOZ2{bb<0X6QpVy=vZ*yP6@3SyoZ
+zRYH7XBATo|p}Ks}ors0%muhQ1m+HP0<X~>we??=_E@ndr9wHoftQ?DDp}V7FqD!7M
+z8c$_d@@{2V>AS#K8J6^Uag23H)U?Hpc*WWiiyi(6H_|6BbJ5$kQ$M}Q`&+u=?*~H%
+z``2*+q=B5uN1%(??^0AER83gz?KQ#`c2O1@46%j8FCRQ}b$c8+3PaW|fukw$_SP5M
+zUp)JK>x<8hvlq@-=^2s;^!1w5H$^{(S@j(LLbOuX&WW}LUyan<ah`y>lp3#(+&7hj
+zBX|F>W!rGa%!HaLZ#5Mu7;9Uv@QDW29qD*CSUWtW-O*qUh=ZABVe`|q*Tg!<v{K?Y
+zi4?#XUZlag)Q@-}PqA2(I<!E2e-EI7bl|6C{M0KSkNZ^Ym_~toR#c4$ft;6doY*$t
+zXps9K;hg9YL0-l=Z1ZYg(sml+jrIDH>1VRUuq+Ufn{<(Bi!NUz#xb`fluw8HswL?~
+zV`}sxvGj6+q6oSpW;eVCmiXn?kWu^GbNg!7#9o#AR<Y9Oj~eyYjnbi!izL<z_9Dp*
+zyV4aOfd)T)wjujBbh$J$>zcGT-%?wiv|1}S@YYrKlV10F;U#7xiFArNp?@jqkegxI
+z532SnU691JZEYnmHA{5t{muoo*vFo#r1I4!4aoZG{m&+ee`D`vYgWoa$7ypSt;+yo
+zDWb{SPu>|e!J68*apRs~OGcU67!NP>*iE<`t9h7==rD=53W+IvMK%o^RO?N?&NcIK
+zG{@RD3A;56g7e8ZV=^(-S=5hzr8YtLe7IJcfXqj3QcV7Ce$$Jzq8r4dvE=!<UI?$M
+zHjxZ=M7vt==adgm4#v+4qS`7-X5=9Y3<4J24`)4Lpw^y%k*#IH%FMm4A91kBl?Z$F
+z!&0@TbXprQ5idEqk>#B&NG5eh7{*1SC!UbJMy2WMOmBiNUO4NYpd39mO?2~~TQ73^
+z_9|TP6@D_lhh!YcHKq6Q{66rNL|{Gp^og2S$qhd%H`1gwZM3PqRvHrb+djEXeoWHZ
+zu}AaiM5y2O#0tmSUH1Y?O4Xh!v3^JW>IdJsZ|cpKTdvpkoh+|wTWba{Ep0o&h~y<H
+z@k~5b3FS`oIQfX~nI*Yt{cN7iqk4Vc6@~gV?C|)YRn5ROD)q)*rIGqedwZ^^)oa%_
+zlkoa?pcB=-%4{V0mb6n``>9M3wng?XYCnqH#1)}1@1@?7`^p%D`F&h2SDH=7N|2r8
+z3{Pl&<HyqLlG^n&Dy`#2P3?cGwPT?jH_!20K})Gs+Rg~Ttm4Usw6zb)b=N_m{ZOV8
+z_1m(SNNi0b8P8%Lr)#v@h01#fUdNLw%_TfJl61zCQ}ChZp4?kRYs^739!?@h?r8#=
+zb}tpps$42^Ih*aCi?v9;U+re1Q<+R+;*wfyI2juux6?mY8>KnR7e?rwx^r%#Q9J6Z
+z5r##fMjtfw;Ob%G)GQ98>M?b@WsOmH&FDAEr?($bU!3dhSk_ze(!#(bN8|Qr{jo|Q
+z9;KX268{)WVXXJpWOz(_BmFwh3r`c%9I*as3*)9iu3p}NwSD8t;Vy#`kwMo_u1|OH
+z-X?2mua^BO8%BG4>_QQ$;a7g4AatTzO#Y_l798DRPG`<Brhd!a3V&<;!r!LvfWt6J
+z(OADGi;{QciPQHaO>#cMvt15Ngvg~3*|4Ml(bO+z#L0Umt;ME1H->k%F6t+nGWBQc
+zX8p>$C+~p6bV%!>?^>7iU14VGqW-id=^0TR`0CGH?acn!Hi-j*DU7z4stss6>N}-I
+z<HD|7eK0R4I-A0|AqLcp-}33##aokNO%+hbo!-$KWs`do{bsYMJX=N~?u?yDckJ-g
+zn;Sr^b8>5>Yp=~t=fWq5iB5d)QtmW(Obb4am$!IL(^zAf`{X&gj9Og@FSdTJ!$X%>
+zlFLPs@Nl7}%>I6Ppq?;+Qlh$vP6ux-kA!J`{55C;o*{{`y+=>wRB<XZPi&;^k}F1O
+zy*YR;e*tZfDYKz9p@;~upvre6bY)KB(OO+&?a%nNhf97~BfGvvMebu%7Fi6FBTHFN
+zvpgIZ&9F1V;+i=%vAb^#zx^hnX*#_@VTZRF8cv$X-bJu77oQugh`x&0$CLL@ct8;W
+zVUI(4jQv2dIK?fkfE}L~i(NF>OO?5<CFm^N7~IF*V2s^KZ%;@#R2H){2s@L3$j~R_
+z3_jlCF;2^z)Zl$EXnIyjw*pqJC=;$YLy9<esGQi9MKkf+>nMco;9dA(Ee-n-b1dx4
+z%H_!S`hkBv3MTB}ir&Vkka{10+}+ad&J3ogXzlf}Ye_zqO{S4sF-;}6LEKD~j2)W+
+z7I{f38!nC@S>mU3IPsH4rSAz`mJa9hol$gF*yVpwQ!B`M<J_K~vHfniwr1B-iL!V2
+zCAY~Y{y*n$gJ8=12DQ&}Ja81fG1((nK?G;FzUir!m4WxUP+k=~{D3o!>qhMmoYGKu
+zPz(#S(kMBDQFwy89W)^}5_}gvjvs)|PiCyWxcHK$qHs37-lnMUFN_{+yfoP`@;=E%
+z7%{`i6Vo4@^=HG<GocsevVUzc%!j3gY2Wf~ZWJlkU0a!^5k*kRPSndKlg^Nx-M(bg
+z^rUI@3-{dg4bsa{r+YubV=YLUM*LV8Qa`Ec=-QG7AxbIfPVVtY&#RMr8^*MB1tg7+
+zSq?0!X{XpUir!8y*-M{>LA%=_r$#n*dPhi{09lQYX5D?&sF(K2r6y%ZX|mhPCU=ZX
+zQIFepI`iJJB#g8w9W!a2<jd;(%Fghb#4*Led34cn!->Cx4w;|&**HO*tS0*9bJSWd
+zf*GfuO1F1u<%V5r(>xh=32IviOAMP&x2-Fg__Wn2Ul74Nhg*s#iALfZ0@|yqD}jka
+zHO!St+MA0Mo8s_2{l0ke#q?|>>xpr*BNVFFb+5*HZfwJgl={L=I!|iD?n@dv3uo8h
+z42dP_8;W78#hD$Vpj{+`a-l!>%y806S~RLV4<mx4nN{=uvG+AlRaM)+`+V@Bkf5QV
+zSy5q;QCg9aQDSn73d;)1%90Wd3yl<uZq(i-8YLAK-B7WpONEMxMukO1MMXtLg++==
+zNkxhZdJKf4zTaGP9$22hf8&ku-gs|}7-Np#TJvko^|{yHd!3E^JAl8Z7slVy{(HJJ
+zXVFUz#N0ED#`f6^N9y(37G64P&w_Gji#Ik5^DTYWY`Np7Z@2taroz+4VYj@O8enrr
+z!%cgapOLIySE^?;lvdAdgirr3>;X<=zVyULvhGjyc=q&=rt>YR+V^X>q{gWGZl5~}
+zlV%k1G|>4?g}R4TC$s3g1iV)|d&In0&$C3_2}zpYPGXNH>zTgR(>SBN_dxaV)c_oS
+z*|f>(`#OE~l9&GfFkq>_v=EN`Ehb${)ej=HUt*2~({nkL-(t?0H$9op`l{Q3Bl3pq
+zf%p_ykBm-K$#;vpIY#$cWqLZ2cJ`b*=cdh*Q#MM=>mak7ahBgT_LS;5aopWkBpTJd
+zJu>*q@IC)pL#n}L(BoOzsEbeaH3aRw`~zBgc7`WS&n|jC$f_PTs&xzMo^Q!h-@`^u
+z<*G9qG`!NsdOck2IlZX9(oC0m^}YHqkL@Xcz2~@-{vBRgy2P!zR9O6di)k~HyU#1B
+z?<3ziYtE?o>9f<O_54<}yS?V~2WXGTXGk8Fqwd$_o_vP7mz=L|$>oM6ZGQUvbb0_M
+z3{+O~b3H1|qvO`Pj@kq=<GRFzxM^4aYf566`b-$@nyEQxNGH=4kUo!zs~)|4RX0MO
+ze^Pp`;CX^kg69j45xhV!TJS<adPqn6pgEGK^ZNH_`9zV=ko=93PS)fpqNBdqPuDs5
+zF1g1)ow-WyrMzU3J<v<p-ZDLodA-Q>xaJ&1PmgzQA3Ay+yk&ZQJU+a2u9W;7%^$^c
+zhgQ$q#n#||Pj94Y`H8*w)BDJiPu1+z`(iD|8RAoYH;vX{tq-o2cD_&YaiTxHm-y#v
+zu|CjCedhL|qt|h|w7GX(XK8iN>o}vAdOpxgUFS>xrT0?rbV<*aIA>_>tGCBJy~y?U
+z>C1=SW_{_5mv&I^owW1_X`3)f-=U>vXleS<!&pgA)Y8{$IyY%PDTYy!PS(;7XgWvp
+z>Cw63Z<L$%f1oZm_foGpUUO-dq-RS03hA%Qw7wfJXvjKwwxEa35m|)z@{GeXy!f86
+zr^{w(HtGLE+ZtM3&eHnmEUk|W8Ef;!Uzp@)N_w_7zV6ZHSbwn{r;(?;c@jsM*Vypb
+zWPyCt|AwId`;vT?dW1($!f_E<XSY34did!e(p%@JrO(jPr}v~EUypQYvHG9MYgKxU
+z;%C{A9<WZ8S4`>Bpmj&%KcZ|``gy0L_U$pJW!Y_{clfX^u)<bhbK8vqr_(S(AzSOe
+z&LDo7t<=_RH?oOufWNMUY)S`^tOzzub|Z^qO?&s4h*8-Tz^2x2v^v1w#<8nrtnASl
+zmV|}NWp@_&7`Z-BEAXLYxv%;k>G?{pg!G1F+59W*Mk)Q{^>Vut$vTJ9N#CpDSLNl~
+z${e*$qlp|%?coPZaoKAfMw1FXPK&SDR%vUo8x{#7_jcDcAiBujXg6G{fDqCzu_^sL
+zTamrOVbqeoyG`f2>^V-Okjiap>uIwbJ1iVVIqBDs{#v`}S2*i@jAp838S&RBKLOc}
+z_&SHttl})t{FK|Q?sBt8f3;n2-zEw)RpaM_Ut>2KiJ#ckUEhG%3cKYn@|6FW9)4h*
+zJ>S;qFtRBAa7`brU2Zq3RXYT>>Fu23D0UhZr0;6&X@^|2Pr1XWp#mCOd;C<}L%Q3u
+zs<pdM11jtxb#|j!@k@xmW~k!FxgAwbqn_Lwd96L=7NEa8jxser#rBZy0g<egTV@aO
+zG=q`QN4Zh0dOu=Bh@;_sl<REmz295*^d5iR9=*SM{8a4G{Z!aJ9bdGkC(c59Se4zV
+zS8*1p`LkBdS&MYm`jXC|DqFq7Fq-|dZLWSsc7U1_Nt%y(dq}HHO(S08m)JwPeUIML
+z(`M!N5YLb@LihAOhm0Qmpg=Gx?O~Yy9m=L@caN`1yR+I;M$PV?vh^~`H2o@jNP{dF
+zMuEn6+nrgSahuh{56-g3z=1QZ*vF`#xs(Fg+RK-bY+!{Aj8<EjPp-d_=dYqR;&=DG
+z)<y2_eXR@G-S=A8v8(sBu95g_{nh#wf_!q3t<quSd)6)orc@xsQ~o#gCM=`Ae=JMw
+z4OM#EU(%PV^a7R6va4$V{g->Agwk?B=*u?CN$Em=zIOGbLw8Yook;Nw4X3pvw%B2~
+zs9~{UBU#Gf8LchdeH(0%IM)_YVKb_15ZCp{`X`54Hpo<GR1kk{IPuRbvgO(hqtNNh
+z3ouHkBddKQtN<g&k6igz*pP1Omw@)}??f^;Ak<UGK)%lD*SsUrq!V;>{wmcz?C4Q7
+z$5yH9>tU5H8KCqXlz!R&sOdi1aFwm6{Y#=K?XS`+wSFnxi7~dOdyEAnRoZdcs8ZuS
+zk7Ok_k_D=@rOfUbvPQ<v?rTcG)N*^iTxyJ@ojr3Wrr6$n*^ckgACm8Iwm6JR8m?82
+za3n3YTp8gzyRS!>ANk$uQsB<+`7t=riSY8sw7@~hN?sL?=#z#Web=dSN8fcS+R=NR
+za(47yr}Q1Y$NL{%FV(&&i~Cij7g2gzmP&{Jy2o5KuD@0M2l-xUMW`}LEO$(sS?Zr<
+zMO_RG$g-M%0alomaY>ufOBx4U5oXno<9uW+VQDu8UfyQ*%L=o~E^kx*g5x<~8qfNH
+z32kP_{=?>Qpc@ztH2yqnMgpC{DG#?%TU(Wc;{vU)1#Pt6TMY}_XnnI9v!S15x1t00
+zLO#IC9Jp8cZB|%f<qg|wQU#|R&lo>^FSV(aaUx-e6%xDGEJnFgC$U`(VTr@)NMwEg
+z8}_PlhEHKETDsTFf__H<>A!3>{Ib`ykauopzJC+zm5kq~>Q9&fejP9qm@{FY@}D2a
+z{HT91fAr<xuRYCbypnLZ)pXrHGmZRC-lzNq-?-1rBfM#!inrpHeJbAQslYV>R^aXX
+zRJ<KPDnD#GW8542%v|VKzRCG|UzdujZkS8?O%8LJMHI&=F0&FCHo|4r0<%tcDSu5s
+zT$`=D2)1h;=`yP!Z;Eu8^;EC3U1l>d;vARi$J+B;ra$`4ImTs%0@E&pU9ru|0a8EK
+zj%9wzWiB%USP}1{>yTA(h07d`e8E-FUuna*aGBA_H&1k#@xYF2T;>#D#&s?;1(-V7
+zWoFPgnZj`qTF7VK>@stKSu<Q_A(e9{<iLcxP(NTyD(VLeoZ~VZN&jA#*$PaW=Q53U
+z)aOB$84Rp?$Yq8BQ!T^=oV37Y#sXs(y39$yuxDLn5-?>6w^P1gji7TW#Z_!YEaiN<
+z<lT~wU&dG{*t*Q6`ZKkF^JRij%NY{{Ey3F5tZ%$XxW=k^k=r+^kjqJVnfc+ba6bCK
+zY?oEU=oV}$VY&Zm;0j-B>Ke8yU+XgS(JsbY+#e}#Grwhn%gmvE`T+SgK9=>7%Pc^?
+zp~_{J0P8+=nHAJu)h@FJ7*^vl8)zJS&G9vU!{fpI4Yz;ox7_}%-*fvH{>bfL`V+-t
+zx8gT(oOzqsu6{G;gBv(s+`xGc8e70$eWKN}mD?v|8`m$A5c8_xXRb%>FU$|y?o#VS
+zOA~OF-7<b-dCBiAul=3nMa}HL6iDl#@dx<}vubv6oMpSYys}mvpYDB9u8ZxnfdN@I
+zt7E^*OolwRll`T2vR+ds>y38vc%I^BdA4A=oApK?WSn%6`9&HMze=$7pp2(OGXD-q
+zzY9)1%$VVYnSwQfA;x~z2der>-X-W3jIuEn304SJYDo3cQI~u4Yx}?&LBr0ND(G}D
+z#yIz@_NyXX>u<UI7z+ZpJVG@O2QcOjWDFa`m@tU#{g2(R`adCr`ALKKb3YDYY#G9O
+zImhi+<GFMw>y<qJr&;1UY}UN+r&$TCU-G9}OStS$vk92g@F(IKV-@`TCtqih+ZDfb
+zW;>UEcf09Ee)Me4H_d5>et#?Q-gdQaPnp-Q>JxDvaHYd)B3$LPD(-Jr>$5APU0oMb
+zGuzdA8ey@0-Xra5T-QFz`u<t$Cw38IMmC|-3R}$R|4h4CfH?A=W4{Uc?5BJQ`*AI0
+zKhD?N)qbFc5baS{+^*Wqe<k7_cbZjM(yr!7^y+rgALBlDHRqcufku|){D{#d*zhrz
+z7xqcJxnkTPEAum|#{et$Yt9FL%k7da82nv3&)@Gjp8;&$hjmBt)!%cwC2V4B*ui|~
+zPDV?x9#{ptDJ`6j*v0xW`xt8+9Xt->8LO`7KzjsR^*48@>v-}l%nzN`q3Z7vtW9Dp
+zyqz&;I_t$HGfovu7c3Ag60Drjp~_F5$(Z#Jl^bYPXLYD?<bH<v4bL3F{>Nz<&oYJ+
+zqCS;ClD8~7p!~%aFdEAlrwB&B$XF{__7d!{4~%^6fa>?`*AMV|SbRW@tHu?`uW?wz
+zSFwKXDlR8!E$NT6Qa?MO_Ej}s5QbYN+kmS^TK<iU*-Zy99voIKkj6v#jst3ZRPNw>
+z^iGz??i9J?D<xmI=YScx7xSd`fH@kN&<1|7!%A|opA;ACCHi!#_!@vT-=chhCC6LA
+z{W?`UMg@18?l$aWLORv{F>-LHS|=wBW;_2OY?lI@hW%>7P_|18>ojZIXrIJ(DI?e}
+zX9U|-j9|O6(>Nb<y6^>4&VYR7P%C|8r<ymD&Sbyw=W;&xyiPR_)5dVV_9EfO09S=s
+zVV3~coN1-Tl3ujcd~K(ihh;Z+s(y%^O8Tp;@~LbWax3!-ZexDLH0H-7cbXxnM;tH|
+zn4V1a47ZABbgFhN1yVc4&*c21nVheg$^HWG>Qw7$uwcnu+#V&1xSmamD86A<_~V?9
+z6U+gYwPHP7%=y?H#;L$6@JBz%`I09))jmD$=}xm6{CZ$Lu;O_xuL|goxLbgM)E`Sa
+z)i{Y*!g1D?u%FRuxIfYbooglTwVY3o{G_#9uckM+{he=is&St}h;^_0O_n#l#r&}H
+zPPP6-0rL@80<Zv>Ue4{Cuz}@Cz+CV%fO)_|V6nO0s^7r=jEYV*ud?6kG%d(o?{}J6
+zK%<i53K5I|W`IBC!%nqMR&M0_R&V6`hShhP$&g0?Uq-&NUgY&Gw|?S$_D`J8-NgC)
+zO`IRSne)+`IUn1=`S=FTHv)s<zqx_^Cv9PQ$`+AJzFG1~TSdN=^TxJLvtbYJkG8RW
+z;dYi6Z)bT-6Z#qQIA9IXI<`yIvpl3rUDq-~yVQDAG^|Utf9Oe^&kE~O{Zn~zm%1)>
+zoWlB55nZYu%g^mn<ET2iOZ9j5g<WO_{2ODtcps$@`?DC<%e}Zujhnzr7(>P}CJN>Q
+z<6s{?p6%+#v){N&yHtNRPv}zfx#B90Kj#{jHwhL_V!NbkIo~W8c^$_coXGWyx<UNk
+z$o$Ny?7wm@*Ef4!ms!0V^C-Pb%{wcd{nQDT%;$Jp=W{(v?_<6*gZ&MEko_e*#(G(T
+z<&Uv`tK=iH8IuI_1#1QUA7_je%n&RUY!(cAf^mvq?h{;2wV<(>F<LN9uvoBhG24aa
+zFisN87OWKP5FGs^WAc-1Um#c~So#!WjlvaH<kQ^VmFu|uW7l(g6%b;dWW2@lsc(0w
+z>wZc(x1;~NUFx|*N+tWV_H~&tyAI<XxyzgcY;5l`lYzrKyUcW8n7hl&BDvu<3xT5@
+zZZ%F?2r&;Loo?kPR^du3S@IczmXF)CU{~SiR`JC5cbj?0rvcZD8*0UbxXoPTvxd0M
+zB49zN+bjpx4|AK<z=q*&vmO|C5|>+crd!RUs<Rj;o#R&HxA;89&@qe&7c!>AxYc@9
+zaxv?V9_Lo$F*Vk$+NF3r^UEeMMqK7r?GzEucBxk|zx7JCi%ej<l!<QMk6zDll_s*@
+z@Ecff%8jg-oy_ve87z;yljSKXEH9en=IhBEmRH}ydFQ>1)emty20qN~Tl_GW8)LcE
+zdeQm_>%}~Z_G&q7<}76Wf`!blp*;3Kt&6z*s~%%4$rgDw#}``aR{Ni#H-W`ImW!}t
+zs8#c}Tg|)p4dmx!tCbM@m*96u9$?i1X+Aem9`~0q6>hcu6Rz#Q-YWUj&HKIYxPGbM
+zbGgNJjEx%^Lt7a`S~>pFtz2$m8}swpsNH<6_`Tqd8)G%^bF2M!or~h|u}V5wFQUtB
+z*6ciN2D{l$v|tjj68w@wtXCL*kmvnK#)>l;qaqn|798YxOt>oCN?LSKjf;ZpgX+0M
+z@Z$$nJESS>XBkg0<|_2FLKZXTFJ?U#;hKI{M-JH!w~C%SsQN$p3-UY2O86SM68eO=
+zF4P05{?3iepR|$r*&CT3x`pC<#Y*17{PHdAFKjFOOZ?@a8vmJH2UY(kx=AnCN<PT-
+zO26=sn!iQY9OCtEGGoE*j4mMQ<xJ;%#Z1mu&*XfoVCbEU^mo8v80Y)b9+sZ38%CEO
+z^pK7P{mYkiUI*<&{vaq7G#kc#pi`WNF%Osuy|;mP+6|)<>1RMMz|ZgenA#`<|3~q4
+z5O_Cym~_?w_#c${Eo@J<vwS=3%0SiN-2~lJKySg%^^kuGIu_~w!X}@7_W=7-pgRTp
+zJHUSt{0*S5kPkqeZUTnE&uHlV3c3Qa(}4elPk+cJP;B6ZA^k1zbNH|!eK*oE@Ehvj
+zm~I6>7=BhjHrbcY@iZX)p&y@-FdTdi>pA2zk-ijV1S3Bfb`Gi68%P&|{|a=jgpV11
+z%zxNM&mTDbIQW6E9}k=NAa4Nwc3?2<T##Lc^hw}FBHw`gPNW;CE$BTaWM}%z84Bb_
+zB5y)(BfYIe`dsk70gZ+4cO|BwK6C&8^?<L9&^ZhKK8OAbki7=}NpwyG_$YXDVY3M2
+z58ch+4FXlj7&-;~OTholGpO+Q5agTSa}LTpA9N$qAwDeIEOkE_@s5M<6|nmhya=QZ
+zfd4jpy$9Xn;kR7;B|+yA&^{Sc2SEd&;|IG}!J7l!HX0LjeMbI%$X<oN?ckpUod>}?
+z2I&T*o8TuGW&8&^Z&Dv4j^#9NK%1bqlHMsI9S^-t(0jn4RMeR#JM!CrgMhcu7?yFJ
+zN%z^%yB<EjranPAwV-7_J?DC!1Fc7%-r@cWIxR?_g>*C08B`A9yBFzwq$_^kraHlo
+zg?yAhpMyz9T=z>K&VrBQsLrsPLG=OM4BbWG4TtaNM6X`rxDmW_VIK}(r_q`Lelqm$
+z1Z5%p5YPd-1^%|s{}4nvfYx5**TUBc)Gp9l3VuG)`;k5Xf3qdtB=CL&?+fTANSQA~
+z_6zdAL$8wbP@m6fUxj=zbiRe`5YkUTmM1ocCGPLQ{{s36at`VV(Dx$i2YOS+!#?mP
+zLN5vQDe^ynzJkA1PCg%(1HZn|p?|_y2!0dIHEI_>KBsh=#D5#|-$3t7nqR(rPU;%i
+zo(4Z>&{#(LaVc{MjSHk-qjPi6wG00MeC$B_dk23{*B5y@HSk}c58Ax~I7sGdsFd3!
+zYfU7*8%Ldo3!hF6y^FLB@-*-tMSiW!pYb$Dz+VRb6`;q!Uu5I6v!5ZohSoT059r(j
+z-BaQFM~QJEeH#RR|Df|p(w-;y8AtpDgMS{V5kAj`Y$|XN?BkIxrnyOL0O&UO{~f$p
+zz%x*<YVbY-eT@7iboK(ePr~0tu%9aRqLUNvAbl5fR>L-q{34wSx|qflboYXHBF$6C
+ze}T>CNDl=6Wg6SmSJa=NcW8}<&GFD1NN0h8TS4^Z`*Xzc19X~!Q-Q;wmj|7nXspB6
+zU|<Q2f26;mu?L&yVY`aj19eG;O+4h+Lbem>kD%8Dd=@%O=)EWM$AfMLCDPgq*$=><
+zp??o_l4&iGI{#bxcn@Ut(3?W%m*~C^`A?wpppAcDFc5kt+vy!T)-TYt4nBYPwe-_r
+z<o|{AmC~2RDCa8pI2}H&hRjFi&`zZPq-z22c8bf7&pGZA`Dx(43EpTKi|dfLqr47T
+z$2(yg3p=}vizi7=^BeioK%4D7V`UEbAHwcM_#O#=C(!d1*xv!(ZcrNS0iaV3x`ozX
+z$OlL{E8y$j&^;UZaenk(8`n$txdpTXby^GA36S*%J_Gv_@XrNxfX;#b<-pgV7YV9?
+z&H(VfrWfsWFNpN%u>B0OA>h3M--F@fPVgTG&35ql!8+(1gY-1eXS6ocwN~0`y!6`$
+z@UE3M-wxiH)Q2>8=_~`%Zdz+-?xOyoKpV>Z({px~;)hN;^)sy@wD!ZtVDRpzYYJ@d
+zrTr7l4e|?~MeBi-eHdl`M)#nwJ5yqKSo$SQo42WunRKmykL$(uS@3Rw&VOhu(EgpS
+z%QO~<54unEZa{hrUCZfOEj}NoJ(oY7tAHPrJ%#oj(EABxEP;F@@?TO}(Ek8b09rtE
+z6c|L~4>(EuCrRARpslc*54r)e_dq8=HlOAf^)2$VV7D0g6X9!wjL#u{d{(s>y7z#8
+zn(+6^IJ}znJm6mj8VQ}<zI=|Brr*mFLp}H((;6!6l_@dV;p1nzK122`jU(E}BK<M#
+z_h|nFJi$j@x{NoFE~CqsjF0WKCk9#Y5ht<yiSoi}pGfN~j9y1Mhw0iZ?b?rG0}TfK
+z44E(O8DP5=cq*+4z~4YG!{&M$y#qtc$XAK|6LxxU20dCMg|`R1i=|%Ku$$n^XJtPC
+zKODA~!_P&u*M<H<;C}GxXg>^o1$18pwuAq*_^YHf7V;FDU(oHa^Evg^bZtle0_c^(
+z?h$E+350aA2z~;=ABp^}z*l7b8z_FSq5S|T1Nmm?{u?%1P><iBe>d<G<gcUaGSUxA
+z|4gQJ8oEEgu9nVIf&Tz_kx2gm-LZ6kLTeZDUm&(;;p0~1i)g(^dN1S`+Uf8O#;CN>
+z`|vddI;Y$D{P4rnkMR3GbiN0Foy2_$<fXKicJkTn<7j-^>HQ$ewW;mDag6BhrR$V7
+zANwQSM(YX4kNStsQp&nF6|{ur2dxF5=OD|bJsNaFrA^m?cOk8#(AxxF9b^yC_(b|g
+zy2pU8pJ)vS?_&6$BX+BNdwz>>Hh3c>zKQUaL1POxIdt8iYZdI;fg2!uke<6icO3Gu
+zpzA=ZWbTBjgL2qsApZtz4^my|{*3Mi=-yGvcme#aNDot|%&<R!?lbUnpU5wgxE52}
+zV-DX>_ji!J4*fG|%>;iNY`&!V3OWh$bHIOx;zK!i(Z1KlXUyZl`yH}NU^`UW-HrU$
+z^jr?QOCg``xxb>Zf&3uoJ_>xuZv5r1N_3B-Himp5?eBp1(LFEH^x?@szn<Udya-+d
+zjWb{p^1nb9E%gk6T^-$@I(qy^AYUTsJJ4<uX)g-B9QgPE=?J9PKz}*%qo8{{cwf*y
+zneHuUy{5GcIxR>)4a$RTF7O~-f8cK{?NecQ7p=uK-(@_U?f7e5zZBW2vX0KxbV`vP
+zBJv&ZRZjPCzCH2*{ypi_WsZ)cHWOZ}wC!rIa<>Y9oA9HgEtkW`A2jdjUdZRKvHqa>
+z87z3n*~7aXWygZ<pz(=%w@IwOA^#TL8_>K5?xwXCvT0JrbUXbn0ArT+h>%@C_iwbu
+zi2UilhGK+3J__<C(9beneg$16@@m@4z#o0Yc^r*Psq=c;x7mzd|L)Z4;wQ1+4ZB^m
+z=4dvrNL;I(#!>%TssFS-x*9%j2QPr`^@aBb(x1ZL=3Zj@RQ$J!%r3relzcO6KcRaF
+zY6tio0R4Sv$5hSN2jKUk`yG1jfOL))^Y^eXk-q;1)K2$DTKO0F9vP1x{5+5L7^d+W
+z>E4l^t4RA^i?TlvpKnrId9~4_kRR%$t*#Z!q5X#Vx?7X)pl1txwD$(c(qwFYC^{F=
+zm;zmnSYo6eK8~K}ZPTQTxxW0{oGQt0rE(?y7y1|{|3#fwL1!23B|)P#y~icpA2^5h
+zyOK{qTyJW6o20y-!0UvsD6MY$A?qjd;gHie%kI(E$pMIe6z#2K9A4N*oUeQF7YnYW
+z=QuQ0yyRmLZyjBSh5w~j|NkH{-i~s^wRk>-{sho0$Vb8Ee(l=(u~x4)pz~`VvC?ly
+zqy2h*M|F_)9#TJ3d|WKHS@c{$^d6?YyYM%He-m`+W68hL{s^>(?meX6=V@_G7MlYo
+zW2l3F<GPfdyVAPtwf1eM{fopf8a@{Ye+}qZ(S08BPUvMKzeH=B2*k7pWYYCr${#9a
+zUqR3Fz`Mq;_cnP9J|{vq89v_?onwGI!4D80al#M9+_Xu0jKum7aHGVs05Mb`zG!U?
+zkE6Lu@zQ;(*uG8If3X=x_c>Z@56gIPdF~~o?n6ZXX%AoY)<_%`h_zZPw@w>Z=hJ#Z
+z<KHt+Xw9N$%C^4O)hpoF^6bH(dpYu(MOIAp7Fjqw!}e-hUoXFhZFG*Ee`C0p?ty8K
+z?Bw5K?iQWj=-Gth=xhB_#PK@x_Cjx-*SuK_e>24X7}`fk3>#pxPSUR;9S6JbJ-@F*
+zyZB1`&7@~P;xkwLtbzVwq~G<5Yo=HJY1l37Bla_;>>%ijrgs3^?@Z^TE#8yzhhc2J
+zCg~5n*5LDCd&sMe{|(+`#Qz;V#}xe-k(nsxV;MJeQhgYxRL0L9$R33(N8;TK`y#3L
+zr4sA8qU(a+9Fbi{>$zu*2mfs;GXpj!f$ySyn1g@6d9PRhFMw==7XM=?f0yrH+iDu^
+zvqjH>k0|IY6<^yVrkBL-fSt}M_ShcK{0)MSY=_(s%U?TPYoyLMqx>S+{|7Xap7GGL
+z4Di0A=Qc<eh}{>0*9jI$EVE(vqQv<O(kV#KLoBCgYuYHSUgyyB2-@$9d?@<*ED-%5
+zWC1-32Y)}^|42D*scW(12YI#A`;cFSGKcu`?@hnd#@<}SILY4oSbUZCjiUP=(#OKb
+zFnV7?&qt*#=g~b>FMEK!^d3O?TLmrp9SzEQj@CD?@xK>wEP#BWZ_jrPUZH0z)K{AS
+z2%jUrcd$k4v#V*1()_*%*>02<tl1|>KisC-T|@Uy$nTK;y2R^RbDY?pDt!8l?KIE*
+z5Iqm0=eb^E_!A#GAB(;LoeQ0(;G@5k`7!O$^t}sYE5!FL0E<9$zh2`!RImm0$dxz_
+zK_^VoFKXqUqU~#!)3^bBB<=Aay)V<`p6@pNBKFT~e%?haS4+N9%6VVk!$6)$&#q<M
+z1UruW_QcP~|KUUDi!o-TK3nM76Wuq9%~R01&vTvbWi7OXm*F+Gs>I);^j=6?Bj}gO
+zzal?Ft4EsXHi?g0rMxG+d>(^#c}KH5*|Xky)?#|Dt@X>jNVoX%@2u~o?_JZqk3ave
+z-SZdjHHOYaeac|7UyJ!TX^Z9b43e%3$UjBzlIYnQa27B{Ynvb^{f-V}nED_7H}rBn
+z?iAitu$ur~8}j8^nNNDv{onMw-?JB^wFJ8T#K*2au2Iv(pTFn@AirH?&2+Co`)b7K
+zqm}ERXN&Z%0kU^J_gV1&9lhVw@5iJ~-lJz_!Y_r+IBCy)u(^n?gQ9o5W}B_8W4T`K
+zUkRHU(6R7arO75sjOQI?Z<7q2r$zn(Y_IKOZ@Ap^ZW1~t3eN?*i)qiJ#rC?`e<?l#
+zAsc~uMbI+}Eso{j57g@SqUPfmThBKM?i2oTq8o$q`+J@Z(|Gs17Xz+Dj2}w<v%SVb
+zidP%7(4HOoiJ&K8^Ms6t=b(2Y((AN#jD@dK?VBEI?*P5Y^qX^f4@S=lJ^L!8=h8b0
+zdLKs5tfk$CN<5RGcfMB}&lH_QuxX>`eY76~?gMQVzk^|OGSaV!?RvUS)4Mw8e4y3s
+zAmZ6ZXDqzdT7P<X0e&swSU_hIwDDgib=_s-k1DK%?eP+?Q~cxuzZBkwu)SIA3uz2V
+z`7eo|OX<C+*BIRoUMoGXLHxJT`$~Gw3m>P8-ZFZphx{6?Z8|j{gQScl63<xA^KV*P
+zkdCBl73gO883Wy5uQtAfp3T$yQmtLy^UPoHpA!DbVmHZ8y%s#;&ne^X7%i^j>E4>&
+z1&Z?9bU&x{#|nDq34OQlKJ)S!CGGgG*zeThUW}NY*UGv8KBBdtJm1E+P;{=L_k++m
+z89G<ewON~AmwK&t%RJv4lKExR${8(X1k*kZ6h!wabT$UMuhBC~_<CP-uA;LOn(ZsJ
+zmw^0LnvYtUzFy;D0li0;x(-7+R+G^OEN-MT4xp38?n$jpZ;-T8aC$H6Re)ArrB~gL
+zmHhiCpS}rJg8T=xFGgLy*6e;q`Xy<fU+Fo$#5)7&lVLNRo{4ykvskUH%V7IG<j;G}
+z#Zh#oh_2!A|2th{>6#~YOFj4csM}%sc|EOVkUt0cOLR^Mynb}{ht_J(enD(*f_y%m
+z%MxF!J@Z;(e2~sS3GXZEznf_6Yjyrvi}fX1tKjQ8&wdzjw|Y&A6_B4p?+Zar&-y^u
+zD3s}o@kjp%Z->NllD5WwPVZ%)e-UVc)@I@2BbCmQ(KwUX618@IllBpsud89RM~mya
+zUY;et1N{L~x9Q@`0lmq6>;sNN-OnN$jn@Rbvr*3Jp7y5aM|Adqo~zM!4B+b#@%I9~
+z%Z2|a&<anvkUa*UQ(<?wmwUcv>1+c0MbrBw=pIXLCUf{6<UgTjXkvG&)M2sULo~;|
+z?sf7+b~kKp?WK;jqJNS2ER#0eLg%86^6Vj3n~UvY`yqT?LGPBt=Q_`Iot}BnyHB*k
+zBzhN5?}zRD-5~lF&}Z~6O5)r>YpGXRyXn20^ygc>>`k)3+X5=2_r&m3NAI5KyqY#1
+z#)$o`cKRj&_7;8YhrR~?Et)r)JWT7SNl1T3`#f!YwRoPbh~6?f+t!QkQKTojnTX*_
+zdS^t>K0W6|=q#nzxLvKKmp~q>)&Cbd^FU`?=$*Nj-683NiF6*tYrZb+<$kzL;u=Wr
+zIApv9iO;(sTZHs_`aXfyF4u_Pw>)c&)FT?YUrC(bL8q3^j?i-#k%x)@{@~x_75DS<
+zovV+um_I|jXT#<z=#HU#O?r>uDH}d7qB-X^m(HN`m~`$6wjWD<om$&1M0z8=L#693
+zFbMub#ODB%lTT+E=v*lHGhkn@`G3lG^yhK~y*w{ylNe&?`G&-CFZ9~9nEufG<|Bqj
+zB)v=XGoPOINqe79=Z5HgyjI@l;Jq&LIKf49?+<^^daZNo5zBn~W)y6mAw9@%Ks+-g
+z){p4^)K0(0m3c0G^@eBsX?>S2^*GV1KNlk3CH1-%zP8hKi|$9zuFpVr2xUG^V~fu0
+z(b+Puemqxy|K`>1;dGXQ&MDA-kIqjZf4Npi`d*no%6XjLN74C3=;ew06{M5s+=gf0
+zin!9WzW9dj6Se$Yq_3lAiNGIW_Y=L}^NKYE`3}f`ptGJn{Cza_Ooq-l(pYowciTRK
+z-g$I>kM<Cr=iBgi7xGWRJ^->sNPi`<#n3x4ZO%R*{e2A0SMdF`I=|Y>c-#c}SS{A`
+zq+TzJ|F?iI39pgvZ_#F5(vSCfo-NS+TH8x@z~4)B2Bw#5*f;R^o7i<~ahK7#X7Klu
+zU-)~B#t>rr$aAlYG9UEJRp4ysEcY5uOX;54b6+SplHQ|x?*FA8=Sy7Ac+JHaI*Tf0
+zjQ5KD@;;suZZPOK;uxQZ<r{kL0G~l#WAPmD*VA)Z-=1#}_LtZjy<)gZ%KgOF^Zn8*
+zMfVf<aiE>I`1Bsj8n2k|pmPE~^eG=)*F5(qVtW>NQ{itWoj0I+E40lQ^nA{<X9oWx
+zdfsa{{?^}UIzL1)!{?`TW>;bvLC>bZOYpo0rT5)P*Mt8)J!_})6JBj_s@8rpA-e&w
+zJgL=f2GU((^PR-EMewe_8Sg)T|NQ;)_s`!yfB*db|NK{*$ZtF=C(`%V4%4l4H|G5m
+zWOQr_GDdF>GSWZ^TZ4?G#vr2*Wc(atRQ?`h#QlOiX!!OZqw1tUBN~_l%4iBQnjtR(
+z7X2Dz)Ptg$gNzp7@ZaDIlnE*UrDXdmU!+eut-FJb#$7>%dv}l#vM0!>ZG}x+kWtqb
+z#P3OfE>Q4Zln<H$N&?ws-x{$#*oavl%=;C3A9gs{sJ~#4I#ZjCbQ98~n~QWS((3o&
+zNV_lKw#dC`pgh+bXjFq5L2gi>bD$9piUuWuQb86d4^#}Q0X2a-Ku({5#&A#+C>Aso
+zlnTlO<$wx7m7qG13*_`2XoP?wK{232P%<bDlm{vU)q<Kp9i;0w(1`HkI1_*=piEFc
+zs0>sEsspuxg8kta6a$(BN(E(tvO$IZ?4uM|4Qc?j60aZP2gQIAK`9^$lnW{ZRe)+h
+zjUX4u=#O|naiC;SCa4Hh18M;c4}c7m0V)EOgQ`KzApbzfK{232P%0=JR0ygBwSb(*
+zpzT3Xpaf7FC=XN$ssXt`p#ugQ@t{;t7APN745|P%fI2|IL1+t5JSYWZf$~7bpmI<R
+zs1f7_1qP!`P%J1RnA<5Cm<q}OS)e>n38)NI32Fc}f!v_rf!v1?z$j2GC;>DTlmf~G
+zWr6ZRrJ!n1BghR38H6}NF`xv{)IkIPpII|f5lb2<9h3>OK-r*NP#!2BR0t{tm4eDa
+zm7r=+EvO#U2x<nkf;y;f$6_3S0zo05;h=C(Bq$0L4T?GT|D85y!HrQYDC2V<BN~(p
+zD*MvMNd4UB|4R8Gza3dl;;;XE<t9($^{-ISxLCDurg}f4rH5<jNG+Xw@gO6nHSjNf
+zE4zY?2FTL)^e!um9oYRncKS=YbfCKKqyrDi^+y$QDff9k@DTXLKw7&?g<lPHgI^1z
+z^}YVmqmPkdlzW5Dm@u&Wde_@uJmkrsbWkp+7!;E_zz7D#g5p7wKzXwV82O;=xk%qT
+zz-XQW`NIQ@s>}gKC8!Qm3#tY=vj-Sy3kDd`ph=+r#oqM*$5Gwqchc!BjF3-fVG9s&
+z31aL9`8eB(If5pUL4W}ngb~FMlhaAJ(j8jeo$pqbT-+i+4hGw?lL(|1I#y<s8HYNl
+zNuA<p9ik~}aljo+t7!y?aQ>r8xQ2)#CjvyT-*4aByS=?VA<3R;JJY-Q=KcGAzxQ|d
+zy?t-@z3Hw(roi<70Pfv|tORfa#c<cbJpL-&|4_&}fjZbLVS0eWZxpg!K<}?12lEij
+zsn-$yW+B@PyXVam$iMtI&;|Q2P&HJ@CSgwgE7Ck#$W8;@W6%$H{vG)Ox(M(;05c!{
+zWgj6Q9~83qS?GX$dZLg8K877(ao9UPggnBX=O90cG63vAH{2b-;ZKlnn7!~DfPMd`
+zNb_ffYy{@EFAxvR!`EP3a5egMU=t94yA$TRa*P3h<zHLG;@2S@<_?(KRxV;r*gICH
+zK>iiq#h3*c07{;M9XRk5A3yB<%SB9i9^;a~z?h;3`nxgK*o*PY_h5d@!JHU>44meZ
+z2v+>uaM%7e<*tF-b0+1khkMs=QtmFeodcTNV(W%G@N)~3cUzdnX0;xIyOeKb%W`t8
+z)<M$Or}1-g#z}sN^C54UhP(HTq&|!DcXrm@o09jyy=`|&et6Z~CoztGZa4L(YlAe?
+zdSV~OSbd-JGVDtT^W35gnZpb1%zCk%ZGuU%Lv+1=4q1y`ec$Iku~f0#gT9mQ^XTuU
+zrcuV9*;yS>QeDJ0!mRx|`n}J%j-wA^4B$oo0dp9L1LMF1Fa@xO(0>54)v29vL36<L
+zZ8N<uP4CUoyK(d`7QMes^Jlc5L<#az>9n)1JMC=0m#1ggn|_}e$g{J28}tLczzDE>
+zft|^~VZfSiXX}7&APy8<WM_wfnaZ7sHLQB1*AD~$8HfN1&;e`%x`16kH_!(h01g2I
+zz#woGI0hUChJayU1c(EtfpOq0Fab;fR-~!mbIvb@SqhW^<$wpM0&0Mbz$Ty`=m5Ha
+zy#$P(&7h5~?WiXw;0CIITA&_?0G+@Kz+qq*VBbbv0#$$?P=GF=8|ViP0fWF0a2l8d
+zteY@~0Lp-BAOLi3;{0Bi2Y>-!1h75~9<UCOfexSx7zU;R=Xa2X`b@lld_I1}ZRvwa
+z_I?4%-+q|2kfU}#S><3uw>p@7vxD{B?qE~Z4mMEDpEK;YIan3Y2@C^vgjWK6pYUsi
+zt{G|{^TAAQibe{j!8xm|tD#xQxkUYC!xZFa!sHBLv(=FeZOa(@)hp-nG*dr?KAXJJ
+z^l<q-sl2%6AWP#8diU&KX33{zgy}5T$!z558Mk2CK4V?XM=!Mtk3sKj<fylywm%y#
+zg;pbudWr`)28;k_foTzU!58Uiu)|#p^u9Q|I2K=k@pa{2;hukh$EW=&p0Kg}zt3g)
+ztu|%{^0(XA6#NFBvazzTjZMI>1}KHS`xzTMw%NvpfWw=)-{9uV1+89(jg`D+P3j!9
+z+nE1i8#`T?sdH%I>~wYqZLIHM8~UnLIuF(HboM=$r|O()u(5-iY^-j39t(8mu^qs1
+z!1-*Rs&fQ5t<yb|&XEUf89KY**Zs#fR&bY%jlY=3A`hf=`aj9O$bH~FJX7tlv9r(c
+zc)E9{%6R|oRC&~Zm#vJAY2OGPwWssGROd|fX4H9Lv5j?FZFnxVsUKHPEKb#1&63&G
+zo0-nKk_)So>aF5h<aHU>N$tyC3iDnYQ?5+a+u$`ojxDX;%I~zL)tgc0q06)DbT^vo
+zEWT@Iojc~CGg~?*uAg0bc3nTW@}%oPzBm0kh}7EHu63z&%6Dd72Q%f}?AoHdf7!J)
+zQyr1c-u3A^18~RhNTt(EC;iNH(seYOYjZBw5pLO!#jh+<=X|wi9_^>S(qv_s@5*Yj
+z>Rd78wdW)4r^)DEi&B65@c0;ihvjhxlhgz0#k)mtt0%?^ZVB9ha7+=wtQ_u;I8;{c
+zBe=Ug9Bol4Znz`9Sgc(fT31T$Xjln1hGim@kz03wa24F@q2XHp0=GDeT-CRn+yS3I
+z+%Dd2dfbs#7susGE?8Z3{j^Xmr&5^7`H%rTzXSPzyJV3Xo_9ZgXL0fUe6OqgyDjSX
+z)01l)>i$VuxmP__#LoR!B20S;(6~bWB_CszeuIDe@$mh84=}qJKe1XqCr^9u(H<o9
+zv_N~1jo)Qa?X_hV_1mo8WxRi<*F~liiEza=7Md@jZINhxDC{g#*D=EC-h?n;cUahG
+zFrT;1zV9!&Csod!HI@qo`W~q=OPu;PUNGBd_FtsNCI?@(UzmACQ72#aqj{1q`&G;#
+zUXQ_j@ZNO&`7_8;UDLh@RiZ7ubmOIee(K1Nm;7_T(tOpumT$iJOzquyyR5#Yw%T)-
+zZf@x+fBLdV{<`Opr`LSC?%lesr;BZGC2n{jvGW(!%_knb<C*Wj`Q)w}F52Ax+J>Ke
+z^N)60UcKk)S2n-<YU$mFZv6D_{;8Kbch)R_^~1~FyX#j^jaL2q*H_&2(FbEcd*YV0
+zE#JQHoqv4g6S{VCb@v?t&2uKi_%ui4C0~T)=<K=LwJ^t@cD-u)Y{I-!_)&YhN0g5?
+zpF{gwlAZ3K_K*0S2Hj6-?o0opunAqb+YnA+Rl4vRLwJ=zzTQM$(S>&z!WDyjw;{aW
+z5Prx+f4?q#&=5XkkRLaZAJT<S8_VZ+>GCu;XOt(77Va^GAE9TPO%8Sp?R`Li+Q8MK
+zEmUqm*bNSL_ygR#KSrPaA;z8d1?=!uMJn`jD_Z>z%Z_Bbus&GyKQae#5c%5S{ORZC
+zb1%}`bwPb9Kbl|p1CDv?4b*Viu6d@<Vn|<!N&3bwK>EHr&-CRO(pP4ZzW$BppT7Ug
+zzri~l|DX2%1!+J22aH8AmRL)huK6TiLy%dhFV9=MVf{*XUG@4qn9Z7RaafBjms*zQ
+zmRK&c&=z0}!**wVEZ7`Ve2p#3oK0<^MkN>yIfF5$-xq3@Fh-BLoGQg9D}ogZgxh4l
+zvq5sU#U#Ho7>X&9&#zAPwfmx>V5s>UP6$LLr7fze3WXJCur(q}tx`yVgfHZGwg+X|
+z>66=iTVu{9Ur^S`Qf$qV(&~#LGKhy8VqsZQq?^<bJPI@>gBqlmk`^!I8pDXBLz#8N
+zsWhL5Y^$$DnyYYHdA0i@^N^?dLnS!FP0o6yH4^f*E=#Msa+HvwNKutk-`awjYK<&2
+zlk-MrCuxwCW*=#NY-`LbMWb>srf>l%5|tW#$lpzz8dIVO4<jYvXv(FgjJGkaBLwgH
+zD$v?I+DR-+dshovv~j8j(av3Z*+~1`h4t-B4mStqaA_ptZTHVT-t&=7rde(bw1)lj
+zxTdy-8of<HS@K3Hy7^rjF{NdWWu>*x))uwx&8lUm?jee@bq?{R(m7AL#z2$oYmUvU
+zY?|gSoRp19Tf!}~uM)K#$#P7R^gTtZZ!0yJWa)}4QKhY^Sf=Y8lJQEBuq=Bc?Y`jr
+z?v;&E3D>+A?XgXk=Fz|4TJW|=(U2s2V_RG2SMHnJr0CW;C*i#AJ;9Kqtnr2;B;<`n
+ze2tR6b1YZOo%C<G?H1?iuUD)>(W8|&`Dhv}O*R<f1wT8{bXi{{B8B{OkT%N8a=3Ax
+z=?;m`aX#s83eG9j`nJ*<Yo7akkNSwY2<qEbq-}n2LT=u1Hu)3`?gI0Z^-FV=Wv*BN
+z-Lv9rU@pi=uC+Jcu|n}RGgot{%@y#)0?g&#8p7qtO(n`hwn)(!sx!^u^`|>QjY=|!
+zaZ5y2n2QEh%<Gkd4d{-dk`$F<-lmY|qXckE@#_Oz(XijA_?Sy=6%ppbK-vWzlwfWR
+z`a76Q3P8x$Dj@<+R~lk5=0a-=dVSHTZ!2>(D&Z)+{Hh`1i?ua~xHKQ!&^m&OAw4>p
+zi`1*xiH6l8@wEmUk?*j=gP2Q=n39H?j0PLp6q2HH5%uKKhWQ!3e4w7;Er#If{;Bb`
+zfuF@+H!d~^qz1g{0em=W=I4zXd?gdAZjhN7KqJSD{KPVRBJCNOQwMAr#CCtW7at`V
+z<4qd@83Hl1F%+0OVll*ofrUXX!$*t*(mk6@eR;ocNV(c!r~B#pX+vE44mhJw^nGi3
+zpuW>g5Ak}bBD{?OLlQFkycxo&Uz;JAcU?0PsBfAfJe1K^GrE|J!odAFvw3BB@;iQp
+zUnWu9rVXC_{yUfXgNw!cGwK|Gg~MrBN1-3>-}d`NLfvMT)}RPGJgND0ZN23hp)*IU
+zO%ZCJ<YBpjLo>G533rZI%OcPkmT^vSHJ@iw<E6DH!Xx%nyg33i7ypIe(Ha)vtcY)c
+zE+6-ZbuHr2+7`jBTieulbZ*c^LN~3I5ooPUpI=&MXx8y)ZH>??^0rXNYZ3Zwx;3yV
+zll7{Ip10nj;^5BIt|r=S_ZA(`{q`aiHHDe=wnN9;HnvDby(N?PBi(#=e0-6L@^(wc
+zdeKjGyn^~76~!j)<s}`@2@YY`MVY)KoEM=zaSjBFRP4PpwPvUBUeoETe5^=?)g<04
+z#d}vdV$GB=;LdEPZ)s~paGYJ^U}yifC~Zwl(>E;gPCQzZodnNg!lQkm7m0e;cxLH4
+zqszw>cvD&8{aD9i^c~g9=DaE0T30@J`QQaic(mWN#*2U#dD%RDB|4r0o&sKh32&v2
+z*9l%Hc)d$Ad9)X$P4H+Pxa7?u^=uKV;X1lqr;paI+3}*}9&P%1tI_djP4nPeMalCv
+z^zD?+M93Gsjt7yCx6uxkXYwB4XG27i>to=pFj<>uwxqxJ&<|d%NxA%~fj0?Wr3tUw
+zz;nN2&O2b>$ys=V2HyTGyb%NMG<a1eymJO#*}LXE+S5kQ^S^6;eSFoxd*NO4^mz=t
+z;Vk;r8+i7SB6Uw@Bd^K8tINXMX5jUXn5XZ12HsE>-j9swd(WKrvVm6vUWW<qbpvnk
+zy)5@318@30^Zb5p;8p$BTpyjcq~~>H;eExxJD7#H+Q1vn!n@VLbG~n0eh(RVo3ijC
+z243&`=J9qJc*oy2Z}+_ho;_~Pd&$77&B8lo;O&i@*V_jM-cS~O)L-d&#V5?m<q89@
+zHVf}218-Lr-a`i7(G%wBd(^<oKWVP-c>}LH3-9j?yv{7Vw+*}_C(YZzhX&qc7JamD
+zX4-xHl)1ho243KlxxVWRy#6e_Dg!T`g=aCm15<jsNIj>?*uS}Nz<;INy=GN)h5I%)
+zex8+UE68-OzSWavy4@=)Jk@Jg-dL@Mue@bVh4A+nOv7*G8qFpL8?LAMjc_YHqPt>Y
+z*DBXa_Smg8w^=NyT;;OmYWe~f^LL;6OVsg@wE|BlR)m$XrOf!|bNLbuHH)1*f2!Ye
+z9Q0Y(5iusAa2j8E5bk-7gZ6Kn5aVU-*+DO_Jqu~i3)hP8no7lUz!kc2sP?0@&>59(
+z-Md*=3p<_fsqMFZx%hr+jrf+zA;$YI@f>uq_?Bvk;4c;5SW($57w>G*81!rBv7Wrp
+z;MN`~v^Pu_&+xt-JqOS`d6$}mJ4LzWitjDT#5;*J4%7CyrhSTO*?O6Hj?}*GxK7wt
+z7~bc*Hru;&7isN>kMgv7%SCRMYI})`@};xE);W0HIFS3hb?@y_IGs&=yocwn2sxwu
+zq9cX;d`jY540*iH;3nRtB7W`^@u}{Xivn_>Mip&*W#REXsvDn@o6f^IwwRxLLGrZE
+zT-_!7+!u1wes2Yf_`dn%roGE5iupOX<i6dIA8pUEauFY$9W>aZJzEy5=ZPLmx<5{Y
+zL<Tzq-!9zsLLZG|yNY>UDL(qlbNP~#{I_&%p7=RJp3ajXH|+;Du8U7Q)5k6NR~f<|
+zHst3!Lf^1RpVg55CQG_L+IMS6SD$Za{ay|aAJzJEq3>!#{Pazdb&*y-3zPe@Zxehv
+ztL<n~e{pjE^5t6j(>Y|t{5(sNr|+DO6!AUL$W7-(>*J%ds0MWHQ`^&8)Ay()b^X!x
+zr0qH1^-Ug5=k4js<KGPRL(g3u4t_>9=`R)f>0ITniu;dtJ>lsx`K`BB{u@Pn{UZO&
+z>uqkODLTa$RlHut=i+EeEQp}S4j);4a_~<i=Dl-^cZ1X%j44v|7TFi0*T`upAlxRi
+zW=Uxa`pJ-l*({u7Mxu?140SQ7u`MdmjG+|T!kWSnDa4{uYj}&~<?H>5uR)fW&h8D-
+z96imYGq0q0#q_yXoh0`8{b^#Yd>W9vm2g^!*Q>}eiq?z3sL<ak#bUl@h)J!Dk*$=I
+zMxR24j8tiFAgHmbu~E6CDHWZecZ&~sh=Hbg1j6AK))Z+|Vyvk>8dM~<r702(hLk4O
+z)FijX0%~9*;_%a~wh&XzXs|h;sM$@6isBBcm7w?bMj7?V)Elp1vVVmf47GKTYc(>g
+zE_3i&O}c0j)$6522Q5HSS0KFJhFC1gP1>n7s4mE<c5WKR0qpjgJ8r(kyUJCOoZ+*m
+zu!!*rxwu<zPd9T6wp<ZrF-Ybl?cB}v)4BF`asMt31}~wWL))vD!e6nZ=HYmFPBNVO
+z8tRwb!lZjEnMZ}$*Tb*V{XP6#(E~kv58;Dk;yOD-COW^vWMa^8giKug17xDJujt`t
+zT6=o<S-F)xd~8|O!_Qu=?%`+3ts@hic@3H9Fl)&~O6$l(;y03s3w9Hk=wIr|#C^d}
+zCK4JT69W>NObluwWMWXGkcq)d2bn0KZDis`(Mcvc^)52eG4CJ~H>q7@VnDK&Obm3o
+z$;9BMmrM+1ULX^lgEhWl)OvjV$p`58s^hy)vd&+QtA6o)qlNK3@%)KbM)T=_>VMjE
+zGXM2mC-c8JGOF2`&OSArvQOyj<2rj>XCKztkL&D5b@l<B{jkn{P-ow-v-j!jy*m3|
+zoqdPS-l?;9=<E@lJ)pDK>+BnK_FA2Noz7mRvwL7KcJCW4cJ3R^b?=Gi*nc?2*uAH&
+zN?dRGn?&Nw!JWKsa#yYRfa;^NYTsyO?Y>cK)t-2sdkEb7PN8{SUJf0(&ThCjoI=xI
+z=p;Am9$S^T{)ENdcPh_4I7ap8Mm=`z<on3dyf~ff>ap(|^&ozWeNSAg_Z;{4$8y-?
+zaneu6)0C1v_>r52rK_P=YZq?lD@Y^~G`Bs0bQVB<5^0=_>>JIi-4kEnes(M;xR{QU
+zSy%v>3CN7FedyY^$2${=|G?EiM?){P+51k|oP8(u!fyfFKK2BKRrQ@{Q8{(A&Go|l
+z$iEf(C>>YOQL&`^#wSlLaBm+QLwWsJ$m|d@|CvZ!PI_}$-zm~<bN8KK^}9!(74e=)
+zBo=NIY3UGtqwrgYGNH1z*tf?Yg1;5%i9>${xaD@vr?C5k422`j3*G@|<Qab6h5gSG
+z2|DxG39|z50287f)$(!k@?rHzUj%uo>KXkRPxq-y=;&@|_o&tW9P;~vQ470|jz_;7
+z<JmJ-_uf&f^M~-;aH5zV5s+V8$)l8xKOnz-YFl`A%)%U}a0^@54Y!p&H=0}Z?ATYJ
+ze+SY}<v{6YC=)B|J8?7ob5KTBQ9lfEFn8Bz8T@O}HgepgZ}G|Bqim{m`Yu6urHMY5
+znvXsz-!uQs+_iv5Rb=Vv?mRk8D~$w+F*7tTjSlDyqN0NugrF!&5YQkj2}wExfuu=-
+zz^pUVKzOJD0tBBh^f!yjFwRW;M8z3!ql+t}jIul6qN}?%X|4frF*>L*-J$pVx9a9r
+zci%{Y>+UAs{pwwH>eQ)o?ydT(iz(C(iet)J4dHzc^Y<(82>dA}zD%IUPrLyyoKy~U
+zmgfupP`}(P=<o;jI}6ZuQ9yHeh+p1K8uJFI-z&5t%AYIIiM*pFIzwlpr?M^ROcHcb
+z{uA5Q#nM$rG$pZm?cKA{Pus?gJQ?*L4ta`qX#V`qKS?RtsQNKRqrmIOh?dP7=H7*f
+z^K90lNpFRclucT6^gq#j;bS)kV@GLn{7j6WD2uV%o7409?y#sYFRs3YwjJ8S6_D4B
+z>U+e4(tf1By}^*pvqp9122}9im9v;{!RDvPWggC#x6eZ6gU!3i9ZhBIqD&GCsK2GS
+zVK!dpAIa|?yhC#;hxIvWZwla>(nYRnQz9DTB1A_Cn-QXK=?~jzjNZH@*t|LUb@la8
+zC91+!wK#^5{O1Il?aC_E#tt2K4Cemi{1Wwmlz&_f&%cV&S1D#5lnK(jRFu^%40L)A
+zk?bDQ>Dx^7If>@B75h&(iBAqTqxscnbT=b^vTaK%;*+VLlh5*bOyLaZgE0Z#zm*iP
+zcqE=tT?;7gHIm~r>J#aN508>RX&t|N9`bW&tyuHN{HJFbg$J!ZHFaKDS=q5Qq<86=
+z+_XdUKvy<xR40(0@g@=9)jBo96Aa}OFGf?pZ&CWU*u8Zs`kCSx*J4wq4X`Qirl+vQ
+zp|6OijP!aEt5ccsuI3^6-M5<FQ>fj&&@&{jkO8tK{ryFx$4E!m^JxwSg8glQpab&D
+z{K4jn^d*M;5WRx9(rF%y7kqFx1s%{GV`vUJn`lmY11%2EW39C;a1y+8=hD1W0-7hE
+z&p(=<&EO?#3Wf~-gw>oMUh1nN`kDd#P5Lh>e_Lx`mFQ{Psu_0aFd4dfte;TdF?a1=
+zKKC7-&8@6y6WSS|+YqXs>|-<RCj1U%CGlW|hPa@p<KW*%qp(?7!meh}7}}e*wAwtY
+zsLpK~^VI423#9yQdEi-oXkR|35xU1l`p8avas-3T^t$ERNpj&NeZo8q+6Ba`Cty32
+z24N3^A<UD{I>EzxL+Sbw(tW!9bdp|5rMczuLRW9m+9?m}nayBhf+3VgS=9BBUcN!+
+zOIzOl6aU;vI+W_mrnX_PQmD^+MS0M13i-+P()fKq{$`R#Z!KTzXeU{S&@;UWyy9ap
+z8G4cIJnXbX-A20RSGvA%LI#@Fw|KnUH8;(#q^9-S!&Dz^c9OdNxRYG)%%i^xK<+kZ
+zWM4m>yvpPu_-7+|aq0Gp>=fxIH=BxU-`;kT9djrvR0o^gjB9<Uly0-mK$eMi)D7L`
+zR_3Y>+vZk14A~^vA^CQ)+<Gmb^JaQWn94xrVNY$4YfrsCW_Wkf$BV{|?4pg@$xOrb
+zeXx-p$k5afuE2uMWMo5=$%aBt8g>tJU}Yzt1K$#_A@`VPko6?p*3@cFl6j9mpt;Eo
+zwPEgycP8U~X#AAB^6t5(a6;a#GxX&iIb1k#(&RiG1;ILFsqew7ffu5`#Lwg#y~C@$
+z*~+rv{wrKo>E4OssHzFE+2TK%V^U{SEU2hlTH!6JEcM}AYTT{kC*)1M?e<A`+&THK
+zyQkz&y=U6=8TZ~-F!TPo#U-V_vU%n6A6T$(QAMSHaaDEAk_VSATmCa8XVf*Luf6X2
+zF*g*l8>x~D!~*4sJ~Y?+m}}UtiTz4^yJ5`|KiTCLYZn)YHMdK|_t~Xly(Ck7r^)B6
+z_lWgc+{=bF&(U_iCW^a)<@43qkBhT`ap$XtrE&iOCtnXKV&?g3;7)3tCY}Z7sc{b?
+z&Qtf|IJLe`-L>!J`rmtcbRLQL(ncL0H_$wP1pcR_IBjV*mtDqt_7dG`3FqWcFAg5m
+z7n!>7ni3*YM?~riE&_@v!!jQzsp>h7vRAk&1BbFlJh&Iu9*1Y>C*h?aYj|*nuOkjG
+zb%}(Rf^6cMY){<B87$$YAX|8<q%({LUg|0d2L+kLlPk4h$m2~Cz6mmor-;S&1F}6)
+z%7;0C=a>kmN%^KocqGhCJXZLjJEVMu{1sT>L1sw#uup`i$pU9IOUegbfX8Fe?pz6X
+zGiCsP+AQ+Tm-1mf6^|93rdq-e>3c{Q^RbK{x8-85#lg&cR`soxa7NHwN;mm7Nqc{z
+zDc|UB@;$~(e2%^cb}{d7JkD*0R3CI-_CWqEA3q*DrF_r@2L>`r+|q7l;&ZS*eP|%-
+zT6>oB{ei{ebC55?f`9S*oW}?9JL0}$pL5js@z{$Tmossq(#?kD=o=;|qprytWdwV;
+z&v|{^K4(RBbz!-WlvpWW;slOIjvYDbsxg!jL)!$t2b(vcC$!yg-Ka4=q-~4^Z2%=#
+z3nGZN?)G858GNs?ZIdqd$=HW=Qre|tNmIl=r12O(){x9h?B^3J%_m*hP5F0a<Ujvf
+z{>b~dXExAtp-q2I*f?fF-p6Gd8NckMudS>76sZl|A#XfhvA%1hP1R~jt@OB2{vJw~
+z+sEBncx2qDNBD2Mdq$V8O%d~Yf!N#i2z@wYqM9BIK4ZJY8St!1d4#6I=G?!tWxJL+
+zy+i5)o)O8m+N3K6Uo@JSbP0ZybX_hB<SOe{<mLw0tt_QUzH7<q_crC<0KxwBPnr2!
+zDK`uEmhZ4%um!gY|9Hl_uqb&#*WV`P#oo~*p|g#@JMqp0oR$dREp&eu&ICLc{%JBk
+zOY$3gP4{7+N%&`WL+}0F#LqHtL5$z2H%Ce<6z^w--Y=HYj9(G55(@0Wl?m*xj^z;U
+z12RsJ@w>SzkniQ%?2qgE4bs+mzKZ^(<fc1cz5C^yJO4A7_W6<@*GHc9{_gXRBdyof
+z?AS1+U-R#t^QHFp{W&RZch$eB!`HShcw>C?=f8S-&QaHhrmd%6dGMvCN5@`jV{@WI
+zzuESu1E0;X?JaoNvFW9=|CsaJSH>T#`S^o_H$2+8>w<|hXa2_<^DE|k;C*R<`rMT>
+z`_3)<;O^NMpS~b`X8F;Z!bjbG@0iy4o2tscyjS^H!MM{^;XbGTRD9`?%O=jc;e~gu
+zzw)!ocf3`6_}YHMFMBS!=dOP^cyr*Lln*xzyy~IcxBjs4nah>IbLRefbIOn<4TBb6
+zbLicx?tk^lp|f&s8s3=w#jBS+|5eV;vIACQaeRQGPx#AZ<U*SWr!%pHq01=Vn_rgh
+z+(vk-FbGbuPg^ctKn{xh@%!+D;=(^;vHQfvJ?x5j2fM<!Q%lr0+mKVSPrXwBAQp=D
+zcc;YGx51!KgwHr)_nlY7?dyLTm!2cqKP1ZAMSYWPvHSK1ME;va`=uh?xDR=opzlSI
+zzD(qQ!@%W<^spm#AOE&Eeihkc_wDZ&3|=S7H^jA95?B5Mk)9>W4-@^%67>GNsBgC5
+z?|{@;e!iAs)@9%@bR3pwZ;zx$boxa88d2ZJBHSj@HyGFugMUW*qP|5Uf4XSjXWWk{
+z>bo>GcD%GW{uw`zI@-WRu-N_^@0wX+U%eT3r(bK}0NiXXK=4Bi{<!tKqR(8(_u&zS
+z+)ucYuN5Oa3wOAaqTglb;j={Vh^72T<Pm;>%8eavmIt0~`n?A3!p-U^|3{S^|A8>>
+zp^Ypya0PBQ5qE(NGU-dk-KcZSaE+ZCwBsWDA*Cye_&wbSXHxjHLX%$H8(MprSswR5
+zZ_6_K`+E-T>Y^98!~!xPHOV{-Tf6s1W_{TdF8{HaANNk~q>mcE;0M0{$Br=D8&3T@
+zwAdIwH|s;;o%1=q8sP?NXY4#PKkn_@Im2x4OG?kGFx%Tl>3hhyC?fnO)farwEdK`T
+zTgdNYL>M;uqYN`0_vHoXy=9jO<4)bio6P#hQ+>m#_#J-;Ux&NPr<(M91Abj^hD&jd
+zVVYV0`xHJto8MoKFzz|slV{+J+-wZBU;YbzegNUkRNwJYe4Zf;-0$r_HE=?1b|>yR
+zFE!JDP4z#2zoGBk`h9W_-9!8rVcfrWrre}&Kh<|^BEMr7;j77QD>3B<_XQXI(yTw5
+z^4E;zcK{;nLw!DzKe!7taH%OjLFo)YKlVj*F~v_GVy1rrel9iiubVwY^=&KSb_C(=
+zl&@}>NiXzB`^_dlzXWdP3bVdRn4crf{0X?1b7Nf!yI#G4gqT<5s{mZWFOGaJT2kX%
+zR=BXTWC1HHSy)-^OGsN%p{G{)mg2k_N57!Dib^U`p#x-mRaF(0sAMh<rm-^pY#lG>
+z19qdNX1U*2Sd1JpIsUm-)xJVOkr@pXPSw2mrG-@qvHVabFfWVza$+?SQ4N~*S5_w!
+zq%<m6R-KSaEb%XmBY@MD5Un57Tw+0&e<`OcmLTi$oRC-os{NJ(Bt(O)eygUeb6Pc}
+z|E^_RX3%Ox8^EZ-!m7DT0Wm61=q$1pFRxg#sMuFk*j?(}MLz4a1fm49E$9Mgd{qx7
+zQfm=AkH;1-_g7ZcB(%(vEQu0zS<z(C43UIi7DX(MV$w_@aTiFe*m{wzcsX!eR5fzM
+z3T#&n5H$*|7vdl|P3s!WKpoXp?b8cUz%P(qfOr)aVp>xt^`q^2sq&J_in4BNPmmU)
+z2Z;r&B&NbwlQ;q*5@eEq=&TUGs2W!*#ddMQBE@n@c;!|jl1K{?SmiHCBrq{@o*vn)
+z;PNypa(Go%<Rmsi<mkUln@EsVH2PXo3C1ThipUy$F*-KhsK$z%?wXMFpAJZjA4$U`
+zP~KAC!ug9x)pJN94R1x9+;V}CRJQTMx}1iEBnn*pv%*PJP-6*~=9<a{LUAX|6cY0)
+zUk!d*cUdWUm-`cxX4h};#uCDR6IdvH(N5_SKP&T9mT}stttAyaF{VbnWH-ZY)S57D
+zx|);Fi_*H5j4I5(XVSgnrspMK3?1TM_ILN6B-Z8)m;1i!-~NC0&$`f##jg~nri<^9
+z4XNguD3Fh<-z!No*5HF(X?9kdYJRsM4_3K?BF?}?{$AwAni#fx+J$?}!`&uw@ojei
+zF1>smgiD|Qhv3rt+hMr$opA(i4r6X|fp7G{rFY77xVSS0F1^EL!KM1VaIwz-w-3FW
+z!KK%*5panz1@49P%>uVCFlRO$_c#_VeembPr4O?SaQoAHC0t^{WVi$9y&3Ms^bQG^
+zI#K|a-rr}#y@cLX;b!9gI-8D<EQd?XT?m)HQ~Yr0`=kag@RD$WmxMc*-d*9+`)Ms)
+z`tDl?m)<|?;L>+nJzV-;YJht=V^6@PkF#xX={+<Em%ayg!u<(-N5G};o#)}=y%a8e
+z5AA__HGMn5rH`L|aEZ^@<E~@ul*a;R$vQaBvM;ce9UMCdfBUzlzfJO=ko>CTKPLGP
+zOa6nBze)1%mHds8f0yJBO8zG#f4$^iC;0=Cf0^X>Oa5}nUnKbpB!9l-zg_a@O8zmD
+zUy=OTlHV)&GbF!9@;fCzll<-N68|Ot3CXWY{$rB=u;f1|`I{vFUdi7m`FBbFV0-uY
+z(Vs`7pC0~(pRED5ZcOeDZA=_?)F0TNksXH}%@WvAEgC&#U`K(E+eLMKg!39=pB=a;
+zMd7$nhj&veWEgcg*a{VRjSLAhiZC#vknaMjCvr9#Js{{RC%VcNPM1LksQ_02@PDjU
+zT|smt7uBj6>@giL0ve|Pw@0*PC~I`A5c26|fz_b$SqiWk%=HWOLE!tGRNrUB6A!h2
+zNUSX$#+uY^BTuG}BOWg1G^C=fd}=EItj>&(TfdGz*gOKbRE5&KTXeh()$3?myWg4W
+ztyQyhjAk(8P}VhPDJwOKKXH)l&<^TY(OT8!sa10XRy2dH(MZL(8jFBOY-mjh*6KK0
+zqU~+q5tF^ZC<a4|kUu}ar5~^|%2PU)j#P0bY32}(OMj-Q4yHV!*MYQui$-_r^sz14
+zmuIQp-qj&H)iX=9`ySGBk=~$1&l>!z)o@x7^p@#7t=IZcT{cE_GqpeB>%Qi^QWi&}
+zW9ivP1JE{Q<jG@A#IwV9wb+Okz!lkp!DcsGuK|zaXbd)!I(*8mtWftrHvMx|dwrd1
+zE4r<P1=LVV;LTR>6qu+C?~~fspeHxK1(@Cx<!Eb^Xdrc-IaH?|I3ZwoYFn7+h_*rr
+zHoxetZ??NG0!AluD9Jl;ZYQHr7ch%%&vp$wbOGzzxL!LYFm270ZexDEZ!}i@(}DTf
+zNcxt_gh?)j=s2H8X&hBxCqJG374LUD^_9(~aeSS|t7xO@Rv&9+LCD6O5c+Bl0KXe-
+zzLscL>vw2rY>j$^+DvO)qh_(EwK81>Np6*(16W<J@@O*fy?Ygb_0(mFxlrz31@5wa
+zBQUsIHKzPk`-wgt%r%l+GLf0!o0IsKN`1^$wrfv|`cXHT@=Pa{bFpd7r>Vd3dF!RT
+zXDB@_pJ?<`JM6yDhs4VawpE{FBulObiIxoiYV8Q|!b$ylo7{zGV&{&|o2i^Pz{|PS
+zt*xwH@P>E-nQ#OIZy@h%wYr|_O=(=M^Jb6*Z`@tH+1kY$lzUX-O&ajTp2xM9#n?h$
+zxIDlq@_qu(Iz#GfAHa*04>a(Q_}QO$lNq0Xl9c~%z}fkU#=zsmj{?D)$GdoQHFy(P
+z%Xw48d6WOQIK47%<jDroZ4I(+16Gat1T0}d=SQtNiR!{QeRNi|PkDg7ELC_q%Grco
+z^9sFoyC?&kWr`nj`f+WTXKl-L!H>^rt|KnFYo4#w?D=^uCk4GNz_NcCM=y=#2$J&=
+zlANdOn7TP3eO@<$U+c9bWxa-LE}Wz<Q%Pno0e-lCjhYd7Qs<QyxcuBTs#j?MZXIKj
+z>GW==a@#dG+phH?zMmF-P4%wvFzB)%#(w1hdc|_>iJKQ_!%g{J)L&!HLWd3W)V5qM
+z`pbgqi*3>9AHgRt=`{3j)LDKOzzJE&Z_sKD{$lRt*J{W0F@2KidAKD-)N@$p+mqTW
+zozYYF;2kX)frm9<`m_8yv^U93Ro1A(JgZuuW51<5f2FwEFJk%F6PtFZGts6!)!8$f
+z_UFz-n>MzM(|~i5y|HOaJHMYzd#Ll=Hf>6$Y14pPJztx4Q>SUup6yJuX?Juc+O!us
+zt!>)g&pEGhe?XfyuG8A4RdjxTn|5pG`PsC<Y2NSiv1x-k&(Eg)sPq4iO?y3(Xw#nf
+zuh_YBJ~r)G<os;f`;kPOX6x*oO#?4S{twu+pG6XF+C!hk>6ISZw1!CUZQ7QIwN2X*
+ziM46@k?w6;(Wy9k&(o%rMt*pkc3;HWrd36{w`o6*^xURRjl|kCd*s|UZ9;_Gw8l?k
+z`PdViHZYQC)3k8UY+8CG(WaH3<TT{=(x$x;{(d&?t?;>R+EZcEra2<#Z`0O=O`G;b
+zIMJqU4JX>PNZ8t@9Y4W&HTeg$X?0<1oAzq>``ff_;q$X;&$se^pO4;tAZ+UGvR>%z
+z@^GTw-V*L!Z*S|R-mdS3-gbu*_4a{J;^s~d_4Z|9u7ih0d#<;KhpqK?PB>O?w{&!`
+zw|8lA^q!~Q{<@?0di&aF@AUS`4r{%g6z*Pc_YKGD?RUOIZ-+W!^>#zYx%Kw@9b9j>
+zACKi@PxSV0IuiBv(vF_#?Pog@^>$;3)8Ox=-k#p^{q*+Cj&tkn5gn%9-r8~gdONej
+z)Z42%67}}w9f^8-Lx;8A9ueZaDv<Sd59jNR9enOR(}VdsLX6oB9f|YROY=3aBX+)i
+z{cZR2wY@oRjG=pV`VQ;o3iWe<B-?hJZLf#DVXmPRw*b14-1!)DFV5w&Plpme%JleY
+zp;G)bs`8~i7VS6}nE!~za*t{_6Hnvh8Uz|W^_pF`GhgZPq)%P7x~<uy+Zrn8;%D~W
+z)L@fr%2(Pd$rk-Lb7vnORdwg_JCjK=BvZVRpcLZcD0D@d)f+e3h;}<$vGs+nLjk1}
+z+h|d6#XeJ)cCowGNkT}7#Eoyf31+m~V!OLWe5;DP!;6Znk5WV)gsL|)TmyMy0^|jy
+zvfuAHXEJwQLSE44*+23mx%b?2&-tBme&=(3zw<lyGvv$qyY%`<9^*ApPnU1K<<{!Z
+z&u2A%pJfy8*=;dKmU-CcvhRvewHeWG<980yGaeJ=nK}yNF$@3y5PxSG!AMqcYt-eh
+zjbt0Q<NA-}*l!9&zk&Ojv0K#f9~jOSUZu*nPUN3M8R*B<JJ<D>neV)Wv5Tg7U+eP*
+z?~P$R<9LU6w}mkfVLMkc#vQt*2hWVwW;APNuv+u}xf*q@;B}Y3x>AfUU#Ng(b2M!$
+zWcfZkd2)&Y-6-eRO3`nTcWbs+_B){)jV)u>Fs2`4(WCSq=X;m0-eR5Xa(<cf_yG61
+zP_}20kArde(82peo^xcJWw36nrsjT&@s(nJ4Mo3qoP9hP`8}?E*<5qu@yuLPb^P?X
+z=36I6#x=V?mg9?DvmLr%dsylMj|pASWaF9!8J~Os&&N=Dp%mrL2|{mbtF6bsuyGA!
+zQ*6{`^DK>^&F>?*W~q6}aj6@~HRO;{DrT8n@`O#tIK`TL6?GZc+~cW7;(T(@#wR>W
+z<3OL}lZetEd-1#dqh$TTI=V35yX^J|zp7(U)e&{R4COo!YP9k&4}Xq)^L(^NJYwBu
+zuVa99Tq^3gDP{iVbI1GSc?YbcTh%dN)p23Gj>w}x*(Ef6wN-Rn#l?%*;nkL=KP+O2
+zX^+VA$?@pYUl7+0DI3KZ>KW=WQBFVO#Aio86!MYhb?iafb(9Ynfb+K-b$gq?KT6lH
+zBjKTqeVKWv_!K;JK?WWwJ_Qdw-IvZoUg)B5UpfyJD<1mazGNQi{%d9)@`8sN`;vLc
+z-#0K1c@+;m)F*l9;QnMe4uywq>r3aMzv~+s58c|A&O@PnvJ9bN@{rzldOS3?Z*U$u
+z*qh*?8GR$?p*_6`9{NsSIuAjirSZ^peVKWvXrGkT!V&OLPw((~sJk~a4>|ghd1zzr
+zz&vztZ%P|y;-Lm*S8Yo0P*CyEZ&G;ZUlkAClg2~KlXz%<@0Y_vJU1oIL>ri=8*89a
+zl&1{WpdTjUxA)4bW}cVeHkMmAkz0&i*2O5-%_1a!W)$2r-s5HYc3I-A5mm;GUs4&}
+z+H9dO$XfYEt;w@ou8p%+XlpbNI@?uV7s)Xe;@*#&Cy}$1tS-X)8raUd<T*K?cUeo-
+zJA}<!&F4%HE-7H&Z$sNYZ!`$b5@W%4MC8Zk*d9ECNz-epQRnKMK&Zl1zO0h>sW&MD
+z{1iBhHwxor+BZbTTAIRGnl?A8`D&Ox%N1Hami*8w_^C4D@{+G)TRhG(rCjTVY*!;~
+zw&JK`J(8oEz5<SN^=9U%lHSwjs0&BPQ7b-><C1mNF^B55In<-(P}+&m_eH;@ji|I~
+zz4a~B;b1_{qb6jQ8zO70wI28)*-lh!)McN6wBZbM<HtSHP84rP7wSYtI7^&k^Qe{6
+zE9=B_c<9q$-^fRODbrOMd?2I1TOB-?Bqi;N6dy<~eIUU{#hky_<^%Zv_kum-v1)4<
+z^%v^59lxL2ovgpeW8R8J%L`e#gOt_k1dqknb?6)4=GcFb{-IiP74jYBs}($U^#DA!
+zSIB6!%|BFYKH8JuF|MV^Ad^wIVlc^#HXa)%)?IVOc{(1<&9s@l)T7RAQfoR*Uuiwp
+zV`sIM{jAoKfz=|4)t>4}u$riYVzpg1R>ORjSJER{?H%Pm+JfIp-cQ&4BVo1g_Y9xa
+zMh}zKruJlJwb?xbvs!siGON9N3RWxaNoF;xdvI2}phvRWmAjJVI22a<tUI06ws#MW
+z)q1<rS?$<PS%#g%WVNTePmk69&^<V--P@gDwNJZ8&T4mdCs=KFcRH&r=}u?0Pr5U+
+zT41M?)shsSLu^~4Rf<0Ubv36HqQ8%0-^V!C(eE#CXlo16m&XMwB2I4w=9Gn|2Wd7<
+zf-b>a!*kC#hm|AE+2vIcx7QhQ85I!?*Cye4x3?nV!T&|UddrJzZd}uv%&6A%rWhab
+zbsgK|r`>W+Y8A|~$KssS0a>jOGPLu+splo?59$mT`u$kJZ!?7bCJ(>ABhI@@@Y|J&
+z-=?PWn=bXwM&m)j6o1b)GmeS-RbI&y^Dwsalz;m&)jr?Vv>o#xi#*7)5qa`&C;r}|
+zd<PiQQKp}w(r-F>a-U|b68XM@G?S2CGaeHEzli_6>VJp(pQG<6etVXT6~FG98T}*v
+zH^77U8C8(|dBQJ&I!6Bn?-<ATqmQ`JpIzujUg}iEFmLp;+!iZt=X#sh^hXubN#+al
+z8qYlQZnJoga<Je3EJYSak0t6h4{a>U!1GU0hL4b!&U4i8-a_#CINaC0H4!~fV|nx{
+z{9Oeut?Dli$8BnPcy8emTig6HL)*BtIXs87&LiGEi|3e4iQA_hKPI`V2>rZ>atv|I
+zS4umeRvRf4vR#0|1BS-@X}1H;WO>YZc^((#nJ(;ryDdj}X{173_xM6_UKaL1j(Lx;
+z1wNi&RQ-gQ+bR^JdQeWyx9n0)|I4LXd8mYWbe&aL8@~7OzZ1srF<d*wumQsz$~FdU
+z=orIoxVuwi!`<CFV90QHDDLiFq_`AX3Y0?m?|1j!yicAa7s*L(lAJurIiJ&9zsaH$
+z1R<c$vk$qdohB|>rFM^Pwv2=ff0w<pORX_X#`q3Nsa{$yKOB9hqsWU{(ps~UuHB+F
+z9DGo5cG%J5Hv4|HJJ~N5Y9R>q8Xf5+SsjmQYz4HY!`(~xzYY}IOw1(g`A$2Q&WtQ5
+zgN#Mz?tCCp&Kan8BSXG_gABUg=Ixt5&^JR9AW3Fjw?4`jDxH?n`vHD_59!S~s5bh=
+zk&UF=c=32-D;;4x-K!_%HXPpwzkZg|uC&vglAi6(>|q<O!)c&J+Q4>+=bta!4O9IE
+zei_c3VQVQ3aM*X%Vn{02nd2#zulP6wzU!@XG?h1BJujCxXyZE~W}bAiiY77jt-ty$
+ziaX0t#E6q6IH$+i`I)!yz;cKO_bvi;?v>kcd{q#=3mc)Ey;`o{G}sxL2WI`g{E~Y5
+zIYX~Sj`)FV+rBi;EJP|nRubCWI*oW*I##RbEw^PFC>4_36<yHay%{srH;t7I)#m&V
+zN`Ue$>wCm_C&xTsTG6tU<><b%9u<S9nQAg!_18yf5y8Fkm^hi0I=Q`iN#cVfh<s9c
+zkyU#mXORFcmhuqmg51#w@OtcqH)3{v_qm*+C^n**Z_(vUCtOl4qVp@yt;D`{(?z;_
+z$mzNzUce*wep*gUdXC!Sr9f%QFEwTNJyYoP(*l)m?(7SITDOW<BdBf@zrfw<nqy(Q
+zHU~Mz6nU05#K|}LjT5Uz(znh^M9OZzX7^~&3swi-<EuY*Y4r+rC6E>6Inulw%u@OQ
+z9r6kJ2a=e)SlE(#s^Ig=%^UZxgDJt8#UHM;qq3F{sLYc2;V4o7!eD!{Y43N=<7T)#
+zjg;X?{60_7&<lGxR^s18luYZAL&^Mh8twnCPh2vzBippFEF3ZEDl-J<8Yhu*wcvxU
+z+O=KoJ@s=j3pAn*PH`M6v>-HuBzb%9qmSHrD0li`_5_<7;;CG47p>q*?7tt#<8@|}
+zYRE7=BP_2Y4VbZNZVaAeGD!VrIAByQY~iy`_vtn=d??9sIndgz-4$s5vP4jdy$sjS
+zg!ndI#&Uy*TawBZi1no9)YXsYSSYQkCA34TnfPy`D{Z-MKNm%~5pnybPKw3QUJ%}X
+zlzv!`vFt;3ew|bMxc<$wl~BiFE9^oOFf_B+_+Cqd>OFBX71BMW+}=4@>yu!&NB5B6
+zzc^0!^C6O=3sPopU;+f*ZRcm!KS-4^G_ZVGL1z!^6fv69M1!xhJ^uR9*Ez1qHO%w*
+zMrJfZte9?keQ=zc;<?Jm@L`FK^ADvu>5H``vG^1RuBPm)GF|;&y9@5=fZ{y(T_7mM
+z-X27?PamCNC*_^Z^>qjKdQ~)!Yl@_gw&ni$$S1L}_kL=sdxbbQO1Tda{wBNmxltGI
+ziYdcgDs($tAKMdGI9x8?NN#=zI057KSh$Is^}FrA&LMHn3Kh4Qmecq)`z=(wGurdp
+z05LPQ^NrT?tWlu@sAE}eHGK>A_we;(e}}a;8P|aJR>thyli9m?3WWW4%Q#ml^|uQ|
+z4Xg`f)Rql<W{w3YJ(vjIH7Ne9@5)SSRKPp+WBBQf_ao_m(Yn@iy(6ez$k}d2dEr#Y
+zM=BY}MA*Ar-@m$;f(Lv*ymh+8wt90zypCf{pEOet#mI~5!*xs5H^&A7vhZgmsx4UQ
+zL>)NL?M<HN`WGJ&#Y>GNqGFNc6x@zrcT}F*2(j$?@kfdK-A@+lm^S7Ncla;D)@!o)
+z;syFImw)pKTbm#o3fB$|hlVa^eazpkI~f-{3=cLqzFo(LV*gC!>=(w`S0}nvsR4AX
+z2rEGt)Vl$-41d4i)^t+`K6jqmgV%lsF8aZZ+9j7fyV}LDrO)@r8n;wv)B7b!_2JzO
+z^#f?3@I5F;0g`%~#!nCzamR+LdN)XX8Xa^9?H9hsWIf2=Quz(4i4rob%?Y_N&@Xmq
+zvz?rC=p-2bwG=!}eU7S{8q^K>az6^}_^Wu7D`sM-N16dosnww`x|`CXPx*%hDkmG1
+zM(#*ffYS706BY7;0zQBm3a0rL&eh|~Jy~-Wtu)HS`&RE8AGsk_=S6+WIO`lNfI)|Q
+zZQtCG-e!JT4j!xS0{*Jk3hTa&Gc8fAGwx^OPYzCPQ%=%TPhUEc9Bq9(fc^)orx4E+
+zzcxQh+Q_VQ{cF1Jsh9)mlsVeWyR9j5{{o&<1p;n??Paa}@ZPpO&gHm5ccPO)1lCi$
+zV6wGvI@7$)T;<zw`fKx1dfZsfr%k^I5YhOR#;F-0USU~{V_md0Bmww~?2Ue2CC4`x
+zN@Nbzm3%d+8(SZ8k<F|$JC`4*&>u~kJ9z~E<kW>9Q`c?Gpl)TFI5V2Vs*U2z(Y8t}
+zl5B-1i*$=A-VnxXHl>q9;YodSq~yhN7Y5~H$`2Mv8F!UYT9$k=vKN7xv`wzDhZz1(
+z>PZ#bD2QEna?$iqcoJhOQ|H}DtJvg?D1gFCp74j6BK4^yq_Xx6YP#)nJGFcE&`NeN
+z;mIfyysZ6F?bdN*<o}9cZHugZNC&IA(Bat@ruczR*!SU*#3bW>RyvX;?znxaYv(po
+zOMN9B%TS$r9>5{ppx*azQ;?Lm8p+4g=Qqch5_g+G4nPHs44~m0!V|;U0e30){zn*R
+z$eYx&CzZey5^A6Bt<%QlH02Z5UU9XvUl?O@SH%y+EB9$*qX$P#lheiRYJXDnXIH^c
+zi(U0I1t>0cylHmlMAVc>BYi5r`^`;E^w))drq9>XJt%r^tK9Au83K8s^X0|!2{t~k
+z=KAZFB;;z;XU_x?a-nm>2_c<J98j;9C$&3?Tr5Ew*C;t9J?g(1*R!HAN!^r`;&F%A
+zRgJ%Oua5ur2SyzQLolqX8y}m_Js0KbL%$|lyF>@Pypm{xW{G<*Zf#*Y^yCk&&#t{i
+z+SROh$nH0;S~5+!CNO_H;ow=Vij@$17gvR>atbW;NAR`7_iIthW+%AuY6sn%6ioe`
+ze1s4fB|a)MEpAR1yf%1+nG4eBDaPiFs{(hc>-T|w?_eQW|M)pX!~TfTWUwUVbyC<f
+zL{e2l5o0Pa!qv_n;mWj+6DEJg1}MCPwQ%?&_)YzUk3-#kgi+dS*IKD2MyCaE{Ur@}
+z)5y1zQUhU#k4_|avY$Ct@mteZmD4G))2&CoU?wyJ?d_7E@-g?>=u(mINlRGaL)~-N
+zgK=x%)$VIbQ-fz<iz{R6>*&QO4+U#5c$pqtcEDqqQ)#x$RM46<+&J##yQMbNl!X0~
+z_0Ya-v3f_%Z-11GMc$7DU@iG!QHQq;PS0+mxG4(*sva#)uFWpJxt24E<sazF9k4-;
+ztDISvQy%Z<69V1*3(P?ZlK9}&1rEQ13%_TD#)nUsC1O58d9~qA9YRv(0j9Al(51Bu
+z?*LO!sE~7%33@%}>OO|u70uj3**@5Kg|h=2FK!=6)0LRV4v1J2_%j(87H*DxqqAgP
+z9%bTW$Ub~zInz|c2}V~*B>C;_7vGExy5!Il@q|O`b$Cv;lJU&>Y|=ZC5)v%(l!Z4F
+zY3>$RIY^K*i3clYA|L=Cinf0X_N0){ozFOvfM#w>fM+?xX6}7!CBu3WpeIWELpuyI
+zJ43@chxF*;eKVS9V;5L%?Cj3aJwuQyEWrJZDB@%y!4=jT`&8b-v&a=Dz;H<a*VAHe
+zXlDOUxq^IGLY8>wWI~m@+1^l-c%qogm%%Rj;U}8vtD+NeXE(sX-zxxeg%j6y89rDb
+zd1!VOHDaOOFSg+eh8}!ygV+K3Z;-}eN+_HGcOHhygI&%5AjP$_tiqanZY1V>a9L@U
+z);*(p$cpruuSsVJH(Gdl4}L$vy8|S=VCaH1lT2H77-&lF$=nuO3fgwskiz*^s<x%Z
+zaBp{{v{~h!>`3hin_@Hhy`O_f0qP)9^gYkj>Ms*<Lz*`mJ1zBIB>p0G9_1F_O`|c{
+ze=is%R#*b0kQ68CYm2$wU=xSIL%4doZ!m_O<SvX}i#g)@MjiBegIO@zD=uvXa_1En
+za(Z~d$c9ZX7m<4jcQ*RhXxh!YEp=uO@Nbtd@w>TTBxxey-soM;WrXv+lLa!b%XsNv
+zv;c5tW6+*d@aziihK!dCh#wb~8yLje$OdOxTNl1z?5SJPxH}dYcA>||Ww24)|DCoP
+zI`9G9XdWK0{%Z6qP>I;*&*`P8mGbH)eSHac_Xj|IOm@&-Ba5h&t)4h8x79xp&(&xD
+z>utVE_XzjC)&7RwO;yi=xYR*$@Av463hBdbTe9$8lT3_P`QR8<C>I9KnD&lz-HU`H
+zS#S1P-TgdhAA<8MzxutQyYGF`O6#MuPs>h@%G0NZ%;~JfxwZ@;{SF>o(iDu~<#bIN
+z!D=SbeoLXb$C6f*r=x@_-eq;t{aZb_=+?)26{_e;m)Zr!?(g(eP}7dyxu9dNe$jLS
+z(;!~0B@>@8QpHupe*Y-of=yK~jeTN=8H0t8tARv|a*Y<gXA8L}9#~(JHQ(n4F)4kp
+zxTBoJ?w{(h(5jy-8#d!(F9&s1!7P-q@hqCsEEv}P<qm3jkU-5R-tL!BST4U%QLbD|
+z|6MHKd9Hmfx3EpESf~CkUAFxd3L3BN;f1HFOFDr*(r(|*n%sZGoj10!vwNj}#m_fX
+z)aDv+*cmS`1%gnP^$LwQpJHUscx-R&5!z-sp7|3JxPOr$&I}PQJoWSFJVF0bQaiP*
+zyv`<YekamioWm&1gO$j)QE49aS;0WMVO}V*HMj7{rnL2Jt7#UjG%djl3*KJXat-8D
+zQW0$u5@1uZXGkZjbWq+4j)G99lXY%nj^RlV6HVadY7XN`fIp`eh_<C-JDH+&YH;;Q
+z#MT;xmgU+i*7lMP)S-u|!0>fSadJqNVSHf-{Whk5EojH~D{`QmJ>&O7Iqd=O0LFBi
+zrd}yYhxOoO_@n%YU-y1wLw<$+hAD?_zqbjuu;!Q)muU=)c&9X+Q@<Dabb=gY=B--Q
+z5a|R>puOg~EMwiCqIUGit2d3hhjD2otOT9C84bTjGV!~W6&PEaB^yaap+5@%t0NQM
+zS^l*A`#_8o`!jy^cb}c$z#rIT1mgzVYC1bl6iJNHpAMR+vhKw<M5m3&u5a5K44j)`
+z;JkcV@;kPHb^$rVKoFI=p&_#`Z!Ds$!YBvk>mGK9n9q1e<iZZNa9+c8l7f~9tZ%Pq
+z^u+qJReGOG52}zNrlNJ3npja4R{nrh>lw``Vav6^l`Q_1AJOW(E|Xu-<M#fF;u}2f
+z^$=(F?(gFM_!qstJNMyN-<k%{PQ?v}cXAvORd=B+Q&K<y8z`WCV%e%fBI)pLcU;OI
+z`yK!xuNfs8@#2~h4+6Y)0tbOwYi9CQn8=c-#I(eCsv=z;J{zn1eR6!C(H#|CFx$X4
+zP2pwfZ=y`Io9!{oG@L#ELuKWFMpgGf@4=0RMzD+edv*C%F?Vh||3(C4e+zDc;zl_S
+zjMR+HTI;*Bj_@tyUO!E__RegKvrcdnhNSsJY3d3>*xTyZFa1*uJ7ljb>T56Y>%JPX
+zuGs236|&?O=3abT80|BB*2D*hrwu-P9w8;BbDK(8>&|pUbQMD{`uslH_kxjgwS=F8
+z3WSD|`5{=1dGgy0w>C&uvd-JnkJTO~iAS!nB)6v@?vyjcy@Z=K;``Jj6@v~5P$`-X
+z-S>t~ndM=#Pb?NWKThOF#@wUu%IkH%|1(<JXuy@%F-K$EJx!j+2**D+>C^l{guli7
+z^wTrTz|gcOrgS|r=4^*<nQvYuHntVKS8Mz7JUlV=6_9;U$)~Y|p~8jU#;us&!HxO%
+zSaoZVKqtN$CLwM@RJ*p$s)q6l9K8;LTq@6oFJSBRWQ!fnj@LkweqdLK>siPe>(S1p
+zt&8&0+RQG1<yHxS8>mh}ij<%McMnlzo>M<lo36YNvA|qkco8j`<xTHBtKFk>d-kYi
+zz>&V|dfKTzd!Ul47AZ;6E&ZtSw_EY_YvZyZLsj0vXXO6B1x*ZO?5m&ce@rGu>~<JL
+zSG>yo(P1?7)`6L^^r|j}uk8u{k>K@!2OUuP<bsvN?9AQvS)cY#;*jG|hhCw!)#?`j
+z^V2tm&k=7sUli}QLx}rD8C(pg`Msz8D&W-8)GsdS%@Eh)*x+M=UuS-SYw79%Nq7Eu
+zRdJjS8(;n^N}Hv2ahB|JD4GZSFd8&$RZP90S;RZy{|_k>tkGh^_MSlDK9Uob(dQLS
+zWHV@|(B|;|Ji7s0X!TwoE`y(BO6?Fel4y?owLN9@aj`h5%2b;S@+BN@^(45>a`U4h
+z5e6y$FO&_o<aJ#}G>M;#E%{YBez|2lt_S_DPrd1T<j=)F4KU{~647}L;SoqO6}aXP
+z?tByhw0Mv=0%Fyxf0GyR)PF1H>G_v=0`KEn2{~YQ)-C;bd@+-LY4}x{!p^mG=t<%o
+zmMVe(eIKCw=jNWq+Kq80TO}HXtO-M%QVD)4W^o@}(Rqt0=ZTqQ^I3fBeFq-)?E?K%
+zsQ1l15J>#z3;3*(5B(h|Y7>f=MrN^65kU?BsFwKNVWZA3+CtGcJmkR6cM01&(3D*|
+zd;m22^UluSlcWejU&)ZPQ!4wKap`YVQ!C!08y7t5&(i3E^q;ng0B>KNDssmk<I~(|
+z{+QK^!J`E=I?y)waSV(h(o+tE4{)?E*YyKlAjK_jR*}Y?5DQKpf5T;B5t(-xai`K3
+zEoIixqrxxLC9O$*G-r?EhI)5~!N~$rplsm)8iIcmGBi>>Q5p_;9|zZwDKwaCxP>U^
+z>IQ&&d47})kmc&8!gho@ssK>dF;V9M$Xowp<V^cRzWnC192rw1SH?qJ=#Sa5*HaJv
+zVK+CATY$VP1#;-d0x}l@D<Z2zzne$%-8wV&qQ%=pq3fhkuAZMvgH?-{7V~U}or`_y
+z*_&mWbWM$7o|E0QSdn<duyyKkcCGcJpMlB%)fQ_a*+u$fA%tAVzENQkFhdc1l+!8o
+zwM+!S?YN;dr^c=ad_|)hq$LZ^^Vuq&-_xd@ZJyYAw*nTPS_*(x-{>;mt-f4|U%`PU
+zGSOMNpT=&kwg*je8fD))-9=^l=lM+E-Ncvz=8f&{+!-nJ{46+jF`6d%NDiP!S8sq9
+z{yqob9LW-$W}#wB57_JF1s=g}mg2AON0<l0B<y|LRc~TUPWevudB87iT?+J{l=mVf
+z&E`h=oVSyogZ?w0y;;y#G}W14#>?s>-KT~m^4@5MUQ7Hu=2y|92P{}WRYAT{si#EN
+z=#M#b$3c5~M|Wmh=v!_a`UYK~b^2*?_h)~^CSY06T#IVZz^WUcKhtQr81c1wyYWDV
+z(<kPbUQgal<I|wnuGM>wWr${@un&VN!KVk|7Zpsm+Q<gksmZA?X0bbxlUjUNcx>31
+zA#YVe%e`{si(=b{vEH6(NB-<n{U<&fgvXMf?8Y%@YR)L<P8E<PMFW&y*7JoWOOet+
+zL2<G>ll{r3u*4*+ZMYTS#6XbpL)*_rwAb^yp&9C1IHdx3-un$7srav(fe;Bn4#M4y
+zU!q4m3H};)WE+NX8eu93IAfG9=TokrzxA0?ZOhec_WGA&=$7bJEWHh2EMV%DW=%l8
+z<4&sjHYQzpHDj}#T92snjPFl34QT~i((g1pM$x$A;~9PD69EJVLuZ|`pIrGO1AdHq
+z;uX(Cnp>;MQtyrT7wt8iO27%f10#0e_0{0t5t@;wBiA17r|;cTL#mM5Cr|e0r*s4-
+zb;qTy)tTKpk4BvuUFJEQ8%+>d9*t4QOS_*lkMO<aLfar*wdGaLP-?G$9z29t9Y<W5
+znB%GmZ(6*D&2m<wBTo*RYW4L6_lP9V2%ovTZg6GP@-ux^^%+tC-NE9Vx75mGH`zy4
+zMjzUC0|%VMJqDf;eTmbOH5>pEWtRL`FSP8j0on43O`hMf4Cs6zjj8^u``kWb*N$rc
+zokqJd(iwW&N?1Qa7y7$@9NqxPfa<cZLt!gV+s6eG3POM9y<dE<T33Ml*jf}cAS+L+
+z9OCyQ>jZP3Ja`<G1`HB`Wc>%6rMY`#3ZuERVMfyU(mN)c&_u9#nV<L6wSSo8!Y(nI
+z`tz8s!Ci45lPo^>{5@eXds$657?hb?6#6r`*EAKy$m1OXAR$aFu5R`2eb!E^y_0>&
+zbvf5^Kao`|fjXS9o_K$+={Otuee<+Q!d>`oZJi4nz&cqp)cb9jt9_kAazbyjD=Fm?
+zvrx>#gLNwG(g1RcMYll*!H@PGum}GLRw}|I$gGRMgHM*p_e*fRNEsizvc0BBmTPfP
+zF}b08wD8A&Y)h(g=f4Wn<#pD03*@4*m^X4UBK*o`XK9Y}+!N<lcSVBIr(c%bmQ|Ch
+z7211M_8zg6XODTIiN#Kb?-=$amYW_bS(CV-wVoVXO%^{pfa3w&G%Ksi9cETUJ8<VL
+zNQT)_A>ApTOhi_3^Tiv0_#!8it?HF)*h^JG96i~+#`@ZT(&q8&wbPja%+J2n+8F$?
+z80*8)p}9!QZnWc?>`L(~8SU6@!$8k}6Q+-m3~?oHwOCuz{_&H@uwn5{-8PJA+9=HO
+zqL;fQXv-QS=a)@87~~v|Rw2-1w$~*<V?y_`&P6zR$pl~x-&dp)uh!~s8fLJdc5^Ug
+z6Tggq{Z*abACMU44AS=Qr2{5a@c3QAKD)J1K``lQ|AOUDhO9k^ytBkRwOEZ69cV$P
+zNcF=#kC8L<lG};J8jCh#O+rhslqVZt|KD_Pgg#}<udp*YGO%m+^DFe_q!V-s==_bw
+z*TcyPx~{BBahrXEK6C$d*-LL{dQz5WrXIq2kdinZ$i`lWC*HV^|3Ob&sdXUl;=1)%
+z@Pln!%H?jO<kq`kvdc^U;kciMK(LZ<hjQ+R+60eqJGyR`VL670c)!e-elm?HjNpLA
+zN;Ogm`ylOF1K4<D^fVuO>aMjYKqTn4kdH{ILq*o6jOsLU%hOqo&LSG{79v)JR^E)7
+z5pd$q;RIrTw`EcY3FCCgMxAK`1r93BWgB9~W!=x-GjNtJ&rmPbep&he3HJ{7g5DMl
+zkminLCKx_Of#~9uM16@qXnu!kt3Cv6j9&&k@n$dmJHX(^%zA*rXeTsPx&(onogV2O
+zUSZbto|Yf_ckS#iHH*xHN`_cR6wK5Zo>#vvbxM$+zFgE2!NrNYHwY+Tag3<Z%*Wdq
+z>yr85@5?>-W<Yw3MlsS~WPgY}qgZx=AYEYj^~76a`ozha%-vYZqW#G4Eqhitj=9OZ
+zCTqRErRPMH*6)L|T%RFvEjqa-^XGOP#EQMNb9q~%7s;E!3XDUq_c_M+g=;&-5=Df!
+zc&m(gp%t|ZN}}K~X}wAb-Yde>cC}vugFslkj;@6CpDr;r{3P`NWB*lh(Q;Q_F`5zk
+zB&SUzO4InLKEdf6$ZG$)9-^GyPKcJu>*`oyjplx`=AL+6H-w@nn)KLe_EABcX|||<
+z{UlxeCr1S+%k&|W22al@A^@8cWNYZCu6vcnoOykj>+s;ldS|E4!*SAHiyRvws_>=)
+zeENmTIB|hAOzaqy6C2*yn{JdXRnPsGuA4EZuD_NnnI>hJ{)3LY{4|2iOT9zK#>z>~
+zcbuKBH7XF<x-_n7fd`AUHO(TbNgaKzd-IuGuthN&oySEl<krU1^hqq%NrlZ<AS!B4
+z{j)ewv6JmzW(M|K-+0~W`F{A7a45j{?SgbZM;he3?AdKOv1VM)6EfK@=<8&mH%ray
+zd^6b3nQE0;l$}Q&iKXM7;PkOTqLVc~a(WZ@8z{~xHA;^15~;pAq;|D`mz}`xjqsf+
+z8oMX8)R65tcg><C4amGJHhNhU_Si>=&+|nb+Anr{vg3_XEUQxEx6qb{bWpr{MBCu=
+z1+x{%*yS#HRVug`ub}dn_|Wh+X}%XE->9!OFoYBluq#ZppC{gp7Mk2G;;;mYa9B3a
+z?uu=3AL;v;?6+MDw@*pmOWOe2i_Su@1+n{(JD2_f(AvZ0Cl5Hp2z3M;6jv;2{T{=Q
+zQO}Od^&7t2uaQ<re-!nbChSi@o$?L%`$XA5Au3JaREZXwmg1_?WjXv5l7?>k1MqwL
+z5XKt&5=-FPk$^RNyKlOaEMOjXsTz--AG*t58A9l>_~u<^+0H&X43MhuMQ8k!V!Pm;
+z`nErHPND!&ybTzT8{moePwTVv)I}Q=6$ZS&CHZ^<P`sfmJBM)G<FedgtZz2bG_krF
+z&{h5pZ<R=&O+tT7U5w<PONP596Mu?uIO$G!;tj=y*Xw{h*_*+{9GRd-`P*x?yM*I$
+zY)xH7y6IxpsjcNKUS-^~D_`ZCRjwoSSpX~52a=z(`|Z)v3Rh@6ld4d#hUS99>&K!m
+z+%Q2YDKM0sht^A+V}}yxk$H-z)OVe;iVBh!9U#jfiJv?lvf8sGJGq}OQ<uQNzccCl
+z946&he)BECn5!1yj&`MXR*2@H-w<!#3K3DzMzyO7pO{|?BW%o|n;XbOV239tIG+fG
+z6a827YU{(XRiS6y<hnL<uPtqsFn|8V#c6qMq7&i~ho^gz^k@Ib^X4apldRyURZp6o
+z99$g#UTL~)Giq$TT6*VYwi7gN_(0j%4VTSxKXiY7bN313_yW9RLz@!ke3nToT|>&=
+zJR$vh@aLkkF)QQKG3meNLm&TbLV7jd>2xs~)1M@&L8%0G<=2nM*P~b~%jHr+{kn@n
+zi^4kmNsC}}2g({Jf#-xvK5H?`G5py_swjIKujd$NK4{!l=HNF>ez;Dn37WxEvvnk`
+zO6Plx_HAU8Lg@A9vOfWK^_JZ^+y=r}O9t%dHjr%O?J3s^&CG)!djDb943wL_>aQ4?
+z`?xPw+D9(q(s|V>J7nFK)RhrQ$Gh}p)lA#a@1A;d`ES>v&NtiOpOY#<O~k#X54~c&
+zG}d7x_-#QazAJ0u#$;8fH+HZ2uX~GRcg2=OUKoA6nxE4qUJ`^Lf6U5BlL{B|{8T>7
+zuEtCHTWvl1HdtA3h;XU?%|SI@-OHu=;fXNiKJ>?>U@s24730w#>gdrQWYEUP!a|t@
+z!WYsM)m0XD40feMK1+S@@7=5e_0O)}Y-{~6QWSh+cSH!VGvN)aW}7v{%UWo+ueN5g
+z|D}ww4^xghd$*(>O!zac2J(^kzuK$D&rQzeW~y)Y$ByMN(&{pu4Q#2Pa^?lBdzEo(
+z6UW)_ZHKRGLXn`3?aHrfoaCMv+lD30isaXX{ZbmvRP1Mx{q|aG!u@{OvSdv8Hn5@@
+zLvj73|2}uyU(Xq!w$>4eq3FNQ-v<6}2CJ{BzC9y$**{#DV{|*Zlp>8XHF}INOiHS&
+zH+s(#CtOebw@w1`k4g!DiC~S-30zCA+HHskiEJk@3&-EIRAmJQ`PMMTS{};3jGw;0
+ze^etKcui<pDc(wy^Fs(1rgg>IY>2aKY+gZ1%PB^d5Z9TO_T(WOR?a>!WibLf`O3eH
+z=c51@e8m|of_u}U!@YHoA#a#vRqR9;(tTQT6in}teW*$&HbMC=ZGV#=$UU`On9;QO
+z)4xT-k}vBl!eDoev2JtXnb8d|fjsf-S7~Ez`-tiphR`C=>-g0MfrC3q`^{W*z-N4K
+z>N5D}#|YOJ1mn{57PFiKb*s4Q#ho);>fhhGD1DR(@q*l&W#ZnVhlQVvamk#M8qQsQ
+zhNS*!*6Gj;k`^Y1vs`o<9=JSuIkqY~$8g;|TPGS6+|Fm4BDL2H5ciNUonr1`kiTP;
+zvm9cdk{S3uR3hFM{Y#`RdZ#>k^nRtK+%Rl9tAEFpU<lm1t32AWF}dt}QS@|HuciDV
+z2pnRvGWhZ87>#oPE`G_$4%f<N%ZHpwkTwim51$J!$FQsx#J7|-Re$kd@s-0|9q8{@
+zrpuOf-8;qQu=q~wj!N*nl2^KUPaH3%*Mil__(lvHQkgvEukSRdvGW6&T};Z<?96Fi
+ziS($QZkm#U_6zvhc50}j1V8Obd<^ZV;x;+eXXMPQZzikTAAhk3P`C<d>0~|w_b?cA
+z$c01u1(`U^H1nPu?>aJt6i5Z@!Ry}@ydNNq8Fl~smiy!r$%<jXBzwLO<)No;y8oM~
+zp4wNo%^%_XycSFn8t=@1O=D><6&bcJGMVjUK|74b<1~%BmmO-BMp_Hsd)nfiaz2P^
+zU53;aS=oI{VT|0$Eu5Xx+^(#0THEt_lX`mc*-B%TS>5qi*a?!X0VVy#Rg?7N*>kvg
+zJZDk!&IGY3(+0>HpSrDVv>MewOKh|AvWIi9L3Cjh-rBFnkUT)a?`9MCt*0=0rsa2U
+z-$K90v_AFt!lvO0hhWqGXTQ`7yPJ+5d0H9VaG+vqi7H2xNT^v`D*nA~g8?+rS>(d>
+z0e?sWvXV4!UjF-*EBRC;b95qXM|ZTA8pcmTgm>RoCy1Twh!FpfY9IEiCdgU$QAher
+z4(X+ggxQt8pwVteBlqX1CdQ>$ZFu}tz<3_IJ!Pkcm00R{t@Mf-wtJ!>!K{=TC2>na
+zh$n`@lyts(_k?=D;3ar6-Z8uahVZxDsnDNrvcDq{)U0I6I>4+An?b&KFa=zja65`9
+zH|b7!d~aDpqF=`?ni*W2J=w^7pS4vv|Fe(cABCT3NM5E$$V^EFtcIqDuabulZ4ocN
+zlj-*(*>G`jckT#ldoHpD(Rh~4)TFCmueoAVUgRbuLNDULB~5KGWRB|9Ja}vMG52~h
+z_?Ssoy(M?(I|DzgEMH`5iC%l1WkIx5{^!xwk&M`}v!n9aeUeNKChB9&FRlaahJllb
+z#wEkIxX7GgcN}*HY6XA8E|jj8T5E%5JE+b<xhXG}?La=y-!wFMVoXz)E-wH%{@d5_
+zzguk>`29tPHnV>7wWa%<-02TOmN=GvDb%2kRr~vAYZHAPu+fqn0`p8pUEGRRkr@e*
+zzFp}HMg*Zvl<Rl-a&_N;9)?L@>AVX$BtE!Ifdlf=AHr}-$0dnPVLDin--hJ*q<j-S
+z^Xbirnq*B9X)2%4uOh(>sr-~to+geB_~b4_qwQE*0&JXF@E=o-hR5NCj5#N6?tQyY
+zuacTkbdnk;H`0|od$CC6Pvtbn+N^a*B{Qrw%{Y6paUghMfsbsUDXIiL{Mftd(iT^B
+zf6U0<ro|zlXF3>f@pE#p^tmfOLq@JOQ&4fSb7Rg(1v?SVAbXrAZa;k|i8x>my85b3
+z+5WiaRtDKSa9z-FhkY_ebwGf_PBdaDhx(PvwfDK|Bw$Qx3}=iWESn_jS-<|KC;8X5
+zM-NSZvwyYZb7we$e@WhC@g;**_d*20vyy$ZHrJ;(Ks5#UP4aEZBoQrcy~nP^xwUJq
+zwr$H9uAWqGOXL3PLip8|r$yS?(7t2y6uk^q8#!gc-n;$B<E?$1w!7ZgUOTge`^PIr
+zxM;mRSAE#^x79q7y_p+sS9}8jI@{yHOv3x`ur}E%4Pv7QTW_N+71=*eqyl|-=G5;O
+zf3*w@9<3ZaqSbOn7}>2G3Z?5d1pt%jYaFVQoFQ}y2zQM2kzV;KODz%jw^KQemE|<>
+zc*iQJ>`(5plKF|`N0bc17%C8zr(F74TcFzGjs&#$m_Z|<$Wb~`@JkfK<H)BC-M<rJ
+zE}qd6sm#f3^Kq&beEKx^<+1h0SFH9kG~3hjFM3>G5^jqH{anF6+qO+3O>-8TpiRk<
+zUC-%eBRp6-bfS7X85x)G>etEjd_`8L-{A|V$+PS_%b>;9xYE`DjeFFh(fl<g(j&-J
+zWVG@5q0a!#Re|hMoD|zF@p?<C)RB!LqsFvwsYrXm4#TyZ%QKY6EB|EepP78;L`Y3Q
+zdfG-FM}m-5P#)>Dqtuq$S%(bc>TskBdvcR5L99-UI72C%L^jsv==H$xoBDAQKflH1
+z!&x&j>H2u=+^3ew1NpfS?hPnuQsQlectMo@S^Ul-b&xRSZ<TPOO~$WRh{Eah%ZuMo
+zVYqUy;m4esQ#%&!9*_I=;Z7<)8^z=$7$whO`7Y@SO%3E{F-vVfr0jTp!oWafXv;%+
+zUt|NcK5`V)I8<>C032@2EH9%<A$3t63lTLNl{W<{H((P-IoP0MW6LD2`yq5Vk6$IW
+z@MYY3pbxjK5vWaT<-4@KjrHOYS$%QgI^;uJ&A4L!O;a$|X_2kNVpWaf^5Vk*wSA||
+z${n0d?b<Xw&YLZ~VQR455@c$+(YUdc-qau>yk`*FtR8O(kLXmJtJ;q@{2}@MY>R@D
+zx_HH~18&+b3R@5NZqZ-#L+5pN+R+PJM!SkJU<LUo`^d?ORc9l8tuvt+MfP%xIM22C
+z#$Ja>oBQjJ4oV4eDwp-#&nS!;Pmv6vs-r<fH~c~Y>}10JnoaT<XI<Z==3|ir!2yC%
+zt|Wt>Zz&T{=>!LNHx&7Xnunmv{G5YgYW;R8nn^2h0Al8IVyq(k3Z?Ll>wzCcbioln
+zYLxy=uYpSeokL&Hvvt-}uGHNU>0xNS>ZzDajX#E)pFD_*uIsSY%}PEF)tC(x%ZdtR
+z*?E6&Y38X!C&#5BeEpQk1Lo8$0Uf@7`zlInDJ-Zm*5kCt(8SL2O91Q1b0aY6Fa_8*
+zIiAh3jbQgp?gquL@og~_(SEOUZiSf*v$J760R56J*!7IB|5|LAI}SOWLr4nP%JNEc
+z6m2OVF6-*}Phm(RUi|w>m^0hOUBQsGey}k6r`#NDY6)jMHQb;ao#0T?_oz@kt-Tgo
+zsB(sAvI5A!TfpzJ=SnqzL@AbnEaZPw+v=3J{%>>f4Bmq{aw*lGfqB%=KUYHlKw^XL
+zwv?gS%vNdTzN&&rqn8uf@4SLvuPY9#9>X>?6!YySCw6>5F7O_#N8ltp;&(+})Uplj
+zNKz>J&B{;rLSV)6E4r1jSmC;Y@e?Z^5Z{rXrTE@KIzY{6LiSew#!IH7jbw^7yKJT4
+z@}G;p!AqJ`^k=#X-;!w+QK|l^B$M$i9ytJy+^z7hV|zJ6e`y5bpi_`9$WdkiHzEdc
+zvT*Jnt<%OQzgF=fmi?NSV=I?Dr%h<+&5Sv^Saz6U`xC}5wtnIz*a9SNn6|WGNOFnS
+z*^S@#*Yy5(HnWa2Rzt0LZT6I^HWy2}vp{}!aq2A>UFS=3SqzfORX6gp0_?@1?bGaO
+z@0RkNLeU1<$KEHWMhmZj`}kbAyZ-__6Sf#2auiAB&&Q^~CqGqB(=aXtDiN;hzWUJK
+z9+_36+D|8O&OC@O%$<q5@N`P^yBDKp;Oy!X#<-0%ht%EC<6}@wjHEc^Te6{OtF3X>
+zTW7nT>F5Fqc{<|C;sn#jNI7oKd?cRb&OhWD8zTAKJ{r5%Ew-;*z!Dc?j48r?Y4RJu
+zdg4rpOr(@@D7rQu3x{qr^jy(+z!5w5{=ZJ?jiDB9BorQIa@PkF)j`4&P0Y&YGIf&@
+zg?>B!uPA2D=+>x0b9R7Y(P3@}51hOnRa1nW7vwrTEPGf|hd7Ir-|Ia)x5t9A3mljN
+zetLI&z#eS|C90a#!&3soY9FD#LaVy(6Vo_ct?po5y!20hsyN$`dgsT;y*{;CgF5L0
+zim7=h{2u%cU|P~w4E|a_po{sFy?{&kp_H8IAdG{xbnyDQM|j6agALS|QXbb&wB9ju
+zsc&QrfPwBeEN<)p@<mHj;s4n0PJayR?Eap!G+Q#C)bx7rW*aB#Etw`?!{QPH42T?q
+zu?}v3IdeThT9R?M>o=^Iksu{#yoB;i*6oIp$R}B&U$OFLy7kiNWs(TKnJQ%Z3)?|N
+zq`UCJNL%<QN@OIg5m1PKKYQB9laGO1@+G!F-VBcaXe+Ti%FA+H1sYHd3&peBm&)&d
+z`QcN<HzROrpBQv3t)>by*<RTidV2r<#Im>1JRr>8dFPz@^mF^-rWF&M9P{fj1e411
+zb;3nH8AB?bM}^~Uty|nm-nnvF8Q8AWO)}*EZDSIURAjG_oKofO>280#L;<<dXw|;S
+zUQ=JAw2N)t63KfD9St@*oND2`LZH#li6os{%0a~=9Ui*Ojfr#x#A8I?HgS6?A=)AP
+z#7{)<z<B;gOl_?M?kUq9kKh~_H6zDe*Sd!;|Ev=o@1MJBvrL{oMX4tSG&GOBB~rH8
+z&CgC?*vlwEz=$AWYd62>Z>ls$-8GFH%99U+YoGaYTO#;KCSO-|k8_+q*&2;2K2cd#
+z31r6idqYs`6f@2;I<VhgE?wX2F0HVtmX8FLn)3Ji+B_2LGY0rNnk&%zX_w<n>@jME
+z_xc}w2T&o}B=k0IE0=ki<C0}@hr12zM#+)P+d@c~gu_c)1y2u1@2#dZ#j#rnN!T{p
+z;N?YnSlppIwgsl@$+X^55^#3kf8Uw-^+DLtH5uKSd{q);KZmZ_JNGYNZXqd;WG*Wl
+z<z5hn|Kyrw_)AUD42HkomG<V+^fx&hcaiwBruDg{D!3zG-{`Yg1l4ukU5Kd_ohTq<
+zLzV^%GbG-Py24C#Mn7<DmxZT+i{WWza6$r=-%JeYjwZl^BYiHnU!YchKd#22hFlC$
+zL2gU2MLufD=1NF%hnDrJk{_M*>9>9A;>VNM83+lk8;{rP*Hgu`NgOMxhx!Gi0TbvS
+zS9+HkdPCD0nMB?}-jh~1bGVbZCenP;W?UbQkkDL?1xby$FT|I;m`67a4B}7+eD@iM
+zo+43bn~@mnK)C~pos+BI+h*@ZpGEh-M=@%k%+6xo8aO1=`%B%5WJ7-_@TB{0R6Afy
+zLqQ<?2^-bpQ-aEt!LAbe1@qzJm7(FNHkVgP302(9-(iZK!diooC0Z?6pt<623+pi5
+zV7o?yx!T?n9sBs%3%=aRKKCSSrJL5*6BdyXO~ezoOO-RGoFlwYoP|5(?ybAOS5+q9
+zR^xT>W~;(NjV+g*-EHO*&%COYOug5TG<p%)l2O~jiTGn-T))Ws(ALc}{XY!-*$3jV
+zUa6O!z#{hUFt_rSEt2yl9K?4{R)?Mc5VoyBAc9nnC@5t($nk8G(em#?&E2!kEZ3Je
+z1XN%A9_nC*nLZ4@n(n1ic=CBX+=sr6c@rPjbE=f0uDazLjAO-xZ57kFtI+?o5Yof=
+zZ}w_p(N?oMqMQ4Sh@FF=yCI&)yL{4{oFOvnv`@{B)Ysx1Fv(bW8c;^lOm|LwhS5D0
+zh7bM)^xAUr)29Ibd&1xWUHWj!LJP*f!#19tP|+XfnB3`Bk&;a~humx4Xp4da`1i=(
+z47UvbVoZh9gXru7UHl&;zf3RwWDuU`Q+l{(v!i=0n)fwM1!3r=<gB>8jeT_$Z}<Ut
+zAfp}-hw!A7zwX^v`Z$DWGe>Kj6+8<lCE>qY_^wr6yhsX0?T}&M+!2?9o<|->dViKp
+zM!?=Ymb9=m_$2vp@j|_lJa*FIkKaOK>Y?!ScN~b5ck^TJmx9}A1+hm{fM$P%T!W>|
+zIsDr>tdkGLh$3+r11H6<z`@bA=o-l}@FGEP6a3y$3`>yPX<=ZrOuWTtK=QYY<oduz
+z`_&?N1+;D7p?(uPe!jC>!0BTmF5^cNBNkovM)BY=O3rEEb50)6X`=^KYx(EwPnO#t
+zhx=d@BC<iw<*BpXtK#?C*OowuyyF<H1w6FwnVg~3iOi^v$s{=nF9xZp=4cWl_oYL*
+z9f?;#53f*H;3v%4($&B@6Z;yVK)*<TYt?p!AusT?kq6b6(4z*SF_LR+9R@dI6S0a7
+zFJT>~BLXY2lEVVO8|AFXZs^F+PGOGSYyD+afQRJ=uQa~mE%E3?{DAs)13ISTrwZ+9
+zw&_)W0Upb1v;Dr^hPA=;G%#secb1)Qo}%oK5p~_qehPFwE-sZno5$quDp_0Dh7!^W
+zoE{QVt%PBuejCW-M(#V~MKMIqc|lWg=3VVYr;ve8I2|cgutkusn4n2EbXMfeB=B~@
+zGJf|!El1=Rd^PA8?v%r_pp;c03};YdS)(2PDCG=r?Myl@mXH00O=Q0gspX6+c=up}
+z@Ud?KT{Bky1z3CBJcr$F>b@2ekl(pi8m&!~=;gc)Lc>blN!+!aURw485ASlGnO+6Z
+z{{v;v4F={eiH<@Q1B?8g08J%pw7%A{-gJH~hMhngzN^(vIT9L%E@@f&`K3;>+1qRc
+zM|6JCGRTo`F}cbf=~}}&rvJkt*XK7H8~?`AI?DD2zAyB2FzE0+X?|99<7gM#RQe9K
+zE27js42KU0?Oi=+8Gvx44M!?UNL~(9t$|dN_*HUv9SxK6*V6PD+7*BiIfwi64NSX)
+zX7P@TM&)}5=wF@`PgU>V#IINr6rVVAu5o$e5*q$e<fibBIJ~=i#EX@A=?n46IFuMb
+zDqYucU%0?TZuiqg|9h9bUjS<=?Zw@s``qX|C~oKvE=%w1X0Y7m9}+a~n0?mOWtPsn
+z%e>n(^)3R5g=1NA%<nEAof*A?7z>-qy#xG&Za&Nyk<oH<a$hMkK(b7S;9H?1@Y6NK
+zs`b(A^$x0aTg1tN3jhfbFh$>qU1)c*Ww$z<PJNk7arYodb&SH=H=A@LQra$Es}vVC
+zAULB<k}Qm)iy1F_1xQEJvRtmTJ98m%Ig5noQN{@DO~=-QDFVx%-u~OgM~M-YHTVv5
+z$me}RBDt`v8aG^kMWhQoXN|l6Irt-8@`{9U7jHY`U$dj+UC<B2lC(GbzsgG5i!gLp
+z;1Y|s`cHIQR<sjxbD1u=!pT_N3#*~;*g-L~J$g14JuI-}sS-BKIW!&D&FfvCBzd)}
+z5;siNoVC`?=Uv|`?}9rBBgG*6&NkB}f3c0sJHIXNhuKd{HxiQs4i}u_mj#(3gqb#2
+z6(v{yOP3swAXD0qKiW)h?`f~=?LwIjKkLm_Zu~LfP*SD$qJ+CLOI?jDep7OE-9O$i
+z+m~$OWq}Bq&G>RVTUVc@kAPA|Qc<TUH-qcG`C~!lTU)p1fw4yAf}2s!wKo&B>xhYJ
+zL*Iy+z|i-_`MBKff`@jz(dw0%2NE(ZMQ`HE8e5sPXGPg#6WWRT>@R_sS*K_$o9W;W
+z(Sf^S6f^N)_;J;{+K3=8w&K}9(>^4l<j#e3ps8TTgPn6UtS{@$juYXfr7~fwV!HsN
+zX9JLDiM{8xSxnO!b?gq5(-Er~PJ&%5iQuH@B}tAXDc~j=9;r2QT|rFu1epQr^Q_r`
+z2f|LV?ZcsCkBUP5XR29Hx43q9i_VUZvtr)ZAqq>UG724p05V_4dop~u&HM%QNb}I~
+z#Xnpgzsn<)raq>ojU2?<W+-#o>N+C3Gd2bH6qpp3pI#k6fymbPfI$`KZXVH0q;!tH
+z4|vud(7D_Bt3j|C87`1>6BgArOO>;Rsgv?-P_l2XLFCzrFwkIk2=t15wR|rNvjiBC
+z<(Si$xN-5Tso{z${TghXK^FLS?`lS?6TSO*bxSe!q1O>8%K!S|&`+xz4+3&SnP0`}
+zT0GpXlTwZI+_>ylu~ArP#G+qWJL+DJk6Z>4;X)*vP}6#bqWj0T(sUZ0JJ|6-O6gX&
+zV^kFc`0jl0A~)4E%M~!bR$m48gI+W=E`;s-p5;97aIZ4v@E5#F&kjIdsg`;&KwyE>
+zwwML|0HjnIaNTn_*j>ld;CiRJ^qEjSCdM7)aklCQt&vuu^+W}-b&v>Q4-+u4(SS08
+zyA_d$qrD9z*V1y7-Tl(?`tZflgp#~uqiX{*W1G)EXMx76W0;qny{C(kYUr>S$HPa&
+zt)BO3EtrP#I$knv=&~(wr=|&#Ow-N<=1E4pOIwW7h6Qv7p5E)pOI~>dN-;{b32`uH
+ziED`qN$jHdGmNIXCKSAV)Gv?2c2R?r<rTmDxEqtN!(d+CMh!o_gHmr?Pc9HB@$DTW
+z=G}kB<JT29QNAtAj1rh^W<vlyWjWk+U?r$;Zz3MuW{#yuy^H$ONuRJd813EK?mtW#
+z7jiXpr@QOkMQUWkmSk!xudg>$_v2R-*Y5qtPHCf&Rr~J1ha?=3T|aGc+jdQ7_N0)M
+z%|VqO8fPO-$N=1Q?xU9I5FKr6lFrOK@F9Z8pY-rG^@~XJTSwA|GTnm)Ux&f_sg#;a
+zc+I%{A@ZpqB+iRz%w10W(pH5K#71{}rs<MkgiCm2kpWd0%IY9T%6a<%bG1_Y5m^!Y
+z<5AJK9-Q_=RVdo^P^1sTc3f`N&VZK`{-ng5_N^O?u5+ryvFTg%4Vo85s?!M!Mi%`h
+zMEKzLWZRnV>cw5H1rHmi`T{9YEjUlqKARK+e)?8Kp=y3DV$jDrHNZibJ5Eo6RY?${
+zHRe>U)O8WzBRb=Vrn}TaXJ4#ThW9^M4$&FDC<A-Gc!-&wdZGiFWP*h8ZHB;*f1eZl
+z_ybHrR5l$(mCJb(Ghrd?RBfFMyS6qz$5Re9U~RZh+TS9p29TL@1(22$=jL1;fTDEV
+z(oAW3dlnP4+q@Opd+hpe+~0q(3022M)RcYz7+34N1w(0>ySQW1r7IF9_*k1Ms)OQC
+zE-tFyQl9hHTPc_FPe8s}vGbPuBSgSB)iKE`I%YaLT~eQfqvKVoKOIaDyI6Cz9D3&=
+zoTr4i2c37ih}zgUf}?YI1X^azf2}BVzh@|6F_WUs)B=>0aJ51B$gN(JgMI~un}5n*
+z#HFRRRf(C^UIj$`hsvxSIlAr2{%UX^^o$pajihDRUw`rP{Ko&FlOofRvW)4)5ml7a
+z6()$#CL><a&t1sJzrjbv*~`UMSc5-nnPfqDLt5fh*G0oiAkQbce!}#gVD2Vhh_+WB
+zz0DJ4rtc=tcPWH444^;s^^P;fHu5vMag@Cv3J~ev)cgr3Ji}ga^vjNcW+MZ-=Xs<R
+zLJlmXFQ#o|+$k>TpW`JFzA}Bh{om+pA4^vj8O8gJ1)SN80oCETG0Io3H;igtb=l_0
+zcH@$<QNQ=U4+(_)=V__6sF|wqEM7I|tI6j%sF;#2G@uN4{+`){Q~8D5SF!V_It$~u
+z0SXaiM`RrDHT*Q(%^$av9x+wFuqE~}VgITr)%IY207m`#A?x=OZwg@h@{cgShK}W@
+z%<!@n_k&`B(LjnkZv`52q5ZdJ^23CjKddvKB4(?(l)jg4_6!6U;=fBS6yNoK%xxWi
+zt?F&*=cMv_{fk?h!kTbKXrC(CacHjb<6R2L>xfSW0k2d>-o8Y=zZCI^dgP<{`R<jm
+zp9w5$=<`#u?;PA}ym<`xto0weA4yni-2b;OSR=le={9-y{5mAYDp)znIqmzzhnE+0
+z1SsNfPW8N2I(^hr&(|pl*?9M<J&(?+N-F2^<jQI1APrrAHOZye``DCI9(B*ps}7oQ
+zRCeNg2;64%|H=X&ERmMuKW4@nzPXaKV&92VIe?m6l1Kdz;?u1Wr6tR_QYuk;3W%7!
+z{C9?0(#J(i*yRstx2L(`&qkoRuI8|iyUEROG^=;Dvzy<<68L%3BKa)0G8cX&tG9f=
+zSsN>KaSrg!LKrC65t}&`Q%|<+u{NulHABn7a-Pfo;TRzfbz1h|mn8A$?Nu7Hr#5^F
+zN!l_$51_$P_*#Xwq;v9qB4{PWcc2J`X&QfiNMmZzp#BKtkr_(vf59?hksj%dBQuo8
+z|E39F#-)t+|67qevGyjUlko-f=uNzEtyKtRhf0Q8CDVqc6X4L~w=;#Na|-hHJ;fM@
+zn({(T!o?IhdlffH1p4UnW0-v5#Gz?DlNR9--MXP^y~P&cEk^0a#J*mk>7#ZQ;bJ?Z
+zgws=c)O+1LmZBfj3@x9_-w}lZb9xKy|07P@m9Y!#?ME8wxuN-T^n&-ti;%3d-cxSC
+zNjF0Waj>;G4_^*d#>9OQ(s#DSMtl;>vrq{XtvqUl+{ZV3j_knx9{_$pfxiO97VR1w
+zMj=XP4W<}J(=4F04!G0BAH+CrvZj<e!EKgeGjs}*wIv}TdyTO5g=|OL!c5(aTSN*0
+z+BCC(8w`bsAr9jjL!MTCSsO@ktWV1_+u!fpySrDb^@nKw@c8QOd-vUU@44sx&bjye
+zj!_O6<w~RMH_ASvY#HUz(R}%oQ9famZKHg|C?7J)2aR&lD8FcwdyVowqnt3xT}HXp
+zC^sABm{ESnC`XO*2BRD?%4>{r*eEYE$|0k?#3%=ia`ou>`DGr<WIkL|>avobkzd9s
+z;Fk%at`pktcl`gsFJn)03BSw%-L8w}uH2HDoVzlSxp3~vM>3OhS9amO%$@YHmCu3I
+zjCVI@-yLqSs{-wgoV%8~60^x~vpS>VwAS(eXrgbn6-%*x<_%_S)^b1lpuzqsuBr2x
+zO{ujg&k8oB0>MUS#v6A33_H>H?NiHBY*SUDQMhJWGU|Mxoc-7QGgW9K+c#%(Cd0ld
+z%t57cbgk%ziYt3a_s>m5`e%*NKg@eorSo;UB8l1Lp9vM|Gv+$a=Fnold966(EI!gX
+zv?Ny+`C%R|Dd@*P`|`<6uk<+NR;WlmZcD6NuZm$}Op{yk5VlKxFqFG3BcHY})b0d=
+zZBB{KAsC$1<1Dn=(4X6-KiS93-&Ku!$U*c;CevNx=Na8699M9w<k;I}SxbHXCnPT8
+z=j7(_t2~D_!6z8Q;<yt(OIwj`&d2<X?MTK_HMm~p=b7J~!sAgI-Ds1;$Qw~{P-l3r
+zwaxLil6T{-es5xL3G<AX;hTK1b_ahu(;i?xwq~1kS^nKl1!G~+_L(|%it!D6N2TNt
+zY;!EhM^`T~C4XXBEdj>-246nz3$SlcS757M6GVHM2NHGq{JT_}@jmhll?L!G|4y`L
+zujA*pp>3X^-N$^*mKDc0-_`d&nM@1M%JRItE15iQ1tTes-;=V)ClXNcEY)<02V?dE
+zYwrnfAe5?zGOl}@<BqJiD`Gs?%^aSq`mqd_CGmd7MCWs{|JG^HdDtbVcP>BtD#lus
+zd8|A8v7C2%gS(y5ne}Na__o9v1+0~fzbJDB$8&#^!zsWVj*Q8Uy;<T4Z+Ckmf1Gkf
+zn^NyX&Vp9<yse7Ix}Tgg0ToYNx@c>fb7>>49rn7c!<$rm#isjvoJ}|PIE=F>jXrMA
+zfh>CMCc7&614rdLT-VRsc8tre36?uw;n;+m>;UBOnqWijtol><?%;wRrz+X*_;_}k
+zdDmkqPaV&(y8}%&Wz0%+$(iD9j7xz0Fm907J^n=hZJ(+fm=zLx*o^P9J<K0>EXcXi
+zf%(^&c3Z3atgwAGpx3nrMPD}AC3oyfGuHYV#+@g3JB)#?4$Mb;)%pLcGU~iK-y{4r
+z=zBo1H(b`He)LbtRXWy@@3Ruka~T(H#;e^UbH6h;_ow4G^0RoY-Ofv&GGAnm#DAOj
+zc&#S8`coAH{t?FQS;iS8nq{6b|KYFk_cFKAUB@vNHGh}MY<wt_dDGAl`&aZh`(IIG
+z!}yjOj7>$T(GDfc(a&vK@2=|)`pccg7@s8=pYO}@#yk6`g%YlB=)9riqY0ru+<`{B
+z7WV}LJ9%#0t~6o|%35Qo>(H(mtK6wYzt!0DoyAviJa<XlxGxb;@p<+w<LWqPs_k;=
+z-%34}WqKSrrotT)3#ZC3S2l@0>k@r-17w|TDU<x{jrQRM>K&Jfj5OM;n{|3bpFoeE
+zQ+1abbtlg$Ir$cI1TI3~`zagkY2nO(Y}^6aXjs%EyizVL8;nC|Y;Dkw@51|+P&Vwi
+zv-{J$Y)G3KOB71H>@(z}IyrwXWNB_rPC|8VD_K96akOTPkuTJh)6M_Ixc`}1-P~v&
+zIhW7jp4H7ip>9Um7uqH9rLDM!eP4^d4?v%B4!Zpur!Bd0dK$RJ7mY(tZjtd|T!V1s
+zpwE7c=P75cBCqX+EGGIMKBwfBTt%BGuOZ57dk({d@XqO0qy6{iRBX^ew3E7mF}|Ef
+zGIx{p&JO&J{^?5!50T<w5YCg3-TxoBw%<}RJqVfhZqCa!^^Gap2cUNjyxikZ=Tz98
+z=_;K|a}M;ftc5zp>mFhkjwR+3V?1ud``aKhZIY|K$!3mX#(Q{T&<&BMTrTbFgsZ1R
+z_zZ45m(Q79C-Z~4d5v(rah~6W-~F=IH0eB@JLPwnC*9SHl#a1(-j#-V^<f3Mb{6eS
+zyVTk`j~IenSLK?ghVe7g3~sS(+@wqA_5C9)V}~V%F42F;&@FC>H{C1W`uTGzwxmk0
+z`^*>0bzr*wuJm~Rn`Y>5@>yZhE-z)g3iGoIkJHVRfAv0ct8m_J&*tDn`xp<&wd4A8
+z8e4^kty-KTk`K4TnT6|IQ!2xcI=l|qPrc2$A%}kS{cf%&=d2vQ;aGFb4_zWweRq5^
+z78@GBFjjqMd@@%3_^fIJ_jIO$Rew0Hu<Enp3aicnR%QK#Sha0Dk5!*RdFDm1>aWHp
+zW7X(c)xOviu<DK?{qry5Q^%@}<Clh24~-S{Bj)PCLaZA5Y*@9yz^d#|t2d8TJz1<O
+z@npM%3kq`5O-#pje_^}`PVFU5ZFX)M*ErQuIJGnyfzI5T%GTq>JTJsXzm&MYM{U;6
+zdG<M7zgO2^CG{UjSA?3KYsV+zVDeJc5C=0BK8u4x3J2fF@A6?yFk-v{we@|>&z!@?
+zy$TzbqyKyfyt8+&Q+g{gWsAnfUBKAH#vRUWdY%*GmFKW=#{_Kr8Zc}jHue_5#?ps)
+zpViCXTP}!=OEoqwzX&$om&ph=o;d*<H!EyR{1`qg`j|NG4EaV(Y#jcrj#&ma4w=|^
+zH8HVZ<5tK7^MMz~#)Ffvu`6-Fo5jSx68zgW0snr3YZ_#{db7g6`>+n}E5yHH;$QSr
+ztH!^viTIbilZzQ!jlOwG_+x;F(eLh1%>I&ri9f(^VFMFi2~4ckhyqO9+U-~~<0pQ0
+zR$(1ps{(c))@eMeunyl_v1l?5{vxo>XaNph2&^Nq!N59PqiI_ZACwz7Shzy4E?j9@
+zM@_8jgS~LMUekTRv?J)RJq7re_is2$e74&m|77eu_;<rug@1pY#lNjBGJhYz^*+gE
+zzDf8-CgAVZ7Qx@-u#~ue&AEWzxQ2bWY((j%B^W;sutqW5d>pv>coE!OSAd%tn;XQq
+zF2=aVEybY<>^vLeGuxF&c*whE_J?qH7=1<Dbv3?aiKRFW0w~u3D=h(LBK8c3Ufzzm
+z5lc}vYVn@whJ5(!cq#-8y^8!yv{z6Mad%a6rxS|JcNPMF6MGBJ^XK_2h`VF{_=%-w
+z6-H*P<~Zbqw$>T)L9~Wb4~SlVQuOlm(4%#zKV-oMFfg~*z}&3w8q`NVy}4QrS@+Xg
+z4*SQH9RB%vFn72J=DuCaVHR^|<?uTO<{lf%WA1;-WCU~jY+!ESZOE?1+&dKJ4sI39
+zy_d3)coJ(%x2!G9VP7FwyIZjKIn7)0vaBuLvbOwG)|T!Z)_xxM&<3bYlG~vkW3|Vb
+zNlfkEVox{l_Pzl7YLDZK#dCO@{lfk_iaLITwzL(&+letXKNv^-P!YUcr}1{rn8Mo|
+z(AIBJHwD$46}<qN`_Y)f+Yx@Vot+Om1gDY1V$+bC4`DqYHW-+jI_`IYx&L}>>X>`&
+z*o86o!(+c&%zgOW`7!tUu}j0;wPP2?++|~*9doZOg1PS;D~`Eu7`r&;j-1Zpw5ek5
+zGiN4a%F3||WA33dlQH*0r&JpjPZ4v!r8rUg4xdq&dj|9)>o3IIFPzC^?srh0ei6*=
+z9-EB0$3Ic+>zxATezr*e96B>~%)Rf-rD5)MpA_^X=IVx5p)(>1bI;M-C&D9<!`vMc
+zF!!7+=EhtM0IOy(_rlrKi|vBBU(oz33UjyTFn1Yb^(uY?=9$l$MXm(T?~&t3_ytz>
+zU5+_Rj+Obsr?#p;MgEqc!pZ^QO7cgn&~?9;$s8q@y$`s#0yxl@>=1tN3SinA=vYr^
+zy-m&?^1za}6IkWiT7xHm*!;iA>4U#NppT*8Jxk8ybo<dzknNo<?Zx{_@V*kXt&ALb
+z6;_jQiPfFS`x)KA*V3-Q)>IkBh<K5F1m(fkux`HQ%tU*90oCTW1)D(sSk0IVdz>tO
+zUadJ~Eb<rlUpemcb)57<Kl;dx9v}zN%07OZ;AqGQ`O)tc4j%HSCi+UAqCa$79^-5O
+z_Z|A1T;awP{b2L7|GUD#_|H$k_#J}r%Zgz98vVUiAn9b=R~FbNSfBL~>l4>X8}U4K
+zxflHidFgu>@8J4x*?5nw@qW^iqE4#_Y?pTIBF8N1sQ~7$@ZXa1g)s)?yN|}w(}`=*
+zhko>-E3(n{+V#%#Xx={#nJOC{y>$QhENufksBM6<srbjEhJQTKBL4BLEl{Ryfkm8y
+z7#qmahtK^l&x9(Qz{Wah8#V#gNpBK1fq#$ST<#Z=m(_!Q{8PQwltdCPa(j6r^o@5+
+z@QoiERr*di3o#dIOKiZknBcGuhkP#LFE@PUCEBO=@@QUuOSBI(HmZ2JbAIxO?V&xn
+zn79n}EBheaXGQF*Z^ZlxWY^R6T$k?b$F+G4qvWD(6^=po8&xS^5_&AlBc!>%h}WbY
+z<R!#!M>KBZwe6#7O~uE*K^{`#HpTC;1G1v<+ttB(x8QoTk353Vd$Xq*_<4JQT|xey
+z6{xoYxamH;D@xoHnQT|A7*)LZ^sAE_mA-xpa>sVvi{Bhvb6XFJ{-fWS-y~eAnmf!2
+z>~IEf&*G1i&P{AC?tk~M#CrQ`-i}yIJ0g<xzjp|xEA+o_)0|yfG!C4P_Jqh+n`{(}
+zS&L_j`QBIJKKgxW1JLhFJD^MBf4|{-_ZIlxZyKHKdmkOqzIXIpgW-E$THt%Hy=tQG
+z-K%}?3rCe*F?%#`k7n!c8&P(^->}~6CffmbL*70vumd*eeHj@8%{?^14<C-7yxFh`
+zhDMZZ0V}>yQ6O7B!yliMFWQat#~19|_@ea3cgk9rB!9oy2%Tah3~ElBf0wneQ~dES
+zh>g&hvk~@>T-+Z&N=z1+=#QVK=k7are!sS3FV}W#MNrFOpxz;;8@VqJ6xa`ZzI8;|
+z5C06@xGy&kCj09jA5n8*J#!7nUY{-Ns0Ve^A74$GqK#v37n|Y-xc_;!DX=^5yN7Mv
+zD|2SEU<2MS+@o0g)STI&+g<PchHLUkHE#-i{B5Sa@wG3XoKu9O^WG7~(HTta6`sz;
+zF>)1QjZ7-r+T_?I4^_+?KLOjznU_)cnOMux_nKUu+57m+4BRVtsPR8foVpqFm>7?3
+zAfGJS<AE-&8zC<*^Nh5LOuE<3O$C#R=d&in>(Etx?jZxe34ee5By*6ALQegxdyC?$
+zs@~e;RKL;#`;azOS9+ngsj6U8Rr*nHud=EBmipj2+EmRp^O;oQ{iD$TqnImmgm=H$
+z_Oy1TiSH|-&9)zFV<lvj{lY#WKR$Vvtll_zWKV8Br+CO+7_)_X&o3)GUl7?|-M<X;
+zt}@c;@VD#5hUo+jdo(pLoV8<`9O0u3k~8nFzAK?0#ICz}r`Ruier#BCs=hHhbyRFG
+z%oU?O!sm-Nd0~TvjW+RKa!a{G&A`!Zjy1x4QalrBz<jUQc&|llAIS5Eqj*ncq)E88
+zPRM-d%E>zWrvm+Ucv#tI3v>2ar^=nAzwIB5@0zLYGxBwv%w(?RcUk(oUdLQ<L#L4Q
+zYPMjIM1P;Q)7~1-+i7^N>^<%+3{SMv-X(WrfM<x}P8{Xe@jL5d`+tr)myzc+sMebI
+z^|O5LAZ<7&kM*Z&w{07qY?u6S_`-Hu)9_@wEtyhnSTjYt?c2i&$J{%d-z#DLg?8K5
+zhx2yZJ;N8@D`^{^Y`4{=bo-`Yx7}K#f9@Why4|*P_|ojQr~3-}5&Gbs!o8BjXWJ_Y
+z7<(n`Px|yGo$E37O71uIN{$W{*(+(~UP+5HGNkr0e61}G?GTqgmU78?p7l1*_GHiV
+zygEc2*5Y`3xo7dses8PVv$!mKo~O0&JWqGdp1E>3f1c;E^PK1T+9jUn86DE+d0LB{
+z=jkmx&+|>$v$*UcdluK|^E?yxEL!sCdGwye0<`<hp-bPhn5*rT>2jW@`_lI;ViWf)
+z3iqlui|x`qVIL!kYvcIpq_$b=R`fV^cjvJxc@(E58<ouxRW?f)7<Cme>Kd*SA>z?C
+zXW5~0=ZnFuIXp8T_VIGu_skGwjyB7a!n00acO9;O3D<AJzdwxLo+6hduRnsn`F{le
+zlb7+p0+k<)cqoMTy@+e;Lgj)9sXrp9XAQ3VLh+Q9XtLJ<Z!8BMtfH+ge$TkG2H3C^
+z{k&yJVNhP*q<zt$A%#Kfv>$|+mN^VKw$MXM-PRhxtRd1H1=l+6*s>IPmTSppi@$>?
+z-$dFl+Esz?I(MNy+J_PP?eEwlnDsZBcQ}l8tulPqCB`1g?L!KuUT#@OmmQk#&`)db
+z4;(DOb+m8h4Jlmr55N)o3;e=r{cf~*57#N$H*MngGcoX1;^&gOKo<XQSNJ#ZnBd=I
+z;)A5@JSMpAh{knR@W~Q+4%nH`0MC^G+u^zT5-a)GTz=0Lc<-CIKlXvrX<1xH`zU0o
+zGmKe1Hx79lztGvF*ks#ii{3kXQtzD|9=tT$sA6ccZPcJ`BlBF6ufR4sJ(#zR*343}
+z^DM7Lm2D(vrGO!*kC)Ik@~bmXF32hEB0iV3jeOcRdVf&K`kRA!+h|<NW%r<x%kQAx
+zQ$_YjR>3wpR$v?bg|>|**h6^FeTF?GZPt4vw26ELHj&q#-!D-zv1P)3$;2~Cow;@9
+z706fEIHUB;pwinvG1i%v3eG6~)!@Z#qEkGhbRL^1j_3asGIp%Up2^BVbw=qZaAfiV
+zXOvb9=Fcd7SKI$Je)<5m$eQ<;gZVQ`=o@W&ZIN6LS=-Bv-(QqGdD$~eTLj<zo1QPs
+zcOZMG<jlpI<SXzWaQ*imQ}cv&5cgh8TPRtu_j2U^9_Pr#_Fgb&c&6<+WA9};zGWZu
+z>Au3fmqcgU9d5Eer}sxZ>vxK8=MG|it9|1BNKEB&<NnAkG6%!72j*3V+Qlz7SMYN?
+zY=ef>#{*dm-RNAGvklhvIapU`h<w}qm7zwbYEi)+iuj6~?2iT%cFOOes62e1*Y9}A
+zsDGZWzYKaCjk?zSj<<ll2L=>&qc5j2$Xutlx^0XL?352b9?0UlMu%-WN}p{cA^MKG
+z<?Gq~7R+;U>(b618_+m2!f|YNm|u!MWck~wcV5@Ho;Db{qJJ?!T>qea?<?A09FjbQ
+zTb=Yk7S}gBw6l*N$zwqi*VF#o80m2~0>3gJQ#J?W!2$01CdmCSYukeZVmo1tYI9f)
+z;s4rjgR=tV#h43q(T0@A>PXY49m4geaD6%M@rIk6I{f`T{2j*s%khu4>4|q0Z^sc!
+z#mX$l`<EBk7Q`d97JY^d_9|fc2T%w4=_AvQ@JQasiT4nHFfQSqchxsPY}gTpfsGI2
+zd9Deb5azDf5Uct<G3Y$Wo0nh?+!M?By}-sR2l9JBn+6ol{e9fm23w*n(j$8523#-G
+z_C$C<?E_5<Hl|H`Li9g*&oNh-2eO2E75zG6sk-N@r*2J+WHL*|$E7%xC3oBck;g7)
+zk;rXhI@`YQ4HVf+`laH87{uH@?pE`9`FgbmF1rKvATbxlxFp$;&aQug|9O5I>)#^g
+zsl;4%hdR<%8UEo_c$a?xxzan*b3zR%UpStU^(LD22S2L(!Ld$R8)^sC+EZfq<<6c~
+zKH+Qe4&n~WPd{*nT6-e))mLDCJtyZx9<^QC4?Ih+Jz0NmwO)IE?6-1$-dO|L^U|{R
+z9L=sH)YDtFPlouHwykPolT)H~z<@sEkvn6J-^isdK0C|ye5B8(XZ=vj1;=yIUfs{^
+z<Ku=-Wq(I?e{U@8@95<I{)#@+u~>81zlc6sB6<t`5{lVZ7-KMi-vW9JF4JRBD!Q{^
+z45I4%`g^A*k3qK{gFnFgjuaV#DvZH_f-$(_JY%rh7=vd|=f_}%IR?hr6n@_*`wrt$
+zrN?Cu<MLBIE{W4>Og<?b6FnAIw0SPaCe1pGb2l6l<~(luMSe^Mjq~c%Z~LKJ_UGcH
+z+Vq@XDQCV)Ec}iBxexEB{Vu%g(FQwYH93{~_ga5bs#NA~qW}B44_#Kw4L#-yS)I;I
+zTwBFw(cd0_TRIeI!n|CKci30sp6XiZ(+0c5wJS~CckEO3{U}#*5AosC1#=nq_})?9
+z^RR()#g2NK`2>2LvIN)Z?(_k@POri`9rnka<yae-!*~#F58%G8)_4kbvgpP-#v0&V
+zd+c~B;pf>N%vC(|bReGE7mTO&C*!GJ{PrAvTY`F+1DZLFYj9sR?t2k(O+NZJuZNC^
+zwb%#$kGt!Sj;hM<ZzdBmBvA(ln2oW%U1FQsXlGs4lSO0)MK`Bn9WYpGIXbRd=~mCi
+zt_L|i)D9#jAtjsuA%qyrti{Uule%c>g2w?tsf$}z$u8`o&aa!vk4Z9!9yq5S)9>ed
+z@0<5#G7}P(o^JccoJroickg}Q`@P@q=lkP+@7q1%Xq507-M7Tm9P#SSkpt9@uFiWR
+zI!EDSgdYl6f$X8dir`M6hjt2&yHhMij8X53UmEO+SCW3KaMcT^^0D%{2yHlzvQ-q*
+zXBv$g&&YN37tsn|y{M!QVb-!v4Z7VM{Y!-%w$e5DxFA1q&Z3vbyhPQCfBrHpm4~qf
+zIv>6}Z&w^VxR~DIi_`FD?<AVYaYAlis&&O{NRKYoo5d~~%WnD%od(v}AUu4IV=d|N
+zb%M`1^{toZP1D$LzO?4sDEO=<-zKhIkNYb5zJKC-?}nX+c7iygwUh5(fcqI6Y!cP#
+znR%*hw`#jewOtu9+S(+Zr}e}%BHmtt`KRA1=y}i=*KI^=r?eTy(f5_pQqO_5FOcr}
+zoaIngyg*wPzKv{;ezpr*LIsPq#;;-D?@q>W9=%gQ7aTe*aTCch9>Yr5&e~Rib0u+>
+z4`kJWx>oV3x{ul@TR`vo0R4Y}<K%(x0;2H?^uHrWy3zxkd!YX^ZC8KhcY)U3kF$>p
+zw1)mXnmf=4^Vdkv7SMCMsh?f+!G1~jPTlHV47{+I^J(Ooc=)vR*&bGS5a;Bc{>t>R
+zzD%@$Pcr6CwGk%U;3=YoUt6@biR4iWe8Pz7)eyaPm*E@PMC-YW&%5(6ZE23`Xr6JN
+zxo2?%X9wflQmw9DRAVmdHu5=MTHPkHweY=8;2dS#SE=rU?F%1fH?7wIt+U0nwmdq{
+zuBG>-wY!_v?n|_G_t5Wq>36LC>LAVsqjl^;4gjrVw_L}?IN$o0CO$f@>a78f8S)00
+z$(_aTTdaJWpyd(^_9~+H`~mL^pz(braiPq+G_hK_<$fpKk9mWS(M@>m=&=mEmIIr9
+z{d77u{m-O{P4TyZO<zoA$EIH<)3NE%WI8roa!l5OnhG{OmOMW;#XSZ#J^FL`uKgE)
+zO`l6jZ2D4Cu2~ng{eCh#Hr<povFT5eIKSoMVbi})N^IJaOvk36XC^lF(fcMypOvg0
+z8|%M_*!1P()UfHcq=}18xujpDHfdthV>z(tzDZ)!hc7X4(cdPgj!o}P=D?-~4)QlK
+z4$6g1SG_0c3>rIDr{^H^eo962x=G;E8x%fWsPL(a#<m~_KE0iOtC#{l{g!1Ol4>44
+z8<q3$r_^64$2=UH<UHhC=3%;J9$Xpopj+nQZDStln#Gr+<~&$&Ed1Rg=fS9bSuiT%
+zcb^|M=f?2KOckdd9Gx6a?HwJDQy(6k8csc#fm1&m9gkCe@2YpY$T)S)=>JWex^nd5
+z;MC>C6XVp|M<<6<7mfb^!l{nY-wmghj!q7z=8vZ1)PEmI$En)rh2zvyBU8tzZ;t%W
+z<J31sem`+)`#UC9x)?b1etOS`r+`!M9ZAQj`k{2}HksUr#UtZm{|}5zoEza88J`=m
+z>!9qr);_h|h|&?68*$Z$TtAo4d!hZz+z9)KnHzB>{at*X+=x3y#$&z8gK~UTt0$iu
+z@#XM%`dl$G_1uUv!;{O6Xbxu35x%>NRP&_Dk{e+k$x-vfk{j{3B{yR0aPE31dxj@p
+z@8r$l3$J(5JACo#o$#3d7werg4FCSrJNdgT^-dn8YoWI^tzxyrO=}<P5o@PV@1#0M
+zy_1LOy{j|oofM|w@$`BpcMhBJVuy+sUpg$~#owkrKF?9(Bs9qyCx2+kOSpP?>NQT*
+zW~p&9nvn6>H%W&3a_sTMJw}a_y_Om$j$v8j#F3F_3Y@;;O(_>*kLTXQd9iAr>`zRt
+z_Q{#Vh1EVenJ{w<94g14Gcmc^Cns{$J~^C_`PV;9n6*!KE1p@GFl(Q5=cs+sJjvQ8
+zJ1jW{Jm!m7`^0I<E7*}Zf9;c{iSy?b?4F?Z$rA}#`y|_5%$pP+7k!m|FQ$=KuplvU
+z?UOqbmb?NhU#r?Dd-hAd&Xx}V`ExP$ViqQ*z8CZC(8PN&zm~YTdolASsDJX+(B$@F
+zo*bHZFXr<@7rqyBLzcamXNI!x#r$w+67^5^nOJA4IlUc2<8j&RLlfiHEkjxApS&T*
+zux5(5^#?-|w>~yx`a02mCT^`AGI8q<hoql#BHY?Dl%@X38*+RPD%@H}<EzVpTXEL(
+zN=2VP&qAL^E%X8Ye4BKiI}4p^6rBvL3R=Oh_rdGwwCWG`2+&LONNmdWO|VbEYv9s$
+zmftpoOYts_0IuB=#aZx9UpvXZ4wij52ff<`+1J7N^qwK<H%_wblY2IYxh7wSr6%8U
+zvT<ciKFG5h`I(?_>ZIrDum^FAC?OmA%R%fv^hTz$Tx*U@!#+p4m(O~pG3l0lls3&1
+zF|N(A_%J!Qn%;kb!b9ypCRw6<mhdG(&rb8SgjmOVrH-v69a}}Z(@i?o(e|`hsMhox
+z)(IQ(X}#s$!1}f&q`Qz4(<>?oOBU#dqIQzoz)7}Xuds)DMIK?t{JLII?r#$gZ?7mN
+z>{Q0`yhY+AZ)-o!F2`OA7vby@KjH16^jdKVqVHRS);(|=NH2x*kjHd9<=5;=`8Bb}
+zH0YLo3&XE@73oByJ_er?-_|PDj+y)0jt?pfMf#BN`ERVcZjI>!Na>hegR*u4{GBUP
+zI;P8#*Vz)nJw{&VE6Nx8GrC57g!`1w6Yl}tikN%NUdf|1t8?R|RisB&EltO>`Pi%I
+z=~g+IwP|?v29<+(lgh#T5%r&Msb6CCIlnR}eg6i=WxsQ_`X&A@#zGx~CdM^<|H}s@
+zUilNl_n(1rP2azXacAbhxFr^h`-qyK{LGvP((`Y9mF{!K{k}ozWB5FazuCx%(EKfe
+z{mdjA2ebH?;oE6`P0q<U|1vNu&BaSObh^v37wA5sMf2t!F`e|>9PkajyJ34Tqu=UC
+z=hh*I8aiF+_~{ni?zZT5ZP3(%-?8ZSLZ#ckq1w0V^-ApXnLw{6EqWceph)TUy%xPb
+zH$$&G)qM0Sy}mcYp1`}t1~POy_3`?EIsWNc^mu}Gt+{uH^l~9`R0;;u^>sw)>pp4^
+zIvV==W2NtJwD|Gp`LciEeZM^-0DI+MO<iF1cTF{xlbLI@b0Bvt=fuF&VmZNq@v)qL
+z9GEzkQ=TQ3lPlNgqkJ=#(=m`EmXjmbX!p7Cxkk`g4Fl3obfK}F%2#v8awdbTJOkr#
+z!+ir2<EjM%<8f8{%aT93?WQlXf%<O9f?JT|TBrKgv-JO6OaDtO{pa$vl@6ri7hs(w
+zMDH`o&j#9+TE>^K_}Y#U?;blS<NC#+j_k6Cco+2vcC&ra$n^?7>mM6}UD*x!6X=Me
+z){os!zrn^JUUJes_PR!rMcY$$24d8ZMIZN@`|nIU<DQhAF-E`3ng)#)d2|ok8SI;<
+z>xMjXj<Ykir^_SK*H`CjIqi&Cf4ZG<+%4ClVP_PxozWP2t3O>PX)11Vsd}$g%R3o%
+zMq!4X;ml%Z01JfAj<+*T_FLuF24!b#7yJ4RJEKYP-VKYL0r|fJwSHbQ=NfAvq3n$h
+zR2~KTanbmm>o@qULAdBsLLVb9B3X0oKnck-)V>0~`w`vyM;2em3F7TbNH#qCO~|<A
+zQSf;E{bVD${Df1rGQ2bBRRX!t40`o4y+|Gu257AL*pI6>FfQ2AZ{h)u%8^{E=;<PQ
+z&cS+N+119p&$7!Cnu}cUl`2+hQ*`B=3FKQ-dnN8BQK~nIa!-@M{>;Bgy>An}Z<E09
+zsPFeA_)Yl-LGKT+=l=ywdwg|zPN_jR8P9-UR^fk=@2HDX0^cmXBXU1V2^SY@cd^eF
+z`(lf?B92xcsv<1!@^0ZZQOY`Cd6;M%)#@6MM}G}`&DgJ8qWsXO<4UIM@5D=~{c^p5
+zYoa)O4FdB98S9{RP_Fv6YXKbbQE2sxm;1Mf$~{}eJbeqTiRREW_>SH6A=LPG5YLqG
+zv8^kjnzupRgt;SHIH+yLY}#LOoj6=`(lrOx8?B8Zb*&gYqi;k_ifB3gU8+kS!v3_>
+z-d(~@pufvYG<g8~Z?*{<1N*zH;fGef-9hY4*BS(VM?ZW|5cd#9Rdc7gg95Y-=V-6W
+z(jKh~!mhHtBHjZo+pD7X5^>p{%^i%Py`x-1W;6SgG}ng$```|sMvM>76V_nAg?yfC
+zQ&1bfr8aC{`8<4@;E{Eo+!5iJ1<6dTNANRbA+Yc|y1%(r<_y4BxgUH|*BV(<0WA2v
+zh|S|?e--A`c10k{eqyq5-a|h{-ssPXKh`ZoUQIpmUwz0~?G>Jq9)Ue;*XhWY4$La3
+z^vve9RPC8v!2ZKP_{q4$)<Lxou1xNQ?sCrS5zZ3G^lfqY--z#`^WzdbYow2Ei>p12
+z^zL~yr{9fBUA-Om(420BAKy>wX>K5V_*+<q_7Ld4fq0`?n;C7P?>zdBfsV?iCC2P(
+zqkB7NrT1G-ZK6J%rfOHf=9n8toTWo7+SJN%7N@^C;_z${`Tm-SljhmU^(zUV(0%K!
+zBf9A8BM$d^X>0gs%{+LEc!YkNHSc4Zv%45iS7YpZWcv%%yP|gGjr?~*=vu;AwxZf7
+zE&rBt-{|33HRdEavxnCj_OSmo`ZMN1$2=_K-*_G{2h}&vp0?^{o`-<)^<Jsw;6BS7
+zJTo@d0-aMr^lP}@q~CWG{pKtBwP(=JOZPrFGo60N`b_#k??Lu{)F<hOd=>C5;!?WS
+zEvCh#Y?br8L422GR0r?#t@3OUDke~PIj@o9EO+ZUR<k*5FPa(k(729~9*)iEfvk#R
+z3>eFc)Sp9*0sQjQKFKddafwgl5x1czbg2EeQZ_kwECJYHgKMbGH8axRtE124$7lP}
+z`SEGh{u%ndgxXnLi9I)lFKIo;7jeyM!+ol*S@X59C+JJkBc-Zu<DH)9<2p{<mtXaD
+zqEF%g><L<TZ)?QieJWC@_MIZW^(y^d!tF~riTy%s1GzsGRUEH^ZVVu{J&0?U5v}R^
+zM@78n6h0oV(-=itCDpCsY1N*mTDIq~)yHkbqrf_heLU;MbI2j3@vn5H)9!nif6IK_
+z*(cZSGhEX)!1+^-=LxB>-ylyrh4YQ*Z->_Ah|%|wC&tF?q+Hg}_X+y!rH@V@_JOr|
+zBi)O*-iY+?_zp78T}1K^m;rT<WKEyj?DK(Ji3b<;Nxr)k{#&wTe8?m8-Wow16<8o&
+z$-U_+zOk`S%01L3TC}j0WnSJqFY9(=t=S&*%(l<-%q~@N543S}pNy+WpHB<d6$0iy
+z$9{!Qg&~%+{c{Di9W(N+l>IY<F@%i8kbTsJeKJQ~^6VD)I6>Q_AbZ(D+jBz3V!Vn^
+z7JbsnJ~ZqLBluPJP@h@ff%@i}nS>wm7Snaa!{;bni9Ko~j1@cKSBr9;V$`yLY@@Xa
+zxra4Y3O@9{8^>?+iME46t!Zy?Hrl?9e#ahP_p|2w8dwJN>@YA*z#BQG<`Me}F@M(i
+zbSPa0J3!WuGUxMs)#m~=pPf18vrx@vshZF0FrU|9KG)}*Pp@S@e<9>vTx%UG%%_{{
+zSZ!DHDeG9#++D+a4rxA(I#zRdKIQ)1ufaEq=Tfq(A%uBdD@^%``D_q!|L!Rv=M!~e
+zY)WRyxoYOQI;(0(k*!sh5awRLQLde{o%4*~mnEA$>IQD}$ap;F@Oio)bb!vXH{2pH
+zkGTH{V=nzc*5Uhw^hu$v^M3W)Nzw_p<|cc}Menhk`}RgYqH#=DvS^|EeG#DRzrddL
+zKyE&Ot-6Zv{HhE)c^1yQQFiKTG2TwyCQLgOxjVRzp9OvB`Eri86LuHr_A-1mk31u7
+zlzkJ#A@nS9h#Dc|5O)e0hnS=JBWOP}4spFO;}Cby-?QCKk%}yF2wlY?{y~h7L-g;I
+z<6EF;beP6|*eCPCQ5OOAYMjaz06mrp)1HD2{vTt8T^E{VSN>naMn_%++9=kMJJK$&
+zH;ni@Tpnx?GlgMGHn1&Oo3eejrEDJ(%h#|k0P$O8`;eVq=mx(MUXkNi&p7!uk#65W
+zF4U-Zv-(PEi2gMhJb-ams~oH^Vq-%GRBpXBPm62sSndH|;vH9Yr_ZtbP<s3%J*Q`U
+z>;!QQTRqXtyFO&psyvHzHp8q{S*+&%w5nB!HbyvRyp40~j2sx7wv22y?Ha5-tf@py
+z)gTHSi8)b2G0-R+^dU?aLOqKrZL83cGpIilas-L?p7o((t(I%VS7g+o<gwEHU@r0Q
+zy=XfSBpNkRzbARU6w^D-rSF@$Hl`OCsxY5%j5auz#(WcBzbkqp=eB%i*ve(VJ?$~@
+zkw2mZF|Uts9*#rzh44-`_eQ<I8~D1@-FUU#f4@#^V(zcT#^xKjH}I!F7n^+U%~hOx
+zvjVaCE{EPBP+Q(U!yngNzhs-JN?R)PZ(Lud{zv|eeQ8^~m~<*|Bl2);bw^^rtPaBJ
+zY_HOqLalDPKg#(zbRD)gXuvqh4g2NL>_fmLGKL#bYrfw>d{m|MRp(=5J7m^eL|g)O
+z*wuc8Dp!#(>UBE;MjUDda0>N-y5XT&H=yP;V*W8%m%SoOTw_g4o>c^X;Pyj1Qt=HV
+zuHjU%CL_<|z8EmKc~%kd*B`{J=M}YZZp|EH?`KAw<LcDjPczN|%s3CV)^MJH5r+!O
+zT3UZ>iFJH4CVg3#XVhw6lcg@ZJtpIU$h%ybBWK4RGjn!cQSp&dx)xXU;y4x(;`$+Z
+z$P<FB3GR^V{qr1W6`dpbc`m5@jh+sb8(JHMO=kGXfkWUgJYENzt1<NJDCuHvW2jWs
+z2)Gh{6ZL<&XPa=4ZIj1-kd^Eghpi9HfjVXI|2h1v;!_oqDC2YZw(*(-UzU?jNGRXm
+zDvR&W#=e=x(7~w0`-U%NEwxjMJUi00Ht-Yfb=T)%T$l&cgZZ_>*Mpo-tbBj;F0dIK
+zo#`?$VaP<4@5tEMCuv~KbxeyXt7{xnw&Xk_rW~;3JRXTk*_c%MGzCUXIhFIcB0S5I
+z^LTeu<~4H8qmH`oTZAp}PW<tx)JLDdp90$XnnV>nqv@e=v1=Wz?ai_-9myleM?H&t
+zgl_};#_~`n&$XFzdFG=(tSfgYikiPJ?(cBiso|ZPL^=F-%1;M>T`_%}^l^Bof4xoA
+zYOwd)m?vzopA5a>X=5zKHQ=Ih?UCLngdIE$vdMKM2D=t@c=MEAhRwAM<I$QJv*G#K
+zQE5l?t7nm8ZgU-u+1$TMJ)5tdy(Nk|SWWW1(2wf(WJbR>_la@+&ZB!>mVVDhWWVoC
+zqTj3O*%C{?{Sn#k{z>#Zhn_99^m|hE`%;d6+2==Vbr;qPwFkQY7`_ROadQ-H+Ne!k
+zYZAs>7~}jeYP+1S!?sCwP%CSc9qEyJse#r3uu^IbKpy!}BhbqC?Iz#*kxS8;;`<ur
+z`%dQj0?^)L@O>wIKZ@@=72n^TIx`02>!h(&>7D#H*Jbt`iT_(f^8BZug_rmZ_89X!
+z>9Qd4yRVV(z}>m|-R+O$c_qFBzoYFZE&aGuKiK=&jq9*C1O7;<!YkB{)Qi+lA>l+P
+z;SneM2)s=9e3iopy;<l!ayiMr8Q2eqzBTs;e9s>GzfkSZ+z^qxjeaVOykJenk_#;D
+zI#j!b`jN}+)aJVxZ9Z*j^YMt}d9>+PZGyHxBU&5h<t$R~rUi)4b$QKBYurU^_+H~T
+zqU(YTy8eXPkTh%vfqn+Iy4FHN4`>)T5-%Yd-mb2bED6`RaHh{@juRnIxdUyn{CO&5
+z$et_I{ovCj+|J>6DUAv5n%Fv?Kb>!%pFf?R_LM9Jo;qQX#ot$J>x|_bqhy*aPUp!p
+zVT`Zc<VpXL_)Nu<krYq1Pn{<NCQm~DpH%%68a(NLFYX95iL<zl_130%(rfVKa<WSs
+zL(_dN%#+I@i`@Q@O}~qIX(`7AB(LnV@XA2g;J@}1|3Uv8SG)q9^M>jZy0cQ3*X*8m
+z;>W`{FPFydY7Frh-1ie^Abq3fMPT>8O?cPtUKetZ&V-Jb?)gm|a!(6<Kjc(<cW<Y0
+zM#BmRhv1LM#KPUO_N)a9FJvryPxM6^V=?OeTJq4Vw7X^j)7PtK@f>6;;pf5E-1vVM
+zd`GmdzDV6)uk$%MW$**S$F%R;r@}Vhkr?is$$r6J!gPNYvH6=hrk79j*+_lEC&4vr
+zi5`!JrHz^IekYFq|C#Qyj$s(GncCE}UdA}cm8ha`zqB<7Pdp=D)3@@y4&KZB1>g4t
+z-q|B->4WECBjVj3!Mp3*Ial7Pa^<-$&t^^YDNNqKOycp_%{>COuVEiMg2uk-mC<>G
+z$E$VZOc#kCs(kDF=sosbPqrrA$9ApDA1brt@CM*}$DT0M8drI|)0AJkF>KcQD^l^o
+zTf;JcZZ);PitA19NVAvkCR|;6eY(92UUhhOu$^=Z@2z-RRO+`!G&jjc-ww`Wt3X?I
+zfhe9^O#j!=d%$MH-hu+M2i?fk_BBR~ygoilfo!J5t}DbtVTr%asGL4?&36c1Q+`7R
+zui)61v2Nmwv&=Px`np(0HPq(i)F$U+fWP&R`1exS2XqbjfyiyEMx8^#QaCFJd&%>N
+z2LH|7)d#m#UHSVY**LaKWN?B36JCe{hS<)tV}c0|$c_^NgrWq~x=TQoCB;^eC9Ncf
+zgkg%mSd5F8d~Ja=tVLjFnO$Z#yA3S66Ba|+Eg$J_hNOj|9p*`n#%W4t+~uR0HlRJf
+z`_7A>WrrryzjmK<^Sk%H`}OX<=iGCj?l})~FZK<%r)(UYRH(1zvlD-KkAH_=oHpLm
+znEM9ARi>xk&m%p~G{f%t=x>a78+f)6&R>=`WM$+1<qzevU@wCD@ou8X{ljd(hI!bQ
+zw!2f$Y2xy%qm1?x>1n>!WS%>B4`ii|2INdJkkv#<_P^N1q4nMUQM`vYem6fkUmKS5
+z$9;sxi006Inm;czr_w_kjrV#*yoS7^=YBo(+}o3;Y=VA$L!aHRkSX0qE{C4vNg$rT
+z4||`#oVIbJZJ*xffFAJsI(|Qo#iPlnKN?PWlbvB=H1|e&dpd*h)k_2SRWD5-?CS}x
+zUYamM6!y=IIFr9N8t?K3Lh)K562bV^kUwY^DejF$<4G#9S|*;(YnDAL-aq#Zvs_D6
+zqC1*Mo@u);5QtmaD(_hmM}o-*qwxpMw95=z%e%KL6j;49+-sK66_57DED7%Ioq0dz
+zOC%l)OecuP{IYmLYq27j><-4cW^U)URWtv|B8_y@S*QD-T05gLD5p2s?KS&K29n!j
+z!PTv6@4m0v9}iA9%V;Z=fW-B^)RC*ysz@lYObth)5A?>aU8OEf6wgjWC8@zkGQM5i
+z5{*+5H55^)yr4fBr8o*lqDi$k68iJr;H<o{cqrlz#e88Ek!r`%#5HO%8l@T|UDh$4
+zZuf?})--RJqvbQpm8s6TRWtJ@x}&|}fV|)B+Zt49FjXxtO;0G12t~S7+1V;32!|3$
+zRDmZDGkb({&a6}RV~;Ns_WHshUm}>u4_haOF@KDCA#3ExsjxGz9AEH%m7DuITfCX?
+zeB%GqO9L(S1i?!ZCP^+2hdP&s12y4Lq<33wB3iq`c(!-YKjfOotrat`C5&Ej^Vxr`
+z<^HC;^xwhRA@;YETbFnLn~aU*HnP8p(M68dU*RTKN3MqB?;_X2{`(lq7^^L1ueA8f
+zE&gwlyOi8=a;q)zw~)J-+|_w)EEKb^3mI>>#G(5t^U~EaUMc3jx*4w{*UbJ)Ecb(q
+zeoNdvbCh!xxy$q7E)!?JZp#Z_!RTOI%D9l+9hP(<a$Cria+u^#K{AlIagI8Q87nMt
+z_2TQV2gn7;(VkWO8OL2?x&K{8pCzt=@p^LV*Oc95@!!n2jM2kL`(rVW{j2cX1N(2y
+zE9(Z(lQ_5Qg0sZi|46=@^1|Uc(tLw)@mb2a^J~h#n{h*4eCHo&SI1f6H|K?0#ra?N
+zlPk%KTfn&fEO{2?h1<mczspGs>ktzX)}hG@4E*#0gBN{yfkBg-7aDWo@E(K5eX>ZA
+ze8Iu|V2Z+(9ENLuMu^Y9%0=50W9}D~82ql$c%dV%Ei%T#Y0g(w5jOBG#o(!B%&$Hx
+zH~f3b4W7`!ycBeNI+u%<Qv8>MHe<bvwwB9vPKIf36RoGjzbCYxN1vQpG`%8sFZ{pf
+z&gD8z{oRa3#255+hJ=DOv7mX=opoAU>z%iWLPwEuk)vE$pj=|FP%c$2vn{fT+C+CE
+z8Bh8;MJ-7|!P@4Q+iH@&E>YVR>8<VdCAvjzV0$F7y~n_0+_<xqM1xQ?G9%y(%nVY}
+zcrc7?h9?$IirP>lME@s)+vxu-6rfwtfG_F8on$Z`6Scu^@0K_TW=2}CFCO=8H`1E^
+z@A~7iHNKvZpQ?;fQAQD+iG--72d?!clkrezZ_<$8&h;u`{%hlJqQF_#2y?vyt$e}r
+z5wrk@eVW~p&cX6e36}>Nfjd%Y+_Q5UC$B4ZP6wKT11*`CVv!k4Isgs8ePmf1Z0sNd
+zne+o%f@|dZY?kM^i|Gq-pfNbl9O>@ob<V~#3)dlLK5r4PnPxiBI2>r-&i!Dfi}5oR
+zG7o|)oui*0u%t8TK(ozE2e;Ld?&%7{H9S1KyoW96!1LgW=BRgo)1j(kdkhzL%uY9A
+zN#}mXaOHE9x66{Q?HR*4=16x1%M>=|wQ#y)_PpB1GNqk)_9uTmcX=<e+-+xGK6RFK
+z2f2Mn_Zg-8>@4a2mHW=l{PYy1D^jNKo8$YYr97+wB1QBeW{=xXEa||zj;H3X_orMg
+z(w(4mCn#N!ZFai%jWjVc9_f~g*>t4j$y1j+Cq!nBblMH{SEp$!>s#wvS88-M*R5Np
+z&3)B1+}NtsuUK2p!8(p_%)?pPOrP9fg*s!&?s(7_z!nSg<aA6;eQhJf=C|vH^K94k
+z=h&{symmzr32!8nh=qF-Xj{F}HcRYT+Shn~?bBM$t$o_sy!QFgs+DMy-)zZ@cHDTL
+z?O1b;?O2!Bj(8FcsS`&3#FN~Z8Et8n1=g)?J%_f`uep9*!#R%Giu^ta1tQbKA|6@0
+zVV$BVmOVw4oa<_du`k;5h7G)@pn+DsBDz;e(qJL)nM`NC+$a#!>zMPP?Tjnu{j*8q
+zO5PgV__9qp<QIL$ednu`x6v+LfC#<2i1*Qb1}_w^)Bm^F4afBtTIw*@YID6-E%!EN
+zlYzO`dNcnfx^Jz2iUa^Sv+d>@4gam*yywh1TgW`PfcLBl`xSAcqk?4w>z>-Te^=ql
+zx4(a4;|Ev%{hTs;u{kD&r=ro$;d1dLr`hH(<YjB0s(J4V5dMK>?}hZgFy%wV2%GOw
+z0vt|r*v;uX^YWW}Kj?a0#QS=)E`)!_;m<g1?ti!0jqpvDcQpt<X!2JM^Q$EB5|?l8
+z<r_Kw>t-ME{a5nx$1Hn$gx}?GC5O#-N|lQ7?xWb!fo0;ix#u8<G#c-)E+R?fd!XGF
+z(_!KDcJ+`zn@IZNNw1fJ{%t-lNu<7T=%JwS-oDklDcBWCko>wP>`UOSVNbB9C%QE#
+zB4KaX7wHN`wnRmbFC32g#g=$5i2MH7c0qhy#*thd4n_co1@y!u_>zKX*yl|~y}pD$
+z6!L~2l6lSBi6FdYlHN$j9}NU45he3dd*gv#y6cZdwtAy6s=(_F#^aHwm+JH-A-~Ie
+zoWdWDCW2y`mBxJ`4paFCQ@eG;Z7plOo=vxXtGR70hw5t^X1t@YpTnO`{we&IzIN4x
+z<vd<rTGn8sc=W&h^Gun_95>|ojb&WRL!ob=-U_}CI>tV;oUxKoWppuCF;+8bj17#9
+zj7^Mg##YAlj2jp|jBSkVjGGxd7z2#k7>5}5F}}!nka3*xFyn`e#~G&>Pn*wuBR?-=
+zHDe>AhjBAwlCh8R3C5=xUtm1Ic!=?B#$$}1FrH#`tTNEaSjE`DxPh^qF~AsOe3)^V
+zaSvmP@g>Gr8Q)?&!gzx5Ge&Wffu)Qt#wNz~jBSh^jA6!Yj6;k&822&0$T-e;nDIl#
+z<BX>ni<)@67*)n<#zw|gMh{~*W0J9t@oB~v7!NQWVtkwN7^BYk38P~*j~8PlV*{g`
+zv7Ir%7-M{xahP!rV~X)5##b5NVm!ilg7Gs(aWjt>ql-~vT+i6X*ufZP+{QS>xPx&Y
+z<BN<384ojl$atJ_iZS5k{%4FaZYEqnYjX#Xgn%%RZj=%(v_l`7knWcQNpPqDl8jLa
+zBw0rV(#F{Zq~*T~NHSS9uoU)A35mls07>X*1k%Q?2}n%P4J@O10;C0RJ@8_pFCg~x
+zzy;J#K-xpM11~Z3w3~(aHGWHW=rvh~K9;>ue^M`+`uFUy>#5=Y`DA9ryH8|}eSRow
+z`VU+DZ(00@EdGNQ|4SDC3l{%Ai+_*B|AfUqWbr?2@h2_*u*Dy+_%~bpZ5ICqi@(+4
+zZz6xWhVSU&{Kk{I&AEFLXU`YqmMgErPE&(jzO#l7L!)~v+jz!y_pwQwL5TIeR#9cK
+zn_!b?fDL`FEOa#Fd78H-p|kKJm6hao^pIUN=U5gtqZB7}B6dzn{dsAdwqK{QDXNfX
+zwRg&T5MGg6p2nE9Q#lo<ayjE2`=*JoHnsqHcaIM^Q|^><RcopYXC<B~5z-d8!`Y|X
+z<yn=~Zkld;TgS)bnP!~H*|&I5S5&{gUmMh)zes+gGwpH@WllkVv@VtIw;^s&zuMWK
+zd6dd?h(5IK#LmRneLtaf_h-#l9Fw|Uu(y2V&WuxxW?^gDq2X-JXtqcl&8igl9_x(@
+zsk{7aR+R0Ue1!VBg3puLw2+STmp{TeHL2ft_e4%pY|y(A>d{G`)||N%I*wXux6o39
+z@(cyF`)^3xZq{1P+#{K81p4PW&7Ns@KAWAVy)mimcsv7}4N}iRY)XF&JIUfZ6Yb*J
+z1vOgg;(6NmCFMItrG038FM3`I=fxkt2<Lm&Q(b-IR9{DGutFPsbT91I2)2ps)a{kd
+z(E`Ix19W>*@|)YGRE~Y|&PheuQQeHQQ6rUxUGTI`q!w2Sqb`ier_>hI2^-RiXCPB3
+zbg5rucZc<BslSPO@m<{!v(AU08x?TrutR}!N-p<kwwn663igyK4eG9xb}M#H+Ke-~
+z*SQ3qeMiPc^}=RjCD(l?^&R@YnEHfvID277yPeu`nX@lbd|*&_^>t*RkK*#+oE^1U
+zh?9?C4ru*4`uh%*#zIXEE~MwQtI(sNdQu}9d`k~{FojY_>b>KxzTwPjD*y9hfwNU<
+ze6zcN(kSlK61)6a6JZbRZ1-PAbJP|K=&p_c^<CSUa$KHA@m<=zMQ8dxrQqj>Dkto9
+zQ@z@eN#VRZqc~F+UrKZ14xT3qBz*^16U+BDNq~qn6{SNgC>DCJLFFoXrKl)KkJ5YZ
+z0TK|oN)u5D(xr(=lipH9h)5tb2?#<olF$i+5<>g-_x~PvpEK{7GiPQuduBJYo3lUA
+z0&_N{5#OD&n)oydmT+MtzIT+_4WI6xIhj93l{S7Dcu6&~p4>2-$nf(Na?e(+u@s4b
+zZ#bWt1YL`r`;Nb0=uw&b{ll0*4iY20{jUu6<j}Lg9vCMs4iy7xvZ)>n9vQBqxDKGx
+z&?#zg4BuI^1)HYlSN97fU(R%DdscA-s+M1A@Y+K9i}H?>OynEiaN16?(l}+j22Z~?
+z-@{!RmB&coid(JEq-Y(x<dhWVsI>V(+x#N*{=d)VOQ}9tCDy_NU!P|Rr2q*?O0LuH
+zT@60M_}9?1M(o>a-*C)Fvhnz*s*I55fv4du?N_A=o;s>6tcr*kZyU$1mb}}&sXM4V
+z-|&>fa;tF4csExJx3}=L&mU62+SHuLi;o?&_Mo^vQL!A>E^NPlAb{<hi|^zI<)1TG
+z3TbwE`=8dhF)Z68Br$T-N<fy5UjFc~FcY@aYLyh@_D;Kf`Ge)pARLgBU{|?V2WnUx
+zMBUB4G1wnO^Z5V=8NL*~T>kQV5yL65?rZD!6Gz)UVmpjkAr_B|R$dssJ-(3im1d`=
+zQO=C{*4gjJ{HQg*U3aMIHA9}w{`R`z_x#3S?pVZ>VZwy<Me|`GEzbK3A4sDwBEQrm
+zSOCv5)21$Q{>iU^q;}t*4?2T8%zq}62E1E-u&zP7{*vK8p*c~xGvyoNS8n9r*fJe7
+zP`DemG3g@%U#fqR0i98(4QGeEC})Tdo?@UJZv`)|*A(uWZ1ec|59_`6eWytmk_;w2
+z&h5@AFBBTU>AZQS_+XHqBkZYk`sY8eC%H1Akjzmax9*BK3pCe`cLYbA`yrDjZ~nxr
+zC%cWmqTqmW=lwm~f-4W4V?@oncvD8jLU3W%7f55{-OTwBU2iPS4KB~HEXq>J6OJ-5
+z`Iw3n3O5_msgIGHl+P7OAGA8fVCVj66p>Rd2{m)+d0d>xe&%a%-WOzkFV{Sfb!osn
+z(7fV`lA2|q*o)x1($A6I<(F1Yb`RB0@Lv>a^K-g4<!OBQPqlKbZXy1FcgamZ-Ib`B
+zIQJh%Qs3=+QgBmYmEA?z#k5-CGNW&^@XxyGX74<4c$>SI`Q1_FbjsexqFB?P5^q0S
+z_}s0zfD?(D7@()5_B{Ay#2aJT>%_e#(VN~AKJ>0mV(YBQN2&XsxyKJ4L|=BW`ghs?
+z)_x}NQ0-N7#eMfbjZkdF#$2DP#it3U?*`y4TyEj^&dmac@s=~r%J1Fh?kE;*IYD=6
+zcUnyKmwYv<ddEG?%_>YPkgsa!7h$ehhC`oc3}!C-l3F|mWN($q(4tGsq#DGU?!Ox-
+z?Z4&~9MK=^NwjIm(hU>n#GTv{3m0&$9n<kxA$1u996StD&3b5x{PX1_om5V<SpKSa
+zx~HJuF_f;GKN!c?sS)+|{(B<>;r@h-inZeT`~PNIz7Ysnuhr`OmnG)B-MwiNXEoOF
+z+pL`}I+lb}4|!xLku(yR8^L;Nd`0J=u3?u?O7koKTIz9a_WrN=FK|y-#HpplrS}@U
+zo}aWWTj#u)F;QutZ|asW69(#WeP0xJhl~!vIrV)@PoP8H0kc`HQ>(sbv(A|a^XB;X
+zO$WQ*3Np8N{?4h_e>A-0ubw<bw4&=5j*H<_jtSf9?)jWlV_I6^6=kV>-sb)6<pTI!
+zi=BnBxzcw|PT@0!qqFVLA`lXjK0h4{tJ`JZ4)!;k>soHWE<%>W7WP9UL<>mUqp!3#
+zV9H5Y7u+=RVL7(R?Q}iHqvTUV`dCeo$S`kC3$)2+>H2PRe7amrgV}iCg<t9oT%4bS
+z=VM|eZZ}p>hB>f=d*^2ELk^e^SN@*+s;n6c|0Cbtuld#LPqz4WiPf<h+rW(1{y#6A
+zCSLXme&$;hQ<5S)-+U}aSZiMHT%$|AzgkGpNyXfU%j*h<?L4+lwjTbs+jk|mGw=V+
+z9<1=ue-i_4<4eqce(C7QyM}mn*X8aNbWHlGhA~Cm8*Al;73X2~Q;6cwxvVbdi3@|x
+zi6*evKn1(e?GmBZvR59`>wQHZ>z0aoRNu26|C;S-{^w@>)_ASor0S>L_i`qg28EwH
+zFGSJfx|$sd<<Trke}vn3SdpHeTV8FPoFlAw{jFkG$2j-o;k@2LrRsw5pU`uUCSR66
+zDqYVKc3B$Oew_SIQfFV;&6Eszv%SY9Mc>#>$6b!URzL50<lA^f-dFuyPxE>5jM|4o
+z44s9Tu*__MwxiagwKcXKlN@>INgT|<iwL8bKfJ|D34da4P-MwR7=HU=uaczS>?(aj
+z4<>!~HY(uuZ}i5!SsN5d@Z;L3MU3#TTP5hdYdxRjpL%Syh#g+~>spkO?Y5tx@4~N4
+zpCgk{N{Z{GGFs-vW101wq%VWc_j7N;^grNYYJ}bF>)h)fRtznjMKXBT-Jrb`e*x2@
+zwDw2cFH4i({K`~{O%qzu{GiYXTAZo%W41bo!nLn9C<wrtQEdD3?5UpTO5^j_V4kp-
+zNG(I&#Bu&^L{4aR-9gw-c_Ig*JGNc_tCv@DvFMFDu`Qp-DQ_rCvX=BMJ&@o#IUr3w
+zWdB@4x{XEnz2E#Nt$eE`b}&-IAyAXe=-Egw)W79BrunM8+iyQ^qFs{t;YF~adw6C)
+z>~R+AH1EX8W3%Cqh#RHnL5T|wO;6kZb2r}cpHjzS_K4%+`9AP(lh?;oB}=85^FMyt
+z{=VE8v?=*-<3Z#5!uMrcOG<rb*>;(yFXv)cwd>^ytKby)`}B$P9rg9@3{v*afcA`b
+zFnwS4bxdNLMet?cMGAWg;`*1_?0P(jrblzTYZU`+r67u?i8ifAu>De(EDCMtJT0&Q
+z!JYN-mG}Pdg?3|D*G5*~+{ueV78rg0r$;mBS;IW#ye~)d>b`CM5z)8RyV;A=aW**3
+z+kG1nAs^V5FSW}XbLjk)47l*9wF`dyUN$=0Ts}8zJ@AU_U5A(WZ50Q)`$?6iwvF<<
+zZ<o?aJQ(R}VNHHDl8ncVicRgSl52NN)XQ|YcfWPkecdsmmX5Q|jr~`^4xpZ2%sN4n
+zWt0m)R#h777Gm&BqxT<pEOZA)R?Iw%ye71yoo4YDc8*BvKQ}fP)A2IAhpGqL`5X1=
+zUq+47(#yVFXK~%|$b2<vTJn!lWcO4J@?Hvq`KL|(T2GR+WY_A6iTr1(C)QIJZRssV
+z$lrzDc^zh3Go~3aF0*OVmJYEV7Ml-(4|6BHuN&+xv^_ZPBg?PFGAv$x#N1h1Q}SvX
+z%9ws*0M~y)yl@0|LzgCDkOQR5PY>;CUH{S$S8RSV(lO<R&n_CmAl6?$K9|ZP9<KbK
+z>kyIN*`?)|@?WYKU(NV0{T;)-g*+I)KSiRp{>qcLF=4rF@f5Q6_BFo_^qY!|u29@m
+z+WNZ5+ZVY%t`D@uR@5OSR^slY&nAlZ6+ym*W*Y^?H+88v`k-Wbf*wt~e?RJ<xrHT$
+zYS;NDj1YTP-x&I4>aIM(o@%<0c60sKPJo#<EvhUSCsF-o7bz-S><ctasGcJhe3_OG
+zpMA>y{zY+sW!y?sT1e^E`GpIzN5+b+FX*aT)Q&zbU`{jgA8aJacNR1pi#q1Z`fSwU
+z;cXRhQ2BwfxNj2BakBbrX|DSa<yhcYT3QdK_+VP(H|}@3?+Izmu)Oe+&L*<!*3aOg
+z$ptX&&)6;fttW4p<BFx}o~IVI*fT?4e8rv8w@M8B$~se5U9iwu;eGT$n%bLFFUnd9
+zlBP_IO=Gm)E5a>dbD-o+3C}z2ye4lJI0n8oi5*iGHf8pfJ>X>yZ79S6VLY&8U`UA2
+z{j^A$W_%sl?Bw3;HFz*{sqUf4Xx5B-qHqmMPW|mKu!7znSsMG=M3I2!j>MI9ky+`a
+z@wx-{OqKg=6OhZ<rYy$0-o+>Ni+@GV3(l2+^MOhtQMzghzPKBC6~)9q`A>gMRsV7;
+zp57^&-s=}w2(mncH{98E4%yj2+3k#j>datIm&f?GJb{DoWZbP0zx~I*uW9>IhTyjP
+zU7`ag7LI&dOtwP&7VSTCFP|D~ylxVZHXAju_@Na<|GrnU|FZn+bO6uaq~MRZ<}tbR
+zO*dUq15^Vo3d-4G64BrKRUyRwVkc;{s<qFb+Z*1CA7DD$T$9ylO+li*p(PT@Uisll
+ziw~gfN*@{iWkj_vADkn8i~hbi*mU3Gj^cm9obdpIho1Q%L0&r_CF16h_BjrHk%;wQ
+zqJAnJ2_Nc}BiaLSf#y~|Hsgu4Hc~-F?ufoI!dONtt=TvVnJ8$>D2+?+D61VasWtw+
+zIvILn{Xct~FN@<=?sd_`1#w^V%`u;qiQtcU$OiTOQF47;^3mZff4Q6H1IW>wIus&F
+zc{4lkCaX>3tf4-aRFM=T*j4{p?}-WjT>5Bj$6TMv((iyALsKEaboQF1$V8KG#o#MH
+zk8<$(bf-I8Q%8C8N{It5L!!C)YXM7b8szeXtH*F%VV18Z>)hVIYTAP>2D-!_dqxfC
+zWhdey>~*V~zpY-h)@eFHT-U!bec^R~E8ovI{R)uTb)=egV4<QCzHL8BS&nkjPc;AY
+zI=6H3a1ujRmK`Tvpk;&hN(zp){0g18%qlyT;(bppSAlQ3Qr(Ff>-igk-e<m&K9?Sv
+zl;e_Sv2<+QHAPUsCOKMlYo^I5xa^b^mX`9;SGBr2Xo-9GdDw`-nzGlz8Otk=+qL!*
+z_v%u^99B``u8yS+chUy8b!N~V0~gY_zrYtl|L&N{A`_lje7lY6Al=ko(A=@Y>%+wB
+z<Suk=z0TiezKHWZ^^fkD&wcc}2NzcO`&!TE3&Y6eA89rBt6z+7Gy0I7^7fhcU6T{}
+zQ|rthA}Sl?l@#3n`QV@*I=1{Z(#<mq@6;_@0%O{JPa&oM<l}UsuUEy9koT@Xx%Ka^
+zmyn24i+Ko?qxH>TN(2(Iy6MrOn=kg!Z1x)Q9#+C)z+Go2$5ptIZfH){t|LEu7-=73
+z*_d|f?BaQya+9rsV1fLzVM*jR!){f!rgiX-Bkp{YR~1+2cbxRM*C7@BuCcm!o$AWO
+zT^r4@??~-!d&}}8t3I>;4wU~b#I9j$(fk=EcIh2BD|W7q?&A*FR2!IQ^_tO&u0&j|
+z%@&C`lfD*y;y}f3d7d0OdslJk{ml7srRd&*fAnwjIKzgNJ^xCF7G*=bV*D$l2WHpd
+z%3+!?ljPq!YRg`ck7@i_Mm<hWw^#{5(}N;d#Tz+}OHelNR64nHCeqD}n@8i8wBqZ-
+zKPDV_^wC>68Z~PJc^wBvRBiOeo{y_WE66oV)z6LXr+Ziv;aHvhK$mYIPxMRNz$4-4
+zk3Nx~p$B_EY-Pvcedl?5O1@rR@ED*Z`A=TL*8V=cfIG4aztVAk!?uim(Tt?N&px)D
+zT^`pw{dSAC+G{cVW?5A7zqR0Fdt-0vZg>`O1xcM!s*U<B@p&|Ts7d?er%V&dh4W2U
+zwI2B!^*oMSdz7^2;_=qSirVzohTf4|KvJMb9Lag0S;GE>3CX+I?2)7U_pUHS)@n5<
+zSb)|R)cO0*InKfTkr~;C;&$E<w_-l>N8SidQ&@zSeTu423z$Ccnm1Yf$?hqoba`9a
+z<Xfrc`0Hyj?Z;*VWO|ZzlY%W+k;_c8HZ?cBo{OH7Oo>38XL-GjGFMFW-|dd(ix$}r
+z?-7Nw^)hKuLplT6x>i@o&_~xeQT5Eo3fl3QhEWM&T^cf)7n>edgtJ=+fTLzyGx+(4
+zf?rf)r&h^*@CZebFTE+=9E`z(zrBP_mj@HqI5t_$`bxk2R$-%y!v@vRm5CHD{UcId
+z<WFJVs=1aMAL7S(>z3s|S0$ET$%{+sh4I<{P{N@CX_LRM6v&1|3o(A)e2yi0^p#G|
+z-s2qVxSJv=&!5L$?5m_{%e^B-9oY#kcs4zKrcQQA{3ONkz)c_SbQIZ3@>SL1Z5?jK
+zD%ACT3{6>j+#<~S_?CZrIc#stzsI{ePGFXEqu1*<S}u;Ca&h{nd&ILM%e^Uzu!O|3
+z-RFU(5^;Ys5)6!bZvDmGkg>H9l{dNWc8fSm(=1~g8`i@6Zw<-j<VKX;CocvI#BoR3
+zFMdn-H9!_-wq4e=h_N1ln$9F6_mtK$S`VU`t=$1<?-m>e0T~IcAfD|nt)DHQ?)d1c
+zmrwk~UYUQT*;_ucmz?w`jnW%2L;j{pOi|dZ{hRp6;`QNT%+I%S+fQp=a6(^v#nk>Q
+z8YpykDdX^G`Q~56-4KIgLA@C>!321Jg-^>dxs{;2%E@#F?AhA9gGACd#df)K{jl(E
+zcz^Q0N-rnM%rLQK4xD9h%~G=99TIvS$UGN8R~eI?9Dp137=)kRGF$ujnqJ2^mxvTC
+zj1L1NKhKKGCkq9B`S-9(ODgoPlm5PqOl8qo-ib<<Ex&i0WOSM<&fBH-^1snV1_P}R
+zDlDGUFVpqDy83#5=Bvcm<1*L=uE^8l7j|c}pFYnuUhECqmWbW-7Mj!Qgy3MPFuu{M
+z+qMr|?}y!txMpDco_P89#Lx1bR)O@;C!Nosv|=aO&z%#$_3w9??Phje__Y;&uONFj
+zemQyv)F1b~0p=Pt8u(m2!nDw_Crxje^<S#OLHy_9;vL|o#YEJaS^VY`sf_ezJ9oYk
+zFWs?EQoG#q(kO9JEm@}W1Kc$+C+xFgixT0H!o`t3T{&d6ujXcsa);4ol#g{&;_mSG
+zmusIdtQ<Grexn~6w-9MFW|nw1g(Yj0XYY%K-*%$iZ!MUp5lJ;I@TFfl9R2Ry(3=zK
+zf!#{A@}<34{koO7vhQ3;Cq9mLIY}we;>*hR6B*zaRLy<ki3>YY9sS{NMefL#(!jLY
+z+DOT=GiLBCk(b!xo-kK69~1FnZtO_@8ISsFUQY;X>$}hYa?mn&Z^jay3CxYkHZVqS
+zyk6$5_Ki%|X#SHrAU+yyinOI+bXvi{&o8sjLNZ%~UenCdDMg%7gfvc?$mIBYzS*_*
+zDRD=6?su(vG4m(^4NO@kk4{qa=vsy1hVOa$#q{5GMsKzv_kq{j;oA8kizDM`*ooyf
+z!O`V*ff?tAmGr02`wVn<N#-6i)dI_FK3+--9g|;K*@@0J+8jRv3d!pCSM!&}u7P4T
+zOVDkHoV3!qvl5t=3z2ER<K*0r5xIYsW(Dj&eA55m>$49p;#I$l)L*CbxvQq#tIJQn
+zAWybpGbev{`8)9!WN}_;`Fq%?dGqXP7CRLNf2tndMjkxAAMmV+@kGpP;K#UzFaN9d
+z5DO0G8XW_oV?+{R9>uSTno|P%$oS{UYeYE)$3kQ3rhKE9(M!(ZQ!5#3yvU<tjPUYC
+zFT0l4_V-?U{wCTgPPGyj;cr`ifDFv5{^eZWd>2>rX-MI3Fuz`t!B1Z2-~qYsZ_T%-
+zzQrD~)^kqK^UD<eTstvGv<_I(z3KKy`Nv0H*I?U5_<M^ltjocUUBr>hwdxt|nAIkX
+zE`Or{-11z^tJ6J{{3X`w$Y*7Zzf@B;)#3v`2oxMti^jy5{S*@!z%Sn%aP%Dd+!fl9
+zzTWv=#Oku}=U2kG*s{uk<#UvvsJvHE$3CA}J**h(oH*a4-8BbFW7Yrco{RpHtKHv8
+z`dlJC`nY_ExEyCuT@|74_ycP96B+rvdR!${@PyR!ARQUtfzM+q-b{xg-1N@ZUw0->
+zN|i2HF|ySrqmO=fB5v{dTG+a-=i2>=kbq9Wo0u6^U1?j-n#vzs4Nmq_`W)2Lwq%of
+z@Tt0c{Qh!kIkDi-?bqc-#n+E}UXKXO`1Ta3mclpdAyKA9Gi&)n6A9m>T-PRyzduSf
+zb_ldd_9G9tnbjUGP!&3_Lndu{_k1rr%oqEdtYh(SJBIkJ9`d{Ni?#NzZxV5FmlmND
+z+t2>}vxkKA32Xnie?vbL*IIjH@^pidoSVpA4b-+#diGtEDPDC>xlVUyXGyfju}*?v
+z_Sao{w%oKY^Qfj=rK_Ne#Lv2G3saEKL4zqHfA771WL|senM7p2218=#dbN%IntpJ;
+z3f$=Na6(4x(fKbO=RzblAD5;<O1@;2STFsY%#4{Y7*TeY2IUrzYwHd_YR^3~a~IEh
+zEf`}Q^OE1N>yh*!HZt|A(EAy4DZKy2iF8&D?P6u|w`Ou=Z&=&&SdW|R`|duMD2k$A
+zTZJAx`fMQKG2}dZENHVBrk;AZB!&xVWb&n#lPdX7?Dw;hPQ*#l;Cqru*t>qoSZnhq
+zor%JJ_r71Yk!Gmd!gG^8pQbh2{$277+g{&M9vb<<FIQ$}HT3?0W&N0PcGH-*J#6z~
+zkb@0z`Ik$?oX%L?^qQN4e^Zy$kmiq#<*k!eUE20`nNMtDEypG|$|KG7Uo`nk!3sRa
+z?1|~x-ZJNM_Xm}oO6<S|NUY!Uh7rYWO<1*^$09xZGxBB4>&n)J25j)t$}}?Lyz4=h
+z!CGbJ=J18)`If7L6@%pI4g0?tv&(uK{;hhE{@!*H$p_aYmN$RJR29^$hBb|Z2j>V=
+z!e2XAKd<*4Uc-NUCt*~l=QsO64(Yt~gfn_VU5HjQUUD%!upZkio|)`>%5yB#z0F_$
+z@HugM&<DBaB~zTrz?JCAj9fR;x4!I+?xWdfDhQ|_46Ogv)Oi;89W1?C+2C(-;Ld6L
+zyM5u1b<r|R*}0e#YM-9#>|#ExG^a#P@V0qaq{!4<oNYe$PI$i1?6Uo1cE0?`!J6%3
+zf3fe2!54(O_zapp-=v={IN{U^)+>T1!1thT*mvaH3LjjgtZzvTQrt}`*P}yUkqZUN
+zbAzyF49uS#jev;h=ihDYYKcSA6M|!WlI0}|KG_h(vo;gHpX$wWk*UllAGzRoO#fw=
+zt=WB@e>3FCx=+8;kZuRI?E2i`{4NIKfy&mog{MQ--SNgXFCx2~bEki|u6gK4zKq^Z
+zu!Fpap|mQ{`Kp4?=H0pe_O{(ElXbIL_`2E8>w3ezf5We1|4(HaEBk+{SKjNv8UDkf
+z!x_?<1qsN^rk80hIeR{Ta~cvu<of=)pP4C9EIAjOxoYx%?bOU-FZ};@kJr^-{;%Ef
+zg5K@_Z{(P{dgK3$3@*(4e@~At%>4iEUiVsm)Ar=|9Jf-9Y`XQQeS*id9v79Ql$K=3
+z(f1A4<%wk>nZynGfK}`E6q!Bt%A4<t5s*@$^v%1BYhq)_{{l~K1GiNJg1TD>=Qing
+zu%~REbWC|lk?v-Hulf8yD+PG5Wrsjhr+y&Lw|2jsb-W-Q3B^)()3%2qprzJrAshY8
+zRENQ#J2I<r>(LZOXPEZy#%SoFf7I4Q(_w$#pXBEoYpbinuy^m^T_v^dWV@tOReFvl
+zSiN_p`*)tcIPCQNdPmdqUKdU~eC2y@|KjTz-D6Al3){l<Z-!bMrahc_Ii_D-OIhnQ
+zzA<C`@bKVT3|1@SM8$CGZI>>snCAss`|+<rEox2J7B48PtN8+P&tx<vH3o+a4u`M@
+zX)IVLMSFJd)ChKxawwy-vow)Z;4kFp#Mr699Wcp<&nZSf1a?fET}7t#4+?lp=#@P0
+zC?}LZ+pYY3Q-xi4IkXYVpL6(O#@l4g{QH3w<-m^fbK<vTjBek|XO9g#?%vZka(F67
+zIWNxRu)*6oX{<(vTUKM*g__Y}-z<rLzgovFj~6|6r0KK0)Kxe7S{BXBOiJbT=vVcp
+zWmeO|iM#DPZaQ2OcOnZ4O@1k3Dr8TR?jN4Rl*^tVWwE)drS3}cw11pA8kQBoT^*hK
+zQ*Qi@VcEt3iO92CaVR4FLGqMyeCvu^cZ)@JADg=z+<dWTBk0%6m7bBHU-GA%F|A6p
+z6S+J{Th$A%7S(!ebYFH1XQIiMdM=NsGL*U1-~>}@!Aa+U))oF2(i7FY@1OW+P+aZf
+zE76lE3aA+p2S!Rnh%is-&EqL3ess!w9rvy2mD#I8BaL_?h&9Ob#0;OD|F+j@XR%K_
+z>xAV3$b8El_#3ren9C9`i2sF8#W$aH*8K+g$Ky)mX$xOotRV8lEx%cJ)avCP$ADkk
+zC}pq_7gk{J3R9Ds1i0+om4P&IW#X-<cKCgKI0^<a;)(_PfMSnM3CmGfpi;<$jVP*P
+z{i?0f#MM_`q2MU=wL;->!Eb_RiC}efCn^?k{AJxm4yYb2Z}VBgRFIbrPDV%KGtqgd
+zaxe=$0}bPS3vTBkbBl73!C^f4{7bw*&Mru<z>-kzQMs9oM7%RvU2!6$$_<nbaTJo9
+zVZXsU;w#Yt*Ft1!wVCo)pY^oxJ>pK`!a?niEJ5tSOZ@giOVCd|`A6(|4EQ4C1GoY-
+z15O7h1{`BD@C3XQR}vSDONhsh>ls=K-K8)smTud{1FQd*bI84J!RrS);AaZsEm35U
+z1rHVx2&^qkqRJsoJZWGoXb;X*#>2Qo@I&|gzF$5*<(<ldP1;jO!N6qh6-XK+7A#Gs
+zp^RKUiKj2-pU1JH2SD^ctXBL0o(~VEM&eiSYSch{5W@d7jky6b=iP!HNC87T8gP+`
+zqy|tQP%q*6fzHZ7CXjLn5v<Ie26g1#v!)6FZU3dpQBA2Qsoi)_{2i1!>hB1STZdmq
+z>f5+>Fe(dD19k-E^5;T2K<snWRQwe*3v~!e0oQ=XxGGV7C~Js6k0az0WPoQ3Qo}RN
+z(;>vx-a3G&eEjIW+q3<Y>#W(462z<9r{%6CK6r(?bo%Vshfx{RCEH$i{9hllMGZpu
+z(A-Br*G=wSy?gDe9Qb{M#+9uXEZo>n@0LJJ>#E5<Zj}{7-Y)b$9B^#U4c=-TfHMS0
+z`KeTC75-d)I*NtQqap*eTeuXsoxsWXEW$bJl@cTN<#}Oj4=t|8Pb5Ngr=J>4^<$oG
+zNg9jhnfViywQR0xRHxtH;TrzT#&f%AY-UA)b)`L+<i9liIM#n#i6!5@jdvQFiDU{h
+z!5-HAE>Q)s3{b}{rz5~Ix`@u23+KlRUo)x2h|WOn%x%N)_Xnl+jv&Du0=)6o0vkDC
+zjJ04xg9iN}(~~K})MZ-M%16j7L5H7Ulu_D*jMFh|5z@C{KBgaU9<LtNs0G5-N@7l1
+zn4K)JFzdCKc>k1OET|{JDZYYgO})?bZp$a=Z$MV5+6J;xA7lEa?3eZFV_q|v`4<n-
+z8{Bah3<*xREST2AB71@cya(ob@!^DKg3&FbLGD<tVc|!w<9V5vJ)p5ihrKR0UyZH>
+ze-ern8soxM-?Wyic6u2b&5*AZW!q^UfNRvyjq}>IORD5}O+p*Ow^sHM?31t_YC~Vh
+z906h8t3BhvErWMMoEwDt2*8E(;$sU%#JTkniVFGJC5DRl#6>aW$tA9~guJWg#(6e)
+zqfzh%TY)+LEvOwTfk4DRrqZb5Oum4#<0o>3n!t?sSn8eA`@BEA5nLE9-gth(X%)dK
+zW7=a|KPSAsCoZe?C-!CQSS&0!Z$FlPa~DEV+`2*X-GXN8ZoyQ8mzC97%QY(eOEqfS
+zlW`;im$=kO(t#dJa94`dyyX9LevvK8YS{OsPi`%LeC$XJY=V*#Wbnz<5o!`ufvMI~
+zDEZ@X{NRVzhW>*KmPpNg>9<_d4K=kE+_<Mke0!p%ym7$P=0te#QCJDQT$y8f2XBjz
+zd?ajtR1c*;m;8omK6r$Vc0|C(!Bad<;P8ZNR9O`P0}~@Y2o?et#PWyn&Oq7|7@nc>
+z%oz9z=!dcz)cO#m+rT*=@Xx004<l}(m9~|#+u_%R^Q22ZR#nQa51;8)a+*o4KXC3!
+z9}Xa_HwzmU*2Q%&+y8VxpKd1WqcjN`wL&f6PyE%OMYPmaF%^Cvh#xdMeuv7UI@W4G
+z;@*O$$19`!QO5WY>RqNxfY5%mw2qiUwfXVF(Nj!0_N6?d2&s-ER%jT?37v&s#h+lh
+z*PiU)cLXhaA@aGs#|n?!{U{WXdhlF{%{O->_9*=5G`HbZ&S$4!rWRZL5ibWli%@w4
+zYN{YOh1|=aG7wNEKhuVJr&fx6YMg&ha!Gg^<iv#onV@Fkoe8V>=hSVg1``^f#a3_O
+z+T%eAntn9b>!x_vLdXxlX+yG5j?|!9-4@9WUP?l}H*@omvyggukG-2C@L|SF)+9jh
+zuF6GlcW`5cnm!~l+*P=cVgkI%XoyE0Fu_GYq`9r)69_c~F+7ZLhUyS-(ZflEEQ9c6
+z%G91=E6ssp1)@-tt1uu0Pl<1+<ogqjsYpv73FCsI$>;<EgHW{5ugIMEiP^?0Q6JS_
+z(UCxca(RS6PGD<P9aUE)F%4?}FA?H)*C_NDnYu{TVhUiOSV7VI`b?EZ$P8COWpYdD
+zemrb2me5B%#nj7la^Upe&xNs1vH95Qc}|80`(5u6Ns_`bq))qpnr_8O3!{u}LXsY;
+zCy6<ABr2g3{}vIaB8~(hPe=>Hc?P)k6Y2^1ROwnHovd9c&R_>;Bj-Ux+Mm7Aq$l{D
+zZ_3bO!Y1NG3y(dRj=DlH2#|?5LIQWf?s-9P8C|#IlEm*90;*5EvXEthHhzJ6sg^fF
+z^b;Qz3g>p@_C}XdyQrGAS`om6{T3ZcxLhmCKK}@|$BX3N1Nm?rfVH?+<2P<N8!M*B
+zJ(BSe7~_>8@D_^90Wt1Z$Un!Y1<FZCk5{~EU3-3xmlwT)kQzL46D5m?9u!$RqQ#@1
+z(2w^k6k{8VOE2+9B|xsh0*=h_r*YY#obg2b8W8<1K=kVY(Ju%@e?lzPyU+*-eAFex
+z=@xMT@CX4BaDH6U9`X#eNVprIF3#%*nMCOmno8u^a`Sx8GV>AK^L#g7<s(kc^EI6_
+zBy0f{KrxIfnNUvXLzoPoLOu)O(a)%+)|Xrv&ko@!IOjl60*Y@!c-qkyYW3%LRHk!o
+zS=7qU^T92m;yZz&_PD^3v0i-4ZIfD<I2SNeB|vUj1e~7d6FO^1AOIbJfg&gxWqjKt
+zKz#m)kh~1xc*!}PS0UUc8EI6H;p5Vf0dC@}SgOvjFfwBULQLQ%@RdmEWQ0KEGyJG7
+z!-Bcj+t8M`wF4wE{N_*=L81hvleqzL&xob^3=8KPbI`%JjRIunp#xB56#p%4=6U92
+zw%R-o_Ieb$=9MGWyF^UfEDEg(h&xf}zz`rmb%@NER`!Wo+A7CC@mv5tMwek>Q;<|b
+zMInF7%Mfm{p-?`hvc(hj*Q4S+OXOQ#Z*Y&?ws<K@_kt+N8xl?ds#hD_)*1N-UWWpz
+zR~ww5S#qW2?H`gxZP<l*+vu-dIrt2wKQA%f4$p@W)!~^sI>6P8X5oF94^^Nk(B_e|
+zy9lM0lT)B-aCrP8-XMS<BkTtaN4MjDQQ-l?5#kD5PSEZ6a>8|{Lja5oYJu$?F#xXZ
+zMA6NJgobZQ5l8lp8VJPl%Yx##)8ldRM7$B6R_Gv;InT{L#@2fzjD+}b=ZBOh8k?4B
+zUlV334oVsDz(M)E5P~{FoUJ9!m(NoGCZoxyRTLS$8vl#1jd!F**1{q{(%e{KAs*%U
+zVuG;89^no!^B4yRJrckQyhYU^E@1>>xs^c530Lq}8n}2OPEB#g3b-Xu@CHng0A=>2
+zh+`c>vQU4NKYF8>k8zcAma|Lst>rH1PN_l7Y8)VVB1ArM_Yp1w6P~(c95a~d&g7R2
+zXWkjaD&>pK^RG}T)N@ps!Q*?pAv`#qocNicmV}vvbhHtw3J>$#BNX6|0h6sFn|~fS
+zEi1rzB=P2jGUKN{@ow=h6Rsgb1GpbSkjFpqne)KF3{)dN3!g;rsMW%7kAbpKp@cUG
+z!vL8_FcKIB3P%A~+z8_U*c_KEND3`a=%LySN+4k&pk%@YU>>^1<efWe74Ju-6hhhO
+z=J*bHwMt>HKPBy|J`&jgFQWSiJ%!qHM>(ket4>VSTAn#5oR>EtJ;5U0VvvniBn%*~
+z0Er)<ThM(%5rRwSs6fdYB*9}3kB~H~)np$P2lpftQLn2A*z-1l)bULkvD8eBScFb0
+zOdKSN%Aj6TIcflEf><Oh6T<Q3KszDCCAJ2eZ~V9dq<{y<rJpc^A`h|A4)}J2^&l3$
+zf&;EK<j0R8WkbNxfWFgn4-W?%I;n6iL7$=b2^RxSvjud-m%u<IqPy^DYCwRF4p<tJ
+z#x0L3#?Mnd0%Ub~k%H3v7vgF7ZfY|1Xn;WrZ!VV~mwY^s;RzwDBcZ@uj!Gg_P^Exl
+z!Z)Dp9<G_pHDerGb`OUmgN?4nHr>M!$wh%TVyo}r$YhAo%~&i@rCg|U<KTR8Y<ir8
+zg2}<D;@E<8ULzAY@1AH1PaKGLwcRA(up|&Fg1?D4JI8wgJ&jQ7zJvikLscNSTVD1^
+z*mG}ji6ubr=R+J4JT<DR_X93qgp|0l(5loRM-TCBivZo0SAUM#-=H0FL$%|7Ada{2
+z8VFVMSfI11kpVKP!Y#5LLVjG8_|y<A^+KCDp+5vG7!b$fjkY=IPPJm*3y_)zxg{tP
+zr1hKv^t(@C?lAaQxZ2VBgjiss1xV$K$EI!sa<7!Jc(zf22oOeKrBnyZe<=+gbJBzg
+z3J`hp4?|eCL<cN96naFKR~TiI!U--Z)+jg=N4iB8snOOE!Y1zV_2LE$MyP^q=29Iq
+zRJlj->)HfwsvXsgsgWuc!Mk@9DYXYO@E$F&$b-b)IFKnm$X#$)5Zl?FYx89Xbg`)C
+z1ZAWg3l|$6k33sVzzPN$l?HMfaX|=oZtm|q<QwPRxvz3!@5s^-N8SQR&0Pbubt;Ed
+z>y0RQmLM5>o#NY7CuqbYubDf<)N?5R5S~ESWnK{H9|n(YL{fZJcy`p<oKUkT-4Q%3
+zlApM>;~xS$MqNd0Z|Z|l_-_0k;T`39J->+B-_|$xb*CvOlbCV*SfN;GJ_rY$;fdo`
+zMjN4FXrqLJc%1kqBMKMaoN?Iy!HBY(*8|&W*EkS_-HWUBo6#tN2^<ui$@e8VUDX%f
+z-^TxVy7gt@i{zJgUy`0SJ{9JdQd!jsc_Jy@f%zfxPTgBCLLC;y%;a1nMF|l|Jwj(p
+zi;XXiOrFV|Up>|<5H$ByAT;9b#8{EK`j;Z3`n)cc`EbeloURZz;UpUpL&i-#TA%cI
+zD-_eWw5pP>JNOtLT-ybvA4|%@bV)n9r3FPK>h}D8NY_cCU}!S$UE@?`IjaO`!;P67
+z;ylZ8?eih`MBMu&quW~r3cD5=`{myc#DM?a1F^n?tZxU+>hgLQEe>)=3HaRK2x2bn
+zZmKT1NRQ>3BuVl}dPj;#vL(qSC1vx=c&Ur&j~*X8HO3k(D5kiV=^A{orw?8of7$wl
+zK(LIP{)K7%PRMBeNl46|AAH(6{revMCe*qpXE334f{@wzqv%p_dxBVSd4e`(6~&P5
+zHR4^lb`WT>zsi%3ICM;U8*~s$iV->>L4-i01fgrBE+IlbXXZ+Sn{4Qj$N2$AT=PSY
+zIOhj>&?;yb<9C{j<ybOF7wM5nVWeasne1*MvdSG9z21X@H(Pm|5#!r#j$w0Md!t3l
+z^`s&gD>&(Z<S)&u5*H-?tz%K;Kbxu{gj>~3WtBy3$uB-r9v4|dH@h(Tsn3$(=P=W$
+zH`VMkB)fekJTyjdL*j0T;yTh;YLDuqMpTBxgoi<WOferxDD{F`fv3jpkOBpo;f;Z~
+zk14Afx~uafhGah?%v&RK2U%=Gf~Nv`mo(pXNsoId1>Y);BxR)1qZe@6HhAfgx%2eo
+zRL8dw(TTbhLzQYPHS>!_L$(37=l+q^fll#Y1+dVbcm~0R32xzT@PDy;;ZfzK{eaWe
+zhyal}9=C*Pge?0X%e4BNirGn$JE}82f5`@v4~FbB3x<M@Abm6in7ws%r1!wmeA6KL
+z1fzIM{0yODgEp7CW&r(}FhWQo*Z}7#pTXm~(6)FMp$wrh$KL~-q9RnpO}QrHdlC97
+zJV;&=q&<EIp&THl!!;!+#8Z<{Opu~-GcV`}cJK^<j37?DMo?#h^1I=MA1yWLJ9yE4
+zmHgCs;*|g=?xg7XoxrDA`7o0xpz!*Ch5u<%fCBM<np~jZv@y)0MbO)NL@-iP7A}6C
+z2G3io)?DaYJ(d`KDGS#XFN0K@!3e!zCz=H5eUEx}k`(!gthYhV&P|#w$ugCpM%KzF
+zB5T%=^zI&hOn0i&6Gy*2HI^;S8lx?V`>x=>C&^;<43YFxoiRolX|4x9b<#Y&q{$88
+zriig1(@`1?^ED*E)J;#nY%Vaw)U{1t$t6lp=}DBXk{d@y=`oy+>G7Fwc|E_184w7v
+z?-2;KA3zQV@~D3gJYSzcyX+=U6mSzG{vgSwc{iA+c{jq-vTenPp`^!Yi`m7}+A2g{
+zKNs_msjs;UE!nywf&9VM&Z4aI#3~X+x>=PbU7vkBO_!9IHks|2)=HX9)5l1p>1SuB
+zMe4~)v$Ac{+A+Fm?V-{-E00&g6cD0%D?d2;qH5_nE6(`=Q)J}G8W$_YIU@^OBMt1y
+zsWVmWU5}MxoOJ(`u3j+-&DD`*4R80;9HR~l2}t5vC|x#5yJMpx@;))IE60%&yYn_p
+znP|yDN}ET|@6JlZI12fzE9>O{SYt$_MfR@ARCyPNZwBgO8KsOx7U@2bpR*@3y*+%0
+zU45TsO%(p0tJ{=d_FX42p>9%T+WDv{nSVDUCgVyr!&{b0SDmdxI`kbkhgnRbW7Kpf
+zy|f@1zBar~vB)mabEHrbX@bi8+pF50e^<M+o2C8L`=t9iHe!nGoyc3KfHBvMM*Xx_
+zy&`SI8YVl0%AT{*9e8pur<1c&Nt32K5Yw+Eh}^6_Wt5~BL;SQ{vd2D{cR}dsOsMAN
+zepH2pes-74`>39y`vbwz`QZXz**G>rt`JrKHvib|gQYJ$(>xS&&pb3+CU-$qU-yT5
+zSYXuCiLMGzeY2&pTbw+UjwruLdTgGWU7RbOP0P*2h~(vFTjtqg)brk{F!T(+BYS(_
+z?7YjAQXlBe%l_-)q7<@@DASEp%hK0$b<@#wcGHVg)z;H=chikj56(qm^z)F}?RmB;
+z{CTp@qPm6y27flVSx+tR&~wbIFz&f~m{pw}VCVCwDC_d5-N}o`Sm(t9`>D}wI_T(Q
+zE1g6&qwu57vCE^+cJeIk=oaP{YH`6w-QVS&#r()Um#vvsjA_i9^xV&z^xn@a80P4Q
+z4|4R4sy4${K5T}^-dtRry1lr%_i1dVwSH`7N4E+WEC#?DfHr_|0Kxz)s&FipZ5+c9
+zz%&3j04#u500#g-0MG!g0U!VnYd9D%{vR3-2D$**1;}%NJO{{PKo$ei8IaC^qybXd
+zYd?<&3{c(!08o|(1}qQoa)6fuyd2==0CxwtJHXum?hbGUz!?B%0Gt7EF@QS(8;Sb_
+zY}}2-)%A~KGqajixH}DFGv|SgJyE$C{(OYf{?&Wm;Y7oM(sSFmEIFY1Gf)kfzxuct
+zZUgKW8{j~-0bJO;-weMEm@E9?w3h%)-g*K6q?HE%F8}~n1Kd<L9w>PO(i@Q3fXh$-
+zn*am>qyjJl&<{WnfI=0n&kBGR&@HgGc-~}j^|J%eH88S?A^;Ve;k`hYe}Qho0QX^l
+z+yc5g3b>C3+$RDqVgT#|fB-lPxVi@541mV~jsv&{K(#6^lV*E(LB8R@%#p&;jx=7J
+z`CBrE>&*d_{+|0exx*Z7-KtIhpqoI2FJN5{R4@SR=^?<{8c-SnN*165K1{P|z(wna
+zP5*T?;Nm<`A>4Ri_5#3b+yV03Q{C#@7#vo(VaR9rt#0FO>i{>A%nJP$APrm(suS;0
+zD~#dYf>@&=_)Y5RfGccpi-`2m6`rJoBzy+2Y$DDS&=E2aPJ<>BJgG!#2vbx?WKSTM
+zCl)dQisNMr2Lk6I$@F)o{P;F%AL1Mn_y!ZeGk%ivm*urKr{`8_qK&%7^#6;TG-2Vl
+zzO8}_fU8+Ud?&&v0H(ujz?H@;94|uXq6#oC>c9+yZYI<u+@{_R;EOnF&zBFPpxp@y
+z%$NXZ#Bl{KWi*r^Ob|ivMMx^}%s`YAVDZ-YN?=T8Ovy()vB2V092ofHJ>-f5Rkr_m
+z{%oulD9c<GDTouHptxcW!UbKl!Udl+1qiw|h4}Uh1PDHE3KMi~3KVp{+0yj5DcrYj
+zX^taTU+=9`pX1HVilp3fbD~_NU!{bR&QvdFpR+G`k`}m(mtN&)1b_B6p@&f1G4&4m
+zs*HAcAF{hqUA<>h*Dc;#%<YA@HT?<2j}$^#A-$<K#CY3Bt5MqF<f)~f$*uj3+Uk@>
+zVfC3t<$8Q0EEwk<M?XUWk({d`+5Rm;Px6CgNCt}>Fw2l~hLl`woZVgBg~@VAQm<)E
+zLre$A^eP0)bbktx>E9a;6<|qG>PRqqqH0`VOhzOn6u8#cLficEJzM{FQqIkxxtGN2
+zXNgJuRi@@JRi^rDs?2-;mzxIwF94nZ08R%u9pH3;(*Z6DaK~XzdnXWO(Lm&F0fD*<
+z1gaensER<KiUQ$~41_^9U<(AQ9}uX`K%m+IfvO0YzXbx-4hU2`AW-c97j{6P+KCnx
+zOlCpn7;C5WWT&haA_DA6X#_=MV#1`CjIf_~h(Sx0;2?Q3TTf|fY`!JHu7>u-HzAF`
+zITgg&apVa?wn$*yr<O3Qtq+|YgX-NK!zu^%Myq)1NmUnE!OcmSnU)_<4*qVbu&V8R
+z-88rLNVY4X*_*!>Ri)Y~?rrTxUp4~$@f+d(-+X8*c;xra<MqkW&Tg=96Z)}mdHSPp
+zclv{HF}lI_1(Nu-Np{6bHEDK5mK3^@Pf}bl%bxs|qZ-~Ct-9T+?JgU(?S@@h=`vVe
+z=|fUFd03EbA_mrKG_dz|pO5al{gy<YvQu4c*;S1T*>*ozk;ONt^QytrcvTlA60%cM
+zs<O>e&X@{2179e_dyrqopGkQ5^a-fLds8%?sTXM7R4GuusTM6+jM-0F#wd$Vs+&j_
+zJi&S_;d7rL^L6{ilXWTMIj#8dq@5Ra%IZJI(<R)O$fg=Xh%#}gnwSJsbtEMryDvpq
+z#ac2+#ab#!O+B>>BbCwx+1!Jly-Q{Q(|mO?c(cP$?=BhV4Bp(+*Sbq?rhzvNcHhI{
+zlr?lzY+hkHG4x4czLPx9!cORCxDe$MslTVfHjbu2_oIc-K{NrnD$SH`*JDEpPpNNQ
+z>CxpxsSLO}Y7aPDi8Iu3YD$O$1oHNxZ^~HU>d9i@Cwy9WoydV`PE;C&^4tVmUuJT)
+zzRBc%VJz8vY}xQWc$0P4t1uR3C;nk3N0et_`$IRHv+r}eFgDGMe{_{_2eP?quQx()
+zmKf=E)@9vGKV@1>{MSuA{UJxkP%T71{fDVhx@Htk)_XJ7Kn=1P&C-j>m0irfCo6@K
+zG0;-ekMtR))DYd=gwqvC)3P?C16jL9S-(l}Ci1P!2S&X#9g)7w*)s^*+=*I3q_M^;
+zh+XF_oDOAoNZGROA$w6vZrHzdNjvXM&}nw*oqB$TM?-TXmPP^>>zs&HM379g><v9f
+z1EGbMO`Q_j7_AntI>%`-OjB!)k{+S01m?DO(YV!TXu#E6x;AFl(0pO1n`TDmOK%Rz
+zjm&+Lzp2x2uo`%ijFa_WjO?K)u-*}M>5A#$n1`~f>bR|zZ+inYh@o(_{gVUw+8N;4
+zoKG}T{XfKP_lh)ia(W0d(s69<cjOIX662u^EFZSWW_Fa(x>zCrDOdnVH9(%F36pd5
+z;0FHlEzFK8+LwA$VxoI%8bA4{j9C5~Jtc$65c`POGTIkba21XrW*bLVZam0$^4vGX
+zjd7xZGf#AE@#glP)#B<--q;K)8ZZ(Dj9}Tf^Nr>gyIAg3?F?lO{P)fk^)8lnRWoCi
+zl$swN+7W$F6uR}`+Ft&gCqj0u!5O=3le&{pZpbQg52ZKfYhrNGV=iMJoMR)Uo{DAR
+zBT3l@X5Q+PT2)=hHctmS%WP3KNvn#SJHBz8-ccrq;WLv`%hC)*`1$<&ueI6JnO;<u
+zMhef-Q#JBkAnmnPB*UwLr!+Tn48QyQB)yrZkWwegvi0kY)z8(ts|(X#y5*C4``@WK
+zd5)!IkCKwJr$6Zi8>{=%x7^^ImUlY~G_SGvov3;uhVjmDV6S#Ug!IBqF?&YaySrg~
+z-B~YkN4>KHjH&7XXFqnlMpAMlkU)-An-P(TD(=yV3v25~oy#H{A6K)y`bb+*uWaT{
+z4IoFZ#P49O<ydXjCs}uD!Z<A*KNo3U2Pf+tSwf}^x`ld<_UZ>>-Hv*cbWZp%ZG6wh
+zZIzyv-IZfRl%{m>2VY}Vli2iMm@DtX-TnNg6Iv@HE$9R~S=~ZwwYy`mL%Y5t5=O70
+z$7IiFt`heeBjem0RzXqHolrH0PN=G3Cv-7lBNn~WvVBY@YuY%wsxxVxy&*f0vMyUh
+z8;u4|dD|D=gja`1*lA}>LMKtpBqDu;F~9#lO=@+GlszqiVRg!@IkECfLf7+2_H%|e
+zh?(0D+@5V~(4&Cw&kCy&B<a;`lFW2HW@oxSn`b&0v)keHL^KjdGFaI^%6h$B$>A_#
+zQzLuzZ5Nkiiitz|Z*5j&h<hY`M<O~L%t{M?FAKa|gq}X#OLFS4#DsTRW{1J~vwy^h
+zs>0T7NS|o+Pj~*akQ^bnUm6*bcOZ+v`!Ig+zD9HSl@R34CzmFsO}Ec{X3^%lO~1gp
+zO_#u$O(l&ipD6*PRht-a?@Ti(5G1)HwY+3vv{c)7e8yPmWKlO*fkKSKj*lyrT5m?I
+zvCs;BZIL!cac>`^$Y<&HxkH1i$>#Js@JL(t0;F3mS;^3!y);HCCCk#i3czk<WJkkv
+z_DQv7_L8$7Yodm6ssIuN-@5c<WlQ%1L!!W#v=2|(-24;#519ftX*_@vH#TX(_Cz$9
+z&oF(rV*p8H2m;;bjt2f_mF3UGOh0kl)a~B;%FtjvBTKlIk|#;Z$bp5(F-9&{nBCE}
+zM_@S6$?#RxIF>GXuZsa5q3&Yyt&z%V-kexGa(w$$zB|&$1;|+BrnRm(#7gt8z~;vo
+zJ&}x2UW^>xJ~~3#{)nxPF&bl)t!lcVRzuxtR|RF{vD(=g*ya!<d)f`YXa~f9bM8c6
+zbNs|i^L=81{~PQ;jL}FSb+<JQGNZf^y0TjeXmG=v-Po#{;2C|6-uC`YCkA$AVR33(
+zKPGQCwgyncFs)c4ue_MJVGifuQ|RV?;?A?x8j?B|r#i#hcUWXZXGKnI3&+4V9^x)O
+zq$eMTR$kRt>E*Hbmzwo$5?EvYL4e^UsmchmfJY+sgfF&K2R4j1co3`Q;eoy)^+{+9
+zSV!H&w;^I`LF^;r;yzq$D8XymgP;v=ssAmJBlri8`|#<ZL51q$k|Cf;lo|dAa1-2c
+z?r0eIFZ@8E{<xq<JUKxY;WQ{B4cz`pLiOX17mDfd`Us^#I|;po!a6b=JnjjK_#LV<
+z^$L}S5MXm-xSF^vfrnn63<{e9%j<6tTrIo;+!WyEv73sxhAwRY;%5x!Ch-^(kSYQS
+zT$89>LKF22^EOjlTnG!gi7Ln6Vk(I9V4+QroNKr(>W#kz;ADaj)fITwKyv(e2MBJw
+z1`c~40V*if0qI-jqR97hQ4SZ)@zp2A5ZW)2h^A#LCxsEhFQB#Z-4M1xH)K5d4`|73
+zjccnYf@}A_0c!uEEdJo6FqP{CG~jeMMCZRhAZgPzF6`+w^{0QpJ4GkOs46e`19ZB1
+zbmISjrEdp<(%!dlnONGRoG&Wj>ws#V7yQf{fQbQMg8l=}y%h*D2TbGv6HCCP0x;14
+zs`W6>7TtKeq3i0G;CP#pFsjcB;Q*m-s7}@&NUljBXrR1>OYE*aO8FiDpluCMuDK5Y
+z;6uRH2w-Mi)Vl8@Ps2>sKs|r~AD}$j&4c+T5Oe{cmjHTs9Ja4e!oC`Nyc^nr`2(@P
+zz6L70heX{0x(s=dPF&-*SOY1Qv$?GAB2iZW<-?OO1TdzScYv+&8mRhwC&3gLmJFcE
+z{{xx2x(4zqVRLB%L&&+2u6Ppm%^mP&2Q>5r8ftYzF+d|fz+W(+k~v|mf64qMxmX9p
+zx@3-bI4Mu{dm$1a+|BpsY9JU`i3jlm>X;CF>i^^HEuf-`zW-5DQaYui73t1FO1c?3
+zr38@>P-^IIM1&!A0O=B?8v&8gVMI!h6ow8NY6#yQzVH3Mzx7{lt+&=&>+a1y`+Rns
+zb7L;|o^x(^GVKA*5Rs+&Auc=Mo)Ykx065?VI>k7d@_=cGD5!7+Uy*ZqXq%4zORtI_
+zUU8W$?jn}(h@8V^H4dXMJ(3v@$cISIq=!g?-mDNPYWm^zr~#x45Fi&<$l{6sjodd4
+zi)4&=7ZKwn4teMoeaQ=iR!gRB%v&K4d?y<`;35Fzr3?eWz`+A7rqEaOTq!~i@Gk}U
+zrv=CqAo(=>pqLfHF6~3S1>jioG3|<Ur4w<K8zQp=ax;Im;7D($+!n4}8l-aV|4aFd
+zaER=T7a)3oq=v|X5>^N<;{gKlyi5nE7@#PCvH&8vq&tl(xo@BOFK&hKG6$eEfQo=<
+zx`%kzDu;MK28^FRJbti3C>dFxqTtJ7c^gi++aJ~_Z;3O7a~dPnuePM-$XNJN=z!@j
+zWz5y)HDym!7~27zC8Hu42(O1onm{Bvt^e^jbr-pO)bvAl;AI)!n<)K00pPuv?l?X0
+z`VKz==Xd|2C_DR-$QK#H{pfEhYP$2S{aZ`UjzR~1jlyRHGdNx((zmWu7)5ac@bOg)
+zMTxyAZUJZdl%uXF0XdFZ|CA%s%q=hcN0HC^PnNPBHAPt!qt3<fc2dK5W^SkAl@QHE
+zL4cZv2lsu6XK-0@LATR!6{1)B-TOuz`F-Wj1Z7!v$iEYn;5*=UMv6IF92ncW|L!CB
+z(;0K$k<wRehE|WLgos14+kQ#sPiV~3J`m9T4#|v-97AL?|16Y5DBrfJgx?*y4V=EW
+zSoQqydmj4XQ@jhpO(0D$?us0|Z{J5vC$glK%;-xuL?)ZRLdXhSH`2?4a7U89i<rzu
+zuHN_VBcYRdi%DCwu(^}>()yQJ?^EEO%UL&cy+No(;@=Z1wT(W>kDi}vk=0_&FCJ*F
+zbJrE-rP;Jc>02+i(?~|M@0@zBofll6qVyvs{w;JdPgLYE9yOVNg9_OMOI+EUi^f==
+zi>q0GI@6DESQ2Zzje)SH5|rR5L<;qzfGgzDTaFn@G!an@?vk%46)XO&DB3<pUxArB
+zg@o~uNByD);KtibL@k8b{rvqyj<Rj!sRR;zFP7vRmD-qhaNJ@HV-$eiR04Wa`Ajf~
+zX@|TRrv!fyuQSrUzaDs7%o0ShLlI7JvgFq`Rn33oR)dP`&U38`A-f>HAiWTKU~|k!
+zK}A6ae7bSLv+;m%nQGZ+-J&j@B!NtmSW~>$LrO>1TK19bn{!Bw-vDFWY8-8z@~8ZJ
+zg}{WyLfGnuNwa0i<$z`K_21?aam}&KasGK<ed>LSeS3UyoAVcS2Xf;Yh#e;V_D}Og
+zt(mw}U8nx0&<;y%pYamYLXWRr#g4+`!|xB6L9Wh(=!753UkEV(52d$q`D_LB7=@iX
+zE`%8Csp{$KABSLEi7m*ciKn-=e~Os48MN8AsW>!*v&0pk1GihP+BEWb=f5f%ITwi9
+zI4p+C4eSosE>l2$U+mJYlN`l$qQjP2ZQ2sfL(=e;d6f*$Aom0r-Vp0TpIw4z?A_uo
+z?5OQsADu%4yG{!16Hv74rr{-|4H62N-&6}OpzW8sK?Soz4SJTswN&QfoflvdWoOX-
+zY5M`$I!>=hoP$`xIYg*ykahbs?Z9RoSW`K6QNsQF>h5LM`Kv|4fs(jhQRl00`fI++
+zBIwFXi?f7r9<$z~#q4wDys@jDyr);ySM_sq5;7NHckk1he)wt4==}C6Rr8kyhNH^G
+zLAcDNr-b3fq*KqTMecczgOXd517w}PS2M2!Bjvbo^7KpXUw_B&wdut3A_wPnM0h&9
+zGu%K=A;R5FKZ4PX?H?cf)^&zB+m#(O1Jfy{bom?l?J5mEa;cOTeq9WA{P!L%ef=#j
+z>)IYpas3U7z=TS4o?nQDo?nPxT(mm&Ed68hkNvj_Z@M-V<;S$T7##Tw74Ghj*e>lO
+z!oDd-GVgPI(L1DkEPO~g)p6G9R)0e2RDVk8>U~J*ynfc|w0_>|%5bJUs<^}fJQn8Y
+z5BshBD)_5%a`5+Fwxj5X(Dj6CLotzymyY2p|0IvzL}<E||C4}=Tq%h49!I=6&yH|k
+z-@itP-Nv=clfvr|e@YbK45Aq?nw5P^)U5r`@V(el@Oz7gB5o;>3vhE>NS+EV1nPu)
+zl}C+x1vMljcYHz0^kwIcXySQTpQBrEBx7C-e!OS`5xHwR3Df&P5~lBk?4r?fGLAe)
+zIg!Tjwn(IPMx+?L9M^db!!!aX4l=IKK73xJ=jctG_XSRx$1^?R0=Xj4%i4CSw&kBd
+zAJd82IT+$f{K4c^%@M+1ZM(GC^7{u|M7DQ8`V`yk*SEKY9HVSyL`DOTK75{hKx5IM
+z!`jW~M<?V*$9+ii;E;y@kVfS2)m^`=dwy9wep$5*`;l}>F=mh=BEg?1>P9WJeJz69
+zF=?ZiuS101?#J;tq2R>P!@lRpz&KEEWDaa!04bxkUN<T3Q-?&cHJYPGU9PDb4c6<9
+z#eJS-20ty`_@F)Vtj`VF(DEfLhxcgG9O+z;zTM}=yw3{FXc-H8{on{m0nK>vHS9J2
+zkx>s^t<#15m(bBTJ2Zh5kZKwV`c$DAC!=8>9o9?n#X0Cl!vc)fOVz|F+1><iB*N7+
+zUD@UNj>i3<2?k#j(H(F#pD&65ChJ8qt_#7s>$#@ly@hYi*HS-^&C!UsyMpBSk46>5
+zOS&HT9TgW7;UUHppR25Aow~BO-#a{tg0tkhESwpwr#((8r75Bm%sF4-hKdMp|LuDq
+zZfKhmyy6Vyuh&+Dz*a>LOp~&=Y4~M$*u8ZW=V^ZXr0luELfg~l`bd#=CLEfMIiU1D
+z1iFj<tUVRMC=PP?DjUX&I{Z{P!X{Vm^QWz6^2l!KCA=kSQDTnh`t32rrSUe~S$5Aq
+z0^nAh@={}){j6q6=|H9~bZOuEw67B&<&S$&e08C3JH|SQ?&KXty@0>&^Mvz8oxs<k
+zCZRR>PerGRrd+&9!V;mhmMKuiGtuU|jnYRC9g8|cY`4TS2&SBS*ey$f1rDg!+xu?4
+zJU*A|szD%@>p{Jbu!SC=a99sguIR*E7Vd8y`M1{~8b<9P;Ta2)D3kyS#fL%(qugH~
+z9c3OJy*_#>fST6(j?n$y&|X;5T3C`%Skh4FKql8a^5>F0_b62Ldqeq0AKu-ovhLoG
+zlx;Pu_YUgQOYTChulrvfcOfzL#WJdUTfy9B7_#i^Us@5*%715v%wG;d8S%Jdm7pBA
+zK!~n8GrBVc!4i#>%>s=gM+T0{>xNNR&<FwwM{~+M_gFvI(n{uSQlashwa2O6yN?^a
+z_Zb&`?=bGWOzfsLuH~jaesB57`h<#etTWUudU*4QG{ji8SWff_o`2A|`ZCXY+uPBB
+z`|$fJrh&Eu`m_e_J*<*yvf0dxk}1$Tk_Aw9NzD<Baoc6Z_2IYY@SV4W@XNQkc^A?4
+zQ+`zF<OA^f=-cT$_ZS#-pJ+%_H|8<4gkVT)EP5r51TGRy6Q>Q|kA4+*AMOxi0*zma
+zgC|5Yift2#xXIrVaq1wf*gPY(9}ZItl9Lb(B5c+_&~fWr0>cgZnc;i=HE~b#AThvi
+zj;L(5oIntpzv@BA@~w6BQW`wCzW{yA*ad|$b;Y&I%BHk)1wD|E2rB4Vh;D|q_shYR
+z`sbh;{q68oU|4e?eOLCmw=esVi7)6#=RkNpZRt1s>yi?@A%-kZ`PRPc!fj!fU#$!L
+zm>ott3el&n!jGlBAeoy#Fqu8q)*Nn_k04mX#FQp)gx(gLdy6+Dnt1^e=$0_$BU<tl
+z^6ETnTc-TVhQ_^u=ewZ<(MQlA>l7xv7-bzXSU8WdSqEN=i2)C%y4k0vltm}3|5dJj
+zJT`=XtBY{kdvZnA+<4poAFPXT4xh)oWOJyy`ZvB^L?9aRgzd{^c_7u1_qL<cwlX?|
+zoik$NSWy-Fe#%KtO^e0tQ)Wv?ZzezVliC3ESdA->f-_66BJ<vQ^6+k64NI##=+0ld
+z38o)Wvx0v--WzJ6l+hgm2$D|XPSVa%zZZ-rR3|PV_P>hFu38PsXn7Gx-t_K;IKC=o
+zGh7uTVUs|fdB}7RrKI&ew6XA%?D>M)pRR<j!IaMN@#O9;B+UI`;x2zUF#ZT*cw#0J
+zUYRKdKjCx+Qh(p|Wrs?<cvj2>ui5mAx*ICf11`)t0aa3U6TOIqKc*mt4u)~M2>S<p
+zQG{G_9zj>t7(^>#yFM3E{}uQ5{_+5xs|wr<By<g@QYN{*kNx~)Dv^FzEca(3BcEvQ
+zv=$wohuu>iGSj^6r)8v!q>Lnt5{z+z)bGV6RDo}(#Er#{LB~|hi7mt};%jN#us1Cm
+ztHf3h;B@u0_3m!*UR2(6-Zb8B-o&$9a2juVZ)b0cQHFKmRx*F6joJ(1m*W1ae`C+#
+zY@D63ozQd6&{#sa5@%>!+yG?Y3O<mDKftxDvdp<2l{q-TJy1H}3|HeEiQ|uLAX{`~
+zzb$t^%=GNd0o{@M7msD;<+*`ocs3_0cAt2WzGp;{{<(dS%303=*U@e!Wo$0+QQQ>h
+ze(Y;v-8c>s5eY<sEww#;xM0_C7t`OQ1JmWe<=g8CoHB8(v8{2g@E@7ao#GlzEQh*i
+z{z4D@ml+2{pwp^7G~rhX*S3f02P{esabXWG4bHj`h}P>eIpUPXl*!Jm&d81mG9BW2
+z#Ud!q?VgBk1|!mgWy<ok5zZ%kN|a!k&EU#-ZNyV4==;nBy^!!)S75}%AfM9Wr1a)_
+zeY!THH&8!hp~fBi@xJ$*XzFZx#&=QL4Xr=M%cgDoL^qGk??BNZ57P8Qy6H8u?R|zu
+zv3hAhZ>ty5ox{hcRHE$p<EXPn8`12|r_|d~fDU^qxp}@YScU={X4@;5R%thsAmL@x
+zhy(G>V~P9%G=_PBuRA<G1JEx&{ju%-5r`teE`en-04v58t@8m`onFWlxia8ma1k&k
+z#_I9(L#|Tq0xIqqK=tGqU>=(XK;L27SO?MPlAg|3hf-KKF6LynWi~IgW7$uEYvi}_
+zdv*TXFW{@U=L*mvEQUa%SlECTq*Vm=Qm_H7OLNDT4EVYihMNKQ$Q@|xsvN*dQ-JP3
+zPL@s2ZMgl|eii`aC>@dqm@8qeP*`S<HSnoRu;aku8?bl;7ViV#$$_+`Z{-8{7;J!k
+zzIH>2r*Ra>Lk98JRtf=3&E6ZnZZYH3@ZopdfvoYV;+v>UB;VD%X#6IPy!rl!e<A34
+zoDo|5ZWa1XjbGFz*5K!^D*t8>c~Nac!}xs+hNP&vAz|FZx_5k&@2We48OxwpW`$+5
+zm@vilCw59GPc|jg=FwrH&yU3mOGkhOjh6ME9)19EAS}@5K|P*W)i*#zUDsfUV9LH;
+z(5&qdR$N6N?=v?vxFZN4Y{7h6L4Wmr97VZ*(2m&W2Hvkhs~b!aaTpBRwyZ%HF@z1s
+zi;+j`O&rCcOt3CG0H8Az%i6Il4$I21EC*oRgFv_@>ydY;I{<dXnk}RFCh<TF=C5r7
+zs%iW-CWP{LC8}s#AMiZ=&02F>2q3|_(rt5qr0YtbwoD<VG`BZ8?6x=ZYXSp)zdK#+
+zFx?-KG6cv0;auN|zFh0DLD<xXq7^r-fo7-7)u2qLRUt)fdlH-by!$en`=e~4fW!zz
+zpRQ5lV;La5qAWn4uBYc=+1B~!ah`UB&t4mrm1#$aoa-y?xAnOGSkwiTH$0f00J8fd
+zfo1+!_EHZMI=T;ddbNlRQ38bEb-;#*c#G1U)(t84zcK<+8wy!?4m=r6eOgt_Z`-i3
+zy?9*R^W9Ea8jGG@We8DoIDID*XdAa6zPWhS`Hhv%`u&L5$3i*9kFVt9KPI0)-f#~A
+zkzEza38Bf>YsW>PN2<M#dsyYsFcpmiE|Y#bU*MlvR$Ola&FJ8zdk0jqcNA~4<BCLS
+z_Gk1vJ2D5cUNR`+=J!qa%RBL9W5)YVS@8WEV%YrC)uh~-Vw8>|)dJU5fN^}y=~B=X
+zHulHD{*^<(ARs4T5YR6;Jw;$%0^63jh1^f)9+YJXbn^gMmR${h{ZT?ZoGhIJo|2xH
+zm&?i`am6CHwfa2Zaf{C%xL{y_(_X-nf!cTMuJ$hiTn#+`yx*2<lQ@-Qf?BXC<&m)|
+zLdSLs#6x8zo$FgpAKUwTeGeO3D3B}9qV(^I5t-2c<QTqn#&i_Fx(fevVz_bm>FH?K
+z+Dx+5`o_r4#FvuxZ=lHFU!Y8=Gw`V;UvdVBbqa_RW>~pF%ZK?$4f&M}GE4?7!wh3L
+zXn}=1lR&%bB_}Y1Da?=viSj^Jlx`fQZcJ#SgU!*Kf*3`9OaL{cBN_Bty<`t&NQtbd
+z*f{Fin9xOU3SrRH5KNNrl}0WuZ0sS@HFHDUG9XwbfSId<oZc=zNqA5rml`&vg>-$r
+zA#NSO%-xYnZwIVyCz33@s*y_q8&gNRzS<DC3V?ET=+WD~PZFNc$Yq9&=^<U;Y>3+g
+zK)E~M^mgk>!bcjpgs?GP*w`3s>;Y`71~&E-ru%V&hP&f)valaaw`=3o-432)VQrZ1
+zhmBWU)B4pL%|>V|9*iIZ<V_;T1BNgGUQwW}_%MQu5c5RP1C0_e%rJhV*&1!djj5%F
+zh-;Jt!VtHRuE75=8UZtWtHnaA#Sd1y)P{pAQvHilkA#^Qe~b5ox`dIrgq?mpWB7Wu
+zmwotKWHt2RaI4nv>D$zOPUb~!@%j-L#f-6_;><%}@$jRv)YSs<^a__tgR!%stiw>7
+z;r-gwMLFi)moAqJIftQ!!~0#Si-gR*r>>X6I$;raSA(>N57m<PA1Ce8Fi)E#?Pu`x
+zh>XcPWcl?799}hjK9yoVHFTL*&hhINUJX}Uxp<%YPl);7ocOh?`1P9jHNE(Cj`%fL
+z{JLcHEJAqoUtH?HT=8oM?XU<T`T4A~>qqD_bM%=3`ph1Erm}LOiCp7HuDK`eJE)g9
+zXp}6fmn>?ObixoEuncXq@sKr#TGP}>z2&xPo#nQ(L+x>uJwR5qfx(rQ+a@)Z+kbtV
+zrpmpWrry~D6y7woob|X)Ee4>$$8|A)?K|V9ss1L*j9$|w_6XEtrEB4#kjsLND+Q2s
+z?a1OMpdz%1{iQQN8IP6riaX}tc{H(~x($WQcPAgW$%ss??%CCj{I0Of==1?97=Q|n
+z2UDxpK|p~YK(q=@tu9mpwGM!b2qo_qxBvn_<+zQAe%p`ojh~OuDm&LIyTB?t-|E7n
+z;VW(CQ(xv&V&+pV=F=BL82Kk6tN&i7Mi4Rot8l$6$?}UZ7;aBV^|xR~d5eGl?OGW6
+zMfUWy-yZMkyv=ZXMykI9Gb&vC`;}`U(HB|D*M96gtBRJx=Y-5CPVw(*u7wGsvXr@g
+z?3}BLCd0w6Q;(i7qr}9&JG&N+jLP=jTUE3l4vtPeQfEeKi+|5{Ev%s1K6kH9J(XnM
+z-xObvaOrYq02FUhFT9vf<;3^=UFT7wZHU}9hr6r)UVXkAqd9E=EKp$NniP`PIv|PK
+z?y*L$ERxqgK>Oa*ks)j&n+L;_0=f?~{Qr0KhalZ!Hkysmvpg6t21rXH$O?uqN4ghm
+zWD8;bB!cENN^Ftt2^-C(=uuk8UyTww7{VLrp0Qzi7qdeTA=M~>z!2d`ROE&!4~CTv
+zLXiYY&?w=CA&ilzybXU_v>Yd<OBmC|i7BLmEC3q~#2^V&p;00ML(IVtR!CIg#!>pl
+zQT@hI@rJ)Wy8SMuO9W#}2LVw*gp)uV$)F*aVbX@F049tFW6J=kPXt+Llw@d>JcS|n
+zVTcMCA`pp+-|#m@xAS7=86aQPOP(VuRMAy*kZSc31h8q8h^Uu{Xp}Ulmo#XUD8LXh
+zFhna1@e+nOg&`<mhzuCQ5Qad&5F#){0}SB<L+ry4c1RQ@a)bv{NmG~cPJP?i0(M+w
+z4m)lVL1N4R`gso^K_o`8Y))ZH0QhSQ)Y}1M3J@^PrV5L9fE@>ysc%ob1*lPdd({Yb
+z>|q8Ffb|1xWpkcD3Uxn%gn6w?_yE!b<a%Cfj#eOKCrDV+IcaL76fgtE*Lhe21cW~X
+zLP<^^vvvVc5CC1IsWVKWsY5se<|Ba4@bwdj^&5Zy*OxjULDzsj62LenP4QQ%Z_^55
+zJ~BX5)k}<!{Ca2)Zp=q|NHHB`K%;~h$!~&AqJjJZeik%JD%49TV2BBrp(YYoaHJx8
+z<EVCH!U`R1fZpW71kgh|l0d&TO4wnBhDcN}vLbh5!Uny`jX~1`KMSBMjS^fK;vv#K
+zb3?)s9jt<8=E9KEL*kP_gBm5&FoYJ;{q=@~HJX_llS&U6P6CM}gH|<4NMHzcr2DH4
+z2`e;|3!_I5d7lKD&?sSsA@q>$Z#E=s&`@p+oF1~C1Uk|vA%r1xVTdsp;sFd%14BH8
+z8GhWL<;HwY2Km7ZyEd}#VtA54+AzZp8`)f#vSbjMMu`Rt@fhizw2=+`8qh<2Xq33Z
+z5YLhBaU0DhXe(ZfOCqR7qeKdZutxHmqOJHbwTuwyL=cNci9QVBhICKa$mYd(xp%~_
+ziQ5gn*zkKXGb$OsCRPx?CQ*>E`xq0y>n2>;lW-nniQ5dGv3GlD$tfZ0#UUZ-rQG~%
+z2G>p9lKQA?P{pmYQSHZ~lUqU~H{5+7T|B{Dd3cBQMd7T}PAvOK<23Y~!bdbTuE^zt
+zEHqp0Eyf1k%4Q%&6kp`lV{%1)6xY}a9US-$OoCOe2z+ut;U9AR63RWe;4E!|f;tZf
+zi#m{pmdJ_iz^3XjL~yG~5iykcKckDm<iH3g-VViDv(}pHta`>5RwWTL^pG$o3n<cw
+zW9-mAd-Xy+ecRL{!tUgy+DU{dx{EhtfkA0Z9q6KFRdg+#QjN={GOdy_qf#%GQZJoS
+zFO5<!gVKIt@glG#7cXi@ET$AICl)Iw7b_<fE2k9qCKmT57xyL=_ofuT)Icb!8)k1*
+z=^URi>3k}FQErX!ED!10(fw3Bse9Zud2cdgN^mj+WLAA#3$8v6Yct!n>NLx6FEUZ;
+z2?RjLAC+r+_C$85?bxRtw$>~dO_TWpHqt*v7^eX2=Dm?^o)MJb$Qsvf!Ix|HoU6_^
+zo=U%gNPFehhR#(}6Quyis`}W=8ld;54!>*6wr9Hlon7@Y`u=1H27ueV_Eh3{03=}#
+zBme{IO)yV^T+o0Dlk2I34|t0L@_uVl=k8lI)f`wgB~fO!%?x-X2OuqgmzJEvU=uVs
+zqY}4E7ncU&9&_spn0qMl=svPJX5;+h#;o!15i|3m0Swg)b9YA`$swClHjrTS4qwO%
+zMy1fiVx_g9lHAp8-jPY0U#D4D$2nK0v`QB##rW!oC>ZK4(!X)zJbFV;eK?|WLrxFP
+zDjbqdrKFi$T&j*h!ca^||Jn^X15BtfnpGskfJ%u!xj0)LF$zP`A^od2<n+;n!Xe+O
+zl-!exn_a@(Qi_4$5bfgjN9u@kac?qpL@uytAS~1o78;0Y7sXQ7FlTjyB~rowoyw?0
+ztDd2bl+Z@&F({d;Bh2I$;+}`4{Apv*z2N=OD>?hm1Sw&Mw&e>EW>m6BEPkMY0K?ql
+zQ~!A){nIwu&Czf=rRk*NZ4Jb280rzyKYOFy3NyzQ;+9lwqk(t^b8p#za))>`D*0<5
+z*kC9Fq=X?F&ZzWq^lXPg=`^vJP~1LL1EI>?3W1@*kw=jmRy-l>bV`(?LF{i1mAFFK
+z>6J2)ibpgMw6KwF7>Wgk(ncQXBaejS7EGUqRjjpr*SctRjc|AUhl2iQ6&B?H?@Me~
+zrocnC@Yjzha`U>`KrSbN_uNii-b1ebF{(aA9b}<jT46f5uIzHIL2s_>wIfQjB1&{3
+zrptR-ek|&5?!Q65w81>czW!R?OS;)$f~k3R4a&X-<zDw>UiZAd?s;|H^X7U_D`FAY
+zbRw|lhi-(jR)n%ngtB&ovTj7LRz$B(M6Y&4uWrQ4@?PaK<!p3Cc#G*F@c#&|-mTp}
+z4M!>8`%ftA32I_KdTZSFz5Q3J|9DAl$*qy0?RFSbS)h<-O#7E<+#_I>0bEPUvSZ<`
+z7^2Jw0!4CZoQ#;;{n>BvgKl{d^x#Y15{XP-;vFZsBo4Txe9NwH+mRNShknnJq$AoP
+z(%X@eKYNtz@>VeS8U6<DHC_m?^uhbL@6twplGjp%M1AU8ceER4DGQVjduUxT$moR=
+zLDndC#*{{TCablrpro=I6{edxb@W67mC?m<jE^x@cErhvi5j@;B+7)-a!aj`s!@oE
+z^ij0alBpw0Bkc^s4jxDwMHU~^-A~-8%tS(QtF+I_QNfpPhMkoNL});u5NQfbMTR<R
+z`U;<=HqxHaoC%)YnPE=FFTu|SW|*rsKG52J6M#RFxlbWX6dK9wXqa5ePu1ke_qV$*
+z&Cv%~%m9Bq64GA;jBJ*f;SeMsiqrsJ5fjT2hq1Ae_Yn5r^xUSvT_jA1-j5mVqwHS>
+zCh-v;+>xc}B1y*^>qjoR14FGJ_zIp0$x>WWhf!bBvr^^*lXyS1<ekT6_vJ6SG*ZYC
+zh7lB!{*X7A=zH|Vkf^Ai8F&w@mrU!+Fhn9-@SXNhAz_8^yd4;MpqM!o3N-|V2;klE
+zIpA%)eI^c!E+7R+0H8ZVBux5#c*918kxg{`j;uh@&<~FfC?)|#njw-rJwLqnK(T5`
+z(U<c~yp1^Z7UP5>zA&zbQm16TPo@K@`O?`$|Iil^T4AExs0V%EC7opfU!go)ZyXC?
+z=)u#z-6d;LN;tu3<aQrqDdga88?GX$H!$Qu1{l#&01TWE0s=8;ZKJ%(gH*y<EP<)K
+zx&5rb3vGoUe0a_!MI-q<$&V0)U`P7D=S#Uu!ub(>za{@ghCV5N*o~L(E-D=A0gCR;
+zT<7-X_@-%?uXo`A!lN`&YD`?`KDhf$d5LqJ8aN(tGa~nvj2rI<k)v;A0F!z7A1WUN
+ziV}z6lM@27WutwfjhAeIH4x~AZU^PB+)`8n-n8HTA+PFwKRi=e^AK1G0@!C{6hw>o
+znlY$;#(uK9buws>EXjEaFb@^qmmw%=h4?aag;?;tES~PY^gfehjsxz@DGlH&twMhq
+z#vx=~r1dz;w=95J%7IJ#0lj$2<rnlpMSG^eY)r!_85Qe)8w|h)8hiCm?>DCInL5h-
+zuIM8LYI2r58c7w2!fzE5DHAE<^y29DiS*Y1>xonVvy_DnD29~JZUa!Ceubr%zzPkg
+zONb@PyLGFl+-C}Zm7@gaT`<rUJYcy7rc3%-%IjP5k-ZaLcngGf{mKt1#|c8Bwip%G
+zSPZuPe;tMxzPMZ0V17G{t8fbS(e!%xBdDT?l%nETZr99GwhrM@!8PCkF;JKU0rj85
+z7yzS{4w9SdR$uE9+G!O4lq5@u)%<)5XeJD9-@Yk)!B!vXV5@_O0Sz@J;G2Ji6Y!(1
+z7(0O}OiaKc4ygc_T<q8&pVe-B-GGU(;9>`?TCo+2&Xc*x;}h>qp0hW3{-VaVp~~(*
+z1#E*JFJOcFMPM@&Ta5p&U7+-h-F_UPda?Bw8_16w3v$3Z&#&uyiVe7)c9XOQwmKNw
+zBcBzqAs!cFa}qPW$%FAGk7G>$<5980^#te~d&3X6EhVA>IE3%N++Ujj>xL81d^8;<
+z#&(TV%3GkHUK;`x9u@2vK;hj>Ea*ZD%TZ|ni1tVYE1%y5%zlP3?9izI@$C}<sF;ZQ
+zIM5H2*pP4{Y9QS`ek@;)!TL_0rrae-PyZj>xH2~GYTy7Sa)KM1q!j;+;&>JlBccH~
+z3cAKR-3|KPsN!gQ6Fw6g9>IzAxq{95C+j0WY9Kt9FgD~zY`WBpH?>?qt-38Xoy3$I
+zBewrH^@Kq;Ghn`QE(O3pU-4i$<c9le-ULj)v2DQG7CT^*RP23(^_lQrpT!C{J$!5m
+z7<g2KWBX5xQvC<86TgC9-869A9*-lr4A|)<i2&a<8`J_?ahe412?M1&+Sr4O3pk44
+zL|Hd|g{_^A-~qZg2#fc-(gd8fU2|g(a(Z?EzJkfX`uQn=#jo52g8V$)*KkDKI6O|e
+zsf)ack$~lgRM-#{*btvpux@3sZvT^G9??x?{F}&8SO@9TB6j%0H~9;20<J%YF=Imp
+za{;otq6UykB?q7Y&P(3{t$$emn4A2Ru_kT*i;pV<7O~e@&&B-MD2j$yNKo-jbdmp4
+z&SS)4<|(mUA&?ia{b*Wp<CEhC>Vs{UpYlx)1}QCEEfw9gFz$cx7_96^rGafN4A@s2
+z9Dw*3ln4V_%b|`0VlSiuvY!K1^S?PYk?~DWCIihq-ciNw5UjnT`y;?8kK?~`+l`yV
+zgnK}s(-?pQJCG3w0xQ94j#TM@-VNr&y6M8Eu_7mdmHo@f06pp(7IS!$-i`auYFKy>
+zHW_M4Ac2aa5MBWO(X{ENpo7hI*US?Dc~rc)N&g=fdw5Nab=}Q<gDtpeC_A>H^QG9F
+z8E=s6H%P^sB!cf^lQ?>ajfRTCCV{}mwzrt*reT!-HP|)t_&-7D3?SsY2tZA8h4sII
+z4W)XD_0pk<?NZQ9mvTJO#9rs_>|#?O`dEt1y!!<<2>ves_2O$48{naP4v_P=EH)O>
+zfkR^t3+{5jf)B%ySj_@fv+?`?LsXdT2Ap|RgnYUQquj_YOI%Ay@l10&aOIj(8fWBF
+zX`sS8<qaGIe3q!@Ii!4Xo3hlqK*imk(Jwxx^B0>IjLR3l*qX!^0(>;LgH%udN95Ye
+z2P(%of+^Pyy+7QElC&qRzAO5uNSX9cC5{xBa6UDOa-A-&>-Y8VCzj-b3=BlN@#WPN
+zPmt8EY{pXnTi#C%bN{2jy~upNSGkDa!+vla*+7KK20NT#2BsN%dcIJ8J|RAPB<k$s
+zC(6oqB0+k=9P>f!9t*$@GBm>#|E^|nWL(nyEFoPqJ9|GMlXEocDIM0lTyPthiH&j&
+z1#v_uV$z9d`_+9F+SpKZF;_#t(j$U-1bk5`eHvRHGfylvKeFL(C$=~{vKhOR*K%W+
+zfRenkW6}7CtR??XW}@v_`BldvUxQUg1Z+oxy+*cBla+~bI3~%FtBq}*g0Jd3qUw<L
+zr+=jq?i67i|3Jse6aM~=$DuSR#;6pt>1+*8np%ag@B2DRy-06_?`%bQyenclhmKr%
+z#KHuO)%KOj_)}!Z?tLNeuE{NZ&fEq<oc~EUbsJ05PO-R3I6)ef$fk(qnjIm2kD8qz
+zO&PO|Ju@R-mJXHjEK`gZ`M0-IBnoeDXMj)xw+7ZFvM2BE_~3d`J#qvX#_r+8AkuB+
+zi3C!fwoYPl!VE2$llH!B+rN67K*}R}3s@Wiq@oYS$zoLbqrn8%VEU=C;Ycn2cF;DK
+zB5^eA?Pyr#D68}+YuTtRx7C*Vk+dD%DC?t9RxRx={mp`;*Dl<fu?(w@c8;{c8FNh|
+zyXx#AI);o{cg8aH-mY@Qn)Z>r^&roG<&7LqdGY4!^sVw474lu2QBNI;zmw4TACjVM
+zdYT09Iq@d?0z}#Pi{i5l@F)5MSXJ*(+`X+wH1W>wj^vG|@W~wmiT`M%CBMhF%#KU5
+zWOWi}btW1V8n9fvtC38o_Xd4(Nw1MzNMGIM@#3YP)!ckI6E>5w<<*k^)~&KR;pZ&(
+zmThW&&ARg=omk#}6Q?;Rzs9&NuQ&N+>s9^_=;H~2$z9Kf#ETTl6c==j46C!}vW^@V
+z&jWbcNWV9f>D}UedT&;1R9ffxeYvs+4JuvzDP@r#F7Ds|u_m^q8eJdT(N*`oWZa(T
+zzFDJ1k#get)`0kPp;FJJE!B_m5teq5+~!3NX`soA2YxeJuO=_Xj1RBWe_89=)KuLi
+zb59fEA-X?n*mGr8P6ZaOht&<5o!=!D9)9<A2x7Fk63(;V0AnD!XQeaB-kqaoGx||?
+zPsG^HI&Ftne)hDz7yq@3k%{`K=e_8?RgVYImQ1g=e`KZR477z^kFsoS^=zyv!?M(e
+z&BdQJ`EWiHGTTRGiX??8cs%8NwepO&X{)qwZ0x?(J7IqA{wbY6Ik3+z_aZ1zDyhZ9
+z<0&s`{jkvo^3mhExdtC4(jDZzpO#fkI^1f`MZ<1sLU$CTUPwHDRqxK>{>P<qd$yp#
+zeGuBM0eqVCVqtrZgh<NV!{tfs#LVay!w%qCPS#6X)VTY?`gZWWvAKbnPdgZI*_ZtG
+zi*W*-*^)G~R+&NFINwf-fuWNob|QLR3E(?TcqjXYT|Jcgr~Do~_KO+p$y2r>I+I$o
+z^Zs6D)09Fz;l2$W;Vy^AgMG_I)07R!nc8{|yUKcwl<x2@V#~6udLUU-ZVcw|>S6z}
+zbEwow)%M7#y)yf^$e32rZ&V4hy{QUvJqFIrk6MNe(#k)^upsBW)%OR;n{P|NrH|>>
+zqq7<-7QW#%_u(~07OS1r>u*ln<G3AqXRXx9ury3^#{;ehNWBG=>l0T6CHGd&&v}bW
+z1Xs@G_&99LdWh!Ln(r(w--q0~N?!|ospz&I1dr6t!_Dp!6eZKUmEF&pxwqTdXP4)9
+z>Nxyc4WV}VS=EDaM%|4ekB}jfur1X2c}&#IAdf-kfO68<-~O=4+q-;&9ZrkcPQQ&J
+z#A_8=D*8H{LrGC&eR!fAaMY}9y!$HCg2DQ(O9<%_e??HZK?+L#^+~M0GhdW;n*`7D
+z_lI!2=0w>J=E9SKaJRmY(lEYSnXm2x2cP?jnNEaOb~QQ*Tkr4U7YqS7pwT#Rq9Z?|
+zU&#vN=Dw6|L~x=}j*-?4*&dCNqY3u%E8mhl{OyFE^*+pM*ZKgabivj#;wO}BI|K4P
+z?pU*^y%Be&n206vL-3_uerzYLlHcc*ByNWP+x4#>ekKl8mATcA3Ki-NiXO(CR7&Da
+zUH_&Njbkr7cCHIgTpyXY>?t34o@QA^J2HokEE>w_v%2gn`tppn{TWxQ{-2hldFiY<
+zzUOo59tB^XZN8HvdsjgC9$3nZl}VFw8)Iy(+;$X4HO8naIGwuI(PXReX50PH`6YvL
+z<@>w9H44}ZxY=>OoPY&7vw@@k7+;ylToBl%6LaMKy7WcxtuEV&heU{=^U~RKZqMiR
+zybDI3Nwh!XYyI}81={se=VHK3!nBVr<ldj9FWAk!MK65w%bz<?6aMtp)gXnG*5<om
+zk_2hDnje0x_)lJjM8NshZ&Rr?cPBs-#p-+>+EmD0W?B&7nO#3uwk^Hcq2J;CAMv8<
+zTexSlL+fnA+|Kl~lWpk-RZ}|EpG>B$tDe^V{A9jmtzlM^=t;k6t<hngRSynmVAyTb
+z+E<SG<ziGo{+my&b#(lhc)))|IrV20#sz8}-#CA-XL|c<waS&vvHo~AWmF*b(=E-r
+z`BAG?>0B-H+0=&g(|`inpX&sl<lfB{jz2Tlkme64NHcrNJ^8Eh>9e1oq_?bD+8K(M
+z-<W=gZZ*=IyE7Kp)XwliPwv-0>8*f*y=Mgrv(m!ARPg6I<_8Rc*|1PuWOw<-f=PhS
+z{f<^!`R~9uLkkY~`aL-;Ur?!MkFx#!{$T>%(=YgNcSORs&<Wfm{>K#k1SIC81v2B^
+zv)n8*aqYK#%C<p20y#F<K|j7h$_g&DWKOfZ_qc!0Yi8}0YMmOp?3I22<n|0Me-4dx
+zP%<3ivH=ng;9y<{i34)p#TU`jET=tgHO!KV;do5(-M?B3UGFZ&xu7<m^XGis+cC1w
+zkNy7SXK+u4v9_<TegVF)QhzS{{2PSM@x>z=1lI?(&`$({^}z(R_me7O`N+-`&+rCo
+z3<T{1GM6+o9X^Ec9OrF{x%BQmDev*VuW~Z%M@mOYA@wVLd6((eI{Vs+UKx*lFS~K9
+zhtG!|QmhjKNTKZatGdixriJu(&-Q%cdVFc_Cr$g95F?p7j2@qTm{=Rd4Cs{c6w~Yk
+zNPIn1W&9=*fb^8rlqQ3LkphS1Wr%>%9`Ac9Cx1Y{x;vQJ$Wmg2G<u9anbd9kGxyyY
+z`iIy3iQ^yHld%a}AsREY*U5j)ijDtO>wLPJ45F{KuA!o@9x!7$ZtH+{>1o_^m{ip_
+z?sluD4li|-022j1Hzbn!>LcLQBHv9n>;6;rxHbe>*u>lp{Bjafy;W6g(QUTxU2Qm0
+zUu`HOMT~meQCabmY0_A!w4>@rd9|cnj<9KYVw7qi`zGIxn4MDHqa*hhDgv3Nzr4TA
+z)t#GmO$p?g{!OTyD*W++DL1}}UoY;tPWWWI#C5{4=~;uswR?<n<UmBxVT8L>xZ-uf
+zH{&xOMXa(oUxxi(hDGU5mp}=>%}$~$;ne`ba_t@MA9Fi~>8p~^iMT>HzmBwtqBDoL
+ztuK}%q88+Jj!oKfUlSNqH4rcSf^R-9TW-|){%q}asNw9G2WJJ5tk4Qtv_kWqe%jjW
+z3q$=sl1URnh2AL1+=-%j9S(%pNtypw6!hzb&KjhAZ#6*qhYfPHk&b?;0T0jY;ak$k
+z*nR<=Xq5^hdK~bt%7+naEaR%@w+5me`x~bksVwga0_!+3EE$qalE1CSHIs=HATrv;
+zsb+t8j9;mO^NCnJCDL4=F^AN%Jldves?JR70sSwXxKAd}td|=d?@>OC!}&@4FbC%+
+z$-{D-pQH~z;rt|1S6Zar@Zs^I^OE!;_Y(AC-O-o{njx4`pW&HtnW398n~|Iem?59h
+zn-QGxnqi%>olyjCi=r8-ySK`UO_j`iCN+=2SCbE=Owz!#laf+)-%Oe(qa%jM;`HWP
+zs0E_0GmK<j){kW7?%UT^r~8<-Qa&1N8KmelsGLif0*KZz#j(IK0c>?i0)EqYyTvqz
+zcX+_Ozp>~eNsB`cuV&4MpL*bygG>RNk2Ea|FN|`8(xd8P)~Y}7K56|EDWIzx?^^W%
+zP7ZGIE)^J4Rkks1k)n@pvGF&XZBYfk={3vQRqgFWB8nwv7?@hfUi6ciSy7)@#5xPW
+zc2}!+#_gHXkEzm+zkry+f=WabI&5>;)Eq{n2gmo5WWmLS<O*-Unle=XrSEjQFgvg2
+zvApH=U?)=m0emm={a1<8%D;h?z22Pyh!~LwGV--fQnC0ay`hAHra7xjW2cUx2oRXM
+z*%ZvPAITQU7FA?Ke_y*%s!<P|m0uz7=JTM5+0fs>MlW#FV<|6gF9olRYRgYlEqdTu
+z6^^IrRmq<^9XI%C=MzEF-cj_`$#n@}jT4m_KX6tGWM93rD8Wnv_bchLa`MT@5Ae{T
+z*^C&NnGN5Dz~<Hivm7ygGgq(VYQ3+~yOI650cK#nQiJDwUZvG~vxIYG3Y7xWg7Ld%
+zIR&LomCek%Eo>G!vt(db3d}skzhW-1RVJ|wiCRJTHhAs2u2HG_FAhdI^+eMIyyl0F
+zVC`AG0E4|cs&%xC!P-fU8lrzJ7^<ql$ZF4HdGMzboSn?-uk-cQQ>9*4w`LeD>#KjY
+zQN5vjU<NLDY&Oa8bM$NMGc)jPjpI|t;A&5zO9hL;CB)pVx!XWq)zyEetE*MdD3&d$
+z)W8W%kh8>Uc^aa@PtOT16r-;=<la}O3r7hhJd1w!y~%7w+}1Eaf7vp_XCR=3+>e7&
+z*QoU|!$PthzTlMBgx0iWeUk}ro0<0L{cuQH+MNQa7EhO_UehxW%BNA?@~sxAlkNHN
+zB85tSqQJex?`+6+^{>HNc$&4K$eBMjO;vpcMPt+BovA|O_kNCFBn$nJEqnKpCRA^g
+zfLr(xw>`Hpw-xs;yDydBSb#V5`{p5+k@u(XbyIRmUIg+%N~(Ss+0~OL8-r;R+;lJD
+zVF!MrTaOgkS5^)W-n8MT5*|68&!oo;4Ibb?+lb6@=Exqz?#AqD&RSb?36ea5Jc}>y
+zGjSqwN^wka(slG`EN={$5f9|X4Ww=9``~EfH0L<m$U5`FQkZ-s*6QpLUiy99k=Ko6
+zEiCb?+I@#SOF=ZgiX^hd1gwSweCTex7L(sv17f_(dA@;waGm{TP~7pUQ4fVJ<y_)3
+z(Qy3KUn@Z?eu{^(@j*Mv>=)@HJ*ysyjr&163hWoD%8?MKd78!yf-R1bSL!3t*R<w?
+zjT!2xc3f#}>73N4!bE?A&rQ6K9g+(CPPO~(IBE6b)&@nh>t@JS(gUbozN%|Wshukg
+z<1`}Eah6M4m5iEDH^`RNUk>1`NRhQ0@VHZ<E2obNV6H$iMf|P{=KkK5<+z|F>B9q+
+zF@dv?ePc<1v*^NEJl507*V6)yhCf_b?+)DB8-C4h|9LKel!^MJ_U&$L*vZJ@iNP<>
+z$Kn>ok-I~7r1$rfK6blvgtl-G>FEScJ>xMPme!HkT{79~eZ1`_VAqk?VoJeTH?Nyu
+z)|3`%P#*5hF$&v7m%d(iH}&8P_U0(RGH2jB6suh_4~y0G$Y?9@wVqKWyj9uvkUp{E
+z$dNt~^_PmCsTyz4%#nruPeU}GnbBKPQWKSafyz%mOzsKA{t&+>6#awdo>1hE!3Olw
+z10}Q$W!I0vdi2`|N`G`HWs5z`m#pHs1St>-+w{Zur!VJIT34V>o4^w$%H`ruR!-yx
+zwlSfe6u%4nM3PkqhWGml)7_(0=XIr*<u;$l7spL4L2(e08nZzy{Sw14?w}X_NBW?>
+zZKzdcOsKaL%`c~3o9U{zRP=P!(FcE#j|eYnmT>4<E2Cq~d>cuJ3v?1mDZu?s0&QuY
+zX+*&MGvYFy#8-|w)}}P7+V^;!UVnVY(^q2ZP1~2|J>(trtlWdDg{>vV%{RZtWAA-Z
+z0Us#;gGbN%(R?@0{P!N|?@99A-1GB2?Bkays9LF7h+CLiV%?tP=XyxLm&<drpSd;j
+zh-oj*ufRz*U6xgoHJzJcggTdOu<7%%<;q{jb4kq!0{vzQ{ciy~A%A=6U%o!oKQB^5
+z`Ak7omDaYi=LaS?ezvR-SB;1H{Q4^8jPAb6$b5&iM`(A-ZrgM2eoUv$yzw2ry`{_r
+z`L7i!GCg%+<7OmRpEpZY`8d3Pr+cRtige}P|I@#8u~y<;9QImMj<$8zo~Xm6qDN)n
+z0fKP@c-H45-nk+@W_2+7bb2pT^Rxo<@2l^X>I>xe^n?CqlM27S*|EAp{G2O{<;r|A
+z6s#hC$%pJ;ca;3{lPO$&*CXSi5oZ7I)yfy8`)KnI9WP;BwBdM54_&|kK^xp@x|97a
+zpTj)qSZo4)^Gp9YbYDO4Eh~IUom&xV`@S^(@xx(#+s=Ii-B;6u6XTiR*;fk_ns4M}
+z&y!+FH>>zZ=6MVfSmHLl<xNS9N#>l_g_2`k3*T|3_oAja??Fq~i3GyumoG_z;bJ2}
+z9~7^AW#k7t5w92EM8(1T577*hvyM|@i-pUiEN8J3=qZC@i6=FgpS~gWW%8XLxu10`
+zeEGV_613&nEO+_M=CrI^IeN8a;ia)o{QNBDmBqZzeD^N}wAlw!^-{8Uam{bh2bZvl
+zcZx?;bQ{|ySKIQ34Sf%ZjA*p9sd)Qee|*mq`^rdX;GV}|P9QDz_`z!f<H(RLy}+Fp
+zjkLMtJAvcP^5q%+@pap?yREnXw1}LrzI&8mw0lvV#qCyEb@lV3aZrPhprL*BR|{0G
+zkd3;}Xu#lohwieled>;g95($<NPy7qzW1LjOn=oJY0lM*?oNI_sU9<}o-?hUF!lVI
+zsO`zcJ5g+GTC8&WgP-SLSt-B5kQY(;#M`&F3AXVSA_89JD{7}bs?qk`aglNrx6PjX
+zGwS)%MJh`guZh0$;Gg=ypSvzGbk`+XZP2dg?+x(jzq@nQveeRg4JRU9Y}J@5-+wbR
+zb$d+tMAB4$yW%}s?R`o9yrKS1MTZkP23Y5Dd8>i%)PnY+##;-4s`hTAuH$PpG1Rvx
+zeN<&!3MN7)NNkCI%DIz9Thd_9`mT7lYS_@&uA@@;_s`E(o<CfqJd*Pz0}Jyd4fWZp
+z_%cSS42sG^KsE1;9h5>}m@0)<K_$%g<*NT_&BsWzEVHNnpC>NCsiRK2K8_6Ok~!|Y
+zVB{R3?;wshbDuu`O^^S)SZ#@#m(HBK^?dH(&8}$2?ueBZmHCzrcdc^V_XbUg5@n|6
+zh)!2VT?z!|;wy5%K{T_sB4{8VGHV3V`76Ip@|&&24_1qB-(C1TVRn9E3GNXw1%IwH
+zruSemTQli8Uin=rP=RA;*c9|?w&Cm13YZY0+IYujfk>wE!xb@tHmDh4Su4=`47^6R
+zX&N_K{e0pPIKK7jZy<AZ*gpzz6P3?g-WMMZ!_V2KSpqg~Dmfw<7HbN*rM=}rkH4yv
+zBvn8ECJ(lXl|csvsUe6`C~A_0QVz^ssDfE%$^<4%%qC$$;CBBUfx&|CSz}g1+)FWF
+zk$_eWuuJ*Mr85}JcartVI)~n?KUm0OP2(x}94QHI@@cJ>O|0mUBJ(33GjkQp`$!QF
+z@p4Fju#SL8jd~owd&$G+WljzwVs8@6X7^aZ=`xqeyxP@|*Vq*gT^%DdeGT}{W)E$D
+zTBY)T)~F6!Q`vDR8wMHVJX?4xFtw~L%C`Ce->|TgqULY+xD)3|vu}Zb!v_+`v%#~y
+zfr<OYlG!F^=Wm$6#)*eovuO~ZKeat%r>?36+3v88nyxXEF!>kmn?GqLmH!i+AYnF{
+z#XGJ{ZCI{R{g>$^;z@~sVJv7=Hp4aG+Nzoh*RX5MQLd^QM%+Xb17ZDUo-_8cs(M2Z
+z{7Dv^!@GK4n%=NwES;0#6*b34hpvjE$m<lbqn%&n0w<3D5)<Y$TUM@aJNx6H=+h2u
+zK3IUuOvCCl7L%$4f;m3QzOA0(UmXpW8YbO;IXlC+P*gL;ZU)>Px}@hN+N2x~G405`
+z`)a{?eNb=R#K$la*Onw#{dF34<@vheaoE%<lQaWY{bRFpryc+M-`#nCc`YRQIaF7R
+zuCI;GjO52u3x-q(%q8$2!`NgE6^ESvt&t>l>N7Qbn(+}I4!b|xiep{-sIYc~$$OT9
+zt@YiaIyfsTPd;8IM)0%Blv^R$a3FPh7KqcXgMB1v#x6bxA)9(F8cw)zdhiI`gX`z;
+zk!pJ21vrZ+?Uc)#;ZY6g{DQ!d7=<PbyavOcQO0Nwe+rgm5sP~Ij>@l_46`>VR~rXH
+zYft14G5uRh%y<HRgF8nqG`*u%d$)yQ`PbLjH#Qk7cYuKl=?V(BSG!3s)KlvorS5+|
+zX1kp-cw89wRDjI6gWgA+=tPAw)x(woGYs<GeIpcGoZ`{bXG2v#@<D2@NqL9X*~C0@
+zTj2%aFy(4?qTfJg__+?8g{k!Kr%fgq*3)Y)aCqk9+pBLPWwqn^bep<)*+y;^i4uXm
+z2J@Z`9=fj9Jz$YXJ+^&ucl~7ykui#@C1V$ygUl;^_1BNh@p3}KY;CH%T0AtT8a{aZ
+zn#f`KIk=tjFqri)PNu#(ji1U{^XE*H=T49m!>I_Ktp6K<1&grASI=JWm<^2tN;~A#
+z-=D3}IekM{^+TvSAWq<$S^2ivW(c^$E@#iEyuDoP^=Gd8a$o0gp6gZ({dg7gniX8W
+z`C72lMUMBuJuB@|0UdMG5Am-)y>>DAkpAlSYcH6K1h3U=uX3J(SFAcMrmu8IDSmHq
+z{+c7%S|b2I`aq`{*8b2A1QX`4uz*dj4Q~A<2|Um2_yD#WHMdxq%#jV`HMY|>v0$iq
+zkn%H!cT49(#|LXWZ3~O%lR3Y)bl!ECysc+7w@9z75!?Fe7Z?cbc-2tPS5=d=<@uqb
+z!^lqG$inpJWck)}(tia*8PAz4j(Z)u3Tyqf?<Cz>v8}Fod(8D)(vaKXf>zRGQghBY
+zny2KIot9B7PaMtby|+Ku%sOIpUK(vu2>ezlSEvf$KY#JchyVO<<#YD)zg3bYEiaH$
+z!U8iIv#MViOj<JKg?JXjzwTAk;hTj-ejutu<D4hovr)Gpx-X{=ra(?P{gT(KpjC5c
+zQbRGuxaB&}Xs$BEly<P{5;pxw;dKx^UwI<CT4}|aGi==4Hg@=$$LN(R$<~l*PEa+C
+zA$X-qvRG%eN-|1^w(@_mEFIb^$^Wt>o$N2U>ODMv%RiXZ(tgsKG-<kK`mL0ETA4wb
+zX=|Xe;unlu3n)vG`+x4pE0W7XqK573LbyEa9*)|-lFRxm^wvdWGheHN!RSLSkA4~L
+z*t=B`K*c5>cjvS!^k-H@#*3jfo-K)_5FIY7;Loor!8Apj97Z&Oh3a3qXEo*bN`E{7
+z5#H60F~F;?FnXmE{Xa~p3@F|(&RkWJA+Bd@KnMQ%rD1d7@l^R4+uJ()`8Tj9978i8
+z(soDyChql4#UC7Axm?D-lYNYl6uWHlZ7(<8F7#*heVLvan#NuGE62oipY<Gr_hlmY
+zVKIoP-l{V6{vTObimEUfJ9l?41e1EQskAfUN`$uJ7#}eyQ+V*hRU>3S0o~8><GUKh
+zl45(_$!@JNeIB@H6=rPrlwAqlPc=)U>ybncHR(FgJ!ktfCe=S3?VZ`@t~>tSuH&n4
+z(O9Xd_K#_kR|^g>@8ZgruPf(x|2iUFKQrcn=FK1!bDw$?&<8u?gB^oA^X2?Ppl@uL
+z`J(_~LrS}1E7tmU2cmIM8vc6rcjt}n3Qzay7w<jYqaW3tZy~0m#@gFLO{3uq>mb?y
+zt7y=h|BJLYkB72*1BWYQ8IpveOiv}1t)4>JCRCnM3E7vaRLVBlvd?6MO7eWm@<a@I
+zWZx2FpN3GxjIxUv3KKDdVQypQzJJH}xBT<IpZEQ|pV!CdI_Ey;I_Ey;T+6x6b=`B{
+z*RoFE{vvUle~LW!&TLHEnlue}E!O&8Cy0vPGs5}|J^o?on!xGxD=YB)vPIP4&pW4o
+zPOjNBzLvH!idV7nR#u(vG5Vrl4BH)N2Q-SSxr#Sv)Yd=N>+inH*FV<Pe{AJN__;B&
+z1$*wrAsa^nO@*5OY0!(NzRfzLoI6r<c&ae{2yW#cufi6)f5T0~3a5+qPFKdBRMGtR
+z*YiV$>9e8lvWK7NqtZE{E!n4&^zJUXoLAYE+`Vhtvn>8$rB07Y>qr-ypvCL1cMa@L
+zep4{>eQo%$T_I*&daHzz=y`N5Dr)E0uESdtWM6$9=?y{c(l}}V=QZ1@TtVM;-Lo=w
+zI>iqC-M>X0_xGHzAA6c>74<8oUvo&$aoaN!XH%1HVMZ$BPZMnU@{0VQf1A);im&)t
+zt5@}XHVXdJCG-1Rzc-(|6)L%G_v^p7I@s%7{oQsMecjJuXM6aMq=)oI9EJHZLuKnH
+zfIa@Z4r6<ta7X9QC-ML0e{7vjH0K2uHcfxYS?5z6-nnF20SmQonalpGf6Z<-GR}Z<
+zJ`-Eq<5{#k*SEGZE7%&0&o!VpWzuYB$VJP;vysmYC~jjP&DYnq1mj5tgfp2sHZw^D
+z%N>1dKV}7z!GBzF%O))5X&)>^eV#Rw^6Hpe;q3aIU7y%7YM3!eE*S05n^;?y7`Nu&
+z6=Hasp84*Mny&E?Ia(5TAR6x6BKuSF-2D>A_#KV+)R^~-{g3a_Se#9N>`?u&G&Ivu
+zbeg(aY*=?8ROd?EovtS=j2Lb4NW_hEvjb04Lfbpm+s%R~hd0N)YYSb#KI4_Q#a4J!
+z$g`p%vWgy4E&Y_;CBEskm=Xs66GuMMxHoO0yFl8)sb(k6@z>{Lje9j)GkOCWdrKUP
+zI_)QYZ>!CgKaHO#vCkPh%FT*C;TEs|I{4IY-O#RV@;{o5(LSzQT2~J>#`=7?=iAcj
+z*MhJ4S!kG%<{|oy`Kd)iX#YD@V_UGsgBo9y)S#cmiziAAdtM7yFYSs`7uSL7hG*>$
+z{mW?F6&rS{z46DVpVvL~-Md0^+ZW7EE!`Divm@w>)*pFsyBcSFY;MPf&I~75kGno<
+zVkhM$`uH#%c|TlN(RR1bW!!M-E4|!c`fSAX+2(`VhL4IpPi*tG+<$QB+0*#rPviZU
+z;$;gA4O2DEKfl>x_v+c+3AJDL_AlyRri5P|`+TJ(tk-+JGLv(Y!;x}(utg+bOHA<O
+zcK4>6eWj)GH|FT)4vn`?zTjx5O1p@*t~+iSr^+v0iF<h1>U$#ZM7Zo*9&*Vp>z#W_
+zz9Mt4{Jf&hIq|T&?^(O{gx0w~Q>s_<FEaAgkb01-I6l<*jiW~vop~3PcC<q!Dva-M
+z*DT%i?}4WQ%baO(-*?BJq<Y>eT)NcQS$@HqymZX?dIfI&W5JDWhb>(TI|tAGSh=5B
+z^sL)~{Ec(8d0Tvy-wF3>|IoR#+?OY%ubGU`=}$uX*UK}GpLhDT7Mk<%f^SO~*Z$I2
+zL&cnLWs#9eMAvXmXUG{yv(Z0|{pA{YwZwiZEMsEmMQ-P^b;BmD<>NaW=;4EMJAd!f
+z;@vpZIr5|_8@e*!{(8;5u~SJqPGo+ylsIva_v04tN94AH**luz*`x6x&d+9Y+-3)w
+z&Ft{E{&;rFkeD{U|8StRe`>I_gYSU<Z{FEAMUPEHTjxSgZd=&o9_+z+sv0P5|L@Ub
+z+iKGnv$7uU^|}1nM&Zd^-@F=^7GKl4TKsgU#QR{~@nqY@^RMf7yb7)@Bl|h$992Zy
+zD_GtiG`NJMODr!>#1!o}maN%kpM5k{t>EcYZPniHYYH0sW(JJKE28O)`n3Hz{<%et
+zmz&UxOOh>qE|(hXgC`5>_a+K&FT{v^GurW`Vsvuws!hSsf!=(_yY(gtEBC!>&*M4{
+z7L8UGUyU}|I{a)9Dmgc+=cf`<Q`&R>-2<%`m-bxlxe{!M*B@UxE?Rf*zMtXKTNc~K
+z*Fp+M|JlX%8I28OBwCMVZn4<5C&GU`wySTx@AAH_dD~;&>nMwLSbGyv>zfXrx7#`K
+zUbemHsk!8*A0MiYM~1w!ebG1Hc52~wtoOCH%GM#rAXmFR*utY%uHHGlO(Wu5YSFXd
+zM~QZ$mC+5C1|}09cc(n=Z7TZH<jR<P{dS|W&Ii}OSLy$}N-Ql=+gWD0z3cO0(Gs*Z
+z*f1);=+fo*9Q;vXoBtn=i!;J5*=c{gdTVB{T}r}0acA4m{EJ8*dFy{tMHm6c6lx^m
+zP=+euW1rji1gbaO&#Q0RBGj=UboDZ%q#tbScawChN}4Vl)fjBucWc%E`<}qbW7jpT
+z3Eeik>fK)!A02$5R@@nEdF}SJqFo)ly~h9RoHb5F^gAi%sJ@?lO2*B;dFf=|_JW^R
+ze`xN!H6iN27C-(=v-MnZm6(54m6pqxdxYy)&n24_L%qVz%u~5;g@=a{@VqySmR)vr
+z;1spc;ifTj*snH2@5XypYlX<J$NQyuhq$g`w_=Noo^JY{Rr%~iq@6;8nO&PgK@k*m
+zYGA(Q{M(|7CIv-`cRtt`7bWKw9i9KX$oZ+|&Gm)WA}@u>V-aeP-F!P>znNRbMVG#?
+z#aD}pf*-fJ*0%?|94s2Glc@PFQsi}@=UB**$x!kAMj^vT?W*tnp{exB?r={_)aml8
+zcD~(qcEhKOj;brhRgER?KA?|FD(ZB3TO{?y&hC$e=~&C_r#M21zxQ%~J@})?)57RM
+z-GSXJA^ZOHV|S=N-{W9sA%Feev4UEU;P*ChNE%YPE=wqK5>%#P`WN%h%fxIxkp26b
+z?(OnxF|)_|v$uXtpZ&uwAy78ZOGp_h+IDfSC>(ivC2EDS;#udMW51NTCS6=?R}}Xq
+zu<OIHaS01rW7$QmNNlUg3Ambg&10(IHQe{ID!}@3Uv8&esl8vP+wK%`cgyt2wny&g
+z8?9U8kzt|7tbb$e`)j3~Y=p3ogfQ;PZ*s{UC_0n!c`Z9aZEnH0H%)RNM&%$n0K0y5
+z=zR5s*uw7DxWMvTT}`Dmvlmjt{8A#JsQCk&*;O`tb|Pf~StYH`9?7^pdTq67eowW~
+z>UN!1{7B&voDlID>F5|XH5TG7{u<rQLxxufw|_q<Hb%4tgQ7=@rTUvA)`YVU`6N#M
+zUqYJjMEkLUV?CTVH;fi^<)!6iUP`}|v6Z%!`6hkMVDB#w;A+)u6_(ynfxma{X?1Ni
+zYK?5&(rU@O=&sjDoOh5Z-wl5|el{?1S1WSDqTnUR$<cEtke3o1y*GKjti|uODsk_0
+z>B1y?^PFS^+`QU!z3FyCQbqY}K7V;YZc!Sd1iiH=g|-HSOY8k5W8cw_8Z!9fb~&S1
+z_be30Ir#hXxN_$&mx>!+wFY_Tug|^jGYBjf{<ZOLi;6(mJza(f^ZU3RTbNYqPAf(s
+zHG-(%Mam-Uyzqyr$wRmB4=T97jvZ9)Lq1{9aEEf+>r??{(&wVq652o9NysLNBL|JQ
+z_vRwz2|p3*!84sAo+qXm16I140^Dgt1BvIm-SXG-=<i49H!CLyODmj3WaiF8@7LOL
+zb{$W6^2Nd5q%D#7LXw}qiB6Ff=;n4DqI0%wDZ;a^rE~514A&rE13{lu)rWa;Fogim
+zlQL!p5G=p0v=dI&aZo^fXHJ@47Fe!m*!2?%$31745sePah0FHX0-b(`S?^$rsNA;&
+zg|jXznS6I)HvSrB@g1P(tDHOV5i3hCK?&ZPQpD(E&z7a<P8VU4pCGgCJy*MrS#=|}
+zLb2IA%oNtXTyO*_3ZJ)HyQ|>g|FM$L*;W{O8&}|0aHHT}=%=e)e`oLLZ;cy?Gl;8?
+z3y<T+S=@^AxqjSMPk{U9^j_5=&#$C_L|7JW>yZGzL_#j|lL&i`-??&Z26<~(idr2N
+zU1cG?!iMp=u|)EBWODpj0edlRBor=uVEZ$@vSTibvPP)H;L2t^IMq&+*oouX5#KqY
+zRe3onR2q{|j(_;a-{cr+sy+X%uf&?H#g1@n*grWk0lrAz<OTEEKU%imgBZoX7|4@)
+zeY5$Be$~~TB_hA?Ia&;zsJK$$c_Z@%jaq-dxa_Y6YCUo<*_J!A^|f{%`#ay5kKS{;
+z<PY#+=O3GmBgU7Fl1kkx#w$!Jnk(=XaK+||=nB&cYK2m5|Mq{)Z?wXFb32679lvaZ
+zJ^wOd;Dio?@5fq>eLdFc^)vAf&awK)<<=sZ_{+Y|Rp|{4Zq?V#yS>hbtb37mN%!Mp
+zjeq(T3`nhY+&4s8uVd$JA$&|fks%9rOz7uy-{qzEw|{7FY0vRd^=V!=?^pcbPSp9<
+zbfvnS4x@(BD&{Iw;*|Sc$Goovnq%MxtNmMk&t6*}p%;uOwLkA)rH&J$aFGShmm|!p
+zy;f!I)<waG4O^Szh0^O=n#aM99Z=WBev1$3ROs9g&d)hyh-4(pYg80h(5{n4d4&^p
+zxmGf`p$kK5Lvy+<-qi&P?i!mEU5nqZJ{{@srr0)MGd<^a4u<Vry^{H<-fcFkIHJ_A
+z*rE|#S*{rO!%rk)v!3V-wBN_5opbWH^zQ>hw|UR|Z~CkHSA;rl(UeOSwT#tzq(#(<
+z(~8ccrczT|?LXLqFf|CG-FQ_IT(MFiQ;}GqRiQa#4^AL@n&6eLHS($AUGek8`MCMm
+z%tuiu4Ps`r@RoFO&A^Eg=R-b9zm12)hQj_ap3GG&+4coBE#oa4p*$ctuv>4p-VQw(
+zy}f!UJrzA!J+z`sLbO}_*u%Eg9oNCL0z;RFv>a76(KR5}x4Qdx;E+;<PDa@xc7oDQ
+z(I_!2Q7=&{ku5>{Z1UOuTWsj+(EXvmhIS2|0zv()L%a&3A?+d6A@?DZq0K|4LpO%3
+zhx~`;DqdFDR-CA)svup*wBn<MQtPdZ{PW+GO?1<#>4T?i=Q5o=y_#H#ZRfSC4g2wm
+z1J$d)MrN+F2Ta^%Tr<A~_k0*HTfQ_lGizc?_8#jBF8^Q>7iGf>UWqffKnRJ;_rx`j
+z`xJS$wHFyD4jUR8MveIe<g1+Y9Y#hCpJq1bmJ3D3m3d)a%-zm7<H&Nhf&FU0H0Fz;
+zEMu-}JgRi=F;A}I58Pmb1KT&)KGW7>Ohs9F_Z}H`L96T6kJoVy<~{4#eJj<0dZ#=Z
+zK9hQWMu-@<hSoNyz$<%f{H8u-jO;qG9B5%1g8MZ%w$N;|-25s@c#p=_Pnb#3$vU3(
+z;Y6F*ie8%gF{4|&3hw;{ccFb_nmXJ!&Uktyg}3*1b}}+|<RH|n=v(sI>SI*%_K@Wh
+zk8LIz$5xvM{==&obxKUl|L*H8sES_r!pEtQnjOl&MXlq{HwMk%pOZ;V4s4O&3sD76
+z{TT~>cW*nq>1p^TTz-@D+|5|E`f^+dyI=UF^Ym(+!w5}S&S+i#KIi|TX+T6eX-Icx
+z+tw#!MpL*sd$em`D{2zG0GAuiQ#vi)4G#OU2%(c1On4@uvhhE2pU5hbjFaP80p;Vj
+zgU`9y=_nuCb!azhc`1N*B<^0EW!(7(&m(^}$dJc8|C-+&cX}v&<pZlxfNP)YC)g^^
+ztIqks4*Q-gEZTb=LX=Ye3dVAkbk_%j>FFNOu<>@!x{py=6CL6s1OylH8s~U)3gPpP
+zlz-Qs?oz$mG?_J1Ur!~uPW-2X=@H^`yY5@Q)r`#62Cp4j8P<azR*Dgqwqhsa_F36b
+z@9~+!dj)Dy1I>dWZW<A5R-}jh&4Zr8b>~3^oCrOdJlDWLF7$iO{?ibXQ%U{IsWWI%
+zOHwWx?N44dIT-9RRJY5uLdXI%78hx<46j#_LBa=%D*}FY`#gKKCM<u|ki_+F#GMB(
+zMb}^U|F?Ky-i?se-@>WQQR73-nNu%#GS$DmEM?i>i|6tg5@TA7HO-{y9>UtZ)`zE^
+zcD(9s0pv(;pD1iXjs0pMlHpO%CljwjB$FD;gZrB1SM5DYTPbxH@yF>d1N!0Z%?|A0
+z_0_Qpja<cnSh69b*c1Lzk&zQmr7c(lQ!~ejCdc}!i)kLs!<_M^dXmfOj%MD)btG}E
+zk=>*!KJINyr+?@%<*I6q!@OCU2AocejQK~*WLC(>sE$)lo3tOa!sgPKf@puQdMp&5
+zcEajE;4126lJmz$6X5SbjW^!h`12ycL16({F*0an<<ZlN|6w0buA?Q7oRA5u)LoD6
+z4Vz*-8}vrrYPK8qj0xD#i|_JR1FO%?CnIlmpvIJtbKT8>l;UY+yuWOV)7!d?KC1<9
+z&2VUfv0D4#Z|x}^hRQDow#xF9?0fex+H&6UoDpnNh5obj;RTo8Z_gu|e31lC*bqI{
+zO<8fG&n<LRlF1A6i$Ad=Jn;o~F8*_q9vW^t!0ucjF>8OrN~7+&$xFMHkY9~Dh?2!0
+z9Z@Q)<mGXbK(L{*m+*eV(&L0yq3G&^*>P2dz;eC$CthyFl3jfSPOunHoFo4{&R$d+
+z#rr^yX|+GCW}>Djr=%jjhuk2nFU$wBu_F=D>wbL<Liyzhtk>A5v0gXfJSK506E>a8
+zT4(}rW-J1U89+B+P3Pu#;n2_MW<NM%yu1#3?pI=ju1Qq(LMh=J{{-)1GJd7pvp{@y
+zd`-U;6H;#WYY<8IKo_icQ|?6#{qyO>(jPxeb8iouw>zJAnSUPed9?jj#&TU%ZyN+&
+zxBvQh+Z}JL2P&hKG4(>D{hD9YFeJBR2>03kQ`t=z;?dgA>G6ammCJ;?!dL#1<g!2Q
+z-%MXg$l40W4^Wi9`7ErT`w^N^N|<?ZuiePc?fQ3*_e*J}dd}!$iUFUcJ(|10JKTLZ
+z=;x8C{%PF<s^_g#O085FKVO_~AN$UKvl#W0CM;AZcsxuTP@5!qMh;FlkM15-LEvh_
+zsN*WyS?5@D$9nUP#^>p5!LL){$|Q1cy{kY+g*IxmG|?`n=ZxGHJhwDCrY%&VUCR49
+zclk#arMG@^{J2|v`AU30ydXirB`sGV35g5+I$$q^*$eA3?*))fO_|0DZlvM*+$!Tc
+z&tY|izO;=Duj07=a=zNawg<-Sex0^~WkN*Xl{Zt>l%ep)eU#gbtuD6-feh@Z?71#n
+z?Mle%ECCV7!Y@0l4vE9lfi5Ow4Zce0{IgZU54?5juI|#J-Ni`afNtXP@3S{NGQq&I
+zj=ys0*BcP3l+LNx*4mkS<Pz?af{y9I;-wk8+z`__i$p&pJJ>dNka2h3*R``WeRl@v
+z!K6LNZ{?rGC!mKEe_e9;_n{@+`_&U=6ZX;VOiHi8*%8s*E&wm*>)X=f0^IxO$$D1G
+z2jKH_hwm*XFa9EI*V_ARFX(;d*~UGz+c)l^<3R%5k>3CE{k^X5%uCaYNi+v7ZhXD-
+zuRoV@*La}ziA&<2&(~B+J9g^_7E88YAmpy>{PDm~xA)W<?tPZmmnnPpZW_3&(!brh
+zKh!~OKC-WcOS%Vt6C(JzS8x?z;?r;-xZ@g(0{Ju{c1^sL!J|O3&e$b{gMP2Qs3R0F
+z)mh&t$E;G~2C^OuSjJ4SZ{+zXMK+W|lsMY0HikSdzqO<>=SmFjtpc(Kns!;Fh%z+n
+z1>o!3o^2F*yUXHD6<AA8pyUG)h>Tl#nxESndc{;=^aS$x;&3_VRSASHEK4Q?Yb+Z_
+zij+X{4&-LWEfqMHqf>2D({^6iswc>2Qm*Iy4uqO(CXvm}Bf2Gx%dLYSpE49oLNxG6
+z$^%I=7ogmd<dqoQKMIHgC(5@C_pX=Fls+KTn&4I042U%kmO#80<*6x2ZeC7oik862
+z`N-ThtgHsy%vm8%lD1*rD-aqJh1zk1Cn@iOpj4;DnGsh0hd9c1SZLq5tu^H1Q{<mS
+z{1qx;<l?Xs)Z?^BiZ2Ic2cR<NMZ!%F3VA}O%4St1GA<s?b%>#jKc(nJu9QIca;oC&
+z1zM^#c%#jF0;--MM^E58LHK&n=}{toFO$%I(a96as+wePV{FoZ|Ip*3w<5bVZdXkt
+z)J!IU*Us%%fz|W`T|Q8tFNE@ec*7iY9P&8j-8a2iQq=@T77^39tu(RT_Y~P0dD~tP
+z^2uSev+>#}A3xWErCoFqfs~yW$rZg;4`m3)1f`|P)v@dg8gTwZMEg_9iAb8$Vn}>>
+zxdO5Y+Ul|>TkZe)zy#VO&&MG0xV>OekMAUb+|;=JOK-NENT^PEcS&VsaFl~15)xA0
+z`EsTl7uk<=7*COh;IPw5_;PVLgOmAg662jqTIQrV9$A-Y4$y$vpBy?a8Vy#;(ewl|
+zK9I{0M|_k+j>WWGbh1!cF&yQD#8Z+|-oYH1s!6mYW0wYekJIM3*fBc927D8w0=uff
+zQF?;-3Cx|m-^q!5PhW`EisYocvw_N-771Rtqzq1)(~$-dQchV)ZISnZG9O4~h(oTJ
+zz@Z3_Qr_iH%-wBc44=o0O|U)ld^Sb4mOvIQ`t45%%Kvkcs~MXSWsTbrzI_<4R>B_e
+zKw4+dhme7%$X=+&1#A&4N?#meAYgzAMFWa9CVf!42cBY%?6nv8uavO$H^XN&ZXeN`
+z)p<ntPs%$rjuv?m>zhlutS4~sg{piZax2L@Pm}gvKJJ*n-1wif@By<RP%jQE{Fi^W
+zkUl>}oK#SfR*wkjDeum4@|+gSYkFzNRbU<ygUkCJ1zoZiTt-)pCzZ<}KlB8q9CD4#
+zfMWAu4cL_9`+gE5!w}PevCQ@Ur$`8NX@HM===pA|EWe7`RXK?$n7mXVbjJ<Q$S-9G
+zo+|JHhgV@Uz&J0A))Sadpzi>gJTKe{IE|C<bY#>w7auKyY=#m_k~1r;5g8Tu8;4YB
+z^MHC@Xrls``$BVuL$$OKj$sS?R^FGpxp;LIn97kQ+pK~w{+2?7eb`)aVc_1B@b2Eu
+zK*Nn9N;FUu*ul?yf4w-y-8{{m8{;<Fpg74V7x|?psA3YjFAnQMCe@RO^u}PLJm-Y^
+z(E!&+HL~1kk^PYNb2XcgY1ls8Nx27Y%!iUIx9Bm23;I5B!g&!Rf>qZ5(^{#RL|^}b
+zOV~Qhp<Hjp0K(Zp*eaVEFja6mN4H>o@_u`$tgt^Ii7D^UK7IPb9Ny}Oz>@eB{}^0>
+z0&*7u>WcOdXfnVZVBox#5b9GTaAWbU!jCE}tYuR)BAZH}9}|{UlN7qNP(Oms{t-Jj
+zIA=;wg5sPOGa5^hJP+W$$c@YLGn;%r$_mPzj#&0%Fq{vhS(AbFuwC$oeP^U^AKR;y
+zF&0PB7etjNuaK<?y9BMJ$)%5UTAvb<fSUQR!5d0Ik(GA;*hRCKtsks;H;(W)870Xn
+zP!2%@!{Zo69@2mx=)rNvMd1E{&MllW6;5`8S|n^QxVL#=9V3AZ+IN26a-6W$IgA!t
+zp09v(ahkl^5ba2%66kXDK$555-!>>>i4oGuD^#Ey`P9B_qn{jHwS<2!2PfK_I1E2M
+zKH@bc6f^mDMT3pa<D{9ea4W?&c#3lv`o9ES*3VOh?@Wcq)B2xcxcYN5DmPluw_A~9
+z8G?lh+{7VV&np>o`>xM6VPU1P^$N%+$E{+Lg4$sA|6sPq6O33qB8~QxA|FX}UgW{8
+z{IJBT36dys4Jbh0J_-s!4|HDAn^uDu6*jASk)EXxBcA<60kPn?)l5>hGV<*O3VP3H
+zydgr3^PQ`Q8pJ8}w@dB_=Um-6>rO}JHl&I%I-VU_qN)CMugSMqaUrHz7Fn0&M`<fx
+zOGuFAW1?w6zf1`X*-|tTt^!}?;A(7A#TfP)@E)kfWpQSdg;dBO)+(^R55#ykQEu%s
+zhE;(L>^qf53)pvB83S>c&Nxc03_%?-bU6|+eqLCrwl&3e>H2V;O-y)s-^Gk1>De-H
+zhkG@de+s!wOo>0zzip*d_#@Mc<Fam{vAO{d_fL>llTLYkz|Er#`yMeyFb_f{;P?{A
+zn~Iy)`HYTZj9{GyHsDfUG-D)wF&N<Il&r`?znS{ZM-t-LWuM#QiT3aiKl5KzJ-F$r
+zj0!uy8VKqTXRx|IDLxUHxpN~xL?;~d7Ie0%;0;w^FFnDko}k|s@&-unCkUV7D5)|C
+z*lYiHy9w~)IV>ZN!Hwrz5=KxKjwV=13unksLW@xTQQ+d9N@=BA-(6c5oyPK%y-yR;
+zN#2?QniTfEV2|CY@fI9hnj@LY^Iu*rnOe_YtNYx7!;6x9!U#%NDjUmUZM6i(vEMY=
+zsA*c0rl9EyNyE`ZT*}iK-*X3k{blJiRq)+&g024AW6i`HpHwL@`X~tdCzg<Xzj<oL
+zvPCSFgnC6nX--oHV+XZJ@{dxz|0V4lf6t*DdGD&Tt~KG?MazA3TM@skqm|;)3_dVx
+zu0@K7O;Loa%(|+JyD7cgSFzw!a5>f6k>ZVKlQ|iLj9->0By7SVm4y65O4B0Ix=F=O
+zP&efXH!&6wnILa;wmr&oZ7pkUc`J%gxfW>HMMHm~b)_a@T1Z-gX~yTZHZX0m9bFC%
+z%j{Uk<{jyT3qL}-cyh}TFQ%635=Y1Ld2ab95P`v)8;cU2_;Zz!ZO16ij%7)9=1aPu
+z2RjLGCkTzduBBOrzAzqeTXT6fW<^VY+_Ssil~UiW5$IBuJ%2b%9YqPNzN>^H$bWVz
+zoAz-h40pHS+~bGuPUx5Wv+e=tcen0sYFMy&mu^av8ruVu<b7{xLH_xPCUY=<tfeZ#
+z_Ahu<oQy&Dx9e`*>)^xPi{egw`sH0db=qlRmp@(wcd$F#)&D*#IkGmE(RlOClydj9
+z!jn-aXw(uuf+C22#`sRK53hM@3a0yakg7Q$sRHW;3?qXiPf$wWyQwiYh9ol_P<nIu
+zVjIl`in!2B1|7NI#DcD)KEjId<`?L@6X=6$RIsq&Pt8F`3OltN#{Vp@In~mFu~|yh
+zP|X;006#}du$;z@R|?dW10$Uw^}q0MVhJyPs=Gk>f8mQ_3F$xcT_DfD@NYry3zIRF
+zh9k7oig4K0Idnv~60#+MKW!(6tpQX0E3zL@=dxATjQ%n%bhRebE=hs#`W$BQg;fP0
+z|6F;}Im|TnQk7uu$z`1<D^&#~ujf`M%38=rO+s{+!1B_drr_RmXbr1FkZ>smPz$T~
+zPSCV}S!Z3ET!4c!N!E%m`0)CBj^|_K918JTEUz458wBog?!)T9yA|QY>Ch?;ZU=HF
+z0Ve-t($zw-TN>3A48KUKVPPx;qgt~w=|4K&;Ip7*ty%V;9Z${)$0ivb)|4|#g^DY@
+zr-YnX%2mO-CVyCGO+*piA86#r4ZJFd*PKPC2#%u=mluE{nA@#{^Glvu0^BHv^it5E
+z2!{a0^->T9=5fHIE9r4JT840aLZ5KbXRWeu?Z^49B*kv@5&SK{A%{KdI*08(6MQC+
+zvr8mrsN52c18eF>nsN>xt6}c|lrz3{3x#1(Ge-dp^E|o~{-pdZNK=H%4<gk7)A>l0
+z-_@DsnPS{WB=ejQ=L=EN1hR@SS`D|h?t!@gKZ->>KO;9M5W6Lc6GTW8xB(46y`DZ1
+zEo-o{{<v-Bw)=^u^jL=bQa@PU>UM8u2>l{b3*0Q0J)#I3yeRjcC|6(OE5a5B86N<D
+zC5=#97=JA#Y6+gd2zkdbv>b11VVqq`a)#X0*c$_W;`g2t@fSX3YW*>k;nc@_5gCZ0
+zkbg#L3YuTwZcGp^EhV`?q`xCAQ3Q?8>rRkR4Sjt=HaYU|SW2#|ZM>!l;<PVJHsRgb
+z;hw4joO@kQfbq%Y^q^FY%)E>E4Ss(9dTRET<v}D1<X1DM(yv>x4a?)NZ~dH)LTS$G
+zycD>jkbuuh&XB`jcv37O?<da%a<~9LjK!EQol}JSUtsP|U_H#st6yMzCTPh5ITTXw
+zHGtu{=&X4t!ZI%~eiMwtYx0Wl<rjpp7K+mn&Jn6Qh`fy@6#rzr<KSKjfH2nlv~qz0
+z4-(p25X6J+_96H1I|`C@@QlRftrFY!b!J;1*!s_zj}JGuocp;$VY`Bu{-c9u4jw$d
+z+wW=T<#XU~5Os0qwQJYT{`dcyy>(q-!NiU;*A?VKta}@0f(RP6fi|)Alqkl`8Un}V
+zpB4(Qg#-up7tYSkW|ig9=fntG_{P-!G&zQnYg9Eygqr64t53+e+_mQS9-8P-BtRcu
+z$da6AyAD|z=({ZWCgklQn-UH|Gjyy(^IpCsl|qD_ITu-biR?$?YLFl6D3y1Htq_Uk
+z>J!=VCi@^$7C{Qu;)W2>@A^8}S}<W~Qr1Fq3eL^Tv}UZS>{s1gtOI|>4V^QUl{Zr6
+zn^8To<5BM7{QcB9GpuH)G0RdkDOUB5&?uIrSW-;$CC*m*0kNcbRkd3F`H3l_J`v7f
+zCguc+^327>a9c7Dh1#-ui25-L`$M+`)ib+uXgeFlf*hzWW+b)H{Xuce((DGwapn33
+zrf)V)(MZz3mLs1XA%Wi?WJMh{<Lxlol&KbK$Qmb-M8_;RFLTzVvZTkXIJVg|Il(m+
+zOeAfMDq|j@i-=<OhG#S9bHpX_Te;V%wmDT|>`hTw%)L1@rAB$K7%?fXM<G%=D2us9
+z2N$ub>QE@lj9UIMYhS1w_bfFb$5K=$w%LaBCo6zzPJby%k~TiaDWrcBrAYC;sQKpD
+z15h=6P|`#s{4G=8oUtD=V!4P>WcUxLGv<sxpiFv*Wb-DzAC(;qH!yi-40T9Imz8MV
+z&Nro^iS7qO#kj3R%$6ocjv75l3f{&2LDY%Gn{m{0NIN2TbH5QWBEk}8R}M)&QjEJy
+zEPsSI<tXJ~cSI_1yNHx6!XjpI4pu%=hC4^3Y!<#{;!Mls1-`5hQG!x<6O(O9(SgM2
+zDxwH@ew~PW1Uuee8N0ovHgTDrA;#F!WXJKPlO*BOTqR;LPP?mIf*>ZWW~R^$MHx=Z
+zb~kznajA^m<04JqxKC$DG^6<snc_Lf5r|A@Na7{<5r82{Q{-n!XOP2?HH-99BRMqq
+ztGav6GvaeaqpkJNnZY@8lBy^-Eawz!E3v~|e`ljykO%c!cAywr+W0(2n;u5YH=jY_
+z4+TXt-Euml@QU11)DzhqsBxM4tDFV8g9KiWD@r|)lOW38Y;4WRqPG!wL~S`ERQ)y1
+zINd>NT)h4gr<p!Q<i%{0#Bbvsq^_G=DGFR!M~JcyvyMV%Soess#O8|}D%}B<C1dQy
+zS<Wt(6GXDS#VDKj2Gsa7wC$0HxtFN%rnDUbGuALsHa_bBbdElV!XM|#5E%viX^%aA
+z=)W~tbg|XVFMNH$s@v=6%vamMi~)Hg#rkHZ*Z9}1#Nt<$DpF<BI=-5<*bE1q$!3N6
+zS4>HIx0u5+^V4qM9XT$NWz%PU4}|XEN)ky0cR<@sV^=sYv#k_eyOYA7GQG6>zlmBs
+z`KQUMK_|w<{JyS7(d+#313~K4{?|nT+9tYbUP{#dXGNY;Wp}KMEjiLGKVos69S{xq
+z`go=n-0w~-9(J74#Cw_8pH3pB6IS+6`=v`}z@TpIJq+z*QHh@BB=y>K@k>3Ibw$Gq
+zm|lKrr!8NkcdzWH_J1!6xN=6<doGVy9OhynWg^87p!S!Pod%a~fnsQpO!d&_be<Kb
+zlKw*!E$eo;HeK!kk$H|TFXnKfHC4i0Dk=~3Hv}4KRt7wvex}=slBA3;bBg;ki;2aj
+zJ*Qk_y_%g)TTMu_UJ+@;EUnt~#MN*r?qRd_eO=qq*AtvOEEiFS<^ImFZMc|bxBI%I
+zzxRTh-<c9T@~Rnb5OWAjUt)`WeSh3rmv)e%jxP4sjX6N!spk9ZHcXzRvK{a}ysVKE
+zJ>r@$cC)a8nRG@+F;bG7OT=sy)-t{H&Yf;0rQ;TlP}58?TF?nPO{#eh|1`D#_k(~e
+z16^bc1y;}OXCvC{`BIt~L5y!lbugzKf|OZ<Vpx<gj_GyiuhWJ(=^9JER7N!3fwMwq
+zOP1X^hMc*tYr(^aBHQ@~sQP9EO-P+i0!v<yynLw0Ns}zqEW<xR#l*vAoOwDHkZ$~C
+zAgi!$?SVwu^wi4}zvtu1c0|f@-KjiN!T|`+5+N2l@qb1}c&Sp@q7H%3=V54@IkK-d
+z-Oi<_y=a;NlbIGdgcm~Jm9ZU*!X3I~((B{e+YBxOW!np8;PdmDfmfFDX@@HZSoK8x
+zxH9$7{qM2&bsMr@SC#1o*-}T(=*zoyUp(O1ZoS<7=`_wJ8{BbCYDzP7KF4Z@K$`VZ
+z%%Q67({ArRqhkTu>Cfr;Qsa{RlRzS4h{e0*r;H-Uatu-U2i=;--%w<<JhQBq>pq>n
+z-S<q#4UnkrwHmaEr3pATG2qY#Q{BLp$BUa;&0t_IKc)Zla#uX9|7H7KJSpeZgDCW&
+z(=BnRvhng-M~(>~(1p`o%une~F8k}!W6$+Wy}9FDcb2nA&jkW>wR26fyx>)(+6$|P
+zJz)5y`)5L|tKNQk<?<A04EHU@S2(+!*WXe+PTG1if=nzofXfE3007@K(0r~D_qG~m
+zK(XE^9DD(1X#S!Mzkppde~~;dAf>5X#+?hud@7eVIAWg3$f=GupxAoL2IJEPRA(cj
+z0TB3=8uzUkJ4X~OQ@rPMdf3(fA|{r6Hu+y<vn5~2`74sGCX{vhO8N8xmMVp31vfT;
+z8~~A(_JrW(v&9qx!nF->X#=<dfc3h7$ft5K_bwo|sa&0^f028Zd{X7Vh?6DX;bEE-
+zY;=l3E?iDwc8L<KN1Kz{u{&JnbEmyit2R+eYLo;DTA6%CF;IZbBQIcG=2BFTKGl3b
+zdVCAv!pEv@g56X`Z_VKHgd4TrWRBW(md}XMRuV*QG!h4!7~}c{MBUlsqt_tMO3Y!9
+zr=>hd^DZ88kM$K{9R9kzo7+JoY%_M^=w#<hG~3SMSicx*wHFaTj{aGUXHrcQ9=ur9
+z=%^1mH198({>E-08<oNo&n{OK?0f(E+uHqZpD+KJf<&N*H<3vX35Oxd`}vh+A(`n#
+z%GF(Vuy{M84%9MIl4pyoi}97INnq(tJ`A5Y3)>%)Vgw~K7>~DNwOeMRyBNd$gEfN`
+zYHzk%=y%OYlin5;=UTKYJ}vi2tiD(pgK>A8Hl?c9><6E$=N#R|_IbZGjWK-poAzs(
+z94|!?PmC4+P*=jm#lH7eQpIV~d)NmP=SJ0Iy4ZJKk7)l^m*Z8X&X0o2*RMBgQ$qeD
+zrA^^|rB32Z@2|O~o!kK0%q7F4#?&eH-tg!y-Ur&|G{&plrJZh(%O@RD8kio}PD^Fw
+zcUp5I?c9k<XRLNaYI1K;J4~(QB8|A$sHmKLNqp?l5UTnatQIgRf~e|d*aM-*xz)t9
+zGgx&f0aE>ae$j0xEgPc<wsdtOMOs+MEI)(WA+Te06U*bq_e0)v7cs0z(`C+J4n{sw
+zi#xNi)5kJ#W;i8*7E4DAD=ti7;>-zJkRd&VNI^B31NCGmMvx6pW3tWJiUJW}?CGCj
+z%L&l*2r*=PIEjhgP&X-VErXdh>H=ZWlJ>;RpM3qKL($9CX2^8!Gwq4FSXidy6~Iu+
+zq-~jD9RC&hAnpG8+hy=$gZYY{^1<5i>GABg++`JNha|o#72nj|bk35}Gjs3P;98^>
+zX2tvSUT1@q3d8E4S%J1zrU90&7TNS|O+HmXurVxCT}^)AnyK^cdGT_Jvmm^Vl0B8w
+zgY8?gn9;e{(Z6;SG$0JW6KXhzb8$XRMR^u8#noJvKvxT&S>F3KcX?22w7kD&a9t61
+zcXUorsy%@xj;Dp^Th@~3f`d9H+6f`LJ;7E{Ug1$`oM2bp4DWqFALYnubOBp;{s|at
+z`EpMCib;pP7P4Y8=c%mIzq;o7Bb<bbNV`w4(qZUO^FKBB=}h4N<Iav$9$f!uy#adn
+zt5#b*13YX%dGxK2pi)*At1mLc6Ils?cbqJv<PN+3;5WR``cSU0_`a`ZkdfjOFI&b{
+zM7y7stWRR9oAVTmcGr`b`DaK6phCJ(3?svLrP^kTOW+N-XQ-p*vKtDRO3XL&M2&Ce
+z8&M6-NIIeFER?9MnXH_V4A`<WbK)h(#enVoEhiq>Ox$zCkl1ENPF1#!oRLWQBj#AP
+zjzXg$_x4hZ2~^?y6nao4%MYUFW{;v&WuoGk$LWQ{!RUp3p>C|_#KD+_gQ1#1S2=w8
+zJz|Gxh+^aBASLRLoNr<{iKw^C#OwyC@m+jPs*t{$s2{zsVXrR$d)>r^Bg(o&%`oR}
+z2ll!Zu-AbtE@xoLv8OkQ;bed<u1Ajo?`K_5ha~AU8}>Q@*y|*X&`seFne*A=QurO*
+zeN?MBRn5>pgK9PwL!I*Kx$Mv<Hl6=rs`l*8&{F?n_fMN_7t!v}n0?r___Q7f;QN&i
+zQ=tx;wR;AOWVI>gD&pE5p2`oqz|%hWPvgICcYU6uyCsd0<14M*(IH?4M3zX_?qPcY
+zVfGl1cE!i*Z3dv`bgf{UFY5l<-jUReE}v|G(hpORV|^Q==RM@&kU+`2y-1c$pafSz
+zE+OE`caeN4fwEEoxmbbZ9psYQ#t3&2lqR(?_|Ae-5@=Tmxex%R_ab?-B0=TuBH0uq
+zK8s`@Q0TcxUQ{G#yoW{=6bTvE7s>k*D3`&FD%%(rHDP<NMY4t#Y=38w9FRbX)r9pv
+zPvTx`!Fp|zI9rf(PvRV$1oK{?4H+8MRU|YFOyUNe1io=?j62Q(-<&pv>N}`^e*)I{
+z=Hg2Wttt4Qyziun<R33n10p+Zo_A?ZLC^9Uv#OH^11!UgJ&%+tq%MVz+qi3JO|1~~
+z8ugqz=R7ReIZyKTV5*aU9I{-m82)PFQ<=PO53=1~O(O3szNBg4mtymxhWzfKo8LqI
+z4vG~1$fQGxB4y;pJ@f-GinKPy1F#~Uleh>?xMpw?x2_4VCbltd>SYK^d+t<G`bT|M
+zi-)@JP>LwSza9KDy7B$@tA?$Vef8Ea{OG=eS;T?NOOUx&Km1$08#Ft31JpbF=&hS~
+zb>AWU_1$MR-aexnriWJzqenK1zuu|B+;Z$}%E<dpt4WS{oA*5eT;=C|uhPpHO&nJw
+zusjyyn?d5a7!Rigpl==Npr!_VsY(73mKtEhuz9ZJ*y;Z`Z%=~e)Tv&Z=WQ9?g9$q<
+z*HWE3c^5(A)Jcx4S__wZm%M(^vd*d|d3`5Hs*~4GS{mL@X+xLQychYVHUB|(qn)=F
+zJ~*?j{Enl*>n%u}1YR|5<<pLWS$_BQ+__jlqZ(-RfFi*K@PwKo2&PZsk^oix6DV5M
+z(5O5p`8tWS0#tp~#>fJwCqN0HbC(vp`nru_?<klLOQ4hj7D9oF-btJeKuu|5xC7Kf
+z2^3$DD1roZrI$d70<1&>4Z&S&Tm<u$pak%9IpDE-i{!nEgi(;VfdsJi(FDqTB{b>|
+zk}7Ca9~9yi$s&pbL%_iVXMxs(gki=k?)bXPcf~4-?$FIuGNg5f;9cAH8<$w~kFazR
+z6t9s%=JQ7V7^uJF@&!(<0QKD)#ciOt`a3B8xY4W{6qjxkcY|Uz-{b3}k^uX`<Ob44
+z+YcL=QIPrnDQ(MI@Pp_!Mx3L-w*Vwyoy`&`GC+FH0Wkz?lmZeU+I4LVGa!(+7RjGM
+za&wVf2okV%#hUPg>Ndt(uy)D`6gME#b3iIvCvhi$ICf3qszA~KWDwMEO`wc{rK$r`
+z38dDNIu*huZAxRP5O%mWi^Dr>1q;GI@2?rp=Kr?_*bGesMOQpK9O$6TzCfUPMm0Wc
+zv=Ik2SV?V41hQqLO#*YNfu{rPjGqp`n88zgPBR=nOz}QofvMAqmC>e%Aj-9ZvUO$9
+zw_uPu#p4VTyBLO%UKeJr08+k#M*R{f;N3jFKtrtp=>!_8x$-B1PoV6rfJRLdD8g@(
+zIEJ%e-Vl@kY#yLEU`({;OvFc<=NM3dRV1vF+ZfM5Rvn;&$~c$qUzbL_R>|@;>B9Ms
+zrGTCd{l9V18yPalsQc=!kA8OPUL!Svt9&1DRp`<UKNzvEqU3E{{Q_45_~Kzk&k*RP
+z544-Rewy(-HQ@Jq(0~fAEk{8`&j#9UfcBLP?&E4{paYm2h>XgOMY1IzED(_MU`okt
+z3~lmHgrNzidMuKA6$xE{u)7i{Q%(Xc#w1P*GysJ2PhH-NJJJEj?*^Jn0=k3Qo=u=A
+zxCngTs%364N_-n*0mu~)2p6E58$bzIG}!Mm5&^Pc;T8bj0Eut`WEKZP^>-UX(MeF+
+zGKrIQ>EX#)p4JA#+mS#q25P(m=)BrCMk-h|J4*v!LX%xn+7E@I@vcQFJN8s)Y!NS@
+z(X2n>w0q8M)1LCHEAG!73c__dG_L(Wp*>9Dm74dRiUtjSh=TTs@}Cx^bg%5|(D>hl
+zL~KdBq$uTVqP&C&sFuJNDywf7{0VR%)GT~{JgLAxq*AEj_1%r5-yijai7Q;+K^@!x
+z411m$k&?S$DN1k{OOt4J2LR5h*O3Dcs$=&<;<L?XIWil7Pynzo*8n!*Ux3Xh0042^
+zz<#oUZM%VeXan5Y0E!zxFBtg)@|=auIkbLZJQMo?-VZ$(@*ol<!OKjrRQM1y=xm%=
+zP#mhoP<N*#0Z)-@Q#;mzQ%_$39>g-8&^<vSzz$K78keZAWa3$ei2AX9hk%zbkm_=V
+zywgaoK80DDGb)iK8bxHPn~@bZJSjcmQc>@ipXvD$_@mr=L||5EheohYh+4%0bH{>p
+zg(x01F$dm7CNnQRe$I!q4OlpCIkX*(DnTJsT3pZ0MsZ-vM3{O?j;jD$Eh=Xn_>zF-
+zLW@=12V6+~*8drtHf6@Ntq#*?B=IJ|Z73V9dK5aQOKD`b=IHDY+|)%Hm<ReI7l_!m
+z(}7BnJGoOtM8?2^(@U=-CRr~xqOxS&_Cby;e`1mYd<0UU%Zus|vkr$=rYpH~Y*-p%
+zI^ck2^zU?nQskf9oz(oIu-E4zOk@N{D~0{^Z(@|Kd}nI;@~d^+i4^29TcX=$xho-b
+z`V3YFlA*VrGtw^#n`v9sH^pk!P@LBCndFBw`Ni*Bg?UV}20?N0ivz3)?e#JVm!rAS
+zbK6!?$qXrc(vmq9*=FL-iJ-FOJKPEcSACFup|6+;$rMTV&2YtIM2^)))QQGl<8)+u
+zK8DcZ*rPQBv$dol{BG#m&2`UY(&KrO7*@N6u#JDGQYgi75hbWb<~^PfV=0LdF092o
+z_EdnnZm##!%O#t)@%K_0HJp$fhJ0jGEJe1-lq0JNP9$h4SdM$1iiv~Ia;$RnC7%!8
+zf2~FI2>md82=b(pP_P*H!T$&6^-^qy%w#p(4<6}wJTL14$+6I4h!S^<h^X*`sYzzY
+zL5N1DNZ_UU4pf5epe}W9p9ZM_YYqG-9cKpR8nuIrsUA6VC{^*XGn`OX9B^FwY1X3a
+zpD-`yWJqRh8gu0+(zV2_9{H(-db9M1>ZYW9&=b0^nCuzMLAJ#QE5%WDbJBib;O9$b
+zZHcM}u4meIBZc}H;BhvTRDE<szVQUGvuTxILI@(<KdCcjz#ny)PLsf&;8qc7G2{Cn
+z-_)>vTs(aB`Kb4=K?)KkUb2Tq`SvHW?nVzVB5ZySu15dFK*rz-VQ&EUF2N6;Q|A=E
+zt8qs5OxL0yws(55NjzsN6gJ;zA_tn3SA4-D6}MGa+fu`Z(#~}GuUq6y)e1f60pDT&
+zyQlpq*P;jx%_I@6j(O4}JQn1H(UFAnmiY_uIOm>_+%{QE4b*xEgd4zqqQ|0%B768K
+zD%qTH1ahEbQSOpW=FMqun!7X@nCP+>>{n;lDeRYL2nQG{(I)#Cve9sUq^v04aIHB$
+zPc;g+INAy<v71NA(OUB{F=00GkJoIX=;mTcMAbu~C%LhJ7P3l>+rR;5aN~dzPEV6i
+zMH!ocvr3wjs(92ZrcAbll&Y-pMNS+&4K*&o#{q9wkKA|Jy*nEvgVF)53{m6K^$EZQ
+z`-`X_Z(<9G<|c-dj7nub0p}Sq5u9hd!Fh%p4bC$M!Fk5&;ldw)jK*R()R-k_Q&1{6
+zt3;siJA%;Qtg@g1&MFwHRkVo($2Mmjg;(a*0Tm;=T@b{ICX(Y-4??@?F=AG+J&KJY
+z+%RIuBNHs=3SCLUMA^WBa~$}%XUxHcV)$$3j~tX31$->!zrItQIBmJco&1Z`uIw%`
+zSySLU_^;@jS;-5IvWmrkmP%v}ngK7thS!uK9hJab&c-PS^jM=}B-yBVW{4R>4cfwL
+z5Tl6m*+d2^ip1oZWA;I2EO9Y{MEHN03UpZ%EWy1=O*?}*3VG0zP|Z8}l2kz8i=5kZ
+zD-<jZcuprCe}$t!r=gm6@WrUuNB9dIJGu@Emf{uz{{#LqN0(lXg12%rh!nA=D;)6p
+z4mp7vYlTP=7dA7|XK>s9E5yxmd=Dxn8otK)zlIh7Guv>=vnh&=JHq3chB+W2qEdg6
+zV+_0z3~^y1b3I2^0>7P4A`(!-OlEvGMM-dsD@#O2!`7T!I!1DV=~8HNTsCxP(0g!(
+z4Hhj&xmj@>S$uG8)!%NUTAu?>t176ht(h93o~+}<kmw$HqrC=L&WY+Z`U<6t?jeRj
+zfwkXF{~^ZS>UKCZgry;hQ2|7FML$R6Jp@|Viggoc|1^m#F}I_kIG~N$B5sF5u^{BL
+zZW=F&5f6XC6y~U-@Y+B%i=VMlh}_3LNfkH6szKKQp=fbg+E5sMPy*}>)kN&3s7$7L
+zwx@*2P7o4m&GwYU|H1X4#+%dR1p8TYVw7F{tyEm!tmVhb<4A$k7jtE?y;`BtL3=?U
+zZSdvtE3-i*qiyxk%tgA47*2G|@jfO<o|<8%FK@KDzK*Gt?IM*WF?NwNK=&23BAS?T
+z<a0))R3G}OLl@}ks4VHIr_6ja(xFf(?k~WaCgz-LtZjfJ!C`;9!DUVl-A&YLLmtZL
+zo|0Lc$1Z~yizg~ea?BirR+>a<#09NTG;rDSVgRqh^cg9WO(1+0lPwNnCm?DzV~*Vi
+zZD-{WWn-GJawh0Xk|0Q;MofCxe2vouMDo9Z17vIF0qAa*;Fm}CvM4QHdpmH6ouYP_
+zD@ozSKrAOATV2Xs+HHU65pD`G%`^?AO3XS4-O@!jF>U)JxkRj3R5kNkPPv@GnKdU$
+z+H7pgaiUj=kwl`JnEGcJhap#1hA3q>Uy(Xv$~X%7(#a?jG=CeF{ixZJBSsHF;bl)!
+zXr#9^bEzJ7WykFD-$hH4-mgq#3y<pjpFqK<|NB6JWe#b(-~uaO6uVXUo=H1{(SQP2
+zGom1*(8$!t!EP6vW2K2=#f0yGi;i*>@?s5&Vnu}YOz#}VcEM#9SrjWStYNaxP&A-$
+z7EhFb=8FK&8)D9p&B5%5Jh0(b-2(i38QJ=%X0h;M=4duXUJ%IA5oK%xTQ$~{pcSgd
+z-9`;DWABL64@zN1Wb>q&W%(*po;iBEU>_GFhA8q4sj{X79q0xNEsEJ9%w;0P{}UGQ
+z#d`_MoAofkXEClBBxl4syW47SFJ^E$e*jVTTDG;|j#jS~u29-X1buQs-@6nLX3dZQ
+zVb($rW(C`uXy!iPw&@nL>YdIQK&}i<XFO*)crRa`BY56jzHGrISFgQYp==w8{3a*7
+z@7sJ&SpHIv5p)*WZE!eLpLLSjU>>3<@L_2aJ<ak_<0AY^)CjW>g+?W=6Ntw3?1<bK
+zgacy3lZ!kSgr!z(SXrvv(?r?c>CgQ${d@mcNFbrs@xHG9d>+%h&ELWddl;Gme3m5w
+z4A>vlYYi(DGhcY&G5(z%feh=LW>5^@ASK<5Qsi>qH2c4!4VfdTjR?l%gm$G--xxCK
+zg~0bu%G&^?8z6Th6yUxQ8i*Na{v|jMkk(u+`M7ugB6mPi`7a?$O-OeBO2`0-%U29`
+zBNPz75e2xi5e0DDhysXhfQIVTt24a2ARd5}ZNv;fWMLgd78oyJam`=YyBClc;NQP>
+z0oiZK*Lcq_UXHH@z+xlU<}B=A+p!TNu-*X2H-LXBeEv(I@Bdp=00JMBVgIkFfIBHo
+zpavZL#UIiVRynt;o0#QyfAt~m8{z8yRBn0ibVE|D>=xN4k)bGonjFo5<0(q87<H$`
+zhln|>mx$}g|02lNyK;EINlQR)_^xBrgrvJ`+l$>87zI~12KlZlro8lKghGu>WbR)y
+zPdXX}V#T+pl!saSp(~}7oP0tW^Qf?a%GfS^Z9KBd51Ut5EU1WLrtCLnoMCT|#BlA1
+z=!ebDoESRD05vIC7U%HJuBmQDu5t+XM(1YMabN-#)cmJhfhY(Vk~W4yIRk>~$1VB3
+z%WcST*aVX9uy<``uyJ-gc%nS4ziF-)`5M-bq~{N<uX|_RbX9^uR)xd|`EnCj*Q!!~
+zK`?04HV&;JjOima0<qT^p2H3B2&<q@1kyC>Y{}I!YHyiy40Zb-l)ZOQQ(qJ=s-hqQ
+zf`T9*pd!5qNG}l)5s?mpARr(D(tAxJ9YjH-386@nCRKV#XoAury%Qipgb+e8jTCNv
+z_s*O5=DzpGyEB>0Sto1nti9Jh=ge7a?eAl$ciU*>c0lwa>G&4$^y-!yc75jy0Mz-p
+z-a2xI|JZt?Cc|k{T{w9NH`Z-dk~?fS(N-K^VME;E)?Vrll!<yDk9tnLHfYG|Gz-gZ
+zJ58?38Lsv`KB6O`TM3bAVSScU@~M1=y`+}T#%OXf`PA<pKR7ra3#uIlmo{5lL)z2Y
+z;k~6v`n+NH4&52jZV9@q2Pe(TA9N0)`NFg|ajcrzVc(+X>3I3Q$fRN3FosPwR?Wh&
+z?r4=eYrlK>ulT-N|B$Sr><2gmIHXddVY~IG#BG2TgaqfNrNj$;KX9x$eL)Va<P<2K
+z7D8x`9u>^3aj*R}ujjW5i(~-|^jpYu$Hs?h8f&<mKwfU>anlnlDKg!EOhUM#jD-zD
+zzg)48<fCqc&CSRkw{X+4<9+Wy5gZ{&3s)F?T{`MoS`I=6yZHN?lGqduk_Vr#Ql2<N
+z(6mFe*R?~fgodJI>g%P%y#9m)&+mwU9-k+gvmDB?3#E*-7d-&$G-KkAPw+ttRwqny
+zu+jmmb1viB^i}%H%34ALbnt{X4D1Z&B~}bZT(3*hO<MI?r(?O!_p)Enc)eae1HQ<6
+z!jX|IK*pra>(c~ru3u?s7G%4A3ZYD-kVl$wjl~fi2UC-h)o+37jDlCPm}mAy+Yy)@
+z=XKpAE${Ww<XVLT>*OA%b^c_a*Lv1q2tTpSZ2P!pBmmga*H6;WRN?R6e%^}0?rM5n
+zL}DAG+}A0<PeMliX7g{JVfM4g<Sll#d~gM+H2N4z1HF@9eLG8&DbVntCsdXNsaSJo
+zHO2{8SJz~(Z&UN}Bu<79JJ`kBAHgxIa1cG%#1@q#Lc1~;$mT>Ee8LvR-MGjI(rOH6
+z1Zgyq7(qOZ<&3mDja!V+{!cWXWSG}QJ6*5ZXqcf_Pc-<xS8TLz%Z*TtLpe4lN6uxZ
+z^~fZk@49{x)oVSta#WDVtzGcSF@Kn%vjpQ>q0R4J4NkQ4y4zJWeZS^lCvTXE^K(X!
+zM57ratxYu$lq%xjd{Ii6Tj5|aJFHF&lyYnD*(g2M0~_E7`M=GGSvY2-oomctqbNCh
+zvQe}Q)d4r5eH^WmO~CSa>@8ZsE$MeY7fSiBQ$E_z7pLg9%E9YFbJlLH#xK#KqH{lb
+zyRM>NuWKdY?j3w%+&<RIA)e7)c<D?Zbh1dH*`S<C+!n{E(m~^YbI~e7LnkA=E_Qub
+zh+=?cEUYqugc`|gQS{dp_A8FBF4{fyN{*Hj!Iwn?boVYWfRh(S8KDUaXhs@iqY4{E
+zz!}X(0Xp-uM%8RZ5v~HfE*}5LI34Dv6#Zw}ZMtP&|CeR5j3CiQAI3F^4S+$&NP50^
+z_^Oor!Slh_{6yT~HZRe8aGRf4Fqq9p%or?GIp9g^@mlxXl%aZWqFJ4=SM7Y)v7F@I
+zUKP$|=XJ;DsdffYiMPDi8?mgK)wf6ny0JwZDJln#1}ThdnKtjD+r;L^dn2#Xy-yot
+zyiUCN-`EXw1GV3a7J6RfH~co(>vjd=y*|&`HQb98!{<i>O!ll8z~i4LS_TpFalnUr
+zE)0lAd!7t{r+Z1!WWLGZk-KBlxi&lu@Y{2UUb&mfQ@w6iA+GCz(z=E!SBpF^cF_}P
+zwcOCRL<E}?;fmd>b#_iWuk|$BP4G&8(H&amtvwItQMRZHjVQWT4Jn?<^@?#lE{h=H
+zLpZC`ax&0ksiG0td`~mg-AH=1w@X=BNM)cu@+x4SL;2&vHAYZ@NFiD#O7_r>)yXrd
+z$9o-nb@}DG(DThuO6v5)-F&b@<1{NJ$Qi??IeYZ@=6JuNv}OuXB%$GwvoAmKk+VJ<
+zg=bm#ooJBn^x$vyJNTskd}_fteWn~a<88}7d=>4x&XAXvp_oJrPiVL`D64#MB|A)3
+z7}Rmg>s}+>y>%jmkYvQ0ix87NUIs^>WVZ{4JgiPNNwx9^E!kmfcWAA*ytEqG*`kCS
+zWf-9!7TOp=Nj9ag6W&aYDaaaicifUrUr1&Yyh)!uCXTML-oRudm4i#p`m8HC>#7-S
+z*!yF5LSWI>92&18+)6}nU|YTuz+m3>u(vjO(M1N|YNFk)@V{9vO}@q(Cf{hzP^7b`
+z$Ka^D=gk1lS%_djJlqRpK&(wo!SB#M+!`zTt6Iy7<vyQeB!9p=n4Pz#rz%g8iA_3E
+zZ^Zj%uEJVdz@F$6C;G-8f8nX=R=lsgJ-~~fR{Q!P`9Dc$)xWrPo5Jg{kz=QN3O(Y}
+zy?(0gUrxXE0H5&_`3xx(a$a!4U0Tl=BLfQYA?nRKMI%#=H6NVj|GSqI%BfF3Wbz;D
+z^@fA%n-9>^n$-ol^WP6tH^*6>#$}e<Zi8ZONz>O$6?dWY21O&~azcag;1p{&%YPS0
+ztc@H4AaUV7y=Tuc<%2pgjR`BU`R&jmFXPkxR|8!eQI5Q23U|9TW>Xh-7z-cmJ!OF3
+z%=TFCNnUkXXTSPCR~~t>H|<J|@`1X?Oq-!%S;m4lqju4P;eReMchl{9_^m!VO*Et>
+z+EL%DBf4G$A06#`2M>wXu>ae+Sgs7sTgYK_FxXRJ2%V}b3M`B+G9lQ0<(Zef;kI^_
+z!Eq>%ou8;&%>$Sp(s8!Fu6in1T(=P}4?9In^^&NR{e)0wB9J=D8YSJR#7Glu4E^s0
+zA;e1*8*Jqxq6S+bYm>=%HL*wYAehwsy;ltESNUJ9Q$R$CgiuQo&>z`V!w;ND<7cC|
+z6a`jq06Xx5Lwxk7{s?Q7a-$lfcG?0bBaO9D&Ir5XeWW&^GP}*gY3IJq{@*p1=A{5*
+zAc`LjvpSh@*u7qdb3`uoI<^d+@*TD$G^ix^xUTzh)_m_!uGg2I=;gm^c=v#N@DnTL
+zq4O#$#miZXO*4gld&0sNqoA=#?DBDJ!mVM3-q6g2NIN5cJvBQ)#cnRYdn0NaC~@T5
+zpI{_)EJK=N$pRSf_pYA{Zaa9&g7w&VJ^@C-@vpya1+xw-+ef~Sw{xH~mDW3|WzQGn
+z+px50GKNa0@d}J0d4?5Ou{H^jwZ1C?ZmJ{7UM^6fHos9!SH{bYahVnT@wrj&5|{At
+z6%W^qTAA(-@nX-3%-r;1aXTN#H`u5<L2UV~p~|8`>wyK$5M%HzzQ|_-BST?jF`;H)
+z78b!x0_a1r<u(U!(<;BmMyWI<faMetkFp`Uv%r@6={4p`+@RX{WsvVxoER8x?o=hT
+zOVB@SsP~D!Pr-~^(0fCk+hMpLZ5yV=lGbu?!Y$~w!6x0ELGPjcgle|Vo;^?M;AD9+
+zdg)0x@Ss6^f0raeQu4CV3IA2r)Xisan`!s+I3;l;;P}!{hXr!K*EQvXekjl7IPpKh
+zO%^E{LF)~vQL=jRF6!5|Ld7Me3-7hKgc}UYZYWo?)p;au+S*umiMI9Qs*Bs9$}KNY
+zcAM(l1daJe!3Ey3bt=KBf%arYAn&4e5{ZHO5k{k(kP-M$Ijgsz%JYy2V!jAmU#*;X
+zaw4FKp;J$z<|kvPz6ScIXn_F6>vm+^UP#liVrjwZSmYy(#GhaBNg=6yBPS}m5{~01
+zjTOKvggd*mTR}#a;}Mg=8@SK88@MQMt>BO_U}h`G)XpT2)4?$eXgR3G-sS>(M&BHv
+zTwS|lv|M>o6k(CMEK7N?d<U_v*eZ1rF0*$X2RrKa+L|@dkfYwns3*g~P$hqDEAq-L
+z{xl=-v?qW9_D>zwkdt)`cIXCmAD{SEkidBpr}bqR_{;^nlT+V<99sl!1`IcuQ4<W8
+z-35Ewzr>mRa|7!YWr3%Asq?(K4&XVHd6@EF&VVAt=%B0j<Rqj@^M$}Qvb_7pN3k)h
+z_r`JI)TN9l2iR2o(LJdpBYM#t)aW<+HlqDN9d12D-Rh8caLj`vZGwZD;ckyn7X4(}
+zqij@0sfFZ5pz6bHR2DUN&l|iQgOG~yHhxFO%I>C-*`ryps^vlZJ)}p%Z8t-o79)}J
+znd&`>1v%U|*09~t#;c!g9H&2@cMNnK{rk{S$`M`3S(=}^g&fs&Enbl~9^U+9sx!O>
+zWDL2ul^Up?Dpfe+ALT;|t8k$;ZytGYYVk`RKM>`~%;L%B(of2#JT`!2U*kITS$pDP
+z_H)O^=EdXF#7keNPF)O4O$|Uk;yJnxF1VH(562v;xs3j;8(UTuYx^c0n%7oq3%i|G
+zvR$y^KKf*(Y|B`BtQ46O*L|}B`S~cILbw1pykc7U&2OyCREJa~-pSZr;S7FE2siA#
+zt39esp$GlR;&MB-)Mub5h0XUd*rTQuRJ@)GKVT@Mq)~uJN=}UQCQa_R)<r3G6#C21
+z8q;oO)0E%f_&x3TQ#4Y~1Lc2~QpiizmOC3qZpP3O$aIn~5r=l!9n@&>oBURL36RUP
+z=zmJTTcz|U!IR1dSABn?n3qDTFaJ&3u+%o0Yh}52kUi<qf`rt04|`vcYfL~+^oRI#
+zxH{)vweswOv|uPRuMa=HOu`y_cfDFl$hkfcBKC!v_JIFq3c`B1p1TD2;gQ|0qid?K
+z#QtIF<dCRMt6lQH!;s`=`x4i#oEFTd_VKTnkonr4RgIrW_gO)x;MV?iVak@Uj5Yyz
+z(X;dg;^S7A!E)+y*Hp{)KVWKDco&B^&(&p#dD7DI*KN~od$EBKZFy+p=T`DWgZ+W@
+zNe(w_h!J+>bd08RGWuAf!tpmHCwoof^CUoK)gHUrk+#X(KeF0ctrU8{%5Us*iNS^9
+zPoI8=`I_!@1~!q&QQEcj>6>4DgH`IipS<|v0()mr!8hR~Q^4I)Xjfat_>QN|@h$^O
+zrHDq*?=VzXvwtM~kNtHRh|gr>kZWjE+egS0pO5tojMQUE%f*CrBV117T!57yz{je4
+zDyakwPv}?yOPzz$`bn)rN?3L_HB9vGbs(E8;p|0JQIYSLtzcWw;DS=xsL;&BF&*!Q
+z-sCvaJvR|`-FNCpVyL(7N5>!kq7T_(>nW6BL<rCzB~Vf3wD-i?y+$JC2FM#}=iP;I
+zS0NHmo&|X(57iyrmo2B7(zDyX2yMt4m_5Vxf}V~FT<<DMK{JDw)9YC%c6h1ARipNa
+zmHVUou;ceH<B<<%28=7Mt?vi&!lV)$NlG~=_vgqk7{VGH>%L<$N^Xu~$BW3YyTdu2
+zl^D}{=Wo4725M<MH5AfBg^wIUaf5J>Z}HY!B=iwd(`eLt>3e<8Qs5_+m!XqKzP8!Z
+zM|?7&{@~o~VS##|`~l>>zx79m>-(pZ0TMEc&EHC0uga|c{;GW*@eFRJUFym%gPlCO
+zE5p(oK1KxDYOhCz*QKmrDPUE6<^f>kwE6U9(LIcsL-!VMJ|-NZ&An><UI-0lC|H8q
+z%qk*Nn&q+T&MVJ-M@e0ry3+8%i6+f~siNW3`8l~bOf5j8?|8N<+pWf}UsMpqyXa>#
+zn}|6xN-$R8D~zo|E%7$Ymty7h&_YLud$r(lfXZaiH2aTZmHmM{hxEwb2P^)UPehMB
+zc%#XUh8!U((u6B+&eV{9Ei;IR-c;U{v`V+dH2OoEOtI&n;W5DG?w|7>2i{A8S$0mR
+zby|+VYavWBuFX*oMvt5K9tstao4$KIkH-iG_ahE5mAK@YqKLIxD7*%oQ#N>5DCX!D
+z$rzD+G-*?ztrmE56t#k0Ya60h_dYlgIa$FM1Ya$fvF+5k&PF|VZBO%!mpQP|$2jXX
+z#tEz5ubv}Y%`2hZCPSxQqu0!Y6IC&Q&V?@H0HX8~cyUL2{?x|t=`ex_MU8$N^&po?
+zb>rVFq0FT1AGacj3=+WT44_YLgTn(<U{Eu>mi&#Uq-h&Tbez-+`4{W34Bv1w(=&pN
+zbj>wsKN)r;M$ad{?BNQ}PNgOuV6CgLiUJ#v;?x=tOVMeEA0_NP!%X>cQDZcM{a?S_
+z&0!PY&A`!IT<gM5VmK5(2I-+OCt}N}6+!`TCVbC<=Qow=+57V9my6eojX>nVQiNjM
+zHd;6|VTRQ62=!fh4)x4t&dt>2Q-k;m=;`khxqRsP8!rWe44;^Y1h<|zMbeC@Ju}hC
+z@t4h_qV>DAub}aR))smK(FbCGqe9`hU3Rqb<OY;wxE`ARWh9OKq%;s1CcD^MWkOOb
+zNoU{i_bCW1B9po?XmUTC3MnyGZ-3N8<0&AB?*4PVsbyGst0*)v6gzz4Jr%friOj+-
+zHDvCh%s{%Pi^@4NB~o@R!k_*A0ph}g&#+rlM@|iRdak7Uo+qIWoV4AZYnfC`(W*wf
+zmB(>BBSkwi?V`7#`v>(MNmySBusX3vTR72CcSHD659mBPE)4qU<PF93LIIqjF|Z7{
+zPil+4&0azajLcjd?y75ortZ$asdfa-YOfQ^RY96r)|ysxTxIn<VAz&My~#ixtfnbb
+zy_2c&)T+_R@eg(Rs-u?13-DJ9O@hNVuJJkS1swgc=AWSVPuQ(PwQH3olt^-9%>ZuW
+z?xC6Dz}8OeX<5GzH0|BL3J)%XWxy_5k}p#McK<uj2b_nKAE|%eHLw+|jd7Hp=+gHa
+zP1zJODrmaC2g@1>w963B3|A!ZpVv=~C%|(0EdrvHXz50s&No+CendpbpoWc%#}7M-
+z)N}HKt#nPq%x8X)_B~tcXey_me-DGZu{AlxJ%;@xwm<$~40~vakx}X}wu<=W(KWO5
+zWq|QAlYV?#(G~t3n2K6D&O^KatZqNEU925-f7nrb-a4aDs50u)CeT>4Un2wX3WUTB
+zJcsG*7#I`OAiE{n#O})(lBe`Y+3w%^0n&su;q2tvA$=u|EccM_UIsumpOXlFz^KHa
+zo&E+u_B2SUB9idNhr$Itq4|-diw|(~acF*UsH=z`cTC|=gh=saki<kH%yA1gROJCD
+zX&5uN#ZQ0F#@m@NX~bakf77l3B9MXK^gXHK+C@c^%ti^cIN0#9H}PbC5FY4}I10fk
+znm6N5rH_i@1N(7RsS7lx8*==IJRcneX6p2Rm~GJRB?^@s{eu5ftJy#hOo8tmZ`7qB
+zrVpol5BG092amhRl@8F3l}K>L&TylClJ;#1#`=<wi2$VPA_{3aHSU+)32Fd1Zr4b_
+zG<L$M+YwZ)Im(CF+pzkt6k?|)%&q;jA$cnDRdQ$Hpqe)^0x-^R>R%6V7kcm*ehz<{
+zzHty<a%yU@1?joD=V%>B=EDS1KLvX}f$t7M^Y9Rulf|JfF#>ddX5OpNjUF-|_3PHn
+zECeR@?`RcJj@PxEPP_AV2ljn?B6a7?+M%wufLanjy|#n_HG!_32&_Iu*NmoH(v4{|
+zB?)5a5KBTd2eT1vtUA22?x5&L5R?f``dyR~2&?D#g7)YB*JfEreipwhM_Z+xq|U6(
+z9{$tGJbhF~@LmGl+sdg<<E)J0S>ez=wVC_gKcDk8xJQR8Yt4u2^u{IWc;hl+_C4He
+z^Qk6CF|W=|q7qE;F2RgP?e{RCFJ#ua9uMH+Vc~%XVzmI>t>9O0*{MaUVu`6LX?2M@
+z?t+2Omo@gVnOPG=!vW0v)k$#2=czXPE~quJpHO`R#N+e6={FQONd4aKNA)r|6fj^$
+zNB==QzqUakCU4qR&caOEVOgBU>}f7UavT`}*-<?!`R!?zBNt*we}LrpaK{Low|Soi
+zoKl?<3d?^Ln!RiCLv55uehQ0QMq9K4VCwlWkrf97cb#Ks2}s}viRp2D$r$`0ctgD0
+zZP8@|zkL(Hz$>6#L=cA^nH<bE^H_fr@Ow_A2z~um@52R!J>EVlM9mPf12|!_Fe(FV
+zwSxXo(2mjgVO{mZI>(s0?vCw9h5(wW4?1~S*NK`T-@hcb0t(=_-oPxuUUKsYLjP7d
+zlwYl)B9sDe_LrU0sG=P6yJHm7*k30s!&XbQcvDWYl4!=<1*bR05kw7l!;*d~zhDMr
+zS!=~%?f$Y*MD~afb<%D<4L#}LwMkCHIh`(Cy|x4MZa;mbQuym<+WbTCONp)de5QUB
+zOm`3bL^G`*9$Qa@_*uX%krBt4+JF|GYRyMiuqxUs4oY8+KIHQFoQA0UQJWn&)G}Ef
+zzkUrbM5Ecc`?dp`aw(y>`i&#BARIV+K%4$0XXwj{kSmm}b0bA*{XQc2Tq@F#j{*lu
+z#ixD22Sy(`(u~Dc8|rn*l|$TBzx=U>2yWW?{5}FQMJ4Y9ftYCrxS?OacvTw9R4X(y
+z?YKvN`3I~pm8k8P{?5<uuIlK{v$G7diq24U5143(@sHmsj%kAGb!=^2*qZpfawO4F
+z{_24UMLOiExSO+&nVCW10K328(4UCbB%`&kOK{8>WO6FE|8dq+$vYV;pmX0#Vw~Na
+z`v$wGJd7(}nR|Gg#hThav$?^CewrYVq46xeQK|Ap@zLhpn&)g=?`5RKU)q^Id$uX6
+zQ2)x=!wH)6+V)5+t5af3M(!u%Z(TM|raJQYQs9y9^b?kD%nP+v@z59HHaU+NyTs56
+zCfiw`l}#5!^vZ8H|J3lC9L$^9+Dd3%Pu`DM8>Ae7f|NM}Q;u7LjAX?*C$IXy6U|Q0
+zwRsr#Ugjs8k)+gbXI?w=Y>WHx85xdubMvDE>f7%mUQ$sROk1id8)121>}23j`BSDf
+z*<ob(T3o=$6VdqY<5GK;W0LecwfvPbQ>TD4Ejot_S3`Rmh$9B^uG1^HPg60@gkG0R
+zDaSq2(vlK#e(90VF8m<nvrS|+^?#fgxl|V<&bB2I&M970aCGp-!@w-v;@QWPzwR=Y
+z_j9dZy!ePJOo!z62XI&)&FxF@Y;hfHoY_y#jF1Ro|Hd@8XZq}JV_eMj?WYo~A5di|
+zqn{GI8rgwk&AH)-?v>5%m=as3U00@GR?Ksk#6R;XoX_LjDln<l4YLW)`_m#!Xeaf$
+z90dj(ACLaaH1&KSQ6=$0&ePK=6!}XeKKz2^OtGocp{h4}X(c7n{P}YofANaDDsmO#
+zZI)?k9Gm+OtiF7EYh2tA_Fy9JTu+11Ez$+O3)x>*42lnf;`%j1?p^lx(D8RzY@RZ`
+z{^tW+M$nq0!&8mKHrw6w={8*DN#LmHpQqBl2$p>_{U7i9jF?4NZvB#(sPb^>ZiWop
+z4yj3&4oLgy@+Vb5PUZdm{YNhj-h@h$r#@{40GT`+a!%tp4O1@trCh4IASA~AnuWeo
+zu<X^-RPvNjts-mI7I%)xpE0RibJJ`K%e%ZdsiXI`kdAZ#z>LhJH*YQ--_B#!8GvM)
+zl(4M+c|f>UZn`me?v45usMYA_;%axO)RT>c2hC&YhmLB=vWQ!lO4sIEapP6;>gzrU
+zxZHT|y{fx_+Q3J~m4o)d&pn<q-*NnvV*gBgv8F0Lv-O7E;|tde2C7vp6`((<uobqA
+zbEEzm><$ovo@oE#!;QEgy%c-h&Y<i#&YIuNM<t*9Z#&DiT(I8$V~#3O1xSC;uVwbX
+z25b2-{!H~r=g;<%q=<)q)V6|L$0g(>Sg!q<-!uJ;4N(dhGM1ck-gp)spcCe36qtPE
+z-ywBR`{8Uq6;>%aMrSfX{ynkD1N=&v(-M*u*Hdl&cC)@r8ql2{x;J&3R&F}}yd5Z<
+z75zefG~l@VSh8H;(#Shf*}zsBn`*ibe~F^@{qv^!j~={ndu{CB$Hils<Ibl%P4MgT
+zGw!f^HZx}4FaA;?V4!Ob_0&KtEkwiHflw!E*YY4Fcsw_N{=$JYm#jPZrT9`>c|=Ye
+zUZc|y9)97^uFvD}&r?;Obyc0`(=FFBAz#McT>6$=oFsdBLnd9i?X`b@zy9sh(i&yQ
+z4o?nOhd+gx2JuRbX7EoD3MczfXKN4ZOea)#hq89hls_O`Dvq($*fyS!k*?O$Exzjl
+zE=>)O=GN(ej5La*lPol(Mr(6lI7p?8corFTXhH&9lsjE5o^ho<QPPaE_|hidxnI4c
+ze`#`Alp#y{h4=7NzELfUwir{#&aYbQYw`t*3Q*QiN3|KT2^q*Ui%DHospGkb_;)YU
+zAtsW_dcMn#(we_I=eAun%iIq1{Rz6LqItXXuGtS;hmUqcJ;Ih5d_4bbRoUOnGs@1>
+zgEt!s9$#$&Mk}tNW>YJapDpVrG`S_(2?j{wP0=7%C8e(RFYh}gce96$<PqztF30c8
+z+-5#JHYzA#QM3<ycWL;~VM?$)snF|<6U`F4-Sf!5GzY1)e^J~|Lsw1BrE<5@+jEZe
+z6=Ajau6uuRss6A4qSau6$e$3Hp5;&20GnNr{8maY!2p?k=`X#Fe^=dTmQ73p-zk!J
+zDDp27M~0XUFG@Y};t5`%mPj}12@o{*BvMZpmTx%f^9CyJhMIG@jzy#R6Jg=$rZx*7
+z9WScto&{%;FI%$i?TQxKvve_s@b85ztTr$?rS%HNe(=~`{Ez(g4xRQjh)($mYFKO-
+zaMJJF9^mdvcv&$p5naI4btdH2p29*_LygmXpU>OX^IZZVDtkH$!VU7{euWLp4F(Or
+z8g?3T8>lb8J0%XJ#*8P*#1vfCU<wi3JGT(uVE8hpuP)A>t?P0K!=C5@rlHG;y<ad|
+zi;+L$?Qy)(Tca4G1fzJP#PK)`6NF9UMhKUew$~M}iy`WJHx|MhSYGn<%SPKXc3llo
+z+EZU(Yk<6L8`w|Kx)^yLf8Fb8U_QX>oYz$^1usc2buUpb0G+gUqoMTWu~W)R-G*r=
+zRPRKr{h2O~5a$2yF$}+Sv0bM)alXuWnc-yNH0`A5MDBY%a5+)n0)*Y}Jpcc{kxXAj
+zu|v*4&O=xsmmrrR%**V`{2{7);&kTR+Y20fK?`aP$1iz$W#jD6b+Lws?7dkCZs32Z
+z(&v-7$`;9izqlvA@cH5Y*+|eYReF75Rxfw)|F7oHR2~1PBVW;7`M*2z|1k-S3q}pg
+zPN4&Waa!jhS(U#kO)w}k(-DZT(eZ~lTZO!o|KCRc@00(3HDw!NQ9k=$<B&6Z91B+(
+zN}YxWviptW3(jirglO;eG+b*ibjlg1i=i(&!4Tm+<%K5;z=p(^Y5nR3g}4FHe#Vy;
+zFJl{c8=f~XyiDv(eJjAGA=t_lBDu%9(9v-0gpIF#Yk#ThM#!~2+XY+$zf)V^v;O^9
+zt@Dvwb83Cx8yi4$(&95-m%KQX8I)Q6&y5h<q&QI<lId*oTnoW7>?q&RdN=+r5rZKY
+z1#)CgZIZlFY^vqFb{uYId!L)-Z{><E^7gC-cu5pKZ2k2I<YiKfY}AU~<y^K@mt8iV
+z0X49h)4m%a3B|u&o2oTnbTG`zft8vIm&-!pWy(FzEEmr}8^()|oHP=aj9N*S#$GIy
+zt4<o}BPkfG8CpY6-pB{c(>I9=6JL*9A~{?1y|85gue#nYiL|ntg*O2|FNw99n07ST
+z>tVQ-tt+Dzp-(W^=s4K<i=YRXyUXyZ?nRIe=K6Ad_+_T1t|~2;uEdcd4Cu}L0xgB|
+z79&4`9l2~JPsjWW&q3ZuS`0%QyA64gUp(umtTx-iWHlzvS!RJA5mvD)(Bn7)3L{PR
+z2+pz<s;^C(o6~nk>o()gE=6Rw78chswcxnCwZ7Dfy+MP#wVv69Hseb52hfSlIN(x5
+zc`MY&4pCWKKR-AB23^yP+gds?_wIRM2eY;-s;`C5&bhgxEn0Bq-oWlwZCg8`;#&5}
+zIVN}X^QDM{R>7G$i)P&0*22nKatqGJd$kxBw_Z{m*IQEkcO8>uM(e_>(+d#Ao`oLS
+zTiN#jTx;M!Il0fX8~k|K*f%|^TwQLfAFoy&o{P07xAyq)C^6MqNTmMlJvTKFqIW1Z
+zZ==D252@R49^m=5U?tY>BS-fBNWm{~7il17LMXC|1F%ZT*i`H>!l8<yDH%4rChqoH
+zWLQY|P{coK(B>F^ugkQ%TJV72##vocL!v?wJf%WZm&I#GzlVyNYl13ttYTm~SqQ{e
+z$@|K;7QRYKEPNR`wBCDiXSLTKFUF|$jjbH~+V%FLdf!Tc!7E_jVwUm2w4@mE^)+AJ
+z2)El9w2y9hP-W-IG4VresJfxhN`;V0d}>$fgcygr>9sFZRY!(yq4M%7i$=6aQD86g
+zv%Le(V+++H3$D{{Dbq$NdJ^)A$EJ(EMfX~xN6!?Uqz?DCO>i6y^3_V17x3-5T%qCT
+zY4!eeuG$7QS4~{6wE|TbS>64)vq^nzbp$%(G7)~ll7%}9I1)`pmWR!Bc(3dQer2z!
+z+YbDPypgeUgMCtsQKCmD-{m9Ts5tQH2Bi$w8B{mzU*`i&4m2tUnjnj&KY<VYcLEv_
+zTCM7B-=1fkeWI9?Rn+SH)Z<V4NGt;5AA?>Anky#qwHFaREoKW^muZkTHX*=Uq~7!)
+z<9W5(weXs|vhXt#IrFm}f%(f-UTSPrgXZZ%pb>V!)^MMZc18b3A;qTdh$~+-AB!U1
+z2;At-Ah;m-bUb_oZtP^cNwxYsPYoKa6R}&WyI`kI*nTA-*>+vBZQ-qT$gd#KFCT%=
+zoMt|UKRLC4T>zz=`4GeK@{=BgK=g&I3prLA_&#Z8TN)sxTZRB`t8n@fU>&0v=JwR@
+zk*np)5RutKf$G9a1%n5<Py0ZUV5?l#$&ot-nYs^wy7@&Gx%m&n^PU_A2tJHNK@9<f
+zF%!=mqpJnvBxL3|0aomFP8`zWu&DZzUNVdg5|kABhrCQ2L`e_(TWN57K?cwQ@;d4&
+z{?dfLt^9!M*=JBCg5EnNeNW~Qtmv1kILP=o$MwY1LNZaOStd9fPqyOMary;|M<)P&
+z4|#vL3=^x@+_&z8<eVz08~&v^@a<cB{2Xj-*L<@ieWPvv^arvqEFZZ~o&~*_aOvzG
+zlvuU@<MB<zVGWzSyF0gM5z#ZhOdK*!^lgu#hc#TPqFiFz_MTphn9sV7Iy*1NBkV2d
+z!>cbmxKW{cRXp|1(UnwvlKMR4`YA&l;F+*&@cYv{b(Nx7UC!s&Em!|(`2P^D3wt+e
+z;(v&f{Du8dfj1~45|@4+8l4mzTjFkV&pSbB-9*p!eac$v{8VeJw`!_VUtjb4mGlYF
+zKPu+9!mJ~tc<ZU{L`gZnjN9~sHg<C4<P;<u+WgylkOpf0SK)d_Cf1z<X)UB<7&ZUK
+z{GhQk<D8mVD_pr`cqRjw=k%Sa<~LI2<%aOOEx;~kt%7WPbH2VI-<*aM;&OBTXt3bU
+z(;v9><D%)pXq>cd(c9p)`pa`&(-9JLYV3T@1!;@t&{1Py-$Ki9&fliJ7iq0FCdD{~
+zZ$+DPJiZ0fRx!BNC8$AjVJz<1Qlstfldx|pr8s{ZLSR=SF2PnE=}ry!Hb0$uZGaRL
+z+&Q`kmYm~EMTYJTJg-WrZa2w_^K|$W>1A6v{+Kl^xJ-)#_b@Yl;rw<!5fd@xzvfnW
+zpAud)%$dY~w%#O4Aq==F7CX!VJFl70F0`WG&EB3Cc2BiU#qG+e`n$RoE^a+1tuPHj
+zzU<0u%3Ry6Z?f@h4{Yq^pw^$~g|#^}vxzTlPtTC=l{B1-Qz~f))0RDCjFMevOJcwO
+z;&4#zjPK(p@!I+aFO0;cd7Pp?RHwA_aSC197X#g@1;hjM%ooZpdOmUz_5d>XFPSgc
+zU-UF|s<;h(HfY#u=i%X_Ls6g?9VFfwmuYdivw6L3{kj2{@>wSX+dMl?A?CFN;#M<A
+z2Co*~f5Z`TJKmpWq+_EHZ=cxkO2!+L<al;1m3X}jb7wPtU5pde{71NMT72(KT*23J
+z442G!#nqz6=$w~DT$iNu7k0Rmljjm|e&dM;erRyu%Kku{N(P*pz`U|MFdlS^4V{`0
+z$qJJXlRRux&AB`%7881B!ZkC2&fUCVb<wc2L1Aw?mw4|$c90a6(P*M_sf*ufwHX;I
+zqRr4Pby$^zmX^UPCc(>aqDfL2{rmTAzGmmFCd1DIAgV>atoR)rCzV^@#Nt;UpkXK7
+z4LV$S?tVrO=wcf2_5sK?FOn0++pTi={BfWV<~q>-{i^Cv2N(WK|HSN6)a66F-VQ*J
+zRITq1ZH8ub#gF}}r^>hY&RvS+cH(jO7!?Hp!jum+(p!&{5KJI#f8$ZlB+u*dTJa4|
+zwo3`_9)eFOI<}6fK-sc}A7v`R_Le`?mv~!Un0Ly#pmkDheGY)4<-OtLTCVp|L8n*y
+z#A#HP^IbU$H~Pd)@QLTUKG;BCT5^*US(FoP0DV8<_zIRsv>w3oyVYPa=Xog+ZsF^*
+zD60O%`&X9rcr5q(rFkmkJpT`p*n&ttIED>L;oQ@l0Q52X(U|9Qj!ha0>1TuKXQd11
+zf-zlaLD5yX=ql&_6E-M@X|H5dPtSYylf-N^QAICtbRlJvu4BFHCe5)Y-l!Hsy)S)d
+zp>6Q!0y%-47K7P_R=#u$6f$doCyTJO=Gw%(<WK%_5r4K(*#7pS#$X5wp0Uv=rdG7o
+zxFIL0mdooxqezU_INd^X`oD4q(wOla^#39F)0kV|(v4bHJ3Zf(OFux<4<LPXz1e(l
+zf$-uhx^~?k3g@>Z`fvVpV?S(AINxKbJQtN?=x12y+Q`W4s6NI38uJiAhf0^qgZhZj
+z+t2Sp;ZHcEf0D$mBdl*2q`a#5Ps7C+avn*37aY^_U!M|m3!)qw@85+IiiB<M(WN7(
+zb1!3&g*`?UonUE={kkPCBd=RiLv23qZcr>zkp0w_@%JZ_(IDIH$)=ClS<PN$u0k@y
+z?#V*W><b<nO45^-?@P)vvv-=uDqPiMJUteTN3YoCvv>&EUiF}N5Sx9r`F#alp`&@l
+zaMaxP*>qE3_G<HuKhy*ZJ`d(8g}2#ebOqPTGRGdz4M#(4Q>QjzNvS%9qB2O2T;tIw
+zTS@oldZUcCA=8_%&l5S>(zcI&D`e5Tlm6l=B7^o=G%_3$X_k@Eu|1hoh|4}~9xHY|
+zD`V*XJlx<<J8#;u?<LvlCtm{|4*~5IhT!3v&eax;p1(}eU3ftYd522iAF_g2-<qLc
+z=dN|-_u5&F%eM-0wzCl8%=Q%-cjY>$e2J=QTJP79$BNPGPeWIHFQg8;D1bs)K_TTr
+zF4B!ls^y&Bqei+`!NKVB?_-(b<i;J5fpf`$+ir{!e_}O7YtrD=ha;J9b9lnmt_~wV
+zm4e^VNwP>H!wa$3b^V5Kt~M%+q^wJKvIpP;mu7mx&rM;qb-x6r=~H%jO)eb`3!pbK
+z=e~!8d4*)LABx=sSawuW77R)0asFeVrFJ<Krm%FjrSOVZDTZ_dthK9^bN9orOxb1h
+z31CN~;8$qgX<Jm{N&C!D^Bnbc<^kkY3Svg@1$Ztrp&qZs&kE%vYd}j!5PyU;@q^(#
+z8}8oVCo@rH$$k2-h1kd!3o;-+6GA&Y!HxC5RG@09zJIPqAp?m+e~`o>`ko0gV;U2N
+zMY@`ouo3md5~*|Ddc%KkI$ZNZ_KBvf9!rr*j#ipy!Tr&xoBRIF=((Pl!(h+4mr<*E
+zk~S8hQPQ6d<@GNP&DWld(d$A+r$2RQQ*by`<ChSkm)sWow@AviF3RY8_&=Hfy}shr
+zR4Mrb+j7k;dRb}_ypYqrKSot+(p+imxVN@;91h!1b5y{<kxk4>-f+mD`AqG1X``yE
+z{%@lGzQW&<T+ZtA%kMU_e<xNrqR|Iz-65IY-W6-pi++m&m^FLfPmy!bVp<PLS$=xO
+zcYD&0`t&~aX>VAF*WmG4xOM0!Y=?`Edm66WIBXFGf`pves`5g(;M^vg5q1STpFK8^
+z0VFkA*GfZc^xuLPzIlhrI*wb1Ln9V3Yk`re8uy{&JE28}lWK)DJ4_>fDyJK}{xdA5
+z+qX9*ar&>8XTB9DPtNLH-6)A{VrovEyRPQ413kG#8we`r+l2TgW5ae%rVhMrr)+M(
+zO-{vjsy!diPx8DO&Pj6n{*`c{eL@Rof%8Z3Jl>A@GAn~!^!R5yD|#I4kr1};n1&xG
+zhT@`c7nB--?`w+nYh3ry3=Q}2FPaa8Oh`xLc^~`xQ{Ozuo;Fw9t}BSVP!M@kKI2AV
+zKMss9j>@k4r}mYYYCVz2cKH5F*!FEf+=^-j0{JB}*GqlgE7PzwGHv>cWWm&D9n|NI
+zBd7+6k1Np)6$Q`!pe%X;Zf^eDSmsdyd$oF6sG4P%mSmfgy<~_VsROHKx;EV+Cac%A
+z4<*aVQ5nK0A{0$6*@7dmOgt{I+wIPt5LNsGLs<7Ggd6i%-P1w;(n;)N9gUolLX*-0
+za@?|7rekc;8vx9jmZNuwLiVt=!AeNQPaqKhmq)g$jw>NWt*f+pKQjM)a?Od>%IWo9
+zaxcK*fOQZ2DM#mDf!MMC_ik@1sKfJ&Y_+VazlcdCGVR}i+VEk7XkAa#2Xj=$4!&*4
+zQieHU8tvfd4m`x>m+o30(~z<0;my5G^|dPwn@}!+j8PH8?zXEeLMWOG%s)u(u_3;F
+zX}$_MTadvPEViSz>oP-z?*_Hrf*OsE9}39X!vt#t;Q3pp;hn}xWl|O?CM{Q}?buaU
+zvspjM#0_`hFs<0liL!PpHDcw5$NKzNdLxxz;8)}}L4$iC*EC)?0s_@5zge5{E4(0`
+zT}$&wjNsO##=Ytm%PJ;o<E||*U0oq;^@FIpX|qfTei6;Bw=<$J7d97d?b3}r1p493
+zzn`7wXrmQce!~}L9(BOm0jUIu8KAY+Cc35uU`>z%oGy>Txk!Sn0-<LFLT~T3Ea%KG
+zeSBKWwm|@ey?1M01DAROi1IJ=&CT>@v~)~I(Ja#81qIx>^T}af3yDledCM6$%RR@^
+z93nqeZjrYD3CkHlwOYSsmN<<8ZIdg7UKbOlC)1`)4(ncjZ4sloQ}GBj$6!F-J2bS=
+zQBj(_w6Ev*JrkoKX$J*de~UI8B)h>+R+#z!g$${#MTgS&?omCqWO1}y1hB2QM`dA4
+z_%!LHF$8?)9iYpYTvj7*wgi=FogUU{M|`?4f%-H2*-c^16QX+v_AfiRAMkegtYnA`
+zJG4W1u?G~U4F~c8R@wcDb;28w_U{P4@V6asb&qbZ*<ZR@$kknsKW;prf$(l+jZiYw
+z3sSw+XA)Xg=ZzH1XhV_L$99c1X0#`lLh`M5SFLb`FV47L?<F0FC}GV%VJCsd<lPe^
+zk$<lgl|=6k+eHncVYOnBad1xLHBI9|a#?A8aa&>$Yf^4;Tl_7_=_<>w(^XI1OmmGZ
+zFr(kA37JzpYn5*ag@PzjFxTl(AQSebc2=s|EbM2kW1Bk(-BYi(6&v}-oFLG-sNv!d
+zClck4TPYJiSw~dXv{PHtN?bY#Y3*Wvytglcsaz<hZfo7sY%CyFe+(;2T|CB$On}c%
+zfE%_bNNLnR|KPC5rt!ap@+WEeLI~fnFD^&dt<MmMQP@5LfAR*tRS6-*^gHBUIT_vQ
+zStYx<K%seDD$h|P;D85ugr#0g+km%E7<dh(GC(ywU@lU8^B_2QOb<3oe|Y{;Nz?V~
+zA(X;e%vRv~$G{KSX+bhx<I7Y^tU5lvi_e08&wlxJqzj{dKfzjN0d9Jl;EudF-rmD(
+z+3CW&m*(~*_1=JuB$lTaboLF8?fLG*4?*eBdC>I!mNfF>arQ}m)I>&#Cn}k5dU|=-
+z8dRy=<3hbtU$G99o?UAck}biID5DIskt-p$59Tg|>gATPErBK!4r3$%5Vx%AJ63Kq
+ziypj8SuX&eTe=8H&AL6Icj6#XpiBQGO*m-|Q7k*Zn&po@Nl&Y{9z8Mb@RSrN?a+9=
+z-NN*S)#Feu9r@As7LX(^)Z%NuH;NOFL(UwIEV31yFs->{V)_?^#;_8v{Twa2tp7xw
+z-`8zsxm<U+@!qd!4`|GgXq7SEYa_en3j75Be(OlMGJcYzsYXbA?D(hs`@ws2LdH7#
+z5V>6}yr2!%FJMweGrNyV8?qcKPGuz)<0Ekcep*j-A{L6w*G*oyEnm=|!u{-G|3j90
+zje9)IC{(!^a={zItDV!%^+J*KId|VzK{7<C#O0VMhDF3r$R}*B<2VZ31iqoBBJ4w7
+zOh%$`H<xC>0(Dv;0iTfFo2vjIpMTv8u(P;#HP(X1g`A(gAk<G44TbdXC3$y%ci-&F
+z1@NgNx(U>7{E^|4MD?#i*t@%!1v{>_2Qy0AX{&?OgwCO@ERiVO$KnDM{sAG{jU7TZ
+zXKv?VYsZAOI}H8S4xQAdIQ*?{?%UUL4{wNor!-G2S3xiN5-1x<CnxXTWsoHtg;MvV
+z4nZcI<UPMvj<LsO+l%8uVftYk8%UVRx83!3uVX{MX@(!9Dpr9G7v69-Np-zn=|gR9
+ziy)5k?HiG=Y;EelH2hVR>h>dme)iCzBITr}RqN8Nj3f$0DUkEB7VlJkjMMW5j%s{_
+z2s1jM623jV9s22fc9M5EBn<SrcIz6f$N-qvP6wzeUDE9obT#klhfA36eAdal;Am|;
+zKjI7y#!0QT`jIoj^P_6XA}!<EZy*p;jfGS%zFCu9-6PV3K`BTt!%whr+pjGxIqFD+
+zZLLGW)!j(D_OC)16QN3fx-}>2UYJ`-VbB;o=2fnZwdMNZa*{dZlnz2VxVbeSuNihW
+z<e*Ye#C(Qs!C1UDf2aIE%fF9)-<rzT7G&yduplnpm-m;oE9fAD2Io0_0G<`~u}_6a
+zf8XE3_S{inKUcKxcl@T-4Y~7qD+__yz}ff+akypTy9!d8J(qQ=rTh;BKm@lpd~0l9
+z6=chChe6WdqucYaO=@gt-NlKOK48D<hFFk5N{uij4lLD1k6yBp{+1r+E!7##&S5><
+zQuf3^80gLc!C_T;D0s`LOh$Gg6lM7&<4Hv%a1-s8H*dX41!97L|9xo<VCOA5RejsX
+zB0@`O`-GNdF=HOzVS-u|1{u8H<ywid&n!G2Y*dC1Rxfvn(7;krsX_TW9+bkS(9?T8
+z%m~=!Ri%$}Vw({abslEXCOwGh@(joGZrF8CF7lJiz>QRoOren?J|u6{ee&whtTG{8
+z(5w!~C`9x0aj#+^l&KUwJRk_c%n1SFJMuQSpuq{D<ID1yn|TTUs_?({cT$?le8tP<
+z7=X69a;F}AF`10ewr8Y~r(0)-Gg4hdH?HrYlb5jV-Guu+>iEwgun@_kBY=Sg!xM`f
+zWLeeW>CJuN#A^0CPB-2Sqb<R6s7&k|EBn>X(n@xWQqea4^b@lAmO(Qnc>!Q$kN!R3
+zPX=}a`6Gt?m-Bf&(lLZ7#2B2Hx`f4Z3n>sxsGGU3ly;NItP0mLsS?Cyc{UtbsIG?2
+z3gRQQ_%DAt*NTKH1W%Mv3e0f&sk13~!~3UZs}(-Abu`_bKb?c*y05fK4?1d@46`>P
+ztraX!zgnzzVngqEQp*xD;S3T**N`X~L^>SySvz2uZ&&JJ2Yigty7o5p($42~9!qP+
+zX`Jc}{o9Bx^BYn7H9JecFh8YUmHGpE{f|{yPoE_$_htVLy*JnriyV1C8e|fztR~oD
+z(9e{IENn~U`hojZiMN+!S_B9kcIO{GJH(pdloQF=m0>qnWw`R|9gFjmr<?x*h29@I
+z>GP;#UoV9R3Z0^`)$Bp|w4mYB1u-I_Y$fdrrh1AspKNb0ZoiUdcrCo0pz+5E)u*u=
+zAQ*x_`gB~G`xino5bL0V;KMkO<)fRFNF^<H#mNesXLwlNEq2A0ljBHW{cFd9HpTc8
+zhpHLEC3DC}<KP|-_|M~r)CtcPvIf-;@KSB(yb&R!J_8tf;&EE^S-6nvh0F9#r|Pty
+zF|WspSSWtpfTd`913Rcj^5_y>Q!0d4-P-C=7i=R`afNaWGXqgA&u{o9xPQNF4#CyB
+zx8+TdnEp~SBxqdfr)xd^C{X4^&-+aa>D;=Fu}4=m+N@s*eh_<h=g9ru&g;{}_WHAF
+z)t%g0q_Yn$-n~D_F@)BMN%ihExX7op6nFljNbl$KPgw|Aw|E~H>WYeTf}}Be4KghO
+zqg|$GD}<4QFLf6e;ajEm@FD9(_u6NYv@hjK0LG7Bems$pRQIjznJ@f4QK<Oq%n}-P
+zD{x}b4cjum7Ky>N%}@DdGW!+i74p-Z1w{KW(b_MtZ;Mtm`3&8ehQ+PX(;k1}j?LQR
+zk&!;3xBgXK9C2AyCHRg&rc<C_dAIZT9lPd2$8S=qw99mb>SDDIP<p=+rA3cUd}11T
+znGrm9`UrmkNcE@}jywY!S|i~L)&r4lV!MRm7h@;C-Uhfdlawwm=>g79xCzFP{r4RD
+zwti)_e!D@`I1eA~N9@GNNnw;XRCe#K9PliQKW%b1Cv@02z`SDeBL@~%YEA<8A|yw@
+z!?kADI6g;)2`YV<KtS=@Q7k}7hVC2><iFeRC(YVv|H8i^GM3nz;;=DIv0hgxPbDdO
+zxiTL%#lP$`5!~XoCLW(ER9a6ne0cru5>DUbZ1?W-voq+##yO8A7p&bq8HoFmdx>jo
+zGCkOVW<uqASeM*mCTKRhl(2DP%(~u!(p>$VPO)d(L(a0lJ2_L&cucss?cI=Q&j==*
+z8RHFV<wGBS^vc&&P{iN*5M|g<_h6T0sk>U>#C$*NSTtjDg8@4{0STBY_JuT5)_neF
+zQMwLs{x^BJk6v{dL1}oH3><Btl5_m|9A2Nhp`yBHXIe*yNJRZ);c_QJ9ub!>6ZzS}
+zW`%-}B2QJ9$Qd4vU76ecck@^-@X^f4eL|=Uw&XrX`Cl&LaHmLdPjQei8<nz_a}Ruz
+za!rzQW&fk>+C^%pr)HlcA|udKWvrI}?2s4Jje-bxe>%kPUb^2O(HrF)sY6#%6ExPv
+z+5Qe&6b)@&9Oj{x4a?uyQeUrpKXH#oad}_l-tg~KnV{G>jW`D2b*t_(gR7ocgB2$&
+zSB7=t1B)_~M}=?RD-%G6Youdy^_~ubR?6B7<9|c7ho-;chRp_b*#g#!e?tZQdOhV2
+zi%YLNID+N4>wgR;rk>FbY9C7Ep0XXHsqW|&Z08^S`t32RQjD=Iu`+mABYP|F-b}RU
+zM!N&28+3g!+t3EKga|B@^Vw))itL=LzrD*dr8MZMFjgcly36M>>Mdsb>|yg5vx(mO
+zR<?VvcHrw4kG9F1g)ibN3g(~WzGk8nu(-bYvUasyAHm}@@SM#L2fCV4(ef~ITR~GM
+zsCU}7M9b+>WJAxL*DwjjcE-t*z9UaLXTck4uH&(p=TUuN;HD<KLQD7oyZ`oCe0>rQ
+zdv(|GN@=ZJ!ISsee<L~T4$=Pb!_Dr`oYM%V=U|H}*no$xaY>I_$_Zes`1EIJEpag1
+z_ZN5T`I=L(`c`+_-=IM0Qiv<7-1BBsrhGSL-O@QSbs~1>-##RcsVr1CdF{ikPUSnP
+zUSZ>66O?O(<-7y)rxI?9960R@*-#}Q>xam*Er+fDjD$X#Op~`KPn54L4R>@aI_`ha
+zI5Lw1RA{99akzrjMK3R=6_AymWJL0B{_{=}cf+#p?;uTp^1uj~+*HNhJK+nCccG!q
+z(eIh=Jy_)#iOeTdpQ_EArr)cua5qL%5u`)X;Xm~#CbD$CiL<w)T^i?vP*QB*ikQAa
+zzT045csH==EhZy*Q(%V?&q9*u@dYG6i`RIO*h*~&1K<svFr(Di`ErJJob(CsKH2R|
+zy<0Ig&~%u&min<DGamT1Rj2EK5Nf)8F>{rPP(P(oQMDTQ*9G;~PT1t+5hZm4e+ac%
+zaqdVr-4_uLP53)y$R)=bKF{V5?YUu?<kw5D+MdC;(J{z})!%m$!vIFqXTV1k@R?)0
+z$Q+@^eIW5f`)%t+IF{+|Tm)HeGH<|lB1W2|Bwmli1|-1vFM^5oVkeRA!Or&j0tewI
+zUYqFB#}iCWkz3u8g*vLC3R5Zxzn}oJU70T*#!CGIZM`fmvTdPMny*0j-cr!I7W?Hh
+zV)N({IpJMJv8E8Y_z?D@%<j9IJXkJ}*>Km@^&f7!nMH9d7#0j2%Kt;%@@ma`qLR|P
+zpe{~>ib#oH(k~KIKz|4zoiJK%0_q5KK(R<bO)_t)eZHBWUnkC2^5?zT%-qXQijM}<
+z70oyIh65*t=4S)cTnN8X{s#bQK$gGL)yC6lJIP!l<H%eiNPj(?{1J8w9LxTvQU6D3
+zy6Q3g$XVF`Vg2-<^CN4&p#JwamX}aphF;)U9{F2hV>$aG`%=v0fihY@H?j4DK1kpB
+zDAIQmja4$~8itXsVGQXQhEPApQ$N$FpQCAA>-w1Xzd7^F*uU|tf1^%1^USJ$iRxNV
+z&$4^soUT1nrQVS1A0K#E>RBGkgEH`UTOO8^<EhIFo1ttn$qR!>UdSY!-e{5=25WM|
+z;5c%_xBliVHx1L|hC}Z<%S{Rg1Ia{A^L2!#Gx_Gb7Ehzo!z$`Cw<l%Bnb(;#uLsAO
+z*H`p2uely`%e!C98jZ)F{=>T#e>$D<Zdue9C;s%qkDOs2fqW-}y)F*ysUptbqTT}H
+zp)Q2h<iQ#o&iaD3j=mF-zC2o=dOzPeVfC|=`Z=8DWfILx)$gP@{eJwT_+!TVedU)t
+zX1`*6DNAt7zMtTj{q4lxcg()q&zP-Z{hV=uV^*Hvm_2#o%N?^a)|c`G$821JV|Mr7
+zdCW%jGiK?mpR+G;%>MA##Kx@RBFF6OZ`*CnXuF)L*^ysA9_ibu*^wWG`&-!k=Ky~i
+zeES#lNv1lK9T{!mzi{Y}m+b7Hv;JhAh_$nO$<F>6l*^eQ$MJKLEtM_*G{E`XaVcM7
+zy<SbeJo9-Z@{wleRDD<d#_^tzH>dYAHl81#{vYa{khch*i+4)q@r(l558nR=yw`E|
+zLwNRc4QKbkeI>icy3pqS0r@5<945uV;lemL9H!w=;K2chYEC4IpMlo1@3=M37bLiz
+zC;c_C^?dK~zwdg!?0Ee3JeKuy;RUYe<7X0E&o##{ZavpPU-5ivHH=ve^mVb|iS7OA
+zK1Tg1nA3GD_6Pn>Mt&5})q2~-IYRu#NANEO_@8iqe+k8Lnatq#IKaPz;<!wvwNoAS
+z&2H~`3t++Lqu_ZBd;aP%xt8(UB^R;h{Nk83b~Opk(Y0q1o1^a?`}@w(@Ui%FbOr0@
+zH!g6F-kjhZ{pGPQM`tinvw0UDbGF?kqDRo>mPyAfJ<ep3TjJ>yoc!NVM*HZ)`16A6
+z6qffhFVJ34cpme@$;Pes?fqU$Cd;6{<)5cr`k4<CvrBuAeR+0ieO}-h6_<AY=GVPa
+zHbuF7dmI_{5rz+?8+8#rQnj&;r*rxChl%NrPW4{gT1aGkSN2+S_u2~_-&qNc@6O);
+z+3~$Gf$_~}__*!@$2TRx@eO|g<I8RA+-D5^8zb*T`o=Q-8a}%O+SGMTe|<;x8Ffux
+zBVCj78%rl0)1?}{*KP9${}Nxv#QmPG>%BM~lhd5m_p80opFy-=rO<wrui4A`v&-U~
+z{+GWv&*>4GT{b1ooL2iZr^ku-&J5JIyIJ1`U0~l9CD^wY-}&PD=H$z#`<PWx-%#&6
+znDo9kX#RKEv=&D=_?F>5n)8?V{&(4|Z$Eh_zW?2&%r64lOJ%+gxQ5E!xj6qjofo;}
+z9cLfLk#T$&kr%l!j-N>~;SksI5L(M4X)UK{`eG+P8}!dR{6T#GJgzS;dndks-X%cK
+z@tjAb;MpEU)3Fc56t8j=ymx8zK9!w!7>Evt*a~Kwb*^8FKbl4HMu$aXi(0WnF(+0u
+zo*|8Syf}n^7BMsBd3~PK%oay!d6IEgQ>=W8X9%p=Wk2pLWO=|$8n;{#2dTa1mpvFO
+zKt7w2ZN)<vE6%?yl5s&OZ$}En$I7NNt0@2M&Rf)_;-741=hxFImXUh*U+i6qc-JP@
+zG4?GQ*Oc|Gz@cv#Q|6w%ZN1(ODBm%@H>2ano%mbf-V|eEoqZolu^}*CYfT=DI|}pR
+z=RIiimHDE+PO##6GjS%Y1N*pG;J`z9MkdnP^>K8zaWZ|g-Fvu8otX+ptTUIY-FGnF
+zX$Q7@Pp66z`#os;t18wLo~fhn>m0uSxz`Rie%}h;kH<AZxthM~@LkZM-R1DzaMoAM
+zgQm(CYwh5<v_(Bwuf&nqCp+4Eayw#UvDPe0GB(0kZH8-WQ*2Du!j3jER^0zy#`?O)
+z7LyCt&Uy!5`$y}N3}3oE&e!?Y8+53*8tTm&c5(GCbg1`StyS;oH)XvQICt}7<A`zJ
+zgkm;tk?y0f!Qy-t9}43gbjx|`gKvMN{OVvV#W^j?eKQ($sFV{Y8-LUK#d+IE-{8E(
+z@mKAf&9k?I<NpU}tBJ~|c5LZYWe+)&Jp^R~s;r4|>#XzF$OHcb-WSu^J$(Na_8#qX
+zo7nro@IF_2|2_6T4c<@D-hYR^PlxvfTKlc+{Rnt}t@izjZW+G;pDlpjhOfPASN<X~
+zu1mUUjF+@`?WSjo)U&4cu08Z@p?bEiy-USXn%*trhV7Ut%gm)R#*$6FsZE=D)7EY3
+z%_!akw0~0+zhSQ(zp&4Bt?rg<x0tP6RleLCJ08JqxpsYCEB>30;=hT!h%i@A|HuD5
+z@nEf7yW8N}30H^18b%&!`*m%-QN9D_Zn=!*)um(r^hxm;?LF6a$Hp*Gao{ix8s@t3
+z(%DrHJUi0`asj|DVkZFKgTJL;>U!~P7R79S7QQ<O*Iu|f;CcqGJ#b-8o853d1=r2c
+zPt28o=dusLbqub@F&7A2zfO|*;V_>Y=7o3wu0FW_3!Xm;*MGwG2wa%!V=(;195!ya
+z9>TmKaQ!=6n8W7(!PO2|8(jYe*X3~i16&K?!no4^3V$(&%}?RF7p|XRjuyBuht0ph
+z^?%^n4A+n0!W=eLaA9tjTj07IF3e%G5w0J=^?kVJ!1Z;wX2Z1}t~=pc2N&kB`7T@$
+z)RSZGxg_#2hPi<_#JDV8akhMmIIFGVXy)J<>GLStKxI|@Im0|GbJa5b$xHs{s*Yr>
+zjvA^X8XHinBc-sts}y}X6R2wj)g{i%Bd_dw1?qZ5)RpAg0QJG|Lisxde-|PDx*-}z
+z6lh1Zuc=zyQ>gA}oYOC`?n|leX#A`WtL}^rt8V<Q>dwHrVXdY@*+H!AU{-brFYA)+
+zoi!}{rD<^dm3+}fEUEuNI1bYp|1=g02zBJckRH%CF72CxalZMyGyXSEs&8Byx{D~D
+zd8X4m#`q?5ro4Hq(HC$2J*4V0WPK{mSHg1z>JPE{^?9<%p^vLrdA)ykva<yk(*tSi
+z!=2Vyf^SoOIU=8fl!Mehq3S@H^GIHskWnr%jJwf4aet>34~ft1G?GtLTbnwCEGB6C
+zk|^vlJ|@DBb>9nRFlQz_>%p_J<t*N1J->&xDse2K-c{5G+(*jk+d}QzT<zOZ_y*&8
+z;=XYcoi)JU(<s(cJQ|lp-`vc;xmNo|p9jO}o3F8Nu9N2&vg3_y5ye?Vnp+_7v|gMM
+zkngvMXL6iSCX(M22zs<78lMqy{}+%AQHDZ1O=ft)Z=B@U&LuLp%{kcDJDXzjX^5C%
+zu#aB?dpMqFndB|)o<RF9$~mTpGbZzxUM=z&8z(WZH=cu<Bx27QCnr))(+RBnKTtje
+zJO_pHN;c(KKzyT(Z7k(oKphF5sTfVU7*LK!f9w&Ip8@#RlaWZ|q%Afz>0w5woZ`^m
+zkKeZBpd^+P<r2!j?H2T6eD8Cg*<+pcmtU02^(ybMlJS#Cem5!RmHLh4&cYapIO*cq
+zdI67{=&qaM-{SME0d&hehH3%DPgU`Sc|PwOC_bZ#x#5Y%vfU!~dDPkbk#gyRDD@Wp
+z{+g8IU*O;6vhP$L*Wt#ZUdJ-7Ew<-g_ATD8_{=dDnHW3NNnA!TRHLy^F%K)lS0?S3
+zDp!gvXE?1Pq*)!2$gX&BOar>%ruZ+j37$fV%NGytv9W8NaXu{poC}+&#QFWhiCzHC
+z@9q!h!?b#%?}0`Pr@1U*O-174w}5i<UJQP{gx>>zUxmj%Q_K;kc(DVmoy%1YCcq8i
+z1Zcwj>i#;ZSGj*|G;fZzrc^v#mB%|v=KYA~6?fCOLuifRx=ZP7?@H@f-#yaUePX2X
+z-zN<3gHZOL9plVkY=91o<Ei3Xf_&p4ogV5wQLltCU3TRyit2iX4l|r`Hl(W<q9U&j
+zz=7X9=H1to#r8#vnOcqQiM{Jzj^h~rFvAc!%`Dn$@w+72XYpAE#{H$Xe=f(}F^-;5
+zon$<3#OgFuU-W*wksjNRAv8`3UetG77YDvU3_hg~M!n*9|KuE(CyT{6Rq?fO-!W<K
+znMAK~54wW(pns%&WfJB4#ys3LED!er%G+I~<>Xemz2~wVKd5(`O}W5lQI7B#EEmv3
+z$|GJ(ImK_LyxmEZGiW@;7{_yGCh6*@u^dV{6h9Ghal@Z1-B4!7_}+-i=+<@WhWEu@
+z6VJ7|BFFT1N$^g^nO1R}o1jkD0Ch!NDcw$WnT5{plJT9py-R<d0?+$f+gJ|c9b}On
+zGn2(8SI>}cDIR$o$@nfBYn4j~%O#mecZBXpl;h(+mB#-{8b8cuHHC7i=hCx*c#~1Y
+zZ;X$_n+zp>V@w?01jip^%PQKe!<^2ZC$s0N?0G7CuJVk@oJ6&q1JO~nc2(?lLGv*`
+zImOY>B%Edv?H2xaK<8EdGhDCO#!voe%}Lh<&PmFn)Sb!3kN0_?{Xp?$ZlW=nbXGQt
+z;;sxgjA+bIl}{~`cq_iwAs_4-!1h-TZC1GA@8S4&jEL9U-h*)xDu^aw+^KS!%jMc!
+zM&E*RWp|HQyyPgRuR2BgC174pVqVx2a2+R|R4>L*B-&C+^a*KMEnI(s>yL09g$v{L
+zhTytG#J@LAZief1xG*m)#(YE>8gsQ`URTTu`vRVI#B+?8YXGj_(zD;d1$)BD=itIT
+zsXxTrWkf6Y(f1v2Jp<PsxSmG44qQ*cwF@qkp?6YS-y>Ky!1ZgmFfZ({F!l;uzodG9
+z0N3~7`cJqXf$Kjory5+ppguKVjApnhSWW_E-~Tsyz7zG+Fs|<&mH2%ue@@pG%*PGO
+zZi&_*_o=J@$a7FwwrDK7k;)!1pY2ky<NllG8P4r96Qx}^i^Zt<HiNN@<sSo_^_5Xs
+z7nN;_)1Uv%`lI%R?fvxWe`$R>b2NURsvP>XW`I7;jMJx04t=_j!IDLB;H3OqD*RAf
+zWPiduSeSz{iPloNA#;qVc<{XJr@(_xqOzk|*$*Aco`$m71jBBc4}pGgH<HR`5bhr8
+z2Y0E_vKwrDR(>+DM`Vwt-)@xy5`KgHnqE%7$I|aK7tx4l&QZ)Yb4wTOCpS3J5S51u
+z<-qv>qwQOe{mY4tnj}BQv;XRR)tTfuU5X#fIcn)|khYzfFh}s6Npzn~dqB2U?i`du
+z8jSM?^*TqB=D^?eLU)Dlj=~kq5s)CAA4+oaNLOvQi|l5}-owY;VxQV~obv;soTTk<
+z4HVZgQ}OyVhmVah;>N*5n|L&58SwXR$_t70Bn@ltNjqxK6NtV7JclL9Rl|U{&m!I)
+z_uix%;XB-8NuF2xt;(UAM)60<-=gcuKgfKRYHjCwt(?S&PpoGM#j01a{`q*D<w?fI
+zCq9qFi}8uDrLmlenS>jhYx$9Dx|Dwb=k-5?Jv82YdNEF()p#<|{voll#83xWB4?;w
+zmcaE6dthIG@={sU7edNQHw{f(UaC1~$s(s_#>z)onyi{hya~@6o37+fl8^BDW0Zfz
+zMZc5HT9Ic%>7EkRFJ&=4NaayASsZoDZQ|m(Yk=XeamFngAC~wS&PQLZ>FO>-cgOW}
+ziRkV!h-XeG9y?X&a*dP8lv{8Y@J}gGKNvaQXWxQ#0`ES0%UOm*{miL-ZM_8@!{CyB
+zAo!c-!_8$mf&hjWP=CBTzfJhEsP(oD@0pLpuirvlc4rUjeA<-mgyd6{Nyky{E&Po>
+zFr(-<>K{hn?+&4x=~=9`Q_k<nK6~F=(msoN+q<YOCI9BqI#qh=T%t!g6t_5sWMqT~
+zWF48miS@HHkM#@Me?HIN{u<VHfXS}$>>@ZOZEw+DN^9zBm(i!-OxEC}Ja(clb0|g<
+z;wzV6O<}MWYOuOBSm!ZVZ(y?UdD&dhhOfatg2A8a0Kdu)rR4pQ3}(#x%VEZxejMfr
+z4CdiNCLJ&G<P2hMx*XbcQJd&zBYd1R+TklpGKz1HL~`L;0@qf!cEk0~?XiARj}|1B
+zYh3kdU4cC>bGX3n4|M8HsdK`0<x0XnwfEfk7RxunZ2FNmW&RnVn<E_wpWhyBetR6|
+zchnz?XxDpy$I}DIRF{)}$Pd?#NUnLC$y6xUPbK})29j&uaFD59f$R4qQ@xykOm&d_
+z4bVoR@H&F<>X~ZCt9z;)ulK%*G0DgGKE?36lVX%R;fUiE?e_mk^D~LHxjo<B=EM2+
+zHrG&_|Hj&UfVG+I&}KCEP#pU3(>E>t$xSx=y9l-v23wW}TZRT(CBe3e!4_t)r8>Z-
+zbRp+M4;H^EeMsHJKYW8=9l~G@=GkFgqWKVBMX**dSZ6a>(;Q%p(ylMb?*8$)NL2nq
+z8S1RLx9bW<!&KikYkAo3()|BUACY~#g!OGS>zhmO8_6nZEH?Yub8>ITdQ#rB@(SbJ
+z%{62F2)!kezGXDW#_rX9Jdys4f0O07VD#thBZ|)k*^XpMm0$JLXZ9R__}$SX5;hOf
+zYh{yg5$$5R2Gdo&Ikb=bHB<6tPPwskntX2R`O)M<8tvGx(T*P+vBu^dL(=5ek1(4M
+z!^!<eESj8ofiyXj@s!Fwd^_=ss53|3Ld>}lgzGj<*Rve1WpE+CQAfJ2r9`XIZ{S;S
+zq3+`!$wzAu<}^uA*KZK-s?*-h8m+lYqcztZkvS0;Gd%ta<NH+3#q+^Ykpn$W)8II#
+z(UD6CjvE*pO`O;1hwff~#L5lF`L1Z*W0fBg+DdkSJDK1fK|U6B8qM=*u%3KF!a9<{
+ziuRKnlIzi42z5Pzb-A^=Qnk9?pt{bzVbzt-a$aKpt~e5#(+uj*#`-%n8m9Y7KSTAu
+z!|Kmw^(&qQ%f13-vM9HhN%Z2x8`39K*)vc#qi~lQrFZM2c2lK0$f5U6H15G0C5_7h
+z8kYlC1zh3gSRejF3CK4|q$kkn#(kRnagQeFta(HF?4X=;FPrb<G&>xh*B)lS!N1es
+zxw50DL))!}aW}$K2<?o4{Rqzy;a*=P;7As^bYY%k<60;Zuw;m5AZKQy?=de2>p9!c
+z*0btYhbAj**JOp#H!NS6C9GeZ&*nDn1#GRVHWq7b__Q{@!rGXXpzP#(!=95@!I4aG
+zOl5qMg5y<9#&}+nG13?ulP*Fo%8mnDD#4aPbfHFrr%;3Eo!2dRM6OUM>m<W8T_@*%
+zJIwi1*ie&`4I>FY*zT|fPVdFJGEB@DTm$&q$sfi|{J^DeIP(L4cwMez#Escuoqs_&
+z+>A(m$xD6rYC1ps2G7zgP&tV(@3KYb-a_19e(55Ho8stvmbm%9uS<Q#KEe^Mo04db
+zqb<>#_Gs%;xfY}Cc$bR&%?6#R%OqZW66u&!e)$~J>KFQDcqz9j&l&0_y_NC@QD+#?
+zA4KS5=w8t@WzW{(%OTo__ino9uqs{<^H#kUiR|+7b5P{lhPX!iV_`?EFHW!^$v6S?
+z;b?QLT)Q;^x@g3qi@ILMr_sf!uUmBS2aJ9wKOSY<YaqXY{&*VYH&8?}=?xlBb1nK0
+zVtindN%I~27u5T?^d5C7UytLzP)23)gkPZ4-+e6(9M@ysF}SYN;NUiNuY;YP>j<6f
+z>|6(!Mfq}bXfJ*JQ;RS4IK0RClf?YRE_W#N754tpICZ@Dxm8B!AW0`@)6u}#S9@c1
+za=(7fqG3antmCxz$DwUC`LwsUL?XE@_PL8^GV5W!Mg22@|Ht3_9JP``6tD8jQAX6Z
+ztn#p7T#?)kd2W*OrwZ8L|4h;`b<VMv(H6c|i>XgVv|fvpue(>;GM12SPT9r_80`^z
+zmMQ(7k^ZF<{o4xku8iS!Bfp3C{}J$d3p;l<nS4eRY*8PPe)iCRdd;%?@x9Ylk86Er
+zQPjRv+gSiKQTcS^TJB?Wqaa#tLuVG#tHYd5e=L8I%Ez89>^P>(`HFbOcgoISlAS^2
+zNWJ+Z*k=?U>|HN?$QXQT3^<J9yfxIRY!yh8AN)Admurp}bRB6Zo`qFD-am~*UMS}K
+z1I)`}reCn}n%BtrxTGcaOkO;Dhsu5PwNdeHX<3G4+f%Z#qK(`?U_D&upS}*Re}e0~
+zaD9hp64I;+lIxHruA*~0twf_rh{nw!xi6&2mkUTPY@qK4k}tX3c*S|jmp+Z=RyfdN
+z?lV?KejU@<b585C*qPt!wfkw>eV%qdS-ZblyPu@pPtfi!)9%M<_m|Lp2HlU+?uTpl
+zLp6WRLF^vqBIVwW+63e2M@;g$)%|lk<eNHP>^tLo7xA;ML@!L`qfholVK-oTkh2)i
+zlhuz8tdgNkI-jk4XFJ7N?EY=<+^13T9x9*u6b5sa$ccTpORXEE9mz6wzOW;{G}ylG
+zT+~J;w6VFktv9v!$DP=g$7R^$ezi|o_6v#sCF0!bU4kxS-$Q4m9!QN(nf8A9St$qO
+zo{-VGp*zFDhgR98T>z&G;H<kk$$0UV&m->FV{OxT{#nWH%I+>~p3v_kcRS|5jj<W0
+zk)ADw@<k&3ZO3|$Mtau?|B3Wh0ZzET$JK`USQ4tEPOIbN!?F$^)Nx6Ib$GNoP8_yu
+zln;B7j3%J9D9_vlf0N;FdrRzD%B^NwZ-q&D6#*v|bPgDGwvQFe5qr2gXM^^}$1tbl
+zRO@*W^V_NLwuy7U$}aA5=!eSriF0D0*uq<{a`qqQJ_aM0kAcbon@K(fEPjLV&2vX{
+zMa23Zya($lsuLbyeR2J-;zyLPxM6IG>SK@xP=4;huaf*)?mZlF^4ESu<s(-<Dw)K$
+zD4T*wyv{q3$PMv)t~spRFuxA)Kii<(HX2|2-45{o9N>Q#;IGE_G>0A(W4Yx-in0F0
+zR*ap<_$}cJKxbC)SyJBm<J`{^e_t+r0q$=n{Qi5s^y~S7+1Z2V2QV%pl&3s_xQ=8w
+zTMky&oua&f<qga$sLF4MmPcRLtx(s4UYX-t__a`eJnvykr|u%%9G+p`hP2pwXVgZz
+zjq!v>UWxQo9=7M(#j$vl;xegru`fS|dLAYmy!nc33(GyKjl=dyFn3|S9fE6TORVfz
+zu{SZFflS(WcsvE<$G*XGdXIs*bH!mRKd`WYA#5E2|2^+$^2QMdc|(*ZJF$oMH;)Tr
+zPqp<nL?SWryO^&Xox(Qkj?R5~CMnY?f3z!d%;of4@YJ_-VJwvoUXf!kON{~fKM22N
+z%qxd^&0tUAXUsUx-8o6dIl%P^xbTcwymgxfIQiu(j%zS_mMfcd5Hc>t`slnjNFTxJ
+ziaPtH_}66G%MI=$%+6xrT6R%h<}8*IJdyJ&oYz&dXD0XA1NtzW;8J!X<p<`XJ(<Io
+zMYfrn0Utx?xr@Qf{d|D#WM>V)H}N@)cwW#Co^vUG8R9mF@T_<(rOO<y`UkLhh`#4&
+z^c~=SMDa{caKBG*bG}RAKPh@{PU<T&>AA_ynI|$XBcirCxv#hx{*_<4o8U*-aj)<C
+zy|fMTb@g5xUn-7Up(oC$>dAq+m97?e>+}h<e#SBy<{|xs;={7&934L=kx6uAoZ)<q
+zNZAyJvp#Z|`v7K>o^xKci}uuk?2&qIaLy-~O#i9&=dVQf@WaCIXb3xxmCe3Y=ds+h
+z9@IJJK$`T|Q#so+qwARQ1Y~m)@`IW;@OvnY>5!<O*kQp}45EAVt#&iM=6v{xtF&>s
+zjLm%xS0a5LruErFeb(bYDfwc!6U~Bp{-oB9Hs-I=*bYRy_`FrT1nw=VuJ)cqpT*kK
+zU>;|OelO?oP1-!Zf}NvvGhc9<+(){LfBM`m=a?G&cwPhNJ<4cdri*b?Sq>A<;~YjC
+z5}DKS`aK-_eVIeQ@qBk)oPJ+P`l>X7EBid~aMO9<A^%Ij1M)g}uHMPl0A&o^Cs2>Z
+z^-iyyv-k~<!@gUfo!#_mXE$@{Osn!^y&^id<#|n@oA+n3wPHf~OxUX)ITUNN!SjQS
+zha{cO?B^_}hw+Gr%eP4f>S6xd`kA3OaScKJXqz3*{8_M$!l?ZiWGVFbfwB3IL$UPT
+zX^--bPcn{Za+8WZh&V_6F3NCf55}C^s0YPd&r?Kh-1eSp;4j8r_#y2HIbJI!R5I;5
+z7G0Kc1Mg6_!#v6NFFa(ON8-<YhphQuO#7djOY`)-iQ1W=_!t;7rMJ$ea}Q+{Uuq)#
+zR&mj;A)KnS%O>e4Ckwe@eJ_8f>_M4iZ^ZW#;(R|P!S6@K`Tm*&zn6Q69Agj3TArw$
+zQ?BD=RtEi>Jj6>Ojej%}*_CVY<s$wZ`XAvM4xF~;I_BdkjK&5BIqpoP5ATbi?1&7b
+z55L>-vh=~){&Gb4jSdv|QP<6?{gI!w)c2H+1~@~<&%)<2x_~~dgJG>c_o+RWf}*Q`
+zcsZ7?iabfg7b&{>RTdW^OIxpsH&C!%#_X5b%pV{4@$|t!OMd!tB)V?0gb(6jaUMqI
+z+O_T<gL@ad#~i!4j1C}Q_9FSwDVw;<fi@qa{n$w^iWkqlfZ-71cMJs_uKd)3JBRUN
+zIZO|PIQ_l@PSKX^BN~uKd_^hagOZBcdoXvqsqrzU#>be9Hm8tn1Nj&?`Td!Uwwuwm
+zw%E={q_Hs>L}R7uP<$G~;%4WkvS8e<ewm-slINn3<|hLVV`x6S+mW}ZYkS^45o1k_
+z8OqJyqA@FAdQe@LtNN<&x}C;wpqLPxXLR%Z5%st3_MSnX#>Qg6F&pPFW+v&`Gnw8z
+zL)phjX5@a9SD&+dRry@xGQ*z}<PEdfd19wCJcmDtl^rKCKG#F*P2HzST}bpEdG(R(
+zK3(#~(R-K1M~~9@=+W|hcJw?5(Qu`M$RWD+?C)at<$-i_%8yj}knS2~@B3DVzPlN0
+zlQh_`)L_4g^k4ieOZD$8{~EPNpzN&5DE_PJca{$-_U}i(bCxST3C>aKQ_r^?`h;hh
+z28xrR<`TkE?*L1p^Gv~lYozE4fMv!P0Sn+|oC7R_m47ekb<~_wZD08Xw4DZRfAVoZ
+zZL>2IyzL=hK-)v0?LT~c{{24j(#5x3<7(^OeF1I%Cc(ColAU#rCarTk?>Zj%>+uvn
+z2Yoz?-itWKKH)S0=jF~1tavMmKOBhG=r$8K+ZTi%IoZD^nJA}@?|nHU?QZ<N7jTB}
+z@%eM`-mSgQr1$vznTTbFLc0^%pg24m(S8W<Y$e$k_q(l7N8@Mqy;sQ#WiMHAe)#j7
+zU$WwRDp_VL#bew>e29u~&0{R!zW9Bn6H|Nx%57E3R-xG*qI-<DwEG(JF9?xce$hqx
+znO{aeOpC~G>Ox}5R3zY&rThT6&y~_YqHRaWUB-s)ZvzgJbbF1lLHLHAPx-6Pv;25v
+zW1^Ub@yd-#u$<Coe_J0@6XSSTdS0cs<n}C+$-4L)_tWM`<bL$GS_1OhMrQZS0GcrB
+zy;z+N@*=rR#w#Eh&rNOT>T$x@J7!}@-wbO5&rN?P&FIS^cymbZM|k=9(h}gk3dDLH
+zFZk2GQ&yZYd|vjVjA=L>{uU<aN1)bB4vpmqCZj8!VKDP6Q2L~Kr!>C@P2NLYx6%co
+zZiQ%I&-v)o`h%(K^H`X!P5`D%CO2TLF`R3!_F1$^>2^I#r-!)C7yy1R%T+RzbS{c+
+zsrrhbzT9(m87yT2%rl%P-lf9MZ@j4KRkZhKe{0P}6<@VDj$TFSZ*u8O>xJk`)H|i0
+zxR5%MN#}8~^`tt~<224s!8mi>2<k+5E_#!l)yh6)&7(rnHQ-*n8J=Ug&~K$~WW{f#
+zZbTn{+<$QnWU@2yX~vJbM;Pl)q<Q}k9gl2gKXucY?o6i7!n5sZ-XDov9Higv83%iA
+z5A2&64)3xtW(K?)<nYc7?_Ps<_+06V14A@_pDzh+<i8Q_#~t9tcL?`?JHU<a5bj@S
+za9=mX**~yci@D?_U1uKYI`c`_iMi2+3jb1TJyt;7U;osZA2EMxtxx_u`?uD*tRR1r
+zTUc%dr*-G0bLmRAi80cBgj2vxx{q)=l71_k;vNY7=q{o<MSd2t<K#O$$Gvc>!*j($
+zM)QW#`%HLWEa=A^TWlVTPrtA))*oP$w%6s*n#^+8>rCw(wx?oP?H?@9rK^3-O>39$
+ztB=6i^|Jf~Ido16Y4A0D)><tmoffXuhu}GuyXytHX4k(U<20WS&y4eJ7}Pg|_~b#K
+z$+Hyc^i1@Jo@LN8g!$8R&aorZni9TNd2_nB&EXb+PsXW}G1c(*W2kHL?(6DLN6KT;
+z@cM3|`m$Mlnaa1}0_wY(>T|35Xih2rD~yGG;|tPml4x8`J=O`vs8jVS{S(f=cYhO`
+z=i*}PMR*U#sh9gbKFs_cg^wlR;6CzOOf}bcyE@u?qA`hJu73h`nhZ}tDvQ4BW3{{w
+ze}=L-Djx<sf9W@tz6SM-=&ytRGD?Rk;D>9hwm$y|-zk5{ppj%0Q@#@3kNX_@v9X_i
+zJg@a5i(s#2KAV`^Vh{B}`FtM#O(Yr{2jN$~9pX%vY0r!CO9uDPBSsW%eO%F2m-M2u
+zt!~3_NOmQ=yqjq0NYd?)PFegONBh=DC8zYG>m5unVvrC2PvCWv*?nuI|9OtQbSB0$
+z_ey+cOlXVx`YT*SWe(DNBj2Ayaz4t0sbohP&dx?9yAB_BMg0p8A4fkb5%*R325L4J
+z70>E@lw-tL+VMaCH&U+0XKQ}L<QXWt*xRP`g?F2bE@64hm0*(XVi3ieRdmKpev24G
+zEGdr9V!`KftaYC)W$zJw*PQ^X!?>t?Q9on;a3d&Rl(L14qcQi=T)^LhC|^`A#b0xi
+zzmMYW2lD+vUjE^!ZM{)ly_Va`Yg*@?qqY<n+sj05S?RCkWoLP$j<&LEl40DB&nHe3
+z=OVjPrpYl7b-A{PziBMCn>tf6j?oHbbM`R5v!Ub*c{bn5b%o!Z;`i|FPo9_O6Vuok
+zIS<99@X)%(`YwU`E~A)qqltf>Mq{2sb58L`Dn6-)=D|Sk)mbNx7N-u+6QWK0A%aoI
+zVJh!4$2HtXr0wAT%P0oF2{2=<KBT3py^n~-Cb=Xm(Ptg1etD0+yomP<@|Ay>;E9ek
+zz<6zfxQI7L_;;7F+-KJsm12IQE&+WVCgE?yJ>^s?B^eIe!MMP9rXK(1kRJC&(u-v>
+zc!Uq8C@0T1UGx0K#|l<45L~RCLC^-)x%Bz}nYh6<=L{n^9EoIw?f$sm$2|4PfdA3M
+zdcV)|%xB=9{9L4O13b&hAJ&^(1T;9GbPw=1CtseQP~RXO%|99GQ};Qe$M=2*?z5m=
+z<`qE0k|mFO>T_p)&<8Xnb$?rLb;mHcq+c-p=6Sg)$Y+AvVkbT?_t@#oZx-__VQix0
+zVeLI<o|EH=H0|M(w%*gvS#nJ-(=&OPtq^4boFf@jcLvpsv4(P4?wD4Z=jbcaNoNGH
+z@Bj9kHHX}B#yY8=IfUamm~`*h-XK~FNUy5toNPYu4}&#61=~gWN9C$~%&_tZVlJ{&
+zkXvEz?cr;JuQjzdl>x2!l_B+QgXx_~zm+{8NBAWFA+`?6g@tD!?s!h}O%+<~Ok8V&
+z*qW<M0ADHn;42m06_P(ZjzuoXL)g~0&cxb-Z#9fvg+d=I?1Xo#vy;`@*~w~lCV2$F
+zxbZp7N1Nt}qC4uGlo~I^izU&#T21{Ni~jn;z9PS$%3|HDBwNf1DmzOni@Nec^2=1P
+zAMx5@$9Rz(_O}m4`o0kd_DrE?cpxgr=3HR>f|Cbj{b}T<uGUr(%EmAzy$5NZpl9f}
+z(h1Ly7vuTR6m3X7D|w=2K(FxZWSK^{blD8$uEBt-|97x|`6%9ZFCTQKOU2A*1mh1}
+z5BpOg<1H{Bg1S#KT7=$0-RDwn=yVt(9GCUSthrbi<=cUOMfsfNVExrei=TtJ@QA`~
+zhL(rdq;+V*SYIz<f@~7;byMLl>bVOjw!+Upw{#Y2jo*3DvU35<*&YUG%`r>9z;#qe
+zJe7hO=f-O%<@W>S{YCzNG39Yoaw+N>FB5USWiH3j4z%nxfNwOwbXmuuXkJdFx!9k3
+z9dbPu{KYVW+8jY0*y^dV`SSF$-Z|`yburrq?m4L0JYjFa{7MJZ8f5#>od>mjh;rfX
+zqJ60Hpk=Q+k=)ih@1V6WvHX1Lxvc#lmC0Z<0LSoODQ1PrkG6*PAsnBZUDiHy?tq0S
+z^8)uFFVQm(<$qVaT&B>gkMEs=YxwWT&*YHIn8R{B@V(@j1o}MCUQ$4NNg>&ia>=jo
+z#lOVr{;q|+1o_dyj2>rb`LPTwKi0Pa#=jnjrN>$1ud8^BT!wqk05PbtSgc01-yA&<
+zyWc2ZX;pR|*?N9|Aa=jWVsjH|Hqw-q15(e=X?x=VNei5EUTyn8(s88W;c#ruD}J6(
+z*&}(Zxb#S@Z$J|Hb1qIY2Gp@tm~FkurbT;-1<hISNOR^LkTi$Wn^zoY&Cd4><Gyet
+zGLX&`aTpJ_8Yq7PXj2W8t0CG{BlNaXXRr1|UH^;Yy6iwKU8;ui-DvyP=+dGCv2+RZ
+z-M&F|DffWoU$7YXW6uGLP8Be^<Yn#8Jm5^1cHr51mJ@On(IwPHXN|Pz((C&zoaS60
+zT`HipkxO(*@$;D!12yfy-<K|Vh%PBOQVBMU<?o~U^wbIazJ6xEGak`j0@o4d?8~KZ
+ze*tBSRV)gM|D)F0Kkt{kl}-!SCV=Ne`Ra1wC%gp14?l3Gg@q2ZutuYWHH;P(0*sIC
+zk53ELKIdiQotpqHG&NfIulwWELREG((ZYY;?@S8|7~K<o2K%KQh118c?w7PMnqQi&
+z|IGI+TG;MDKhB3%P23+#tB!phORF;8HH;@6cxMyFX7c`6J+cXX{@__@-@twwacm??
+zpPqqmlRiBfLtVtRLD;t*S1|wi1Bn-<8#n1azB}=OJpX_6SxX0AeZnwaG>n+D9JpuP
+z2Y6EZh0rT|t=#jt_Pw9j&;6vbvnd#d!DQ$3uRLw7$qb5F&&zwY@^^k<>GXwOmvrG*
+zG5O)>al`10llx1a!L{t7E{aWoZS7aSWg5+omm2`}u;qK(Wb7`|nG`z2X7e&X9}n>s
+z$|vl4;x|&H52%RGb=IrtN%5Y^lXGC4t`RZh+j|~-Hdem&C|}YGkRxlJjYQ8U3g2;(
+z(Ox)h*_Yi!Uq${9ls74-Q!0}^Q-KcV_LHk{FUCV79Rbd9h2KNR<ofIg$Ht9Pas$dQ
+zH-Y?u{wnJ}wEFM$+Vy9bLtm0J+Iy;=wf0ohqj|KP+`~v#xP@%t%BDW!S*y?d`PZJc
+z>=SAnub}+1sqCzVZgakg{6}u0nDt2OZlaj*$@JUJ&UUA=^D4T(iSi*UqPbP%fNOQe
+z^a$Wu`IMl%`@J5^hd|*B&wAY6%W*0BZY2{R-zRO@4;_~_?BDN`ekU*QvuxQf!tcyD
+zd}zG2=yo_`%K6XlL<Y9ED!vcrh00N&bPHHVaDY0{x9ez}yoWa4Sf1ZYx5dLV7xA<2
+zyM!()n$wVUS^OU0S+q~m8Po$}Tv4nC$7?vn73Jfo;*erHYOlEqzQ?jk=cjV3i8vJI
+zvvF-*X+4H<0@l@0ZEdYa9m|2X-qk?6Rudh=-}TV{AoM>Bb?v!Qp4qFRIbThG7t`Nz
+zmXj6v+LimPHFqSnt+#pK!1DIyeX;x)wud>xy(+e}^pz5Pt>Q@vi3hDFy-pCueJPE(
+z&^?&r1uuYnTeZ?fAn!xZ3RzsaJ=e<oaKrZvtP>r`4nb{pS5y7T1S>xG(KFm1!t5Lk
+z${fiz)^-=rSmWMT6|wAVKGNkX{zm6H-`;D%?YTgnvmSj&GAw!Fg#_vxNM2Y>d~7|F
+z=@I@n-j{VNISl8*1F()3lYTgZ_*jhPyIPCoyPEBZ-`^`^h+sWGqCGXb27pIRb%>?+
+zDD|s?*}syQe-zfWnryO5m_7i<aIyGZDtwxXteCX|)>C<QSTPR?hjkHybqVRR2FfdN
+zC&5~#&7~#udkMjjOfVHD5RW%VbrvUBXR+o#hVWy2OpN2Vgz0S17KL*f%Rly6q;Cn?
+zATWmC1jD!=>mLmK!eXMEn8Q}&rSaPF_OREEx8V$LqiKu>nFy!+My+EWt5ngMLXu<j
+zoJ8W>KlABQa>Tg3v3izFcvhp+)NV_rFk2&$!d5$N-Hf*SgKfQAfu3$9+KRtd18rRk
+zv~?ZqEq7_ORMFTa^tVEzu_`v^1o9cgzO1A8&6sCuoy4`UW8An`*HyIlY=$=POp^MC
+zjJ=kRcIx1^-n6}zKBAD(=>kTluiP6;rxEsVLY+a42iwyjeZ9Su?>$xNN@*<>6YZ{{
+z`GquiE#UereCPf<>JMs&-%@a-5^U;>_zBp<Hg;HaFzW*Mgc@2~s-0wNM~xq@E%XPy
+zhvsTJ$es6eNL}w;KsWCJ9Pasy?QP<_7BMaz9kDVtj>{R+OQld;RNV85X<sCGIu$%c
+zM2FS>f_qUB?M1lvZu`vIi>hheNjf>c_n*?OJ>w>ZEAIvF88r_3+f@nFJJ9~7XcfX-
+zh;gC`4+V6NVlmNoobM08UbIBpi#lQN*~;kDt9Z}oRL?V#PGLPiA$sE@{Y7pxua$kT
+z!LoOg{!XonCA7yVemaT4uvmk^r@^p~!GL*ViWArmPCO&~kFcWsSn(Pa+FUK8J)w;J
+zh0&*^Orz!d^X%|#%d^9GKZ6g?5BX@nkon&a_abeZVA1dFdK!-_$;V8@^rZKx<eyw@
+z%DKEz(Ro-08-dnsB;FDE!g|&(<-hbU^*ab<`1?Bi2JY*5Y+i~@fbjkdzT@TVm9G@Q
+zbPen&74$pPFy2C#o3MU%{yIqZyLu)wHJNj|i)p=Wdp9<wKoXlTg=~Kkd@sNgWHdWS
+zd(|>{uItYH@C@xUn}N1$*7meVk6L@$YKJ||ex|X#=iARXpZR|98QpFw_bL$+h4fun
+zFh<j$oSWp;49Xdy{IgL{R{KoEDJEt1U0VHE=T~J}(M}rahLm1y{4>(tEprI2r`QUK
+zpWj3|&=$)})U(CL6Cux;9*xJgC8~o_XRBPwCz0?m(D_N!G2PdXuOG_1d-A1hmdWN{
+z3i;I7;4?dW3ZM_aBY%lZ=KGaF<y5={l{@y0J<_L^=e5Uu{dsz>Y#n%x1^J1yd+g`D
+z)5zy8&8lDc>t%?z4C_Un;~aKQ9P3a1YJ1N%R=?1j!8jgIv-X#V_FTMe)nu}yYHJYb
+zwGhTZLbtPC=rqx%<s}x|K%D)e{HCank@p+u-X7;#>Eia}OWAVeo{P^tF3+CHeB-KZ
+zYE#0m-oyUwCVGPOu;Wv^F9Mc9AKEP1Yn7ij-*dmd=i+U;Ig}q*;Vl{)+>rR%&wMV%
+z8pb1=_Sj=eChxIgO5UUCN7s4nex&H5faTY!I!xKFo8k{DUxN%b_tY6|J{Pla4zif=
+zYW)=Gc^Y0dj7Nb+Zf=c@aoe=Nt+yO#Y&r4%_?!E)6fqs5m#tl|!`emPhg8yq;5((S
+z;%nE#*6xX?rCmy2yKmBSeeDk2WB21#ez$z>df3{1mFS4RcK5RSg^m&V`61TY-SPCr
+z+aGh7Ea72m*CZX0TDvNiBkp-UPyhXGl3Ao1_s|;UIW<+T8eei-@9j@tJWcR0n!wvr
+zxv&Z~8KaoV7{wj(JSpZ<KtAfBPwe(Zlrhx!kEQXiR(^L{Zip<(ouhQ$;!GpWRYj9b
+zMw1@+#L}mG7)^5bLz5;weet$c578vm2j$o9C7RUsuAL^;KW(Q;f81@+B+MgNuH_Ld
+z*Ju)!zx8R0CV4cPR7Nz(qtPV3#y;FFb1Ot?QU}n54hO%FLz0I>y7YW&tSu!I=n{^3
+zG0~;sI5~w9;VFus{CnrYQ|#OA%v1b&w=+-Cv-|vbil^i76c6l<<tbhnY|*97yT2Ho
+zV(@wJ6gxk@IGzG&$I{(jK0o2rXh$KV9fcjz?u-5jxDVg^v0WZev?E8O9Zvm<hl6<h
+z%sn5UKR+{e_m|JlY(8P99pBh(ryak0%1%3qHQG_E(GDzMzB@iYQ<MNd^UhNmKLfNw
+z<Q3CsN7joL?dWun{Wiw2|HqS!GU)tIb<~zm`M~)-p8t7D>IB>@e?}&=4Z4|Kp2K_e
+zIm2+R1c+BkSe0+YTI9bxZ9>Poj$mEqmAY4K$7j>8cJ^#5ka85-mRGaBtaj*&yAbQO
+z`r_jE(3hpum$gv$-+*U3Go-EeS5L+2moA0+UU|wsH)i2|aeLQ`>^bVIu-$Ff+1tJE
+zI(xgo6LpocwvQxX9#JU+H(k}%`%QSK`h)t2CYm2Xf~h`g+mQNy)R8Sl9T|K(_=H{W
+zNbv_B`I!d)r3C+j4)CA3)(-!XYh&Rb1K(|W%9`s<G}qTBNj;{Ddl-xp>%G38SnnC6
+zONwU`x{BIGyF$5T*G+E%7-tdf!hU$Qez>%LbnlAvEd+S$N!N#SO8rKg?_i4K^UpBP
+zQ9pN&$S-J|yqjY2Y@}E`OGqbMM7F|$e)M-|cS+cHPMy<LM6_Fd>y75qbN=>S`gR9=
+zyJO-ar~_qH(f9lHz86lj_dRo(z3=}Hb)n662iB2?V=B-4H;FxKi_+O;^Y_&hTeyk%
+zgk<tH<F+W&n{IO*?png~3_JG6duJ!^0l5_OlGmZyRQ79J^Is!8N6*2<!BIQmD5@K$
+ze)0NMonN6kO_ra>sm>o!o%l_E^YYGJmaVda^o4s6Uu<mD{7RvHW$RS?I0dKL#|ih9
+zLa6sqjPXQ!@e-!{#Q8tSRoY$0@`siw-KpT+Zs{87ur^Gs-81?2cE|6M^a=aCNsYNn
+zu5%Zx_i9Z)tNM=LHj$1{{@oItQ_2ous{{ClCJ{S%gSf8&TDF9ILZ(8UPGwzCR`nO>
+zX#nXzo~cT;_{71xEdC*QfqY^U`RO$g&!XB_JdX0)t3&($-z*-dN#i%veyH;}e|&Oa
+z7zg5U)ZT!)+112zee;;b*SLZ9Puyjv{r5d7Y5!%rVrf76qVjoxJ~uk;-}<CAH!^m`
+z?g2^6p5mjuAPeUpqb-Bz9_h#uMt3Ucw>mqNPUVaaSwH$A-DEE6-IlqiOXYS^w(FwE
+zHC>CD4juQ@%>XOHfcxxPEf<uRcoNS_nGd7@{w{%QEnHjSdKIqIaAmEs^H=u)&$9Np
+zw%!MUFME(=GyJ^{c$T|BHbZ;HJp<T_>*%j<0Q)i0yN%3lyph?B|Le(EANTv9?d@bY
+z{_c~O-T2Vpw%$9Q9N2Dr-;>UE<4sU!ShE{@pS0VJ2lr<;CfjJ>BUwN8zmDh`w{O-t
+z*g%VkMrS}DTu%-x7hI@)ccUghZDsP)R<iHj1ARc7*-Wh;C_mwMV`<Dw0AEghaq4rb
+z`9RdSNVo5<gEmK}Saj{s&WpF%>NaDPHzt1MY%_MU@BVV<#oKq4omJU+*J*a%UA-0`
+zuG@Cg3SjN=9Q9M%#5z=V%ivDSZuvHhpP~sz4P#e4yY6e}Vb|R_)!zPEt^Eqt{xf9P
+zjruCb;W3(bTD*ggod@>yW7n;SW7j>MZ-?(_z8$_C2H#IHHYA&;%C^hp2f)({P0Vju
+z>B7scICyXAb!=w#UG!zyOuSpzh4xdce~N#&o%$apU%Mt24~CZyQopmv#*1xU4d3!I
+zO)TEwlt?67?Lmvl#+#}37?K^sWaDjOHr{|ar@OAhvhyMzR@@nDL!AZR*U|4Xifg8?
+zd9-JiQ4ZTOqU)=voz={id|7v_4OPjqW*!?uD4UkY#u(cB<rCJJqV0Ay&p`$Czx83H
+z5A$cPj>d!8Ao9koc7Rts<1l;3|30tRiVcvd?CLQ0FyB`hwRsS5jx^0f_S7)jYr?b#
+zKk|g!JGgE9p(kQ(;O+1X*YADM-hG-*VeKBv241*I+Q6$<#pY6bv7@aw7wC5`?bZ03
+z+l%EnbV-MBZ18NbVRZJSi#T{v7xUHqv15aI)n0tU&Rdl{Vd;!84}C6MhZX#uc>59>
+zHxJ8!z+(?UT|J(T*jU<!b{NJw=xcD5bH3ax%@5Gc@~bLXo1U<r0m;;2(2a`5#kX|C
+znM_x8{S(rcJVSf0bjW%59>(yRC*;|c$xp~QNCV|OS_ggDZnpI*zYx?3ZS+e1DhXpd
+zxsW$$@45U5$^WdQa}eto-zf6W0Y7w?DRVC(51T|fHT=8lx;b5Uz?dhKejD{%8`)S5
+zhx*4r{i@D8SS+eWc=y5%i97TQyi3nB_qbu)r;Q87?pO<SSn<TzC!g0IyQ7?N=N37+
+z+It33KYMq`ewI@|%N_cOIXW?qaXHf+mb18)(uY5#+n^ZtD&{)YpYnvAt|i~Np(l&t
+zuHroX6xzQW>Qp`qyW#J4pg%ss*A)(DulB<?S9mSjcI3~NOoH<Y>CIOhzS{xcO<`xY
+zkk9PcVSTIeVB$VGi_QooQ@>CLWHPu4S-#3bpyg?T$J!+GxkBG?jByPff%=oEUuALN
+z+Ux+=>>crQ*HutnHTB#DaPu+17zj`AuxQ6H@{!ufp0z~nH|=74Vcbq`WA9z0qj8J#
+z2Pq<skCl5%;;2HKo8{XLV;juPhgS`J&Y0JkPG>3<{3w5H+M&lgm+}h65JLKiF&E$b
+zD0a_OILaa4WV99Jvp6gw9|t`9_;YLAq5WMLV=arFk-0Krn-{w>iO0Y=(aSiVv>b~m
+zR94Z!DLW(`%hc#tCcTe5F6r23@YhFucCj2+iNsfzaq#5%KXHZ;_FAViiyu91KeLE&
+zHy(f7>L>gi19LTnw^hB(Fm|kRj{V_c{p>H+2bSBGcUZuIdLz`$iDwg@m3%voJJLD1
+zHx*+M9op1wtb6*zr2HxQH8=G8uW^Id%l|jT)5+{#!!TwvH`KPYgc{B2Ky7_vC>UD4
+z#;j<l4K%hiG%knt^Fp^Z_|3VYr47M=>8lSl23m~Sjp0DhEDbd`O)+LqpG&_CqdL@5
+z->}ply`NedS^<BIxec|=p_b6HF#N7)g}UL#+)y~w918mJ{p`kN4UGW~Lqnj&ESZJx
+zO8qOAHaFBQ513UA!G>BWROzp42pQ_`R{zQXmMd#m-r#R+SruqDORlK`SOTm4E#~aT
+zmT+_H3TP33*8)&Je{;CLwZ-0)d}T~;4*Bb9Ln}lFLe2hgL#R>0kNvF*tiTrQT5ADv
+z<JJZ&xguA6`^`XLWr*%d!Yc?rRwYnJOY71GK#(~j7^n>c+HEB&t7`xzcmvI22j-OW
+z5s{6|3#>wbYZ0dEX6P;Az#j#{s0`KD1<WhWs@nQh(9Ju{Su2*7!+mLJia7_cSzYae
+z5rN@d0UfG?ncc9w5eAo|B3fA~jPz=MW7w=((-ID>h~ns$R(}vXF2`+U0H*@}E?GF&
+zoE~TnHb7^m`y1=3ngW43s%<WS8VCmcW<|IT%g&ooYU?|Wp)be>Wevidi{-J+l3=YL
+zoAK2{hnrgLBhdn|+PYvE^P2*VCQj1kW&T>29hK%xQ_MlLEU*&hHWV?+8^Zot7z_ld
+zYR!tJp`bG!ssoLol?^S>2l&3RVYRHcQ2_1_3e*ZHXO&iKGX&R8^Qus&PNC448(0NH
+z96PR6)e^jbm>AGXE$l*T8beJjYg)v(2I?lyH9atPD_Y^DXuIWViA{Xi5RCqAY7OHG
+zsD(~y=!~KpDk`Ziy&BhkEuu4EddhDxXS6i=8~s<CRZ}YDTnfNS_s7&B-U(^|t4&`g
+z)q!UJYB4Xuf#vWxpt^2Wg@Uc3ZL1DHtOr;PVZXH=W&`SAy*5a^Mu*>+6=-a1)mCL?
+zpe5jMuC0fUfI7)%vweZp;pV`K0F9oSx-cEhguP{0TS2rgj1(&bDaC@9;$GaL6ewPx
+zxVxmdI~0n$yHlWeahG7lf(CbY32wQZbI<wiJ@?P|W0ILXv$NK$Su>fvv)21gdF}u4
+zz=m<n1JOf2Z+O+&+^~3Q5Lh*{nvGl8U@WxtKYsp5znE_04`%Y0ENrmYg|xZ4%|>~6
+z5SeZ>msMops1?5%*8F8-j~T4^*u3e3Glv#nWW!$JD$4h5ZoL|N`FD<yf66QAq<lMX
+zb#TLgaoQ}IjjifXmX5~G^dO)lQhKeR8BGuub#s|GM1s*85UPPtrHNXgw#Z;@^H%x-
+zApbT1(2v}1R_yQjRkxhB^Uz9H9gxgLvJM5dBTsC!3rANQ3d}*X)5ikEUm|b=v_6rq
+z@eS<&xpj5>L??;gX1=5l=J_B>MA9{+Nmt#0h%qfSHP{)-I0(Nh^7#}O(<YmT)aDia
+z)u{;m^HkQ&-UC~ZR$n;2zx&bCE&$tI6NG532et6oH?lMtt+p?~EJ%`Rn}D5vrV>1x
+zDQ4C@n^@BH?*WBo60QO%*__q&m!zFGg;-3SjyRc_Xmj72f0LN+oVStrr7Cj`6YcgS
+z<IH`h@&DAx*|%19<qnKt7Ri-^luW@$&c~vDp*Sc8{q?X6>$)WM6iYtc8_VUByt#%h
+z%oguR-#<ls;$(waK(egET7+aqQ>Ug#5E?m~ivD;>(?%)pAl<20d>=1O)Bn`*c}9h&
+z&_#mw>CYbqZGP~V3<qzJBn)^x$8yaF-5lS*<mL-L?AuIb-wio*$g`-hL(g<HNZ~~@
+zlIX4B<3-wuOKh&lFV<K^_HnJzlHXf;J9MK^qTK&v|F$mF!hHP(DlV@z(E|rSvewkO
+zxmPX5F)CDI*X`9DqQNlFz#YHZA7+Sa$DZGe^~K?AyDc~R)*W4r0%)sO_b4c32Gha(
+zLD$+i%*oK~KT_kcKLM5aTtHCf95)`4$&tE<xYyKAA-O9Fa|8zQ?yNmSJQTGJ=m9~}
+z?OYk3dZl8GQhd^Qu!@!Kz%^tIqD79)4P7u;T4l%LZlZGOW)I2G#9a$MlMfP?9lIY%
+zX?W9nm>JO`T1Up<&p~zbHZKARXD8n%JHu2x8ZeSF8J%W-jCda2lrBEedr0o>AYb~n
+z)V#St_FS)<DDq#^Cxq#xQk_}c5Pb|ve6lbBL-fWNo;y6;>7Ds%-ONC=NSLaRCZX1@
+zJs{)}-U<KA6_l?|$6?X{7_m|s^5j5X;Ki4|;cbZx0lfHFNa9M9Ir89p{Pp^!oR!55
+zF<XKn>wNFd$-o36sypR$^QqS)zB!!#p}IEE$$-2&c!09O_#N{jnPmzdx#3ZK7Bcj>
+z_*!qJ<^!$`pj>d1DDD{sei!Cf@L=W5@c8{`aA(U9h*k44PoZ-izDGN;KOAxnG$?ug
+z^&lNDa8mg+eqVg2q<i-k_dXjYe~~SPGLw*JZ(=wh7*vT5CApZ?xSuB~c<RMnF2yJt
+zUZiBYlWfibDRS=2b7=X7sfqiD;WSG!w%?=h016%I3-XJlK7Ici^MV=fRnR9v$rVcU
+z=fp-EfE$MUHkTkU`7>35v$>+Ftq8{zb)0RV$rrn~MXU4oTt*UlxjXqOHD36^jejIB
+z@!+4Q_&xYLTo*nusLeXaP(5IMt9hT(!=GOofLRsO7)J=w-<U#{1H7-3_@?Wt*vFnX
+zfV70pYP#*`CTm^)G6mhW_{eoWTETEpEASrnSyv{3G!LV!n)Ve*NlAEmr2Ia{gEd{-
+zZj)j@3=3)8Oq$(vuDHk(8>HG^lUyQwY`!B2kiMwIris_pp}`tTNFj_n(?Dmk(`|Yt
+zGI5!<X5Klgtd%sNXq+UZ8GpqjOF7GKbh<alO#RZPYkXOSH>zB(m#(d<p+UmRHNA%W
+zem#KU1My#t?c<#ng0tc{a%=Z5{V0Y_$?EEL*$zT;Yi1n8Z$QS^tTXlRp^>)Oi<HAC
+z@-DcIU_rf-p%KO$<a^X5FZXS!EkY{4`rO;Ea|AcDuQ6CWh{=(?WL@IsMkG-hB5R0!
+zqAc2lf1t$-mW-|XvjN}VSp1OW5}w{IfXVa9>_T$wQtrWij~U^T$|s<qmbhs9j7hA0
+z460XFne9B|PPy#g+3pdB4!mKwFLYu|LcM~CT?kroeNTT;bwn|`=F+^9Xlg5P_Q!2&
+z{|0XfRlYTeB@n%4${H+Wsi}8u$*8*?>X}RLJMS-74sCzCi#s0k+hT@y4D%Ps%679P
+zL3xG|_6pyW#9gP2>WDf6@}A-a8&BVwaPwvK6Qe=%WmG{~qV7+sHoku+hZZbq++!Qs
+zRDzB>9SnHy3J^sZ-ttv+pFV;>x|z=npuRc_vrXMMdu*pij%|jBr7a|#MEHiQ>uq#N
+z$U5J!<8HsotZS;UPR1_LX5(Gw;R4@m2AxR+>;?2be_!%F+RpP&Cc$D2<&}R;ANr+k
+z&KK#HO0&$`a2-g1u9=v2-{3SC>fJMr;PCY<UteW!ilI$XE6^!ApV7iEFxXdGyI5OQ
+z$9Ol>IhD6zK3CBkf@JeEAZv@h{cXS81SI#;QW474Vusju{riiCig-LFhSlWj4$iAL
+zs>MI%7R#Ybn-;Gz_mKHJjaB0HjOHCe+I0Qh&pF$N-H&K^jXSn9v(eMcn{Kc}3a>qL
+zXTGTyt8t72Gl$@_YNvLPj0k}TU_H1d&Q_!@Zfpay)G=x^GOp}F)1hOw%i7?lE*p%l
+zWwa2~yEZcgd~c&*xPbH|I<YL=Ujg1(VPVLrsB^sh)MLbs`H))ITJmp=Kz$Z=pQbUF
+zW&&jL_)YNFp7_U{*TR|bjZp5o+Ow|o@=p(zm-1>`jz7ab14zwGmMP=8LUSB{<b55~
+z6>~(rbMACiZHZwekWxHe3?nj2jmN0VLz{oP8uw8LFpID?OdnX^+U0`zrM-2ry_0pb
+zK&fBkN|+y}Q{w=GwiXi;leQM!OUiiiH5)^w?I<g2xF5UU^ew@C@lSu0W{GiYgYYc$
+zuN37*r(gAdXy+9-w&Y_}zUhP(Q#E8h@l2@aBj5Iv5);tEk_7z`Gqx3SA@nEuFH|$!
+z?6?L5Hl2#6pt{Vxl(*yEad#Yh>;$7fl_M@L7ZkX+!=If=dI_GTIlbon=VerwzX5Hk
+zFy$mab4+}vw9yL^{M{N7r%hmEn{r9Hf*dbN#;B;+(B;|kjhUF%m6`Sc7e$-Iqp2pJ
+z4fkE98N!f8<+5{p@QhsBh63CMCGu%G3x&%g+3?spz_>X;41|00g>oI^R?gTk;j4-V
+z>=zJ-!lEUOjgXA%@q>`zXa8rP=r?pmBA+ba{;%*CU;i+5<SwnijEK#<RnR0l4)cP<
+zl_4D6Lz^Lk=T1H3cya1~MMS1WxJ0f-{IEnOs;oxk+*Bsa`7&N}E<Vb?D~Em`g4z-M
+zu83}Mj4msPlC4#L2}F-qtk6-FYAj_r+P)RqYg=i`l$HQ7C(n=x!-QhbeD<!h=iHSH
+zx4ceWzd`@jjE`b4XMamAMhhu?Q2qOb{gri`W*(r%liZ^b=_2JW#mYP^E&B2ft!g@`
+zT@Z0eae4U9PCnKpdvaS^oK3l&bmhPNAbBFwe(*!aH$mYz1r^4T4rU^YFN3aaCM?7;
+z7JB<Z;VndAgPwjKHG}aGn`iAqjwmAUXXzl))bQo{qxXkB4M&l}R|L-fpR|uVJl)PB
+zl4rq`74NDZ1txXfYP88^zj$<QQ?Mv$^*b<xL^cyXS5XIeex!zBa2@i@m#aSwu<q$>
+z@g@dZXHGTaby4sQtl;mgX!?&I=R!>*bRhSVs#Z<EQ-p}T7rym{HMIIqx4O!ma(Gy5
+zZ+K7tZV+)>s(AV#lscdC)lT^i@9b<CB<Sysx5rs?tn9v;KN74aQH9&{4XY%NO7q-^
+zC4qPto2$AXmzj-|#3HrFar~vA<DiF!loxf5eaQrtL%T)xjugmUt;Yt$zKmewj^o+U
+zkHS~|nEUDT=*mZ}^j}^1#MScl8h==ro91&+bh5wNZy%5D2UOVwC8DbFrO`S|g53nu
+zqn6^{w3%+S`(+VvXFt4Yz0cN^o||0Imu8rK>r}*V_sVQd&yCHLBGsHdX*=*+#~VHn
+z^Xo^sNsFTQ;)2;bZ?Tgaw0J3Ql}Wm)%RbIj6Kad_0t|&rugKB`?z9)?6xvG$-RcTO
+zuH`xBKc=I4LNoT*qJYzf0O^wWOjI|Jzst}+3fdWO^U%buo_JDvUxrM@avNU~wyMDW
+zNpU|7ijzd?d&&L}Nf)xeob`yV%QEB)zXrlj6(l)FwN*JivPw<#>;(lPs8ifN4Dm&~
+z(x#2?*ZI{Q^Jq!e<;?TbihoFK`4LoaiaHhkB^I^G{lKhf=O3pnSIF474r@*_-orPh
+z{`U)JHDY`W?T(^5;(yU3C$$FHW;rYNj2$Sue_|3xI6;VyWlW0(zqhm`z2YY8MKINu
+z)pSmB3|Q-ilR=wkTL+Ujy>Q7U_Q<B$9w_)NWBv-xN8Nw*qk4y7dAunC>VlrVKT6^B
+z#pQ0g{?VgMaT|FZ|N8?yD~FD{ZW1VzeP_g>GQ*I;v{5qkO0&73Yxqv~kIj?bq#(so
+zmQk<|ZEQohN*0{|L%m7MJa(CjD!Z~Y_BP9p#bGvCl$%b5ce^L&#~}ry!L^cn7)+Z~
+za|_$zpDd1$?jm98o_8kR-WhfO0`@hFr5g`ix!th?8C;ZN4fI2`utKkhmEYbhQg8{9
+zipKLXGGZ5h`fdwieB4>&VRar0%G8`E)u`%jnNr#|;S~9%pliyC-T%|+Dei_>CSIZv
+zk^6Z;6e!nJ;vDYw(ZutW)3MOslh>GTG&r3D-=bF`4FXDG(Ky@|85nE0vH#8B%Ie^i
+zs2bhfDJ7>biKT5L7@i?)gW6qk2Yy5K#MQ6dM%jpZ(;Y20i)2`~6-$+@gW#8#P6oyF
+zrZ^DpZa2TVP&1DIlC5vFyl2781Mol$uR?}`{e(qxghh4jkrP;s1lEPz8L!v6v!Tgz
+zEw%sDTr7#6*BS=bJ`2IOimyR-e`mtWC|n)2fV4ITot0>RcNN7OExF=+Iq`=&K_~@n
+zGkR2yHJDmQn@cnYP=s_Na>p{&4)L2K=?96LU(NDmmEx;_Yeb3Pz1{jV0C@q`BCx;b
+z2jb%dr{mw0Zyv+k7~z$wv7)k+gbzeTdT2#tp&!@431`d+5S4%Mv~%}SQk7{XdrY|d
+zFSvIvy#Bnp2>$iZ(_m^W*+oC$w4ewUo#w<7t#x|H;N5p_P0D%DCZq7MiZ{((iwCxx
+z3p<Dvq4_O_9i8SU$ZK+!i=ecbhU8SiV^?>jm5I4ce2VCV6&gskq>NY+2jNw#G8K<$
+z!GA4vuO(7EW-KMG_?6H(fDfSwK|ll6O_;)Lu^WQio%zNRef)j9_BmmXF3JLhOh6N2
+zERsE1Cw4os2ig3vAHukaH}ctb7D9XEC0WyV(jDR<_Y1`Jm6<K%y>FcXJ~Zu={IT~4
+z_jh-L-EO<cST$XNK0%KZarVE&kS={sq>P9jS&bPx>uizP-msytnFt}YEhvjC<)f^d
+zKr!!78krq1ju6{Zo!)E%{-La&)#fHhi|PjYXm-9I8ic%7JQC3^sn7hVDEB(wZhNo3
+zhUvtQ$x=~%G(=F1Urzcv<GYQv9kgagMG&PMaP$x7tN9)x73JqH?4n-Sn{&iroH!i5
+z42p)CAO)Q5t$opTx*IMBt{v1n+(E>+RKAix!~Cog)@u$JnrOk9C2NB^e79e<3-W^C
+zm+TWDafx_SD;7W<AL=KOGp$UObqm}J`0h7j$s(0Ksz7z7h$L<hcZE>+gKr&u5Yr*^
+zJRD;H1^=gPPttnf&lxl_X)mUtH3ZcSPhgtq^WPMp`E$V1f~Yu?-W+0C$HLp?9yip}
+z?e;e;4ljtJ171j7(w+#S<1Zr__xr-<7*KZ0GI~bKZn1S?OrHoC?Kw`dk0Fsy2JB<6
+zyINJC|Cbg7KgrE5*_ZP(<445Y{Pt*_L+wknQ*$`NZLNPG#L)mj6mp5wMeB2e>8E=x
+zM8+NlH@!sZ6!%=PD<k@cb4Q=Vx9%=L5rCG4efMq<`P_WGt~;prEN=aF9vdAldT*?D
+zUh>XQ>m2e1u6K@B<>{ihI$GG_$rWoin(65x|Ju-nSx~qt<W89XvTN$=isOSF#J7(|
+zdUA<%Wb<uZeObLqH64GOi`gp^O(HsG8WJmFarb5bE4SD*1kzgTB&s`Lrcavas&aSy
+zPV|v^pWQMBJ-4uTPjLg5b1p!?b8*74W4&NJ%;hd40H+ng%5{A$m9J%kJVe<zbfZrB
+zjto~+hUtzBUv%&n#CpS7;*R^2+vhktM0rjLY&kamD#9HoTK3vDE;+_`8*XLyF(44N
+zN6*D4@KM6djSY@vA{LEC0hbgT-PIFf<%;*bW-69KUlg&H2%hZb?1!8|J?F>F#Oaur
+zXIecKD`h{m+g|?{too^4=T0=5(NSUqJ@iGXlkWP)0lGqDoZk4UU1-Rd#`9p+Q!!Tk
+z+T+Qsr{W*|TMJfEZ4S`+!cT2)2*K#0cc&55;5uyqpGVZ9rMxI(qbY!Q0{L|dA*n8;
+zY)08f`5hp-uGS4)7d2u%=cvKHGc^)9w_X3Z-qww}uDx!yj$%YJam#b87{J;M3bgHJ
+z>}E5<cK|prInX!&VQ2<}Pl03IEazV9uOw;RBHg6g*hZKmh*{V^_#XJ@BI{V|*6Ru>
+z$R1oZ_m1^A90=_M&2Ox@4A*T((L98XFx!!vDd&fM0_p+=1Kg365zapN8<C!qIq)8}
+zV0z={0kXheNPC}Ny>b`rs;;x!&4`i%VH9~`!#jZR9AN_4hhQJ26XOa|837bPi3keZ
+zOUKS^j#NOa@JBib7!zloKz#^6Gy*vM!{4QXV%7(c%HkX&D}i@eZobGWr8vR}B7z?Z
+zhYNnpLZP~e6{rwy!#dXv*TSa$47-)>^bPfwQ3txr@sNjPfBqyAjhAz+4_t(NX^PD7
+zZy)w3d6acVgeCflX*j1yWSCOaU#vbvbhXE*y-0ZACKrY1+|z)2dbs^n^Q?d7y9jby
+zSdrZhiR)OBM#!MWslQ`Un0ir=zE8E)IxAtyoNL}4J4(*@=d^k~w2<0ZT;<a4Fy62B
+z3rb^YvgoWfsy$D`O}00!&KPBBrIV9QzID}WD@~sBksQ)pPuUj3Ls9D|z&AZs$5qMd
+zsg=MExGhQi2!O2C3wyU6^>~7kBV#OG7u&am{z=`MZx}KQzFD-;Y!kR&-79b&ZvYAJ
+zxYTFrxeT6i-kj@0X`d(@_elTN+x|(g|GIzWg$Z0NcGs69a-HmGU7CVw{-XS~t7ENs
+z_;sf9&}I2n5l`??$tN}c@%OfTtJlP=VTfJs%q+84wDd%_>+r^5ERp_GskZ=5>-6E2
+zo8N+z40&((UQMWdJNFv6H`PVI$>aOn$j*+l*DgDj;xGoizAk~_h`L3`ZqO;c`aV+R
+zc{L5L*8IZsLY*+e^h)ht`fn>PE-Tac`&nIo)w~H=4inB#-&QCzE<5%YJfGBzO#icu
+z5B7T|OP@P9yRl4YW!J3IHP@ykxhk-@68RNzzT9l~CnYn3Evnh8Z>;+u&3AU^?>Mby
+zbUo|RdRnzv=1$JiL9QH+rhIg*0tA4u1(C#sh=G0(A+@s7&_vBiMj|z9R%{y{4F_41
+zjkNT-^@}(R_+aKu@gML}t!DcdnpZ%0*0{sHub(p`oYgBqPcyQ@N8h`?Q--?|@0^?+
+z83;W`dYg7tX@nFTlu%x|{%*ai*s^B>@j>^XZ{fb1zkettewrHn^7-&%DUMb|ul?jj
+z^n>tzTG^r4pgITt`@!Die<4!~M!2hiJ`7<54DYwt>3-fuqw)>8cD<Cn)gXyGM-1(Z
+zh`B{Wb2=~*PSOn5;vkg6lEM#?MOh#XsJSQl^On)fC{(Az?&Ol7N6A06jiCL`(xp7*
+zNtdv#B<9l>eT7`mE0aZ&0I*{qJ=M9N-+A19F@SsfsIShjWv-oSz7=AGdG2-9qwryI
+zn6AK-G?0&~Jv>awmhMBl^+CH~0R&!XJqOwqVx-5(X}Q^6O}yTFIUO~o(DQG+{r;@$
+ztwi4GaU8WJy6$uq+9u#|u25&&Nwj7C01b_sz_BB-Z}Q_2eL3Si&+}vY<<pu<Aw0bT
+zdg;3433M0RzBN{DGXPm{HCY@#pW9EY>1E1xEy6d_9bwsp8Qr9mKTm%^C}>EN2o8&o
+z6w$8XBP%wG-cum4Tk50F6b9FQvNI)}QvTpwfoz;-*x=Hdr3l2-q$><1-PaM@x=JNf
+z)JmlDWd;&w=uQdm+DC)T+?<Fk+&#=GKct8{|Eay5cw}<je`Y+ihbXCpLZD^#U{P0S
+zW3GVu+{O04^ut!J%E4R#SL}A2z}x)eJN}X0c9uEv);h}b;n#-}YPuc<EEz*PjEXS%
+zEsun#2H;$lA-!YrfRN*_Pyg3Z76S%f)awg53u|%-nP=JK&0z-aU=6hG68T7{_SgM<
+z>_CTLo!)*p+l2W03g;{{SguRQE?5$>!0fgi)nDv_-{PE_>VCg(i|4I&G(1m(k)F9`
+zyVDR24km`;zUWQ{sZhH0s=dUR#SXU9wETHKUQKY$ZZca5u`D!yN$5<n49zeng}T4t
+zy{RyKy*IknXj!}>jMcTx_-aA(Vm>lAJ`xfV6>`NyP__Xn)|{;dtHGBZW(5V>nqA)|
+zKQIh0Ru}s-%GcWxcyTNW>3L}l6Q78tp7u{Fk2)S0GbYx@YEH_GxxZE=y}!J)6L@K@
+z(g<A2XcwKNJPB8M`79Jy7e`Gk{?YUQ3{y{~Ncp5pT3T>R>NM#XHPMK^Vn(DtT+Fva
+z{M)u-YJ5r0C8ph7bCM>eb-xs+(6*6nN7G@_aXhcGI^is_%K4Z&x0b7X!WS&H2hCTX
+z5;-dnI^}B2@VmB1^~-f8uvI2#5nP`#v|gEOn7t==Jn$DFGHAwHQAt%w@~Vh@-POY7
+z;pKaUjCA?cpRxT8p|z)6pI3E?*Is(023yJ-%Dg(^+f(qyz^clh;|GWCOjlh+pf056
+zGs!%mYwHKY%3FPCt<7xmzQ6IVVfqW-`hGaF<FkCn4`KD3v*Gel_sQAa5whgBGSW+2
+z;ET(4*Bt%SIZt<uZSv;D_OU_v70<)N7o{an?xd=zab_XW;wl*J+I?<ARf|IF->U4c
+zLg6-jPt|*kbo<w*sYkQBZGS$j-2|HPe~K$3lV>K<Go}=}XYcB5OOl#}p?z%nClbN`
+zjQJdR`N`FA;~9ITKF@M;SUtB+VdHAQyJY#~YL(5MPsX>ujhu4R!URp#ldsM)S6TOV
+zCCZ@r7-;)ggOF>>-j!Jf4^*CAQ!lI>>xenB+jVkhcYO!p3p)B3Wmh%gW9bpQU(rID
+zLwh0e(=f?b=uGSm)v@Ks&oiRJU+y$Mbx3reg-%~xC8pu0VZx&s?c+Jm=C1B&$Y1Zo
+zgpH-7{=Z_dVeKBy@dpuIsL5$)Rhd@eonNB;hkK<2d!D6glUQvy3FI?h^YV0g-x>qI
+z?75rfa%Jj<K;>}9Vz$%jhF@dd2fvVGq0^LSvN7SFUru}Arnbm0N=e7I*&RnjW?f6y
+z7}q~KXGxHM(<!<|-<2G;N%<;kSPpk;6JAuRrs4$4DBSety5Za=G?UUkKjtJHPry^o
+z#TZ{w`_|}ROcNv$?{sOO9jh-M`@~o-$Uk@KJ`q(UC`|ZAPju~Zz5Lp|mGy0g*tUR&
+z*14~`-I)%>n68LyqW!zhaWXAM4nvh5F`gm)UGh)f!aF<nEld!&j=krTK)AouW*7Yd
+zyHdgv(;}#w@r-8xo|^CyP-Mt{utSp2I;ZJ(CQD-DG7BfSFJqU5GnYZUH*qk!TzlbG
+zQgBg|<k(+48rBr~aK6v}I>RvC{1t|aQ2j^C2i=NG?-k4bHKrFzSx?wzYRPl|CA|FH
+zTYdNu)4t`Yo#DzezPhAi=khkg`4#JGuw&;LR<E7`-p|!j=_DsOnY2kBA=+D{(|l~g
+zfb)HPsir-lzJPz<%q)Ihy-Z5IT?>XEy@Pj7xXV7pzZF|E=WDx!r@r-6(ySk}xww4`
+zm(;M1sdhW-tS^8Q37xPX++%zFW`;u?aJr10HK{V6hJTOgX9x03P7XbMrNakCB>k!$
+zGXML}qk-73xt+y`wSn;z0hXL#CRp_oC)Bi~Fre=Sk07=WP1Tek4~m5X&JL2gHL`4e
+zPZ1N7BAl-0{|_J1FPHOeKKVBn(Td8|P63;noqIF>_t!i>l3;zf_$SWNPmF%t7T*?G
+zljUW87EZeG5=FG!wL}*AUKBB-kv}@{o7n(?Di6*Aj?bWb)m3E2!<>*ifd!9`0>s$S
+zWeOk12XP<xP8JgtV{LKrd4itG{63JpL57(VOCJ&os{V^|45oSICbYh@%GO{Ks^}u>
+zfo!2&mr%PD{9Tuqj4(80#@TJ!drfOJR*F$F5>AcY*8cH){qJ%@uRzWyIq#3~_1W>r
+z;rF-Fw+G6>Np&q)j<oLj(VrIM&A3$}cyqno+vD5YYOnSRBUcqZ@_x16lzEC=!9t?@
+zXKoVzRgM}|4|=0tosDV||Au-aLiRl#a&S@rLzf)BZ26B*1Inov5(;#r6lq)~ccRj7
+zKl=x~I7E#r32sRh<Oc>C4YcPlic~q?JeLd2MzHFpuo{vcpF{YnL5)8!#&6xrW|=h*
+zi1Z#d2g=R-W3w}qyE-lo{IR|2M=+}KjtGw8J@7S4;82^R{xx9sczLbHBS`#g+Ar7P
+z`n{U>FVlk+h{txf+1?5S$?(1{_pI&8<d$$t_%PLg3(dLnd5_Yre4{G<EQdHH``Jh2
+z=$_W_AbVo$-Qcy;bhc??i=_V$fq#!~1m9Vh57T}`?pE7Xc07L9MYXUOPRF$j>Jrq8
+zXPjUe7SQAS^AW|f@x#NLBNS4U6S(o2{rVPD)uXY`jiSy-q_4TGgrj;hYCOZ2U}jti
+z#iSZuq~-6_Al-n^NiK-Uc3Z#YHo5J#xXaxaQbvbUSi8P@U??3G*)eq&vAOO)0LbQK
+zv4|bWN?N?<_?TIMS-~HbkXH8|v(uBIz3s*9kh5F3*yH`^-g1Y#!FZN{^X}+qIu}sG
+zMyuGkA;c931rbAQB*3&lw%HnWusM)z&f!-GCqRhjc(z6v+#C`Fw3~6z0tbgIaW7YG
+zU;|`$mdiHS0PY}<Z(uNxVsZj{UKCQo<D)IfDKo7C&I_Ri008nlEORxV!AyX1o_g+z
+z*%~FV7XS?8wIZIZkp)`-bh)E!nzjBz=KmJ91;n;Vn{dbsY2y|y-H-(ga{H)&r-7Xn
+z8zcb3f0GCA6zKuX+!Zr5a+3039l#NH#T-Y4aZm`1=f_NqHkc4l2xNmgd<SO(bD-zu
+z0EpFHM98M<$|?|*2g};ZO6!ktO9%ll<G%-;64C&KT5DBr_y9<GqO9hNjO#*JfzmvB
+z6&vpWsW#1eU;^L(_wh`PCRh~kAG$TGfQ<o7pk_(13c%f_SsuIsq~lqx-oOLI+E{@+
+zRKc78!<qB?5O$D<G+2}SeR69DH<k_Y)Wk&1cd*l|>fAj4p*+|IzzP8IR7}?xfNMek
+z!11{n6>wOHB9Ip}Uts(l+z)KDX;uL50IMecr)Yej-JC;cNFnfa%AqMl77%Og@mW&$
+zzolAo`$$PTrvI)ENd{_IYgOhK8(03HiM<E%+WdcJ*Q?ri3or$`+02(4=Z28-kU=@}
+zH+cW|(1L&z(DSem86M%^8yNp(L;VbY9xNLx8?7?q<d9jQ4iIYdpWgDnzm((8h6y0m
+zs`)!u1CVO{|C)`Cd-?Z<8^GO)|IdaJz}>o87hDwb$n!eE#{WHlL|}~dUBQ2P510$s
+zS&;A1WQPVgS}Q#G^Ix;eQDB@HG6rn4BA#`q4Uy;8`(s=lGQ#~o$KeP-<593`Rs^2_
+zPbdD<4gSkcxBu;==cOTo+`{?!mH)4EO@7m>T9Wu5UMr~vmIIV?S3oDGYBa!tfFqtC
+z6Aqmr(LibLA5;Iw+rmTSd49|~q=$^~=;a$LfRzB=Jjbt?t{Zv(k6r(#%SZrlKptPf
+zg}|JN|6Dnyz|PVQYk(p2JSwExiea^UN%#Lp8!XU#o^fFa9w5^R&PjRRi3aES0d;sJ
+zL-}t@gVJUkx<W#EgbOxQ{>##mTklZ*V@*!X)ad-r$@;$){*P7tpVy-C2v_{4b9*R&
+z@qvp#X?C^$vi?SCh!D?m@rE717NBgy|9c}67_wS?P-0vbLP~A#!Dg9OgX@Ff#{z!y
+zOuX?p37<SQhxPEOBYN7E#Naw#di5e~;(zc(HpaccC<*jOkL+d-p6+1}ras4{wzy#p
+z=K5yen_kLCO$V1pk5sYm)wYu9RjsEnCRvO>C%2OM%wZN)Lw54@PH70UcOi}_*gwFH
+zwnDt^-3#@hya(QE;ap6{y<U;#NApq8!Vslv$8w?fA=+2Evzy4SdFw)N_K0r~b3^aL
+zzL;ABJW=*QS<F56wes&}meBl+d7`Wp<VMr}_C(r)XEC~l@bw+AjY_?^VcrX(=0iWC
+z;zMsqk96}MM0>3ry?!DVd_(udv6y)-SkGrn{QS#-Z5wq%_=>a_bqLT)`r66<i`a*D
+z45y&D6Xm<XS23}rFr84ty>@82k$BEr1lghUc$SJ~{hg2CnJ3HH!nn6+%B|1GvwNde
+z=TB#znyWCYRoG4Y-j`L_K>MD@s<Zv7Gs~H$=c+Sk6_(JxXSM3=yz2b%%+qhxng6VX
+z?KP{*yK2~*7nU;u%ZYB^Gg_@1@)m_12|w(K#O{bJc|ry+b7HqeC`Y}Oc16yHy(z}L
+zS95N&hP+qPZpk3tr(@nRJ0k25Z@V#XgM?eMF>kwZ@0e{72*ewEPh@UKMAs9d?g_D2
+zb@p7Xi@zls^(OR$So$T)_=`GY`DZ&vP!3rrlViR4QoeU9RB}hDHqJ;Fr%7(s82;_#
+z@fpG>9S51Ou3Io4E?z3@M@OM>WQsZ0^tcIobD@k;J4<^NEETm!BK2_-i{id?%UZDr
+zX=>RNarm9o^=`n@H_0p_C;6_@)w)^onLWZ^4Xf9AK4I-2!k$M82jZA}!(GS^cX;p*
+zl*%dB@EMH(%^en9OGKycLeYMfzq7xpXB+I@gyYSze_&Kr?A>c>MOrO?M;l=77tdhe
+zA5AQV0ZjeipZhiGi8nJ_pZvfbY3OXBy#Ed*0D_>i;b&PUu+7%!MV70@w~L=`8l@I}
+z$-60JC9>P}a8YR*W&InO53wEfoHc{Y30e9BLGL4`!luBn0j^?En4!SAE-Kj#VyHzD
+zVwNgAira4{9l|<9V^!szZpf8W$Y75Gd&B0peUN-@aP+DA?Y1l0B~Z#hnHGMM*~u~X
+z=7V+P!FL@^-3TamVf7c%TE#*ScC2Jd*w`cl-QW9Ixe5>8Gv{TVfc;pUloxT0CLT{S
+zicYl{<Cpi)zI#V$CeF#D>AH5XyBN~@O+x(}FL##eY}<Mmb|cK!%F<C+Crnp9IGF(v
+z^3ZJ{B~d;|fbRDOyu9vJp&i4XbAGoK{;oPLxl=c6LBceMG`iAV(j@2zFeaxNce5TT
+zF#)1ECn0>cLvmRPp{j_s!{rD36l(`F%R9M#%npk+=8R3alDRk@Z2I<hE}hXWcI^Ec
+z*+|dSIqG&@k8Q+_&@U5@if<Jpnb@raRBOb;$8X@z$VU`PMTc}#_N1>Jzq0A?X_W|U
+zqMDJ?O;MZn0cd=Y9Z_ugXkx#-Ye&yXx1d(~vSHB8D|aJ_dNtx!E!?qMDK5GL4Xcp(
+zI`s$5m14v3Xd!^jS}Nmb3L;L<GxS^f;GwwKJ|pZ9Zt%QT4S&3bzcT*Jz!jg@X5gf8
+zaNeZoE8Zn$ZRP>ZpJ*Z%$p`s92K67XJ>y*np@QLUl=Wv4Pq=sS&5zqL{sqBL#Nxo=
+zc7|>J_iM;_Lku8aI-3Fg_04Ze7|hbz;#|Q6Po3R9jB`V1Oo}CPrmn+&JPrg8#CeZ4
+z8lQ&;$UjguBDQ4fKzR$7ch?G+|L`%~!dmrGG#|UZt=f9-oIoDvhlNCLBZwY2Qo_*9
+z&>za_Q@%D7l51$${J792me=7M@*%+9&(uh5n?L@Eb?B5z_028LUAf8EJIY6vL=(Y4
+zf6Lfk#viFmN{Z+~&VAkd%KU~ThDIzAa)I$wSgCKvmWvv_b&y%*VT@s>z_b1K5%ow(
+zdlRuLa#BXrIXPiWzS=~)>9ZYoa-2N}_8ptJzJ^B=>T1tLFVKa(LpXjoqb^Hc46BtS
+z%+!bsf#Psst5~lc_fyH@Av^xXmkZUR$CKGV*vDK9IEC410G(o~q9y&Piz3{5ozE?^
+zu#?*C-N_j+R3+Sy^`Q#osRHU}2~{T}3ZWZ789v7}Te@zW4(EGmGRZRYeZlt8ihk*u
+z|KdAIN6KNRX5r;}FNQisxOBXhEBDB=BEYt5btn9=U{XF}?8(BM5iHD&O1&quykG^k
+zSg(73GKb_jk40AK)<ycxhJ}fn&RpcEo%r&So)}FsFT14lV|3ZSAF_kDK`|+i4Xvny
+z{@v1AgUi7NuOGwFJ!FMCxa0qbE`slx$?EP!A{+y(s~W0ue{oh-(5_NaDH9!XvZlsd
+zGh}>n+Z`AqtI8D59Q@`_d43u3t5d1A0n5pfcad9Pv3)cAipht*)7)c^^ID6Ep91S^
+zyJ1lExHswLJzut4LC)XtIUyDKS*}zWzlV-Kv`c2Hr&`!`Ls!>BS4p+V2S0eH+p+tf
+zY89f=@q?UQ!7^mjF}F}(r8Lgl0U)g;Z&!gCt+_MJlxocP54Jm`MI9O?=0M33Jb@Kl
+z7ntN;Gp<KUm=vvqX~32)Mkj%H3A+NM)u>1Cs!g3p@<pG8&;?<3Occbv=n+4o`_@%d
+z6r>Ck#?a^5cmym)z5-4_b*IRhKlU#YeGQ7U)1B#Rzg@gekhXgL;U!wXIJkRVLYDdt
+zx{E^3P*(;J*T{!4Ht8ij7Q2&x9CW>$uS9uz`;2wI(8Pn!!a+B6B=)so`Q%H>diq3>
+zHHj$7EHp|#Ta7a_;V(?`9hty2BoQJ>(OL@X!!bE*H}Uz(LtnlNv~2Ony!`E=wT!LZ
+zSRBH`qf{@%Biaa#&fia}gKAs$-=>4Euq1M{txC){*uv2cJtAC^gqMbIqS{n%*ZJS8
+zwNnUoK#P@>MG9{hC8QweJLey}5^^Iy$TeZp<&y?Mo-Nj7yJjn04@Cb>D{GlNS+<U1
+z2C9XJCB30eMH$8^I2E`bf7zlH)$m?$8Q$R-40UUI>-7WQGl~DF0m?-ByrvXZt177L
+zaovSeDeGs_Qa8x+YnWtOd3}JtZug);qOYUvfc^Hs3W{~ih|{r@pNl#LHjctji(YQ;
+ze4<7AHgefu{uwGB$6%aqw5k0TNmnUC{0rakU;oNslhx7G6AEcDOxac4FwPS%`aUOd
+zU9ktNi71pq3HcPMRm_6yba&z>E&E1lc=M0Bnn{%b;U{Spgq2AQAZO}5M>Hk>C+xin
+zzdnqD_L|w4m&#!*9b|KsAkSKeyk9*k(qA7;6V*$$5!L4c4A>N%+L(MtRw^BVl4@fZ
+zp+L#Mf5e*s!s0<`^3M!>Rf-c>2UwLjD%d9v$%a`09QU~_g|ex}c`twT=j5JQ`5J52
+z?rDzMn}%-EV=v;iPRt%%4sQZQE!|Lo;zD3D;Szhbl%2&VpPf8Pr6htcI-BzWwPu~$
+z=@O~;wdA`p^Ho9JC2Eb#BiPb{hH8W(|NfOsb5(m#tG3TZ&+IoKgQ!dkVl|8uupkSE
+zAs4Gcf^i$KiQ?>o-c$2`HUwq5^wdgwy(PQ&E<}sgQn!4+b@83ALT)bt72?j)?UC*W
+zP(LBTQQ%FR{w`F`sJ5OVzRW-28-b(NPhw+m*(Vu;EJ||H=oV8eu&OXA4`))Wry5|%
+zy^jYpKR{!5kd@~Bz41D%4c{}X+ZiS28FRuC*OK%SYaE3#kBohIAq-B6$6k+i_AQ0T
+zb=_w)W^g$%Jk48>(Am%~x~2My>8bR#eqeoam^bQuCvkXfY>DD<QTiGMjjg=@0nteN
+zaHH=p(P;&5j~t9JBwm`U568EEoJV((m?_L*cHYTie2ezeJ!<4HscN~q%^*k7w$qRI
+z!CPUJ4?)T!a*ef)Uh@QQeHe1uRRaUPuqYBeOWXi1?z36iHjcrS@RpO9S~8aRLFm4w
+zE&QTmeCq0sO|5Kfd+^?R$}6oC9L?E&iffw%({N@3^tE^Hl0*agn7#!-!K&`G+VP`0
+z_G^}}`iy-$1bqD~m+pi5%FWXkX|Sw_Op`lG=d%oqYzkomFI&pRD$`dWgy8FnNJjx%
+z1OE0^(@}kp!7HrF18g@T+}-waWtLbuv){`d?)s?aUA>&S=zNirq=)~Oo`MNLPr)M9
+z#lnM+vx@HNRT%Fv5qVLz`CBw;Y41bFBXt$|d+d=~7rK3SyiE!EB}=^}_w^29iyKM4
+zx?r0%wEmwn{d+Toh}TxRrGv&%fn5B%y5W{_FWM8QWw{o0gW47?KVrW=sEXsP6AuIi
+z%*Hs@GbS_RT-=I#^1J3&(R@xNy1pW{J*i;+Of;A2wBxPP$yfbEen(g@NZuk^1Y`M3
+zlEx)5Cnx;V%MWlyAtiuA{zVU(3B$=%N{p3xcQz}SXXDRU_yLnF=3xC5Y>j%Lycg1{
+zKHz-nod9V)!-KS>W<pw1bs-xoh~3B@XjY;d8ozSIv*?S+Yyyw%?(LISRP7{Bi~YFD
+zw(Nu}&F)N+>h8K6M}LowQ#Rcej%JZni&hSta#6Nzq8K7MV;tJ$CC`*^#vM)gb|S9q
+z^{9-8e^DWyTkB;~KD3b9pYHnNr~VIbLF|uWm2acb>ZC1^RO^rZlJelYFAt->YuKO8
+z1pBty-C&*W3n)n#GqG{X)R(d}l*&aTwcEg1`fqO4`oyR8{^7zQqQ2?b%<dU6aN(^&
+zg~-3}E_^SN-KdAne3JN5K#5<BeM~xRi;H)A!a+M8sf4cCr@X>v;`1@*pL!$FOYolV
+z2)}rsKupo8g-Ov1JyyeOFpc>>zcUu=l?Vo-%izX*Ad}<|G@{A+!XNY+MB_!b6nT{9
+z7w9IrWC!0Q?DpLs;Vc1eEh@w(J#^%5y<4OXYuV6PrzD_Z*K<?<a9yPxr;-zQQf|Ct
+z5~G#%6>ulq7%t$6Zu|a?^3OAyygh@(z`I&c^wfks{$1C=P@*O0>LUkX%%QrI^*Zdq
+zNA*!y1-9;TxEl(V{!eaa(&LFNPdCIDcFx9T0%B6?qvMgqcV+HDw?b4~%za@~k8wDz
+z7L@Capr+<x<56|+5b57udVOjiVe*8_A`IuZD%|9@Eu!UjYo;HkQnhXD(i!vs`c%6e
+z$c|rAZTTvtA7jL;q*dM3P6Nf{wrK2x?z-`9oP|S8m8h02(LQ9m)ijK-MO@EIg&VB5
+zzrEUb$1EUsL%RDe{kRgT0<m5nv$kmRb@VY5{J6)&tO9q-6bv#<DpG96{Bmbk?7O)*
+zYezeHx^9ySPrQS0K3&-!`q$VskToeUH=;b%Eh-Y)#hZE=Gk5lDAjKxTNw^fBaB3{(
+zZ_6!F8el9|*Sk~MmHIRY-E7<3O3m2M5oxxyd26)YtW~=ye>e-u>)G(uY?E1ye&VZg
+zlezGv@1z9ZK6@BakT5dWw^|VBJjw;QYkRu%0Rp8_x@C!1-0~TeD5Xe#X)INIHZ}bB
+z4itGL(Q-UD0~@DW)2!0hM@`qp68O~ixoV-2Iy;`N-lXnrf9Jcvc3he9u|L-t_t+D7
+zTM~bM{Y5dIIeAAn)%A0Er-|w^U%{YyE%$dj^x2^)?1)EG<?2@Rk6&6a)^hf=DR_+{
+zQ%EhVAPN-q!<7^UrE>-m7!S>PB|2j?h^8aL9YhiiNZ6ZR?^zWZuxl<yx4l3FIh(jh
+zXx9&x$ir41nC3n>=4pG3TZLROsG#z*pC=r4wEg_j-k!R>GsYt_g>PC8c17))^_!wc
+z%{!})<@CEC&|9KNvXyT6oNj`oL9L9RKQ){v5qAQP<B^|a)7x9NFTM7`vvn3&yOv6d
+zVn^_2spD<s8xmo@+NuF|h43i1qnXm*A7U-O9;l-2@>=IEMjY{4MYsFKocwX`9;z4i
+z$I)VyDk6hv#v{MhQJQ{Upu7<zqme}8ZEcY5(j_t6(@2LjpK<0m27T4cJ$47-Rb%_k
+zbi<AQLO3Z`_BH&B3zxyAoyU3JQVSBdzI<dZq~NHfGv2<(6$=pZRV&~%_JzI@5cuV;
+z<?olfba9^5Y8dK|@zB2c0dbUD^aKpi5mz~}+xIHc2&U=uPw!Xzv))mFc%kzKM~qDf
+z_knwsT>b;5FP2p+#OJ}cNf_ml9;22>L*=8Ur_@+f*@0A-Fj9zxSe}*Wy2j^RhIbc4
+zpVKt&1BGsN`8A+F4J3p^FZBNLd>5XhXM~HRLGd62h0k^^3dkLu4QrLXu;bU@@`E4p
+z=je0A>B<+jCha88)acLa3VCxUTRP-9nuQdy+tXk5DvTLN0OiO|1(0W&`ez>>nw;f1
+zf`7bC55S2B;FM>de&9>xVK>j0(fcu1J98xGF^1iMiM7m$7rc51t&V#d1-6jDN}%bj
+zOVrkB^@5DOJb?<E=@Y8H=CiL4_chLXk7}blcRU*vdjT8XkOp+k-en$f(ozk_gYW>{
+zoiBR`ux(tkN<Hg}z0I*|nhxMb+1y&Ui~>y1zu?~|Qml2TN2UIxDC*y;2o)%BK`LMQ
+zMUm5rcoxj_aSqeoLigx-3VGI~op$mBeUwP2!ms4Gtz$xxFE*aOg>amITdd04FtB;1
+zUu%_e?e{>FO%?TlkEN>E7g1>^kwvc#-B8EQcg}IRhpR^MXi!sw%&+nAqv&fVR{p3L
+z<AJ%h=pnfD`aBYa8HHYnnV(+^TbFj#i2Mo;zk_nBcRNdvGifef9ebs9owNCzBzpx{
+z>oR<Ok?V4+4fj&=she@;St~|#K*wD$=TX?PX@`Qg{FlJGQ%6Mz2*a4Ci%X=yif~ti
+zvRi1BK9a+K{%MB<b6O0^FWO_(F?uoa88psJm3t?Q?6T2{{WwK0JcCbIET-g(=wq8F
+zra@KhzTeJtu^eTeC8Hm_=ilvYhy98|d_5yjq-U!9$JMuLP^GGq@?an?#v5~PQ$UFV
+zrAVQ`VBmgSVv;~ykaD2*g8*g1T%khyZ2+$nB#^@VYZKl99QW@1)_v%x<Qy&YZ7)%=
+zr8j@5PLgP_y<=q}Tf=wJ!FeJT<y}{SDK$tfLKnEfpk3_eEoGnoexsB-vWY0qBl_IG
+z1RL_ByexlK1-Qu680wRzzG#;i`ZL7zK5I84Z5yWJ<Nsz2v#%Rd$nalGB3m0j8W*nN
+z*#)<?mq^s@C_Q?+SX66e94rH|2@F&e8GF7gS_Uh7+k|kXEeUe^@u6|%^k=z^3USi;
+z1n_^1gBTx$Ejy!Ai+VOJ_obN)UDKr=DN(;c&VQeebY|Mk>65Ml0Y5dAYA<52$VqBI
+zuw~|2mqWejSG(>$df;tEQ^F+1`+ZC*x1Y5?0Uo6Ps$HU7!#T%jrgv6_Tp$0rhI0Kn
+zYAHFc(U-dz!xSl9K4d|Dp{?xh5AyOsz2?UcYZH4U*bbS`1!gv=Pu(%rF}r$=zs!gf
+zr4q;4>Jojo^+wy@PJcR+^iHX_YW*vk`D^nUHHp)sQs*%%a_=vui4v}hS=(`!)R0?i
+z`hmi4-Lx0Xf0~%nhDpxOS6oF0(?05Ad*XSs-*@og4iwL_kGR+9bz`hMK!!X@>R<<J
+zim_Xyv)zx@s|hcB!a<NMLXkDvXo)$5gX59Hqr$MkYvC!?6a0P)l8g`{nlt~=@>`x(
+z!)2E5UFTbm($R1y(7W4B;fxfUj1V)**dl*lUZKpZ3#aGLEDVgSxka_gC8k}zso$P?
+z%N|ddE!8vk;h#h=1qqTs{g~4z9=Di%7bBvG&*<%Aew>EakynwH^hX;FRkx^>jRDGA
+zuhGy>D|{`TS-tRLPq=?Dyz=!m0502b`VlS`2}gsyi2Z`&pBzfGMaV9a^)^LkSf=RK
+zVvyZz`Ra8UX579wwnHvvgCa_%Bm!HGwPRfMK$>m}(Jj7Y=X$s&0ug7*`H4wH49^<F
+zo~P5|IbPIfO?u-Ud)KCZ%uQ=kjtT85A5jg{?8cqvOC<NFkDZTillN0qDSz2%l)=?x
+zuDARv>lx<}^kY96BVX+(wV=|tLNyvv>X5bogHncio9kN?Ud|>%0KZyN*G`e=y(znm
+zo2w@CwN{aA4w>dP(g3z&@LkLvtJ4#CLkLnz!zXbOaPBhI^{#1hsG7_~HT)t~FZOGZ
+z9GeOJH0ANzU__3>^P98D*k%pdIre702TPCJ_%r$`dfYRR$BX+L`HJ9Efo%=b3VNlZ
+zb_pRm&*z(~HK!BQGyHhV^GX5V*S+vj4vlZ91;J%Zt?gn3-}CL$oU!+ZM?IB>o*kj_
+zxsHM9%Z|Bj@1lihr@U&3TW$I|V`4Nfih*voGLQkI>s%+s3J;Cz9Q8lS<W{(fjF9sQ
+zsyc;>{eD$dDcFBsM{HY|tp(#@ww35JL*bOc9yElng&LGNquz9~aERLAXCn^hrAd?D
+z@@F&>_$>8h0Xv(&L*g)AsFI$xQgdJ6HOS2X)Y3?GT@9$;3s*>iSJ%tGQDzD9lh0x;
+zlPu#6j?t-CI1?x^km_i%je8^`%l*?Z4)tl70;fpefH=LgVog?Oz0Xh^2t#ix|M^*3
+zr#0e|E^F-T%eUBdH_*Wv8kLVjiDND4zghe|(w^|ty=Z?gSPJ=}j8O+!8F(1-oogty
+z4;>TSIqX1lmHm>lcjsn9GF;pV@p*fd^KzB-Ot6aM<Rk4Vq_S$j_^2t!iq9K(Vk+UB
+zSRq-~@b0Aj-PWF56B(plIj&hE7sp25kL`Nl+;=1WjPR%Lzr;M>;Q$b?y{rBGg-kXk
+zqa-J<^Z2k31#sAeZ4TZXGKG=N6@oj^MsV?>y(A6`%J47cyY>uOCK!k#MYi>KO(ov*
+zubL+BBKkx(dR_k8B{!)@@qj)5M8oKm!)*_D+fpsV_jX&IsXBck{t%RtOI&iucH#)a
+zgAU&)6_p2!NUZ#3UZWW>EwtituJhJfZ2v(ra<GP$PrCL*F}pj{fGK4M*BTSDr^mM9
+zx_s77f)9;S><zC4K<{okm9Ix1G-DT)EgtqbWUTtKTK&dhKjf_`XVDklcjgbSNa$~;
+zP&Xk$1W3~l23pMZ2l)}DVlA%vrDtp(N7Cx3^nE=#^r}~aF9{2y461U!5G}g$Nb=nk
+ztQcSRZH0LsUp_OA&$ZAk#lriZ6($4U4^oaS>hapRCU@X?*8G4bUkTmos^>;(zwk(=
+z#a1MGftly9QO5OzzTa%Ng(4MH(R19K=6~w`i`wUTzaoMd{3(C;K}x97a(OvJ1<WI2
+zPB-T{7KbcyoAiUe3SXCe^&x{ES&t8vMvHBBa7>%Qm-4Mqyoz;=tKf%IcPt?F`Wqxc
+z_+Mk|&Y&FXw#V**aLzs1ox#pgVYEzZ1Sp~udGBLis`+xMIsNW*385ZI5JmGaVyw~?
+z-jp|R=Zf-%pAzxpL)acc)9)9uOXHI3tSr8j5hsO9aK)9$cxWIz-CyILZ+T@aLSKZ<
+zRdJEYAnc*zayw4QZ94AJ#A1lG^wjZ?I`bzHwlT|5>SNmRbbYG!)w5sdB}bTmSJ-77
+z?8>U^kv%p1g1kX@M<;_X>-+?jEt*FzL?rTwwnLmbmO)n1J+lJ|PC6X&N@U#SxFTY8
+z&^XWrg8XS5c$z>n!1|v4jJO{pHPcpJ#G;c%u|bCH;uYY8&{`*!z+e#2ZV!c{U33`4
+z1hO6=F8b#`^$(ynX%6`%cuBOn7P2Z7p*}e<Zoh&yxflMX$!$3$lJv|<bW*w{csdK#
+ziyDSwsv7pf3Aab=M=r>cA+N1Ga!j-CEzKJTR$AAGgq**WL8~Q}09g?RJ?K`#fZkGR
+zsM7mRtScFx8~@YC5m68M*vHU%W4z22ZL7Ulz0|Mp&sRlZaIF7D(scke(S=(T6&s+U
+z0@6f8K$?K`4$`G7h%}WhO$d;L5=5Ga^b(K~s{D$8(tGF~LX$|1KngvO03iuU9`C)G
+zot@pCot-<gckb?YzEe)5$d9q2|3o{YlH_y4=Dr*|?+gyCHvO_7Xp8w6vXT`4h$K+C
+zy29<2k{yxw_u+~e+cnJ%x+>c_r)`cruNw;2R+{~O-o-pSqG`>M=7KY4_10f-JJf!2
+z%CdO%MTySyCBBZOpZeqOe7R4c*j~q7yjT~qKT-f1y1?CR#<MKqY0OixD1dzGKr@(*
+zX9$#D{V1iKBIW+U@50`1>^ZYAsn%xHR_)D>05n;~g(Oy|VI0Z9@%qbhl%lok2V#K_
+zXH-Ct?cQ&Qd-)h6d|icP+zQwX#C)44HNSC#6J>lNy5BuJ(S&hU*CaLLrIVZgAXPUU
+z{pZppcdkTP-ti4Y0ejNfLz^-X64urBf&$4;M;&eB9#$aRoi<^)7?8Td=35>1mX}WZ
+z)+9lA_Du7~5H^u$Ac?4UpfwLpe*5##c1hl)sFj<X`fU{E({g2JA_j;*F;8}mbl+TN
+z1G9iN=Q_hbT|`fxDfrRq|H&&Zpnz$92+X=8<|+F$RKgWdAdK=<h;G}u66>-ct1%3^
+zO8(Q%M98N|9DfX!2*UFR^h~ls@vV>kyt<B4-A05BKt>_s>iJu!ZTyPO3lyCN6im*$
+zkpr6*E3K+~j*Edf1>Xf^RhJYb=Z*P(^VZUEVE!5e0`YZiHig_d&Zk8l^fn0$T%W4A
+z?fH0jsJ?lky4I2o;l#UrbS$sl^cPF<#j(-e#)^FLQ3c5xt7&hp&A|1WofOZ|AnC1%
+zr;b>joE1$lkol%u9XwXtt1r6>qrTPT)6J^UT|aYwx1A?yyMom()%pIw4L^@y%DMS{
+z<ca3d*<J3$v3WFKgD9I#%d}j+2uim!VjDUEz3cmO!!p7jLs@zZ6CSQ_9*=BOdN}*l
+zZc%&7GY8NAFCr2mIRMbqfDXxt9;#kNsMAK(fYlJzmAMjFxuKe_8pj~+O|#noVG9=)
+zr`*zu^N;67&&!E9%<InFwOdq2JZxm$X{WPFkJqDmCQ@HY5nfE73l>WyTP~`u{Ml;#
+zLS5rY)at>NwN8CIFjU(0OKU2O{G81}tp0j|_7jwD@8l@yW5`ifv1P3tabv)EOMZw^
+z7q05@y-qm0@y&>IhO;8^7|Sohqw5vDb>!+;QgWV{P?PL0^_^>@yKy4;*8}K4wc@u8
+z_n8IUZ;<hJ@xit6sNLlU$PF?B_VUhQ^ly{h5e1*LqlmLJ)ZH90-YhZi7YwmG{}Fn2
+z9}W&uUv%`p=kl;4sAv2U--QzCA%ksZ0b{I($|Ca3_Ev|{F#jIQ<WHs5y^U9T54lM?
+zS<7q=Ip8<+k3jv$@O^+<!y%-R@8l?kON`eH?dK^K9u#H5#q1#1(!c-Lizf=e&mE%p
+z?+Mkd{M-byL0(jLZM3<gQhzu*UQC*!rBG`vV(wvmmG3oYdaKR;4-r!-ecrp03l9c%
+zqz1{h{uE-1#`TAC67c>8J+8P^DAGJ!Yn;E1)v|}o<imlXgcYAZu@067RTsLJZEy8f
+zV=RR<J|!28aJIf<Kj_MIWpT|#LpoJ3l+s7;@3=7HQ9=Lm&Ysw3m*qKZJT1<s{a2x3
+zFNzTlnmhHoN@7N_EVufnFSx+O+yyPit8!9mWxoyDt^)0cU-fY)*;2O=B3=qw{C^(=
+zz29VZh8A9HtBA`hbr6765H`Wr$-g3gOP)NW+AiBm(OSLLBc@Hq;ySoH+uj|K1URm0
+zi{*2H$qw4&7z#i7RpRadZE^^oa#kqfOPzv0>%fs_DA1DaLS@{4Ku<FE_q>t0>D;TZ
+z1VPv^S<HdGNc{&^<^||sl>*n>yijbIZzljCH-9<&2}Asa==y9i3b!!3-)>t*(I9VK
+zpKq%%-Jed+NT6_0iiEG5f+WvCl;-vgbx5JhOa|fX;i_ls0Vw#sn65%qdt!Ld=?|t`
+zdgw*kao@s(I;loYUdK$28VRxI=e)@F*g-HT{XFH02fsGs@r2D^sAJ31FKkZrFIFD~
+zVP>Q8Qquh_TjUN6VP^r7@4vh=;aDamdP3evgc5|Y2J`>PPy=0W(^Tadi;7g`bLp@V
+zbRra@RYvRY0@gaPV?6x9C8o`79gK@%FU!HwC(3P2%sbt+=c>ivuj)@~@IdaD7uQ8G
+z)=kqZs-FWA@GP|DWD*91XQ}pomX!cJJf<rRwws?nhz~&7{E?gafqp4BKeP&|aNPRd
+z$>6U)jqE0f?;sSKZ3^@6g|;qB^gbGXeH3q$#9kfMn5`iSO#Yj@NPZ&+{95gg7_y^R
+zr-iKFjaS%z(4l1C{t4Ox4Ny?LfaB?KqI$*P?`#&XbDTmp4-mcJFXawZQDA9}Nbmff
+z@J2+z*tF=i^;>$d)+6y9+!ai70w}Oz5s9+B*B{Cf1pGGeHzm~_j6P9FRgY>8b10pz
+zbTtT8cAQV;@-YqaDi{1>3WWc;%*Vr5@p+qhn=6#<ALi2GCw{$8_v`L`xxal1JAE*W
+zcAMNlgJeRKRhBs|f^XNUIRzNZU7r}Q_z~1w$;X=-O1IZ2GkJJezmZi_ans~Krocu<
+zC(q&NAF%wj2?jKqH>t+rB}P)-rrBnLC}H3DDi%1hpVT(mj89vC1oQ-DE__aT`ZDqt
+z|H{4Yl|2C{4*C(EK~Wh<dV+I@f2!){3~tw<6(IC`A2s^!K5B&Q3INq#Gimd8FUi^{
+z#VEw@-}wg&Tz&*S=FMp|njhlrc$XP^4Z--LC`C`@tk%zy=EapJIiCV@APA5D>fHA6
+z=v8YauQN<VFVfuaPC&Fu?G8F#uuf;v`X0GYlB|bXrm@xZi~nM-e<3{UnwMtCRiJr_
+zD6u+(yzSc`@H&?SO_|OObYPR?_s^jtws@rJrWquq3}$dvY!yuM0<VUGbEeh)?u#n$
+z&Z9=2$AQz28gF$SuRdyqVI?`%oHThhdFR;T_wS-76Y$}e{G+v^6EF2B@CLAdShya1
+z&s(2U2XtfQN%zPl_v?;Y*NGMvwUxBP*91s9mqr=CH7v=1onzR3*cpua4*`ELCqimg
+zQ&KP=VGpyNZ891+{CXC1mkTQ-0doBK>z2UhUz|m^-`v0k=}5T_u)P)k$M+2U{!io-
+zrh*kcn`5+Potf&We=Up|L0ff`HicY1!(U}Kd?;JWkt*RU42tw>S7m5HikJ9Tpj|ec
+zt(Ipi6{eRnslDwiy!Ot)Ao=Jz4yQ93=lJ!pPy>fTM3))?T9L;Vz<b80S!_{g!EbkD
+zZh!gVZALS6hG$4{O~GHS<x|L_<iXOpc3;rg$V@^ZQsHNs^B;f+aYXj!hHz@|S9PSe
+zEu6w9K)mOaF#G4MoYQ<-uFfqo=C2wkiRR%n_6UqkAgjp;!KF4&R&hgk3nfH|55yl$
+zGT9WIqQ9x9vVoS5c;Sj?yQdyz$`{vZ5U9%q*T}vYM%y*=p%f&7i%`M6Y#)2_Yj@0b
+z&}RG*7Xee7E`#3ejDTNj-f$Dr@qL_mt$A&GAzeTpt|+PldBxBW)9G+j5Y?eqnGPlS
+z1fAX;*~0jGZG*mH2NgIC^%m2Kg;4rsTsB7h%wkm!t%P(O!H0*gmyj_5GU!gT%xg-t
+z&8?A?VW&K&*s!f~+z}bxOoczx=};DehwjqxsRENsIH&-*WeP@Sp#EeILqe*mp2PJw
+zj8w0Jn}d2;hH5_~pmPkWXxw$pH~bsB*8|)>MM`gO`mAr=?hiqtn;-ploPV$O;RHT>
+zC<=D`g`zcoDVaLohXz8p2NW9A5d7$I-Hv=hiG-gc-AAI@2~vuw#~8zm>f#C=_<g3j
+z7)rTQIoRcc3$e;}<3vl2B9<IekG2tu*k?VEXA3q}(t-|^T!1Y!SKGVB`J|y*T)p*Z
+z&X7`kP9Q4ky;Aq+9=&cJZY$d#fOh2B^CnHZY2|Z0x-RGpa1*kG+JEfW=sLEFQp)&)
+znf)x;IKLhsQENOOfZZ$^H+}Gc_Ye6!0U3GAhij1eK)1$<=e>Svhi#w|iB_(>FjNDN
+z@?VxYAQy`G;KPG&J~=4zMlFIH%;k4-fmiD_Mk`{}twbMsFKCn?J%ECEm!^s@HQzKB
+zNLW~<!UVL9a|AL5_|EC>iPLPoR`4R78WF!Z_dUp$SYn5<{ku^@nkxd~e|9h4<;OyU
+zijiQA!mj2g*rMj}qnfKBW!oAa-hrw8bCV+d<@;a!Zjw#+xzmVT_tSEhZce5_Zj+rZ
+z4H6rK%Mus$NG~f17yQ4;<PgS9OSe9UE_HlO<g^RTC%D9k-HVX&zP?sDt5;v{B~jDm
+zE_5izyc9bUvh-M66rosXvJ3=NvtM6*F1X|K7&4+}AiIACjn_&1$2CRRg?*>(ITfGi
+zcT8=)=LIK2NGkJrP9;Z1bxR(PI4xu<8w1<z0qP%{!eTEe3x#vo#xtMXAq*_GS-?aO
+zvym$BS@0wz!@Y`@Dj64CqL1}?j`J$6Xj9d{ypEo|a^=fV5R|;4#g$CX*sTAY|B0da
+zzJM$cqp(H{(-#75<%0%fSuX^zRHNDzja3{D;o9TIA((73QhoiF64iEsI1M)sQh4kn
+ze_zlw!njp4aqWp{Euzn)%K3wPmVhJcfD?A5$+n=+>IqM2<+o)o2A1cAWVqn__Li6y
+z2|}~gLRegrMh2QM`EFwdBKnQ3wL=YZ;S0zLv7I^V6A1Q22=3r1{a<V5#+udc?HbP_
+z`E!3QP*Wgu_BN-0Ki0sZw#q8079m-cb0^&uJ9)fuj}->xI=3c(Y@_QKh{xA}0#(0u
+zr^+Jm!7Eou-^wKJi6><p0bHvWEn-JG$T$KP!aUu^?OBkW7STNJls()ZLy=muUT+#z
+zu<5^mFIR0csX`e$@vp8e`oT<81d^ju4-V@*f7tk}OylkoX@Be5x*CQ2_Ix(D!<@sR
+zv!s@>OA?oiuR|XBEXlW2f2!OS<1APEvyP{Se{WH056G8-l@B3y;Mr(*0s%$W-X~n?
+z)axxzE;a}C(zvU1yh39H)_>P%+*|%PXSmF-SaH1lZ*JRr_m8}dUmy{ws1uM#tjA~N
+z;g+U06RVY+w@<B+-!269p)&qNB;ev+;s$6RsrEBA4NQ?sms%w^?>fE5>b#*O%yk4;
+zwDPtoN{ly;eH%Ub+%(dhsCrfC5Xp&EkXCX$M&G43;|}gtWYTV6CQc~6q_B?Q`(XdO
+zPQs>Ej(LMyy`q&?boIZ;uRmHhP|mUgu-*I8^bWsZl^LLWUO`4l@*;94g)gFjWa_~k
+zc9g$7uLX5Kyv6^Wf+1SqYfMS^*E{X4PA=?Nddas*BKmO8R#7$p$Vn(ljZ2uW?626k
+z-TvKfbKG{2j18Hel32A(LT1b@{$-(CD_$5!vT0V_neZIS?X~@=XpDL=ZrMxj{^F~&
+zt4<e?rYoshWx?Lzc&Zl2D~K*?kuT2u_S?4YbGQ9y1HGW$`A1vY%l9?N)rL)3Hm?ij
+zcEZ>^`CxN9JQrOSf;uuXPqxl2Cz9ldkIm5FLZvHHe&#sIvIHw;VMfx&2z`bW4u$(>
+zLco_hhDb2fkER&;C)D2z9Wqdlj{(sn;zQ*a<6~=1Bsb~hFg|)B_!h&ll-#II#81K=
+z(cATiehc<}jlk?Htog&Hd;4^K1ZIull+u$44r^O0ug0wXW0Zxd22dE!)P29h&}+-`
+zeFG6R*}ef1t?L25Q#g@~*&{`-u9az6g`MC|cVY3^wItXhbvoqbK3>B?RW!~C3`&bY
+zjlynYud&n5c9%eMuwy6gw02X#dW<3JoIrlVi)R#_e<vS0E?je_UDdh)bsyBeGk*o(
+zz9Dr6@F!(15x*o=_s;3&;ZUWoT41MnnwMM;R}s?r5xC%wB9as-Kr8574A?+Cz<!+v
+znw`K-x<6PlP^mUi;|cB)j~@FykSMKAE>-OTC*d!Q=af}@^vX$K*rV0m5FGmR@`;k~
+zn_{Kys$hq$jNaPKy3|j8{w$$?B}}~ijRkvr!QKgWe0-<=pN&no-~N>=v9q7%)NA$i
+z7fY>vL%c?Q*Xxi7s<`1U*RhsA7uQBfG2<t!>rm87cha|{@+ulP0n@Q5kiJf2>T}Q1
+zX$k#Hx)}%_jgRr>k>*^fxCb9^q!S@QZg0Ee{5tTBmvGrek}Z@Ie@z0ZP(5N11KEo)
+z<i8<Ix0r0|su+j7e1qvBg^|@_PKFWb{KSn=Zt}?jH+uT95dW^$AV4`ASnr=dyZMX%
+zd|gWaQ~1j*;(VEhpR6`qsB!S{LrzL-ta|cz{ax7iupob*Y{Wa$r49Po4hL_pB+n(e
+z5%<0?0d46%uY<B)7%&96OUIf$SzFv>u+NLy-c%#8uPmE61LvgL-9`(X>y<hxZhmLJ
+zM$!2+cM+j;HR$0tneXGB{%W5ON1W_3x3nlUCH34%yemxMg@(w|3iJRZ3l4bgZTT>d
+z&YT&mu>qIlVb<tddVQ;=FjHM$1eZG%CHJEL<ml<|PkqBpRqgaghp1%6#i<OvRf72P
+zMVh+E+ENzZ6hr6ODM?lA)mlLNn^PXvH?+-X#zR6yUYZj*<K)pE{0jMn*%0FNRETaj
+zSRHHxd0|DU=w~RSZ8U^5yo@0A1cr-xkQL$kKtvV4Rq*rqVZDBSyND@%rw9W5l)MnX
+zynWpBMkV)>vhIR)+2@98qxkcb$J*BgqF+yRoLvj~bttdjyC<<M>cf{}CQ1;+a8b9%
+zJ;y_VRi^Dg<Yoq^E>HA5ZI9<=2q_!Nq>34rUk2keZS1L^Ye(M!LsoFgQwR48kq{bK
+zAgI@x!nek(eW~jMWYsuu{(dk|%kZPp_O2WI?n_)N$&dMSfWK-L<b2+{KKgsL$=}sz
+zHTL?`OMQXutAiW@pRRwd2rJXLe-u&4eu146sV5Chq$4KIG;xck6UbxpbIH;o@Jb81
+zVXQs17-A4rI6@oCXwW4KbA=75tCS*M;E<wF)D|Yw*sP665TPU5<nuZ&@5IWh4DGe}
+z2yLMbzc!?~ju2X1jzvc<R&~6GstGRM+t>@)A;@pNE@bWVj$(|~pGD^i&<<HOgIWH6
+z8$5Kbp8R%_A6=yLw9xozkyTy)x?MkAY1*p%$Jv6=?uLVy9PiWR_*<pReIZonLFlBU
+z>-NcmfgfUvZ?=BrpFm2M^cild3qrd!7{xSiz(#u1K2uxEq9tfhb+lfU`y!adajIpe
+zvT-qBWJ5bBYsyPChLEgn=9uzryzB7&yjkd)fP3nJPqQZMjStoqGpAbO4~<TkVm?z*
+zioclQTp17*;L{q@Fh!u=?VO$^euw2E%8wl=AQ=@jNH8c-JBDqIF0@Kt43j(r?1ydE
+z9olc!?YHrmfeZG!wv@N49p`*&e}?}@b==?w-X^>QfRAE>8RgZ9tp!T<`W2eI*^(AD
+z(<i?Bjn_{qX|+$qEwo$L?^g^RHZK1=Z;pN2jBgRyi5L2ePie8%r7TSabICYr0;Tkn
+zY%JKCdX92|Z|p<oS)Ss5F&!wRJUecap>;n&G!itBmaS#{(XHF}oo~!<>%|>ZWCqX2
+zKSA6J9lf&41l@k}Ay+!y?hT(Wr2XjGVq2%l<M1z`ez&KRZy?HUeS}@@K{Jh7V3fY<
+zZv6Ttuu(p*JGowQEV<?K6X0bb#YU>cj@Hs<^BbVJpSw+6ZaL{euL4c;t1^OG0L7;0
+zOr1ILRYR1|R2<F8A2s;gN1t{?)8^6e;W61iF+Gpa&_6A$Rm<m1#0}aL@S`Q7Qh_5E
+zRgIUg^X_sO3eE&wCDtYxslQew#LQH8UPYfJTp*@}Mb@PWciNHe=dYHOd`(XJb}E41
+zV%6WxDOz@{wJLBvw6lnV{Cvqje2t?2TE#(%c+dALs2_+R&TR__(2j-q&f(SfuKA}2
+zrK|rtQjN!}8b{Z$k$?6wQJ?IN3c~O`HMEi>4pmIPPDcwnMc5yFk=8i!usY0P?fvDo
+zO_|6ZCRCdHz;mue70Sht?C+FcUG2&TYkA?~xIV|}wf7Ov3v&3&G_WO-2&RzHx9&hf
+zYhSWp^v#LX&WLo{eQ{D=!%)YW<sK3<8X!%QG``Z65Hs}DztiXzqi9=rYiaWV=uyXb
+z8KTNu8obFmWHmkCEl(soy=6xJqaJXXfjc>97=rvhP~9Q8*En1;cXE<(t4`UtT}`Xc
+z&}}3xf1I01rE9@3jD`%k0ZpQ_==_<N;F|tHqSD4$H4)SX2j-xD%fYPX?+w7ZyUoy-
+zr4)|S(Y;-V#;fMsXf>R|E?7R4G)fOn#&|?^-0VHR)5{r2e`%juGPX6C(mlvqIM)5V
+z3Vwm$^2rI7LrwFpK(1x-<<^mlvk;{tGA2-sNtuxPtS;&q39xTm2h4he*j#E?MDKVt
+zeC=ofXZ2|L9h5@(FH01^Vyj4|Wp5*4H&!P+*Lu(6nHT^N3{12CPyRJ*!%d^nw6v5(
+zZk6!t7ESb{KL0NlhlQoXDTN+hqmBnSm7jL42Wvqpw5f6x0k48I_1m}jLvE%-fZL80
+zK2a~vxhHSzul?;k_OEJtDS?T}6qceJ&DQEB`zK5_4pQ#7AO8G_FDIh2yCZ7Y=!>tx
+zh|LyB1G$kFzWo0x^pTk~<P>2i*aQju<$#_e1{)F|8b&QP`A3y%C1+h|R~}0&j7p2?
+zO|IF0x!L)&-E2JsW*~%7p=<b?=0ePeE7@x#qf%_iLGfEMlBp+qKYvC*=HCqqPJ|bX
+z+f9<AOJzNCOX^Fj2l>liP_E?c+9pzKZvrVER&4^9#R7P0fc4~;fTQY%Q#^k>lfF&K
+zuz3D-As&f(HkhQ2ZIusVBLObN(mW7(yHvHz^m#L|;y?l|hgG&0E@p{t!(SlOKdSP+
+zUS4#n!3uT?yL(U&dR=|EHS)TLv8IOO;?_WRn9+vr>WuK^vcxH)jjK=$Gtnje690vE
+z4y8J)y*fv%w``dFfppTy#$%szPd&e`HKNd*&mb?{y@Fp&2wlI2cYm?_{TGw<b4^Hy
+z=JeZAsUzKqt7-~Ys*EcFB|HnDZy^~Rbc4T2K58r!KEr%dbusc<&p*ud9fT{xcV(_8
+zF6<(RZy(~zXL#AUOciB7hoAF5JZ>5gT+{!{$Elpb24^CiFf0aN&9DTFdy#ozle$h@
+zs#~f3$KZF+`aes3hfLCWb3>u(*HK>A+{3W%`@J%iBYRVy6&`+nrm32LmXB{%P!j*~
+z?)dpH<+9x`|A7i^;?X`e*WT2XeSTGzoN}On8HP3xA#twS!KEElpn|4du-*~#(LyiN
+z0r)BZa}jrhV;gCmBFJDyla(fD0u<MCQs$=CUygNe-LBSG><_ZsWjp^6ywO`w>6>)Q
+z@F4X*kRm@}OSO^I)m+Q_8ufbk@v61y@x=r~Tdj^%Rd#dLY1`UAJ9#DRcPf<FmflvE
+z*%^;<PbW5r)k!^IGj7p+va~08rX{9&E{xBy4b#^4G8>V=$sfLA=y>qX5gj^e*PgEW
+zAKIrG+hts4{~}EPYYM)})VSF^Wgt`tR5jy#h3xC@NG%xhLY*iwQjoK|84ac@c4gnk
+z86psC&s`|+{j;OXl=JE><a*U#EW`%SY?%L!U6ov1CgLvtJf9Km$9c4~F#droPHBf{
+zZ8DZkGpoUl2k+b<O#ZUq%QKWR+r8ecTA2%}8IBG@ioXfU#LV`y-$6Wb#H;>$A<tJE
+zCY`&L%fZDLw=;Uc_R`GV12`b3`9|0Mauod?C|S>DE}@h0R}bEn>d^=#`3yK%@Bz(2
+zt3XA{ZPpYrh8*;z-m@a8lDj5N*us<>L82r+We$uV8-~7O_gHO$kGR>8iyDu;sv31V
+z6I??k+^>}KGkzub`Oq7-oM&Ei0eA~MbXo^mzUM<0nppMJzMOOu|MIN?@}wM0;Fq&)
+zs2*2Gj;^fEB@m+h@99wQP^c_=E#8!;*Wwo}|C|0X&8N$s1UP7v2sq#fV0)VxM;|(}
+z_e=Ppwc##${w}yzqErq0B2-oYeYoX)M99<Fno^!XKRoc-tU1tnK)aMMMyy!F{RK|2
+zg&%ibgdY6x<;}u*1A^<V!?N8kV_u2ujKhrG2h@IN%ig-C32c~5+VUP|9xsYoU9*=`
+z?`>Df0=M86xN$aqphStwq~NfL{HvwBhUIJe&7q~d$N?)U*V=)&&tVM%-tW&HpqO}{
+z+}nZAG#gOPj$vQ|V<88Wo9J6KWNqRg+d_K^*X7;I2d!nQPIsKdg81f-$M{_%S`gUA
+z;q_OPXU$=KLUv2H4Rr4QZ&?v-w_lZs@8mc;siCLAggJdZ)5bHE(C`GH7r0k_BhK-8
+zC6tf^2@ijZf7*7A7m)x;R3eMa8b!QUt>9PxwH*G}=v(ls&>d|hR<Vc;HoMT%C`T{F
+ze~ncnOGyF0t_B4~<~r4Y>NLP|vS$Qbz|%Nd=B<}($80@;=j=d0)`~*1>&YyUYyR#P
+zEse$*X_ajjsN-ky!Naif<oIlplMQZB_p8E?hGn@<oV~G3DeB$q%A(9Stck;C<=Yq?
+zZRib2JGK_zG@yB#qY@-TmadFB?qM0XlMs#$(Dp0hX<+sgT<DqKzN<GXeUOuIWuipd
+z3_^UShJW<BHLV<-e@&JBGT0c#aX>!N-E(o>ZBzGgHJRV^^M6rLvGfWpiZl2p3j5;*
+z$P0_?Ak0#A1<|&H<u3jb_=_JP9O~Dh4JhuuUn&umEeVNKl07?G^=o*7yAeIly}9yD
+zV{qWheB;IfwqA4rvG@tDP|8VVJ*hnxXtEd+Kq?EryxCc|vC2m(PBSyg{j0lSHVD8V
+zj2V)!9^&t}d+_=x-`l)}H1YKiu?rt3y@Eh-l}WY&6&h!jI@wow9V}X(4yr}lO-(TK
+z8Sn9Z;@r7Mm4-0qaX;2y{&=)vKj&Um6Y<8|v^~#0n*!!^7Q#XMEf@Hcrq~(|ew*==
+z)b~Qp2C-I@=qz1+;70A0*>#AB0+>mWzK#hfn72tXK};`<@ge!=g#0@}$1KUmVjJo3
+zTTRc(+1^u5vgEsgZ+?ot_Z=ND{8<y_Hu_M#cjpV28BG;@9<<~cmzEG|Gm`tSUVHWS
+zXivpG{_6FTfQY_}j%2_IPrDLCylAQLr6+E>g|*H%M|<n_6AQvUpYtq#)XO|zup!wC
+z2xGWwcJiHlNDL>UM2D4dEy!TNA-1Vv9}dZP;!y(0x4tCa#a|YHTS!_TUsur6C{#_?
+zSWROzF+}jv*Thh2=++`0RAhBUdJlp127#Zp9a8BW`DQF?OB9wSxI2Pmjbe)vCO@t^
+zPLc7;N4Gnt-N^^>71Y1T+WD<4e9XpRDnc7@El0|SvxmJb^0bnUVY49Vzw1me86C;P
+z9}B=Y%=qw=3exiTBAhB#$GQ+W5I_h7n8uIgPF(HKQW{lz4{x4i;o83zw5K_y*)QC}
+zQ#}`{KDqT-i7BR=^D-z+L9ys-<W<_N=9#sp(jN!XU&i?VZXETizi^Tokr@QmBg)dW
+zrV!Ws%f)R?!+8m%=h}AS9Q8B?iw{kO6+@sVN||fK<MXiUx~sy+VOE<+I5Ui+Hfi?L
+zku${WD{!r*>cW2|8sN33ygJ3XL7`KAKHxit;e0_0QF|FxsI%~T%A7s?HSJ{esO|>e
+z#uW#ZzcDfkI>_K)4618NZ0Ft}dw5zh;}zjVdWcB!C~$gKkSuH&p%?y&$WC*AB2#(b
+zIx9fsAY6`qMzG`ueGe~&VTd=WbLAV;h-|d(Q9W!5;TKlJFmOl+?RkX^Q2=uhQ-pn!
+zl+F&n^O|7cTxw{Et4L6<>Dr3&rF~Yz{Y6=Fq>~t&@qn;f*<pSxElSj~@4%qDm2Ks3
+z2-N4)hmrW1To2T(PEfG@vO>|WsmgnYT%Cxj4yFCkXvFX!I=t2_?B{gOFQ$T8b=eod
+z(VYPxn(*BsM8zkzwEEeN*<hRO9%uSduJ=)}fOn97UWXI5>!dE**j$QW%pb5-S|t{K
+zW<>*QhC04-e1llBw&FEAtafh19>)rb84E-68qB+^gi8^VK4B;Y;sr2GR0K9z32$_y
+z0y3ReX!1N%xqYmm_H*~sYsQLwS_6Ht_8;x$p}{n6PGqMrIpP^gYi?dC!TsFFS2mD5
+zpz?q->$1uh<8U%nxoR<eLVkvdw*8xIb#an3uFwr6jt;=){;aT6x%#{>*KxANkqqr9
+zo;4EEPCO<v$9n7lh^yIhNxz@&_id2GRNDz!59q)}Q9$~phX-E>XZr;kwNk(Nv2I``
+zoaJh!naGAh{86A1f5ySe;iJH<Hf4ZBq&h4Bc=trY1qIwsLN)6JP-4X#Uxo}=13eR!
+z)3L_BgXU7-naAu36>dfU$<I0GtRt{v(#bGeL<%AdN6#*6v60TSx~O4P_X4E(e%iu*
+zX90(fLf{Q%p#*0&(<G=6+h(9sVfC=umTX@7v@kBA4R|pG@TPdAs#*gblE}g}FMgpE
+z_UTRYz<(g?CFUomnMskb?_MLvR>xo4)c@FAq87p3!m)|t7mmGJWV#gM*`M-^-`+G_
+zkUZ+*TVj5ZV?|53?ld?sr@_3`SWOtIja2CX$hYbsB0S+!Kk=MI5&mZZixPj_?^aKC
+zxbuZMmG}6!HdIZsAb~9`hX=gIPJO|zC}mmn$OQ-gOk^2DephYc;x|6Z{tf4eLz=1z
+z<a0|D-Hf`wCl^If`qDvBIRPHzh#$3IB7yjN?ZuVy9vOYm|KKDvP~OzyH{Hv*$kP1U
+zh+j;?6X8*Oo;IZquhFksebs{<T@?xRO<KryA8h6dPx@G0D3$+XhRSBS{Kt0!lHRfy
+zD(ZD_OVRJL&N8KBDalYpA!$giC)+GzLCO$5_D+5Fqrc4SXOvq?4cFWL3&({19OIf-
+z1(!*dBMeWx)7$XT7>PoD@iBgVGrxe6{!avjg2nWl&pi=)VP?O00)#Crzdk#5yOU8q
+zaskQK>s`RxdWU#oxp!fJAh>RK))^2>PhnkEIzQJG(Ph0s>_g7GrAvy71&V?m6tAx(
+z1}+p?jEWT-`&3O1fs;LqeuvGXoMg}Qmgdp>U6+_Bd2CyL!?lLA-G?*nx5#%5Uy!cP
+z7Y><|-khq+TvYp~a{^A~V&fp}&yi?ND31wYqi~n?g!D|E^=E`>!C>v@vbU<kq4BRs
+zuInTE#|j2{r6wGNg>fptB3O2Fll(L{9c8UPUagq`KhvSausujbJpi9-K%r1bH}%m)
+zOpDm&hk!79ohN_5C9+77xzQ&n)f+144&uWNM!IT@GBn(}?SS=5U*ANf`*cTrJUuAI
+z#^Ak#OzJ8GQZ+tc?v5o&Q_@@(|NCtBL8e(AIk&|zb6eTdIJW;Xkxz+oSL+ifqk8Vu
+z0T+`iGztNIJ-$i??*2Y(wNPbdE%6&v3G0IXV@`4^x^#exZXwkUuLFNbXTA8!iD=sG
+zqJFXavxLthn(GnOH2|7Rc#d~F0a2&!1(Bz4ZIb!t*Y}<aJ{Nd?Kl{?*rJzgom+qV!
+zh?Lpm+~IPh_yo7f3?0U4ty>G8WvU~-;=ZCb8+$cj)cwj0$viioK~R^Jc0*6>mwBCt
+zM?Il;JQ_i2$i`81eNFk0o{8GJh^MIbw|VYJaBz|rchZc*OtadNL>;QgZMn8!&7xwd
+zfEBX(^~<X6`t_0u>D{o8wD+@(hxsb?U)iL!irbGx8}x+{4nVRi^;dqWWU9Rg@~hPI
+z;ETMotChYbs$Pp}4^1SxLa$4kejKkX5!?;f6Gl9a1!2>J)BaPyzblIPXCt|^*%2V8
+zJ!IYN*clXMDYSsjE4_30nB}OlT;||A_|KmVoRFu;Gu^n<BzfD+8H>97J3IA{t`FZZ
+z@~n<APc-iXU3#dkrp>D@@iC?|JT~?vyeBB&`s$2A5u1%s`*Cp{VlgFt=x{Mu<zffs
+zYt^sa_v_PfK(FW`cIdE*sl3bP+43T_9)l5iap=zU3h2VYnc9J)hsiE3xdD|m-`HEU
+zlGPkg&J9>T>G7a{(FZTUYT*Lfj^hC3duu<U|BeQEP+o<o=Pr#NW|92I&a2Ay<gJ9=
+zRxR0%QQoczse(IX-062<MR*XCaziF=A7}CE=HB_brDS^Rf;8jGXS;%-F)#VZ(|#c8
+zmGjdA>cPuUS!+J{UU+tccSvR8jzTH<n+4H?CJqJ$-lZiSRi`Dr@QX_lffsBU7h>w(
+zn&`8wdx$89q{KaL@t!XWNi!3BrCt6|LbufGV-|lH(<^P^{6Y-CPt!O#?^Ng0=ckD%
+zZ(cq_mWELkYG_p6&5=)Q(d&YC)o_Ao*8NGwIjWeePU>OcH$9?skn%E{(VX*pafZ||
+zKS3I=>Zz%OqM8IRf_Rs2;r85cx0bh8IbGAUN<Fc@LVk*kWjp$MBe~iVexC<bveM*q
+zQ)IJJ*K*H7iLaOdFOz}_Y1@cMw+t!R1)iO~g!~lIksEJAcoa8Y$ixN2h5&?IhO}+~
+z*&<9U4{tYUyG6OTUB+m*NgsTyKF7AHmd8N%|A5E0AFz(TNMPr|AN?RU?He~3wW~8s
+zbvE^GU&34}yL3@oPW!gD(8u_D_@<(WGv}{HD(A+KEh=^SSB>2Klb);1Bf#6DN15>R
+zJK*wmsmt>Lv`!xIos|#ByWM#a>q8%vwhGwBZAlL{HZGI2n0eD^5>IsLR!8X!rN)h6
+zFJ{V!()R^{{}#@csyJp$7uBnGNgE{g&BH_v-sAr`*hi(WJql0#d4^H{G1-nZcsTR~
+z^D9Q$Dk=Uyj_{lhS)x_0zms_MpDFFKxoTT1H}3^Ly!5gfJfDoa5*-k2d8(1QTXd!9
+zW|xb7v~u*T)4>Nn%7DjyL-iH%Q?CX|PKXIoS&nTcJq)G>or4WK@;Su-0k>=J>DMZo
+z)LNRz5~>7zSC&@=*zUQk?Em-O#qn{Af>n-&UVn&I3HAwQnNMPi?nrTZv32D@joSn}
+z#W(&_%9`{MfZqlDhC;L{w{&6SVOQ|az5`ZHsc%N5>Pf)V>SLkmbo?A!Kuhw$Z+@##
+zgv2`2v=Z}*qvCPC^Ac6<?Vo9^G#J}-eDj}C#J?=0HPDF!Z6ArEe+YS^N5N3E*g<mV
+z=AQB&^H?dtF=5%E3erXWNSNfEwZ6jXzQNX15_>km5gR!7g7@f8<A1?peYaCv-IbIf
+z@kwUf%-_DhKGD1FL?N?D6=V`kcIA?b5Muy!zxD(6W~Uhc#3QK2KQ%u?3_P16PcyVS
+zdNxf5{B;k7<n#J{5chaIlb_mlb;OG&op@t;2XjG6g!-d-9Jjq~rmpdoW;osvrH)g$
+z_fwPe>B~6tr1t{d=fD~nHTZSt-qFFE9a6!G)m5-IKS$k)rI&g9jLuP%D4dU(pKl3D
+zNj&XOvQeHJf0gf+nufC>eOASMmf?C_FCV<JWc!G_3rddOg^91NOyUP+Ixei|=NkCq
+z|9S=fr4Jf?QQ1iXR;xmbkDy*NZT;M~qDY}i1GxQFg0!#n`@{)mtWj$c{_K|E!HY{F
+z;G5s$^w~<q)%9)W*^<=-7|2z|e>7h5sLE{c>gfcQk^8*&xLfd2>y4Mp{cqGZZzKnS
+zKl$%Tayo6CT-XdUAHN;z0{O{CB<!ZPl&{G(3C~Dw{kn<=3jUHDRk`Kp30QRI5|^^!
+zSRFm&%Gx+P-fiz$Yd@7x7jkXI|9s2<Bt~{mVC)6$=$r33N2foa{oRatv~oObVDl7<
+zexhGVyNR?9Z?`V7`D2s0CTBfA!L9mJ*k6mTz4Dt`ASZ->_~rMJ!Tqba7QbAlpU#rg
+z6Y`S@%6rQq%ZZ_sc>%+yl({$f29-d&ZIc^uIU-bqC!Fvw9A_4YYQE_|LR_`R_GOY{
+z0S@AmczK3pAN)X~w_JnmG`8g~^ZUwk5onP5nY?&hNoTHNIl_%CJX_hr!+PH9fl;aH
+zaA<b#&pK3ZL@j*#6795HU`a8tA&yI5^CgJiq(yB}SHZ}M<<?%sfpOOWHe86X7LWAB
+z;UL-d{5HRw4oH<1iR3%}u9drL>4|}@>Y06FAXZ_@w9&AD=3+lD@Ej9fu8O0=R>M7)
+zL&pIX9iPBAWSq2NW;3?FO{*8?|JexXmGb)!@7+(7@;NmXdHmnL>7~lt`S=6f30Vz(
+z$cFIQf00^lnQefmtu_(Txn|$nlMV9oyB!J6p;q&3b4RR$KNGGm_ke}FGcScH7|;Ly
+zt~j{%JSPi~0j>kKYW8T>Xch2cDQ9Weu``IDXCxy?7Sa&ysfS(RJyugv@j(-`)FX{?
+z_o_ACaw%3C>{v}0k1RN097H=w9Wp|_8EuTX(j_#SA>0H>Aw^U>sw~jRmAkv)?+Ofg
+zQ@r|$T#|WN_ZDs8>6#I%N(GxBdrD@pAGqr5vqO^%e93=u+RM8<C2T?%9dd{#l;}R6
+z_2f~w3*-8Zxj=XmM-J>gP6tQ41N<wne|eqU$4O<`y`c1FWNj*r`efSFWY@jAp&cvB
+z?#Zdafs}ewD)qzjlM0J}xgD_G*IsHERu$g*EIqg{0^61;<AKXuD`E3e|NKs4<ACh&
+z+KNA#E_J6&-5ow-l7D?i^>O-E9EI=wHw;hN%8yFl9-%rb?qN{6P7YW9jSauVBLSZ~
+zd!LSmLYu*N`kZ+(DZvKS-xc;)XIl^WBL84OMP^GMLc-JuQ)X9+qWmS|=_k>3x4F`S
+zeH_<NON(u3CzyKr5{pxVZNK45vyvpnF5QTNF6ZBZ;PzGeKspe3F;5CfIH<XzjDEpk
+zDuX0$2-DyJG|@Y$MOj7Lu6aFL%%oz7?9XzSCG@h^lcU%}<xpJnVarpb*neBD1?7&+
+za_X7j<LB?fKzB+%Q0r2o@lO8%9>R2*5$)gXRp5&rjewPmfH}Vnt7>yx&?*aovYXMS
+zjT`bxut&BEsp+Xm3_q!2;;tBy+K@<m8<yC=ppGB~9d~e}xZ#CI%nI7pu>uoW=d_1z
+z5W)1B@&iXHyac;h^AWF|!~A3LwH0$ST+7XcF94}3Hu73G`POlO!n}`yM_VhX;vgut
+zIY9>%pw&CKe;pfoV*`J$a@_Khm1C8PP8>SCTkfYqfmqtRB%W@7*+(y5ZW*<H*&M$0
+zP3_&o<(qqdc^&5sv#_(sN_VDi(~Lbegf*FKz}(*>A{q?*fQ$b8v-}EK{mpkZUbC9X
+zocd}6w#9+FpDGV1*tzOA2yz#)^isXtj8kP&?h5=j?anuLsl;U7EwoQIM}1jm7_78#
+z<wT_S>~eDJXAJda$J`1F8tPYbA`dQqOlfFrkELJ^<&n=oZi3dMfQP_2@hHqBJwDi0
+zU`A~)gqzu8t#){Ne(inxI_!Yw6tCC0tDRJO6_4hH+}MrrlbiyEG=7Fc?)O6GC(5E{
+zDw4H>w-M&@Tq%`#z<_H$^q)@WCy&An7JGj`N6^~e?48AGjJ3+~UrO%r|Ej(<$ZYSP
+z!_VzMQWV;Dk90GEH%Q}Yadfcf6kXiZt~z;3)>QS!ZxNH_%WuNIMVMGf(G0$Yr%G_a
+z$=<QRH^pPKIo5A^vHQ8<s=~1hjx`NLIL8#8o9-0NNEyhj&$B1R9h-3vC+wdx6mB0U
+zKl15dWk^?5QJGHILi&E#LVu_O|CB9`7?nD;=p3r}EiYfAijrKE1tPec;E|Bc`miMA
+zfp+qdqT`Cb8k@5ug4V2)VjDNXVSRsRV7gT?x!CdIlGnR-Fy5=#oD@jy9$>of4LvSG
+zQltz)6WDH>yuC%&ze4|Bbk!{wT2X_M9L-A(Ogys&Dk;I#!J^9SWZ+x?uTb*^)#)zT
+ztqu7ZubI2p_P5`w4O<cN<<EDF5xaRhDz>vFJ$&NxpTVFwStbOprT%i-{*Vf@bai~g
+z+;H%&(%c=OnP*hDsL#LLsf!K;$SF|Nw|(s@jgjWHf$8b)P#H(+kxapDEt*wfRPR_E
+z9U0RS>`xcK%Xl}^0@Q8>J#|p>9sl4vm(&2h6jbIzIJ-QS;9q+SG}v;dqNN65s?f?~
+zt6;noiPmvg0J!STZ+}-+02qarn|=3N$)Hfa?Jd^hR({)+@BMwU$LVsg?J7^j4NUV<
+zQx-n^m3>txUHmjJv>tKxOK4xdTle&3^_+*>H=Pc?pTYXCA`aB=5?|><^0jRWB1eV{
+zM_29%r^0B@{%NT>TDhIb|8Tj8)@9yo{tOn$`8{xGHu$ByEJ73ZS4BVpBCC5b-^#RC
+z@`lI&JNV(5g2NB)YG+j}uI2xX4lZ7dEAFs-)pwYdy`)7Jo~W8UAEdZ|{QTPy#*Ff0
+zEu#x#v?jrzAbS+GOV+C{J}1^6A%;i>>I4~sI<AE93${;MJ5B5;NPHdr#e&>Z)j1AE
+zvbQholsdH3DS0-!e}KDt6tKHBqTLUIg5(vxQ<i7wt?!K(4pER6Jrb$}Z%#udyC?nT
+zC5%=L4{#41q5$L&%EI;l+b86do83WuSQtT$RvB6h2lr$o;*J^_tcxLts0FAKvjYEn
+zPUQ-ar2pIku9@*e_3?PrR(E5kGfz~T#e`JAU^_`12Tu<ReU!U&a(fx@g;BfD5I%<W
+zF|<!2gy|~B@CxgtNxt6JfVQ4If8r5s0<q_NciG_+@ZZ`PH_Z;i)pNfslzCY#3fNv&
+zN3tJmt(eVR;l(E8Lbpz|K{lU(sIFEaW%$*-s`L1xHHX@9zdLjeyZ9uoWBF-=z%Xu_
+zI!w|@F;}fz3UY_xe4I?NPgJ)5+~SZ(v8Qa*;=WNqM~i`tE(qAJv(+$lF(VKL&JQ$B
+z*$u;+!N00ynh~en5oP3rW0ZOEdR7VeBK}>qb)eu_MCj6?7jIj|V)^M+a`Il)%>Nxo
+zw-L8a0-i)%#5;BvVW1^s(%vrGF%$LtE0L9B+@cXM?omI71{3H?VQdA$cnyk%xEJ^M
+zG}~&#S0q~??9d2yf1UZwQIuWj&rIhBlyjK)fu{ED_LM|2<(lgo^Kt$Rb@mW;+heDl
+zX(GZ3YPQ*;NbnsVk}e?N68_}_`VH1W>T5Zjz*-z(rt#asTHHP((6ZhqshoZT?_C5E
+zLMAt^E#1)BH%cmhJnm=u>a$INYLLcq;^s+!YW-#WO=UQb8Oy4JJx(FBoKlM$E)K6Q
+zfb)k_{{Yt1PLydr%%s=!DJjR^Ji)Uo4l#RI3Tm(23%iq;svG4hrPsu|BKFSrW`~d@
+zlBDeJ9i*|pmaIHB8`2n0GT(nDg3w#9{imNce567`Rp2=b;TOim*qjTdK1$zW@OM#}
+zqm>(v?k)V_0`Sbgzr=R1-OZ<PWnF)rc<ln~eUz(#@dCGBc<Zz<#Z!0(RI!lnCVd}o
+zj|JC*_RVu_@Z3)X#-Q%~kCWGbhg&C)QEyYf&}HC5t+n9saD#c4aecK|i{NwQ)2KmT
+zn8*)(nl@G$3A4vtya8nH@Y8`TfXij@_mkDdkci#(wbnZJeA<Uo9sn>xb8az+Y4>w+
+zRWmv6dh($^|9NGn5f<%bcki67rFYKl3+LJ{wq?I?LgILI$!v~`ICBy)0LFCqZ@JSV
+z*Xyd<(MXJr<ko#!Z-QA_RPd_hywHSXme(LP5*IchE>n*3dHUCf)M^ZlW8ZW9;#Ya8
+z{gYYfkCHmn&8wD;<X+5y#IJ0sk({9KTEPt<<lWQd$keAN&IX|$x1<{8qp%Q9UXQG&
+ze66Y2{}!vgYZC^U@BbcWqRBt-#SzPXQaQr4DQ|cZiWZ-0Am6%#yWL~;8LlmU5H7L0
+zodv|{fs)Z!H#DtmYd$XlRqp+<UDbJwYZ&AeD}zpjw>ORLZ*vWYkx}#c2~zKXZ6y`?
+zQtdOl&rs9p`!feFNjWsr!IvuXJ=5u_b^o1pI6C8=8>$2|a<IE6X;!S7RZB!o^5aBc
+z%ue)1dGPGvDy%`t>FXSJ!nB8@by|I>^|OVZpvU!8D$(A{F~c#jIi)T4>&g9D0eq0u
+zb|=XvcJ;O&;Xk|Aa;Dpiu}IbvLTlV2xsa&U)zCK0*ZSUI{}Mv`lRQ;yl)cR#J1>Cr
+z`&l;j(H?)Rj{A+0>Q(n@fS`x)@>S%ghE+#ZJngPYfLTK5;HGI);<1LeF;#CvrA4*s
+zNDDlGjN|y^&xZe~HK%cg4gLuv8^ux9eq_;j8BiP|ee<tJQpW9<3dSe8E`<}s_#<1s
+zKjkW_)?KfTA|IV*phP@!V6#o2bG@d8rLJ^;4|1Wos3po%O-tX<x|w6gzdL0Ee{mnk
+zjkU10%9getC^vuWCI?LLWgW6^gwz(OSm@6N&G4lLarZL<PTa#;R8q4@2F1&5Y-Bry
+zgnbSrxGt~z9nOu!Sp(bj_?F_1$gCvW=9ZBAURTR!iNDMbz0Wyp2C3N&m_Kkl4moVw
+zVA<sQYKbs+RMWwI7v36daOJicq@J-rl>Tt{yh+rVnMCK89XFgiM5}G4DhW;@*G}G6
+zU1(G}C>tQNQhQHUAy8av@U-K_nw+(O^Whb#G%lL>d9q^oxcS460lUYKvBd^XNe8kM
+z@NbBXE>gj$VX1@o%rXaw`uXXD+n*1Wg)ORqA$@KZ3TRV(^{)4EYM+3KQ*H<UZSiV$
+zfI7;tt-Ei6+~xbJTF3;#!;|B`h3)w-^<Q;-3CY)McYMmnZL&d(XxO$(LB*8_x++9P
+zB(F;|973dWgQ~y$1aRXlvnm11QWbTLww6_Mkdhu&4;4oSVnY2BJU=x2Q)8mLOQL##
+zL-r^38UNtFf;BK|q8x#H4c!4i)g!D!<A|rTaht&R>L0DQI@4?(-re-x97Uq5S7(n&
+zzag7Yc8$Zh6B3&Y(`DYh*_3LVXnl?{F-Bee*DgKJrJd!7=BO1lYX-_OF+^>^Q2$C*
+zT#5niWO}b4uzJpoxLuSH=|Q^GA1CjbK66e@%HmYDCsoUXc3QnrYqo`hcLP|FY>~-B
+zaT#i8<7NJ~8~Zm4xwanRMX<JoO=&u4Wb@TN#lV0JqG%=4t-+vX{^IZe44E+8DqP*R
+zWx?lZ^7Sg%X`763IOjh|JsXZZM=jZA^N(S|bn5coUgIC_xRX2v2Aya>TlM$i<KsA!
+zyaNWEN1b8QSxfDSJRXE_+ko1pMEWDHg}iUOWR;}TSjYpVTv+v~{gd4l%Fa+gYq&DT
+z7kZCT#cd1)7k{U8P88vyE5mGf0IoTQx}UFwNLMY7t7(Etd3s|#+K%L&9Pt^I0!|!0
+zcd9=YN3aF{ZHC<Q^scBeSc|mlJ9c%?tn4%-Sk9%W=<H4x6<|Mz3wl%r0f5>wYrG8R
+zXF+ho3BDA}Z~H7W`{8sN`+;lw5TH~FD~OvoW=iNiZnK}$&Xo9;!TZ%RSfqM;!cM&P
+zIaK0*pU*hs8gbK=?LObe)6gr!SBEkE_WUbK-@r7f32c>+cz?tv@U!EZqRVaBu^VOE
+zlN)n<+wS7&;m-)xZBEN`!}2-mHeZ~8!7}`F!OBu#{)|d*4(9rkE9;?h*--C=reT~y
+zCyt{Nw==Bv%%C5h6u1zR#k~rDsIbheM7c#+NQI&zbos{hAaKZGWuq}Vx%ZgEQ4Lx^
+z_E|$>ZZgkF4h;og{%yY`8GiWog!%O2=`apu+mM-*1d~r#2pjt9FMyQ3$Jk1~6Gghe
+zWOopAI+3~VGNR#homECJzE(cSfzw{XoF^LN_OD?xb#kQIpK{NX+Fi=&0c#fJ1WM5z
+zb7k}C!`pHn41o{vbtXqjvim-<v+-YjG8_3@hM^rOoc+nPoM|*k29P(^avJZg=Nz(2
+z`X^=!W_@C*cJLKYkPulOh5)?P>#kK)vYgfCeq7=|YqPg2X1&^#w53cK*F7=^<|vlW
+z#w(9B=T!#suN(L2M-HGJ{xuHDLKE0O=`7ffHlL{PM_T{0zOkKpGy*&RJ#VA<b3f=Y
+zop;jxe`q@QM<)NjkB3U-l$1jb3keA!=W{~NrE)%eN=`ZDY-SEQ7e-DwZOJJqaz4#g
+zIUnZ~nVGXWZp;{)+3owo{nPayysy{c`FcERKYJZT<_&WT8k`11Jp324TWtM#YnPRM
+zt#01XK0WdTb<BnH`MCB8c5JD~H?nxMxPA|@t~>B#J(54e5T{W_K4Bog+Ds^A4;x@A
+z;`Bkm5fw<-!P_~djB><;)TF@2<zLR{nDr+fwM}nE4bNysE;~i|IHJ5xAouiWUlffA
+zT@K+zy{18zJnIW3gaunssl<Vt8JepJ5S3Xz%mp=aATwBxw5}HB?Az-N`}i?B6`{4V
+znzG+Orj$+Qn?DJed{cV@sfrSl3jPHH7vgfS15Q*)2z$gl0e%f1n&a7q4RJ*VZUxiK
+z@goOC`AV8evrD?OB2Gn<Q9O@f-+Y|>;m=@ZE_q`&s|WkkGc8TvOLFL%c!E%XXMwHY
+z%q;@I6-J$?s9$CPHwz=dr=H-Z>w!hVWx43W5)*#T`Z=v0O=f%yAzMomS9lKc_Q$XC
+zG);(Ce6nh!x?IH*bXCei$CS1lhqi93V)J~*LB-5o`OSFoHOHt>zu{11$f!U7VQyda
+zOgBPTZ0eR7VEQqk{hy|&C;gN4kNOj)&vg*9Qu3f;a%65qU5eK;j|!3X-}<Bp-kqN%
+z3%^CV5Y`^3-8fK*yCnbu%+iWH*!e6?@Jg&sIyTCi4*%jUxit4|UsM%BT>0VoG}r!R
+zW$;hCb+(4sQduT6|F$W<zLk5GIaSCUZ?y9$Or=$}k!4pdu9q|9%!G(HX)t1@eH^do
+zqpoP&h53bzcwRjyErkEFTQFBRd$YLv`Y(L)6H3@t+csA|`(<{&RJMlc|H_lsOpBm4
+zm@SJ1PW>y)WwkTLM{Q1TI+>w4g+Tg?qvBaYrXc;@W<MT}!^Vqpk+Pe}M<f%vk{mXf
+zog&>Eg~07cEExhX&fsIbS(Du{n@b_>=z8UnU9Fff5QcB<@{rMCi^AS~B0czpo@EI5
+zV(`j|XDfVOfEL{(-c~cmlILV!vDs*2x`_)-m%R^d`0V&?3<(Yw+~f*F9lk=ldCJz^
+z0#}jR8zpE`4fQ%R3_Ij5QPf3g<3RSA^Lb<UXrtA^ni(kKHu3K<F@N4m3$uE(#_n1^
+za2@?7B8i+HbMdZ_&$yFR?vWY#!}y)c%lddKR}@;&zX!TSRA}w#I^NA{Z(V7ZbpL2_
+zK&@0M@*Ar4)?AAtM5Q|129(|+6pUn=FG&Z{`#aThl_Gb#eN9Ict=j&#FS#U~v|#uj
+zY)#;O$o0b9?T>B7$d%z6pJxJ|?X6#fs{f@396)$1+<OCkj-U2n#2y>+EjG71B48tD
+z@LIivakbfHy<Pjc7zY4{-JCD?&cJ?|`>oC^tYYo(sR^!q(%`Mwkb2Eq^mzuY%+qLJ
+z-hd8X<Rqp4^Ppn-#wcIQ#XkpJn=ceTv+%Ct66O|7acZI{K(tn<!{l0)p8KvY^HtC!
+zW%=Ye5|jfPN`5i2?pI&omTW(vZ$-B2gR`}NKRp<XJZl`y;Vdg1R1-LrrR#_CR4jh0
+zSc<jfgRl!XzyCCkqX+0u=*<5!a+>&|fP;8-L)wxRUUg@=J&NJ1Pm+=_Ej?YR+&=pH
+z**O-pLaCK_9*$L_==@gRtW}TCkHzbF=*%Rtjoa;go96vYN0K5cElBM&<O{WPy}up=
+ztzKKlP!Dbng+}ETt(PF(kOuJik--^^nDL=K&6UcTxcu{RQ(t{Hb!>`yV9VUM`zybG
+z=1UY!5PZpS{Iq^%hHJSoWBnJo+NlItwdEa>-OzviWunS~!7Y0HI0t^}h-P1Zmke!9
+zUtJU*prq%*xyC7ZS;4&Sn6kDsXQs3W@=s%?7nfY3aqa8O7A=M1$UKc5YWBy9c^!-c
+zEjQW;d~}*dI8ZlHgeas63`XS%lI>8fLR8gO?xsn6Zg>xmPJsZ5MLKcJO>p$tlo@K)
+zxfqpsgLgltgw3Uou=V*Mz^qd<%qfQWab;&$jHr=t^Vvy&=_23Vkr<huTJd`;&v;F=
+z;)z-p_$Znw;`5zh#Q%K?crBbt>Bf4)TsCx*wT7A2ww2AO_1rf_TM6_2fLckg#U8{%
+z7PtSH`W|JB3@erGy}leSH?o)Ivi=d{bnW<~Qd{~m$E=SeQmg*pX9ooL*FDf-HO%e<
+zkjg-L@!33OFEi5Cb3*Ql-Sz_#MSVw@bL#XC=<eM+ROF{|dL}(jQ2WE-t0JvPf8@UZ
+zx*bUyIce$B4d$KNq2$&tx7OmJs$X-D<J#F*5qZ@i%4;QCPOE6lXSjX8GK&fiD%&ei
+z$R*XGpx|GL1U}cRGK!;+2MlxHxmH=nK^~-v0AcHYAZBao<nHY-mL9ZK!^>EW<>sD4
+z+bG}WcQDWs?5o{zqz+Fu;{F~?UcuhWr1cWtMnbjV-Tl#u$wp0A^^tGHh;VF=d__(u
+z-++rPhLHF2Y{ITsjbl_^qbLXAXrl!jbZ(mc#&8|rskYRA>I^V|$nc5gx1CBtCWoG-
+zpIv6LP<P`>(ZdZ3B5SfrAv$^YXY}d$Bi=vDXFH+$+VwyPBQR-;IW{0gZD|}f**i8}
+z;m`K)Fj=V&p`@I2_2GZ?FEyVT7V?%m>EGCSCidgVZ}JS=Wr-B&&un|3^G7?3GWAa?
+z?yigJTNQL_s^e9+zYOVPXx!7$jY1znQ%#vDa4xl(gBmyM3*QyfCWkW;Jo98EgCd|(
+z;n@hSPWIsXV(WPaH<~2H+uy43<<JxGzUED5;#l?VL0=>5fjX)HR8*_N8&tQgniRF>
+zVh#UK`l;5|mG7TA2&e40U)sUy77=B$d+(Zo)qS(*WsN<*Iddv_&U~!!_t0}k7q$70
+zG>+>ZPNRMR9_IyJ0IR*=Kp0pr9(O?mhSLW9fRQNyZN|dHT%10M?`n^qN~R!=`nh6X
+z@#sEm`Y7QyJs&RbRAn;v@zh9($~NV?*{u1QoH-q=u4RkrQayOks9mP;DRY9^!{v3=
+zEH8HRq6m5BbeCd^M}!h339nQY#3jKlId@!S2!sW&bEJl~sLdtaxU27e)6uf)CtI{H
+z3=fZ^?$T?4cj?M)iIoKDF5555&+YwJ1al*OT5DK=0ga^npw1hz&kOvUpQBA&u+;=w
+zq%x_6S?2n()$0;_!8r*Zp1a)!lJsSUmr*;QnY||g3Z(I2-%-r>uxxTJ71)zN-57B0
+z;qKZO<q)2ppa@pyM%=yCQ}sPnCP*6e06x&TJ46c~+zeKiEoFsI3mK>hqn5-ido`G!
+z!FuQl(caURU}*n1`CG9}1CxEQ0gPJAHvC=#HVADYwqpd=Zh9iAo;k&{No`Q)2zX0Y
+zq-o4xo@%1y->%Csr*E%0%w8NmS>o>c4QB=t9wBSoiiX*n`GAu4dFngJ^J#_cg?j?V
+zp4xuneor~DxNY7rx^*u(OZFc|bE9PKV(27#CHzPGHpe&t;1MccplOb_;^%kpdOqj5
+z?r9NL9woC_-0`qDZ})s^Tq15`gCOGJ9n!JmFzcNDu<%ucY!CSrR+9UHRjY7dwtYYK
+zu<LH`&)q^ybZh5bNhJ2hll_C(bmWb-JL_Bgw;kvE8{|rTUU&l2WOKQXD?UMw<skBT
+zi6m*z-Sg;k%qg)f&$`Y6=d881Yr3cEGK6#U_h7JI1=RaIiRsDJCHl5;U}hTf{(&fV
+z?p)i{!?fxGeEpUVV3p%;hHt6apa*jBpwo8#S=+PvCtiv-lzp=)`hw#jVfRnB2+~KV
+zUKD(-k}2kRC;L?EukE=e)g4VnlI$JdgO#9e^$ho-DK@WzqI+<h#G@#-baj%V&_jCb
+z`G5>1?$fD`yr)>zmx4w#jLOH&bF$4w+KyWS$QijB{puI2Dv?z_SdEkng`r1l;aD@q
+z<NM!eZ{8vv(I-pRO&ZtA&k<R|YK+6+iqkAhOI&igRB4MkKW_i7liLf$7H-(0*EKOC
+zcV*_&;EY!782(oP=3#52lUE=G2dN@X(EVjdaEmu{R6yq7QSlU8wfJEJ{}sOg8fQaC
+zM?af^a*K(sy9v~Jemj3bbwr;(lV<)HChGWJOQ`YlU@@%mmBWWuTD2-@f{bSw@=2rL
+z+g#^8`$jG2pYVVx6Kw#-dQmgn%j6JEtu`q=bPCQL-k1Hmp!(rN%BnxoGM*lF$$@M9
+zbZzQ62l@;9amvFALB;8|lAep!GgHI}j9^o5%iu*n6J)(NEbXZ)*KO47IENi^f*tI#
+zr|}~D3DumG=wuNgOs*blx(m=%jYlK5LiCOWGY+jBD&i1=kMYC1)$C}-h-<{atkCPp
+z6)PPYdmDe8XpTbwPFUoy{U1@8d7k$^e5Q}LM+la8g4)z|^oXp-a|;4C4=Pj)*G})?
+zpimpaJt&Szwq-~=wA_!`2V1OXq}?G`);qEGP3Sm-?%B-$@p$gz7c=v#6g@*F(6N#u
+z#}Z22;e>)=Ugh<4){W9xLkzKh2nOEi4v!FMxn?mH6RP@?J*7AN-sFMGP@r0lo%Q!D
+zt@w0i8nG_|YTgb0gYY!ga!V5udZ{oRtX2~>2IPd@O+|SKX-%hB8)Y+t9UIpJSS}pd
+z1+_Tm;zqSb>gO^eUPVWiuW{|m^ovd}svp18N?K=mck&xCcTTM-^)Bq*%Mq?$dW3AU
+z=Dk<yCeS1g=p~EA<UbnFPr1EZZ296>%6A{dlBP?;L_kLeVM{rIK#_6950U+UTAK`J
+zzcnGumiSW+)O4E^5s78A$1ra%A}MrcDqud5gf5uTwdbBNhuB$^2`NF18>x8XMi4&C
+zG4IAurY-3PDItO{Z)MP(h?e|1>lsyDbO9BR$ul}qzQ!}U?95@&bk;|lG8S#%O72%4
+zN%4e|c3a{4`Bq*+w6=07pz9f_%n_rASQy6F6$Xc$86O6;E!A$&XyeR)gOptfT99wf
+z@=xuy88-d<h;IB(+t6wPGfr3e&!>NE`N4ZoQCV7NuQv*6FvLV?Is*r9>v(YtAPgy7
+zi5ktt>Pz&FkW285#K_;&`4bBJ_p3cY$bRayRqMsI^Ap`Wl4<o5>otP=OfT;qd!OTB
+zX$gyA!P#h7Uxhzfmgi~FIlXZX$(Usb*m-y^S9Slk%;~OXNRkQ>a}lK&PiXA8A(%#f
+z+fL%wchE3+PRZV#lCmG)sxc~E%Mr8OmoX{5$?;Wv_TIvqbJm#@#<xWm9bn5vVQ9b(
+zeJrS9q|8N2=GopY->&$ut1tnfF3H5ibfufW#26jEWVRd`r^7hFZUAD75M}dwYsfGD
+zrVbGQ&O0F6A(Vxy^7TuR;G_OWZ|G(kOw4W9+(#!_EyfQvG}^9+;+u+p%#K2L6gRab
+zfil;9x<jrM$N}j;oaezq>gkf!VeS{F-+wZU*9CalJ5mgG#~}<f-!IOS`@YvSdoOj&
+z%NmRUu*MG5n>TW4PIF9OKets0;}3~gJuJ%y)yosk68Yos4|z@faL9~~R`KJM{rJOk
+zYjkOf7H^as!CwOU&-#@bc23}7VH;e<sY^18Jf~PDTV)i6a1(oPwqots&G_O{v}?3$
+zE6@h8tNER9noU0URwhN&A)TxtBCuH0vnbPirC9zuo;An4n-fMVJ?TSQQ@XcH1%M@C
+z=1v+${9eDrz-hNVMLB5fq`u?OzQs-E;ghN8$-J4!(w9%@70C3fr->x`1TivNWx$di
+zGri5yD4T3G<j%ysu87NHrD+8UJ&$R*p(b;%j|r7UOw7k66Ut9dnJSUJy3Y>iwiL17
+z^t&{GO0G^1HO<4BlSKIW#cFJ3l>CJ5Vs&iyqfu?{&3Tq$p<;Gn!(0bU4I;ip<T5%&
+zS@ycLC$?%s@$cNd`X}>qAGN349_DMyqzCyJPk#Y#{i)T_e8_+`YrZL1EzZx|E32c$
+zW32TigVaA)-~RxaiKy1)u*J2shv3DOz~hc~6KSm`LqC`~=o+%-u1<x_#TE6)$-GVT
+z*!|T`mDUJvN=Ap>SQ@Rvc*<Wl|G<U*bu@T?z3uP&FuvV;7qe)!t9P?=z@;*kJ;*1P
+zkf>4N$IjXVmv1gSt$wDXg}D?yoorqq3^A0-K#eu$S^OBmeS=4sPkxQSdYHNFN_Tnw
+z^^dSan8tGv4JmA%fnd4`eV!fcq*1jVxVe2B9AY0?i`hS1k8r>R-jjv7s=<`Mygab~
+z-&EE~Z=UYihG2gl`FgU*?1b(XKDQfs$8$Wa?Au^LS*xt9*>U!J)Hk`q7xr(q_idR1
+z*wVGu0_2U?Pj3#IfQaBX_ew1=eObhooV<PT&ShsppZdo?a28fN5GgiJ=>K-Wx?-I|
+zU)4@X+vNO_RM3(?-z-WOeLNZs-#{kG|91cW_n4zkQQ7swm_bo{95CXr{jNnZo$h#u
+z(ZFqKsE%0V23AnFEo&QD8hjNbylxf5xjQB_L>*s2UW(KIP8^-NH|X%jFF03Zj+Lqf
+zN-iUy6$q$^L5lDD<uF~Mp>JBV1QS1J^O)tSv)6%;xaSNbmOZvvG}`Ra@Fn-VnGIs0
+z@-WVi2vww6ztr_qFX45V@#(B`sN;E8`cUE@y8Y31!8^!-+EM!2=RDjJVfVD|vE3#=
+zCsw;?*C+}ufkPoOy$Z^&VIj8&oQm0~pWDB;RR|$(ig<ZM*^yCpUx^j{4e$NpFa;Uz
+zn;Uf1gVtBYQ)aEFQry``Mu}FdEJoPr__}r2dosYze@IWR;%=tPZCc^Hle`I)L)b}S
+zwVtTEI<57k`ruMBKlqrr5mNhYEV5Y*OE`1N<!Y^;IIz(EHTUB0uEE2rC>Bv!3xMjU
+z&&ZdJqJEog3dvBEQYt}Jp0f(htj4p_SjT@7FrM<$Xb@R~95AZW5Ah9k39D*n3<_gj
+zf9hIwEIN%%E@-frK6)C`ByvyB2Ks#Kz@b81bB(3ZLR@5y0ZM(%rwXuVblqpo`2nsy
+zZUi*Yt|eZ2{Wvtbx%&7I9O$EGdmrAI0^D=@>f%tL0|w5=dPf0aEnUd3H<lI2G)4y`
+zB*<9xev*=3_rAQX^D1Er5o^q2cX7@gh^1yzXaSX6W(dM4;miw>Pd*)_fF-fa``D<b
+zNRB121cBy$K)s5^;p;w+bhl499dBECvPgp8#^2EHSDzV;gmJw(Y`-tQ^Xr6QGi=qY
+zI<?`{Q_s_1%sTxZ-I^e4Wjt>RN5L-~8-6MB<=WH){N#M=51(-SxE@sUX#(^Or#hY}
+z1e|HxUu@KxU$?7~6{bCp=PuW@a!vr1AQ?M=xIeZN=Jof=ZKY_jP<{wPbj>2UncQZw
+z-7)P*&u?*WAlwOr5Lxsc5{kg`)y?H*6pI7lQ@>II;)OZJ`j^6ePp*S+I_Wg>=gnn8
+zrcX5%Y=<mCPPj%Ss!}y6j$&9alLj>yDqZfw_L`#R_sc0QtZ=q@J*-|*iu*0B`WgB=
+z_S^ivZ>%MJ%K&qMGH2?EDqB+A423sK-Okd|oW8oe(#j|e+7{3DUepW#bcWR$V`o1!
+z1Vq%WQez2wA9nuB%2f@yb+222Pzr-R4@K;b820mXf-UY)LV+n;3G1kESR&Yd9rSpe
+zIn~wSM{qAj>o%cJ0&*aV@`H>eZVK#Ls$(;I8A-Js4eAbw%44}wS95f#m79AoIW|M7
+z4}A^q^LW4S!F1noeaGwkifsuvI$Tuja0Vu+Ll$G5hyS+k%(^&qCVgTeA}a2<{7QXj
+zHQW$}8(>6>X+H?%_Bqc}?tW)huv#`eGnx4&puDElcH_+|`HfXJrrBnv(SXWygYoye
+zZ2i@MCYx2O8hbovZ%6-Mb68>sf0ZD#Bh`bB6B^p{)O!rb)^NF+5hCT_{6STCw*nbl
+z!vEecs1<69+Gly$8Uj(;$;Bzf9i1l}t2v1oI6$RYVy04G4m@_v)d$#|K1$qSBhNTk
+zr_KG2#JHKXb8WS3^G}L@8_LjWZLA&oId#zk@btfsBt{p<;<Lo#!n^RSVr`zPa4@6K
+zbmnD)c0uIjzTh`rt_jrg$n|=cGmb&E*En;qB7yzmR=!zfc&g~$@=ft+7My6B*v{xA
+zIG6-_VL|zfNd3CSMZ_*xlp-N&M65X4aSWFXqluswgGN^Q`1)+To*7Wc-)!^t3iSB2
+z-@YlB$dvp!TCpMf3I68bu|Tr&h6&8w!FeUpfd9x#=hHas{%lTQ6GP2(TD;_RmULTh
+zk}7F%u;c3;;5-kddS)XG@VK-TqFgnx7%4{J<O)r9=B(h|nAHhf;Lk5eSMy_dD`uwo
+z+4k28aNDBvy^f*w+cMKDj275D&eFMa<hT}YR=6Bp`}vQZ0;xZusE`CMi}*h@)GKfG
+z5w*9niARA^aavt(Vhm>mC;88Awo!|MOj;$VN`1hO5;L`3ZqOv+3RvVuU+}dw=7N>E
+z8@dbP(SSkLtJ<{^FQj~W66CQqHIC;sJQFRiZq&6VSf$&z^6>gJn5aIYKkuqw_pxHY
+z{EMpK2Z!{f%#b$pk@BRcruKJg61N;D6)29*b-jntPWqogPvZzmu8hQO<)gvp?lM3e
+zH(36Nt?zAMk;zF5!GPZe`PZE~%-(Myv|w{CQY2EAQ5=74wTu6mZ<ZGV#3}kHwT7@C
+zTWVz4nhE|{_wUdMG@Doc(tB{jZy;#Y>PwhwITN7_C1U{*;DJBZ1Joyw8YeP21C{za
+zRMF#B#K=Zfsk1FJrdiJ+(^XUm^<>vno9x^&r75VwvinVY#x3!+Q-S<&7~t+5*<SA)
+z6AI8)2KDHtgKeb6o%~S4Pt$fgM}MjW4|xVyfxV1J8S*Q}M0ViZb9kEElu%3QH4ULU
+zFe9z+N$8WGSd3o<fPw2|f|XBC+k1toJ^Zb`nMbcD<)M{~+%o=ESO47Hh<Z0rMh`1)
+zj?Cv3|MIvw4%Y{SI7a*`Vzzy3%ai(Kr1&0Xs~#VR@U2iIe2&--c$JmOa-E~O;UR1k
+z!DhEnuY-=5TfP3)2jnEuc-sK{qjx4D;8kChtSR!MsIL^d_{Ib839STB=79Epg<yq%
+z=4ZEVF=d)O#TTtlOYJaj$@ELbYPes23WAzs%*#*0n(!Tc&Gk2e$3Xq*!WJMq5VRU{
+zsLk)Y6Lnaz9*gO;jX9J$j|jv0GT~RPlu5nnMdQ4bz`EH*yPc37rT}Iiex1bgOIAIT
+zXZnR_E*A!p_EK0jN0Ze^A~5WyI@d2n)|cvHLO(xI{+b#fpi5V>Mn_U?F0z-U^PEYG
+z`i`;><%byFjRoTaCOt(-<PA=s^Ly`SL<7Nr>a>HZeV>L39b3|e`;J&!&ibvVzJXP0
+zbQBoAvHmP;5!0K8MY}0?Ph#to;gZiJlw2d$Yv6uv;b+nBDKowd%=SfLi!ir;m#V;G
+zhaDSM6~l*$e;TNW-^Ed{Q$m$|^i49iFoFX$t^6g>tF@~_CulF33=n^Mh7wAeBhj#w
+z<KJ(l+?jTqPjIMX-Cw~%&_5?HJd?BmMw3U}GBH*C^M0@z$puzec?cmVf7R6Nr#0}u
+zrc&RxE9^^h=!ceHJ*xNJ*G;^&`3S@(tknM9MAGAFQd?Xfh;%t~yD=HYDU^d_NfxD6
+zI#aW%7|qLiehyNswlDZji?31_J3uQ=z-t=KWaG)2a`pON_{3o}c>~sd)72tz=#36d
+zR8EWhFYD|Odu((d@Zua_GXL8f`8}l_lO53jA5Ej#jW5<qMiFd7-AMrd43JLPyn60Y
+z_Z)AK^OB~DtmHfgVb;a(k*a@|(a9B;xsYo|obG7bxU<7_&0m@x++VPByq!v}Yk`0V
+zUtYriD(9mCG<<@Ny2Z5}NCZ>Q8tlob`O>tcC-?XfZ#qvGF6ebtDWCrpPdn&i-{5Ik
+z3=`(#M>o&|t%hMSL4F{z5`){0AKLa;9yh$V`Li(KdXQ&!s9n%M-QC8k&824vnw`}3
+z*lkc?F|)Ux9p#8al#ME}V`u$|X5L|=KGhq-BVFmU&g4JG94k;E9NX%2JNSyGd0>sQ
+z#6*d<p{tND>uOL!c2S6P3NYF|WBO=jdwWddm}clT9$YvP`miYg5Y(M&KbNGreKV_f
+zp*Al=ab)OqMWIFFpX9_aCs%{pd%sNmpQ3-kKN0h{L^Kro0y7&RU!%@6r0u%-ay-)3
+zh$n^o+~Zglm()tU@tbIYGMeG7{N1oGj`ghk!M{M*{zW!r6@~6y-rkPij7ZIAq}1W-
+zWXOdLWxelwRgYA&m8dUs&1ikOaK1VZXy9m>AIw*BP!h>xrA(PUU`MH2x>x@MhJ0{c
+zm%AL0Pi}hL&I?MNWA2DM)F`rafB(=xirzZ>*x5|G^QBm3K5H4z^fPV`?SF)<P@@me
+z$_)z#7*8*~<e=}%=w!Knwy??otV6{3P+@Z1M{?!<bg2)ALjfb!8ijjPtR}F2Lhq++
+z{^io0YrRKSo7J0zjTL7LWOfU|w<g8BIL*tP18UH*$9JHMlvqFna|g|KAsC*4)651G
+zFaskk@lVCJ9|Th`#(jC}NzZYbG1J}~uGIc5aQCX?m+cX0Md$x)<+5&+A}_Wg(!(xo
+z0K{lFuhAePr(c~TG`i)I!$o^Zj9?+HTtu*OczM-ir1U3i&hdH&28{DVp~&^h_)oY!
+z_UCI{KXd-I!nG>*U(G*6GYRdo5izkE9HxnQf@eoE<xrTyxCG9e_@VCY?A7cTrvZe#
+zkkMZ2)}X7%YOir-w9Om7h7Q3%2&aYM{Ls#{)8q*W+OJ4-Uc%wc)wz#Zh8~1)`+2rB
+zjg7%72m<BxDvvMleslA*PA~O&n~={gAO6Q4D`4YY%iz~4{VCVFkOGBHJMaC-Ka9{H
+z4Aog&BzndwjnOJ-si1dLgOPUFXFb-_3WDbjw)0N8x!Ht@ViWo`c72RK0zac{OvDku
+z@71Dzw$<f-X|QJZUTIy^$8JBupl;!Rrr1YEeD#ygZfWpzm~5_ji--%F4Rp`_t|&8I
+zKRe1HVgIe@$GUpwx?X2>vj67kq!Z{q992%BuLMuef~pJMIh=!&hk+NUcYzpwCl^pL
+zB!DddF(W&DW8ImeeWfcbPU(I*+UuYp1g$|;gDJgB$Y<g`j5e|7pj_P(C!n72{73&_
+z<CTFrxAx3yj<4sxgt}6JfG+~_w^?lS<L`9<!Y-k7?mSmWm*f~cws_yBKzS|i@3@`B
+z6Ml)ZCN$K22`1vZUcr173Qp{a*@7jEs@!%7;Tlv-Ty<oQ6ou|>1td@34_fAXbze_4
+zz09{!9Gdaq6BjCrB^Y*%R&Z<wJiO)hjD5SMns8~*Ezh~5TGJ>Zsk3Ip4V9sOuUFn#
+zDl{Z+CIMK-yu(|2QF!Y*&9<6j|2!%y0MJss178(VH;JNp-4E&U9x14leHv*rSGWas
+zgUwb>du1ffUALN-oL|$kdV&~hb_T{fKLDr|tWr3pBUQ9^sC$NjUYwhIzy{~n9kY{a
+zD<eqHss<V~Z#y8&IpkJeSahhiGCm$Fv^KLXR55C<@wUG6AhYfP?fvS=?kE<vTpz56
+zUi$Nc2tQB)m42UD5^Nb|+g7X(xlLt~t8Tnag%b+L2%kK1FCF<@#>&=G2SaYL8cv=`
+z6HmS*fo2igEy0@WAuaQZd>1zVYWOva6AA~!-0K(SbeoNS=vTC!E*C?Tsw?y4f|WD#
+z!v4dGb+xOQ&C(tFGwSBx>Ko&nq0Q3M%5KNH9D6`?#*bj@NfNWw_J-{8(Y@XiE9md|
+z)8Y0YVV7{-Ezxuq>L@o=m}MH(J_+?4>Q><ou^L6j6;EAtlAOIum|TX(`vA`Ed~c=s
+zUOVo7bKh#{cT4V<8kLkp*iL9C>_sSTdtA#AZvfP=A5@#>7Tp~>yO?vB-HGi(R`Ujj
+zoja?8x`qCny!!7^wRPexQ9JDqk?rnXb2qF)k_xS#G+)-qnOG~o;re%n0a{Weh{i;m
+zckO=Cyo=%7(382k)c|z9KAqD8G$_rEi~{ly((QevZvNyTg-^MLs~Rfs%z{>FSu7KY
+ztuj_c|8f<%P+?;{?9Ja)t&0oyYXUb0Gu+)Y)8kiWzQeUcR5}|B>t>cUqJ(tX!O8{T
+z@6XW%Sg2Z@T=C25Ho(3ST-i?2-p^#m@T9b@Vk*bIvVI2gc8=%|uOPrRiM}hkRJr5R
+zrb!t%&e0QY@(K6N{!McmAnwFVtMzYDj6VrNdvybt>VAoh<TF(dQEN8>w~H?O`Gf+S
+zuY>FU?wj(V#S%g)FZeEA;H}pQgep5TPy!>q(0HcR!en0yubua1%IVw}2Y0{cc=MZU
+z@xlUgL$CGy9$#iZAC|%Pk1LKByl74ZU_~LTwggVR{~)Id&)pk(L|<G^heKwE*p1x}
+z%Nnqjl;t}?KNU9~y~pLb{g<*Nka*ZGXf3KmV>NfqIwdl5S%=>F%NN#}k9z{BIMGN@
+zgCwZ-zG$0MT4*S>*$6}yMcPxEosAs^TC{epxHc_g)C8EEW%a>v9sg|Eo$MI%3y(2Y
+zp>mWb(IG`nt<BkM;V%@95LY6cQ#C+i9BLW9s>J^R;Il;UT{JU|Gd{yEUcjw{pPmN8
+zR1i!mFSr9oUYj8Q-0^VUo8biB@sR_+Yp}$As|S9-eXZ3{u|DotJUMk;04I=BzsQnA
+ze8k5uK1*j18ik(rbUKdXh@WplFjwD(U)VVDsJOJN9F6>s|6OGE`1IgUs{HihOd9cf
+z-cM)-Epb1qqT@>+x>xRv4W1#_9_*_yp7bisP<bNs3r#*a^=FZm5i${7b9tJd=0N|l
+z?OlXRc^Y*=sA7-aK_;s^(<&ly_T&R~3<|{Q6P({vEg)L?fnQ1vTT|!tn?+nMmrw5$
+zG3I1{8wgEP`t$j$pj=dfPMiAezwd1ttcS9k`2xHBA!pZ1QrNwe9oCeY&M?CcmHz~X
+z-=-F9C1Vob<m)*JnzMy>Z-3fWX7XjAn8ehw@AouXB3EwK{Y0;xeuTTrrXXH_*XpO)
+z9dcD~SenzW)|FrOA&I=zWNS;~3_Zi>=moZ{ofkBoeZexM@S6V4^p=^^c{cOdLl+Ng
+zN<ayIs9p8MS}Mx2kcu#+EnA9-JGXwD2TzkJt8+XGI|XGYhfy*aYT=iUPVWZ8gnS5^
+z>RcOdGzqqMj|n*qQ4P}jh91w5jdG&15^bvWs2q?&r3lv9N=X&pbNV95JN2sbu{C<3
+zs5Q;2cXFoH>O`pKD1jNc&GduTKg@G#N2%*jbc{Ye7;H#gL$j>m0=AhufKHH5{=xbm
+zM+mZUO1$FEVMu+K;~7zu9b1LF&S^OMzA3p2DG?A`fBnJwm1hR?u$gvobs?WJ?P2KT
+zi!h;wHg{<i5h7w|zz)VQ7S+G4g#qXvwH!O=+1%p(o^rii)m)Io%LQngcoe!NUFc3|
+zaCFh0{p49znC6?cFYotSV!0llH`>gyg1xpm-DVU?wk4ZKY~7*9Xu<i@G#+Zttz>%g
+z^4Q8kEf(``P0d?ld_$e$14gS2??I%hts+m<oi;;d-c|3t-|(+`qk#`<#r<k;y2XPW
+zC!Ec&V@W0tvSvVXC?l}(h%<|ZhUh(+3JVb4Kkj>D-qj!tjxbV^G{*YgqSY`b-n{a|
+zq3Qy1GU}DXUh&+c2YaS5k2QjubAz8fSaec7HfYLLOqcvO;X46!_{0x-LKj+@b$Y?I
+z8Q#qrTwDEO)bZcQ@iDD(1QIr&`6h5V{xRs~Z>W;}VX+7K-pbPije$?6JQ}!|Q;|1W
+zP(vi`_uKZ)4l^jjzF`7p&Pi^Bl06}wxjwL4@L7O`ta_rwv?runm}_>>k#V@MQNdK?
+z{R=+H-pFojy9W9y?(!)XFG0CCT~uD;J0Y5!ztKRB_vTA|+fg^sff98CWQIydiTuTJ
+z=GuFvaKP#R+MKa$R%xmugAy(U8nCl2EWT19oK2i)o8~@1|HyEBB2NkRthJ*mlWwMI
+zTc9%JF9a>BaS(M1bVqazj^xrF-8$0`uE!ep?^^clp2dH9bN)MVVxQsCx78?dsP27t
+zB}<QfWwsT<m_OR1k{+kUeB24XLb19e;^R7;bh9%(iiKG7P^&{8u)Zv$m=hv`e6!LX
+zW{%Y0`K2hmc|jrFS(qrlhp0114ejVF;o4Y(4hx~n!Thuy(KOjLfv$=Oi9H15iI>3s
+z$CfRIsODj@C@Eyy8)vhfvN7cMdAKtk);MgNX)8j$Nyr6xoxOlfcep0KoH5q3><-Ic
+zWrH(*SIIWwrb&axp#lWp#qg_Yf5M}5@S3{<@?^o5JAI7;kp9+tl=v~6fZ4bG`_Q+!
+z^{l~PIGpgc$E}clT2*T}{TthXP5P`e|3|7926p8f&L;rk&PKHy;3)JA6+Dj!fTV7P
+z0YTmlxPL-c;Y%T-?@x?vuP*1OwA$eh#@ye2H`^)d*W_V(sROfU)59B<hjAM%#b~q=
+zRM^7$4w;3B4!3p}>_RwqFX^}YEd0m3EVc9Bt8BsNxNjUrMVDKGy16RN(U*wq_g%_}
+zkd%N@nNDhzDZJAGvahsMG4fm2Jkam-CBC+VZLbKFGSND6g;p3!wj5!pm+q8nzaFkg
+z!d=Ie3ok_1T2U|`TNo_RzXLf^LDxR4Vsp@$*W4hpwh>57?zNtq)3{dc<qKMowFZ=D
+zj_=fVg|g2bRS3?nl}NX1c-@{4Tf@kbQD=1=lf{^_A~<E#P+@w%rJ_gEiUK5x;_EIH
+z#@6(Y;<%1yJ_P7l<(l0bcGhw9FuRk!-H^;rxTiMI=!~!8!|1g;FKxY?`ITLlP}il5
+zi|o*jFnJG@jl=jpq%Y+0RWqP|ehKhFGZ*CsQG7g}QkoBvt179KSIPOZHRVWL{Kmzh
+zsIP&&8H88Wk~$S6{vz{SY`cix6WHNIlrwy8@AhZwH0<hbS~w-IJkrE@VwRLQq1s1?
+z!))>S``|g>!OHjGUo=Y2BgSz<VHE?cCpZOyHfhTp&B?Rwo|0L>M9GU>`*E#7+2^un
+zpi9u}hA5lSbF^3x1+M;qcvb#>Dll_6IASsxQT<POMaVlYlz2Gf)b~>)#Th<0p7uCu
+zObK;keEKg^bVqB)J#|@g)ne`M_etPkKQ%33n^ZLed2W)2kZ?uj(=L+P*Lh+n1FSAZ
+zG`)zLYXiO0auI|_1*{Hl&>Hi|hxquwl=Yu_>B1xyT&r3}q>#&qrDyNo++(u!YEi;C
+zx1S_xLv(~^#LdD#YWOy4Xtiy~E_Ba*#?7$_<(=u0CM%!5mpI*)%P_xlmT4(@CIJQ;
+z9_H1!LHsiJQ3Zmn-0}3XtbGUd6^9!x4+tZJS4gs3GOc&4?}9(bnxc{#XL_n;^ezTF
+z^?2z6)!301oywWvG=a?nF9Bf1<sfDN!Bn2m(0XTB!F$HKF7Ycl5MGq=!3A~(_)B84
+zYq#Ak7OzQ}AZpUO%n<y!1f{}#yf|@=hJ%|d3ikff9r3JL>Ug1d$naa;{n~UaPV0|m
+zZr+p`J8tw7k5*gINZ)iq2llBCjFRM>)ce&0bsn!_qT!tqF?=-;IY85<_yD_~_zWBv
+zY~VP2`h$yC#|g`7%9Cy8l#~BDXx-oN4vClJ)iM9YQBOz3?z{7{RRM3VsQBD`!&>Dy
+zVmNb(JP%0M4zaBM)S1_zKs~boRVL3&a!7KdebORlf8}ubX+g1i8I=UjFQVC&mRShZ
+z-g1`ROb>smv!x#;mgV%QNc;-?*oSAl5pL8b2Hda<YV#YdxE%KTJj`lR0vt~U1cI|8
+zn=Fsa`AmTS^wkZkm0!Yn&qF2>WqW0@XLa2tmw8!uh`_SUAh~#3srv7oY+ByD(8oxd
+z9Nnm|OhswLw8bgmX4T3=>(fie(o8#HboFVrmWw}GSC#f0nu99@7dm*udNm1{wqJe>
+zQPkgEWm@acrO_2yv;WDh{pyV&*LL!h%o|#U(q!5<3n1>jXO;66%0c9&-;ZB2&YsO*
+zQd{pB%zD!kWen6CW>njsN421QAGNKTvS1Jb?|1J#9nRh2%AL9)r9M(3B&S7cA(^E6
+z>QMglii5AO5Ra#p2b_HIggSlFYOqc9vpK@yN1j&SXPAt|wjzMWbF#WClfSq5$l;Mz
+zK~n~N+4y7|p+YY5)$@4R!mtPlOU!ZoFYT|@rJ}B_<isMv?#RDK9N3rDiT*K%jFDJZ
+z&!AbXP4f;*=q!oh9>E{5<F5i!8uM!bh^G8@*CTDXu?=**-)QiPK3NL;)p0jvmN~*;
+zN%Cco&@CTZ3knyd49*k4M2b)4#o1eOle2C;n-}X+F7?S8qe-mUL%s|dUKP4-g)0#m
+zKUU1x20!QRa292!GXU|@*mO=}3jJMHb2-(hR9y!eVMS@-8+Fg~EtY-ncb+XpE(~$b
+zRSqHkF|3crNaGjPBk{)%k3oi9&xlt(cM7%xR!$B4HMsJ*aE^B+wU;h72p)DFt8~#*
+z4=eV)fCe^;=5YPG{jsyAr}s5j<U8ut<|s|^<$-yGAsEp^*^8+C<Ht!e-Bzu{CyS?X
+z?3&U-7IT##-d<iPtLgNRp%3F4o%-5*4|m3l3dF|p!&cN9ERsT_1AZvU6<%%}hw2m(
+zw+_<1_8dQH$C*+XdgcHRVKfE=eRMS(sZ3;=&OIp}R2ati?ecyQ?o@U;IWFE(h*}8X
+z=mO}sDWw&M&SH2jKZ;C}J2r1W2kdW`(<o4gvFciF5k&OLJhHv;SdTt#TOE2|n!F%N
+zMn`tJs>Z)u3V;l&#Ap_*MkcClwfsB0#ZJa{bVrweEE^ALYShEF-{`XWMRUP+?sR@a
+z0#3xh*Km!0tLwEq)s1f|y}3C8YkvV{SpnZH6(#7BA?)rengb1TY0XB|`+kgS?yL=p
+zFvA&Cj1{UKyBqjPR$JC{4WfbL=0!>6$7nrFce9r-HH$eG=sA$idqVUzvVi^dO4P8I
+zhX+1GyA92VcrK<^wvny`lf$2&%TgZ$c!VFWBhnoY1&B5N0`LHVhKs|aPBAO~L#sM|
+zD<~q%@UqNog8O)~p77Fc$`580PM#%G0r=Y7HD<rsKf2I~3qp~p%m<fKN+1`?%r8cY
+z3XS#};i6WBT!p~79co7NcSmzVUn_x{jX_fZ>!}&G?*S%dH6v8-@q9|T@|f2IbWk1b
+zQ}E+WO-#TC1h>buVUZp>O&5Ro7Q#U~lK1$fDWNy8Bx)&pV@j_1me#$ko{-&}hM0h4
+zGG_{Bfjo9sZW^FlxT5gUyy36#kG^^0P{0vivjj1v6c_^>68n*d4eY%$lcvkGVNVr<
+zC7Rx-`Fi76U;VX4RD<(ARd9iBmdBUyp6k6(U?tbMffex-YR1=3b})IUv82w_5`Qmv
+zN;#U)Wzob;6<T`S&NZofkjUQt=Q+v4+RI9^@1Qqg-9>1I{)_+RE)ym2Ryao5^joAf
+z)kX>-jPlF?nD1@|k-UWQwVsK6ZRSjbp9mh_?FsTgo2jANl2FoT$V39O%9&!+c0SKC
+zEvT=4jsfxq?6%S(<!=ymNO&5?#ms@o#65SmBA6B9YnKG_ysB=DN9o@78Bl!Hr5APh
+z4tIL-r01|^AQxF<N)+f__t>*)7J&DvGs;=@t1EQ)lN|BOC8&v>vmgNYdVl+)#<}{8
+zCy0a=+(@f_hT(xOF+WCS+TVvmV^Pt->FU(}LZwT!_!YqiCvbjKp};^5o)irZ$IVab
+zl1xgEv6r9v4$Y;DGg-}S(}ht9DefZ|Jt4Pem41WX$^qnWuoE?|prT6v4sl8{_a!Q#
+z7PxIZv>RSNB{KVRqWuz7XUKuH$cu=<I#*<`N;2^Ua{ktAw2OPSgWkND)m_i|k1~ux
+zLL`3<50s+&k|orTJTfoQh8w}6n1^TlJVi%uFZte9TJU`oH7^ly_zTgY<jSz)2NLG+
+z5btiChF9V1B$>nfd@s#wm+o9=H6eRtJf1jg8+X{Un^Iek?DQ2K5B&b)q5TU{!JUMS
+z51P@nve9xsi64L9L(}PK@^&qGsADiEv^+1<ecE>3bFtlfWba$4_pidgE8sWa5Xk}S
+z(D&m6_BH>@L#<!nH6NAwQ0@<V0>d52>_gg0?pPMIQ<uNte`%10!ZQg->=t+E<voTN
+zxaXE-jSr;Xf+V=47gfg2|Jm={C|R<rxQKMP6~4n<?VU+YqyEDA*PwhEwG*FCgRSpa
+zGEom_N(l$K7|)4QEz=^@o51zKWcc8o)c2iQ?Mo3Ju?|%mwio8Ua0huW7TFt7IJZL0
+zc4`u~6pAHi?V`~MA(mrrkJLXezH9fc<_lUKOK&@9=yO!s;q|Eb)kxoPo4w7JIe-wm
+z+6lkhX82jru+!!9;y$k8WsAvp`aWB=2~RY^-RP!LMnb^+gYP~iWnl51GRtRU_e(u(
+zyd*$;NGGP-jzSaUCZdxyzGxV=yqMO@Weq)UwAgq7XkUug+TC4WPjb+MBuV3!j<|E(
+zMLkT84)UaY@Pi|)x#LQc#U0i**k=qvD?;2$W7YvG#U6M$CFGMEGfP&6%`J_!(!P$b
+zK2TqzgqjRVSL@h6PiStj+TvEsA%54bLmletFs1FSZ#i@>+MZw22Sf)rCuvF80U_w3
+zkS@C&8G~aC%9g?5)h9sks}s-eqXyRSfq=ex;Ae4!Dk;y>$k{kK(%t|2yd;zKrnf8C
+z$o`uIBt8B~3J8}J*vwl~qM1>vkJZ-2mcjIZetJ%D5Pq#SN4grWcio49Mv)u;5K`=n
+zWDgKUuf82#xy&CyS|rbueXZ#|a&hm0{!SU<plRo7lluaWb_JK^*pX)4gm>!Ln~@0h
+zk!}KT=!VFVvs4!TF-1`rlIK=CaY@b2!|+m>h?Hr;n6xho+VdBob_P0I3T~S&2SD~4
+zrB>alHC4@DJdT=>YZU4ZuJmZmn$IblnllpTK#z4E#ues(OqP~Cv249fktIq#@>cEB
+z^^VdFUe|Ztn0Zc@)<vxd^8G$fW0ed)36WdpwxVTgJk|!O-sJCT^>=>gu=IGg?cvbg
+zzb2C>?&y_>9jfEu%b~pln(*uddgrGj?2)Ek<?obU`0wH(=6%=GA!?Y@tZ@`FX+PYj
+zUHBV1<Zk4%*(TX=nMm*1I}Ja?d_KN9G%e{`1m1yWym_b|b#v#YE>z)%EjvN^`=4ge
+zuJ7fyey^xb7|%@is<W=FEz_^cqlQi3qSpOh-<W$I=DrybyJou%C*MrA7YnL(EVKC5
+z9OW-J&C`7EUpx(q26d6!|Ms;HT!chhZ1(Z2aPDSbP%}Q&p<1t!?D5o(Jio*>3OE^2
+zaSb$8A47P5`}QT&NWc&Nlc(o3OBm_7?}SXQ4fsmBNfltNc8BD5hXT-j;=h;I-jKl$
+zht_Bb-pr7h^(S|3LF-kn2<4AY+r`pkC*L8wW8303-Gu_NuM6Ye?>jXyAmpIEpQ!nS
+z+%+(a@`G{ypOCi#)K6^AGjO<3p~?EZ$}=~zC+KH$EGTTRwFQT$XKy9eIG)&HY!WeK
+zDITO2{>9ND7>s|Nd?S>nz#oW>3+%__agEF#K15<r`wK*YDR2{!JZmwl)tBIuNd25!
+z3~-TI-#xWL-=rGMZtGU-{g+ZwBp)m?qP;rT=m5*zFL$G`s|sBcb#aI#H&qXsvQz~h
+zeO3&U_o&uB1B57NEzSsgR_R3PEm@6t0<P%F9$%oCKEdZz9t2{8a|+bkkF4&y;vFa-
+zr|RX*r{){}&LvQ+V&>Tsfm*TdG8gB*{rtF<*g7SMK&^#-2v^xHspd{*Z#T<$N!Fqi
+zG$fQk&-kYx3Q!Cxbr7fwts(_7L#qw~Q$Q%n@nA#^S^U(1^1$ZP>9sINyqF_n{<?Y#
+z{q@=x63ijDB@4HHR%G-4==$rx;Uv@bt@Eq)*3Yg5&HG!J067U1I@x40PZ&0)3woaj
+zcbi0D>+fH%tusEB@m`#}R3I5xzGtq=LHy!lucU4cyGVXR`=B+usrhO@K_>>xyUH^Z
+zpZ0CT%JX}0J6X(<n^YG&?!1yj;<o{mIX*{HS7hs#8~&EE1)ZfTAZSc(PUtCP?(CCt
+z*Kffm-4d}I6=ThxdsewqS;+4^{B9~;+gKWZ^nRzF_kqJJb`z`^YRy}28W^v6OCzMd
+zY~*@?_ev<>^~;g9!o8ejb=0-dwK*xY06Mpy%JgSb0}fC#KX$cugt}yCiQKoqe0m;=
+z>RJUerQ3q8RsLLPHA&F~;;w}mjz?6AS1Fnffy}eRyCfg%O2*tbK~IQ}&o)FXoUTEf
+zo_dwnht-_l!RrsTGrFK;$E;a6$vhN|T84ZbXEToez{1PWJng@wgj=gZtOT!_ONC(;
+zuL^O^Vb10@MZs5ec^s2!(@&3=#(N!MT)0+KIYa0TpG#5&|3ZL(z=B~d>7_!y5Ojm;
+zvKkQ2$}_DK7V=#YD~n3#S_Q`FSCVf<K^eSVf#Zp5qI{kcIy0QM;<$SaQT8{x|7HBL
+zIU9T_k@4sifiy1>;lNG{xBmo&ZfcICOiA<R5=x_ZLJh(ihc$0iuL4s*K2hi4=LH>Z
+z=b|T6DrBv;fZGa;gnoB^Ta-=Ba%vzf=LA!@6qY^W2ASvq=es}MoW<x}p1>DqjW4^z
+z8o5qq)mtyLULW`6_4%OUTUC7WTs(t0*sEvN_A;KQcfCUKJDx$J(yUbED~fYSbYm+c
+zLf^5VDN=wLq#A`Qgk9a|hRQD5#2mj+JC9gw!#m%?r0yEUefRZ32aQ2n0)rl5U9ao6
+zIZaC6oknwymlHAu|BayCqUJ_SRxpWVYMqa|a6yS&SE?S;gfuhmrxmolvD9?^^}frC
+za5k4V(zBmR&&~^m*?mN`CJ4g_s7%zS#K2ROCNNe>%}jC#u#>Bs>twRin0bg1KhRU6
+z7TZ5m0yy6T?&VzHIV_Xa-+{nz(ExE;X_Ubz;oGD4Bzd!en~G_BCki|8O84NHHOH3&
+ze?Dp6i!*B<L=iq}@mdPzehYj*=>jIE*o!n?pO>%)I%V$Y&h&SHDB<n*3TQgPscj&B
+zm)<s(`kCQEzw9wtYn!>w$*P?eqtK=qCT|Y3%-bJhr6ckpDEDv!u8m<+cM0vZhN3la
+z|H(+OFJ;-W7<Cf72?qi;K9`NyTOvkt)eioyYPeJrdjIiG5t)w<{71g;+xk`#{J}Mq
+zLy7J)tKpF%V50Y7794Qk9dhz;w3Yn*qagiv`x=AAIsplM0gieS6=ja3cUKv&rL2<;
+zJ!0w46rp&g%<<6QOOFM1*ycXppiOKBAr31X51SytXg$Qk0;L&dm8n>ZFmbk>=Pj}?
+zzJkR^YYb0d8_JF}XBnjy@X>r3ow|qQp@T^DTc@E*$cC5Q3iI8kw$u>Lv%`JP=Qdtt
+z^s8vlI4XgZE8?@W4hiR6n`o+0Jlt6*w0OT)Sd&(Tx74!hlPWCGY<NxN-|C}PZhj((
+zpVLrklXs>ldAv9Vt<Kqm*x_p$#yE^`(`LP!l0YUID+bNuoAJI6E_L{q*t;IK>AH*x
+z9>#CKDd7ohJHU@mIZc1`KZDmXS$<G)@VdNIpq&5DI??a%y25Decy7tPO(@1MlctAK
+zI2o<vfPcetEIN{T#h+A^H&{H#K8cx>%O7{r$erN12pw}bS?}%fdoX5DS^5XlN4wGG
+zY(v!A;0k})mOuXkIBsFd7Ibl{RRr@P@-qBFuI4o{l0J%vh$FtsPk^1%oKYez8aM<}
+zW1sEKk?zu@^h;qpCe)G2k6Nyxr0ypxsAK%OxD$zizv8jDhmNq!FgLIbbJj))!EpjD
+zL2&DvLp`ETCALBt3)wda0kEqCWae=7z~4&1{M}V3>ni!oOIv7T&1)VsIz0;s*2FCx
+z$3?n14!37%3k<EkM|__r7eY(*TTf3PAfg!NJ!3bUYtm06WUjuiv51sX$LE6d?t!Y>
+zM;`c4COH?7yYRf4<S5hL8u_My2TWMakVFWA`H$t=o&yeJLTLCu0DwS$zhiP8wtXV6
+zXFhtT@kaj4>Oe8`O?;k}zJ)laA^Fd|Nu0xPA<lNhseF?-ojT5vPm5Fk^cUik^%>||
+z7(>`^c}|P_VbGt_Io~RKzcqPB9et*J;V;=fO=;3ygnKxDD`6j|Z``T*l;-6#Iwha+
+zPrrUXZ{}0&1K*nTi?%<d>hor4uE<LhPbpfySsF7hO-o9(BkL&rEm_LH6KVC=-%@g<
+z>>S#3$vROc=4dlD-KTZB!Z%50<kBJT?4|S#H7NOB+S4lEYp+|zLS4rG&%AyaANDF9
+z$S>!&Z%__xw#ZA8UU+sMo%9!$dw2HH3EyxJ;{Eo|5f99X4bYpu-==ds5DAZ0`J<D*
+zyKWZ#ST6l1zxCQYi|{T)pK84CUGN;T%v+|dHkD63>9@{Oe(QK%PWwtddEimimN);I
+znB;>WqfP0L?@iKvOQ*dqFKv@fTZ^={Z;<xyby`cOUHxdDKR}%a+sq2f{f^YEKjVED
+zTjjjkXANeg9fI5=j-8ZaJjT4fN2zBh|7{2V<F$Es-a;N<%FClu=V2iadACPc`EpY_
+zM8DIExZA-8+%t*S#%vR^GX}k}?P|oCGtcI^disOrJfeMWgB=4+I44?LTWv4r+K8d{
+zLRzh@2c&-#GqxA=r=*bgqpf#^*?+*V?g2S)FUE@tl)i&;xy!lzQR!1Kt^B}>BHrg=
+z0q6gCRPmFEvP_im8O2Y<;3p5~f|T7H3$owY{6X>lyZ4i~$R{};i+<=*(&v;cr_-rD
+z4-bF%Jn!zxd)JJzo8O@A?_gW=9xCmdQQbqaPTo7?=e;x9mm2xudd(lcJpQQokxv|@
+z&qtIKd4qCpdK=}uCy$4Bo_K5dU->rjFV62HI)COznQ?mOIsLa7boAx=Z!XR+cAiUf
+zzWZ(7yEp1@e&AZD>38PO6(0YzbCRChf9MlCJa63Jna8hmn#`Y1)@AWqOq<bZkL9JU
+z(rHg4?qKUy<(m-ke|4`I?}bi6Uw0m3DC3XPW}AMnm3?>xXlf!9iOw<JA?CN*Pfmmg
+z&t$Yqdu#eGu0*KH^Jz@~#?y2k=bWc?ry75$TRyo{y}w`MD*X}CpYCyuC&uvkkR=|i
+zudjlBU!NyW>V@)GN*{@jv27qLo@8H&^tk>=H^z)^=~vI*sr*cGT(3Q@cwuVZpMQhA
+zAJln|o+t0`<mG+r2RiR5^u7Oon7$9~oTP7g9)15(zrS$`eOLTI(Kn}`1}%B#9OUt(
+zod2e{_V$=egL%K!LHYjcJF}+@IY&#Re*Q>yT=E?2m{jta^4gy?<-O_GFg@oCX2dZ#
+zc3aT%fh*-=&abE(FG2I_H_&}PwN&x%j~|)rKha~D%X;5jZ~EBMN#3t~i)rTNr8)h)
+zO2aYD)MMHg@xA;!W16s(ANA4mr1|qVNwY$yxf%3*m9~9CrT3Yb!$psr^n{-}=}7`c
+zo;q0&Zm{_-6uH6nhdaO@9rF7H`0kB7^^@28{(n>Y{BP1HC-no$;P3$64XC_q<Pja@
+zy2K+{aqGS;=G!yu^>!|fuoI6kURHc+U)E0S3nd5b8H>A97a$$@6=_=bWs@pRXi0bK
+z_0r8)+KqWb$4~yh^4?x~j6b!ETw5|&dF?5ZM_iQe@|-#31kx?qm$hD7z8CS%DZjQO
+z<wLsHlwa48nvyOvflGZy%4@}b^8c0h_R2e_J#`sYUVHv`^-s_LGXMVnYk6<hKk2iU
+z{>VI5`%gT{_Me!%i&6g<$#!?fX&o;wzCSO15dTAO5MS!l^!tQ(o^X@Yap-r9zRrG=
+z%^s3|$LY_U^C^tgo+QtOCpze}oqpWgW^u1|U4}lcJ<_HyHsL?N;fPOE%ey7iS_1DC
+zs6;RjLI~vur3fZM1%lsDYYn`=g!@3%TF08WhvRMLbL4gM;U0d|@K(21+tN>qD_cbR
+z8Kdq*Ujo|`BknYxC~D(6Bz@xITQz;H8Zp}+X}9V7wY*jNHK!lLB}i{Y0HY(&OM9Fu
+z`h#p;?O3B~-y~-8j?1WBAQs#HXs_dst#*$7>sGfjN!vS=J*w>2<QZsVwJpSIJLfmp
+zo9vV4;CwuHX|4vZt+oS^)pkL2wO!b{+78B6+bzI>eknsqd>5;wP8^nZ+A2Rf^kEo@
+z_Pb53{cdxt-(8$kzG-R=wNJ#o<cLRXZUX*|t!ht<J|Vegv>fS{wJLkJR^UndB>DxV
+zPeA%7q@6;kQ0ENlggV1lC-0O#F6VXw-0R1jU;5fiE^xip0=K|?Hsdj#azo~wHf;iV
+z-`BokW%tT+F+O>wKI+Kx8fM}FpGo@#uJLY?K38c+95bI$cb1vgL%%&P^QZk^fp|8f
+z(%*Sb`k2MDg(LEu5d9VU%%?I@gErrLfXnm1?KaHgZiB8!d;U9627P7C!(8FGyO(ys
+zBBJrSL!KD}jUS+Y=8)WX+a&i*b9i~on-Gr6J+et$BGQMC!llazMHDUpjf*g!lzY59
+z5A8`tfEV6HFeV!uL++OM5fUHo?}5)UO(*Z$z=^mhypq7-7;tJv`exAQ*g5p^{a*B$
+zkG$V5eGY=RCV7hYHS@mp0_*9_a#Qh^h&=5ozPkIr#8=BTz5Ei#1*!A%)44b<KZjmN
+zflm|Y)C8Q4o<py|??tZ$H}JOUwO`&T7}I;L1;&w#NXmOWk>As(^HOPx&il{{koO**
+z8-Ja;GVfSa`StW_+i`{0jc&mk(1^5+S+qj}PQZ<L#pHRmJ?i{X@)MxVCqSbgo<pO;
+z--||n;ugMb8vVOl8dWr6oAWH8DbGIAr+B-=y?>rVCjU^z(HFLVbhSetzm&<ehw;aH
+zon^d-qP53){A_j=&q2}#2=doCDAtWtn95Hl?WY6LZs~V{=gJx(KO>{Gn}@8Gcebjt
+zl(b2q-{1zw-T9EaQQ)_@m3Gy=c3>2;pS}`}HambZIzP`w$o0smvPq`DWS({89r4kq
+zI_ua8+$yA>;^y>1$a>mP(f+*BQohE8xI>;X@kbK$*O9J$bgMj*(}{dmM3jA!DScqw
+zmfjH^30&<FMf9a^#FU+ZuzGD@q|LUX%ErDksm?75tJ~f|yOnU8?Mt-TOC!9`HId#y
+z-?rlU4EuAx_ANp?9D)8TT93MZY2W@#Mt~Q%hEd3|!eF1C`=)(*y5`eD%^U0sERXpI
+z&F3>g!TZNvuV2TU>3RIxNj%LbGfSmC!Ex{zWHRvcSSKXU7RqzU94DT8L!O<k`L%F@
+zU-u(ChdfWb0nfHg;v$~Pc+C^&zlWv&9<P90v7T}{9*Deg)Qdd#y+L1|KBW(Pfd|ug
+z#R>N<(FAz-OvVKst@NdQ-1Pw$pY{AXc=+BX9zNi~G`_crhe<pRgP)(1V?u}Aj|Z=i
+zcdTb2yHB{prBI$lzy59Wj34;;fsg-f&?SH}{h$kFd;l~F0FQi{1l}f10>FW30&fF{
+z0^kq;4h6uW05}v(!J*)7;!pq_n5N)u;7|x03V;LUcp-2ooPtB)+r*&|I517&+u)5t
+zQ}q*`Gn0N*Xp@G%CGTC}xxSpgWXSZTkTu64A88j<uYF&4LatRvUsUZ5ecKe$W?L*u
+z(f+ZXHu{jaJEHwv|AKVAc{a04zwZ-=b9cOAe!(+R^1PXzU(o0I63G2Wz^`pQ_u%1P
+zLAyLFRf@9dKbzx@vK{Qgoa;`Te%g8N#BcS=bBm=?j!Pfp_}?piCkgu5)^i2o%z25a
+zeY1GYUOSZRwdvQL=TQA&rs;JmBI+!V^kppl7c1X3w9O32dsXeUq2~uz3bDB=((l-w
+z^<$O#zF}$eX(rNjQiuAXEB&G)y}TD%o*RwXMbZ|9_QqkC@j~%r#*?^S+NFi!`|#Z0
+zia2CpVlLnw)bWSB<3!rw$}yPrVcTKc<^7wU#C*g%i1;@FJ_&du;1hs103MJ&PB|u1
+zrgBWq`4V|Hn_U%-C>y;7lwAoLRtaTqIWazSjOCsr#^(xoJ_NiV<163zyhpiCrc-r1
+zXB^gPtM$1O(zA~K^bz+TQFch`6${eWfR42FESLAZqiyK7B1)gNpml6S+IlYyj|Ap$
+zOaz@dKjXe6X}vT?d*EZz9~WuikIZvJ(PYL4=!x!ey?|ao51=nfS{`-f-G03H26SW^
+z5!vhdWt_ckK&IL276AGH3jqx|Mz%{oETl^cxKmFc9w9le?UCyPg`zpd{aenLmxlYh
+zzK?kM=d8H@QUTtNB!49RDbPk--W|sK!6J!NQ}{>vF0dxrw$HYtf8h--&sxyeUt#!e
+z`<s|M^Q;Be>S^mgpZ>Z@NBTVD`2pTh&GRJS+kcKIyR!<tzrwuc>p1d$YeU&i(YBNA
+z%C=-aykp_Tk1BhJpJuZ~v`@<I3kP|3mb6<CMU~%F_f&D8D5&><4BlmhP|iEB^#0M*
+zJ4W;KD0!QC(C&T^G~{`+dTGnu@6M6;I?!h%&(+Lxc!puf6R-!pe)Rt?o4%!auA-9m
+z75~0fo@@Im=zmcBNS=A;c>pV^=JWeoe<bbr%RFM0yg!_G#e!Gf3EeI%l&)ubd2d<2
+zy8!QMwcS1R+W_QliPuULHyZtcEZR@{xt3=EhNa)C($-<Og0}xiJK_~ZN$P|j*(!Z#
+z&=(QqXp5!vOWpy&HsTr74%*lAEG){JFY_D7(BDoF{6FWaM2bGUf~Lp01a#n<4Q)qh
+zSG-)`6~g-?C`*@XU;6a*y^DT!_V(HIBQg-0X0HuRx9MMWrX`#Q=l0pOwKsT&PH{Z5
+z+vL48w5ea4nQooPc!ZH^qRm1AV=L<E5vA!1P@hVfzEk>q^&(CH^zkL0biE16q$gd0
+zKs$c4sk2-9mKx5;e2uuwmwLZf6r(R3naH;Y`7%w(M83tTpK*^p@&x)RWE_G(;2lG=
+z-Ynnbk&HLi>8QNR(~kkaVx*~%ezOK;-p|oqF!`igfDl0NBha^XDaM)IhKg4w&le12
+zXjePkct+M0^V>|J&i9{@FVmDDjmp<RUl-C|kT$?<2fwu{ML%(nlPP(p6d-hA-fNXw
+zF4Wy7LCBRt;|b_3Pe86d0sa38mt%Dw<O=n6@)mvM@eU{YR{k8`QwBHabK~WS0oRNT
+zxVM6TDwc1R{8H7b&K!g_-~KVr`bpbA#akX@ZKhAk_<r}23EuKb-de2ha-r`6&nW&U
+zl|Qa`-`QvHGSr-Ug9z9&%|d6OV4D5axgGL+u`#7x0%(_MQ`$wfNmKd(JrA29+dD4X
+zq>_A;JcKdu5a!2+&?bjYGQUz8XG<m!iOV+ein7!+v`3S)&wqL%&#lOFmX6CfvMnGN
+z!_pT~Uy6QgNb69tBSqWu6-oMCIEef(rV6gH96Y%XwC&U9Pl8gnSdi*NJMF-G+W$-2
+zZu9fpufE!2E#p4=)eZXWcD2>#R+)Y7pgyO;b()}9tL;2Q(bGG!<1((i3$V|%FxP&V
+z?+n#OLDA;+f(C__;RLO_W=T7A=n;ixi4!#MoYkOoGCL$X<ax^gzgZ;?^JILE#gvVP
+z=yQGY4to9FRNpxVyKE2b5!>bW(3HF>JIi(6xwK5z5LRd9dDgH(bV{CLnUs%GPNFWA
+z(LQ;0c<0&d?0^ubIA*_#d&!AJ`qyWbznJN~cbPhcseAy3!fV}nb0pAc_6O#n-i_c{
+z%F15ArY~%DeGl>81|=VP{-{yQN9t7bO(h@cBZ%k5C?9#J64#?cmd9Dj^@)VE3y^;P
+zcOlK?pX;-!7jG#H+VR3^cF~6usZ0N~&EBogg|SX`@~(olnZTTN837qS%{r1%y!)Kw
+zGoL6+_sV<yFizLpFu}W@r>sh1K8fH#5C}ne|67;C{5>_`UFIEKo0(=Fk!ON^;vFdw
+z<N3H_Ql|Jsu{`fZJFyFDx{&t(@_xqzAJczl*i^hsABvPCpSNE63D2?>3d~gy0tkKt
+z`a7oH^Kal=o~@{FRetm7L%SE>zD^kuR`=QPEQ%2u;(6fBCwyDc?-FVHK;{}qSo>lO
+zh7+Evc&?Q9Zh%hj2EFNLn(aZolj|+?9}tQcVt%3gMDrepT`2pqy>0gJbg#WG<gs^i
+zJ?F!;g&oS&;rY^;D{YVYygc(GYBpy?>wu(-7w@K_-t(0|m~<$4mmM-<PDxGJsQ{in
+z#P#K9!*Ny4<@d|Ag@Ac5!@Kvw<Q1-AS?!We^i@QinzVTy_2-=y^?IJe`3>*9OVEd3
+zERjl*cR`1h8q%Nt@N}O|dE_ZZ*(QA?%}V_kdJ|>hK*%T0nE1>S8RCAN_p~Q(a<+uL
+z_HNbzeBc%9q%R*&&064Yq<+G*Lg{C5r03kt3qD)Qw9%U!o>$ybAkYuN3&m?QyQMwL
+zI>~Q;!?dl6Uxx~qmVA0FLtAnBb8L}o>0xIeB;<K(Ij&C0ql|fk{~z|=JwC3hx)(oZ
+z9@0pf*hjXU2&2MrBEWzs$H9Ov*EC~WfB^&JS7L&Jabgk|d|^^daa;E?vL2QlDU5B&
+zb{q+v5YxK3ZmWd!HVvkX{K&&G)X&689D3$Vj>oanVrWVOO|0MdyY?P=tjJE%$M1K0
+zfBbPi((JR(eyqLr+H38-_IIiK<UP9mhMh%QvG(VV6hCmjtgHmeiWnYs_eosuMwK<|
+zyzUF$XCr8jb)?v=-eavfQvA^Q(d|-nskPdKE{$b$`FVL+@lj>DM~a14#x84;F3T<}
+z%e!1z$s@&6D2wq<7&opWx6JDctFk8OvYN`uS~Gl^vOurTppWENu9X$Zo4sB`m35^q
+zi&#V~=d<S(-8ptWQI>P)LOEE^7NDHz8rS01SB59^T#Dy;ru|J>cW%P_MywSUo;aR*
+zJau?%JPmk=*YJ7dp}bJv-6r2HBJSefhK=PRb+5G%`Ze#5rC=+}<@pzEoE6Du#a7^&
+zPs|<K38t&=+=T~umZ#zo^DYwY2VyW=NzoPZwY*1?P14qyJk{A6lx#KPZHMGet4bS(
+z|Er+qH<s=*=C;C)*&0;y{)C)M(LYJW0A`GcGyh7z$HlZ!CZ7X;*CBsB^8X2Jshugt
+zu~Ogh4o*eccY9tMK5HXi1M)Kl;#hh926>)AnU3+E=fgP_V>gk&x^EwXoIR}0%&@+h
+z&LPN_!-63c!5SaJ`;dOmwH$L7{~wYwWXVGeE99e{Og!T=XuD%*`_P1KlNbnka>^$w
+zp6V&e{Q$;h&e6s}{V2<@dQoPF_!FzW+=J4N$f$G^=^>=YMx}?4&NjtumCk*ojCEAn
+zSjl}?>mbIioqIx_PuiNQeW&kJ`#4#&FY740uydqOvX8j&V#g*@Evk)nPr$vJQrX-i
+zHmqDgKiQDoF84$;))8r+iS*d0{9)1&>G4tdE#i1XM+@T}ag_^fpQc~4ZXfB$*wov~
+z=qP^QIZaE0v}8MvqfLFIXqf{okAs$dqiC5!TaSa5eWPfZ!|&suW#7fLB-WU*RNBe4
+zhFHDjv~&kmTO*10$lea=m$3BsItSIBx*op}ev=;JhrsdS9xuj*Sm2iKdwDt5Ym^gt
+zo#jaEXBi*TN|nX^nlZ}rN@e|GR9Rdj!-+j8XQPf4kiojT5q()&h}apiuVYAyBaQI`
+z<49w9ueY3-E{EUpyI+=lCo!|ZpP8hJnH^2S)=#VZHgV`JltGMD&zJ{ctG8GQy=oKI
+z4DR(Xt_=My=cWhbPNevd2zL2W;@ekO+PxAhp#p2bX2^W%P>e|fy&Qd0*!INR=DtOV
+zKYRWnY_x^cKIjg#X~*C|z&5dOHJRSxw(NlTX-FF(TLp^<Yq#{b7Cek{S$7rdPPv6j
+z)@@#>+nCl?<egvETa)fB&dp$s8c)9J`<VW|dW`Qa{k`}Om$1dyZtyDGZeSgeds~;e
+zLzVdRu+j4x_pBOpo=Mg$ViYk>MJwpMnZ7K1Prt3Egz_aX`KNLYEC19?0C|6w<#Qh_
+zZ1)r+w(?m$xl5J1O8dHAu8hCGL>b%4%HSQ~CL<d-*5*L45cFMOVuW%(i}up{|7`fI
+zrSEo1Os^y{Uoru46YFc+#dmo+Wbhp1o1X3s%-L?<p4BdQE=lLNA>D>7W(=TBiL0T{
+z_6B=$<fV;}an}oWL({Z&nIjEmyVzsSly;drJnNl~cONl~cSTq?blyh%o{IPNvw8!^
+z>BZbw=kZ)%nqhpXaau3+eaREi?fR`h<2pK@@r5Syy~O$(m8VYUnW*!G^n3c3H?j`K
+zRiQ5i+VhmPQ0}u%oz}~k)uE}=+M}l#=RxkbtMUw8-dX5QqrX3D9evgJsB;qDO+=lO
+zSSN8U_?>x~ZyshG4Xoi6)~#M6=u2E=Q_kVmdPj{T#EdRL4+=M$?NR2xANl{Bm?n@J
+zjq|gzM;oyx`Mg_m1^V4IYfE4|TLQ*ei@@#(2|neqq6yvJ6f8UF1iTC8+<d<!_idCs
+zilry{&}}B$)|Q}Y$`)xyII-4?K(8bZnA}sdk6pG5)0yORe41*}hQyYD`T+G1)1I&5
+zcwhA0(n46rV<o<9$kyLZQ{P%vt1mL%nGYFy_|&Do|7F?QN<F9)Q@*J-EBhJ-`;luW
+z#&iKXkHkK<Bv#(R=YGvLLk3#JFT@%iwpuL8bf>mQzO|i<FIX?5zK@OiK34WU<<fNh
+z{nUTs_a$A6I5q53JlT!0X+O=rH4T;Z%Tnc<&f({<&W-f#RsG6!seTQO>em?G$I8Bs
+zm3=S$8XDEFH~2mKMVuP;jdztxdaLMV7_%!O_h-U}i&%5~5c((Q(N4xoBw7Qe-)8;n
+zRCzk_TAGus(7lcAGacA|m~Y~1#W;hIGjp9i0n>?TLRnX$E6XY`XKrq9@FLF-K<|h_
+zT4zqn`I)1z@n~Pyb06M*R$_jK#4d0PrM^&Z{aUc=7Ub0(H#batVanQ>$*jizUCcY*
+zd*w_e;~s^bJ`_p2LrsS9H23p(=bJHuDi!|m)0JpnrL?cZOC;rP677&Prkn>YB6k11
+z5w7K>Jm_PkvHA2B5~s8EG-dWUqxbY<!|D#_Idy+LKQp-{cuw$km*lI6v%ClSQBG`V
+zp2zy)xeiqx=3A-EN~7y^scpo#c#=4YnU28HcmL0Q4E@Y(BwlBp=U|569VNao)|jK{
+z@8Ne7bDFWYh*ysOM{_E^MAX9rJ%V>`=2C}~7;y^=2`3wEwzE<EorJ%WFfWWydYxgW
+zIznOZ4l9&sv&>}s1n5=JJu-~D@lX_N&=riMZ9wle5<YFc|MjQCXDiVc!`Ptk%#1ny
+zpCB#DyKYE}IS0gUJGbtKr^i9BmpHV@W2R>NGZJ?OY!~A@MG|f}lyE0*{ZoDandRZT
+z&G;Ql90*ueshqf#4H~9p1A7YeI?!dhyD{Lt^fj0-+poFCqs*SleF|cf7?TRZ8$4Uf
+zuJzsy`B#r`r$dk9IgrHmBu_7!?Nty{5Ox}IlemXeO}rZCW<Q)*@BNc?C)Qs#{|ozA
+zek#Vh(cUVtWf|u@<QxfJw2tL}iFZ@Rc=r<C{TlBk^PROdIFJ9OF34@>dl~O1^4<Kc
+z&|@bR*v9FM!)I;{n4f3;muq9GeJrcg#^LjqZsSYmFWttUpTBe)&zx6nG||Q;p`&Ua
+zWBW+^T4qaZlu(ZCTS}~j?bVFQl>CTay^Q?09=7r=KD0=*w+HP!l#lC}w?}oG{u%v<
+z={7N)eL2W?#@3+1X_Htdzp#(ye~IsDdoa&F{eFY211gUy|Kv!XALzD+(Drv<)b`df
+z+kQ3o`H~w{yXRlN?K>{h_Wsvsdv96WV}g6x_NumbA<s<4gTTD4rre_50U7!$q{|o@
+z{m;jpXM?r+x5$i-{qXc(pQpUV|Clpru5rYApkFm)jXkt62otv;*@u3uoZafUv&7bO
+zG9Q6G^oe?FV=&&C<r6F3a%O!O^Tcgs+)XF*J?QR#)qwT);oL@iyG*`~=<ga}zmIoj
+z`@F|&IkWNIGWibgzZXem{)+eY(xrWlO6U@hVRrgXS@XD$M7vz%cak*k^rF@Vjg@-1
+z7^iM@86AZ<sg`klfj%jWuN8Cdl>MX_{jBXfMgJ%6+?zh^h7E}o;(j0U@}6^*sy)1O
+zD?Vn1yBFz4U&8uw0ty>tjOAwaS^bR#+GXPer;U5_s(i}#Mte(8*)qo~@c_rGLhw!8
+z0>_}v$x3_vN!D(aHXUn)#8$?bzU@!AAGIZ*-of8Y?+Hh|5B>@714Cb&z;WM9y&Q6M
+zdk{%Nw?kbO`ulsi4y9#(4gK8`G*U+;&Ylg~YP%C-f|b3O7?fvb$h(DwlW0pF{^$1*
+zd$Y(~mbq20X~#q_-@<*dLh1WTEr(zF%zK_U!6U?u7F?8{e>;o1&s>jZIkENeT!%;2
+zRG#_Z`2e1n*v0cFHqFXTqCUcSZ9E4eovPD!c=1%1A4}3-hyJnDPoI={QKs{7(RB9X
+z*@x#~(YCh*)W1Snza?&81mp8nuJdY7?F{dQpq?OHOF1O*%RLiw%rv^hw`80p@nc1A
+z3^}<Xb*vD|53wGt>-~%7tq6FF7%wyBZa3yC>J^Mylu5kW7l`wMwIyauENs>K%S+#e
+zU4*m<(x|`4+QW6nTIQ|LG-ez?+uDY9Zj(C^j=3$EK4n|LwMSxS4X*XVS&X%}%=@vf
+z!$f(fSYB;buo@TZvhpa4<v7z+8KErnyusOi#B26<=x;;#_Q{cNTl|meZ;y=nHkNJm
+zV}qc9*XH+f5A?Qe0b?|UQ|lxKMmX8#ai5m+Q_=8{&`r_rVLXqF=&M3QiKVwxXxJcU
+z_w5Snml(dp`BgEj&Nyg;lnMI9-Su8Y8uns}SWj)5AD-6yfbz?Dg8UFG=LcQiZ;>CM
+z(~%#h&)0n*zOv16TkF+WB6FlZ*iuCUJYYC`@a)60zgW_<OMDR0d?46Q#3?T41I!)v
+z!PH|voqgf{S&s7U_KW%wmwQQ1t9=>t#Xw(JpE1&xr3LOWNM96&bKx{&Mwa>l-d1DS
+z>K#9?#&8*V3ExhyRs7@(Z41_NuY&tJgJ`GM<{89k17Cee<93oKY^)9ADN`|*|CM|3
+z(5)QuE&a9dKQTPHr$JmoV)YS!I*f4*>6j{C!LuIEEIc;nI_PPox`PUy2@uN$a=yY<
+z=YCO<G5wk@j1P4^=zgpcbdOeQzbE{@%Cw)j%5<Kngk5j#b=+FM$1}+kf5rI)(oN!J
+z%D(Di8IyJLeXDnhynY*LcoluNC!#Hr(3aYYq+2`7BzDtPv=t^svTkj}#e?$c^AUA6
+z=a0*N-BkswkF}pSiE(vR;o~Okc9h?QxfzD8NxITLBb~+9h&oULHjxV*0`%Q?nfk}+
+zGDp|{u&)2Fbp5C=3R!?Y-yCYH-4?~1jAFhRY!_q#{<avF(H&)9rd+0dF&#s(ynTHl
+z3$}?|V*7}vIMT+nTYCg;sTco=2^Y5$?QfBGZq46L86rLm6NFZ8rN4{VZW9Zy$UX!3
+zZ;IkYD*;)Og)DGeeBxO(PGQ{>q;8%gmDfGM_@cU;(RFw0x>us^hO)W~`Wwo{pN^{A
+zOu*jAVvO8b{ug*YWUH9n)S*EmGv>?*8OiQRhSMFbBrc&o?~f<NmqKC$lSi-8yh%IK
+zl6x>mi*e^E@y8_&DCREGo<Z8vWobE)v9e#zIE|1cjJHi&FCxAX+k&{3BOcnu@>ovX
+zep>F!{ERj;$H6&LES1mn=XF2WhY7@cv32Yz{3Z@O8hW7AkJ5b&V&c=^wuA{rS;hHH
+zzYDv}Kapq9Vmpzi=}%&JE8JeuYlsV>WB}#dMRZOsB)0lQ(wk#cqPdCwuG08u<WJ)J
+zT5Rhy#izofywjJ+$~_3;NJ7?xO~;+c`2d?_^5jw9bIz52&-r($@ALTnU8CA+B{xf3
+z$(L+vi8r4>-W9qoDcj`yx!K433nH`yDeng}p73W1`fnQbq}_=nUL{s*IlnGM-@Q`X
+z^_m_|ZIW|xr&g6;Dx);lxSm*6cffke%Ytn=`MagE@Gb2Ywqazhv#cb_;uvW8Qflu-
+z?Sia%4*k5hjHWD$aw3$<3QjA_B+rmmr7}YomD%#DGXD}~w$mRX;TGD?Up!vnYt?=`
+z%MGU#{m7RrpSbXxw;^37&vD0<jX^}yU&aFTQ~4>MA<J~%p!ZDPa{dBsN_DFGS|lC~
+zzZVR8sY`u#6yF`gchvC((=ns{a9!EsEXbZv7HgK?qo4JPT4%WiGoBmtn91~yq5WZ?
+z?vRcL9D~kGT_1XKY{rHE>!(h^|FGrOh8I$YKEX17>%78fx#`#Rf!!)L2;S{9jCDb^
+zuGhu8F!%MH&Vaf%)2`R~)x8bD8O<|4^!s}m_j5DfXFG!@xXwdYpNBQRF~_~PuG6bF
+z4Tz5w@A#Uwvbm-T9_q7@DfA~=SonSV_G*0ixY2jofz8Q1p0B(-e3t&M%}%#Zzf#BT
+z4-$AsKYn7fP*<4gFy8W_0{3j{Y=zf518KZZTsOESY7K6gH0cM!XDP#Nec!4UzrAS#
+zfj0$qSmw@RD1B#9^o87sVl?rj_(0IF(FP40@>>G#qZ`oUi6cyTI}W<iM#uIx&TH}_
+z&Rw#{F0m(xy9L>+aG18hW>`!N$;k(ZbE0F*{Nf?lUXE%9V~wy~|A4e5XwMRpXIFO?
+z?aUU5DKc-Gy8jgypC;~e^#|4Vq2fe!7vO-z%%T65#dtn<7A?rCkax5g${jA+)6jOb
+zt6BRHGA?Y$?(*(I+rNu>&sYLKVT_2=P2R@X6mL56$LzZpKhZN8g9Y@6iLIvW!&0A!
+zgBr5AZwY%EbSb4r7$+R*(suemGPW*kq{Ha{Jndi6>1bJ>SnCzJ-i&I0-M^##4)Vv#
+z+W!-j-?=$##Gy3K1Ea-=4M%J_{7-vQ&gESdyN!DQ{l6MMTP^#6opL_+Q~b7^Uh$Py
+zakAG3(6ceedS&iS6<kj@|IfeXo=LCFJG?)^Jy6bNV(C&}<-547!3()B{B&dwXfQO-
+zi|5*9Uv?b$o#i;g3Zv+ce#N=AO~t3@9s%adKVY6EtaW}IZQ*^1Yrcy-Db-H4`TM`p
+zZ5UiHSk|nMaqMUp)T#F7*>>iCtgO99bspXm*#GyR^7nqG+u!rWZvTs4>-K;2cipm=
+zS;CYp`KtUSaao-U>EwgQAXmQl8Sc0AoWAL;-Tvp_>lTRh`K!B!&z67Byt~oX`r54l
+z_p!>)$K<>{w<n0duV3~v-Xxf>#zVxs#owp*|Gm0X5Q7}zy@+dNUqt=SGv=w&)V>vL
+z-0cp^rjO6n=0e7>c~|`uwFftHPQdsMv?J}I;50E_@jixnL!pIv(CywheRWWtjr8e8
+zPr&_N?)zr1xyGA{a>8<6f;C}gx4-*mNAqF)rHwV1JDOK#C~p3K?;eS_NW1?2+}`}J
+z^f?MKVW&Gi!FcLox}2Z04Z8i%=eIYZ4))<{bAJBshKD~iL;EZJkn6HBKmP;t=`nmW
+znvRk1vr2a|_5}B9S=?l0gGM>Cm|x&{%AFe6bIqi03i>L27Afxqhfv8H>I9ayn}lY@
+z^~6)>Il$h~{5i6wGHyzI(4AN_NYfhYb_TkD>rOOWFHE^yms0Tu>KVTh^Pn0wYYlAI
+z2+MNZ@0(8SyX=!`ztfM%+IBr@x7V~oM`Z6zViIhnzq)tS=2`0kV#ZfT^nTTKFAbk1
+z&Ey_3cmVd?yXr0F&x<~VtweXU4o|%;e<%G^;nC;k5a*XVHRKT6d4ia?+Q*ISQOOsq
+zK`^iv@*Lt_5&hnx{wr}?`o&(A_+^gLS=m15(A5$jF4Z6Wh3MD{-<oxaK8*at!)Kf8
+zbZiWkMZK5fP%4jQQ|}fWXvn5UYoqvS2)>2^d6H}k>Wwz6OTEF&TyM}|wFM5+oABGp
+zwFQhL;2@2^6U1{w+ot1p9llv&^+q|ibqbq%BKtK1?;7p4V5*_;)J(ZA=H|aTtgyz?
+zi65Rm@h`*{zC32wgYE@vvfZ~Up9aA{wUmzn<s$b!PF%g8`(u89{1$zBv8Hf-2=*H4
+zaFMPsSO%|avXnmsvC&NH+n(|l+E@%HHWrotdL|(D$*u(bV6<Nr>K=rwUxNDM+P|X`
+zd|_FcUSg-94V#(Pi84FOumjWTzL4PENqp^;>{ACa2Dyyjxz(YbdOQtyY}Sb<g6Gt*
+z(yge!Va+=`9qo=MIs%cK+;c{M+1HmsdqqE$Ge)$3r_&*Oq3rJq8^Xqe#I!Z6#D8Sl
+zepJ@Bd;g7XOO~}QZe)XWPT@w%et%BIzU8@ZSYee<=G_43L|BhnVLP`5rM>vISPNPv
+z!iGTKIws7LyL*h?V2a#o^+GwU|JEV#FN}jP4e&FuEMxeeF(Y=Z4;zmjI6rKm4dN?A
+zpA>szP^0m%?c7Gpp^ZVKu~A~Lp~>508V_eY=E1*0zH$#4{I;EO!MMhTjHOdRhigp3
+zeIMrMhdA$%f8#m5Z}lkTXWwTAf)|r2z6#HOQwhkojJl&TEn-x^g!z0rr{s!DoR;eb
+zg7nu0f*$H`+<S!X$oLi&>7F8EM}-p~@k7o>{B4+v=TPoE$jhFTy1&sSaXHos#sK4T
+zuEBSGjN5?kcA(zfjFEx-ohcR9p#gd7@zgPfC*x$Md6%bKVrKHLNn?_C8F+s`?r+mE
+zH0a}KB%Tb6YluT}C|H?f-G_s|l#1!iJ7I0IXZ?hVpPhR$XctWI7O#ys6w;?<9``tR
+z8mhfUvP0JLsB@yYXNs~FLUK>|X7Ou>O@ANp3mDUbv1%h_{-m8~7h_&zC9VL+pS~u?
+zM%vS5shBd1?;&^gjVFUr{lvQ+U2j;|D{XMxyRpXIN8j5nOU0_XfLSplF(|g7-YhW^
+za`X{BCin6CP_M)wDXTkVKPmVA-)P;8!`j8W`cB74-68vti~1c#zr*z9y+ps&-TXJ+
+z@47Mi9Uj&12>Q*ts*y|dJ7P2T<{R&~HAcT9qxv01zoY1P^b-A6_wQA|S+DG?%luGv
+zn<I5EQ+1axN_e-Jz9qWeF7dm*xZf4%cLn-gafyCcpx+h$hJMG!=y%1aepjO3l|1*p
+zM8DO2`!_z`v=h&b8t*Q_=7$dG@-F}0pgQGlESko4Vm8fV3>oS)iQXb*5b4mFQ!(RX
+zSd)2H)P;Q82KxoeY8T|rAY{t}um>J2#g(yCoIKvwV+^=v-X~4y`|Nlax6#4Vgop8|
+zTw=Z?)P1OmM4gvT_eWPG7<YDED4p((#_U5u%y|ZN^h*pk;+G6^A2x9k{WucDa!&+l
+z$|;NI%*yv{9oCjMkuAiWP<#?kt(CK%3eYTPmgK#nnVijnUUPN)x{^GK+53YBcxMRh
+ztI8b?sxUrPXv-k#+ck<ms=yyrWAI1CWn^G;TFJlC*i^ATw1M|`s=*W0_TiwK^`Wj^
+zqj;hkZK)oECoWfC!nl|hs>}LUgZ|Z^%$iH|uLk|Ad4v6%IjVm(W&Mlicn{z(=H=M^
+zi=!>^H`u=!qxu&w>)#dV-xVnHic9qG3iR)aH`u@FqxyG6S^vhNf8)@<ahK@dIJ9Nl
+z8|<Gms(<6k`Zpf^8;>%_U!s5G(ZBI;uzyX|LlVcaMs&!Y7Vklr>EppF%s<A3YC}1U
+z?<4WcQ^y0wc_s#r#Foyj_s3iN<?OS<-rzB2l<e)ZKAtf%uClI=dKP26aZiJDH)5%?
+z?u<d1xEAxV!&5#O`>{427pyUv(~Mc|uBXqiSB*7b@2E9^{eb+x8|%P*DMQ8n3_00i
+z2lp#<taaX*piff7I1U-yCH0tScf`(&tS?n#tS=XpohX&vQ|yvGjtgar{stOWI2kEB
+zgt9B`wvn={U#o0e;Q&@b_a}B?ysT`FVFkt`4xLi4R#0|@z3z>b&9x6@w{cIltZe#Z
+zRANjGN5#91SUe-@c>OeC*^HBgvSm!m%I28HFpi~hjiPMB?z+%!LzQiel$}y#8z|e*
+zWy@W%O~npNjiunz7?7b3XwCK7Af3AetB-Xr#Te1%;CzU@9$t|+sBC|>NV|DtOt~%)
+z{{(X{?es@8$k&>1%~ei!G@0m*?y|c5w-_5wpW~V-G3!<QHHq_(Xp?y68DeF?)<s^d
+zWmrG4PCke=uhPYQ!kYTu&JS-$Vx3*ZaZk2;JCo4$rMx8gAQ_Z!B}luSjA>{k1L9Lk
+z8?6mON5)x|y(!R=cm9Sn=29#%$FE4w@hjaqeu=iGrmacZg0AyW_fEkG*eL!KaZO*w
+zBV_;8J<EN8k$gIcX6N{f$KH-M?N0Q|y#T>su@=c)G`59wW7~*nNvxp?gSaX4^JCVp
+z$988*jW5fLmSZ5LI=y|2&uAYAB7@C7ZI|7GdGl029wy&LK#!>04_EY&Sb&b+t3%x-
+zT8vqLPR)tkf@j!Q45w!Kk+S-U4Qb?_5{w<*9WIRp^MtJ%q|d|wh`y0J(~9P-GwN(D
+zhTK^rG*@*#Cb)ct^Muq%T1Q2eLe7@e8F{01CRCjf)M=(?`O%B&d>pd>2~FFlM`&x7
+z(RSY`+8WTuE?cKnk_j7&7t{1%(DdoRu$~OMc=y5K`mbce<!D(sMjiD1%5|!}0p4>f
+z@iTe(VwxV1`WWxGWrRm>mh#!Qy_b<cq#O0+HL~{g7IUe7jk&A!4%x$eB!G?Ge%k79
+z-(joRoTib<!1izFTHBYvyJUa+8hq>W4tk<3Ltmf1M0b0oab<pGu0Oim=#Q=eufNFH
+zp4?l^br~yj^uL%-zxwTKcn{aOLGHAM@HdP0oaP-~)QP;FVYOr!i?7G(Zl|r&g?7I{
+zK0}?S9jQ~<5vdN3@&6dRZ#U}ur+*zj^Jv-m{5*Rgn5Xxk<n9sXCHMO3jI5la3#N|K
+z77$nG!+pbN_1<^EwiT{U9sbtiX|ONg=^Xr~+DCdLWxxG(mYvpR^L%GK<kxtVbIrAG
+z{_3k$oU2$a8*E}cOJivv<G5yKfm>@NTa5;zCs^`z?q@B|OKge^F^JoOscwI8yJ2jo
+z)3H|WKwIooPcYu<^iBH~#-}Z?EVgILrnQXaC^6vH5SL-%fcTb~8R&_FkQHg=o3HKx
+zZ1619X<|*xywA-OgDi9H9N7bt{d<czXNQAO@<g%T?vZ`A#=*8pabr)h-sw^Js+9T0
+z-hl5JS1+#j{pEe?qigv-Tza2gw^n48eqWVdmlb)f-^azbQ@vw)Wm$U6x{zLFT}ZDk
+zORp(QkC&xiQI<ZgEPZ@gx|O_;UYop-KA|jqVp)1!S^A{1^efBKuPRHgFYDKv%Ick5
+zmjBIV=?!J={H?Nb-cpwSR?w#b|JzvS!4JJWgIYH{yrJZWS!bv*<K2>P-lg!Sh%3eT
+zNlWfh=la}>Z!p@T^>{)?CdBi(N+;vTawr!(R_W|55RYm!uQepw<lL{sb2rIdm1KeV
+z58Jq}OW)Hpcn&-qrGKyHH&gCg_XNUg?;Fi;>xAFx<?ge>18vNJ-|W4@e+ti+Yk=l2
+z@*CG6O@}b(0G{*BWcymuqbk{+B~5->MicM%m2BpjRP&)v`RNSw9PXDUX}>SX$Bg;4
+zyo1Vp?Qj-$JoiUHzt#F2CW8OROUy)LJ7t=R^=NE}rQHJ0b(;0LO+DnEU*KJlI)BF?
+zb;NxWP0yX!2t92o^t7o?_oPOzds3zIX1@t(S>l>nk543)mNVELb*%15O?LMr&UeAF
+z;(kKfofv@5U7m^s$ulU%n(fr_&sk^wyz+^D2KgGb9|nE5e}uO1yliKZX*YYvw-29<
+zCfZ3WpZ)<mlN~|U>yNh0a`P`59r>MJN3;fg;`yG%I5xJr1GvWPmvgxl+`CP5pYHS&
+zh7xfPV#Ep*AA<|$^u&X$&#CjUI-ZYGPe|P4aUX_zPa$F{LdT3+D&8jh!1%TNeiy!H
+z-*_&t0`;u1RE*?t$Zz61mU|9ko6$4~CnwN1d*VG<Pl=NlOS-kOgj>rPn8fsrTI(Tu
+zASY~9PpOW2!DiZkcU|(Xlx}+}{_aX08#-ouLE`g<ux|02=TZ0XlCD;XuFJe{jiM{*
+zN#88eSLo_=MClv0(o=DWOLXP<@m!ABcf@Lp@r(s&air1bc(u?`;oFsHJGu;^^Qdx|
+zpJk}B1hao+Y>4Hd#%2NIdR8-j_-c=Fjn|8R_lzvY6Z3Z_>a7{P*$Zdy@WSo}kN2!*
+z2o~gejN96aXg1R+(X#b*)AB6nxJzOI4+M)|=UO~x`-Qcb>+V?V@&CT_!a3k`UsG!`
+z=lwy<`z6HkiDrYkPYnc($*i2G^j>p~7kke@&;@%ZWW$!uD9n$Sng)XC5V4oCK|5oC
+zrij7bQ;a6NyiOw_{@iBrBR=nlz2p)fu{&rZW)tY1N~&1ZluMQ|Pw@E7+&uq5yW7t>
+z-F__T<&E?T|K&mGO)ldGz{W9DjBCa`o{F+~PE(&$=PI3SldG{zou`X2VtHeZLr<L)
+zwq4V3j!Zg-F}-G*TWi|k37mI}lKqoFC%ij8DV8`{G##cdDBKgGp0Kdc23?Qen%2A!
+z?<a7bVBCUlrM*Hp{b;e#rR+IC%wqbFh+lXn=@znRQ;c`ne*Wz&W3vBI$T+hS&*$+>
+z#*;IRGyelm4W2*1`#2tAiSZoBa1NiM@BGv>_brs)Jh4UTS60;i<Oj7Zeb9O~_#6A#
+zU?}%&kj1w-@7Z7w^r7AyO0D&OU_2Y_!8`iYw<B#3c^=9<8;nb|cn>iCKo<Hy?hdRI
+z?fxB}ilZE(-z0dCK2(E@zYhM4C9$@oTl|o_!KY6>?e%de6TiK27~@v_e!%0|OqclN
+zWkv2V&R2`f_fU4dKMrz<^XC!hS<SQ5o%tcmyN@nYF`Pefw=4G@znT8osa1)eo#Oq|
+z-%tJQ)HjkpJN1X|&rT)4U-Q6gk7C|^d?R=*{W#>`<3Y%H9P8WTnA?vB(bVH;>*GO{
+z`*;w~JRV$;eLSc@zDne)#`_w)ABXqj@t$XeoshG~oL<3Ebuqrghv6ASo2}xYbB?}z
+zZfnr#Dy;6XQ|;5=C4=>V=LE!(ZOe5_obhq60q}p6_fQx+{p;YN9^!C;2GH|^>oIm5
+zt9=-gos6G>@*l$3JnTFh{4nusP?^qnKfriCf-z()3GSK4Gp*h($f*aD&j!Sd-IID&
+z;vejFpAGh-tkoIf<=)}_ZTi_@S4P=7YmmPp)$Z|o2jzs48@yP$#Y^xUAjPxF{$N}R
+zIz^_{r_R8A!rfW$1jdK5(X_g}NG{{Eo^jrK+Rr}irzXfr;*8Qyf@=o(g?uoCwo@k3
+z2V<s3`@dUkBFH(P?`H_cy4ts(k4eaD_0~H)Uq;)&Ka`7UTj6g>Om)b<xb{nKp?@1}
+zFX}+B!Mr9%VPJ_r2I}N`xPf=YtX6*)-c{rK5OMo3Uij-(p-<#Z@*VNK*yeF;gWclo
+zpYP@mOmp)OgZ~bKuReC0o1fc4f3x*Id5$<><i9n!pPeF4uFm}I)IRVn&nO;){xh3)
+zDEP_*|AoL)VF$bh{;C8o)}$5xjRXIUhrJ%b`zYSW@V*M~ufY52%&U3u3&iQ*T`!CK
+z7Yd7gNk;MEi|4ilOTj}Af!;ar$$s)guEiSyKkXp4K6r62c!F3<JE*r=8E+4GYajUO
+z2N>VK0q?}!wQ>%#8+;ez-YD{hz<1-oXS{D%#W|gTz07saQ2VSLZ{is~oK)jXpP9K?
+zez(q#Chrg#Pb{lut__&K;~*<!KTp%1zM6MriC?n8uflkTvaS9OJ+`ItImS%m7!w0H
+z?A_tXy&mFDkT2-x>#X;3yyK~3zMI}1ere1oJJN=d8yvgRcu{U}eCdbCF`mPFyeU0q
+z7`rgWrN+bfU`(PIlM0MUC1k^RjurA$QEnhl9Ph5+c;el;^TTII{~^$NFXr8Yple@R
+z%Uo}*-{-3KQ*Zqn$l3~wQ8nZ&Wn(LNbq~hN#k{SioOG2uc14$K@eRyV&XH<-@4CdL
+zhJBa8n8^KGHJ>`@$3Y%<WDI2gj{DCWm=4}${rD>~ctrkUTx4!=F9qX58dCNO9YJTx
+z)lcWu94N_N(viIXKRrcH(w=gcG$hT1_btu)hNhvX<t_L==BPPPRg%5PcLnl{L!R--
+z^BvIf5%A{^Aj|fGhCc*dcrLjg{JjTseF*f;flq&gJk{WfB>J@*yu6RNW1!JC$bi4a
+zI6Msc(SC{;ZT^EOtCBnlSw~%%b7C807RTyuFbAj`lkSucmFYVK-#g;93I-%;R_%1~
+zUOM!tc5j^5=FzXajj<xF4%vevo)G;ocs5-n=f7*cPK@cgv>F%U9aYMi^jaCi5cJ*k
+z;QcDfN7T*zG47x5ou=f-Pe60ZncuU2c8dH<x|81IRiSZC)7Vz>rP5IRIzFS;yBN}=
+zc;a|hMfrp03goFa6rDc;8b1j7<)|ZoPJ1W^NL$beG86NieAy{{^#jm$FKAm@zrzX4
+zRb!nm`+LL?O?G;f(x*1+0DcH_mi=Cf_no}=$vrE%H{IpMC`T|qDbMMTOd3#5lP0h|
+zJ+A*;&u7)DHJv&D`%W5==g5PUz2wP{Ku*Weml*gcf_@q3w+Xt0QfmHQf%I{lt9Zs+
+zir1p#H{_|nQ^|aw19fh})6lr8hIO(Sw)TwZZvR^5|M@Sk3|G@Pl)iv+C(zJ1I-FZ_
+zr)OwHFDv&OeV*TeHvCTXS?&X1ou4Xe^ON}IgkZYJSw|U`OT@|e<O%YEx<C2&$emNR
+z>*y<twYjiR1098!`*mnXwbkhn3#3ub-wzgfM#p=rrFKyl{T#ldE>kZyI&rX%6tkA{
+z&8L4O?>w5$$>*qd^6q4pZfm7|=#*(cS}fgH;=M!aKsCmVu;p)@_-?WFZ!El1?!Vs1
+z`~B6_U)yBQI^`3eGHRv#efEz<mlCWs=SZ=_PWk(tAIrK{X{5kMM~l?kAGUr>8y@!H
+z(IPP|BF2)5k09S<!<bCHYbomH*-y1|vdGv^yYbGjPZocO@`;u6xA?unQJ9)PLfTu=
+z??p1sCrfu+t69%p%!N|<`|u6xco+}c^c?cU@Xp8IA0Qv=_z@nK{X;y}DAR%+!?M$`
+znPOqX=+bu6G2$a?yXj^6bHOg#m2>m-Cws|I^1|i19&hp*J`Y<CvP*Ej(no@LuGLFo
+z?d;?onhy^INqoPJ81k4OZ9M;V`ih~{a_BD^uhX9Gy<<M_E;sx1O^vw;xko|!>fp=)
+ziD_ddqyBQ}fGcceTbb!fpK;7`RyT2r3Xj6RiY2^!?7se>5B08uPS^(fDoY$_<ZG08
+zXWep7gP7xtheN*LT2)D0{UO@LHx|OMm#SeK(YKp;iS_hh68mLiG0K=U_5%7YPwaEl
+z_uLQ1ylaJxwTZm^cG-(v0A0C1YFddA`-*eyTN&6_nFB@Qe1|g!FSf5-w?KQa+`g)Z
+zO;v^G*RZGl8qXi%|99Y7i2onJ`?+|wF>Vp}^Tob;q{!F?A?MLo*;mK3ZN;|nJ|6jg
+zo8Yz5mw%<qIa|*)&YRNx@Y0;)9UJmm9qQU9>&%HF@u7O?^OyTF^qRRo=bT`VI(v%S
+z9A)=~WzOxtXwHd$66i*Il=LG;Jj?8q^Nlb2<oBrcW&fa_2Nm|0{U3u@Ly&Ei#+Ut{
+zU|wMk6gfBlj&lYwY8%SnJQ&UYyaQI!YaYY8+k-YeiZ$WEGJA3_*60Ie_T+=evq#&L
+zyI+SrNsQl~*J)4gF0&_l{tMWXk@@NzCw?2prrmqe-Yh=x1KO^nPZ{?`mu5<K<+gx(
+zg!HwHV67z9NT(;b!qr`6cR0H+7e6~ZykQAwoj~80V9ve?W5sbgi1FY#HT_Cx=l=xb
+zx?kIpdoh-Ohw)ooW=lSR`JB_X<N@eh#GQW}y1<W7)*5X~J`DZf0c}fW%52G|GFy`I
+zI#$Vk%*D1O&)xQETe7LlmRvo`mH>i4eZQQFe$Ldk<eD;D^06{oa)!1gGiA2qbo^$V
+zzQIwpq@!&~V!p3>owg+JxJ@s!C7m)`@`3*ZTatWOvL{QnByGr&JxTqJHe$I=c{zJ>
+zv@Lll{`;b~DH$_uo8AxRda7*7?PKyF?a(&LINl3@&c-zQJbxa1w+CbND0u6~+WveD
+zJh)5SpO0(%bC<S14}c#JQm+J043*iR`?UQz_jTHzv@d^BW`8!1vOj5KCN5!rCdRNo
+zca33x?)ooce?CY16Lfu)avHMt0BMUkyJrlYelKYMxYp@={x8$%zgwo$t9?`I^v5r$
+z({DLHwoY&Jti?HYNu9p){Ht|(>LrboZ-UeK(|?mr|9faZ=h0&r$Hy^#In0k8W%~#_
+z^gcoleT2r?M>xQJM7@vD<EnLd=NS74JO7RQ2s`vXLeKx<`v^AZ_;;8O+!K8qG~5rm
+z5V!xwkW&XZFF@Z%A#Wbh`v~*UFYbvQ)cXi7<p0AMho6+~Bjm=|M{qIT9IK(r>?5S#
+zz&=76JnQ}!*++PU_7vl8IVZ%P`aJAh>XeU*J(VmRg#JkV@+Wwxf8O#6>_zYmeSAXN
+z_FDlRg*xYQ@F-(+h3zB7{m@%0o#RF7pfUS+@e%xvp|1Ly!bUP=7%6RECH7~7Cf-?3
+z_c1PJe(N>Yc=U5UcK-l$&O>q++prJgZy)+Yo%yqcnnA{KqHkcxkJusqYqT#Cut@}0
+zq0Zyo;sx5~h^4yy`ee8NEgN=+{ctf%Jsk7If(%jknx8GSC>*EvK?Y2V7{-S}Nb8h4
+zux_ELWHX>IhW&)#1aXe=EP(R!C1Oxx4h>Ck^Thl&o7}>gO~Yps@81^GT|Iy{Z^rtI
+zwfouu@XuYvO4@zyUBz+97S9@-?Jp63UzeC~XDam>@=MSk!%jrbBLqhm^Rp(|Zt$L1
+z0&<-9GZ)FZ@YBVJ^HlMey)jQb;iWvsBwjJ(kO5tt_xPiZx&zERvc!_&-%5Q(`NC_|
+z6NrC<%e${<Oy?Ru?9_Sh65N0Vl&=#_yE?@G&0Hb`eF7tTs{wk4K<`kk(DYW1wpD2i
+zOy|&Z3OnlI5qU{@+>i1@&}qI)JWaHDsXhxojrQ%5x(_|aJ&a2GB<!e%MJ5w3_uIrt
+zy2Lx;q^^@QwFGU|kv3F1hfa;v2J*olOMe#?GWfex&UA^zhOxF8d%aDt1sZ?8EimH>
+z3qo)(U@xy?{v`EQ-oK+Pc%sN}NYh(4se6{h*ryG-8s9v)C@lBlc|V?WfOwzWUtqkr
+z#!OaX(D2^C+&KfXw;=ls@g{F(SYcZm$)2K-IugXQ(5LL<vWFiruJn0-kLTcv2C45<
+z_&3NHTwgHlkB4IE?vRCX8DE+g>2BW|nHP_Y%!`<w7sM8i!v=2#U-oINw=3}6No+Ug
+z$f*j@u!3ipj3<dYe!)GKG17^Hcb4n2zJsdh^JFom>GM|5Cssxu#$#bDj>FC-IX77(
+zv2av;hbp@?KemhB$i0a$?9;=}G0D4F?#|xsE9`{zektz}{hsuQVg7~e^<F~fE9E(=
+z^L&=~p~Zgh6zrLt1zQdJVKeiO%$w~&!^mF3^@S>9g<)D3Xv~<8^rfk?S9m2lLry+7
+znl|LS9h$%SE@mG-RbgLv->><5tas$^UX8<oK8r62d6aZje7YSr+@iu*G`*KP41QNR
+zimv7T8jG%f#{7cgyWUS&)T1t@MTx$Ds`JHow;nXhAa7z+-V&X^$G+K}en^i;^QiIo
+zlQNymgzRN}ppq^Y)4JG8g8!KD=PXdXHJT2c8;8%52FypipWXA-+QWOLG0Zid!-q2}
+zew8suzQh_YK2UoLjLm2|v;EDnu*W`yoxKHOYgJio-qohUI1}Ft#sSQ^wZw^wJ3S&(
+z7<)7Bv=pgZV2n3Vzls_+<e?8_Fm4+v+^rtVr!8EQf{e6o_i9G&XrnF0af#>7{kICa
+zBS1Rrc`lqAk~zxwO}}Qj=x4RDh;b@KhmR%Ooqrr2{t(OHo*U+Mp(b&Yw11tW{P2y`
+z@A}u6jN#Jejr1YsPK?{C54=wySarry<VPRSpI`A_uI@vH?nA81SG8W^G%$vM!VRyN
+zn2vpcV{eq$j&=Bdy0uZ_J6iaEhS4W+9~<!hOvXu+xQ~57CetVJ9~<%iT(?hrTc+ZF
+zqq^_;srY|2{!gab{A9ArckH%+_v&XDZ78D+-?rhKHso!4el>mfjK4ZP-uRQ#rN5o1
+zXAQn@vipKI)YFCX!$$AvHOLz_I!-sCyiSzUhH|=4PN{EeoNUlyZl+%zY-o2P(`<dO
+z-PZS@nP+t_3ms~0VB}QHgf(_1SgrF(8MVsanfgG?&WcTAia$AHTc~`ib$Rpyn&&Z(
+zS1_DA0>-u=T{$=6=Rmv64^Kx>W*p^YEQQN$h)>=!Vm60LF%_B_?;^!mBMLV_Fp`Pu
+z4qKACTcy$ML#7t~F^e_I?)EF3wO*CIFz8Bx4x~q_O|YqX2fgi+Sgd|=ewcAMc<+4X
+z`~k?91rle2Wxf}@Gl<`B!`~~%EhxMXa+EO(CX8EHxYBXM6Kpp;)yYH~?M#$>J>FR>
+z{=ppA7|Nv2Fnxsu3&H6L8ttCoWNIMT6b?a;A)fSXKhBsO#EG4@u^6AC?h`8fM`L>w
+z>lNoY(<^jrnMQkaz;P|ze`kBLkUj0roY0@zvqPo!&~Gp=SQHzB6y7hv`#&suPyDE-
+zxQ1P^fPUZ7uc|9h&UGl~y%+L5hJ1gAd{-jh!y=o||0`IY8=hO%{~zJqeqxnrn$}}1
+zIbK&0>qg`5JJho{uaFkP_ep$PB|hg1i5VilqlWTj3NzjSac7-{^i`dRcR_-27PvPA
+z`p$)pK)JZw-WSAky+JD17JR}v9(>8!7ktt_E_}8W`EJ4cj^W|6N$qou`W`X`gV#N}
+z%4s{E#smHMX|`d7(-U23_e7BvU1hgLBZ6z=BAw&e8>}SV!8gArxT9`?|F72l6ilC_
+z!mB67JKn|Cu)P?swdQ=J8Sg56bL1-HY{pzfdH1f>R&PM8`ZY#xFWR)(qCY+{IZ$pZ
+z@-Pl#4fJ>7dGJm`#MvzA5lLI?ubrmvA2}Hh>*9y_J4Q?-BU>!BPvUy8eJRzpb1grN
+z?L-^cUizQ@1^!=?+Y)3Lw;Hl!t+|->UIV(nk3Q^}i`VEgkjbm<ErQ*Ler}GVt(1wa
+z$lt{FB+A>kShW%Iylt9brRRyuz&7%K>Jx3ZQE%t|>83!%4ET~KxEd(8ZKNN4MdHXC
+z`rS+P0R}B9G-mj3*Bc7gOykxvFZ=S3Tx-knHR^n*zj}>B?BdN*F56s+4}7J?`v8z(
+zGu=YH$}jTK8f%<Wf=ywXf;FQsEtYazXDNL-iT_u79NRDOTxR<k#_z}xZ)1~+|D$*u
+z>nr+BIm-2w^fbO8cy=$MpY#h3B@~8ZK-~g)3g8*jN_nhf0qXdBu?H5B?<OK|nEO7^
+zISTh*Wt^$csj=TVdmy-qafU?CR`G+VBU~XgQ!#bw4ZSBtc@O=W_$#KS=N{C9x(nBr
+z(U{+ToUt7tzm}%6!4~AHM4n$V{vvEd#+M1%>R!l9YZGI<6VGOYX?#<#_|V=k?UFBO
+z+$-+gwxf)s(JsEn-^2e=g)vh27XIfx!CO)Oa$|q+EXv_KV&Sa5>cTj&ye0TPsmr_q
+z@6&jnLRuSRwxA6ujfMGXoo5B!cVTQ;KG&ODQ9k5Ybw=Igk$8ZaDVvJKdZ3SLvtHX6
+z=ZBcSEaR)^71kE<aTcMxrMeGnANgPrelKOL7s2W62$n-W)yv(tR!#Fxi9=H=V~+Hx
+zBWS`mHHuHR^Ib}h19a%gCECnD8q0dC#G`HvwhRv+;Jd{-FJ<pWou4#rlCnERj+W|V
+z`rAo+)W`LwUE8lE8ore@)bIW$-u*BA?oCL)6*8CUt92c0|HM%=7*87L@4t$CKhWPZ
+zZ|o`+r<?g{Zw=Ca_@inKDd81GEWtC(zjCE<whI3@8!E2PudZYtGd^P)MReL#rG5+M
+zxjPZ_vYzSu?jMk!d1J^sf<xn|SPUV^8fVsktW7dcN|=hUW3m2kXZ|qCIEgaiw}HP+
+z-UVoryIM<=n|aqq&R<LUjv!xUx=rFN@ox8;#Ad-eWMAJTG21(#|7;k+MC6>^k8g(A
+zcG1P#=}$em^zLs*y@S454OwvJnJblCdjh}H^gjnLt%8g;><eYD1?>(aU&P4p9-7e0
+zFxGi}iLAsxeWt9Q9p&{T+Pq_B@A^l*V;c@~&7Y&ji?W6?hjs|%4aZDmjmDkl{No)A
+z`x3GyrelWu$(3phzgWT|mpzI3g-=1=EKO#E?_4<|%O{)0Hz<!Mf=|L6gHLIBOrE~&
+zN<-Ft^4$wMmKo>FSFS9VC;NhcvKH?;b-8(+w~fCuN&i{KAhMKy`ckAxOi%p&xUolg
+z?uIMNWzb^CptfLv#=PSE`HXHy%4jR$`il;-Dg*r^a~b_Z_7%GQE5J94pmS6k{ihk%
+zoVvhD*a@PSKn^uCew?G^5x@DwE6QKK$?6H5D>)b2Ab)zw<j=9dzDWM83kE>r65Xz0
+zd-2WvI*sML<;s#w>KTzqeD~k=SoM_AcOug0FQ8=7+MpXUsYJgx>4&;MZtNA>y<30J
+zb*WXC!Mq`<Z=J}H)w&&|<;#;Oi`1BY6ZuJ-5}j&5qZQDxBNAJ8LH=uazmoUe^zXj`
+zzmlJp>-al;i2)f8&i7JWJ&E4{9+I{@?tO1{+<W$3w-@@*BO;@RCn+8ouh)-%#qSQR
+z6}<Bx@lMLty<J%M7<1-QWtC+3BPioid1hWWhCVHNn^9fMy#(+=CC1Py<3Y+bXA*U~
+zUa_$vqN64AQ=pHnHn<KY8B0X#Zi^_RuR$&Edi!Yo5^H<QG<^?O>uxP2y$rvVZo6ni
+z-=%)ScD0Di)9<+#Vl5Zlty0I7VEfp2Ym(A~(a!guK-vGIb+)M1+5URc#eFg*o}<gV
+zX=g^;7ox-9{fig}(&ON$Z(pbbJ!k_YRlJC`phvk*P99>O4D{AtQ7_N+NIaD_Mo%x}
+z`cXHp72Ui?>*k9|xA%?c=hhgyuclvI=$9Eqzl^5e;t~2W-_zhxMZZiL{gm!|RO`MG
+zO`org>Z8^0TZTg&mH57p!NgUoPjvfJCC+$b5b@gmtkLcp$?ns!M0fDY3gayO>f%nj
+z?EN_`1K+cMCA-?nb^8&g2{vX1f7^Uwc7F6$tby{KvZdv&EWYEI)QjxDVDr%jkb7S9
+z^thhrQnHC-RW(V?{Ws}ziF$39AAVWgX<Q`xy2_4=vmJ(t=}Ei3&gqu6M3UV>v&J?i
+zo}-fYDy9dFmouN%{#4Kj&%B3sS5m4Ro+Aulyx*ekI&O~(4n(bA4O%j`NXV!y48kVO
+z!p4m_?a`Qx$7!F0|0msjjhml>F?y>L_J{3|KUZ+i+a-<^%l=<=TBaHJMtlyF+&h50
+zNESXoEIW<=$o+(n_?WZ@5sjhh=yij(?TLR?cIJaTOAtBT9xOut<en7%Ujo_2d<oRO
+z+&LDo9VxkA+73JT80_Kwuz!!i9)?b<%le*{rR3MgKxejdK=0YA{To#e?_m{m8uzc5
+zCboud$H@{NCC^!iLk}AL81xSlZ%)_2wsm7{4ruJji}*v^P*;@k2lb3(m(rzqSFr_j
+zj9jZ?ic;Q>=97<UKKa}TpR@~~M91QjRCn;iMSRjb!Y4Dq7mM+H2G0#T)=Q}kDYgN1
+zd)$XfsIqC7U8{NL=~2A%<g0k61H6OB=>YF^jKMn(6AvYbXj`ITgm*edc<23^cV?9F
+z&ihAr2jA-Zp~SGQ(B*vmUlkp>mcAEde%yFi_A>r*gqJ#kC7=QGB(zP!Z|B+%2h{cB
+zNc$4fK7rr2K*#?i+BseG(08={P9B<}d1#xq87}Zp2Y9HRx|Qak_JC>m5gzIYe)=jN
+z>WDtBd8l32!8W~&Iv&OE#TcZd-p>eWd`9Z&H$pD2NNx#MrndyqD;5`S0v+DL7+(0F
+z@oZ}F_sg<}w^;7nlg}#A_AuJHexh-9-?faNv^bA7eLL-9-isXmOta5?!xrNPzy?LW
+z80>8BKWu}2JAB<o{7n<rdf#1y{FCt1&ho;^W!~Fr)t(B!`8|Ad&bWd58Ix%fFrDXi
+z=Vtxz^j9VtX9l4wu0ngx;qS-r*Tvr_wZ3iW_AS$8{3GZx$1pau;eX<rFU0?=@&E7Y
+z{)`vAUAM3p`CpvI{@kGY!#&Y4`t!+&w69fv9-YGed`$Ic74oA$mF!P?nZ#&%N3H4)
+z+x=m*dxed)moXKgQ<ZEUL+c{%N4e!=(Z_SQvcA6u?<o&fqKs9#jDM6kG4j38rV({i
+zsIeCs*!YI$wH2D5nf7L+Q7+y%{)WO#X@jw0!nhj>KhX4x=zJ{CLV0h&yZ12m@D(={
+z?$>$7X__%lCGuoJPsYf20Du2X=ZTl)IX^+Qt5o){Cm3h9>UKqS+CL+0lTI^BZ9rPL
+zPBY5dbw-yLDoYD=npu|S>9lBB+A})sin8`SfwX^xBG;11WGHX%{uI_(*mu8k^N`3}
+z>g@H2X8!|qNXIt^Ca67@3XRK7T;BaCBZPN*@t0*VepYE;^KX$qkx(&)#WqKpXAK0Q
+z<RXt)x{S%n`AA)c@(9LIHTNTP(8=h_6Lwm>UC?Qw7<2klcZr_U;tlFFp0A7SK%eeG
+zU8TG6Yy;c&9k$JB7hfsLZN}-s+&WXE<8(!JtS+{XJQvd6W%-@vFaGYrZ=>veCw`k{
+zzuQLT&*1k<@4K)kL3&fSY1TN(tI<}*uIHLJrB=>#3yf{`dq_96-NUlJir=wO`B?r6
+zl+XEf3;sqxPmaya_@DZmjqk6-?=Mccu%B15t=R^N`H+#lb+NCxw|gDtMnvlg8LZvU
+z!!9b#FQ(07d-eL<1btyHewXYz*xVZ`HO-l4md?v_Ow#AWx=*FD{+oVZqUZbZdo}Du
+z>dBPzEz>f^)u<ze@-s-MK5JUU$05dICRk0o6zdqzw`lJy6`3%fds8RapO}%2W{kGz
+z@5tUW%C(3`;uh8}Ybo;E4ANRl_~~{EI&+JZ$@b7kjOAA7wvN+nO<KgIa0}J={Y~d*
+zr+B|)xw9`Q^*K`3CpoLszvX}0ptTp%<fU3=-&Yt5siSN!)wcxo{2cF6_<Mye`yceT
+z^Ue>SCGAV&ur!JObN<&VUM%qpCdJw9kR6<>9Mc%+$}#00TB#nk=}F{!PTNI_M=t1C
+zGv!=%V=#!cMxM7YhET>W#1mVfGd>ZV2G3bqKX01@TFz?A@2yp`;h=u^BmKM5YRkVB
+zzmMX#q4kbQ`V8l{v`t)E3l1=ku|#5S$F#1IfgbR2>j|O%z4Bh|CzsB#7*nP)<C@3y
+z-GpeFEd1ZPJjUEE$t}hvE$V!%mt(jK`53$A<Idq=F7bw`1L-px)<r#HD(EyFYY^?7
+zO%tz?^FGD_o&la*hVN(S^CF9~40N7}F`Nt9TbQp`eZx32HOH9hnV>HempDr-hu_Z3
+z@ti7yvNIwZK8>>YEz2l<Uy1K6g}<Fo)Y1m)DaCJmAN1R6Mq;rG_6ojBWrLZCZ1CTa
+zm***lt>hx*<BO}*xcoM0Lrfybmr6s)^FLp&Y%TV=RNq@<+}r}sryV@g@yx(8lV@sp
+z$XizCLjK>Gpz^OCBY#HDyH);ekn!6z=0jRzKFmv$@E#Z!EhDx!&+z9adS%}+s%@Qr
+zUZv*5%=HS}W-fSSp5V+Y%$pDB^m$09{rc2bRiFRb(tTgAbY05*HAYsx<9W$0q_4qx
+z<#WI1Jz?Vz3d^FM+1Js|x-r`MxNhf!OSCgSs-1tS+u5z#S>8VIY;~J%ALs4d|A6-0
+zquY0;bL{p#*LiXK*6H?r=@RW*TGqauO{#t5%bwIgP~uHumVXf6x1r4yDPqfSDGGLs
+zqvBF$oy>DTMm_cE_P{||)A7u}GZRk+&s;nWcx*gz;;IYJCb_>6W^AT;M!W23cj0{_
+zo~d|N<6*m+@O0v7OQ^F3^7)JJzH~dUc#U@6^9I`aV&}iFo%71t$@XnaQAZ+frP_m>
+zfVOsCrmd^rKwBR}TkFN2F3I&O4B4RCYq!4c_PX!7e0xugzkGY=y@B@j{|B`9+&gu9
+zKc>!*UP=rIhLNGqBWzdQ9c{|?2Y-#WpLCQTV%X^^R_L~~-EaA-l7C!x>XRKo7wpyy
+zp2l=XFxBmVOzeP6?0`({fK2RwJnRVO;h9VO7td;kd*&TMC!RJuoVUbB`n&O3UZcOu
+z(BHYvHrWF(pbOK7jWk{Tb>r+h6Y?MRZZ{0?^POt{f;_jz=m5X1k5=fIwk+o}c)zvU
+z^ypK_y+@X@8)Y!g!SpvkkFQ^b9#8*|{~UVUUPh1Kx&%F@kD|w$UV|PrW6)!@rbpvc
+zO^?sK=XvgxGHw&`LYsM))#{det@KBxAFJRl@$L`Xlj)Ybl~snit5d>V@wA^|2J@nV
+z@slwR-i*Gjf;?X}I1n(lA^mAN9~j4}6eELo<Y@OCbGC{PA^m;oY~`mL!aS<6w-h7B
+z(PAWbg#M-Z?4!0PI)Jg>W4-54Z>gMrU~Eb4!+HAc7h+Yhk9F+hAZSO77gzO>7@G8p
+zWGw4aAE^t|kBT@ahT9#`mvV;oU4HJ|odNGItxTvsl0UeAw*+a#*9@gvJ>ouv(`{ZP
+zvrgvzF=vbPE2?AJMs!=HpSrCP<H=&gIZ<Svvmdg(YB?vpUH9)!VuPKDpg+6*N#VUQ
+z?ht*8r_;9>y3z8Sx^GRNV)_<ui8qPAd}6T0r_b{$Yim%Ehdyrf%Q!UI-9G({Bi^U|
+zdWlUW*i8OZtJ}Bnjy{C(OvY>QRQw|1p)rQeIp^v8FYKrDyq|v0b*<ia-@DeE3LAxS
+z*Y<#SKSyjw!Ea{lgE>C$IB<{ZLr6EBtRHbQvrW6lkJxRqd7p&$>9$-u#cR?rYKad;
+zoG4rFNOyYnw5>s!__5m8)Ht^}Sc&pi2)^rD@36iz$FtQmaqq2ie`3aeS}f;O^m7d3
+z|G8*KB)i^^WIFwryTMNk-tH3@j^8G%Px`Efb4~fRs_z-6mUwfCw`~<XvFXmHfH-Nb
+z`W%CIONb=~o++@rzY?6eeu<-$92nMiQoqFRoQL0a_<yR<=y1>^_wVQUo36atE72;1
+ze&>dVxAT0mQOEP7-<v&jF)hMB?<@YGtgiQus%sj46Mu&|1HAu~{ebQ9+%Z0cZ;5F-
+z27Ti{-&~}R?sUzUa+f2>2D^9`f;sXW%JGPM<$g!;8s^jX-L_Xje<)+Y#CbOF{&fc@
+zY+~f}3$8ZL1e4&O4AL0`WhLg=BHletxvj9xHXkAmnDd>$w!Z^Dy)*b5*pHl-yoXQT
+zf^E^t^QU{nubFX`mrndH<yk!AGfqN^ykof&kte(y<*z{5k6_HFqr7Sz3-u+GN4t9o
+z@)CC-X3zF_c-{UQe81EtK2mqE3hinJzxNs4#DDU;Fb`bJiEX)VKa0G?W15Nl#780)
+zl7sxjSUTsNz??XdFU^O&xxxG%$d9#X!)Z_5sp%VMc&7aoufp;Qru7vsRGsnHYTw<&
+z#}r;^#8@f#k=1Cgj-zn5@;knOmz&mcvA$*+)oqUq1eqdZIAwg(X!F10?eY4C_IkPZ
+z&i00`o8!^e+ktlW*wQD#3Ls_=arWeHVY<a@bCk^Dnf<n8ceE1^F(Mduhxm5Aal>1V
+zKCDE(arQFZ{+ln+{x6NRKP^~%WA}lWn;%5`_njIDau1iaKfl-O%kA+D&n>Y1><8oi
+zWYPX@ptIbyCcYWkzWEQ|;cfcz+da-(u77*=9xSm1DLd_HcLpVSvC8Tfdyr|>WpZSV
+zU~J4UJWlz5wJ}T|M2zpV+*dB$OXl4P$O`&PlSeq#8I7B<3hgS5dxU3$D5Es~5y$~z
+z-?gDU^1>R(kUsEB7oH4bY^3^wyD`s*mBE-DE0A7|cFiM38TwhF{kP4W8)mFijz<#X
+zP>26t$f>pFq{gZwmf|_Qdy%*zjGtlf45MH8+(<xnV-2Gmw~=q=`Qfv>^xPgqU$`#q
+zFpSCf>;J#*{OC&b$J(28Yl*=@nViA=Y(ty-(El#ZwK86L2YH3-A?n{84S8ILLhmBZ
+z`B%MGvClo|Nne#ask1-Ey${;$vp`Sqim`zEJ9kq)q~-jmRmEHZpM-@^<`?S0Cw<e&
+zBW)6YdGpX7Z?m`88v<|S$m5n<DDem}2De#dJhEY`w+Vbw;*opNR`S7$F?eK!+*x0T
+zF<k49<`dGfdKUS6otLm${a1a<v*l!)-)wdHQREr@p1R#jW7PSQ$2!4V)*Y`Z^Cf9d
+zr<WL`J(Oipk=@WmQ0GPOz)Ke9&q`uiAYWIRydP_RP~H>kgqR<ZS@h>@^TwJl5#%e)
+zm-mTJ3HX+}UrxmWZbM&)KgaTkW4n^Np5%f4;N9WP#MsT0dme5fGWbd4hrGr7SZ&E2
+zaBmIr?K(evrquqKXg_%I)L3%$v*63qs3(Ow`^=Cx&Vf7y&t2fRuZ+QOD_<ACwSh;P
+zt{o73K=RyZek;k-t`uZyO3PD2$y3UNaE2HJE#CXle&Q1lui!KNC0``sNp$<4#P5UX
+zYcusw<oTF>&zP*#Gw0xU&-qu6-&nlM@gp7`F=e~-7?Phjj^yX^yd1+)ndJ9s-s#q5
+zlg~!;ZmI09GTz`^h@{%V>#cspsQfISxGQ~SZ61sF%XyBxTq-*PUgmrlt4z+7Qn?BC
+z4`p)>T(VsILb=W8TZNu4<@{XYwYx!U7wi2tjLma>YAmw&&9U<E`wZUi!0$f%KB?cA
+z^n(-l{l^&V>lZIxEV|N1vOyPhCGJ^*w`ax%0^8!gxYCad1NLNA`BWMi=rtL4b7QI}
+zXh`-1^BD8V*&4hR>(6eq|3UPd7@b@8T;mNgUX6W+NB*i{`?;TrIW$-BlW!bZD+C)C
+za(*AubNIdvzqx)K#P3ImiNm|gV#^X+L#-WL8~*rZwKv?Q*M_O;en6|~xSMOx_7K{>
+zs7%lL3FgW24-N#&-@!X5*<#4f787{C1ZmWdn0CmZ?gKp@dRmRu?jJ&*W-^Wy<4#lW
+zGKi_v?zch5S_2&m^1xpSx-#Cz^dxjE+5%`_Bl6kEpP-F{GG+*t&&lFo?x}p(K2)43
+z@_lI`Y#oyL9E^Vz%CvfBGUIJo0@{K99<Wv4mrHDR;+}LziT^(x{m40tKk%bdePP4n
+ze5Gz<Vtu+obe%7GqxBr>IFTH2h35Fg<c^P_<1Es8+Aq0B`GHaESMK8VtBtxR^<uP*
+z`bV3{rgm?f@%6%UhVhVNC|wE*^nq1kH>h{dN-W=G{u%rY4c_i8R~R%Nb>RC!8`5Mo
+z`Uu@3`hijXoTvL4vLTc06<)RUb;ZA{uhhYozW?%l<$92&j&3R0pAkRUPU+8|p&yL>
+zQ-k?ReDd$1ziH{OdVja{cYb~Ve|aZ;)Bk?Am;Jys9^*v{b{P8m4UOHiMB6m=u$jQ?
+z1+_l*1<M()9BE7S`|@`wS&!dRSc)=e>(N%Gt;f8T)8_cA(Wli|!)W&rb9pIw3HBi4
+zobXPdh5A#pZLmHP3yFM~_{i2^%eZSi?x~Rf<EU#q<i(&KANu0wEIlr!;XNpK5<lWI
+zUWekpn?%<Z92<;<jEj!3A>+dM-n`S7!??(Lwv>0mWj$M@{bUZHj(zVNwWgJg%LxBv
+zx&>3HO~>6b>=w}d_X=}B?;59F*2)BVka0)!yP4!Yj1}zrhbXh|Pd=635~=~e+%EHu
+zx?&i4ACUjo%K10<9g<x8p+By`Lp$kXhH-}RLzaqdreplTPNytbiuTcGYehoYAtkwf
+zsd0|LE?%8faYCY4<A^DAsd0}YZw6(v-E1rI>o^9C<uXXwJLMYh0l_qb?6tc@_70p^
+zn9kqF-zII#Uw@Zc7r38DzuyJ;9Y?tt$g|a0CqAv;!(R1Q;P)r+`#RoT)wJGX)Odq(
+zKlyg=0g?4<y(DpYxgV9yc(j>wc>fLX$)>oPzod7CGfQ}-`ag(QK8Uf{Hth}0VSKw=
+zV$Ns46So!qdU*ID+V3?s@9@pfe}8!R0Cn))oTFBk<oOHap+2??e`(ibx4hHaeCoHo
+zq{qDh%oR)N>}FSse>Htp^x3n8apO3a=4>e~smHf;*O>1(j+}oX(3I;u=bv-_!k9e2
+z{o*kR@cVJvWca-Xzw`S2D*T2%>pzR%9~^@Z*|tNPugcpu79a9md7De^B_DFV7a4)}
+zvfXTR1noWcrm&IIxB}eEEa@85F-|NR5Ddea&^bcTb9rx*x<!M`>8$~A2c|23f`a+;
+zZ)dsh`XHYFrtkc3<5M>fY<plpu=OcdMV{H&VB6j)UffgnzH8jx;<#*Y(HflNo5{7_
+z$})V53-`OXz9zoKiZSpl(ytTW;=+CNt*;B;Vy4z*D7z`Mxt26R&*0wTbm$z7j4Mto
+zDa@_DYX*WWWMp>lK;U?4AGDgj@L7zfjt61sSnl+tJZC(SuhaW%H-ImGf#2K{W!&<G
+z_-zpzgs}^q-lA#u7OQeci_@vUT1Sd0k@0H<>twu<=HBJK>Mr=gg6;K3CB_Zr=l!_@
+z`9VC~+aKp{Fn%e1feQ=VxBRE!;q8<`yl<Kawg$$a+Cz)WyiVrNV9wQ`Zb#xu9W8QP
+zLw2j|&y0uM_A&45k^Bo7SLDF9knPb=ntO%~Uim)Z9iGI#n6;I$OGjj9{O3JI;%g8y
+z?F-_k`PstF&|Qgd8Y7+o*2G583iJQWRE})|`eef0%=6lhi_f3hOKzmSWv^B8X3vnw
+zn>}xxrR0t67G$qY#}8<dy*IU|#&v~#nM?XXE)7}-^7rE*UB1QhZj?VA<H)`4f4p<}
+zEWY=Dfi#rmpTTb_$5VPW%YokgP$Ie&bj*&>1&nlnu_Ts@?%aiZx6#+*A$ugxeEMu1
+z*fyn%c9x=@VYEo>3DS(Tqs?iR(axU2xw}>H?CS3u2;NFRQOx;45B=~|KRz|8AG_})
+zuc<z;KM&&fLp;l|Rg8?)q+_bXBX5VmyNk#ls3WHTmiO&GjQQxk?GnDY(6^oB3#@?+
+zqF*g4gpDqb_f}(i%`NW}WiDe-mHN~?I1tcwD$%9HPoxFENy~gG?K}4rEk}RL^9FqT
+z48C1edjV607!T#L@Ba_y9}WM-&p&GJy!cF_^3H$z`A5TRoPV6#c5z)VY<unVkA~NA
+z{y_{8^4fCpS~eT>5%0H**Y1ql-Y=3z^XGC$^Q)Y@0>|hUj7Hkf982z>P!9hh@l)x?
+zIpe4KK^NcuU6(gQ_Ac=rdED_CZ^viayzhOn-8;y;mj^faO|&sGYcJp!g72s27>5P?
+zWP_h<@RPO0k60bEO#^&ow9PhiTm49G-Ru&spPA_N?wr>sSexWG?)MY-PyAz0)}5)h
+zd$iqo4niBB`w-2v<qZ{gnlz<dOulNEcGt)rWz~G{iMIK(-nzjb{VtLwu1K2~{jFEO
+zt3>+zF}~scWVPnsi^?)O(7#vbj~X3b!Wygm4v)W^^}ABKlaqLUf$OPQix$>duKi7V
+zpM?7+Tzf4Yk71{$;uH}ZlePwVcDg<jj%6?Gso(n2@Y&^>UtkmZiy%Kf1>R$SKuf<F
+zzdw%OGl+}LxbR}Pbo)tSbELXF##Eez_uQA6i}VE2KaAgViG7^x^tOKX9bN)DXLFg(
+zSvhJ<N--z6uf=_m<}yC#KH%svBA=Ja-1fUuJ(gRwOqI=jz0u<)<tB9-><*v$YzX;g
+za<2z^?db80BER?#jM@tvJ-%#5GNJN~>;uZ4_^az5U0#LkkH5NKqs!wtK6xRG{G-eK
+z1Fo-c@Qjmo*}O5%I2VmN<6JWOjMLI*oX(xW{f4of{kdE3kCyMZ@ockn&S^HZ2u30I
+zbnt#6-iK*-4MC=J&z$F*Jm;hgrJYPYZ-w43<#{L1Im1Q*HsTyV#j{yMon5X*`&NN}
+zcNpD%A9$_@JlBQw&xL-x4f-$l=n~w&#5Xfu$64ne=(A47eeWA*LT~$u7n<DSS2$i_
+z7VJ>sK}D>Uu>Zdzc4%oYp0fQ?d-2On`oe1&=k)lLT@gpEn>$Dk=!QLLTOVbtt@q+{
+zdM}=OUAoH)rS7=sY?HpfrwuiadkqtIHP#`tGi<N)%G(-tR(cWZOVU<pBe6qun_u15
+zFBGPYYAf4G8-#6Udx=?@MO%q4&samRI>)qBT)91?&M_Ox&V=}z^PXuuqZv8Jw54sb
+z&r`ynhW#3x{7*Q?Y#-wslj|kvE$5h?I>$_2<{WcT**WHt*Eq+VcZqY%>VJ9lIp#h8
+zj&sbnYrddepN*Pwj=557gO$R^Fpcu$kFfJq?*czx;1BL|gsc*85bH+qMrmB@$RDHh
+zKiVuM9q={JF!dhmpN=}iEawk7n~^h2bw=4R>Wq?Sm<c&!QRg-nz4uCIn0Jhv12tUY
+z471_Y=ah18+A#W@(kY!`zPdf7Gt7p|oMHZt*Eqv$xXc;mSaU_rF!fxS&NECcFNm+n
+z`N4h9RboTIZbw~=F_V%!-2t)id44&Qd*3;IhDl6y?tyU)<QXRN{qM3f%nx7Y4D&{w
+zVaooUSLh3wUX7g^;WNs}a+z7;u}jIHwBEaGHC`=)O7e&DlCtumbIWpBnSrcK-{Ji?
+zo?C(jjHlSJ<>Irjdi*|Ac5Yd><>GTo3%~nc<J_|04V+sxyuowJhBtU_+3-5gEgRmz
+zxn;u}IJazgo#&PfmpHflUfH?jeZ3ct)t}?{Ka`zY{#ozE=a%2=Rp*u?w)Fn3!73vg
+zEG2#-WVUVe1ygx8&pUIlMVi3t8OGGhLNChn1r39J!MCu!F!tU#=V*SLX?o}EBjC}^
+zphfF!#w0PVO_U3>Id-(;XmiA2v(i@N+D-dJ>`7PogEeb?!+~y1KQhyG3yV-6<MvfK
+z8E?Gt^}>yY@lf2pUCy6wFpLAugV4?OyM=N-v>-npe~I79J-J^bj_1?H<z+8zoCNh8
+z)Xy_pu3cRcgJ7+c`&pFNBxfF7Qtx8ao3IoHzv*;Io}{k((>$-Eoj{vGaQA3u-dM;^
+zeV6B=+>JA)c;?ECzfj%dmOV`uWz`LBy=WhWu}zsqdp@T3i%ajg7e|^V-oI7OVZ@HH
+zHp{*w_gdt97yoDVI?8poC#Uvnx$crLU0c~Uv}G%J7M#J_ir;apv%h{(@rv9fB#xG~
+zKR<})e(PcUeOUITmg=>an9{_J-ewryInX+UvEcY}TzPH_o!G}%`rI$&ICE?(G%sSj
+zAy2#g5PlmN>sG<IL45}5!*joZ`V3Vc@2@10e=hR>vPXRn{nVeqJw5#1i1#xR{Svda
+zG=DBdU+&A#g)K9$Y+wFT^ya?&cS|<H{tIXOw2{3^p6&O&`fQ)rqb_uLmuLH!D~Y}!
+zsn7P0K<|I8v-Rg0!{&nnL1)?7I_>c_NUO=U`K7aU+U$oI!;y1kW~)!XOP;rLe}J|?
+zl(=*HEMpaPd)OorD|SXg?Wb}tbt>|4kCrl>`)4yH2Gil<puw~ClVVF6f{A@novo9n
+zT%N6Wd0TG0#M!#h9bJj%T7Bl6Hhy#}8#cWeTGx*AZ2cl#`%94dsgZR~e9keKj4^fX
+z`GqgMhAwrv^Yl-d#zTxj$$9(<^WyXLkMbS&LXD;QIryJvhCEj{vGz0W?fnMN2$O}?
+z=-UcB#IxX;ob(TCc+ye*3)!uBzU)<B)W<Jh+{fJI`na_4p4aH(*yrdQq#w{VA4-;;
+zqg!U_99_MSo9Z0B+Pw5R`leCm=yhY9qu0I0Ir<;`JI~QSTYiqdU!9}Rb=4Ue>!^f$
+z5<eOI&ok34zT(HQO&Qdp{bc&YPiCI@$t-!pelpdg{A9lWPZ#^i3~HYE{3u>{P-2@k
+z`w!+yJaMz)`5P|Sm(fu?PkdqWfT_=LO8oxNMS5K?c%pqouWOU|I^cE4)-|p^yO%lK
+zC1bsjXZLoStXp^Jv-=0dN3TWRuh;9=y3+Z5V)Xg_q6_EuS$%$=Z1q+rFbD9^f8pJ)
+zadzMN8fW))ujA~#?h<GBH}mX1@swc7{SkEPlHU~jP?AkNPYq{VD3^jT&n^vhmc9yO
+zwaHNPmS@uy_8ec0)yh$Gcjc?()1}7hW5yetxB494gs#BxcpJtcIdXQska$%W&d&9i
+zHs~?SUjH_C<Cb^2_4rMj`jGeueW76P%J}cs_mIoarR&Ph&G|p~;!5wTjIwicOU*Iz
+z0OuWb%_bekI#FgH)NNMl@Kj6bcNTu%Q+B={-+b};dJMmhmA#LQdT(r2XIZ5+>*Y=A
+zPHXA>{U!YV=qO&|d-Bs*{Tz#z>dMaFtMq>4$oadi<V?B0z(3NS`&H<o^Y@a@yrb;w
+zy#`}1XYX0!WMfVy^x3<e4gR~F{kVmRi~%yfw(vh_!%v&7&ZNc9hIf%KoJlh_#=ORX
+zVBYir@q6Q$b?Hoc=JJ7{iubV~k0`?|yswkJL7quJosa0VkU!s~&Ix%IV&V6n;dh;m
+zffILnixqZnaoi=&q{kWQ!XKBNNjF?{CjD4`5RaTmXV+gilg4~6ok<gOs^{i`pzHes
+z;;*+{`w(pV?I|Ap3M#U_Mfwxahk(8W^eOl^`4Z&HeF^&hU-2c#?HRzjVS3tkYqDe1
+z7WRS$Q+Y4B?0mb2=iAOx`CnL1jo3t{y%F-DWj5^~%7W?igS3^8BgR;rYfIe1F7d5e
+zRdya-qjiL@jXIB}FU^<rd3255d%8u=qp$Jm?b4a;T90dSojyMsZBLwDrp{eY-Zv0z
+z8s$$=qvhKlUB;h)ZT-6TCm3lb@|Vti=~pmv_Uou~Y6E;$H-<j}eFum+XKLSp8EAK-
+z(#Z-R#yp~L70)fX&M@ZXEIA*4YUF(UXB$iB{7=alIShldqv`sVG3ffH5?#qZ)*V9E
+zx>0nsMxFE5TjghoEz+OS^kttqQ;NQ81_y!<>G%hO)?=`z9uwQ<R;00C4f_0^KJq4P
+zC|jLLkDT4VdsJT^*vL8l)QB&@AbxYtZ1j2i38cOB^N^gMmt<HZrsP;0vWq$|?|zb}
+zdB)9ia|h!;BLjON-5*?`<6f9LmVw6M$(uSJ!=gV>u|8^29bPqLEMus|OTIV8l6*Yv
+znsLjmtxUP5nR09Eb&LeclnUq)6^Zp;+&Ny1+sBHG%MkidtH0@kS9`PH0s7fFiCYju
+z+x}TFl3IMmiKxLGC%ysWLop7CnO=wV8zlYjb^3)m)}xNrkvez=OIfy8V#!@7pY47@
+z+j^I!3urPkb$PlFFJ#;ws2DM0(WSz;LD40n=n_j_OqVFy8?{K6V`%f?;^s<Cmk(S_
+z7pp{<Oeg+da)B-iJ6Gsp{X6JlmC>asHvqn({NtVIz9QEx>Uwp=`6yvR<B8+3bnFA`
+zY{+N?-~C&@J$6QYTj%iZu!?mMvNsnw_YIwA+v~`)O6PHm_dM?;1_CFi?sdm=Jw^I?
+z&`-%qq8&N3!^#A88rwRKG)Ko6nD-x0MogE%b#>&uqw@1T<33ay+2<wpl5sQb&IwFs
+zObEu7AeJS4JzE8jwAGU`b!>^cvKSM*Lyoa8$5d&BoY_o_64H01K9n0772kqwV13*-
+zx_eryS817k+)~)OrEf?B`j^_doBY}a=vj$uFl7n-362F*X13z*J}GxfGv~%ZDX%ga
+z@<WNek{-5H8fo)g)WNb#G~(X8;45Slj@FerUduh{LBUTplOOX-bFGB2^A!3zW0IP8
+zCfciU)`%4f{qhF1;UoSpupXJC@aO33$@}d5pV)dO+>vw9_dHMR5$Je=t;hb+2gAht
+zugvkD_!c?SL4PNi_OVG5r@6H;W0}9eX{|+C^y|*gt_(XTir0i#R|a+@V+FLWjU{LM
+z2ITR0E9?{R@SbZ?R<ff#lIUnRjfTQiUvJ41bHqq*AO=MKTvXAd>2%0=;GfP9Gd>5g
+zj8<6#!J8QW$x<;oIKH6MhB)!AY>aub19dJg7{-wxM%?tA`0>*g31Yc<zTq5!?Yy*L
+zL|O&=t}+?*8;M&nMPZRiJegX?Gx?J5z?O|CFT~pDEULD|tt@3oUSrx;Q?IK84Olj1
+z^g_xIs|#y+*e~(0A(&uCpNng(X45d`-Aj<Sg5jm^#0XwfWDxw3%?3jl!&GtrWs{F@
+zoXGxC&!+61H_~Pm7sOb$Igq&s+C72q+7cC@Pg|b8PvnEBabxYju)l`F>y2kSCq)K3
+zClMq4CCKFLDb+X1f9~T6kJ7KU)UGtsx`Q~{b{EReqFvR}uFsCNOX3UJAM-`uzlr!v
+z7SkrLKwB%z+j`sPz?2w_#IUO)hTvqjd#AL!vaH=VqTQdZg^b@&t=r9b3#E00vOGT6
+z33_%0C7ke=0zF2gIWY>H>?Dcn=Cn=#?I(fulS*@$@A1DGvv2lge&G8$j3wm?=hu6_
+z$yf?%>`JoZm-IJ8e;Ui=E#;2LT=FCGRew|2b`sMjP;zfB_;#*M-*V#QZ7fC-?@>I#
+z_zsYpHokKbY7LlbD;dhQpaD-ko<=-PcyDQ5JoH@1X!=hmceO5;^yF{yL+{^z%3rep
+z`q}LM;B9-{eB*4!hL3wwzcwKIWyHEjr@Dh&qC42fvvEW1J+9XKGw%KU!QM)v`sKfX
+zjM>9;r7gvtc%|nUn}X@qroeJG1@Y9T;6<}L=&6Z$FV%JjGZUMzMr;aBPU{ZrWwZ<N
+zep!Do6~9m8J@-~4R!4r@P0*=P&gP1+cXAoy1$PH8O{0$8K}@)O8oEm7?+gSpa+@$-
+z9bU>+`@V*|DOi0ibj7>7gU!*X7f0TvWz=i&z83l@-d8X!yD4ax&$IkY-l=6<`h(Nc
+z=xf-PuW(xPjc88;zd?I;PUsJ+k{d9GTfG;NC!T9#+}iv>^s7O9FE<6%PA1P-8!z6C
+zHbO>L=eqK|n|>O<o6P>;(DEnphPxrZ8|}(`w?BAc3iM#mwsA^-;Gpj6yWPB9OM8E9
+zz7KtAMB3`_(w1z`dsDg<?j7dZy^te4e?AaAh_+?XF7A<a;&&#5ys*V<?t=}6{_MLC
+zeZsq!Q2)f*gkNbUe730yedBp7^AhiW(NK4gn5OQ3?%;kt`qYQ9>_T}5(H;-&+l@ZQ
+zS|As1qdaJXoxZ|jyhI~)3+9)XSLeH4{v7Bzh(2`=DSBp6)}tI#wEsEO;mqm}`Y<+A
+z=cCVetFxv)&@6*~WUfZv(bq`A%a3=f{dmrU3`+Ut1UD}}KN+m4v%7<4)UoSso&zyP
+zIsQkRA7Fg$mhPYneB1+m?gVd4AL<v`!B`E^<Sky<{fgWdX}b;iP(}~R*oJm8Ui=FN
+z_Zhl_7s=mfa~s;jaW|~PK@Y~@u>Jk~8uaJT^rQJlQQsld*D#BIQYZ`cRivIS-W-Rm
+zoa+tRIA5a1hLz|S?WRZN%xz<F$4%U;K3ZhV7v5#*3-wRhZK*pkGeDd0v<tCQD_j>M
+z5%LY|P#@k|px@s{jmd4cidFIw>VFP(&jf8>#`6H4xp-VW^YA=~{^w-h?D~91)OZ)q
+z3XDOeSG>$K9(<n!e>{k%2K-cmbzlkp--mqMFUloY&rMz!viS>9<3nv4-$vpLfOe-r
+zrwG>)Vy<KTVEM$g;C_*5%%4~~2Qmczm$5h9a0s%xM&kJ-CoY{PeqR^mS&p=qN%O0_
+zgA4f=a<67$yxz^HI0v-O*EGY;H@yq|JEZT^V6CgpuFpf431eNGNIx^!+Y_I|`|(cL
+zA8&{JmE=Xt!!UR(lwOygQqQ>Cac`|1_vQ{UUU6H##WK7Hn8)doyC#u65=Ss^TA93y
+z^g+r5*(1p0D^l(Gs2TTSnRWTfp*ZG3M?RkE#Jbj+A4GW%V$Q6%oAOAVnen_7c59yJ
+zk=&~f<=lzS@f-;}m>Z(ZYhn8*MrNZd^m``Kk|@L8gF3I}Ic9(GGJaP=K2#xZ{r!*;
+zNRJG5<xlX8cLC<{P2Ita5P0DCFi+NkKR`=jO+Q!5@g!D9$eVGkN`Dk((bq4Gv=iV5
+zFQN8Th_@eEKtJpXF9)8F+A%MIZ<_H<#bAwhTA!t`+yv%q55~P2b2=+~ej(3r!d?P-
+zoAHf_{3{_pmZGku%UIW@yfeRl(()n2Pt!4<o!P=mrn8`X(sVrD#{NlhXG?y!**^*L
+zXVOx9--J9<@tkzJqf<lOlbZ0Hw7MsS?CtrgQaeD)o`mX;v?s~2yU>;>+9Goh^Y5xC
+zY+T5<6zH-7^EeH8^eE;G_ZTwJUt6wr^X-t~Z4(%utySV5S1=AT?9CHye{j_4%OA1(
+z@`tUy{2`++U*m4iZ-cBoNS*<o#xMut;I~&yqnfh6Pxh=P=ZQ6Na$5hSklW&g?HUWq
+z@#K@U=zIERk9Rx=(GIRv2f0^`w!A>!cViN<icRu)eQmeIQEQsUdn=GXN$w%NiMZCa
+z^|K(uQZnZY=t~rOm`U24%&GO~n8YSmyv4rKXME>u&Ii|wz*aw@^BIW-k32Asyhpx7
+zTHKhJKP0g>T(i#X7N0F*V4WP|yEkFoGbVFC-}W#^rtp4Hwiq`i<ay@Q$M2_XF3!mJ
+z%Uy$mj@pMeEVZUFwzcf{(l5htP455l+?s0w^&R^2aL*}ru21j#p<dM0M4rxB9^_(m
+zleFW_`L__O5$$Qv_XgOWCCJA$dz_suvfp8&Hc#5dxYpNhD#lSK+eqI5wvl_z#LyBf
+zbF`0lsY-1O85=yduhh2sX~YF9wQtLX_LXR9H01v$<TiDc6!+}uM=Ez5wiF||4L<!6
+ztF2|;A;<s+^&B&aXW!~aFgNHU&wa^l)Q6IrifeM*^WG9fF%}WDBSPOMr^Ye`FaFKm
+zt>ho{^&tJLbst~gUS68KGheW2qM*&OT>qr{q3%iVGgUmkHwnh;oAOt23@tr|Lmb16
+z#Ya8PmxlZ}j34d$8MTTpIgS>6R58}1566^uN#b&s4E3cIjfhoRK7J<*w#~|ucZj89
+z%RPxJA@BQ&gP{GRyl-i|C2wF{$ZrQZCTL4vp7Wahz<5ki<73zg*UZA$)EV94Ye`$9
+z(owuqUUvj_M>T&$HGeqHmY|$R$RFg5N6DX@S7-xyq^Yb8QAf2w_(Nir==yn&##rmI
+zJ#p_s--SPtrT+IyeR3Y0>hNJ}LZ@%@Er%FA*Gr6?L!jp|%<COVo@cCuJ>BL<)2&`K
+zwbok=nL;~oHS{LZ(MoKG4X{0k<X}%_Ebqh+aqKidSa0^|i!+G&4?$iXME-Mft}ro=
+zxn)v*Kbq~2Vr?=h$4?>;_oE|DwaABK_>K3$PRP+X^1yC1i3>=Zc=b@f#6q1n#Ib6~
+zN2V#B;JDXuT_?T`$M-V4)TjB#Fck01FcnY9{u#$o-(9NH{8Xvs!HFr#zwd%PSR(v;
+zl4tX|w|KuFLA{>37eii(JKre^?s)CyBFpMSTW3sB7<qNIY7L?sis?I$7VI3JjaQV{
+z=azVAdk}Nm{b-_{_fUMfzX3aTC*=N4(0&Kz?$-=sds^S)tH|Dp^>%YHLJaHVS}zVg
+z>vv!mhrs`gx5xG!L_5>^jvM`QO=nYaoV`hCWf(__<Irx>gYqddhP;eB3b(M--qG`o
+zv31`p`>&Hmcztjbud@y0^+TQ>2b9b4;aH5zkv}dT59L#&?u*9C=UN$^cIHH%0)3X|
+z$?H6Sx|%V9oZjGs$g$oaoNn-{+zzjtXU{QC9NKU&L*BB~nv+rTi}53BAYcDtczFAZ
+zS_dIN?hGm3W$g8O==P7DA3j6clE40xm;`z9-CG#@M`#`&QW#Y`P|wa<t{WMN)ynbP
+zi8;1<0F*#$znU6%%W3uFSm#zxBUYkO%{jS~a})C~N}D1jcf*KNedgst$XJfWy#Alh
+z4^L&Bbo`$HU1nhZG+!<E0P-^@Q2%d*F1a~Rzv)%l_MzV|&%lXG5QCl)hrVJ#=c{^8
+zw|~cV-TtO8cKaK?*6m;O7u|lx-*x*}kL&j9CUgt$3N9S@cFNy&`)dcf{pKWeK-eEM
+z!ILw1_GTztxaD$p47`}ySZtb4-?+7Tt|PEbCsi2L);*>%`ScKVjRp_Yo*YTuRg9$X
+zEJhsgxeb1I))yo8?IN#uCh|OF)uz8hn|^{ejqmnjiDp0P5_eMF#h^c{)ah<2Mv@zg
+zQ>jNf8!)dX=AlzeirR7O3e;np)GsZsnsug7U;3`%D$utY_I$Oy&Kq6tY1RuGY(Sk?
+zzeUx%RNqMvze-EheR>&X*`{JRd8POEkWtNZ#gpW1r>_`>j!&Ns$pe~@|LJ3Jj(WXu
+zW!}h<-=HI9`lDPsc`tMc*6-8u{g&b}#^Hu8t@9{7>L%XHaLo$g)y2Y>yzg&IJ0Rz2
+zQ=sgNb*T9T^tqC2(TiGdyDqHx*(;L^DJ2&wC>K&nE>zTVEblCG4q6yD&e77k#4~iR
+zhZe?TT$wC;wJx=|fN`#5T#O}Nsej)ohM`l<48K~Ak|zwvZpuwr|FtZ=NPeQuIy_v1
+zqq^Q$S-o6`BTmPdJe6e(VvOgeZ+H6~%N3+wt)gEzRqOo)<_xi5UYM`P)`@zN<hG)%
+zbsq8UfUX=$tMQ}Udr|w4`=K%Dnp1R*ldfF9KvN@kq!=;4hm?0(2FjXV@<&KtpsVWJ
+zTK{62UN3P*O0xEJt<r_ru16t14r2VGpdn=w%NL#4xT}b@!7QzRrMl{t@t&3ThtM<~
+zsWVxkXKzrVA7h{FPSO9T+YejW)7(3<AbTx22h8{}$hd0g8M{*of1`v`wjXq*Z_z%+
+zA4J}5kXLI&E++F2@=nZ<^0(aw**6{hT=C&<e`;j&=}@lA%YtXNO=14-phw0Ewo<a)
+zi?|!aR*KMOg6))n3~ig=9dzE!^15YTs0ZI{gD&^|kg>fBa<XkU<x;EH3EQ&|^JyRD
+zEbly|I=n8(#WvV~eXwu0{wsZExnGF-(i@9hD-NOGFUWcNRe3cBmlo<<x}%(j#2%cg
+z`RJI||EZT%IIx+fDO;u%G$6KzU6K)4d*YBuC0=<{^NO8UwhVP)&Ofe~meyrTdT=Gy
+z8jhtoN|zD6xNNPi9K}0RO=TlO28v7=U3b&ns&2|E`twzzuhhpWGi5$<E<$>X-Gcd3
+z(#NT%*X6s#UyyT?Yj#PWsve~yt2Ru^A12*MW9mxK-NLZt4ifVTd?$K4afY4VVm0)3
+z$_LVgIy-fD&O_?W*8G04=cpsQ_+|#uIIrIo>3*K=h#MVVNj{9$lmA%X$Do}X$!#oB
+zAE!<Hf~$1SsMy0diapFRo|)u+uWFOBi6_e#NA(z=bJ?#O3#i|uZJQ{|&%D%kDaXTj
+z&-F2ync!6l)~ed8q`ZktVY!o(42LaJC;L%J!PaB_N`CeV?|h54R8nE)h~A5IzNhZX
+z@!{GUN4^T9`!vVU5`Cjv_=r3t=RJD->aeDZpHG<{Tuv+Mz!COI+nmC`km2v5-Upej
+z?9eOojNviUDvhTlG1qv%MaDCw`gl6e{bx0%B|D5`$uYH-m5ryT$1~>^K4D=z<u1`W
+z@6vYh7;Quw8VsdtJon1*nGw01RQyi5MIoE11Je#+zA)Cly1ZKNEUl}W<vKBCH8G~a
+z>!tOF`g}Q$(-&{_+^Soq<`&DOOcvWNrLYmo^=;XkC|lcPO-+@`-V)r8eo!vd5Z4-G
+z%otMq{TR}zgS=4cyJLCT^TXAj2A@+;I$4@$)&%d#SB91Th40>n_dS%ykiDIt%MR+=
+z&RQ?(94)q)>JFYk8D?dJ2;|i+l;a`qF7WIQtanpB6!Idr=}oDRdZD>)-dq4%<oDb>
+z_iuS8IQ#42GhNhauca+?EXdAR>*dP{@^)|V4917&5R0a8AGN{{*@m|Ra@w98_Us44
+z-qjy)^GV3@C725jq8;yE=H{ogxOorXe+6aJpD~>PojE7%9@ztr+DBv$ocrIzW#b+=
+z&kniwUB2%<V+wT)+HBBie?45yeSMw@twF!phNyFkXMhgdYSq5wOLF&dV*uGTxf$(E
+z%x9ZJzWs@?7fqtwpraiNdo!{2d~cb;IM~4$bhDthVr_Z=>+M`q?V&%1aeoimKbWBI
+zbBnhN?SFuC#8zusv}{k1vUZL3&F6Z$8?x<P7`Hac$mA#d3g}tUpMN_`KS25r*5L_@
+z9jM}3G1k>E&o|{h>uiaAH;%Rv=GM6!*9-Oi4CI@N=ks``;c;|%*XsC}yw?>4-DvmE
+zz}U~+(;w`{*fw2F`y%4)CXXi~vVS>MY__%egR|6mT0Ga0KbaE$@I3bbuzu&msgC>!
+zSLxL!F&C!7=4iTF?Jv*VLz&tgJjr&;zQWQ1^w01)qdWTd&_iA}B*p{x&%!TQa;IRj
+z!L<tQdkg<Z-(E!D`a$ED6YO`h^!uGUjx5h(O8sWs`=8;tqKt0;h~LEeC*6!$7rw95
+zbYs~azg974U!Y#awE*uu*nqUldXma6>!LnpnO@Wmc@@sP=?hT^58j?nOi=sXFQSjD
+zbUEj2bw0szV24!m%q{^sH-pX&%AAh!Jf8hI6<$1nC#TLSN#|;(#v`4Z_sHIVA)H;G
+zcTmT4)R6!^t5N3*X!8)ypn29w-nA-x`(36-n|TrXn4CiV$q44N;U)3je$e#7u;WOt
+ztKaVCmtdYeI7Q9Dw{Z@Fh8uo0d?tgrunXUNoZHT(U`lla{pGh&$c2b!{GRw)6eu6U
+z+mwu;d{~cfd+=SeeAg44qYSX3e%J|llmqscRsD9%^yZ=N@5+5&H~%LIiRn;y8S{yA
+z?E$oDF5bJCXU}0Ry8-3CFr;j*IQ1#4snlDz=3E6ic`~owjib)tDV>Jz9(oyan|n&U
+z&zw+aY7txQD^->4mB`)>_uOmM{!(183%m#Ms=b{=Np|-H>;CofYfubzh+O76U?}^5
+z^|0(xJ=D{G^s>6|)%*9#mtkbBNnBWKA}Fu4rzrbV+}E^K+bu)u{dzBve!gq;87Y1B
+z%iFvHyeW1X>R2iGq2DPQ_IIS+6|X@P(xbFqmda;c<?Gp0lz%Sqp67eg13^y?k2fHG
+z;g#ucd-2rP;<)5i!LLXendj-NPkU6blRedb-e=*u7uWYtcrSLPzL&zgCu}?SK}z@E
+zS9`>aq@AYxhco!yrtbLViPJ#5hC~0N?y89Ia^{DppW7QUUWQPZN+0&|?|I%xEfc&8
+z+8>|(`%n4wZ>g{{9?yz-zHKHBi$2<%;62d8uo({p^T3xCiIc_VByF9O0q?NP#QTce
+zQ$_A)(1xInXIRSw^M42NR(RHA9S)+om4cBGHjV`ew2wF)bBPDQ^CzpzOURw@6#Wpq
+z&d&{?j24gk6_v(%ZxDY|l+mca5_LsPH_!cybmnKLh>bfae#3{L4?Y#}u2v{_GGMxy
+zcuKH1!h8pr8p=Jzw%t#gE^Isn{+ypDUM=s6EERkgg`p8je#xt3yvD?G?*YabNUFZ9
+zLR(j$znoWWE7vuimG7jl2g)R#5$__UIfg^eicd-<=qqOwNLxAO+2BFs+lhQDw2c5g
+z_a2tR`*)|E?(g;B*(H0H?Vj56YDGKT?-R$dC(->^r|}qahw$e6!^V=lIp`h@54w9#
+zqfIrgdl=79#M$669^DfX6LCQy1Y2)+raO8ZYYO{8tjP-FaIrFVq(~p%o%r^FByF;k
+z7q*U}O~-<ejla3$K`3!N2q%vRyg$<{XXQ&+x5v9IyhFK2@G5Weco&JZBOQ(OGA|6e
+zgsfY<RgT)53EN+St-IXg9wFx@&&t<uU2)nx+Ow7Pi$a^1bFD?+B8(r9aqlrR?)P^m
+z6_#j~#5wMwpQ`esV*X_+KhFkWZyp6b_wFWs5#;f7)N@*N_IBt^r%qMl8~V3Whhjgr
+zA>W;#39)c!vn6@93HjRuJ!eTmokj7y)Panij`S5NrKiQ_6Tg&p+CuKZOf)l}^U=<U
+zapbd*uMY3ow^Bc2&SbBC8GRuzfAOyIw(j61jPc8qiKaRW{SNIYL;2=@^lRPz>~D4Z
+zpLlDxpXnS3;z>6@6|(N7!EV1X&9m~9&$}V6+;4iS7*9av+6z7Im+!gmYL92gd#;<~
+z(I;r{`-o4mu<#kfIIsg_Jt+HBPZs0Wp(1e)!p<^}_nfwA{c`UVjWv*R^Z#NPPxD-d
+zJ{~b+Q!$#}jBheBUK#tS%<V_s`VKE{?<=w$DXtYL^O3jC!kTxBV6GFRIc`5z6n}c;
+z-y!FEJ;f!o6P<OEFAiSZYbhKJ=q?8g=O%@tL5vvNy{{?3a=ACtQ=|`U*gjljU*h&7
+z#i)H(F=ev9S9|O;eO_4??@3cHjbi<aTgQsL-@<lJ$GGg3^=+Zte}YInP)$5z)K$&8
+z(yXfmb!{D~OK7HjuBpRupPn(pKh3pkyz(3C5qtV`BX<mmw+8+NZ@A&z7-yS!uX>;D
+zCdTIbz(Bx$?R@({FhjoWDTdI$c1OkX<UN*imh!ow?(Cx7)#;~-)q_tIbKrp*=LWI8
+zS>DniH3v4w)p%3KBi>9G^t>0+>P*XYH~69SIzJ?RxUuj8%AnrNz2bvt8^@pXh2wHJ
+z)`Hme0|Bv!b_~)N_g3F9Zt`EGAAHWuH$Waz*EOuK_>fKckG{9thh5>%{vvo5yi1+x
+zIkdfAV{BT;A5YN_N%JdsB4jP}ZbbWsuAAa5#av~~kIhlle%{A{ety8jIP8^un1%Vu
+zq&vj1Iw`bToDU~4R%mkr=)!v?6$bR2)aGIo{7F8}SVsj%<>B|f9c#*7#h<l`KOcVY
+zY>)SjO?3x%uW45wA$~YzW!!qKNIy>AquOC8d!KWKzH|I$FKF_j>`#-oRhzsN>t8^A
+zx{rQtO)14ghPCAaziJ*L{#{D;)HfDOJX@h+rR+7G*b$B=V}e;+*HUUfE^a*`{2SHs
+zs|NXNbluO{BW<~_3AADTs_xzk{F`Fk4`1NlM4NvX`B!3-FH?BlDfjMB%DpedGauGX
+z{0rkyai>i^6FQ-FxcC72y$|DB4cnByPse!91>2H)NsrR5ycWDNZI0k!wF<5P)<>kb
+z&vx^~%4(n0?D4+dKK$PT{W)`!n{S=}5wGTISN4k@MV*;tAN6XcV0=;?UJYzVp1swi
+z*Lf{_-27VNx`gn}&^)m#>HoS9eXBGRYCkp6D(h`*f}4Ldt=5)U?JVyc+FD6m56r7`
+ziDUUVzHNcL;a;d<oZ~r{JDLCPHEw<v%A;>tC--y{3SX)^^+b_=G8yQ^C&0%Krq#O4
+zSQpjlCyV#I&lUV=t}6#IueM@Mk@@O8T<lA8-ab}5W~(y-`i@brGSlEw(CZk|sxv2x
+zA<*q$PL<nrwemHtM4x4^6#YGfKAb?At)LBk)`%CvK1ERe3GP>AI=v3k6toV5M(aTT
+z6L{AG`c{HAIsAV+=)DeOAifV=bJ1_M?{?6fG|Qonystufl5V6i>DiTIO!zjTA8AKA
+za1Wa_qz_?NTH&B^UC!pz{xr)bT}V^zGmFoj@v~F65M!D=MSIrbox_D9gCiFG=pg?s
+z_r7gOHLjHL6<E6|)2ppVid-8iFbCycgM+ofaqpw<SM3}uI$E~wIX^u4L_+!TxVj9X
+z4`|)aJD<5Hic#*lgWlDNCyQ*eaW&V0jN)1R-!*~v8CtyvXx#-mP$wmiBp^GOpL|Fe
+z!?{6uRqgC44l+)R0r_klEgqx|gL1f^W1<ZDN}001KgWycvROt1Ww#5~hLTy_GhrR1
+zE88S`4(~JKFZWecT@M%6pNG6w_k^kE3H@s9m0n2>5TBB`@_k}UL8lj)xhP+4?=OZ#
+zuBJTdR}s*U<3dcVYUi=yV$OZeduOOf9kJTjQ{0KP=OAeg!fxndeAbfvfHmSq+6`zQ
+z?=v$#Rw!{pU?ykzi467QCyOg-J7ksw=8&6bpUf2AyX(AF8RFC4C^)8>Ebq%gN6gY+
+zc$wU_uF67pux<?EnRRk+JB>Wlr9#FM@XRuAO`>0L)J*&)Hd&R`=5=O?m$=TW!uRwi
+z=3V$M+P@q-?mtN^v1Rwm*&oI|yRkpWK0Xjs(YKej#31oUpA52seaHLmPeOk`9PoT?
+zo9v%H4c+X?qAUNOfGl{jNWGtTZh5|31K#D`aPl_w{zW=A8U6jZ4ux_YpOi=ZG}HQB
+zk7xfoP*)EzzszURrsdx1q{3?H!+7mVh;P+BjFUlmd=PfQ%VHb!i)~=2`&wcf9E45q
+z@<n#R=fFF#3li?$KG+<P&Bq(3;hELFzY)5^%aqrN?)_1x>tZ`$&^3<@Dmx+MoDiI+
+zQ1WSv>yd!5(_n8vXS*R-NxuV(PYiZI*j|9XJsA*RZIJtW)D>Om|F8)<E#;SGW?)x9
+z_ou%2fY|R}@`!J?6YW?c^Y(KE(kE))Ecn6?Am3n8$#3fHF|F(Ol-mY_unh*??;k6(
+z4dUSSa@(MkpS)kP4d{#9IZNsGte16=9*s!*x)Yp=l-US}=(`14$eASP(%@pokep~H
+z7Wrnvowx?+4<@LK)p@iFmeOv3j^Bm!HvC>bpLT1vj3<3AXX5t^{N_IC4&ra(cLKj@
+zdr?>A{_0%(PTt)eENX#mKLlF@_5uCwr^810F8WBHnM&wfpZL3Oe*tWSPmk}$TEEP{
+z9y-{*2M2=H8Fel)Gkw9gp@jERVSm<}uWf{`+mwy4HGIKF_ylA_h<J9^BCLzY1Q(6;
+zJe2L1yJxfws)$wMHv49_%|8U$`U-4>MS?$aEU3w4i`1_w87sjiUc{{)v12mE5zNDV
+zn6J$N&sMVHFMC1%q3t$7<1C>#jC-HxJN&*A`sn3sgGDK28`PBPT84cfAl^(?{3iN}
+z<+edB>X~jSyTGuXl6&v8J$YB1<6e@dPMKb{Nb7SK*YQ|DJ75K9V9}QW>o3o4D!EQN
+z^!Yyu8FEZ~Xl^XC6R6`Hlyf7AZ77&OVeSEwuLj-lF^m<lz)O7nMc4{F`*@*aAb8<n
+zj4!^G^}%)v70zcpE2FV%!6%i_)y2nd3inNvZP2CXKu`FBZLp7VtY8~NxX(33VJwCi
+z0}o@y`?V4J(4mY&yx%`~JLc2Px<AhZtdssnj5$wS)6OA<9kkPR^UYTdjNl?0_Luzz
+z-fuv=h$U7@EHUnRrc=J*tn|50yZ}7>3GnZyVds*6$-6J|{z_Wm64{2jTT-uicgZDq
+zm-fPZS=ZKzy+C`eI<55MbM!+oZeWbx`^cwLv!uuIpz5-`x*xpy5y9GeFr{>Lt`{Xf
+zs-pZ!L0?Z*9N`(wM6|1(`*Zr-DwJak7gZ+P!}vWRdvU<_yeMO@FheqEFL`UK;4h@S
+z5cx}Z>tJA`omu)7+joxeZ+yf~s2Q;n8p`}X%v`%);%C-N-O99&qc4gUFTKvXX&)%Q
+zUL<@CJE597<ORMy9&8ue;Z}uRl*U{HeP4!N5=wqf_OH$KGq3@nd!>nw__?48>;7r3
+z`?+U=PUto#F}}~C4ima+Cv>Ef7<&_XXUnxp|5^uKsT2AU&r!LTNK9W#V$(s!r#BZF
+zUx9a+%?xZl=)8<W7=><2J(YZHVE#PkD4m_y9|mn!{7xp7uFA9%_{}{{19WMH?#%tH
+ziaq2fVn{%T0KZm1_dX%G$7{U`-t~u^uA^>|Q?^SS>qi9RR874OcFN1?t@&!SyP7%&
+zXtx{v=X`xRvn@}5RM9tumaSOtl#ZMOU8paA-Tm3AP~wx2xp<Pd`{DE_{ZQt1pJ(%R
+zSQp}0AFSKDgIEjWR(wuu37&^g#||6M$Q~zc7uw&Z{mH1|J{~1+%2~YCq4r}$hrU^K
+zMPimx-=;2JFX#8`k$z*I{Lg$<&T{!(t#xg-4`l}Rn1A%$W`7uq?*-~vnI{7y-R032
+z-vkZYFpkuBP0+6cwCT`e$#Eji9<d1+FS-(ASCN9ffU)y9X5hzW*jSXK2K`mi{SqUv
+z683jH_=dK2JNSk6%6g1hHTb7Ft;S<L#-n7nRD+kQKxf)$v|C8uYK$w#l(tVq+koVc
+z-Qc}kR*wzR_tEbi|5uH+VUp_J5$`3Fx0Rn7b<4#<S5xS^nCISt<wZM$J{fh(lrBS>
+z8^*&z+lbgP3y7s6w2j|Jx%3F%ovCZ#8vbYy-$-74ELd8?<$`S^^k%#p$n6(Ei#nb=
+z@h%2sZVs|5!TFx?Drkpat?p&ehTxnk**9Wif=;w=E@j(Tw<&vrZHlu!<geU`z@wgy
+zvf}ujb`8HLFL11@blFw3n+#&EWQ4|5qsliXP&O%>hxub>sjgh`S;&wV{_0|TqjayG
+zci`zuVu1etykc15u-i@>^x?K(DxNw#7M=z?^>`Zbl<uL9RmO8~ungV>U3BPEKG!3z
+zOH-f^)yr91cd*Hfcn#p)DX?`m#VcTQba<s0YBud->uBIj9|)$Re(s5JZ_RMF2Jz%t
+z-*kE3ZE>C$Ae1drC`*iQd-PA_+W9YXzk93lIpA88R_A;4Tegx}xd%qyEaFK~uU><C
+z<Q`kC!my(LM@-G8L4_66V5u|a&qD{0{ax_s)fh|a2&~`W-fAl3SEjQ?o{7w$k4J|7
+zIM63k3X^l{><%v*F+GPk(D*%r{+HQ9#jTOBN1G`2+iw2q_jY(|IDbv(TD<d-+gilf
+zn^kGo<R05}+25M$vy5x5?(nvTOs_Mo%Gw$VdEwvTy*a$QuEPs2+gfB<rn9xkdvx@X
+zHF90G71vJmLg~XSx0Yp_NF#3aCbXj~q5LW6OCEPxYK>fLZN&Mw&)Dr@?Q8JI+PC1F
+zcz(ak*Wl~&{|yCG&Kz2ZrGoKl@WSr?Ng+HY9)pk59<3g{z1GCLO8l<C6U7t3!@Wty
+z+KA{pG3dE5=!}0pJiLMX%)AF1ORw{Jzr6{x-G+3Yfik_$+9<vO#6{hPaoTz90R6`c
+zb9tY`QTOY}56zi=!C{+=zD`Z5GyZG9KaH4+y`W*QY08+!WK1J6rg10iGbWw*Koe)i
+z(y@(FZoxu3c!tL@dHWvj`*e9dl_8H~{&v^~9P@<iCxm^D$5g?2UYM7C*CfV<_HXt`
+zk!yAMwvELq%bhabFy7TD7=&FO_3F*U6%ZW8j7R*?P2fAhX3lMr?~ExMi{vTZgW$d_
+zbdOh!DaSEnT$Sg$(s)`Jv$*#ExCYPFcxv!)oZrfEbv`Ek4_%=1dioq;eAf*RPwtfe
+z=Zj20dHG6b62|#ajPs)y=SL@DeVNpp?2lHsk6cB4tHNooq`yALv;t$tF}@FF&gIzI
+zaz{}x?zzs<SECv0JF%4_&Mc|_6!JcY-}FOa`+bc86gM_0yiK&@hqn%&6}bWV6nEAI
+zF{9n@XPT$(a>k820{ZS&S{c968Y;wy^JlksjS};`)vriE$1&Qxw-04J`mKdQ`$ne&
+zJkkL@sw1egJA(Q|N6=t&1a__?c%E_X>_75hSG><Q)csk<$-r*Rh|lz*k=USjKt|mG
+z-S7^4dk1*+j-U~bjR)iDzlgr<{4?d}PkG5ZT98rC<-+%!{zmH5sVh@EPkm!m@zho6
+zou?{Sb$H+CJbkJ@gS5WqPrWI-^Hfz^r&qsX-6`7Gp;YUspA8QmD8*tSzM7G{6Z2qG
+z5cBR7428J87HiO*JR`~1=eDC=S@f$n7>9Jr>kXPAuT6WC;Ihr2JoUie#N2}2zGCoM
+z>g1CRXLCRsqM36Ya;_o6bBo>}Zfy@5Z2UEN596!ebW39M_{3ZarIriEE$<hI-<!nj
+zSyX5u))x5PaJFOZ?v?v$#B$<!BlL#J4SFqqliuU!c|fJjbsBwxe2$=9pAQ>nc`qca
+z?+`R=+K2G_1^R!Z?3k^58cXHV*QQin4fhs#P7pHA61&IJzRu<K7!$gmC*E(pVVo@p
+zZ*B)&dxJksW4+L2{z=NsA7UIs;|s*Kt)+eI;(z*v@|==)bRWR`F7B`Bvo7L8>>^f$
+z<AxiY?kM<S^8eDfN_`lMgU}yh39MPkKVY1t_br0{O*<scbu4v@|Nc{Me)_|1p68n!
+zGh1*DvXFV31qYx(XqgRi_Os%T$#uo_KJ62emsrl`;5>hgr+mZdlMv5rflS2O09$(x
+z*2sID!8|caUM6l*dX~cKsAMdgWd44<pUBua_i+8au`u4*;8XXVgSC-(@br<OP0nNT
+zbgDaA%X@N;vc;ubd#x&$7+$H_{=|yK`H9!MwTp87lNNdX(TOwN+DX4d-{UzG@PtAs
+zw>Ir`Pr?&@RL=T029ysiChr<9EVSyohkt;-^dH$LSoMre@tvTx6x-2W=TGFh3)13t
+z$}@>gajoP1p=o?#7vyUk`qv-d0zC)%G0$CCM$Fy}-u@1B(iO7j9a^Bu+7>muMWs7d
+z);ceYa(`kgjNZB_YrTmTS&#Zi+*<B2wq&)dFyQ1K4e0$@)VY)AFQ_wxI!o~|XS580
+zMw@~r%&TU`w_<-B<^S+L;u+ar@`z8*d%wN$Ydqq$(l3O%;&;q(-gJBuO?7xnQcC|=
+zDK_gZ-gn=+)(b)Z@A6dal{!yh+H-9j;+|1%ollJZZ+Un46<B9^FO0TfO5-PTZ?!GW
+zJzC|%N`GONPv0D#CoP`o=2v+th7@&<iOwBf2K>5kK5WI5@?T+nTlT+QFbBDw?&ltz
+zr|z&W{2i5V|9ki6OL)IquqK;UyT8SZd!4dx4ja@`_wVV)9JRgtci#(r)4N&r))}kC
+z(J^2cUxT=8vQDGzT+>Li8e=K+>BaYLHH>??PKM}DBkL{o?0+i8-Cq<<=$~f#2z1-!
+z{$?ZOZLSV`JyWjs7+<*OgV%Ujw2S-k&FIs{Yp(HPw(<wKW;$iY!D0`20&Ctl=rCQ7
+zZxVMIb{W@u#z|NLU116Aq~(G!>E-Vk&$;rJ{P;x3KaM#eclDg_h@7o*-P*4+hBWtv
+zjWyf{`@U(p_n6S>xTdY~=-0NGac~Y_g+3+3&tWa>e)PfkM#1oq-*fL72fdE5JJuMA
+z2AG?NvF6`v$y$1(IL@fee?Vg8sQ0kV?z@)nrHyxZqzV0;FKS!btyQ>>^NF{Bx!N^B
+z&RZSEJ2vhuPoFC>eHC`*xb)HD=(e3;zh!SUtI9Uq+NY%KFBA@5cQ8-g2Rsqxetiw>
+zMaEQKqtBMRoc`~r`o2(L92e*TVb;e!u|C5%T6~n{+sa>2%D3Fwj<MQqm$ltSy4^LQ
+z(@}V_YjUb=?k#m$Wpz>>S*TO|@`YB#uYp!&{B{^R)PV#sh+x0mj(605*sr+kouW@x
+z%b~E<k_)+qi^O-Q-O*z!e{73)JE^Zq{k=htV0U5-PW4AaPKRM;7e>dSo(k$u^mBAF
+zVpphGkqh!>cJFh)9v=P>?H%GB(l?9owfLU*vAB=RIn1~!tCGae=?j{@{`RnUN2b~9
+zZVy8Tt2dM`g?Us>y_@If5qqP^VI$G*ZF+x`7Xcr}y_-C&-S474&-ehm1K~{UP-jYp
+zJF!alh5cY3jO<S<jqJf9V_G6lp14zTcfj5fG*P#b^hFX^A(ZRNV2$3;r`LFnXBEab
+zl06!<Kqo83=C!i!#6O1ppUJv~KSKIWBO!A3zkO-=?2hy5uFu^_d;gb|tZzkHMD{Hf
+zU>y@&$&q!8m{#-f-bi}|+O|BWiy-Y|NaNXF3hT7oRkIaFRFmAfVqD0L0qu`AW8-P+
+z2N8`GMcmq{27MVf2Gk8`Q@UsyZQQB)?1B5j_dp&sX}n<5n&odYt0cBK&*Zj-Ydm5J
+zb5Drxsvvu~m(5sPrgOB&b%gKD+&sS~1-Wm{ryeH$l5ywZqT$}^bN{YR;&yaMY%(*`
+z>OsHxL`;9{Bm{HTH*;LKmO@T04N5W3x&CoqsEy~8u-)fK+`*wBgnW=uBl!%SkMHFi
+z2zky958ueS$-Y%NN2IMLaVniXMc7ikL*U^?!RnX2c%QZw&*!-wRlAHIcC*hmCbZ7O
+zy-oH-cpY^SOPlYLDoz0Bc43jLVtLU%tjw<U>m<$@zLUDqPU}c9DfJyGmi8f*s90OF
+z?~>5iz|xN#)^L%rdx~6_=Lzn_(c-1PrH<g}Z{yC8_{~s8&lJp;7Ac$Y1kJ%#k8NPw
+zxOp1GhrUfS^!~{_!+41M&q?ij#(EvzT}roj#M}$nOEBI`<Xm|z>gwXy7&l1#zS5Yr
+zQP<Tm*qF8<$rzS+mumOP?-kDD#ZoyY%K_cHxG(Y=<*<xUQk4<aWrT7!TvP_npGTKr
+z=)FazEfszMuSh$Fifntx#>2K)tAmW3wY5l{B|68;>ZdOyzct+({V2x9On=P(8}J(S
+zn;B}1IKIJHW5lsBoX2&(BSC}Wg)#F^*St%9qproXwxxP}4QEe~(0I4aw)%##C*qD8
+zPwI1Dg#3zV-rEeFqF#8YTljtRl(%`MdCB?cNIOo*UcO*mI{S-Q^B*FAGoQ@y#MpDx
+z(e?9;cCF0Q_RG#wN5wu<bJbqp6K|RG6}Hli^F-f1jAwt4I&|TDj`Gij{G%Qe(|Fu5
+ztO<gbm)ZzhWTV(`CEvCL><}ZPa5HHK#@wvPK=$`u$ke+nbtXsp@&9_cBc;|r#>g-S
+z*ZSNuXvMp5y3-STpBO6H4zEG(>fBf$K5S(IHcZZ)C^(qTameNq#klb#^txj~slTL6
+zjqdL*$VB@3#f=;D<l_+R$#WQ|n68`WgQoRy+WQ64A>=$(jA@y}wewfVEBleQIvcbc
+z6$6j+mcChx*#J4!Ze}_&W_n%b7<oX)DdXN=y<nXve^%3O_4s{7;%3p4vF3<97LmRj
+zdd@^!X_JxfxTecGPfS(n7CiUmnNF%B^E0laWn)E@KEY$xxTRM>Hqy4FEm`S8NA|oz
+zXt!JVPPD=c|6Z%N{pP72?}csu#yh=8Vz#$29Q7=l`?1+zV<hfXrP{r!>_@zMl+l1P
+zV(Bg~mYL@nsZ0<_XM$KJ6U4Kb;Bw{JD6er;c~endQ(1Wy%Bw?p^(e35HOg~r6~n!}
+zycsBOW?6YQ%4<Y<Q&C>iYm`S?S)<CcQJzy)UIk?6bd)y(<;}cYdEbAVV7d$a9%vdV
+z@1tLG^B?bZ^NlEXdRe(2`-YpJ+fIMdOkkmW8|6E%Q9iM6>n~A0={jSK@*|qQjVOQm
+zYm`qNr{NOiH;tlmsr(qquh;aR@fziiRqp8W;wY~H<uz$~Qx7x@xo?y|_r>=-&;9u(
+z?GLbmxbxaht$=PC5SQoxdEG6HPah7(XO0BpvWJ6l?vY^2Bk%CGJoZknclA5G-tF)7
+z-tkR0|IV#$zVd<f`74n33gnF=Z~St3d)DV`wyn>T?`!Z)4Zf+yH`T9EeiiaoA#V(M
+zW3Qw97|O52H<kFN0^d};M)^_XjUsOZc_Xi*{0Pbq<C`$P3E`X2Ym{#yuZg_j?BP>k
+z_sFT&QT{2@`-0yO8Fg;pho|GojX{j-MS3IZ+<1z3$1yEOBALvocoy$nydT8-9NwdS
+zF&FO!@#OISH{bu4{+>Kwd4q-VNzBPC=449E$*Sb{Jehlgm`ABU@!}cGzub}Fdyu)@
+zZ>>rHDbjX&+=tznf$rJWnXl;V%vZK`=HrkLH7Ktp%Wu^jWO*{zba^q97ki!MaXqU<
+zd6g)yBBkaW%aggK%Zs4A$m=W*bP2*JFO2d+DK*Dfp3Eg(UO0pKlsj_jb(SY{>d*C@
+z8cQC|7$pxEYk3&+h-vy?U!MF}_dNoB45v1pD)D0k{D^h#REZz|v){7~G4S($1%5eR
+z&M$gDgE6g}MThnB2JF(AhKl=GW2pW6&*ZvcYacolat;=$1J^=Ng)Ta|BJoUcee&60
+ziScZ(F#9ap^h~hWdN!Dzpik1X!DpfW-<X39V0_72ihR+`GeM2}Okii}mv=L4*kxX&
+z^Gr}>JrnTW%mU<LOznF7FTNJ^MYo>`<|m#FK9BO_$!9RHS9r8lre|P3W|w>8(1wcC
+z3hxV<XXV@~g#29&eG*_t(|0FB+r8EMT>4qTB8ntdc$Mjua)&61w$&wgC;Azz_s>X7
+zk@eHm{Q|~JY?A$!<>If~kz$<tZsI<B+#7HtZmRNKjwWyR);k~d>cmgGJ0QmKhJ>51
+zmU#3T&qSZArnvd>Y1EOGGf=6YbCr7&vCQwHO<(rncsJEmwqqOGvB8<+eGzS3Kg-QG
+zyXs8%GpT1Kj?v7liro}R+~h@h_aJqPSCxFa7(+c4>Wk_9gb2RrSVo^QWlz)Zt~&W8
+z!PepXgqiW$=X0N<i`dRyVm4!Spu9b9epYP@+R^OIqE8ELThOm%$}Eq5J)sO^$*uM1
+zTVpohThIr#Sl&u^`47V`-+#56A2t>ih8_2wVerea?cTHZy1n^5@7)8t`5<hmgWTWq
+zE4eofn~8p3=XgFuyf^xbx*I&6?_FenLcZ05UwI$#>igaNHE82qQRwZ1>K+ww&3SGY
+z;TguD=IPUJAwmBo@6$g008Ha^1&i`AwK?cKFn~2{^Ht+g70^kax+<QogwFeLK0eqV
+zeAn*CubZ+q-!)~A$#0_RiC0yu?Z`)ypS@}v@)^!k!8<xS^W)aWjCsf(o4P6g2O*;x
+zyi|-No+(C?_zU|k4p~e56*K=;i6LHp<3P{~{_yR={6}EG8iR*0x0Cb_fecIrRqiLe
+z*xjG-YVO_u-nlUkTWzS)_`~}Q_tyIlZ0v-te7tzzzE65Jnd3z>n}94hR5UZWQ~x)W
+zL0?DG>Nhm{4UPVzX!J4AC}vz)XuHide?zOWX~kIXW^So}%S~?n`1#?<lwW3uG)(vr
+z$j>^+&$q8ovI}%w@JZ0r)HH=mt3_Esi<>Oc*9~nclFo0iJw=v*_B{80YdPh#3;l+6
+z|7O}nenY!|Gwou(q1_uQhjNkkb0`~s1i46=NZpe9q=of``X$d&V$cI4+4UY{k|(k}
+z<NKVy^p)Ysj2X$Zd^42sYVd6|`8F?3oe<?M#QS>cxUk7;YYk&=Bx02BZ#F>Rod<pO
+zyZ5>IdxkFPyQcUKs<`weeV6CM&1lO!t>;q5rG86&mvWmr?mJey`Nio<f3f{=VMNch
+z*XHlF_k{V)`!W?ib=_Et(sh~tAo7d8+tQgon2Cjw)OQ;<<ujx7-4ND`$S8f+fxb)L
+z`zZL1dhc)6-q+SsLch^dUQ<u`4Nv_>_x+Eg)uIgj$1+|E{-<0H8Af#szo`rVgm?FH
+z#NxeJ7ry1IztM$%qYM9kr<0WSkx0Y2<iFq0?RE3qZ|L><%DJ3egf4uBGLd>GbxvZ$
+zH;>YV=h6>P>%xo6bm0~=<K1pvtP9V>`v$EGQx6V1ZXrZGdnXf=VixnvqUEQb@?+48
+zXZ_D^zZA#ET$=K~l~D1PGL+Tnb$)%S+i#xk=I1rihksqsv^$D&|EOku!AP`u(Oj3r
+zp5`4MOE8+1Z{imup3(fmCj}>9et|Jac@NsKiOG=-lJ=%xk)>h|$F#3g+~_~uXk-J&
+z-4qy^&4P~^*Z!$7tAD?d<=ymIdrW8V-q2v{o_86>(=q+tNVr4QDR(HAbcbrvZMiq&
+zo#8xz`i=!H<GKZVKU|yfLZF#3)e4O1wc4*~e_+~A1oU%i`5okQTK$mO>X}1$H?;xz
+ztbo2v%qy{7kw28`@agk(3jMBeH+b}Mt;uxKUrGF#%<Ou<%9t-_FCo0={o-T8!v};m
+z#6h5cGWzy?O*h&up=Zkdj_8Y-4Hns1!HnR2yglOk*B>ke&Enc$bA}7sM9x=k@|r-m
+z7-&Xcu={v-zN`#>!*W=LY2EAzp1DPA-~Q7qn|DU1^Q<|uDfq6wOT&Apyw933k_Fz)
+z6a0GmjiufE5*K9-W`h*UuQrYCn<u=}i{-Mxdiu=SEk4I>{j|PfsJ5?YHZ}VjL#DSm
+z6!tQ<y0^f)8WKAe?HIOO={tNM@7&CpPMdAM;PultZP;k>GZO#Ny>C_>>99G-2##yF
+z+|i=HV&ljip8lZnCVjqSZx&3<7~{HN?$LIuC#Icge1e!Ui=2%?%$ei28VmC8G>xZa
+z%<S3XzZd#F_IXjE0{tTIS;P%M8%zD!90_|HBc|ZLu<dN4YQNxZNITc$R2%8b9^;(O
+z^@(2}`xjxGh<l$<7!>R$eVFMVUSV$}#>Xc*6KrG8NE=P^GUg+(SsUa&*M)q^G4k==
+z6#JP*KdW-Q`@6JYm_{}I73=X0eO)(9;XR(KJ>t5C5||TKpZJc4axGpcl~M7jF?S5>
+zi6As>ThTOoi;VYf$ecMS_$_AHyO?o9LHP(C3_|o7G%%;|&Y03GvEM^TC-!G}RC*Zc
+z5u`^(rALq+MS65pdKBpuNUs=`UV-#Vw5hVJO^jJ#2=?c}fai!jn|lm%&e8WMP0*oc
+zzMJ3l{<nF=)8Spyse%)Gv={+hqjr}UHTD)w>xkf)nbuzP>qt<OSnGw1z331A&!G=U
+zuQ84kYf^1q4fCTNHCC4==X1oZ$#kgxGu>d!!Gl4KbF4@|^&013F`8cMQ3ll{*5U6E
+zzQO-)n@7LXFw?Ue@XZkNK2fZppRaua^v?yvPzpIY<T-&SCm6kryo>Afq3wr?QHvN5
+zXpiwE+S%fn2Fu3(Mwc!d|0grL>?d{E$AVJ3OKmQ-w?@vcpVoCht?PbT>aKB~#`_%J
+zKZW;@k<L?i_T$}Cc=iXS`<-<;b-#P_o{MD$=a=}U>N&>yx}0a35qY8R3dG7}M#NC@
+zdpHM2<{tfur>pyYlr<$e(V*o7?-RsE$%;n7)@AHCHQ!fjdGSx@hi~NFX37H-HjBgh
+zARk^jKfHnG$CNF^gjqkOuNbDRo7wDd3WvOnVN?82hw+a1J{iFm?H74gk`t6=kwlNI
+z<Fm20vh9>*Qy~|ca!PjbE+YFu`SnZa2|VX+5Wng<KH~>a4)E^Qk@LeM*OFy&?Z@Yb
+z4~&)p=g&ho;P=T||54sa5nuiZ1>Py+-39v8wwa(^f;fO~e#pvr`{-{t@fvS?=xUGh
+zA<kIpkPmIdqf26bS(^jKfDa{FJOjLHI44mi*VB_1`3+wqzTW%LcFa$%x5i1qcor-b
+zV*BB_n%J=RK6xKzKI93HQBDZu@O^~&kS8)mIboE;_fh6Up6D3mL{JXjS1=#)RE$wh
+z6y@-JCG#Oq<rw8upd8Ab81hsiPs~24us*c^JLM+xQASp>&XmNZ_CzKn+r2@^q<W*<
+zueGwL9ZTIg4Lfaq#BuNDxS8xvvdcGMtHhJ;-E*d`^*%Cxop+a(TX((V9o|&&MTg9S
+z9Eu9AqLN#c{~o#JzJ}b&Xt|Z`ydbv{>pl9ejL5EBn@60mi{;nYGK8{=_x+;Qp<>M0
+z1e)#@Stot4(Ff}U+5wuP-IRGXIm#~d!8%c_NpyKNlK&}P_EWm-r?h-}O61dY@j*W-
+zGH$wHwI9-Q?vR#qheXcJz&L!yG|tcm?9ZUPmgdTQQ~92AzVNO!=Syp?o8NU^m$%o+
+zczf&?Z#&l2?dBAjFETecUx;^@;Ci%4?$1O7W9tdIBS60q@(J%R5u=22#Iz4X1}v5P
+zq~Dc06*-v~A@QYGd8L2I8%EwzKK7M-A1TWhK|b<%v@Bl~`N-E5W%(+QuTpsZa1cqU
+zdk##mL^|<?h;KulJ@kJWzc!EJ*SY@(@oRG#zcycnUwJq39>X|Oul=fQ&7ZB{&$Zys
+z9oMya2ki`a6#RM3HNv07z#v96efGnkscG@vC-uH36c55?y1<u1BeFY242coG9J(N{
+zNBDB+f_xs~%b^i@e1R{AM&$1Wz8o5nw-@+w2r^ZrQKu{Atwdh(<q_~B`$}AidVLR%
+zd>D4R{J8LBvJerT%=qSQ5*Onlo}|vl``6@4tOL;fHj3`||0Pe(9L1A~|ATmPW*JY;
+zybMn!<jxo58`pG^GyAlx+86xcE5m0vW+hq5v1<dLQtxoTmhqH4ZSfvXLI3!`+r8}*
+zV5?ZlpU}u`42bDPySf5$G$t|L-2BI{A3nPQ`bo9b0a?}QF})dSmH1t$e<$#}+E@p@
+z1$pMHZw<Wr5Wk&8zr7CdfXd6Yc{<V~>07<>^!G9?@nx^P+;=ezza#qh+wuGV8X4)W
+zzhH|vcX+%r`?`2Bq2h+Xjw{k8`On}*)BdTpSAME_@TZywe=0o4m?0+kQt{v+&4Y)8
+z2cLRb-A8r~eaaWS){L7^<$7VW_Xd3vn!K*Ndtf`w@)@gOTeazN@8etVRXRLmkWWmw
+z5OjI2-|?ZI;t+Ir?tx`YbuZblHp(4i`m=_!Zhn#7?Kc>kPA@?nORe5O&VcnDKqH}I
+zuMjH<O2;RXPOt1GRa$f8J~|laUi08wzppyvee1flKJAMz<14_v*s~++J&SLujrsX!
+z4C86;Lv1r(ozHYW=I?1#`ihy@<nb;r?@l+M?jPg(MW~baI4cu#{0QoVjc_mbK>EU}
+zES4kXvCiomy&S$F_U+%IPCKdgzIsjDqm9vfPovj6rAaW<4T;&ZS?;gL1m}E7f!H+$
+z=5Rc@){DS4H4^T`A8@Y_y0c*&hYf!xZ1}s1#Hmqx4i94tp;wo^W4ukJhd(T~M94S}
+zoBqzCG3743=kT!D58+YiVWiV$h>S{)AU!H^XD&{UBAvED#i;ZOq*tOnm24N<!*<y^
+zrb;E-3;6-w@Jy^(#8Tke%sYpr`vr{>^BFvJn_8d0_qBE{^VWH^|N0>Jc>k^Ms&_zM
+zsaQf>n<_3L3*u$6pph6_NT=)|PD+&bU9~)D6#0D+?Q4U);9kHnSvN{@L1HlCJ!OKC
+zX;;3=kP*sv9W)TRa9poX$3+%2O8l_nXy2vxCph+oU>|}H>^{)+Xi>1-tv#4$M+KwO
+zH1=RDkE-@qdoV9BUU<hogz=93;(c<ykK+3%`e5*T_CajpgDSQR_c++cbi2fyVPC?Q
+z$iO1?@e6&)>AvK2Uvg!Ap?rA~c^;O16X7TP4&%2|=2Oi*KHBk%7_U$E@EPlf`U&rf
+zyZPiG<1uvyOA{*APwCqojA_Oghp1QVX5LX9(YL@q&T--Sn36YI-$Gk#w)bS2zJ+!<
+zZ2QSFeG5E}e37zz!r#ajEz1{0z6#{4D9a~&jXageYa9K+1%2ybj9-`dnbY5#cEHE=
+ze(`eJHN@YAoa^A(g3%MiAy-3?o%dYV>NV!J1XH~&&^0&8UNrYZYyZ64m%SHbOAvE6
+z_;Uxl*?-^3Yzd~Pw*)hiTO|IJ#GFFDx%J&a^VIHOrb9f5Pxz6+Px|Hyzw3W1r_U^)
+zyUv^L<`Z&Ou>oUu`^Z^E723@+7@k$o_M*-~Jm}?fiP_aJV_xGBe;WD&`nqIEcd%%6
+zcaZGFm_3TIJKY`3o2z1i{czjx+2zg_*^in5+1LJ)Zhy*qy8SrTf%b9Tegtd73iQ>?
+z=sjCQVGNsgr@sev5TAh93MS)=LT4}O>h;8lQGWQ(Td3!T^TTIZ4zZ2F$38J@9$~Bm
+zTeXw;9E_zl!7vWYL>beGPxL~QSBG!nv%Vvkh(+|by!_GMme*(ediX4{;@Gztf?Xmp
+zlJ3Sh-%Gn-W$Bzk<E4G_@3C$&c2){>G_r!zlS=moD^gp6<?kK9@6CdLvLwAVn3v+c
+zl5cw}Q-T9{l$aAqgLhm&TZ^%sx`P$OqEB}R=~Vaev!JU9UZ6fmdWMJGeBE0If>!P$
+z4XQYR_B3Lm@qFu6tWCH2Y4oLWs5{tcsIv-7$HShdaaeX*{l_uKj?A^XkN*heGrq!3
+zNA3NyuC<WEdk5V-<Bssmjd;#{Pdti6%$rhk!NB_70=fM#c>6hyZEbhJ*fqq_XMBSl
+zjP1g5a~*zUS$A-Vc+<<UCZm1!ZT-PHuKPpWZ%p~zua8>G{0jRfztXwcXT0gt$lq`u
+z`j&DF#NXu{;XWYu1G#3C#-~Mh*eck0HO{8uYS6fDNR3(CSXcZ|*qGc<+aD|)WdAl5
+zqx5BS+=;|ZBUTjpJCS*vFwf;am&Y14p*ht(=_bRN{DQ5<@z9_;D`>Q~1`g_~Nh(ZX
+z-fdyr5{XsdeAM45XMVMXV|M=}Vr}fnxwVm@{%GvB{^+)J|0Mc!?6uw6yRYLObVrEu
+z|6$uTn~m;h$Y}Mmp>dv>SQ{cnx;fY}A!2O`;`SZh+G!h$&4b;O9w#;d&x_EuwF;Na
+z4^P=BxFE!H%0>(?4%?RbFO`p2YL&XoOXZ14o(tvdFkhW#0BLWU=N1@is85eIvGBg%
+z3;o|n=JEbs((c7U?!9gec=lRj?=7Y<|CY=g2v(>21S6Yq07dp&>x!F9<G@m`XW-E(
+z5rx6O9P*L4)Ev|2h~YIz+~R(bzr^Sjd|ru5^tpW95cvgl=2SeAMTUwMPTe3hc)O>*
+z=|+CVSB%T~KQO1cXK;>t1>ns_@Z}0yaEbj`3VfShCweDiP@Lo5`7#w(?A`b-g|@Ii
+zslmH~6}i4(5%_u@%AA*0n6cj`X1~r;vyAk+-IspP=lXC9V;dBbdQScp@<wy(U^jL7
+z67QF|^O-KM%B5b?C%6rUip5$@oGbocgRzS_mO2lRSQ6W0yrS~|cKJU&NSvpxN^|g&
+zA;^VjQekWpACtZdKIG!Pq$%~w2xv$wr>8{DeXj6Dwx7PHDPrNQ^uvPh(d82Zj(E4k
+zA3ModRY>P~WE}EfwWILA4GVJ`bD1$hh`+W*;+1v>t04EN@3Z_5qx_fkIY``D=dB)8
+z@fHoY)$0;`#a8bm-wn2U8EFUf-z@hGTm5*Z)vM-u02)S|TA{&j$=Uiwp{Mv3==2YU
+z7~^$|?1j8LMEY%)^ft7|;XCAiS<>&6^k4CR<b7v|^i^fNBJb6C?XU5_#DR2{64!8I
+z#4!c0O3^Tx=UN-VI!-!A25<Kx+4VkS7zjo!c<Kn~y9)h#Sz`b(?kmTaIv{zCSbC(@
+z1IV|OF@(TN=g=0$)LbsQUBcfO4trd0h#$Y&-Xdc_o(sc{fGj-<K6!fipuz>InZ}p^
+z(7_F2o^T9%p(pkfOZ!^ncjAOo9<uGfByXea2kHlcB-X&a?{)JVzrNR-bM;ML9C>z!
+zjE7cee9d>W9*#|tJksTd!RPT=Zhoc4Kbge$jDyJaTH+A71<D21y_&ep_U2+l)m>O+
+zZ=HlW6*ZkBSFLjH!r#^jrnBcN*vOT{B3v#$4htl1+drU<>^p1=AN0wSuKDsgX{dR*
+z9P@Go)@07jB<H4~;wf?*ze4^-8RSQ{KMH#znt_~1-|9zQ=&QOM_H$JtOB}$bxdv7^
+zZ65coV}hO2>Q`E=JcmBR`>b&}f6n+E&xwM&vOusV|7Cc1J8^;d|BJ)J8$vq$=lI`%
+zJ<k9CQT{(HwBc{lo!vW9CdxYt9Y%1c(C0-G`*#83BGaeh-jv1%Tw!m59<o{RVR{%V
+z(%l?nQ`8%&M|Ak4J#~qW`?Nj*J(apdI<qxcmB2a*x%iT{#ZBlJa{g`H$k+={Q@3Yq
+zgQ`@USC#Da6h_u@ku$`1HJvAlY&RCx?J1F=SijP(MFS7pPrEz@-H<*gyr20J<v3$6
+z7%KjwiMhf!K5_JknC8UPdx@CX#M#fT_fBg4>ytW`ZT&|Fg3;^G#2&T&eDVD7Lu|u~
+z=<lk;Cg||Tq;0pHAKpM7anLsMNh9dB9DEYhaRMlx8K=pmUN)%Kow&2L7*DSgUx)Z@
+zj3aDJmi-jWL&lW5_Ve!E51Pi)OLffa8KzOaB&F`-y1awyY$@)*Z{j&sq@O<3mr?N=
+zDh5xS5&&;NkiT48&^(55s2)_Y%8m4weCqbRzfAp@XPZqt6J@(}JODFyG8ncq{z33`
+z$Xe<3A>CT0(=pDEGFD0M=^%l6PcRmexus}WCxS<L&)8n+S<uyZ2RCdjlh}~V7iG+f
+zX?;c4MVUi=#l8%_o3f?&yXadK{rn2nXEV`^`L;Cw1xZ_wPw6x(r{b-|Q%@I%t&BfY
+zFr;qr!b6*i3SVe(KJ1(*GA4@bWf{*17U-jbQO7u0{ee0sPI>zb6)S^#s^MwbqFI|Q
+zhNfhT{~bC7asNMT8V|8f6aPC%3*qmzI*ofiani?nx|rkMlX0S$Lmk6bhriqCR`}`8
+zO<oA~hljQl_oY<*A+%|?w4uYFky5c%Rhv^@c-j`UVGG)@r8rKv!76J*Shpdn)3~3J
+zE2G8qGFmj2(c(ebKYS_(Yg+6cgBA~JT1+2B3oxU!14_Y2JB}Nw9Z%{sTgRs+EgsOc
+zctF#Fv3?y*i-@MhgPIl*v}sV&!nq7BzOUQxS7mM3soQX`PNTi`Kp8EX%4pG0MvGkz
+zF<GAi4=P#=jzNoEnifr?Xwk0Qv97Eg-_Y&&rcUE|$W*DD?db3&hQzW>MTu#NdMikS
+z+=(LV-Ze(uVP~bBj}ZHUbHuFeL*0GF#k%er%If~GuKPNj=8653@#)K04H<&;ryGof
+zPaA2UkuFFa5$LCsaj>JSDa%U!av_QT(mSHB9DQXNddN2UeTe@<cR7x~#40@b%J7*N
+z^qSQLnNGWfF)fH~)o5jv-Ga5OWV_G?DYsu}hy3{E;mKpkyglcKt0~{!^m(k4kZ}*6
+z*K3h8TV&w=q<eVi{P3Ad$oK*DzY?<HN08U-JN*XB`;YVk)v(E{UKxHmomLp=@nys#
+zM14+2kcMmwy~47t&o7s<7UusHWwD$;8CG?)=sMQv^bVv?zaeDo#6q;U$}n!d<(6Ca
+z;V&@(R_Zdosq_B6E@Q4PW06i@DCtY{^L74@>-4!g|5tVXcj)xD>-^Jn{sx`?W}W{-
+zI{&ZEtMr%7tNd@)`TtR;|AVI6WS#$@PJdkI|Deu4q|<Xcy-DZ)j!y5F^kn}1I{#*!
+zz6t5%(IZ$BnSL1Qf5&?WNV`wc7UTz!_7^(e8J+KWq!o3(nqif%8hwlnt9-MERlZqB
+zyKY$J`&(V!5Ap2}bb0@x%ljqLUOZ1c{ssBl&JQ18zBJOls`IVa`8tu-q0_2$9aX5K
+zQn36N=07jrF3c}Qz8iJ>qPl$%j)88=TXou7kk+8n9@OpoYkd1x#AfAukU4di%qj4l
+zvKyR*qT5%#!ujVi&zTk4Zuu(scDbCVKsTapZM1tK`Y|Biic|^P?|SH|?ZvQ_k@(Lq
+zp$*f^%J_iRn?q^(BxCNUVE1KP{ffJxKf^v;sq<Cm+@T7~9fIDxw*lW!cUg_LQg4<s
+z2<Tm_5_d6{xac<_t$U@p51EF&P5kf7X1qU9H0@4_LujTSU59)d*kAfk8P1+btdDx<
+za={k-T%P{Sw4Hsln|Rb!=nrigVlB)5R!Z%SaBpjQY76X;t+I!eOws<O9jx@`cj>rw
+zNlV)ZiHvWgQhqeuBABHqrPCMK#y4quIpTDBm0Gvvxmbn8vyBBMo41;J^aYz&rAH;c
+zz@ea|iwfqX^lx@_v|cWHbWZEhvfr>YPap25(bqKE`4+(&_V&IL<9sv5thAr!*qeh!
+z_7{ESIFxk8B>L;3@2k^yNgUhTUQv6&2Z@J69UM9){TGNWzC1}>_07Teu50&_9~+Q8
+zVA>?a!Bl<?t$rl&ZErkiLJZ+0v|nKFCwLB?a9bJcg1G7_$nzDnrxV@n;DHU`>B0|9
+zV>@X~9OmVk{`W#pGp|+qbo8|ryNH;y^u;sjOWf+m1n+j4C;aRX+p*0j&hQ%K=l<jl
+zN8JrA*?dck{^OwKk?BVF@eL@SF&4!~IH~;giFw*1*rn}4Z>HV--WIP<`lDh|@(hH2
+z*ga?u<2@`wJqH=n4)yF~U-ce{>4ZTK&<cId845#wo8JE;-p&$~!@gz>rAyF1k$CfW
+zfKQ0iyN%}%_Qs$`+O}5o<Xl3HUEJDKj2N4W2fs8BFxHCT_2)JR!{Cz&rx$tx_grrB
+zOz79bFSVF+(>50~paJy%-muf+QLl*GZj0HJ+C+PIb133*Una{KX!vF&%4IC;-aS`)
+z%@Q{vi+Kk5Ftib6Z7jx}Ya~`P_o$bF|G5{{jP~tIsyGD+u~B*g$La~9gP04czG5_s
+z_1kUnDvjIyn032gi#A~1F;;6A=##b?=j>_NUrz^>)>A<&_Y`ae)M?-Bu}=-+E5FhU
+znVX9y`V+RY9@dy@`cZc!Rg6iV#SDWtsJ}@pMzgQD3iCA^GQ8ja^zhjPV>@Ns`w|)A
+z$uB8fg|^oaH%j*C-2(lmV$SiP!lEzWakSxypo%fGH1=;?;!3xAi}no!$>xEeZ|`2O
+zXZ9X%U0VDD!I%33p0jX{nyHWaXCTYdpdWoXDc`yrC9gsn7nr^{X}#Cf1>WF38Tb4`
+z(5a|P5r6)o{#oVygAD{-j(akjOv8Hwc~>ybC}X1<i}KlAe{^-OJNnn;DINPGhB>({
+zp)jEP(4L%NtY;uIHy793JOEvGb1{<alktlrvU2`j;q(<b4jhA!z1-uS0@M1EH!soO
+zOWtCAA&f^>;x4p!s|637ytN$7nk2k+1$b*E%KYAY+da-7%CAiar^p@hzR=Yk<2lqB
+zn*-{1p&{tV)3O)wSO<A5N8E7wJN3yKEXRcXBK|OAtws{yujE><F_#T0Qk#npB)Y{X
+zJcYcDkqz1)U#80WW0%L+32oLK@tKMyGu|%H-{E^pmnG-2U2;E$c>45#q}|OuMEd72
+z);Vop#%4BhD}BZup%3yP?IGmZiMoj)#`B|{Xd~mA&Tup?oqf0{K2F5Y&K)meTxHIZ
+zw@GK(VdVJ`c-Mr^PCox#j3NEKcJn)~7xppXgApD_x!I`U{qR$Y#}fwmJ6U*;Z2;{C
+zA@><0I+N`WcEPqMzgJ`w&)Xs&pMb1<`jo6|Ja=Sl6ywCHu=UI-;#Ef&S1I?@DHX@N
+z&0Ay+2&Pyzyw{sMG$1tY+q1`ekg>y@hfi@nuw3egaeM!%0J<~j@BrS^M%u;Li}Wu+
+zyLac*oS@9rnC3qBBxMfCzDu&eGoc4GeQ9%LKwpmMZqOIH^<?rMV==GRIMtSvnasQT
+zyq<i%P4Br7^M9YlevUH+pu|B@aqhSt=8}x5)s4K&*BwwFrQhie%52JIw2OWdjCs5R
+zd2czd_ID0yA9?Pv?v}U?^o2O2$7z`-XW&yd78wJ1Q`qo&B(Btg!gc3|H~b_1ubUGx
+z8cf5ue(~bP>BM`UkEF8Xu{>jlnmi}Qm`ybXCZ#h!tmheMn3&|bjn6U0%y`euC(iZB
+z9&!wMBB?g!J6&Z&GSP&QVf)nGB=t8Ud+}U1TjWj|W9S%;y1&C%cy-1=)XMxY#@I(J
+zd+xc-lHby08peQpr^+7t|2k(NsIvzk6Ta<*AXj1-m(m@!mp>FTa!`0Km*<4eBeD6=
+zUbdqS?HGyIr_<`kNNdn(^(eo-to(?T3CinOjXHLM=C746sq<Z~y;EODo`}x#dfQ)~
+zW{;89sMCm3tkO3L&x8!c6EVDxU>&BdDraO)TflYRLK^che~GT~QEBnAF&~}Z!n<F9
+zXIXE0RK1M5RjQkQ1msD^?WQjr>ku8-X^S!r_2~Md2KRJ-c$%?NxDU;Gqn0Z7qIM;@
+z58NX<cu3BZbh&ohq_O%@DwpN)TfQr&(b-G%rSv|ozAMC%ZI><^YYfNuvg1D^WIXs9
+zeD8hmwe#$L9eK9tJpa+WCRp}NSNAq~Z*6iD<~`q?-AX^o9+ADj8m4{PBk?i${XCAF
+z!*j2;pd?2`&LvB7ZgGLWdNUw<K+o6-l%->*R<jImn7`cuX&uo%IxL@MH)~!^mz6ss
+zF%ZlEZDxQ*v`xavo?^)9DRR8%&-UAvan{B=J2xOP1LKx@mrnff^vO>SpIQBZkg*$`
+zI}IAn#Ip^LgK~NAsgCz6q3b`&c}3k(?sqbFJ!5G01u=<(#WmE;Uty{KPnG%58~g?O
+z5z~8P>|0p)Ny*s=`#}sxgMN(d!F8V;J{!khwyO^7i-Z3CN3@~)4Yc7cW3-_WbZac*
+zJMx3@9>)><SNlnxXQ;TS_WKndzScL9vTt6PuH@voS?_ti598REQDcaCUgW)J12&J5
+zx-gG3>49KG=Gfi7;<KxvfAkc|Cx2OMoRzq)$^VDBs}GK=y6*SwzLg%%!#rD3P>sku
+z8$m-c@E{~*f)cMR^X)%YhS-F<bW8d%?X=B?FjJag%F15J3bDw_`tk%(FX1DMOA8%f
+z#!%C)Kgx$O4K9JWp3v^Dc$SbFVq8;5gS|b!bMM{vwAQEXbogUuci+1o=bm%Vx#ygF
+z?zuUGWs%AcjIm=}-GmQ(kK9zA&~<ju{NNZL>J$A<#rGE0{EipLo+WtyD<bC#%aBBS
+z3Gf-bw=3tRL*JL(Ebo*xJz8Jr!{@s3AsjU22l*~R_)T%wp5@?ohJI%hJu~z^!}JVf
+zJMNDdq_*fIx=NbI8{I)aEaM>Go9J2f7=DWQuj?;;&jC(Tz&+_<Iih{Gr(_j|e7^r7
+z|2JfpAWluj9f@2I*Kbk!2IQ~f4f(IoTyojZG30NIl73>uImavP^}i>)+DX|Sd`!S^
+z40Om3@pv#kJwJ)h#}ONImJ`s|CjHt?3{~Wi4O_FXJRxNO)&i0TRPKu;_i!hn1G;RI
+z@(X*n58NbW2j&*jhvf{}>BKj$(mSj%ph0;6<!*%zMKtMxOsNCy7K++*3(1KVn!|RU
+zWC__s;5~hBF#97wANn{>u0l8ZUn-S@dA<C~h;V4qooZV@4z*RdLbi1q@zib97UHv_
+z9_~oZavX@(<@Ef*TsIiky#b%|{h{(sW3>BtpKO2WO+i2Xs-J|5ef2Zb&*r`mPJRvT
+z-yLdyzbD(5d`bL)I77?__-d%VJNm;k@0>()U8jZWtUw(qzj|Q$^2-VS<uk~*76sR<
+zHwN%op44+^laH5%$8`DJ>bRjgTU8x7|J!lDX0axoGr+S=d<Pxs^eH*Ig=CXlA2!Fg
+z#TG*sQ}G8&nBTEB^zpd}$Wz!`f^;OT{Tw^W`q+A+3GtBIMbEn+pGY2)JfyV+_oi0M
+zB2(#6`0luoagCURafjp}?zgq#z5ZRMm?*-ZPWDB398GEr0%xfBp0%mR@)7Pq4YhX%
+zwFkI0%zz*80&c(yxB<`a5<FAEtYtgjGsFJZHFd~W2U`ty_tBb+druMb$T_tmgm1`8
+zwArNW#i?;G{ramB4}?2r^8+-uAM~x{_ey4tekXhQ>;cXuAoqqy4fypWvukMl9Gg#L
+z!99Ts)IGA0r58rUgu`(mYiZ4Rr~&s2eLaeGaUJnN)<44eEN<sD5$lhs+ISy#%Bs72
+zq6!{My+eGe&hdeFHeglnNRBUY_`brm#icCkr<)_)^t_v%chmE3lI=O;9F%vYOvjq>
+zMZoDKO1N(u&yLW4;P9gx<UFCi$MwBQ$Pv&?IzyBD;7Rn#mE}2Xz<Y?w9ShGTqM1wd
+zyjIS=;^zitmJ6(huzt`}G7}d_9hU4y7rG4YgP;%Yg>dLoPoGBmG|{IexsB;vge>Rt
+ze%t(-B*{Eyko0$2>+^EWi>Y-@&WT~3htM|w!@)};;$TGTM|)|kd$oS#D*XsH4Btn4
+z3+vPua$K3zW2$YRW*W0aW3F-eY+bRI@ct6(+Fu)qC3D8vn&ytytCmi}E7oJ=fnViq
+z<M`yL(x37R#l&>FQ%y*B!n@3t^2FOji~dU{>rtnR<L=YI@!h{AajfPBuN8pjB9R`O
+zs!tcs2$#=cPGXL`fO(m;y=m=&PXYRyh8ZvdhTl647~i<~%+7<Z8z#?#e?9~A;H&eP
+z2N5+7HeXz=PtP6yUz;cX%O_49|B25_{0~#z;m|s4LwCVCO!7#}7OclsG97_TrtcEg
+zP#!<6qfx@sKSrcX+kHLh%4)s(5a*6&veRg6O<t$pNFTKI7PSGp#Oamx%v0CPZ?-=O
+z)_Q8BpJ44jO<1!E)}hmYb-RMq&jv95!Ec^982?zo_!p-EV~2uqX9&jpMH0q1!50td
+zt1Pdeud2EFd77t)88i(s(Ui#0Jf)Awl$uD7f9Dgam!Z9;dA4^%oZQ~4q4xG)DBGLK
+zH*_zRX`IDZd7COz?K?ix-!sARljev>&En^JT9rAued&ufX7NR*sDA$}eXLexbemxx
+zxcoi2PduAVH@`U>=;ohXAlsj<&R0WqUQu;svpKF%b)LK~WYf*DuA}Nc6smjM1rp!0
+z!D@tHZJJ}9W8V+zj4hLOW`pr9Rp;&yjL$BUb9c7>UJCVh&m8MKAF8uT*CBhpIc(44
+zOgr(e?MnZS30bA)l0$WdBlD~Cv!$|*#dj{R;dl}|I8U*_6xg3njO14278&A##Z+ez
+zba3dbWGhF}hAwY#PQPFu$PnKqxtjX|^8$_4CcB8`E9t)Q!&>ltlgwm)7uinQpCsb_
+zZ2#d*UP}2@tQqRssxJIfW>sCBe*i3yZ+cG(XAMp0FZACMTjVo=97)-C!(~Ku8LyZ0
+zL(+ppAInnq`w6^HGhQqYy5W{lluf%4k%o+;Iw&8M%{GMF5_4$ls!&^Einc7#QIg-i
+z45#I)G4R=?Y%GF%PpQsXtfPT0x4_r2gv+Y`^xH5wmsVormn#2YK*w9)3)@5b&YKUf
+z=wsS5jH*29V*SLofw+ICy%cT__gQg%$yU%Y>qitFqog-Brm#ORb3q#M+@grMm0=@T
+z$3aWP8{l4Bi}Wt6o4?KDO0c~RUV(mBqvnr(M{{BkJ#WMq@cwlA)wbev{ldRDUB4JJ
+zeCoIt9k}?j_%_A|^l118`5dgn`RLzVfE<0GmopsGv0S!0%s$MkiJze>+WAaDkX`;H
+z>CU$Dm+LZ(Rb?KbGNhA?ulig>G>slF-$S2Y2Q1&611xC;%Z~FS;!%R*X9^bdc{agg
+zi_K%WgO|?<WB(2DB<$}E_IMnY3!U^|?ic7j**6kT$4Cc{9i@3j^cmOkMkI*$AUDX)
+zFyoyK7L^12;iIk9zCO}*K3PR_*Bj)%_+EI#++sYW%cIOO^*$C4-fNvm%BE~ZHr1*<
+zCCs72TyKEok*wG0e+1q_Od0*Q>64nno`)ay^EN3NKTDm1p*kO*C+p0%-o2*k>{u1l
+z-K*+Kosr}y(acKp@E(NeUC4Px*~d-u1pEM<`SBC*b0kXOmAEN&<wqD7lgl0>T=1Ti
+zvU#A3J4)6+P?kOt#0sGPWvU$~{^D46Re9VBmEBlX_JUB^PAZFXHhl6l&UXn8tcUd?
+z{T}NfiiUW{^PlK=l-o=2I)irY_yErv)9r7dxz=EcOoPpPDLKOuoiP(<2kE~}zYUcO
+zgVxvvAvQFaipJG_{Cia&mg+-LA7&hNGYyvN!w&Ufh58`)36`J_$hlYY+jt$v+Ha(!
+zT?<-SoF6vpQ^QN1fIUk1!5Oz&#AXnW4uNLrM5%%K4tqYhYogEJx(a!6<Q@i}!HkKC
+z8g)(_wk!5Uw4HtH6zz7Xc5&Yv+RTL7v#9=2Q?_UF9^;^IJA;+Ae2jRx@Ec^WA3k2b
+zfn)}+f3EU52;il!0kj29>sLv9LVh7O7<8SfyhY^=kz)O1wz7lsZ2SHx+D@r`ZJGmy
+z9q((v95{cK+8;u^4dLLrP`%U)_0FlPcV|_-@IE2iuyHAa^nUm6C?DrPwUsCI8iu{;
+zf8bbjDc5Z1k6KoUKGs9Fo-6f`YS}I09(q|;B9{r|H}YKs`rOHKdp>P6PSeH_)kZWW
+zc?y20vsHYB>GYIrks15z<8r>Szt<bA#F#`y|5#LXj_LM}Fun<AgrjeAtbMM?x)<T$
+zsu^VFjuTQ={y=^INn0R0v!9I!Zw_+zN2>03PXu*WtGbAhV1D;hED-CA?HrekXV4uD
+z)>Gtr&@GBMUiJUuhKT5<0`skxSM_YsI|g|Im`$}$#x@w|@y-?B4y`k@m3=K#Rw&)j
+zR5~o%(+cN^@u2UA(|lJ?d-0QUd7oa>J<?meP}~Lf+CW42m7C~!(-bim_qCPB1&zm4
+z@fPdZ-d=;)H^^z`v8bCnz%eK8hTXsq{B#8K0s8EMezd+#$^iKJIOd*o3Y@8qIWk`8
+zgOxHqh2wcV#A)vywMD<*%<~~r(HHI}_#me_#z5S{{!Ykhoby3H$R)K%wJ*fFI#YBJ
+z9LQPzmbS5$)F}NEK1r`F*keXsnOCr`#JhZ5M%od>qvJRaR4-|IreQdz3Wgue0K?OD
+z5{CKW|C5z7<G*(r{O?^k8UJ{v<)fkYX)#v`mIH>@xf^=`h-D-GKR};d$W!x9sP7o(
+zqC(8uT3Ube*lTJq6PbpXyXV}~>0|Fa`+zP68XCzCK5xdj1MSj`a|^hC3T>tmSeq^2
+zh<L)snICHFxtJ?+lLLpfRJIj(;<&flSVly=mq)oz@8xrC6>A6C_#Bn9k{RDlWqi;U
+z@+qa`3&=J#5|U>L#)H!L+0W-_iBBIUT2Y_<zTvcTj6QgCKVmXe8%DgN1U(0`9D0$h
+zWCZ#hS}A46chEnr1*8-CGM?|Q5#WJsyClaQ7g>i9gF27I0{Auv?<M#x=-rpG9$+5<
+z?MHzl<m|y+2*_FN?iv+w#LECz1UJ?Hf|^4-Uf7F?oN<_RTga>Bs84+(KMv;NYpmA|
+zLT4WbZ``ml(09;h;e_N3$rp0m5jEyWT&`iTzc^k;>4zMHLTwyuC0mR4V6jKCdz5S%
+z#sPGWzk?m7>Ks+R4;}Xr#^bdsWt@<$;u)N2%3U)>Iice7_>7c_(F3p2yT%bM+li)6
+zw3f$NzNE68I}iK7n1hJl!I>=jeGs^@<3qlg9P-Pp;9VM{+8=^0TFbUsH_h=E#}Kz8
+z<<**!q1JlYp7cAxjz=tv_6M19_<_0#hLb6+RnI{KGv7ya?elAx_US^VRld`-H$i*o
+z-0_XRmTkbfrXT91n0}r7o^<$eIrn9(0FB=;l#cayE87`GljD(c#eXdaetxETLbiE@
+zTJte?Cdz@Y9eDnh_lv`<ztb3No!3?DDDf-lHaMH~yebd<+o@{zylL7MPOplwY#-6>
+znQkx1hF<@%(E1#1%L=viez+~o`<M$!DSu%9-d9%Z0r3Ige3Nk|c`BuB_GmnJ;D5{I
+zL%{KUt-<<%@&k%Tba{#6tc=TpEe(H#+;1cq+KyPb?YeAI@t@L<N1m<f8~uGF)E~<H
+zmFn;3e6~0=CdH2tC68|8xr8-_=1^kyXqd;eJ_8%{s<PxAq2f__?jja76~v;}bKLR(
+z!@p377l0Gw9>N@HM*ZZb%KCXpS;eCX8RvE%;7ts%UxW8fsU1VKm9%^!gOc%jajUAQ
+zWX}p7XV9+pQ&o?dWlo}x+mGQK6XUeMf>X%tJCu(6%M-y^wGAqgdaP@iR_8K|puwP|
+zSEB8QX!|^j8)r$q{HRFE@ze;h5B2mKR;;wY$q)P70Ee0AV)<|lpIdFO$d!qBKwt2z
+zp~j8+`M8wVBYYQ1dr_}lfO7$_8-Wbmje1I^l0A+Xpan~gOP`ME1v<r4bKsd1ljlHn
+z8SvfqP?>6394?oeqFhSxu;$T-n_I+jL87x{=(40kSp+xc+mrD?zkpw}My-Ks=sENP
+zQ|V0+Z`bIQ{H^RO#A|I*cu~INk<Vhi;{5~CSCYH^uuR37VdRAr?mz=QkD1<v1~a)a
+z7R0vGe2xe66#V~kS<2W-%s%N*A0C%|zN_L&MGiStb0g6-=R7Jxhx&7BrzJ(UL1-;`
+zmgg?%G>QBD+7xVA;=A<y{sQm-;y6h+#qVf(XcW)!Y`-OSR2j1`^|y$OgC6<Mav%%;
+z_Cz2Hr-SK+DPa2kDZq4f7^Zp9{jzE3{*x8c)17rOj{R;g={278bA#w%=(y(hslMT*
+zkw3P0mdLyZ`>rn3m#OWCL_TIHJ^kk^W?nlW(~lgNaUqb|1g8;E{r%etwVo>6KXqLC
+zF7$fxD?Sq-&p3aKSUjS`dn*Dt@T#&&KB$)Qp}r4H)Aut~eP`#;_r6fy+e3XPm4B{c
+zBfw5h!dEW+@MkN$nQoWzfxo5Cb91}ThT829*;&#ifbBaxiZfqcjhrv1+uznufA`GL
+zUp{tb`nxyO-})K)OT<F_p!gFq=RZRHx#xH=-%b~<wIR5^Gy_~a%mA+0c<B5ocxdH{
+znR%!w%tMg5UaznBW3eZPyufDYnckxfmo-i<TTsu~29SG+^4pAG>g)B$%=fd*kBarc
+z*LHgu#+CK$r7Pu`W9LowF&X*Ii|s3Oi|j>h4*MMQnMyqx#|w^7_nBe+$Zy8E%!1{<
+zNjhi;`?ddvc<2MATRX1w+k;khE2RDfnPnyVINulA({#X{J9=GygXe*=J-yr`WXC*4
+zHuq!yjhtDKc~>IdZ;LOkXe&hBjzU!Qj+*%`EH~|Zrb1gSD}XEX$-0#4*PPUE8uzwM
+z+2^r2_8ImcXg`{*{AdeBdaRE1C3zlgp|UduF&Fa+C*CmAmvr#$B0ua$sJ{sJwYd;=
+zhH<vPa@IrZ5zxmhr?&xqztOVH?J?KB|MCp?jq}w<4A_k%lOvdOn+q1{lE#|hQRo)1
+zkFmDa@qK2bgONT=^Q>rdKiN^_CKpbw4*bjc1JOS6qwg9RtuDuR6Xv@)Pb^})Sr<0s
+zyks~8)`#`H&PLQ(n<Hx8B7a2GBiK@;-`ok<)?v;bf*-*oJ0(hd5d}{;{i6|)DZ~g4
+zk<Zm3MjbYWeZ}DDRAtzwK>UDQHXoMDFBGMYN_tc_W;m^jmA~eY&Ah~R&kL1(diXd9
+zE(2p!aRaAR7iY37F%hzUi@VLQwBfS8QfY^Nzu<;q6;5tz1IH$Gmksd>6~-Q46Z^Ek
+z!MT(i-fM>Kll9N$dmG<SK1P;XhTLPp*&Z=&sXQk!-n&Ikz(mn@Hz1cxWh{8ku;+U#
+zG-RKYgEhW4X5?2dCR!NK&9HC4wy&BSB>Nho@eKv|!9fR8#*tIqE+6*CXJ{_fBUb`)
+zK(XD-XGX?dg3IO@LhNe_rXlJvT&$CI`g-p0oqJyH8N=KBLp=YuEcYjoXHwgvCqnxG
+z%!i0Yfe(?&d=z?zws(4YUR(6JFDX~2evVJlb_@D9`w(NaPNitfVjXfi7b7|B?WG@E
+z489?})Y3dPe!s0y+rF}ZJX^T43OVDEn==Z3uNWpiew5aty}spcMXtgU@(J0A&eG9x
+zd0)i)(}Lx7Q$KS2(iVp8mgc>A#LQaQOT&J01ZR{8*JRi2OuR&EPnU1vZd9Vvy<dU<
+z<W{!PVy--!h4s+L)B3>qg>EG}Z6rN=qi^N+Acp|v#S)A2ad&CCbqIaO3fP;(Ikq8x
+zA@YCYygrYmFBl8elesi+DcXexcr4m(KGiYY{An8l?sQE_-xc^l#4#Qk3w?IR^T^9}
+zsFuc4OYk>+1^!`mCT<eU>!ySmYj%g|9J5lLz5!U_gA;>efHRs0-#j@c^TSeocfSw#
+zNapQ}og#e4TK=EmyEcHYUhT10!?!d9-~MUftK~IoI{3N>zAlE(O!V;iNj~!fUrO$E
+zAFx{K9^a%7V6GJdV^hJc>5enDM>^*Z`$L~1*iF6f0iU_@_Y*yyfWCmc=I?4L%X3F*
+z<<F5hoH*_RYyC-cLIiNbCWqh2QaSw30k0KuBMWK%Exc0l+d`~sUboEOQZ4_$Zv^u~
+z@Eh?R>9G6sJ_LM6e*`=dPDEPz|95(C6vK8XwYSJj&>DnuT#2mj!2cG{J?zA3y%4R0
+zmo(oGcRRJypIBO`QTv<E^SRb6$2sy|8t9^YTD(_AI$A{^Lyj840ruByPviX&J{u?8
+zJ-+t0{1kCHq}TmI``%N5FZ3b2gYRCfMf-<LYTGQf6(Eby-pM?)b`lR+N$HEL_H_YA
+z=eNx66GOSWDatXNN)Dqe<_2=AU&3~jtQP|f2zHBLWf>ll*IHH=ule-I>1Lff0=6rS
+zt2vP_vHtBX_M^~4#Rkq(E%#)_xZHz@mpB&Ta=|_`<o{*(M7;Db*GRlI)0pc;S1EZp
+zVnMn}50(R;hT0pJ`<BV{yTIe>#5RA7?CE-uDH)fE37jXuxq?^%=UQ;r?!YML8h88r
+z9e3_6UPXHTa#zyk>2K{VHYYQ_m&*9>D4QH(yXQkgJc_dd>YUM3eZHppeD~5*?=v6j
+z)2!;VQQl`g(&(y~w)ir_OS%L;t0mmvIqdj)dJa6{x$V79a<a$2nsBz`uD6SjSKu=z
+zjdMY`ua)cowqG_DF#lunF0!JN=<$zU27IrBe!s6##ZAF?$a{aJdx6gms(7~LxlR6;
+zsNH6F$p22Zd>C_JuCyPgewxM5B-&qhjXcwM7QxmW-^4M|7tu2Z`-$S~MJtjXv(o9(
+zS)9iJ{C;D}ic7y2=I2JDL5=r^1w(wB?88h&W;Ulc`N*wtWD{c9ZXemP<z?7i3$Aj8
+z_|6+Xn|~$m?U$lnn(T+$i#we?$m4N8+f|$7*+-mpZH7NV?RjaRv$nr%b*@!-g%O;2
+z9W=zmj>T^kfA!_^M6)}<c1JX~f$Xv$_{N4UY?t940n@=5)=s9giMwPFqfGGQ-u4F4
+zbIn~_L-t|sDDnuvK7_v)^oB3i%=h>=()d5)$a_-02|99|(m)_vy$;S9XptN}j2ukr
+z+~|+V4zLRZU%rEQcRluqx0}S5l|KKEy=wuEqRjLCm}h1T!^10%_3oM_@)Bfltt)rS
+zDmnolt1LH&u&h#XEO2E{?rNyBYOO2ksweZvBn;eypdc%x;{$Q6^#=5=Ja^SZTnqJz
+zO}So))SCOclTO2Go!rB->bNrZ`+wbShEX9Q2@*FJ?d0q3@BjV3|MPqG{|}nb`Uj6W
+zqok(+-c-Pg$$}OmUetoe671>A6l;`Xqbo(znS*F1KTnD|#Xq49Q7D@KNWK8{<7+2f
+zbOx%(&*XS#Yw257pL_0^=58ULcXSP%b$-j+t2F-4-K&Iep}j?C{b<+FypG2S)Qw&4
+z8OAd-Z&e_7F~~aYb)Fsk@Za6_8=C7y-8d}%#736m=X7>k&Y1$51Fki^b9E{AOxIP+
+zd7svz`1nL<L|=Dsdrtm`&Tms}%o*@cwLD+%a?`<S_YjU<8WY(nCl(;fT5>|OL-0Yq
+zWRb@%sRIr{S4UAc&w{s<yLmp3qern8Gu90ETv!axW6Es4PEPSoe6U9$*Z?2Jj=+43
+zV*HH8P7f~rqMg3`d*|Be|5@zVY1%KYw9}+7F;8E-{YuUGZrxk2S>S%#{2lP|#cA&v
+zO8`5X+QHkVJqbFiNn?crXB~dh`H3jck?pQod2@NKiThvJx|f`9u@f}kK0<3gG1rzY
+zqIiy=`J2G=2EHzkFn;HLPw<I*MuOT5#T~mMq;^<oes*C$UjrgM*Fyf@#oyc}s7@bW
+zPjxtZ{f@mhXy3%!kMjB%t?K6|-*xOh-vdPd3U2=}j+#d6y&iw5&JAdj)*L<j9|it*
+zy7&)Jd{qAT9^2VJpmpONrq>tV57>vlaP{H8pbr#xoyW(jS_|Q8Iv<My_3fA&_vaj&
+z=Z@Q^SL8LB?w(cm`t_>YFB+S`4w`YdU;KLoH-Cy;#UsI8@A1w~61=mhM`yC?s`tFz
+z`PP&Q9BQj@I8cGZb#D87t(Wf!(zq<|?)5uy45;qE;k}PtyHH0t$=yDC>${}e{M;G;
+z&c!*`Ayu@QuIl%H{;$VRI>(qbopZ$dt><u`Y`pjF#xKq~I^&%)Cz!v&z0<T7_a*0C
+z%O5#wRYFBPD#D-E;0YIJO#1SvXV235ob%tAdlsKod4HTZNg+4Kl%ysww!@Wz-A?ul
+z_|+9m(oinpD&wBsGZ0X2Vu92xEUewiYRb2>8uG<mSr%c<thzpY=yZZX?^En`Dp$j!
+z{2@WM^Bj1RvP=9sQK(5#oWZWgD7IungdJc4`|Ac@J?A;-xPg4c8p?0u6B>ypYXa)S
+zEQNa8QXg0}zfv%Up_r7SdZ!so?V0)u8Y3qjHvWjdc?GUg85isq#liHcw=*#XyfolV
+z_yM<I>Q)v+-$a$;I}k42#wZ6Hz58H^Vum`nNr_xv82CtuU#}4;R%r4O-iD<1IQ``7
+ze_k6sZW}#SZS<VKjbz?wBl(8YhU#ZB#$6A=MpIns$F_G^kNvE};xQ^1AO9P2c{>Y~
+zx0}zF;Y-WlueR5gN{`w;(Cm+OT1)P=#CW4M6Z6`uN;`Nw4Y{0PcLDb;ln1H&K*OF$
+zfXx8>gB#0+P-e22TxZ?^|0}7D@KcSJ80)nprPmtNLgrv8Z2FT~CZ*Esk=FT4PHJq=
+zz6G$w1-9?Ub9s#XefQ2|`!>yG!Bl|-k}d4%ztN3@8_BobO)*q%ll336h;UbTB$erk
+z2!DGxl3HFC^mWd?q~_d9s%64oOs&HF={V+b8r!ESXs6MlwZ47rbC_J}b?%20zW%rG
+zyK@-DDW$z1UDk~!zBAOOPfs}Tg{%W#SWy=BHO{?w+PN36=WRX|`v5Yt3UoV;zPFLx
+znI)iqGWzDHeir8QxV8HpUBH5g9NU+h&nVaBzFiBLsufJN)M6gW=*Bbcv_G)Ql1j%x
+z_x<3(e(+#F%{v*<cz#wl7VOrIhhfiuNn=1^MxV#mAA&!`^Js$NgF{A2n7fsK#sp25
+ziQfWvLOd6RMvL=NUCox0tx`8N?C}Ly;IG!1%P7x*0{+E&@w}eNi3Y~=9M$KToNBaQ
+zuP^g`#t6op5mg6m9y~0l4;;Z<pF!`QAH;lrFrgpyC08@(9?I+b29x?xG2!q;N`n50
+zJMiv(4I$`0==9cR9&fAxyvIfQAgHV>Rp#UG9BjWorFZ*<pB@%c_Z<l;sH+g%JNgC{
+z{ivj@vI2=U=fI=>i^6iq5iSl-`)YV`)QuCoHGPBp`@rK4txG>5dR+-xT?txU`8?=-
+z59m!Xgb6<7;h?;m{&JQ*sg`MNUVbW3=5cL^_LS4Ej&kmlXuR&w{+h$*(*C9j+Dlv3
+zne|n)7uDS+r@1;hnk$eakLDunL4gN;VSOiP^%BvX(;hUU+)JGH@Dop`Xnvo-rFRE~
+z)L}um|A_D<v?m&P^cQj8gDb{B`_yt4jHOwW;NrJC=D}S}@iPE->tP{w{}FMRJU9#<
+zs5IW`c=?o?P?GV4ihqfCQc0*P{XZU8Rh02W{VHE3YB5_Vm8`Uyu;G*Ju(qB(2Hybt
+zYr{A7lV3_}cviwy#y!2KztXRHKFzCNS&!bUu3PQLF2;8~==v`3#;o>T&$+&f#u;fv
+zh0NT6w%_R&Q~1^1>F2(sgunH7`iFdq^UiSm7Wu3zoxLjZMbxi;-e;}Hh3)jS!e8-s
+zM(VG&x&G>-Y=`yH?veYeXuQ#`_E(J;@K@`|RwP%kqS|N|6YK0~tk*6oz4q7Pv!bb0
+zcBRiMYQRfdZ+m_#TH48qrT6Xe@?Aw?l^u;Ax5;<KM&Y|SJ++(dV(GYD>Az@Axzc~N
+zL6={t@?TMX6<a?{ABL&(d3{(^xeNX2wX1ztF?E-Hu|7;lyv6NlG1+U6r4NfLx7lOq
+z!#E#_-g>L)*-+4n+t4GF>thW3SS9_x%#T&lpZpl7yE;0$SNk#I!&vw+qW^gKvGehv
+zT;a<$G|0jhTtoly^8yC>usD2J2Ks#!<=H_0DR*QNeAx`03h6hq5PXhU`o8JY;p0*}
+zteLQX(3L*g0~cTqqqrYXG?tHROmNrF&e$E+nLQn#=}9XHTPLL2to){(ETp|}bKipd
+zG1Q}b^C`D6$}_Yb?mH*#MYwn9Y1n9OuW<stsn8E!or2FPz1vTIA)IQ)SoOF4g;Ifq
+zIe!1z-<-^|Fs?W5?X|sk1IfLR@00dWo$mh0dY7)==kMdaB*{~GwG|S6)E9v*{t$Xf
+z@g+h!#f60(fIPftbyzb>l(%3O<|qXzrtR>DwG;MZPdT!%VNw>p5wZ|VuC}J6R$F;3
+z4}HI#1u+IFXhl}rwc1+5_FK)RW){W0W9eQyT)G)!lNP*}=eD7xw4Gf6If`lZJokJA
+z&x)w~W?Qcv(r#f9)C;42xOCDkpiY$9D%D$ccsGD&+fm<vyOISs+@cG&nMHt8tqV7Z
+zXM~>v*TFH2x(?hTs{yW8l$>`7SHk(L@C^gssOI2sA$&u?H{!y*5Wc~bLodRW;MJfF
+z563WIC_2VR&@s|4(y8@k2c6rUB_vN+V(A38w=KJOvN~>qPgwIyjtwUJ%k>q0h4eBk
+z+-1y!Kbi43>I1*vm+&qyOy2p)1`LyTK5A>2ypw@bV3@p<fUAF)yc2=1Z<xH3U6_$7
+zTq9MuE^=WJ9I1k5BI;8N#}JKsz_U%@L6Ufg@#<APkEF)O2{QY>Su3nJFh=gFQ5w21
+zRxj7Ym+O>MDWGQc8g)fEkjQn_ByQ@7qP~bRH2La?FcV|oRslZSA4dHdpAF86yJLhd
+zp?r$Ix99P%)vQT*R=R}FQ>D)afB#j_qLd#`6h!=!Zt(ep#7nY}T`dodFP1MpEtgo|
+zuJ%PNhB3q5_G|fh5Lsz3Wxj98=X%_ZOQoIxUt+Bp+>|#$oAX9^OWuej)BV-&jP>&m
+z1_xVxnCnIbRjZBFYbQ`XlW}4S^SB9013#xhd#SPbMxOV~PiHE+FlJ@@ht{qu+QFQ)
+zKUmH)LGQs_9CqdKeJtAjV-_iIX6?7vv1r#%So?;nnNn^sm9AFG_s!4B<d1A;&94>N
+z?a$L3lE!&=9~~^~M^_##)7e;*Hyj=8(vON|*xD{!YL6u)daQ7{0DIJecJ4<zo6*i+
+zvi1k&qMc2wecL>=lSMl@6Z0F)p^L15c3Otfj*m5(UR$rzJ~U)7gmJw@bM>wbCXH2p
+zh5O!~^QE9!3^a>X(CqCa=l0=WUK<^)VxU#5f>sxTUrD25UqPd;OH89`xoQT#3ztBy
+zTF_4GILg&7+4nikC`T@xFCm&mnX|VjrF!fp4VRj*r9{Fe8cFx|3`nJfO*A9gae5Km
+zTv~awyI5U}p&v2yLsHRhqQ@RDUG&-^+7Zo&UL+?(JDQ8uPQyHya(ID$zr4h>8>vo?
+zlx8E<$x2!sy8x|T{hH-$xVkx7IUBBSjz-P`AN;^<!aJ3=jn0u&+Bc#h`fbvA5l+iL
+zK>x|@d$p~LQJzFPL!<ZAcKzYmGf&36T!gifD{HQt1wQ!t<ZPmhIjZHVYf`Q*Yq^@J
+z<FrZpHL>Mv(oasDvFrKd>eWfVc-i>HNjaMIgOm2@@|LSfzc+E$AtvXC6LWs}O_D46
+zhNwy1$Y@P4syg3fOJ$vZXQx26A}?+?nt(re%Fk>PY~QUp!@oXn&{@CFpXojQkyM^J
+z&szDjAj<T7-d5ch)Pm-`z4WceFy1{BGzU{bbK&k5BbY4=ua1s74+YJdLcs`@TFzUC
+z=;XB%EEbF!v=b|(EuWU|e~aWN0ht1=WXKbp6?_HvV&0nIEsIY#F^$PdN6uxv*OE%T
+zR^ZN@L9$P<q<GJOsNsI9cffaj#t1#wZ1``;7~zMS4azH{q|(;;>I?L(AL<LKUaPu(
+z4E5uvPv1@w|C)6A-c9cV-}-z?gDIZc*(b)K=jD^6i_rIz{Snj^6Qutq`@^?pojpoC
+zhfYBLPY#6E=ZpyL9|Ha(ki&<!%w@YF|LrU5Sgo36wW(%So6NJ?M2^)xsvC7_-B3#1
+zz_GjkYLu_8D9=TCZbf+>%Jbav6)0cMxOqC^(R3{6>5FHWA9x0UUy$%bnd6Nz;r&EG
+zH=alV2Msu-y8E9*`N@j%Qz$=GQ9g+BLAQKGYIO7*Z``WsIaV^d`^Gu!VetPE$iW`S
+zLp9!WT6AO1)*-y=P_C;eUybtB73H}o&)qsUG#zi;JepEm4audc)Oj0|KvSs<n-V9S
+z@T>L=5Z;o;?aTn-&7UWo=QY6nVsuM_uEZ*I%PV`j<&{0%qVf{0zW;K@?HrmCEk}WC
+zwN80DB!Pdi3LWywo(_3sPlu?yBsDs^jWsUgC40lw84oW{XS}kfGhW%#nX#bZc;m)t
+zde7q15@;C&O{MOYEJ*ak*np3v32)#^-#Yq$x1aDOT%B(|Eq?xIJ)Qq)HfkPfF(QRl
+zBh!{)xy~G;^Xb8Oo^8i?lFmcZ`7Bv)b<UaLw-&#(_?@!%&Ausz-s)ShOE(riPTv}|
+z7z>|lHOg(>tlZhn&cVfPHwqj)d}`2sWOJ+0+}6x8of#%$oa;|zdArTfQ))Mec6|5^
+z471%=9<OJUG^l5Ej?I$~pDQ1tJv#aDl`_B~$6CrQtTo=sLZxO_qtltr49BUK<{!W*
+z_~P4rKkw9yXAkQfr)yr=ZV)ZXhlfuOpPu==oj@r!qIO<6GCCQUNd2tj^H|w|Y+IJ)
+zJM%06JVI)Y%VHL`i)7IUy!@_Aj<pUH+6pY&nPt9mGYe=L-flrFIA=!D4*y2#64`-o
+z3Ju1?4)~!TLFh*SHZlYo*#cZzfs1D&J=}u8jpX;4Hr*iky;z#a&_6%)#0T3Lh-WXV
+zz0u0UMD24W|3#1gqqGmcvSS~)U4(pwU0X%?$gov1@S*S476Ko#RUDtgBkRA{2K6_>
+z;kR56{%Co8Irr;Q=yCN}XS`+lV%i&PJ)S6i9uGgCYs<0b&SuBQ#dBZ4Z6ssPk<i2&
+zV{;#u%6wt08*+W@rSS9L6dH`nc)!9P()hGR1x@1HnNI~?km*{QBaPKK*llY&;I{&P
+zn0P?*<zcil>hb;r>gRaafqYw@6*>#foL9|%VXQlnG3Q8hz#C)pIj@%e!dN$0Wh2Ma
+z4t!H+K=L67PV8bHKi$9hbaZQnlUGl7;-*oY***T(*sqr~uszd`ve%X^XM5ys)}-pj
+z(LVzn(eDgkq`P#(uWn+ppfP{!7{$0}6xUNylF*MWY>TkAZ$<qZ)(PbeYfJnMOHAg?
+zQ%>Gy+Gp$w#iOQAiJC{3>c->oj3LFMrigNSX~v+K_f6MjjF_;Yue?;Ve1b-CY-jP<
+zpFGYm<yg3bV)V_Te6}&l130_Y0xwL8YalAJDGAdlzV0-i`x|n9d3;IK5tW8>>iq}c
+zdvWF0tzEm8uSq7IT=v^;294r7fX5Dt;>tb8WAm-!`R?b5LQV3|JFMhfiu;yj{;BP@
+z6yI%&%FU)Iw%aT5tX;a63ABGqu~brRmXO$G39<L^{(F`v;JOk0SKhM(T0^`(V@$t^
+zats`>>W-oPW1L@xIQ4)%EuJ>z*#~S%*g)}47fz#mFSuW)Xr{FEfbEOj%M>MPF1;?p
+zHlvRjiZz_nz>l3Q27F&A|JInH>1|;_*mrO##gY8f4kiO8#{>8XE*_$XM_xCk#3Lrf
+z9^FRYGz#A`<+e5(vLap!I)~@zM$7C57FL>=MDWng{9AS7ziZkpAATv$s1Pr*e^{0=
+zW%s$0+pygdlp=e6NfYD+*KEo?wUhbcyDV9_(*Q3P`eS&$ENx2hp}JHrI-7EXCYchy
+z&!jr>IZf=^KTVtBRM03!Fxo7CGS6cqQlF2#{f;#=r?;IEgjR~@w<TUQ<xYz4`K`Vs
+z6RZy}P#<D$A7;1NQfI3nO~8Kqw7MU#QQ`#b$M>rH@l-318F|fXn4?|y4)k<Q-_%2`
+zvdH5$t)bXTHNN<ME83M|TjIa7==rxRo^QnO3HScgr-$yZ#P14`?kD=b{rUYwACGT|
+z_75&?W^@K14%k5@U{bu<8ZQ_5-@kmSYiWn&pGy7BvaZ=3lmnbe!ftyT<<v7u_IsZV
+z{+{gfp(&JeZe5?Y0Q`t6rj%-Kf_-SpJlkYYuDs#ejDH@%yW2+a?y?cQD-Sw-qW(z2
+zr@2EPQ~%$~;r$%mPviX@-cRHGH1!d6(zU$b*O~>`NEv<Zya*UO=MTZi{JhC%bzw|(
+zVEE;vE&_%hF#Lca0)`(jM1l=CVn)-&+94QIWx&`97{?BXg7(R0gHcHkvbBP66~!EP
+zzr%~u*%FGiT6W`^#+<mu6mw1fZ1BVDAtRf9)8Y6Y;m$rmaeWVHCxLc1D0JS*p`TEK
+zZvqV|m)Z1ZbYlQAwrE+0wP*?Xx1#IcoE%Cb{+_w4!!If;q;^Rb{^Z7t6pCl0-|R?B
+z@Bbh@?b99UY2r`dv(&Wk|Lk24bW>HDzwaeY(-0sPgzBR6SXitGY^vz6!f4QrgNhmi
+zSw+Qwe?fGDXPj|&-8o4cnzp2vLZt<!!}Cv%p558muI?P2Ik=`%W=36fbQDE)XS{jg
+z8U8pfd(;&X$o{_j-fLcC!3KzqcHTKXP2RiTcfY^)-j{dZ_j5)XWoICEN>!xsl<Q#+
+z!df4O7!6=f-#Q_;Z?c=_yf&S=jT%%^Wt%zQ5vEblobQllI6qNIV7_b1dc=IUqThT+
+zF<uc&@PGHeo+iu#+H-XJTw~7bvSKG#cJ$c!HtmD!)E|4K+o%T&+dbCvT9)c!<K9WS
+zUt(B?bm|_pj;~1VBut;oh=3~Hfb%=d@6@gy-)npF*H6WF;!Eq1YO2F7^zE?e+hOY4
+zk=Iw~*^yOzD>SG7R(@VhBNw`(tv9%eQy!C!ZzNyWN57}Geotb}ByUB^kaq;;>0ze4
+z6-ko!Z6S{b@@!`$@7sOy_A-+9?LK)ooASz~kXJS2J;V%oJ(j%acbR2ho4h37Gd6ii
+zugj&pyrj=>m?5tOd22{steXOr9XhR_%7!;;gdHMPCQX@>`8AZX1~Mlh^S!3b5y*^l
+zXgk6#a|ANKueL5TWp>+Sp34lG-4T*`N1x0ygv>koY<d>iSlS_KD!WBJ;$Y?vPK@PP
+zH&Y*7E8`KwW}V1U7J6zHTdh;>cA4Y*3^Bf!iSgYU+mkb`u|2_)=U8L=kHpw+<Y+Q`
+z;Z;$2Od={TMNZ1i(Nmi5iE7A28M!D|At$FGC#N7MPop{&WKTIS)0%+VI-TN*EzYpi
+zil=6zR_m4yuVBsmrb)9+%G1QS+IpIxSs-YpfW~fz=dcE+`NV<mEhb$h=xBVDf~sSn
+z@sY+x<fa69D#_NCJk{V`Xm^a;9>UWeRKDvJ*Zuvu8uV|OdL1ax>uj4|Rb&fW&YTOn
+z*Klt_bWhuC*bE!yC~nvyLFX0r$j7z<x{TT1MRNcCzG>^vZ=<6exCnG{v%fnEe72qC
+zeKs0&?;J7se<bynt5V9#H687ynts{oD8esY@Qd2tFK+NE9CNfIInOgi`o%sr902_i
+zQ{VS(`qJD?d2_V68F3ROn^>|rg&p%_bsPAO1z*zp!eaE+RS7;a^)`IOz`Jm6cmVug
+zGyS``z`u{NynlTnp7M0}fi7O8z3gLu1oW%Te$RIlVXrROOU>JBqAkwJkB@`z-DaHJ
+zD4$sVDrB#Mu|5X=Gfla>3gUXEEw0Cb_PQf^`;Z;`)-{S@BeD<Kjci0TWG5PrcJ`xN
+z{P}cP7tq-E{Bh7x{^bta=@t!&j>d@(kE1`b%gE!f3yo(l9S0r7Z7^57el*@x9!GyP
+z4sHS6G_fXGZ(EbBH|O{D1#6P^Vofqa%<m26nq+<dHA&!g{mgA@>opG6d@AI4O=dgC
+zsI{5|U0%WGv4L96iT2cX+^!<llaQA%e@0DL)8m!p+8C@;XI(;=RxvFA9VQm3gY#HA
+zaI8_F!ziJ{;><>&!_`8EcG7`gt&OmBxVpGCvC!cnn+_V*8L2gzR3bmTB^!QNVe`YX
+z68J%eA9@d$#t*w?!w*;3{P3L;`2b}=n!jN?beLSE4xZ1^;dJPbF?AS2Is{0E1({KW
+zI{dT<9lGo~+}2Nr9VPO^6Q&OPq`V(?OQrF{L(t*9_WZqiTe)$sUWy#K!_1LqrF@S3
+zOe#%|+*zXdnr!-}S<1&(Tq;d`onE5&y3Ew!cG4k9I^2+1deY)+Sw9`Vd$=^?t;dX|
+zbA%4HLWk;;7E8<e&3pHiNQYM>Lx;mGufsuh@^zqmc;`@QbXaTZu$|>|`gg1}IbB_%
+zd>Abm`S4?w&xcLy<mZC}`LM1;e%QebKU{0`!!;%HLq~~pc+S*eqD_bKtTb!c4?fN9
+zB`i`JqaLKsoIc0273ODZ6SJMa@lgK!E;_Fov~St?sJ72Px6y93wePa=zv)oE&BrD!
+z#faxnp3gUIZSFc$n)pA18S!65b`MefFC-kilNA4V<mUsnM*E+Grf&HB-oZisR`4q|
+z{bp|PZO0uRd|Q5K@NFM2qU~Q4A@4g!2H*CABKQs~!VWJM(YB?CwsVVU>noz|k|J#O
+zS4FhlQ-lovg0}QbtL@dRw7G#6&BC9gXGOJypGuf~;TFx2RMXF@o%)vUPW}8da{K1s
+zS~)Y?)tq5qT{;x1pB&3Nkt?-qe&$nw8@Vu3Vd4NX|Bh@@0k6tBUaM3Z@3kv+8rr05
+z6-oa;st4eweJU+_IpK5$4Q$5RREy?RT6L$tTPM61dgkQzM+uKY^Rjtq!cg@QW?@ZR
+zmazV=qdh9VphkN*KC$+&h-c4DTw+ntXC=E9y47PC%xxqrRRfE<nXnHlZ>MLy&`YXm
+z&nn6iZIr-(Y|hd<_-IQQpBpPd<HDFD3BJvoDLg~h>AX`h`3jz^A@^$C0eyzSK8>se
+zJP6xxEzbW;C(K#GP<8w3bSLCG(6{GiQ&#rJvvjT&vL3{F!USPVt@nxF;}&KFHn_lQ
+zgk4i)*91?%t|{>hsW)r4ZvyuH5cZ{gNNs&MyajZrPQ4DceVQfGg|r`lmarcM4!5F?
+zg5T3JS1X^Oy*;Tq%`0qwQyTVP=k=+TRLfo1T#0cn;U^PLt!Y1MLwdnC9-<lHYsz}*
+z87g0+?aSpZtTg&)m3?Y!vd@mq`UZNg3m){0c>l<$dkB9r72d2<z3%DInT6(Qgeyu|
+z9~8sYh}S8}PTh}~rDu|3F(0(~H|w+)$`Ow9ZIy(bDw+Ed;#`s*&K^+K=@ZVxJOhVH
+zz8EiuFGl*A*t;b5FtPhG<^CQ$KzQ}O*#f`Uol0mf=&?7K`vu`CL*7yTbGM%A6m?0}
+zw2Lr^Vb=-Mu>MQ7=u^5|bbqQvCp^pjBWeFrZts(SZ`{99F3$SFX1$j1yCQ}@GIDPg
+zYtfm+JQK%m*5$uc(@Obfz3Dvs7g)G0ux*?>{B``YZ$!1}Xgftgd)A(<7ke`5`DnCj
+zf*e)2=A&z>n(^b@e^1)1SFuigt;fZiVF%9yv`3Cr^dz%BU#BkU@qM(?DV}q=f(br{
+zH)zQ~gEoREM4!$;g3ls6t5kx|J5$ZP5nLs3ds(n$H`S;023vH(8lEodd4P|vJ?rsD
+z_&D_MAUvH2avuGTgAW_WU&7r=9r|CFrTrvs|7wA^^wP!knv8x%gZ{5?uG9YY{W`Iy
+zWZKj^tqd}eEcG?C#z^p|ua0RHOHTNOu$jGPU3jWBPjdPww@E$@TliY`kbKK?giU&V
+zhOll4vqr|c?HPQYVqyd-pp%iS)9H6~*jiQ%+p71&ACY=~+4E7tAJ4eplXjQHUFTlP
+z>3YTNjajmv8-G$T#?ROm)$adeR9pV7dhPpXM71i!vyb+9QN0(){DYfUiM0#t*9#e6
+z_oiadEyl-@{DGL*2TOY!NRJE7>~G`0fesGP{vL8qge|9_O-0YftRo!azx`HR``yh6
+z?YDnSXv42eXbSp#?d629(`fWfHmX7&#GiPt7{Es3!JqgIpBdNQx+kHXKR2Om2hS?-
+zdK0{ej}v^bKGUioV<9iZ+iq{DMIQ-1WY>!GDDRdScIq+gbiu58?VBqS+S^wpw4LBh
+zw)wAP@FpABc^^1p$aoO?9)ye^gU>}bCA3e#qZ&M_z(WC#DaVj6Yw`HUxRwKti=pRX
+z$TA}w*NzOpr~D{<wwrvUnN8X-=rJ35NtfgA2E--JDK93p>%m6_pWWbTmr3yvhIO9T
+zFTtzU9JlKz&XF(G$m59<HtW@}rL44PDL-dWZsVMS|72IfxRS+r<Xs?+yjq*R?3$Q1
+z8+Lvpl+fnzgq92@G{U#1eH@g()SnZ6cf;pYbLTO_g2q_t#@fKy4PQkurlJ1^+A{|I
+zC_i2PMo#(Kb&-*$R*serB1f(Kw8!>9IT}4eIl3_O4&s||zAGM8(=*W45nj&YH55b1
+zERE~)XT`OT7ALd|5$iMI{|?CTzpo^0V}fC0t6wXI?0wxqI>UBN^~AR|>y9kvx6EqP
+zZbUqcK|I`mc%c0+i_Cbic-rHlFdpU+PxyiOkRMdgyY5bCH$%q7;CD+Aye<;>+@1Q;
+z2jd!zl@A~`Z-;D4!RuD=I&GW5t9$@ng*kH$@j{z>g<Q$(9LObKk<g;xQ+JOc&v@`7
+zK2yMFI{3`8$rJ{k(@lHbn;;&o*$BqkRgk3tJmTO%<9O4{$L3LC+GpiYnuUF?$2i;!
+z9;?A)0&>Srw+6gC1-U{z4jjfjgZXsF-}T?SW&I{RQQ3_75@WXV5GNdKM{sSH@T+O=
+zZ#~^u$2x0PWeI0Ga-a0MG_eAjxuBsw!=MSL3>vR*ZC2oO6E1d;_K3~TNd8NI$^6k@
+zdHrj%Ozaz(ml;m$)_}2>tc>;_Ltn)DzB0BTL+jWw`VGN$?LTp?+`49B%2%QPt<uTs
+z|M_F||IY*T-?7r{AN^Ic%{pO`CtxEbfH4U+r2X3t1#3m(Q(1>KqgbbpB3g9<WA2rP
+z&F%CL4w8QEY{p&)oAw9&Hqem1<3G&p+iIt!wWwIj&Bt1;PN%({mi#KM4-rcaUt6{V
+zpM6SHcQDZ4zY~9M{CV+5d*Wr<^XH3*`<-#-{f^y!FVmVr$=i$WDH;wN_WY>8o=+9D
+zrTeOXIBeMWBb$8_VZ*+p<G2DnvmbmpdafHl&$&m@^ML{MoIQY^kAJtnp1waHL;4sw
+z#1CKP&^|^C?F0TlWk?^xhx8%*KWZo+-l2S${vSPrk6}aj==1-nL-+6u-NWYpF+=vK
+z7_vt{|BoH2hkK|V1^%xZqDT1<JwD_A(}w23l!*AflHS8~`XV~j3>oO0)1TCt_`Ne(
+z79C$-Zk=-mri$~l-%Px>&6vl>jM^h;t4Ax<bYlEE@eIwWEX7|h?MK;rJhWveK<l#6
+z`sg=%(#52sy#&4p)ssnzcR?A>^^7*2KQMnxx2_MC_Nf7A#j^~5L>JEsKpT|^>j5%S
+zThPgV)j|6k7>nu5ze>=Bk3sjt&!aOB!eb{Kb_<jJtAxkSubH|>;JJj<v@0d>TQX8O
+zs57d0lzdg}Pm$IAy1V;MjcOou{Kq-m9l1-}u%?=Oy07FLww%MuBXju1L^Z#%06%3;
+zT{rEI!1wEWa}fid#ofJ3BisWyvS0AuNc`00TKi8Yb2s?4gI|Su1@HLD<j?TC;?ZuZ
+zJB06xdULAUOLi1^ENaiL?X*8Av``})7N0MwIefGEHk{)R73c{4ys59Bj<olNg?MJ&
+z(n%urEMLmuV3zbmOk_#VI(2`R^du~r6VcOW>PfZi>mvKJ#Q#L~6c{p=o`_Y4iHYoD
+z0ioyq0rVtay1u4*(jGCU@{A)@ul?xJ$;OyMv5Izx0gd!#YKzz(CUpmOITh3$YEaaX
+zPo!3JI!E;ey-Sw!M5uxHT@UB4Q++`1N?Z@e^VcK!>r^+)8^!fVWBz*5xE}9r6m?C#
+zt+<|S;uYv461qd%bnhfVd)aN>R3i+!FYL{Q)Lx6;7ea2BGB$P_H4!ZtU63OZzEj)u
+z!?OgB?|ctD!o=fmdvjqMk8sZ}OOK}R25#4*9I{5>?@jPG@t70q@6$dWB1a7#4c&2W
+z*Oh7}Mv}|4O+P+c@VLAUJd(uYhTdG#@FV!F0-sgBWY4aj)A$<f)R{_qRTc=$qcZr_
+z17Ech-nR|UyBNR9=vylAt6bn$slcytfnTKpzsd!Em5T7IJb+)NBK;~4;8&?gzsdvn
+zRVvc2@=^RMeF1*`GV-+%wm8vzZKB$<Cz!7d-AyN)uW`i27n!dT{3;jtmHZgN+R@c*
+z_|-x9SgI=aQae%t&qK`rGJo}5?+XoS*IiBNijFnuO)s9!>H5a?$fvNqO*~!xKtY>!
+z<V(cfrZMeq%(q!Ta~j{+Q7ziG@14Zm9C3rT({^Fq$!F`+c4KYKduV-V(i1Jo0{UN1
+z;_XDg%;>9Q?^(QpBd$UN(1-1Mkes0Z%~`yI=)XTn&~MmV&0V}v==2%-h+Rk00rW3a
+z^9@8FKTFWB-+MMM=S@Q2LVEJwbC%CSRKIG0CYwH^dGk@b&yIqRX4TNNaM1|wjIhoI
+zi;qV1c3iZh(GP@==CrW9vL^0S(8P8M?G$*3gylr^t~s&vu#Tp*V_rRvg<{;fGRB)C
+zO$OEra)oeo-1y(MOig#qQ`1VQN0)*<yPjxL(@)qin=IZ&&Cs3i3ce)Yyrw?B^^y9b
+z`1avaeMM!rV}TXxkNP0)ahJq+EF9w%(UYfBQ?RLzuOnI-fBdP+ZpU&Gb*3M=qOZ=h
+z=qqGkB?)XK%wfk9V>0^o+4{CHknFrY=&RTm8;GyKdHM>=ej@%DY>XAF(_mxlMEvom
+zD!Uz*OEK$n%kK_cpS!RowN)Fs{H}(y8*`EedJcQCIqeF@u->ZYW%Qm*fUqeVxD)HR
+z#%LpVoO?STfwk1?e_PF6OK%f+74+`MFkHWQMsMcgyMCRSaGsi;bgP=4fH`l{Z4K$}
+znjYT0q-Vf-+4dUMmK=`mX6}SthKXAEhAbZRv1;BbUa|IWVIxD9<w6$1#vvIl?szdn
+zGMv2*eV=F4swNpkt?F|JuGc-(ZDOzQezM}H9J%6(#9*r!_XHYv1@0-Fq4*bOD<|$9
+z96`daX~sQ-A&UpHe3|j{b+t*U;>Q_jfUO#Yt;!+0Gt~5j+R76oOpbbCE0V<nS-$M}
+z`8wL96!Al2wIdRTt>R*=cG1`wYW_mU>WUy?ImE<RO|p0(%a=WWeI0FL;ZM->xh?(_
+z{zr6rPUrTU&rpwY-tAB7eulWCXKzX!cd%>I^jy#Fi*$Jz`zLyiNVVGK9yRUtC$sdf
+zxa5yy-TpT5UcSucr|Dh0k8`<~9RAxOYYhC1=bqyEgA&w6zj~GCROoj+`h8E8zRj3t
+z&T!*-p~D~1AloCCK0@y+Ey^&nwzfCfqRnP(C%rT53>)txQmudrs#Bn-nVgsCZ^X5@
+zM(>~xqxV#TZ)fSfk~>Y_Q^k8uG0n*qWa#~EdgsvV@6=svQQ8ry=6fMC6Yo1O*POmf
+zjQ7JsQBJjvJ@h`bubvA`4Yp9!8zCD~|1O1W(W3vslwqXVzs%TP>d(a%q&={mCC{a%
+zJdi=Wm$Pg*z2Ep^)@u7<F82$P%fYJoX!Ca&YIlp-?qzx(pX@-jba8$szKiFtAvNO;
+z!JqgepH;BdJryj5^D%u(Xlt5D@G1N{7JSHG^i0+Tf0dIizK3;J3VPJEX1z7=r_!bq
+zHi#Gg{{(iip4%4F&tdQJ_p^Vt(GLsG)5LrIVZux?`lP<Mgi`32?JPrI8T2!r#df=c
+z=trTLZ`Wn;rr4C(b?Jj9-~G|z_`X~OU&}5Q-=pz-7Cc>kHErkX7$2d10Gb0lKOMl<
+zpU3mDB6!js0pcscA7YO{P@I2K0-sij-%wD)cemlU`5DIAwo^Y;I{}|{s_7t6-os~-
+zzd`uVsK;?F)yH_r+GDT*yqu7QVuJeJ;(s+Aw)Q3<cO3z>(iu#i>Y!TU!K6-gdddRo
+zBffz8w8Um3M<blx9cuxfw%~Z~BKZT)?S2KZ?)D}3i1#t6?u4m>i)v!{AJ!SglMnG!
+zQ<o*3-9Dp#dN=L&ImBbCjp|`o`I4sh*=VeLmah5M>k{%$#3{q)|7Y({;G3$pzH$6y
+zYExREh0-!xCIw{{5fl`!jEeVyq9PX+6ciN|y*T5&o#)UgO-nkrX*$noI?qifI;2f!
+zI;Jgc={%QC`K_Ik)0`Z+&-1>|^Sqzu^ZEacZqjeo9@koX?X~yWd!J3{t_L$Y$`}1k
+z2Ro;_zoLYF%vzbRzG~kCd4I(vy+7`+cv8G`Pl&g8UQ-npwT*$DYd2Kh`GKeV3#8M*
+z+?BdP^gGn&HvKpH8>*i^X<r8Mxpw{2Z?9ed{=$v#uV1~k4gORA_Rh^OKE1B`2?JY)
+zX<^DrV#^>X;6wb*RMFTfx*jDCO%;!!ild{7r>lzdq~D0NOjR1af0G|M?tk^8YVX^?
+zfnSLB66O3yfoMNDU?kfA$%l0eGhK#ho6_K$1>Yzz;P3b0J7+ml`8)a>#rr?cb^2A+
+z?wePijIm??G5rtm|KELRwEy1!bo_rBok62BX$%&fsYPdL)3w-iEgks(zn#D8e;O1)
+zW2j1@v*>t1Os)T^{7I!~{Qp0j|Nn#k|9_nSbfT3^ww^{nwh2CHD=#|A14atW6dMKA
+ze;6VHfyRP*YU?rBx=VGIEL#qFvDix(S~|M$<5Gl~Y-o;_j^5HG+PX@*))I!cF8r#4
+z)9DN*ON+E&RC!`(m64IL@#@uU)}St=8AExd5JgeOc~bfn=**d+p&{CU|3|tit+BCk
+zQ}Pq(=)i)px_l*%=wSXB3{1%~CKF?TxG)wAex@;*G)#*@ry;4)V4%=u(&<bFLyJb!
+zf*}lA&t%Y93?@yR$<(H?F)fJ3V$ii{Y`V5KolRpgnJk8u7K07qX0f!Gbhb8wp^g4T
+z3D^t<TbspZvb33OEiL$&%|^A=($>~uv$eHBJQ%U#9-~wD;M1}H))sz@wwN<b3k0Uk
+z05)i`m{21+8-w;Rv{=wN7;F|(TMPbRLd6&?&<HxThN+FwkY=#h47xVb0xi&KlnSw%
+zMpO*6MT-Fnrwwsg%0K8dXc^>!x&cE=l?}#Z0asKRV-Ojm14n>m5E(ekgl+>xL&oX`
+zL!H^$T1pb8g}BE6#)6=jPz{VtV`#IOC|{bkvSLtaHdLPhacRJGkdHQ-hCviO6>2Ft
+zX9kO{1;WHo6;YibE`z15g#^t;Y`~Z(BWSud3(AMMM4jOm#0?f=2OXM8!ypw&UZ`}4
+zgg2R?&4$t;F%8rQ)DH0llnaak3t9{O0kwn5q6l;-2=oaV3{-hG`~{U%bAttHuEoZn
+z&cJUv&S%74Z6=0lNbngdh(Voc3@9Idq9OS*Q8mz?7;u=5Xh;N$IisqwP#lQCq%$yx
+z40;dR!a!OBTxFmpf)JE-h76TbhIV3$b*7=LAu^Omt}_%3@gO5DWS?+F0tHe^kO?Vh
+zNW8#JWgK7+>KGsaC`=nuMutd`w~`wmACd%>3IM%L8|enpYo=1l5Cy3T2t}#S&;}?1
+z&l$uF90OfLY6sO|VtCHbI3{8ZZ8?|`$Vq8LUe(gkH(tAL!^Wpfo_Y4UUAy<-Hf8mi
+z^_w<t*}CoN?K^hv-M9bw124RI=<rJ~A36HU!B?^6H2PC}K!e#!AOkIJ9o>z)_n{a{
+zx_TG=+I8zUnBciQvwg?2&+Xi`cmJWo2eG{-`mZi$gOVINuz#N(<EcH*zo1NsYP59O
+zi&{Dd4-<KyEH-Lnv3t#;&q?^B`VdT1j+80cDg7@;027L#0f)gr0gWvz_~0%QjYfRa
+z>4=Kr;NM_4(C7i?8O9GZeEhq7=rHJjEvAv2Q{+Fh{wG|xKe%)>IvFDqNMq7i>T>C5
+zl+dDqwWsMY!4{x;(H86W$NcD;7<Ca+%~9@PazOjEfwMZ84g=2$=QtY2u|Jft7)N{g
+z28IFfVI@8XLGzEL5LQ7jhJePmbtoQ7M|Y|5nspl(D_7w;XcNURC;l){R|xox7jy)|
+z>k!UDco)JI2sa`80>Ku7Cxi$H*%0a>j3Ui|r28Pe3*lc7Vj-Z-{wBbNk03-qP(XMO
+z1egb5Kd4kXgj>LpjWE7OLP&+`1%aCFfZ8cQ)z(7$zJQu9Sq(ga2A$ssbF|GE_QKN`
+z*7q!iJ--)tbP&=&h1VU2xKQEmpu#;LgSJA2|MfG59fS&dcwksZIEGbZVVGA9hAj+Z
+zn4KOC+p~v;t+`CYd~9gg!3Y`_F-XIjx6`qkP|qC@`l0?w5P*z9H0&S*LkN@5-Ukr!
+zAVfp(!jzX_V!uK72Er#0-iPp42qz%C0^vmn`ylLu@C<}45S~)W37Ur)L0GAh2Vog-
+z*{gaD>JnP$3=SBh<pwKPtzNhB4|HvGL`!eEioBUR_oL4H7^J`?1(s@VtfkTz>RflJ
+zYObuWs;?nQ?>49`#8yf_TdW88U3hn=PEIwtIrazR0zd3m=_V0QlENib0Fh(n5O@$o
+z5HcZDp;;kn8)Uc>!UYH)LAap`->bqM2-c*KOhb#M81^(B5C7ZcBmQnAg)OA8OBGPP
+zUW4$asy@&aurDa}g06tYsOpD8iYjEPbeafF5GIgb((pk27?J|DZbbd|lfsLta70x<
+zR5!G6;RwN>#48jYLU=>PlTrw6wEunn8&cZ5ofMu_w{xmGT~pZwqHaWcQT>WkZ6((Y
+z)gxNfW>oG)2&Q!GfB*C3X_d-@0mn$w0ojB5Lk9_m=+$Gd{pI!JCr+L^eddif&%X87
+zznwe(_B$8eeeeB?A6)wT<qtpl_{!B!KD~DRv(ImQ@#R-Hzy9XiTi<>EkJ~@|_|wn7
+z{QBFS-~ah9Q!{f5ODk&|TRVFPN6uX*XBSsDt~<}e^B&*J+sD_>KOitj5G)J{4GWKm
+zjEatljf+nZC5n@hQ&Q8?GcvQXb8_?YB?W~=#U=Mk%gQUHl~uCpn%cVhhQ<d?%`L5M
+z?edP!u7}+{y^s3(2L^|RM@GlSCnl$+AJ5Fr%`Yhaw?EkbpMMB8{2?HkDqxy_YmPFi
+z{}`(_nQY1UaI;~0*5zH9J9SVGErOBlTTF&2XrI!JuwStjtctEr>%a~&*3vq$Ti9)^
+z8OF&?;A2g&&SPh2CfI4(o3uo*aU!f(cbrvBe}mSrr%3l4mIPyE5&Z|+6ze|yHf=LD
+z$tt0bu!dP?A3ruW{n+B;Y2%-06Lc{)Yy2b4{Nr)@6n)0{JK7}uzHW(b{hkr}gf8df
+zF5`EwIBb~yV9yx6(>N9zV|5#k>pnETMO%|K%37V(xF-Q?H=bwBvHn3*uq1o(_Z04#
+z(*2&c3jB?2*e@{0S<3XmerA6`H-uUnV>jsDm>-PEU(xlL$1z{<Hol~<qAzC}(v9h-
+zFeCahrU6}tS*b78H`^rB|BbCrUrA@us`RyKYhGtFe`Po8--Ef4F7rCONq+_X8ryVJ
+ztNuyw18KAt{SEX6eJ|{D_7Y~j{saB>^wqC7>c3!Zu?eF|^gm-?Wxv48*EipEz<S;5
+zh5Ap?w_#@3hggom3-l58*R)~w8Kx=J%K{r?pJpDQ-=t+5<QY7JJq@+~mS&E<$^3?P
+z8F>B$?FQ{D+KcpDgHg8omNJ8R_LsDS^i{M{149~j%Nxu&wt{U;+ecquR~UF~dCV?1
+z*mjDy#fY|-{sVLCscH5zr=F*~Y;oRVK-*9M7@K9^W<GsthW!!t6Y~S?BG__$+EMzC
+z%<q^hX`8U6?0c92Z58vX{u;U=GwQV~`kqjmZQ$kU(>{Q@7&BMXjhI^@)k>Nkdj*XT
+zIap!K*?-3@u?;i>=6aewa~XRbeI@fL+FJS!6Bhkb{f#so_9yymwlQXdtpUgX61JN5
+zwZ1le9qk!xE$ybh7JUWt1oo}IF8dq(FZ4GsKd{(t@|?-DChM6sCKoN9f|>S4<_-O7
+zlRA?%FvU(`U!`54C9@MZN3qh_6ZYo~%%Fy=U`A#E^)$pjrER09vbTbt`3WtUy_Nno
+zaPlTiw3!1ueTFVzKTVHhoim7GMYA^1zo8{<Hle>`u!SDNe%nCEei}xn&GazV2iPvU
+zcylPr3AE=f7Qp_3wv)aIi(vV)<2DDe_t3}fV>eIPCv3h!`_N$0KAiO~^Rhww=3h?y
+zeBxt+KsIa5QN|GlbIpeRK6>7IN3UtG8GxzO3s?^JD&srs0QRBQWvy2j8^GJl#tt*`
+zpntuH{R7il^F5XeUiZgZL$r^y{PYenXlq_(e4w>{zpoy)=Azb-YftTGtoa=qr2Sp%
+zl2#e^5`(_xgjO%@Al5^>r?-u9T&ooG)LXiyk9G%qZ7)5(o|WDs+P|=^481k~gxQNb
+z?UdF@ElWKv?PpA9PZ@ol<zoExN6y9#x|QkD^dD%be<xz4^z-1s*6Yr(9zbv2f>qEP
+zb<3eAi?E+)ZqP4(q<u$|=-z^U=W4vbddy0~is|e<)2w{mBD(G#ALBw@9qeuFAGG`Q
+zRhSqnfL{4KSb-9{xA81%f*yzY886xM!X97a8P?5@zWqp+e$O~Z_nVKZ(qpl4`W;%f
+zZl12EaTjZf9?aSVJ!KO;fX%_K(o&54*;i;t%8oFnx(relutHct?2oaJur2h>^j-9w
+z^iOG@(9A9gSplqMqco#HcB;__yMm4UL55$`1V(%4QS6(v5Ti);#a(x?AXW@Jn*A*;
+zkoEUnVeAjUX4zq(>~Cnh=_XhdD}o))ephz~-Sm>hCG$%cbR$`pc5yDnu-?}_vFrG*
+zQ@b2535^1bSit3_*bmDe)23<PfeeeWS=wHZWAR3gwxjk8%}M+A@*?beka7*9i*{GL
+zllDB!5A3vmT5hZDp#Au0(Z=H6rjOcdCu;w=yqi|^TQ%eUZ}&HTx4dLy9YdsD%a}bn
+zvGLaO@r@<F{bTt<T9WpCZ04v~dun4lZF1wt#yIUt#_!nh#_yN^zWmPeJD8Lat1V;v
+z3ro<hVvKG4*YY-63Cv#4&@Nz=#`C&!x;d<D)(HK5=qWl_9t&CT_rS*HvfiMbhZ#;8
+zYnWcj`hj*1yl91P1*@DTH8$HLGv4sA>7FX%V%CE0ZCbPO7=8W6O~#LPTa8EQ^You+
+zEyfMTMXY*bi#^l2v7j06VCH+~=(D;B*o<zMZl~^jRy_99$KARQj2n$Juo9NU_@VB1
+zG|rxU<BcCX?rGPZVBN#6Gd;2MTh48HXUitG3Husz18o~v@nC~3?9Z7j`e)3|Y%j2o
+z42(%%PrJ(Gg9aF4+Vov)E&5Kjz+eyi?JXZ}xdIkqH~T5t<t-RJ?qrC;4z|!>JNr}S
+zC(Mtx1Q<NWjy;)h(%*nV|C+gx_R*G`%=nXZdXPb&!BV;v^zSHxZ<)`szk!j#64RsG
+z!051?zKmYO)}dR24e7$n7@b)0k2T8@H~gY)%CKP6(2jzSE81Yr_*uJ}R!6H|){VUi
+zv&LFlC5^*)2y;Sx>^JSYWxr}CZ7BM&cA0p?FE7V!aAaK9mePKHSw{Qq<!joN%cRSk
+z7<U;}wEI7PuKk&|Y+3Avs%2NTo0r)!N`AbeJ@KP0BVoh%k7uycpkqzTnrRM<CYm11
+z8|)eFFjM|iyOq|u>=W%bV0Qf>^bZd9?yeN0WFzP`bQAg(x+8Xlc41c(JCePb9>Y#E
+za>6bH4|hQy5wPwm$MFzWs*#WtZ1n!F_jYAmI=?HLy^|gWmhIfG09N`Xfl-K&&?uB0
+z0R1QH(mT8Sjo#jsc`3-~6X+p!*oV7<SeJKwO^aX$8r`IQ3>p<>w1XbV+79FGN6>%1
+z1^*zD6~l@&3Wq-R0d^1j9i*HH{1zG9Vg8GmWS~d)!uXijU^(#l1MHv7YW79!?@+^K
+zbOV|WNM#jR@;Y{$0h=Cc@C$SP<ab+cZK-Ad%uF!Qr~PBgO4{7X-<ZELE7?-EjD4N?
+z{T9W^Ys`g{zi+8xH-p|-Vt2Nzpv4>5V4pEF46L!MOhYW);1YHPv}-H2p7trz4CJm$
+zH^n|-E}@?QDfeP0=sj4*)^}H=Z|!1sGWXH;(hkE+a+6Ls^C9zjT066i*@qnhDIcfr
+zr=6ld!d?cs9HpJ4yJN4>O?0;CWNqE7bBun3*1_ar7goGZ|KZFo9XWG=`4@UW^DX-O
+zE8bgiensZi+h@+L7-9}G&(c%2?$k-%`Zs#o)^}FCO7j4%d3!}KvxnKoJchjv^S8fX
+zde~p-uh1Sb&(Pn(mSY?&gXM_r+qHMs^SeIKy{Nm3ex3FqNOk|Nzw2Jo-APYpozQiH
+zIVA(zL%&ALVtr0SQvM9&b(OY*?ry|2@-X5VU7=;Nj_%q{KXd80?&(W!UOKYN#ppSD
+z3hP<=tGk?yPU*g~>y1k%b!+Ia>3&K(yz7|mp<T(Wmv_CitD61^$kfd!jrF?jUvxi$
+zG4X4f9mxGAt&aYdZYs+bdgTwaGI}DGqnoY!*f<ZoxKbE3&ciG)SGQr$2&;l#2IGhb
+zbdQ0dF{224KoiKJeov|HefltK+PFe@)_BIagg(Y9*PQ_0Z=Bv`+-clxJj!}#T&z3K
+zYTV=aal5h8$9F$2(!H<y6YWQuWKW51oADGqf6s*OBz=yx1sezZGNn60NB(0hb_+a0
+zG!`jX_$YLh_Ac`Zt$1_M=KGt!Ge~4#U~W>{!}mcSJ_T-mLOTrJf+_Ir5dA%-2*wKw
+z;PAJ!m+9u%OY~a?N$h_ZoClw58~q&f3tGwMt@LN;-y4Y8aWF<X0`Gq}c$$8L_73xo
+z!B@18Fel*2zYM;lO>F)E#<91V<C~|z*C=!7I?;Ke)L{!fmOZ&S0s802=Hbm14&@I2
+zH29F2!Q4g*V0@r+Z$&zDD~+{{xy_%!!j57CU~vpU<DQ`fF)r%73cWs%@ic7{?JdlN
+zwuR=oq95B#%VK6SqZqqrUMo_Vk&I+!41>R72>ZLvAZE3~az!-bFwC&S7@>@_*x#^A
+zI%&+mf}QHcA{d9TaE2cCE<Kg0z3qg~1-jO@U?y#wfcZWh+s1n1xK0SuW`*?%#<o*B
+z%r{Qze6TzR>!M|7`)u6B*vZ)NYr6Ix@MN;FPFj|B9{4X8muG5sgSW%Pe#aitUI1_B
+zMeGiCbbL1>MLSvBdt;jR-<Pld)o<etMmudg!*}Czj7u<9-P?F#`BT59Y9C+jxpC>y
+zU~R9BN5=UZpJkL`9W<+rH4Mv*rP!(EdPl2aggc0xTrSXlZFvRuPppn{Z25W^hs!ZJ
+zZGhHKD~6d2V{y@%PW|J*`C$<IMHmJw7yUCUoww~^=&U-=)(!ASznpR2roWP*18~(2
+z|MRRh%r92IpuO&f8B52&l(EUed=o?Ggvl0`oh@q<!%oN6WXlPb0YiTqq+6-pTmo@m
+zdS++4n6m+c_13nn`p=xzVX#-7*WD4|zlx!Ap1lJ|XBY<h+gK}IoXr@UObv8cP=pT4
+z&g2ARi!G!&<FZZPdF5iAb=Zs@+uyzLobFpJ#<sIt4fLOR&46Kb%<^>|)+!x_;RnVS
+zcd^g!U<9o4hZf|pm`k&@*IeEA1&euO%?sMA*BR(DPy<;jw;3?DzIFB)ef45Ki>bYI
+z-`?xjo)3V=pVwXGzXP@FjEnQOl>w0T4)%F}-BmhlLk23t#Xz5Rh5@WQ%38W%y&m((
+zQ%euC^q7ZUerfp`AZ>%zFvvOQEX`iC?<zF;14CnQ-5_Tx9n05_y{@y0y^CRJ{J}+o
+zO)N8psg8yDcdVs{^_DYlZ7|SZ>B8E^IOA-vjpf2{)?axB$wGVejThFbMXAHy@viRn
+z3(vU#56`fmK2X;6eM|RVdmgXhHs_T~Sxl(mQ%8@Ou{P<LG7K!tud<e|*#~vX2GY?Z
+z8`eLihvIyvclg$Fa?SxrP9QjamzCRCXPlwVW}8qAm$LK@FW<oY?v~Cb12Y!*66Q#h
+zJCsspZ8FnAznB@I#;`V-uVE?m=Z3n@I?(plERV5XN2D7stkzZvWt%fpf2khp=!W%2
+zm`|<Q$I4-5FV()fVJYkA5#aArIcr$i%zf~S!D}pF-7&`N+qN>^GC2DTOMfwENWT2=
+zcege$l@i?Hze*QL`I)!Q>a(swVON%Z`ib^;8(4>z-U0@Hhnm6MaBKN@&~{+?t>tE$
+z7^c7-9o8ljmd*(~+bw8M0fViht9<T*miJhg7JBTpL>nzdz;7(H)UMpS!Jui;STyu}
+zQ=7(6{-TZlf@v>hv6wWp6@h^<w3&J=9i{<`Mn?~*8T3tBCMcE`q+lv@LFoz1K)ImD
+z)A(P?{AqyE<9IrQZU8yyD}Phc(X(1D_?M|Hodu<7>7ak1HY_HC!DcDzgJPmwv{Xo0
+zF0|?xjBqB{6>KkjA5;B%4!*Czujub%i+}Hh|BfmDLx1CGh$o5vC*fDsvnaH7{4#_+
+z5VonFIiTkcD^w4*ma3jpEKxnTV5^>EXsMoUFjdby=#=Mn%BLtyEiEnd97Siz65_T~
+z&BuiJ6Bp%!Ox1%*DjkoYjG>J4f0>@X_(TU0p*obul$u0sZEelRj&w~T+DxLkf~!eH
+zdmlh2m|BaemCsuCsGegv0E6}bEo(J~DYmGe3F%Ot1tDH8f9Br@wB8-7T8BRdd0wI6
+zYuec=<BZnEEg?9o;+Uw`zljf8D@SYf$0#EiAw#q<_&@QDR(a|FgWvP;&G>JA6Zz0o
+z-?PfKV9+c0&(!SJEpv<SzB{M-SXzDmy|v9h{&8OQ+54Y-Z0&B}ws-j9hqqN9N6wEw
+z-gWxvr*~AJegDblfBRhw#3C<4rI*W9&sEVT(0>tY!4Ls4Qvnea=-DzvP(TF5zmVKf
+zpkavH3W%V92nvXxfCvhR@PE1NPFwse_Hk1GrqGlfQJbyvU)j6xr0^d--+j_^ULyS8
+zmiM2P!+gT?WOC4=gb#lB{)=Bs-oF0pH(z{Za^#oqm46)j{`%FMyFdN*>sPSh{yzQw
+zl>3U<;6SOzRD7l{&owbV-H9LW@7`K3v??_Z4HIO}*`-;#xN@g+tT>)lf#Ue+XnP;G
+zQE#zZt|HLhmgmwM#t*0ouJf>ougHvZ6Gb{ir};Qby{%oc6^WrS;<*01sb+3mZg*QS
+z=bnulFCoK;@9S3SEq2XQ1lv3D0$O7DW-jjB!d%Ed#6=wM=*agm1-eU)BG8G$GkXxl
+zw{+ogALm$e?!g}k>5hE9bES7O(1rFKo?B}a-v;Q@dDa|1OE+FR<e%y<Z>_JjN)PsQ
+z62;BkO|x<F;5Ot~a_l@3l7bvll6~Cr97E%}hLq(uN8|bDB|`g9{e1a8ZZ+Pvt`bFX
+zXpErT>u#vE1=N2k*vHcbmG8v&ag{pO2gqCFZJl@(eRdA0eGjt{e_VJ$88MJv=H1}Z
+zr3kXO<E1yH;Q0^RaFpr2IeZ^fe_oD40QHZXi{V?l@wmKhD~_+V3oqL1u981VZaKgo
+z4zHp#ns4gn&gB-GbG)p~#DSccG(_h)=PBE70quukxxJNwC@=UUAtPFu-o_QD$F>eC
+z={>6UrDxq!(nA7dtwi~VUIhF_>4UsuK)#jU4Z<#E`B_cTc>0_~&OIw<UW<1MpYK-X
+z{lL0gnSY!&&j0QyynX2r9A*BY0eQ;wrTk33nVScfJ7La288vYbe=5Cag%b*YySu#J
+zUN3&jidFwoyuWR!Y-;#<TcNBcrJ$xG&M`Xl{$$8Yg@pos$57wC7W?T1aaC1&?{IKM
+zN>XlDtWRcWMx}dCu>WY8c~Q}dp#Hm|+1+FNA$@Oa+c=i@sJ=X-PTrFkCohw?G_1__
+z>MhP5AEVpwWWCWjH64KtDGiQs9STuwTZ>h3xjeT2UPC}tRa@_Hd__uapgdqMCKS?7
+zCkAwsC1%D<1eH1^djyFJW=FV@DLGXWfsUD>sUh-dVSv0$=*0=KY|XIuNDvj2v~wdf
+z#eqPN4t+2wdZ}<q;N^;!Uk>RD@3(W)TPi0QRecTRKwnZ=$c?Zn&K!;H_YDmRs-Bvu
+z%+G@Mj|MuXgk}WDdr<xzLp@k!c+W!icplxBm)C124je`0KPa$VQ&?abkv%uNZz$~k
+zP<DRa3L9QtLrPNML;#`}TCORA{M%aUSGL&qlnbkZryltWDl!YIMgwOv8#4UIDj@%I
+zRDOat@Gn2l0Htr0)^wE46ty_Uk2PDy%355@i$`<3?lt7)=e1h{-4^mUosS6xdbwqS
+zv_;702rXNq>_hwoQ?u=&^b}}+9F!0A7Llo}MHCU4?^-dG77`>VoM}&tu@xlb$N5C3
+zrdP@pf}D;_tKuwW`IfOswfEaSyi*FG{&T4QR=tIVmJ!PG`|dS(B!obEK_tj;v}v}!
+zA)=1kQ&eY}CMwFBNJ!6$5C$a{K5`ah*@h%k$2t1hI|g)=2j_H@yR{U{TT*)(Vr!~~
+zp?$?(g4nuPA3ukPI``?KLd*0Ku!Hl-C5n-z#;W;{l8OXTLXwqLcC??FyL)7Woo8qg
+zH*==Wqtw(c)T8y0m#wLr8@F5P%DHP5%xj7);(NJ`dxx5KD*Wxec+t(t`~*R~IMF>X
+zGb`5BqwI0Atrt(`6Uxg~Slo-|wLbDp^EbERT2BT!`dPd3BGc@Y_9Dbo4)*jeFSFE+
+zZwmJIVYVyBHxByCOf=t1EcFge%2fn;b9k90xV`A<7J$8Q=0$?N@bZv(hgs+1_M|xy
+z>?!oeY)g(e*xRV|yZnfduFRQykMsmPUsQfFvRBh!ud+M>d1W*8p$;w*@8S^4=0IC0
+zzsZho?IPlONb@+pR_45>^kisXwRf0vr@|r((%bbUJ14qxt*sOMe4!$!{8Y1C@8UYk
+zW{Z1aye7V<t*NU!*ZpCT<2|r9O<*q^Tynij#N&ztTRUFqte3L>9@fE1d)H*|%jbJY
+zy~C2gUN~@g<$ZVg&gNXM)nuTflbIW@g?~?JFY4o}6oFuGoBHhdZjis_!yvFn7QCj}
+z;$&|(sdq@6T-kn?rWmkCNnDTN+$d%FUMXHEeJI#tfxRQIylfiU$5pk@mDik}2KF5C
+zuN`d-wslmN4{YU5)mbU+UFmE}D&IxsT@o_hjLI*avGqdZiA`HBq_^OeI}~|&xm0=I
+zPnw!X<+s>prlRybYuuhk+22*xzqnSeh==@}`1d@WUAbJ#i6EzYU=Pb?Q~36f|7@M*
+zf+^U;*?W&X_iWjEXX&XI=y?y@ciITsdhFtY+u|IvLhC0&o-HaAc(n~Z+Siggy%10(
+zYkxExm}M6tnTYi%kKp*b_gKY&JuJSz61RuLTWrN(4?D*9B72xxEALH=8!gA}(O?6z
+zhn_rHLuO8m9N7y$i?(tLSLsk<a^`5zyl-egU{%}9aB!AgWnfoae@q0YPOboZSZ-bc
+z^nTw6n;@HlQn_Um>aTH*U@yTQ1|xfD&k3<X<8rJ`O=+%;Po}tLRB4Zt_K@oZ{dr}q
+z_h5sKg=JxBm8DON6zt(_PjN(nrA}R~dt_ot=BV4eQyMR!dTO>xl5Q)mnTYerjNk-x
+zDH3Bx%R7eZv7GSUh1mQ&nx{u@%RO=YD3qTXUTC$Z7RLQyu!n=luc^*6xM!1F?imu4
+z9~%wyI;$Q;cWbR*nd8;l5|W!ZHRI1sSK1q>KPO~VA&Tp05v9cB2M#!<#pPGEqx3P^
+zH62y6#SMNIIZ>__*$S(a%!vfB*T`OaT7x|l#OB+~M@IOWXE$4z=L|vn#me?4gcRJb
+z6h(PK`KD05pG9_*n`^d06q=PE*gBMI84Ke{t|-bA?3Jl+jJ;pLSh*-$S|JDpdpYQo
+zW@+jX+*D=F0ehAo>x=5|4)r%rhw>#s{eGdArb#t(d4edAAB+dZVX0uxQ2PW$G2?;h
+zQQ<adyfWqD`TKaMddFwCh=QbpuEoXjY=?UdabOQo`}pprAvQ4_ez??iT39(+27Vzn
+z1pI3qofuyG-qwNK+RA`nL1j^TkfnLEeR4`et##<5abcQE=KaKe{%mxRc`VPP8$1V(
+zYRgiG2gzwJosRW!HiM?N5grwD4qmwhGXG$Kw74lRF?hbWD8*J><y)WBwcwnYA{w&m
+z2}?+fx3;#<i+1F>dNg~5d8N9HI)eW>Xki=8E1$J>aC0-~^4j7#F|qNY(%zKhG+~ub
+zeVu&3G}6hY{BfpN0N4wUsYLHA9`tvIXubp3!+LSmLL%6coH?*3&Zxf!bJD>cHhcN<
+z>ub67kGh26&Y59}t@rxE%*@?+-Q9tHF#!V6d~aV%L{eAg<2swt1lxNa<+Gli0nWi(
+zn<-gLrcEN)lOkIO*KwcvxbX$&tdzu|l-Y*Z;6!U{tGs9@7dMY4ewb%OY*)tPd~T_8
+zSeU5)USEo{tChR;WP)F&WjwFcp~xZ4Wz@S^XgOeEdk^fFr$a!ZrMnF;KI?7()PE+-
+z);>w<T^}M}i1&0v_Al8#(Gu)!d`y-L)ZaeL0okh}Vb`F!rxUNW@19o>*h4EAPcnsp
+zNpp|t8+^dt)(a<^gTY?Km1cSdSct4_Y-CxP9_H3f4n@fv*DCK&>rUWLG_Pg0D4FMC
+z#r0^*^YgVd=QT&BdD_S2af%A9%Hr=id6Yx>*5JQ&KMZuVv#|jCSCpJ;mgflezA4ZS
+z{NG2OwmfG`#GlB!Hs-uC`yyLDviBiV1BszdU=Qt*k^gLM9qi}JbKy1Hg*jxH%e;%~
+zCYs~zoILvP-Agug<+@u<BskfDy`7&ePE7@SI8$di7z_6BQLmS6%a*M-^-jI8G#mUw
+zuvfh)ae}s3pP1wb@DJ+>f+O9A`u65H^cM4i0^9Gm3qap<C!C|R(!Ar`hb%2RS`w3s
+zR=N#3MZ|)C=owNq7$Y0s8#vog>=PpIu{4GLUR)0TqhCavB$w7}Dk;Aw4wOTGjPSJ>
+zE^~FQ9101|ny@NQPqhgOZoA(hNcXHw0RP83)vs<$!Ht!+24`i-UFZGMtm1f*W|)U~
+zB_&LF_;ONx{5upDrfrM%(8`Qgjp!-jpixtwtkCdD%a>{k+#@ZEGgr9IJ4HZ$uT|1>
+zB#Z#ZhWd;;_ce+B<{2TOF%qlRbbHI#>dDf){0uKa(1deLWU61>sKPB?+G;ge&xlR)
+zEfPwq3}#FdOT9u8B)lx2R7a`n>O}w1OxK|v;Lqb?VPJ6EY`Y+xFNiG!I^WUXbx4#j
+zR%QkE0PK0Fjm&cDftg1X)PLNA!%6jy9jkD&khTgVybG-qQT85H!QCYzf^_hI<#AAd
+z@be>GTwxyO8JTZh;g}jwQv>5gVg)}qF5km1DjeuduCB^?n%Ek(KUOSh$_w$~yT_sO
+z?NNF}5An>(cL#e2^nzxfdj-c<d&GFB`UYl~TgY-+!M`lDgz{my6tn<;P<oFn4&M*_
+zcgxte){uy(I;)m+dzc;pe?vH)!k`J$=&W#We?;$S2}$!CH|Iowy%iTUjavKgxu$g<
+znJ`bWsBChJhk00X%!Gwc7T8O{)Xaz=5(FjWDf1t$;3l-Sx`O|V__ve6-1zK?7gsbF
+z<m3iNv_FW-3kfQFoEBXy5f?w2Na43vG*%7S&9o#~`6qcy#rif03xnro`ocnEyYChW
+zZJM0z(nRHbUbgbd?401V_P*w->Z<vk2Q8t&6Iu1uUHxqpMZrUMvn_eSK}lk(yv)b|
+zD~~3J6x-A|Ij2Zy+3e;SX5G?v&mqXo+})!)(7Q<%7(CZd)DT)TnpIRi(QKOTWLe&O
+z*E23&WMzx&MSz7(sePtxnvKi{?4bhLi^{&c4*qU7T#s(BhdfuXXTJPmiB0jNu9SOi
+z70FeoeE)cJ8;{9^=%(1}n)%*G<q=7pS&!>H(h~07vn=oPw2iX}6x&QmGc!GcJxaZb
+zk{w(pkUboL`d2BEXDea_@gZXOyp*f}SIZ{*uw?K*V;<*wq$%zFz1c8-E0sO;h_?oN
+zn4D%d>I3$$8SJ4)>n!9SEK0O-&&|w?gZj^;B-<xJ{X^vQ=3#y|$Q}m7TUsG|i0m!c
+zL)#2jsdu4pLTL|MX754!z}^6VV&Z~<KM%@NV@K~6g;<t?J@km1wX+R~4^FhPmX$;K
+zHc)<;57@(yxUPXjhs>nPzUfeF=R{-=WA0j7f&ZFp3+Xe_JRu%0KgHU@gX;<7MM_8l
+z)UPNM{9g{(!_s)jzr4>*We@XUya0RXP?Tm5`4@}F2dq*cz5TsV7c^d32glq+;}z7O
+zV<vM1d)sX8>F3c3?Q<~)|9Ude&(0nBpT)_@9zL!chw;#tHvsdGR<MWQA07pJxYN@^
+z)?gP`-Dc|Rmlh88uonC$x7NPB*<cT?0|VP0$hqKu<aU`xr>FYGyAE-oKZ8A75jaoS
+z!`zl=Sw7gqV%#1&x3vmVGJ)<FE(Ck{$TYFS7VM#Ov}3BT+eoRhKl3BUty(#$HVMJq
+zO&#E0)FyP9a(u$QLxvS@U=I^3vgGDvei6tXHsx9ScqPT=Lw~i0{y6Ps+TINIKxl)n
+zTPW?}J#i4^?-LO|Wp!8x_7KXKL;cc#PO^tB^%=N5D-$|I=3Bvh)5^4ZvMH}HiqG|j
+z{9{smEyl``e`PgTgzRBGuck&H>`@k9U?xHK!qH#eBk~_BcWtd_WJ7<p27CCRoeLF-
+zt48)vX;0ibS_NsD@}Pmc;g&MX$p>cE8DLNI!Jgau#g3G_SyZ+P!#TB<72w|miKb>p
+zJTg4vg5;(?G05JfJ1gy-PaV{ckL)eXS4&CuFjB)FIwN~0^Z|QQhwKeXucUjGj&qSc
+zbP?Am>F%aLcjWsf<dnGuf<3f{@^Su&T9G}pa;e4b)kqoFyi!TGQqrw~zdVkYN6@%U
+zRz@oLmkZqZj-ilLu!lZT;a0J{{H6}2J+0$qD9ev@H3xeb5d;1w*vkaL<b!q(l#vjx
+z-$;v_Yo)@q9Oe(+y~RgNp4s{A58BTU^bU3er;YSA%j&XAdmpquo(Oxirt6H|Nb94q
+zp%j=;2TT2Jr}9!tbEb0V9`%)n`rFhO3N1^WQ|?#g^!0_wdxtxM-yE4Oljo1k*FUHT
+zt?8;SteYquZmrJ+KfYX6Et4kkWW|wj!HF`5l;m*#uIR#At5Ua=6j4s!z2sQ)_(adP
+zK)=?Gn!LG&`tk>o(fY#biBh-HnBW}#-Q>8c;1FAz+^m?mcmYZuku;WBC$1WF4fRcu
+zdijRNT3B*Dhl9OigyuFfZ(oPUox*j!YsJ5`wbthirp#9O2giqaPR3_8Nyo?L8u}Cu
+z>bUjOg&q;+VPT0meV!?CfmL<3HegRef+7E+6nnF-%({T_=C=O&v7ylWitOq@X_9+h
+zadbd@qRc)l<w2c$>-4xsL`QisZf_Ig#WrAXGeZJH@@9)ek^czxzSP3=o(<UB<hYvP
+zI$K_DIoLyiY$hx$H7PH%E=1mJl@cSU^y&?Z3rrN-SjT5&2`!MlwaqXa%P6QFZE+2a
+z@u&p;_`6wJ*-Qm`x8_K4QT<c><uP@2R%wa%qD8T@cFA#pHFdVuFb@m~6hZwPIOe&T
+zLh(euRcLvLv~RkBXOWobIh+?`=MkSI^G;3<m&#kwx{P^Pw4joIFHC5`wd$P;_De~M
+z7vw!EZcy4wu!rWJzBVAA6rrgo(Q_&{D+RZ=$@b>p-;2ka%~LX~D^q(Lc!8FQp4Kpr
+z6}s8T?4y%2;>I!xYbVOgL;aG#-iEq>y|)2-m?B6JBmRK@$wB_3`Mqcxw4MR};n#Yn
+zwjGTdAKuw(liT7c4%T<ha)SAw;8`KqL-UsUy$RmF#Wo3n`e2Wu_`!Ky9$8VTz6tUn
+z=x_6a<dhZQ-=xNM=5FrwNNh=wO7;dgme>0Lu0T=0`VaTGxk7(S&RP|$;G_y`YG|_~
+zq6&UULYD{LUrX`+9yO)xk8z@IuvcIYW4n<5<m*2&<m#5wD#*-O0roN+`fI+jzXrRE
+zEBjMiB`ROpU#(U45YatDV!L>LobZf7tHZ&S=21|7msLd+*aKdHl3tL@i1n#x^saPW
+zEsE`^0DDu2+XLZbYn~8QWKz{%=a4-SG!!%99i1N71lH)!jwEG3#C#<^pkuW~e0!^V
+zOT+UC-h;p&QTH6;kCjUS7ts?s7TjFhTLr1nUBN?OF9O7q%_GYC7pUsLpt5Ip{o_QF
+zU{9j>Aptml!Jasi=r#eO?g#BcC_io-wGa7+&SZP&BF=AC*)uNAUsd{yam&_$RGfc2
+z&SL$5|E}>G_E13BLw6P34d<_r%wH&fikB4y?HhykLH?<naZA4_Jb#%rIe)x<;Zakd
+zA7G}%6HR#jLYzKQj@oZo1oH<Uzs3#c&wsUZ)#u-Bc<;5ZUN-#fwY9Ik_T}l7pPgT_
+z>FJwiRvPSGe)ar~Wk!a_HoSNKt6j{`Uqjz7EygoAzxKWJUmj%wKKa_0Z!)f)N8hJc
+z8l7LV@9D44eEJ`xhj@n|{nvnxs_>gDufDeSJ>@r~KM3iKOqPEJ=|3|(ruROiXMKK*
+zNWVl`j=?!1{bIh*jyDZIgL>>!*6#?Uf9f;C*Y(~zr;(nh|9ZfCR$cp!_?=2$u1df3
+zz4JGKPsd30{|eP})6QqF4u@}Fo*g6*T|A+GsDH$8MGmJtbvj$HFj*;z9!V~?rk#2D
+z)v?YFefyEbr~%B7F26tBTU6<qKA967m0jFh*FMl|-_a$RObL-Rl@<hvM<28lO;4FO
+z7gmlA<rJ3-+r0-<`va@E7vJ6V=D=_#<e!<k#^}`H?uR0W;pB4hh-3Y<Jh!7Dd88_8
+z!%E}lJ4&Vpi=^`OZsSwGRVt?CQb<3VJ5~_t+|fFkBoU9^Z<vPs%L^;VTC)cm^4rrM
+z7s(~TqGVG^#%QfXI51mm-_w0zHPp|iBQ%EB7O{OzNA73=zg@(ctL@4ko$q~69Ov#h
+z`B3DTJ=mL{H{fL7G11YT5+WZeO$xLg?eD$+SejTi<?lX}J=jv%<~Z0`RVCu4_}4Ve
+zwO7@R&1I%Ombykx<+xY0mN$so9E)dVRW;T3<O0sz!-?_H{szc@)VsSt5Y^JqQ#aJ#
+z%kLN+ok(%6DlH3%=Z!w-ou1CNYA*C2RkRHD<S#hX7tK|TiIPLAn&vAd!uh#O{==!n
+zvYtuz%+{7-@$$5yqUGal1+OQLlrDeg!p&u;m+Ufi;c-uX^~$>&7}|_@=oh_X$JbA}
+zCdByLb9hgEzUnV@V|`j9^qUncwf3%mN%yHDw@UA++<3nn`{{zp)_MM@;aF!%P(iad
+zbimQp=9$N1W~GJDuSOt!CG^`l=#Hv>%~SPDZ<XEPsrvPw^#23;?p-havn{-SV?dmk
+zd-24km*?6$<^C~|{OQ7AMM0%|rYql%M?3S}k&cP6?!FEoXJFWnG4`P6@q_p=@5vnZ
+zsNv$4x`c8LzhfeI%HCO08Y3{{<@U7{6-iy2YJw^iW69+qvH{=JJX1^V`xiF7i~5&;
+zj5ptC)ybEpCPfZz5upDL^^av$xwVg~1RUsJd&e4k79!$@y}P?l{aQIR-IYD>$M2Ag
+z7NnR~RWxyfKtCHE7iGJ))WpgZsDHIN_CCl9O5)m?O43UUs)TuWv-mwm@4r-#;~wb>
+z?S=L|C6nY9^yPVQN((0P!G45?yXAOKc8h)+ZfVGm2Yx{N+CcwXW4IQ)+_{$eB7dvq
+zV7E5Ka6@^a%*QW0&XmWsbCy(;)>efC-1X)^@Rvsx1dLX+ho<vnj>WxTp9HhO&(hl5
+z@k&l+cq;I_pwczE4eUokYX)DIn>)!jlVoH9<8%8P5PzbAU8RcQ;_^Ca|6q86vk29{
+zv^6P691z3dBmNagM=P8oe0Wmtp$E`^1vVohj>(>vuM9_QUzQydEDAeiav1F4Dy2Ql
+zd3Rt^niw;j+#nu)WBcy0t`1}S5lIx#SxS2-1$!tBj?OOXt!*E8oZ2CmOf1^Nrk0ZF
+zVe?XCuZD}j9{LQX4g}V4!`?Hwh}+xD)E?uXwm*D${0_2*ZJg~r9kLFIE!e|;eZ&2b
+z|C%Cy*Yt-*$8T0HOm`uB*pVlnNOm4;npfJxmcHq3^RfbD4|`jt+R_&8%Oy3UWZ=hq
+zfkfCp*N{5f_U>|t(jI2<+9G$X275TkZ%^dR)pbpQJ!~wBclDlVPy9Wvw|6QJ>4RKu
+zl;W?lhx5I&)0M%cU=LCL1=94vMp>1}66|3!*u#Rn{;bsLO0b8O?pZA@4PqImd`2ph
+zRNre4<|rPHPUZHuG}ePXoXSaz&MEG#9USQ8OUEY0?aXS*nvgwgdfYdiomh(OVP(Vg
+z)PiIE{eeKRhmik#ZLV<6F_ZszII*;Q(mkfUrQCYKp}1sjqC;{#cqILmx8D7hcIoAv
+zGU#uo-hJ(>4HMd0xzHaUj-6WH?JDv^_H5a&OU{nA>oe_;J;b!1USFZR_OY9pcXzJH
+zsikqcpuM$>FE^MpOb)6oYXbclBiX|oNZ$_jaxQ1=PkZ)1KnH*0yS9k>jd7+TZs<w<
+zLtqcPD*a;Yk-t$;8JyV>5y=~Q<GDQ@UGi@Jn8>Gp*pS}wV7m8yK!-OP&$Ejg3i1a0
+z_-&(-N&65<S!+@(Z?wPVKG>_~nxM9!v7+)?sn1}zEJ%R-jlcJUy{+_#vF}|4{>G%p
+zu_GeO8tmaT=zlH0L*z4{5B>)9-v<F>j@`z`zl8oJmk#*a1AQvRS>9BdRE7H+!{%i*
+z{vF^C^p3ZsJ-#oK2`rKR&ec}c=FL~wPj?I060p~<d><ZaUq>$3Ls<y;8x#4t^DT`J
+z5{A9O-?)?A0QPVposZfF{zhwSNG!5f_lu-fO_GFR#TfK2nd4AnY%JJY=bGlyhgG#z
+z^D+GUm2P0KEGkBdDy(IW3q9FE)k=F<@o=IO>{Da73)sVKSKs0L<-&vt4quu#F=-F|
+zKib`eH`3HQ4fd%y*rG!*To3)%XQ44KR=~A$ku+Bn1_>*pefUK=uB8Rp<`r$pk-Rpa
+zp~j9pNp+HGO_b6e{(aFNo+0evY$a|F$I@EF!@q9-Xl#{+JzRtA;e<3e2JB&hbYQ{0
+zO)eQv1$$Ug5M(`q+ruWXS3@v<2|-?|RYAeru+MONSm~&?hhw-s>_hg@4!4J!QU3QA
+z?IC-W)O#Tu*~1jDhjX|+d<6Ee6y=ZXRa?Zu{f^ukksa`3t{_)9hTFqs$R5hUKkSIy
+z!EPh$VIi`Ij~gFo*h43No5~)xlI&pt*u%WXtp&35p~h?&AMO3~o97<p7Ua%l*%t-4
+zMNU?_X5}=f?IB+t%&F)eoy-{keE@qnnVpEn3!!x07s+ef9`va-B!QRHJoxB-wpCee
+z?5HBU{_#}1V||G{C>OW4wN=7g#~3~uPbNoPvqp+Dt=k<Rm&{AXB<~5^(qB3H?p4~Q
+zC3_a_;V`m?&HOcEr}VmWPx%ew_V90XLu3zmU=Ovntbb|U65JjhcdBe;Pa=CbYA}ZE
+zVRI>T+>X|PN4*_!b5rIyifsF4Uc1wL`23&t@PC9Zed@U@Z4nI{<6_0!FtPsOxrbd{
+z{yve=-xKF0Qr9e3eiX0m()L$6CPurxMv{EyMmkxeO}#x20@@sb9z9mnQk$pn=1WJb
+z$L*c-%c6tLcsT<VCHHgOnyQ1^6!Nrmq0F~GJlkIg{)YbPxpv6kH`2c6;qgP0lZlS<
+zh)8Rhcf%~`XN^}!5~m+C+z<1Up2mQVbY!oj3y-_N-lj_PBoaH*uCmrdsdY|M%k2GZ
+zw<bYgn_{d%rT;RarM-E6Sw*2tn0q(f{{C?Aa!I9mw3WRNPnO=WMp`AQLH4ksFt?!c
+zZbf*w#fZ0LB=GK7LrYzJE7+^iiHG*iHLWedalFd;){^@H=1n#6U=QmnYV&--KaAsX
+z`7V%uowQbZH;UgF)E+6RGOZZCUn<V^Q9R0t3lYo#KU)g(CZ$eUO8>J)<`&bDS|LRF
+z=g9K&y~YYNQh@O}gRL_UD%~OluI-AB`%MLTgNpF%I3btsT3FU9@fZ91`S9=OI+sfF
+zMk+eeqIfdD{zj>+usYdUl3{WL?BS*DujasfIqcM4WDn_5+#dEzz#hsY%E2BU`e@9s
+zL*Hv8KdPUG>>+#2eXxfTu!m#dALcC#f<4I}NA{v6DG2xp@&bO=_>T?A)3U^}!J*V_
+zu+L$i?Y)S`KPkySl!HC&;B0@?CX?s$<r1HM6Xs_5OVeu_{oR!IP`bcgA@d##2l{xb
+z*=SQmQm%O9Nb957Vb{`X|6xU5Z)-tE`a+4cN+7Zy&5x=m1bZ@9j_lzp`Ct!SRrXK{
+z_OMSb;wTDNP3GL~ZEUpY0DBn!&#~UYsd!`$N9C(h!5%{Wc{vM%GxxzB*2KHEjy<lJ
+zMB`Unf;HFPCBM1ip{$^CKHa`Cr~}$>o(1E#IQMSFqa3NEy00pjQ(iqbDTVPd+-%fa
+zf{!P{+*T)kW#0I>7udsSZUQfRU~r}+$GlV!+o2e{-&@e()6gi5t>M}SK>na_QeSUA
+z=zFOo$0DmE8Rk1MzI9aP)+F1=BEcShL%XEAQ|e;9Xb*F;eE2<MxAh+8iu{70KN@_o
+z<Sep>_Mkr-FzqcXUs}hW1$zi|Cn?xNDfoY5w1<W%U=RI3f8-Sdk9xo!N^+4sg!zxt
+ze2F~g&-wEIs6C8JvJ5-9^03lgIU#!(kK4oWC?1-Bb##q(_l<-^&5d-iM(;oFZ45;E
+z<qG|)wKiUX>`6Xh53RFR_D~SmJ|s`g5atf~fIUgV?cqo#ZV!zJdzc0Guy`7c*T`Ne
+z?cx32-o}7o?}uc2D3eI+&AOUfgZ-iZme1TDb}NPa6=OXW$R3ttOT}ET(WH#le5tU~
+zDFfNVjglPK7%OP6EWNk~>|y?_jK^t3_K;H%o&oj>>>&s2VL|Xh24N4IqLDr1R5U)Q
+zvS<o6A5nDFR}|#>c!vwY9(uVXm9<s})%xG{0ejdMSsgT7F`SlRo$EU^6BiI7Dn<4%
+zUpDD~Hy!e?^sWvxje+)y11mE4IhED<eWOWHcEEV)LPbeqm0P3;<RMQjt<4+k505j0
+z`df(0S`y=|lR#dLvbLsb*>HtxxDPMa&nG-bS}U+K%a4-1`sNk+-?zV-6dPh0e(L!%
+z3zMr@LcetTGFjl9EHEg>2F9<k-wuD&-X%94kSF;d`f%yvHIadB>9Rn#tgh77+7R$p
+z3&v{4y<Nm*Y2dHc4Q4bpRkcS3#^)$JK;B6TwEWHEhJW__jRml`Lh$GNjBkHDK62s?
+zHzM7-%6Ippf`IY-g*+i=$Y9mB;rox*M8yw#kGG$=nfq90m1NK_7115dyP89TW#YoJ
+z(wXKQm!>$^N=4U$(gF#mzcI;Q%pK?u`h*4th=qPp{Id49m&&pOeMI2T*JSKoQXrd<
+zlmkB-66KRZzt-@(z|Xw4pnrAMw-$te{??9-8+yBR_9wf?@#>t0N}7Y>OXFQf6kUB~
+z1tLEVTIc5axQWXe>H=!TejI+J+lXUe{BQ*~B1<gtn}3uPP*+`^XTzzNj7$ohDjJ<2
+ze_4D`3^%+?xv#A-r*?b*#xJyAyjIaX6B*>(6c6(13Lh$vC=}r#VBb*wp&&02$g4@#
+z-XyCUsjvZklPG+`3*rQVez}0N@93qg!<P>2MD_XLy<<0qCYV~NKhEa8wm#c6AO`hE
+z>=)gC4I3IUQGXo5nA_T4)_Dc>*RiSqztP6|Nz`B4VZQ7XRM5;<F5oxMl#IEQ{%Ozt
+zAK1g4FC%-nOdMy;MfOn9-nGgf^rx{hey%#mEz8Q@k+6rx{p}$>N_*He*c+ZOoL()n
+zh(Y~1xE1>QSoOG<i>NFGI+7IZVPkH4Qv&oa_wXoTJlI1ql!xr0Vx((Dh@aXXqWNr|
+zPx(wvP=57Xo+SsZM}a-;$w(M+oP3ygGaK1Mg<mT2ulQ!wU~dCp{!%g1nA6b|1o_MB
+z%L?*1;1Bp)bNj}G8PSOW!b<30_lFaos+L+r;r6h+C%dYqx(wMXQC_XTZ)rFO_#qi_
+z<;aUF3ea=)>^#W?_<zl4eb4`HMPp;2TayU<H+g+VZ9McZYp8!8vR9IT+F0NZ)Gu8S
+z2>x4Y1}}c7|B*0GEI`k>qVuJb{!UThXn(LE&<w_t3^B?-uCgw_e@v*fhyIGPl5nu6
+z79bDT)Uw+6p@HxK7csZbO;{G47$-*0A;Y1637~(OhjVy|z`vZzS^<A7De9G-ZC@|^
+zsQYlVcjL-c*L7!xk7y}Y9yDBfaBY}j?~+sQyXC9&7cSOpnA0&>dNFmGA!Dh|@~@6P
+z%|Ph}e|&jzY|>zb(e-IaXQYr9vh)u22@PkKoC@9~U$t^1tYkyKj{d;K@Qth$^fk-A
+zI%c@?m7VRVyh*&gX}r7wC~uw6@DY>;>GVe~N}xRb^{RAGp7F}X@`?@QtFHI-jhr=B
+z$m>{o&vc5{l`J_PEQRvg!)7)N=;+UfMbKsk#wIs@b!=uHPp4Y|P?>HR(ygdv={?;U
+zVmQM(6>LJJGivMq0Me}(>xFczfqi?VU$=k8E@&$-XlGrouOB(vsc7$BqW5%xWnZJ=
+z@!-7XRV!twkNR_sJ4(|mv4*+Iy0Nd0)mNZ&l|QoUh9TXm&x-1E&URK9Je+}aqQ1se
+z$Ae`kUHGF7RmP*G5e``IKzr@*SI2rPOrDb7l>T(6w!N+`+vu~D;_R~%<-^l`PaX7k
+zoe7%^7Ee^@$`c)J%L67PK|T-V>0zS8;IEFwB+E8t-^~8$u&_2nztHIOuuSRMvC3|n
+zo@IvvTxU`y;|s>Kbh{Eco<ji>)$u-E^7IywWeudW&4zl)emYcFTRjZrg+=Eb$;~db
+ztAC0e;98ti>6$!|IXfZf4{Pv{iQ^Q~#Ej5H*Tk=mMLNhfzI>$$=0{0pN!--fEr-kN
+zx;jH*BKak<;Q9Q(K$!n!@jCv#{gukm(TDvVAwCNayH*VkJf4n9XmbR5%xG#$ZEl4h
+zzf#q|!vtnL<nNRqe+SL~QnSRlLw+!y5OKrbH~C8Ouv6K;XWMRXpBNE2x`%_m<GZ6z
+z>OY$AB@_7!(G2&GG(GN#N*H#WXg_{4ulI2$N-qV6%HCWK{!W#3c4<pr$%tDinqQ9g
+z!2FLhSdtTzWC`<$j0zE&|7G!K^^b4QA5Mh)BVj&qNT)JS4)qss%JWxsXFK(l;PZ(S
+zH%EJV#}gHfXg*<-8ZfG82@bN(Ug#~kUzG^+35%i8>6XbVWItej>=01hTu~=0klu~7
+zzaQupDUn)K3@4XccSLSK+%`Ho$sbAd8JaX?jWkV9-w%*GJ{&pDkv2>hwhs*256f3-
+zqxnijQlPcGl)a{BSTI=NZ{Awj%kCUW-##su<-&Y!RMG!%qA+(Z)4r!Wc(D6nuuo1y
+zxp-Mx{q)j_j>-3g!xgz}4t*-gXwl)qc<T_b`L7MtazpDFAAWOCV1H12P?n{A6tC*?
+z?i~eV6Au@_zbo#RGwTKh`_f^)3;s?_S9mMfV@H1BaNYQTtGFx~>~Y;tX-PBqSMf@F
+zoGu1_q>9a~xoPLNd{N%r#Y%+yXWD+)lb0R;yCwKjHGat7naJ<YOX4gTt=d-DJh&R=
+zpWk-k>(QPCLy^MK9?`wWx|+k>{dwT;JZjEqD~*pw{!T@K<nB-j8c)2(k}_Hn{l!v0
+z&^Ln<AA`TcNrL%$RmR~%1=$l_^LbEz$%=>I&orjHjd<tj|K-E3`oV4ij3>2YT`WhJ
+zt~sT@qZph){!Wnjm||kO;-Tbje`AOlkL&GPIM7fnD+qCl0{(!18fZ}g`e-eW+I^@p
+zZ*&6b!@|@GZJ6K9h9``9Ph_8P%BvqNfboRi-qEGy;L<e^ElA)Emo2bMMiK|B6UK(}
+z>K}J^a2jT%{t{7YT-Us!I~VB#f3_{Ye_|xicdRH&JnUFrGCDe15aQ91KE8VQCrNiJ
+zRxAClpjEGiOU53e@isakXfD>(B@2zW`5(4!Pt3{hMB{CJ&6tru(KLg`<Jfq!ENgz5
+zavwu*j&NKthW1go@I+2gjhR6s%6$^nkY3oT{F&?c+U8$E>qZSx{-q;-*&R?7<b?7U
+z4YfW>j4M>`gQ(Y*ZxsSY`B#l5eAC%D^pFSni{c9N2RiD?Qmx{6z~7l@*@$u<1g|8c
+zK<ww!2yQV~ktd8w4UV%GBmb`B?T`F(-IV#~XYGDDu`+)g<sXsQ@lfE`+^Ec7p760p
+zNt4oFE6f=;9JHt&Kot%4YbuFMFl~y3@zdi`2KckeeKOo33vqLJO+c+>42Pd-F_Io1
+z-`<M!EkCRErKC#9_&oA|yE?RL6|E)d$p5WMaOx^)trfL$_=O|mOdq%E=48mIuytr{
+zbDsHJJmf!7vM^cYS6(7E3*kB@RL?g^Dr?1%f7zJDT;7;PjC(5Ro8LmCG*42E)~g?~
+zcV8F!&97C~$IbAqR7uW5+&_w&b9ObWK<yQOT=r~mWv#Nk;WZ;hB1PE@?mwA<JTvfp
+zEji$pj#=Y^apHvg1`+!N)&7;=>#P2W(xd!a#$LZ1TNR+>rx5&WE0+T0zLrK-`_qD<
+zW~IFRa|6ERH8wv~>Vr#dwIZ(o*N35u8OR^kht#NA>mi(<WdAO@<NRgkDi=Rx{hfBb
+z6dX{1*FUlSp(v{?T$%r9z{l1lWlDJ^=1dwYENYeV5@j`)WV)H*`T+8>M*D)0K7hZI
+zDlw}i`H!v2{IkklN~|nU?t5yiX$O67E<to@Rh$zqwOOgpFwHO=vcUcK>Y;(P(K53+
+zl>ft$p~?KAijrXPcl?41=EEfc%6&I2c`kF6xn|1wfdu@ag38+J{xK0pxMbI7)-Zoj
+zw%5(*EmU!}yhd<-$CN#5RVh@qmoLdN;yMxX%BfhCN2O|?7S6BmC;7ueuN(c&SLs7^
+z-fNeg16`bOdNY(?i|<2Xjl9Pt^a120EWzakbm)J$ytqT08D9%k{;8Z=f}a}x_?TK=
+z)*vq{GhE;JR_#!J2F`Dgm$0O)0N1wy!&Zxe0X%&f@Y@C7$MlFZx#-VZSU2+%U26Z}
+z?>m*fWED`GkLz<g;twvbz&L21%Km`7ApbJuhAX6xG8bH4sRIS#*7-(dvp`;uKdx_i
+z?Q{NBBTD;L(CQPOsN&Bir9Y)xI9xz$H@aTmmyP@|<WEf`tt(OaQ*Gfh>#K}9=EA*@
+z-}kuvt78+$@B6a-Gu^_rg0}Wm;J+ciuf1-G-oZ(mzG6IGhb*nHAJUbka)+nqDhu1b
+zI@Z@@vN7jt<WIHN84MeJUR*3a+tt!GHT%@TLd!?tor&Vy(k1d-NSD_=+5~=I?_7HU
+z_-}m`sGd1L9<Hqm8JhxssyzEhS9yWm?8bwYU5`^b<B|V1k?3Pv9Mm~#;W!~{4HG2h
+zeswG>MYcNbX2PjglE8l}Fb4lE=&j*^DUbS%I|Af0sZ-#;#psTM-!~N7IiA27AFHUy
+z4}o;$VY0OeUz?xa#j|p+tv0@5$8p=7<6@bfIiurN*~H6np5oc})>^m5fS%Sm4;6}(
+z6Z)@?arn9H*qg4WcX~)HJA#eR*+nJ1l^r)3Qr>eoVWikDC#beNb9P+7u~i7i^WFTq
+zMk8AiJp|zQrR6_s@wEji&!vEC{J9;+bysB-$Zdx0R^!ccb(?x<KTxac7u?oDTrW|1
+zk|m}$txoUqNaX5sjnCV0g5Iih9#6`8bl7dAm|qoCXKgn<VeJ$)XeFt2^(z>SYDo0(
+zK<NtBT6}5!w=y2mleN%3*Dbi7Y((eUU2`4_?FaraFGcC}UOWHQ$omJLmyQp2l#j^!
+zmhXM<Mn}rCba7x+PHUbhbNAl!H*y{B4_GCLLRvelqZY9XFQhdukn_s(=WoRG?{5%F
+z6Kz`aI*MCHCumFF-!_m}m`xYEON;KhSdArkh1nL>Ch0uR4~b~YELzdZ?+bG=w<zq9
+z20CSWNTy^y#SW>iU1cGr6N5nx5g{%uDSTOB9!(r9ZHUYcmX|#)3gg?zT9d4+7ThvZ
+zx?1@?VX?u1-PYC#nNHT`)sYeRJUOmoO(CY}d{=Z`=A50Eshg`{D#w+RnPWN?H0zgU
+zA0jIY5z7_={WwW34<h-(1dr;THZJF`(4sEVJKD?3LmHXvlBW>abHqU{k$e|t55aUL
+zI`8W$PS3c@uP?A<KOPSWN9DIb`POdS+G(k~Q%qb<SJ}*ihKP`^A^g0;-RjIzI|reu
+zK;qe+>z(NlUx>~-@LeU5$)=qOxAK%#Lv}q4vBB}m`rqZbRY!XHIuPmGGK;(V@AZZG
+zC&m}>CKF;(xCymQ-YE_dv0dfG!f|vSIKOn()0P)xlkaKc9*OGTWFPI|;|%o|%M@0j
+zeg);|JW6n4f%1G?fO$1K&*AM_85v?KQ<&e2uB$-jUE<><mXis7b{?ivvbo}VZ&ztk
+zNSwSS1lsS`9K-i8wUl@c=SJGuK>pq-=sa*_l5>qB#6C)x)AHEf#@SNPU76=|&&pMp
+zo{`Mw#ATP&)ym5gJ)H_O`|c*&IP(P4bygg^5Q~CRhm_>h*wJz&e>{Dmd|O)^7aM^`
+zd#+C=FTSuGomVlPD8C<KGZ5m%sm)1CPqnt-3A(|By=UVhPUk!E9nGbYMYZxF^Dy7S
+zCUkz!%1UBsl@Q};<t!}qj^U?4{<C$K%`TbA6Mgp{h3#2sxM%Ij1N5qb97dv`{Xv$$
+zC@;t>%&u4>KKy809Nt#(U}Y<Rw#C^zp|Gbd&@b8}e_ZBWpPXjaSsoHQj`XlPpe31K
+zHJQCXSk%_jlvgb;>n&<=5a+fgiRFVG6-Dw^{&Yj0K-Ok$otK&AVpSdK9p;c>HrkBN
+zotuLm#?9SxaCS2fp00G|L}w?A%Vwg}QiXXfAtAECpcuyxm-{iGhn6)xZ36F1kYkW{
+zw1bzaEGo%NhU+2pR~Kil2<f4pjhh(V^HDUBbof!1nD3UQEWgFt%^md6)vq-tf5rTx
+zzVe6=ZclNY$NhNEd)0AscD6!`V9-NZWTr=Oev@}mvc0P$3iNQWqqS(oP|9?9tN{9v
+zdtUino<((#SG4VeI`^T+h1~QuXrF2yeIe*!bc#oOoy?KYL(681u(14!KF?%fAm|A%
+zI5IN;^kgPF*~bR-1o|21VO@^bU58j)52JBCOtE!zl}6UZf*yuN*Om9(v-LMmtaYD?
+zk4XuMAJ3aDZtynCYYvH<XhwQy0eTo>Ap$+D%ChrF0RDg;y2_9qE(q)+g*j!9Q;{C_
+zROWemTDby$lD#tG^2!PeN6QjDq5MAIWE(f6hn9{h9tnl$+)ubl53TO`Rzvy89?mub
+zTU-z8%0LfOO-EZAg;N8fP{-QJRHq0J3lD(@=%J@l5B<Cx&7@65wH>Wc|NK_vxhbn!
+z_sRGeTPqiFsbe%h)ik$xMmW*z9G#N?=w4sS5tC;wKlg+7^Hq~0&x0QJfgX+p@k3J{
+zPY7QEJ><7lG%o7lv^2;sCM16%&k^Y%SEYw()d9`6eEGv+Tn}Z{D^+?}0eU#lQC_^F
+z#eTXWwno-w1A6ErG|x|njCM#hA8QiE%7?%n7RHs`wKsD{dg#uHktU4iJ&H~SJuF9h
+z7#QOya0WdLNU*8yZ4+>CJ&dvEJIf-i33~{7Xzk)5c${m)@dZ6J&vZn3_!8)$og3&$
+z3)J7*!m{?UG*Ckii)ua66FsBz14=;;O>2~TXy*}_9~71B-~)P?<kq>M)Wa~)!|K2`
+z8(wbtJ<!7hFJIem(8FoaL$~r`Wj}L?Pb}>24n+2_PUe$opBg7GuaBE(f%fHty>}1>
+ziVAFb!C7`fi^3rLm^2^L%1CSLY_Nykg*p9B4grCQ1s+q0F`(ylkzUab-foqVLJO$^
+z=}FxDU3(V`%bM=CVDA)RAn>QY*xO9jER2(*b5)>+(Ow>)hqj=Ho?Hv19{Pbjw8r(Y
+zHfI6!&;|6cD&EJ-3h^h5pAk1!4tkg&2=yzB1AAx*_OMuL>1Z2bQJ6QEnU)bZT3#=l
+zC==NF)dkFDI#{|`3q0Esee9rpU~khn=3~vFab1I=WN)P&+E~DNHO2Mz0zEYMa`bXE
+z&u%KL>=;Uf{K4L*@lgG{gT1{#5A%Ft_#E@R=K47KAktH?_n}8jp1woqp_tG^uP~(^
+z_Nw#{$<f6%p%CQgq|(FCRI|<sA&kp`4x!b~FfJoK6sq*F6!efUu4)yFs}?{HyIQ<@
+z(YQS23H|vl&$T)p#?1^Em(jkYcn7~)|CTJiHQ2L~JWEcrG=5z6C=>Kh)*?jXGU%aO
+z6B?Iosvos`z_{TojEi#Q`?yHct(>#bJrve~N<HLR-bd%#ES;@gz`sFy*b91So|yuA
+z*wbPI<MK?lyHXF)xv13GE=8TtvQ*&UTj$)I;w5wrmfUNviuAOKuZ@pR@$z<)rCYgH
+zDLPt<R}6w41_UQgd0NM3dfGULm_<5yh5O4Dg|${?<|&yIIbQcdt=%kZ9!uRFZLLg&
+zRnb{|jvMqdu=l|ZPD1CFXg;!s_dEpYo<irkKnEu;Z<oq+cb6Q62*$PS0VjKFkYg|S
+z9rtXUh2|NKd_T8JM}e#I-Xf*n0sTyb`dNxtrH8K4=0sc%t<9C=vPg0d^w0~+4~$B2
+zK<C@IuDLKSM+&pcA0xL_G?SNz{5#;!U4D8%URgoGXjzB@r`EqO%K_+?4{~fco>r!{
+zRgRfy-saLKA!*!4>G@Rx4jNYjGon%b(yg8I6oLrH+H41>2rJOznJF7Q|8$O$UgIx?
+z@;SoTxfpaWljw0JP7jFj;X^-57lPj*K>chkGgWWj!QY>~ZfsIDxo{*2>0zv3EYKkZ
+z^zc2E9zIxE=>>Xdkx)2O8R!%(%%7-2dg#(wo@m-N7;GO}?b;g6mm3Z54*@-FmDQ}2
+z%@nuTC&?-j<MNbxC{^j<z2U@|dme5AQy4dq9tuDY6Yc$kfvs758yBwV0eW5_ji0FM
+z%M8s3$u3Wf%T@$ObE?ftqxd1Q*42IOJdl%%&@_X?M{;y?%R%k5c5lV+&qC)`JfWTF
+zdBHT&!&Ty6TtN@BReE?ohwF&+aI6p4!`cAQLwlzX*Op8#57S@?zr70lmjq#4My8h^
+z=polNPay|AYzI9Qf*#(pPE_ilX}Tjn%3r=vpwh!^=+8FJTtP_=mt$*XCiIVv0Y2wN
+zCPMoJ_KsrL)<}Lxpk)Cc>0yYAFxK0V?~Cg1oTEtMbA<8p8GNuOf|+(3bU&5YITN3+
+zCgAf`Ygg4d$Op=E^?_ZveGLn~ZqjCv${t!m{>UEkm3rtbjLnQjdg$n;ydNvFHojs(
+zsfYLT1j>1aM;7>R0b^w~1)~{42aYgsE*<G1w<%Y7KbA0nla&g36qy(+8&c}Is{FpZ
+z5R_hQnia#x^&I%0=2(#DkRGATzg;<xvG%~vS*8nOE0yP-0_Ror&&BCUF*x1QRe27x
+zI%pv)_0_#Ee!cTLbBhe@p{={L-Zvm|%-Q?yy`o9sOH)%xeAmneD--&A!>nCg3!A`R
+zg@s7Q{r$?rz1_OX-CR4M9J^|CK1%j*Y=3g1tS1`gDFL&YVcyP_t%%R=DVbe){l1~X
+z_{7QCc4a$+s`G8cc~v3#ylF~h+_?W7C)L}(vI(UZ+AY!rs`Fc7-v7aK#`}{=FHLnO
+z*;_&R34Qk(i1cCNnpKr^y~W;c@&!@sXtTO}Vg6j6gmfMi&)>Zzb5&m2V6ja+Z*q3n
+zGKwfaJ#J*K+JCG<5FRrgIPa87svnVF^E_?<FMrO=`VaY&+fTIb-#jO^RJJcEs8iZs
+zUQEiLN1Si#?~r6XA^%zde!fj}-6x^4G^nz@f>b_17mCsOwLj#)cpg}@e&L(~0e-$s
+zM0w7eu6h3M5A?<Qq34pXfF3^eBWp|c)bN&jLRpVzTyTd+I>+<=WXQ7xQzE{5asA5p
+z{$7xydm+jvG+5FZl2sAz>n2w{kB`nr<w(2pHrtD<dQ+r<EBt3OLVcYpD-fMqT;7GA
+zU)lr;CN<C5EuIr3&haVNk5VgLIz#3;;lBQ=bC_Y8=O{_(BmW~kY@8H5E9n;eDon|g
+zTlM=k5a~k;a#u;`2SJV<3$CtX73%VZ`KtB1S~4H48!}hrruh|v9!)k6E7yDR@`Fa^
+z0s}`XKn{~uLrOUa{!RUaDm@%;wZQd|A_tB3KY`BEpeF`&hV)lVllVu_QT@xFkiNjW
+z)hGN9dXP{#=UkPOMJk`*U+ur)uZU8=bV3iU{WRLodt&?5bTNfK3H=~--P0yF-(+0b
+zx9;gpH&3s;vTv<{!MA5VHJ~jqFoJJ=Z0$3M{@uPWar(iv@O=^DQR!<B?*01o%B!1*
+zeExGfl(W(RTl?bPuis#Nw+YeTMBj_~Kbiie^84!3M7#~Bj(zzS^T+dRPaga74dNS}
+z_dIwEo%`IR_xyoxmtTBIuc{`u_T+`#&&tP)R_4tWM?5SHQA|||GDgCRdCO0~bacME
+zt=)DwH%dNcyt2Qs=W(&Wdpe@$q%;UC=kM|5<GF>&9=Ta%;y~V5U-5(DI(cMafLt+>
+zoGGrH_vJUo2Xjwe+x^B0l)qzfgwd*#OM0e~97a-##S0D(ise;fwYKf?oD~cs4Dw$n
+z_LrykbSF9F4E0DV`+e=@Re80^!&Mo%!W!OKV?)v7Lf0sie@;tzU8R?AcvWB`*LFD3
+z2bDkXn8NRU`2L!y0)cm1Xr}c@YW<*Gl2?1LJ&`kCFkU^zX-F+LlY38f3mkG<8mhDB
+z@ABo6(E>Zus#0_=Cy&z*UL4?_UKl&7$QdlJlREgO=EkFQREZg-1%YCjV+_AIK<<dn
+z?Ubja@Y>Ugl;_MmQT~<V`MGlq;SF)4-aVCq%<|-V@!)(f<ev-qOEQ|#xu5=q2Srj>
+znD5IWeZ6pS;Bo3eLKQbzC@Gz<3{=jSp?#54wWF=&nbEvK@7~n@sw&Y1YZ*uH`Qsq3
+z7mk3ugdne%RPqY%EqouBS7@;{$m<Bm%fNODmsf{cUYWSO2Kn;N+(}yxNh#u2USGMg
+zK7|3JieZqKbikKim4M4ju9nwJNM6GruMvmm9)rAUY}<1=D^?mYI!by5(K)SdTwW8E
+z{e!89j^tGq0`e+pm@Y1KZ7K}tP-M51*Ge4*L0-XJ+mXbmvZO$3bj}Inr8B9LS9@B0
+zZ%5T=0WPo3!d#F?k-1V{j_6!n_Pi51w>OE)E0Cw82UtZG#+oa#2g?hkj(*{J2_P?L
+zB(ETG709b7uEVjwe{`rkrJUE6R@4jfszK+p=4vO#bLShvVNU2hB^71mB=-V;deOPV
+zNhGhPkOXv2rKG6RHL^CgLy?o*AZ#b(6(T7s19{~^{zzVhIisy3DKQ|g!PEheSFnf7
+z2gz$0$V*0&SFR(-EBpP0Nsz~IXgP1$&oAvn^0I^eH85tpqN8#8G2-WBWpLIoln3Ji
+zzoSz!Y3Cs+YZ3=Reaah=ylVZ&6dlP~;=BbvzAQli@_OYGk~id^X0+<Z!`(`Gm5WEb
+zw@-IejaA#VOF&-eoN>=!y;5Exhn&Hl2`R{{LpEA%HzLm{4XNUdmbA<kfxK${JJ31B
+zTB+k;cwV4@Yu_%4DoqNq&f{eAdmdh37Zjj#b(z4=df?}%M0w7*u(KeS(;NQ4t;2ir
+zVX)&^LrY--$V-+xI%#i;&Upm!ayTvF_XEr$YZJ^B!-EwCGLTm++Ba<~%BUy^5>|3z
+z_zw~~9Bcf?T1S%0mHS4sWi>GW6>usFM<**e<>3+LW8RbgiCM#G4Pt49FJGD~8Rwhj
+zXT+d$B=apL4+7jGgA<_s$t^<Zz(Q(OYz^1WKfkQB7W9D=$uG+8h(zZGhe2MI14v(M
+zL_!-`)biI)eY@=R3rD3@Rl-vjUU>=Ru`*|_JYqWg!r(+@aCAp#xftZNYt&fZz<yYg
+zF)(b*7;T*Hec-R!=MLo|d31D1ChR@XIjtb;oc@Z&2U54ln%FUgJR(b+tMKEaeJQ6v
+zUXVYd(y=^r4an=^)G3D!bneG-dyf?40Y(FzTYY}CWP0#HfIR(Sx9GR*!Rd)Ss4t@1
+zkI2g^LaMAs@8jnZYS2FMhKgF5<4|~ZkbujVi=tXZLE>Ca7Js_?!mASHKKCqMNBWM{
+zQjk}l4Dqw8AjhdCJRIaT@i6#zB(L}dN8sng1jwr?THw#ix!clsKhQj~Cf-6Z){F1M
+zjf=JBdYOsJS_*@NQs8G}LYrfC5b!g(+`5WW-j^e*uI`fyI4vMAsq);zn71S-F=i~h
+zMV!~_$Ir>jABXfA(cD;kA8w#qq`<sQF_zX+D;r!0&x@;3o-3*-3=&uR`0(%NbTmn%
+zV-+3Akv!?ZP^wH;BS^BT0(o8dmImWfPGF7j;)Q*0^n*O4oQm+-%6A9z{R3m<;aS!+
+z=wBd41Le7dVMF@JgU7v%0dDE}L9SWyv{qrF!rQ)5UOnOEoL?3u@VA!ES2Q+Oc0>ln
+zw<)^9)2$N~9KP60%)NMR-z7Z%th64ZpLR@4iX7ZQo*h0r`YQb=s{1=cKK&~VpC7s3
+z+Zz?vkv{P-@lM|0<E~t&Z>7Ja+F`V&tVJLbXP36lHs-iB1tp+;d=<619KXf_|0K))
+zj-;rDV1KdnZo2(!_q(rF=eYV<c|}@RIX0}$kx3-;vJg&rzI;;Z)EXY;Hte0>9{4+?
+zFBDW{@GJ8sCcMn5o5F%)t%2Uy7--QHWNtAu+EY;=@$m^4qJ1f5No5U%{=$&EQT(Wc
+z5yzmw;Z}Kag;;V|@klJK7R*(Ja2h0e1tCsoUpC|)i1^nkj&F717i3rG_m3rIq_~^$
+z>J+6VQ9*5y3Fegwd1`BI?vNrp$4tO=2*_`4$@drg`=WiCZB5nE;R<;~6t8N?J5}mm
+zEdYBO^~zsPd^`NX%SV#@Lj+;(?tN2%_BA`DhnL9$`>O)oVl4Sl*2BNNe7U_-u0PNr
+z&R7^(MbB;;?2SxlPX~GyH@r+JQ0|+q8y_%3`-tMKg^G;E$e{MfIP-Re2c$>)s<~*N
+z@AbW3DuxXiV&C-CKI7Xv@<$TySca#I@qI-3)eABqXGq_0Gs-_JVI)0&B>v7s?_if`
+z$UD3c=ssiBWoTbC+Be-))!q~j?d>eds1^D8G={{9Ef+}prc2rbUy)_I`q-d-)0~!d
+zh0^@|iaZ|hvtv@|*A#x&Eyp`=IPjmHMHK~T-%CMu{<x2Mb#t0~98c)f1ogLQigO(q
+z>gp?<6#4mtqxuh6h|5AH0kw&KKKv{Tv~PN(l?(OHcS8H7YX#+yf2bs<K<HE!?gaVE
+z0{xZyrqMp7q@3FPfiZCgT2K%w%1RJ_%w3`Wsin0d#XxunxVt`X1<j$7II*>A-*jNr
+zNQEVz!^>Crq!t7S1^sf7kIB(Dzv;TP<5jCTu_*1-^B0RB%IVy!sMHo&K)-*yi*jFt
+z{MW-D*U7t#TRVgq#glSY_0T|%uiJ>Df4p*Eiqg+c9I1tQhPVvhN0ia%n=tZ+c~bai
+z&wmB!A%9Nly#5atrMdBUl+W?~c0EcAC{WIm9viLLT-!Xf8qFheN8`SJ*f?Nl-O33E
+zdcL9q-zQMrTJ|Ut+M}E&fxLu%K8@6QSXsyUBmTMgK8J#=<|V|wk#I@-Bv-XBMJf;Y
+zmZ#e10Br6Y8pHREi2TZ+{w}J0DP@zyz8ADFg`XJr$9*XvFZTdpHNNj9XOioef$w`!
+z@(<s)lUP|ht^j%A{3$E(O=!pW)r6P9JQLqXuW%DLD-Q%f{+U4|P0sOuoM$fIjD5NM
+zN0!mjHOtno`bwA8c0^}r{Xy2!gKIx9>|Juwdei7CgJq#LE9Q*a*N3LjSSyyU-iY?a
+zF5iWHz3}6bhoimARvKNKo@qN`G_<mSwe;ye;kw>cr`#*$YxU7S+ySGufv^bLk`1G1
+ze=Adt%3Jms>*3Nh%U42qOWI!58d?wO4z5Gxow8Q$!ws#WL%I#25sT%mShj2U%Z1OD
+zJREzhE>B*tMDOWN@w&%Qp0s(bep^b(hGr-a-;Xhg@5k7MK|0n$dhfE1Rmyb6%6cB`
+z6dKN~It60`OTP`TXMdQ0HVgGc=>}eb@&-R!GBx&?CO5i<_V0Ep<aJBdKRuDuS8ON}
+z<~1+rkfqM{S9On-rdba6DB23fzB<-diqehz2<dv4LArWnx)rrEdI!<I5lAP4bkfwB
+z4Uldwm5cTCw-uv(9HskqjeXhvqi$i_ByGg#dQtt@k<Nwo?%DN+Yb_r&bO#GZD`rP?
+z9r}i1J9A~;6JzD&1%lkKj-^EJ+d2GY`)6w*-Lhdw*D!pxOVK_#yZq@w%f9f=M4@Wm
+z$ohoN(I&@<u@*(8Fz>5l4Xq|Shre$7Nw==O&>;Ks>nWLeM{{%9ZR&^6{$1M~*Cdb3
+zo(X~Xy#-!wb;3ejjZd<`HR-Ek90%D`ZC~e|I+RpbN2~q(J-aN~TiKOUAq~BU6UH9j
+z8*wY-`A&}ud{c&8a;sg3YUOBOh2X1WKDJeRhQF-(N!O#c&Oq?_bvsV((E#aWa#rsl
+zx11u6c(Wp*eM_}<YfQaW0MDg0yI^r&Mb#SV*FirY_K<Kf!Hv)DIBstRxa5mVXAZel
+z7TwEs=@#1c7Fa8yd#x&KU0btjAf3B1-PBXVUlp8YdsuPxxj%nq$MHGpV$DtAl;}b~
+za(B&{dD40dO83hC6W@-&c#{)UBe-~S)0=bchAX7L<*D~81%nd*;AmHVmi5S)mv?rI
+zcj$Y8e~aiN{k_xS@g0tmpx_vJM2irOf8bwAyiD_Pe+Bsm0Uhb+93`ZO@zIeV2i3WF
+z?UgT;{((<<c<;lXc1%u+9OV%e;2+fYNP|Z6`(z@{0H*!?=!5CrM(__NCy(FBYv`TG
+zUGRhP5&UQH52D?{KW=KdkNib}MVmriR9*}ILwKBN64y&6ifRG6e^w;Fr~A|)Nlv1p
+zt5=q|Eq(hM@CPUR@<cur`CU^|zm~>uw=r+<PwtGNbN3a<p9BBf4E#CwAn*@b8XFVL
+zBL%KwN`Eoe$1hyyg8aGsjFzMzu|JGw;TCO<g81PfH-04ei^}{ZeN`eKMO{~C4yU&y
+z+yeZ2X=3zPL_;m|=OF)w_NsG>IrF`<=p3uS9Q@I=-dfqhLU^`WF!*ydWyqfk@by9G
+z`jz{bJ3=FQvO(}?gK9*{!xEoY_8&+7!OpmZYC)(<UjDvWAg|!TYVg<G`H{H1Iy?0H
+z<VtzbbNYK9qkZAkfv(`MR0xAxIsD4pY6)sjSa2MYS9nxlTY3VFfA0JYYeW}<o)Gdv
+z`S*alCJID%+{3fPGM|RN9ProX^3XXr?dOrd7!?ox+~o1!#u|FN64AL2pnG-HWQ1A8
+z^0J#+?}NXC`$I()wUPnvaI}xPUncemvx?&-W%+>reQG<Bm%CS%HSklX66A&QFBf%9
+zg1o@r8u3Q{;wbpvc>PBodV#!Bz(0`swKhg2xJ4$o4lCrn$e;6u@f-X(^Q4The1BmQ
+z_y;I`f_eK8IyYUFf&9gZ{5j+=7It+@!GA~o9P+>A;kZ77zt{!-Vp$5*Pr5KTgU*#C
+zpmQZ?U%g@>JkACDIdo1J{6+s5<j*-P{W;eNA0FBlpM(6l5lPg({qKI;cIoAvA#q8f
+zu#+ZlR<w7n5XVH>HwVSf1;tw^&tVOpdHHhXgj|1KCX6b7*tMc=pk+D>>Khnuk!7hG
+z|HOIVuZ)T_(8aq#r;KpqkD>8TZ11z!uRplH?@RC(8IXVKZ1+z)@`0ad-??O{WkwuV
+ztz2(c=o@Z9{v6u3jr=`%{opwA7n9<us|RESQ4Ut%zcwR(Xe81UtplfK2t`AjRJ6~y
+z0>AH#X9?qLN!y7%vYbGl5U76@X9rsxAW`}U4Z&jt;;d5T_>KH;ckt&>{R(9H<NfCO
+z&GwMLIHoK--OVKu?KAG`$tVyE;p6whm@p$PF-~ZSKX>sq1%0%H_DP&7)+Pm1EAJ<5
+zkc@%9SQ_q!&cT8I?ar?db5Z^|`Qyl+^HTDsq6GY5<$cKRpzn!_e(1kquD2`rbBS?c
+zv`;z``E!Bo6_)6n4)}B8IHAC66!~*+d{Y&%{Z&+-w4^Pk8)`<ol>UU9S*f$@h|*t?
+zzq#Y%!qEw1)xPjm0tLP=lc3}K^TgGy9jblC;IBRD`AhhFdw**Hd87PGhEHtwuL{KX
+z8Ml^|Sh)z5>$b%-`F_DrvvS|6G&jhJSJJH7H;U+D4!+Mg3jD3b{H>p~uHG~jc*MU7
+z-={0~Yh7y<SF7~5Qmsa6iG8cmQI~&Nr)DVE?Slir9~~1n<LNV?{_Xg>dLyUSTCtda
+z6tS<A+&(edrw#m6=C9oMo1tvKzw#Vm29NOP7Ww0s0sJHO&7*y-KB@RVZ*lWt{%9X{
+zAZcGPG#j1klpT5Fn}W!OJ<5Idv71kaOGZ@t!p#=f*=yh2{gFG`hpXBbPVA%AkVnAc
+zbBcd^?k@fPEx$E(jneUb;V1Si?gMU}NAlvT_Jwcb4wd2i!mC`IgsOep8uCzZ8vnEB
+zanWM|N1Ou*c{Q)a_bDU#NC6=)@X!AxRLRQ<$t#bL7snpth3DV6_#6h${|WN4_M2a#
+zeomp3mx_+$Ri@HsVxO~8A4vQ|^1`<_x4Kz3FY+(w$<KKTUVZZ$>#XM8O0g%bIKyAu
+z$M3QzuY!-8KeAHEOSvyRi&OFhe*LHNa(ZX;&-|JZEnHr&?R0h}_Jt#P@l^5}d77)h
+z<>ma}keBaR0OXI$%UUTf9!XxR`XPBO-Y=@;XY(KG-^eNWPtSq+mAypD|Dl>5N0Jw>
+zla&5Hm)E~(-{ebYt|<4RBOGM(A!PjU5AkElE&*Lto|0bjUpm+N`qRIw<jwcZJCFED
+z^e^@NbRy?zv>#e^t^>()^1pPhHV?@w2bWiC*;+L{M?F8y&G{E8J(5@1AM!7u^sgtC
+zUorpE;`8W#CoeqzC&`Ok|FZwAeP}+`uAIj$Bj#}n#C)u{Q^d<_Li0H4eC*NOD?63*
+zv8lEK1G&-l`kt{P-3uf2GwTl*SkBaU!u+pEw?pR8qsSZ2&2zBoXeiIAhIv(e%O=%)
+zY<P0nh|v#4^}~PbT#!GU)jL>V+1CK+U_RE7mpZ#XuXD82!D_f+uDur0J*ar)h-&^<
+zV4$4;4a59zxCiEcb=;ZI?!*u@|BLtbT!@{J1bR<am4_t-SABIXGsR?Q+n3UxbgSD7
+zXxT>BlgsnYj^?yY^*nW0>OPY)8JIMYH9L{$=sD!CJij?sQC=X1bj4vNdr&%dU7?_@
+z@bl|oF#j8^th1{hWCxBF*%Y`XcSiR}1VhpFJXwgdB1aTuZ{-H_KOe8WjoDwupVmn#
+z6s#0}{(e|Y;9D~P0?+bZcHCHzXO3GvFRVA;V=!ewSQTPESl8v<kYpoJo)_IM`_k?7
+zVO}D4ton19kC|_-bP=VM&#Xh|2CB>&tnHNNH&W5|4&wQ$^4!3h>@NdPzhWa2t*ra}
+zN|;~ZTmJq9A(=hwxa@jQscRAMUT;1Zl_#q<8|;>QH;8SZo{_c^w2%MHE)Of`TJF#9
+z!2Hj^#TlKK83aAyx{i?Me`1aK-vrzAYpW0Th!Wkqguk4(bIRE75?`I-Q?f3hGR8A@
+ztWh~nRb(z$#fn_!v%7pk6Frpa3YI{5A2)j-z54>n^IL`Mr2@)xRh}Do@_bXi1eLdo
+z3*`xZc^&Gx-^H~yIim#lQtugWRwA}<skI)m>$QrnarMid;G{|L@`R|o)&XUCUqN~N
+zZFp?GcT^M4_dcG0^eVjw5k-m(kg7l;paLoeLBs|DQ4kQKg3{9HNEc8PgwRonfDIH#
+zLTE2V4MhY+2t^3hBoIhK+Bd#G|NYMIoSk!aCzIWoyZ7GbxidR6F^K{Pi1X4DYTQ~M
+ztv4+5Gq+{vVvL*pvD!hkA1>-+MkHeue8@fiDX-IW(hly;D#N|PtntbSX)C?Y{2k-5
+z{^jTvH1G+-jr7P2{z|g{NT~c4g+d}>u@DFv#piO_?2V28PX>C+_*bTX>E6gMclL?4
+zcd~OLw+_o5n0)9zcFJsZ;l(!deURyDpE-+aaFxGt@1g+XPr>y!mriOt*tO0`b+>=$
+zKL_)Bx(G<QPbB}AaWBOCU4n4KMCgnf)7$n*C5qX{ZDhJM7gI40<cV^UQ_{&I^LTYW
+zSZ?NX_}6<IO#i1#86k*UCV!wrO121CBp96%>)<myL!GcTUHxIASg6v(H+(@NMR&NA
+z<p|dQM8C(2@KtkKx2^3;Kbb_^31d2m?)T)bxkr!|pWHzAtj*eZ!3g?KEoOb<(Gr@(
+z5j}1zKO>S9su=FnoJ81HEhSbOkYhQb$1Z~|=^q9$f{S|Q&8^ut*az1&8MA~r$nsY-
+zv)j(0dl)**A6V)aoa)ZgyS7>zFrxTWH1ePdE<le39c&30RL`4%ci%nsfMTXIA`v@u
+zRI9JFJfI@@*aPk1Da;))Vm$uk%H1_LEi0zDoU*J_tYo#~uiZUFcy-XNOO^;`M|n0p
+zPK%#HR*)NRd87F1c$?ge78fO-08aYgxy-6~W3j516zYz}>e)E9$+9ex8iPjZ3#e-U
+z!p>3F?StRVpQW&|L4JkgK)-KPQ_~?a@gEz9MI*SF_$)z5d<ictJ`4#$;fVwW_@<xw
+zEA!?Eb<InED6(H@XT%?D7>I5NisIL}De=!x1B9y9-F#;5mPDE03t<7}?*|bi#y8?c
+zXRxvj8!$zI6{6V8v}PY)oBrtAVDp+{4QQmfqJKG7I$MMUs}0adif9^a=~R_%03}>V
+zuT}LrVtPjNZMk^=l$Y%4ah>n2@$?f%gRC9fbxoUV44$Lji2a)QMmTMI$8JnI807d|
+zw-5coWKU*%iyqf|bDoUcHe7nTZ^zZ#m?cG>5mBG6l<#ymAT(!KPzDwJ4UlB7?y3|x
+zVEL1jgWugiBA2nHjLW1QI46xj%yYfw891`0C@6v!Wwpb(?5<w4xdnTPblq=kcjT}`
+zsbZhr7Y9E_JA26##UD=NQZs<0y#<VFaoI0w#6yP$eeBCt63-nJD@nTZ{43$tljF~5
+zSGAM&eq4UbqcO$o?R<>5$cf|TlNUwre?;hrr&zS8=T%aJN3Dw=qMI%t;qFL?1UWX1
+z0`(vFV4c$q^b2(_H#m4(CuQVE1)Q+*=&Og=&K+vPL3#fxFLwE{l~{a{w2%M&a5{cy
+z99NR87rfXFNuh-Sx-{lnfPx7nX`lGW8%Mv(jVdSX)Kf^ForruvutQYZsZGc2GL_9I
+zR~(b=W(E?>X*x`_|EZs(W;KCT%rXh%NK#XKKo3@XuyIpO?c=lLNsJ=ri0D=OPlUWc
+z2Qono7H>8sRz(%T{|vwG-<sm^S6Q|}>CURH#p<|b^GoW8seI2%@@Jw_jmFa~vxrAy
+zrMU(Z61U}y$T2SFxP<r*PQTHw0<WKR2TRPVwLE<~V>jMM+5Oi_Z9xH#P5js(&Z|$w
+z2MGFz&nX04cdOJN?;gMF*1P|jmGOk#oAJ?j2XOt@<IFPo?O$gPsx3!u#Ha<zu%C-_
+zmERhw4EOKXFhvpJxujmoof0E4gv|Pp<hR{}m$MuFua^=EH{Hp5)go6#dPd^6rxGlf
+zWxJqhg|eGwnD@R%cLWf{HB5dJrW`a)9NXB(WNddV1)x*tD!)`E*w>Pqqkz%9l>s0J
+z-w}7psA6g-h$TxlaPRM=O}H5iycMNPo;2##WZea>Yox$~Oqy#6{iQp_ABZkv946Mg
+z!pEFG&fy8;()4hLtKp8c)FZJNu*m!rTSk;4TwvT`s*7M^#YM`jUzO`(_-Kr|-2wkj
+zdH?MA#QC_U`t4&6mN&;>M}G3ZwL%brrA;c@?C9q22!kMe8*=i7V5&0}7l#_l;6y#$
+zHO}My<)Qny<_lOeK_)xs3nYNAxq&{q5Zdnd2N%m*HiY?Eylv|}#xkg>?ygxHd@|^5
+zDi>UTt1ol(t>xQyjQg2ck++!;6nlGX6gth>VzQWWvrXFGg1e#<$hAWFZfQP}6L*_Q
+zA#<BK{VQa_Tm~FJ1OUNCk`y;NE7s?aaC5F&!vos!tOXesb88bjLnZ+LOB12qa9HmH
+z7@kfKBExvw$8;%k^<*@9Q{7IU&Md?_J~4WIq@9ZQy12AF217{CqvEs;{o5hzen|5q
+z7RA{d8^gzwed9QdliqMLpPvCmwIO*RfqLknl?z}+A4{ggjEzpeMzHT&scs4+a`d@m
+z@@)gK`t=vHWgmv*Rcq=O+>H?B4<4IcKlVnUn_?@RsJT)${qW^Lbv^OG)7a9ag|kMx
+z_B?jD!Fv*-n~ZXbFjjf)dVlY%PfA(k>5PS2MrB8}K6KuC^`JyW;p>w7pf~-dl<|~x
+zomKG5g(9QHM`OebWLWO(&WQXH*{{(?zYThATQwD|KacL*^djT)X3IYul3q0|2(3#`
+zT`rNk>u$8Z_p9c^cZWUft_IZ{F~#O$4<y~(kE{4#u|Psxk3;Gm^zL<vxNR>mq^Q5z
+zuiiV78oezr@Rc>zEi!LRiSE9FzU}-m-B5NE@l;2I4|el{<^9&L;tpOz#TjipTsP7a
+z{yRlxCp5h2!ef*4D6v_g@w~q(&}d5eE-@(4s~jq5LBE}jncRc2KJ9n?&&`NErNEkS
+z?d@Hu(TUJB=e?VU7&8XuW-oQ71SZX+Jnz&z@;iL9sRR?U!2EOHhTHAlyXVOdjk>)2
+zcT$;!&6jfsHc`XsW?*k^SWjEod04Mm>CWYRo4)FtZQbnqYGcRmbnHN9H$NkMj7Fwt
+z?$1;&=uD$0xPu7vBcm14XOasK;5XIGrVebXw*dKeH+MD-Uc&ktc_-cJ>~1Mv=MW=y
+z_$IIP?Xeo3Hh20ke4?-Z@h-z(&Z%3Pxu&mwzep<9zkPgGJ?|s%A?UvZy^c~xsNqnS
+z<u)Phy7^0<MOv6kh=Taq&&1o>)u>kE%`*lw%5_^K1#C@!br)_85HIJd5&RckN4fEb
+zn_<KbxcYrOMIWm5-$-uKqj@EdU#aUOd#iKMB9k{V0%PJ@Z>@6x$$#-)`MMvy^1<iI
+zN#_@BvE_dRnFc(qWK^PKQ_bLn5o2z`a*6Ujboivou~_k!T~wbUAvto}21?r(=Lvds
+ziWmoMEtalEg$ze|d?wXSk7lg<#1Et<nPYd8_7-d}P=^jSr6pxxb8(RhCqY{wHITR7
+z`G4KYWsDdMWD$dlEQ-wM6*1O0mP>^Sw}em0EXC%{nWKMHt?(LLA*Z@ZOhWpo=tp}<
+zPAW0F6^j$+({Vc040UPyJV$Kh;LoO8!-t@u!#ctQ#a0)fpXBiq3`*kSJ@5*~>zrI-
+zQ;x+_Eo8Wg%un*bLyflR=58Mu=IKbmwR{vO;xwNeGF*bMrU~LsbMRxrXO_9bc!>s`
+z1r?B5S6=-oOWg8-wKb1@Jn3qP@6}x<nay5rAzOwFJ6|U<)t%)!)bEkbzv#JGj~=Qj
+zcBef!9iwi<`qorL4?|av%Sij2E??oDnxVi|_+cI!&Oc!;^KcQqtl(822SDZ3YJnsW
+z*-2#a=Wax-D41p<TtkB<ri7EZbehP={HzIiE*Whvbp}AzpD`d*>)Xk<WhK4q+Gk<5
+z_Z^n+978@*ndu#<5_hs3KJUJIz&Rf`>6&GIJjNMdn9oh#d#;Ec_uOJbyLK@DLjgVK
+zj3(CJXp>&X@WvVNg226{+a8~p)tTz?MGVGqx9y$4YKV-{l9T1qr*f6p9XC7D2CIVl
+zJ^CsyeU4VHb;WDex<;vZu6}rW9hz@EZ|J#=PZ|bGokSgx7Pzp)-lmvk#!V&J7x^;a
+zh1cOCKJcXYFs~tje6)!ac?ZJ(M9Gv0Eo&#jAdzNIuy$pb5^D6HOFuo64s&&m>(ChA
+zsXFyvbOL0^b%=R5T`+P|v&ksZS=zq9F{gU)j4>lbx)YsCBs-)dgnZ-Br_!}(N6!2F
+zSv+mW$0?&;tX4I{M4ERb8I|QYrd|0Zwa;j7zRiI5t<AvxLBcTFz=&Hu*l)}b%`al?
+z%`c!QJGNF0@{Aeo()L(Klj_0FS|k2vm0rI4B2VR5+?D)S5VsbzicrImMULLoFwbiA
+zSyyN|xoi-Ae(|Kr#{x$f#HmGn?=m0$BK8$@aU~Qw*xy*ds133hXg^+F=&@L$vORw}
+zU2uvRRL*@<DZ2{z<g0h~JG0X8yGh)W>u`z@pS<fNd0~{5VfZKL7?hr>=AC$9t0d|1
+zoc1RyXGV&xQx@Du8uJQ>NQ3Pdhh<n`$3`>JcasCz))#LLSBF|G@${d|v5T|oc<0qL
+zt_LZhM4KVg5&9@jJ}c}KHy|z?TzQ%QL8oXQ_PgAb0<L#uqAuox`OgiIe~-FtXH6C{
+zuC`k)g~eGc*$Y#G(EctdJt%)mQol2yr)A}~Ua0tEn(6<QyQ~m8?B+XCMb)4AV@NaS
+zSbk-AXV<s<k)k*0jAc?0*WTD2PM$hJ9EJYZl%<5u&IA3T)D7X3h4!qneOH=y@ShvO
+zpDefaSiB}}|HKhmGx*ccaw*o(c>8oYtZdNDIP$8r&x!I{&qaHcZPR4jrb;rp)?%s9
+zm~lYm<DulgF6BX<i)`UfVwIiO|FB;k5=+gy!%=1gJ<lUAjTFseZQUvxpzf?Q|85~H
+zXOWz}bvX2k#J5|+Ii8C(|L#!={r5^r;qI%Sv{l%hFJ19l2ExgTvEXDJzrg^xB3v7z
+zVi4-N_(<hrnj^J*Fx8mR2tU6%cD0D%A>CQzNalOHZBOAn{y_gV!&Xq^3ZYq_7E})A
+z8#7SS$mfpMN1d0@6pJNwBgVl0Dt-3<Ds%0`L$cE{Y;F)=rE*NuTrXrI#?n_xV{KBO
+zCQrBp+8qy*K>S5oq9lgMwTmWFXi>%uC4SasKi`*!3*<2lhb#m|pU?l+ajvC*%yOw*
+z=<oIXCkzX)JkgUNbk*Wqj*4K_&~1ASYq3->beF~4v%%!1f-T<Z7ImSLCVhauK-=%*
+z+3e%(O2%zlpXQ-Ps>l_CRQJU_Lf7pGeP5m#WL2;g=f3(#q8bt%di|~X)4?FJ;al=E
+zCH(hdB1F1msnT_fS<bMQ?o4yUFP>@X$EgS&{gV-;!g6U<!|fxw!NA_)NnWXAP~Z7J
+z<wpjSuoHA@-l&ZT>u4r7BIOqhWWZiIng))C7#l2Z>c`ks{pWPF^xTV)9I%6L=_eIr
+zq5GeG<(Z%(>Ab@8eW_Q{kxkXKHx5}rrS4>1kGSzG=mxlvF|W>WuvXice>Xo6d92uC
+zDekJpQtB0prB+*GUQ<3XC$)gi(CY;)RkQYX7SKC#u7fy6{B_ftc3L&8fq(+~z06q?
+zsQdO<k^xUXIsA0FH`H^%X+$N?)M=<tGhJ}>%rk{A9?RCwFUh<9DTdIG2<I<BNuKMl
+zvOoCaEjcQ&R>{6qWpAP7u1&Dtk18_k#kSj!hde(-Braklm3dUzK?Q(sV+9((Iw*yf
+zV`=#*t1gJV*Y^kd0i`m46j6f(&Ph!D*lcQQ+WKRP!Uf*TO(|Y=)&=xF$gM~>K}wBl
+zYjx;w$x;!calm3}qA+;aEz4r*+FrNqlKTbRvEbpB#G*)Eq7W?$EtWR*e`m4YWPfP$
+zZTwEXAHvQAc9x#-wu^_YRu;|c9Id-NB{aMs>B#~|X3e13|LT6C+#EJkwIcke6XI4b
+z1WmV`;NdV~+7z0$Hm=6?|FnJ_e``2jAS|=>QR~gSF5jk+?_`5KM5!ZV^X#gYE2>7H
+zH&xGbjwwO;ys;yVS+2}M%N0BqM^v_dMp-O*PYqS6`;1h1!z%w<v6Y74h1$mV$q#3@
+z8}Km6TA<`D-3da^t6WyRX_v`-ter9cs-nO~3QgOA`kA+gwSS1c7_xn64U$bR)sOiN
+zJa!CTZN|@UJ}@|R^ne^vf96t|bKV{KX{XYVYjP|}SQbbRl}kJ57pay(2qoM-Z8#J3
+z^FRDPx^i=AjuyWA6#s=5ECAw<bF4tiF|P89*7O2w%i{8y5BR~AwnPv{$FmZFwt06B
+z`WZ{r0<B~(%!v@xUE7psH<iKxyUq|xF#WF4l8-@EedZWyuBnW;m8X)gbX!r9x2W$S
+z_qj%lNj}Y&z}H9YXvQSvRK}ZM$|3>5=ZJ;Ci9DK|5UUZ|%>_wRK&gR$=mk)@R(sjH
+z>$vtEh*T;7tXR=US9vZyo}aW2GvRVcIy&x!76gFENCJ7#cF!70LBu=2nLUDi)1cgD
+z;Ixa<)bXwfz)EU89W1OO%g7I{1Qu;eO(IuMD*&PSGzx~|!qO&C_Izh~6VzSC1Eqc)
+zI6Dj{yw~3)H~uIo9{|s}Foz&SxwMJgv68YD2|V@kuKM(dzMZU4TS+4F`}`02<U*vh
+z0aMzIeJen+!AuZ9aF)mcp85B%ZVe?g5T-v91&qt5dHrj#GHsWXK$dl>LF?*29S<U$
+z)L)frD@by3=eXEhQUB`gy0wEQr*!zA7$0M5UE8Ea4NL#P&eM#9)<CLUcYWF@!83Nq
+z@)p545w(q@C8iCOz<}s_m#iEh&XpJh%y3~LrTHq&z7<+%8J38YKzzJ7DGU%Le0gFV
+zk-&7Jdoe9eQU<~d{2xw%`tuLye`H88CiG)RlovmFe5F&Oi)$cvA0@?MbA5lg(xbLV
+zqt~VACR?6;Ow`wPM`Om_f56@^Zn5+Qm<|yVG$DI4W^Af#>q+x8l2Okb@u&Ww&PkP6
+zg=FyAM#1i0f%f+*YW1MP`K4}^?Pdd>$iGs8XO7lF?qD1VOh(;EBI0+t9V<+F_hdE-
+z?4xfF->m9^SNItO3qIxvsl*Snuj^6S!NVpVi{3_&TQ<ppITg0stznL#5f@uUL+2eq
+zR}UUCW}K7m#5zL2)vgfRYFBl4AtuEtCr_O!Uvcx?CRtP?{vj&g{GShV_E_8#vfW?A
+zu+1^vU<xs;NVx6nzjg^?vOVxZkpB>KTJW@%mg7jR8gx@P+L#wh=NlVsIXSezGYs=D
+ztbEmP_ybBlTro%*5<*vS(LbqVJ3`KlRbhp`=z~h;-_qR+5yemVL;N_;SwqitQq5qo
+zk+6n5X{UTtV!5l3L+Si$yzc38isxeW|4FM{2&54z$MRhtndB3p(n$McRFNaZxtv`7
+zuX#8A0S~BlkYdDGJLtCU`^4b?NE`EibnJg<+yB;x8+)Y@-CkOTuGv=MjgEaG7bi>@
+zJ#{mtVua--|Bq30E#eI2&<<DgeXAN>#{xo!<$kIlFIDuVmh<`x&6`W==!{)LL%H}j
+z>T<<1Tv1Zfajr)i+C^0mL^zAIytp3pFc2B;`RmOUXnuG_tt;frKQ<C(92q42zPg|g
+zetfA(<=A^i<u`@(Ejn*WiZov@jw67)$A2Hb(34SE1-}d(w6?157&&0Xd;Cug!d%-_
+zM&bKJZR_iDhH*_*Z&PO#e98w+G(r~8Ki%_vq2;aT7o$om#`A^jX4{~MF)B;}#g<F8
+z)}g}z|0E-f$qbMjwRHQ+!8gW{k=`mTkT)Ar>mTVysyj_Qw^uH@eT-~3=qyb*WX!(*
+zw>DE<7%-`0YsUvDmP_3d7E5yyMsuJ1(>sry)r1-|bftNFmbl9nG{Ywz=p#RT#Mi;6
+zD@1W_M1z6B4H?TRIh$umIRHLe)slZ;8l{92VU5>^AY^EkO2R!aut{M+ZC%fRAcD2a
+zxbkBt(UCB!e^9)GZ)tfLaQh6=3uEirCPsUNe?d2$meIG9VjYn(0SImP%0QQI=c~Q}
+zAl&{{-wJ@bZ$<|L&!uHxqDtN8%rQ=`EaARkTdtOT>3Jv-0>qsns$o`K$AR<c(^-=M
+zvfd1UFr~jsqAfou;z=bB6>?47CND`FU`~2*7v!g`qzgo>%J!min@hptFeP7kn{_u!
+zUpb*u9s{03oylqy!EvoEQM$B4N?=LWYK$dHOz4NeQsa3^L)+DRrSQPWASJ%7pI}3X
+z26I=BLk(xpz;6aK?HFoDV;}ehLMi*ZGY9|OM($l<(iug_;arwN+ry+dz)ELrpC@M1
+z^^%Ni-x6~)T6Ox3eupY;EkhqA!he<|5V7HiTB5Y?fThqPZA*DtXa!-M_7w=nH}t*2
+zMCIMtJuM2VyK6V?r2kxIoUzvfEq>dTc#kjzs;B?+<~2=#xR{e!-hjV`GhZ>!urKH+
+z!fhqK%ya-Y@0S8gh>;?!RZ9;J5WCkug7ALKbxmT`g&2<!!#?_@U{jD30c=H{3xQ0Z
+zQ+gs=+U^hn`AD3R@!)tTaPj)@K(xzBQ?e|gch#0C&V`5ue(8MKM*;Td(H;x8n9JD=
+zv*Zl;+J2?4V03x~5fz#J=Y+8Vs(}78ClCGBfah+}3pw+>D$c;;bM3!CELd7cIdmAU
+zCJYPycX6iTi*ugEQoj*nLgk}zGRo}P5$w5|ak7dfU+a(R$M}bndiGHHefCf*iR~X*
+zAs;3D1X;^GBOK-pP#u{%=SQG;7_F%5KWFXW*?8B~1c~TOk{a|#(r%pC_l_gD()z)-
+zO;0b3;Fix=u7%bLPqKw4LBZ8EyxVo(-(oBFyK$aDiC*sLM`yDpfW;T`xiW-o%a8_u
+zof~nWtZQufd$gz!;;B0j9S&JA@h|&ktYxvykc~%0=Q;&{M4dK~W)`<Kw?33FAdLj3
+zJ<JIeGderHN0HnVb=DOYZ>c@YgekLgL<7SE{GQaYvxfGcjiDa7noQndC&94YkC14d
+z+aWh`y8rI<ey$zmqN;s_Dh``?3Hl0_Ots$do^c>N(blZ9ZHs(ds9G5pk@I4?RfJYf
+zzBPVV6$zOh_Fnv49HEGkF#Q;y?xi?6cJHSo1msX9P%{09Mhu}u-)|;@KNCg@MZv_2
+zt#E=Qgyi(adS|x@)gkE19mEb=w%8{7r!^41FAI;=nB$|0_w(VHA>PlF{a?)cNKsE;
+zEUVvWSRxq$PDSldX4e96VW+#>>KI`zKwoc)wFGPS&GI(fM{X_VN%?PV3eA|ccc&-S
+zIxf@_g-X7JZfm&`0ojHCiW_e3hl3sI=*w9o^ldLX+lUt$Ij<9Rn*FMebYSQDD?meQ
+zPJEd6%z45hZaZLqM~EC4w09N{(3ng`ob{SovSgvcD(pePz~Z3-%8cTB@yx#$#=K|T
+z3D(88PNVi*OQ6*=PV#nLN~BVQ>Y9ICd5V8rKL&mOs+SoQ?!DA~moR+PQb3mI7)ecu
+zsh=$tE!FiiqKbK}2Q)75B+D_IF8mWeu5b~Y=XGe)vG@+%`jz%L9h8K{`Kg_R#c-zR
+z{_XaaLB5kE9xSnHCl1b$z6uO%9cgyC-g!d@M=p8+A3etHl-&U_6mk##@bD&U!)TA7
+zc5H5L-+BJ0O%_L65>*U5#q?61OO^3sOo>*Y7evF&&rhVr5_q;6pWDCfEWMP2?f>Du
+zBzP_NbbTr`@&s_GRrFk`H#XI-130O9s(*X)?sgEy?aJs@xA+~tl-7eQ$$PD)DOnG<
+z9>57q{LU52hAb98WRGAUM$8YI#%i~orRsfXB#r^FKLQVKS<4VMi#0yW3@dK^Ov4)5
+z6Nq=srn!kBe0z~=uCrsrQ;5z-gOoKW5dU_RPO__xLH$vh9+4TZK)ypu<3S5H+WjA(
+zGfeenFUCFt7SC?%0z1sSi#eve#SK&DqIMHYCoP7alb(rg8PN9*?tnq}Ef<Qg4t|0a
+z7EN;`G9=?ZNTJD+kNBf*tc@#<_`|n}WEscB{B8qojJ_FI(rSh@B8Bq4J!}UWc_#(I
+zIx}EffoEeN$A*NfH_tIGAJ?&3L}?d?S;>D5oS0N@1JSpbzUfiXae;7hW0|+jw4S3>
+zOT~HPHSyTw>3%{Ww`26Cs?}5iS>pKkSR;mV@x>Zlim-WLbZ+JGAy({uy(V;67ij~e
+z$HI%P;VTbi8`@)rI49G#4wBO$(A~4}pXp@l<AY=g1jYh4Ih76}>;3VUK)byAzBJ_H
+zXN#`#FW<i_b++l^N@(xJNJwccFIMT!lK&u36_1@1-&W5l{WQ&*2xG-K?m<fsc&C=v
+zlQ2yu%$j3WpWN<dLY20v?rY=lqvw+;tustH#Z4I9qNYO|OAFev%c4?pE{sy@Ylk-6
+zEFlfRN@lR4jVvwx<}&@G8trFw=1Gp7oW^83{N*un`G#!4m{a$4FGdhBHM@Qu`A3t>
+zK2Q##04r@d59y5jAR2S$&iQsoBDHom_n8f0qG?Edjh(l~ip%Nq+PWz*J)l0i_4oS&
+zF0N*7zu;SlEg$jB2%<&n^$OwT0S+guOA2b@Y{B@w%iUAu#}sPv$SFE3-tDAL+mE7n
+zcy=26gQzFYJTcdMTAs_@6bsumwo0Iyx0UBXt*0YU7PrscBvBqrbIby~)~{?IMDcS6
+z@nJ$i%cb#=%a^(K&=YKdNahss_;^HZ(0OuT-Cyd}bhdp4zWrgY_s=)1m^_&}`Y9mm
+z$Mauc;f`K+vDb}O>I<k5tQgIjbP!%d7v#x=Fex<NToTyXK2`YURz1Pf*w#8Whjx^U
+zG9&tav9HAm6oY{}D#4p=+Z~*R5*D}FIhncELk_!HM=Xq*C3Q>22t;Wtg{sZ&5*E@&
+zMAaV9{7FCH5v1If&PlG?A4@;SjZqmQ*8tTYaZgtIJYBa}J`pGXmq@lgIi1l?+XTcf
+z^OLZH?H$J<l5yIyHd`nAW?4laWFXLU49dC>i?1aTCHg+Or-zkwc<+5f_M2Pw>Ydbt
+zTr5AF+aWyzvg_1_2u`uIogd6mpYK_YlQE5jrj+jQ{29(gn4HH6!nq~ad!oIh(Gjjp
+z&rj$12RHdl6hr>aXo#Q?CxM4h(xu_Q6S1(r7iQ*e9rUgHD?IJOO6;6VRGk)0ZRus7
+zAJ^rwkDbTM5*B&7NrKG3;wPw9dzQzfqhk|4g7;!_<m%^JB27>br5SXI__au<H4^f@
+zI+=7LGiL$Qs%>7toZQcY5u#A#hklscFu_5R2C;peMVyz;TeHmWo!jkUppVo?EjADv
+zoB|o`u(*<iWNkz{`fhP(oVnLtTL}u|59)uBPv8_{qg4FKzW^|UuOvg}ODd##$XO+p
+zV>WM_lE#f%>sKSoRR1P-fFRT(wXd7FJXXvFB42u|azm5gsfzrx!Q%O`_s88`iQ%&K
+zhR_Xw%BYs<t=p<kSRD)OnS)8GqulUQ^v>W6UYrswOX?kONJ1pGX~6d}3W5Yc;Aa*E
+zU7{?WPY;()1R?}tkN5`&izTKLUQ2EYek_jvg>gOr2YNUiba48Bt!4(hbr*q(-}}cJ
+z3Bbd0HFD%}82=?xh~A&gIhm*H$a5KUCet@e?h6hBGpBaGAIJL=$Ybx?@Y`ZsoK6K~
+zNw<fYsL1m-pMHP&_9HY$A>=O%wXqvDl`=?Ok)UrJ>WQXCy5A?gspBOivN)@0d~%#(
+z3B@Bv;S8*Y8mG^gX)>9m*h<Ak$eG5rYM%$KsM9xY_e2)}G&&O{#w7MOX!fED-|BAc
+zLE(1}flHiNwmYQIx6P;DsJ-po%(NEDW^gCJrxla&_B&;iFQw6WCTq}8*N=gF-^=U8
+z4B5^|#$AYZ`2duf2v3;1pGs#QiLK{8!t0!(@V@ic?-Mo&P$IcAPGil`b7F$l&5F75
+zstz}T32S}XpZLxMXyT7@`y$~BK*+7Ccag1qiOd|ujZdMNdQdKlqr{g#MbxeCOu~c0
+z??M=7gyM4UVGW74@m24mN06F$(&Is@H>{83t;FqM9Kqpp2gj(uRImq!xn(lP3{_+&
+zi%!L+wcMg+02SIX=-St<-6nG@V@Y<5oLjG2!vUF7-K}ltZOIyhw{p1&RmAG&3tdRK
+zh^}wfrEAn?y95Z?kZTPS#vfY;W+YJp_4s+`L5}t4R>^%82>CRF>J8xJ|JeWv!Ptn1
+z;)>qUUy4bw_hXzhj=ZsxKA}u|7vwr8IM3yGbZUET$<uU%pS}gn81Zpd36T1-rb%OO
+z5~x)Cnnl8)ElQ=Z|70z0P8ESy-YEzm*t%|%lZ7KLS!0JWhg$2$qOSYu9csJ2H(j65
+zvgqTvpZ5vy`_wY58UweheF8Pv$NTR93mM)MO^8<Y#6>)s9=k$_Jv?54XC9eG1ieFm
+zV}#jzb6()t^(@p;BKUWlD!z%G`+2HQgkSQ<<Ys3&S>V9Jb~epYWTbeb;trKj=$&&9
+zrKZ2xFY^x9=9KfwmN(l>vi(0tZS35niy($F-(M1V5b(JR6a_$G?2sB|L;@ztyIiLW
+zg6wF(r?lAk@)%ku*h-ie@*u36M4lY(UJ7rTp_o71a_&eWgRWMEpnrw3P$3Dva?#KK
+zpwCutv0lu=$G2XIahtrW1(LKalvZE`Q5S>W%g!iAcTw~AEMJvmeKQXcd{CePP2O=Y
+zc4Qlq6<ld6gcTMtGzlqOaFoSYC*pjNJ{#Z-xNkqR)#O+E7=2^%gg|yjM^Pjscy)yp
+zH<8A^d$gjP8*~?`cIW)FkLX1wXGd!EUdBz{T`t%#0b-&v)`9(_@5eZ7bDhU)!k`a(
+zHr4)i)KNyLJ^DO#Qm3CPYEw%z?x%C^rLpc~>~(@aM^t~_{H4s|X`T?Ews+vjX)gq4
+zFe|Fd?1{UCnqE^}eP1mW2u(zHoH^NgG@h!kr;pmE%tBsCLj5TvP@%^;e-(WnC_!?L
+z54Jw<p$1$LzK5y&WzPC}0cu{q24U#?Lf3cdGNJ#AKiB;oGmfxF1Cqw}x0%MetdKt$
+z(l;8Dkd4P4lGRWAN7*_3=2(aTxnYces9wDZ-x4{zrxDw6SDK7<VNi=PBd&8~YAuZy
+zd;(=hShPp=MC(RN<MCO!_&+NAY#0$#WS5K;7%r?Blr1jlBag;tkxkqhg06wHASU}5
+zn`0v^UUyIIgPvf7z}z2p4^YYceE4r6;9!V12OogpNsMk<+lX$tmA@w)5cX^`;sl!9
+zk}oIF9e2d>_$T#wIUAa9VJd%`hOtTJPuELQQugyNicUFSf#0%CBr{L`m(Lgf4)^78
+zj|=3uY@IH_8fGZY=izoKO2`vp>Q7_AB6fCFKd2xwflN9}v)y6({>fWijyOsn`v^Ut
+z%|c>$bz6*bF24fhTd`sAI_t|xeuL=qv&)dH<R0pP;W}j900j}9X+qHrQ2eAtg$4L5
+zlcG4j;>NWb332k`P4!U8ySe#?2`N<!8BCMh%dwoZeq|pVi{Q9eH9Yj$%hz~^AUb6!
+ziT~&M=q^|Wuvp_I)>{sMJN}xwLMEz_H|l?bL|I3Ik%E#|8uOm=CVMAs$>2Um1n3;@
+zp40jX{t}C?Sl<AyP(3-69L17GT}UBU^|n1|!D&BxRTP0?AXwjFbe_^^sF$#pfN{>}
+zI-;3>00nxDI}NcFq?1jKe~+4JV)0^=P;izu3Iv{kcS=TYHebQ>x2(A+?+W`dehL+$
+zzfgM)-OY4XT5=M0&vMtY@iR>8oxHeZI4fqu{V@+Ercv%3i$em<7Fw?0aW<)V6HIe|
+z6lsRzC54m{|E;j?Q#I>t=EwNE*h|^K47Jy)Q&KTvq2JeiqjVu~hX%t{(ab5=&Ndj;
+z4n^*D8{H_NZLm;Rh#*%;4%OL^WebR=WQ<?u50F!~I#0u%=lm77;~rVW*WnC->Ps(p
+z@x|~t>It8w*M`qq={&<E$Slta1=*{Y<3eb4;XmC$+v$NkM*i^|ZzU70y~MWQ=$vKC
+z2RZr{le?Jt2VWVAyn0`K=#}?1qy!!t|5U)2ymXA@&Ssu5tB;~>*!RR9m-S=#dS6G{
+ziJHdthZgTgv29sM-5n5JTq1Q0T=f~fpu^>_7uWHTvmz+Gj#()}ILf^g!>U!cpgOY_
+zL~vN_G=4&e!U2wg2$N}Q@$Mg~x-bG2t-rci6lFHg8Bix(#b=O%PG*{*<Gk0<LyPsz
+z1DJYOk~$i#jz?pSa+rrv;G{w79m1E%$g|LD*e|Nkf1Xy}expkJTKIkAO+IE5=gzSm
+zo9ZUT?VKAkq0TT{mg-s0wsldkJv;GgG`i37=FL71i|4;X5Y^H20Yvd4TpMQHlNf@z
+zw?bK9lyBN#|6ArG)C(R@o?wsm<Uo*^3BnZC>v8L@UC)Za?#`+x{vMR>6I!i_=qak8
+zvn-EltxjhaD{@=f)5v4a(`^|n-jfq-Id#hcst6*{0_%^&U?IC%t$fk5>~E13kX<|g
+zS|H-zL<O9p?y<VCMDZb%3$;L&3qZqUTfpuz8l9~ywU$x<%jzL^;xG{HN{WK|5~&lr
+zxpW1fZT?p36fTJjbLpX6BT}hX5jeSM#HCLD9f1-GFE@mfCqx9i?PZIuQCZ02)jiSt
+zC@z9DyYUh~N2Ta-A5r<)WRlC^8c=~Vtj6*FOr~!{xFzw}wlxTt`49voY*e`X1^+Pj
+zo`EV}i#AY5<&@VEn!+AL{3?){ztGxMNN2vgP=AMelZ({KSi@)HNh#5#lVUcJC0AfU
+zhv%50N-LTNz&#|U5`zM;wm$>=E%29#{#y`>$k<lIgZOVxqs_rRWLLLLtSU(8EOzq$
+zGZl_o2-4|0$90EUA9QJM!>9oYWVi!1Zxd@haCmcjnF*Sq<VYeH_Hd!UW;cqS=g>GL
+z$vCil8zo*iSjo{qqm}$&zT(#u`0ik#<k||pgARg)pO>^Z&N|CYZz5$^U)S*}K>?qm
+z?kY3KzKCuGzThd(9blo3?-4rLoLv_<0WbjSkp-D8)$E%ei#)U?jnYks=AXYSh6lwq
+zEyoNKRk^6^j;MiG*FQ%k1jMqUKPuf>kKIHBK!m-9==COV`UW%!1(W#w!TS*ODxuJI
+z<9wGFw_|S?bjgd0gD>nKMU_HnOa(>uGXPj(i<ACpnQc3b9eYVKL5j9TUeO_o(9R8`
+z(n3`5FnfrOI3lZuWQm=nrtVqZ5b<MxBd>#np{%ws&k$phVBd7{6N&E0wbL>4twN{c
+zAsNk}QOxGs(XD%{o?N7RPjs+s_GSHGbdM*d6YIG$;!0SYTs<M^kY%lhZ^q8zUkPX9
+zE3Pky^4Y<g8^s*VCI*(l(`?3En9`pP9*))K979b#p;4_w{-&}+a3P4J;;h>Zv7IZT
+zgu7Kd8yKvgG@`Uco;`+w@J#7;fIGD<zwl`QgiN1|BP63K^qU|QPz%|CdfCSrgLD^A
+zYYi7NsE8Eum|y*R4tiS_4f!lLx{(*nXi!__$&GGb><VIWex_~y_ka*qyg2@Rzd#w=
+z9qo1{$8Pf|$~R+?>J5Aow3x9WhbLK5Lr?Q}q45t}>pG4S%0GtiE=7q7abyv`X!q5*
+ziqdEzitMkt0yYevW^O8T;&JWeN5SL|@nq_mMLb82+hL`LFVJ2@-po81BPa4>?`DoY
+z>^R>Pr#v??0h?y(DDvjC2`P~JwR%gx&eSSi4<_f)kDN+8fjVc<S9zLXP(|q!hb16f
+zIWHdwN4kozy97#j{Ntx42w?QD6P>y!3EEHHVRnfLog*zJa1*(d^A`1MV;>6jWE`~3
+zI>QC;*r}J(<cIKo(O>9;`B_Du*PnJ7<~%!$OeTX|8w`JP(G5Q6++Dr*b>nxrTDg8I
+zQ}iD=CH~VdHLc`lXM1N)%YEDSTKiDugP)UEr9?6p9#Fz1zOFU|271Tsewd$>o0OEP
+znEkTAs6NxRInh{puE6u8^iRFJj^`iN?Y43?w%U=Y>KMQ4kE6Kix0RU55&H;Xbn#T=
+z6~2^DpIRAff-%2riLSP?5GZ-t$Ed17ey2FAY8s0bMf|2POi~}lj2(WJ6AEbZeQom_
+zR0V(y&#tUZVxW=~2eNoah#{OxJ(vmY<rZUex00z%q$|-do00x`s{*79SMNQn*{oD|
+zqUo$C*ti1<0k9hU@E~!-vH}~ms;Nz-25j>J2vJh}|GdI-$IuaI`0FgD_G{kf{IGRg
+z64nqe&+;T9Y)1MxrcXOr&56vCBZ8#}`7Cb-64ZGYw^P3o|HrT6s1-<7Vh(=@c8WP5
+ze-uuc<E16yqi!;=cWBJ627bHzR1Rr@>|v@hZ;9Zw;}Yq+tvq>O@+jUBarX}B^Zj>@
+zLDXs7dXGgaT9dW`qVNaiFeGC{=Qb+!cTU$l$3bGQ-i!@<uR0fF%6TM;c-_4@qefT(
+z6USP4n5zkVl+GP<ljoH1Ue3#(vFmozj}_>fJlSBX3bPQrkbp>LKiz@g*AkiR!&8uN
+zf5rd^d9Jn^X+?3mgN7Va0OF%dIkqNk(U4<rAaIeXNdD{{dk$eAGmEzE9a{z`a(H?Q
+zX!vLD(Ee%m&cA~9t}!!q^G}^oWJ9sL*Al2^c9|sNR22SP!UOzQrUWQD8lrF&>*;qX
+zgve|=N(cgfU7I*X$iaOjlfp%>siEKxG-w-x;Ef!-T=Znn2lN&kgN=@Q6nSW#vezfm
+zxo_23n#SdDISHGSi#$v*5c@HK!vRmL5~=0#4=PtkNS_XTaw8=t(hR4sodb$An|cVP
+zF!6a?Tl9^zj5t4&B<c`YlodR~`3Mo`zBUzvugxG0zX&G9SYJsSn}6ytwr8T*coDAs
+z42Pi}r=gH2{1(?flltF}0cNa_lTS8%xS>5oC4O%DmBRdVgcEK5@Nx8L>Mg{xGu16&
+z(IABb=n<<9P&(U*1AuU#>SA{p33O5Jf_+a=1sTHlG?g}ycz~mUO=GvOaH7fb8xrrp
+zeK5auyeRGSii!LtRU4V<-I~3;Vv89d#v;D%YU%%7DqI$f*PG!OH?re)<1D4omO=w7
+z){qo{xGj5dDH(`xVe#f7Fj)HmW-C<$<+l%_&>{Pyt{BqG8x0Nb=cJ9ZS=is%^o~pH
+zqlAs94Q66Lyr1*sC)c1w3wGrzUj68OTRzSn0YOMiQArH625p!`XC_($UP<90w<qKA
+zg%f9a1KpT65!{XyJwgsL9!*{6+0wuYR(yy^2TNm7R)-1$f+Hlwi%YGWMEXcvbvRXK
+z!p!%28(!qM3eLHGC++F9Knvr|Pv3Zx^WDS@J$G-(q;-yGcpD6UqeCSJZE&jBq6G@Y
+zP^zf!!SNL@TN>)dR_Dq45>u3q+1srn7*B=6dA=3gwaIvThNb`}hS)Mk;I~By{pe4;
+zfic&(pz3DcnFk5H@t8*iW$St^CY0ojYjQNL8KzA;kV8Z<W=eXz7d9yEm^VZY7ya9H
+ztBD(z<ozIzQ&2@?>cH1}q9HS!f|6*gO+ML>+QWH19(zUXwiG$%%cSey{0}a|YA81W
+zd_RB~8Awo^VV~zsia!Y3&vN+!<__7hb^lb{;WYwLzBURU!%BY}5;oU-3AL~VJUXV}
+zJM0r1eNT5T!;~kW+f6z5_c4FlO~JeSR`Pr_&~?zI&Jb?~au5VS(d1D4XXIr1)2GO%
+zzmn-QmpBpaH2&d0th^|SaSsQI)u46IaEowY6QX#cxG?G@GZ7+zIAxQ=E}4u52~Biq
+zQiGhG1-olK#q9bv7x-WfdFhMpq(qwmt5)z@doGSsfNuqW)TgMZTM7?rzwxS}B4D~F
+zZYod`mB>jIF8;zgeHLdmz0oWP*i=~U;`lzb%cgd*khggPioFKprt)YZcCCxGbB2m1
+z+z~jAqhX>fuAv{!BMvP|doY7a5waI4JPDyhyY4S|phPS8M4&h1r>n=-Dfo74t)`on
+z)7I!deAJX=bp3H?1e}2^m0?{-m`H6}>*bVa@a3li^mD!m4p94|iMLV47)ml3o+S!4
+z?7$udp39Wnj<TMDeHD)Mf_CD_F{(6=uF_KR4iDB8cMM~TUEuWR{Ox9`^}j&KU_94*
+zXJYDF73OM>Ah~al8cn%Bi{U_U!8AFJ#{qYs)9Hc?WHi=pLSa%eW#c)G*C-J^(x0?p
+zNidNnJAvg{!46pRcn-bfC$oaO*3YWA4faI==Cof^Q(u8G^pnpJc**FPz(*G<H=}kD
+zSXpO5e}Nq#?X)<aXf#Y~WK3v@r&+$t52Dc^rFy|<U<V|RzA**N#1pqR*m0&PmC9Br
+zR+lXsMg7k{8fI;q!<L%1PG*_~0YR}R+sN~N7O24xf?+b*RzcJkQFsR}Gd+?3@dx}>
+zVew=79oBiWf~iGaLS8eTzmce6lKe9<Nd7wFfz?zk0J7DXQC<52QK&;?HQYvO+b7Yx
+zo_5s8`*-A7@Jbg#F+B3sgNMquIXkAm5>ZPK0OXx0Bk^<4&(3I=b|q7bu%w4We-iPH
+zl@pY<OSWwcoGb^w12naHRN$K~8N35Rcrkymx;XVYr)Ih>kQLZf+KDvjgMJyNWGHk;
+z@9QF$v6w&-q}gR#{Bi$x|4j7(Mo>`!`M__eNObaa({HrKTt+h=YnRD{9*N^P5$c<!
+zDPe{R0f=Uj4AZ|6m)95t>LX9c*tB6C2(=0UA)`w7u0GN4gwnq%%?{jZ2tI<9;;$C6
+zLr&jv>Aw>{d*&AJs|w7S?wby)VL7B*dva}h2aNe~=?~MDx%+z$ZF7CnnVuc1;GQ$a
+zzHaoFy=mquCN*3OU{i;%^TStqePv309u4ZHpk(NkD%R?HeBIvqTkL!lk|%dV!~RV6
+z367xW(c*?|Z_W^<*a(c5y-Rhu;L9<_v0HbdOJ)P!@;!xRV_`PL{*}t+Ql2DjpNIgi
+zGZWzY`3%#OeZC`MRwN8^A03IP{YzO>zJ30A8EbcM)A?AO>)k9c#DVUqf<I1wr-H4C
+zmg}W@{;p*WSDxQ)s$@x>hA-T@fUYt6>&Yv!*BZt9s0eeRIj8z5#m+w`Wzqx-w+e9T
+z*{9~|Sm(;^%}~OC7#rpg&<Z(&Rq#YSpOsT-DqC;gj5q4sP{EdwKxH;3v4WGb0?TPt
+zM*+!Rag;I^u!cT<_t|^=`hf!7Z950EpC;GD(0In<MHbodZpII)i0?jziDl%#a9~(%
+zV+`)^_OO=Em5~CiS5)@ovuE$*Tt{$K7vB<3ysHTY6lGh59v%5uZHesPwCJ2D)XJW0
+zktN@HrE@wbQ}%Gx*Qa5gBR<~Pk<9nhZ?5LA!nLow37v>=KY3iMfU);vad=aC)R%Wz
+z=bS^H*>|s5CPu!2G{%V=WTlK){NCL-89DODMa{h6M8D;+kD<H20X$Py=J#u#8c+`S
+zmDEVmdK}{T=D>sA&vGwA=X-K3#?~yeG)->RU)&#>ti*->koLK%a3{F#N&Svz{%X#n
+z4{yKHGRZR@4XK_LyC?BhKQv_EzFMT=jdYu-eP4YCgDqfRJkHE(C(3?ucJMf=cBA)5
+zY<R0&z^wMGu)@YVwLc2#nVJwUlXnqcFIW1-qH>D~zZC}pM$VBGkDR)7s=;@#$gbJ)
+z=v2`z_@Rr?U2!*RURYl<3^<x~=-r3xM+XL6uarG~c8g@w_`2bRs#EK7;K-dLzP<7)
+z{w{i_E$1Gb$7=<m``#r+_J0qXye+f*U+-ved&<~5#Md9Tc@sY_Az5d>A9I=L)ErrN
+zx|w`sF0lOr_^DZM>}B2c&C6jON2*m<e)ar`e)+rZvzCkR5GHb~;fi*>msGnTXZb_H
+z$BUYLH;W^VTCVCVbHD)g7vUx^iY|<0D-L~$oRG`;BqjR@w13+DJXJaNI>O29(5}SG
+z-OR6jPf|w05;4^m$?y*;*#;Gf!Cc6L^ExB17rvaW!w!G<uyUqddUF&I=r(qXMgRRe
+z)MB89e2czbH}Xt*#eA2^uQK+NImN7yb63ATi9DV^1UM6D<vyC1a>i4R^k5fWb^qsP
+zO8cp}AMjutxY5B=-`cqNL4WeY!SBs&KTAi62^Yr-5k_H}{~<k{ZI@$8{LV$)f}X-x
+zww@2n`tx>7;ZShoz5niw(hkg@9_^T<-FxuUpc`^<4sj^3@9n2oK3}4N=XTnKYh8?}
+zl-jE}Sj2dHx>Md@Jo48Et1phb-!G_qeLpvR?crIsFzuHuR@FvMX;)K@PORU|Ge5Xs
+zq#v}Sv1_%erP1oi&}-|nS#Cex&dPa=oO1Yf)O0HJ=FyUKF32aknsPRB$+kyUf;SV=
+z-<O}#Pq`S>ITLi2d|-J>?bxlXL;lq#x{ugi*)5!mAl5Z>-}aS6#(~F&cNcuz9pPT^
+zu&BPZQ?viw$xVmOfm_NBm;3hz`o$1xhZ+)g4eU-=AJ7uz?8vy*QFAXo`$Ck1bFS)I
+zTEWBnJ1&bJ+hf_49(!TF%=vol(5YOprrS$lqMQQ-@2=N){7RF0cOh4@{Kmt&GoyzB
+zYXQxBHmZpEuBB(iTpLTLFFV;C{gS`e?pe+Kq(0~5!^t%_%F`MKLqzmmAAk5<X;?&V
+z-L$b#R`W|L)N3mK^MqH-oBcOUNiRKO=Jp4<&&$>obaf1}UJO<b77)rlYkZMOl9a6z
+zNv!+dg<<t?8`;1g!P>)BL(B}#hiCN;4HeFST;D~udltVZ)O|ev^*Hv#pxoo7l+TfS
+zUDB4z?`^t&h<$O*{=x-?7e*mzpDj<!YgOEnJAdAZ7~-g2>DccW`r3WR4UHcvMtNd+
+zFEqRypcm>4{YUj(txBH!_W*pbZe8AM>S2-W3gzhi{ZzO4l9$iJ28)}E2E&UCos+YZ
+zQ$D4=P8U&q{q&r4aJ-_QZNq*wDShFxWB{+dE+^kga9d7EOdiyJ;?QZG@oI;S1^D}M
+z2!W26y)Wih7q%6e;9S;dQg9?d%&mBEHYd<uV)))&pWB=EGKepOTZV=mzkj?6cRRNK
+zw$o?($Smhuhr92E5JjE+gh9(d^<}F8cO~Vi*hS46!qd^<rJ>m>O?q&yf(rX^L)qQK
+zd)QeQLC?<*0HX+ZYv5OJrQdyWQ*L1F@#zwSv@ibQ?8D!?uit-}?S6nDT_}Ct^m?=O
+zXPJ8irm30NdVd;(SuhSYSmyQBnEJTW;K}@(kIP`)CCZ^kzJ!>cz2di&p1W{J&)aPT
+z-X(oPa8Y9=CVmr<wAoRR(_9K8#G-)0jQgW4JAQ14ti*hdEqz@|X>h7WWNr$N4nnN2
+zpFQZN{jG=hENi@;<)?+ElsfAH1tFWagO!GlaJ6gRead^%RL5@lv<Xo4$XwO<q|CMT
+z+B++~>m1SU&C(ZDKy@|pkMhG<kq}$8a;$@fmh?O@SN&oI^zq`z4My-i2j_dc)`@_}
+zi=O+oEi{ounM%f?Y@3B%(Q7$#lG=~9PdDI{>YI9&4FfjwTed%4;@xP#oqhVX|8A1+
+zzEgOmO4!4prk+Lb>x=_t+mAJPr!!Ii%Z6xH{{J5@dv_n0w9qoeuLiaS%65qpM&C6y
+z2i>uF^HagROV;^_YM8tL@L9_|c5J<Vx<Nv_>PFD9-wrh6zQCuuMk9~bEuCh(R6_1|
+zro`_mkr1Bm0n4d9dj-D|>6-j?`;uAhyuq8U4|+#WR0Ypq0wuRV=d^#+g?AfjCrnov
+zjQe%{@X)O2{Tv&RF?8@)68qSHgu4UUSKj+fl@(fFntx(3F<6l&X$3dlQ(AHQ!T!bb
+zAvP;g!1dfB@`dlVVyUa(Gb63lhGnni4@Dh2YHp-Qv2L{fwJ80c)8&zs#pXvQTBQ=j
+z&#zt9{R}6jTCAYq7avE=f2y;R9v4@$z-}o`UakG?gAaKow^w0JEBxF0wXzGb&!1;s
+z#JqW#U7O#1(fR--w(HGI!%oSAZz*+-*b~13=bht;A=BE6qt`_5g=|XJ|97g3ZZ{fi
+zU51mBS9FIsW}oRdeBHHCPy{3;-A?aXTzT*@gynVbR{nw3+pgHH*pH)@3GYYFo~C!X
+z%-k}nIHsRU@5sJIywv_s%&Y(DGc#?2+?imnaV+Kbz-vE7CHJv^x8mRvec7TDr~cU8
+zk#y1Ch?xF=0CYf$zbqv*2{!UIv#~`b=R_0jDVR<;(u6fi0#pxtEDA%m%c;ECGr-X&
+znDE;5B%|HX=;>%9t1ejYIDZS&!tCcPrewt7EOx<99jUo<f#&xD$&KVU<$Az$)Kvp#
+zhn!!e2M&|0z{0EQ?WWl**1eo%wFZsWP{r^JpXx}QGSGCiHF@1@jd$A(N@%<sS7ena
+zRzvA4fvN)40W+gTeTxyKa+NYTs{Bw)%4TjTj}30LVi5m*%(5tTG0Npc)zIBWi)665
+z5h_?#xd2O?)UXItD&vV@)c~v2a$F;=f%rG-CKb$v1<i~QiEJ?DKp>!{T4TDS1*Tjc
+z?vtGg8G8yqzA)nrP>Df<lr9E#1jc8mrWNa1qL{&KMOB~%ha5U#a-x~5*aK{Z0wn@l
+zK~CZ>BrmWhFk`5^7Iu@W8rBTfO{;ljIN2#@z<j{m67_sx-=y8L*`PhErQG;9*_hVy
+zm0UGnDxi@ViuswKDDubznV3WjIx*%N+LPhD)dx|hL4-`D%;0#+fPGZkCrYz$aw&1+
+zkwoJWj03SC5yKG-Ozy%~Ba%xtV!3v+G^1KwyJIv1>+1ohzSGeRn2Y4RFNI8^IAMHY
+zF99576M;B8R%HXXv<=j#;qZ-<Htx7K@Ub;l*-+I64K7id3h>hdH=ZsP3*@O>NS;xP
+zmQuT*kG2*rUG@NJ%Au)>F{ILU1C|-$$;cpXn4eA~5Oc83vh`Bzb5!@VfLpEF(%p{H
+z2CBgjP!R~3usIEu=3t;THf6%;NoPY!L#Q<Z;|vp`JPsyZ)^hOQf>jNigMo%%C}Yf;
+zZE9Wzt*Mb&966d5ZGGUYK^vn*7@gp)l5Lu0v#OPYmmK6Z$-=iZ3r^7|ysYl)b=@+X
+zIc7NndoL%6>8$$Q=>P`iv%I0PP{>L`ZRu@Lrc&1j$BXI|Xw*VQ8)O_tz<$V?z}}G+
+zWuW~aHm0ceGak1wBcWQAU8m!Ctc#pIsN)K=ZqZel^iB4qz+B8JA%4<^R(Twj_#8YL
+zF4oDiG2ngDAQ4|+Jwc-lQ(4!jpDij|l(IBkg8UqKYoYg+8&Gm|J@G8cuF(s)h`%+0
+z8cMQe*d52!En%`vv`s%wyiM1#|I0h;Xg$FMl2@JNT}v7S8hhbMBpiR~8E{A&LW4(`
+zR6;j1Zhd4jhHTGYC;lERF)eCMhvV%8EAPOghe3KrM4RzQ7VSJL`M@MCG+{~R+s9f{
+z6z(->6SHktnoDhKE)jay!K4b_MZqdURGz%I>zPg$#K*TMMpFye$yN9$Eb!s}hqtc*
+za-+KQY|Uuw!Ayu)hOEPS_e9op=iM0S*2pvCDz>8ekU!!XBWA`9Q0!_nBiSP?jfA8b
+z>|CyPY=cbzF9w^BY)o0Vm#X7(RGqhuyUL|tGX_Eep=u#;cez|DCuwL5CYN~cvRhm>
+zVea>T?{({S_iM=}RXe8n_t$&<KK}3j{r<A3rIQ*CG^ycys#u;Y5aMG2Ic_PqbNnEd
+zC$&*5tTgCBcHg1oNMg@~!CHZ{B+V$THPQ@~zDHRuGonOYcB3EZrgWB=)pD7A6`8e7
+z?2YP`!kv5eM!^h$vR;*F5Cb)`Pyzy2g374q`&Q9!l>SnobYQZWn#~x47)UU)%2dG~
+zJ$WQSJlJ@QX2HzJ3s`QsII-ZI6uFe5_nDAx>pun>kSMSvUlx2>7X4%vhv|@~(XPv@
+zH5t*-!oo}rXWL7K`zmvgvK16;HfxhG(Fyj9(G8c7D=liHpOBA`H!0d}Ek3uPKQLOr
+zuvW6ET)bS#<{3{kw#4Tb^5QL8{S&!~fvF@0VSKn9TTP)*j`JZyXS2+hk2Pv+Ec&)i
+zE)+q|u!_c^AY?Hq)~c~s5bH(RlAv9h*mj|bc~Hq-G%h9qdP;h5ob-ngL0w&w5sA;2
+z7fKmS+`S79Vqp(AiQ_chQ>ko@-*xe^!4!!z7{NrURL-P{E62UqIHRJoR~%R3r+nB{
+zHe$DZB2y$qg7|JulE3<rhYrQ>$tHH?6ZcF;k`#{NV+OG6RPcSS5O@d`E8;Pxa5dcW
+zhkHyGmKq{V7TH7&tO@^NG@v3>FgyH-htv*CQoz|lF}^61Q7!{ft?X<EwAq}`%x(or
+z@Jr?pnaNbLvvFHgaw3zVbG?2yzDzhsDqJc%n=F<JGs)88ptonlgm@r9d}3~n)!AIB
+zO*$`84K{rFnF??rIg_L>fR>W5IX7?Uda{W=GzE-wPtK-tshMmpTRD`Rq#zcOk`;Q|
+zz~n+1@^aeG<YNqQh_%jm)b7lEaR{Sq9>C=kY63k-<nsi8LoWG4r83}gM0bCe#0!hu
+zT7_|)ReZ3OAw|+V>?I+@VC#}w5j;x-^N^cSsLzoRM$!0{TY)(=pUP)viK{WBF2}Q3
+z&=<+Z0`57LVX<VpBM}=VtW}bf8H3+*6|uCQD~P2FTcZ?<C5%>3G^jDmzD9!LWy!*1
+z)RUGPx~Gu5u*}KHo+^>3kewA;f=!*cK*ML(+rs3077Q%DB~K?#;z-uO%zm1DQW3!O
+zvn)~wNHMk-4dIWN*us`!8I8i|l);3w`9dX`S_G-4i81>5%*w)~O|9cT5`&XE^`R}z
+z7r-N3G^xBW!!SC@|DP_qczGl)bMmI0(q*=00(aAPEvyY5xtmPZb7Zw9qqV28{fULj
+z=<w}=F1x7qh({11Iio3K_!^$m7V&fpBS&8f$yE?OY6mBL`FvJdI#wH+bZoK(9m}gE
+zccBKj4Z(&bx;q-l-loVcjtDk&8YqzglLRO%S*GUr@CRB&+{He*FvA_<#2*riS%>A&
+z(23LtT4B){Nyz9M$2jFvIfuaKSYIqCE}2N>(05`ld70n{VSy}$pfm|+UiYY^9VpE4
+z)a)Ez^~687W%-GEf-PI7Wj1IkYA!<Be2_?`F|^<jT%lyc>yZ1c1?TV^L@a}eTL^6_
+z82ZsVn>~{F&e@}f<}g$2m}LpSe6~r3au&oWLWg*0Gvt}OGNnSM?ByQz&?sy{BN2av
+z!O)XaAS!8QE>_{WVeFhQgYXUQBN^VJ<4(fjR1##-QX!BoN|Jd~(VV9sP;QR$y1K}9
+z?)<2QGH!EgYLd*5y3;ckRf)LVoG=G@NMSutiwC}V8BG+*6*p0f5?7|7$%AD{=3g&|
+z*U2>H>x|3ieS!^r71Vwn|LSK__4)&x`b<A>+)(+@{4C){iJ8%x-Y=J8r513l!S{7#
+z*i?P%_Clq=jfV<fpYZUIGtT89=KfwgQs}mA+a}{v$*G~?v3Sy};=7#?UL=bMB(u?G
+ztFJ?s;m#E}bw_N6kxcvhQ^jKL5TOpA*fJ*H!8DXsNXgEShpMlde+PfxLOWWp%p9%b
+zLQ<hr9_Dr+g;}jt=W>(%$-IXO*!F+-R7av;h6=%4al;F!tTHmUFn@sAVVkx_rNzE~
+zGP{31mGdzj*oF`%#(?KfO)y$Ul-{*eZSA{h+mv(#wr_~6xqMhWq$)brbZWXuJ-f-6
+zh)0`pcn~e~ReN7#c4F7=$z+sn#XVM_X!*WWF)lc~t*{uMNMUgbnuAU?m?3)`RoJo8
+z2&4VUS;A?u7$CuhMtpmrkRBi2y^xRRRALnc%BX`Nbenni@0rgPEFDQEQNoU;?YM(!
+z7U&<FU*Aw&AE}jykjk|%IDDv*8Oi}wzm%=a5r;0@IMP(9nwTLwKBBfg)g=u8QzC})
+ziA$uT>Ecol<cBe4!;U+(7-otC>fobg2pAkITDVw*r-N3HOV#p|A_kI<h3dd3PzD?S
+z=JE<{+3mI;w5f%YPIw~{43G5cD<Rsn!ef8jGMUMN5Hw>A7S$HUh-G2Sa8vdI6D9Uc
+z5HY=NmkKf1H`TEshSCvXH_~Gj=`$QUJrBpctyszCF*@npljE|DL^g;RUV{j;RYBOi
+zcL9QHMu`EFk)&In<jzec{tr0t|F(HsiIHb!aB^;;k}ljg@8^VxI_*AEhdAVY%eyU;
+zxwbJ-i++CjiCtNb!_{VDN*jU7y}h%{h$WX`a=t=YOKsmH+AtL118>g*I9QR~%&MrR
+z?RL}>bh3OaYmT%W+b{xB;uDi23Y(@yPu1h<8<(;r*$hhY%Ah>DDaZJOF*uQ!7zMI$
+z4Tcfr#K07@@njex%;bGM`I(aC$(N&e)j=1AT*p@0tCyWk@`yXOakm^-n(1a;Zjyls
+zP!QY0=hBQU2k?lGH_O2eq~J7P<6=vR!8?n62Co}>EjYx&45M0dJV`u}vqsZBml11?
+zfE6eOO=a*!pEj|#Pq()<v}twUms4a*aFVDZsf)nwNrv6ROyQIn#!_X6%-~(K7B8^F
+zftW5b;@YS-Izk>)F+JnMZ11vLrm^XAD>sl+9rsgvq%spkHp|*D6pW1ECSzkwZo=l@
+z7$_&_7xFV$yoG&9l5Pkmhj>Y+89(CZN!Fc%R~FJ;)8gcG*c)XEl(1A~>#cY`Kc|rO
+zuxJydY@tK~i^t_AECWsttUdTn18LOPqZv_oG<^aAxr9a$G2V*W;9)<R#D)(kV_9_;
+zL1nQe?=ZAg;8lW0B+9*cqYFh$2RWxC3B)lr>IlgJaqiX{vmO@NN>Od$W+VY$b~82!
+zTmMjzxo|MMIUe9C>Ua7c_9}%Umye|>n7PBxA}xIImWjhBz%e?ykT1GSZqY2WV~uCa
+zWTkInIE52Vkc=_WcAQ+1b(nRBF2qerZUsr035$}M(9jvW5>+o>R`iddj};0B7K%(2
+z%sZv~K8slL@lA5v%ZN}cMJ%ShV3~Vvknx*RMkr?9Skc8)&Juo-=~N{pl54ni+@@;m
+z8Yk`>9UqS8t&k2uWm|b?qbm38q@Y~4?b}C-J?9|qMg-!@_})<r1fElfDEUMw%5gC_
+zYmG$HrnPlfHkV^(XxGr>xNV^+-@A|k4R+Q|qR{v->qxVHhpDs7lnAHh9p^ker?SII
+z)?Jm|cpyo-tUaI}+7Y2;7C%@ir7(0u^J%eR+2?gh=3@b!ShsRar&dbyI5G;GG`3JI
+zAggl!<wXP%UR&l{9=qaQkSrX8jbEZrX3JafW;^8B<B*Z8ZyYh0XNof=GOKw^R&$n5
+zYH~|5?+s^)G=tFv8%fTT%N(1NNro+vJUKTkeDP?CeI$2?ksjacL$<iH*S=&<7&ilR
+z1YP^=e6T|voQPqK)2_?&xg^Mfv}J^a3dFS?cf|9>${{i9>QIY_x_(!P;4BG{$t;Bg
+zR>(cAl#>~I;JQnNxIST*F;d7CN}TYLuA-uT&XC_`z!_6;Xe^~`g}uROrQpakfcAO_
+z5|G%om{^2%8TZmmi$Pg>!WOTlp)xqM_wLFcvEl&TrUJ_-?J{waF?&L-*fNh|X_1;W
+z<RoH!AYvoKi8~z>Ovzo9wnfX0;@!&P8;fp4CF%~rMm5{E`o%Ys2?rxj@)6f$hq}Yh
+z8MPvdWnZU=p-bEDIE6-|h|n=C;}yjyTOLB!bgF6_H57J^%R$&C=`D`M)x@SBxCsoF
+z>308kCY?>qXGLJDI~HmLI%sK_gh#f>X<W*4g<Lur*=rMcUeIZilmfQYt4M9Nb4zQ6
+zpOKyqIdfnW)AAsJVnYav$4qP+pYldIDC7EloPk@53+1`w3}m^uF!gxc0RxVmGR^%L
+zEuAKQk;pB?#~kySD9MPl^<dK0>zuUI=;PsYw2=(t!HN^|_*o(&7RMx&ZL*k|&0>v~
+zy`)7lf9z@#&+b_XhUC^&VGa+nMK7H@PK5EiiTYa@nliC6b1<7e2>Cdzj<_~-F1pis
+ze1cOY4}T*3+Bu)j9JJ`Mn|ntmK}6UHa<ysEYjv}Bj#zUf_V7`1B5nnZCvsUi?m<#^
+zqfHOGt!r-;j%NuG%JD1F&ho0rcDG|9VvVg8Kf&BhiX9i;P<CCtaBS7f5mD)9(lEB#
+z2K(I$dG6sWt0O(gqNI@Qw`_Mv_T@NpZ7O1{M!bouh|SRQ@HG@BjQ%M|U=vI;O{CCw
+zkf1I67G$0ryQTInN4$ezX{+At1+*?Ikid4>VR|lsC?X7pUeq+u9Xt3r=Mz=b=W}0o
+zhxky<smjiIjKOS%2OxNb8lUJTYvV!FeeCN57a7HvD?H!YU%YE>GK#67u@>=S#hg<E
+zQN*1@c-+ZwW*@~&I<~O5e29blGnHX{HC-r_$R|SKaq4(sNI=#G!Vz_9DwRD%C)zUU
+zj=7Qr7wG;j!KL|vt=R~@LtHzIR89A^_w$aO0!lZS-c-S6#ZDku-RPH9Nh|&>;-^{m
+ziD3Lhrj#v!;aN(i<xqDGsYCk{{Mi-V;)qCVhLMoMW!MT=83Smk3Wa>Rpq`(R5^sca
+zgdE7Q1q4JWH6){6A-z?`jT$0$Z;%-Zq;Lfn#!_;eN{LS8a2AJsKhn;=Kk&(R#Mygd
+z>>YQ`4a*7_q^@+sk=)4~{$%Yb7m{-<rpK$68QUFEf@+_u;dRBk_541g4T1Rt#Kj{V
+zaC0D*uG%=!&y8#GoDg|@qQ4@lIC;Sj)J2Sbr%y9EEW2rEgr9cC&tFDyR}S0;PGn{e
+z?3@Qe`0tJMnk{ygr%DTaC!J-6^LQI|k0KM%ZAE79wl5_`TqLP81D?B%Rz`$7OxVkv
+z)@kpKnYIC910e6o0~sMI&Zm>AUB<!~%Yp?Gd3OY$&VAmNA5>5yz8!5UU*w}9EIWCX
+zS;C6-<f(lv3z57cTw6e#G|+#8nTysK{S=)d-(kHbLshfq$}NV{)_Es&bVn`PYSUJC
+z;HP{2MvPhO-BfNg)7qdxVfs>dl1I%ItIyXh?Ps;I%;$=c_adsbhihUgAt9=C*LU-)
+zt@5Z7u&DjVx-wG4!f2m8CWaD2^e<xI<UJk=F@I4V;GPfx?oO`&BdeT*@`iKb4+6xD
+zr<`cA^dpH~3Xf--Jt4B!#?g8IO|}LjUYwmd_W!DbPG#d<Q)m!d?75@>Y%OKVWoAyz
+z+Pj~WK51QI3--!zumvYdNt^zq0BtNCNGG{6#b)*UKlY5KwC8Dr0<nz96nR6{q3lvJ
+z9GAA{**6j0y>NhKt&rl2rEUM}7<!lgtxxx5z{A;ew$wV#mHYv~r9Kw}R&lefMA_Kx
+z>UbjScEh`(yZw-8D@%Km=PpT?nak+ktJXP11`e-dyw8)iwq1lp#1oUbt2H%Ir?wH?
+zfNf`uJ2$qvTwY{Kp`a?UBT;D%a~7eEERY6fGwEHKL)-$HZMl-$=bE8S#a2+gmx~OS
+z3aRvLs_e0$wQ%6ryNc9qoTeW~vQ8KVki$;pgH=1DjSMF+X)KwsD^S;wfXI;$2J~-m
+zDmgx!rEj&3uGtbVQDBcVfr8||QBJ`YEA^FS&QNa{Yb}eCY%;JddvJm>Ll4cThYOVo
+z?Yctyvp#t_?ENz|rRnTqpW8AZ1T#)(tZYc`y$n)}mMfm-GO`l+c&)Z1CGW5!bRxp{
+zvI@?}QlaR{I7!Cjo4(Q{?7kVs+KA~`Gkc0wycoJhO2-_N&1YOjOA)2!Wf?X{l!d~+
+zrf9+y0BTiIG>hkvi43%O?h|2Wuf`@~8*LC<Zk00>6M~zxaD2Qb-c2?AL+Mnp0s>-_
+z=%MsI3uUG}F1FoAq%h}r{1UqFR(je1Z@H&b=3<8-ju|J?v+YSc?_)DgZ?ZHyTCOlF
+z<7My#uS`dK-WTj$1pevtBFc1nO`O|m2Y6HJ7b#5y^K$WkzT4&*ogfpZ!q~@GB`JcF
+zvzhq}w=AdwPuvm7RMbj0Q*z}ta(Xa{I*0&!JIjW{02*b!3lTHq6?`P8W79G3x1a~v
+zip96w`X!H1-~`gaS0JOb6lAs}C-RK4rzt0f?Q%2>TR%)}%lmk&?L`r3CjE0dNOMXL
+zse7k3){Zk+j_+NUvNE>duFZ%h$#9ZuYdh&r62~PqAT>FV)P_|VK%~vNPOW8YB9l2F
+zn#Xd%F%zjL0uIxW_5Cpb=bk8c)}JfL_~R19+zI#;A%S*4GFkVaL9nnNWvU|<Amy2P
+zr&{h&g)DyQ-B4$EHq`kO7l#+qwI4{{NfK$AYZwiUV^PhLFD1eA>$vVKBl+3yLzG2)
+zmD*}x$p`9S1w*}iGvbWHHC(|z{`Qf9-*TUfDh*Ub>76lbMNpB7vRnotkEZfgh!uFI
+z)2gNPuSQzB)k(~qBlnz_SIYuY^iKNG5keatwd-KnJgcS>#~cA}E>&qzttpL)AQXA$
+zu^kWXbkI{M33t%%QmG`Wppq-HChhhbH%Dy0iF2X*n78{hNQ#pSGm&iz&`dKq=C$WB
+zfg-*?&7~b5nb3bbN{bvMGc&EDj9R9UwK2wHN00b8s|{bvu@P70+3a^mti~1F`KI>z
+zsfz8rboTae2M)Iugm{7wWlW1Qz$P-_HTPx8Sn-+pSw;<_eh<}nWeiekkJNq|Rgo~Z
+z>>@r953_9%hS-MT3jH>P`E=!}A@i7RjPTu-bx>keie;~k=GjWW)+9CvLBJ|!_s?h2
+zJknL^sJ2L<Gtq|2awG(ApIm-~;I0KYG%>Eo3<Y_9BC}6vx|T8+y3?mQ(it|RNOix6
+zaJ#^K##UwweR6Vi@ZjK%RBj)ZcQTt*Wi}APkBfvx_wKme>Gjwz+zP;^*|<9wB+K41
+zo}I^np0x8|S!JVR&0VX`te98kfpKPu<A@O1qL5}L{8KloV*+$#8Y(_JJPlPd%+!Z^
+zM_TO*6ZsQHtRFM;u^>-2(=@8+8;i&nVgzHBEIYP$7kASkuG~-@QCsy5zwj4>G|~c(
+zdx4~%Se(czGG+Bqkc&lNTBZKT5TbDlw_2<u9CvNbEPIuF$|sj@?($r8Y=>{XDMsx7
+z5HwjKLHP&4P)-B3GsNrlYp#?6^8pMg{ew<o5=k;zBGgI}!adQOQrwkGIk}uf_i`Rw
+zE5+Gf&u$~PL8QOLv)QrTamtX4K5vw%E^?JyL8huG`G^R<gTM(QG67V|iLAixU8g*2
+zbqlj_^LGiRGNnB2`p&rgpPb8~DvbA#kjC;k-``U6q=F_Up>&I(^HwaMJOVarQb~sb
+zr;G?lGBXZ4iL%10O~aXI*(=9~%UnF;*}eRCu*8j`lHKum%3X41%<U{IQ(;zYsBfjn
+zIYY-C9Mi{y#WvxHNP3qQ&zrB@w(9Dt>{pB|6|<@2zHB;~6=r2;h=QH<$gMJ4nboY#
+zTS|A4u5?$nG}{_|w#|h0lC-s&Y;75B`^h40J?xrk_RW!{Unc=snTSvB8JkjRV9m|W
+zk!B)Bg$-fUXloUhLh>Eap{__JYx~%hMJrt~e^HB#5x=zi<g^oM_Y<xN-mOHCS$vo`
+z&c_>6?@q?0EBC9~T8*cP#$a*?G%l615{WS9twNRe+m6lBsn4o5#a&Lu60b<Jg+<)^
+zrIpa9z*uJ4zK3{}ejUL_rjb%lTkF)zR@=z5Jo!G?ywvJ!gk-1Y1D6!#uDCDGeAP;)
+zsT?3}**jT)H2bCNij;+tZ}l7T&l?e8D$j6vEStAoPL3c1m%?Fe6)uEa&f3K}ESOmT
+zL}J1+4ts)tXH>c{8+h6iKQf%4cu<$JqDed2oEBkE<dN9lI8nIIPQ&d*UL#NW8`!ys
+zjg|yb-{d6CU&c}9<Z^HxPr57TK2K?bw<k1&j65tbWR53Lg~G#9J30;2JA4q`id-Ha
+zrpC(VYfE5LNIFrmp>^Jtn<o@56s7e`+VpO0rDTQNN@C@iF30`S2uD1AzTskacC2t8
+zsHN@kv$LkiA-tF2Baisxh8vWl9^4@ddp)`Ee73SM50ems(TRnkBcfOt8f5)q$_OcC
+z%Dupn@m{%YJ?n$ZefeZDUpdGI0&0|l3k|gOOV|<PSL~aRch9&8k071?mf%4v>64!{
+z;+Z%WeaU|hW_awjkzKBzgz=cp_Y~7u1l-7?AUMqS#<HoTD8sXzFw#HI&^^Fs^~CvQ
+zU68Q>ZwW~n2yO||ByN|j6mj16O|tgMKP{!$-loi_>=g7Po<Jo^uE6!lU2TM6kFM3s
+z%aEb%=c<sG?VgaA)_JHV)b4T1lOOTfzG1sATL!B+iLz|C{6szsnVymn*3w*E762(Z
+zki&cD$lmV`E-H(76e(QYJ^XTd7K_}p`27K=#?y>J)fI-^w#ja|y~43Nd}G$f$L~<)
+zyJWs=%WKUYtP-_~w4hd2^jjM`H5pARNR{)4&UPq6t|Q+31;e=m&fU4Kf3Mz0EW~oa
+zLa;ZC$Tl^FE1kBr=W;_JhU$QA`B#nXy?RaOyeIskg$c;95x^zfMfJ-_RLSS$lVq#R
+zYx|Q6;vGnl)~0o*MT2ZDw<jVjp4RDoWV;<QCHCtiD4Ar$kz@@q3kqRFcRG-Sm~myP
+z>>a<-W%M&Ywbw>%E%2u0s_7T>C>*L-Cr`$hHo}f7%dXh#$fRk7cb+Y9+0fl06Hn8+
+z=5%+<OwOGyqF?Qz5nFYCYd4KDDea;s$lcB!r_QwO3YBy+R`F|%;_`C$3AN1oY)C(O
+zGScEjOJuMkADD<qk`l+%%lpl$s2#PX-l!N6Rw!AP@$f63{Cn;!L0(U%M=u#1Em+;T
+zydRdC;6GyM%i8?5%o%-z*3E!kDV~@8fFc`Xiwq<TLu@@|(Mpt1^)j}n&dezNzq&fw
+z!jOK!OWG)_+Tp7EIHLRbTzQDQG9?M08<N7d@1b-7zCR74`-FA3O!YMC`qjR{eCj~P
+zwcYX_+L0~dzI?HqehP7FE>i-BDP=5nSN3;HwT+Z_{ZvAmA4#zDK(+ccmG-|v;N90g
+zo=MRU2W`t%<{=v@OmQC1!$9*FV#S^eTe}{;bNA5r&JlGsNUk3+h0AM+ZkHE8lD}Jo
+zzR2=nyUmi8|CZToBv*mk*3d`ZPKq4oi5Buc9)-yG;s`{L%zT-8&?E*?J4{~f9PRU%
+zUz)#mrrM^4QA{?YWF3kVEs&W^CFS>X0<0C~LuH`hzF2Jg*v{dRWaQ?kR+LiH%J-AW
+zR0e32Oy?JJxIZ$I?7Mjj?(WY++^{kqCBL|soXG6Q>c*JoQWWciZ>MvKMN!oqcc57F
+zBYA2`s!}N>fmMXl@)xl>=4XqCT(`jUGPC)j<8CIO+@GnipI26Og@T2W_obZup+bax
+z@;#{ZXovf)bOxU-9P+KXLVMrb)jQspv6!{|hUd5B7RtFyrl_if4O6nh_aVqH>?>s)
+zJ>F02JD(}+OQ#OGyMf|<jpX$&%)6_%=RBQVY|goN@)RRv7fq$pK1Gx6&!LiBW?ngp
+zOrCK~l?yi<BVJ}61Nrgxh~}&R0;`Ii@hTR|{xjMFCwSjl49P;)F`UWd?7>vB2(p`8
+z%$CS25sP7+3=Qv08aMa3s&!+mJ<O4X?3blF@0!2w9_Ny?-poeQj`vco_t>iQt}#dB
+z^98vMs|n?WndaSWc>%gx$uVV&q^l~$-1<<PeR69t=M+rfc<-)s%1vCFO^qm;=^lJ*
+z{N&;DkDGQNf&XOeYu3faGw;8w*#dIcMEK`ktd&BpaG!HT32~iOdrjuaOsO<qNHS&$
+z(Nooqawex_0sQw5l|95~a}_rZ@5^G%LEUmRu?T6rqO6{bl74M(rgqiz0sMn((@){H
+zTXp;m8QZq$>OUj8bySb^#rwqdfPjN8=q@&Foh_70x8$-jw~*K{TfQY-T8!RYF5KLI
+zv##L}m$SHZwrS{}zD<4Y+QiBZ8u8J~Xp><KMz;NyZJI3<4oGeK^Z3}dKp>!5f1TPU
+zjjp0SH~{bexu$h!T31vHYe78QpnX<rzRmyc{$Kp)qKhSsKd<4K4zOcvou(yltP#&q
+zpLXzl9CHD7tjB9~(DNXU+s#T^Q~X)auf_4ta9oGu4_KQu?e}q9gQHhGzY53i;n;v<
+zJ&vn!+<@bEMO|yP%lqqU(GL1Ux3o`7&wdBTr^I;($Mrb6abP&L&xre<ZSlS7tF3vs
+ziox#bfVjR^8v@+;Dc+yoL65!z_%mF`#PtMVQF@M{)}H$m|2AFA^A;9kC|`d|ocD-+
+zyeqCB6xaVA$1A9Blc?_tqQZ25KkuWlmcDnrcs?!4@5FKIr#N2G^RrTeuGRi-b=5VF
+z8^rU?;`$Bo?0IqhQ*pgPT#t(P4|a-q5ZBLj@aqr7`$6&klhkLaz0}SJrSbbeuJ+s#
+zXpR+K=WtY|@;{`uUelb9kkvkv`y8FPWpD>AR*K{kL&O`bSRGvD7Rqyg{0>e;+BNZ*
+zwgKl-iv>F0Zk>xCF+9ZY?PiI^Z`;S8l_Sc#xH*z5lr!W;oE3Tj?%f7GiQS5DxkbLk
+zB@`i;3vTaV<xauG5)p(bsgSK4g(1f<5n6~Q8VFjslAiti=NT!ZOTnw?TBqxDj!q+V
+znzvutKRcT&)0IJ2v;4lGh$MGfT(ZgPB>7I3T*P08_{Udh5NFoW0m`uk_vmgA|L1qQ
+z7$p1)h<~eQW?iqq;im+C1z61i?XQBIp3&b~`&mHy^8lwUgok_n`Jt<cO8u4e{Dkzp
+zH=F$wVf;7k=N;NE@tpqN{tpMbh@w3&?p6Ni@owtNcdWGu`a?7`C}2#$Q2}=d_!R+{
+z1iW9sZwdH<fXf2@QoxS{{I!63io>XYg97FREDBf=@L2($6Y!jX?+W<7fIky3Jj3Be
+z0XGSFw}8_ErUiUjz%v3?1$;-q9|`yq0YkGK_6oROz%c<60!|6|pn#7Ecv8Su1pK~$
+zZwN@lmd%HN-2&b!U`)VK0S^lJ6#<t7d|tqB3HXA5mjwK!fFB9CIV0vrz^H(80_FrP
+z3iu5HpB3;q0c!%jE8zPAZrCU0N5G8&-XY-K0!|BfTEM3TJR{(n0=^^Qj|A-5FXl(U
+zUIBLqI3{31!21P!P{2n7To&*Z0lzQcuLacR#QX>t60ldmn1G`K?htTHz=VKP0!|B<
+z7I03$oPb3ED+2x~EAUak_XYf!fR_aPrGOs^_-g^Rdqn#M>=v*`z>t8w0<ITugMeWH
+zHww5(z|8{c0!9TK6!2C7V*>85>O;Rez-%`PxJkgx0_p-r1+1YT*F(5_mmnzFDC)T$
+zLgE=*e+Kuf1R+{|gCK;rX9<FVKSvO}`y4?Ckk1oDecvJoLGuNIAjZoCA=JG>5CYxz
+z38JBI5QKpFCP4_E?-0ayL$RAah(PoRExq`Duy&IfterKlsXbcjzVtU{@1KFlzWQk6
+z`qv+6^nUz;X`S~-=RxWG*S~3=|57^tnRNcHbp8|R{2l514e9(9>HG!h{CVm8IqCcx
+zIPcZZn!Vw(W~csWts`{m0wng8KUlpb@PpOWi(`Kp&=Q1~==WgktT~uCYX)PF*1Gg}
+z@ZRJ~ap}eNn^3+pd>YpiE8v~$Hqf<p`hvN-`e8t?u5{_IT)=zpZ$w=$2zifWQ$2Ln
+z)bVa0^k}U!{MZE=TdJc|J6yx~cCV*;^vBqD=(=z9mO735J9k6R_=nZiDb7hvw6z|H
+zk$9X~Arbzhrd_n|cj5k5*>!^T>3}$=_x?h9?@QX+rC{tPlb!{apE0{*&!7+5y5RB&
+zoS!g5+Kcb^1+<Gnyiey=8LO`U<f@DA^Zsb-W|^p3r9QmxZU>#;DV?KF7g@PjqS33J
+z?V^4gC?C|S^?NX$Rz36$niDONXl%lJ7~k$Fo|WmHShWr{??akbP@WYn_5k`)1#(ue
+zD~ht$_>`X&<$rn^<u~gmP2R`J6)HpHh4<>3e#-oGty&LWI%R5@|IPaSCbgg1{YlDb
+zt}-+xa+w}h=Co<yiMu|k<J0IH&CTZoyb(CQDYWzi=JNsc>y(8nGCmRR>iUwYi87nD
+zlcqIK1Hgq4+I49=%~f?pJ9&FUo37S7iq-njD!v~(V%~(lZNxj>D0i|`t9_crb}7;L
+z7wrC%W_S2WGZ?DYAMfm_{lmwrAJRSQLoiW&OVgkFF38i5HN4ZQf3?;@eOi9p?8f_A
+zxVA!l3tc*6ZVWwX24eR&wD40HuiMe@>f31d%M35|>UC6KhyGAaOVF4cH!rTP-q4M@
+z{vO}!LERhh%`RM@>gcQ;)vNWee$2dd9Aloqy2X7uzl5=0AASsU;xTi>o8t{O58A|a
+zTCv(0z<f}@@&0vzM748mts1z7)M)*OSl34yfiU3mTW062)p{UwxY03qv>wpjGJB#&
+z>!BNgU$vw44(-p_v#w(GEnU-I|Ihk6^`7u)vj=S<T<8uHJZ4^lzOO->KI+7J0^VX>
+zd|O+7((Fx~HoMV}^)=u?2<2$3VrR_W<r59+<52^6kT`*FVJ%}l)7W)i!n>#=Om*NL
+zO@G{^F{Wp|z?okC8M7yb`(c#DcWM4YXvaph<KKNu>+pE(v=*%0kN$^a$IK1dF*c4H
+z-aOH`M7%*ijK05Z2K1wiz%qv&n=uC3+h)(EBlV8Z+orbhNIg(IQhy0_mijdc{P^EE
+z?;x=r{igNF@Q=nAFo+`zT>LV9AM-iTp?$bH!PiNVtrPz;c~Rz%U1dJH4fs0^yk5fl
+z+TIl!gTOhgOW^S4;xlF_aJK8CM_=sjPCRXPVI1~QJtq?lu*M&U^rz`NMDs6d(@&f9
+z4&6K5*;xyO*ER^Bo_PMo8ucv@{#>Jz@DTH5;V$8AP`k6Pg@CgmfwLjP+1pqCE!NQo
+zz*V{j_Im@>8xB2fp1KNniuyKTe&{_-J8A|%o2ZT8RKO4Ip@2SJ3+oS>?42;yX80(Z
+zTfFl=zn7}fy>-;C&_lIbs81L>D$^<63x%I%<>?(QbksZoJopseBl=IzJ3$|aUg+9Q
+zAEdz-(_zjRJ3`=teJEp$)H)N7UFZxQu0g9qJF9O)ar<$MXzFrxr89Q=0^upGslf6h
+zjiaB#nBO>D>j>Xp>j5ryX?KG*F4clq7k|IH`fXkCoSwY_?QYVGNVWw3OoTcA>{x!x
+z{x0#c&e)j?oy(8Z82!e#*D_jC1#f$#!R9!8q!HB5yc^Ue=sWda;Ty!)PIYP*Pw(O1
+zxCGoFI(agVHlHK>s2-(0Vx8BgKnFU251l8g^>f<Ghk*x2Z^YQoJ#g0Sx)<w9KYgKV
+z7V9;<zt*82t@T#1rchVl?;bq~x_0riIPm^O$Wj-vjxP@5_#%$oIQ|p|l;DdH=Pp9D
+zy9lxGBHDj(8pl02{w0p1I3C3D2#!sl#X1hc#dERO>I4bDr)Vu=uBa_mJM`EohWpju
+zKsM2q8t1gv>i-vOj@ItOSbxv;o;4qe(D<Cbu#V<1^!SC&@R3>wwD(_s;c)F`;Pe?i
+zTzeMfuZ}U=uoBX~VV(=UR<EO;9F@mh2Jp>wG@tlpD0IpUVC+M{vFF1-sCS1RHeb+x
+zP^WL6z&Cr)-oMd)P^Y#BV-Gj}7WK$&j*2#yr8d8ccY;yi9B}E}@@sX%r}Ls8ccRX2
+z;Ncp5e{F4esX=Rq@DTI<*BgOv%K^}Pt+U43Px6G0_M^_fc71nHe0PuZ-Dkx&V)({d
+zUDS<wsZLg3Sd2&bwfZx7_wK&4CTokfzt*{Y`T~uOhPKeyP(2;M(~XJ8%w4GObXTx;
+zGN`e3Q61Da`sTx~c5T9VvTtELLm_-if31E5?_AAj9^ts?6UOB$xKH;&`orwKPP}s;
+z?rjKtozahbS69~su|8jjoP9#qPdouU`^yln&%K1}<r7apKKaXMBWKOu$Gwhd^(fu}
+z-{$=R&$vKqnfPHC_vw3^LMO~8vDVTkqlJ#tI?--j10BWl*d~ly6#U|iD#OuI_!sY$
+z^<TWV9&5a){o=jNkTVCvC(JQ=7xhHJt8UdGdxoB2I7#>zg>2dxJIv(eO}HO~+!I(n
+z|L$gdBQOn~Q#{rnc_OfMyg_rOgNAKJ9f8Dyjh_V0n%}CvQx7aZ&?tph-$T2Br;jv7
+z@x9Ll!5h%F9=zL)>p|2<^e>>jY>rXg+IjO<d@m4s6?_>`{~mDq`;cv(G1pTYwC|dM
+z>KkbHGiF&|eQ#uAwZ0McjN;v1?OK!Q81*R-0za&xol6g)tq(Q=(`aYnScBTM0eugI
+zA8G6W>_wd$F^+nS*Vhr8T8WL(xScSm?${{d8s3ZXaUI2b>v2sqE)aeN^_<7?I%{K)
+zwHxi#Uo|&`aUT9I_&D|94Rc3~p55OFFn)csv6kEl7~{b5E9QE77CR3);u*7pWSQlc
+z(a)F6P3ZHv@c*b2pCKB(8TAuhhEew>j9&-jFv2yco8OG#JHhI8<_Q-LZx%S*3;ZP-
+zLiFRUkNMilek^DU`qC@b((8D(;oR5FP3KOSo6xRTalL6zlNWr0+Zh8SI{;?`dYJ20
+z9pOi7Bs+H!uA<HjkVU&8i*Whyev|Z*(yv!Pv}Emrw*|Bvq?=tq`5CGFpeR3x@`IOI
+zenOOwNcDWQo7b}$b!@hD)9@*#BX)y#G5IFEWF|l(wxZkyt*I}ZyMnTR>?&IkWgR*(
+z%Cd4OLp*p8@0@P)PVZ&Bb7{Q&J8y`0NUjS*&LA1?zk^niZcMzG=nLTt8&mxOlVrLx
+zC{uNndA&`UIZ<XK-r3k<%%~n~tYVj0=0&MYkD_h=rcK-47z=23xXL`)rp(i#OuM!{
+zDYdP5nPt8zmAO@v;W|6f&yyw?Et4mEfZy~EJ)`^Q0@{Z?Os8f%^IFJLo%EdKNTEl9
+zAD=V>OQa_xRyrVq{~>cp;{9Uvd~mvY9({lL51H(J8g%tZrVp-zZ2C3S-7R$BZhF3a
+z+B}M9Yr~u;{>R#xdI#wup!v_&UaCRfyCDc2E0B1g(FGY$r8fqrk2N}q#~VGUm+9$C
+z57ug+W4+pG^IrwXrjfw6&R!24aXsnCq${$%KyK`Xd^iX?bt`Bm^hC&xcY{w(T}OS^
+zPC{2a3EdGgWyccNHPEjB^vD3lAh3b@9DWD%8FV=WsBs;N=})yK(CRnM0CcE8>@ONU
+zq(gyzLq-G5J<E7tC;Age{1h~t%KkSqP<sn?9cx^rSKsQIdZd2M=u*9Ny86~<pldE@
+z-+8Z+_|AJI7tmM+tH;69j+^>Fu6`Ip+t=y*eiw}+Xm4<u+k<+*o3nhL>oit9C==Ca
+zZmZYz3b`{#;|-p|^xztFK<$TS$1=6$E%TZ*+7NxD{!^jvkv*jy-d+4v6YpNx$>~Bn
+z8u!zWd71wyl|8wW<7~UKe=EwqA(frl$=7d?Y#&3yCNoWV5B(xhW%e29@pZxx!Y#rP
+z@TGOXhp`GWTf=0%w+MO*-4A-r>mlt)wjM4WezE(_UvWJwL^g=SSdVB=Ab2~~zrySn
+z(@Pjb?ezr4nb!CivoqdKI^XLXfPc^bircQ1NuP^7V6G85F6rL%-X-9C2=9GUym!&{
+zUY8bJqPei~mv9$-yOrdhlQhp{>${uTJ!oxqqD`@L&zNhWe_loF1F}m%Cpm#^A42Dc
+zzE5_5p5DXtj>=N~Uf|n0hG)mjr_hdvt_6N+$C$oOH0*IP1_A9Z;M6gb#v+KZy&up1
+zoSu<g5%+Ikbm1;qt1D>7`TLf>^J*{NU5{f;ta=`Ea2|bm9XJk|;;uT`l6uJIq;Y!)
+z^zD^y!s(O1=^}6%M-TA(d9kj0!4qlzXr6wKaa+S|YERnswjPG-WVeKjBJiDX_$uw>
+z2d6ZxM!bvcUIf{=g{y%eTi58D9>aWuYNUhyBkCr7l<~v0H+}GIg6qdL9s%IdnJQ!m
+z!mkkF815}qS2|8sSGp39)}T*cTpu|{eOuR|AFlO~F01EI@8O2_*zxZLu08fW$iOdk
+zgbu&dVc;CPZy0pw(|A8h_9*STmH!9%f1Uosg`V)+7doJG2iUkyt-OzRS?_Cyk6%Dt
+z7f7BaJJm1n?9y7Uk5{(^w1YxdX5$9D=_YymB$rP+LF06xdlSxdldNcb?E>|k<iyVE
+zLp8MFb$Z@|_sM=pG_gDMwF^OE<5-(Ib>VkW$8pSCr~Ys)m^eynbcNeb@Gh-Syt_6G
+z9WTJ`_rS3Lv!&?!YQV!<Q13FS&LcOX{xIqwTVePChTq+o=MT|_9>}lVBp0)`P1dPB
+z!6nG(#pBCA#&c_)Szn8Z#;s%nAQ={NegJ(NVPiM30(irw@KYw8e;wyR{VB$mo<JWu
+zux5JjY%Sq>SD@Af`g#7^hiaei(mq`C%<+acooHNz{_E#XG`djtA8FdR>D@J$|1WfF
+zAFk6MXmql1I9^*rwmF?-c21+U#0m4;sHZFN@P%&r=JHc!C)rgD>hn>CAK;DOd|*qJ
+zcwudt=z^$=_xWz<-$&mCPQD&Q8!g`0@z8^fBeZ@L?fy*=>jiE8udA!yr0)f%pEA#^
+z>8y2JJ-PB<Xx_Ej3TW*`x=;2s%-hR&@4FN1+1)Gm_gBxa`IDnBb!x|#F<&pQVYmVr
+z0C@HizA<bZtp%uE`qH}}p<R5=_tw{79Dh!D1HJSMDAS9%)2h{#HGguvF}-}eF{&MJ
+z?7$k|h&kMh`B@KswHCNY`pH_1?}q9LGYoxf9q@EI{B?5!(K^gmnDjZ+Mg8lUK2p<S
+zM{1jKeHC=sjf5YV&u6u-Gn(Cn^HJ?-b`Dx|!wzx24S28#^$lw1^EBzNCq4**t`H3&
+zTk5Yg?L+!rSUZ8aJNbSv@sznke;PRSP~+tPZ|^_An#`L2VLS~8J@g{wrigSy2vvj-
+zLX#Fc#6k^4=^X_^v*Rv`1v~bx*t>$*dtcjXfJN+W?e%}=PNK*f_xXOW-{b%HUhnH(
+z+2rK3Idf*_%$fPz0qI;L(ley9U2qmD5TZLd^ht=mX+4dtQ;|L*TZLqjG;ea3IilYZ
+zt?w+(hn8*+v3$ZlQ4syJDWW*Bomhq-ehD(RK@Q0Xk{x+ewxv(R<p=JSAcGU^kPOmA
+zb?`mh_nGMRw=Cgd0Fo(?3od;k&MSHF$IyP#tEU}8=lBhfQHn`(FRVLI9-Vh+U84Pp
+z?j((#(DfS8IRl;da95YX=cvYc3hlGWgonDcX<aIW>Gw#9=zfpx_*)=$(NCsE<7<uV
+z&iL{Lt%;z3?ueZbXVs)F#Pbwe2<V(ad;=fo9UebLGAC^5Kx=7NLFWPw(Ft<*n?&xg
+zZ*m7RM|7|4QUcq+szql~9a?W~7m~X@MB#5;vV>8c0j%mC4ti119z8<egM7CDoroqM
+zF->)1pHo89R-g$#3nPC>lhc2Jrg1n;qFjwPg@Aml@NV!|@O%Z>*hJC!jqLqA+;>I(
+zh9lZjr2A7KMu7aGPBh0bxYLv9>@L`E3L#SCZ&XhQxoYEfA%8*vuZI{b@|ltUOon#g
+zOXJ_=HS|yu8+t714anbV=uzS}^pJ4aVr2IbdJ9pB-XLR%EkI|sNcU){oh9T?L6?OK
+z(4DZM2LpSoG^$${)ghVbHh{5!FThXqJ(SVsL+Jg80S#j6i0^7(lNa<*(b#3^oCaG5
+zV_>K)qK#}$Yv{2hH1yEX%N5Ze3+E@QcV#umfS*rP9Mw%i?Vt`BbbWK22k1<u*W$Sq
+z;1$pUH0mN6fd-%zd|9Y(5$7qP-57pO3V!y{FZ7b=ZTPttfYu845B$tmwY&coog-My
+z!k*?~i+c=~Ap4WQu!o8Ck<ixMvn_F27YFH48L}gU#Cc%jI+>t9ZCPDPT)q&`y%ByF
+zzC`T<kp1_diDGCFmo7v14>{yZFu~>_8_dFEWx-u|K7vru?E&!zBnK20rwe=tBEhfA
+zKn?NUL6i$2BcI|q#0Tl%??i&V)t5u}2+^5QBc#xp5RV(W%3zPsxG*M3t*%!xCgj>K
+zvmoDq=x@XQ#BQJiLwkcRI(Yn?NXQfIA)IAs3=N=z#_l5GG(>d6+4Mq81H|i|;xyEL
+zJ+~-W6XMN6&<P>I1bh@$7mO(x?;+?LtpzUw4J7)4UJ7m>kncfj*=&yHKyt3np-t>j
+z0=-3TuOYjP(P#AZZATE>69eMH9uBP<)iw8Us^|2`V98yiwhUna()IOTEuBlenmQj6
+z3Hs+P7o$ByZISIH(d&f@4o$rth|W49S~IeRwrGzkP@N^(S326C09=nobY38$b2cwo
+zXiSLhHqL8VMrdv6h8P{}IrwD(Z3~aUJ(Y+BAJSm7v}d7t66w>9WVkMdy}U%GH6l4{
+z?4_ge6uhVRDj<J|*v9T+LM{jSKDI4rEJSN!;<PIYiFHCI>US8~geW9G^cIM%PVXfU
+z!C#nwWUF2{S4l|-@jeB_ZzV3`3EihF3XM&sR|`o<&#F;BF2qaWu8ZcVKy{bVI24+9
+zS3?{4*~sr`s~1j2@<>ASQ}ZSY<+%K=Ms)tt5D(&zypBL;TORVmx1o77ksqFg<d_QQ
+zCK|I0)`8@tx_V&`7maI)-$^pN4%4S0A27A62(?>YJ*{Uo8gD%srv;6<0KFjgs)T53
+zK|Ei8`ce{S_ZU<+_hg|lWU)jcm7XNjaBt~Uw{Gdo0DZw`bk0O$HKVaoQQvGNhZVR_
+zFrs@D`ds7K(wU0*ww#O3D>TN4M97aK8LX}mRu@8Ux}`e~>=tbn(v=y#l*U<j?i75>
+z>5M}{@OuSxxv#pTi*yIRUk|pAmWBN4rrt#K8F&;vpiZcXe?P6~n1+v#fIdg4)d@jH
+z!Wk`{9fQ$JE~2wSd$AUgZc58T-*2H$5zeKziRYnyHxJMObFD`FO+@udNIo>t=g1+*
+zUq<sC*I)@Fke>xIoPoxQMEl={WVuZ)vXg}NOVeVp7Ob5_FryWLuCt=Lh}DyXTL}|{
+zpkr-FFDh6fo<Q8ZDb+%lhj_Od@qMNeCR9TFS`WOVLmSxlg*|boEyT7J&^XA~LH>E2
+zP$6-GaCJ4r-qBv7wJ%5e5Qo~gpuP)GU$DavM+X^%yF&|VvjDXTLHpB;+RQ|ALmosE
+z%~w$ka+4$^5aPNO8WWMNn%0BPMg@HT(A*=?+@v;;$Cl1GIH&2bZ_|4z)o9;nqJ3*J
+zX&0_<0sEEJMWWB^O+@ntv;f~~h2d^>!btaTd+|)O?_Nw0Hlw|O^(VFfzngm@1|K<O
+zijeCd+Q%XohxColt@VqwfR|LnV`5%x*B(N>@EY(H@o@xNmn-Ts5AiY&jk6l@Vu6XN
+zPzkMJJzC3hkVnXqp!woZTY4MhMe2l9#7`x3zoHPTg>WXUM!Z@N`hs*N4z-6|Rume;
+zAW6h8$Zt@P+%VC2wtxYu5y=n-=?>^2j0L%wmtc$N8C{m>?$1KwVQ9~E(U=Wr4g*x*
+z0D6n)GH1=~@j!hW(b!pNJXt#02P{LVu^#E&f|gDN`rOWXq@$D282+GdG|_#}1%0k|
+z1lzK(XHp8HA#aKhVuBD~2?iZ&o7p2nLplcM8R!`DF`Gz-gpg}EO7;;(pzj29*)Cl~
+zr$`T~g}Q{Mo<^htAn!8R)LwbSn*|Q-cpqIv+c7gA;Wzzk5E5ufUE%62ox13JnSt7I
+z@ip_ih-z>LkLx1Ss(TfXZcvb%Tu1u^eo!?UD;TZYfF_b{BIK{pK9JB{T*!;GP8C)o
+z{sg1-HXt6Cp)t*2uaMtQLFbkNvi}W;k7cN>E#g5v8fOw}(}-ku4caT%BNpn{h}$J3
+z*LjITh3YIJI^z_okz9igl95b9zKQ~N2x~-l;aT9ji0n{GhcMC=*>U>RUf=}*om~-w
+zS~|J7{39EL^qP#-^g@pOF{}x#2lgNs%?mymJrVLiH9}c*E<h}lON0A8S`*sCU?c-4
+z5RDv6<jX+}laBj!k==@LrxTyS9&jeYIFJ`a<3>7*a4}S*&*+@Q&t}N?SF`{>r*z@x
+zr6L!P=|aAbXaj!O^d3%|=$;<wf%^&Qepmzd!#!`|4x}oIO&~vaSwP#g73ki##P0K#
+zwE=WI7TZm3%|hqv@NVN)yuQcc^Opyhn&`X+T_>XRnuBB+&g=k0D+lqjt_EU)X~^zy
+zJ0Xt@{I{iv&Tw@9L2ah>K#Yka_W6xiNnPY{AplfBtH0nmIz8|_Vs#f0YwA6O^gV(S
+z*~zJ1C?i8R6RNwm5RqS?<$*1fA<`%45b3pYz&EgSWHi@P-~|hKQQuV;4!nr&M(wX4
+zAL1hN9j>UOIX$XHG!oH0-H4UgWr^s4cmPomtu+bJfKA8e?>o1wcy1Xq2Z3IL&-W6|
+z6+i(0W+Cp|fcyqPET^qOc=gkl2Qxj1gnHR8U*I{B)qp8RuP*`u0eslRB;<#*FYb{|
+z{2ke)*}ZY-Ga-CtFMQTT{_T;r)=t0@6540>LR^ak7#pP1{<y#A+clj`6k0kg?vX+J
+zO-6kno}<(bn2?svNste4pNQ)S37aS+@+NlGK)i#1d<!Itgtm+>h(~K;U<1+Gf#$ra
+zxNgEd2hL^+UAu=MJM$h{Y%k`j9})uAWgfEA6uMRqp*pLJ26qaiuVB-C6e2o1kp4H*
+z7i*DerZg&&>sHz+q&qWuX?ULHTe~9KVyzCqOd$IYcfMBou}&&By%+Ruo<;{Adzy>%
+z4b}v?Y$81poneSZq&tvHhBF&<Q3>fDS!`3_ETAO%b)83gsM|-TsZ1iy`>ekF_eb|S
+z@trP;TiqqP6A&IiOdsN$GC1C)rPH1uifuw(;SCy>oEU?Ayoqop;}H^t-Lhi58~B+V
+z)<hX}M^OM=lpNd{TZHKTM|eP>Be|%ag!DDC6Jnzv^JI~3<MU{tIbco-#7{9%OqV8}
+z7uI9mQZIvSi-L?O7J~Ofy8TcN?JZu9`t^u03vdVF&?okwb8zid^c~1q@RG$nAWz2C
+zYF!E~zY77E1AZix&_WyvHiwArP=xvSAcqgRe006-rLaV@0kK8cM+*IXFOl}gUx0C?
+zwjsU~;*f5)Ttc*T5RqQ!BA-u}R^LUz?E&P3A`qSRT^dPnXC~oyB|P4Qd|F)=@(l>J
+zT~uT<i5M5%QLp#n<B2g{Fc#e9NoZU++lbisE{)U)_#GU^qM~~e=qB8)pr0%YFn$oL
+z20QWx@=NFS>e7O{Wat-r31|#Q?+J*X3q?3xbT`G&Im{#@I{L_n3}NAY5^a*O-2~zg
+zwL<Xq<Y+{sJJmumo!mvGPetpRigbQz51RME0tX@?1Ak7g@jlr1_I9v!jXiJ<DxrH7
+z^cD51?t#1rg(k|)LVkjbWNtzSS_=ctl{z7uwV-cNsLhDB>Yh0CT1~^_wVhFLFXnQQ
+z>=5=?igR^<H^Adk7>>p197GVstkAuCEyOV(FA=I*-?bX;hwaBN51}ozTSXGJL-uj)
+zOB~Mv7>wvnbYI;QMX2urxhg>O8K8NXNTy^6DZ;!y_~Vf;zu-7yOTyxwte4`vLiK*C
+zC~gCIZnP#0-PgrALx|Hu{wE_$6zdN1sP4+DS=?ieWbqzqBZKyqT8-op?JLAsXgG#r
+z8srU6g6;s0&RiUyi)yXL=~EQNb-M!)ofx_!W61u=Hp2ZC-Fq7+_R6+!x;&69U~SX7
+zs3wbhsHmPou<cQzO}kHoTvK98w>8p9Wz@bF@xK<ZZ*2>&P_TtZbZN*(rZ*o$zULq6
+zp>>Cdth)0w8ejoM^V$GLs%_y{d?(185}~;_MMjj<Q$TBmvkPLt&|aY>MR@wlmy^Y)
+zAKXo3X%K&I>NTK49CJ<&V8oO#c2|%=4bq4BPEupb=0|{Oh4TeN=S$**E_sO4BKvU!
+zVs>b+WU!Q$a}YO1^q+y4a~s^LntLy!{iLDKD)feL_x#4Xo(&LR8B8SH3nCDjAs;Tz
+zJB&bkU=HW6|6)W-qsXUX{Vt3`I*I2bSfW@j;A?c@yhdk5JEG;D^I|+^Oh)HDfsUWw
+z4^E=BlQl&040!`0rqC5~W=fYive6hCuhs(O0<BeTdN24#vS{BSwjK;;4;mNnPg)S4
+zLOz`WTKg*W8Ttawv5vs&yo=;hGM)lGMF?Y(%@F_5crYi%5@Bh8CKwz1ZOORz5szFg
+z7WZhPHZ`a%i7>Ob2JJcc`+&p2(0VA?f*ws8(%rV1y;O9jz&Q!$w;Wf!i;m{B1iJ<P
+z1+qDSuOhTgM>cRee&-@hZ|apvY#}23RJi6OnukcZ`4>FffYJC}O2`I5P6+G}*g^s!
+z9{G82Pi?tG$m0t=Xw$C5p!K?<@m)o>vm1}op>u*<t<>d#iLg~*kBNBhEWUdfYA;8K
+z?Uo@DZluDT;K#JVoQ=J@1U|AkXinNBG&h<vaRTxgh+W{zQuF+~puZ*|x&z(oZs7B=
+zF85H5BYzf+ABENyh1R=L4#yIpGk>8IvP+Ii1cE!#kDe$*BkuPiTLt_f(jpLFQgCc7
+z(G_s{$j@VmaH6lje6fc67v|c4?vcqt@Dm~Cyp=E$$#9Yoa{O2fTd0I&T7`&g8)~ba
+z1p5=wy$<QWY8$PK<RGg~Zfj6up?#Z>*rEpa7*(1E{yn9w_Aer>PK`pV{Yz8_`Ln>U
+z>pP9dyyLsKp?C1ZJ#f5L4U!SQkjzRK0)`dwdKt1QTbB=>(fJtJR62eKXz84c<LVdo
+zi1H0hc#c7-Ema7z2|0yWG$#1?=D5Dqf4%=eT<s7BXE*ZY>B)zb&>nYqb+jX&_lhlj
+z+7ZwzbfDc>?g-eOg*a9W?u=w~-k@`_TM6y6L0eXr0r*OZGkaKog+uenbCDf{I1jxM
+z=|g;{JUyia$^Q~0`%94Ax1f8}3UX_03*@Ozh;@;O$#+Tg5%dp3>jxbqwblsD(Y!%J
+zCwIA{c|z<acaf2Qi9s&Q8~K?uC3LonbcKS>LeLdB0~?4l5S>Xv@N;1w!IwMT<}GBQ
+zbr_@b+PJM{8Sp_4V%RM$8pM_sGP$}|cv^6}Gm148`Jq$6mOUU~%{>zm&4h4=BGFBR
+zFeZggz;%lP^1~h9sfOn$Xgx=bMe$4pdW#y7K7|Zt-=T9Yotx-Hh}r9tOqzRP93{G`
+z5OTQv$ASA8#K~d3gv7cY4DP;-lMx+}ooita+W_adu%`jybXZ~+Zqo?S-2qq~T2l*I
+z4$n=tY?T4LKSAstB3U2LZAE;ohCDQHg!p{2#O*^Q+`~`GVYIGbut`Wx16U9zt5s`r
+z5Xo==#B^C=8O9p^qOj`JSdNmqX+3gnqB@8xDYez9wJ}>d;eJ73)!=e2hiM=`w;CUt
+zLO|yRhI9a}8R{tL%m_v{$pi4VZ4-qMhjYPmhOziv&=sA9;A@NQ({$t`iERb)O-1%;
+z0$Nva7rO6vN2JIKwE!njP3_X+HgtI)S%iDw6Ljw*V`AMz>tc!5MHbTy>jt_dI!nRo
+z(Oly7((s%rzFtb3Xg!jCcpoO@zw3MOek^pC!`E6PS}XEp@U^1zQ9N!>FknN`TJdv+
+zFue!#Qy1Aah?SAVu{=4jr{Z&kf{F69s;EyjO%xlmg>wOK3ukd^mw4~HCqWxKA|W;D
+z%a>H~?-zi-2mUnpumQ+t4sZZG!|y^}*4!Q%I!`t8=Av_9ZV#DTEu<paC~C8M<sc7>
+zY!mW7dLX9{K8(6Kq6_gr4&9XiV{Jef-z5h$v{Vc6=g1(Y*~;!BR@Vt3KTS+*Kxged
+zG{(Z7u%UHbvXFx|ncGWkYw1*^Cqo`uNT7-0prX7r*tr_vJ?@O2d#olLs{*kE0)0Wx
+zOtTLBnH|Ut6VSOg3*E6GmH^Kx0M;I4@+Ca)gVsUJgFGjqAMuZid=V~^lUtDU2fr2k
+zWZGPjO(BGLLc9WK$N5fZ5Q3jXrZwPxE$lUt*}n+%xnFStfM1~X@xOyDhy+^7moM;a
+z2^HBnW<DO9@1&c+`PSGYm-oAn2r*1_mxWk6S-fWiZg>{~(O|%u(PPlk)H4Xr{~=$x
+zdO{afe23frQRJ%<xxQVdNT(GDQJqFePp`Eu?zz^u818Zpls*AoiPx!%bY0@}LH~`=
+z7mcAyn2mT}-&KwFtXj=m2zww;nA1zAdE@q<NP~OA1fe4O?v5DaB_r_%(OC{-$#7GI
+ze?i`oE5z@8@Jxs<Z8q|0QiV-wX6SAm-HGm)dw@R3`@(#(61+j)1fh66-IEbbFedZ`
+znkj^df5~u@gs9Kjdq{5oG8gf(0-gyL%WMFWPhBK~fQiz@<4uh{E!vBFTAX41$X=QV
+zkq-~HYJ4wAt))BN3(ZR#-wS>#vuzfR_X6J>{2w@Hbn!cRq7Y&YWc<EU+a<d5wQN3Q
+zQY{2rwJ}}TjbXF!yaM2%UC~?+Uj&Q@8Obz;><PLncVjIqboPJ^7RABf*%J-$0qLT+
+zkX#$m1K=YzUKnIs+jS4{X7m|7O33$E=2a)`ptnNq*a!JX!{p$8M2E9zb}t_HhFlc#
+z^Pb{4WL_t-6<5IC$<b=go1=4CmJru{4BbEOz+F<DyMX!88Fs;gFzt#$Ys&?HL`#K}
+z$aVs~K?}xr`BaSW!gUOtC%Q;aAU5FvaTLJov;vMDd_2&PB;iu8T46_GYv);<zL@U6
+z(Rj*;H*luI`3GmI9LOAPVo$T0Tn{;5QYYA~VRloxP9hywN9!Fnv;pjLr#kqChz}z9
+zA1|b^YI`832$(}6k{fh(t_5r-j<Z62huPJ3ohC@esQ$+o$bag=$3bH#;rB@#^LA1R
+zjW-P08uhPu7nrLKw?U#<MtCO$t(}6_-htYiqkV=u7~J9LfFHr8UCD(w8({g{;JJWl
+z_}(*_i}834_)FFBOjhGU@v{S{57=|WU+@J1M<)+98R^g#xDOI|-NTXYz9ld20qi`1
+zH4FJF-dz+b@@>!y`U2*}+pxL|gZzK{tX?&b+AdohPZ``rCXVl=igV^l?M=NzlkvUl
+z$&0l}CQZF0*LrpE>satC0DZg;+^>fXo$~$Kk#ASgu^9P+!@87^j+{icDNAE9j?W?H
+zAzHAOOYrOg5uVdRyhryCbcX<b*7bm`X`lf=Yq~VVV-B-}Smk)3XkTi+?F&n^FMvlQ
+zA$i5;CNymay#hZ3u)Y)=Tgydq-LeFIzl20<*$na_p;r#-P`^Kst${rqHng@2aH(+b
+zfOxQ^9rAgE&<@Wf<<;T$B{(}p`y0`@0G9(%JR0ty-Uj2lsu6E-+!^Q!JclO6KoLAd
+z@le1UF~zYKz|6s3sd?1k`+)Njtr?GNn>6;qb15N6K5^gE0rnH^8)^r*4U)t7-d9K`
+z1Nxj1AWLwbFi{)aA8AAS(k|CSLi(bV2+tr+?NYa$+I0%?-4>0h?$LnHOY$DyOGan0
+zqF6`ZnL5QjI-+hX(h*S~q$6tMdvSWz0OKdp35fH8PN;j-;bY>tel)K8moEw$@LUyI
+z3t&EF9TxOXz}WaR9`GCvAraA-B%<*uoU1s-WO(;#)DO-!h+C78EUPKiby0L%I!(~a
+z2g!yk@C3=QE%NOMh#q)m2A;bC`v$xrJ2dt_!xn2nu3X(?Dhbg<BAd*TBe`<aiLF7T
+z%e2KZBqYm9?Tx+1>5F?#CF1r|4yPN*D~9BqNN>4h05Z$!BeUrKMnbv*IOlq>x%3*u
+zQ;^l+o$5;H^J%n~h&DS!mn}RONSw73jf2Z3fr$8JGOJe{@4tY)zd)w7w5!|JBYwr=
+z{Ov(92{<dbS99?D6_Q89Q;<bmS0RR<kItaR$wE4kM;_u=su_{c8bBb_7k~M}MVH@g
+z0iqZN+%?~tE$+cFh1l<i=TW%*(G+7T8_*hVp}Q813pt({y_Zp2Li>VV5`9)Lg_YVB
+zY|`4Pi~MuIyAiybdha25-G<sIfe%GPZIHh~Zk;TIdyshx+NbIop*%V(6cZta3GzRu
+z2c83tM1E_8IoMLb>oxa;Yoa?KtNFeXx48$-1#(-hkcM<>rpIX^<dEtKEIh8==+lAj
+zR#`%b0aCDuJ@BkG#N1(QDzd9EE)lB}&LSNWE+V!I#|uM+i^v`Lvp__2rzW=Wx(Kuh
+zsE=$9HPH{xsX;6NaA?&;!b4d1J=4WK_ZV=-&+660F$hTC)tY+o7#4R+k0>`+i$608
+zJ}USHMtP}S<Aq39)kN`YJl@_K)CKt~Dzf=1NVW;c=cOQjj?gl{2l>@P$P3T1Me9TU
+zC7jC;=Z}<&=+xyxj>eRx;nYGTU^(cln~LM?W}tN_p?-LNMJ^KgSEwCkMpMV2-Q*rh
+z;sC_k(a8U)6+(WFPH4V23-NCz;-3<h{H-5d+|R6q2sBeLMdTCZApfkTQ$!2$56%HC
+zBVf;Dz~|Rswh)PQTN)9I=z_hc&?omCLA;Y-0Rcm?9PUcE+|2A<fb>)bmz$ZrATu&Z
+zR^W^q0r^G~k$m-)8HgiD<c8FOWTqO)Odep6rs23A0=>D%lrZlem4$rz#CbhrA(9U~
+zpNZt9O{Zs;=UE|O5608Hh0u0-B*;mQPz9}pK%a#8Jqh_1$j3%9HQS+GIFsHcoWSA;
+zLB1f)Ld2ipO%g(Gl0ZN*)h35yqaglsyN`^#A&6w;Ft)hoFkOm_u(lwdu~8%^iAYZJ
+zYP#x$zUW+@dympK0QCXiY<|zo>NeplB+n2Jf<0b@=Sq=(j`kAr!UQhzRavu<&xY<k
+zi4%ly51D1sE+o^?{hy}T17m`WEkZH`&miOZytc`B-Uokv63JaBqJ0*!2lzgP?Z0;n
+z$>w1LQEsOZe*Xu4V+fvWLw4dB(e6GGFjce*J+%;%vV_=DlqiQ#4R@W{Ju=)0T@c?w
+zM$!FSOzX;D6m+Mm>(d9FY1ZbJ$X}t0;;L|0+CpnW=K|_ao75viNEALJiq0tfeu(Z-
+zT)?LxeS#RPB!=1yI6ayuFI)q7J5*1KXz7GFw21FXLWn6rtOoou8h09wg`$gNncz1Y
+zh<(&NaXtm?DDVpQ5zcWLBqQ+5B*ZttSA%mB<_m!5Lm{V%<VLr3A@0Y!;y#o3*-_kI
+zo!?VUY`RCG&+n1LCJ6x_0Cz=*AvMVz6UyZ!3#Ypt$76RSWD61r3+_>|`8_gi6Of+G
+z?`bkPjkgE;)TDJpD8tPX&Tu{|bcI+3+H*2t`aK$IPhi!cy98=~`0%&(ZEZ+qQ-y#V
+zpo=go@T@G7^%*@rNVjAgk=(R_-AhA0OS+H^n1q%@A(d4tltK20gk=cH=ne$5!hG=C
+z4Wz`;LR-Wa1tf<M8vzUnArI{_H@ZuyEl~(LTwC~!hql_DU@q_k@?0XG%2(GTe>W5N
+zuc^p31`x*It0p$wgPaw_yucT6<w9H0ohTUff!Ge<kKvgzJl=}hLSJ3vmw;~xd*O=a
+z3&7h?>sf;2*%E)YG@=VI$rN$^pTh;LZ=De29<VtWD*J}Fc4Ax{lc)gL3)oYR_|6Y<
+z3s`NCvozG6+s9`Dc{CWfxW@q9U*g2)Bu#|f>IIo0c+cpipgIa_LvBN7H<CL-%?upR
+zMrpa#3pz|`gPa!N*x(rx$Pe(kHLFEuEZp-nCe;W*&KdALODpmT+J^Tigd_jbbZ#%?
+zLX?oKE3oJG$|TLjeLMxz$-P8}xxG{1PV6ule?~%yjoy<c_bQn-_g1q+cjju;o{~Se
+zx7q~SH}^JxJ%aX#$4beQdWrdydTZO~_SVAlY{|{NGWpG-@efVH$2V`C)+6J9+MscX
+z`IAvwG<JA%FC_`Rw@<>yq(FT*`kaJbEyDqCg0Jrk+!qsDx@D2Qn1G35+OiSN_*^iD
+zEMP3W=i>7N{k7qfdkJVfBBBrCQL=~zg7>6exx@>-5Jv&O3u2a_vqXY=w-dT!Ky1>-
+zp|un6Kk)l5^6+~J)$`H)8l9<m^U?V;AL;OXw6F7fXo>TY4MBCRM4?PuvJgY|Tn6sl
+ztR!@ItP#q#qzI`<4~X1kh)oCyi77%&?$jO(a44|P@T@Tb{E94G{wdW{L~$duw-nZB
+z+-B1f@%-j}-MpziO020p2G!_=WDY|-0bCW_+l0uUkcVgR>C<~5j=)wIJ#!o<mbn9;
+zzdV3-b)a>@oo|tNT@<tiCA2PDi)bDAI@{)>^P^hmirdKfJqm<6+%6!!5n8h5_jt64
+zd?yUm*&<$;BVNF7U4SmRB7P9jIYmcx9*9=~IOZPekuAdId!i6SWg-pY{i#9@U^UU0
+z__NiCX*dpyiN++;Q-$E80nP<*HZpnX$c`inU2$B}v>t9AJimwTNr-RI2l^l30^Xut
+z2w2GgF@_Vcw5}{sP6^i+_zsofw;up23bB27Rv(^i=c4c12ym993Znqqgua8k0g+XQ
+z_dDGN@%0qp(M0%d9kdtdJTgb`vUEPO2~&G)Q5%R^z*)q^>j9V7fZsV}kevmrDcC(K
+z*zr6*@)J^oByK8hqhTKigsF&6DMBWkOQ;MyS7=EV!X8lCrXrps3%P9~d<^7Vzz%_I
+z5YU}n6Uhenp10Z-_beEAL>L8kJ;aLz=7)t4>sWx!42Wq0PK=JnG8^#U9{@fm5k}+R
+z!P=?SS@`$I(OC=_IcnQ@p(~mj*<ztBdI!wv$rhy7iS>y0$ga1I=%QBhg$gaHLecM|
+zBnx#xK3k^tcp%!~_c1I%ZVAvAoo7g9lf*L1#J-o=L+XHO_$ISzNM;vk5edPfpC%@>
+zBL4y19SHNvYk8Bz&*?%Qn<)NaPNMktap422?+@tqt5dV-Q%4fj!EeTv!EeFF{Id@K
+zZN&a{6j9wk_#Hpgj<f!sb%Vv9rPZC6=~pM7PggwVck_wY0KYukM)>FYNaEj7KL3OD
+zk;LnJM*8RaNaFc`uKw#IiP!fJI>mLchF0qTV10e+fS=Op{=rW%o$wo|)#801iho;L
+zQm5HxkNVf?{G_fguSt^Mjux*E>qE<r>LhzBBl#`rK0K4u_3zi0pRzyb*CysCRZ=J3
+zTiAC@ytks?p#9d*sLz;c{l+xyGp2^5t`A=%``))7QT#i%gnoPEiUlR-6=EU9g_$Xs
+z9R`0!#k)8)GZ*Uoatp9*sIW^;D&(hPCGhuEu-p=U0mcybOUg;boSa3UvvX7V*;q<$
+zP7Xf>eo(*A9*yyJK+K;3V>&oUpYZE^qB$IxQpUB#q!SjInUkKy#{wfcq5VlAI5_{u
+zb4%9uKbo6UoRsyWnHhBH^ExvAW16J$`DZi*dxs9@L<SG`fxpUwh5TrX2u$XGOoLSR
+zI{)Wmd}9+x&woImghzcxg)s~B`23WNA2A08mO?7dthBGa|2G_S{y(8JQd9;DOv94-
+zMMbE6VQw*MnUA=YSyYZ?7Geeb{Nl_4eyS~2$j?F@u%Zk;_MHObe{%reQ;Ez)qLB~*
+zc(sJSLeY2sb<vXS+y5VFz+kT8LOxcSS(JhA6gMlW9Ch?(z^Li?U(YG9|E2@~8LiT-
+zjPw6!od2;Z5Zs*qd*fs9m${OPGNHCVzg+F<_!wC@zc38`ns8=raUq7LDTLlwZW=C+
+zefpGUW@TaNnI(L@0_{Qp{vjnJH#3C~?Tg{BIU`nLnK@`TQlUN<%R`+}J0$NCX_oNx
+zXZrs?<>dD^IUq9~R$G{dD*6AICj)8=B(?voQ=<P_@V}(#zjR7C{6Ox0Wc&UpgZ~Ga
+z^na;<e)Dl$e`t66^XZ3eq;K~R?dX5T`~Qwj{lC>t{E$yS;p?yD+5e?1`{B9wpUIZA
+zGw}b~rT%!WKamgT|A04c|AAd}_+RL+boVj)|4HZem_F-{EG{U(UD|(~<D&XPNxewO
+zV7%m{lrjAegpjWuKAeGkksFZOmm#31@K@ckzK&s!#lo6!5=CR?U_O}zDTrYbs%$Y%
+zRHQ9FF1H{T3(iePG(ai02qr1u0|!&F!g54yHge+8MigfiWu{~#p?R}lN*KLRG(4&m
+zFA7a0=>l7mTa0_{NYaXs>yne3g{I+4GpS)Yd`!G0-?mUBbN|X$=Kn$7_to_Ow{u^j
+z?@sm(NRj)H(1)>@10CmWYGz?d0l$d<J*_{K?#N(RLkfO+Wd9#xF+Qsu>YOx&U+`^0
+z2}3OLm3~K>=*F3nRFG-~Omv17AU#JnO>qm<D~q32WQ!Fb%8GCrQ~2=buCcU&+#K{h
+z)Z$-@8i=+76$^`#?MicV)A$8ezf@HS4icx}-!=@|x-$RcwhU+2|F|uYKqAXf<YcMx
+z3P1cCbP#uBiR0li;=gw%{(E_>)vx1N?=!Zrmc}Z12X~}-uUg;kovdldw)s%T-j;NQ
+zy)l5{bE@@spSF3AeOPkA9MYS$oV}wJe9clu`@RsK^zHh~#&2WpG(TGHQ@^7I5&jLV
+z?f#}ubOZb>Dg*Z1?+oyA^ABv++7LKNpfT)n>DXaDUpj{^&>j}F;=q<5tG5G!pLdK8
+zK56<axJqky$e#<2hHTr-2)&%OI8<q;QW$;i*f0&v`(cwT<GB1kj&W;ET*J4?tqK2Q
+zihe}Lx`v48F<&AwP8LMoIB_>}>geH7ybb50teX6yZyM~6jtFAL6dSLPv6^Qd8@q2|
+z?A-}EaqaJ?$6eA@j+gJ66dxWd!-Jf_<v_yl7ssoH_q_QueEA=hBg`^CkBHwO80ocw
+zIO=?O{V17jatSw2PfZA4NK52f%udwHG)T%$Tb7h&Y?CZMYisiG;~pugdyb~qXN9MB
+z+`g4MSR<1!P<YMnI8v9U=%=2Z(Xb@_@mz<D&AEp%PN+m>hLqjSjM-2=`pZV;G5o5f
+zV^$itW_3<Eo8@|vpMCn~r|gcl**V^0>AAV`r*cbj)AFh}kn(pQUYyU}F|?ql?p8sx
+zT}7egc7r0!;6PDPN@DTw26BmN^Qw~56N5|7j(AZTr8~E5(Oy>hQ~&$rQxD7-y8|0K
+zZcpyLaktmctjM|UUAg1+(@I&{#Z?=rVFH&UYA?P9hAH3j0ub!Ju{+g{Jk^YFCt;o4
+z;DanX=B(#-G21s2Y~x+*?>2hc8LX?YKYz`O7&oQeUSqktoy%*P!LOd4A*wzJ9DMsN
+z)6PAA+Tfs9!%3=w^MfmYx3hbwtwE3PzE84rji$S2nA@3k&89EkR!SbCd5xZ1r)PKW
+zjIP7Z6d8)AO1#6QP9?hsmzy2*AI_k-m|Sxp)qS>|_(Gcz?~BQ>0-_n28Bc7FnKUs7
+z*&AfWSDj~!nsLjvd!(}C;t}q$0S5ye8;K`uO_z>$JgRa`_NGj`WBZP+wq5r>ILcQ=
+z%B>7>W**wIz;+frkNJ7|9XXR3YnY|4>umSucQJ=njiLT|R^RDTZKmzZ)e%l9lsD9|
+zUnV=<iVLyrz0l^Q!l;$sZ2ZP)P5EHk=zF%#okV4YV4Gy;QFm2sHSf)KuFaXFU~P2D
+z*{S7;jmnwN&hraQ6j?7FTuN4-vhi+8b-7Mmr#O4fY?pGvDw{*j$6cP-FqMMb-?^+=
+zQ*E<*tCj2YtNWB@ERA=qUJ+-LB0Jf&itMYr?e<RBNw4f}G;Hp=7Hv4KtnyI9ZPa|S
+zjiZsbo9nqq70tuhZX27gTC;D>b(@uPLnSQjh#TYSD(j0$&)j(YMAd||`tG}1O09oe
+z$8jHdu1EFl+iZ8EO}^I7J7&9=FBnbh={n#ZYM^etr0TAF<FO|+`N_&d0v_D5+Dl{(
+znG{r@#=93kL}$QCtBD?hA>n4P)OtTH8*;5R+sfGX_>kLyrRrCXJ{+=pgQL}!Gb$c7
+zd)}%ivK%~KYrM6bWEAN!B)44SdU}z^&7M7$Uk1$b&`Eu#vDSUNN5{Yl%c&igJuWnr
+zX-4k&+hf4hA(lJU)rZ!+d##yuZSc^M@7@ivlnWW^-&mxzY*FS=jTt)z&0aKqXh`I9
+zt^Kk~hF)EoKj`w+y+b>OW^2z?xjHn=-e%Cr4Nr%54ZEjpy^ZSW<kD?XZers3usB(#
+z;+3msXxm(icZ0c}R(o#hY&)OknR`0aqU?_f&!_59y2_jxo)x1=7GBz`Jm-!(rF%1E
+zuV+U2wt*WSob{ac)LU=jqfSo-#vkY!`O?#E^iI85MzUTHqcsQSh3a@|_uA+$?i%E^
+z$?%Z*`x`D^tCAM$$GiA@ts9$TKKo6ySJ@S{0n-Mgdg<ipnGaZ&?`7m!H^At(Dld0p
+zhgs>ZDPA6P{vIIr+ib5f4r9!=EM4L??pCtFaQ*dOiWGIT2QRmKHOXHv@M9eGnp&~b
+zH16UtFCTqRL&YoSyfPLIHy!5whgYn^T0<GqZ7<vG&nDKke|fFAqG_~d*L|=2M~h8L
+zRz2}jE2}c9fBVAgx-rY-_`26#6CU3+a&Ld<rK5NUyWslK>x)CE@g()nUiUXwVDX_}
+zysEvo8T&l?;-#;vhbbEBu|AmS5lY>HShFvE@p7}TWHqm;Brrd0WHD5}cm=iySziWs
+z5#kKhy?fVw^5PWuc)M=%BR*MF<h^Un2QQapE4+i8))7g9tKMrB-g!AN<k+k&s-)%n
+zT-Y6FUU_*LWw4E{i%5UPG_w`|e(qJ2cAWie{x#CY;J56Cv5&nv<t=^o$_^#hEsXVv
+zNWJGZPi~^mq|7B`g@7GC>8)K}J4W^RBz4G81VNgdTcd7y1*!OOf;C1{-mlE(9LT-m
+zRiM?viHbW*nHhhUgLR+r@-6(x5lm;uWF}ktYV1DZ)nyUq`^Wy-GBex8`)+u?&ntEC
+zR^PN+?`50|g}$U|TfH7nRrYgyG)gw7+}+Q5>Kd<wL(=^M9vzY$b+O6M^U)%&*+bj>
+zHr}+5v#NaL7uVY4^{G+UKWFz8xz}YJ{~3Qw^m@z8^KYtuBKP3%e1E0nabBA&kNFSu
+zh@jdhzVPo3%kc^tV;Dfcvz_`lFd)EnNut-=4+R1Hvh?I5YZeCB#zc5^T|X9ZrMp6Y
+zn#_xU?i?R4SBgR4cpsts$t%8rH4h!VtjFdC{xQWzVd(SbK>O2XUJu+41zy>;Qb9NN
+zVW6s-hSvsP&0!6v<rN!chYsWJA$qNv%O56tBunwe=V`<Ak3aRKIqw+8U2;y5?sa?E
+zJoi66P4s1hiW3=1r;pkNeO5c^sqGsbR7;$tbZ=%wP;uxEPwO4ag6ittD0Qqp88rCW
+z63+!$&x0oP#49f#>INsgY4BX1?it){u}^v1qSRpb)KbrdE2jh>^)*rn6SM~Z?VRMf
+z#qw&f5xZKYb?JxT_S|8f4v(>rP5NCb##FzM+bWKp$$yUynQ+!ewR_|5A+?$VJg2#D
+z3)wbeg=)a;Ya#cmNuFQYKZf`nmZi<xkA;Rs-5*Mx%n1#pWY7khXN3O!+qt0+ew!M4
+zW55a8kP{n2H5|4NC11J_`cd9m&2Ih6&=>CWhAxfL2|Ijdidx8Nx3G)rtA^@pj0p2d
+zd#LueWmVYg3CTk{lv~0YE(WO=x3`BaKjAy{rB8R*CbjkIwzDW)vtrAk)a?Vg?WRf^
+zMa%rS`z9+49iEuZy-3N@So3fqcbD8Fk09UG+_yVUY1m{R=O#Zr?ctJgkL%}ZqsbdY
+z4VUxY;8C-CQ22$3Q#9x5`G>#$*x>P-e_HtZ<@Ys%ea44ZnPqt#Qd%DVWLkjM&1Hwe
+zpKcrGF@f3{zMj2GYoq&@@I{*~J=pGs5ue&+v<J%#iMXXF>yfe~F5-<ss`e>rNd)mp
+z*N~W@O%YoR4rxF4Y>h~^KR9HH@|g&~*Ty=uHTNT8Z_XQ%rzRVDa(1Q8JU`P&k5|P*
+zDg!(t<3HWdk<sBrW>#>Am~SbLRI+l_J*GE3a%jHwklP{aBR}fS(v1r}7O8oeJj853
+zSETRh=eiEtK1PPFxaFRwrxQhFhw7al<`5O!v(4Q*ASf!Ne68LVHGWjy%m#O@RaH^G
+z`Lg<P)aEF|ttsx=PMf3TtdjLP_9vrud%L@zebE)QY4Lvj549hnR<mgC`)+GQkGQNm
+zfFx@h9o5?7cHpf~wB6Cd0bM(WM-QC7$1Q<X7|kv^J7D0fDbeG*e{-|kz9f3@pOyx3
+zExV$HtCHPT$DE7aO{_DJzt$7I{I-)@j`_#vQFm?`93P?{<28xurf6gtbE??c(DKyK
+z7;ME2R}G)Y81uuw8y*;+5wpi>z3YIc%9w@|_Y954%!sLSuXNp~yeh_Wyth%$*u62r
+zts$<zZ8;ZX_<F9<+HKu2F-r|y?Q7n|G!A%Sq@=4D8!P+R#kJfhcJ<3Z<JHR@VtK;7
+zE}`={u?^Krj4@tp>^1rn7q!1KWBCW(8f&{&#0I~Obr~4*TkP-+VVHwwORS^IK$pSK
+zHpk8hUWsXEb;Qa)dG36D^W|91{Et{}drxez;Q{B<^IpeJYmPAK9V!=Bd1SKl_O&{3
+zi+om_*mVwyGwh9W_UUwqTQ>ib$&<DIahqz5od<fx#+_UoVfyF1w7Bif_nlPQi{n^f
+zt4uev*2itP+Um45vnkGb%?DGhM@!<IohzJ9xwOXJSRZC~I`}}`!2=v8Rh!dsqvDsD
+zO}%(M?plYElbcU(+}|5so6#y?#wqz-W>Tw(@u$}Wn(GFu#P|BnXS#Rl#}5czV4mtV
+zDE?JP60<SQF<xut6Z0K0Uhy4mgP3PkgW{i7vj$$A9uwc`@z`<Ct)%!nYBL5_Kg)_2
+zx^8haI8z!wz^{AYq=MS`@a-jz`-KhhHw~B;+jZu|AKl{an5nZQK5kaM#pOF|<F7b;
+zW<1T?7Jq8vWs7Ym_s6R_wlj<#AC1q+FdsDN+PQf3opp>8Q?JEWwigZ}P&?!E4)`*T
+z1mBNm?mjd~i}yUfBT$ZUfAG8b^Py^%L(dX;E8>qkC^=DijWr3D5vi)YEl(ynD2&kN
+zZRT#UbTBaFO^^?CXkTu|E8hFwa_1{6-odq02US%%&!FAk>c}%E-iM3F=vU?q;oVD|
+zY2~5p&AU}Qf&SLtk7qDXXhjYR;t}?8=p(ebyia3nt-q{^;we>-=nrJ#d1tSbTI*Yn
+z<SjdTaBzcm67TBOL)M<BQhAy4D+b#IWbj7hDBHwM8^a@ia2>pVUJh^d{8*d#ynLSC
+z-Iw;(Dn&f<s3kV^q7q)@$X5HzrDePw+aB0lY97nuC5^Gqj;-LSEOxYYzFo<?_F|yD
+zy`6v;ZBStw$*Ja*sSE9vo7M2H+Z?tvIaR~!ZJTR%%Dt9%@3f-b;(}V<#m^CTqlV7p
+z)g4hIWbN6>yPH|dtF*ewtGO9Rm^$S%&%nHv*Z8N&@WAJb36o5HhgYqv;bq5X4BsHz
+zOK_{5I$ZI2HLrKU#^Ln??1}knE(||HuI61_^>TR2;9{a|v(AY1x2t$EW8FtwVeccJ
+z4jDP3t)`L}rBOZNT@;x#_vF$Mq{riUGYgN5xWgYt@>aPwq6izyn>SBk<nZF@q<Ok_
+zBef06cta+IjbztdBbDFJANk-;F)!3(=E(Hljmg`pcZ_^KrjWO4$F-4*=cbXd+wVu(
+zw&n2*-WZJ9zhnb>CedruqFdR#`cH|YnpeFf_dKW_70^DKxAnyGQN(paDEH?c9c7!7
+z&Z`}MZ`9d!wUkm7g@mB)6yA|7HVK#3oS^UnLK4<siM+^jISJj%X);s%8xsO7M(`+`
+zHz!<P5G%7!@lt}-%UIrq*p~_A(-+BHn5mV>of63#*x{VGs<uaFX;*CG!F!=R&fjH;
+zj67RenOAcY%T<T*I(zpdK8`Pxy>RMgV$Ej`?_$fx#7$m%WN)V#Cf(fb#d~JxnG|S3
+zlp`M<l{DGOou{54NSg84UrzV_;-udynLJu*Thhosev^B3PMGv;nmzB3Eit)j-4(fl
+zu_no_X_mY%yS$T6jy0gB-AhWoBxlN7Laj~K_D!L#)mxf8GJgQCYQUjnCxx|C9hI)+
+zh-I3*{O81!4=0{c#~(3C*|AWW$DQJx;#uz^f5s~*Wm=*v?{!ag$_3Xd`C}C=DYqVe
+zjvqp4OPSnzSU#lUPReSpH}P-(`kXSPQBlFw(<t@j@Tc*zlZK}5VMHh-9vYE)jMW?O
+z^>|$B&9lu4E!6p`1E1WEuhiU=T9|rA;R5Y?sz&P7_~uV<Qe*xesCedvHh=cgGx1|q
+zJMrVkWhrK-Me(<-IUIjZvyjjIxJ9vH>vVo$`QG@&>{h;N$vZ{Lp|kvJYFpyBJ3Qu(
+zx#y*{X}V(Cy@J*8k2<Z=+#)9^rJDw%ty{1t-Y_yPEo8@OC2CQ9+Q8pu#+#2{npUBv
+zp`1OTEp6nmDe<>TZ>P;mjaSZ%|Cq)*D~QKz^wTRgEmnT;$R*umKym!ZMbYVRp7$v4
+zVHKwDp^uK=aj`M|j*YF#o~VuKHmV8nZAVX~%a1HjIbwM~y<$gXe8*VXjKJ}`RCew&
+z%h+NO5I_G3E2DV%XO%44sEjKK9`WX;<1&)>a8wVPHD^3dqQ|>yZO`aFIz{#O*B3H~
+zcINTBk3GpabK<<}_DPDFy6rmgRc@A<Zw_hGXg4^S?na97{Lx97j$201#yzOa%;kKJ
+z3+BzsjGMERc4_yH%!7{4<5c7?Wx5yKqrLWjn#p+79XGi|ar8#Ey;}RsL8H%QUyYl$
+z)MxZ$YLObPC1G^SuH$h=)5eW%>DaB-o;hdqhSPiEUOH_ZeXQ_{+Lq^MM}J<kKJM*;
+z2cxg(`l`3P$c|aST@*(>WHM&qmMQ9|h729k*!FuIc}3iq*R1pE8$T6}`RiSE+%ezZ
+z$87D;(g>_vJ7)36{5Xf@N5-skAFeTOk8sSX<H>O*Z6C&LS<#|lvRyl?U{qvW@mz<j
+zMU=Z5`q{x*i}w4(Dbmxkd}3`heY<M1V(&V}b<{1$DqEPRS*y7-Yt=QgxQdw<vef?A
+zuDOZ)C~MwKjX14j+3are2hH`HuxuB7a$L?M_w2)FEUh@*=<KPPFJk$Qx!IGQ$7?kW
+zot(X>wlnsY^RjHJ$4M;@<Netc{PVG!Uti7EVXA67?SGa%Sp8t^kphLB$wpDyBXrDj
+z+9z#@eY<vOj`N3R?Iyd}9M2Q;W33nG<-9oYr}pkIlXEs-njAYcY*|jz6jPnnY5Q`_
+zSC_`p_Fl<(>XEJ!_s5f*rGEU_@m+Gcw}k6-X57MZT{lI<RvvN7wJ&+5!&(@T`>fL|
+z_FBrA+<hOJx@^7r+^e^3W6Sq1$Q@o(t~-{yJ@@qry;$#yXL37l?bkiYzMDJ3MK)G_
+z>F3;m&Llm}XWDt1O)p~3*bdJ7An?<3i}TO3+I>4Fx*#FXea{p<gK?#KtJj>2nOg9B
+z-p;?y>Mf32mA5E$M@*#M!MwmP>iWx{UCq;Zuq5WUrBCvX%E#)f_{ioPyHAV3E*j>O
+zDf9K)!kqFCN0r4q+#8(#$K%`j3$;`8)!kEKE+vf1*Ewc7VDg+9`PvUcV)pD`lRxkG
+zv;q8!ZTWwuy2gyZ@<+al|JniC$DZUDuQiR)UL{j-=<(wL)x`z{5BDg=gfkoqH0vA;
+zCj1##5HkC9^nlXD0-{{8f%2D<g4G_v=-A?E1&QUm4BlK{R-mx)MDzpOJq6So9}H}A
+z&KJ}?*b=>S;oX9BmR^Ppdp{QFznCAr;+T421HabrOS@%Z&*A#$*=s!uwHl8YX4FI#
+zK1<Gy&i5N#$XZP`+W1aT7;ri|dcgcyg@0`bGTLUnuJ9AVGrDYbTjBMV-;9zpuNE2-
+zEuwRB9u~f=zF;(O2cc-^Y31myM_NV7p_;}VHJhUADX*gTnX!uA$;BG`nMW7RJbEkY
+zj{4}L=^N)7kAGTK^y+0t6mw5g(OU0Y#>f^GDL-8swODU|kzu<L7QOL8(Zg-iqo@vd
+ziw@c*VOy8HFIwbR78ONMEzYQ4hTRJ`D|T5vDk^KDOYxIqJ=m>HLB)s9aH5=!CKOx0
+z8Dvs?vamR&!#b*Y-^Ah<YNJi&FPLBav7Qz+ZuF*NBi;2TOpA`<<La*?kDR+&TrdB`
+z#5(;!@yV>4k%^B!6@Tm*Y?_jwR-)F_7U|GtUNUM!zUgrl*OHCnS45fx1(j4MY&B&S
+zk1E;9nG$I*Ex%;Q$CswtX4IDqKA#gQGht2%zs}iAIel%3lVxP&F{k|{f4nR;W4t(5
+zayi%~GH5|pNd|YfnF{k&iIL}k$nxECrO#%)H=AUuUpnyP=Lq*{wxxbYhL}&i=~?=2
+zLRUnYPIxK%c7^#DR!ZrH+eab{<BCi73-_C!9Wk*qoV+GNEo^S-w9}u>yX@DMzI!<}
+z!t3L{(uO5o0|)LrTe^K~PQ>&CVQFJR^}w1}&r9ceg-1LuBbOD(whz2>U$bm`vtvYH
+zfJK?&Y@&tDOqVi)gIW=FX9CI?Dr}3em+@ttTi%2>P{))V%&E0-R;Vb`DY_mW{H~#F
+z>dr$Jr>-n4J4f0Z-nw{WS<XGupm#9`%M241gfIJWuFRY0Gicp3VVTC{%5YWX=ViBu
+zb%V~76U&cOj|%U)q*ku`;LxC;0jA}?eqQ0STt@ln-6Ts|0lR$lb>r~#nuzjCd2CB+
+zRdP9D2qFAMdO<lwwbl~zsx40%E#%H1&nS1D*>35(eM$N4^fs<j)aLR40?{g2*jC=)
+z*up&?f4*Efl4X_JcBj1ZjDYK``LsN-L15(;{ki;@Qvx@;PI;{U`U6&H7a5GL%<|;&
+zR@scz*z(Crb)oy%t@(!Bhl0Sd7K=QrABM$^t@8aCrmUPk)+TS9b=c10u`haWgl!D1
+zANz689&4*hGsX^#-yOD(vt(@kk+;_A%QlU*nmZ?K;M4tM`2j9AZw8$ntF^i~>{`f;
+zv8}DeHpde0jr}w}GVD;|>#??<x7r*Fp^SUOa0t6JNPXN^`U{($C&uG+HmQWYUurkb
+zD1dHD;|v*B@cv=wz>5Ln{5d(c&LJ`5jI~aL`fN`bCqHn#ZJ<K_IL9w5LVbg)#tnIJ
+z-`08D)NviVYD4wrG>_ZeG|2AB;uYh1yc0rOXKfib(u8l9SaxvSrg=j`-}|2)M`&7V
+zS3$Wx&ZR>q^zMe9ah3P(*fBXT#x?EzJA{Ai^SF&BhW4c{iWS%E&V{7U)Tzkw<k>sj
+zHmkr4)`i^Gq*pX~&aqE)^{A+-pAfPqAfV!t$z}WdzEKql`;$T*4Nk16yGI+`CYx1p
+z<A_HH|72+eX-3H4Yh&vwWEbm%=;;1l5n(iCu*uSS70Uu%1plqOvLbBS(ZSOyHdmZH
+zbUOIa>3tQKZ<FY%3dbv^E3XRv+woGxK6Nj8^RU|$s#Z0@A42X|2rb9a^*vu!jL;e$
+z{7U~zg`vq#`sBalD;qB|gRjiftPJ_^f_`<Vapj>zmEeXmR+T|J?HyhPGArfVdV^HA
+zdRG1&HQM1iHL$YkSz8b{D6-P{@(PEdu_G&8U(5|+&rYvg&+K&Avnaokd!!)fM$@>;
+z!V&|<;^Og@w=;u+<T<}rhR=;<=zM9ee0Rqz=;+F&m8J`4FtmoOuiQK6<1o^`?Un5{
+zXBgA04pw@2Ummut?s%oVKh?4L<b}$aw(EzT{dA-9>La#eo8e!Tx9-;s^S6FnNhz#!
+zOg4L6X<t5kn40{T%Dn449V2eaRV}%}7-l|?R`t^Og=4+1UR9Wi!mz?WO{#MIY?+Uf
+ztg9k4I|E-{WK``APGi>5hg2PUv@>wQSf8rRj25QH=Af$GbAAg<z8qQQ`1U$e>965c
+zTrGa!5MfHyfQ1@P508(jTFM_1Xt=1b%GV^s>1@Kds-u(C0>3ENRsB{!!D;>KDOK02
+zdIPQwo>6t_=s~B7Wpk_k_TL{cpS+~%S?^mXNABt>`@d!c_)OkZ)zRzVd~)NCsuhtL
+z0Y}^RR}DHk+S&Qw;i`h!Lj&~Jo~n9ZyUaPi=3>>R_38nxzSpbtjBYvSy}DCXGP~Db
+zXU5&C#5tNSwgVnlbw}>=-`Mzf)y5~mE(>40tD^NZ`oCro1b58FyX+Y!E6^Rr_wQY*
+zB)H(b-=$)Qx<I?m&A)tyt{`#HE0<eKjRfY6%Kj_HnG3RB*}7h2SqnzyclxEg7%Vv7
+zlIj}U=p?vpvE6Tj{t&?!s|Bv9(^-P{)=7TjUiu0K{C>&xg-?*cRCR>kF#%Vw|AK<s
+z`&H2b1NLCQDf@VW!Oy+jO7|xSP6d+u4z5iVggq{EORCQl1X*119W^XR@bSndw{0H_
+z1Uvs&<(oXeRG=~Lu3Lshg}`>ySl=THs|AHhhVJFW@q#0}gMDkmCkx(}N4j@Tn<iNN
+zz{q#zj_HDl9h2SXoth=M^6VMs<>|SCxAzXZx9nLc7=QW@XVJ_h0-Fb~+@J7P2u@Yb
+z<ou?*MnE`bGeod{z2FcfjdReYRS+#m8WOr`t6*}H3&%!dr+}(4XGm<y9)ZV9D(C#-
+z{et&3r-#fw-X?gn;JVM6KRX1}(?k#Iouh(l<JS6YIekK)@!Z*C)ymU?5A<<9_p;6j
+z-aQ-RQDA&gP_-|}$M3*p!Msx~9;tzU2&#+>d``Aq7hJBs;xX3zmOwA|5j(%=wqO!X
+zVd&;op<qnfKDO)iF2Ss^o<n7y{3U1#ZeSZcy(_qRpkQd(t$Tuv@*~*#J01w!{#-ef
+zRPjh~bD<5JZvRBkc;&{><)@ztoa8@vkBogTIJip1bNJa8f<J>!dM|W%DOefF_CyDm
+z;2D3e_p^Pk1s2zfJqbN;1XE)(yrbT|6&Sg$@qF~|o!~6y;(hGydqG~_Ezi3LKM1b2
+z%XkNl|0wuSqw4j<`IDf-{W9y1%bx^`v)EqbgwKL4Q<t&|u6!1F(u=*!UB3tpZOdcn
+zP5dI*eR`Ew_@OTXjUAq>Q}@3Jo_gQ#n)C_P|E|Omr;G_qI)nAxhe0^!n#wvnF_o}I
+zZ#FCL)NI23i^o`vDklh+Qr@wG!aoo$pSJeSYO*6PQy$@c@p1yu#A2Fvg4PV;VC@6m
+zuc8hUH~sm<yRhjsvA)8Xz4yE&>Gv05>`h9;Nn5<C+4la^Nas^p+4|K7NvB2$+0i?n
+zlg86&J_jC|kvp$>`M6>+<o4KHpQYiG$nqN&`P`}AL!Ni-jL*3ZkI3;iKKevmGolRI
+zV#5g`gj4P%@Hh(x)=>oAlQ;tdwo}e|?BpCt@1^V?)5956uP0-jr{Q~PVUWznKyP32
+zwn`c8cR9Z2k8YCTRW9%yaJ5rr)72BcM>;iR-%#H8Zo2O)t4%fc+xxgw_W2#I--*X-
+zWV0J8{r29!DVwdl)~}#bS?+4`RljqWz2v4fko>oH<ja*zvG@P7VVPX%2%i7!rYmyA
+zqzV49MRL@rip~D!TsP{w6Sw?tTa2LwJ(LSbf4hKcCu9V)96n2(xO!y3=&1zxp`1wp
+ztAZKwPFuGGxKLB&V_w|~__TkPe7%BP;I-^y@+)7^1J~=klV7@l7Z|_SS|MRbePCPM
+z2!%uQHw1P(ou;t$?A1V@>Vpb8m%jv>Dm+)Xy3TSKdzz`@)#&hHwenGlUoMmnJ61Jb
+z(HUDh?CGN&ihS0|VYegiDdsU=3@h5Ir{w)wFKDJ>kkWyv-a$qqDwNK>$OwA1e1p;m
+zo5rAbJ-3xYoOTAO7}Jy|({2Z8aJ`k^?xO@hEGtm1cee>Ho4ZU|V{&-#yv>)De_LG|
+z?9?u!a=Uq9u=R0gl}GU%!MvmCDvKZ93tqLiS*0sPCFJi_CsY<xJBDCW->dAbiwjZZ
+z+o&4ER)#Ed8lk%V{gRLa9~)Fh=Nt`T?b)wtvE@OCa?TUg3rAE!<#df{F>4s1D!amH
+zi$}zS%7#|cX5A?dJ%7EGX3AI?8alj_#)xVQO}VJ1w!ybM^qD7HO&}{9_D4&B+Kkzj
+zVISWtRlD$NSeO^*lG-5i?6CUrWc4bO-^14LbyRPE+!{9bZi@P?Nf*Ng%g$8a`{M7g
+zF#W^o{x(|No2D<-a~RIt9meJwdem5M2Q5m&Wqm2P`&FIBW}{~A`?Fg$iV}8l@6Yen
+z$j-UOojF27b7Ih2?w>Rt&5f^h!dL7n&^({(5`H0aspj<^G2!g43!2+c6^GwSA!<cz
+zoEctojjlC+)YfnfR-#t*tqTBVK$*YcCG&pQdN}A=cth_2t<x-(2-iVRv{VP#MvRO%
+z)LwccFyhb3VC{n8=@AQOj?>OrQy)>aaIJRj;Uy8N&DXUTuRjpsFrKQ@nshVbM2d^f
+z%I-H2s?0Q<Y=&m!-B&YpUWd>l9oBT{*f|GBUJ7}kLw=YZ+1icire)Pdt{WYu>$_)B
+z<f^Vp-QO?oj+_{@UYEJ|a^&C@H+0Q%o<`O_rRoJemXAuccF|ktY96&Kny)9v^^8i&
+zZ_*p<7#GE<Y}dQnl^?|^f2ucR)YK>r-%x+_isez3-a-1wyY@$2Rw~!moO3nG=J-ne
+zeD9}G>V=o}NAHx2&Qc}~c>2~j+Gx(;0WV}+qZMc)2c+H(i`FWeGQhbuJ=*Nt&H=pV
+zRnfXyJp<ZoW=CHOR5uvzup!z%+snX^bU1pLAj{y*!W+?t1#=B<QJzQ7%{gkY-&rnZ
+zQ_$ZA(;N+B?rUR)ULP1Sw&#Nlk4y`Q8BtnpsP=GV%t)n`hB_LBF<QT0G&~_QDJK2P
+zXTt#<3u0VH+87anHpgVIjx`#+@JP%<VVzOvp6fBQWm}C}mOPG$)VpOA5lM`d)1w;4
+zpVN$;EyFZktz{W|_jZD@lf{tOTg#^!zaWIhj)>i9d}T#qZ1C$Y<BOVwv5hq<*q<Te
+zV^!a|VUM_TV%Lx0V=oNX#D=VI#O`j}6ML<9FSbwXbSy))7aPs`GnQqlZqmbi5_=CD
+zYGU^H=U7$63=_R^s&Vs$GfeiKHjc|*vfqSqZ*W{m$UT$0r@i84{H1OhH!du0b=pwV
+z@V`gJwOmR!J;uz58)Y-YwAHIJ?qv2pQ;KFo-0^vLO?Pje7w5T!W_DC}O`PU7cQdoV
+zopJUpsb)vmN8$=geluGsb1Ckm^DeXf(}i(5ot<Wc-p6r1#fs(`G9Tg?e>2S=Kaz_-
+z%^PJtaiM1Xn{^Y-?R8Az=iY5KzY%X2KTqL?c|G4P{*DfLpt-wme3**uz^#99<1ajp
+z8ffh~B0hLW<-pqP^!QcjD+g}l7sMYYo*TH!qB4F?{hNVPS|`T8e`;)DLY@(S-3MLX
+zj26V}SLazwBCU*HxxCpTc+;l%<jrjs`^<O8yR5utaV7asyiy%)(C?Y2;*a~g4(f5e
+z93SyAVbG=Xx8j>7O&k>N&=X%k*)(Vb?{WN<^s9rO1igx1wdK<wvh1h$(|?&;&YDEw
+z4gMTtx#W@}Z^!2XORQI&H|*|QOIn8>@8Y&L%dB*a=Q6t2a`0sfUXrYeRjj-n&t)>x
+z>b9&SZ`li;)uGd_yaslS)n}e3?`GL5tH#Yfys}wmtcuPD@PeEFwpzI}gy&VGXFV`I
+zg6GclvVL?shBr`#Z~fkAIPbyYDb_)Q5_tJotM#96l6lJ}T(RERn8wSz_}+T&^Gx1)
+zGG;>_kj;zM_qC~4%HxG-kG2_dw18Ln<~N%`0mZzt`?uQo%_!yBWL~prUS7_tc=ypp
+zUoeihHpj&Fv`Hne<+!iy`i3f=pWJBMy$1!niPpc_zTQ*K3ubJw9a&Yw6Bu2!eJ)?i
+zlYjcowsmAJ@5(YmJHSSr@$k0miwWvR=l_IjUj&<H+Yz@c_$-*S^fgg+;77soH3vyc
+z^WO>{teHeEs{LC~x+I)3J@&C+#BcgC)aN~dH96ffk3#<x<g(VwM&@4<93U3UMa3N#
+ztZE%fRiNw>xChC~&nns|n0)T6yw=*qf)zvND6}sBU9fmsf?`8zm0)tmAf?Oq#|TPp
+zK2_Suj1!bx+Nqr4>myjSMxdf%U?=!8++X#{E-k@^dnz;!gHKiaL$1=C{kp5XCofdf
+zcR5}aIyY6__UXE+cjIg{w&eU)6*u^W#>?%wRf5gCG(C@mRZSoWwC*ghud37c)wUX{
+zR5k6Bf==GbdzJfEo!3#m-cf0(Gh3H;Wntxmz~Oq^=a*Ct@Wk{5wxN|*pZ}#lV3K*I
+zQ_7kF&o;iRh-}O@$Xs%!BBa#8@OeT@g_rg#!*>tzEBwanGJ3&gSJV`ZGmgwqt5BwU
+zVl#)|8K<;>VB%o7e%yi`hfG#)C><xPtT!F2%pUjlsjr#sP{nanMLBcdp_j%wo;haD
+zRhc(-A#>8eYpn@mv%CT<atE4^J@!y;(5kH7@=Gqq25C)PQ@-0|f@M_k=<=njI98us
+ztjl*DBUx`bcdyK%y3JZ`=*lvkbCos+tCP!iZ*jNf&o?Y{vwCB@cG@4M$LL$_JmVTm
+zXB^A1Kl{PI^z=ik!7AmSOIFSQYw))7TT5cDETWf?GfGtE#5t&`4=ADBQDd+_oi5H@
+zcam}PNM-S)_qC2$S$4$}Pr5UoKEGMCTJHtZAa-)mz`LuR_AhWM8e*T|ysSf5X#Gsn
+zWzp#=g>>taE_J&c3xB&&<!U+UX2HZS47YTT+JaGY?z$OV9aIq8GS}TA=5+oZ-QXb^
+z`*ZWpeEu}#h?08#4eln7fxcVwY?Tv-=BG#IDKluEbBbQ%p4orUvp%~qch|-oFWX4F
+zTobY(tIpy?PTcO3EWy2$oXzJ-y$$Al%C6y<v!gs_XB%msXAe4Wm)*%8=hGZ>ILqwB
+zK+c-;@mZ`@=Qzn;PsTLeEb~3HtY%DQs)^sL&l+P!uuk~h4_`65DLc=9_d=)96CP*>
+zjO{+0Id}WM0JeE#rsJ8UK&vES#{R*w!-D2#Wh}k9X4sKSZ_-1~1qba^tWCF*e;UN$
+zD5h_o*cd#$swpif&>`f=Uj4M3;0qy&pIZ38|DG56yN?CmLQOSH(6}~r-MRH)$~|_e
+zb58_vv)QdF*`Ip2m)AI?tjMehA7`*7`H+%9#KQRw$$mZCBT6h=leRw(jr2ckmo$go
+z8_CUEn^@RV6?N6lBJr}9R<!ZwmIOcLb<ss#`U!DztQg~4O{3=8UXICmq&RBfxb)b~
+znsp=JzIYew8uM-hYx>l<xGgy&RH6;y)2+LQfAUx#zyDy&@OAz}c-sq4@Lr*NfXVAG
+zf_CKp+phW|phtcn_{e_|kZ&Xq`39c_pA!xfn}i<)U4L1U&PIO_<Yi1F=~lcGWIcFJ
+z%8Ps>m_0g%eEsH2!Ipb_$dOtv1l6g=l+G_t1Ra0YQO3`IDDaHBNAbSbE7*K2SVsG9
+zx8RP;W*O?NJA$dpwPf{P-4K*0kChFUy(&m9xGlTv_<4caCAOTI$0>pD;8k+x5|0QD
+zO;Dt+bv`KYzn)9owSSjjuEk~Q$5)#LWjU_$6?fJmd$T~^W9%})y+;HE*3tQb&!&8Z
+zhK?q|+K3Yhg9@e!HjT4W)Vx?LIJa=RBCoq#aB9~p#m_791R1B}m1OkO1^jFKm5RMa
+z3MSq%QI6J*6#RZ|yz<&b0Rq<P`^pv9h6;x73{knz!4NE;yIEyZ;vm7T0xeaeO#=kS
+z*yXANH>nCN<o{GXl}HxsJ;I{t9)4XFRJNR^dHsIXY>cXQbn&gK!~<j0Ty)P>jSfGj
+zmd9?dD!<N9FEiR&6%sRBJ#PK-s<p@7sp~(QRTXJBQsd~K6RH#@wrQl*lvd5SY^F*6
+zBfV;))<n%!w_~e}hdt07-t1qsHa|qmn&MKW-q5OLY-&-ZJ6A)S{X(-!&|IS3Qbev&
+znsQy6z2<pkb+(5Nv++*lV)kO48mlvvw(=xhX7QfN2W_dk@rA1@=Vu<%{b)9`l0vrD
+zvz%C6+1t>dcYi@vrJUSTy%2s}rDcA&{wSeOrShq*`Zg+qE6X*t2ONB&S4j^k8(>*W
+zseD~@V?g2YClw7-Jq$LsU#r;FxX7R<`%uNudV-<lnROL^@{<kg?#!$h<#gCkW<_O1
+z?Tdj%`wY`6low7k+8G#H(ZRfLM6q(N$k;v1c<Wxnii6hcjV}^qDyB_R#_~Qq95?G?
+z4z_6Z#c>O$=dm&JyT|dZ9Zc>TE*`htWrm6I-THB1^uJ98C66BWRwK$(Wk%SzqONVG
+zJ;ls%ljdug?Ninp_r|ltY<c{ru@g^UHQN~9IrhDei}@qvBV%<|%rVa`Sv_{?(>LY;
+zO;g7vn8gj8lA1GCowaMA{{!yW8ed(DMsvrpd5&ckWg1#zSIA$pP}}*sy!)8Tpj_2!
+z<<GO{3|elmyL`rn*Mkn<o?AXGFUC?BJ+^$s>Ft&(wY>5rs#;b_DemQdZbep)-szRc
+z1zxi1@O@Xd$cth9!S7nxtpU@mSAW`3cJ0rn)^{>zmBoz@wb?qgu*^h#gUyhX@Ur)H
+zinddq*_W-nk!icjQK{^S)^XeGw)abCJ6YHfZyhO3b*r}v@LpPKWYT5VF`}w;>LV}v
+z$@aX`y!i|5H|=mLon`mIKKK=_^uW@%!KDu#mTY;yeX#%Rqa|)m8uW{ATS{~y^5_og
+z<4Ux`&(O=eqDtO6SUVifv@e<Xa)N{9YPpih&D{?B7Yd7y8nPG*hV3pU)h}TDxp8{2
+z+^M&WxhFG==f8+@>|N+xT>rk+QD~`GJhe-SxoFI@qLQ^4O!u^7MamI}nP+qt73p3#
+zcFM0SDjMlE&dF=#u%eaqSDm;uSkbQ44$f_wuM0=4Yj9qjc&c!CL$9+bzol?o5Zfit
+zw778my#+3=&4Gp9DQ{d9ju{q~?hSXnzVUg%(`V~k+ry3&6q04#{#?^saN<RRTfqJ?
+z1^W){cEhH47O1CdxL48C3T8jda<Arg=c@)Eb@v{&JwITQ@sQh}CgjVtlnp5w6PK^s
+zbYX~blT|)D$=c&%(fd5ELY;@D+NnJG-)?%erO(fEd*nE@yKGF}YV(Gn8#qJqj9va3
+z>TyaTFVoD!bEDFYT<-lQPZRkyxeF#e^xWE3nyW|j@v3w5%WaI9=hd2|nR~M0xmRpZ
+zSI$g90Bi2EO*uPwi&;(Kl{p`jU$fG3hUE;N8|+Q@*U8cUxYS$iR(JMf=Xc&#cCFdI
+z0b%TB_loQR4lCGIlz{BZ&)%~?Owq{pn8@`ReD-#h(aRM+L(Z<r@^ks%<2AJ?tBT9z
+zjFj=pYVuma+2J9d#ihLGjCQy*rg~AR@BHosW1cB5^BohJHfBu38{ZGrgU1{g6Xchb
+z^>*~O_{Dx*TJ59t4gU74teiZ0-xfdrq-Eiw(+%hOw@%a>eRud{{|4*MOll4*K(AqS
+z=A6i;fU@<unaN6b1I|u$&U9{e4IFCyDdW!TDS`JVc4Syv{u%gs`Q(hdHiL&vs0qus
+zO{^Jqz)&lrYt6-B9pyLD515$;?VPnZot0Z0)Rv!`?%Z%Rh@@hbo-<Y_c**F;X*=CA
+zf;%Q|PW$u3uHXiKaayaje26K<E$#F0_>eUzANjLKt_kt4KgjnR{4T^at(O1i`GC*_
+zd0)O2yE$}VjvW6(ZEtAv%oC|tlXIA`Vrpt;!T2!KK_RKjvCCl-np9GkEHvdh96FaW
+z_<kOD*w)4rWAZ`nyR`5W)<dQ6)IZfyl9%wpw`yNZjvlx=TuEa_@`I9B;msGrlb_9E
+zM^r_tCA-%C9?>)ZeA0{|w<6xG_&w=-yJh5!!qB8cn#GYjWt5ZLnC+1}ho4H6!IYzj
+zC6g21{Sg;+Fv>si?(pSNdT%L-3)Vf2a!ovx@Z_j_wBIyA!iEjwqsIt564oZ1kG|mi
+zZq)8u`Y}tlZXdPQoF60mI)4<`WmAmRXS-2Vn(ty9Pv0LYyN?|kmbhZ%9=nFvReKUg
+zW@lcB<=-4I@_CL?-1b9PM-1>xk2{z*eZ>B&o8nq~f<~-yeH*vMM0UjX6juB*^S0qz
+zVkgDVep)`fSo3`R*&4^;7v}2lj@*32o7X#vx8l<Z9^io?KKO(mM1XkV<u#QAh##(g
+zyomtu#6*WK0>l?z7ikh9-k7+{j|lO{xgW}i5RaVWxsC|&$*7t?i4d<m+M!B<_~ktr
+zHVNXHt^P$Mh;QmlUP*#@r}oKfB#3`5S5PEFJaq4{p=5}UhEK^QL%cNc#1b;ZPw&WG
+zCPO^+n6E4a;;XbeR|>>iw;mi#f%xmH4+|&|kL__jM}hb(Kc6TA@mg%1qYT7vmH*<)
+zKs?vNpjiguyGfBJWgy<WYw|}Ki2s@%w3mf=aP!}ZvJfBE7}O*S@!~1*M`R&>{Cdh8
+zS%@cx?zNJG_;SO8;c^gfUZwk+9K@fSecR+99vz$iLJs27f6h0jLcAI~5<`Xf^?=8d
+zs1VOSqOq3>@ojCl$5e=S%Z@abhxqsJf^d0=hp%d>lZW_tK-+eCh?kGP-763AbIJ!j
+z1&F89w1X8OzCM0%l>)@uNBFlYK>U5$$Swtl$Ey`+DnfkzPQ9NZ#Ot5UDpQ2`{g4%F
+z6(OF#cgrnBi0`KzP*H+-zteG+62$+p^94$f55TT2SAzV2-HoeCkT3AMMOB9ULFg@a
+zWymK)-pEph{DR-rMaqzGFg|}?8S)Q*93!bfJ|b;DQw8!99j$39kgvGEq*(>>7iSw!
+zsz5$tOyx%v$ZzaQw^xOH$EL7ERmgw%In7Xod`OAzVO7YFxW0R(3i*=yKL*hte-g1Z
+zo(B1p`3+NPkY9;O*-wLfOQp+G8suN(<W1BdAM^N+2sOyh3|d~V2Kkx|**nxAe^bW1
+zrv~|)>bH98kl#75J4hY!JyvCv>X850<G4v3@<F2?3DqG#L|>||0r?`CXpRQtkGd!&
+z8jw#qxOtTZ<d>R;U)O+qQyfWA6Y@_oD?KzJA2ri2M-%c>AG;T8LcYqm>VhWZuiUlB
+zT9D5ou3>6Heyi3kO$+i}JCDxMg8bJU?g=f(hYk4Sy%yxhhVX2)Az$|F`bcfapD|*7
+z*M@xByR&WDkYDrUywHYx+q>;%I*@-eHILSTeB9RGCg?zZZrQ7yI*_k>5O-e(@^>}6
+z^mQShm!ui23;Dg;tV&(T_uXvUs0;bObTy$a<O2;xsp&y}@b8suJ;)c{eORam`NM~{
+zEA$|r_%ZXU9^@C*mdWWuzR~QOt3Ko(t>j1RLq5{bdA>g6Ctr^`tq=Li4RxRNA%E$<
+z+<pM$Gv~A=41oOR-fN8mAm6#@QTqVMf4YBsF#z(R6XeVdAU|4xE+~*M)li#Y0QplN
+z)tv^APnDIwX8`%tsL#5FkZ-kk8fXal*TS1)4Iv-P>{w?A`Pt-^w+ta)`>I~q2=cc*
+zqdbiupKHs^HG=$ZJEg@4^1TbspErX1@2)vSW5@?9@)*XDAO2k@#TfF%9_O2kA%Cn;
+zf7lrE$uAhMj3K}L=+;0C^3Bg{Vlc=*zcZPLK|cEPzMUB4r(Z|h!ysRMt6SFu^4F_!
+z15F^G9rn811oGSGO4ph|zT5ES4HL+JGsY;ILOz`O=MYoKkIxRwGKGBkmDUBOkU!tA
+ze#R8?=>fT)Od-FXebmkj^6eJ7qs$=xK05U`Gswp~t~+1``T4R(Ps|`+?`Uak4*B~L
+zqr%J~pa1ALfjQ*&Z|vS=4*7oU&K+~e|L^>)IuP&xvvpYm0Uxl_Hg6!{1=NPL3<UhZ
+zVxRK^0Z$O?N3Z~Vfuj%I0`La5?uizFKX9{Yv;aIpw04^X;1fzdJhcG4!t5Kyg8;v<
+zackHhz%y*0AQ%MrhLw?<1_9ooRR7K(z(1JXRIvm+#FAN_I6mS*V2&l=CEmVSh~p>P
+z7oV{NJO#`96OOOQzGZ6#cnenk2rIx}Z22<P3h)^FChoNYd`7JNLo2{*jH}nT2K)y0
+zF3=kA9IW(mYruD0I=k8$@E#WjU$X}Mhw~IU8^D9S`P113@F6NTX*PftDa@Z`1Naea
+z^I;pnlPEv<+XnC@js|A7fH#@qA7Kml6Q!&gTfn1ip4@5+_>}yXJGOvV@oQDF1N@5R
+z?xA*oXQA!QvIBg}>+SRH0Pk{T%}G1Jzbu>m&JOS}yb4Quz{mW}i?s*5OgdwNJ>X|H
+zlD69eo~Hd&w>{u%=1x-|40s#+0Pn$ozZv@>cQD{_idQWf4EP+q;4^~(uQT%ghrxi~
+zaTi$A0nf8eIi3#qo|Q8v(gE*dp}B(&_#e}TzvzGmn)OlL0q{X3d~XN93mrI`>j3zn
+zbZn6W;E6H|PCEd;X#c+V4uCfr@x_t>_#-d(SO(ycMrDs@06uAJ^Hv7nm7Mo=G628S
+z`G=|_;F;Dv9O?-8rr+O;aRj{6_z!a(0sl1q%`r#7Lrs48$`SBUQ~oex0$!?SZ#Wb1
+zQ)zPqOu$ny#%y2$zUq$iO(x*2(%w^@0DpC0yR#GEvAQx+odBP8LSu##;I(pg9CQNw
+z)(P%oC%|)E>e6=xeAk4m0B68^U4LBc4EV33Y0I1e59asBd1t_fMR<L72E17JA{!UL
+zkG*&m=K^@LQqBYyz?WrD+3Es#v(v|fE`UFq_EFgt@Mvo+hqwYhO)ogZ74T|T(`LB>
+ze(ieMAy>e&8Pq;?1$^6_S_3!0yZMX_bOZdGUS^3K;NdjFmbn2w&f5088{p+)2%p>l
+zKR5l9l{?_+E>DYb2Yj85f1Nwv?V{goatHj~ghjX90gt!LLw*S0^HyAN8UlE|2_ut-
+z0DjL?_}dV`^Bs%dI|T53`X_sb0N#)8py>hlKl1M^55NOX>CW;1d|;dXTo1qtF3LON
+z0r)|KHP1Z&Pv~^ba46slJ3j>u1-zl2e#ub4AO2yxbSU5vHJ#561$^Rhr}skvulU5q
+z!V~a|0^JBtz%v$psPqJUW5?w+o`828v;2xD;2)Dl6TJWr*<xYm1^7sl>v3Lym;AG)
+z-V5-PXR%f<z*9cje$xx^l?-n=7T_)C9AdBlf2r+0iUoMg)vG460H5inxSa)f%?GJM
+z7T`A<wkdi8o^#N9XK%oFZgEQX2E3<L`ZRCAf7buD%Ny{Z`_^@P13vWB0TnjjMb{p4
+zV*`FP@@Og>@T3R!{LTh^>D}df*nl_fsPAC|{*=q3`2Zeu{J<eTfKMHMm+u33)iVnk
+zeE`3DIbg33;8`;s^!Nb2wZ4YN0lce;$`B6VU)>t{9KgdKmTTkyK6Zc69uDAT4gUCx
+z1NhmS_Nu;sr+qoj%@^>si3d`A0dK4KdYUibZ*|Rf`2rp{#<$BC@VRG4DER?iw=C1y
+z5AeI8V-o!U&pRx6iXY&6`JvnV0Pj0@@NGZ9|K5?I`U4)=;evxd;DaYkAMOu$;oE-W
+z{Q*C0`+TE6;EA&vulWPMc&<4q0Px1^HrNCJ{&>DkbO7LyQx{bQ06zJP%<2HZEAx{t
+z1OR?{`quXWfM*`}&MXk{%|^_SK)^c}rj!H%{<&!4;y}Pd4`?|a2>9rv4bKAsFYUES
+ze;DAWTUYoD13dMH#;jq0ucqhC8U}c4N6vv^fWO|P)H@9D*b7gn1_3_%-B{Nkz-#Zt
+zl7axg{pX&^L4fCu3)~U}_-@P7H-Z4~?dwAh2K@J$jW)r62M<+=3I=?*U2;V*;KjYy
+zE)NF$c>Uee!GI@!qWvlu@a1EN7={4e+%(EJ1n}o~60<`9kG?)>RtVtJYh(6@0A8Kv
+z)e{2vb-ICaDB#&YK4OLfzJ2%R5ut#0PaItz3i$Vj+Ur9B4<EhrQYhf#X9s-<1-$&)
+zOQvCfpPw8yEDZ4U_6PIB0AJr^IyVgP_M6Mw!T^6?cepnU@c1OMDi`qiR!+`b!0SKf
+zjpPD;KdPvn3wZvJnsr>j_g|^G$OXLr-Qss#!2gdMiG{=S01dAG;qZKbmRwFaJTE{y
+zF*6*VA1JQc8xGGCum*L7!}A5BJE#%xyup)*!4dHM!I3M`5%4_1gP@8Ccs?O!`_c$_
+zUV);1A_AUYc#`xq0-k43S)mmP&o_*`IV2LEcld*n90|`q6q`(ngy$g~95zP6^AWPl
+z%aQo=5?1dc;rWS9bu0>=r?~mVHwvDw_+$T=D0trDtYCT+Jb$r=xibo$$C!QVRunv+
+zF`|?d4bN-H$XG_h^BdE~heX5k9FN}?M8oqPSVD6&Jnvz=YkxF6|8bYx9SzTe<glqR
+z@O;RYLc17vUS!>zh!}W&Bx+-63_MS=dgp=|c)n!G*7g{9-o$O`-57ZOB(qL27M@43
+zkEO@L^C{Ja(XsHn%J8e@vGDxLu9`)$@I1>5<BnK(zU8k?y|M7T%PNLa96bMWbrn4h
+zo`=a&jgEuoW0Et=<KTIjt=kvI!Sgf2U$)1=^E43y@5aINHBA8u@$kHj-YENcc>d-N
+zKO!EU$GM$Q5)aSks0YuBhv#*QtPjM)^E+SOcgDl>JRA4R@ZkBLaRpZR^FE1sAv}2g
+zCvHm~51t2tRG<lZB|}P(Mxv5+Wi(}#<P7B174?<1RgE<CbPNd;1r;@|0mcL(Mxv4F
+z6snA+tgf7^yt#s=B2(E`#X!|V%~XS-Wv#8R<F02hz}e8=*wf5mpw%EZ8>hiTU4{^p
+z)QwE+9K8rc76~IKQfM+<S-M=Fe1L+bVuq5ga-52*YMB~G-CQG8D@vQGQ=}KHZ#y8%
+zaD<VEafJ!nEO}sr1!GWw)i9gUc07Cc!DAi#9Mha)TuR(RhvW<$<yGaA<QwjvACwsq
+zA66d8k1Zaaolu!xm^+R@)if}*cJ}lRj2@XXrc^*k2=Ylt7#5L0kYJ(uzXL`h-mtb8
+zurgiC>i&kD`LxOTw;*@w*m2;Zq#oXrE$<wbyi3~EUJ76&o_B8-kJl#YhyPX|dVl+J
+zsi~y>M#mE;t890kfq5kLlJWNXCanjo232w7pAvdt+#&njS4Et5c9KRvV4T9W_q+qF
+z6<g!hN5CANcr*XCWId94z`|U3H|DYAUD6IP8n2%&{Yx4j07G$n>E%wq^03K;&mgBg
+z$4=&oq+T)}<l3#jOgIbgJM_~20PM>Ye%=GXK$N`GKOv2ul7138U><qW!*&V3B=f^M
+zcKsFF24%x}za4{d&py+=BOiO*!)>2No3woa`XVaZ4*?cImL|MDbJZ4$*ZcQ(NcbzE
+zcOBJFAI6o;BU$I{^Zv?tUd^Ya?eAQNF>aFfd%b6#A3b>23z$bTzhr&UZ+7><Is_GK
+zttIrpxLI)_*MU#c<U~T3gpY4lyL7-l--%wWCgBg%%YUHm0jyht{vE1>pSlVIj|Rz%
+z+5#9XY4TRogT0aL7x0Diz;QKTR!r8$K9TG%&@0q^yaKQkl66S-DI$073f}``21}FM
+zn!4yK5_uy<Z*Eh0e{Ai&S2x@w>yz-?ywt9BW3A`V^s_UMO5_>#^;B@k&d+N@y`;%M
+zU=)`;$o>pi#=PgwUjUOB{`c}v5`B==1D5dS&S4)U?~-<a0sPJA#an551Q@{4S=Mg>
+ztLPA+@ewe0Y8rtrCH0c=04sOO^Zj$c?A?B)@(QqtpMq-N1IF!zf9q3e`Y7oqp#v~w
+z2Mp~WO7u-KKVZSmjeT<uFmVg*o;(5U;as_tH-O<<aOL=2X?hJ9wyb539s<^I73az;
+zz)UTlG@(nPpAvcj>tsH>NGO>{vQEG#@r|=@OS2Dv5!*L`b{DXOk2f870hpj|fweaz
+z^GntTSe}iFE!P0kl|J3A8?b}Qan8>HgL9(f)KzJAMnac_kAQjEb|&PKME@oH0IW>o
+z(-jv0GZi=Y(4T+}Y~O491TZ>o7AohZ*(<;}rM((>6R?0opRRiZm?UkI+8K$xknj)M
+z9c*2HO0o{gJ^=>n@C4pTX?71VM3Y7{t^(H2taj^tz?^L@eR52)J_)~pF9$NO9EEkn
+zOuu~zuzlxZJnjL;PS@f55oz{QvTlhSz&swyNQWi%NU}e$jzLe{JAj^h-ILG3xK~`_
+zdw@?lp_2|tv%|37?7dUZ09Ma($K!6;=P6z(?GpPX*-wxoMd#;j5<W@f4CK^Mc~+Y=
+zdk*`>efanU@MXhYvrf=6rz=Kn68=f{AN1JkDWwg{tE#xi0ekmc_UN63+nu~F4IxTB
+z7bJX@$nl#_Uw66D9&Hl)D3O<7r%f(KF5}vOUn6H%9)W#z<?H?V+*!tHhw^!;=L_uL
+zjBA010ZVsQ>D0}SpT-VW<Lzyi*i(soWo=qu>rfSbNU{$SJ(+oTqtzPfr$f@tDUfgI
+z2XeV6)a!cFht*~t!<!EG-5-$0gl97_pd0jUmF{otfQ^d}Azh<2=Nsx8RUDOe-bwaN
+zqK9q6)pQu^wjGz)Yl-|)H(u6&eFA#~d;-0?`F`FNit%*X$;WP|q@9~!A6KT@wgJ|y
+zj+%dY$=!GIyV9s<CH7q+?=2Hn%Ys}=_F1Cm-hV`q*$xI5q@BOXA2K{8?PE$EE*`X8
+z_Yvli?7u`m63b)X!8)8GjfP0*fpHV`WM2cHq@CjuxsceAkHVa%u+PVqK5&xo2k3qq
+zZu1D_=+Z$$ri7oJ0=aXn<xlQ`oJ#Wt%q_C$lKld{JWKzr3-rvLILW@R{w-0>z5{wJ
+zkt2zn%BIBL0y`niui$LoY$=g9(=wCOS$g4D!OltKOQNqcxha>xjt*VA!CWHGu&)%-
+z`14?=rTHfkxs%vI)f4Ye!Z~xNr_xBGUm!QzPI8aKIksj{s)0lwYx#92<c;<mfpb!t
+zpHq3uOjn}sAeSk_PPV~0ANS^ymc%|l{hjLt2jE!+iJVI8Y}z2kK6u7Jn!mJ)Q?4qp
+zS99*uk8Rg{yAv?|68V+bkNY-+9e~C6=4vWR>>=n?=~I(!fT5S>cS+=0V#fz7Y;Oh3
+z`mKj~6p4KX{xwY>v<a~0N0+#gB=%f)sNIoK19xlyjJP!a&3)9dPm=Qj?82iAt95|M
+zHrM?9gXDaH{WSlevKFw^5<QTd6N#hL*8m1unjd&@)5DjN^KP`wxQ>qx3s(W=SfU>i
+zduFln;!3~@$M2o+Omd!rUE9Xxt^|y)G=EZ}H<EKm(`3yGz|^j$k{(FTcaZnH)%7a?
+z3tMM)t5@O=>{2m2q~I%9v3Al~J86Dt?6vvb5`P2i@|xEdR~T2nrJLy2c1rvc(7yr4
+zY*sdLiWm|-lbmx`+n24pJ@K}qH2=0^WW-I0zqI?bW_xe_vsG2|Dx4+yC$X=mt{+|<
+zU$e<&->}d>B>otjD?<u)uF2Fs=PJ!lmguGA9Nn(|dfmN47u}D3F1;Y}55YbqMS5?@
+z8MI@_t?NzaB>tq#<&?HTfonF-zFhAi&EK|Tb)Ay<t8gx^jXAS9;Ca_jw~<;WCH^hg
+z%YxWRTjP84JtcZ9Ij2wF8M)ox@u8<Qzx~wu&chOa8`D>8YkCpA`-9B_FNuCj?0t<v
+z>0aLaOJ0j8bJ`{TJe=$K%B}l_JujvD|I+*-Y3GGBJ(4!QG{0S%KP=79lt!mCzet+D
+zA?+NOwq9xHjx>8N%}z?=n>4+arZ3XuP#XWG-Q%R)*QDLcr0t`$dzQ5Ol(c)3G<lGA
+z50ZA@k#?_<CRft#DbnsE((WD7<Wt%`LfU;n+Py%UoJ;fbrTO#H{B~*jBFzt%=5I^$
+ztEK6kG(TCIKP=7fm8QSa{8(xJsx-e;njMhlXG-%YrTL9g?THjWP@2Cd&99SYm!$b=
+z()=-LewQ@+Ce4qM<}XR}i=^2}X?~70e@2?$BF)}P^FyTh8`As=X?9zhpCHX2kaq6F
+zuU<=DlE14*>GPAu$CvoZa#ie<u<;Mo+D<OfVciKcte*bZwEF2POV*x1d&2mKj@22{
+z-Kulcy$CDka|kuFf}mfb+cs+Tp;t7P5=oCWQQL%Y!PKhyzJ){E-=AEocNux3eu2=g
+zb>UM**3>MWHvdjj!g>SyYFeBdAx6a)>Z+S`Y4}fYM|BTo{eB315rXi%sTQHq%Z4>-
+zkJo99%cMm0I{h}&n=U{y8pqf%j0=C3k#K9<ZR&A*SG84pWA#>V8Dr9^QDikKkndon
+zC~#Y>SmLdzlpVPFkIe9O)r|O;2W6ACMEx}y`h^S*Q+j6mQRnWhk!BZ7PuZWiXzPCR
+zQLXRY(7D`MuXILq_Ds%zb_0VtX=hV0lOy*c9ri>zd&?ix4flDzItl6?C3I+?_VBj5
+z6S~{y<SZLJ_cLGVFT?u<Rzn99Fep<BM^z0pq<#*aJ7~2Gaa*3P_|Gj8RK$NH5&qny
+zIeJ;57yNliyMDh*P8RQ(9{ioaK0iNA64z1s{a!g${5K61#DBL^QT+Eg;iW8osq}fN
+z_IuHO@KTfVQvb<I<3D&M%=}mm_W13*BNoe>=2ezWep)(cu~8m;H=WZqG+2J8?c;4L
+zb(7`qSA}IYRq#>!-xsQsS`J@c7`mV+*Eygq6WaQ&Hw=i@d+w>lyyL8GNF00*jrV>^
+zhT*4`YiYFlv4V5&(yAuh^Q+A1(5>)Ybz|)Ap;O9}o6O5P|5#Dt`IcH7@zSqw-@54h
+z{epqH&j<^$s$$1y{(Xwahq31^wGF*@wlHA6{yraz)C#ZXw<?FkCoOd$HD7V`v6rKJ
+zwGXl#IoiT<$DYS#gEB`MAN$PKw`5sq-fW$scwqGb!Mb;D0+X68RWiDkRjbh&eU8Xi
+z=9U*%l$HKDuCdyCTxaN#v1w>sb?+j|!v`!c8;5u>t%F(G<WyL)*>P=g*2`-})XAR<
+z9WUt>ZYZ%TczD<*-wN^QQ^1#;f!N9HQnRsHzIxO#+^&qw(>o@omt6Pdo9THb<2=+?
+zj#%5_AG+O#9n>*+VZi9Aj($@EU--=ae8#)h;Gowu#A7V$%#hbf-EJLqUtDB=Gj={U
+z)|>exBZV<;QXSn`zQvw{_TYToQR}(xr!D_Ne0?!zlR2q)f~i`eFXkP5*DyCMalkFK
+zM?#YoS|c$R^>T``N^O`X737mh`seTLgPaoKAL)A;r;2`~AO1;9(pP(hz9&%NA64|d
+zo>(r4Xe9I{RbHM-B9VzC*RQ%kh8{>Si1>_h=tV^(dGwtEs#8R@N_bmkqywtxMMGs}
+zB-84sUJ=QrCTcHF&?0E#y>*bL!f1K~eK9p;!T^E+!H{5t^w$U(F8FLhFh%tP2xds1
+zwedcBgn<ML!XTvE>iC#i1S^6y(sEnzyfieU9l@S3m_SFf!OTho2LglONMI72(0njA
+zmEcTpL7MM|C~!yf4nebf5QgF_^OXGUT>_a(2A&eW@s1|qHVOY8uOpLm#XA4By?7t!
+zV!MDW35AU2Ky|oX3HaJxhD;%UYoGY-d(>V$1^T{BGB1(RXI>JeQEXfA??vMSIfT_;
+z=at1bo-7uNwy)!(??ugVg04xvCz4?x(HyA5v#;}hBNKX1iIVn|ufq^!MSt&A#BBn;
+zuOdFnBU)f*RS<7Qdn4I3*iA_r=qH1El2K1+FKSKrM|(wFqGbB?gB_>f?Z~Jl3AH8S
+ze_dD9Ub6qnsI^Eopr;y6pE^$0_w6OERq)YO@z%7j?KMz)P1H*Zm)GydmlMw*i?@f?
+zuoex}S`(Kl(fCT@9wK_=#1x6zQ^ezgrV+ok7qwQwsew6Y`09Zo5j`Zlhon9AJBn0L
+zOI6gKhFXjGBhs^P{QOaS3f_Y(=6rwpMf8Zc-@iQx??J>zCy3iCe&wdZSANRiV^hTR
+z_vQch>!sqngg)x1j|S?Y`PEX0+S9~;a+oATRW&v-P*bH+sf4d~3@M3>98FzGQI0G_
+zByIm@-$)eHL5?a?4Gp41&Iu$LCAk6GR+yEG4tC3jDA6y1j2wk3ucn}^rlc~05Jdj=
+zy)2rKBB!XMrNAW^P(*$K5nKm(q8x=RGRC)X>p`OtX=)gWhSBIW6HFZ=(^xbv%>nbq
+zOfe0NLes<&X?e72S~!-3F)%h}hM8kBG%ZY)rj5zbbg)KR3oRe3!KPzNum~&}E5K?o
+zN6ZI{#8NOO#=)YnftVBKi&<dK*dWXWqtbLSOH7`ohbhqXu~yn<YzDRz+kzEhbyyR&
+z3`@m|uzGAJ7LD<-Vr)F-hs9w2SS;p>1z>TQ73PKoV)2+Y=8h@S24FT=8|^%;9lL-X
+z!nR_|v2EBaYz3Bvm0%OFbgUGch-F}9SSB_M<6%RvAWVs7fZ1ZoG(+qn)`1<ywqvug
+zmDn6?6*dW5jg@1QvC-IYYz*ds*<qKk%h(ZY2X++Oi8W(mu_@R%EEpSsWnn|H5bO$e
+z4BLgx#nxc+u(jAo>?-yLb{yM-O~vM86<9WQ4cm>Kz}8_6*aEB)n}&%vjp4jj$AH(S
+zh}Rkz3+FWh@fCQ@r6uB=W+Pq#7tIk5f!hOdep_I9IIn@rz+d1l@YWgMi9urCR?`}3
+zwTPdoI1l|0&s}kTPe+`t!?|0Gc$$W|8i4rOgm_$n_?wQn>xTF~0r7X1m~-)nJHS1_
+zHqj8}7@``e2g#r#x*2E%W@rW8h+apWevl0=T7eIuTSRptEeV&4NJOm@rj1KN3ZmN?
+zQ6{1=2L2e2IuXeo%alqBz~nK4Cd-^^8o(f$dSl)Uc}5^TkWHc~pp{L+CNXF<E~bWs
+z(+S!vi)zzqbE<g&a}txwAewtKYZ&s(K+a_PWVRY3oJ}%iV{C>3V;FrHTOEs_lWB@b
+zUfN8LW5*dZ(?+b3p-YQH{G7~DV@{_}XX|0{bah4qJBSXFuY?hFS(eonZRP|uszreF
+zB<JHynmLyl$7sfg7T(S^%yz7u5$Jb<eu5p&na;Vuj%UxMvzfIF1?Di$6#5kQ4EhYV
+zKE|VyO?@y$Mi4uaPB5cdQXLza=dtq)UDIX;MoYxnnext){Vve;7<1VsSQ4FNUW?T-
+zr*PDn5gZ?eB2$AA$sT|Wr*kk(tlF~8BEa>yGu4D<!F4{*q?ynhb<LZZHO@rG6Py!%
+z@;++L;eHo5@to`IC3Lp)A#9l6N%joRMfydyK7+^RapuwIu}!fc&Q$tTb}&7PP8c}J
+zmFmQGZFG)fUc;_2Fw;av3)aFQT6((@P2^nz1LPg#eW&}WIjH&QG3Row(@hvj>?LfH
+zMXmE8#v!JH^Ax|6^phNQ=Zl<qoMd`3n{4jGti$RUk(?&>0LF0kd^*LH!%$)bvo#s#
+zooP-&jOa8uAUuHNq~M_7qu?76!1KF7UrMiIo?>e-o9IoP6nZ@t%!y*RSsr(#S;jf*
+zI$@TH%ywsa{|kQceoHuqoM-r{JLofSuuU1JOtOWd^Hk0y_9f16ju}?ZIE*PVm7E*c
+znoQ)3Sy5f6ZjG+zU1=`57P^*kuFcNPuGg5?oUgg+n&>*}x*(CYNOVqgZDF=J3mHPD
+z&>1tq9BW+LU5PG4w-W*KfoiVP11<!p`KtNrIqSK`2h8=G8*rU--S2vUo`ar`p0A$2
+z3Dd;c#5IYN<d+n%#IKXy$?oKI`k6SG_>e5wuC=a*TuCM*N0N(z>#%?+0Vn-V1}ONe
+zyGHoU2)O8XF+kl%-B;aT-&x<47ckFnUce2`4L^MceII>aQ|Dw(vfonnQqEGpE_xTc
+zi$k{barSYobFOpkz&aQm%ns)cSF#D&k?cfvQFIOR3ksO(H#OiC{S@bv->Cpa2Sp!6
+zUqycnXARd#zsP_lzovjo^h<sk4jMihz5|#8oCmlL_ZuECpFN*5-|r^<Ci^Dmrr!XE
+z0X}97Gp3ny3Oj|9;<t>xjJ=H0P48w?%qbQWOAeFc%yF$});k|&9A+MNrkGG1m0W}U
+zf&&`p4V(tQ)AZBq)11?ON)Adsn$A(2D8HHXne3UInSPh)m)Vy&2ABcEfN9`7f<A&h
+zf-}Nz0et~`0p}L|7TX*%XQa|o*<cS?G%B)}@))uSrU97976j69Yk+J4SO{bd7+{sc
+z>BuseA{&5lF)m{=JDknNhS90!G*jFnU=o|4#z6J}tby1T;P%6O5)<rzNc+E82iz_&
+zCv(C%@$@OUO#ll3+Ar^Xg005XV<0`pY8gn+*<$UcH!^ii;}~EWL{=f5O)^(t`Y@_3
+zK--(Kb`04FI>|y}6@u6rSetp91=yA2&Y;hYNTYSlbuHqUan8+*W?Ua@oZFG)Pxb@t
+z2Hl?ScY%F@qsP>9j_1Vt&85#}gHB#&vz=?1NFy<kP7d>%!ol^DjWm;~?i|5E(k8Y7
+z`b>!(Ae)mde3(AYpsjUGkSIl_qH_=@$PcW;R1T6Owgy9k8A*?1BW<Q5ea4VR(}%+j
+zsj<+RKtX%NGT|c2L^ScnWY7V@b)cA_bBV5o$v9}yIS!f*QQqDTY7XIaUwSl)piZTQ
+zd;5B8c}ItnXtHQ`tI?S#k5!vAVu?r<bup5OI)-es17?y+55S0~HAo%x=xj`z&Siid
+zsmJOaX41_a0vzIyG}Jgurzg?J(+AQAdh=O<bhd-KLj+yc!H=Hkpvj10&-709rkdzF
+zs4+|&lDuUY{BU`PKyN+ocvgIPgtwo!ws#Dx+O!1=XHWMY@2$n2#j>KCVhTtia69Nw
+z&zQ+ZGRa;}U+xVj5;}hzbQy8paqMP#v$rK?>5xIs@UCG@XX93pzQo&?J)RvMF)Msl
+z#6UJbVg+kOI7loyk-YWT@ey-bbHlB?Gg+D8Ad5(X96+{^M0lGzAlvCJ%kX1Qpil7D
+zX2*obM9gN*4!59Nc&D+_!WA6QDdw$D*Z1bJc;VmkA8{Q6uEQ=Mz9WBv>%eh{qI=_9
+z*P?48{>wN-v!Za$ha=uI(Ex+RF{pv)Wr+L5l6#~mwnP@+ulvTCs{00{{vYyhJ-YbC
+zDSayw`@}(|{gW53xdl1YjU&()==E&GkNXn)l@-N(E8wy*l0YyRDZOuhHY$nxvW!uG
+z)UWv`eaZdG3Szoxg9wC||I)XASx$V{Uhazek0KCkM@jE1^Mf)T&<!OJW}<$rKj|y`
+z13EOteXpT@FMrZk?gwMRyl<@u1ZDz(5Rf3fFZBm}hW@+IW*tWTgnjywe;^C;{rC*8
+zNg4z~Mk3OQMCpAcZTr%!BHrIes2?RsdS6LAw?Cg@z0Ig!>reVBeT@};&*y4Sv{uyb
+z?N9nDe~r_8lQSc6Usf{GrDW-RR{6>PGE>kVrAY6qDn*__CMThOtv~5YlOoSRvq36>
+zz)6+9UNtFu_EI0o2kLhVy)N^A+*e&n-)0lUXa3LoYDnq3-U6*J?dN?prRboCCE_#c
+z8<!@%ua=a)_nZiX5$Oa%L%Q_7+CS;rm_Z<H%aGnzM@nDVql(O*_tpJL-}RXynUvO7
+z?<alF|4UzeDYo4M3F}MLS9i4Zz5}Gpo611CkNVNZNbhSPr7zVD$#T}u`x;8=3v!i#
+z`Zi>V`jY$Pl<0kAgVskz`tqtR8|^cCHROu=NcvL6{dL6cjl}&Wxh&|Lm;3X+x?<aC
+zBp!z(?rR!DAT0QozIuK7>WR-|qPXwzK7GHQ1!z+z>Hp{c0|znm8M4>)Xo52Ic_w-_
+zn0~7-LYrlap>{~;Gtm1kR9|f>q9KSVdgqDXM~mN!#qR>~`!u4+UMDJwY%dlsmfJ)k
+zE=LrxEK*R}pieG$o0#WWWDyT4h$6n7B8p^{CgxXTCK2apnb>xyiTQj_LG&4u71^@m
+z6p>v5-hTY@CASO>{t3N9-_Pj16_vlBcNp^-dUr+T_vpRxf8dXmWqk9PvK0UKFDe>m
+z#FlU4x}q`-_;UsA$z`-B1q1?jHsaGoq;uzxz9Jd8h2AqzpAqQ$sI7<>9Y~i^J6+WG
+z^m%kXq0e#XvnAp`9eob?4UH2o8b1Iw&)>(#9kYzgEiOpm7nEcEHa1vrW)UA_(CM!E
+zj&?2#D~xIHXwUfnTK<16|6kYA+X|^k5<e+9lRyNdgN$<!K~|nhlqafFG>KY79kMP_
+zkEl;FA`$Eh%d?A;lF@rnf#^L$@+l*!FoR&9TAqWNh~A3|2=?hY#r7rqg2K$)obL(=
+zsoxh-(*k}LbQ68Z%PJz+XXa$0{}=Jg(Erm=0afLuCKV+S?D-i9X$48yd{LW(q=JH^
+za#0(}=g}!>NN9`?SCEU7l$4#Bg67RF5>*lGlM4$8_9?m9+58;zop(fteNs_TL1uDs
+z5x?+%U>gUB?Kw$o+u?P*&plCM_f5pU2uW=7;q{F8{h1E7-%4C2iO&dlog)78?&?4g
+z*>z|KHXUA`edZ;JU+|seJb<$SUao!Skoe^x;`0K&gEIqOd4%ujgMTB$K0Zl&2Ehx?
+zpuX#cvxwiP9h_P4D(mAXNZRFy*CZ=GOW~#TgL`jgpLUY-<aob!@G9!lj;SPiJqrHk
+zcw_stgR>i6)E~@S-6wnkXAFMMO!#NJNqySI-4VSgKNxR@_?|-+`w9f%kJ~L0->=AG
+zAA%yK-P&(IZB3w}c2p_tHuY%-XD$u3%b@=AzP(S(6SDZ+FT01%TH-gKRkCkK`iuv@
+zO5=UxNBv+wPWEXB=W)P;AJcbUJT9~gM(u+8wUfyGm45LXXlF$JXS>^?vGOF}kA6%b
+zSpQ%=wSNBiOw{hl58Cw)q5bs&$&9v0|NV&H^jE&$cocae!A4bj?5Xd+ZC~&2qE;0|
+zNm(>=7FkjjeQ=eLltr8>`&t%#X#H9iMR71$Nm&$`xu+m0i*`RzQBs!w>g$QhqJ~T*
+zNm*2Z#Y@Vf3d^r$Q8WT{KvWh-84`)&vWOv+uVqm*fcmv8y5ZBlmes%WL&@TsILMu-
+ztohB~!^@)EQ1I8XcE32BPQS7)&T+~5NN9a(eac|DVFqrWvRWU0!LF<I;RjeSC};Gm
+zH}6xg^PLVn|6<x_{Y2DSv(I|qb_TKExPJ7-^`mb=pR%ub{X{XsB&rX;k@n;5C1sG@
+zapJgZ-|^S?8~?99<%xav6A(6<eac|DR`y#TjQ6bHcyIgh^JBkyn)3Jcn#$kTyY{R1
+z=vSZBuRgC|eSN?BN&V{Y^{ao>uijkc`+8fI@9R_hl(+wYA6fm{d#HXt9!vH6`hb4*
+z!TstFt9@U8yifVi59X(<f8Ret<6HUS58CHxeBWNE(T_j<>N%SI=+*qb{*m7I^;G@u
+z>sk8W*9Y{gukKersbBr^e)Z@3)l&w1U#~Qv-~9c`mhs;ru280ay%(#C<TdeI`QZ=v
+zS8e+Jd=34|0sZDn?MGi$zxql2>KpsjukTmCtzZ55e)ZS-)l&@m@yDQ_{`IS8^{db7
+zS6|exzNKIN>VEZ?`_<p-S5GzkzMf{-PoMhLbNbci^{X%ISHG=a{jPrX)kfdf*BkZg
+zZ~T4zKI4A&rC<HCe)Z;9Kl_4xU!T~oKBHf~he^Nnn|xniVfuYpx1T(__9=h*fjrOb
+z*FVp!A3x2$uYZ~QO@CC0{~RyX{QLHe*5As8KWIPG`up}HochU|Q$Ks<{C)k)K4nWZ
+zzGfcbEAANDYvz5U*AdlYed>pzvTdHoDTK1$59qt)^8Nfww|?i9+xPVl|B}qd{lR#c
+zd%ykfQ|A4MpZ(ekhkPsZ`?ZI9dY}38elXs%A^qgV=UcfHwSRe16bF~^56Y79AZ|)K
+zMZm{}`tj(!`ZPRLA}as(gZXTI`kmLDe)f~o&z|{yE6+jWwVeK*9w<xbS&8cRq4H^Q
+z{YF%tbO!C2n7*Aq;19$kCH)WmfL@_*Kl>K^t$YUL>(00J;_`Lp+j!T1Fy6M{@5kH6
+z{Z_t%+B5HbFR#o#<K6qgc$fS1f6=f0Eh-0xBb_6C^Z%gy-FXoIt^5VGXZ4$()n|T1
+zG){1z`u_f|2I<@VfQaq~CZzBEUptcMd==qr)d_(lkv>-wMf4@1aulj85|?L@ME3c#
+z*ni!J%9g64JOz}ml0^2ODK5VxiOw5ISsh)eAT}+bcMw_R4|s^{{ZLs~Rdh#%@@TTi
+zzmoK?AdCE?3UPTA`P+Q}o@UrU7U{2&xc&fHWM47y`mUq$W#kWX#PzRHxfR*B!wRA@
+zjUw_d-pYyEGby6|EEBg6p?td!5lPR#q)<fqlPKm-DJq}FzO`RL5&3J0;_`Wl$UoaB
+zBPxHQi2M`DdhKOI`tKnpD*MQY?5}~iJ^`5wX7d`AA&&o6Uc|o)8PWM*DXy<Y<)E#S
+z=SY+ZO)?_?lO?8a3o4IL72Tnsd{IV}6Id;7e_uvqA1UJUOBvC5D&ap(R+KxC?4PNu
+z$loy+*L%u}{3l77C;R>VDqU7|zo3Zg^JPW;ie&uXWkq?3Jh8oBA}g{7W#ajE$%_0h
+z$@rILMR_Ml`2)nt`p6F^_w9a4K>A=WC-T1}^99R^{9%^3JVs7*eoE{|qns!=@<d!-
+zCMWVgT*dsnB==3fVEj9BqC85sxcw7UR<imgk3bmYSYSh;UWqEox3sB>$_CVL{34RH
+z2v$_l`FT&=e<&(*`>e;8Dmvfj;`-tJ>eHzre<f91-$)gmmlAnhNEP|>0TO+tiu_Lr
+ze{P_%t-C0e3FW6$k^d>FSC$vqPmCfe8_SFQ9}n^PVe+C}l2A^xzC={cauda1puR|6
+zlxLF2(^Pqpe<ab@<<MUB+xpw&zu(W(@}m2lgr3{-->?6^yvW~|$cK!A$bXfzH$&xp
+zrlNQpl;adc{-MMkl_-e(VM+U$sQj^yJz9y%x>lkX5|no-i0;=Cdw4`abRU=O|3y@W
+ze44BH{DasK+?OQt$tjA?H;`*weigr8&p<`dc^oC4Z-}DEpIa^Fe}JMWS0|CLctz3u
+zRif|3sC+9D?UC62R4a<|dJ=xmR}}e^kHqc&R22E^68j^oB)XqT>;qj%<j;Kd*OWx}
+zM~Oa-P!ip*CF?I%`hNc^ltlhhgLplSN}}8%JQafLztZ>mwMj{ocT6RV>Mx*jOP~Gk
+zR{9pd0{i?(>0A7WM35)EP!in_CG?mni~N0$KJl0=#c#+H+<)&=#_yMX%HF8Ixw2@#
+z)lvUIWl{WsB`(J(i{c@Y`c(9Jy|QS2D39#}D1tqh+^@V)`5SHt!U&s{zs13!+=0r6
+zl|}X+#yc;rPbG@#g)n!Y`JRaD6D1fO6;V8gDXy1S>5Kn){zXaUdrXg+xNIvfvsJ#u
+zRG}QL@(rf}<qUDTj4UdT6_?kOMCEBJ-{R9yUV_TI`p~;WMHDZR@b6GRdakK_;}w*j
+zqjF21{xYhfc#&j3)WoqI1H>QvT9uNNm6ed5otu+TSd>&yL@-Yxn5Pm_3W^Ggiqq2U
+zQwRwO!+atVf&(L?5)x1$H8&wWD>peQD<QQgx1cZ~skn@glAE2E#V_Kg+B><rxcs<L
+z!nf2}0zapypqzlG*Ah~Tv$M-lmp-M0Zy7gn(^P&+X+ct69>2goB`=Rqkd)3(8I#NS
+zu7KL$WxSM<i;8&#xu{1`Ccp4o1vD$n$jt8ZO?FCgQD#=(Hh6Ee^z@|6oRp%1Ec7ua
+zuP`Y)uP`bp8GX#kO=rL-ZdfcMG|HPzNX{(EOG+7o+9e~V@e9yk1b$8lKMN6nJ{A>Z
+zrWYk8!?%U`B^l_gB(ER=a+>)mQTYGE($Wg~MTn8bh>@s1B`+%y?F?V?eO^{_QcmjE
+zuL&7w8u5rJNk#nh+=6nLvMdi#QizY7omGUs$;&M)iX4-fhj++M%0XYDj_CgpOrP8W
+zJ|PE{B&&hX@Sc$17vUY^o8TMD!FL?CU;LRD6~l1w@dqaP0FSs|IgCip9h1P}r^IIF
+zq~?}}=6V+uA&wNHKA~<t5#D$ohJ!;O+FH~KbuRGbG8_t$Qbh&Pp64YYDZu+M=ssat
+zsdz7O^GLL7&Z5u0+>A_azoFeC`9*$NNhP@jzD42zLiwfr2jDpPmPoJlVW3)kA&89y
+z{1U`R@diMbA1@s5^Zg=S{rN?q#o5XHg0M6ZNrnB}_(<sZ@t_V2G=v{$1RL!qEC^3d
+z<D~f&@cC?!l!-RvhfC?tcjzVIdr7~|ip?y_=(Al?XmUw|r4$$Ve(jCw14Lp4LYY)R
+zNbnC1V|xcDg!%bJ`bH%n%?S2Q5H%l`o0%it_>kZzn8v|XG!3H<)ecOb0zQ)Gz#L?Z
+za#GMnb0ZTn|BX?hJ{d_lIsB|b-=A%ig9B<RE|&Wi6>;&#K|f|6zK4-XVAcw``~rL{
+z`tS`kiz-OUDNM^P$QFI+lbcuWkIY42PFk+$8_+nUPBHuxWCHO8GsO!I@ree5<CvG5
+z=PTaS;+)L<Vtyb8*T23y_f_IcvLopU-0XjB>^~Ou&&j{hls9G!zg!ygIdsViOL4LI
+zCi*{YEtcRP)rq7#0RRx<Qw8WP@{bPWNY`zAz`n$Db4&RJ-+kkQn@4;((x_tmOuv6(
+zJ{;WsskHc53CV?pqD9~aPzv!9D<DPozA~$y2skiPM54=0$}GstN%#H1a-}clduy7R
+znTggFfwU!oUzV9#hK|nEe#VR-n!JxK=)2#d&qbw~sc7!7)Ku8P!rTNzU@D@bkLZ7u
+z^8}b9L9F54sU@JYV6f11N!eo7iCRcy+z%}i+6oxvXAGr(-RB?e##d4D&dSP#1M-`}
+zlqP*&O@AP=PocRY%lI?8f5`j3Ec7km=k#S;WM(S=n<}Q{7BUMnbC`Y4n5dW^$@KSv
+z>WZIp#f2G2in-Z+<@5V?B2D;i2Y#rkKUElsI`x-Z1{03!%%rT$v3#-d4MFZ1NN^@M
+z6B(+X3`zg#3GDEXlM+Y}eeA<=WKa+vd~&lxP)TH6*y#NFD)N0zh{Rq<JHWpRi;u{Y
+zLTmEQN%bwu1CQ&Q7Kvu=V}knf@*jKJ&$`gRQ7f4(g6ZcMB{{)=AYnhW7cNLpit_?<
+ziueUt{G<{Q!-Fy-9TK<>&Viv(z7fH`-Z8!rkx|}JzCW`Z-)r5^4%lp;Tr^!yQB-*z
+zUu>UpkaH<Msif)WKfEFr@d1Fu7BLma#`R&Vuh?1s%0~ypM+cmbVr%wQ#HGyWgnY;B
+zLf?K$fQu6+KGZuT(1(Egn36;PM>_rELtnbh08x(c#<dZ>hvo5eaH1Hf@V%`5;A}w)
+z`*!OB{Tx=35W!E+EJR!Dla*9h$Omhcn#C<)vHXJr**<Y`36AzmLN-4e$$<E~1P1yh
+z!rLb+w~&udjV@Ju{`ZxAtv#~LS^S*u>%{`>4;0}L&4l92)J&Mw#|O>mguYHGOG?Nq
+zF5oAWWEK<^CuOl%h#GHpV1k3aBO)@VboBQ$qOX$reU+UAmbmZCXd&6TCEpQ?)|=FS
+zy+2}}Nc%;FuT=LZ`rEhJxvAeO@bN@lC4N)iy%Vn%x!bsL>q{Mh?t=bvpwpefxcbo1
+zKc<5(hyLS#45l~Tjlp0$_50qn-+TXmU)!VGYf8U4IsZDR8;8zt^mY8-&RLk8nbU7h
+zU-;hJ!Ou@hUx$8k`u>M=diR}ka9Ux?7=pe1VECL|Tv(o*Th@;bzh6T~QC{j#>F{&-
+zC3IvY0Xq3-bU6PKIx^FW^L|c;%depW$7%nJ4%c5oM|LW|<mYs_{SrFHreyxhzIgw4
+z=x}iOj*i08%%YTxgo51MBErw<VgHx-!v2n)<g787km~t4Ek3`5mb7H>>i>-v&aa^*
+zHM4NcztZwwvaw%9Ml3V@qLkd6!rUzW&*>4*@?YmoMiChOf1}0Wm(Y@#!!P=GS{T2C
+zmN8km>HkiP<1e8ls}MPH|4Iw<m(WsxE-(ClrN!yj(31V1@WuJp(2`sHAMoYB<u7ph
+z+n6+TZT%No{#!nS@Ap1KZYuKSllecV#qF2y1*voaKPmNJ_~QMGXu*RS|3VA<m(Wtg
+z&k|YQpVIQ*@*8}<qlM4FZ$tk=3+Gpz)ktLExc)bKe18dVQZhuY=Fe&I`z3mvoRyn0
+z=3njujt>7VAI9%{8#5-Y(4Jpb#P~P+>)`N9>2ds5dKkZCuks)eoST;Rb6OmK2`%Ve
+zke7u&%KS50n7>4yQu%oz2jZu+IQ=48O0xOc|3-`RukjyBlkz}Zeol+aFX2l@DulNG
+zjW4dhhA-uXqFcdFX>t1{e925p%`MIOH@<lP8d`D+{{uZ@{}TIBn3V)zj(@Q)KEH&P
+z(xjr4jMUuppVPwmC3}=T20W{O+aup!L<?A$f1~Bs_%WGj$iGX={P`X+=)Z(71^ncH
+z_wN`EzebPvIjPx6nOQ%l<=6NxS-DB6_=WbTv^f4UTE=82<^7zNU*o^v=k&jw0gPYc
+zzZ9otq~xXi8!gVihA-uXDMeZTM$519Uy6!z{sUV6TmFmRKk|(K(LIUb_Dkvc*LxD<
+z*TiHpN>kug`!BTom;9K1v4_0eJTSkhnFasGoBydV<MKbvi;IE|=z=o1FeCfx-2c(P
+i|FoUd*lJXScVMt@go%mC|1H0p{Qm=Z7JFg<@`V7ZmO^m=
+
+literal 0
+HcmV?d00001
+
+diff --git a/arch/arm/boot/rootfs.uboot b/arch/arm/boot/rootfs.uboot
+new file mode 100644
+index 0000000000000000000000000000000000000000..3456172079e0a3af970f848231693fad1148dd93
+GIT binary patch
+literal 3753311
+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
+zeq^RK$fWB%0A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
+zR*f2Et=s9-E+Va@2V;XUG4u%i0%0DBf3g3@g%`V+O$H-+@%RUd{PP#VRr`z$C)Zco
+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
+zj20d<IIDPsHOg4f2d;hA8CM$LD<%iwLqG%0DnL>0x7(&0Avw@c9&k>kts2yJ!xoJ{
+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%0DCrKPjckR=cPPu%
+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
+zkoawD8U9&&IHO&-1Rh-<keOlJhr%0AM>!b8bC23zGCx*Bq_$I=VM9MeKMM>povOgs
+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
+
+literal 0
+HcmV?d00001
+
+diff --git a/arch/arm/configs/fpgac100_defconfig b/arch/arm/configs/fpgac100_defconfig
+new file mode 100644
+index 0000000..1cb1f8a
+--- /dev/null
++++ b/arch/arm/configs/fpgac100_defconfig
+@@ -0,0 +1,936 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.24.2
++# Wed Oct 15 14:38:38 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_AUDIT is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=16
++# CONFIG_CGROUPS is not set
++CONFIG_FAIR_GROUP_SCHED=y
++CONFIG_FAIR_USER_SCHED=y
++# CONFIG_FAIR_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++# CONFIG_RELAY is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++# CONFIG_EMBEDDED is not set
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++CONFIG_PLAT_S5PC1XX=y
++CONFIG_S5PC1XX_DMA=y
++CONFIG_PLAT_S3C=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_ERROR_RESET is not set
++
++#
++# Power management
++#
++CONFIG_S3C_LOWLEVEL_UART_PORT=0
++CONFIG_MACH_SMDK=y
++
++#
++# S3C2400 Machines
++#
++
++#
++# S3C2410 Machines
++#
++# CONFIG_ARCH_SMDK2410 is not set
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++
++#
++# S3C2440 Machines
++#
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++# CONFIG_ARCH_S3C2440 is not set
++# CONFIG_MACH_NEXCODER_2440 is not set
++
++#
++# S3C2442 Machines
++#
++
++#
++# S3C2443 Machines
++#
++# CONFIG_MACH_SMDK2443 is not set
++
++#
++# S3C2450 Machines
++#
++# CONFIG_MACH_SMDK2450 is not set
++
++#
++# S3C2416 Machines
++#
++# CONFIG_MACH_SMDK2416 is not set
++
++#
++# S3C6400 Machines
++#
++# CONFIG_MACH_SMDK6400 is not set
++
++#
++# S3C6410 Machines
++#
++# CONFIG_MACH_SMDK6410 is not set
++# CONFIG_MACH_SMDK6430 is not set
++
++#
++# S5PC100 Machines
++#
++CONFIG_MACH_SMDKC100=y
++CONFIG_CPU_S5PC100=y
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_32v6K=y
++CONFIG_CPU_V7=y
++CONFIG_CPU_32v7=y
++CONFIG_CPU_ABRT_EV7=y
++CONFIG_CPU_CACHE_V7=y
++CONFIG_CPU_CACHE_VIPT=y
++CONFIG_CPU_COPY_V6=y
++CONFIG_CPU_TLB_V7=y
++CONFIG_CPU_HAS_ASID=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++# CONFIG_ARM_THUMB is not set
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_BPREDICT_DISABLE is not set
++CONFIG_HAS_TLS_REG=y
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++CONFIG_ISA=y
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++# CONFIG_PREEMPT is not set
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=200
++CONFIG_AEABI=y
++CONFIG_OABI_COMPAT=y
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x20800000,8M console=ttySAC0,115200 init=/linuxrc"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++# CONFIG_FPE_NWFPE_XP is not set
++# CONFIG_FPE_FASTFPE is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_AOUT=y
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++# CONFIG_PM is not set
++CONFIG_SUSPEND_UP_POSSIBLE=y
++
++#
++# DVFS support
++#
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++# CONFIG_PACKET is not set
++CONFIG_UNIX=y
++CONFIG_XFRM=y
++# CONFIG_XFRM_USER is not set
++# CONFIG_XFRM_SUB_POLICY is not set
++# CONFIG_XFRM_MIGRATE is not set
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++CONFIG_IP_PNP=y
++# CONFIG_IP_PNP_DHCP is not set
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++CONFIG_INET_XFRM_MODE_TRANSPORT=y
++CONFIG_INET_XFRM_MODE_TUNNEL=y
++CONFIG_INET_XFRM_MODE_BEET=y
++# CONFIG_INET_LRO is not set
++CONFIG_INET_DIAG=y
++CONFIG_INET_TCP_DIAG=y
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IPV6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++# CONFIG_CFG80211 is not set
++# CONFIG_WIRELESS_EXT is not set
++# CONFIG_MAC80211 is not set
++# CONFIG_IEEE80211 is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++# CONFIG_FW_LOADER is not set
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++# CONFIG_MTD is not set
++CONFIG_PARPORT=y
++# CONFIG_PARPORT_PC is not set
++# CONFIG_PARPORT_GSC is not set
++# CONFIG_PARPORT_AX88796 is not set
++CONFIG_PARPORT_1284=y
++# CONFIG_PNP is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++# CONFIG_BLK_DEV_NBD is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=16
++CONFIG_BLK_DEV_RAM_SIZE=8192
++CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
++# CONFIG_CDROM_PKTCDVD is not set
++# CONFIG_ATA_OVER_ETH is not set
++# CONFIG_MISC_DEVICES is not set
++# CONFIG_IDE is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++# CONFIG_SCSI is not set
++# CONFIG_SCSI_DMA is not set
++# CONFIG_SCSI_NETLINK is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++# CONFIG_NETDEVICES is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
++# CONFIG_INPUT_JOYDEV is not set
++# CONFIG_INPUT_TSDEV is not set
++# CONFIG_INPUT_EVDEV is not set
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++# CONFIG_INPUT_KEYBOARD is not set
++# CONFIG_INPUT_MOUSE is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++# CONFIG_INPUT_TOUCHSCREEN is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++# CONFIG_SERIO_PARKBD is not set
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++CONFIG_SERIAL_NONSTANDARD=y
++# CONFIG_COMPUTONE is not set
++# CONFIG_ROCKETPORT is not set
++# CONFIG_CYCLADES is not set
++# CONFIG_DIGIEPCA is not set
++# CONFIG_MOXA_INTELLIO is not set
++# CONFIG_MOXA_SMARTIO is not set
++# CONFIG_MOXA_SMARTIO_NEW is not set
++# CONFIG_N_HDLC is not set
++# CONFIG_RISCOM8 is not set
++# CONFIG_SPECIALIX is not set
++# CONFIG_SX is not set
++# CONFIG_RIO is not set
++# CONFIG_STALDRV is not set
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_NR_UARTS=8
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++CONFIG_SERIAL_8250_EXTENDED=y
++CONFIG_SERIAL_8250_MANY_PORTS=y
++# CONFIG_SERIAL_8250_FOURPORT is not set
++# CONFIG_SERIAL_8250_ACCENT is not set
++# CONFIG_SERIAL_8250_BOCA is not set
++# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
++# CONFIG_SERIAL_8250_HUB6 is not set
++CONFIG_SERIAL_8250_SHARE_IRQ=y
++# CONFIG_SERIAL_8250_DETECT_IRQ is not set
++# CONFIG_SERIAL_8250_RSA is not set
++
++#
++# Non-8250 serial port support
++#
++# CONFIG_SERIAL_S3C2410 is not set
++CONFIG_SERIAL_S5PC100=y
++CONFIG_SERIAL_S5PC1XX_CONSOLE=y
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++CONFIG_PRINTER=y
++# CONFIG_LP_CONSOLE is not set
++CONFIG_PPDEV=y
++# CONFIG_IPMI_HANDLER is not set
++CONFIG_HW_RANDOM=y
++# CONFIG_NVRAM is not set
++# CONFIG_S3C_ADC is not set
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_DEVPORT=y
++# CONFIG_I2C is not set
++
++#
++# SPI support
++#
++# CONFIG_SPI is not set
++# CONFIG_SPI_MASTER is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++CONFIG_HWMON=y
++# CONFIG_HWMON_VID is not set
++# CONFIG_SENSORS_F71805F is not set
++# CONFIG_SENSORS_F71882FG is not set
++# CONFIG_SENSORS_IT87 is not set
++# CONFIG_SENSORS_PC87360 is not set
++# CONFIG_SENSORS_PC87427 is not set
++# CONFIG_SENSORS_SMSC47M1 is not set
++# CONFIG_SENSORS_SMSC47B397 is not set
++# CONFIG_SENSORS_VT1211 is not set
++# CONFIG_SENSORS_W83627HF is not set
++# CONFIG_SENSORS_W83627EHF is not set
++# CONFIG_HWMON_DEBUG_CHIP is not set
++# CONFIG_WATCHDOG is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++# CONFIG_DAB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++CONFIG_FIRMWARE_EDID=y
++# CONFIG_FB_DDC is not set
++CONFIG_FB_CFB_FILLRECT=y
++CONFIG_FB_CFB_COPYAREA=y
++CONFIG_FB_CFB_IMAGEBLIT=y
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++CONFIG_FB_MODE_HELPERS=y
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++CONFIG_FB_S3C=y
++# CONFIG_FB_S3C_LTE480WV is not set
++CONFIG_FB_S3C_LTV350QV=y
++# CONFIG_FB_S3C_LTS222QV is not set
++CONFIG_FB_S3C_BPP=y
++# CONFIG_FB_S3C_BPP_8 is not set
++CONFIG_FB_S3C_BPP_16=y
++# CONFIG_FB_S3C_BPP_24 is not set
++# CONFIG_FB_S3C_BPP_32 is not set
++CONFIG_FB_S3C_NUM=1
++# CONFIG_FB_S3C_VIRTUAL_SCREEN is not set
++# CONFIG_FB_S3C_DOUBLE_BUFFERING is not set
++# CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_S3C2410 is not set
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++# CONFIG_MDA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++CONFIG_LOGO_LINUX_CLUT224=y
++# CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224 is not set
++
++#
++# G3D Support
++#
++
++#
++# Sound
++#
++# CONFIG_SOUND is not set
++# CONFIG_HID_SUPPORT is not set
++# CONFIG_USB_SUPPORT is not set
++# CONFIG_MMC is not set
++# CONFIG_NEW_LEDS is not set
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# SPI RTC drivers
++#
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++# CONFIG_RTC_DRV_S3C is not set
++
++#
++# Pulse Width Modulation Timer
++#
++# CONFIG_PWM is not set
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++CONFIG_EXT3_FS=y
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
++# CONFIG_EXT4DEV_FS is not set
++CONFIG_JBD=y
++CONFIG_FS_MBCACHE=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_MINIX_FS is not set
++CONFIG_ROMFS_FS=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++CONFIG_MSDOS_FS=y
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_CRAMFS=y
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=y
++# CONFIG_NFS_V3 is not set
++# CONFIG_NFS_V4 is not set
++# CONFIG_NFS_DIRECTIO is not set
++# CONFIG_NFSD is not set
++CONFIG_ROOT_NFS=y
++CONFIG_LOCKD=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=y
++# CONFIG_SUNRPC_BIND34 is not set
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++CONFIG_PARTITION_ADVANCED=y
++# CONFIG_ACORN_PARTITION is not set
++# CONFIG_OSF_PARTITION is not set
++# CONFIG_AMIGA_PARTITION is not set
++# CONFIG_ATARI_PARTITION is not set
++# CONFIG_MAC_PARTITION is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_BSD_DISKLABEL=y
++# CONFIG_MINIX_SUBPARTITION is not set
++CONFIG_SOLARIS_X86_PARTITION=y
++# CONFIG_UNIXWARE_DISKLABEL is not set
++# CONFIG_LDM_PARTITION is not set
++# CONFIG_SGI_PARTITION is not set
++# CONFIG_ULTRIX_PARTITION is not set
++# CONFIG_SUN_PARTITION is not set
++# CONFIG_KARMA_PARTITION is not set
++# CONFIG_EFI_PARTITION is not set
++# CONFIG_SYSV68_PARTITION is not set
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++CONFIG_NLS_ASCII=y
++CONFIG_NLS_ISO8859_1=y
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++CONFIG_INSTRUMENTATION=y
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_MAGIC_SYSRQ=y
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_TIMER_STATS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++CONFIG_DEBUG_MUTEXES=y
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++CONFIG_FRAME_POINTER=y
++CONFIG_FORCED_INLINING=y
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_SAMPLES is not set
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++CONFIG_DEBUG_LL=y
++# CONFIG_DEBUG_ICEDCC is not set
++CONFIG_DEBUG_S3C_PORT=y
++CONFIG_DEBUG_S3C_UART=0
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff --git a/arch/arm/configs/smdk2416mtd_defconfig b/arch/arm/configs/smdk2416mtd_defconfig
+new file mode 100644
+index 0000000..55ce4ce
+--- /dev/null
++++ b/arch/arm/configs/smdk2416mtd_defconfig
+@@ -0,0 +1,1447 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.24.2
++# Mon Apr 7 10:09:55 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_AUDIT is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=16
++# CONFIG_CGROUPS is not set
++CONFIG_FAIR_GROUP_SCHED=y
++CONFIG_FAIR_USER_SCHED=y
++# CONFIG_FAIR_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++# CONFIG_RELAY is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++# CONFIG_EMBEDDED is not set
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++CONFIG_PLAT_S3C24XX=y
++CONFIG_CPU_S3C244X=y
++CONFIG_S3C2410_DMA=y
++# CONFIG_S3C2410_DMA_DEBUG is not set
++CONFIG_PLAT_S3C=y
++CONFIG_CPU_LLSERIAL_S3C2410=y
++CONFIG_CPU_LLSERIAL_S3C2440=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_WATCHDOG is not set
++# CONFIG_S3C_BOOT_ERROR_RESET is not set
++
++#
++# Power management
++#
++# CONFIG_S3C2410_PM_DEBUG is not set
++# CONFIG_S3C2410_PM_CHECK is not set
++CONFIG_S3C_LOWLEVEL_UART_PORT=0
++CONFIG_SPLIT_ROOT_FILESYSTEM=y
++CONFIG_MACH_SMDK=y
++
++#
++# S3C2400 Machines
++#
++CONFIG_CPU_S3C2410=y
++CONFIG_CPU_S3C2410_DMA=y
++CONFIG_S3C2410_PM=y
++CONFIG_S3C2410_GPIO=y
++CONFIG_S3C2410_CLOCK=y
++
++#
++# S3C2410 Machines
++#
++CONFIG_ARCH_SMDK2410=y
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++CONFIG_CPU_S3C2440=y
++CONFIG_S3C2440_DMA=y
++
++#
++# S3C2440 Machines
++#
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++CONFIG_ARCH_S3C2440=y
++# CONFIG_MACH_NEXCODER_2440 is not set
++CONFIG_SMDK2440_CPU2440=y
++
++#
++# S3C2442 Machines
++#
++# CONFIG_SMDK2440_CPU2442 is not set
++
++#
++# S3C2443 Machines
++#
++# CONFIG_MACH_SMDK2443 is not set
++
++#
++# S3C2450 Machines
++#
++# CONFIG_MACH_SMDK2450 is not set
++CONFIG_CPU_S3C2416=y
++CONFIG_S3C2416_DMA=y
++
++#
++# S3C2416 Machines
++#
++CONFIG_MACH_SMDK2416=y
++
++#
++# S3C6400 Machines
++#
++# CONFIG_MACH_SMDK6400 is not set
++
++#
++# S3C6410 Machines
++#
++# CONFIG_MACH_SMDK6410 is not set
++# CONFIG_MACH_FPGA6410 is not set
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++# CONFIG_CPU_ARM920T is not set
++CONFIG_CPU_ARM926T=y
++CONFIG_CPU_32v5=y
++CONFIG_CPU_ABRT_EV5TJ=y
++CONFIG_CPU_CACHE_VIVT=y
++CONFIG_CPU_COPY_V4WB=y
++CONFIG_CPU_TLB_V4WBI=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++CONFIG_ARM_THUMB=y
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
++# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++CONFIG_ISA=y
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++# CONFIG_PREEMPT is not set
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=200
++CONFIG_AEABI=y
++CONFIG_OABI_COMPAT=y
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4096
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=cramfs init=/linuxrc console=ttySAC0,115200"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++# CONFIG_FPE_NWFPE_XP is not set
++# CONFIG_FPE_FASTFPE is not set
++# CONFIG_VFP is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_AOUT=y
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++CONFIG_PM=y
++# CONFIG_PM_LEGACY is not set
++# CONFIG_PM_DEBUG is not set
++CONFIG_PM_SLEEP=y
++CONFIG_SUSPEND_UP_POSSIBLE=y
++CONFIG_SUSPEND=y
++# CONFIG_APM_EMULATION is not set
++
++#
++# DVFS support
++#
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++# CONFIG_PACKET is not set
++CONFIG_UNIX=y
++CONFIG_XFRM=y
++# CONFIG_XFRM_USER is not set
++# CONFIG_XFRM_SUB_POLICY is not set
++# CONFIG_XFRM_MIGRATE is not set
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++CONFIG_IP_PNP=y
++# CONFIG_IP_PNP_DHCP is not set
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++CONFIG_INET_XFRM_MODE_TRANSPORT=y
++CONFIG_INET_XFRM_MODE_TUNNEL=y
++CONFIG_INET_XFRM_MODE_BEET=y
++# CONFIG_INET_LRO is not set
++CONFIG_INET_DIAG=y
++CONFIG_INET_TCP_DIAG=y
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IPV6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++# CONFIG_CFG80211 is not set
++# CONFIG_WIRELESS_EXT is not set
++# CONFIG_MAC80211 is not set
++# CONFIG_IEEE80211 is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++# CONFIG_FW_LOADER is not set
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++CONFIG_MTD_REDBOOT_PARTS=y
++CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
++CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
++# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
++CONFIG_MTD_CMDLINE_PARTS=y
++# CONFIG_MTD_AFS_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++CONFIG_MTD_CFI=y
++CONFIG_MTD_JEDECPROBE=y
++CONFIG_MTD_GEN_PROBE=y
++# CONFIG_MTD_CFI_ADV_OPTIONS is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++CONFIG_MTD_CFI_INTELEXT=y
++CONFIG_MTD_CFI_AMDSTD=y
++# CONFIG_MTD_CFI_STAA is not set
++CONFIG_MTD_CFI_UTIL=y
++# CONFIG_MTD_RAM is not set
++CONFIG_MTD_ROM=y
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PHYSMAP is not set
++# CONFIG_MTD_ARM_INTEGRATOR is not set
++# CONFIG_MTD_IMPA7 is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++# CONFIG_MTD_DATAFLASH is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++CONFIG_MTD_NAND=y
++# CONFIG_MTD_NAND_VERIFY_WRITE is not set
++# CONFIG_MTD_NAND_ECC_SMC is not set
++# CONFIG_MTD_NAND_MUSEUM_IDS is not set
++CONFIG_MTD_NAND_IDS=y
++# CONFIG_MTD_NAND_S3C2410 is not set
++CONFIG_MTD_NAND_S3C=y
++# CONFIG_MTD_NAND_S3C_DEBUG is not set
++CONFIG_MTD_NO_ECC_WARNING=y
++CONFIG_MTD_NAND_S3C_HWECC=y
++CONFIG_S3C_LARGEPAGE_NAND=y
++# CONFIG_MTD_NAND_DISKONCHIP is not set
++# CONFIG_MTD_NAND_NANDSIM is not set
++# CONFIG_MTD_NAND_PLATFORM is not set
++# CONFIG_MTD_ALAUDA is not set
++# CONFIG_MTD_ONENAND is not set
++
++#
++# UBI - Unsorted block images
++#
++# CONFIG_MTD_UBI is not set
++CONFIG_PARPORT=y
++# CONFIG_PARPORT_PC is not set
++# CONFIG_PARPORT_GSC is not set
++# CONFIG_PARPORT_AX88796 is not set
++CONFIG_PARPORT_1284=y
++# CONFIG_PNP is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++CONFIG_BLK_DEV_NBD=m
++# CONFIG_BLK_DEV_UB is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=16
++CONFIG_BLK_DEV_RAM_SIZE=4096
++CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
++# CONFIG_CDROM_PKTCDVD is not set
++CONFIG_ATA_OVER_ETH=m
++CONFIG_MISC_DEVICES=y
++# CONFIG_EEPROM_93CX6 is not set
++CONFIG_IDE=y
++CONFIG_BLK_DEV_IDE=y
++
++#
++# Please see Documentation/ide.txt for help/info on IDE drives
++#
++# CONFIG_BLK_DEV_IDE_SATA is not set
++CONFIG_BLK_DEV_IDEDISK=y
++# CONFIG_IDEDISK_MULTI_MODE is not set
++CONFIG_BLK_DEV_IDECD=y
++CONFIG_BLK_DEV_IDETAPE=m
++CONFIG_BLK_DEV_IDEFLOPPY=m
++# CONFIG_IDE_TASK_IOCTL is not set
++CONFIG_IDE_PROC_FS=y
++
++#
++# IDE chipset support/bugfixes
++#
++CONFIG_IDE_GENERIC=y
++# CONFIG_BLK_DEV_PLATFORM is not set
++# CONFIG_IDE_ARM is not set
++
++#
++# Other IDE chipsets support
++#
++
++#
++# Note: most of these also require special kernel boot parameters
++#
++# CONFIG_BLK_DEV_4DRIVES is not set
++# CONFIG_BLK_DEV_ALI14XX is not set
++# CONFIG_BLK_DEV_DTC2278 is not set
++# CONFIG_BLK_DEV_HT6560B is not set
++# CONFIG_BLK_DEV_QD65XX is not set
++# CONFIG_BLK_DEV_UMC8672 is not set
++# CONFIG_BLK_DEV_IDEDMA is not set
++CONFIG_IDE_ARCH_OBSOLETE_INIT=y
++# CONFIG_BLK_DEV_HD is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++# CONFIG_SCSI is not set
++# CONFIG_SCSI_DMA is not set
++# CONFIG_SCSI_NETLINK is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++# CONFIG_ARCNET is not set
++# CONFIG_PHYLIB is not set
++CONFIG_NET_ETHERNET=y
++CONFIG_MII=y
++# CONFIG_AX88796 is not set
++# CONFIG_NET_VENDOR_3COM is not set
++# CONFIG_NET_VENDOR_SMC is not set
++# CONFIG_SMC91X is not set
++# CONFIG_DM9000 is not set
++CONFIG_SMC911X=y
++# CONFIG_NET_VENDOR_RACAL is not set
++# CONFIG_AT1700 is not set
++# CONFIG_DEPCA is not set
++# CONFIG_HP100 is not set
++# CONFIG_NET_ISA is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++CONFIG_NET_PCI=y
++# CONFIG_AC3200 is not set
++# CONFIG_APRICOT is not set
++# CONFIG_B44 is not set
++# CONFIG_CS89x0 is not set
++# CONFIG_NET_POCKET is not set
++CONFIG_NETDEV_1000=y
++CONFIG_NETDEV_10000=y
++# CONFIG_TR is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++# CONFIG_WLAN_80211 is not set
++
++#
++# USB Network Adapters
++#
++# CONFIG_USB_CATC is not set
++# CONFIG_USB_KAWETH is not set
++# CONFIG_USB_PEGASUS is not set
++# CONFIG_USB_RTL8150 is not set
++# CONFIG_USB_USBNET is not set
++# CONFIG_WAN is not set
++# CONFIG_PLIP is not set
++# CONFIG_PPP is not set
++# CONFIG_SLIP is not set
++# CONFIG_SHAPER is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++CONFIG_INPUT_MOUSEDEV_PSAUX=y
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
++# CONFIG_INPUT_JOYDEV is not set
++CONFIG_INPUT_TSDEV=y
++CONFIG_INPUT_TSDEV_SCREEN_X=480
++CONFIG_INPUT_TSDEV_SCREEN_Y=640
++CONFIG_INPUT_EVDEV=y
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++# CONFIG_KEYBOARD_GPIO is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++CONFIG_MOUSE_PS2_LOGIPS2PP=y
++CONFIG_MOUSE_PS2_SYNAPTICS=y
++CONFIG_MOUSE_PS2_LIFEBOOK=y
++CONFIG_MOUSE_PS2_TRACKPOINT=y
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_APPLETOUCH is not set
++# CONFIG_MOUSE_INPORT is not set
++# CONFIG_MOUSE_LOGIBM is not set
++# CONFIG_MOUSE_PC110PAD is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_MOUSE_GPIO is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++CONFIG_INPUT_TOUCHSCREEN=y
++# CONFIG_TOUCHSCREEN_ADS7846 is not set
++CONFIG_TOUCHSCREEN_S3C=y
++# CONFIG_TOUCHSCREEN_FUJITSU is not set
++# CONFIG_TOUCHSCREEN_GUNZE is not set
++# CONFIG_TOUCHSCREEN_ELO is not set
++# CONFIG_TOUCHSCREEN_MTOUCH is not set
++# CONFIG_TOUCHSCREEN_MK712 is not set
++# CONFIG_TOUCHSCREEN_PENMOUNT is not set
++# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
++# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
++# CONFIG_TOUCHSCREEN_UCB1400 is not set
++# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++# CONFIG_SERIO_PARKBD is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++CONFIG_SERIAL_NONSTANDARD=y
++# CONFIG_COMPUTONE is not set
++# CONFIG_ROCKETPORT is not set
++# CONFIG_CYCLADES is not set
++# CONFIG_DIGIEPCA is not set
++# CONFIG_MOXA_INTELLIO is not set
++# CONFIG_MOXA_SMARTIO is not set
++# CONFIG_MOXA_SMARTIO_NEW is not set
++# CONFIG_N_HDLC is not set
++# CONFIG_RISCOM8 is not set
++# CONFIG_SPECIALIX is not set
++# CONFIG_SX is not set
++# CONFIG_RIO is not set
++# CONFIG_STALDRV is not set
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_NR_UARTS=8
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++CONFIG_SERIAL_8250_EXTENDED=y
++CONFIG_SERIAL_8250_MANY_PORTS=y
++# CONFIG_SERIAL_8250_FOURPORT is not set
++# CONFIG_SERIAL_8250_ACCENT is not set
++# CONFIG_SERIAL_8250_BOCA is not set
++# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
++# CONFIG_SERIAL_8250_HUB6 is not set
++CONFIG_SERIAL_8250_SHARE_IRQ=y
++# CONFIG_SERIAL_8250_DETECT_IRQ is not set
++# CONFIG_SERIAL_8250_RSA is not set
++
++#
++# Non-8250 serial port support
++#
++CONFIG_SERIAL_S3C2410=y
++CONFIG_SERIAL_S3C2410_CONSOLE=y
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++CONFIG_PRINTER=y
++# CONFIG_LP_CONSOLE is not set
++CONFIG_PPDEV=y
++# CONFIG_IPMI_HANDLER is not set
++CONFIG_HW_RANDOM=y
++# CONFIG_NVRAM is not set
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_DEVPORT=y
++CONFIG_I2C=y
++CONFIG_I2C_BOARDINFO=y
++CONFIG_I2C_CHARDEV=m
++
++#
++# I2C Algorithms
++#
++CONFIG_I2C_ALGOBIT=m
++# CONFIG_I2C_ALGOPCF is not set
++# CONFIG_I2C_ALGOPCA is not set
++
++#
++# I2C Hardware Bus support
++#
++# CONFIG_I2C_ELEKTOR is not set
++# CONFIG_I2C_GPIO is not set
++# CONFIG_I2C_OCORES is not set
++# CONFIG_I2C_PARPORT is not set
++# CONFIG_I2C_PARPORT_LIGHT is not set
++CONFIG_I2C_S3C2410=y
++# CONFIG_I2C_SIMTEC is not set
++# CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_STUB is not set
++# CONFIG_I2C_TINY_USB is not set
++# CONFIG_I2C_PCA_ISA is not set
++
++#
++# Miscellaneous I2C Chip support
++#
++# CONFIG_SENSORS_DS1337 is not set
++# CONFIG_SENSORS_DS1374 is not set
++# CONFIG_DS1682 is not set
++CONFIG_SENSORS_EEPROM=m
++# CONFIG_SENSORS_PCF8574 is not set
++# CONFIG_SENSORS_PCA9539 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_SENSORS_MAX6875 is not set
++# CONFIG_SENSORS_TSL2550 is not set
++# CONFIG_I2C_DEBUG_CORE is not set
++# CONFIG_I2C_DEBUG_ALGO is not set
++# CONFIG_I2C_DEBUG_BUS is not set
++# CONFIG_I2C_DEBUG_CHIP is not set
++
++#
++# SPI support
++#
++CONFIG_SPI=y
++# CONFIG_SPI_DEBUG is not set
++CONFIG_SPI_MASTER=y
++
++#
++# SPI Master Controller Drivers
++#
++CONFIG_SPI_BITBANG=m
++# CONFIG_SPI_BUTTERFLY is not set
++# CONFIG_SPI_LM70_LLP is not set
++CONFIG_SPI_S3C24XX=m
++CONFIG_SPI_S3C24XX_GPIO=m
++
++#
++# SPI Protocol Masters
++#
++# CONFIG_SPI_AT25 is not set
++# CONFIG_SPI_SPIDEV is not set
++# CONFIG_SPI_TLE62X0 is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++CONFIG_HWMON=y
++CONFIG_HWMON_VID=m
++# CONFIG_SENSORS_AD7418 is not set
++# CONFIG_SENSORS_ADM1021 is not set
++# CONFIG_SENSORS_ADM1025 is not set
++# CONFIG_SENSORS_ADM1026 is not set
++# CONFIG_SENSORS_ADM1029 is not set
++# CONFIG_SENSORS_ADM1031 is not set
++# CONFIG_SENSORS_ADM9240 is not set
++# CONFIG_SENSORS_ADT7470 is not set
++# CONFIG_SENSORS_ATXP1 is not set
++# CONFIG_SENSORS_DS1621 is not set
++# CONFIG_SENSORS_F71805F is not set
++# CONFIG_SENSORS_F71882FG is not set
++# CONFIG_SENSORS_F75375S is not set
++# CONFIG_SENSORS_GL518SM is not set
++# CONFIG_SENSORS_GL520SM is not set
++# CONFIG_SENSORS_IT87 is not set
++# CONFIG_SENSORS_LM63 is not set
++# CONFIG_SENSORS_LM70 is not set
++CONFIG_SENSORS_LM75=m
++# CONFIG_SENSORS_LM77 is not set
++CONFIG_SENSORS_LM78=m
++# CONFIG_SENSORS_LM80 is not set
++# CONFIG_SENSORS_LM83 is not set
++CONFIG_SENSORS_LM85=m
++# CONFIG_SENSORS_LM87 is not set
++# CONFIG_SENSORS_LM90 is not set
++# CONFIG_SENSORS_LM92 is not set
++# CONFIG_SENSORS_LM93 is not set
++# CONFIG_SENSORS_MAX1619 is not set
++# CONFIG_SENSORS_MAX6650 is not set
++# CONFIG_SENSORS_PC87360 is not set
++# CONFIG_SENSORS_PC87427 is not set
++# CONFIG_SENSORS_DME1737 is not set
++# CONFIG_SENSORS_SMSC47M1 is not set
++# CONFIG_SENSORS_SMSC47M192 is not set
++# CONFIG_SENSORS_SMSC47B397 is not set
++# CONFIG_SENSORS_THMC50 is not set
++# CONFIG_SENSORS_VT1211 is not set
++# CONFIG_SENSORS_W83781D is not set
++# CONFIG_SENSORS_W83791D is not set
++# CONFIG_SENSORS_W83792D is not set
++# CONFIG_SENSORS_W83793 is not set
++# CONFIG_SENSORS_W83L785TS is not set
++# CONFIG_SENSORS_W83627HF is not set
++# CONFIG_SENSORS_W83627EHF is not set
++# CONFIG_HWMON_DEBUG_CHIP is not set
++CONFIG_WATCHDOG=y
++# CONFIG_WATCHDOG_NOWAYOUT is not set
++
++#
++# Watchdog Device Drivers
++#
++# CONFIG_SOFT_WATCHDOG is not set
++CONFIG_S3C2410_WATCHDOG=y
++
++#
++# ISA-based Watchdog Cards
++#
++# CONFIG_PCWATCHDOG is not set
++# CONFIG_MIXCOMWD is not set
++# CONFIG_WDT is not set
++
++#
++# USB-based Watchdog Cards
++#
++# CONFIG_USBPCWATCHDOG is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++CONFIG_DAB=y
++# CONFIG_USB_DABUSB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++CONFIG_FIRMWARE_EDID=y
++# CONFIG_FB_DDC is not set
++# CONFIG_FB_CFB_FILLRECT is not set
++# CONFIG_FB_CFB_COPYAREA is not set
++# CONFIG_FB_CFB_IMAGEBLIT is not set
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++CONFIG_FB_MODE_HELPERS=y
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++CONFIG_FB_S3C=y
++# CONFIG_FB_S3C_LTV350QV is not set
++CONFIG_FB_S3C_LTE480WV=y
++CONFIG_FB_S3C_BPP=y
++# CONFIG_FB_S3C_BPP_8 is not set
++CONFIG_FB_S3C_BPP_16=y
++# CONFIG_FB_S3C_BPP_24 is not set
++# CONFIG_FB_S3C_BPP_32 is not set
++CONFIG_FB_S3C_NUM=1
++# CONFIG_FB_S3C_VIRTUAL_SCREEN is not set
++# CONFIG_FB_S3C_DOUBLE_BUFFERING is not set
++# CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_S3C2410 is not set
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++# CONFIG_MDA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++# CONFIG_LOGO_LINUX_CLUT224 is not set
++CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224=y
++
++#
++# Sound
++#
++# CONFIG_SOUND is not set
++CONFIG_HID_SUPPORT=y
++CONFIG_HID=y
++# CONFIG_HID_DEBUG is not set
++# CONFIG_HIDRAW is not set
++
++#
++# USB Input Devices
++#
++# CONFIG_USB_HID is not set
++
++#
++# USB HID Boot Protocol drivers
++#
++# CONFIG_USB_KBD is not set
++# CONFIG_USB_MOUSE is not set
++CONFIG_USB_SUPPORT=y
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
++# CONFIG_USB_ARCH_HAS_EHCI is not set
++CONFIG_USB=y
++# CONFIG_USB_DEBUG is not set
++
++#
++# Miscellaneous USB options
++#
++CONFIG_USB_DEVICEFS=y
++CONFIG_USB_DEVICE_CLASS=y
++# CONFIG_USB_DYNAMIC_MINORS is not set
++# CONFIG_USB_SUSPEND is not set
++# CONFIG_USB_PERSIST is not set
++# CONFIG_USB_OTG is not set
++
++#
++# USB Host Controller Drivers
++#
++# CONFIG_USB_ISP116X_HCD is not set
++CONFIG_USB_OHCI_HCD=y
++# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
++# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
++CONFIG_USB_OHCI_LITTLE_ENDIAN=y
++# CONFIG_USB_SL811_HCD is not set
++# CONFIG_USB_R8A66597_HCD is not set
++
++#
++# USB Device Class drivers
++#
++# CONFIG_USB_ACM is not set
++# CONFIG_USB_PRINTER is not set
++
++#
++# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
++#
++
++#
++# may also be needed; see USB_STORAGE Help for more information
++#
++# CONFIG_USB_LIBUSUAL is not set
++
++#
++# USB Imaging devices
++#
++# CONFIG_USB_MDC800 is not set
++CONFIG_USB_MON=y
++
++#
++# USB port drivers
++#
++# CONFIG_USB_USS720 is not set
++
++#
++# USB Serial Converter support
++#
++# CONFIG_USB_SERIAL is not set
++
++#
++# USB Miscellaneous drivers
++#
++# CONFIG_USB_EMI62 is not set
++# CONFIG_USB_EMI26 is not set
++# CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_AUERSWALD is not set
++# CONFIG_USB_RIO500 is not set
++# CONFIG_USB_LEGOTOWER is not set
++# CONFIG_USB_LCD is not set
++# CONFIG_USB_BERRY_CHARGE is not set
++# CONFIG_USB_LED is not set
++# CONFIG_USB_CYPRESS_CY7C63 is not set
++# CONFIG_USB_CYTHERM is not set
++# CONFIG_USB_PHIDGET is not set
++# CONFIG_USB_IDMOUSE is not set
++# CONFIG_USB_FTDI_ELAN is not set
++# CONFIG_USB_APPLEDISPLAY is not set
++# CONFIG_USB_LD is not set
++# CONFIG_USB_TRANCEVIBRATOR is not set
++# CONFIG_USB_IOWARRIOR is not set
++# CONFIG_USB_TEST is not set
++
++#
++# USB DSL modem support
++#
++
++#
++# USB Gadget Support
++#
++# CONFIG_USB_GADGET is not set
++CONFIG_MMC=y
++# CONFIG_MMC_DEBUG is not set
++# CONFIG_MMC_UNSAFE_RESUME is not set
++
++#
++# MMC/SD Card Drivers
++#
++CONFIG_MMC_BLOCK=y
++CONFIG_MMC_BLOCK_BOUNCE=y
++# CONFIG_SDIO_UART is not set
++
++#
++# MMC/SD Host Controller Drivers
++#
++# CONFIG_MMC_S3C is not set
++CONFIG_HSMMC_S3C=y
++# CONFIG_USE_MMC_AS_ROOT is not set
++# CONFIG_HSMMC_S3C_IRQ_WORKAROUND is not set
++CONFIG_HSMMC_SCATTERGATHER=y
++# CONFIG_S3CMMC_DEBUG is not set
++# CONFIG_MMC_SPI is not set
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=m
++
++#
++# LED drivers
++#
++CONFIG_LEDS_S3C24XX=m
++# CONFIG_LEDS_GPIO is not set
++
++#
++# LED Triggers
++#
++CONFIG_LEDS_TRIGGERS=y
++CONFIG_LEDS_TRIGGER_TIMER=m
++# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
++CONFIG_LEDS_TRIGGER_HEARTBEAT=m
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# I2C RTC drivers
++#
++# CONFIG_RTC_DRV_DS1307 is not set
++# CONFIG_RTC_DRV_DS1374 is not set
++# CONFIG_RTC_DRV_DS1672 is not set
++# CONFIG_RTC_DRV_MAX6900 is not set
++# CONFIG_RTC_DRV_RS5C372 is not set
++# CONFIG_RTC_DRV_ISL1208 is not set
++# CONFIG_RTC_DRV_X1205 is not set
++# CONFIG_RTC_DRV_PCF8563 is not set
++# CONFIG_RTC_DRV_PCF8583 is not set
++# CONFIG_RTC_DRV_M41T80 is not set
++
++#
++# SPI RTC drivers
++#
++# CONFIG_RTC_DRV_RS5C348 is not set
++# CONFIG_RTC_DRV_MAX6902 is not set
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_S3C=y
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++CONFIG_EXT3_FS=y
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
++# CONFIG_EXT4DEV_FS is not set
++CONFIG_JBD=y
++CONFIG_FS_MBCACHE=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_MINIX_FS is not set
++CONFIG_ROMFS_FS=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++CONFIG_MSDOS_FS=y
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
++# CONFIG_JFFS2_SUMMARY is not set
++# CONFIG_JFFS2_FS_XATTR is not set
++# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
++CONFIG_JFFS2_ZLIB=y
++# CONFIG_JFFS2_LZO is not set
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++CONFIG_CRAMFS=y
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=y
++# CONFIG_NFS_V3 is not set
++# CONFIG_NFS_V4 is not set
++# CONFIG_NFS_DIRECTIO is not set
++# CONFIG_NFSD is not set
++CONFIG_ROOT_NFS=y
++CONFIG_LOCKD=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=y
++# CONFIG_SUNRPC_BIND34 is not set
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++CONFIG_PARTITION_ADVANCED=y
++# CONFIG_ACORN_PARTITION is not set
++# CONFIG_OSF_PARTITION is not set
++# CONFIG_AMIGA_PARTITION is not set
++# CONFIG_ATARI_PARTITION is not set
++# CONFIG_MAC_PARTITION is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_BSD_DISKLABEL=y
++# CONFIG_MINIX_SUBPARTITION is not set
++CONFIG_SOLARIS_X86_PARTITION=y
++# CONFIG_UNIXWARE_DISKLABEL is not set
++# CONFIG_LDM_PARTITION is not set
++# CONFIG_SGI_PARTITION is not set
++# CONFIG_ULTRIX_PARTITION is not set
++# CONFIG_SUN_PARTITION is not set
++# CONFIG_KARMA_PARTITION is not set
++# CONFIG_EFI_PARTITION is not set
++# CONFIG_SYSV68_PARTITION is not set
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++CONFIG_NLS_ASCII=y
++CONFIG_NLS_ISO8859_1=y
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++CONFIG_INSTRUMENTATION=y
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_MAGIC_SYSRQ=y
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_TIMER_STATS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++CONFIG_DEBUG_MUTEXES=y
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++CONFIG_FRAME_POINTER=y
++CONFIG_FORCED_INLINING=y
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_SAMPLES is not set
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++CONFIG_DEBUG_LL=y
++# CONFIG_DEBUG_ICEDCC is not set
++CONFIG_DEBUG_S3C_PORT=y
++CONFIG_DEBUG_S3C_UART=0
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff --git a/arch/arm/configs/smdk2416nfs_defconfig b/arch/arm/configs/smdk2416nfs_defconfig
+new file mode 100644
+index 0000000..d41ff30
+--- /dev/null
++++ b/arch/arm/configs/smdk2416nfs_defconfig
+@@ -0,0 +1,1397 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.24.2
++# Fri Apr 4 13:58:59 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_AUDIT is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=16
++# CONFIG_CGROUPS is not set
++CONFIG_FAIR_GROUP_SCHED=y
++CONFIG_FAIR_USER_SCHED=y
++# CONFIG_FAIR_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++# CONFIG_RELAY is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++# CONFIG_EMBEDDED is not set
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++CONFIG_PLAT_S3C24XX=y
++CONFIG_CPU_S3C244X=y
++CONFIG_S3C2410_DMA=y
++# CONFIG_S3C2410_DMA_DEBUG is not set
++CONFIG_PLAT_S3C=y
++CONFIG_CPU_LLSERIAL_S3C2410=y
++CONFIG_CPU_LLSERIAL_S3C2440=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_WATCHDOG is not set
++# CONFIG_S3C_BOOT_ERROR_RESET is not set
++
++#
++# Power management
++#
++# CONFIG_S3C2410_PM_DEBUG is not set
++# CONFIG_S3C2410_PM_CHECK is not set
++CONFIG_S3C_LOWLEVEL_UART_PORT=0
++CONFIG_SPLIT_ROOT_FILESYSTEM=y
++CONFIG_MACH_SMDK=y
++
++#
++# S3C2400 Machines
++#
++CONFIG_CPU_S3C2410=y
++CONFIG_CPU_S3C2410_DMA=y
++CONFIG_S3C2410_PM=y
++CONFIG_S3C2410_GPIO=y
++CONFIG_S3C2410_CLOCK=y
++
++#
++# S3C2410 Machines
++#
++CONFIG_ARCH_SMDK2410=y
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++CONFIG_CPU_S3C2440=y
++CONFIG_S3C2440_DMA=y
++
++#
++# S3C2440 Machines
++#
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++CONFIG_ARCH_S3C2440=y
++# CONFIG_MACH_NEXCODER_2440 is not set
++CONFIG_SMDK2440_CPU2440=y
++
++#
++# S3C2442 Machines
++#
++# CONFIG_SMDK2440_CPU2442 is not set
++
++#
++# S3C2443 Machines
++#
++# CONFIG_MACH_SMDK2443 is not set
++
++#
++# S3C2450 Machines
++#
++# CONFIG_MACH_SMDK2450 is not set
++CONFIG_CPU_S3C2416=y
++CONFIG_S3C2416_DMA=y
++
++#
++# S3C2416 Machines
++#
++CONFIG_MACH_SMDK2416=y
++
++#
++# S3C6400 Machines
++#
++# CONFIG_MACH_SMDK6400 is not set
++
++#
++# S3C6410 Machines
++#
++# CONFIG_MACH_SMDK6410 is not set
++# CONFIG_MACH_FPGA6410 is not set
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++# CONFIG_CPU_ARM920T is not set
++
++#
++# Processor Features
++#
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++CONFIG_ISA=y
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++# CONFIG_PREEMPT is not set
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=200
++CONFIG_AEABI=y
++CONFIG_OABI_COMPAT=y
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4096
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="nfsroot=12.23.106.52:/opt/small_root_eabi ip=192.168.0.20:12.23.106.52:192.168.0.1:255.255.255.0:test::off init=/linuxrc console=ttySAC0,115200"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++# CONFIG_FPE_NWFPE_XP is not set
++# CONFIG_FPE_FASTFPE is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_AOUT=y
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++CONFIG_PM=y
++# CONFIG_PM_LEGACY is not set
++# CONFIG_PM_DEBUG is not set
++CONFIG_PM_SLEEP=y
++CONFIG_SUSPEND_UP_POSSIBLE=y
++CONFIG_SUSPEND=y
++# CONFIG_APM_EMULATION is not set
++
++#
++# DVFS support
++#
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++# CONFIG_PACKET is not set
++CONFIG_UNIX=y
++CONFIG_XFRM=y
++# CONFIG_XFRM_USER is not set
++# CONFIG_XFRM_SUB_POLICY is not set
++# CONFIG_XFRM_MIGRATE is not set
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++CONFIG_IP_PNP=y
++# CONFIG_IP_PNP_DHCP is not set
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++CONFIG_INET_XFRM_MODE_TRANSPORT=y
++CONFIG_INET_XFRM_MODE_TUNNEL=y
++CONFIG_INET_XFRM_MODE_BEET=y
++# CONFIG_INET_LRO is not set
++CONFIG_INET_DIAG=y
++CONFIG_INET_TCP_DIAG=y
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IPV6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++# CONFIG_CFG80211 is not set
++# CONFIG_WIRELESS_EXT is not set
++# CONFIG_MAC80211 is not set
++# CONFIG_IEEE80211 is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++# CONFIG_FW_LOADER is not set
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++CONFIG_MTD_REDBOOT_PARTS=y
++CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
++CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
++# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
++CONFIG_MTD_CMDLINE_PARTS=y
++# CONFIG_MTD_AFS_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++CONFIG_MTD_CFI=y
++CONFIG_MTD_JEDECPROBE=y
++CONFIG_MTD_GEN_PROBE=y
++# CONFIG_MTD_CFI_ADV_OPTIONS is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++CONFIG_MTD_CFI_INTELEXT=y
++CONFIG_MTD_CFI_AMDSTD=y
++# CONFIG_MTD_CFI_STAA is not set
++CONFIG_MTD_CFI_UTIL=y
++# CONFIG_MTD_RAM is not set
++CONFIG_MTD_ROM=y
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PHYSMAP is not set
++# CONFIG_MTD_ARM_INTEGRATOR is not set
++# CONFIG_MTD_IMPA7 is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++# CONFIG_MTD_DATAFLASH is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++CONFIG_MTD_NAND=y
++# CONFIG_MTD_NAND_VERIFY_WRITE is not set
++# CONFIG_MTD_NAND_ECC_SMC is not set
++# CONFIG_MTD_NAND_MUSEUM_IDS is not set
++CONFIG_MTD_NAND_IDS=y
++# CONFIG_MTD_NAND_S3C2410 is not set
++CONFIG_MTD_NAND_S3C=y
++# CONFIG_MTD_NAND_S3C_DEBUG is not set
++CONFIG_MTD_NO_ECC_WARNING=y
++CONFIG_MTD_NAND_S3C_HWECC=y
++CONFIG_S3C_LARGEPAGE_NAND=y
++# CONFIG_MTD_NAND_DISKONCHIP is not set
++# CONFIG_MTD_NAND_NANDSIM is not set
++# CONFIG_MTD_NAND_PLATFORM is not set
++# CONFIG_MTD_ALAUDA is not set
++# CONFIG_MTD_ONENAND is not set
++
++#
++# UBI - Unsorted block images
++#
++# CONFIG_MTD_UBI is not set
++CONFIG_PARPORT=y
++# CONFIG_PARPORT_PC is not set
++# CONFIG_PARPORT_GSC is not set
++# CONFIG_PARPORT_AX88796 is not set
++CONFIG_PARPORT_1284=y
++# CONFIG_PNP is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++CONFIG_BLK_DEV_NBD=m
++# CONFIG_BLK_DEV_UB is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=16
++CONFIG_BLK_DEV_RAM_SIZE=4096
++CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
++# CONFIG_CDROM_PKTCDVD is not set
++CONFIG_ATA_OVER_ETH=m
++CONFIG_MISC_DEVICES=y
++# CONFIG_EEPROM_93CX6 is not set
++CONFIG_IDE=y
++CONFIG_BLK_DEV_IDE=y
++
++#
++# Please see Documentation/ide.txt for help/info on IDE drives
++#
++# CONFIG_BLK_DEV_IDE_SATA is not set
++CONFIG_BLK_DEV_IDEDISK=y
++# CONFIG_IDEDISK_MULTI_MODE is not set
++CONFIG_BLK_DEV_IDECD=y
++CONFIG_BLK_DEV_IDETAPE=m
++CONFIG_BLK_DEV_IDEFLOPPY=m
++# CONFIG_IDE_TASK_IOCTL is not set
++CONFIG_IDE_PROC_FS=y
++
++#
++# IDE chipset support/bugfixes
++#
++CONFIG_IDE_GENERIC=y
++# CONFIG_BLK_DEV_PLATFORM is not set
++# CONFIG_IDE_ARM is not set
++
++#
++# Other IDE chipsets support
++#
++
++#
++# Note: most of these also require special kernel boot parameters
++#
++# CONFIG_BLK_DEV_4DRIVES is not set
++# CONFIG_BLK_DEV_ALI14XX is not set
++# CONFIG_BLK_DEV_DTC2278 is not set
++# CONFIG_BLK_DEV_HT6560B is not set
++# CONFIG_BLK_DEV_QD65XX is not set
++# CONFIG_BLK_DEV_UMC8672 is not set
++# CONFIG_BLK_DEV_IDEDMA is not set
++CONFIG_IDE_ARCH_OBSOLETE_INIT=y
++# CONFIG_BLK_DEV_HD is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++# CONFIG_SCSI is not set
++# CONFIG_SCSI_DMA is not set
++# CONFIG_SCSI_NETLINK is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++# CONFIG_ARCNET is not set
++# CONFIG_PHYLIB is not set
++CONFIG_NET_ETHERNET=y
++CONFIG_MII=y
++# CONFIG_AX88796 is not set
++# CONFIG_NET_VENDOR_3COM is not set
++# CONFIG_NET_VENDOR_SMC is not set
++# CONFIG_SMC91X is not set
++# CONFIG_DM9000 is not set
++# CONFIG_NET_VENDOR_RACAL is not set
++# CONFIG_AT1700 is not set
++# CONFIG_DEPCA is not set
++# CONFIG_HP100 is not set
++# CONFIG_NET_ISA is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++CONFIG_NET_PCI=y
++# CONFIG_AC3200 is not set
++# CONFIG_APRICOT is not set
++# CONFIG_B44 is not set
++# CONFIG_CS89x0 is not set
++# CONFIG_NET_POCKET is not set
++CONFIG_NETDEV_1000=y
++CONFIG_NETDEV_10000=y
++# CONFIG_TR is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++# CONFIG_WLAN_80211 is not set
++
++#
++# USB Network Adapters
++#
++# CONFIG_USB_CATC is not set
++# CONFIG_USB_KAWETH is not set
++# CONFIG_USB_PEGASUS is not set
++# CONFIG_USB_RTL8150 is not set
++# CONFIG_USB_USBNET is not set
++# CONFIG_WAN is not set
++# CONFIG_PLIP is not set
++# CONFIG_PPP is not set
++# CONFIG_SLIP is not set
++# CONFIG_SHAPER is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++CONFIG_INPUT_MOUSEDEV_PSAUX=y
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
++# CONFIG_INPUT_JOYDEV is not set
++# CONFIG_INPUT_TSDEV is not set
++# CONFIG_INPUT_EVDEV is not set
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++# CONFIG_KEYBOARD_GPIO is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++CONFIG_MOUSE_PS2_LOGIPS2PP=y
++CONFIG_MOUSE_PS2_SYNAPTICS=y
++CONFIG_MOUSE_PS2_LIFEBOOK=y
++CONFIG_MOUSE_PS2_TRACKPOINT=y
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_APPLETOUCH is not set
++# CONFIG_MOUSE_INPORT is not set
++# CONFIG_MOUSE_LOGIBM is not set
++# CONFIG_MOUSE_PC110PAD is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_MOUSE_GPIO is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++# CONFIG_INPUT_TOUCHSCREEN is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++# CONFIG_SERIO_PARKBD is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++CONFIG_SERIAL_NONSTANDARD=y
++# CONFIG_COMPUTONE is not set
++# CONFIG_ROCKETPORT is not set
++# CONFIG_CYCLADES is not set
++# CONFIG_DIGIEPCA is not set
++# CONFIG_MOXA_INTELLIO is not set
++# CONFIG_MOXA_SMARTIO is not set
++# CONFIG_MOXA_SMARTIO_NEW is not set
++# CONFIG_N_HDLC is not set
++# CONFIG_RISCOM8 is not set
++# CONFIG_SPECIALIX is not set
++# CONFIG_SX is not set
++# CONFIG_RIO is not set
++# CONFIG_STALDRV is not set
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_NR_UARTS=8
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++CONFIG_SERIAL_8250_EXTENDED=y
++CONFIG_SERIAL_8250_MANY_PORTS=y
++# CONFIG_SERIAL_8250_FOURPORT is not set
++# CONFIG_SERIAL_8250_ACCENT is not set
++# CONFIG_SERIAL_8250_BOCA is not set
++# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
++# CONFIG_SERIAL_8250_HUB6 is not set
++CONFIG_SERIAL_8250_SHARE_IRQ=y
++# CONFIG_SERIAL_8250_DETECT_IRQ is not set
++# CONFIG_SERIAL_8250_RSA is not set
++
++#
++# Non-8250 serial port support
++#
++CONFIG_SERIAL_S3C2410=y
++CONFIG_SERIAL_S3C2410_CONSOLE=y
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++CONFIG_PRINTER=y
++# CONFIG_LP_CONSOLE is not set
++CONFIG_PPDEV=y
++# CONFIG_IPMI_HANDLER is not set
++CONFIG_HW_RANDOM=y
++# CONFIG_NVRAM is not set
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_DEVPORT=y
++CONFIG_I2C=y
++CONFIG_I2C_BOARDINFO=y
++CONFIG_I2C_CHARDEV=m
++
++#
++# I2C Algorithms
++#
++CONFIG_I2C_ALGOBIT=m
++# CONFIG_I2C_ALGOPCF is not set
++# CONFIG_I2C_ALGOPCA is not set
++
++#
++# I2C Hardware Bus support
++#
++# CONFIG_I2C_ELEKTOR is not set
++# CONFIG_I2C_GPIO is not set
++# CONFIG_I2C_OCORES is not set
++# CONFIG_I2C_PARPORT is not set
++# CONFIG_I2C_PARPORT_LIGHT is not set
++CONFIG_I2C_S3C2410=y
++# CONFIG_I2C_SIMTEC is not set
++# CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_STUB is not set
++# CONFIG_I2C_TINY_USB is not set
++# CONFIG_I2C_PCA_ISA is not set
++
++#
++# Miscellaneous I2C Chip support
++#
++# CONFIG_SENSORS_DS1337 is not set
++# CONFIG_SENSORS_DS1374 is not set
++# CONFIG_DS1682 is not set
++CONFIG_SENSORS_EEPROM=m
++# CONFIG_SENSORS_PCF8574 is not set
++# CONFIG_SENSORS_PCA9539 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_SENSORS_MAX6875 is not set
++# CONFIG_SENSORS_TSL2550 is not set
++# CONFIG_I2C_DEBUG_CORE is not set
++# CONFIG_I2C_DEBUG_ALGO is not set
++# CONFIG_I2C_DEBUG_BUS is not set
++# CONFIG_I2C_DEBUG_CHIP is not set
++
++#
++# SPI support
++#
++CONFIG_SPI=y
++# CONFIG_SPI_DEBUG is not set
++CONFIG_SPI_MASTER=y
++
++#
++# SPI Master Controller Drivers
++#
++CONFIG_SPI_BITBANG=m
++# CONFIG_SPI_BUTTERFLY is not set
++# CONFIG_SPI_LM70_LLP is not set
++CONFIG_SPI_S3C24XX=m
++CONFIG_SPI_S3C24XX_GPIO=m
++
++#
++# SPI Protocol Masters
++#
++# CONFIG_SPI_AT25 is not set
++# CONFIG_SPI_SPIDEV is not set
++# CONFIG_SPI_TLE62X0 is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++CONFIG_HWMON=y
++CONFIG_HWMON_VID=m
++# CONFIG_SENSORS_AD7418 is not set
++# CONFIG_SENSORS_ADM1021 is not set
++# CONFIG_SENSORS_ADM1025 is not set
++# CONFIG_SENSORS_ADM1026 is not set
++# CONFIG_SENSORS_ADM1029 is not set
++# CONFIG_SENSORS_ADM1031 is not set
++# CONFIG_SENSORS_ADM9240 is not set
++# CONFIG_SENSORS_ADT7470 is not set
++# CONFIG_SENSORS_ATXP1 is not set
++# CONFIG_SENSORS_DS1621 is not set
++# CONFIG_SENSORS_F71805F is not set
++# CONFIG_SENSORS_F71882FG is not set
++# CONFIG_SENSORS_F75375S is not set
++# CONFIG_SENSORS_GL518SM is not set
++# CONFIG_SENSORS_GL520SM is not set
++# CONFIG_SENSORS_IT87 is not set
++# CONFIG_SENSORS_LM63 is not set
++# CONFIG_SENSORS_LM70 is not set
++CONFIG_SENSORS_LM75=m
++# CONFIG_SENSORS_LM77 is not set
++CONFIG_SENSORS_LM78=m
++# CONFIG_SENSORS_LM80 is not set
++# CONFIG_SENSORS_LM83 is not set
++CONFIG_SENSORS_LM85=m
++# CONFIG_SENSORS_LM87 is not set
++# CONFIG_SENSORS_LM90 is not set
++# CONFIG_SENSORS_LM92 is not set
++# CONFIG_SENSORS_LM93 is not set
++# CONFIG_SENSORS_MAX1619 is not set
++# CONFIG_SENSORS_MAX6650 is not set
++# CONFIG_SENSORS_PC87360 is not set
++# CONFIG_SENSORS_PC87427 is not set
++# CONFIG_SENSORS_DME1737 is not set
++# CONFIG_SENSORS_SMSC47M1 is not set
++# CONFIG_SENSORS_SMSC47M192 is not set
++# CONFIG_SENSORS_SMSC47B397 is not set
++# CONFIG_SENSORS_THMC50 is not set
++# CONFIG_SENSORS_VT1211 is not set
++# CONFIG_SENSORS_W83781D is not set
++# CONFIG_SENSORS_W83791D is not set
++# CONFIG_SENSORS_W83792D is not set
++# CONFIG_SENSORS_W83793 is not set
++# CONFIG_SENSORS_W83L785TS is not set
++# CONFIG_SENSORS_W83627HF is not set
++# CONFIG_SENSORS_W83627EHF is not set
++# CONFIG_HWMON_DEBUG_CHIP is not set
++CONFIG_WATCHDOG=y
++# CONFIG_WATCHDOG_NOWAYOUT is not set
++
++#
++# Watchdog Device Drivers
++#
++# CONFIG_SOFT_WATCHDOG is not set
++CONFIG_S3C2410_WATCHDOG=y
++
++#
++# ISA-based Watchdog Cards
++#
++# CONFIG_PCWATCHDOG is not set
++# CONFIG_MIXCOMWD is not set
++# CONFIG_WDT is not set
++
++#
++# USB-based Watchdog Cards
++#
++# CONFIG_USBPCWATCHDOG is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++CONFIG_DAB=y
++# CONFIG_USB_DABUSB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++CONFIG_FIRMWARE_EDID=y
++# CONFIG_FB_DDC is not set
++# CONFIG_FB_CFB_FILLRECT is not set
++# CONFIG_FB_CFB_COPYAREA is not set
++# CONFIG_FB_CFB_IMAGEBLIT is not set
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++CONFIG_FB_MODE_HELPERS=y
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++CONFIG_FB_S3C=y
++# CONFIG_FB_S3C_LTV350QV is not set
++CONFIG_FB_S3C_LTE480WV=y
++CONFIG_FB_S3C_BPP=y
++# CONFIG_FB_S3C_BPP_8 is not set
++CONFIG_FB_S3C_BPP_16=y
++# CONFIG_FB_S3C_BPP_24 is not set
++# CONFIG_FB_S3C_BPP_32 is not set
++CONFIG_FB_S3C_NUM=1
++# CONFIG_FB_S3C_VIRTUAL_SCREEN is not set
++# CONFIG_FB_S3C_DOUBLE_BUFFERING is not set
++# CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_S3C2410 is not set
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++# CONFIG_MDA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++# CONFIG_LOGO_LINUX_CLUT224 is not set
++CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224=y
++
++#
++# Sound
++#
++# CONFIG_SOUND is not set
++CONFIG_HID_SUPPORT=y
++CONFIG_HID=y
++# CONFIG_HID_DEBUG is not set
++# CONFIG_HIDRAW is not set
++
++#
++# USB Input Devices
++#
++# CONFIG_USB_HID is not set
++
++#
++# USB HID Boot Protocol drivers
++#
++# CONFIG_USB_KBD is not set
++# CONFIG_USB_MOUSE is not set
++CONFIG_USB_SUPPORT=y
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
++# CONFIG_USB_ARCH_HAS_EHCI is not set
++CONFIG_USB=y
++# CONFIG_USB_DEBUG is not set
++
++#
++# Miscellaneous USB options
++#
++CONFIG_USB_DEVICEFS=y
++CONFIG_USB_DEVICE_CLASS=y
++# CONFIG_USB_DYNAMIC_MINORS is not set
++# CONFIG_USB_SUSPEND is not set
++# CONFIG_USB_PERSIST is not set
++# CONFIG_USB_OTG is not set
++
++#
++# USB Host Controller Drivers
++#
++# CONFIG_USB_ISP116X_HCD is not set
++CONFIG_USB_OHCI_HCD=y
++# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
++# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
++CONFIG_USB_OHCI_LITTLE_ENDIAN=y
++# CONFIG_USB_SL811_HCD is not set
++# CONFIG_USB_R8A66597_HCD is not set
++
++#
++# USB Device Class drivers
++#
++# CONFIG_USB_ACM is not set
++# CONFIG_USB_PRINTER is not set
++
++#
++# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
++#
++
++#
++# may also be needed; see USB_STORAGE Help for more information
++#
++# CONFIG_USB_LIBUSUAL is not set
++
++#
++# USB Imaging devices
++#
++# CONFIG_USB_MDC800 is not set
++CONFIG_USB_MON=y
++
++#
++# USB port drivers
++#
++# CONFIG_USB_USS720 is not set
++
++#
++# USB Serial Converter support
++#
++# CONFIG_USB_SERIAL is not set
++
++#
++# USB Miscellaneous drivers
++#
++# CONFIG_USB_EMI62 is not set
++# CONFIG_USB_EMI26 is not set
++# CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_AUERSWALD is not set
++# CONFIG_USB_RIO500 is not set
++# CONFIG_USB_LEGOTOWER is not set
++# CONFIG_USB_LCD is not set
++# CONFIG_USB_BERRY_CHARGE is not set
++# CONFIG_USB_LED is not set
++# CONFIG_USB_CYPRESS_CY7C63 is not set
++# CONFIG_USB_CYTHERM is not set
++# CONFIG_USB_PHIDGET is not set
++# CONFIG_USB_IDMOUSE is not set
++# CONFIG_USB_FTDI_ELAN is not set
++# CONFIG_USB_APPLEDISPLAY is not set
++# CONFIG_USB_LD is not set
++# CONFIG_USB_TRANCEVIBRATOR is not set
++# CONFIG_USB_IOWARRIOR is not set
++# CONFIG_USB_TEST is not set
++
++#
++# USB DSL modem support
++#
++
++#
++# USB Gadget Support
++#
++# CONFIG_USB_GADGET is not set
++# CONFIG_MMC is not set
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=m
++
++#
++# LED drivers
++#
++CONFIG_LEDS_S3C24XX=m
++# CONFIG_LEDS_GPIO is not set
++
++#
++# LED Triggers
++#
++CONFIG_LEDS_TRIGGERS=y
++CONFIG_LEDS_TRIGGER_TIMER=m
++# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
++CONFIG_LEDS_TRIGGER_HEARTBEAT=m
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# I2C RTC drivers
++#
++# CONFIG_RTC_DRV_DS1307 is not set
++# CONFIG_RTC_DRV_DS1374 is not set
++# CONFIG_RTC_DRV_DS1672 is not set
++# CONFIG_RTC_DRV_MAX6900 is not set
++# CONFIG_RTC_DRV_RS5C372 is not set
++# CONFIG_RTC_DRV_ISL1208 is not set
++# CONFIG_RTC_DRV_X1205 is not set
++# CONFIG_RTC_DRV_PCF8563 is not set
++# CONFIG_RTC_DRV_PCF8583 is not set
++# CONFIG_RTC_DRV_M41T80 is not set
++
++#
++# SPI RTC drivers
++#
++# CONFIG_RTC_DRV_RS5C348 is not set
++# CONFIG_RTC_DRV_MAX6902 is not set
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_S3C=y
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++CONFIG_EXT3_FS=y
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
++# CONFIG_EXT4DEV_FS is not set
++CONFIG_JBD=y
++CONFIG_FS_MBCACHE=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_MINIX_FS is not set
++CONFIG_ROMFS_FS=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++CONFIG_MSDOS_FS=y
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
++# CONFIG_JFFS2_SUMMARY is not set
++# CONFIG_JFFS2_FS_XATTR is not set
++# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
++CONFIG_JFFS2_ZLIB=y
++# CONFIG_JFFS2_LZO is not set
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++CONFIG_CRAMFS=y
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=y
++# CONFIG_NFS_V3 is not set
++# CONFIG_NFS_V4 is not set
++# CONFIG_NFS_DIRECTIO is not set
++# CONFIG_NFSD is not set
++CONFIG_ROOT_NFS=y
++CONFIG_LOCKD=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=y
++# CONFIG_SUNRPC_BIND34 is not set
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++CONFIG_PARTITION_ADVANCED=y
++# CONFIG_ACORN_PARTITION is not set
++# CONFIG_OSF_PARTITION is not set
++# CONFIG_AMIGA_PARTITION is not set
++# CONFIG_ATARI_PARTITION is not set
++# CONFIG_MAC_PARTITION is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_BSD_DISKLABEL=y
++# CONFIG_MINIX_SUBPARTITION is not set
++CONFIG_SOLARIS_X86_PARTITION=y
++# CONFIG_UNIXWARE_DISKLABEL is not set
++# CONFIG_LDM_PARTITION is not set
++# CONFIG_SGI_PARTITION is not set
++# CONFIG_ULTRIX_PARTITION is not set
++# CONFIG_SUN_PARTITION is not set
++# CONFIG_KARMA_PARTITION is not set
++# CONFIG_EFI_PARTITION is not set
++# CONFIG_SYSV68_PARTITION is not set
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++# CONFIG_NLS_CODEPAGE_437 is not set
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++# CONFIG_NLS_ASCII is not set
++# CONFIG_NLS_ISO8859_1 is not set
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++CONFIG_INSTRUMENTATION=y
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_MAGIC_SYSRQ=y
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_TIMER_STATS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++CONFIG_DEBUG_MUTEXES=y
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++CONFIG_FRAME_POINTER=y
++CONFIG_FORCED_INLINING=y
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_SAMPLES is not set
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++CONFIG_DEBUG_LL=y
++# CONFIG_DEBUG_ICEDCC is not set
++CONFIG_DEBUG_S3C_PORT=y
++CONFIG_DEBUG_S3C_UART=0
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff --git a/arch/arm/configs/smdk2416ramdisk_defconfig b/arch/arm/configs/smdk2416ramdisk_defconfig
+new file mode 100644
+index 0000000..4ec53a8
+--- /dev/null
++++ b/arch/arm/configs/smdk2416ramdisk_defconfig
+@@ -0,0 +1,1447 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.24.2
++# Mon Apr 7 10:09:55 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_AUDIT is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=16
++# CONFIG_CGROUPS is not set
++CONFIG_FAIR_GROUP_SCHED=y
++CONFIG_FAIR_USER_SCHED=y
++# CONFIG_FAIR_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++# CONFIG_RELAY is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++# CONFIG_EMBEDDED is not set
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++CONFIG_PLAT_S3C24XX=y
++CONFIG_CPU_S3C244X=y
++CONFIG_S3C2410_DMA=y
++# CONFIG_S3C2410_DMA_DEBUG is not set
++CONFIG_PLAT_S3C=y
++CONFIG_CPU_LLSERIAL_S3C2410=y
++CONFIG_CPU_LLSERIAL_S3C2440=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_WATCHDOG is not set
++# CONFIG_S3C_BOOT_ERROR_RESET is not set
++
++#
++# Power management
++#
++# CONFIG_S3C2410_PM_DEBUG is not set
++# CONFIG_S3C2410_PM_CHECK is not set
++CONFIG_S3C_LOWLEVEL_UART_PORT=0
++CONFIG_SPLIT_ROOT_FILESYSTEM=y
++CONFIG_MACH_SMDK=y
++
++#
++# S3C2400 Machines
++#
++CONFIG_CPU_S3C2410=y
++CONFIG_CPU_S3C2410_DMA=y
++CONFIG_S3C2410_PM=y
++CONFIG_S3C2410_GPIO=y
++CONFIG_S3C2410_CLOCK=y
++
++#
++# S3C2410 Machines
++#
++CONFIG_ARCH_SMDK2410=y
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++CONFIG_CPU_S3C2440=y
++CONFIG_S3C2440_DMA=y
++
++#
++# S3C2440 Machines
++#
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++CONFIG_ARCH_S3C2440=y
++# CONFIG_MACH_NEXCODER_2440 is not set
++CONFIG_SMDK2440_CPU2440=y
++
++#
++# S3C2442 Machines
++#
++# CONFIG_SMDK2440_CPU2442 is not set
++
++#
++# S3C2443 Machines
++#
++# CONFIG_MACH_SMDK2443 is not set
++
++#
++# S3C2450 Machines
++#
++# CONFIG_MACH_SMDK2450 is not set
++CONFIG_CPU_S3C2416=y
++CONFIG_S3C2416_DMA=y
++
++#
++# S3C2416 Machines
++#
++CONFIG_MACH_SMDK2416=y
++
++#
++# S3C6400 Machines
++#
++# CONFIG_MACH_SMDK6400 is not set
++
++#
++# S3C6410 Machines
++#
++# CONFIG_MACH_SMDK6410 is not set
++# CONFIG_MACH_FPGA6410 is not set
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++# CONFIG_CPU_ARM920T is not set
++CONFIG_CPU_ARM926T=y
++CONFIG_CPU_32v5=y
++CONFIG_CPU_ABRT_EV5TJ=y
++CONFIG_CPU_CACHE_VIVT=y
++CONFIG_CPU_COPY_V4WB=y
++CONFIG_CPU_TLB_V4WBI=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++CONFIG_ARM_THUMB=y
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
++# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++CONFIG_ISA=y
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++# CONFIG_PREEMPT is not set
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=200
++CONFIG_AEABI=y
++CONFIG_OABI_COMPAT=y
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4096
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x30800000,8M console=ttySAC0,115200 init=/linuxrc"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++# CONFIG_FPE_NWFPE_XP is not set
++# CONFIG_FPE_FASTFPE is not set
++# CONFIG_VFP is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_AOUT=y
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++CONFIG_PM=y
++# CONFIG_PM_LEGACY is not set
++# CONFIG_PM_DEBUG is not set
++CONFIG_PM_SLEEP=y
++CONFIG_SUSPEND_UP_POSSIBLE=y
++CONFIG_SUSPEND=y
++# CONFIG_APM_EMULATION is not set
++
++#
++# DVFS support
++#
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++# CONFIG_PACKET is not set
++CONFIG_UNIX=y
++CONFIG_XFRM=y
++# CONFIG_XFRM_USER is not set
++# CONFIG_XFRM_SUB_POLICY is not set
++# CONFIG_XFRM_MIGRATE is not set
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++CONFIG_IP_PNP=y
++# CONFIG_IP_PNP_DHCP is not set
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++CONFIG_INET_XFRM_MODE_TRANSPORT=y
++CONFIG_INET_XFRM_MODE_TUNNEL=y
++CONFIG_INET_XFRM_MODE_BEET=y
++# CONFIG_INET_LRO is not set
++CONFIG_INET_DIAG=y
++CONFIG_INET_TCP_DIAG=y
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IPV6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++# CONFIG_CFG80211 is not set
++# CONFIG_WIRELESS_EXT is not set
++# CONFIG_MAC80211 is not set
++# CONFIG_IEEE80211 is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++# CONFIG_FW_LOADER is not set
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++CONFIG_MTD_REDBOOT_PARTS=y
++CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
++CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
++# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
++CONFIG_MTD_CMDLINE_PARTS=y
++# CONFIG_MTD_AFS_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++CONFIG_MTD_CFI=y
++CONFIG_MTD_JEDECPROBE=y
++CONFIG_MTD_GEN_PROBE=y
++# CONFIG_MTD_CFI_ADV_OPTIONS is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++CONFIG_MTD_CFI_INTELEXT=y
++CONFIG_MTD_CFI_AMDSTD=y
++# CONFIG_MTD_CFI_STAA is not set
++CONFIG_MTD_CFI_UTIL=y
++# CONFIG_MTD_RAM is not set
++CONFIG_MTD_ROM=y
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PHYSMAP is not set
++# CONFIG_MTD_ARM_INTEGRATOR is not set
++# CONFIG_MTD_IMPA7 is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++# CONFIG_MTD_DATAFLASH is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++CONFIG_MTD_NAND=y
++# CONFIG_MTD_NAND_VERIFY_WRITE is not set
++# CONFIG_MTD_NAND_ECC_SMC is not set
++# CONFIG_MTD_NAND_MUSEUM_IDS is not set
++CONFIG_MTD_NAND_IDS=y
++# CONFIG_MTD_NAND_S3C2410 is not set
++CONFIG_MTD_NAND_S3C=y
++# CONFIG_MTD_NAND_S3C_DEBUG is not set
++CONFIG_MTD_NO_ECC_WARNING=y
++CONFIG_MTD_NAND_S3C_HWECC=y
++CONFIG_S3C_LARGEPAGE_NAND=y
++# CONFIG_MTD_NAND_DISKONCHIP is not set
++# CONFIG_MTD_NAND_NANDSIM is not set
++# CONFIG_MTD_NAND_PLATFORM is not set
++# CONFIG_MTD_ALAUDA is not set
++# CONFIG_MTD_ONENAND is not set
++
++#
++# UBI - Unsorted block images
++#
++# CONFIG_MTD_UBI is not set
++CONFIG_PARPORT=y
++# CONFIG_PARPORT_PC is not set
++# CONFIG_PARPORT_GSC is not set
++# CONFIG_PARPORT_AX88796 is not set
++CONFIG_PARPORT_1284=y
++# CONFIG_PNP is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++CONFIG_BLK_DEV_NBD=m
++# CONFIG_BLK_DEV_UB is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=16
++CONFIG_BLK_DEV_RAM_SIZE=8192
++CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
++# CONFIG_CDROM_PKTCDVD is not set
++CONFIG_ATA_OVER_ETH=m
++CONFIG_MISC_DEVICES=y
++# CONFIG_EEPROM_93CX6 is not set
++CONFIG_IDE=y
++CONFIG_BLK_DEV_IDE=y
++
++#
++# Please see Documentation/ide.txt for help/info on IDE drives
++#
++# CONFIG_BLK_DEV_IDE_SATA is not set
++CONFIG_BLK_DEV_IDEDISK=y
++# CONFIG_IDEDISK_MULTI_MODE is not set
++CONFIG_BLK_DEV_IDECD=y
++CONFIG_BLK_DEV_IDETAPE=m
++CONFIG_BLK_DEV_IDEFLOPPY=m
++# CONFIG_IDE_TASK_IOCTL is not set
++CONFIG_IDE_PROC_FS=y
++
++#
++# IDE chipset support/bugfixes
++#
++CONFIG_IDE_GENERIC=y
++# CONFIG_BLK_DEV_PLATFORM is not set
++# CONFIG_IDE_ARM is not set
++
++#
++# Other IDE chipsets support
++#
++
++#
++# Note: most of these also require special kernel boot parameters
++#
++# CONFIG_BLK_DEV_4DRIVES is not set
++# CONFIG_BLK_DEV_ALI14XX is not set
++# CONFIG_BLK_DEV_DTC2278 is not set
++# CONFIG_BLK_DEV_HT6560B is not set
++# CONFIG_BLK_DEV_QD65XX is not set
++# CONFIG_BLK_DEV_UMC8672 is not set
++# CONFIG_BLK_DEV_IDEDMA is not set
++CONFIG_IDE_ARCH_OBSOLETE_INIT=y
++# CONFIG_BLK_DEV_HD is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++# CONFIG_SCSI is not set
++# CONFIG_SCSI_DMA is not set
++# CONFIG_SCSI_NETLINK is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++# CONFIG_ARCNET is not set
++# CONFIG_PHYLIB is not set
++CONFIG_NET_ETHERNET=y
++CONFIG_MII=y
++# CONFIG_AX88796 is not set
++# CONFIG_NET_VENDOR_3COM is not set
++# CONFIG_NET_VENDOR_SMC is not set
++# CONFIG_SMC91X is not set
++# CONFIG_DM9000 is not set
++CONFIG_SMC911X=y
++# CONFIG_NET_VENDOR_RACAL is not set
++# CONFIG_AT1700 is not set
++# CONFIG_DEPCA is not set
++# CONFIG_HP100 is not set
++# CONFIG_NET_ISA is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++CONFIG_NET_PCI=y
++# CONFIG_AC3200 is not set
++# CONFIG_APRICOT is not set
++# CONFIG_B44 is not set
++# CONFIG_CS89x0 is not set
++# CONFIG_NET_POCKET is not set
++CONFIG_NETDEV_1000=y
++CONFIG_NETDEV_10000=y
++# CONFIG_TR is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++# CONFIG_WLAN_80211 is not set
++
++#
++# USB Network Adapters
++#
++# CONFIG_USB_CATC is not set
++# CONFIG_USB_KAWETH is not set
++# CONFIG_USB_PEGASUS is not set
++# CONFIG_USB_RTL8150 is not set
++# CONFIG_USB_USBNET is not set
++# CONFIG_WAN is not set
++# CONFIG_PLIP is not set
++# CONFIG_PPP is not set
++# CONFIG_SLIP is not set
++# CONFIG_SHAPER is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++CONFIG_INPUT_MOUSEDEV_PSAUX=y
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
++# CONFIG_INPUT_JOYDEV is not set
++CONFIG_INPUT_TSDEV=y
++CONFIG_INPUT_TSDEV_SCREEN_X=480
++CONFIG_INPUT_TSDEV_SCREEN_Y=640
++CONFIG_INPUT_EVDEV=y
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++# CONFIG_KEYBOARD_GPIO is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++CONFIG_MOUSE_PS2_LOGIPS2PP=y
++CONFIG_MOUSE_PS2_SYNAPTICS=y
++CONFIG_MOUSE_PS2_LIFEBOOK=y
++CONFIG_MOUSE_PS2_TRACKPOINT=y
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_APPLETOUCH is not set
++# CONFIG_MOUSE_INPORT is not set
++# CONFIG_MOUSE_LOGIBM is not set
++# CONFIG_MOUSE_PC110PAD is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_MOUSE_GPIO is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++CONFIG_INPUT_TOUCHSCREEN=y
++# CONFIG_TOUCHSCREEN_ADS7846 is not set
++CONFIG_TOUCHSCREEN_S3C=y
++# CONFIG_TOUCHSCREEN_FUJITSU is not set
++# CONFIG_TOUCHSCREEN_GUNZE is not set
++# CONFIG_TOUCHSCREEN_ELO is not set
++# CONFIG_TOUCHSCREEN_MTOUCH is not set
++# CONFIG_TOUCHSCREEN_MK712 is not set
++# CONFIG_TOUCHSCREEN_PENMOUNT is not set
++# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
++# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
++# CONFIG_TOUCHSCREEN_UCB1400 is not set
++# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++# CONFIG_SERIO_PARKBD is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++CONFIG_SERIAL_NONSTANDARD=y
++# CONFIG_COMPUTONE is not set
++# CONFIG_ROCKETPORT is not set
++# CONFIG_CYCLADES is not set
++# CONFIG_DIGIEPCA is not set
++# CONFIG_MOXA_INTELLIO is not set
++# CONFIG_MOXA_SMARTIO is not set
++# CONFIG_MOXA_SMARTIO_NEW is not set
++# CONFIG_N_HDLC is not set
++# CONFIG_RISCOM8 is not set
++# CONFIG_SPECIALIX is not set
++# CONFIG_SX is not set
++# CONFIG_RIO is not set
++# CONFIG_STALDRV is not set
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_NR_UARTS=8
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++CONFIG_SERIAL_8250_EXTENDED=y
++CONFIG_SERIAL_8250_MANY_PORTS=y
++# CONFIG_SERIAL_8250_FOURPORT is not set
++# CONFIG_SERIAL_8250_ACCENT is not set
++# CONFIG_SERIAL_8250_BOCA is not set
++# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
++# CONFIG_SERIAL_8250_HUB6 is not set
++CONFIG_SERIAL_8250_SHARE_IRQ=y
++# CONFIG_SERIAL_8250_DETECT_IRQ is not set
++# CONFIG_SERIAL_8250_RSA is not set
++
++#
++# Non-8250 serial port support
++#
++CONFIG_SERIAL_S3C2410=y
++CONFIG_SERIAL_S3C2410_CONSOLE=y
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++CONFIG_PRINTER=y
++# CONFIG_LP_CONSOLE is not set
++CONFIG_PPDEV=y
++# CONFIG_IPMI_HANDLER is not set
++CONFIG_HW_RANDOM=y
++# CONFIG_NVRAM is not set
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_DEVPORT=y
++CONFIG_I2C=y
++CONFIG_I2C_BOARDINFO=y
++CONFIG_I2C_CHARDEV=m
++
++#
++# I2C Algorithms
++#
++CONFIG_I2C_ALGOBIT=m
++# CONFIG_I2C_ALGOPCF is not set
++# CONFIG_I2C_ALGOPCA is not set
++
++#
++# I2C Hardware Bus support
++#
++# CONFIG_I2C_ELEKTOR is not set
++# CONFIG_I2C_GPIO is not set
++# CONFIG_I2C_OCORES is not set
++# CONFIG_I2C_PARPORT is not set
++# CONFIG_I2C_PARPORT_LIGHT is not set
++CONFIG_I2C_S3C2410=y
++# CONFIG_I2C_SIMTEC is not set
++# CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_STUB is not set
++# CONFIG_I2C_TINY_USB is not set
++# CONFIG_I2C_PCA_ISA is not set
++
++#
++# Miscellaneous I2C Chip support
++#
++# CONFIG_SENSORS_DS1337 is not set
++# CONFIG_SENSORS_DS1374 is not set
++# CONFIG_DS1682 is not set
++CONFIG_SENSORS_EEPROM=m
++# CONFIG_SENSORS_PCF8574 is not set
++# CONFIG_SENSORS_PCA9539 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_SENSORS_MAX6875 is not set
++# CONFIG_SENSORS_TSL2550 is not set
++# CONFIG_I2C_DEBUG_CORE is not set
++# CONFIG_I2C_DEBUG_ALGO is not set
++# CONFIG_I2C_DEBUG_BUS is not set
++# CONFIG_I2C_DEBUG_CHIP is not set
++
++#
++# SPI support
++#
++CONFIG_SPI=y
++# CONFIG_SPI_DEBUG is not set
++CONFIG_SPI_MASTER=y
++
++#
++# SPI Master Controller Drivers
++#
++CONFIG_SPI_BITBANG=m
++# CONFIG_SPI_BUTTERFLY is not set
++# CONFIG_SPI_LM70_LLP is not set
++CONFIG_SPI_S3C24XX=m
++CONFIG_SPI_S3C24XX_GPIO=m
++
++#
++# SPI Protocol Masters
++#
++# CONFIG_SPI_AT25 is not set
++# CONFIG_SPI_SPIDEV is not set
++# CONFIG_SPI_TLE62X0 is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++CONFIG_HWMON=y
++CONFIG_HWMON_VID=m
++# CONFIG_SENSORS_AD7418 is not set
++# CONFIG_SENSORS_ADM1021 is not set
++# CONFIG_SENSORS_ADM1025 is not set
++# CONFIG_SENSORS_ADM1026 is not set
++# CONFIG_SENSORS_ADM1029 is not set
++# CONFIG_SENSORS_ADM1031 is not set
++# CONFIG_SENSORS_ADM9240 is not set
++# CONFIG_SENSORS_ADT7470 is not set
++# CONFIG_SENSORS_ATXP1 is not set
++# CONFIG_SENSORS_DS1621 is not set
++# CONFIG_SENSORS_F71805F is not set
++# CONFIG_SENSORS_F71882FG is not set
++# CONFIG_SENSORS_F75375S is not set
++# CONFIG_SENSORS_GL518SM is not set
++# CONFIG_SENSORS_GL520SM is not set
++# CONFIG_SENSORS_IT87 is not set
++# CONFIG_SENSORS_LM63 is not set
++# CONFIG_SENSORS_LM70 is not set
++CONFIG_SENSORS_LM75=m
++# CONFIG_SENSORS_LM77 is not set
++CONFIG_SENSORS_LM78=m
++# CONFIG_SENSORS_LM80 is not set
++# CONFIG_SENSORS_LM83 is not set
++CONFIG_SENSORS_LM85=m
++# CONFIG_SENSORS_LM87 is not set
++# CONFIG_SENSORS_LM90 is not set
++# CONFIG_SENSORS_LM92 is not set
++# CONFIG_SENSORS_LM93 is not set
++# CONFIG_SENSORS_MAX1619 is not set
++# CONFIG_SENSORS_MAX6650 is not set
++# CONFIG_SENSORS_PC87360 is not set
++# CONFIG_SENSORS_PC87427 is not set
++# CONFIG_SENSORS_DME1737 is not set
++# CONFIG_SENSORS_SMSC47M1 is not set
++# CONFIG_SENSORS_SMSC47M192 is not set
++# CONFIG_SENSORS_SMSC47B397 is not set
++# CONFIG_SENSORS_THMC50 is not set
++# CONFIG_SENSORS_VT1211 is not set
++# CONFIG_SENSORS_W83781D is not set
++# CONFIG_SENSORS_W83791D is not set
++# CONFIG_SENSORS_W83792D is not set
++# CONFIG_SENSORS_W83793 is not set
++# CONFIG_SENSORS_W83L785TS is not set
++# CONFIG_SENSORS_W83627HF is not set
++# CONFIG_SENSORS_W83627EHF is not set
++# CONFIG_HWMON_DEBUG_CHIP is not set
++CONFIG_WATCHDOG=y
++# CONFIG_WATCHDOG_NOWAYOUT is not set
++
++#
++# Watchdog Device Drivers
++#
++# CONFIG_SOFT_WATCHDOG is not set
++CONFIG_S3C2410_WATCHDOG=y
++
++#
++# ISA-based Watchdog Cards
++#
++# CONFIG_PCWATCHDOG is not set
++# CONFIG_MIXCOMWD is not set
++# CONFIG_WDT is not set
++
++#
++# USB-based Watchdog Cards
++#
++# CONFIG_USBPCWATCHDOG is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++CONFIG_DAB=y
++# CONFIG_USB_DABUSB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++CONFIG_FIRMWARE_EDID=y
++# CONFIG_FB_DDC is not set
++# CONFIG_FB_CFB_FILLRECT is not set
++# CONFIG_FB_CFB_COPYAREA is not set
++# CONFIG_FB_CFB_IMAGEBLIT is not set
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++CONFIG_FB_MODE_HELPERS=y
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++CONFIG_FB_S3C=y
++# CONFIG_FB_S3C_LTV350QV is not set
++CONFIG_FB_S3C_LTE480WV=y
++CONFIG_FB_S3C_BPP=y
++# CONFIG_FB_S3C_BPP_8 is not set
++CONFIG_FB_S3C_BPP_16=y
++# CONFIG_FB_S3C_BPP_24 is not set
++# CONFIG_FB_S3C_BPP_32 is not set
++CONFIG_FB_S3C_NUM=1
++# CONFIG_FB_S3C_VIRTUAL_SCREEN is not set
++# CONFIG_FB_S3C_DOUBLE_BUFFERING is not set
++# CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_S3C2410 is not set
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++# CONFIG_MDA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++# CONFIG_LOGO_LINUX_CLUT224 is not set
++CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224=y
++
++#
++# Sound
++#
++# CONFIG_SOUND is not set
++CONFIG_HID_SUPPORT=y
++CONFIG_HID=y
++# CONFIG_HID_DEBUG is not set
++# CONFIG_HIDRAW is not set
++
++#
++# USB Input Devices
++#
++# CONFIG_USB_HID is not set
++
++#
++# USB HID Boot Protocol drivers
++#
++# CONFIG_USB_KBD is not set
++# CONFIG_USB_MOUSE is not set
++CONFIG_USB_SUPPORT=y
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
++# CONFIG_USB_ARCH_HAS_EHCI is not set
++CONFIG_USB=y
++# CONFIG_USB_DEBUG is not set
++
++#
++# Miscellaneous USB options
++#
++CONFIG_USB_DEVICEFS=y
++CONFIG_USB_DEVICE_CLASS=y
++# CONFIG_USB_DYNAMIC_MINORS is not set
++# CONFIG_USB_SUSPEND is not set
++# CONFIG_USB_PERSIST is not set
++# CONFIG_USB_OTG is not set
++
++#
++# USB Host Controller Drivers
++#
++# CONFIG_USB_ISP116X_HCD is not set
++CONFIG_USB_OHCI_HCD=y
++# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
++# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
++CONFIG_USB_OHCI_LITTLE_ENDIAN=y
++# CONFIG_USB_SL811_HCD is not set
++# CONFIG_USB_R8A66597_HCD is not set
++
++#
++# USB Device Class drivers
++#
++# CONFIG_USB_ACM is not set
++# CONFIG_USB_PRINTER is not set
++
++#
++# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
++#
++
++#
++# may also be needed; see USB_STORAGE Help for more information
++#
++# CONFIG_USB_LIBUSUAL is not set
++
++#
++# USB Imaging devices
++#
++# CONFIG_USB_MDC800 is not set
++CONFIG_USB_MON=y
++
++#
++# USB port drivers
++#
++# CONFIG_USB_USS720 is not set
++
++#
++# USB Serial Converter support
++#
++# CONFIG_USB_SERIAL is not set
++
++#
++# USB Miscellaneous drivers
++#
++# CONFIG_USB_EMI62 is not set
++# CONFIG_USB_EMI26 is not set
++# CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_AUERSWALD is not set
++# CONFIG_USB_RIO500 is not set
++# CONFIG_USB_LEGOTOWER is not set
++# CONFIG_USB_LCD is not set
++# CONFIG_USB_BERRY_CHARGE is not set
++# CONFIG_USB_LED is not set
++# CONFIG_USB_CYPRESS_CY7C63 is not set
++# CONFIG_USB_CYTHERM is not set
++# CONFIG_USB_PHIDGET is not set
++# CONFIG_USB_IDMOUSE is not set
++# CONFIG_USB_FTDI_ELAN is not set
++# CONFIG_USB_APPLEDISPLAY is not set
++# CONFIG_USB_LD is not set
++# CONFIG_USB_TRANCEVIBRATOR is not set
++# CONFIG_USB_IOWARRIOR is not set
++# CONFIG_USB_TEST is not set
++
++#
++# USB DSL modem support
++#
++
++#
++# USB Gadget Support
++#
++# CONFIG_USB_GADGET is not set
++CONFIG_MMC=y
++# CONFIG_MMC_DEBUG is not set
++# CONFIG_MMC_UNSAFE_RESUME is not set
++
++#
++# MMC/SD Card Drivers
++#
++CONFIG_MMC_BLOCK=y
++CONFIG_MMC_BLOCK_BOUNCE=y
++# CONFIG_SDIO_UART is not set
++
++#
++# MMC/SD Host Controller Drivers
++#
++# CONFIG_MMC_S3C is not set
++CONFIG_HSMMC_S3C=y
++# CONFIG_USE_MMC_AS_ROOT is not set
++# CONFIG_HSMMC_S3C_IRQ_WORKAROUND is not set
++CONFIG_HSMMC_SCATTERGATHER=y
++# CONFIG_S3CMMC_DEBUG is not set
++# CONFIG_MMC_SPI is not set
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=m
++
++#
++# LED drivers
++#
++CONFIG_LEDS_S3C24XX=m
++# CONFIG_LEDS_GPIO is not set
++
++#
++# LED Triggers
++#
++CONFIG_LEDS_TRIGGERS=y
++CONFIG_LEDS_TRIGGER_TIMER=m
++# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
++CONFIG_LEDS_TRIGGER_HEARTBEAT=m
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# I2C RTC drivers
++#
++# CONFIG_RTC_DRV_DS1307 is not set
++# CONFIG_RTC_DRV_DS1374 is not set
++# CONFIG_RTC_DRV_DS1672 is not set
++# CONFIG_RTC_DRV_MAX6900 is not set
++# CONFIG_RTC_DRV_RS5C372 is not set
++# CONFIG_RTC_DRV_ISL1208 is not set
++# CONFIG_RTC_DRV_X1205 is not set
++# CONFIG_RTC_DRV_PCF8563 is not set
++# CONFIG_RTC_DRV_PCF8583 is not set
++# CONFIG_RTC_DRV_M41T80 is not set
++
++#
++# SPI RTC drivers
++#
++# CONFIG_RTC_DRV_RS5C348 is not set
++# CONFIG_RTC_DRV_MAX6902 is not set
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_S3C=y
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++CONFIG_EXT3_FS=y
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
++# CONFIG_EXT4DEV_FS is not set
++CONFIG_JBD=y
++CONFIG_FS_MBCACHE=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_MINIX_FS is not set
++CONFIG_ROMFS_FS=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++CONFIG_MSDOS_FS=y
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
++# CONFIG_JFFS2_SUMMARY is not set
++# CONFIG_JFFS2_FS_XATTR is not set
++# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
++CONFIG_JFFS2_ZLIB=y
++# CONFIG_JFFS2_LZO is not set
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++CONFIG_CRAMFS=y
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=y
++# CONFIG_NFS_V3 is not set
++# CONFIG_NFS_V4 is not set
++# CONFIG_NFS_DIRECTIO is not set
++# CONFIG_NFSD is not set
++CONFIG_ROOT_NFS=y
++CONFIG_LOCKD=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=y
++# CONFIG_SUNRPC_BIND34 is not set
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++CONFIG_PARTITION_ADVANCED=y
++# CONFIG_ACORN_PARTITION is not set
++# CONFIG_OSF_PARTITION is not set
++# CONFIG_AMIGA_PARTITION is not set
++# CONFIG_ATARI_PARTITION is not set
++# CONFIG_MAC_PARTITION is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_BSD_DISKLABEL=y
++# CONFIG_MINIX_SUBPARTITION is not set
++CONFIG_SOLARIS_X86_PARTITION=y
++# CONFIG_UNIXWARE_DISKLABEL is not set
++# CONFIG_LDM_PARTITION is not set
++# CONFIG_SGI_PARTITION is not set
++# CONFIG_ULTRIX_PARTITION is not set
++# CONFIG_SUN_PARTITION is not set
++# CONFIG_KARMA_PARTITION is not set
++# CONFIG_EFI_PARTITION is not set
++# CONFIG_SYSV68_PARTITION is not set
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++CONFIG_NLS_ASCII=y
++CONFIG_NLS_ISO8859_1=y
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++CONFIG_INSTRUMENTATION=y
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_MAGIC_SYSRQ=y
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_TIMER_STATS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++CONFIG_DEBUG_MUTEXES=y
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++CONFIG_FRAME_POINTER=y
++CONFIG_FORCED_INLINING=y
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_SAMPLES is not set
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++CONFIG_DEBUG_LL=y
++# CONFIG_DEBUG_ICEDCC is not set
++CONFIG_DEBUG_S3C_PORT=y
++CONFIG_DEBUG_S3C_UART=0
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff --git a/arch/arm/configs/smdk2443mtd_defconfig b/arch/arm/configs/smdk2443mtd_defconfig
+new file mode 100644
+index 0000000..280f3f0
+--- /dev/null
++++ b/arch/arm/configs/smdk2443mtd_defconfig
+@@ -0,0 +1,1439 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.24.2
++# Tue Mar 18 18:12:43 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_AUDIT is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=16
++# CONFIG_CGROUPS is not set
++CONFIG_FAIR_GROUP_SCHED=y
++CONFIG_FAIR_USER_SCHED=y
++# CONFIG_FAIR_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++# CONFIG_RELAY is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++# CONFIG_EMBEDDED is not set
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++CONFIG_PLAT_S3C24XX=y
++CONFIG_CPU_S3C244X=y
++CONFIG_S3C2410_DMA=y
++# CONFIG_S3C2410_DMA_DEBUG is not set
++CONFIG_PLAT_S3C=y
++CONFIG_CPU_LLSERIAL_S3C2410=y
++CONFIG_CPU_LLSERIAL_S3C2440=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_WATCHDOG is not set
++# CONFIG_S3C_BOOT_ERROR_RESET is not set
++
++#
++# Power management
++#
++# CONFIG_S3C2410_PM_DEBUG is not set
++# CONFIG_S3C2410_PM_CHECK is not set
++CONFIG_S3C_LOWLEVEL_UART_PORT=0
++CONFIG_SPLIT_ROOT_FILESYSTEM=y
++CONFIG_MACH_SMDK=y
++
++#
++# S3C2400 Machines
++#
++CONFIG_CPU_S3C2410=y
++CONFIG_CPU_S3C2410_DMA=y
++CONFIG_S3C2410_PM=y
++CONFIG_S3C2410_GPIO=y
++CONFIG_S3C2410_CLOCK=y
++
++#
++# S3C2410 Machines
++#
++CONFIG_ARCH_SMDK2410=y
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++CONFIG_CPU_S3C2440=y
++CONFIG_S3C2440_DMA=y
++
++#
++# S3C2440 Machines
++#
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++CONFIG_ARCH_S3C2440=y
++# CONFIG_MACH_NEXCODER_2440 is not set
++CONFIG_SMDK2440_CPU2440=y
++
++#
++# S3C2442 Machines
++#
++# CONFIG_SMDK2440_CPU2442 is not set
++CONFIG_CPU_S3C2443=y
++CONFIG_S3C2443_DMA=y
++
++#
++# S3C2443 Machines
++#
++CONFIG_MACH_SMDK2443=y
++
++#
++# S3C2450 Machines
++#
++# CONFIG_MACH_SMDK2450 is not set
++
++#
++# S3C6400 Machines
++#
++# CONFIG_MACH_SMDK6400 is not set
++
++#
++# S3C6410 Machines
++#
++# CONFIG_MACH_SMDK6410 is not set
++# CONFIG_MACH_FPGA6410 is not set
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_ARM920T=y
++CONFIG_CPU_32v4T=y
++CONFIG_CPU_ABRT_EV4T=y
++CONFIG_CPU_CACHE_V4WT=y
++CONFIG_CPU_CACHE_VIVT=y
++CONFIG_CPU_COPY_V4WB=y
++CONFIG_CPU_TLB_V4WBI=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++# CONFIG_ARM_THUMB is not set
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++CONFIG_ISA=y
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++# CONFIG_PREEMPT is not set
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=200
++CONFIG_AEABI=y
++CONFIG_OABI_COMPAT=y
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4096
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=cramfs init=/linuxrc console=ttySAC0,115200"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++# CONFIG_FPE_NWFPE_XP is not set
++# CONFIG_FPE_FASTFPE is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_AOUT=y
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++CONFIG_PM=y
++# CONFIG_PM_LEGACY is not set
++# CONFIG_PM_DEBUG is not set
++CONFIG_PM_SLEEP=y
++CONFIG_SUSPEND_UP_POSSIBLE=y
++CONFIG_SUSPEND=y
++# CONFIG_APM_EMULATION is not set
++
++#
++# DVFS support
++#
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++# CONFIG_PACKET is not set
++CONFIG_UNIX=y
++CONFIG_XFRM=y
++# CONFIG_XFRM_USER is not set
++# CONFIG_XFRM_SUB_POLICY is not set
++# CONFIG_XFRM_MIGRATE is not set
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++CONFIG_IP_PNP=y
++# CONFIG_IP_PNP_DHCP is not set
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++CONFIG_INET_XFRM_MODE_TRANSPORT=y
++CONFIG_INET_XFRM_MODE_TUNNEL=y
++CONFIG_INET_XFRM_MODE_BEET=y
++# CONFIG_INET_LRO is not set
++CONFIG_INET_DIAG=y
++CONFIG_INET_TCP_DIAG=y
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IPV6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++# CONFIG_CFG80211 is not set
++# CONFIG_WIRELESS_EXT is not set
++# CONFIG_MAC80211 is not set
++# CONFIG_IEEE80211 is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++# CONFIG_FW_LOADER is not set
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++CONFIG_MTD_REDBOOT_PARTS=y
++CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
++CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
++# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
++CONFIG_MTD_CMDLINE_PARTS=y
++# CONFIG_MTD_AFS_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++CONFIG_MTD_CFI=y
++CONFIG_MTD_JEDECPROBE=y
++CONFIG_MTD_GEN_PROBE=y
++# CONFIG_MTD_CFI_ADV_OPTIONS is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++CONFIG_MTD_CFI_INTELEXT=y
++CONFIG_MTD_CFI_AMDSTD=y
++# CONFIG_MTD_CFI_STAA is not set
++CONFIG_MTD_CFI_UTIL=y
++# CONFIG_MTD_RAM is not set
++CONFIG_MTD_ROM=y
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PHYSMAP is not set
++# CONFIG_MTD_ARM_INTEGRATOR is not set
++# CONFIG_MTD_IMPA7 is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++# CONFIG_MTD_DATAFLASH is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++CONFIG_MTD_NAND=y
++# CONFIG_MTD_NAND_VERIFY_WRITE is not set
++# CONFIG_MTD_NAND_ECC_SMC is not set
++# CONFIG_MTD_NAND_MUSEUM_IDS is not set
++CONFIG_MTD_NAND_IDS=y
++# CONFIG_MTD_NAND_S3C2410 is not set
++CONFIG_MTD_NAND_S3C=y
++# CONFIG_MTD_NAND_S3C_DEBUG is not set
++CONFIG_MTD_NO_ECC_WARNING=y
++CONFIG_MTD_NAND_S3C_HWECC=y
++CONFIG_S3C_LARGEPAGE_NAND=y
++# CONFIG_MTD_NAND_DISKONCHIP is not set
++# CONFIG_MTD_NAND_NANDSIM is not set
++# CONFIG_MTD_NAND_PLATFORM is not set
++# CONFIG_MTD_ALAUDA is not set
++# CONFIG_MTD_ONENAND is not set
++
++#
++# UBI - Unsorted block images
++#
++# CONFIG_MTD_UBI is not set
++CONFIG_PARPORT=y
++# CONFIG_PARPORT_PC is not set
++# CONFIG_PARPORT_GSC is not set
++# CONFIG_PARPORT_AX88796 is not set
++CONFIG_PARPORT_1284=y
++# CONFIG_PNP is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++CONFIG_BLK_DEV_NBD=m
++# CONFIG_BLK_DEV_UB is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=16
++CONFIG_BLK_DEV_RAM_SIZE=4096
++CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
++# CONFIG_CDROM_PKTCDVD is not set
++CONFIG_ATA_OVER_ETH=m
++CONFIG_MISC_DEVICES=y
++# CONFIG_EEPROM_93CX6 is not set
++CONFIG_IDE=y
++CONFIG_BLK_DEV_IDE=y
++
++#
++# Please see Documentation/ide.txt for help/info on IDE drives
++#
++# CONFIG_BLK_DEV_IDE_SATA is not set
++CONFIG_BLK_DEV_IDEDISK=y
++# CONFIG_IDEDISK_MULTI_MODE is not set
++CONFIG_BLK_DEV_IDECD=y
++CONFIG_BLK_DEV_IDETAPE=m
++CONFIG_BLK_DEV_IDEFLOPPY=m
++# CONFIG_IDE_TASK_IOCTL is not set
++CONFIG_IDE_PROC_FS=y
++
++#
++# IDE chipset support/bugfixes
++#
++CONFIG_IDE_GENERIC=y
++# CONFIG_BLK_DEV_PLATFORM is not set
++# CONFIG_IDE_ARM is not set
++
++#
++# Other IDE chipsets support
++#
++
++#
++# Note: most of these also require special kernel boot parameters
++#
++# CONFIG_BLK_DEV_4DRIVES is not set
++# CONFIG_BLK_DEV_ALI14XX is not set
++# CONFIG_BLK_DEV_DTC2278 is not set
++# CONFIG_BLK_DEV_HT6560B is not set
++# CONFIG_BLK_DEV_QD65XX is not set
++# CONFIG_BLK_DEV_UMC8672 is not set
++# CONFIG_BLK_DEV_IDEDMA is not set
++CONFIG_IDE_ARCH_OBSOLETE_INIT=y
++# CONFIG_BLK_DEV_HD is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++# CONFIG_SCSI is not set
++# CONFIG_SCSI_DMA is not set
++# CONFIG_SCSI_NETLINK is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++# CONFIG_ARCNET is not set
++# CONFIG_PHYLIB is not set
++CONFIG_NET_ETHERNET=y
++CONFIG_MII=y
++# CONFIG_AX88796 is not set
++# CONFIG_NET_VENDOR_3COM is not set
++# CONFIG_NET_VENDOR_SMC is not set
++# CONFIG_SMC91X is not set
++CONFIG_DM9000=y
++# CONFIG_NET_VENDOR_RACAL is not set
++# CONFIG_AT1700 is not set
++# CONFIG_DEPCA is not set
++# CONFIG_HP100 is not set
++# CONFIG_NET_ISA is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++CONFIG_NET_PCI=y
++# CONFIG_AC3200 is not set
++# CONFIG_APRICOT is not set
++# CONFIG_B44 is not set
++CONFIG_CS89x0=y
++# CONFIG_NET_POCKET is not set
++CONFIG_NETDEV_1000=y
++CONFIG_NETDEV_10000=y
++# CONFIG_TR is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++# CONFIG_WLAN_80211 is not set
++
++#
++# USB Network Adapters
++#
++# CONFIG_USB_CATC is not set
++# CONFIG_USB_KAWETH is not set
++# CONFIG_USB_PEGASUS is not set
++# CONFIG_USB_RTL8150 is not set
++# CONFIG_USB_USBNET is not set
++# CONFIG_WAN is not set
++# CONFIG_PLIP is not set
++# CONFIG_PPP is not set
++# CONFIG_SLIP is not set
++# CONFIG_SHAPER is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++CONFIG_INPUT_MOUSEDEV_PSAUX=y
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
++# CONFIG_INPUT_JOYDEV is not set
++CONFIG_INPUT_TSDEV=y
++CONFIG_INPUT_TSDEV_SCREEN_X=480
++CONFIG_INPUT_TSDEV_SCREEN_Y=640
++CONFIG_INPUT_EVDEV=y
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++# CONFIG_KEYBOARD_GPIO is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++CONFIG_MOUSE_PS2_LOGIPS2PP=y
++CONFIG_MOUSE_PS2_SYNAPTICS=y
++CONFIG_MOUSE_PS2_LIFEBOOK=y
++CONFIG_MOUSE_PS2_TRACKPOINT=y
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_APPLETOUCH is not set
++# CONFIG_MOUSE_INPORT is not set
++# CONFIG_MOUSE_LOGIBM is not set
++# CONFIG_MOUSE_PC110PAD is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_MOUSE_GPIO is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++CONFIG_INPUT_TOUCHSCREEN=y
++# CONFIG_TOUCHSCREEN_ADS7846 is not set
++CONFIG_TOUCHSCREEN_S3C=y
++# CONFIG_TOUCHSCREEN_FUJITSU is not set
++# CONFIG_TOUCHSCREEN_GUNZE is not set
++# CONFIG_TOUCHSCREEN_ELO is not set
++# CONFIG_TOUCHSCREEN_MTOUCH is not set
++# CONFIG_TOUCHSCREEN_MK712 is not set
++# CONFIG_TOUCHSCREEN_PENMOUNT is not set
++# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
++# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
++# CONFIG_TOUCHSCREEN_UCB1400 is not set
++# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++# CONFIG_SERIO_PARKBD is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++CONFIG_SERIAL_NONSTANDARD=y
++# CONFIG_COMPUTONE is not set
++# CONFIG_ROCKETPORT is not set
++# CONFIG_CYCLADES is not set
++# CONFIG_DIGIEPCA is not set
++# CONFIG_MOXA_INTELLIO is not set
++# CONFIG_MOXA_SMARTIO is not set
++# CONFIG_MOXA_SMARTIO_NEW is not set
++# CONFIG_N_HDLC is not set
++# CONFIG_RISCOM8 is not set
++# CONFIG_SPECIALIX is not set
++# CONFIG_SX is not set
++# CONFIG_RIO is not set
++# CONFIG_STALDRV is not set
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_NR_UARTS=8
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++CONFIG_SERIAL_8250_EXTENDED=y
++CONFIG_SERIAL_8250_MANY_PORTS=y
++# CONFIG_SERIAL_8250_FOURPORT is not set
++# CONFIG_SERIAL_8250_ACCENT is not set
++# CONFIG_SERIAL_8250_BOCA is not set
++# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
++# CONFIG_SERIAL_8250_HUB6 is not set
++CONFIG_SERIAL_8250_SHARE_IRQ=y
++# CONFIG_SERIAL_8250_DETECT_IRQ is not set
++# CONFIG_SERIAL_8250_RSA is not set
++
++#
++# Non-8250 serial port support
++#
++CONFIG_SERIAL_S3C2410=y
++CONFIG_SERIAL_S3C2410_CONSOLE=y
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++CONFIG_PRINTER=y
++# CONFIG_LP_CONSOLE is not set
++CONFIG_PPDEV=y
++# CONFIG_IPMI_HANDLER is not set
++CONFIG_HW_RANDOM=y
++# CONFIG_NVRAM is not set
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_DEVPORT=y
++CONFIG_I2C=y
++CONFIG_I2C_BOARDINFO=y
++CONFIG_I2C_CHARDEV=m
++
++#
++# I2C Algorithms
++#
++CONFIG_I2C_ALGOBIT=m
++# CONFIG_I2C_ALGOPCF is not set
++# CONFIG_I2C_ALGOPCA is not set
++
++#
++# I2C Hardware Bus support
++#
++# CONFIG_I2C_ELEKTOR is not set
++# CONFIG_I2C_GPIO is not set
++# CONFIG_I2C_OCORES is not set
++# CONFIG_I2C_PARPORT is not set
++# CONFIG_I2C_PARPORT_LIGHT is not set
++CONFIG_I2C_S3C2410=y
++# CONFIG_I2C_SIMTEC is not set
++# CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_STUB is not set
++# CONFIG_I2C_TINY_USB is not set
++# CONFIG_I2C_PCA_ISA is not set
++
++#
++# Miscellaneous I2C Chip support
++#
++# CONFIG_SENSORS_DS1337 is not set
++# CONFIG_SENSORS_DS1374 is not set
++# CONFIG_DS1682 is not set
++CONFIG_SENSORS_EEPROM=m
++# CONFIG_SENSORS_PCF8574 is not set
++# CONFIG_SENSORS_PCA9539 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_SENSORS_MAX6875 is not set
++# CONFIG_SENSORS_TSL2550 is not set
++# CONFIG_I2C_DEBUG_CORE is not set
++# CONFIG_I2C_DEBUG_ALGO is not set
++# CONFIG_I2C_DEBUG_BUS is not set
++# CONFIG_I2C_DEBUG_CHIP is not set
++
++#
++# SPI support
++#
++CONFIG_SPI=y
++# CONFIG_SPI_DEBUG is not set
++CONFIG_SPI_MASTER=y
++
++#
++# SPI Master Controller Drivers
++#
++CONFIG_SPI_BITBANG=m
++# CONFIG_SPI_BUTTERFLY is not set
++# CONFIG_SPI_LM70_LLP is not set
++CONFIG_SPI_S3C24XX=m
++CONFIG_SPI_S3C24XX_GPIO=m
++
++#
++# SPI Protocol Masters
++#
++# CONFIG_SPI_AT25 is not set
++# CONFIG_SPI_SPIDEV is not set
++# CONFIG_SPI_TLE62X0 is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++CONFIG_HWMON=y
++CONFIG_HWMON_VID=m
++# CONFIG_SENSORS_AD7418 is not set
++# CONFIG_SENSORS_ADM1021 is not set
++# CONFIG_SENSORS_ADM1025 is not set
++# CONFIG_SENSORS_ADM1026 is not set
++# CONFIG_SENSORS_ADM1029 is not set
++# CONFIG_SENSORS_ADM1031 is not set
++# CONFIG_SENSORS_ADM9240 is not set
++# CONFIG_SENSORS_ADT7470 is not set
++# CONFIG_SENSORS_ATXP1 is not set
++# CONFIG_SENSORS_DS1621 is not set
++# CONFIG_SENSORS_F71805F is not set
++# CONFIG_SENSORS_F71882FG is not set
++# CONFIG_SENSORS_F75375S is not set
++# CONFIG_SENSORS_GL518SM is not set
++# CONFIG_SENSORS_GL520SM is not set
++# CONFIG_SENSORS_IT87 is not set
++# CONFIG_SENSORS_LM63 is not set
++# CONFIG_SENSORS_LM70 is not set
++CONFIG_SENSORS_LM75=m
++# CONFIG_SENSORS_LM77 is not set
++CONFIG_SENSORS_LM78=m
++# CONFIG_SENSORS_LM80 is not set
++# CONFIG_SENSORS_LM83 is not set
++CONFIG_SENSORS_LM85=m
++# CONFIG_SENSORS_LM87 is not set
++# CONFIG_SENSORS_LM90 is not set
++# CONFIG_SENSORS_LM92 is not set
++# CONFIG_SENSORS_LM93 is not set
++# CONFIG_SENSORS_MAX1619 is not set
++# CONFIG_SENSORS_MAX6650 is not set
++# CONFIG_SENSORS_PC87360 is not set
++# CONFIG_SENSORS_PC87427 is not set
++# CONFIG_SENSORS_DME1737 is not set
++# CONFIG_SENSORS_SMSC47M1 is not set
++# CONFIG_SENSORS_SMSC47M192 is not set
++# CONFIG_SENSORS_SMSC47B397 is not set
++# CONFIG_SENSORS_THMC50 is not set
++# CONFIG_SENSORS_VT1211 is not set
++# CONFIG_SENSORS_W83781D is not set
++# CONFIG_SENSORS_W83791D is not set
++# CONFIG_SENSORS_W83792D is not set
++# CONFIG_SENSORS_W83793 is not set
++# CONFIG_SENSORS_W83L785TS is not set
++# CONFIG_SENSORS_W83627HF is not set
++# CONFIG_SENSORS_W83627EHF is not set
++# CONFIG_HWMON_DEBUG_CHIP is not set
++CONFIG_WATCHDOG=y
++# CONFIG_WATCHDOG_NOWAYOUT is not set
++
++#
++# Watchdog Device Drivers
++#
++# CONFIG_SOFT_WATCHDOG is not set
++CONFIG_S3C2410_WATCHDOG=y
++
++#
++# ISA-based Watchdog Cards
++#
++# CONFIG_PCWATCHDOG is not set
++# CONFIG_MIXCOMWD is not set
++# CONFIG_WDT is not set
++
++#
++# USB-based Watchdog Cards
++#
++# CONFIG_USBPCWATCHDOG is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++CONFIG_DAB=y
++# CONFIG_USB_DABUSB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++CONFIG_FIRMWARE_EDID=y
++# CONFIG_FB_DDC is not set
++# CONFIG_FB_CFB_FILLRECT is not set
++# CONFIG_FB_CFB_COPYAREA is not set
++# CONFIG_FB_CFB_IMAGEBLIT is not set
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++CONFIG_FB_MODE_HELPERS=y
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++CONFIG_FB_S3C=y
++# CONFIG_FB_S3C_LTV350QV is not set
++CONFIG_FB_S3C_LTE480WV=y
++CONFIG_FB_S3C_BPP=y
++# CONFIG_FB_S3C_BPP_8 is not set
++CONFIG_FB_S3C_BPP_16=y
++# CONFIG_FB_S3C_BPP_24 is not set
++# CONFIG_FB_S3C_BPP_32 is not set
++CONFIG_FB_S3C_NUM=1
++# CONFIG_FB_S3C_VIRTUAL_SCREEN is not set
++# CONFIG_FB_S3C_DOUBLE_BUFFERING is not set
++# CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_S3C2410 is not set
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++# CONFIG_MDA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++CONFIG_LOGO_LINUX_CLUT224=y
++# CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224 is not set
++
++#
++# Sound
++#
++# CONFIG_SOUND is not set
++CONFIG_HID_SUPPORT=y
++CONFIG_HID=y
++# CONFIG_HID_DEBUG is not set
++# CONFIG_HIDRAW is not set
++
++#
++# USB Input Devices
++#
++# CONFIG_USB_HID is not set
++
++#
++# USB HID Boot Protocol drivers
++#
++# CONFIG_USB_KBD is not set
++# CONFIG_USB_MOUSE is not set
++CONFIG_USB_SUPPORT=y
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
++# CONFIG_USB_ARCH_HAS_EHCI is not set
++CONFIG_USB=y
++# CONFIG_USB_DEBUG is not set
++
++#
++# Miscellaneous USB options
++#
++CONFIG_USB_DEVICEFS=y
++CONFIG_USB_DEVICE_CLASS=y
++# CONFIG_USB_DYNAMIC_MINORS is not set
++# CONFIG_USB_SUSPEND is not set
++# CONFIG_USB_PERSIST is not set
++# CONFIG_USB_OTG is not set
++
++#
++# USB Host Controller Drivers
++#
++# CONFIG_USB_ISP116X_HCD is not set
++CONFIG_USB_OHCI_HCD=y
++# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
++# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
++CONFIG_USB_OHCI_LITTLE_ENDIAN=y
++# CONFIG_USB_SL811_HCD is not set
++# CONFIG_USB_R8A66597_HCD is not set
++
++#
++# USB Device Class drivers
++#
++# CONFIG_USB_ACM is not set
++# CONFIG_USB_PRINTER is not set
++
++#
++# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
++#
++
++#
++# may also be needed; see USB_STORAGE Help for more information
++#
++# CONFIG_USB_LIBUSUAL is not set
++
++#
++# USB Imaging devices
++#
++# CONFIG_USB_MDC800 is not set
++CONFIG_USB_MON=y
++
++#
++# USB port drivers
++#
++# CONFIG_USB_USS720 is not set
++
++#
++# USB Serial Converter support
++#
++# CONFIG_USB_SERIAL is not set
++
++#
++# USB Miscellaneous drivers
++#
++# CONFIG_USB_EMI62 is not set
++# CONFIG_USB_EMI26 is not set
++# CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_AUERSWALD is not set
++# CONFIG_USB_RIO500 is not set
++# CONFIG_USB_LEGOTOWER is not set
++# CONFIG_USB_LCD is not set
++# CONFIG_USB_BERRY_CHARGE is not set
++# CONFIG_USB_LED is not set
++# CONFIG_USB_CYPRESS_CY7C63 is not set
++# CONFIG_USB_CYTHERM is not set
++# CONFIG_USB_PHIDGET is not set
++# CONFIG_USB_IDMOUSE is not set
++# CONFIG_USB_FTDI_ELAN is not set
++# CONFIG_USB_APPLEDISPLAY is not set
++# CONFIG_USB_LD is not set
++# CONFIG_USB_TRANCEVIBRATOR is not set
++# CONFIG_USB_IOWARRIOR is not set
++# CONFIG_USB_TEST is not set
++
++#
++# USB DSL modem support
++#
++
++#
++# USB Gadget Support
++#
++# CONFIG_USB_GADGET is not set
++CONFIG_MMC=y
++# CONFIG_MMC_DEBUG is not set
++# CONFIG_MMC_UNSAFE_RESUME is not set
++
++#
++# MMC/SD Card Drivers
++#
++CONFIG_MMC_BLOCK=y
++CONFIG_MMC_BLOCK_BOUNCE=y
++# CONFIG_SDIO_UART is not set
++
++#
++# MMC/SD Host Controller Drivers
++#
++# CONFIG_MMC_S3C is not set
++CONFIG_HSMMC_S3C=y
++CONFIG_USE_MMC_AS_ROOT=y
++CONFIG_HSMMC_S3C_IRQ_WORKAROUND=y
++CONFIG_HSMMC_SCATTERGATHER=y
++# CONFIG_S3CMMC_DEBUG is not set
++# CONFIG_MMC_SPI is not set
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=m
++
++#
++# LED drivers
++#
++CONFIG_LEDS_S3C24XX=m
++# CONFIG_LEDS_GPIO is not set
++
++#
++# LED Triggers
++#
++CONFIG_LEDS_TRIGGERS=y
++CONFIG_LEDS_TRIGGER_TIMER=m
++# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
++CONFIG_LEDS_TRIGGER_HEARTBEAT=m
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# I2C RTC drivers
++#
++# CONFIG_RTC_DRV_DS1307 is not set
++# CONFIG_RTC_DRV_DS1374 is not set
++# CONFIG_RTC_DRV_DS1672 is not set
++# CONFIG_RTC_DRV_MAX6900 is not set
++# CONFIG_RTC_DRV_RS5C372 is not set
++# CONFIG_RTC_DRV_ISL1208 is not set
++# CONFIG_RTC_DRV_X1205 is not set
++# CONFIG_RTC_DRV_PCF8563 is not set
++# CONFIG_RTC_DRV_PCF8583 is not set
++# CONFIG_RTC_DRV_M41T80 is not set
++
++#
++# SPI RTC drivers
++#
++# CONFIG_RTC_DRV_RS5C348 is not set
++# CONFIG_RTC_DRV_MAX6902 is not set
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_S3C=y
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++CONFIG_EXT3_FS=y
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
++# CONFIG_EXT4DEV_FS is not set
++CONFIG_JBD=y
++CONFIG_FS_MBCACHE=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_MINIX_FS is not set
++CONFIG_ROMFS_FS=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++CONFIG_MSDOS_FS=y
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
++# CONFIG_JFFS2_SUMMARY is not set
++# CONFIG_JFFS2_FS_XATTR is not set
++# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
++CONFIG_JFFS2_ZLIB=y
++# CONFIG_JFFS2_LZO is not set
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++CONFIG_CRAMFS=y
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=y
++# CONFIG_NFS_V3 is not set
++# CONFIG_NFS_V4 is not set
++# CONFIG_NFS_DIRECTIO is not set
++# CONFIG_NFSD is not set
++CONFIG_ROOT_NFS=y
++CONFIG_LOCKD=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=y
++# CONFIG_SUNRPC_BIND34 is not set
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++CONFIG_PARTITION_ADVANCED=y
++# CONFIG_ACORN_PARTITION is not set
++# CONFIG_OSF_PARTITION is not set
++# CONFIG_AMIGA_PARTITION is not set
++# CONFIG_ATARI_PARTITION is not set
++# CONFIG_MAC_PARTITION is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_BSD_DISKLABEL=y
++# CONFIG_MINIX_SUBPARTITION is not set
++CONFIG_SOLARIS_X86_PARTITION=y
++# CONFIG_UNIXWARE_DISKLABEL is not set
++# CONFIG_LDM_PARTITION is not set
++# CONFIG_SGI_PARTITION is not set
++# CONFIG_ULTRIX_PARTITION is not set
++# CONFIG_SUN_PARTITION is not set
++# CONFIG_KARMA_PARTITION is not set
++# CONFIG_EFI_PARTITION is not set
++# CONFIG_SYSV68_PARTITION is not set
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++CONFIG_NLS_ASCII=y
++CONFIG_NLS_ISO8859_1=y
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++CONFIG_INSTRUMENTATION=y
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_MAGIC_SYSRQ=y
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_TIMER_STATS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++CONFIG_DEBUG_MUTEXES=y
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++CONFIG_FRAME_POINTER=y
++CONFIG_FORCED_INLINING=y
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_SAMPLES is not set
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++CONFIG_DEBUG_LL=y
++# CONFIG_DEBUG_ICEDCC is not set
++CONFIG_DEBUG_S3C_PORT=y
++CONFIG_DEBUG_S3C_UART=0
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff --git a/arch/arm/configs/smdk2443nfs_defconfig b/arch/arm/configs/smdk2443nfs_defconfig
+new file mode 100644
+index 0000000..fe2e93a
+--- /dev/null
++++ b/arch/arm/configs/smdk2443nfs_defconfig
+@@ -0,0 +1,1400 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.24.2
++# Tue Feb 26 09:15:10 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_AUDIT is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=16
++# CONFIG_CGROUPS is not set
++CONFIG_FAIR_GROUP_SCHED=y
++CONFIG_FAIR_USER_SCHED=y
++# CONFIG_FAIR_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++# CONFIG_RELAY is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++# CONFIG_EMBEDDED is not set
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++CONFIG_PLAT_S3C24XX=y
++CONFIG_CPU_S3C244X=y
++CONFIG_S3C2410_DMA=y
++# CONFIG_S3C2410_DMA_DEBUG is not set
++CONFIG_PLAT_S3C=y
++CONFIG_CPU_LLSERIAL_S3C2410=y
++CONFIG_CPU_LLSERIAL_S3C2440=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_WATCHDOG is not set
++# CONFIG_S3C_BOOT_ERROR_RESET is not set
++
++#
++# Power management
++#
++# CONFIG_S3C2410_PM_DEBUG is not set
++# CONFIG_S3C2410_PM_CHECK is not set
++CONFIG_S3C_LOWLEVEL_UART_PORT=0
++CONFIG_SPLIT_ROOT_FILESYSTEM=y
++CONFIG_MACH_SMDK=y
++
++#
++# S3C2400 Machines
++#
++CONFIG_CPU_S3C2410=y
++CONFIG_CPU_S3C2410_DMA=y
++CONFIG_S3C2410_PM=y
++CONFIG_S3C2410_GPIO=y
++CONFIG_S3C2410_CLOCK=y
++
++#
++# S3C2410 Machines
++#
++CONFIG_ARCH_SMDK2410=y
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++CONFIG_CPU_S3C2440=y
++CONFIG_S3C2440_DMA=y
++
++#
++# S3C2440 Machines
++#
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++CONFIG_ARCH_S3C2440=y
++# CONFIG_MACH_NEXCODER_2440 is not set
++CONFIG_SMDK2440_CPU2440=y
++
++#
++# S3C2442 Machines
++#
++# CONFIG_SMDK2440_CPU2442 is not set
++CONFIG_CPU_S3C2443=y
++CONFIG_S3C2443_DMA=y
++
++#
++# S3C2443 Machines
++#
++CONFIG_MACH_SMDK2443=y
++
++#
++# S3C2450 Machines
++#
++# CONFIG_MACH_SMDK2450 is not set
++
++#
++# S3C6400 Machines
++#
++# CONFIG_MACH_SMDK6400 is not set
++
++#
++# S3C6410 Machines
++#
++# CONFIG_MACH_SMDK6410 is not set
++# CONFIG_MACH_FPGA6410 is not set
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_ARM920T=y
++CONFIG_CPU_32v4T=y
++CONFIG_CPU_ABRT_EV4T=y
++CONFIG_CPU_CACHE_V4WT=y
++CONFIG_CPU_CACHE_VIVT=y
++CONFIG_CPU_COPY_V4WB=y
++CONFIG_CPU_TLB_V4WBI=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++# CONFIG_ARM_THUMB is not set
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++CONFIG_ISA=y
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++# CONFIG_PREEMPT is not set
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=200
++CONFIG_AEABI=y
++CONFIG_OABI_COMPAT=y
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4096
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="noinitrd root=/dev/nfs rw nfsroot=192.168.0.10:/tftpboot/rootfs/ ip=192.168.0.20:192.168.0.10:192.168.0.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++# CONFIG_FPE_NWFPE_XP is not set
++# CONFIG_FPE_FASTFPE is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_AOUT=y
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++CONFIG_PM=y
++# CONFIG_PM_LEGACY is not set
++# CONFIG_PM_DEBUG is not set
++CONFIG_PM_SLEEP=y
++CONFIG_SUSPEND_UP_POSSIBLE=y
++CONFIG_SUSPEND=y
++# CONFIG_APM_EMULATION is not set
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++# CONFIG_PACKET is not set
++CONFIG_UNIX=y
++CONFIG_XFRM=y
++# CONFIG_XFRM_USER is not set
++# CONFIG_XFRM_SUB_POLICY is not set
++# CONFIG_XFRM_MIGRATE is not set
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++CONFIG_IP_PNP=y
++# CONFIG_IP_PNP_DHCP is not set
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++CONFIG_INET_XFRM_MODE_TRANSPORT=y
++CONFIG_INET_XFRM_MODE_TUNNEL=y
++CONFIG_INET_XFRM_MODE_BEET=y
++# CONFIG_INET_LRO is not set
++CONFIG_INET_DIAG=y
++CONFIG_INET_TCP_DIAG=y
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IPV6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++# CONFIG_CFG80211 is not set
++# CONFIG_WIRELESS_EXT is not set
++# CONFIG_MAC80211 is not set
++# CONFIG_IEEE80211 is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++# CONFIG_FW_LOADER is not set
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++CONFIG_MTD_REDBOOT_PARTS=y
++CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
++CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
++# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
++CONFIG_MTD_CMDLINE_PARTS=y
++# CONFIG_MTD_AFS_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++CONFIG_MTD_CFI=y
++CONFIG_MTD_JEDECPROBE=y
++CONFIG_MTD_GEN_PROBE=y
++# CONFIG_MTD_CFI_ADV_OPTIONS is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++CONFIG_MTD_CFI_INTELEXT=y
++CONFIG_MTD_CFI_AMDSTD=y
++# CONFIG_MTD_CFI_STAA is not set
++CONFIG_MTD_CFI_UTIL=y
++# CONFIG_MTD_RAM is not set
++CONFIG_MTD_ROM=y
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PHYSMAP is not set
++# CONFIG_MTD_ARM_INTEGRATOR is not set
++# CONFIG_MTD_IMPA7 is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++# CONFIG_MTD_DATAFLASH is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++CONFIG_MTD_NAND=y
++# CONFIG_MTD_NAND_VERIFY_WRITE is not set
++# CONFIG_MTD_NAND_ECC_SMC is not set
++# CONFIG_MTD_NAND_MUSEUM_IDS is not set
++CONFIG_MTD_NAND_IDS=y
++# CONFIG_MTD_NAND_S3C2410 is not set
++CONFIG_MTD_NAND_S3C=y
++# CONFIG_MTD_NAND_S3C_DEBUG is not set
++CONFIG_MTD_NO_ECC_WARNING=y
++CONFIG_MTD_NAND_S3C_HWECC=y
++CONFIG_S3C_LARGEPAGE_NAND=y
++# CONFIG_MTD_NAND_DISKONCHIP is not set
++# CONFIG_MTD_NAND_NANDSIM is not set
++# CONFIG_MTD_NAND_PLATFORM is not set
++# CONFIG_MTD_ALAUDA is not set
++# CONFIG_MTD_ONENAND is not set
++
++#
++# UBI - Unsorted block images
++#
++# CONFIG_MTD_UBI is not set
++CONFIG_PARPORT=y
++# CONFIG_PARPORT_PC is not set
++# CONFIG_PARPORT_GSC is not set
++# CONFIG_PARPORT_AX88796 is not set
++CONFIG_PARPORT_1284=y
++# CONFIG_PNP is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++CONFIG_BLK_DEV_NBD=m
++# CONFIG_BLK_DEV_UB is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=16
++CONFIG_BLK_DEV_RAM_SIZE=4096
++CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
++# CONFIG_CDROM_PKTCDVD is not set
++CONFIG_ATA_OVER_ETH=m
++CONFIG_MISC_DEVICES=y
++# CONFIG_EEPROM_93CX6 is not set
++CONFIG_IDE=y
++CONFIG_BLK_DEV_IDE=y
++
++#
++# Please see Documentation/ide.txt for help/info on IDE drives
++#
++# CONFIG_BLK_DEV_IDE_SATA is not set
++CONFIG_BLK_DEV_IDEDISK=y
++# CONFIG_IDEDISK_MULTI_MODE is not set
++CONFIG_BLK_DEV_IDECD=y
++CONFIG_BLK_DEV_IDETAPE=m
++CONFIG_BLK_DEV_IDEFLOPPY=m
++# CONFIG_IDE_TASK_IOCTL is not set
++CONFIG_IDE_PROC_FS=y
++
++#
++# IDE chipset support/bugfixes
++#
++CONFIG_IDE_GENERIC=y
++# CONFIG_BLK_DEV_PLATFORM is not set
++# CONFIG_IDE_ARM is not set
++
++#
++# Other IDE chipsets support
++#
++
++#
++# Note: most of these also require special kernel boot parameters
++#
++# CONFIG_BLK_DEV_4DRIVES is not set
++# CONFIG_BLK_DEV_ALI14XX is not set
++# CONFIG_BLK_DEV_DTC2278 is not set
++# CONFIG_BLK_DEV_HT6560B is not set
++# CONFIG_BLK_DEV_QD65XX is not set
++# CONFIG_BLK_DEV_UMC8672 is not set
++# CONFIG_BLK_DEV_IDEDMA is not set
++CONFIG_IDE_ARCH_OBSOLETE_INIT=y
++# CONFIG_BLK_DEV_HD is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++# CONFIG_SCSI is not set
++# CONFIG_SCSI_DMA is not set
++# CONFIG_SCSI_NETLINK is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++# CONFIG_ARCNET is not set
++# CONFIG_PHYLIB is not set
++CONFIG_NET_ETHERNET=y
++CONFIG_MII=y
++# CONFIG_AX88796 is not set
++# CONFIG_NET_VENDOR_3COM is not set
++# CONFIG_NET_VENDOR_SMC is not set
++# CONFIG_SMC91X is not set
++CONFIG_DM9000=y
++# CONFIG_NET_VENDOR_RACAL is not set
++# CONFIG_AT1700 is not set
++# CONFIG_DEPCA is not set
++# CONFIG_HP100 is not set
++# CONFIG_NET_ISA is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++CONFIG_NET_PCI=y
++# CONFIG_AC3200 is not set
++# CONFIG_APRICOT is not set
++# CONFIG_B44 is not set
++CONFIG_CS89x0=y
++# CONFIG_NET_POCKET is not set
++CONFIG_NETDEV_1000=y
++CONFIG_NETDEV_10000=y
++# CONFIG_TR is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++# CONFIG_WLAN_80211 is not set
++
++#
++# USB Network Adapters
++#
++# CONFIG_USB_CATC is not set
++# CONFIG_USB_KAWETH is not set
++# CONFIG_USB_PEGASUS is not set
++# CONFIG_USB_RTL8150 is not set
++# CONFIG_USB_USBNET is not set
++# CONFIG_WAN is not set
++# CONFIG_PLIP is not set
++# CONFIG_PPP is not set
++# CONFIG_SLIP is not set
++# CONFIG_SHAPER is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++CONFIG_INPUT_MOUSEDEV_PSAUX=y
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
++# CONFIG_INPUT_JOYDEV is not set
++# CONFIG_INPUT_EVDEV is not set
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++# CONFIG_KEYBOARD_GPIO is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++CONFIG_MOUSE_PS2_LOGIPS2PP=y
++CONFIG_MOUSE_PS2_SYNAPTICS=y
++CONFIG_MOUSE_PS2_LIFEBOOK=y
++CONFIG_MOUSE_PS2_TRACKPOINT=y
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_APPLETOUCH is not set
++# CONFIG_MOUSE_INPORT is not set
++# CONFIG_MOUSE_LOGIBM is not set
++# CONFIG_MOUSE_PC110PAD is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_MOUSE_GPIO is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++# CONFIG_INPUT_TOUCHSCREEN is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++# CONFIG_SERIO_PARKBD is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++CONFIG_SERIAL_NONSTANDARD=y
++# CONFIG_COMPUTONE is not set
++# CONFIG_ROCKETPORT is not set
++# CONFIG_CYCLADES is not set
++# CONFIG_DIGIEPCA is not set
++# CONFIG_MOXA_INTELLIO is not set
++# CONFIG_MOXA_SMARTIO is not set
++# CONFIG_MOXA_SMARTIO_NEW is not set
++# CONFIG_N_HDLC is not set
++# CONFIG_RISCOM8 is not set
++# CONFIG_SPECIALIX is not set
++# CONFIG_SX is not set
++# CONFIG_RIO is not set
++# CONFIG_STALDRV is not set
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_NR_UARTS=8
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++CONFIG_SERIAL_8250_EXTENDED=y
++CONFIG_SERIAL_8250_MANY_PORTS=y
++# CONFIG_SERIAL_8250_FOURPORT is not set
++# CONFIG_SERIAL_8250_ACCENT is not set
++# CONFIG_SERIAL_8250_BOCA is not set
++# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
++# CONFIG_SERIAL_8250_HUB6 is not set
++CONFIG_SERIAL_8250_SHARE_IRQ=y
++# CONFIG_SERIAL_8250_DETECT_IRQ is not set
++# CONFIG_SERIAL_8250_RSA is not set
++
++#
++# Non-8250 serial port support
++#
++CONFIG_SERIAL_S3C2410=y
++CONFIG_SERIAL_S3C2410_CONSOLE=y
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++CONFIG_PRINTER=y
++# CONFIG_LP_CONSOLE is not set
++CONFIG_PPDEV=y
++# CONFIG_IPMI_HANDLER is not set
++CONFIG_HW_RANDOM=y
++# CONFIG_NVRAM is not set
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_DEVPORT=y
++CONFIG_I2C=y
++CONFIG_I2C_BOARDINFO=y
++CONFIG_I2C_CHARDEV=m
++
++#
++# I2C Algorithms
++#
++CONFIG_I2C_ALGOBIT=m
++# CONFIG_I2C_ALGOPCF is not set
++# CONFIG_I2C_ALGOPCA is not set
++
++#
++# I2C Hardware Bus support
++#
++# CONFIG_I2C_ELEKTOR is not set
++# CONFIG_I2C_GPIO is not set
++# CONFIG_I2C_OCORES is not set
++# CONFIG_I2C_PARPORT is not set
++# CONFIG_I2C_PARPORT_LIGHT is not set
++CONFIG_I2C_S3C2410=y
++# CONFIG_I2C_SIMTEC is not set
++# CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_STUB is not set
++# CONFIG_I2C_TINY_USB is not set
++# CONFIG_I2C_PCA_ISA is not set
++
++#
++# Miscellaneous I2C Chip support
++#
++# CONFIG_SENSORS_DS1337 is not set
++# CONFIG_SENSORS_DS1374 is not set
++# CONFIG_DS1682 is not set
++CONFIG_SENSORS_EEPROM=m
++# CONFIG_SENSORS_PCF8574 is not set
++# CONFIG_SENSORS_PCA9539 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_SENSORS_MAX6875 is not set
++# CONFIG_SENSORS_TSL2550 is not set
++# CONFIG_I2C_DEBUG_CORE is not set
++# CONFIG_I2C_DEBUG_ALGO is not set
++# CONFIG_I2C_DEBUG_BUS is not set
++# CONFIG_I2C_DEBUG_CHIP is not set
++
++#
++# SPI support
++#
++CONFIG_SPI=y
++# CONFIG_SPI_DEBUG is not set
++CONFIG_SPI_MASTER=y
++
++#
++# SPI Master Controller Drivers
++#
++CONFIG_SPI_BITBANG=m
++# CONFIG_SPI_BUTTERFLY is not set
++# CONFIG_SPI_LM70_LLP is not set
++CONFIG_SPI_S3C24XX=m
++CONFIG_SPI_S3C24XX_GPIO=m
++
++#
++# SPI Protocol Masters
++#
++# CONFIG_SPI_AT25 is not set
++# CONFIG_SPI_SPIDEV is not set
++# CONFIG_SPI_TLE62X0 is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++CONFIG_HWMON=y
++CONFIG_HWMON_VID=m
++# CONFIG_SENSORS_AD7418 is not set
++# CONFIG_SENSORS_ADM1021 is not set
++# CONFIG_SENSORS_ADM1025 is not set
++# CONFIG_SENSORS_ADM1026 is not set
++# CONFIG_SENSORS_ADM1029 is not set
++# CONFIG_SENSORS_ADM1031 is not set
++# CONFIG_SENSORS_ADM9240 is not set
++# CONFIG_SENSORS_ADT7470 is not set
++# CONFIG_SENSORS_ATXP1 is not set
++# CONFIG_SENSORS_DS1621 is not set
++# CONFIG_SENSORS_F71805F is not set
++# CONFIG_SENSORS_F71882FG is not set
++# CONFIG_SENSORS_F75375S is not set
++# CONFIG_SENSORS_GL518SM is not set
++# CONFIG_SENSORS_GL520SM is not set
++# CONFIG_SENSORS_IT87 is not set
++# CONFIG_SENSORS_LM63 is not set
++# CONFIG_SENSORS_LM70 is not set
++CONFIG_SENSORS_LM75=m
++# CONFIG_SENSORS_LM77 is not set
++CONFIG_SENSORS_LM78=m
++# CONFIG_SENSORS_LM80 is not set
++# CONFIG_SENSORS_LM83 is not set
++CONFIG_SENSORS_LM85=m
++# CONFIG_SENSORS_LM87 is not set
++# CONFIG_SENSORS_LM90 is not set
++# CONFIG_SENSORS_LM92 is not set
++# CONFIG_SENSORS_LM93 is not set
++# CONFIG_SENSORS_MAX1619 is not set
++# CONFIG_SENSORS_MAX6650 is not set
++# CONFIG_SENSORS_PC87360 is not set
++# CONFIG_SENSORS_PC87427 is not set
++# CONFIG_SENSORS_DME1737 is not set
++# CONFIG_SENSORS_SMSC47M1 is not set
++# CONFIG_SENSORS_SMSC47M192 is not set
++# CONFIG_SENSORS_SMSC47B397 is not set
++# CONFIG_SENSORS_THMC50 is not set
++# CONFIG_SENSORS_VT1211 is not set
++# CONFIG_SENSORS_W83781D is not set
++# CONFIG_SENSORS_W83791D is not set
++# CONFIG_SENSORS_W83792D is not set
++# CONFIG_SENSORS_W83793 is not set
++# CONFIG_SENSORS_W83L785TS is not set
++# CONFIG_SENSORS_W83627HF is not set
++# CONFIG_SENSORS_W83627EHF is not set
++# CONFIG_HWMON_DEBUG_CHIP is not set
++CONFIG_WATCHDOG=y
++# CONFIG_WATCHDOG_NOWAYOUT is not set
++
++#
++# Watchdog Device Drivers
++#
++# CONFIG_SOFT_WATCHDOG is not set
++CONFIG_S3C2410_WATCHDOG=y
++
++#
++# ISA-based Watchdog Cards
++#
++# CONFIG_PCWATCHDOG is not set
++# CONFIG_MIXCOMWD is not set
++# CONFIG_WDT is not set
++
++#
++# USB-based Watchdog Cards
++#
++# CONFIG_USBPCWATCHDOG is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++CONFIG_DAB=y
++# CONFIG_USB_DABUSB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++CONFIG_FIRMWARE_EDID=y
++# CONFIG_FB_DDC is not set
++# CONFIG_FB_CFB_FILLRECT is not set
++# CONFIG_FB_CFB_COPYAREA is not set
++# CONFIG_FB_CFB_IMAGEBLIT is not set
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++CONFIG_FB_MODE_HELPERS=y
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++CONFIG_FB_S3C=y
++# CONFIG_FB_S3C_LTV350QV is not set
++CONFIG_FB_S3C_LTE480WV=y
++CONFIG_FB_S3C_BPP=y
++# CONFIG_FB_S3C_BPP_8 is not set
++CONFIG_FB_S3C_BPP_16=y
++# CONFIG_FB_S3C_BPP_24 is not set
++# CONFIG_FB_S3C_BPP_32 is not set
++CONFIG_FB_S3C_NUM=1
++# CONFIG_FB_S3C_VIRTUAL_SCREEN is not set
++# CONFIG_FB_S3C_DOUBLE_BUFFERING is not set
++# CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_S3C2410 is not set
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++# CONFIG_MDA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++# CONFIG_LOGO_LINUX_CLUT224 is not set
++CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224=y
++
++#
++# Sound
++#
++# CONFIG_SOUND is not set
++CONFIG_HID_SUPPORT=y
++CONFIG_HID=y
++# CONFIG_HID_DEBUG is not set
++# CONFIG_HIDRAW is not set
++
++#
++# USB Input Devices
++#
++# CONFIG_USB_HID is not set
++
++#
++# USB HID Boot Protocol drivers
++#
++# CONFIG_USB_KBD is not set
++# CONFIG_USB_MOUSE is not set
++CONFIG_USB_SUPPORT=y
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
++# CONFIG_USB_ARCH_HAS_EHCI is not set
++CONFIG_USB=y
++# CONFIG_USB_DEBUG is not set
++
++#
++# Miscellaneous USB options
++#
++CONFIG_USB_DEVICEFS=y
++CONFIG_USB_DEVICE_CLASS=y
++# CONFIG_USB_DYNAMIC_MINORS is not set
++# CONFIG_USB_SUSPEND is not set
++# CONFIG_USB_PERSIST is not set
++# CONFIG_USB_OTG is not set
++
++#
++# USB Host Controller Drivers
++#
++# CONFIG_USB_ISP116X_HCD is not set
++CONFIG_USB_OHCI_HCD=y
++# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
++# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
++CONFIG_USB_OHCI_LITTLE_ENDIAN=y
++# CONFIG_USB_SL811_HCD is not set
++# CONFIG_USB_R8A66597_HCD is not set
++
++#
++# USB Device Class drivers
++#
++# CONFIG_USB_ACM is not set
++# CONFIG_USB_PRINTER is not set
++
++#
++# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
++#
++
++#
++# may also be needed; see USB_STORAGE Help for more information
++#
++# CONFIG_USB_LIBUSUAL is not set
++
++#
++# USB Imaging devices
++#
++# CONFIG_USB_MDC800 is not set
++CONFIG_USB_MON=y
++
++#
++# USB port drivers
++#
++# CONFIG_USB_USS720 is not set
++
++#
++# USB Serial Converter support
++#
++# CONFIG_USB_SERIAL is not set
++
++#
++# USB Miscellaneous drivers
++#
++# CONFIG_USB_EMI62 is not set
++# CONFIG_USB_EMI26 is not set
++# CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_AUERSWALD is not set
++# CONFIG_USB_RIO500 is not set
++# CONFIG_USB_LEGOTOWER is not set
++# CONFIG_USB_LCD is not set
++# CONFIG_USB_BERRY_CHARGE is not set
++# CONFIG_USB_LED is not set
++# CONFIG_USB_CYPRESS_CY7C63 is not set
++# CONFIG_USB_CYTHERM is not set
++# CONFIG_USB_PHIDGET is not set
++# CONFIG_USB_IDMOUSE is not set
++# CONFIG_USB_FTDI_ELAN is not set
++# CONFIG_USB_APPLEDISPLAY is not set
++# CONFIG_USB_LD is not set
++# CONFIG_USB_TRANCEVIBRATOR is not set
++# CONFIG_USB_IOWARRIOR is not set
++# CONFIG_USB_TEST is not set
++
++#
++# USB DSL modem support
++#
++
++#
++# USB Gadget Support
++#
++# CONFIG_USB_GADGET is not set
++# CONFIG_MMC is not set
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=m
++
++#
++# LED drivers
++#
++CONFIG_LEDS_S3C24XX=m
++# CONFIG_LEDS_GPIO is not set
++
++#
++# LED Triggers
++#
++CONFIG_LEDS_TRIGGERS=y
++CONFIG_LEDS_TRIGGER_TIMER=m
++# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
++CONFIG_LEDS_TRIGGER_HEARTBEAT=m
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# I2C RTC drivers
++#
++# CONFIG_RTC_DRV_DS1307 is not set
++# CONFIG_RTC_DRV_DS1374 is not set
++# CONFIG_RTC_DRV_DS1672 is not set
++# CONFIG_RTC_DRV_MAX6900 is not set
++# CONFIG_RTC_DRV_RS5C372 is not set
++# CONFIG_RTC_DRV_ISL1208 is not set
++# CONFIG_RTC_DRV_X1205 is not set
++# CONFIG_RTC_DRV_PCF8563 is not set
++# CONFIG_RTC_DRV_PCF8583 is not set
++# CONFIG_RTC_DRV_M41T80 is not set
++
++#
++# SPI RTC drivers
++#
++# CONFIG_RTC_DRV_RS5C348 is not set
++# CONFIG_RTC_DRV_MAX6902 is not set
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_S3C=y
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++CONFIG_EXT3_FS=y
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
++# CONFIG_EXT4DEV_FS is not set
++CONFIG_JBD=y
++CONFIG_FS_MBCACHE=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_MINIX_FS is not set
++CONFIG_ROMFS_FS=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++CONFIG_MSDOS_FS=y
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
++# CONFIG_JFFS2_SUMMARY is not set
++# CONFIG_JFFS2_FS_XATTR is not set
++# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
++CONFIG_JFFS2_ZLIB=y
++# CONFIG_JFFS2_LZO is not set
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++CONFIG_CRAMFS=y
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=y
++# CONFIG_NFS_V3 is not set
++# CONFIG_NFS_V4 is not set
++# CONFIG_NFS_DIRECTIO is not set
++# CONFIG_NFSD is not set
++CONFIG_ROOT_NFS=y
++CONFIG_LOCKD=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=y
++# CONFIG_SUNRPC_BIND34 is not set
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++CONFIG_PARTITION_ADVANCED=y
++# CONFIG_ACORN_PARTITION is not set
++# CONFIG_OSF_PARTITION is not set
++# CONFIG_AMIGA_PARTITION is not set
++# CONFIG_ATARI_PARTITION is not set
++# CONFIG_MAC_PARTITION is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_BSD_DISKLABEL=y
++# CONFIG_MINIX_SUBPARTITION is not set
++CONFIG_SOLARIS_X86_PARTITION=y
++# CONFIG_UNIXWARE_DISKLABEL is not set
++# CONFIG_LDM_PARTITION is not set
++# CONFIG_SGI_PARTITION is not set
++# CONFIG_ULTRIX_PARTITION is not set
++# CONFIG_SUN_PARTITION is not set
++# CONFIG_KARMA_PARTITION is not set
++# CONFIG_EFI_PARTITION is not set
++# CONFIG_SYSV68_PARTITION is not set
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++# CONFIG_NLS_CODEPAGE_437 is not set
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++# CONFIG_NLS_ASCII is not set
++# CONFIG_NLS_ISO8859_1 is not set
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++CONFIG_INSTRUMENTATION=y
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_MAGIC_SYSRQ=y
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_TIMER_STATS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++CONFIG_DEBUG_MUTEXES=y
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++CONFIG_FRAME_POINTER=y
++CONFIG_FORCED_INLINING=y
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_SAMPLES is not set
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++CONFIG_DEBUG_LL=y
++# CONFIG_DEBUG_ICEDCC is not set
++CONFIG_DEBUG_S3C_PORT=y
++CONFIG_DEBUG_S3C_UART=0
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff --git a/arch/arm/configs/smdk2450mtd_defconfig b/arch/arm/configs/smdk2450mtd_defconfig
+new file mode 100644
+index 0000000..9f50dea
+--- /dev/null
++++ b/arch/arm/configs/smdk2450mtd_defconfig
+@@ -0,0 +1,1495 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.24.2
++# Wed Apr 2 13:49:45 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_AUDIT is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=16
++# CONFIG_CGROUPS is not set
++CONFIG_FAIR_GROUP_SCHED=y
++CONFIG_FAIR_USER_SCHED=y
++# CONFIG_FAIR_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++# CONFIG_RELAY is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++# CONFIG_EMBEDDED is not set
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++CONFIG_PLAT_S3C24XX=y
++CONFIG_CPU_S3C244X=y
++CONFIG_S3C2410_DMA=y
++# CONFIG_S3C2410_DMA_DEBUG is not set
++CONFIG_PLAT_S3C=y
++CONFIG_CPU_LLSERIAL_S3C2410=y
++CONFIG_CPU_LLSERIAL_S3C2440=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_WATCHDOG is not set
++# CONFIG_S3C_BOOT_ERROR_RESET is not set
++
++#
++# Power management
++#
++# CONFIG_S3C2410_PM_DEBUG is not set
++# CONFIG_S3C2410_PM_CHECK is not set
++CONFIG_S3C_LOWLEVEL_UART_PORT=0
++CONFIG_SPLIT_ROOT_FILESYSTEM=y
++CONFIG_MACH_SMDK=y
++
++#
++# S3C2400 Machines
++#
++CONFIG_CPU_S3C2410=y
++CONFIG_CPU_S3C2410_DMA=y
++CONFIG_S3C2410_PM=y
++CONFIG_S3C2410_GPIO=y
++CONFIG_S3C2410_CLOCK=y
++
++#
++# S3C2410 Machines
++#
++CONFIG_ARCH_SMDK2410=y
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++CONFIG_CPU_S3C2440=y
++CONFIG_S3C2440_DMA=y
++
++#
++# S3C2440 Machines
++#
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++CONFIG_ARCH_S3C2440=y
++# CONFIG_MACH_NEXCODER_2440 is not set
++CONFIG_SMDK2440_CPU2440=y
++
++#
++# S3C2442 Machines
++#
++# CONFIG_SMDK2440_CPU2442 is not set
++
++#
++# S3C2443 Machines
++#
++# CONFIG_MACH_SMDK2443 is not set
++CONFIG_CPU_S3C2450=y
++CONFIG_S3C2450_DMA=y
++
++#
++# S3C2450 Machines
++#
++CONFIG_MACH_SMDK2450=y
++
++#
++# S3C2416 Machines
++#
++# CONFIG_MACH_SMDK2416 is not set
++
++#
++# S3C6400 Machines
++#
++# CONFIG_MACH_SMDK6400 is not set
++
++#
++# S3C6410 Machines
++#
++# CONFIG_MACH_SMDK6410 is not set
++# CONFIG_MACH_FPGA6410 is not set
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++# CONFIG_CPU_ARM920T is not set
++CONFIG_CPU_ARM926T=y
++CONFIG_CPU_32v5=y
++CONFIG_CPU_ABRT_EV5TJ=y
++CONFIG_CPU_CACHE_VIVT=y
++CONFIG_CPU_COPY_V4WB=y
++CONFIG_CPU_TLB_V4WBI=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++# CONFIG_ARM_THUMB is not set
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
++# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++CONFIG_ISA=y
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++# CONFIG_PREEMPT is not set
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=200
++CONFIG_AEABI=y
++CONFIG_OABI_COMPAT=y
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4096
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=cramfs init=/linuxrc console=ttySAC0,115200"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++# CONFIG_FPE_NWFPE_XP is not set
++# CONFIG_FPE_FASTFPE is not set
++# CONFIG_VFP is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_AOUT=y
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++CONFIG_PM=y
++# CONFIG_PM_LEGACY is not set
++# CONFIG_PM_DEBUG is not set
++CONFIG_PM_SLEEP=y
++CONFIG_SUSPEND_UP_POSSIBLE=y
++CONFIG_SUSPEND=y
++# CONFIG_APM_EMULATION is not set
++
++#
++# DVFS support
++#
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++# CONFIG_PACKET is not set
++CONFIG_UNIX=y
++CONFIG_XFRM=y
++# CONFIG_XFRM_USER is not set
++# CONFIG_XFRM_SUB_POLICY is not set
++# CONFIG_XFRM_MIGRATE is not set
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++CONFIG_IP_PNP=y
++# CONFIG_IP_PNP_DHCP is not set
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++CONFIG_INET_XFRM_MODE_TRANSPORT=y
++CONFIG_INET_XFRM_MODE_TUNNEL=y
++CONFIG_INET_XFRM_MODE_BEET=y
++# CONFIG_INET_LRO is not set
++CONFIG_INET_DIAG=y
++CONFIG_INET_TCP_DIAG=y
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IPV6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++# CONFIG_CFG80211 is not set
++# CONFIG_WIRELESS_EXT is not set
++# CONFIG_MAC80211 is not set
++# CONFIG_IEEE80211 is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++# CONFIG_FW_LOADER is not set
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++CONFIG_MTD_REDBOOT_PARTS=y
++CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
++CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
++# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
++CONFIG_MTD_CMDLINE_PARTS=y
++# CONFIG_MTD_AFS_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++CONFIG_MTD_CFI=y
++CONFIG_MTD_JEDECPROBE=y
++CONFIG_MTD_GEN_PROBE=y
++# CONFIG_MTD_CFI_ADV_OPTIONS is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++CONFIG_MTD_CFI_INTELEXT=y
++CONFIG_MTD_CFI_AMDSTD=y
++# CONFIG_MTD_CFI_STAA is not set
++CONFIG_MTD_CFI_UTIL=y
++# CONFIG_MTD_RAM is not set
++CONFIG_MTD_ROM=y
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PHYSMAP is not set
++# CONFIG_MTD_ARM_INTEGRATOR is not set
++# CONFIG_MTD_IMPA7 is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++# CONFIG_MTD_DATAFLASH is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++CONFIG_MTD_NAND=y
++# CONFIG_MTD_NAND_VERIFY_WRITE is not set
++# CONFIG_MTD_NAND_ECC_SMC is not set
++# CONFIG_MTD_NAND_MUSEUM_IDS is not set
++CONFIG_MTD_NAND_IDS=y
++# CONFIG_MTD_NAND_S3C2410 is not set
++CONFIG_MTD_NAND_S3C=y
++# CONFIG_MTD_NAND_S3C_DEBUG is not set
++CONFIG_MTD_NO_ECC_WARNING=y
++CONFIG_MTD_NAND_S3C_HWECC=y
++CONFIG_S3C_LARGEPAGE_NAND=y
++# CONFIG_MTD_NAND_DISKONCHIP is not set
++# CONFIG_MTD_NAND_NANDSIM is not set
++# CONFIG_MTD_NAND_PLATFORM is not set
++# CONFIG_MTD_ALAUDA is not set
++# CONFIG_MTD_ONENAND is not set
++
++#
++# UBI - Unsorted block images
++#
++# CONFIG_MTD_UBI is not set
++CONFIG_PARPORT=y
++# CONFIG_PARPORT_PC is not set
++# CONFIG_PARPORT_GSC is not set
++# CONFIG_PARPORT_AX88796 is not set
++CONFIG_PARPORT_1284=y
++# CONFIG_PNP is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++CONFIG_BLK_DEV_NBD=m
++# CONFIG_BLK_DEV_UB is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=16
++CONFIG_BLK_DEV_RAM_SIZE=4096
++CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
++# CONFIG_CDROM_PKTCDVD is not set
++CONFIG_ATA_OVER_ETH=m
++CONFIG_MISC_DEVICES=y
++# CONFIG_EEPROM_93CX6 is not set
++CONFIG_IDE=y
++CONFIG_BLK_DEV_IDE=y
++
++#
++# Please see Documentation/ide.txt for help/info on IDE drives
++#
++# CONFIG_BLK_DEV_IDE_SATA is not set
++CONFIG_BLK_DEV_IDEDISK=y
++# CONFIG_IDEDISK_MULTI_MODE is not set
++CONFIG_BLK_DEV_IDECD=y
++CONFIG_BLK_DEV_IDETAPE=m
++CONFIG_BLK_DEV_IDEFLOPPY=m
++# CONFIG_IDE_TASK_IOCTL is not set
++CONFIG_IDE_PROC_FS=y
++
++#
++# IDE chipset support/bugfixes
++#
++CONFIG_IDE_GENERIC=y
++# CONFIG_BLK_DEV_PLATFORM is not set
++# CONFIG_IDE_ARM is not set
++
++#
++# Other IDE chipsets support
++#
++
++#
++# Note: most of these also require special kernel boot parameters
++#
++# CONFIG_BLK_DEV_4DRIVES is not set
++# CONFIG_BLK_DEV_ALI14XX is not set
++# CONFIG_BLK_DEV_DTC2278 is not set
++# CONFIG_BLK_DEV_HT6560B is not set
++# CONFIG_BLK_DEV_QD65XX is not set
++# CONFIG_BLK_DEV_UMC8672 is not set
++# CONFIG_BLK_DEV_IDEDMA is not set
++CONFIG_IDE_ARCH_OBSOLETE_INIT=y
++# CONFIG_BLK_DEV_HD is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++# CONFIG_SCSI is not set
++# CONFIG_SCSI_DMA is not set
++# CONFIG_SCSI_NETLINK is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++# CONFIG_ARCNET is not set
++# CONFIG_PHYLIB is not set
++CONFIG_NET_ETHERNET=y
++CONFIG_MII=y
++# CONFIG_AX88796 is not set
++# CONFIG_NET_VENDOR_3COM is not set
++# CONFIG_NET_VENDOR_SMC is not set
++# CONFIG_SMC91X is not set
++# CONFIG_DM9000 is not set
++CONFIG_SMC911X=y
++# CONFIG_NET_VENDOR_RACAL is not set
++# CONFIG_AT1700 is not set
++# CONFIG_DEPCA is not set
++# CONFIG_HP100 is not set
++# CONFIG_NET_ISA is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++CONFIG_NET_PCI=y
++# CONFIG_AC3200 is not set
++# CONFIG_APRICOT is not set
++# CONFIG_B44 is not set
++# CONFIG_CS89x0 is not set
++# CONFIG_NET_POCKET is not set
++CONFIG_NETDEV_1000=y
++CONFIG_NETDEV_10000=y
++# CONFIG_TR is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++# CONFIG_WLAN_80211 is not set
++
++#
++# USB Network Adapters
++#
++# CONFIG_USB_CATC is not set
++# CONFIG_USB_KAWETH is not set
++# CONFIG_USB_PEGASUS is not set
++# CONFIG_USB_RTL8150 is not set
++# CONFIG_USB_USBNET is not set
++# CONFIG_WAN is not set
++# CONFIG_PLIP is not set
++# CONFIG_PPP is not set
++# CONFIG_SLIP is not set
++# CONFIG_SHAPER is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++CONFIG_INPUT_MOUSEDEV_PSAUX=y
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
++# CONFIG_INPUT_JOYDEV is not set
++CONFIG_INPUT_TSDEV=y
++CONFIG_INPUT_TSDEV_SCREEN_X=480
++CONFIG_INPUT_TSDEV_SCREEN_Y=640
++CONFIG_INPUT_EVDEV=y
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++# CONFIG_KEYBOARD_GPIO is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++CONFIG_MOUSE_PS2_LOGIPS2PP=y
++CONFIG_MOUSE_PS2_SYNAPTICS=y
++CONFIG_MOUSE_PS2_LIFEBOOK=y
++CONFIG_MOUSE_PS2_TRACKPOINT=y
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_APPLETOUCH is not set
++# CONFIG_MOUSE_INPORT is not set
++# CONFIG_MOUSE_LOGIBM is not set
++# CONFIG_MOUSE_PC110PAD is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_MOUSE_GPIO is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++CONFIG_INPUT_TOUCHSCREEN=y
++# CONFIG_TOUCHSCREEN_ADS7846 is not set
++CONFIG_TOUCHSCREEN_S3C=y
++# CONFIG_TOUCHSCREEN_FUJITSU is not set
++# CONFIG_TOUCHSCREEN_GUNZE is not set
++# CONFIG_TOUCHSCREEN_ELO is not set
++# CONFIG_TOUCHSCREEN_MTOUCH is not set
++# CONFIG_TOUCHSCREEN_MK712 is not set
++# CONFIG_TOUCHSCREEN_PENMOUNT is not set
++# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
++# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
++# CONFIG_TOUCHSCREEN_UCB1400 is not set
++# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++# CONFIG_SERIO_PARKBD is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++CONFIG_SERIAL_NONSTANDARD=y
++# CONFIG_COMPUTONE is not set
++# CONFIG_ROCKETPORT is not set
++# CONFIG_CYCLADES is not set
++# CONFIG_DIGIEPCA is not set
++# CONFIG_MOXA_INTELLIO is not set
++# CONFIG_MOXA_SMARTIO is not set
++# CONFIG_MOXA_SMARTIO_NEW is not set
++# CONFIG_N_HDLC is not set
++# CONFIG_RISCOM8 is not set
++# CONFIG_SPECIALIX is not set
++# CONFIG_SX is not set
++# CONFIG_RIO is not set
++# CONFIG_STALDRV is not set
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_NR_UARTS=8
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++CONFIG_SERIAL_8250_EXTENDED=y
++CONFIG_SERIAL_8250_MANY_PORTS=y
++# CONFIG_SERIAL_8250_FOURPORT is not set
++# CONFIG_SERIAL_8250_ACCENT is not set
++# CONFIG_SERIAL_8250_BOCA is not set
++# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
++# CONFIG_SERIAL_8250_HUB6 is not set
++CONFIG_SERIAL_8250_SHARE_IRQ=y
++# CONFIG_SERIAL_8250_DETECT_IRQ is not set
++# CONFIG_SERIAL_8250_RSA is not set
++
++#
++# Non-8250 serial port support
++#
++CONFIG_SERIAL_S3C2410=y
++CONFIG_SERIAL_S3C2410_CONSOLE=y
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++CONFIG_PRINTER=y
++# CONFIG_LP_CONSOLE is not set
++CONFIG_PPDEV=y
++# CONFIG_IPMI_HANDLER is not set
++CONFIG_HW_RANDOM=y
++# CONFIG_NVRAM is not set
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_DEVPORT=y
++CONFIG_I2C=y
++CONFIG_I2C_BOARDINFO=y
++CONFIG_I2C_CHARDEV=m
++
++#
++# I2C Algorithms
++#
++CONFIG_I2C_ALGOBIT=m
++# CONFIG_I2C_ALGOPCF is not set
++# CONFIG_I2C_ALGOPCA is not set
++
++#
++# I2C Hardware Bus support
++#
++# CONFIG_I2C_ELEKTOR is not set
++# CONFIG_I2C_GPIO is not set
++# CONFIG_I2C_OCORES is not set
++# CONFIG_I2C_PARPORT is not set
++# CONFIG_I2C_PARPORT_LIGHT is not set
++CONFIG_I2C_S3C2410=y
++# CONFIG_I2C_SIMTEC is not set
++# CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_STUB is not set
++# CONFIG_I2C_TINY_USB is not set
++# CONFIG_I2C_PCA_ISA is not set
++
++#
++# Miscellaneous I2C Chip support
++#
++# CONFIG_SENSORS_DS1337 is not set
++# CONFIG_SENSORS_DS1374 is not set
++# CONFIG_DS1682 is not set
++CONFIG_SENSORS_EEPROM=m
++# CONFIG_SENSORS_PCF8574 is not set
++# CONFIG_SENSORS_PCA9539 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_SENSORS_MAX6875 is not set
++# CONFIG_SENSORS_TSL2550 is not set
++# CONFIG_I2C_DEBUG_CORE is not set
++# CONFIG_I2C_DEBUG_ALGO is not set
++# CONFIG_I2C_DEBUG_BUS is not set
++# CONFIG_I2C_DEBUG_CHIP is not set
++
++#
++# SPI support
++#
++# CONFIG_SPI is not set
++# CONFIG_SPI_MASTER is not set
++#
++# SPI Protocol Masters
++#
++# CONFIG_SPI_AT25 is not set
++# CONFIG_SPI_SPIDEV is not set
++# CONFIG_SPI_TLE62X0 is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++CONFIG_HWMON=y
++CONFIG_HWMON_VID=m
++# CONFIG_SENSORS_AD7418 is not set
++# CONFIG_SENSORS_ADM1021 is not set
++# CONFIG_SENSORS_ADM1025 is not set
++# CONFIG_SENSORS_ADM1026 is not set
++# CONFIG_SENSORS_ADM1029 is not set
++# CONFIG_SENSORS_ADM1031 is not set
++# CONFIG_SENSORS_ADM9240 is not set
++# CONFIG_SENSORS_ADT7470 is not set
++# CONFIG_SENSORS_ATXP1 is not set
++# CONFIG_SENSORS_DS1621 is not set
++# CONFIG_SENSORS_F71805F is not set
++# CONFIG_SENSORS_F71882FG is not set
++# CONFIG_SENSORS_F75375S is not set
++# CONFIG_SENSORS_GL518SM is not set
++# CONFIG_SENSORS_GL520SM is not set
++# CONFIG_SENSORS_IT87 is not set
++# CONFIG_SENSORS_LM63 is not set
++# CONFIG_SENSORS_LM70 is not set
++CONFIG_SENSORS_LM75=m
++# CONFIG_SENSORS_LM77 is not set
++CONFIG_SENSORS_LM78=m
++# CONFIG_SENSORS_LM80 is not set
++# CONFIG_SENSORS_LM83 is not set
++CONFIG_SENSORS_LM85=m
++# CONFIG_SENSORS_LM87 is not set
++# CONFIG_SENSORS_LM90 is not set
++# CONFIG_SENSORS_LM92 is not set
++# CONFIG_SENSORS_LM93 is not set
++# CONFIG_SENSORS_MAX1619 is not set
++# CONFIG_SENSORS_MAX6650 is not set
++# CONFIG_SENSORS_PC87360 is not set
++# CONFIG_SENSORS_PC87427 is not set
++# CONFIG_SENSORS_DME1737 is not set
++# CONFIG_SENSORS_SMSC47M1 is not set
++# CONFIG_SENSORS_SMSC47M192 is not set
++# CONFIG_SENSORS_SMSC47B397 is not set
++# CONFIG_SENSORS_THMC50 is not set
++# CONFIG_SENSORS_VT1211 is not set
++# CONFIG_SENSORS_W83781D is not set
++# CONFIG_SENSORS_W83791D is not set
++# CONFIG_SENSORS_W83792D is not set
++# CONFIG_SENSORS_W83793 is not set
++# CONFIG_SENSORS_W83L785TS is not set
++# CONFIG_SENSORS_W83627HF is not set
++# CONFIG_SENSORS_W83627EHF is not set
++# CONFIG_HWMON_DEBUG_CHIP is not set
++CONFIG_WATCHDOG=y
++# CONFIG_WATCHDOG_NOWAYOUT is not set
++
++#
++# Watchdog Device Drivers
++#
++# CONFIG_SOFT_WATCHDOG is not set
++CONFIG_S3C2410_WATCHDOG=y
++
++#
++# ISA-based Watchdog Cards
++#
++# CONFIG_PCWATCHDOG is not set
++# CONFIG_MIXCOMWD is not set
++# CONFIG_WDT is not set
++
++#
++# USB-based Watchdog Cards
++#
++# CONFIG_USBPCWATCHDOG is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++CONFIG_DAB=y
++# CONFIG_USB_DABUSB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++CONFIG_FIRMWARE_EDID=y
++# CONFIG_FB_DDC is not set
++# CONFIG_FB_CFB_FILLRECT is not set
++# CONFIG_FB_CFB_COPYAREA is not set
++# CONFIG_FB_CFB_IMAGEBLIT is not set
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++CONFIG_FB_MODE_HELPERS=y
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++CONFIG_FB_S3C=y
++# CONFIG_FB_S3C_LTV350QV is not set
++CONFIG_FB_S3C_LTE480WV=y
++CONFIG_FB_S3C_BPP=y
++# CONFIG_FB_S3C_BPP_8 is not set
++CONFIG_FB_S3C_BPP_16=y
++# CONFIG_FB_S3C_BPP_24 is not set
++# CONFIG_FB_S3C_BPP_32 is not set
++CONFIG_FB_S3C_NUM=1
++# CONFIG_FB_S3C_VIRTUAL_SCREEN is not set
++# CONFIG_FB_S3C_DOUBLE_BUFFERING is not set
++# CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_S3C2410 is not set
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++# CONFIG_MDA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++# CONFIG_LOGO_LINUX_CLUT224 is not set
++CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224=y
++
++#
++# Sound
++#
++CONFIG_SOUND=y
++
++#
++# Advanced Linux Sound Architecture
++#
++CONFIG_SND=y
++CONFIG_SND_TIMER=y
++CONFIG_SND_PCM=y
++CONFIG_SND_SEQUENCER=y
++# CONFIG_SND_SEQ_DUMMY is not set
++CONFIG_SND_OSSEMUL=y
++CONFIG_SND_MIXER_OSS=y
++CONFIG_SND_PCM_OSS=y
++CONFIG_SND_PCM_OSS_PLUGINS=y
++CONFIG_SND_SEQUENCER_OSS=y
++# CONFIG_SND_DYNAMIC_MINORS is not set
++CONFIG_SND_SUPPORT_OLD_API=y
++CONFIG_SND_VERBOSE_PROCFS=y
++# CONFIG_SND_VERBOSE_PRINTK is not set
++# CONFIG_SND_DEBUG is not set
++
++#
++# Generic devices
++#
++# CONFIG_SND_DUMMY is not set
++# CONFIG_SND_VIRMIDI is not set
++# CONFIG_SND_MTPAV is not set
++# CONFIG_SND_MTS64 is not set
++# CONFIG_SND_SERIAL_U16550 is not set
++# CONFIG_SND_MPU401 is not set
++# CONFIG_SND_PORTMAN2X4 is not set
++
++#
++# ALSA ARM devices
++#
++
++#
++# USB devices
++#
++# CONFIG_SND_USB_AUDIO is not set
++
++#
++# System on Chip audio support
++#
++CONFIG_SND_SOC=y
++
++#
++# SoC Audio for the Atmel AT91
++#
++
++#
++# SoC Audio for the Intel PXA2xx
++#
++
++#
++# SoC Audio for the Samsung S3C
++#
++CONFIG_SND_S3C_SOC=y
++# CONFIG_SND_S3C24XX_SOC_SMDK2450_WM9713 is not set
++CONFIG_SND_S3C2450_SOC_I2S=y
++CONFIG_SND_SOC_I2S_V40=y
++CONFIG_SND_S3C24XX_SOC_SMDK2450_WM8580=y
++# CONFIG_SND_S3C24XX_SOC_SMDK2450_WM8753 is not set
++CONFIG_SND_SOC_WM8580=y
++
++#
++# USB Input Devices
++#
++# CONFIG_USB_HID is not set
++
++#
++# USB HID Boot Protocol drivers
++#
++# CONFIG_USB_KBD is not set
++# CONFIG_USB_MOUSE is not set
++CONFIG_USB_SUPPORT=y
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
++# CONFIG_USB_ARCH_HAS_EHCI is not set
++CONFIG_USB=y
++# CONFIG_USB_DEBUG is not set
++
++#
++# Miscellaneous USB options
++#
++CONFIG_USB_DEVICEFS=y
++CONFIG_USB_DEVICE_CLASS=y
++# CONFIG_USB_DYNAMIC_MINORS is not set
++# CONFIG_USB_SUSPEND is not set
++# CONFIG_USB_PERSIST is not set
++# CONFIG_USB_OTG is not set
++
++#
++# USB Host Controller Drivers
++#
++# CONFIG_USB_ISP116X_HCD is not set
++CONFIG_USB_OHCI_HCD=y
++# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
++# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
++CONFIG_USB_OHCI_LITTLE_ENDIAN=y
++# CONFIG_USB_SL811_HCD is not set
++# CONFIG_USB_R8A66597_HCD is not set
++
++#
++# USB Device Class drivers
++#
++# CONFIG_USB_ACM is not set
++# CONFIG_USB_PRINTER is not set
++
++#
++# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
++#
++
++#
++# may also be needed; see USB_STORAGE Help for more information
++#
++# CONFIG_USB_LIBUSUAL is not set
++
++#
++# USB Imaging devices
++#
++# CONFIG_USB_MDC800 is not set
++CONFIG_USB_MON=y
++
++#
++# USB port drivers
++#
++# CONFIG_USB_USS720 is not set
++
++#
++# USB Serial Converter support
++#
++# CONFIG_USB_SERIAL is not set
++
++#
++# USB Miscellaneous drivers
++#
++# CONFIG_USB_EMI62 is not set
++# CONFIG_USB_EMI26 is not set
++# CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_AUERSWALD is not set
++# CONFIG_USB_RIO500 is not set
++# CONFIG_USB_LEGOTOWER is not set
++# CONFIG_USB_LCD is not set
++# CONFIG_USB_BERRY_CHARGE is not set
++# CONFIG_USB_LED is not set
++# CONFIG_USB_CYPRESS_CY7C63 is not set
++# CONFIG_USB_CYTHERM is not set
++# CONFIG_USB_PHIDGET is not set
++# CONFIG_USB_IDMOUSE is not set
++# CONFIG_USB_FTDI_ELAN is not set
++# CONFIG_USB_APPLEDISPLAY is not set
++# CONFIG_USB_LD is not set
++# CONFIG_USB_TRANCEVIBRATOR is not set
++# CONFIG_USB_IOWARRIOR is not set
++# CONFIG_USB_TEST is not set
++
++#
++# USB DSL modem support
++#
++
++#
++# USB Gadget Support
++#
++# CONFIG_USB_GADGET is not set
++CONFIG_MMC=y
++# CONFIG_MMC_DEBUG is not set
++# CONFIG_MMC_UNSAFE_RESUME is not set
++
++#
++# MMC/SD Card Drivers
++#
++CONFIG_MMC_BLOCK=y
++CONFIG_MMC_BLOCK_BOUNCE=y
++# CONFIG_SDIO_UART is not set
++
++#
++# MMC/SD Host Controller Drivers
++#
++# CONFIG_MMC_S3C is not set
++CONFIG_HSMMC_S3C=y
++# CONFIG_USE_MMC_AS_ROOT is not set
++# CONFIG_HSMMC_S3C_IRQ_WORKAROUND is not set
++CONFIG_HSMMC_SCATTERGATHER=y
++# CONFIG_S3CMMC_DEBUG is not set
++# CONFIG_MMC_SPI is not set
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=m
++
++#
++# LED drivers
++#
++CONFIG_LEDS_S3C24XX=m
++# CONFIG_LEDS_GPIO is not set
++
++#
++# LED Triggers
++#
++CONFIG_LEDS_TRIGGERS=y
++CONFIG_LEDS_TRIGGER_TIMER=m
++# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
++CONFIG_LEDS_TRIGGER_HEARTBEAT=m
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# I2C RTC drivers
++#
++# CONFIG_RTC_DRV_DS1307 is not set
++# CONFIG_RTC_DRV_DS1374 is not set
++# CONFIG_RTC_DRV_DS1672 is not set
++# CONFIG_RTC_DRV_MAX6900 is not set
++# CONFIG_RTC_DRV_RS5C372 is not set
++# CONFIG_RTC_DRV_ISL1208 is not set
++# CONFIG_RTC_DRV_X1205 is not set
++# CONFIG_RTC_DRV_PCF8563 is not set
++# CONFIG_RTC_DRV_PCF8583 is not set
++# CONFIG_RTC_DRV_M41T80 is not set
++
++#
++# SPI RTC drivers
++#
++# CONFIG_RTC_DRV_RS5C348 is not set
++# CONFIG_RTC_DRV_MAX6902 is not set
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_S3C=y
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++CONFIG_EXT3_FS=y
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
++# CONFIG_EXT4DEV_FS is not set
++CONFIG_JBD=y
++CONFIG_FS_MBCACHE=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_MINIX_FS is not set
++CONFIG_ROMFS_FS=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++CONFIG_MSDOS_FS=y
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
++# CONFIG_JFFS2_SUMMARY is not set
++# CONFIG_JFFS2_FS_XATTR is not set
++# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
++CONFIG_JFFS2_ZLIB=y
++# CONFIG_JFFS2_LZO is not set
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++CONFIG_CRAMFS=y
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=y
++# CONFIG_NFS_V3 is not set
++# CONFIG_NFS_V4 is not set
++# CONFIG_NFS_DIRECTIO is not set
++# CONFIG_NFSD is not set
++CONFIG_ROOT_NFS=y
++CONFIG_LOCKD=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=y
++# CONFIG_SUNRPC_BIND34 is not set
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++CONFIG_PARTITION_ADVANCED=y
++# CONFIG_ACORN_PARTITION is not set
++# CONFIG_OSF_PARTITION is not set
++# CONFIG_AMIGA_PARTITION is not set
++# CONFIG_ATARI_PARTITION is not set
++# CONFIG_MAC_PARTITION is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_BSD_DISKLABEL=y
++# CONFIG_MINIX_SUBPARTITION is not set
++CONFIG_SOLARIS_X86_PARTITION=y
++# CONFIG_UNIXWARE_DISKLABEL is not set
++# CONFIG_LDM_PARTITION is not set
++# CONFIG_SGI_PARTITION is not set
++# CONFIG_ULTRIX_PARTITION is not set
++# CONFIG_SUN_PARTITION is not set
++# CONFIG_KARMA_PARTITION is not set
++# CONFIG_EFI_PARTITION is not set
++# CONFIG_SYSV68_PARTITION is not set
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++CONFIG_NLS_ASCII=y
++CONFIG_NLS_ISO8859_1=y
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++CONFIG_INSTRUMENTATION=y
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_MAGIC_SYSRQ=y
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_TIMER_STATS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++CONFIG_DEBUG_MUTEXES=y
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++CONFIG_FRAME_POINTER=y
++CONFIG_FORCED_INLINING=y
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_SAMPLES is not set
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++CONFIG_DEBUG_LL=y
++# CONFIG_DEBUG_ICEDCC is not set
++CONFIG_DEBUG_S3C_PORT=y
++CONFIG_DEBUG_S3C_UART=0
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff --git a/arch/arm/configs/smdk2450nfs_defconfig b/arch/arm/configs/smdk2450nfs_defconfig
+new file mode 100644
+index 0000000..c376572
+--- /dev/null
++++ b/arch/arm/configs/smdk2450nfs_defconfig
+@@ -0,0 +1,1461 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.24.2
++# Tue Apr 1 15:30:55 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_AUDIT is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=16
++# CONFIG_CGROUPS is not set
++CONFIG_FAIR_GROUP_SCHED=y
++CONFIG_FAIR_USER_SCHED=y
++# CONFIG_FAIR_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++# CONFIG_RELAY is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++# CONFIG_EMBEDDED is not set
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++CONFIG_PLAT_S3C24XX=y
++CONFIG_CPU_S3C244X=y
++CONFIG_S3C2410_DMA=y
++# CONFIG_S3C2410_DMA_DEBUG is not set
++CONFIG_PLAT_S3C=y
++CONFIG_CPU_LLSERIAL_S3C2410=y
++CONFIG_CPU_LLSERIAL_S3C2440=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_WATCHDOG is not set
++# CONFIG_S3C_BOOT_ERROR_RESET is not set
++
++#
++# Power management
++#
++# CONFIG_S3C2410_PM_DEBUG is not set
++# CONFIG_S3C2410_PM_CHECK is not set
++CONFIG_S3C_LOWLEVEL_UART_PORT=0
++CONFIG_SPLIT_ROOT_FILESYSTEM=y
++CONFIG_MACH_SMDK=y
++
++#
++# S3C2400 Machines
++#
++CONFIG_CPU_S3C2410=y
++CONFIG_CPU_S3C2410_DMA=y
++CONFIG_S3C2410_PM=y
++CONFIG_S3C2410_GPIO=y
++CONFIG_S3C2410_CLOCK=y
++
++#
++# S3C2410 Machines
++#
++CONFIG_ARCH_SMDK2410=y
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++CONFIG_CPU_S3C2440=y
++CONFIG_S3C2440_DMA=y
++
++#
++# S3C2440 Machines
++#
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++CONFIG_ARCH_S3C2440=y
++# CONFIG_MACH_NEXCODER_2440 is not set
++CONFIG_SMDK2440_CPU2440=y
++
++#
++# S3C2442 Machines
++#
++# CONFIG_SMDK2440_CPU2442 is not set
++
++#
++# S3C2443 Machines
++#
++# CONFIG_MACH_SMDK2443 is not set
++CONFIG_CPU_S3C2450=y
++CONFIG_S3C2450_DMA=y
++
++#
++# S3C2450 Machines
++#
++CONFIG_MACH_SMDK2450=y
++
++#
++# S3C2416 Machines
++#
++# CONFIG_MACH_SMDK2416 is not set
++
++#
++# S3C6400 Machines
++#
++# CONFIG_MACH_SMDK6400 is not set
++
++#
++# S3C6410 Machines
++#
++# CONFIG_MACH_SMDK6410 is not set
++# CONFIG_MACH_FPGA6410 is not set
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++# CONFIG_CPU_ARM920T is not set
++CONFIG_CPU_ARM926T=y
++CONFIG_CPU_32v5=y
++CONFIG_CPU_ABRT_EV5TJ=y
++CONFIG_CPU_CACHE_VIVT=y
++CONFIG_CPU_COPY_V4WB=y
++CONFIG_CPU_TLB_V4WBI=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++# CONFIG_ARM_THUMB is not set
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
++# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++CONFIG_ISA=y
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++# CONFIG_PREEMPT is not set
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=200
++CONFIG_AEABI=y
++CONFIG_OABI_COMPAT=y
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4096
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="nfsroot=12.23.106.52:/opt/small_root_eabi ip=192.168.0.20:12.23.106.52:192.168.0.1:255.255.255.0:test::off init=/linuxrc console=ttySAC0,115200"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++# CONFIG_FPE_NWFPE_XP is not set
++# CONFIG_FPE_FASTFPE is not set
++# CONFIG_VFP is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_AOUT=y
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++CONFIG_PM=y
++# CONFIG_PM_LEGACY is not set
++# CONFIG_PM_DEBUG is not set
++CONFIG_PM_SLEEP=y
++CONFIG_SUSPEND_UP_POSSIBLE=y
++CONFIG_SUSPEND=y
++# CONFIG_APM_EMULATION is not set
++
++#
++# DVFS support
++#
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++# CONFIG_PACKET is not set
++CONFIG_UNIX=y
++CONFIG_XFRM=y
++# CONFIG_XFRM_USER is not set
++# CONFIG_XFRM_SUB_POLICY is not set
++# CONFIG_XFRM_MIGRATE is not set
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++CONFIG_IP_PNP=y
++# CONFIG_IP_PNP_DHCP is not set
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++CONFIG_INET_XFRM_MODE_TRANSPORT=y
++CONFIG_INET_XFRM_MODE_TUNNEL=y
++CONFIG_INET_XFRM_MODE_BEET=y
++# CONFIG_INET_LRO is not set
++CONFIG_INET_DIAG=y
++CONFIG_INET_TCP_DIAG=y
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IPV6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++# CONFIG_CFG80211 is not set
++# CONFIG_WIRELESS_EXT is not set
++# CONFIG_MAC80211 is not set
++# CONFIG_IEEE80211 is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++# CONFIG_FW_LOADER is not set
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++CONFIG_MTD_REDBOOT_PARTS=y
++CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
++CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
++# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
++CONFIG_MTD_CMDLINE_PARTS=y
++# CONFIG_MTD_AFS_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++CONFIG_MTD_CFI=y
++CONFIG_MTD_JEDECPROBE=y
++CONFIG_MTD_GEN_PROBE=y
++# CONFIG_MTD_CFI_ADV_OPTIONS is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++CONFIG_MTD_CFI_INTELEXT=y
++CONFIG_MTD_CFI_AMDSTD=y
++# CONFIG_MTD_CFI_STAA is not set
++CONFIG_MTD_CFI_UTIL=y
++# CONFIG_MTD_RAM is not set
++CONFIG_MTD_ROM=y
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PHYSMAP is not set
++# CONFIG_MTD_ARM_INTEGRATOR is not set
++# CONFIG_MTD_IMPA7 is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++# CONFIG_MTD_DATAFLASH is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++CONFIG_MTD_NAND=y
++# CONFIG_MTD_NAND_VERIFY_WRITE is not set
++# CONFIG_MTD_NAND_ECC_SMC is not set
++# CONFIG_MTD_NAND_MUSEUM_IDS is not set
++CONFIG_MTD_NAND_IDS=y
++# CONFIG_MTD_NAND_S3C2410 is not set
++CONFIG_MTD_NAND_S3C=y
++# CONFIG_MTD_NAND_S3C_DEBUG is not set
++CONFIG_MTD_NO_ECC_WARNING=y
++CONFIG_MTD_NAND_S3C_HWECC=y
++CONFIG_S3C_LARGEPAGE_NAND=y
++# CONFIG_MTD_NAND_DISKONCHIP is not set
++# CONFIG_MTD_NAND_NANDSIM is not set
++# CONFIG_MTD_NAND_PLATFORM is not set
++# CONFIG_MTD_ALAUDA is not set
++# CONFIG_MTD_ONENAND is not set
++
++#
++# UBI - Unsorted block images
++#
++# CONFIG_MTD_UBI is not set
++CONFIG_PARPORT=y
++# CONFIG_PARPORT_PC is not set
++# CONFIG_PARPORT_GSC is not set
++# CONFIG_PARPORT_AX88796 is not set
++CONFIG_PARPORT_1284=y
++# CONFIG_PNP is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++CONFIG_BLK_DEV_NBD=m
++# CONFIG_BLK_DEV_UB is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=16
++CONFIG_BLK_DEV_RAM_SIZE=4096
++CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
++# CONFIG_CDROM_PKTCDVD is not set
++CONFIG_ATA_OVER_ETH=m
++CONFIG_MISC_DEVICES=y
++# CONFIG_EEPROM_93CX6 is not set
++CONFIG_IDE=y
++CONFIG_BLK_DEV_IDE=y
++
++#
++# Please see Documentation/ide.txt for help/info on IDE drives
++#
++# CONFIG_BLK_DEV_IDE_SATA is not set
++CONFIG_BLK_DEV_IDEDISK=y
++# CONFIG_IDEDISK_MULTI_MODE is not set
++CONFIG_BLK_DEV_IDECD=y
++CONFIG_BLK_DEV_IDETAPE=m
++CONFIG_BLK_DEV_IDEFLOPPY=m
++# CONFIG_IDE_TASK_IOCTL is not set
++CONFIG_IDE_PROC_FS=y
++
++#
++# IDE chipset support/bugfixes
++#
++CONFIG_IDE_GENERIC=y
++# CONFIG_BLK_DEV_PLATFORM is not set
++# CONFIG_IDE_ARM is not set
++
++#
++# Other IDE chipsets support
++#
++
++#
++# Note: most of these also require special kernel boot parameters
++#
++# CONFIG_BLK_DEV_4DRIVES is not set
++# CONFIG_BLK_DEV_ALI14XX is not set
++# CONFIG_BLK_DEV_DTC2278 is not set
++# CONFIG_BLK_DEV_HT6560B is not set
++# CONFIG_BLK_DEV_QD65XX is not set
++# CONFIG_BLK_DEV_UMC8672 is not set
++# CONFIG_BLK_DEV_IDEDMA is not set
++CONFIG_IDE_ARCH_OBSOLETE_INIT=y
++# CONFIG_BLK_DEV_HD is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++# CONFIG_SCSI is not set
++# CONFIG_SCSI_DMA is not set
++# CONFIG_SCSI_NETLINK is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++# CONFIG_ARCNET is not set
++# CONFIG_PHYLIB is not set
++CONFIG_NET_ETHERNET=y
++CONFIG_MII=y
++# CONFIG_AX88796 is not set
++# CONFIG_NET_VENDOR_3COM is not set
++# CONFIG_NET_VENDOR_SMC is not set
++# CONFIG_SMC91X is not set
++# CONFIG_DM9000 is not set
++CONFIG_SMC911X=y
++# CONFIG_NET_VENDOR_RACAL is not set
++# CONFIG_AT1700 is not set
++# CONFIG_DEPCA is not set
++# CONFIG_HP100 is not set
++# CONFIG_NET_ISA is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++CONFIG_NET_PCI=y
++# CONFIG_AC3200 is not set
++# CONFIG_APRICOT is not set
++# CONFIG_B44 is not set
++# CONFIG_CS89x0 is not set
++# CONFIG_NET_POCKET is not set
++CONFIG_NETDEV_1000=y
++CONFIG_NETDEV_10000=y
++# CONFIG_TR is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++# CONFIG_WLAN_80211 is not set
++
++#
++# USB Network Adapters
++#
++# CONFIG_USB_CATC is not set
++# CONFIG_USB_KAWETH is not set
++# CONFIG_USB_PEGASUS is not set
++# CONFIG_USB_RTL8150 is not set
++# CONFIG_USB_USBNET is not set
++# CONFIG_WAN is not set
++# CONFIG_PLIP is not set
++# CONFIG_PPP is not set
++# CONFIG_SLIP is not set
++# CONFIG_SHAPER is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++CONFIG_INPUT_MOUSEDEV_PSAUX=y
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
++# CONFIG_INPUT_JOYDEV is not set
++# CONFIG_INPUT_TSDEV is not set
++# CONFIG_INPUT_EVDEV is not set
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++# CONFIG_KEYBOARD_GPIO is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++CONFIG_MOUSE_PS2_LOGIPS2PP=y
++CONFIG_MOUSE_PS2_SYNAPTICS=y
++CONFIG_MOUSE_PS2_LIFEBOOK=y
++CONFIG_MOUSE_PS2_TRACKPOINT=y
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_APPLETOUCH is not set
++# CONFIG_MOUSE_INPORT is not set
++# CONFIG_MOUSE_LOGIBM is not set
++# CONFIG_MOUSE_PC110PAD is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_MOUSE_GPIO is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++# CONFIG_INPUT_TOUCHSCREEN is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++# CONFIG_SERIO_PARKBD is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++CONFIG_SERIAL_NONSTANDARD=y
++# CONFIG_COMPUTONE is not set
++# CONFIG_ROCKETPORT is not set
++# CONFIG_CYCLADES is not set
++# CONFIG_DIGIEPCA is not set
++# CONFIG_MOXA_INTELLIO is not set
++# CONFIG_MOXA_SMARTIO is not set
++# CONFIG_MOXA_SMARTIO_NEW is not set
++# CONFIG_N_HDLC is not set
++# CONFIG_RISCOM8 is not set
++# CONFIG_SPECIALIX is not set
++# CONFIG_SX is not set
++# CONFIG_RIO is not set
++# CONFIG_STALDRV is not set
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_NR_UARTS=8
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++CONFIG_SERIAL_8250_EXTENDED=y
++CONFIG_SERIAL_8250_MANY_PORTS=y
++# CONFIG_SERIAL_8250_FOURPORT is not set
++# CONFIG_SERIAL_8250_ACCENT is not set
++# CONFIG_SERIAL_8250_BOCA is not set
++# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
++# CONFIG_SERIAL_8250_HUB6 is not set
++CONFIG_SERIAL_8250_SHARE_IRQ=y
++# CONFIG_SERIAL_8250_DETECT_IRQ is not set
++# CONFIG_SERIAL_8250_RSA is not set
++
++#
++# Non-8250 serial port support
++#
++CONFIG_SERIAL_S3C2410=y
++CONFIG_SERIAL_S3C2410_CONSOLE=y
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++CONFIG_PRINTER=y
++# CONFIG_LP_CONSOLE is not set
++CONFIG_PPDEV=y
++# CONFIG_IPMI_HANDLER is not set
++CONFIG_HW_RANDOM=y
++# CONFIG_NVRAM is not set
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_DEVPORT=y
++CONFIG_I2C=y
++CONFIG_I2C_BOARDINFO=y
++CONFIG_I2C_CHARDEV=m
++
++#
++# I2C Algorithms
++#
++CONFIG_I2C_ALGOBIT=m
++# CONFIG_I2C_ALGOPCF is not set
++# CONFIG_I2C_ALGOPCA is not set
++
++#
++# I2C Hardware Bus support
++#
++# CONFIG_I2C_ELEKTOR is not set
++# CONFIG_I2C_GPIO is not set
++# CONFIG_I2C_OCORES is not set
++# CONFIG_I2C_PARPORT is not set
++# CONFIG_I2C_PARPORT_LIGHT is not set
++CONFIG_I2C_S3C2410=y
++# CONFIG_I2C_SIMTEC is not set
++# CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_STUB is not set
++# CONFIG_I2C_TINY_USB is not set
++# CONFIG_I2C_PCA_ISA is not set
++
++#
++# Miscellaneous I2C Chip support
++#
++# CONFIG_SENSORS_DS1337 is not set
++# CONFIG_SENSORS_DS1374 is not set
++# CONFIG_DS1682 is not set
++CONFIG_SENSORS_EEPROM=m
++# CONFIG_SENSORS_PCF8574 is not set
++# CONFIG_SENSORS_PCA9539 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_SENSORS_MAX6875 is not set
++# CONFIG_SENSORS_TSL2550 is not set
++# CONFIG_I2C_DEBUG_CORE is not set
++# CONFIG_I2C_DEBUG_ALGO is not set
++# CONFIG_I2C_DEBUG_BUS is not set
++# CONFIG_I2C_DEBUG_CHIP is not set
++
++#
++# SPI support
++#
++# CONFIG_SPI is not set
++# CONFIG_SPI_MASTER is not set
++#
++# SPI Protocol Masters
++#
++# CONFIG_SPI_AT25 is not set
++# CONFIG_SPI_SPIDEV is not set
++# CONFIG_SPI_TLE62X0 is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++CONFIG_HWMON=y
++CONFIG_HWMON_VID=m
++# CONFIG_SENSORS_AD7418 is not set
++# CONFIG_SENSORS_ADM1021 is not set
++# CONFIG_SENSORS_ADM1025 is not set
++# CONFIG_SENSORS_ADM1026 is not set
++# CONFIG_SENSORS_ADM1029 is not set
++# CONFIG_SENSORS_ADM1031 is not set
++# CONFIG_SENSORS_ADM9240 is not set
++# CONFIG_SENSORS_ADT7470 is not set
++# CONFIG_SENSORS_ATXP1 is not set
++# CONFIG_SENSORS_DS1621 is not set
++# CONFIG_SENSORS_F71805F is not set
++# CONFIG_SENSORS_F71882FG is not set
++# CONFIG_SENSORS_F75375S is not set
++# CONFIG_SENSORS_GL518SM is not set
++# CONFIG_SENSORS_GL520SM is not set
++# CONFIG_SENSORS_IT87 is not set
++# CONFIG_SENSORS_LM63 is not set
++# CONFIG_SENSORS_LM70 is not set
++CONFIG_SENSORS_LM75=m
++# CONFIG_SENSORS_LM77 is not set
++CONFIG_SENSORS_LM78=m
++# CONFIG_SENSORS_LM80 is not set
++# CONFIG_SENSORS_LM83 is not set
++CONFIG_SENSORS_LM85=m
++# CONFIG_SENSORS_LM87 is not set
++# CONFIG_SENSORS_LM90 is not set
++# CONFIG_SENSORS_LM92 is not set
++# CONFIG_SENSORS_LM93 is not set
++# CONFIG_SENSORS_MAX1619 is not set
++# CONFIG_SENSORS_MAX6650 is not set
++# CONFIG_SENSORS_PC87360 is not set
++# CONFIG_SENSORS_PC87427 is not set
++# CONFIG_SENSORS_DME1737 is not set
++# CONFIG_SENSORS_SMSC47M1 is not set
++# CONFIG_SENSORS_SMSC47M192 is not set
++# CONFIG_SENSORS_SMSC47B397 is not set
++# CONFIG_SENSORS_THMC50 is not set
++# CONFIG_SENSORS_VT1211 is not set
++# CONFIG_SENSORS_W83781D is not set
++# CONFIG_SENSORS_W83791D is not set
++# CONFIG_SENSORS_W83792D is not set
++# CONFIG_SENSORS_W83793 is not set
++# CONFIG_SENSORS_W83L785TS is not set
++# CONFIG_SENSORS_W83627HF is not set
++# CONFIG_SENSORS_W83627EHF is not set
++# CONFIG_HWMON_DEBUG_CHIP is not set
++CONFIG_WATCHDOG=y
++# CONFIG_WATCHDOG_NOWAYOUT is not set
++
++#
++# Watchdog Device Drivers
++#
++# CONFIG_SOFT_WATCHDOG is not set
++CONFIG_S3C2410_WATCHDOG=y
++
++#
++# ISA-based Watchdog Cards
++#
++# CONFIG_PCWATCHDOG is not set
++# CONFIG_MIXCOMWD is not set
++# CONFIG_WDT is not set
++
++#
++# USB-based Watchdog Cards
++#
++# CONFIG_USBPCWATCHDOG is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++CONFIG_DAB=y
++# CONFIG_USB_DABUSB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++CONFIG_FIRMWARE_EDID=y
++# CONFIG_FB_DDC is not set
++# CONFIG_FB_CFB_FILLRECT is not set
++# CONFIG_FB_CFB_COPYAREA is not set
++# CONFIG_FB_CFB_IMAGEBLIT is not set
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++CONFIG_FB_MODE_HELPERS=y
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++CONFIG_FB_S3C=y
++# CONFIG_FB_S3C_LTV350QV is not set
++CONFIG_FB_S3C_LTE480WV=y
++CONFIG_FB_S3C_BPP=y
++# CONFIG_FB_S3C_BPP_8 is not set
++CONFIG_FB_S3C_BPP_16=y
++# CONFIG_FB_S3C_BPP_24 is not set
++# CONFIG_FB_S3C_BPP_32 is not set
++CONFIG_FB_S3C_NUM=1
++# CONFIG_FB_S3C_VIRTUAL_SCREEN is not set
++# CONFIG_FB_S3C_DOUBLE_BUFFERING is not set
++# CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_S3C2410 is not set
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++# CONFIG_MDA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++# CONFIG_LOGO_LINUX_CLUT224 is not set
++CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224=y
++
++#
++# Sound
++#
++CONFIG_SOUND=y
++
++#
++# Advanced Linux Sound Architecture
++#
++CONFIG_SND=y
++CONFIG_SND_TIMER=y
++CONFIG_SND_PCM=y
++CONFIG_SND_SEQUENCER=y
++# CONFIG_SND_SEQ_DUMMY is not set
++CONFIG_SND_OSSEMUL=y
++CONFIG_SND_MIXER_OSS=y
++CONFIG_SND_PCM_OSS=y
++CONFIG_SND_PCM_OSS_PLUGINS=y
++CONFIG_SND_SEQUENCER_OSS=y
++# CONFIG_SND_DYNAMIC_MINORS is not set
++CONFIG_SND_SUPPORT_OLD_API=y
++CONFIG_SND_VERBOSE_PROCFS=y
++# CONFIG_SND_VERBOSE_PRINTK is not set
++# CONFIG_SND_DEBUG is not set
++
++#
++# Generic devices
++#
++# CONFIG_SND_DUMMY is not set
++# CONFIG_SND_VIRMIDI is not set
++# CONFIG_SND_MTPAV is not set
++# CONFIG_SND_MTS64 is not set
++# CONFIG_SND_SERIAL_U16550 is not set
++# CONFIG_SND_MPU401 is not set
++# CONFIG_SND_PORTMAN2X4 is not set
++
++#
++# ALSA ARM devices
++#
++
++#
++# USB devices
++#
++# CONFIG_SND_USB_AUDIO is not set
++
++#
++# System on Chip audio support
++#
++CONFIG_SND_SOC=y
++
++#
++# SoC Audio for the Atmel AT91
++#
++
++#
++# SoC Audio for the Intel PXA2xx
++#
++
++#
++# SoC Audio for the Samsung S3C
++#
++CONFIG_SND_S3C_SOC=y
++# CONFIG_SND_S3C24XX_SOC_SMDK2450_WM9713 is not set
++CONFIG_SND_S3C2450_SOC_I2S=y
++CONFIG_SND_SOC_I2S_V40=y
++CONFIG_SND_S3C24XX_SOC_SMDK2450_WM8580=y
++# CONFIG_SND_S3C24XX_SOC_SMDK2450_WM8753 is not set
++CONFIG_SND_SOC_WM8580=y
++
++#
++# USB Input Devices
++#
++# CONFIG_USB_HID is not set
++
++#
++# USB HID Boot Protocol drivers
++#
++# CONFIG_USB_KBD is not set
++# CONFIG_USB_MOUSE is not set
++CONFIG_USB_SUPPORT=y
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
++# CONFIG_USB_ARCH_HAS_EHCI is not set
++CONFIG_USB=y
++# CONFIG_USB_DEBUG is not set
++
++#
++# Miscellaneous USB options
++#
++CONFIG_USB_DEVICEFS=y
++CONFIG_USB_DEVICE_CLASS=y
++# CONFIG_USB_DYNAMIC_MINORS is not set
++# CONFIG_USB_SUSPEND is not set
++# CONFIG_USB_PERSIST is not set
++# CONFIG_USB_OTG is not set
++
++#
++# USB Host Controller Drivers
++#
++# CONFIG_USB_ISP116X_HCD is not set
++CONFIG_USB_OHCI_HCD=y
++# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
++# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
++CONFIG_USB_OHCI_LITTLE_ENDIAN=y
++# CONFIG_USB_SL811_HCD is not set
++# CONFIG_USB_R8A66597_HCD is not set
++
++#
++# USB Device Class drivers
++#
++# CONFIG_USB_ACM is not set
++# CONFIG_USB_PRINTER is not set
++
++#
++# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
++#
++
++#
++# may also be needed; see USB_STORAGE Help for more information
++#
++# CONFIG_USB_LIBUSUAL is not set
++
++#
++# USB Imaging devices
++#
++# CONFIG_USB_MDC800 is not set
++CONFIG_USB_MON=y
++
++#
++# USB port drivers
++#
++# CONFIG_USB_USS720 is not set
++
++#
++# USB Serial Converter support
++#
++# CONFIG_USB_SERIAL is not set
++
++#
++# USB Miscellaneous drivers
++#
++# CONFIG_USB_EMI62 is not set
++# CONFIG_USB_EMI26 is not set
++# CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_AUERSWALD is not set
++# CONFIG_USB_RIO500 is not set
++# CONFIG_USB_LEGOTOWER is not set
++# CONFIG_USB_LCD is not set
++# CONFIG_USB_BERRY_CHARGE is not set
++# CONFIG_USB_LED is not set
++# CONFIG_USB_CYPRESS_CY7C63 is not set
++# CONFIG_USB_CYTHERM is not set
++# CONFIG_USB_PHIDGET is not set
++# CONFIG_USB_IDMOUSE is not set
++# CONFIG_USB_FTDI_ELAN is not set
++# CONFIG_USB_APPLEDISPLAY is not set
++# CONFIG_USB_LD is not set
++# CONFIG_USB_TRANCEVIBRATOR is not set
++# CONFIG_USB_IOWARRIOR is not set
++# CONFIG_USB_TEST is not set
++
++#
++# USB DSL modem support
++#
++
++#
++# USB Gadget Support
++#
++# CONFIG_USB_GADGET is not set
++# CONFIG_MMC is not set
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=m
++
++#
++# LED drivers
++#
++CONFIG_LEDS_S3C24XX=m
++# CONFIG_LEDS_GPIO is not set
++
++#
++# LED Triggers
++#
++CONFIG_LEDS_TRIGGERS=y
++CONFIG_LEDS_TRIGGER_TIMER=m
++# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
++CONFIG_LEDS_TRIGGER_HEARTBEAT=m
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# I2C RTC drivers
++#
++# CONFIG_RTC_DRV_DS1307 is not set
++# CONFIG_RTC_DRV_DS1374 is not set
++# CONFIG_RTC_DRV_DS1672 is not set
++# CONFIG_RTC_DRV_MAX6900 is not set
++# CONFIG_RTC_DRV_RS5C372 is not set
++# CONFIG_RTC_DRV_ISL1208 is not set
++# CONFIG_RTC_DRV_X1205 is not set
++# CONFIG_RTC_DRV_PCF8563 is not set
++# CONFIG_RTC_DRV_PCF8583 is not set
++# CONFIG_RTC_DRV_M41T80 is not set
++
++#
++# SPI RTC drivers
++#
++# CONFIG_RTC_DRV_RS5C348 is not set
++# CONFIG_RTC_DRV_MAX6902 is not set
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_S3C=y
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++CONFIG_EXT3_FS=y
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
++# CONFIG_EXT4DEV_FS is not set
++CONFIG_JBD=y
++CONFIG_FS_MBCACHE=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_MINIX_FS is not set
++CONFIG_ROMFS_FS=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++CONFIG_MSDOS_FS=y
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
++# CONFIG_JFFS2_SUMMARY is not set
++# CONFIG_JFFS2_FS_XATTR is not set
++# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
++CONFIG_JFFS2_ZLIB=y
++# CONFIG_JFFS2_LZO is not set
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++CONFIG_CRAMFS=y
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=y
++# CONFIG_NFS_V3 is not set
++# CONFIG_NFS_V4 is not set
++# CONFIG_NFS_DIRECTIO is not set
++# CONFIG_NFSD is not set
++CONFIG_ROOT_NFS=y
++CONFIG_LOCKD=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=y
++# CONFIG_SUNRPC_BIND34 is not set
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++CONFIG_PARTITION_ADVANCED=y
++# CONFIG_ACORN_PARTITION is not set
++# CONFIG_OSF_PARTITION is not set
++# CONFIG_AMIGA_PARTITION is not set
++# CONFIG_ATARI_PARTITION is not set
++# CONFIG_MAC_PARTITION is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_BSD_DISKLABEL=y
++# CONFIG_MINIX_SUBPARTITION is not set
++CONFIG_SOLARIS_X86_PARTITION=y
++# CONFIG_UNIXWARE_DISKLABEL is not set
++# CONFIG_LDM_PARTITION is not set
++# CONFIG_SGI_PARTITION is not set
++# CONFIG_ULTRIX_PARTITION is not set
++# CONFIG_SUN_PARTITION is not set
++# CONFIG_KARMA_PARTITION is not set
++# CONFIG_EFI_PARTITION is not set
++# CONFIG_SYSV68_PARTITION is not set
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++# CONFIG_NLS_CODEPAGE_437 is not set
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++# CONFIG_NLS_ASCII is not set
++# CONFIG_NLS_ISO8859_1 is not set
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++CONFIG_INSTRUMENTATION=y
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_MAGIC_SYSRQ=y
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_TIMER_STATS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++CONFIG_DEBUG_MUTEXES=y
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++CONFIG_FRAME_POINTER=y
++CONFIG_FORCED_INLINING=y
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_SAMPLES is not set
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++CONFIG_DEBUG_LL=y
++# CONFIG_DEBUG_ICEDCC is not set
++CONFIG_DEBUG_S3C_PORT=y
++CONFIG_DEBUG_S3C_UART=0
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff --git a/arch/arm/configs/smdk2450ramdisk_defconfig b/arch/arm/configs/smdk2450ramdisk_defconfig
+new file mode 100644
+index 0000000..233daa2
+--- /dev/null
++++ b/arch/arm/configs/smdk2450ramdisk_defconfig
+@@ -0,0 +1,1495 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.24.2
++# Wed Apr 2 13:49:45 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_AUDIT is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=16
++# CONFIG_CGROUPS is not set
++CONFIG_FAIR_GROUP_SCHED=y
++CONFIG_FAIR_USER_SCHED=y
++# CONFIG_FAIR_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++# CONFIG_RELAY is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++# CONFIG_EMBEDDED is not set
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++CONFIG_PLAT_S3C24XX=y
++CONFIG_CPU_S3C244X=y
++CONFIG_S3C2410_DMA=y
++# CONFIG_S3C2410_DMA_DEBUG is not set
++CONFIG_PLAT_S3C=y
++CONFIG_CPU_LLSERIAL_S3C2410=y
++CONFIG_CPU_LLSERIAL_S3C2440=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_WATCHDOG is not set
++# CONFIG_S3C_BOOT_ERROR_RESET is not set
++
++#
++# Power management
++#
++# CONFIG_S3C2410_PM_DEBUG is not set
++# CONFIG_S3C2410_PM_CHECK is not set
++CONFIG_S3C_LOWLEVEL_UART_PORT=0
++CONFIG_SPLIT_ROOT_FILESYSTEM=y
++CONFIG_MACH_SMDK=y
++
++#
++# S3C2400 Machines
++#
++CONFIG_CPU_S3C2410=y
++CONFIG_CPU_S3C2410_DMA=y
++CONFIG_S3C2410_PM=y
++CONFIG_S3C2410_GPIO=y
++CONFIG_S3C2410_CLOCK=y
++
++#
++# S3C2410 Machines
++#
++CONFIG_ARCH_SMDK2410=y
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++CONFIG_CPU_S3C2440=y
++CONFIG_S3C2440_DMA=y
++
++#
++# S3C2440 Machines
++#
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++CONFIG_ARCH_S3C2440=y
++# CONFIG_MACH_NEXCODER_2440 is not set
++CONFIG_SMDK2440_CPU2440=y
++
++#
++# S3C2442 Machines
++#
++# CONFIG_SMDK2440_CPU2442 is not set
++
++#
++# S3C2443 Machines
++#
++# CONFIG_MACH_SMDK2443 is not set
++CONFIG_CPU_S3C2450=y
++CONFIG_S3C2450_DMA=y
++
++#
++# S3C2450 Machines
++#
++CONFIG_MACH_SMDK2450=y
++
++#
++# S3C2416 Machines
++#
++# CONFIG_MACH_SMDK2416 is not set
++
++#
++# S3C6400 Machines
++#
++# CONFIG_MACH_SMDK6400 is not set
++
++#
++# S3C6410 Machines
++#
++# CONFIG_MACH_SMDK6410 is not set
++# CONFIG_MACH_FPGA6410 is not set
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++# CONFIG_CPU_ARM920T is not set
++CONFIG_CPU_ARM926T=y
++CONFIG_CPU_32v5=y
++CONFIG_CPU_ABRT_EV5TJ=y
++CONFIG_CPU_CACHE_VIVT=y
++CONFIG_CPU_COPY_V4WB=y
++CONFIG_CPU_TLB_V4WBI=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++# CONFIG_ARM_THUMB is not set
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
++# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++CONFIG_ISA=y
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++# CONFIG_PREEMPT is not set
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=200
++CONFIG_AEABI=y
++CONFIG_OABI_COMPAT=y
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4096
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x30800000,8M console=ttySAC0,115200 init=/linuxrc"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++# CONFIG_FPE_NWFPE_XP is not set
++# CONFIG_FPE_FASTFPE is not set
++# CONFIG_VFP is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_AOUT=y
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++CONFIG_PM=y
++# CONFIG_PM_LEGACY is not set
++# CONFIG_PM_DEBUG is not set
++CONFIG_PM_SLEEP=y
++CONFIG_SUSPEND_UP_POSSIBLE=y
++CONFIG_SUSPEND=y
++# CONFIG_APM_EMULATION is not set
++
++#
++# DVFS support
++#
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++# CONFIG_PACKET is not set
++CONFIG_UNIX=y
++CONFIG_XFRM=y
++# CONFIG_XFRM_USER is not set
++# CONFIG_XFRM_SUB_POLICY is not set
++# CONFIG_XFRM_MIGRATE is not set
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++CONFIG_IP_PNP=y
++# CONFIG_IP_PNP_DHCP is not set
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++CONFIG_INET_XFRM_MODE_TRANSPORT=y
++CONFIG_INET_XFRM_MODE_TUNNEL=y
++CONFIG_INET_XFRM_MODE_BEET=y
++# CONFIG_INET_LRO is not set
++CONFIG_INET_DIAG=y
++CONFIG_INET_TCP_DIAG=y
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IPV6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++# CONFIG_CFG80211 is not set
++# CONFIG_WIRELESS_EXT is not set
++# CONFIG_MAC80211 is not set
++# CONFIG_IEEE80211 is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++# CONFIG_FW_LOADER is not set
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++CONFIG_MTD_REDBOOT_PARTS=y
++CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
++CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
++# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
++CONFIG_MTD_CMDLINE_PARTS=y
++# CONFIG_MTD_AFS_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++CONFIG_MTD_CFI=y
++CONFIG_MTD_JEDECPROBE=y
++CONFIG_MTD_GEN_PROBE=y
++# CONFIG_MTD_CFI_ADV_OPTIONS is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++CONFIG_MTD_CFI_INTELEXT=y
++CONFIG_MTD_CFI_AMDSTD=y
++# CONFIG_MTD_CFI_STAA is not set
++CONFIG_MTD_CFI_UTIL=y
++# CONFIG_MTD_RAM is not set
++CONFIG_MTD_ROM=y
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PHYSMAP is not set
++# CONFIG_MTD_ARM_INTEGRATOR is not set
++# CONFIG_MTD_IMPA7 is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++# CONFIG_MTD_DATAFLASH is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++CONFIG_MTD_NAND=y
++# CONFIG_MTD_NAND_VERIFY_WRITE is not set
++# CONFIG_MTD_NAND_ECC_SMC is not set
++# CONFIG_MTD_NAND_MUSEUM_IDS is not set
++CONFIG_MTD_NAND_IDS=y
++# CONFIG_MTD_NAND_S3C2410 is not set
++CONFIG_MTD_NAND_S3C=y
++# CONFIG_MTD_NAND_S3C_DEBUG is not set
++CONFIG_MTD_NO_ECC_WARNING=y
++CONFIG_MTD_NAND_S3C_HWECC=y
++CONFIG_S3C_LARGEPAGE_NAND=y
++# CONFIG_MTD_NAND_DISKONCHIP is not set
++# CONFIG_MTD_NAND_NANDSIM is not set
++# CONFIG_MTD_NAND_PLATFORM is not set
++# CONFIG_MTD_ALAUDA is not set
++# CONFIG_MTD_ONENAND is not set
++
++#
++# UBI - Unsorted block images
++#
++# CONFIG_MTD_UBI is not set
++CONFIG_PARPORT=y
++# CONFIG_PARPORT_PC is not set
++# CONFIG_PARPORT_GSC is not set
++# CONFIG_PARPORT_AX88796 is not set
++CONFIG_PARPORT_1284=y
++# CONFIG_PNP is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++CONFIG_BLK_DEV_NBD=m
++# CONFIG_BLK_DEV_UB is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=16
++CONFIG_BLK_DEV_RAM_SIZE=8192
++CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
++# CONFIG_CDROM_PKTCDVD is not set
++CONFIG_ATA_OVER_ETH=m
++CONFIG_MISC_DEVICES=y
++# CONFIG_EEPROM_93CX6 is not set
++CONFIG_IDE=y
++CONFIG_BLK_DEV_IDE=y
++
++#
++# Please see Documentation/ide.txt for help/info on IDE drives
++#
++# CONFIG_BLK_DEV_IDE_SATA is not set
++CONFIG_BLK_DEV_IDEDISK=y
++# CONFIG_IDEDISK_MULTI_MODE is not set
++CONFIG_BLK_DEV_IDECD=y
++CONFIG_BLK_DEV_IDETAPE=m
++CONFIG_BLK_DEV_IDEFLOPPY=m
++# CONFIG_IDE_TASK_IOCTL is not set
++CONFIG_IDE_PROC_FS=y
++
++#
++# IDE chipset support/bugfixes
++#
++CONFIG_IDE_GENERIC=y
++# CONFIG_BLK_DEV_PLATFORM is not set
++# CONFIG_IDE_ARM is not set
++
++#
++# Other IDE chipsets support
++#
++
++#
++# Note: most of these also require special kernel boot parameters
++#
++# CONFIG_BLK_DEV_4DRIVES is not set
++# CONFIG_BLK_DEV_ALI14XX is not set
++# CONFIG_BLK_DEV_DTC2278 is not set
++# CONFIG_BLK_DEV_HT6560B is not set
++# CONFIG_BLK_DEV_QD65XX is not set
++# CONFIG_BLK_DEV_UMC8672 is not set
++# CONFIG_BLK_DEV_IDEDMA is not set
++CONFIG_IDE_ARCH_OBSOLETE_INIT=y
++# CONFIG_BLK_DEV_HD is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++# CONFIG_SCSI is not set
++# CONFIG_SCSI_DMA is not set
++# CONFIG_SCSI_NETLINK is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++# CONFIG_ARCNET is not set
++# CONFIG_PHYLIB is not set
++CONFIG_NET_ETHERNET=y
++CONFIG_MII=y
++# CONFIG_AX88796 is not set
++# CONFIG_NET_VENDOR_3COM is not set
++# CONFIG_NET_VENDOR_SMC is not set
++# CONFIG_SMC91X is not set
++# CONFIG_DM9000 is not set
++CONFIG_SMC911X=y
++# CONFIG_NET_VENDOR_RACAL is not set
++# CONFIG_AT1700 is not set
++# CONFIG_DEPCA is not set
++# CONFIG_HP100 is not set
++# CONFIG_NET_ISA is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++CONFIG_NET_PCI=y
++# CONFIG_AC3200 is not set
++# CONFIG_APRICOT is not set
++# CONFIG_B44 is not set
++# CONFIG_CS89x0 is not set
++# CONFIG_NET_POCKET is not set
++CONFIG_NETDEV_1000=y
++CONFIG_NETDEV_10000=y
++# CONFIG_TR is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++# CONFIG_WLAN_80211 is not set
++
++#
++# USB Network Adapters
++#
++# CONFIG_USB_CATC is not set
++# CONFIG_USB_KAWETH is not set
++# CONFIG_USB_PEGASUS is not set
++# CONFIG_USB_RTL8150 is not set
++# CONFIG_USB_USBNET is not set
++# CONFIG_WAN is not set
++# CONFIG_PLIP is not set
++# CONFIG_PPP is not set
++# CONFIG_SLIP is not set
++# CONFIG_SHAPER is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++CONFIG_INPUT_MOUSEDEV_PSAUX=y
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
++# CONFIG_INPUT_JOYDEV is not set
++CONFIG_INPUT_TSDEV=y
++CONFIG_INPUT_TSDEV_SCREEN_X=480
++CONFIG_INPUT_TSDEV_SCREEN_Y=640
++CONFIG_INPUT_EVDEV=y
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++# CONFIG_KEYBOARD_GPIO is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++CONFIG_MOUSE_PS2_LOGIPS2PP=y
++CONFIG_MOUSE_PS2_SYNAPTICS=y
++CONFIG_MOUSE_PS2_LIFEBOOK=y
++CONFIG_MOUSE_PS2_TRACKPOINT=y
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_APPLETOUCH is not set
++# CONFIG_MOUSE_INPORT is not set
++# CONFIG_MOUSE_LOGIBM is not set
++# CONFIG_MOUSE_PC110PAD is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_MOUSE_GPIO is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++CONFIG_INPUT_TOUCHSCREEN=y
++# CONFIG_TOUCHSCREEN_ADS7846 is not set
++CONFIG_TOUCHSCREEN_S3C=y
++# CONFIG_TOUCHSCREEN_FUJITSU is not set
++# CONFIG_TOUCHSCREEN_GUNZE is not set
++# CONFIG_TOUCHSCREEN_ELO is not set
++# CONFIG_TOUCHSCREEN_MTOUCH is not set
++# CONFIG_TOUCHSCREEN_MK712 is not set
++# CONFIG_TOUCHSCREEN_PENMOUNT is not set
++# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
++# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
++# CONFIG_TOUCHSCREEN_UCB1400 is not set
++# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++# CONFIG_SERIO_PARKBD is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++CONFIG_SERIAL_NONSTANDARD=y
++# CONFIG_COMPUTONE is not set
++# CONFIG_ROCKETPORT is not set
++# CONFIG_CYCLADES is not set
++# CONFIG_DIGIEPCA is not set
++# CONFIG_MOXA_INTELLIO is not set
++# CONFIG_MOXA_SMARTIO is not set
++# CONFIG_MOXA_SMARTIO_NEW is not set
++# CONFIG_N_HDLC is not set
++# CONFIG_RISCOM8 is not set
++# CONFIG_SPECIALIX is not set
++# CONFIG_SX is not set
++# CONFIG_RIO is not set
++# CONFIG_STALDRV is not set
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_NR_UARTS=8
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++CONFIG_SERIAL_8250_EXTENDED=y
++CONFIG_SERIAL_8250_MANY_PORTS=y
++# CONFIG_SERIAL_8250_FOURPORT is not set
++# CONFIG_SERIAL_8250_ACCENT is not set
++# CONFIG_SERIAL_8250_BOCA is not set
++# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
++# CONFIG_SERIAL_8250_HUB6 is not set
++CONFIG_SERIAL_8250_SHARE_IRQ=y
++# CONFIG_SERIAL_8250_DETECT_IRQ is not set
++# CONFIG_SERIAL_8250_RSA is not set
++
++#
++# Non-8250 serial port support
++#
++CONFIG_SERIAL_S3C2410=y
++CONFIG_SERIAL_S3C2410_CONSOLE=y
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++CONFIG_PRINTER=y
++# CONFIG_LP_CONSOLE is not set
++CONFIG_PPDEV=y
++# CONFIG_IPMI_HANDLER is not set
++CONFIG_HW_RANDOM=y
++# CONFIG_NVRAM is not set
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_DEVPORT=y
++CONFIG_I2C=y
++CONFIG_I2C_BOARDINFO=y
++CONFIG_I2C_CHARDEV=m
++
++#
++# I2C Algorithms
++#
++CONFIG_I2C_ALGOBIT=m
++# CONFIG_I2C_ALGOPCF is not set
++# CONFIG_I2C_ALGOPCA is not set
++
++#
++# I2C Hardware Bus support
++#
++# CONFIG_I2C_ELEKTOR is not set
++# CONFIG_I2C_GPIO is not set
++# CONFIG_I2C_OCORES is not set
++# CONFIG_I2C_PARPORT is not set
++# CONFIG_I2C_PARPORT_LIGHT is not set
++CONFIG_I2C_S3C2410=y
++# CONFIG_I2C_SIMTEC is not set
++# CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_STUB is not set
++# CONFIG_I2C_TINY_USB is not set
++# CONFIG_I2C_PCA_ISA is not set
++
++#
++# Miscellaneous I2C Chip support
++#
++# CONFIG_SENSORS_DS1337 is not set
++# CONFIG_SENSORS_DS1374 is not set
++# CONFIG_DS1682 is not set
++CONFIG_SENSORS_EEPROM=m
++# CONFIG_SENSORS_PCF8574 is not set
++# CONFIG_SENSORS_PCA9539 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_SENSORS_MAX6875 is not set
++# CONFIG_SENSORS_TSL2550 is not set
++# CONFIG_I2C_DEBUG_CORE is not set
++# CONFIG_I2C_DEBUG_ALGO is not set
++# CONFIG_I2C_DEBUG_BUS is not set
++# CONFIG_I2C_DEBUG_CHIP is not set
++
++#
++# SPI support
++#
++# CONFIG_SPI is not set
++# CONFIG_SPI_MASTER is not set
++#
++# SPI Protocol Masters
++#
++# CONFIG_SPI_AT25 is not set
++# CONFIG_SPI_SPIDEV is not set
++# CONFIG_SPI_TLE62X0 is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++CONFIG_HWMON=y
++CONFIG_HWMON_VID=m
++# CONFIG_SENSORS_AD7418 is not set
++# CONFIG_SENSORS_ADM1021 is not set
++# CONFIG_SENSORS_ADM1025 is not set
++# CONFIG_SENSORS_ADM1026 is not set
++# CONFIG_SENSORS_ADM1029 is not set
++# CONFIG_SENSORS_ADM1031 is not set
++# CONFIG_SENSORS_ADM9240 is not set
++# CONFIG_SENSORS_ADT7470 is not set
++# CONFIG_SENSORS_ATXP1 is not set
++# CONFIG_SENSORS_DS1621 is not set
++# CONFIG_SENSORS_F71805F is not set
++# CONFIG_SENSORS_F71882FG is not set
++# CONFIG_SENSORS_F75375S is not set
++# CONFIG_SENSORS_GL518SM is not set
++# CONFIG_SENSORS_GL520SM is not set
++# CONFIG_SENSORS_IT87 is not set
++# CONFIG_SENSORS_LM63 is not set
++# CONFIG_SENSORS_LM70 is not set
++CONFIG_SENSORS_LM75=m
++# CONFIG_SENSORS_LM77 is not set
++CONFIG_SENSORS_LM78=m
++# CONFIG_SENSORS_LM80 is not set
++# CONFIG_SENSORS_LM83 is not set
++CONFIG_SENSORS_LM85=m
++# CONFIG_SENSORS_LM87 is not set
++# CONFIG_SENSORS_LM90 is not set
++# CONFIG_SENSORS_LM92 is not set
++# CONFIG_SENSORS_LM93 is not set
++# CONFIG_SENSORS_MAX1619 is not set
++# CONFIG_SENSORS_MAX6650 is not set
++# CONFIG_SENSORS_PC87360 is not set
++# CONFIG_SENSORS_PC87427 is not set
++# CONFIG_SENSORS_DME1737 is not set
++# CONFIG_SENSORS_SMSC47M1 is not set
++# CONFIG_SENSORS_SMSC47M192 is not set
++# CONFIG_SENSORS_SMSC47B397 is not set
++# CONFIG_SENSORS_THMC50 is not set
++# CONFIG_SENSORS_VT1211 is not set
++# CONFIG_SENSORS_W83781D is not set
++# CONFIG_SENSORS_W83791D is not set
++# CONFIG_SENSORS_W83792D is not set
++# CONFIG_SENSORS_W83793 is not set
++# CONFIG_SENSORS_W83L785TS is not set
++# CONFIG_SENSORS_W83627HF is not set
++# CONFIG_SENSORS_W83627EHF is not set
++# CONFIG_HWMON_DEBUG_CHIP is not set
++CONFIG_WATCHDOG=y
++# CONFIG_WATCHDOG_NOWAYOUT is not set
++
++#
++# Watchdog Device Drivers
++#
++# CONFIG_SOFT_WATCHDOG is not set
++CONFIG_S3C2410_WATCHDOG=y
++
++#
++# ISA-based Watchdog Cards
++#
++# CONFIG_PCWATCHDOG is not set
++# CONFIG_MIXCOMWD is not set
++# CONFIG_WDT is not set
++
++#
++# USB-based Watchdog Cards
++#
++# CONFIG_USBPCWATCHDOG is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++CONFIG_DAB=y
++# CONFIG_USB_DABUSB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++CONFIG_FIRMWARE_EDID=y
++# CONFIG_FB_DDC is not set
++# CONFIG_FB_CFB_FILLRECT is not set
++# CONFIG_FB_CFB_COPYAREA is not set
++# CONFIG_FB_CFB_IMAGEBLIT is not set
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++CONFIG_FB_MODE_HELPERS=y
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++CONFIG_FB_S3C=y
++# CONFIG_FB_S3C_LTV350QV is not set
++CONFIG_FB_S3C_LTE480WV=y
++CONFIG_FB_S3C_BPP=y
++# CONFIG_FB_S3C_BPP_8 is not set
++CONFIG_FB_S3C_BPP_16=y
++# CONFIG_FB_S3C_BPP_24 is not set
++# CONFIG_FB_S3C_BPP_32 is not set
++CONFIG_FB_S3C_NUM=1
++# CONFIG_FB_S3C_VIRTUAL_SCREEN is not set
++# CONFIG_FB_S3C_DOUBLE_BUFFERING is not set
++# CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_S3C2410 is not set
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++# CONFIG_MDA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++# CONFIG_LOGO_LINUX_CLUT224 is not set
++CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224=y
++
++#
++# Sound
++#
++CONFIG_SOUND=y
++
++#
++# Advanced Linux Sound Architecture
++#
++CONFIG_SND=y
++CONFIG_SND_TIMER=y
++CONFIG_SND_PCM=y
++CONFIG_SND_SEQUENCER=y
++# CONFIG_SND_SEQ_DUMMY is not set
++CONFIG_SND_OSSEMUL=y
++CONFIG_SND_MIXER_OSS=y
++CONFIG_SND_PCM_OSS=y
++CONFIG_SND_PCM_OSS_PLUGINS=y
++CONFIG_SND_SEQUENCER_OSS=y
++# CONFIG_SND_DYNAMIC_MINORS is not set
++CONFIG_SND_SUPPORT_OLD_API=y
++CONFIG_SND_VERBOSE_PROCFS=y
++# CONFIG_SND_VERBOSE_PRINTK is not set
++# CONFIG_SND_DEBUG is not set
++
++#
++# Generic devices
++#
++# CONFIG_SND_DUMMY is not set
++# CONFIG_SND_VIRMIDI is not set
++# CONFIG_SND_MTPAV is not set
++# CONFIG_SND_MTS64 is not set
++# CONFIG_SND_SERIAL_U16550 is not set
++# CONFIG_SND_MPU401 is not set
++# CONFIG_SND_PORTMAN2X4 is not set
++
++#
++# ALSA ARM devices
++#
++
++#
++# USB devices
++#
++# CONFIG_SND_USB_AUDIO is not set
++
++#
++# System on Chip audio support
++#
++CONFIG_SND_SOC=y
++
++#
++# SoC Audio for the Atmel AT91
++#
++
++#
++# SoC Audio for the Intel PXA2xx
++#
++
++#
++# SoC Audio for the Samsung S3C
++#
++CONFIG_SND_S3C_SOC=y
++# CONFIG_SND_S3C24XX_SOC_SMDK2450_WM9713 is not set
++CONFIG_SND_S3C2450_SOC_I2S=y
++CONFIG_SND_SOC_I2S_V40=y
++CONFIG_SND_S3C24XX_SOC_SMDK2450_WM8580=y
++# CONFIG_SND_S3C24XX_SOC_SMDK2450_WM8753 is not set
++CONFIG_SND_SOC_WM8580=y
++
++#
++# USB Input Devices
++#
++# CONFIG_USB_HID is not set
++
++#
++# USB HID Boot Protocol drivers
++#
++# CONFIG_USB_KBD is not set
++# CONFIG_USB_MOUSE is not set
++CONFIG_USB_SUPPORT=y
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
++# CONFIG_USB_ARCH_HAS_EHCI is not set
++CONFIG_USB=y
++# CONFIG_USB_DEBUG is not set
++
++#
++# Miscellaneous USB options
++#
++CONFIG_USB_DEVICEFS=y
++CONFIG_USB_DEVICE_CLASS=y
++# CONFIG_USB_DYNAMIC_MINORS is not set
++# CONFIG_USB_SUSPEND is not set
++# CONFIG_USB_PERSIST is not set
++# CONFIG_USB_OTG is not set
++
++#
++# USB Host Controller Drivers
++#
++# CONFIG_USB_ISP116X_HCD is not set
++CONFIG_USB_OHCI_HCD=y
++# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
++# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
++CONFIG_USB_OHCI_LITTLE_ENDIAN=y
++# CONFIG_USB_SL811_HCD is not set
++# CONFIG_USB_R8A66597_HCD is not set
++
++#
++# USB Device Class drivers
++#
++# CONFIG_USB_ACM is not set
++# CONFIG_USB_PRINTER is not set
++
++#
++# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
++#
++
++#
++# may also be needed; see USB_STORAGE Help for more information
++#
++# CONFIG_USB_LIBUSUAL is not set
++
++#
++# USB Imaging devices
++#
++# CONFIG_USB_MDC800 is not set
++CONFIG_USB_MON=y
++
++#
++# USB port drivers
++#
++# CONFIG_USB_USS720 is not set
++
++#
++# USB Serial Converter support
++#
++# CONFIG_USB_SERIAL is not set
++
++#
++# USB Miscellaneous drivers
++#
++# CONFIG_USB_EMI62 is not set
++# CONFIG_USB_EMI26 is not set
++# CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_AUERSWALD is not set
++# CONFIG_USB_RIO500 is not set
++# CONFIG_USB_LEGOTOWER is not set
++# CONFIG_USB_LCD is not set
++# CONFIG_USB_BERRY_CHARGE is not set
++# CONFIG_USB_LED is not set
++# CONFIG_USB_CYPRESS_CY7C63 is not set
++# CONFIG_USB_CYTHERM is not set
++# CONFIG_USB_PHIDGET is not set
++# CONFIG_USB_IDMOUSE is not set
++# CONFIG_USB_FTDI_ELAN is not set
++# CONFIG_USB_APPLEDISPLAY is not set
++# CONFIG_USB_LD is not set
++# CONFIG_USB_TRANCEVIBRATOR is not set
++# CONFIG_USB_IOWARRIOR is not set
++# CONFIG_USB_TEST is not set
++
++#
++# USB DSL modem support
++#
++
++#
++# USB Gadget Support
++#
++# CONFIG_USB_GADGET is not set
++CONFIG_MMC=y
++# CONFIG_MMC_DEBUG is not set
++# CONFIG_MMC_UNSAFE_RESUME is not set
++
++#
++# MMC/SD Card Drivers
++#
++CONFIG_MMC_BLOCK=y
++CONFIG_MMC_BLOCK_BOUNCE=y
++# CONFIG_SDIO_UART is not set
++
++#
++# MMC/SD Host Controller Drivers
++#
++# CONFIG_MMC_S3C is not set
++CONFIG_HSMMC_S3C=y
++# CONFIG_USE_MMC_AS_ROOT is not set
++# CONFIG_HSMMC_S3C_IRQ_WORKAROUND is not set
++CONFIG_HSMMC_SCATTERGATHER=y
++# CONFIG_S3CMMC_DEBUG is not set
++# CONFIG_MMC_SPI is not set
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=m
++
++#
++# LED drivers
++#
++CONFIG_LEDS_S3C24XX=m
++# CONFIG_LEDS_GPIO is not set
++
++#
++# LED Triggers
++#
++CONFIG_LEDS_TRIGGERS=y
++CONFIG_LEDS_TRIGGER_TIMER=m
++# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
++CONFIG_LEDS_TRIGGER_HEARTBEAT=m
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# I2C RTC drivers
++#
++# CONFIG_RTC_DRV_DS1307 is not set
++# CONFIG_RTC_DRV_DS1374 is not set
++# CONFIG_RTC_DRV_DS1672 is not set
++# CONFIG_RTC_DRV_MAX6900 is not set
++# CONFIG_RTC_DRV_RS5C372 is not set
++# CONFIG_RTC_DRV_ISL1208 is not set
++# CONFIG_RTC_DRV_X1205 is not set
++# CONFIG_RTC_DRV_PCF8563 is not set
++# CONFIG_RTC_DRV_PCF8583 is not set
++# CONFIG_RTC_DRV_M41T80 is not set
++
++#
++# SPI RTC drivers
++#
++# CONFIG_RTC_DRV_RS5C348 is not set
++# CONFIG_RTC_DRV_MAX6902 is not set
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_S3C=y
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++CONFIG_EXT3_FS=y
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
++# CONFIG_EXT4DEV_FS is not set
++CONFIG_JBD=y
++CONFIG_FS_MBCACHE=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_MINIX_FS is not set
++CONFIG_ROMFS_FS=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++CONFIG_MSDOS_FS=y
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
++# CONFIG_JFFS2_SUMMARY is not set
++# CONFIG_JFFS2_FS_XATTR is not set
++# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
++CONFIG_JFFS2_ZLIB=y
++# CONFIG_JFFS2_LZO is not set
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++CONFIG_CRAMFS=y
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=y
++# CONFIG_NFS_V3 is not set
++# CONFIG_NFS_V4 is not set
++# CONFIG_NFS_DIRECTIO is not set
++# CONFIG_NFSD is not set
++CONFIG_ROOT_NFS=y
++CONFIG_LOCKD=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=y
++# CONFIG_SUNRPC_BIND34 is not set
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++CONFIG_PARTITION_ADVANCED=y
++# CONFIG_ACORN_PARTITION is not set
++# CONFIG_OSF_PARTITION is not set
++# CONFIG_AMIGA_PARTITION is not set
++# CONFIG_ATARI_PARTITION is not set
++# CONFIG_MAC_PARTITION is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_BSD_DISKLABEL=y
++# CONFIG_MINIX_SUBPARTITION is not set
++CONFIG_SOLARIS_X86_PARTITION=y
++# CONFIG_UNIXWARE_DISKLABEL is not set
++# CONFIG_LDM_PARTITION is not set
++# CONFIG_SGI_PARTITION is not set
++# CONFIG_ULTRIX_PARTITION is not set
++# CONFIG_SUN_PARTITION is not set
++# CONFIG_KARMA_PARTITION is not set
++# CONFIG_EFI_PARTITION is not set
++# CONFIG_SYSV68_PARTITION is not set
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++CONFIG_NLS_ASCII=y
++CONFIG_NLS_ISO8859_1=y
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++CONFIG_INSTRUMENTATION=y
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_MAGIC_SYSRQ=y
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_TIMER_STATS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++CONFIG_DEBUG_MUTEXES=y
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++CONFIG_FRAME_POINTER=y
++CONFIG_FORCED_INLINING=y
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_SAMPLES is not set
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++CONFIG_DEBUG_LL=y
++# CONFIG_DEBUG_ICEDCC is not set
++CONFIG_DEBUG_S3C_PORT=y
++CONFIG_DEBUG_S3C_UART=0
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff --git a/arch/arm/configs/smdk6400mtd_defconfig b/arch/arm/configs/smdk6400mtd_defconfig
+new file mode 100644
+index 0000000..bd056dc
+--- /dev/null
++++ b/arch/arm/configs/smdk6400mtd_defconfig
+@@ -0,0 +1,1423 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.24.2
++# Mon Mar 17 09:02:58 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_AUDIT is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=16
++# CONFIG_CGROUPS is not set
++CONFIG_FAIR_GROUP_SCHED=y
++CONFIG_FAIR_USER_SCHED=y
++# CONFIG_FAIR_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++# CONFIG_RELAY is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++# CONFIG_EMBEDDED is not set
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++CONFIG_PLAT_S3C64XX=y
++CONFIG_S3C64XX_DMA=y
++CONFIG_PLAT_S3C=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_WATCHDOG is not set
++# CONFIG_S3C_BOOT_ERROR_RESET is not set
++
++#
++# Power management
++#
++CONFIG_S3C_LOWLEVEL_UART_PORT=0
++CONFIG_SPLIT_ROOT_FILESYSTEM=y
++CONFIG_MACH_SMDK=y
++
++#
++# S3C2400 Machines
++#
++
++#
++# S3C2410 Machines
++#
++# CONFIG_ARCH_SMDK2410 is not set
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++
++#
++# S3C2440 Machines
++#
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++# CONFIG_ARCH_S3C2440 is not set
++# CONFIG_MACH_NEXCODER_2440 is not set
++
++#
++# S3C2442 Machines
++#
++
++#
++# S3C2443 Machines
++#
++# CONFIG_MACH_SMDK2443 is not set
++
++#
++# S3C2450 Machines
++#
++# CONFIG_MACH_SMDK2450 is not set
++
++#
++# S3C6400 Machines
++#
++CONFIG_MACH_SMDK6400=y
++# CONFIG_S3C6400_PDFW is not set
++CONFIG_CPU_S3C6400=y
++
++#
++# S3C6410 Machines
++#
++# CONFIG_MACH_SMDK6410 is not set
++# CONFIG_MACH_FPGA6410 is not set
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_V6=y
++# CONFIG_CPU_32v6K is not set
++CONFIG_CPU_32v6=y
++CONFIG_CPU_ABRT_EV6=y
++CONFIG_CPU_CACHE_V6=y
++CONFIG_CPU_CACHE_VIPT=y
++CONFIG_CPU_COPY_V6=y
++CONFIG_CPU_TLB_V6=y
++CONFIG_CPU_HAS_ASID=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++# CONFIG_ARM_THUMB is not set
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_BPREDICT_DISABLE is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++CONFIG_ISA=y
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++# CONFIG_PREEMPT is not set
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=200
++CONFIG_AEABI=y
++CONFIG_OABI_COMPAT=y
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++# CONFIG_LEDS is not set
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=cramfs init=/linuxrc console=ttySAC0,115200"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++# CONFIG_FPE_NWFPE_XP is not set
++# CONFIG_FPE_FASTFPE is not set
++# CONFIG_VFP is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_AOUT=y
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++# CONFIG_PM is not set
++CONFIG_SUSPEND_UP_POSSIBLE=y
++
++#
++# DVFS support
++#
++# CONFIG_DVFS is not set
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++# CONFIG_PACKET is not set
++CONFIG_UNIX=y
++CONFIG_XFRM=y
++# CONFIG_XFRM_USER is not set
++# CONFIG_XFRM_SUB_POLICY is not set
++# CONFIG_XFRM_MIGRATE is not set
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++CONFIG_IP_PNP=y
++# CONFIG_IP_PNP_DHCP is not set
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++CONFIG_INET_XFRM_MODE_TRANSPORT=y
++CONFIG_INET_XFRM_MODE_TUNNEL=y
++CONFIG_INET_XFRM_MODE_BEET=y
++# CONFIG_INET_LRO is not set
++CONFIG_INET_DIAG=y
++CONFIG_INET_TCP_DIAG=y
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IPV6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++# CONFIG_CFG80211 is not set
++# CONFIG_WIRELESS_EXT is not set
++# CONFIG_MAC80211 is not set
++# CONFIG_IEEE80211 is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++# CONFIG_FW_LOADER is not set
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++CONFIG_MTD_REDBOOT_PARTS=y
++CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
++CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
++# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
++CONFIG_MTD_CMDLINE_PARTS=y
++# CONFIG_MTD_AFS_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++CONFIG_MTD_CFI=y
++CONFIG_MTD_JEDECPROBE=y
++CONFIG_MTD_GEN_PROBE=y
++# CONFIG_MTD_CFI_ADV_OPTIONS is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++CONFIG_MTD_CFI_INTELEXT=y
++CONFIG_MTD_CFI_AMDSTD=y
++# CONFIG_MTD_CFI_STAA is not set
++CONFIG_MTD_CFI_UTIL=y
++# CONFIG_MTD_RAM is not set
++CONFIG_MTD_ROM=y
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PHYSMAP is not set
++# CONFIG_MTD_ARM_INTEGRATOR is not set
++# CONFIG_MTD_IMPA7 is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++# CONFIG_MTD_DATAFLASH is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++CONFIG_MTD_NAND=y
++# CONFIG_MTD_NAND_VERIFY_WRITE is not set
++# CONFIG_MTD_NAND_ECC_SMC is not set
++# CONFIG_MTD_NAND_MUSEUM_IDS is not set
++CONFIG_MTD_NAND_IDS=y
++# CONFIG_MTD_NAND_S3C2410 is not set
++CONFIG_MTD_NAND_S3C=y
++# CONFIG_MTD_NAND_S3C_DEBUG is not set
++CONFIG_MTD_NO_ECC_WARNING=y
++CONFIG_MTD_NAND_S3C_HWECC=y
++CONFIG_S3C_LARGEPAGE_NAND=y
++# CONFIG_MTD_NAND_DISKONCHIP is not set
++# CONFIG_MTD_NAND_NANDSIM is not set
++# CONFIG_MTD_NAND_PLATFORM is not set
++# CONFIG_MTD_ALAUDA is not set
++# CONFIG_MTD_ONENAND is not set
++
++#
++# UBI - Unsorted block images
++#
++# CONFIG_MTD_UBI is not set
++CONFIG_PARPORT=y
++# CONFIG_PARPORT_PC is not set
++# CONFIG_PARPORT_GSC is not set
++# CONFIG_PARPORT_AX88796 is not set
++CONFIG_PARPORT_1284=y
++# CONFIG_PNP is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++# CONFIG_BLK_DEV_NBD is not set
++# CONFIG_BLK_DEV_UB is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=16
++CONFIG_BLK_DEV_RAM_SIZE=4096
++CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
++# CONFIG_CDROM_PKTCDVD is not set
++# CONFIG_ATA_OVER_ETH is not set
++CONFIG_MISC_DEVICES=y
++# CONFIG_EEPROM_93CX6 is not set
++CONFIG_IDE=y
++CONFIG_BLK_DEV_IDE=y
++
++#
++# Please see Documentation/ide.txt for help/info on IDE drives
++#
++# CONFIG_BLK_DEV_IDE_SATA is not set
++CONFIG_BLK_DEV_IDEDISK=y
++# CONFIG_IDEDISK_MULTI_MODE is not set
++CONFIG_BLK_DEV_IDECD=y
++CONFIG_BLK_DEV_IDETAPE=m
++CONFIG_BLK_DEV_IDEFLOPPY=m
++# CONFIG_IDE_TASK_IOCTL is not set
++CONFIG_IDE_PROC_FS=y
++
++#
++# IDE chipset support/bugfixes
++#
++CONFIG_IDE_GENERIC=y
++# CONFIG_BLK_DEV_PLATFORM is not set
++# CONFIG_IDE_ARM is not set
++
++#
++# Other IDE chipsets support
++#
++
++#
++# Note: most of these also require special kernel boot parameters
++#
++# CONFIG_BLK_DEV_4DRIVES is not set
++# CONFIG_BLK_DEV_ALI14XX is not set
++# CONFIG_BLK_DEV_DTC2278 is not set
++# CONFIG_BLK_DEV_HT6560B is not set
++# CONFIG_BLK_DEV_QD65XX is not set
++# CONFIG_BLK_DEV_UMC8672 is not set
++# CONFIG_BLK_DEV_IDEDMA is not set
++CONFIG_IDE_ARCH_OBSOLETE_INIT=y
++# CONFIG_BLK_DEV_HD is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++# CONFIG_SCSI is not set
++# CONFIG_SCSI_DMA is not set
++# CONFIG_SCSI_NETLINK is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++# CONFIG_ARCNET is not set
++# CONFIG_PHYLIB is not set
++CONFIG_NET_ETHERNET=y
++# CONFIG_MII is not set
++# CONFIG_AX88796 is not set
++# CONFIG_NET_VENDOR_3COM is not set
++# CONFIG_NET_VENDOR_SMC is not set
++# CONFIG_SMC91X is not set
++# CONFIG_DM9000 is not set
++# CONFIG_NET_VENDOR_RACAL is not set
++# CONFIG_AT1700 is not set
++# CONFIG_DEPCA is not set
++# CONFIG_HP100 is not set
++# CONFIG_NET_ISA is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++CONFIG_NET_PCI=y
++# CONFIG_AC3200 is not set
++# CONFIG_APRICOT is not set
++# CONFIG_B44 is not set
++CONFIG_CS89x0=y
++# CONFIG_NET_POCKET is not set
++CONFIG_NETDEV_1000=y
++CONFIG_NETDEV_10000=y
++# CONFIG_TR is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++# CONFIG_WLAN_80211 is not set
++
++#
++# USB Network Adapters
++#
++# CONFIG_USB_CATC is not set
++# CONFIG_USB_KAWETH is not set
++# CONFIG_USB_PEGASUS is not set
++# CONFIG_USB_RTL8150 is not set
++# CONFIG_USB_USBNET is not set
++# CONFIG_WAN is not set
++# CONFIG_PLIP is not set
++# CONFIG_PPP is not set
++# CONFIG_SLIP is not set
++# CONFIG_SHAPER is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++CONFIG_INPUT_MOUSEDEV_PSAUX=y
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
++# CONFIG_INPUT_JOYDEV is not set
++CONFIG_INPUT_TSDEV=y
++CONFIG_INPUT_TSDEV_SCREEN_X=480
++CONFIG_INPUT_TSDEV_SCREEN_Y=640
++CONFIG_INPUT_EVDEV=y
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++# CONFIG_KEYBOARD_GPIO is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++CONFIG_MOUSE_PS2_LOGIPS2PP=y
++CONFIG_MOUSE_PS2_SYNAPTICS=y
++CONFIG_MOUSE_PS2_LIFEBOOK=y
++CONFIG_MOUSE_PS2_TRACKPOINT=y
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_APPLETOUCH is not set
++# CONFIG_MOUSE_INPORT is not set
++# CONFIG_MOUSE_LOGIBM is not set
++# CONFIG_MOUSE_PC110PAD is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_MOUSE_GPIO is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++CONFIG_INPUT_TOUCHSCREEN=y
++# CONFIG_TOUCHSCREEN_ADS7846 is not set
++CONFIG_TOUCHSCREEN_S3C=y
++# CONFIG_TOUCHSCREEN_FUJITSU is not set
++# CONFIG_TOUCHSCREEN_GUNZE is not set
++# CONFIG_TOUCHSCREEN_ELO is not set
++# CONFIG_TOUCHSCREEN_MTOUCH is not set
++# CONFIG_TOUCHSCREEN_MK712 is not set
++# CONFIG_TOUCHSCREEN_PENMOUNT is not set
++# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
++# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
++# CONFIG_TOUCHSCREEN_UCB1400 is not set
++# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++# CONFIG_SERIO_PARKBD is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++CONFIG_SERIAL_NONSTANDARD=y
++# CONFIG_COMPUTONE is not set
++# CONFIG_ROCKETPORT is not set
++# CONFIG_CYCLADES is not set
++# CONFIG_DIGIEPCA is not set
++# CONFIG_MOXA_INTELLIO is not set
++# CONFIG_MOXA_SMARTIO is not set
++# CONFIG_MOXA_SMARTIO_NEW is not set
++# CONFIG_N_HDLC is not set
++# CONFIG_RISCOM8 is not set
++# CONFIG_SPECIALIX is not set
++# CONFIG_SX is not set
++# CONFIG_RIO is not set
++# CONFIG_STALDRV is not set
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_NR_UARTS=8
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++CONFIG_SERIAL_8250_EXTENDED=y
++CONFIG_SERIAL_8250_MANY_PORTS=y
++# CONFIG_SERIAL_8250_FOURPORT is not set
++# CONFIG_SERIAL_8250_ACCENT is not set
++# CONFIG_SERIAL_8250_BOCA is not set
++# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
++# CONFIG_SERIAL_8250_HUB6 is not set
++CONFIG_SERIAL_8250_SHARE_IRQ=y
++# CONFIG_SERIAL_8250_DETECT_IRQ is not set
++# CONFIG_SERIAL_8250_RSA is not set
++
++#
++# Non-8250 serial port support
++#
++# CONFIG_SERIAL_S3C2410 is not set
++CONFIG_SERIAL_S3C6400=y
++CONFIG_SERIAL_S3C64XX_CONSOLE=y
++# CONFIG_SERIAL_S3C64XX_HS_UART is not set
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++CONFIG_PRINTER=y
++# CONFIG_LP_CONSOLE is not set
++CONFIG_PPDEV=y
++# CONFIG_IPMI_HANDLER is not set
++CONFIG_HW_RANDOM=y
++# CONFIG_NVRAM is not set
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_DEVPORT=y
++CONFIG_I2C=y
++CONFIG_I2C_BOARDINFO=y
++CONFIG_I2C_CHARDEV=y
++
++#
++# I2C Algorithms
++#
++CONFIG_I2C_ALGOBIT=y
++# CONFIG_I2C_ALGOPCF is not set
++# CONFIG_I2C_ALGOPCA is not set
++
++#
++# I2C Hardware Bus support
++#
++# CONFIG_I2C_ELEKTOR is not set
++# CONFIG_I2C_GPIO is not set
++# CONFIG_I2C_OCORES is not set
++# CONFIG_I2C_PARPORT is not set
++# CONFIG_I2C_PARPORT_LIGHT is not set
++CONFIG_I2C_S3C2410=y
++# CONFIG_I2C_SIMTEC is not set
++# CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_STUB is not set
++# CONFIG_I2C_TINY_USB is not set
++# CONFIG_I2C_PCA_ISA is not set
++
++#
++# Miscellaneous I2C Chip support
++#
++# CONFIG_SENSORS_DS1337 is not set
++# CONFIG_SENSORS_DS1374 is not set
++# CONFIG_DS1682 is not set
++CONFIG_SENSORS_EEPROM=m
++# CONFIG_SENSORS_PCF8574 is not set
++# CONFIG_SENSORS_PCA9539 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_SENSORS_MAX6875 is not set
++# CONFIG_SENSORS_TSL2550 is not set
++# CONFIG_I2C_DEBUG_CORE is not set
++# CONFIG_I2C_DEBUG_ALGO is not set
++# CONFIG_I2C_DEBUG_BUS is not set
++# CONFIG_I2C_DEBUG_CHIP is not set
++
++#
++# SPI support
++#
++CONFIG_SPI=y
++# CONFIG_SPI_DEBUG is not set
++CONFIG_SPI_MASTER=y
++
++#
++# SPI Master Controller Drivers
++#
++CONFIG_SPI_BITBANG=m
++# CONFIG_SPI_BUTTERFLY is not set
++# CONFIG_SPI_LM70_LLP is not set
++CONFIG_SPI_S3C24XX=m
++CONFIG_SPI_S3C24XX_GPIO=m
++
++#
++# SPI Protocol Masters
++#
++# CONFIG_SPI_AT25 is not set
++# CONFIG_SPI_SPIDEV is not set
++# CONFIG_SPI_TLE62X0 is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++CONFIG_HWMON=y
++CONFIG_HWMON_VID=m
++# CONFIG_SENSORS_AD7418 is not set
++# CONFIG_SENSORS_ADM1021 is not set
++# CONFIG_SENSORS_ADM1025 is not set
++# CONFIG_SENSORS_ADM1026 is not set
++# CONFIG_SENSORS_ADM1029 is not set
++# CONFIG_SENSORS_ADM1031 is not set
++# CONFIG_SENSORS_ADM9240 is not set
++# CONFIG_SENSORS_ADT7470 is not set
++# CONFIG_SENSORS_ATXP1 is not set
++# CONFIG_SENSORS_DS1621 is not set
++# CONFIG_SENSORS_F71805F is not set
++# CONFIG_SENSORS_F71882FG is not set
++# CONFIG_SENSORS_F75375S is not set
++# CONFIG_SENSORS_GL518SM is not set
++# CONFIG_SENSORS_GL520SM is not set
++# CONFIG_SENSORS_IT87 is not set
++# CONFIG_SENSORS_LM63 is not set
++# CONFIG_SENSORS_LM70 is not set
++CONFIG_SENSORS_LM75=m
++# CONFIG_SENSORS_LM77 is not set
++CONFIG_SENSORS_LM78=m
++# CONFIG_SENSORS_LM80 is not set
++# CONFIG_SENSORS_LM83 is not set
++CONFIG_SENSORS_LM85=m
++# CONFIG_SENSORS_LM87 is not set
++# CONFIG_SENSORS_LM90 is not set
++# CONFIG_SENSORS_LM92 is not set
++# CONFIG_SENSORS_LM93 is not set
++# CONFIG_SENSORS_MAX1619 is not set
++# CONFIG_SENSORS_MAX6650 is not set
++# CONFIG_SENSORS_PC87360 is not set
++# CONFIG_SENSORS_PC87427 is not set
++# CONFIG_SENSORS_DME1737 is not set
++# CONFIG_SENSORS_SMSC47M1 is not set
++# CONFIG_SENSORS_SMSC47M192 is not set
++# CONFIG_SENSORS_SMSC47B397 is not set
++# CONFIG_SENSORS_THMC50 is not set
++# CONFIG_SENSORS_VT1211 is not set
++# CONFIG_SENSORS_W83781D is not set
++# CONFIG_SENSORS_W83791D is not set
++# CONFIG_SENSORS_W83792D is not set
++# CONFIG_SENSORS_W83793 is not set
++# CONFIG_SENSORS_W83L785TS is not set
++# CONFIG_SENSORS_W83627HF is not set
++# CONFIG_SENSORS_W83627EHF is not set
++# CONFIG_HWMON_DEBUG_CHIP is not set
++CONFIG_WATCHDOG=y
++# CONFIG_WATCHDOG_NOWAYOUT is not set
++
++#
++# Watchdog Device Drivers
++#
++# CONFIG_SOFT_WATCHDOG is not set
++CONFIG_S3C2410_WATCHDOG=y
++
++#
++# ISA-based Watchdog Cards
++#
++# CONFIG_PCWATCHDOG is not set
++# CONFIG_MIXCOMWD is not set
++# CONFIG_WDT is not set
++
++#
++# USB-based Watchdog Cards
++#
++# CONFIG_USBPCWATCHDOG is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++CONFIG_DAB=y
++# CONFIG_USB_DABUSB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++CONFIG_FIRMWARE_EDID=y
++# CONFIG_FB_DDC is not set
++# CONFIG_FB_CFB_FILLRECT is not set
++# CONFIG_FB_CFB_COPYAREA is not set
++# CONFIG_FB_CFB_IMAGEBLIT is not set
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++CONFIG_FB_MODE_HELPERS=y
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++CONFIG_FB_S3C=y
++# CONFIG_FB_S3C_LTV350QV is not set
++CONFIG_FB_S3C_LTE480WV=y
++CONFIG_FB_S3C_BPP=y
++# CONFIG_FB_S3C_BPP_8 is not set
++CONFIG_FB_S3C_BPP_16=y
++# CONFIG_FB_S3C_BPP_24 is not set
++# CONFIG_FB_S3C_BPP_32 is not set
++CONFIG_FB_S3C_NUM=1
++# CONFIG_FB_S3C_VIRTUAL_SCREEN is not set
++# CONFIG_FB_S3C_DOUBLE_BUFFERING is not set
++# CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_S3C2410 is not set
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++# CONFIG_MDA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++# CONFIG_LOGO_LINUX_CLUT224 is not set
++CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224=y
++
++#
++# Sound
++#
++# CONFIG_SOUND is not set
++CONFIG_HID_SUPPORT=y
++CONFIG_HID=y
++# CONFIG_HID_DEBUG is not set
++# CONFIG_HIDRAW is not set
++
++#
++# USB Input Devices
++#
++# CONFIG_USB_HID is not set
++
++#
++# USB HID Boot Protocol drivers
++#
++# CONFIG_USB_KBD is not set
++# CONFIG_USB_MOUSE is not set
++CONFIG_USB_SUPPORT=y
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
++# CONFIG_USB_ARCH_HAS_EHCI is not set
++CONFIG_USB=y
++# CONFIG_USB_DEBUG is not set
++
++#
++# Miscellaneous USB options
++#
++CONFIG_USB_DEVICEFS=y
++CONFIG_USB_DEVICE_CLASS=y
++# CONFIG_USB_DYNAMIC_MINORS is not set
++# CONFIG_USB_OTG is not set
++
++#
++# USB Host Controller Drivers
++#
++# CONFIG_USB_ISP116X_HCD is not set
++CONFIG_USB_OHCI_HCD=y
++# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
++# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
++CONFIG_USB_OHCI_LITTLE_ENDIAN=y
++# CONFIG_USB_SL811_HCD is not set
++# CONFIG_USB_R8A66597_HCD is not set
++
++#
++# USB Device Class drivers
++#
++# CONFIG_USB_ACM is not set
++# CONFIG_USB_PRINTER is not set
++
++#
++# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
++#
++
++#
++# may also be needed; see USB_STORAGE Help for more information
++#
++# CONFIG_USB_LIBUSUAL is not set
++
++#
++# USB Imaging devices
++#
++# CONFIG_USB_MDC800 is not set
++CONFIG_USB_MON=y
++
++#
++# USB port drivers
++#
++# CONFIG_USB_USS720 is not set
++
++#
++# USB Serial Converter support
++#
++# CONFIG_USB_SERIAL is not set
++
++#
++# USB Miscellaneous drivers
++#
++# CONFIG_USB_EMI62 is not set
++# CONFIG_USB_EMI26 is not set
++# CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_AUERSWALD is not set
++# CONFIG_USB_RIO500 is not set
++# CONFIG_USB_LEGOTOWER is not set
++# CONFIG_USB_LCD is not set
++# CONFIG_USB_BERRY_CHARGE is not set
++# CONFIG_USB_LED is not set
++# CONFIG_USB_CYPRESS_CY7C63 is not set
++# CONFIG_USB_CYTHERM is not set
++# CONFIG_USB_PHIDGET is not set
++# CONFIG_USB_IDMOUSE is not set
++# CONFIG_USB_FTDI_ELAN is not set
++# CONFIG_USB_APPLEDISPLAY is not set
++# CONFIG_USB_LD is not set
++# CONFIG_USB_TRANCEVIBRATOR is not set
++# CONFIG_USB_IOWARRIOR is not set
++# CONFIG_USB_TEST is not set
++
++#
++# USB DSL modem support
++#
++
++#
++# USB Gadget Support
++#
++# CONFIG_USB_GADGET is not set
++CONFIG_MMC=y
++# CONFIG_MMC_DEBUG is not set
++# CONFIG_MMC_UNSAFE_RESUME is not set
++
++#
++# MMC/SD Card Drivers
++#
++CONFIG_MMC_BLOCK=y
++CONFIG_MMC_BLOCK_BOUNCE=y
++# CONFIG_SDIO_UART is not set
++
++#
++# MMC/SD Host Controller Drivers
++#
++CONFIG_HSMMC_S3C=y
++# CONFIG_USE_MMC_AS_ROOT is not set
++CONFIG_HSMMC_S3C_IRQ_WORKAROUND=y
++CONFIG_HSMMC_SCATTERGATHER=y
++# CONFIG_S3CMMC_DEBUG is not set
++# CONFIG_MMC_SPI is not set
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=m
++
++#
++# LED drivers
++#
++CONFIG_LEDS_S3C24XX=m
++# CONFIG_LEDS_GPIO is not set
++
++#
++# LED Triggers
++#
++CONFIG_LEDS_TRIGGERS=y
++CONFIG_LEDS_TRIGGER_TIMER=m
++# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
++CONFIG_LEDS_TRIGGER_HEARTBEAT=m
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# I2C RTC drivers
++#
++# CONFIG_RTC_DRV_DS1307 is not set
++# CONFIG_RTC_DRV_DS1374 is not set
++# CONFIG_RTC_DRV_DS1672 is not set
++# CONFIG_RTC_DRV_MAX6900 is not set
++# CONFIG_RTC_DRV_RS5C372 is not set
++# CONFIG_RTC_DRV_ISL1208 is not set
++# CONFIG_RTC_DRV_X1205 is not set
++# CONFIG_RTC_DRV_PCF8563 is not set
++# CONFIG_RTC_DRV_PCF8583 is not set
++# CONFIG_RTC_DRV_M41T80 is not set
++
++#
++# SPI RTC drivers
++#
++# CONFIG_RTC_DRV_RS5C348 is not set
++# CONFIG_RTC_DRV_MAX6902 is not set
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_S3C=y
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++CONFIG_EXT3_FS=y
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
++# CONFIG_EXT4DEV_FS is not set
++CONFIG_JBD=y
++CONFIG_FS_MBCACHE=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_MINIX_FS is not set
++CONFIG_ROMFS_FS=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++CONFIG_MSDOS_FS=y
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
++# CONFIG_JFFS2_SUMMARY is not set
++# CONFIG_JFFS2_FS_XATTR is not set
++# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
++CONFIG_JFFS2_ZLIB=y
++# CONFIG_JFFS2_LZO is not set
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++CONFIG_CRAMFS=y
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=y
++# CONFIG_NFS_V3 is not set
++# CONFIG_NFS_V4 is not set
++# CONFIG_NFS_DIRECTIO is not set
++# CONFIG_NFSD is not set
++CONFIG_ROOT_NFS=y
++CONFIG_LOCKD=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=y
++# CONFIG_SUNRPC_BIND34 is not set
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++CONFIG_PARTITION_ADVANCED=y
++# CONFIG_ACORN_PARTITION is not set
++# CONFIG_OSF_PARTITION is not set
++# CONFIG_AMIGA_PARTITION is not set
++# CONFIG_ATARI_PARTITION is not set
++# CONFIG_MAC_PARTITION is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_BSD_DISKLABEL=y
++# CONFIG_MINIX_SUBPARTITION is not set
++CONFIG_SOLARIS_X86_PARTITION=y
++# CONFIG_UNIXWARE_DISKLABEL is not set
++# CONFIG_LDM_PARTITION is not set
++# CONFIG_SGI_PARTITION is not set
++# CONFIG_ULTRIX_PARTITION is not set
++# CONFIG_SUN_PARTITION is not set
++# CONFIG_KARMA_PARTITION is not set
++# CONFIG_EFI_PARTITION is not set
++# CONFIG_SYSV68_PARTITION is not set
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++CONFIG_NLS_ASCII=y
++CONFIG_NLS_ISO8859_1=y
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++CONFIG_INSTRUMENTATION=y
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_MAGIC_SYSRQ=y
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_TIMER_STATS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++CONFIG_DEBUG_MUTEXES=y
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++CONFIG_FRAME_POINTER=y
++CONFIG_FORCED_INLINING=y
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_SAMPLES is not set
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++CONFIG_DEBUG_LL=y
++# CONFIG_DEBUG_ICEDCC is not set
++CONFIG_DEBUG_S3C_PORT=y
++CONFIG_DEBUG_S3C_UART=0
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff --git a/arch/arm/configs/smdk6400nfs_defconfig b/arch/arm/configs/smdk6400nfs_defconfig
+new file mode 100644
+index 0000000..9ab1c31
+--- /dev/null
++++ b/arch/arm/configs/smdk6400nfs_defconfig
+@@ -0,0 +1,1384 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.24.2
++# Tue Feb 26 10:39:03 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_AUDIT is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=16
++# CONFIG_CGROUPS is not set
++CONFIG_FAIR_GROUP_SCHED=y
++CONFIG_FAIR_USER_SCHED=y
++# CONFIG_FAIR_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++# CONFIG_RELAY is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++# CONFIG_EMBEDDED is not set
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++CONFIG_PLAT_S3C64XX=y
++CONFIG_S3C64XX_DMA=y
++CONFIG_PLAT_S3C=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_WATCHDOG is not set
++# CONFIG_S3C_BOOT_ERROR_RESET is not set
++
++#
++# Power management
++#
++CONFIG_S3C_LOWLEVEL_UART_PORT=0
++CONFIG_SPLIT_ROOT_FILESYSTEM=y
++CONFIG_MACH_SMDK=y
++
++#
++# S3C2400 Machines
++#
++
++#
++# S3C2410 Machines
++#
++# CONFIG_ARCH_SMDK2410 is not set
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++
++#
++# S3C2440 Machines
++#
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++# CONFIG_ARCH_S3C2440 is not set
++# CONFIG_MACH_NEXCODER_2440 is not set
++
++#
++# S3C2442 Machines
++#
++
++#
++# S3C2443 Machines
++#
++# CONFIG_MACH_SMDK2443 is not set
++
++#
++# S3C2450 Machines
++#
++# CONFIG_MACH_SMDK2450 is not set
++
++#
++# S3C6400 Machines
++#
++CONFIG_MACH_SMDK6400=y
++# CONFIG_S3C6400_PDFW is not set
++CONFIG_CPU_S3C6400=y
++
++#
++# S3C6410 Machines
++#
++# CONFIG_MACH_SMDK6410 is not set
++# CONFIG_MACH_FPGA6410 is not set
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_V6=y
++# CONFIG_CPU_32v6K is not set
++CONFIG_CPU_32v6=y
++CONFIG_CPU_ABRT_EV6=y
++CONFIG_CPU_CACHE_V6=y
++CONFIG_CPU_CACHE_VIPT=y
++CONFIG_CPU_COPY_V6=y
++CONFIG_CPU_TLB_V6=y
++CONFIG_CPU_HAS_ASID=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++# CONFIG_ARM_THUMB is not set
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_BPREDICT_DISABLE is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++CONFIG_ISA=y
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++# CONFIG_PREEMPT is not set
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=200
++CONFIG_AEABI=y
++CONFIG_OABI_COMPAT=y
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++# CONFIG_LEDS is not set
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="noinitrd root=/dev/nfs rw nfsroot=192.168.0.10:/tftpboot/rootfs/ ip=192.168.0.20:192.168.0.10:192.168.0.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++# CONFIG_FPE_NWFPE_XP is not set
++# CONFIG_FPE_FASTFPE is not set
++# CONFIG_VFP is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_AOUT=y
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++# CONFIG_PM is not set
++CONFIG_SUSPEND_UP_POSSIBLE=y
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++# CONFIG_PACKET is not set
++CONFIG_UNIX=y
++CONFIG_XFRM=y
++# CONFIG_XFRM_USER is not set
++# CONFIG_XFRM_SUB_POLICY is not set
++# CONFIG_XFRM_MIGRATE is not set
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++CONFIG_IP_PNP=y
++# CONFIG_IP_PNP_DHCP is not set
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++CONFIG_INET_XFRM_MODE_TRANSPORT=y
++CONFIG_INET_XFRM_MODE_TUNNEL=y
++CONFIG_INET_XFRM_MODE_BEET=y
++# CONFIG_INET_LRO is not set
++CONFIG_INET_DIAG=y
++CONFIG_INET_TCP_DIAG=y
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IPV6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++# CONFIG_CFG80211 is not set
++# CONFIG_WIRELESS_EXT is not set
++# CONFIG_MAC80211 is not set
++# CONFIG_IEEE80211 is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++# CONFIG_FW_LOADER is not set
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++CONFIG_MTD_REDBOOT_PARTS=y
++CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
++CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
++# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
++CONFIG_MTD_CMDLINE_PARTS=y
++# CONFIG_MTD_AFS_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++CONFIG_MTD_CFI=y
++CONFIG_MTD_JEDECPROBE=y
++CONFIG_MTD_GEN_PROBE=y
++# CONFIG_MTD_CFI_ADV_OPTIONS is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++CONFIG_MTD_CFI_INTELEXT=y
++CONFIG_MTD_CFI_AMDSTD=y
++# CONFIG_MTD_CFI_STAA is not set
++CONFIG_MTD_CFI_UTIL=y
++# CONFIG_MTD_RAM is not set
++CONFIG_MTD_ROM=y
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PHYSMAP is not set
++# CONFIG_MTD_ARM_INTEGRATOR is not set
++# CONFIG_MTD_IMPA7 is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++# CONFIG_MTD_DATAFLASH is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++CONFIG_MTD_NAND=y
++# CONFIG_MTD_NAND_VERIFY_WRITE is not set
++# CONFIG_MTD_NAND_ECC_SMC is not set
++# CONFIG_MTD_NAND_MUSEUM_IDS is not set
++CONFIG_MTD_NAND_IDS=y
++# CONFIG_MTD_NAND_S3C2410 is not set
++CONFIG_MTD_NAND_S3C=y
++# CONFIG_MTD_NAND_S3C_DEBUG is not set
++CONFIG_MTD_NO_ECC_WARNING=y
++CONFIG_MTD_NAND_S3C_HWECC=y
++CONFIG_S3C_LARGEPAGE_NAND=y
++# CONFIG_MTD_NAND_DISKONCHIP is not set
++# CONFIG_MTD_NAND_NANDSIM is not set
++# CONFIG_MTD_NAND_PLATFORM is not set
++# CONFIG_MTD_ALAUDA is not set
++# CONFIG_MTD_ONENAND is not set
++
++#
++# UBI - Unsorted block images
++#
++# CONFIG_MTD_UBI is not set
++CONFIG_PARPORT=y
++# CONFIG_PARPORT_PC is not set
++# CONFIG_PARPORT_GSC is not set
++# CONFIG_PARPORT_AX88796 is not set
++CONFIG_PARPORT_1284=y
++# CONFIG_PNP is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++# CONFIG_BLK_DEV_NBD is not set
++# CONFIG_BLK_DEV_UB is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=16
++CONFIG_BLK_DEV_RAM_SIZE=4096
++CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
++# CONFIG_CDROM_PKTCDVD is not set
++# CONFIG_ATA_OVER_ETH is not set
++CONFIG_MISC_DEVICES=y
++# CONFIG_EEPROM_93CX6 is not set
++CONFIG_IDE=y
++CONFIG_BLK_DEV_IDE=y
++
++#
++# Please see Documentation/ide.txt for help/info on IDE drives
++#
++# CONFIG_BLK_DEV_IDE_SATA is not set
++CONFIG_BLK_DEV_IDEDISK=y
++# CONFIG_IDEDISK_MULTI_MODE is not set
++CONFIG_BLK_DEV_IDECD=y
++CONFIG_BLK_DEV_IDETAPE=m
++CONFIG_BLK_DEV_IDEFLOPPY=m
++# CONFIG_IDE_TASK_IOCTL is not set
++CONFIG_IDE_PROC_FS=y
++
++#
++# IDE chipset support/bugfixes
++#
++CONFIG_IDE_GENERIC=y
++# CONFIG_BLK_DEV_PLATFORM is not set
++# CONFIG_IDE_ARM is not set
++
++#
++# Other IDE chipsets support
++#
++
++#
++# Note: most of these also require special kernel boot parameters
++#
++# CONFIG_BLK_DEV_4DRIVES is not set
++# CONFIG_BLK_DEV_ALI14XX is not set
++# CONFIG_BLK_DEV_DTC2278 is not set
++# CONFIG_BLK_DEV_HT6560B is not set
++# CONFIG_BLK_DEV_QD65XX is not set
++# CONFIG_BLK_DEV_UMC8672 is not set
++# CONFIG_BLK_DEV_IDEDMA is not set
++CONFIG_IDE_ARCH_OBSOLETE_INIT=y
++# CONFIG_BLK_DEV_HD is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++# CONFIG_SCSI is not set
++# CONFIG_SCSI_DMA is not set
++# CONFIG_SCSI_NETLINK is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++# CONFIG_ARCNET is not set
++# CONFIG_PHYLIB is not set
++CONFIG_NET_ETHERNET=y
++# CONFIG_MII is not set
++# CONFIG_AX88796 is not set
++# CONFIG_NET_VENDOR_3COM is not set
++# CONFIG_NET_VENDOR_SMC is not set
++# CONFIG_SMC91X is not set
++# CONFIG_DM9000 is not set
++# CONFIG_NET_VENDOR_RACAL is not set
++# CONFIG_AT1700 is not set
++# CONFIG_DEPCA is not set
++# CONFIG_HP100 is not set
++# CONFIG_NET_ISA is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++CONFIG_NET_PCI=y
++# CONFIG_AC3200 is not set
++# CONFIG_APRICOT is not set
++# CONFIG_B44 is not set
++CONFIG_CS89x0=y
++# CONFIG_NET_POCKET is not set
++CONFIG_NETDEV_1000=y
++CONFIG_NETDEV_10000=y
++# CONFIG_TR is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++# CONFIG_WLAN_80211 is not set
++
++#
++# USB Network Adapters
++#
++# CONFIG_USB_CATC is not set
++# CONFIG_USB_KAWETH is not set
++# CONFIG_USB_PEGASUS is not set
++# CONFIG_USB_RTL8150 is not set
++# CONFIG_USB_USBNET is not set
++# CONFIG_WAN is not set
++# CONFIG_PLIP is not set
++# CONFIG_PPP is not set
++# CONFIG_SLIP is not set
++# CONFIG_SHAPER is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++CONFIG_INPUT_MOUSEDEV_PSAUX=y
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
++# CONFIG_INPUT_JOYDEV is not set
++# CONFIG_INPUT_EVDEV is not set
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++# CONFIG_KEYBOARD_GPIO is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++CONFIG_MOUSE_PS2_LOGIPS2PP=y
++CONFIG_MOUSE_PS2_SYNAPTICS=y
++CONFIG_MOUSE_PS2_LIFEBOOK=y
++CONFIG_MOUSE_PS2_TRACKPOINT=y
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_APPLETOUCH is not set
++# CONFIG_MOUSE_INPORT is not set
++# CONFIG_MOUSE_LOGIBM is not set
++# CONFIG_MOUSE_PC110PAD is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_MOUSE_GPIO is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++# CONFIG_INPUT_TOUCHSCREEN is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++# CONFIG_SERIO_PARKBD is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++CONFIG_SERIAL_NONSTANDARD=y
++# CONFIG_COMPUTONE is not set
++# CONFIG_ROCKETPORT is not set
++# CONFIG_CYCLADES is not set
++# CONFIG_DIGIEPCA is not set
++# CONFIG_MOXA_INTELLIO is not set
++# CONFIG_MOXA_SMARTIO is not set
++# CONFIG_MOXA_SMARTIO_NEW is not set
++# CONFIG_N_HDLC is not set
++# CONFIG_RISCOM8 is not set
++# CONFIG_SPECIALIX is not set
++# CONFIG_SX is not set
++# CONFIG_RIO is not set
++# CONFIG_STALDRV is not set
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_NR_UARTS=8
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++CONFIG_SERIAL_8250_EXTENDED=y
++CONFIG_SERIAL_8250_MANY_PORTS=y
++# CONFIG_SERIAL_8250_FOURPORT is not set
++# CONFIG_SERIAL_8250_ACCENT is not set
++# CONFIG_SERIAL_8250_BOCA is not set
++# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
++# CONFIG_SERIAL_8250_HUB6 is not set
++CONFIG_SERIAL_8250_SHARE_IRQ=y
++# CONFIG_SERIAL_8250_DETECT_IRQ is not set
++# CONFIG_SERIAL_8250_RSA is not set
++
++#
++# Non-8250 serial port support
++#
++# CONFIG_SERIAL_S3C2410 is not set
++CONFIG_SERIAL_S3C6400=y
++CONFIG_SERIAL_S3C64XX_CONSOLE=y
++# CONFIG_SERIAL_S3C64XX_HS_UART is not set
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++CONFIG_PRINTER=y
++# CONFIG_LP_CONSOLE is not set
++CONFIG_PPDEV=y
++# CONFIG_IPMI_HANDLER is not set
++CONFIG_HW_RANDOM=y
++# CONFIG_NVRAM is not set
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_DEVPORT=y
++CONFIG_I2C=y
++CONFIG_I2C_BOARDINFO=y
++CONFIG_I2C_CHARDEV=y
++
++#
++# I2C Algorithms
++#
++CONFIG_I2C_ALGOBIT=y
++# CONFIG_I2C_ALGOPCF is not set
++# CONFIG_I2C_ALGOPCA is not set
++
++#
++# I2C Hardware Bus support
++#
++# CONFIG_I2C_ELEKTOR is not set
++# CONFIG_I2C_GPIO is not set
++# CONFIG_I2C_OCORES is not set
++# CONFIG_I2C_PARPORT is not set
++# CONFIG_I2C_PARPORT_LIGHT is not set
++CONFIG_I2C_S3C2410=y
++# CONFIG_I2C_SIMTEC is not set
++# CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_STUB is not set
++# CONFIG_I2C_TINY_USB is not set
++# CONFIG_I2C_PCA_ISA is not set
++
++#
++# Miscellaneous I2C Chip support
++#
++# CONFIG_SENSORS_DS1337 is not set
++# CONFIG_SENSORS_DS1374 is not set
++# CONFIG_DS1682 is not set
++CONFIG_SENSORS_EEPROM=m
++# CONFIG_SENSORS_PCF8574 is not set
++# CONFIG_SENSORS_PCA9539 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_SENSORS_MAX6875 is not set
++# CONFIG_SENSORS_TSL2550 is not set
++# CONFIG_I2C_DEBUG_CORE is not set
++# CONFIG_I2C_DEBUG_ALGO is not set
++# CONFIG_I2C_DEBUG_BUS is not set
++# CONFIG_I2C_DEBUG_CHIP is not set
++
++#
++# SPI support
++#
++CONFIG_SPI=y
++# CONFIG_SPI_DEBUG is not set
++CONFIG_SPI_MASTER=y
++
++#
++# SPI Master Controller Drivers
++#
++CONFIG_SPI_BITBANG=m
++# CONFIG_SPI_BUTTERFLY is not set
++# CONFIG_SPI_LM70_LLP is not set
++CONFIG_SPI_S3C24XX=m
++CONFIG_SPI_S3C24XX_GPIO=m
++
++#
++# SPI Protocol Masters
++#
++# CONFIG_SPI_AT25 is not set
++# CONFIG_SPI_SPIDEV is not set
++# CONFIG_SPI_TLE62X0 is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++CONFIG_HWMON=y
++CONFIG_HWMON_VID=m
++# CONFIG_SENSORS_AD7418 is not set
++# CONFIG_SENSORS_ADM1021 is not set
++# CONFIG_SENSORS_ADM1025 is not set
++# CONFIG_SENSORS_ADM1026 is not set
++# CONFIG_SENSORS_ADM1029 is not set
++# CONFIG_SENSORS_ADM1031 is not set
++# CONFIG_SENSORS_ADM9240 is not set
++# CONFIG_SENSORS_ADT7470 is not set
++# CONFIG_SENSORS_ATXP1 is not set
++# CONFIG_SENSORS_DS1621 is not set
++# CONFIG_SENSORS_F71805F is not set
++# CONFIG_SENSORS_F71882FG is not set
++# CONFIG_SENSORS_F75375S is not set
++# CONFIG_SENSORS_GL518SM is not set
++# CONFIG_SENSORS_GL520SM is not set
++# CONFIG_SENSORS_IT87 is not set
++# CONFIG_SENSORS_LM63 is not set
++# CONFIG_SENSORS_LM70 is not set
++CONFIG_SENSORS_LM75=m
++# CONFIG_SENSORS_LM77 is not set
++CONFIG_SENSORS_LM78=m
++# CONFIG_SENSORS_LM80 is not set
++# CONFIG_SENSORS_LM83 is not set
++CONFIG_SENSORS_LM85=m
++# CONFIG_SENSORS_LM87 is not set
++# CONFIG_SENSORS_LM90 is not set
++# CONFIG_SENSORS_LM92 is not set
++# CONFIG_SENSORS_LM93 is not set
++# CONFIG_SENSORS_MAX1619 is not set
++# CONFIG_SENSORS_MAX6650 is not set
++# CONFIG_SENSORS_PC87360 is not set
++# CONFIG_SENSORS_PC87427 is not set
++# CONFIG_SENSORS_DME1737 is not set
++# CONFIG_SENSORS_SMSC47M1 is not set
++# CONFIG_SENSORS_SMSC47M192 is not set
++# CONFIG_SENSORS_SMSC47B397 is not set
++# CONFIG_SENSORS_THMC50 is not set
++# CONFIG_SENSORS_VT1211 is not set
++# CONFIG_SENSORS_W83781D is not set
++# CONFIG_SENSORS_W83791D is not set
++# CONFIG_SENSORS_W83792D is not set
++# CONFIG_SENSORS_W83793 is not set
++# CONFIG_SENSORS_W83L785TS is not set
++# CONFIG_SENSORS_W83627HF is not set
++# CONFIG_SENSORS_W83627EHF is not set
++# CONFIG_HWMON_DEBUG_CHIP is not set
++CONFIG_WATCHDOG=y
++# CONFIG_WATCHDOG_NOWAYOUT is not set
++
++#
++# Watchdog Device Drivers
++#
++# CONFIG_SOFT_WATCHDOG is not set
++CONFIG_S3C2410_WATCHDOG=y
++
++#
++# ISA-based Watchdog Cards
++#
++# CONFIG_PCWATCHDOG is not set
++# CONFIG_MIXCOMWD is not set
++# CONFIG_WDT is not set
++
++#
++# USB-based Watchdog Cards
++#
++# CONFIG_USBPCWATCHDOG is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++CONFIG_DAB=y
++# CONFIG_USB_DABUSB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++CONFIG_FIRMWARE_EDID=y
++# CONFIG_FB_DDC is not set
++# CONFIG_FB_CFB_FILLRECT is not set
++# CONFIG_FB_CFB_COPYAREA is not set
++# CONFIG_FB_CFB_IMAGEBLIT is not set
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++CONFIG_FB_MODE_HELPERS=y
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++CONFIG_FB_S3C=y
++# CONFIG_FB_S3C_LTV350QV is not set
++CONFIG_FB_S3C_LTE480WV=y
++CONFIG_FB_S3C_BPP=y
++# CONFIG_FB_S3C_BPP_8 is not set
++CONFIG_FB_S3C_BPP_16=y
++# CONFIG_FB_S3C_BPP_24 is not set
++# CONFIG_FB_S3C_BPP_32 is not set
++CONFIG_FB_S3C_NUM=1
++# CONFIG_FB_S3C_VIRTUAL_SCREEN is not set
++# CONFIG_FB_S3C_DOUBLE_BUFFERING is not set
++# CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_S3C2410 is not set
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++# CONFIG_MDA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++# CONFIG_LOGO_LINUX_CLUT224 is not set
++CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224=y
++
++#
++# Sound
++#
++# CONFIG_SOUND is not set
++CONFIG_HID_SUPPORT=y
++CONFIG_HID=y
++# CONFIG_HID_DEBUG is not set
++# CONFIG_HIDRAW is not set
++
++#
++# USB Input Devices
++#
++# CONFIG_USB_HID is not set
++
++#
++# USB HID Boot Protocol drivers
++#
++# CONFIG_USB_KBD is not set
++# CONFIG_USB_MOUSE is not set
++CONFIG_USB_SUPPORT=y
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
++# CONFIG_USB_ARCH_HAS_EHCI is not set
++CONFIG_USB=y
++# CONFIG_USB_DEBUG is not set
++
++#
++# Miscellaneous USB options
++#
++CONFIG_USB_DEVICEFS=y
++CONFIG_USB_DEVICE_CLASS=y
++# CONFIG_USB_DYNAMIC_MINORS is not set
++# CONFIG_USB_OTG is not set
++
++#
++# USB Host Controller Drivers
++#
++# CONFIG_USB_ISP116X_HCD is not set
++CONFIG_USB_OHCI_HCD=y
++# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
++# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
++CONFIG_USB_OHCI_LITTLE_ENDIAN=y
++# CONFIG_USB_SL811_HCD is not set
++# CONFIG_USB_R8A66597_HCD is not set
++
++#
++# USB Device Class drivers
++#
++# CONFIG_USB_ACM is not set
++# CONFIG_USB_PRINTER is not set
++
++#
++# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
++#
++
++#
++# may also be needed; see USB_STORAGE Help for more information
++#
++# CONFIG_USB_LIBUSUAL is not set
++
++#
++# USB Imaging devices
++#
++# CONFIG_USB_MDC800 is not set
++CONFIG_USB_MON=y
++
++#
++# USB port drivers
++#
++# CONFIG_USB_USS720 is not set
++
++#
++# USB Serial Converter support
++#
++# CONFIG_USB_SERIAL is not set
++
++#
++# USB Miscellaneous drivers
++#
++# CONFIG_USB_EMI62 is not set
++# CONFIG_USB_EMI26 is not set
++# CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_AUERSWALD is not set
++# CONFIG_USB_RIO500 is not set
++# CONFIG_USB_LEGOTOWER is not set
++# CONFIG_USB_LCD is not set
++# CONFIG_USB_BERRY_CHARGE is not set
++# CONFIG_USB_LED is not set
++# CONFIG_USB_CYPRESS_CY7C63 is not set
++# CONFIG_USB_CYTHERM is not set
++# CONFIG_USB_PHIDGET is not set
++# CONFIG_USB_IDMOUSE is not set
++# CONFIG_USB_FTDI_ELAN is not set
++# CONFIG_USB_APPLEDISPLAY is not set
++# CONFIG_USB_LD is not set
++# CONFIG_USB_TRANCEVIBRATOR is not set
++# CONFIG_USB_IOWARRIOR is not set
++# CONFIG_USB_TEST is not set
++
++#
++# USB DSL modem support
++#
++
++#
++# USB Gadget Support
++#
++# CONFIG_USB_GADGET is not set
++# CONFIG_MMC is not set
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=m
++
++#
++# LED drivers
++#
++CONFIG_LEDS_S3C24XX=m
++# CONFIG_LEDS_GPIO is not set
++
++#
++# LED Triggers
++#
++CONFIG_LEDS_TRIGGERS=y
++CONFIG_LEDS_TRIGGER_TIMER=m
++# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
++CONFIG_LEDS_TRIGGER_HEARTBEAT=m
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# I2C RTC drivers
++#
++# CONFIG_RTC_DRV_DS1307 is not set
++# CONFIG_RTC_DRV_DS1374 is not set
++# CONFIG_RTC_DRV_DS1672 is not set
++# CONFIG_RTC_DRV_MAX6900 is not set
++# CONFIG_RTC_DRV_RS5C372 is not set
++# CONFIG_RTC_DRV_ISL1208 is not set
++# CONFIG_RTC_DRV_X1205 is not set
++# CONFIG_RTC_DRV_PCF8563 is not set
++# CONFIG_RTC_DRV_PCF8583 is not set
++# CONFIG_RTC_DRV_M41T80 is not set
++
++#
++# SPI RTC drivers
++#
++# CONFIG_RTC_DRV_RS5C348 is not set
++# CONFIG_RTC_DRV_MAX6902 is not set
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_S3C=y
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++CONFIG_EXT3_FS=y
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
++# CONFIG_EXT4DEV_FS is not set
++CONFIG_JBD=y
++CONFIG_FS_MBCACHE=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_MINIX_FS is not set
++CONFIG_ROMFS_FS=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++CONFIG_MSDOS_FS=y
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
++# CONFIG_JFFS2_SUMMARY is not set
++# CONFIG_JFFS2_FS_XATTR is not set
++# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
++CONFIG_JFFS2_ZLIB=y
++# CONFIG_JFFS2_LZO is not set
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++CONFIG_CRAMFS=y
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=y
++# CONFIG_NFS_V3 is not set
++# CONFIG_NFS_V4 is not set
++# CONFIG_NFS_DIRECTIO is not set
++# CONFIG_NFSD is not set
++CONFIG_ROOT_NFS=y
++CONFIG_LOCKD=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=y
++# CONFIG_SUNRPC_BIND34 is not set
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++CONFIG_PARTITION_ADVANCED=y
++# CONFIG_ACORN_PARTITION is not set
++# CONFIG_OSF_PARTITION is not set
++# CONFIG_AMIGA_PARTITION is not set
++# CONFIG_ATARI_PARTITION is not set
++# CONFIG_MAC_PARTITION is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_BSD_DISKLABEL=y
++# CONFIG_MINIX_SUBPARTITION is not set
++CONFIG_SOLARIS_X86_PARTITION=y
++# CONFIG_UNIXWARE_DISKLABEL is not set
++# CONFIG_LDM_PARTITION is not set
++# CONFIG_SGI_PARTITION is not set
++# CONFIG_ULTRIX_PARTITION is not set
++# CONFIG_SUN_PARTITION is not set
++# CONFIG_KARMA_PARTITION is not set
++# CONFIG_EFI_PARTITION is not set
++# CONFIG_SYSV68_PARTITION is not set
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++# CONFIG_NLS_CODEPAGE_437 is not set
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++# CONFIG_NLS_ASCII is not set
++# CONFIG_NLS_ISO8859_1 is not set
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++CONFIG_INSTRUMENTATION=y
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_MAGIC_SYSRQ=y
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_TIMER_STATS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++CONFIG_DEBUG_MUTEXES=y
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++CONFIG_FRAME_POINTER=y
++CONFIG_FORCED_INLINING=y
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_SAMPLES is not set
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++CONFIG_DEBUG_LL=y
++# CONFIG_DEBUG_ICEDCC is not set
++CONFIG_DEBUG_S3C_PORT=y
++CONFIG_DEBUG_S3C_UART=0
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff --git a/arch/arm/configs/smdk6410mtd_defconfig b/arch/arm/configs/smdk6410mtd_defconfig
+new file mode 100644
+index 0000000..c54c2b2
+--- /dev/null
++++ b/arch/arm/configs/smdk6410mtd_defconfig
+@@ -0,0 +1,1513 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.24.2
++# Thu Aug 21 14:56:25 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_AUDIT is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=16
++# CONFIG_CGROUPS is not set
++CONFIG_FAIR_GROUP_SCHED=y
++CONFIG_FAIR_USER_SCHED=y
++# CONFIG_FAIR_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++# CONFIG_RELAY is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++# CONFIG_EMBEDDED is not set
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++CONFIG_PLAT_S3C64XX=y
++CONFIG_S3C64XX_DMA=y
++CONFIG_PLAT_S3C=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_WATCHDOG is not set
++# CONFIG_S3C_BOOT_ERROR_RESET is not set
++
++#
++# Power management
++#
++CONFIG_S3C_LOWLEVEL_UART_PORT=0
++CONFIG_SPLIT_ROOT_FILESYSTEM=y
++CONFIG_MACH_SMDK=y
++
++#
++# S3C2400 Machines
++#
++
++#
++# S3C2410 Machines
++#
++# CONFIG_ARCH_SMDK2410 is not set
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++
++#
++# S3C2440 Machines
++#
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++# CONFIG_ARCH_S3C2440 is not set
++# CONFIG_MACH_NEXCODER_2440 is not set
++
++#
++# S3C2442 Machines
++#
++
++#
++# S3C2443 Machines
++#
++# CONFIG_MACH_SMDK2443 is not set
++
++#
++# S3C2450 Machines
++#
++# CONFIG_MACH_SMDK2450 is not set
++
++#
++# S3C2416 Machines
++#
++# CONFIG_MACH_SMDK2416 is not set
++
++#
++# S3C6400 Machines
++#
++# CONFIG_MACH_SMDK6400 is not set
++
++#
++# S3C6410 Machines
++#
++CONFIG_MACH_SMDK6410=y
++# CONFIG_MACH_SMDK6430 is not set
++# CONFIG_S3C6410_PDFW is not set
++CONFIG_CPU_S3C6410=y
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_V6=y
++# CONFIG_CPU_32v6K is not set
++CONFIG_CPU_32v6=y
++CONFIG_CPU_ABRT_EV6=y
++CONFIG_CPU_CACHE_V6=y
++CONFIG_CPU_CACHE_VIPT=y
++CONFIG_CPU_COPY_V6=y
++CONFIG_CPU_TLB_V6=y
++CONFIG_CPU_HAS_ASID=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++# CONFIG_ARM_THUMB is not set
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_BPREDICT_DISABLE is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++CONFIG_ISA=y
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++# CONFIG_PREEMPT is not set
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=200
++CONFIG_AEABI=y
++CONFIG_OABI_COMPAT=y
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++# CONFIG_LEDS is not set
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=cramfs init=/linuxrc console=ttySAC0,115200"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++# CONFIG_FPE_NWFPE_XP is not set
++# CONFIG_FPE_FASTFPE is not set
++# CONFIG_VFP is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_AOUT=y
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++# CONFIG_PM is not set
++CONFIG_SUSPEND_UP_POSSIBLE=y
++
++#
++# DVFS support
++#
++# CONFIG_DVFS is not set
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++# CONFIG_PACKET is not set
++CONFIG_UNIX=y
++CONFIG_XFRM=y
++# CONFIG_XFRM_USER is not set
++# CONFIG_XFRM_SUB_POLICY is not set
++# CONFIG_XFRM_MIGRATE is not set
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++CONFIG_IP_PNP=y
++# CONFIG_IP_PNP_DHCP is not set
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++CONFIG_INET_XFRM_MODE_TRANSPORT=y
++CONFIG_INET_XFRM_MODE_TUNNEL=y
++CONFIG_INET_XFRM_MODE_BEET=y
++# CONFIG_INET_LRO is not set
++CONFIG_INET_DIAG=y
++CONFIG_INET_TCP_DIAG=y
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IPV6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++# CONFIG_CFG80211 is not set
++# CONFIG_WIRELESS_EXT is not set
++# CONFIG_MAC80211 is not set
++# CONFIG_IEEE80211 is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++# CONFIG_FW_LOADER is not set
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++CONFIG_MTD_REDBOOT_PARTS=y
++CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
++CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
++# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
++CONFIG_MTD_CMDLINE_PARTS=y
++# CONFIG_MTD_AFS_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++CONFIG_MTD_CFI=y
++CONFIG_MTD_JEDECPROBE=y
++CONFIG_MTD_GEN_PROBE=y
++# CONFIG_MTD_CFI_ADV_OPTIONS is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++CONFIG_MTD_CFI_INTELEXT=y
++CONFIG_MTD_CFI_AMDSTD=y
++# CONFIG_MTD_CFI_STAA is not set
++CONFIG_MTD_CFI_UTIL=y
++# CONFIG_MTD_RAM is not set
++CONFIG_MTD_ROM=y
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PHYSMAP is not set
++# CONFIG_MTD_ARM_INTEGRATOR is not set
++# CONFIG_MTD_IMPA7 is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++# CONFIG_MTD_DATAFLASH is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++CONFIG_MTD_NAND=y
++# CONFIG_MTD_NAND_VERIFY_WRITE is not set
++# CONFIG_MTD_NAND_ECC_SMC is not set
++# CONFIG_MTD_NAND_MUSEUM_IDS is not set
++CONFIG_MTD_NAND_IDS=y
++# CONFIG_MTD_NAND_S3C2410 is not set
++CONFIG_MTD_NAND_S3C=y
++# CONFIG_MTD_NAND_S3C_DEBUG is not set
++CONFIG_MTD_NO_ECC_WARNING=y
++CONFIG_MTD_NAND_S3C_HWECC=y
++CONFIG_S3C_LARGEPAGE_NAND=y
++# CONFIG_MTD_NAND_DISKONCHIP is not set
++# CONFIG_MTD_NAND_NANDSIM is not set
++# CONFIG_MTD_NAND_PLATFORM is not set
++# CONFIG_MTD_ALAUDA is not set
++# CONFIG_MTD_ONENAND is not set
++
++#
++# UBI - Unsorted block images
++#
++# CONFIG_MTD_UBI is not set
++CONFIG_PARPORT=y
++# CONFIG_PARPORT_PC is not set
++# CONFIG_PARPORT_GSC is not set
++# CONFIG_PARPORT_AX88796 is not set
++CONFIG_PARPORT_1284=y
++# CONFIG_PNP is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++# CONFIG_BLK_DEV_NBD is not set
++# CONFIG_BLK_DEV_UB is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=16
++CONFIG_BLK_DEV_RAM_SIZE=4096
++CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
++# CONFIG_CDROM_PKTCDVD is not set
++# CONFIG_ATA_OVER_ETH is not set
++CONFIG_MISC_DEVICES=y
++# CONFIG_EEPROM_93CX6 is not set
++# CONFIG_IDE is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++CONFIG_SCSI=y
++CONFIG_SCSI_DMA=y
++# CONFIG_SCSI_TGT is not set
++# CONFIG_SCSI_NETLINK is not set
++CONFIG_SCSI_PROC_FS=y
++
++#
++# SCSI support type (disk, tape, CD-ROM)
++#
++CONFIG_BLK_DEV_SD=y
++# CONFIG_CHR_DEV_ST is not set
++# CONFIG_CHR_DEV_OSST is not set
++# CONFIG_BLK_DEV_SR is not set
++CONFIG_CHR_DEV_SG=y
++# CONFIG_CHR_DEV_SCH is not set
++
++#
++# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
++#
++# CONFIG_SCSI_MULTI_LUN is not set
++# CONFIG_SCSI_CONSTANTS is not set
++# CONFIG_SCSI_LOGGING is not set
++# CONFIG_SCSI_SCAN_ASYNC is not set
++CONFIG_SCSI_WAIT_SCAN=m
++
++#
++# SCSI Transports
++#
++# CONFIG_SCSI_SPI_ATTRS is not set
++# CONFIG_SCSI_FC_ATTRS is not set
++# CONFIG_SCSI_ISCSI_ATTRS is not set
++# CONFIG_SCSI_SAS_LIBSAS is not set
++# CONFIG_SCSI_SRP_ATTRS is not set
++CONFIG_SCSI_LOWLEVEL=y
++# CONFIG_ISCSI_TCP is not set
++# CONFIG_SCSI_AHA152X is not set
++# CONFIG_SCSI_AIC7XXX_OLD is not set
++# CONFIG_SCSI_ADVANSYS is not set
++# CONFIG_SCSI_IN2000 is not set
++# CONFIG_SCSI_DTC3280 is not set
++# CONFIG_SCSI_FUTURE_DOMAIN is not set
++# CONFIG_SCSI_GENERIC_NCR5380 is not set
++# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
++# CONFIG_SCSI_NCR53C406A is not set
++# CONFIG_SCSI_PAS16 is not set
++# CONFIG_SCSI_PSI240I is not set
++# CONFIG_SCSI_QLOGIC_FAS is not set
++# CONFIG_SCSI_SYM53C416 is not set
++# CONFIG_SCSI_T128 is not set
++# CONFIG_SCSI_DEBUG is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++# CONFIG_ARCNET is not set
++# CONFIG_PHYLIB is not set
++CONFIG_NET_ETHERNET=y
++CONFIG_MII=y
++# CONFIG_AX88796 is not set
++# CONFIG_NET_VENDOR_3COM is not set
++# CONFIG_NET_VENDOR_SMC is not set
++# CONFIG_SMC91X is not set
++# CONFIG_DM9000 is not set
++CONFIG_SMC911X=y
++# CONFIG_NET_VENDOR_RACAL is not set
++# CONFIG_AT1700 is not set
++# CONFIG_DEPCA is not set
++# CONFIG_HP100 is not set
++# CONFIG_NET_ISA is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++CONFIG_NET_PCI=y
++# CONFIG_AC3200 is not set
++# CONFIG_APRICOT is not set
++# CONFIG_B44 is not set
++CONFIG_CS89x0=y
++# CONFIG_NET_POCKET is not set
++CONFIG_NETDEV_1000=y
++CONFIG_NETDEV_10000=y
++# CONFIG_TR is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++# CONFIG_WLAN_80211 is not set
++
++#
++# USB Network Adapters
++#
++# CONFIG_USB_CATC is not set
++# CONFIG_USB_KAWETH is not set
++# CONFIG_USB_PEGASUS is not set
++# CONFIG_USB_RTL8150 is not set
++# CONFIG_USB_USBNET is not set
++# CONFIG_WAN is not set
++# CONFIG_PLIP is not set
++# CONFIG_PPP is not set
++# CONFIG_SLIP is not set
++# CONFIG_SHAPER is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++CONFIG_INPUT_MOUSEDEV_PSAUX=y
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
++# CONFIG_INPUT_JOYDEV is not set
++CONFIG_INPUT_TSDEV=y
++CONFIG_INPUT_TSDEV_SCREEN_X=480
++CONFIG_INPUT_TSDEV_SCREEN_Y=640
++CONFIG_INPUT_EVDEV=y
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++# CONFIG_KEYBOARD_GPIO is not set
++# CONFIG_KEYPAD_S3C is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++CONFIG_MOUSE_PS2_LOGIPS2PP=y
++CONFIG_MOUSE_PS2_SYNAPTICS=y
++CONFIG_MOUSE_PS2_LIFEBOOK=y
++CONFIG_MOUSE_PS2_TRACKPOINT=y
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_APPLETOUCH is not set
++# CONFIG_MOUSE_INPORT is not set
++# CONFIG_MOUSE_LOGIBM is not set
++# CONFIG_MOUSE_PC110PAD is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_MOUSE_GPIO is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++CONFIG_INPUT_TOUCHSCREEN=y
++# CONFIG_TOUCHSCREEN_ADS7846 is not set
++CONFIG_TOUCHSCREEN_S3C=y
++# CONFIG_TOUCHSCREEN_FUJITSU is not set
++# CONFIG_TOUCHSCREEN_GUNZE is not set
++# CONFIG_TOUCHSCREEN_ELO is not set
++# CONFIG_TOUCHSCREEN_MTOUCH is not set
++# CONFIG_TOUCHSCREEN_MK712 is not set
++# CONFIG_TOUCHSCREEN_PENMOUNT is not set
++# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
++# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
++# CONFIG_TOUCHSCREEN_UCB1400 is not set
++# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++# CONFIG_SERIO_PARKBD is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++CONFIG_SERIAL_NONSTANDARD=y
++# CONFIG_COMPUTONE is not set
++# CONFIG_ROCKETPORT is not set
++# CONFIG_CYCLADES is not set
++# CONFIG_DIGIEPCA is not set
++# CONFIG_MOXA_INTELLIO is not set
++# CONFIG_MOXA_SMARTIO is not set
++# CONFIG_MOXA_SMARTIO_NEW is not set
++# CONFIG_N_HDLC is not set
++# CONFIG_RISCOM8 is not set
++# CONFIG_SPECIALIX is not set
++# CONFIG_SX is not set
++# CONFIG_RIO is not set
++# CONFIG_STALDRV is not set
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_NR_UARTS=8
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++CONFIG_SERIAL_8250_EXTENDED=y
++CONFIG_SERIAL_8250_MANY_PORTS=y
++# CONFIG_SERIAL_8250_FOURPORT is not set
++# CONFIG_SERIAL_8250_ACCENT is not set
++# CONFIG_SERIAL_8250_BOCA is not set
++# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
++# CONFIG_SERIAL_8250_HUB6 is not set
++CONFIG_SERIAL_8250_SHARE_IRQ=y
++# CONFIG_SERIAL_8250_DETECT_IRQ is not set
++# CONFIG_SERIAL_8250_RSA is not set
++
++#
++# Non-8250 serial port support
++#
++# CONFIG_SERIAL_S3C2410 is not set
++CONFIG_SERIAL_S3C6400=y
++CONFIG_SERIAL_S3C64XX_CONSOLE=y
++# CONFIG_SERIAL_S3C64XX_HS_UART is not set
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++CONFIG_PRINTER=y
++# CONFIG_LP_CONSOLE is not set
++CONFIG_PPDEV=y
++# CONFIG_IPMI_HANDLER is not set
++CONFIG_HW_RANDOM=y
++# CONFIG_NVRAM is not set
++# CONFIG_S3C_ADC is not set
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_DEVPORT=y
++CONFIG_I2C=y
++CONFIG_I2C_BOARDINFO=y
++CONFIG_I2C_CHARDEV=y
++
++#
++# I2C Algorithms
++#
++CONFIG_I2C_ALGOBIT=y
++# CONFIG_I2C_ALGOPCF is not set
++# CONFIG_I2C_ALGOPCA is not set
++
++#
++# I2C Hardware Bus support
++#
++# CONFIG_I2C_ELEKTOR is not set
++# CONFIG_I2C_GPIO is not set
++# CONFIG_I2C_OCORES is not set
++# CONFIG_I2C_PARPORT is not set
++# CONFIG_I2C_PARPORT_LIGHT is not set
++CONFIG_I2C_S3C2410=y
++# CONFIG_I2C_SIMTEC is not set
++# CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_STUB is not set
++# CONFIG_I2C_TINY_USB is not set
++# CONFIG_I2C_PCA_ISA is not set
++
++#
++# Miscellaneous I2C Chip support
++#
++# CONFIG_SENSORS_DS1337 is not set
++# CONFIG_SENSORS_DS1374 is not set
++# CONFIG_DS1682 is not set
++CONFIG_SENSORS_EEPROM=m
++# CONFIG_SENSORS_PCF8574 is not set
++# CONFIG_SENSORS_PCA9539 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_SENSORS_MAX6875 is not set
++# CONFIG_SENSORS_TSL2550 is not set
++# CONFIG_I2C_DEBUG_CORE is not set
++# CONFIG_I2C_DEBUG_ALGO is not set
++# CONFIG_I2C_DEBUG_BUS is not set
++# CONFIG_I2C_DEBUG_CHIP is not set
++
++#
++# SPI support
++#
++# CONFIG_SPI is not set
++# CONFIG_SPI_MASTER is not set
++
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++CONFIG_HWMON=y
++CONFIG_HWMON_VID=m
++# CONFIG_SENSORS_AD7418 is not set
++# CONFIG_SENSORS_ADM1021 is not set
++# CONFIG_SENSORS_ADM1025 is not set
++# CONFIG_SENSORS_ADM1026 is not set
++# CONFIG_SENSORS_ADM1029 is not set
++# CONFIG_SENSORS_ADM1031 is not set
++# CONFIG_SENSORS_ADM9240 is not set
++# CONFIG_SENSORS_ADT7470 is not set
++# CONFIG_SENSORS_ATXP1 is not set
++# CONFIG_SENSORS_DS1621 is not set
++# CONFIG_SENSORS_F71805F is not set
++# CONFIG_SENSORS_F71882FG is not set
++# CONFIG_SENSORS_F75375S is not set
++# CONFIG_SENSORS_GL518SM is not set
++# CONFIG_SENSORS_GL520SM is not set
++# CONFIG_SENSORS_IT87 is not set
++# CONFIG_SENSORS_LM63 is not set
++# CONFIG_SENSORS_LM70 is not set
++CONFIG_SENSORS_LM75=m
++# CONFIG_SENSORS_LM77 is not set
++CONFIG_SENSORS_LM78=m
++# CONFIG_SENSORS_LM80 is not set
++# CONFIG_SENSORS_LM83 is not set
++CONFIG_SENSORS_LM85=m
++# CONFIG_SENSORS_LM87 is not set
++# CONFIG_SENSORS_LM90 is not set
++# CONFIG_SENSORS_LM92 is not set
++# CONFIG_SENSORS_LM93 is not set
++# CONFIG_SENSORS_MAX1619 is not set
++# CONFIG_SENSORS_MAX6650 is not set
++# CONFIG_SENSORS_PC87360 is not set
++# CONFIG_SENSORS_PC87427 is not set
++# CONFIG_SENSORS_DME1737 is not set
++# CONFIG_SENSORS_SMSC47M1 is not set
++# CONFIG_SENSORS_SMSC47M192 is not set
++# CONFIG_SENSORS_SMSC47B397 is not set
++# CONFIG_SENSORS_THMC50 is not set
++# CONFIG_SENSORS_VT1211 is not set
++# CONFIG_SENSORS_W83781D is not set
++# CONFIG_SENSORS_W83791D is not set
++# CONFIG_SENSORS_W83792D is not set
++# CONFIG_SENSORS_W83793 is not set
++# CONFIG_SENSORS_W83L785TS is not set
++# CONFIG_SENSORS_W83627HF is not set
++# CONFIG_SENSORS_W83627EHF is not set
++# CONFIG_HWMON_DEBUG_CHIP is not set
++CONFIG_WATCHDOG=y
++# CONFIG_WATCHDOG_NOWAYOUT is not set
++
++#
++# Watchdog Device Drivers
++#
++# CONFIG_SOFT_WATCHDOG is not set
++CONFIG_S3C2410_WATCHDOG=y
++
++#
++# ISA-based Watchdog Cards
++#
++# CONFIG_PCWATCHDOG is not set
++# CONFIG_MIXCOMWD is not set
++# CONFIG_WDT is not set
++
++#
++# USB-based Watchdog Cards
++#
++# CONFIG_USBPCWATCHDOG is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++# CONFIG_DAB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++CONFIG_FIRMWARE_EDID=y
++# CONFIG_FB_DDC is not set
++CONFIG_FB_CFB_FILLRECT=y
++CONFIG_FB_CFB_COPYAREA=y
++CONFIG_FB_CFB_IMAGEBLIT=y
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++CONFIG_FB_MODE_HELPERS=y
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++CONFIG_FB_S3C=y
++CONFIG_FB_S3C_LTE480WV=y
++# CONFIG_FB_S3C_LTV350QV is not set
++# CONFIG_FB_S3C_LTS222QV is not set
++CONFIG_FB_S3C_BPP=y
++# CONFIG_FB_S3C_BPP_8 is not set
++CONFIG_FB_S3C_BPP_16=y
++# CONFIG_FB_S3C_BPP_24 is not set
++# CONFIG_FB_S3C_BPP_32 is not set
++CONFIG_FB_S3C_NUM=1
++# CONFIG_FB_S3C_VIRTUAL_SCREEN is not set
++# CONFIG_FB_S3C_DOUBLE_BUFFERING is not set
++# CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_S3C2410 is not set
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++# CONFIG_MDA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++# CONFIG_LOGO_LINUX_CLUT224 is not set
++CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224=y
++
++#
++# G3D Support
++#
++# CONFIG_G3D is not set
++
++#
++# Sound
++#
++CONFIG_SOUND=y
++
++#
++# Advanced Linux Sound Architecture
++#
++CONFIG_SND=y
++CONFIG_SND_TIMER=y
++CONFIG_SND_PCM=y
++CONFIG_SND_SEQUENCER=y
++# CONFIG_SND_SEQ_DUMMY is not set
++CONFIG_SND_OSSEMUL=y
++CONFIG_SND_MIXER_OSS=y
++CONFIG_SND_PCM_OSS=y
++CONFIG_SND_PCM_OSS_PLUGINS=y
++CONFIG_SND_SEQUENCER_OSS=y
++# CONFIG_SND_DYNAMIC_MINORS is not set
++CONFIG_SND_SUPPORT_OLD_API=y
++CONFIG_SND_VERBOSE_PROCFS=y
++# CONFIG_SND_VERBOSE_PRINTK is not set
++# CONFIG_SND_DEBUG is not set
++
++#
++# Generic devices
++#
++CONFIG_SND_AC97_CODEC=y
++# CONFIG_SND_DUMMY is not set
++# CONFIG_SND_VIRMIDI is not set
++# CONFIG_SND_MTPAV is not set
++# CONFIG_SND_MTS64 is not set
++# CONFIG_SND_SERIAL_U16550 is not set
++# CONFIG_SND_MPU401 is not set
++# CONFIG_SND_PORTMAN2X4 is not set
++
++#
++# ALSA ARM devices
++#
++
++#
++# SPI devices
++#
++
++#
++# USB devices
++#
++# CONFIG_SND_USB_AUDIO is not set
++# CONFIG_SND_USB_CAIAQ is not set
++
++#
++# System on Chip audio support
++#
++CONFIG_SND_SOC_AC97_BUS=y
++CONFIG_SND_SOC=y
++
++#
++# SoC Audio for the Samsung S3C
++#
++CONFIG_SND_S3C_SOC=y
++CONFIG_SND_S3C64XX_SOC_SMDK6410_WM9713=y
++CONFIG_SOUND_WM9713_INPUT_STREAM_LINE=y
++# CONFIG_SOUND_WM9713_INPUT_STREAM_MIC is not set
++CONFIG_SND_S3C6410_SOC_AC97=y
++# CONFIG_SND_S3C6410_SOC_SMDK6410_WM8580 is not set
++CONFIG_SND_SOC_WM9713=y
++
++#
++# Open Sound System
++#
++# CONFIG_SOUND_PRIME is not set
++CONFIG_AC97_BUS=y
++CONFIG_HID_SUPPORT=y
++CONFIG_HID=y
++# CONFIG_HID_DEBUG is not set
++# CONFIG_HIDRAW is not set
++
++#
++# USB Input Devices
++#
++CONFIG_USB_HID=y
++# CONFIG_USB_HIDINPUT_POWERBOOK is not set
++# CONFIG_HID_FF is not set
++# CONFIG_USB_HIDDEV is not set
++CONFIG_USB_SUPPORT=y
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
++# CONFIG_USB_ARCH_HAS_EHCI is not set
++CONFIG_USB=y
++# CONFIG_USB_DEBUG is not set
++
++#
++# Miscellaneous USB options
++#
++CONFIG_USB_DEVICEFS=y
++CONFIG_USB_DEVICE_CLASS=y
++# CONFIG_USB_DYNAMIC_MINORS is not set
++# CONFIG_USB_OTG is not set
++
++#
++# USB Host Controller Drivers
++#
++# CONFIG_USB_ISP116X_HCD is not set
++CONFIG_USB_OHCI_HCD=y
++# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
++# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
++CONFIG_USB_OHCI_LITTLE_ENDIAN=y
++# CONFIG_USB_SL811_HCD is not set
++# CONFIG_USB_R8A66597_HCD is not set
++
++#
++# USB Device Class drivers
++#
++# CONFIG_USB_ACM is not set
++# CONFIG_USB_PRINTER is not set
++
++#
++# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
++#
++
++#
++# may also be needed; see USB_STORAGE Help for more information
++#
++CONFIG_USB_STORAGE=y
++# CONFIG_USB_STORAGE_DEBUG is not set
++# CONFIG_USB_STORAGE_DATAFAB is not set
++# CONFIG_USB_STORAGE_FREECOM is not set
++# CONFIG_USB_STORAGE_ISD200 is not set
++# CONFIG_USB_STORAGE_DPCM is not set
++# CONFIG_USB_STORAGE_USBAT is not set
++# CONFIG_USB_STORAGE_SDDR09 is not set
++# CONFIG_USB_STORAGE_SDDR55 is not set
++# CONFIG_USB_STORAGE_JUMPSHOT is not set
++# CONFIG_USB_STORAGE_ALAUDA is not set
++# CONFIG_USB_STORAGE_ONETOUCH is not set
++# CONFIG_USB_STORAGE_KARMA is not set
++# CONFIG_USB_LIBUSUAL is not set
++
++#
++# USB Imaging devices
++#
++# CONFIG_USB_MDC800 is not set
++# CONFIG_USB_MICROTEK is not set
++CONFIG_USB_MON=y
++
++#
++# USB port drivers
++#
++# CONFIG_USB_USS720 is not set
++
++#
++# USB Serial Converter support
++#
++# CONFIG_USB_SERIAL is not set
++
++#
++# USB Miscellaneous drivers
++#
++# CONFIG_USB_EMI62 is not set
++# CONFIG_USB_EMI26 is not set
++# CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_AUERSWALD is not set
++# CONFIG_USB_RIO500 is not set
++# CONFIG_USB_LEGOTOWER is not set
++# CONFIG_USB_LCD is not set
++# CONFIG_USB_BERRY_CHARGE is not set
++# CONFIG_USB_LED is not set
++# CONFIG_USB_CYPRESS_CY7C63 is not set
++# CONFIG_USB_CYTHERM is not set
++# CONFIG_USB_PHIDGET is not set
++# CONFIG_USB_IDMOUSE is not set
++# CONFIG_USB_FTDI_ELAN is not set
++# CONFIG_USB_APPLEDISPLAY is not set
++# CONFIG_USB_LD is not set
++# CONFIG_USB_TRANCEVIBRATOR is not set
++# CONFIG_USB_IOWARRIOR is not set
++# CONFIG_USB_TEST is not set
++
++#
++# USB DSL modem support
++#
++
++#
++# USB Gadget Support
++#
++# CONFIG_USB_GADGET is not set
++CONFIG_MMC=y
++# CONFIG_MMC_DEBUG is not set
++# CONFIG_MMC_UNSAFE_RESUME is not set
++
++#
++# MMC/SD Card Drivers
++#
++CONFIG_MMC_BLOCK=y
++CONFIG_MMC_BLOCK_BOUNCE=y
++# CONFIG_SDIO_UART is not set
++
++#
++# MMC/SD Host Controller Drivers
++#
++CONFIG_HSMMC_S3C=y
++# CONFIG_USE_MMC_AS_ROOT is not set
++# CONFIG_HSMMC_S3C_IRQ_WORKAROUND is not set
++CONFIG_HSMMC_SCATTERGATHER=y
++# CONFIG_S3CMMC_DEBUG is not set
++# CONFIG_MMC_SPI is not set
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=m
++
++#
++# LED drivers
++#
++CONFIG_LEDS_S3C24XX=m
++# CONFIG_LEDS_GPIO is not set
++
++#
++# LED Triggers
++#
++CONFIG_LEDS_TRIGGERS=y
++CONFIG_LEDS_TRIGGER_TIMER=m
++CONFIG_LEDS_TRIGGER_HEARTBEAT=m
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# I2C RTC drivers
++#
++# CONFIG_RTC_DRV_DS1307 is not set
++# CONFIG_RTC_DRV_DS1374 is not set
++# CONFIG_RTC_DRV_DS1672 is not set
++# CONFIG_RTC_DRV_MAX6900 is not set
++# CONFIG_RTC_DRV_RS5C372 is not set
++# CONFIG_RTC_DRV_ISL1208 is not set
++# CONFIG_RTC_DRV_X1205 is not set
++# CONFIG_RTC_DRV_PCF8563 is not set
++# CONFIG_RTC_DRV_PCF8583 is not set
++# CONFIG_RTC_DRV_M41T80 is not set
++
++#
++# SPI RTC drivers
++#
++# CONFIG_RTC_DRV_RS5C348 is not set
++# CONFIG_RTC_DRV_MAX6902 is not set
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_S3C=y
++
++#
++# Pulse Width Modulation Timer
++#
++# CONFIG_PWM is not set
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++CONFIG_EXT3_FS=y
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
++# CONFIG_EXT4DEV_FS is not set
++CONFIG_JBD=y
++CONFIG_FS_MBCACHE=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_MINIX_FS is not set
++CONFIG_ROMFS_FS=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++CONFIG_MSDOS_FS=y
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
++# CONFIG_JFFS2_SUMMARY is not set
++# CONFIG_JFFS2_FS_XATTR is not set
++# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
++CONFIG_JFFS2_ZLIB=y
++# CONFIG_JFFS2_LZO is not set
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++CONFIG_CRAMFS=y
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=y
++# CONFIG_NFS_V3 is not set
++# CONFIG_NFS_V4 is not set
++# CONFIG_NFS_DIRECTIO is not set
++# CONFIG_NFSD is not set
++CONFIG_ROOT_NFS=y
++CONFIG_LOCKD=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=y
++# CONFIG_SUNRPC_BIND34 is not set
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++CONFIG_PARTITION_ADVANCED=y
++# CONFIG_ACORN_PARTITION is not set
++# CONFIG_OSF_PARTITION is not set
++# CONFIG_AMIGA_PARTITION is not set
++# CONFIG_ATARI_PARTITION is not set
++# CONFIG_MAC_PARTITION is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_BSD_DISKLABEL=y
++# CONFIG_MINIX_SUBPARTITION is not set
++CONFIG_SOLARIS_X86_PARTITION=y
++# CONFIG_UNIXWARE_DISKLABEL is not set
++# CONFIG_LDM_PARTITION is not set
++# CONFIG_SGI_PARTITION is not set
++# CONFIG_ULTRIX_PARTITION is not set
++# CONFIG_SUN_PARTITION is not set
++# CONFIG_KARMA_PARTITION is not set
++# CONFIG_EFI_PARTITION is not set
++# CONFIG_SYSV68_PARTITION is not set
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++CONFIG_NLS_ASCII=y
++CONFIG_NLS_ISO8859_1=y
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++CONFIG_INSTRUMENTATION=y
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_MAGIC_SYSRQ=y
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_TIMER_STATS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++CONFIG_DEBUG_MUTEXES=y
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++CONFIG_FRAME_POINTER=y
++CONFIG_FORCED_INLINING=y
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_SAMPLES is not set
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++CONFIG_DEBUG_LL=y
++# CONFIG_DEBUG_ICEDCC is not set
++CONFIG_DEBUG_S3C_PORT=y
++CONFIG_DEBUG_S3C_UART=0
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff --git a/arch/arm/configs/smdk6410nfs_defconfig b/arch/arm/configs/smdk6410nfs_defconfig
+new file mode 100644
+index 0000000..e822427
+--- /dev/null
++++ b/arch/arm/configs/smdk6410nfs_defconfig
+@@ -0,0 +1,1349 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.24.2
++# Thu Aug 21 14:55:51 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_AUDIT is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=16
++# CONFIG_CGROUPS is not set
++CONFIG_FAIR_GROUP_SCHED=y
++CONFIG_FAIR_USER_SCHED=y
++# CONFIG_FAIR_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++# CONFIG_RELAY is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++# CONFIG_EMBEDDED is not set
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++CONFIG_PLAT_S3C64XX=y
++CONFIG_S3C64XX_DMA=y
++CONFIG_PLAT_S3C=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_WATCHDOG is not set
++# CONFIG_S3C_BOOT_ERROR_RESET is not set
++
++#
++# Power management
++#
++CONFIG_S3C_LOWLEVEL_UART_PORT=0
++CONFIG_SPLIT_ROOT_FILESYSTEM=y
++CONFIG_MACH_SMDK=y
++
++#
++# S3C2400 Machines
++#
++
++#
++# S3C2410 Machines
++#
++# CONFIG_ARCH_SMDK2410 is not set
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++
++#
++# S3C2440 Machines
++#
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++# CONFIG_ARCH_S3C2440 is not set
++# CONFIG_MACH_NEXCODER_2440 is not set
++
++#
++# S3C2442 Machines
++#
++
++#
++# S3C2443 Machines
++#
++# CONFIG_MACH_SMDK2443 is not set
++
++#
++# S3C2450 Machines
++#
++# CONFIG_MACH_SMDK2450 is not set
++
++#
++# S3C2416 Machines
++#
++# CONFIG_MACH_SMDK2416 is not set
++
++#
++# S3C6400 Machines
++#
++# CONFIG_MACH_SMDK6400 is not set
++
++#
++# S3C6410 Machines
++#
++CONFIG_MACH_SMDK6410=y
++# CONFIG_MACH_SMDK6430 is not set
++# CONFIG_S3C6410_PDFW is not set
++CONFIG_CPU_S3C6410=y
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_V6=y
++# CONFIG_CPU_32v6K is not set
++CONFIG_CPU_32v6=y
++CONFIG_CPU_ABRT_EV6=y
++CONFIG_CPU_CACHE_V6=y
++CONFIG_CPU_CACHE_VIPT=y
++CONFIG_CPU_COPY_V6=y
++CONFIG_CPU_TLB_V6=y
++CONFIG_CPU_HAS_ASID=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++# CONFIG_ARM_THUMB is not set
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_BPREDICT_DISABLE is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++CONFIG_ISA=y
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++# CONFIG_PREEMPT is not set
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=200
++CONFIG_AEABI=y
++CONFIG_OABI_COMPAT=y
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++# CONFIG_LEDS is not set
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="root=/dev/nfs rw nfsroot=12.23.106.154:/opt/small_root_eabi ip=192.168.0.20:12.23.106.154:192.168.0.1:255.255.255.0:test::off init=/linuxrc console=ttySAC0,115200"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++# CONFIG_FPE_NWFPE_XP is not set
++# CONFIG_FPE_FASTFPE is not set
++# CONFIG_VFP is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_AOUT=y
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++# CONFIG_PM is not set
++CONFIG_SUSPEND_UP_POSSIBLE=y
++
++#
++# DVFS support
++#
++# CONFIG_DVFS is not set
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++# CONFIG_PACKET is not set
++CONFIG_UNIX=y
++CONFIG_XFRM=y
++# CONFIG_XFRM_USER is not set
++# CONFIG_XFRM_SUB_POLICY is not set
++# CONFIG_XFRM_MIGRATE is not set
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++CONFIG_IP_PNP=y
++# CONFIG_IP_PNP_DHCP is not set
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++CONFIG_INET_XFRM_MODE_TRANSPORT=y
++CONFIG_INET_XFRM_MODE_TUNNEL=y
++CONFIG_INET_XFRM_MODE_BEET=y
++# CONFIG_INET_LRO is not set
++CONFIG_INET_DIAG=y
++CONFIG_INET_TCP_DIAG=y
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IPV6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++# CONFIG_CFG80211 is not set
++# CONFIG_WIRELESS_EXT is not set
++# CONFIG_MAC80211 is not set
++# CONFIG_IEEE80211 is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++# CONFIG_FW_LOADER is not set
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++CONFIG_MTD_REDBOOT_PARTS=y
++CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
++CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
++# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
++CONFIG_MTD_CMDLINE_PARTS=y
++# CONFIG_MTD_AFS_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++CONFIG_MTD_CFI=y
++CONFIG_MTD_JEDECPROBE=y
++CONFIG_MTD_GEN_PROBE=y
++# CONFIG_MTD_CFI_ADV_OPTIONS is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++CONFIG_MTD_CFI_INTELEXT=y
++CONFIG_MTD_CFI_AMDSTD=y
++# CONFIG_MTD_CFI_STAA is not set
++CONFIG_MTD_CFI_UTIL=y
++# CONFIG_MTD_RAM is not set
++CONFIG_MTD_ROM=y
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PHYSMAP is not set
++# CONFIG_MTD_ARM_INTEGRATOR is not set
++# CONFIG_MTD_IMPA7 is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++# CONFIG_MTD_DATAFLASH is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++CONFIG_MTD_NAND=y
++# CONFIG_MTD_NAND_VERIFY_WRITE is not set
++# CONFIG_MTD_NAND_ECC_SMC is not set
++# CONFIG_MTD_NAND_MUSEUM_IDS is not set
++CONFIG_MTD_NAND_IDS=y
++# CONFIG_MTD_NAND_S3C2410 is not set
++CONFIG_MTD_NAND_S3C=y
++# CONFIG_MTD_NAND_S3C_DEBUG is not set
++CONFIG_MTD_NO_ECC_WARNING=y
++CONFIG_MTD_NAND_S3C_HWECC=y
++CONFIG_S3C_LARGEPAGE_NAND=y
++# CONFIG_MTD_NAND_DISKONCHIP is not set
++# CONFIG_MTD_NAND_NANDSIM is not set
++# CONFIG_MTD_NAND_PLATFORM is not set
++# CONFIG_MTD_ONENAND is not set
++
++#
++# UBI - Unsorted block images
++#
++# CONFIG_MTD_UBI is not set
++CONFIG_PARPORT=y
++# CONFIG_PARPORT_PC is not set
++# CONFIG_PARPORT_GSC is not set
++# CONFIG_PARPORT_AX88796 is not set
++CONFIG_PARPORT_1284=y
++# CONFIG_PNP is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++# CONFIG_BLK_DEV_NBD is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=16
++CONFIG_BLK_DEV_RAM_SIZE=4096
++CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
++# CONFIG_CDROM_PKTCDVD is not set
++# CONFIG_ATA_OVER_ETH is not set
++CONFIG_MISC_DEVICES=y
++# CONFIG_EEPROM_93CX6 is not set
++# CONFIG_IDE is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++# CONFIG_SCSI is not set
++# CONFIG_SCSI_DMA is not set
++# CONFIG_SCSI_NETLINK is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++# CONFIG_ARCNET is not set
++# CONFIG_PHYLIB is not set
++CONFIG_NET_ETHERNET=y
++CONFIG_MII=y
++# CONFIG_AX88796 is not set
++# CONFIG_NET_VENDOR_3COM is not set
++# CONFIG_NET_VENDOR_SMC is not set
++# CONFIG_SMC91X is not set
++# CONFIG_DM9000 is not set
++CONFIG_SMC911X=y
++# CONFIG_NET_VENDOR_RACAL is not set
++# CONFIG_AT1700 is not set
++# CONFIG_DEPCA is not set
++# CONFIG_HP100 is not set
++# CONFIG_NET_ISA is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++CONFIG_NET_PCI=y
++# CONFIG_AC3200 is not set
++# CONFIG_APRICOT is not set
++# CONFIG_B44 is not set
++CONFIG_CS89x0=y
++# CONFIG_NET_POCKET is not set
++CONFIG_NETDEV_1000=y
++CONFIG_NETDEV_10000=y
++# CONFIG_TR is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++# CONFIG_WLAN_80211 is not set
++# CONFIG_WAN is not set
++# CONFIG_PLIP is not set
++# CONFIG_PPP is not set
++# CONFIG_SLIP is not set
++# CONFIG_SHAPER is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++CONFIG_INPUT_MOUSEDEV_PSAUX=y
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
++# CONFIG_INPUT_JOYDEV is not set
++CONFIG_INPUT_TSDEV=y
++CONFIG_INPUT_TSDEV_SCREEN_X=480
++CONFIG_INPUT_TSDEV_SCREEN_Y=640
++CONFIG_INPUT_EVDEV=y
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++# CONFIG_KEYBOARD_GPIO is not set
++# CONFIG_KEYPAD_S3C is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++CONFIG_MOUSE_PS2_LOGIPS2PP=y
++CONFIG_MOUSE_PS2_SYNAPTICS=y
++CONFIG_MOUSE_PS2_LIFEBOOK=y
++CONFIG_MOUSE_PS2_TRACKPOINT=y
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_INPORT is not set
++# CONFIG_MOUSE_LOGIBM is not set
++# CONFIG_MOUSE_PC110PAD is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_MOUSE_GPIO is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++CONFIG_INPUT_TOUCHSCREEN=y
++# CONFIG_TOUCHSCREEN_ADS7846 is not set
++CONFIG_TOUCHSCREEN_S3C=y
++# CONFIG_TOUCHSCREEN_FUJITSU is not set
++# CONFIG_TOUCHSCREEN_GUNZE is not set
++# CONFIG_TOUCHSCREEN_ELO is not set
++# CONFIG_TOUCHSCREEN_MTOUCH is not set
++# CONFIG_TOUCHSCREEN_MK712 is not set
++# CONFIG_TOUCHSCREEN_PENMOUNT is not set
++# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
++# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
++# CONFIG_TOUCHSCREEN_UCB1400 is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++# CONFIG_SERIO_PARKBD is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++CONFIG_SERIAL_NONSTANDARD=y
++# CONFIG_COMPUTONE is not set
++# CONFIG_ROCKETPORT is not set
++# CONFIG_CYCLADES is not set
++# CONFIG_DIGIEPCA is not set
++# CONFIG_MOXA_INTELLIO is not set
++# CONFIG_MOXA_SMARTIO is not set
++# CONFIG_MOXA_SMARTIO_NEW is not set
++# CONFIG_N_HDLC is not set
++# CONFIG_RISCOM8 is not set
++# CONFIG_SPECIALIX is not set
++# CONFIG_SX is not set
++# CONFIG_RIO is not set
++# CONFIG_STALDRV is not set
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_NR_UARTS=8
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++CONFIG_SERIAL_8250_EXTENDED=y
++CONFIG_SERIAL_8250_MANY_PORTS=y
++# CONFIG_SERIAL_8250_FOURPORT is not set
++# CONFIG_SERIAL_8250_ACCENT is not set
++# CONFIG_SERIAL_8250_BOCA is not set
++# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
++# CONFIG_SERIAL_8250_HUB6 is not set
++CONFIG_SERIAL_8250_SHARE_IRQ=y
++# CONFIG_SERIAL_8250_DETECT_IRQ is not set
++# CONFIG_SERIAL_8250_RSA is not set
++
++#
++# Non-8250 serial port support
++#
++# CONFIG_SERIAL_S3C2410 is not set
++CONFIG_SERIAL_S3C6400=y
++CONFIG_SERIAL_S3C64XX_CONSOLE=y
++# CONFIG_SERIAL_S3C64XX_HS_UART is not set
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++CONFIG_PRINTER=y
++# CONFIG_LP_CONSOLE is not set
++CONFIG_PPDEV=y
++# CONFIG_IPMI_HANDLER is not set
++CONFIG_HW_RANDOM=y
++# CONFIG_NVRAM is not set
++# CONFIG_S3C_ADC is not set
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_DEVPORT=y
++CONFIG_I2C=y
++CONFIG_I2C_BOARDINFO=y
++CONFIG_I2C_CHARDEV=y
++
++#
++# I2C Algorithms
++#
++CONFIG_I2C_ALGOBIT=y
++# CONFIG_I2C_ALGOPCF is not set
++# CONFIG_I2C_ALGOPCA is not set
++
++#
++# I2C Hardware Bus support
++#
++# CONFIG_I2C_ELEKTOR is not set
++# CONFIG_I2C_GPIO is not set
++# CONFIG_I2C_OCORES is not set
++# CONFIG_I2C_PARPORT is not set
++# CONFIG_I2C_PARPORT_LIGHT is not set
++CONFIG_I2C_S3C2410=y
++# CONFIG_I2C_SIMTEC is not set
++# CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_STUB is not set
++# CONFIG_I2C_PCA_ISA is not set
++
++#
++# Miscellaneous I2C Chip support
++#
++# CONFIG_SENSORS_DS1337 is not set
++# CONFIG_SENSORS_DS1374 is not set
++# CONFIG_DS1682 is not set
++CONFIG_SENSORS_EEPROM=m
++# CONFIG_SENSORS_PCF8574 is not set
++# CONFIG_SENSORS_PCA9539 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_SENSORS_MAX6875 is not set
++# CONFIG_SENSORS_TSL2550 is not set
++# CONFIG_I2C_DEBUG_CORE is not set
++# CONFIG_I2C_DEBUG_ALGO is not set
++# CONFIG_I2C_DEBUG_BUS is not set
++# CONFIG_I2C_DEBUG_CHIP is not set
++
++#
++# SPI support
++#
++CONFIG_SPI=y
++# CONFIG_SPI_DEBUG is not set
++CONFIG_SPI_MASTER=y
++
++#
++# SPI Master Controller Drivers
++#
++CONFIG_SPI_BITBANG=m
++# CONFIG_SPI_BUTTERFLY is not set
++# CONFIG_SPI_LM70_LLP is not set
++CONFIG_SPI_S3C24XX=m
++CONFIG_SPI_S3C24XX_GPIO=m
++# CONFIG_HS_SPI_S3C6410 is not set
++
++#
++# SPI Protocol Masters
++#
++# CONFIG_SPI_AT25 is not set
++# CONFIG_SPI_SPIDEV is not set
++# CONFIG_SPI_TLE62X0 is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++CONFIG_HWMON=y
++CONFIG_HWMON_VID=m
++# CONFIG_SENSORS_AD7418 is not set
++# CONFIG_SENSORS_ADM1021 is not set
++# CONFIG_SENSORS_ADM1025 is not set
++# CONFIG_SENSORS_ADM1026 is not set
++# CONFIG_SENSORS_ADM1029 is not set
++# CONFIG_SENSORS_ADM1031 is not set
++# CONFIG_SENSORS_ADM9240 is not set
++# CONFIG_SENSORS_ADT7470 is not set
++# CONFIG_SENSORS_ATXP1 is not set
++# CONFIG_SENSORS_DS1621 is not set
++# CONFIG_SENSORS_F71805F is not set
++# CONFIG_SENSORS_F71882FG is not set
++# CONFIG_SENSORS_F75375S is not set
++# CONFIG_SENSORS_GL518SM is not set
++# CONFIG_SENSORS_GL520SM is not set
++# CONFIG_SENSORS_IT87 is not set
++# CONFIG_SENSORS_LM63 is not set
++# CONFIG_SENSORS_LM70 is not set
++CONFIG_SENSORS_LM75=m
++# CONFIG_SENSORS_LM77 is not set
++CONFIG_SENSORS_LM78=m
++# CONFIG_SENSORS_LM80 is not set
++# CONFIG_SENSORS_LM83 is not set
++CONFIG_SENSORS_LM85=m
++# CONFIG_SENSORS_LM87 is not set
++# CONFIG_SENSORS_LM90 is not set
++# CONFIG_SENSORS_LM92 is not set
++# CONFIG_SENSORS_LM93 is not set
++# CONFIG_SENSORS_MAX1619 is not set
++# CONFIG_SENSORS_MAX6650 is not set
++# CONFIG_SENSORS_PC87360 is not set
++# CONFIG_SENSORS_PC87427 is not set
++# CONFIG_SENSORS_DME1737 is not set
++# CONFIG_SENSORS_SMSC47M1 is not set
++# CONFIG_SENSORS_SMSC47M192 is not set
++# CONFIG_SENSORS_SMSC47B397 is not set
++# CONFIG_SENSORS_THMC50 is not set
++# CONFIG_SENSORS_VT1211 is not set
++# CONFIG_SENSORS_W83781D is not set
++# CONFIG_SENSORS_W83791D is not set
++# CONFIG_SENSORS_W83792D is not set
++# CONFIG_SENSORS_W83793 is not set
++# CONFIG_SENSORS_W83L785TS is not set
++# CONFIG_SENSORS_W83627HF is not set
++# CONFIG_SENSORS_W83627EHF is not set
++# CONFIG_HWMON_DEBUG_CHIP is not set
++CONFIG_WATCHDOG=y
++# CONFIG_WATCHDOG_NOWAYOUT is not set
++
++#
++# Watchdog Device Drivers
++#
++# CONFIG_SOFT_WATCHDOG is not set
++CONFIG_S3C2410_WATCHDOG=y
++
++#
++# ISA-based Watchdog Cards
++#
++# CONFIG_PCWATCHDOG is not set
++# CONFIG_MIXCOMWD is not set
++# CONFIG_WDT is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++# CONFIG_DAB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++CONFIG_FIRMWARE_EDID=y
++# CONFIG_FB_DDC is not set
++CONFIG_FB_CFB_FILLRECT=y
++CONFIG_FB_CFB_COPYAREA=y
++CONFIG_FB_CFB_IMAGEBLIT=y
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++CONFIG_FB_MODE_HELPERS=y
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++CONFIG_FB_S3C=y
++CONFIG_FB_S3C_LTE480WV=y
++# CONFIG_FB_S3C_LTV350QV is not set
++# CONFIG_FB_S3C_LTS222QV is not set
++CONFIG_FB_S3C_BPP=y
++# CONFIG_FB_S3C_BPP_8 is not set
++CONFIG_FB_S3C_BPP_16=y
++# CONFIG_FB_S3C_BPP_24 is not set
++# CONFIG_FB_S3C_BPP_32 is not set
++CONFIG_FB_S3C_NUM=1
++# CONFIG_FB_S3C_VIRTUAL_SCREEN is not set
++# CONFIG_FB_S3C_DOUBLE_BUFFERING is not set
++# CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_S3C2410 is not set
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++# CONFIG_MDA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++# CONFIG_LOGO_LINUX_CLUT224 is not set
++CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224=y
++
++#
++# G3D Support
++#
++# CONFIG_G3D is not set
++
++#
++# Sound
++#
++CONFIG_SOUND=y
++
++#
++# Advanced Linux Sound Architecture
++#
++CONFIG_SND=y
++CONFIG_SND_TIMER=y
++CONFIG_SND_PCM=y
++CONFIG_SND_SEQUENCER=y
++# CONFIG_SND_SEQ_DUMMY is not set
++CONFIG_SND_OSSEMUL=y
++CONFIG_SND_MIXER_OSS=y
++CONFIG_SND_PCM_OSS=y
++CONFIG_SND_PCM_OSS_PLUGINS=y
++CONFIG_SND_SEQUENCER_OSS=y
++# CONFIG_SND_DYNAMIC_MINORS is not set
++CONFIG_SND_SUPPORT_OLD_API=y
++CONFIG_SND_VERBOSE_PROCFS=y
++# CONFIG_SND_VERBOSE_PRINTK is not set
++# CONFIG_SND_DEBUG is not set
++
++#
++# Generic devices
++#
++CONFIG_SND_AC97_CODEC=y
++# CONFIG_SND_DUMMY is not set
++# CONFIG_SND_VIRMIDI is not set
++# CONFIG_SND_MTPAV is not set
++# CONFIG_SND_MTS64 is not set
++# CONFIG_SND_SERIAL_U16550 is not set
++# CONFIG_SND_MPU401 is not set
++# CONFIG_SND_PORTMAN2X4 is not set
++
++#
++# ALSA ARM devices
++#
++
++#
++# SPI devices
++#
++
++#
++# System on Chip audio support
++#
++CONFIG_SND_SOC_AC97_BUS=y
++CONFIG_SND_SOC=y
++
++#
++# SoC Audio for the Samsung S3C
++#
++CONFIG_SND_S3C_SOC=y
++CONFIG_SND_S3C64XX_SOC_SMDK6410_WM9713=y
++CONFIG_SOUND_WM9713_INPUT_STREAM_LINE=y
++# CONFIG_SOUND_WM9713_INPUT_STREAM_MIC is not set
++CONFIG_SND_S3C6410_SOC_AC97=y
++# CONFIG_SND_S3C6410_SOC_SMDK6410_WM8580 is not set
++CONFIG_SND_SOC_WM9713=y
++
++#
++# Open Sound System
++#
++# CONFIG_SOUND_PRIME is not set
++CONFIG_AC97_BUS=y
++CONFIG_HID_SUPPORT=y
++CONFIG_HID=y
++# CONFIG_HID_DEBUG is not set
++# CONFIG_HIDRAW is not set
++# CONFIG_USB_SUPPORT is not set
++CONFIG_MMC=y
++# CONFIG_MMC_DEBUG is not set
++# CONFIG_MMC_UNSAFE_RESUME is not set
++
++#
++# MMC/SD Card Drivers
++#
++CONFIG_MMC_BLOCK=y
++CONFIG_MMC_BLOCK_BOUNCE=y
++# CONFIG_SDIO_UART is not set
++
++#
++# MMC/SD Host Controller Drivers
++#
++CONFIG_HSMMC_S3C=y
++# CONFIG_USE_MMC_AS_ROOT is not set
++# CONFIG_HSMMC_S3C_IRQ_WORKAROUND is not set
++CONFIG_HSMMC_SCATTERGATHER=y
++# CONFIG_S3CMMC_DEBUG is not set
++# CONFIG_MMC_SPI is not set
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=m
++
++#
++# LED drivers
++#
++CONFIG_LEDS_S3C24XX=m
++# CONFIG_LEDS_GPIO is not set
++
++#
++# LED Triggers
++#
++CONFIG_LEDS_TRIGGERS=y
++CONFIG_LEDS_TRIGGER_TIMER=m
++CONFIG_LEDS_TRIGGER_HEARTBEAT=m
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# I2C RTC drivers
++#
++# CONFIG_RTC_DRV_DS1307 is not set
++# CONFIG_RTC_DRV_DS1374 is not set
++# CONFIG_RTC_DRV_DS1672 is not set
++# CONFIG_RTC_DRV_MAX6900 is not set
++# CONFIG_RTC_DRV_RS5C372 is not set
++# CONFIG_RTC_DRV_ISL1208 is not set
++# CONFIG_RTC_DRV_X1205 is not set
++# CONFIG_RTC_DRV_PCF8563 is not set
++# CONFIG_RTC_DRV_PCF8583 is not set
++# CONFIG_RTC_DRV_M41T80 is not set
++
++#
++# SPI RTC drivers
++#
++# CONFIG_RTC_DRV_RS5C348 is not set
++# CONFIG_RTC_DRV_MAX6902 is not set
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_S3C=y
++
++#
++# Pulse Width Modulation Timer
++#
++# CONFIG_PWM is not set
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++CONFIG_EXT3_FS=y
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
++# CONFIG_EXT4DEV_FS is not set
++CONFIG_JBD=y
++CONFIG_FS_MBCACHE=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_MINIX_FS is not set
++CONFIG_ROMFS_FS=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++CONFIG_MSDOS_FS=y
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
++# CONFIG_JFFS2_SUMMARY is not set
++# CONFIG_JFFS2_FS_XATTR is not set
++# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
++CONFIG_JFFS2_ZLIB=y
++# CONFIG_JFFS2_LZO is not set
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++CONFIG_CRAMFS=y
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=y
++# CONFIG_NFS_V3 is not set
++# CONFIG_NFS_V4 is not set
++# CONFIG_NFS_DIRECTIO is not set
++# CONFIG_NFSD is not set
++CONFIG_ROOT_NFS=y
++CONFIG_LOCKD=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=y
++# CONFIG_SUNRPC_BIND34 is not set
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++CONFIG_PARTITION_ADVANCED=y
++# CONFIG_ACORN_PARTITION is not set
++# CONFIG_OSF_PARTITION is not set
++# CONFIG_AMIGA_PARTITION is not set
++# CONFIG_ATARI_PARTITION is not set
++# CONFIG_MAC_PARTITION is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_BSD_DISKLABEL=y
++# CONFIG_MINIX_SUBPARTITION is not set
++CONFIG_SOLARIS_X86_PARTITION=y
++# CONFIG_UNIXWARE_DISKLABEL is not set
++# CONFIG_LDM_PARTITION is not set
++# CONFIG_SGI_PARTITION is not set
++# CONFIG_ULTRIX_PARTITION is not set
++# CONFIG_SUN_PARTITION is not set
++# CONFIG_KARMA_PARTITION is not set
++# CONFIG_EFI_PARTITION is not set
++# CONFIG_SYSV68_PARTITION is not set
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++CONFIG_NLS_ASCII=y
++CONFIG_NLS_ISO8859_1=y
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++CONFIG_INSTRUMENTATION=y
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_MAGIC_SYSRQ=y
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_TIMER_STATS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++CONFIG_DEBUG_MUTEXES=y
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++CONFIG_FRAME_POINTER=y
++CONFIG_FORCED_INLINING=y
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_SAMPLES is not set
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++CONFIG_DEBUG_LL=y
++# CONFIG_DEBUG_ICEDCC is not set
++CONFIG_DEBUG_S3C_PORT=y
++CONFIG_DEBUG_S3C_UART=0
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff --git a/arch/arm/configs/smdk6410onenand_defconfig b/arch/arm/configs/smdk6410onenand_defconfig
+new file mode 100644
+index 0000000..ffa6d25
+--- /dev/null
++++ b/arch/arm/configs/smdk6410onenand_defconfig
+@@ -0,0 +1,1354 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.24.2
++# Mon Oct 20 13:00:04 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_AUDIT is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=16
++# CONFIG_CGROUPS is not set
++CONFIG_FAIR_GROUP_SCHED=y
++CONFIG_FAIR_USER_SCHED=y
++# CONFIG_FAIR_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++# CONFIG_RELAY is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++# CONFIG_EMBEDDED is not set
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLUB_DEBUG=y
++# CONFIG_SLAB is not set
++CONFIG_SLUB=y
++# CONFIG_SLOB is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++CONFIG_PLAT_S3C64XX=y
++CONFIG_S3C64XX_DMA=y
++CONFIG_PLAT_S3C=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_WATCHDOG is not set
++# CONFIG_S3C_BOOT_ERROR_RESET is not set
++
++#
++# Power management
++#
++CONFIG_S3C_LOWLEVEL_UART_PORT=0
++CONFIG_SPLIT_ROOT_FILESYSTEM=y
++CONFIG_MACH_SMDK=y
++
++#
++# S3C2400 Machines
++#
++
++#
++# S3C2410 Machines
++#
++# CONFIG_ARCH_SMDK2410 is not set
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++
++#
++# S3C2440 Machines
++#
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++# CONFIG_ARCH_S3C2440 is not set
++# CONFIG_MACH_NEXCODER_2440 is not set
++
++#
++# S3C2442 Machines
++#
++
++#
++# S3C2443 Machines
++#
++# CONFIG_MACH_SMDK2443 is not set
++
++#
++# S3C2450 Machines
++#
++# CONFIG_MACH_SMDK2450 is not set
++
++#
++# S3C2416 Machines
++#
++# CONFIG_MACH_SMDK2416 is not set
++
++#
++# S3C6400 Machines
++#
++# CONFIG_MACH_SMDK6400 is not set
++
++#
++# S3C6410 Machines
++#
++CONFIG_MACH_SMDK6410=y
++# CONFIG_MACH_SMDK6430 is not set
++# CONFIG_S3C6410_PDFW is not set
++CONFIG_CPU_S3C6410=y
++
++#
++# S5PC100 Machines
++#
++# CONFIG_MACH_SMDKC100 is not set
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_V6=y
++# CONFIG_CPU_32v6K is not set
++CONFIG_CPU_32v6=y
++CONFIG_CPU_ABRT_EV6=y
++CONFIG_CPU_CACHE_V6=y
++CONFIG_CPU_CACHE_VIPT=y
++CONFIG_CPU_COPY_V6=y
++CONFIG_CPU_TLB_V6=y
++CONFIG_CPU_HAS_ASID=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++# CONFIG_ARM_THUMB is not set
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_BPREDICT_DISABLE is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++CONFIG_ISA=y
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++# CONFIG_PREEMPT is not set
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=200
++CONFIG_AEABI=y
++CONFIG_OABI_COMPAT=y
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++# CONFIG_LEDS is not set
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="root=/dev/mtdblock2 rw rootfstype=jffs2 init=/linuxrc console=ttySAC0,115200"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++# CONFIG_FPE_NWFPE_XP is not set
++# CONFIG_FPE_FASTFPE is not set
++# CONFIG_VFP is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_AOUT=y
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++# CONFIG_PM is not set
++CONFIG_SUSPEND_UP_POSSIBLE=y
++
++#
++# DVFS support
++#
++# CONFIG_DVFS is not set
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++# CONFIG_PACKET is not set
++CONFIG_UNIX=y
++CONFIG_XFRM=y
++# CONFIG_XFRM_USER is not set
++# CONFIG_XFRM_SUB_POLICY is not set
++# CONFIG_XFRM_MIGRATE is not set
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++CONFIG_IP_PNP=y
++# CONFIG_IP_PNP_DHCP is not set
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++CONFIG_INET_XFRM_MODE_TRANSPORT=y
++CONFIG_INET_XFRM_MODE_TUNNEL=y
++CONFIG_INET_XFRM_MODE_BEET=y
++# CONFIG_INET_LRO is not set
++CONFIG_INET_DIAG=y
++CONFIG_INET_TCP_DIAG=y
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IPV6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++# CONFIG_CFG80211 is not set
++# CONFIG_WIRELESS_EXT is not set
++# CONFIG_MAC80211 is not set
++# CONFIG_IEEE80211 is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++# CONFIG_FW_LOADER is not set
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++CONFIG_MTD_REDBOOT_PARTS=y
++CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
++CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
++# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
++CONFIG_MTD_CMDLINE_PARTS=y
++# CONFIG_MTD_AFS_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++CONFIG_MTD_CFI=y
++CONFIG_MTD_JEDECPROBE=y
++CONFIG_MTD_GEN_PROBE=y
++# CONFIG_MTD_CFI_ADV_OPTIONS is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++CONFIG_MTD_CFI_INTELEXT=y
++CONFIG_MTD_CFI_AMDSTD=y
++# CONFIG_MTD_CFI_STAA is not set
++CONFIG_MTD_CFI_UTIL=y
++# CONFIG_MTD_RAM is not set
++CONFIG_MTD_ROM=y
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PHYSMAP is not set
++# CONFIG_MTD_ARM_INTEGRATOR is not set
++# CONFIG_MTD_IMPA7 is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++# CONFIG_MTD_DATAFLASH is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++# CONFIG_MTD_NAND is not set
++CONFIG_MTD_ONENAND=y
++CONFIG_MTD_ONENAND_VERIFY_WRITE=y
++CONFIG_MTD_ONENAND_GENERIC=y
++# CONFIG_MTD_ONENAND_OTP is not set
++# CONFIG_MTD_ONENAND_2X_PROGRAM is not set
++# CONFIG_MTD_ONENAND_SIM is not set
++
++#
++# UBI - Unsorted block images
++#
++# CONFIG_MTD_UBI is not set
++CONFIG_PARPORT=y
++# CONFIG_PARPORT_PC is not set
++# CONFIG_PARPORT_GSC is not set
++# CONFIG_PARPORT_AX88796 is not set
++CONFIG_PARPORT_1284=y
++# CONFIG_PNP is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++# CONFIG_BLK_DEV_NBD is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=16
++CONFIG_BLK_DEV_RAM_SIZE=4096
++CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
++# CONFIG_CDROM_PKTCDVD is not set
++# CONFIG_ATA_OVER_ETH is not set
++CONFIG_MISC_DEVICES=y
++# CONFIG_EEPROM_93CX6 is not set
++# CONFIG_IDE is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++# CONFIG_SCSI is not set
++# CONFIG_SCSI_DMA is not set
++# CONFIG_SCSI_NETLINK is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++# CONFIG_ARCNET is not set
++# CONFIG_PHYLIB is not set
++CONFIG_NET_ETHERNET=y
++CONFIG_MII=y
++# CONFIG_AX88796 is not set
++# CONFIG_NET_VENDOR_3COM is not set
++# CONFIG_NET_VENDOR_SMC is not set
++# CONFIG_SMC91X is not set
++# CONFIG_DM9000 is not set
++CONFIG_SMC911X=y
++# CONFIG_NET_VENDOR_RACAL is not set
++# CONFIG_AT1700 is not set
++# CONFIG_DEPCA is not set
++# CONFIG_HP100 is not set
++# CONFIG_NET_ISA is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++CONFIG_NET_PCI=y
++# CONFIG_AC3200 is not set
++# CONFIG_APRICOT is not set
++# CONFIG_B44 is not set
++CONFIG_CS89x0=y
++# CONFIG_NET_POCKET is not set
++CONFIG_NETDEV_1000=y
++CONFIG_NETDEV_10000=y
++# CONFIG_TR is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++# CONFIG_WLAN_80211 is not set
++# CONFIG_WAN is not set
++# CONFIG_PLIP is not set
++# CONFIG_PPP is not set
++# CONFIG_SLIP is not set
++# CONFIG_SHAPER is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++CONFIG_INPUT_MOUSEDEV_PSAUX=y
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
++# CONFIG_INPUT_JOYDEV is not set
++CONFIG_INPUT_TSDEV=y
++CONFIG_INPUT_TSDEV_SCREEN_X=480
++CONFIG_INPUT_TSDEV_SCREEN_Y=640
++CONFIG_INPUT_EVDEV=y
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++# CONFIG_KEYBOARD_GPIO is not set
++# CONFIG_KEYPAD_S3C is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++CONFIG_MOUSE_PS2_LOGIPS2PP=y
++CONFIG_MOUSE_PS2_SYNAPTICS=y
++CONFIG_MOUSE_PS2_LIFEBOOK=y
++CONFIG_MOUSE_PS2_TRACKPOINT=y
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_INPORT is not set
++# CONFIG_MOUSE_LOGIBM is not set
++# CONFIG_MOUSE_PC110PAD is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_MOUSE_GPIO is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++CONFIG_INPUT_TOUCHSCREEN=y
++# CONFIG_TOUCHSCREEN_ADS7846 is not set
++CONFIG_TOUCHSCREEN_S3C=y
++CONFIG_TOUCHSCREEN_NEW=y
++# CONFIG_TOUCHSCREEN_FUJITSU is not set
++# CONFIG_TOUCHSCREEN_GUNZE is not set
++# CONFIG_TOUCHSCREEN_ELO is not set
++# CONFIG_TOUCHSCREEN_MTOUCH is not set
++# CONFIG_TOUCHSCREEN_MK712 is not set
++# CONFIG_TOUCHSCREEN_PENMOUNT is not set
++# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
++# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
++# CONFIG_TOUCHSCREEN_UCB1400 is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++# CONFIG_SERIO_PARKBD is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++CONFIG_SERIAL_NONSTANDARD=y
++# CONFIG_COMPUTONE is not set
++# CONFIG_ROCKETPORT is not set
++# CONFIG_CYCLADES is not set
++# CONFIG_DIGIEPCA is not set
++# CONFIG_MOXA_INTELLIO is not set
++# CONFIG_MOXA_SMARTIO is not set
++# CONFIG_MOXA_SMARTIO_NEW is not set
++# CONFIG_N_HDLC is not set
++# CONFIG_RISCOM8 is not set
++# CONFIG_SPECIALIX is not set
++# CONFIG_SX is not set
++# CONFIG_RIO is not set
++# CONFIG_STALDRV is not set
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_NR_UARTS=8
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++CONFIG_SERIAL_8250_EXTENDED=y
++CONFIG_SERIAL_8250_MANY_PORTS=y
++# CONFIG_SERIAL_8250_FOURPORT is not set
++# CONFIG_SERIAL_8250_ACCENT is not set
++# CONFIG_SERIAL_8250_BOCA is not set
++# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
++# CONFIG_SERIAL_8250_HUB6 is not set
++CONFIG_SERIAL_8250_SHARE_IRQ=y
++# CONFIG_SERIAL_8250_DETECT_IRQ is not set
++# CONFIG_SERIAL_8250_RSA is not set
++
++#
++# Non-8250 serial port support
++#
++# CONFIG_SERIAL_S3C2410 is not set
++CONFIG_SERIAL_S3C6400=y
++CONFIG_SERIAL_S3C64XX_CONSOLE=y
++# CONFIG_SERIAL_S3C64XX_HS_UART is not set
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++CONFIG_PRINTER=y
++# CONFIG_LP_CONSOLE is not set
++CONFIG_PPDEV=y
++# CONFIG_IPMI_HANDLER is not set
++CONFIG_HW_RANDOM=y
++# CONFIG_NVRAM is not set
++# CONFIG_S3C_ADC is not set
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_DEVPORT=y
++CONFIG_I2C=y
++CONFIG_I2C_BOARDINFO=y
++CONFIG_I2C_CHARDEV=y
++
++#
++# I2C Algorithms
++#
++CONFIG_I2C_ALGOBIT=y
++# CONFIG_I2C_ALGOPCF is not set
++# CONFIG_I2C_ALGOPCA is not set
++
++#
++# I2C Hardware Bus support
++#
++# CONFIG_I2C_ELEKTOR is not set
++# CONFIG_I2C_GPIO is not set
++# CONFIG_I2C_OCORES is not set
++# CONFIG_I2C_PARPORT is not set
++# CONFIG_I2C_PARPORT_LIGHT is not set
++CONFIG_I2C_S3C2410=y
++# CONFIG_I2C_SIMTEC is not set
++# CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_STUB is not set
++# CONFIG_I2C_PCA_ISA is not set
++
++#
++# Miscellaneous I2C Chip support
++#
++# CONFIG_SENSORS_DS1337 is not set
++# CONFIG_SENSORS_DS1374 is not set
++# CONFIG_DS1682 is not set
++CONFIG_SENSORS_EEPROM=m
++# CONFIG_SENSORS_PCF8574 is not set
++# CONFIG_SENSORS_PCA9539 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_SENSORS_MAX6875 is not set
++# CONFIG_SENSORS_TSL2550 is not set
++# CONFIG_I2C_DEBUG_CORE is not set
++# CONFIG_I2C_DEBUG_ALGO is not set
++# CONFIG_I2C_DEBUG_BUS is not set
++# CONFIG_I2C_DEBUG_CHIP is not set
++
++#
++# SPI support
++#
++CONFIG_SPI=y
++# CONFIG_SPI_DEBUG is not set
++CONFIG_SPI_MASTER=y
++
++#
++# SPI Master Controller Drivers
++#
++CONFIG_SPI_BITBANG=m
++# CONFIG_SPI_BUTTERFLY is not set
++# CONFIG_SPI_LM70_LLP is not set
++CONFIG_SPI_S3C24XX=m
++CONFIG_SPI_S3C24XX_GPIO=m
++# CONFIG_HS_SPI_S3C6410 is not set
++
++#
++# SPI Protocol Masters
++#
++# CONFIG_SPI_AT25 is not set
++# CONFIG_SPI_SPIDEV is not set
++# CONFIG_SPI_TLE62X0 is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++CONFIG_HWMON=y
++CONFIG_HWMON_VID=m
++# CONFIG_SENSORS_AD7418 is not set
++# CONFIG_SENSORS_ADM1021 is not set
++# CONFIG_SENSORS_ADM1025 is not set
++# CONFIG_SENSORS_ADM1026 is not set
++# CONFIG_SENSORS_ADM1029 is not set
++# CONFIG_SENSORS_ADM1031 is not set
++# CONFIG_SENSORS_ADM9240 is not set
++# CONFIG_SENSORS_ADT7470 is not set
++# CONFIG_SENSORS_ATXP1 is not set
++# CONFIG_SENSORS_DS1621 is not set
++# CONFIG_SENSORS_F71805F is not set
++# CONFIG_SENSORS_F71882FG is not set
++# CONFIG_SENSORS_F75375S is not set
++# CONFIG_SENSORS_GL518SM is not set
++# CONFIG_SENSORS_GL520SM is not set
++# CONFIG_SENSORS_IT87 is not set
++# CONFIG_SENSORS_LM63 is not set
++# CONFIG_SENSORS_LM70 is not set
++CONFIG_SENSORS_LM75=m
++# CONFIG_SENSORS_LM77 is not set
++CONFIG_SENSORS_LM78=m
++# CONFIG_SENSORS_LM80 is not set
++# CONFIG_SENSORS_LM83 is not set
++CONFIG_SENSORS_LM85=m
++# CONFIG_SENSORS_LM87 is not set
++# CONFIG_SENSORS_LM90 is not set
++# CONFIG_SENSORS_LM92 is not set
++# CONFIG_SENSORS_LM93 is not set
++# CONFIG_SENSORS_MAX1619 is not set
++# CONFIG_SENSORS_MAX6650 is not set
++# CONFIG_SENSORS_PC87360 is not set
++# CONFIG_SENSORS_PC87427 is not set
++# CONFIG_SENSORS_DME1737 is not set
++# CONFIG_SENSORS_SMSC47M1 is not set
++# CONFIG_SENSORS_SMSC47M192 is not set
++# CONFIG_SENSORS_SMSC47B397 is not set
++# CONFIG_SENSORS_THMC50 is not set
++# CONFIG_SENSORS_VT1211 is not set
++# CONFIG_SENSORS_W83781D is not set
++# CONFIG_SENSORS_W83791D is not set
++# CONFIG_SENSORS_W83792D is not set
++# CONFIG_SENSORS_W83793 is not set
++# CONFIG_SENSORS_W83L785TS is not set
++# CONFIG_SENSORS_W83627HF is not set
++# CONFIG_SENSORS_W83627EHF is not set
++# CONFIG_HWMON_DEBUG_CHIP is not set
++CONFIG_WATCHDOG=y
++# CONFIG_WATCHDOG_NOWAYOUT is not set
++
++#
++# Watchdog Device Drivers
++#
++# CONFIG_SOFT_WATCHDOG is not set
++CONFIG_S3C2410_WATCHDOG=y
++
++#
++# ISA-based Watchdog Cards
++#
++# CONFIG_PCWATCHDOG is not set
++# CONFIG_MIXCOMWD is not set
++# CONFIG_WDT is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++# CONFIG_DAB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++CONFIG_FIRMWARE_EDID=y
++# CONFIG_FB_DDC is not set
++CONFIG_FB_CFB_FILLRECT=y
++CONFIG_FB_CFB_COPYAREA=y
++CONFIG_FB_CFB_IMAGEBLIT=y
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++CONFIG_FB_MODE_HELPERS=y
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++CONFIG_FB_S3C=y
++CONFIG_FB_S3C_LTE480WV=y
++# CONFIG_FB_S3C_LTV350QV is not set
++# CONFIG_FB_S3C_LTS222QV is not set
++CONFIG_FB_S3C_BPP=y
++# CONFIG_FB_S3C_BPP_8 is not set
++CONFIG_FB_S3C_BPP_16=y
++# CONFIG_FB_S3C_BPP_24 is not set
++# CONFIG_FB_S3C_BPP_32 is not set
++CONFIG_FB_S3C_NUM=1
++# CONFIG_FB_S3C_VIRTUAL_SCREEN is not set
++# CONFIG_FB_S3C_DOUBLE_BUFFERING is not set
++# CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_S3C2410 is not set
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++# CONFIG_MDA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++# CONFIG_LOGO_LINUX_CLUT224 is not set
++CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224=y
++
++#
++# G3D Support
++#
++# CONFIG_G3D is not set
++
++#
++# Sound
++#
++CONFIG_SOUND=y
++
++#
++# Advanced Linux Sound Architecture
++#
++CONFIG_SND=y
++CONFIG_SND_TIMER=y
++CONFIG_SND_PCM=y
++CONFIG_SND_SEQUENCER=y
++# CONFIG_SND_SEQ_DUMMY is not set
++CONFIG_SND_OSSEMUL=y
++CONFIG_SND_MIXER_OSS=y
++CONFIG_SND_PCM_OSS=y
++CONFIG_SND_PCM_OSS_PLUGINS=y
++CONFIG_SND_SEQUENCER_OSS=y
++# CONFIG_SND_DYNAMIC_MINORS is not set
++CONFIG_SND_SUPPORT_OLD_API=y
++CONFIG_SND_VERBOSE_PROCFS=y
++# CONFIG_SND_VERBOSE_PRINTK is not set
++# CONFIG_SND_DEBUG is not set
++
++#
++# Generic devices
++#
++CONFIG_SND_AC97_CODEC=y
++# CONFIG_SND_DUMMY is not set
++# CONFIG_SND_VIRMIDI is not set
++# CONFIG_SND_MTPAV is not set
++# CONFIG_SND_MTS64 is not set
++# CONFIG_SND_SERIAL_U16550 is not set
++# CONFIG_SND_MPU401 is not set
++# CONFIG_SND_PORTMAN2X4 is not set
++
++#
++# ALSA ARM devices
++#
++
++#
++# SPI devices
++#
++
++#
++# System on Chip audio support
++#
++CONFIG_SND_SOC_AC97_BUS=y
++CONFIG_SND_SOC=y
++
++#
++# SoC Audio for the Samsung S3C
++#
++CONFIG_SND_S3C_SOC=y
++CONFIG_SND_S3C64XX_SOC_SMDK6410_WM9713=y
++CONFIG_SOUND_WM9713_INPUT_STREAM_LINE=y
++# CONFIG_SOUND_WM9713_INPUT_STREAM_MIC is not set
++CONFIG_SND_S3C6410_SOC_AC97=y
++# CONFIG_SND_S3C6410_SOC_SMDK6410_WM8580 is not set
++CONFIG_SND_SOC_WM9713=y
++
++#
++# Open Sound System
++#
++# CONFIG_SOUND_PRIME is not set
++CONFIG_AC97_BUS=y
++CONFIG_HID_SUPPORT=y
++CONFIG_HID=y
++# CONFIG_HID_DEBUG is not set
++# CONFIG_HIDRAW is not set
++# CONFIG_USB_SUPPORT is not set
++CONFIG_MMC=y
++# CONFIG_MMC_DEBUG is not set
++# CONFIG_MMC_UNSAFE_RESUME is not set
++
++#
++# MMC/SD Card Drivers
++#
++CONFIG_MMC_BLOCK=y
++CONFIG_MMC_BLOCK_BOUNCE=y
++# CONFIG_SDIO_UART is not set
++
++#
++# MMC/SD Host Controller Drivers
++#
++CONFIG_HSMMC_S3C=y
++# CONFIG_USE_MMC_AS_ROOT is not set
++# CONFIG_HSMMC_S3C_IRQ_WORKAROUND is not set
++CONFIG_HSMMC_SCATTERGATHER=y
++# CONFIG_S3CMMC_DEBUG is not set
++# CONFIG_MMC_SPI is not set
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=m
++
++#
++# LED drivers
++#
++CONFIG_LEDS_S3C24XX=m
++# CONFIG_LEDS_GPIO is not set
++
++#
++# LED Triggers
++#
++CONFIG_LEDS_TRIGGERS=y
++CONFIG_LEDS_TRIGGER_TIMER=m
++CONFIG_LEDS_TRIGGER_HEARTBEAT=m
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# I2C RTC drivers
++#
++# CONFIG_RTC_DRV_DS1307 is not set
++# CONFIG_RTC_DRV_DS1374 is not set
++# CONFIG_RTC_DRV_DS1672 is not set
++# CONFIG_RTC_DRV_MAX6900 is not set
++# CONFIG_RTC_DRV_RS5C372 is not set
++# CONFIG_RTC_DRV_ISL1208 is not set
++# CONFIG_RTC_DRV_X1205 is not set
++# CONFIG_RTC_DRV_PCF8563 is not set
++# CONFIG_RTC_DRV_PCF8583 is not set
++# CONFIG_RTC_DRV_M41T80 is not set
++
++#
++# SPI RTC drivers
++#
++# CONFIG_RTC_DRV_RS5C348 is not set
++# CONFIG_RTC_DRV_MAX6902 is not set
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_S3C=y
++
++#
++# Pulse Width Modulation Timer
++#
++# CONFIG_PWM is not set
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++CONFIG_EXT3_FS=y
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
++# CONFIG_EXT4DEV_FS is not set
++CONFIG_JBD=y
++CONFIG_FS_MBCACHE=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_MINIX_FS is not set
++CONFIG_ROMFS_FS=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++CONFIG_MSDOS_FS=y
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
++# CONFIG_JFFS2_SUMMARY is not set
++# CONFIG_JFFS2_FS_XATTR is not set
++CONFIG_JFFS2_COMPRESSION_OPTIONS=y
++CONFIG_JFFS2_ZLIB=y
++CONFIG_JFFS2_LZO=y
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++# CONFIG_JFFS2_CMODE_NONE is not set
++CONFIG_JFFS2_CMODE_PRIORITY=y
++# CONFIG_JFFS2_CMODE_SIZE is not set
++# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
++CONFIG_CRAMFS=y
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=y
++# CONFIG_NFS_V3 is not set
++# CONFIG_NFS_V4 is not set
++# CONFIG_NFS_DIRECTIO is not set
++# CONFIG_NFSD is not set
++CONFIG_ROOT_NFS=y
++CONFIG_LOCKD=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=y
++# CONFIG_SUNRPC_BIND34 is not set
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++CONFIG_PARTITION_ADVANCED=y
++# CONFIG_ACORN_PARTITION is not set
++# CONFIG_OSF_PARTITION is not set
++# CONFIG_AMIGA_PARTITION is not set
++# CONFIG_ATARI_PARTITION is not set
++# CONFIG_MAC_PARTITION is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_BSD_DISKLABEL=y
++# CONFIG_MINIX_SUBPARTITION is not set
++CONFIG_SOLARIS_X86_PARTITION=y
++# CONFIG_UNIXWARE_DISKLABEL is not set
++# CONFIG_LDM_PARTITION is not set
++# CONFIG_SGI_PARTITION is not set
++# CONFIG_ULTRIX_PARTITION is not set
++# CONFIG_SUN_PARTITION is not set
++# CONFIG_KARMA_PARTITION is not set
++# CONFIG_EFI_PARTITION is not set
++# CONFIG_SYSV68_PARTITION is not set
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++CONFIG_NLS_ASCII=y
++CONFIG_NLS_ISO8859_1=y
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++CONFIG_INSTRUMENTATION=y
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_MAGIC_SYSRQ=y
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_TIMER_STATS is not set
++# CONFIG_SLUB_DEBUG_ON is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++CONFIG_DEBUG_MUTEXES=y
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++CONFIG_FRAME_POINTER=y
++CONFIG_FORCED_INLINING=y
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_SAMPLES is not set
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++CONFIG_DEBUG_LL=y
++# CONFIG_DEBUG_ICEDCC is not set
++CONFIG_DEBUG_S3C_PORT=y
++CONFIG_DEBUG_S3C_UART=0
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_LZO_COMPRESS=y
++CONFIG_LZO_DECOMPRESS=y
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff --git a/arch/arm/configs/smdk6410ramdisk_defconfig b/arch/arm/configs/smdk6410ramdisk_defconfig
+new file mode 100644
+index 0000000..4fc214e
+--- /dev/null
++++ b/arch/arm/configs/smdk6410ramdisk_defconfig
+@@ -0,0 +1,1513 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.24.2
++# Thu Aug 21 14:56:25 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_AUDIT is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=16
++# CONFIG_CGROUPS is not set
++CONFIG_FAIR_GROUP_SCHED=y
++CONFIG_FAIR_USER_SCHED=y
++# CONFIG_FAIR_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++# CONFIG_RELAY is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++# CONFIG_EMBEDDED is not set
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++CONFIG_PLAT_S3C64XX=y
++CONFIG_S3C64XX_DMA=y
++CONFIG_PLAT_S3C=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_WATCHDOG is not set
++# CONFIG_S3C_BOOT_ERROR_RESET is not set
++
++#
++# Power management
++#
++CONFIG_S3C_LOWLEVEL_UART_PORT=0
++CONFIG_SPLIT_ROOT_FILESYSTEM=y
++CONFIG_MACH_SMDK=y
++
++#
++# S3C2400 Machines
++#
++
++#
++# S3C2410 Machines
++#
++# CONFIG_ARCH_SMDK2410 is not set
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++
++#
++# S3C2440 Machines
++#
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++# CONFIG_ARCH_S3C2440 is not set
++# CONFIG_MACH_NEXCODER_2440 is not set
++
++#
++# S3C2442 Machines
++#
++
++#
++# S3C2443 Machines
++#
++# CONFIG_MACH_SMDK2443 is not set
++
++#
++# S3C2450 Machines
++#
++# CONFIG_MACH_SMDK2450 is not set
++
++#
++# S3C2416 Machines
++#
++# CONFIG_MACH_SMDK2416 is not set
++
++#
++# S3C6400 Machines
++#
++# CONFIG_MACH_SMDK6400 is not set
++
++#
++# S3C6410 Machines
++#
++CONFIG_MACH_SMDK6410=y
++# CONFIG_MACH_SMDK6430 is not set
++# CONFIG_S3C6410_PDFW is not set
++CONFIG_CPU_S3C6410=y
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_V6=y
++# CONFIG_CPU_32v6K is not set
++CONFIG_CPU_32v6=y
++CONFIG_CPU_ABRT_EV6=y
++CONFIG_CPU_CACHE_V6=y
++CONFIG_CPU_CACHE_VIPT=y
++CONFIG_CPU_COPY_V6=y
++CONFIG_CPU_TLB_V6=y
++CONFIG_CPU_HAS_ASID=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++# CONFIG_ARM_THUMB is not set
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_BPREDICT_DISABLE is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++CONFIG_ISA=y
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++# CONFIG_PREEMPT is not set
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=200
++CONFIG_AEABI=y
++CONFIG_OABI_COMPAT=y
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++# CONFIG_LEDS is not set
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x50800000,8M console=ttySAC0,115200 init=/linuxrc"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++# CONFIG_FPE_NWFPE_XP is not set
++# CONFIG_FPE_FASTFPE is not set
++# CONFIG_VFP is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_AOUT=y
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++# CONFIG_PM is not set
++CONFIG_SUSPEND_UP_POSSIBLE=y
++
++#
++# DVFS support
++#
++# CONFIG_DVFS is not set
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++# CONFIG_PACKET is not set
++CONFIG_UNIX=y
++CONFIG_XFRM=y
++# CONFIG_XFRM_USER is not set
++# CONFIG_XFRM_SUB_POLICY is not set
++# CONFIG_XFRM_MIGRATE is not set
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++CONFIG_IP_PNP=y
++# CONFIG_IP_PNP_DHCP is not set
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++CONFIG_INET_XFRM_MODE_TRANSPORT=y
++CONFIG_INET_XFRM_MODE_TUNNEL=y
++CONFIG_INET_XFRM_MODE_BEET=y
++# CONFIG_INET_LRO is not set
++CONFIG_INET_DIAG=y
++CONFIG_INET_TCP_DIAG=y
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IPV6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++# CONFIG_CFG80211 is not set
++# CONFIG_WIRELESS_EXT is not set
++# CONFIG_MAC80211 is not set
++# CONFIG_IEEE80211 is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++# CONFIG_FW_LOADER is not set
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++CONFIG_MTD_REDBOOT_PARTS=y
++CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
++CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
++# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
++CONFIG_MTD_CMDLINE_PARTS=y
++# CONFIG_MTD_AFS_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++CONFIG_MTD_CFI=y
++CONFIG_MTD_JEDECPROBE=y
++CONFIG_MTD_GEN_PROBE=y
++# CONFIG_MTD_CFI_ADV_OPTIONS is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++CONFIG_MTD_CFI_INTELEXT=y
++CONFIG_MTD_CFI_AMDSTD=y
++# CONFIG_MTD_CFI_STAA is not set
++CONFIG_MTD_CFI_UTIL=y
++# CONFIG_MTD_RAM is not set
++CONFIG_MTD_ROM=y
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PHYSMAP is not set
++# CONFIG_MTD_ARM_INTEGRATOR is not set
++# CONFIG_MTD_IMPA7 is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++# CONFIG_MTD_DATAFLASH is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++CONFIG_MTD_NAND=y
++# CONFIG_MTD_NAND_VERIFY_WRITE is not set
++# CONFIG_MTD_NAND_ECC_SMC is not set
++# CONFIG_MTD_NAND_MUSEUM_IDS is not set
++CONFIG_MTD_NAND_IDS=y
++# CONFIG_MTD_NAND_S3C2410 is not set
++CONFIG_MTD_NAND_S3C=y
++# CONFIG_MTD_NAND_S3C_DEBUG is not set
++CONFIG_MTD_NO_ECC_WARNING=y
++CONFIG_MTD_NAND_S3C_HWECC=y
++CONFIG_S3C_LARGEPAGE_NAND=y
++# CONFIG_MTD_NAND_DISKONCHIP is not set
++# CONFIG_MTD_NAND_NANDSIM is not set
++# CONFIG_MTD_NAND_PLATFORM is not set
++# CONFIG_MTD_ALAUDA is not set
++# CONFIG_MTD_ONENAND is not set
++
++#
++# UBI - Unsorted block images
++#
++# CONFIG_MTD_UBI is not set
++CONFIG_PARPORT=y
++# CONFIG_PARPORT_PC is not set
++# CONFIG_PARPORT_GSC is not set
++# CONFIG_PARPORT_AX88796 is not set
++CONFIG_PARPORT_1284=y
++# CONFIG_PNP is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++# CONFIG_BLK_DEV_NBD is not set
++# CONFIG_BLK_DEV_UB is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=16
++CONFIG_BLK_DEV_RAM_SIZE=8192
++CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
++# CONFIG_CDROM_PKTCDVD is not set
++# CONFIG_ATA_OVER_ETH is not set
++CONFIG_MISC_DEVICES=y
++# CONFIG_EEPROM_93CX6 is not set
++# CONFIG_IDE is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++CONFIG_SCSI=y
++CONFIG_SCSI_DMA=y
++# CONFIG_SCSI_TGT is not set
++# CONFIG_SCSI_NETLINK is not set
++CONFIG_SCSI_PROC_FS=y
++
++#
++# SCSI support type (disk, tape, CD-ROM)
++#
++CONFIG_BLK_DEV_SD=y
++# CONFIG_CHR_DEV_ST is not set
++# CONFIG_CHR_DEV_OSST is not set
++# CONFIG_BLK_DEV_SR is not set
++CONFIG_CHR_DEV_SG=y
++# CONFIG_CHR_DEV_SCH is not set
++
++#
++# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
++#
++# CONFIG_SCSI_MULTI_LUN is not set
++# CONFIG_SCSI_CONSTANTS is not set
++# CONFIG_SCSI_LOGGING is not set
++# CONFIG_SCSI_SCAN_ASYNC is not set
++CONFIG_SCSI_WAIT_SCAN=m
++
++#
++# SCSI Transports
++#
++# CONFIG_SCSI_SPI_ATTRS is not set
++# CONFIG_SCSI_FC_ATTRS is not set
++# CONFIG_SCSI_ISCSI_ATTRS is not set
++# CONFIG_SCSI_SAS_LIBSAS is not set
++# CONFIG_SCSI_SRP_ATTRS is not set
++CONFIG_SCSI_LOWLEVEL=y
++# CONFIG_ISCSI_TCP is not set
++# CONFIG_SCSI_AHA152X is not set
++# CONFIG_SCSI_AIC7XXX_OLD is not set
++# CONFIG_SCSI_ADVANSYS is not set
++# CONFIG_SCSI_IN2000 is not set
++# CONFIG_SCSI_DTC3280 is not set
++# CONFIG_SCSI_FUTURE_DOMAIN is not set
++# CONFIG_SCSI_GENERIC_NCR5380 is not set
++# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
++# CONFIG_SCSI_NCR53C406A is not set
++# CONFIG_SCSI_PAS16 is not set
++# CONFIG_SCSI_PSI240I is not set
++# CONFIG_SCSI_QLOGIC_FAS is not set
++# CONFIG_SCSI_SYM53C416 is not set
++# CONFIG_SCSI_T128 is not set
++# CONFIG_SCSI_DEBUG is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++# CONFIG_ARCNET is not set
++# CONFIG_PHYLIB is not set
++CONFIG_NET_ETHERNET=y
++CONFIG_MII=y
++# CONFIG_AX88796 is not set
++# CONFIG_NET_VENDOR_3COM is not set
++# CONFIG_NET_VENDOR_SMC is not set
++# CONFIG_SMC91X is not set
++# CONFIG_DM9000 is not set
++CONFIG_SMC911X=y
++# CONFIG_NET_VENDOR_RACAL is not set
++# CONFIG_AT1700 is not set
++# CONFIG_DEPCA is not set
++# CONFIG_HP100 is not set
++# CONFIG_NET_ISA is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++CONFIG_NET_PCI=y
++# CONFIG_AC3200 is not set
++# CONFIG_APRICOT is not set
++# CONFIG_B44 is not set
++CONFIG_CS89x0=y
++# CONFIG_NET_POCKET is not set
++CONFIG_NETDEV_1000=y
++CONFIG_NETDEV_10000=y
++# CONFIG_TR is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++# CONFIG_WLAN_80211 is not set
++
++#
++# USB Network Adapters
++#
++# CONFIG_USB_CATC is not set
++# CONFIG_USB_KAWETH is not set
++# CONFIG_USB_PEGASUS is not set
++# CONFIG_USB_RTL8150 is not set
++# CONFIG_USB_USBNET is not set
++# CONFIG_WAN is not set
++# CONFIG_PLIP is not set
++# CONFIG_PPP is not set
++# CONFIG_SLIP is not set
++# CONFIG_SHAPER is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++CONFIG_INPUT_MOUSEDEV_PSAUX=y
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
++# CONFIG_INPUT_JOYDEV is not set
++CONFIG_INPUT_TSDEV=y
++CONFIG_INPUT_TSDEV_SCREEN_X=480
++CONFIG_INPUT_TSDEV_SCREEN_Y=640
++CONFIG_INPUT_EVDEV=y
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++# CONFIG_KEYBOARD_GPIO is not set
++# CONFIG_KEYPAD_S3C is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++CONFIG_MOUSE_PS2_LOGIPS2PP=y
++CONFIG_MOUSE_PS2_SYNAPTICS=y
++CONFIG_MOUSE_PS2_LIFEBOOK=y
++CONFIG_MOUSE_PS2_TRACKPOINT=y
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_APPLETOUCH is not set
++# CONFIG_MOUSE_INPORT is not set
++# CONFIG_MOUSE_LOGIBM is not set
++# CONFIG_MOUSE_PC110PAD is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_MOUSE_GPIO is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++CONFIG_INPUT_TOUCHSCREEN=y
++# CONFIG_TOUCHSCREEN_ADS7846 is not set
++CONFIG_TOUCHSCREEN_S3C=y
++# CONFIG_TOUCHSCREEN_FUJITSU is not set
++# CONFIG_TOUCHSCREEN_GUNZE is not set
++# CONFIG_TOUCHSCREEN_ELO is not set
++# CONFIG_TOUCHSCREEN_MTOUCH is not set
++# CONFIG_TOUCHSCREEN_MK712 is not set
++# CONFIG_TOUCHSCREEN_PENMOUNT is not set
++# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
++# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
++# CONFIG_TOUCHSCREEN_UCB1400 is not set
++# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++# CONFIG_SERIO_PARKBD is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++CONFIG_SERIAL_NONSTANDARD=y
++# CONFIG_COMPUTONE is not set
++# CONFIG_ROCKETPORT is not set
++# CONFIG_CYCLADES is not set
++# CONFIG_DIGIEPCA is not set
++# CONFIG_MOXA_INTELLIO is not set
++# CONFIG_MOXA_SMARTIO is not set
++# CONFIG_MOXA_SMARTIO_NEW is not set
++# CONFIG_N_HDLC is not set
++# CONFIG_RISCOM8 is not set
++# CONFIG_SPECIALIX is not set
++# CONFIG_SX is not set
++# CONFIG_RIO is not set
++# CONFIG_STALDRV is not set
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_NR_UARTS=8
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++CONFIG_SERIAL_8250_EXTENDED=y
++CONFIG_SERIAL_8250_MANY_PORTS=y
++# CONFIG_SERIAL_8250_FOURPORT is not set
++# CONFIG_SERIAL_8250_ACCENT is not set
++# CONFIG_SERIAL_8250_BOCA is not set
++# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
++# CONFIG_SERIAL_8250_HUB6 is not set
++CONFIG_SERIAL_8250_SHARE_IRQ=y
++# CONFIG_SERIAL_8250_DETECT_IRQ is not set
++# CONFIG_SERIAL_8250_RSA is not set
++
++#
++# Non-8250 serial port support
++#
++# CONFIG_SERIAL_S3C2410 is not set
++CONFIG_SERIAL_S3C6400=y
++CONFIG_SERIAL_S3C64XX_CONSOLE=y
++# CONFIG_SERIAL_S3C64XX_HS_UART is not set
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++CONFIG_PRINTER=y
++# CONFIG_LP_CONSOLE is not set
++CONFIG_PPDEV=y
++# CONFIG_IPMI_HANDLER is not set
++CONFIG_HW_RANDOM=y
++# CONFIG_NVRAM is not set
++# CONFIG_S3C_ADC is not set
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_DEVPORT=y
++CONFIG_I2C=y
++CONFIG_I2C_BOARDINFO=y
++CONFIG_I2C_CHARDEV=y
++
++#
++# I2C Algorithms
++#
++CONFIG_I2C_ALGOBIT=y
++# CONFIG_I2C_ALGOPCF is not set
++# CONFIG_I2C_ALGOPCA is not set
++
++#
++# I2C Hardware Bus support
++#
++# CONFIG_I2C_ELEKTOR is not set
++# CONFIG_I2C_GPIO is not set
++# CONFIG_I2C_OCORES is not set
++# CONFIG_I2C_PARPORT is not set
++# CONFIG_I2C_PARPORT_LIGHT is not set
++CONFIG_I2C_S3C2410=y
++# CONFIG_I2C_SIMTEC is not set
++# CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_STUB is not set
++# CONFIG_I2C_TINY_USB is not set
++# CONFIG_I2C_PCA_ISA is not set
++
++#
++# Miscellaneous I2C Chip support
++#
++# CONFIG_SENSORS_DS1337 is not set
++# CONFIG_SENSORS_DS1374 is not set
++# CONFIG_DS1682 is not set
++CONFIG_SENSORS_EEPROM=m
++# CONFIG_SENSORS_PCF8574 is not set
++# CONFIG_SENSORS_PCA9539 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_SENSORS_MAX6875 is not set
++# CONFIG_SENSORS_TSL2550 is not set
++# CONFIG_I2C_DEBUG_CORE is not set
++# CONFIG_I2C_DEBUG_ALGO is not set
++# CONFIG_I2C_DEBUG_BUS is not set
++# CONFIG_I2C_DEBUG_CHIP is not set
++
++#
++# SPI support
++#
++# CONFIG_SPI is not set
++# CONFIG_SPI_MASTER is not set
++
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++CONFIG_HWMON=y
++CONFIG_HWMON_VID=m
++# CONFIG_SENSORS_AD7418 is not set
++# CONFIG_SENSORS_ADM1021 is not set
++# CONFIG_SENSORS_ADM1025 is not set
++# CONFIG_SENSORS_ADM1026 is not set
++# CONFIG_SENSORS_ADM1029 is not set
++# CONFIG_SENSORS_ADM1031 is not set
++# CONFIG_SENSORS_ADM9240 is not set
++# CONFIG_SENSORS_ADT7470 is not set
++# CONFIG_SENSORS_ATXP1 is not set
++# CONFIG_SENSORS_DS1621 is not set
++# CONFIG_SENSORS_F71805F is not set
++# CONFIG_SENSORS_F71882FG is not set
++# CONFIG_SENSORS_F75375S is not set
++# CONFIG_SENSORS_GL518SM is not set
++# CONFIG_SENSORS_GL520SM is not set
++# CONFIG_SENSORS_IT87 is not set
++# CONFIG_SENSORS_LM63 is not set
++# CONFIG_SENSORS_LM70 is not set
++CONFIG_SENSORS_LM75=m
++# CONFIG_SENSORS_LM77 is not set
++CONFIG_SENSORS_LM78=m
++# CONFIG_SENSORS_LM80 is not set
++# CONFIG_SENSORS_LM83 is not set
++CONFIG_SENSORS_LM85=m
++# CONFIG_SENSORS_LM87 is not set
++# CONFIG_SENSORS_LM90 is not set
++# CONFIG_SENSORS_LM92 is not set
++# CONFIG_SENSORS_LM93 is not set
++# CONFIG_SENSORS_MAX1619 is not set
++# CONFIG_SENSORS_MAX6650 is not set
++# CONFIG_SENSORS_PC87360 is not set
++# CONFIG_SENSORS_PC87427 is not set
++# CONFIG_SENSORS_DME1737 is not set
++# CONFIG_SENSORS_SMSC47M1 is not set
++# CONFIG_SENSORS_SMSC47M192 is not set
++# CONFIG_SENSORS_SMSC47B397 is not set
++# CONFIG_SENSORS_THMC50 is not set
++# CONFIG_SENSORS_VT1211 is not set
++# CONFIG_SENSORS_W83781D is not set
++# CONFIG_SENSORS_W83791D is not set
++# CONFIG_SENSORS_W83792D is not set
++# CONFIG_SENSORS_W83793 is not set
++# CONFIG_SENSORS_W83L785TS is not set
++# CONFIG_SENSORS_W83627HF is not set
++# CONFIG_SENSORS_W83627EHF is not set
++# CONFIG_HWMON_DEBUG_CHIP is not set
++CONFIG_WATCHDOG=y
++# CONFIG_WATCHDOG_NOWAYOUT is not set
++
++#
++# Watchdog Device Drivers
++#
++# CONFIG_SOFT_WATCHDOG is not set
++CONFIG_S3C2410_WATCHDOG=y
++
++#
++# ISA-based Watchdog Cards
++#
++# CONFIG_PCWATCHDOG is not set
++# CONFIG_MIXCOMWD is not set
++# CONFIG_WDT is not set
++
++#
++# USB-based Watchdog Cards
++#
++# CONFIG_USBPCWATCHDOG is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++# CONFIG_DAB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++CONFIG_FIRMWARE_EDID=y
++# CONFIG_FB_DDC is not set
++CONFIG_FB_CFB_FILLRECT=y
++CONFIG_FB_CFB_COPYAREA=y
++CONFIG_FB_CFB_IMAGEBLIT=y
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++CONFIG_FB_MODE_HELPERS=y
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++CONFIG_FB_S3C=y
++CONFIG_FB_S3C_LTE480WV=y
++# CONFIG_FB_S3C_LTV350QV is not set
++# CONFIG_FB_S3C_LTS222QV is not set
++CONFIG_FB_S3C_BPP=y
++# CONFIG_FB_S3C_BPP_8 is not set
++CONFIG_FB_S3C_BPP_16=y
++# CONFIG_FB_S3C_BPP_24 is not set
++# CONFIG_FB_S3C_BPP_32 is not set
++CONFIG_FB_S3C_NUM=1
++# CONFIG_FB_S3C_VIRTUAL_SCREEN is not set
++# CONFIG_FB_S3C_DOUBLE_BUFFERING is not set
++# CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_S3C2410 is not set
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++# CONFIG_MDA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++# CONFIG_LOGO_LINUX_CLUT224 is not set
++CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224=y
++
++#
++# G3D Support
++#
++# CONFIG_G3D is not set
++
++#
++# Sound
++#
++CONFIG_SOUND=y
++
++#
++# Advanced Linux Sound Architecture
++#
++CONFIG_SND=y
++CONFIG_SND_TIMER=y
++CONFIG_SND_PCM=y
++CONFIG_SND_SEQUENCER=y
++# CONFIG_SND_SEQ_DUMMY is not set
++CONFIG_SND_OSSEMUL=y
++CONFIG_SND_MIXER_OSS=y
++CONFIG_SND_PCM_OSS=y
++CONFIG_SND_PCM_OSS_PLUGINS=y
++CONFIG_SND_SEQUENCER_OSS=y
++# CONFIG_SND_DYNAMIC_MINORS is not set
++CONFIG_SND_SUPPORT_OLD_API=y
++CONFIG_SND_VERBOSE_PROCFS=y
++# CONFIG_SND_VERBOSE_PRINTK is not set
++# CONFIG_SND_DEBUG is not set
++
++#
++# Generic devices
++#
++CONFIG_SND_AC97_CODEC=y
++# CONFIG_SND_DUMMY is not set
++# CONFIG_SND_VIRMIDI is not set
++# CONFIG_SND_MTPAV is not set
++# CONFIG_SND_MTS64 is not set
++# CONFIG_SND_SERIAL_U16550 is not set
++# CONFIG_SND_MPU401 is not set
++# CONFIG_SND_PORTMAN2X4 is not set
++
++#
++# ALSA ARM devices
++#
++
++#
++# SPI devices
++#
++
++#
++# USB devices
++#
++# CONFIG_SND_USB_AUDIO is not set
++# CONFIG_SND_USB_CAIAQ is not set
++
++#
++# System on Chip audio support
++#
++CONFIG_SND_SOC_AC97_BUS=y
++CONFIG_SND_SOC=y
++
++#
++# SoC Audio for the Samsung S3C
++#
++CONFIG_SND_S3C_SOC=y
++CONFIG_SND_S3C64XX_SOC_SMDK6410_WM9713=y
++CONFIG_SOUND_WM9713_INPUT_STREAM_LINE=y
++# CONFIG_SOUND_WM9713_INPUT_STREAM_MIC is not set
++CONFIG_SND_S3C6410_SOC_AC97=y
++# CONFIG_SND_S3C6410_SOC_SMDK6410_WM8580 is not set
++CONFIG_SND_SOC_WM9713=y
++
++#
++# Open Sound System
++#
++# CONFIG_SOUND_PRIME is not set
++CONFIG_AC97_BUS=y
++CONFIG_HID_SUPPORT=y
++CONFIG_HID=y
++# CONFIG_HID_DEBUG is not set
++# CONFIG_HIDRAW is not set
++
++#
++# USB Input Devices
++#
++CONFIG_USB_HID=y
++# CONFIG_USB_HIDINPUT_POWERBOOK is not set
++# CONFIG_HID_FF is not set
++# CONFIG_USB_HIDDEV is not set
++CONFIG_USB_SUPPORT=y
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
++# CONFIG_USB_ARCH_HAS_EHCI is not set
++CONFIG_USB=y
++# CONFIG_USB_DEBUG is not set
++
++#
++# Miscellaneous USB options
++#
++CONFIG_USB_DEVICEFS=y
++CONFIG_USB_DEVICE_CLASS=y
++# CONFIG_USB_DYNAMIC_MINORS is not set
++# CONFIG_USB_OTG is not set
++
++#
++# USB Host Controller Drivers
++#
++# CONFIG_USB_ISP116X_HCD is not set
++CONFIG_USB_OHCI_HCD=y
++# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
++# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
++CONFIG_USB_OHCI_LITTLE_ENDIAN=y
++# CONFIG_USB_SL811_HCD is not set
++# CONFIG_USB_R8A66597_HCD is not set
++
++#
++# USB Device Class drivers
++#
++# CONFIG_USB_ACM is not set
++# CONFIG_USB_PRINTER is not set
++
++#
++# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
++#
++
++#
++# may also be needed; see USB_STORAGE Help for more information
++#
++CONFIG_USB_STORAGE=y
++# CONFIG_USB_STORAGE_DEBUG is not set
++# CONFIG_USB_STORAGE_DATAFAB is not set
++# CONFIG_USB_STORAGE_FREECOM is not set
++# CONFIG_USB_STORAGE_ISD200 is not set
++# CONFIG_USB_STORAGE_DPCM is not set
++# CONFIG_USB_STORAGE_USBAT is not set
++# CONFIG_USB_STORAGE_SDDR09 is not set
++# CONFIG_USB_STORAGE_SDDR55 is not set
++# CONFIG_USB_STORAGE_JUMPSHOT is not set
++# CONFIG_USB_STORAGE_ALAUDA is not set
++# CONFIG_USB_STORAGE_ONETOUCH is not set
++# CONFIG_USB_STORAGE_KARMA is not set
++# CONFIG_USB_LIBUSUAL is not set
++
++#
++# USB Imaging devices
++#
++# CONFIG_USB_MDC800 is not set
++# CONFIG_USB_MICROTEK is not set
++CONFIG_USB_MON=y
++
++#
++# USB port drivers
++#
++# CONFIG_USB_USS720 is not set
++
++#
++# USB Serial Converter support
++#
++# CONFIG_USB_SERIAL is not set
++
++#
++# USB Miscellaneous drivers
++#
++# CONFIG_USB_EMI62 is not set
++# CONFIG_USB_EMI26 is not set
++# CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_AUERSWALD is not set
++# CONFIG_USB_RIO500 is not set
++# CONFIG_USB_LEGOTOWER is not set
++# CONFIG_USB_LCD is not set
++# CONFIG_USB_BERRY_CHARGE is not set
++# CONFIG_USB_LED is not set
++# CONFIG_USB_CYPRESS_CY7C63 is not set
++# CONFIG_USB_CYTHERM is not set
++# CONFIG_USB_PHIDGET is not set
++# CONFIG_USB_IDMOUSE is not set
++# CONFIG_USB_FTDI_ELAN is not set
++# CONFIG_USB_APPLEDISPLAY is not set
++# CONFIG_USB_LD is not set
++# CONFIG_USB_TRANCEVIBRATOR is not set
++# CONFIG_USB_IOWARRIOR is not set
++# CONFIG_USB_TEST is not set
++
++#
++# USB DSL modem support
++#
++
++#
++# USB Gadget Support
++#
++# CONFIG_USB_GADGET is not set
++CONFIG_MMC=y
++# CONFIG_MMC_DEBUG is not set
++# CONFIG_MMC_UNSAFE_RESUME is not set
++
++#
++# MMC/SD Card Drivers
++#
++CONFIG_MMC_BLOCK=y
++CONFIG_MMC_BLOCK_BOUNCE=y
++# CONFIG_SDIO_UART is not set
++
++#
++# MMC/SD Host Controller Drivers
++#
++CONFIG_HSMMC_S3C=y
++# CONFIG_USE_MMC_AS_ROOT is not set
++# CONFIG_HSMMC_S3C_IRQ_WORKAROUND is not set
++CONFIG_HSMMC_SCATTERGATHER=y
++# CONFIG_S3CMMC_DEBUG is not set
++# CONFIG_MMC_SPI is not set
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=m
++
++#
++# LED drivers
++#
++CONFIG_LEDS_S3C24XX=m
++# CONFIG_LEDS_GPIO is not set
++
++#
++# LED Triggers
++#
++CONFIG_LEDS_TRIGGERS=y
++CONFIG_LEDS_TRIGGER_TIMER=m
++CONFIG_LEDS_TRIGGER_HEARTBEAT=m
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# I2C RTC drivers
++#
++# CONFIG_RTC_DRV_DS1307 is not set
++# CONFIG_RTC_DRV_DS1374 is not set
++# CONFIG_RTC_DRV_DS1672 is not set
++# CONFIG_RTC_DRV_MAX6900 is not set
++# CONFIG_RTC_DRV_RS5C372 is not set
++# CONFIG_RTC_DRV_ISL1208 is not set
++# CONFIG_RTC_DRV_X1205 is not set
++# CONFIG_RTC_DRV_PCF8563 is not set
++# CONFIG_RTC_DRV_PCF8583 is not set
++# CONFIG_RTC_DRV_M41T80 is not set
++
++#
++# SPI RTC drivers
++#
++# CONFIG_RTC_DRV_RS5C348 is not set
++# CONFIG_RTC_DRV_MAX6902 is not set
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_S3C=y
++
++#
++# Pulse Width Modulation Timer
++#
++# CONFIG_PWM is not set
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++CONFIG_EXT3_FS=y
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
++# CONFIG_EXT4DEV_FS is not set
++CONFIG_JBD=y
++CONFIG_FS_MBCACHE=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_MINIX_FS is not set
++CONFIG_ROMFS_FS=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++CONFIG_MSDOS_FS=y
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
++# CONFIG_JFFS2_SUMMARY is not set
++# CONFIG_JFFS2_FS_XATTR is not set
++# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
++CONFIG_JFFS2_ZLIB=y
++# CONFIG_JFFS2_LZO is not set
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++CONFIG_CRAMFS=y
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=y
++# CONFIG_NFS_V3 is not set
++# CONFIG_NFS_V4 is not set
++# CONFIG_NFS_DIRECTIO is not set
++# CONFIG_NFSD is not set
++CONFIG_ROOT_NFS=y
++CONFIG_LOCKD=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=y
++# CONFIG_SUNRPC_BIND34 is not set
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++CONFIG_PARTITION_ADVANCED=y
++# CONFIG_ACORN_PARTITION is not set
++# CONFIG_OSF_PARTITION is not set
++# CONFIG_AMIGA_PARTITION is not set
++# CONFIG_ATARI_PARTITION is not set
++# CONFIG_MAC_PARTITION is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_BSD_DISKLABEL=y
++# CONFIG_MINIX_SUBPARTITION is not set
++CONFIG_SOLARIS_X86_PARTITION=y
++# CONFIG_UNIXWARE_DISKLABEL is not set
++# CONFIG_LDM_PARTITION is not set
++# CONFIG_SGI_PARTITION is not set
++# CONFIG_ULTRIX_PARTITION is not set
++# CONFIG_SUN_PARTITION is not set
++# CONFIG_KARMA_PARTITION is not set
++# CONFIG_EFI_PARTITION is not set
++# CONFIG_SYSV68_PARTITION is not set
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++CONFIG_NLS_ASCII=y
++CONFIG_NLS_ISO8859_1=y
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++CONFIG_INSTRUMENTATION=y
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_MAGIC_SYSRQ=y
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_TIMER_STATS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++CONFIG_DEBUG_MUTEXES=y
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++CONFIG_FRAME_POINTER=y
++CONFIG_FORCED_INLINING=y
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_SAMPLES is not set
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++CONFIG_DEBUG_LL=y
++# CONFIG_DEBUG_ICEDCC is not set
++CONFIG_DEBUG_S3C_PORT=y
++CONFIG_DEBUG_S3C_UART=0
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff --git a/arch/arm/configs/smdk6430mtd_defconfig b/arch/arm/configs/smdk6430mtd_defconfig
+new file mode 100644
+index 0000000..95a9a4d
+--- /dev/null
++++ b/arch/arm/configs/smdk6430mtd_defconfig
+@@ -0,0 +1,1521 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.24.2
++# Thu Jul 31 10:40:33 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_AUDIT is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=16
++# CONFIG_CGROUPS is not set
++CONFIG_FAIR_GROUP_SCHED=y
++CONFIG_FAIR_USER_SCHED=y
++# CONFIG_FAIR_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++# CONFIG_RELAY is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++# CONFIG_EMBEDDED is not set
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++CONFIG_PLAT_S3C64XX=y
++CONFIG_S3C64XX_DMA=y
++CONFIG_PLAT_S3C=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_WATCHDOG is not set
++# CONFIG_S3C_BOOT_ERROR_RESET is not set
++
++#
++# Power management
++#
++CONFIG_S3C_LOWLEVEL_UART_PORT=0
++CONFIG_SPLIT_ROOT_FILESYSTEM=y
++CONFIG_MACH_SMDK=y
++
++#
++# S3C2400 Machines
++#
++
++#
++# S3C2410 Machines
++#
++# CONFIG_ARCH_SMDK2410 is not set
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++
++#
++# S3C2440 Machines
++#
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++# CONFIG_ARCH_S3C2440 is not set
++# CONFIG_MACH_NEXCODER_2440 is not set
++
++#
++# S3C2442 Machines
++#
++
++#
++# S3C2443 Machines
++#
++# CONFIG_MACH_SMDK2443 is not set
++
++#
++# S3C2450 Machines
++#
++# CONFIG_MACH_SMDK2450 is not set
++
++#
++# S3C2416 Machines
++#
++# CONFIG_MACH_SMDK2416 is not set
++
++#
++# S3C6400 Machines
++#
++# CONFIG_MACH_SMDK6400 is not set
++
++#
++# S3C6410 Machines
++#
++CONFIG_MACH_SMDK6410=y
++CONFIG_MACH_SMDK6430=y
++# CONFIG_S3C6410_PDFW is not set
++CONFIG_CPU_S3C6410=y
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_V6=y
++# CONFIG_CPU_32v6K is not set
++CONFIG_CPU_32v6=y
++CONFIG_CPU_ABRT_EV6=y
++CONFIG_CPU_CACHE_V6=y
++CONFIG_CPU_CACHE_VIPT=y
++CONFIG_CPU_COPY_V6=y
++CONFIG_CPU_TLB_V6=y
++CONFIG_CPU_HAS_ASID=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++# CONFIG_ARM_THUMB is not set
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_BPREDICT_DISABLE is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++CONFIG_ISA=y
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++# CONFIG_PREEMPT is not set
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=200
++CONFIG_AEABI=y
++CONFIG_OABI_COMPAT=y
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++# CONFIG_LEDS is not set
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=cramfs init=/linuxrc console=ttySAC0,115200"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++# CONFIG_FPE_NWFPE_XP is not set
++# CONFIG_FPE_FASTFPE is not set
++# CONFIG_VFP is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_AOUT=y
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++# CONFIG_PM is not set
++CONFIG_SUSPEND_UP_POSSIBLE=y
++
++#
++# DVFS support
++#
++# CONFIG_DVFS is not set
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++# CONFIG_PACKET is not set
++CONFIG_UNIX=y
++CONFIG_XFRM=y
++# CONFIG_XFRM_USER is not set
++# CONFIG_XFRM_SUB_POLICY is not set
++# CONFIG_XFRM_MIGRATE is not set
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++CONFIG_IP_PNP=y
++# CONFIG_IP_PNP_DHCP is not set
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++CONFIG_INET_XFRM_MODE_TRANSPORT=y
++CONFIG_INET_XFRM_MODE_TUNNEL=y
++CONFIG_INET_XFRM_MODE_BEET=y
++# CONFIG_INET_LRO is not set
++CONFIG_INET_DIAG=y
++CONFIG_INET_TCP_DIAG=y
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IPV6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++# CONFIG_CFG80211 is not set
++# CONFIG_WIRELESS_EXT is not set
++# CONFIG_MAC80211 is not set
++# CONFIG_IEEE80211 is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++# CONFIG_FW_LOADER is not set
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++CONFIG_MTD_REDBOOT_PARTS=y
++CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
++CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
++# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
++CONFIG_MTD_CMDLINE_PARTS=y
++# CONFIG_MTD_AFS_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++CONFIG_MTD_CFI=y
++CONFIG_MTD_JEDECPROBE=y
++CONFIG_MTD_GEN_PROBE=y
++# CONFIG_MTD_CFI_ADV_OPTIONS is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++CONFIG_MTD_CFI_INTELEXT=y
++CONFIG_MTD_CFI_AMDSTD=y
++# CONFIG_MTD_CFI_STAA is not set
++CONFIG_MTD_CFI_UTIL=y
++# CONFIG_MTD_RAM is not set
++CONFIG_MTD_ROM=y
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PHYSMAP is not set
++# CONFIG_MTD_ARM_INTEGRATOR is not set
++# CONFIG_MTD_IMPA7 is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++# CONFIG_MTD_DATAFLASH is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++CONFIG_MTD_NAND=y
++# CONFIG_MTD_NAND_VERIFY_WRITE is not set
++# CONFIG_MTD_NAND_ECC_SMC is not set
++# CONFIG_MTD_NAND_MUSEUM_IDS is not set
++CONFIG_MTD_NAND_IDS=y
++# CONFIG_MTD_NAND_S3C2410 is not set
++CONFIG_MTD_NAND_S3C=y
++# CONFIG_MTD_NAND_S3C_DEBUG is not set
++CONFIG_MTD_NO_ECC_WARNING=y
++CONFIG_MTD_NAND_S3C_HWECC=y
++CONFIG_S3C_LARGEPAGE_NAND=y
++# CONFIG_MTD_NAND_DISKONCHIP is not set
++# CONFIG_MTD_NAND_NANDSIM is not set
++# CONFIG_MTD_NAND_PLATFORM is not set
++# CONFIG_MTD_ALAUDA is not set
++# CONFIG_MTD_ONENAND is not set
++
++#
++# UBI - Unsorted block images
++#
++# CONFIG_MTD_UBI is not set
++CONFIG_PARPORT=y
++# CONFIG_PARPORT_PC is not set
++# CONFIG_PARPORT_GSC is not set
++# CONFIG_PARPORT_AX88796 is not set
++CONFIG_PARPORT_1284=y
++# CONFIG_PNP is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++# CONFIG_BLK_DEV_NBD is not set
++# CONFIG_BLK_DEV_UB is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=16
++CONFIG_BLK_DEV_RAM_SIZE=4096
++CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
++# CONFIG_CDROM_PKTCDVD is not set
++# CONFIG_ATA_OVER_ETH is not set
++CONFIG_MISC_DEVICES=y
++# CONFIG_EEPROM_93CX6 is not set
++# CONFIG_IDE is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++CONFIG_SCSI=y
++CONFIG_SCSI_DMA=y
++# CONFIG_SCSI_TGT is not set
++# CONFIG_SCSI_NETLINK is not set
++CONFIG_SCSI_PROC_FS=y
++
++#
++# SCSI support type (disk, tape, CD-ROM)
++#
++CONFIG_BLK_DEV_SD=y
++# CONFIG_CHR_DEV_ST is not set
++# CONFIG_CHR_DEV_OSST is not set
++# CONFIG_BLK_DEV_SR is not set
++CONFIG_CHR_DEV_SG=y
++# CONFIG_CHR_DEV_SCH is not set
++
++#
++# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
++#
++# CONFIG_SCSI_MULTI_LUN is not set
++# CONFIG_SCSI_CONSTANTS is not set
++# CONFIG_SCSI_LOGGING is not set
++# CONFIG_SCSI_SCAN_ASYNC is not set
++CONFIG_SCSI_WAIT_SCAN=m
++
++#
++# SCSI Transports
++#
++# CONFIG_SCSI_SPI_ATTRS is not set
++# CONFIG_SCSI_FC_ATTRS is not set
++# CONFIG_SCSI_ISCSI_ATTRS is not set
++# CONFIG_SCSI_SAS_LIBSAS is not set
++# CONFIG_SCSI_SRP_ATTRS is not set
++CONFIG_SCSI_LOWLEVEL=y
++# CONFIG_ISCSI_TCP is not set
++# CONFIG_SCSI_AHA152X is not set
++# CONFIG_SCSI_AIC7XXX_OLD is not set
++# CONFIG_SCSI_ADVANSYS is not set
++# CONFIG_SCSI_IN2000 is not set
++# CONFIG_SCSI_DTC3280 is not set
++# CONFIG_SCSI_FUTURE_DOMAIN is not set
++# CONFIG_SCSI_GENERIC_NCR5380 is not set
++# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
++# CONFIG_SCSI_NCR53C406A is not set
++# CONFIG_SCSI_PAS16 is not set
++# CONFIG_SCSI_PSI240I is not set
++# CONFIG_SCSI_QLOGIC_FAS is not set
++# CONFIG_SCSI_SYM53C416 is not set
++# CONFIG_SCSI_T128 is not set
++# CONFIG_SCSI_DEBUG is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++# CONFIG_ARCNET is not set
++# CONFIG_PHYLIB is not set
++CONFIG_NET_ETHERNET=y
++CONFIG_MII=y
++# CONFIG_AX88796 is not set
++# CONFIG_NET_VENDOR_3COM is not set
++# CONFIG_NET_VENDOR_SMC is not set
++# CONFIG_SMC91X is not set
++# CONFIG_DM9000 is not set
++CONFIG_SMC911X=y
++# CONFIG_NET_VENDOR_RACAL is not set
++# CONFIG_AT1700 is not set
++# CONFIG_DEPCA is not set
++# CONFIG_HP100 is not set
++# CONFIG_NET_ISA is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++CONFIG_NET_PCI=y
++# CONFIG_AC3200 is not set
++# CONFIG_APRICOT is not set
++# CONFIG_B44 is not set
++# CONFIG_CS89x0 is not set
++# CONFIG_NET_POCKET is not set
++CONFIG_NETDEV_1000=y
++CONFIG_NETDEV_10000=y
++# CONFIG_TR is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++# CONFIG_WLAN_80211 is not set
++
++#
++# USB Network Adapters
++#
++# CONFIG_USB_CATC is not set
++# CONFIG_USB_KAWETH is not set
++# CONFIG_USB_PEGASUS is not set
++# CONFIG_USB_RTL8150 is not set
++# CONFIG_USB_USBNET is not set
++# CONFIG_WAN is not set
++# CONFIG_PLIP is not set
++# CONFIG_PPP is not set
++# CONFIG_SLIP is not set
++# CONFIG_SHAPER is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++CONFIG_INPUT_MOUSEDEV_PSAUX=y
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
++# CONFIG_INPUT_JOYDEV is not set
++CONFIG_INPUT_TSDEV=y
++CONFIG_INPUT_TSDEV_SCREEN_X=480
++CONFIG_INPUT_TSDEV_SCREEN_Y=640
++CONFIG_INPUT_EVDEV=y
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++# CONFIG_KEYBOARD_GPIO is not set
++# CONFIG_KEYPAD_S3C is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++CONFIG_MOUSE_PS2_LOGIPS2PP=y
++CONFIG_MOUSE_PS2_SYNAPTICS=y
++CONFIG_MOUSE_PS2_LIFEBOOK=y
++CONFIG_MOUSE_PS2_TRACKPOINT=y
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_APPLETOUCH is not set
++# CONFIG_MOUSE_INPORT is not set
++# CONFIG_MOUSE_LOGIBM is not set
++# CONFIG_MOUSE_PC110PAD is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_MOUSE_GPIO is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++CONFIG_INPUT_TOUCHSCREEN=y
++# CONFIG_TOUCHSCREEN_ADS7846 is not set
++CONFIG_TOUCHSCREEN_S3C=y
++# CONFIG_TOUCHSCREEN_FUJITSU is not set
++# CONFIG_TOUCHSCREEN_GUNZE is not set
++# CONFIG_TOUCHSCREEN_ELO is not set
++# CONFIG_TOUCHSCREEN_MTOUCH is not set
++# CONFIG_TOUCHSCREEN_MK712 is not set
++# CONFIG_TOUCHSCREEN_PENMOUNT is not set
++# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
++# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
++# CONFIG_TOUCHSCREEN_UCB1400 is not set
++# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++# CONFIG_SERIO_PARKBD is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++CONFIG_SERIAL_NONSTANDARD=y
++# CONFIG_COMPUTONE is not set
++# CONFIG_ROCKETPORT is not set
++# CONFIG_CYCLADES is not set
++# CONFIG_DIGIEPCA is not set
++# CONFIG_MOXA_INTELLIO is not set
++# CONFIG_MOXA_SMARTIO is not set
++# CONFIG_MOXA_SMARTIO_NEW is not set
++# CONFIG_N_HDLC is not set
++# CONFIG_RISCOM8 is not set
++# CONFIG_SPECIALIX is not set
++# CONFIG_SX is not set
++# CONFIG_RIO is not set
++# CONFIG_STALDRV is not set
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_NR_UARTS=8
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++CONFIG_SERIAL_8250_EXTENDED=y
++CONFIG_SERIAL_8250_MANY_PORTS=y
++# CONFIG_SERIAL_8250_FOURPORT is not set
++# CONFIG_SERIAL_8250_ACCENT is not set
++# CONFIG_SERIAL_8250_BOCA is not set
++# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
++# CONFIG_SERIAL_8250_HUB6 is not set
++CONFIG_SERIAL_8250_SHARE_IRQ=y
++# CONFIG_SERIAL_8250_DETECT_IRQ is not set
++# CONFIG_SERIAL_8250_RSA is not set
++
++#
++# Non-8250 serial port support
++#
++# CONFIG_SERIAL_S3C2410 is not set
++CONFIG_SERIAL_S3C6400=y
++CONFIG_SERIAL_S3C64XX_CONSOLE=y
++# CONFIG_SERIAL_S3C64XX_HS_UART is not set
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++CONFIG_PRINTER=y
++# CONFIG_LP_CONSOLE is not set
++CONFIG_PPDEV=y
++# CONFIG_IPMI_HANDLER is not set
++CONFIG_HW_RANDOM=y
++# CONFIG_NVRAM is not set
++# CONFIG_S3C_ADC is not set
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_DEVPORT=y
++CONFIG_I2C=y
++CONFIG_I2C_BOARDINFO=y
++CONFIG_I2C_CHARDEV=y
++
++#
++# I2C Algorithms
++#
++CONFIG_I2C_ALGOBIT=y
++# CONFIG_I2C_ALGOPCF is not set
++# CONFIG_I2C_ALGOPCA is not set
++
++#
++# I2C Hardware Bus support
++#
++# CONFIG_I2C_ELEKTOR is not set
++# CONFIG_I2C_GPIO is not set
++# CONFIG_I2C_OCORES is not set
++# CONFIG_I2C_PARPORT is not set
++# CONFIG_I2C_PARPORT_LIGHT is not set
++CONFIG_I2C_S3C2410=y
++# CONFIG_I2C_SIMTEC is not set
++# CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_STUB is not set
++# CONFIG_I2C_TINY_USB is not set
++# CONFIG_I2C_PCA_ISA is not set
++
++#
++# Miscellaneous I2C Chip support
++#
++# CONFIG_SENSORS_DS1337 is not set
++# CONFIG_SENSORS_DS1374 is not set
++# CONFIG_DS1682 is not set
++CONFIG_SENSORS_EEPROM=m
++# CONFIG_SENSORS_PCF8574 is not set
++# CONFIG_SENSORS_PCA9539 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_SENSORS_MAX6875 is not set
++# CONFIG_SENSORS_TSL2550 is not set
++# CONFIG_I2C_DEBUG_CORE is not set
++# CONFIG_I2C_DEBUG_ALGO is not set
++# CONFIG_I2C_DEBUG_BUS is not set
++# CONFIG_I2C_DEBUG_CHIP is not set
++
++#
++# SPI support
++#
++CONFIG_SPI=y
++# CONFIG_SPI_DEBUG is not set
++CONFIG_SPI_MASTER=y
++
++#
++# SPI Master Controller Drivers
++#
++CONFIG_SPI_BITBANG=m
++# CONFIG_SPI_BUTTERFLY is not set
++# CONFIG_SPI_LM70_LLP is not set
++CONFIG_SPI_S3C24XX=m
++CONFIG_SPI_S3C24XX_GPIO=m
++# CONFIG_HS_SPI_S3C6410 is not set
++
++#
++# SPI Protocol Masters
++#
++# CONFIG_SPI_AT25 is not set
++# CONFIG_SPI_SPIDEV is not set
++# CONFIG_SPI_TLE62X0 is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++CONFIG_HWMON=y
++CONFIG_HWMON_VID=m
++# CONFIG_SENSORS_AD7418 is not set
++# CONFIG_SENSORS_ADM1021 is not set
++# CONFIG_SENSORS_ADM1025 is not set
++# CONFIG_SENSORS_ADM1026 is not set
++# CONFIG_SENSORS_ADM1029 is not set
++# CONFIG_SENSORS_ADM1031 is not set
++# CONFIG_SENSORS_ADM9240 is not set
++# CONFIG_SENSORS_ADT7470 is not set
++# CONFIG_SENSORS_ATXP1 is not set
++# CONFIG_SENSORS_DS1621 is not set
++# CONFIG_SENSORS_F71805F is not set
++# CONFIG_SENSORS_F71882FG is not set
++# CONFIG_SENSORS_F75375S is not set
++# CONFIG_SENSORS_GL518SM is not set
++# CONFIG_SENSORS_GL520SM is not set
++# CONFIG_SENSORS_IT87 is not set
++# CONFIG_SENSORS_LM63 is not set
++# CONFIG_SENSORS_LM70 is not set
++CONFIG_SENSORS_LM75=m
++# CONFIG_SENSORS_LM77 is not set
++CONFIG_SENSORS_LM78=m
++# CONFIG_SENSORS_LM80 is not set
++# CONFIG_SENSORS_LM83 is not set
++CONFIG_SENSORS_LM85=m
++# CONFIG_SENSORS_LM87 is not set
++# CONFIG_SENSORS_LM90 is not set
++# CONFIG_SENSORS_LM92 is not set
++# CONFIG_SENSORS_LM93 is not set
++# CONFIG_SENSORS_MAX1619 is not set
++# CONFIG_SENSORS_MAX6650 is not set
++# CONFIG_SENSORS_PC87360 is not set
++# CONFIG_SENSORS_PC87427 is not set
++# CONFIG_SENSORS_DME1737 is not set
++# CONFIG_SENSORS_SMSC47M1 is not set
++# CONFIG_SENSORS_SMSC47M192 is not set
++# CONFIG_SENSORS_SMSC47B397 is not set
++# CONFIG_SENSORS_THMC50 is not set
++# CONFIG_SENSORS_VT1211 is not set
++# CONFIG_SENSORS_W83781D is not set
++# CONFIG_SENSORS_W83791D is not set
++# CONFIG_SENSORS_W83792D is not set
++# CONFIG_SENSORS_W83793 is not set
++# CONFIG_SENSORS_W83L785TS is not set
++# CONFIG_SENSORS_W83627HF is not set
++# CONFIG_SENSORS_W83627EHF is not set
++# CONFIG_HWMON_DEBUG_CHIP is not set
++CONFIG_WATCHDOG=y
++# CONFIG_WATCHDOG_NOWAYOUT is not set
++
++#
++# Watchdog Device Drivers
++#
++# CONFIG_SOFT_WATCHDOG is not set
++CONFIG_S3C2410_WATCHDOG=y
++
++#
++# ISA-based Watchdog Cards
++#
++# CONFIG_PCWATCHDOG is not set
++# CONFIG_MIXCOMWD is not set
++# CONFIG_WDT is not set
++
++#
++# USB-based Watchdog Cards
++#
++# CONFIG_USBPCWATCHDOG is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++# CONFIG_DAB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++CONFIG_FIRMWARE_EDID=y
++# CONFIG_FB_DDC is not set
++CONFIG_FB_CFB_FILLRECT=y
++CONFIG_FB_CFB_COPYAREA=y
++CONFIG_FB_CFB_IMAGEBLIT=y
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++CONFIG_FB_MODE_HELPERS=y
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++CONFIG_FB_S3C=y
++CONFIG_FB_S3C_LTE480WV=y
++# CONFIG_FB_S3C_LTV350QV is not set
++# CONFIG_FB_S3C_LTS222QV is not set
++CONFIG_FB_S3C_BPP=y
++# CONFIG_FB_S3C_BPP_8 is not set
++CONFIG_FB_S3C_BPP_16=y
++# CONFIG_FB_S3C_BPP_24 is not set
++# CONFIG_FB_S3C_BPP_32 is not set
++CONFIG_FB_S3C_NUM=1
++# CONFIG_FB_S3C_VIRTUAL_SCREEN is not set
++# CONFIG_FB_S3C_DOUBLE_BUFFERING is not set
++# CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_S3C2410 is not set
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++# CONFIG_MDA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++# CONFIG_LOGO_LINUX_CLUT224 is not set
++CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224=y
++
++#
++# G3D Support
++#
++# CONFIG_G3D is not set
++
++#
++# Sound
++#
++CONFIG_SOUND=y
++
++#
++# Advanced Linux Sound Architecture
++#
++CONFIG_SND=y
++CONFIG_SND_TIMER=y
++CONFIG_SND_PCM=y
++CONFIG_SND_SEQUENCER=y
++# CONFIG_SND_SEQ_DUMMY is not set
++CONFIG_SND_OSSEMUL=y
++CONFIG_SND_MIXER_OSS=y
++CONFIG_SND_PCM_OSS=y
++CONFIG_SND_PCM_OSS_PLUGINS=y
++CONFIG_SND_SEQUENCER_OSS=y
++# CONFIG_SND_DYNAMIC_MINORS is not set
++CONFIG_SND_SUPPORT_OLD_API=y
++CONFIG_SND_VERBOSE_PROCFS=y
++# CONFIG_SND_VERBOSE_PRINTK is not set
++# CONFIG_SND_DEBUG is not set
++
++#
++# Generic devices
++#
++CONFIG_SND_AC97_CODEC=y
++# CONFIG_SND_DUMMY is not set
++# CONFIG_SND_VIRMIDI is not set
++# CONFIG_SND_MTPAV is not set
++# CONFIG_SND_MTS64 is not set
++# CONFIG_SND_SERIAL_U16550 is not set
++# CONFIG_SND_MPU401 is not set
++# CONFIG_SND_PORTMAN2X4 is not set
++
++#
++# ALSA ARM devices
++#
++
++#
++# SPI devices
++#
++
++#
++# USB devices
++#
++# CONFIG_SND_USB_AUDIO is not set
++# CONFIG_SND_USB_CAIAQ is not set
++
++#
++# System on Chip audio support
++#
++CONFIG_SND_SOC_AC97_BUS=y
++CONFIG_SND_SOC=y
++CONFIG_SND_S3C_SOC=y
++CONFIG_SND_S3C6410_SOC_AC97=y
++# CONFIG_SND_S3C6410_SOC_SMDK6410_WM8580 is not set
++CONFIG_SND_S3C64XX_SOC_SMDK6410_WM9713=y
++CONFIG_SOUND_WM9713_INPUT_STREAM_LINE=y
++# CONFIG_SOUND_WM9713_INPUT_STREAM_MIC is not set
++CONFIG_SND_SOC_WM9713=y
++
++#
++# Open Sound System
++#
++# CONFIG_SOUND_PRIME is not set
++CONFIG_AC97_BUS=y
++CONFIG_HID_SUPPORT=y
++CONFIG_HID=y
++# CONFIG_HID_DEBUG is not set
++# CONFIG_HIDRAW is not set
++
++#
++# USB Input Devices
++#
++CONFIG_USB_HID=y
++# CONFIG_USB_HIDINPUT_POWERBOOK is not set
++# CONFIG_HID_FF is not set
++# CONFIG_USB_HIDDEV is not set
++CONFIG_USB_SUPPORT=y
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
++# CONFIG_USB_ARCH_HAS_EHCI is not set
++CONFIG_USB=y
++# CONFIG_USB_DEBUG is not set
++
++#
++# Miscellaneous USB options
++#
++CONFIG_USB_DEVICEFS=y
++CONFIG_USB_DEVICE_CLASS=y
++# CONFIG_USB_DYNAMIC_MINORS is not set
++# CONFIG_USB_OTG is not set
++
++#
++# USB Host Controller Drivers
++#
++# CONFIG_USB_ISP116X_HCD is not set
++CONFIG_USB_OHCI_HCD=y
++# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
++# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
++CONFIG_USB_OHCI_LITTLE_ENDIAN=y
++# CONFIG_USB_SL811_HCD is not set
++# CONFIG_USB_R8A66597_HCD is not set
++
++#
++# USB Device Class drivers
++#
++# CONFIG_USB_ACM is not set
++# CONFIG_USB_PRINTER is not set
++
++#
++# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
++#
++
++#
++# may also be needed; see USB_STORAGE Help for more information
++#
++CONFIG_USB_STORAGE=y
++# CONFIG_USB_STORAGE_DEBUG is not set
++# CONFIG_USB_STORAGE_DATAFAB is not set
++# CONFIG_USB_STORAGE_FREECOM is not set
++# CONFIG_USB_STORAGE_ISD200 is not set
++# CONFIG_USB_STORAGE_DPCM is not set
++# CONFIG_USB_STORAGE_USBAT is not set
++# CONFIG_USB_STORAGE_SDDR09 is not set
++# CONFIG_USB_STORAGE_SDDR55 is not set
++# CONFIG_USB_STORAGE_JUMPSHOT is not set
++# CONFIG_USB_STORAGE_ALAUDA is not set
++# CONFIG_USB_STORAGE_ONETOUCH is not set
++# CONFIG_USB_STORAGE_KARMA is not set
++# CONFIG_USB_LIBUSUAL is not set
++
++#
++# USB Imaging devices
++#
++# CONFIG_USB_MDC800 is not set
++# CONFIG_USB_MICROTEK is not set
++CONFIG_USB_MON=y
++
++#
++# USB port drivers
++#
++# CONFIG_USB_USS720 is not set
++
++#
++# USB Serial Converter support
++#
++# CONFIG_USB_SERIAL is not set
++
++#
++# USB Miscellaneous drivers
++#
++# CONFIG_USB_EMI62 is not set
++# CONFIG_USB_EMI26 is not set
++# CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_AUERSWALD is not set
++# CONFIG_USB_RIO500 is not set
++# CONFIG_USB_LEGOTOWER is not set
++# CONFIG_USB_LCD is not set
++# CONFIG_USB_BERRY_CHARGE is not set
++# CONFIG_USB_LED is not set
++# CONFIG_USB_CYPRESS_CY7C63 is not set
++# CONFIG_USB_CYTHERM is not set
++# CONFIG_USB_PHIDGET is not set
++# CONFIG_USB_IDMOUSE is not set
++# CONFIG_USB_FTDI_ELAN is not set
++# CONFIG_USB_APPLEDISPLAY is not set
++# CONFIG_USB_LD is not set
++# CONFIG_USB_TRANCEVIBRATOR is not set
++# CONFIG_USB_IOWARRIOR is not set
++# CONFIG_USB_TEST is not set
++
++#
++# USB DSL modem support
++#
++
++#
++# USB Gadget Support
++#
++# CONFIG_USB_GADGET is not set
++CONFIG_MMC=y
++# CONFIG_MMC_DEBUG is not set
++# CONFIG_MMC_UNSAFE_RESUME is not set
++
++#
++# MMC/SD Card Drivers
++#
++CONFIG_MMC_BLOCK=y
++CONFIG_MMC_BLOCK_BOUNCE=y
++# CONFIG_SDIO_UART is not set
++
++#
++# MMC/SD Host Controller Drivers
++#
++CONFIG_HSMMC_S3C=y
++# CONFIG_USE_MMC_AS_ROOT is not set
++# CONFIG_HSMMC_S3C_IRQ_WORKAROUND is not set
++CONFIG_HSMMC_SCATTERGATHER=y
++# CONFIG_S3CMMC_DEBUG is not set
++# CONFIG_MMC_SPI is not set
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=m
++
++#
++# LED drivers
++#
++CONFIG_LEDS_S3C24XX=m
++# CONFIG_LEDS_GPIO is not set
++
++#
++# LED Triggers
++#
++CONFIG_LEDS_TRIGGERS=y
++CONFIG_LEDS_TRIGGER_TIMER=m
++CONFIG_LEDS_TRIGGER_HEARTBEAT=m
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# I2C RTC drivers
++#
++# CONFIG_RTC_DRV_DS1307 is not set
++# CONFIG_RTC_DRV_DS1374 is not set
++# CONFIG_RTC_DRV_DS1672 is not set
++# CONFIG_RTC_DRV_MAX6900 is not set
++# CONFIG_RTC_DRV_RS5C372 is not set
++# CONFIG_RTC_DRV_ISL1208 is not set
++# CONFIG_RTC_DRV_X1205 is not set
++# CONFIG_RTC_DRV_PCF8563 is not set
++# CONFIG_RTC_DRV_PCF8583 is not set
++# CONFIG_RTC_DRV_M41T80 is not set
++
++#
++# SPI RTC drivers
++#
++# CONFIG_RTC_DRV_RS5C348 is not set
++# CONFIG_RTC_DRV_MAX6902 is not set
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_S3C=y
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++CONFIG_EXT3_FS=y
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
++# CONFIG_EXT4DEV_FS is not set
++CONFIG_JBD=y
++CONFIG_FS_MBCACHE=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_MINIX_FS is not set
++CONFIG_ROMFS_FS=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++CONFIG_MSDOS_FS=y
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
++# CONFIG_JFFS2_SUMMARY is not set
++# CONFIG_JFFS2_FS_XATTR is not set
++# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
++CONFIG_JFFS2_ZLIB=y
++# CONFIG_JFFS2_LZO is not set
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++CONFIG_CRAMFS=y
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=y
++# CONFIG_NFS_V3 is not set
++# CONFIG_NFS_V4 is not set
++# CONFIG_NFS_DIRECTIO is not set
++# CONFIG_NFSD is not set
++CONFIG_ROOT_NFS=y
++CONFIG_LOCKD=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=y
++# CONFIG_SUNRPC_BIND34 is not set
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++CONFIG_PARTITION_ADVANCED=y
++# CONFIG_ACORN_PARTITION is not set
++# CONFIG_OSF_PARTITION is not set
++# CONFIG_AMIGA_PARTITION is not set
++# CONFIG_ATARI_PARTITION is not set
++# CONFIG_MAC_PARTITION is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_BSD_DISKLABEL=y
++# CONFIG_MINIX_SUBPARTITION is not set
++CONFIG_SOLARIS_X86_PARTITION=y
++# CONFIG_UNIXWARE_DISKLABEL is not set
++# CONFIG_LDM_PARTITION is not set
++# CONFIG_SGI_PARTITION is not set
++# CONFIG_ULTRIX_PARTITION is not set
++# CONFIG_SUN_PARTITION is not set
++# CONFIG_KARMA_PARTITION is not set
++# CONFIG_EFI_PARTITION is not set
++# CONFIG_SYSV68_PARTITION is not set
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++CONFIG_NLS_ASCII=y
++CONFIG_NLS_ISO8859_1=y
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++CONFIG_INSTRUMENTATION=y
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_MAGIC_SYSRQ=y
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_TIMER_STATS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++CONFIG_DEBUG_MUTEXES=y
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++CONFIG_FRAME_POINTER=y
++CONFIG_FORCED_INLINING=y
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_SAMPLES is not set
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++CONFIG_DEBUG_LL=y
++# CONFIG_DEBUG_ICEDCC is not set
++CONFIG_DEBUG_S3C_PORT=y
++CONFIG_DEBUG_S3C_UART=0
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff --git a/arch/arm/configs/smdk6430nfs_defconfig b/arch/arm/configs/smdk6430nfs_defconfig
+new file mode 100644
+index 0000000..cc725d9
+--- /dev/null
++++ b/arch/arm/configs/smdk6430nfs_defconfig
+@@ -0,0 +1,1332 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.24.2
++# Mon Jun 30 15:41:57 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_AUDIT is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=16
++# CONFIG_CGROUPS is not set
++CONFIG_FAIR_GROUP_SCHED=y
++CONFIG_FAIR_USER_SCHED=y
++# CONFIG_FAIR_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++# CONFIG_RELAY is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++# CONFIG_EMBEDDED is not set
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++CONFIG_PLAT_S3C64XX=y
++CONFIG_S3C64XX_DMA=y
++CONFIG_PLAT_S3C=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_WATCHDOG is not set
++# CONFIG_S3C_BOOT_ERROR_RESET is not set
++
++#
++# Power management
++#
++CONFIG_S3C_LOWLEVEL_UART_PORT=0
++CONFIG_SPLIT_ROOT_FILESYSTEM=y
++CONFIG_MACH_SMDK=y
++
++#
++# S3C2400 Machines
++#
++
++#
++# S3C2410 Machines
++#
++# CONFIG_ARCH_SMDK2410 is not set
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++
++#
++# S3C2440 Machines
++#
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++# CONFIG_ARCH_S3C2440 is not set
++# CONFIG_MACH_NEXCODER_2440 is not set
++
++#
++# S3C2442 Machines
++#
++
++#
++# S3C2443 Machines
++#
++# CONFIG_MACH_SMDK2443 is not set
++
++#
++# S3C2450 Machines
++#
++# CONFIG_MACH_SMDK2450 is not set
++
++#
++# S3C2416 Machines
++#
++# CONFIG_MACH_SMDK2416 is not set
++
++#
++# S3C6400 Machines
++#
++# CONFIG_MACH_SMDK6400 is not set
++
++#
++# S3C6430 Machines
++#
++CONFIG_MACH_SMDK6430=y
++CONFIG_MACH_SMDK6410=y
++CONFIG_CPU_S3C6410=y
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_V6=y
++# CONFIG_CPU_32v6K is not set
++CONFIG_CPU_32v6=y
++CONFIG_CPU_ABRT_EV6=y
++CONFIG_CPU_CACHE_V6=y
++CONFIG_CPU_CACHE_VIPT=y
++CONFIG_CPU_COPY_V6=y
++CONFIG_CPU_TLB_V6=y
++CONFIG_CPU_HAS_ASID=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++# CONFIG_ARM_THUMB is not set
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_BPREDICT_DISABLE is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++CONFIG_ISA=y
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++# CONFIG_PREEMPT is not set
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=200
++CONFIG_AEABI=y
++CONFIG_OABI_COMPAT=y
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++# CONFIG_LEDS is not set
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="root=/dev/nfs nfsroot=12.23.106.154:/opt/small_root_eabi ip=192.168.0.20:12.23.106.154:192.168.0.1:255.255.255.0:test::off init=/linuxrc console=ttySAC0,115200"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++# CONFIG_FPE_NWFPE_XP is not set
++# CONFIG_FPE_FASTFPE is not set
++# CONFIG_VFP is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_AOUT=y
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++# CONFIG_PM is not set
++CONFIG_SUSPEND_UP_POSSIBLE=y
++
++#
++# DVFS support
++#
++# CONFIG_DVFS is not set
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++# CONFIG_PACKET is not set
++CONFIG_UNIX=y
++CONFIG_XFRM=y
++# CONFIG_XFRM_USER is not set
++# CONFIG_XFRM_SUB_POLICY is not set
++# CONFIG_XFRM_MIGRATE is not set
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++CONFIG_IP_PNP=y
++# CONFIG_IP_PNP_DHCP is not set
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++CONFIG_INET_XFRM_MODE_TRANSPORT=y
++CONFIG_INET_XFRM_MODE_TUNNEL=y
++CONFIG_INET_XFRM_MODE_BEET=y
++# CONFIG_INET_LRO is not set
++CONFIG_INET_DIAG=y
++CONFIG_INET_TCP_DIAG=y
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IPV6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++# CONFIG_CFG80211 is not set
++# CONFIG_WIRELESS_EXT is not set
++# CONFIG_MAC80211 is not set
++# CONFIG_IEEE80211 is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++# CONFIG_FW_LOADER is not set
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++CONFIG_MTD_REDBOOT_PARTS=y
++CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
++CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
++# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
++CONFIG_MTD_CMDLINE_PARTS=y
++# CONFIG_MTD_AFS_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++CONFIG_MTD_CFI=y
++CONFIG_MTD_JEDECPROBE=y
++CONFIG_MTD_GEN_PROBE=y
++# CONFIG_MTD_CFI_ADV_OPTIONS is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++CONFIG_MTD_CFI_INTELEXT=y
++CONFIG_MTD_CFI_AMDSTD=y
++# CONFIG_MTD_CFI_STAA is not set
++CONFIG_MTD_CFI_UTIL=y
++# CONFIG_MTD_RAM is not set
++CONFIG_MTD_ROM=y
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PHYSMAP is not set
++# CONFIG_MTD_ARM_INTEGRATOR is not set
++# CONFIG_MTD_IMPA7 is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++# CONFIG_MTD_DATAFLASH is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++CONFIG_MTD_NAND=y
++# CONFIG_MTD_NAND_VERIFY_WRITE is not set
++# CONFIG_MTD_NAND_ECC_SMC is not set
++# CONFIG_MTD_NAND_MUSEUM_IDS is not set
++CONFIG_MTD_NAND_IDS=y
++# CONFIG_MTD_NAND_S3C2410 is not set
++CONFIG_MTD_NAND_S3C=y
++# CONFIG_MTD_NAND_S3C_DEBUG is not set
++CONFIG_MTD_NO_ECC_WARNING=y
++CONFIG_MTD_NAND_S3C_HWECC=y
++CONFIG_S3C_LARGEPAGE_NAND=y
++# CONFIG_MTD_NAND_DISKONCHIP is not set
++# CONFIG_MTD_NAND_NANDSIM is not set
++# CONFIG_MTD_NAND_PLATFORM is not set
++# CONFIG_MTD_ONENAND is not set
++
++#
++# UBI - Unsorted block images
++#
++# CONFIG_MTD_UBI is not set
++CONFIG_PARPORT=y
++# CONFIG_PARPORT_PC is not set
++# CONFIG_PARPORT_GSC is not set
++# CONFIG_PARPORT_AX88796 is not set
++CONFIG_PARPORT_1284=y
++# CONFIG_PNP is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++# CONFIG_BLK_DEV_NBD is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=16
++CONFIG_BLK_DEV_RAM_SIZE=4096
++CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
++# CONFIG_CDROM_PKTCDVD is not set
++# CONFIG_ATA_OVER_ETH is not set
++CONFIG_MISC_DEVICES=y
++# CONFIG_EEPROM_93CX6 is not set
++# CONFIG_IDE is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++# CONFIG_SCSI is not set
++# CONFIG_SCSI_DMA is not set
++# CONFIG_SCSI_NETLINK is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++# CONFIG_ARCNET is not set
++# CONFIG_PHYLIB is not set
++CONFIG_NET_ETHERNET=y
++CONFIG_MII=y
++# CONFIG_AX88796 is not set
++# CONFIG_NET_VENDOR_3COM is not set
++# CONFIG_NET_VENDOR_SMC is not set
++# CONFIG_SMC91X is not set
++# CONFIG_DM9000 is not set
++CONFIG_SMC911X=y
++# CONFIG_NET_VENDOR_RACAL is not set
++# CONFIG_AT1700 is not set
++# CONFIG_DEPCA is not set
++# CONFIG_HP100 is not set
++# CONFIG_NET_ISA is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++CONFIG_NET_PCI=y
++# CONFIG_AC3200 is not set
++# CONFIG_APRICOT is not set
++# CONFIG_B44 is not set
++# CONFIG_CS89x0 is not set
++# CONFIG_NET_POCKET is not set
++CONFIG_NETDEV_1000=y
++CONFIG_NETDEV_10000=y
++# CONFIG_TR is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++# CONFIG_WLAN_80211 is not set
++# CONFIG_WAN is not set
++# CONFIG_PLIP is not set
++# CONFIG_PPP is not set
++# CONFIG_SLIP is not set
++# CONFIG_SHAPER is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++CONFIG_INPUT_MOUSEDEV_PSAUX=y
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
++# CONFIG_INPUT_JOYDEV is not set
++CONFIG_INPUT_TSDEV=y
++CONFIG_INPUT_TSDEV_SCREEN_X=480
++CONFIG_INPUT_TSDEV_SCREEN_Y=640
++CONFIG_INPUT_EVDEV=y
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++# CONFIG_KEYBOARD_GPIO is not set
++# CONFIG_KEYPAD_S3C is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++CONFIG_MOUSE_PS2_LOGIPS2PP=y
++CONFIG_MOUSE_PS2_SYNAPTICS=y
++CONFIG_MOUSE_PS2_LIFEBOOK=y
++CONFIG_MOUSE_PS2_TRACKPOINT=y
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_INPORT is not set
++# CONFIG_MOUSE_LOGIBM is not set
++# CONFIG_MOUSE_PC110PAD is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_MOUSE_GPIO is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++CONFIG_INPUT_TOUCHSCREEN=y
++# CONFIG_TOUCHSCREEN_ADS7846 is not set
++CONFIG_TOUCHSCREEN_S3C=y
++# CONFIG_TOUCHSCREEN_FUJITSU is not set
++# CONFIG_TOUCHSCREEN_GUNZE is not set
++# CONFIG_TOUCHSCREEN_ELO is not set
++# CONFIG_TOUCHSCREEN_MTOUCH is not set
++# CONFIG_TOUCHSCREEN_MK712 is not set
++# CONFIG_TOUCHSCREEN_PENMOUNT is not set
++# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
++# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
++# CONFIG_TOUCHSCREEN_UCB1400 is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++# CONFIG_SERIO_PARKBD is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++CONFIG_SERIAL_NONSTANDARD=y
++# CONFIG_COMPUTONE is not set
++# CONFIG_ROCKETPORT is not set
++# CONFIG_CYCLADES is not set
++# CONFIG_DIGIEPCA is not set
++# CONFIG_MOXA_INTELLIO is not set
++# CONFIG_MOXA_SMARTIO is not set
++# CONFIG_MOXA_SMARTIO_NEW is not set
++# CONFIG_N_HDLC is not set
++# CONFIG_RISCOM8 is not set
++# CONFIG_SPECIALIX is not set
++# CONFIG_SX is not set
++# CONFIG_RIO is not set
++# CONFIG_STALDRV is not set
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_NR_UARTS=8
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++CONFIG_SERIAL_8250_EXTENDED=y
++CONFIG_SERIAL_8250_MANY_PORTS=y
++# CONFIG_SERIAL_8250_FOURPORT is not set
++# CONFIG_SERIAL_8250_ACCENT is not set
++# CONFIG_SERIAL_8250_BOCA is not set
++# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
++# CONFIG_SERIAL_8250_HUB6 is not set
++CONFIG_SERIAL_8250_SHARE_IRQ=y
++# CONFIG_SERIAL_8250_DETECT_IRQ is not set
++# CONFIG_SERIAL_8250_RSA is not set
++
++#
++# Non-8250 serial port support
++#
++# CONFIG_SERIAL_S3C2410 is not set
++CONFIG_SERIAL_S3C6400=y
++CONFIG_SERIAL_S3C64XX_CONSOLE=y
++# CONFIG_SERIAL_S3C64XX_HS_UART is not set
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++CONFIG_PRINTER=y
++# CONFIG_LP_CONSOLE is not set
++CONFIG_PPDEV=y
++# CONFIG_IPMI_HANDLER is not set
++CONFIG_HW_RANDOM=y
++# CONFIG_NVRAM is not set
++# CONFIG_S3C_ADC is not set
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_DEVPORT=y
++CONFIG_I2C=y
++CONFIG_I2C_BOARDINFO=y
++CONFIG_I2C_CHARDEV=y
++
++#
++# I2C Algorithms
++#
++CONFIG_I2C_ALGOBIT=y
++# CONFIG_I2C_ALGOPCF is not set
++# CONFIG_I2C_ALGOPCA is not set
++
++#
++# I2C Hardware Bus support
++#
++# CONFIG_I2C_ELEKTOR is not set
++# CONFIG_I2C_GPIO is not set
++# CONFIG_I2C_OCORES is not set
++# CONFIG_I2C_PARPORT is not set
++# CONFIG_I2C_PARPORT_LIGHT is not set
++CONFIG_I2C_S3C2410=y
++# CONFIG_I2C_SIMTEC is not set
++# CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_STUB is not set
++# CONFIG_I2C_PCA_ISA is not set
++
++#
++# Miscellaneous I2C Chip support
++#
++# CONFIG_SENSORS_DS1337 is not set
++# CONFIG_SENSORS_DS1374 is not set
++# CONFIG_DS1682 is not set
++CONFIG_SENSORS_EEPROM=m
++# CONFIG_SENSORS_PCF8574 is not set
++# CONFIG_SENSORS_PCA9539 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_SENSORS_MAX6875 is not set
++# CONFIG_SENSORS_TSL2550 is not set
++# CONFIG_I2C_DEBUG_CORE is not set
++# CONFIG_I2C_DEBUG_ALGO is not set
++# CONFIG_I2C_DEBUG_BUS is not set
++# CONFIG_I2C_DEBUG_CHIP is not set
++
++#
++# SPI support
++#
++CONFIG_SPI=y
++# CONFIG_SPI_DEBUG is not set
++CONFIG_SPI_MASTER=y
++
++#
++# SPI Master Controller Drivers
++#
++CONFIG_SPI_BITBANG=m
++# CONFIG_SPI_BUTTERFLY is not set
++# CONFIG_SPI_LM70_LLP is not set
++CONFIG_SPI_S3C24XX=m
++CONFIG_SPI_S3C24XX_GPIO=m
++
++#
++# SPI Protocol Masters
++#
++# CONFIG_SPI_AT25 is not set
++# CONFIG_SPI_SPIDEV is not set
++# CONFIG_SPI_TLE62X0 is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++CONFIG_HWMON=y
++CONFIG_HWMON_VID=m
++# CONFIG_SENSORS_AD7418 is not set
++# CONFIG_SENSORS_ADM1021 is not set
++# CONFIG_SENSORS_ADM1025 is not set
++# CONFIG_SENSORS_ADM1026 is not set
++# CONFIG_SENSORS_ADM1029 is not set
++# CONFIG_SENSORS_ADM1031 is not set
++# CONFIG_SENSORS_ADM9240 is not set
++# CONFIG_SENSORS_ADT7470 is not set
++# CONFIG_SENSORS_ATXP1 is not set
++# CONFIG_SENSORS_DS1621 is not set
++# CONFIG_SENSORS_F71805F is not set
++# CONFIG_SENSORS_F71882FG is not set
++# CONFIG_SENSORS_F75375S is not set
++# CONFIG_SENSORS_GL518SM is not set
++# CONFIG_SENSORS_GL520SM is not set
++# CONFIG_SENSORS_IT87 is not set
++# CONFIG_SENSORS_LM63 is not set
++# CONFIG_SENSORS_LM70 is not set
++CONFIG_SENSORS_LM75=m
++# CONFIG_SENSORS_LM77 is not set
++CONFIG_SENSORS_LM78=m
++# CONFIG_SENSORS_LM80 is not set
++# CONFIG_SENSORS_LM83 is not set
++CONFIG_SENSORS_LM85=m
++# CONFIG_SENSORS_LM87 is not set
++# CONFIG_SENSORS_LM90 is not set
++# CONFIG_SENSORS_LM92 is not set
++# CONFIG_SENSORS_LM93 is not set
++# CONFIG_SENSORS_MAX1619 is not set
++# CONFIG_SENSORS_MAX6650 is not set
++# CONFIG_SENSORS_PC87360 is not set
++# CONFIG_SENSORS_PC87427 is not set
++# CONFIG_SENSORS_DME1737 is not set
++# CONFIG_SENSORS_SMSC47M1 is not set
++# CONFIG_SENSORS_SMSC47M192 is not set
++# CONFIG_SENSORS_SMSC47B397 is not set
++# CONFIG_SENSORS_THMC50 is not set
++# CONFIG_SENSORS_VT1211 is not set
++# CONFIG_SENSORS_W83781D is not set
++# CONFIG_SENSORS_W83791D is not set
++# CONFIG_SENSORS_W83792D is not set
++# CONFIG_SENSORS_W83793 is not set
++# CONFIG_SENSORS_W83L785TS is not set
++# CONFIG_SENSORS_W83627HF is not set
++# CONFIG_SENSORS_W83627EHF is not set
++# CONFIG_HWMON_DEBUG_CHIP is not set
++CONFIG_WATCHDOG=y
++# CONFIG_WATCHDOG_NOWAYOUT is not set
++
++#
++# Watchdog Device Drivers
++#
++# CONFIG_SOFT_WATCHDOG is not set
++CONFIG_S3C2410_WATCHDOG=y
++
++#
++# ISA-based Watchdog Cards
++#
++# CONFIG_PCWATCHDOG is not set
++# CONFIG_MIXCOMWD is not set
++# CONFIG_WDT is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++# CONFIG_DAB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++CONFIG_FIRMWARE_EDID=y
++# CONFIG_FB_DDC is not set
++CONFIG_FB_CFB_FILLRECT=y
++CONFIG_FB_CFB_COPYAREA=y
++CONFIG_FB_CFB_IMAGEBLIT=y
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++CONFIG_FB_MODE_HELPERS=y
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++CONFIG_FB_S3C=y
++CONFIG_FB_S3C_LTE480WV=y
++# CONFIG_FB_S3C_LTV350QV is not set
++# CONFIG_FB_S3C_LTS222QV is not set
++CONFIG_FB_S3C_BPP=y
++# CONFIG_FB_S3C_BPP_8 is not set
++CONFIG_FB_S3C_BPP_16=y
++# CONFIG_FB_S3C_BPP_24 is not set
++# CONFIG_FB_S3C_BPP_32 is not set
++CONFIG_FB_S3C_NUM=1
++# CONFIG_FB_S3C_VIRTUAL_SCREEN is not set
++# CONFIG_FB_S3C_DOUBLE_BUFFERING is not set
++# CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_S3C2410 is not set
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++# CONFIG_MDA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++# CONFIG_LOGO_LINUX_CLUT224 is not set
++CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224=y
++
++#
++# Sound
++#
++CONFIG_SOUND=y
++
++#
++# Advanced Linux Sound Architecture
++#
++CONFIG_SND=y
++CONFIG_SND_TIMER=y
++CONFIG_SND_PCM=y
++CONFIG_SND_SEQUENCER=y
++# CONFIG_SND_SEQ_DUMMY is not set
++CONFIG_SND_OSSEMUL=y
++CONFIG_SND_MIXER_OSS=y
++CONFIG_SND_PCM_OSS=y
++CONFIG_SND_PCM_OSS_PLUGINS=y
++CONFIG_SND_SEQUENCER_OSS=y
++# CONFIG_SND_DYNAMIC_MINORS is not set
++CONFIG_SND_SUPPORT_OLD_API=y
++CONFIG_SND_VERBOSE_PROCFS=y
++# CONFIG_SND_VERBOSE_PRINTK is not set
++# CONFIG_SND_DEBUG is not set
++
++#
++# Generic devices
++#
++CONFIG_SND_AC97_CODEC=y
++# CONFIG_SND_DUMMY is not set
++# CONFIG_SND_VIRMIDI is not set
++# CONFIG_SND_MTPAV is not set
++# CONFIG_SND_MTS64 is not set
++# CONFIG_SND_SERIAL_U16550 is not set
++# CONFIG_SND_MPU401 is not set
++# CONFIG_SND_PORTMAN2X4 is not set
++
++#
++# ALSA ARM devices
++#
++
++#
++# SPI devices
++#
++
++#
++# System on Chip audio support
++#
++CONFIG_SND_SOC_AC97_BUS=y
++CONFIG_SND_SOC=y
++CONFIG_SND_S3C_SOC=y
++CONFIG_SND_S3C6410_SOC_AC97=y
++CONFIG_SND_S3C64XX_SOC_SMDK6410_WM9713=y
++CONFIG_SOUND_WM9713_INPUT_STREAM_LINE=y
++# CONFIG_SOUND_WM9713_INPUT_STREAM_MIC is not set
++CONFIG_SND_SOC_WM9713=y
++
++#
++# Open Sound System
++#
++# CONFIG_SOUND_PRIME is not set
++CONFIG_AC97_BUS=y
++CONFIG_HID_SUPPORT=y
++CONFIG_HID=y
++# CONFIG_HID_DEBUG is not set
++# CONFIG_HIDRAW is not set
++# CONFIG_USB_SUPPORT is not set
++CONFIG_MMC=y
++# CONFIG_MMC_DEBUG is not set
++# CONFIG_MMC_UNSAFE_RESUME is not set
++
++#
++# MMC/SD Card Drivers
++#
++CONFIG_MMC_BLOCK=y
++CONFIG_MMC_BLOCK_BOUNCE=y
++# CONFIG_SDIO_UART is not set
++
++#
++# MMC/SD Host Controller Drivers
++#
++CONFIG_HSMMC_S3C=y
++# CONFIG_USE_MMC_AS_ROOT is not set
++# CONFIG_HSMMC_S3C_IRQ_WORKAROUND is not set
++CONFIG_HSMMC_SCATTERGATHER=y
++# CONFIG_S3CMMC_DEBUG is not set
++# CONFIG_MMC_SPI is not set
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=m
++
++#
++# LED drivers
++#
++CONFIG_LEDS_S3C24XX=m
++# CONFIG_LEDS_GPIO is not set
++
++#
++# LED Triggers
++#
++CONFIG_LEDS_TRIGGERS=y
++CONFIG_LEDS_TRIGGER_TIMER=m
++CONFIG_LEDS_TRIGGER_HEARTBEAT=m
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# I2C RTC drivers
++#
++# CONFIG_RTC_DRV_DS1307 is not set
++# CONFIG_RTC_DRV_DS1374 is not set
++# CONFIG_RTC_DRV_DS1672 is not set
++# CONFIG_RTC_DRV_MAX6900 is not set
++# CONFIG_RTC_DRV_RS5C372 is not set
++# CONFIG_RTC_DRV_ISL1208 is not set
++# CONFIG_RTC_DRV_X1205 is not set
++# CONFIG_RTC_DRV_PCF8563 is not set
++# CONFIG_RTC_DRV_PCF8583 is not set
++# CONFIG_RTC_DRV_M41T80 is not set
++
++#
++# SPI RTC drivers
++#
++# CONFIG_RTC_DRV_RS5C348 is not set
++# CONFIG_RTC_DRV_MAX6902 is not set
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_S3C=y
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++CONFIG_EXT3_FS=y
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
++# CONFIG_EXT4DEV_FS is not set
++CONFIG_JBD=y
++CONFIG_FS_MBCACHE=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_MINIX_FS is not set
++CONFIG_ROMFS_FS=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++CONFIG_MSDOS_FS=y
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
++# CONFIG_JFFS2_SUMMARY is not set
++# CONFIG_JFFS2_FS_XATTR is not set
++# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
++CONFIG_JFFS2_ZLIB=y
++# CONFIG_JFFS2_LZO is not set
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++CONFIG_CRAMFS=y
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=y
++# CONFIG_NFS_V3 is not set
++# CONFIG_NFS_V4 is not set
++# CONFIG_NFS_DIRECTIO is not set
++# CONFIG_NFSD is not set
++CONFIG_ROOT_NFS=y
++CONFIG_LOCKD=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=y
++# CONFIG_SUNRPC_BIND34 is not set
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++CONFIG_PARTITION_ADVANCED=y
++# CONFIG_ACORN_PARTITION is not set
++# CONFIG_OSF_PARTITION is not set
++# CONFIG_AMIGA_PARTITION is not set
++# CONFIG_ATARI_PARTITION is not set
++# CONFIG_MAC_PARTITION is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_BSD_DISKLABEL=y
++# CONFIG_MINIX_SUBPARTITION is not set
++CONFIG_SOLARIS_X86_PARTITION=y
++# CONFIG_UNIXWARE_DISKLABEL is not set
++# CONFIG_LDM_PARTITION is not set
++# CONFIG_SGI_PARTITION is not set
++# CONFIG_ULTRIX_PARTITION is not set
++# CONFIG_SUN_PARTITION is not set
++# CONFIG_KARMA_PARTITION is not set
++# CONFIG_EFI_PARTITION is not set
++# CONFIG_SYSV68_PARTITION is not set
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++CONFIG_NLS_ASCII=y
++CONFIG_NLS_ISO8859_1=y
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++CONFIG_INSTRUMENTATION=y
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_MAGIC_SYSRQ=y
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_TIMER_STATS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++CONFIG_DEBUG_MUTEXES=y
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++CONFIG_FRAME_POINTER=y
++CONFIG_FORCED_INLINING=y
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_SAMPLES is not set
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++CONFIG_DEBUG_LL=y
++# CONFIG_DEBUG_ICEDCC is not set
++CONFIG_DEBUG_S3C_PORT=y
++CONFIG_DEBUG_S3C_UART=0
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff --git a/arch/arm/configs/smdk6430ramdisk_defconfig b/arch/arm/configs/smdk6430ramdisk_defconfig
+new file mode 100644
+index 0000000..73a4629
+--- /dev/null
++++ b/arch/arm/configs/smdk6430ramdisk_defconfig
+@@ -0,0 +1,1521 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.24.2
++# Thu Jul 31 10:40:33 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_AUDIT is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=16
++# CONFIG_CGROUPS is not set
++CONFIG_FAIR_GROUP_SCHED=y
++CONFIG_FAIR_USER_SCHED=y
++# CONFIG_FAIR_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++# CONFIG_RELAY is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++# CONFIG_EMBEDDED is not set
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++CONFIG_PLAT_S3C64XX=y
++CONFIG_S3C64XX_DMA=y
++CONFIG_PLAT_S3C=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_WATCHDOG is not set
++# CONFIG_S3C_BOOT_ERROR_RESET is not set
++
++#
++# Power management
++#
++CONFIG_S3C_LOWLEVEL_UART_PORT=0
++CONFIG_SPLIT_ROOT_FILESYSTEM=y
++CONFIG_MACH_SMDK=y
++
++#
++# S3C2400 Machines
++#
++
++#
++# S3C2410 Machines
++#
++# CONFIG_ARCH_SMDK2410 is not set
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++
++#
++# S3C2440 Machines
++#
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++# CONFIG_ARCH_S3C2440 is not set
++# CONFIG_MACH_NEXCODER_2440 is not set
++
++#
++# S3C2442 Machines
++#
++
++#
++# S3C2443 Machines
++#
++# CONFIG_MACH_SMDK2443 is not set
++
++#
++# S3C2450 Machines
++#
++# CONFIG_MACH_SMDK2450 is not set
++
++#
++# S3C2416 Machines
++#
++# CONFIG_MACH_SMDK2416 is not set
++
++#
++# S3C6400 Machines
++#
++# CONFIG_MACH_SMDK6400 is not set
++
++#
++# S3C6410 Machines
++#
++CONFIG_MACH_SMDK6410=y
++CONFIG_MACH_SMDK6430=y
++# CONFIG_S3C6410_PDFW is not set
++CONFIG_CPU_S3C6410=y
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_V6=y
++# CONFIG_CPU_32v6K is not set
++CONFIG_CPU_32v6=y
++CONFIG_CPU_ABRT_EV6=y
++CONFIG_CPU_CACHE_V6=y
++CONFIG_CPU_CACHE_VIPT=y
++CONFIG_CPU_COPY_V6=y
++CONFIG_CPU_TLB_V6=y
++CONFIG_CPU_HAS_ASID=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++# CONFIG_ARM_THUMB is not set
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_BPREDICT_DISABLE is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++CONFIG_ISA=y
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++# CONFIG_PREEMPT is not set
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=200
++CONFIG_AEABI=y
++CONFIG_OABI_COMPAT=y
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++# CONFIG_LEDS is not set
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x50800000,8M console=ttySAC0,115200 init=/linuxrc"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++# CONFIG_FPE_NWFPE_XP is not set
++# CONFIG_FPE_FASTFPE is not set
++# CONFIG_VFP is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_AOUT=y
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++# CONFIG_PM is not set
++CONFIG_SUSPEND_UP_POSSIBLE=y
++
++#
++# DVFS support
++#
++# CONFIG_DVFS is not set
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++# CONFIG_PACKET is not set
++CONFIG_UNIX=y
++CONFIG_XFRM=y
++# CONFIG_XFRM_USER is not set
++# CONFIG_XFRM_SUB_POLICY is not set
++# CONFIG_XFRM_MIGRATE is not set
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++CONFIG_IP_PNP=y
++# CONFIG_IP_PNP_DHCP is not set
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++CONFIG_INET_XFRM_MODE_TRANSPORT=y
++CONFIG_INET_XFRM_MODE_TUNNEL=y
++CONFIG_INET_XFRM_MODE_BEET=y
++# CONFIG_INET_LRO is not set
++CONFIG_INET_DIAG=y
++CONFIG_INET_TCP_DIAG=y
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IPV6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++# CONFIG_CFG80211 is not set
++# CONFIG_WIRELESS_EXT is not set
++# CONFIG_MAC80211 is not set
++# CONFIG_IEEE80211 is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++# CONFIG_FW_LOADER is not set
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++CONFIG_MTD_REDBOOT_PARTS=y
++CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
++CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
++# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
++CONFIG_MTD_CMDLINE_PARTS=y
++# CONFIG_MTD_AFS_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++CONFIG_MTD_CFI=y
++CONFIG_MTD_JEDECPROBE=y
++CONFIG_MTD_GEN_PROBE=y
++# CONFIG_MTD_CFI_ADV_OPTIONS is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++CONFIG_MTD_CFI_INTELEXT=y
++CONFIG_MTD_CFI_AMDSTD=y
++# CONFIG_MTD_CFI_STAA is not set
++CONFIG_MTD_CFI_UTIL=y
++# CONFIG_MTD_RAM is not set
++CONFIG_MTD_ROM=y
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PHYSMAP is not set
++# CONFIG_MTD_ARM_INTEGRATOR is not set
++# CONFIG_MTD_IMPA7 is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++# CONFIG_MTD_DATAFLASH is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++CONFIG_MTD_NAND=y
++# CONFIG_MTD_NAND_VERIFY_WRITE is not set
++# CONFIG_MTD_NAND_ECC_SMC is not set
++# CONFIG_MTD_NAND_MUSEUM_IDS is not set
++CONFIG_MTD_NAND_IDS=y
++# CONFIG_MTD_NAND_S3C2410 is not set
++CONFIG_MTD_NAND_S3C=y
++# CONFIG_MTD_NAND_S3C_DEBUG is not set
++CONFIG_MTD_NO_ECC_WARNING=y
++CONFIG_MTD_NAND_S3C_HWECC=y
++CONFIG_S3C_LARGEPAGE_NAND=y
++# CONFIG_MTD_NAND_DISKONCHIP is not set
++# CONFIG_MTD_NAND_NANDSIM is not set
++# CONFIG_MTD_NAND_PLATFORM is not set
++# CONFIG_MTD_ALAUDA is not set
++# CONFIG_MTD_ONENAND is not set
++
++#
++# UBI - Unsorted block images
++#
++# CONFIG_MTD_UBI is not set
++CONFIG_PARPORT=y
++# CONFIG_PARPORT_PC is not set
++# CONFIG_PARPORT_GSC is not set
++# CONFIG_PARPORT_AX88796 is not set
++CONFIG_PARPORT_1284=y
++# CONFIG_PNP is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++# CONFIG_BLK_DEV_NBD is not set
++# CONFIG_BLK_DEV_UB is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=16
++CONFIG_BLK_DEV_RAM_SIZE=8192
++CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
++# CONFIG_CDROM_PKTCDVD is not set
++# CONFIG_ATA_OVER_ETH is not set
++CONFIG_MISC_DEVICES=y
++# CONFIG_EEPROM_93CX6 is not set
++# CONFIG_IDE is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++CONFIG_SCSI=y
++CONFIG_SCSI_DMA=y
++# CONFIG_SCSI_TGT is not set
++# CONFIG_SCSI_NETLINK is not set
++CONFIG_SCSI_PROC_FS=y
++
++#
++# SCSI support type (disk, tape, CD-ROM)
++#
++CONFIG_BLK_DEV_SD=y
++# CONFIG_CHR_DEV_ST is not set
++# CONFIG_CHR_DEV_OSST is not set
++# CONFIG_BLK_DEV_SR is not set
++CONFIG_CHR_DEV_SG=y
++# CONFIG_CHR_DEV_SCH is not set
++
++#
++# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
++#
++# CONFIG_SCSI_MULTI_LUN is not set
++# CONFIG_SCSI_CONSTANTS is not set
++# CONFIG_SCSI_LOGGING is not set
++# CONFIG_SCSI_SCAN_ASYNC is not set
++CONFIG_SCSI_WAIT_SCAN=m
++
++#
++# SCSI Transports
++#
++# CONFIG_SCSI_SPI_ATTRS is not set
++# CONFIG_SCSI_FC_ATTRS is not set
++# CONFIG_SCSI_ISCSI_ATTRS is not set
++# CONFIG_SCSI_SAS_LIBSAS is not set
++# CONFIG_SCSI_SRP_ATTRS is not set
++CONFIG_SCSI_LOWLEVEL=y
++# CONFIG_ISCSI_TCP is not set
++# CONFIG_SCSI_AHA152X is not set
++# CONFIG_SCSI_AIC7XXX_OLD is not set
++# CONFIG_SCSI_ADVANSYS is not set
++# CONFIG_SCSI_IN2000 is not set
++# CONFIG_SCSI_DTC3280 is not set
++# CONFIG_SCSI_FUTURE_DOMAIN is not set
++# CONFIG_SCSI_GENERIC_NCR5380 is not set
++# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
++# CONFIG_SCSI_NCR53C406A is not set
++# CONFIG_SCSI_PAS16 is not set
++# CONFIG_SCSI_PSI240I is not set
++# CONFIG_SCSI_QLOGIC_FAS is not set
++# CONFIG_SCSI_SYM53C416 is not set
++# CONFIG_SCSI_T128 is not set
++# CONFIG_SCSI_DEBUG is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++# CONFIG_ARCNET is not set
++# CONFIG_PHYLIB is not set
++CONFIG_NET_ETHERNET=y
++CONFIG_MII=y
++# CONFIG_AX88796 is not set
++# CONFIG_NET_VENDOR_3COM is not set
++# CONFIG_NET_VENDOR_SMC is not set
++# CONFIG_SMC91X is not set
++# CONFIG_DM9000 is not set
++CONFIG_SMC911X=y
++# CONFIG_NET_VENDOR_RACAL is not set
++# CONFIG_AT1700 is not set
++# CONFIG_DEPCA is not set
++# CONFIG_HP100 is not set
++# CONFIG_NET_ISA is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++CONFIG_NET_PCI=y
++# CONFIG_AC3200 is not set
++# CONFIG_APRICOT is not set
++# CONFIG_B44 is not set
++# CONFIG_CS89x0 is not set
++# CONFIG_NET_POCKET is not set
++CONFIG_NETDEV_1000=y
++CONFIG_NETDEV_10000=y
++# CONFIG_TR is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++# CONFIG_WLAN_80211 is not set
++
++#
++# USB Network Adapters
++#
++# CONFIG_USB_CATC is not set
++# CONFIG_USB_KAWETH is not set
++# CONFIG_USB_PEGASUS is not set
++# CONFIG_USB_RTL8150 is not set
++# CONFIG_USB_USBNET is not set
++# CONFIG_WAN is not set
++# CONFIG_PLIP is not set
++# CONFIG_PPP is not set
++# CONFIG_SLIP is not set
++# CONFIG_SHAPER is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++CONFIG_INPUT_MOUSEDEV_PSAUX=y
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
++# CONFIG_INPUT_JOYDEV is not set
++CONFIG_INPUT_TSDEV=y
++CONFIG_INPUT_TSDEV_SCREEN_X=480
++CONFIG_INPUT_TSDEV_SCREEN_Y=640
++CONFIG_INPUT_EVDEV=y
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++# CONFIG_KEYBOARD_GPIO is not set
++# CONFIG_KEYPAD_S3C is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++CONFIG_MOUSE_PS2_LOGIPS2PP=y
++CONFIG_MOUSE_PS2_SYNAPTICS=y
++CONFIG_MOUSE_PS2_LIFEBOOK=y
++CONFIG_MOUSE_PS2_TRACKPOINT=y
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_APPLETOUCH is not set
++# CONFIG_MOUSE_INPORT is not set
++# CONFIG_MOUSE_LOGIBM is not set
++# CONFIG_MOUSE_PC110PAD is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_MOUSE_GPIO is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++CONFIG_INPUT_TOUCHSCREEN=y
++# CONFIG_TOUCHSCREEN_ADS7846 is not set
++CONFIG_TOUCHSCREEN_S3C=y
++# CONFIG_TOUCHSCREEN_FUJITSU is not set
++# CONFIG_TOUCHSCREEN_GUNZE is not set
++# CONFIG_TOUCHSCREEN_ELO is not set
++# CONFIG_TOUCHSCREEN_MTOUCH is not set
++# CONFIG_TOUCHSCREEN_MK712 is not set
++# CONFIG_TOUCHSCREEN_PENMOUNT is not set
++# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
++# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
++# CONFIG_TOUCHSCREEN_UCB1400 is not set
++# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++# CONFIG_SERIO_PARKBD is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++CONFIG_SERIAL_NONSTANDARD=y
++# CONFIG_COMPUTONE is not set
++# CONFIG_ROCKETPORT is not set
++# CONFIG_CYCLADES is not set
++# CONFIG_DIGIEPCA is not set
++# CONFIG_MOXA_INTELLIO is not set
++# CONFIG_MOXA_SMARTIO is not set
++# CONFIG_MOXA_SMARTIO_NEW is not set
++# CONFIG_N_HDLC is not set
++# CONFIG_RISCOM8 is not set
++# CONFIG_SPECIALIX is not set
++# CONFIG_SX is not set
++# CONFIG_RIO is not set
++# CONFIG_STALDRV is not set
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_NR_UARTS=8
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++CONFIG_SERIAL_8250_EXTENDED=y
++CONFIG_SERIAL_8250_MANY_PORTS=y
++# CONFIG_SERIAL_8250_FOURPORT is not set
++# CONFIG_SERIAL_8250_ACCENT is not set
++# CONFIG_SERIAL_8250_BOCA is not set
++# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
++# CONFIG_SERIAL_8250_HUB6 is not set
++CONFIG_SERIAL_8250_SHARE_IRQ=y
++# CONFIG_SERIAL_8250_DETECT_IRQ is not set
++# CONFIG_SERIAL_8250_RSA is not set
++
++#
++# Non-8250 serial port support
++#
++# CONFIG_SERIAL_S3C2410 is not set
++CONFIG_SERIAL_S3C6400=y
++CONFIG_SERIAL_S3C64XX_CONSOLE=y
++# CONFIG_SERIAL_S3C64XX_HS_UART is not set
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++CONFIG_PRINTER=y
++# CONFIG_LP_CONSOLE is not set
++CONFIG_PPDEV=y
++# CONFIG_IPMI_HANDLER is not set
++CONFIG_HW_RANDOM=y
++# CONFIG_NVRAM is not set
++# CONFIG_S3C_ADC is not set
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_DEVPORT=y
++CONFIG_I2C=y
++CONFIG_I2C_BOARDINFO=y
++CONFIG_I2C_CHARDEV=y
++
++#
++# I2C Algorithms
++#
++CONFIG_I2C_ALGOBIT=y
++# CONFIG_I2C_ALGOPCF is not set
++# CONFIG_I2C_ALGOPCA is not set
++
++#
++# I2C Hardware Bus support
++#
++# CONFIG_I2C_ELEKTOR is not set
++# CONFIG_I2C_GPIO is not set
++# CONFIG_I2C_OCORES is not set
++# CONFIG_I2C_PARPORT is not set
++# CONFIG_I2C_PARPORT_LIGHT is not set
++CONFIG_I2C_S3C2410=y
++# CONFIG_I2C_SIMTEC is not set
++# CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_STUB is not set
++# CONFIG_I2C_TINY_USB is not set
++# CONFIG_I2C_PCA_ISA is not set
++
++#
++# Miscellaneous I2C Chip support
++#
++# CONFIG_SENSORS_DS1337 is not set
++# CONFIG_SENSORS_DS1374 is not set
++# CONFIG_DS1682 is not set
++CONFIG_SENSORS_EEPROM=m
++# CONFIG_SENSORS_PCF8574 is not set
++# CONFIG_SENSORS_PCA9539 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_SENSORS_MAX6875 is not set
++# CONFIG_SENSORS_TSL2550 is not set
++# CONFIG_I2C_DEBUG_CORE is not set
++# CONFIG_I2C_DEBUG_ALGO is not set
++# CONFIG_I2C_DEBUG_BUS is not set
++# CONFIG_I2C_DEBUG_CHIP is not set
++
++#
++# SPI support
++#
++CONFIG_SPI=y
++# CONFIG_SPI_DEBUG is not set
++CONFIG_SPI_MASTER=y
++
++#
++# SPI Master Controller Drivers
++#
++CONFIG_SPI_BITBANG=m
++# CONFIG_SPI_BUTTERFLY is not set
++# CONFIG_SPI_LM70_LLP is not set
++CONFIG_SPI_S3C24XX=m
++CONFIG_SPI_S3C24XX_GPIO=m
++# CONFIG_HS_SPI_S3C6410 is not set
++
++#
++# SPI Protocol Masters
++#
++# CONFIG_SPI_AT25 is not set
++# CONFIG_SPI_SPIDEV is not set
++# CONFIG_SPI_TLE62X0 is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++CONFIG_HWMON=y
++CONFIG_HWMON_VID=m
++# CONFIG_SENSORS_AD7418 is not set
++# CONFIG_SENSORS_ADM1021 is not set
++# CONFIG_SENSORS_ADM1025 is not set
++# CONFIG_SENSORS_ADM1026 is not set
++# CONFIG_SENSORS_ADM1029 is not set
++# CONFIG_SENSORS_ADM1031 is not set
++# CONFIG_SENSORS_ADM9240 is not set
++# CONFIG_SENSORS_ADT7470 is not set
++# CONFIG_SENSORS_ATXP1 is not set
++# CONFIG_SENSORS_DS1621 is not set
++# CONFIG_SENSORS_F71805F is not set
++# CONFIG_SENSORS_F71882FG is not set
++# CONFIG_SENSORS_F75375S is not set
++# CONFIG_SENSORS_GL518SM is not set
++# CONFIG_SENSORS_GL520SM is not set
++# CONFIG_SENSORS_IT87 is not set
++# CONFIG_SENSORS_LM63 is not set
++# CONFIG_SENSORS_LM70 is not set
++CONFIG_SENSORS_LM75=m
++# CONFIG_SENSORS_LM77 is not set
++CONFIG_SENSORS_LM78=m
++# CONFIG_SENSORS_LM80 is not set
++# CONFIG_SENSORS_LM83 is not set
++CONFIG_SENSORS_LM85=m
++# CONFIG_SENSORS_LM87 is not set
++# CONFIG_SENSORS_LM90 is not set
++# CONFIG_SENSORS_LM92 is not set
++# CONFIG_SENSORS_LM93 is not set
++# CONFIG_SENSORS_MAX1619 is not set
++# CONFIG_SENSORS_MAX6650 is not set
++# CONFIG_SENSORS_PC87360 is not set
++# CONFIG_SENSORS_PC87427 is not set
++# CONFIG_SENSORS_DME1737 is not set
++# CONFIG_SENSORS_SMSC47M1 is not set
++# CONFIG_SENSORS_SMSC47M192 is not set
++# CONFIG_SENSORS_SMSC47B397 is not set
++# CONFIG_SENSORS_THMC50 is not set
++# CONFIG_SENSORS_VT1211 is not set
++# CONFIG_SENSORS_W83781D is not set
++# CONFIG_SENSORS_W83791D is not set
++# CONFIG_SENSORS_W83792D is not set
++# CONFIG_SENSORS_W83793 is not set
++# CONFIG_SENSORS_W83L785TS is not set
++# CONFIG_SENSORS_W83627HF is not set
++# CONFIG_SENSORS_W83627EHF is not set
++# CONFIG_HWMON_DEBUG_CHIP is not set
++CONFIG_WATCHDOG=y
++# CONFIG_WATCHDOG_NOWAYOUT is not set
++
++#
++# Watchdog Device Drivers
++#
++# CONFIG_SOFT_WATCHDOG is not set
++CONFIG_S3C2410_WATCHDOG=y
++
++#
++# ISA-based Watchdog Cards
++#
++# CONFIG_PCWATCHDOG is not set
++# CONFIG_MIXCOMWD is not set
++# CONFIG_WDT is not set
++
++#
++# USB-based Watchdog Cards
++#
++# CONFIG_USBPCWATCHDOG is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++# CONFIG_DAB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++CONFIG_FB=y
++CONFIG_FIRMWARE_EDID=y
++# CONFIG_FB_DDC is not set
++CONFIG_FB_CFB_FILLRECT=y
++CONFIG_FB_CFB_COPYAREA=y
++CONFIG_FB_CFB_IMAGEBLIT=y
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++CONFIG_FB_MODE_HELPERS=y
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++CONFIG_FB_S3C=y
++CONFIG_FB_S3C_LTE480WV=y
++# CONFIG_FB_S3C_LTV350QV is not set
++# CONFIG_FB_S3C_LTS222QV is not set
++CONFIG_FB_S3C_BPP=y
++# CONFIG_FB_S3C_BPP_8 is not set
++CONFIG_FB_S3C_BPP_16=y
++# CONFIG_FB_S3C_BPP_24 is not set
++# CONFIG_FB_S3C_BPP_32 is not set
++CONFIG_FB_S3C_NUM=1
++# CONFIG_FB_S3C_VIRTUAL_SCREEN is not set
++# CONFIG_FB_S3C_DOUBLE_BUFFERING is not set
++# CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_S3C2410 is not set
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++# CONFIG_MDA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++# CONFIG_LOGO_LINUX_CLUT224 is not set
++CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224=y
++
++#
++# G3D Support
++#
++# CONFIG_G3D is not set
++
++#
++# Sound
++#
++CONFIG_SOUND=y
++
++#
++# Advanced Linux Sound Architecture
++#
++CONFIG_SND=y
++CONFIG_SND_TIMER=y
++CONFIG_SND_PCM=y
++CONFIG_SND_SEQUENCER=y
++# CONFIG_SND_SEQ_DUMMY is not set
++CONFIG_SND_OSSEMUL=y
++CONFIG_SND_MIXER_OSS=y
++CONFIG_SND_PCM_OSS=y
++CONFIG_SND_PCM_OSS_PLUGINS=y
++CONFIG_SND_SEQUENCER_OSS=y
++# CONFIG_SND_DYNAMIC_MINORS is not set
++CONFIG_SND_SUPPORT_OLD_API=y
++CONFIG_SND_VERBOSE_PROCFS=y
++# CONFIG_SND_VERBOSE_PRINTK is not set
++# CONFIG_SND_DEBUG is not set
++
++#
++# Generic devices
++#
++CONFIG_SND_AC97_CODEC=y
++# CONFIG_SND_DUMMY is not set
++# CONFIG_SND_VIRMIDI is not set
++# CONFIG_SND_MTPAV is not set
++# CONFIG_SND_MTS64 is not set
++# CONFIG_SND_SERIAL_U16550 is not set
++# CONFIG_SND_MPU401 is not set
++# CONFIG_SND_PORTMAN2X4 is not set
++
++#
++# ALSA ARM devices
++#
++
++#
++# SPI devices
++#
++
++#
++# USB devices
++#
++# CONFIG_SND_USB_AUDIO is not set
++# CONFIG_SND_USB_CAIAQ is not set
++
++#
++# System on Chip audio support
++#
++CONFIG_SND_SOC_AC97_BUS=y
++CONFIG_SND_SOC=y
++CONFIG_SND_S3C_SOC=y
++CONFIG_SND_S3C6410_SOC_AC97=y
++# CONFIG_SND_S3C6410_SOC_SMDK6410_WM8580 is not set
++CONFIG_SND_S3C64XX_SOC_SMDK6410_WM9713=y
++CONFIG_SOUND_WM9713_INPUT_STREAM_LINE=y
++# CONFIG_SOUND_WM9713_INPUT_STREAM_MIC is not set
++CONFIG_SND_SOC_WM9713=y
++
++#
++# Open Sound System
++#
++# CONFIG_SOUND_PRIME is not set
++CONFIG_AC97_BUS=y
++CONFIG_HID_SUPPORT=y
++CONFIG_HID=y
++# CONFIG_HID_DEBUG is not set
++# CONFIG_HIDRAW is not set
++
++#
++# USB Input Devices
++#
++CONFIG_USB_HID=y
++# CONFIG_USB_HIDINPUT_POWERBOOK is not set
++# CONFIG_HID_FF is not set
++# CONFIG_USB_HIDDEV is not set
++CONFIG_USB_SUPPORT=y
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
++# CONFIG_USB_ARCH_HAS_EHCI is not set
++CONFIG_USB=y
++# CONFIG_USB_DEBUG is not set
++
++#
++# Miscellaneous USB options
++#
++CONFIG_USB_DEVICEFS=y
++CONFIG_USB_DEVICE_CLASS=y
++# CONFIG_USB_DYNAMIC_MINORS is not set
++# CONFIG_USB_OTG is not set
++
++#
++# USB Host Controller Drivers
++#
++# CONFIG_USB_ISP116X_HCD is not set
++CONFIG_USB_OHCI_HCD=y
++# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
++# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
++CONFIG_USB_OHCI_LITTLE_ENDIAN=y
++# CONFIG_USB_SL811_HCD is not set
++# CONFIG_USB_R8A66597_HCD is not set
++
++#
++# USB Device Class drivers
++#
++# CONFIG_USB_ACM is not set
++# CONFIG_USB_PRINTER is not set
++
++#
++# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
++#
++
++#
++# may also be needed; see USB_STORAGE Help for more information
++#
++CONFIG_USB_STORAGE=y
++# CONFIG_USB_STORAGE_DEBUG is not set
++# CONFIG_USB_STORAGE_DATAFAB is not set
++# CONFIG_USB_STORAGE_FREECOM is not set
++# CONFIG_USB_STORAGE_ISD200 is not set
++# CONFIG_USB_STORAGE_DPCM is not set
++# CONFIG_USB_STORAGE_USBAT is not set
++# CONFIG_USB_STORAGE_SDDR09 is not set
++# CONFIG_USB_STORAGE_SDDR55 is not set
++# CONFIG_USB_STORAGE_JUMPSHOT is not set
++# CONFIG_USB_STORAGE_ALAUDA is not set
++# CONFIG_USB_STORAGE_ONETOUCH is not set
++# CONFIG_USB_STORAGE_KARMA is not set
++# CONFIG_USB_LIBUSUAL is not set
++
++#
++# USB Imaging devices
++#
++# CONFIG_USB_MDC800 is not set
++# CONFIG_USB_MICROTEK is not set
++CONFIG_USB_MON=y
++
++#
++# USB port drivers
++#
++# CONFIG_USB_USS720 is not set
++
++#
++# USB Serial Converter support
++#
++# CONFIG_USB_SERIAL is not set
++
++#
++# USB Miscellaneous drivers
++#
++# CONFIG_USB_EMI62 is not set
++# CONFIG_USB_EMI26 is not set
++# CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_AUERSWALD is not set
++# CONFIG_USB_RIO500 is not set
++# CONFIG_USB_LEGOTOWER is not set
++# CONFIG_USB_LCD is not set
++# CONFIG_USB_BERRY_CHARGE is not set
++# CONFIG_USB_LED is not set
++# CONFIG_USB_CYPRESS_CY7C63 is not set
++# CONFIG_USB_CYTHERM is not set
++# CONFIG_USB_PHIDGET is not set
++# CONFIG_USB_IDMOUSE is not set
++# CONFIG_USB_FTDI_ELAN is not set
++# CONFIG_USB_APPLEDISPLAY is not set
++# CONFIG_USB_LD is not set
++# CONFIG_USB_TRANCEVIBRATOR is not set
++# CONFIG_USB_IOWARRIOR is not set
++# CONFIG_USB_TEST is not set
++
++#
++# USB DSL modem support
++#
++
++#
++# USB Gadget Support
++#
++# CONFIG_USB_GADGET is not set
++CONFIG_MMC=y
++# CONFIG_MMC_DEBUG is not set
++# CONFIG_MMC_UNSAFE_RESUME is not set
++
++#
++# MMC/SD Card Drivers
++#
++CONFIG_MMC_BLOCK=y
++CONFIG_MMC_BLOCK_BOUNCE=y
++# CONFIG_SDIO_UART is not set
++
++#
++# MMC/SD Host Controller Drivers
++#
++CONFIG_HSMMC_S3C=y
++# CONFIG_USE_MMC_AS_ROOT is not set
++# CONFIG_HSMMC_S3C_IRQ_WORKAROUND is not set
++CONFIG_HSMMC_SCATTERGATHER=y
++# CONFIG_S3CMMC_DEBUG is not set
++# CONFIG_MMC_SPI is not set
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=m
++
++#
++# LED drivers
++#
++CONFIG_LEDS_S3C24XX=m
++# CONFIG_LEDS_GPIO is not set
++
++#
++# LED Triggers
++#
++CONFIG_LEDS_TRIGGERS=y
++CONFIG_LEDS_TRIGGER_TIMER=m
++CONFIG_LEDS_TRIGGER_HEARTBEAT=m
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# I2C RTC drivers
++#
++# CONFIG_RTC_DRV_DS1307 is not set
++# CONFIG_RTC_DRV_DS1374 is not set
++# CONFIG_RTC_DRV_DS1672 is not set
++# CONFIG_RTC_DRV_MAX6900 is not set
++# CONFIG_RTC_DRV_RS5C372 is not set
++# CONFIG_RTC_DRV_ISL1208 is not set
++# CONFIG_RTC_DRV_X1205 is not set
++# CONFIG_RTC_DRV_PCF8563 is not set
++# CONFIG_RTC_DRV_PCF8583 is not set
++# CONFIG_RTC_DRV_M41T80 is not set
++
++#
++# SPI RTC drivers
++#
++# CONFIG_RTC_DRV_RS5C348 is not set
++# CONFIG_RTC_DRV_MAX6902 is not set
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_S3C=y
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++CONFIG_EXT3_FS=y
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
++# CONFIG_EXT4DEV_FS is not set
++CONFIG_JBD=y
++CONFIG_FS_MBCACHE=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_MINIX_FS is not set
++CONFIG_ROMFS_FS=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++CONFIG_MSDOS_FS=y
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
++# CONFIG_JFFS2_SUMMARY is not set
++# CONFIG_JFFS2_FS_XATTR is not set
++# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
++CONFIG_JFFS2_ZLIB=y
++# CONFIG_JFFS2_LZO is not set
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++CONFIG_CRAMFS=y
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=y
++# CONFIG_NFS_V3 is not set
++# CONFIG_NFS_V4 is not set
++# CONFIG_NFS_DIRECTIO is not set
++# CONFIG_NFSD is not set
++CONFIG_ROOT_NFS=y
++CONFIG_LOCKD=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=y
++# CONFIG_SUNRPC_BIND34 is not set
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++CONFIG_PARTITION_ADVANCED=y
++# CONFIG_ACORN_PARTITION is not set
++# CONFIG_OSF_PARTITION is not set
++# CONFIG_AMIGA_PARTITION is not set
++# CONFIG_ATARI_PARTITION is not set
++# CONFIG_MAC_PARTITION is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_BSD_DISKLABEL=y
++# CONFIG_MINIX_SUBPARTITION is not set
++CONFIG_SOLARIS_X86_PARTITION=y
++# CONFIG_UNIXWARE_DISKLABEL is not set
++# CONFIG_LDM_PARTITION is not set
++# CONFIG_SGI_PARTITION is not set
++# CONFIG_ULTRIX_PARTITION is not set
++# CONFIG_SUN_PARTITION is not set
++# CONFIG_KARMA_PARTITION is not set
++# CONFIG_EFI_PARTITION is not set
++# CONFIG_SYSV68_PARTITION is not set
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++CONFIG_NLS_ASCII=y
++CONFIG_NLS_ISO8859_1=y
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++CONFIG_INSTRUMENTATION=y
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_MAGIC_SYSRQ=y
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_TIMER_STATS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++CONFIG_DEBUG_MUTEXES=y
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++CONFIG_FRAME_POINTER=y
++CONFIG_FORCED_INLINING=y
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_SAMPLES is not set
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++CONFIG_DEBUG_LL=y
++# CONFIG_DEBUG_ICEDCC is not set
++CONFIG_DEBUG_S3C_PORT=y
++CONFIG_DEBUG_S3C_UART=0
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_CRYPTO is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
+index 33e6cc2..d452dbf 100644
+--- a/arch/arm/kernel/entry-common.S
++++ b/arch/arm/kernel/entry-common.S
+@@ -32,7 +32,9 @@ ret_fast_syscall:
+ @ fast_restore_user_regs
+ ldr r1, [sp, #S_OFF + S_PSR] @ get calling cpsr
+ ldr lr, [sp, #S_OFF + S_PC]! @ get pc
++
+ msr spsr_cxsf, r1 @ save in spsr_svc
++
+ ldmdb sp, {r1 - lr}^ @ get calling r1 - lr
+ mov r0, r0
+ add sp, sp, #S_FRAME_SIZE - S_PC
+@@ -71,11 +73,14 @@ no_work_pending:
+ @ slow_restore_user_regs
+ ldr r1, [sp, #S_PSR] @ get calling cpsr
+ ldr lr, [sp, #S_PC]! @ get pc
++
+ msr spsr_cxsf, r1 @ save in spsr_svc
++
+ ldmdb sp, {r0 - lr}^ @ get calling r1 - lr
+ mov r0, r0
+ add sp, sp, #S_FRAME_SIZE - S_PC
+ movs pc, lr @ return & move spsr_svc into cpsr
++
+
+ /*
+ * This is how we return from a fork.
+diff --git a/arch/arm/mach-s3c2410/Makefile.boot b/arch/arm/mach-s3c2410/Makefile.boot
+index 7dab2a0..3facee4 100644
+--- a/arch/arm/mach-s3c2410/Makefile.boot
++++ b/arch/arm/mach-s3c2410/Makefile.boot
+@@ -1,3 +1,6 @@
+- zreladdr-y := 0x30008000
+-params_phys-y := 0x30000100
+-
++ zreladdr-$(CONFIG_PLAT_S3C24XX) := 0x30008000
++params_phys-$(CONFIG_PLAT_S3C24XX) := 0x30000100
++ zreladdr-$(CONFIG_PLAT_S3C64XX) := 0x50008000
++params_phys-$(CONFIG_PLAT_S3C64XX) := 0x50000100
++ zreladdr-$(CONFIG_PLAT_S5PC1XX) := 0x20008000
++params_phys-$(CONFIG_PLAT_S5PC1XX) := 0x20000100
+diff --git a/arch/arm/mach-s3c2416/Kconfig b/arch/arm/mach-s3c2416/Kconfig
+new file mode 100644
+index 0000000..f779e41
+--- /dev/null
++++ b/arch/arm/mach-s3c2416/Kconfig
+@@ -0,0 +1,28 @@
++# arch/arm/mach-s3c2416/Kconfig
++#
++# Copyright 2007 Simtec Electronics
++#
++# Licensed under GPLv2
++
++config CPU_S3C2416
++ bool
++ depends on ARCH_S3C2410
++ select S3C2416_DMA if S3C2410_DMA
++ help
++ Support for the S3C2416 SoC from the S3C24XX line
++
++config S3C2416_DMA
++ bool
++ depends on CPU_S3C2416
++ help
++ Internal config node for S3C2416 DMA support
++
++menu "S3C2416 Machines"
++
++config MACH_SMDK2416
++ bool "SMDK2416"
++ select CPU_S3C2416
++ select MACH_SMDK
++ help
++ Say Y here if you are using an SMDK2416
++endmenu
+diff --git a/arch/arm/mach-s3c2416/Makefile b/arch/arm/mach-s3c2416/Makefile
+new file mode 100644
+index 0000000..1df4f5f
+--- /dev/null
++++ b/arch/arm/mach-s3c2416/Makefile
+@@ -0,0 +1,20 @@
++# arch/arm/mach-s3c2416/Makefile
++#
++# Copyright 2007 Simtec Electronics
++#
++# Licensed under GPLv2
++
++obj-y :=
++obj-m :=
++obj-n :=
++obj- :=
++
++obj-$(CONFIG_CPU_S3C2416) += s3c2416.o
++obj-$(CONFIG_CPU_S3C2416) += ../mach-s3c2443/irq.o
++obj-$(CONFIG_CPU_S3C2416) += clock.o
++
++obj-$(CONFIG_S3C2416_DMA) += ../mach-s3c2443/dma.o
++
++# Machine support
++
++obj-$(CONFIG_MACH_SMDK2416) += mach-smdk2416.o
+diff --git a/arch/arm/mach-s3c2416/clock.c b/arch/arm/mach-s3c2416/clock.c
+new file mode 100644
+index 0000000..8f54c2a
+--- /dev/null
++++ b/arch/arm/mach-s3c2416/clock.c
+@@ -0,0 +1,1006 @@
++/* linux/arch/arm/mach-s3c2416/clock.c
++ *
++ * Copyright (c) 2007 Simtec Electronics
++ * Ben Dooks <ben@simtec.co.uk>
++ *
++ * S3C2416 Clock control support
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++*/
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/list.h>
++#include <linux/errno.h>
++#include <linux/err.h>
++#include <linux/sysdev.h>
++#include <linux/clk.h>
++#include <linux/mutex.h>
++#include <linux/delay.h>
++#include <linux/serial_core.h>
++
++#include <asm/mach/map.h>
++
++#include <asm/hardware.h>
++#include <asm/io.h>
++
++#include <asm/arch/regs-s3c-clock.h>
++
++#include <asm/plat-s3c24xx/s3c2416.h>
++#include <asm/plat-s3c24xx/clock.h>
++#include <asm/plat-s3c24xx/cpu.h>
++
++/* We currently have to assume that the system is running
++ * from the XTPll input, and that all ***REFCLKs are being
++ * fed from it, as we cannot read the state of OM[4] from
++ * software.
++ *
++ * It would be possible for each board initialisation to
++ * set the correct muxing at initialisation
++*/
++
++static int s3c2416_clkcon_enable_h(struct clk *clk, int enable)
++{
++ unsigned int clocks = clk->ctrlbit;
++ unsigned long clkcon;
++
++ clkcon = __raw_readl(S3C2443_HCLKCON);
++
++ if (enable)
++ clkcon |= clocks;
++ else
++ clkcon &= ~clocks;
++
++ __raw_writel(clkcon, S3C2443_HCLKCON);
++
++ return 0;
++}
++
++static int s3c2416_clkcon_enable_p(struct clk *clk, int enable)
++{
++ unsigned int clocks = clk->ctrlbit;
++ unsigned long clkcon;
++
++ clkcon = __raw_readl(S3C2443_PCLKCON);
++
++ if (enable)
++ clkcon |= clocks;
++ else
++ clkcon &= ~clocks;
++
++ __raw_writel(clkcon, S3C2443_HCLKCON);
++
++ return 0;
++}
++
++static int s3c2416_clkcon_enable_s(struct clk *clk, int enable)
++{
++ unsigned int clocks = clk->ctrlbit;
++ unsigned long clkcon;
++
++ clkcon = __raw_readl(S3C2443_SCLKCON);
++
++ if (enable)
++ clkcon |= clocks;
++ else
++ clkcon &= ~clocks;
++
++ __raw_writel(clkcon, S3C2443_SCLKCON);
++
++ return 0;
++}
++
++static unsigned long s3c2416_roundrate_clksrc(struct clk *clk,
++ unsigned long rate,
++ unsigned int max)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ int div;
++
++ if (rate > parent_rate)
++ return parent_rate;
++
++ /* note, we remove the +/- 1 calculations as they cancel out */
++
++ div = (rate / parent_rate);
++
++ if (div < 1)
++ div = 1;
++ else if (div > max)
++ div = max;
++
++ return parent_rate / div;
++}
++
++static unsigned long s3c2416_roundrate_clksrc4(struct clk *clk,
++ unsigned long rate)
++{
++ return s3c2416_roundrate_clksrc(clk, rate, 4);
++}
++
++static unsigned long s3c2416_roundrate_clksrc16(struct clk *clk,
++ unsigned long rate)
++{
++ return s3c2416_roundrate_clksrc(clk, rate, 16);
++}
++
++static unsigned long s3c2416_roundrate_clksrc256(struct clk *clk,
++ unsigned long rate)
++{
++ return s3c2416_roundrate_clksrc(clk, rate, 256);
++}
++
++/* clock selections */
++
++/* CPU EXTCLK input */
++static struct clk clk_ext = {
++ .name = "ext",
++ .id = -1,
++};
++
++static struct clk clk_mpllref = {
++ .name = "mpllref",
++ .parent = &clk_xtal,
++ .id = -1,
++};
++
++#if 0
++static struct clk clk_mpll = {
++ .name = "mpll",
++ .parent = &clk_mpllref,
++ .id = -1,
++};
++#endif
++
++static struct clk clk_epllref;
++
++static struct clk clk_epll = {
++ .name = "epll",
++ .parent = &clk_epllref,
++ .id = -1,
++};
++
++static struct clk clk_i2s_ext = {
++ .name = "i2s-ext",
++ .id = -1,
++};
++
++static int s3c2416_setparent_epllref(struct clk *clk, struct clk *parent)
++{
++ unsigned long clksrc = __raw_readl(S3C2443_CLKSRC);
++
++ clksrc &= ~S3C2443_CLKSRC_EPLLREF_MASK;
++
++ if (parent == &clk_xtal)
++ clksrc |= S3C2443_CLKSRC_EPLLREF_XTAL;
++ else if (parent == &clk_ext)
++ clksrc |= S3C2443_CLKSRC_EPLLREF_EXTCLK;
++ else if (parent != &clk_mpllref)
++ return -EINVAL;
++
++ __raw_writel(clksrc, S3C2443_CLKSRC);
++ clk->parent = parent;
++
++ return 0;
++}
++
++static struct clk clk_epllref = {
++ .name = "epllref",
++ .id = -1,
++ .set_parent = s3c2416_setparent_epllref,
++};
++
++static unsigned long s3c2416_getrate_mdivclk(struct clk *clk)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long div = __raw_readl(S3C2443_CLKDIV0);
++
++ div &= S3C2443_CLKDIV0_EXTDIV_MASK;
++ div >>= (S3C2443_CLKDIV0_EXTDIV_SHIFT-1); /* x2 */
++
++ return parent_rate / (div + 1);
++}
++
++static struct clk clk_mdivclk = {
++ .name = "mdivclk",
++ .parent = &clk_mpllref,
++ .id = -1,
++ .get_rate = s3c2416_getrate_mdivclk,
++};
++
++
++static int s3c2416_setparent_msysclk(struct clk *clk, struct clk *parent)
++{
++ unsigned long clksrc = __raw_readl(S3C2443_CLKSRC);
++
++ clksrc &= ~(S3C2443_CLKSRC_MSYSCLK_MPLL |
++ S3C2443_CLKSRC_EXTCLK_DIV);
++
++ if (parent == &clk_mpll)
++ clksrc |= S3C2443_CLKSRC_MSYSCLK_MPLL;
++ else if (parent == &clk_mdivclk)
++ clksrc |= S3C2443_CLKSRC_EXTCLK_DIV;
++ else if (parent != &clk_mpllref)
++ return -EINVAL;
++
++ __raw_writel(clksrc, S3C2443_CLKSRC);
++ clk->parent = parent;
++
++ return 0;
++}
++
++static struct clk clk_msysclk = {
++ .name = "msysclk",
++ .parent = &clk_xtal,
++ .id = -1,
++ .set_parent = s3c2416_setparent_msysclk,
++};
++
++
++/* esysclk
++ *
++ * this is sourced from either the EPLL or the EPLLref clock
++*/
++
++static int s3c2416_setparent_esysclk(struct clk *clk, struct clk *parent)
++{
++ unsigned long clksrc = __raw_readl(S3C2443_CLKSRC);
++
++ if (parent == &clk_epll)
++ clksrc |= S3C2443_CLKSRC_ESYSCLK_EPLL;
++ else if (parent == &clk_epllref)
++ clksrc &= ~S3C2443_CLKSRC_ESYSCLK_EPLL;
++ else
++ return -EINVAL;
++
++ __raw_writel(clksrc, S3C2443_CLKSRC);
++ clk->parent = parent;
++
++ return 0;
++}
++
++static struct clk clk_esysclk = {
++ .name = "esysclk",
++ .parent = &clk_epll,
++ .id = -1,
++ .set_parent = s3c2416_setparent_esysclk,
++};
++
++/* uartclk
++ *
++ * UART baud-rate clock sourced from esysclk via a divisor
++*/
++
++static unsigned long s3c2416_getrate_uart(struct clk *clk)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long div = __raw_readl(S3C2443_CLKDIV1);
++
++ div &= S3C2443_CLKDIV1_UARTDIV_MASK;
++ div >>= S3C2443_CLKDIV1_UARTDIV_SHIFT;
++
++ return parent_rate / (div + 1);
++}
++
++
++static int s3c2416_setrate_uart(struct clk *clk, unsigned long rate)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long clkdivn = __raw_readl(S3C2443_CLKDIV1);
++
++ rate = s3c2416_roundrate_clksrc16(clk, rate);
++ rate = parent_rate / rate;
++
++ clkdivn &= ~S3C2443_CLKDIV1_UARTDIV_MASK;
++ clkdivn |= (rate - 1) << S3C2443_CLKDIV1_UARTDIV_SHIFT;
++
++ __raw_writel(clkdivn, S3C2443_CLKDIV1);
++ return 0;
++}
++
++static struct clk clk_uart = {
++ .name = "uartclk",
++ .id = -1,
++ .parent = &clk_esysclk,
++ .get_rate = s3c2416_getrate_uart,
++ .set_rate = s3c2416_setrate_uart,
++ .round_rate = s3c2416_roundrate_clksrc16,
++};
++
++/* hsspi
++ *
++ * high-speed spi clock, sourced from esysclk
++*/
++
++static unsigned long s3c2416_getrate_hsspi(struct clk *clk)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long div = __raw_readl(S3C2443_CLKDIV1);
++
++ div &= S3C2443_CLKDIV1_HSSPIDIV_MASK;
++ div >>= S3C2443_CLKDIV1_HSSPIDIV_SHIFT;
++
++ return parent_rate / (div + 1);
++}
++
++
++static int s3c2416_setrate_hsspi(struct clk *clk, unsigned long rate)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long clkdivn = __raw_readl(S3C2443_CLKDIV1);
++
++ rate = s3c2416_roundrate_clksrc4(clk, rate);
++ rate = parent_rate / rate;
++
++ clkdivn &= ~S3C2443_CLKDIV1_HSSPIDIV_MASK;
++ clkdivn |= (rate - 1) << S3C2443_CLKDIV1_HSSPIDIV_SHIFT;
++
++ __raw_writel(clkdivn, S3C2443_CLKDIV1);
++ return 0;
++}
++
++static struct clk clk_hsspi = {
++ .name = "hsspi",
++ .id = -1,
++ .parent = &clk_esysclk,
++ .ctrlbit = S3C2443_SCLKCON_HSSPICLK,
++ .enable = s3c2416_clkcon_enable_s,
++ .get_rate = s3c2416_getrate_hsspi,
++ .set_rate = s3c2416_setrate_hsspi,
++ .round_rate = s3c2416_roundrate_clksrc4,
++};
++
++/* usbhost
++ *
++ * usb host bus-clock, usually 48MHz to provide USB bus clock timing
++*/
++
++static unsigned long s3c2416_getrate_usbhost(struct clk *clk)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long div = __raw_readl(S3C2443_CLKDIV1);
++
++ div &= S3C2443_CLKDIV1_USBHOSTDIV_MASK;
++ div >>= S3C2443_CLKDIV1_USBHOSTDIV_SHIFT;
++
++ return parent_rate / (div + 1);
++}
++
++static int s3c2416_setrate_usbhost(struct clk *clk, unsigned long rate)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long clkdivn = __raw_readl(S3C2443_CLKDIV1);
++
++ rate = s3c2416_roundrate_clksrc4(clk, rate);
++ rate = parent_rate / rate;
++
++ clkdivn &= ~S3C2443_CLKDIV1_USBHOSTDIV_MASK;
++ clkdivn |= (rate - 1) << S3C2443_CLKDIV1_USBHOSTDIV_SHIFT;
++
++ __raw_writel(clkdivn, S3C2443_CLKDIV1);
++ return 0;
++}
++
++static struct clk clk_usb_bus_host = {
++ .name = "usb-bus-host-parent",
++ .id = -1,
++ .parent = &clk_esysclk,
++ .ctrlbit = S3C2443_SCLKCON_USBHOST,
++ .enable = s3c2416_clkcon_enable_s,
++ .get_rate = s3c2416_getrate_usbhost,
++ .set_rate = s3c2416_setrate_usbhost,
++ .round_rate = s3c2416_roundrate_clksrc4,
++};
++
++/* clk_hsmcc_div
++ *
++ * this clock is sourced from epll, and is fed through a divider,
++ * to a mux controlled by sclkcon where either it or a extclk can
++ * be fed to the hsmmc block
++*/
++
++static unsigned long s3c2416_getrate_hsmmc_div(struct clk *clk)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long div = __raw_readl(S3C2443_CLKDIV1);
++
++ div &= S3C2443_CLKDIV1_HSMMCDIV_MASK;
++ div >>= S3C2443_CLKDIV1_HSMMCDIV_SHIFT;
++
++ return parent_rate / (div + 1);
++}
++
++static int s3c2416_setrate_hsmmc_div(struct clk *clk, unsigned long rate)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long clkdivn = __raw_readl(S3C2443_CLKDIV1);
++
++ rate = s3c2416_roundrate_clksrc4(clk, rate);
++ rate = parent_rate / rate;
++
++ clkdivn &= ~S3C2443_CLKDIV1_HSMMCDIV_MASK;
++ clkdivn |= (rate - 1) << S3C2443_CLKDIV1_HSMMCDIV_SHIFT;
++
++ __raw_writel(clkdivn, S3C2443_CLKDIV1);
++ return 0;
++}
++
++static struct clk clk_hsmmc_div = {
++ .name = "hsmmc-div",
++ .id = -1,
++ .parent = &clk_esysclk,
++ .get_rate = s3c2416_getrate_hsmmc_div,
++ .set_rate = s3c2416_setrate_hsmmc_div,
++ .round_rate = s3c2416_roundrate_clksrc4,
++};
++
++static int s3c2416_setparent_hsmmc(struct clk *clk, struct clk *parent)
++{
++ unsigned long clksrc = __raw_readl(S3C2443_SCLKCON);
++
++ clksrc &= ~(S3C2443_SCLKCON_HSMMCCLK_EXT |
++ S3C2443_SCLKCON_HSMMCCLK_EPLL);
++
++ if (parent == &clk_epll)
++ clksrc |= S3C2443_SCLKCON_HSMMCCLK_EPLL;
++ else if (parent == &clk_ext)
++ clksrc |= S3C2443_SCLKCON_HSMMCCLK_EXT;
++ else
++ return -EINVAL;
++
++ if (clk->usage > 0) {
++ __raw_writel(clksrc, S3C2443_SCLKCON);
++ }
++
++ clk->parent = parent;
++ return 0;
++}
++
++static int s3c2416_enable_hsmmc(struct clk *clk, int enable)
++{
++ return s3c2416_setparent_hsmmc(clk, clk->parent);
++}
++
++static struct clk clk_hsmmc = {
++ .name = "hsmmc-if",
++ .id = -1,
++ .parent = &clk_hsmmc_div,
++ .enable = s3c2416_enable_hsmmc,
++ .set_parent = s3c2416_setparent_hsmmc,
++};
++
++/* i2s_eplldiv
++ *
++ * this clock is the output from the i2s divisor of esysclk
++*/
++
++static unsigned long s3c2416_getrate_i2s_eplldiv(struct clk *clk)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long div = __raw_readl(S3C2443_CLKDIV1);
++
++ div &= S3C2443_CLKDIV1_I2SDIV_MASK;
++ div >>= S3C2443_CLKDIV1_I2SDIV_SHIFT;
++
++ return parent_rate / (div + 1);
++}
++
++static int s3c2416_setrate_i2s_eplldiv(struct clk *clk, unsigned long rate)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long clkdivn = __raw_readl(S3C2443_CLKDIV1);
++
++ rate = s3c2416_roundrate_clksrc16(clk, rate);
++ rate = parent_rate / rate;
++
++ clkdivn &= ~S3C2443_CLKDIV1_I2SDIV_MASK;
++ clkdivn |= (rate - 1) << S3C2443_CLKDIV1_I2SDIV_SHIFT;
++
++ __raw_writel(clkdivn, S3C2443_CLKDIV1);
++ return 0;
++}
++
++static struct clk clk_i2s_eplldiv = {
++ .name = "i2s-eplldiv",
++ .id = -1,
++ .parent = &clk_esysclk,
++ .get_rate = s3c2416_getrate_i2s_eplldiv,
++ .set_rate = s3c2416_setrate_i2s_eplldiv,
++ .round_rate = s3c2416_roundrate_clksrc16,
++};
++
++/* i2s-ref
++ *
++ * i2s bus reference clock, selectable from external, esysclk or epllref
++*/
++
++static int s3c2416_setparent_i2s(struct clk *clk, struct clk *parent)
++{
++ unsigned long clksrc = __raw_readl(S3C2443_CLKSRC);
++
++ clksrc &= ~S3C2443_CLKSRC_I2S_MASK;
++
++ if (parent == &clk_epllref)
++ clksrc |= S3C2443_CLKSRC_I2S_EPLLREF;
++ else if (parent == &clk_i2s_ext)
++ clksrc |= S3C2443_CLKSRC_I2S_EXT;
++ else if (parent != &clk_i2s_eplldiv)
++ return -EINVAL;
++
++ clk->parent = parent;
++ __raw_writel(clksrc, S3C2443_CLKSRC);
++
++ return 0;
++}
++
++static struct clk clk_i2s = {
++ .name = "i2s-if",
++ .id = -1,
++ .parent = &clk_i2s_eplldiv,
++ .ctrlbit = S3C2443_SCLKCON_I2SCLK,
++ .enable = s3c2416_clkcon_enable_s,
++ .set_parent = s3c2416_setparent_i2s,
++};
++
++
++/* display-if
++ *
++ * display interface clock, divided from esysclk
++*/
++
++static unsigned long s3c2416_getrate_display(struct clk *clk)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long div = __raw_readl(S3C2443_CLKDIV1);
++
++ div &= S3C2443_CLKDIV1_DISPDIV_MASK;
++ div >>= S3C2443_CLKDIV1_DISPDIV_SHIFT;
++
++ return parent_rate / (div + 1);
++}
++
++static int s3c2416_setrate_display(struct clk *clk, unsigned long rate)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long clkdivn = __raw_readl(S3C2443_CLKDIV1);
++
++ rate = s3c2416_roundrate_clksrc256(clk, rate);
++ rate = parent_rate / rate;
++
++ clkdivn &= ~S3C2443_CLKDIV1_UARTDIV_MASK;
++ clkdivn |= (rate - 1) << S3C2443_CLKDIV1_UARTDIV_SHIFT;
++
++ __raw_writel(clkdivn, S3C2443_CLKDIV1);
++ return 0;
++}
++
++static struct clk clk_display = {
++ .name = "display-if",
++ .id = -1,
++ .parent = &clk_esysclk,
++ .ctrlbit = S3C2443_SCLKCON_DISPCLK,
++ .enable = s3c2416_clkcon_enable_s,
++ .get_rate = s3c2416_getrate_display,
++ .set_rate = s3c2416_setrate_display,
++ .round_rate = s3c2416_roundrate_clksrc256,
++};
++
++/* standard clock definitions */
++
++static struct clk init_clocks_disable[] = {
++ {
++ .name = "nand",
++ .id = -1,
++ .parent = &clk_h,
++ }, {
++ .name = "sdi",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c2416_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_SDI,
++ }, {
++ .name = "adc",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c2416_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_ADC,
++ }, {
++ .name = "i2c",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c2416_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_IIC,
++ }, {
++ .name = "iis",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c2416_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_IIS,
++ }, {
++ .name = "spi",
++ .id = 0,
++ .parent = &clk_p,
++ .enable = s3c2416_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_SPI0,
++ }, {
++ .name = "spi",
++ .id = 1,
++ .parent = &clk_p,
++ .enable = s3c2416_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_SPI1,
++ }
++};
++
++static struct clk init_clocks[] = {
++ {
++ .name = "dma",
++ .id = 0,
++ .parent = &clk_h,
++ .enable = s3c2416_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_DMA0,
++ }, {
++ .name = "dma",
++ .id = 1,
++ .parent = &clk_h,
++ .enable = s3c2416_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_DMA1,
++ }, {
++ .name = "dma",
++ .id = 2,
++ .parent = &clk_h,
++ .enable = s3c2416_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_DMA2,
++ }, {
++ .name = "dma",
++ .id = 3,
++ .parent = &clk_h,
++ .enable = s3c2416_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_DMA3,
++ }, {
++ .name = "dma",
++ .id = 4,
++ .parent = &clk_h,
++ .enable = s3c2416_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_DMA4,
++ }, {
++ .name = "dma",
++ .id = 5,
++ .parent = &clk_h,
++ .enable = s3c2416_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_DMA5,
++ }, {
++ .name = "lcd",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c2416_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_LCDC,
++ }, {
++ .name = "gpio",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c2416_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_GPIO,
++ }, {
++ .name = "usb-host",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c2416_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_USBH,
++ }, {
++ .name = "usb-device",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c2416_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_USBD,
++ }, {
++ .name = "hsmmc",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c2416_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_HSMMC,
++ }, {
++ .name = "cfc",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c2416_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_CFC,
++ }, {
++ .name = "ssmc",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c2416_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_SSMC,
++ }, {
++ .name = "timers",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c2416_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_PWMT,
++ }, {
++ .name = "uart",
++ .id = 0,
++ .parent = &clk_p,
++ .enable = s3c2416_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_UART0,
++ }, {
++ .name = "uart",
++ .id = 1,
++ .parent = &clk_p,
++ .enable = s3c2416_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_UART1,
++ }, {
++ .name = "uart",
++ .id = 2,
++ .parent = &clk_p,
++ .enable = s3c2416_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_UART2,
++ }, {
++ .name = "uart",
++ .id = 3,
++ .parent = &clk_p,
++ .enable = s3c2416_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_UART3,
++ }, {
++ .name = "rtc",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c2416_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_RTC,
++ }, {
++ .name = "watchdog",
++ .id = -1,
++ .parent = &clk_p,
++ .ctrlbit = S3C2443_PCLKCON_WDT,
++ }, {
++ .name = "usb-bus-host",
++ .id = -1,
++ .parent = &clk_usb_bus_host,
++ }, {
++ .name = "ac97",
++ .id = -1,
++ .parent = &clk_p,
++ .ctrlbit = S3C2443_PCLKCON_AC97,
++ }, {
++ .name = "hsmmc",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c2416_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_HSMMC
++ }, {
++ .name = "hsmmc-epll",
++ .id = -1,
++ .parent = &clk_epll,
++ }, {
++ .name = "hsmmc-ext",
++ .id = -1,
++ .parent = &clk_ext,
++ .enable = s3c2416_clkcon_enable_s,
++ .ctrlbit = S3C2443_SCLKCON_HSMMCCLK_EXT,
++ .rate = 12 * 1000 * 1000
++ },
++};
++
++/* clocks to add where we need to check their parentage */
++
++/* s3c2416_clk_initparents
++ *
++ * Initialise the parents for the clocks that we get at start-time
++*/
++
++static int __init clk_init_set_parent(struct clk *clk, struct clk *parent)
++{
++ printk(KERN_DEBUG "clock %s: parent %s\n", clk->name, parent->name);
++ return clk_set_parent(clk, parent);
++}
++
++static void __init s3c2416_clk_initparents(void)
++{
++ unsigned long clksrc = __raw_readl(S3C2443_CLKSRC);
++ struct clk *parent;
++
++ switch (clksrc & S3C2443_CLKSRC_EPLLREF_MASK) {
++ case S3C2443_CLKSRC_EPLLREF_EXTCLK:
++ parent = &clk_ext;
++ break;
++
++ case S3C2443_CLKSRC_EPLLREF_XTAL:
++ default:
++ parent = &clk_xtal;
++ break;
++
++ case S3C2443_CLKSRC_EPLLREF_MPLLREF:
++ case S3C2443_CLKSRC_EPLLREF_MPLLREF2:
++ parent = &clk_mpllref;
++ break;
++ }
++
++ clk_init_set_parent(&clk_epllref, parent);
++
++ switch (clksrc & S3C2443_CLKSRC_I2S_MASK) {
++ case S3C2443_CLKSRC_I2S_EXT:
++ parent = &clk_i2s_ext;
++ break;
++
++ case S3C2443_CLKSRC_I2S_EPLLDIV:
++ default:
++ parent = &clk_i2s_eplldiv;
++ break;
++
++ case S3C2443_CLKSRC_I2S_EPLLREF:
++ case S3C2443_CLKSRC_I2S_EPLLREF3:
++ parent = &clk_epllref;
++ }
++
++ clk_init_set_parent(&clk_i2s, &clk_epllref);
++
++ /* esysclk source */
++
++ parent = (clksrc & S3C2443_CLKSRC_ESYSCLK_EPLL) ?
++ &clk_epll : &clk_epllref;
++
++ clk_init_set_parent(&clk_esysclk, parent);
++
++ /* msysclk source */
++
++ if (clksrc & S3C2443_CLKSRC_MSYSCLK_MPLL) {
++ parent = &clk_mpll;
++ } else {
++ parent = (clksrc & S3C2443_CLKSRC_EXTCLK_DIV) ?
++ &clk_mdivclk : &clk_mpllref;
++ }
++
++ clk_init_set_parent(&clk_msysclk, parent);
++}
++
++/* armdiv divisor table */
++
++static unsigned int armdiv[16] = {
++ [S3C2443_CLKDIV0_ARMDIV_1 >> S3C2443_CLKDIV0_ARMDIV_SHIFT] = 1,
++ [S3C2443_CLKDIV0_ARMDIV_2 >> S3C2443_CLKDIV0_ARMDIV_SHIFT] = 2,
++ [S3C2443_CLKDIV0_ARMDIV_3 >> S3C2443_CLKDIV0_ARMDIV_SHIFT] = 3,
++ [S3C2443_CLKDIV0_ARMDIV_4 >> S3C2443_CLKDIV0_ARMDIV_SHIFT] = 4,
++ [S3C2443_CLKDIV0_ARMDIV_6 >> S3C2443_CLKDIV0_ARMDIV_SHIFT] = 6,
++ [S3C2443_CLKDIV0_ARMDIV_8 >> S3C2443_CLKDIV0_ARMDIV_SHIFT] = 8,
++ [S3C2443_CLKDIV0_ARMDIV_12 >> S3C2443_CLKDIV0_ARMDIV_SHIFT] = 12,
++ [S3C2443_CLKDIV0_ARMDIV_16 >> S3C2443_CLKDIV0_ARMDIV_SHIFT] = 16,
++};
++
++static inline unsigned int s3c2416_fclk_div(unsigned long clkcon0)
++{
++ clkcon0 &= S3C2443_CLKDIV0_ARMDIV_MASK;
++
++ return armdiv[clkcon0 >> S3C2443_CLKDIV0_ARMDIV_SHIFT];
++}
++
++static inline unsigned long s3c2416_get_prediv(unsigned long clkcon0)
++{
++ clkcon0 &= S3C2443_CLKDIV0_PREDIV_MASK;
++ clkcon0 >>= S3C2443_CLKDIV0_PREDIV_SHIFT;
++
++ return clkcon0 + 1;
++}
++
++/* clocks to add straight away */
++
++static struct clk *clks[] __initdata = {
++ &clk_ext,
++ &clk_epll,
++ &clk_usb_bus_host,
++ &clk_usb_bus,
++ &clk_esysclk,
++ &clk_epllref,
++ &clk_mpllref,
++ &clk_msysclk,
++ &clk_uart,
++ &clk_display,
++ &clk_i2s_eplldiv,
++ &clk_i2s,
++ &clk_hsspi,
++ &clk_hsmmc_div,
++ &clk_hsmmc,
++};
++
++void __init s3c2416_init_clocks(int xtal)
++{
++ unsigned long epllcon = __raw_readl(S3C2443_EPLLCON);
++ unsigned long mpllcon = __raw_readl(S3C2443_MPLLCON);
++ unsigned long clkdiv0 = __raw_readl(S3C2443_CLKDIV0);
++ unsigned long pll;
++ unsigned long fclk;
++ unsigned long hclk;
++ unsigned long pclk;
++ struct clk *clkp;
++ int ret;
++ int ptr;
++
++ pll = s3c2443_get_mpll(mpllcon, xtal);
++
++ fclk = pll / s3c2416_fclk_div(clkdiv0);
++ hclk = pll / s3c2416_get_prediv(clkdiv0);
++ hclk = hclk / ((clkdiv0 & S3C2443_CLKDIV0_HALF_HCLK) ? 2 : 1);
++ pclk = hclk / ((clkdiv0 & S3C2443_CLKDIV0_HALF_PCLK) ? 2 : 1);
++
++ s3c24xx_setup_clocks(xtal, fclk, hclk, pclk);
++
++ printk("S3C2416: mpll %s %ld.%03ld MHz, cpu %ld.%03ld MHz, mem %ld.%03ld MHz, pclk %ld.%03ld MHz\n",
++ (mpllcon & S3C2443_PLLCON_OFF) ? "off":"on",
++ print_mhz(pll), print_mhz(fclk),
++ print_mhz(hclk), print_mhz(pclk));
++
++ s3c2416_clk_initparents();
++
++ for (ptr = 0; ptr < ARRAY_SIZE(clks); ptr++) {
++ clkp = clks[ptr];
++
++ ret = s3c24xx_register_clock(clkp);
++ if (ret < 0) {
++ printk(KERN_ERR "Failed to register clock %s (%d)\n",
++ clkp->name, ret);
++ }
++ }
++
++ clk_epll.rate = s3c2443_get_epll(epllcon, xtal);
++
++ clk_usb_bus.parent = &clk_usb_bus_host;
++
++ /* ensure usb bus clock is within correct rate of 48MHz */
++
++ if (clk_get_rate(&clk_usb_bus_host) != (48 * 1000 * 1000)) {
++ printk(KERN_INFO "Warning: USB host bus not at 48MHz\n");
++ clk_set_rate(&clk_usb_bus_host, 48*1000*1000);
++ }
++
++ printk("S3C2416: epll %s %ld.%03ld MHz, usb-bus %ld.%03ld MHz\n",
++ (epllcon & S3C2443_PLLCON_OFF) ? "off":"on",
++ print_mhz(clk_get_rate(&clk_epll)),
++ print_mhz(clk_get_rate(&clk_usb_bus)));
++
++ /* register clocks from clock array */
++
++ clkp = init_clocks;
++ for (ptr = 0; ptr < ARRAY_SIZE(init_clocks); ptr++, clkp++) {
++ ret = s3c24xx_register_clock(clkp);
++ if (ret < 0) {
++ printk(KERN_ERR "Failed to register clock %s (%d)\n",
++ clkp->name, ret);
++ }
++ }
++
++ /* We must be careful disabling the clocks we are not intending to
++ * be using at boot time, as subsystems such as the LCD which do
++ * their own DMA requests to the bus can cause the system to lockup
++ * if they where in the middle of requesting bus access.
++ *
++ * Disabling the LCD clock if the LCD is active is very dangerous,
++ * and therefore the bootloader should be careful to not enable
++ * the LCD clock if it is not needed.
++ */
++
++ /* install (and disable) the clocks we do not need immediately */
++
++ clkp = init_clocks_disable;
++ for (ptr = 0; ptr < ARRAY_SIZE(init_clocks_disable); ptr++, clkp++) {
++
++ ret = s3c24xx_register_clock(clkp);
++ if (ret < 0) {
++ printk(KERN_ERR "Failed to register clock %s (%d)\n",
++ clkp->name, ret);
++ }
++
++ (clkp->enable)(clkp, 0);
++ }
++}
++
+diff --git a/arch/arm/mach-s3c2416/mach-smdk2416.c b/arch/arm/mach-s3c2416/mach-smdk2416.c
+new file mode 100644
+index 0000000..d04be2f
+--- /dev/null
++++ b/arch/arm/mach-s3c2416/mach-smdk2416.c
+@@ -0,0 +1,544 @@
++/* linux/arch/arm/mach-s3c2416/mach-smdk2416.c
++ *
++ * Copyright (c) 2007 Samsung Electronics
++ *
++ *
++ * Thanks to Samsung for the loan of an SMDK2416
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++*/
++
++#include <linux/kernel.h>
++#include <linux/types.h>
++#include <linux/interrupt.h>
++#include <linux/list.h>
++#include <linux/timer.h>
++#include <linux/init.h>
++#include <linux/serial_core.h>
++#include <linux/platform_device.h>
++
++#include <asm/mach/arch.h>
++#include <asm/mach/map.h>
++#include <asm/mach/irq.h>
++
++#include <asm/setup.h>
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/mach-types.h>
++
++#include <asm/plat-s3c/regs-serial.h>
++#include <asm/plat-s3c/nand.h>
++#include <asm/plat-s3c/adc.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-gpioj.h>
++#include <asm/arch/regs-lcd.h>
++#include <asm/arch/regs-mem.h>
++
++#include <asm/arch/idle.h>
++#include <asm/arch/fb.h>
++
++#include <asm/plat-s3c24xx/clock.h>
++#include <asm/plat-s3c24xx/devs.h>
++#include <asm/plat-s3c24xx/cpu.h>
++
++#include <asm/plat-s3c24xx/common-smdk.h>
++
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/partitions.h>
++
++#include <asm/arch/hsmmc.h>
++
++#if defined(CONFIG_RTC_DRV_S3C)
++#include <asm/plat-s3c/regs-rtc.h>
++#endif
++
++#include <asm/plat-s3c/regs-adc.h>
++#include <asm/plat-s3c/ts.h>
++
++static struct map_desc smdk2416_iodesc[] __initdata = {
++
++ /* ISA IO Space map (memory space selected by A24) */
++
++ {
++ .virtual = (u32)S3C24XX_VA_ISA_WORD,
++ .pfn = __phys_to_pfn(S3C2410_CS2),
++ .length = 0x10000,
++ .type = MT_DEVICE,
++ }, {
++ .virtual = (u32)S3C24XX_VA_ISA_WORD + 0x10000,
++ .pfn = __phys_to_pfn(S3C2410_CS2 + (1<<24)),
++ .length = SZ_4M,
++ .type = MT_DEVICE,
++ }, {
++ .virtual = (u32)S3C24XX_VA_ISA_BYTE,
++ .pfn = __phys_to_pfn(S3C2410_CS2),
++ .length = 0x10000,
++ .type = MT_DEVICE,
++ }, {
++ .virtual = (u32)S3C24XX_VA_ISA_BYTE + 0x10000,
++ .pfn = __phys_to_pfn(S3C2410_CS2 + (1<<24)),
++ .length = SZ_4M,
++ .type = MT_DEVICE,
++ }
++};
++
++#define UCON S3C2410_UCON_DEFAULT | S3C2410_UCON_UCLK
++#define ULCON S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB
++#define UFCON S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE
++
++static struct s3c24xx_uart_clksrc smdk2416_serial_clocks[] = {
++ [0] = {
++ .name = "pclk",
++ .divisor = 1,
++ .min_baud = 0,
++ .max_baud = 0,
++ },
++ [1] = {
++ .name = "esysclk",
++ .divisor = 1,
++ .min_baud = 0,
++ .max_baud = 0,
++ }
++
++};
++
++static struct s3c2410_uartcfg smdk2416_uartcfgs[] __initdata = {
++ [0] = {
++ .hwport = 0,
++ .flags = 0,
++ .ucon = 0x3c5,
++ .ulcon = 0x03,
++ .ufcon = 0x51,
++ },
++ [1] = {
++ .hwport = 1,
++ .flags = 0,
++ .ucon = 0xfc5,
++ .ulcon = 0x03,
++ .ufcon = 0x51,
++ .clocks = smdk2416_serial_clocks,
++ .clocks_size = ARRAY_SIZE(smdk2416_serial_clocks),
++ },
++ /* IR port */
++ [2] = {
++ .hwport = 2,
++ .flags = 0,
++ .ucon = 0xfc5,
++ .ulcon = 0x43,
++ .ufcon = 0x51,
++ .clocks = smdk2416_serial_clocks,
++ .clocks_size = ARRAY_SIZE(smdk2416_serial_clocks),
++ }
++};
++
++static struct platform_device *smdk2416_devices[] __initdata = {
++ &s3c_device_spi0,
++ &s3c_device_spi1,
++ &s3c_device_wdt,
++ &s3c_device_i2c,
++ &s3c_device_rtc,
++ &s3c_device_adc,
++ &s3c_device_ts,
++ &s3c_device_iis,
++ &s3c_device_usbgadget,
++ &s3c_device_usb,
++ &s3c_device_hsmmc0,
++ &s3c_device_hsmmc1,
++ &s3c_device_smc911x,
++};
++
++static void __init smdk2416_map_io(void)
++{
++ s3c24xx_init_io(smdk2416_iodesc, ARRAY_SIZE(smdk2416_iodesc));
++ s3c24xx_init_clocks(12000000);
++ s3c24xx_init_uarts(smdk2416_uartcfgs, ARRAY_SIZE(smdk2416_uartcfgs));
++}
++
++static void smdk2416_cs89x0_set(void)
++{
++ u32 val;
++
++ val = readl(S3C_BANK_CFG);
++ val &= ~((1<<8)|(1<<9)|(1<<10));
++ writel(val, S3C_BANK_CFG);
++
++ /* Bank1 Idle cycle ctrl. */
++ writel(0xf, S3C_SSMC_SMBIDCYR1);
++
++ /* Bank1 Read Wait State cont. = 14 clk Tacc? */
++ writel(12, S3C_SSMC_SMBWSTRDR1);
++
++ /* Bank1 Write Wait State ctrl. */
++ writel(12, S3C_SSMC_SMBWSTWRR1);
++
++ /* Bank1 Output Enable Assertion Delay ctrl. Tcho? */
++ writel(2, S3C_SSMC_SMBWSTOENR1);
++
++ /* Bank1 Write Enable Assertion Delay ctrl. */
++ writel(2, S3C_SSMC_SMBWSTWENR1);
++
++ /* SMWAIT active High, Read Byte Lane Enabl WS1? */
++ val = readl(S3C_SSMC_SMBCR1);
++
++ val |= ((1<<15)|(1<<7));
++ writel(val, S3C_SSMC_SMBCR1);
++
++ val = readl(S3C_SSMC_SMBCR1);
++ val |= ((1<<2)|(1<<0));
++ writel(val, S3C_SSMC_SMBCR1);
++
++ val = readl(S3C_SSMC_SMBCR1);
++ val &= ~((3<<20)|(3<<12));
++ writel(val, S3C_SSMC_SMBCR1);
++
++ val = readl(S3C_SSMC_SMBCR1);
++ val &= ~(3<<4);
++ writel(val, S3C_SSMC_SMBCR1);
++
++ val = readl(S3C_SSMC_SMBCR1);
++ val |= (1<<4);
++
++ writel(val, S3C_SSMC_SMBCR1);
++
++}
++
++static void smdk2416_smc911x_set(void)
++{
++ u32 val;
++
++ /* Bank1 Idle cycle ctrl. */
++ writel(0xf, S3C_SSMC_SMBIDCYR4);
++
++ /* Bank1 Read Wait State cont. = 14 clk Tacc? */
++ writel(12, S3C_SSMC_SMBWSTRDR4);
++
++ /* Bank1 Write Wait State ctrl. */
++ writel(12, S3C_SSMC_SMBWSTWRR4);
++
++ /* Bank1 Output Enable Assertion Delay ctrl. Tcho? */
++ writel(2, S3C_SSMC_SMBWSTOENR4);
++
++ /* Bank1 Write Enable Assertion Delay ctrl. */
++ writel(2, S3C_SSMC_SMBWSTWENR4);
++
++ /* SMWAIT active High, Read Byte Lane Enabl WS1? */
++ val = readl(S3C_SSMC_SMBCR4);
++
++ val |= ((1<<15)|(1<<7));
++ writel(val, S3C_SSMC_SMBCR4);
++
++ val = readl(S3C_SSMC_SMBCR4);
++ val |= ((1<<2)|(1<<0));
++ writel(val, S3C_SSMC_SMBCR4);
++
++ val = readl(S3C_SSMC_SMBCR4);
++ val &= ~((3<<20)|(3<<12));
++ writel(val, S3C_SSMC_SMBCR4);
++
++ val = readl(S3C_SSMC_SMBCR4);
++ val &= ~(3<<4);
++ writel(val, S3C_SSMC_SMBCR4);
++
++ val = readl(S3C_SSMC_SMBCR4);
++ val |= (1<<4);
++
++ writel(val, S3C_SSMC_SMBCR4);
++
++}
++
++static void smdk2416_hsmmc_init (void)
++{
++ /* GPIO E (external interrupt) : Chip detect */
++ s3c2410_gpio_cfgpin(S3C2410_GPF1, S3C2410_GPF1_EINT1); /* GPF1 to EINT1 */
++}
++
++static void __init smdk2416_machine_init(void)
++{
++ smdk2416_smc911x_set();
++ platform_add_devices(smdk2416_devices, ARRAY_SIZE(smdk2416_devices));
++ smdk_machine_init();
++ smdk2416_hsmmc_init();
++}
++
++static void __init smdk2416_fixup (struct machine_desc *desc, struct tag *tags,
++ char **cmdline, struct meminfo *mi)
++{
++ /*
++ * Bank start addresses are not present in the information
++ * passed in from the boot loader. We could potentially
++ * detect them, but instead we hard-code them.
++ */
++ mi->bank[0].start = PHYS_OFFSET;
++
++#if defined(CONFIG_VIDEO_SAMSUNG)
++ mi->bank[0].size = 49*1024*1024;
++#else
++ mi->bank[0].size = 64*1024*1024;
++#endif
++ mi->bank[0].node = 0;
++
++ mi->nr_banks = 1;
++}
++
++
++MACHINE_START(SMDK2416, "SMDK2416")
++ /* Maintainer: Ben Dooks <ben@fluff.org> */
++ .phys_io = S3C2410_PA_UART,
++ .io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
++ .boot_params = S3C2410_SDRAM_PA + 0x100,
++
++ .init_irq = s3c24xx_init_irq,
++ .map_io = smdk2416_map_io,
++ .fixup = smdk2416_fixup,
++ .init_machine = smdk2416_machine_init,
++ .timer = &s3c24xx_timer,
++MACHINE_END
++
++
++void hsmmc_set_gpio (uint channel, uint width)
++{
++ switch (channel) {
++
++ /* can supports 1 and 4 bit bus */
++ case 0:
++ /* GPIO E : Command, Clock */
++ s3c2410_gpio_cfgpin(S3C2410_GPE5, S3C2450_GPE5_SD0_CLK);
++ s3c2410_gpio_cfgpin(S3C2410_GPE6, S3C2450_GPE6_SD0_CMD);
++
++ if (width == 1) {
++ /* GPIO E : MMC DATA0[0] */
++ s3c2410_gpio_cfgpin(S3C2410_GPE7, S3C2450_GPE7_SD0_DAT0);
++ }
++ else if (width == 4) {
++ /* GPIO E : MMC DATA0[0:3] */
++ s3c2410_gpio_cfgpin(S3C2410_GPE7, S3C2450_GPE7_SD0_DAT0);
++ s3c2410_gpio_cfgpin(S3C2410_GPE8, S3C2450_GPE8_SD0_DAT1);
++ s3c2410_gpio_cfgpin(S3C2410_GPE9, S3C2450_GPE9_SD0_DAT2);
++ s3c2410_gpio_cfgpin(S3C2410_GPE10, S3C2450_GPE10_SD0_DAT3);
++ }
++ break;
++
++ /* can supports 1, 4, and 8 bit bus */
++ case 1:
++ /* GPIO L : Command, Clock */
++ s3c2410_gpio_cfgpin(S3C2443_GPL8, S3C2450_GPL8_SD1CMD);
++ s3c2410_gpio_cfgpin(S3C2443_GPL9, S3C2450_GPL9_SD1CLK);
++
++ if (width == 1) {
++ /* GPIO L : MMC DATA1[0] */
++ s3c2410_gpio_cfgpin(S3C2443_GPL0, S3C2450_GPL0_SD1DAT0);
++ }
++ else if (width == 4) {
++ /* GPIO L : MMC DATA1[0:3] */
++ s3c2410_gpio_cfgpin(S3C2443_GPL0, S3C2450_GPL0_SD1DAT0);
++ s3c2410_gpio_cfgpin(S3C2443_GPL1, S3C2450_GPL1_SD1DAT1);
++ s3c2410_gpio_cfgpin(S3C2443_GPL2, S3C2450_GPL2_SD1DAT2);
++ s3c2410_gpio_cfgpin(S3C2443_GPL3, S3C2450_GPL3_SD1DAT3);
++ }
++ break;
++
++ default:
++ break;
++ }
++}
++
++
++#define HOST_CAPS (MMC_CAP_4_BIT_DATA | MMC_CAP_MULTIWRITE | \
++ MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED)
++
++/* Channel 0 : added HS-MMC channel */
++struct s3c_hsmmc_cfg s3c_hsmmc0_platform = {
++ .hwport = 0,
++ .enabled = 1,
++ .host_caps = HOST_CAPS,
++ .bus_width = 4,
++ .highspeed = 0,
++
++ /* ctrl for mmc */
++ .fd_ctrl[MMC_TYPE_MMC] = {
++ .ctrl2 = 0xC0000100, /* ctrl2 for mmc */
++ .ctrl3[SPEED_NORMAL] = 0, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0, /* ctrl3 for high speed */
++ .ctrl4 = 0x3,
++ },
++
++ /* ctrl for sd */
++ .fd_ctrl[MMC_TYPE_SD] = {
++ .ctrl2 = 0xC0000100, /* ctrl2 for sd */
++ .ctrl3[SPEED_NORMAL] = 0, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0, /* ctrl3 for high speed */
++ .ctrl4 = 0x3,
++ },
++
++ .clocks[0] = {
++ .name = "hsmmc",
++ .src = 0x1,
++ },
++
++ .clocks[1] = {
++ .name = "esysclk",
++ .src = 0x2,
++ },
++
++ .clocks[2] = {
++ .name = "hsmmc-ext",
++ .src = 0x3,
++ },
++};
++
++/* Channel 1 : default HS-MMC channel */
++struct s3c_hsmmc_cfg s3c_hsmmc1_platform = {
++ .hwport = 1, /* H/W Channel 1 */
++ .enabled = 1,
++ .host_caps = HOST_CAPS,
++ .bus_width = 4,
++ .highspeed = 0,
++
++ /* ctrl for mmc */
++ .fd_ctrl[MMC_TYPE_MMC] = {
++ .ctrl2 = 0xC0000100, /* ctrl2 for mmc */
++ .ctrl3[SPEED_NORMAL] = 0, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0, /* ctrl3 for high speed */
++ .ctrl4 = 0x3,
++ },
++
++ /* ctrl for sd */
++ .fd_ctrl[MMC_TYPE_SD] = {
++ .ctrl2 = 0xC0000100, /* ctrl2 for sd */
++ .ctrl3[SPEED_NORMAL] = 0, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0, /* ctrl3 for high speed */
++ .ctrl4 = 0x3,
++ },
++
++ .clocks[0] = {
++ .name = "hsmmc",
++ .src = 0x1,
++ },
++
++ .clocks[1] = {
++ .name = "esysclk",
++ .src = 0x2,
++ },
++
++ .clocks[2] = {
++ .name = "hsmmc-ext",
++ .src = 0x3,
++ },
++};
++
++#if defined(CONFIG_RTC_DRV_S3C)
++/* rtc function */
++unsigned int s3c_rtc_set_bit_byte(void __iomem *base, uint offset, uint val)
++{
++ return 0;
++}
++
++unsigned int s3c_rtc_read_alarm_status(void __iomem *base)
++{
++ return (readb(base + S3C2410_RTCALM) & S3C2410_RTCALM_ALMEN);
++}
++
++void s3c_rtc_set_pie(void __iomem *base, uint to)
++{
++ unsigned int tmp;
++
++ tmp = readb(base + S3C2410_TICNT) & ~S3C2410_TICNT_ENABLE;
++
++ if (to)
++ tmp |= S3C2410_TICNT_ENABLE;
++
++ writeb(tmp, base + S3C2410_TICNT);
++
++}
++
++void s3c_rtc_set_freq_regs(void __iomem *base, uint freq, uint *s3c_freq)
++{
++ unsigned int tmp;
++
++ tmp = readb(base + S3C2410_TICNT) & S3C2410_TICNT_ENABLE;
++ writew(readw(base + S3C2410_RTCCON) & (~(1<<8)),base + S3C2410_RTCCON);
++ *s3c_freq = freq;
++ tmp |= (128 / freq)-1;
++ writeb(tmp, base + S3C2410_TICNT);
++}
++
++void s3c_rtc_enable_set(struct platform_device *pdev,void __iomem *base, int en)
++{
++ unsigned int tmp;
++
++ if (!en) {
++ tmp = readb(base + S3C2410_RTCCON);
++ writeb(tmp & ~S3C2410_RTCCON_RTCEN, base + S3C2410_RTCCON);
++
++ tmp = readb(base + S3C2410_TICNT);
++ writeb(tmp & ~S3C2410_TICNT_ENABLE, base + S3C2410_TICNT);
++ } else {
++ /* re-enable the device, and check it is ok */
++ if ((readb(base+S3C2410_RTCCON) & S3C2410_RTCCON_RTCEN) == 0){
++ dev_info(&pdev->dev, "rtc disabled, re-enabling\n");
++
++ tmp = readb(base + S3C2410_RTCCON);
++ writeb(tmp|S3C2410_RTCCON_RTCEN, base+S3C2410_RTCCON);
++ }
++
++ if ((readb(base + S3C2410_RTCCON) & S3C2410_RTCCON_CNTSEL)){
++ dev_info(&pdev->dev, "removing RTCCON_CNTSEL\n");
++
++ tmp = readb(base + S3C2410_RTCCON);
++ writeb(tmp& ~S3C2410_RTCCON_CNTSEL, base+S3C2410_RTCCON);
++ }
++
++ if ((readb(base + S3C2410_RTCCON) & S3C2410_RTCCON_CLKRST)){
++ dev_info(&pdev->dev, "removing RTCCON_CLKRST\n");
++
++ tmp = readb(base + S3C2410_RTCCON);
++ writeb(tmp & ~S3C2410_RTCCON_CLKRST, base+S3C2410_RTCCON);
++ }
++ }
++}
++#endif
++
++struct s3c_adc_cfg s3c_adc_platform={
++ /* s3c2450 support 12-bit resolution */
++ .delay = 10000,
++ .presc = 49,
++ .resolution = 12,
++};
++
++#if defined(CONFIG_S3C_ADC)
++unsigned int s3c_adc_convert(void __iomem *reg_base,unsigned int s3c_adc_port)
++{
++ unsigned int adc_return;
++ unsigned long data0;
++ unsigned long data1;
++
++ writel(S3C2443_ADCCON_SELMUX(s3c_adc_port), reg_base+S3C2443_ADCMUX);
++
++ udelay(10);
++
++ writel(readl(reg_base+S3C2410_ADCCON)|S3C2410_ADCCON_ENABLE_START, reg_base+S3C2410_ADCCON);
++
++ do {
++ data0 = readl(reg_base+S3C2410_ADCCON);
++ } while(!(data0 & S3C2410_ADCCON_ECFLG));
++
++ data1 = readl(reg_base+S3C2410_ADCDAT0);
++
++ adc_return = data1 & S3C_ADCDAT0_XPDATA_MASK_12BIT;
++
++ return adc_return;
++}
++#endif
++
++
++struct s3c_ts_mach_info s3c_ts_platform = {
++ .delay = 10000,
++ .presc = 49,
++ .oversampling_shift = 2,
++ .resol_bit = 12,
++};
++
+diff --git a/arch/arm/mach-s3c2416/s3c2416.c b/arch/arm/mach-s3c2416/s3c2416.c
+new file mode 100644
+index 0000000..64105e7
+--- /dev/null
++++ b/arch/arm/mach-s3c2416/s3c2416.c
+@@ -0,0 +1,113 @@
++/* linux/arch/arm/mach-s3c2416/s3c2416.c
++ *
++ * Copyright (c) 2007 Samsung Electronics
++ *
++ *
++ * Samsung S3C2450 Mobile CPU support
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++*/
++
++#include <linux/kernel.h>
++#include <linux/types.h>
++#include <linux/interrupt.h>
++#include <linux/list.h>
++#include <linux/timer.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/serial_core.h>
++#include <linux/sysdev.h>
++#include <linux/clk.h>
++
++#include <asm/mach/arch.h>
++#include <asm/mach/map.h>
++#include <asm/mach/irq.h>
++
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/irq.h>
++
++#include <asm/arch/regs-s3c-clock.h>
++#include <asm/arch/reset.h>
++
++#include <asm/plat-s3c24xx/s3c2416.h>
++#include <asm/plat-s3c24xx/devs.h>
++#include <asm/plat-s3c24xx/common-smdk.h>
++#include <asm/plat-s3c24xx/cpu.h>
++
++static struct map_desc s3c2416_iodesc[] __initdata = {
++ IODESC_ENT(WATCHDOG),
++ IODESC_ENT(CLKPWR),
++ IODESC_ENT(TIMER),
++ IODESC_ENT(LCD),
++ IODESC_ENT(EBI),
++ IODESC_ENT(SROMC),
++ IODESC_ENT(CS8900),
++ IODESC_ENT(USBDEV),
++};
++
++struct sysdev_class s3c2416_sysclass = {
++ set_kset_name("s3c2416-core"),
++};
++
++static struct sys_device s3c2416_sysdev = {
++ .cls = &s3c2416_sysclass,
++};
++
++static void s3c2416_hard_reset(void)
++{
++ __raw_writel(S3C2443_SWRST_RESET, S3C2443_SWRST);
++}
++
++int __init s3c2416_init(void)
++{
++ printk("S3C2416: Initialising architecture\n");
++
++ s3c24xx_reset_hook = s3c2416_hard_reset;
++
++#if !defined (CONFIG_MTD_NAND_S3C)
++ s3c_device_nand.name = "s3c2412-nand";
++#else
++ s3c_device_nand.name = "s3c-nand";
++#endif
++ /* Rename devices that are specific to s3c2416 */
++ s3c_device_lcd.name = "s3c-lcd";
++
++ /* change WDT IRQ number */
++ s3c_device_wdt.resource[1].start = IRQ_S3C2443_WDT;
++ s3c_device_wdt.resource[1].end = IRQ_S3C2443_WDT;
++
++ return sysdev_register(&s3c2416_sysdev);
++}
++
++void __init s3c2416_init_uarts(struct s3c2410_uartcfg *cfg, int no)
++{
++ s3c24xx_init_uartdevs("s3c2440-uart", s3c2410_uart_resources, cfg, no);
++}
++
++/* s3c2416_map_io
++ *
++ * register the standard cpu IO areas, and any passed in from the
++ * machine specific initialisation.
++ */
++
++void __init s3c2416_map_io(struct map_desc *mach_desc, int mach_size)
++{
++ iotable_init(s3c2416_iodesc, ARRAY_SIZE(s3c2416_iodesc));
++ iotable_init(mach_desc, mach_size);
++}
++
++/* need to register class before we actually register the device, and
++ * we also need to ensure that it has been initialised before any of the
++ * drivers even try to use it (even if not on an s3c2416 based system)
++ * as a driver which may support both 2450 and 2440 may try and use it.
++*/
++
++static int __init s3c2416_core_init(void)
++{
++ return sysdev_class_register(&s3c2416_sysclass);
++}
++
++core_initcall(s3c2416_core_init);
+diff --git a/arch/arm/mach-s3c2443/clock.c b/arch/arm/mach-s3c2443/clock.c
+index b42f956..084f575 100644
+--- a/arch/arm/mach-s3c2443/clock.c
++++ b/arch/arm/mach-s3c2443/clock.c
+@@ -597,6 +597,44 @@ static struct clk clk_cam = {
+ .round_rate = s3c2443_roundrate_clksrc16,
+ };
+
++static struct clk clk_cam_h = {
++ .name = "camif-hclk",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c2443_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_CAMIF,
++};
++
++#define CAMDIV_val 26
++
++static int s3c2443_setrate_camera(struct clk *clk, unsigned long rate)
++{
++ unsigned int camclk_div, val, hclkcon;
++ unsigned long src_clk = clk_get_rate(clk->parent);
++
++ if (rate == 4800000) {
++ printk(KERN_INFO "External camera clock is set to 48MHz\n");
++ }
++ else if (rate > 48000000) {
++ printk(KERN_ERR "Invalid camera clock\n");
++ }
++
++ writel(readl(S3C2443_CLKSRC) | (1 << 20), S3C2443_CLKSRC);
++
++ camclk_div = src_clk / rate;
++ printk("Parent clock for Camera = %ld, CAMDIV = %d\n", src_clk, camclk_div);
++
++ val = readl(S3C2443_CLKDIV1);
++ val &= ~(0xf<<CAMDIV_val);
++ writel(val, S3C2443_CLKDIV1);
++
++ val |= ((camclk_div -1) << CAMDIV_val);
++ writel(val, S3C2443_CLKDIV1);
++ val = readl(S3C2443_CLKDIV1);
++
++ return 0;
++}
++
+ /* display-if
+ *
+ * display interface clock, divided from esysclk
+@@ -814,7 +852,32 @@ static struct clk init_clocks[] = {
+ .id = -1,
+ .parent = &clk_p,
+ .ctrlbit = S3C2443_PCLKCON_AC97,
+- }
++ }, {
++ .name = "hsmmc",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c2443_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_HSMMC
++ }, {
++ .name = "hsmmc-epll",
++ .id = -1,
++ .parent = &clk_epll,
++ }, {
++ .name = "hsmmc-ext",
++ .id = -1,
++ .parent = &clk_ext,
++ .enable = s3c2443_clkcon_enable_s,
++ .ctrlbit = S3C2443_SCLKCON_HSMMCCLK_EXT,
++ .rate = 12 * 1000 * 1000
++ },
++ {
++ .name = "camera",
++ .id = -1,
++ .parent = &clk_cam_h,
++ .enable = s3c2443_clkcon_enable_s,
++ .ctrlbit = S3C2443_SCLKCON_CAMCLK,
++ .set_rate = s3c2443_setrate_camera,
++ },
+ };
+
+ /* clocks to add where we need to check their parentage */
+@@ -936,6 +999,7 @@ static struct clk *clks[] __initdata = {
+ &clk_hsspi,
+ &clk_hsmmc_div,
+ &clk_hsmmc,
++ &clk_cam_h,
+ };
+
+ void __init s3c2443_init_clocks(int xtal)
+@@ -1028,3 +1092,5 @@ void __init s3c2443_init_clocks(int xtal)
+ (clkp->enable)(clkp, 0);
+ }
+ }
++
++
+diff --git a/arch/arm/mach-s3c2443/dma.c b/arch/arm/mach-s3c2443/dma.c
+index f6c006d..a09b4c3 100644
+--- a/arch/arm/mach-s3c2443/dma.c
++++ b/arch/arm/mach-s3c2443/dma.c
+@@ -164,7 +164,11 @@ static struct s3c24xx_dma_selection __initdata s3c2443_dma_sel = {
+
+ static int __init s3c2443_dma_add(struct sys_device *sysdev)
+ {
++#if defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ s3c24xx_dma_init(8, IRQ_S3C2443_DMA0, 0x100);
++#else
+ s3c24xx_dma_init(6, IRQ_S3C2443_DMA0, 0x100);
++#endif
+ return s3c24xx_dma_init_map(&s3c2443_dma_sel);
+ }
+
+@@ -174,7 +178,13 @@ static struct sysdev_driver s3c2443_dma_driver = {
+
+ static int __init s3c2443_dma_init(void)
+ {
++#if defined(CONFIG_CPU_S3C2443)
+ return sysdev_driver_register(&s3c2443_sysclass, &s3c2443_dma_driver);
++#elif defined(CONFIG_CPU_S3C2450)
++ return sysdev_driver_register(&s3c2450_sysclass, &s3c2443_dma_driver);
++#elif defined(CONFIG_CPU_S3C2416)
++ return sysdev_driver_register(&s3c2416_sysclass, &s3c2443_dma_driver);
++#endif
+ }
+
+ arch_initcall(s3c2443_dma_init);
+diff --git a/arch/arm/mach-s3c2443/irq.c b/arch/arm/mach-s3c2443/irq.c
+index f9ad498..9cfc6a3 100644
+--- a/arch/arm/mach-s3c2443/irq.c
++++ b/arch/arm/mach-s3c2443/irq.c
+@@ -282,7 +282,13 @@ static struct sysdev_driver s3c2443_irq_driver = {
+
+ static int __init s3c2443_irq_init(void)
+ {
++#if defined(CONFIG_CPU_S3C2443)
+ return sysdev_driver_register(&s3c2443_sysclass, &s3c2443_irq_driver);
++#elif defined(CONFIG_CPU_S3C2450)
++ return sysdev_driver_register(&s3c2450_sysclass, &s3c2443_irq_driver);
++#elif defined(CONFIG_CPU_S3C2416)
++ return sysdev_driver_register(&s3c2416_sysclass, &s3c2443_irq_driver);
++#endif
+ }
+
+ arch_initcall(s3c2443_irq_init);
+diff --git a/arch/arm/mach-s3c2443/mach-smdk2443.c b/arch/arm/mach-s3c2443/mach-smdk2443.c
+index 8cd9313..0f1d42f 100644
+--- a/arch/arm/mach-s3c2443/mach-smdk2443.c
++++ b/arch/arm/mach-s3c2443/mach-smdk2443.c
+@@ -26,14 +26,18 @@
+ #include <asm/mach/map.h>
+ #include <asm/mach/irq.h>
+
++#include <asm/setup.h>
+ #include <asm/hardware.h>
+ #include <asm/io.h>
+ #include <asm/irq.h>
+ #include <asm/mach-types.h>
+
+ #include <asm/plat-s3c/regs-serial.h>
++#include <asm/plat-s3c/nand.h>
+ #include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-gpioj.h>
+ #include <asm/arch/regs-lcd.h>
++#include <asm/arch/regs-mem.h>
+
+ #include <asm/arch/idle.h>
+ #include <asm/arch/fb.h>
+@@ -46,7 +50,14 @@
+
+ #include <asm/plat-s3c24xx/common-smdk.h>
+
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/partitions.h>
++
++#include <asm/arch/hsmmc.h>
++
+ static struct map_desc smdk2443_iodesc[] __initdata = {
++ IODESC_ENT(CS8900),
++
+ /* ISA IO Space map (memory space selected by A24) */
+
+ {
+@@ -76,6 +87,22 @@ static struct map_desc smdk2443_iodesc[] __initdata = {
+ #define ULCON S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB
+ #define UFCON S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE
+
++static struct s3c24xx_uart_clksrc smdk2443_serial_clocks[] = {
++ [0] = {
++ .name = "pclk",
++ .divisor = 1,
++ .min_baud = 0,
++ .max_baud = 0,
++ },
++ [1] = {
++ .name = "esysclk",
++ .divisor = 1,
++ .min_baud = 0,
++ .max_baud = 0,
++ }
++
++};
++
+ static struct s3c2410_uartcfg smdk2443_uartcfgs[] __initdata = {
+ [0] = {
+ .hwport = 0,
+@@ -87,24 +114,37 @@ static struct s3c2410_uartcfg smdk2443_uartcfgs[] __initdata = {
+ [1] = {
+ .hwport = 1,
+ .flags = 0,
+- .ucon = 0x3c5,
++ .ucon = 0xfc5,
+ .ulcon = 0x03,
+ .ufcon = 0x51,
++ .clocks = smdk2443_serial_clocks,
++ .clocks_size = ARRAY_SIZE(smdk2443_serial_clocks),
+ },
+ /* IR port */
+ [2] = {
+ .hwport = 2,
+ .flags = 0,
+- .ucon = 0x3c5,
++ .ucon = 0xfc5,
+ .ulcon = 0x43,
+ .ufcon = 0x51,
++ .clocks = smdk2443_serial_clocks,
++ .clocks_size = ARRAY_SIZE(smdk2443_serial_clocks),
+ }
+ };
+
+ static struct platform_device *smdk2443_devices[] __initdata = {
++ &s3c_device_spi0,
++ &s3c_device_spi1,
+ &s3c_device_wdt,
+ &s3c_device_i2c,
++ &s3c_device_rtc,
++ &s3c_device_adc,
++ &s3c_device_ts,
++ &s3c_device_iis,
++ &s3c_device_usbgadget,
++ &s3c_device_usb,
+ &s3c_device_hsmmc,
++ &s3c_device_camif,
+ };
+
+ static void __init smdk2443_map_io(void)
+@@ -114,12 +154,84 @@ static void __init smdk2443_map_io(void)
+ s3c24xx_init_uarts(smdk2443_uartcfgs, ARRAY_SIZE(smdk2443_uartcfgs));
+ }
+
++static void smdk2443_cs89x0_set(void)
++{
++ u32 val;
++
++ val = readl(S3C_BANK_CFG);
++ val &= ~((1<<8)|(1<<9)|(1<<10));
++ writel(val, S3C_BANK_CFG);
++
++ /* Bank1 Idle cycle ctrl. */
++ writel(0xf, S3C_SSMC_SMBIDCYR1);
++
++ /* Bank1 Read Wait State cont. = 14 clk Tacc? */
++ writel(12, S3C_SSMC_SMBWSTRDR1);
++
++ /* Bank1 Write Wait State ctrl. */
++ writel(12, S3C_SSMC_SMBWSTWRR1);
++
++ /* Bank1 Output Enable Assertion Delay ctrl. Tcho? */
++ writel(2, S3C_SSMC_SMBWSTOENR1);
++
++ /* Bank1 Write Enable Assertion Delay ctrl. */
++ writel(2, S3C_SSMC_SMBWSTWENR1);
++
++ /* SMWAIT active High, Read Byte Lane Enabl WS1? */
++ val = readl(S3C_SSMC_SMBCR1);
++
++ val |= ((1<<15)|(1<<7));
++ writel(val, S3C_SSMC_SMBCR1);
++
++ val = readl(S3C_SSMC_SMBCR1);
++ val |= ((1<<2)|(1<<0));
++ writel(val, S3C_SSMC_SMBCR1);
++
++ val = readl(S3C_SSMC_SMBCR1);
++ val &= ~((3<<20)|(3<<12));
++ writel(val, S3C_SSMC_SMBCR1);
++
++ val = readl(S3C_SSMC_SMBCR1);
++ val &= ~(3<<4);
++ writel(val, S3C_SSMC_SMBCR1);
++
++ val = readl(S3C_SSMC_SMBCR1);
++ val |= (1<<4);
++
++ writel(val, S3C_SSMC_SMBCR1);
++
++}
++
+ static void __init smdk2443_machine_init(void)
+ {
++ smdk2443_cs89x0_set();
+ platform_add_devices(smdk2443_devices, ARRAY_SIZE(smdk2443_devices));
+ smdk_machine_init();
+ }
+
++static void __init smdk2443_fixup (struct machine_desc *desc, struct tag *tags,
++ char **cmdline, struct meminfo *mi)
++{
++ /*
++ * Bank start addresses are not present in the information
++ * passed in from the boot loader. We could potentially
++ * detect them, but instead we hard-code them.
++ */
++ mi->bank[0].start = PHYS_OFFSET;
++
++#if defined(CONFIG_VIDEO_SAMSUNG)
++ mi->bank[0].size = 49*1024*1024;
++#elif defined(CONFIG_PP_S3C2443)
++ mi->bank[0].size = 60*1024*1024;
++#else
++ mi->bank[0].size = 64*1024*1024;
++#endif
++ mi->bank[0].node = 0;
++
++ mi->nr_banks = 1;
++}
++
++
+ MACHINE_START(SMDK2443, "SMDK2443")
+ /* Maintainer: Ben Dooks <ben@fluff.org> */
+ .phys_io = S3C2410_PA_UART,
+@@ -128,6 +240,73 @@ MACHINE_START(SMDK2443, "SMDK2443")
+
+ .init_irq = s3c24xx_init_irq,
+ .map_io = smdk2443_map_io,
++ .fixup = smdk2443_fixup,
+ .init_machine = smdk2443_machine_init,
+ .timer = &s3c24xx_timer,
+ MACHINE_END
++
++void hsmmc_set_gpio (uint channel, uint width)
++{
++ /* GPIO L */
++ s3c2410_gpio_cfgpin(S3C2443_GPL0, S3C2443_GPL0_SD0DAT0);
++ s3c2410_gpio_cfgpin(S3C2443_GPL1, S3C2443_GPL1_SD0DAT1);
++
++ s3c2410_gpio_cfgpin(S3C2443_GPL2, S3C2443_GPL2_SD0DAT2);
++ s3c2410_gpio_cfgpin(S3C2443_GPL3, S3C2443_GPL3_SD0DAT3);
++
++ s3c2410_gpio_cfgpin(S3C2443_GPL4, S3C2443_GPL4_SD0DAT4);
++ s3c2410_gpio_cfgpin(S3C2443_GPL5, S3C2443_GPL5_SD0DAT5);
++
++ s3c2410_gpio_cfgpin(S3C2443_GPL6, S3C2443_GPL6_SD0DAT6);
++ s3c2410_gpio_cfgpin(S3C2443_GPL7, S3C2443_GPL7_SD0DAT7);
++
++ s3c2410_gpio_cfgpin(S3C2443_GPL8, S3C2443_GPL8_SD0CMD);
++ s3c2410_gpio_cfgpin(S3C2443_GPL9, S3C2443_GPL9_SD0CLK);
++
++ /* GPIO J */
++ s3c2410_gpio_cfgpin(S3C2443_GPJ13, S3C2443_GPJ13_SD0LED);
++ s3c2410_gpio_cfgpin(S3C2443_GPJ14, S3C2443_GPJ14_nSD0CD);
++#if 0
++ s3c2410_gpio_cfgpin(S3C2443_GPJ15, S3C2443_GPJ15_OUTP);
++#endif
++ s3c2410_gpio_cfgpin(S3C2443_GPJ15, S3C2443_GPJ15_nSD0WP); /* write protect enable */
++
++
++ s3c2410_gpio_setpin(S3C2443_GPJ15, 1);
++}
++
++#define HOST_CAPS (MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA | \
++ MMC_CAP_MULTIWRITE | \
++ MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED)
++
++
++struct s3c_hsmmc_cfg s3c_hsmmc_platform = {
++ .hwport = 0,
++ .enabled = 1,
++ .host_caps = HOST_CAPS,
++ .bus_width = 8,
++ .highspeed = 1,
++
++ /* ctrl for mmc */
++ .fd_ctrl[MMC_TYPE_MMC] = {
++ .ctrl2 = 0x4000C100, /* ctrl2 for mmc */
++ .ctrl3[SPEED_NORMAL] = 0x00800080, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0x00800080, /* ctrl3 for high speed */
++ .ctrl4 = 0,
++ },
++
++ /* ctrl for sd */
++ .fd_ctrl[MMC_TYPE_SD] = {
++ .ctrl2 = 0x4000C100, /* ctrl2 for sd */
++ .ctrl3[SPEED_NORMAL] = 0x00800080, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0x00800080, /* ctrl3 for high speed */
++ .ctrl4 = 0,
++ },
++
++ .clocks[0] = "hsmmc", /* 1st clock source */
++ .clocks[1] = "esysclk", /* 2nd clock source hsmmc-epll by Ben Dooks */
++ //.clk_name[1] = "hsmmc-epll", /* 2nd clock source hsmmc-epll */
++ .clocks[2] = "hsmmc-ext", /* 3rd clock source */
++};
++
++
+diff --git a/arch/arm/mach-s3c2443/s3c2443.c b/arch/arm/mach-s3c2443/s3c2443.c
+index 8d81171..1c2bc8b 100644
+--- a/arch/arm/mach-s3c2443/s3c2443.c
++++ b/arch/arm/mach-s3c2443/s3c2443.c
+@@ -34,12 +34,17 @@
+
+ #include <asm/plat-s3c24xx/s3c2443.h>
+ #include <asm/plat-s3c24xx/devs.h>
++#include <asm/plat-s3c24xx/common-smdk.h>
+ #include <asm/plat-s3c24xx/cpu.h>
+
+ static struct map_desc s3c2443_iodesc[] __initdata = {
+ IODESC_ENT(WATCHDOG),
+ IODESC_ENT(CLKPWR),
+ IODESC_ENT(TIMER),
++ IODESC_ENT(LCD),
++ IODESC_ENT(EBI),
++ IODESC_ENT(SROMC),
++ IODESC_ENT(CS8900),
+ };
+
+ struct sysdev_class s3c2443_sysclass = {
+@@ -61,7 +66,13 @@ int __init s3c2443_init(void)
+
+ s3c24xx_reset_hook = s3c2443_hard_reset;
+
++#if !defined (CONFIG_MTD_NAND_S3C)
+ s3c_device_nand.name = "s3c2412-nand";
++#else
++ s3c_device_nand.name = "s3c-nand";
++#endif
++ /* Rename devices that are specific to s3c2443 */
++ s3c_device_lcd.name = "s3c-lcd";
+
+ /* change WDT IRQ number */
+ s3c_device_wdt.resource[1].start = IRQ_S3C2443_WDT;
+diff --git a/arch/arm/mach-s3c2450/Kconfig b/arch/arm/mach-s3c2450/Kconfig
+new file mode 100644
+index 0000000..0afef7a
+--- /dev/null
++++ b/arch/arm/mach-s3c2450/Kconfig
+@@ -0,0 +1,28 @@
++# arch/arm/mach-s3c2450/Kconfig
++#
++# Copyright 2007 Simtec Electronics
++#
++# Licensed under GPLv2
++
++config CPU_S3C2450
++ bool
++ depends on ARCH_S3C2410
++ select S3C2450_DMA if S3C2410_DMA
++ help
++ Support for the S3C2450 SoC from the S3C24XX line
++
++config S3C2450_DMA
++ bool
++ depends on CPU_S3C2450
++ help
++ Internal config node for S3C2450 DMA support
++
++menu "S3C2450 Machines"
++
++config MACH_SMDK2450
++ bool "SMDK2450"
++ select CPU_S3C2450
++ select MACH_SMDK
++ help
++ Say Y here if you are using an SMDK2450
++endmenu
+diff --git a/arch/arm/mach-s3c2450/Makefile b/arch/arm/mach-s3c2450/Makefile
+new file mode 100644
+index 0000000..1871a5e
+--- /dev/null
++++ b/arch/arm/mach-s3c2450/Makefile
+@@ -0,0 +1,20 @@
++# arch/arm/mach-s3c2450/Makefile
++#
++# Copyright 2007 Simtec Electronics
++#
++# Licensed under GPLv2
++
++obj-y :=
++obj-m :=
++obj-n :=
++obj- :=
++
++obj-$(CONFIG_CPU_S3C2450) += s3c2450.o
++obj-$(CONFIG_CPU_S3C2450) += ../mach-s3c2443/irq.o
++obj-$(CONFIG_CPU_S3C2450) += clock.o
++
++obj-$(CONFIG_S3C2450_DMA) += ../mach-s3c2443/dma.o
++
++# Machine support
++
++obj-$(CONFIG_MACH_SMDK2450) += mach-smdk2450.o
+diff --git a/arch/arm/mach-s3c2450/clock.c b/arch/arm/mach-s3c2450/clock.c
+new file mode 100644
+index 0000000..2c41cd6
+--- /dev/null
++++ b/arch/arm/mach-s3c2450/clock.c
+@@ -0,0 +1,1095 @@
++/* linux/arch/arm/mach-s3c2450/clock.c
++ *
++ * Copyright (c) 2007 Simtec Electronics
++ * Ben Dooks <ben@simtec.co.uk>
++ *
++ * S3C2450 Clock control support
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++*/
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/list.h>
++#include <linux/errno.h>
++#include <linux/err.h>
++#include <linux/sysdev.h>
++#include <linux/clk.h>
++#include <linux/mutex.h>
++#include <linux/delay.h>
++#include <linux/serial_core.h>
++
++#include <asm/mach/map.h>
++
++#include <asm/hardware.h>
++#include <asm/io.h>
++
++#include <asm/arch/regs-s3c-clock.h>
++
++#include <asm/plat-s3c24xx/s3c2450.h>
++#include <asm/plat-s3c24xx/clock.h>
++#include <asm/plat-s3c24xx/cpu.h>
++
++/* We currently have to assume that the system is running
++ * from the XTPll input, and that all ***REFCLKs are being
++ * fed from it, as we cannot read the state of OM[4] from
++ * software.
++ *
++ * It would be possible for each board initialisation to
++ * set the correct muxing at initialisation
++*/
++
++static int s3c2450_clkcon_enable_h(struct clk *clk, int enable)
++{
++ unsigned int clocks = clk->ctrlbit;
++ unsigned long clkcon;
++
++ clkcon = __raw_readl(S3C2443_HCLKCON);
++
++ if (enable)
++ clkcon |= clocks;
++ else
++ clkcon &= ~clocks;
++
++ __raw_writel(clkcon, S3C2443_HCLKCON);
++
++ return 0;
++}
++
++static int s3c2450_clkcon_enable_p(struct clk *clk, int enable)
++{
++ unsigned int clocks = clk->ctrlbit;
++ unsigned long clkcon;
++
++ clkcon = __raw_readl(S3C2443_PCLKCON);
++
++ if (enable)
++ clkcon |= clocks;
++ else
++ clkcon &= ~clocks;
++
++ __raw_writel(clkcon, S3C2443_HCLKCON);
++
++ return 0;
++}
++
++static int s3c2450_clkcon_enable_s(struct clk *clk, int enable)
++{
++ unsigned int clocks = clk->ctrlbit;
++ unsigned long clkcon;
++
++ clkcon = __raw_readl(S3C2443_SCLKCON);
++
++ if (enable)
++ clkcon |= clocks;
++ else
++ clkcon &= ~clocks;
++
++ __raw_writel(clkcon, S3C2443_SCLKCON);
++
++ return 0;
++}
++
++static unsigned long s3c2450_roundrate_clksrc(struct clk *clk,
++ unsigned long rate,
++ unsigned int max)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ int div;
++
++ if (rate > parent_rate)
++ return parent_rate;
++
++ /* note, we remove the +/- 1 calculations as they cancel out */
++
++ div = (rate / parent_rate);
++
++ if (div < 1)
++ div = 1;
++ else if (div > max)
++ div = max;
++
++ return parent_rate / div;
++}
++
++static unsigned long s3c2450_roundrate_clksrc4(struct clk *clk,
++ unsigned long rate)
++{
++ return s3c2450_roundrate_clksrc(clk, rate, 4);
++}
++
++static unsigned long s3c2450_roundrate_clksrc16(struct clk *clk,
++ unsigned long rate)
++{
++ return s3c2450_roundrate_clksrc(clk, rate, 16);
++}
++
++static unsigned long s3c2450_roundrate_clksrc256(struct clk *clk,
++ unsigned long rate)
++{
++ return s3c2450_roundrate_clksrc(clk, rate, 256);
++}
++
++/* clock selections */
++
++/* CPU EXTCLK input */
++static struct clk clk_ext = {
++ .name = "ext",
++ .id = -1,
++};
++
++static struct clk clk_mpllref = {
++ .name = "mpllref",
++ .parent = &clk_xtal,
++ .id = -1,
++};
++
++#if 0
++static struct clk clk_mpll = {
++ .name = "mpll",
++ .parent = &clk_mpllref,
++ .id = -1,
++};
++#endif
++
++static struct clk clk_epllref;
++
++static struct clk clk_epll = {
++ .name = "epll",
++ .parent = &clk_epllref,
++ .id = -1,
++};
++
++static struct clk clk_i2s_ext = {
++ .name = "i2s-ext",
++ .id = -1,
++};
++
++static int s3c2450_setparent_epllref(struct clk *clk, struct clk *parent)
++{
++ unsigned long clksrc = __raw_readl(S3C2443_CLKSRC);
++
++ clksrc &= ~S3C2443_CLKSRC_EPLLREF_MASK;
++
++ if (parent == &clk_xtal)
++ clksrc |= S3C2443_CLKSRC_EPLLREF_XTAL;
++ else if (parent == &clk_ext)
++ clksrc |= S3C2443_CLKSRC_EPLLREF_EXTCLK;
++ else if (parent != &clk_mpllref)
++ return -EINVAL;
++
++ __raw_writel(clksrc, S3C2443_CLKSRC);
++ clk->parent = parent;
++
++ return 0;
++}
++
++static struct clk clk_epllref = {
++ .name = "epllref",
++ .id = -1,
++ .set_parent = s3c2450_setparent_epllref,
++};
++
++static unsigned long s3c2450_getrate_mdivclk(struct clk *clk)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long div = __raw_readl(S3C2443_CLKDIV0);
++
++ div &= S3C2443_CLKDIV0_EXTDIV_MASK;
++ div >>= (S3C2443_CLKDIV0_EXTDIV_SHIFT-1); /* x2 */
++
++ return parent_rate / (div + 1);
++}
++
++static struct clk clk_mdivclk = {
++ .name = "mdivclk",
++ .parent = &clk_mpllref,
++ .id = -1,
++ .get_rate = s3c2450_getrate_mdivclk,
++};
++
++
++static int s3c2450_setparent_msysclk(struct clk *clk, struct clk *parent)
++{
++ unsigned long clksrc = __raw_readl(S3C2443_CLKSRC);
++
++ clksrc &= ~(S3C2443_CLKSRC_MSYSCLK_MPLL |
++ S3C2443_CLKSRC_EXTCLK_DIV);
++
++ if (parent == &clk_mpll)
++ clksrc |= S3C2443_CLKSRC_MSYSCLK_MPLL;
++ else if (parent == &clk_mdivclk)
++ clksrc |= S3C2443_CLKSRC_EXTCLK_DIV;
++ else if (parent != &clk_mpllref)
++ return -EINVAL;
++
++ __raw_writel(clksrc, S3C2443_CLKSRC);
++ clk->parent = parent;
++
++ return 0;
++}
++
++static struct clk clk_msysclk = {
++ .name = "msysclk",
++ .parent = &clk_xtal,
++ .id = -1,
++ .set_parent = s3c2450_setparent_msysclk,
++};
++
++
++/* esysclk
++ *
++ * this is sourced from either the EPLL or the EPLLref clock
++*/
++
++static int s3c2450_setparent_esysclk(struct clk *clk, struct clk *parent)
++{
++ unsigned long clksrc = __raw_readl(S3C2443_CLKSRC);
++
++ if (parent == &clk_epll)
++ clksrc |= S3C2443_CLKSRC_ESYSCLK_EPLL;
++ else if (parent == &clk_epllref)
++ clksrc &= ~S3C2443_CLKSRC_ESYSCLK_EPLL;
++ else
++ return -EINVAL;
++
++ __raw_writel(clksrc, S3C2443_CLKSRC);
++ clk->parent = parent;
++
++ return 0;
++}
++
++static struct clk clk_esysclk = {
++ .name = "esysclk",
++ .parent = &clk_epll,
++ .id = -1,
++ .set_parent = s3c2450_setparent_esysclk,
++};
++
++/* uartclk
++ *
++ * UART baud-rate clock sourced from esysclk via a divisor
++*/
++
++static unsigned long s3c2450_getrate_uart(struct clk *clk)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long div = __raw_readl(S3C2443_CLKDIV1);
++
++ div &= S3C2443_CLKDIV1_UARTDIV_MASK;
++ div >>= S3C2443_CLKDIV1_UARTDIV_SHIFT;
++
++ return parent_rate / (div + 1);
++}
++
++
++static int s3c2450_setrate_uart(struct clk *clk, unsigned long rate)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long clkdivn = __raw_readl(S3C2443_CLKDIV1);
++
++ rate = s3c2450_roundrate_clksrc16(clk, rate);
++ rate = parent_rate / rate;
++
++ clkdivn &= ~S3C2443_CLKDIV1_UARTDIV_MASK;
++ clkdivn |= (rate - 1) << S3C2443_CLKDIV1_UARTDIV_SHIFT;
++
++ __raw_writel(clkdivn, S3C2443_CLKDIV1);
++ return 0;
++}
++
++static struct clk clk_uart = {
++ .name = "uartclk",
++ .id = -1,
++ .parent = &clk_esysclk,
++ .get_rate = s3c2450_getrate_uart,
++ .set_rate = s3c2450_setrate_uart,
++ .round_rate = s3c2450_roundrate_clksrc16,
++};
++
++/* hsspi
++ *
++ * high-speed spi clock, sourced from esysclk
++*/
++
++static unsigned long s3c2450_getrate_hsspi(struct clk *clk)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long div = __raw_readl(S3C2443_CLKDIV1);
++
++ div &= S3C2443_CLKDIV1_HSSPIDIV_MASK;
++ div >>= S3C2443_CLKDIV1_HSSPIDIV_SHIFT;
++
++ return parent_rate / (div + 1);
++}
++
++
++static int s3c2450_setrate_hsspi(struct clk *clk, unsigned long rate)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long clkdivn = __raw_readl(S3C2443_CLKDIV1);
++
++ rate = s3c2450_roundrate_clksrc4(clk, rate);
++ rate = parent_rate / rate;
++
++ clkdivn &= ~S3C2443_CLKDIV1_HSSPIDIV_MASK;
++ clkdivn |= (rate - 1) << S3C2443_CLKDIV1_HSSPIDIV_SHIFT;
++
++ __raw_writel(clkdivn, S3C2443_CLKDIV1);
++ return 0;
++}
++
++static struct clk clk_hsspi = {
++ .name = "hsspi",
++ .id = -1,
++ .parent = &clk_esysclk,
++ .ctrlbit = S3C2443_SCLKCON_HSSPICLK,
++ .enable = s3c2450_clkcon_enable_s,
++ .get_rate = s3c2450_getrate_hsspi,
++ .set_rate = s3c2450_setrate_hsspi,
++ .round_rate = s3c2450_roundrate_clksrc4,
++};
++
++/* usbhost
++ *
++ * usb host bus-clock, usually 48MHz to provide USB bus clock timing
++*/
++
++static unsigned long s3c2450_getrate_usbhost(struct clk *clk)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long div = __raw_readl(S3C2443_CLKDIV1);
++
++ div &= S3C2443_CLKDIV1_USBHOSTDIV_MASK;
++ div >>= S3C2443_CLKDIV1_USBHOSTDIV_SHIFT;
++
++ return parent_rate / (div + 1);
++}
++
++static int s3c2450_setrate_usbhost(struct clk *clk, unsigned long rate)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long clkdivn = __raw_readl(S3C2443_CLKDIV1);
++
++ rate = s3c2450_roundrate_clksrc4(clk, rate);
++ rate = parent_rate / rate;
++
++ clkdivn &= ~S3C2443_CLKDIV1_USBHOSTDIV_MASK;
++ clkdivn |= (rate - 1) << S3C2443_CLKDIV1_USBHOSTDIV_SHIFT;
++
++ __raw_writel(clkdivn, S3C2443_CLKDIV1);
++ return 0;
++}
++
++static struct clk clk_usb_bus_host = {
++ .name = "usb-bus-host-parent",
++ .id = -1,
++ .parent = &clk_esysclk,
++ .ctrlbit = S3C2443_SCLKCON_USBHOST,
++ .enable = s3c2450_clkcon_enable_s,
++ .get_rate = s3c2450_getrate_usbhost,
++ .set_rate = s3c2450_setrate_usbhost,
++ .round_rate = s3c2450_roundrate_clksrc4,
++};
++
++/* clk_hsmcc_div
++ *
++ * this clock is sourced from epll, and is fed through a divider,
++ * to a mux controlled by sclkcon where either it or a extclk can
++ * be fed to the hsmmc block
++*/
++
++static unsigned long s3c2450_getrate_hsmmc_div(struct clk *clk)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long div = __raw_readl(S3C2443_CLKDIV1);
++
++ div &= S3C2443_CLKDIV1_HSMMCDIV_MASK;
++ div >>= S3C2443_CLKDIV1_HSMMCDIV_SHIFT;
++
++ return parent_rate / (div + 1);
++}
++
++static int s3c2450_setrate_hsmmc_div(struct clk *clk, unsigned long rate)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long clkdivn = __raw_readl(S3C2443_CLKDIV1);
++
++ rate = s3c2450_roundrate_clksrc4(clk, rate);
++ rate = parent_rate / rate;
++
++ clkdivn &= ~S3C2443_CLKDIV1_HSMMCDIV_MASK;
++ clkdivn |= (rate - 1) << S3C2443_CLKDIV1_HSMMCDIV_SHIFT;
++
++ __raw_writel(clkdivn, S3C2443_CLKDIV1);
++ return 0;
++}
++
++static struct clk clk_hsmmc_div = {
++ .name = "hsmmc-div",
++ .id = -1,
++ .parent = &clk_esysclk,
++ .get_rate = s3c2450_getrate_hsmmc_div,
++ .set_rate = s3c2450_setrate_hsmmc_div,
++ .round_rate = s3c2450_roundrate_clksrc4,
++};
++
++static int s3c2450_setparent_hsmmc(struct clk *clk, struct clk *parent)
++{
++ unsigned long clksrc = __raw_readl(S3C2443_SCLKCON);
++
++ clksrc &= ~(S3C2443_SCLKCON_HSMMCCLK_EXT |
++ S3C2443_SCLKCON_HSMMCCLK_EPLL);
++
++ if (parent == &clk_epll)
++ clksrc |= S3C2443_SCLKCON_HSMMCCLK_EPLL;
++ else if (parent == &clk_ext)
++ clksrc |= S3C2443_SCLKCON_HSMMCCLK_EXT;
++ else
++ return -EINVAL;
++
++ if (clk->usage > 0) {
++ __raw_writel(clksrc, S3C2443_SCLKCON);
++ }
++
++ clk->parent = parent;
++ return 0;
++}
++
++static int s3c2450_enable_hsmmc(struct clk *clk, int enable)
++{
++ return s3c2450_setparent_hsmmc(clk, clk->parent);
++}
++
++static struct clk clk_hsmmc = {
++ .name = "hsmmc-if",
++ .id = -1,
++ .parent = &clk_hsmmc_div,
++ .enable = s3c2450_enable_hsmmc,
++ .set_parent = s3c2450_setparent_hsmmc,
++};
++
++/* i2s_eplldiv
++ *
++ * this clock is the output from the i2s divisor of esysclk
++*/
++
++static unsigned long s3c2450_getrate_i2s_eplldiv(struct clk *clk)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long div = __raw_readl(S3C2443_CLKDIV1);
++
++ div &= S3C2443_CLKDIV1_I2SDIV_MASK;
++ div >>= S3C2443_CLKDIV1_I2SDIV_SHIFT;
++
++ return parent_rate / (div + 1);
++}
++
++static int s3c2450_setrate_i2s_eplldiv(struct clk *clk, unsigned long rate)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long clkdivn = __raw_readl(S3C2443_CLKDIV1);
++
++ rate = s3c2450_roundrate_clksrc16(clk, rate);
++ rate = parent_rate / rate;
++
++ clkdivn &= ~S3C2443_CLKDIV1_I2SDIV_MASK;
++ clkdivn |= (rate - 1) << S3C2443_CLKDIV1_I2SDIV_SHIFT;
++
++ __raw_writel(clkdivn, S3C2443_CLKDIV1);
++ return 0;
++}
++
++static struct clk clk_i2s_eplldiv = {
++ .name = "i2s-eplldiv",
++ .id = -1,
++ .parent = &clk_esysclk,
++ .get_rate = s3c2450_getrate_i2s_eplldiv,
++ .set_rate = s3c2450_setrate_i2s_eplldiv,
++ .round_rate = s3c2450_roundrate_clksrc16,
++};
++
++/* i2s-ref
++ *
++ * i2s bus reference clock, selectable from external, esysclk or epllref
++*/
++
++static int s3c2450_setparent_i2s(struct clk *clk, struct clk *parent)
++{
++ unsigned long clksrc = __raw_readl(S3C2443_CLKSRC);
++
++ clksrc &= ~S3C2443_CLKSRC_I2S_MASK;
++
++ if (parent == &clk_epllref)
++ clksrc |= S3C2443_CLKSRC_I2S_EPLLREF;
++ else if (parent == &clk_i2s_ext)
++ clksrc |= S3C2443_CLKSRC_I2S_EXT;
++ else if (parent != &clk_i2s_eplldiv)
++ return -EINVAL;
++
++ clk->parent = parent;
++ __raw_writel(clksrc, S3C2443_CLKSRC);
++
++ return 0;
++}
++
++static struct clk clk_i2s = {
++ .name = "i2s-if",
++ .id = -1,
++ .parent = &clk_i2s_eplldiv,
++ .ctrlbit = S3C2443_SCLKCON_I2SCLK,
++ .enable = s3c2450_clkcon_enable_s,
++ .set_parent = s3c2450_setparent_i2s,
++};
++
++/* cam-if
++ *
++ * camera interface bus-clock, divided down from esysclk
++*/
++
++static unsigned long s3c2450_getrate_cam(struct clk *clk)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long div = __raw_readl(S3C2443_CLKDIV1);
++
++ div &= S3C2443_CLKDIV1_CAMDIV_MASK;
++ div >>= S3C2443_CLKDIV1_CAMDIV_SHIFT;
++
++ return parent_rate / (div + 1);
++}
++
++static int s3c2450_setrate_cam(struct clk *clk, unsigned long rate)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long clkdiv1 = __raw_readl(S3C2443_CLKDIV1);
++
++ rate = s3c2450_roundrate_clksrc16(clk, rate);
++ rate = parent_rate / rate;
++
++ clkdiv1 &= ~S3C2443_CLKDIV1_CAMDIV_MASK;
++ clkdiv1 |= (rate - 1) << S3C2443_CLKDIV1_CAMDIV_SHIFT;
++
++ __raw_writel(clkdiv1, S3C2443_CLKDIV1);
++ return 0;
++}
++
++static struct clk clk_cam = {
++ .name = "camif-upll", /* same as 2440 name */
++ .id = -1,
++ .parent = &clk_esysclk,
++ .ctrlbit = S3C2443_SCLKCON_CAMCLK,
++ .enable = s3c2450_clkcon_enable_s,
++ .get_rate = s3c2450_getrate_cam,
++ .set_rate = s3c2450_setrate_cam,
++ .round_rate = s3c2450_roundrate_clksrc16,
++};
++
++static struct clk clk_cam_h = {
++ .name = "camif-hclk",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c2450_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_CAMIF,
++};
++
++#define CAMDIV_val 26
++
++static int s3c2450_setrate_camera(struct clk *clk, unsigned long rate)
++{
++ unsigned int camclk_div, val, hclkcon;
++ unsigned long src_clk = clk_get_rate(clk->parent);
++
++ if (rate == 4800000) {
++ printk(KERN_INFO "External camera clock is set to 48MHz\n");
++ }
++ else if (rate > 48000000) {
++ printk(KERN_ERR "Invalid camera clock\n");
++ }
++
++ writel(readl(S3C2443_CLKSRC) | (1 << 20), S3C2443_CLKSRC);
++
++ camclk_div = src_clk / rate;
++ printk("Parent clock for Camera = %ld, CAMDIV = %d\n", src_clk, camclk_div);
++
++ val = readl(S3C2443_CLKDIV1);
++ val &= ~(0xf<<CAMDIV_val);
++ writel(val, S3C2443_CLKDIV1);
++
++ val |= ((camclk_div -1) << CAMDIV_val);
++ writel(val, S3C2443_CLKDIV1);
++ val = readl(S3C2443_CLKDIV1);
++
++ return 0;
++}
++
++/* display-if
++ *
++ * display interface clock, divided from esysclk
++*/
++
++static unsigned long s3c2450_getrate_display(struct clk *clk)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long div = __raw_readl(S3C2443_CLKDIV1);
++
++ div &= S3C2443_CLKDIV1_DISPDIV_MASK;
++ div >>= S3C2443_CLKDIV1_DISPDIV_SHIFT;
++
++ return parent_rate / (div + 1);
++}
++
++static int s3c2450_setrate_display(struct clk *clk, unsigned long rate)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long clkdivn = __raw_readl(S3C2443_CLKDIV1);
++
++ rate = s3c2450_roundrate_clksrc256(clk, rate);
++ rate = parent_rate / rate;
++
++ clkdivn &= ~S3C2443_CLKDIV1_UARTDIV_MASK;
++ clkdivn |= (rate - 1) << S3C2443_CLKDIV1_UARTDIV_SHIFT;
++
++ __raw_writel(clkdivn, S3C2443_CLKDIV1);
++ return 0;
++}
++
++static struct clk clk_display = {
++ .name = "display-if",
++ .id = -1,
++ .parent = &clk_esysclk,
++ .ctrlbit = S3C2443_SCLKCON_DISPCLK,
++ .enable = s3c2450_clkcon_enable_s,
++ .get_rate = s3c2450_getrate_display,
++ .set_rate = s3c2450_setrate_display,
++ .round_rate = s3c2450_roundrate_clksrc256,
++};
++
++/* standard clock definitions */
++
++static struct clk init_clocks_disable[] = {
++ {
++ .name = "nand",
++ .id = -1,
++ .parent = &clk_h,
++ }, {
++ .name = "sdi",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c2450_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_SDI,
++ }, {
++ .name = "adc",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c2450_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_ADC,
++ }, {
++ .name = "i2c",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c2450_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_IIC,
++ }, {
++ .name = "iis",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c2450_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_IIS,
++ }, {
++ .name = "spi",
++ .id = 0,
++ .parent = &clk_p,
++ .enable = s3c2450_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_SPI0,
++ }, {
++ .name = "spi",
++ .id = 1,
++ .parent = &clk_p,
++ .enable = s3c2450_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_SPI1,
++ }
++};
++
++static struct clk init_clocks[] = {
++ {
++ .name = "dma",
++ .id = 0,
++ .parent = &clk_h,
++ .enable = s3c2450_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_DMA0,
++ }, {
++ .name = "dma",
++ .id = 1,
++ .parent = &clk_h,
++ .enable = s3c2450_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_DMA1,
++ }, {
++ .name = "dma",
++ .id = 2,
++ .parent = &clk_h,
++ .enable = s3c2450_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_DMA2,
++ }, {
++ .name = "dma",
++ .id = 3,
++ .parent = &clk_h,
++ .enable = s3c2450_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_DMA3,
++ }, {
++ .name = "dma",
++ .id = 4,
++ .parent = &clk_h,
++ .enable = s3c2450_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_DMA4,
++ }, {
++ .name = "dma",
++ .id = 5,
++ .parent = &clk_h,
++ .enable = s3c2450_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_DMA5,
++ }, {
++ .name = "lcd",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c2450_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_LCDC,
++ }, {
++ .name = "gpio",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c2450_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_GPIO,
++ }, {
++ .name = "usb-host",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c2450_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_USBH,
++ }, {
++ .name = "usb-device",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c2450_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_USBD,
++ }, {
++ .name = "hsmmc",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c2450_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_HSMMC,
++ }, {
++ .name = "cfc",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c2450_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_CFC,
++ }, {
++ .name = "ssmc",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c2450_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_SSMC,
++ }, {
++ .name = "timers",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c2450_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_PWMT,
++ }, {
++ .name = "uart",
++ .id = 0,
++ .parent = &clk_p,
++ .enable = s3c2450_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_UART0,
++ }, {
++ .name = "uart",
++ .id = 1,
++ .parent = &clk_p,
++ .enable = s3c2450_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_UART1,
++ }, {
++ .name = "uart",
++ .id = 2,
++ .parent = &clk_p,
++ .enable = s3c2450_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_UART2,
++ }, {
++ .name = "uart",
++ .id = 3,
++ .parent = &clk_p,
++ .enable = s3c2450_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_UART3,
++ }, {
++ .name = "rtc",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c2450_clkcon_enable_p,
++ .ctrlbit = S3C2443_PCLKCON_RTC,
++ }, {
++ .name = "watchdog",
++ .id = -1,
++ .parent = &clk_p,
++ .ctrlbit = S3C2443_PCLKCON_WDT,
++ }, {
++ .name = "usb-bus-host",
++ .id = -1,
++ .parent = &clk_usb_bus_host,
++ }, {
++ .name = "ac97",
++ .id = -1,
++ .parent = &clk_p,
++ .ctrlbit = S3C2443_PCLKCON_AC97,
++ }, {
++ .name = "hsmmc",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c2450_clkcon_enable_h,
++ .ctrlbit = S3C2443_HCLKCON_HSMMC
++ }, {
++ .name = "hsmmc-epll",
++ .id = -1,
++ .parent = &clk_epll,
++ }, {
++ .name = "hsmmc-ext",
++ .id = -1,
++ .parent = &clk_ext,
++ .enable = s3c2450_clkcon_enable_s,
++ .ctrlbit = S3C2443_SCLKCON_HSMMCCLK_EXT,
++ .rate = 12 * 1000 * 1000
++ },
++ {
++ .name = "camera",
++ .id = -1,
++ .parent = &clk_cam_h,
++ .enable = s3c2450_clkcon_enable_s,
++ .ctrlbit = S3C2443_SCLKCON_CAMCLK,
++ .set_rate = s3c2450_setrate_camera,
++ },
++};
++
++/* clocks to add where we need to check their parentage */
++
++/* s3c2450_clk_initparents
++ *
++ * Initialise the parents for the clocks that we get at start-time
++*/
++
++static int __init clk_init_set_parent(struct clk *clk, struct clk *parent)
++{
++ printk(KERN_DEBUG "clock %s: parent %s\n", clk->name, parent->name);
++ return clk_set_parent(clk, parent);
++}
++
++static void __init s3c2450_clk_initparents(void)
++{
++ unsigned long clksrc = __raw_readl(S3C2443_CLKSRC);
++ struct clk *parent;
++
++ switch (clksrc & S3C2443_CLKSRC_EPLLREF_MASK) {
++ case S3C2443_CLKSRC_EPLLREF_EXTCLK:
++ parent = &clk_ext;
++ break;
++
++ case S3C2443_CLKSRC_EPLLREF_XTAL:
++ default:
++ parent = &clk_xtal;
++ break;
++
++ case S3C2443_CLKSRC_EPLLREF_MPLLREF:
++ case S3C2443_CLKSRC_EPLLREF_MPLLREF2:
++ parent = &clk_mpllref;
++ break;
++ }
++
++ clk_init_set_parent(&clk_epllref, parent);
++
++ switch (clksrc & S3C2443_CLKSRC_I2S_MASK) {
++ case S3C2443_CLKSRC_I2S_EXT:
++ parent = &clk_i2s_ext;
++ break;
++
++ case S3C2443_CLKSRC_I2S_EPLLDIV:
++ default:
++ parent = &clk_i2s_eplldiv;
++ break;
++
++ case S3C2443_CLKSRC_I2S_EPLLREF:
++ case S3C2443_CLKSRC_I2S_EPLLREF3:
++ parent = &clk_epllref;
++ }
++
++ clk_init_set_parent(&clk_i2s, &clk_epllref);
++
++ /* esysclk source */
++
++ parent = (clksrc & S3C2443_CLKSRC_ESYSCLK_EPLL) ?
++ &clk_epll : &clk_epllref;
++
++ clk_init_set_parent(&clk_esysclk, parent);
++
++ /* msysclk source */
++
++ if (clksrc & S3C2443_CLKSRC_MSYSCLK_MPLL) {
++ parent = &clk_mpll;
++ } else {
++ parent = (clksrc & S3C2443_CLKSRC_EXTCLK_DIV) ?
++ &clk_mdivclk : &clk_mpllref;
++ }
++
++ clk_init_set_parent(&clk_msysclk, parent);
++}
++
++/* armdiv divisor table */
++
++static unsigned int armdiv[16] = {
++ [S3C2443_CLKDIV0_ARMDIV_1 >> S3C2443_CLKDIV0_ARMDIV_SHIFT] = 1,
++ [S3C2443_CLKDIV0_ARMDIV_2 >> S3C2443_CLKDIV0_ARMDIV_SHIFT] = 2,
++ [S3C2443_CLKDIV0_ARMDIV_3 >> S3C2443_CLKDIV0_ARMDIV_SHIFT] = 3,
++ [S3C2443_CLKDIV0_ARMDIV_4 >> S3C2443_CLKDIV0_ARMDIV_SHIFT] = 4,
++ [S3C2443_CLKDIV0_ARMDIV_6 >> S3C2443_CLKDIV0_ARMDIV_SHIFT] = 6,
++ [S3C2443_CLKDIV0_ARMDIV_8 >> S3C2443_CLKDIV0_ARMDIV_SHIFT] = 8,
++ [S3C2443_CLKDIV0_ARMDIV_12 >> S3C2443_CLKDIV0_ARMDIV_SHIFT] = 12,
++ [S3C2443_CLKDIV0_ARMDIV_16 >> S3C2443_CLKDIV0_ARMDIV_SHIFT] = 16,
++};
++
++static inline unsigned int s3c2450_fclk_div(unsigned long clkcon0)
++{
++ clkcon0 &= S3C2443_CLKDIV0_ARMDIV_MASK;
++
++ return armdiv[clkcon0 >> S3C2443_CLKDIV0_ARMDIV_SHIFT];
++}
++
++static inline unsigned long s3c2450_get_prediv(unsigned long clkcon0)
++{
++ clkcon0 &= S3C2443_CLKDIV0_PREDIV_MASK;
++ clkcon0 >>= S3C2443_CLKDIV0_PREDIV_SHIFT;
++
++ return clkcon0 + 1;
++}
++
++/* clocks to add straight away */
++
++static struct clk *clks[] __initdata = {
++ &clk_ext,
++ &clk_epll,
++ &clk_usb_bus_host,
++ &clk_usb_bus,
++ &clk_esysclk,
++ &clk_epllref,
++ &clk_mpllref,
++ &clk_msysclk,
++ &clk_uart,
++ &clk_display,
++ &clk_cam,
++ &clk_i2s_eplldiv,
++ &clk_i2s,
++ &clk_hsspi,
++ &clk_hsmmc_div,
++ &clk_hsmmc,
++ &clk_cam_h,
++};
++
++void __init s3c2450_init_clocks(int xtal)
++{
++ unsigned long epllcon = __raw_readl(S3C2443_EPLLCON);
++ unsigned long mpllcon = __raw_readl(S3C2443_MPLLCON);
++ unsigned long clkdiv0 = __raw_readl(S3C2443_CLKDIV0);
++ unsigned long pll;
++ unsigned long fclk;
++ unsigned long hclk;
++ unsigned long pclk;
++ struct clk *clkp;
++ int ret;
++ int ptr;
++
++ pll = s3c2443_get_mpll(mpllcon, xtal);
++
++ fclk = pll / s3c2450_fclk_div(clkdiv0);
++ hclk = pll / s3c2450_get_prediv(clkdiv0);
++ hclk = hclk / ((clkdiv0 & S3C2443_CLKDIV0_HALF_HCLK) ? 2 : 1);
++ pclk = hclk / ((clkdiv0 & S3C2443_CLKDIV0_HALF_PCLK) ? 2 : 1);
++
++ s3c24xx_setup_clocks(xtal, fclk, hclk, pclk);
++
++ printk("S3C2450: mpll %s %ld.%03ld MHz, cpu %ld.%03ld MHz, mem %ld.%03ld MHz, pclk %ld.%03ld MHz\n",
++ (mpllcon & S3C2443_PLLCON_OFF) ? "off":"on",
++ print_mhz(pll), print_mhz(fclk),
++ print_mhz(hclk), print_mhz(pclk));
++
++ s3c2450_clk_initparents();
++
++ for (ptr = 0; ptr < ARRAY_SIZE(clks); ptr++) {
++ clkp = clks[ptr];
++
++ ret = s3c24xx_register_clock(clkp);
++ if (ret < 0) {
++ printk(KERN_ERR "Failed to register clock %s (%d)\n",
++ clkp->name, ret);
++ }
++ }
++
++ clk_epll.rate = s3c2443_get_epll(epllcon, xtal);
++
++ clk_usb_bus.parent = &clk_usb_bus_host;
++
++ /* ensure usb bus clock is within correct rate of 48MHz */
++
++ if (clk_get_rate(&clk_usb_bus_host) != (48 * 1000 * 1000)) {
++ printk(KERN_INFO "Warning: USB host bus not at 48MHz\n");
++ clk_set_rate(&clk_usb_bus_host, 48*1000*1000);
++ }
++
++ printk("S3C2450: epll %s %ld.%03ld MHz, usb-bus %ld.%03ld MHz\n",
++ (epllcon & S3C2443_PLLCON_OFF) ? "off":"on",
++ print_mhz(clk_get_rate(&clk_epll)),
++ print_mhz(clk_get_rate(&clk_usb_bus)));
++
++ /* register clocks from clock array */
++
++ clkp = init_clocks;
++ for (ptr = 0; ptr < ARRAY_SIZE(init_clocks); ptr++, clkp++) {
++ ret = s3c24xx_register_clock(clkp);
++ if (ret < 0) {
++ printk(KERN_ERR "Failed to register clock %s (%d)\n",
++ clkp->name, ret);
++ }
++ }
++
++ /* We must be careful disabling the clocks we are not intending to
++ * be using at boot time, as subsystems such as the LCD which do
++ * their own DMA requests to the bus can cause the system to lockup
++ * if they where in the middle of requesting bus access.
++ *
++ * Disabling the LCD clock if the LCD is active is very dangerous,
++ * and therefore the bootloader should be careful to not enable
++ * the LCD clock if it is not needed.
++ */
++
++ /* install (and disable) the clocks we do not need immediately */
++
++ clkp = init_clocks_disable;
++ for (ptr = 0; ptr < ARRAY_SIZE(init_clocks_disable); ptr++, clkp++) {
++
++ ret = s3c24xx_register_clock(clkp);
++ if (ret < 0) {
++ printk(KERN_ERR "Failed to register clock %s (%d)\n",
++ clkp->name, ret);
++ }
++
++ (clkp->enable)(clkp, 0);
++ }
++}
++
+diff --git a/arch/arm/mach-s3c2450/mach-smdk2450.c b/arch/arm/mach-s3c2450/mach-smdk2450.c
+new file mode 100644
+index 0000000..589089a
+--- /dev/null
++++ b/arch/arm/mach-s3c2450/mach-smdk2450.c
+@@ -0,0 +1,565 @@
++/* linux/arch/arm/mach-s3c2450/mach-smdk2450.c
++ *
++ * Copyright (c) 2007 Samsung Electronics
++ *
++ *
++ * Thanks to Samsung for the loan of an SMDK2450
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++*/
++
++#include <linux/kernel.h>
++#include <linux/types.h>
++#include <linux/interrupt.h>
++#include <linux/list.h>
++#include <linux/timer.h>
++#include <linux/init.h>
++#include <linux/serial_core.h>
++#include <linux/platform_device.h>
++
++#include <asm/mach/arch.h>
++#include <asm/mach/map.h>
++#include <asm/mach/irq.h>
++
++#include <asm/setup.h>
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/mach-types.h>
++
++#include <asm/plat-s3c/regs-serial.h>
++#include <asm/plat-s3c/nand.h>
++#include <asm/plat-s3c/adc.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-gpioj.h>
++#include <asm/arch/regs-lcd.h>
++#include <asm/arch/regs-mem.h>
++
++#include <asm/arch/idle.h>
++#include <asm/arch/fb.h>
++
++#include <asm/plat-s3c24xx/clock.h>
++#include <asm/plat-s3c24xx/devs.h>
++#include <asm/plat-s3c24xx/cpu.h>
++
++#include <asm/plat-s3c24xx/common-smdk.h>
++
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/partitions.h>
++
++#include <asm/arch/hsmmc.h>
++
++#if defined(CONFIG_RTC_DRV_S3C)
++#include <asm/plat-s3c/regs-rtc.h>
++#endif
++
++#include <asm/plat-s3c/regs-adc.h>
++#include <asm/plat-s3c/ts.h>
++
++static struct map_desc smdk2450_iodesc[] __initdata = {
++
++ /* ISA IO Space map (memory space selected by A24) */
++
++ {
++ .virtual = (u32)S3C24XX_VA_ISA_WORD,
++ .pfn = __phys_to_pfn(S3C2410_CS2),
++ .length = 0x10000,
++ .type = MT_DEVICE,
++ }, {
++ .virtual = (u32)S3C24XX_VA_ISA_WORD + 0x10000,
++ .pfn = __phys_to_pfn(S3C2410_CS2 + (1<<24)),
++ .length = SZ_4M,
++ .type = MT_DEVICE,
++ }, {
++ .virtual = (u32)S3C24XX_VA_ISA_BYTE,
++ .pfn = __phys_to_pfn(S3C2410_CS2),
++ .length = 0x10000,
++ .type = MT_DEVICE,
++ }, {
++ .virtual = (u32)S3C24XX_VA_ISA_BYTE + 0x10000,
++ .pfn = __phys_to_pfn(S3C2410_CS2 + (1<<24)),
++ .length = SZ_4M,
++ .type = MT_DEVICE,
++ }
++};
++
++#define UCON S3C2410_UCON_DEFAULT | S3C2410_UCON_UCLK
++#define ULCON S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB
++#define UFCON S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE
++
++static struct s3c24xx_uart_clksrc smdk2450_serial_clocks[] = {
++ [0] = {
++ .name = "pclk",
++ .divisor = 1,
++ .min_baud = 0,
++ .max_baud = 0,
++ },
++ [1] = {
++ .name = "esysclk",
++ .divisor = 1,
++ .min_baud = 0,
++ .max_baud = 0,
++ }
++
++};
++
++static struct s3c2410_uartcfg smdk2450_uartcfgs[] __initdata = {
++ [0] = {
++ .hwport = 0,
++ .flags = 0,
++ .ucon = 0x3c5,
++ .ulcon = 0x03,
++ .ufcon = 0x51,
++ },
++ [1] = {
++ .hwport = 1,
++ .flags = 0,
++ .ucon = 0xfc5,
++ .ulcon = 0x03,
++ .ufcon = 0x51,
++ .clocks = smdk2450_serial_clocks,
++ .clocks_size = ARRAY_SIZE(smdk2450_serial_clocks),
++ },
++ /* IR port */
++ [2] = {
++ .hwport = 2,
++ .flags = 0,
++ .ucon = 0xfc5,
++ .ulcon = 0x43,
++ .ufcon = 0x51,
++ .clocks = smdk2450_serial_clocks,
++ .clocks_size = ARRAY_SIZE(smdk2450_serial_clocks),
++ }
++};
++
++static struct platform_device *smdk2450_devices[] __initdata = {
++ &s3c_device_spi0,
++ &s3c_device_spi1,
++ &s3c_device_wdt,
++ &s3c_device_i2c,
++ &s3c_device_rtc,
++ &s3c_device_adc,
++ &s3c_device_ts,
++ &s3c_device_iis,
++ &s3c_device_usbgadget,
++ &s3c_device_usb,
++ &s3c_device_hsmmc0,
++ &s3c_device_hsmmc1,
++ &s3c_device_camif,
++ &s3c_device_smc911x,
++};
++
++static void __init smdk2450_map_io(void)
++{
++ s3c24xx_init_io(smdk2450_iodesc, ARRAY_SIZE(smdk2450_iodesc));
++ s3c24xx_init_clocks(12000000);
++ s3c24xx_init_uarts(smdk2450_uartcfgs, ARRAY_SIZE(smdk2450_uartcfgs));
++}
++
++static void smdk2450_cs89x0_set(void)
++{
++ u32 val;
++
++ val = readl(S3C_BANK_CFG);
++ val &= ~((1<<8)|(1<<9)|(1<<10));
++ writel(val, S3C_BANK_CFG);
++
++ /* Bank1 Idle cycle ctrl. */
++ writel(0xf, S3C_SSMC_SMBIDCYR1);
++
++ /* Bank1 Read Wait State cont. = 14 clk Tacc? */
++ writel(12, S3C_SSMC_SMBWSTRDR1);
++
++ /* Bank1 Write Wait State ctrl. */
++ writel(12, S3C_SSMC_SMBWSTWRR1);
++
++ /* Bank1 Output Enable Assertion Delay ctrl. Tcho? */
++ writel(2, S3C_SSMC_SMBWSTOENR1);
++
++ /* Bank1 Write Enable Assertion Delay ctrl. */
++ writel(2, S3C_SSMC_SMBWSTWENR1);
++
++ /* SMWAIT active High, Read Byte Lane Enabl WS1? */
++ val = readl(S3C_SSMC_SMBCR1);
++
++ val |= ((1<<15)|(1<<7));
++ writel(val, S3C_SSMC_SMBCR1);
++
++ val = readl(S3C_SSMC_SMBCR1);
++ val |= ((1<<2)|(1<<0));
++ writel(val, S3C_SSMC_SMBCR1);
++
++ val = readl(S3C_SSMC_SMBCR1);
++ val &= ~((3<<20)|(3<<12));
++ writel(val, S3C_SSMC_SMBCR1);
++
++ val = readl(S3C_SSMC_SMBCR1);
++ val &= ~(3<<4);
++ writel(val, S3C_SSMC_SMBCR1);
++
++ val = readl(S3C_SSMC_SMBCR1);
++ val |= (1<<4);
++
++ writel(val, S3C_SSMC_SMBCR1);
++
++}
++
++static void smdk2450_smc911x_set(void)
++{
++ u32 val;
++
++ /* Bank1 Idle cycle ctrl. */
++ writel(0xf, S3C_SSMC_SMBIDCYR4);
++
++ /* Bank1 Read Wait State cont. = 14 clk Tacc? */
++ writel(12, S3C_SSMC_SMBWSTRDR4);
++
++ /* Bank1 Write Wait State ctrl. */
++ writel(12, S3C_SSMC_SMBWSTWRR4);
++
++ /* Bank1 Output Enable Assertion Delay ctrl. Tcho? */
++ writel(2, S3C_SSMC_SMBWSTOENR4);
++
++ /* Bank1 Write Enable Assertion Delay ctrl. */
++ writel(2, S3C_SSMC_SMBWSTWENR4);
++
++ /* SMWAIT active High, Read Byte Lane Enabl WS1? */
++ val = readl(S3C_SSMC_SMBCR4);
++
++ val |= ((1<<15)|(1<<7));
++ writel(val, S3C_SSMC_SMBCR4);
++
++ val = readl(S3C_SSMC_SMBCR4);
++ val |= ((1<<2)|(1<<0));
++ writel(val, S3C_SSMC_SMBCR4);
++
++ val = readl(S3C_SSMC_SMBCR4);
++ val &= ~((3<<20)|(3<<12));
++ writel(val, S3C_SSMC_SMBCR4);
++
++ val = readl(S3C_SSMC_SMBCR4);
++ val &= ~(3<<4);
++ writel(val, S3C_SSMC_SMBCR4);
++
++ val = readl(S3C_SSMC_SMBCR4);
++ val |= (1<<4);
++
++ writel(val, S3C_SSMC_SMBCR4);
++
++}
++
++
++static void smdk2450_hsmmc_init (void)
++{
++ /* GPIO E (external interrupt) : Chip detect */
++ s3c2410_gpio_cfgpin(S3C2410_GPF1, S3C2410_GPF1_EINT1); /* GPF1 to EINT1 */
++}
++
++static void __init smdk2450_machine_init(void)
++{
++ smdk2450_smc911x_set();
++ platform_add_devices(smdk2450_devices, ARRAY_SIZE(smdk2450_devices));
++ smdk_machine_init();
++ smdk2450_hsmmc_init();
++}
++
++static void __init smdk2450_fixup (struct machine_desc *desc, struct tag *tags,
++ char **cmdline, struct meminfo *mi)
++{
++ /*
++ * Bank start addresses are not present in the information
++ * passed in from the boot loader. We could potentially
++ * detect them, but instead we hard-code them.
++ */
++ mi->bank[0].start = PHYS_OFFSET;
++
++#if defined(CONFIG_VIDEO_SAMSUNG)
++ mi->bank[0].size = 49*1024*1024;
++#else
++ mi->bank[0].size = 64*1024*1024;
++#endif
++ mi->bank[0].node = 0;
++
++ mi->nr_banks = 1;
++}
++
++
++MACHINE_START(SMDK2450, "SMDK2450")
++ /* Maintainer: Ben Dooks <ben@fluff.org> */
++ .phys_io = S3C2410_PA_UART,
++ .io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
++ .boot_params = S3C2410_SDRAM_PA + 0x100,
++
++ .init_irq = s3c24xx_init_irq,
++ .map_io = smdk2450_map_io,
++ .fixup = smdk2450_fixup,
++ .init_machine = smdk2450_machine_init,
++ .timer = &s3c24xx_timer,
++MACHINE_END
++
++
++void hsmmc_set_gpio (uint channel, uint width)
++{
++ switch (channel) {
++
++ /* can supports 1 and 4 bit bus */
++ case 0:
++ /* GPIO E : Command, Clock */
++ s3c2410_gpio_cfgpin(S3C2410_GPE5, S3C2450_GPE5_SD0_CLK);
++ s3c2410_gpio_cfgpin(S3C2410_GPE6, S3C2450_GPE6_SD0_CMD);
++
++ if (width == 1) {
++ /* GPIO E : MMC DATA0[0] */
++ s3c2410_gpio_cfgpin(S3C2410_GPE7, S3C2450_GPE7_SD0_DAT0);
++ }
++ else if (width == 4) {
++ /* GPIO E : MMC DATA0[0:3] */
++ s3c2410_gpio_cfgpin(S3C2410_GPE7, S3C2450_GPE7_SD0_DAT0);
++ s3c2410_gpio_cfgpin(S3C2410_GPE8, S3C2450_GPE8_SD0_DAT1);
++ s3c2410_gpio_cfgpin(S3C2410_GPE9, S3C2450_GPE9_SD0_DAT2);
++ s3c2410_gpio_cfgpin(S3C2410_GPE10, S3C2450_GPE10_SD0_DAT3);
++ }
++ break;
++
++ /* can supports 1, 4, and 8 bit bus */
++ case 1:
++ /* GPIO L : Command, Clock */
++ s3c2410_gpio_cfgpin(S3C2443_GPL8, S3C2450_GPL8_SD1CMD);
++ s3c2410_gpio_cfgpin(S3C2443_GPL9, S3C2450_GPL9_SD1CLK);
++
++ /* GPIO J : Chip detect, LED, Write Protect */
++ s3c2410_gpio_cfgpin(S3C2443_GPJ13, S3C2450_GPJ13_SD1LED);
++ s3c2410_gpio_cfgpin(S3C2443_GPJ14, S3C2450_GPJ14_nSD1CD);
++
++ s3c2410_gpio_cfgpin(S3C2443_GPJ15, S3C2450_GPJ15_nSD1WP); /* write protect enable */
++ s3c2410_gpio_setpin(S3C2443_GPJ15, 1);
++
++ if (width == 1) {
++ /* GPIO L : MMC DATA1[0] */
++ s3c2410_gpio_cfgpin(S3C2443_GPL0, S3C2450_GPL0_SD1DAT0);
++ }
++ else if (width == 4) {
++ /* GPIO L : MMC DATA1[0:3] */
++ s3c2410_gpio_cfgpin(S3C2443_GPL0, S3C2450_GPL0_SD1DAT0);
++ s3c2410_gpio_cfgpin(S3C2443_GPL1, S3C2450_GPL1_SD1DAT1);
++ s3c2410_gpio_cfgpin(S3C2443_GPL2, S3C2450_GPL2_SD1DAT2);
++ s3c2410_gpio_cfgpin(S3C2443_GPL3, S3C2450_GPL3_SD1DAT3);
++ }
++ else if (width == 8) {
++ /* GPIO L : MMC DATA1[0:7] */
++ s3c2410_gpio_cfgpin(S3C2443_GPL0, S3C2450_GPL0_SD1DAT0);
++ s3c2410_gpio_cfgpin(S3C2443_GPL1, S3C2450_GPL1_SD1DAT1);
++ s3c2410_gpio_cfgpin(S3C2443_GPL2, S3C2450_GPL2_SD1DAT2);
++ s3c2410_gpio_cfgpin(S3C2443_GPL3, S3C2450_GPL3_SD1DAT3);
++
++ s3c2410_gpio_cfgpin(S3C2443_GPL4, S3C2450_GPL4_SD1DAT4);
++ s3c2410_gpio_cfgpin(S3C2443_GPL5, S3C2450_GPL5_SD1DAT5);
++ s3c2410_gpio_cfgpin(S3C2443_GPL6, S3C2450_GPL6_SD1DAT6);
++ s3c2410_gpio_cfgpin(S3C2443_GPL7, S3C2450_GPL7_SD1DAT7);
++ }
++ break;
++
++ default:
++ break;
++ }
++}
++
++
++#define HOST_CAPS (MMC_CAP_4_BIT_DATA | MMC_CAP_MULTIWRITE | \
++ MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED)
++
++/* Channel 0 : added HS-MMC channel */
++struct s3c_hsmmc_cfg s3c_hsmmc0_platform = {
++ .hwport = 0,
++ .enabled = 1,
++ .host_caps = HOST_CAPS,
++ .bus_width = 4,
++ .highspeed = 0,
++
++ /* ctrl for mmc */
++ .fd_ctrl[MMC_TYPE_MMC] = {
++ .ctrl2 = 0xC0000100, /* ctrl2 for mmc */
++ .ctrl3[SPEED_NORMAL] = 0, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0, /* ctrl3 for high speed */
++ .ctrl4 = 0x3,
++ },
++
++ /* ctrl for sd */
++ .fd_ctrl[MMC_TYPE_SD] = {
++ .ctrl2 = 0xC0000100, /* ctrl2 for sd */
++ .ctrl3[SPEED_NORMAL] = 0, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0, /* ctrl3 for high speed */
++ .ctrl4 = 0x3,
++ },
++
++ .clocks[0] = {
++ .name = "hsmmc",
++ .src = 0x1,
++ },
++
++ .clocks[1] = {
++ .name = "esysclk",
++ .src = 0x2,
++ },
++
++ .clocks[2] = {
++ .name = "hsmmc-ext",
++ .src = 0x3,
++ },
++};
++
++/* Channel 1 : default HS-MMC channel */
++struct s3c_hsmmc_cfg s3c_hsmmc1_platform = {
++ .hwport = 1, /* H/W Channel 1 */
++ .enabled = 1,
++ .host_caps = HOST_CAPS | MMC_CAP_8_BIT_DATA,
++ .bus_width = 8,
++ //.host_caps = HOST_CAPS,
++ //.bus_width = 4,
++
++ .highspeed = 0,
++
++ /* ctrl for mmc */
++ .fd_ctrl[MMC_TYPE_MMC] = {
++ .ctrl2 = 0xC0000100, /* ctrl2 for mmc */
++ .ctrl3[SPEED_NORMAL] = 0, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0, /* ctrl3 for high speed */
++ .ctrl4 = 0x3,
++ },
++
++ /* ctrl for sd */
++ .fd_ctrl[MMC_TYPE_SD] = {
++ .ctrl2 = 0xC0000100, /* ctrl2 for sd */
++ .ctrl3[SPEED_NORMAL] = 0, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0, /* ctrl3 for high speed */
++ .ctrl4 = 0x3,
++ },
++
++ .clocks[0] = {
++ .name = "hsmmc",
++ .src = 0x1,
++ },
++
++ .clocks[1] = {
++ .name = "esysclk",
++ .src = 0x2,
++ },
++
++ .clocks[2] = {
++ .name = "hsmmc-ext",
++ .src = 0x3,
++ },
++};
++
++#if defined(CONFIG_RTC_DRV_S3C)
++/* rtc function */
++unsigned int s3c_rtc_set_bit_byte(void __iomem *base, uint offset, uint val)
++{
++ return 0;
++}
++
++unsigned int s3c_rtc_read_alarm_status(void __iomem *base)
++{
++ return (readb(base + S3C2410_RTCALM) & S3C2410_RTCALM_ALMEN);
++}
++
++void s3c_rtc_set_pie(void __iomem *base, uint to)
++{
++ unsigned int tmp;
++
++ tmp = readb(base + S3C2410_TICNT) & ~S3C2410_TICNT_ENABLE;
++
++ if (to)
++ tmp |= S3C2410_TICNT_ENABLE;
++
++ writeb(tmp, base + S3C2410_TICNT);
++
++}
++
++void s3c_rtc_set_freq_regs(void __iomem *base, uint freq, uint *s3c_freq)
++{
++ unsigned int tmp;
++
++ tmp = readb(base + S3C2410_TICNT) & S3C2410_TICNT_ENABLE;
++ writew(readw(base + S3C2410_RTCCON) & (~(1<<8)),base + S3C2410_RTCCON);
++ *s3c_freq = freq;
++ tmp |= (128 / freq)-1;
++ writeb(tmp, base + S3C2410_TICNT);
++}
++
++void s3c_rtc_enable_set(struct platform_device *pdev,void __iomem *base, int en)
++{
++ unsigned int tmp;
++
++ if (!en) {
++ tmp = readb(base + S3C2410_RTCCON);
++ writeb(tmp & ~S3C2410_RTCCON_RTCEN, base + S3C2410_RTCCON);
++
++ tmp = readb(base + S3C2410_TICNT);
++ writeb(tmp & ~S3C2410_TICNT_ENABLE, base + S3C2410_TICNT);
++ } else {
++ /* re-enable the device, and check it is ok */
++ if ((readb(base+S3C2410_RTCCON) & S3C2410_RTCCON_RTCEN) == 0){
++ dev_info(&pdev->dev, "rtc disabled, re-enabling\n");
++
++ tmp = readb(base + S3C2410_RTCCON);
++ writeb(tmp|S3C2410_RTCCON_RTCEN, base+S3C2410_RTCCON);
++ }
++
++ if ((readb(base + S3C2410_RTCCON) & S3C2410_RTCCON_CNTSEL)){
++ dev_info(&pdev->dev, "removing RTCCON_CNTSEL\n");
++
++ tmp = readb(base + S3C2410_RTCCON);
++ writeb(tmp& ~S3C2410_RTCCON_CNTSEL, base+S3C2410_RTCCON);
++ }
++
++ if ((readb(base + S3C2410_RTCCON) & S3C2410_RTCCON_CLKRST)){
++ dev_info(&pdev->dev, "removing RTCCON_CLKRST\n");
++
++ tmp = readb(base + S3C2410_RTCCON);
++ writeb(tmp & ~S3C2410_RTCCON_CLKRST, base+S3C2410_RTCCON);
++ }
++ }
++}
++#endif
++
++struct s3c_adc_cfg s3c_adc_platform={
++ /* s3c2450 support 12-bit resolution */
++ .delay = 10000,
++ .presc = 49,
++ .resolution = 12,
++};
++
++#if defined(CONFIG_S3C_ADC)
++unsigned int s3c_adc_convert(void __iomem *reg_base,unsigned int s3c_adc_port)
++{
++ unsigned int adc_return;
++ unsigned long data0;
++ unsigned long data1;
++
++ writel(S3C2443_ADCCON_SELMUX(s3c_adc_port), reg_base+S3C2443_ADCMUX);
++
++ writel(readl(reg_base+S3C2410_ADCCON)|S3C2410_ADCCON_ENABLE_START, reg_base+S3C2410_ADCCON);
++
++ do {
++ data0 = readl(reg_base+S3C2410_ADCCON);
++ } while(!(data0 & S3C2410_ADCCON_ECFLG));
++
++ data1 = readl(reg_base+S3C2410_ADCDAT0);
++
++ adc_return = data1 & S3C_ADCDAT0_XPDATA_MASK_12BIT;
++
++ return adc_return;
++}
++#endif
++
++struct s3c_ts_mach_info s3c_ts_platform = {
++ .delay = 10000,
++ .presc = 49,
++ .oversampling_shift = 2,
++ .resol_bit = 12,
++};
++
+diff --git a/arch/arm/mach-s3c2450/s3c2450.c b/arch/arm/mach-s3c2450/s3c2450.c
+new file mode 100644
+index 0000000..153c96e
+--- /dev/null
++++ b/arch/arm/mach-s3c2450/s3c2450.c
+@@ -0,0 +1,113 @@
++/* linux/arch/arm/mach-s3c2450/s3c2450.c
++ *
++ * Copyright (c) 2007 Samsung Electronics
++ *
++ *
++ * Samsung S3C2450 Mobile CPU support
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++*/
++
++#include <linux/kernel.h>
++#include <linux/types.h>
++#include <linux/interrupt.h>
++#include <linux/list.h>
++#include <linux/timer.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/serial_core.h>
++#include <linux/sysdev.h>
++#include <linux/clk.h>
++
++#include <asm/mach/arch.h>
++#include <asm/mach/map.h>
++#include <asm/mach/irq.h>
++
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/irq.h>
++
++#include <asm/arch/regs-s3c-clock.h>
++#include <asm/arch/reset.h>
++
++#include <asm/plat-s3c24xx/s3c2450.h>
++#include <asm/plat-s3c24xx/devs.h>
++#include <asm/plat-s3c24xx/common-smdk.h>
++#include <asm/plat-s3c24xx/cpu.h>
++
++static struct map_desc s3c2450_iodesc[] __initdata = {
++ IODESC_ENT(WATCHDOG),
++ IODESC_ENT(CLKPWR),
++ IODESC_ENT(TIMER),
++ IODESC_ENT(LCD),
++ IODESC_ENT(EBI),
++ IODESC_ENT(SROMC),
++ IODESC_ENT(CS8900),
++ IODESC_ENT(USBDEV),
++};
++
++struct sysdev_class s3c2450_sysclass = {
++ set_kset_name("s3c2450-core"),
++};
++
++static struct sys_device s3c2450_sysdev = {
++ .cls = &s3c2450_sysclass,
++};
++
++static void s3c2450_hard_reset(void)
++{
++ __raw_writel(S3C2443_SWRST_RESET, S3C2443_SWRST);
++}
++
++int __init s3c2450_init(void)
++{
++ printk("S3C2450: Initialising architecture\n");
++
++ s3c24xx_reset_hook = s3c2450_hard_reset;
++
++#if !defined (CONFIG_MTD_NAND_S3C)
++ s3c_device_nand.name = "s3c2412-nand";
++#else
++ s3c_device_nand.name = "s3c-nand";
++#endif
++ /* Rename devices that are specific to s3c2450 */
++ s3c_device_lcd.name = "s3c-lcd";
++
++ /* change WDT IRQ number */
++ s3c_device_wdt.resource[1].start = IRQ_S3C2443_WDT;
++ s3c_device_wdt.resource[1].end = IRQ_S3C2443_WDT;
++
++ return sysdev_register(&s3c2450_sysdev);
++}
++
++void __init s3c2450_init_uarts(struct s3c2410_uartcfg *cfg, int no)
++{
++ s3c24xx_init_uartdevs("s3c2440-uart", s3c2410_uart_resources, cfg, no);
++}
++
++/* s3c2450_map_io
++ *
++ * register the standard cpu IO areas, and any passed in from the
++ * machine specific initialisation.
++ */
++
++void __init s3c2450_map_io(struct map_desc *mach_desc, int mach_size)
++{
++ iotable_init(s3c2450_iodesc, ARRAY_SIZE(s3c2450_iodesc));
++ iotable_init(mach_desc, mach_size);
++}
++
++/* need to register class before we actually register the device, and
++ * we also need to ensure that it has been initialised before any of the
++ * drivers even try to use it (even if not on an s3c2450 based system)
++ * as a driver which may support both 2450 and 2440 may try and use it.
++*/
++
++static int __init s3c2450_core_init(void)
++{
++ return sysdev_class_register(&s3c2450_sysclass);
++}
++
++core_initcall(s3c2450_core_init);
+diff --git a/arch/arm/mach-s3c6400/Kconfig b/arch/arm/mach-s3c6400/Kconfig
+new file mode 100644
+index 0000000..17223cf
+--- /dev/null
++++ b/arch/arm/mach-s3c6400/Kconfig
+@@ -0,0 +1,44 @@
++# arch/arm/mach-s3c6400/Kconfig
++#
++# Copyright 2007 Simtec Electronics
++#
++# Licensed under GPLv2
++
++menu "S3C6400 Machines"
++
++config MACH_SMDK6400
++ bool "SMDK6400"
++ select CPU_S3C6400
++ help
++ Say Y here if you are using the SMDK6400
++
++config S3C6400_PDFW
++ tristate "S3C6400 Power Domain Framework"
++ depends on CPU_S3C6400
++ help
++ Install power domain framework for S3C6400
++
++config S3C6400_PDFW_PROC
++ bool "/proc filesystem support for pdfw"
++ depends on CPU_S3C6400 && S3C6400_PDFW
++ help
++ proc file system for S3C6400 Power Domain Framework
++
++config S3C6400_KDPMD
++ tristate "S3C6400 Kernel Dynamic Power Management Daemon"
++ depends on CPU_S3C6400 && S3C6400_PDFW
++ help
++ Install kernel dynamic power management daemon
++endmenu
++
++config CPU_S3C6400
++ bool
++ depends on ARCH_S3C2410
++ select S3C6400_PM if PM
++ help
++ Support for S3C6400 Samsung Mobile CPU based systems.
++
++config S3C6400_PM
++ bool
++ help
++ Internal config node to apply S3C6400 power management
+diff --git a/arch/arm/mach-s3c6400/Makefile b/arch/arm/mach-s3c6400/Makefile
+new file mode 100644
+index 0000000..8319eb1
+--- /dev/null
++++ b/arch/arm/mach-s3c6400/Makefile
+@@ -0,0 +1,25 @@
++
++#
++# Makefile for the linux kernel.
++#
++
++# Object file lists.
++obj-y :=
++led-y := leds.o
++obj-n :=
++obj- :=
++
++# S3C6400 support files
++obj-$(CONFIG_CPU_S3C6400) += s3c6400.o clock.o irq.o dma.o
++obj-$(CONFIG_S3C64XX_DMA_SYSFS) += dma-sysfs.o
++obj-$(CONFIG_S3C6400_PM) += pm.o
++
++# Power Management support
++
++# smdk6400 machine specific support
++obj-$(CONFIG_MACH_SMDK6400) += mach-smdk6400.o
++
++# LEDs support
++led-$(CONFIG_MACH_SMDK6400) += leds-s3c6400.o
++obj-$(CONFIG_LEDS) += $(led-y)
++
+diff --git a/arch/arm/mach-s3c6400/clock.c b/arch/arm/mach-s3c6400/clock.c
+new file mode 100644
+index 0000000..49c54eb
+--- /dev/null
++++ b/arch/arm/mach-s3c6400/clock.c
+@@ -0,0 +1,698 @@
++/* linux/arch/arm/mach-s3c64xx/clock_s3c6400.c
++ *
++ * Copyright (c) 2004 Simtec Electronics
++ * Ben Dooks <ben@simtec.co.uk>
++ *
++ * S3C2412 Clock control support
++ *
++ * Based on, and code from linux/arch/arm/mach-versatile/clock.c
++ **
++ ** Copyright (C) 2004 ARM Limited.
++ ** Written by Deep Blue Solutions Limited.
++ *
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ */
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/list.h>
++#include <linux/errno.h>
++#include <linux/err.h>
++#include <linux/platform_device.h>
++#include <linux/sysdev.h>
++#include <linux/delay.h>
++
++#include <linux/interrupt.h>
++#include <linux/ioport.h>
++#include <linux/clk.h>
++#include <linux/mutex.h>
++
++#include <asm/mach/map.h>
++
++#include <asm/hardware.h>
++#include <asm/atomic.h>
++#include <asm/irq.h>
++#include <asm/io.h>
++
++#include <asm/plat-s3c64xx/clock.h>
++#include <asm/plat-s3c24xx/cpu.h>
++#include <asm/arch/regs-s3c-clock.h>
++
++
++#define HCLK_GATING_ON_LIST S3C_CLKCON_HCLK_BUS | S3C_CLKCON_HCLK_DDR1 | S3C_CLKCON_HCLK_DDR0 |\
++ S3C_CLKCON_HCLK_MEM1 | S3C_CLKCON_HCLK_MEM0 | S3C_CLKCON_HCLK_DMA0 |\
++ S3C_CLKCON_HCLK_DMA1 | S3C_CLKCON_HCLK_INTC | S3C_CLKCON_HCLK_LCD |\
++ S3C_CLKCON_HCLK_DHOST | S3C_CLKCON_HCLK_POST0 | S3C_CLKCON_HCLK_MFC
++
++#define PCLK_GATING_ON_LIST S3C_CLKCON_PCLK_GPIO | S3C_CLKCON_PCLK_UART0 | S3C_CLKCON_PCLK_UART1 | S3C_CLKCON_PCLK_MFC
++
++#define SCLK_GATING_ON_LIST S3C_CLKCON_SCLK_UART | S3C_CLKCON_SCLK_LCD27 | S3C_CLKCON_SCLK_LCD | S3C_CLKCON_SCLK_POST1_27 | \
++ S3C_CLKCON_SCLK_POST0_27 | S3C_CLKCON_SCLK_POST1 | S3C_CLKCON_SCLK_POST0 | S3C_CLKCON_SCLK_MFC
++
++/* Select the source clock of USB Host. 0:48MHz, 1:FoutEpll */
++#define S3C_USB_CLKSRC_EPLL 0
++
++
++static int s3c6400_clkcon_enable_h(struct clk *clk, int enable)
++{
++ unsigned int clocks = clk->ctrlbit;
++ unsigned long clkcon;
++
++ clkcon = __raw_readl(S3C_HCLK_GATE);
++
++ if (enable)
++ clkcon |= clocks;
++ else
++ clkcon &= ~clocks;
++
++ __raw_writel(clkcon, S3C_HCLK_GATE);
++
++ return 0;
++}
++
++static int s3c6400_clkcon_enable_p(struct clk *clk, int enable)
++{
++ unsigned int clocks = clk->ctrlbit;
++ unsigned long clkcon;
++
++ clkcon = __raw_readl(S3C_PCLK_GATE);
++
++ if (enable)
++ clkcon |= clocks;
++ else
++ clkcon &= ~clocks;
++
++ __raw_writel(clkcon, S3C_PCLK_GATE);
++
++ return 0;
++}
++
++static int s3c6400_clkcon_enable_s(struct clk *clk, int enable)
++{
++ unsigned int clocks = clk->ctrlbit;
++ unsigned long clkcon;
++
++ clkcon = __raw_readl(S3C_SCLK_GATE);
++
++ if (enable)
++ clkcon |= clocks;
++ else
++ clkcon &= ~clocks;
++
++ __raw_writel(clkcon, S3C_SCLK_GATE);
++
++ return 0;
++}
++
++
++static int s3c6400_clkcon_enable_others(struct clk *clk, int enable)
++{
++ unsigned int clocks = clk->ctrlbit;
++ unsigned long clkcon;
++
++ clkcon = __raw_readl(S3C_OTHERS);
++
++ if (enable)
++ clkcon |= clocks;
++ else
++ clkcon &= ~clocks;
++
++ __raw_writel(clkcon, S3C_OTHERS);
++
++ return 0;
++}
++
++static unsigned long s3c6400_clk_getrate(struct clk *clk)
++{
++ /* set clock rate to use in drivers */
++ if (!clk->rate) {
++ if (clk->parent) {
++ clk->rate = clk->parent->rate;
++ }
++ }
++ return clk->rate;
++}
++
++
++static int s3c6400_epll_clk_uart_enable (struct clk *clk, int enable)
++{
++ s3c6400_clkcon_enable_s(clk, enable);
++
++ /* MUXepll : FOUTepll */
++ writel(readl(S3C_CLK_SRC)|S3C_CLKSRC_EPLL_CLKSEL, S3C_CLK_SRC);
++
++ /* UARTsel : MOUTepll */
++ writel((readl(S3C_CLK_SRC) & ~(0x1 << 13)) | (0 << 13), S3C_CLK_SRC);
++
++ return 0;
++}
++
++
++static int s3c6400_setrate_epll_clk_192m(struct clk *clk, unsigned long rate)
++{
++ writel(S3C_EPLL_EN|S3C_EPLLVAL(32,1,1), S3C_EPLL_CON0);
++ writel(0, S3C_EPLL_CON1);
++ mdelay(5);
++
++ return 0;
++}
++
++static unsigned long s3c6400_getrate_epll_clk_192m(struct clk *clk)
++{
++ s3c6400_setrate_epll_clk_192m(clk, 192000000);
++ clk->rate = 192000000;
++ return clk->rate;
++}
++
++
++static struct clk clk_epll_uart_192m = {
++ .name = "epll_clk_uart_192m",
++ .id = -1,
++ .parent = &clk_epll,
++ .enable = s3c6400_epll_clk_uart_enable,
++ .ctrlbit = S3C_CLKCON_SCLK_UART,
++ .set_rate = s3c6400_setrate_epll_clk_192m,
++ .get_rate = s3c6400_getrate_epll_clk_192m,
++};
++
++
++static unsigned long s3c6400_mpll_get_clk(struct clk *clk)
++{
++ unsigned long mpll_con;
++ unsigned long m = 0;
++ unsigned long p = 0;
++ unsigned long s = 0;
++ unsigned long ret;
++
++ mpll_con = (readl(S3C_MPLL_CON));
++
++ m = (mpll_con >> 16) & 0x3ff;
++ p = (mpll_con >> 8) & 0x3f;
++ s = mpll_con & 0x3;
++
++ ret = (m * (12000000 / (p * (1 << s))));
++
++ return (((readl(S3C_CLK_DIV0) >> 4 ) & 0x1) ? (ret / 2) : ret );
++}
++
++static int s3c6400_mpll_clk_uart_enable (struct clk *clk, int enable)
++{
++ s3c6400_clkcon_enable_s(clk, enable);
++
++ writel(readl(S3C_CLK_SRC)|S3C_CLKSRC_EPLL_CLKSEL, S3C_CLK_SRC);
++
++ writel((readl(S3C_CLK_SRC) & ~(0x1 << 13)) | (1 << 13), S3C_CLK_SRC);
++
++ return 0;
++}
++
++
++static int s3c6400_setrate_mpll_clk(struct clk *clk, unsigned long rate)
++{
++ writel(readl(S3C_CLK_DIV2) & ~(0xf << 16) , S3C_CLK_DIV2);
++ return 0;
++}
++
++static unsigned long s3c6400_getrate_mpll_clk(struct clk *clk)
++{
++ s3c6400_setrate_mpll_clk(clk,0);
++
++ return s3c6400_mpll_get_clk(clk);
++}
++
++static struct clk clk_mpll_uart = {
++ .name = "mpll_clk_uart",
++ .id = -1,
++ .parent = &clk_mpll,
++ .enable = s3c6400_mpll_clk_uart_enable,
++ .ctrlbit = S3C_CLKCON_SCLK_UART,
++ .set_rate = s3c6400_setrate_mpll_clk,
++ .get_rate = s3c6400_getrate_mpll_clk,
++};
++
++/* For Camera interface */
++static struct clk clk_cam_h = {
++ .name = "camif-hclk",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6400_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_CAMIF,
++};
++
++
++#define CAMDIV_val 20
++
++static int s3c6400_setrate_camera(struct clk *clk, unsigned long rate)
++{
++ unsigned int camclk_div, val;
++ unsigned long src_clk = clk_get_rate(clk->parent);
++
++ if (rate == 4800000) {
++ printk(KERN_INFO "External camera clock is set to 48MHz\n");
++ }
++ else if (rate > 48000000) {
++ printk(KERN_ERR "Invalid camera clock\n");
++ }
++
++ camclk_div = src_clk / rate;
++ printk("Parent clock for Camera = %ld, CAMDIV = %d\n", src_clk, camclk_div);
++
++ val = readl(S3C_CLK_DIV0);
++ val &= ~(0xf<<CAMDIV_val);
++ writel(val, S3C_CLK_DIV0);
++
++ /* CAM CLK DIVider Ratio = (EPLL clk)/(camclk_div) */
++ val |= ((camclk_div -1 ) << CAMDIV_val);
++ writel(val, S3C_CLK_DIV0);
++ val = readl(S3C_CLK_DIV0);
++
++ return 0;
++}
++
++
++/* clocks to add straight away */
++
++static struct clk *clks[] __initdata = {
++ &clk_epll_uart_192m,
++ &clk_cam_h,
++ &clk_mpll_uart,
++};
++
++
++static struct clk init_clocks_disable[] = {
++ {
++ .name = "nand",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6400_clkcon_enable_h,
++ //.ctrlbit = S3C_CLKCON_HCLK_NAND,
++ },
++ {
++ .name = "adc",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6400_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_TSADC,
++ },
++ {
++ .name = "i2c",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6400_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_IIC,
++ },
++ {
++ .name = "iis",
++ .id = 0,
++ .parent = &clk_p,
++ .enable = s3c6400_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_IIS0,
++ },
++ {
++ .name = "iis",
++ .id = 1,
++ .parent = &clk_p,
++ .enable = s3c6400_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_IIS1,
++ },
++ {
++ .name = "spi",
++ .id = 0,
++ .parent = &clk_p,
++ .enable = s3c6400_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_SPI0,
++ },
++ {
++ .name = "spi",
++ .id = 1,
++ .parent = &clk_p,
++ .enable = s3c6400_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_SPI1,
++ }
++};
++
++
++/* standard clock definitions */
++static struct clk init_clocks[] = {
++ /* AHB devices */
++ { .name = "dma 1",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6400_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_DMA1,
++ },
++ { .name = "dma 0",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6400_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_DMA0,
++ },
++ { .name = "lcd",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6400_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_LCD,
++ },
++ { .name = "TZIC",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6400_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_TZIC,
++ },
++ { .name = "INTC",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6400_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_INTC,
++ },
++ { .name = "usb-host",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6400_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_UHOST,
++ },
++ { .name = "otg",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6400_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_USB
++ },
++ { .name = "hsmmc0",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6400_clkcon_enable_h,
++ .get_rate = s3c6400_clk_getrate,
++ .ctrlbit = S3C_CLKCON_HCLK_HSMMC0
++ },
++ { .name = "hsmmc1",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6400_clkcon_enable_h,
++ .get_rate = s3c6400_clk_getrate,
++ .ctrlbit = S3C_CLKCON_HCLK_HSMMC1
++ },
++ { .name = "hsmmc2",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6400_clkcon_enable_h,
++ .get_rate = s3c6400_clk_getrate,
++ .ctrlbit = S3C_CLKCON_HCLK_HSMMC2
++ },
++ { .name = "hclk_mfc",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6400_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_MFC
++ },
++ { .name = "hclk_post0",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6400_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_POST0
++ },
++ { .name = "hclk_jpeg",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6400_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_JPEG
++ },
++ { .name = "tv_encoder",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6400_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_TV
++ },
++ { .name = "tv_scaler",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6400_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_SCALER
++ },
++
++ /* register to use HS-MMC clock */
++ { .name = "sclk_48m",
++ .id = -1,
++ .parent = &clk_48m,
++ .enable = s3c6400_clkcon_enable_others,
++ .ctrlbit = 1<<16, /* USB SIG Mask */
++ .usage = 0,
++ .rate = 48*1000*1000,
++ },
++ { .name = "sclk_48m_mmc0",
++ .id = -1,
++ .parent = &clk_s,
++ .enable = s3c6400_clkcon_enable_s,
++ .ctrlbit = S3C_CLKCON_SCLK_MMC0_48,
++ .usage = 0,
++ .rate = 48*1000*1000,
++ },
++ { .name = "sclk_48m_mmc1",
++ .id = -1,
++ .parent = &clk_s,
++ .enable = s3c6400_clkcon_enable_s,
++ .ctrlbit = S3C_CLKCON_SCLK_MMC1_48,
++ .usage = 0,
++ .rate = 48*1000*1000,
++ },
++ { .name = "sclk_48m_mmc2",
++ .id = -1,
++ .parent = &clk_s,
++ .enable = s3c6400_clkcon_enable_s,
++ .ctrlbit = S3C_CLKCON_SCLK_MMC2_48,
++ .usage = 0,
++ .rate = 48*1000*1000,
++ },
++ { .name = "sclk_mfc",
++ .id = -1,
++ .parent = &clk_s,
++ .enable = s3c6400_clkcon_enable_s,
++ .ctrlbit = S3C_CLKCON_SCLK_MFC,
++ .usage = 0,
++ .rate = 48*1000*1000,
++ },
++ { .name = "sclk_jpeg",
++ .id = -1,
++ .parent = &clk_s,
++ .enable = s3c6400_clkcon_enable_s,
++ .ctrlbit = S3C_CLKCON_SCLK_JPEG,
++ .usage = 0,
++ .rate = 48*1000*1000,
++ },
++ { .name = "cfata",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6400_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_IHOST
++ },
++
++ /* APB Devices */
++ { .name = "RTC",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6400_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_RTC,
++ },
++ { .name = "GPIO",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6400_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_GPIO,
++ },
++ { .name = "UART2",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6400_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_UART2,
++ },
++ { .name = "UART1",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6400_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_UART1,
++ },
++ { .name = "UART0",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6400_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_UART0,
++ },
++ { .name = "timers",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6400_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_PWM,
++ },
++ { .name = "watchdog",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6400_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_WDT,
++ },
++ { .name = "i2c",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6400_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_IIC,
++ },
++ { .name = "spi0",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6400_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_SPI0,
++ },
++ { .name = "spi1",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6400_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_SPI1,
++ },
++ { .name = "adc",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6400_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_TSADC,
++ },
++ { .name = "pclk_mfc",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6400_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_MFC,
++ },
++ {
++ .name = "camera",
++ .id = -1,
++ .parent = &clk_cam_h,
++ .enable = s3c6400_clkcon_enable_s,
++ .ctrlbit = S3C_CLKCON_SCLK_CAM,
++ .set_rate = s3c6400_setrate_camera,
++ },
++};
++
++void __init s3c6400_init_clocks(int xtal)
++{
++ unsigned long clkdiv0;
++ unsigned long fclk, fclk_org;
++ unsigned long hclkx2;
++ unsigned long hclk;
++ unsigned long pclk;
++ unsigned long epll_clk;
++
++ struct clk *clkp;
++ int ret;
++ int ptr;
++
++ clk_xtal.rate = xtal;
++
++ /* now we've got our machine bits initialised, work out what
++ * clocks we've got */
++
++ /* Changed below lines to support s3c6400 - JaeCheol Lee */
++ fclk = s3c6400_get_pll(__raw_readl(S3C_APLL_CON), xtal);
++
++ clkdiv0 = __raw_readl(S3C_CLK_DIV0);
++
++ fclk /= ((clkdiv0 & S3C_CLKDIVN_APLL_MASK)+1);
++ fclk_org = fclk;
++
++ if(!(__raw_readl(S3C_OTHERS) & 0x80)) {
++ /* Synchronous mode */
++ fclk = s3c6400_get_pll(__raw_readl(S3C_MPLL_CON), xtal);
++ }
++
++ hclkx2 = fclk / (((clkdiv0 & S3C_CLKDIVN_HCLKX2_MASK)>>9)+1);
++
++ hclk = hclkx2 / (((clkdiv0 & S3C_CLKDIVN_HCLK_MASK)>>8)+1);
++
++ /* It should get the divisor from register and then sets the pclk properly */
++ pclk = hclkx2 / (((clkdiv0 & S3C_CLKDIVN_PCLK_MASK)>>12)+1);
++
++ /* print brief summary of clocks, etc */
++ printk("S3C6400: core %ld.%03ld MHz, memory %ld.%03ld MHz, peripheral %ld.%03ld MHz\n",
++ print_mhz(fclk_org), print_mhz(hclk),
++ print_mhz(pclk));
++
++ /* Default EPLL frequency : 192Mhz */
++ writel(S3C_EPLL_EN|S3C_EPLLVAL(32,1,1), S3C_EPLL_CON0);
++ writel(0, S3C_EPLL_CON1);
++ mdelay(50);
++
++ epll_clk = s3c6400_get_epll(xtal);
++ clk_epll.rate = epll_clk;
++ printk("S3C6400: EPLL %ld.%03ld MHz\n", print_mhz(epll_clk));
++
++ /* initialize hclkx2 by jsgood */
++ clk_hx2.rate = hclkx2;
++
++ /* initialise the clocks here, to allow other things like the
++ * console to use them, and to add new ones after the initialisation
++ */
++
++ s3c64xx_setup_clocks(xtal, fclk_org, hclk, pclk);
++
++ for (ptr = 0; ptr < ARRAY_SIZE(clks); ptr++) {
++ clkp = clks[ptr];
++
++ ret = s3c64xx_register_clock(clkp);
++ if (ret < 0) {
++ printk(KERN_ERR "S3C6400: Failed to register clks : %s (%d)\n",
++ clkp->name, ret);
++ }
++ }
++
++ /* register clocks from clock array */
++ clkp = init_clocks;
++ for (ptr = 0; ptr < ARRAY_SIZE(init_clocks); ptr++, clkp++) {
++ ret = s3c64xx_register_clock(clkp);
++ if (ret < 0) {
++ printk(KERN_ERR "S3C6400:Failed to register init_clocks : %s (%d)\n",
++ clkp->name, ret);
++ }
++
++ /* set clock rate to use in drivers */
++ if (!clkp->rate) {
++ if (clkp->parent) {
++ clkp->rate = clkp->parent->rate;
++ }
++ }
++
++ }
++
++ /* We must be careful disabling the clocks we are not intending to
++ * be using at boot time, as subsytems such as the LCD which do
++ * their own DMA requests to the bus can cause the system to lockup
++ * if they where in the middle of requesting bus access.
++ *
++ * Disabling the LCD clock if the LCD is active is very dangerous,
++ * and therefore the bootloader should be careful to not enable
++ * the LCD clock if it is not needed.
++ */
++
++ /* install (and disable) the clocks we do not need immediately */
++
++ clkp = init_clocks_disable;
++ for (ptr = 0; ptr < ARRAY_SIZE(init_clocks_disable); ptr++, clkp++) {
++
++ ret = s3c64xx_register_clock(clkp);
++ if (ret < 0) {
++ printk(KERN_ERR "S3C6400: Failed to register init_clocks_disable: %s (%d)\n",
++ clkp->name, ret);
++ }
++
++ (clkp->enable)(clkp, 0);
++ }
++}
++
+diff --git a/arch/arm/mach-s3c6400/dma-sysfs.c b/arch/arm/mach-s3c6400/dma-sysfs.c
+new file mode 100644
+index 0000000..d320ec0
+--- /dev/null
++++ b/arch/arm/mach-s3c6400/dma-sysfs.c
+@@ -0,0 +1,276 @@
++/* linux/arch/arm/mach-bast/dma-sysfs.c
++ *
++ * (c) 2005 Simtec Electronics
++ * Ben Dooks <ben@simtec.co.uk>
++ *
++ * S3C2440 DMA core sysfs interface
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++*/
++
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/sched.h>
++#include <linux/spinlock.h>
++#include <linux/interrupt.h>
++#include <linux/sysdev.h>
++#include <linux/config.h>
++
++#include <asm/system.h>
++#include <asm/irq.h>
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/dma.h>
++
++#include <asm/mach/dma.h>
++#include <asm/arch/map.h>
++
++
++extern struct sysdev_class dma_sysclass;
++extern s3c24xx_dma_chan_t s3c24xx_chans[S3C24XX_DMA_CHANNELS];
++
++#define dma_rdreg(chan, reg) readl((chan)->regs + (reg))
++
++static const char *s3c24xx_dma_decode_state(s3c24xx_dma_state_t state)
++{
++ switch (state) {
++ case S3C24XX_DMA_IDLE:
++ return "Idle";
++ case S3C24XX_DMA_RUNNING:
++ return "Running";
++ case S3C24XX_DMA_PAUSED:
++ return "Paused";
++ default:
++ return "Invalid";
++ }
++
++ return NULL;
++}
++
++static const char *s3c24xx_dma_decode_loadstate(s3c24xx_dma_loadst_t state)
++{
++ switch (state) {
++ case S3C24XX_DMALOAD_NONE:
++ return "Nothing Loaded";
++ case S3C24XX_DMALOAD_1LOADED:
++ return "1 Loaded";
++ case S3C24XX_DMALOAD_1RUNNING:
++ return "1 Running";
++ case S3C24XX_DMALOAD_1LOADED_1RUNNING:
++ return "1 Loaded, 1 Running";
++ default:
++ return "Invalid Load State";
++ }
++
++ return NULL;
++}
++
++static const char *s3c24xx_dma_decode_source(s3c24xx_dmasrc_t source)
++{
++ switch (source) {
++ case S3C24XX_DMASRC_HW:
++ return "Hardware";
++ case S3C24XX_DMASRC_MEM:
++ return "Memory";
++ default:
++ return "Unknown Source";
++ }
++
++ return NULL;
++}
++
++
++struct outbuff {
++ char *buff;
++ int offset;
++ int size;
++};
++
++static inline void outbuf_init(struct outbuff *ob, char *buf, int size)
++{
++ ob->buff = buf;
++ ob->offset = 0;
++ ob->size = size;
++}
++
++static void outbuf_pf(struct outbuff *ob, const char *fmt, ...)
++{
++ va_list va;
++
++ va_start(va, fmt);
++
++ ob->offset += vsnprintf(ob->buff + ob->offset,
++ ob->size - ob->offset,
++ fmt, va);
++ va_end(va);
++}
++
++static void dma_sysfs_showregs(s3c24xx_dma_chan_t *chan, struct outbuff *buf)
++{
++ outbuf_pf(buf, "Hardware Registers:\n\n");
++
++ outbuf_pf(buf, " DISRC \t\t\t%08lx\n", readl(chan->regs + 0x00));
++ outbuf_pf(buf, " DISRCC\t\t\t%08lx\n", readl(chan->regs + 0x04));
++ outbuf_pf(buf, " DIDST \t\t\t%08lx\n", readl(chan->regs + 0x08));
++ outbuf_pf(buf, " DIDSTC\t\t\t%08lx\n", readl(chan->regs + 0x0C));
++ outbuf_pf(buf, " DCON \t\t\t%08lx\n", readl(chan->regs + 0x10));
++ outbuf_pf(buf, " DSTAT \t\t\t%08lx\n", readl(chan->regs + 0x14));
++ outbuf_pf(buf, " DCSRC \t\t\t%08lx\n", readl(chan->regs + 0x18));
++ outbuf_pf(buf, " DCDST \t\t\t%08lx\n", readl(chan->regs + 0x1c));
++ outbuf_pf(buf, " DMTRG \t\t\t%08lx\n", readl(chan->regs + 0x20));
++}
++
++static void dma_sysfs_showbuf(s3c24xx_dma_chan_t *chan,
++ struct outbuff *buf,
++ s3c24xx_dma_buf_t *ptr)
++{
++ if (ptr == NULL)
++ return;
++
++ outbuf_pf(buf, " buff %p: data=%08x, size=%08x, id=%08x\n",
++ ptr, ptr->data, ptr->size, ptr->id);
++}
++
++static void dma_sysfs_showbuffers(s3c24xx_dma_chan_t *chan, struct outbuff *buf)
++{
++ s3c24xx_dma_buf_t *ptr = chan->next;
++ unsigned long flags;
++
++ local_irq_save(flags);
++
++ outbuf_pf(buf, "Current Buffer:\n");
++ dma_sysfs_showbuf(chan, buf, chan->curr);
++
++ outbuf_pf(buf, "\nBuffer Queue: %p -> %p\n", chan->next, chan->end);
++
++ for (; ptr != NULL; ptr = ptr->next)
++ dma_sysfs_showbuf(chan, buf, ptr);
++
++ local_irq_restore(flags);
++}
++
++static void dma_sysfs_showstate(s3c24xx_dma_chan_t *chan, struct outbuff *buf)
++{
++ outbuf_pf(buf, "IRQ:\t\t\t\t%d\n", chan->irq);
++ outbuf_pf(buf, "Register Base:\t\t\t0x%08x\n", chan->regs);
++ outbuf_pf(buf, "Address Register:\t\t0x%08lx\n", chan->addr_reg);
++ outbuf_pf(buf, "Hardware Register:\t\t0x%08lx\n", chan->dev_addr);
++ outbuf_pf(buf, "Load Timeout:\t\t\t0x%08x\n", chan->load_timeout);
++ outbuf_pf(buf, "Data Source:\t\t\t%s\n",
++ s3c24xx_dma_decode_source(chan->source));
++
++ outbuf_pf(buf, "Channel State:\t\t\t%s (%d)\n",
++ s3c24xx_dma_decode_state(chan->state), chan->state);
++ outbuf_pf(buf, "Load State:\t\t\t%s (%d)\n",
++ s3c24xx_dma_decode_loadstate(chan->load_state),
++ chan->load_state);
++
++ if (chan->client != NULL) {
++ outbuf_pf(buf, "Claimed by:\t\t\t%s\n",
++ chan->client->name);
++ } else {
++ outbuf_pf(buf, "Claimed by:\t\t\tNo-one\n");
++ }
++}
++
++static inline s3c24xx_dma_chan_t *dev_to_chan(struct sys_device *dev)
++{
++ return &s3c24xx_chans[dev->id];
++}
++
++static ssize_t dma_sysfs_show_regs(struct sys_device *dev, char *buf)
++{
++ s3c24xx_dma_chan_t *cp = dev_to_chan(dev);
++ struct outbuff buff;
++
++ outbuf_init(&buff, buf, PAGE_SIZE);
++ dma_sysfs_showregs(cp, &buff);
++
++ return buff.offset;
++}
++
++static ssize_t dma_sysfs_show_state(struct sys_device *dev, char *buf)
++{
++ s3c24xx_dma_chan_t *cp = dev_to_chan(dev);
++ struct outbuff buff;
++
++ outbuf_init(&buff, buf, PAGE_SIZE);
++ dma_sysfs_showstate(cp, &buff);
++
++ return buff.offset;
++}
++
++static ssize_t dma_sysfs_show_buffers(struct sys_device *dev, char *buf)
++{
++ s3c24xx_dma_chan_t *cp = dev_to_chan(dev);
++ struct outbuff buff;
++
++ outbuf_init(&buff, buf, PAGE_SIZE);
++ dma_sysfs_showbuffers(cp, &buff);
++
++ return buff.offset;
++}
++
++static ssize_t dma_sysfs_show_all(struct sys_device *dev, char *buf)
++{
++ s3c24xx_dma_chan_t *cp = dev_to_chan(dev);
++ struct outbuff buff;
++
++ outbuf_init(&buff, buf, PAGE_SIZE);
++
++ dma_sysfs_showstate(cp, &buff);
++ dma_sysfs_showregs(cp, &buff);
++ dma_sysfs_showbuffers(cp, &buff);
++
++ return buff.offset;
++}
++
++static SYSDEV_ATTR(all, S_IRUGO, dma_sysfs_show_all, NULL);
++static SYSDEV_ATTR(regs, S_IRUGO, dma_sysfs_show_regs, NULL);
++static SYSDEV_ATTR(state, S_IRUGO, dma_sysfs_show_state, NULL);
++static SYSDEV_ATTR(buffers, S_IRUGO, dma_sysfs_show_buffers, NULL);
++
++static struct sysdev_attribute *attrs[] = {
++ &attr_all,
++ &attr_regs,
++ &attr_state,
++ &attr_buffers,
++};
++
++static int dma_sysfs_attach(struct sys_device *dev)
++{
++ int i;
++
++ for (i = 0; i < ARRAY_SIZE(attrs); i++)
++ sysdev_create_file(dev, attrs[i]);
++
++ return 0;
++}
++
++static int dma_sysfs_remove(struct sys_device *dev)
++{
++ int i;
++
++ for (i = 0; i < ARRAY_SIZE(attrs); i++)
++ sysdev_create_file(dev, attrs[i]);
++
++ return 0;
++}
++
++static struct sysdev_driver dma_sysfs_driver = {
++ .add = dma_sysfs_attach,
++ .remove = dma_sysfs_remove,
++};
++
++static int __init s3c24xx_init_dma_sysfs(void)
++{
++ printk("S3C24XX DMA sysfs support, (c) 2005 Simtec Electronics\n");
++
++ return sysdev_driver_register(&dma_sysclass, &dma_sysfs_driver);
++}
++
++__initcall(s3c24xx_init_dma_sysfs);
++
+diff --git a/arch/arm/mach-s3c6400/dma.c b/arch/arm/mach-s3c6400/dma.c
+new file mode 100644
+index 0000000..179731a
+--- /dev/null
++++ b/arch/arm/mach-s3c6400/dma.c
+@@ -0,0 +1,312 @@
++/* linux/arch/arm/mach-s3c6400/dma.c
++ *
++ * Copyright (c) 2003-2005,2006 Samsung Electronics
++ *
++ * S3C6400 DMA selection
++ *
++ * http://www.samsung.com/
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++*/
++
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/sysdev.h>
++#include <linux/serial_core.h>
++
++#include <asm/dma.h>
++#include <asm/arch/dma.h>
++#include <asm/io.h>
++
++#include <asm/plat-s3c24xx/dma.h>
++#include <asm/plat-s3c24xx/cpu.h>
++
++
++/* DMAC-0 */
++#define MAP0(x) { \
++ [0] = (x) | DMA_CH_VALID, \
++ [1] = (x) | DMA_CH_VALID, \
++ [2] = (x) | DMA_CH_VALID, \
++ [3] = (x) | DMA_CH_VALID, \
++ [4] = (x) | DMA_CH_VALID, \
++ [5] = (x) | DMA_CH_VALID, \
++ [6] = (x) | DMA_CH_VALID, \
++ [7] = (x) | DMA_CH_VALID, \
++ [8] = (x), \
++ [9] = (x), \
++ [10] = (x), \
++ [11] = (x), \
++ [12] = (x), \
++ [13] = (x), \
++ [14] = (x), \
++ [15] = (x), \
++ [16] = (x), \
++ [17] = (x), \
++ [18] = (x), \
++ [19] = (x), \
++ [20] = (x), \
++ [21] = (x), \
++ [22] = (x), \
++ [23] = (x), \
++ [24] = (x), \
++ [25] = (x), \
++ [26] = (x), \
++ [27] = (x), \
++ [28] = (x), \
++ [29] = (x), \
++ [30] = (x), \
++ [31] = (x), \
++ }
++
++/* DMAC-1 */
++#define MAP1(x) { \
++ [0] = (x), \
++ [1] = (x), \
++ [2] = (x), \
++ [3] = (x), \
++ [4] = (x), \
++ [5] = (x), \
++ [6] = (x), \
++ [7] = (x), \
++ [8] = (x) | DMA_CH_VALID, \
++ [9] = (x) | DMA_CH_VALID, \
++ [10] = (x) | DMA_CH_VALID, \
++ [11] = (x) | DMA_CH_VALID, \
++ [12] = (x) | DMA_CH_VALID, \
++ [13] = (x) | DMA_CH_VALID, \
++ [14] = (x) | DMA_CH_VALID, \
++ [15] = (x) | DMA_CH_VALID, \
++ [16] = (x), \
++ [17] = (x), \
++ [18] = (x), \
++ [19] = (x), \
++ [20] = (x), \
++ [21] = (x), \
++ [22] = (x), \
++ [23] = (x), \
++ [24] = (x), \
++ [25] = (x), \
++ [26] = (x), \
++ [27] = (x), \
++ [28] = (x), \
++ [29] = (x), \
++ [30] = (x), \
++ [31] = (x), \
++ }
++
++/* SDMAC-0 */
++#define MAP2(x) { \
++ [0] = (x), \
++ [1] = (x), \
++ [2] = (x), \
++ [3] = (x), \
++ [4] = (x), \
++ [5] = (x), \
++ [6] = (x), \
++ [7] = (x), \
++ [8] = (x), \
++ [9] = (x), \
++ [10] = (x), \
++ [11] = (x), \
++ [12] = (x), \
++ [13] = (x), \
++ [14] = (x), \
++ [15] = (x), \
++ [16] = (x) | DMA_CH_VALID, \
++ [17] = (x) | DMA_CH_VALID, \
++ [18] = (x) | DMA_CH_VALID, \
++ [19] = (x) | DMA_CH_VALID, \
++ [20] = (x) | DMA_CH_VALID, \
++ [21] = (x) | DMA_CH_VALID, \
++ [22] = (x) | DMA_CH_VALID, \
++ [23] = (x) | DMA_CH_VALID, \
++ [24] = (x), \
++ [25] = (x), \
++ [26] = (x), \
++ [27] = (x), \
++ [28] = (x), \
++ [29] = (x), \
++ [30] = (x), \
++ [31] = (x), \
++ }
++
++/* SDMAC-1 */
++#define MAP3(x) { \
++ [0] = (x), \
++ [1] = (x), \
++ [2] = (x), \
++ [3] = (x), \
++ [4] = (x), \
++ [5] = (x), \
++ [6] = (x), \
++ [7] = (x), \
++ [8] = (x), \
++ [9] = (x), \
++ [10] = (x), \
++ [11] = (x), \
++ [12] = (x), \
++ [13] = (x), \
++ [14] = (x), \
++ [15] = (x), \
++ [16] = (x), \
++ [17] = (x), \
++ [18] = (x), \
++ [19] = (x), \
++ [20] = (x), \
++ [21] = (x), \
++ [22] = (x), \
++ [23] = (x), \
++ [24] = (x) | DMA_CH_VALID, \
++ [25] = (x) | DMA_CH_VALID, \
++ [26] = (x) | DMA_CH_VALID, \
++ [27] = (x) | DMA_CH_VALID, \
++ [28] = (x) | DMA_CH_VALID, \
++ [29] = (x) | DMA_CH_VALID, \
++ [30] = (x) | DMA_CH_VALID, \
++ [31] = (x) | DMA_CH_VALID, \
++ }
++
++/* SDMAC-0 */
++#define MAP2_ONENAND(x) { \
++ [0] = (x), \
++ [1] = (x), \
++ [2] = (x), \
++ [3] = (x) , \
++ [4] = (x), \
++ [5] = (x), \
++ [6] = (x), \
++ [7] = (x), \
++ [8] = (x), \
++ [9] = (x), \
++ [10] = (x), \
++ [11] = (x), \
++ [12] = (x), \
++ [13] = (x), \
++ [14] = (x), \
++ [15] = (x), \
++ [16] = (x), \
++ [17] = (x), \
++ [18] = (x) , \
++ [19] = (x) | DMA_CH_VALID, \
++ [20] = (x), \
++ [21] = (x), \
++ [22] = (x), \
++ [23] = (x), \
++ [24] = (x), \
++ [25] = (x), \
++ [26] = (x), \
++ [27] = (x), \
++ [28] = (x), \
++ [29] = (x), \
++ [30] = (x), \
++ [31] = (x), \
++ }
++
++static struct s3c24xx_dma_map __initdata s3c6400_dma_mappings[] = {
++
++ [DMACH_I2S_IN] = {
++ .name = "i2s0-in",
++ .channels = MAP0(S3C_DMA0_I2S0_RX),
++ .hw_addr.from = S3C_DMA0_I2S0_RX,
++ .sdma_sel = 1 << S3C_DMA0_I2S0_RX,
++ },
++ [DMACH_I2S_OUT] = {
++ .name = "i2s0-out",
++ .channels = MAP0(S3C_DMA0_I2S0_TX),
++ .hw_addr.to = S3C_DMA0_I2S0_TX,
++ .sdma_sel = 1 << S3C_DMA0_I2S0_TX,
++ },
++ [DMACH_I2S1_IN] = {
++ .name = "i2s1-in",
++ .channels = MAP1(S3C_DMA1_I2S1_RX),
++ .hw_addr.from = S3C_DMA1_I2S1_RX,
++ .sdma_sel = 1 << (S3C_DMA1_I2S1_RX+S3C_DMA1),
++ },
++ [DMACH_I2S1_OUT] = {
++ .name = "i2s1-out",
++ .channels = MAP1(S3C_DMA1_I2S1_TX),
++ .hw_addr.to = S3C_DMA1_I2S1_TX,
++ .sdma_sel = 1 << (S3C_DMA1_I2S1_TX+S3C_DMA1),
++ },
++ [DMACH_SPI0_IN] = {
++ .name = "spi0-in",
++ .channels = MAP0(S3C_DMA0_SPI0_RX),
++ .hw_addr.from = S3C_DMA0_SPI0_RX,
++ .sdma_sel = 1 << S3C_DMA0_SPI0_RX,
++ },
++ [DMACH_SPI0_OUT] = {
++ .name = "spi0-out",
++ .channels = MAP0(S3C_DMA0_SPI0_TX),
++ .hw_addr.to = S3C_DMA0_SPI0_TX,
++ .sdma_sel = 1 << S3C_DMA0_SPI0_TX,
++ },
++ [DMACH_SPI1_IN] = {
++ .name = "spi1-in",
++ .channels = MAP1(S3C_DMA1_SPI1_RX),
++ .hw_addr.from = S3C_DMA1_SPI1_RX,
++ .sdma_sel = 1 << (S3C_DMA1_SPI1_RX+S3C_DMA1),
++ },
++ [DMACH_SPI1_OUT] = {
++ .name = "spi1-out",
++ .channels = MAP1(S3C_DMA1_SPI1_TX),
++ .hw_addr.to = S3C_DMA1_SPI1_TX,
++ .sdma_sel = 1 << (S3C_DMA1_SPI1_TX+S3C_DMA1),
++ },
++ [DMACH_AC97_PCM_OUT] = {
++ .name = "ac97-pcm-out",
++ .channels = MAP1(S3C_DMA1_AC97_PCMOUT),
++ .hw_addr.to = S3C_DMA1_AC97_PCMOUT,
++ .sdma_sel = 1 << (S3C_DMA1_AC97_PCMOUT+S3C_DMA1),
++ },
++ [DMACH_AC97_PCM_IN] = {
++ .name = "ac97-pcm-in",
++ .channels = MAP1(S3C_DMA1_AC97_PCMIN),
++ .hw_addr.from = S3C_DMA1_AC97_PCMIN,
++ .sdma_sel = 1 << (S3C_DMA1_AC97_PCMIN+S3C_DMA1),
++ },
++ [DMACH_AC97_MIC_IN] = {
++ .name = "ac97-mic-in",
++ .channels = MAP1(S3C_DMA1_AC97_MICIN),
++ .hw_addr.from = S3C_DMA1_AC97_MICIN,
++ .sdma_sel = 1 << (S3C_DMA1_AC97_MICIN+S3C_DMA1),
++ },
++ [DMACH_ONENAND_IN] = {
++ .name = "onenand-in",
++ .channels = MAP2_ONENAND(S3C_DMA0_ONENAND_RX),
++ .hw_addr.from = S3C_DMA0_ONENAND_RX,
++ },
++};
++
++static void s3c6400_dma_select(struct s3c2410_dma_chan *chan,
++ struct s3c24xx_dma_map *map)
++{
++ chan->map = map;
++}
++
++static struct s3c24xx_dma_selection __initdata s3c6400_dma_sel = {
++ .select = s3c6400_dma_select,
++ .dcon_mask = 0,
++ .map = s3c6400_dma_mappings,
++ .map_size = ARRAY_SIZE(s3c6400_dma_mappings),
++};
++
++static int __init s3c6400_dma_add(struct sys_device *sysdev)
++{
++ s3c24xx_dma_init(S3C2410_DMA_CHANNELS, IRQ_DMA0, 0x20);
++ return s3c24xx_dma_init_map(&s3c6400_dma_sel);
++}
++
++static struct sysdev_driver s3c6400_dma_driver = {
++ .add = s3c6400_dma_add,
++};
++
++static int __init s3c6400_dma_init(void)
++{
++ return sysdev_driver_register(&s3c6400_sysclass, &s3c6400_dma_driver);
++}
++
++arch_initcall(s3c6400_dma_init);
++
++
+diff --git a/arch/arm/mach-s3c6400/irq.c b/arch/arm/mach-s3c6400/irq.c
+new file mode 100644
+index 0000000..4c3bc3a
+--- /dev/null
++++ b/arch/arm/mach-s3c6400/irq.c
+@@ -0,0 +1,48 @@
++/* linux/arch/arm/mach-s3c6400/irq.c
++ *
++ * Copyright (c) 2006 Samsung Electronics
++ *
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++*/
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/interrupt.h>
++#include <linux/ioport.h>
++#include <linux/ptrace.h>
++#include <linux/sysdev.h>
++
++#include <asm/plat-s3c24xx/cpu.h>
++#include <asm/plat-s3c24xx/pm.h>
++
++static int s3c6400_irq_add(struct sys_device *sysdev)
++{
++ return 0;
++}
++
++static struct sysdev_driver s3c6400_irq_driver = {
++ .add = s3c6400_irq_add,
++ .suspend = s3c24xx_irq_suspend,
++ .resume = s3c24xx_irq_resume,
++};
++
++static int s3c6400_irq_init(void)
++{
++ return sysdev_driver_register(&s3c6400_sysclass, &s3c6400_irq_driver);
++}
++
++arch_initcall(s3c6400_irq_init);
+diff --git a/arch/arm/mach-s3c6400/kdpmd.c b/arch/arm/mach-s3c6400/kdpmd.c
+new file mode 100644
+index 0000000..632285e
+--- /dev/null
++++ b/arch/arm/mach-s3c6400/kdpmd.c
+@@ -0,0 +1,208 @@
++#include <linux/version.h>
++#include <linux/module.h>
++#if defined(MODVERSIONS)
++#include <linux/modversions.h>
++#endif
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/errno.h>
++#include <linux/kthread.h>
++#include <linux/wait.h>
++#include <asm/arch/kdpmd.h>
++#include <asm/arch/pd.h>
++
++#define _DEBUG 1
++//#undef _DEBUG
++
++#ifdef _DEBUG
++#include <linux/time.h>
++#endif
++
++/* global variables for kdpmd */
++DECLARE_MUTEX(kdpmd_sem);
++unsigned int kdpmd_ev;
++wait_queue_head_t kdpmd_wq;
++unsigned int dd_ev;
++wait_queue_head_t dd_wq;
++unsigned int wakeup_source;
++
++struct task_struct *kp;
++
++void handle_timeout(void)
++{
++ printk(KERN_INFO "kdpmd timeout\n");
++ /* dvfs code should go here */
++}
++
++/* this function should be called before device drivers turn on
++ their clocks */
++void handle_drvopen(struct pm_pdtype *pd)
++{
++ if (pd->state == PDSTATE_OFF) {
++ printk("Turning on %s pd\n", pd->name);
++ /* power on and device initializaion */
++ pd_on(pd);
++ }
++ /* clock control is done by the device driver */
++}
++
++/* this function should be called after device drivers turn off
++ their clocks and update pm_devtype->state value
++
++ If this function takes too much time, we may employ separate
++ lists for RUNNING devices and IDLE devices in a power domain */
++void handle_drvclose(struct pm_pdtype *pd)
++{
++ struct list_head *temp;
++ struct pm_devtype *pdev;
++
++ /* check this power domain */
++ list_for_each(temp, &pd->devhead) {
++ pdev = list_entry(temp, struct pm_devtype, entry);
++ if (pdev->state == DEV_RUNNING)
++ return;
++ }
++ /* if all devices under this power domain are not RUNNING */
++ pd_off(pd);
++}
++
++/* this is the thread function that we are executing */
++static int kdpmd_thread(void *data)
++{
++ struct pm_pdtype *pd;
++ unsigned int i = 0;
++#ifdef _DEBUG
++ struct timeval tv1, tv2;
++#endif
++
++ printk("Kernel DPM daemon thread started\n");
++
++ init_waitqueue_head(&kdpmd_wq);
++ init_waitqueue_head(&dd_wq);
++
++ /* an endless loop in which we are doing our work */
++ for (;;) {
++ i++;
++ /* fall asleep, wait for other processes to write to kdpmd_ev */
++ if (wait_event_interruptible(kdpmd_wq, kdpmd_ev != 0) < 0) {
++ printk(KERN_INFO "kdpmd wait returned -\n");
++ return -ERESTARTSYS;
++ }
++
++#ifdef _DEBUG
++ do_gettimeofday(&tv1);
++#endif
++
++ /* What if some other device opens up while servicing other */
++ kdpmd_lock();
++
++ /* We need to do a memory barrier here to be sure that
++ the flags are visible on all CPUs.
++ */
++ mb();
++
++ /* here we are back from sleep, either due to the timeout
++ (2 seconds), or because we caught a signal.
++ */
++ if (kthread_should_stop())
++ break;
++
++ printk(KERN_INFO "kdpmd woke up: %3d\n", i);
++
++ /* find out who woke me up */
++ pd = pd_hashtbl[kdpmd_ev];
++
++ /* find out why woke me up */
++ switch (wakeup_source) {
++ case KDPMD_TIMEOUT :
++ handle_timeout();
++ goto sleepagain;
++ case KDPMD_DRVOPEN :
++ handle_drvopen(pd);
++ break;
++ case KDPMD_DRVCLOSE :
++ handle_drvclose(pd);
++ break;
++ case KDPMD_REMOVE : // handle rmmod call
++ /* wait for 2 sec hoping that kthread_should_stop()
++ will evaluate to true */
++ wait_event_timeout(kdpmd_wq, kdpmd_ev != 0, 2 * HZ);
++ goto sleepagain;
++ default :
++ break;
++ }
++ dd_ev = kdpmd_ev;
++ wake_up_interruptible(&dd_wq);
++sleepagain:
++ kdpmd_ev = 0;
++ kdpmd_unlock();
++
++#ifdef _DEBUG
++ do_gettimeofday(&tv2);
++ printk(KERN_DEBUG " %d sec %d usec\n\n",
++ (int)tv2.tv_sec - (int)tv1.tv_sec,
++ (int)tv2.tv_usec - (int)tv1.tv_usec);
++#endif
++ }
++ /* here we go only in case of termination of the thread */
++ /* returning from the thread here calls the exit functions */
++ return (0);
++}
++
++void kdpmd_set_event(unsigned int devid, unsigned int drv_op)
++{
++ kdpmd_lock();
++ wakeup_source = drv_op;
++ kdpmd_ev = devid;
++ kdpmd_unlock();
++}
++
++void kdpmd_wakeup(void)
++{
++ wake_up_interruptible(&kdpmd_wq);
++}
++
++int kdpmd_wait(unsigned int devid)
++{
++ int ret;
++
++ ret = wait_event_interruptible(dd_wq, dd_ev==devid);
++ dd_ev = 0;
++
++ return ret;
++}
++
++int __init kdpmd_init(void)
++{
++ init_MUTEX(&kdpmd_sem);
++ kp = kthread_run(kdpmd_thread, NULL, "kdpmd");
++ printk(KERN_INFO "kdpmd created\n");
++
++ return (0);
++}
++
++void __exit kdpmd_exit(void)
++{
++ printk(KERN_INFO "kdpmd being destroyed\n");
++ kdpmd_set_event(KDPMD_REMOVE, KDPMD_REMOVE);
++ kdpmd_wakeup();
++ /* terminate the kernel thread */
++ kthread_stop(kp);
++
++ return;
++}
++
++#ifdef MODULE
++module_init(kdpmd_init);
++module_exit(kdpmd_exit);
++#else
++__initcall(kdpmd_init);
++#endif
++
++EXPORT_SYMBOL(kdpmd_set_event);
++EXPORT_SYMBOL(kdpmd_wakeup);
++EXPORT_SYMBOL(kdpmd_wait);
++
++MODULE_AUTHOR("Ikhwan Lee");
++MODULE_LICENSE("Dual BSD/GPL");
++
+diff --git a/arch/arm/mach-s3c6400/leds-s3c6400.c b/arch/arm/mach-s3c6400/leds-s3c6400.c
+new file mode 100644
+index 0000000..96e7774
+--- /dev/null
++++ b/arch/arm/mach-s3c6400/leds-s3c6400.c
+@@ -0,0 +1,117 @@
++/*
++ * linux/arch/arm/mach-s3c6400/leds-s3c6400.c
++ *
++ * Copyright 2008 by Samsung Electronics Incorporated
++ *
++ * There are 16 LEDs on the debug board (all green); four may be used
++ * for logical 'green', 'amber', 'red', and 'blue' (after "claiming").
++ *
++ * The "surfer" expansion board and H2 sample board also have two-color
++ * green+red LEDs (in parallel), used here for timer and idle indicators.
++ */
++#include <linux/init.h>
++#include <linux/kernel_stat.h>
++#include <linux/sched.h>
++
++#include <asm/io.h>
++#include <asm/hardware.h>
++#include <asm/leds.h>
++#include <asm/system.h>
++#include <asm/mach-types.h>
++
++#include <asm/arch/regs-gpio.h>
++
++#include "leds.h"
++
++#define LED0 S3C_GPN12
++#define LED1 S3C_GPN13
++#define LED2 S3C_GPN14
++#define LED3 S3C_GPN15
++
++#define LED_STATE_ENABLED 1<<0
++#define LED_STATE_CLAIMED 1<<1
++#define LED_TIMER_ON 1<<2
++#define LED_IDLE 1<<3
++
++
++void smdk6400_leds_event(led_event_t evt)
++{
++ unsigned long flags;
++
++ static u16 led_state, hw_led_state;
++
++ local_irq_save(flags);
++
++ if (!(led_state & LED_STATE_ENABLED) && evt != led_start)
++ goto done;
++
++ switch (evt) {
++ case led_start:
++ led_state |= LED_STATE_ENABLED;
++ break;
++
++ case led_stop:
++ case led_halted:
++ /* all leds off during suspend or shutdown */
++ led_state &= ~LED_STATE_ENABLED;
++ break;
++
++ case led_claim:
++ led_state |= LED_STATE_CLAIMED;
++ hw_led_state = 0;
++ break;
++
++ case led_release:
++ led_state &= ~LED_STATE_CLAIMED;
++ break;
++
++#ifdef CONFIG_LEDS_TIMER
++ case led_timer:
++ led_state ^= LED_TIMER_ON;
++
++ if (led_state & LED_TIMER_ON)
++ gpio_set_value(LED0, 1);
++ else {
++ gpio_set_value(LED0, 0);
++ }
++
++ break;
++#endif
++
++#ifdef CONFIG_LEDS_CPU
++ case led_idle_start:
++ gpio_set_value(LED1, 1);
++ break;
++
++ case led_idle_end:
++ gpio_set_value(LED1, 0);
++ break;
++#endif
++
++ case led_green_on:
++ break;
++ case led_green_off:
++ break;
++
++ case led_amber_on:
++ break;
++ case led_amber_off:
++ break;
++
++ case led_red_on:
++ break;
++ case led_red_off:
++ break;
++
++ case led_blue_on:
++ break;
++ case led_blue_off:
++ break;
++
++ default:
++ break;
++ }
++
++done:
++ local_irq_restore(flags);
++}
+diff --git a/arch/arm/mach-s3c6400/leds.c b/arch/arm/mach-s3c6400/leds.c
+new file mode 100644
+index 0000000..557bd42
+--- /dev/null
++++ b/arch/arm/mach-s3c6400/leds.c
+@@ -0,0 +1,89 @@
++/*
++ * linux/arch/arm/mach-s3c6400/leds.c
++ *
++ * S3C6400 LEDs dispatcher
++ */
++#include <linux/errno.h>
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/slab.h>
++#include <linux/input.h>
++#include <linux/init.h>
++#include <linux/serio.h>
++#include <linux/delay.h>
++#include <linux/platform_device.h>
++#include <linux/miscdevice.h>
++#include <linux/clk.h>
++#include <linux/mutex.h>
++
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/hardware.h>
++#include <asm/leds.h>
++#include <asm/mach-types.h>
++
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/irqs.h>
++#include <asm/mach/irq.h>
++#include "leds.h"
++
++static irqreturn_t eint9_switch(int irq, void *dev_id, struct pt_regs *regs)
++{
++
++ printk("EINT9 interrupt occures!!!\n");
++ return IRQ_HANDLED;
++}
++
++
++static int __init
++s3c6400_leds_init(void)
++{
++ if (machine_is_smdk6400())
++ leds_event = smdk6400_leds_event;
++ else
++ return -1;
++
++ if (machine_is_smdk6400())
++ {
++ /*GPN12~15 used for LED*/
++ /*Set GPN12~15 to output mode */
++ gpio_direction_output(S3C_GPN12);
++ if (gpio_get_pin(S3C_GPN12) == 0)
++ {
++ printk(KERN_WARNING "LED: can't set GPN12 output mode\n");
++ }
++
++ gpio_direction_output(S3C_GPN13);
++ if (gpio_get_pin(S3C_GPN13) == 0)
++ {
++ printk(KERN_WARNING "LED: can't set GPN13 output mode\n");
++ }
++
++ gpio_direction_output(S3C_GPN14);
++ if (gpio_get_pin(S3C_GPN14) == 0)
++ {
++ printk(KERN_WARNING "LED: can't set GPN14 output mode\n");
++ }
++
++ gpio_direction_output(S3C_GPN15);
++ if (gpio_get_pin(S3C_GPN15) == 0)
++ {
++ printk(KERN_WARNING "LED: can't set GPN15 output mode\n");
++ }
++
++ }
++
++ /* Get irqs */
++ set_irq_type(IRQ_EINT9, IRQT_FALLING);
++ gpio_pullup(S3C_GPN9, 0x0);
++ if (request_irq(IRQ_EINT9, eint9_switch, SA_TRIGGER_FALLING, "EINT9", NULL)) {
++ printk(KERN_ERR "leds.c: Could not allocate EINT9 !\n");
++ return -EIO;
++ }
++
++
++ leds_event(led_start);
++ return 0;
++}
++
++__initcall(s3c6400_leds_init);
+diff --git a/arch/arm/mach-s3c6400/leds.h b/arch/arm/mach-s3c6400/leds.h
+new file mode 100644
+index 0000000..8940781
+--- /dev/null
++++ b/arch/arm/mach-s3c6400/leds.h
+@@ -0,0 +1 @@
++extern void smdk6400_leds_event(led_event_t evt);
+diff --git a/arch/arm/mach-s3c6400/mach-smdk6400.c b/arch/arm/mach-s3c6400/mach-smdk6400.c
+new file mode 100644
+index 0000000..6284fd7
+--- /dev/null
++++ b/arch/arm/mach-s3c6400/mach-smdk6400.c
+@@ -0,0 +1,637 @@
++/***********************************************************************
++ *
++ * linux/arch/arm/mach-s3c64xx/smdk6400.c
++ *
++ * $Id: mach-smdk6400.c,v 1.22 2008/08/20 05:52:26 yujiun Exp $
++ *
++ * Copyright (C) 2005, Sean Choi <sh428.choi@samsung.com>
++ * All rights reserved
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ * MA 02111-1307 USA
++ *
++ * derived from linux/arch/arm/mach-s3c2410/devs.c, written by
++ * Ben Dooks <ben@simtec.co.uk>
++ *
++ ***********************************************************************/
++
++#include <linux/kernel.h>
++#include <linux/types.h>
++#include <linux/interrupt.h>
++#include <linux/list.h>
++#include <linux/timer.h>
++#include <linux/delay.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/partitions.h>
++
++#include <asm/setup.h>
++#include <asm/mach/arch.h>
++#include <asm/mach/map.h>
++#include <asm/mach/irq.h>
++#include <asm/mach/flash.h>
++
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/mach-types.h>
++
++#include <asm/plat-s3c/regs-serial.h>
++#include <asm/arch/regs-gpio.h>
++
++#include <asm/arch/regs-mem.h>
++#include <asm/arch/regs-s3c-clock.h>
++#include <asm/plat-s3c/nand.h>
++#include <asm/plat-s3c/adc.h>
++
++#include <asm/plat-s3c64xx/s3c6400.h>
++#include <asm/plat-s3c24xx/devs.h>
++#include <asm/plat-s3c24xx/cpu.h>
++#include <asm/arch/hsmmc.h>
++
++#include <asm/plat-s3c24xx/common-smdk.h>
++#include <asm/arch-s3c2410/reserved_mem.h>
++
++#if defined(CONFIG_RTC_DRV_S3C)
++#include <asm/plat-s3c/regs-rtc.h>
++#endif
++
++#if defined(CONFIG_USB_GADGET_S3C_OTGD_HS) || defined(CONFIG_USB_OHCI_HCD)
++#include <asm/arch-s3c2410/regs-usb-otg-hs.h>
++#endif
++
++#include <asm/plat-s3c/regs-adc.h>
++#include <asm/plat-s3c/ts.h>
++
++extern struct sys_timer s3c_timer;
++
++static struct map_desc smdk6400_iodesc[] __initdata = {
++ IODESC_ENT(CS8900),
++};
++
++#define DEF_UCON S3C_UCON_DEFAULT
++#define DEF_ULCON S3C_LCON_CS8 | S3C_LCON_PNONE
++#define DEF_UFCON S3C_UFCON_RXTRIG8 | S3C_UFCON_FIFOMODE
++
++
++static struct s3c24xx_uart_clksrc smdk6400_serial_clocks[] = {
++ [0] = {
++ .name = "mpll_clk_uart",
++ .divisor = 1,
++ .min_baud = 0,
++ .max_baud = 0,
++ },
++#if defined (CONFIG_SERIAL_S3C64XX_HS_UART)
++ [1] = {
++ .name = "epll_clk_uart_192m",
++ .divisor = 1,
++ .min_baud = 0,
++ .max_baud = 4000000,
++ }
++#endif
++};
++
++
++
++static struct s3c2410_uartcfg smdk6400_uartcfgs[] = {
++ [0] = {
++ .hwport = 0,
++ .flags = 0,
++ .ucon = DEF_UCON,
++ .ulcon = DEF_ULCON,
++ .ufcon = DEF_UFCON,
++ .clocks = smdk6400_serial_clocks,
++ .clocks_size = ARRAY_SIZE(smdk6400_serial_clocks),
++ },
++ [1] = {
++ .hwport = 1,
++ .flags = 0,
++ .ucon = DEF_UCON,
++ .ulcon = DEF_ULCON,
++ .ufcon = DEF_UFCON,
++ .clocks = smdk6400_serial_clocks,
++ .clocks_size = ARRAY_SIZE(smdk6400_serial_clocks),
++ },
++ [2] = {
++ .hwport = 2,
++ .flags = 0,
++ .ucon = DEF_UCON,
++ .ulcon = DEF_ULCON,
++ .ufcon = DEF_UFCON,
++ .clocks = smdk6400_serial_clocks,
++ .clocks_size = ARRAY_SIZE(smdk6400_serial_clocks),
++ },
++ [3] = {
++ .hwport = 3,
++ .flags = 0,
++ .ucon = DEF_UCON,
++ .ulcon = DEF_ULCON,
++ .ufcon = DEF_UFCON,
++ .clocks = smdk6400_serial_clocks,
++ .clocks_size = ARRAY_SIZE(smdk6400_serial_clocks),
++ }
++
++};
++
++
++
++/*add devices as drivers are integrated*/
++static struct platform_device *smdk6400_devices[] __initdata = {
++ &s3c_device_rtc,
++ &s3c_device_ac97,
++ &s3c_device_iis,
++ &s3c_device_adc,
++ &s3c_device_ts,
++ &s3c_device_i2c,
++ &s3c_device_usb,
++ &s3c_device_usbgadget,
++ &s3c_device_usb_otghcd,
++ &s3c_device_tvenc,
++ &s3c_device_tvscaler,
++ &s3c_device_hsmmc0,
++ &s3c_device_hsmmc1,
++ &s3c_device_hsmmc2,
++ &s3c_device_wdt,
++ &s3c_device_jpeg,
++ &s3c_device_vpp,
++ &s3c_device_ide,
++ &s3c_device_mfc,
++ &s3c_device_spi0,
++ &s3c_device_spi1,
++ &s3c_device_camif,
++ &s3c_device_g2d,
++ &s3c_device_keypad,
++};
++
++
++static void __init smdk6400_map_io(void)
++{
++ s3c24xx_init_io(smdk6400_iodesc, ARRAY_SIZE(smdk6400_iodesc));
++ s3c24xx_init_clocks(0);
++ s3c24xx_init_uarts(smdk6400_uartcfgs, ARRAY_SIZE(smdk6400_uartcfgs));
++}
++
++void smdk6400_cs89x0_set(void)
++{
++ unsigned int tmp;
++
++ tmp = __raw_readl(S3C_SROM_BW);
++ tmp &=~(0xF<<4);
++ tmp |= (1<<7) | (1<<6) | (1<<4);
++ __raw_writel(tmp, S3C_SROM_BW);
++
++ __raw_writel((0x0<<28)|(0x4<<24)|(0xd<<16)|(0x1<<12)|(0x4<<8)|(0x6<<4)|(0x0<<0), S3C_SROM_BC1);
++}
++
++static void __init smdk6400_fixup (struct machine_desc *desc, struct tag *tags,
++ char **cmdline, struct meminfo *mi)
++{
++ /*
++ * Bank start addresses are not present in the information
++ * passed in from the boot loader. We could potentially
++ * detect them, but instead we hard-code them.
++ */
++ mi->bank[0].start = PHYS_OFFSET;
++
++#if defined(CONFIG_RESERVED_MEM_JPEG)
++ mi->bank[0].size = 120*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_JPEG_POST)
++ mi->bank[0].size = 112*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_MFC)
++ mi->bank[0].size = 122*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_MFC_POST)
++ mi->bank[0].size = 114*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_JPEG_MFC_POST)
++ mi->bank[0].size = 106*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_JPEG_CAMERA)
++ mi->bank[0].size = 105*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_JPEG_POST_CAMERA)
++ mi->bank[0].size = 97*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_MFC_CAMERA)
++ mi->bank[0].size = 107*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_MFC_POST_CAMERA)
++ mi->bank[0].size = 99*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_JPEG_MFC_POST_CAMERA)
++ mi->bank[0].size = 91*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_CMM_MFC_POST)
++ mi->bank[0].size = 106*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_CMM_JPEG_MFC_POST_CAMERA)
++ mi->bank[0].size = 83*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_TV_MFC_POST_CAMERA)
++ mi->bank[0].size = 91*1024*1024;
++#elif defined(CONFIG_VIDEO_SAMSUNG)
++ mi->bank[0].size = 113*1024*1024;
++#else
++ mi->bank[0].size = 128*1024*1024;
++#endif
++ mi->bank[0].node = 0;
++
++ mi->nr_banks = 1;
++}
++
++
++static void __init smdk6400_machine_init (void)
++{
++ smdk6400_cs89x0_set();
++ platform_add_devices(smdk6400_devices, ARRAY_SIZE(smdk6400_devices));
++ smdk_machine_init();
++
++ /* jsgood: hsmmc0/1 card detect pin should be high before setup gpio. (GPG6 to Input) */
++ writel(readl(S3C_GPGCON) & 0xf0ffffff, S3C_GPGCON);
++}
++
++MACHINE_START(SMDK6400, "SMDK6400")
++ /* Maintainer: Samsung Electronics */
++ .phys_io = S3C24XX_PA_UART,
++ .io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
++ .boot_params = S3C_SDRAM_PA + 0x100,
++
++ .init_irq = s3c_init_irq,
++ .map_io = smdk6400_map_io,
++ .fixup = smdk6400_fixup,
++ .timer = &s3c_timer,
++ .init_machine = smdk6400_machine_init,
++MACHINE_END
++
++/*--------------------------------------------------------------
++ * HS-MMC GPIO Set function
++ * the location of this function must be re-considered.
++ * by scsuh
++ *--------------------------------------------------------------*/
++void hsmmc_set_gpio (uint channel, uint width)
++{
++ u32 reg;
++
++ switch (channel) {
++ /* can supports 1 and 4 bit bus */
++ case 0:
++ if (width == 1) {
++ /* MMC CLK0, MMC CMD0, MMC DATA0[0], MMC CDn0 0~2,6 */
++ reg = readl(S3C_GPGCON) & 0xf0fff000;
++ writel(reg | 0x02000222, S3C_GPGCON);
++ reg = readl(S3C_GPGPU) & 0xffffcfc0;
++ writel(reg, S3C_GPGPU);
++ }
++ else if (width == 4) {
++ /* MMC CLK0, MMC CMD0, MMC DATA0[0-3], MMC CDn0 0~6 */
++ reg = readl(S3C_GPGCON) & 0xf0000000;
++ writel(reg | 0x02222222, S3C_GPGCON);
++ reg = readl(S3C_GPGPU) & 0xfffff000;
++ writel(reg, S3C_GPGPU);
++ }
++ break;
++
++ /* can supports 1, 4, and 8 bit bus */
++ case 1:
++ /* MMC CDn1 - 6 */
++ reg = readl(S3C_GPGCON) & 0xf0ffffff;
++ writel(reg | 0x03000000, S3C_GPGCON);
++ reg = readl(S3C_GPGPU) & 0xffffcfff;
++ writel(reg, S3C_GPGPU);
++
++ if (width == 1) {
++ /* MMC CLK1, MMC CMD1, MMC DATA1[0] - 0~2 */
++ reg = readl(S3C_GPH0CON) & 0xfffff000;
++ writel(reg | 0x222, S3C_GPH0CON);
++ reg = readl(S3C_GPHPU) & 0xffffffc0;
++ writel(reg, S3C_GPHPU);
++ }
++ else if (width == 4) {
++ /* MMC CLK1, MMC CMD1, MMC DATA1[0-3] - 0~5 */
++ reg = readl(S3C_GPH0CON) & 0xff000000;
++ writel(reg | 0x00222222, S3C_GPH0CON);
++ reg = readl(S3C_GPHPU) & 0xfffff000;
++ writel(reg, S3C_GPHPU);
++ }
++ else if (width == 8) {
++ /* MMC CLK1, MMC CMD1, MMC DATA1[0-5] - 0~7 */
++ writel(0x22222222, S3C_GPH0CON);
++
++ /* MMC DATA1[6-7] 8~9 */
++ writel(0x00000022, S3C_GPH1CON);
++
++ reg = readl(S3C_GPHPU) & 0xfff00000;
++ writel(reg, S3C_GPHPU);
++ }
++ break;
++
++ /* can supports 1 and 4 bit bus, no irq_cd */
++ case 2:
++ /* MMC CLK2, MMC CMD2 */
++ reg = readl(S3C_GPCCON) & 0xff00ffff;
++ writel(reg | 0x00330000, S3C_GPCCON);
++ reg = readl(S3C_GPCPU) & 0xfffffc3f;
++ writel(reg, S3C_GPCPU);
++
++ if (width == 1) {
++ /* MMC DATA2[0] */
++ reg = readl(S3C_GPH0CON) & 0xf0ffffff;
++ writel(reg | 0x03000000, S3C_GPH0CON);
++ reg = readl(S3C_GPHPU) & 0xfffff3ff;
++ writel(reg, S3C_GPHPU);
++ }
++ else if (width == 4) {
++ /* MMC DATA2[1] */
++ reg = readl(S3C_GPH0CON) & 0x00ffffff;
++ writel(reg | 0x33000000, S3C_GPH0CON);
++
++ /* MMC DATA2[2-3] */
++ writel(0x00000033, S3C_GPH1CON);
++
++ reg = readl(S3C_GPHPU) & 0xfff00fff;
++ writel(reg, S3C_GPHPU);
++ }
++ break;
++
++ default:
++ break;
++ }
++}
++
++/* For host controller's capabilities */
++#define HOST_CAPS (MMC_CAP_4_BIT_DATA | MMC_CAP_MULTIWRITE | \
++ MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED)
++
++struct s3c_hsmmc_cfg s3c_hsmmc0_platform = {
++ .hwport = 0,
++ .enabled = 0,
++ .host_caps = HOST_CAPS,
++ .bus_width = 4,
++ .highspeed = 0,
++
++ /* ctrl for mmc */
++ .fd_ctrl[MMC_TYPE_MMC] = {
++ .ctrl2 = 0xC0004100, /* ctrl2 for mmc */
++ .ctrl3[SPEED_NORMAL] = 0x80808080, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0x00000080, /* ctrl3 for high speed */
++ .ctrl4 = 0,
++ },
++
++ /* ctrl for sd */
++ .fd_ctrl[MMC_TYPE_SD] = {
++ .ctrl2 = 0xC0000100, /* ctrl2 for sd */
++ .ctrl3[SPEED_NORMAL] = 0, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0, /* ctrl3 for high speed */
++ .ctrl4 = 0,
++ },
++
++ .clocks[0] = {
++ .name = "hsmmc0",
++ .src = 0x1,
++ },
++
++ .clocks[1] = {
++ .name = "sclk_48m_mmc0",
++ .src = 0x3,
++ },
++};
++
++struct s3c_hsmmc_cfg s3c_hsmmc1_platform = {
++ .hwport = 1,
++ .enabled = 1,
++ .host_caps = HOST_CAPS | MMC_CAP_8_BIT_DATA,
++ .bus_width = 8,
++ .highspeed = 0,
++
++ /* ctrl for mmc */
++ .fd_ctrl[MMC_TYPE_MMC] = {
++ .ctrl2 = 0xC0004100, /* ctrl2 for mmc */
++ .ctrl3[SPEED_NORMAL] = 0x80808080, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0x00000080, /* ctrl3 for high speed */
++ .ctrl4 = 0,
++ },
++
++ /* ctrl for sd */
++ .fd_ctrl[MMC_TYPE_SD] = {
++ .ctrl2 = 0xC0000100, /* ctrl2 for sd */
++ .ctrl3[SPEED_NORMAL] = 0, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0, /* ctrl3 for high speed */
++ .ctrl4 = 0,
++ },
++
++ .clocks[0] = {
++ .name = "hsmmc1",
++ .src = 0x1,
++ },
++
++ .clocks[1] = {
++ .name = "sclk_48m_mmc1",
++ .src = 0x3,
++ },
++};
++
++struct s3c_hsmmc_cfg s3c_hsmmc2_platform = {
++ .hwport = 2,
++ .enabled = 0,
++ .host_caps = HOST_CAPS,
++ .bus_width = 4,
++ .highspeed = 0,
++
++ /* ctrl for mmc */
++ .fd_ctrl[MMC_TYPE_MMC] = {
++ .ctrl2 = 0xC0004100, /* ctrl2 for mmc */
++ .ctrl3[SPEED_NORMAL] = 0x80808080, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0x00000080, /* ctrl3 for high speed */
++ .ctrl4 = 0,
++ },
++
++ /* ctrl for sd */
++ .fd_ctrl[MMC_TYPE_SD] = {
++ .ctrl2 = 0xC0000100, /* ctrl2 for sd */
++ .ctrl3[SPEED_NORMAL] = 0, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0, /* ctrl3 for high speed */
++ .ctrl4 = 0,
++ },
++
++ .clocks[0] = {
++ .name = "hsmmc2",
++ .src = 0x1,
++ },
++
++ .clocks[1] = {
++ .name = "sclk_48m_mmc2",
++ .src = 0x3,
++ },
++};
++
++#if defined(CONFIG_RTC_DRV_S3C)
++/* rtc function */
++unsigned int s3c_rtc_set_bit_byte(void __iomem *base, uint offset, uint val)
++{
++ writeb(val, base + offset);
++
++ return 0;
++}
++
++unsigned int s3c_rtc_read_alarm_status(void __iomem *base)
++{
++ return 1;
++}
++
++void s3c_rtc_set_pie(void __iomem *base, uint to)
++{
++ unsigned int tmp;
++
++ tmp = readw(base + S3C2410_RTCCON) & ~S3C_RTCCON_TICEN;
++
++ if (to)
++ tmp |= S3C_RTCCON_TICEN;
++
++ writew(tmp, base + S3C2410_RTCCON);
++
++}
++
++void s3c_rtc_set_freq_regs(void __iomem *base, uint freq, uint *s3c_freq)
++{
++ unsigned int tmp;
++
++ tmp = readw(base + S3C2410_RTCCON) & (S3C_RTCCON_TICEN | S3C2410_RTCCON_RTCEN );
++ writew(tmp, base + S3C2410_RTCCON);
++ *s3c_freq = freq;
++ tmp = (32768 / freq)-1;
++ writew(tmp, base + S3C2410_TICNT);
++}
++
++void s3c_rtc_enable_set(struct platform_device *pdev,void __iomem *base, int en)
++{
++ unsigned int tmp;
++
++ if (!en) {
++ tmp = readw(base + S3C2410_RTCCON);
++ writew(tmp & ~ (S3C2410_RTCCON_RTCEN | S3C_RTCCON_TICEN), base + S3C2410_RTCCON);
++ } else {
++ /* re-enable the device, and check it is ok */
++ if ((readw(base+S3C2410_RTCCON) & S3C2410_RTCCON_RTCEN) == 0){
++ dev_info(&pdev->dev, "rtc disabled, re-enabling\n");
++
++ tmp = readw(base + S3C2410_RTCCON);
++ writew(tmp|S3C2410_RTCCON_RTCEN, base+S3C2410_RTCCON);
++ }
++
++ if ((readw(base + S3C2410_RTCCON) & S3C2410_RTCCON_CNTSEL)){
++ dev_info(&pdev->dev, "removing RTCCON_CNTSEL\n");
++
++ tmp = readw(base + S3C2410_RTCCON);
++ writew(tmp& ~S3C2410_RTCCON_CNTSEL, base+S3C2410_RTCCON);
++ }
++
++ if ((readw(base + S3C2410_RTCCON) & S3C2410_RTCCON_CLKRST)){
++ dev_info(&pdev->dev, "removing RTCCON_CLKRST\n");
++
++ tmp = readw(base + S3C2410_RTCCON);
++ writew(tmp & ~S3C2410_RTCCON_CLKRST, base+S3C2410_RTCCON);
++ }
++ }
++}
++#endif
++
++#if defined(CONFIG_USB_GADGET_S3C_OTGD_HS) || defined(CONFIG_USB_OHCI_HCD)
++/* Initializes OTG Phy. */
++void otg_phy_init(u32 otg_phy_clk) {
++
++ writel(readl(S3C_OTHERS)|S3C_OTHERS_USB_SIG_MASK, S3C_OTHERS);
++ writel(0x0, S3C_USBOTG_PHYPWR); /* Power up */
++ writel(otg_phy_clk, S3C_USBOTG_PHYCLK);
++ writel(0x1, S3C_USBOTG_RSTCON);
++
++ udelay(50);
++ writel(0x0, S3C_USBOTG_RSTCON);
++ udelay(50);
++}
++#endif
++
++#ifdef CONFIG_USB_GADGET_S3C_OTGD_HS
++/* OTG PHY Power Off */
++void otg_phy_off(void) {
++ writel(readl(S3C_USBOTG_PHYPWR)|(0x1F<<1), S3C_USBOTG_PHYPWR);
++ writel(readl(S3C_OTHERS)&~S3C_OTHERS_USB_SIG_MASK, S3C_OTHERS);
++}
++#endif
++
++#ifdef CONFIG_USB_OHCI_HCD
++void usb_host_clk_en(int usb_host_clksrc, u32 otg_phy_clk) {
++ switch (usb_host_clksrc) {
++ case 0: /* epll clk */
++ writel((readl(S3C_CLK_SRC)& ~S3C_CLKSRC_UHOST_MASK)
++ |S3C_CLKSRC_EPLL_CLKSEL|S3C_CLKSRC_UHOST_EPLL,
++ S3C_CLK_SRC);
++
++ /* USB host colock divider ratio is 2 */
++ writel((readl(S3C_CLK_DIV1)& ~S3C_CLKDIVN_UHOST_MASK)
++ |S3C_CLKDIV1_USBDIV2, S3C_CLK_DIV1);
++ break;
++ case 1: /* oscillator 48M clk */
++ writel(readl(S3C_CLK_SRC)& ~S3C_CLKSRC_UHOST_MASK, S3C_CLK_SRC);
++ otg_phy_init(otg_phy_clk);
++
++ /* USB host colock divider ratio is 1 */
++ writel(readl(S3C_CLK_DIV1)& ~S3C_CLKDIVN_UHOST_MASK, S3C_CLK_DIV1);
++ break;
++ default:
++ printk(KERN_INFO "Unknown USB Host Clock Source\n");
++ BUG();
++ break;
++ }
++
++ writel(readl(S3C_HCLK_GATE)|S3C_CLKCON_HCLK_UHOST|S3C_CLKCON_HCLK_SECUR,
++ S3C_HCLK_GATE);
++ writel(readl(S3C_SCLK_GATE)|S3C_CLKCON_SCLK_UHOST, S3C_SCLK_GATE);
++
++}
++#endif
++
++/* smdk6410 adc common function */
++
++struct s3c_adc_cfg s3c_adc_platform={
++ /* s3c6410 support 12-bit resolution */
++ .delay = 10000,
++ .presc = 49,
++ .resolution = 10,
++};
++
++#if defined(CONFIG_S3C_ADC)
++unsigned int s3c_adc_convert(void __iomem *reg_base,unsigned int s3c_adc_port)
++{
++ unsigned int adc_return;
++ unsigned long data0;
++ unsigned long data1;
++
++ writel(readl(reg_base+S3C2410_ADCCON)|S3C2410_ADCCON_SELMUX(s3c_adc_port), reg_base+S3C2410_ADCCON);
++
++ udelay(10);
++
++ writel(readl(reg_base+S3C2410_ADCCON)|S3C2410_ADCCON_ENABLE_START, reg_base+S3C2410_ADCCON);
++
++ do {
++ data0 = readl(reg_base+S3C2410_ADCCON);
++ } while(!(data0 & S3C2410_ADCCON_ECFLG));
++
++ data1 = readl(reg_base+S3C2410_ADCDAT0);
++
++ adc_return = data1 & S3C2410_ADCDAT0_XPDATA_MASK;
++
++ return adc_return;
++}
++#endif
++
++struct s3c_ts_mach_info s3c_ts_platform = {
++ .delay = 10000,
++ .presc = 49,
++ .oversampling_shift = 2,
++ .resol_bit = 12,
++};
++
++
+diff --git a/arch/arm/mach-s3c6400/pm-s3c6400.c b/arch/arm/mach-s3c6400/pm-s3c6400.c
+new file mode 100644
+index 0000000..d38f507
+--- /dev/null
++++ b/arch/arm/mach-s3c6400/pm-s3c6400.c
+@@ -0,0 +1,794 @@
++/* linux/arch/arm/mach-s3c6400/pm-s3c6400.c
++ *
++ * Copyright (c) 2004 Samsung Electronics
++ *
++ *
++ * S3C Power Manager (Suspend-To-RAM) support
++ *
++ * 2007.04.19 - Modified by JaeCheol Lee <jc.lee@samsung.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ * Parts based on arch/arm/mach-pxa/pm.c
++ *
++ * Thanks to Dimitry Andric for debugging
++*/
++
++#include <linux/config.h>
++#include <linux/init.h>
++#include <linux/suspend.h>
++#include <linux/errno.h>
++#include <linux/time.h>
++#include <linux/interrupt.h>
++#include <linux/crc32.h>
++#include <linux/ioport.h>
++#include <linux/delay.h>
++#include <linux/pm.h>
++#include <linux/spinlock.h>
++
++#include <asm/hardware.h>
++#include <asm/io.h>
++
++#include <asm/arch/registers.h>
++#include <asm/mach/time.h>
++
++#include "pm-s3c6400.h"
++
++/* cache functions from arch/arm/mm/cache-v6.S */
++extern void v6_flush_kern_cache_all(void);
++/* for external use */
++unsigned long s3c_pm_flags;
++
++#define PFX "s3c-pm: "
++
++
++static struct sleep_save core_save[] = {
++ SAVE_ITEM(S3C_SDMA_SEL),
++};
++
++/* this lot should be really saved by the IRQ code */
++/* VICXADDRESSXX initilaization to be needed */
++static struct sleep_save irq_save[] = {
++ SAVE_ITEM(S3C_VIC0INTSELECT),
++ SAVE_ITEM(S3C_VIC1INTSELECT),
++ SAVE_ITEM(S3C_VIC0INTENABLE),
++ SAVE_ITEM(S3C_VIC1INTENABLE),
++ SAVE_ITEM(S3C_VIC0SOFTINT),
++ SAVE_ITEM(S3C_VIC1SOFTINT),
++};
++
++static struct sleep_save sromc_save[] = {
++ SAVE_ITEM(S3C_SROM_BW),
++ SAVE_ITEM(S3C_SROM_BC0),
++ SAVE_ITEM(S3C_SROM_BC1),
++ SAVE_ITEM(S3C_SROM_BC2),
++ SAVE_ITEM(S3C_SROM_BC3),
++ SAVE_ITEM(S3C_SROM_BC4),
++ SAVE_ITEM(S3C_SROM_BC5),
++};
++static struct sleep_save gpio_save[] = {
++
++ SAVE_ITEM(S3C_GPK0CON),
++ SAVE_ITEM(S3C_GPK1CON),
++ SAVE_ITEM(S3C_GPKDAT),
++ SAVE_ITEM(S3C_GPKPU),
++
++ SAVE_ITEM(S3C_GPL0CON),
++ SAVE_ITEM(S3C_GPL1CON),
++ SAVE_ITEM(S3C_GPLDAT),
++ SAVE_ITEM(S3C_GPLPU),
++
++ SAVE_ITEM(S3C_GPMCON),
++ SAVE_ITEM(S3C_GPMDAT),
++ SAVE_ITEM(S3C_GPMPU),
++
++ SAVE_ITEM(S3C_GPNCON),
++ SAVE_ITEM(S3C_GPNDAT),
++ SAVE_ITEM(S3C_GPNPU),
++
++ /* External interrupt */
++ SAVE_ITEM(S3C_EINTCON0),
++ SAVE_ITEM(S3C_EINTCON1),
++ SAVE_ITEM(S3C_EINTFLTCON0),
++ SAVE_ITEM(S3C_EINTFLTCON1),
++ SAVE_ITEM(S3C_EINTFLTCON2),
++ SAVE_ITEM(S3C_EINTFLTCON3),
++ SAVE_ITEM(S3C_EINTMASK),
++ SAVE_ITEM(S3C_EINT12CON),
++ SAVE_ITEM(S3C_EINT34CON),
++ SAVE_ITEM(S3C_EINT56CON),
++ SAVE_ITEM(S3C_EINT78CON),
++ SAVE_ITEM(S3C_EINT9CON),
++ SAVE_ITEM(S3C_EINT12FLTCON),
++ SAVE_ITEM(S3C_EINT34FLTCON),
++ SAVE_ITEM(S3C_EINT56FLTCON),
++ SAVE_ITEM(S3C_EINT78FLTCON),
++ SAVE_ITEM(S3C_EINT9FLTCON),
++ SAVE_ITEM(S3C_EINT12MASK),
++ SAVE_ITEM(S3C_EINT34MASK),
++ SAVE_ITEM(S3C_EINT56MASK),
++ SAVE_ITEM(S3C_EINT78MASK),
++ SAVE_ITEM(S3C_EINT9MASK),
++ SAVE_ITEM(S3C_EINT34FLTCON),
++ SAVE_ITEM(S3C_EINT56FLTCON),
++ SAVE_ITEM(S3C_EINT78FLTCON),
++ SAVE_ITEM(S3C_EINT9FLTCON),
++ SAVE_ITEM(S3C_PRIORITY),
++
++ /* GPIO memory map bug in EVT0 */
++ SAVE_ITEM(S3C_GPACON),
++ SAVE_ITEM(S3C_GPADAT),
++ SAVE_ITEM(S3C_GPAPU),
++
++ SAVE_ITEM(S3C_GPBCON),
++ SAVE_ITEM(S3C_GPBDAT),
++ SAVE_ITEM(S3C_GPBPU),
++
++ SAVE_ITEM(S3C_GPCCON),
++ SAVE_ITEM(S3C_GPCDAT),
++ SAVE_ITEM(S3C_GPCPU),
++
++ SAVE_ITEM(S3C_GPDCON),
++ SAVE_ITEM(S3C_GPDDAT),
++ SAVE_ITEM(S3C_GPDPU),
++
++ SAVE_ITEM(S3C_GPECON),
++ SAVE_ITEM(S3C_GPEDAT),
++ SAVE_ITEM(S3C_GPEPU),
++
++ SAVE_ITEM(S3C_GPFCON),
++ SAVE_ITEM(S3C_GPFDAT),
++ SAVE_ITEM(S3C_GPFPU),
++
++ SAVE_ITEM(S3C_GPGCON),
++ SAVE_ITEM(S3C_GPGDAT),
++ SAVE_ITEM(S3C_GPGPU),
++
++ SAVE_ITEM(S3C_GPH0CON),
++ SAVE_ITEM(S3C_GPH1CON),
++ SAVE_ITEM(S3C_GPHDAT),
++ SAVE_ITEM(S3C_GPHPU),
++
++ SAVE_ITEM(S3C_GPICON),
++ SAVE_ITEM(S3C_GPIDAT),
++ SAVE_ITEM(S3C_GPIPU),
++
++ SAVE_ITEM(S3C_GPJCON),
++ SAVE_ITEM(S3C_GPJDAT),
++ SAVE_ITEM(S3C_GPJPU),
++
++
++ SAVE_ITEM(S3C_GPOCON),
++ SAVE_ITEM(S3C_GPODAT),
++ SAVE_ITEM(S3C_GPOPU),
++
++ SAVE_ITEM(S3C_GPPCON),
++ SAVE_ITEM(S3C_GPPDAT),
++ SAVE_ITEM(S3C_GPPPU),
++
++ SAVE_ITEM(S3C_GPQCON),
++ SAVE_ITEM(S3C_GPQDAT),
++ SAVE_ITEM(S3C_GPQPU),
++
++ /* Special register*/
++ SAVE_ITEM(S3C_SPCON),
++
++ /* Memory port control */
++ SAVE_ITEM(S3C_MEM0CONSTOP),
++ SAVE_ITEM(S3C_MEM1CONSTOP),
++ SAVE_ITEM(S3C_MEM0CONSLP0),
++ SAVE_ITEM(S3C_MEM0CONSLP1),
++ SAVE_ITEM(S3C_MEM1CONSLP),
++ SAVE_ITEM(S3C_MEM0DRVCON),
++ SAVE_ITEM(S3C_MEM1DRVCON),
++
++};
++
++static struct sleep_save ts_save[] = {
++ /* Touch Screen */
++ SAVE_ITEM(S3C_ADCDLY),
++ SAVE_ITEM(S3C_ADCTSC),
++ SAVE_ITEM(S3C_ADCCON),
++};
++
++static struct sleep_save lcd_save[] = {
++
++};
++
++
++#define SAVE_UART(va) \
++ SAVE_ITEM((va) + S3C_ULCON), \
++ SAVE_ITEM((va) + S3C_UCON), \
++ SAVE_ITEM((va) + S3C_UFCON), \
++ SAVE_ITEM((va) + S3C_UMCON), \
++ SAVE_ITEM((va) + S3C_UBRDIV), \
++ SAVE_ITEM((va) + S3C_UDIVSLOT), \
++ SAVE_ITEM((va) + S3C_UINTMSK)
++
++
++static struct sleep_save uart_save[] = {
++ SAVE_UART(S3C24XX_VA_UART0),
++ SAVE_UART(S3C24XX_VA_UART1),
++ SAVE_UART(S3C24XX_VA_UART2),
++ SAVE_UART(S3C24XX_VA_UART3),
++};
++
++#if 1
++
++
++/* debug
++ *
++ * we send the debug to printascii() to allow it to be seen if the
++ * system never wakes up from the sleep
++*/
++
++extern void printascii(const char *);
++
++static void pm_dbg(const char *fmt, ...)
++{
++ va_list va;
++ char buff[256];
++
++ va_start(va, fmt);
++ vsprintf(buff, fmt, va);
++ va_end(va);
++
++ printascii(buff);
++}
++
++static void s3c6400_pm_debug_init(void)
++{
++ unsigned long tmp = __raw_readl(S3C_PCLK_GATE);
++
++ /* re-start uart clocks */
++ tmp |= S3C_CLKCON_PCLK_UART0;
++ tmp |= S3C_CLKCON_PCLK_UART1;
++ tmp |= S3C_CLKCON_PCLK_UART2;
++
++ __raw_writel(tmp, S3C_PCLK_GATE);
++ udelay(10);
++}
++
++#define DBG(fmt...) pm_dbg(fmt)
++#else
++#define DBG(fmt...) printk(KERN_DEBUG fmt)
++
++#define s3c6400_pm_debug_init() do { } while(0)
++
++#endif
++
++
++#if defined(CONFIG_S3C6400_PM_CHECK) && CONFIG_S3C6400_PM_CHECK_CHUNKSIZE != 0
++
++/* suspend checking code...
++ *
++ * this next area does a set of crc checks over all the installed
++ * memory, so the system can verify if the resume was ok.
++ *
++ * CONFIG_S3C6400_PM_CHECK_CHUNKSIZE defines the block-size for the CRC,
++ * increasing it will mean that the area corrupted will be less easy to spot,
++ * and reducing the size will cause the CRC save area to grow
++*/
++
++#define CHECK_CHUNKSIZE (CONFIG_S3C6400_PM_CHECK_CHUNKSIZE * 1024)
++
++static u32 crc_size; /* size needed for the crc block */
++static u32 *crcs; /* allocated over suspend/resume */
++
++typedef u32 *(run_fn_t)(struct resource *ptr, u32 *arg);
++
++/* s3c6400_pm_run_res
++ *
++ * go thorugh the given resource list, and look for system ram
++*/
++
++static void s3c6400_pm_run_res(struct resource *ptr, run_fn_t fn, u32 *arg)
++{
++ while (ptr != NULL) {
++ if (ptr->child != NULL)
++ s3c6400_pm_run_res(ptr->child, fn, arg);
++
++ if ((ptr->flags & IORESOURCE_MEM) &&
++ strcmp(ptr->name, "System RAM") == 0) {
++ DBG("Found system RAM at %08lx..%08lx\n",
++ ptr->start, ptr->end);
++ arg = (fn)(ptr, arg);
++ }
++
++ ptr = ptr->sibling;
++ }
++}
++
++static void s3c6400_pm_run_sysram(run_fn_t fn, u32 *arg)
++{
++ s3c6400_pm_run_res(&iomem_resource, fn, arg);
++}
++
++static u32 *s3c6400_pm_countram(struct resource *res, u32 *val)
++{
++ u32 size = (u32)(res->end - res->start)+1;
++
++ size += CHECK_CHUNKSIZE-1;
++ size /= CHECK_CHUNKSIZE;
++
++ DBG("Area %08lx..%08lx, %d blocks\n", res->start, res->end, size);
++
++ *val += size * sizeof(u32);
++ return val;
++}
++
++/* s3c6400_pm_prepare_check
++ *
++ * prepare the necessary information for creating the CRCs. This
++ * must be done before the final save, as it will require memory
++ * allocating, and thus touching bits of the kernel we do not
++ * know about.
++*/
++
++static void s3c6400_pm_check_prepare(void)
++{
++ crc_size = 0;
++
++ s3c6400_pm_run_sysram(s3c6400_pm_countram, &crc_size);
++
++ DBG("s3c6400_pm_prepare_check: %u checks needed\n", crc_size);
++
++ crcs = kmalloc(crc_size+4, GFP_KERNEL);
++ if (crcs == NULL)
++ printk(KERN_ERR "Cannot allocated CRC save area\n");
++}
++
++static u32 *s3c6400_pm_makecheck(struct resource *res, u32 *val)
++{
++ unsigned long addr, left;
++
++ for (addr = res->start; addr < res->end;
++ addr += CHECK_CHUNKSIZE) {
++ left = res->end - addr;
++
++ if (left > CHECK_CHUNKSIZE)
++ left = CHECK_CHUNKSIZE;
++
++ *val = crc32_le(~0, phys_to_virt(addr), left);
++ val++;
++ }
++
++ return val;
++}
++
++/* s3c6400_pm_check_store
++ *
++ * compute the CRC values for the memory blocks before the final
++ * sleep.
++*/
++
++static void s3c6400_pm_check_store(void)
++{
++ if (crcs != NULL)
++ s3c6400_pm_run_sysram(s3c6400_pm_makecheck, crcs);
++}
++
++/* in_region
++ *
++ * return TRUE if the area defined by ptr..ptr+size contatins the
++ * what..what+whatsz
++*/
++
++static inline int in_region(void *ptr, int size, void *what, size_t whatsz)
++{
++ if ((what+whatsz) < ptr)
++ return 0;
++
++ if (what > (ptr+size))
++ return 0;
++
++ return 1;
++}
++
++static u32 *s3c6400_pm_runcheck(struct resource *res, u32 *val)
++{
++ void *save_at = phys_to_virt(s3c6400_sleep_save_phys);
++ unsigned long addr;
++ unsigned long left;
++ void *ptr;
++ u32 calc;
++
++ for (addr = res->start; addr < res->end;
++ addr += CHECK_CHUNKSIZE) {
++ left = res->end - addr;
++
++ if (left > CHECK_CHUNKSIZE)
++ left = CHECK_CHUNKSIZE;
++
++ ptr = phys_to_virt(addr);
++
++ if (in_region(ptr, left, crcs, crc_size)) {
++ DBG("skipping %08lx, has crc block in\n", addr);
++ goto skip_check;
++ }
++
++ if (in_region(ptr, left, save_at, 32*4 )) {
++ DBG("skipping %08lx, has save block in\n", addr);
++ goto skip_check;
++ }
++
++ /* calculate and check the checksum */
++ calc = crc32_le(~0, ptr, left);
++ if (calc != *val) {
++ printk(KERN_ERR PFX "Restore CRC error at "
++ "%08lx (%08x vs %08x)\n", addr, calc, *val);
++
++ DBG("Restore CRC error at %08lx (%08x vs %08x)\n",
++ addr, calc, *val);
++ }
++
++ skip_check:
++ val++;
++ }
++
++ return val;
++}
++
++/* s3c6400_pm_check_restore
++ *
++ * check the CRCs after the restore event and free the memory used
++ * to hold them
++*/
++
++static void s3c6400_pm_check_restore(void)
++{
++ if (crcs != NULL) {
++ s3c6400_pm_run_sysram(s3c6400_pm_runcheck, crcs);
++ kfree(crcs);
++ crcs = NULL;
++ }
++}
++
++#else
++
++#define s3c6400_pm_check_prepare() do { } while(0)
++#define s3c6400_pm_check_restore() do { } while(0)
++#define s3c6400_pm_check_store() do { } while(0)
++#endif
++
++/* helper functions to save and restore register state */
++
++void s3c6400_pm_do_save(struct sleep_save *ptr, int count)
++{
++ for (; count > 0; count--, ptr++) {
++ ptr->val = __raw_readl(ptr->reg);
++// DBG("saved %08lx value %08lx\n", ptr->reg, ptr->val);
++ }
++}
++
++/* s3c6400_pm_do_restore
++ *
++ * restore the system from the given list of saved registers
++ *
++ * Note, we do not use DBG() in here, as the system may not have
++ * restore the UARTs state yet
++*/
++
++void s3c6400_pm_do_restore(struct sleep_save *ptr, int count)
++{
++ for (; count > 0; count--, ptr++) {
++// printk(KERN_DEBUG "restore %08lx (restore %08lx, was %08x)\n",
++// ptr->reg, ptr->val, __raw_readl(ptr->reg));
++
++ __raw_writel(ptr->val, ptr->reg);
++ }
++}
++
++/* s3c6400_pm_do_restore_core
++ *
++ * similar to s3c6400_pm_do_restore_core
++ *
++ * WARNING: Do not put any debug in here that may effect memory or use
++ * peripherals, as things may be changing!
++*/
++
++static void s3c6400_pm_do_restore_core(struct sleep_save *ptr, int count)
++{
++ for (; count > 0; count--, ptr++) {
++ __raw_writel(ptr->val, ptr->reg);
++ }
++}
++
++/* s3c6400_pm_show_resume_irqs
++ *
++ * print any IRQs asserted at resume time (ie, we woke from)
++*/
++
++static void s3c6400_pm_show_resume_irqs(int start, unsigned long which,
++ unsigned long mask)
++{
++
++}
++
++/* s3c6400_pm_check_resume_pin
++ *
++ * check to see if the pin is configured correctly for sleep mode, and
++ * make any necessary adjustments if it is not
++*/
++
++static void s3c6400_pm_check_resume_pin(unsigned int pin, unsigned int irqoffs)
++{
++
++}
++
++/* s3c6400_pm_configure_extint
++ *
++ * configure all external interrupt pins
++*/
++
++static void s3c6400_pm_configure_extint(void)
++{
++ __raw_writel(0xfffffff, S3C_EINTMASK);
++
++// __raw_writel(0xaaaaaaaa, S3C_GPNCON); // Set EINT configuration
++// __raw_writel(0x0, S3C_EINTCON0); // Low level detecting (EINT0~15)
++// __raw_writel(0x0, S3C_EINTCON1); // Low level detecting (EINT16~27)
++
++#if 0
++ __raw_writel(__raw_readl(S3C_EINTPEND), S3C_EINTPEND); // All EINT pending clear
++ do {
++ __raw_writel(__raw_readl(S3C_EINTPEND), S3C_EINTPEND); // All EINT pending clear
++ } while(__raw_readl(S3C_EINTPEND));
++#endif
++}
++
++static void s3c6400_pm_config_gpio(void)
++{
++ /* To reset HS-MMC GPIO */
++ __raw_writel(0x0, S3C_GPGCON);
++}
++
++static inline void s3c6400_poweroff_misc(void)
++{
++ unsigned int temp;
++
++ __raw_writel(0x0, S3C_RTCCON);
++
++ temp = __raw_readl(S3C_ADCCON);
++ __raw_writel(temp |(1<<2), S3C_ADCCON);
++
++ // USB Power Control
++ temp = __raw_readl(S3C_SPCON);
++ __raw_writel(temp|(1<<3), S3C_SPCON);
++
++ temp = __raw_readl(S3C_OTHERS);
++ __raw_writel(temp|(1<<14), S3C_OTHERS);
++}
++
++void s3c6400_setup_keypad_wakeup(void)
++{
++
++}
++
++
++void s3c6400_setup_rtc_wakeup(void)
++{
++#define TESTYEAR (0x5)
++#define TESTMONTH (0x12)
++#define TESTDATE (0x31)
++#define TESTDAY (0x7)
++#define TESTHOUR (0x23)
++#define TESTMIN (0x59)
++#define TESTSEC (0x59)
++
++#define TESTYEAR2 (0x6)
++#define TESTMONTH2 (0x1)
++#define TESTDATE2 (0x1)
++#define TESTHOUR2 (0x0)
++#define TESTMIN2 (0x0)
++#define TESTSEC2 (0x0)
++
++ __raw_writel(1,S3C_RTCCON);
++ __raw_writel(TESTYEAR,S3C_RTCYEAR);
++ __raw_writel(TESTMONTH,S3C_RTCMON);
++ __raw_writel(TESTDATE,S3C_RTCDATE);
++ __raw_writel(TESTDAY,S3C_RTCDAY);
++ __raw_writel(TESTHOUR,S3C_RTCHOUR);
++ __raw_writel(TESTMIN,S3C_RTCMIN);
++ __raw_writel(TESTSEC,S3C_RTCSEC);
++
++ __raw_writel(TESTYEAR2,S3C_ALMYEAR);
++ __raw_writel(TESTMONTH2,S3C_ALMMON);
++ __raw_writel(TESTDATE2,S3C_ALMDATE);
++ __raw_writel(TESTHOUR2,S3C_ALMHOUR);
++ __raw_writel(TESTMIN2,S3C_ALMMIN);
++ __raw_writel((TESTSEC2 + 0x10),S3C_ALMSEC);
++
++ __raw_writel(0x7f,S3C_RTCALM);
++ __raw_writel(0,S3C_RTCCON);
++}
++
++unsigned long sleep_phys_sp(void *sp)
++{
++ return virt_to_phys(sp);
++}
++
++
++#define any_allowed(mask, allow) (((mask) & (allow)) != (allow))
++
++
++/* s3c6400_pm_enter
++ *
++ * central control for sleep/resume process
++ */
++static int s3c6400_pm_enter(suspend_state_t state)
++{
++ unsigned long regs_save[16];
++ unsigned long clkcon, irqindex = 0;
++ unsigned int pwr_cfg, sleep_cfg, normal_cfg, hclk_gate, temp, irqno;
++
++ /* ensure the debug is initialised (if enabled) */
++
++// s3c6400_pm_debug_init();
++
++ if (state != PM_SUSPEND_MEM) {
++ printk(KERN_ERR PFX "error: only PM_SUSPEND_MEM supported\n");
++ return -EINVAL;
++ }
++
++ /* prepare check area if configured */
++ s3c6400_pm_check_prepare();
++
++ /* store the physical address of the register recovery block */
++ s3c6400_sleep_save_phys = virt_to_phys(regs_save);
++
++ printk("s3c6400_sleep_save_phys=0x%08lx\n", s3c6400_sleep_save_phys);
++
++ /* save all necessary core registers not covered by the drivers */
++ s3c6400_pm_do_save(gpio_save, ARRAY_SIZE(gpio_save));
++ s3c6400_pm_do_save(irq_save, ARRAY_SIZE(irq_save));
++ s3c6400_pm_do_save(core_save, ARRAY_SIZE(core_save));
++ s3c6400_pm_do_save(sromc_save, ARRAY_SIZE(sromc_save));
++ s3c6400_pm_do_save(uart_save, ARRAY_SIZE(uart_save));
++ s3c6400_pm_do_save(lcd_save, ARRAY_SIZE(lcd_save));
++ s3c6400_pm_do_save(ts_save, ARRAY_SIZE(ts_save));
++
++ /* ensure INF_REG0 has the resume address */
++ __raw_writel(virt_to_phys(s3c6400_cpu_resume), S3C_INFORM0);
++
++ /* set the irq configuration for wake */
++ s3c6400_pm_configure_extint();
++
++ s3c6400_poweroff_misc();
++ s3c6400_pm_config_gpio();
++
++ s3c6400_pm_check_store();
++
++ __raw_writel(0xffffffff, S3C_VIC0INTENCLEAR);
++ __raw_writel(0xffffffff, S3C_VIC1INTENCLEAR);
++ __raw_writel(0xffffffff, S3C_VIC0SOFTINTCLEAR);
++ __raw_writel(0xffffffff, S3C_VIC1SOFTINTCLEAR);
++
++
++ s3c6400_setup_keypad_wakeup();
++
++// s3c6400_setup_rtc_wakeup();
++
++ __raw_writel(1, S3C_OSC_STABLE);
++ __raw_writel(1, S3C_PWR_STABLE);
++
++ /* Set WFI instruction to SLEEP mode */
++
++ pwr_cfg = __raw_readl(S3C_PWR_CFG);
++ pwr_cfg &= ~(0x60<<0);
++ pwr_cfg |= (0x3<<5);
++ __raw_writel(pwr_cfg, S3C_PWR_CFG);
++
++ sleep_cfg = __raw_readl(S3C_SLEEP_CFG);
++ sleep_cfg &= ~(0x61<<0);
++ __raw_writel(sleep_cfg, S3C_SLEEP_CFG);
++
++
++ __raw_writel((0x0fffffff&~(1<<9)), S3C_EINT_MASK);
++
++ __raw_writel(0x2, S3C_SLPEN);
++
++
++ /* ALL sub block "ON" before enterring sleep mode - EVT0 bug*/
++ __raw_writel(0xffffff00, S3C_NORMAL_CFG);
++
++ /* Open all clock gate to enter sleep mode - EVT0 bug*/
++ __raw_writel(0xffffffff, S3C_HCLK_GATE);
++ __raw_writel(0xffffffff, S3C_PCLK_GATE);
++ __raw_writel(0xffffffff, S3C_SCLK_GATE);
++
++
++ s3c6400_cpu_suspend(regs_save);
++
++ /* restore the cpu state */
++ cpu_init();
++
++ /* restore the system state */
++ s3c6400_pm_do_restore_core(core_save, ARRAY_SIZE(core_save));
++ s3c6400_pm_do_restore(sromc_save, ARRAY_SIZE(sromc_save));
++ s3c6400_pm_do_restore(gpio_save, ARRAY_SIZE(gpio_save));
++ s3c6400_pm_do_restore(irq_save, ARRAY_SIZE(irq_save));
++ s3c6400_pm_do_restore(uart_save, ARRAY_SIZE(uart_save));
++ s3c6400_pm_do_restore(lcd_save, ARRAY_SIZE(lcd_save));
++ s3c6400_pm_do_restore(ts_save, ARRAY_SIZE(ts_save));
++
++ temp = __raw_readl(S3C_EINTPEND);
++ __raw_writel(temp, S3C_EINTPEND);
++
++ /* For writing the IRQ number into the VICVECTADDR */
++ for (irqno = IRQ_EINT0_3; irqno <= IRQ_LCD_SYSTEM; irqno++) {
++ __raw_writel(irqno, S3C_VIC0VECTADDR0 + irqindex);
++ irqindex = irqindex + 4;
++ }
++
++ irqindex = 0;
++ for (irqno = IRQ_EINT12_19; irqno <= IRQ_ADC; irqno++) {
++ __raw_writel(irqno, S3C_VIC1VECTADDR0 + irqindex);
++ irqindex = irqindex + 4;
++ }
++
++ s3c6400_pm_debug_init();
++
++ DBG("post sleep, preparing to return\n");
++
++ s3c6400_pm_check_restore();
++
++ /* ok, let's return from sleep */
++ DBG("S3C6400 PM Resume (post-restore)\n");
++
++ return 0;
++
++}
++
++/*
++ * Called after processes are frozen, but before we shut down devices.
++ */
++static int s3c6400_pm_prepare(suspend_state_t state)
++{
++ printk(" preparing for pwrdown\n");
++ return 0;
++}
++
++/*
++ * Called after devices are re-setup, but before processes are thawed.
++ */
++static int s3c6400_pm_finish(suspend_state_t state)
++{
++ return 0;
++}
++
++/*
++ * Set to PM_DISK_FIRMWARE so we can quickly veto suspend-to-disk.
++ */
++static struct pm_ops s3c6400_pm_ops = {
++ .pm_disk_mode = PM_DISK_FIRMWARE,
++ .prepare = s3c6400_pm_prepare,
++ .enter = s3c6400_pm_enter,
++ .finish = s3c6400_pm_finish,
++};
++
++int __init s3c6400_pm_init(void)
++{
++ printk("S3C6400 Power Management, (c) 2006 Samsung Electronics\n");
++
++ enable_irq_wake(IRQ_EINT9);
++ enable_irq_wake(IRQ_RTC_ALARM);
++
++ pm_set_ops(&s3c6400_pm_ops);
++
++ return 0;
++}
++
++module_init(s3c6400_pm_init);
+diff --git a/arch/arm/mach-s3c6400/pm-s3c6400.h b/arch/arm/mach-s3c6400/pm-s3c6400.h
+new file mode 100644
+index 0000000..b5e907a
+--- /dev/null
++++ b/arch/arm/mach-s3c6400/pm-s3c6400.h
+@@ -0,0 +1,67 @@
++/* linux/arch/arm/mach-s3c6400/pm.h
++ *
++ * Copyright (c) 2006 Samsung Electronics
++ * Ryu Euiyoul <steven.ryu@samsung.com>
++ *
++ * Copyright (c) 2004 Simtec Electronics
++ * Written by Ben Dooks, <ben@simtec.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++*/
++
++/* s3c6400_pm_init
++ *
++ * called from board at initialisation time to setup the power
++ * management
++*/
++
++#ifdef CONFIG_PM
++
++extern __init int s3c6400_pm_init(void);
++
++#else
++
++static inline int s3c6400_pm_init(void)
++{
++ return 0;
++}
++#endif
++
++#if 0
++/* configuration for the IRQ mask over sleep */
++extern unsigned long s3c_irqwake_intmask0;
++extern unsigned long s3c_irqwake_intmask1;
++extern unsigned long s3c_irqwake_eintmask;
++
++/* IRQ masks for IRQs allowed to go to sleep (see irq.c) */
++extern unsigned long s3c_irqwake_intallow0;
++extern unsigned long s3c_irqwake_intallow1;
++extern unsigned long s3c_irqwake_eintallow;
++
++#endif
++
++/* Flags for PM Control */
++
++extern unsigned long s3c_pm_flags;
++
++/* from sleep.S */
++
++extern void s3c6400_cpu_suspend(unsigned long *saveblk);
++extern void s3c6400_cpu_resume(void);
++
++extern unsigned long s3c6400_sleep_save_phys;
++
++/* sleep save info */
++
++struct sleep_save {
++ unsigned long reg;
++ unsigned long val;
++};
++
++#define SAVE_ITEM(x) \
++ { .reg = (unsigned long)(x) }
++
++extern void s3c6400_pm_do_save(struct sleep_save *ptr, int count);
++extern void s3c6400_pm_do_restore(struct sleep_save *ptr, int count);
+diff --git a/arch/arm/mach-s3c6400/pm.c b/arch/arm/mach-s3c6400/pm.c
+new file mode 100644
+index 0000000..74910d5
+--- /dev/null
++++ b/arch/arm/mach-s3c6400/pm.c
+@@ -0,0 +1,116 @@
++/* linux/arch/arm/mach-s3c6400/pm.c
++ *
++ * Copyright (c) 2006 Samsung Electronics
++ *
++ *
++ * S3C6400 (and compatible) Power Manager (Suspend-To-RAM) support
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++*/
++
++#include <linux/init.h>
++#include <linux/suspend.h>
++#include <linux/errno.h>
++#include <linux/time.h>
++#include <linux/sysdev.h>
++
++#include <asm/hardware.h>
++#include <asm/io.h>
++
++#include <asm/mach-types.h>
++
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-s3c-clock.h>
++#include <asm/plat-s3c/regs-rtc.h>
++#include <asm/plat-s3c24xx/cpu.h>
++#include <asm/plat-s3c24xx/pm.h>
++
++#ifdef CONFIG_S3C2410_PM_DEBUG
++extern void pm_dbg(const char *fmt, ...);
++#define DBG(fmt...) pm_dbg(fmt)
++#else
++#define DBG(fmt...) printk(KERN_DEBUG fmt)
++#endif
++
++static void s3c6400_cpu_suspend(void)
++{
++ unsigned long tmp;
++
++ /* issue the standby signal into the pm unit. Note, we
++ * issue a write-buffer drain just in case */
++
++ tmp = 0;
++
++ asm("b 1f\n\t"
++ ".align 5\n\t"
++ "1:\n\t"
++ "mcr p15, 0, %0, c7, c10, 5\n\t"
++ "mcr p15, 0, %0, c7, c10, 4\n\t"
++ "mcr p15, 0, %0, c7, c0, 4" :: "r" (tmp));
++
++ /* we should never get past here */
++
++ panic("sleep resumed to originator?");
++}
++
++static void s3c6400_pm_prepare(void)
++{
++
++}
++
++static int s3c6400_pm_add(struct sys_device *sysdev)
++{
++ pm_cpu_prep = s3c6400_pm_prepare;
++ pm_cpu_sleep = s3c6400_cpu_suspend;
++
++ return 0;
++}
++
++static struct sleep_save s3c6400_sleep[] = {
++
++};
++
++static int s3c6400_pm_suspend(struct sys_device *dev, pm_message_t state)
++{
++ s3c2410_pm_do_save(s3c6400_sleep, ARRAY_SIZE(s3c6400_sleep));
++ return 0;
++}
++
++static int s3c6400_pm_resume(struct sys_device *dev)
++{
++ unsigned long tmp;
++#if 0
++ tmp = __raw_readl(S3C_PWR_CFG);
++ tmp &= ~(0x60<<0);
++ tmp |= (0x1<<5);
++ __raw_writel(tmp, S3C_PWR_CFG);
++#endif
++ s3c2410_pm_do_restore(s3c6400_sleep, ARRAY_SIZE(s3c6400_sleep));
++ return 0;
++}
++
++static struct sysdev_driver s3c6400_pm_driver = {
++ .add = s3c6400_pm_add,
++ .suspend = s3c6400_pm_suspend,
++ .resume = s3c6400_pm_resume,
++};
++
++static __init int s3c6400_pm_init(void)
++{
++ return sysdev_driver_register(&s3c6400_sysclass, &s3c6400_pm_driver);
++}
++
++arch_initcall(s3c6400_pm_init);
++
+diff --git a/arch/arm/mach-s3c6400/s3c6400.c b/arch/arm/mach-s3c6400/s3c6400.c
+new file mode 100644
+index 0000000..b95f504
+--- /dev/null
++++ b/arch/arm/mach-s3c6400/s3c6400.c
+@@ -0,0 +1,139 @@
++
++/* linux/arch/arm/mach-s3c64xx/s3c6400.c
++ *
++ * Copyright (c) 2006, Samsung Electronics
++ * All rights reserved.
++ *
++ * Samsung S3C6400 Mobile CPU support
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * derived from linux/arch/arm/mach-s3c2410/devs.c, written by
++ * Ben Dooks <ben@simtec.co.uk>
++ */
++
++#include <linux/kernel.h>
++#include <linux/types.h>
++#include <linux/interrupt.h>
++#include <linux/list.h>
++#include <linux/timer.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/sysdev.h>
++#include <linux/delay.h>
++#include <linux/proc_fs.h>
++#include <linux/clk.h>
++
++#include <asm/mach/arch.h>
++#include <asm/mach/map.h>
++#include <asm/mach/irq.h>
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/irq.h>
++
++#include <asm/proc-fns.h>
++#include <asm/arch/idle.h>
++
++#include <asm/arch/regs-s3c-clock.h>
++#include <asm/plat-s3c/regs-serial.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/map.h>
++#include <asm/plat-s3c/nand.h>
++
++//#include <asm/plat-s3c24xx/clock.h>
++#include <asm/plat-s3c64xx/s3c6400.h>
++#include <asm/plat-s3c24xx/devs.h>
++#include <asm/plat-s3c24xx/common-smdk.h>
++#include <asm/plat-s3c24xx/cpu.h>
++#include "pm-s3c6400.h"
++
++/* Serial port registrations */
++
++static struct map_desc s3c6400_iodesc[] __initdata = {
++ IODESC_ENT(SROMC),
++ IODESC_ENT(TIMER),
++ IODESC_ENT(LCD),
++ IODESC_ENT(HOSTIFB),
++};
++
++/* s3c6400_idle
++ *
++ * use the standard idle call by ensuring the idle mode
++ * in power config, then issuing the idle co-processor
++ * instruction
++*/
++
++static void s3c6400_idle(void)
++{
++ unsigned long tmp;
++
++ /* ensure our idle mode is to go to idle */
++
++ /* Set WFI instruction to SLEEP mode */
++
++ tmp = __raw_readl(S3C_PWR_CFG);
++ tmp &= ~(0x1<<5);
++ tmp |= (0x1<<5);
++ __raw_writel(tmp, S3C_PWR_CFG);
++
++ cpu_do_idle();
++}
++
++
++void __init s3c6400_init_uarts(struct s3c2410_uartcfg *cfg, int no)
++{
++ s3c24xx_init_uartdevs("s3c-uart", s3c2410_uart_resources, cfg, no);
++}
++
++struct sysdev_class s3c6400_sysclass = {
++ set_kset_name("s3c6400-core"),
++};
++
++static struct sys_device s3c6400_sysdev = {
++ .cls = &s3c6400_sysclass,
++};
++
++
++static int __init s3c6400_core_init(void)
++{
++ return sysdev_class_register(&s3c6400_sysclass);
++}
++
++core_initcall(s3c6400_core_init);
++
++void __init s3c6400_map_io(struct map_desc *mach_desc, int size)
++{
++ /* register our io-tables */
++ iotable_init(s3c6400_iodesc, ARRAY_SIZE(s3c6400_iodesc));
++ iotable_init(mach_desc, size);
++ /* rename any peripherals used differing from the s3c2412 */
++
++ /* set our idle function */
++
++ s3c24xx_idle = s3c6400_idle;
++}
++
++int __init s3c6400_init(void)
++{
++ int ret;
++
++ printk("s3c6400: Initialising architecture\n");
++
++ ret = sysdev_register(&s3c6400_sysdev);
++
++ if (ret != 0)
++ printk(KERN_ERR "failed to register sysdev for s3c6400\n");
++
++ /* Rename devices that are specific to S3C6400 */
++
++#if defined (CONFIG_S3C_SIR)
++ s3c24xx_uart_src[3]->name = "s3c-irda";
++#endif
++ s3c_device_lcd.name = "s3c-lcd";
++ s3c_device_nand.name = "s3c-nand";
++
++ return ret;
++}
++
+diff --git a/arch/arm/mach-s3c6410/Kconfig b/arch/arm/mach-s3c6410/Kconfig
+new file mode 100644
+index 0000000..6b66aa0
+--- /dev/null
++++ b/arch/arm/mach-s3c6410/Kconfig
+@@ -0,0 +1,52 @@
++# arch/arm/mach-s3c6400/Kconfig
++#
++# Copyright 2007 Simtec Electronics
++#
++# Licensed under GPLv2
++
++menu "S3C6410 Machines"
++
++config MACH_SMDK6410
++ bool "SMDK6410"
++ select CPU_S3C6410
++ select MACH_SMDK
++ help
++ Say Y here if you are using the SMDK6410
++
++config MACH_SMDK6430
++ bool "SMDK6430/6431"
++ select CPU_S3C6410
++ select MACH_SMDK
++ help
++ Say Y here if you are using the SMDK6430
++
++config S3C6410_PDFW
++ tristate "S3C6410 Power Domain Framework"
++ depends on CPU_S3C6410
++ help
++ Install power domain framework for S3C6410
++
++config S3C6410_PDFW_PROC
++ bool "/proc filesystem support for pdfw"
++ depends on CPU_S3C6410 && S3C6410_PDFW
++ help
++ proc file system for S3C6410 Power Domain Framework
++
++config S3C6410_KDPMD
++ tristate "S3C6410 Kernel Dynamic Power Management Daemon"
++ depends on CPU_S3C6410 && S3C6410_PDFW
++ help
++ Install kernel dynamic power management daemon
++endmenu
++
++config CPU_S3C6410
++ bool
++ depends on ARCH_S3C2410
++ select S3C6410_PM if PM
++ help
++ Support for S3C6410 Samsung Mobile CPU based systems.
++
++config S3C6410_PM
++ bool
++ help
++ Internal config node to apply S3C6410 power management
+diff --git a/arch/arm/mach-s3c6410/Makefile b/arch/arm/mach-s3c6410/Makefile
+new file mode 100644
+index 0000000..7e65ecb
+--- /dev/null
++++ b/arch/arm/mach-s3c6410/Makefile
+@@ -0,0 +1,29 @@
++
++#
++# Makefile for the linux kernel.
++#
++
++# Object file lists.
++obj-y :=
++led-y := leds.o
++obj-n :=
++obj- :=
++
++# smdk6410 machine-specific support
++obj-$(CONFIG_CPU_S3C6410) += s3c6410.o clock.o
++obj-$(CONFIG_MACH_SMDK6410) += mach-smdk6410.o
++
++obj-$(CONFIG_CPU_S3C6410) += irq.o dma.o
++obj-$(CONFIG_S3C64XX_DMA_SYSFS) += dma-sysfs.o
++obj-$(CONFIG_S3C6410_PM) += pm.o
++
++# Power Management support
++
++# LEDs support
++led-$(CONFIG_MACH_SMDK6410) += leds-s3c6410.o
++obj-$(CONFIG_LEDS) += $(led-y)
++
++# PWM Support
++
++obj-$(CONFIG_PWM) += pwm/
++
+diff --git a/arch/arm/mach-s3c6410/clock.c b/arch/arm/mach-s3c6410/clock.c
+new file mode 100644
+index 0000000..235c07a
+--- /dev/null
++++ b/arch/arm/mach-s3c6410/clock.c
+@@ -0,0 +1,825 @@
++/* linux/arch/arm/mach-s3c6410/clock.c
++ *
++ * Copyright (c) 2004 Simtec Electronics
++ * Ben Dooks <ben@simtec.co.uk>
++ *
++ * S3C2412 Clock control support
++ *
++ * Based on, and code from linux/arch/arm/mach-versatile/clock.c
++ **
++ ** Copyright (C) 2004 ARM Limited.
++ ** Written by Deep Blue Solutions Limited.
++ *
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ */
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/list.h>
++#include <linux/errno.h>
++#include <linux/err.h>
++#include <linux/platform_device.h>
++#include <linux/sysdev.h>
++#include <linux/delay.h>
++
++#include <linux/interrupt.h>
++#include <linux/ioport.h>
++#include <linux/clk.h>
++#include <linux/mutex.h>
++
++#include <asm/mach/map.h>
++
++#include <asm/hardware.h>
++#include <asm/atomic.h>
++#include <asm/irq.h>
++#include <asm/io.h>
++
++#include <asm/plat-s3c64xx/clock.h>
++#include <asm/plat-s3c24xx/cpu.h>
++#include <asm/arch/regs-s3c-clock.h>
++
++#ifdef CONFIG_USB_OHCI_HCD
++#include <asm/arch/regs-usb-otg-hs.h>
++#endif
++
++#define HCLK_GATING_ON_LIST S3C_CLKCON_HCLK_BUS | S3C_CLKCON_HCLK_DDR1 | S3C_CLKCON_HCLK_DDR0 |\
++ S3C_CLKCON_HCLK_MEM1 | S3C_CLKCON_HCLK_MEM0 | S3C_CLKCON_HCLK_DMA0 |\
++ S3C_CLKCON_HCLK_DMA1 | S3C_CLKCON_HCLK_INTC | S3C_CLKCON_HCLK_LCD |\
++ S3C_CLKCON_HCLK_DHOST | S3C_CLKCON_HCLK_POST0 | S3C_CLKCON_HCLK_MFC
++
++#define PCLK_GATING_ON_LIST S3C_CLKCON_PCLK_GPIO | S3C_CLKCON_PCLK_UART0 | S3C_CLKCON_PCLK_UART1 | S3C_CLKCON_PCLK_MFC
++
++#define SCLK_GATING_ON_LIST S3C_CLKCON_SCLK_UART | S3C_CLKCON_SCLK_LCD27 | S3C_CLKCON_SCLK_LCD | S3C_CLKCON_SCLK_POST1_27 | \
++ S3C_CLKCON_SCLK_POST0_27 | S3C_CLKCON_SCLK_POST1 | S3C_CLKCON_SCLK_POST0 | S3C_CLKCON_SCLK_MFC
++
++/* Select the source clock of USB Host. 0:48MHz, 1:FoutEpll */
++#define S3C_USB_CLKSRC_EPLL 0
++
++
++static int s3c6410_clkcon_enable_h(struct clk *clk, int enable)
++{
++ unsigned int clocks = clk->ctrlbit;
++ unsigned long clkcon;
++
++ clkcon = __raw_readl(S3C_HCLK_GATE);
++
++ if (enable)
++ clkcon |= clocks;
++ else
++ clkcon &= ~clocks;
++
++ __raw_writel(clkcon, S3C_HCLK_GATE);
++
++ return 0;
++}
++
++static int s3c6410_clkcon_enable_p(struct clk *clk, int enable)
++{
++ unsigned int clocks = clk->ctrlbit;
++ unsigned long clkcon;
++
++ clkcon = __raw_readl(S3C_PCLK_GATE);
++
++ if (enable)
++ clkcon |= clocks;
++ else
++ clkcon &= ~clocks;
++
++ __raw_writel(clkcon, S3C_PCLK_GATE);
++
++ return 0;
++}
++
++static int s3c6410_clkcon_enable_s(struct clk *clk, int enable)
++{
++ unsigned int clocks = clk->ctrlbit;
++ unsigned long clkcon;
++
++ clkcon = __raw_readl(S3C_SCLK_GATE);
++
++ if (enable)
++ clkcon |= clocks;
++ else
++ clkcon &= ~clocks;
++
++ __raw_writel(clkcon, S3C_SCLK_GATE);
++
++ return 0;
++}
++
++
++static int s3c6410_clkcon_enable_others(struct clk *clk, int enable)
++{
++ unsigned int clocks = clk->ctrlbit;
++ unsigned long clkcon;
++
++ clkcon = __raw_readl(S3C_OTHERS);
++
++ if (enable)
++ clkcon |= clocks;
++ else
++ clkcon &= ~clocks;
++
++ __raw_writel(clkcon, S3C_OTHERS);
++
++ return 0;
++}
++
++/*This function returns the virtual address of gating register*/
++ulong clk_get_gate_reg (struct clk *clk)
++{
++ struct clk *parent_clk = clk_get_parent(clk) ;
++
++ if (strcmp(parent_clk->name, "hclk") == 0)
++ return (unsigned long) S3C_HCLK_GATE;
++ else if (strcmp(parent_clk->name, "pclk") == 0)
++ return (unsigned long) S3C_PCLK_GATE;
++ else if (strcmp(parent_clk->name, "clk48m") == 0)
++ return (unsigned long) S3C_OTHERS;
++ else
++ return (unsigned long) S3C_SCLK_GATE;
++}
++
++int s3c_clkcon_enable (struct clk *clk, int enable)
++{
++ unsigned long gate_reg;
++
++ gate_reg = clk_get_gate_reg(clk);
++ s3c_clk_enable(clk->ctrlbit, enable, gate_reg);
++ return 0;
++}
++
++static unsigned long s3c6410_clk_getrate(struct clk *clk)
++{
++ /* set clock rate to use in drivers */
++ if (!clk->rate) {
++ if (clk->parent) {
++ clk->rate = clk->parent->rate;
++ }
++ }
++ return clk->rate;
++}
++
++
++static int s3c6410_epll_clk_uart_enable (struct clk *clk, int enable)
++{
++ s3c6410_clkcon_enable_s(clk, enable);
++
++ /* MUXepll : FOUTepll */
++ writel(readl(S3C_CLK_SRC)|S3C_CLKSRC_EPLL_CLKSEL, S3C_CLK_SRC);
++
++ /* UARTsel : MOUTepll */
++ writel((readl(S3C_CLK_SRC) & ~(0x1 << 13)) | (0 << 13), S3C_CLK_SRC);
++
++ return 0;
++}
++
++
++static int s3c6410_setrate_epll_clk_192m(struct clk *clk, unsigned long rate)
++{
++ writel(S3C_EPLL_EN|S3C_EPLLVAL(32,1,1), S3C_EPLL_CON0);
++ writel(0, S3C_EPLL_CON1);
++ mdelay(5);
++
++ return 0;
++}
++
++static unsigned long s3c6410_getrate_epll_clk_192m(struct clk *clk)
++{
++ s3c6410_setrate_epll_clk_192m(clk, 192000000);
++ clk->rate = 192000000;
++ return clk->rate;
++}
++
++
++static struct clk clk_epll_uart_192m = {
++ .name = "epll_clk_uart_192m",
++ .id = -1,
++ .parent = &clk_epll,
++ .enable = s3c6410_epll_clk_uart_enable,
++ .ctrlbit = S3C_CLKCON_SCLK_UART,
++ .set_rate = s3c6410_setrate_epll_clk_192m,
++ .get_rate = s3c6410_getrate_epll_clk_192m,
++};
++
++
++static unsigned long s3c6410_mpll_get_clk(struct clk *clk)
++{
++ unsigned long mpll_con;
++ unsigned long m = 0;
++ unsigned long p = 0;
++ unsigned long s = 0;
++ unsigned long ret;
++
++ mpll_con = readl(S3C_MPLL_CON);
++
++ m = (mpll_con >> 16) & 0x3ff;
++ p = (mpll_con >> 8) & 0x3f;
++ s = mpll_con & 0x3;
++
++ ret = (m * (12000000 / (p * (1 << s))));
++
++ return (((readl(S3C_CLK_DIV0) >> 4 ) & 0x1) ? (ret / 2) : ret);
++}
++
++static int s3c6410_clk_mpll_dout_enable(struct clk *clk, int enable)
++{
++ writel(readl(S3C_CLK_SRC) | (0x1 << 1), S3C_CLK_SRC);
++
++ return 0;
++}
++
++static int s3c6410_setrate_clk_mpll_dout(struct clk *clk, unsigned long rate)
++{
++ /* To get 266Mhz */
++ writel((readl(S3C_CLK_DIV0) & ~(0x1 << 4)) | (rate << 4) , S3C_CLK_DIV0);
++
++ return 0;
++}
++
++static unsigned long s3c6410_getrate_clk_mpll_dout(struct clk *clk)
++{
++ s3c6410_setrate_clk_mpll_dout(clk, 1);
++
++ return s3c6410_mpll_get_clk(clk);
++}
++
++static struct clk clk_mpll_dout = {
++ .name = "DOUTmpll",
++ .id = -1,
++ .parent = &clk_mpll,
++ .enable = s3c6410_clk_mpll_dout_enable,
++ .ctrlbit = 0,
++ .set_rate = s3c6410_setrate_clk_mpll_dout,
++ .get_rate = s3c6410_getrate_clk_mpll_dout,
++};
++
++static int s3c6410_clk_mpll_uart_enable(struct clk *clk, int enable)
++{
++ s3c6410_clkcon_enable_s(clk, enable);
++ writel(readl(S3C_CLK_SRC) | (0x1 << 13) | S3C_CLKSRC_EPLL_CLKSEL, S3C_CLK_SRC);
++
++ return 0;
++}
++
++static int s3c6410_setrate_clk_mpll_uart(struct clk *clk, unsigned long rate)
++{
++ writel(readl(S3C_CLK_DIV2) & ~(0xf << 16) , S3C_CLK_DIV2);
++
++ return 0;
++}
++
++static unsigned long s3c6410_getrate_clk_mpll_uart(struct clk *clk)
++{
++ s3c6410_setrate_clk_mpll_uart(clk, 0);
++
++ return s3c6410_mpll_get_clk(clk);
++}
++
++static struct clk clk_mpll_uart = {
++ .name = "mpll_clk_uart",
++ .id = -1,
++ .parent = &clk_mpll,
++ .enable = s3c6410_clk_mpll_uart_enable,
++ .ctrlbit = S3C_CLKCON_SCLK_UART,
++ .set_rate = s3c6410_setrate_clk_mpll_uart,
++ .get_rate = s3c6410_getrate_clk_mpll_uart,
++};
++
++
++/* For Camera interface */
++static struct clk clk_cam_h = {
++ .name = "camif-hclk",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_CAMIF,
++};
++
++#define CAMDIV_val 20
++
++static int s3c6410_setrate_camera(struct clk *clk, unsigned long rate)
++{
++ unsigned int camclk_div, val;
++ unsigned long src_clk = clk_get_rate(clk->parent);
++
++ if (rate == 4800000) {
++ printk(KERN_INFO "External camera clock is set to 48MHz\n");
++ }
++ else if (rate > 48000000) {
++ printk(KERN_ERR "Invalid camera clock\n");
++ }
++
++ camclk_div = src_clk / rate;
++
++ val = readl(S3C_CLK_DIV0);
++ val &= ~(0xf<<CAMDIV_val);
++ writel(val, S3C_CLK_DIV0);
++
++ if (camclk_div > 0x10)
++ camclk_div = 0x10;
++
++ printk("Parent clock for Camera = %ld, CAMDIV = %d\n", src_clk, camclk_div);
++
++ /* CAM CLK DIVider Ratio = (EPLL clk)/(camclk_div) */
++ val |= ((camclk_div - 1) << CAMDIV_val);
++ writel(val, S3C_CLK_DIV0);
++ val = readl(S3C_CLK_DIV0);
++
++ return 0;
++}
++
++
++/* For HS-MMC controller */
++static unsigned long s3c6410_getrate_DOUTmpll_hsmmc_clk(struct clk *clk)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long div = readl(S3C_CLK_DIV1);
++ div &= ~S3C_CLKDIV1_HSMMCDIV_MASK;
++
++ /* MMC_RATIO = 2+1 */
++ div |= 0x2;
++
++ writel(div, S3C_CLK_DIV1);
++
++ return parent_rate / (0x2 + 1);
++}
++
++static unsigned long s3c6410_getrate_DOUTmpll_hsmmc1_clk(struct clk *clk)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long div = readl(S3C_CLK_DIV1);
++ div &= ~S3C_CLKDIV1_HSMMCDIV1_MASK;
++
++ /* MMC1_RATIO = 2+1 */
++ div |= (0x2<<S3C_CLKDIV1_HSMMCDIV1_SHIFT);
++
++ writel(div, S3C_CLK_DIV1);
++
++ return parent_rate / (0x2 + 1);
++}
++
++static struct clk clk_hsmmc_DOUTmpll_mmc0 = {
++ .name = "sclk_DOUTmpll_mmc0",
++ .id = -1,
++ .parent = &clk_mpll_dout,
++ .enable = s3c6410_clkcon_enable_s,
++ .ctrlbit = S3C_CLKCON_SCLK_MMC0,
++ .get_rate = s3c6410_getrate_DOUTmpll_hsmmc_clk,
++ .usage = 0,
++};
++
++static struct clk clk_hsmmc_DOUTmpll_mmc1 = {
++ .name = "sclk_DOUTmpll_mmc1",
++ .id = -1,
++ .parent = &clk_mpll_dout,
++ .enable = s3c6410_clkcon_enable_s,
++ .ctrlbit = S3C_CLKCON_SCLK_MMC1,
++ .get_rate = s3c6410_getrate_DOUTmpll_hsmmc1_clk,
++ .usage = 0,
++};
++
++static struct clk clk_hsmmc_DOUTmpll_mmc2 = {
++ .name = "sclk_DOUTmpll_mmc2",
++ .id = -1,
++ .parent = &clk_mpll_dout,
++ .enable = s3c6410_clkcon_enable_s,
++ .ctrlbit = S3C_CLKCON_SCLK_MMC2,
++ .get_rate = s3c6410_getrate_DOUTmpll_hsmmc_clk,
++ .usage = 0,
++};
++
++
++
++/* clocks to add straight away */
++
++static struct clk *clks[] __initdata = {
++ &clk_epll_uart_192m,
++ &clk_cam_h,
++ &clk_mpll_dout,
++ &clk_mpll_uart,
++ &clk_hsmmc_DOUTmpll_mmc0,
++ &clk_hsmmc_DOUTmpll_mmc1,
++ &clk_hsmmc_DOUTmpll_mmc2,
++};
++
++
++static struct clk init_clocks_disable[] = {
++ {
++ .name = "nand",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ //.ctrlbit = S3C_CLKCON_HCLK_NAND,
++ },
++ {
++ .name = "adc",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_TSADC,
++ },
++ {
++ .name = "i2c",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_IIC,
++ },
++ {
++ .name = "iis",
++ .id = 0,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_IIS0,
++ },
++ {
++ .name = "iis",
++ .id = 1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_IIS1,
++ },
++ {
++ .name = "spi",
++ .id = 0,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_SPI0,
++ },
++ {
++ .name = "spi",
++ .id = 1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_SPI1,
++ }
++};
++
++
++/* standard clock definitions */
++static struct clk init_clocks[] = {
++ /* AHB devices */
++ { .name = "dma 1",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_DMA1,
++ },
++ { .name = "dma 0",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_DMA0,
++ },
++ { .name = "lcd",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_LCD,
++ },
++ { .name = "TZIC",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_TZIC,
++ },
++ { .name = "INTC",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_INTC,
++ },
++ { .name = "usb-host",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_UHOST,
++ },
++ { .name = "otg",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_USB
++ },
++ { .name = "hsmmc0",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .get_rate = s3c6410_clk_getrate,
++ .ctrlbit = S3C_CLKCON_HCLK_HSMMC0
++ },
++ { .name = "hsmmc1",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .get_rate = s3c6410_clk_getrate,
++ .ctrlbit = S3C_CLKCON_HCLK_HSMMC1
++ },
++ { .name = "hsmmc2",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .get_rate = s3c6410_clk_getrate,
++ .ctrlbit = S3C_CLKCON_HCLK_HSMMC2
++ },
++ { .name = "hclk_mfc",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_MFC
++ },
++ { .name = "hclk_post0",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_POST0
++ },
++ { .name = "hclk_jpeg",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_JPEG
++ },
++ { .name = "tv_encoder",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_TV
++ },
++ { .name = "tv_scaler",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_SCALER
++ },
++
++ /* register to use HS-MMC clock */
++ { .name = "sclk_48m",
++ .id = -1,
++ .parent = &clk_48m,
++ .enable = s3c6410_clkcon_enable_others,
++ .ctrlbit = 1<<16, /* USB SIG Mask */
++ .usage = 0,
++ .rate = 48*1000*1000,
++ },
++ { .name = "sclk_48m_mmc0",
++ .id = -1,
++ .parent = &clk_s,
++ .enable = s3c6410_clkcon_enable_s,
++ .ctrlbit = S3C_CLKCON_SCLK_MMC0_48,
++ .usage = 0,
++ .rate = 48*1000*1000,
++ },
++ { .name = "sclk_48m_mmc1",
++ .id = -1,
++ .parent = &clk_s,
++ .enable = s3c6410_clkcon_enable_s,
++ .ctrlbit = S3C_CLKCON_SCLK_MMC1_48,
++ .usage = 0,
++ .rate = 48*1000*1000,
++ },
++ { .name = "sclk_48m_mmc2",
++ .id = -1,
++ .parent = &clk_s,
++ .enable = s3c6410_clkcon_enable_s,
++ .ctrlbit = S3C_CLKCON_SCLK_MMC2_48,
++ .usage = 0,
++ .rate = 48*1000*1000,
++ },
++ { .name = "sclk_mfc",
++ .id = -1,
++ .parent = &clk_s,
++ .enable = s3c6410_clkcon_enable_s,
++ .ctrlbit = S3C_CLKCON_SCLK_MFC,
++ .usage = 0,
++ .rate = 48*1000*1000,
++ },
++ { .name = "sclk_jpeg",
++ .id = -1,
++ .parent = &clk_s,
++ .enable = s3c6410_clkcon_enable_s,
++ .ctrlbit = S3C_CLKCON_SCLK_JPEG,
++ .usage = 0,
++ .rate = 48*1000*1000,
++ },
++ { .name = "cfata",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_IHOST
++ },
++
++ /* APB Devices */
++ { .name = "RTC",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_RTC,
++ },
++ { .name = "GPIO",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_GPIO,
++ },
++ { .name = "UART2",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_UART2,
++ },
++ { .name = "UART1",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_UART1,
++ },
++ { .name = "UART0",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_UART0,
++ },
++ { .name = "timers",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_PWM,
++ },
++ { .name = "watchdog",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_WDT,
++ },
++ { .name = "i2c",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_IIC,
++ },
++ { .name = "spi0",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_SPI0,
++ },
++ { .name = "spi1",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_SPI1,
++ },
++ { .name = "adc",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_TSADC,
++ },
++ { .name = "pclk_mfc",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_MFC,
++ },
++ {
++ .name = "camera",
++ .id = -1,
++ .parent = &clk_hx2,
++ .enable = s3c_clkcon_enable,
++ .ctrlbit = S3C_CLKCON_SCLK_CAM,
++ .set_rate = s3c6410_setrate_camera,
++ },
++};
++
++void __init s3c6410_init_clocks(int xtal)
++{
++ unsigned long clkdiv0;
++ unsigned long fclk, fclk_org;
++ unsigned long hclkx2;
++ unsigned long hclk;
++ unsigned long pclk;
++ unsigned long epll_clk;
++
++ struct clk *clkp;
++ int ret;
++ int ptr;
++
++ clk_xtal.rate = xtal;
++
++ /* now we've got our machine bits initialised, work out what
++ * clocks we've got */
++
++ /* Changed below lines to support s3c6400 - JaeCheol Lee */
++ fclk = s3c6400_get_pll(__raw_readl(S3C_APLL_CON), xtal);
++
++ clkdiv0 = __raw_readl(S3C_CLK_DIV0);
++
++ fclk /= ((clkdiv0 & S3C_CLKDIVN_APLL_MASK)+1);
++ fclk_org = fclk;
++
++ if(!(__raw_readl(S3C_OTHERS) & 0x40)) {
++ /* Synchronous mode */
++ fclk = s3c6400_get_pll(__raw_readl(S3C_MPLL_CON), xtal);
++ }
++
++ hclkx2 = fclk / (((clkdiv0 & S3C_CLKDIVN_HCLKX2_MASK)>>9)+1);
++
++ hclk = hclkx2 / (((clkdiv0 & S3C_CLKDIVN_HCLK_MASK)>>8)+1);
++
++ /* It should get the divisor from register and then sets the pclk properly */
++ pclk = hclkx2 / (((clkdiv0 & S3C_CLKDIVN_PCLK_MASK)>>12)+1);
++
++ /* print brief summary of clocks, etc */
++ printk("S3C6410: core %ld.%03ld MHz, memory %ld.%03ld MHz, peripheral %ld.%03ld MHz\n",
++ print_mhz(fclk_org), print_mhz(hclk),
++ print_mhz(pclk));
++
++ /* Default EPLL frequency : 192Mhz */
++ writel(S3C_EPLL_EN|S3C_EPLLVAL(32,1,1), S3C_EPLL_CON0);
++ writel(0, S3C_EPLL_CON1);
++ mdelay(50);
++
++ epll_clk = s3c6400_get_epll(xtal);
++ clk_epll.rate = epll_clk;
++ printk("S3C6410: EPLL %ld.%03ld MHz\n", print_mhz(epll_clk));
++
++ /* initialize hclkx2 by jsgood */
++ clk_hx2.rate = hclkx2;
++
++ /* initialise the clocks here, to allow other things like the
++ * console to use them, and to add new ones after the initialisation
++ */
++
++ s3c64xx_setup_clocks(xtal, fclk_org, hclk, pclk);
++
++ for (ptr = 0; ptr < ARRAY_SIZE(clks); ptr++) {
++ clkp = clks[ptr];
++
++ ret = s3c64xx_register_clock(clkp);
++ if (ret < 0) {
++ printk(KERN_ERR "S3C6410: Failed to register clks : %s (%d)\n",
++ clkp->name, ret);
++ }
++ }
++
++ /* register clocks from clock array */
++ clkp = init_clocks;
++ for (ptr = 0; ptr < ARRAY_SIZE(init_clocks); ptr++, clkp++) {
++ ret = s3c64xx_register_clock(clkp);
++ if (ret < 0) {
++ printk(KERN_ERR "S3C6410: Failed to register init_clocks : %s (%d)\n",
++ clkp->name, ret);
++ }
++
++ /* set clock rate to use in drivers */
++ if (!clkp->rate) {
++ if (clkp->parent) {
++ clkp->rate = clkp->parent->rate;
++ }
++ }
++
++ }
++
++ /* We must be careful disabling the clocks we are not intending to
++ * be using at boot time, as subsytems such as the LCD which do
++ * their own DMA requests to the bus can cause the system to lockup
++ * if they where in the middle of requesting bus access.
++ *
++ * Disabling the LCD clock if the LCD is active is very dangerous,
++ * and therefore the bootloader should be careful to not enable
++ * the LCD clock if it is not needed.
++ */
++
++ /* install (and disable) the clocks we do not need immediately */
++
++ clkp = init_clocks_disable;
++ for (ptr = 0; ptr < ARRAY_SIZE(init_clocks_disable); ptr++, clkp++) {
++
++ ret = s3c64xx_register_clock(clkp);
++ if (ret < 0) {
++ printk(KERN_ERR "S3C6410: Failed to register init_clocks_disable: %s (%d)\n",
++ clkp->name, ret);
++ }
++
++ (clkp->enable)(clkp, 0);
++ }
++}
++
++
++
+diff --git a/arch/arm/mach-s3c6410/dma-sysfs.c b/arch/arm/mach-s3c6410/dma-sysfs.c
+new file mode 100644
+index 0000000..d320ec0
+--- /dev/null
++++ b/arch/arm/mach-s3c6410/dma-sysfs.c
+@@ -0,0 +1,276 @@
++/* linux/arch/arm/mach-bast/dma-sysfs.c
++ *
++ * (c) 2005 Simtec Electronics
++ * Ben Dooks <ben@simtec.co.uk>
++ *
++ * S3C2440 DMA core sysfs interface
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++*/
++
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/sched.h>
++#include <linux/spinlock.h>
++#include <linux/interrupt.h>
++#include <linux/sysdev.h>
++#include <linux/config.h>
++
++#include <asm/system.h>
++#include <asm/irq.h>
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/dma.h>
++
++#include <asm/mach/dma.h>
++#include <asm/arch/map.h>
++
++
++extern struct sysdev_class dma_sysclass;
++extern s3c24xx_dma_chan_t s3c24xx_chans[S3C24XX_DMA_CHANNELS];
++
++#define dma_rdreg(chan, reg) readl((chan)->regs + (reg))
++
++static const char *s3c24xx_dma_decode_state(s3c24xx_dma_state_t state)
++{
++ switch (state) {
++ case S3C24XX_DMA_IDLE:
++ return "Idle";
++ case S3C24XX_DMA_RUNNING:
++ return "Running";
++ case S3C24XX_DMA_PAUSED:
++ return "Paused";
++ default:
++ return "Invalid";
++ }
++
++ return NULL;
++}
++
++static const char *s3c24xx_dma_decode_loadstate(s3c24xx_dma_loadst_t state)
++{
++ switch (state) {
++ case S3C24XX_DMALOAD_NONE:
++ return "Nothing Loaded";
++ case S3C24XX_DMALOAD_1LOADED:
++ return "1 Loaded";
++ case S3C24XX_DMALOAD_1RUNNING:
++ return "1 Running";
++ case S3C24XX_DMALOAD_1LOADED_1RUNNING:
++ return "1 Loaded, 1 Running";
++ default:
++ return "Invalid Load State";
++ }
++
++ return NULL;
++}
++
++static const char *s3c24xx_dma_decode_source(s3c24xx_dmasrc_t source)
++{
++ switch (source) {
++ case S3C24XX_DMASRC_HW:
++ return "Hardware";
++ case S3C24XX_DMASRC_MEM:
++ return "Memory";
++ default:
++ return "Unknown Source";
++ }
++
++ return NULL;
++}
++
++
++struct outbuff {
++ char *buff;
++ int offset;
++ int size;
++};
++
++static inline void outbuf_init(struct outbuff *ob, char *buf, int size)
++{
++ ob->buff = buf;
++ ob->offset = 0;
++ ob->size = size;
++}
++
++static void outbuf_pf(struct outbuff *ob, const char *fmt, ...)
++{
++ va_list va;
++
++ va_start(va, fmt);
++
++ ob->offset += vsnprintf(ob->buff + ob->offset,
++ ob->size - ob->offset,
++ fmt, va);
++ va_end(va);
++}
++
++static void dma_sysfs_showregs(s3c24xx_dma_chan_t *chan, struct outbuff *buf)
++{
++ outbuf_pf(buf, "Hardware Registers:\n\n");
++
++ outbuf_pf(buf, " DISRC \t\t\t%08lx\n", readl(chan->regs + 0x00));
++ outbuf_pf(buf, " DISRCC\t\t\t%08lx\n", readl(chan->regs + 0x04));
++ outbuf_pf(buf, " DIDST \t\t\t%08lx\n", readl(chan->regs + 0x08));
++ outbuf_pf(buf, " DIDSTC\t\t\t%08lx\n", readl(chan->regs + 0x0C));
++ outbuf_pf(buf, " DCON \t\t\t%08lx\n", readl(chan->regs + 0x10));
++ outbuf_pf(buf, " DSTAT \t\t\t%08lx\n", readl(chan->regs + 0x14));
++ outbuf_pf(buf, " DCSRC \t\t\t%08lx\n", readl(chan->regs + 0x18));
++ outbuf_pf(buf, " DCDST \t\t\t%08lx\n", readl(chan->regs + 0x1c));
++ outbuf_pf(buf, " DMTRG \t\t\t%08lx\n", readl(chan->regs + 0x20));
++}
++
++static void dma_sysfs_showbuf(s3c24xx_dma_chan_t *chan,
++ struct outbuff *buf,
++ s3c24xx_dma_buf_t *ptr)
++{
++ if (ptr == NULL)
++ return;
++
++ outbuf_pf(buf, " buff %p: data=%08x, size=%08x, id=%08x\n",
++ ptr, ptr->data, ptr->size, ptr->id);
++}
++
++static void dma_sysfs_showbuffers(s3c24xx_dma_chan_t *chan, struct outbuff *buf)
++{
++ s3c24xx_dma_buf_t *ptr = chan->next;
++ unsigned long flags;
++
++ local_irq_save(flags);
++
++ outbuf_pf(buf, "Current Buffer:\n");
++ dma_sysfs_showbuf(chan, buf, chan->curr);
++
++ outbuf_pf(buf, "\nBuffer Queue: %p -> %p\n", chan->next, chan->end);
++
++ for (; ptr != NULL; ptr = ptr->next)
++ dma_sysfs_showbuf(chan, buf, ptr);
++
++ local_irq_restore(flags);
++}
++
++static void dma_sysfs_showstate(s3c24xx_dma_chan_t *chan, struct outbuff *buf)
++{
++ outbuf_pf(buf, "IRQ:\t\t\t\t%d\n", chan->irq);
++ outbuf_pf(buf, "Register Base:\t\t\t0x%08x\n", chan->regs);
++ outbuf_pf(buf, "Address Register:\t\t0x%08lx\n", chan->addr_reg);
++ outbuf_pf(buf, "Hardware Register:\t\t0x%08lx\n", chan->dev_addr);
++ outbuf_pf(buf, "Load Timeout:\t\t\t0x%08x\n", chan->load_timeout);
++ outbuf_pf(buf, "Data Source:\t\t\t%s\n",
++ s3c24xx_dma_decode_source(chan->source));
++
++ outbuf_pf(buf, "Channel State:\t\t\t%s (%d)\n",
++ s3c24xx_dma_decode_state(chan->state), chan->state);
++ outbuf_pf(buf, "Load State:\t\t\t%s (%d)\n",
++ s3c24xx_dma_decode_loadstate(chan->load_state),
++ chan->load_state);
++
++ if (chan->client != NULL) {
++ outbuf_pf(buf, "Claimed by:\t\t\t%s\n",
++ chan->client->name);
++ } else {
++ outbuf_pf(buf, "Claimed by:\t\t\tNo-one\n");
++ }
++}
++
++static inline s3c24xx_dma_chan_t *dev_to_chan(struct sys_device *dev)
++{
++ return &s3c24xx_chans[dev->id];
++}
++
++static ssize_t dma_sysfs_show_regs(struct sys_device *dev, char *buf)
++{
++ s3c24xx_dma_chan_t *cp = dev_to_chan(dev);
++ struct outbuff buff;
++
++ outbuf_init(&buff, buf, PAGE_SIZE);
++ dma_sysfs_showregs(cp, &buff);
++
++ return buff.offset;
++}
++
++static ssize_t dma_sysfs_show_state(struct sys_device *dev, char *buf)
++{
++ s3c24xx_dma_chan_t *cp = dev_to_chan(dev);
++ struct outbuff buff;
++
++ outbuf_init(&buff, buf, PAGE_SIZE);
++ dma_sysfs_showstate(cp, &buff);
++
++ return buff.offset;
++}
++
++static ssize_t dma_sysfs_show_buffers(struct sys_device *dev, char *buf)
++{
++ s3c24xx_dma_chan_t *cp = dev_to_chan(dev);
++ struct outbuff buff;
++
++ outbuf_init(&buff, buf, PAGE_SIZE);
++ dma_sysfs_showbuffers(cp, &buff);
++
++ return buff.offset;
++}
++
++static ssize_t dma_sysfs_show_all(struct sys_device *dev, char *buf)
++{
++ s3c24xx_dma_chan_t *cp = dev_to_chan(dev);
++ struct outbuff buff;
++
++ outbuf_init(&buff, buf, PAGE_SIZE);
++
++ dma_sysfs_showstate(cp, &buff);
++ dma_sysfs_showregs(cp, &buff);
++ dma_sysfs_showbuffers(cp, &buff);
++
++ return buff.offset;
++}
++
++static SYSDEV_ATTR(all, S_IRUGO, dma_sysfs_show_all, NULL);
++static SYSDEV_ATTR(regs, S_IRUGO, dma_sysfs_show_regs, NULL);
++static SYSDEV_ATTR(state, S_IRUGO, dma_sysfs_show_state, NULL);
++static SYSDEV_ATTR(buffers, S_IRUGO, dma_sysfs_show_buffers, NULL);
++
++static struct sysdev_attribute *attrs[] = {
++ &attr_all,
++ &attr_regs,
++ &attr_state,
++ &attr_buffers,
++};
++
++static int dma_sysfs_attach(struct sys_device *dev)
++{
++ int i;
++
++ for (i = 0; i < ARRAY_SIZE(attrs); i++)
++ sysdev_create_file(dev, attrs[i]);
++
++ return 0;
++}
++
++static int dma_sysfs_remove(struct sys_device *dev)
++{
++ int i;
++
++ for (i = 0; i < ARRAY_SIZE(attrs); i++)
++ sysdev_create_file(dev, attrs[i]);
++
++ return 0;
++}
++
++static struct sysdev_driver dma_sysfs_driver = {
++ .add = dma_sysfs_attach,
++ .remove = dma_sysfs_remove,
++};
++
++static int __init s3c24xx_init_dma_sysfs(void)
++{
++ printk("S3C24XX DMA sysfs support, (c) 2005 Simtec Electronics\n");
++
++ return sysdev_driver_register(&dma_sysclass, &dma_sysfs_driver);
++}
++
++__initcall(s3c24xx_init_dma_sysfs);
++
+diff --git a/arch/arm/mach-s3c6410/dma.c b/arch/arm/mach-s3c6410/dma.c
+new file mode 100644
+index 0000000..461c68d
+--- /dev/null
++++ b/arch/arm/mach-s3c6410/dma.c
+@@ -0,0 +1,329 @@
++/* linux/arch/arm/mach-s3c6410/dma.c
++ *
++ * Copyright (c) 2003-2005,2006 Samsung Electronics
++ *
++ * S3C6410 DMA selection
++ *
++ * http://www.samsung.com/
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++*/
++
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/sysdev.h>
++#include <linux/serial_core.h>
++
++#include <asm/dma.h>
++#include <asm/arch/dma.h>
++#include <asm/io.h>
++
++#include <asm/plat-s3c24xx/dma.h>
++#include <asm/plat-s3c24xx/cpu.h>
++
++
++/* DMAC-0 */
++#define MAP0(x) { \
++ [0] = (x) | DMA_CH_VALID, \
++ [1] = (x) | DMA_CH_VALID, \
++ [2] = (x) | DMA_CH_VALID, \
++ [3] = (x) | DMA_CH_VALID, \
++ [4] = (x) | DMA_CH_VALID, \
++ [5] = (x) | DMA_CH_VALID, \
++ [6] = (x) | DMA_CH_VALID, \
++ [7] = (x) | DMA_CH_VALID, \
++ [8] = (x), \
++ [9] = (x), \
++ [10] = (x), \
++ [11] = (x), \
++ [12] = (x), \
++ [13] = (x), \
++ [14] = (x), \
++ [15] = (x), \
++ [16] = (x), \
++ [17] = (x), \
++ [18] = (x), \
++ [19] = (x), \
++ [20] = (x), \
++ [21] = (x), \
++ [22] = (x), \
++ [23] = (x), \
++ [24] = (x), \
++ [25] = (x), \
++ [26] = (x), \
++ [27] = (x), \
++ [28] = (x), \
++ [29] = (x), \
++ [30] = (x), \
++ [31] = (x), \
++ }
++
++/* DMAC-1 */
++#define MAP1(x) { \
++ [0] = (x), \
++ [1] = (x), \
++ [2] = (x), \
++ [3] = (x), \
++ [4] = (x), \
++ [5] = (x), \
++ [6] = (x), \
++ [7] = (x), \
++ [8] = (x) | DMA_CH_VALID, \
++ [9] = (x) | DMA_CH_VALID, \
++ [10] = (x) | DMA_CH_VALID, \
++ [11] = (x) | DMA_CH_VALID, \
++ [12] = (x) | DMA_CH_VALID, \
++ [13] = (x) | DMA_CH_VALID, \
++ [14] = (x) | DMA_CH_VALID, \
++ [15] = (x) | DMA_CH_VALID, \
++ [16] = (x), \
++ [17] = (x), \
++ [18] = (x), \
++ [19] = (x), \
++ [20] = (x), \
++ [21] = (x), \
++ [22] = (x), \
++ [23] = (x), \
++ [24] = (x), \
++ [25] = (x), \
++ [26] = (x), \
++ [27] = (x), \
++ [28] = (x), \
++ [29] = (x), \
++ [30] = (x), \
++ [31] = (x), \
++ }
++
++/* SDMAC-0 */
++#define MAP2(x) { \
++ [0] = (x), \
++ [1] = (x), \
++ [2] = (x), \
++ [3] = (x), \
++ [4] = (x), \
++ [5] = (x), \
++ [6] = (x), \
++ [7] = (x), \
++ [8] = (x), \
++ [9] = (x), \
++ [10] = (x), \
++ [11] = (x), \
++ [12] = (x), \
++ [13] = (x), \
++ [14] = (x), \
++ [15] = (x), \
++ [16] = (x) | DMA_CH_VALID, \
++ [17] = (x) | DMA_CH_VALID, \
++ [18] = (x) | DMA_CH_VALID, \
++ [19] = (x) | DMA_CH_VALID, \
++ [20] = (x) | DMA_CH_VALID, \
++ [21] = (x) | DMA_CH_VALID, \
++ [22] = (x) | DMA_CH_VALID, \
++ [23] = (x) | DMA_CH_VALID, \
++ [24] = (x), \
++ [25] = (x), \
++ [26] = (x), \
++ [27] = (x), \
++ [28] = (x), \
++ [29] = (x), \
++ [30] = (x), \
++ [31] = (x), \
++ }
++
++/* SDMAC-1 */
++#define MAP3(x) { \
++ [0] = (x), \
++ [1] = (x), \
++ [2] = (x), \
++ [3] = (x), \
++ [4] = (x), \
++ [5] = (x), \
++ [6] = (x), \
++ [7] = (x), \
++ [8] = (x), \
++ [9] = (x), \
++ [10] = (x), \
++ [11] = (x), \
++ [12] = (x), \
++ [13] = (x), \
++ [14] = (x), \
++ [15] = (x), \
++ [16] = (x), \
++ [17] = (x), \
++ [18] = (x), \
++ [19] = (x), \
++ [20] = (x), \
++ [21] = (x), \
++ [22] = (x), \
++ [23] = (x), \
++ [24] = (x) | DMA_CH_VALID, \
++ [25] = (x) | DMA_CH_VALID, \
++ [26] = (x) | DMA_CH_VALID, \
++ [27] = (x) | DMA_CH_VALID, \
++ [28] = (x) | DMA_CH_VALID, \
++ [29] = (x) | DMA_CH_VALID, \
++ [30] = (x) | DMA_CH_VALID, \
++ [31] = (x) | DMA_CH_VALID, \
++ }
++
++/* SDMAC-0 */
++#define MAP2_ONENAND(x) { \
++ [0] = (x), \
++ [1] = (x), \
++ [2] = (x), \
++ [3] = (x) , \
++ [4] = (x), \
++ [5] = (x), \
++ [6] = (x), \
++ [7] = (x), \
++ [8] = (x), \
++ [9] = (x), \
++ [10] = (x), \
++ [11] = (x), \
++ [12] = (x), \
++ [13] = (x), \
++ [14] = (x), \
++ [15] = (x), \
++ [16] = (x), \
++ [17] = (x), \
++ [18] = (x) , \
++ [19] = (x) | DMA_CH_VALID, \
++ [20] = (x), \
++ [21] = (x), \
++ [22] = (x), \
++ [23] = (x), \
++ [24] = (x), \
++ [25] = (x), \
++ [26] = (x), \
++ [27] = (x), \
++ [28] = (x), \
++ [29] = (x), \
++ [30] = (x), \
++ [31] = (x), \
++ }
++
++static struct s3c24xx_dma_map __initdata s3c6410_dma_mappings[] = {
++
++ [DMACH_I2S_IN] = {
++ .name = "i2s0-in",
++ .channels = MAP0(S3C_DMA0_I2S0_RX),
++ .hw_addr.from = S3C_DMA0_I2S0_RX,
++ .sdma_sel = 1 << S3C_DMA0_I2S0_RX,
++ },
++ [DMACH_I2S_OUT] = {
++ .name = "i2s0-out",
++ .channels = MAP0(S3C_DMA0_I2S0_TX),
++ .hw_addr.to = S3C_DMA0_I2S0_TX,
++ .sdma_sel = 1 << S3C_DMA0_I2S0_TX,
++ },
++ [DMACH_I2S1_IN] = {
++ .name = "i2s1-in",
++ .channels = MAP1(S3C_DMA1_I2S1_RX),
++ .hw_addr.from = S3C_DMA1_I2S1_RX,
++ .sdma_sel = 1 << (S3C_DMA1_I2S1_RX+S3C_DMA1),
++ },
++ [DMACH_I2S1_OUT] = {
++ .name = "i2s1-out",
++ .channels = MAP1(S3C_DMA1_I2S1_TX),
++ .hw_addr.to = S3C_DMA1_I2S1_TX,
++ .sdma_sel = 1 << (S3C_DMA1_I2S1_TX+S3C_DMA1),
++ },
++ [DMACH_SPI0_IN] = {
++ .name = "spi0-in",
++ .channels = MAP0(S3C_DMA0_SPI0_RX),
++ .hw_addr.from = S3C_DMA0_SPI0_RX,
++ .sdma_sel = 1 << S3C_DMA0_SPI0_RX,
++ },
++ [DMACH_SPI0_OUT] = {
++ .name = "spi0-out",
++ .channels = MAP0(S3C_DMA0_SPI0_TX),
++ .hw_addr.to = S3C_DMA0_SPI0_TX,
++ .sdma_sel = 1 << S3C_DMA0_SPI0_TX,
++ },
++ [DMACH_SPI1_IN] = {
++ .name = "spi1-in",
++ .channels = MAP1(S3C_DMA1_SPI1_RX),
++ .hw_addr.from = S3C_DMA1_SPI1_RX,
++ .sdma_sel = 1 << (S3C_DMA1_SPI1_RX+S3C_DMA1),
++ },
++ [DMACH_SPI1_OUT] = {
++ .name = "spi1-out",
++ .channels = MAP1(S3C_DMA1_SPI1_TX),
++ .hw_addr.to = S3C_DMA1_SPI1_TX,
++ .sdma_sel = 1 << (S3C_DMA1_SPI1_TX+S3C_DMA1),
++ },
++ [DMACH_AC97_PCM_OUT] = {
++ .name = "ac97-pcm-out",
++ .channels = MAP1(S3C_DMA1_AC97_PCMOUT),
++ .hw_addr.to = S3C_DMA1_AC97_PCMOUT,
++ .sdma_sel = 1 << (S3C_DMA1_AC97_PCMOUT+S3C_DMA1),
++ },
++ [DMACH_AC97_PCM_IN] = {
++ .name = "ac97-pcm-in",
++ .channels = MAP1(S3C_DMA1_AC97_PCMIN),
++ .hw_addr.from = S3C_DMA1_AC97_PCMIN,
++ .sdma_sel = 1 << (S3C_DMA1_AC97_PCMIN+S3C_DMA1),
++ },
++ [DMACH_AC97_MIC_IN] = {
++ .name = "ac97-mic-in",
++ .channels = MAP1(S3C_DMA1_AC97_MICIN),
++ .hw_addr.from = S3C_DMA1_AC97_MICIN,
++ .sdma_sel = 1 << (S3C_DMA1_AC97_MICIN+S3C_DMA1),
++ },
++ [DMACH_ONENAND_IN] = {
++ .name = "onenand-in",
++ .channels = MAP2_ONENAND(S3C_DMA0_ONENAND_RX),
++ .hw_addr.from = S3C_DMA0_ONENAND_RX,
++ },
++ [DMACH_3D_M2M] = {
++ .name = "3D-M2M",
++ .channels = MAP1(S3C_DMA1_EXT),
++ .hw_addr.from = S3C_DMA1_EXT,
++ },
++ [DMACH_I2S_V40_IN] = {
++ .name = "i2s-v40-in",
++ .channels = MAP0(S3C_DMA0_HSI_RX),
++ .hw_addr.from = S3C_DMA0_HSI_RX,
++ .sdma_sel = 1 << S3C_DMA0_HSI_RX,
++ },
++ [DMACH_I2S_V40_OUT] = {
++ .name = "i2s-v40-out",
++ .channels = MAP0(S3C_DMA0_HSI_TX),
++ .hw_addr.to = S3C_DMA0_HSI_TX,
++ .sdma_sel = 1 << S3C_DMA0_HSI_TX,
++ },
++};
++
++static void s3c6410_dma_select(struct s3c2410_dma_chan *chan,
++ struct s3c24xx_dma_map *map)
++{
++ chan->map = map;
++}
++
++static struct s3c24xx_dma_selection __initdata s3c6410_dma_sel = {
++ .select = s3c6410_dma_select,
++ .dcon_mask = 0,
++ .map = s3c6410_dma_mappings,
++ .map_size = ARRAY_SIZE(s3c6410_dma_mappings),
++};
++
++static int __init s3c6410_dma_add(struct sys_device *sysdev)
++{
++ s3c24xx_dma_init(S3C2410_DMA_CHANNELS, IRQ_DMA0, 0x20);
++ return s3c24xx_dma_init_map(&s3c6410_dma_sel);
++}
++
++static struct sysdev_driver s3c6410_dma_driver = {
++ .add = s3c6410_dma_add,
++};
++
++static int __init s3c6410_dma_init(void)
++{
++ return sysdev_driver_register(&s3c6410_sysclass, &s3c6410_dma_driver);
++}
++
++arch_initcall(s3c6410_dma_init);
++
++
+diff --git a/arch/arm/mach-s3c6410/irq.c b/arch/arm/mach-s3c6410/irq.c
+new file mode 100644
+index 0000000..9266bc5
+--- /dev/null
++++ b/arch/arm/mach-s3c6410/irq.c
+@@ -0,0 +1,48 @@
++/* linux/arch/arm/mach-s3c6410/irq.c
++ *
++ * Copyright (c) 2006 Simtec Electronics
++ * Ben Dooks <ben@simtec.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++*/
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/interrupt.h>
++#include <linux/ioport.h>
++#include <linux/ptrace.h>
++#include <linux/sysdev.h>
++
++#include <asm/plat-s3c24xx/cpu.h>
++#include <asm/plat-s3c24xx/pm.h>
++
++static int s3c6410_irq_add(struct sys_device *sysdev)
++{
++ return 0;
++}
++
++static struct sysdev_driver s3c6410_irq_driver = {
++ .add = s3c6410_irq_add,
++ .suspend = s3c24xx_irq_suspend,
++ .resume = s3c24xx_irq_resume,
++};
++
++static int s3c6410_irq_init(void)
++{
++ return sysdev_driver_register(&s3c6410_sysclass, &s3c6410_irq_driver);
++}
++
++arch_initcall(s3c6410_irq_init);
+diff --git a/arch/arm/mach-s3c6410/leds-s3c6410.c b/arch/arm/mach-s3c6410/leds-s3c6410.c
+new file mode 100644
+index 0000000..bc1347f
+--- /dev/null
++++ b/arch/arm/mach-s3c6410/leds-s3c6410.c
+@@ -0,0 +1,117 @@
++/*
++ * linux/arch/arm/mach-s3c6410/leds-s3c6410.c
++ *
++ * Copyright 2008 by Samsung Electronics Inc
++ *
++ * There are 16 LEDs on the debug board (all green); four may be used
++ * for logical 'green', 'amber', 'red', and 'blue' (after "claiming").
++ *
++ * The "surfer" expansion board and H2 sample board also have two-color
++ * green+red LEDs (in parallel), used here for timer and idle indicators.
++ */
++#include <linux/init.h>
++#include <linux/kernel_stat.h>
++#include <linux/sched.h>
++
++#include <asm/io.h>
++#include <asm/hardware.h>
++#include <asm/leds.h>
++#include <asm/system.h>
++#include <asm/mach-types.h>
++
++#include <asm/arch/regs-gpio.h>
++
++#include "leds.h"
++
++#define LED0 S3C_GPN12
++#define LED1 S3C_GPN13
++#define LED2 S3C_GPN14
++#define LED3 S3C_GPN15
++
++#define LED_STATE_ENABLED 1<<0
++#define LED_STATE_CLAIMED 1<<1
++#define LED_TIMER_ON 1<<2
++#define LED_IDLE 1<<3
++
++
++void smdk6410_leds_event(led_event_t evt)
++{
++ unsigned long flags;
++
++ static u16 led_state, hw_led_state;
++
++ local_irq_save(flags);
++
++ if (!(led_state & LED_STATE_ENABLED) && evt != led_start)
++ goto done;
++
++ switch (evt) {
++ case led_start:
++ led_state |= LED_STATE_ENABLED;
++ break;
++
++ case led_stop:
++ case led_halted:
++ /* all leds off during suspend or shutdown */
++ led_state &= ~LED_STATE_ENABLED;
++ break;
++
++ case led_claim:
++ led_state |= LED_STATE_CLAIMED;
++ hw_led_state = 0;
++ break;
++
++ case led_release:
++ led_state &= ~LED_STATE_CLAIMED;
++ break;
++
++#ifdef CONFIG_LEDS_TIMER
++ case led_timer:
++ led_state ^= LED_TIMER_ON;
++
++ if (led_state & LED_TIMER_ON)
++ gpio_set_value(LED0, 1);
++ else {
++ gpio_set_value(LED0, 0);
++ }
++
++ break;
++#endif
++
++#ifdef CONFIG_LEDS_CPU
++ case led_idle_start:
++ gpio_set_value(LED1, 1);
++ break;
++
++ case led_idle_end:
++ gpio_set_value(LED1, 0);
++ break;
++#endif
++
++ case led_green_on:
++ break;
++ case led_green_off:
++ break;
++
++ case led_amber_on:
++ break;
++ case led_amber_off:
++ break;
++
++ case led_red_on:
++ break;
++ case led_red_off:
++ break;
++
++ case led_blue_on:
++ break;
++ case led_blue_off:
++ break;
++
++ default:
++ break;
++ }
++
++done:
++ local_irq_restore(flags);
++}
+diff --git a/arch/arm/mach-s3c6410/leds.c b/arch/arm/mach-s3c6410/leds.c
+new file mode 100644
+index 0000000..8113540
+--- /dev/null
++++ b/arch/arm/mach-s3c6410/leds.c
+@@ -0,0 +1,89 @@
++/*
++ * linux/arch/arm/mach-s3c6410/leds.c
++ *
++ * S3C6410 LEDs dispatcher
++ */
++#include <linux/errno.h>
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/slab.h>
++#include <linux/input.h>
++#include <linux/init.h>
++#include <linux/serio.h>
++#include <linux/delay.h>
++#include <linux/platform_device.h>
++#include <linux/miscdevice.h>
++#include <linux/clk.h>
++#include <linux/mutex.h>
++
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/hardware.h>
++#include <asm/leds.h>
++#include <asm/mach-types.h>
++
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/irqs.h>
++#include <asm/mach/irq.h>
++#include "leds.h"
++
++static irqreturn_t eint9_switch(int irq, void *dev_id, struct pt_regs *regs)
++{
++
++ printk("EINT9 interrupt occures!!!\n");
++ return IRQ_HANDLED;
++}
++
++
++static int __init
++s3c6410_leds_init(void)
++{
++ if (machine_is_smdk6410())
++ leds_event = smdk6410_leds_event;
++ else
++ return -1;
++
++ if (machine_is_smdk6410())
++ {
++ /*GPN12~15 used for LED*/
++ /*Set GPN12~15 to output mode */
++ gpio_direction_output(S3C_GPN12);
++ if(gpio_get_pin(S3C_GPN12) == 0)
++ {
++ printk(KERN_WARNING "LED: can't set GPN12 output mode\n");
++ }
++
++ gpio_direction_output(S3C_GPN13);
++ if(gpio_get_pin(S3C_GPN13) == 0)
++ {
++ printk(KERN_WARNING "LED: can't set GPN13 output mode\n");
++ }
++
++ gpio_direction_output(S3C_GPN14);
++ if(gpio_get_pin(S3C_GPN14) == 0)
++ {
++ printk(KERN_WARNING "LED: can't set GPN14 output mode\n");
++ }
++
++ gpio_direction_output(S3C_GPN15);
++ if(gpio_get_pin(S3C_GPN15) == 0)
++ {
++ printk(KERN_WARNING "LED: can't set GPN15 output mode\n");
++ }
++
++ }
++
++ /* Get irqs */
++ set_irq_type(IRQ_EINT9, IRQT_FALLING);
++ gpio_pullup(S3C_GPN9, 0x0);
++ if (request_irq(IRQ_EINT9, eint9_switch, SA_TRIGGER_FALLING, "EINT9", NULL)) {
++ printk(KERN_ERR "leds.c: Could not allocate EINT9 !\n");
++ return -EIO;
++ }
++
++
++ leds_event(led_start);
++ return 0;
++}
++
++__initcall(s3c6410_leds_init);
+diff --git a/arch/arm/mach-s3c6410/leds.h b/arch/arm/mach-s3c6410/leds.h
+new file mode 100644
+index 0000000..e868666
+--- /dev/null
++++ b/arch/arm/mach-s3c6410/leds.h
+@@ -0,0 +1 @@
++extern void smdk6410_leds_event(led_event_t evt);
+diff --git a/arch/arm/mach-s3c6410/mach-smdk6410.c b/arch/arm/mach-s3c6410/mach-smdk6410.c
+new file mode 100644
+index 0000000..ec86f3e
+--- /dev/null
++++ b/arch/arm/mach-s3c6410/mach-smdk6410.c
+@@ -0,0 +1,868 @@
++/***********************************************************************
++ *
++ * linux/arch/arm/mach-s3c6410/smdk6410.c
++ *
++ * $Id: mach-smdk6410.c,v 1.56 2008/09/10 01:40:15 jsgood Exp $
++ *
++ * Copyright (C) 2005, Samsung Electronics <@samsung.com>
++ * All rights reserved
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ * MA 02111-1307 USA
++ *
++ *
++ ***********************************************************************/
++
++#include <linux/kernel.h>
++#include <linux/types.h>
++#include <linux/interrupt.h>
++#include <linux/list.h>
++#include <linux/timer.h>
++#include <linux/delay.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/partitions.h>
++#include <linux/i2c.h>
++
++#include <asm/setup.h>
++#include <asm/mach/arch.h>
++#include <asm/mach/map.h>
++#include <asm/mach/irq.h>
++#include <asm/mach/flash.h>
++
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/mach-types.h>
++
++#include <asm/plat-s3c/iic.h>
++#include <asm/plat-s3c/regs-iic.h>
++
++#include <asm/arch/gpio.h>
++#include <asm/plat-s3c/regs-serial.h>
++#include <asm/arch/regs-gpio.h>
++
++#include <asm/arch/regs-mem.h>
++#include <asm/arch/regs-s3c-clock.h>
++#include <asm/plat-s3c/nand.h>
++#include <asm/plat-s3c/adc.h>
++
++#include <asm/plat-s3c64xx/s3c6410.h>
++#include <asm/plat-s3c24xx/devs.h>
++#include <asm/plat-s3c24xx/cpu.h>
++#include <asm/arch/hsmmc.h>
++
++#include <asm/plat-s3c24xx/common-smdk.h>
++#include <asm/arch-s3c2410/reserved_mem.h>
++
++#if defined(CONFIG_RTC_DRV_S3C) || defined(CONFIG_RTC_DRV_S3C_MODULE)
++#include <asm/plat-s3c/regs-rtc.h>
++#endif
++
++#if defined(CONFIG_USB_GADGET_S3C_OTGD_HS) || \
++ defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
++#include <asm/arch-s3c2410/regs-usb-otg-hs.h>
++#include <linux/usb/ch9.h>
++#endif
++
++#include <asm/plat-s3c/regs-adc.h>
++#include <asm/plat-s3c/ts.h>
++
++extern struct sys_timer s3c_timer;
++
++static struct map_desc smdk6410_iodesc[] __initdata = {
++ IODESC_ENT(CS8900),
++};
++
++#define DEF_UCON S3C_UCON_DEFAULT
++#define DEF_ULCON S3C_LCON_CS8 | S3C_LCON_PNONE
++#define DEF_UFCON S3C_UFCON_RXTRIG8 | S3C_UFCON_FIFOMODE
++
++
++static struct s3c24xx_uart_clksrc smdk6410_serial_clocks[] = {
++ [0] = {
++ .name = "mpll_clk_uart",
++ .divisor = 1,
++ .min_baud = 0,
++ .max_baud = 0,
++ },
++#if defined (CONFIG_SERIAL_S3C64XX_HS_UART)
++ [2] = {
++ .name = "epll_clk_uart_192m",
++ .divisor = 1,
++ .min_baud = 0,
++ .max_baud = 4000000,
++ }
++#endif
++};
++
++
++
++static struct s3c2410_uartcfg smdk6410_uartcfgs[] = {
++ [0] = {
++ .hwport = 0,
++ .flags = 0,
++ .ucon = DEF_UCON,
++ .ulcon = DEF_ULCON,
++ .ufcon = DEF_UFCON,
++ .clocks = smdk6410_serial_clocks,
++ .clocks_size = ARRAY_SIZE(smdk6410_serial_clocks),
++ },
++ [1] = {
++ .hwport = 1,
++ .flags = 0,
++ .ucon = DEF_UCON,
++ .ulcon = DEF_ULCON,
++ .ufcon = DEF_UFCON,
++ .clocks = smdk6410_serial_clocks,
++ .clocks_size = ARRAY_SIZE(smdk6410_serial_clocks),
++ },
++ [2] = {
++ .hwport = 2,
++ .flags = 0,
++ .ucon = DEF_UCON,
++ .ulcon = DEF_ULCON,
++ .ufcon = DEF_UFCON,
++ .clocks = smdk6410_serial_clocks,
++ .clocks_size = ARRAY_SIZE(smdk6410_serial_clocks),
++ },
++ [3] = {
++ .hwport = 3,
++ .flags = 0,
++ .ucon = DEF_UCON,
++ .ulcon = DEF_ULCON,
++ .ufcon = DEF_UFCON,
++ .clocks = smdk6410_serial_clocks,
++ .clocks_size = ARRAY_SIZE(smdk6410_serial_clocks),
++ }
++
++};
++
++static struct resource s3c64xx_i2c0_resource[] = {
++ [0] = {
++ .start = S3C6400_PA_IIC0,
++ .end = S3C6400_PA_IIC0 + S3C24XX_SZ_IIC - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_IIC0,
++ .end = IRQ_IIC0,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++static struct platform_device s3c64xx_device_i2c0 = {
++ .name = "s3c64xx-i2c",
++ .id = 0, /* This is so the driver gets forced to use bus 0. */
++ .num_resources = ARRAY_SIZE(s3c64xx_i2c0_resource),
++ .resource = s3c64xx_i2c0_resource,
++};
++
++static struct resource s3c64xx_i2c1_resource[] = {
++ [0] = {
++ .start = S3C6400_PA_IIC1,
++ .end = S3C6400_PA_IIC1 + S3C24XX_SZ_IIC - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_IIC1,
++ .end = IRQ_IIC1,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++static struct platform_device s3c64xx_device_i2c1 = {
++ .name = "s3c64xx-i2c",
++ .id = 1, /* This is so the driver gets forced to use bus 0. */
++ .num_resources = ARRAY_SIZE(s3c64xx_i2c1_resource),
++ .resource = s3c64xx_i2c1_resource,
++};
++
++static struct s3c2410_platform_i2c default_i2c_data0 __initdata = {
++ .flags = 0,
++ .slave_addr = 0x10,
++ .bus_freq = 100*1000,
++ .max_freq = 400*1000,
++ .sda_delay = S3C64XX_IICLC_SDA_DELAY5 | S3C64XX_IICLC_FILTER_ON,
++};
++
++void s3c_i2c0_cfg_gpio(struct platform_device *dev)
++{
++ s3c_gpio_cfgpin(S3C_GPB5, S3C_GPB5_I2C_SCL0);
++ s3c_gpio_cfgpin(S3C_GPB6, S3C_GPB6_I2C_SDA0);
++ s3c_gpio_pullup(S3C_GPB5, 2);
++ s3c_gpio_pullup(S3C_GPB6, 2);
++}
++
++void __init s3c_i2c0_set_platdata(struct s3c2410_platform_i2c *pd)
++{
++ struct s3c2410_platform_i2c *npd;
++
++ if (!pd)
++ pd = &default_i2c_data0;
++
++ npd = kmemdup(pd, sizeof(struct s3c2410_platform_i2c), GFP_KERNEL);
++ if (!npd)
++ printk(KERN_ERR "%s: no memory for platform data\n", __func__);
++ else if (!npd->cfg_gpio)
++ npd->cfg_gpio = s3c_i2c0_cfg_gpio;
++
++ s3c64xx_device_i2c0.dev.platform_data = npd;
++}
++
++static struct s3c2410_platform_i2c default_i2c_data1 __initdata = {
++ .flags = 0,
++ .bus_num = 1,
++ .slave_addr = 0x10,
++ .bus_freq = 100*1000,
++ .max_freq = 400*1000,
++ .sda_delay = S3C64XX_IICLC_SDA_DELAY5 | S3C64XX_IICLC_FILTER_ON,
++};
++
++void s3c_i2c1_cfg_gpio(struct platform_device *dev)
++{
++ s3c_gpio_cfgpin(S3C_GPB2, S3C_GPB2_I2C_SCL1);
++ s3c_gpio_cfgpin(S3C_GPB3, S3C_GPB3_I2C_SDA1);
++ s3c_gpio_pullup(S3C_GPB2, 2);
++ s3c_gpio_pullup(S3C_GPB3, 2);
++}
++
++void __init s3c_i2c1_set_platdata(struct s3c2410_platform_i2c *pd)
++{
++ struct s3c2410_platform_i2c *npd;
++
++ if (!pd)
++ pd = &default_i2c_data1;
++
++ npd = kmemdup(pd, sizeof(struct s3c2410_platform_i2c), GFP_KERNEL);
++ if (!npd)
++ printk(KERN_ERR "%s: no memory for platform data\n", __func__);
++ else if (!npd->cfg_gpio)
++ npd->cfg_gpio = s3c_i2c1_cfg_gpio;
++
++ s3c64xx_device_i2c1.dev.platform_data = npd;
++}
++
++static struct i2c_board_info i2c_devs0[] __initdata = {
++ { I2C_BOARD_INFO("24c08", 0x50), },
++};
++
++static struct i2c_board_info i2c_devs1[] __initdata = {
++ { I2C_BOARD_INFO("24c128", 0x57), },
++};
++
++/* Add devices as drivers are integrated */
++static struct platform_device *smdk6410_devices[] __initdata = {
++ &s3c_device_rtc,
++ &s3c_device_ac97,
++ &s3c_device_iis,
++ &s3c_device_ts,
++ &s3c_device_adc,
++ &s3c64xx_device_i2c0,
++ &s3c64xx_device_i2c1,
++ &s3c_device_usb,
++ &s3c_device_usbgadget,
++ &s3c_device_usb_otghcd,
++ &s3c_device_tvenc,
++ &s3c_device_tvscaler,
++ &s3c_device_hsmmc0,
++ &s3c_device_hsmmc1,
++ &s3c_device_hsmmc2,
++ &s3c_device_wdt,
++ &s3c_device_jpeg,
++ &s3c_device_vpp,
++ &s3c_device_ide,
++ &s3c_device_spi0,
++ &s3c_device_spi1,
++ &s3c_device_g2d,
++ &s3c_device_keypad,
++ &s3c_device_smc911x,
++ &s3c_device_camif,
++ &s3c_device_mfc,
++ &s3c_device_g3d,
++ &s3c_device_rotator,
++};
++
++
++static void __init smdk6410_map_io(void)
++{
++ s3c24xx_init_io(smdk6410_iodesc, ARRAY_SIZE(smdk6410_iodesc));
++ s3c24xx_init_clocks(0);
++ s3c24xx_init_uarts(smdk6410_uartcfgs, ARRAY_SIZE(smdk6410_uartcfgs));
++}
++
++void smdk6410_smc911x_set(void)
++{
++ unsigned int tmp;
++
++ tmp = __raw_readl(S3C_SROM_BW);
++ tmp &=~(0xF<<4);
++ tmp |= (1<<7) | (1<<6) | (1<<4);
++ __raw_writel(tmp, S3C_SROM_BW);
++
++ __raw_writel((0x0<<28)|(0x4<<24)|(0xd<<16)|(0x1<<12)|(0x4<<8)|(0x6<<4)|(0x0<<0), S3C_SROM_BC1);
++}
++
++static void __init smdk6410_fixup (struct machine_desc *desc, struct tag *tags,
++ char **cmdline, struct meminfo *mi)
++{
++ /*
++ * Bank start addresses are not present in the information
++ * passed in from the boot loader. We could potentially
++ * detect them, but instead we hard-code them.
++ */
++ mi->bank[0].start = PHYS_OFFSET;
++
++#if defined(CONFIG_RESERVED_MEM_JPEG)
++ mi->bank[0].size = 120*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_JPEG_POST)
++ mi->bank[0].size = 112*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_MFC)
++ mi->bank[0].size = 122*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_MFC_POST)
++ mi->bank[0].size = 114*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_JPEG_MFC_POST)
++ mi->bank[0].size = 106*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_JPEG_CAMERA)
++ mi->bank[0].size = 105*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_JPEG_POST_CAMERA)
++ mi->bank[0].size = 97*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_MFC_CAMERA)
++ mi->bank[0].size = 107*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_MFC_POST_CAMERA)
++ mi->bank[0].size = 99*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_JPEG_MFC_POST_CAMERA)
++ mi->bank[0].size = 91*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_CMM_MFC_POST)
++ mi->bank[0].size = 106*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_CMM_JPEG_MFC_POST_CAMERA)
++ mi->bank[0].size = 83*1024*1024;
++#elif defined(CONFIG_RESERVED_MEM_TV_MFC_POST_CAMERA)
++ mi->bank[0].size = 91*1024*1024;
++#elif defined(CONFIG_VIDEO_SAMSUNG)
++ mi->bank[0].size = 113*1024*1024;
++#else
++ mi->bank[0].size = 128*1024*1024;
++#endif
++ mi->bank[0].node = 0;
++
++ mi->nr_banks = 1;
++}
++
++
++static void smdk6410_hsmmc_init (void)
++{
++ /* hsmmc data strength */
++ writel(readl(S3C_SPCON) | (0x3 << 26), S3C_SPCON);
++
++ /* jsgood: hsmmc0/1 card detect pin should be high before setup gpio. (GPG6 to Input) */
++ writel(readl(S3C_GPGCON) & 0xf0ffffff, S3C_GPGCON);
++
++ /* GPIO N 13 (external interrupt) : Chip detect */
++ gpio_set_pin(S3C_GPN13, S3C_GPN13_EXTINT13); /* GPN13 to EINT13 */
++ gpio_pullup(S3C_GPN13, 0x2); /* Pull-up Enable */
++
++ /* jsgood: MUXmmc# to DOUTmpll for MPLL Clock Source */
++ writel((readl(S3C_CLK_SRC) & ~(0x3f << 18)) | (0x15 << 18), S3C_CLK_SRC);
++}
++
++#define IS_SMDK6430_CHK15 (1<<15)
++
++static unsigned int is_smdk6430(void)
++{
++ u32 reg, ret;
++
++ reg = (u32)ioremap((unsigned long)S3C64XX_PA_CHIP_ID, 0x1);
++
++ if((__raw_readl(reg + 0x4)& IS_SMDK6430_CHK15) == IS_SMDK6430_CHK15)
++ ret = 1; /* SMDK6430 */
++ else
++ ret = 0; /* SMDK6410 */
++
++ iounmap((void*)reg);
++
++ return ret;
++}
++
++static void smdk6410_set_qos(void)
++{
++ u32 reg;
++
++ /* AXI sfr */
++ reg = (u32) ioremap((unsigned long) S3C6410_PA_AXI_SYS, SZ_4K);
++
++ /* QoS override: FIMD min. latency */
++ writel(0x2, S3C24XX_VA_SYSCON + 0x128);
++
++ /* AXI QoS */
++ writel(0x7, reg + 0x460); /* (8 - MFC ch.) */
++ writel(0x7ff7, reg + 0x464);
++
++ /* Bus cacheable */
++ writel(0x8ff, S3C24XX_VA_SYSCON + 0x838);
++}
++
++static void __init smdk6410_machine_init (void)
++{
++ smdk6410_smc911x_set();
++
++ s3c_i2c0_set_platdata(NULL);
++ s3c_i2c1_set_platdata(NULL);
++
++ i2c_register_board_info(0, i2c_devs0, ARRAY_SIZE(i2c_devs0));
++ i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1));
++
++ platform_add_devices(smdk6410_devices, ARRAY_SIZE(smdk6410_devices));
++
++ if(is_smdk6430()) {
++ platform_device_del(&s3c_device_mfc);
++ platform_device_del(&s3c_device_g3d);
++ }
++
++ smdk_machine_init();
++
++ smdk6410_hsmmc_init();
++ smdk6410_set_qos();
++}
++
++#if !defined(CONFIG_MACH_SMDK6430)
++MACHINE_START(SMDK6410, "SMDK6410")
++#else
++MACHINE_START(SMDK6430, "SMDK6430")
++#endif
++ /* Maintainer: Samsung Electronics */
++ .phys_io = S3C24XX_PA_UART,
++ .io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
++ .boot_params = S3C_SDRAM_PA + 0x100,
++
++ .init_irq = s3c_init_irq,
++ .map_io = smdk6410_map_io,
++ .fixup = smdk6410_fixup,
++ .timer = &s3c_timer,
++ .init_machine = smdk6410_machine_init,
++MACHINE_END
++
++/*--------------------------------------------------------------
++ * HS-MMC GPIO Set function
++ * the location of this function must be re-considered.
++ * by scsuh
++ *--------------------------------------------------------------*/
++void hsmmc_set_gpio (uint channel, uint width)
++{
++ switch (channel) {
++ /* can supports 1 and 4 bit bus */
++ case 0:
++ /* GPIO G : Command, Clock */
++ gpio_set_pin(S3C_GPG0, S3C_GPG0_MMC_CLK0);
++ gpio_set_pin(S3C_GPG1, S3C_GPG1_MMC_CMD0);
++
++ gpio_pullup(S3C_GPG0, 0x0); /* Pull-up/down disable */
++ gpio_pullup(S3C_GPG1, 0x0); /* Pull-up/down disable */
++
++ /* GPIO G : Chip detect + LED */
++ gpio_set_pin(S3C_GPG6, S3C_GPG6_MMC_CD1);
++ gpio_pullup(S3C_GPG6, 0x2); /* Pull-up Enable */
++
++ if (width == 1) {
++ /* GPIO G : MMC DATA1[0] */
++ gpio_set_pin(S3C_GPG2, S3C_GPG2_MMC_DATA0_0);
++
++ gpio_pullup(S3C_GPG2, 0x0); /* Pull-up/down disable */
++ }
++ else if (width == 4) {
++ /* GPIO G : MMC DATA1[0:3] */
++ gpio_set_pin(S3C_GPG2, S3C_GPG2_MMC_DATA0_0);
++ gpio_set_pin(S3C_GPG3, S3C_GPG3_MMC_DATA0_1);
++ gpio_set_pin(S3C_GPG4, S3C_GPG4_MMC_DATA0_2);
++ gpio_set_pin(S3C_GPG5, S3C_GPG5_MMC_DATA0_3);
++
++ gpio_pullup(S3C_GPG2, 0x0); /* Pull-up/down disable */
++ gpio_pullup(S3C_GPG3, 0x0); /* Pull-up/down disable */
++ gpio_pullup(S3C_GPG4, 0x0); /* Pull-up/down disable */
++ gpio_pullup(S3C_GPG5, 0x0); /* Pull-up/down disable */
++ }
++ break;
++
++ /* can supports 1, 4, and 8 bit bus */
++ case 1:
++ /* GPIO H : Command, Clock */
++ gpio_set_pin(S3C_GPH0, S3C_GPH0_MMC_CLK1);
++ gpio_set_pin(S3C_GPH1, S3C_GPH1_MMC_CMD1);
++
++ gpio_pullup(S3C_GPH0, 0x0); /* Pull-up/down disable */
++ gpio_pullup(S3C_GPH1, 0x0); /* Pull-up/down disable */
++
++ /* GPIO G : Chip detect + LED */
++ gpio_set_pin(S3C_GPG6, S3C_GPG6_MMC_CD1);
++ gpio_pullup(S3C_GPG6, 0x2); /* Pull-up Enable */
++
++ if (width == 1) {
++ /* GPIO H : MMC DATA1[0] */
++ gpio_set_pin(S3C_GPH2, S3C_GPH2_MMC_DATA1_0);
++
++ gpio_pullup(S3C_GPH2, 0x0); /* Pull-up/down disable */
++ }
++ else if (width == 4) {
++ /* GPIO H : MMC DATA1[0:3] */
++ gpio_set_pin(S3C_GPH2, S3C_GPH2_MMC_DATA1_0);
++ gpio_set_pin(S3C_GPH3, S3C_GPH3_MMC_DATA1_1);
++ gpio_set_pin(S3C_GPH4, S3C_GPH4_MMC_DATA1_2);
++ gpio_set_pin(S3C_GPH5, S3C_GPH5_MMC_DATA1_3);
++
++ gpio_pullup(S3C_GPH2, 0x0); /* Pull-up/down disable */
++ gpio_pullup(S3C_GPH3, 0x0); /* Pull-up/down disable */
++ gpio_pullup(S3C_GPH4, 0x0); /* Pull-up/down disable */
++ gpio_pullup(S3C_GPH5, 0x0); /* Pull-up/down disable */
++ }
++ else if (width == 8) {
++ /* GPIO H : MMC DATA1[0:7] */
++ gpio_set_pin(S3C_GPH2, S3C_GPH2_MMC_DATA1_0);
++ gpio_set_pin(S3C_GPH3, S3C_GPH3_MMC_DATA1_1);
++ gpio_set_pin(S3C_GPH4, S3C_GPH4_MMC_DATA1_2);
++ gpio_set_pin(S3C_GPH5, S3C_GPH5_MMC_DATA1_3);
++ gpio_set_pin(S3C_GPH6, S3C_GPH6_MMC_DATA1_4);
++ gpio_set_pin(S3C_GPH7, S3C_GPH7_MMC_DATA1_5);
++ gpio_set_pin(S3C_GPH8, S3C_GPH8_MMC_DATA1_6);
++ gpio_set_pin(S3C_GPH9, S3C_GPH9_MMC_DATA1_7);
++
++ gpio_pullup(S3C_GPH2, 0x0); /* Pull-up/down disable */
++ gpio_pullup(S3C_GPH3, 0x0); /* Pull-up/down disable */
++ gpio_pullup(S3C_GPH4, 0x0); /* Pull-up/down disable */
++ gpio_pullup(S3C_GPH5, 0x0); /* Pull-up/down disable */
++ gpio_pullup(S3C_GPH6, 0x0); /* Pull-up/down disable */
++ gpio_pullup(S3C_GPH7, 0x0); /* Pull-up/down disable */
++ gpio_pullup(S3C_GPH8, 0x0); /* Pull-up/down disable */
++ gpio_pullup(S3C_GPH9, 0x0); /* Pull-up/down disable */
++ }
++ break;
++
++ /* can supports 1 and 4 bit bus, no irq_cd */
++ case 2:
++ /* GPIO H : Command, Clock */
++ gpio_set_pin(S3C_GPH0, S3C_GPH0_MMC_CLK1);
++ gpio_set_pin(S3C_GPH1, S3C_GPH1_MMC_CMD1);
++
++ gpio_pullup(S3C_GPH0, 0x0); /* Pull-up/down disable */
++ gpio_pullup(S3C_GPH1, 0x0); /* Pull-up/down disable */
++
++ /* GPIO G : Chip detect + LED */
++ gpio_set_pin(S3C_GPG6, S3C_GPG6_MMC_CD1);
++ gpio_pullup(S3C_GPG6, 0x2); /* Pull-up Enable */
++
++ if (width == 1) {
++ /* GPIO H : MMC DATA1[0] */
++ gpio_set_pin(S3C_GPH6, S3C_GPH6_MMC_DATA2_0);
++
++ gpio_pullup(S3C_GPH6, 0x0); /* Pull-up/down disable */
++ }
++ else if (width == 4) {
++ /* GPIO H : MMC DATA1[0:3] */
++ gpio_set_pin(S3C_GPH6, S3C_GPH6_MMC_DATA2_0);
++ gpio_set_pin(S3C_GPH7, S3C_GPH7_MMC_DATA2_1);
++ gpio_set_pin(S3C_GPH8, S3C_GPH8_MMC_DATA2_2);
++ gpio_set_pin(S3C_GPH9, S3C_GPH9_MMC_DATA2_3);
++
++ gpio_pullup(S3C_GPH6, 0x0); /* Pull-up/down disable */
++ gpio_pullup(S3C_GPH7, 0x0); /* Pull-up/down disable */
++ gpio_pullup(S3C_GPH8, 0x0); /* Pull-up/down disable */
++ gpio_pullup(S3C_GPH9, 0x0); /* Pull-up/down disable */
++ }
++
++ break;
++
++ default:
++ break;
++ }
++}
++EXPORT_SYMBOL(hsmmc_set_gpio);
++
++/* For host controller's capabilities */
++#define HOST_CAPS (MMC_CAP_4_BIT_DATA | MMC_CAP_MULTIWRITE | \
++ MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED)
++
++
++struct s3c_hsmmc_cfg s3c_hsmmc0_platform = {
++ .hwport = 0,
++ .enabled = 0,
++ .host_caps = HOST_CAPS,
++ .bus_width = 4,
++ .highspeed = 0,
++
++ /* ctrl for mmc */
++ .fd_ctrl[MMC_TYPE_MMC] = {
++ .ctrl2 = 0xC0004100, /* ctrl2 for mmc */
++ .ctrl3[SPEED_NORMAL] = 0x80808080, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0x00008080, /* ctrl3 for high speed */
++ .ctrl4 = 0x3,
++ },
++
++ /* ctrl for sd */
++ .fd_ctrl[MMC_TYPE_SD] = {
++ .ctrl2 = 0xC0004100, /* ctrl2 for sd */
++ .ctrl3[SPEED_NORMAL] = 0x80808080, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0x00008080, /* ctrl3 for high speed */
++ .ctrl4 = 0x3,
++ },
++
++ .clocks[0] = {
++ .name = "sclk_DOUTmpll_mmc0",
++ .src = 0x2,
++ },
++};
++
++struct s3c_hsmmc_cfg s3c_hsmmc1_platform = {
++ .hwport = 1,
++ .enabled = 1,
++ .host_caps = HOST_CAPS,
++ .bus_width = 4,
++ //.host_caps = HOST_CAPS | MMC_CAP_8_BIT_DATA,
++ //.bus_width = 8,
++
++ .highspeed = 0,
++
++ /* ctrl for mmc */
++ .fd_ctrl[MMC_TYPE_MMC] = {
++ .ctrl2 = 0xC0004100, /* ctrl2 for mmc */
++ .ctrl3[SPEED_NORMAL] = 0x80808080, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0x00008080, /* ctrl3 for high speed */
++ .ctrl4 = 0x3,
++ },
++
++ /* ctrl for sd */
++ .fd_ctrl[MMC_TYPE_SD] = {
++ .ctrl2 = 0xC0004100, /* ctrl2 for sd */
++ .ctrl3[SPEED_NORMAL] = 0x80808080, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0x00008080, /* ctrl3 for high speed */
++ .ctrl4 = 0x3,
++ },
++
++ .clocks[0] = {
++ .name = "sclk_DOUTmpll_mmc1",
++ .src = 0x2,
++ },
++};
++
++struct s3c_hsmmc_cfg s3c_hsmmc2_platform = {
++ .hwport = 2,
++ .enabled = 0,
++ .host_caps = HOST_CAPS,
++ .bus_width = 4,
++ .highspeed = 0,
++
++ /* ctrl for mmc */
++ .fd_ctrl[MMC_TYPE_MMC] = {
++ .ctrl2 = 0xC0004100, /* ctrl2 for mmc */
++ .ctrl3[SPEED_NORMAL] = 0x80808080, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0x00008080, /* ctrl3 for high speed */
++ .ctrl4 = 0x3,
++ },
++
++ /* ctrl for sd */
++ .fd_ctrl[MMC_TYPE_SD] = {
++ .ctrl2 = 0xC0004100, /* ctrl2 for sd */
++ .ctrl3[SPEED_NORMAL] = 0x80808080, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0x00008080, /* ctrl3 for high speed */
++ .ctrl4 = 0x3,
++ },
++
++ .clocks[0] = {
++ .name = "sclk_DOUTmpll_mmc2",
++ .src = 0x2,
++ },
++};
++
++#if defined(CONFIG_RTC_DRV_S3C) || defined(CONFIG_RTC_DRV_S3C_MODULE)
++/* RTC common Function for samsung APs*/
++unsigned int s3c_rtc_set_bit_byte(void __iomem *base, uint offset, uint val)
++{
++ writeb(val, base + offset);
++
++ return 0;
++}
++EXPORT_SYMBOL(s3c_rtc_set_bit_byte);
++
++unsigned int s3c_rtc_read_alarm_status(void __iomem *base)
++{
++ return 1;
++}
++EXPORT_SYMBOL(s3c_rtc_read_alarm_status);
++
++void s3c_rtc_set_pie(void __iomem *base, uint to)
++{
++ unsigned int tmp;
++
++ tmp = readw(base + S3C2410_RTCCON) & ~S3C_RTCCON_TICEN;
++
++ if (to)
++ tmp |= S3C_RTCCON_TICEN;
++
++ writew(tmp, base + S3C2410_RTCCON);
++}
++EXPORT_SYMBOL(s3c_rtc_set_pie);
++
++void s3c_rtc_set_freq_regs(void __iomem *base, uint freq, uint *s3c_freq)
++{
++ unsigned int tmp;
++
++ tmp = readw(base + S3C2410_RTCCON) & (S3C_RTCCON_TICEN | S3C2410_RTCCON_RTCEN );
++ writew(tmp, base + S3C2410_RTCCON);
++ *s3c_freq = freq;
++ tmp = (32768 / freq)-1;
++ writel(tmp, base + S3C2410_TICNT);
++}
++EXPORT_SYMBOL(s3c_rtc_set_freq_regs);
++
++void s3c_rtc_enable_set(struct platform_device *pdev,void __iomem *base, int en)
++{
++ unsigned int tmp;
++
++ if (!en) {
++ tmp = readw(base + S3C2410_RTCCON);
++ writew(tmp & ~ (S3C2410_RTCCON_RTCEN | S3C_RTCCON_TICEN), base + S3C2410_RTCCON);
++ } else {
++ /* re-enable the device, and check it is ok */
++ if ((readw(base+S3C2410_RTCCON) & S3C2410_RTCCON_RTCEN) == 0){
++ dev_info(&pdev->dev, "rtc disabled, re-enabling\n");
++
++ tmp = readw(base + S3C2410_RTCCON);
++ writew(tmp|S3C2410_RTCCON_RTCEN, base+S3C2410_RTCCON);
++ }
++
++ if ((readw(base + S3C2410_RTCCON) & S3C2410_RTCCON_CNTSEL)){
++ dev_info(&pdev->dev, "removing RTCCON_CNTSEL\n");
++
++ tmp = readw(base + S3C2410_RTCCON);
++ writew(tmp& ~S3C2410_RTCCON_CNTSEL, base+S3C2410_RTCCON);
++ }
++
++ if ((readw(base + S3C2410_RTCCON) & S3C2410_RTCCON_CLKRST)){
++ dev_info(&pdev->dev, "removing RTCCON_CLKRST\n");
++
++ tmp = readw(base + S3C2410_RTCCON);
++ writew(tmp & ~S3C2410_RTCCON_CLKRST, base+S3C2410_RTCCON);
++ }
++ }
++}
++EXPORT_SYMBOL(s3c_rtc_enable_set);
++#endif
++
++#if defined(CONFIG_USB_GADGET_S3C_OTGD_HS) || \
++ defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
++
++/* Initializes OTG Phy. */
++void otg_phy_init(u32 otg_phy_clk) {
++
++ writel(readl(S3C_OTHERS)|S3C_OTHERS_USB_SIG_MASK, S3C_OTHERS);
++ writel(0x0, S3C_USBOTG_PHYPWR); /* Power up */
++ writel(otg_phy_clk, S3C_USBOTG_PHYCLK);
++ writel(0x1, S3C_USBOTG_RSTCON);
++
++ udelay(50);
++ writel(0x0, S3C_USBOTG_RSTCON);
++ udelay(50);
++}
++
++EXPORT_SYMBOL(otg_phy_init);
++
++/* USB Control request data struct must be located here for DMA transfer */
++struct usb_ctrlrequest usb_ctrl;
++EXPORT_SYMBOL(usb_ctrl);
++
++/* OTG PHY Power Off */
++void otg_phy_off(void) {
++ writel(readl(S3C_USBOTG_PHYPWR)|(0x1F<<1), S3C_USBOTG_PHYPWR);
++ writel(readl(S3C_OTHERS)&~S3C_OTHERS_USB_SIG_MASK, S3C_OTHERS);
++}
++
++EXPORT_SYMBOL(otg_phy_off);
++#endif
++
++#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
++void usb_host_clk_en(int usb_host_clksrc, u32 otg_phy_clk) {
++ switch (usb_host_clksrc) {
++ case 0: /* epll clk */
++ writel((readl(S3C_CLK_SRC)& ~S3C_CLKSRC_UHOST_MASK)
++ |S3C_CLKSRC_EPLL_CLKSEL|S3C_CLKSRC_UHOST_EPLL,
++ S3C_CLK_SRC);
++
++ /* USB host colock divider ratio is 2 */
++ writel((readl(S3C_CLK_DIV1)& ~S3C_CLKDIVN_UHOST_MASK)
++ |S3C_CLKDIV1_USBDIV2, S3C_CLK_DIV1);
++ break;
++ case 1: /* oscillator 48M clk */
++ writel(readl(S3C_CLK_SRC)& ~S3C_CLKSRC_UHOST_MASK, S3C_CLK_SRC);
++ otg_phy_init(otg_phy_clk);
++
++ /* USB host colock divider ratio is 1 */
++ writel(readl(S3C_CLK_DIV1)& ~S3C_CLKDIVN_UHOST_MASK, S3C_CLK_DIV1);
++ break;
++ default:
++ printk(KERN_INFO "Unknown USB Host Clock Source\n");
++ BUG();
++ break;
++ }
++
++ writel(readl(S3C_HCLK_GATE)|S3C_CLKCON_HCLK_UHOST|S3C_CLKCON_HCLK_SECUR,
++ S3C_HCLK_GATE);
++ writel(readl(S3C_SCLK_GATE)|S3C_CLKCON_SCLK_UHOST, S3C_SCLK_GATE);
++
++}
++EXPORT_SYMBOL(usb_host_clk_en);
++#endif
++
++/* smdk6410 adc common function */
++
++struct s3c_adc_cfg s3c_adc_platform={
++ /* s3c6410 support 12-bit resolution */
++ .delay = 10000,
++ .presc = 49,
++ .resolution = 12,
++};
++
++#if defined(CONFIG_S3C_ADC) || defined(CONFIG_S3C_ADC_MODULE)
++unsigned int s3c_adc_convert(void __iomem *reg_base,unsigned int s3c_adc_port)
++{
++ unsigned int adc_return;
++ unsigned long data0;
++ unsigned long data1;
++
++ writel(readl(reg_base+S3C2410_ADCCON)|S3C2410_ADCCON_SELMUX(s3c_adc_port), reg_base+S3C2410_ADCCON);
++
++ udelay(10);
++
++ writel(readl(reg_base+S3C2410_ADCCON)|S3C2410_ADCCON_ENABLE_START, reg_base+S3C2410_ADCCON);
++
++ do {
++ data0 = readl(reg_base+S3C2410_ADCCON);
++ } while(!(data0 & S3C2410_ADCCON_ECFLG));
++
++ data1 = readl(reg_base+S3C2410_ADCDAT0);
++
++ adc_return = data1 & S3C_ADCDAT0_XPDATA_MASK_12BIT;
++
++ return adc_return;
++}
++EXPORT_SYMBOL(s3c_adc_convert);
++#endif
++
++
++struct s3c_ts_mach_info s3c_ts_platform = {
++ .delay = 10000,
++ .presc = 49,
++ .oversampling_shift = 2,
++ .resol_bit = 12,
++};
++
+diff --git a/arch/arm/mach-s3c6410/pm.c b/arch/arm/mach-s3c6410/pm.c
+new file mode 100644
+index 0000000..af53fdc
+--- /dev/null
++++ b/arch/arm/mach-s3c6410/pm.c
+@@ -0,0 +1,116 @@
++/* linux/arch/arm/mach-s3c6410/pm.c
++ *
++ * Copyright (c) 2006 Samsung Electronics
++ *
++ *
++ * S3C6410 (and compatible) Power Manager (Suspend-To-RAM) support
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++*/
++
++#include <linux/init.h>
++#include <linux/suspend.h>
++#include <linux/errno.h>
++#include <linux/time.h>
++#include <linux/sysdev.h>
++
++#include <asm/hardware.h>
++#include <asm/io.h>
++
++#include <asm/mach-types.h>
++
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-s3c-clock.h>
++#include <asm/plat-s3c/regs-rtc.h>
++#include <asm/plat-s3c24xx/cpu.h>
++#include <asm/plat-s3c24xx/pm.h>
++
++#ifdef CONFIG_S3C2410_PM_DEBUG
++extern void pm_dbg(const char *fmt, ...);
++#define DBG(fmt...) pm_dbg(fmt)
++#else
++#define DBG(fmt...) printk(KERN_DEBUG fmt)
++#endif
++
++static void s3c6410_cpu_suspend(void)
++{
++ unsigned long tmp;
++
++ /* issue the standby signal into the pm unit. Note, we
++ * issue a write-buffer drain just in case */
++
++ tmp = 0;
++
++ asm("b 1f\n\t"
++ ".align 5\n\t"
++ "1:\n\t"
++ "mcr p15, 0, %0, c7, c10, 5\n\t"
++ "mcr p15, 0, %0, c7, c10, 4\n\t"
++ "mcr p15, 0, %0, c7, c0, 4" :: "r" (tmp));
++
++ /* we should never get past here */
++
++ panic("sleep resumed to originator?");
++}
++
++static void s3c6410_pm_prepare(void)
++{
++
++}
++
++static int s3c6410_pm_add(struct sys_device *sysdev)
++{
++ pm_cpu_prep = s3c6410_pm_prepare;
++ pm_cpu_sleep = s3c6410_cpu_suspend;
++
++ return 0;
++}
++
++static struct sleep_save s3c6410_sleep[] = {
++
++};
++
++static int s3c6410_pm_suspend(struct sys_device *dev, pm_message_t state)
++{
++ s3c2410_pm_do_save(s3c6410_sleep, ARRAY_SIZE(s3c6410_sleep));
++ return 0;
++}
++
++static int s3c6410_pm_resume(struct sys_device *dev)
++{
++ unsigned long tmp;
++#if 0
++ tmp = __raw_readl(S3C_PWR_CFG);
++ tmp &= ~(0x60<<0);
++ tmp |= (0x1<<5);
++ __raw_writel(tmp, S3C_PWR_CFG);
++#endif
++ s3c2410_pm_do_restore(s3c6410_sleep, ARRAY_SIZE(s3c6410_sleep));
++ return 0;
++}
++
++static struct sysdev_driver s3c6410_pm_driver = {
++ .add = s3c6410_pm_add,
++ .suspend = s3c6410_pm_suspend,
++ .resume = s3c6410_pm_resume,
++};
++
++static __init int s3c6410_pm_init(void)
++{
++ return sysdev_driver_register(&s3c6410_sysclass, &s3c6410_pm_driver);
++}
++
++arch_initcall(s3c6410_pm_init);
++
+diff --git a/arch/arm/mach-s3c6410/pwm/Kconfig b/arch/arm/mach-s3c6410/pwm/Kconfig
+new file mode 100644
+index 0000000..24b7d6e
+--- /dev/null
++++ b/arch/arm/mach-s3c6410/pwm/Kconfig
+@@ -0,0 +1,27 @@
++#
++# PWM Timer configuration
++#
++
++menu "Pulse Width Modulation Timer"
++
++config PWM
++ tristate "Pulse Width Modulation (PWM) Timer support"
++
++#config S3C2450_PWM
++# bool "S3C2450 PWM support"
++# depends on CPU_S3C2450 && PWM
++# help
++# S3C2450 PWM support.
++
++#config S3C2416_PWM
++# bool "S3C2416 PWM support"
++# depends on CPU_S3C2416 && PWM
++# help
++# S3C2416 PWM support.
++
++config S3C6410_PWM
++ bool "S3C6410/30 PWM support"
++ depends on CPU_S3C6410 && PWM
++ help
++ S3C6410 PWM support.
++endmenu
+diff --git a/arch/arm/mach-s3c6410/pwm/Makefile b/arch/arm/mach-s3c6410/pwm/Makefile
+new file mode 100644
+index 0000000..7141ea2
+--- /dev/null
++++ b/arch/arm/mach-s3c6410/pwm/Makefile
+@@ -0,0 +1,8 @@
++#
++# Makefile for PWM drivers.
++#
++
++obj-$(CONFIG_S3C6410_PWM) += pwm-s3c6410.o
++#obj-$(CONFIG_S3C2450_PWM) += pwm-s3c2450.o
++#obj-$(CONFIG_S3C2416_PWM) += pwm-s3c2450.o
++
+diff --git a/arch/arm/mach-s3c6410/pwm/pwm-s3c6410.c b/arch/arm/mach-s3c6410/pwm/pwm-s3c6410.c
+new file mode 100644
+index 0000000..f6203ce
+--- /dev/null
++++ b/arch/arm/mach-s3c6410/pwm/pwm-s3c6410.c
+@@ -0,0 +1,379 @@
++/* linux/arch/arm/mach-s3c64xx/pwm.c
++ *
++ * (c) 2003-2005 Simtec Electronics
++ * Ben Dooks <ben@simtec.co.uk>
++ *
++ * S3C64XX PWM core
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * Changelog:
++ * This file is based on the Sangwook Lee/Samsung patches, re-written due
++ * to various ommisions from the code (such as flexible pwm configuration)
++ * for use with the BAST system board.
++ *
++ *
++ */
++#include <linux/errno.h>
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/slab.h>
++#include <linux/input.h>
++#include <linux/init.h>
++#include <linux/serio.h>
++#include <linux/delay.h>
++#include <linux/platform_device.h>
++#include <linux/miscdevice.h>
++#include <linux/clk.h>
++#include <linux/mutex.h>
++
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/hardware.h>
++#include <asm/uaccess.h>
++
++#include <asm/plat-s3c/regs-timer.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/irqs.h>
++#include "pwm-s3c6410.h"
++
++
++s3c6410_pwm_chan_t s3c_chans[S3C_PWM_CHANNELS];
++
++
++static inline void
++s3c6410_pwm_buffdone(s3c6410_pwm_chan_t *chan, void *dev)
++{
++
++ if (chan->callback_fn != NULL) {
++ (chan->callback_fn)( dev);
++ }
++}
++
++
++static int s3c6410_pwm_start (int channel)
++{
++ unsigned long tcon;
++ tcon = __raw_readl(S3C_TCON);
++ switch(channel)
++ {
++ case 0:
++ tcon |= S3C_TCON_T0START;
++ tcon &= ~S3C_TCON_T0MANUALUPD;
++ break;
++ case 1:
++ tcon |= S3C_TCON_T1START;
++ tcon &= ~S3C_TCON_T1MANUALUPD;
++ break;
++ case 2:
++ tcon |= S3C_TCON_T2START;
++ tcon &= ~S3C_TCON_T2MANUALUPD;
++ break;
++ case 3:
++ tcon |= S3C_TCON_T3START;
++ tcon &= ~S3C_TCON_T3MANUALUPD;
++ break;
++
++ }
++ __raw_writel(tcon, S3C_TCON);
++
++ return 0;
++}
++
++
++int s3c6410_timer_setup (int channel, int usec, unsigned long g_tcnt, unsigned long g_tcmp)
++{
++ unsigned long tcon;
++ unsigned long tcnt;
++ unsigned long tcmp;
++ unsigned long tcfg1;
++ unsigned long tcfg0;
++ unsigned long pclk;
++ struct clk *clk;
++
++ printk("PWM channel %d set g_tcnt = %ld, g_tcmp = %ld \n", channel, g_tcnt, g_tcmp);
++
++ tcnt = 0xffffffff; /* default value for tcnt */
++
++ /* read the current timer configuration bits */
++ tcon = __raw_readl(S3C_TCON);
++ tcfg1 = __raw_readl(S3C_TCFG1);
++ tcfg0 = __raw_readl(S3C_TCFG0);
++
++ clk = clk_get(NULL, "timers");
++ if (IS_ERR(clk))
++ panic("failed to get clock for pwm timer");
++
++ clk_enable(clk);
++
++ pclk = clk_get_rate(clk);
++
++ /* configure clock tick */
++ switch(channel)
++ {
++ case 0:
++ /* set gpio as PWM TIMER0 to signal output*/
++ s3c_gpio_cfgpin(S3C_GPF14, S3C_GPF14_PWM_TOUT0);
++ s3c_gpio_setpin(S3C_GPF14, 0);
++ tcfg1 &= ~S3C_TCFG1_MUX0_MASK;
++ tcfg1 |= S3C_TCFG1_MUX0_DIV2;
++
++ tcfg0 &= ~S3C_TCFG_PRESCALER0_MASK;
++ tcfg0 |= (PRESCALER) << S3C_TCFG_PRESCALER0_SHIFT;
++ tcon &= ~(7<<0);
++ tcon |= S3C_TCON_T0RELOAD;
++ break;
++
++ case 1:
++ /* set gpio as PWM TIMER1 to signal output*/
++ s3c_gpio_cfgpin(S3C_GPF15, S3C_GPF15_PWM_TOUT1);
++ s3c_gpio_setpin(S3C_GPF15, 0);
++ tcfg1 &= ~S3C_TCFG1_MUX1_MASK;
++ tcfg1 |= S3C_TCFG1_MUX1_DIV2;
++
++ tcfg0 &= ~S3C_TCFG_PRESCALER0_MASK;
++ tcfg0 |= (PRESCALER) << S3C_TCFG_PRESCALER0_SHIFT;
++
++ tcon &= ~(7<<8);
++ tcon |= S3C_TCON_T1RELOAD;
++ break;
++ case 2:
++ tcfg1 &= ~S3C_TCFG1_MUX2_MASK;
++ tcfg1 |= S3C_TCFG1_MUX2_DIV2;
++
++ tcfg0 &= ~S3C_TCFG_PRESCALER1_MASK;
++ tcfg0 |= (PRESCALER) << S3C_TCFG_PRESCALER1_SHIFT;
++
++ tcon &= ~(7<<12);
++ tcon |= S3C_TCON_T2RELOAD;
++ break;
++ case 3:
++ tcfg1 &= ~S3C_TCFG1_MUX3_MASK;
++ tcfg1 |= S3C_TCFG1_MUX3_DIV2;
++
++ tcfg0 &= ~S3C_TCFG_PRESCALER1_MASK;
++ tcfg0 |= (PRESCALER) << S3C_TCFG_PRESCALER1_SHIFT;
++ tcon &= ~(7<<16);
++ tcon |= S3C_TCON_T3RELOAD;
++ break;
++ }
++
++#if 0
++
++ tcnt = (pclk / ((PRESCALER)*DIVIDER)) / usec;
++
++ printk("s3c6410 pwm timer tcnt=0x%08lx, pclk=0x%08lx, PRESCALER=%d, DIVIDER=%d, usec=%d\n",
++ tcnt, pclk, PRESCALER, DIVIDER, usec);
++
++ /* timers reload after counting zero, so reduce the count by 1 */
++
++ tcnt--;
++#endif
++
++ __raw_writel(tcfg1, S3C_TCFG1);
++ __raw_writel(tcfg0, S3C_TCFG0);
++
++
++ __raw_writel(tcon, S3C_TCON);
++ tcnt = 160;
++#if 0
++ if (tcnt > 0xffffffff) {
++ panic("setup_timer: HZ is too small, cannot configure timer!");
++ return 0;
++ }
++#endif
++ __raw_writel(tcnt, S3C_TCNTB(channel));
++ tcmp = 110;
++ __raw_writel(tcmp, S3C_TCMPB(channel));
++
++ switch(channel)
++ {
++ case 0:
++ tcon |= S3C_TCON_T0MANUALUPD;
++ break;
++ case 1:
++ tcon |= S3C_TCON_T1MANUALUPD;
++ break;
++ case 2:
++ tcon |= S3C_TCON_T2MANUALUPD;
++ break;
++ case 3:
++ tcon |= S3C_TCON_T3MANUALUPD;
++ break;
++ }
++ __raw_writel(tcon, S3C_TCON);
++
++ tcnt = g_tcnt;
++ __raw_writel(tcnt, S3C_TCNTB(channel));
++
++ tcmp = g_tcmp;
++ __raw_writel(tcmp, S3C_TCMPB(channel));
++
++ /* start the timer running */
++ s3c6410_pwm_start ( channel);
++
++ return 0;
++}
++
++
++static irqreturn_t s3c6410_pwm_irq(int irq, void *devpw)
++{
++ s3c6410_pwm_chan_t *chan = (s3c6410_pwm_chan_t *)devpw;
++ void *dev=chan->dev;
++
++ /* modify the channel state */
++ s3c6410_pwm_buffdone(chan, dev);
++
++ return IRQ_HANDLED;
++}
++
++
++int s3c6410_pwm_request(pwmch_t channel, s3c_pwm_client_t *client, void *dev)
++{
++ s3c6410_pwm_chan_t *chan = &s3c_chans[channel];
++ unsigned long flags;
++ int err;
++
++ pr_debug("pwm%d: s3c_request_pwm: client=%s, dev=%p\n",
++ channel, client->name, dev);
++
++
++ local_irq_save(flags);
++
++
++ if (chan->in_use) {
++ if (client != chan->client) {
++ printk(KERN_ERR "pwm%d: already in use\n", channel);
++ local_irq_restore(flags);
++ return -EBUSY;
++ } else {
++ printk(KERN_ERR "pwm%d: client already has channel\n", channel);
++ }
++ }
++
++ chan->client = client;
++ chan->in_use = 1;
++ chan->dev = dev;
++
++ if (!chan->irq_claimed) {
++ pr_debug("pwm%d: %s : requesting irq %d\n",
++ channel, __FUNCTION__, chan->irq);
++
++ err = request_irq(chan->irq, s3c6410_pwm_irq, SA_INTERRUPT,
++ client->name, (void *)chan);
++
++ if (err) {
++ chan->in_use = 0;
++ local_irq_restore(flags);
++
++ printk(KERN_ERR "%s: cannot get IRQ %d for PWM %d\n",
++ client->name, chan->irq, chan->number);
++ return err;
++ }
++
++ chan->irq_claimed = 1;
++ chan->irq_enabled = 1;
++ }
++
++ local_irq_restore(flags);
++
++ /* need to setup */
++
++ pr_debug("%s: channel initialised, %p\n", __FUNCTION__, chan);
++
++ return 0;
++}
++
++int s3c6410_pwm_free (pwmch_t channel, s3c_pwm_client_t *client)
++{
++ s3c6410_pwm_chan_t *chan = &s3c_chans[channel];
++ unsigned long flags;
++
++
++ local_irq_save(flags);
++
++ if (chan->client != client) {
++ printk(KERN_WARNING "pwm%d: possible free from different client (channel %p, passed %p)\n",
++ channel, chan->client, client);
++ }
++
++ /* sort out stopping and freeing the channel */
++
++
++ chan->client = NULL;
++ chan->in_use = 0;
++
++ if (chan->irq_claimed)
++ free_irq(chan->irq, (void *)chan);
++ chan->irq_claimed = 0;
++
++ local_irq_restore(flags);
++
++ return 0;
++}
++
++
++int s3c6410_pwm_set_buffdone_fn(pwmch_t channel, s3c_pwm_cbfn_t rtn)
++{
++ s3c6410_pwm_chan_t *chan = &s3c_chans[channel];
++
++
++ pr_debug("%s: chan=%d, callback rtn=%p\n", __FUNCTION__, channel, rtn);
++
++ chan->callback_fn = rtn;
++
++ return 0;
++}
++
++
++#define s3c6410_pwm_suspend NULL
++#define s3c6410_pwm_resume NULL
++
++struct sysdev_class pwm_sysclass = {
++ set_kset_name("s3c-pwm"),
++ .suspend = s3c6410_pwm_suspend,
++ .resume = s3c6410_pwm_resume,
++};
++
++
++/* initialisation code */
++
++static int __init s3c6410_init_pwm(void)
++{
++ s3c6410_pwm_chan_t *cp;
++ int channel;
++ int ret;
++
++ printk("S3C PWM Driver, (c) 2006-2007 Samsung Electronics\n");
++
++ ret = sysdev_class_register(&pwm_sysclass);
++ if (ret != 0) {
++ printk(KERN_ERR "pwm sysclass registration failed\n");
++ return -ENODEV;
++ }
++
++ for (channel = 0; channel < S3C_PWM_CHANNELS; channel++) {
++ cp = &s3c_chans[channel];
++
++ memset(cp, 0, sizeof(s3c6410_pwm_chan_t));
++
++ cp->number = channel;
++ /* pwm channel irqs are in order.. */
++ cp->irq = channel + IRQ_TIMER0;
++
++ /* register system device */
++
++ ret = sysdev_register(&cp->sysdev);
++
++ pr_debug("PWM channel %d , irq %d\n",
++ cp->number, cp->irq);
++ }
++#ifdef PWM_using_sample
++ s3c6410_timer_setup(1,10,1000,10);
++#endif
++
++ return ret;
++}
++__initcall(s3c6410_init_pwm);
+diff --git a/arch/arm/mach-s3c6410/pwm/pwm-s3c6410.h b/arch/arm/mach-s3c6410/pwm/pwm-s3c6410.h
+new file mode 100644
+index 0000000..984bcd7
+--- /dev/null
++++ b/arch/arm/mach-s3c6410/pwm/pwm-s3c6410.h
+@@ -0,0 +1,125 @@
++/* linux/include/asm-arm/arch-bast/dma.h
++ *
++ * Copyright (C) 2003,2004 Simtec Electronics
++ * Ben Dooks <ben@simtec.co.uk>
++ *
++ * Samsung S3C PWM support
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * Changelog:
++ * ??-May-2003 BJD Created file
++ * ??-Jun-2003 BJD Added more dma functionality to go with arch
++ * 10-Nov-2004 BJD Added sys_device support
++*/
++
++#ifndef __ASM_ARCH_DMA_H
++#define __ASM_ARCH_DMA_H __FILE__
++
++#include <linux/sysdev.h>
++#include <asm/plat-s3c/regs-timer.h>
++
++
++#define pwmch_t int
++
++/* we have 4 pwm channels */
++#define S3C_PWM_CHANNELS 4
++
++
++struct s3c_pwm_client {
++ char *name;
++};
++
++typedef struct s3c_pwm_client s3c_pwm_client_t;
++
++
++typedef struct s3c_pwm_chan_s s3c6410_pwm_chan_t;
++
++/* s3c_pwm_cbfn_t
++ *
++ * buffer callback routine type
++*/
++
++typedef void (*s3c_pwm_cbfn_t)(void *buf);
++
++
++
++/* struct s3c_pwm_chan_s
++ *
++ * full state information for each DMA channel
++*/
++
++struct s3c_pwm_chan_s {
++ /* channel state flags and information */
++ unsigned char number; /* number of this dma channel */
++ unsigned char in_use; /* channel allocated */
++ unsigned char irq_claimed; /* irq claimed for channel */
++ unsigned char irq_enabled; /* irq enabled for channel */
++
++ /* channel state */
++
++ s3c_pwm_client_t *client;
++ void *dev;
++ /* channel configuration */
++ unsigned int flags; /* channel flags */
++
++ /* channel's hardware position and configuration */
++ unsigned int irq; /* channel irq */
++
++ /* driver handles */
++ s3c_pwm_cbfn_t callback_fn; /* buffer done callback */
++
++ /* system device */
++ struct sys_device sysdev;
++};
++
++/* the currently allocated channel information */
++extern s3c6410_pwm_chan_t s3c_chans[];
++
++
++/* functions --------------------------------------------------------------- */
++
++/* s3c6410_pwm_request
++ *
++ * request a pwm channel exclusivley
++*/
++
++extern int s3c6410_pwm_request(pwmch_t channel, s3c_pwm_client_t *, void *dev);
++
++
++/* s3c_dma_ctrl
++ *
++ * change the state of the dma channel
++*/
++
++//extern int s3c_dma_ctrl(dmach_t channel, s3c_chan_op_t op);
++
++/* s3c_dma_setflags
++ *
++ * set the channel's flags to a given state
++*/
++
++
++/* s3c6410_pwm_free
++ *
++ * free the dma channel (will also abort any outstanding operations)
++*/
++
++extern int s3c6410_pwm_free(pwmch_t channel, s3c_pwm_client_t *);
++
++
++/* s3c_dma_config
++ *
++ * configure the dma channel
++*/
++
++
++
++
++extern int s3c6410_pwm_set_buffdone_fn(pwmch_t, s3c_pwm_cbfn_t rtn);
++
++extern int s3c6410_timer_setup (int channel, int usec, unsigned long g_tcnt, unsigned long g_tcmp);
++
++#endif /* __ASM_ARCH_DMA_H */
+diff --git a/arch/arm/mach-s3c6410/s3c6410.c b/arch/arm/mach-s3c6410/s3c6410.c
+new file mode 100644
+index 0000000..d73c929
+--- /dev/null
++++ b/arch/arm/mach-s3c6410/s3c6410.c
+@@ -0,0 +1,148 @@
++
++/* linux/arch/arm/mach-s3c6410/s3c6410.c
++ *
++ * Copyright (c) 2006, Samsung Electronics
++ * All rights reserved.
++ *
++ * Samsung S3C6410 Mobile CPU support
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * derived from linux/arch/arm/mach-s3c2410/devs.c, written by
++ * Ben Dooks <ben@simtec.co.uk>
++ */
++
++#include <linux/kernel.h>
++#include <linux/types.h>
++#include <linux/interrupt.h>
++#include <linux/list.h>
++#include <linux/timer.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/sysdev.h>
++#include <linux/delay.h>
++#include <linux/proc_fs.h>
++#include <linux/clk.h>
++
++#include <asm/mach/arch.h>
++#include <asm/mach/map.h>
++#include <asm/mach/irq.h>
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/irq.h>
++
++#include <asm/proc-fns.h>
++#include <asm/arch/idle.h>
++
++#include <asm/arch/regs-s3c-clock.h>
++#include <asm/plat-s3c/regs-serial.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/map.h>
++#include <asm/plat-s3c/nand.h>
++
++#include <asm/plat-s3c64xx/s3c6410.h>
++#include <asm/plat-s3c24xx/devs.h>
++#include <asm/plat-s3c24xx/common-smdk.h>
++#include <asm/plat-s3c24xx/cpu.h>
++
++//#define T32_PROBE_TEST
++
++/* Serial port registrations */
++
++static struct map_desc s3c6410_iodesc[] __initdata = {
++ IODESC_ENT(SROMC),
++ IODESC_ENT(TIMER),
++ IODESC_ENT(LCD),
++ IODESC_ENT(HOSTIFB),
++ IODESC_ENT(OTGSFR),
++ IODESC_ENT(OTG),
++};
++
++/* s3c6410_idle
++ *
++ * use the standard idle call by ensuring the idle mode
++ * in power config, then issuing the idle co-processor
++ * instruction
++*/
++
++static void s3c6410_idle(void)
++{
++ unsigned long tmp;
++
++ /* ensure our idle mode is to go to idle */
++
++ /* Set WFI instruction to SLEEP mode */
++
++#ifdef T32_PROBE_TEST
++ gpio_direction_output(S3C_GPF13);
++ gpio_set_value(S3C_GPF13, 0);
++#endif
++
++ tmp = __raw_readl(S3C_PWR_CFG);
++ tmp &= ~(0x3<<5);
++ tmp |= (0x1<<5);
++ __raw_writel(tmp, S3C_PWR_CFG);
++
++ cpu_do_idle();
++
++#ifdef T32_PROBE_TEST
++ gpio_set_value(S3C_GPF13, 1);
++#endif
++}
++
++
++void __init s3c6410_init_uarts(struct s3c2410_uartcfg *cfg, int no)
++{
++ s3c24xx_init_uartdevs("s3c-uart", s3c2410_uart_resources, cfg, no);
++}
++
++struct sysdev_class s3c6410_sysclass = {
++ set_kset_name("s3c6410-core"),
++};
++
++static struct sys_device s3c6410_sysdev = {
++ .cls = &s3c6410_sysclass,
++};
++
++
++static int __init s3c6410_core_init(void)
++{
++ return sysdev_class_register(&s3c6410_sysclass);
++}
++
++core_initcall(s3c6410_core_init);
++
++void __init s3c6410_map_io(struct map_desc *mach_desc, int size)
++{
++ /* register our io-tables */
++ iotable_init(s3c6410_iodesc, ARRAY_SIZE(s3c6410_iodesc));
++ iotable_init(mach_desc, size);
++
++ /* set our idle function */
++ s3c24xx_idle = s3c6410_idle;
++}
++
++int __init s3c6410_init(void)
++{
++ int ret;
++
++ printk("s3c6410: Initialising architecture\n");
++
++ ret = sysdev_register(&s3c6410_sysdev);
++
++ if (ret != 0)
++ printk(KERN_ERR "failed to register sysdev for s3c6410\n");
++
++ /* Rename devices that are specific to S3C6410 */
++
++#if defined (CONFIG_S3C_SIR)
++ s3c24xx_uart_src[3]->name = "s3c-irda";
++#endif
++ s3c_device_lcd.name = "s3c-lcd";
++ s3c_device_nand.name = "s3c-nand";
++
++ return ret;
++}
++
+diff --git a/arch/arm/mach-s5pc100/Kconfig b/arch/arm/mach-s5pc100/Kconfig
+new file mode 100644
+index 0000000..e9ab834
+--- /dev/null
++++ b/arch/arm/mach-s5pc100/Kconfig
+@@ -0,0 +1,25 @@
++# arch/arm/mach-s5pc100/Kconfig
++#
++# Licensed under GPLv2
++
++menu "S5PC100 Machines"
++
++config MACH_SMDKC100
++ bool "SMDKC100"
++ select CPU_S5PC100
++ select MACH_SMDK
++ help
++ Say Y here if you are using the S5PC100
++endmenu
++
++config CPU_S5PC100
++ bool
++ depends on ARCH_S3C2410
++ select S5PC100_PM if PM
++ help
++ Support for S5PC100 Samsung Mobile CPU based systems.
++
++config S5PC100_PM
++ bool
++ help
++ Internal config node to apply S5PC100 power management
+diff --git a/arch/arm/mach-s5pc100/Makefile b/arch/arm/mach-s5pc100/Makefile
+new file mode 100644
+index 0000000..0490da5
+--- /dev/null
++++ b/arch/arm/mach-s5pc100/Makefile
+@@ -0,0 +1,26 @@
++
++#
++# Makefile for the linux kernel.
++#
++
++# Object file lists.
++obj-y :=
++led-y := leds.o
++obj-n :=
++obj- :=
++
++# smdk6410 machine-specific support
++obj-$(CONFIG_CPU_S5PC100) += s5pc100.o clock.o irq.o
++
++obj-$(CONFIG_MACH_SMDKC100) += mach-smdkc100.o
++
++#obj-$(CONFIG_CPU_S3C6410) += irq.o dma.o
++#obj-$(CONFIG_S3C64XX_DMA_SYSFS) += dma-sysfs.o
++#obj-$(CONFIG_S3C6410_PM) += pm.o
++
++# Power Management support
++
++# LEDs support
++#led-$(CONFIG_MACH_SMDK6410) += leds-s3c6410.o
++#obj-$(CONFIG_LEDS) += $(led-y)
++
+diff --git a/arch/arm/mach-s5pc100/clock.c b/arch/arm/mach-s5pc100/clock.c
+new file mode 100644
+index 0000000..2526d6a
+--- /dev/null
++++ b/arch/arm/mach-s5pc100/clock.c
+@@ -0,0 +1,841 @@
++/* linux/arch/arm/mach-s5pc100/clock.c
++ *
++ * Copyright (c) 2004 Simtec Electronics
++ * Ben Dooks <ben@simtec.co.uk>
++ *
++ * S3C2412 Clock control support
++ *
++ * Based on, and code from linux/arch/arm/mach-versatile/clock.c
++ **
++ ** Copyright (C) 2004 ARM Limited.
++ ** Written by Deep Blue Solutions Limited.
++ *
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ */
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/list.h>
++#include <linux/errno.h>
++#include <linux/err.h>
++#include <linux/platform_device.h>
++#include <linux/sysdev.h>
++#include <linux/delay.h>
++
++#include <linux/interrupt.h>
++#include <linux/ioport.h>
++#include <linux/clk.h>
++#include <linux/mutex.h>
++
++#include <asm/mach/map.h>
++
++#include <asm/hardware.h>
++#include <asm/atomic.h>
++#include <asm/irq.h>
++#include <asm/io.h>
++
++#include <asm/plat-s5p/clock.h>
++#include <asm/plat-s3c24xx/cpu.h>
++#include <asm/arch/regs-s3c-clock.h>
++
++#if 0
++#define HCLK_GATING_ON_LIST S3C_CLKCON_HCLK_BUS | S3C_CLKCON_HCLK_DDR1 | S3C_CLKCON_HCLK_DDR0 |\
++ S3C_CLKCON_HCLK_MEM1 | S3C_CLKCON_HCLK_MEM0 | S3C_CLKCON_HCLK_DMA0 |\
++ S3C_CLKCON_HCLK_DMA1 | S3C_CLKCON_HCLK_INTC | S3C_CLKCON_HCLK_LCD |\
++ S3C_CLKCON_HCLK_DHOST | S3C_CLKCON_HCLK_POST0 | S3C_CLKCON_HCLK_MFC
++
++#define PCLK_GATING_ON_LIST S3C_CLKCON_PCLK_GPIO | S3C_CLKCON_PCLK_UART0 | S3C_CLKCON_PCLK_UART1 | S3C_CLKCON_PCLK_MFC
++
++#define SCLK_GATING_ON_LIST S3C_CLKCON_SCLK_UART | S3C_CLKCON_SCLK_LCD27 | S3C_CLKCON_SCLK_LCD | S3C_CLKCON_SCLK_POST1_27 | \
++ S3C_CLKCON_SCLK_POST0_27 | S3C_CLKCON_SCLK_POST1 | S3C_CLKCON_SCLK_POST0 | S3C_CLKCON_SCLK_MFC
++
++/* Select the source clock of USB Host. 0:48MHz, 1:FoutEpll */
++#define S3C_USB_CLKSRC_EPLL 0
++
++static int s3c6410_clkcon_enable_h(struct clk *clk, int enable)
++{
++ unsigned int clocks = clk->ctrlbit;
++ unsigned long clkcon;
++
++ clkcon = __raw_readl(S3C_HCLK_GATE);
++
++ if (enable)
++ clkcon |= clocks;
++ else
++ clkcon &= ~clocks;
++
++ __raw_writel(clkcon, S3C_HCLK_GATE);
++
++ return 0;
++}
++
++static int s3c6410_clkcon_enable_p(struct clk *clk, int enable)
++{
++ unsigned int clocks = clk->ctrlbit;
++ unsigned long clkcon;
++
++ clkcon = __raw_readl(S3C_PCLK_GATE);
++
++ if (enable)
++ clkcon |= clocks;
++ else
++ clkcon &= ~clocks;
++
++ __raw_writel(clkcon, S3C_PCLK_GATE);
++
++ return 0;
++}
++
++static int s3c6410_clkcon_enable_s(struct clk *clk, int enable)
++{
++ unsigned int clocks = clk->ctrlbit;
++ unsigned long clkcon;
++
++ clkcon = __raw_readl(S3C_SCLK_GATE);
++
++ if (enable)
++ clkcon |= clocks;
++ else
++ clkcon &= ~clocks;
++
++ __raw_writel(clkcon, S3C_SCLK_GATE);
++
++ return 0;
++}
++
++
++static int s3c6410_clkcon_enable_others(struct clk *clk, int enable)
++{
++ unsigned int clocks = clk->ctrlbit;
++ unsigned long clkcon;
++
++ clkcon = __raw_readl(S3C_OTHERS);
++
++ if (enable)
++ clkcon |= clocks;
++ else
++ clkcon &= ~clocks;
++
++ __raw_writel(clkcon, S3C_OTHERS);
++
++ return 0;
++}
++
++/*This function returns the virtual address of gating register*/
++ulong clk_get_gate_reg (struct clk *clk)
++{
++ struct clk *parent_clk = clk_get_parent(clk) ;
++
++ if (strcmp(parent_clk->name, "hclk") == 0)
++ return (unsigned long) S3C_HCLK_GATE;
++ else if (strcmp(parent_clk->name, "pclk") == 0)
++ return (unsigned long) S3C_PCLK_GATE;
++ else if (strcmp(parent_clk->name, "clk48m") == 0)
++ return (unsigned long) S3C_OTHERS;
++ else
++ return (unsigned long) S3C_SCLK_GATE;
++}
++
++int s3c_clkcon_enable (struct clk *clk, int enable)
++{
++ unsigned long gate_reg;
++
++ gate_reg = clk_get_gate_reg(clk);
++ s3c_clk_enable(clk->ctrlbit, enable, gate_reg);
++ return 0;
++}
++
++static unsigned long s3c6410_clk_getrate(struct clk *clk)
++{
++ /* set clock rate to use in drivers */
++ if (!clk->rate) {
++ if (clk->parent) {
++ clk->rate = clk->parent->rate;
++ }
++ }
++ return clk->rate;
++}
++
++
++static int s3c6410_epll_clk_uart_enable (struct clk *clk, int enable)
++{
++ s3c6410_clkcon_enable_s(clk, enable);
++
++ /* MUXepll : FOUTepll */
++ writel(readl(S3C_CLK_SRC)|S3C_CLKSRC_EPLL_CLKSEL, S3C_CLK_SRC);
++
++ /* UARTsel : MOUTepll */
++ writel((readl(S3C_CLK_SRC) & ~(0x1 << 13)) | (0 << 13), S3C_CLK_SRC);
++
++ return 0;
++}
++
++
++static int s3c6410_setrate_epll_clk_192m(struct clk *clk, unsigned long rate)
++{
++ writel(S3C_EPLL_EN|S3C_EPLLVAL(32,1,1), S3C_EPLL_CON0);
++ writel(0, S3C_EPLL_CON1);
++ mdelay(5);
++
++ return 0;
++}
++
++static unsigned long s3c6410_getrate_epll_clk_192m(struct clk *clk)
++{
++ s3c6410_setrate_epll_clk_192m(clk, 192000000);
++ clk->rate = 192000000;
++ return clk->rate;
++}
++
++
++static struct clk clk_epll_uart_192m = {
++ .name = "epll_clk_uart_192m",
++ .id = -1,
++ .parent = &clk_epll,
++ .enable = s3c6410_epll_clk_uart_enable,
++ .ctrlbit = S3C_CLKCON_SCLK_UART,
++ .set_rate = s3c6410_setrate_epll_clk_192m,
++ .get_rate = s3c6410_getrate_epll_clk_192m,
++};
++
++
++static unsigned long s3c6410_mpll_get_clk(struct clk *clk)
++{
++ unsigned long mpll_con;
++ unsigned long m = 0;
++ unsigned long p = 0;
++ unsigned long s = 0;
++ unsigned long ret;
++
++ mpll_con = readl(S3C_MPLL_CON);
++
++ m = (mpll_con >> 16) & 0x3ff;
++ p = (mpll_con >> 8) & 0x3f;
++ s = mpll_con & 0x3;
++
++ ret = (m * (12000000 / (p * (1 << s))));
++
++ return (((readl(S3C_CLK_DIV0) >> 13 ) & 0x1) ? (ret / 2) : ret);
++}
++
++static int s3c6410_clk_mpll_dout_enable(struct clk *clk, int enable)
++{
++ writel(readl(S3C_CLK_SRC) | (0x1 << 1), S3C_CLK_SRC);
++
++ return 0;
++}
++
++static int s3c6410_setrate_clk_mpll_dout(struct clk *clk, unsigned long rate)
++{
++ /* To get 266Mhz */
++ writel((readl(S3C_CLK_DIV0) & ~(0x1 << 4)) | (rate << 4) , S3C_CLK_DIV0);
++
++ return 0;
++}
++
++static unsigned long s3c6410_getrate_clk_mpll_dout(struct clk *clk)
++{
++ s3c6410_setrate_clk_mpll_dout(clk, 1);
++
++ return s3c6410_mpll_get_clk(clk);
++}
++
++static struct clk clk_mpll_dout = {
++ .name = "DOUTmpll",
++ .id = -1,
++ .parent = &clk_mpll,
++ .enable = s3c6410_clk_mpll_dout_enable,
++ .ctrlbit = 0,
++ .set_rate = s3c6410_setrate_clk_mpll_dout,
++ .get_rate = s3c6410_getrate_clk_mpll_dout,
++};
++
++static int s3c6410_clk_mpll_uart_enable(struct clk *clk, int enable)
++{
++ s3c6410_clkcon_enable_s(clk, enable);
++ writel(readl(S3C_CLK_SRC) | (0x1 << 13) | S3C_CLKSRC_EPLL_CLKSEL, S3C_CLK_SRC);
++
++ return 0;
++}
++
++static int s3c6410_setrate_clk_mpll_uart(struct clk *clk, unsigned long rate)
++{
++ writel(readl(S3C_CLK_DIV2) & ~(0xf << 16) , S3C_CLK_DIV2);
++
++ return 0;
++}
++
++static unsigned long s3c6410_getrate_clk_mpll_uart(struct clk *clk)
++{
++ s3c6410_setrate_clk_mpll_uart(clk, 0);
++
++ return s3c6410_mpll_get_clk(clk);
++}
++
++static struct clk clk_mpll_uart = {
++ .name = "mpll_clk_uart",
++ .id = -1,
++ .parent = &clk_mpll,
++ .enable = s3c6410_clk_mpll_uart_enable,
++ .ctrlbit = S3C_CLKCON_SCLK_UART,
++ .set_rate = s3c6410_setrate_clk_mpll_uart,
++ .get_rate = s3c6410_getrate_clk_mpll_uart,
++};
++
++
++/* For Camera interface */
++static struct clk clk_cam_h = {
++ .name = "camif-hclk",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_CAMIF,
++};
++
++#define CAMDIV_val 20
++
++static int s3c6410_setrate_camera(struct clk *clk, unsigned long rate)
++{
++ unsigned int camclk_div, val;
++ unsigned long src_clk = clk_get_rate(clk->parent);
++
++ if (rate == 4800000) {
++ printk(KERN_INFO "External camera clock is set to 48MHz\n");
++ }
++ else if (rate > 48000000) {
++ printk(KERN_ERR "Invalid camera clock\n");
++ }
++
++ camclk_div = src_clk / rate;
++ printk("Parent clock for Camera = %ld, CAMDIV = %d\n", src_clk, camclk_div);
++
++ val = readl(S3C_CLK_DIV0);
++ val &= ~(0xf<<CAMDIV_val);
++ writel(val, S3C_CLK_DIV0);
++
++ /* CAM CLK DIVider Ratio = (EPLL clk)/(camclk_div) */
++ val |= ((camclk_div -1 ) << CAMDIV_val);
++ writel(val, S3C_CLK_DIV0);
++ val = readl(S3C_CLK_DIV0);
++
++ return 0;
++}
++
++
++/* For HS-MMC controller */
++static unsigned long s3c6410_getrate_DOUTmpll_hsmmc_clk(struct clk *clk)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long div = readl(S3C_CLK_DIV1);
++ div &= ~S3C_CLKDIV1_HSMMCDIV_MASK;
++
++ /* MMC_RATIO = 2+1 */
++ div |= 0x2;
++
++ writel(div, S3C_CLK_DIV1);
++
++ return parent_rate / (0x2 + 1);
++}
++
++static unsigned long s3c6410_getrate_DOUTmpll_hsmmc1_clk(struct clk *clk)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long div = readl(S3C_CLK_DIV1);
++ div &= ~S3C_CLKDIV1_HSMMCDIV1_MASK;
++
++ /* MMC1_RATIO = 2+1 */
++ div |= (0x2<<S3C_CLKDIV1_HSMMCDIV1_SHIFT);
++
++ writel(div, S3C_CLK_DIV1);
++
++ return parent_rate / (0x2 + 1);
++}
++
++static struct clk clk_hsmmc_DOUTmpll_mmc0 = {
++ .name = "sclk_DOUTmpll_mmc0",
++ .id = -1,
++ .parent = &clk_mpll_dout,
++ .enable = s3c6410_clkcon_enable_s,
++ .ctrlbit = S3C_CLKCON_SCLK_MMC0,
++ .get_rate = s3c6410_getrate_DOUTmpll_hsmmc_clk,
++ .usage = 0,
++};
++
++static struct clk clk_hsmmc_DOUTmpll_mmc1 = {
++ .name = "sclk_DOUTmpll_mmc1",
++ .id = -1,
++ .parent = &clk_mpll_dout,
++ .enable = s3c6410_clkcon_enable_s,
++ .ctrlbit = S3C_CLKCON_SCLK_MMC1,
++ .get_rate = s3c6410_getrate_DOUTmpll_hsmmc1_clk,
++ .usage = 0,
++};
++
++static struct clk clk_hsmmc_DOUTmpll_mmc2 = {
++ .name = "sclk_DOUTmpll_mmc2",
++ .id = -1,
++ .parent = &clk_mpll_dout,
++ .enable = s3c6410_clkcon_enable_s,
++ .ctrlbit = S3C_CLKCON_SCLK_MMC2,
++ .get_rate = s3c6410_getrate_DOUTmpll_hsmmc_clk,
++ .usage = 0,
++};
++
++
++
++/* clocks to add straight away */
++
++static struct clk *clks[] __initdata = {
++ &clk_epll_uart_192m,
++ &clk_cam_h,
++ &clk_mpll_dout,
++ &clk_mpll_uart,
++ &clk_hsmmc_DOUTmpll_mmc0,
++ &clk_hsmmc_DOUTmpll_mmc1,
++ &clk_hsmmc_DOUTmpll_mmc2,
++};
++
++
++static struct clk init_clocks_disable[] = {
++ {
++ .name = "nand",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ //.ctrlbit = S3C_CLKCON_HCLK_NAND,
++ },
++ {
++ .name = "adc",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_TSADC,
++ },
++ {
++ .name = "i2c",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_IIC,
++ },
++ {
++ .name = "iis",
++ .id = 0,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_IIS0,
++ },
++ {
++ .name = "iis",
++ .id = 1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_IIS1,
++ },
++ {
++ .name = "spi",
++ .id = 0,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_SPI0,
++ },
++ {
++ .name = "spi",
++ .id = 1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_SPI1,
++ }
++};
++
++
++/* standard clock definitions */
++static struct clk init_clocks[] = {
++ /* AHB devices */
++ { .name = "dma 1",
++ .id = -1,
++ .parent = &clk_hd0,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_DMA1,
++ },
++ { .name = "dma 0",
++ .id = -1,
++ .parent = &clk_hd0,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_DMA0,
++ },
++ { .name = "lcd",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_LCD,
++ },
++ { .name = "TZIC",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_TZIC,
++ },
++ { .name = "INTC",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_INTC,
++ },
++ { .name = "usb-host",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_UHOST,
++ },
++ { .name = "otg",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_USB
++ },
++ { .name = "hsmmc0",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .get_rate = s3c6410_clk_getrate,
++ .ctrlbit = S3C_CLKCON_HCLK_HSMMC0
++ },
++ { .name = "hsmmc1",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .get_rate = s3c6410_clk_getrate,
++ .ctrlbit = S3C_CLKCON_HCLK_HSMMC1
++ },
++ { .name = "hsmmc2",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .get_rate = s3c6410_clk_getrate,
++ .ctrlbit = S3C_CLKCON_HCLK_HSMMC2
++ },
++ { .name = "hclk_mfc",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_MFC
++ },
++ { .name = "hclk_post0",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_POST0
++ },
++ { .name = "hclk_jpeg",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_JPEG
++ },
++ { .name = "tv_encoder",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_TV
++ },
++ { .name = "tv_scaler",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_SCALER
++ },
++
++ /* register to use HS-MMC clock */
++ { .name = "sclk_48m",
++ .id = -1,
++ .parent = &clk_48m,
++ .enable = s3c6410_clkcon_enable_others,
++ .ctrlbit = 1<<16, /* USB SIG Mask */
++ .usage = 0,
++ .rate = 48*1000*1000,
++ },
++ { .name = "sclk_48m_mmc0",
++ .id = -1,
++ .parent = &clk_s,
++ .enable = s3c6410_clkcon_enable_s,
++ .ctrlbit = S3C_CLKCON_SCLK_MMC0_48,
++ .usage = 0,
++ .rate = 48*1000*1000,
++ },
++ { .name = "sclk_48m_mmc1",
++ .id = -1,
++ .parent = &clk_s,
++ .enable = s3c6410_clkcon_enable_s,
++ .ctrlbit = S3C_CLKCON_SCLK_MMC1_48,
++ .usage = 0,
++ .rate = 48*1000*1000,
++ },
++ { .name = "sclk_48m_mmc2",
++ .id = -1,
++ .parent = &clk_s,
++ .enable = s3c6410_clkcon_enable_s,
++ .ctrlbit = S3C_CLKCON_SCLK_MMC2_48,
++ .usage = 0,
++ .rate = 48*1000*1000,
++ },
++ { .name = "sclk_mfc",
++ .id = -1,
++ .parent = &clk_s,
++ .enable = s3c6410_clkcon_enable_s,
++ .ctrlbit = S3C_CLKCON_SCLK_MFC,
++ .usage = 0,
++ .rate = 48*1000*1000,
++ },
++ { .name = "sclk_jpeg",
++ .id = -1,
++ .parent = &clk_s,
++ .enable = s3c6410_clkcon_enable_s,
++ .ctrlbit = S3C_CLKCON_SCLK_JPEG,
++ .usage = 0,
++ .rate = 48*1000*1000,
++ },
++ { .name = "cfata",
++ .id = -1,
++ .parent = &clk_h,
++ .enable = s3c6410_clkcon_enable_h,
++ .ctrlbit = S3C_CLKCON_HCLK_IHOST
++ },
++
++ /* APB Devices */
++ { .name = "RTC",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_RTC,
++ },
++ { .name = "GPIO",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_GPIO,
++ },
++ { .name = "UART2",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_UART2,
++ },
++ { .name = "UART1",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_UART1,
++ },
++ { .name = "UART0",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_UART0,
++ },
++ { .name = "timers",
++ .id = -1,
++ .parent = &clk_pd1,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_PWM,
++ },
++ { .name = "watchdog",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_WDT,
++ },
++ { .name = "i2c",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_IIC,
++ },
++ { .name = "spi0",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_SPI0,
++ },
++ { .name = "spi1",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_SPI1,
++ },
++ { .name = "adc",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_TSADC,
++ },
++ { .name = "pclk_mfc",
++ .id = -1,
++ .parent = &clk_p,
++ .enable = s3c6410_clkcon_enable_p,
++ .ctrlbit = S3C_CLKCON_PCLK_MFC,
++ },
++ {
++ .name = "camera",
++ .id = -1,
++ .parent = &clk_hx2,
++ .enable = s3c_clkcon_enable,
++ .ctrlbit = S3C_CLKCON_SCLK_CAM,
++ .set_rate = s3c6410_setrate_camera,
++ },
++};
++#endif
++
++#if 0
++static int s5pc100_clkcon_enable_pd1(struct clk *clk, int enable)
++{
++ unsigned int clocks = clk->ctrlbit;
++ unsigned long clkcon;
++
++ clkcon = __raw_readl(S3C_PCLK_GATE);
++
++ if (enable)
++ clkcon |= clocks;
++ else
++ clkcon &= ~clocks;
++
++ __raw_writel(clkcon, S3C_PCLK_GATE);
++
++ return 0;
++}
++#endif
++
++
++static struct clk init_clocks[] = {
++ { .name = "timers",
++ .id = -1,
++ .parent = &clk_pd1,
++// .enable = s5pc100_clkcon_enable_pd1,
++// .ctrlbit = S3C_CLKCON_PCLK_PWM,
++ },
++};
++
++void __init s5pc100_init_clocks(int xtal)
++{
++ unsigned long mout_apll, dout_apll, dout_arm;
++ unsigned long mout_mpll, dout_d1;
++ unsigned long armclk, hclkd0, pclkd0, hclkd0_secss;
++ unsigned long hclkd1, pclkd1;
++ unsigned long clk_div0, clk_div1;
++#if 0
++ unsigned long hclkx2;
++ unsigned long hclk;
++ unsigned long pclk;
++ unsigned long epll_clk;
++
++#endif
++ struct clk *clkp;
++ int ptr;
++ int ret;
++
++ clk_xtal.rate = xtal;
++
++ /* now we've got our machine bits initialised, work out what
++ * clocks we've got */
++
++ mout_apll = s5p_get_apll(__raw_readl(S5P_APLL_CON), xtal);
++
++ clk_div0 = __raw_readl(S5P_CLK_DIV0);
++
++ dout_apll = mout_apll / ((clk_div0 & S5P_CLKDIV0_APLL_MASK)+1);
++ dout_arm = dout_apll / (((clk_div0 & S5P_CLKDIV0_ARM_MASK)>>4)+1);
++
++ armclk = dout_arm;
++
++ hclkd0 = dout_arm / (((clk_div0 & S5P_CLKDIV0_D0_MASK)>>8)+1);
++ pclkd0 = hclkd0 / (((clk_div0 & S5P_CLKDIV0_PCLKD0_MASK)>>12)+1);
++ hclkd0_secss = hclkd0 / (((clk_div0 & S5P_CLKDIV0_SECSS_MASK)>>16)+1);
++
++ mout_mpll = s5p_get_mpll(__raw_readl(S5P_MPLL_CON), xtal);
++
++ clk_div1 = __raw_readl(S5P_CLK_DIV1);
++
++ dout_d1 = mout_mpll / (((clk_div1 & S5P_CLKDIV1_D1_MASK)>>12)+1);
++ hclkd1 = dout_d1;
++ pclkd1 = dout_d1 / (((clk_div1 & S5P_CLKDIV1_PCLKD1_MASK)>>16)+1);
++
++ printk("S5PC100: arm %ld.%03ld MHz, hclkd0 %ld.%03ld MHz, pclkd0 %ld.%03ld MHz, hclkd1 %ld.%03ld MHz, pclkd1 %ld.%03ld MHz\n",
++ print_mhz(armclk), print_mhz(hclkd0),print_mhz(pclkd0),print_mhz(hclkd1),print_mhz(pclkd1));
++
++ /* initialise the clocks here, to allow other things like the
++ * console to use them, and to add new ones after the initialisation
++ */
++
++ s5pc1xx_setup_clocks(xtal, armclk, hclkd0, pclkd0, hclkd1, pclkd1);
++
++ /* register clocks from clock array */
++ clkp = init_clocks;
++ for (ptr = 0; ptr < ARRAY_SIZE(init_clocks); ptr++, clkp++) {
++ ret = s5pc1xx_register_clock(clkp);
++ if (ret < 0) {
++ printk(KERN_ERR "S3C6410: Failed to register init_clocks : %s (%d)\n",
++ clkp->name, ret);
++ }
++
++ /* set clock rate to use in drivers */
++ if (!clkp->rate) {
++ if (clkp->parent) {
++ clkp->rate = clkp->parent->rate;
++ }
++ }
++
++ }
++#if 0
++ for (ptr = 0; ptr < ARRAY_SIZE(clks); ptr++) {
++ clkp = clks[ptr];
++
++ ret = s5pc1xx_register_clock(clkp);
++ if (ret < 0) {
++ printk(KERN_ERR "S3C6410: Failed to register clks : %s (%d)\n",
++ clkp->name, ret);
++ }
++ }
++
++
++ /* We must be careful disabling the clocks we are not intending to
++ * be using at boot time, as subsytems such as the LCD which do
++ * their own DMA requests to the bus can cause the system to lockup
++ * if they where in the middle of requesting bus access.
++ *
++ * Disabling the LCD clock if the LCD is active is very dangerous,
++ * and therefore the bootloader should be careful to not enable
++ * the LCD clock if it is not needed.
++ */
++
++ /* install (and disable) the clocks we do not need immediately */
++
++ clkp = init_clocks_disable;
++ for (ptr = 0; ptr < ARRAY_SIZE(init_clocks_disable); ptr++, clkp++) {
++
++ ret = s5pc1xx_register_clock(clkp);
++ if (ret < 0) {
++ printk(KERN_ERR "S3C6410: Failed to register init_clocks_disable: %s (%d)\n",
++ clkp->name, ret);
++ }
++
++ (clkp->enable)(clkp, 0);
++ }
++#endif
++}
++
++
++
+diff --git a/arch/arm/mach-s5pc100/irq.c b/arch/arm/mach-s5pc100/irq.c
+new file mode 100644
+index 0000000..136e050
+--- /dev/null
++++ b/arch/arm/mach-s5pc100/irq.c
+@@ -0,0 +1,48 @@
++/* linux/arch/arm/mach-s3c6410/irq.c
++ *
++ * Copyright (c) 2006 Simtec Electronics
++ * Ben Dooks <ben@simtec.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++*/
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/interrupt.h>
++#include <linux/ioport.h>
++#include <linux/ptrace.h>
++#include <linux/sysdev.h>
++
++#include <asm/plat-s3c24xx/cpu.h>
++#include <asm/plat-s3c24xx/pm.h>
++
++static int s5pc100_irq_add(struct sys_device *sysdev)
++{
++ return 0;
++}
++
++static struct sysdev_driver s5pc100_irq_driver = {
++ .add = s5pc100_irq_add,
++ .suspend = s3c24xx_irq_suspend,
++ .resume = s3c24xx_irq_resume,
++};
++
++static int s5pc100_irq_init(void)
++{
++ return sysdev_driver_register(&s5pc100_sysclass, &s5pc100_irq_driver);
++}
++
++arch_initcall(s5pc100_irq_init);
+diff --git a/arch/arm/mach-s5pc100/mach-smdkc100.c b/arch/arm/mach-s5pc100/mach-smdkc100.c
+new file mode 100644
+index 0000000..60cd807
+--- /dev/null
++++ b/arch/arm/mach-s5pc100/mach-smdkc100.c
+@@ -0,0 +1,205 @@
++/***********************************************************************
++ *
++ * linux/arch/arm/mach-s3c6410/smdk6410.c
++ *
++ * $Id: mach-smdkc100.c,v 1.5 2008/08/27 01:04:36 jsgood Exp $
++ *
++ * Copyright (C) 2005, Samsung Electronics <@samsung.com>
++ * All rights reserved
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ * MA 02111-1307 USA
++ *
++ *
++ ***********************************************************************/
++
++#include <linux/kernel.h>
++#include <linux/types.h>
++#include <linux/interrupt.h>
++#include <linux/list.h>
++#include <linux/timer.h>
++#include <linux/delay.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/partitions.h>
++
++#include <asm/setup.h>
++#include <asm/mach/arch.h>
++#include <asm/mach/map.h>
++#include <asm/mach/irq.h>
++#include <asm/mach/flash.h>
++
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/mach-types.h>
++
++#include <asm/plat-s3c/regs-serial.h>
++#include <asm/arch/regs-gpio.h>
++
++#include <asm/arch/regs-mem.h>
++#include <asm/arch/regs-s3c-clock.h>
++#include <asm/arch/regs-usb-otg-hs.h>
++#include <asm/plat-s3c/nand.h>
++
++#include <asm/plat-s5p/s5pc100.h>
++#include <asm/plat-s3c24xx/devs.h>
++#include <asm/plat-s3c24xx/cpu.h>
++#include <asm/arch/hsmmc.h>
++
++#include <asm/plat-s3c24xx/common-smdk.h>
++#include <asm/arch-s3c2410/reserved_mem.h>
++
++extern struct sys_timer s3c_timer;
++
++static struct map_desc smdkc100_iodesc[] __initdata = {
++// IODESC_ENT(CS8900),
++};
++
++#define DEF_UCON S3C_UCON_DEFAULT
++#define DEF_ULCON S3C_LCON_CS8 | S3C_LCON_PNONE
++#define DEF_UFCON S3C_UFCON_RXTRIG8 | S3C_UFCON_FIFOMODE
++
++static struct s3c24xx_uart_clksrc smdkc100_serial_clocks[] = {
++ [0] = {
++ .name = "pclkd1",
++ .divisor = 1,
++ .min_baud = 0,
++ .max_baud = 0,
++ },
++ [1] = {
++ .name = "pclkd0",
++ .divisor = 1,
++ .min_baud = 0,
++ .max_baud = 0,
++ }
++
++};
++
++static struct s3c2410_uartcfg smdkc100_uartcfgs[] = {
++ [0] = {
++ .hwport = 0,
++ .flags = 0,
++ .ucon = DEF_UCON,
++ .ulcon = DEF_ULCON,
++ .ufcon = DEF_UFCON,
++ .clocks = smdkc100_serial_clocks,
++ .clocks_size = ARRAY_SIZE(smdkc100_serial_clocks),
++ },
++ [1] = {
++ .hwport = 1,
++ .flags = 0,
++ .ucon = DEF_UCON,
++ .ulcon = DEF_ULCON,
++ .ufcon = DEF_UFCON,
++ .clocks = smdkc100_serial_clocks,
++ .clocks_size = ARRAY_SIZE(smdkc100_serial_clocks),
++ },
++ [2] = {
++ .hwport = 2,
++ .flags = 0,
++ .ucon = DEF_UCON,
++ .ulcon = DEF_ULCON,
++ .ufcon = DEF_UFCON,
++ .clocks = smdkc100_serial_clocks,
++ .clocks_size = ARRAY_SIZE(smdkc100_serial_clocks),
++ },
++ [3] = {
++ .hwport = 3,
++ .flags = 0,
++ .ucon = DEF_UCON,
++ .ulcon = DEF_ULCON,
++ .ufcon = DEF_UFCON,
++ .clocks = smdkc100_serial_clocks,
++ .clocks_size = ARRAY_SIZE(smdkc100_serial_clocks),
++ }
++
++};
++
++/*add devices as drivers are integrated*/
++static struct platform_device *smdkc100_devices[] __initdata = {
++#if 0
++ &s3c_device_rtc,
++ &s3c_device_ac97,
++ &s3c_device_iis,
++ &s3c_device_adc,
++ &s3c_device_i2c,
++ &s3c_device_usb,
++ &s3c_device_usbgadget,
++ &s3c_device_tvenc,
++ &s3c_device_tvscaler,
++ &s3c_device_hsmmc0,
++ &s3c_device_hsmmc1,
++ &s3c_device_hsmmc2,
++ &s3c_device_wdt,
++ &s3c_device_jpeg,
++ &s3c_device_vpp,
++ &s3c_device_ide,
++ &s3c_device_mfc,
++ &s3c_device_spi0,
++ &s3c_device_spi1,
++ &s3c_device_g2d,
++ &s3c_device_keypad,
++ &s3c_device_smc911x,
++ &s3c_device_camif,
++ &s3c_device_g3d,
++#endif
++};
++
++
++static void __init smdkc100_map_io(void)
++{
++ s3c24xx_init_io(smdkc100_iodesc, ARRAY_SIZE(smdkc100_iodesc));
++ s3c24xx_init_clocks(0);
++ s3c24xx_init_uarts(smdkc100_uartcfgs, ARRAY_SIZE(smdkc100_uartcfgs));
++}
++
++static void __init smdkc100_fixup (struct machine_desc *desc, struct tag *tags,
++ char **cmdline, struct meminfo *mi)
++{
++ /*
++ * Bank start addresses are not present in the information
++ * passed in from the boot loader. We could potentially
++ * detect them, but instead we hard-code them.
++ */
++ mi->bank[0].start = PHYS_OFFSET;
++
++ mi->bank[0].size = 128*1024*1024;
++
++ mi->bank[0].node = 0;
++
++ mi->nr_banks = 1;
++}
++
++static void __init smdkc100_machine_init (void)
++{
++ platform_add_devices(smdkc100_devices, ARRAY_SIZE(smdkc100_devices));
++ smdk_machine_init();
++}
++
++MACHINE_START(SMDKC100, "SMDKC100")
++ /* Maintainer: Samsung Electronics */
++ .phys_io = S3C24XX_PA_UART,
++ .io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
++ .boot_params = S5PC1XX_SDRAM_PA + 0x100,
++
++ .init_irq = s3c_init_irq,
++ .map_io = smdkc100_map_io,
++ .fixup = smdkc100_fixup,
++ .timer = &s3c_timer,
++ .init_machine = smdkc100_machine_init,
++MACHINE_END
++
+diff --git a/arch/arm/mach-s5pc100/s5pc100.c b/arch/arm/mach-s5pc100/s5pc100.c
+new file mode 100644
+index 0000000..d7c74cd
+--- /dev/null
++++ b/arch/arm/mach-s5pc100/s5pc100.c
+@@ -0,0 +1,141 @@
++
++/* linux/arch/arm/mach-s3c6410/s3c6410.c
++ *
++ * Copyright (c) 2006, Samsung Electronics
++ * All rights reserved.
++ *
++ * Samsung S3C6410 Mobile CPU support
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * derived from linux/arch/arm/mach-s3c2410/devs.c, written by
++ * Ben Dooks <ben@simtec.co.uk>
++ */
++
++#include <linux/kernel.h>
++#include <linux/types.h>
++#include <linux/interrupt.h>
++#include <linux/list.h>
++#include <linux/timer.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/sysdev.h>
++#include <linux/delay.h>
++#include <linux/proc_fs.h>
++#include <linux/clk.h>
++
++#include <asm/mach/arch.h>
++#include <asm/mach/map.h>
++#include <asm/mach/irq.h>
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/irq.h>
++
++#include <asm/proc-fns.h>
++#include <asm/arch/idle.h>
++
++#include <asm/arch/regs-s3c-clock.h>
++#include <asm/plat-s3c/regs-serial.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/map.h>
++#include <asm/plat-s3c/nand.h>
++
++#include <asm/plat-s3c64xx/s3c6410.h>
++#include <asm/plat-s3c24xx/devs.h>
++#include <asm/plat-s3c24xx/cpu.h>
++//#include "pm-s3c6400.h"
++
++/* Serial port registrations */
++
++static struct map_desc s5pc100_iodesc[] __initdata = {
++// IODESC_ENT(SROMC),
++// IODESC_ENT(TIMER),
++ IODESC_ENT(LCD),
++// IODESC_ENT(HOSTIFB),
++// IODESC_ENT(OTGSFR),
++// IODESC_ENT(OTG),
++};
++
++/* s5pc100_idle
++ *
++ * use the standard idle call by ensuring the idle mode
++ * in power config, then issuing the idle co-processor
++ * instruction
++*/
++
++static void s5pc100_idle(void)
++{
++#if 0
++ unsigned long tmp;
++
++ /* ensure our idle mode is to go to idle */
++
++ /* Set WFI instruction to SLEEP mode */
++
++ tmp = __raw_readl(S3C_PWR_CFG);
++ tmp &= ~(0x60<<0);
++ tmp |= (0x1<<5);
++ __raw_writel(tmp, S3C_PWR_CFG);
++
++ cpu_do_idle();
++#endif
++}
++
++
++void __init s5pc100_init_uarts(struct s3c2410_uartcfg *cfg, int no)
++{
++ s3c24xx_init_uartdevs("s3c-uart", s3c2410_uart_resources, cfg, no);
++}
++
++struct sysdev_class s5pc100_sysclass = {
++ set_kset_name("s5pc100-core"),
++};
++
++static struct sys_device s5pc100_sysdev = {
++ .cls = &s5pc100_sysclass,
++};
++
++
++static int __init s5pc100_core_init(void)
++{
++ return sysdev_class_register(&s5pc100_sysclass);
++}
++
++core_initcall(s5pc100_core_init);
++
++void __init s5pc100_map_io(struct map_desc *mach_desc, int size)
++{
++ /* register our io-tables */
++ iotable_init(s5pc100_iodesc, ARRAY_SIZE(s5pc100_iodesc));
++ iotable_init(mach_desc, size);
++
++ /* set our idle function */
++ s3c24xx_idle = s5pc100_idle;
++}
++
++int __init s5pc100_init(void)
++{
++ int ret;
++
++ printk("s5pc100: Initialising architecture\n");
++
++ ret = sysdev_register(&s5pc100_sysdev);
++
++ if (ret != 0)
++ printk(KERN_ERR "failed to register sysdev for s3c6410\n");
++
++ /* Rename devices that are specific to S3C6410 */
++
++#if defined (CONFIG_S3C_SIR)
++ s3c24xx_uart_src[3]->name = "s3c-irda";
++#endif
++#if 0
++ s3c_device_lcd.name = "s3c-lcd";
++ s3c_device_nand.name = "s3c-nand";
++#endif
++
++ return ret;
++}
++
+diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
+index 7868f4d..bd0f705 100644
+--- a/arch/arm/mm/Kconfig
++++ b/arch/arm/mm/Kconfig
+@@ -110,7 +110,7 @@ config CPU_ARM9TDMI
+ config CPU_ARM920T
+ bool "Support ARM920T processor"
+ depends on ARCH_EP93XX || ARCH_INTEGRATOR || CPU_S3C2410 || CPU_S3C2440 || CPU_S3C2442 || ARCH_IMX || ARCH_AAEC2000 || ARCH_AT91RM9200
+- default y if CPU_S3C2410 || CPU_S3C2440 || CPU_S3C2442 || ARCH_AT91RM9200
++ default y if CPU_S3C2410 || CPU_S3C2440 || CPU_S3C2442 || ARCH_AT91RM9200 || CPU_S3C2443
+ select CPU_32v4T
+ select CPU_ABRT_EV4T
+ select CPU_CACHE_V4WT
+@@ -171,8 +171,8 @@ config CPU_ARM925T
+ # ARM926T
+ config CPU_ARM926T
+ bool "Support ARM926T processor"
+- depends on ARCH_INTEGRATOR || ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX || MACH_REALVIEW_EB || ARCH_PNX4008 || ARCH_NETX || CPU_S3C2412 || ARCH_AT91SAM9260 || ARCH_AT91SAM9261 || ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || ARCH_NS9XXX || ARCH_DAVINCI
+- default y if ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX || ARCH_PNX4008 || ARCH_NETX || CPU_S3C2412 || ARCH_AT91SAM9260 || ARCH_AT91SAM9261 || ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || ARCH_NS9XXX || ARCH_DAVINCI
++ depends on ARCH_INTEGRATOR || ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX || MACH_REALVIEW_EB || ARCH_PNX4008 || ARCH_NETX || CPU_S3C2412 || ARCH_AT91SAM9260 || ARCH_AT91SAM9261 || ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || ARCH_NS9XXX || ARCH_DAVINCI || CPU_S3C2450 || CPU_S3C2416
++ default y if ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX || ARCH_PNX4008 || ARCH_NETX || CPU_S3C2412 || ARCH_AT91SAM9260 || ARCH_AT91SAM9261 || ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || ARCH_NS9XXX || ARCH_DAVINCI || CPU_S3C2450 || CPU_S3C2416
+ select CPU_32v5
+ select CPU_ABRT_EV5TJ
+ select CPU_CACHE_VIVT
+@@ -345,8 +345,8 @@ config CPU_XSC3
+ # ARMv6
+ config CPU_V6
+ bool "Support ARM V6 processor"
+- depends on ARCH_INTEGRATOR || MACH_REALVIEW_EB || ARCH_OMAP2 || ARCH_MX3
+- default y if ARCH_MX3
++ depends on ARCH_INTEGRATOR || MACH_REALVIEW_EB || ARCH_OMAP2 || ARCH_MX3 || CPU_S3C6400 || CPU_S3C6410
++ default y if ARCH_MX3 || CPU_S3C6400 || CPU_S3C6410
+ select CPU_32v6
+ select CPU_ABRT_EV6
+ select CPU_CACHE_V6
+@@ -371,7 +371,8 @@ config CPU_32v6K
+ # ARMv7
+ config CPU_V7
+ bool "Support ARM V7 processor"
+- depends on ARCH_INTEGRATOR
++ depends on ARCH_INTEGRATOR || CPU_S5PC100
++ default y if CPU_S5PC100
+ select CPU_32v6K
+ select CPU_32v7
+ select CPU_ABRT_EV7
+diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
+index a8a7dab..05bc917 100644
+--- a/arch/arm/mm/fault.c
++++ b/arch/arm/mm/fault.c
+@@ -361,6 +361,13 @@ do_sect_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
+ return 0;
+ }
+
++/* When an MMU exception happens, just do skip. */
++static int
++do_bad_skip(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
++{
++ return 0;
++}
++
+ /*
+ * This abort handler always returns "fault".
+ */
+@@ -386,7 +393,7 @@ static struct fsr_info {
+ { do_bad, SIGILL, BUS_ADRALN, "alignment exception" },
+ { do_bad, SIGBUS, 0, "external abort on linefetch" },
+ { do_translation_fault, SIGSEGV, SEGV_MAPERR, "section translation fault" },
+- { do_bad, SIGBUS, 0, "external abort on linefetch" },
++ { do_bad_skip, SIGBUS, 0, "external abort on linefetch" },
+ { do_page_fault, SIGSEGV, SEGV_MAPERR, "page translation fault" },
+ { do_bad, SIGBUS, 0, "external abort on non-linefetch" },
+ { do_bad, SIGSEGV, SEGV_ACCERR, "section domain fault" },
+diff --git a/arch/arm/plat-s3c/Kconfig b/arch/arm/plat-s3c/Kconfig
+index 31656c3..a1e728e 100644
+--- a/arch/arm/plat-s3c/Kconfig
++++ b/arch/arm/plat-s3c/Kconfig
+@@ -102,3 +102,15 @@ config S3C_LOWLEVEL_UART_PORT
+ such as the `Uncompressing...` at start time. The value of
+ this configuration should be between zero and two. The port
+ must have been initialised by the boot-loader before use.
++
++config SPLIT_ROOT_FILESYSTEM
++ bool "S3C MTD has 4 partitions"
++ depends on ARCH_S3C2410 && MTD
++ help
++ Testing now
++
++config MACH_SMDK
++ bool "S3C MACHINE SMDK"
++ depends on ARCH_S3C2410
++ help
++ Common machine code for SMDK2410 and SMDK2440
+diff --git a/arch/arm/plat-s3c24xx/Kconfig b/arch/arm/plat-s3c24xx/Kconfig
+index b66fb3c..779e6e6 100644
+--- a/arch/arm/plat-s3c24xx/Kconfig
++++ b/arch/arm/plat-s3c24xx/Kconfig
+@@ -6,14 +6,13 @@
+
+ config PLAT_S3C24XX
+ bool
+- depends on ARCH_S3C2410
++ depends on ARCH_S3C2410 && (CPU_S3C2443 || CPU_S3C2450 || CPU_S3C2416)
+ default y if ARCH_S3C2410
+ select NO_IOPORT
+ help
+ Base platform code for any Samsung S3C24XX device
+
+ if PLAT_S3C24XX
+-
+ config CPU_S3C244X
+ bool
+ depends on ARCH_S3C2410 && (CPU_S3C2440 || CPU_S3C2442)
+@@ -41,9 +40,13 @@ config S3C2410_DMA_DEBUG
+ Enable debugging output for the DMA code. This option sends info
+ to the kernel log, at priority KERN_DEBUG.
+
+-config MACH_SMDK
+- bool
+- help
+- Common machine code for SMDK2410 and SMDK2440
++config S3C24XX_ADC
++ bool "S3C24XX ADC Driver"
++ depends on CPU_S3C2443 || CPU_S3C2450 || CPU_S3C2416
++ help
++ ADC (A/D Conversion) driver for Samsung S3C2443/2450.
+
+ endif
++
++
++
+diff --git a/arch/arm/plat-s3c24xx/Makefile b/arch/arm/plat-s3c24xx/Makefile
+index 8e5ccaa..6d76ea7 100644
+--- a/arch/arm/plat-s3c24xx/Makefile
++++ b/arch/arm/plat-s3c24xx/Makefile
+@@ -13,10 +13,10 @@ obj- :=
+ # Core files
+
+ obj-y += cpu.o
+-obj-y += irq.o
++obj-$(CONFIG_PLAT_S3C24XX) += irq.o
+ obj-y += devs.o
+ obj-y += gpio.o
+-obj-y += time.o
++obj-$(CONFIG_PLAT_S3C24XX) += time.o
+ obj-y += clock.o
+
+ # Architecture dependant builds
+@@ -28,3 +28,5 @@ obj-$(CONFIG_PM) += pm.o
+ obj-$(CONFIG_PM) += sleep.o
+ obj-$(CONFIG_S3C2410_DMA) += dma.o
+ obj-$(CONFIG_MACH_SMDK) += common-smdk.o
++obj-$(CONFIG_S3C24XX_ADC) += adc-s3c24xx.o
++obj-$(CONFIG_S3C24XX_DVFS) += s3c24xx-dvfs.o
+diff --git a/arch/arm/plat-s3c24xx/adc-s3c24xx.c b/arch/arm/plat-s3c24xx/adc-s3c24xx.c
+new file mode 100644
+index 0000000..21646f5
+--- /dev/null
++++ b/arch/arm/plat-s3c24xx/adc-s3c24xx.c
+@@ -0,0 +1,314 @@
++/*
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ * Copyright (c) 2004 Arnaud Patard <arnaud.patard@rtp-net.org>
++ * iPAQ H1940 touchscreen support
++ *
++ * ChangeLog
++ *
++ * 2004-09-05: Herbert Pötzl <herbert@13thfloor.at>
++ * - added clock (de-)allocation code
++ *
++ * 2005-03-06: Arnaud Patard <arnaud.patard@rtp-net.org>
++ * - h1940_ -> s3c24xx (this driver is now also used on the n30
++ * machines :P)
++ * - Debug messages are now enabled with the config option
++ * TOUCHSCREEN_S3C_DEBUG
++ * - Changed the way the value are read
++ * - Input subsystem should now work
++ * - Use ioremap and readl/writel
++ *
++ * 2005-03-23: Arnaud Patard <arnaud.patard@rtp-net.org>
++ * - Make use of some undocumented features of the touchscreen
++ * controller
++ *
++ */
++
++
++#include <linux/errno.h>
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/slab.h>
++#include <linux/input.h>
++#include <linux/init.h>
++#include <linux/serio.h>
++#include <linux/delay.h>
++#include <linux/platform_device.h>
++#include <linux/miscdevice.h>
++#include <linux/clk.h>
++#include <linux/mutex.h>
++
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/hardware.h>
++#include <asm/uaccess.h>
++
++#include <asm/plat-s3c/regs-adc.h>
++#include <asm/arch/irqs.h>
++
++
++#define ADC_MINOR 131
++#define ADC_INPUT_PIN _IOW('S', 0x0c, unsigned long)
++
++#undef ADC_WITH_TOUCHSCREEN
++
++struct s3c_adc_mach_info {
++ int delay;
++ int presc;
++ int resol_bit;
++};
++
++
++/* ADC default configuration */
++struct s3c_adc_mach_info s3c_adc_cfg __initdata = {
++ .delay = 10000,
++ .presc = 49,
++#if defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ .resol_bit = 12,
++#else
++ .resol_bit = 10,
++#endif
++};
++
++
++static struct clk *adc_clock;
++static void __iomem *base_addr;
++static int adc_port = 0;
++
++#ifdef ADC_WITH_TOUCHSCREEN
++static DEFINE_MUTEX(adc_mutex);
++
++static unsigned long data_for_ADCCON;
++static unsigned long data_for_ADCTSC;
++
++static void s3c_adc_save_SFR_on_ADC(void) {
++
++ data_for_ADCCON = readl(base_addr+S3C2410_ADCCON);
++ data_for_ADCTSC = readl(base_addr+S3C2410_ADCTSC);
++}
++
++static void s3c_adc_restore_SFR_on_ADC(void) {
++
++ writel(data_for_ADCCON, base_addr+S3C2410_ADCCON);
++ writel(data_for_ADCTSC, base_addr+S3C2410_ADCTSC);
++}
++#endif
++
++static int s3c_adc_open(struct inode *inode, struct file *file)
++{
++ printk(KERN_INFO " s3c_adc_open() entered\n");
++ return 0;
++}
++
++static ssize_t
++s3c_adc_read(struct file *file, char __user * buffer,
++ size_t size, loff_t * pos)
++{
++ unsigned long data0;
++ unsigned long data1;
++ int adc_value = 0;
++
++ printk(KERN_INFO " s3c_adc_read() entered\n");
++
++#ifdef ADC_WITH_TOUCHSCREEN
++ mutex_lock(&adc_mutex);
++ s3c_adc_save_SFR_on_ADC();
++#endif
++
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450)
++ writel(S3C2443_ADCCON_SELMUX(adc_port), base_addr+S3C2443_ADCMUX);
++#else
++ writel(readl(base_addr+S3C2410_ADCCON)|S3C2410_ADCCON_SELMUX(adc_port), base_addr+S3C2410_ADCCON);
++#endif
++
++ udelay(10);
++
++ writel(readl(base_addr+S3C2410_ADCCON)|S3C2410_ADCCON_ENABLE_START, base_addr+S3C2410_ADCCON);
++
++ do {
++ data0 = readl(base_addr+S3C2410_ADCCON);
++ } while(!(data0 & S3C2410_ADCCON_ECFLG));
++
++ data1 = readl(base_addr+S3C2410_ADCDAT0);
++
++#if defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ adc_value = data1 & S3C_ADCDAT0_XPDATA_MASK_12BIT;
++#else
++ adc_value = data1 & S3C2410_ADCDAT0_XPDATA_MASK;
++#endif
++
++#ifdef ADC_WITH_TOUCHSCREEN
++ s3c_adc_restore_SFR_on_ADC();
++ mutex_unlock(&adc_mutex);
++#endif
++
++ printk(KERN_INFO " Converted Value: %03d\n", adc_value);
++
++ if (copy_to_user(buffer, &adc_value, sizeof(unsigned int))) {
++ return -EFAULT;
++ }
++ return sizeof(unsigned int);
++}
++
++
++static int s3c_adc_ioctl(struct inode *inode, struct file *file,
++ unsigned int cmd, unsigned long arg)
++{
++
++ printk(KERN_INFO " s3c_adc_ioctl(cmd:: %d) entered\n", cmd);
++
++ switch (cmd) {
++
++ case ADC_INPUT_PIN:
++ adc_port = (unsigned int) arg;
++
++ if (adc_port >= 4)
++ printk(" %d is already reserved for TouchScreen\n", adc_port);
++ return 0;
++
++ default:
++ return -ENOIOCTLCMD;
++
++ }
++}
++
++static struct file_operations s3c_adc_fops = {
++ .owner = THIS_MODULE,
++ .read = s3c_adc_read,
++ .open = s3c_adc_open,
++ .ioctl = s3c_adc_ioctl,
++};
++
++static struct miscdevice s3c_adc_miscdev = {
++ .minor = ADC_MINOR,
++ .name = "adc",
++ .fops = &s3c_adc_fops,
++};
++
++
++/*
++ * The functions for inserting/removing us as a module.
++ */
++
++static int __init s3c_adc_probe(struct platform_device *pdev)
++{
++ int ret;
++
++ adc_clock = clk_get(NULL, "adc");
++ if (!adc_clock) {
++ printk(KERN_ERR "failed to get adc clock source\n");
++ return -ENOENT;
++ }
++ clk_enable(adc_clock);
++
++ base_addr=ioremap(S3C24XX_PA_ADC, 0x20);
++
++ if (base_addr == NULL) {
++ printk(KERN_ERR "Failed to remap register block\n");
++ return -ENOMEM;
++ }
++
++ if ((s3c_adc_cfg.presc&0xff) > 0)
++ writel(S3C2410_ADCCON_PRSCEN | S3C2410_ADCCON_PRSCVL(s3c_adc_cfg.presc&0xFF), base_addr+S3C2410_ADCCON);
++ else
++ writel(0, base_addr+S3C2410_ADCCON);
++
++
++ /* Initialise registers */
++ if ((s3c_adc_cfg.delay&0xffff) > 0)
++ writel(s3c_adc_cfg.delay & 0xffff, base_addr+S3C2410_ADCDLY);
++
++ if (s3c_adc_cfg.resol_bit == 12) {
++ writel(readl(base_addr+S3C2410_ADCCON)|S3C2450_ADCCON_RESSEL_12BIT, base_addr+S3C2410_ADCCON);
++ }
++
++ ret = misc_register(&s3c_adc_miscdev);
++ if (ret) {
++ printk (KERN_ERR "cannot register miscdev on minor=%d (%d)\n",
++ ADC_MINOR, ret);
++ return ret;
++ }
++
++ printk(KERN_INFO "S3C24XX ADC driver successfully probed !\n");
++
++ return 0;
++}
++
++
++static int s3c_adc_remove(struct platform_device *dev)
++{
++ printk(KERN_INFO "s3c_adc_remove() of TS called !\n");
++ return 0;
++}
++
++#ifdef CONFIG_PM
++static unsigned int adccon, adctsc, adcdly;
++
++static int s3c_adc_suspend(struct platform_device *dev, pm_message_t state)
++{
++ adccon = readl(base_addr+S3C2410_ADCCON);
++ adctsc = readl(base_addr+S3C2410_ADCTSC);
++ adcdly = readl(base_addr+S3C2410_ADCDLY);
++
++ clk_disable(adc_clock);
++
++ return 0;
++}
++
++static int s3c_adc_resume(struct platform_device *pdev)
++{
++ clk_enable(adc_clock);
++
++ writel(adccon, base_addr+S3C2410_ADCCON);
++ writel(adctsc, base_addr+S3C2410_ADCTSC);
++ writel(adcdly, base_addr+S3C2410_ADCDLY);
++
++ return 0;
++}
++#else
++#define s3c_adc_suspend NULL
++#define s3c_adc_resume NULL
++#endif
++
++static struct platform_driver s3c_adc_driver = {
++ .probe = s3c_adc_probe,
++ .remove = s3c_adc_remove,
++ .suspend = s3c_adc_suspend,
++ .resume = s3c_adc_resume,
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "s3c-adc",
++ },
++};
++
++static char banner[] __initdata = KERN_INFO "S3C24XX ADC driver, (c) 2007 Samsung Electronics\n";
++
++int __init s3c_adc_init(void)
++{
++ printk(banner);
++ return platform_driver_register(&s3c_adc_driver);
++}
++
++void __exit s3c_adc_exit(void)
++{
++ platform_driver_unregister(&s3c_adc_driver);
++}
++
++module_init(s3c_adc_init);
++module_exit(s3c_adc_exit);
++
++MODULE_AUTHOR("alinuxguy@samsung.com>");
++MODULE_DESCRIPTION("S3C24XX adc driver");
++MODULE_LICENSE("GPL");
+diff --git a/arch/arm/plat-s3c24xx/clock.c b/arch/arm/plat-s3c24xx/clock.c
+index 79cda0f..4c7145b 100644
+--- a/arch/arm/plat-s3c24xx/clock.c
++++ b/arch/arm/plat-s3c24xx/clock.c
+@@ -233,6 +233,7 @@ struct clk clk_upll = {
+ .ctrlbit = 0,
+ };
+
++
+ struct clk clk_f = {
+ .name = "fclk",
+ .id = -1,
+@@ -264,6 +265,7 @@ struct clk clk_usb_bus = {
+ .parent = &clk_upll,
+ };
+
++
+ /* clocks that could be registered by external code */
+
+ static int s3c24xx_dclk_enable(struct clk *clk, int enable)
+@@ -428,6 +430,7 @@ int __init s3c24xx_setup_clocks(unsigned long xtal,
+ /* initialise the main system clocks */
+
+ clk_xtal.rate = xtal;
++
+ clk_upll.rate = s3c2410_get_pll(__raw_readl(S3C2410_UPLLCON), xtal);
+
+ clk_mpll.rate = fclk;
+diff --git a/arch/arm/plat-s3c24xx/common-smdk.c b/arch/arm/plat-s3c24xx/common-smdk.c
+index 398c7ac..ac7a428 100644
+--- a/arch/arm/plat-s3c24xx/common-smdk.c
++++ b/arch/arm/plat-s3c24xx/common-smdk.c
+@@ -44,6 +44,8 @@
+ #include <asm/plat-s3c24xx/devs.h>
+ #include <asm/plat-s3c24xx/pm.h>
+
++#include <asm/mach/flash.h>
++
+ /* LED devices */
+
+ static struct s3c24xx_led_platdata smdk_pdata_led4 = {
+@@ -105,7 +107,7 @@ static struct platform_device smdk_led7 = {
+ };
+
+ /* NAND parititon from 2.4.18-swl5 */
+-
++#if defined(CONFIG_MTD_NAND_S3C2410)
+ static struct mtd_partition smdk_default_nand_part[] = {
+ [0] = {
+ .name = "Boot Agent",
+@@ -161,7 +163,6 @@ static struct s3c2410_nand_set smdk_nand_sets[] = {
+ /* choose a set of timings which should suit most 512Mbit
+ * chips and beyond.
+ */
+-
+ static struct s3c2410_platform_nand smdk_nand_info = {
+ .tacls = 20,
+ .twrph0 = 60,
+@@ -170,10 +171,60 @@ static struct s3c2410_platform_nand smdk_nand_info = {
+ .sets = smdk_nand_sets,
+ };
+
+-/* devices we initialise */
++/* ----------------S3C NAND partition information ---------------------*/
++#else /* CONFIG_MTD_NAND_S3C */
++struct mtd_partition s3c_partition_info[] = {
++ {
++ .name = "Bootloader",
++ .offset = 0,
++ .size = (256*SZ_1K),
++ .mask_flags = MTD_CAP_NANDFLASH,
++ },
++ {
++ .name = "Kernel",
++ .offset = (256*SZ_1K), /* Block number is 0x10 */
++ .size = (4*SZ_1M) - (256*SZ_1K),
++ .mask_flags = MTD_CAP_NANDFLASH,
++ },
++#if defined(CONFIG_SPLIT_ROOT_FILESYSTEM)
++ {
++ .name = "Root - Cramfs",
++ .offset = (4*SZ_1M), /* Block number is 0x80 */
++ .size = (48*SZ_1M),
++ },
++#endif
++ {
++ .name = "File System",
++ .offset = MTDPART_OFS_APPEND,
++ .size = MTDPART_SIZ_FULL,
++ }
++};
++
++struct s3c_nand_mtd_info s3c_nand_mtd_part_info = {
++ .chip_nr = 1,
++ .mtd_part_nr = ARRAY_SIZE(s3c_partition_info),
++ .partition = s3c_partition_info,
++};
++
++struct s3c_nand_mtd_info * get_board_nand_mtd_info (void)
++{
++ return &s3c_nand_mtd_part_info;
++}
++#endif
++
++struct flash_platform_data s3c_onenand_data = {
++ .parts = s3c_partition_info,
++ .nr_parts = ARRAY_SIZE(s3c_partition_info),
++};
++
++
++/* ---------------------------------------------------------------------*/
+
++/* devices we initialise */
+ static struct platform_device __initdata *smdk_devs[] = {
+ &s3c_device_nand,
++ &s3c_device_onenand,
++ &s3c_device_lcd,
+ &smdk_led4,
+ &smdk_led5,
+ &smdk_led6,
+@@ -183,7 +234,6 @@ static struct platform_device __initdata *smdk_devs[] = {
+ void __init smdk_machine_init(void)
+ {
+ /* Configure the LEDs (even if we have no LED support)*/
+-
+ s3c2410_gpio_cfgpin(S3C2410_GPF4, S3C2410_GPF4_OUTP);
+ s3c2410_gpio_cfgpin(S3C2410_GPF5, S3C2410_GPF5_OUTP);
+ s3c2410_gpio_cfgpin(S3C2410_GPF6, S3C2410_GPF6_OUTP);
+@@ -194,11 +244,20 @@ void __init smdk_machine_init(void)
+ s3c2410_gpio_setpin(S3C2410_GPF6, 1);
+ s3c2410_gpio_setpin(S3C2410_GPF7, 1);
+
++#if !defined(CONFIG_MTD_ONENAND)
++#if defined(CONFIG_MTD_NAND_S3C)
++ /* For s3c nand partition */
++ s3c_device_nand.dev.platform_data = &s3c_nand_mtd_part_info;
++
++#elif defined(CONFIG_MTD_NAND_S3C2410)
+ if (machine_is_smdk2443())
+ smdk_nand_info.twrph0 = 50;
+
+ s3c_device_nand.dev.platform_data = &smdk_nand_info;
+-
++#else
++ /* No MTD NAND device */
++#endif
++#endif
+ platform_add_devices(smdk_devs, ARRAY_SIZE(smdk_devs));
+
+ s3c2410_pm_init();
+diff --git a/arch/arm/plat-s3c24xx/cpu.c b/arch/arm/plat-s3c24xx/cpu.c
+index f513ab0..44ad1af 100644
+--- a/arch/arm/plat-s3c24xx/cpu.c
++++ b/arch/arm/plat-s3c24xx/cpu.c
+@@ -4,7 +4,7 @@
+ * http://www.simtec.co.uk/products/SWLINUX/
+ * Ben Dooks <ben@simtec.co.uk>
+ *
+- * S3C24XX CPU Support
++ * S3C24XX/S3C64XX CPU Support
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+@@ -50,6 +50,11 @@
+ #include <asm/plat-s3c24xx/s3c2440.h>
+ #include <asm/plat-s3c24xx/s3c2442.h>
+ #include <asm/plat-s3c24xx/s3c2443.h>
++#include <asm/plat-s3c24xx/s3c2450.h>
++#include <asm/plat-s3c24xx/s3c2416.h>
++#include <asm/plat-s3c64xx/s3c6400.h>
++#include <asm/plat-s3c64xx/s3c6410.h>
++#include <asm/plat-s5p/s5pc100.h>
+
+ struct cpu_table {
+ unsigned long idcode;
+@@ -69,8 +74,13 @@ static const char name_s3c2412[] = "S3C2412";
+ static const char name_s3c2440[] = "S3C2440";
+ static const char name_s3c2442[] = "S3C2442";
+ static const char name_s3c2443[] = "S3C2443";
++static const char name_s3c2450[] = "S3C2450";
++static const char name_s3c2416[] = "S3C2416";
+ static const char name_s3c2410a[] = "S3C2410A";
+ static const char name_s3c2440a[] = "S3C2440A";
++static const char name_s3c6400[] = "S3C6400";
++static const char name_s3c6410[] = "S3C6410";
++static const char name_s5pc100[] = "S5PC100";
+
+ static struct cpu_table cpu_ids[] __initdata = {
+ {
+@@ -145,8 +155,29 @@ static struct cpu_table cpu_ids[] __initdata = {
+ .init = s3c2443_init,
+ .name = name_s3c2443,
+ },
++#if defined(CONFIG_CPU_S3C2416)
++ { /* same with s3c2450 */
++ .idcode = 0x32450001,
++ .idmask = 0xffffffff,
++ .map_io = s3c2416_map_io,
++ .init_clocks = s3c2416_init_clocks,
++ .init_uarts = s3c2416_init_uarts,
++ .init = s3c2416_init,
++ .name = name_s3c2416,
++ },
++#elif defined(CONFIG_CPU_S3C2450)
++ { /* almost same as s3c2443 */
++ .idcode = 0x32450000,
++ .idmask = 0xfffffff0,
++ .map_io = s3c2450_map_io,
++ .init_clocks = s3c2450_init_clocks,
++ .init_uarts = s3c2450_init_uarts,
++ .init = s3c2450_init,
++ .name = name_s3c2450,
++ },
++#endif
+ {
+- .idcode = 0x0, /* S3C2400 doesn't have an idcode */
++ .idcode = 0x0, /* S3C2400 doesn't have an idcode */
+ .idmask = 0xffffffff,
+ .map_io = s3c2400_map_io,
+ .init_clocks = s3c2400_init_clocks,
+@@ -154,6 +185,33 @@ static struct cpu_table cpu_ids[] __initdata = {
+ .init = s3c2400_init,
+ .name = name_s3c2400
+ },
++ {
++ .idcode = 0x36400100,
++ .idmask = 0xffffffff,
++ .map_io = s3c6400_map_io,
++ .init_clocks = s3c6400_init_clocks,
++ .init_uarts = s3c6400_init_uarts,
++ .init = s3c6400_init,
++ .name = name_s3c6400
++ },
++ {
++ .idcode = 0x36410100,
++ .idmask = 0xfffffff0,
++ .map_io = s3c6410_map_io,
++ .init_clocks = s3c6410_init_clocks,
++ .init_uarts = s3c6410_init_uarts,
++ .init = s3c6410_init,
++ .name = name_s3c6410
++ },
++ {
++ .idcode = 0x43100000,
++ .idmask = 0xfffffff0,
++ .map_io = s5pc100_map_io,
++ .init_clocks = s5pc100_init_clocks,
++ .init_uarts = s5pc100_init_uarts,
++ .init = s5pc100_init,
++ .name = name_s5pc100
++ },
+ };
+
+ /* minimal IO mapping */
+@@ -161,8 +219,22 @@ static struct cpu_table cpu_ids[] __initdata = {
+ static struct map_desc s3c_iodesc[] __initdata = {
+ IODESC_ENT(GPIO),
+ IODESC_ENT(IRQ),
++ IODESC_ENT(UART),
++
++#if !defined(CONFIG_PLAT_S3C64XX) && !defined(CONFIG_PLAT_S5PC1XX)
+ IODESC_ENT(MEMCTRL),
+- IODESC_ENT(UART)
++#else
++ IODESC_ENT(DMC0),
++#if !defined(CONFIG_PLAT_S5PC1XX)
++ IODESC_ENT(DMC1),
++#endif
++ IODESC_ENT(SYSCON),
++#endif
++
++#if defined(CONFIG_PLAT_S5PC1XX)
++ IODESC_ENT(CHIP_ID),
++ IODESC_ENT(TIMER),
++#endif
+ };
+
+
+@@ -185,10 +257,13 @@ s3c_lookup_cpu(unsigned long idcode)
+
+ static struct cpu_table *cpu;
+
++
+ static unsigned long s3c24xx_read_idcode_v5(void)
+ {
+ #if defined(CONFIG_CPU_S3C2412) || defined(CONFIG_CPU_S3C2413)
+ return __raw_readl(S3C2412_GSTATUS1);
++#elif defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ return __raw_readl(S3C2410_GSTATUS1);
+ #else
+ return 1UL; /* don't look like an 2400 */
+ #endif
+@@ -203,19 +278,41 @@ static unsigned long s3c24xx_read_idcode_v4(void)
+ #endif
+ }
+
++
++/* For S3C6400 EVT1/S3C6410 */
++static unsigned long s3c64xx_read_idcode_v6(void)
++{
++ return __raw_readl(S3C24XX_VA_SYSCON+0x118);
++}
++
++/* For S5PC100 */
++static unsigned long s5pc1xx_read_idcode_v7(void)
++{
++ return (__raw_readl(S3C24XX_VA_CHIP_ID));
++}
++
+ void __init s3c24xx_init_io(struct map_desc *mach_desc, int size)
+ {
+ unsigned long idcode = 0x0;
+
+ /* initialise the io descriptors we need for initialisation */
+ iotable_init(s3c_iodesc, ARRAY_SIZE(s3c_iodesc));
+-
+- if (cpu_architecture() >= CPU_ARCH_ARMv5) {
++ if (cpu_architecture() >= CPU_ARCH_ARMv6) {
++#if defined(CONFIG_PLAT_S5PC1XX)
++ idcode = s5pc1xx_read_idcode_v7();
++#else
++ idcode = s3c64xx_read_idcode_v6();
++#endif
++ } else if (cpu_architecture() >= CPU_ARCH_ARMv5) {
+ idcode = s3c24xx_read_idcode_v5();
+- } else {
++ } else if (cpu_architecture() >= CPU_ARCH_ARMv4) {
+ idcode = s3c24xx_read_idcode_v4();
++ } else {
++ panic("Unknown CPU Architecture");
++ idcode = 1UL; /* Unknown and error */
+ }
+
++
+ cpu = s3c_lookup_cpu(idcode);
+
+ if (cpu == NULL) {
+@@ -260,7 +357,7 @@ void __init s3c24xx_init_clocks(int xtal)
+
+ static int nr_uarts __initdata = 0;
+
+-static struct s3c2410_uartcfg uart_cfgs[3];
++static struct s3c2410_uartcfg uart_cfgs[4];
+
+ /* s3c24xx_init_uartdevs
+ *
+diff --git a/arch/arm/plat-s3c24xx/devs.c b/arch/arm/plat-s3c24xx/devs.c
+index e546e93..10007c8 100644
+--- a/arch/arm/plat-s3c24xx/devs.c
++++ b/arch/arm/plat-s3c24xx/devs.c
+@@ -32,50 +32,107 @@
+ #include <asm/plat-s3c24xx/udc.h>
+
+ #include <asm/plat-s3c24xx/devs.h>
++#include <asm/plat-s3c24xx/common-smdk.h>
+ #include <asm/plat-s3c24xx/cpu.h>
+ #include <asm/plat-s3c24xx/regs-spi.h>
+
++/****************************************************************************
++ * common
++ ***************************************************************************/
++
+ /* Serial port registrations */
+
+ static struct resource s3c2410_uart0_resource[] = {
+ [0] = {
+ .start = S3C2410_PA_UART0,
++#if !defined(CONFIG_PLAT_S3C64XX) && !defined(CONFIG_PLAT_S5PC1XX)
+ .end = S3C2410_PA_UART0 + 0x3fff,
++#else
++ .end = S3C2410_PA_UART0 + 0x3ff,
++#endif
+ .flags = IORESOURCE_MEM,
+ },
++#if !defined(CONFIG_PLAT_S3C64XX) && !defined(CONFIG_PLAT_S5PC1XX)
+ [1] = {
+ .start = IRQ_S3CUART_RX0,
+ .end = IRQ_S3CUART_ERR0,
+ .flags = IORESOURCE_IRQ,
+ }
++#else
++ [1] = {
++ .start = IRQ_UART0,
++ .end = IRQ_UART0,
++ .flags = IORESOURCE_IRQ,
++ }
++#endif
+ };
+
+ static struct resource s3c2410_uart1_resource[] = {
+ [0] = {
+ .start = S3C2410_PA_UART1,
++#if !defined(CONFIG_PLAT_S3C64XX) && !defined(CONFIG_PLAT_S5PC1XX)
+ .end = S3C2410_PA_UART1 + 0x3fff,
++#else
++ .end = S3C2410_PA_UART1 + 0x3ff,
++#endif
+ .flags = IORESOURCE_MEM,
+ },
++#if !defined(CONFIG_PLAT_S3C64XX) && !defined(CONFIG_PLAT_S5PC1XX)
+ [1] = {
+ .start = IRQ_S3CUART_RX1,
+ .end = IRQ_S3CUART_ERR1,
+ .flags = IORESOURCE_IRQ,
+ }
++#else
++ [1] = {
++ .start = IRQ_UART1,
++ .end = IRQ_UART1,
++ .flags = IORESOURCE_IRQ,
++ }
++#endif
+ };
+
+ static struct resource s3c2410_uart2_resource[] = {
+ [0] = {
+ .start = S3C2410_PA_UART2,
++#if !defined(CONFIG_PLAT_S3C64XX) && !defined(CONFIG_PLAT_S5PC1XX)
+ .end = S3C2410_PA_UART2 + 0x3fff,
++#else
++ .end = S3C2410_PA_UART2 + 0x3ff,
++#endif
+ .flags = IORESOURCE_MEM,
+ },
++#if !defined(CONFIG_PLAT_S3C64XX) && !defined(CONFIG_PLAT_S5PC1XX)
+ [1] = {
+ .start = IRQ_S3CUART_RX2,
+ .end = IRQ_S3CUART_ERR2,
+ .flags = IORESOURCE_IRQ,
+ }
++#else
++ [1] = {
++ .start = IRQ_UART2,
++ .end = IRQ_UART2,
++ .flags = IORESOURCE_IRQ,
++ }
++#endif
+ };
+
++#if defined(CONFIG_PLAT_S3C64XX) || defined(CONFIG_PLAT_S5PC1XX)
++static struct resource s3c_uart3_resource[] = {
++ [0] = {
++ .start = S3C2443_PA_UART3,
++ .end = S3C2443_PA_UART3 + 0x3ff,
++ .flags = IORESOURCE_MEM,
++ },
++
++ [1] = {
++ .start = IRQ_UART3,
++ .end = IRQ_UART3,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++#endif
++
+ struct s3c24xx_uart_resources s3c2410_uart_resources[] __initdata = {
+ [0] = {
+ .resources = s3c2410_uart0_resource,
+@@ -89,9 +146,15 @@ struct s3c24xx_uart_resources s3c2410_uart_resources[] __initdata = {
+ .resources = s3c2410_uart2_resource,
+ .nr_resources = ARRAY_SIZE(s3c2410_uart2_resource),
+ },
++#if defined(CONFIG_PLAT_S3C64XX) || defined(CONFIG_PLAT_S5PC1XX)
++ [3] = {
++ .resources = s3c_uart3_resource,
++ .nr_resources = ARRAY_SIZE(s3c_uart3_resource),
++ },
++#endif
+ };
+
+-/* yart devices */
++/* uart devices */
+
+ static struct platform_device s3c24xx_uart_device0 = {
+ .id = 0,
+@@ -105,13 +168,22 @@ static struct platform_device s3c24xx_uart_device2 = {
+ .id = 2,
+ };
+
+-struct platform_device *s3c24xx_uart_src[3] = {
++#if defined(CONFIG_PLAT_S3C64XX) || defined(CONFIG_PLAT_S5PC1XX)
++static struct platform_device s3c24xx_uart_device3 = {
++ .id = 3,
++};
++#endif
++
++struct platform_device *s3c24xx_uart_src[] = {
+ &s3c24xx_uart_device0,
+ &s3c24xx_uart_device1,
+ &s3c24xx_uart_device2,
++#if defined(CONFIG_PLAT_S3C64XX) || defined(CONFIG_PLAT_S5PC1XX)
++ &s3c24xx_uart_device3,
++#endif
+ };
+
+-struct platform_device *s3c24xx_uart_devs[3] = {
++struct platform_device *s3c24xx_uart_devs[] = {
+ };
+
+ /* USB Host Controller */
+@@ -122,11 +194,19 @@ static struct resource s3c_usb_resource[] = {
+ .end = S3C24XX_PA_USBHOST + S3C24XX_SZ_USBHOST - 1,
+ .flags = IORESOURCE_MEM,
+ },
++#if !defined(CONFIG_PLAT_S3C64XX) && !defined(CONFIG_PLAT_S5PC1XX)
+ [1] = {
+ .start = IRQ_USBH,
+ .end = IRQ_USBH,
+ .flags = IORESOURCE_IRQ,
+ }
++#else
++ [1] = {
++ .start = IRQ_UHOST,
++ .end = IRQ_UHOST,
++ .flags = IORESOURCE_IRQ,
++ }
++#endif
+ };
+
+ static u64 s3c_device_usb_dmamask = 0xffffffffUL;
+@@ -153,8 +233,16 @@ static struct resource s3c_lcd_resource[] = {
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ .start = IRQ_LCD_VSYNC ,
++ .end = IRQ_LCD_SYSTEM,
++#elif defined(CONFIG_PLAT_S3C24XX)
+ .start = IRQ_LCD,
+ .end = IRQ_LCD,
++#elif defined(CONFIG_PLAT_S5PC1XX)
++ .start = IRQ_LCD0,
++ .end = IRQ_LCD3,
++#endif
+ .flags = IORESOURCE_IRQ,
+ }
+
+@@ -192,8 +280,8 @@ void __init s3c24xx_fb_set_platdata(struct s3c2410fb_mach_info *pd)
+
+ static struct resource s3c_nand_resource[] = {
+ [0] = {
+- .start = S3C2410_PA_NAND,
+- .end = S3C2410_PA_NAND + S3C24XX_SZ_NAND - 1,
++ .start = S3C24XX_PA_NAND,
++ .end = S3C24XX_PA_NAND + S3C24XX_SZ_NAND - 1,
+ .flags = IORESOURCE_MEM,
+ }
+ };
+@@ -207,9 +295,42 @@ struct platform_device s3c_device_nand = {
+
+ EXPORT_SYMBOL(s3c_device_nand);
+
++/* OneNAND Controller */
++static struct resource s3c_onenand_resource[] = {
++ [0] = {
++ .start = S3C6400_PA_ONENAND,
++ .end = S3C6400_PA_ONENAND + S3C_SZ_ONENAND - 1,
++ .flags = IORESOURCE_MEM,
++ }
++};
++
++struct platform_device s3c_device_onenand = {
++ .name = "onenand",
++ .id = -1,
++ .dev = {
++ .platform_data = &s3c_onenand_data,
++ },
++ .num_resources = ARRAY_SIZE(s3c_onenand_resource),
++ .resource = s3c_onenand_resource,
++};
++
++EXPORT_SYMBOL(s3c_device_onenand);
++
+ /* USB Device (Gadget)*/
+
+ static struct resource s3c_usbgadget_resource[] = {
++#if defined(CONFIG_PLAT_S3C64XX)
++ [0] = {
++ .start = S3C24XX_PA_OTG,
++ .end = S3C24XX_PA_OTG+S3C24XX_SZ_OTG-1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_OTG,
++ .end = IRQ_OTG,
++ .flags = IORESOURCE_IRQ,
++ }
++#elif defined(CONFIG_PLAT_S3C24XX)
+ [0] = {
+ .start = S3C24XX_PA_USBDEV,
+ .end = S3C24XX_PA_USBDEV + S3C24XX_SZ_USBDEV - 1,
+@@ -220,7 +341,7 @@ static struct resource s3c_usbgadget_resource[] = {
+ .end = IRQ_USBD,
+ .flags = IORESOURCE_IRQ,
+ }
+-
++#endif
+ };
+
+ struct platform_device s3c_device_usbgadget = {
+@@ -232,6 +353,32 @@ struct platform_device s3c_device_usbgadget = {
+
+ EXPORT_SYMBOL(s3c_device_usbgadget);
+
++#ifdef CONFIG_PLAT_S3C64XX
++/* USB Device (OTG hcd)*/
++
++static struct resource s3c_usb_otghcd_resource[] = {
++ [0] = {
++ .start = S3C24XX_PA_OTG,
++ .end = S3C24XX_PA_OTG + S3C24XX_SZ_OTG - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_OTG,
++ .end = IRQ_OTG,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++struct platform_device s3c_device_usb_otghcd = {
++ .name = "s3c6410_OTGHCD",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(s3c_usb_otghcd_resource),
++ .resource = s3c_usb_otghcd_resource,
++};
++
++EXPORT_SYMBOL(s3c_device_usb_otghcd);
++#endif
++
+ void __init s3c24xx_udc_set_platdata(struct s3c2410_udc_mach_info *pd)
+ {
+ struct s3c2410_udc_mach_info *npd;
+@@ -254,12 +401,20 @@ static struct resource s3c_wdt_resource[] = {
+ .end = S3C24XX_PA_WATCHDOG + S3C24XX_SZ_WATCHDOG - 1,
+ .flags = IORESOURCE_MEM,
+ },
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ [1] = {
++ .start = IRQ_S3C2443_WDT,
++ .end = IRQ_S3C2443_WDT,
++ .flags = IORESOURCE_IRQ,
++ }
++
++#else
+ [1] = {
+ .start = IRQ_WDT,
+ .end = IRQ_WDT,
+ .flags = IORESOURCE_IRQ,
+ }
+-
++#endif
+ };
+
+ struct platform_device s3c_device_wdt = {
+@@ -272,7 +427,7 @@ struct platform_device s3c_device_wdt = {
+ EXPORT_SYMBOL(s3c_device_wdt);
+
+ /* I2C */
+-
++#ifndef CONFIG_PLAT_S3C64XX
+ static struct resource s3c_i2c_resource[] = {
+ [0] = {
+ .start = S3C24XX_PA_IIC,
+@@ -284,7 +439,6 @@ static struct resource s3c_i2c_resource[] = {
+ .end = IRQ_IIC,
+ .flags = IORESOURCE_IRQ,
+ }
+-
+ };
+
+ struct platform_device s3c_device_i2c = {
+@@ -295,6 +449,7 @@ struct platform_device s3c_device_i2c = {
+ };
+
+ EXPORT_SYMBOL(s3c_device_i2c);
++#endif
+
+ /* IIS */
+
+@@ -303,7 +458,14 @@ static struct resource s3c_iis_resource[] = {
+ .start = S3C24XX_PA_IIS,
+ .end = S3C24XX_PA_IIS + S3C24XX_SZ_IIS -1,
+ .flags = IORESOURCE_MEM,
++ },
++#if defined(CONFIG_CPU_S3C6410)
++ [1] = {
++ .start = IRQ_IIS,
++ .end = IRQ_IIS,
++ .flags = IORESOURCE_IRQ,
+ }
++#endif
+ };
+
+ static u64 s3c_device_iis_dmamask = 0xffffffffUL;
+@@ -321,6 +483,31 @@ struct platform_device s3c_device_iis = {
+
+ EXPORT_SYMBOL(s3c_device_iis);
+
++/* AC97 */
++
++static struct resource s3c_ac97_resource[] = {
++ [0] = {
++ .start = S3C24XX_PA_AC97,
++ .end = S3C24XX_PA_AC97 + S3C24XX_SZ_AC97 -1,
++ .flags = IORESOURCE_MEM,
++ }
++};
++
++static u64 s3c_device_ac97_dmamask = 0xffffffffUL;
++
++struct platform_device s3c_device_ac97 = {
++ .name = "s3c-ac97",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(s3c_ac97_resource),
++ .resource = s3c_ac97_resource,
++ .dev = {
++ .dma_mask = &s3c_device_ac97_dmamask,
++ .coherent_dma_mask = 0xffffffffUL
++ }
++};
++
++EXPORT_SYMBOL(s3c_device_ac97);
++
+ /* RTC */
+
+ static struct resource s3c_rtc_resource[] = {
+@@ -329,6 +516,7 @@ static struct resource s3c_rtc_resource[] = {
+ .end = S3C24XX_PA_RTC + 0xff,
+ .flags = IORESOURCE_MEM,
+ },
++#if !defined(CONFIG_PLAT_S3C64XX) && !defined(CONFIG_PLAT_S5PC1XX)
+ [1] = {
+ .start = IRQ_RTC,
+ .end = IRQ_RTC,
+@@ -339,6 +527,18 @@ static struct resource s3c_rtc_resource[] = {
+ .end = IRQ_TICK,
+ .flags = IORESOURCE_IRQ
+ }
++#else
++ [1] = {
++ .start = IRQ_RTC_ALARM,
++ .end = IRQ_RTC_ALARM,
++ .flags = IORESOURCE_IRQ,
++ },
++ [2] = {
++ .start = IRQ_RTC_TIC,
++ .end = IRQ_RTC_TIC,
++ .flags = IORESOURCE_IRQ
++ }
++#endif
+ };
+
+ struct platform_device s3c_device_rtc = {
+@@ -351,6 +551,7 @@ struct platform_device s3c_device_rtc = {
+ EXPORT_SYMBOL(s3c_device_rtc);
+
+ /* ADC */
++extern struct s3c_adc_cfg s3c_adc_platform;
+
+ static struct resource s3c_adc_resource[] = {
+ [0] = {
+@@ -372,10 +573,39 @@ static struct resource s3c_adc_resource[] = {
+ };
+
+ struct platform_device s3c_device_adc = {
+- .name = "s3c2410-adc",
++ .name = "s3c-adc",
+ .id = -1,
+ .num_resources = ARRAY_SIZE(s3c_adc_resource),
+ .resource = s3c_adc_resource,
++ .dev ={
++ .platform_data = &s3c_adc_platform,
++ }
++};
++EXPORT_SYMBOL(s3c_device_adc);
++
++/* Touch srcreen */
++extern struct s3c_ts_mach_info s3c_ts_platform;
++static struct resource s3c_ts_resource[] = {
++ [0] = {
++ .start = S3C24XX_PA_ADC,
++ .end = S3C24XX_PA_ADC + S3C24XX_SZ_ADC - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_TC,
++ .end = IRQ_ADC,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++struct platform_device s3c_device_ts = {
++ .name = "s3c-ts",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(s3c_ts_resource),
++ .resource = s3c_ts_resource,
++ .dev ={
++ .platform_data = &s3c_ts_platform,
++ }
+ };
+
+ /* SDI */
+@@ -386,12 +616,13 @@ static struct resource s3c_sdi_resource[] = {
+ .end = S3C2410_PA_SDI + S3C24XX_SZ_SDI - 1,
+ .flags = IORESOURCE_MEM,
+ },
++#if !defined(CONFIG_PLAT_S3C64XX) && !defined(CONFIG_PLAT_S5PC1XX)
+ [1] = {
+ .start = IRQ_SDI,
+ .end = IRQ_SDI,
+ .flags = IORESOURCE_IRQ,
+ }
+-
++#endif
+ };
+
+ struct platform_device s3c_device_sdi = {
+@@ -403,42 +634,72 @@ struct platform_device s3c_device_sdi = {
+
+ EXPORT_SYMBOL(s3c_device_sdi);
+
+-/* High-speed MMC/SD */
+
+-static struct resource s3c_hsmmc_resource[] = {
++/* SPI (0) */
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++
++static struct resource s3c_spi0_resource[] = {
+ [0] = {
+- .start = S3C2443_PA_HSMMC,
+- .end = S3C2443_PA_HSMMC + S3C2443_SZ_HSMMC - 1,
++ .start = S3C_PA_SPI_0,
++ .end = S3C_PA_SPI_0 + S3C_SZ_SPI_0,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+- .start = IRQ_S3C2443_HSMMC,
+- .end = IRQ_S3C2443_HSMMC,
++ .start = IRQ_SPI0,
++ .end = IRQ_SPI0,
+ .flags = IORESOURCE_IRQ,
+ }
++
+ };
+
+-static u64 s3c_device_hsmmc_dmamask = 0xffffffffUL;
++static u64 s3c_device_spi0_dmamask = 0xffffffffUL;
+
+-struct platform_device s3c_device_hsmmc = {
+- .name = "s3c-sdhci",
+- .id = -1,
+- .num_resources = ARRAY_SIZE(s3c_hsmmc_resource),
+- .resource = s3c_hsmmc_resource,
+- .dev = {
+- .dma_mask = &s3c_device_hsmmc_dmamask,
+- .coherent_dma_mask = 0xffffffffUL
++struct platform_device s3c_device_spi0 = {
++ .name = "s3c2410-spi",
++ .id = 0,
++ .num_resources = ARRAY_SIZE(s3c_spi0_resource),
++ .resource = s3c_spi0_resource,
++ .dev = {
++ .dma_mask = &s3c_device_spi0_dmamask,
++ .coherent_dma_mask = 0xffffffffUL
++ }
++};
++
++EXPORT_SYMBOL(s3c_device_spi0);
++
++static struct resource s3c_spi1_resource[] = {
++ [0] = {
++ .start = S3C_PA_SPI_0,
++ .end = S3C_PA_SPI_0 + S3C_SZ_SPI_0,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_SPI1,
++ .end = IRQ_SPI1,
++ .flags = IORESOURCE_IRQ,
+ }
++
+ };
+
++struct platform_device s3c_device_spi1 = {
++ .name = "s3c-spi",
++ .id = 1,
++ .num_resources = ARRAY_SIZE(s3c_spi1_resource),
++ .resource = s3c_spi1_resource,
++};
+
++EXPORT_SYMBOL(s3c_device_spi1);
+
+-/* SPI (0) */
++#else
+
+ static struct resource s3c_spi0_resource[] = {
+ [0] = {
+ .start = S3C24XX_PA_SPI,
++#if !defined (CONFIG_CPU_S3C6400) && !defined (CONFIG_CPU_S3C6410)
+ .end = S3C24XX_PA_SPI + 0x1f,
++#else
++ .end = S3C24XX_PA_SPI + S3C24XX_SZ_SPI - 1,
++#endif
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+@@ -464,12 +725,18 @@ struct platform_device s3c_device_spi0 = {
+
+ EXPORT_SYMBOL(s3c_device_spi0);
+
++
+ /* SPI (1) */
+
+ static struct resource s3c_spi1_resource[] = {
+ [0] = {
+- .start = S3C24XX_PA_SPI + S3C2410_SPI1,
+- .end = S3C24XX_PA_SPI + S3C2410_SPI1 + 0x1f,
++#if !defined (CONFIG_CPU_S3C6400) && !defined (CONFIG_CPU_S3C6410)
++ .start = S3C24XX_PA_SPI + 0x20,
++ .end = S3C24XX_PA_SPI + 0x20 + 0x1f,
++#else
++ .start = S3C24XX_PA_SPI + S3C24XX_SZ_SPI,
++ .end = S3C24XX_PA_SPI + S3C24XX_SZ_SPI + 0xff,
++#endif
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+@@ -495,6 +762,8 @@ struct platform_device s3c_device_spi1 = {
+
+ EXPORT_SYMBOL(s3c_device_spi1);
+
++#endif
++
+ /* pwm timer blocks */
+
+ static struct resource s3c_timer0_resource[] = {
+@@ -595,10 +864,12 @@ struct platform_device s3c_device_timer3 = {
+
+ EXPORT_SYMBOL(s3c_device_timer3);
+
+-#ifdef CONFIG_CPU_S3C2440
++/****************************************************************************
++ * S3C2440 only: camif
++ ***************************************************************************/
++#if defined(CONFIG_CPU_S3C2440) && (!defined(CONFIG_CPU_S3C2443) && !defined(CONFIG_CPU_S3C2450))
+
+ /* Camif Controller */
+-
+ static struct resource s3c_camif_resource[] = {
+ [0] = {
+ .start = S3C2440_PA_CAMIF,
+@@ -628,4 +899,559 @@ struct platform_device s3c_device_camif = {
+
+ EXPORT_SYMBOL(s3c_device_camif);
+
+-#endif // CONFIG_CPU_S32440
++#endif /* End of S3C2440 only */
++
++/****************************************************************************
++ * S3C2443, S3C2450 common
++ ***************************************************************************/
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++#if !defined(CONFIG_CPU_S3C2416)
++/* Camif controller */
++static struct resource s3c_camif_resource[] = {
++ [0] = {
++ .start = S3C2443_PA_CAMIF,
++ .end = S3C2443_PA_CAMIF + S3C2443_SZ_CAMIF - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_S3C2440_CAM_C,
++ .end = IRQ_S3C2440_CAM_C,
++ .flags = IORESOURCE_IRQ,
++ },
++ [2] = {
++ .start = IRQ_S3C2440_CAM_P,
++ .end = IRQ_S3C2440_CAM_P,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++static u64 s3c_device_camif_dmamask = 0xffffffffUL;
++
++struct platform_device s3c_device_camif = {
++ .name = "s3c-camif",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(s3c_camif_resource),
++ .resource = s3c_camif_resource,
++ .dev = {
++ .dma_mask = &s3c_device_camif_dmamask,
++ .coherent_dma_mask = 0xffffffffUL
++ }
++};
++
++EXPORT_SYMBOL(s3c_device_camif);
++
++/* Ide controller */
++static struct resource s3c_ide_resource[] = {
++ [0] = {
++ .start = S3C_PA_CFATA,
++ .end = S3C_PA_CFATA+ S3C_SZ_CFATA,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_CFCON,
++ .end = IRQ_CFCON,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++struct platform_device s3c_device_ide = {
++ .name = "s3c-ide",
++ .id = 0,
++ .num_resources = ARRAY_SIZE(s3c_ide_resource),
++ .resource = s3c_ide_resource,
++};
++
++EXPORT_SYMBOL(s3c_device_ide);
++#endif
++
++#if defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++/* HS-MMC Controller */
++extern struct s3c_hsmmc_cfg s3c_hsmmc0_platform;
++extern struct s3c_hsmmc_cfg s3c_hsmmc1_platform;
++
++static struct resource s3c_hsmmc0_resource[] = {
++ [0] = {
++ .start = S3C_PA_HSMMC+0x400000,
++ .end = S3C_PA_HSMMC+0x400000+S3C_SZ_HSMMC,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_SDI_0,
++ .end = IRQ_SDI_0,
++ .flags = IORESOURCE_IRQ,
++ },
++ /* To detect a card inserted, use an external interrupt */
++ [2] = {
++ .start = IRQ_EINT1,
++ .end = IRQ_EINT1,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++static struct resource s3c_hsmmc1_resource[] = {
++ [0] = {
++ .start = S3C_PA_HSMMC,
++ .end = S3C_PA_HSMMC+S3C_SZ_HSMMC,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_SDI_1,
++ .end = IRQ_SDI_1,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++struct platform_device s3c_device_hsmmc0 = {
++ .name = "s3c-hsmmc",
++ .id = 0,
++ .num_resources = ARRAY_SIZE(s3c_hsmmc0_resource),
++ .resource = s3c_hsmmc0_resource,
++ .dev = {
++ .platform_data = &s3c_hsmmc0_platform,
++ }
++};
++
++
++struct platform_device s3c_device_hsmmc1 = {
++ .name = "s3c-hsmmc",
++ .id = 1,
++ .num_resources = ARRAY_SIZE(s3c_hsmmc1_resource),
++ .resource = s3c_hsmmc1_resource,
++ .dev = {
++ .platform_data = &s3c_hsmmc1_platform,
++ }
++};
++
++EXPORT_SYMBOL(s3c_device_hsmmc0);
++EXPORT_SYMBOL(s3c_device_hsmmc1);
++
++#else
++/* HS-MMC controller */
++extern struct s3c_hsmmc_cfg s3c_hsmmc_platform;
++
++static struct resource s3c_hsmmc_resource[] = {
++ [0] = {
++ .start = S3C_PA_HSMMC,
++ .end = S3C_PA_HSMMC+ S3C_SZ_HSMMC,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_SDI_1,
++ .end = IRQ_SDI_1,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++struct platform_device s3c_device_hsmmc = {
++ .name = "s3c-hsmmc",
++ .id = 0,
++ .num_resources = ARRAY_SIZE(s3c_hsmmc_resource),
++ .resource = s3c_hsmmc_resource,
++ .dev = {
++ .platform_data = &s3c_hsmmc_platform,
++ }
++};
++
++EXPORT_SYMBOL(s3c_device_hsmmc);
++#endif
++
++#endif /* End of S3C2443, S3C2450 common */
++
++/****************************************************************************
++ * S3C6400, S3C6410 common
++ ***************************************************************************/
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++
++/* HS-MMC controller */
++extern struct s3c_hsmmc_cfg s3c_hsmmc0_platform;
++extern struct s3c_hsmmc_cfg s3c_hsmmc1_platform;
++extern struct s3c_hsmmc_cfg s3c_hsmmc2_platform;
++
++static struct resource s3c_hsmmc0_resource[] = {
++ [0] = {
++ .start = S3C_PA_HSMMC,
++ .end = S3C_PA_HSMMC+S3C_SZ_HSMMC-1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_HSMMC0,
++ .end = IRQ_HSMMC0,
++ .flags = IORESOURCE_IRQ,
++ },
++ /* To detect a card inserted, use an external interrupt */
++ [2] = {
++ .start = IRQ_EINT13,
++ .end = IRQ_EINT13,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++static struct resource s3c_hsmmc1_resource[] = {
++ [0] = {
++ .start = S3C_PA_HSMMC+0x100000,
++ .end = S3C_PA_HSMMC+0x100000+S3C_SZ_HSMMC-1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_HSMMC1,
++ .end = IRQ_HSMMC1,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++static struct resource s3c_hsmmc2_resource[] = {
++ [0] = {
++ .start = S3C_PA_HSMMC+0x200000,
++ .end = S3C_PA_HSMMC+0x200000+S3C_SZ_HSMMC-1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_HSMMC2,
++ .end = IRQ_HSMMC2,
++ .flags = IORESOURCE_IRQ,
++ },
++ [2] = {
++ .start = IRQ_EINT15,
++ .end = IRQ_EINT15,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++struct platform_device s3c_device_hsmmc0 = {
++ .name = "s3c-hsmmc",
++ .id = 0,
++ .num_resources = ARRAY_SIZE(s3c_hsmmc0_resource),
++ .resource = s3c_hsmmc0_resource,
++ .dev = {
++ .platform_data = &s3c_hsmmc0_platform,
++ }
++};
++
++struct platform_device s3c_device_hsmmc1 = {
++ .name = "s3c-hsmmc",
++ .id = 1,
++ .num_resources = ARRAY_SIZE(s3c_hsmmc1_resource),
++ .resource = s3c_hsmmc1_resource,
++ .dev = {
++ .platform_data = &s3c_hsmmc1_platform,
++ }
++};
++
++struct platform_device s3c_device_hsmmc2 = {
++ .name = "s3c-hsmmc",
++ .id = 2,
++ .num_resources = ARRAY_SIZE(s3c_hsmmc2_resource),
++ .resource = s3c_hsmmc2_resource,
++ .dev = {
++ .platform_data = &s3c_hsmmc2_platform,
++ }
++};
++
++EXPORT_SYMBOL(s3c_device_hsmmc0);
++EXPORT_SYMBOL(s3c_device_hsmmc1);
++EXPORT_SYMBOL(s3c_device_hsmmc2);
++
++/* 2D interface */
++static struct resource s3c_g2d_resource[] = {
++ [0] = {
++ .start = S3C6400_PA_G2D,
++ .end = S3C6400_PA_G2D + S3C_SZ_G2D - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_2D,
++ .end = IRQ_2D,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++struct platform_device s3c_device_g2d = {
++ .name = "s3c-g2d",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(s3c_g2d_resource),
++ .resource = s3c_g2d_resource
++};
++
++EXPORT_SYMBOL(s3c_device_g2d);
++
++/* rotator interface */
++static struct resource s3c_rotator_resource[] = {
++ [0] = {
++ .start = S3C6400_PA_ROTATOR,
++ .end = S3C6400_PA_ROTATOR + S3C_SZ_ROTATOR - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_ROTATOR,
++ .end = IRQ_ROTATOR,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++struct platform_device s3c_device_rotator = {
++ .name = "s3c-rotator",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(s3c_rotator_resource),
++ .resource = s3c_rotator_resource
++};
++
++EXPORT_SYMBOL(s3c_device_rotator);
++
++/* TV encoder */
++static struct resource s3c_tvenc_resource[] = {
++ [0] = {
++ .start = S3C24XX_PA_TVENC,
++ .end = S3C24XX_PA_TVENC + S3C_SZ_TVENC - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_TVENC,
++ .end = IRQ_TVENC,
++ .flags = IORESOURCE_IRQ,
++ }
++
++};
++
++struct platform_device s3c_device_tvenc = {
++ .name = "s3c-tvenc",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(s3c_tvenc_resource),
++ .resource = s3c_tvenc_resource,
++};
++
++EXPORT_SYMBOL(s3c_device_tvenc);
++
++/* TV scaler */
++static struct resource s3c_tvscaler_resource[] = {
++ [0] = {
++ .start = S3C24XX_PA_TVSCALER,
++ .end = S3C24XX_PA_TVSCALER + S3C_SZ_TVSCALER - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_SCALER,
++ .end = IRQ_SCALER,
++ .flags = IORESOURCE_IRQ,
++ }
++
++};
++
++struct platform_device s3c_device_tvscaler = {
++ .name = "s3c-tvscaler",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(s3c_tvscaler_resource),
++ .resource = s3c_tvscaler_resource,
++};
++
++EXPORT_SYMBOL(s3c_device_tvscaler);
++
++/* Camif controller */
++static struct resource s3c_camif_resource[] = {
++ [0] = {
++ .start = S3C6400_PA_CAMIF,
++ .end = S3C6400_PA_CAMIF + S3C24XX_SZ_CAMIF - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_CAMIF_C,
++ .end = IRQ_CAMIF_C,
++ .flags = IORESOURCE_IRQ,
++ },
++ [2] = {
++ .start = IRQ_CAMIF_P,
++ .end = IRQ_CAMIF_P,
++ .flags = IORESOURCE_IRQ,
++ }
++
++};
++
++static u64 s3c_device_camif_dmamask = 0xffffffffUL;
++
++struct platform_device s3c_device_camif = {
++ .name = "s3c-camif",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(s3c_camif_resource),
++ .resource = s3c_camif_resource,
++ .dev = {
++ .dma_mask = &s3c_device_camif_dmamask,
++ .coherent_dma_mask = 0xffffffffUL
++ }
++};
++
++EXPORT_SYMBOL(s3c_device_camif);
++
++/* JPEG controller */
++static struct resource s3c_jpeg_resource[] = {
++ [0] = {
++ .start = S3C6400_PA_JPEG,
++ .end = S3C6400_PA_JPEG + S3C_SZ_JPEG - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_JPEG,
++ .end = IRQ_JPEG,
++ .flags = IORESOURCE_IRQ,
++ }
++
++};
++
++struct platform_device s3c_device_jpeg = {
++ .name = "s3c-jpeg",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(s3c_jpeg_resource),
++ .resource = s3c_jpeg_resource,
++};
++
++EXPORT_SYMBOL(s3c_device_jpeg);
++
++/* MFC controller */
++static struct resource s3c_mfc_resource[] = {
++ [0] = {
++ .start = S3C6400_PA_MFC,
++ .end = S3C6400_PA_MFC + SZ_4K - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_MFC,
++ .end = IRQ_MFC,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++struct platform_device s3c_device_mfc = {
++ .name = "s3c-mfc",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(s3c_mfc_resource),
++ .resource = s3c_mfc_resource
++};
++
++EXPORT_SYMBOL(s3c_device_mfc);
++
++/* VPP controller */
++static struct resource s3c_vpp_resource[] = {
++ [0] = {
++ .start = S3C6400_PA_VPP,
++ .end = S3C6400_PA_VPP + S3C_SZ_VPP - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_POST0,
++ .end = IRQ_POST0,
++ .flags = IORESOURCE_IRQ,
++ }
++
++};
++
++struct platform_device s3c_device_vpp = {
++ .name = "s3c-vpp",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(s3c_vpp_resource),
++ .resource = s3c_vpp_resource,
++};
++
++EXPORT_SYMBOL(s3c_device_vpp);
++
++/* IDE controller */
++static struct resource s3c_ide_resource[] = {
++ [0] = {
++ .start = S3C24XX_PA_CFATA,
++ .end = S3C24XX_PA_CFATA + S3C_SZ_CFATA - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_CFCON,
++ .end = IRQ_CFCON,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++struct platform_device s3c_device_ide = {
++ .name = "s3c-ide",
++ .id = 0,
++ .num_resources = ARRAY_SIZE(s3c_ide_resource),
++ .resource = s3c_ide_resource,
++};
++
++EXPORT_SYMBOL(s3c_device_ide);
++
++/* Keypad interface */
++static struct resource s3c_keypad_resource[] = {
++ [0] = {
++ .start = S3C24XX_PA_KEYPAD,
++ .end = S3C24XX_PA_KEYPAD+ S3C24XX_SZ_KEYPAD - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_KEYPAD,
++ .end = IRQ_KEYPAD,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++struct platform_device s3c_device_keypad = {
++ .name = "s3c-keypad",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(s3c_keypad_resource),
++ .resource = s3c_keypad_resource,
++};
++
++EXPORT_SYMBOL(s3c_device_keypad);
++
++#if defined(CONFIG_CPU_S3C6410) /* S3C6410 only */
++
++/* Add here for 6410 only devices */
++/* 3D interface */
++static struct resource s3c_g3d_resource[] = {
++ [0] = {
++ .start = S3C6410_PA_G3D,
++ .end = S3C6410_PA_G3D + S3C6410_SZ_G3D - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_3D,
++ .end = IRQ_3D,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++struct platform_device s3c_device_g3d = {
++ .name = "s3c-g3d",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(s3c_g3d_resource),
++ .resource = s3c_g3d_resource
++};
++
++EXPORT_SYMBOL(s3c_device_g3d);
++
++#endif /* End of S3C6410 only */
++
++#endif /* End of S3C6400, S3C6410 common */
++
++#if defined (CONFIG_CPU_S3C6410) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++static struct resource s3c_smc911x_resources[] = {
++ [0] = {
++ .start = S3C_PA_SMC9115,
++ .end = S3C_PA_SMC9115 + 0x1fffffff,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++#if defined(CONFIG_CPU_S3C6410)
++ .start = IRQ_EINT10,
++ .end = IRQ_EINT10,
++#elif defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ .start = IRQ_EINT4,
++ .end = IRQ_EINT4,
++#endif
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++struct platform_device s3c_device_smc911x = {
++ .name = "smc911x",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(s3c_smc911x_resources),
++ .resource = s3c_smc911x_resources,
++};
++EXPORT_SYMBOL(s3c_device_smc911x);
++#endif
++
+diff --git a/arch/arm/plat-s3c24xx/dma.c b/arch/arm/plat-s3c24xx/dma.c
+index 29696e4..2fa1332 100644
+--- a/arch/arm/plat-s3c24xx/dma.c
++++ b/arch/arm/plat-s3c24xx/dma.c
+@@ -526,6 +526,8 @@ int s3c2410_dma_enqueue(unsigned int channel, void *id,
+ } else if (chan->state == S3C2410_DMA_IDLE) {
+ if (chan->flags & S3C2410_DMAF_AUTOSTART) {
+ s3c2410_dma_ctrl(chan->number, S3C2410_DMAOP_START);
++ } else {
++ printk(KERN_DEBUG "loading onto stopped channel\n");
+ }
+ }
+
+@@ -1196,6 +1198,10 @@ int s3c2410_dma_devconfig(int channel,
+
+ chan->addr_reg = dma_regaddr(chan, S3C2410_DMA_DISRC);
+ return 0;
++
++ case S3C_DMA_MEM2MEM:
++ case S3C_DMA_PER2PER:
++ return 0;
+ }
+
+ printk(KERN_ERR "dma%d: invalid source type (%d)\n", channel, source);
+@@ -1348,7 +1354,16 @@ int __init s3c24xx_dma_init(unsigned int channels, unsigned int irq,
+
+ /* dma channel irqs are in order.. */
+ cp->number = channel;
++#if defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ if(channel == 6){
++ irq = irq + 5;
++ cp->irq = channel + irq;
++ }
++ else
++ cp->irq = channel + irq;
++#else
+ cp->irq = channel + irq;
++#endif
+ cp->regs = dma_base + (channel * stride);
+
+ /* point current stats somewhere */
+diff --git a/arch/arm/plat-s3c24xx/gpio.c b/arch/arm/plat-s3c24xx/gpio.c
+index ec3a09c..28f1dc0 100644
+--- a/arch/arm/plat-s3c24xx/gpio.c
++++ b/arch/arm/plat-s3c24xx/gpio.c
+@@ -69,6 +69,7 @@ void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function)
+ /* modify the specified register wwith IRQs off */
+
+ local_irq_save(flags);
++ local_irq_disable();
+
+ con = __raw_readl(base + 0x00);
+ con &= ~mask;
+@@ -100,6 +101,28 @@ unsigned int s3c2410_gpio_getcfg(unsigned int pin)
+
+ EXPORT_SYMBOL(s3c2410_gpio_getcfg);
+
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++void s3c2410_gpio_pullup(unsigned int pin, unsigned int to)
++{
++ void __iomem *base = S3C24XX_GPIO_BASE(pin);
++ unsigned long offs = S3C2410_GPIO_OFFSET(pin)*2;
++ unsigned long flags;
++ unsigned long up;
++
++ if (pin < S3C2410_GPIO_BANKB)
++ return;
++
++ local_irq_save(flags);
++ local_irq_disable();
++
++ up = __raw_readl(base + 0x08);
++ up &= ~(0x3 << offs);
++ up |= to << offs;
++ __raw_writel(up, base + 0x08);
++
++ local_irq_restore(flags);
++}
++#else
+ void s3c2410_gpio_pullup(unsigned int pin, unsigned int to)
+ {
+ void __iomem *base = S3C24XX_GPIO_BASE(pin);
+@@ -111,6 +134,7 @@ void s3c2410_gpio_pullup(unsigned int pin, unsigned int to)
+ return;
+
+ local_irq_save(flags);
++ local_irq_disable();
+
+ up = __raw_readl(base + 0x08);
+ up &= ~(1L << offs);
+@@ -119,6 +143,7 @@ void s3c2410_gpio_pullup(unsigned int pin, unsigned int to)
+
+ local_irq_restore(flags);
+ }
++#endif
+
+ EXPORT_SYMBOL(s3c2410_gpio_pullup);
+
+@@ -130,6 +155,7 @@ void s3c2410_gpio_setpin(unsigned int pin, unsigned int to)
+ unsigned long dat;
+
+ local_irq_save(flags);
++ local_irq_disable();
+
+ dat = __raw_readl(base + 0x04);
+ dat &= ~(1 << offs);
+@@ -157,6 +183,7 @@ unsigned int s3c2410_modify_misccr(unsigned int clear, unsigned int change)
+ unsigned long misccr;
+
+ local_irq_save(flags);
++ local_irq_disable();
+ misccr = __raw_readl(S3C24XX_MISCCR);
+ misccr &= ~clear;
+ misccr ^= change;
+@@ -186,3 +213,198 @@ int s3c2410_gpio_getirq(unsigned int pin)
+ }
+
+ EXPORT_SYMBOL(s3c2410_gpio_getirq);
++
++
++#if defined(CONFIG_PLAT_S3C64XX) || defined(CONFIG_PLAT_S5PC1XX)
++/* --------------------------------------------------------------
++ * Set up GPIOs
++ *-------------------------------------------------------------*/
++static void __iomem *gpio_base_offset[]=
++{
++ S3C24XX_VA_GPIO + 0x00, //GPA ,4bit
++ S3C24XX_VA_GPIO + 0x20, //GPB ,4bit
++ S3C24XX_VA_GPIO + 0x40, //GPC ,4bit
++ S3C24XX_VA_GPIO + 0x60, //GPD ,4bit
++ S3C24XX_VA_GPIO + 0x80, //GPE ,4bit
++ S3C24XX_VA_GPIO + 0xA0, //GPF ,2bit
++ S3C24XX_VA_GPIO + 0xC0, //GPG ,4bit
++ S3C24XX_VA_GPIO + 0xE0, //GPH ,4bit
++ S3C24XX_VA_GPIO + 0x100, //GPI ,2bit
++ S3C24XX_VA_GPIO + 0x120, //GPJ ,2bit
++ S3C24XX_VA_GPIO + 0x140, //GPO ,2bit
++ S3C24XX_VA_GPIO + 0x160, //GPP ,2bit
++ S3C24XX_VA_GPIO + 0x180, //GPQ ,2bit
++ S3C24XX_VA_GPIO + 0x800, //GPK ,4bit
++ S3C24XX_VA_GPIO + 0x810, //GPL ,4bit
++ S3C24XX_VA_GPIO + 0x820, //GPM ,4bit
++ S3C24XX_VA_GPIO + 0x830 //GPN ,2bit
++};
++
++void s3c_gpio_cfgpin(unsigned int pin, unsigned int function)
++{
++ void __iomem *base = gpio_base_offset[S3C_GPIO_BASE(pin)];
++ unsigned long mask;
++ unsigned long con;
++ unsigned long flags;
++ unsigned long offs = S3C_GPIO_OFFSET(pin);
++
++ if ((pin < S3C_GPIO_BANKF)||((pin >=S3C_GPIO_BANKG)&&\
++ (pin<S3C_GPIO_BANKI))||((pin>=S3C_GPIO_BANKK)&&\
++ (pin<S3C_GPIO_BANKN)))
++ {
++ offs = (offs) *4;
++
++ if((pin == S3C_GPH8)||(pin==S3C_GPH9)||\
++ (pin>=S3C_GPK8&&pin<=S3C_GPK15)||\
++ (pin>=S3C_GPL8&&pin<=S3C_GPL14))
++ {
++ base = base + 0x04;
++ /* only for con1:8~14 or 15 regiter configuratio nvalue change ...*/
++ offs = offs - 32;
++ }
++ mask = 0xF << offs;
++ }
++ else
++ {
++ offs = offs*2;
++ mask = 0x3 << offs;
++ }
++
++ local_irq_save(flags);
++ local_irq_disable();
++
++ con = __raw_readl(base + 0x00);
++ con &= ~mask;
++ con |= (function << offs);
++
++ __raw_writel(con, base + 0x00);
++
++ local_irq_restore(flags);
++}
++
++EXPORT_SYMBOL(s3c_gpio_cfgpin);
++
++unsigned int s3c_gpio_getcfg(unsigned int pin)
++{
++ void __iomem *base = gpio_base_offset[S3C_GPIO_BASE(pin)];
++ unsigned long mask;
++ unsigned long shift=0;
++
++ if ((pin < S3C_GPIO_BANKF)||((pin >=S3C_GPIO_BANKG)&&\
++ (pin<S3C_GPIO_BANKI))||((pin>=S3C_GPIO_BANKK)&&\
++ (pin<S3C_GPIO_BANKN)))
++ {
++ mask = 0xF << S3C_GPIO_OFFSET(pin)*4;
++ if((pin == S3C_GPH8)||(pin==S3C_GPH9)||\
++ (pin>=S3C_GPK8&&pin<=S3C_GPK15)||\
++ (pin>=S3C_GPL8&&pin<=S3C_GPL14))
++ {
++ base = base + 0x04;
++ shift = S3C_GPIO_OFFSET(pin)*4 - 32;
++ mask = 0xF << shift;
++ }
++
++ }
++ else
++ {
++ shift = S3C_GPIO_OFFSET(pin)*2;
++ mask = 0x3 << shift;
++ }
++
++ return ((__raw_readl(base) & mask) >> shift);
++}
++
++EXPORT_SYMBOL(s3c_gpio_getcfg);
++
++void s3c_gpio_pullup(unsigned int pin, unsigned int to)
++{
++ void __iomem *base = gpio_base_offset[S3C_GPIO_BASE(pin)];
++ unsigned long offs = S3C_GPIO_OFFSET(pin)*2;
++ unsigned long flags;
++ unsigned long up;
++ unsigned long mask;
++
++ mask = 0x3 << offs;
++
++ if((pin>=S3C_GPH0 && pin<=S3C_GPH9)||\
++ (pin>=S3C_GPK0 && pin<=S3C_GPK15)||\
++ (pin>=S3C_GPL0 && pin<=S3C_GPL14))
++ {
++ base = base+0x04;
++ }
++
++ local_irq_save(flags);
++ local_irq_disable();
++
++ up = __raw_readl(base + 0x08);
++ up &= ~mask;
++ up |= to << offs;
++ __raw_writel(up, base + 0x08);
++
++ local_irq_restore(flags);
++}
++
++EXPORT_SYMBOL(s3c_gpio_pullup);
++
++void s3c_gpio_setpin(unsigned int pin, unsigned int to)
++{
++ void __iomem *base = gpio_base_offset[S3C_GPIO_BASE(pin)];
++ unsigned long offs = S3C_GPIO_OFFSET(pin);
++ unsigned long flags;
++ unsigned long dat;
++
++ if((pin>=S3C_GPH0 && pin<=S3C_GPH9)||\
++ (pin>=S3C_GPK0 && pin<=S3C_GPK15)||\
++ (pin>=S3C_GPL0 && pin<=S3C_GPL14))
++ {
++ base = base+0x04;
++ }
++
++ local_irq_save(flags);
++ local_irq_disable();
++
++ dat = __raw_readl(base + 0x04);
++ dat &= ~(1 << offs);
++ dat |= to << offs;
++ __raw_writel(dat, base + 0x04);
++
++ local_irq_restore(flags);
++}
++
++EXPORT_SYMBOL(s3c_gpio_setpin);
++
++unsigned int s3c_gpio_getpin(unsigned int pin)
++{
++ void __iomem *base = gpio_base_offset[S3C_GPIO_BASE(pin)];
++ unsigned long offs = S3C_GPIO_OFFSET(pin);
++
++ if((pin>=S3C_GPH0 && pin<=S3C_GPH9)||\
++ (pin>=S3C_GPK0 && pin<=S3C_GPK15)||\
++ (pin>=S3C_GPL0 && pin<=S3C_GPL14))
++ {
++ base = base+0x04;
++ }
++ return __raw_readl(base + 0x04) & (1<< offs);
++}
++
++EXPORT_SYMBOL(s3c_gpio_getpin);
++
++int s3c_gpio_getirq(unsigned int pin)
++{
++
++/* mandatory */
++/* Implement this function */
++ return 0;
++}
++
++EXPORT_SYMBOL(s3c_gpio_getirq);
++
++int s3c_gpio_irqfilter(unsigned int pin, unsigned int on,
++ unsigned int config)
++{
++
++ return 0;
++}
++
++EXPORT_SYMBOL(s3c_gpio_irqfilter);
++#endif
+diff --git a/arch/arm/plat-s3c24xx/irq.c b/arch/arm/plat-s3c24xx/irq.c
+index 8fbc884..9116196 100644
+--- a/arch/arm/plat-s3c24xx/irq.c
++++ b/arch/arm/plat-s3c24xx/irq.c
+@@ -195,6 +195,77 @@ static struct irq_chip s3c_irq_chip = {
+ .set_wake = s3c_irq_wake
+ };
+
++
++#if defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++/*--- For additional interrupt sources on S3C2450/S3C2416 ----*/
++static void
++s3c2450_irq_mask(unsigned int irqno)
++{
++ unsigned long mask;
++
++ irqno -= IRQ_S3C2450_2D;
++
++ mask = __raw_readl(S3C2450_INTMSK);
++ mask |= 1UL << irqno;
++ __raw_writel(mask, S3C2450_INTMSK);
++}
++
++static inline void
++s3c2450_irq_ack(unsigned int irqno)
++{
++ unsigned long bitval = 1UL << (irqno - IRQ_S3C2450_2D);
++
++ __raw_writel(bitval, S3C2450_SRCPND);
++ __raw_writel(bitval, S3C2450_INTPND);
++}
++
++static inline void
++s3c2450_irq_maskack(unsigned int irqno)
++{
++ unsigned long bitval = 1UL << (irqno - IRQ_S3C2450_2D);
++ unsigned long mask;
++
++ mask = __raw_readl(S3C2450_INTMSK);
++ __raw_writel(mask|bitval, S3C2450_INTMSK);
++
++ __raw_writel(bitval, S3C2450_SRCPND);
++ __raw_writel(bitval, S3C2450_INTPND);
++}
++
++
++static void
++s3c2450_irq_unmask(unsigned int irqno)
++{
++ unsigned long mask;
++
++ irqno -= IRQ_S3C2450_2D;
++
++ mask = __raw_readl(S3C2450_INTMSK);
++ mask &= ~(1UL << irqno);
++ __raw_writel(mask, S3C2450_INTMSK);
++}
++
++
++
++struct irq_chip s3c2450_irq_level_chip = {
++ .name = "s3c2450-level",
++ .ack = s3c2450_irq_maskack,
++ .mask = s3c2450_irq_mask,
++ .unmask = s3c2450_irq_unmask,
++ //.set_wake = s3c2450_irq_wake
++};
++
++static struct irq_chip s3c2450_edge_irq_chip = {
++ .name = "s3c2450-edge",
++ .ack = s3c2450_irq_ack,
++ .mask = s3c2450_irq_mask,
++ .unmask = s3c2450_irq_unmask,
++ //.set_wake = s3c2450_irq_wake
++};
++/*--------------------------------------------------------------*/
++#endif
++
++
+ static void
+ s3c_irqext_mask(unsigned int irqno)
+ {
+@@ -796,5 +867,13 @@ void __init s3c24xx_init_irq(void)
+ set_irq_flags(irqno, IRQF_VALID);
+ }
+
++#if defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ for (irqno = IRQ_S3C2450_2D; irqno <= IRQ_S3C2450_I2S1; irqno++) {
++ set_irq_chip(irqno, &s3c2450_irq_level_chip);
++ set_irq_handler(irqno, handle_level_irq);
++ set_irq_flags(irqno, IRQF_VALID);
++ }
++#endif
++
+ irqdbf("s3c2410: registered interrupt handlers\n");
+ }
+diff --git a/arch/arm/plat-s3c24xx/s3c244x.c b/arch/arm/plat-s3c24xx/s3c244x.c
+index 3444b13..9b3adec 100644
+--- a/arch/arm/plat-s3c24xx/s3c244x.c
++++ b/arch/arm/plat-s3c24xx/s3c244x.c
+@@ -40,6 +40,7 @@
+ #include "s3c244x.h"
+ #include <asm/plat-s3c24xx/clock.h>
+ #include <asm/plat-s3c24xx/devs.h>
++#include <asm/plat-s3c24xx/common-smdk.h>
+ #include <asm/plat-s3c24xx/cpu.h>
+ #include <asm/plat-s3c24xx/pm.h>
+
+diff --git a/arch/arm/plat-s3c24xx/s3c24xx-dvfs.c b/arch/arm/plat-s3c24xx/s3c24xx-dvfs.c
+new file mode 100644
+index 0000000..1d6dd82
+--- /dev/null
++++ b/arch/arm/plat-s3c24xx/s3c24xx-dvfs.c
+@@ -0,0 +1,585 @@
++/*
++ * Copyright (c) 2008 Samsung Electronics
++ * Kwanghyun.La <nala.la@samsung.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * S3C64xx DVFS interface with LTC3714 DCDC convertor power
++ * 2008.02.28. basic scheme update to here
++*/
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/fs.h>
++#include <linux/errno.h>
++#include <linux/types.h>
++#include <linux/fcntl.h>
++
++#include <asm/uaccess.h>
++#include <asm/io.h>
++
++#include <linux/stat.h>
++#include <linux/proc_fs.h>
++
++#include <linux/delay.h> // For loops_per_jiffy
++#include <asm/arch/regs-gpio.h>
++
++#include "s3c24xx-dvfs.h"
++
++#define DEV_NAME "s3c24xx-dvfs"
++#define DEV_MAJOR 240
++
++
++
++#define XTAL 12*1000*1000 /* Clock source 12Mhz */
++#define MAX_APLL_RATIO 7 /* See S3C6400 user manual 3-7 */
++#define MAX_HCLK2_RATIO 7 /* See S3C6400 user manual 0-1 */
++#define Mhz 1000*1000
++
++#define SUPPORT_PROC_FS
++
++#ifdef SUPPORT_PROC_FS
++struct proc_dir_entry *proc_root_fp = NULL;
++struct proc_dir_entry *proc_voltage_fp = NULL;
++struct proc_dir_entry *proc_freq_fp = NULL;
++struct proc_dir_entry *proc_step_fp = NULL;
++
++char proc_voltage_str[PAGE_SIZE-80] = { 0,};
++char proc_freq_str[PAGE_SIZE-80] = { 0,};
++char proc_step_str[PAGE_SIZE-80] = { 0,};
++#endif
++
++
++/* it's depend on DCDC regurator specification
++ * if change parts, you must be change table and configuration*/
++static const unsigned int voltage_table[32] = {
++ 1750, 1700, 1650, 1600, 1550, 1500, 1450, 1400,
++ 1350, 1300, 1250, 1200, 1150, 1100, 1050, 1000,
++ 975, 950, 925, 900, 875, 850, 825, 800,
++ 775, 750, 725, 700, 675, 650, 625, 600,
++};
++
++#define NUMBER_OF_STEP 4
++
++/*Frequency step define section */
++#define MDIV 0
++#define PDIV 1
++#define SDIV 2
++#define ARM_RATIO 3
++#define HCLK_RATIO 4
++#define DVFS MDIV /* for S3C2443,2416 and S3C2450*/
++
++#define ARM_VOLT_STEP 0
++#define INT_VOLT_STEP 1
++#define FREQ_STEP 2
++
++static const unsigned int pll_mps_table[][5] = {
++ {0, 0, 0, 0, 1}, /* step 0 DVS OFF, ARM:534MHz ,HCLK:133MHz*/
++ {0, 0, 0, 1, 1}, /* step 1 DVS OFF, ARM:266MHz ,HCLK:133MHz*/
++ {0, 0, 0, 3, 1}, /* step 2 DVS OFF, ARM:133MHz ,HCLK:133MHz*/
++ {1, 0, 0, 3, 1}, /* step 3 DVS ON , ARM:133MHz ,HCLK:133MHz careful the linked devices*/
++/* {DVS_ON, NA, NA, ARM RATIO, HCLK RATIO } */
++/* S3C24xx case , when HCLK is changed , UART signal is fragle, so must need to re setting the uart div
++ and the ARM Clock must be over than HCLK or same, it'can not support under HCLK*/
++};
++
++static const unsigned int pll_mps_table400[][5] = {
++ {0, 0, 0, 1, 1}, /* step 0 DVS OFF, ARM:400MHz ,HCLK:133MHz*/
++ {0, 0, 0, 2, 1}, /* step 1 DVS OFF, ARM:266MHz ,HCLK:133MHz*/
++ {0, 0, 0, 4, 1}, /* step 2 DVS OFF, ARM:160Hz ,HCLK:133MHz*/
++ {1, 0, 0, 4, 1}, /* step 3 DVS ON , ARM:160MHz ,HCLK:133MHz careful the linked devices*/
++/* {DVS_ON, NA, NA, ARM RATIO, HCLK RATIO } */
++/* S3C24xx case , when HCLK is changed , UART signal is fragle, so must need to re setting the uart div
++ and the ARM Clock must be over than HCLK or same, it'can not support under HCLK*/
++};
++
++static const unsigned int dvfs_step[NUMBER_OF_STEP][3] = {
++ { 1200 , 1200, 0}, /* ARM 1.2Volt, INT 1.2V, pll mode 0 533-133*/
++ { 1100 , 1100, 1}, /* ARM 1.0Volt, INT 1.0V, pll mode 2 200-133*/
++ { 975 , 1100, 2}, /* ARM 1.0Volt, INT 1.0V, pll mode 2 200-133*/
++ { 955 , 1000, 3}, /* ARM 1.0Volt, INT 1.0V, pll mode 3 100- 66*/
++/* {ARM Voltage,INT ARM Voltage, Frequency_STEP} */
++};
++
++static int previous_dvfs_step;
++
++static s3c_dvfs_info dvfs_info;
++
++static void set_dvfs_gpio(void)
++{
++ /* We can control the voltage of ARM core and Internal block by setting GPIO */
++ /* GPN(11~15). First of all, we should set these gpio to output mode. */
++ /* GPIO configuration */
++ GPIO_CFG(LTC3714_DATA1, LTC3714_OUTP1);
++ GPIO_CFG(LTC3714_DATA2, LTC3714_OUTP2);
++ GPIO_CFG(LTC3714_DATA3, LTC3714_OUTP3);
++ GPIO_CFG(LTC3714_DATA4, LTC3714_OUTP4);
++ GPIO_CFG(LTC3714_DATA5, LTC3714_OUTP5);
++
++ /* Pull-up/down disable */
++ GPIO_PULLUP(LTC3714_DATA1, 0x0);
++ GPIO_PULLUP(LTC3714_DATA2, 0x0);
++ GPIO_PULLUP(LTC3714_DATA3, 0x0);
++ GPIO_PULLUP(LTC3714_DATA4, 0x0);
++ GPIO_PULLUP(LTC3714_DATA5, 0x0);
++
++
++ /* Latch control signal*/
++ /* CORE_REG_OE: GPL9, ARM_REG_OE: GPL8, INT_REG_LE: GPL10*/
++ GPIO_CFG(ARM_LE , ARM_LE_OUTP);
++ GPIO_CFG(DVS_OE , DVS_OE_OUTP);
++ GPIO_CFG(INT_LE , INT_LE_OUTP);
++
++ GPIO_PULLUP(ARM_LE , 0x0);
++ GPIO_PULLUP(DVS_OE , 0x0);
++ GPIO_PULLUP(INT_LE , 0x0);
++
++
++}
++
++/* Set LTC3714 voltage regulator */
++/* Input : pwr : 1(ARM), 2(Internal), 3(Both) */
++/* voltage : 1mV step */
++static int set_ltc3714(unsigned int pwr, unsigned int voltage)
++{
++ int position = 0;
++ unsigned int val;
++
++
++ if(voltage > voltage_table[0] || voltage < voltage_table[31]) {
++ printk("[ERROR]: voltage value over limits!!!");
++ return -EINVAL;
++ }
++
++ if(voltage > voltage_table[16]) { // 1750 ~ 1000 mV
++ for(position = 15; position >= 0; position --) {
++ if(voltage_table[position] == voltage) break;
++ }
++
++ }
++ else if(voltage >= voltage_table[31]) { //975 ~ 600 mV
++ for(position = 31; position >= 16; position --) {
++ if(voltage_table[position] == voltage) break;
++ }
++ }
++ else {
++ printk("[error]: Can't find adquate voltage table list value\n");
++ return -EINVAL;
++ }
++
++ printk("Founded postion :[%d] \n",position);
++
++ position &=0x1f;
++
++ /* It's depend on schematic and assigned GPIO pin */
++ val = __raw_readl(S3C2410_GPCDAT) &~(0x1<<7|0x1<<6|0x1<<5|0x1<<0);
++ val |= ((((position & 0xe)>>1)<<5)|(position & 0x1));
++ __raw_writel(val, S3C2410_GPCDAT);
++
++ val = __raw_readl(S3C2410_GPBDAT) &~(0x1<<2);
++ val |= (position & 0x10)<<2;
++ __raw_writel(val,S3C2410_GPBDAT);
++
++ if(pwr == ARM_VOLT_STEP) { //ARM Voltage Control => ARM_REG_LE => Output H => Data Changed
++
++ CONTROl_SET(ARM_LE, 0x1);
++ udelay(10);
++ CONTROl_SET(ARM_LE, 0x0);
++ } else if(pwr == INT_VOLT_STEP) { // INT Voltage Control
++ CONTROl_SET(INT_LE, 0x1);
++ udelay(10);
++ CONTROl_SET(INT_LE, 0x0);
++ } else {
++ printk("[error]: set_ltc3714, check mode [pwr] value\n");
++ return -EINVAL;
++ }
++
++
++ return 0;
++
++}
++
++/* Set CLK_DIV0 register with specific APLL divider value*/
++static int set_freq_divider(unsigned int clk_source , unsigned int val)
++{
++ unsigned int tmp;
++
++ if (clk_source == ARM_RATIO){
++ if(val > MAX_APLL_RATIO) {
++ printk(KERN_ERR "Freq divider value(APLL_RATIO) is out of spec\n");
++ printk(KERN_ERR "APLL_RATIO : 0~7\n");
++ return -EINVAL;
++ }
++ dvfs_info.freq_divider = (val + 1);
++ tmp = __raw_readl(ARM_CLK_DIV)&~ARM_DIV_MASK;
++ tmp |= val<<ARM_DIV_RATIO_BIT;
++ __raw_writel(tmp, ARM_CLK_DIV);
++ } else if (clk_source == HCLK_RATIO){
++ if(val > MAX_HCLK2_RATIO) {
++ printk(KERN_ERR "Freq divider value is out of spec\n");
++ printk(KERN_ERR "HCLK_PostDivider RATIO : 0,1 \n");
++ return -EINVAL;
++ }
++ /* it's only for setting the HCLK or system Clock */
++ tmp = __raw_readl(ARM_CLK_DIV) & ~HCLK_DIV_MASK;
++ tmp |= (val<<HCLK_DIV_RATIO_BIT);
++ __raw_writel(tmp, ARM_CLK_DIV);
++ } else {
++ printk(KERN_ERR " It's wrong clock post divider path \n");
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++/* Set APLL P,M,S value to make specific CPU frequency*/
++/* Only support Async mode */
++static int set_pll(unsigned int freq_level)
++{
++ unsigned int val,err;
++
++ if (freq_level < NUMBER_OF_STEP ){
++
++ val = ((__raw_readl(MPLL_CON)>>14)&0x3ff);
++
++ if (val == 267){
++ err = set_freq_divider(ARM_RATIO, pll_mps_table[freq_level][ARM_RATIO]);
++ if(err)
++ return err;
++
++ err = set_freq_divider(HCLK_RATIO, pll_mps_table[freq_level][HCLK_RATIO]);
++ if(err)
++ return err;
++ }
++ else{
++ err = set_freq_divider(ARM_RATIO, pll_mps_table400[freq_level][ARM_RATIO]);
++ if(err)
++ return err;
++
++ err = set_freq_divider(HCLK_RATIO, pll_mps_table400[freq_level][HCLK_RATIO]);
++ if(err)
++ return err;
++ }
++
++ val = __raw_readl(ARM_CLK_DIV) & ~(DVFS_MASK);
++ val |= (pll_mps_table[freq_level][DVFS] << 13) ;
++ __raw_writel(val, ARM_CLK_DIV);
++ }
++ else{
++ printk("It's wrong DFS %d range \n",freq_level);
++ }
++
++ return 0;
++}
++
++/* Other modules can use this function to change power status */
++/* Especially, ARM Dynamic power interface can control DVFS by accessing this */
++int set_dvfs_step(unsigned int step)
++{
++ int err;
++
++ if(step >= NUMBER_OF_STEP) {
++ printk(KERN_ERR "DVFS step is out of range(0 ~ %2d)\n",NUMBER_OF_STEP-1);
++ return -EINVAL;
++ }
++
++ if(previous_dvfs_step < step) { // decreasing CPU freq & Voltage
++ /* CPU Frequency control */
++ err = set_pll(dvfs_step[step][FREQ_STEP]);
++
++ /* CPU voltage control */
++ dvfs_info.pwr_type = ARM_VOLT_STEP;
++ dvfs_info.new_voltage = dvfs_step[step][ARM_VOLT_STEP];
++ err = set_ltc3714(dvfs_info.pwr_type, dvfs_info.new_voltage);
++ if(err == 0){
++ dvfs_info.curr_voltage_arm = dvfs_info.new_voltage;
++ }
++
++
++ dvfs_info.pwr_type = INT_VOLT_STEP;
++ dvfs_info.new_voltage = dvfs_step[step][INT_VOLT_STEP];
++ err = set_ltc3714(dvfs_info.pwr_type, dvfs_info.new_voltage);
++ if(err == 0){
++ dvfs_info.curr_voltage_internal = dvfs_info.new_voltage;
++ }
++
++ } else if(previous_dvfs_step > step) { // increasing CPU freq & Voltage
++
++ /* CPU voltage control */
++ dvfs_info.pwr_type = ARM_VOLT_STEP;
++ dvfs_info.new_voltage = dvfs_step[step][ARM_VOLT_STEP];
++ err = set_ltc3714(dvfs_info.pwr_type, dvfs_info.new_voltage);
++ if(err == 0){
++ dvfs_info.curr_voltage_arm = dvfs_info.new_voltage;
++ }
++
++ dvfs_info.pwr_type = INT_VOLT_STEP;
++ dvfs_info.new_voltage = dvfs_step[step][INT_VOLT_STEP];
++ err = set_ltc3714(dvfs_info.pwr_type, dvfs_info.new_voltage);
++ if(err == 0){
++ dvfs_info.curr_voltage_internal = dvfs_info.new_voltage;
++ }
++
++ /* CPU Frequency control */
++ err = set_pll(dvfs_step[step][FREQ_STEP]);
++
++ } else {
++ }
++ previous_dvfs_step = step;
++
++ return 0;
++}
++
++EXPORT_SYMBOL(set_dvfs_step);
++
++int s3c_dvfs_open(struct inode *inode, struct file *filp)
++{
++ int num = MINOR(inode->i_rdev);
++
++ printk("s3c_dvfs_open -> minor : %d\n", num);
++
++ return 0;
++}
++
++ssize_t s3c_dvfs_read(struct file *filp, char *buf, size_t count,
++ loff_t *f_pos)
++{
++ return 0;
++}
++
++ssize_t s3c_dvfs_write(struct file *filp, const char *buf, size_t count,
++ loff_t *f_pos)
++{
++ return 0;
++}
++
++int s3c_dvfs_ioctl(struct inode *inode, struct file *filp,
++ unsigned int cmd, unsigned long arg)
++{
++ int err, size;
++
++ if(_IOC_TYPE(cmd) != DVFS_IOCTL_MAGIC) return -EINVAL;
++ if(_IOC_NR(cmd) >= DVFS_MAXNR) return -EINVAL;
++
++ size = _IOC_SIZE(cmd);
++
++ switch(cmd) {
++ case DVFS_ON:
++ break;
++ case DVFS_OFF:
++ break;
++ case DVFS_GET_STATUS:
++ err=copy_to_user((void *) arg, (const void *) &dvfs_info, (unsigned long) size);
++ break;
++ case DVFS_SET_STATUS:
++ err=copy_from_user((void *) &dvfs_info, (const void *) arg, size);
++ err = set_ltc3714(dvfs_info.pwr_type, dvfs_info.new_voltage);
++
++ if(err != 0) return err;
++
++ if(dvfs_info.pwr_type == ARM_VOLT_STEP) {
++ dvfs_info.curr_voltage_arm = dvfs_info.new_voltage;
++ } else if(dvfs_info.pwr_type == INT_VOLT_STEP) {
++ dvfs_info.curr_voltage_internal = dvfs_info.new_voltage;
++ } else {
++ }
++ break;
++ default:
++ break;
++ }
++ return 0;
++}
++
++int s3c_dvfs_release(struct inode *inode, struct file *filp)
++{
++ printk("s3c_dvfs_release \n");
++ return 0;
++}
++
++struct file_operations s3c_dvfs_fops =
++{
++ .owner = THIS_MODULE,
++ .read = s3c_dvfs_read,
++ .write = s3c_dvfs_write,
++ .ioctl = s3c_dvfs_ioctl,
++ .open = s3c_dvfs_open,
++ .release = s3c_dvfs_release,
++};
++
++#ifdef SUPPORT_PROC_FS
++int read_proc_voltage(char *page, char **start, off_t off,
++ int count, int *eof, void *data_unused)
++{
++ char *buf;
++
++ buf = page;
++ buf += sprintf(buf, "ARM = [%d]mV, Internal = [%d]mV\n", dvfs_info.curr_voltage_arm,dvfs_info.curr_voltage_internal);
++
++ return buf - page;
++}
++
++int write_proc_voltage(struct file *file, const char __user *buffer,
++ unsigned long count, void *data)
++{
++ int len, err;
++ char *realdata;
++
++ realdata = (char *) data;
++
++ if(copy_from_user(realdata, buffer, count))
++ return -EFAULT;
++
++ realdata[count] = '\0';
++ len = strlen(realdata);
++ if(realdata[len - 1] == '\n')
++ realdata[--len] = 0;
++
++ dvfs_info.new_voltage = simple_strtoul(realdata, NULL, 10);
++
++ err = set_ltc3714(dvfs_info.pwr_type, dvfs_info.new_voltage);
++
++ if(err == 0) {
++ if(dvfs_info.pwr_type == ARM_VOLT_STEP) {
++ dvfs_info.curr_voltage_arm = dvfs_info.new_voltage;
++ } else if(dvfs_info.pwr_type == INT_VOLT_STEP) {
++ dvfs_info.curr_voltage_internal = dvfs_info.new_voltage;
++ } else {
++ }
++ }
++
++ return count;
++}
++
++int read_proc_freq(char *page, char **start, off_t off,
++ int count, int *eof, void *data_unused)
++{
++ char *buf;
++ unsigned int arm_freq,tmp;
++
++ arm_freq = GET_ARM_CLOCK(XTAL);
++ dvfs_info.freq_divider = READ_ARM_DIV;
++ dvfs_info.curr_freq = arm_freq/dvfs_info.freq_divider;
++
++ tmp=__raw_readl(ARM_CLK_DIV) ;
++ if((tmp&DVFS_MASK)){ /* if DVFS set, HCLK use for ARMCLK*/
++ dvfs_info.curr_freq = arm_freq/(((tmp & HCLK_DIV_MASK)+1)<<((tmp&0x8)>>3));
++ }
++
++ buf = page;
++ buf += sprintf(buf, "Freq = [%d]MHz\n", dvfs_info.curr_freq/1000000);
++
++ return buf - page;
++}
++
++int write_proc_freq(struct file *file, const char __user *buffer,
++ unsigned long count, void *data)
++{
++ int len, tmp, err;
++ char *realdata;
++
++ realdata = (char *) data;
++
++ if(copy_from_user(realdata, buffer, count))
++ return -EFAULT;
++
++ realdata[count] = '\0';
++ len = strlen(realdata);
++ if(realdata[len - 1] == '\n')
++ realdata[--len] = 0;
++ tmp = simple_strtoul(realdata, NULL, 10);
++
++ printk("level %d \n",tmp);
++
++ err = set_freq_divider(ARM_RATIO, tmp);
++ if(err){
++ printk("level err %d \n",err);
++ return err;
++ }
++
++ return count;
++}
++
++int write_proc_step(struct file *file, const char __user *buffer, unsigned long count, void *data)
++{
++ int len, tmp, err;
++ char *realdata;
++
++ realdata = (char *) data;
++
++ if(copy_from_user(realdata, buffer, count))
++ return -EFAULT;
++ realdata[count] = '\0';
++ len = strlen(realdata);
++ if(realdata[len - 1] == '\n')
++ realdata[--len] = 0;
++ tmp = simple_strtoul(realdata, NULL, 10);
++
++ err = set_dvfs_step(tmp);
++
++ return count;
++}
++
++#endif
++
++int s3c_dvfs_init(void)
++{
++ int result;
++
++ /* Initialize structure */
++ previous_dvfs_step = -1; /* 1st initial operating*/
++ set_dvfs_gpio();
++ set_dvfs_step(0); // Set Maximum or default initial performance set
++ CONTROl_SET(DVS_OE, 0x1); /* Just open target power voltage*/
++
++ result = register_chrdev(DEV_MAJOR, DEV_NAME, &s3c_dvfs_fops);
++
++ if(result < 0)
++ return result;
++
++
++
++#ifdef SUPPORT_PROC_FS
++ proc_root_fp = proc_mkdir("dvfs", 0);
++
++ proc_voltage_fp = create_proc_entry("voltage", S_IFREG | S_IRWXU, proc_root_fp);
++ if(proc_voltage_fp) {
++ proc_voltage_fp->data = proc_voltage_str;
++ proc_voltage_fp->read_proc = read_proc_voltage;
++ proc_voltage_fp->write_proc = write_proc_voltage;
++ }
++
++ proc_freq_fp = create_proc_entry("frequency", S_IFREG | S_IRWXU, proc_root_fp);
++ if(proc_freq_fp) {
++ proc_freq_fp->data = proc_freq_str;
++ proc_freq_fp->read_proc = read_proc_freq;
++ proc_freq_fp->write_proc = write_proc_freq;
++ }
++
++ proc_step_fp = create_proc_entry("step", S_IFREG | S_IWUSR, proc_root_fp);
++ if(proc_step_fp) {
++ proc_step_fp->data = proc_step_str;
++ proc_step_fp->read_proc = NULL;
++ proc_step_fp->write_proc = write_proc_step;
++ }
++#endif
++
++ return 0;
++}
++
++void s3c_dvfs_exit(void)
++{
++ unregister_chrdev(DEV_MAJOR, DEV_NAME);
++ remove_proc_entry("voltage", proc_root_fp);
++ remove_proc_entry("frequency", proc_root_fp);
++ remove_proc_entry("step", proc_root_fp);
++ remove_proc_entry("dvfs", 0);
++}
++
++module_init(s3c_dvfs_init);
++module_exit(s3c_dvfs_exit);
++
++MODULE_LICENSE("Dual BSD/GPL");
++MODULE_DESCRIPTION("S3C24xx DVFS Driver");
++MODULE_AUTHOR("Jongpill.Lee, <boyko.lee@samsung.com>");
+diff --git a/arch/arm/plat-s3c24xx/s3c24xx-dvfs.h b/arch/arm/plat-s3c24xx/s3c24xx-dvfs.h
+new file mode 100644
+index 0000000..37e4d21
+--- /dev/null
++++ b/arch/arm/plat-s3c24xx/s3c24xx-dvfs.h
+@@ -0,0 +1,70 @@
++/*
++ 2008.04.14. All of AP are merged single application and definitin
++ in order to be matcing dvs and dfs concept
++ These are confirm on SMDK2450, SMDK2416
++*/
++#ifndef __S3C24XXDVFS_H_
++#define __S3C24XXDVFS_H_
++
++#define DVFS_IOCTL_MAGIC 'd'
++
++typedef struct {
++ unsigned int pwr_type; //ARM:ARMV_STEP, INT:INTV_STEP
++ unsigned int curr_voltage_arm; //ARM core voltage
++ unsigned int curr_voltage_internal; //Internal block voltage
++ unsigned int new_voltage;
++ unsigned int curr_freq;
++ unsigned int freq_divider; // APLL_RATIO + 1
++ unsigned int size;
++} s3c_dvfs_info;
++
++#define DVFS_ON _IO(DVFS_IOCTL_MAGIC, 0)
++#define DVFS_OFF _IO(DVFS_IOCTL_MAGIC, 1)
++#define DVFS_GET_STATUS _IOR(DVFS_IOCTL_MAGIC, 2, s3c_dvfs_info)
++#define DVFS_SET_STATUS _IOW(DVFS_IOCTL_MAGIC, 3, s3c_dvfs_info)
++
++#define DVFS_MAXNR 4
++
++/* Board dependency SIGNAL and GPIO configuration */
++#include <asm/arch-s3c2410/regs-s3c-clock.h>
++
++#define ARM_LE S3C2410_GPF5
++#define DVS_OE S3C2410_GPF6
++#define INT_LE S3C2410_GPF7
++
++#define CONTROl_SET(pin,to) s3c2410_gpio_setpin(pin, to);
++#define ARM_LE_OUTP S3C2410_GPF5_OUTP
++#define DVS_OE_OUTP S3C2410_GPF6_OUTP
++#define INT_LE_OUTP S3C2410_GPF7_OUTP
++
++#define LTC3714_DATA1 S3C2410_GPC0
++#define LTC3714_DATA2 S3C2410_GPC5
++#define LTC3714_DATA3 S3C2410_GPC6
++#define LTC3714_DATA4 S3C2410_GPC7
++#define LTC3714_DATA5 S3C2410_GPB2
++
++#define LTC3714_OUTP1 S3C2410_GPC0_OUTP
++#define LTC3714_OUTP2 S3C2410_GPC5_OUTP
++#define LTC3714_OUTP3 S3C2410_GPC6_OUTP
++#define LTC3714_OUTP4 S3C2410_GPC7_OUTP
++#define LTC3714_OUTP5 S3C2410_GPB2_OUTP
++
++#define GPIO_CFG(pin, fnc) s3c2410_gpio_cfgpin((pin),(fnc))
++#define GPIO_PULLUP(pin, to) s3c2410_gpio_pullup((pin),(to))
++
++#define ARM_PLL_CON S3C2443_MPLLCON
++#define ARM_CLK_DIV S3C2443_CLKDIV0
++#define MPLL_CON S3C2443_MPLLCON
++#define ARM_DIV_RATIO_BIT 9
++#define ARM_DIV_MASK (0xf<<ARM_DIV_RATIO_BIT)
++#define HCLK_DIV_RATIO_BIT 0
++#define HCLK_DIV_MASK (0x3<<HCLK_DIV_RATIO_BIT)
++#define DVFS_MASK (0x1<<13)
++
++#define READ_ARM_DIV (((__raw_readl(ARM_CLK_DIV)&ARM_DIV_MASK)>>9) + 1)
++#define PLL_CALC_VAL(MDIV,PDIV,SDIV) ((MDIV)<<14 |(PDIV)<<5 |(SDIV))
++#define GET_ARM_CLOCK(baseclk) s3c2443_get_mpll(__raw_readl(S3C2443_MPLLCON),baseclk)
++
++
++
++#endif //__S3C24XXDVS_H_
+diff --git a/arch/arm/plat-s3c64xx/Kconfig b/arch/arm/plat-s3c64xx/Kconfig
+new file mode 100644
+index 0000000..9ee835c
+--- /dev/null
++++ b/arch/arm/plat-s3c64xx/Kconfig
+@@ -0,0 +1,32 @@
++# arch/arm/plat-s3c64xx/Kconfig
++#
++# Copyright 2007 Simtec Electronics
++#
++# Licensed under GPLv2
++
++config PLAT_S3C64XX
++ bool "S3C64XX Platform support"
++ depends on ARCH_S3C2410 && (CPU_S3C6400 || CPU_S3C6410)
++ default y if CPU_S3C6400
++ help
++ Support for S3C6400 and S3C64XX series Samsung Mobile CPU based systems.
++
++if PLAT_S3C64XX
++config S3C64XX_DMA
++ bool "S3C64XX DMA support"
++ depends on CPU_S3C6400 || CPU_S3C6410
++ help
++ S3C6400(6410) DMA support. This is needed for drivers like sound which
++ use the S3C6400(6410)'s DMA system to move data to and from the
++ peripheral blocks.
++
++config S3C64XX_ADC
++ bool "S3C64XX ADC Driver"
++ depends on CPU_S3C6400 || CPU_S3C6410
++ help
++ ADC (A/D Conversion) driver for Samsung S3C6400/6410.
++endif
++
++
++
++
+diff --git a/arch/arm/plat-s3c64xx/Makefile b/arch/arm/plat-s3c64xx/Makefile
+new file mode 100644
+index 0000000..bce4072
+--- /dev/null
++++ b/arch/arm/plat-s3c64xx/Makefile
+@@ -0,0 +1,31 @@
++# arch/arm/plat-s3c64xx/Makefile
++#
++# Copyright 2007 Simtec Electronics
++#
++# Licensed under GPLv2
++
++obj-y :=
++obj-m :=
++obj-n :=
++obj- :=
++
++
++# Core files
++
++obj-y += ../plat-s3c24xx/cpu.o
++obj-$(CONFIG_PLAT_S3C64XX) += irq-pl192.o
++obj-y += ../plat-s3c24xx/devs.o
++obj-y += ../plat-s3c24xx/gpio.o
++obj-$(CONFIG_PLAT_S3C64XX) += time-s3c64xx.o
++obj-y += clock.o
++
++# Architecture dependant builds
++
++obj-$(CONFIG_S3C64XX_DMA) += dma-pl080.o
++obj-$(CONFIG_S3C_ADC) += adc-s3c64xx.o
++obj-$(CONFIG_MACH_SMDK) += ../plat-s3c24xx/common-smdk.o
++obj-$(CONFIG_PM) += pm.o
++obj-$(CONFIG_PM) += sleep.o
++obj-$(CONFIG_S3C64XX_DVFS) += s3c64xx-dvfs.o
++obj-$(CONFIG_CPU_FREQ) += s3c64xx-cpufreq.o
++obj-$(CONFIG_CPU_FREQ) += ltc3714.o
+diff --git a/arch/arm/plat-s3c64xx/adc-s3c64xx.c b/arch/arm/plat-s3c64xx/adc-s3c64xx.c
+new file mode 100644
+index 0000000..f77700f
+--- /dev/null
++++ b/arch/arm/plat-s3c64xx/adc-s3c64xx.c
+@@ -0,0 +1,336 @@
++/*
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ * Copyright (c) 2004 Arnaud Patard <arnaud.patard@rtp-net.org>
++ * iPAQ H1940 touchscreen support
++ *
++ * ChangeLog
++ *
++ * 2004-09-05: Herbert Pötzl <herbert@13thfloor.at>
++ * - added clock (de-)allocation code
++ *
++ * 2005-03-06: Arnaud Patard <arnaud.patard@rtp-net.org>
++ * - h1940_ -> s3c24xx (this driver is now also used on the n30
++ * machines :P)
++ * - Debug messages are now enabled with the config option
++ * TOUCHSCREEN_S3C_DEBUG
++ * - Changed the way the value are read
++ * - Input subsystem should now work
++ * - Use ioremap and readl/writel
++ *
++ * 2005-03-23: Arnaud Patard <arnaud.patard@rtp-net.org>
++ * - Make use of some undocumented features of the touchscreen
++ * controller
++ *
++ */
++
++
++#include <linux/errno.h>
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/slab.h>
++#include <linux/input.h>
++#include <linux/init.h>
++#include <linux/serio.h>
++#include <linux/delay.h>
++#include <linux/platform_device.h>
++#include <linux/miscdevice.h>
++#include <linux/clk.h>
++#include <linux/mutex.h>
++
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/hardware.h>
++#include <asm/uaccess.h>
++
++#include <asm/plat-s3c/regs-adc.h>
++#include <asm/plat-s3c/adc.h>
++#include <asm/arch/irqs.h>
++
++#define ADC_MINOR 131
++#define ADC_INPUT_PIN _IOW('S', 0x0c, unsigned long)
++
++#define ADC_WITH_TOUCHSCREEN
++
++static struct clk *adc_clock;
++static struct resource *adc_mem;
++static void __iomem *base_addr;
++static int adc_port = 0;
++
++#ifdef ADC_WITH_TOUCHSCREEN
++static DEFINE_MUTEX(adc_mutex);
++
++static unsigned long data_for_ADCCON;
++static unsigned long data_for_ADCTSC;
++
++static void s3c_adc_save_SFR_on_ADC(void) {
++
++ data_for_ADCCON = readl(base_addr+S3C2410_ADCCON);
++ data_for_ADCTSC = readl(base_addr+S3C2410_ADCTSC);
++}
++
++static void s3c_adc_restore_SFR_on_ADC(void) {
++
++ writel(data_for_ADCCON, base_addr+S3C2410_ADCCON);
++ writel(data_for_ADCTSC, base_addr+S3C2410_ADCTSC);
++}
++#endif
++
++static int s3c_adc_open(struct inode *inode, struct file *file)
++{
++ printk(KERN_INFO " s3c_adc_open() entered\n");
++ return 0;
++}
++
++static int s3c_adc_get(struct s3c_adc_request *req)
++{
++ unsigned adc_channel = req->channel;
++ int adc_value_ret = 0;
++
++ adc_value_ret = s3c_adc_convert(base_addr, adc_channel);
++
++ req->callback(adc_channel,req->param,adc_value_ret);
++
++ return 0;
++}
++
++static ssize_t
++s3c_adc_read(struct file *file, char __user * buffer,
++ size_t size, loff_t * pos)
++{
++ int adc_value = 0;
++
++ printk(KERN_INFO " s3c_adc_read() entered\n");
++
++#ifdef ADC_WITH_TOUCHSCREEN
++ mutex_lock(&adc_mutex);
++ s3c_adc_save_SFR_on_ADC();
++#endif
++
++ adc_value = s3c_adc_convert(base_addr, adc_port);
++
++#ifdef ADC_WITH_TOUCHSCREEN
++ s3c_adc_restore_SFR_on_ADC();
++ mutex_unlock(&adc_mutex);
++#endif
++
++ printk(KERN_INFO " Converted Value: %03d\n", adc_value);
++
++ if (copy_to_user(buffer, &adc_value, sizeof(unsigned int))) {
++ return -EFAULT;
++ }
++ return sizeof(unsigned int);
++}
++
++
++static int s3c_adc_ioctl(struct inode *inode, struct file *file,
++ unsigned int cmd, unsigned long arg)
++{
++
++ printk(KERN_INFO " s3c_adc_ioctl(cmd:: %d) entered\n", cmd);
++
++ switch (cmd) {
++
++ case ADC_INPUT_PIN:
++ adc_port = (unsigned int) arg;
++
++ if (adc_port >= 4)
++ printk(" %d is already reserved for TouchScreen\n", adc_port);
++ return 0;
++
++ default:
++ return -ENOIOCTLCMD;
++
++ }
++}
++
++static struct file_operations s3c_adc_fops = {
++ .owner = THIS_MODULE,
++ .read = s3c_adc_read,
++ .open = s3c_adc_open,
++ .ioctl = s3c_adc_ioctl,
++};
++
++static struct miscdevice s3c_adc_miscdev = {
++ .minor = ADC_MINOR,
++ .name = "adc",
++ .fops = &s3c_adc_fops,
++};
++
++static struct s3c_adc_cfg *s3c_adc_get_platdata(struct device *dev)
++{
++ if(dev->platform_data != NULL)
++ {
++ printk(KERN_INFO "ADC platform data read\n");
++ return (struct s3c_adc_cfg*)dev->platform_data;
++ }
++
++ return &s3c_adc_platform;
++}
++
++/*
++ * The functions for inserting/removing us as a module.
++ */
++
++static int __init s3c_adc_probe(struct platform_device *pdev)
++{
++ struct resource *res;
++ struct s3c_adc_cfg *plat_data;
++ struct device *dev;
++ int ret;
++ int size;
++
++ res = platform_get_resource(pdev,IORESOURCE_MEM,0);
++ dev = &pdev->dev;
++
++ if(res == NULL){
++ dev_err(dev,"no memory resource specified\n");
++ return -ENOENT;
++ }
++
++ size = (res->end - res->start) + 1;
++
++#if !defined(ADC_WITH_TOUCHSCREEN)
++ adc_mem = request_mem_region(res->start, size, pdev->name);
++ if(adc_mem == NULL){
++ dev_err(dev, "failed to get memory region\n");
++ ret = -ENOENT;
++ goto err_req;
++ }
++#endif
++
++ base_addr = ioremap(res->start,size);
++ if(base_addr == NULL){
++ dev_err(dev,"fail to ioremap() region\n");
++ ret = -ENOENT;
++ goto err_map;
++ }
++
++ adc_clock = clk_get(&pdev->dev, "adc");
++
++ if(IS_ERR(adc_clock)){
++ dev_err(dev,"failed to fine adc clock wource\n");
++ ret = PTR_ERR(adc_clock);
++ goto err_clk;
++ }
++
++ clk_enable(adc_clock);
++
++ /* read platform data from device struct */
++ plat_data = s3c_adc_get_platdata(&pdev->dev);
++
++ if ((plat_data->presc&0xff) > 0)
++ writel(S3C2410_ADCCON_PRSCEN | S3C2410_ADCCON_PRSCVL(plat_data->presc&0xFF), base_addr+S3C2410_ADCCON);
++ else
++ writel(0, base_addr+S3C2410_ADCCON);
++
++ /* Initialise registers */
++ if ((plat_data->delay&0xffff) > 0)
++ writel(plat_data->delay & 0xffff, base_addr+S3C2410_ADCDLY);
++
++ if (plat_data->resolution== 12) {
++ writel(readl(base_addr+S3C2410_ADCCON)|S3C6410_ADCCON_RESSEL_12BIT, base_addr+S3C2410_ADCCON);
++ }
++
++ ret = misc_register(&s3c_adc_miscdev);
++ if (ret) {
++ printk (KERN_ERR "cannot register miscdev on minor=%d (%d)\n",
++ ADC_MINOR, ret);
++ goto err_clk;
++ }
++
++ printk(KERN_INFO "S3C64XX ADC driver successfully probed !\n");
++
++ return 0;
++err_clk:
++ clk_disable(adc_clock);
++ clk_put(adc_clock);
++
++err_map:
++ iounmap(base_addr);
++
++err_req:
++ release_resource(adc_mem);
++ kfree(adc_mem);
++
++ return ret;
++}
++
++
++static int s3c_adc_remove(struct platform_device *dev)
++{
++ printk(KERN_INFO "s3c_adc_remove() of TS called !\n");
++ return 0;
++}
++
++#ifdef CONFIG_PM
++static unsigned int adccon, adctsc, adcdly;
++
++static int s3c_adc_suspend(struct platform_device *dev, pm_message_t state)
++{
++ adccon = readl(base_addr+S3C2410_ADCCON);
++ adctsc = readl(base_addr+S3C2410_ADCTSC);
++ adcdly = readl(base_addr+S3C2410_ADCDLY);
++
++ clk_disable(adc_clock);
++
++ return 0;
++}
++
++static int s3c_adc_resume(struct platform_device *pdev)
++{
++ clk_enable(adc_clock);
++
++ writel(adccon, base_addr+S3C2410_ADCCON);
++ writel(adctsc, base_addr+S3C2410_ADCTSC);
++ writel(adcdly, base_addr+S3C2410_ADCDLY);
++
++ return 0;
++}
++#else
++#define s3c_adc_suspend NULL
++#define s3c_adc_resume NULL
++#endif
++
++static struct platform_driver s3c_adc_driver = {
++ .probe = s3c_adc_probe,
++ .remove = s3c_adc_remove,
++ .suspend = s3c_adc_suspend,
++ .resume = s3c_adc_resume,
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "s3c-adc",
++ },
++};
++
++static char banner[] __initdata = KERN_INFO "S3C64XX ADC driver, (c) 2007 Samsung Electronics\n";
++
++int __init s3c_adc_init(void)
++{
++ printk(banner);
++ return platform_driver_register(&s3c_adc_driver);
++}
++
++void __exit s3c_adc_exit(void)
++{
++ platform_driver_unregister(&s3c_adc_driver);
++}
++
++module_init(s3c_adc_init);
++module_exit(s3c_adc_exit);
++
++MODULE_AUTHOR("boyko.lee@samsung.com>");
++MODULE_DESCRIPTION("S3C64XX adc driver");
++MODULE_LICENSE("GPL");
+diff --git a/arch/arm/plat-s3c64xx/clock.c b/arch/arm/plat-s3c64xx/clock.c
+new file mode 100644
+index 0000000..a776437
+--- /dev/null
++++ b/arch/arm/plat-s3c64xx/clock.c
+@@ -0,0 +1,501 @@
++/* linux/arch/arm/plat-s3c64xx/clock.c
++ *
++ * Copyright (c) 2004-2005 Samsung Electronics
++ *
++ *
++ * S3C64XX Core clock control support
++ *
++ * Based on, and code from linux/arch/arm/mach-versatile/clock.c
++ **
++ ** Copyright (C) 2004 ARM Limited.
++ ** Written by Deep Blue Solutions Limited.
++ *
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++*/
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/list.h>
++#include <linux/errno.h>
++#include <linux/err.h>
++#include <linux/platform_device.h>
++#include <linux/sysdev.h>
++#include <linux/interrupt.h>
++#include <linux/ioport.h>
++#include <linux/clk.h>
++#include <linux/mutex.h>
++#include <linux/delay.h>
++
++#include <asm/hardware.h>
++#include <asm/irq.h>
++#include <asm/io.h>
++
++//#include <asm/arch/regs-clock.h>
++#include <asm/arch/regs-gpio.h>
++
++#include <asm/plat-s3c64xx/clock.h>
++#include <asm/plat-s3c24xx/cpu.h>
++#include <asm/arch-s3c2410/regs-s3c-clock.h>
++
++#define ARM_PLL_CON S3C_APLL_CON
++#define ARM_CLK_DIV S3C_CLK_DIV0
++
++#define ARM_DIV_RATIO_BIT 0
++#define ARM_DIV_MASK (0xf<<ARM_DIV_RATIO_BIT)
++#define HCLK_DIV_RATIO_BIT 9
++#define HCLK_DIV_MASK (0x7<<HCLK_DIV_RATIO_BIT)
++
++#define READ_ARM_DIV ((__raw_readl(ARM_CLK_DIV)&ARM_DIV_MASK) + 1)
++#define PLL_CALC_VAL(MDIV,PDIV,SDIV) ((1<<31)|(MDIV)<<16 |(PDIV)<<8 |(SDIV))
++#define GET_ARM_CLOCK(baseclk) s3c6400_get_pll(__raw_readl(S3C_APLL_CON),baseclk)
++
++#define MHZ 1000*1000
++#define INIT_XTAL 12 * MHZ
++
++/* enable and disable calls for use with the clk struct */
++static const u32 s3c_cpu_clock_table[][6] = {
++ {532*MHZ, 266, 3, 1, 0, 0},
++ {266*MHZ, 266, 3, 1, 0, 1},
++ {133*MHZ, 266, 3, 1, 0, 3},
++};
++
++/* clock information */
++
++static LIST_HEAD(clocks);
++
++DEFINE_MUTEX(clocks_mutex);
++
++/* enable and disable calls for use with the clk struct */
++
++static int clk_null_enable(struct clk *clk, int enable)
++{
++ return 0;
++}
++
++/* Clock API calls */
++
++struct clk *clk_get(struct device *dev, const char *id)
++{
++ struct clk *p;
++ struct clk *clk = ERR_PTR(-ENOENT);
++ int idno;
++
++ if (dev == NULL || dev->bus != &platform_bus_type)
++ idno = -1;
++ else
++ idno = to_platform_device(dev)->id;
++
++ mutex_lock(&clocks_mutex);
++
++ list_for_each_entry(p, &clocks, list) {
++ if (p->id == idno &&
++ strcmp(id, p->name) == 0 &&
++ try_module_get(p->owner)) {
++ clk = p;
++ break;
++ }
++ }
++
++ /* check for the case where a device was supplied, but the
++ * clock that was being searched for is not device specific */
++
++ if (IS_ERR(clk)) {
++ list_for_each_entry(p, &clocks, list) {
++ if (p->id == -1 && strcmp(id, p->name) == 0 &&
++ try_module_get(p->owner)) {
++ clk = p;
++ break;
++ }
++ }
++ }
++
++ mutex_unlock(&clocks_mutex);
++ return clk;
++}
++
++void clk_put(struct clk *clk)
++{
++ module_put(clk->owner);
++}
++
++int clk_enable(struct clk *clk)
++{
++ if (IS_ERR(clk) || clk == NULL)
++ return -EINVAL;
++
++ clk_enable(clk->parent);
++
++ mutex_lock(&clocks_mutex);
++
++ if ((clk->usage++) == 0)
++ (clk->enable)(clk, 1);
++
++ mutex_unlock(&clocks_mutex);
++ return 0;
++}
++
++void clk_disable(struct clk *clk)
++{
++ if (IS_ERR(clk) || clk == NULL)
++ return;
++
++ mutex_lock(&clocks_mutex);
++
++ if ((--clk->usage) == 0)
++ (clk->enable)(clk, 0);
++
++ mutex_unlock(&clocks_mutex);
++ clk_disable(clk->parent);
++}
++
++
++unsigned long clk_get_rate(struct clk *clk)
++{
++ if (IS_ERR(clk))
++ return 0;
++
++ if (clk->rate != 0)
++ return clk->rate;
++
++ if (clk->get_rate != NULL)
++ return (clk->get_rate)(clk);
++
++ if (clk->parent != NULL)
++ return clk_get_rate(clk->parent);
++
++ return clk->rate;
++}
++
++long clk_round_rate(struct clk *clk, unsigned long rate)
++{
++ if (!IS_ERR(clk) && clk->round_rate)
++ return (clk->round_rate)(clk, rate);
++
++ return rate;
++}
++
++int clk_set_rate(struct clk *clk, unsigned long rate)
++{
++ int ret;
++
++ if (IS_ERR(clk))
++ return -EINVAL;
++
++ mutex_lock(&clocks_mutex);
++ ret = (clk->set_rate)(clk, rate);
++ mutex_unlock(&clocks_mutex);
++
++ return ret;
++}
++
++struct clk *clk_get_parent(struct clk *clk)
++{
++ return clk->parent;
++}
++
++int clk_set_parent(struct clk *clk, struct clk *parent)
++{
++ int ret = 0;
++
++ if (IS_ERR(clk))
++ return -EINVAL;
++
++ mutex_lock(&clocks_mutex);
++
++ if (clk->set_parent)
++ ret = (clk->set_parent)(clk, parent);
++
++ mutex_unlock(&clocks_mutex);
++
++ return ret;
++}
++
++EXPORT_SYMBOL(clk_get);
++EXPORT_SYMBOL(clk_put);
++EXPORT_SYMBOL(clk_enable);
++EXPORT_SYMBOL(clk_disable);
++EXPORT_SYMBOL(clk_get_rate);
++EXPORT_SYMBOL(clk_round_rate);
++EXPORT_SYMBOL(clk_set_rate);
++EXPORT_SYMBOL(clk_get_parent);
++EXPORT_SYMBOL(clk_set_parent);
++
++
++void inline s3c_clk_enable (uint clocks, uint enable, ulong gate_reg)
++{
++ unsigned long clkcon;
++ unsigned long flags;
++
++ local_irq_save(flags);
++
++ clkcon = __raw_readl(gate_reg);
++ clkcon &= ~clocks;
++
++ if (enable)
++ clkcon |= clocks;
++
++ __raw_writel(clkcon, gate_reg);
++
++ local_irq_restore(flags);
++}
++
++unsigned long s3c_fclk_get_rate(void)
++{
++ unsigned long apll_con;
++ unsigned long clk_div0_tmp;
++ unsigned long m = 0;
++ unsigned long p = 0;
++ unsigned long s = 0;
++ unsigned long ret;
++
++ apll_con = __raw_readl(S3C_APLL_CON);
++ clk_div0_tmp = __raw_readl(S3C_CLK_DIV0) & 0xf;
++
++ m = (apll_con >> 16) & 0x3ff;
++ p = (apll_con >> 8) & 0x3f;
++ s = apll_con & 0x3;
++
++ ret = (m * (INIT_XTAL / (p * (1 << s))));
++
++ return (ret / (clk_div0_tmp + 1));
++}
++
++unsigned long s3c_fclk_round_rate(struct clk *clk, unsigned long rate)
++{
++ u32 iter;
++
++ for(iter = 1 ; iter < ARRAY_SIZE(s3c_cpu_clock_table) ; iter++){
++ if(rate > s3c_cpu_clock_table[iter][0])
++ return s3c_cpu_clock_table[iter-1][0];
++ }
++
++ return s3c_cpu_clock_table[ARRAY_SIZE(s3c_cpu_clock_table) - 1][0];
++}
++
++int s3c_fclk_set_rate(struct clk *clk, unsigned long rate)
++{
++ u32 ret = -EINVAL;
++ u32 round_tmp;
++ u32 iter;
++ u32 apll_con_tmp;
++ u32 clk_div0_tmp;
++
++ round_tmp = s3c_fclk_round_rate(clk,rate);
++
++ if(round_tmp == (int)s3c_fclk_get_rate())
++ return 0;
++
++ for (iter = 0 ; iter < ARRAY_SIZE(s3c_cpu_clock_table) ; iter++){
++ if(round_tmp == s3c_cpu_clock_table[iter][0])
++ break;
++ }
++
++ clk_div0_tmp = __raw_readl(ARM_CLK_DIV) & ~(ARM_DIV_MASK);
++ clk_div0_tmp |= s3c_cpu_clock_table[iter][5];
++
++ __raw_writel(clk_div0_tmp, ARM_CLK_DIV);
++
++ if (__raw_readl(ARM_CLK_DIV) == clk_div0_tmp)
++ ret = 0;
++
++ clk->rate = s3c_cpu_clock_table[iter][0];
++
++ return ret;
++}
++
++/* base clocks */
++
++struct clk clk_xtal = {
++ .name = "xtal",
++ .id = -1,
++ .rate = 0,
++ .parent = NULL,
++ .ctrlbit = 0,
++};
++
++struct clk clk_mpll = {
++ .name = "mpll",
++ .id = -1,
++};
++
++
++struct clk clk_epll = {
++ .name = "epll",
++ .id = -1,
++ .rate = 0,
++ .parent = NULL,
++ .ctrlbit = 0,
++
++};
++
++struct clk clk_f = {
++ .name = "fclk",
++ .id = -1,
++ .rate = 0,
++ .parent = &clk_mpll,
++ .ctrlbit = 0,
++ .set_rate = s3c_fclk_set_rate,
++ .round_rate = s3c_fclk_round_rate,
++};
++
++struct clk clk_h = {
++ .name = "hclk",
++ .id = -1,
++ .rate = 0,
++ .parent = NULL,
++ .ctrlbit = 0,
++};
++
++struct clk clk_p = {
++ .name = "pclk",
++ .id = -1,
++ .rate = 0,
++ .parent = NULL,
++ .ctrlbit = 0,
++};
++
++
++struct clk clk_hx2 = {
++ .name = "hclkx2",
++ .id = -1,
++ .rate = 0,
++ .parent = NULL,
++ .ctrlbit = 0,
++};
++
++struct clk clk_s = {
++ .name = "sclk",
++ .id = -1,
++ .rate = 0,
++ .parent = NULL,
++ .ctrlbit = 0,
++};
++
++struct clk clk_u = {
++ .name = "uclk",
++ .id = -1,
++ .rate = 0,
++ .parent = NULL,
++ .ctrlbit = 0,
++};
++
++struct clk clk_48m = {
++ .name = "clk48m",
++ .id = -1,
++ .rate = 48*1000*1000,
++ .parent = NULL,
++ .ctrlbit = 0,
++};
++
++struct clk clk_27m = {
++ .name = "clk27m",
++ .id = -1,
++ .rate = 27*1000*1000,
++ .parent = NULL,
++ .ctrlbit = 0,
++};
++
++
++
++/* initialise the clock system */
++
++int s3c64xx_register_clock(struct clk *clk)
++{
++ clk->owner = THIS_MODULE;
++
++ if (clk->enable == NULL)
++ clk->enable = clk_null_enable;
++
++ /* add to the list of available clocks */
++
++ mutex_lock(&clocks_mutex);
++ list_add(&clk->list, &clocks);
++ mutex_unlock(&clocks_mutex);
++
++ return 0;
++}
++
++int s3c64xx_register_clocks(struct clk **clks, int nr_clks)
++{
++ int fails = 0;
++
++ for (; nr_clks > 0; nr_clks--, clks++) {
++ if (s3c64xx_register_clock(*clks) < 0)
++ fails++;
++ }
++
++ return fails;
++}
++
++/* initalise all the clocks */
++
++int __init s3c64xx_setup_clocks(unsigned long xtal,
++ unsigned long fclk,
++ unsigned long hclk,
++ unsigned long pclk)
++{
++ printk(KERN_INFO "S3C64XX Clocks, (c) 2007 Samssung Electronics\n");
++
++ /* initialise the main system clocks */
++
++ clk_xtal.rate = xtal;
++ clk_mpll.rate = fclk;
++ clk_h.rate = hclk;
++ clk_p.rate = pclk;
++ clk_f.rate = fclk;
++
++ /* assume uart clocks are correctly setup */
++
++ /* register our clocks */
++
++ if (s3c64xx_register_clock(&clk_xtal) < 0)
++ printk(KERN_ERR "failed to register master xtal\n");
++
++ if (s3c64xx_register_clock(&clk_mpll) < 0)
++ printk(KERN_ERR "failed to register mpll clock\n");
++
++ if (s3c64xx_register_clock(&clk_f) < 0)
++ printk(KERN_ERR "failed to register cpu fclk\n");
++
++ if (s3c64xx_register_clock(&clk_h) < 0)
++ printk(KERN_ERR "failed to register cpu hclk\n");
++
++ if (s3c64xx_register_clock(&clk_p) < 0)
++ printk(KERN_ERR "failed to register cpu pclk\n");
++
++ if (s3c64xx_register_clock(&clk_epll) < 0)
++ printk(KERN_ERR "failed to register epll clock\n");
++
++ /* register hclkx2 */
++ if (s3c64xx_register_clock(&clk_hx2) < 0)
++ printk(KERN_ERR "failed to register cpu hclkx2\n");
++
++ if (s3c64xx_register_clock(&clk_s) < 0)
++ printk(KERN_ERR "failed to register cpu pclk\n");
++
++ if (s3c64xx_register_clock(&clk_u) < 0)
++ printk(KERN_ERR "failed to register cpu uclk\n");
++
++ if (s3c64xx_register_clock(&clk_48m) < 0)
++ printk(KERN_ERR "failed to register cpu uclk\n");
++
++ if (s3c64xx_register_clock(&clk_27m) < 0)
++ printk(KERN_ERR "failed to register cpu uclk\n");
++
++ return 0;
++}
++
+diff --git a/arch/arm/plat-s3c64xx/dma-pl080.c b/arch/arm/plat-s3c64xx/dma-pl080.c
+new file mode 100644
+index 0000000..a71a3ad
+--- /dev/null
++++ b/arch/arm/plat-s3c64xx/dma-pl080.c
+@@ -0,0 +1,1672 @@
++/* linux/arch/arm/plat-s3c24xx/dma-pl080.c
++ *
++ * Copyright (c) 2003-2005,2006 Samsung Electronics
++ *
++ * S3C6400 DMA core
++ *
++ * http://www.samsung.com/
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++*/
++
++#ifdef CONFIG_S3C_DMA_DEBUG
++#define DEBUG
++#endif
++
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/sched.h>
++#include <linux/spinlock.h>
++#include <linux/interrupt.h>
++#include <linux/sysdev.h>
++#include <linux/slab.h>
++#include <linux/errno.h>
++#include <linux/delay.h>
++
++#include <asm/system.h>
++#include <asm/irq.h>
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/dma.h>
++
++#include <asm/arch/regs-s3c-clock.h>
++#include <asm/mach/dma.h>
++#include <asm/arch/map.h>
++#include <asm/plat-s3c24xx/dma.h>
++
++
++/* io map for dma */
++static void __iomem *dma_base;
++static struct kmem_cache *dma_kmem;
++
++static int dma_channels;
++struct s3c24xx_dma_selection dma_sel;
++static struct s3c2410_dma_chan *dma_chan_map[DMACH_MAX];
++
++/* dma channel state information */
++struct s3c2410_dma_chan s3c_dma_chans[S3C2410_DMA_CHANNELS];
++s3c_dma_controller_t s3c_dma_cntlrs[S3C_DMA_CONTROLLERS];
++
++#undef pr_debug
++//#define dma_dbg
++
++#ifdef dma_dbg
++#define sh_printk(fmt...) printk( fmt)
++#define pr_debug(fmt...) printk( fmt)
++#else
++#define sh_printk(fmt...)
++#define pr_debug(fmt...)
++#endif
++
++/* debugging functions */
++
++#define BUF_MAGIC (0xcafebabe)
++
++#define dmawarn(fmt...) printk(KERN_DEBUG fmt)
++
++#define dma_regaddr(chan, reg) ((chan)->regs + (reg))
++#define dma_wrreg(chan, reg, val) writel((val), (chan)->regs + (reg))
++#define dma_rdreg(chan, reg) readl((chan)->regs + (reg))
++
++#define dbg_showregs(chan) do { } while(0)
++#define dbg_showchan(chan) do { } while(0)
++
++void s3c_dma_dump(int dcon_num, int channel)
++{
++ unsigned long tmp;
++ s3c_dma_controller_t *dma_controller = &s3c_dma_cntlrs[dcon_num];
++
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_INT_STATUS);
++ printk("%d dcon_num %d subchnnel INT_STATUS %lx\n", dcon_num, channel, tmp);
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_INT_TCSTATUS);
++ printk("%d dcon_num %d subchnnel INT_TCSTATUS %lx\n", dcon_num, channel, tmp);
++
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_ENBLD_CHANNELS);
++ printk("%d dcon_num %d subchnnel ENBLD_CHANNELS %lx\n", dcon_num, channel, tmp);
++
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_CONFIGURATION);
++ printk("%d dcon_num %d subchnnel DMAC_CONFIGUARATION %lx\n", dcon_num, channel, tmp);
++
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_CSRCADDR(channel));
++ printk("%d dcon_num %d subchnnel SRCADDRESS %lx\n", dcon_num, channel, tmp);
++
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_CDESTADDR(channel));
++ printk("%d dcon_num %d subchnnel DESTADDRESS %lx\n", dcon_num, channel, tmp);
++
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_CLLI(channel));
++ printk("%d dcon_num %d subchnnel LLI %lx\n", dcon_num, channel, tmp);
++
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_CCONTROL0(channel));
++ printk("%d dcon_num %d subchnnel CCONTROL0 %lx\n", dcon_num, channel, tmp);
++
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_CCONTROL1(channel));
++ printk("%d dcon_num %d subchnnel CCONTROL1 %lx\n", dcon_num, channel, tmp);
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_CCONFIGURATION(channel));
++
++ printk("%d dcon_num %d subchnnel CH CONFIGUARATION %lx\n", dcon_num, channel, tmp);
++}
++
++
++/* lookup_dma_channel
++ *
++ * change the dma channel number given into a real dma channel id
++*/
++
++static struct s3c2410_dma_chan *lookup_dma_channel(unsigned int channel)
++{
++ if (channel & DMACH_LOW_LEVEL)
++ return &s3c_dma_chans[channel & ~DMACH_LOW_LEVEL];
++ else
++ return dma_chan_map[channel];
++}
++
++/* s3c_dma_stats_timeout
++ *
++ * Update DMA stats from timeout info
++ */
++static void s3c_dma_stats_timeout(struct s3c2410_dma_stats * stats, int val)
++{
++ if (stats == NULL)
++ return;
++
++ if (val > stats->timeout_longest)
++ stats->timeout_longest = val;
++ if (val < stats->timeout_shortest)
++ stats->timeout_shortest = val;
++
++ stats->timeout_avg += val;
++}
++
++void s3c_enable_dmac(unsigned int dcon_num)
++{
++ s3c_dma_controller_t *dma_controller = &s3c_dma_cntlrs[dcon_num];
++ dma_wrreg(dma_controller, S3C_DMAC_CONFIGURATION, S3C_DMA_CONTROLLER_ENABLE);
++}
++
++void s3c_disable_dmac(unsigned int dcon_num)
++{
++ unsigned long tmp;
++ s3c_dma_controller_t *dma_controller = &s3c_dma_cntlrs[dcon_num];
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_CONFIGURATION);
++ tmp &= ~S3C_DMA_CONTROLLER_ENABLE;
++ dma_wrreg(dma_controller, S3C_DMAC_CONFIGURATION, tmp);
++}
++
++void s3c_clear_interrupts (int dcon_num, int channel)
++{
++ unsigned long tmp;
++ s3c_dma_controller_t *dma_controller = &s3c_dma_cntlrs[dcon_num];
++
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_INT_TCCLEAR);
++ tmp |= (1 << channel);
++ dma_wrreg(dma_controller, S3C_DMAC_INT_TCCLEAR, tmp);
++
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_INT_ERRORCLEAR);
++ tmp |= (1 << channel);
++ dma_wrreg(dma_controller, S3C_DMAC_INT_ERRORCLEAR, tmp);
++}
++
++/* s3c_dma_waitforload
++ *
++ * wait for the DMA engine to load a buffer, and update the state accordingly
++ */
++static int s3c_dma_waitforload(struct s3c2410_dma_chan *chan, int line)
++{
++ int timeout = chan->load_timeout;
++ int took;
++
++ pr_debug("%s channel number : %d\n", __FUNCTION__, chan->number);
++
++ if (chan->load_state != S3C2410_DMALOAD_1LOADED) {
++ printk(KERN_ERR
++ "dma%d: s3c_dma_waitforload() called in loadstate %d from line %d\n",
++ chan->number, chan->load_state, line);
++ return 0;
++ }
++
++ if (chan->stats != NULL)
++ chan->stats->loads++;
++
++ while (--timeout > 0) {
++ if ((dma_rdreg(chan->dma_con, S3C_DMAC_ENBLD_CHANNELS)) & (0x1 << chan->number)) {
++ took = chan->load_timeout - timeout;
++ s3c_dma_stats_timeout(chan->stats, took);
++
++ switch (chan->load_state) {
++ case S3C2410_DMALOAD_1LOADED:
++ chan->load_state = S3C2410_DMALOAD_1RUNNING;
++ break;
++
++ default:
++ printk(KERN_ERR
++ "dma%d: unknown load_state in s3c_dma_waitforload() %d\n",
++ chan->number, chan->load_state);
++ }
++
++ return 1;
++ }
++ }
++
++ if (chan->stats != NULL) {
++ chan->stats->timeout_failed++;
++ }
++
++ return 0;
++}
++
++
++/* s3c_dma_loadbuffer
++ *
++ * load a buffer, and update the channel state
++ */
++static inline int s3c_dma_loadbuffer(struct s3c2410_dma_chan *chan,
++ struct s3c2410_dma_buf *buf)
++{
++ unsigned long reload;
++
++ pr_debug("s3c_chan_loadbuffer: loading buffer %p (0x%08lx,0x%06x)\n",
++ buf, (unsigned long) buf->data, buf->size);
++
++ if (buf == NULL) {
++ dmawarn("buffer is NULL\n");
++ return -EINVAL;
++ }
++
++ /* check the state of the channel before we do anything */
++
++ if (chan->load_state == S3C2410_DMALOAD_1LOADED) {
++ dmawarn("load_state is S3C2410_DMALOAD_1LOADED\n");
++ reload = (buf->next == NULL) ? S3C2410_DCON_NORELOAD : 0;
++ }
++
++ if (chan->load_state == S3C2410_DMALOAD_1LOADED_1RUNNING) {
++ dmawarn("state is S3C2410_DMALOAD_1LOADED_1RUNNING\n");
++ reload = S3C2410_DCON_AUTORELOAD;
++ }
++
++ writel(buf->data, chan->addr_reg);
++
++ pr_debug("%s: DMA control0 - %08x\n", __FUNCTION__, chan->dcon);
++ pr_debug("%s: DMA control1 - %08x\n", __FUNCTION__, (buf->size / chan->xfer_unit));
++
++ dma_wrreg(chan, S3C_DMAC_CxCONTROL0, chan->dcon);
++ dma_wrreg(chan, S3C_DMAC_CxCONTROL1, (buf->size / chan->xfer_unit));
++
++ chan->next = buf->next;
++
++ /* update the state of the channel */
++
++ switch (chan->load_state) {
++ case S3C2410_DMALOAD_NONE:
++ chan->load_state = S3C2410_DMALOAD_1LOADED;
++ break;
++
++ case S3C2410_DMALOAD_1RUNNING:
++ chan->load_state = S3C2410_DMALOAD_1LOADED_1RUNNING;
++ break;
++
++ default:
++ dmawarn("dmaload: unknown state %d in loadbuffer\n", chan->load_state);
++ break;
++ }
++
++ return 0;
++}
++
++
++/* s3c_dma_call_op
++ *
++ * small routine to call the o routine with the given op if it has been
++ * registered
++ */
++static void s3c_dma_call_op(struct s3c2410_dma_chan * chan, enum s3c2410_chan_op op)
++{
++ if (chan->op_fn != NULL) {
++ (chan->op_fn) (chan, op);
++ }
++}
++
++/* s3c_dma_buffdone
++ *
++ * small wrapper to check if callback routine needs to be called, and
++ * if so, call it
++ */
++static inline void s3c_dma_buffdone(struct s3c2410_dma_chan * chan,
++ struct s3c2410_dma_buf * buf,
++ enum s3c2410_dma_buffresult result)
++{
++ pr_debug("callback_fn will be called=%p, buf=%p, id=%p, size=%d, result=%d\n",
++ chan->callback_fn, buf, buf->id, buf->size, result);
++
++ if (chan->callback_fn != NULL) {
++ (chan->callback_fn) (chan, buf->id, buf->size, result);
++ }
++}
++
++/* s3c_dma_start
++ *
++ * start a dma channel going
++ */
++static int s3c_dma_start(struct s3c2410_dma_chan *chan)
++{
++ unsigned long flags;
++
++ pr_debug("s3c_start_dma: channel number=%d, index=%d\n", chan->number, chan->index);
++
++ local_irq_save(flags);
++
++ if (chan->state == S3C2410_DMA_RUNNING) {
++ pr_debug("s3c_start_dma: already running (%d)\n", chan->state);
++ local_irq_restore(flags);
++ return 0;
++ }
++
++ chan->state = S3C2410_DMA_RUNNING;
++
++ /* check wether there is anything to load, and if not, see
++ * if we can find anything to load
++ */
++
++ if (chan->load_state == S3C2410_DMALOAD_NONE) {
++ if (chan->next == NULL) {
++ printk(KERN_ERR "dma%d: dcon_num has nothing loaded\n", chan->number);
++ chan->state = S3C2410_DMA_IDLE;
++ local_irq_restore(flags);
++ return -EINVAL;
++ }
++
++ s3c_dma_loadbuffer(chan, chan->next);
++ }
++
++ dbg_showchan(chan);
++
++ /* enable the channel */
++
++ if (!chan->irq_enabled) {
++ enable_irq(chan->irq);
++ chan->irq_enabled = 1;
++ }
++
++ /* Get the DMA channel started ...*/
++ dma_wrreg(chan, S3C_DMAC_CxCONFIGURATION, chan->config_flags);
++
++ pr_debug("%s:wrote %08lx to S3C_DMAC_CxCONFIGURATION.\n",__FUNCTION__, chan->config_flags);
++
++ /* Start the DMA operation on Peripheral */
++ s3c_dma_call_op(chan, S3C2410_DMAOP_START);
++
++ dbg_showchan(chan);
++
++ /* if we've only loaded one buffer onto the channel, then chec
++ * to see if we have another, and if so, try and load it so when
++ * the first buffer is finished, the new one will be loaded onto
++ * the channel */
++#if 0
++ if (chan->next != NULL) {
++ if (chan->load_state == S3C2410_DMALOAD_1LOADED) {
++
++ if (s3c2410_dma_waitforload(chan, __LINE__) == 0) {
++ pr_debug("%s: buff not yet loaded, no more todo\n",
++ __FUNCTION__);
++ } else {
++ chan->load_state = S3C2410_DMALOAD_1RUNNING;
++ s3c2410_dma_loadbuffer(chan, chan->next);
++ }
++
++ } else if (chan->load_state == S3C2410_DMALOAD_1RUNNING) {
++ s3c2410_dma_loadbuffer(chan, chan->next);
++ }
++ }
++#endif
++ local_irq_restore(flags);
++ return 0;
++}
++
++
++/* s3c_dma_canload
++ *
++ * work out if we can queue another buffer into the DMA engine
++ */
++
++#if 0
++static int s3c_dma_canload(struct s3c2410_dma_chan * chan)
++{
++ if (chan->load_state == S3C2410_DMALOAD_NONE || chan->load_state == S3C2410_DMALOAD_1RUNNING)
++ return 1;
++
++ return 0;
++}
++#endif
++
++
++/* s3c2410_dma_enqueue
++ *
++ * queue an given buffer for dma transfer.
++ *
++ * id the device driver's id information for this buffer
++ * data the physical address of the buffer data
++ * size the size of the buffer in bytes
++ *
++ * If the channel is not running, then the flag S3C2410_DMAF_AUTOSTART
++ * is checked, and if set, the channel is started. If this flag isn't set,
++ * then an error will be returned.
++ *
++ * It is possible to queue more than one DMA buffer onto a channel at
++ * once, and the code will deal with the re-loading of the next buffer
++ * when necessary.
++ */
++int s3c2410_dma_enqueue(unsigned int channel, void *id,
++ dma_addr_t data, int size)
++{
++ struct s3c2410_dma_chan *chan = lookup_dma_channel(channel);
++ struct s3c2410_dma_buf *buf;
++ unsigned long flags;
++
++ pr_debug("%s: id=%p, data=%08x, size=%d\n", __FUNCTION__, id, (unsigned int) data, size);
++
++ buf = kmem_cache_alloc(dma_kmem, GFP_ATOMIC);
++ if (buf == NULL) {
++ printk(KERN_ERR "dma<%d> no memory for buffer\n", channel);
++ return -ENOMEM;
++ }
++
++ pr_debug("%s: new buffer %p\n", __FUNCTION__, buf);
++
++ //dbg_showchan(chan);
++
++ buf->next = NULL;
++ buf->data = buf->ptr = data;
++ buf->size = size;
++ buf->id = id;
++ buf->magic = BUF_MAGIC;
++
++ local_irq_save(flags);
++
++ if (chan->curr == NULL) {
++ /* we've got nothing loaded... */
++ pr_debug("%s: buffer %p queued onto empty channel\n", __FUNCTION__, buf);
++
++ chan->curr = buf;
++ chan->end = buf;
++ chan->next = NULL;
++ } else {
++ pr_debug("dma%d: %s: buffer %p queued onto non-empty channel\n",
++ chan->number, __FUNCTION__, buf);
++
++ if (chan->end == NULL) /* In case of flushing */
++ pr_debug("dma%d: %s: %p not empty, and chan->end==NULL?\n",
++ chan->number, __FUNCTION__, chan);
++ else {
++ chan->end->next = buf;
++ chan->end = buf;
++ }
++ }
++
++ /* if necessary, update the next buffer field */
++ if (chan->next == NULL)
++ chan->next = buf;
++
++ /* check to see if we can load a buffer */
++ if (chan->state == S3C2410_DMA_RUNNING) {
++ if (chan->load_state == S3C2410_DMALOAD_1LOADED && 1) {
++ if (s3c_dma_waitforload(chan, __LINE__) == 0) {
++ printk(KERN_ERR "dma%d: loadbuffer:"
++ "timeout loading buffer\n", chan->number);
++ dbg_showchan(chan);
++ local_irq_restore(flags);
++ return -EINVAL;
++ }
++ }
++#if 0
++ while (s3c_dma_canload(chan) && chan->next != NULL) {
++ s3c_dma_loadbuffer(chan, chan->next);
++ }
++#endif
++ } else if (chan->state == S3C2410_DMA_IDLE) {
++ if (chan->flags & S3C2410_DMAF_AUTOSTART) {
++ s3c2410_dma_ctrl(channel, S3C2410_DMAOP_START);
++ } else {
++ pr_debug("loading onto stopped channel\n");
++ }
++ }
++
++ local_irq_restore(flags);
++ return 0;
++}
++EXPORT_SYMBOL(s3c2410_dma_enqueue);
++
++/* s3c2410_dma_enqueue_sg
++ *
++ * queue an given buffer for dma transfer.
++ *
++ * id the device driver's id information for this buffer
++ * data the physical address of the buffer data
++ * size the size of the buffer in bytes
++ * sg_reg the scatter&gather list
++ *
++ * If the channel is not running, then the flag S3C2410_DMAF_AUTOSTART
++ * is checked, and if set, the channel is started. If this flag isn't set,
++ * then an error will be returned.
++ *
++ * It is possible to queue more than one DMA buffer onto a channel at
++ * once, and the code will deal with the re-loading of the next buffer
++ * when necessary.
++ */
++int s3c2410_dma_enqueue_sg(unsigned int channel, void *id,
++ dma_addr_t data, int size, struct s3c_pl080_sg_list *sg_list)
++{
++ struct s3c2410_dma_chan *chan = lookup_dma_channel(channel);
++ struct s3c2410_dma_buf *buf;
++ unsigned long flags;
++
++ pr_debug("%s: id=%p, data=%08x, size=%d\n", __FUNCTION__, id, (unsigned int) data, size);
++
++ buf = kmem_cache_alloc(dma_kmem, GFP_ATOMIC);
++ if (buf == NULL) {
++ printk(KERN_ERR "dma<%d> no memory for buffer\n", channel);
++ return -ENOMEM;
++ }
++
++ pr_debug("%s: new buffer %p\n", __FUNCTION__, buf);
++
++ //dbg_showchan(chan);
++
++ buf->next = NULL;
++ buf->data = buf->ptr = data;
++ buf->size = size;
++ buf->id = id;
++ buf->magic = BUF_MAGIC;
++
++ local_irq_save(flags);
++
++ if (chan->curr == NULL) {
++ /* we've got nothing loaded... */
++ pr_debug("%s: buffer %p queued onto empty channel\n", __FUNCTION__, buf);
++
++ chan->curr = buf;
++ chan->end = buf;
++ chan->next = NULL;
++ } else {
++ pr_debug("dma%d: %s: buffer %p queued onto non-empty channel\n",
++ chan->number, __FUNCTION__, buf);
++
++ if (chan->end == NULL) /* In case of flushing */
++ pr_debug("dma%d: %s: %p not empty, and chan->end==NULL?\n",
++ chan->number, __FUNCTION__, chan);
++ else {
++ chan->end->next = buf;
++ chan->end = buf;
++ }
++ }
++
++ /* if necessary, update the next buffer field */
++ if (chan->next == NULL)
++ chan->next = buf;
++
++ /* check to see if we can load a buffer */
++ if (chan->state == S3C2410_DMA_RUNNING) {
++ if (chan->load_state == S3C2410_DMALOAD_1LOADED && 1) {
++ if (s3c_dma_waitforload(chan, __LINE__) == 0) {
++ printk(KERN_ERR "dma%d: loadbuffer:"
++ "timeout loading buffer\n", chan->number);
++ dbg_showchan(chan);
++ local_irq_restore(flags);
++ return -EINVAL;
++ }
++ }
++#if 0
++ while (s3c_dma_canload(chan) && chan->next != NULL) {
++ s3c_dma_loadbuffer(chan, chan->next);
++ }
++#endif
++ } else if (chan->state == S3C2410_DMA_IDLE) {
++ dma_wrreg(chan, S3C_DMAC_CxLLI, virt_to_phys(&sg_list));
++
++ if (chan->flags & S3C2410_DMAF_AUTOSTART) {
++ s3c2410_dma_ctrl(channel, S3C2410_DMAOP_START);
++ } else {
++ pr_debug("loading onto stopped channel\n");
++ }
++ }
++
++ local_irq_restore(flags);
++ return 0;
++}
++EXPORT_SYMBOL(s3c2410_dma_enqueue_sg);
++
++
++static inline void s3c_dma_freebuf(struct s3c2410_dma_buf * buf)
++{
++ int magicok = (buf->magic == BUF_MAGIC);
++
++ buf->magic = -1;
++
++ if (magicok) {
++ kmem_cache_free(dma_kmem, buf);
++ } else {
++ printk("s3c_dma_freebuf: buff %p with bad magic\n", buf);
++ }
++}
++
++/* s3c_dma_lastxfer
++ *
++ * called when the system is out of buffers, to ensure that the channel
++ * is prepared for shutdown.
++ */
++static inline void s3c_dma_lastxfer(struct s3c2410_dma_chan *chan)
++{
++ pr_debug("DMA CH %d: s3c_dma_lastxfer: load_state %d\n", chan->number, chan->load_state);
++
++ switch (chan->load_state) {
++ case S3C2410_DMALOAD_NONE:
++ pr_debug("DMA CH %d: s3c_dma_lastxfer: load_state : S3C2410_DMALOAD_NONE%d\n", chan->number);
++ break;
++
++ case S3C2410_DMALOAD_1LOADED:
++ if (s3c_dma_waitforload(chan, __LINE__) == 0) {
++ /* flag error? */
++ printk(KERN_ERR "dma%d: timeout waiting for load\n", chan->number);
++ return;
++ }
++ break;
++
++ default:
++ pr_debug("dma%d: lastxfer: unhandled load_state %d with no next",
++ chan->number, chan->load_state);
++ return;
++
++ }
++
++}
++
++
++#define dmadbg2(x...)
++
++static irqreturn_t s3c_dma_irq(int irq, void *devpw)
++{
++ unsigned int channel = 0, dcon_num, i;
++ unsigned long tmp;
++ s3c_dma_controller_t *dma_controller = (s3c_dma_controller_t *) devpw;
++
++ struct s3c2410_dma_chan *chan=NULL;
++ struct s3c2410_dma_buf *buf;
++
++ dcon_num = dma_controller->number;
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_INT_TCSTATUS);
++ pr_debug("# s3c_dma_irq: TC status : 0x%x\n", tmp);
++
++ if(tmp==0) {
++ return IRQ_HANDLED;
++ }
++
++ for (i = 0; i < S3C_CHANNELS_PER_DMA; i++) {
++ if (tmp & 0x01) {
++
++ pr_debug("# DMA Controller %d: requestor %d\n", dcon_num, i);
++
++ channel = i;
++ chan = &s3c_dma_chans[channel + dcon_num * S3C_CHANNELS_PER_DMA];
++ pr_debug("# DMA channel number : %d, index : %d\n", chan->number, chan->index);
++
++ buf = chan->curr;
++
++ dbg_showchan(chan);
++
++ /* modify the channel state */
++ switch (chan->load_state) {
++ case S3C2410_DMALOAD_1RUNNING:
++ /* TODO - if we are running only one buffer, we probably
++ * want to reload here, and then worry about the buffer
++ * callback */
++
++ chan->load_state = S3C2410_DMALOAD_NONE;
++ break;
++
++ case S3C2410_DMALOAD_1LOADED:
++ /* iirc, we should go back to NONE loaded here, we
++ * had a buffer, and it was never verified as being
++ * loaded.
++ */
++
++ chan->load_state = S3C2410_DMALOAD_NONE;
++ break;
++
++ case S3C2410_DMALOAD_1LOADED_1RUNNING:
++ /* we'll worry about checking to see if another buffer is
++ * ready after we've called back the owner. This should
++ * ensure we do not wait around too long for the DMA
++ * engine to start the next transfer
++ */
++
++ chan->load_state = S3C2410_DMALOAD_1LOADED;
++ break;
++
++ case S3C2410_DMALOAD_NONE:
++ printk(KERN_ERR "dma%d: IRQ with no loaded buffer?\n",
++ chan->number);
++ break;
++
++ default:
++ printk(KERN_ERR "dma%d: IRQ in invalid load_state %d\n",
++ chan->number, chan->load_state);
++ break;
++ }
++
++ if (buf != NULL) {
++ /* update the chain to make sure that if we load any more
++ * buffers when we call the callback function, things should
++ * work properly */
++
++ chan->curr = buf->next;
++ buf->next = NULL;
++
++ if (buf->magic != BUF_MAGIC) {
++ printk(KERN_ERR "dma%d: %s: buf %p incorrect magic\n",
++ chan->number, __FUNCTION__, buf);
++ goto next_channel;
++ }
++
++ s3c_dma_buffdone(chan, buf, S3C2410_RES_OK);
++
++ /* free resouces */
++ s3c_dma_freebuf(buf);
++ } else {
++
++ }
++
++ if (chan->next != NULL) {
++ unsigned long flags;
++
++ switch (chan->load_state) {
++ case S3C2410_DMALOAD_1RUNNING:
++ /* don't need to do anything for this state */
++ break;
++
++ case S3C2410_DMALOAD_NONE:
++ /* can load buffer immediately */
++ break;
++
++ case S3C2410_DMALOAD_1LOADED:
++ if (s3c_dma_waitforload(chan, __LINE__) == 0) {
++ /* flag error? */
++ printk(KERN_ERR "dma%d: timeout waiting for load\n",
++ chan->number);
++ goto next_channel;
++ }
++
++ break;
++
++ case S3C2410_DMALOAD_1LOADED_1RUNNING:
++ goto next_channel;
++
++ default:
++ printk(KERN_ERR "dma%d: unknown load_state in irq, %d\n",
++ chan->number, chan->load_state);
++ goto next_channel;
++ }
++
++ local_irq_save(flags);
++ s3c_dma_loadbuffer(chan, chan->next);
++
++ //shaju added for dbg
++ dma_wrreg(chan, S3C_DMAC_CxCONFIGURATION, chan->config_flags);
++
++ local_irq_restore(flags);
++
++ } else {
++ s3c_dma_lastxfer(chan);
++
++ /* see if we can stop this channel.. */
++ if (chan->load_state == S3C2410_DMALOAD_NONE) {
++ pr_debug("# DMA CH %d(index:%d): end of transfer, stopping channel (%ld)\n",
++ chan->number, chan->index, jiffies);
++ s3c2410_dma_ctrl(chan->index | DMACH_LOW_LEVEL, S3C2410_DMAOP_STOP);
++ }
++ }
++ }
++
++next_channel:
++ tmp >>= 1;
++
++ }
++
++ s3c_clear_interrupts(chan->dma_con->number, chan->number);
++
++ return IRQ_HANDLED;
++}
++
++static struct s3c2410_dma_chan *s3c_dma_map_channel(int channel);
++
++/* s3c_request_dma
++ *
++ * get control of an dma channel
++*/
++
++int s3c2410_dma_request(unsigned int channel,
++ struct s3c2410_dma_client *client,
++ void *dev)
++{
++ struct s3c2410_dma_chan *chan;
++ unsigned long flags;
++ int err;
++
++ pr_debug("DMA CH %d: s3c2410_request_dma: client=%s, dev=%p\n",
++ channel, client->name, dev);
++
++ local_irq_save(flags);
++
++ chan = s3c_dma_map_channel(channel);
++ if (chan == NULL) {
++ local_irq_restore(flags);
++ return -EBUSY;
++ }
++
++ dbg_showchan(chan);
++
++ chan->client = client;
++ chan->in_use = 1;
++
++ chan->dma_con->in_use++;
++
++ if (!chan->irq_claimed) {
++ pr_debug("DMA CH %d: %s : requesting irq %d\n",
++ channel, __FUNCTION__, chan->irq);
++
++ chan->irq_claimed = 1;
++ local_irq_restore(flags);
++
++ err = request_irq(chan->irq, s3c_dma_irq, IRQF_DISABLED|IRQF_SHARED,
++ client->name, (void *) chan->dma_con);
++
++ local_irq_save(flags);
++
++ if (err) {
++ chan->in_use = 0;
++ chan->irq_claimed = 0;
++ chan->dma_con->in_use--;
++ local_irq_restore(flags);
++
++ printk(KERN_ERR "%s: cannot get IRQ %d for DMA %d\n",
++ client->name, chan->irq, chan->number);
++ return err;
++ }
++
++ chan->irq_enabled = 1;
++
++ /* enable the main dma.. this can be disabled
++ * when main channel use count is 0 */
++ s3c_enable_dmac(chan->dma_con->number);
++ }
++
++ s3c_clear_interrupts(chan->dma_con->number, chan->number);
++ local_irq_restore(flags);
++
++ /* need to setup */
++
++ pr_debug("%s: channel initialised, %p, number:%d, index:%d\n", __FUNCTION__, chan, chan->number, chan->index);
++
++ return 0;
++}
++EXPORT_SYMBOL(s3c2410_dma_request);
++
++/* s3c_dma_free
++ *
++ * release the given channel back to the system, will stop and flush
++ * any outstanding transfers, and ensure the channel is ready for the
++ * next claimant.
++ *
++ * Note, although a warning is currently printed if the freeing client
++ * info is not the same as the registrant's client info, the free is still
++ * allowed to go through.
++ */
++int s3c2410_dma_free(dmach_t channel, struct s3c2410_dma_client *client)
++{
++ unsigned long flags;
++ struct s3c2410_dma_chan *chan = lookup_dma_channel(channel);
++ pr_debug("%s: DMA channel %d will be stopped\n", __FUNCTION__, chan->number);
++
++ if (chan == NULL)
++ return -EINVAL;
++
++ local_irq_save(flags);
++
++ if (chan->client != client) {
++ printk(KERN_WARNING
++ "DMA CH %d: possible free from different client (channel %p, passed %p)\n",
++ channel, chan->client, client);
++ }
++
++ /* sort out stopping and freeing the channel */
++
++ if (chan->state != S3C2410_DMA_IDLE) {
++ pr_debug("%s: need to stop dma channel %p\n", __FUNCTION__, chan);
++
++ /* possibly flush the channel */
++ s3c2410_dma_ctrl(channel, S3C2410_DMAOP_STOP);
++ }
++
++ chan->client = NULL;
++ chan->in_use = 0;
++
++ chan->dma_con->in_use--;
++
++ if (chan->irq_claimed)
++ free_irq(chan->irq, (void *)chan->dma_con);
++
++ chan->irq_claimed = 0;
++
++ if (!(channel & DMACH_LOW_LEVEL))
++ dma_chan_map[channel] = NULL;
++
++ local_irq_restore(flags);
++
++ pr_debug("--------------------------------------------\n");
++
++ return 0;
++}
++EXPORT_SYMBOL(s3c2410_dma_free);
++
++/*actively polling for the A bit can block the cpu*/
++void s3c_dma_flush_fifo(struct s3c2410_dma_chan *chan)
++{
++ unsigned long tmp;
++
++ tmp = dma_rdreg(chan, S3C_DMAC_CxCONFIGURATION);
++ tmp |= S3C_DMACONFIG_HALT;
++ dma_wrreg(chan, S3C_DMAC_CxCONFIGURATION, tmp);
++
++ tmp = dma_rdreg(chan, S3C_DMAC_CxCONFIGURATION);
++
++ /*this while loop can be very dangerous..may be put the process to sleep rather than waiting till fifo is drained */
++ while (tmp & S3C_DMACONFIG_ACTIVE) {
++ tmp = dma_rdreg(chan, S3C_DMAC_CxCONFIGURATION);
++ }
++}
++
++static int s3c_dma_dostop(struct s3c2410_dma_chan *chan)
++{
++ unsigned long tmp;
++ unsigned long flags;
++
++ pr_debug("%s: DMA Channel No : %d\n", __FUNCTION__, chan->number);
++
++ dbg_showchan(chan);
++
++ local_irq_save(flags);
++
++ s3c_dma_flush_fifo(chan);
++
++ s3c_dma_call_op(chan, S3C2410_DMAOP_STOP);
++
++ tmp = dma_rdreg(chan, S3C_DMAC_CxCONFIGURATION);
++
++ tmp &= ~S3C_DMACONFIG_CHANNEL_ENABLE;
++ dma_wrreg(chan, S3C_DMAC_CxCONFIGURATION, tmp);
++
++ pr_debug("%s: S3C_DMAC_CxCONFIGURATION : %08x\n", __FUNCTION__, tmp);
++
++ chan->state = S3C2410_DMA_IDLE;
++ chan->load_state = S3C2410_DMALOAD_NONE;
++
++ local_irq_restore(flags);
++
++ return 0;
++}
++
++static void s3c_dma_showchan(struct s3c2410_dma_chan * chan)
++{
++#if 0
++ printk(KERN_DEBUG "dma[%d]: st %d, lst %d, cli %p, dcon %08lx\n",
++ chan->number, chan->state, chan->load_state, chan->client, chan->dcon);
++ printk(KERN_DEBUG "dma[%d]: CSRC=%x, ISRC=%x, STAT=%x, CON=%x, MT=%x\n",
++ chan->number,
++#endif
++}
++
++/* s3c_dma_flush
++ *
++ * stop the channel, and remove all current and pending transfers
++ */
++
++void s3c_waitforstop(struct s3c2410_dma_chan *chan)
++{
++ #if 0
++ unsigned long tmp;
++ unsigned int timeout = 0x10000;
++
++ while (timeout-- > 0) {
++ tmp = dma_rdreg(chan, S3C2410_DMA_DMASKTRIG);
++
++ if (!(tmp & S3C2410_DMASKTRIG_ON))
++ return;
++ }
++
++ pr_debug("dma%d: failed to stop?\n", chan->number);
++ #endif
++}
++
++static int s3c_dma_flush(struct s3c2410_dma_chan *chan)
++{
++ struct s3c2410_dma_buf *buf, *next;
++ unsigned long flags;
++
++ pr_debug("%s:\n", __FUNCTION__);
++
++ local_irq_save(flags);
++
++ s3c_dma_showchan(chan);
++
++ if (chan->state != S3C2410_DMA_IDLE) {
++ pr_debug("%s: stopping channel...\n", __FUNCTION__);
++ s3c2410_dma_ctrl(chan->number, S3C2410_DMAOP_STOP);
++ }
++
++ buf = chan->curr;
++ if (buf == NULL)
++ buf = chan->next;
++
++ chan->curr = chan->next = chan->end = NULL;
++ chan->load_state = S3C2410_DMALOAD_NONE;
++
++ if (buf != NULL) {
++ for (; buf != NULL; buf = next) {
++ next = buf->next;
++
++ pr_debug("%s: free buffer %p, next %p\n", __FUNCTION__, buf, buf->next);
++
++ s3c_dma_buffdone(chan, buf, S3C2410_RES_ABORT);
++ s3c_dma_freebuf(buf);
++ }
++ }
++ //s3c_dma_waitforstop(chan);
++
++ s3c_dma_showchan(chan);
++ local_irq_restore(flags);
++
++ return 0;
++}
++
++int s3c_dma_started(struct s3c2410_dma_chan *chan)
++{
++ unsigned long flags;
++
++ local_irq_save(flags);
++
++ dbg_showchan(chan);
++
++ /* if we've only loaded one buffer onto the channel, then chec
++ * to see if we have another, and if so, try and load it so when
++ * the first buffer is finished, the new one will be loaded onto
++ * the channel */
++
++ if (chan->next != NULL) {
++ if (chan->load_state == S3C2410_DMALOAD_1LOADED) {
++
++ if (s3c_dma_waitforload(chan, __LINE__) == 0) {
++ pr_debug("%s: buff not yet loaded, no more todo\n",
++ __FUNCTION__);
++ } else {
++ chan->load_state = S3C2410_DMALOAD_1RUNNING;
++ s3c_dma_loadbuffer(chan, chan->next);
++ }
++
++ } else if (chan->load_state == S3C2410_DMALOAD_1RUNNING) {
++ s3c_dma_loadbuffer(chan, chan->next);
++ }
++ }
++
++ local_irq_restore(flags);
++
++ return 0;
++
++}
++
++int s3c2410_dma_ctrl(dmach_t channel, enum s3c2410_chan_op op)
++{
++ struct s3c2410_dma_chan *chan = lookup_dma_channel(channel);
++
++ if (chan == NULL)
++ return -EINVAL;
++
++ switch (op) {
++ case S3C2410_DMAOP_START:
++ return s3c_dma_start(chan);
++
++ case S3C2410_DMAOP_STOP:
++ return s3c_dma_dostop(chan);
++
++ case S3C2410_DMAOP_PAUSE:
++ case S3C2410_DMAOP_RESUME:
++ return -ENOENT;
++
++ case S3C2410_DMAOP_FLUSH:
++ return s3c_dma_flush(chan);
++
++ case S3C2410_DMAOP_STARTED:
++ return s3c_dma_started(chan);
++
++ case S3C2410_DMAOP_TIMEOUT:
++ return 0;
++
++ }
++
++ return -ENOENT; /* unknown, don't bother */
++}
++EXPORT_SYMBOL(s3c2410_dma_ctrl);
++
++
++/* s3c_dma_config
++ *
++ * xfersize: size of unit in bytes (1,2,4)
++ * dcon: base value of the DCONx register
++ */
++int s3c2410_dma_config(dmach_t channel,
++ int xferunit,
++ int dcon)
++{
++ struct s3c2410_dma_chan *chan = lookup_dma_channel(channel);
++
++ pr_debug("%s: chan=%d, xfer_unit=%d, dcon=%08x\n",
++ __FUNCTION__, channel, xferunit, dcon);
++
++ if (chan == NULL)
++ return -EINVAL;
++
++ pr_debug("%s: Initial dcon is %08x\n", __FUNCTION__, dcon);
++
++ dcon |= chan->dcon & dma_sel.dcon_mask;
++
++ pr_debug("%s: New dcon is %08x\n", __FUNCTION__, dcon);
++
++ switch (xferunit) {
++ case 1:
++ dcon |= S3C_DMACONTROL_SRC_WIDTH_BYTE;
++ dcon |= S3C_DMACONTROL_DEST_WIDTH_BYTE;
++ break;
++
++ case 2:
++ dcon |= S3C_DMACONTROL_SRC_WIDTH_HWORD;
++ dcon |= S3C_DMACONTROL_DEST_WIDTH_HWORD;
++ break;
++
++ case 4:
++ dcon |= S3C_DMACONTROL_SRC_WIDTH_WORD;
++ dcon |= S3C_DMACONTROL_DEST_WIDTH_WORD;
++ break;
++
++ default:
++ pr_debug("%s: Bad transfer size %d\n", __FUNCTION__, xferunit);
++ return -EINVAL;
++ }
++
++ pr_debug("%s: DMA Channel control : %08x\n", __FUNCTION__, dcon);
++
++ dcon |= S3C_DMACONTROL_TC_INT_ENABLE;
++ dcon |= chan->control_flags;
++ pr_debug("%s: dcon now %08x\n", __FUNCTION__, dcon);
++
++ /* For DMCCxControl 0 */
++ chan->dcon = dcon;
++
++ /* For DMACCxControl 1 : xferunit means transfer width.*/
++ chan->xfer_unit = xferunit;
++
++ return 0;
++}
++EXPORT_SYMBOL(s3c2410_dma_config);
++
++
++int s3c2410_dma_setflags(dmach_t channel, unsigned int flags)
++{
++ struct s3c2410_dma_chan *chan = lookup_dma_channel(channel);
++
++ if (chan == NULL)
++ return -EINVAL;
++
++ pr_debug("%s: chan=%p, flags=%08x\n", __FUNCTION__, chan, flags);
++
++ chan->flags = flags;
++
++ return 0;
++}
++EXPORT_SYMBOL(s3c2410_dma_setflags);
++
++
++/* do we need to protect the settings of the fields from
++ * irq?
++ */
++
++int s3c2410_dma_set_opfn(dmach_t channel, s3c2410_dma_opfn_t rtn)
++{
++ struct s3c2410_dma_chan *chan = lookup_dma_channel(channel);
++
++ if (chan == NULL)
++ return -EINVAL;
++
++ pr_debug("%s: chan=%p, op rtn=%p\n", __FUNCTION__, chan, rtn);
++
++ chan->op_fn = rtn;
++
++ return 0;
++}
++EXPORT_SYMBOL(s3c2410_dma_set_opfn);
++
++
++int s3c2410_dma_set_buffdone_fn(dmach_t channel, s3c2410_dma_cbfn_t rtn)
++{
++ struct s3c2410_dma_chan *chan = lookup_dma_channel(channel);
++
++ if (chan == NULL)
++ return -EINVAL;
++
++ pr_debug("%s: chan=%p, callback rtn=%p\n", __FUNCTION__, chan, rtn);
++
++ chan->callback_fn = rtn;
++
++ return 0;
++}
++EXPORT_SYMBOL(s3c2410_dma_set_buffdone_fn);
++
++
++/* s3c2410_dma_devconfig
++ *
++ * configure the dma source/destination hardware type and address
++ *
++ * flowctrl: direction of dma flow
++ *
++ * src_per dst_per: dma channel number of src and dst periphreal,
++ *
++ * devaddr: physical address of the source
++ */
++
++int s3c2410_dma_devconfig(int channel,
++ enum s3c2410_dmasrc source,
++ int hwcfg,
++ unsigned long devaddr)
++{
++ unsigned long tmp;
++
++ struct s3c2410_dma_chan *chan = lookup_dma_channel(channel);
++
++ if (chan == NULL)
++ return -EINVAL;
++
++ pr_debug("%s: source=%d, hwcfg=%08x, devaddr=%08lx\n",
++ __FUNCTION__, (int)source, hwcfg, devaddr);
++
++ chan->source = source;
++ chan->dev_addr = devaddr;
++
++ switch (source) {
++ case S3C2410_DMASRC_MEM:
++ /* source is Memory : Mem-to-Peri ( Write into FIFO) */
++ tmp = S3C_DMACONFIG_TCMASK | S3C_DMACONFIG_FLOWCTRL_MEM2PER | (chan->map->hw_addr.to) <<
++ S3C_DEST_SHIFT | S3C_DMACONFIG_CHANNEL_ENABLE;
++
++ chan->config_flags = tmp;
++
++ /* TODO : Now, Scatter&Gather DMA NOT supported */
++ dma_wrreg(chan, S3C_DMAC_CxLLI, 0);
++
++ /* devaddr : Periperal address (destination) */
++ dma_wrreg(chan, S3C_DMAC_CxDESTADDR, devaddr);
++
++ /* source address : memory(buffer) address */
++ chan->addr_reg = dma_regaddr(chan, S3C_DMAC_CxSRCADDR);
++
++ chan->control_flags = S3C_DMACONTROL_SRC_INC | S3C_DMACONTROL_DEST_AXI_PERI ;
++ //chan->control_flags = hwcfg;
++ return 0;
++
++ case S3C2410_DMASRC_HW:
++ /* source is peripheral : Peri-to-Mem ( Read from FIFO) */
++ tmp = S3C_DMACONFIG_TCMASK | S3C_DMACONFIG_FLOWCTRL_PER2MEM | (chan->map->hw_addr.from) <<
++ S3C_SRC_SHIFT | S3C_DMACONFIG_CHANNEL_ENABLE;
++
++ chan->config_flags = tmp;
++
++ /* TODO : Now, Scatter&Gather DMA NOT supported */
++ dma_wrreg(chan, S3C_DMAC_CxLLI, 0);
++
++ /* devaddr : Periperal address (source) */
++ dma_wrreg(chan, S3C_DMAC_CxSRCADDR, devaddr);
++
++ /* destination address : memory(buffer) address */
++ chan->addr_reg = dma_regaddr(chan, S3C_DMAC_CxDESTADDR);
++
++ chan->control_flags = S3C_DMACONTROL_DEST_INC | S3C_DMACONTROL_SRC_AXI_PERI;
++ //chan->control_flags = hwcfg;
++
++ return 0;
++
++ case S3C_DMA_MEM2MEM:
++ /* this is temporary for G3D */
++ tmp = S3C_DMACONFIG_TCMASK | S3C_DMACONFIG_FLOWCTRL_MEM2MEM | S3C_DMACONFIG_CHANNEL_ENABLE;
++
++ chan->config_flags = tmp;
++
++ /* TODO : Now, Scatter&Gather DMA NOT YET supported */
++ dma_wrreg(chan, S3C_DMAC_CxLLI, 0);
++
++ /* devaddr : memory/onenand address (source) */
++ dma_wrreg(chan, S3C_DMAC_CxSRCADDR, devaddr);
++
++ /* destination address : memory(buffer) address */
++ chan->addr_reg = dma_regaddr(chan, S3C_DMAC_CxDESTADDR);
++
++ chan->control_flags |= (S3C_DMACONTROL_SRC_INC | S3C_DMACONTROL_DEST_AXI_PERI
++ | S3C_DMACONTROL_SBSIZE_4 | S3C_DMACONTROL_DBSIZE_4);
++ //chan->control_flags = hwcfg;
++
++ return 0;
++
++ case S3C_DMA_MEM2MEM_P:
++ /* source is memory : Memory-to-Mem ( Read/Write) */
++ tmp = S3C_DMACONFIG_TCMASK | S3C_DMACONFIG_FLOWCTRL_MEM2MEM | S3C_DMACONFIG_CHANNEL_ENABLE;
++
++ if(chan->map->hw_addr.from == S3C_DMA0_ONENAND_RX) {
++ tmp |= S3C_DMACONFIG_ONENANDMODESRC;
++ }
++
++ chan->config_flags = tmp;
++
++ /* TODO : Now, Scatter&Gather DMA NOT YET supported */
++ dma_wrreg(chan, S3C_DMAC_CxLLI, 0);
++
++ /* devaddr : memory/onenand address (source) */
++ dma_wrreg(chan, S3C_DMAC_CxSRCADDR, devaddr);
++
++ /* destination address : memory(buffer) address */
++ chan->addr_reg = dma_regaddr(chan, S3C_DMAC_CxDESTADDR);
++
++ chan->control_flags |= (S3C_DMACONTROL_SRC_INC | S3C_DMACONTROL_DEST_INC
++ | S3C_DMACONTROL_SBSIZE_4 | S3C_DMACONTROL_DBSIZE_4);
++ //chan->control_flags = hwcfg;
++
++ return 0;
++
++ case S3C_DMA_PER2PER:
++ printk("Peripheral-to-Peripheral DMA NOT YET implemented !! \n");
++ return -EINVAL;
++
++ default:
++ printk(KERN_ERR "DMA CH :%d - invalid source type ()\n", channel);
++ printk("Unsupported DMA configuration from the device driver using DMA driver \n");
++ return -EINVAL;
++ }
++
++}
++
++EXPORT_SYMBOL(s3c2410_dma_devconfig);
++
++
++/*
++ * s3c_dma_getposition
++ * returns the current transfer points for the dma source and destination
++ */
++int s3c2410_dma_getposition(dmach_t channel, dma_addr_t *src, dma_addr_t *dst)
++{
++ struct s3c2410_dma_chan *chan = lookup_dma_channel(channel);
++
++ if (chan == NULL)
++ return -EINVAL;
++
++ if (src != NULL)
++ *src = dma_rdreg(chan, S3C_DMAC_CxSRCADDR);
++
++ if (dst != NULL)
++ *dst = dma_rdreg(chan, S3C_DMAC_CxDESTADDR);
++
++ return 0;
++}
++
++EXPORT_SYMBOL(s3c2410_dma_getposition);
++
++
++/* system device class */
++#ifdef CONFIG_PM
++static int s3c_dma_suspend (struct sys_device *dev, pm_message_t state)
++{
++ return 0;
++}
++
++static int s3c_dma_resume (struct sys_device *dev)
++{
++ return 0;
++}
++#else
++#define s3c_dma_suspend NULL
++#define s3c_dma_resume NULL
++#endif /* CONFIG_PM */
++
++struct sysdev_class dma_sysclass = {
++ set_kset_name("s3c64xx-dma"),
++ .suspend = s3c_dma_suspend,
++ .resume = s3c_dma_resume,
++};
++
++/* kmem cache implementation */
++
++static void s3c_dma_cache_ctor(struct kmem_cache *c, void *p)
++{
++ memset(p, 0, sizeof(struct s3c2410_dma_buf));
++}
++
++
++void dma_test (int dcon_num, int channel)
++{
++ int tmp;
++
++ s3c_dma_controller_t *dma_controller = &s3c_dma_cntlrs[dcon_num];
++#if 0
++ sh_printk("writing to channel %d subch %d \n", dcon_num, channel);
++ sh_printk("main channel %d irq %d regs_base %x\n", dma_controller->number, dma_controller->irq,
++ dma_controller->regs);
++ sh_printk("sub channel %d irq %d regs_base %x\n", chan->number, chan->irq,
++ chan->regs);
++#endif
++ dma_wrreg(dma_controller, S3C_DMAC_CONFIGURATION, S3C_DMA_CONTROLLER_ENABLE);
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_CONFIGURATION);
++ printk("reg val %d\n", tmp);
++ dma_wrreg(dma_controller, S3C_DMAC_CCONFIGURATION(channel), 0x01);
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_CCONFIGURATION(channel));
++
++ printk("reg conf %x\n", tmp);
++ dma_wrreg(dma_controller, S3C_DMAC_CCONTROL0(channel), 0x8ff02064);
++
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_CCONTROL0(channel));
++ printk("reg ctrl %x\n", tmp);
++}
++
++
++/* initialisation code */
++
++int __init s3c24xx_dma_init(unsigned int channels, unsigned int irq,
++ unsigned int stride)
++{
++ struct s3c2410_dma_chan *cp;
++ s3c_dma_controller_t *dconp;
++ int channel, controller;
++ int ret;
++
++ printk("S3C DMA-pl080 Controller Driver, (c) 2006-2007 Samsung Electronics\n");
++
++ dma_channels = channels;
++ printk("Total %d DMA channels will be initialized.\n", channels);
++
++ ret = sysdev_class_register(&dma_sysclass);
++ if (ret != 0) {
++ printk(KERN_ERR "dma sysclass registration failed.\n");
++ goto err;
++ }
++
++ dma_kmem = kmem_cache_create("dma_desc", sizeof(struct s3c2410_dma_buf), 0,
++ SLAB_HWCACHE_ALIGN, s3c_dma_cache_ctor);
++
++ if (dma_kmem == NULL) {
++ printk(KERN_ERR "DMA failed to make kmem cache\n");
++ ret = -ENOMEM;
++ goto err;
++ }
++
++ for (controller = 0; controller < S3C_DMA_CONTROLLERS; controller++) {
++ dconp = &s3c_dma_cntlrs[controller];
++
++ memset(dconp, 0, sizeof(s3c_dma_controller_t));
++
++ if(controller < 2) {
++ dma_base = ioremap((S3C24XX_PA_DMA + (controller * 0x100000)), 0x200);
++ if (dma_base == NULL) {
++ printk(KERN_ERR "DMA failed to ioremap register block\n");
++ return -ENOMEM;
++ }
++
++ /* dma controller's irqs are in order.. */
++ dconp->irq = controller + IRQ_DMA0;
++ }
++ else {
++ dma_base = ioremap(((S3C24XX_PA_DMA + 0x8B00000) + ((controller%2) * 0x100000)), 0x200);
++ if (dma_base == NULL) {
++ printk(KERN_ERR "SDMA failed to ioremap register block\n");
++ return -ENOMEM;
++ }
++
++ /* dma controller's irqs are in order.. */
++ dconp->irq = (controller%2) + IRQ_SDMA0;
++ }
++
++ dconp->number = controller;
++ dconp->regs = dma_base;
++ sh_printk("DMA controller : %d irq %d regs_base %x\n", dconp->number, dconp->irq,
++ dconp->regs);
++ }
++
++ for (channel = 0; channel < channels; channel++) {
++ controller = channel / S3C_CHANNELS_PER_DMA;
++ cp = &s3c_dma_chans[channel];
++
++ memset(cp, 0, sizeof(struct s3c2410_dma_chan));
++
++ cp->dma_con = &s3c_dma_cntlrs[controller];
++
++ /* dma channel irqs are in order.. */
++ cp->index = channel;
++ cp->number = channel%S3C_CHANNELS_PER_DMA;
++
++ cp->irq = s3c_dma_cntlrs[controller].irq;
++
++ cp->regs = s3c_dma_cntlrs[controller].regs + ((channel%S3C_CHANNELS_PER_DMA)*stride) + 0x100;
++
++ /* point current stats somewhere */
++ cp->stats = &cp->stats_store;
++ cp->stats_store.timeout_shortest = LONG_MAX;
++
++ /* basic channel configuration */
++ cp->load_timeout = 1 << 18;
++
++ /* register system device */
++ cp->dev.cls = &dma_sysclass;
++ cp->dev.id = channel;
++ //ret = sysdev_register(&cp->dev);
++
++ sh_printk("DMA channel %d at %p, irq %d\n", cp->number, cp->regs, cp->irq);
++ }
++
++ return 0;
++
++err:
++ kmem_cache_destroy(dma_kmem);
++ iounmap(dma_base);
++ dma_base = NULL;
++ return ret;
++}
++
++
++
++static inline int is_channel_valid(unsigned int channel)
++{
++ return (channel & DMA_CH_VALID);
++}
++
++static struct s3c24xx_dma_order *dma_order;
++
++
++/* s3c_dma_map_channel()
++ *
++ * turn the virtual channel number into a real, and un-used hardware
++ * channel.
++ *
++ * first, try the dma ordering given to us by either the relevant
++ * dma code, or the board. Then just find the first usable free
++ * channel
++*/
++
++struct s3c2410_dma_chan *s3c_dma_map_channel(int channel)
++{
++ struct s3c24xx_dma_order_ch *ord = NULL;
++ struct s3c24xx_dma_map *ch_map;
++ struct s3c2410_dma_chan *dmach;
++ int ch;
++
++ if (dma_sel.map == NULL || channel > dma_sel.map_size)
++ return NULL;
++
++ ch_map = dma_sel.map + channel;
++
++ /* first, try the board mapping */
++
++ if (dma_order) {
++ ord = &dma_order->channels[channel];
++
++ for (ch = 0; ch < dma_channels; ch++) {
++ if (!is_channel_valid(ord->list[ch]))
++ continue;
++
++ if (s3c_dma_chans[ord->list[ch]].in_use == 0) {
++ ch = ord->list[ch] & ~DMA_CH_VALID;
++ goto found;
++ }
++ }
++
++ if (ord->flags & DMA_CH_NEVER)
++ return NULL;
++ }
++
++ /* second, search the channel map for first free */
++
++ for (ch = 0; ch < dma_channels; ch++) {
++ if (!is_channel_valid(ch_map->channels[ch]))
++ continue;
++
++ if (s3c_dma_chans[ch].in_use == 0) {
++ pr_debug("mapped channel %d to %d\n", channel, ch);
++ break;
++ }
++ }
++
++ if (ch >= dma_channels)
++ return NULL;
++
++ /* update our channel mapping */
++
++ found:
++ dmach = &s3c_dma_chans[ch];
++ dma_chan_map[channel] = dmach;
++
++ /* select the channel */
++ (dma_sel.select)(dmach, ch_map);
++
++ return dmach;
++}
++
++static int s3c_dma_check_entry(struct s3c24xx_dma_map *map, int ch)
++{
++ unsigned long tmp = __raw_readl(S3C_SDMA_SEL);
++
++ tmp |= map->sdma_sel;
++ __raw_writel(tmp, S3C_SDMA_SEL);
++
++ return 0;
++}
++
++int __init s3c24xx_dma_init_map(struct s3c24xx_dma_selection *sel)
++{
++ struct s3c24xx_dma_map *nmap;
++ size_t map_sz = sizeof(*nmap) * sel->map_size;
++ int ptr;
++
++ nmap = kmalloc(map_sz, GFP_KERNEL);
++ if (nmap == NULL)
++ return -ENOMEM;
++
++ memcpy(nmap, sel->map, map_sz);
++ memcpy(&dma_sel, sel, sizeof(*sel));
++
++ dma_sel.map = nmap;
++
++ for (ptr = 0; ptr < sel->map_size; ptr++)
++ s3c_dma_check_entry(nmap+ptr, ptr);
++
++ return 0;
++}
++
++int __init s3c_dma_order_set(struct s3c24xx_dma_order *ord)
++{
++ struct s3c24xx_dma_order *nord = dma_order;
++
++ if (nord == NULL)
++ nord = kmalloc(sizeof(struct s3c24xx_dma_order), GFP_KERNEL);
++
++ if (nord == NULL) {
++ printk(KERN_ERR "no memory to store dma channel order\n");
++ return -ENOMEM;
++ }
++
++ dma_order = nord;
++ memcpy(nord, ord, sizeof(struct s3c24xx_dma_order));
++ return 0;
++}
++
++
+diff --git a/arch/arm/plat-s3c64xx/irq-pl192.c b/arch/arm/plat-s3c64xx/irq-pl192.c
+new file mode 100644
+index 0000000..52d0234
+--- /dev/null
++++ b/arch/arm/plat-s3c64xx/irq-pl192.c
+@@ -0,0 +1,619 @@
++/* linux/arch/arm/mach-s3c64xx/irq-pl192.c
++ *
++ *
++ * S3C64XX interrupt functions.
++ * Added by JaeCheol Lee(jc.lee@samsung.com)
++ *
++ */
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/interrupt.h>
++#include <linux/ioport.h>
++#include <linux/ptrace.h>
++#include <linux/sysdev.h>
++
++#include <asm/hardware.h>
++#include <asm/irq.h>
++#include <asm/io.h>
++
++#include <asm/mach/irq.h>
++
++#include <asm/arch/gpio.h>
++#include <asm/arch/regs-irq.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-s3c-clock.h>
++#include <asm/plat-s3c24xx/cpu.h>
++#include <asm/plat-s3c24xx/pm.h>
++
++#define irqdbf(x...)
++#define irqdbf2(x...)
++
++
++/* "irqno" interrupt acked */
++static inline void
++s3c_irq_ack (unsigned int irqno)
++{
++ if (irqno < 32) {
++ __raw_writel(irqno, S3C_VIC0ADDRESS);
++ } else if (irqno < 64) {
++ __raw_writel(irqno, S3C_VIC0ADDRESS);
++ __raw_writel(irqno, S3C_VIC1ADDRESS);
++ } else {
++ /* External interrupt */
++ printk("ext irq %d\n", irqno);
++ }
++}
++
++/* "irqno" interrupt disabled */
++static inline void
++s3c_irq_mask (unsigned int irqno)
++{
++ if (irqno < 32) {
++ __raw_writel(1<<irqno, S3C_VIC0INTENCLEAR);
++ } else if (irqno < 64) {
++ __raw_writel(1<<(irqno-32), S3C_VIC1INTENCLEAR);
++ } else {
++ /* External interrupt */
++ printk("ext irq %d\n", irqno);
++ }
++}
++
++/* "irqno" interrupt disabled and acked */
++static inline void
++s3c_irq_maskack (unsigned int irqno)
++{
++ if (irqno < 32) {
++ __raw_writel(1<<irqno, S3C_VIC0INTENCLEAR);
++ __raw_writel(irqno, S3C_VIC0ADDRESS);
++ } else if (irqno < 64) {
++ __raw_writel(1<<(irqno-32), S3C_VIC1INTENCLEAR);
++ /* XXX: can explain why this code is here by scsuh */
++ __raw_writel(irqno, S3C_VIC0ADDRESS);
++ __raw_writel(irqno, S3C_VIC1ADDRESS);
++ } else {
++ /* External interrupt */
++ printk("ext irq %d\n", irqno);
++ }
++}
++
++/* "irqno" interrupt enabled */
++static inline void
++s3c_irq_unmask (unsigned int irqno)
++{
++ if (irqno < 32) {
++ __raw_writel(1<<irqno, S3C_VIC0INTENABLE);
++ } else if (irqno < 64) {
++ __raw_writel(1<<(irqno-32), S3C_VIC1INTENABLE);
++ } else {
++ /* External Interrupt */
++ printk("ext irq %d\n", irqno);
++ }
++}
++
++static inline void
++s3c_irq_unmaskack(unsigned int irqno)
++{
++ unsigned long unmask;
++
++ /* It is common for all interrupt sources */
++ __raw_writel(1, S3C_VIC0ADDRESS);
++
++ if (irqno < 32) {
++ unmask = __raw_readl(S3C_VIC0INTENABLE);
++ unmask |= (1UL << irqno);
++ __raw_writel(unmask, S3C_VIC0INTENABLE);
++ } else if (irqno < 64) {
++ unmask = __raw_readl(S3C_VIC1INTENABLE);
++ unmask |= (1UL << (irqno - 32));
++ __raw_writel(unmask, S3C_VIC1INTENABLE);
++ __raw_writel(1, S3C_VIC1ADDRESS);
++ } else {
++ /* External Interrupt */
++ printk("ext irq %d\n", irqno);
++
++ }
++}
++
++static int
++s3c_irq_wake(unsigned int irqno, unsigned int flag)
++{
++ unsigned int pwr_cfg,bit_position;
++
++ pwr_cfg = __raw_readl(S3C_PWR_CFG);
++
++ switch(irqno) {
++ case IRQ_RTC_TIC:
++ bit_position = 11;
++ break;
++ case IRQ_TC:
++ bit_position = 12;
++ break;
++ case IRQ_RTC_ALARM:
++ bit_position = 10;
++ break;
++ case IRQ_KEYPAD:
++ bit_position = 8;
++ break;
++ default:
++ printk("irq %d : Not supporting wakeup \n", irqno);
++ return -1;
++ }
++
++ if(flag) {
++ pwr_cfg &=~(1 << bit_position);
++ } else {
++ pwr_cfg |= (1 << bit_position);
++ }
++ __raw_writel(pwr_cfg, S3C_PWR_CFG);
++
++ return 0;
++}
++
++//static struct irqchip s3c_irq_level_chip = {
++static struct irq_chip s3c_irq_level_chip = {
++ .ack = s3c_irq_maskack,
++ .mask = s3c_irq_mask,
++ .unmask = s3c_irq_unmask,
++ .set_wake = s3c_irq_wake
++};
++
++#if 0 /* XXX: when you want to use it, unmask it. by scsuh */
++static struct irqchip s3c_irq_chip = {
++ .ack = s3c_irq_mask,
++ .mask = s3c_irq_mask,
++ .unmask = s3c_irq_unmask,
++ .set_wake = s3c_irq_wake
++};
++#endif
++
++static inline void
++s3c_irqext_mask(unsigned int irqno)
++{
++ unsigned long gpjcon; // Workaround
++ unsigned long mask;
++
++ if (irqno >= 64) {
++ gpjcon = __raw_readl(S3C_GPJCON);
++ irqno -= 64;
++ mask = __raw_readl(S3C_EINTMASK);
++ mask |= (1UL << irqno);
++ __raw_writel(mask, S3C_EINTMASK);
++ __raw_writel(gpjcon, S3C_GPJCON);
++ } else {
++ printk("Invalid ext irq %d\n", irqno);
++ }
++}
++
++static inline void
++s3c_irqext_maskack(unsigned int irqno)
++{
++ s3c_irqext_mask(irqno);
++
++ if (irqno <= IRQ_EINT3) {
++ s3c_irq_mask(IRQ_EINT0_3);
++ } else if (irqno <= IRQ_EINT11) {
++ s3c_irq_mask(IRQ_EINT4_11);
++ } else if (irqno <= IRQ_EINT19) {
++ s3c_irq_mask(IRQ_EINT12_19);
++ } else if (irqno <= IRQ_EINT27) {
++ s3c_irq_mask(IRQ_EINT20_27);
++ } else if (irqno > IRQ_EINT27) {
++ panic("Wrong IRQ number %d \n ", irqno);
++ }
++
++}
++
++static inline void
++s3c_irqext_unmaskack(unsigned int irqno)
++{
++ unsigned long mask;
++
++ if (irqno <= IRQ_EINT3) {
++ s3c_irq_unmaskack(IRQ_EINT0_3);
++ } else if (irqno <= IRQ_EINT11) {
++ s3c_irq_unmaskack(IRQ_EINT4_11);
++ } else if (irqno <= IRQ_EINT19) {
++ s3c_irq_unmaskack(IRQ_EINT12_19);
++ } else if (irqno <= IRQ_EINT27) {
++ s3c_irq_unmaskack(IRQ_EINT20_27);
++ }
++ if (irqno >= 64) {
++ irqno -= 64;
++ __raw_writel(1UL << irqno, S3C_EINTPEND);
++ mask = __raw_readl(S3C_EINTMASK);
++ mask &= ~(1UL << irqno);
++ __raw_writel(mask, S3C_EINTMASK);
++ } else {
++ printk("Invalid ext irq %d\n", irqno);
++ }
++
++}
++
++
++static int
++s3c_irqext_type(unsigned int irq, unsigned int type)
++{
++
++ unsigned long newvalue = 0;
++
++
++ /* Set the external interrupt to pointed trigger type */
++ switch (type) {
++ case IRQT_NOEDGE:
++ printk(KERN_WARNING "No edge setting!\n");
++ break;
++
++ case IRQT_RISING:
++ newvalue = S3C_EXTINT_RISEEDGE;
++ break;
++
++ case IRQT_FALLING:
++ newvalue = S3C_EXTINT_FALLEDGE;
++ break;
++
++ case IRQT_BOTHEDGE:
++ newvalue = S3C_EXTINT_BOTHEDGE;
++ break;
++
++ case IRQT_LOW:
++ newvalue = S3C_EXTINT_LOWLEV;
++ break;
++
++ case IRQT_HIGH:
++ newvalue = S3C_EXTINT_HILEV;
++ break;
++
++ default:
++ printk(KERN_ERR "No such irq type %d", type);
++ return -1;
++ }
++
++ switch (irq) {
++ case IRQ_EINT9:
++ gpio_set_pin(S3C_GPN9, S3C_GPN9_EXTINT9);
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 16)) |
++ (newvalue << 16), S3C_EINTCON0);
++ break;
++
++ case IRQ_EINT10:
++ gpio_set_pin(S3C_GPN10, S3C_GPN10_EXTINT10);
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 20)) |
++ (newvalue << 20), S3C_EINTCON0);
++ break;
++
++ case IRQ_EINT11:
++ gpio_set_pin(S3C_GPN11, S3C_GPN11_EXTINT11);
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 20)) |
++ (newvalue << 20), S3C_EINTCON0);
++ break;
++ case IRQ_EINT12:
++ gpio_set_pin(S3C_GPN12, S3C_GPN12_EXTINT12);
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 24)) |
++ (newvalue << 24), S3C_EINTCON0);
++ break;
++
++ case IRQ_EINT13:
++ gpio_set_pin(S3C_GPN13, S3C_GPN13_EXTINT13);
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 24)) |
++ (newvalue << 24), S3C_EINTCON0);
++ break;
++
++ case IRQ_EINT14:
++ gpio_set_pin(S3C_GPN14, S3C_GPN14_EXTINT14);
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 28)) |
++ (newvalue << 28), S3C_EINTCON0);
++ break;
++
++ case IRQ_EINT15:
++ gpio_set_pin(S3C_GPN15, S3C_GPN15_EXTINT15);
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 28)) |
++ (newvalue << 28), S3C_EINTCON0);
++ break;
++ default:
++ printk(KERN_ERR
++ "s3c_irqext_type : Only support EINT9,10,11,12,13,14,15 interrupt.\n");
++ break;
++
++ }
++
++ return 0;
++}
++
++static int s3c_irqext_wake(unsigned int irqno, unsigned int flag)
++{
++ unsigned int eint_mask;
++
++ if(irqno < IRQ_EINT0)
++ printk(KERN_ERR "Check external wake-up source\n");
++
++ eint_mask = __raw_readl(S3C_EINT_MASK);
++
++ if(flag) {
++ eint_mask &= ~(1 << (irqno - IRQ_EINT0));
++ } else {
++ eint_mask |= (1 << (irqno - IRQ_EINT0));
++ }
++
++ __raw_writel(eint_mask, S3C_EINT_MASK);
++
++ return 0;
++}
++
++//static struct irqchip s3c_irqext_chip = {
++static struct irq_chip s3c_irqext_chip = {
++ .mask = s3c_irqext_mask,
++ .unmask = s3c_irqext_unmaskack,
++ .ack = s3c_irqext_maskack,
++ .set_type = s3c_irqext_type,
++ .set_wake = s3c_irqext_wake
++};
++
++
++/* irq demux for EINT0_3 */
++static inline void
++s3c_irq_demux_eint0_3(unsigned int irq, struct irq_desc *desc)
++{
++ unsigned int eintpend, eintmsk;
++ unsigned int irqnr = IRQ_EINT0;
++ unsigned char interruptPending = 0, count = 0;
++ struct irq_desc *mydesc;
++
++ /* read the current pending interrupts, and the mask
++ * for what it is available */
++ eintpend = __raw_readl(S3C_EINTPEND);
++ eintmsk = __raw_readl(S3C_EINTMASK);
++
++ eintpend &= ~eintmsk;
++
++ interruptPending = (eintpend & 0xf);
++ while (interruptPending != 0) {
++ if (interruptPending & 0x1) {
++ mydesc = irq_desc + (irqnr + count);
++ //mydesc->handle((irqnr + count), mydesc, regs);
++ desc_handle_irq((irqnr + count), mydesc);
++ }
++ interruptPending >>= 1;
++ count++;
++ }
++
++}
++
++/* irq demux for EINT4_11 */
++static void
++s3c_irq_demux_eint4_11(unsigned int irq, struct irq_desc *desc)
++{
++ unsigned int eintpend, eintmsk;
++ unsigned int irqnr = IRQ_EINT4;
++ unsigned char interruptPending = 0, count = 0;
++ struct irq_desc *mydesc;
++
++ /* read the current pending interrupts, and the mask
++ * for what it is available */
++ eintpend = __raw_readl(S3C_EINTPEND);
++ eintmsk = __raw_readl(S3C_EINTMASK);
++
++ eintpend &= ~eintmsk;
++
++ interruptPending = ((eintpend >> 4) & 0xff);
++ while (interruptPending != 0) {
++ if (interruptPending & 0x1) {
++ mydesc = irq_desc + (irqnr + count);
++ //mydesc->handle((irqnr + count), mydesc, regs);
++ desc_handle_irq((irqnr + count), mydesc);
++ }
++ interruptPending >>= 1;
++ count++;
++ }
++}
++
++/* irq demux for EINT12_19 */
++static void
++s3c_irq_demux_eint12_19(unsigned int irq, struct irq_desc *desc)
++{
++ unsigned int eintpend, eintmsk;
++ unsigned int irqnr = IRQ_EINT12;
++ unsigned char interruptPending = 0, count = 0;
++ struct irq_desc *mydesc;
++
++ /* read the current pending interrupts, and the mask
++ * for what it is available */
++ eintpend = __raw_readl(S3C_EINTPEND);
++ eintmsk = __raw_readl(S3C_EINTMASK);
++
++ eintpend &= ~eintmsk;
++
++ interruptPending = ((eintpend >> 12) & 0xff);
++ while (interruptPending != 0) {
++ if (interruptPending & 0x1) {
++ mydesc = irq_desc + (irqnr + count);
++ //mydesc->handle((irqnr + count), mydesc, regs);
++ desc_handle_irq((irqnr + count), mydesc);
++ }
++ interruptPending >>= 1;
++ count++;
++ }
++
++}
++
++/* irq demux for EINT20_27 */
++static void
++s3c_irq_demux_eint20_27 (unsigned int irq, struct irq_desc *desc)
++{
++ unsigned int eintpend, eintmsk;
++ unsigned int irqnr = IRQ_EINT20;
++ unsigned char interruptPending = 0, count = 0;
++ struct irq_desc *mydesc;
++
++ /* read the current pending interrupts, and the mask
++ * for what it is available */
++ eintpend = __raw_readl(S3C_EINTPEND);
++ eintmsk = __raw_readl(S3C_EINTMASK);
++
++ eintpend &= ~eintmsk;
++
++ interruptPending = ((eintpend >> 20) & 0xff);
++ while (interruptPending != 0) {
++ if (interruptPending & 0x1) {
++ mydesc = irq_desc + (irqnr + count);
++ //mydesc->handle((irqnr + count), mydesc, regs);
++ desc_handle_irq((irqnr + count), mydesc);
++ }
++ interruptPending >>= 1;
++ count++;
++ }
++}
++
++#ifdef CONFIG_PM
++
++static struct sleep_save irq_save[] = {
++ SAVE_ITEM(S3C_VIC0INTSELECT),
++ SAVE_ITEM(S3C_VIC1INTSELECT),
++ SAVE_ITEM(S3C_VIC0INTENABLE),
++ SAVE_ITEM(S3C_VIC1INTENABLE),
++ SAVE_ITEM(S3C_VIC0SOFTINT),
++ SAVE_ITEM(S3C_VIC1SOFTINT),
++};
++
++static struct sleep_save extirq_save[] = {
++ SAVE_ITEM(S3C_EINTCON0),
++ SAVE_ITEM(S3C_EINTCON1),
++ SAVE_ITEM(S3C_EINTFLTCON0),
++ SAVE_ITEM(S3C_EINTFLTCON1),
++ SAVE_ITEM(S3C_EINTFLTCON2),
++ SAVE_ITEM(S3C_EINTFLTCON3),
++ SAVE_ITEM(S3C_EINTMASK),
++ SAVE_ITEM(S3C_EINT12CON),
++ SAVE_ITEM(S3C_EINT34CON),
++ SAVE_ITEM(S3C_EINT56CON),
++ SAVE_ITEM(S3C_EINT78CON),
++ SAVE_ITEM(S3C_EINT9CON),
++ SAVE_ITEM(S3C_EINT12FLTCON),
++ SAVE_ITEM(S3C_EINT34FLTCON),
++ SAVE_ITEM(S3C_EINT56FLTCON),
++ SAVE_ITEM(S3C_EINT78FLTCON),
++ SAVE_ITEM(S3C_EINT9FLTCON),
++ SAVE_ITEM(S3C_EINT12MASK),
++ SAVE_ITEM(S3C_EINT34MASK),
++ SAVE_ITEM(S3C_EINT56MASK),
++ SAVE_ITEM(S3C_EINT78MASK),
++ SAVE_ITEM(S3C_EINT9MASK),
++ SAVE_ITEM(S3C_EINT34FLTCON),
++ SAVE_ITEM(S3C_EINT56FLTCON),
++ SAVE_ITEM(S3C_EINT78FLTCON),
++ SAVE_ITEM(S3C_EINT9FLTCON),
++};
++
++int s3c24xx_irq_suspend(struct sys_device *dev, pm_message_t state)
++{
++ s3c2410_pm_do_save(extirq_save, ARRAY_SIZE(extirq_save));
++ s3c2410_pm_do_save(irq_save, ARRAY_SIZE(irq_save));
++ return 0;
++}
++
++int s3c24xx_irq_resume(struct sys_device *dev)
++{
++ int irqno;
++ int irqindex = 0;
++
++ s3c2410_pm_do_restore(extirq_save, ARRAY_SIZE(extirq_save));
++ s3c2410_pm_do_restore(irq_save, ARRAY_SIZE(irq_save));
++
++ /* For writing the IRQ number into the VICVECTADDR */
++ for (irqno = IRQ_EINT0_3; irqno <= IRQ_LCD_SYSTEM; irqno++) {
++ __raw_writel(irqno, S3C_VIC0VECTADDR0 + irqindex);
++ irqindex = irqindex + 4;
++ }
++
++ irqindex = 0;
++ for (irqno = IRQ_EINT12_19; irqno <= IRQ_ADC; irqno++) {
++ __raw_writel(irqno, S3C_VIC1VECTADDR0 + irqindex);
++ irqindex = irqindex + 4;
++ }
++ return 0;
++}
++
++#else
++#define s3c24xx_irq_suspend NULL
++#define s3c24xx_irq_resume NULL
++#endif
++
++
++/* --------------------------------------------------
++ * s3c_init_irq
++ *
++ * Initialise s3c6400 IRQ system
++ * --------------------------------------------------
++ */
++
++void __init s3c_init_irq(void)
++{
++ int irqno;
++ int irqindex = 0;
++
++ irqdbf("s3c_init_irq: clearing interrupt status flags\n");
++
++ /* first, clear all interrupts pending... */
++
++ /* clear external interrupts */
++ __raw_writel(0xFFFFFFFF, S3C_EINTPEND);
++
++ /* clear all vector interrupts */
++ __raw_writel(0x00000000, S3C_VIC0ADDRESS);
++ __raw_writel(0x00000000, S3C_VIC1ADDRESS);
++
++
++ /* For writing the IRQ number into the VICVECTADDR */
++ for (irqno = IRQ_EINT0_3; irqno <= IRQ_LCD_SYSTEM; irqno++) {
++ __raw_writel(irqno, S3C_VIC0VECTADDR0 + irqindex);
++ irqindex = irqindex + 4;
++ }
++
++ irqindex = 0;
++ for (irqno = IRQ_EINT12_19; irqno <= IRQ_ADC; irqno++) {
++ __raw_writel(irqno, S3C_VIC1VECTADDR0 + irqindex);
++ irqindex = irqindex + 4;
++ }
++
++ /* register the main interrupts */
++ irqdbf("s3c_init_irq: registering S3C64XX interrupt handlers\n");
++
++ for (irqno = IRQ_EINT0_3; irqno <= IRQ_ADC; irqno++) {
++ switch (irqno) {
++ /* deal with the special IRQs in ext (cascaded) */
++ case IRQ_EINT0_3:
++ set_irq_chained_handler(IRQ_EINT0_3, s3c_irq_demux_eint0_3);
++ break;
++
++ case IRQ_EINT4_11:
++ set_irq_chained_handler(IRQ_EINT4_11, s3c_irq_demux_eint4_11);
++ break;
++
++ case IRQ_EINT12_19:
++ set_irq_chained_handler(IRQ_EINT12_19, s3c_irq_demux_eint12_19);
++ break;
++
++ case IRQ_EINT20_27:
++ set_irq_chained_handler(IRQ_EINT20_27, s3c_irq_demux_eint20_27);
++ break;
++
++ default:
++ irqdbf("registering irq %d (s3c irq)\n", irqno);
++ set_irq_chip(irqno, &s3c_irq_level_chip);
++ //set_irq_handler(irqno, do_level_IRQ);
++ set_irq_handler(irqno, handle_level_irq);
++ set_irq_flags(irqno, IRQF_VALID);
++ break;
++ }
++ }
++
++ for (irqno = IRQ_EINT0; irqno <= IRQ_EINT27; irqno++) {
++ irqdbf("registering irq %d (extended s3c irq)\n", irqno);
++ set_irq_chip(irqno, &s3c_irqext_chip);
++ //set_irq_handler(irqno, do_level_IRQ);
++ set_irq_handler(irqno, handle_level_irq);
++ set_irq_flags(irqno, IRQF_VALID);
++ }
++
++ irqdbf("s3c64XX: registered interrupt handlers\n");
++}
+diff --git a/arch/arm/plat-s3c64xx/ltc3714.c b/arch/arm/plat-s3c64xx/ltc3714.c
+new file mode 100644
+index 0000000..0b4d5ba
+--- /dev/null
++++ b/arch/arm/plat-s3c64xx/ltc3714.c
+@@ -0,0 +1,153 @@
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/fs.h>
++#include <linux/errno.h>
++#include <linux/types.h>
++#include <linux/fcntl.h>
++
++#include <asm/uaccess.h>
++#include <asm/io.h>
++
++#include <linux/stat.h>
++
++#include <linux/delay.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/gpio.h>
++
++#define ARM_LE 0
++#define INT_LE 1
++
++/* ltc3714 voltage table */
++static const unsigned int voltage_table[32] = {
++ 1750, 1700, 1650, 1600, 1550, 1500, 1450, 1400,
++ 1350, 1300, 1250, 1200, 1150, 1100, 1050, 1000,
++ 975, 950, 925, 900, 875, 850, 825, 800,
++ 775, 750, 725, 700, 675, 650, 625, 600,
++};
++
++/* frequency voltage matching table */
++static const unsigned int frequency_match[][3] = {
++/* frequency, Mathced VDD ARM voltage , Matched VDD INT*/
++ {667000, 1200, 1300},
++ {333000, 1100, 1200},
++ {222000, 1050, 1200},
++ {133000, 1000, 1200},
++ {66000, 1000, 1000},
++};
++
++/* LTC3714 Setting Routine */
++static int ltc3714_gpio_setting(void)
++{
++ gpio_direction_output(S3C_GPN11, 0);
++ gpio_direction_output(S3C_GPN12, 0);
++ gpio_direction_output(S3C_GPN13, 0);
++ gpio_direction_output(S3C_GPN14, 0);
++ gpio_direction_output(S3C_GPN15, 0);
++ gpio_direction_output(S3C_GPL8, 0);
++ gpio_direction_output(S3C_GPL9, 0);
++ gpio_direction_output(S3C_GPL10, 0);
++
++ gpio_pullup(S3C_GPN11, 0x0);
++ gpio_pullup(S3C_GPN12, 0x0);
++ gpio_pullup(S3C_GPN13, 0x0);
++ gpio_pullup(S3C_GPN14, 0x0);
++ gpio_pullup(S3C_GPN15, 0x0);
++ gpio_pullup(S3C_GPL8, 0x0);
++ gpio_pullup(S3C_GPL9, 0x0);
++ gpio_pullup(S3C_GPL10, 0x0);
++
++ return 0;
++}
++
++static int set_ltc3714(unsigned int pwr, unsigned int index)
++{
++ int position = 0;
++
++ int voltage = frequency_match[index][pwr + 1];
++
++ if(voltage > voltage_table[0] || voltage < voltage_table[31]) {
++ printk("[ERROR]: voltage value over limits!!!");
++ return -EINVAL;
++ }
++
++ if(voltage > voltage_table[16]) { // 1750 ~ 1000 mV
++ for(position = 15; position >= 0; position --) {
++ if(voltage_table[position] == voltage) break;
++ }
++
++ }
++ else if(voltage >= voltage_table[31]) { //975 ~ 600 mV
++ for(position = 31; position >= 16; position --) {
++ if(voltage_table[position] == voltage) break;
++ }
++ }
++ else {
++ printk("[error]: Can't find adquate voltage table list value\n");
++ return -EINVAL;
++ }
++
++ position &=0x1f;
++
++ gpio_set_value(S3C_GPN11,(position >> 0)&0x1);
++ gpio_set_value(S3C_GPN12,(position >> 1)&0x1);
++ gpio_set_value(S3C_GPN13,(position >> 2)&0x1);
++ gpio_set_value(S3C_GPN14,(position >> 3)&0x1);
++ gpio_set_value(S3C_GPN15,(position >> 4)&0x1);
++
++ if(pwr == ARM_LE) {
++ gpio_set_value(S3C_GPL8, 1);
++ udelay(10);
++ gpio_set_value(S3C_GPL8, 0);
++ } else if(pwr == INT_LE) {
++ gpio_set_value(S3C_GPL10, 1);
++ udelay(10);
++ gpio_set_value(S3C_GPL10, 0);
++ } else {
++ printk("[error]: set_power, check mode [pwr] value\n");
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++static int find_voltage(int freq)
++{
++ int index = 0;
++
++ if(freq > frequency_match[0][0]){
++ printk(KERN_ERR "frequecy is over then support frequency\n");
++ return 0;
++ }
++
++ for(index = 0 ; index < ARRAY_SIZE(frequency_match) ; index++){
++ if(freq >= frequency_match[index][0])
++ return index;
++ }
++
++ printk("Cannot find matched voltage on table\n");
++
++ return 0;
++}
++
++int set_power(unsigned int freq)
++{
++ int index;
++
++ index = find_voltage(freq);
++
++ set_ltc3714(ARM_LE, index);
++
++ return 0;
++}
++
++EXPORT_SYMBOL(set_power);
++
++int ltc3714_init(void)
++{
++ ltc3714_gpio_setting();
++ set_power(532000);
++ gpio_set_value(S3C_GPL9, 1);
++}
++
++EXPORT_SYMBOL(ltc3714_init);
+diff --git a/arch/arm/plat-s3c64xx/pm.c b/arch/arm/plat-s3c64xx/pm.c
+new file mode 100644
+index 0000000..08efe07
+--- /dev/null
++++ b/arch/arm/plat-s3c64xx/pm.c
+@@ -0,0 +1,787 @@
++/* linux/arch/arm/plat-s3c24xx/pm.c
++ *
++ * Copyright (c) 2004,2006 Simtec Electronics
++ * Ben Dooks <ben@simtec.co.uk>
++ *
++ * S3C24XX Power Manager (Suspend-To-RAM) support
++ *
++ * See Documentation/arm/Samsung-S3C24XX/Suspend.txt for more information
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ * Parts based on arch/arm/mach-pxa/pm.c
++ *
++ * Thanks to Dimitry Andric for debugging
++*/
++
++#include <linux/init.h>
++#include <linux/suspend.h>
++#include <linux/errno.h>
++#include <linux/time.h>
++#include <linux/interrupt.h>
++#include <linux/crc32.h>
++#include <linux/ioport.h>
++#include <linux/delay.h>
++#include <linux/serial_core.h>
++#include <linux/platform_device.h>
++
++#include <asm/cacheflush.h>
++#include <asm/hardware.h>
++#include <asm/io.h>
++
++#include <asm/arch/regs-s3c-clock.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-gpioj.h>
++#include <asm/arch/regs-dsc.h>
++#include <asm/arch/regs-mem.h>
++#include <asm/arch/regs-irq.h>
++#include <asm/arch/gpio.h>
++
++#include <asm/mach/time.h>
++
++#include <asm/plat-s3c24xx/pm.h>
++#include <asm/mach/irq.h>
++
++/* for external use */
++
++unsigned long s3c_pm_flags;
++
++#define PFX "s3c24xx-pm: "
++
++static struct sleep_save core_save[] = {
++#if defined (CONFIG_CPU_S3C6400) || defined (CONFIG_CPU_S3C6410)
++ SAVE_ITEM(S3C_SDMA_SEL),
++#else
++ SAVE_ITEM(S3C2410_LOCKTIME),
++ SAVE_ITEM(S3C2410_CLKCON),
++
++ /* we restore the timings here, with the proviso that the board
++ * brings the system up in an slower, or equal frequency setting
++ * to the original system.
++ *
++ * if we cannot guarantee this, then things are going to go very
++ * wrong here, as we modify the refresh and both pll settings.
++ */
++
++ SAVE_ITEM(S3C2410_BWSCON),
++ SAVE_ITEM(S3C2410_BANKCON0),
++ SAVE_ITEM(S3C2410_BANKCON1),
++ SAVE_ITEM(S3C2410_BANKCON2),
++ SAVE_ITEM(S3C2410_BANKCON3),
++ SAVE_ITEM(S3C2410_BANKCON4),
++ SAVE_ITEM(S3C2410_BANKCON5),
++
++ SAVE_ITEM(S3C2410_CLKDIVN),
++ SAVE_ITEM(S3C2410_MPLLCON),
++ SAVE_ITEM(S3C2410_UPLLCON),
++ SAVE_ITEM(S3C2410_CLKSLOW),
++ SAVE_ITEM(S3C2410_REFRESH),
++#endif
++};
++
++static struct sleep_save gpio_save[] = {
++#if defined (CONFIG_CPU_S3C6400) || defined (CONFIG_CPU_S3C6410)
++
++ SAVE_ITEM(S3C_GPACON),
++ SAVE_ITEM(S3C_GPADAT),
++ SAVE_ITEM(S3C_GPAPU),
++
++ SAVE_ITEM(S3C_GPBCON),
++ SAVE_ITEM(S3C_GPBDAT),
++ SAVE_ITEM(S3C_GPBPU),
++
++ SAVE_ITEM(S3C_GPCCON),
++ SAVE_ITEM(S3C_GPCDAT),
++ SAVE_ITEM(S3C_GPCPU),
++
++ SAVE_ITEM(S3C_GPDCON),
++ SAVE_ITEM(S3C_GPDDAT),
++ SAVE_ITEM(S3C_GPDPU),
++
++ SAVE_ITEM(S3C_GPECON),
++ SAVE_ITEM(S3C_GPEDAT),
++ SAVE_ITEM(S3C_GPEPU),
++
++ SAVE_ITEM(S3C_GPFCON),
++ SAVE_ITEM(S3C_GPFDAT),
++ SAVE_ITEM(S3C_GPFPU),
++
++ SAVE_ITEM(S3C_GPGCON),
++ SAVE_ITEM(S3C_GPGDAT),
++ SAVE_ITEM(S3C_GPGPU),
++
++ SAVE_ITEM(S3C_GPH0CON),
++ SAVE_ITEM(S3C_GPH1CON),
++ SAVE_ITEM(S3C_GPHDAT),
++ SAVE_ITEM(S3C_GPHPU),
++
++ SAVE_ITEM(S3C_GPICON),
++ SAVE_ITEM(S3C_GPIDAT),
++ SAVE_ITEM(S3C_GPIPU),
++
++ SAVE_ITEM(S3C_GPJCON),
++ SAVE_ITEM(S3C_GPJDAT),
++ SAVE_ITEM(S3C_GPJPU),
++
++ SAVE_ITEM(S3C_GPK0CON),
++ SAVE_ITEM(S3C_GPK1CON),
++ SAVE_ITEM(S3C_GPKDAT),
++ SAVE_ITEM(S3C_GPKPU),
++
++ SAVE_ITEM(S3C_GPL0CON),
++ SAVE_ITEM(S3C_GPL1CON),
++ SAVE_ITEM(S3C_GPLDAT),
++ SAVE_ITEM(S3C_GPLPU),
++
++ SAVE_ITEM(S3C_GPMCON),
++ SAVE_ITEM(S3C_GPMDAT),
++ SAVE_ITEM(S3C_GPMPU),
++
++ SAVE_ITEM(S3C_GPNCON),
++ SAVE_ITEM(S3C_GPNDAT),
++ SAVE_ITEM(S3C_GPNPU),
++
++ SAVE_ITEM(S3C_GPOCON),
++ SAVE_ITEM(S3C_GPODAT),
++ SAVE_ITEM(S3C_GPOPU),
++
++ SAVE_ITEM(S3C_GPPCON),
++ SAVE_ITEM(S3C_GPPDAT),
++ SAVE_ITEM(S3C_GPPPU),
++
++ SAVE_ITEM(S3C_GPQCON),
++ SAVE_ITEM(S3C_GPQDAT),
++ SAVE_ITEM(S3C_GPQPU),
++
++
++ SAVE_ITEM(S3C_PRIORITY),
++
++ /* Special register*/
++ SAVE_ITEM(S3C_SPCON),
++
++ /* Memory port control */
++ SAVE_ITEM(S3C_MEM0CONSTOP),
++ SAVE_ITEM(S3C_MEM1CONSTOP),
++ SAVE_ITEM(S3C_MEM0CONSLP0),
++ SAVE_ITEM(S3C_MEM0CONSLP1),
++ SAVE_ITEM(S3C_MEM1CONSLP),
++ SAVE_ITEM(S3C_MEM0DRVCON),
++ SAVE_ITEM(S3C_MEM1DRVCON),
++#else
++ SAVE_ITEM(S3C2410_GPACON),
++ SAVE_ITEM(S3C2410_GPADAT),
++
++ SAVE_ITEM(S3C2410_GPBCON),
++ SAVE_ITEM(S3C2410_GPBDAT),
++ SAVE_ITEM(S3C2410_GPBUP),
++
++ SAVE_ITEM(S3C2410_GPCCON),
++ SAVE_ITEM(S3C2410_GPCDAT),
++ SAVE_ITEM(S3C2410_GPCUP),
++
++ SAVE_ITEM(S3C2410_GPDCON),
++ SAVE_ITEM(S3C2410_GPDDAT),
++ SAVE_ITEM(S3C2410_GPDUP),
++
++ SAVE_ITEM(S3C2410_GPECON),
++ SAVE_ITEM(S3C2410_GPEDAT),
++ SAVE_ITEM(S3C2410_GPEUP),
++
++ SAVE_ITEM(S3C2410_GPFCON),
++ SAVE_ITEM(S3C2410_GPFDAT),
++ SAVE_ITEM(S3C2410_GPFUP),
++
++ SAVE_ITEM(S3C2410_GPGCON),
++ SAVE_ITEM(S3C2410_GPGDAT),
++ SAVE_ITEM(S3C2410_GPGUP),
++
++ SAVE_ITEM(S3C2410_GPHCON),
++ SAVE_ITEM(S3C2410_GPHDAT),
++ SAVE_ITEM(S3C2410_GPHUP),
++
++ SAVE_ITEM(S3C2410_DCLKCON),
++#endif
++};
++
++#if defined (CONFIG_CPU_S3C6400) || defined (CONFIG_CPU_S3C6410)
++/* this lot should be really saved by the IRQ code */
++/* VICXADDRESSXX initilaization to be needed */
++static struct sleep_save irq_save[] = {
++ SAVE_ITEM(S3C_VIC0INTSELECT),
++ SAVE_ITEM(S3C_VIC1INTSELECT),
++ SAVE_ITEM(S3C_VIC0INTENABLE),
++ SAVE_ITEM(S3C_VIC1INTENABLE),
++ SAVE_ITEM(S3C_VIC0SOFTINT),
++ SAVE_ITEM(S3C_VIC1SOFTINT),
++};
++
++static struct sleep_save sromc_save[] = {
++ SAVE_ITEM(S3C_SROM_BW),
++ SAVE_ITEM(S3C_SROM_BC0),
++ SAVE_ITEM(S3C_SROM_BC1),
++ SAVE_ITEM(S3C_SROM_BC2),
++ SAVE_ITEM(S3C_SROM_BC3),
++ SAVE_ITEM(S3C_SROM_BC4),
++ SAVE_ITEM(S3C_SROM_BC5),
++};
++
++#endif
++
++#ifdef CONFIG_S3C2410_PM_DEBUG
++
++#define SAVE_UART(va) \
++ SAVE_ITEM((va) + S3C2410_ULCON), \
++ SAVE_ITEM((va) + S3C2410_UCON), \
++ SAVE_ITEM((va) + S3C2410_UFCON), \
++ SAVE_ITEM((va) + S3C2410_UMCON), \
++ SAVE_ITEM((va) + S3C2410_UBRDIV)
++
++static struct sleep_save uart_save[] = {
++ SAVE_UART(S3C24XX_VA_UART0),
++ SAVE_UART(S3C24XX_VA_UART1),
++#ifndef CONFIG_CPU_S3C2400
++ SAVE_UART(S3C24XX_VA_UART2),
++#endif
++};
++
++/* debug
++ *
++ * we send the debug to printascii() to allow it to be seen if the
++ * system never wakes up from the sleep
++*/
++
++extern void printascii(const char *);
++
++void pm_dbg(const char *fmt, ...)
++{
++ va_list va;
++ char buff[256];
++
++ va_start(va, fmt);
++ vsprintf(buff, fmt, va);
++ va_end(va);
++
++ printascii(buff);
++}
++
++static void s3c2410_pm_debug_init(void)
++{
++ unsigned long tmp = __raw_readl(S3C2410_CLKCON);
++
++ /* re-start uart clocks */
++ tmp |= S3C2410_CLKCON_UART0;
++ tmp |= S3C2410_CLKCON_UART1;
++ tmp |= S3C2410_CLKCON_UART2;
++
++ __raw_writel(tmp, S3C2410_CLKCON);
++ udelay(10);
++}
++
++#define DBG(fmt...) pm_dbg(fmt)
++#else
++#define DBG(fmt...)
++
++#define s3c2410_pm_debug_init() do { } while(0)
++
++static struct sleep_save uart_save[] = {};
++#endif
++
++#if defined(CONFIG_S3C2410_PM_CHECK) && CONFIG_S3C2410_PM_CHECK_CHUNKSIZE != 0
++
++/* suspend checking code...
++ *
++ * this next area does a set of crc checks over all the installed
++ * memory, so the system can verify if the resume was ok.
++ *
++ * CONFIG_S3C2410_PM_CHECK_CHUNKSIZE defines the block-size for the CRC,
++ * increasing it will mean that the area corrupted will be less easy to spot,
++ * and reducing the size will cause the CRC save area to grow
++*/
++
++#define CHECK_CHUNKSIZE (CONFIG_S3C2410_PM_CHECK_CHUNKSIZE * 1024)
++
++static u32 crc_size; /* size needed for the crc block */
++static u32 *crcs; /* allocated over suspend/resume */
++
++typedef u32 *(run_fn_t)(struct resource *ptr, u32 *arg);
++
++/* s3c2410_pm_run_res
++ *
++ * go thorugh the given resource list, and look for system ram
++*/
++
++static void s3c2410_pm_run_res(struct resource *ptr, run_fn_t fn, u32 *arg)
++{
++ while (ptr != NULL) {
++ if (ptr->child != NULL)
++ s3c2410_pm_run_res(ptr->child, fn, arg);
++
++ if ((ptr->flags & IORESOURCE_MEM) &&
++ strcmp(ptr->name, "System RAM") == 0) {
++ DBG("Found system RAM at %08lx..%08lx\n",
++ ptr->start, ptr->end);
++ arg = (fn)(ptr, arg);
++ }
++
++ ptr = ptr->sibling;
++ }
++}
++
++static void s3c2410_pm_run_sysram(run_fn_t fn, u32 *arg)
++{
++ s3c2410_pm_run_res(&iomem_resource, fn, arg);
++}
++
++static u32 *s3c2410_pm_countram(struct resource *res, u32 *val)
++{
++ u32 size = (u32)(res->end - res->start)+1;
++
++ size += CHECK_CHUNKSIZE-1;
++ size /= CHECK_CHUNKSIZE;
++
++ DBG("Area %08lx..%08lx, %d blocks\n", res->start, res->end, size);
++
++ *val += size * sizeof(u32);
++ return val;
++}
++
++/* s3c2410_pm_prepare_check
++ *
++ * prepare the necessary information for creating the CRCs. This
++ * must be done before the final save, as it will require memory
++ * allocating, and thus touching bits of the kernel we do not
++ * know about.
++*/
++
++static void s3c2410_pm_check_prepare(void)
++{
++ crc_size = 0;
++
++ s3c2410_pm_run_sysram(s3c2410_pm_countram, &crc_size);
++
++ DBG("s3c2410_pm_prepare_check: %u checks needed\n", crc_size);
++
++ crcs = kmalloc(crc_size+4, GFP_KERNEL);
++ if (crcs == NULL)
++ printk(KERN_ERR "Cannot allocated CRC save area\n");
++}
++
++static u32 *s3c2410_pm_makecheck(struct resource *res, u32 *val)
++{
++ unsigned long addr, left;
++
++ for (addr = res->start; addr < res->end;
++ addr += CHECK_CHUNKSIZE) {
++ left = res->end - addr;
++
++ if (left > CHECK_CHUNKSIZE)
++ left = CHECK_CHUNKSIZE;
++
++ *val = crc32_le(~0, phys_to_virt(addr), left);
++ val++;
++ }
++
++ return val;
++}
++
++/* s3c2410_pm_check_store
++ *
++ * compute the CRC values for the memory blocks before the final
++ * sleep.
++*/
++
++static void s3c2410_pm_check_store(void)
++{
++ if (crcs != NULL)
++ s3c2410_pm_run_sysram(s3c2410_pm_makecheck, crcs);
++}
++
++/* in_region
++ *
++ * return TRUE if the area defined by ptr..ptr+size contatins the
++ * what..what+whatsz
++*/
++
++static inline int in_region(void *ptr, int size, void *what, size_t whatsz)
++{
++ if ((what+whatsz) < ptr)
++ return 0;
++
++ if (what > (ptr+size))
++ return 0;
++
++ return 1;
++}
++
++static u32 *s3c2410_pm_runcheck(struct resource *res, u32 *val)
++{
++ void *save_at = phys_to_virt(s3c2410_sleep_save_phys);
++ unsigned long addr;
++ unsigned long left;
++ void *ptr;
++ u32 calc;
++
++ for (addr = res->start; addr < res->end;
++ addr += CHECK_CHUNKSIZE) {
++ left = res->end - addr;
++
++ if (left > CHECK_CHUNKSIZE)
++ left = CHECK_CHUNKSIZE;
++
++ ptr = phys_to_virt(addr);
++
++ if (in_region(ptr, left, crcs, crc_size)) {
++ DBG("skipping %08lx, has crc block in\n", addr);
++ goto skip_check;
++ }
++
++ if (in_region(ptr, left, save_at, 32*4 )) {
++ DBG("skipping %08lx, has save block in\n", addr);
++ goto skip_check;
++ }
++
++ /* calculate and check the checksum */
++
++ calc = crc32_le(~0, ptr, left);
++ if (calc != *val) {
++ printk(KERN_ERR PFX "Restore CRC error at "
++ "%08lx (%08x vs %08x)\n", addr, calc, *val);
++
++ DBG("Restore CRC error at %08lx (%08x vs %08x)\n",
++ addr, calc, *val);
++ }
++
++ skip_check:
++ val++;
++ }
++
++ return val;
++}
++
++/* s3c2410_pm_check_restore
++ *
++ * check the CRCs after the restore event and free the memory used
++ * to hold them
++*/
++
++static void s3c2410_pm_check_restore(void)
++{
++ if (crcs != NULL) {
++ s3c2410_pm_run_sysram(s3c2410_pm_runcheck, crcs);
++ kfree(crcs);
++ crcs = NULL;
++ }
++}
++
++#else
++
++#define s3c2410_pm_check_prepare() do { } while(0)
++#define s3c2410_pm_check_restore() do { } while(0)
++#define s3c2410_pm_check_store() do { } while(0)
++
++#endif
++
++/* helper functions to save and restore register state */
++
++void s3c2410_pm_do_save(struct sleep_save *ptr, int count)
++{
++ for (; count > 0; count--, ptr++) {
++ ptr->val = __raw_readl(ptr->reg);
++ }
++}
++
++/* s3c2410_pm_do_restore
++ *
++ * restore the system from the given list of saved registers
++ *
++ * Note, we do not use DBG() in here, as the system may not have
++ * restore the UARTs state yet
++*/
++
++void s3c2410_pm_do_restore(struct sleep_save *ptr, int count)
++{
++ for (; count > 0; count--, ptr++) {
++ __raw_writel(ptr->val, ptr->reg);
++ }
++}
++
++/* s3c2410_pm_do_save_phy
++ *
++ * save register of system
++ *
++ * Note, I made this function to support driver with ioremap.
++ * If you want to use this function, you should to input as first parameter
++ * struct sleep_save_phy type
++*/
++
++void s3c2410_pm_do_save_phy(struct sleep_save_phy *ptr, struct platform_device *pdev, int count)
++{
++ void __iomem *target_reg;
++ struct resource *res;
++ u32 reg_size;
++
++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ reg_size = res->end - res->start + 1;
++ target_reg = ioremap(res->start,reg_size);
++
++ for (; count > 0; count--, ptr++) {
++ ptr->val = readl(target_reg + (ptr->reg));
++ }
++}
++
++/* s3c2410_pm_do_restore_phy
++ *
++ * restore register of system
++ *
++ * Note, I made this function to support driver with ioremap.
++ * If you want to use this function, you should to input as first parameter
++ * struct sleep_save_phy type
++*/
++
++void s3c2410_pm_do_restore_phy(struct sleep_save_phy *ptr, struct platform_device *pdev, int count)
++{
++ void __iomem *target_reg;
++ struct resource *res;
++ u32 reg_size;
++
++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ reg_size = res->end - res->start + 1;
++ target_reg = ioremap(res->start,reg_size);
++
++ for (; count > 0; count--, ptr++) {
++ writel(ptr->val, (target_reg + ptr->reg));
++ }
++}
++
++/* s3c2410_pm_do_restore_core
++ *
++ * similar to s3c2410_pm_do_restore_core
++ *
++ * WARNING: Do not put any debug in here that may effect memory or use
++ * peripherals, as things may be changing!
++*/
++
++static void s3c2410_pm_do_restore_core(struct sleep_save *ptr, int count)
++{
++ for (; count > 0; count--, ptr++) {
++ __raw_writel(ptr->val, ptr->reg);
++ }
++}
++
++/* s3c2410_pm_show_resume_irqs
++ *
++ * print any IRQs asserted at resume time (ie, we woke from)
++*/
++
++static void s3c2410_pm_show_resume_irqs(int start, unsigned long which,
++ unsigned long mask)
++{
++ int i;
++
++ which &= ~mask;
++
++ for (i = 0; i <= 31; i++) {
++ if ((which) & (1L<<i)) {
++ DBG("IRQ %d asserted at resume\n", start+i);
++ }
++ }
++}
++
++#if 0
++extern int s3c_irqext_type(unsigned int irq, unsigned int type);
++extern void s3c_irqext_unmaskack(unsigned int irqno);
++#endif
++
++static void s3c6410_pm_configure_extint(void)
++{
++
++ /* for each of the external interrupts (EINT0..EINT15) we
++ * need to check wether it is an external interrupt source,
++ * and then configure it as an input if it is not
++ */
++
++ gpio_set_pin(S3C_GPN10, S3C_GPN10_EXTINT10);
++ gpio_pullup(S3C_GPN10, 2);
++ udelay(50);
++
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 20)) |
++ (S3C_EXTINT_FALLEDGE << 20), S3C_EINTCON0);
++
++ __raw_writel(1UL << (IRQ_EINT10 - IRQ_EINT0), S3C_EINTPEND);
++ __raw_writel(__raw_readl(S3C_EINTMASK)&~(1UL << (IRQ_EINT10 - IRQ_EINT0)), S3C_EINTMASK);
++
++ __raw_writel((0x0fffffff&~(3<<9)), S3C_EINT_MASK);
++}
++
++void (*pm_cpu_prep)(void);
++void (*pm_cpu_sleep)(void);
++
++#define any_allowed(mask, allow) (((mask) & (allow)) != (allow))
++
++/* s3c2410_pm_enter
++ *
++ * central control for sleep/resume process
++*/
++
++static int s3c6410_pm_enter(suspend_state_t state)
++{
++ unsigned long regs_save[16];
++ unsigned int tmp;
++
++ /* ensure the debug is initialised (if enabled) */
++
++ if (state != PM_SUSPEND_MEM) {
++ printk(KERN_ERR PFX "error: only PM_SUSPEND_MEM supported\n");
++ return -EINVAL;
++ }
++
++ /* prepare check area if configured */
++ s3c2410_pm_check_prepare();
++
++ /* store the physical address of the register recovery block */
++ s3c2410_sleep_save_phys = virt_to_phys(regs_save);
++
++ /* save all necessary core registers not covered by the drivers */
++ s3c2410_pm_do_save(gpio_save, ARRAY_SIZE(gpio_save));
++ s3c2410_pm_do_save(irq_save, ARRAY_SIZE(irq_save));
++ s3c2410_pm_do_save(core_save, ARRAY_SIZE(core_save));
++ s3c2410_pm_do_save(sromc_save, ARRAY_SIZE(sromc_save));
++
++ /* ensure INF_REG0 has the resume address */
++ __raw_writel(virt_to_phys(s3c2410_cpu_resume), S3C_INFORM0);
++
++ /* set the irq configuration for wake */
++ s3c6410_pm_configure_extint();
++
++ /* call cpu specific preperation */
++
++ pm_cpu_prep();
++
++ /* flush cache back to ram */
++
++ flush_cache_all();
++
++ s3c2410_pm_check_store();
++
++ __raw_writel(0xffffffff, S3C_VIC0INTENCLEAR);
++ __raw_writel(0xffffffff, S3C_VIC1INTENCLEAR);
++ __raw_writel(0xffffffff, S3C_VIC0SOFTINTCLEAR);
++ __raw_writel(0xffffffff, S3C_VIC1SOFTINTCLEAR);
++
++ __raw_writel(1, S3C_OSC_STABLE);
++ __raw_writel(1, S3C_PWR_STABLE);
++
++ /* Set WFI instruction to SLEEP mode */
++
++ tmp = __raw_readl(S3C_PWR_CFG);
++ tmp &= ~(0x60<<0);
++ tmp |= (0x3<<5);
++ __raw_writel(tmp, S3C_PWR_CFG);
++
++ tmp = __raw_readl(S3C_SLEEP_CFG);
++ tmp &= ~(0x61<<0);
++ __raw_writel(tmp, S3C_SLEEP_CFG);
++
++ /* Clear WAKEUP_STAT register for next wakeup -jc.lee */
++ /* If this register do not be cleared, Wakeup will be failed */
++ tmp = __raw_readl(S3C_WAKEUP_STAT);
++ __raw_writel(tmp, S3C_WAKEUP_STAT);
++
++ /* ALL sub block "ON" before enterring sleep mode - EVT0 bug*/
++ __raw_writel(0xffffff00, S3C_NORMAL_CFG);
++
++ /* Open all clock gate to enter sleep mode - EVT0 bug*/
++ __raw_writel(0xffffffff, S3C_HCLK_GATE);
++ __raw_writel(0xffffffff, S3C_PCLK_GATE);
++ __raw_writel(0xffffffff, S3C_SCLK_GATE);
++
++
++ /* s3c2410_cpu_save will also act as our return point from when
++ * we resume as it saves its own register state, so use the return
++ * code to differentiate return from save and return from sleep */
++
++ if (s3c2410_cpu_save(regs_save) == 0) {
++ flush_cache_all();
++ pm_cpu_sleep();
++ }
++
++ /* restore the cpu state */
++ cpu_init();
++
++ /* restore the system state */
++ s3c2410_pm_do_restore_core(core_save, ARRAY_SIZE(core_save));
++ s3c2410_pm_do_restore(sromc_save, ARRAY_SIZE(sromc_save));
++ s3c2410_pm_do_restore(gpio_save, ARRAY_SIZE(gpio_save));
++ s3c2410_pm_do_restore(irq_save, ARRAY_SIZE(irq_save));
++
++ tmp = __raw_readl(S3C_EINTPEND);
++ __raw_writel(tmp, S3C_EINTPEND);
++
++ DBG("post sleep, preparing to return\n");
++
++ s3c2410_pm_check_restore();
++
++ /* ok, let's return from sleep */
++ DBG("S3C6400 PM Resume (post-restore)\n");
++ return 0;
++}
++
++
++/*
++ * Called after processes are frozen, but before we shut down devices.
++ */
++static int s3c6410_pm_prepare(suspend_state_t state)
++{
++ return 0;
++}
++
++/*
++ * Called after devices are re-setup, but before processes are thawed.
++ */
++static int s3c6410_pm_finish(suspend_state_t state)
++{
++ return 0;
++}
++
++static int s3c6410_pm_set_target(suspend_state_t state)
++{
++ return 0;
++}
++
++/*
++ * Set to PM_DISK_FIRMWARE so we can quickly veto suspend-to-disk.
++ */
++static struct platform_suspend_ops s3c6410_pm_ops = {
++ .set_target = s3c6410_pm_set_target,
++ .prepare = s3c6410_pm_prepare,
++ .enter = s3c6410_pm_enter,
++ .finish = s3c6410_pm_finish,
++ .valid = suspend_valid_only_mem,
++};
++
++/* s3c2410_pm_init
++ *
++ * Attach the power management functions. This should be called
++ * from the board specific initialisation if the board supports
++ * it.
++*/
++
++int __init s3c2410_pm_init(void)
++{
++ printk("S3C6410 Power Management, (c) 2008 Samsung Electronics\n");
++
++ suspend_set_ops(&s3c6410_pm_ops);
++ return 0;
++}
+diff --git a/arch/arm/plat-s3c64xx/s3c64xx-cpufreq.c b/arch/arm/plat-s3c64xx/s3c64xx-cpufreq.c
+new file mode 100644
+index 0000000..2e10ea9
+--- /dev/null
++++ b/arch/arm/plat-s3c64xx/s3c64xx-cpufreq.c
+@@ -0,0 +1,202 @@
++/*
++ * linux/arch/arm/plat-s3c64xx/s3c64xx-cpufreq.c
++ *
++ * CPU frequency scaling for S3C64XX
++ *
++ * Copyright (C) 2008 Samsung Electronics
++ *
++ * Based on cpu-sa1110.c, Copyright (C) 2001 Russell King
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++#include <linux/types.h>
++#include <linux/kernel.h>
++#include <linux/sched.h>
++#include <linux/cpufreq.h>
++#include <linux/delay.h>
++#include <linux/init.h>
++#include <linux/err.h>
++#include <linux/clk.h>
++
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/arch/gpio.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/system.h>
++
++#define USE_FREQ_TABLE
++#define USE_DVS
++#define VERY_HI_RATE 532*1000*1000
++#define APLL_GEN_CLK 532*1000 //khz
++#define KHZ_T 1000
++
++#define MPU_CLK "fclk"
++
++/* definition for power setting function */
++extern int set_power(unsigned int freq);
++extern int ltc3714_init(void);
++
++#define ARM_LE 0
++#define INT_LE 1
++
++/* frequency */
++static struct cpufreq_frequency_table s3c6410_freq_table[] = {
++ {APLL_GEN_CLK, APLL_GEN_CLK},
++ {APLL_GEN_CLK, APLL_GEN_CLK/2},
++ {APLL_GEN_CLK, APLL_GEN_CLK/4},
++ {0, CPUFREQ_TABLE_END},
++};
++
++int s3c6410_verify_speed(struct cpufreq_policy *policy)
++{
++ struct clk * mpu_clk;
++
++ if (policy->cpu)
++ return -EINVAL;
++#ifdef USE_FREQ_TABLE
++ return cpufreq_frequency_table_verify(policy, s3c6410_freq_table);
++#else
++ cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
++ policy->cpuinfo.max_freq);
++ mpu_clk = clk_get(NULL, MPU_CLK);
++ if (IS_ERR(mpu_clk))
++ return PTR_ERR(mpu_clk);
++
++ policy->min = clk_round_rate(mpu_clk, policy->min * KHZ_T) / KHZ_T;
++ policy->max = clk_round_rate(mpu_clk, policy->max * KHZ_T) / KHZ_T;
++
++ cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
++ policy->cpuinfo.max_freq);
++
++ clk_put(mpu_clk);
++
++ return 0;
++#endif
++}
++
++unsigned int s3c6410_getspeed(unsigned int cpu)
++{
++ struct clk * mpu_clk;
++ unsigned long rate;
++
++ if (cpu)
++ return 0;
++
++ mpu_clk = clk_get(NULL, MPU_CLK);
++ if (IS_ERR(mpu_clk))
++ return 0;
++ rate = clk_get_rate(mpu_clk) / KHZ_T;
++
++ clk_put(mpu_clk);
++
++ return rate;
++}
++
++static int s3c6410_target(struct cpufreq_policy *policy,
++ unsigned int target_freq,
++ unsigned int relation)
++{
++ struct clk * mpu_clk;
++ struct cpufreq_freqs freqs;
++ int ret = 0;
++ unsigned long arm_clk;
++ unsigned int index;
++
++ mpu_clk = clk_get(NULL, MPU_CLK);
++ if (IS_ERR(mpu_clk))
++ return PTR_ERR(mpu_clk);
++
++ freqs.old = s3c6410_getspeed(0);
++#ifdef USE_FREQ_TABLE
++ if (cpufreq_frequency_table_target(policy, s3c6410_freq_table, target_freq, relation, &index))
++ return -EINVAL;
++
++ arm_clk = s3c6410_freq_table[index].frequency;
++ freqs.new = arm_clk;
++#else
++ freqs.new = clk_round_rate(mpu_clk, target_freq * KHZ_T) / KHZ_T;
++#endif
++ freqs.cpu = 0;
++
++ if(freqs.new == freqs.old)
++ return 0;
++
++ cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
++#ifdef USE_DVS
++ if(freqs.new < freqs.old){
++ /* frequency scaling */
++ ret = clk_set_rate(mpu_clk, target_freq * KHZ_T);
++ if(ret != 0)
++ printk("frequency scaling error\n");
++ /* voltage scaling */
++ set_power(freqs.new);
++ }else{
++ /* voltage scaling */
++ set_power(freqs.new);
++
++ /* frequency scaling */
++ ret = clk_set_rate(mpu_clk, target_freq * KHZ_T);
++ if(ret != 0)
++ printk("frequency scaling error\n");
++ }
++
++
++#else
++ ret = clk_set_rate(mpu_clk, target_freq * KHZ_T);
++ if(ret != 0)
++ printk("frequency scaling error\n");
++
++#endif
++ cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
++ clk_put(mpu_clk);
++ return ret;
++}
++
++static int __init s3c6410_cpu_init(struct cpufreq_policy *policy)
++{
++#ifdef USE_DVS
++ ltc3714_init();
++#endif
++ struct clk* mpu_clk;
++
++ mpu_clk = clk_get(NULL, MPU_CLK);
++ if (IS_ERR(mpu_clk))
++ return PTR_ERR(mpu_clk);
++
++ if (policy->cpu != 0)
++ return -EINVAL;
++ policy->cur = policy->min = policy->max = s3c6410_getspeed(0);
++#ifdef USE_FREQ_TABLE
++ cpufreq_frequency_table_get_attr(s3c6410_freq_table, policy->cpu);
++#else
++ policy->cpuinfo.min_freq = clk_round_rate(mpu_clk, 0) / KHZ_T;
++ policy->cpuinfo.max_freq = clk_round_rate(mpu_clk, VERY_HI_RATE) / KHZ_T;
++#endif
++ policy->cpuinfo.transition_latency = KHZ_T; //1us
++
++
++ clk_put(mpu_clk);
++#ifdef USE_FREQ_TABLE
++ return cpufreq_frequency_table_cpuinfo(policy, s3c6410_freq_table);
++#else
++ return 0;
++#endif
++}
++
++static struct cpufreq_driver s3c6410_driver = {
++ .flags = CPUFREQ_STICKY,
++ .verify = s3c6410_verify_speed,
++ .target = s3c6410_target,
++ .get = s3c6410_getspeed,
++ .init = s3c6410_cpu_init,
++ .name = "s3c6410",
++};
++
++static int __init s3c6410_cpufreq_init(void)
++{
++ return cpufreq_register_driver(&s3c6410_driver);
++}
++
++arch_initcall(s3c6410_cpufreq_init);
+diff --git a/arch/arm/plat-s3c64xx/s3c64xx-dvfs.c b/arch/arm/plat-s3c64xx/s3c64xx-dvfs.c
+new file mode 100644
+index 0000000..06c4b75
+--- /dev/null
++++ b/arch/arm/plat-s3c64xx/s3c64xx-dvfs.c
+@@ -0,0 +1,547 @@
++/*
++ * Copyright (c) 2008 Samsung Electronics
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * S3C64xx DVFS interface with LTC3714 DCDC convertor power
++ * 2008.02.28. basic scheme update to here
++*/
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/fs.h>
++#include <linux/errno.h>
++#include <linux/types.h>
++#include <linux/fcntl.h>
++
++#include <asm/uaccess.h>
++#include <asm/io.h>
++
++#include <linux/stat.h>
++#include <linux/proc_fs.h>
++
++#include <linux/delay.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/gpio.h>
++#include "s3c64xx-dvfs.h"
++
++#define DEV_NAME "s3c64xx-dvfs"
++#define DEV_MAJOR 240
++
++#define XTAL 12*1000*1000 /* Clock source 12Mhz */
++#define MAX_APLL_RATIO 7 /* See S3C6400 user manual 3-7 */
++#define MAX_HCLK2_RATIO 7 /* See S3C6400 user manual 0-1 */
++#define Mhz 1000*1000
++
++#define SUPPORT_PROC_FS
++
++#ifdef SUPPORT_PROC_FS
++struct proc_dir_entry *proc_root_fp = NULL;
++struct proc_dir_entry *proc_voltage_fp = NULL;
++struct proc_dir_entry *proc_freq_fp = NULL;
++struct proc_dir_entry *proc_step_fp = NULL;
++
++char proc_voltage_str[PAGE_SIZE-80] = { 0,};
++char proc_freq_str[PAGE_SIZE-80] = { 0,};
++char proc_step_str[PAGE_SIZE-80] = { 0,};
++#endif
++
++/* it's depend on DCDC regurator specification
++ * if change parts, you must be change table and configuration*/
++static const unsigned int voltage_table[32] = {
++ 1750, 1700, 1650, 1600, 1550, 1500, 1450, 1400,
++ 1350, 1300, 1250, 1200, 1150, 1100, 1050, 1000,
++ 975, 950, 925, 900, 875, 850, 825, 800,
++ 775, 750, 725, 700, 675, 650, 625, 600,
++};
++
++#define NUMBER_OF_STEP 4
++
++/*Frequency step define section */
++#define MDIV 0
++#define PDIV 1
++#define SDIV 2
++#define ARM_RATIO 3
++#define HCLK_RATIO 4
++#define DVFS MDIV
++
++#define ARM_VOLT_STEP 0
++#define INT_VOLT_STEP 1
++#define FREQ_STEP 2
++
++static const unsigned int pll_mps_table[][5] = {
++ {533, 6, 1, 0, 1}, /* step 0 ARM:(533 / 1)=533 MHz ,HCLKx2:266 HCLK: 133*/
++ {400, 6, 1, 0, 1}, /* step 1 ARM:(400 / 1)=400 MHz ,HCLKx2:266 HCLK: 133*/
++ {400, 6, 1, 1, 1}, /* step 2 ARM:(400 / 2)=200 MHz ,HCLKx2:266 HCLK: 133*/
++ {400, 6, 1, 3, 2}, /* step 3 ARM:(400 / 4)=100 MHz ,HCLKx2:133 HCLK: 66 ==> careful linked device*/
++/* {MDIV, PDIV, SDIV, ARM RATIO, HCLKx2 RATIO } */
++};
++
++static const unsigned int dvfs_step[NUMBER_OF_STEP][3] = {
++ { 1200 , 1200, 0}, /* ARM 1.2Volt, INT 1.2V, pll mode 0 533-133*/
++ { 1000 , 1000, 1}, /* ARM 1.2Volt, INT 1.2V, pll mode 2 200-133*/
++ { 950 , 1000, 2}, /* ARM 1.2Volt, INT 1.2V, pll mode 2 200-133*/
++ { 900 , 1000, 2}, /* ARM 1.2Volt, INT 1.2V, pll mode 3 100- 66*/
++/* {Voltage, Frequency_STEP} */
++};
++
++static int previous_dvfs_step;
++
++static s3c_dvfs_info dvfs_info;
++
++static void set_dvfs_gpio(void)
++{
++ /* We can control the voltage of ARM core and Internal block by setting GPIO */
++ /* GPN(11~15). First of all, we should set these gpio to output mode. */
++ /* GPIO configuration */
++ GPIO_CFG(LTC3714_DATA1, LTC3714_OUTP1);
++ GPIO_CFG(LTC3714_DATA2, LTC3714_OUTP2);
++ GPIO_CFG(LTC3714_DATA3, LTC3714_OUTP3);
++ GPIO_CFG(LTC3714_DATA4, LTC3714_OUTP4);
++ GPIO_CFG(LTC3714_DATA5, LTC3714_OUTP5);
++
++ /* Pull-up/down disable */
++ GPIO_PULLUP(LTC3714_DATA1, 0x0);
++ GPIO_PULLUP(LTC3714_DATA2, 0x0);
++ GPIO_PULLUP(LTC3714_DATA3, 0x0);
++ GPIO_PULLUP(LTC3714_DATA4, 0x0);
++ GPIO_PULLUP(LTC3714_DATA5, 0x0);
++
++
++ /* Latch control signal*/
++ /* CORE_REG_OE: GPL9, ARM_REG_OE: GPL8, INT_REG_LE: GPL10*/
++ GPIO_CFG(ARM_LE , ARM_LE_OUTP);
++ GPIO_CFG(DVS_OE , DVS_OE_OUTP);
++ GPIO_CFG(INT_LE , INT_LE_OUTP);
++
++ GPIO_PULLUP(ARM_LE, 0x0);
++ GPIO_PULLUP(DVS_OE, 0x0);
++ GPIO_PULLUP(INT_LE, 0x0);
++
++}
++
++/* Set LTC3714 voltage regulator */
++/* Input : pwr : 1(ARM), 2(Internal), 3(Both) */
++/* voltage : 1mV step */
++static int set_ltc3714(unsigned int pwr, unsigned int voltage)
++{
++ int position = 0;
++
++ if(voltage > voltage_table[0] || voltage < voltage_table[31]) {
++ printk("[ERROR]: voltage value over limits!!!");
++ return -EINVAL;
++ }
++
++ if(voltage > voltage_table[16]) { // 1750 ~ 1000 mV
++ for(position = 15; position >= 0; position --) {
++ if(voltage_table[position] == voltage) break;
++ }
++
++ }
++ else if(voltage >= voltage_table[31]) { //975 ~ 600 mV
++ for(position = 31; position >= 16; position --) {
++ if(voltage_table[position] == voltage) break;
++ }
++ }
++ else {
++ printk("[error]: Can't find adquate voltage table list value\n");
++ return -EINVAL;
++ }
++
++ printk("Founded postion :[%d] \n",position);
++
++ position &=0x1f;
++
++ __raw_writel((__raw_readl(S3C_GPNDAT)&~(0x1f<<11))|(position<<11), S3C_GPNDAT);
++
++ if(pwr == ARM_VOLT_STEP) { //ARM Voltage Control => ARM_REG_LE => Output H => Data Changed
++
++ CONTROl_SET(ARM_LE, 0x1);
++ udelay(10);
++ CONTROl_SET(ARM_LE, 0x0);
++ } else if(pwr == INT_VOLT_STEP) { // INT Voltage Control
++ CONTROl_SET(INT_LE, 0x1);
++ udelay(10);
++ CONTROl_SET(INT_LE, 0x0);
++ } else {
++ printk("[error]: set_ltc3714, check mode [pwr] value\n");
++ return -EINVAL;
++ }
++
++ return 0;
++
++}
++
++/* Set CLK_DIV0 register with specific APLL divider value*/
++static int set_freq_divider(unsigned int clk_source , unsigned int val)
++{
++ unsigned int tmp;
++
++ if (clk_source == ARM_RATIO){
++ if(val > MAX_APLL_RATIO) {
++ printk(KERN_ERR "Freq divider value(APLL_RATIO) is out of spec\n");
++ printk(KERN_ERR "APLL_RATIO : 0~7\n");
++ return -EINVAL;
++ }
++ dvfs_info.freq_divider = (val + 1);
++ tmp = __raw_readl(ARM_CLK_DIV)&~ARM_DIV_MASK;
++ tmp |= val<<ARM_DIV_RATIO_BIT;
++ __raw_writel(tmp, ARM_CLK_DIV);
++ } else if (clk_source == HCLK_RATIO){
++ if(val > MAX_HCLK2_RATIO) {
++ printk(KERN_ERR "Freq divider value is out of spec\n");
++ printk(KERN_ERR "HCLK_PostDivider RATIO : 0,1 \n");
++ return -EINVAL;
++ }
++ /* it's only for setting the HCLK or system Clock */
++ tmp = __raw_readl(ARM_CLK_DIV) & ~HCLK_DIV_MASK;
++ tmp |= (val<<HCLK_DIV_RATIO_BIT);
++ __raw_writel(tmp, ARM_CLK_DIV);
++ } else {
++ printk(KERN_ERR " It's wrong clock post divider path \n");
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++/* Set APLL P,M,S value to make specific CPU frequency*/
++/* Only support Async mode */
++static int set_pll(unsigned int freq_level)
++{
++ unsigned int val,err;
++
++ if (freq_level < NUMBER_OF_STEP ){
++
++ err = set_freq_divider(ARM_RATIO, pll_mps_table[freq_level][ARM_RATIO]);
++ if(err)
++ return err;
++
++ err = set_freq_divider(HCLK_RATIO, pll_mps_table[freq_level][HCLK_RATIO]);
++ if(err)
++ return err;
++/*
++ it's only guarantee for chaiging PLL on S3C64xx
++ if you want to change dynamic freq. you must check stability of system
++*/
++ val = PLL_CALC_VAL(pll_mps_table[freq_level][MDIV],\
++ pll_mps_table[freq_level][PDIV],\
++ pll_mps_table[freq_level][SDIV]);
++ __raw_writel(val, ARM_PLL_CON);
++/*
++ it does not guarantee for chaiging PLL on S3C2443,S3C2450 and S3C2416
++ but we guide to set DVFS or divide arm clock output
++*/
++
++ }
++ else{
++ printk("It's wrong DFS %d range \n",freq_level);
++ }
++
++ return 0;
++}
++
++/* Other modules can use this function to change power status */
++/* Especially, ARM Dynamic power interface can control DVFS by accessing this */
++int set_dvfs_step(unsigned int step)
++{
++ int err;
++
++ if(step >= NUMBER_OF_STEP) {
++ printk(KERN_ERR "DVFS step is out of range(0 ~ %2d)\n",NUMBER_OF_STEP-1);
++ return -EINVAL;
++ }
++ //printk("set_dvfs_step[%d]\n",step);
++
++ if(previous_dvfs_step < step) { // decreasing CPU freq & Voltage
++ /* CPU Frequency control */
++ err = set_pll(dvfs_step[step][FREQ_STEP]);
++
++ /* CPU voltage control */
++ dvfs_info.pwr_type = ARM_VOLT_STEP;
++ dvfs_info.new_voltage = dvfs_step[step][ARM_VOLT_STEP];
++ err = set_ltc3714(dvfs_info.pwr_type, dvfs_info.new_voltage);
++ if(err == 0){
++ dvfs_info.curr_voltage_arm = dvfs_info.new_voltage;
++ }
++
++
++ dvfs_info.pwr_type = INT_VOLT_STEP;
++ dvfs_info.new_voltage = dvfs_step[step][INT_VOLT_STEP];
++ err = set_ltc3714(dvfs_info.pwr_type, dvfs_info.new_voltage);
++ if(err == 0){
++ dvfs_info.curr_voltage_internal = dvfs_info.new_voltage;
++ }
++
++ } else if(previous_dvfs_step > step) { // increasing CPU freq & Voltage
++
++ /* CPU voltage control */
++ dvfs_info.pwr_type = ARM_VOLT_STEP;
++ dvfs_info.new_voltage = dvfs_step[step][ARM_VOLT_STEP];
++ err = set_ltc3714(dvfs_info.pwr_type, dvfs_info.new_voltage);
++ if(err == 0){
++ dvfs_info.curr_voltage_arm = dvfs_info.new_voltage;
++ }
++
++ dvfs_info.pwr_type = INT_VOLT_STEP;
++ dvfs_info.new_voltage = dvfs_step[step][INT_VOLT_STEP];
++ err = set_ltc3714(dvfs_info.pwr_type, dvfs_info.new_voltage);
++ if(err == 0){
++ dvfs_info.curr_voltage_internal = dvfs_info.new_voltage;
++ }
++
++ /* CPU Frequency control */
++ err = set_pll(dvfs_step[step][FREQ_STEP]);
++
++ } else {
++ }
++ previous_dvfs_step = step;
++
++ return 0;
++}
++
++EXPORT_SYMBOL(set_dvfs_step);
++
++int s3c_dvfs_open(struct inode *inode, struct file *filp)
++{
++ int num = MINOR(inode->i_rdev);
++
++ printk("s3c_dvfs_open -> minor : %d\n", num);
++
++ return 0;
++}
++
++ssize_t s3c_dvfs_read(struct file *filp, char *buf, size_t count,
++ loff_t *f_pos)
++{
++ return 0;
++}
++
++ssize_t s3c_dvfs_write(struct file *filp, const char *buf, size_t count,
++ loff_t *f_pos)
++{
++ return 0;
++}
++
++int s3c_dvfs_ioctl(struct inode *inode, struct file *filp,
++ unsigned int cmd, unsigned long arg)
++{
++ int err, size;
++
++ if(_IOC_TYPE(cmd) != DVFS_IOCTL_MAGIC) return -EINVAL;
++ if(_IOC_NR(cmd) >= DVFS_MAXNR) return -EINVAL;
++
++ size = _IOC_SIZE(cmd);
++
++ switch(cmd) {
++ case DVFS_ON:
++ break;
++ case DVFS_OFF:
++ break;
++ case DVFS_GET_STATUS:
++ err=copy_to_user((void *) arg, (const void *) &dvfs_info, (unsigned long) size);
++ break;
++ case DVFS_SET_STATUS:
++ err=copy_from_user((void *) &dvfs_info, (const void *) arg, size);
++ err = set_ltc3714(dvfs_info.pwr_type, dvfs_info.new_voltage);
++
++ if(err != 0) return err;
++
++ if(dvfs_info.pwr_type == ARM_VOLT_STEP) {
++ dvfs_info.curr_voltage_arm = dvfs_info.new_voltage;
++ } else if(dvfs_info.pwr_type == INT_VOLT_STEP) {
++ dvfs_info.curr_voltage_internal = dvfs_info.new_voltage;
++ } else {
++ }
++ break;
++ default:
++ break;
++ }
++ return 0;
++}
++
++int s3c_dvfs_release(struct inode *inode, struct file *filp)
++{
++ printk("s3c_dvfs_release \n");
++ return 0;
++}
++
++struct file_operations s3c_dvfs_fops =
++{
++ .owner = THIS_MODULE,
++ .read = s3c_dvfs_read,
++ .write = s3c_dvfs_write,
++ .ioctl = s3c_dvfs_ioctl,
++ .open = s3c_dvfs_open,
++ .release = s3c_dvfs_release,
++};
++
++#ifdef SUPPORT_PROC_FS
++int read_proc_voltage(char *page, char **start, off_t off,
++ int count, int *eof, void *data_unused)
++{
++ char *buf;
++
++ buf = page;
++ buf += sprintf(buf, "ARM = [%d]mV, Internal = [%d]mV\n", dvfs_info.curr_voltage_arm,dvfs_info.curr_voltage_internal);
++
++ return buf - page;
++}
++
++int write_proc_voltage(struct file *file, const char __user *buffer,
++ unsigned long count, void *data)
++{
++ int len, err;
++ char *realdata;
++
++ realdata = (char *) data;
++
++ if(copy_from_user(realdata, buffer, count))
++ return -EFAULT;
++
++ realdata[count] = '\0';
++ len = strlen(realdata);
++ if(realdata[len - 1] == '\n')
++ realdata[--len] = 0;
++
++ dvfs_info.new_voltage = simple_strtoul(realdata, NULL, 10);
++
++ err = set_ltc3714(dvfs_info.pwr_type, dvfs_info.new_voltage);
++
++ if(err == 0) {
++ if(dvfs_info.pwr_type == ARM_VOLT_STEP) {
++ dvfs_info.curr_voltage_arm = dvfs_info.new_voltage;
++ } else if(dvfs_info.pwr_type == INT_VOLT_STEP) {
++ dvfs_info.curr_voltage_internal = dvfs_info.new_voltage;
++ } else {
++ }
++ }
++
++ return count;
++}
++
++int read_proc_freq(char *page, char **start, off_t off,
++ int count, int *eof, void *data_unused)
++{
++ char *buf;
++ unsigned int arm_freq;
++
++ arm_freq = GET_ARM_CLOCK(XTAL);
++ dvfs_info.freq_divider = READ_ARM_DIV;
++ dvfs_info.curr_freq = arm_freq/dvfs_info.freq_divider;
++
++ buf = page;
++ buf += sprintf(buf, "Freq = [%d]MHz\n", dvfs_info.curr_freq/1000000);
++
++ return buf - page;
++}
++
++int write_proc_freq(struct file *file, const char __user *buffer,
++ unsigned long count, void *data)
++{
++ int len, tmp, err;
++ char *realdata;
++
++ realdata = (char *) data;
++
++ if(copy_from_user(realdata, buffer, count))
++ return -EFAULT;
++
++ realdata[count] = '\0';
++ len = strlen(realdata);
++ if(realdata[len - 1] == '\n')
++ realdata[--len] = 0;
++ tmp = simple_strtoul(realdata, NULL, 10);
++
++ printk("level %d \n",tmp);
++
++ err = set_freq_divider(ARM_RATIO, tmp);
++ if(err){
++ printk("level err %d \n",err);
++ return err;
++ }
++
++ return count;
++}
++
++int write_proc_step(struct file *file, const char __user *buffer, unsigned long count, void *data)
++{
++ int len, tmp, err;
++ char *realdata;
++
++ realdata = (char *) data;
++
++ if(copy_from_user(realdata, buffer, count))
++ return -EFAULT;
++ realdata[count] = '\0';
++ len = strlen(realdata);
++ if(realdata[len - 1] == '\n')
++ realdata[--len] = 0;
++ tmp = simple_strtoul(realdata, NULL, 10);
++
++ err = set_dvfs_step(tmp);
++
++ return count;
++}
++
++#endif
++
++int s3c_dvfs_init(void)
++{
++ int result;
++
++ /* Initialize structure */
++ previous_dvfs_step = -1; /* 1st initial operating*/
++ set_dvfs_gpio();
++ set_dvfs_step(0); // Set Maximum or default initial performance set
++ CONTROl_SET(DVS_OE, 0x1); /* Just open target power voltage*/
++ result = register_chrdev(DEV_MAJOR, DEV_NAME, &s3c_dvfs_fops);
++
++ if(result < 0)
++ return result;
++
++#ifdef SUPPORT_PROC_FS
++ proc_root_fp = proc_mkdir("dvfs", 0);
++
++ proc_voltage_fp = create_proc_entry("voltage", S_IFREG | S_IRWXU, proc_root_fp);
++ if(proc_voltage_fp) {
++ proc_voltage_fp->data = proc_voltage_str;
++ proc_voltage_fp->read_proc = read_proc_voltage;
++ proc_voltage_fp->write_proc = write_proc_voltage;
++ }
++
++ proc_freq_fp = create_proc_entry("frequency", S_IFREG | S_IRWXU, proc_root_fp);
++ if(proc_freq_fp) {
++ proc_freq_fp->data = proc_freq_str;
++ proc_freq_fp->read_proc = read_proc_freq;
++ proc_freq_fp->write_proc = write_proc_freq;
++ }
++
++ proc_step_fp = create_proc_entry("step", S_IFREG | S_IWUSR, proc_root_fp);
++ if(proc_step_fp) {
++ proc_step_fp->data = proc_step_str;
++ proc_step_fp->read_proc = NULL;
++ proc_step_fp->write_proc = write_proc_step;
++ }
++#endif
++
++ return 0;
++}
++
++void s3c_dvfs_exit(void)
++{
++ unregister_chrdev(DEV_MAJOR, DEV_NAME);
++ remove_proc_entry("voltage", proc_root_fp);
++ remove_proc_entry("frequency", proc_root_fp);
++ remove_proc_entry("step", proc_root_fp);
++ remove_proc_entry("dvfs", 0);
++}
++
++module_init(s3c_dvfs_init);
++module_exit(s3c_dvfs_exit);
++
++MODULE_LICENSE("Dual BSD/GPL");
++MODULE_DESCRIPTION("S3C64xx DVFS Driver");
++MODULE_AUTHOR("Jongpill.Lee, <boyko.lee@samsung.com>");
+diff --git a/arch/arm/plat-s3c64xx/s3c64xx-dvfs.h b/arch/arm/plat-s3c64xx/s3c64xx-dvfs.h
+new file mode 100644
+index 0000000..2c37236
+--- /dev/null
++++ b/arch/arm/plat-s3c64xx/s3c64xx-dvfs.h
+@@ -0,0 +1,66 @@
++/*
++ 2008.04.14. All of AP are merged single application and definitin
++ in order to be matcing dvs and dfs concept
++ These are confirm on SMDK2450, SMDK2416,SMDK6400,SMDK6410
++*/
++#ifndef __S3C64XXDVFS_H_
++#define __S3C64XXDVFS_H_
++
++#define DVFS_IOCTL_MAGIC 'd'
++
++typedef struct {
++ unsigned int pwr_type; //ARM:ARMV_STEP, INT:INTV_STEP
++ unsigned int curr_voltage_arm; //ARM core voltage
++ unsigned int curr_voltage_internal; //Internal block voltage
++ unsigned int new_voltage;
++ unsigned int curr_freq;
++ unsigned int freq_divider; // APLL_RATIO + 1
++ unsigned int size;
++} s3c_dvfs_info;
++
++#define DVFS_ON _IO(DVFS_IOCTL_MAGIC, 0)
++#define DVFS_OFF _IO(DVFS_IOCTL_MAGIC, 1)
++#define DVFS_GET_STATUS _IOR(DVFS_IOCTL_MAGIC, 2, s3c_dvfs_info)
++#define DVFS_SET_STATUS _IOW(DVFS_IOCTL_MAGIC, 3, s3c_dvfs_info)
++
++#define DVFS_MAXNR 4
++
++/* Board dependency SIGNAL and GPIO configuration */
++#include <asm/arch-s3c2410/regs-s3c-clock.h>
++
++#define ARM_LE S3C_GPL8
++#define DVS_OE S3C_GPL9
++#define INT_LE S3C_GPL10
++
++#define CONTROl_SET(pin,to) gpio_set_value(pin, to);
++#define ARM_LE_OUTP S3C_GPL8_OUTP
++#define DVS_OE_OUTP S3C_GPL9_OUTP
++#define INT_LE_OUTP S3C_GPL10_OUTP
++
++#define LTC3714_DATA1 S3C_GPN11
++#define LTC3714_DATA2 S3C_GPN12
++#define LTC3714_DATA3 S3C_GPN13
++#define LTC3714_DATA4 S3C_GPN14
++#define LTC3714_DATA5 S3C_GPN15
++
++#define LTC3714_OUTP1 S3C_GPN11_OUTP
++#define LTC3714_OUTP2 S3C_GPN12_OUTP
++#define LTC3714_OUTP3 S3C_GPN13_OUTP
++#define LTC3714_OUTP4 S3C_GPN14_OUTP
++#define LTC3714_OUTP5 S3C_GPN15_OUTP
++
++#define GPIO_CFG(pin,to) gpio_set_pin((pin),(to))
++#define GPIO_PULLUP(pin,to) gpio_pullup((pin),(to))
++
++#define ARM_PLL_CON S3C_APLL_CON
++#define ARM_CLK_DIV S3C_CLK_DIV0
++#define ARM_DIV_RATIO_BIT 0
++#define ARM_DIV_MASK (0xf<<ARM_DIV_RATIO_BIT)
++#define HCLK_DIV_RATIO_BIT 9
++#define HCLK_DIV_MASK (0x7<<HCLK_DIV_RATIO_BIT)
++
++#define READ_ARM_DIV ((__raw_readl(ARM_CLK_DIV)&ARM_DIV_MASK) + 1)
++#define PLL_CALC_VAL(MDIV,PDIV,SDIV) ((1<<31)|(MDIV)<<16 |(PDIV)<<8 |(SDIV))
++#define GET_ARM_CLOCK(baseclk) s3c6400_get_pll(__raw_readl(S3C_APLL_CON),baseclk)
++
++#endif //__S3CDVS_H_
+diff --git a/arch/arm/plat-s3c64xx/sleep.S b/arch/arm/plat-s3c64xx/sleep.S
+new file mode 100644
+index 0000000..a646cbe
+--- /dev/null
++++ b/arch/arm/plat-s3c64xx/sleep.S
+@@ -0,0 +1,165 @@
++/* linux/arch/arm/plat-s3c24xx/sleep.S
++ *
++ * Copyright (c) 2004 Simtec Electronics
++ * Ben Dooks <ben@simtec.co.uk>
++ *
++ * S3C2410 Power Manager (Suspend-To-RAM) support
++ *
++ * Based on PXA/SA1100 sleep code by:
++ * Nicolas Pitre, (c) 2002 Monta Vista Software Inc
++ * Cliff Brake, (c) 2001
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++*/
++
++#include <linux/linkage.h>
++#include <asm/assembler.h>
++#include <asm/hardware.h>
++#include <asm/arch/map.h>
++
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-clock.h>
++#include <asm/arch/regs-mem.h>
++#include <asm/plat-s3c/regs-serial.h>
++
++/* CONFIG_DEBUG_RESUME is dangerous if your bootloader does not
++ * reset the UART configuration, only enable if you really need this!
++*/
++//#define CONFIG_DEBUG_RESUME
++
++ .text
++
++ /* s3c2410_cpu_save
++ *
++ * save enough of the CPU state to allow us to re-start
++ * pm.c code. as we store items like the sp/lr, we will
++ * end up returning from this function when the cpu resumes
++ * so the return value is set to mark this.
++ *
++ * This arangement means we avoid having to flush the cache
++ * from this code.
++ *
++ * entry:
++ * r0 = pointer to save block
++ *
++ * exit:
++ * r0 = 0 => we stored everything
++ * 1 => resumed from sleep
++ */
++
++ENTRY(s3c2410_cpu_save)
++ stmfd sp!, { r4 - r12, lr }
++
++ @@ store co-processor registers
++
++ mrc p15, 0, r4, c13, c0, 0 @ PID
++ mrc p15, 0, r5, c3, c0, 0 @ Domain ID
++ mrc p15, 0, r6, c2, c0, 0 @ translation table base address
++ mrc p15, 0, r7, c1, c0, 0 @ control register
++
++ stmia r0, { r4 - r13 }
++
++ mov r0, #0
++ ldmfd sp, { r4 - r12, pc }
++
++ @@ return to the caller, after having the MMU
++ @@ turned on, this restores the last bits from the
++ @@ stack
++resume_with_mmu:
++ mov r0, #1
++ ldmfd sp!, { r4 - r12, pc }
++
++ .ltorg
++
++ @@ the next bits sit in the .data segment, even though they
++ @@ happen to be code... the s3c2410_sleep_save_phys needs to be
++ @@ accessed by the resume code before it can restore the MMU.
++ @@ This means that the variable has to be close enough for the
++ @@ code to read it... since the .text segment needs to be RO,
++ @@ the data segment can be the only place to put this code.
++
++ .data
++
++ .global s3c2410_sleep_save_phys
++s3c2410_sleep_save_phys:
++ .word 0
++
++
++ /* sleep magic, to allow the bootloader to check for an valid
++ * image to resume to. Must be the first word before the
++ * s3c2410_cpu_resume entry.
++ */
++
++ .word 0x2bedf00d
++
++ /* s3c2410_cpu_resume
++ *
++ * resume code entry for bootloader to call
++ *
++ * we must put this code here in the data segment as we have no
++ * other way of restoring the stack pointer after sleep, and we
++ * must not write to the code segment (code is read-only)
++ */
++
++ENTRY(s3c2410_cpu_resume)
++ mov r0, #PSR_I_BIT | PSR_F_BIT | SVC_MODE
++ msr cpsr_c, r0
++
++ @@ load UART to allow us to print the two characters for
++ @@ resume debug
++
++ mov r2, #S3C24XX_PA_UART & 0xff000000
++ orr r2, r2, #S3C24XX_PA_UART & 0xff000
++
++#if 0
++ /* SMDK2440 LED set */
++ mov r14, #S3C24XX_PA_GPIO
++ ldr r12, [ r14, #0x54 ]
++ bic r12, r12, #3<<4
++ orr r12, r12, #1<<7
++ str r12, [ r14, #0x54 ]
++#endif
++
++#ifdef CONFIG_DEBUG_RESUME
++ mov r3, #'L'
++ strb r3, [ r2, #S3C2410_UTXH ]
++1001:
++ ldrb r14, [ r3, #S3C2410_UTRSTAT ]
++ tst r14, #S3C2410_UTRSTAT_TXE
++ beq 1001b
++#endif /* CONFIG_DEBUG_RESUME */
++
++ mov r1, #0
++ mcr p15, 0, r1, c8, c7, 0 @@ invalidate I & D TLBs
++ mcr p15, 0, r1, c7, c7, 0 @@ invalidate I & D caches
++
++ ldr r0, s3c2410_sleep_save_phys @ address of restore block
++ ldmia r0, { r4 - r13 }
++
++ mcr p15, 0, r4, c13, c0, 0 @ PID
++ mcr p15, 0, r5, c3, c0, 0 @ Domain ID
++ mcr p15, 0, r6, c2, c0, 0 @ translation table base
++
++#ifdef CONFIG_DEBUG_RESUME
++ mov r3, #'R'
++ strb r3, [ r2, #S3C2410_UTXH ]
++#endif
++
++ ldr r2, =resume_with_mmu
++ mcr p15, 0, r7, c1, c0, 0 @ turn on MMU, etc
++ nop @ second-to-last before mmu
++ mov pc, r2 @ go back to virtual address
++
++ .ltorg
+diff --git a/arch/arm/plat-s3c64xx/time-s3c64xx.c b/arch/arm/plat-s3c64xx/time-s3c64xx.c
+new file mode 100644
+index 0000000..55a463a
+--- /dev/null
++++ b/arch/arm/plat-s3c64xx/time-s3c64xx.c
+@@ -0,0 +1,259 @@
++/* linux/arch/arm/mach-s3c64xx/time.c
++ *
++ * Copyright (C) 2006 Samsung Electronics
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ */
++
++#include <linux/kernel.h>
++#include <linux/sched.h>
++#include <linux/init.h>
++#include <linux/interrupt.h>
++#include <linux/irq.h>
++#include <linux/err.h>
++#include <linux/clk.h>
++
++#include <asm/system.h>
++#include <asm/leds.h>
++#include <asm/mach-types.h>
++
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/arch/map.h>
++#include <asm/plat-s3c/regs-timer.h>
++#include <asm/arch/regs-irq.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/mach/time.h>
++
++#include <asm/plat-s3c24xx/clock.h>
++#include <asm/plat-s3c24xx/cpu.h>
++
++static unsigned long timer_startval;
++static unsigned long timer_usec_ticks;
++static unsigned long max_buffer_cnt;
++unsigned long timerclock;
++unsigned long s3c_latch;
++
++//#define T32_PROBE_TEST
++
++#define TIMER_USEC_SHIFT 16
++#define DEFAULT_TIMER_VAL 0xffffffff
++#define REPROGRAM_SET_FLAG 1
++#define REPROGRAM_UNSET_FLAG 0
++
++/* Global variable for Dynamic Tick */
++
++#ifdef CONFIG_NO_IDLE_HZ
++static unsigned long initial_match;
++static int match_postponed;
++#endif
++
++/* we use the shifted arithmetic to work out the ratio of timer ticks
++ * to usecs, as often the peripheral clock is not a nice even multiple
++ * of 1MHz.
++ *
++ * shift of 14 and 15 are too low for the 12MHz, 16 seems to be ok
++ * for the current HZ value of 200 without producing overflows.
++ *
++ * Original patch by Dimitry Andric, updated by Ben Dooks
++*/
++
++static inline unsigned long
++timer_mask_usec_ticks(unsigned long scaler, unsigned long pclk)
++{
++ unsigned long den = pclk / 1000;
++
++ return ((1000 << TIMER_USEC_SHIFT) * scaler + (den >> 1)) / den;
++}
++
++static inline unsigned long timer_ticks_to_usec(unsigned long ticks)
++{
++ unsigned long res;
++
++ res = ticks * timer_usec_ticks;
++ res += 1 << (TIMER_USEC_SHIFT - 4); /* round up slightly */
++
++ return res >> TIMER_USEC_SHIFT;
++}
++
++static unsigned long s3c_gettimeoffset (void)
++{
++ unsigned long timer_val;
++ unsigned long tdone;
++ timer_val = __raw_readl(S3C_TCNTO(4));
++ tdone = timer_startval - timer_val;
++
++ return timer_ticks_to_usec(tdone);
++}
++
++static inline irqreturn_t _s3c_timer_interrupt(int irq, void *dev_id)
++{
++ write_seqlock(&xtime_lock);
++#ifdef CONFIG_NO_IDLE_HZ
++ if(match_postponed){
++ match_postponed = REPROGRAM_UNSET_FLAG;
++ __raw_writel(initial_match, S3C_TCNTB(4));
++ }
++#endif
++ timer_tick();
++ write_sequnlock(&xtime_lock);
++
++ return IRQ_HANDLED;
++}
++
++static irqreturn_t
++s3c_timer_interrupt(int irq, void *dev_id)
++{
++
++ _s3c_timer_interrupt(irq, dev_id);
++ __raw_writel((0x1f & __raw_readl(S3C_TINT_CSTAT)) | S3C_TINT_CSTAT_T4INT, S3C_TINT_CSTAT);
++
++ return IRQ_HANDLED;
++}
++
++static struct irqaction s3c_timer_irq = {
++ .name = "S3C Timer Tick",
++ .flags = IRQF_DISABLED | IRQF_TIMER,
++ .handler = s3c_timer_interrupt,
++};
++
++static void s3c_timer_setup (void)
++{
++ unsigned long tcon;
++ unsigned long tcnt;
++ unsigned long tcfg1;
++ unsigned long tcfg0;
++ unsigned long pclk;
++
++ struct clk *clk;
++
++#ifdef T32_PROBE_TEST
++ gpio_direction_output(S3C_GPF13);
++#endif
++
++ tcnt = DEFAULT_TIMER_VAL; /* default value for tcnt */
++
++ tcfg1 = __raw_readl(S3C_TCFG1);
++ tcfg0 = __raw_readl(S3C_TCFG0);
++
++ clk = clk_get(NULL, "timers");
++ if (IS_ERR(clk))
++ panic("failed to get clock for system timer");
++
++ clk_enable(clk);
++
++ pclk = clk_get_rate(clk);
++ timerclock = (pclk / ((PRESCALER + 1)*DIVIDER));
++ s3c_latch = ((timerclock + HZ / 2) / HZ);
++
++ timer_usec_ticks = timer_mask_usec_ticks(((PRESCALER + 1)*DIVIDER), pclk);
++
++ tcfg1 &= ~S3C_TCFG1_MUX4_MASK;
++ tcfg1 |= S3C_TCFG1_MUX4_DIV1;
++
++ tcfg0 &= ~S3C_TCFG_PRESCALER1_MASK;
++ tcfg0 |= (PRESCALER) << S3C_TCFG_PRESCALER1_SHIFT;
++
++ max_buffer_cnt = (unsigned long)(DEFAULT_TIMER_VAL / s3c_latch);
++
++ tcnt = (timerclock / HZ) - 1;
++
++ __raw_writel(tcfg1, S3C_TCFG1);
++ __raw_writel(tcfg0, S3C_TCFG0);
++
++ timer_startval = tcnt;
++ __raw_writel(tcnt, S3C_TCNTB(4));
++
++ /* ensure timer is stopped... */
++
++ tcon = __raw_readl(S3C_TCON);
++ tcon &= ~(7<<20);
++ tcon |= S3C_TCON_T4RELOAD;
++ tcon |= S3C_TCON_T4MANUALUPD;
++
++ __raw_writel(tcon, S3C_TCON);
++ __raw_writel(tcnt, S3C_TCNTB(4));
++
++ printk("timer tcon=%08lx, tcnt %04lx, tcfg %08lx,%08lx, usec %08lx\n",
++ tcon, tcnt, tcfg0, tcfg1, timer_usec_ticks);
++
++ /* start the timer running */
++ tcon |= S3C_TCON_T4START;
++ tcon &= ~S3C_TCON_T4MANUALUPD;
++
++ __raw_writel(tcon, S3C_TCON);
++
++ /* timer4 interrupt enable */
++ __raw_writel(__raw_readl(S3C_TINT_CSTAT) | S3C_TINT_CSTAT_T4INTEN, S3C_TINT_CSTAT);
++
++}
++
++#ifdef CONFIG_NO_IDLE_HZ
++static int s3c_dyn_tick_enable_disable(void)
++{
++ /* nothing to do*/
++ return 0;
++}
++
++static void s3c_dyn_tick_reprogram(unsigned long ticks)
++{
++ unsigned long timer_buff_val;
++
++ if(ticks > 1){
++ initial_match = __raw_readl(S3C_TCNTB(4));
++ timer_buff_val = (initial_match + (ticks * s3c_latch));
++ if(timer_buff_val & ~(DEFAULT_TIMER_VAL))
++ timer_buff_val = max_buffer_cnt;
++ __raw_writel(timer_buff_val,S3C_TCNTB(4));
++
++ match_postponed = REPROGRAM_SET_FLAG;
++ }
++}
++
++static irqreturn_t s3c_dyn_tick_handler(int irq, void *dev_id)
++{
++ if (match_postponed){
++ match_postponed = REPROGRAM_UNSET_FLAG;
++ __raw_writel(initial_match,S3C_TCNTB(4));
++ if((unsigned long)(initial_match - __raw_readl(S3C_TCNTB(4))) <= 0)
++ return s3c_timer_interrupt(irq,dev_id);
++ }
++
++ return IRQ_NONE;
++}
++
++static struct dyn_tick_timer s3c_dyn_tick = {
++ .enable = s3c_dyn_tick_enable_disable,
++ .disable = s3c_dyn_tick_enable_disable,
++ .reprogram = s3c_dyn_tick_reprogram,
++ .handler = s3c_dyn_tick_handler,
++};
++
++#endif
++
++static void __init s3c_timer_init (void)
++{
++ s3c_timer_setup();
++ setup_irq(IRQ_TIMER4, &s3c_timer_irq);
++}
++
++struct sys_timer s3c_timer = {
++ .init = s3c_timer_init,
++ .offset = s3c_gettimeoffset,
++ .resume = s3c_timer_setup,
++#ifdef CONFIG_NO_IDLE_HZ
++ .dyn_tick = &s3c_dyn_tick,
++#endif
++};
+diff --git a/arch/arm/plat-s5pc1xx/Kconfig b/arch/arm/plat-s5pc1xx/Kconfig
+new file mode 100644
+index 0000000..b2de828
+--- /dev/null
++++ b/arch/arm/plat-s5pc1xx/Kconfig
+@@ -0,0 +1,24 @@
++# arch/arm/plat-s5pc1xx/Kconfig
++#
++# Licensed under GPLv2
++
++config PLAT_S5PC1XX
++ bool "S5PC1XX Platform support"
++ depends on ARCH_S3C2410 && CPU_S5PC100
++ default y if CPU_S5PC100
++ help
++ Support for S5PC100 Samsung Mobile CPU based systems.
++
++if PLAT_S5PC1XX
++config S5PC1XX_DMA
++ bool "S5PC1XX DMA support"
++ depends on CPU_S5PC100
++ help
++ S5PC100 DMA support. This is needed for drivers like sound which
++ use the S5PC100's DMA system to move data to and from the
++ peripheral blocks.
++endif
++
++
++
++
+diff --git a/arch/arm/plat-s5pc1xx/Makefile b/arch/arm/plat-s5pc1xx/Makefile
+new file mode 100644
+index 0000000..80bbff5
+--- /dev/null
++++ b/arch/arm/plat-s5pc1xx/Makefile
+@@ -0,0 +1,26 @@
++# arch/arm/plat-s3c64xx/Makefile
++#
++# Copyright 2007 Simtec Electronics
++#
++# Licensed under GPLv2
++
++obj-y :=
++obj-m :=
++obj-n :=
++obj- :=
++
++
++# Core files
++
++obj-y += ../plat-s3c24xx/cpu.o
++obj-$(CONFIG_PLAT_S5PC1XX) += irq-pl192.o
++obj-y += ../plat-s3c24xx/devs.o
++obj-$(CONFIG_PLAT_S5PC1XX) += time-s5pc1xx.o
++obj-y += clock.o
++obj-y += ../plat-s3c24xx/gpio.o
++obj-$(CONFIG_PLAT_S5PC1XX) += gpio.o
++
++# Architecture dependant builds
++
++#obj-$(CONFIG_S5PC1XX_DMA) += dma-pl330.o dma-pl330-microcode.c
++obj-$(CONFIG_MACH_SMDK) += ../plat-s3c24xx/common-smdk.o
+diff --git a/arch/arm/plat-s5pc1xx/clock.c b/arch/arm/plat-s5pc1xx/clock.c
+new file mode 100644
+index 0000000..b778d32
+--- /dev/null
++++ b/arch/arm/plat-s5pc1xx/clock.c
+@@ -0,0 +1,467 @@
++/* linux/arch/arm/plat-s5pc1xx/clock.c
++ *
++ * Copyright (c) 2008-2009 Samsung Electronics
++ *
++ * S5PC1XX Core clock control support
++ *
++ * Based on, and code from linux/arch/arm/mach-versatile/clock.c
++ **
++ ** Copyright (C) 2004 ARM Limited.
++ ** Written by Deep Blue Solutions Limited.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++*/
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/list.h>
++#include <linux/errno.h>
++#include <linux/err.h>
++#include <linux/platform_device.h>
++#include <linux/sysdev.h>
++#include <linux/interrupt.h>
++#include <linux/ioport.h>
++#include <linux/clk.h>
++#include <linux/mutex.h>
++#include <linux/delay.h>
++
++#include <asm/hardware.h>
++#include <asm/irq.h>
++#include <asm/io.h>
++
++#include <asm/arch/regs-clock.h>
++#include <asm/arch/regs-gpio.h>
++
++#include <asm/plat-s5p/clock.h>
++#include <asm/plat-s3c24xx/cpu.h>
++
++/* clock information */
++
++static LIST_HEAD(clocks);
++
++DEFINE_MUTEX(clocks_mutex);
++
++/* enable and disable calls for use with the clk struct */
++
++static int clk_null_enable(struct clk *clk, int enable)
++{
++ return 0;
++}
++
++/* Clock API calls */
++
++struct clk *clk_get(struct device *dev, const char *id)
++{
++ struct clk *p;
++ struct clk *clk = ERR_PTR(-ENOENT);
++ int idno;
++
++ if (dev == NULL || dev->bus != &platform_bus_type)
++ idno = -1;
++ else
++ idno = to_platform_device(dev)->id;
++
++ mutex_lock(&clocks_mutex);
++
++ list_for_each_entry(p, &clocks, list) {
++ if (p->id == idno &&
++ strcmp(id, p->name) == 0 &&
++ try_module_get(p->owner)) {
++ clk = p;
++ break;
++ }
++ }
++
++ /* check for the case where a device was supplied, but the
++ * clock that was being searched for is not device specific */
++
++ if (IS_ERR(clk)) {
++ list_for_each_entry(p, &clocks, list) {
++ if (p->id == -1 && strcmp(id, p->name) == 0 &&
++ try_module_get(p->owner)) {
++ clk = p;
++ break;
++ }
++ }
++ }
++
++ mutex_unlock(&clocks_mutex);
++ return clk;
++}
++
++void clk_put(struct clk *clk)
++{
++ module_put(clk->owner);
++}
++
++int clk_enable(struct clk *clk)
++{
++ if (IS_ERR(clk) || clk == NULL)
++ return -EINVAL;
++
++ clk_enable(clk->parent);
++
++ mutex_lock(&clocks_mutex);
++
++ if ((clk->usage++) == 0)
++ (clk->enable)(clk, 1);
++
++ mutex_unlock(&clocks_mutex);
++ return 0;
++}
++
++void clk_disable(struct clk *clk)
++{
++ if (IS_ERR(clk) || clk == NULL)
++ return;
++
++ mutex_lock(&clocks_mutex);
++
++ if ((--clk->usage) == 0)
++ (clk->enable)(clk, 0);
++
++ mutex_unlock(&clocks_mutex);
++ clk_disable(clk->parent);
++}
++
++
++unsigned long clk_get_rate(struct clk *clk)
++{
++ if (IS_ERR(clk))
++ return 0;
++
++ if (clk->rate != 0)
++ return clk->rate;
++
++ if (clk->get_rate != NULL)
++ return (clk->get_rate)(clk);
++
++ if (clk->parent != NULL)
++ return clk_get_rate(clk->parent);
++
++ return clk->rate;
++}
++
++long clk_round_rate(struct clk *clk, unsigned long rate)
++{
++ if (!IS_ERR(clk) && clk->round_rate)
++ return (clk->round_rate)(clk, rate);
++
++ return rate;
++}
++
++int clk_set_rate(struct clk *clk, unsigned long rate)
++{
++ int ret;
++
++ if (IS_ERR(clk))
++ return -EINVAL;
++
++ mutex_lock(&clocks_mutex);
++ ret = (clk->set_rate)(clk, rate);
++ mutex_unlock(&clocks_mutex);
++
++ return ret;
++}
++
++struct clk *clk_get_parent(struct clk *clk)
++{
++ return clk->parent;
++}
++
++int clk_set_parent(struct clk *clk, struct clk *parent)
++{
++ int ret = 0;
++
++ if (IS_ERR(clk))
++ return -EINVAL;
++
++ mutex_lock(&clocks_mutex);
++
++ if (clk->set_parent)
++ ret = (clk->set_parent)(clk, parent);
++
++ mutex_unlock(&clocks_mutex);
++
++ return ret;
++}
++
++EXPORT_SYMBOL(clk_get);
++EXPORT_SYMBOL(clk_put);
++EXPORT_SYMBOL(clk_enable);
++EXPORT_SYMBOL(clk_disable);
++EXPORT_SYMBOL(clk_get_rate);
++EXPORT_SYMBOL(clk_round_rate);
++EXPORT_SYMBOL(clk_set_rate);
++EXPORT_SYMBOL(clk_get_parent);
++EXPORT_SYMBOL(clk_set_parent);
++
++
++void inline s3c_clk_enable (uint clocks, uint enable, ulong gate_reg)
++{
++ unsigned long clkcon;
++ unsigned long flags;
++
++ local_irq_save(flags);
++
++ clkcon = __raw_readl(gate_reg);
++ clkcon &= ~clocks;
++
++ if (enable)
++ clkcon |= clocks;
++
++ __raw_writel(clkcon, gate_reg);
++
++ local_irq_restore(flags);
++}
++
++
++
++/* base clocks */
++
++struct clk clk_xtal = {
++ .name = "xtal",
++ .id = -1,
++ .rate = 0,
++ .parent = NULL,
++ .ctrlbit = 0,
++};
++
++struct clk clk_arm= {
++ .name = "armclk",
++ .id = -1,
++};
++
++struct clk clk_hd0 = {
++ .name = "hclkd0",
++ .id = -1,
++ .rate = 0,
++ .parent = NULL,
++ .ctrlbit = 0,
++};
++
++struct clk clk_pd0 = {
++ .name = "pclkd0",
++ .id = -1,
++ .rate = 0,
++ .parent = NULL,
++ .ctrlbit = 0,
++};
++
++struct clk clk_hd1 = {
++ .name = "hclkd1",
++ .id = -1,
++ .rate = 0,
++ .parent = NULL,
++ .ctrlbit = 0,
++};
++
++struct clk clk_pd1 = {
++ .name = "pclkd1",
++ .id = -1,
++ .rate = 0,
++ .parent = NULL,
++ .ctrlbit = 0,
++};
++
++#if 0
++
++struct clk clk_xtal = {
++ .name = "xtal",
++ .id = -1,
++ .rate = 0,
++ .parent = NULL,
++ .ctrlbit = 0,
++};
++
++struct clk clk_mpll = {
++ .name = "mpll",
++ .id = -1,
++};
++
++
++struct clk clk_epll = {
++ .name = "epll",
++ .id = -1,
++ .rate = 0,
++ .parent = NULL,
++ .ctrlbit = 0,
++
++};
++
++struct clk clk_f = {
++ .name = "fclk",
++ .id = -1,
++ .rate = 0,
++ .parent = &clk_mpll,
++ .ctrlbit = 0,
++};
++
++struct clk clk_h = {
++ .name = "hclk",
++ .id = -1,
++ .rate = 0,
++ .parent = NULL,
++ .ctrlbit = 0,
++};
++
++struct clk clk_p = {
++ .name = "pclk",
++ .id = -1,
++ .rate = 0,
++ .parent = NULL,
++ .ctrlbit = 0,
++};
++
++
++struct clk clk_hx2 = {
++ .name = "hclkx2",
++ .id = -1,
++ .rate = 0,
++ .parent = NULL,
++ .ctrlbit = 0,
++};
++
++struct clk clk_s = {
++ .name = "sclk",
++ .id = -1,
++ .rate = 0,
++ .parent = NULL,
++ .ctrlbit = 0,
++};
++
++struct clk clk_u = {
++ .name = "uclk",
++ .id = -1,
++ .rate = 0,
++ .parent = NULL,
++ .ctrlbit = 0,
++};
++
++struct clk clk_48m = {
++ .name = "clk48m",
++ .id = -1,
++ .rate = 48*1000*1000,
++ .parent = NULL,
++ .ctrlbit = 0,
++};
++
++struct clk clk_27m = {
++ .name = "clk27m",
++ .id = -1,
++ .rate = 27*1000*1000,
++ .parent = NULL,
++ .ctrlbit = 0,
++};
++
++#endif
++
++
++/* initialise the clock system */
++
++int s5pc1xx_register_clock(struct clk *clk)
++{
++ clk->owner = THIS_MODULE;
++
++ if (clk->enable == NULL)
++ clk->enable = clk_null_enable;
++
++ /* add to the list of available clocks */
++
++ mutex_lock(&clocks_mutex);
++ list_add(&clk->list, &clocks);
++ mutex_unlock(&clocks_mutex);
++
++ return 0;
++}
++
++int s5pc1xx_register_clocks(struct clk **clks, int nr_clks)
++{
++ int fails = 0;
++
++ for (; nr_clks > 0; nr_clks--, clks++) {
++ if (s5pc1xx_register_clock(*clks) < 0)
++ fails++;
++ }
++
++ return fails;
++}
++
++/* initalise all the clocks */
++
++int __init s5pc1xx_setup_clocks(unsigned long xtal,
++ unsigned long armclk,
++ unsigned long hclkd0,
++ unsigned long pclkd0,
++ unsigned long hclkd1,
++ unsigned long pclkd1)
++{
++ printk(KERN_INFO "S5PC1XX Clocks, (c) 2008 Samssung Electronics\n");
++
++ /* initialise the main system clocks */
++ clk_xtal.rate = xtal;
++ clk_arm.rate = armclk;
++ clk_hd0.rate = hclkd0;
++ clk_pd0.rate = pclkd0;
++ clk_hd1.rate = hclkd1;
++ clk_pd1.rate = pclkd1;
++
++ /* assume uart clocks are correctly setup */
++
++ /* register our clocks */
++
++ if (s5pc1xx_register_clock(&clk_xtal) < 0)
++ printk(KERN_ERR "failed to register master xtal\n");
++
++ if (s5pc1xx_register_clock(&clk_arm) < 0)
++ printk(KERN_ERR "failed to register arm clock\n");
++
++ if (s5pc1xx_register_clock(&clk_hd0) < 0)
++ printk(KERN_ERR "failed to register cpu hclkd0\n");
++
++ if (s5pc1xx_register_clock(&clk_pd0) < 0)
++ printk(KERN_ERR "failed to register cpu pclkd0\n");
++
++ if (s5pc1xx_register_clock(&clk_hd1) < 0)
++ printk(KERN_ERR "failed to register cpu hclkd1\n");
++
++ if (s5pc1xx_register_clock(&clk_pd1) < 0)
++ printk(KERN_ERR "failed to register cpu pclkd1\n");
++#if 0
++
++ if (s5pc1xx_register_clock(&clk_epll) < 0)
++ printk(KERN_ERR "failed to register epll clock\n");
++
++ /* register hclkx2 */
++ if (s5pc1xx_register_clock(&clk_hx2) < 0)
++ printk(KERN_ERR "failed to register cpu hclkx2\n");
++
++ if (s5pc1xx_register_clock(&clk_s) < 0)
++ printk(KERN_ERR "failed to register cpu pclk\n");
++
++ if (s5pc1xx_register_clock(&clk_u) < 0)
++ printk(KERN_ERR "failed to register cpu uclk\n");
++
++ if (s5pc1xx_register_clock(&clk_48m) < 0)
++ printk(KERN_ERR "failed to register cpu uclk\n");
++
++ if (s5pc1xx_register_clock(&clk_27m) < 0)
++ printk(KERN_ERR "failed to register cpu uclk\n");
++
++#endif
++ return 0;
++}
++
+diff --git a/arch/arm/plat-s5pc1xx/dma-pl330-microcode.c b/arch/arm/plat-s5pc1xx/dma-pl330-microcode.c
+new file mode 100644
+index 0000000..0ac5dc3
+--- /dev/null
++++ b/arch/arm/plat-s5pc1xx/dma-pl330-microcode.c
+@@ -0,0 +1,278 @@
++
++
++/*---------------------- Primitive functions -------------*/
++/* DMAMOV CCR, ... */
++static void encodeDmaMoveChCtrl(void)
++{
++
++}
++
++/* DMAMOV SAR, uStAddr
++ * DMAMOV DAR, uStAddr */
++static void encodeDmaMove(bool bSrcDir, u32 uStAddr)
++{
++
++}
++
++/* DMAMOV SAR, uStAddr */
++static void encodeDmaMoveSRC(u32 uStAddr)
++{
++
++}
++
++/* DMAMOV DAR, uStAddr */
++static void encodeDmaMoveDST(u32 uStAddr)
++{
++
++}
++
++/* DMAMOV CCR, ... */
++static void encodeDmaMoveCCR(u32 uStAddr)
++{
++
++}
++
++/* DMALD, DMALDS, DMALDB */
++static void encodeDmaLoad(void)
++{
++
++}
++
++/* DMALDPS, DMALDPB (Load Peripheral) */
++static void encodeDmaLoadPeri(void)
++{
++
++}
++
++/* DMAST, DMASTS, DMASTB */
++static void encodeDmaStore(void)
++{
++
++}
++
++/* DMASTPS, DMASTPB (Store and notify Peripheral) */
++static void encodeDmaStorePeri(void)
++{
++
++}
++
++/* DMASTZ */
++static void encodeDmaStoreZero(void)
++{
++
++}
++
++/* DMALP */
++static void encodeDmaLoop(u8 uLoopCnt, u8 uIteration)
++{
++
++}
++
++/* DMALPFE */
++static void encodeDmaLoopForever(u8 uLoopCnt)
++{
++
++}
++
++/* DMALPEND, DMALPENDS, DMALPENDB */
++static void encodeDmaLoopEnd(u8 uLoopCnt)
++{
++
++}
++
++/* DMAWFP, DMAWFPS, DMAWFPB (Wait For Peripheral) */
++static void encodeDmaWaitForPeri(void)
++{
++
++}
++
++/* DMAWFE (Wait For Event) */
++static void encodeDmaWaitForEvent(u8 uEventNum) // 0~31
++{
++
++}
++
++/* DMAFLUSHP (Flush and notify Peripheral) */
++static void encodeDmaFlushPeri(void)
++{
++
++}
++
++/* DMAEND */
++static void encodeDmaEnd(void)
++{
++
++}
++
++/* DMAADDH (Add Halfword) */
++static void encodeDmaAddHalfword(bool bSrcDir, u16 uStAddr)
++{
++
++}
++
++/* DMAKILL (Kill) */
++static void encodeDmaKill(void)
++{
++
++}
++
++/* DMANOP (No operation) */
++static void encodeDmaNop(void)
++{
++
++}
++
++
++/* DMARMB (Read Memory Barrier) */
++static void encodeDmaReadMemBarrier(void)
++{
++
++}
++
++/* DMASEV (Send Event) */
++static void encodeDmaSendEvent(u8 uEventNum) // 0~31
++{
++
++}
++
++
++
++/* DMAWMB (Write Memory Barrier) */
++static void encodeDmaWriteMemBarrier(void)
++{
++
++}
++
++/* DMAGO (Go) */
++static void encodeDmaGo(void)
++{
++
++}
++
++/*---------------------- Feature functions -------------*/
++
++/* start_DMA_controller
++ * - start the DMA controller
++ *
++ */
++void start_DMA_controller()
++{
++
++}
++
++
++/* stop_DMA_controller
++ * - stop the DMA controller
++ *
++ */
++void stop_DMA_controller()
++{
++
++}
++
++
++/* start_DMA_channel
++ * - get the DMA channel started
++ *
++ * chanNum the number to be started
++ * sStAddr the address to be set to PC of the DMAC
++ */
++u32 start_DMA_channel(u8 chanNum, u32 uStAddr)
++{
++ return encodeDmaGo(chanNum, uStAddr);
++}
++
++
++/* stop_DMA_channel
++ * - get the DMA channel stopped
++ *
++ * chanNum the number to be stopped
++ */
++void stop_DMA_channel(u8 chanNum)
++{
++
++}
++
++
++/* setup_DMA_start_address
++ * - set the DMA start address
++ *
++ * uStAddr the DMA start address
++ */
++void setup_DMA_start_address(u32 uStAddr)
++{
++ encodeDmaMoveSRC(uStAddr);
++}
++
++
++/* setup_DMA_destination_address
++ * - set the DMA destination address
++ *
++ * uStAddr the DMA destination address
++ */
++void setup_DMA_destination_address(u32 uStAddr)
++{
++ encodeDmaMoveDST(uStAddr);
++}
++
++
++/* setup_DMA_transfer_size
++ * - set the transfer size
++ *
++ * dmaDir the DMA direction
++ * transferSize the size to be transfered
++ */
++void setup_DMA_transfer_size(u8 dmaDir, u32 transferSize)
++{
++
++ encodeDmaLoop(uLoopCnt, uIteration);
++
++ switch(dmaDir) {
++ case DMA_M2M:]
++ encodeDmaLoad();
++ encodeDmaStore();
++ break;
++
++ case DMA_M2P:
++ encodeDmaWaitForPeri();
++ encodeDmaLoad();
++ encodeDmaStorePeri();
++ break;
++
++ case DMA_P2M:
++ encodeDmaWaitForPeri();
++ encodeDmaLoadPeri();
++ encodeDmaStore();
++ break;
++
++ case DMA_P2P:
++ break;
++
++ default:
++ break;
++ }
++
++ encodeDmaLoopEnd(uLoopCnt);
++}
++
++
++/* setup_DMA_control
++ * - set the burst length, burst size, source and destination increment/fixed field
++ *
++ * dcon the value for channel control register
++ */
++void setup_DMA_control(u32 dcon)
++{
++ encodeDmaMoveCCR(dcon);
++}
++
++
++/* register_irq_to_DMA_channel
++ * - register an event with the DMA channel
++ *
++ * uEventNum the event number
++ */
++void register_irq_to_DMA_channel(u8 uEventNum)
++{
++ encodeDmaSendEvent(uEventNum);
++}
+diff --git a/arch/arm/plat-s5pc1xx/dma-pl330.c b/arch/arm/plat-s5pc1xx/dma-pl330.c
+new file mode 100644
+index 0000000..e63134d
+--- /dev/null
++++ b/arch/arm/plat-s5pc1xx/dma-pl330.c
+@@ -0,0 +1,1601 @@
++/* linux/arch/arm/plat-s3c24xx/dma-pl080.c
++ *
++ * Copyright (c) 2003-2005,2006 Samsung Electronics
++ *
++ * S3C6400 DMA core
++ *
++ * http://www.samsung.com/
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++*/
++
++#ifdef CONFIG_S3C_DMA_DEBUG
++#define DEBUG
++#endif
++
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/sched.h>
++#include <linux/spinlock.h>
++#include <linux/interrupt.h>
++#include <linux/sysdev.h>
++#include <linux/slab.h>
++#include <linux/errno.h>
++#include <linux/delay.h>
++
++#include <asm/system.h>
++#include <asm/irq.h>
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/dma.h>
++
++#include <asm/arch/regs-s3c-clock.h>
++#include <asm/mach/dma.h>
++#include <asm/arch/map.h>
++#include <asm/plat-s3c24xx/dma.h>
++
++/* io map for dma */
++static void __iomem *dma_base;
++static struct kmem_cache *dma_kmem;
++
++static int dma_channels;
++struct s3c24xx_dma_selection dma_sel;
++static struct s3c2410_dma_chan *dma_chan_map[DMACH_MAX];
++
++/* dma channel state information */
++struct s3c2410_dma_chan s3c_dma_chans[S3C2410_DMA_CHANNELS];
++s3c_dma_controller_t s3c_dma_cntlrs[S3C_DMA_CONTROLLERS];
++
++#undef pr_debug
++//#define dma_dbg
++
++#ifdef dma_dbg
++#define sh_printk(fmt...) printk( fmt)
++#define pr_debug(fmt...) printk( fmt)
++#else
++#define sh_printk(fmt...)
++#define pr_debug(fmt...)
++#endif
++
++/* debugging functions */
++
++#define BUF_MAGIC (0xcafebabe)
++
++#define dmawarn(fmt...) printk(KERN_DEBUG fmt)
++
++#define dma_regaddr(chan, reg) ((chan)->regs + (reg))
++#define dma_wrreg(chan, reg, val) writel((val), (chan)->regs + (reg))
++#define dma_rdreg(chan, reg) readl((chan)->regs + (reg))
++
++#define dbg_showregs(chan) do { } while(0)
++#define dbg_showchan(chan) do { } while(0)
++
++void s3c_dma_dump(int dcon_num, int channel)
++{
++ unsigned long tmp;
++ s3c_dma_controller_t *dma_controller = &s3c_dma_cntlrs[dcon_num];
++
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_INT_STATUS);
++ printk("%d dcon_num %d subchnnel INT_STATUS %lx\n", dcon_num, channel, tmp);
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_INT_TCSTATUS);
++ printk("%d dcon_num %d subchnnel INT_TCSTATUS %lx\n", dcon_num, channel, tmp);
++
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_ENBLD_CHANNELS);
++ printk("%d dcon_num %d subchnnel ENBLD_CHANNELS %lx\n", dcon_num, channel, tmp);
++
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_CONFIGURATION);
++ printk("%d dcon_num %d subchnnel DMAC_CONFIGUARATION %lx\n", dcon_num, channel, tmp);
++
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_CSRCADDR(channel));
++ printk("%d dcon_num %d subchnnel SRCADDRESS %lx\n", dcon_num, channel, tmp);
++
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_CDESTADDR(channel));
++ printk("%d dcon_num %d subchnnel DESTADDRESS %lx\n", dcon_num, channel, tmp);
++
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_CLLI(channel));
++ printk("%d dcon_num %d subchnnel LLI %lx\n", dcon_num, channel, tmp);
++
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_CCONTROL0(channel));
++ printk("%d dcon_num %d subchnnel CCONTROL0 %lx\n", dcon_num, channel, tmp);
++
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_CCONTROL1(channel));
++ printk("%d dcon_num %d subchnnel CCONTROL1 %lx\n", dcon_num, channel, tmp);
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_CCONFIGURATION(channel));
++
++ printk("%d dcon_num %d subchnnel CH CONFIGUARATION %lx\n", dcon_num, channel, tmp);
++}
++
++
++/* lookup_dma_channel
++ *
++ * change the dma channel number given into a real dma channel id
++*/
++
++static struct s3c2410_dma_chan *lookup_dma_channel(unsigned int channel)
++{
++ if (channel & DMACH_LOW_LEVEL)
++ return &s3c_dma_chans[channel & ~DMACH_LOW_LEVEL];
++ else
++ return dma_chan_map[channel];
++}
++
++/* s3c_dma_stats_timeout
++ *
++ * Update DMA stats from timeout info
++ */
++static void s3c_dma_stats_timeout(struct s3c2410_dma_stats * stats, int val)
++{
++ if (stats == NULL)
++ return;
++
++ if (val > stats->timeout_longest)
++ stats->timeout_longest = val;
++ if (val < stats->timeout_shortest)
++ stats->timeout_shortest = val;
++
++ stats->timeout_avg += val;
++}
++
++void s3c_enable_dmac(unsigned int dcon_num)
++{
++ s3c_dma_controller_t *dma_controller = &s3c_dma_cntlrs[dcon_num];
++
++#if DMA_PL330
++ start_DMA_controller();
++#else
++ dma_wrreg(dma_controller, S3C_DMAC_CONFIGURATION, S3C_DMA_CONTROLLER_ENABLE);
++#endif
++}
++
++void s3c_disable_dmac(unsigned int dcon_num)
++{
++ unsigned long tmp;
++ s3c_dma_controller_t *dma_controller = &s3c_dma_cntlrs[dcon_num];
++
++#if DMA_PL330
++ dma_wrreg(DMA_DBGINST0, (0<<24)|(1<<16)|(m_uChNum<<8)|(0<<0));
++ dma_wrreg(DMA_DBGINST1, 0);
++ dma_wrreg(DMA_DBGCMD, 0); // execute the instruction that the DBGINST0,1 registers contain
++#else
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_CONFIGURATION);
++ tmp &= ~S3C_DMA_CONTROLLER_ENABLE;
++ dma_wrreg(dma_controller, S3C_DMAC_CONFIGURATION, tmp);
++#endif
++}
++
++void s3c_clear_interrupts (int dcon_num, int channel)
++{
++ unsigned long tmp;
++ s3c_dma_controller_t *dma_controller = &s3c_dma_cntlrs[dcon_num];
++
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_INT_TCCLEAR);
++ tmp |= (1 << channel);
++ dma_wrreg(dma_controller, S3C_DMAC_INT_TCCLEAR, tmp);
++
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_INT_ERRORCLEAR);
++ tmp |= (1 << channel);
++ dma_wrreg(dma_controller, S3C_DMAC_INT_ERRORCLEAR, tmp);
++}
++
++/* s3c_dma_waitforload
++ *
++ * wait for the DMA engine to load a buffer, and update the state accordingly
++ */
++static int s3c_dma_waitforload(struct s3c2410_dma_chan *chan, int line)
++{
++ int timeout = chan->load_timeout;
++ int took;
++
++ pr_debug("%s channel number : %d\n", __FUNCTION__, chan->number);
++
++ if (chan->load_state != S3C2410_DMALOAD_1LOADED) {
++ printk(KERN_ERR
++ "dma%d: s3c_dma_waitforload() called in loadstate %d from line %d\n",
++ chan->number, chan->load_state, line);
++ return 0;
++ }
++
++ if (chan->stats != NULL)
++ chan->stats->loads++;
++
++ while (--timeout > 0) {
++ if ((dma_rdreg(chan->dma_con, S3C_DMAC_ENBLD_CHANNELS)) & (0x1 << chan->number)) {
++ took = chan->load_timeout - timeout;
++ s3c_dma_stats_timeout(chan->stats, took);
++
++ switch (chan->load_state) {
++ case S3C2410_DMALOAD_1LOADED:
++ chan->load_state = S3C2410_DMALOAD_1RUNNING;
++ break;
++
++ default:
++ printk(KERN_ERR
++ "dma%d: unknown load_state in s3c_dma_waitforload() %d\n",
++ chan->number, chan->load_state);
++ }
++
++ return 1;
++ }
++ }
++
++ if (chan->stats != NULL) {
++ chan->stats->timeout_failed++;
++ }
++
++ return 0;
++}
++
++
++/* s3c_dma_loadbuffer
++ *
++ * load a buffer, and update the channel state
++ */
++static inline int s3c_dma_loadbuffer(struct s3c2410_dma_chan *chan,
++ struct s3c2410_dma_buf *buf)
++{
++ unsigned long reload;
++
++ pr_debug("s3c_chan_loadbuffer: loading buffer %p (0x%08lx,0x%06x)\n",
++ buf, (unsigned long) buf->data, buf->size);
++
++ if (buf == NULL) {
++ dmawarn("buffer is NULL\n");
++ return -EINVAL;
++ }
++
++ /* check the state of the channel before we do anything */
++
++ if (chan->load_state == S3C2410_DMALOAD_1LOADED) {
++ dmawarn("load_state is S3C2410_DMALOAD_1LOADED\n");
++ reload = (buf->next == NULL) ? S3C2410_DCON_NORELOAD : 0;
++ }
++
++ if (chan->load_state == S3C2410_DMALOAD_1LOADED_1RUNNING) {
++ dmawarn("state is S3C2410_DMALOAD_1LOADED_1RUNNING\n");
++ reload = S3C2410_DCON_AUTORELOAD;
++ }
++
++ writel(buf->data, chan->addr_reg);
++
++ pr_debug("%s: DMA control0 - %08x\n", __FUNCTION__, chan->dcon);
++ pr_debug("%s: DMA control1 - %08x\n", __FUNCTION__, (buf->size / chan->xfer_unit));
++
++#if DMA_PL330
++ setup_DMA_control(chan->dcon);
++ setup_DMA_transfer_size(chan->source, (buf->size / chan->xfer_unit));
++#else
++ dma_wrreg(chan, S3C_DMAC_CxCONTROL0, chan->dcon);
++ dma_wrreg(chan, S3C_DMAC_CxCONTROL1, (buf->size / chan->xfer_unit));
++#endif
++
++ chan->next = buf->next;
++
++ /* update the state of the channel */
++
++ switch (chan->load_state) {
++ case S3C2410_DMALOAD_NONE:
++ chan->load_state = S3C2410_DMALOAD_1LOADED;
++ break;
++
++ case S3C2410_DMALOAD_1RUNNING:
++ chan->load_state = S3C2410_DMALOAD_1LOADED_1RUNNING;
++ break;
++
++ default:
++ dmawarn("dmaload: unknown state %d in loadbuffer\n", chan->load_state);
++ break;
++ }
++
++ return 0;
++}
++
++
++/* s3c_dma_call_op
++ *
++ * small routine to call the o routine with the given op if it has been
++ * registered
++ */
++static void s3c_dma_call_op(struct s3c2410_dma_chan * chan, enum s3c2410_chan_op op)
++{
++ if (chan->op_fn != NULL) {
++ (chan->op_fn) (chan, op);
++ }
++}
++
++/* s3c_dma_buffdone
++ *
++ * small wrapper to check if callback routine needs to be called, and
++ * if so, call it
++ */
++static inline void s3c_dma_buffdone(struct s3c2410_dma_chan * chan,
++ struct s3c2410_dma_buf * buf,
++ enum s3c2410_dma_buffresult result)
++{
++ pr_debug("callback_fn will be called=%p, buf=%p, id=%p, size=%d, result=%d\n",
++ chan->callback_fn, buf, buf->id, buf->size, result);
++
++ if (chan->callback_fn != NULL) {
++ (chan->callback_fn) (chan, buf->id, buf->size, result);
++ }
++}
++
++/* s3c_dma_start
++ *
++ * start a dma channel going
++ */
++static int s3c_dma_start(struct s3c2410_dma_chan *chan)
++{
++ unsigned long flags;
++
++ pr_debug("s3c_start_dma: channel number=%d, index=%d\n", chan->number, chan->index);
++
++ local_irq_save(flags);
++
++ if (chan->state == S3C2410_DMA_RUNNING) {
++ pr_debug("s3c_start_dma: already running (%d)\n", chan->state);
++ local_irq_restore(flags);
++ return 0;
++ }
++
++ chan->state = S3C2410_DMA_RUNNING;
++
++ /* check wether there is anything to load, and if not, see
++ * if we can find anything to load
++ */
++
++ if (chan->load_state == S3C2410_DMALOAD_NONE) {
++ if (chan->next == NULL) {
++ printk(KERN_ERR "dma%d: dcon_num has nothing loaded\n", chan->number);
++ chan->state = S3C2410_DMA_IDLE;
++ local_irq_restore(flags);
++ return -EINVAL;
++ }
++
++ s3c_dma_loadbuffer(chan, chan->next);
++ }
++
++ dbg_showchan(chan);
++
++ /* enable the channel */
++
++ if (!chan->irq_enabled) {
++ enable_irq(chan->irq);
++ chan->irq_enabled = 1;
++ }
++
++#if DMA_PL330
++ start_DMA_channel();
++#else
++ /* Get the DMA channel started ...*/
++ dma_wrreg(chan, S3C_DMAC_CxCONFIGURATION, chan->config_flags);
++#endif
++
++ pr_debug("%s:wrote %08lx to S3C_DMAC_CxCONFIGURATION.\n",__FUNCTION__, chan->config_flags);
++
++ /* Start the DMA operation on Peripheral */
++ s3c_dma_call_op(chan, S3C2410_DMAOP_START);
++
++ dbg_showchan(chan);
++
++ /* if we've only loaded one buffer onto the channel, then chec
++ * to see if we have another, and if so, try and load it so when
++ * the first buffer is finished, the new one will be loaded onto
++ * the channel */
++#if 0
++ if (chan->next != NULL) {
++ if (chan->load_state == S3C2410_DMALOAD_1LOADED) {
++
++ if (s3c2410_dma_waitforload(chan, __LINE__) == 0) {
++ pr_debug("%s: buff not yet loaded, no more todo\n",
++ __FUNCTION__);
++ } else {
++ chan->load_state = S3C2410_DMALOAD_1RUNNING;
++ s3c2410_dma_loadbuffer(chan, chan->next);
++ }
++
++ } else if (chan->load_state == S3C2410_DMALOAD_1RUNNING) {
++ s3c2410_dma_loadbuffer(chan, chan->next);
++ }
++ }
++#endif
++ local_irq_restore(flags);
++ return 0;
++}
++
++
++/* s3c_dma_canload
++ *
++ * work out if we can queue another buffer into the DMA engine
++ */
++
++#if 0
++static int s3c_dma_canload(struct s3c2410_dma_chan * chan)
++{
++ if (chan->load_state == S3C2410_DMALOAD_NONE || chan->load_state == S3C2410_DMALOAD_1RUNNING)
++ return 1;
++
++ return 0;
++}
++#endif
++
++
++/* s3c2410_dma_enqueue
++ *
++ * queue an given buffer for dma transfer.
++ *
++ * id the device driver's id information for this buffer
++ * data the physical address of the buffer data
++ * size the size of the buffer in bytes
++ *
++ * If the channel is not running, then the flag S3C2410_DMAF_AUTOSTART
++ * is checked, and if set, the channel is started. If this flag isn't set,
++ * then an error will be returned.
++ *
++ * It is possible to queue more than one DMA buffer onto a channel at
++ * once, and the code will deal with the re-loading of the next buffer
++ * when necessary.
++ */
++int s3c2410_dma_enqueue(unsigned int channel, void *id,
++ dma_addr_t data, int size)
++{
++ struct s3c2410_dma_chan *chan = lookup_dma_channel(channel);
++ struct s3c2410_dma_buf *buf;
++ unsigned long flags;
++
++ pr_debug("%s: id=%p, data=%08x, size=%d\n", __FUNCTION__, id, (unsigned int) data, size);
++
++ buf = kmem_cache_alloc(dma_kmem, GFP_ATOMIC);
++ if (buf == NULL) {
++ printk(KERN_ERR "dma<%d> no memory for buffer\n", channel);
++ return -ENOMEM;
++ }
++
++ pr_debug("%s: new buffer %p\n", __FUNCTION__, buf);
++
++ //dbg_showchan(chan);
++
++ buf->next = NULL;
++ buf->data = buf->ptr = data;
++ buf->size = size;
++ buf->id = id;
++ buf->magic = BUF_MAGIC;
++
++ local_irq_save(flags);
++
++ if (chan->curr == NULL) {
++ /* we've got nothing loaded... */
++ pr_debug("%s: buffer %p queued onto empty channel\n", __FUNCTION__, buf);
++
++ chan->curr = buf;
++ chan->end = buf;
++ chan->next = NULL;
++ } else {
++ pr_debug("dma%d: %s: buffer %p queued onto non-empty channel\n",
++ chan->number, __FUNCTION__, buf);
++
++ if (chan->end == NULL) /* In case of flushing */
++ pr_debug("dma%d: %s: %p not empty, and chan->end==NULL?\n",
++ chan->number, __FUNCTION__, chan);
++ else {
++ chan->end->next = buf;
++ chan->end = buf;
++ }
++ }
++
++ /* if necessary, update the next buffer field */
++ if (chan->next == NULL)
++ chan->next = buf;
++
++ /* check to see if we can load a buffer */
++ if (chan->state == S3C2410_DMA_RUNNING) {
++ if (chan->load_state == S3C2410_DMALOAD_1LOADED && 1) {
++ if (s3c_dma_waitforload(chan, __LINE__) == 0) {
++ printk(KERN_ERR "dma%d: loadbuffer:"
++ "timeout loading buffer\n", chan->number);
++ dbg_showchan(chan);
++ local_irq_restore(flags);
++ return -EINVAL;
++ }
++ }
++#if 0
++ while (s3c_dma_canload(chan) && chan->next != NULL) {
++ s3c_dma_loadbuffer(chan, chan->next);
++ }
++#endif
++ } else if (chan->state == S3C2410_DMA_IDLE) {
++ if (chan->flags & S3C2410_DMAF_AUTOSTART) {
++ s3c2410_dma_ctrl(channel, S3C2410_DMAOP_START);
++ } else {
++ pr_debug("loading onto stopped channel\n");
++ }
++ }
++
++ local_irq_restore(flags);
++ return 0;
++}
++EXPORT_SYMBOL(s3c2410_dma_enqueue);
++
++static inline void s3c_dma_freebuf(struct s3c2410_dma_buf * buf)
++{
++ int magicok = (buf->magic == BUF_MAGIC);
++
++ buf->magic = -1;
++
++ if (magicok) {
++ kmem_cache_free(dma_kmem, buf);
++ } else {
++ printk("s3c_dma_freebuf: buff %p with bad magic\n", buf);
++ }
++}
++
++/* s3c_dma_lastxfer
++ *
++ * called when the system is out of buffers, to ensure that the channel
++ * is prepared for shutdown.
++ */
++static inline void s3c_dma_lastxfer(struct s3c2410_dma_chan *chan)
++{
++ pr_debug("DMA CH %d: s3c_dma_lastxfer: load_state %d\n", chan->number, chan->load_state);
++
++ switch (chan->load_state) {
++ case S3C2410_DMALOAD_NONE:
++ pr_debug("DMA CH %d: s3c_dma_lastxfer: load_state : S3C2410_DMALOAD_NONE%d\n", chan->number);
++ break;
++
++ case S3C2410_DMALOAD_1LOADED:
++ if (s3c_dma_waitforload(chan, __LINE__) == 0) {
++ /* flag error? */
++ printk(KERN_ERR "dma%d: timeout waiting for load\n", chan->number);
++ return;
++ }
++ break;
++
++ default:
++ pr_debug("dma%d: lastxfer: unhandled load_state %d with no next",
++ chan->number, chan->load_state);
++ return;
++
++ }
++
++ /* hopefully this'll shut the damned thing up after the transfer... */
++ //dma_wrreg(chan, S3C_DMA_DCON, chan->dcon | S3C_DCON_NORELOAD);
++}
++
++
++#define dmadbg2(x...)
++
++static irqreturn_t s3c_dma_irq(int irq, void *devpw)
++{
++ unsigned int channel = 0, dcon_num, i;
++ unsigned long tmp;
++ s3c_dma_controller_t *dma_controller = (s3c_dma_controller_t *) devpw;
++
++ struct s3c2410_dma_chan *chan=NULL;
++ struct s3c2410_dma_buf *buf;
++
++ dcon_num = dma_controller->number;
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_INT_TCSTATUS);
++ pr_debug("# s3c_dma_irq: TC status : 0x%x\n", tmp);
++
++ for (i = 0; i < S3C_CHANNELS_PER_DMA; i++) {
++ if (tmp & 0x01) {
++
++ pr_debug("# DMA Controller %d: requestor %d\n", dcon_num, i);
++
++ channel = i;
++ chan = &s3c_dma_chans[channel + dcon_num * S3C_CHANNELS_PER_DMA];
++ pr_debug("# DMA channel number : %d, index : %d\n", chan->number, chan->index);
++
++ buf = chan->curr;
++
++ dbg_showchan(chan);
++
++ /* modify the channel state */
++ switch (chan->load_state) {
++ case S3C2410_DMALOAD_1RUNNING:
++ /* TODO - if we are running only one buffer, we probably
++ * want to reload here, and then worry about the buffer
++ * callback */
++
++ chan->load_state = S3C2410_DMALOAD_NONE;
++ break;
++
++ case S3C2410_DMALOAD_1LOADED:
++ /* iirc, we should go back to NONE loaded here, we
++ * had a buffer, and it was never verified as being
++ * loaded.
++ */
++
++ chan->load_state = S3C2410_DMALOAD_NONE;
++ break;
++
++ case S3C2410_DMALOAD_1LOADED_1RUNNING:
++ /* we'll worry about checking to see if another buffer is
++ * ready after we've called back the owner. This should
++ * ensure we do not wait around too long for the DMA
++ * engine to start the next transfer
++ */
++
++ chan->load_state = S3C2410_DMALOAD_1LOADED;
++ break;
++
++ case S3C2410_DMALOAD_NONE:
++ printk(KERN_ERR "dma%d: IRQ with no loaded buffer?\n",
++ chan->number);
++ break;
++
++ default:
++ printk(KERN_ERR "dma%d: IRQ in invalid load_state %d\n",
++ chan->number, chan->load_state);
++ break;
++ }
++
++ if (buf != NULL) {
++ /* update the chain to make sure that if we load any more
++ * buffers when we call the callback function, things should
++ * work properly */
++
++ chan->curr = buf->next;
++ buf->next = NULL;
++
++ if (buf->magic != BUF_MAGIC) {
++ printk(KERN_ERR "dma%d: %s: buf %p incorrect magic\n",
++ chan->number, __FUNCTION__, buf);
++ goto next_channel;
++ }
++
++ s3c_dma_buffdone(chan, buf, S3C2410_RES_OK);
++
++ /* free resouces */
++ s3c_dma_freebuf(buf);
++ } else {
++
++ }
++
++ if (chan->next != NULL) {
++ unsigned long flags;
++
++ switch (chan->load_state) {
++ case S3C2410_DMALOAD_1RUNNING:
++ /* don't need to do anything for this state */
++ break;
++
++ case S3C2410_DMALOAD_NONE:
++ /* can load buffer immediately */
++ break;
++
++ case S3C2410_DMALOAD_1LOADED:
++ if (s3c_dma_waitforload(chan, __LINE__) == 0) {
++ /* flag error? */
++ printk(KERN_ERR "dma%d: timeout waiting for load\n",
++ chan->number);
++ goto next_channel;
++ }
++
++ break;
++
++ case S3C2410_DMALOAD_1LOADED_1RUNNING:
++ goto next_channel;
++
++ default:
++ printk(KERN_ERR "dma%d: unknown load_state in irq, %d\n",
++ chan->number, chan->load_state);
++ goto next_channel;
++ }
++
++ local_irq_save(flags);
++ s3c_dma_loadbuffer(chan, chan->next);
++
++ //shaju added for dbg
++ dma_wrreg(chan, S3C_DMAC_CxCONFIGURATION, chan->config_flags);
++
++ local_irq_restore(flags);
++
++ } else {
++ s3c_dma_lastxfer(chan);
++
++ /* see if we can stop this channel.. */
++ if (chan->load_state == S3C2410_DMALOAD_NONE) {
++ pr_debug("# DMA CH %d(index:%d): end of transfer, stopping channel (%ld)\n",
++ chan->number, chan->index, jiffies);
++ s3c2410_dma_ctrl(chan->index | DMACH_LOW_LEVEL, S3C2410_DMAOP_STOP);
++ }
++ }
++ }
++
++next_channel:
++ tmp >>= 1;
++
++ }
++
++ s3c_clear_interrupts(chan->dma_con->number, chan->number);
++
++ return IRQ_HANDLED;
++}
++
++static struct s3c2410_dma_chan *s3c_dma_map_channel(int channel);
++
++/* s3c2410_dma_request
++ *
++ * get control of an dma channel
++*/
++
++int s3c2410_dma_request(unsigned int channel,
++ struct s3c2410_dma_client *client,
++ void *dev)
++{
++ struct s3c2410_dma_chan *chan;
++ unsigned long flags;
++ int err;
++
++ pr_debug("DMA CH %d: s3c2410_request_dma: client=%s, dev=%p\n",
++ channel, client->name, dev);
++
++ local_irq_save(flags);
++
++ chan = s3c_dma_map_channel(channel);
++ if (chan == NULL) {
++ local_irq_restore(flags);
++ return -EBUSY;
++ }
++
++ dbg_showchan(chan);
++
++ chan->client = client;
++ chan->in_use = 1;
++
++ chan->dma_con->in_use++;
++
++ if (!chan->irq_claimed) {
++ pr_debug("DMA CH %d: %s : requesting irq %d\n",
++ channel, __FUNCTION__, chan->irq);
++
++ chan->irq_claimed = 1;
++ local_irq_restore(flags);
++
++ err = request_irq(chan->irq, s3c_dma_irq, IRQF_DISABLED,
++ client->name, (void *) chan->dma_con);
++
++ local_irq_save(flags);
++
++ if (err) {
++ chan->in_use = 0;
++ chan->irq_claimed = 0;
++ chan->dma_con->in_use--;
++ local_irq_restore(flags);
++
++ printk(KERN_ERR "%s: cannot get IRQ %d for DMA %d\n",
++ client->name, chan->irq, chan->number);
++ return err;
++ }
++
++ chan->irq_enabled = 1;
++
++ /* enable the main dma.. this can be disabled
++ * when main channel use count is 0 */
++ s3c_enable_dmac(chan->dma_con->number);
++ }
++
++ s3c_clear_interrupts(chan->dma_con->number, chan->number);
++ local_irq_restore(flags);
++
++ /* need to setup */
++
++ pr_debug("%s: channel initialised, %p, number:%d, index:%d\n", __FUNCTION__, chan, chan->number, chan->index);
++
++ return 0;
++}
++EXPORT_SYMBOL(s3c2410_dma_request);
++
++/* s3c2410_dma_free
++ *
++ * release the given channel back to the system, will stop and flush
++ * any outstanding transfers, and ensure the channel is ready for the
++ * next claimant.
++ *
++ * Note, although a warning is currently printed if the freeing client
++ * info is not the same as the registrant's client info, the free is still
++ * allowed to go through.
++ */
++int s3c2410_dma_free(dmach_t channel, struct s3c2410_dma_client *client)
++{
++ unsigned long flags;
++ struct s3c2410_dma_chan *chan = lookup_dma_channel(channel);
++ pr_debug("%s: DMA channel %d will be stopped\n", __FUNCTION__, chan->number);
++
++ if (chan == NULL)
++ return -EINVAL;
++
++ local_irq_save(flags);
++
++ if (chan->client != client) {
++ printk(KERN_WARNING
++ "DMA CH %d: possible free from different client (channel %p, passed %p)\n",
++ channel, chan->client, client);
++ }
++
++ /* sort out stopping and freeing the channel */
++
++ if (chan->state != S3C2410_DMA_IDLE) {
++ pr_debug("%s: need to stop dma channel %p\n", __FUNCTION__, chan);
++
++ /* possibly flush the channel */
++ s3c2410_dma_ctrl(channel, S3C2410_DMAOP_STOP);
++ }
++
++ chan->client = NULL;
++ chan->in_use = 0;
++
++ chan->dma_con->in_use--;
++
++ if (chan->irq_claimed)
++ free_irq(chan->irq, (void *)chan->dma_con);
++
++ chan->irq_claimed = 0;
++
++ if (!(channel & DMACH_LOW_LEVEL))
++ dma_chan_map[channel] = NULL;
++
++ local_irq_restore(flags);
++
++ pr_debug("--------------------------------------------\n");
++
++ return 0;
++}
++EXPORT_SYMBOL(s3c2410_dma_free);
++
++/* actively polling for the A bit can block the cpu*/
++void s3c_dma_flush_fifo(struct s3c2410_dma_chan *chan)
++{
++ unsigned long tmp;
++
++ tmp = dma_rdreg(chan, S3C_DMAC_CxCONFIGURATION);
++ tmp |= S3C_DMACONFIG_HALT;
++ dma_wrreg(chan, S3C_DMAC_CxCONFIGURATION, tmp);
++
++ tmp = dma_rdreg(chan, S3C_DMAC_CxCONFIGURATION);
++
++ /*this while loop can be very dangerous..may be put the process to sleep rather than waiting till fifo is drained */
++ while (tmp & S3C_DMACONFIG_ACTIVE) {
++ tmp = dma_rdreg(chan, S3C_DMAC_CxCONFIGURATION);
++ }
++}
++
++static int s3c_dma_dostop(struct s3c2410_dma_chan *chan)
++{
++ unsigned long tmp;
++ unsigned long flags;
++
++ pr_debug("%s: DMA Channel No : %d\n", __FUNCTION__, chan->number);
++
++ dbg_showchan(chan);
++
++ local_irq_save(flags);
++
++ s3c_dma_flush_fifo(chan);
++
++ s3c_dma_call_op(chan, S3C2410_DMAOP_STOP);
++
++ tmp = dma_rdreg(chan, S3C_DMAC_CxCONFIGURATION);
++
++ tmp &= ~S3C_DMACONFIG_CHANNEL_ENABLE;
++ dma_wrreg(chan, S3C_DMAC_CxCONFIGURATION, tmp);
++
++ pr_debug("%s: S3C_DMAC_CxCONFIGURATION : %08x\n", __FUNCTION__, tmp);
++
++ chan->state = S3C2410_DMA_IDLE;
++ chan->load_state = S3C2410_DMALOAD_NONE;
++
++ local_irq_restore(flags);
++
++ return 0;
++}
++
++static void s3c_dma_showchan(struct s3c2410_dma_chan * chan)
++{
++#if 0
++ printk(KERN_DEBUG "dma[%d]: st %d, lst %d, cli %p, dcon %08lx\n",
++ chan->number, chan->state, chan->load_state, chan->client, chan->dcon);
++ printk(KERN_DEBUG "dma[%d]: CSRC=%x, ISRC=%x, STAT=%x, CON=%x, MT=%x\n",
++ chan->number,
++ dma_rdreg(chan, S3C2410_DMA_DCSRC),
++ dma_rdreg(chan, S3C2410_DMA_DISRC),
++ dma_rdreg(chan, S3C2410_DMA_DSTAT),
++ dma_rdreg(chan, S3C2410_DMA_DCON), dma_rdreg(chan, S3C2410_DMA_DMASKTRIG));
++#endif
++}
++
++/* s3c_dma_flush
++ *
++ * stop the channel, and remove all current and pending transfers
++ */
++
++void s3c_waitforstop(struct s3c2410_dma_chan *chan)
++{
++#if 0
++ unsigned long tmp;
++ unsigned int timeout = 0x10000;
++
++ while (timeout-- > 0) {
++ tmp = dma_rdreg(chan, S3C2410_DMA_DMASKTRIG);
++
++ if (!(tmp & S3C2410_DMASKTRIG_ON))
++ return;
++ }
++
++ pr_debug("dma%d: failed to stop?\n", chan->number);
++#endif
++}
++
++static int s3c_dma_flush(struct s3c2410_dma_chan *chan)
++{
++ struct s3c2410_dma_buf *buf, *next;
++ unsigned long flags;
++
++ pr_debug("%s:\n", __FUNCTION__);
++
++ local_irq_save(flags);
++
++ s3c_dma_showchan(chan);
++
++ if (chan->state != S3C2410_DMA_IDLE) {
++ pr_debug("%s: stopping channel...\n", __FUNCTION__);
++ s3c2410_dma_ctrl(chan->number, S3C2410_DMAOP_STOP);
++ }
++
++ buf = chan->curr;
++ if (buf == NULL)
++ buf = chan->next;
++
++ chan->curr = chan->next = chan->end = NULL;
++ chan->load_state = S3C2410_DMALOAD_NONE;
++
++ if (buf != NULL) {
++ for (; buf != NULL; buf = next) {
++ next = buf->next;
++
++ pr_debug("%s: free buffer %p, next %p\n", __FUNCTION__, buf, buf->next);
++
++ s3c_dma_buffdone(chan, buf, S3C2410_RES_ABORT);
++ s3c_dma_freebuf(buf);
++ }
++ }
++ //s3c_dma_waitforstop(chan);
++
++ s3c_dma_showchan(chan);
++ local_irq_restore(flags);
++
++ return 0;
++}
++
++int s3c_dma_started(struct s3c2410_dma_chan *chan)
++{
++ unsigned long flags;
++
++ local_irq_save(flags);
++
++ dbg_showchan(chan);
++
++ /* if we've only loaded one buffer onto the channel, then chec
++ * to see if we have another, and if so, try and load it so when
++ * the first buffer is finished, the new one will be loaded onto
++ * the channel */
++
++ if (chan->next != NULL) {
++ if (chan->load_state == S3C2410_DMALOAD_1LOADED) {
++
++ if (s3c_dma_waitforload(chan, __LINE__) == 0) {
++ pr_debug("%s: buff not yet loaded, no more todo\n",
++ __FUNCTION__);
++ } else {
++ chan->load_state = S3C2410_DMALOAD_1RUNNING;
++ s3c_dma_loadbuffer(chan, chan->next);
++ }
++
++ } else if (chan->load_state == S3C2410_DMALOAD_1RUNNING) {
++ s3c_dma_loadbuffer(chan, chan->next);
++ }
++ }
++
++ local_irq_restore(flags);
++
++ return 0;
++
++}
++
++int s3c2410_dma_ctrl(dmach_t channel, enum s3c2410_chan_op op)
++{
++ struct s3c2410_dma_chan *chan = lookup_dma_channel(channel);
++
++ if (chan == NULL)
++ return -EINVAL;
++
++ switch (op) {
++ case S3C2410_DMAOP_START:
++ return s3c_dma_start(chan);
++
++ case S3C2410_DMAOP_STOP:
++ return s3c_dma_dostop(chan);
++
++ case S3C2410_DMAOP_PAUSE:
++ case S3C2410_DMAOP_RESUME:
++ return -ENOENT;
++
++ case S3C2410_DMAOP_FLUSH:
++ return s3c_dma_flush(chan);
++
++ case S3C2410_DMAOP_STARTED:
++ return s3c_dma_started(chan);
++
++ case S3C2410_DMAOP_TIMEOUT:
++ return 0;
++
++ }
++
++ return -ENOENT; /* unknown, don't bother */
++}
++EXPORT_SYMBOL(s3c2410_dma_ctrl);
++
++
++/* s3c2410_dma_config
++ *
++ * xfersize: size of unit in bytes (1,2,4)
++ * dcon: base value of the DCONx register
++ */
++int s3c2410_dma_config(dmach_t channel,
++ int xferunit,
++ int dcon)
++{
++ struct s3c2410_dma_chan *chan = lookup_dma_channel(channel);
++
++ pr_debug("%s: chan=%d, xfer_unit=%d, dcon=%08x\n",
++ __FUNCTION__, channel, xferunit, dcon);
++
++ if (chan == NULL)
++ return -EINVAL;
++
++ pr_debug("%s: Initial dcon is %08x\n", __FUNCTION__, dcon);
++
++ dcon |= chan->dcon & dma_sel.dcon_mask;
++
++ pr_debug("%s: New dcon is %08x\n", __FUNCTION__, dcon);
++
++ switch (xferunit) {
++ case 1:
++ dcon |= S3C_DMACONTROL_SRC_WIDTH_BYTE;
++ dcon |= S3C_DMACONTROL_DEST_WIDTH_BYTE;
++ break;
++
++ case 2:
++ dcon |= S3C_DMACONTROL_SRC_WIDTH_HWORD;
++ dcon |= S3C_DMACONTROL_DEST_WIDTH_HWORD;
++ break;
++
++ case 4:
++ dcon |= S3C_DMACONTROL_SRC_WIDTH_WORD;
++ dcon |= S3C_DMACONTROL_DEST_WIDTH_WORD;
++ break;
++
++ default:
++ pr_debug("%s: Bad transfer size %d\n", __FUNCTION__, xferunit);
++ return -EINVAL;
++ }
++
++ pr_debug("%s: DMA Channel control : %08x\n", __FUNCTION__, dcon);
++
++ dcon |= S3C_DMACONTROL_TC_INT_ENABLE;
++ dcon |= chan->control_flags;
++ pr_debug("%s: dcon now %08x\n", __FUNCTION__, dcon);
++
++ /* For DMCCxControl 0 */
++ chan->dcon = dcon;
++
++ /* For DMACCxControl 1 : xferunit means transfer width.*/
++ chan->xfer_unit = xferunit;
++
++ return 0;
++}
++EXPORT_SYMBOL(s3c2410_dma_config);
++
++int s3c2410_dma_setflags(dmach_t channel, unsigned int flags)
++{
++ struct s3c2410_dma_chan *chan = lookup_dma_channel(channel);
++
++ if (chan == NULL)
++ return -EINVAL;
++
++ pr_debug("%s: chan=%p, flags=%08x\n", __FUNCTION__, chan, flags);
++
++ chan->flags = flags;
++
++ return 0;
++}
++EXPORT_SYMBOL(s3c2410_dma_setflags);
++
++
++/* do we need to protect the settings of the fields from
++ * irq?
++ */
++
++int s3c2410_dma_set_opfn(dmach_t channel, s3c2410_dma_opfn_t rtn)
++{
++ struct s3c2410_dma_chan *chan = lookup_dma_channel(channel);
++
++ if (chan == NULL)
++ return -EINVAL;
++
++ pr_debug("%s: chan=%p, op rtn=%p\n", __FUNCTION__, chan, rtn);
++
++ chan->op_fn = rtn;
++
++ return 0;
++}
++EXPORT_SYMBOL(s3c2410_dma_set_opfn);
++
++
++int s3c2410_dma_set_buffdone_fn(dmach_t channel, s3c2410_dma_cbfn_t rtn)
++{
++ struct s3c2410_dma_chan *chan = lookup_dma_channel(channel);
++
++ if (chan == NULL)
++ return -EINVAL;
++
++ pr_debug("%s: chan=%p, callback rtn=%p\n", __FUNCTION__, chan, rtn);
++
++ chan->callback_fn = rtn;
++
++ return 0;
++}
++EXPORT_SYMBOL(s3c2410_dma_set_buffdone_fn);
++
++
++/* s3c2410_dma_devconfig
++ *
++ * configure the dma source/destination hardware type and address
++ *
++ * flowctrl: direction of dma flow
++ *
++ * src_per dst_per: dma channel number of src and dst periphreal,
++ *
++ * devaddr: physical address of the source
++ */
++
++int s3c2410_dma_devconfig(int channel,
++ enum s3c2410_dmasrc source,
++ int hwcfg,
++ unsigned long devaddr)
++{
++ unsigned long tmp;
++
++ struct s3c2410_dma_chan *chan = lookup_dma_channel(channel);
++
++ if (chan == NULL)
++ return -EINVAL;
++
++ pr_debug("%s: source=%d, hwcfg=%08x, devaddr=%08lx\n",
++ __FUNCTION__, (int)source, hwcfg, devaddr);
++
++ chan->source = source;
++ chan->dev_addr = devaddr;
++
++ switch (source) {
++ case S3C2410_DMASRC_MEM:
++ /* source is Memory : Mem-to-Peri ( Write into FIFO) */
++ tmp = S3C_DMACONFIG_TCMASK | S3C_DMACONFIG_FLOWCTRL_MEM2PER | (chan->map->hw_addr.to) <<
++ S3C_DEST_SHIFT | S3C_DMACONFIG_CHANNEL_ENABLE;
++
++ chan->config_flags = tmp;
++
++#if DMA_PL330
++ setup_DMA_destination_address(2, devaddr);
++#else
++ /* TODO : Now, Scatter&Gather DMA NOT supported */
++ dma_wrreg(chan, S3C_DMAC_CxLLI, 0);
++
++ /* devaddr : Periperal address (destination) */
++ dma_wrreg(chan, S3C_DMAC_CxDESTADDR, devaddr);
++#endif
++ /* source address : memory(buffer) address */
++ chan->addr_reg = dma_regaddr(chan, S3C_DMAC_CxSRCADDR);
++
++ chan->control_flags = S3C_DMACONTROL_SRC_INC | S3C_DMACONTROL_DEST_AXI_PERI ;
++ //chan->control_flags = hwcfg;
++ return 0;
++
++ case S3C2410_DMASRC_HW:
++ /* source is peripheral : Peri-to-Mem ( Read from FIFO) */
++ tmp = S3C_DMACONFIG_TCMASK | S3C_DMACONFIG_FLOWCTRL_PER2MEM | (chan->map->hw_addr.from) <<
++ S3C_SRC_SHIFT | S3C_DMACONFIG_CHANNEL_ENABLE;
++
++ chan->config_flags = tmp;
++
++#if DMA_PL330
++ setup_DMA_start_address(1, devaddr);
++#else
++ /* TODO : Now, Scatter&Gather DMA NOT supported */
++ dma_wrreg(chan, S3C_DMAC_CxLLI, 0);
++
++ /* devaddr : Periperal address (source) */
++ dma_wrreg(chan, S3C_DMAC_CxSRCADDR, devaddr);
++#endif
++ /* destination address : memory(buffer) address */
++ chan->addr_reg = dma_regaddr(chan, S3C_DMAC_CxDESTADDR);
++
++ chan->control_flags = S3C_DMACONTROL_DEST_INC | S3C_DMACONTROL_SRC_AXI_PERI;
++ //chan->control_flags = hwcfg;
++
++ return 0;
++
++#if 0
++ case S3C_DMA_MEM2MEM:
++ /* source is memory : Memory-to-Mem ( Read/Write) */
++ tmp = S3C_DMACONFIG_TCMASK | S3C_DMACONFIG_FLOWCTRL_MEM2MEM | S3C_DMACONFIG_CHANNEL_ENABLE;
++
++ if(chan->map->hw_addr.from == S3C_DMA0_ONENAND_RX) {
++ tmp |= S3C_DMACONFIG_ONENANDMODESRC;
++ }
++
++ chan->config_flags = tmp;
++
++ /* TODO : Now, Scatter&Gather DMA NOT YET supported */
++ dma_wrreg(chan, S3C_DMAC_CxLLI, 0);
++
++ /* devaddr : memory/onenand address (source) */
++ dma_wrreg(chan, S3C_DMAC_CxSRCADDR, devaddr);
++
++ /* destination address : memory(buffer) address */
++ chan->addr_reg = dma_regaddr(chan, S3C_DMAC_CxDESTADDR);
++
++ chan->control_flags |= (S3C_DMACONTROL_SRC_INC | S3C_DMACONTROL_DEST_INC
++ | S3C_DMACONTROL_SBSIZE_4 | S3C_DMACONTROL_DBSIZE_4);
++ //chan->control_flags = hwcfg;
++
++ return 0;
++#else
++ case S3C_DMA_MEM2MEM:
++ /* this is temporary for G3D */
++ tmp = S3C_DMACONFIG_TCMASK | S3C_DMACONFIG_FLOWCTRL_MEM2MEM | S3C_DMACONFIG_CHANNEL_ENABLE;
++
++ chan->config_flags = tmp;
++
++ /* TODO : Now, Scatter&Gather DMA NOT YET supported */
++ dma_wrreg(chan, S3C_DMAC_CxLLI, 0);
++
++ /* devaddr : memory/onenand address (source) */
++ dma_wrreg(chan, S3C_DMAC_CxSRCADDR, devaddr);
++
++ /* destination address : memory(buffer) address */
++ chan->addr_reg = dma_regaddr(chan, S3C_DMAC_CxDESTADDR);
++
++ chan->control_flags |= (S3C_DMACONTROL_SRC_INC | S3C_DMACONTROL_DEST_AXI_PERI
++ | S3C_DMACONTROL_SBSIZE_4 | S3C_DMACONTROL_DBSIZE_4);
++ //chan->control_flags = hwcfg;
++
++ return 0;
++#endif
++
++ case S3C_DMA_PER2PER:
++ printk("Peripheral-to-Peripheral DMA NOT YET implemented !! \n");
++ return -EINVAL;
++
++ default:
++ printk(KERN_ERR "DMA CH :%d - invalid source type ()\n", channel);
++ printk("Unsupported DMA configuration from the device driver using DMA driver \n");
++ return -EINVAL;
++ }
++
++}
++
++EXPORT_SYMBOL(s3c2410_dma_devconfig);
++
++
++/*
++ * s3c2410_dma_getposition
++ * returns the current transfer points for the dma source and destination
++ */
++int s3c2410_dma_getposition(dmach_t channel, dma_addr_t *src, dma_addr_t *dst)
++{
++ struct s3c2410_dma_chan *chan = lookup_dma_channel(channel);
++
++ if (chan == NULL)
++ return -EINVAL;
++
++ if (src != NULL)
++ *src = dma_rdreg(chan, S3C_DMAC_CxSRCADDR);
++
++ if (dst != NULL)
++ *dst = dma_rdreg(chan, S3C_DMAC_CxDESTADDR);
++
++ return 0;
++}
++
++EXPORT_SYMBOL(s3c2410_dma_getposition);
++
++
++/* system device class */
++#ifdef CONFIG_PM
++static int s3c_dma_suspend (struct sys_device *dev, pm_message_t state)
++{
++ return 0;
++}
++
++static int s3c_dma_resume (struct sys_device *dev)
++{
++ return 0;
++}
++#else
++#define s3c_dma_suspend NULL
++#define s3c_dma_resume NULL
++#endif /* CONFIG_PM */
++
++struct sysdev_class dma_sysclass = {
++ set_kset_name("s3c24xx-dma"),
++ .suspend = s3c_dma_suspend,
++ .resume = s3c_dma_resume,
++};
++
++/* kmem cache implementation */
++
++static void s3c_dma_cache_ctor(struct kmem_cache *c, void *p)
++{
++ memset(p, 0, sizeof(struct s3c2410_dma_buf));
++}
++
++
++void dma_test (int dcon_num, int channel)
++{
++ int tmp;
++
++ s3c_dma_controller_t *dma_controller = &s3c_dma_cntlrs[dcon_num];
++#if 0
++ sh_printk("writing to channel %d subch %d \n", dcon_num, channel);
++ sh_printk("main channel %d irq %d regs_base %x\n", dma_controller->number, dma_controller->irq,
++ dma_controller->regs);
++ sh_printk("sub channel %d irq %d regs_base %x\n", chan->number, chan->irq,
++ chan->regs);
++#endif
++ dma_wrreg(dma_controller, S3C_DMAC_CONFIGURATION, S3C_DMA_CONTROLLER_ENABLE);
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_CONFIGURATION);
++ printk("reg val %d\n", tmp);
++ dma_wrreg(dma_controller, S3C_DMAC_CCONFIGURATION(channel), 0x01);
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_CCONFIGURATION(channel));
++
++ printk("reg conf %x\n", tmp);
++ dma_wrreg(dma_controller, S3C_DMAC_CCONTROL0(channel), 0x8ff02064);
++
++ tmp = dma_rdreg(dma_controller, S3C_DMAC_CCONTROL0(channel));
++ printk("reg ctrl %x\n", tmp);
++}
++
++
++/* initialisation code */
++
++int __init s3c24xx_dma_init(unsigned int channels, unsigned int irq,
++ unsigned int stride)
++{
++ struct s3c2410_dma_chan *cp;
++ s3c_dma_controller_t *dconp;
++ int channel, controller;
++ int ret;
++
++ printk("S3C DMA-pl080 Controller Driver, (c) 2006-2007 Samsung Electronics\n");
++
++ dma_channels = channels;
++ printk("Total %d DMA channels will be initialized.\n", channels);
++
++ ret = sysdev_class_register(&dma_sysclass);
++ if (ret != 0) {
++ printk(KERN_ERR "dma sysclass registration failed.\n");
++ goto err;
++ }
++
++ dma_kmem = kmem_cache_create("dma_desc", sizeof(struct s3c2410_dma_buf), 0,
++ SLAB_HWCACHE_ALIGN, s3c_dma_cache_ctor);
++
++ if (dma_kmem == NULL) {
++ printk(KERN_ERR "DMA failed to make kmem cache\n");
++ ret = -ENOMEM;
++ goto err;
++ }
++
++ for (controller = 0; controller < S3C_DMA_CONTROLLERS; controller++) {
++ dconp = &s3c_dma_cntlrs[controller];
++
++ memset(dconp, 0, sizeof(s3c_dma_controller_t));
++
++ if(controller < 2) {
++ dma_base = ioremap((S3C24XX_PA_DMA + (controller * 0x100000)), 0x200);
++ if (dma_base == NULL) {
++ printk(KERN_ERR "DMA failed to ioremap register block\n");
++ return -ENOMEM;
++ }
++
++ /* dma controller's irqs are in order.. */
++ dconp->irq = controller + IRQ_DMA0;
++ }
++ else {
++ dma_base = ioremap(((S3C24XX_PA_DMA + 0x8B00000) + ((controller%2) * 0x100000)), 0x200);
++ if (dma_base == NULL) {
++ printk(KERN_ERR "SDMA failed to ioremap register block\n");
++ return -ENOMEM;
++ }
++
++ /* dma controller's irqs are in order.. */
++ dconp->irq = (controller%2) + IRQ_SDMA0;
++ }
++
++ dconp->number = controller;
++ dconp->regs = dma_base;
++ sh_printk("DMA controller : %d irq %d regs_base %x\n", dconp->number, dconp->irq,
++ dconp->regs);
++ }
++
++ for (channel = 0; channel < channels; channel++) {
++ controller = channel / S3C_CHANNELS_PER_DMA;
++ cp = &s3c_dma_chans[channel];
++
++ memset(cp, 0, sizeof(struct s3c2410_dma_chan));
++
++ cp->dma_con = &s3c_dma_cntlrs[controller];
++
++ /* dma channel irqs are in order.. */
++ cp->index = channel;
++ cp->number = channel%S3C_CHANNELS_PER_DMA;
++
++ cp->irq = s3c_dma_cntlrs[controller].irq;
++
++ cp->regs = s3c_dma_cntlrs[controller].regs + ((channel%S3C_CHANNELS_PER_DMA)*stride) + 0x100;
++
++ /* point current stats somewhere */
++ cp->stats = &cp->stats_store;
++ cp->stats_store.timeout_shortest = LONG_MAX;
++
++ /* basic channel configuration */
++ cp->load_timeout = 1 << 18;
++
++ /* register system device */
++ cp->dev.cls = &dma_sysclass;
++ cp->dev.id = channel;
++ //ret = sysdev_register(&cp->dev);
++
++ sh_printk("DMA channel %d at %p, irq %d\n", cp->number, cp->regs, cp->irq);
++ }
++
++ return 0;
++
++err:
++ kmem_cache_destroy(dma_kmem);
++ iounmap(dma_base);
++ dma_base = NULL;
++ return ret;
++}
++
++
++
++static inline int is_channel_valid(unsigned int channel)
++{
++ return (channel & DMA_CH_VALID);
++}
++
++static struct s3c24xx_dma_order *dma_order;
++
++
++/* s3c_dma_map_channel()
++ *
++ * turn the virtual channel number into a real, and un-used hardware
++ * channel.
++ *
++ * first, try the dma ordering given to us by either the relevant
++ * dma code, or the board. Then just find the first usable free
++ * channel
++*/
++
++struct s3c2410_dma_chan *s3c_dma_map_channel(int channel)
++{
++ struct s3c24xx_dma_order_ch *ord = NULL;
++ struct s3c24xx_dma_map *ch_map;
++ struct s3c2410_dma_chan *dmach;
++ int ch;
++
++ if (dma_sel.map == NULL || channel > dma_sel.map_size)
++ return NULL;
++
++ ch_map = dma_sel.map + channel;
++
++ /* first, try the board mapping */
++
++ if (dma_order) {
++ ord = &dma_order->channels[channel];
++
++ for (ch = 0; ch < dma_channels; ch++) {
++ if (!is_channel_valid(ord->list[ch]))
++ continue;
++
++ if (s3c_dma_chans[ord->list[ch]].in_use == 0) {
++ ch = ord->list[ch] & ~DMA_CH_VALID;
++ goto found;
++ }
++ }
++
++ if (ord->flags & DMA_CH_NEVER)
++ return NULL;
++ }
++
++ /* second, search the channel map for first free */
++
++ for (ch = 0; ch < dma_channels; ch++) {
++ if (!is_channel_valid(ch_map->channels[ch]))
++ continue;
++
++ if (s3c_dma_chans[ch].in_use == 0) {
++ pr_debug("mapped channel %d to %d\n", channel, ch);
++ break;
++ }
++ }
++
++ if (ch >= dma_channels)
++ return NULL;
++
++ /* update our channel mapping */
++
++ found:
++ dmach = &s3c_dma_chans[ch];
++ dma_chan_map[channel] = dmach;
++
++ /* select the channel */
++ (dma_sel.select)(dmach, ch_map);
++
++ return dmach;
++}
++
++static int s3c_dma_check_entry(struct s3c24xx_dma_map *map, int ch)
++{
++ unsigned long tmp = __raw_readl(S3C_SDMA_SEL);
++
++ tmp |= map->sdma_sel;
++ __raw_writel(tmp, S3C_SDMA_SEL);
++
++ return 0;
++}
++
++int __init s3c24xx_dma_init_map(struct s3c24xx_dma_selection *sel)
++{
++ struct s3c24xx_dma_map *nmap;
++ size_t map_sz = sizeof(*nmap) * sel->map_size;
++ int ptr;
++
++ nmap = kmalloc(map_sz, GFP_KERNEL);
++ if (nmap == NULL)
++ return -ENOMEM;
++
++ memcpy(nmap, sel->map, map_sz);
++ memcpy(&dma_sel, sel, sizeof(*sel));
++
++ dma_sel.map = nmap;
++
++ for (ptr = 0; ptr < sel->map_size; ptr++)
++ s3c_dma_check_entry(nmap+ptr, ptr);
++
++ return 0;
++}
++
++int __init s3c_dma_order_set(struct s3c24xx_dma_order *ord)
++{
++ struct s3c24xx_dma_order *nord = dma_order;
++
++ if (nord == NULL)
++ nord = kmalloc(sizeof(struct s3c24xx_dma_order), GFP_KERNEL);
++
++ if (nord == NULL) {
++ printk(KERN_ERR "no memory to store dma channel order\n");
++ return -ENOMEM;
++ }
++
++ dma_order = nord;
++ memcpy(nord, ord, sizeof(struct s3c24xx_dma_order));
++ return 0;
++}
++
++
+diff --git a/arch/arm/plat-s5pc1xx/gpio.c b/arch/arm/plat-s5pc1xx/gpio.c
+new file mode 100644
+index 0000000..dc9e0d6
+--- /dev/null
++++ b/arch/arm/plat-s5pc1xx/gpio.c
+@@ -0,0 +1,241 @@
++/* linux/arch/arm/plat-s5p/gpio.c
++ *
++ * Copyright (c) 2008 Samsung Electronics
++ *
++ * S5PC1XX GPIO support
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++*/
++
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/interrupt.h>
++#include <linux/ioport.h>
++
++#include <asm/hardware.h>
++#include <asm/irq.h>
++#include <asm/io.h>
++
++#include <asm/plat-s5p/regs-gpio.h>
++
++/* GPIO bank list */
++static void __iomem *gpio_base_offset[] = {
++ S3C24XX_VA_GPIO + 0x00, /* GPA0 */
++ S3C24XX_VA_GPIO + 0x20, /* GPA1 */
++ S3C24XX_VA_GPIO + 0x40, /* GPB */
++ S3C24XX_VA_GPIO + 0x60, /* GPC */
++ S3C24XX_VA_GPIO + 0x80, /* GPD */
++ S3C24XX_VA_GPIO + 0xA0, /* GPE0 */
++ S3C24XX_VA_GPIO + 0xC0, /* GPE1 */
++ S3C24XX_VA_GPIO + 0xE0, /* GPF0 */
++ S3C24XX_VA_GPIO + 0x100, /* GPF1 */
++ S3C24XX_VA_GPIO + 0x120, /* GPF2 */
++ S3C24XX_VA_GPIO + 0x140, /* GPF3 */
++ S3C24XX_VA_GPIO + 0x160, /* GPG0 */
++ S3C24XX_VA_GPIO + 0x180, /* GPG1 */
++ S3C24XX_VA_GPIO + 0x1A0, /* GPG2 */
++ S3C24XX_VA_GPIO + 0x1C0, /* GPG3 */
++ S3C24XX_VA_GPIO + 0xC00, /* GPH0 */
++ S3C24XX_VA_GPIO + 0xC20, /* GPH1 */
++ S3C24XX_VA_GPIO + 0xC40, /* GPH1 */
++ S3C24XX_VA_GPIO + 0xC60, /* GPH1 */
++ S3C24XX_VA_GPIO + 0x1E0, /* GPI */
++ S3C24XX_VA_GPIO + 0x200, /* GPJ0 */
++ S3C24XX_VA_GPIO + 0x220, /* GPJ1 */
++ S3C24XX_VA_GPIO + 0x240, /* GPJ2 */
++ S3C24XX_VA_GPIO + 0x260, /* GPJ3 */
++ S3C24XX_VA_GPIO + 0x280, /* GPJ4 */
++ S3C24XX_VA_GPIO + 0x2A0, /* GPK0 */
++ S3C24XX_VA_GPIO + 0x2C0, /* GPK1 */
++ S3C24XX_VA_GPIO + 0x2E0, /* GPK2 */
++ S3C24XX_VA_GPIO + 0x300, /* GPK3 */
++ S3C24XX_VA_GPIO + 0x320, /* MP0_0 */
++ S3C24XX_VA_GPIO + 0x340, /* MP0_1 */
++ S3C24XX_VA_GPIO + 0x360, /* MP0_2 */
++ S3C24XX_VA_GPIO + 0x380, /* MP0_3 */
++ S3C24XX_VA_GPIO + 0x3A0, /* MP0_4 */
++
++ /* followings do not have con register */
++ S3C24XX_VA_GPIO + 0x3C8, /* MP1_0 */
++ S3C24XX_VA_GPIO + 0x3E8, /* MP1_1 */
++ S3C24XX_VA_GPIO + 0x408, /* MP1_2 */
++ S3C24XX_VA_GPIO + 0x428, /* MP1_3 */
++ S3C24XX_VA_GPIO + 0x448, /* MP1_4 */
++ S3C24XX_VA_GPIO + 0x468, /* MP1_5 */
++ S3C24XX_VA_GPIO + 0x488, /* MP1_6 */
++ S3C24XX_VA_GPIO + 0x4A8, /* MP1_7 */
++ S3C24XX_VA_GPIO + 0x4C8, /* MP1_8 */
++ S3C24XX_VA_GPIO + 0x4E8, /* ETC0 */
++ S3C24XX_VA_GPIO + 0x508, /* ETC1 */
++ S3C24XX_VA_GPIO + 0x528, /* ETC2 */
++ S3C24XX_VA_GPIO + 0x548, /* ETC3 */
++ S3C24XX_VA_GPIO + 0x568, /* ETC4 */
++};
++
++void s5p_gpio_cfgpin(unsigned int pin, unsigned int function)
++{
++ void __iomem *base = gpio_base_offset[S5P_GPIO_BASE(pin)];
++ unsigned long offs = S5P_GPIO_OFFSET(pin) * 4;
++ unsigned long con, flags;
++
++ local_irq_save(flags);
++
++ con = __raw_readl(base);
++ con &= ~(0xf << offs);
++ con |= (function << offs);
++ __raw_writel(con, base);
++
++ local_irq_restore(flags);
++}
++
++EXPORT_SYMBOL(s5p_gpio_cfgpin);
++
++unsigned int s5p_gpio_getcfg(unsigned int pin)
++{
++ void __iomem *base = gpio_base_offset[S5P_GPIO_BASE(pin)];
++ unsigned long mask;
++
++ mask = 0xf << (S5P_GPIO_OFFSET(pin) * 4);
++
++ return __raw_readl(base) & mask;
++}
++
++EXPORT_SYMBOL(s5p_gpio_getcfg);
++
++void s5p_gpio_setpin(unsigned int pin, unsigned int to)
++{
++ void __iomem *base = gpio_base_offset[S5P_GPIO_BASE(pin)];
++ unsigned long offs = S5P_GPIO_OFFSET(pin);
++ unsigned long dat, flags;
++
++ local_irq_save(flags);
++
++ dat = __raw_readl(base + 0x4);
++ dat &= ~(0x1 << offs);
++ dat |= (to << offs);
++ __raw_writel(dat, base + 0x4);
++
++ local_irq_restore(flags);
++}
++
++EXPORT_SYMBOL(s5p_gpio_setpin);
++
++unsigned int s5p_gpio_getpin(unsigned int pin)
++{
++ void __iomem *base = gpio_base_offset[S5P_GPIO_BASE(pin)];
++ unsigned long offs = S5P_GPIO_OFFSET(pin);
++
++ return __raw_readl(base + 0x4) & (0x1 << offs);
++}
++
++EXPORT_SYMBOL(s5p_gpio_getpin);
++
++void s5p_gpio_pullup(unsigned int pin, unsigned int to)
++{
++ void __iomem *base = gpio_base_offset[S5P_GPIO_BASE(pin)];
++ unsigned long offs = S5P_GPIO_OFFSET(pin) * 2;
++ unsigned long up, mask, flags;
++
++ mask = 0x3 << offs;
++
++ local_irq_save(flags);
++
++ up = __raw_readl(base + 0x8);
++ up &= ~mask;
++ up |= (to << offs);
++ __raw_writel(up, base + 0x8);
++
++ local_irq_restore(flags);
++}
++
++EXPORT_SYMBOL(s5p_gpio_pullup);
++
++void s5p_gpio_drv(unsigned int pin, unsigned int to)
++{
++ void __iomem *base = gpio_base_offset[S5P_GPIO_BASE(pin)];
++ unsigned long offs = S5P_GPIO_OFFSET(pin) * 2;
++ unsigned long up, mask, flags;
++
++ mask = 0x3 << offs;
++
++ local_irq_save(flags);
++
++ up = __raw_readl(base + 0xc);
++ up &= ~mask;
++ up |= (to << offs);
++ __raw_writel(up, base + 0xc);
++
++ local_irq_restore(flags);
++}
++
++EXPORT_SYMBOL(s5p_gpio_drv);
++
++void s5p_gpio_pdn_con(unsigned int pin, unsigned int to)
++{
++ void __iomem *base = gpio_base_offset[S5P_GPIO_BASE(pin)];
++ unsigned long offs = S5P_GPIO_OFFSET(pin) * 2;
++ unsigned long con, mask, flags;
++
++ mask = 0x3 << offs;
++
++ local_irq_save(flags);
++
++ con = __raw_readl(base + 0x10);
++ con &= ~mask;
++ con |= (to << offs);
++ __raw_writel(con, base + 0x10);
++
++ local_irq_restore(flags);
++}
++
++EXPORT_SYMBOL(s5p_gpio_pdn_con);
++
++void s5p_gpio_pdn_pullup(unsigned int pin, unsigned int to)
++{
++ void __iomem *base = gpio_base_offset[S5P_GPIO_BASE(pin)];
++ unsigned long offs = S5P_GPIO_OFFSET(pin) * 2;
++ unsigned long up, mask, flags;
++
++ mask = 0x3 << offs;
++
++ local_irq_save(flags);
++
++ up = __raw_readl(base + 0x14);
++ up &= ~mask;
++ up |= (to << offs);
++ __raw_writel(up, base + 0x14);
++
++ local_irq_restore(flags);
++}
++
++EXPORT_SYMBOL(s5p_gpio_pdn_pullup);
++
++void s5p_gpio_eint_cfg(unsigned int reg, unsigned int num, unsigned int to)
++{
++ unsigned long con, flags;
++
++ local_irq_save(flags);
++
++ con = __raw_readl(reg);
++ con &= ~(0x7 << (num * 4));
++ con |= (to << (num * 4));
++ __raw_writel(con, reg);
++
++ local_irq_restore(flags);
++}
++
++EXPORT_SYMBOL(s5p_gpio_eint_cfg);
++
+diff --git a/arch/arm/plat-s5pc1xx/irq-pl192.c b/arch/arm/plat-s5pc1xx/irq-pl192.c
+new file mode 100644
+index 0000000..42dd90e
+--- /dev/null
++++ b/arch/arm/plat-s5pc1xx/irq-pl192.c
+@@ -0,0 +1,642 @@
++/* linux/arch/arm/mach-s3c64xx/irq-pl192.c
++ *
++ *
++ * S3C64XX interrupt functions.
++ * Added by JaeCheol Lee(jc.lee@samsung.com)
++ *
++ */
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/interrupt.h>
++#include <linux/ioport.h>
++#include <linux/ptrace.h>
++#include <linux/sysdev.h>
++
++#include <asm/hardware.h>
++#include <asm/irq.h>
++#include <asm/io.h>
++
++#include <asm/mach/irq.h>
++
++#include <asm/arch/gpio.h>
++#include <asm/arch/regs-irq.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-s3c-clock.h>
++#include <asm/plat-s3c24xx/cpu.h>
++#include <asm/plat-s3c24xx/pm.h>
++
++#define irqdbf(x...)
++#define irqdbf2(x...)
++
++
++/* "irqno" interrupt acked */
++static inline void
++s3c_irq_ack (unsigned int irqno)
++{
++ if (irqno < 32) {
++ __raw_writel(irqno, S3C_VIC0ADDRESS);
++ } else if (irqno < 64) {
++ __raw_writel(irqno, S3C_VIC0ADDRESS);
++ __raw_writel(irqno, S3C_VIC1ADDRESS);
++ } else {
++ /* External interrupt */
++ printk("ext irq %d\n", irqno);
++ }
++}
++
++/* "irqno" interrupt disabled */
++static inline void
++s3c_irq_mask (unsigned int irqno)
++{
++ if (irqno < 32) {
++ __raw_writel(1<<irqno, S3C_VIC0INTENCLEAR);
++ } else if (irqno < 64) {
++ __raw_writel(1<<(irqno-32), S3C_VIC1INTENCLEAR);
++ } else {
++ /* External interrupt */
++ printk("ext irq %d\n", irqno);
++ }
++}
++
++/* "irqno" interrupt disabled and acked */
++static inline void
++s3c_irq_maskack (unsigned int irqno)
++{
++ if (irqno < 32) {
++ __raw_writel(1<<irqno, S3C_VIC0INTENCLEAR);
++ __raw_writel(irqno, S3C_VIC0ADDRESS);
++ } else if (irqno < 64) {
++ __raw_writel(1<<(irqno-32), S3C_VIC1INTENCLEAR);
++ /* XXX: can explain why this code is here by scsuh */
++ __raw_writel(irqno, S3C_VIC0ADDRESS);
++ __raw_writel(irqno, S3C_VIC1ADDRESS);
++ } else {
++ /* External interrupt */
++ printk("ext irq %d\n", irqno);
++ }
++}
++
++/* "irqno" interrupt enabled */
++static inline void
++s3c_irq_unmask (unsigned int irqno)
++{
++ if (irqno < 32) {
++ __raw_writel(1<<irqno, S3C_VIC0INTENABLE);
++ } else if (irqno < 64) {
++ __raw_writel(1<<(irqno-32), S3C_VIC1INTENABLE);
++ } else {
++ /* External Interrupt */
++ printk("ext irq %d\n", irqno);
++ }
++}
++
++static inline void
++s3c_irq_unmaskack(unsigned int irqno)
++{
++ unsigned long unmask;
++
++ /* It is common for all interrupt sources */
++ __raw_writel(1, S3C_VIC0ADDRESS);
++
++ if (irqno < 32) {
++ unmask = __raw_readl(S3C_VIC0INTENABLE);
++ unmask |= (1UL << irqno);
++ __raw_writel(unmask, S3C_VIC0INTENABLE);
++ } else if (irqno < 64) {
++ unmask = __raw_readl(S3C_VIC1INTENABLE);
++ unmask |= (1UL << (irqno - 32));
++ __raw_writel(unmask, S3C_VIC1INTENABLE);
++ __raw_writel(1, S3C_VIC1ADDRESS);
++ } else {
++ /* External Interrupt */
++ printk("ext irq %d\n", irqno);
++
++ }
++}
++
++static int
++s3c_irq_wake(unsigned int irqno, unsigned int flag)
++{
++#if 0
++ unsigned int pwr_cfg,bit_position;
++ pwr_cfg = __raw_readl(S3C_PWR_CFG);
++
++ switch(irqno) {
++ case IRQ_RTC_TIC:
++ bit_position = 11;
++ break;
++ case IRQ_TC:
++ bit_position = 12;
++ break;
++ case IRQ_RTC_ALARM:
++ bit_position = 10;
++ break;
++ case IRQ_KEYPAD:
++ bit_position = 8;
++ break;
++ default:
++ printk("irq %d : Not supporting wakeup \n", irqno);
++ return -1;
++ }
++
++ if(flag) {
++ pwr_cfg &=~(1 << bit_position);
++ } else {
++ pwr_cfg |= (1 << bit_position);
++ }
++ __raw_writel(pwr_cfg, S3C_PWR_CFG);
++#endif
++
++ return 0;
++}
++
++//static struct irqchip s3c_irq_level_chip = {
++static struct irq_chip s3c_irq_level_chip = {
++ .ack = s3c_irq_maskack,
++ .mask = s3c_irq_mask,
++ .unmask = s3c_irq_unmask,
++ .set_wake = s3c_irq_wake
++};
++
++#if 0 /* XXX: when you want to use it, unmask it. by scsuh */
++static struct irqchip s3c_irq_chip = {
++ .ack = s3c_irq_mask,
++ .mask = s3c_irq_mask,
++ .unmask = s3c_irq_unmask,
++ .set_wake = s3c_irq_wake
++};
++#endif
++
++static inline void
++s3c_irqext_mask(unsigned int irqno)
++{
++ unsigned long gpjcon; // Workaround
++ unsigned long mask;
++
++ if (irqno >= 64) {
++ gpjcon = __raw_readl(S3C_GPJCON);
++ irqno -= 64;
++ mask = __raw_readl(S3C_EINTMASK);
++ mask |= (1UL << irqno);
++ __raw_writel(mask, S3C_EINTMASK);
++ __raw_writel(gpjcon, S3C_GPJCON);
++ } else {
++ printk("Invalid ext irq %d\n", irqno);
++ }
++}
++
++static inline void
++s3c_irqext_maskack(unsigned int irqno)
++{
++ s3c_irqext_mask(irqno);
++#if 0
++ if (irqno <= IRQ_EINT3) {
++ s3c_irq_mask(IRQ_EINT0_3);
++ } else if (irqno <= IRQ_EINT11) {
++ s3c_irq_mask(IRQ_EINT4_11);
++ } else if (irqno <= IRQ_EINT19) {
++ s3c_irq_mask(IRQ_EINT12_19);
++ } else if (irqno <= IRQ_EINT27) {
++ s3c_irq_mask(IRQ_EINT20_27);
++ } else if (irqno > IRQ_EINT27) {
++ panic("Wrong IRQ number %d \n ", irqno);
++ }
++#endif
++
++}
++
++static inline void
++s3c_irqext_unmaskack(unsigned int irqno)
++{
++#if 0
++ unsigned long mask;
++
++ if (irqno <= IRQ_EINT3) {
++ s3c_irq_unmaskack(IRQ_EINT0_3);
++ } else if (irqno <= IRQ_EINT11) {
++ s3c_irq_unmaskack(IRQ_EINT4_11);
++ } else if (irqno <= IRQ_EINT19) {
++ s3c_irq_unmaskack(IRQ_EINT12_19);
++ } else if (irqno <= IRQ_EINT27) {
++ s3c_irq_unmaskack(IRQ_EINT20_27);
++ }
++ if (irqno >= 64) {
++ irqno -= 64;
++ __raw_writel(1UL << irqno, S3C_EINTPEND);
++ mask = __raw_readl(S3C_EINTMASK);
++ mask &= ~(1UL << irqno);
++ __raw_writel(mask, S3C_EINTMASK);
++ } else {
++ printk("Invalid ext irq %d\n", irqno);
++ }
++#endif
++}
++
++
++static int
++s3c_irqext_type(unsigned int irq, unsigned int type)
++{
++
++ unsigned long newvalue = 0;
++
++
++ /* Set the external interrupt to pointed trigger type */
++ switch (type) {
++ case IRQT_NOEDGE:
++ printk(KERN_WARNING "No edge setting!\n");
++ break;
++
++ case IRQT_RISING:
++ newvalue = S3C_EXTINT_RISEEDGE;
++ break;
++
++ case IRQT_FALLING:
++ newvalue = S3C_EXTINT_FALLEDGE;
++ break;
++
++ case IRQT_BOTHEDGE:
++ newvalue = S3C_EXTINT_BOTHEDGE;
++ break;
++
++ case IRQT_LOW:
++ newvalue = S3C_EXTINT_LOWLEV;
++ break;
++
++ case IRQT_HIGH:
++ newvalue = S3C_EXTINT_HILEV;
++ break;
++
++ default:
++ printk(KERN_ERR "No such irq type %d", type);
++ return -1;
++ }
++
++ switch (irq) {
++ case IRQ_EINT9:
++ gpio_set_pin(S3C_GPN9, S3C_GPN9_EXTINT9);
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 16)) |
++ (newvalue << 16), S3C_EINTCON0);
++ break;
++
++ case IRQ_EINT10:
++ gpio_set_pin(S3C_GPN10, S3C_GPN10_EXTINT10);
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 20)) |
++ (newvalue << 20), S3C_EINTCON0);
++ break;
++
++ case IRQ_EINT11:
++ gpio_set_pin(S3C_GPN11, S3C_GPN11_EXTINT11);
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 20)) |
++ (newvalue << 20), S3C_EINTCON0);
++ break;
++ case IRQ_EINT12:
++ gpio_set_pin(S3C_GPN12, S3C_GPN12_EXTINT12);
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 24)) |
++ (newvalue << 24), S3C_EINTCON0);
++ break;
++
++ case IRQ_EINT13:
++ gpio_set_pin(S3C_GPN13, S3C_GPN13_EXTINT13);
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 24)) |
++ (newvalue << 24), S3C_EINTCON0);
++ break;
++
++ case IRQ_EINT14:
++ gpio_set_pin(S3C_GPN14, S3C_GPN14_EXTINT14);
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 28)) |
++ (newvalue << 28), S3C_EINTCON0);
++ break;
++
++ case IRQ_EINT15:
++ gpio_set_pin(S3C_GPN15, S3C_GPN15_EXTINT15);
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 28)) |
++ (newvalue << 28), S3C_EINTCON0);
++ break;
++ default:
++ printk(KERN_ERR
++ "s3c_irqext_type : Only support EINT9,10,11,12,13,14,15 interrupt.\n");
++ break;
++
++ }
++
++ return 0;
++}
++
++static int s3c_irqext_wake(unsigned int irqno, unsigned int flag)
++{
++#if 0
++ unsigned int eint_mask;
++
++ if(irqno < IRQ_EINT0)
++ printk(KERN_ERR "Check external wake-up source\n");
++
++ eint_mask = __raw_readl(S3C_EINT_MASK);
++
++ if(flag) {
++ eint_mask &= ~(1 << (irqno - IRQ_EINT0));
++ } else {
++ eint_mask |= (1 << (irqno - IRQ_EINT0));
++ }
++
++ __raw_writel(eint_mask, S3C_EINT_MASK);
++#endif
++ return 0;
++}
++
++//static struct irqchip s3c_irqext_chip = {
++static struct irq_chip s3c_irqext_chip = {
++ .mask = s3c_irqext_mask,
++ .unmask = s3c_irqext_unmaskack,
++ .ack = s3c_irqext_maskack,
++ .set_type = s3c_irqext_type,
++ .set_wake = s3c_irqext_wake
++};
++
++
++/* irq demux for EINT0_3 */
++static inline void
++s3c_irq_demux_eint0_3(unsigned int irq, struct irq_desc *desc)
++{
++ unsigned int eintpend, eintmsk;
++ unsigned int irqnr = IRQ_EINT0;
++ unsigned char interruptPending = 0, count = 0;
++ struct irq_desc *mydesc;
++
++ /* read the current pending interrupts, and the mask
++ * for what it is available */
++ eintpend = __raw_readl(S3C_EINTPEND);
++ eintmsk = __raw_readl(S3C_EINTMASK);
++
++ eintpend &= ~eintmsk;
++
++ interruptPending = (eintpend & 0xf);
++ while (interruptPending != 0) {
++ if (interruptPending & 0x1) {
++ mydesc = irq_desc + (irqnr + count);
++ //mydesc->handle((irqnr + count), mydesc, regs);
++ desc_handle_irq((irqnr + count), mydesc);
++ }
++ interruptPending >>= 1;
++ count++;
++ }
++
++}
++
++/* irq demux for EINT4_11 */
++static void
++s3c_irq_demux_eint4_11(unsigned int irq, struct irq_desc *desc)
++{
++ unsigned int eintpend, eintmsk;
++ unsigned int irqnr = IRQ_EINT4;
++ unsigned char interruptPending = 0, count = 0;
++ struct irq_desc *mydesc;
++
++ /* read the current pending interrupts, and the mask
++ * for what it is available */
++ eintpend = __raw_readl(S3C_EINTPEND);
++ eintmsk = __raw_readl(S3C_EINTMASK);
++
++ eintpend &= ~eintmsk;
++
++ interruptPending = ((eintpend >> 4) & 0xff);
++ while (interruptPending != 0) {
++ if (interruptPending & 0x1) {
++ mydesc = irq_desc + (irqnr + count);
++ //mydesc->handle((irqnr + count), mydesc, regs);
++ desc_handle_irq((irqnr + count), mydesc);
++ }
++ interruptPending >>= 1;
++ count++;
++ }
++}
++
++/* irq demux for EINT12_19 */
++static void
++s3c_irq_demux_eint12_19(unsigned int irq, struct irq_desc *desc)
++{
++ unsigned int eintpend, eintmsk;
++ unsigned int irqnr = IRQ_EINT12;
++ unsigned char interruptPending = 0, count = 0;
++ struct irq_desc *mydesc;
++
++ /* read the current pending interrupts, and the mask
++ * for what it is available */
++ eintpend = __raw_readl(S3C_EINTPEND);
++ eintmsk = __raw_readl(S3C_EINTMASK);
++
++ eintpend &= ~eintmsk;
++
++ interruptPending = ((eintpend >> 12) & 0xff);
++ while (interruptPending != 0) {
++ if (interruptPending & 0x1) {
++ mydesc = irq_desc + (irqnr + count);
++ //mydesc->handle((irqnr + count), mydesc, regs);
++ desc_handle_irq((irqnr + count), mydesc);
++ }
++ interruptPending >>= 1;
++ count++;
++ }
++
++}
++
++/* irq demux for EINT20_27 */
++static void
++s3c_irq_demux_eint20_27 (unsigned int irq, struct irq_desc *desc)
++{
++#if 0
++ unsigned int eintpend, eintmsk;
++ unsigned int irqnr = IRQ_EINT20;
++ unsigned char interruptPending = 0, count = 0;
++ struct irq_desc *mydesc;
++
++ /* read the current pending interrupts, and the mask
++ * for what it is available */
++ eintpend = __raw_readl(S3C_EINTPEND);
++ eintmsk = __raw_readl(S3C_EINTMASK);
++
++ eintpend &= ~eintmsk;
++
++ interruptPending = ((eintpend >> 20) & 0xff);
++ while (interruptPending != 0) {
++ if (interruptPending & 0x1) {
++ mydesc = irq_desc + (irqnr + count);
++ //mydesc->handle((irqnr + count), mydesc, regs);
++ desc_handle_irq((irqnr + count), mydesc);
++ }
++ interruptPending >>= 1;
++ count++;
++ }
++#endif
++}
++
++#ifdef CONFIG_PM
++
++static struct sleep_save irq_save[] = {
++ SAVE_ITEM(S3C_VIC0INTSELECT),
++ SAVE_ITEM(S3C_VIC1INTSELECT),
++ SAVE_ITEM(S3C_VIC0INTENABLE),
++ SAVE_ITEM(S3C_VIC1INTENABLE),
++ SAVE_ITEM(S3C_VIC0SOFTINT),
++ SAVE_ITEM(S3C_VIC1SOFTINT),
++};
++
++static struct sleep_save extirq_save[] = {
++ SAVE_ITEM(S3C_EINTCON0),
++ SAVE_ITEM(S3C_EINTCON1),
++ SAVE_ITEM(S3C_EINTFLTCON0),
++ SAVE_ITEM(S3C_EINTFLTCON1),
++ SAVE_ITEM(S3C_EINTFLTCON2),
++ SAVE_ITEM(S3C_EINTFLTCON3),
++ SAVE_ITEM(S3C_EINTMASK),
++ SAVE_ITEM(S3C_EINT12CON),
++ SAVE_ITEM(S3C_EINT34CON),
++ SAVE_ITEM(S3C_EINT56CON),
++ SAVE_ITEM(S3C_EINT78CON),
++ SAVE_ITEM(S3C_EINT9CON),
++ SAVE_ITEM(S3C_EINT12FLTCON),
++ SAVE_ITEM(S3C_EINT34FLTCON),
++ SAVE_ITEM(S3C_EINT56FLTCON),
++ SAVE_ITEM(S3C_EINT78FLTCON),
++ SAVE_ITEM(S3C_EINT9FLTCON),
++ SAVE_ITEM(S3C_EINT12MASK),
++ SAVE_ITEM(S3C_EINT34MASK),
++ SAVE_ITEM(S3C_EINT56MASK),
++ SAVE_ITEM(S3C_EINT78MASK),
++ SAVE_ITEM(S3C_EINT9MASK),
++ SAVE_ITEM(S3C_EINT34FLTCON),
++ SAVE_ITEM(S3C_EINT56FLTCON),
++ SAVE_ITEM(S3C_EINT78FLTCON),
++ SAVE_ITEM(S3C_EINT9FLTCON),
++};
++
++int s3c24xx_irq_suspend(struct sys_device *dev, pm_message_t state)
++{
++ s3c2410_pm_do_save(extirq_save, ARRAY_SIZE(extirq_save));
++ s3c2410_pm_do_save(irq_save, ARRAY_SIZE(irq_save));
++ return 0;
++}
++
++int s3c24xx_irq_resume(struct sys_device *dev)
++{
++#if 0
++ int irqno;
++ int irqindex = 0;
++
++ s3c2410_pm_do_restore(extirq_save, ARRAY_SIZE(extirq_save));
++ s3c2410_pm_do_restore(irq_save, ARRAY_SIZE(irq_save));
++
++ /* For writing the IRQ number into the VICVECTADDR */
++ for (irqno = IRQ_EINT0_3; irqno <= IRQ_LCD_SYSTEM; irqno++) {
++ __raw_writel(irqno, S3C_VIC0VECTADDR0 + irqindex);
++ irqindex = irqindex + 4;
++ }
++
++ irqindex = 0;
++ for (irqno = IRQ_EINT12_19; irqno <= IRQ_ADC; irqno++) {
++ __raw_writel(irqno, S3C_VIC1VECTADDR0 + irqindex);
++ irqindex = irqindex + 4;
++ }
++#endif
++ return 0;
++}
++
++#else
++#define s3c24xx_irq_suspend NULL
++#define s3c24xx_irq_resume NULL
++#endif
++
++
++/* --------------------------------------------------
++ * s3c_init_irq
++ *
++ * Initialise s3c6400 IRQ system
++ * --------------------------------------------------
++ */
++
++void __init s3c_init_irq(void)
++{
++ int irqno;
++ int irqindex = 0;
++
++ irqdbf("s3c_init_irq: clearing interrupt status flags\n");
++
++ /* first, clear all interrupts pending... */
++
++ /* clear external interrupts */
++ __raw_writel(0xFFFFFFFF, S3C_EINTPEND);
++
++ /* clear all vector interrupts */
++ __raw_writel(0x00000000, S3C_VIC0ADDRESS);
++ __raw_writel(0x00000000, S3C_VIC1ADDRESS);
++
++
++ /* For writing the IRQ number into the VICVECTADDR */
++ for (irqno = IRQ_EINT0; irqno <= IRQ_GPIOINT; irqno++) {
++ __raw_writel(irqno, S3C_VIC0VECTADDR0 + irqindex);
++ irqindex = irqindex + 4;
++ }
++
++ irqindex = 0;
++ for (irqno = IRQ_CORTEX0; irqno <= IRQ_MIPIDSI; irqno++) {
++ __raw_writel(irqno, S3C_VIC1VECTADDR0 + irqindex);
++ irqindex = irqindex + 4;
++ }
++
++ irqindex = 0;
++ for (irqno = IRQ_LCD0; irqno <= IRQ_SDMFIQ; irqno++) {
++ __raw_writel(irqno, S3C_VIC2VECTADDR0 + irqindex);
++ irqindex = irqindex + 4;
++ }
++
++ /* register the main interrupts */
++ irqdbf("s3c_init_irq: registering S5PC1XX interrupt handlers\n");
++
++ for (irqno = IRQ_EINT0; irqno <= IRQ_SDMFIQ; irqno++) {
++#if 0
++ switch (irqno) {
++ /* deal with the special IRQs in ext (cascaded) */
++ case IRQ_EINT0_3:
++ set_irq_chained_handler(IRQ_EINT0_3, s3c_irq_demux_eint0_3);
++ break;
++
++ case IRQ_EINT4_11:
++ set_irq_chained_handler(IRQ_EINT4_11, s3c_irq_demux_eint4_11);
++ break;
++
++ case IRQ_EINT12_19:
++ set_irq_chained_handler(IRQ_EINT12_19, s3c_irq_demux_eint12_19);
++ break;
++
++ case IRQ_EINT20_27:
++ set_irq_chained_handler(IRQ_EINT20_27, s3c_irq_demux_eint20_27);
++ break;
++
++ default:
++ irqdbf("registering irq %d (s3c irq)\n", irqno);
++ set_irq_chip(irqno, &s3c_irq_level_chip);
++ //set_irq_handler(irqno, do_level_IRQ);
++ set_irq_handler(irqno, handle_level_irq);
++ set_irq_flags(irqno, IRQF_VALID);
++ break;
++ }
++#endif
++ irqdbf("registering irq %d (s3c irq)\n", irqno);
++ set_irq_chip(irqno, &s3c_irq_level_chip);
++ //set_irq_handler(irqno, do_level_IRQ);
++ set_irq_handler(irqno, handle_level_irq);
++ set_irq_flags(irqno, IRQF_VALID);
++
++ }
++#if 0
++ for (irqno = IRQ_EINT0; irqno <= IRQ_EINT27; irqno++) {
++ irqdbf("registering irq %d (extended s3c irq)\n", irqno);
++ set_irq_chip(irqno, &s3c_irqext_chip);
++ //set_irq_handler(irqno, do_level_IRQ);
++ set_irq_handler(irqno, handle_level_irq);
++ set_irq_flags(irqno, IRQF_VALID);
++ }
++#endif
++
++ irqdbf("s5pc100: registered interrupt handlers\n");
++}
+diff --git a/arch/arm/plat-s5pc1xx/time-s5pc1xx.c b/arch/arm/plat-s5pc1xx/time-s5pc1xx.c
+new file mode 100644
+index 0000000..02992a6
+--- /dev/null
++++ b/arch/arm/plat-s5pc1xx/time-s5pc1xx.c
+@@ -0,0 +1,392 @@
++/* linux/arch/arm/mach-s3c64xx/time.c
++ *
++ * Copyright (C) 2006 Samsung Electronics
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ */
++
++#include <linux/kernel.h>
++#include <linux/sched.h>
++#include <linux/init.h>
++#include <linux/interrupt.h>
++#include <linux/irq.h>
++#include <linux/err.h>
++#include <linux/clk.h>
++
++#include <asm/system.h>
++#include <asm/leds.h>
++#include <asm/mach-types.h>
++
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/arch/map.h>
++#include <asm/plat-s3c/regs-timer.h>
++#include <asm/arch/regs-irq.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/mach/time.h>
++
++#include <asm/plat-s3c24xx/clock.h>
++#include <asm/plat-s3c24xx/cpu.h>
++
++static unsigned long timer_startval;
++static unsigned long timer_usec_ticks;
++
++#ifdef CONFIG_NO_IDLE_HZ
++static unsigned long s3c_timer_cnt_per_tick;
++static unsigned long previous_dyn_ticks;
++static unsigned long last_dyn_ticks;
++static unsigned long sync_timer_startval;
++static unsigned long last_sync_timer_count;
++static unsigned long last_tick_count;
++#define JIFFIES_TO_HW_TICKS(nr_jiffies, timer_cnt_per_tick)\
++ ((nr_jiffies) * timer_cnt_per_tick)
++
++
++#endif
++
++//#define T32_PROBE_TEST
++
++#define TIMER_USEC_SHIFT 16
++
++/* we use the shifted arithmetic to work out the ratio of timer ticks
++ * to usecs, as often the peripheral clock is not a nice even multiple
++ * of 1MHz.
++ *
++ * shift of 14 and 15 are too low for the 12MHz, 16 seems to be ok
++ * for the current HZ value of 200 without producing overflows.
++ *
++ * Original patch by Dimitry Andric, updated by Ben Dooks
++*/
++
++#ifdef CONFIG_NO_IDLE_HZ
++
++static inline unsigned long s3c_sync_timer_read(void)
++{
++ return __raw_readl(S3C_TCNTO(3));
++}
++
++static inline void s3c_init_sync_timer(void)
++{
++ unsigned long tcon;
++ unsigned long tcfg1;
++ unsigned long tcfg0;
++
++ sync_timer_startval = 0xffffffff;
++
++ tcon = __raw_readl(S3C_TCON);
++ tcfg1 = __raw_readl(S3C_TCFG1);
++ tcfg0 = __raw_readl(S3C_TCFG0);
++
++ /* Sync timer setting */
++ tcfg1 &= ~S3C_TCFG1_MUX3_MASK;
++ tcfg1 |= S3C_TCFG1_MUX3_DIV1;
++ __raw_writel(tcfg1, S3C_TCFG1);
++
++ tcfg0 &= ~S3C_TCFG_PRESCALER1_MASK;
++ tcfg0 |= (PRESCALER) << S3C_TCFG_PRESCALER1_SHIFT;
++
++ __raw_writel(0xffffffff, S3C_TCNTB(3));
++ tcon &= ~(0xf<<16);
++ tcon |= S3C_TCON_T3RELOAD;
++ tcon |= S3C_TCON_T3MANUALUPD;
++ __raw_writel(tcon, S3C_TCON);
++
++
++}
++#endif
++
++/* timer_mask_usec_ticks
++ *
++ * given a clock and divisor, make the value to pass into timer_ticks_to_usec
++ * to scale the ticks into usecs
++*/
++
++static inline unsigned long
++timer_mask_usec_ticks(unsigned long scaler, unsigned long pclk)
++{
++ unsigned long den = pclk / 1000;
++
++ return ((1000 << TIMER_USEC_SHIFT) * scaler + (den >> 1)) / den;
++}
++
++/* timer_ticks_to_usec
++ *
++ * convert timer ticks to usec.
++*/
++
++static inline unsigned long timer_ticks_to_usec(unsigned long ticks)
++{
++ unsigned long res;
++
++ res = ticks * timer_usec_ticks;
++ res += 1 << (TIMER_USEC_SHIFT - 4); /* round up slightly */
++
++ return res >> TIMER_USEC_SHIFT;
++}
++
++/***
++ * Returns microsecond since last clock interrupt. Note that interrupts
++ * will have been disabled by do_gettimeoffset()
++ * IRQs are disabled before entering here from do_gettimeofday()
++ */
++
++static unsigned long s3c_gettimeoffset (void)
++{
++
++ unsigned long tval;
++ unsigned long tdone;
++#ifdef CONFIG_NO_IDLE_HZ
++ tval = s3c_sync_timer_read();
++ if(last_tick_count >= tval)
++ tdone = last_tick_count - tval;
++ else
++ tdone = 0xffffffff - tval + last_tick_count + 1;
++#else
++ tval = __raw_readl(S3C_TCNTO(4));
++
++ tdone = timer_startval - tval;
++#endif
++ return timer_ticks_to_usec(tdone);
++
++}
++
++static inline irqreturn_t _s3c_timer_interrupt(int irq, void *dev_id)
++{
++#ifdef CONFIG_NO_IDLE_HZ
++ unsigned long now,tmp;
++ now = s3c_sync_timer_read();
++ if(now <= last_tick_count) {
++ tmp = last_tick_count - now;
++ } else {
++ tmp = 0xffffffff - now + last_tick_count + 1;
++ }
++ while(tmp >= s3c_timer_cnt_per_tick) {
++ tmp -= s3c_timer_cnt_per_tick;
++ if(last_tick_count > s3c_timer_cnt_per_tick)
++ last_tick_count -= s3c_timer_cnt_per_tick;
++ else
++ last_tick_count = (0xffffffff - s3c_timer_cnt_per_tick + last_tick_count + 1);
++ timer_tick();
++ }
++ //printk("z=0x%x\n",__raw_readl(S3C_TCNTO(4)));
++#else
++ timer_tick();
++#endif
++ return IRQ_HANDLED;
++}
++/*
++ * IRQ handler for the timer
++ */
++static irqreturn_t
++s3c_timer_interrupt(int irq, void *dev_id)
++{
++
++
++#ifdef T32_PROBE_TEST
++ gpio_set_value(S3C_GPN14, 1);
++#endif
++ write_seqlock(&xtime_lock);
++ _s3c_timer_interrupt(irq, dev_id);
++ write_sequnlock(&xtime_lock);
++
++ __raw_writel((0x1f & __raw_readl(S3C_TINT_CSTAT)) | S3C_TINT_CSTAT_T4INT, S3C_TINT_CSTAT);
++// __raw_writel((0x1f & __raw_readl(S3C_TINT_CSTAT)) | S3C_TINT_CSTAT_T4INTEN, S3C_TINT_CSTAT);
++#ifdef T32_PROBE_TEST
++ gpio_set_value(S3C_GPN14, 0);
++#endif
++ return IRQ_HANDLED;
++}
++
++static struct irqaction s3c_timer_irq = {
++ .name = "S3C Timer Tick",
++ .flags = IRQF_DISABLED | IRQF_TIMER,
++ .handler = s3c_timer_interrupt,
++};
++
++#ifdef CONFIG_NO_IDLE_HZ
++/*
++ * Programs the next timer interrupt needed. Called when dynamic tick is
++ * enabled, and to reprogram the ticks to skip from pm_idle. Note that
++ * we can keep the timer continuous, and don't need to set it to run in
++ * one-shot mode. This is because the timer will get reprogrammed again
++ * after next interrupt.
++ */
++void s3c_timer_reprogram(unsigned long next_tick)
++{
++ unsigned long tcnt;
++#ifdef T32_PROBE_TEST
++ gpio_set_value(S3C_GPN15, 1);
++#endif
++ //printk("next_tick=%d\n",next_tick);
++ if(next_tick == 0)
++ next_tick = 1;
++ last_dyn_ticks = next_tick;
++ tcnt = JIFFIES_TO_HW_TICKS(next_tick, s3c_timer_cnt_per_tick);
++ //printk("tcnt=0x%x\n",tcnt);
++ __raw_writel((tcnt - 1), S3C_TCNTB(4));
++
++
++#ifdef T32_PROBE_TEST
++ gpio_set_value(S3C_GPN15, 0);
++#endif
++
++}
++
++static int s3c_timer_enable_dyn_tick(void)
++{
++ return 0;
++}
++
++static int s3c_timer_disable_dyn_tick(void)
++{
++ unsigned long tcnt;
++
++ last_dyn_ticks = 1;
++ tcnt = JIFFIES_TO_HW_TICKS(1, s3c_timer_cnt_per_tick);
++
++ __raw_writel((tcnt - 1), S3C_TCNTB(0));
++
++ return 0;
++}
++
++static irqreturn_t s3c_dyn_tick_handler(int irq, void *dev_id)
++{
++ //printk("dyntick irq%d\n",irq);
++ return _s3c_timer_interrupt(irq, dev_id);
++}
++
++static struct dyn_tick_timer s3c_dyn_tick_timer = {
++ .enable = s3c_timer_enable_dyn_tick,
++ .disable = s3c_timer_disable_dyn_tick,
++ .reprogram = s3c_timer_reprogram,
++ .handler = s3c_dyn_tick_handler,
++};
++#endif
++
++/*
++ * Set up timer interrupt, and return the current time in seconds.
++ *
++ * Currently we only use timer4, as it is the only timer which has no
++ * other function that can be exploited externally
++ */
++static void s3c_timer_setup (void)
++{
++ unsigned long tcon;
++ unsigned long tcnt;
++ unsigned long tcfg1;
++ unsigned long tcfg0;
++ unsigned long pclk;
++ unsigned long timerclock;
++ struct clk *clk;
++
++#ifdef T32_PROBE_TEST
++
++ gpio_direction_output(S3C_GPN14);
++ gpio_direction_output(S3C_GPN15);
++ gpio_set_value(S3C_GPN14, 0);
++ gpio_set_value(S3C_GPN15, 0);
++ /* read the current timer configuration bits */
++#endif
++
++ tcnt = 0xffffffff; /* default value for tcnt */
++
++ /* read the current timer configuration bits */
++
++ tcfg1 = __raw_readl(S3C_TCFG1);
++ tcfg0 = __raw_readl(S3C_TCFG0);
++
++ /* this is used as default if no other timer can be found */
++
++ clk = clk_get(NULL, "timers");
++ if (IS_ERR(clk))
++ panic("failed to get clock for system timer");
++
++ clk_enable(clk);
++
++ pclk = clk_get_rate(clk);
++ timerclock = (pclk / ((PRESCALER + 1)*DIVIDER));
++
++ /* configure clock tick */
++
++ timer_usec_ticks = timer_mask_usec_ticks(((PRESCALER + 1)*DIVIDER), pclk);
++
++ tcfg1 &= ~S3C_TCFG1_MUX4_MASK;
++ tcfg1 |= S3C_TCFG1_MUX4_DIV1;
++
++ tcfg0 &= ~S3C_TCFG_PRESCALER1_MASK;
++ tcfg0 |= (PRESCALER) << S3C_TCFG_PRESCALER1_SHIFT;
++
++ tcnt = timerclock / HZ;
++ /* timers reload after counting zero, so reduce the count by 1 */
++
++ tcnt--;
++
++ __raw_writel(tcfg1, S3C_TCFG1);
++ __raw_writel(tcfg0, S3C_TCFG0);
++
++ timer_startval = tcnt;
++ __raw_writel(tcnt, S3C_TCNTB(4));
++
++ /* ensure timer is stopped... */
++#ifdef CONFIG_NO_IDLE_HZ
++ s3c_timer_cnt_per_tick = (timerclock/HZ);
++ previous_dyn_ticks = 1;
++ last_dyn_ticks = 1;
++ last_sync_timer_count = 0xffffffff;
++ last_tick_count = 0xffffffff;
++ s3c_init_sync_timer();
++#endif
++ tcon = __raw_readl(S3C_TCON);
++
++ tcon &= ~(7<<20);
++ tcon |= S3C_TCON_T4RELOAD;
++ tcon |= S3C_TCON_T4MANUALUPD;
++
++ __raw_writel(tcon, S3C_TCON);
++ __raw_writel(tcnt, S3C_TCNTB(4));
++ //__raw_writel(tcnt, S3C_TCMPB(4));
++
++ printk("timer tcon=%08lx, tcnt %04lx, tcfg %08lx,%08lx, usec %08lx\n",
++ tcon, tcnt, tcfg0, tcfg1, timer_usec_ticks);
++
++ /* start the timer running */
++#ifdef CONFIG_NO_IDLE_HZ
++ tcon |= S3C_TCON_T4START|S3C_TCON_T3START;
++ tcon &= ~(S3C_TCON_T4MANUALUPD|S3C_TCON_T3MANUALUPD);
++#else
++ tcon |= S3C_TCON_T4START;
++ tcon &= ~S3C_TCON_T4MANUALUPD;
++#endif
++ __raw_writel(tcon, S3C_TCON);
++
++ /* timer4 interrupt enable */
++ __raw_writel(__raw_readl(S3C_TINT_CSTAT) | S3C_TINT_CSTAT_T4INTEN, S3C_TINT_CSTAT);
++
++}
++
++static void __init s3c_timer_init (void)
++{
++ s3c_timer_setup();
++ setup_irq(IRQ_TIMER4, &s3c_timer_irq);
++}
++
++struct sys_timer s3c_timer = {
++ .init = s3c_timer_init,
++ .offset = s3c_gettimeoffset,
++ .resume = s3c_timer_setup,
++#ifdef CONFIG_NO_IDLE_HZ
++ .dyn_tick = &s3c_dyn_tick_timer,
++#endif
++};
+diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types
+index 0a9a5e7..357382a 100644
+--- a/arch/arm/tools/mach-types
++++ b/arch/arm/tools/mach-types
+@@ -12,7 +12,7 @@
+ #
+ # http://www.arm.linux.org.uk/developer/machines/?action=new
+ #
+-# Last update: Fri May 11 19:53:41 2007
++# Last update: Wed Jul 9 02:34:54 2008
+ #
+ # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number
+ #
+@@ -266,7 +266,7 @@ stork_egg ARCH_STORK_EGG STORK_EGG 248
+ wismo SA1100_WISMO WISMO 249
+ ezlinx ARCH_EZLINX EZLINX 250
+ at91rm9200 ARCH_AT91RM9200 AT91RM9200 251
+-orion ARCH_ORION ORION 252
++adtech_orion ARCH_ADTECH_ORION ADTECH_ORION 252
+ neptune ARCH_NEPTUNE NEPTUNE 253
+ hackkit SA1100_HACKKIT HACKKIT 254
+ pxa_wins30 ARCH_PXA_WINS30 PXA_WINS30 255
+@@ -381,13 +381,13 @@ ks8695p ARCH_KS8695P KS8695P 363
+ se4000 ARCH_SE4000 SE4000 364
+ quadriceps ARCH_QUADRICEPS QUADRICEPS 365
+ bronco ARCH_BRONCO BRONCO 366
+-esl_wireless_tab ARCH_ESL_WIRELESS_TABLETESL_WIRELESS_TABLET 367
++esl_wireless_tab ARCH_ESL_WIRELESS_TAB ESL_WIRELESS_TAB 367
+ esl_sofcomp ARCH_ESL_SOFCOMP ESL_SOFCOMP 368
+ s5c7375 ARCH_S5C7375 S5C7375 369
+ spearhead ARCH_SPEARHEAD SPEARHEAD 370
+ pantera ARCH_PANTERA PANTERA 371
+ prayoglite ARCH_PRAYOGLITE PRAYOGLITE 372
+-gumstix ARCH_GUMSTIK GUMSTIK 373
++gumstix ARCH_GUMSTIX GUMSTIX 373
+ rcube ARCH_RCUBE RCUBE 374
+ rea_olv ARCH_REA_OLV REA_OLV 375
+ pxa_iphone ARCH_PXA_IPHONE PXA_IPHONE 376
+@@ -560,7 +560,6 @@ husky MACH_HUSKY HUSKY 543
+ boxer MACH_BOXER BOXER 544
+ shepherd MACH_SHEPHERD SHEPHERD 545
+ aml42800aa MACH_AML42800AA AML42800AA 546
+-ml674001 MACH_MACH_TYPE_ML674001 MACH_TYPE_ML674001 547
+ lpc2294 MACH_LPC2294 LPC2294 548
+ switchgrass MACH_SWITCHGRASS SWITCHGRASS 549
+ ens_cmu MACH_ENS_CMU ENS_CMU 550
+@@ -661,7 +660,6 @@ a9200ec MACH_A9200EC A9200EC 645
+ pnx0105 MACH_PNX0105 PNX0105 646
+ adcpoecpu MACH_ADCPOECPU ADCPOECPU 647
+ csb637 MACH_CSB637 CSB637 648
+-ml69q6203 MACH_ML69Q6203 ML69Q6203 649
+ mb9200 MACH_MB9200 MB9200 650
+ kulun MACH_KULUN KULUN 651
+ snapper MACH_SNAPPER SNAPPER 652
+@@ -749,7 +747,6 @@ anubis MACH_ANUBIS ANUBIS 734
+ ite8152 MACH_ITE8152 ITE8152 735
+ lpc3xxx MACH_LPC3XXX LPC3XXX 736
+ puppeteer MACH_PUPPETEER PUPPETEER 737
+-vt001 MACH_MACH_VADATECH MACH_VADATECH 738
+ e570 MACH_E570 E570 739
+ x50 MACH_X50 X50 740
+ recon MACH_RECON RECON 741
+@@ -840,7 +837,7 @@ ccxp270 MACH_CCXP CCXP 825
+ omap_gsample MACH_OMAP_GSAMPLE OMAP_GSAMPLE 826
+ realview_eb MACH_REALVIEW_EB REALVIEW_EB 827
+ samoa MACH_SAMOA SAMOA 828
+-t3xscale MACH_T3XSCALE T3XSCALE 829
++palmt3 MACH_PALMT3 PALMT3 829
+ i878 MACH_I878 I878 830
+ borzoi MACH_BORZOI BORZOI 831
+ gecko MACH_GECKO GECKO 832
+@@ -896,7 +893,7 @@ mio8390 MACH_MIO8390 MIO8390 881
+ omi_board MACH_OMI_BOARD OMI_BOARD 882
+ mx21civ MACH_MX21CIV MX21CIV 883
+ mahi_cdac MACH_MAHI_CDAC MAHI_CDAC 884
+-xscale_palmtx MACH_XSCALE_PALMTX XSCALE_PALMTX 885
++palmtx MACH_PALMTX PALMTX 885
+ s3c2413 MACH_S3C2413 S3C2413 887
+ samsys_ep0 MACH_SAMSYS_EP0 SAMSYS_EP0 888
+ wg302v1 MACH_WG302V1 WG302V1 889
+@@ -919,7 +916,7 @@ nxdb500 MACH_NXDB500 NXDB500 905
+ apf9328 MACH_APF9328 APF9328 906
+ omap_wipoq MACH_OMAP_WIPOQ OMAP_WIPOQ 907
+ omap_twip MACH_OMAP_TWIP OMAP_TWIP 908
+-xscale_treo650 MACH_XSCALE_PALMTREO650 XSCALE_PALMTREO650 909
++palmtreo650 MACH_PALMTREO650 PALMTREO650 909
+ acumen MACH_ACUMEN ACUMEN 910
+ xp100 MACH_XP100 XP100 911
+ fs2410 MACH_FS2410 FS2410 912
+@@ -927,8 +924,8 @@ pxa270_cerf MACH_PXA270_CERF PXA270_CERF 913
+ sq2ftlpalm MACH_SQ2FTLPALM SQ2FTLPALM 914
+ bsemserver MACH_BSEMSERVER BSEMSERVER 915
+ netclient MACH_NETCLIENT NETCLIENT 916
+-xscale_palmtt5 MACH_XSCALE_PALMTT5 XSCALE_PALMTT5 917
+-xscale_palmtc MACH_OMAP_PALMTC OMAP_PALMTC 918
++palmt5 MACH_PALMT5 PALMT5 917
++palmtc MACH_PALMTC PALMTC 918
+ omap_apollon MACH_OMAP_APOLLON OMAP_APOLLON 919
+ mxc30030evb MACH_MXC30030EVB MXC30030EVB 920
+ rea_2d MACH_REA_2D REA_2D 921
+@@ -953,7 +950,6 @@ fred_jack MACH_FRED_JACK FRED_JACK 939
+ ttg_color1 MACH_TTG_COLOR1 TTG_COLOR1 940
+ nxeb500hmi MACH_NXEB500HMI NXEB500HMI 941
+ netdcu8 MACH_NETDCU8 NETDCU8 942
+-ml675050_cpu_boa MACH_ML675050_CPU_BOA ML675050_CPU_BOA 943
+ ng_fvx538 MACH_NG_FVX538 NG_FVX538 944
+ ng_fvs338 MACH_NG_FVS338 NG_FVS338 945
+ pnx4103 MACH_PNX4103 PNX4103 946
+@@ -1148,7 +1144,7 @@ aidx270 MACH_AIDX270 AIDX270 1134
+ rema MACH_REMA REMA 1135
+ bps1000 MACH_BPS1000 BPS1000 1136
+ hw90350 MACH_HW90350 HW90350 1137
+-omap_sdp3430 MACH_OMAP_SDP3430 OMAP_SDP3430 1138
++omap_3430sdp MACH_OMAP_3430SDP OMAP_3430SDP 1138
+ bluetouch MACH_BLUETOUCH BLUETOUCH 1139
+ vstms MACH_VSTMS VSTMS 1140
+ xsbase270 MACH_XSBASE270 XSBASE270 1141
+@@ -1214,7 +1210,7 @@ osstbox MACH_OSSTBOX OSSTBOX 1203
+ kbat9261 MACH_KBAT9261 KBAT9261 1204
+ ct1100 MACH_CT1100 CT1100 1205
+ akcppxa MACH_AKCPPXA AKCPPXA 1206
+-zevio_1020 MACH_ZEVIO_1020 ZEVIO_1020 1207
++ochaya1020 MACH_OCHAYA1020 OCHAYA1020 1207
+ hitrack MACH_HITRACK HITRACK 1208
+ syme1 MACH_SYME1 SYME1 1209
+ syhl1 MACH_SYHL1 SYHL1 1210
+@@ -1222,7 +1218,6 @@ empca400 MACH_EMPCA400 EMPCA400 1211
+ em7210 MACH_EM7210 EM7210 1212
+ htchermes MACH_HTCHERMES HTCHERMES 1213
+ eti_c1 MACH_ETI_C1 ETI_C1 1214
+-mach_dep2410 MACH_MACH_DEP2410 MACH_DEP2410 1215
+ ac100 MACH_AC100 AC100 1216
+ sneetch MACH_SNEETCH SNEETCH 1217
+ studentmate MACH_STUDENTMATE STUDENTMATE 1218
+@@ -1299,7 +1294,7 @@ xp179 MACH_XP179 XP179 1290
+ h4300 MACH_H4300 H4300 1291
+ goramo_mlr MACH_GORAMO_MLR GORAMO_MLR 1292
+ mxc30020evb MACH_MXC30020EVB MXC30020EVB 1293
+-adsbitsymx MACH_ADSBITSIMX ADSBITSIMX 1294
++adsbitsyg5 MACH_ADSBITSYG5 ADSBITSYG5 1294
+ adsportalplus MACH_ADSPORTALPLUS ADSPORTALPLUS 1295
+ mmsp2plus MACH_MMSP2PLUS MMSP2PLUS 1296
+ em_x270 MACH_EM_X270 EM_X270 1297
+@@ -1367,3 +1362,455 @@ db88f5281 MACH_DB88F5281 DB88F5281 1358
+ csb726 MACH_CSB726 CSB726 1359
+ tik27 MACH_TIK27 TIK27 1360
+ mx_uc7420 MACH_MX_UC7420 MX_UC7420 1361
++rirm3 MACH_RIRM3 RIRM3 1362
++pelco_odyssey MACH_PELCO_ODYSSEY PELCO_ODYSSEY 1363
++adx_abox MACH_ADX_ABOX ADX_ABOX 1365
++adx_tpid MACH_ADX_TPID ADX_TPID 1366
++minicheck MACH_MINICHECK MINICHECK 1367
++idam MACH_IDAM IDAM 1368
++mario_mx MACH_MARIO_MX MARIO_MX 1369
++vi1888 MACH_VI1888 VI1888 1370
++zr4230 MACH_ZR4230 ZR4230 1371
++t1_ix_blue MACH_T1_IX_BLUE T1_IX_BLUE 1372
++syhq2 MACH_SYHQ2 SYHQ2 1373
++computime_r3 MACH_COMPUTIME_R3 COMPUTIME_R3 1374
++oratis MACH_ORATIS ORATIS 1375
++mikko MACH_MIKKO MIKKO 1376
++holon MACH_HOLON HOLON 1377
++olip8 MACH_OLIP8 OLIP8 1378
++ghi270hg MACH_GHI270HG GHI270HG 1379
++davinci_dm6467_evm MACH_DAVINCI_DM6467_EVM DAVINCI_DM6467_EVM 1380
++davinci_dm355_evm MACH_DAVINCI_DM350_EVM DAVINCI_DM350_EVM 1381
++blackriver MACH_BLACKRIVER BLACKRIVER 1383
++sandgate_wp MACH_SANDGATEWP SANDGATEWP 1384
++cdotbwsg MACH_CDOTBWSG CDOTBWSG 1385
++quark963 MACH_QUARK963 QUARK963 1386
++csb735 MACH_CSB735 CSB735 1387
++littleton MACH_LITTLETON LITTLETON 1388
++mio_p550 MACH_MIO_P550 MIO_P550 1389
++motion2440 MACH_MOTION2440 MOTION2440 1390
++imm500 MACH_IMM500 IMM500 1391
++homematic MACH_HOMEMATIC HOMEMATIC 1392
++ermine MACH_ERMINE ERMINE 1393
++kb9202b MACH_KB9202B KB9202B 1394
++hs1xx MACH_HS1XX HS1XX 1395
++studentmate2440 MACH_STUDENTMATE2440 STUDENTMATE2440 1396
++arvoo_l1_z1 MACH_ARVOO_L1_Z1 ARVOO_L1_Z1 1397
++dep2410k MACH_DEP2410K DEP2410K 1398
++xxsvideo MACH_XXSVIDEO XXSVIDEO 1399
++im4004 MACH_IM4004 IM4004 1400
++ochaya1050 MACH_OCHAYA1050 OCHAYA1050 1401
++lep9261 MACH_LEP9261 LEP9261 1402
++svenmeb MACH_SVENMEB SVENMEB 1403
++fortunet2ne MACH_FORTUNET2NE FORTUNET2NE 1404
++nxhx MACH_NXHX NXHX 1406
++realview_pb11mp MACH_REALVIEW_PB11MP REALVIEW_PB11MP 1407
++ids500 MACH_IDS500 IDS500 1408
++ors_n725 MACH_ORS_N725 ORS_N725 1409
++hsdarm MACH_HSDARM HSDARM 1410
++sha_pon003 MACH_SHA_PON003 SHA_PON003 1411
++sha_pon004 MACH_SHA_PON004 SHA_PON004 1412
++sha_pon007 MACH_SHA_PON007 SHA_PON007 1413
++sha_pon011 MACH_SHA_PON011 SHA_PON011 1414
++h6042 MACH_H6042 H6042 1415
++h6043 MACH_H6043 H6043 1416
++looxc550 MACH_LOOXC550 LOOXC550 1417
++cnty_titan MACH_CNTY_TITAN CNTY_TITAN 1418
++app3xx MACH_APP3XX APP3XX 1419
++sideoatsgrama MACH_SIDEOATSGRAMA SIDEOATSGRAMA 1420
++palmtreo700p MACH_PALMTREO700P PALMTREO700P 1421
++palmtreo700w MACH_PALMTREO700W PALMTREO700W 1422
++palmtreo750 MACH_PALMTREO750 PALMTREO750 1423
++palmtreo755p MACH_PALMTREO755P PALMTREO755P 1424
++ezreganut9200 MACH_EZREGANUT9200 EZREGANUT9200 1425
++sarge MACH_SARGE SARGE 1426
++a696 MACH_A696 A696 1427
++turtle1916 MACH_TURTLE TURTLE 1428
++mx27_3ds MACH_MX27_3DS MX27_3DS 1430
++bishop MACH_BISHOP BISHOP 1431
++pxx MACH_PXX PXX 1432
++redwood MACH_REDWOOD REDWOOD 1433
++omap_2430dlp MACH_OMAP_2430DLP OMAP_2430DLP 1436
++omap_2430osk MACH_OMAP_2430OSK OMAP_2430OSK 1437
++sardine MACH_SARDINE SARDINE 1438
++halibut MACH_HALIBUT HALIBUT 1439
++trout MACH_TROUT TROUT 1440
++goldfish MACH_GOLDFISH GOLDFISH 1441
++gesbc2440 MACH_GESBC2440 GESBC2440 1442
++nomad MACH_NOMAD NOMAD 1443
++rosalind MACH_ROSALIND ROSALIND 1444
++cc9p9215 MACH_CC9P9215 CC9P9215 1445
++cc9p9210 MACH_CC9P9210 CC9P9210 1446
++cc9p9215js MACH_CC9P9215JS CC9P9215JS 1447
++cc9p9210js MACH_CC9P9210JS CC9P9210JS 1448
++nasffe MACH_NASFFE NASFFE 1449
++tn2x0bd MACH_TN2X0BD TN2X0BD 1450
++gwmpxa MACH_GWMPXA GWMPXA 1451
++exyplus MACH_EXYPLUS EXYPLUS 1452
++jadoo21 MACH_JADOO21 JADOO21 1453
++looxn560 MACH_LOOXN560 LOOXN560 1454
++bonsai MACH_BONSAI BONSAI 1455
++adsmilgato MACH_ADSMILGATO ADSMILGATO 1456
++gba MACH_GBA GBA 1457
++h6044 MACH_H6044 H6044 1458
++app MACH_APP APP 1459
++tct_hammer MACH_TCT_HAMMER TCT_HAMMER 1460
++herald MACH_HERMES HERMES 1461
++artemis MACH_ARTEMIS ARTEMIS 1462
++htctitan MACH_HTCTITAN HTCTITAN 1463
++qranium MACH_QRANIUM QRANIUM 1464
++adx_wsc2 MACH_ADX_WSC2 ADX_WSC2 1465
++adx_medcom MACH_ADX_MEDCOM ADX_MEDCOM 1466
++bboard MACH_BBOARD BBOARD 1467
++cambria MACH_CAMBRIA CAMBRIA 1468
++mt7xxx MACH_MT7XXX MT7XXX 1469
++matrix512 MACH_MATRIX512 MATRIX512 1470
++matrix522 MACH_MATRIX522 MATRIX522 1471
++ipac5010 MACH_IPAC5010 IPAC5010 1472
++sakura MACH_SAKURA SAKURA 1473
++grocx MACH_GROCX GROCX 1474
++pm9263 MACH_PM9263 PM9263 1475
++sim_one MACH_SIM_ONE SIM_ONE 1476
++acq132 MACH_ACQ132 ACQ132 1477
++datr MACH_DATR DATR 1478
++actux1 MACH_ACTUX1 ACTUX1 1479
++actux2 MACH_ACTUX2 ACTUX2 1480
++actux3 MACH_ACTUX3 ACTUX3 1481
++flexit MACH_FLEXIT FLEXIT 1482
++bh2x0bd MACH_BH2X0BD BH2X0BD 1483
++atb2002 MACH_ATB2002 ATB2002 1484
++xenon MACH_XENON XENON 1485
++fm607 MACH_FM607 FM607 1486
++matrix514 MACH_MATRIX514 MATRIX514 1487
++matrix524 MACH_MATRIX524 MATRIX524 1488
++inpod MACH_INPOD INPOD 1489
++jive MACH_JIVE JIVE 1490
++tll_mx21 MACH_TLL_MX21 TLL_MX21 1491
++sbc2800 MACH_SBC2800 SBC2800 1492
++cc7ucamry MACH_CC7UCAMRY CC7UCAMRY 1493
++ubisys_p9_sc15 MACH_UBISYS_P9_SC15 UBISYS_P9_SC15 1494
++ubisys_p9_ssc2d10 MACH_UBISYS_P9_SSC2D10 UBISYS_P9_SSC2D10 1495
++ubisys_p9_rcu3 MACH_UBISYS_P9_RCU3 UBISYS_P9_RCU3 1496
++aml_m8000 MACH_AML_M8000 AML_M8000 1497
++snapper_270 MACH_SNAPPER_270 SNAPPER_270 1498
++omap_bbx MACH_OMAP_BBX OMAP_BBX 1499
++ucn2410 MACH_UCN2410 UCN2410 1500
++sam9_l9260 MACH_SAM9_L9260 SAM9_L9260 1501
++eti_c2 MACH_ETI_C2 ETI_C2 1502
++avalanche MACH_AVALANCHE AVALANCHE 1503
++realview_pb1176 MACH_REALVIEW_PB1176 REALVIEW_PB1176 1504
++dp1500 MACH_DP1500 DP1500 1505
++apple_iphone MACH_APPLE_IPHONE APPLE_IPHONE 1506
++yl9200 MACH_YL9200 YL9200 1507
++rd88f5182 MACH_RD88F5182 RD88F5182 1508
++kurobox_pro MACH_KUROBOX_PRO KUROBOX_PRO 1509
++se_poet MACH_SE_POET SE_POET 1510
++mx31_3ds MACH_MX31_3DS MX31_3DS 1511
++r270 MACH_R270 R270 1512
++armour21 MACH_ARMOUR21 ARMOUR21 1513
++dt2 MACH_DT2 DT2 1514
++vt4 MACH_VT4 VT4 1515
++tyco320 MACH_TYCO320 TYCO320 1516
++adma MACH_ADMA ADMA 1517
++wp188 MACH_WP188 WP188 1518
++corsica MACH_CORSICA CORSICA 1519
++bigeye MACH_BIGEYE BIGEYE 1520
++tll5000 MACH_TLL5000 TLL5000 1522
++bebot MACH_BEBOT BEBOT 1523
++qong MACH_QONG QONG 1524
++tcompact MACH_TCOMPACT TCOMPACT 1525
++puma5 MACH_PUMA5 PUMA5 1526
++elara MACH_ELARA ELARA 1527
++ellington MACH_ELLINGTON ELLINGTON 1528
++xda_atom MACH_XDA_ATOM XDA_ATOM 1529
++energizer2 MACH_ENERGIZER2 ENERGIZER2 1530
++odin MACH_ODIN ODIN 1531
++actux4 MACH_ACTUX4 ACTUX4 1532
++esl_omap MACH_ESL_OMAP ESL_OMAP 1533
++omap2evm MACH_OMAP2EVM OMAP2EVM 1534
++omap3evm MACH_OMAP3EVM OMAP3EVM 1535
++adx_pcu57 MACH_ADX_PCU57 ADX_PCU57 1536
++monaco MACH_MONACO MONACO 1537
++levante MACH_LEVANTE LEVANTE 1538
++tmxipx425 MACH_TMXIPX425 TMXIPX425 1539
++leep MACH_LEEP LEEP 1540
++raad MACH_RAAD RAAD 1541
++dns323 MACH_DNS323 DNS323 1542
++ap1000 MACH_AP1000 AP1000 1543
++a9sam6432 MACH_A9SAM6432 A9SAM6432 1544
++shiny MACH_SHINY SHINY 1545
++omap3_beagle MACH_OMAP3_BEAGLE OMAP3_BEAGLE 1546
++csr_bdb2 MACH_CSR_BDB2 CSR_BDB2 1547
++nokia_n810 MACH_NOKIA_N810 NOKIA_N810 1548
++c270 MACH_C270 C270 1549
++sentry MACH_SENTRY SENTRY 1550
++pcm038 MACH_PCM038 PCM038 1551
++anc300 MACH_ANC300 ANC300 1552
++htckaiser MACH_HTCKAISER HTCKAISER 1553
++sbat100 MACH_SBAT100 SBAT100 1554
++modunorm MACH_MODUNORM MODUNORM 1555
++pelos_twarm MACH_PELOS_TWARM PELOS_TWARM 1556
++flank MACH_FLANK FLANK 1557
++sirloin MACH_SIRLOIN SIRLOIN 1558
++brisket MACH_BRISKET BRISKET 1559
++chuck MACH_CHUCK CHUCK 1560
++otter MACH_OTTER OTTER 1561
++davinci_ldk MACH_DAVINCI_LDK DAVINCI_LDK 1562
++phreedom MACH_PHREEDOM PHREEDOM 1563
++sg310 MACH_SG310 SG310 1564
++ts_x09 MACH_TS209 TS209 1565
++at91cap9adk MACH_AT91CAP9ADK AT91CAP9ADK 1566
++tion9315 MACH_TION9315 TION9315 1567
++mast MACH_MAST MAST 1568
++pfw MACH_PFW PFW 1569
++yl_p2440 MACH_YL_P2440 YL_P2440 1570
++zsbc32 MACH_ZSBC32 ZSBC32 1571
++omap_pace2 MACH_OMAP_PACE2 OMAP_PACE2 1572
++imx_pace2 MACH_IMX_PACE2 IMX_PACE2 1573
++mx31moboard MACH_MX31MOBOARD MX31MOBOARD 1574
++mx37_3ds MACH_MX37_3DS MX37_3DS 1575
++rcc MACH_RCC RCC 1576
++dmp MACH_ARM9 ARM9 1577
++vision_ep9307 MACH_VISION_EP9307 VISION_EP9307 1578
++scly1000 MACH_SCLY1000 SCLY1000 1579
++fontel_ep MACH_FONTEL_EP FONTEL_EP 1580
++voiceblue3g MACH_VOICEBLUE3G VOICEBLUE3G 1581
++tt9200 MACH_TT9200 TT9200 1582
++digi2410 MACH_DIGI2410 DIGI2410 1583
++terastation_pro2 MACH_TERASTATION_PRO2 TERASTATION_PRO2 1584
++linkstation_pro MACH_LINKSTATION_PRO LINKSTATION_PRO 1585
++motorola_a780 MACH_MOTOROLA_A780 MOTOROLA_A780 1587
++motorola_e6 MACH_MOTOROLA_E6 MOTOROLA_E6 1588
++motorola_e2 MACH_MOTOROLA_E2 MOTOROLA_E2 1589
++motorola_e680 MACH_MOTOROLA_E680 MOTOROLA_E680 1590
++ur2410 MACH_UR2410 UR2410 1591
++tas9261 MACH_TAS9261 TAS9261 1592
++davinci_hermes_hd MACH_HERMES_HD HERMES_HD 1593
++davinci_perseo_hd MACH_PERSEO_HD PERSEO_HD 1594
++stargazer2 MACH_STARGAZER2 STARGAZER2 1595
++e350 MACH_E350 E350 1596
++wpcm450 MACH_WPCM450 WPCM450 1597
++cartesio MACH_CARTESIO CARTESIO 1598
++toybox MACH_TOYBOX TOYBOX 1599
++tx27 MACH_TX27 TX27 1600
++ts409 MACH_TS409 TS409 1601
++p300 MACH_P300 P300 1602
++xdacomet MACH_XDACOMET XDACOMET 1603
++dexflex2 MACH_DEXFLEX2 DEXFLEX2 1604
++ow MACH_OW OW 1605
++armebs3 MACH_ARMEBS3 ARMEBS3 1606
++u3 MACH_U3 U3 1607
++smdk2450 MACH_SMDK2450 SMDK2450 1608
++rsi_ews MACH_RSI_EWS RSI_EWS 1609
++tnb MACH_TNB TNB 1610
++toepath MACH_TOEPATH TOEPATH 1611
++kb9263 MACH_KB9263 KB9263 1612
++mt7108 MACH_MT7108 MT7108 1613
++smtr2440 MACH_SMTR2440 SMTR2440 1614
++manao MACH_MANAO MANAO 1615
++cm_x300 MACH_CM_X300 CM_X300 1616
++gulfstream_kp MACH_GULFSTREAM_KP GULFSTREAM_KP 1617
++lanreadyfn522 MACH_LANREADYFN522 LANREADYFN522 1618
++arma37 MACH_ARMA37 ARMA37 1619
++mendel MACH_MENDEL MENDEL 1620
++pelco_iliad MACH_PELCO_ILIAD PELCO_ILIAD 1621
++unit2p MACH_UNIT2P UNIT2P 1622
++inc20otter MACH_INC20OTTER INC20OTTER 1623
++at91sam9g20ek MACH_AT91SAM9G20EK AT91SAM9G20EK 1624
++sc_ge2 MACH_STORCENTER STORCENTER 1625
++smdk6410 MACH_SMDK6410 SMDK6410 1626
++u300 MACH_U300 U300 1627
++u500 MACH_U500 U500 1628
++ds9260 MACH_DS9260 DS9260 1629
++riverrock MACH_RIVERROCK RIVERROCK 1630
++scibath MACH_SCIBATH SCIBATH 1631
++at91sam7se MACH_AT91SAM7SE512EK AT91SAM7SE512EK 1632
++wrt350n_v2 MACH_WRT350N_V2 WRT350N_V2 1633
++multimedia MACH_MULTIMEDIA MULTIMEDIA 1634
++marvin MACH_MARVIN MARVIN 1635
++x500 MACH_X500 X500 1636
++awlug4lcu MACH_AWLUG4LCU AWLUG4LCU 1637
++palermoc MACH_PALERMOC PALERMOC 1638
++omap_ldp MACH_OMAP_LDP OMAP_LDP 1639
++ip500 MACH_IP500 IP500 1640
++ase2 MACH_ASE2 ASE2 1642
++mx35evb MACH_MX35EVB MX35EVB 1643
++aml_m8050 MACH_AML_M8050 AML_M8050 1644
++mx35_3ds MACH_MX35_3DS MX35_3DS 1645
++mars MACH_MARS MARS 1646
++ntosd_644xa MACH_NTOSD_644XA NTOSD_644XA 1647
++badger MACH_BADGER BADGER 1648
++trizeps4wl MACH_TRIZEPS4WL TRIZEPS4WL 1649
++trizeps5 MACH_TRIZEPS5 TRIZEPS5 1650
++marlin MACH_MARLIN MARLIN 1651
++ts78xx MACH_TS78XX TS78XX 1652
++hpipaq214 MACH_HPIPAQ214 HPIPAQ214 1653
++at572d940dcm MACH_AT572D940DCM AT572D940DCM 1654
++ne1board MACH_NE1BOARD NE1BOARD 1655
++zante MACH_ZANTE ZANTE 1656
++sffsdr MACH_SFFSDR SFFSDR 1657
++tw2662 MACH_TW2662 TW2662 1658
++vf10xx MACH_VF10XX VF10XX 1659
++zoran43xx MACH_ZORAN43XX ZORAN43XX 1660
++sonix926 MACH_SONIX926 SONIX926 1661
++celestialsemi MACH_CELESTIALSEMI CELESTIALSEMI 1662
++cc9m2443 MACH_CC9M2443 CC9M2443 1663
++tw5334 MACH_TW5334 TW5334 1664
++omap_htcartemis MACH_HTCARTEMIS HTCARTEMIS 1665
++nal_hlite MACH_NAL_HLITE NAL_HLITE 1666
++htcvogue MACH_HTCVOGUE HTCVOGUE 1667
++smartweb MACH_SMARTWEB SMARTWEB 1668
++mv86xx MACH_MV86XX MV86XX 1669
++mv87xx MACH_MV87XX MV87XX 1670
++songyoungho MACH_SONGYOUNGHO SONGYOUNGHO 1671
++younghotema MACH_YOUNGHOTEMA YOUNGHOTEMA 1672
++pcm037 MACH_PCM037 PCM037 1673
++mmvp MACH_MMVP MMVP 1674
++mmap MACH_MMAP MMAP 1675
++ptid2410 MACH_PTID2410 PTID2410 1676
++james_926 MACH_JAMES_926 JAMES_926 1677
++fm6000 MACH_FM6000 FM6000 1678
++db88f6281_bp MACH_DB88F6281_BP DB88F6281_BP 1680
++rd88f6192_nas MACH_RD88F6192_NAS RD88F6192_NAS 1681
++rd88f6281 MACH_RD88F6281 RD88F6281 1682
++db78x00_bp MACH_DB78X00_BP DB78X00_BP 1683
++smdk2416 MACH_SMDK2416 SMDK2416 1685
++oce_spider_si MACH_OCE_SPIDER_SI OCE_SPIDER_SI 1686
++oce_spider_sk MACH_OCE_SPIDER_SK OCE_SPIDER_SK 1687
++rovern6 MACH_ROVERN6 ROVERN6 1688
++pelco_evolution MACH_PELCO_EVOLUTION PELCO_EVOLUTION 1689
++wbd111 MACH_WBD111 WBD111 1690
++elaracpe MACH_ELARACPE ELARACPE 1691
++mabv3 MACH_MABV3 MABV3 1692
++mv2120 MACH_MV2120 MV2120 1693
++csb737 MACH_CSB737 CSB737 1695
++mx51_3ds MACH_MX51_3DS MX51_3DS 1696
++g900 MACH_G900 G900 1697
++apf27 MACH_APF27 APF27 1698
++ggus2000 MACH_GGUS2000 GGUS2000 1699
++omap_2430_mimic MACH_OMAP_2430_MIMIC OMAP_2430_MIMIC 1700
++imx27lite MACH_IMX27LITE IMX27LITE 1701
++almex MACH_ALMEX ALMEX 1702
++control MACH_CONTROL CONTROL 1703
++mba2410 MACH_MBA2410 MBA2410 1704
++volcano MACH_VOLCANO VOLCANO 1705
++zenith MACH_ZENITH ZENITH 1706
++muchip MACH_MUCHIP MUCHIP 1707
++magellan MACH_MAGELLAN MAGELLAN 1708
++usb_a9260 MACH_USB_A9260 USB_A9260 1709
++usb_a9263 MACH_USB_A9263 USB_A9263 1710
++qil_a9260 MACH_QIL_A9260 QIL_A9260 1711
++cme9210 MACH_CME9210 CME9210 1712
++hczh4 MACH_HCZH4 HCZH4 1713
++spearbasic MACH_SPEARBASIC SPEARBASIC 1714
++dep2440 MACH_DEP2440 DEP2440 1715
++hdl_gxr MACH_HDL_GXR HDL_GXR 1716
++hdl_gt MACH_HDL_GT HDL_GT 1717
++hdl_4g MACH_HDL_4G HDL_4G 1718
++s3c6000 MACH_S3C6000 S3C6000 1719
++mmsp2_mdk MACH_MMSP2_MDK MMSP2_MDK 1720
++mpx220 MACH_MPX220 MPX220 1721
++kzm_arm11_01 MACH_KZM_ARM11_01 KZM_ARM11_01 1722
++htc_polaris MACH_HTC_POLARIS HTC_POLARIS 1723
++htc_kaiser MACH_HTC_KAISER HTC_KAISER 1724
++lg_ks20 MACH_LG_KS20 LG_KS20 1725
++hhgps MACH_HHGPS HHGPS 1726
++nokia_n810_wimax MACH_NOKIA_N810_WIMAX NOKIA_N810_WIMAX 1727
++insight MACH_INSIGHT INSIGHT 1728
++sapphire MACH_SAPPHIRE SAPPHIRE 1729
++csb637xo MACH_CSB637XO CSB637XO 1730
++evisiong MACH_EVISIONG EVISIONG 1731
++stmp37xx MACH_STMP37XX STMP37XX 1732
++stmp378x MACH_STMP38XX STMP38XX 1733
++tnt MACH_TNT TNT 1734
++tbxt MACH_TBXT TBXT 1735
++playmate MACH_PLAYMATE PLAYMATE 1736
++pns10 MACH_PNS10 PNS10 1737
++eznavi MACH_EZNAVI EZNAVI 1738
++ps4000 MACH_PS4000 PS4000 1739
++ezx_a780 MACH_EZX_A780 EZX_A780 1740
++ezx_e680 MACH_EZX_E680 EZX_E680 1741
++ezx_a1200 MACH_EZX_A1200 EZX_A1200 1742
++ezx_e6 MACH_EZX_E6 EZX_E6 1743
++ezx_e2 MACH_EZX_E2 EZX_E2 1744
++ezx_a910 MACH_EZX_A910 EZX_A910 1745
++cwmx31 MACH_CWMX31 CWMX31 1746
++sl2312 MACH_SL2312 SL2312 1747
++blenny MACH_BLENNY BLENNY 1748
++ds107 MACH_DS107 DS107 1749
++dsx07 MACH_DSX07 DSX07 1750
++picocom1 MACH_PICOCOM1 PICOCOM1 1751
++lynx_wolverine MACH_LYNX_WOLVERINE LYNX_WOLVERINE 1752
++ubisys_p9_sc19 MACH_UBISYS_P9_SC19 UBISYS_P9_SC19 1753
++kratos_low MACH_KRATOS_LOW KRATOS_LOW 1754
++m700 MACH_M700 M700 1755
++edmini_v2 MACH_EDMINI_V2 EDMINI_V2 1756
++zipit2 MACH_ZIPIT2 ZIPIT2 1757
++hslfemtocell MACH_HSLFEMTOCELL HSLFEMTOCELL 1758
++daintree_at91 MACH_DAINTREE_AT91 DAINTREE_AT91 1759
++sg560usb MACH_SG560USB SG560USB 1760
++omap3_pandora MACH_OMAP3_PANDORA OMAP3_PANDORA 1761
++usr8200 MACH_USR8200 USR8200 1762
++s1s65k MACH_S1S65K S1S65K 1763
++s2s65a MACH_S2S65A S2S65A 1764
++icore MACH_ICORE ICORE 1765
++mss2 MACH_MSS2 MSS2 1766
++belmont MACH_BELMONT BELMONT 1767
++asusp525 MACH_ASUSP525 ASUSP525 1768
++lb88rc8480 MACH_LB88RC8480 LB88RC8480 1769
++hipxa MACH_HIPXA HIPXA 1770
++mx25_3ds MACH_MX25_3DS MX25_3DS 1771
++m800 MACH_M800 M800 1772
++omap3530_lv_som MACH_OMAP3530_LV_SOM OMAP3530_LV_SOM 1773
++prima_evb MACH_PRIMA_EVB PRIMA_EVB 1774
++mx31bt1 MACH_MX31BT1 MX31BT1 1775
++atlas4_evb MACH_ATLAS4_EVB ATLAS4_EVB 1776
++mx31cicada MACH_MX31CICADA MX31CICADA 1777
++mi424wr MACH_MI424WR MI424WR 1778
++axs_ultrax MACH_AXS_ULTRAX AXS_ULTRAX 1779
++at572d940deb MACH_AT572D940DEB AT572D940DEB 1780
++davinci_da8xx_evm MACH_DAVINCI_DA8XX_EVM DAVINCI_DA8XX_EVM 1781
++ep9302 MACH_EP9302 EP9302 1782
++at572d940hfeb MACH_AT572D940HFEB AT572D940HFEB 1783
++cybook3 MACH_CYBOOK3 CYBOOK3 1784
++wdg002 MACH_WDG002 WDG002 1785
++sg560adsl MACH_SG560ADSL SG560ADSL 1786
++nextio_n2800_ica MACH_NEXTIO_N2800_ICA NEXTIO_N2800_ICA 1787
++marvell_newdb MACH_MARVELL_NEWDB MARVELL_NEWDB 1789
++vandihud MACH_VANDIHUD VANDIHUD 1790
++magx_e8 MACH_MAGX_E8 MAGX_E8 1791
++magx_z6 MACH_MAGX_Z6 MAGX_Z6 1792
++magx_v8 MACH_MAGX_V8 MAGX_V8 1793
++magx_u9 MACH_MAGX_U9 MAGX_U9 1794
++toughcf08 MACH_TOUGHCF08 TOUGHCF08 1795
++zw4400 MACH_ZW4400 ZW4400 1796
++marat91 MACH_MARAT91 MARAT91 1797
++overo MACH_OVERO OVERO 1798
++at2440evb MACH_AT2440EVB AT2440EVB 1799
++neocore926 MACH_NEOCORE926 NEOCORE926 1800
++wnr854t MACH_WNR854T WNR854T 1801
++imx27 MACH_IMX27 IMX27 1802
++moose_db MACH_MOOSE_DB MOOSE_DB 1803
++fab4 MACH_FAB4 FAB4 1804
++htcdiamond MACH_HTCDIAMOND HTCDIAMOND 1805
++fiona MACH_FIONA FIONA 1806
++mxc30030_x MACH_MXC30030_X MXC30030_X 1807
++bmp1000 MACH_BMP1000 BMP1000 1808
++logi9200 MACH_LOGI9200 LOGI9200 1809
++tqma31 MACH_TQMA31 TQMA31 1810
++ccw9p9215js MACH_CCW9P9215JS CCW9P9215JS 1811
++rd88f5181l_ge MACH_RD88F5181L_GE RD88F5181L_GE 1812
++sifmain MACH_SIFMAIN SIFMAIN 1813
++sam9_l9261 MACH_SAM9_L9261 SAM9_L9261 1814
++cc9m2443js MACH_CC9M2443JS CC9M2443JS 1815
++xaria300 MACH_XARIA300 XARIA300 1816
++it9200 MACH_IT9200 IT9200 1817
++rd88f5181l_fxo MACH_RD88F5181L_FXO RD88F5181L_FXO 1818
++kriss_sensor MACH_KRISS_SENSOR KRISS_SENSOR 1819
++pilz_pmi5 MACH_PILZ_PMI5 PILZ_PMI5 1820
++jade MACH_JADE JADE 1821
++ks8695_softplc MACH_KS8695_SOFTPLC KS8695_SOFTPLC 1822
++gprisc4 MACH_GPRISC4 GPRISC4 1823
++stamp9260 MACH_STAMP9260 STAMP9260 1824
++smdk6430 MACH_SMDK6430 SMDK6430 1825
++smdkc100 MACH_SMDKC100 SMDKC100 1826
+diff --git a/drivers/Kconfig b/drivers/Kconfig
+index f4076d9..2645689 100644
+--- a/drivers/Kconfig
++++ b/drivers/Kconfig
+@@ -1,4 +1,4 @@
+-# drivers/Kconfig
++#drivers/Kconfig
+
+ menu "Device Drivers"
+
+@@ -95,4 +95,5 @@ source "drivers/kvm/Kconfig"
+ source "drivers/uio/Kconfig"
+
+ source "drivers/virtio/Kconfig"
++
+ endmenu
+diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
+index 2e3a0d4..5696162 100644
+--- a/drivers/char/Kconfig
++++ b/drivers/char/Kconfig
+@@ -813,6 +813,12 @@ config DS1302
+ will get access to the real time clock (or hardware clock) built
+ into your computer.
+
++config S3C_ADC
++ bool "S3C ADC Driver"
++ depends on ARCH_S3C2410
++ help
++ ADC (A/D Conversion) driver for Samsung S3C2450/2416, S3C6400/6410.
++
+ config COBALT_LCD
+ bool "Support for Cobalt LCD"
+ depends on MIPS_COBALT
+@@ -1040,5 +1046,14 @@ config DEVPORT
+
+ source "drivers/s390/char/Kconfig"
+
++config S3C_MEM
++ bool "Support for /dev/s3c-mem"
++ default y
++ ---help---
++ If you do say Y here, you can allocate physically linear memories from system memory.
++ And you can share the memory at the other process using re-allocation ioctl.
++
++ If unsure, say Y.
++
+ endmenu
+
+diff --git a/drivers/char/Makefile b/drivers/char/Makefile
+index 07304d5..8846ea7 100644
+--- a/drivers/char/Makefile
++++ b/drivers/char/Makefile
+@@ -111,6 +111,8 @@ obj-$(CONFIG_PS3_FLASH) += ps3flash.o
+ obj-$(CONFIG_JS_RTC) += js-rtc.o
+ js-rtc-y = rtc.o
+
++obj-$(CONFIG_S3C_MEM) += s3c_mem.o
++
+ # Files generated that shall be removed upon make clean
+ clean-files := consolemap_deftbl.c defkeymap.c
+
+diff --git a/drivers/char/mem.c b/drivers/char/mem.c
+index 20070b7..8b15542 100644
+--- a/drivers/char/mem.c
++++ b/drivers/char/mem.c
+@@ -787,6 +787,16 @@ static const struct file_operations oldmem_fops = {
+ };
+ #endif
+
++#ifdef CONFIG_S3C_MEM
++extern int s3c_mem_mmap(struct file* filp, struct vm_area_struct *vma);
++extern int s3c_mem_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg);
++
++static const struct file_operations s3c_mem_fops = {
++ .ioctl = s3c_mem_ioctl,
++ .mmap = s3c_mem_mmap,
++};
++#endif
++
+ static ssize_t kmsg_write(struct file * file, const char __user * buf,
+ size_t count, loff_t *ppos)
+ {
+@@ -854,6 +864,11 @@ static int memory_open(struct inode * inode, struct file * filp)
+ filp->f_op = &oldmem_fops;
+ break;
+ #endif
++#ifdef CONFIG_S3C_MEM
++ case 13:
++ filp->f_op = &s3c_mem_fops;
++ break;
++#endif
+ default:
+ return -ENXIO;
+ }
+@@ -886,6 +901,9 @@ static const struct {
+ #ifdef CONFIG_CRASH_DUMP
+ {12,"oldmem", S_IRUSR | S_IWUSR | S_IRGRP, &oldmem_fops},
+ #endif
++#ifdef CONFIG_S3C_MEM
++ {13,"s3c-mem", S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH, &s3c_mem_fops},
++#endif
+ };
+
+ static struct class *mem_class;
+diff --git a/drivers/char/s3c_mem.c b/drivers/char/s3c_mem.c
+new file mode 100644
+index 0000000..9e31836
+--- /dev/null
++++ b/drivers/char/s3c_mem.c
+@@ -0,0 +1,287 @@
++/*
++ * drivers/char/s3c_mem.c
++ *
++ * Revision 1.0
++ *
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file COPYING in the main directory of this archive for
++ * more details.
++ *
++ * S3C MEM driver
++ */
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/types.h>
++#include <linux/timer.h>
++#include <linux/kernel.h>
++#include <linux/fs.h>
++#include <linux/interrupt.h>
++#include <linux/clk.h>
++#include <linux/delay.h>
++#include <asm/uaccess.h>
++#include <linux/errno.h> /* error codes */
++#include <asm/div64.h>
++#include <linux/mm.h>
++#include <linux/tty.h>
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/hardware.h>
++#include <asm/uaccess.h>
++#include <asm/arch/map.h>
++#include <linux/mman.h>
++
++#include <linux/unistd.h>
++
++#include <linux/version.h>
++#include <asm/dma.h>
++
++#include <asm/mach/dma.h>
++#include <asm/plat-s3c24xx/dma.h>
++#include <linux/dma-mapping.h>
++
++#include "s3c_mem.h"
++
++static int flag = 0;
++
++static unsigned int physical_address;
++
++int s3c_mem_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)
++{
++
++ u32 val;
++
++ u_int virt_addr;
++ struct mm_struct *mm = current->mm;
++ struct s3c_mem_alloc param;
++
++ switch (cmd) {
++ case S3C_MEM_ALLOC:
++ mutex_lock(&mem_alloc_lock);
++ if(copy_from_user(&param, (struct s3c_mem_alloc *)arg, sizeof(struct s3c_mem_alloc))){
++ mutex_unlock(&mem_alloc_lock);
++ return -EFAULT;
++ }
++ flag = MEM_ALLOC;
++ param.vir_addr = do_mmap(file, 0, param.size, PROT_READ|PROT_WRITE, MAP_SHARED, 0);
++ DEBUG("param.vir_addr = %08x, %d\n", param.vir_addr, __LINE__);
++ if(param.vir_addr == -EINVAL) {
++ printk("S3C_MEM_ALLOC FAILED\n");
++ flag = 0;
++ mutex_unlock(&mem_alloc_lock);
++ return -EFAULT;
++ }
++ param.phy_addr = physical_address;
++ DEBUG("KERNEL MALLOC : param.phy_addr = 0x%X \t size = %d \t param.vir_addr = 0x%X, %d\n", param.phy_addr, param.size, param.vir_addr, __LINE__);
++
++ if(copy_to_user((struct s3c_mem_alloc *)arg, &param, sizeof(struct s3c_mem_alloc))){
++ flag = 0;
++ mutex_unlock(&mem_alloc_lock);
++ return -EFAULT;
++ }
++ flag = 0;
++ mutex_unlock(&mem_alloc_lock);
++
++ break;
++
++ case S3C_MEM_CACHEABLE_ALLOC:
++ mutex_lock(&mem_cacheable_alloc_lock);
++ if(copy_from_user(&param, (struct s3c_mem_alloc *)arg, sizeof(struct s3c_mem_alloc))){
++ mutex_unlock(&mem_cacheable_alloc_lock);
++ return -EFAULT;
++ }
++ flag = MEM_ALLOC_CACHEABLE;
++ param.vir_addr = do_mmap(file, 0, param.size, PROT_READ|PROT_WRITE, MAP_SHARED, 0);
++ DEBUG("param.vir_addr = %08x, %d\n", param.vir_addr, __LINE__);
++ if(param.vir_addr == -EINVAL) {
++ printk("S3C_MEM_ALLOC FAILED\n");
++ flag = 0;
++ mutex_unlock(&mem_cacheable_alloc_lock);
++ return -EFAULT;
++ }
++ param.phy_addr = physical_address;
++ DEBUG("KERNEL MALLOC : param.phy_addr = 0x%X \t size = %d \t param.vir_addr = 0x%X, %d\n", param.phy_addr, param.size, param.vir_addr, __LINE__);
++
++ if(copy_to_user((struct s3c_mem_alloc *)arg, &param, sizeof(struct s3c_mem_alloc))){
++ flag = 0;
++ mutex_unlock(&mem_cacheable_alloc_lock);
++ return -EFAULT;
++ }
++ flag = 0;
++ mutex_unlock(&mem_cacheable_alloc_lock);
++
++ break;
++
++ case S3C_MEM_SHARE_ALLOC:
++ mutex_lock(&mem_share_alloc_lock);
++ if(copy_from_user(&param, (struct s3c_mem_alloc *)arg, sizeof(struct s3c_mem_alloc))){
++ mutex_unlock(&mem_share_alloc_lock);
++ return -EFAULT;
++ }
++ flag = MEM_ALLOC_SHARE;
++ physical_address = param.phy_addr;
++ DEBUG("param.phy_addr = %08x, %d\n", physical_address, __LINE__);
++ param.vir_addr = do_mmap(file, 0, param.size, PROT_READ|PROT_WRITE, MAP_SHARED, 0);
++ DEBUG("param.vir_addr = %08x, %d\n", param.vir_addr, __LINE__);
++ if(param.vir_addr == -EINVAL) {
++ printk("S3C_MEM_SHARE_ALLOC FAILED\n");
++ flag = 0;
++ mutex_unlock(&mem_share_alloc_lock);
++ return -EFAULT;
++ }
++ DEBUG("MALLOC_SHARE : param.phy_addr = 0x%X \t size = %d \t param.vir_addr = 0x%X, %d\n", param.phy_addr, param.size, param.vir_addr, __LINE__);
++
++ if(copy_to_user((struct s3c_mem_alloc *)arg, &param, sizeof(struct s3c_mem_alloc))){
++ flag = 0;
++ mutex_unlock(&mem_share_alloc_lock);
++ return -EFAULT;
++ }
++ flag = 0;
++ mutex_unlock(&mem_share_alloc_lock);
++
++ break;
++
++ case S3C_MEM_CACHEABLE_SHARE_ALLOC:
++ mutex_lock(&mem_cacheable_share_alloc_lock);
++ if(copy_from_user(&param, (struct s3c_mem_alloc *)arg, sizeof(struct s3c_mem_alloc))){
++ mutex_unlock(&mem_cacheable_share_alloc_lock);
++ return -EFAULT;
++ }
++ flag = MEM_ALLOC_CACHEABLE_SHARE;
++ physical_address = param.phy_addr;
++ DEBUG("param.phy_addr = %08x, %d\n", physical_address, __LINE__);
++ param.vir_addr = do_mmap(file, 0, param.size, PROT_READ|PROT_WRITE, MAP_SHARED, 0);
++ DEBUG("param.vir_addr = %08x, %d\n", param.vir_addr, __LINE__);
++ if(param.vir_addr == -EINVAL) {
++ printk("S3C_MEM_SHARE_ALLOC FAILED\n");
++ flag = 0;
++ mutex_unlock(&mem_cacheable_share_alloc_lock);
++ return -EFAULT;
++ }
++ DEBUG("MALLOC_SHARE : param.phy_addr = 0x%X \t size = %d \t param.vir_addr = 0x%X, %d\n", param.phy_addr, param.size, param.vir_addr, __LINE__);
++
++ if(copy_to_user((struct s3c_mem_alloc *)arg, &param, sizeof(struct s3c_mem_alloc))){
++ flag = 0;
++ mutex_unlock(&mem_cacheable_share_alloc_lock);
++ return -EFAULT;
++ }
++ flag = 0;
++ mutex_unlock(&mem_cacheable_share_alloc_lock);
++
++ break;
++
++ case S3C_MEM_FREE:
++ mutex_lock(&mem_free_lock);
++ if(copy_from_user(&param, (struct s3c_mem_alloc *)arg, sizeof(struct s3c_mem_alloc))){
++ mutex_unlock(&mem_free_lock);
++ return -EFAULT;
++ }
++
++ DEBUG("KERNEL FREE : param.phy_addr = 0x%X \t size = %d \t param.vir_addr = 0x%X, %d\n", param.phy_addr, param.size, param.vir_addr, __LINE__);
++
++ if (do_munmap(mm, param.vir_addr, param.size) < 0) {
++ printk("do_munmap() failed !!\n");
++ mutex_unlock(&mem_free_lock);
++ return -EINVAL;
++ }
++ virt_addr = phys_to_virt(param.phy_addr);
++
++ kfree(virt_addr);
++ param.size = 0;
++ DEBUG("do_munmap() succeed !!\n");
++
++ if(copy_to_user((struct s3c_mem_alloc *)arg, &param, sizeof(struct s3c_mem_alloc))){
++ mutex_unlock(&mem_free_lock);
++ return -EFAULT;
++ }
++
++ mutex_unlock(&mem_free_lock);
++
++ break;
++
++ case S3C_MEM_SHARE_FREE:
++ mutex_lock(&mem_share_free_lock);
++ if(copy_from_user(&param, (struct s3c_mem_alloc *)arg, sizeof(struct s3c_mem_alloc))){
++ mutex_unlock(&mem_share_free_lock);
++ return -EFAULT;
++ }
++
++ DEBUG("MEM_SHARE_FREE : param.phy_addr = 0x%X \t size = %d \t param.vir_addr = 0x%X, %d\n", param.phy_addr, param.size, param.vir_addr, __LINE__);
++
++ if (do_munmap(mm, param.vir_addr, param.size) < 0) {
++ printk("do_munmap() failed - MEM_SHARE_FREE!!\n");
++ mutex_unlock(&mem_share_free_lock);
++ return -EINVAL;
++ }
++
++ param.vir_addr = 0;
++ DEBUG("do_munmap() succeed !! - MEM_SHARE_FREE\n");
++
++ if(copy_to_user((struct s3c_mem_alloc *)arg, &param, sizeof(struct s3c_mem_alloc))){
++ mutex_unlock(&mem_share_free_lock);
++ return -EFAULT;
++ }
++
++ mutex_unlock(&mem_share_free_lock);
++
++ break;
++
++ default:
++ DEBUG("s3c_mem_ioctl() : default !!\n");
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++int s3c_mem_mmap(struct file* filp, struct vm_area_struct *vma)
++{
++ unsigned long pageFrameNo, size, virt_addr, phys_addr;
++
++ size = vma->vm_end - vma->vm_start;
++
++ switch (flag) {
++ case MEM_ALLOC :
++ case MEM_ALLOC_CACHEABLE :
++ virt_addr = kmalloc(size, GFP_DMA|GFP_ATOMIC);
++
++ if (virt_addr == NULL) {
++ printk("kmalloc() failed !\n");
++ return -EINVAL;
++ }
++ DEBUG("MMAP_KMALLOC : virt addr = 0x%08x, size = %d, %d\n", virt_addr, size, __LINE__);
++ phys_addr = virt_to_phys(virt_addr);
++ physical_address = (unsigned int)phys_addr;
++
++ pageFrameNo = __phys_to_pfn(phys_addr);
++ break;
++
++ case MEM_ALLOC_SHARE :
++ case MEM_ALLOC_CACHEABLE_SHARE :
++ DEBUG("MMAP_KMALLOC_SHARE : phys addr = 0x%08x, %d\n", physical_address, __LINE__);
++
++ // page frame number of the address for the physical_address to be shared.
++ pageFrameNo = __phys_to_pfn(physical_address);
++ DEBUG("MMAP_KMALLOC_SHARE : vma->end = 0x%08x, vma->start = 0x%08x, size = %d, %d\n", vma->vm_end, vma->vm_start, size, __LINE__);
++ break;
++
++ default :
++ break;
++ }
++
++ if( (flag == MEM_ALLOC) || (flag == MEM_ALLOC_SHARE) )
++ vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
++
++ vma->vm_flags |= VM_RESERVED;
++
++ if (remap_pfn_range(vma, vma->vm_start, pageFrameNo, size, vma->vm_page_prot)) {
++ printk("s3c_mem_mmap() : remap_pfn_range() failed !\n");
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++EXPORT_SYMBOL(s3c_mem_ioctl);
++EXPORT_SYMBOL(s3c_mem_mmap);
+\ No newline at end of file
+diff --git a/drivers/char/s3c_mem.h b/drivers/char/s3c_mem.h
+new file mode 100644
+index 0000000..7cc7fa8
+--- /dev/null
++++ b/drivers/char/s3c_mem.h
+@@ -0,0 +1,42 @@
++#define DEBUG_S3C_MEM
++#undef DEBUG_S3C_MEM
++
++#ifdef DEBUG_S3C_MEM
++#define DEBUG(fmt,args...) printk(fmt, ##args)
++#else
++#define DEBUG(fmt,args...) do {} while(0)
++#endif
++
++#define MEM_IOCTL_MAGIC 'M'
++
++#define S3C_MEM_ALLOC _IOWR(MEM_IOCTL_MAGIC, 310, struct s3c_mem_alloc)
++#define S3C_MEM_FREE _IOWR(MEM_IOCTL_MAGIC, 311, struct s3c_mem_alloc)
++
++#define S3C_MEM_SHARE_ALLOC _IOWR(MEM_IOCTL_MAGIC, 314, struct s3c_mem_alloc)
++#define S3C_MEM_SHARE_FREE _IOWR(MEM_IOCTL_MAGIC, 315, struct s3c_mem_alloc)
++
++#define S3C_MEM_CACHEABLE_ALLOC _IOWR(MEM_IOCTL_MAGIC, 316, struct s3c_mem_alloc)
++#define S3C_MEM_CACHEABLE_SHARE_ALLOC _IOWR(MEM_IOCTL_MAGIC, 317, struct s3c_mem_alloc)
++
++#define MEM_ALLOC 1
++#define MEM_ALLOC_SHARE 2
++#define MEM_ALLOC_CACHEABLE 3
++#define MEM_ALLOC_CACHEABLE_SHARE 4
++
++#define S3C_MEM_MINOR 13
++
++static DEFINE_MUTEX(mem_alloc_lock);
++static DEFINE_MUTEX(mem_free_lock);
++
++static DEFINE_MUTEX(mem_share_alloc_lock);
++static DEFINE_MUTEX(mem_share_free_lock);
++
++static DEFINE_MUTEX(mem_cacheable_alloc_lock);
++static DEFINE_MUTEX(mem_cacheable_share_alloc_lock);
++
++struct s3c_mem_alloc {
++ int size;
++ unsigned int vir_addr;
++ unsigned int phy_addr;
++};
++
+diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
+index c466c6c..1986372 100644
+--- a/drivers/i2c/busses/Kconfig
++++ b/drivers/i2c/busses/Kconfig
+@@ -412,11 +412,18 @@ config I2C_PROSAVAGE
+
+ config I2C_S3C2410
+ tristate "S3C2410 I2C Driver"
+- depends on ARCH_S3C2410
++ depends on ARCH_S3C2410 && !PLAT_S3C64XX
+ help
+ Say Y here to include support for I2C controller in the
+ Samsung S3C2410 based System-on-Chip devices.
+
++config I2C_S3C64XX
++ tristate "S3C64XX I2C Driver"
++ depends on PLAT_S3C64XX
++ help
++ Say Y here to include support for I2C controller in the
++ Samsung S3C64XX based System-on-Chip devices.
++
+ config I2C_SAVAGE4
+ tristate "S3 Savage 4"
+ depends on PCI && EXPERIMENTAL
+diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
+index 81d43c2..4b4e3e0 100644
+--- a/drivers/i2c/busses/Makefile
++++ b/drivers/i2c/busses/Makefile
+@@ -37,6 +37,7 @@ obj-$(CONFIG_I2C_PNX) += i2c-pnx.o
+ obj-$(CONFIG_I2C_PROSAVAGE) += i2c-prosavage.o
+ obj-$(CONFIG_I2C_PXA) += i2c-pxa.o
+ obj-$(CONFIG_I2C_S3C2410) += i2c-s3c2410.o
++obj-$(CONFIG_I2C_S3C64XX) += i2c-s3c64xx.o
+ obj-$(CONFIG_I2C_SAVAGE4) += i2c-savage4.o
+ obj-$(CONFIG_I2C_SIBYTE) += i2c-sibyte.o
+ obj-$(CONFIG_I2C_SIMTEC) += i2c-simtec.o
+diff --git a/drivers/i2c/busses/i2c-s3c2410.c b/drivers/i2c/busses/i2c-s3c2410.c
+index c44ada5..51ba983 100644
+--- a/drivers/i2c/busses/i2c-s3c2410.c
++++ b/drivers/i2c/busses/i2c-s3c2410.c
+@@ -38,6 +38,7 @@
+ #include <asm/irq.h>
+ #include <asm/io.h>
+
++#include <asm/arch/gpio.h>
+ #include <asm/arch/regs-gpio.h>
+ #include <asm/plat-s3c/regs-iic.h>
+ #include <asm/plat-s3c/iic.h>
+@@ -709,10 +710,18 @@ static int s3c24xx_i2c_init(struct s3c24xx_i2c *i2c)
+
+ pdata = s3c24xx_i2c_get_platformdata(i2c->adap.dev.parent);
+
++#if !defined(CONFIG_CPU_S3C6400) && !defined(CONFIG_CPU_S3C6410)
+ /* inititalise the gpio */
+
+ s3c2410_gpio_cfgpin(S3C2410_GPE15, S3C2410_GPE15_IICSDA);
+ s3c2410_gpio_cfgpin(S3C2410_GPE14, S3C2410_GPE14_IICSCL);
++#else
++ /*Set I2C port to controll WM8753 codec*/
++ gpio_pullup(S3C_GPB5, 0);
++ gpio_pullup(S3C_GPB6, 0);
++ gpio_set_pin(S3C_GPB5, S3C_GPB5_I2C_SCL);
++ gpio_set_pin(S3C_GPB6, S3C_GPB6_I2C_SDA);
++#endif
+
+ /* write slave address */
+
+diff --git a/drivers/i2c/busses/i2c-s3c64xx.c b/drivers/i2c/busses/i2c-s3c64xx.c
+new file mode 100644
+index 0000000..dee1fc7
+--- /dev/null
++++ b/drivers/i2c/busses/i2c-s3c64xx.c
+@@ -0,0 +1,908 @@
++/* linux/drivers/i2c/busses/i2c-s3c64xx.c
++ *
++ * Copyright (C) 2004,2005 Simtec Electronics
++ * Ben Dooks <ben@simtec.co.uk>
++ *
++ * S3C64XX I2C Controller
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++*/
++
++#include <linux/kernel.h>
++#include <linux/module.h>
++
++#include <linux/i2c.h>
++#include <linux/i2c-id.h>
++#include <linux/init.h>
++#include <linux/time.h>
++#include <linux/interrupt.h>
++#include <linux/delay.h>
++#include <linux/errno.h>
++#include <linux/err.h>
++#include <linux/platform_device.h>
++#include <linux/clk.h>
++
++#include <asm/hardware.h>
++#include <asm/irq.h>
++#include <asm/io.h>
++
++#include <asm/arch/gpio.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/plat-s3c/regs-iic.h>
++#include <asm/plat-s3c/iic.h>
++
++/* i2c controller state */
++
++enum s3c64xx_i2c_state {
++ STATE_IDLE,
++ STATE_START,
++ STATE_READ,
++ STATE_WRITE,
++ STATE_STOP
++};
++
++struct s3c64xx_i2c {
++ spinlock_t lock;
++ wait_queue_head_t wait;
++
++ struct i2c_msg *msg;
++ unsigned int msg_num;
++ unsigned int msg_idx;
++ unsigned int msg_ptr;
++
++ unsigned int tx_setup;
++
++ enum s3c64xx_i2c_state state;
++ unsigned long clkrate;
++
++ void __iomem *regs;
++ struct clk *clk;
++ struct device *dev;
++ struct resource *irq;
++ struct resource *ioarea;
++ struct i2c_adapter adap;
++};
++
++/* s3c64xx_i2c_master_complete
++ *
++ * complete the message and wake up the caller, using the given return code,
++ * or zero to mean ok.
++*/
++
++static inline void s3c64xx_i2c_master_complete(struct s3c64xx_i2c *i2c, int ret)
++{
++ dev_dbg(i2c->dev, "master_complete %d\n", ret);
++
++ i2c->msg_ptr = 0;
++ i2c->msg = NULL;
++ i2c->msg_idx++;
++ i2c->msg_num = 0;
++ if (ret)
++ i2c->msg_idx = ret;
++
++ wake_up(&i2c->wait);
++}
++
++static inline void s3c64xx_i2c_disable_ack(struct s3c64xx_i2c *i2c)
++{
++ unsigned long tmp;
++
++ tmp = readl(i2c->regs + S3C64XX_IICCON);
++ writel(tmp & ~S3C64XX_IICCON_ACKEN, i2c->regs + S3C64XX_IICCON);
++
++}
++
++static inline void s3c64xx_i2c_enable_ack(struct s3c64xx_i2c *i2c)
++{
++ unsigned long tmp;
++
++ tmp = readl(i2c->regs + S3C64XX_IICCON);
++ writel(tmp | S3C64XX_IICCON_ACKEN, i2c->regs + S3C64XX_IICCON);
++
++}
++
++/* irq enable/disable functions */
++
++static inline void s3c64xx_i2c_disable_irq(struct s3c64xx_i2c *i2c)
++{
++ unsigned long tmp;
++
++ tmp = readl(i2c->regs + S3C64XX_IICCON);
++ writel(tmp & ~S3C64XX_IICCON_IRQEN, i2c->regs + S3C64XX_IICCON);
++}
++
++static inline void s3c64xx_i2c_enable_irq(struct s3c64xx_i2c *i2c)
++{
++ unsigned long tmp;
++
++ tmp = readl(i2c->regs + S3C64XX_IICCON);
++ writel(tmp | S3C64XX_IICCON_IRQEN, i2c->regs + S3C64XX_IICCON);
++}
++
++
++/* s3c64xx_i2c_message_start
++ *
++ * put the start of a message onto the bus
++*/
++
++static void s3c64xx_i2c_message_start(struct s3c64xx_i2c *i2c,
++ struct i2c_msg *msg)
++{
++ unsigned int addr = (msg->addr & 0x7f) << 1;
++ unsigned long stat;
++ unsigned long iiccon;
++
++ stat = 0;
++ stat |= S3C64XX_IICSTAT_TXRXEN;
++
++ if (msg->flags & I2C_M_RD) {
++ stat |= S3C64XX_IICSTAT_MASTER_RX;
++ addr |= 1;
++ } else
++ stat |= S3C64XX_IICSTAT_MASTER_TX;
++
++ if (msg->flags & I2C_M_REV_DIR_ADDR)
++ addr ^= 1;
++
++ // todo - check for wether ack wanted or not
++ s3c64xx_i2c_enable_ack(i2c);
++
++ iiccon = readl(i2c->regs + S3C64XX_IICCON);
++ writel(stat, i2c->regs + S3C64XX_IICSTAT);
++
++ dev_dbg(i2c->dev, "START: %08lx to IICSTAT, %02x to DS\n", stat, addr);
++ writeb(addr, i2c->regs + S3C64XX_IICDS);
++
++ /* delay here to ensure the data byte has gotten onto the bus
++ * before the transaction is started */
++
++ ndelay(i2c->tx_setup);
++
++ dev_dbg(i2c->dev, "iiccon, %08lx\n", iiccon);
++ writel(iiccon, i2c->regs + S3C64XX_IICCON);
++
++ stat |= S3C64XX_IICSTAT_START;
++ writel(stat, i2c->regs + S3C64XX_IICSTAT);
++}
++
++static inline void s3c64xx_i2c_stop(struct s3c64xx_i2c *i2c, int ret)
++{
++ unsigned long iicstat = readl(i2c->regs + S3C64XX_IICSTAT);
++
++ dev_dbg(i2c->dev, "STOP\n");
++
++ /* stop the transfer */
++ iicstat &= ~ S3C64XX_IICSTAT_START;
++ writel(iicstat, i2c->regs + S3C64XX_IICSTAT);
++
++ i2c->state = STATE_STOP;
++
++ s3c64xx_i2c_master_complete(i2c, ret);
++ s3c64xx_i2c_disable_irq(i2c);
++}
++
++/* helper functions to determine the current state in the set of
++ * messages we are sending */
++
++/* is_lastmsg()
++ *
++ * returns TRUE if the current message is the last in the set
++*/
++
++static inline int is_lastmsg(struct s3c64xx_i2c *i2c)
++{
++ return i2c->msg_idx >= (i2c->msg_num - 1);
++}
++
++/* is_msglast
++ *
++ * returns TRUE if we this is the last byte in the current message
++*/
++
++static inline int is_msglast(struct s3c64xx_i2c *i2c)
++{
++ return i2c->msg_ptr == i2c->msg->len-1;
++}
++
++/* is_msgend
++ *
++ * returns TRUE if we reached the end of the current message
++*/
++
++static inline int is_msgend(struct s3c64xx_i2c *i2c)
++{
++ return i2c->msg_ptr >= i2c->msg->len;
++}
++
++/* i2s_s3c_irq_nextbyte
++ *
++ * process an interrupt and work out what to do
++ */
++
++static int i2s_s3c_irq_nextbyte(struct s3c64xx_i2c *i2c, unsigned long iicstat)
++{
++ unsigned long tmp;
++ unsigned char byte;
++ int ret = 0;
++
++ switch (i2c->state) {
++
++ case STATE_IDLE:
++ dev_err(i2c->dev, "%s: called in STATE_IDLE\n", __FUNCTION__);
++ goto out;
++ break;
++
++ case STATE_STOP:
++ dev_err(i2c->dev, "%s: called in STATE_STOP\n", __FUNCTION__);
++ s3c64xx_i2c_disable_irq(i2c);
++ goto out_ack;
++
++ case STATE_START:
++ /* last thing we did was send a start condition on the
++ * bus, or started a new i2c message
++ */
++
++ if (iicstat & S3C64XX_IICSTAT_LASTBIT &&
++ !(i2c->msg->flags & I2C_M_IGNORE_NAK)) {
++ /* ack was not received... */
++
++ dev_dbg(i2c->dev, "ack was not received\n");
++ s3c64xx_i2c_stop(i2c, -EREMOTEIO);
++ goto out_ack;
++ }
++
++ if (i2c->msg->flags & I2C_M_RD)
++ i2c->state = STATE_READ;
++ else
++ i2c->state = STATE_WRITE;
++
++ /* terminate the transfer if there is nothing to do
++ * (used by the i2c probe to find devices */
++
++ if (is_lastmsg(i2c) && i2c->msg->len == 0) {
++ s3c64xx_i2c_stop(i2c, 0);
++ goto out_ack;
++ }
++
++ if (i2c->state == STATE_READ)
++ goto prepare_read;
++
++ /* fall through to the write state, as we will need to
++ * send a byte as well */
++
++ case STATE_WRITE:
++ /* we are writing data to the device... check for the
++ * end of the message, and if so, work out what to do
++ */
++ if (!(i2c->msg->flags & I2C_M_IGNORE_NAK)) {
++ if (iicstat & S3C64XX_IICSTAT_LASTBIT) {
++ dev_dbg(i2c->dev, "WRITE: No Ack\n");
++
++ s3c64xx_i2c_stop(i2c, -ECONNREFUSED);
++ goto out_ack;
++ }
++ }
++
++ retry_write:
++ if (!is_msgend(i2c)) {
++ byte = i2c->msg->buf[i2c->msg_ptr++];
++ writeb(byte, i2c->regs + S3C64XX_IICDS);
++
++ /* delay after writing the byte to allow the
++ * data setup time on the bus, as writing the
++ * data to the register causes the first bit
++ * to appear on SDA, and SCL will change as
++ * soon as the interrupt is acknowledged */
++
++ ndelay(i2c->tx_setup);
++
++ } else if (!is_lastmsg(i2c)) {
++ /* we need to go to the next i2c message */
++
++ dev_dbg(i2c->dev, "WRITE: Next Message\n");
++
++ i2c->msg_ptr = 0;
++ i2c->msg_idx++;
++ i2c->msg++;
++
++ /* check to see if we need to do another message */
++ if (i2c->msg->flags & I2C_M_NOSTART) {
++
++ if (i2c->msg->flags & I2C_M_RD) {
++ /* cannot do this, the controller
++ * forces us to send a new START
++ * when we change direction */
++
++ s3c64xx_i2c_stop(i2c, -EINVAL);
++ }
++
++ goto retry_write;
++ } else {
++
++ /* send the new start */
++ s3c64xx_i2c_message_start(i2c, i2c->msg);
++ i2c->state = STATE_START;
++ }
++
++ } else {
++ /* send stop */
++
++ s3c64xx_i2c_stop(i2c, 0);
++ }
++ break;
++
++ case STATE_READ:
++ /* we have a byte of data in the data register, do
++ * something with it, and then work out wether we are
++ * going to do any more read/write
++ */
++
++ byte = readb(i2c->regs + S3C64XX_IICDS);
++ i2c->msg->buf[i2c->msg_ptr++] = byte;
++
++ prepare_read:
++ if (is_msglast(i2c)) {
++ /* last byte of buffer */
++
++ if (is_lastmsg(i2c))
++ s3c64xx_i2c_disable_ack(i2c);
++
++ } else if (is_msgend(i2c)) {
++ /* ok, we've read the entire buffer, see if there
++ * is anything else we need to do */
++
++ if (is_lastmsg(i2c)) {
++ /* last message, send stop and complete */
++ dev_dbg(i2c->dev, "READ: Send Stop\n");
++
++ s3c64xx_i2c_stop(i2c, 0);
++ } else {
++ /* go to the next transfer */
++ dev_dbg(i2c->dev, "READ: Next Transfer\n");
++
++ i2c->msg_ptr = 0;
++ i2c->msg_idx++;
++ i2c->msg++;
++ }
++ }
++
++ break;
++ }
++
++ /* acknowlegde the IRQ and get back on with the work */
++
++ out_ack:
++ tmp = readl(i2c->regs + S3C64XX_IICCON);
++ tmp &= ~S3C64XX_IICCON_IRQPEND;
++ writel(tmp, i2c->regs + S3C64XX_IICCON);
++ out:
++ return ret;
++}
++
++/* s3c64xx_i2c_irq
++ *
++ * top level IRQ servicing routine
++*/
++
++static irqreturn_t s3c64xx_i2c_irq(int irqno, void *dev_id)
++{
++ struct s3c64xx_i2c *i2c = dev_id;
++ unsigned long status;
++ unsigned long tmp;
++
++ status = readl(i2c->regs + S3C64XX_IICSTAT);
++
++ if (status & S3C64XX_IICSTAT_ARBITR) {
++ // deal with arbitration loss
++ dev_err(i2c->dev, "deal with arbitration loss\n");
++ }
++
++ if (i2c->state == STATE_IDLE) {
++ dev_dbg(i2c->dev, "IRQ: error i2c->state == IDLE\n");
++
++ tmp = readl(i2c->regs + S3C64XX_IICCON);
++ tmp &= ~S3C64XX_IICCON_IRQPEND;
++ writel(tmp, i2c->regs + S3C64XX_IICCON);
++ goto out;
++ }
++
++ /* pretty much this leaves us with the fact that we've
++ * transmitted or received whatever byte we last sent */
++
++ i2s_s3c_irq_nextbyte(i2c, status);
++
++ out:
++ return IRQ_HANDLED;
++}
++
++
++/* s3c64xx_i2c_set_master
++ *
++ * get the i2c bus for a master transaction
++*/
++
++static int s3c64xx_i2c_set_master(struct s3c64xx_i2c *i2c)
++{
++ unsigned long iicstat;
++ int timeout = 400;
++
++ while (timeout-- > 0) {
++ iicstat = readl(i2c->regs + S3C64XX_IICSTAT);
++
++ if (!(iicstat & S3C64XX_IICSTAT_BUSBUSY))
++ return 0;
++
++ msleep(1);
++ }
++
++ return -ETIMEDOUT;
++}
++
++/* s3c64xx_i2c_doxfer
++ *
++ * this starts an i2c transfer
++*/
++
++static int s3c64xx_i2c_doxfer(struct s3c64xx_i2c *i2c, struct i2c_msg *msgs, int num)
++{
++ unsigned long timeout;
++ int ret;
++
++ ret = s3c64xx_i2c_set_master(i2c);
++ if (ret != 0) {
++ dev_err(i2c->dev, "cannot get bus (error %d)\n", ret);
++ ret = -EAGAIN;
++ goto out;
++ }
++
++ spin_lock_irq(&i2c->lock);
++
++ i2c->msg = msgs;
++ i2c->msg_num = num;
++ i2c->msg_ptr = 0;
++ i2c->msg_idx = 0;
++ i2c->state = STATE_START;
++
++ s3c64xx_i2c_enable_irq(i2c);
++ s3c64xx_i2c_message_start(i2c, msgs);
++ spin_unlock_irq(&i2c->lock);
++
++ timeout = wait_event_timeout(i2c->wait, i2c->msg_num == 0, HZ * 5);
++
++ ret = i2c->msg_idx;
++
++ /* having these next two as dev_err() makes life very
++ * noisy when doing an i2cdetect */
++
++ if (timeout == 0)
++ dev_dbg(i2c->dev, "timeout\n");
++ else if (ret != num)
++ dev_dbg(i2c->dev, "incomplete xfer (%d)\n", ret);
++
++ /* ensure the stop has been through the bus */
++
++ msleep(1);
++
++ out:
++ return ret;
++}
++
++/* s3c64xx_i2c_xfer
++ *
++ * first port of call from the i2c bus code when an message needs
++ * transferring across the i2c bus.
++*/
++
++static int s3c64xx_i2c_xfer(struct i2c_adapter *adap,
++ struct i2c_msg *msgs, int num)
++{
++ struct s3c64xx_i2c *i2c = (struct s3c64xx_i2c *)adap->algo_data;
++ int retry;
++ int ret;
++
++ for (retry = 0; retry < adap->retries; retry++) {
++
++ ret = s3c64xx_i2c_doxfer(i2c, msgs, num);
++
++ if (ret != -EAGAIN)
++ return ret;
++
++ dev_dbg(i2c->dev, "Retrying transmission (%d)\n", retry);
++
++ udelay(100);
++ }
++
++ return -EREMOTEIO;
++}
++
++/* declare our i2c functionality */
++static u32 s3c64xx_i2c_func(struct i2c_adapter *adap)
++{
++ return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL | I2C_FUNC_PROTOCOL_MANGLING;
++}
++
++/* i2c bus registration info */
++
++static const struct i2c_algorithm s3c64xx_i2c_algorithm = {
++ .master_xfer = s3c64xx_i2c_xfer,
++ .functionality = s3c64xx_i2c_func,
++};
++
++/* s3c64xx_i2c_calcdivisor
++ *
++ * return the divisor settings for a given frequency
++*/
++
++static int s3c64xx_i2c_calcdivisor(unsigned long clkin, unsigned int wanted,
++ unsigned int *div1, unsigned int *divs)
++{
++ unsigned int calc_divs = clkin / wanted;
++ unsigned int calc_div1;
++
++ if (calc_divs > (16*16))
++ calc_div1 = 512;
++ else
++ calc_div1 = 16;
++
++ calc_divs += calc_div1-1;
++ calc_divs /= calc_div1;
++
++ if (calc_divs == 0)
++ calc_divs = 1;
++ if (calc_divs > 17)
++ calc_divs = 17;
++
++ *divs = calc_divs;
++ *div1 = calc_div1;
++
++ return clkin / (calc_divs * calc_div1);
++}
++
++/* freq_acceptable
++ *
++ * test wether a frequency is within the acceptable range of error
++*/
++
++static inline int freq_acceptable(unsigned int freq, unsigned int wanted)
++{
++ int diff = freq - wanted;
++
++ return (diff >= -2 && diff <= 2);
++}
++
++/* s3c64xx_i2c_getdivisor
++ *
++ * work out a divisor for the user requested frequency setting,
++ * either by the requested frequency, or scanning the acceptable
++ * range of frequencies until something is found
++*/
++
++static int s3c64xx_i2c_clockrate(struct s3c64xx_i2c *i2c, unsigned int *got)
++{
++ struct s3c2410_platform_i2c *pdata = i2c->dev->platform_data;
++ unsigned long clkin = clk_get_rate(i2c->clk);
++ unsigned int divs, div1;
++ u32 iiccon;
++ int freq;
++ int start, end;
++
++ i2c->clkrate = clkin;
++ clkin /= 1000; /* clkin now in KHz */
++
++ dev_dbg(i2c->dev, "pdata %p, freq %lu %lu..%lu\n",
++ pdata, pdata->bus_freq, pdata->min_freq, pdata->max_freq);
++
++ if (pdata->bus_freq != 0) {
++ freq = s3c64xx_i2c_calcdivisor(clkin, pdata->bus_freq/1000,
++ &div1, &divs);
++ if (freq_acceptable(freq, pdata->bus_freq/1000))
++ goto found;
++ }
++
++ /* ok, we may have to search for something suitable... */
++
++ start = (pdata->max_freq == 0) ? pdata->bus_freq : pdata->max_freq;
++ end = pdata->min_freq;
++
++ start /= 1000;
++ end /= 1000;
++
++ /* search loop... */
++
++ for (; start > end; start--) {
++ freq = s3c64xx_i2c_calcdivisor(clkin, start, &div1, &divs);
++ if (freq_acceptable(freq, start))
++ goto found;
++ }
++
++ /* cannot find frequency spec */
++
++ return -EINVAL;
++
++ found:
++ *got = freq;
++
++ iiccon = readl(i2c->regs + S3C64XX_IICCON);
++ iiccon &= ~(S3C64XX_IICCON_SCALEMASK | S3C64XX_IICCON_TXDIV_512);
++ iiccon |= (divs-1);
++
++ if (div1 == 512)
++ iiccon |= S3C64XX_IICCON_TXDIV_512;
++
++ writel(iiccon, i2c->regs + S3C64XX_IICCON);
++
++ return 0;
++}
++
++/* s3c64xx_i2c_init
++ *
++ * initialise the controller, set the IO lines and frequency
++*/
++
++static int s3c64xx_i2c_init(struct s3c64xx_i2c *i2c)
++{
++ unsigned long iicon = S3C64XX_IICCON_IRQEN | S3C64XX_IICCON_ACKEN;
++ struct s3c2410_platform_i2c *pdata;
++ unsigned int freq;
++
++ /* get the plafrom data */
++
++ pdata = i2c->dev->platform_data;
++
++ if (pdata->cfg_gpio)
++ pdata->cfg_gpio(to_platform_device(i2c->dev));
++
++ /* write slave address */
++
++ writeb(pdata->slave_addr, i2c->regs + S3C64XX_IICADD);
++
++ dev_info(i2c->dev, "slave address 0x%02x\n", pdata->slave_addr);
++
++ writel(iicon, i2c->regs + S3C64XX_IICCON);
++
++ /* we need to work out the divisors for the clock... */
++
++ if (s3c64xx_i2c_clockrate(i2c, &freq) != 0) {
++ writel(0, i2c->regs + S3C64XX_IICCON);
++ dev_err(i2c->dev, "cannot meet bus frequency required\n");
++ return -EINVAL;
++ }
++
++ /* todo - check that the i2c lines aren't being dragged anywhere */
++
++ dev_info(i2c->dev, "bus frequency set to %d KHz\n", freq);
++ dev_dbg(i2c->dev, "S3C64XX_IICCON=0x%02lx\n", iicon);
++
++ return 0;
++}
++
++/* s3c64xx_i2c_probe
++ *
++ * called by the bus driver when a suitable device is found
++*/
++
++static int s3c64xx_i2c_probe(struct platform_device *pdev)
++{
++ struct s3c64xx_i2c *i2c;
++ struct s3c2410_platform_i2c *pdata;
++ struct resource *res;
++ int ret;
++
++ pdata = pdev->dev.platform_data;
++ if (!pdata) {
++ dev_err(&pdev->dev, "no platform data\n");
++ return -EINVAL;
++ }
++
++ i2c = kzalloc(sizeof(struct s3c64xx_i2c), GFP_KERNEL);
++ if (!i2c) {
++ dev_err(&pdev->dev, "no memory for state\n");
++ return -ENOMEM;
++ }
++
++ strlcpy(i2c->adap.name, "s3c2410-i2c", sizeof(i2c->adap.name));
++ i2c->adap.owner = THIS_MODULE;
++ i2c->adap.algo = &s3c64xx_i2c_algorithm;
++ i2c->adap.retries = 2;
++ i2c->adap.class = I2C_CLASS_HWMON;
++ i2c->tx_setup = 50;
++
++ spin_lock_init(&i2c->lock);
++ init_waitqueue_head(&i2c->wait);
++
++ /* find the clock and enable it */
++
++ i2c->dev = &pdev->dev;
++ i2c->clk = clk_get(&pdev->dev, "i2c");
++ if (IS_ERR(i2c->clk)) {
++ dev_err(&pdev->dev, "cannot get clock\n");
++ ret = -ENOENT;
++ goto err_noclk;
++ }
++
++ dev_dbg(&pdev->dev, "clock source %p\n", i2c->clk);
++
++ clk_enable(i2c->clk);
++
++ /* map the registers */
++
++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ if (res == NULL) {
++ dev_err(&pdev->dev, "cannot find IO resource\n");
++ ret = -ENOENT;
++ goto err_clk;
++ }
++
++ i2c->ioarea = request_mem_region(res->start, (res->end-res->start)+1,
++ pdev->name);
++
++ if (i2c->ioarea == NULL) {
++ dev_err(&pdev->dev, "cannot request IO\n");
++ ret = -ENXIO;
++ goto err_clk;
++ }
++
++ i2c->regs = ioremap(res->start, (res->end-res->start)+1);
++
++ if (i2c->regs == NULL) {
++ dev_err(&pdev->dev, "cannot map IO\n");
++ ret = -ENXIO;
++ goto err_ioarea;
++ }
++
++ dev_dbg(&pdev->dev, "registers %p (%p, %p)\n", i2c->regs, i2c->ioarea, res);
++
++ /* setup info block for the i2c core */
++
++ i2c->adap.algo_data = i2c;
++ i2c->adap.dev.parent = &pdev->dev;
++
++ /* initialise the i2c controller */
++
++ ret = s3c64xx_i2c_init(i2c);
++ if (ret != 0)
++ goto err_iomap;
++
++ /* find the IRQ for this unit (note, this relies on the init call to
++ * ensure no current IRQs pending
++ */
++
++ res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
++ if (res == NULL) {
++ dev_err(&pdev->dev, "cannot find IRQ\n");
++ ret = -ENOENT;
++ goto err_iomap;
++ }
++
++ ret = request_irq(res->start, s3c64xx_i2c_irq, IRQF_DISABLED,
++ pdev->name, i2c);
++
++ if (ret != 0) {
++ dev_err(&pdev->dev, "cannot claim IRQ\n");
++ goto err_iomap;
++ }
++
++ i2c->irq = res;
++
++ dev_dbg(&pdev->dev, "irq resource %p (%lu)\n", res,
++ (unsigned long)res->start);
++
++ /* Note, previous versions of the driver used i2c_add_adapter()
++ * to add the bus at any number. We now pass the bus number via
++ * the platform data, so if unset it will now default to always
++ * being bus 0.
++ */
++
++ i2c->adap.nr = pdata->bus_num;
++
++ ret = i2c_add_numbered_adapter(&i2c->adap);
++ if (ret < 0) {
++ dev_err(&pdev->dev, "failed to add bus to i2c core\n");
++ goto err_irq;
++ }
++
++ platform_set_drvdata(pdev, i2c);
++
++ dev_info(&pdev->dev, "%s: S3C64XX I2C adapter\n", i2c->adap.dev.bus_id);
++ return 0;
++
++ err_irq:
++ free_irq(i2c->irq->start, i2c);
++
++ err_iomap:
++ iounmap(i2c->regs);
++
++ err_ioarea:
++ release_resource(i2c->ioarea);
++ kfree(i2c->ioarea);
++
++ err_clk:
++ clk_disable(i2c->clk);
++ clk_put(i2c->clk);
++
++ err_noclk:
++ return ret;
++}
++
++/* s3c64xx_i2c_remove
++ *
++ * called when device is removed from the bus
++*/
++
++static int s3c64xx_i2c_remove(struct platform_device *pdev)
++{
++ struct s3c64xx_i2c *i2c = platform_get_drvdata(pdev);
++
++ i2c_del_adapter(&i2c->adap);
++ free_irq(i2c->irq->start, i2c);
++
++ clk_disable(i2c->clk);
++ clk_put(i2c->clk);
++
++ iounmap(i2c->regs);
++
++ release_resource(i2c->ioarea);
++ kfree(i2c->ioarea);
++
++ return 0;
++}
++
++#ifdef CONFIG_PM
++static int s3c64xx_i2c_resume(struct platform_device *dev)
++{
++ struct s3c64xx_i2c *i2c = platform_get_drvdata(dev);
++
++ if (i2c != NULL)
++ s3c64xx_i2c_init(i2c);
++
++ return 0;
++}
++
++#else
++#define s3c64xx_i2c_resume NULL
++#endif
++
++/* device driver for platform bus bits */
++
++static struct platform_driver s3c64xx_i2c_driver = {
++ .probe = s3c64xx_i2c_probe,
++ .remove = s3c64xx_i2c_remove,
++ .resume = s3c64xx_i2c_resume,
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "s3c64xx-i2c",
++ },
++};
++
++static int __init i2c_adap_s3c_init(void)
++{
++ int ret;
++
++ ret = platform_driver_register(&s3c64xx_i2c_driver);
++
++ return ret;
++}
++
++static void __exit i2c_adap_s3c_exit(void)
++{
++ platform_driver_unregister(&s3c64xx_i2c_driver);
++}
++
++module_init(i2c_adap_s3c_init);
++module_exit(i2c_adap_s3c_exit);
++
++MODULE_DESCRIPTION("S3C64XX I2C Bus driver");
++MODULE_AUTHOR("Ben Dooks, <ben@simtec.co.uk>");
++MODULE_LICENSE("GPL");
+diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig
+index fb06555..3993702 100644
+--- a/drivers/ide/Kconfig
++++ b/drivers/ide/Kconfig
+@@ -887,6 +887,39 @@ config BLK_DEV_IDE_BAST
+ Say Y here if you want to support the onboard IDE channels on the
+ Simtec BAST or the Thorcom VR1000
+
++config BLK_DEV_IDE_S3C
++ tristate "Samsung S3C IDE Controller"
++ depends on ARM
++ help
++ Say Y here if you want to support the onboard IDE channels on the
++ Simtec BAST or the Thorcom VR1000
++
++config BLK_DEV_IDE_S3C_DIRECT
++ bool "Use DIRECT Mode"
++ default y
++ depends on BLK_DEV_IDE_S3C && (!ARCH_S3C2443)
++ help
++ Say Y here if you want to use DIRECT Mode.
++
++config BLK_DEV_IDE_S3C_PDMA
++ bool "Use DMA in PIO Mode"
++ depends on BLK_DEV_IDE_S3C
++ help
++ Say Y here if you want to support the DMA in PIO Mode.
++
++config BLK_DEV_IDE_S3C_UDMA
++ bool "Use UDMA Mode"
++ depends on BLK_DEV_IDE_S3C && (!ARCH_S3C2443)
++ help
++ Say Y here if you want to support the UDMA.
++
++config IDE_HOOK_IRQ
++ bool "Hooking ATA Interrupt to manage Device"
++ default y
++ depends on BLK_DEV_IDE_S3C
++ help
++ Say Y here if you want to use ATA device.
++
+ config ETRAX_IDE
+ bool "ETRAX IDE support"
+ depends on CRIS && BROKEN
+@@ -1111,7 +1144,7 @@ config BLK_DEV_UMC8672
+ endif
+
+ config BLK_DEV_IDEDMA
+- def_bool BLK_DEV_IDEDMA_PCI || BLK_DEV_IDEDMA_PMAC || BLK_DEV_IDEDMA_ICS || BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
++ def_bool BLK_DEV_IDEDMA_PCI || BLK_DEV_IDEDMA_PMAC || BLK_DEV_IDEDMA_ICS || BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA || BLK_DEV_IDE_S3C_UDMA
+
+ config IDE_ARCH_OBSOLETE_INIT
+ def_bool ALPHA || (ARM && !ARCH_L7200) || BLACKFIN || X86 || IA64 || M32R || MIPS || PARISC || PPC || (SUPERH64 && BLK_DEV_IDEPCI) || SPARC
+diff --git a/drivers/ide/arm/Makefile b/drivers/ide/arm/Makefile
+index 6a78f07..e8d4d9b 100644
+--- a/drivers/ide/arm/Makefile
++++ b/drivers/ide/arm/Makefile
+@@ -2,5 +2,6 @@
+ obj-$(CONFIG_BLK_DEV_IDE_ICSIDE) += icside.o
+ obj-$(CONFIG_BLK_DEV_IDE_RAPIDE) += rapide.o
+ obj-$(CONFIG_BLK_DEV_IDE_BAST) += bast-ide.o
++obj-$(CONFIG_BLK_DEV_IDE_S3C) += s3c-ide.o
+
+ EXTRA_CFLAGS := -Idrivers/ide
+diff --git a/drivers/ide/arm/s3c-ide.c b/drivers/ide/arm/s3c-ide.c
+new file mode 100644
+index 0000000..be6af3c
+--- /dev/null
++++ b/drivers/ide/arm/s3c-ide.c
+@@ -0,0 +1,1223 @@
++/*
++ * $Id: s3c-ide.c,v 1.9 2008/06/11 01:00:33 scsuh Exp $
++ *
++ * linux/drivers/ide/arm/s3c-ide.c
++ * Copyright(C) Samsung Electronics 2006
++ * Seung-Chull, Suh <sc.suh@samsung.com>
++ *
++ * This program is free software; you can redistribute it and/or modify it under
++ * the terms of the GNU General Public License as published by the Free Software
++ * Foundation; either version 2 of the License, or (at your option) any later
++ * version.
++ *
++ * THIS SOFTWARE IS PROVIDED ``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.
++ *
++ * You should have received a copy of the GNU General Public License along with
++ * this program; if not, write to the Free Software Foundation, Inc.,
++ * 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <linux/types.h>
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/delay.h>
++#include <linux/device.h>
++#include <linux/platform_device.h>
++
++#include <linux/init.h>
++#include <linux/ide.h>
++#include <linux/sysdev.h>
++#include <linux/scatterlist.h>
++
++#include <linux/dma-mapping.h>
++#include <linux/proc_fs.h>
++#include <linux/clk.h>
++
++#include "../ide-timing.h"
++
++#include <asm/dma.h>
++#include <asm/dma-mapping.h>
++
++#include <asm/arch/regs-ide.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-s3c6400-clock.h>
++
++#include <asm/io.h>
++#include "s3c-ide.h"
++
++#define DRV_NAME "s3c-ide"
++#define DRV_VERSION "0.7"
++#define DRV_AUTHOR "Seung-Chull, Suh <sc.suh@samsung.com>"
++
++#undef DBG_ATA
++#ifdef DBG_ATA
++#define DbgAta(x...) printk(x)
++#else
++#define DbgAta(x...) do {} while(0);
++#endif
++
++static s3c_ide_hwif_t s3c_ide_hwif;
++
++static void __iomem *ata_base;
++/*=========================================================================
++ * ata controller register functions
++ *=========================================================================
++ */
++static inline int ata_status_check (ide_drive_t * drive, u8 startend)
++{
++ u8 stat;
++ uint i;
++
++ for (i=0; i<10000000; i++) {
++ stat = HWIF(drive)->INB(IDE_STATUS_REG);
++ if ((stat == 0x58) && (startend == 0)) // for starting
++ return 0;
++ else if ((stat == 0x50) && (startend == 1))// for ending
++ return 0;
++ }
++ printk("got error in ata_status_check : %08x\n", stat);
++ return -1;
++}
++
++static inline int bus_fifo_status_check (BUS_STATE status)
++{
++ u32 temp;
++ uint i;
++
++ for (i=0; i<10000000; i++) {
++ temp = readl(ata_base + S3C_BUS_FIFO_STATUS);
++ /* wait for IDLE */
++ if ((temp == 0) && (status == IDLE)) {
++ return 0;
++ }
++ /* wait for PAUSEW */
++ else if (((temp >> 16) == 0x5) && (status == PAUSEW)) {
++ return 0;
++ }
++ /* wait for PAUSER2 and read/write pointer 0 */
++ else if ((temp == 0x60000) && (status == PAUSER2)) {
++ return 0;
++ }
++ }
++ return temp;
++}
++
++/*
++ * return 0: OK
++ * return -1: got error
++ */
++static inline int wait_for_host_ready (void)
++{
++ u32 temp;
++ uint i;
++
++ for (i=0; i<10000000; i++) {
++ temp = readl(ata_base + S3C_ATA_FIFO_STATUS);
++ if ((temp >> 28) == 0) {
++ return 0;
++ }
++ DbgAta("S3C_ATA_FIFO_STATUS: %08x\n", temp);
++ }
++ printk("got error in host ready: %08x\n", temp);
++ return -1;
++}
++
++#ifdef CONFIG_BLK_DEV_IDE_S3C_UDMA
++static u8 read_dev_reg (uint reg)
++{
++ u8 temp;
++
++ wait_for_host_ready();
++ temp = readb(ata_base + reg);
++ wait_for_host_ready();
++ temp = readb(ata_base + S3C_ATA_PIO_RDATA);
++ return temp;
++}
++
++#define STATUS_DEVICE_BUSY 0x80
++static int wait_for_dev_ready (void)
++{
++ u8 temp;
++ uint i;
++
++ for (i=0; i<1000000; i++) {
++ temp = read_dev_reg((uint)S3C_ATA_PIO_CSD);
++// printf("temp2: %08x\n", temp);
++ if ((temp & STATUS_DEVICE_BUSY) == 0) {
++ DbgAta("temp2: %08x\n", temp);
++ DbgAta("wait_for_dev_ready: %d\n", i);
++ return 0;
++ }
++ }
++
++ printk("wait_for_dev_ready: error\n");
++ return -1;
++}
++#endif
++
++#if defined(CONFIG_BLK_DEV_IDE_S3C_UDMA) || defined(CONFIG_BLK_DEV_IDE_S3C_PDMA)
++static void set_config_mode (ATA_MODE mode, int rw)
++{
++ u32 reg = readl(ata_base + S3C_ATA_CFG) & ~(0x39c);
++
++ /* set mode */
++ reg |= mode << 2;
++
++ /* DMA write mode */
++ if (mode && rw)
++ reg |= 0x10;
++
++ /* set ATA DMA auto mode (enable multi block transfer) */
++ if (mode == UDMA)
++ reg |= 0x380;
++
++ writel(reg, ata_base + S3C_ATA_CFG);
++ DbgAta("2:S3C_ATA_CFG = 0x%08x\n", readl(ata_base + S3C_ATA_CFG));
++}
++#endif
++
++#if defined CONFIG_ARCH_S3C2443 || defined (CONFIG_CPU_S3C2450)
++static void init_buf_ctrl (void)
++{
++#if 0
++ /* for EVT0 board */
++ u32 reg = readl(S3C_GPBCON);
++
++ reg &= 0xffffc0fc;
++ reg |= (1<<12 | 1<<10 | 1<<8 | 1<<0);
++ writel(reg, S3C_GPBCON);
++ printk("GPBCON = 0x%08x\n", readl(S3C_GPBCON));
++#else
++ /* for EVT1 board */
++ u32 reg = readl(S3C2410_GPADAT);
++
++ reg &= ~(1<<5);
++ writel(reg, S3C2410_GPADAT);
++
++#endif
++}
++
++static void change_board_buf_mode (ATA_MODE mode, uint rw)
++{
++ u32 reg = readl(S3C2410_GPBDAT) & 0xffffff8e; /* 0,4,5,6 */
++
++ if (mode == UDMA) {
++ /* GPB0->high,GPB4->high => UDMA mode */
++ reg |= (1<<4)|(1);
++ if (rw)
++ reg |= (1<<5);
++ } else {
++ /* GPB0->high,GPB4->low => PIO mode */
++ reg |= (1<<6)|1;
++ }
++ writel(reg, S3C2410_GPBDAT);
++}
++#endif /* CONFIG_ARCH_S3C2443 */
++
++static void set_ata_enable (uint on)
++{
++ u32 temp;
++
++ temp = readl(ata_base + S3C_ATA_CTRL);
++
++ if (on)
++ writel(temp | 0x1, ata_base + S3C_ATA_CTRL);
++ else
++ writel(temp & 0xfffffffe, ata_base + S3C_ATA_CTRL);
++}
++
++static void set_endian_mode (uint little)
++{
++ u32 reg = readl(ata_base + S3C_ATA_CFG);
++
++ /* set Little endian */
++ if (little)
++ reg &= (~0x40);
++ else
++ reg |= 0x40;
++
++ writel(reg, ata_base + S3C_ATA_CFG);
++}
++
++
++static inline void set_trans_command (ATA_TRANSFER_CMD cmd)
++{
++ wait_for_host_ready();
++ writel(cmd, ata_base + S3C_ATA_CMD);
++}
++
++/*
++ * this filter only allows PIO and UDMA.
++ * swdma and mwdma is not supported now. by scsuh
++ */
++static u8 s3c_ide_ratefilter (ide_drive_t *drive, u8 speed)
++{
++ if (drive->media != ide_disk)
++ return min(speed, (u8)XFER_PIO_4);
++
++ switch(speed) {
++ case XFER_UDMA_6:
++ case XFER_UDMA_5:
++ speed = XFER_UDMA_4;// S3C6400 & S3C6410 can support upto UDMA4.
++ break;
++ case XFER_UDMA_4:
++ case XFER_UDMA_3:
++ case XFER_UDMA_2:
++ case XFER_UDMA_1:
++ case XFER_UDMA_0:
++ break;
++ default:
++ speed = min(speed, (u8)XFER_PIO_4);
++ break;
++ }
++ return speed;
++}
++
++static int s3c_ide_tune_chipset (ide_drive_t * drive, u8 xferspeed)
++{
++ ide_hwif_t *hwif = drive->hwif;
++ s3c_ide_hwif_t *s3c_hwif = (s3c_ide_hwif_t *) hwif->hwif_data;
++
++ u8 speed = s3c_ide_ratefilter(drive, xferspeed);
++
++ if (XFER_PIO_0 <= speed && speed <= XFER_PIO_4) {
++ ulong ata_cfg = readl(ata_base + S3C_ATA_CFG);
++
++ switch (speed) {
++ case XFER_PIO_0:
++ case XFER_PIO_1:
++ case XFER_PIO_2:
++ ata_cfg &= (~0x2); //IORDY disable
++ break;
++ case XFER_PIO_3:
++ case XFER_PIO_4:
++ ata_cfg |= 0x2; //IORDY enable
++ break;
++ }
++
++ writel(ata_cfg, ata_base + S3C_ATA_CFG);
++ writel(s3c_hwif->piotime[speed-XFER_PIO_0], ata_base + S3C_ATA_PIO_TIME);
++ } else {
++ writel(s3c_hwif->piotime[0], ata_base + S3C_ATA_PIO_TIME);
++ writel(s3c_hwif->udmatime[speed-XFER_UDMA_0], ata_base + S3C_ATA_UDMA_TIME);
++ }
++ return ide_config_drive_speed(drive, speed);
++}
++
++void read_status (uint index)
++{
++ u32 reg;
++ reg = readl(ata_base + S3C_ATA_IRQ);
++// printk("%d: S3C_ATA_IRQ: %08x\n", index, reg);
++ writel(reg, ata_base + S3C_ATA_IRQ);
++}
++
++int s3c_ide_ack_intr (ide_hwif_t *hwif)
++{
++#ifdef CONFIG_BLK_DEV_IDE_S3C_UDMA
++ s3c_ide_hwif_t *s3c_hwif = (s3c_ide_hwif_t *) hwif->hwif_data;
++#endif
++ u32 reg;
++
++ reg = readl(ata_base + S3C_ATA_IRQ);
++ DbgAta("S3C_ATA_IRQ: %08x\n", reg);
++
++#ifdef CONFIG_BLK_DEV_IDE_S3C_UDMA
++ s3c_hwif->irq_sta = reg;
++#endif
++
++ return 1;
++}
++
++static void s3c_ide_tune_drive (ide_drive_t * drive, u8 pio)
++{
++ pio = ide_get_best_pio_mode(drive, 255, pio);
++ (void) s3c_ide_tune_chipset(drive, (XFER_PIO_0 + pio));
++}
++
++/*
++ * XXX: It is board-specific to support UDMA in smdk24xx.
++ * not supported: SMDK241X, SMDK2443
++ * by scsuh
++ */
++#ifdef CONFIG_BLK_DEV_IDE_S3C_UDMA
++
++static void s3c_ide_dma_host_on (ide_drive_t * drive)
++{
++ DbgAta("##### %s\n", __FUNCTION__);
++}
++
++static int s3c_ide_dma_on (ide_drive_t * drive)
++{
++ DbgAta("##### %s\n", __FUNCTION__);
++ drive->using_dma = 1;
++ s3c_ide_dma_host_on(drive);
++ return 0;
++}
++
++#if 0
++static int s3c_ide_dma_check (ide_drive_t * drive)
++{
++ u8 speed;
++ DbgAta("##### %s\n", __FUNCTION__);
++ /* Is the drive in our DMA black list? */
++ if (s3c_ide_hwif.black_list) {
++ drive->using_dma = 0;
++
++ /* Borrowed the warning message from ide-dma.c */
++ printk(KERN_WARNING "%s: Disabling DMA for %s (blacklisted)\n",
++ drive->name, drive->id->model);
++ } else
++ drive->using_dma = 1;
++
++ speed = ide_find_best_mode(drive, 0x47);
++ DbgAta("speed: %08x\n", speed);
++
++ if (drive->autodma && (speed & XFER_MODE) == XFER_UDMA) {
++ s3c_ide_tune_chipset(drive, speed);
++ return HWIF(drive)->ide_dma_on(drive);
++ }
++
++ HWIF(drive)->dma_off_quietly(drive);
++
++ return 0;
++}
++
++static ide_startstop_t s3c_ide_dma_intr (ide_drive_t *drive)
++{
++ ide_hwif_t *hwif = HWIF(drive);
++ s3c_ide_hwif_t *s3c_hwif = (s3c_ide_hwif_t *) hwif->hwif_data;
++ ulong reg = s3c_hwif->irq_sta;
++ ide_hwgroup_t *hwgroup = hwif->hwgroup;
++
++ DbgAta("reg = %08lx\n", reg);
++ DbgAta("S3C_ATA_XFR_CNT: %08x\n", readl(S3C_ATA_XFR_CNT));
++ DbgAta("index:%d\n", s3c_hwif->index);
++
++ if (reg & 0x10) {
++ DbgAta("write: %08lx %08lx\n",
++ s3c_hwif->table[s3c_hwif->index].addr,
++ s3c_hwif->table[s3c_hwif->index].len);
++ writel(s3c_hwif->table[s3c_hwif->index].len-0x20, S3C_ATA_SBUF_SIZE);
++ writel(s3c_hwif->table[s3c_hwif->index].addr, S3C_ATA_SBUF_START);
++ } else if (reg & 0x08) {
++ DbgAta("read: %08lx %08lx\n",
++ s3c_hwif->table[s3c_hwif->index].addr,
++ s3c_hwif->table[s3c_hwif->index].len);
++ writel(s3c_hwif->table[s3c_hwif->index].len-0x20, S3C_ATA_TBUF_SIZE);
++ writel(s3c_hwif->table[s3c_hwif->index].addr, S3C_ATA_TBUF_START);
++ }
++ s3c_hwif->index++;
++ set_trans_command(ATA_CMD_CONTINUE);
++ hwgroup->handler = s3c_ide_dma_intr;
++
++ return 1;
++}
++#endif
++
++static int s3c_ide_build_sglist (ide_drive_t * drive, struct request *rq)
++{
++ ide_hwif_t *hwif = drive->hwif;
++ s3c_ide_hwif_t *s3c_hwif = (s3c_ide_hwif_t *) hwif->hwif_data;
++ struct scatterlist *sg = hwif->sg_table;
++
++ DbgAta("##### %s\n", __FUNCTION__);
++ ide_map_sg(drive, rq);
++
++ if (rq_data_dir(rq) == READ)
++ hwif->sg_dma_direction = DMA_FROM_DEVICE;
++ else
++ hwif->sg_dma_direction = DMA_TO_DEVICE;
++
++ return dma_map_sg(&s3c_hwif->dev->dev, sg, hwif->sg_nents, hwif->sg_dma_direction);
++}
++
++static int s3c_ide_build_dmatable (ide_drive_t * drive)
++{
++ int i, size, count = 0;
++ ide_hwif_t *hwif = HWIF(drive);
++ struct request *rq = HWGROUP(drive)->rq;
++
++ s3c_ide_hwif_t *s3c_hwif = (s3c_ide_hwif_t *) hwif->hwif_data;
++ struct scatterlist *sg;
++
++ u32 addr_reg, size_reg;
++
++ DbgAta("##### %s\n", __FUNCTION__);
++
++ if (rq_data_dir(rq) == WRITE) {
++ addr_reg = S3C_ATA_SBUF_START;
++ size_reg = S3C_ATA_SBUF_SIZE;
++ } else {
++ addr_reg = S3C_ATA_TBUF_START;
++ size_reg = S3C_ATA_TBUF_SIZE;
++ }
++
++ /* Save for interrupt context */
++ s3c_hwif->drive = drive;
++
++ /* Build sglist */
++ hwif->sg_nents = size = s3c_ide_build_sglist(drive, rq);
++ DbgAta("##### hwif->sg_nents %d\n", hwif->sg_nents);
++
++ if (size > 1) {
++ s3c_hwif->pseudo_dma = 1;
++ DbgAta("sg_nents is more than 1: %d\n", hwif->sg_nents);
++ }
++ if (!size)
++ return 0;
++
++ /* fill the descriptors */
++ sg = hwif->sg_table;
++ for (i=0, sg = hwif->sg_table; i<size && sg_dma_len(sg); i++, sg++) {
++ s3c_hwif->table[i].addr = sg_dma_address(sg);
++ s3c_hwif->table[i].len = sg_dma_len(sg);
++ count += s3c_hwif->table[i].len;
++ DbgAta("data: %08lx %08lx\n",
++ s3c_hwif->table[i].addr,
++ s3c_hwif->table[i].len);
++ }
++ s3c_hwif->table[i].addr = 0;
++ s3c_hwif->table[i].len = 0;
++ s3c_hwif->queue_size = i;
++ DbgAta("total size: %08x, %d\n", count, s3c_hwif->queue_size);
++
++ DbgAta("rw: %08lx %08lx\n",
++ s3c_hwif->table[0].addr,
++ s3c_hwif->table[0].len);
++ writel(s3c_hwif->table[0].len-0x1, ata_base + size_reg);
++ writel(s3c_hwif->table[0].addr, ata_base + addr_reg);
++
++ s3c_hwif->index = 1;
++
++ writel(count, ata_base + S3C_ATA_XFR_NUM);
++
++ return 1;
++}
++
++static int s3c_ide_dma_setup (ide_drive_t * drive)
++{
++ struct request *rq = HWGROUP(drive)->rq;
++
++ if (!s3c_ide_build_dmatable(drive)) {
++ ide_map_sg(drive, rq);
++ DbgAta("return 1\n");
++ return 1;
++ }
++
++ drive->waiting_for_dma = 1;
++ return 0;
++}
++
++static void s3c_ide_dma_exec_cmd (ide_drive_t * drive, u8 command)
++{
++ wait_for_host_ready();
++
++ /* issue cmd to drive */
++ ide_execute_command(drive, command, &ide_dma_intr, (WAIT_CMD), NULL);
++}
++
++static void s3c_ide_dma_start (ide_drive_t * drive)
++{
++ struct request *rq = HWGROUP(drive)->rq;
++ uint rw = (rq_data_dir(rq) == WRITE);
++
++#if defined CONFIG_ARCH_S3C2443 || defined (CONFIG_CPU_S3C2450)
++ /* apply at specific set using buffer control */
++ change_board_buf_mode(UDMA, rw);
++#endif
++ ata_status_check(drive, 0);
++ writel(0x00000003, ata_base + S3C_ATA_IRQ_MSK);
++
++ wait_for_host_ready();
++ /* must be added to wait for Device ready. by scsuh */
++ wait_for_dev_ready();
++ bus_fifo_status_check(IDLE);
++
++ set_config_mode(UDMA, rw);
++ set_trans_command(ATA_CMD_START);
++ return;
++}
++
++static int s3c_ide_dma_end (ide_drive_t * drive)
++{
++ u32 stat = 0;
++ ide_hwif_t *hwif = HWIF(drive);
++ s3c_ide_hwif_t *s3c_hwif = (s3c_ide_hwif_t *) hwif->hwif_data;
++
++ DbgAta("##### %s\n", __FUNCTION__);
++ DbgAta("left: %08x, %08x\n", readl(ata_base + S3C_ATA_XFR_CNT),
++ readl(ata_base + S3C_ATA_XFR_NUM));
++
++#if defined CONFIG_ARCH_S3C2443 || defined (CONFIG_CPU_S3C2450)
++ /* apply at specific set using buffer control */
++ change_board_buf_mode(PIO_CPU, 0);
++#endif
++ wait_for_host_ready();
++
++ stat = readl(ata_base + S3C_BUS_FIFO_STATUS);
++ if ( (stat >> 16) == 0x5 ) { /* in case of PAUSEW. */
++ writel(ATA_CMD_CONTINUE, ata_base + S3C_ATA_CMD);
++ }
++
++ bus_fifo_status_check(IDLE);
++ writel(0x00000003, ata_base + S3C_ATA_IRQ_MSK);
++ set_config_mode(PIO_CPU, 0);
++ ata_status_check(drive, 1);
++
++ drive->waiting_for_dma = 0;
++
++ if (hwif->sg_nents) {
++ dma_unmap_sg(&s3c_hwif->dev->dev, hwif->sg_table, hwif->sg_nents,
++ hwif->sg_dma_direction);
++ hwif->sg_nents = 0;
++ }
++ return 0;
++}
++
++static int s3c_ide_dma_timeout (ide_drive_t * drive)
++{
++ printk(KERN_ERR "%s: DMA timeout occurred: ", drive->name);
++
++ if (HWIF(drive)->ide_dma_test_irq(drive))
++ return 0;
++
++ return HWIF(drive)->ide_dma_end(drive);
++}
++
++/* XXX: we must implement correct function. by scsuh. */
++static int s3c_ide_dma_test_irq (ide_drive_t * drive)
++{
++ return 1;
++}
++
++static void s3c_ide_dma_host_off (ide_drive_t * drive)
++{
++ u32 reg;
++
++ DbgAta("##### %s\n", __FUNCTION__);
++
++#if defined CONFIG_ARCH_S3C2443 || defined (CONFIG_CPU_S3C2450)
++ /* apply at specific set using buffer control */
++ change_board_buf_mode(PIO_CPU, 0);
++#endif
++ set_config_mode(PIO_CPU, 0);
++ mdelay(10);
++
++ /* disable ATA DMA auto mode */
++ reg = readl(ata_base + S3C_ATA_CFG);
++ reg &= (~0x200);
++ writel(reg, ata_base + S3C_ATA_CFG);
++}
++
++static void s3c_ide_dma_off_quietly (ide_drive_t * drive)
++{
++ drive->using_dma = 0;
++ s3c_ide_dma_host_off(drive);
++}
++
++static int s3c_ide_dma_lostirq (ide_drive_t * drive)
++{
++ printk("%08x, %08x\n", readl(ata_base + S3C_ATA_IRQ),
++ readl(ata_base + S3C_ATA_IRQ_MSK));
++ printk("left: %08x, %08x\n", readl(ata_base + S3C_ATA_XFR_CNT),
++ readl(ata_base + S3C_ATA_XFR_NUM));
++
++ printk(KERN_ERR "%s: IRQ lost\n", drive->name);
++ return 0;
++}
++
++#endif
++
++static int s3c_ide_irq_hook (void * data)
++{
++#ifdef CONFIG_BLK_DEV_IDE_S3C_UDMA
++ u32 stat = 0;
++ ide_hwif_t *hwif = (ide_hwif_t *)data;
++ s3c_ide_hwif_t *s3c_hwif = (s3c_ide_hwif_t *) hwif->hwif_data;
++#endif
++
++ u32 reg = readl(ata_base + S3C_ATA_IRQ);
++ writel(reg, ata_base + S3C_ATA_IRQ);
++ DbgAta("##### %s, %08x\n", __FUNCTION__, reg);
++
++#ifdef CONFIG_BLK_DEV_IDE_S3C_UDMA
++ if (s3c_hwif->pseudo_dma) {
++ uint i;
++ i = s3c_hwif->index;
++
++ if (reg & 0x10) {
++ DbgAta("write: %08lx %08lx\n",
++ s3c_hwif->table[i].addr,
++ s3c_hwif->table[i].len);
++ bus_fifo_status_check(PAUSER2);
++ writel(s3c_hwif->table[i].len-0x1, ata_base + S3C_ATA_SBUF_SIZE);
++ writel(s3c_hwif->table[i].addr, ata_base + S3C_ATA_SBUF_START);
++ } else if (reg & 0x08) {
++ DbgAta("read: %08lx %08lx\n",
++ s3c_hwif->table[i].addr,
++ s3c_hwif->table[i].len);
++
++ stat = bus_fifo_status_check(PAUSEW);
++ if (stat == 0x60000) {
++ writel(s3c_hwif->table[i].len-0x1, ata_base + S3C_ATA_SBUF_SIZE);
++ writel(s3c_hwif->table[i].addr, ata_base + S3C_ATA_SBUF_START);
++ }
++
++ writel(s3c_hwif->table[i].len-0x1, ata_base + S3C_ATA_TBUF_SIZE);
++ writel(s3c_hwif->table[i].addr, ata_base + S3C_ATA_TBUF_START);
++ } else {
++ DbgAta("unexpected interrupt : 0x%x\n", reg);
++ return 1;
++ }
++
++ s3c_hwif->index++;
++ if (s3c_hwif->queue_size == s3c_hwif->index) {
++ s3c_hwif->pseudo_dma = 0;
++ DbgAta("UDMA close : s3c_hwif->queue_size == s3c_hwif->index\n");
++ }
++
++ writel(ATA_CMD_CONTINUE, ata_base + S3C_ATA_CMD);
++ return 1;
++ }
++
++ stat = readl(ata_base + S3C_BUS_FIFO_STATUS);
++
++ if ( (stat >> 16) == 0x6 ) { /* in case of PAUSER2. */
++ writel(ATA_CMD_CONTINUE, ata_base + S3C_ATA_CMD);
++ return 1;
++ } else if ( (stat >> 16) == 0x5 ) { /* in case of PAUSEW. */
++ writel(ATA_CMD_CONTINUE, ata_base + S3C_ATA_CMD);
++ }
++#endif
++ return 0;
++}
++
++static void s3c_ide_setup_init_value (s3c_ide_hwif_t * s3c_hwif)
++{
++ ulong t1, t2, teoc;
++ ulong uTdvh1, uTdvs, uTrp, uTss, uTackenv;
++ uint pio_t1[5] = {70, 50, 30, 30, 30};
++ uint pio_t2[5] = {290, 290, 290, 80, 70};
++ uint pio_teoc[5] = {20, 20, 10, 10, 10};
++
++#if 0
++ uint uUdmaTdvh[5] = {10, 10, 10, 10, 10};
++ uint uUdmaTdvs[5] = {100, 60, 50, 35, 20};
++ uint uUdmaTrp[5] = {160, 125, 100, 100, 100};
++ uint uUdmaTss[5] = {50, 50, 50, 50, 50};
++ uint uUdmaTackenvMin[5] = {20, 20, 20, 20, 20};
++#else
++ u32 uUdmaTdvh[5] = { 7, 7, 7, 7, 7 };
++ u32 uUdmaTdvs[5] = { 70, 48, 31, 20, 7 };
++ u32 uUdmaTrp[5] = { 160, 125, 100, 100, 100 };
++ u32 uUdmaTss[5] = { 50, 50, 50, 50, 50 };
++ u32 uUdmaTackenvMin[5] = { 20, 20, 20, 20, 20 };
++#endif
++ ulong cycle_time = (uint) (1000000000 / clk_get_rate(s3c_hwif->clk));
++
++ uint i;
++
++ for (i = 0; i < 5; i++) {
++ t1 = (pio_t1[i] / cycle_time) & 0xff;
++ t2 = (pio_t2[i] / cycle_time) & 0xff;
++ teoc = (pio_teoc[i] / cycle_time) & 0x0f;
++ s3c_hwif->piotime[i] = (teoc << 12) | (t2 << 4) | t1;
++ DbgAta("PIO%dTIME = %08lx\n", i, s3c_hwif->piotime[i]);
++ }
++
++ for (i = 0; i < 5; i++) {
++ uTdvh1 = (uUdmaTdvh[i] / cycle_time) & 0x0f;
++ uTdvs = (uUdmaTdvs[i] / cycle_time) & 0xff;
++ uTrp = (uUdmaTrp[i] / cycle_time) & 0xff;
++ uTss = (uUdmaTss[i] / cycle_time) & 0x0f;
++ uTackenv = (uUdmaTackenvMin[i] / cycle_time) & 0x0f;
++ s3c_hwif->udmatime[i] = (uTdvh1 << 24) | (uTdvs << 16) | (uTrp << 8) | (uTss << 4) | uTackenv;
++ DbgAta("UDMA%dTIME = %08lx\n", i, s3c_hwif->udmatime[i]);
++ }
++}
++
++static void s3c_ide_setup_ports (hw_regs_t * hw, s3c_ide_hwif_t * s3c_hwif)
++{
++ int i;
++ unsigned long *ata_regs = hw->io_ports;
++
++ for (i = 0; i < IDE_IRQ_OFFSET; i++) {
++ *ata_regs++ = (u32)ata_base + 0x1954 + (i << 2);
++ }
++}
++
++/*=========================================================================
++ * ata controller register I/O fuctions
++ *=========================================================================
++ */
++
++static void s3c_ide_OUTB (u8 addr, ulong reg)
++{
++ wait_for_host_ready();
++ writeb(addr, reg);
++}
++
++static void s3c_ide_OUTBSYNC (ide_drive_t *drive, u8 addr, ulong port)
++{
++ wait_for_host_ready();
++ writeb(addr, port);
++}
++
++static void s3c_ide_OUTW (u16 addr, ulong reg)
++{
++ wait_for_host_ready();
++ writew(addr, reg);
++}
++
++static u8 s3c_ide_INB (ulong reg)
++{
++ u8 temp;
++
++ wait_for_host_ready();
++ temp = readb(reg);
++ wait_for_host_ready();
++ temp = readb(ata_base + S3C_ATA_PIO_RDATA);
++ return temp;
++}
++
++static u16 s3c_ide_INW (ulong reg)
++{
++ u16 temp;
++
++ wait_for_host_ready();
++ temp = readw(reg);
++ wait_for_host_ready();
++ temp = readw(ata_base + S3C_ATA_PIO_RDATA);
++ return temp;
++}
++
++#ifdef CONFIG_BLK_DEV_IDE_S3C_PDMA
++/*
++ * check transfer status and return result
++ */
++static int check_dma_done (void)
++{
++ u32 reg;
++ uint i;
++
++ for (i=0; i<0x10000000; i++) {
++ reg = readl(ata_base + S3C_ATA_IRQ);
++ if (reg & 0x01)
++ break;
++ }
++ if (i > (0x10000000-5)) {
++ printk("transmission timeout: %08x\n", reg);
++ return -1;
++ }
++
++ reg = readl(ata_base + S3C_ATA_STATUS);
++ if (reg & 3) {
++ printk("\n\ntransmission failed: %08x\n", reg);
++ printk("ata_irq: %08x\n", readl(ata_base + S3C_ATA_IRQ));
++ printk("ata_cfg: %08x\n", readl(ata_base + S3C_ATA_CFG));
++ return -1;
++ }
++
++ return 0;
++}
++
++static void s3c_ide_OUTSW (ulong port, void *addr, u32 count)
++{
++ dma_addr_t dma_addr;
++
++ /* half-word count. we must double it. by scsuh */
++ count = count << 1;
++
++ DbgAta("@@@@@write: %p, %08x\n", addr, count);
++
++ writel(0x000000ff, ata_base + S3C_ATA_IRQ_MSK);
++
++ dma_addr = dma_map_single(NULL, addr, count, DMA_TO_DEVICE);
++ writel(dma_addr, ata_base + S3C_ATA_SBUF_START);
++ writel(count-1, ata_base + S3C_ATA_SBUF_SIZE);
++ writel(count, ata_base + S3C_ATA_XFR_NUM);
++ set_config_mode(PIO_DMA, 1);
++ set_trans_command(ATA_CMD_START);
++ check_dma_done();
++ set_config_mode(PIO_CPU, 0);
++ dma_unmap_single(NULL, dma_addr, count, DMA_TO_DEVICE);
++
++ writel(0x0000001b, ata_base + S3C_ATA_IRQ);
++ writel(0x0000001b, ata_base + S3C_ATA_IRQ_MSK);
++}
++
++static void s3c_ide_INSW (ulong port, void *addr, u32 count)
++{
++ dma_addr_t dma_addr;
++
++ /* half-word count. we must double it. by scsuh */
++ count = count << 1;
++
++ DbgAta("@@@@@read: %p, %08x\n", addr, count);
++
++ writel(0x000000ff, ata_base + S3C_ATA_IRQ_MSK);
++
++ dma_addr = dma_map_single(NULL, addr, count, DMA_FROM_DEVICE);
++ writel(dma_addr, ata_base + S3C_ATA_TBUF_START);
++ writel(count-1, ata_base + S3C_ATA_TBUF_SIZE);
++ writel(count, ata_base + S3C_ATA_XFR_NUM);
++ set_config_mode(PIO_DMA, 0);
++ set_trans_command(ATA_CMD_START);
++ check_dma_done();
++ set_config_mode(PIO_CPU, 0);
++ dma_unmap_single(NULL, dma_addr, count, DMA_FROM_DEVICE);
++
++ writel(0x0000001b, ata_base + S3C_ATA_IRQ);
++ writel(0x0000001b, ata_base + S3C_ATA_IRQ_MSK);
++}
++#else
++static void s3c_ide_OUTSW(ulong port, void *addr, u32 count)
++{
++ uint i;
++ volatile u16 *temp_addr = (u16*)addr;
++
++ for (i=0; i<count; i++, temp_addr++) {
++ wait_for_host_ready();
++ writel(*temp_addr, port);
++ }
++}
++
++static void s3c_ide_INSW (ulong port, void *addr, u32 count)
++{
++ uint i;
++ volatile u16 *temp_addr = (u16*)addr;
++
++ for (i=0; i<count; i++, temp_addr++) {
++ wait_for_host_ready();
++ *temp_addr = readw(port);
++ wait_for_host_ready();
++ *temp_addr = readw(S3C_ATA_PIO_RDATA);
++ }
++}
++#endif
++
++static void change_mode_to_ata (void)
++{
++ /* TDelay 1 unit = 10us */
++ mdelay(1);
++
++ /* CF controller - True IDE mode setting */
++
++ /* Output pad disable, Card power off, ATA mode */
++ writel(0x07, ata_base + S3C_CFATA_MUX);
++ mdelay(10);
++ /* Output pad enable, Card power off, ATA mode */
++ writel(0x03, ata_base + S3C_CFATA_MUX);
++ mdelay(10);
++ /* Output pad enable, Card power on, ATA mode */
++ writel(0x01, ata_base + S3C_CFATA_MUX);
++ mdelay(500); /* wait for 500ms */
++}
++
++static int s3c_ide_probe (struct platform_device *pdev)
++{
++ s3c_ide_hwif_t *s3c_hwif = &s3c_ide_hwif;
++ ide_hwif_t *hwif;
++ hw_regs_t *hw;
++ int ret = 0;
++ ulong reg;
++ u8 idx[4] = { 0xff, 0xff, 0xff, 0xff };
++
++#ifdef CONFIG_BLK_DEV_IDE_S3C_UDMA
++ char *mode = "PIO/UDMA";
++#elif defined (CONFIG_BLK_DEV_IDE_S3C_PDMA)
++ char *mode = "PIO_ONLY(DMA)";
++#else
++ char *mode = "PIO_ONLY";
++#endif
++
++ memset(&s3c_ide_hwif, 0, sizeof(s3c_ide_hwif));
++
++ s3c_hwif->dev = pdev;
++ s3c_hwif->irq = platform_get_irq(pdev, 0);
++
++// s3c_hwif->regbase = (u32)S3C24XX_VA_CFATA;
++ ata_base = ioremap(S3C_PA_CFATA, S3C_SZ_CFATA);
++
++ s3c_hwif->clk = clk_get(&pdev->dev, "cfata");
++ if (IS_ERR(s3c_hwif->clk)) {
++ printk("failed to find clock source.\n");
++ ret = PTR_ERR(s3c_hwif->clk);
++ s3c_hwif->clk = NULL;
++ goto out;
++ }
++
++ if ((ret = clk_enable(s3c_hwif->clk))) {
++ printk("failed to enable clock source.\n");
++ goto out;
++ }
++
++ s3c_ide_setup_init_value(s3c_hwif);
++
++ /* XXX: Because this code is 2443 specific
++ * it will be moved to new functions
++ * by scsuh.
++ */
++#if defined CONFIG_ARCH_S3C2443 || defined (CONFIG_CPU_S3C2450)
++ {
++ ulong *temp_adr;
++ mdelay(1); // TDelay 1 unit = 10us
++
++ // GPIO, EBI setting
++ temp_adr = S3C24XX_VA_EBI+8;
++ reg = readl(temp_adr);
++ writel(reg | (1 << 10) | (1 << 9), temp_adr);
++ reg = readl(S3C2410_GPGCON);
++ writel(reg | (3 << 30) | (3 << 28) | (3 << 26) | (3 << 24) | (3 << 22), S3C2410_GPGCON);
++ reg = readl(S3C2410_GPACON);
++ writel(reg | (1 << 27) | (1 << 11) | (1 << 14) | (1 << 13), S3C2410_GPACON);
++ reg = readl(S3C2410_MISCCR);
++ writel(reg & (~(1 << 30)), S3C2410_MISCCR);
++
++ init_buf_ctrl();
++ change_board_buf_mode(PIO_CPU, 0);
++
++ /* CF controller - True IDE mode setting */
++ change_mode_to_ata();
++
++ /* Card configuration */
++ writel(0x1C238, ata_base + S3C_ATA_PIO_TIME);
++ writel(0x20B1362, ata_base + S3C_ATA_UDMA_TIME);
++ set_endian_mode(1);
++ set_ata_enable(1);
++ mdelay(400); // wait for 200ms, be positively necessary
++ }
++#elif defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ {
++ mdelay(1); // TDelay 1 unit = 10us
++
++ reg = readl(S3C_MEM_SYS_CFG) & (~0x0000003f);
++ writel(reg | 0x00000030, S3C_MEM_SYS_CFG);
++
++#ifdef CONFIG_BLK_DEV_IDE_S3C_DIRECT
++ { /* direct mode */
++ u32 temp;
++
++ printk(" * CF EBI MODE : Direct Mode\n\n");
++ reg = readl(S3C_MEM_SYS_CFG);
++ writel(reg | 0x00004000, S3C_MEM_SYS_CFG);
++
++ temp = readl(S3C_GPACON);
++
++ // D: Set XhiDATA[15:0] pins as CF Data[15:0]
++ writel(0x55555555, S3C_GPK0CON);
++ writel(0x55555555, S3C_GPK1CON);
++ // A: Set XhiADDR[2:0] pins as CF ADDR[2:0]
++ reg = readl(S3C_GPL0CON) & (~0x00000fff);
++ writel(reg | 0x00000666, S3C_GPL0CON);
++ // C: Set Xhi control pins as CF control pins(IORDY, IOWR, IORD, CE[1], CE[0])
++ writel(0x00066666, S3C_GPMCON);
++
++ /* This line must be here because Uart ports(GPIO_A)
++ * are changed after setting GPIO_K.
++ */
++ writel(temp, S3C_GPACON);
++ }
++#else
++ { /* indirect mode */
++ printk(" * CF EBI MODE : InDirect Mode\n\n");
++ reg = readl(S3C_MEM_SYS_CFG) & (~0x00004000);
++ writel(reg, S3C_MEM_SYS_CFG);
++
++ // C: Set Xhi control pins as CF control pins(IORDY, IOWR, IORD, CE[1], CE[0])
++ writel(0x00066666, S3C_GPMCON);
++ }
++#endif
++
++ change_mode_to_ata();
++
++ writel(0x1C238, ata_base + S3C_ATA_PIO_TIME); /* 0x1C238 */
++ writel(0x20B1362, ata_base + S3C_ATA_UDMA_TIME); /* 0x20B1362 */
++ set_endian_mode(1);
++ set_ata_enable(1);
++ mdelay(400); // wait for 200ms, be positively necessary
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ reg = readl(S3C_GPNCON) & ~(0x3<<(2*8));
++ writel(reg | (1<<(2*8)), S3C_GPNCON);
++
++ reg = readl(S3C_GPNDAT);
++ writel(reg | (1<<8), S3C_GPNDAT);
++
++ mdelay(500);
++
++ writel(reg & ~(1<<8), S3C_GPNDAT);
++#endif
++ }
++#endif
++ /* remove IRQ Status */
++ writel(0x1f, ata_base + S3C_ATA_IRQ);
++ writel(0x1f, ata_base + S3C_ATA_IRQ);
++ writel(0x1b, ata_base + S3C_ATA_IRQ_MSK);
++
++ hwif = &ide_hwifs[pdev->id];
++ hw = &hwif->hw;
++ hwif->irq = hw->irq = s3c_hwif->irq;
++ hwif->chipset = ide_s3c;
++ s3c_ide_setup_ports(hw, s3c_hwif);
++ memcpy(hwif->io_ports, hw->io_ports, sizeof(hwif->io_ports));
++
++ hwif->ultra_mask = 0x0; /* Disable Ultra DMA */
++ hwif->mwdma_mask = 0x0;
++ hwif->swdma_mask = 0x0;
++
++ hwif->noprobe = 0;
++ hwif->drives[0].unmask = 1;
++ hwif->drives[1].unmask = 1;
++
++ /* hold should be on in all cases */
++ hwif->hold = 1;
++ hwif->mmio = 1;
++
++ hwif->OUTB = &s3c_ide_OUTB;
++ hwif->OUTBSYNC = &s3c_ide_OUTBSYNC;
++ hwif->OUTW = &s3c_ide_OUTW;
++ hwif->OUTSW = &s3c_ide_OUTSW;
++
++ hwif->INB = &s3c_ide_INB;
++ hwif->INW = &s3c_ide_INW;
++ hwif->INSW = &s3c_ide_INSW;
++
++ hwif->pio_mask = XFER_PIO_4;
++ hwif->set_pio_mode = &s3c_ide_tune_drive;
++ hwif->set_dma_mode = &s3c_ide_tune_chipset;
++
++#ifdef CONFIG_IDE_HOOK_IRQ
++ hwif->ide_irq_hook = &s3c_ide_irq_hook;
++#endif
++
++#if defined (CONFIG_BLK_DEV_IDE_S3C_UDMA)
++ hwif->ultra_mask = 0x1f; /* enable Ultra DMA 0 ~ 4 */
++ hwif->dma_off_quietly = &s3c_ide_dma_off_quietly;
++ hwif->dma_timeout = &s3c_ide_dma_timeout;
++
++ hwif->dma_exec_cmd = &s3c_ide_dma_exec_cmd;
++ hwif->dma_start = &s3c_ide_dma_start;
++ hwif->ide_dma_end = &s3c_ide_dma_end;
++ hwif->dma_setup = &s3c_ide_dma_setup;
++ hwif->ide_dma_test_irq = &s3c_ide_dma_test_irq;
++ hwif->dma_host_off = &s3c_ide_dma_host_off;
++ hwif->dma_host_on = &s3c_ide_dma_host_on;
++ hwif->dma_lost_irq = &s3c_ide_dma_lostirq;
++ hwif->ide_dma_on = &s3c_ide_dma_on;
++
++#else
++ hwif->channel = 0;
++ hwif->hold = 1;
++ hwif->select_data = 0; /* no chipset-specific code */
++ hwif->config_data = 0; /* no chipset-specific code */
++#endif
++
++ hwif->drives[0].autotune = 1; /* 1=autotune, 2=noautotune, 0=default */
++ hwif->drives[0].no_io_32bit = 1;
++
++ s3c_ide_hwif.hwif = hwif;
++ hwif->hwif_data = &s3c_ide_hwif;
++
++ idx[0] = hwif->index;
++ ide_device_add(idx);
++
++ dev_set_drvdata(pdev, hwif);
++
++ printk(KERN_INFO "S3C24XX IDE(builtin) configured for %s\n", mode);
++
++out:
++ return ret;
++}
++
++static int s3c_ide_remove(struct platform_device *dev)
++{
++ struct resource *res;
++ ide_hwif_t *hwif = platform_get_drvdata(dev);
++
++ ide_unregister(hwif - ide_hwifs);
++
++ iounmap(ata_base);
++
++ res = platform_get_resource(dev, IORESOURCE_MEM, 0);
++ release_mem_region(res->start, res->end - res->start);
++
++ return 0;
++}
++
++static struct platform_driver s3c_ide_driver = {
++ .probe = s3c_ide_probe,
++ .remove = s3c_ide_remove,
++ .driver = {
++ .name = "s3c-ide",
++ },
++};
++
++
++static int __init s3c_ide_init(void)
++{
++ return platform_driver_register(&s3c_ide_driver);
++}
++
++static void __exit s3c_ide_exit(void)
++{
++ platform_driver_unregister(&s3c_ide_driver);
++}
++
++module_init(s3c_ide_init);
++module_exit(s3c_ide_exit);
++
++static int s3c_ata_proc_read (
++ char *buffer,
++ char **buffer_location,
++ off_t offset,
++ int buffer_length,
++ int *zero,
++ void *ptr
++)
++{
++#ifdef CONFIG_BLK_DEV_IDE_S3C_UDMA
++ char *mode = "PIO/UDMA";
++#elif defined (CONFIG_BLK_DEV_IDE_S3C_PDMA)
++ char *mode = "PIO_ONLY(DMA)";
++#else
++ char *mode = "PIO_ONLY";
++#endif
++
++ printk("current mode is %s\n", mode);
++ return 0;
++}
++
++static int s3c_ata_proc_write (
++ struct file *file,
++ const char *buffer,
++ unsigned long count,
++ void *data
++)
++{
++ return 0;
++}
++
++static struct proc_dir_entry *evb_resource_dump;
++
++int __init s3c_ata_rw_proc (void)
++{
++ evb_resource_dump = create_proc_entry("s3c-ata", 0666, &proc_root);
++ evb_resource_dump->read_proc = s3c_ata_proc_read;
++ evb_resource_dump->write_proc = s3c_ata_proc_write;
++ evb_resource_dump->nlink = 1;
++ return 0;
++}
++module_init(s3c_ata_rw_proc);
++MODULE_DESCRIPTION("S3C ATA in CF/ATA Driver");
++MODULE_LICENSE("GPL");
+diff --git a/drivers/ide/arm/s3c-ide.h b/drivers/ide/arm/s3c-ide.h
+new file mode 100644
+index 0000000..95c45e8
+--- /dev/null
++++ b/drivers/ide/arm/s3c-ide.h
+@@ -0,0 +1,113 @@
++/*
++ * $Id: s3c-ide.h,v 1.2 2008/06/11 00:56:02 scsuh Exp $
++ *
++ * drivers/ide/arm/s3c-ide.h
++ *
++ * This program is free software; you can redistribute it and/or modify it under
++ * the terms of the GNU General Public License as published by the Free Software
++ * Foundation; either version 2 of the License, or (at your option) any later
++ * version.
++ *
++ * THIS SOFTWARE IS PROVIDED ``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.
++ *
++ * You should have received a copy of the GNU General Public License along with
++ * this program; if not, write to the Free Software Foundation, Inc.,
++ * 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++typedef enum {
++ PIO0, PIO1, PIO2, PIO3, PIO4
++} PIOMODE;
++
++typedef enum {
++ UDMA0, UDMA1, UDMA2, UDMA3, UDMA4
++} UDMAMODE;
++
++typedef enum {
++ ATA_CMD_STOP, ATA_CMD_START, ATA_CMD_ABORT, ATA_CMD_CONTINUE
++} ATA_TRANSFER_CMD;
++
++typedef enum {
++ ATA_INT_XFER_DONE, ATA_INT_UDMA_HOLD, ATA_INT_IRQ,
++ ATA_INT_TBUF_FULL, ATA_INT_SBUF_EMPTY
++} ATA_INT_SRC;
++
++typedef enum {
++ PIO_CPU, PIO_DMA, UDMA
++} ATA_MODE;
++
++typedef enum {
++ IDLE, BUSYW, PREP, BUSYR, PAUSER, PAUSEW, PAUSER2
++} BUS_STATE;
++
++#ifdef CONFIG_BLK_DEV_IDE_S3C_UDMA
++ #define DMA_WAIT_TIMEOUT 100
++ #define NUM_DESCRIPTORS PRD_ENTRIES
++#else
++ #define NUM_DESCRIPTORS 2
++#endif
++
++#ifdef CONFIG_PM
++/*
++* This will enable the device to be powered up when write() or read()
++* is called. If this is not defined, the driver will return -EBUSY.
++*/
++#define WAKE_ON_ACCESS 1
++
++typedef struct
++{
++ spinlock_t lock; /* Used to block on state transitions */
++ unsigned stopped; /* USed to signaling device is stopped */
++} pm_state;
++#endif
++
++typedef struct
++{
++ ulong addr; /* Used to block on state transitions */
++ ulong len; /* Power Managers device structure */
++} dma_queue_t;
++
++typedef struct
++{
++ u32 tx_dev_id, rx_dev_id, target_dev_id;
++ ide_hwif_t *hwif;
++#ifdef CONFIG_BLK_DEV_IDE_S3C_UDMA
++ ide_drive_t *drive;
++ u8 white_list, black_list;
++
++ uint index; /* current queue index */
++ uint queue_size; /* total queue size requested */
++ dma_queue_t table[NUM_DESCRIPTORS];
++ uint irq_sta;
++ uint pseudo_dma; /* in DMA session */
++#endif
++ struct platform_device *dev;
++ int irq;
++ void __iomem *regbase;
++ ulong piotime[5];
++ ulong udmatime[5];
++ struct clk *clk;
++
++#ifdef CONFIG_PM
++ pm_state pm;
++#endif
++} s3c_ide_hwif_t;
++
++/* s3c2443 has some faults in bus sharing.
++ * so must use lock and unlock in UDMA. by scsuh.
++ */
++#ifdef CONFIG_ARCH_S3C2443
++void lock_rom_bus(void);
++void unlock_rom_bus(void);
++#endif
++
+diff --git a/drivers/ide/ide-dma.c b/drivers/ide/ide-dma.c
+index 4703837..5f9558d 100644
+--- a/drivers/ide/ide-dma.c
++++ b/drivers/ide/ide-dma.c
+@@ -664,10 +664,15 @@ static unsigned int ide_get_mode_mask(ide_drive_t *drive, u8 base, u8 req_mode)
+ /*
+ * avoid false cable warning from eighty_ninty_three()
+ */
++
++// Though 80c ribbon Cable is used on SMDK board, kernel can not detect it.
++// Because CF/ATA Converter Socket is used for ATA interface on SMDK board.
++/*
+ if (req_mode > XFER_UDMA_2) {
+ if ((mask & 0x78) && (eighty_ninty_three(drive) == 0))
+ mask &= 0x07;
+ }
++*/
+ break;
+ case XFER_MW_DMA_0:
+ if ((id->field_valid & 2) == 0)
+diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
+index bef781f..0693885 100644
+--- a/drivers/ide/ide-io.c
++++ b/drivers/ide/ide-io.c
+@@ -1591,6 +1591,13 @@ irqreturn_t ide_intr (int irq, void *dev_id)
+ return IRQ_NONE;
+ }
+
++#ifdef CONFIG_IDE_HOOK_IRQ
++ if (hwif->ide_irq_hook(hwif)) {
++ spin_unlock_irqrestore(&ide_lock, flags);
++ return IRQ_HANDLED;
++ }
++#endif
++
+ if ((handler = hwgroup->handler) == NULL || hwgroup->polling) {
+ /*
+ * Not expecting an interrupt from this drive.
+diff --git a/drivers/input/Kconfig b/drivers/input/Kconfig
+index 63512d9..ee55dcd 100644
+--- a/drivers/input/Kconfig
++++ b/drivers/input/Kconfig
+@@ -114,6 +114,28 @@ config INPUT_JOYDEV
+ To compile this driver as a module, choose M here: the
+ module will be called joydev.
+
++config INPUT_TSDEV
++ tristate "Touchscreen interface"
++ ---help---
++ Say Y here if you have an application that only can understand the
++ Compaq touchscreen protocol for absolute pointer data. This is
++ useful namely for embedded configurations.
++
++ If unsure, say N.
++
++ To compile this driver as a module, choose M here: the
++ module will be called tsdev.
++
++config INPUT_TSDEV_SCREEN_X
++ int "Horizontal screen resolution"
++ depends on INPUT_TSDEV
++ default "480"
++
++config INPUT_TSDEV_SCREEN_Y
++ int "Vertical screen resolution"
++ depends on INPUT_TSDEV
++ default "640"
++
+ config INPUT_EVDEV
+ tristate "Event interface"
+ help
+diff --git a/drivers/input/Makefile b/drivers/input/Makefile
+index 99af903..8dda9c9 100644
+--- a/drivers/input/Makefile
++++ b/drivers/input/Makefile
+@@ -14,6 +14,7 @@ obj-$(CONFIG_INPUT_MOUSEDEV) += mousedev.o
+ obj-$(CONFIG_INPUT_JOYDEV) += joydev.o
+ obj-$(CONFIG_INPUT_EVDEV) += evdev.o
+ obj-$(CONFIG_INPUT_EVBUG) += evbug.o
++obj-$(CONFIG_INPUT_TSDEV) += tsdev.o
+
+ obj-$(CONFIG_INPUT_KEYBOARD) += keyboard/
+ obj-$(CONFIG_INPUT_MOUSE) += mouse/
+diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig
+index 086d58c..75331a7 100644
+--- a/drivers/input/keyboard/Kconfig
++++ b/drivers/input/keyboard/Kconfig
+@@ -274,6 +274,16 @@ config KEYBOARD_GPIO
+ To compile this driver as a module, choose M here: the
+ module will be called gpio-keys.
+
++config KEYPAD_S3C
++ tristate "S3C keypad support"
++ depends on (CPU_S3C6400 || CPU_S3C6410)
++ default n
++ help
++ Say Y here if you want to use the S3C SMDK keypad.
++
++ To compile this driver as a module, choose M here: the
++ module will be called s3c-keypad.
++
+ config KEYBOARD_MAPLE
+ tristate "Maple bus keyboard"
+ depends on SH_DREAMCAST && MAPLE
+diff --git a/drivers/input/keyboard/Makefile b/drivers/input/keyboard/Makefile
+index e97455f..212452c 100644
+--- a/drivers/input/keyboard/Makefile
++++ b/drivers/input/keyboard/Makefile
+@@ -25,3 +25,4 @@ obj-$(CONFIG_KEYBOARD_HP6XX) += jornada680_kbd.o
+ obj-$(CONFIG_KEYBOARD_HP7XX) += jornada720_kbd.o
+ obj-$(CONFIG_KEYBOARD_MAPLE) += maple_keyb.o
+ obj-$(CONFIG_KEYBOARD_BFIN) += bf54x-keys.o
++obj-$(CONFIG_KEYPAD_S3C) += s3c-keypad.o
+diff --git a/drivers/input/keyboard/s3c-keypad.c b/drivers/input/keyboard/s3c-keypad.c
+new file mode 100644
+index 0000000..7bd73a2
+--- /dev/null
++++ b/drivers/input/keyboard/s3c-keypad.c
+@@ -0,0 +1,337 @@
++/*
++ * drivers/input/keyboard/s3c-keypad.c
++ * KeyPad Interface on S3C
++ *
++ * $Id: s3c-keypad.c,v 1.1 2008/06/09 07:43:16 dark0351 Exp $
++ *
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file COPYING in the main directory of this archive
++ * for more details.
++ */
++
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/interrupt.h>
++#include <linux/input.h>
++#include <linux/platform_device.h>
++#include <linux/miscdevice.h>
++
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/delay.h>
++#include <asm/irq.h>
++
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-keypad.h>
++#include "s3c-keypad.h"
++
++#undef S3C_KEYPAD_DEBUG
++//#define S3C_KEYPAD_DEBUG
++
++#ifdef S3C_KEYPAD_DEBUG
++#define DPRINTK(x...) printk("S3C-Keypad " x)
++#else
++#define DPRINTK(x...) /* !!!! */
++#endif
++
++#define DEVICE_NAME "s3c-keypad"
++
++#define TRUE 1
++#define FALSE 0
++
++static struct timer_list keypad_timer;
++static int is_timer_on = FALSE;
++
++
++static int keypad_scan(u32 *keymask_low, u32 *keymask_high)
++{
++ int i,j = 0;
++ u32 cval,rval;
++
++ for (i=0; i<KEYPAD_COLUMNS; i++) {
++ cval = readl(key_base+S3C_KEYIFCOL) | KEYCOL_DMASK;
++ cval &= ~(1 << i);
++ writel(cval, key_base+S3C_KEYIFCOL);
++
++ udelay(KEYPAD_DELAY);
++
++ rval = ~(readl(key_base+S3C_KEYIFROW)) & KEYROW_DMASK;
++
++ if ((i*KEYPAD_ROWS) < MAX_KEYMASK_NR)
++ *keymask_low |= (rval << (i * KEYPAD_ROWS));
++ else {
++ *keymask_high |= (rval << (j * KEYPAD_ROWS));
++ j = j +1;
++ }
++ }
++
++ writel(KEYIFCOL_CLEAR, key_base+S3C_KEYIFCOL);
++
++ return 0;
++}
++
++static unsigned prevmask_low = 0, prevmask_high = 0;
++
++static void keypad_timer_handler(unsigned long data)
++{
++ u32 keymask_low = 0, keymask_high = 0;
++ u32 press_mask_low, press_mask_high;
++ u32 release_mask_low, release_mask_high;
++ int i;
++ struct s3c_keypad *pdata = (struct s3c_keypad *)data;
++ struct input_dev *dev = pdata->dev;
++
++ keypad_scan(&keymask_low, &keymask_high);
++
++ if (keymask_low != prevmask_low) {
++ press_mask_low =
++ ((keymask_low ^ prevmask_low) & keymask_low);
++ release_mask_low =
++ ((keymask_low ^ prevmask_low) & prevmask_low);
++
++ i = 0;
++ while (press_mask_low) {
++ if (press_mask_low & 1) {
++ input_report_key(dev,pdata->keycodes[i],1);
++ DPRINTK("low Pressed : %d\n",i);
++ }
++ press_mask_low >>= 1;
++ i++;
++ }
++
++ i = 0;
++ while (release_mask_low) {
++ if (release_mask_low & 1) {
++ input_report_key(dev,pdata->keycodes[i],0);
++ DPRINTK("low Released : %d\n",i);
++ }
++ release_mask_low >>= 1;
++ i++;
++ }
++ prevmask_low = keymask_low;
++ }
++
++ if (keymask_high != prevmask_high) {
++ press_mask_high =
++ ((keymask_high ^ prevmask_high) & keymask_high);
++ release_mask_high =
++ ((keymask_high ^ prevmask_high) & prevmask_high);
++
++ i = 0;
++ while (press_mask_high) {
++ if (press_mask_high & 1) {
++ input_report_key(dev,pdata->keycodes[i+MAX_KEYMASK_NR],1);
++ DPRINTK("high Pressed : %d %d\n",pdata->keycodes[i+MAX_KEYMASK_NR],i);
++ }
++ press_mask_high >>= 1;
++ i++;
++ }
++
++ i = 0;
++ while (release_mask_high) {
++ if (release_mask_high & 1) {
++ input_report_key(dev,pdata->keycodes[i+MAX_KEYMASK_NR],0);
++ DPRINTK("high Released : %d\n",pdata->keycodes[i+MAX_KEYMASK_NR]);
++ }
++ release_mask_high >>= 1;
++ i++;
++ }
++ prevmask_high = keymask_high;
++ }
++
++ if (keymask_low | keymask_high) {
++ mod_timer(&keypad_timer,jiffies + HZ/10);
++ } else {
++ writel(KEYIFCON_INIT, key_base+S3C_KEYIFCON);
++ is_timer_on = FALSE;
++ }
++}
++
++static irqreturn_t s3c_keypad_isr(int irq, void *dev_id)
++{
++
++ /* disable keypad interrupt and schedule for keypad timer handler */
++ writel(readl(key_base+S3C_KEYIFCON) & ~(INT_F_EN|INT_R_EN), key_base+S3C_KEYIFCON);
++
++ keypad_timer.expires = jiffies + (HZ/100);
++ if ( is_timer_on == FALSE) {
++ add_timer(&keypad_timer);
++ is_timer_on = TRUE;
++ } else {
++ mod_timer(&keypad_timer,keypad_timer.expires);
++ }
++ /*Clear the keypad interrupt status*/
++ writel(KEYIFSTSCLR_CLEAR, key_base+S3C_KEYIFSTSCLR);
++
++ return IRQ_HANDLED;
++}
++
++
++
++static int __init s3c_keypad_probe(struct platform_device *pdev)
++{
++ int ret = 0;
++ struct input_dev *input_dev;
++ int key, code;
++ struct s3c_keypad *s3c_keypad;
++
++ key_base = ioremap(S3C24XX_PA_KEYPAD, S3C24XX_SZ_KEYPAD);
++
++ if (key_base == NULL) {
++ printk(KERN_ERR "Failed to remap register block\n");
++ return -ENOMEM;
++ }
++
++ s3c_keypad = kzalloc(sizeof(struct s3c_keypad), GFP_KERNEL);
++ input_dev = input_allocate_device();
++
++ if (!s3c_keypad || !input_dev) {
++ kfree(s3c_keypad);
++ input_free_device(input_dev);
++ return -ENOMEM;
++ }
++
++ platform_set_drvdata(pdev, s3c_keypad);
++ s3c_keypad->dev = input_dev;
++
++ writel(KEYIFCON_INIT, key_base+S3C_KEYIFCON);
++ writel(KEYIFFC_DIV, key_base+S3C_KEYIFFC);
++
++ /* Set GPIO Port for keypad mode and pull-up disable*/
++ writel(KEYPAD_ROW_GPIO_SET, KEYPAD_ROW_GPIOCON);
++ writel(KEYPAD_COL_GPIO_SET, KEYPAD_COL_GPIOCON);
++
++ writel(KEYPAD_ROW_GPIOPUD_DIS, KEYPAD_ROW_GPIOPUD);
++ writel(KEYPAD_COL_GPIOPUD_DIS, KEYPAD_COL_GPIOPUD);
++
++ writel(KEYIFCOL_CLEAR, key_base+S3C_KEYIFCOL);
++
++ /* create and register the input driver */
++ set_bit(EV_KEY, input_dev->evbit);
++ set_bit(EV_REP, input_dev->evbit);
++ s3c_keypad->nr_rows = KEYPAD_ROWS;
++ s3c_keypad->no_cols = KEYPAD_COLUMNS;
++ s3c_keypad->total_keys = MAX_KEYPAD_NR;
++
++ for(key = 0; key < s3c_keypad->total_keys; key++){
++ code = s3c_keypad->keycodes[key] = keypad_keycode[key];
++ if(code<=0)
++ continue;
++ set_bit(code & KEY_MAX, input_dev->keybit);
++ }
++
++ input_dev->name = DEVICE_NAME;
++ input_dev->phys = "s3c-keypad/input0";
++ input_dev->cdev.dev = &pdev->dev;
++ input_dev->private = s3c_keypad;
++
++ input_dev->id.bustype = BUS_HOST;
++ input_dev->id.vendor = 0x0001;
++ input_dev->id.product = 0x0001;
++ input_dev->id.version = 0x0001;
++
++ input_dev->keycode = keypad_keycode;
++
++ ret = input_register_device(input_dev);
++ if (ret) {
++ printk("Unable to register s3c-keypad input device!!!\n");
++ goto out;
++ }
++
++
++ /* Scan timer init */
++ init_timer(&keypad_timer);
++ keypad_timer.function = keypad_timer_handler;
++ keypad_timer.data = (unsigned long)s3c_keypad;
++
++ ret = request_irq(IRQ_KEYPAD, s3c_keypad_isr, IRQF_SAMPLE_RANDOM,
++ DEVICE_NAME, (void *) pdev);
++ if (ret) {
++ printk("request_irq failed (IRQ_KEYPAD) !!!\n");
++ goto out;
++ }
++
++ keypad_timer.expires = jiffies + (HZ/10);
++
++ if (is_timer_on == FALSE) {
++ add_timer(&keypad_timer);
++ is_timer_on = TRUE;
++ } else {
++ mod_timer(&keypad_timer,keypad_timer.expires);
++ }
++
++ printk( DEVICE_NAME " Initialized\n");
++ return 0;
++
++out:
++ input_unregister_device(input_dev);
++ kfree(s3c_keypad);
++ return ret;
++}
++
++static int s3c_keypad_remove(struct platform_device *pdev)
++{
++ struct input_dev *input_dev = platform_get_drvdata(pdev);
++ writel(KEYIFCON_CLEAR, key_base+S3C_KEYIFCON);
++
++ input_unregister_device(input_dev);
++ kfree(pdev->dev.platform_data);
++ free_irq(IRQ_KEYPAD, (void *) pdev);
++
++ del_timer(&keypad_timer);
++ printk(DEVICE_NAME " Removed.\n");
++ return 0;
++}
++
++#ifdef CONFIG_PM
++static int s3c_keypad_suspend(struct platform_device *dev, pm_message_t state)
++{
++ /* TODO */
++ return 0;
++}
++
++static int s3c_keypad_resume(struct platform_device *dev)
++{
++ /* TODO */
++ return 0;
++}
++#else
++#define s3c_keypad_suspend NULL
++#define s3c_keypad_resume NULL
++#endif /* CONFIG_PM */
++
++static struct platform_driver s3c_keypad_driver = {
++ .probe = s3c_keypad_probe,
++ .remove = s3c_keypad_remove,
++ .suspend = s3c_keypad_suspend,
++ .resume = s3c_keypad_resume,
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "s3c-keypad",
++ },
++};
++
++static int __init s3c_keypad_init(void)
++{
++ int ret;
++
++ ret = platform_driver_register(&s3c_keypad_driver);
++
++ if(!ret)
++ printk(KERN_INFO "S3C Keypad Driver\n");
++
++ return ret;
++}
++
++static void __exit s3c_keypad_exit(void)
++{
++ platform_driver_unregister(&s3c_keypad_driver);
++}
++
++module_init(s3c_keypad_init);
++module_exit(s3c_keypad_exit);
++
++MODULE_AUTHOR("Samsung");
++MODULE_LICENSE("GPL");
++MODULE_DESCRIPTION("KeyPad interface for Samsung S3C");
+diff --git a/drivers/input/keyboard/s3c-keypad.h b/drivers/input/keyboard/s3c-keypad.h
+new file mode 100644
+index 0000000..4207bfa
+--- /dev/null
++++ b/drivers/input/keyboard/s3c-keypad.h
+@@ -0,0 +1,61 @@
++/*
++ *
++ * $Id: s3c-keypad.h,v 1.5 2008/05/23 06:22:53 dark0351 Exp $
++ */
++
++#ifndef _S3C_KEYPAD_H_
++#define _S3C_KEYPAD_H_
++
++static void __iomem *key_base;
++
++#if defined(CONFIG_CPU_S3C6400) || defined (CONFIG_CPU_S3C6410)
++#define KEYPAD_COLUMNS 8
++#define KEYPAD_ROWS 8
++#define MAX_KEYPAD_NR 64 /* 8*8 */
++#define MAX_KEYMASK_NR 32
++
++int keypad_keycode[] = {
++ 1, 2, KEY_1, KEY_Q, KEY_A, 6, 7, KEY_LEFT,
++ 9, 10, KEY_2, KEY_W, KEY_S, KEY_Z, KEY_RIGHT, 16,
++ 17, 18, KEY_3, KEY_E, KEY_D, KEY_X, 23, KEY_UP,
++ 25, 26, KEY_4, KEY_R, KEY_F, KEY_C, 31, 32,
++ 33, KEY_O, KEY_5, KEY_T, KEY_G, KEY_V, KEY_DOWN, KEY_BACKSPACE,
++ KEY_P, KEY_0, KEY_6, KEY_Y, KEY_H, KEY_SPACE, 47, 48,
++ KEY_M, KEY_L, KEY_7, KEY_U, KEY_J, KEY_N, 55, KEY_ENTER,
++ KEY_LEFTSHIFT, KEY_9, KEY_8, KEY_I, KEY_K, KEY_B, 63, KEY_COMMA
++ };
++
++
++#define KEYPAD_DELAY (50)
++#define KEYPAD_ROW_GPIOCON S3C_GPK1CON
++#define KEYPAD_ROW_GPIOPUD S3C_GPKPU
++#define KEYPAD_COL_GPIOCON S3C_GPL0CON
++#define KEYPAD_COL_GPIOPUD S3C_GPLPU
++
++#define KEYPAD_ROW_GPIO_SET \
++ ((readl(KEYPAD_ROW_GPIOCON) & ~(0xfffffff)) | 0x33333333)
++
++#define KEYPAD_COL_GPIO_SET \
++ ((readl(KEYPAD_COL_GPIOCON) & ~(0xfffffff)) | 0x33333333)
++
++#define KEYPAD_ROW_GPIOPUD_DIS (readl(KEYPAD_ROW_GPIOPUD) & ~(0xffff<<16))
++#define KEYPAD_COL_GPIOPUD_DIS (readl(KEYPAD_COL_GPIOPUD) & ~0xffff)
++
++#define KEYIFCOL_CLEAR (readl(key_base+S3C_KEYIFCOL) & ~0xffff)
++#define KEYIFCON_CLEAR (readl(key_base+S3C_KEYIFCON) & ~0x1f)
++#define KEYIFFC_DIV (readl(key_base+S3C_KEYIFFC) | 0x1)
++
++#else
++#error "Not supported S3C Configuration!!"
++#endif
++
++struct s3c_keypad {
++ struct input_dev *dev;
++ int nr_rows;
++ int no_cols;
++ int total_keys;
++ int keycodes[MAX_KEYPAD_NR];
++};
++
++
++#endif /* _S3C_KEYIF_H_ */
+diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig
+index 90e8e92..7d86ea1 100644
+--- a/drivers/input/touchscreen/Kconfig
++++ b/drivers/input/touchscreen/Kconfig
+@@ -54,6 +54,30 @@ config TOUCHSCREEN_CORGI
+ To compile this driver as a module, choose M here: the
+ module will be called corgi_ts.
+
++config TOUCHSCREEN_S3C
++ tristate "S3C touchscreen driver"
++ depends on ARCH_S3C2410
++ default y
++ help
++ Say Y here to enable the driver for the touchscreen on the
++ S3C SMDK board.
++
++ If unsure, say N.
++
++ To compile this driver as a module, choose M here: the
++ module will be called s3c24xx_ts.
++
++config TOUCHSCREEN_NEW
++ bool "new flip touch"
++ depends on TOUCHSCREEN_S3C
++ default y
++ help
++ Say Y here to enable the driver for the new version touchscreen on the
++ S3C SMDK board.
++
++ Say N here to enable the driver for the old version touchscreen on the
++ S3C SMDK board.
++
+ config TOUCHSCREEN_FUJITSU
+ tristate "Fujitsu serial touchscreen"
+ select SERIO
+diff --git a/drivers/input/touchscreen/Makefile b/drivers/input/touchscreen/Makefile
+index 35d4097..5fe784a 100644
+--- a/drivers/input/touchscreen/Makefile
++++ b/drivers/input/touchscreen/Makefile
+@@ -19,3 +19,4 @@ obj-$(CONFIG_TOUCHSCREEN_PENMOUNT) += penmount.o
+ obj-$(CONFIG_TOUCHSCREEN_TOUCHRIGHT) += touchright.o
+ obj-$(CONFIG_TOUCHSCREEN_TOUCHWIN) += touchwin.o
+ obj-$(CONFIG_TOUCHSCREEN_UCB1400) += ucb1400_ts.o
++obj-$(CONFIG_TOUCHSCREEN_S3C) += s3c-ts.o
+diff --git a/drivers/input/touchscreen/s3c-ts.c b/drivers/input/touchscreen/s3c-ts.c
+new file mode 100644
+index 0000000..e04228f
+--- /dev/null
++++ b/drivers/input/touchscreen/s3c-ts.c
+@@ -0,0 +1,468 @@
++/* linux/drivers/input/touchscreen/s3c-ts.c
++ *
++ * $Id: s3c-ts2.c,v 1.2 2008/11/12 05:50:51 ihlee215 Exp $
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ * Copyright (c) 2004 Arnaud Patard <arnaud.patard@rtp-net.org>
++ * iPAQ H1940 touchscreen support
++ *
++ * ChangeLog
++ *
++ * 2004-09-05: Herbert Potzl <herbert@13thfloor.at>
++ * - added clock (de-)allocation code
++ *
++ * 2005-03-06: Arnaud Patard <arnaud.patard@rtp-net.org>
++ * - h1940_ -> s3c24xx (this driver is now also used on the n30
++ * machines :P)
++ * - Debug messages are now enabled with the config option
++ * TOUCHSCREEN_S3C_DEBUG
++ * - Changed the way the value are read
++ * - Input subsystem should now work
++ * - Use ioremap and readl/writel
++ *
++ * 2005-03-23: Arnaud Patard <arnaud.patard@rtp-net.org>
++ * - Make use of some undocumented features of the touchscreen
++ * controller
++ *
++ * 2006-09-05: Ryu Euiyoul <ryu.real@gmail.com>
++ * - added power management suspend and resume code
++ *
++ */
++
++#include <linux/errno.h>
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/slab.h>
++#include <linux/input.h>
++#include <linux/init.h>
++#include <linux/serio.h>
++#include <linux/delay.h>
++#include <linux/platform_device.h>
++#include <linux/clk.h>
++
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/hardware.h>
++
++#include <asm/plat-s3c/regs-adc.h>
++#include <asm/plat-s3c/ts.h>
++#include <asm/arch/irqs.h>
++
++
++#define CONFIG_TOUCHSCREEN_S3C_DEBUG
++#undef CONFIG_TOUCHSCREEN_S3C_DEBUG
++
++/* For ts->dev.id.version */
++#define S3C_TSVERSION 0x0101
++
++#define WAIT4INT(x) (((x)<<8) | \
++ S3C2410_ADCTSC_YM_SEN | S3C2410_ADCTSC_YP_SEN | S3C2410_ADCTSC_XP_SEN | \
++ S3C2410_ADCTSC_XY_PST(3))
++
++#define AUTOPST (S3C2410_ADCTSC_YM_SEN | S3C2410_ADCTSC_YP_SEN | S3C2410_ADCTSC_XP_SEN | \
++ S3C2410_ADCTSC_AUTO_PST | S3C2410_ADCTSC_XY_PST(0))
++
++
++#define DEBUG_LVL KERN_DEBUG
++
++
++
++/* Touchscreen default configuration */
++struct s3c_ts_mach_info s3c_ts_default_cfg __initdata = {
++ .delay = 10000,
++ .presc = 49,
++ .oversampling_shift = 2,
++ .resol_bit = 10,
++};
++
++/*
++ * Definitions & global arrays.
++ */
++static char *s3c_ts_name = "S3C TouchScreen";
++static void __iomem *ts_base;
++static struct resource *ts_mem;
++static struct resource *ts_irq;
++static struct clk *ts_clock;
++static struct s3c_ts *ts;
++
++static void touch_timer_fire(unsigned long data)
++{
++ unsigned long data0;
++ unsigned long data1;
++ int updown;
++
++ data0 = readl(ts_base+S3C2410_ADCDAT0);
++ data1 = readl(ts_base+S3C2410_ADCDAT1);
++
++ updown = (!(data0 & S3C2410_ADCDAT0_UPDOWN)) && (!(data1 & S3C2410_ADCDAT1_UPDOWN));
++
++ if (updown) {
++ if (ts->count) {
++
++#ifdef CONFIG_TOUCHSCREEN_S3C_DEBUG
++ {
++ struct timeval tv;
++ do_gettimeofday(&tv);
++ printk(KERN_INFO "T: %06d, X: %03ld, Y: %03ld\n", (int)tv.tv_usec, ts->xp, ts->yp);
++ }
++#endif
++
++ input_report_abs(ts->dev, ABS_X, ts->xp);
++ input_report_abs(ts->dev, ABS_Y, ts->yp);
++
++ input_report_key(ts->dev, BTN_TOUCH, 1);
++ input_report_abs(ts->dev, ABS_PRESSURE, 1);
++ input_sync(ts->dev);
++ }
++
++ ts->xp = 0;
++ ts->yp = 0;
++ ts->count = 0;
++
++ writel(S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST, ts_base+S3C2410_ADCTSC);
++ writel(readl(ts_base+S3C2410_ADCCON) | S3C2410_ADCCON_ENABLE_START, ts_base+S3C2410_ADCCON);
++ }
++ else {
++
++ ts->count = 0;
++
++ input_report_key(ts->dev, BTN_TOUCH, 0);
++ input_report_abs(ts->dev, ABS_PRESSURE, 0);
++ input_sync(ts->dev);
++
++ writel(WAIT4INT(0), ts_base+S3C2410_ADCTSC);
++ }
++}
++
++static struct timer_list touch_timer =
++ TIMER_INITIALIZER(touch_timer_fire, 0, 0);
++
++static irqreturn_t stylus_updown(int irqno, void *param)
++{
++ unsigned long data0;
++ unsigned long data1;
++ int updown;
++
++ data0 = readl(ts_base+S3C2410_ADCDAT0);
++ data1 = readl(ts_base+S3C2410_ADCDAT1);
++
++ updown = (!(data0 & S3C2410_ADCDAT0_UPDOWN)) && (!(data1 & S3C2410_ADCDAT1_UPDOWN));
++
++#ifdef CONFIG_TOUCHSCREEN_S3C_DEBUG
++ printk(KERN_INFO " %c\n", updown ? 'D' : 'U');
++#endif
++
++ /* TODO we should never get an interrupt with updown set while
++ * the timer is running, but maybe we ought to verify that the
++ * timer isn't running anyways. */
++
++ if (updown)
++ touch_timer_fire(0);
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ __raw_writel(0x0, ts_base+S3C6400_ADCCLRWK);
++ __raw_writel(0x0, ts_base+S3C6400_ADCCLRINT);
++#endif
++
++ return IRQ_HANDLED;
++}
++
++static irqreturn_t stylus_action(int irqno, void *param)
++{
++ unsigned long data0;
++ unsigned long data1;
++
++ data0 = readl(ts_base+S3C2410_ADCDAT0);
++ data1 = readl(ts_base+S3C2410_ADCDAT1);
++
++#if defined(CONFIG_TOUCHSCREEN_NEW)
++ ts->yp += S3C_ADCDAT0_XPDATA_MASK_12BIT - (data0 & S3C_ADCDAT0_XPDATA_MASK_12BIT);
++ ts->xp += S3C_ADCDAT1_YPDATA_MASK_12BIT - (data1 & S3C_ADCDAT1_YPDATA_MASK_12BIT);
++
++#elif defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416) || defined(CONFIG_CPU_S3C6410)
++ ts->xp += data0 & S3C_ADCDAT0_XPDATA_MASK_12BIT;
++ ts->yp += data1 & S3C_ADCDAT1_YPDATA_MASK_12BIT;
++#else
++ ts->xp += data0 & S3C2410_ADCDAT0_XPDATA_MASK;
++ ts->yp += data1 & S3C2410_ADCDAT1_YPDATA_MASK;
++#endif
++
++ ts->count++;
++
++ if (ts->count < (1<<ts->shift)) {
++ writel(S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST, ts_base+S3C2410_ADCTSC);
++ writel(readl(ts_base+S3C2410_ADCCON) | S3C2410_ADCCON_ENABLE_START, ts_base+S3C2410_ADCCON);
++ } else {
++ mod_timer(&touch_timer, jiffies+1);
++ writel(WAIT4INT(1), ts_base+S3C2410_ADCTSC);
++ }
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ __raw_writel(0x0, ts_base+S3C6400_ADCCLRWK);
++ __raw_writel(0x0, ts_base+S3C6400_ADCCLRINT);
++#endif
++
++ return IRQ_HANDLED;
++}
++
++
++static struct s3c_ts_mach_info *s3c_ts_get_platdata (struct device *dev)
++{
++ if (dev->platform_data != NULL)
++ return (struct s3c_ts_mach_info *)dev->platform_data;
++
++ return &s3c_ts_default_cfg;
++}
++
++/*
++ * The functions for inserting/removing us as a module.
++ */
++static int __init s3c_ts_probe(struct platform_device *pdev)
++{
++ struct resource *res;
++ struct input_dev *input_dev;
++ struct s3c_ts_mach_info * s3c_ts_cfg;
++ int ret, size;
++
++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ if (res == NULL) {
++ printk(KERN_ERR "no memory resource specified\n");
++ return -ENOENT;
++ }
++
++ size = (res->end - res->start) + 1;
++ ts_mem = request_mem_region(res->start, size, pdev->name);
++ if (ts_mem == NULL) {
++ printk(KERN_ERR "failed to get memory region\n");
++ ret = -ENOENT;
++ goto err_req;
++ }
++
++ ts_base = ioremap(res->start, size);
++ if (ts_base == NULL) {
++ printk(KERN_ERR "failed to ioremap() region\n");
++ ret = -EINVAL;
++ goto err_map;
++ }
++
++ ts_clock = clk_get(&pdev->dev, "adc");
++ if (IS_ERR(ts_clock)) {
++ printk(KERN_ERR "failed to find watchdog clock source\n");
++ ret = PTR_ERR(ts_clock);
++ goto err_clk;
++ }
++
++ clk_enable(ts_clock);
++
++ s3c_ts_cfg = s3c_ts_get_platdata(&pdev->dev);
++
++ if ((s3c_ts_cfg->presc&0xff) > 0)
++ writel(S3C2410_ADCCON_PRSCEN | S3C2410_ADCCON_PRSCVL(s3c_ts_cfg->presc&0xFF),\
++ ts_base+S3C2410_ADCCON);
++ else
++ writel(0, ts_base+S3C2410_ADCCON);
++
++
++ /* Initialise registers */
++ if ((s3c_ts_cfg->delay&0xffff) > 0)
++ writel(s3c_ts_cfg->delay & 0xffff, ts_base+S3C2410_ADCDLY);
++
++ if (s3c_ts_cfg->resol_bit == 12) {
++#if defined(CONFIG_CPU_S3C6410)
++ writel(readl(ts_base+S3C2410_ADCCON)|S3C6410_ADCCON_RESSEL_12BIT, ts_base+S3C2410_ADCCON);
++#elif defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ writel(readl(ts_base+S3C2410_ADCCON)|S3C2450_ADCCON_RESSEL_12BIT, ts_base+S3C2410_ADCCON);
++#endif
++ }
++
++ writel(WAIT4INT(0), ts_base+S3C2410_ADCTSC);
++
++ ts = kzalloc(sizeof(struct s3c_ts), GFP_KERNEL);
++
++ input_dev = input_allocate_device();
++
++ if (!input_dev) {
++ ret = -ENOMEM;
++ goto fail;
++ }
++
++ ts->dev = input_dev;
++
++ ts->dev->evbit[0] = ts->dev->evbit[0] = BIT_MASK(EV_SYN) | BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
++ ts->dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
++
++#if defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C6410) || defined(CONFIG_CPU_S3C2416)
++ input_set_abs_params(ts->dev, ABS_X, 0, 0xFFF, 0, 0);
++ input_set_abs_params(ts->dev, ABS_Y, 0, 0xFFF, 0, 0);
++#else
++ input_set_abs_params(ts->dev, ABS_X, 0, 0x3FF, 0, 0);
++ input_set_abs_params(ts->dev, ABS_Y, 0, 0x3FF, 0, 0);
++#endif
++ input_set_abs_params(ts->dev, ABS_PRESSURE, 0, 1, 0, 0);
++
++ sprintf(ts->phys, "input(ts)");
++
++ ts->dev->name = s3c_ts_name;
++ ts->dev->phys = ts->phys;
++ ts->dev->id.bustype = BUS_RS232;
++ ts->dev->id.vendor = 0xDEAD;
++ ts->dev->id.product = 0xBEEF;
++ ts->dev->id.version = S3C_TSVERSION;
++
++ ts->shift = s3c_ts_cfg->oversampling_shift;
++
++ /* Get irqs */
++ ts_irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
++ if (ts_irq == NULL) {
++ printk(KERN_ERR "no irq resource specified\n");
++ ret = -ENOENT;
++ goto err_clk;
++ }
++
++ ret = request_irq(ts_irq->start, stylus_updown, IRQF_SAMPLE_RANDOM, "s3c_updown", ts);
++ if (ret != 0) {
++ printk(KERN_ERR "s3c_ts.c: Could not allocate ts IRQ_TC !\n");
++ ret = -EIO;
++ goto err_clk;
++ }
++
++ ret = request_irq(ts_irq->end, stylus_action, IRQF_SAMPLE_RANDOM, "s3c_action", ts);
++ if (ret != 0) {
++ printk(KERN_ERR "s3c_ts.c: Could not allocate ts IRQ_ADC !\n");
++ ret = -EIO;
++ goto err_irq;
++ }
++
++ printk(KERN_INFO "%s got loaded successfully : %d bits\n", s3c_ts_name, s3c_ts_cfg->resol_bit);
++
++ /* All went ok, so register to the input system */
++ ret = input_register_device(ts->dev);
++
++ if(ret) {
++ printk(KERN_ERR "s3c_ts.c: Could not register input device(touchscreen)!\n");
++ ret = -EIO;
++ goto fail;
++ }
++
++ return 0;
++
++fail: input_free_device(input_dev);
++ kfree(ts);
++
++err_irq:
++ free_irq(ts_irq->start, ts->dev);
++ free_irq(ts_irq->end, ts->dev);
++
++err_clk:
++ clk_disable(ts_clock);
++ clk_put(ts_clock);
++
++err_map:
++ iounmap(ts_base);
++
++err_req:
++ release_resource(ts_mem);
++ kfree(ts_mem);
++
++ return ret;
++}
++
++static int s3c_ts_remove(struct platform_device *dev)
++{
++ printk(KERN_INFO "s3c_ts_remove() of TS called !\n");
++
++ disable_irq(IRQ_ADC);
++ disable_irq(IRQ_TC);
++ free_irq(IRQ_TC, ts->dev);
++ free_irq(IRQ_ADC, ts->dev);
++
++ if (ts_clock) {
++ clk_disable(ts_clock);
++ clk_put(ts_clock);
++ ts_clock = NULL;
++ }
++
++ input_unregister_device(ts->dev);
++ iounmap(ts_base);
++
++ return 0;
++}
++
++#ifdef CONFIG_PM
++static unsigned int adccon, adctsc, adcdly;
++
++static int s3c_ts_suspend(struct platform_device *dev, pm_message_t state)
++{
++ adccon = readl(ts_base+S3C2410_ADCCON);
++ adctsc = readl(ts_base+S3C2410_ADCTSC);
++ adcdly = readl(ts_base+S3C2410_ADCDLY);
++
++ disable_irq(IRQ_ADC);
++ disable_irq(IRQ_TC);
++
++ clk_disable(ts_clock);
++
++ return 0;
++}
++
++static int s3c_ts_resume(struct platform_device *pdev)
++{
++ clk_enable(ts_clock);
++
++ writel(adccon, ts_base+S3C2410_ADCCON);
++ writel(adctsc, ts_base+S3C2410_ADCTSC);
++ writel(adcdly, ts_base+S3C2410_ADCDLY);
++ writel(WAIT4INT(0), ts_base+S3C2410_ADCTSC);
++
++ enable_irq(IRQ_ADC);
++ enable_irq(IRQ_TC);
++ return 0;
++}
++#else
++#define s3c_ts_suspend NULL
++#define s3c_ts_resume NULL
++#endif
++
++static struct platform_driver s3c_ts_driver = {
++ .probe = s3c_ts_probe,
++ .remove = s3c_ts_remove,
++ .suspend = s3c_ts_suspend,
++ .resume = s3c_ts_resume,
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "s3c-ts",
++ },
++};
++
++static char banner[] __initdata = KERN_INFO "S3C Touchscreen driver, (c) 2008 Samsung Electronics\n";
++
++static int __init s3c_ts_init(void)
++{
++ printk(banner);
++ return platform_driver_register(&s3c_ts_driver);
++}
++
++static void __exit s3c_ts_exit(void)
++{
++ platform_driver_unregister(&s3c_ts_driver);
++}
++
++module_init(s3c_ts_init);
++module_exit(s3c_ts_exit);
++
++MODULE_AUTHOR("Samsung AP");
++MODULE_DESCRIPTION("S3C touchscreen driver");
++MODULE_LICENSE("GPL");
+diff --git a/drivers/input/tsdev.c b/drivers/input/tsdev.c
+new file mode 100644
+index 0000000..5622a60
+--- /dev/null
++++ b/drivers/input/tsdev.c
+@@ -0,0 +1,533 @@
++/*
++ * $Id: tsdev.c,v 1.1.1.1 2008/02/04 07:21:25 ihlee215 Exp $
++ *
++ * Copyright (c) 2001 "Crazy" james Simmons
++ *
++ * Compaq touchscreen protocol driver. The protocol emulated by this driver
++ * is obsolete; for new programs use the tslib library which can read directly
++ * from evdev and perform dejittering, variance filtering and calibration -
++ * all in user space, not at kernel level. The meaning of this driver is
++ * to allow usage of newer input drivers with old applications that use the
++ * old /dev/h3600_ts and /dev/h3600_tsraw devices.
++ *
++ * 09-Apr-2004: Andrew Zabolotny <zap@homelink.ru>
++ * Fixed to actually work, not just output random numbers.
++ * Added support for both h3600_ts and h3600_tsraw protocol
++ * emulation.
++ */
++
++/*
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ * Should you need to contact me, the author, you can do so either by
++ * e-mail - mail your message to <jsimmons@infradead.org>.
++ */
++
++#define TSDEV_MINOR_BASE 128
++#define TSDEV_MINORS 32
++/* First 16 devices are h3600_ts compatible; second 16 are h3600_tsraw */
++#define TSDEV_MINOR_MASK 15
++#define TSDEV_BUFFER_SIZE 64
++
++#include <linux/slab.h>
++#include <linux/poll.h>
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/init.h>
++#include <linux/input.h>
++#include <linux/major.h>
++#include <linux/random.h>
++#include <linux/time.h>
++#include <linux/device.h>
++
++#ifndef CONFIG_INPUT_TSDEV_SCREEN_X
++#define CONFIG_INPUT_TSDEV_SCREEN_X 240
++#endif
++#ifndef CONFIG_INPUT_TSDEV_SCREEN_Y
++#define CONFIG_INPUT_TSDEV_SCREEN_Y 320
++#endif
++
++/* This driver emulates both protocols of the old h3600_ts and h3600_tsraw
++ * devices. The first one must output X/Y data in 'cooked' format, e.g.
++ * filtered, dejittered and calibrated. Second device just outputs raw
++ * data received from the hardware.
++ *
++ * This driver doesn't support filtering and dejittering; it supports only
++ * calibration. Filtering and dejittering must be done in the low-level
++ * driver, if needed, because it may gain additional benefits from knowing
++ * the low-level details, the nature of noise and so on.
++ *
++ * The driver precomputes a calibration matrix given the initial xres and
++ * yres values (quite innacurate for most touchscreens) that will result
++ * in a more or less expected range of output values. The driver supports
++ * the TS_SET_CAL ioctl, which will replace the calibration matrix with a
++ * new one, supposedly generated from the values taken from the raw device.
++ */
++
++MODULE_AUTHOR("James Simmons <jsimmons@transvirtual.com>");
++MODULE_DESCRIPTION("Input driver to touchscreen converter");
++MODULE_LICENSE("GPL");
++
++static int xres = CONFIG_INPUT_TSDEV_SCREEN_X;
++module_param(xres, uint, 0);
++MODULE_PARM_DESC(xres, "Horizontal screen resolution (can be negative for X-mirror)");
++
++static int yres = CONFIG_INPUT_TSDEV_SCREEN_Y;
++module_param(yres, uint, 0);
++MODULE_PARM_DESC(yres, "Vertical screen resolution (can be negative for Y-mirror)");
++
++/* From Compaq's Touch Screen Specification version 0.2 (draft) */
++struct ts_event {
++ short pressure;
++ short x;
++ short y;
++ short millisecs;
++};
++
++struct ts_calibration {
++ int xscale;
++ int xtrans;
++ int yscale;
++ int ytrans;
++ int xyswap;
++};
++
++struct tsdev {
++ int exist;
++ int open;
++ int minor;
++ char name[8];
++ struct input_handle handle;
++ wait_queue_head_t wait;
++ struct list_head client_list;
++ struct device dev;
++
++ int x, y, pressure;
++ struct ts_calibration cal;
++};
++
++struct tsdev_client {
++ struct fasync_struct *fasync;
++ struct list_head node;
++ struct tsdev *tsdev;
++ int head, tail;
++ struct ts_event event[TSDEV_BUFFER_SIZE];
++ int raw;
++};
++
++/* The following ioctl codes are defined ONLY for backward compatibility.
++ * Don't use tsdev for new developement; use the tslib library instead.
++ * Touchscreen calibration is a fully userspace task.
++ */
++/* Use 'f' as magic number */
++#define IOC_H3600_TS_MAGIC 'f'
++#define TS_GET_CAL _IOR(IOC_H3600_TS_MAGIC, 10, struct ts_calibration)
++#define TS_SET_CAL _IOW(IOC_H3600_TS_MAGIC, 11, struct ts_calibration)
++
++static struct tsdev *tsdev_table[TSDEV_MINORS/2];
++
++static int tsdev_fasync(int fd, struct file *file, int on)
++{
++ struct tsdev_client *client = file->private_data;
++ int retval;
++
++ retval = fasync_helper(fd, file, on, &client->fasync);
++ return retval < 0 ? retval : 0;
++}
++
++static int tsdev_open(struct inode *inode, struct file *file)
++{
++ int i = iminor(inode) - TSDEV_MINOR_BASE;
++ struct tsdev_client *client;
++ struct tsdev *tsdev;
++ int error;
++
++ printk(KERN_WARNING "tsdev (compaq touchscreen emulation) is scheduled "
++ "for removal.\nSee Documentation/feature-removal-schedule.txt "
++ "for details.\n");
++
++ if (i >= TSDEV_MINORS)
++ return -ENODEV;
++
++ tsdev = tsdev_table[i & TSDEV_MINOR_MASK];
++ if (!tsdev || !tsdev->exist)
++ return -ENODEV;
++
++ get_device(&tsdev->dev);
++
++ client = kzalloc(sizeof(struct tsdev_client), GFP_KERNEL);
++ if (!client) {
++ error = -ENOMEM;
++ goto err_put_tsdev;
++ }
++
++ client->tsdev = tsdev;
++ client->raw = (i >= TSDEV_MINORS / 2) ? 1 : 0;
++ list_add_tail(&client->node, &tsdev->client_list);
++
++ if (!tsdev->open++ && tsdev->exist) {
++ error = input_open_device(&tsdev->handle);
++ if (error)
++ goto err_free_client;
++ }
++
++ file->private_data = client;
++ return 0;
++
++ err_free_client:
++ list_del(&client->node);
++ kfree(client);
++ err_put_tsdev:
++ put_device(&tsdev->dev);
++ return error;
++}
++
++static void tsdev_free(struct device *dev)
++{
++ struct tsdev *tsdev = container_of(dev, struct tsdev, dev);
++
++ tsdev_table[tsdev->minor] = NULL;
++ kfree(tsdev);
++}
++
++static int tsdev_release(struct inode *inode, struct file *file)
++{
++ struct tsdev_client *client = file->private_data;
++ struct tsdev *tsdev = client->tsdev;
++
++ tsdev_fasync(-1, file, 0);
++
++ list_del(&client->node);
++ kfree(client);
++
++ if (!--tsdev->open && tsdev->exist)
++ input_close_device(&tsdev->handle);
++
++ put_device(&tsdev->dev);
++
++ return 0;
++}
++
++static ssize_t tsdev_read(struct file *file, char __user *buffer, size_t count,
++ loff_t *ppos)
++{
++ struct tsdev_client *client = file->private_data;
++ struct tsdev *tsdev = client->tsdev;
++ int retval = 0;
++
++ if (client->head == client->tail && tsdev->exist && (file->f_flags & O_NONBLOCK))
++ return -EAGAIN;
++
++ retval = wait_event_interruptible(tsdev->wait,
++ client->head != client->tail || !tsdev->exist);
++ if (retval)
++ return retval;
++
++ if (!tsdev->exist)
++ return -ENODEV;
++
++ while (client->head != client->tail &&
++ retval + sizeof (struct ts_event) <= count) {
++ if (copy_to_user (buffer + retval, client->event + client->tail,
++ sizeof (struct ts_event)))
++ return -EFAULT;
++ client->tail = (client->tail + 1) & (TSDEV_BUFFER_SIZE - 1);
++ retval += sizeof (struct ts_event);
++ }
++
++ return retval;
++}
++
++/* No kernel lock - fine */
++static unsigned int tsdev_poll(struct file *file, poll_table *wait)
++{
++ struct tsdev_client *client = file->private_data;
++ struct tsdev *tsdev = client->tsdev;
++
++ poll_wait(file, &tsdev->wait, wait);
++ return ((client->head == client->tail) ? 0 : (POLLIN | POLLRDNORM)) |
++ (tsdev->exist ? 0 : (POLLHUP | POLLERR));
++}
++
++static int tsdev_ioctl(struct inode *inode, struct file *file,
++ unsigned int cmd, unsigned long arg)
++{
++ struct tsdev_client *client = file->private_data;
++ struct tsdev *tsdev = client->tsdev;
++ int retval = 0;
++
++ switch (cmd) {
++ case TS_GET_CAL:
++ if (copy_to_user((void __user *)arg, &tsdev->cal,
++ sizeof (struct ts_calibration)))
++ retval = -EFAULT;
++ break;
++
++ case TS_SET_CAL:
++ if (copy_from_user(&tsdev->cal, (void __user *)arg,
++ sizeof (struct ts_calibration)))
++ retval = -EFAULT;
++ break;
++
++ default:
++ retval = -EINVAL;
++ break;
++ }
++
++ return retval;
++}
++
++static const struct file_operations tsdev_fops = {
++ .owner = THIS_MODULE,
++ .open = tsdev_open,
++ .release = tsdev_release,
++ .read = tsdev_read,
++ .poll = tsdev_poll,
++ .fasync = tsdev_fasync,
++ .ioctl = tsdev_ioctl,
++};
++
++static void tsdev_event(struct input_handle *handle, unsigned int type,
++ unsigned int code, int value)
++{
++ struct tsdev *tsdev = handle->private;
++ struct tsdev_client *client;
++ struct timeval time;
++
++ switch (type) {
++ case EV_ABS:
++ switch (code) {
++ case ABS_X:
++ tsdev->x = value;
++ break;
++
++ case ABS_Y:
++ tsdev->y = value;
++ break;
++
++ case ABS_PRESSURE:
++ if (value > handle->dev->absmax[ABS_PRESSURE])
++ value = handle->dev->absmax[ABS_PRESSURE];
++ value -= handle->dev->absmin[ABS_PRESSURE];
++ if (value < 0)
++ value = 0;
++ tsdev->pressure = value;
++ break;
++ }
++ break;
++
++ case EV_REL:
++ switch (code) {
++ case REL_X:
++ tsdev->x += value;
++ if (tsdev->x < 0)
++ tsdev->x = 0;
++ else if (tsdev->x > xres)
++ tsdev->x = xres;
++ break;
++
++ case REL_Y:
++ tsdev->y += value;
++ if (tsdev->y < 0)
++ tsdev->y = 0;
++ else if (tsdev->y > yres)
++ tsdev->y = yres;
++ break;
++ }
++ break;
++
++ case EV_KEY:
++ if (code == BTN_TOUCH || code == BTN_MOUSE) {
++ switch (value) {
++ case 0:
++ tsdev->pressure = 0;
++ break;
++
++ case 1:
++ if (!tsdev->pressure)
++ tsdev->pressure = 1;
++ break;
++ }
++ }
++ break;
++ }
++
++ if (type != EV_SYN || code != SYN_REPORT)
++ return;
++
++ list_for_each_entry(client, &tsdev->client_list, node) {
++ int x, y, tmp;
++
++ do_gettimeofday(&time);
++ client->event[client->head].millisecs = time.tv_usec / 1000;
++ client->event[client->head].pressure = tsdev->pressure;
++
++ x = tsdev->x;
++ y = tsdev->y;
++
++ /* Calibration */
++ if (!client->raw) {
++ x = ((x * tsdev->cal.xscale) >> 8) + tsdev->cal.xtrans;
++ y = ((y * tsdev->cal.yscale) >> 8) + tsdev->cal.ytrans;
++ if (tsdev->cal.xyswap) {
++ tmp = x; x = y; y = tmp;
++ }
++ }
++
++ client->event[client->head].x = x;
++ client->event[client->head].y = y;
++ client->head = (client->head + 1) & (TSDEV_BUFFER_SIZE - 1);
++ kill_fasync(&client->fasync, SIGIO, POLL_IN);
++ }
++ wake_up_interruptible(&tsdev->wait);
++}
++
++static int tsdev_connect(struct input_handler *handler, struct input_dev *dev,
++ const struct input_device_id *id)
++{
++ struct tsdev *tsdev;
++ int minor, delta;
++ int error;
++
++ for (minor = 0; minor < TSDEV_MINORS / 2 && tsdev_table[minor]; minor++);
++ if (minor >= TSDEV_MINORS / 2) {
++ printk(KERN_ERR
++ "tsdev: You have way too many touchscreens\n");
++ return -ENFILE;
++ }
++
++ tsdev = kzalloc(sizeof(struct tsdev), GFP_KERNEL);
++ if (!tsdev)
++ return -ENOMEM;
++
++ INIT_LIST_HEAD(&tsdev->client_list);
++ init_waitqueue_head(&tsdev->wait);
++
++ tsdev->exist = 1;
++ tsdev->minor = minor;
++ tsdev->handle.dev = dev;
++ tsdev->handle.name = tsdev->name;
++ tsdev->handle.handler = handler;
++ tsdev->handle.private = tsdev;
++ snprintf(tsdev->name, sizeof(tsdev->name), "ts%d", minor);
++
++ /* Precompute the rough calibration matrix */
++ delta = dev->absmax [ABS_X] - dev->absmin [ABS_X] + 1;
++ if (delta == 0)
++ delta = 1;
++ tsdev->cal.xscale = (xres << 8) / delta;
++ tsdev->cal.xtrans = - ((dev->absmin [ABS_X] * tsdev->cal.xscale) >> 8);
++
++ delta = dev->absmax [ABS_Y] - dev->absmin [ABS_Y] + 1;
++ if (delta == 0)
++ delta = 1;
++ tsdev->cal.yscale = (yres << 8) / delta;
++ tsdev->cal.ytrans = - ((dev->absmin [ABS_Y] * tsdev->cal.yscale) >> 8);
++
++ snprintf(tsdev->dev.bus_id, sizeof(tsdev->dev.bus_id),
++ "ts%d", minor);
++ tsdev->dev.class = &input_class;
++ tsdev->dev.parent = &dev->dev;
++ tsdev->dev.devt = MKDEV(INPUT_MAJOR, TSDEV_MINOR_BASE + minor);
++ tsdev->dev.release = tsdev_free;
++ device_initialize(&tsdev->dev);
++
++ tsdev_table[minor] = tsdev;
++
++ error = device_add(&tsdev->dev);
++ if (error)
++ goto err_free_tsdev;
++
++ error = input_register_handle(&tsdev->handle);
++ if (error)
++ goto err_delete_tsdev;
++
++ return 0;
++
++ err_delete_tsdev:
++ device_del(&tsdev->dev);
++ err_free_tsdev:
++ put_device(&tsdev->dev);
++ return error;
++}
++
++static void tsdev_disconnect(struct input_handle *handle)
++{
++ struct tsdev *tsdev = handle->private;
++ struct tsdev_client *client;
++
++ input_unregister_handle(handle);
++ device_del(&tsdev->dev);
++
++ tsdev->exist = 0;
++
++ if (tsdev->open) {
++ input_close_device(handle);
++ list_for_each_entry(client, &tsdev->client_list, node)
++ kill_fasync(&client->fasync, SIGIO, POLL_HUP);
++ wake_up_interruptible(&tsdev->wait);
++ }
++
++ put_device(&tsdev->dev);
++}
++
++static const struct input_device_id tsdev_ids[] = {
++ {
++ .flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_KEYBIT | INPUT_DEVICE_ID_MATCH_RELBIT,
++ .evbit = { BIT(EV_KEY) | BIT(EV_REL) },
++ .keybit = { [BIT_WORD(BTN_LEFT)] = BIT(BTN_LEFT) },
++ .relbit = { BIT(REL_X) | BIT(REL_Y) },
++ }, /* A mouse like device, at least one button, two relative axes */
++
++ {
++ .flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_KEYBIT | INPUT_DEVICE_ID_MATCH_ABSBIT,
++ .evbit = { BIT(EV_KEY) | BIT(EV_ABS) },
++ .keybit = { [BIT_WORD(BTN_TOUCH)] = BIT(BTN_TOUCH) },
++ .absbit = { BIT(ABS_X) | BIT(ABS_Y) },
++ }, /* A tablet like device, at least touch detection, two absolute axes */
++
++ {
++ .flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_ABSBIT,
++ .evbit = { BIT(EV_ABS) },
++ .absbit = { BIT(ABS_X) | BIT(ABS_Y) | BIT(ABS_PRESSURE) },
++ }, /* A tablet like device with several gradations of pressure */
++
++ {} /* Terminating entry */
++};
++
++MODULE_DEVICE_TABLE(input, tsdev_ids);
++
++static struct input_handler tsdev_handler = {
++ .event = tsdev_event,
++ .connect = tsdev_connect,
++ .disconnect = tsdev_disconnect,
++ .fops = &tsdev_fops,
++ .minor = TSDEV_MINOR_BASE,
++ .name = "tsdev",
++ .id_table = tsdev_ids,
++};
++
++static int __init tsdev_init(void)
++{
++ return input_register_handler(&tsdev_handler);
++}
++
++static void __exit tsdev_exit(void)
++{
++ input_unregister_handler(&tsdev_handler);
++}
++
++module_init(tsdev_init);
++module_exit(tsdev_exit);
+diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
+index c9f14bf..6506263 100644
+--- a/drivers/media/video/Kconfig
++++ b/drivers/media/video/Kconfig
+@@ -505,6 +505,47 @@ config TUNER_3036
+ Say Y here to include support for Philips SAB3036 compatible tuners.
+ If in doubt, say N.
+
++
++config VIDEO_SAMSUNG
++ bool "S3C SMDK CAMERA support"
++ depends on I2C && VIDEO_V4L2
++
++ default n
++ ---help---
++ TBA
++choice
++depends on VIDEO_SAMSUNG
++prompt "Select CIS module type"
++default VIDEO_SAMSUNG_S5K3BA
++
++config VIDEO_SAMSUNG_S5K3AA
++ bool "S5K3AA (Samsung 1.3M CIS module, 1280x1024)"
++ ---help---
++ TBA
++
++config VIDEO_SAMSUNG_S5K3BA
++ bool "S5K3BA (Samsung 2.0M CIS module, 1600x1200)"
++ ---help---
++ TBA
++
++config VIDEO_SAMSUNG_S5K4BA
++ bool "S5K4BA (Samsung 2.0M CIS module, 1600x1200)"
++ ---help---
++ TBA
++
++config VIDEO_APTINA_MT9P012
++ bool "MT9P012 (Aptina 5.0M CIS module, 2592x1944)"
++ ---help---
++ TBA
++
++config VIDEO_ADV7180
++ bool "ADV7180 video decoder"
++ ---help---
++ TBA
++
++endchoice
++
++
+ config VIDEO_VINO
+ tristate "SGI Vino Video For Linux (EXPERIMENTAL)"
+ depends on I2C && SGI_IP22 && EXPERIMENTAL && VIDEO_V4L2
+diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile
+index b5a0641..cd3d371 100644
+--- a/drivers/media/video/Makefile
++++ b/drivers/media/video/Makefile
+@@ -125,6 +125,7 @@ obj-$(CONFIG_USB_QUICKCAM_MESSENGER) += usbvideo/
+
+ obj-$(CONFIG_VIDEO_IVTV) += ivtv/
+
++obj-$(CONFIG_VIDEO_SAMSUNG) += s3c_camera_driver.o s3c_camif.o samsung/
+ obj-$(CONFIG_VIDEO_VIVI) += vivi.o
+ obj-$(CONFIG_VIDEO_CX23885) += cx23885/
+
+diff --git a/drivers/media/video/s3c_camera_driver.c b/drivers/media/video/s3c_camera_driver.c
+new file mode 100644
+index 0000000..e8a86c0
+--- /dev/null
++++ b/drivers/media/video/s3c_camera_driver.c
+@@ -0,0 +1,2041 @@
++/* drivers/media/video/s3c_camera_driver.c
++ *
++ * Copyright (c) 2008 Samsung Electronics
++ *
++ * Samsung S3C Camera driver
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ */
++
++#include <linux/version.h>
++#include <linux/module.h>
++#include <linux/delay.h>
++#include <linux/errno.h>
++#include <linux/fs.h>
++#include <linux/kernel.h>
++#include <linux/major.h>
++#include <linux/slab.h>
++#include <linux/poll.h>
++#include <linux/signal.h>
++#include <linux/ioport.h>
++#include <linux/sched.h>
++#include <linux/types.h>
++#include <linux/interrupt.h>
++#include <linux/kmod.h>
++#include <linux/vmalloc.h>
++#include <linux/init.h>
++#include <linux/irq.h>
++#include <linux/mm.h>
++#include <linux/videodev2.h>
++#include <linux/platform_device.h>
++#include <linux/clk.h>
++#include <asm/io.h>
++#include <asm/page.h>
++#include <asm/semaphore.h>
++#include <asm/arch/gpio.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-camif.h>
++#include <media/v4l2-dev.h>
++#include "s3c_camif.h"
++#include "videodev2_s3c.h"
++
++#if defined(CONFIG_PM)
++#include <asm/plat-s3c24xx/pm.h>
++#endif
++
++static struct clk *cam_clock;
++camif_cfg_t s3c_fimc[CAMIF_DEV_NUM];
++extern camif_cis_t msdma_input;
++extern int s3c_camif_do_postprocess(camif_cfg_t *cfg);
++
++/*************************************************************************
++ * Utility part
++ ************************************************************************/
++camif_cfg_t *s3c_camif_get_fimc_object(int nr)
++{
++ camif_cfg_t *ret = NULL;
++
++ switch (nr) {
++ case CODEC_MINOR:
++ ret = &s3c_fimc[FIMC_CODEC_INDEX];
++ break;
++
++ case PREVIEW_MINOR:
++ ret = &s3c_fimc[FIMC_PREVIEW_INDEX];
++ break;
++
++ default:
++ printk(KERN_ERR "Unknown minor number\n");
++ }
++
++ return ret;
++}
++
++#if defined(FSM_ON_PREVIEW)
++static int s3c_camif_check_global_status(camif_cfg_t *cfg)
++{
++ int ret = 0;
++
++ if (down_interruptible((struct semaphore *) &cfg->cis->lock))
++ return -ERESTARTSYS;
++
++ if (cfg->cis->status & CWANT2START) {
++ cfg->cis->status &= ~CWANT2START;
++ cfg->auto_restart = 1;
++ ret = 1;
++ } else {
++ ret = 0; /* There is no codec */
++ cfg->auto_restart = 0; /* Duplicated ..Dummy */
++ }
++
++ up((struct semaphore *) &cfg->cis->lock);
++
++ return ret;
++}
++#endif
++
++static int s3c_camif_convert_format(int pixfmt, int *fmtptr)
++{
++ int fmt = CAMIF_YCBCR420;
++ int depth = 12;
++
++ switch (pixfmt) {
++ case V4L2_PIX_FMT_RGB565:
++ case V4L2_PIX_FMT_RGB565X:
++ fmt = CAMIF_RGB16;
++ depth = 16;
++ break;
++
++ case V4L2_PIX_FMT_BGR24: /* Not tested */
++ case V4L2_PIX_FMT_RGB24:
++ fmt = CAMIF_RGB24;
++ depth = 24;
++ break;
++
++ case V4L2_PIX_FMT_BGR32:
++ case V4L2_PIX_FMT_RGB32:
++ fmt = CAMIF_RGB24;
++ depth = 32;
++ break;
++
++ case V4L2_PIX_FMT_GREY: /* Not tested */
++ fmt = CAMIF_YCBCR420;
++ depth = 8;
++ break;
++
++ case V4L2_PIX_FMT_YUYV:
++ case V4L2_PIX_FMT_UYVY:
++ fmt = CAMIF_YCBCR422I;
++ depth = 16;
++ break;
++
++ case V4L2_PIX_FMT_YUV422P:
++ fmt = CAMIF_YCBCR422;
++ depth = 16;
++ break;
++
++ case V4L2_PIX_FMT_YUV420:
++ fmt = CAMIF_YCBCR420;
++ depth = 12;
++ break;
++ }
++
++ if (fmtptr) *fmtptr = fmt;
++
++ return depth;
++}
++
++static int s3c_camif_set_fb_info(camif_cfg_t *cfg, int depth, int fourcc)
++{
++ /* To define v4l2_format used currently */
++ cfg->v2.frmbuf.fmt.width = cfg->target_x;
++ cfg->v2.frmbuf.fmt.height = cfg->target_y;
++ cfg->v2.frmbuf.fmt.field = V4L2_FIELD_NONE;
++ cfg->v2.frmbuf.fmt.pixelformat = fourcc;
++ cfg->v2.frmbuf.fmt.bytesperline = cfg->v2.frmbuf.fmt.width * depth >> 3;
++ cfg->v2.frmbuf.fmt.sizeimage = cfg->v2.frmbuf.fmt.height * cfg->v2.frmbuf.fmt.bytesperline;
++
++ return 0;
++}
++
++static int s3c_camif_convert_type(camif_cfg_t *cfg, int f)
++{
++ int pixfmt;
++ cfg->target_x = cfg->v2.frmbuf.fmt.width;
++ cfg->target_y = cfg->v2.frmbuf.fmt.height;
++
++ s3c_camif_convert_format(cfg->v2.frmbuf.fmt.pixelformat, &pixfmt);
++
++ cfg->dst_fmt = pixfmt;
++
++ return 0;
++}
++
++/*************************************************************************
++ * Control part
++ ************************************************************************/
++static int s3c_camif_start_capture(camif_cfg_t * cfg)
++{
++ int ret = 0;
++
++ cfg->capture_enable = CAMIF_DMA_ON;
++
++ s3c_camif_start_dma(cfg);
++
++ cfg->status = CAMIF_STARTED;
++
++ if (!(cfg->fsm == CAMIF_SET_LAST_INT || cfg->fsm == CAMIF_CONTINUOUS_INT)) {
++ cfg->fsm = CAMIF_DUMMY_INT;
++ cfg->perf.frames = 0;
++ }
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ if (cfg->input_channel == MSDMA_FROM_CODEC)
++ s3c_camif_start_codec_msdma(cfg);
++#endif
++ return ret;
++}
++
++ssize_t s3c_camif_start_preview(camif_cfg_t *cfg)
++{
++ cfg->capture_enable = CAMIF_DMA_ON;
++
++ s3c_camif_start_dma(cfg);
++
++ cfg->status = CAMIF_STARTED;
++ cfg->fsm = CAMIF_1st_INT;
++ cfg->perf.frames = 0;
++
++ return 0;
++}
++
++ssize_t s3c_camif_stop_preview(camif_cfg_t *cfg)
++{
++ cfg->capture_enable = CAMIF_DMA_OFF;
++ cfg->status = CAMIF_STOPPED;
++
++ s3c_camif_stop_dma(cfg);
++
++ cfg->perf.frames = 0;
++
++ return 0;
++}
++
++ssize_t s3c_camif_stop_capture(camif_cfg_t *cfg)
++{
++ cfg->capture_enable = CAMIF_DMA_OFF;
++ cfg->status = CAMIF_STOPPED;
++
++ s3c_camif_stop_dma(cfg);
++
++ cfg->perf.frames = 0;
++
++ return 0;
++}
++
++ssize_t s3c_camif_stop_fimc(camif_cfg_t *cfg)
++{
++ cfg->capture_enable = CAMIF_BOTH_DMA_OFF;
++ cfg->fsm = CAMIF_DUMMY_INT;
++ cfg->perf.frames = 0;
++
++ s3c_camif_stop_dma(cfg);
++
++ return 0;
++}
++
++#if defined(FSM_ON_PREVIEW)
++static void s3c_camif_start_preview_with_codec(camif_cfg_t *cfg)
++{
++ camif_cfg_t *other = (camif_cfg_t *)cfg->other;
++
++ /* Preview Stop */
++ cfg->capture_enable = CAMIF_DMA_OFF;
++ s3c_camif_stop_dma(cfg);
++
++ /* Start Preview and CODEC */
++ cfg->capture_enable =CAMIF_BOTH_DMA_ON;
++
++ s3c_camif_start_dma(cfg);
++ cfg->fsm = CAMIF_1st_INT; /* For Preview */
++
++ if (!other)
++ panic("Unexpected error: other is null\n");
++
++ switch (other->pp_num) {
++ case 4:
++ other->fsm = CAMIF_1st_INT; /* For CODEC */
++ break;
++
++ case 1:
++ other->fsm = CAMIF_Yth_INT;
++ break;
++
++ default:
++ panic("Invalid pingpong number");
++ break;
++ }
++}
++
++static void s3c_camif_auto_restart(camif_cfg_t *cfg)
++{
++ if (cfg->auto_restart)
++ s3c_camif_start_preview_with_codec(cfg);
++}
++#endif
++
++static void s3c_camif_change_mode(camif_cfg_t *cfg, int mode)
++{
++ camif_cis_t *cis = cfg->cis;
++ int res;
++
++ if (mode == SENSOR_MAX) {
++#if defined(CONFIG_VIDEO_SAMSUNG_S5K3AA)
++ res = SENSOR_SXGA;
++#elif defined(CONFIG_VIDEO_SAMSUNG_S5K3BA)
++ res = SENSOR_UXGA;
++
++/* 4BA max is UXGA, but we don't have UXGA control values */
++#elif defined(CONFIG_VIDEO_SAMSUNG_S5K4BA)
++ res = SENSOR_SVGA;
++#elif defined(CONFIG_VIDEO_APTINA_MT9P012)
++ res = SENSOR_QSXGA_MT9P012;
++#endif
++ } else if (mode == SENSOR_DEFAULT) {
++#if defined(CONFIG_VIDEO_SAMSUNG_S5K4BA)
++ res = SENSOR_SVGA;
++#elif defined(CONFIG_VIDEO_APTINA_MT9P012)
++ res = SENSOR_SXGA_MT9P012;
++#else
++ res = SENSOR_VGA;
++#endif
++ } else
++ res = mode;
++
++ s3c_camif_stop_fimc(cfg);
++
++ switch (res) {
++ case SENSOR_SXGA:
++ printk(KERN_INFO "Resolution changed to SXGA (1280x1024) mode -> 1.3M\n");
++ cis->sensor->driver->command(cis->sensor, SENSOR_SXGA, NULL);
++ cis->source_x = 1280;
++ cis->source_y = 1024;
++ break;
++
++ case SENSOR_UXGA:
++ printk(KERN_INFO "Resolution changed to UXGA (1600x1200) mode -> 2.0M\n");
++ cis->sensor->driver->command(cis->sensor, SENSOR_UXGA, NULL);
++ cis->source_x = 1600;
++ cis->source_y = 1200;
++ break;
++
++ case SENSOR_SVGA:
++ printk(KERN_INFO "Resolution changed to SVGA (800x600) mode\n");
++ cis->sensor->driver->command(cis->sensor, SENSOR_SVGA, NULL);
++ cis->source_x = 800;
++ cis->source_y = 600;
++ break;
++
++ case SENSOR_VGA:
++ printk(KERN_INFO "Resolution changed to VGA (640x480) mode\n");
++ cis->sensor->driver->command(cis->sensor, SENSOR_VGA, NULL);
++ cis->source_x = 640;
++ cis->source_y = 480;
++ break;
++
++ case SENSOR_SXGA_MT9P012:
++ printk(KERN_INFO "Resolution changed to SXGA (1296x972) mode -> 1.3M\n");
++ cis->sensor->driver->command(cis->sensor, SENSOR_SXGA_MT9P012, NULL);
++ cis->source_x = 1296;
++ cis->source_y = 972;
++ break;
++
++ case SENSOR_QSXGA_MT9P012:
++ printk(KERN_INFO "Resolution changed to QSXGA (2592x1944) mode -> 5.0M\n");
++ cis->sensor->driver->command(cis->sensor, SENSOR_QSXGA_MT9P012, NULL);
++ cis->source_x = 2592;
++ cis->source_y = 1944;
++ break;
++ }
++
++ cis->win_hor_ofst = cis->win_hor_ofst2 = 0;
++ cis->win_ver_ofst = cis->win_ver_ofst2 = 0;
++
++ s3c_camif_set_source_format(cis);
++}
++
++static int s3c_camif_check_zoom_range(camif_cfg_t *cfg, int type)
++{
++ switch (type) {
++ case V4L2_CID_ZOOMIN:
++ if (((cfg->sc.modified_src_x - (cfg->cis->win_hor_ofst + \
++ ZOOM_AT_A_TIME_IN_PIXELS + cfg->cis->win_hor_ofst2 + \
++ ZOOM_AT_A_TIME_IN_PIXELS)) / cfg->sc.prehratio) > ZOOM_IN_MAX) {
++ printk(KERN_INFO "Invalid Zoom-in: this zoom-in on preview scaler already comes to the maximum\n");
++ return 0;
++ }
++
++ cfg->sc.zoom_in_cnt++;
++ break;
++
++ case V4L2_CID_ZOOMOUT:
++ if (cfg->sc.zoom_in_cnt > 0) {
++ cfg->sc.zoom_in_cnt--;
++ break;
++ } else {
++ printk(KERN_INFO "Invalid Zoom-out: this zoom-out on preview scaler already comes to the minimum\n");
++ return 0;
++ }
++
++ break;
++
++ default:
++ break;
++ }
++
++ return 1;
++}
++
++static int s3c_camif_restart_preview(camif_cfg_t *cfg)
++{
++ int ret = 0;
++
++ s3c_camif_stop_preview(cfg);
++
++ if (s3c_camif_control_fimc(cfg)) {
++ printk(KERN_ERR "S3C fimc control failed\n");
++ ret = -1;
++ }
++
++ s3c_camif_start_preview(cfg);
++
++ return ret;
++}
++
++static int s3c_camif_send_sensor_command(camif_cfg_t *cfg, unsigned int cmd, int arg)
++{
++ cfg->cis->sensor->driver->command(cfg->cis->sensor, cmd, (void *) arg);
++
++ return 0;
++}
++
++/*************************************************************************
++ * V4L2 part
++ ************************************************************************/
++static int s3c_camif_v4l2_querycap(camif_cfg_t *cfg, void *arg)
++{
++ struct v4l2_capability *cap = arg;
++
++ strcpy(cap->driver, "S3C FIMC Camera driver");
++ strlcpy(cap->card, cfg->v->name, sizeof(cap->card));
++ sprintf(cap->bus_info, "FIMC AHB Bus");
++
++ cap->version = 0;
++ cap->capabilities = cfg->v->type2;
++
++ return 0;
++}
++
++static int s3c_camif_v4l2_g_fbuf(camif_cfg_t *cfg, void *arg)
++{
++ struct v4l2_framebuffer *fb = arg;
++
++ *fb = cfg->v2.frmbuf;
++
++ fb->base = cfg->v2.frmbuf.base;
++ fb->capability = V4L2_FBUF_CAP_LIST_CLIPPING;
++
++ fb->fmt.pixelformat = cfg->v2.frmbuf.fmt.pixelformat;
++ fb->fmt.width = cfg->v2.frmbuf.fmt.width;
++ fb->fmt.height = cfg->v2.frmbuf.fmt.height;
++ fb->fmt.bytesperline = cfg->v2.frmbuf.fmt.bytesperline;
++
++ return 0;
++}
++
++static int s3c_camif_v4l2_s_fbuf(camif_cfg_t *cfg, void *arg)
++{
++ struct v4l2_framebuffer *fb = arg;
++ int i, depth;
++
++ for (i = 0; i < NUMBER_OF_PREVIEW_FORMATS; i++)
++ if (fimc_preview_formats[i].pixelformat == fb->fmt.pixelformat)
++ break;
++
++ if (i == NUMBER_OF_PREVIEW_FORMATS)
++ return -EINVAL;
++
++ cfg->v2.frmbuf.base = fb->base;
++ cfg->v2.frmbuf.flags = fb->flags;
++ cfg->v2.frmbuf.capability = fb->capability;
++
++ cfg->target_x = fb->fmt.width;
++ cfg->target_y = fb->fmt.height;
++
++ depth = s3c_camif_convert_format(fb->fmt.pixelformat, (int *) &(cfg->dst_fmt));
++ s3c_camif_set_fb_info(cfg, depth, fb->fmt.pixelformat);
++
++ return s3c_camif_control_fimc(cfg);
++}
++
++static int s3c_camif_v4l2_g_fmt(camif_cfg_t *cfg, void *arg)
++{
++ struct v4l2_format *f = (struct v4l2_format *) arg;
++ int size = sizeof(struct v4l2_pix_format);
++ int ret = -1;
++
++ switch (f->type) {
++ case V4L2_BUF_TYPE_VIDEO_CAPTURE:
++ memset(&f->fmt.pix, 0, size);
++ memcpy(&f->fmt.pix, &cfg->v2.frmbuf.fmt, size);
++ ret = 0;
++ break;
++
++ default:
++ break;
++ }
++
++ return ret;
++}
++
++static int s3c_camif_v4l2_s_fmt(camif_cfg_t *cfg, void *arg)
++{
++ struct v4l2_format *f = (struct v4l2_format *) arg;
++ int ret = -1;
++
++ switch (f->type) {
++ case V4L2_BUF_TYPE_VIDEO_CAPTURE:
++ cfg->v2.frmbuf.fmt = f->fmt.pix;
++ cfg->v2.status |= CAMIF_v4L2_DIRTY;
++ cfg->v2.status &= ~CAMIF_v4L2_DIRTY; /* dummy ? */
++
++ s3c_camif_convert_type(cfg, 1);
++ s3c_camif_control_fimc(cfg);
++ ret = 0;
++ break;
++
++ default:
++ break;
++ }
++
++ return ret;
++}
++
++static int s3c_camif_v4l2_enum_fmt(camif_cfg_t *cfg, void *arg)
++{
++ struct v4l2_fmtdesc *f = arg;
++ int index = f->index;
++
++ if (index >= NUMBER_OF_CODEC_FORMATS)
++ return -EINVAL;
++
++ switch (f->type) {
++ case V4L2_BUF_TYPE_VIDEO_CAPTURE:
++ break;
++
++ case V4L2_BUF_TYPE_VIDEO_OVERLAY:
++ default:
++ return -EINVAL;
++ }
++
++ memset(f, 0, sizeof(*f));
++ memcpy(f, cfg->v2.fmtdesc + index, sizeof(*f));
++
++ return 0;
++}
++
++static int s3c_camif_v4l2_overlay(camif_cfg_t *cfg, void *arg)
++{
++ int on = *((int *) arg);
++ int ret;
++
++ if (on != 0)
++ ret = s3c_camif_start_preview(cfg);
++ else
++ ret = s3c_camif_stop_preview(cfg);
++
++ return ret;
++}
++
++static int s3c_camif_v4l2_g_ctrl(camif_cfg_t *cfg, void *arg)
++{
++ return 0;
++}
++
++static int s3c_camif_v4l2_s_ctrl(camif_cfg_t *cfg, void *arg)
++{
++ struct v4l2_control *ctrl = (struct v4l2_control *) arg;
++
++ switch (ctrl->id) {
++ case V4L2_CID_ORIGINAL:
++ case V4L2_CID_ARBITRARY:
++ case V4L2_CID_NEGATIVE:
++ case V4L2_CID_EMBOSSING:
++ case V4L2_CID_ART_FREEZE:
++ case V4L2_CID_SILHOUETTE:
++ cfg->effect = ctrl->value;
++ s3c_camif_change_effect(cfg);
++ break;
++
++ case V4L2_CID_HFLIP:
++ cfg->flip = CAMIF_FLIP_X;
++ s3c_camif_change_flip(cfg);
++ break;
++
++ case V4L2_CID_VFLIP:
++ cfg->flip = CAMIF_FLIP_Y;
++ s3c_camif_change_flip(cfg);
++ break;
++
++ case V4L2_CID_ROTATE_180:
++ cfg->flip = CAMIF_FLIP_MIRROR;
++ s3c_camif_change_flip(cfg);
++ break;
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ case V4L2_CID_ROTATE_90:
++ cfg->flip = CAMIF_ROTATE_90;
++ s3c_camif_change_flip(cfg);
++ break;
++
++ case V4L2_CID_ROTATE_270:
++ cfg->flip = CAMIF_FLIP_ROTATE_270;
++ s3c_camif_change_flip(cfg);
++ break;
++#endif
++
++ case V4L2_CID_ROTATE_BYPASS:
++ cfg->flip = CAMIF_FLIP;
++ s3c_camif_change_flip(cfg);
++ break;
++
++ case V4L2_CID_ZOOMIN:
++ if (s3c_camif_check_zoom_range(cfg, ctrl->id)) {
++ cfg->cis->win_hor_ofst += ZOOM_AT_A_TIME_IN_PIXELS;
++ cfg->cis->win_ver_ofst += ZOOM_AT_A_TIME_IN_PIXELS;
++ cfg->cis->win_hor_ofst2 += ZOOM_AT_A_TIME_IN_PIXELS;
++ cfg->cis->win_ver_ofst2 += ZOOM_AT_A_TIME_IN_PIXELS;
++
++ s3c_camif_restart_preview(cfg);
++ }
++
++ break;
++
++ case V4L2_CID_ZOOMOUT:
++ if (s3c_camif_check_zoom_range(cfg, ctrl->id)) {
++ cfg->cis->win_hor_ofst -= ZOOM_AT_A_TIME_IN_PIXELS;
++ cfg->cis->win_ver_ofst -= ZOOM_AT_A_TIME_IN_PIXELS;
++ cfg->cis->win_hor_ofst2 -= ZOOM_AT_A_TIME_IN_PIXELS;
++ cfg->cis->win_ver_ofst2 -= ZOOM_AT_A_TIME_IN_PIXELS;
++
++ s3c_camif_restart_preview(cfg);
++ }
++
++ break;
++
++ case V4L2_CID_CONTRAST:
++ case V4L2_CID_AUTO_WHITE_BALANCE:
++ s3c_camif_send_sensor_command(cfg, SENSOR_WB, ctrl->value);
++ break;
++
++ default:
++ printk(KERN_ERR "Invalid control id: %d\n", ctrl->id);
++ return -1;
++ }
++
++ return 0;
++}
++
++static int s3c_camif_v4l2_streamon(camif_cfg_t *cfg, void *arg)
++{
++ int ret = 0;
++
++ ret = s3c_camif_start_capture(cfg);
++
++ return ret;
++}
++
++static int s3c_camif_v4l2_streamoff(camif_cfg_t *cfg, void *arg)
++{
++ int ret = 0;
++
++ cfg->cis->status &= ~C_WORKING;
++
++ s3c_camif_stop_capture(cfg);
++
++ return ret;
++}
++
++static int s3c_camif_v4l2_g_input(camif_cfg_t *cfg, void *arg)
++{
++ unsigned int index = *((int *) arg);
++
++ index = cfg->v2.input->index;
++
++ return 0;
++}
++
++static int s3c_camif_v4l2_s_input(camif_cfg_t *cfg, unsigned int index)
++{
++ int ret = -1;
++
++ if (index >= NUMBER_OF_INPUTS)
++ ret = -1;
++ else {
++ cfg->v2.input = &fimc_inputs[index];
++
++ if (cfg->v2.input->type == V4L2_INPUT_TYPE_MSDMA) {
++ if (cfg->dma_type & CAMIF_PREVIEW) {
++ cfg->input_channel = MSDMA_FROM_PREVIEW;
++ ret = 0;
++ } else if (cfg->dma_type & CAMIF_CODEC) {
++ cfg->input_channel = MSDMA_FROM_CODEC;
++ ret = 0;
++ }
++ } else {
++ cfg->input_channel = CAMERA_INPUT;
++ ret = 0;
++ }
++ }
++
++ return ret;
++}
++
++static int s3c_camif_v4l2_g_output(camif_cfg_t *cfg, void *arg)
++{
++ unsigned int index = *((int *) arg);
++
++ index = cfg->v2.output->index;
++
++ return 0;
++}
++
++static int s3c_camif_v4l2_s_output(camif_cfg_t *cfg, unsigned int index)
++{
++ if (index >= NUMBER_OF_OUTPUTS)
++ return -EINVAL;
++ else {
++ cfg->v2.output = (struct v4l2_output *) &fimc_outputs[index];
++ return 0;
++ }
++}
++
++static int s3c_camif_v4l2_enum_input(camif_cfg_t *cfg, void *arg)
++{
++ struct v4l2_input *i = arg;
++
++ if (i->index >= NUMBER_OF_INPUTS)
++ return -EINVAL;
++
++ memcpy(i, &fimc_inputs[i->index], sizeof(struct v4l2_input));
++
++ return 0;
++}
++
++static int s3c_camif_v4l2_enum_output(camif_cfg_t *cfg, void *arg)
++{
++ struct v4l2_output *i = arg;
++
++ if ((i->index) >= NUMBER_OF_OUTPUTS)
++ return -EINVAL;
++
++ memcpy(i, &fimc_outputs[i->index], sizeof(struct v4l2_output));
++
++ return 0;
++}
++
++static int s3c_camif_v4l2_reqbufs(camif_cfg_t *cfg, void *arg)
++{
++ struct v4l2_requestbuffers *req = arg;
++
++ if (req->memory != V4L2_MEMORY_MMAP) {
++ printk(KERN_ERR "Only V4L2_MEMORY_MMAP capture is supported\n");
++ return -EINVAL;
++ }
++
++ /* control user input */
++ if (req->count > 2)
++ req->count = 4;
++ else if (req->count > 1)
++ req->count = 2;
++ else
++ req->count = 1;
++
++ return 0;
++}
++
++static int s3c_camif_v4l2_querybuf(camif_cfg_t *cfg, void *arg)
++{
++ struct v4l2_buffer *buf = arg;
++
++ if (buf->type != V4L2_BUF_TYPE_VIDEO_CAPTURE && buf->memory != V4L2_MEMORY_MMAP)
++ return -1;
++
++ buf->length = cfg->buffer_size;
++ buf->m.offset = buf->length * buf->index;
++
++ return 0;
++}
++
++static int s3c_camif_v4l2_qbuf(camif_cfg_t *cfg, void *arg)
++{
++ return 0;
++}
++
++static int s3c_camif_v4l2_dqbuf(camif_cfg_t *cfg, void *arg)
++{
++ struct v4l2_buffer *buf = arg;
++
++ buf->index = cfg->cur_frame_num % cfg->pp_num;
++
++ return 0;
++}
++
++/*
++ * S3C specific
++ */
++static int s3c_camif_v4l2_s_msdma(camif_cfg_t *cfg, void *arg)
++{
++ struct v4l2_msdma_format *f = arg;
++ int ret = -1;
++
++ switch(f->input_path) {
++ case V4L2_MSDMA_PREVIEW:
++ cfg->cis->user--; /* CIS will be replaced with a CIS for MSDMA */
++
++ cfg->cis = &msdma_input;
++ cfg->cis->user++;
++ cfg->input_channel = MSDMA_FROM_PREVIEW;
++ break;
++
++ case V4L2_MSDMA_CODEC:
++ cfg->cis->user--; /* CIS will be replaced with a CIS for MSDMA */
++
++ cfg->cis = &msdma_input;
++ cfg->cis->user++;
++ cfg->input_channel = MSDMA_FROM_CODEC;
++ break;
++
++ default:
++ cfg->input_channel = CAMERA_INPUT;
++ break;
++ }
++
++ cfg->cis->source_x = f->width;
++ cfg->cis->source_y = f->height;
++
++ s3c_camif_convert_format(f->pixelformat, (int *) &cfg->src_fmt);
++
++ cfg->cis->win_hor_ofst = 0;
++ cfg->cis->win_ver_ofst = 0;
++ cfg->cis->win_hor_ofst2 = 0;
++ cfg->cis->win_ver_ofst2 = 0;
++
++ ret = s3c_camif_control_fimc(cfg);
++
++ switch(f->input_path) {
++ case V4L2_MSDMA_PREVIEW:
++ ret = s3c_camif_start_preview(cfg);
++ break;
++
++ case V4L2_MSDMA_CODEC:
++ ret = s3c_camif_start_capture(cfg);
++ break;
++
++ default:
++ break;
++
++ }
++
++ return ret;
++}
++
++static int s3c_camif_v4l2_msdma_start(camif_cfg_t *cfg, void *arg)
++{
++ if (cfg->input_channel == MSDMA_FROM_PREVIEW) {
++ cfg->msdma_status = 1;
++ s3c_camif_start_preview_msdma(cfg);
++ }
++
++ return 0;
++}
++
++static int s3c_camif_v4l2_msdma_stop(camif_cfg_t *cfg, void *arg)
++{
++ struct v4l2_msdma_format *f = arg;
++ int ret = -1;
++
++ cfg->cis->status &= ~C_WORKING;
++ cfg->msdma_status = 0;
++
++ switch(f->input_path) {
++ case V4L2_MSDMA_PREVIEW:
++ ret = s3c_camif_stop_preview(cfg);
++ break;
++
++ case V4L2_MSDMA_CODEC:
++ ret = s3c_camif_stop_capture(cfg);
++ break;
++
++ default:
++ break;
++ }
++
++ return ret;
++}
++
++static int s3c_camif_v4l2_camera_start(camif_cfg_t *cfg, void *arg)
++{
++ return 0;
++}
++
++static int s3c_camif_v4l2_camera_stop(camif_cfg_t *cfg, void *arg)
++{
++ return 0;
++}
++
++static int s3c_camif_v4l2_cropcap(camif_cfg_t *cfg, void *arg)
++{
++ struct v4l2_cropcap *cap = arg;
++
++ if (cap->type != V4L2_BUF_TYPE_VIDEO_CAPTURE &&
++ cap->type != V4L2_BUF_TYPE_VIDEO_OVERLAY)
++ return -EINVAL;
++
++ /* crop limitations */
++ cfg->v2.crop_bounds.left = 0;
++ cfg->v2.crop_bounds.top = 0;
++ cfg->v2.crop_bounds.width = cfg->cis->source_x;
++ cfg->v2.crop_bounds.height = cfg->cis->source_y;
++
++ /* crop default values */
++ cfg->v2.crop_defrect.left = (cfg->cis->source_x - CROP_DEFAULT_WIDTH) / 2;
++ cfg->v2.crop_defrect.top = (cfg->cis->source_y - CROP_DEFAULT_HEIGHT) / 2;
++ cfg->v2.crop_defrect.width = CROP_DEFAULT_WIDTH;
++ cfg->v2.crop_defrect.height = CROP_DEFAULT_HEIGHT;
++
++ cap->bounds = cfg->v2.crop_bounds;
++ cap->defrect = cfg->v2.crop_defrect;
++
++ return 0;
++}
++
++static int s3c_camif_v4l2_g_crop(camif_cfg_t *cfg, void *arg)
++{
++ struct v4l2_crop *crop = arg;
++
++ if (crop->type != V4L2_BUF_TYPE_VIDEO_CAPTURE &&
++ crop->type != V4L2_BUF_TYPE_VIDEO_OVERLAY)
++ return -EINVAL;
++
++ crop->c = cfg->v2.crop_current;
++
++ return 0;
++}
++
++static int s3c_camif_v4l2_s_crop(camif_cfg_t *cfg, void *arg)
++{
++ struct v4l2_crop *crop = arg;
++
++ if (crop->type != V4L2_BUF_TYPE_VIDEO_CAPTURE &&
++ crop->type != V4L2_BUF_TYPE_VIDEO_OVERLAY)
++ return -EINVAL;
++
++ if (crop->c.height < 0)
++ return -EINVAL;
++
++ if (crop->c.width < 0)
++ return -EINVAL;
++
++ if ((crop->c.left + crop->c.width > cfg->cis->source_x) || \
++ (crop->c.top + crop->c.height > cfg->cis->source_y))
++ return -EINVAL;
++
++ cfg->v2.crop_current = crop->c;
++
++ cfg->cis->win_hor_ofst = (cfg->cis->source_x - crop->c.width) / 2;
++ cfg->cis->win_ver_ofst = (cfg->cis->source_y - crop->c.height) / 2;
++
++ cfg->cis->win_hor_ofst2 = cfg->cis->win_hor_ofst;
++ cfg->cis->win_ver_ofst2 = cfg->cis->win_ver_ofst;
++
++ s3c_camif_restart_preview(cfg);
++
++ return 0;
++}
++
++static int s3c_camif_v4l2_s_parm(camif_cfg_t *cfg, void *arg)
++{
++ struct v4l2_streamparm *sp = arg;
++
++ if (sp->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
++ return -EINVAL;
++
++#if defined(CONFIG_VIDEO_APTINA_MT9P012)
++ if (cfg->dma_type == CAMIF_CODEC && cfg->target_x == 2592 && cfg->target_y == 1944) {
++ printk("scalerbypass selected\n");
++ cfg->sc.scalerbypass = 1;
++ }
++#endif
++ if (sp->parm.capture.capturemode == V4L2_MODE_HIGHQUALITY) {
++ s3c_camif_change_mode(cfg, SENSOR_MAX);
++ s3c_camif_control_fimc(cfg);
++ } else {
++ s3c_camif_change_mode(cfg, SENSOR_DEFAULT);
++ s3c_camif_control_fimc(cfg);
++ }
++
++ return 0;
++}
++
++/*************************************************************************
++ * Interrupt part
++ ************************************************************************/
++#if defined(FSM_ON_CODEC) && !defined(USE_LAST_IRQ)
++int s3c_camif_do_fsm_codec(camif_cfg_t *cfg)
++{
++ int ret;
++
++ cfg->perf.frames++;
++
++ if ((cfg->fsm == CAMIF_DUMMY_INT) && (cfg->perf.frames > CAMIF_CAPTURE_SKIP_FRAMES))
++ cfg->fsm = CAMIF_NORMAL_INT;
++
++ switch (cfg->fsm) {
++ case CAMIF_DUMMY_INT:
++ DPRINTK(KERN_INFO "CAMIF_DUMMY_INT: %d\n", cfg->perf.frames);
++ cfg->status = CAMIF_STARTED;
++ cfg->fsm = CAMIF_DUMMY_INT;
++ ret = INSTANT_SKIP;
++ break;
++
++ case CAMIF_NORMAL_INT:
++ DPRINTK(KERN_INFO "CAMIF_NORMAL_INT: %d\n", cfg->perf.frames);
++ cfg->status = CAMIF_INT_HAPPEN;
++ cfg->fsm = CAMIF_CONTINUOUS_INT;
++ ret = INSTANT_GO;
++ break;
++
++ case CAMIF_CONTINUOUS_INT:
++ DPRINTK(KERN_INFO "CAMIF_CONTINUOS_INT: %d\n", cfg->perf.frames);
++ cfg->status = CAMIF_INT_HAPPEN;
++ cfg->fsm = CAMIF_CONTINUOUS_INT;
++ ret = INSTANT_GO;
++ break;
++
++ default:
++ printk(KERN_INFO "Unexpected INT: %d\n", cfg->fsm);
++ ret = INSTANT_SKIP;
++ break;
++ }
++
++ return ret;
++}
++#endif
++
++#if defined(FSM_ON_CODEC) && defined(USE_LAST_IRQ)
++int s3c_camif_do_fsm_codec_lastirq(camif_cfg_t *cfg)
++{
++ int ret;
++
++ cfg->perf.frames++;
++
++ if ((cfg->fsm == CAMIF_DUMMY_INT) && (cfg->perf.frames > (CAMIF_CAPTURE_SKIP_FRAMES - 2)))
++ cfg->fsm = CAMIF_SET_LAST_INT;
++
++ switch (cfg->fsm) {
++ case CAMIF_DUMMY_INT:
++ DPRINTK(KERN_INFO "CAMIF_DUMMY_INT: %d\n", cfg->perf.frames);
++ cfg->status = CAMIF_STARTED;
++ cfg->fsm = CAMIF_DUMMY_INT;
++ ret = INSTANT_SKIP;
++ break;
++
++ case CAMIF_SET_LAST_INT:
++ DPRINTK(KERN_INFO "CAMIF_SET_LAST_INT: %d\n", cfg->perf.frames);
++ s3c_camif_enable_lastirq(cfg);
++
++/* in 64xx, lastirq is not auto cleared. */
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ s3c_camif_disable_lastirq(cfg);
++#endif
++ cfg->status = CAMIF_INT_HAPPEN;
++ cfg->fsm = CAMIF_STOP_CAPTURE;
++ ret = INSTANT_SKIP;
++ break;
++
++ case CAMIF_STOP_CAPTURE:
++ DPRINTK(KERN_INFO "CAMIF_STOP_CAPTURE: %d\n", cfg->perf.frames);
++ cfg->capture_enable = CAMIF_DMA_OFF;
++ s3c_camif_stop_dma(cfg);
++ cfg->fsm = CAMIF_LAST_IRQ;
++ ret = INSTANT_SKIP;
++ break;
++
++ case CAMIF_LAST_IRQ:
++ DPRINTK(KERN_INFO "CAMIF_LAST_IRQ: %d\n", cfg->perf.frames);
++ cfg->fsm = CAMIF_SET_LAST_INT;
++ cfg->status = CAMIF_INT_HAPPEN;
++ ret = INSTANT_GO;
++ break;
++
++ default:
++ printk(KERN_INFO "Unexpected INT: %d\n", cfg->fsm);
++ ret = INSTANT_SKIP;
++ break;
++ }
++
++ return ret;
++}
++#endif
++
++#if defined(FSM_ON_PREVIEW)
++static int s3c_camif_do_lastirq_preview(camif_cfg_t *cfg)
++{
++ int ret = 0;
++
++ cfg->perf.frames++;
++
++ if (cfg->fsm == CAMIF_NORMAL_INT) {
++ if (cfg->perf.frames % CHECK_FREQ == 0)
++ ret = s3c_camif_check_global_status(cfg);
++ }
++
++ if (ret > 0)
++ cfg->fsm = CAMIF_Xth_INT;
++
++ switch (cfg->fsm) {
++ case CAMIF_1st_INT:
++ DPRINTK(KERN_INFO "CAMIF_1st_INT INT\n");
++ cfg->fsm = CAMIF_NORMAL_INT;
++ ret = INSTANT_SKIP;
++ break;
++
++ case CAMIF_NORMAL_INT:
++ DPRINTK(KERN_INFO "CAMIF_NORMAL_INT\n");
++ cfg->status = CAMIF_INT_HAPPEN;
++ cfg->fsm = CAMIF_NORMAL_INT;
++ ret = INSTANT_GO;
++ break;
++
++ case CAMIF_Xth_INT:
++ DPRINTK(KERN_INFO "CAMIF_Xth_INT\n");
++ s3c_camif_enable_lastirq(cfg);
++ cfg->status = CAMIF_INT_HAPPEN;
++ cfg->fsm = CAMIF_Yth_INT;
++ ret = INSTANT_GO;
++ break;
++
++ case CAMIF_Yth_INT:
++ DPRINTK(KERN_INFO "CAMIF_Yth_INT\n");
++ s3c_camif_disable_lastirq(cfg);
++ cfg->capture_enable = CAMIF_DMA_OFF;
++ cfg->status = CAMIF_INT_HAPPEN;
++ s3c_camif_stop_dma(cfg);
++ cfg->fsm = CAMIF_Zth_INT;
++ ret = INSTANT_GO;
++ break;
++
++ case CAMIF_Zth_INT:
++ DPRINTK(KERN_INFO "CAMIF_Zth_INT\n");
++ cfg->fsm = CAMIF_DUMMY_INT;
++ cfg->status = CAMIF_INT_HAPPEN;
++ ret = INSTANT_GO;
++ s3c_camif_auto_restart(cfg);
++ break;
++
++ case CAMIF_DUMMY_INT:
++ DPRINTK(KERN_INFO "CAMIF_DUMMY_INT\n");
++ cfg->status = CAMIF_STOPPED;
++ ret = INSTANT_SKIP;
++ break;
++
++ default:
++ printk(KERN_INFO "Unexpected INT %d\n", cfg->fsm);
++ ret = INSTANT_SKIP;
++ break;
++ }
++
++ return ret;
++}
++#endif
++
++static irqreturn_t s3c_camif_do_irq_codec(int irq, void *dev_id)
++{
++ camif_cfg_t *cfg = (camif_cfg_t *) dev_id;
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ gpio_set_value(S3C_GPN15, 1);
++#endif
++ s3c_camif_clear_irq(irq);
++ s3c_camif_get_fifo_status(cfg);
++ s3c_camif_get_frame_num(cfg);
++
++#if defined(FSM_ON_CODEC) && !defined(USE_LAST_IRQ)
++ if (s3c_camif_do_fsm_codec(cfg) == INSTANT_SKIP)
++ return IRQ_HANDLED;
++#endif
++
++#if defined(FSM_ON_CODEC) && defined(USE_LAST_IRQ)
++ if (s3c_camif_do_fsm_codec_lastirq(cfg) == INSTANT_SKIP)
++ return IRQ_HANDLED;
++#endif
++ wake_up_interruptible(&cfg->waitq);
++
++ return IRQ_HANDLED;
++}
++
++static irqreturn_t s3c_camif_do_irq_preview(int irq, void *dev_id)
++{
++ camif_cfg_t *cfg = (camif_cfg_t *) dev_id;
++
++ s3c_camif_clear_irq(irq);
++ s3c_camif_get_fifo_status(cfg);
++ s3c_camif_get_frame_num(cfg);
++ wake_up_interruptible(&cfg->waitq);
++
++#if defined(FSM_ON_PREVIEW)
++ if (s3c_camif_do_lastirq_preview(cfg) == INSTANT_SKIP)
++ return IRQ_HANDLED;
++
++ wake_up_interruptible(&cfg->waitq);
++#endif
++ cfg->status = CAMIF_INT_HAPPEN;
++
++ return IRQ_HANDLED;
++}
++
++static void s3c_camif_release_irq(camif_cfg_t * cfg)
++{
++ disable_irq(cfg->irq);
++ free_irq(cfg->irq, cfg);
++}
++
++static int s3c_camif_request_irq(camif_cfg_t * cfg)
++{
++ int ret = 0;
++
++ if (cfg->dma_type & CAMIF_CODEC) {
++ if ((ret = request_irq(cfg->irq, s3c_camif_do_irq_codec, IRQF_DISABLED, cfg->shortname, cfg)))
++ printk(KERN_ERR "Request irq (CAM_C) failed\n");
++ else
++ printk(KERN_INFO "Request irq %d for codec\n", cfg->irq);
++ }
++
++ if (cfg->dma_type & CAMIF_PREVIEW) {
++ if ((ret = request_irq(cfg->irq, s3c_camif_do_irq_preview, IRQF_DISABLED, cfg->shortname, cfg)))
++ printk("Request_irq (CAM_P) failed\n");
++ else
++ printk(KERN_INFO "Request irq %d for preview\n", cfg->irq);
++ }
++
++ return 0;
++}
++
++/*************************************************************************
++ * Standard file operations part
++ ************************************************************************/
++int s3c_camif_ioctl(struct inode *inode, struct file *file, unsigned int cmd, void *arg)
++{
++ camif_cfg_t *cfg = file->private_data;
++ int ret = -1;
++
++ switch (cmd) {
++ case VIDIOC_QUERYCAP:
++ ret = s3c_camif_v4l2_querycap(cfg, arg);
++ break;
++
++ case VIDIOC_G_FBUF:
++ ret = s3c_camif_v4l2_g_fbuf(cfg, arg);
++ break;
++
++ case VIDIOC_S_FBUF:
++ ret = s3c_camif_v4l2_s_fbuf(cfg, arg);
++ break;
++
++ case VIDIOC_G_FMT:
++ ret = s3c_camif_v4l2_g_fmt(cfg, arg);
++ break;
++
++ case VIDIOC_S_FMT:
++ ret = s3c_camif_v4l2_s_fmt(cfg, arg);
++ break;
++
++ case VIDIOC_ENUM_FMT:
++ ret = s3c_camif_v4l2_enum_fmt(cfg, arg);
++ break;
++
++ case VIDIOC_OVERLAY:
++ ret = s3c_camif_v4l2_overlay(cfg, arg);
++ break;
++
++ case VIDIOC_S_CTRL:
++ ret = s3c_camif_v4l2_s_ctrl(cfg, arg);
++ break;
++
++ case VIDIOC_G_CTRL:
++ ret = s3c_camif_v4l2_g_ctrl(cfg, arg);
++ break;
++
++ case VIDIOC_STREAMON:
++ ret = s3c_camif_v4l2_streamon(cfg, arg);
++ break;
++
++ case VIDIOC_STREAMOFF:
++ ret = s3c_camif_v4l2_streamoff(cfg, arg);
++ break;
++
++ case VIDIOC_G_INPUT:
++ ret = s3c_camif_v4l2_g_input(cfg, arg);
++ break;
++
++ case VIDIOC_S_INPUT:
++ ret = s3c_camif_v4l2_s_input(cfg, *((int *) arg));
++ break;
++
++ case VIDIOC_G_OUTPUT:
++ ret = s3c_camif_v4l2_g_output(cfg, arg);
++ break;
++
++ case VIDIOC_S_OUTPUT:
++ ret = s3c_camif_v4l2_s_output(cfg, *((int *) arg));
++ break;
++
++ case VIDIOC_ENUMINPUT:
++ ret = s3c_camif_v4l2_enum_input(cfg, arg);
++ break;
++
++ case VIDIOC_ENUMOUTPUT:
++ ret = s3c_camif_v4l2_enum_output(cfg, arg);
++ break;
++
++ case VIDIOC_REQBUFS:
++ ret = s3c_camif_v4l2_reqbufs(cfg, arg);
++ break;
++
++ case VIDIOC_QUERYBUF:
++ ret = s3c_camif_v4l2_querybuf(cfg, arg);
++ break;
++
++ case VIDIOC_QBUF:
++ ret = s3c_camif_v4l2_qbuf(cfg, arg);
++ break;
++
++ case VIDIOC_DQBUF:
++ ret = s3c_camif_v4l2_dqbuf(cfg, arg);
++ break;
++
++ case VIDIOC_S_MSDMA:
++ ret = s3c_camif_v4l2_s_msdma(cfg, arg);
++ break;
++
++ case VIDIOC_MSDMA_START:
++ ret = s3c_camif_v4l2_msdma_start(cfg, arg);
++ break;
++
++ case VIDIOC_MSDMA_STOP:
++ ret = s3c_camif_v4l2_msdma_stop(cfg, arg);
++ break;
++
++ case VIDIOC_S_CAMERA_START:
++ ret = s3c_camif_v4l2_camera_start(cfg, arg);
++ break;
++
++ case VIDIOC_S_CAMERA_STOP:
++ ret = s3c_camif_v4l2_camera_stop(cfg, arg);
++ break;
++
++ case VIDIOC_CROPCAP:
++ ret = s3c_camif_v4l2_cropcap(cfg, arg);
++ break;
++
++ case VIDIOC_G_CROP:
++ ret = s3c_camif_v4l2_g_crop(cfg, arg);
++ break;
++
++ case VIDIOC_S_CROP:
++ ret = s3c_camif_v4l2_s_crop(cfg, arg);
++ break;
++
++ case VIDIOC_S_PARM:
++ ret = s3c_camif_v4l2_s_parm(cfg, arg);
++ break;
++
++ default: /* For v4l compatability */
++ v4l_compat_translate_ioctl(inode, file, cmd, arg, s3c_camif_ioctl);
++ break;
++ } /* End of Switch */
++
++ return ret;
++}
++
++int s3c_camif_open(struct inode *inode, struct file *file)
++{
++ int err;
++ camif_cfg_t *cfg = s3c_camif_get_fimc_object(MINOR(inode->i_rdev));
++
++ if (!cfg->cis) {
++ printk(KERN_ERR "An object for a CIS is missing\n");
++ printk(KERN_ERR "Using msdma_input as a default CIS data structure\n");
++ cfg->cis = &msdma_input;
++
++ /* global lock for both Codec and Preview */
++ sema_init((struct semaphore *) &cfg->cis->lock, 1);
++ cfg->cis->status |= P_NOT_WORKING;
++ }
++
++ if (cfg->dma_type & CAMIF_PREVIEW) {
++ if (cfg->dma_type & CAMIF_PREVIEW)
++ cfg->cis->status &= ~P_NOT_WORKING;
++
++ up((struct semaphore *) &cfg->cis->lock);
++ }
++
++ err = video_exclusive_open(inode, file);
++ cfg->cis->user++;
++ cfg->status = CAMIF_STOPPED;
++
++ if (err < 0)
++ return err;
++
++ if (file->f_flags & O_NONCAP) {
++ printk(KERN_ERR "Don't support non-capturing open\n");
++ return 0;
++ }
++
++ file->private_data = cfg;
++
++ s3c_camif_init_sensor(cfg);
++
++ return 0;
++}
++
++int s3c_camif_release(struct inode *inode, struct file *file)
++{
++ camif_cfg_t *cfg = s3c_camif_get_fimc_object(MINOR(inode->i_rdev));
++
++ if (cfg->dma_type & CAMIF_PREVIEW) {
++ cfg->cis->status &= ~PWANT2START;
++ cfg->cis->status |= P_NOT_WORKING;
++ s3c_camif_stop_preview(cfg);
++ up((struct semaphore *) &cfg->cis->lock);
++ } else {
++ cfg->cis->status &= ~CWANT2START;
++ s3c_camif_stop_capture(cfg);
++ }
++
++ video_exclusive_release(inode, file);
++
++ if (cfg->cis->sensor == NULL)
++ DPRINTK("A CIS sensor for MSDMA has been used\n");
++ else
++ cfg->cis->sensor->driver->command(cfg->cis->sensor, USER_EXIT, NULL);
++
++ cfg->cis->user--;
++ cfg->status = CAMIF_STOPPED;
++
++ return 0;
++}
++
++ssize_t s3c_camif_read(struct file * file, char *buf, size_t count, loff_t * pos)
++{
++ camif_cfg_t *cfg = NULL;
++ size_t end;
++
++ cfg = s3c_camif_get_fimc_object(MINOR(file->f_dentry->d_inode->i_rdev));
++
++#if defined(FSM_ON_PREVIEW)
++ if (cfg->dma_type == CAMIF_PREVIEW) {
++ if (wait_event_interruptible(cfg->waitq, cfg->status == CAMIF_INT_HAPPEN))
++ return -ERESTARTSYS;
++
++ cfg->status = CAMIF_STOPPED;
++ }
++#endif
++
++#if defined(FSM_ON_CODEC)
++ if (cfg->dma_type == CAMIF_CODEC) {
++ if (wait_event_interruptible(cfg->waitq, cfg->status == CAMIF_INT_HAPPEN))
++ return -ERESTARTSYS;
++
++ cfg->status = CAMIF_STOPPED;
++ }
++#endif
++ end = min_t(size_t, cfg->pp_totalsize / cfg->pp_num, count);
++
++ if (copy_to_user(buf, s3c_camif_get_frame(cfg), end))
++ return -EFAULT;
++
++ return end;
++}
++
++ssize_t s3c_camif_write(struct file * f, const char *b, size_t c, loff_t * offset)
++{
++ camif_cfg_t *cfg;
++ int ret = 0;
++
++ cfg = s3c_camif_get_fimc_object(MINOR(f->f_dentry->d_inode->i_rdev));
++
++ switch (*b) {
++ case 'O':
++ if (cfg->dma_type & CAMIF_PREVIEW)
++ s3c_camif_start_preview(cfg);
++ else {
++ ret = s3c_camif_start_capture(cfg);
++
++ if (ret < 0)
++ ret = 1;
++ }
++
++ break;
++
++ case 'X':
++ if (cfg->dma_type & CAMIF_PREVIEW) {
++ s3c_camif_stop_preview(cfg);
++ cfg->cis->status |= P_NOT_WORKING;
++ } else {
++ cfg->cis->status &= ~C_WORKING;
++ s3c_camif_stop_capture(cfg);
++ }
++
++ break;
++
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ case 'P':
++ if (cfg->dma_type & CAMIF_PREVIEW) {
++ s3c_camif_start_preview(cfg);
++ s3c_camif_do_postprocess(cfg);
++ return 0;
++ } else
++ return -EFAULT;
++#endif
++ default:
++ panic("s3c_camera_driver.c: s3c_camif_write() - Unexpected Parameter\n");
++ }
++
++ return ret;
++}
++
++int s3c_camif_mmap(struct file* filp, struct vm_area_struct *vma)
++{
++ camif_cfg_t *cfg = filp->private_data;
++
++ unsigned long pageFrameNo;
++ unsigned long size = vma->vm_end - vma->vm_start;
++ unsigned long total_size;
++
++ if (cfg->dma_type == CAMIF_PREVIEW)
++ total_size = RGB_MEM;
++ else
++ total_size = YUV_MEM;
++
++ /* page frame number of the address for a source RGB frame to be stored at. */
++ pageFrameNo = __phys_to_pfn(cfg->pp_phys_buf);
++
++ if (size > total_size) {
++ printk(KERN_ERR "The size of RGB_MEM mapping is too big\n");
++ return -EINVAL;
++ }
++
++ if ((vma->vm_flags & VM_WRITE) && !(vma->vm_flags & VM_SHARED)) {
++ printk(KERN_ERR "Writable RGB_MEM mapping must be shared\n");
++ return -EINVAL;
++ }
++
++ if (remap_pfn_range(vma, vma->vm_start, pageFrameNo + vma->vm_pgoff, size, vma->vm_page_prot))
++ return -EINVAL;
++
++ return 0;
++}
++
++static unsigned int s3c_camif_poll(struct file *file, poll_table *wait)
++{
++ unsigned int mask = 0;
++ camif_cfg_t *cfg = file->private_data;
++
++ poll_wait(file, &cfg->waitq, wait);
++
++ if (cfg->status == CAMIF_INT_HAPPEN)
++ mask = POLLIN | POLLRDNORM;
++
++ cfg->status = CAMIF_STOPPED;
++
++ return mask;
++}
++
++struct file_operations camif_c_fops = {
++ .owner = THIS_MODULE,
++ .open = s3c_camif_open,
++ .release = s3c_camif_release,
++ .ioctl = s3c_camif_ioctl,
++ .read = s3c_camif_read,
++ .write = s3c_camif_write,
++ .mmap = s3c_camif_mmap,
++ .poll = s3c_camif_poll,
++};
++
++struct file_operations camif_p_fops = {
++ .owner = THIS_MODULE,
++ .open = s3c_camif_open,
++ .release = s3c_camif_release,
++ .ioctl = s3c_camif_ioctl,
++ .read = s3c_camif_read,
++ .write = s3c_camif_write,
++ .mmap = s3c_camif_mmap,
++ .poll = s3c_camif_poll,
++};
++
++/*************************************************************************
++ * Templates for V4L2
++ ************************************************************************/
++void camif_vdev_release (struct video_device *vdev) {
++ kfree(vdev);
++}
++
++struct video_device codec_template = {
++ .name = CODEC_DEV_NAME,
++ .type = VID_TYPE_OVERLAY | VID_TYPE_CAPTURE | VID_TYPE_CLIPPING | VID_TYPE_SCALES,
++ .type2 = V4L2_CAP_VIDEO_OVERLAY | V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING,
++ .fops = &camif_c_fops,
++ .release = camif_vdev_release,
++ .minor = CODEC_MINOR,
++};
++
++struct video_device preview_template = {
++ .name = PREVIEW_DEV_NAME,
++ .type = VID_TYPE_OVERLAY | VID_TYPE_CAPTURE | VID_TYPE_CLIPPING | VID_TYPE_SCALES,
++ .type2 = V4L2_CAP_VIDEO_OVERLAY | V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING,
++ .fops = &camif_p_fops,
++ .release = camif_vdev_release,
++ .minor = PREVIEW_MINOR,
++};
++
++/*************************************************************************
++ * Initialize part
++ ************************************************************************/
++void s3c_camif_init_sensor(camif_cfg_t *cfg)
++{
++ camif_cis_t *cis = cfg->cis;
++ camif_cis_t *initialized_cis;
++
++ if (!cis->sensor) {
++ initialized_cis = (camif_cis_t *) get_initialized_cis();
++
++ if (initialized_cis == NULL) {
++ printk(KERN_ERR "An I2C client for CIS sensor isn't registered\n");
++ return;
++ }
++
++ cis = cfg->cis = initialized_cis;
++ cfg->input_channel = 0;
++ cfg->cis->user++;
++ }
++
++ if (!cis->init_sensor) {
++ cis->sensor->driver->command(cis->sensor, SENSOR_INIT, NULL);
++ cis->init_sensor = 1;
++
++#if defined(CONFIG_VIDEO_SAMSUNG_S5K3BA)
++ cis->sensor->driver->command(cis->sensor, SENSOR_VGA, NULL);
++ cis->source_x = 640;
++ cis->source_y = 480;
++#elif defined(CONFIG_VIDEO_SAMSUNG_S5K4BA)
++ cis->sensor->driver->command(cis->sensor, SENSOR_SVGA, NULL);
++ cis->source_x = 800;
++ cis->source_y = 600;
++#endif
++ }
++
++ cis->sensor->driver->command(cis->sensor, USER_ADD, NULL);
++}
++
++static int s3c_camif_init_preview(camif_cfg_t * cfg)
++{
++ cfg->target_x = PREVIEW_DEFAULT_WIDTH;
++ cfg->target_y = PREVIEW_DEFAULT_HEIGHT;
++ cfg->pp_num = PREVIEW_DEFAULT_PPNUM;
++ cfg->dma_type = CAMIF_PREVIEW;
++ cfg->input_channel = CAMERA_INPUT;
++ cfg->src_fmt = CAMIF_YCBCR422;
++ cfg->output_channel = CAMIF_OUT_PP;
++ cfg->dst_fmt = CAMIF_RGB16;
++ cfg->flip = CAMIF_FLIP_Y;
++ cfg->v = &preview_template;
++
++ init_MUTEX((struct semaphore *) &cfg->v->lock);
++ init_waitqueue_head(&cfg->waitq);
++
++ cfg->status = CAMIF_STOPPED;
++
++ /* To get the handle of CODEC */
++ cfg->other = s3c_camif_get_fimc_object(CODEC_MINOR);
++
++ return cfg->status;
++}
++
++static int s3c_camif_init_codec(camif_cfg_t * cfg)
++{
++ cfg->target_x = CODEC_DEFAULT_WIDTH;
++ cfg->target_y = CODEC_DEFAULT_HEIGHT;
++ cfg->pp_num = CODEC_DEFAULT_PPNUM;
++ cfg->dma_type = CAMIF_CODEC;
++ cfg->src_fmt = CAMIF_YCBCR422;
++ cfg->input_channel = CAMERA_INPUT;
++ cfg->dst_fmt = CAMIF_YCBCR420;
++ cfg->output_channel = CAMIF_OUT_PP;
++ cfg->flip = CAMIF_FLIP_X;
++ cfg->v = &codec_template;
++
++ init_MUTEX((struct semaphore *) &cfg->v->lock);
++
++ init_waitqueue_head(&cfg->waitq);
++
++ cfg->status = CAMIF_STOPPED;
++
++ /* To get the handle of PREVIEW */
++ cfg->other = s3c_camif_get_fimc_object(PREVIEW_MINOR);
++
++ return cfg->status;
++}
++
++static int s3c_camif_probe(struct platform_device *pdev)
++{
++ struct resource *res;
++ camif_cfg_t *codec, *preview;
++ int ret = 0;
++
++ /* Initialize fimc objects */
++ codec = s3c_camif_get_fimc_object(CODEC_MINOR);
++ preview = s3c_camif_get_fimc_object(PREVIEW_MINOR);
++
++ memset(codec, 0, sizeof(camif_cfg_t));
++ memset(preview, 0, sizeof(camif_cfg_t));
++
++ /* Set the fimc name */
++ strcpy(codec->shortname, CODEC_DEV_NAME);
++ strcpy(preview->shortname, PREVIEW_DEV_NAME);
++
++ /* get resource for io memory */
++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++
++ if (!res) {
++ printk("Failed to get io memory region resouce.\n");
++ return -1;
++ }
++
++ /* request mem region */
++ res = request_mem_region(res->start, res->end - res->start + 1, pdev->name);
++
++ if (!res) {
++ printk("Failed to request io memory region.\n");
++ return -1;
++ }
++
++ /* ioremap for register block */
++ codec->regs = preview->regs = ioremap(res->start, res->end - res->start + 1);
++
++ if (codec->regs == NULL) {
++ printk(KERN_ERR "Failed to remap register block\n");
++ return -1;
++ }
++
++ /* ioremap for reserved memory */
++ codec->pp_phys_buf = PHYS_OFFSET + (MEM_SIZE - RESERVED_MEM);
++ codec->pp_virt_buf = ioremap_nocache(codec->pp_phys_buf, YUV_MEM);
++
++ preview->pp_phys_buf = PHYS_OFFSET + (MEM_SIZE - RESERVED_MEM) + YUV_MEM;
++ preview->pp_virt_buf = ioremap_nocache(preview->pp_phys_buf, RGB_MEM);
++
++ /* Device init */
++ s3c_camif_init();
++ s3c_camif_init_codec(codec);
++ s3c_camif_init_preview(preview);
++
++ /* Set irq */
++ codec->irq = platform_get_irq(pdev, FIMC_CODEC_INDEX);
++ preview->irq = platform_get_irq(pdev, FIMC_PREVIEW_INDEX);
++
++ s3c_camif_request_irq(codec);
++ s3c_camif_request_irq(preview);
++
++ /* Register to video device */
++ if (video_register_device(codec->v, VFL_TYPE_GRABBER, CODEC_MINOR) != 0) {
++ printk(KERN_ERR "Couldn't register this codec driver\n");
++ return -1;
++ }
++
++ if (video_register_device(preview->v, VFL_TYPE_GRABBER, PREVIEW_MINOR) != 0) {
++ printk(KERN_ERR "Couldn't register this preview driver\n");
++ return -1;
++ }
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ cam_clock = clk_get(&pdev->dev, "camera");
++#elif defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2416) || defined(CONFIG_CPU_S3C2450)
++ cam_clock = clk_get(&pdev->dev, "camif-upll");
++#else
++#error cam_clock should be defined
++#endif
++
++ if (IS_ERR(cam_clock)) {
++ printk("Failed to find camera clock source\n");
++ ret = PTR_ERR(cam_clock);
++ }
++
++ clk_enable(cam_clock);
++
++ /* Print banner */
++ printk(KERN_INFO "S3C FIMC v%s\n", FIMC_VER);
++
++ return 0;
++}
++
++static int s3c_camif_remove(struct platform_device *pdev)
++{
++ camif_cfg_t *codec, *preview;
++
++ codec = s3c_camif_get_fimc_object(CODEC_MINOR);
++ preview = s3c_camif_get_fimc_object(PREVIEW_MINOR);
++
++ s3c_camif_release_irq(codec);
++ s3c_camif_release_irq(preview);
++
++ iounmap(codec->pp_virt_buf);
++ codec->pp_virt_buf = 0;
++
++ iounmap(preview->pp_virt_buf);
++ preview->pp_virt_buf = 0;
++
++ video_unregister_device(codec->v);
++ video_unregister_device(preview->v);
++
++ s3c_camif_set_priority(0);
++ clk_disable(cam_clock);
++
++ memset(codec, 0, sizeof(camif_cfg_t));
++ memset(preview, 0, sizeof(camif_cfg_t));
++
++ return 0;
++}
++
++#if defined(CONFIG_PM)
++
++static struct sleep_save_phy s3c_camif_save[] = {
++ SAVE_ITEM(S3C_CISRCFMT),
++ SAVE_ITEM(S3C_CIWDOFST),
++ SAVE_ITEM(S3C_CIGCTRL),
++ SAVE_ITEM(S3C_CIDOWSFT2),
++ SAVE_ITEM(S3C_CICOYSA1),
++ SAVE_ITEM(S3C_CICOYSA2),
++ SAVE_ITEM(S3C_CICOYSA3),
++ SAVE_ITEM(S3C_CICOYSA4),
++ SAVE_ITEM(S3C_CICOCBSA1),
++ SAVE_ITEM(S3C_CICOCBSA2),
++ SAVE_ITEM(S3C_CICOCBSA3),
++ SAVE_ITEM(S3C_CICOCBSA4),
++ SAVE_ITEM(S3C_CICOTRGFMT),
++ SAVE_ITEM(S3C_CICOCTRL),
++ SAVE_ITEM(S3C_CICOSCPRERATIO),
++ SAVE_ITEM(S3C_CICOSCPREDST),
++ SAVE_ITEM(S3C_CICOSCCTRL),
++ SAVE_ITEM(S3C_CICOTAREA),
++
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450)
++ SAVE_ITEM(S3C_CIPRCLRSA1),
++ SAVE_ITEM(S3C_CIPRCLRSA2),
++ SAVE_ITEM(S3C_CIPRCLRSA3),
++ SAVE_ITEM(S3C_CIPRCLRSA4),
++ SAVE_ITEM(S3C_CIPRTRGFMT),
++ SAVE_ITEM(S3C_CIPRCTRL),
++ SAVE_ITEM(S3C_CIPRSCPRERATIO),
++ SAVE_ITEM(S3C_CIPRSCPREDST),
++ SAVE_ITEM(S3C_CIPRSCCTRL),
++ SAVE_ITEM(S3C_CIPRTAREA),
++ SAVE_ITEM(S3C_CIIMGCPT),
++ SAVE_ITEM(S3C_CICOCPTSEQ),
++ SAVE_ITEM(S3C_CICOSCOS),
++ SAVE_ITEM(S3C_CIIMGEFF),
++ SAVE_ITEM(S3C_CIMSYSA),
++ SAVE_ITEM(S3C_CIMSCBSA),
++ SAVE_ITEM(S3C_CIMSCRSA),
++ SAVE_ITEM(S3C_CIMSYEND),
++ SAVE_ITEM(S3C_CIMSCBEND),
++ SAVE_ITEM(S3C_CIMSCREND),
++ SAVE_ITEM(S3C_CIMSYOFF),
++ SAVE_ITEM(S3C_CIMSCBOFF),
++ SAVE_ITEM(S3C_CIMSCROFF),
++ SAVE_ITEM(S3C_CIMSWIDTH),
++ SAVE_ITEM(S3C_CIMSCTRL),
++
++#elif defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ SAVE_ITEM(S3C_CIPRYSA1),
++ SAVE_ITEM(S3C_CIPRYSA2),
++ SAVE_ITEM(S3C_CIPRYSA3),
++ SAVE_ITEM(S3C_CIPRYSA4),
++ SAVE_ITEM(S3C_CIPRCBSA1),
++ SAVE_ITEM(S3C_CIPRCBSA2),
++ SAVE_ITEM(S3C_CIPRCBSA3),
++ SAVE_ITEM(S3C_CIPRCBSA4),
++ SAVE_ITEM(S3C_CIPRCRSA1),
++ SAVE_ITEM(S3C_CIPRCRSA2),
++ SAVE_ITEM(S3C_CIPRCRSA3),
++ SAVE_ITEM(S3C_CIPRCRSA4),
++ SAVE_ITEM(S3C_CIPRTRGFMT),
++ SAVE_ITEM(S3C_CIPRCTRL),
++ SAVE_ITEM(S3C_CIPRSCPRERATIO),
++ SAVE_ITEM(S3C_CIPRSCPREDST),
++ SAVE_ITEM(S3C_CIPRSCCTRL),
++ SAVE_ITEM(S3C_CIPRTAREA),
++ SAVE_ITEM(S3C_CIPRSTATUS),
++ SAVE_ITEM(S3C_CIIMGCPT),
++ SAVE_ITEM(S3C_CICOCPTSEQ),
++ SAVE_ITEM(S3C_CIIMGEFF),
++ SAVE_ITEM(S3C_MSCOY0SA),
++ SAVE_ITEM(S3C_MSCOCB0SA),
++ SAVE_ITEM(S3C_MSCOY0END),
++ SAVE_ITEM(S3C_MSCOCB0END),
++ SAVE_ITEM(S3C_MSCOCR0END),
++ SAVE_ITEM(S3C_MSCOYOFF),
++ SAVE_ITEM(S3C_MSCOCBOFF),
++ SAVE_ITEM(S3C_MSCOCROFF),
++ SAVE_ITEM(S3C_MSCOWIDTH),
++ SAVE_ITEM(S3C_MSCOCTRL),
++ SAVE_ITEM(S3C_MSPRY0SA),
++ SAVE_ITEM(S3C_MSPRCB0SA),
++ SAVE_ITEM(S3C_MSPRY0END),
++ SAVE_ITEM(S3C_MSPRCB0END),
++ SAVE_ITEM(S3C_MSPRCR0END),
++ SAVE_ITEM(S3C_MSPRYOFF),
++ SAVE_ITEM(S3C_MSPRCBOFF),
++ SAVE_ITEM(S3C_MSPRCROFF),
++ SAVE_ITEM(S3C_MSPRWIDTH),
++ SAVE_ITEM(S3C_CIMSCTRL),
++ SAVE_ITEM(S3C_CICOSCOSY),
++ SAVE_ITEM(S3C_CICOSCOSCB),
++ SAVE_ITEM(S3C_CICOSCOSCR),
++ SAVE_ITEM(S3C_CIPRSCOSY),
++ SAVE_ITEM(S3C_CIPRSCOSCB),
++ SAVE_ITEM(S3C_CIPRSCOSCR),
++
++#endif
++};
++
++/*
++ * Suspend
++ */
++int s3c_camif_suspend(struct platform_device *pdev, pm_message_t state)
++{
++ s3c2410_pm_do_save_phy(s3c_camif_save, pdev, ARRAY_SIZE(s3c_camif_save));
++ clk_disable(cam_clock);
++
++ return 0;
++}
++
++/*
++ * Resume
++ */
++int s3c_camif_resume(struct platform_device *pdev)
++{
++ clk_enable(cam_clock);
++
++ s3c_camif_init();
++ s3c_camif_init_sensor(s3c_camif_get_fimc_object(CODEC_MINOR));
++ s3c2410_pm_do_restore_phy(s3c_camif_save, pdev, ARRAY_SIZE(s3c_camif_save));
++
++ return 0;
++}
++
++#else
++
++int s3c_camif_suspend(struct platform_device *dev, pm_message_t state)
++{
++ return 0;
++}
++
++int s3c_camif_resume(struct platform_device *dev)
++{
++ return 0;
++}
++
++#endif
++
++static struct platform_driver s3c_camif_driver =
++{
++ .probe = s3c_camif_probe,
++ .remove = s3c_camif_remove,
++ .suspend = s3c_camif_suspend,
++ .resume = s3c_camif_resume,
++ .driver = {
++ .name = "s3c-camif",
++ .owner = THIS_MODULE,
++ },
++};
++
++static int s3c_camif_register(void)
++{
++ platform_driver_register(&s3c_camif_driver);
++
++ return 0;
++}
++
++static void s3c_camif_unregister(void)
++{
++ platform_driver_unregister(&s3c_camif_driver);
++}
++
++void s3c_camif_open_sensor(camif_cis_t *cis)
++{
++ clk_set_rate(cam_clock, cis->camclk);
++ s3c_camif_reset(cis->reset_type, cis->reset_udelay);
++}
++
++void s3c_camif_register_sensor(struct i2c_client *ptr)
++{
++ camif_cfg_t *codec, *preview;
++ camif_cis_t *cis = (camif_cis_t *) ptr->data;
++
++ codec = s3c_camif_get_fimc_object(CODEC_MINOR);
++ preview = s3c_camif_get_fimc_object(PREVIEW_MINOR);
++
++ codec->cis = preview->cis = cis;
++
++ sema_init((struct semaphore *) &codec->cis->lock, 1);
++ sema_init((struct semaphore *) &preview->cis->lock, 1);
++
++ preview->cis->status |= P_NOT_WORKING; /* Default Value */
++
++ s3c_camif_set_polarity(preview);
++ s3c_camif_set_source_format(cis);
++ s3c_camif_set_priority(1);
++}
++
++void s3c_camif_unregister_sensor(struct i2c_client *ptr)
++{
++ camif_cis_t *cis;
++
++ cis = (camif_cis_t *) (ptr->data);
++ cis->init_sensor = 0;
++}
++
++module_init(s3c_camif_register);
++module_exit(s3c_camif_unregister);
++
++EXPORT_SYMBOL(s3c_camif_register_sensor);
++EXPORT_SYMBOL(s3c_camif_unregister_sensor);
++
++MODULE_AUTHOR("Jinsung Yang <jsgood.yang@samsung.com>");
++MODULE_DESCRIPTION("S3C Camera Driver for FIMC Interface");
++MODULE_LICENSE("GPL");
++
+diff --git a/drivers/media/video/s3c_camif.c b/drivers/media/video/s3c_camif.c
+new file mode 100644
+index 0000000..99df64e
+--- /dev/null
++++ b/drivers/media/video/s3c_camif.c
+@@ -0,0 +1,1871 @@
++/* drivers/media/video/s3c_camif.c
++ *
++ * Copyright (c) 2008 Samsung Electronics
++ *
++ * Samsung S3C Camera driver
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ */
++
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/sched.h>
++#include <linux/completion.h>
++#include <linux/delay.h>
++#include <linux/slab.h>
++#include <linux/vmalloc.h>
++#include <linux/wait.h>
++#include <linux/videodev.h>
++#include <asm/io.h>
++#include <asm/semaphore.h>
++#include <asm/hardware.h>
++#include <asm/uaccess.h>
++#include <asm/arch/map.h>
++#include <asm/arch/gpio.h>
++#include <asm/arch/regs-camif.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-gpioj.h>
++#include <asm/arch/regs-lcd.h>
++
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++#include <asm/arch/regs-irq.h>
++#endif
++
++#include "s3c_camif.h"
++
++static unsigned int irq_old_priority;
++
++/*************************************************************************
++ * Utility part
++ ************************************************************************/
++int s3c_camif_get_frame_num(camif_cfg_t *cfg)
++{
++ int index = 0;
++
++ if (cfg->dma_type & CAMIF_CODEC)
++ index = (readl(cfg->regs + S3C_CICOSTATUS) >> 26) & 0x3;
++ else {
++ assert(cfg->dma_type & CAMIF_PREVIEW);
++ index = (readl(cfg->regs + S3C_CIPRSTATUS) >> 26) & 0x3;
++ }
++
++ cfg->cur_frame_num = (index + 2) % 4; /* When 4 PingPong */
++
++ return 0;
++}
++
++unsigned char* s3c_camif_get_frame(camif_cfg_t *cfg)
++{
++ unsigned char *ret = NULL;
++ int cnt = cfg->cur_frame_num;
++
++ if (cfg->dma_type & CAMIF_PREVIEW)
++ ret = cfg->img_buf[cnt].virt_rgb;
++
++ if (cfg->dma_type & CAMIF_CODEC) {
++ if ((cfg->dst_fmt & CAMIF_RGB16) || (cfg->dst_fmt & CAMIF_RGB24))
++ ret = cfg->img_buf[cnt].virt_rgb;
++ else
++ ret = cfg->img_buf[cnt].virt_y;
++ }
++
++ return ret;
++}
++
++int s3c_camif_get_fifo_status(camif_cfg_t *cfg)
++{
++ unsigned int reg, val, flag;
++
++ if (cfg->dma_type & CAMIF_CODEC) {
++ flag = S3C_CICOSTATUS_OVFIY_CO | S3C_CICOSTATUS_OVFICB_CO | S3C_CICOSTATUS_OVFICR_CO;
++ reg = readl(cfg->regs + S3C_CICOSTATUS);
++
++ if (reg & flag) {
++ /* FIFO Error Count ++ */
++ val = readl(cfg->regs + S3C_CIWDOFST);
++ val |= (S3C_CIWDOFST_CLROVCOFIY | S3C_CIWDOFST_CLROVCOFICB | S3C_CIWDOFST_CLROVCOFICR);
++ writel(val, cfg->regs + S3C_CIWDOFST);
++
++ val = readl(cfg->regs + S3C_CIWDOFST);
++ val &= ~(S3C_CIWDOFST_CLROVCOFIY | S3C_CIWDOFST_CLROVCOFICB | S3C_CIWDOFST_CLROVCOFICR);
++ writel(val, cfg->regs + S3C_CIWDOFST);
++
++ return 1; /* Error */
++ }
++ } else if (cfg->dma_type & CAMIF_PREVIEW) {
++ flag = S3C_CIPRSTATUS_OVFICB_PR | S3C_CIPRSTATUS_OVFICR_PR;
++ reg = readl(cfg->regs + S3C_CIPRSTATUS);
++
++ if (reg & flag) {
++ /* FIFO Error Count ++ */
++ val = readl(cfg->regs + S3C_CIWDOFST);
++ val |= (S3C_CIWDOFST_CLROVPRFICB | S3C_CIWDOFST_CLROVPRFICR);
++ writel(val, cfg->regs + S3C_CIWDOFST);
++
++ val = readl(cfg->regs + S3C_CIWDOFST);
++ val &= ~(S3C_CIWDOFST_CLROVPRFIY | S3C_CIWDOFST_CLROVPRFICB | S3C_CIWDOFST_CLROVPRFICR);
++ writel(val, cfg->regs + S3C_CIWDOFST);
++
++ return 1; /* Error */
++ }
++ }
++
++ return 0;
++}
++
++void s3c_camif_set_polarity(camif_cfg_t *cfg)
++{
++ camif_cis_t *cis = cfg->cis;
++ unsigned int val;
++ unsigned int cmd;
++
++ cmd = readl(cfg->regs + S3C_CIGCTRL);
++ cmd &= ~(0x7 << 24);
++
++ if (cis->polarity_pclk)
++ cmd |= S3C_CIGCTRL_INVPOLPCLK;
++
++ if (cis->polarity_vsync)
++ cmd |= S3C_CIGCTRL_INVPOLVSYNC;
++
++ if (cis->polarity_href)
++ cmd |= S3C_CIGCTRL_INVPOLHREF;
++
++ val = readl(cfg->regs + S3C_CIGCTRL);
++ val |= cmd;
++ writel(val, cfg->regs + S3C_CIGCTRL);
++}
++
++/*************************************************************************
++ * Memory part
++ ************************************************************************/
++static int s3c_camif_request_memory(camif_cfg_t *cfg)
++{
++ unsigned int t_size = 0, i = 0;
++ unsigned int area = 0;
++
++ area = cfg->target_x * cfg->target_y;
++
++ if (cfg->dma_type & CAMIF_CODEC) {
++ if (cfg->dst_fmt & CAMIF_YCBCR420)
++ t_size = (area * 3 / 2); /* CAMIF_YCBCR420 */
++ else if (cfg->dst_fmt & CAMIF_YCBCR422 || cfg->dst_fmt & CAMIF_YCBCR422I)
++ t_size = (area * 2); /* CAMIF_YCBCR422 */
++ else if (cfg->dst_fmt & CAMIF_RGB16)
++ t_size = (area * 2); /* 2 bytes per one pixel */
++ else if (cfg->dst_fmt & CAMIF_RGB24)
++ t_size = (area * 4); /* 4 bytes per one pixel */
++ else
++ printk(KERN_INFO "Invalid target format\n");
++
++ if ((t_size % PAGE_SIZE) != 0) {
++ i = t_size / PAGE_SIZE;
++ t_size = (i + 1) * PAGE_SIZE;
++ }
++
++ t_size = t_size * cfg->pp_num;
++ cfg->pp_totalsize = t_size;
++
++ printk(KERN_INFO "Codec memory required: 0x%08X bytes\n", t_size);
++
++ return 0;
++ }else if (cfg->dma_type & CAMIF_PREVIEW) {
++
++ if (cfg->dst_fmt & CAMIF_RGB16)
++ t_size = (area * 2); /* 2 bytes per two pixel*/
++ else if (cfg->dst_fmt & CAMIF_RGB24)
++ t_size = (area * 4); /* 4 bytes per one pixel */
++ else
++ printk(KERN_ERR "Invalid target format\n");
++
++ if ((t_size % PAGE_SIZE) != 0) {
++ i = t_size / PAGE_SIZE;
++ t_size = (i + 1) * PAGE_SIZE;
++ }
++
++ t_size = t_size * cfg->pp_num;
++ cfg->pp_totalsize = t_size;
++
++ printk(KERN_INFO "Preview memory required: 0x%08X bytes\n", t_size);
++
++ return 0;
++ }
++
++ return 0;
++}
++
++static void s3c_camif_calc_burst_length_yuv422i(unsigned int hsize, unsigned int *mburst, unsigned int *rburst)
++{
++ unsigned int tmp, wanted;
++
++ tmp = (hsize / 2) & 0xf;
++
++ switch (tmp) {
++ case 0:
++ wanted = 16;
++ break;
++
++ case 4:
++ wanted = 4;
++ break;
++
++ case 8:
++ wanted = 8;
++ break;
++
++ default:
++ wanted = 4;
++ break;
++ }
++
++ *mburst = wanted / 2;
++ *rburst = wanted / 2;
++}
++
++static void s3c_camif_calc_burst_length(unsigned int hsize, unsigned int *mburst, unsigned int *rburst)
++{
++ unsigned int tmp;
++
++ tmp = (hsize / 4) & 0xf;
++
++ switch (tmp) {
++ case 0:
++ *mburst = 16;
++ *rburst = 16;
++ break;
++
++ case 4:
++ *mburst = 16;
++ *rburst = 4;
++ break;
++
++ case 8:
++ *mburst = 16;
++ *rburst = 8;
++ break;
++
++ default:
++ tmp = (hsize / 4) % 8;
++
++ if (tmp == 0) {
++ *mburst = 8;
++ *rburst = 8;
++ } else if (tmp == 4) {
++ *mburst = 8;
++ *rburst = 4;
++ } else {
++ tmp = (hsize / 4) % 4;
++ *mburst = 4;
++ *rburst = (tmp) ? tmp : 4;
++ }
++
++ break;
++ }
++}
++
++int s3c_camif_setup_dma(camif_cfg_t *cfg)
++{
++ int width = cfg->target_x;
++ unsigned int val, yburst_m, yburst_r, cburst_m, cburst_r;
++
++ if (cfg->dma_type & CAMIF_CODEC) {
++ if ((cfg->dst_fmt == CAMIF_RGB16) || (cfg->dst_fmt == CAMIF_RGB24)) {
++ if (cfg->dst_fmt == CAMIF_RGB24) {
++ if (width % 2 != 0)
++ return BURST_ERR;
++
++ s3c_camif_calc_burst_length(width * 4, &yburst_m, &yburst_r);
++ } else {
++ if ((width / 2) % 2 != 0)
++ return BURST_ERR;
++
++ s3c_camif_calc_burst_length(width * 2, &yburst_m, &yburst_r);
++ }
++
++ val = readl(cfg->regs + S3C_CICOCTRL);
++ val &= ~(0xfffff << 4);
++
++ if (cfg->dst_fmt == CAMIF_RGB24) {
++ val = S3C_CICOCTRL_YBURST1_CO(yburst_m / 2) | \
++ S3C_CICOCTRL_YBURST2_CO(yburst_r / 4) | (4 << 9) | (2 << 4);
++ } else {
++ val = S3C_CICOCTRL_YBURST1_CO(yburst_m / 2) | \
++ S3C_CICOCTRL_YBURST2_CO(yburst_r / 2) | (4 << 9) | (2 << 4);
++ }
++
++ writel(val, cfg->regs + S3C_CICOCTRL);
++ } else {
++ /* CODEC DMA WIDHT is multiple of 16 */
++ if (width % 16 != 0)
++ return BURST_ERR;
++
++ if (cfg->dst_fmt == CAMIF_YCBCR422I) {
++ s3c_camif_calc_burst_length_yuv422i(width, &yburst_m, &yburst_r);
++ cburst_m = yburst_m / 2;
++ cburst_r = yburst_r / 2;
++ } else {
++ s3c_camif_calc_burst_length(width, &yburst_m, &yburst_r);
++ s3c_camif_calc_burst_length(width / 2, &cburst_m, &cburst_r);
++ }
++
++ val = readl(cfg->regs + S3C_CICOCTRL);
++ val &= ~(0xfffff << 4);
++ val |= (S3C_CICOCTRL_YBURST1_CO(yburst_m) | S3C_CICOCTRL_CBURST1_CO(cburst_m) | \
++ S3C_CICOCTRL_YBURST2_CO(yburst_r) | S3C_CICOCTRL_CBURST2_CO(cburst_r));
++ writel(val, cfg->regs + S3C_CICOCTRL);
++ }
++ } else if (cfg->dma_type & CAMIF_PREVIEW) {
++ if (cfg->dst_fmt == CAMIF_RGB24) {
++ if (width % 2 != 0)
++ return BURST_ERR;
++
++ s3c_camif_calc_burst_length(width * 4, &yburst_m, &yburst_r);
++ } else {
++ if ((width / 2) % 2 != 0)
++ return BURST_ERR;
++
++ s3c_camif_calc_burst_length(width * 2, &yburst_m, &yburst_r);
++ }
++
++ val = readl(cfg->regs + S3C_CIPRCTRL);
++ val &= ~(0x3ff << 14);
++ val |= (S3C_CICOCTRL_YBURST1_CO(yburst_m) | S3C_CICOCTRL_YBURST2_CO(yburst_r));
++ writel(val, cfg->regs + S3C_CIPRCTRL);
++ }
++
++ return 0;
++}
++
++/*************************************************************************
++ * Input path part
++ ************************************************************************/
++/*
++ * 2443 MSDMA (Preview Only)
++ */
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++int s3c_camif_input_msdma_preview(camif_cfg_t * cfg)
++{
++ int ret = 0;
++ unsigned int addr_start_Y = 0, addr_start_CB = 0, addr_start_CR = 0;
++ unsigned int addr_end_Y = 0, addr_end_CB = 0, addr_end_CR = 0;
++ unsigned int val, val_width;
++
++ val = readl(cfg->regs + S3C_CIMSCTRL);
++ val &= ~(1 << 2);
++ writel(val, cfg->regs + S3C_CIMSCTRL);
++
++ val = readl(cfg->regs + S3C_CIMSCTRL);
++ val |= (1 << 2);
++ writel(val, cfg->regs + S3C_CIMSCTRL);
++
++ if (cfg->src_fmt != CAMIF_YCBCR420 && cfg->src_fmt != CAMIF_YCBCR422 && cfg->src_fmt != CAMIF_YCBCR422I)
++ cfg->src_fmt = CAMIF_YCBCR420;
++
++ switch(cfg->src_fmt) {
++ case CAMIF_YCBCR420:
++ val = readl(cfg->regs + S3C_CIMSCTRL);
++ val = (val & ~(0x1 << 1)) | (0x1 << 1);
++ writel(val, cfg->regs + S3C_CIMSCTRL);
++
++ addr_start_Y = readl(cfg->regs + S3C_CIMSYSA);
++ addr_start_CB = addr_start_Y + (cfg->cis->source_x * cfg->cis->source_y);
++ addr_start_CR = addr_start_CB + (cfg->cis->source_x * cfg->cis->source_y / 4);
++
++ addr_end_Y = addr_start_Y + (cfg->cis->source_x * cfg->cis->source_y);
++ addr_end_CB = addr_start_CB + (cfg->cis->source_x * cfg->cis->source_y / 4);
++ addr_end_CR = addr_start_CR + (cfg->cis->source_x * cfg->cis->source_y / 4);
++ break;
++
++ case CAMIF_YCBCR422:
++ case CAMIF_YCBCR422I:
++ val = readl(cfg->regs + S3C_CIMSCTRL);
++ val = (val & ~(0x1 << 5)) | (0x1 << 5); /* Interleave_MS */
++ val &= ~(0x1 << 1);
++ val &= ~(0x3 << 3); /* YCbYCr */
++ writel(val, cfg->regs + S3C_CIMSCTRL);
++
++ addr_start_Y = readl(cfg->regs + S3C_CIMSYSA);
++ addr_start_CB = addr_start_Y + (cfg->cis->source_x * cfg->cis->source_y);
++ addr_start_CR = addr_start_CB + (cfg->cis->source_x * cfg->cis->source_y / 2);
++
++ addr_end_Y = addr_start_Y + (cfg->cis->source_x * cfg->cis->source_y);
++ addr_end_CB = addr_start_CB + (cfg->cis->source_x * cfg->cis->source_y / 2);
++ addr_end_CR = addr_start_CR + (cfg->cis->source_x * cfg->cis->source_y / 2);
++ break;
++
++ default:
++ break;
++ }
++
++ /* MSDMA memory */
++ writel(addr_start_Y, cfg->regs + S3C_CIMSYSA);
++ writel(addr_start_CB, cfg->regs + S3C_CIMSCBSA);
++ writel(addr_start_CR, cfg->regs + S3C_CIMSCRSA);
++
++ writel(addr_end_Y, cfg->regs + S3C_CIMSYEND);
++ writel(addr_end_CB, cfg->regs + S3C_CIMSCBEND);
++ writel(addr_end_CR, cfg->regs + S3C_CIMSCREND);
++
++ /* MSDMA memory offset - default : 0 */
++ writel(0, cfg->regs + S3C_CIMSYOFF);
++ writel(0, cfg->regs + S3C_CIMSCBOFF);
++ writel(0, cfg->regs + S3C_CIMSCROFF);
++
++ /* MSDMA for codec source image width */
++ val_width = readl(cfg->regs + S3C_CIMSWIDTH);
++ val_width = (val_width & ~(0x1 << 31)); /* AutoLoadDisable */
++ val_width |= (cfg->cis->source_y << 16); /* MSCOHEIGHT */
++ val_width |= cfg->cis->source_x; /* MSCOWIDTH */
++ val_width = cfg->cis->source_x;
++ writel(val_width, cfg->regs + S3C_CIMSWIDTH);
++
++ return ret;
++}
++
++static int s3c_camif_input_msdma(camif_cfg_t *cfg)
++{
++ if (cfg->input_channel == MSDMA_FROM_PREVIEW)
++ s3c_camif_input_msdma_preview(cfg);
++
++ return 0;
++}
++
++/*
++ * 6400 MSDMA (Preview & Codec)
++ */
++#elif defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++int s3c_camif_input_msdma_codec(camif_cfg_t * cfg)
++{
++ int ret = 0;
++ u32 addr_start_Y = 0, addr_start_CB = 0, addr_start_CR = 0;
++ u32 addr_end_Y = 0, addr_end_CB = 0, addr_end_CR = 0;
++ u32 val, val_width;
++
++ /* Codec path input data selection */
++ val = readl(cfg->regs + S3C_MSCOCTRL);
++ val &= ~(1 << 3);
++ writel(val, cfg->regs + S3C_MSCOCTRL);
++
++ val = readl(cfg->regs + S3C_MSCOCTRL);
++ val |= (1 << 3);
++ writel(val, cfg->regs + S3C_MSCOCTRL);
++
++ if (cfg->src_fmt != CAMIF_YCBCR420 && cfg->src_fmt != CAMIF_YCBCR422 && cfg->src_fmt != CAMIF_YCBCR422I)
++ cfg->src_fmt = CAMIF_YCBCR420;
++
++ switch(cfg->src_fmt) {
++ case CAMIF_YCBCR420:
++ val = readl(cfg->regs + S3C_MSCOCTRL);
++ val &= ~(0x3 << 1);
++ writel(val, cfg->regs + S3C_MSCOCTRL);
++
++ addr_start_Y = cfg->pp_phys_buf;
++ addr_start_CB = addr_start_Y + (cfg->cis->source_x * cfg->cis->source_y);
++ addr_start_CR = addr_start_CB + (cfg->cis->source_x * cfg->cis->source_y / 4);
++
++ addr_end_Y = addr_start_Y + (cfg->cis->source_x * cfg->cis->source_y);
++ addr_end_CB = addr_start_CB + (cfg->cis->source_x * cfg->cis->source_y / 4);
++ addr_end_CR = addr_start_CR + (cfg->cis->source_x * cfg->cis->source_y / 4);
++ break;
++
++ case CAMIF_YCBCR422:
++ case CAMIF_YCBCR422I:
++ val = readl(cfg->regs + S3C_MSCOCTRL);
++ val = (val & ~(0x3 << 1)) |(0x2 << 1);
++ writel(val, cfg->regs + S3C_MSCOCTRL);
++
++ addr_start_Y = cfg->pp_phys_buf;
++ addr_start_CB = addr_start_Y + (cfg->cis->source_x * cfg->cis->source_y);
++ addr_start_CR = addr_start_CB + (cfg->cis->source_x * cfg->cis->source_y / 2);
++
++ addr_end_Y = addr_start_Y + (cfg->cis->source_x * cfg->cis->source_y);
++ addr_end_CB = addr_start_CB + (cfg->cis->source_x * cfg->cis->source_y / 2);
++ addr_end_CR = addr_start_CR + (cfg->cis->source_x * cfg->cis->source_y / 2);
++ break;
++
++ default:
++ break;
++ }
++
++ /* MSDMA memory */
++ writel(addr_start_Y, cfg->regs + S3C_MSCOY0SA);
++ writel(addr_start_CB, cfg->regs + S3C_MSCOCB0SA);
++ writel(addr_start_CR, cfg->regs + S3C_MSCOCR0SA);
++
++ writel(addr_end_Y, cfg->regs + S3C_MSCOY0END);
++ writel(addr_end_CB, cfg->regs + S3C_MSCOCB0END);
++ writel(addr_end_CR, cfg->regs + S3C_MSCOCR0END);
++
++ /* MSDMA memory offset */
++ writel(0, cfg->regs + S3C_MSCOYOFF);
++ writel(0, cfg->regs + S3C_MSCOCBOFF);
++ writel(0, cfg->regs + S3C_MSCOCROFF);
++
++ /* MSDMA for codec source image width */
++ val_width = readl(cfg->regs + S3C_MSCOWIDTH);
++ val_width = (val_width & ~(0x1 << 31))|(0x1 << 31); /* AutoLoadEnable */
++ val_width |= (cfg->cis->source_y << 16); /* MSCOHEIGHT */
++ val_width |= cfg->cis->source_x; /* MSCOWIDTH */
++ writel(val_width, cfg->regs + S3C_MSCOWIDTH);
++
++ return ret;
++}
++
++int s3c_camif_input_msdma_preview(camif_cfg_t * cfg)
++{
++ int ret = 0;
++ unsigned int addr_start_Y = 0, addr_start_CB = 0, addr_start_CR = 0;
++ unsigned int addr_end_Y = 0, addr_end_CB = 0, addr_end_CR = 0;
++ unsigned int val, val_width;
++
++ val = readl(cfg->regs + S3C_CIMSCTRL);
++ val &= ~(0x1 << 3);
++ writel(val, cfg->regs + S3C_CIMSCTRL);
++
++ val = readl(cfg->regs + S3C_CIMSCTRL);
++ val |= (0x1 << 3);
++ writel(val, cfg->regs + S3C_CIMSCTRL);
++
++ if (cfg->src_fmt != CAMIF_YCBCR420 && cfg->src_fmt != CAMIF_YCBCR422 && cfg->src_fmt != CAMIF_YCBCR422I)
++ cfg->src_fmt = CAMIF_YCBCR420;
++
++ switch(cfg->src_fmt) {
++ case CAMIF_YCBCR420:
++ val = readl(cfg->regs + S3C_CIMSCTRL);
++ val &= ~(0x3 << 1);
++ writel(val, cfg->regs + S3C_CIMSCTRL);
++
++ addr_start_Y = readl(cfg->regs + S3C_MSPRY0SA);
++ addr_start_CB = addr_start_Y + (cfg->cis->source_x * cfg->cis->source_y);
++ addr_start_CR = addr_start_CB + (cfg->cis->source_x * cfg->cis->source_y / 4);
++
++ addr_end_Y = addr_start_Y + (cfg->cis->source_x * cfg->cis->source_y);
++ addr_end_CB = addr_start_CB + (cfg->cis->source_x * cfg->cis->source_y / 4);
++ addr_end_CR = addr_start_CR + (cfg->cis->source_x * cfg->cis->source_y / 4);
++ break;
++
++ case CAMIF_YCBCR422:
++ case CAMIF_YCBCR422I:
++ val = readl(cfg->regs + S3C_CIMSCTRL);
++ val = (val & ~(0x3 << 1)) | (0x2 << 1); /* YCbCr 422 Interleave */
++ val = (val & ~(0x3 << 4)) | (0x3 << 4); /* YCbYCr */
++ writel(val, cfg->regs + S3C_CIMSCTRL);
++
++ addr_start_Y = readl(cfg->regs + S3C_MSPRY0SA);
++ addr_start_CB = addr_start_Y + (cfg->cis->source_x * cfg->cis->source_y);
++ addr_start_CR = addr_start_CB + (cfg->cis->source_x * cfg->cis->source_y / 2);
++
++ addr_end_Y = addr_start_Y + (cfg->cis->source_x * cfg->cis->source_y);
++ addr_end_CB = addr_start_CB + (cfg->cis->source_x * cfg->cis->source_y / 2);
++ addr_end_CR = addr_start_CR + (cfg->cis->source_x * cfg->cis->source_y / 2);
++ break;
++
++ default:
++ break;
++ }
++
++ /* MSDMA memory */
++ writel(addr_start_Y, cfg->regs + S3C_MSPRY0SA);
++ writel(addr_start_CB, cfg->regs + S3C_MSPRCB0SA);
++ writel(addr_start_CR, cfg->regs + S3C_MSPRCR0SA);
++
++ writel(addr_end_Y, cfg->regs + S3C_MSPRY0END);
++ writel(addr_end_CB, cfg->regs + S3C_MSPRCB0END);
++ writel(addr_end_CR, cfg->regs + S3C_MSPRCR0END);
++
++ /* MSDMA memory offset */
++ writel(0, cfg->regs + S3C_MSPRYOFF);
++ writel(0, cfg->regs + S3C_MSPRCBOFF);
++ writel(0, cfg->regs + S3C_MSPRCROFF);
++
++ /* MSDMA for codec source image width */
++ val_width = readl(cfg->regs + S3C_MSPRWIDTH);
++ val_width = (val_width & ~(0x1 << 31)); /* AutoLoadEnable */
++ val_width |= (cfg->cis->source_y << 16); /* MSCOHEIGHT */
++ val_width |= cfg->cis->source_x; /* MSCOWIDTH */
++ writel(val_width, cfg->regs + S3C_MSPRWIDTH);
++
++ return ret;
++}
++
++static int s3c_camif_input_msdma(camif_cfg_t *cfg)
++{
++ if (cfg->input_channel == MSDMA_FROM_PREVIEW)
++ s3c_camif_input_msdma_preview(cfg);
++ else if (cfg->input_channel == MSDMA_FROM_CODEC)
++ s3c_camif_input_msdma_codec(cfg);
++
++ return 0;
++}
++#endif
++
++static int s3c_camif_input_camera(camif_cfg_t *cfg)
++{
++ unsigned int val;
++
++ s3c_camif_set_offset(cfg->cis);
++
++ if (cfg->dma_type & CAMIF_CODEC) {
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ val = readl(cfg->regs + S3C_MSCOCTRL);
++ val &= ~(1 << 3);
++ writel(val, cfg->regs + S3C_MSCOCTRL);
++#endif
++ } else if (cfg->dma_type & CAMIF_PREVIEW) {
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450)
++ val = readl(cfg->regs + S3C_CIMSCTRL);
++ val &= ~(1 << 2);
++ writel(val, cfg->regs + S3C_CIMSCTRL);
++#elif defined(CONFIG_CPU_S3C6400)
++ val = readl(cfg->regs + S3C_CIMSCTRL);
++ val &= ~(1 << 3);
++ writel(val, cfg->regs + S3C_CIMSCTRL);
++#endif
++ } else
++ printk(KERN_ERR "Invalid DMA type\n");
++
++ return 0;
++}
++
++static int s3c_camif_setup_input_path(camif_cfg_t *cfg)
++{
++ if (cfg->input_channel == CAMERA_INPUT)
++ s3c_camif_input_camera(cfg);
++ else
++ s3c_camif_input_msdma(cfg);
++
++ return 0;
++}
++
++/*************************************************************************
++ * Output path part
++ ************************************************************************/
++static int s3c_camif_output_pp_codec_rgb(camif_cfg_t *cfg)
++{
++ int i;
++ unsigned int val;
++ unsigned int area = cfg->target_x * cfg->target_y;
++
++ if (cfg->dst_fmt & CAMIF_RGB24)
++ area = area * 4;
++ else {
++ assert (cfg->dst_fmt & CAMIF_RGB16);
++ area = area * 2;
++ }
++
++ if ((area % PAGE_SIZE) != 0) {
++ i = area / PAGE_SIZE;
++ area = (i + 1) * PAGE_SIZE;
++ }
++
++ cfg->buffer_size = area;
++
++ if (cfg->input_channel == MSDMA_FROM_CODEC) {
++ val = readl(S3C_VIDW00ADD0B0);
++
++ for (i = 0; i < 4; i++)
++ writel(val, cfg->regs + S3C_CICOYSA(i));
++ } else {
++ switch ( cfg->pp_num ) {
++ case 1:
++ for (i = 0; i < 4; i++) {
++ cfg->img_buf[i].virt_rgb = cfg->pp_virt_buf;
++ cfg->img_buf[i].phys_rgb = cfg->pp_phys_buf;
++ writel(cfg->img_buf[i].phys_rgb, cfg->regs + S3C_CICOYSA(i));
++ }
++
++ break;
++
++ case 2:
++ for (i = 0; i < 4; i++) {
++ if (i == 0 || i == 2) {
++ cfg->img_buf[i].virt_rgb = cfg->pp_virt_buf;
++ cfg->img_buf[i].phys_rgb = cfg->pp_phys_buf;
++ } else {
++ cfg->img_buf[i].virt_rgb = cfg->pp_virt_buf + area;
++ cfg->img_buf[i].phys_rgb = cfg->pp_phys_buf + area;
++ }
++
++ writel(cfg->img_buf[i].phys_rgb, cfg->regs + S3C_CICOYSA(i));
++ }
++
++ break;
++
++ case 4:
++ for (i = 0; i < 4; i++) {
++ cfg->img_buf[i].virt_rgb = cfg->pp_virt_buf + i * area;
++ cfg->img_buf[i].phys_rgb = cfg->pp_phys_buf + i * area;
++ writel(cfg->img_buf[i].phys_rgb, cfg->regs + S3C_CICOYSA(i));
++ }
++
++ break;
++
++ default:
++ printk(KERN_ERR "Invalid pingpong number %d\n", cfg->pp_num);
++ panic("s3c camif halt\n");
++ }
++ }
++
++ return 0;
++}
++
++static int s3c_camif_output_pp_codec(camif_cfg_t *cfg)
++{
++ unsigned int i, cbcr_size = 0;
++ unsigned int area = cfg->target_x * cfg->target_y;
++ unsigned int one_p_size;
++
++ area = cfg->target_x * cfg->target_y;
++
++ if (cfg->dst_fmt & CAMIF_YCBCR420)
++ cbcr_size = area / 4;
++ else if (cfg->dst_fmt & CAMIF_YCBCR422 || cfg->dst_fmt & CAMIF_YCBCR422I)
++ cbcr_size = area / 2;
++ else if ((cfg->dst_fmt & CAMIF_RGB16) || (cfg->dst_fmt & CAMIF_RGB24)) {
++ s3c_camif_output_pp_codec_rgb(cfg);
++ return 0;
++ } else
++ printk(KERN_ERR "Invalid target format %d\n", cfg->dst_fmt);
++
++ one_p_size = area + (2 * cbcr_size);
++
++ if ((one_p_size % PAGE_SIZE) != 0) {
++ i = one_p_size / PAGE_SIZE;
++ one_p_size = (i + 1) * PAGE_SIZE;
++ }
++
++ cfg->buffer_size = one_p_size;
++
++ switch (cfg->pp_num) {
++ case 1 :
++ for (i = 0; i < 4; i++) {
++ cfg->img_buf[i].virt_y = cfg->pp_virt_buf;
++ cfg->img_buf[i].phys_y = cfg->pp_phys_buf;
++ cfg->img_buf[i].virt_cb = cfg->pp_virt_buf + area;
++ cfg->img_buf[i].phys_cb = cfg->pp_phys_buf + area;
++ cfg->img_buf[i].virt_cr = cfg->pp_virt_buf + area + cbcr_size;
++ cfg->img_buf[i].phys_cr = cfg->pp_phys_buf + area + cbcr_size;
++ writel(cfg->img_buf[i].phys_y, cfg->regs + S3C_CICOYSA(i));
++ writel(cfg->img_buf[i].phys_cb, cfg->regs + S3C_CICOCBSA(i));
++ writel(cfg->img_buf[i].phys_cr, cfg->regs + S3C_CICOCRSA(i));
++ }
++
++ break;
++
++ case 2:
++ for (i = 0; i < 4; i++) {
++ if (i == 0 || i == 2) {
++ cfg->img_buf[i].virt_y = cfg->pp_virt_buf;
++ cfg->img_buf[i].phys_y = cfg->pp_phys_buf;
++ cfg->img_buf[i].virt_cb = cfg->pp_virt_buf + area;
++ cfg->img_buf[i].phys_cb = cfg->pp_phys_buf + area;
++ cfg->img_buf[i].virt_cr = cfg->pp_virt_buf + area + cbcr_size;
++ cfg->img_buf[i].phys_cr = cfg->pp_phys_buf + area + cbcr_size;
++ } else {
++ cfg->img_buf[i].virt_y = cfg->pp_virt_buf + one_p_size;
++ cfg->img_buf[i].phys_y = cfg->pp_phys_buf + one_p_size;
++ cfg->img_buf[i].virt_cb = cfg->pp_virt_buf + area + one_p_size;
++ cfg->img_buf[i].phys_cb = cfg->pp_phys_buf + area + one_p_size;
++ cfg->img_buf[i].virt_cr = cfg->pp_virt_buf + area + cbcr_size + one_p_size;
++ cfg->img_buf[i].phys_cr = cfg->pp_phys_buf + area + cbcr_size + one_p_size;
++ }
++
++ writel(cfg->img_buf[i].phys_y, cfg->regs + S3C_CICOYSA(i));
++ writel(cfg->img_buf[i].phys_cb, cfg->regs + S3C_CICOCBSA(i));
++ writel(cfg->img_buf[i].phys_cr, cfg->regs + S3C_CICOCRSA(i));
++ }
++
++ break;
++
++ case 4:
++ for (i = 0; i < 4; i++) {
++ cfg->img_buf[i].virt_y = cfg->pp_virt_buf + i * one_p_size;
++ cfg->img_buf[i].phys_y = cfg->pp_phys_buf + i * one_p_size;
++ cfg->img_buf[i].virt_cb = cfg->pp_virt_buf + area + i * one_p_size;
++ cfg->img_buf[i].phys_cb = cfg->pp_phys_buf + area + i * one_p_size;
++ cfg->img_buf[i].virt_cr = cfg->pp_virt_buf + area + cbcr_size + i * one_p_size;
++ cfg->img_buf[i].phys_cr = cfg->pp_phys_buf + area + cbcr_size + i * one_p_size;
++ writel(cfg->img_buf[i].phys_y, cfg->regs + S3C_CICOYSA(i));
++ writel(cfg->img_buf[i].phys_cb, cfg->regs + S3C_CICOCBSA(i));
++ writel(cfg->img_buf[i].phys_cr, cfg->regs + S3C_CICOCRSA(i));
++ }
++
++ break;
++
++ default:
++ printk(KERN_ERR "Invalid pingpong number %d\n", cfg->pp_num);
++ }
++
++ return 0;
++}
++
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++static int s3c_camif_io_duplex_preview(camif_cfg_t *cfg)
++{
++ unsigned int cbcr_size = 0;
++ unsigned int area = cfg->cis->source_x * cfg->cis->source_y;
++ unsigned int val;
++ int i;
++
++ val = readl(S3C_VIDW01ADD0);
++
++ if (!((cfg->dst_fmt & CAMIF_RGB16) || (cfg->dst_fmt & CAMIF_RGB24)))
++ printk(KERN_ERR "Invalid target format\n");
++
++ for (i = 0; i < 4; i++)
++ writel(val, cfg->regs + S3C_CIPRYSA(i));
++
++ if (cfg->src_fmt & CAMIF_YCBCR420) {
++ cbcr_size = area / 4;
++ cfg->img_buf[0].virt_cb = cfg->pp_virt_buf + area;
++ cfg->img_buf[0].phys_cb = cfg->pp_phys_buf + area;
++ cfg->img_buf[0].virt_cr = cfg->pp_virt_buf + area + cbcr_size;
++ cfg->img_buf[0].phys_cr = cfg->pp_phys_buf + area + cbcr_size;
++ } else if (cfg->src_fmt & CAMIF_YCBCR422 || cfg->dst_fmt & CAMIF_YCBCR422I) {
++ area = area * 2;
++ cfg->img_buf[0].virt_cb = 0;
++ cfg->img_buf[0].phys_cb = 0;
++ cfg->img_buf[0].virt_cr = 0;
++ cfg->img_buf[0].phys_cr = 0;
++ }
++
++ cfg->img_buf[0].virt_y = cfg->pp_virt_buf;
++ cfg->img_buf[0].phys_y = cfg->pp_phys_buf;
++
++ writel(cfg->img_buf[0].phys_y, cfg->regs + S3C_CIMSYSA);
++ writel(cfg->img_buf[0].phys_y + area, cfg->regs + S3C_CIMSYEND);
++
++ writel(cfg->img_buf[0].phys_cb, cfg->regs + S3C_CIMSCBSA);
++ writel(cfg->img_buf[0].phys_cb + cbcr_size, cfg->regs + S3C_CIMSCBEND);
++
++ writel(cfg->img_buf[0].phys_cr, cfg->regs + S3C_CIMSCRSA);
++ writel(cfg->img_buf[0].phys_cr + cbcr_size, cfg->regs + S3C_CIMSCREND);
++
++ writel(cfg->cis->source_x, cfg->regs + S3C_CIMSWIDTH);
++
++ return 0;
++}
++#elif defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++static int s3c_camif_io_duplex_preview(camif_cfg_t *cfg)
++{
++ unsigned int cbcr_size = 0;
++ unsigned int area = cfg->cis->source_x * cfg->cis->source_y;
++ unsigned int val;
++ int i;
++
++ val = readl(S3C_VIDW01ADD0B0);
++
++ if (!((cfg->dst_fmt & CAMIF_RGB16) || (cfg->dst_fmt & CAMIF_RGB24)))
++ printk(KERN_ERR "Invalid target format\n");
++
++ for (i = 0; i < 4; i++)
++ writel(val, cfg->regs + S3C_CIPRYSA(i));
++
++ if (cfg->src_fmt & CAMIF_YCBCR420) {
++ cbcr_size = area / 4;
++ cfg->img_buf[0].virt_cb = cfg->pp_virt_buf + area;
++ cfg->img_buf[0].phys_cb = cfg->pp_phys_buf + area;
++ cfg->img_buf[0].virt_cr = cfg->pp_virt_buf + area + cbcr_size;
++ cfg->img_buf[0].phys_cr = cfg->pp_phys_buf + area + cbcr_size;
++ } else if (cfg->src_fmt & CAMIF_YCBCR422 || cfg->dst_fmt & CAMIF_YCBCR422I){
++ area = area * 2;
++ cfg->img_buf[0].virt_cb = 0;
++ cfg->img_buf[0].phys_cb = 0;
++ cfg->img_buf[0].virt_cr = 0;
++ cfg->img_buf[0].phys_cr = 0;
++ }
++
++ cfg->img_buf[0].virt_y = cfg->pp_virt_buf;
++ cfg->img_buf[0].phys_y = cfg->pp_phys_buf;
++
++ writel(cfg->img_buf[0].phys_y, cfg->regs + S3C_MSPRY0SA);
++ writel(cfg->img_buf[0].phys_y + area, cfg->regs + S3C_MSPRY0END);
++
++ writel(cfg->img_buf[0].phys_cb, cfg->regs + S3C_MSPRCB0SA);
++ writel(cfg->img_buf[0].phys_cb + cbcr_size, cfg->regs + S3C_MSPRCB0END);
++
++ writel(cfg->img_buf[0].phys_cr, cfg->regs + S3C_MSPRCR0SA);
++ writel(cfg->img_buf[0].phys_cr + cbcr_size, cfg->regs + S3C_MSPRCR0END);
++
++ val = readl(cfg->regs + S3C_MSCOWIDTH);
++ val = (val & ~(0x1 << 31)) | (0x1 << 31);
++ val |= (cfg->cis->source_y << 16);
++ val |= cfg->cis->source_x;
++ writel(val, cfg->regs + S3C_MSPRWIDTH);
++
++ return 0;
++}
++#endif
++
++static int s3c_camif_output_pp_preview(camif_cfg_t *cfg)
++{
++ int i;
++ unsigned int cbcr_size = 0;
++ unsigned int area = cfg->target_x * cfg->target_y;
++
++ if (cfg->input_channel) {
++ s3c_camif_io_duplex_preview(cfg);
++ return 0;
++ }
++
++ if (cfg->dst_fmt & CAMIF_YCBCR420)
++ cbcr_size = area / 4;
++ else if (cfg->dst_fmt & CAMIF_YCBCR422 || cfg->dst_fmt & CAMIF_YCBCR422I)
++ cbcr_size = area / 2;
++ else if (cfg->dst_fmt & CAMIF_RGB24)
++ area = area * 4;
++ else if (cfg->dst_fmt & CAMIF_RGB16)
++ area = area * 2;
++ else
++ printk(KERN_ERR "Invalid target format %d\n", cfg->dst_fmt);
++
++ if ((area % PAGE_SIZE) != 0) {
++ i = area / PAGE_SIZE;
++ area = (i + 1) * PAGE_SIZE;
++ }
++
++ cfg->buffer_size = area;
++
++ switch (cfg->pp_num) {
++ case 1:
++ for (i = 0; i < 4; i++) {
++ cfg->img_buf[i].virt_rgb = cfg->pp_virt_buf;
++ cfg->img_buf[i].phys_rgb = cfg->pp_phys_buf;
++ writel(cfg->img_buf[i].phys_rgb, cfg->regs + S3C_CIPRYSA(i));
++ }
++
++ break;
++
++ case 2:
++ for (i = 0; i < 4; i++) {
++ if (i == 0 || i == 2) {
++ cfg->img_buf[i].virt_rgb = cfg->pp_virt_buf;
++ cfg->img_buf[i].phys_rgb = cfg->pp_phys_buf;
++ } else {
++ cfg->img_buf[i].virt_rgb = cfg->pp_virt_buf + area;
++ cfg->img_buf[i].phys_rgb = cfg->pp_phys_buf + area;
++ }
++
++ writel(cfg->img_buf[i].phys_rgb, cfg->regs + S3C_CIPRYSA(i));
++ }
++
++ break;
++
++ case 4:
++ for (i = 0; i < 4; i++) {
++ cfg->img_buf[i].virt_rgb = cfg->pp_virt_buf + i * area;
++ cfg->img_buf[i].phys_rgb = cfg->pp_phys_buf + i * area;
++ writel(cfg->img_buf[i].phys_rgb, cfg->regs + S3C_CIPRYSA(i));
++ }
++
++ break;
++
++ default:
++ printk(KERN_ERR "Invalid pingpong number %d\n", cfg->pp_num);
++ }
++
++ return 0;
++}
++
++static int s3c_camif_output_pp(camif_cfg_t *cfg)
++{
++ if (cfg->dma_type & CAMIF_CODEC)
++ s3c_camif_output_pp_codec(cfg);
++ else if ( cfg->dma_type & CAMIF_PREVIEW)
++ s3c_camif_output_pp_preview(cfg);
++
++ return 0;
++}
++
++static int s3c_camif_output_lcd(camif_cfg_t *cfg)
++{
++ /* To Be Implemented */
++ return 0;
++}
++
++static int s3c_camif_setup_output_path(camif_cfg_t *cfg)
++{
++ if (cfg->output_channel == CAMIF_OUT_FIFO)
++ s3c_camif_output_lcd(cfg);
++ else
++ s3c_camif_output_pp(cfg);
++
++ return 0;
++}
++
++/*************************************************************************
++ * Scaler part
++ ************************************************************************/
++static int s3c_camif_set_target_area(camif_cfg_t *cfg)
++{
++ unsigned int rect = cfg->target_x * cfg->target_y;
++
++ if (cfg->dma_type & CAMIF_CODEC)
++ writel(rect, cfg->regs + S3C_CICOTAREA);
++ else if (cfg->dma_type & CAMIF_PREVIEW)
++ writel(rect, cfg->regs + S3C_CIPRTAREA);
++
++ return 0;
++}
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++static inline int s3c_camif_set_ratio(camif_cfg_t *cfg)
++{
++ unsigned int cmd = (S3C_CICOSCCTRL_CSCR2Y_WIDE | S3C_CICOSCCTRL_CSCY2R_WIDE);
++
++ if (cfg->dma_type & CAMIF_CODEC) {
++
++ writel(S3C_CICOSCPRERATIO_SHFACTOR_CO(cfg->sc.shfactor) | \
++ S3C_CICOSCPRERATIO_PREHORRATIO_CO(cfg->sc.prehratio) | \
++ S3C_CICOSCPRERATIO_PREVERRATIO_CO(cfg->sc.prevratio), cfg->regs + S3C_CICOSCPRERATIO);
++
++ writel(S3C_CICOSCPREDST_PREDSTWIDTH_CO(cfg->sc.predst_x) | \
++ S3C_CICOSCPREDST_PREDSTHEIGHT_CO(cfg->sc.predst_y), cfg->regs + S3C_CICOSCPREDST);
++
++ /* Differ from Preview */
++ if (cfg->sc.scalerbypass)
++ cmd |= S3C_CICOSCCTRL_SCALERBYPASS_CO;
++
++ /* Differ from Codec */
++ if (cfg->dst_fmt & CAMIF_RGB24)
++ cmd |= S3C_CICOSCCTRL_OUTRGB_FMT_RGB888;
++ else
++ cmd |= S3C_CICOSCCTRL_OUTRGB_FMT_RGB565;
++
++ if (cfg->sc.scaleup_h & cfg->sc.scaleup_v)
++ cmd |= (S3C_CICOSCCTRL_SCALEUP_H | S3C_CICOSCCTRL_SCALEUP_V);
++
++ writel(cmd | S3C_CICOSCCTRL_MAINHORRATIO_CO(cfg->sc.mainhratio) | \
++ S3C_CICOSCCTRL_MAINVERRATIO_CO(cfg->sc.mainvratio), cfg->regs + S3C_CICOSCCTRL);
++
++ } else if (cfg->dma_type & CAMIF_PREVIEW) {
++
++ writel(S3C_CIPRSCPRERATIO_SHFACTOR_PR(cfg->sc.shfactor) | \
++ S3C_CIPRSCPRERATIO_PREHORRATIO_PR(cfg->sc.prehratio) | \
++ S3C_CIPRSCPRERATIO_PREVERRATIO_PR(cfg->sc.prevratio), cfg->regs + S3C_CIPRSCPRERATIO);
++
++ writel(S3C_CIPRSCPREDST_PREDSTWIDTH_PR(cfg->sc.predst_x) | \
++ S3C_CIPRSCPREDST_PREDSTHEIGHT_PR(cfg->sc.predst_y), cfg->regs + S3C_CIPRSCPREDST);
++
++ if (cfg->dst_fmt & CAMIF_RGB24)
++ cmd |= S3C_CIPRSCCTRL_OUTRGB_FMT_PR_RGB888;
++ else
++ cmd |= S3C_CIPRSCCTRL_OUTRGB_FMT_PR_RGB565;
++
++ if (cfg->sc.scaleup_h & cfg->sc.scaleup_v)
++ cmd |= ((1 << 30) | (1 << 29));
++
++ writel(cmd | S3C_CIPRSCCTRL_MAINHORRATIO_PR(cfg->sc.mainhratio) | \
++ S3C_CIPRSCCTRL_MAINVERRATIO_PR(cfg->sc.mainvratio), cfg->regs + S3C_CIPRSCCTRL);
++
++ } else
++ printk(KERN_ERR "Invalid DMA type\n");
++
++ return 0;
++}
++#elif defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++static inline int s3c_camif_set_ratio(camif_cfg_t *cfg)
++{
++ u32 cmd = 0;
++
++ if (cfg->dma_type & CAMIF_CODEC) {
++
++ writel(S3C_CICOSCPRERATIO_SHFACTOR_CO(cfg->sc.shfactor) | \
++ S3C_CICOSCPRERATIO_PREHORRATIO_CO(cfg->sc.prehratio) | \
++ S3C_CICOSCPRERATIO_PREVERRATIO_CO(cfg->sc.prevratio), cfg->regs + S3C_CICOSCPRERATIO);
++
++ writel(S3C_CICOSCPREDST_PREDSTWIDTH_CO(cfg->sc.predst_x) | \
++ S3C_CICOSCPREDST_PREDSTHEIGHT_CO(cfg->sc.predst_y), cfg->regs + S3C_CICOSCPREDST);
++
++ if (cfg->sc.scalerbypass)
++ cmd |= S3C_CICOSCCTRL_SCALERBYPASS_CO;
++
++ if (cfg->sc.scaleup_h & cfg->sc.scaleup_v)
++ cmd |= (S3C_CICOSCCTRL_SCALEUP_H | S3C_CICOSCCTRL_SCALEUP_V);
++
++ writel(cmd | S3C_CICOSCCTRL_MAINHORRATIO_CO(cfg->sc.mainhratio) | \
++ S3C_CICOSCCTRL_MAINVERRATIO_CO(cfg->sc.mainvratio), cfg->regs + S3C_CICOSCCTRL);
++
++ } else if (cfg->dma_type & CAMIF_PREVIEW) {
++
++ cmd |= S3C_CIPRSCCTRL_SAMPLE_PR;
++
++ writel(S3C_CIPRSCPRERATIO_SHFACTOR_PR(cfg->sc.shfactor) | \
++ S3C_CIPRSCPRERATIO_PREHORRATIO_PR(cfg->sc.prehratio) | \
++ S3C_CIPRSCPRERATIO_PREVERRATIO_PR(cfg->sc.prevratio), cfg->regs + S3C_CIPRSCPRERATIO);
++
++ writel(S3C_CIPRSCPREDST_PREDSTWIDTH_PR(cfg->sc.predst_x) | \
++ S3C_CIPRSCPREDST_PREDSTHEIGHT_PR(cfg->sc.predst_y), cfg->regs + S3C_CIPRSCPREDST);
++
++ if (cfg->dst_fmt & CAMIF_RGB24)
++ cmd |= S3C_CIPRSCCTRL_RGBFORMAT_24;
++
++ if (cfg->sc.scaleup_h & cfg->sc.scaleup_v)
++ cmd |= ((1 << 29) | (1 << 28));
++
++ writel(cmd | S3C_CIPRSCCTRL_MAINHORRATIO_PR(cfg->sc.mainhratio) | \
++ S3C_CIPRSCCTRL_MAINVERRATIO_PR(cfg->sc.mainvratio), cfg->regs + S3C_CIPRSCCTRL);
++
++ } else
++ printk(KERN_ERR "Invalid DMA type\n");
++
++ return 0;
++}
++#endif
++
++static int s3c_camif_calc_ratio(unsigned int src_width, unsigned int dst_width, unsigned int *ratio, unsigned int *shift)
++{
++ if (src_width >= 64 * dst_width) {
++ printk(KERN_ERR "Out of pre-scaler range: src_width / dst_width = %d (< 64)\n", src_width / dst_width);
++ return 1;
++ } else if (src_width >= 32 * dst_width) {
++ *ratio = 32;
++ *shift = 5;
++ } else if (src_width >= 16 * dst_width) {
++ *ratio = 16;
++ *shift = 4;
++ } else if (src_width >= 8 * dst_width) {
++ *ratio = 8;
++ *shift = 3;
++ } else if (src_width >= 4 * dst_width) {
++ *ratio = 4;
++ *shift = 2;
++ } else if (src_width >= 2 * dst_width) {
++ *ratio = 2;
++ *shift = 1;
++ } else {
++ *ratio = 1;
++ *shift = 0;
++ }
++
++ return 0;
++}
++
++static int s3c_camif_setup_scaler(camif_cfg_t *cfg)
++{
++ int tx = cfg->target_x, ty=cfg->target_y;
++ int sx, sy;
++
++ if (tx <= 0 || ty <= 0) {
++ printk(KERN_ERR "Invalid target size\n");
++ return -1;
++ }
++
++ sx = cfg->cis->source_x - (cfg->cis->win_hor_ofst + cfg->cis->win_hor_ofst2);
++ sy = cfg->cis->source_y - (cfg->cis->win_ver_ofst + cfg->cis->win_hor_ofst2);
++
++ if (sx <= 0 || sy <= 0) {
++ printk(KERN_ERR "Invalid source size\n");
++ return -1;
++ }
++
++ cfg->sc.modified_src_x = sx;
++ cfg->sc.modified_src_y = sy;
++
++ /* Pre-scaler control register 1 */
++ s3c_camif_calc_ratio(sx, tx, &cfg->sc.prehratio, &cfg->sc.hfactor);
++ s3c_camif_calc_ratio(sy, ty, &cfg->sc.prevratio, &cfg->sc.vfactor);
++
++#if defined(CONFIG_CPU_S3C6410)
++ if (cfg->dma_type & CAMIF_PREVIEW) {
++ if ((sx / cfg->sc.prehratio) > 720) {
++ printk(KERN_INFO "Internal preview line buffer length is 720 pixels\n");
++ printk(KERN_INFO "Decrease the resolution or adjust window offset values appropriately\n");
++ }
++ }
++#else
++ if (cfg->dma_type & CAMIF_PREVIEW) {
++ if ((sx / cfg->sc.prehratio) > 640) {
++ printk(KERN_INFO "Internal preview line buffer length is 640 pixels\n");
++ printk(KERN_INFO "Decrease the resolution or adjust window offset values appropriately\n");
++ }
++ }
++#endif
++
++ cfg->sc.shfactor = 10 - (cfg->sc.hfactor + cfg->sc.vfactor);
++
++ /* Pre-scaler control register 2 */
++ cfg->sc.predst_x = sx / cfg->sc.prehratio;
++ cfg->sc.predst_y = sy / cfg->sc.prevratio;
++
++ /* Main-scaler control register */
++ cfg->sc.mainhratio = (sx << 8) / (tx << cfg->sc.hfactor);
++ cfg->sc.mainvratio = (sy << 8) / (ty << cfg->sc.vfactor);
++
++ cfg->sc.scaleup_h = (sx <= tx) ? 1 : 0;
++ cfg->sc.scaleup_v = (sy <= ty) ? 1 : 0;
++
++ s3c_camif_set_ratio(cfg);
++ s3c_camif_set_target_area(cfg);
++
++ return 0;
++}
++
++/*************************************************************************
++ * Format part
++ ************************************************************************/
++int s3c_camif_set_source_format(camif_cis_t *cis)
++{
++ camif_cfg_t *cfg = s3c_camif_get_fimc_object(CODEC_MINOR);
++ unsigned int cmd = 0;
++
++ /* Configure CISRCFMT --Source Format */
++ if (cis->itu_fmt & CAMIF_ITU601)
++ cmd = CAMIF_ITU601;
++ else {
++ assert(cis->itu_fmt & CAMIF_ITU656);
++ cmd = CAMIF_ITU656;
++ }
++
++ cmd |= (S3C_CISRCFMT_SOURCEHSIZE(cis->source_x) | S3C_CISRCFMT_SOURCEVSIZE(cis->source_y));
++
++ /* Order422 */
++ cmd |= cis->order422;
++ writel(cmd, cfg->regs + S3C_CISRCFMT);
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ cmd = (cis->order422 >> 14);
++ writel((readl(cfg->regs + S3C_CICOCTRL) & ~(0x3 << 0)) | cmd, cfg->regs + S3C_CICOCTRL);
++#endif
++
++ return 0;
++}
++
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++static int s3c_camif_set_target_format(camif_cfg_t *cfg)
++{
++ unsigned int cmd = 0;
++
++ if (cfg->dma_type & CAMIF_CODEC) {
++ cmd |= S3C_CICOTRGFMT_TARGETHSIZE_CO(cfg->target_x) | S3C_CICOTRGFMT_TARGETVSIZE_CO(cfg->target_y);
++
++ if (cfg->dst_fmt & CAMIF_YCBCR420) {
++ cmd |= (S3C_CICOTRGFMT_OUT422_420 | S3C_CICOTRGFMT_IN422_422);
++ writel(cmd, cfg->regs + S3C_CICOTRGFMT);
++ } else if (cfg->dst_fmt & CAMIF_YCBCR422) {
++ cmd |= (S3C_CICOTRGFMT_OUT422_422 | S3C_CICOTRGFMT_IN422_422);
++ writel(cmd, cfg->regs + S3C_CICOTRGFMT);
++ } else if ((cfg->dst_fmt & CAMIF_RGB24) || (cfg->dst_fmt & CAMIF_RGB16)) {
++ cmd |= (S3C_CICOTRGFMT_OUT422_422 | S3C_CICOTRGFMT_IN422_422);
++ writel(cmd | (1 << 29), cfg->regs + S3C_CICOTRGFMT);
++ } else
++ printk(KERN_ERR "Invalid target format\n");
++ } else {
++ assert(cfg->dma_type & CAMIF_PREVIEW);
++
++ cmd = readl(cfg->regs + S3C_CIPRTRGFMT);
++ cmd &= (S3C_CIPRTRGFMT_TARGETHSIZE_PR(0) | S3C_CIPRTRGFMT_TARGETVSIZE_PR(0));
++ cmd |= (S3C_CIPRTRGFMT_TARGETHSIZE_PR(cfg->target_x) | S3C_CIPRTRGFMT_TARGETVSIZE_PR(cfg->target_y));
++
++ writel(cmd | (2 << 30), cfg->regs + S3C_CIPRTRGFMT);
++ }
++
++ return 0;
++}
++#elif defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++static int s3c_camif_set_target_format(camif_cfg_t *cfg)
++{
++ unsigned int cmd = 0;
++
++ if (cfg->dma_type & CAMIF_CODEC) {
++ cmd |= (S3C_CICOTRGFMT_TARGETHSIZE_CO(cfg->target_x) | S3C_CICOTRGFMT_TARGETVSIZE_CO(cfg->target_y));
++
++ if (cfg->dst_fmt & CAMIF_YCBCR420) {
++ cmd |= S3C_CICOTRGFMT_OUTFORMAT_YCBCR420OUT;
++ writel(cmd, cfg->regs + S3C_CICOTRGFMT);
++ } else if (cfg->dst_fmt & CAMIF_YCBCR422) {
++ cmd |= S3C_CICOTRGFMT_OUTFORMAT_YCBCR422OUT;
++ writel(cmd, cfg->regs + S3C_CICOTRGFMT);
++ } else if (cfg->dst_fmt & CAMIF_YCBCR422I) {
++ cmd |= S3C_CICOTRGFMT_OUTFORMAT_YCBCR422OUTINTERLEAVE;
++ writel(cmd, cfg->regs + S3C_CICOTRGFMT);
++ } else if ((cfg->dst_fmt & CAMIF_RGB24) || (cfg->dst_fmt & CAMIF_RGB16)) {
++ cmd |= S3C_CICOTRGFMT_OUTFORMAT_RGBOUT;
++ writel(cmd, cfg->regs + S3C_CICOTRGFMT);
++ } else
++ printk(KERN_ERR "Invalid target format\n");
++ } else {
++ assert(cfg->dma_type & CAMIF_PREVIEW);
++
++ cmd = readl(cfg->regs + S3C_CIPRTRGFMT);
++ cmd &= (S3C_CIPRTRGFMT_TARGETHSIZE_PR(0) | S3C_CIPRTRGFMT_TARGETVSIZE_PR(0));
++ cmd |= (S3C_CIPRTRGFMT_TARGETHSIZE_PR(cfg->target_x) | S3C_CIPRTRGFMT_TARGETVSIZE_PR(cfg->target_y));
++
++ if (cfg->dst_fmt & CAMIF_YCBCR420)
++ cmd |= S3C_CICOTRGFMT_OUTFORMAT_YCBCR420OUT;
++ else if (cfg->dst_fmt & CAMIF_YCBCR422)
++ cmd |= S3C_CICOTRGFMT_OUTFORMAT_YCBCR422OUT;
++ else if (cfg->dst_fmt & CAMIF_YCBCR422I)
++ cmd |= S3C_CICOTRGFMT_OUTFORMAT_YCBCR422OUTINTERLEAVE;
++ else if ((cfg->dst_fmt & CAMIF_RGB24) || (cfg->dst_fmt & CAMIF_RGB16))
++ cmd |= S3C_CICOTRGFMT_OUTFORMAT_RGBOUT;
++ else
++ printk(KERN_ERR "Invalid target format\n");
++
++ writel(cmd, cfg->regs + S3C_CIPRTRGFMT);
++ }
++
++ return 0;
++}
++#endif
++
++/*************************************************************************
++ * Control part
++ ************************************************************************/
++int s3c_camif_control_fimc(camif_cfg_t *cfg)
++{
++ if (s3c_camif_request_memory(cfg)) {
++ printk(KERN_ERR "Instead of using consistent_alloc(). Let me use dedicated mem for DMA\n");
++ return -1;
++ }
++
++ s3c_camif_setup_input_path(cfg);
++
++ if (s3c_camif_setup_scaler(cfg)) {
++ printk(KERN_ERR "Preview scaler fault: change WinHorOfset or target size\n");
++ return 1;
++ }
++
++ s3c_camif_set_target_format(cfg);
++
++ if (s3c_camif_setup_dma(cfg)) {
++ printk(KERN_ERR "DMA burst length error\n");
++ return 1;
++ }
++
++ s3c_camif_setup_output_path(cfg);
++
++ return 0;
++}
++
++int s3c_camif_start_dma(camif_cfg_t *cfg)
++{
++ unsigned int n_cmd = readl(cfg->regs + S3C_CIIMGCPT);
++ unsigned int val;
++
++ switch(cfg->capture_enable) {
++ case CAMIF_BOTH_DMA_ON:
++ s3c_camif_reset(CAMIF_RESET, 0); /* Flush Camera Core Buffer */
++
++ /* For Codec */
++ val = readl(cfg->regs + S3C_CICOSCCTRL);
++ val |= S3C_CICOSCCTRL_COSCALERSTART;
++ writel(val, cfg->regs + S3C_CICOSCCTRL);
++
++ /* For Preview */
++ val = readl(cfg->regs + S3C_CIPRSCCTRL);
++ val |= S3C_CIPRSCCTRL_START;
++ writel(val, cfg->regs + S3C_CIPRSCCTRL);
++
++ if (!cfg->sc.scalerbypass)
++ n_cmd |= S3C_CIIMGCPT_IMGCPTEN_COSC | S3C_CIIMGCPT_IMGCPTEN_PRSC;
++
++ break;
++
++ case CAMIF_DMA_ON:
++ s3c_camif_reset(CAMIF_RESET, 0); /* Flush Camera Core Buffer */
++
++ if (cfg->dma_type & CAMIF_CODEC) {
++ val = readl(cfg->regs + S3C_CICOSCCTRL);
++ val |= S3C_CICOSCCTRL_COSCALERSTART;
++ writel(val, cfg->regs + S3C_CICOSCCTRL);
++
++ if (!cfg->sc.scalerbypass)
++ n_cmd |= S3C_CIIMGCPT_IMGCPTEN_COSC;
++
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ n_cmd |= (1 << 24);
++#endif
++ } else {
++ val = readl(cfg->regs + S3C_CIPRSCCTRL);
++ val |= S3C_CIPRSCCTRL_START;
++ writel(val, cfg->regs + S3C_CIPRSCCTRL);
++
++ if (!cfg->sc.scalerbypass)
++ n_cmd |= S3C_CIIMGCPT_IMGCPTEN_PRSC;
++ }
++
++ /* wait until Sync Time expires */
++ /* First settting, to wait VSYNC fall */
++ /* By VESA spec,in 640x480 @60Hz
++ MAX Delay Time is around 64us which "while" has.*/
++ while (S3C_CICOSTATUS_VSYNC & readl(cfg->regs + S3C_CICOSTATUS));
++ break;
++
++ default:
++ break;
++ }
++
++#if defined(CONFIG_CPU_S3C2443)
++ if (cfg->dma_type & CAMIF_CODEC) {
++ if (cfg->dst_fmt & CAMIF_RGB24)
++ n_cmd |= (3 << 25);
++ else if (cfg->dst_fmt & CAMIF_RGB16)
++ n_cmd |= (1 << 25);
++ else if (cfg->dst_fmt & CAMIF_YCBCR420)
++ n_cmd |= (2 << 25);
++ }
++#endif
++
++ val = readl(cfg->regs + S3C_CIIMGCPT);
++ val &= ~(0x7 << 29);
++ writel(val | n_cmd | S3C_CIIMGCPT_IMGCPTEN, cfg->regs + S3C_CIIMGCPT);
++
++ return 0;
++}
++
++int s3c_camif_stop_dma(camif_cfg_t *cfg)
++{
++ unsigned int n_cmd = readl(cfg->regs + S3C_CIIMGCPT);
++ unsigned int val;
++
++ switch(cfg->capture_enable) {
++ case CAMIF_BOTH_DMA_OFF:
++ val = readl(cfg->regs + S3C_CICOSCCTRL);
++ val &= ~S3C_CICOSCCTRL_COSCALERSTART;
++ writel(val, cfg->regs + S3C_CICOSCCTRL);
++
++ val = readl(cfg->regs + S3C_CIPRSCCTRL);
++ val &= ~S3C_CIPRSCCTRL_START;
++ writel(val, cfg->regs + S3C_CIPRSCCTRL);
++
++ n_cmd = 0;
++ break;
++
++ case CAMIF_DMA_OFF_L_IRQ: /* fall thru */
++ case CAMIF_DMA_OFF:
++ if (cfg->dma_type & CAMIF_CODEC) {
++ val = readl(cfg->regs + S3C_CICOSCCTRL);
++ val &= ~S3C_CICOSCCTRL_COSCALERSTART;
++ writel(val, cfg->regs + S3C_CICOSCCTRL);
++ n_cmd &= ~S3C_CIIMGCPT_IMGCPTEN_COSC;
++
++ if (!(n_cmd & S3C_CIIMGCPT_IMGCPTEN_PRSC))
++ n_cmd = 0;
++ } else {
++ val = readl(cfg->regs + S3C_CIPRSCCTRL);
++ val &= ~S3C_CIPRSCCTRL_START;
++ writel(val, cfg->regs + S3C_CIPRSCCTRL);
++
++ n_cmd &= ~S3C_CIIMGCPT_IMGCPTEN_PRSC;
++
++ if (!(n_cmd & S3C_CIIMGCPT_IMGCPTEN_COSC))
++ n_cmd = 0;
++ }
++
++ break;
++
++ default:
++ printk(KERN_ERR "Unexpected DMA control\n");
++ }
++
++ writel(n_cmd, cfg->regs + S3C_CIIMGCPT);
++
++ if (cfg->capture_enable == CAMIF_DMA_OFF_L_IRQ) { /* Last IRQ */
++ if (cfg->dma_type & CAMIF_CODEC) {
++ val = readl(cfg->regs + S3C_CICOCTRL);
++ val |= S3C_CICOCTRL_LASTIRQEN;
++ writel(val, cfg->regs + S3C_CICOCTRL);
++ } else {
++ val = readl(cfg->regs + S3C_CIPRCTRL);
++ val |= S3C_CIPRCTRL_LASTIRQEN_ENABLE;
++ writel(val, cfg->regs + S3C_CIPRCTRL);
++ }
++ }
++
++ return 0;
++}
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++int s3c_camif_start_codec_msdma(camif_cfg_t *cfg)
++{
++ int ret = 0;
++ u32 val;
++
++ val = readl(cfg->regs + S3C_MSCOCTRL);
++ val &= ~(1 << 0);
++ writel(val, cfg->regs + S3C_MSCOCTRL);
++
++ val = readl(cfg->regs + S3C_MSCOCTRL);
++ val |= (1 << 0);
++ writel(val, cfg->regs + S3C_MSCOCTRL);
++
++ return ret;
++}
++#endif
++
++int s3c_camif_start_preview_msdma(camif_cfg_t * cfg)
++{
++ unsigned int val;
++ int ret = 0;
++
++#if !defined(CONFIG_CPU_S3C6400) && !defined(CONFIG_CPU_S3C6410)
++ val = readl(cfg->regs + S3C_CIMSCTRL);
++ val &= ~(1 << 0);
++ writel(val, cfg->regs + S3C_CIMSCTRL);
++#endif
++ val = readl(cfg->regs + S3C_CIMSCTRL);
++ val |= (1 << 0);
++ writel(val, cfg->regs + S3C_CIMSCTRL);
++
++ while((readl(cfg->regs + S3C_CIMSCTRL) & (1 << 6)) == 0);
++
++ return ret;
++}
++
++void s3c_camif_change_flip(camif_cfg_t *cfg)
++{
++ unsigned int cmd = 0;
++
++ if (cfg->dma_type & CAMIF_CODEC) {
++ cmd = readl(cfg->regs + S3C_CICOTRGFMT);
++ cmd &= ~((1 << 14) | (1 << 15));
++ cmd |= cfg->flip;
++ writel(cmd, cfg->regs + S3C_CICOTRGFMT);
++ } else {
++ /* if ROT90_Pr == 1, dma burst length must be 4 */
++ if (cfg->flip == CAMIF_ROTATE_90 || cfg->flip == CAMIF_FLIP_ROTATE_270) {
++ cmd = readl(cfg->regs + S3C_CIPRCTRL);
++ cmd &= ~(0x3ff << 14);
++ cmd |= (S3C_CICOCTRL_YBURST1_CO(4) | S3C_CICOCTRL_YBURST2_CO(4));
++ writel(cmd, cfg->regs + S3C_CIPRCTRL);
++ }
++
++ cmd = readl(cfg->regs + S3C_CIPRTRGFMT);
++ cmd &= ~(0x7 << 13);
++ cmd |= cfg->flip;
++ writel(cmd, cfg->regs + S3C_CIPRTRGFMT);
++ }
++}
++
++void s3c_camif_change_effect(camif_cfg_t *cfg)
++{
++ unsigned int val = readl(cfg->regs + S3C_CIIMGEFF);
++ val &= ~((1 << 28) | (1 << 27) | (1 << 26));
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ val |= ((1 << 31) | (1 << 30));
++#endif
++
++ switch(cfg->effect) {
++ case CAMIF_SILHOUETTE:
++ val |= S3C_CIIMGEFF_FIN_SILHOUETTE;
++ break;
++
++ case CAMIF_EMBOSSING:
++ val |= S3C_CIIMGEFF_FIN_EMBOSSING;
++ break;
++
++ case CAMIF_ART_FREEZE:
++ val |= S3C_CIIMGEFF_FIN_ARTFREEZE;
++ break;
++
++ case CAMIF_NEGATIVE:
++ val |= S3C_CIIMGEFF_FIN_NEGATIVE;
++ break;
++
++ case CAMIF_ARBITRARY_CB_CR:
++ val |= S3C_CIIMGEFF_FIN_ARBITRARY;
++ break;
++
++ case CAMIF_BYPASS:
++ default:
++ break;
++ }
++
++ writel(val, cfg->regs + S3C_CIIMGEFF);
++}
++
++int s3c_camif_do_postprocess(camif_cfg_t *cfg)
++{
++ unsigned int val= readl(cfg->regs + S3C_CIMSCTRL);
++
++ if (cfg->dst_fmt & CAMIF_YCBCR420)
++ val |= (1 << 1);
++ else
++ val &= ~(1 << 1);
++
++ val &= ~(1 << 0);
++ writel(val, cfg->regs + S3C_CIMSCTRL);
++
++ val |= (1 << 0);
++ writel(val, cfg->regs + S3C_CIMSCTRL);
++
++ printk(KERN_INFO "Postprocessing started\n");
++
++ while((readl(cfg->regs + S3C_CIMSCTRL) & (1 << 6)) == 0);
++
++ printk(KERN_INFO "Postprocessing finished\n");
++
++ return 0;
++}
++
++int s3c_camif_set_offset(camif_cis_t *cis)
++{
++ camif_cfg_t *cfg = s3c_camif_get_fimc_object(CODEC_MINOR);
++ unsigned int h = cis->win_hor_ofst; /* Camera input offset ONLY */
++ unsigned int v = cis->win_ver_ofst; /* Camera input offset ONLY */
++ unsigned int h2 = cis->win_hor_ofst2; /* Camera input offset ONLY */
++ unsigned int v2 = cis->win_ver_ofst2; /* Camera input offset ONLY */
++
++ /*Clear Overflow */
++ writel(S3C_CIWDOFST_CLROVCOFIY | S3C_CIWDOFST_CLROVCOFICB | \
++ S3C_CIWDOFST_CLROVCOFICR | S3C_CIWDOFST_CLROVPRFICB | \
++ S3C_CIWDOFST_CLROVPRFICR, cfg->regs + S3C_CIWDOFST);
++
++ writel(0, cfg->regs + S3C_CIWDOFST);
++
++ if (!h && !v) {
++ writel(0, cfg->regs + S3C_CIWDOFST);
++ writel(0, cfg->regs + S3C_CIDOWSFT2);
++ return 0;
++ }
++
++ writel(S3C_CIWDOFST_WINOFSEN | S3C_CIWDOFST_WINHOROFST(h) | S3C_CIWDOFST_WINVEROFST(v), cfg->regs + S3C_CIWDOFST);
++ writel(S3C_CIDOWSFT2_WINHOROFST2(h) | S3C_CIDOWSFT2_WINVEROFST2(v), cfg->regs + S3C_CIDOWSFT2);
++ writel(S3C_CIDOWSFT2_WINHOROFST2(h2) | S3C_CIDOWSFT2_WINVEROFST2(v2), cfg->regs + S3C_CIDOWSFT2);
++
++ return 0;
++}
++
++void s3c_camif_set_priority(int flag)
++{
++ unsigned int val;
++
++ if (flag) {
++ irq_old_priority = readl(S3C_PRIORITY);
++ val = irq_old_priority;
++ val &= ~(3 << 7);
++ writel(val, S3C_PRIORITY);
++
++ /* Arbiter 1, REQ2 first */
++ val |= (1 << 7);
++ writel(val, S3C_PRIORITY);
++
++ /* Disable Priority Rotate */
++ val &= ~(1 << 1);
++ writel(val, S3C_PRIORITY);
++ } else
++ writel(irq_old_priority, S3C_PRIORITY);
++}
++
++/*************************************************************************
++ * Interrupt part
++ ************************************************************************/
++void s3c_camif_enable_lastirq(camif_cfg_t *cfg)
++{
++ unsigned int val;
++
++ if (cfg->capture_enable == CAMIF_BOTH_DMA_ON) {
++ val = readl(cfg->regs + S3C_CICOCTRL);
++ val |= S3C_CICOCTRL_LASTIRQEN;
++ writel(val, cfg->regs + S3C_CICOCTRL);
++
++ val = readl(cfg->regs + S3C_CIPRCTRL);
++ val |= S3C_CIPRCTRL_LASTIRQEN_ENABLE;
++ writel(val, cfg->regs + S3C_CIPRCTRL);
++ } else {
++ if (cfg->dma_type & CAMIF_CODEC) {
++ val = readl(cfg->regs + S3C_CICOCTRL);
++ val |= S3C_CICOCTRL_LASTIRQEN;
++ writel(val, cfg->regs + S3C_CICOCTRL);
++ } else {
++ val = readl(cfg->regs + S3C_CIPRCTRL);
++ val |= S3C_CIPRCTRL_LASTIRQEN_ENABLE;
++ writel(val, cfg->regs + S3C_CIPRCTRL);
++ }
++ }
++}
++
++void s3c_camif_disable_lastirq(camif_cfg_t *cfg)
++{
++ unsigned int val;
++
++ if (cfg->capture_enable == CAMIF_BOTH_DMA_ON) {
++ val = readl(cfg->regs + S3C_CICOCTRL);
++ val &= ~S3C_CICOCTRL_LASTIRQEN;
++ writel(val, cfg->regs + S3C_CICOCTRL);
++
++ val = readl(cfg->regs + S3C_CIPRCTRL);
++ val &= ~S3C_CIPRCTRL_LASTIRQEN_ENABLE;
++ writel(val, cfg->regs + S3C_CIPRCTRL);
++ } else {
++ if (cfg->dma_type & CAMIF_CODEC) {
++ val = readl(cfg->regs + S3C_CICOCTRL);
++ val &= ~S3C_CICOCTRL_LASTIRQEN;
++ writel(val, cfg->regs + S3C_CICOCTRL);
++ } else {
++ val = readl(cfg->regs + S3C_CIPRCTRL);
++ val &= ~S3C_CIPRCTRL_LASTIRQEN_ENABLE;
++ writel(val, cfg->regs + S3C_CIPRCTRL);
++ }
++ }
++}
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++void s3c_camif_clear_irq(int irq)
++{
++ camif_cfg_t *cfg = s3c_camif_get_fimc_object(CODEC_MINOR);
++ unsigned int val = 0;
++
++ if (irq == IRQ_CAMIF_C) {
++ val = readl(cfg->regs + S3C_CIGCTRL);
++ val |= (1 << 19);
++ } else if (irq == IRQ_CAMIF_P) {
++ val = readl(cfg->regs + S3C_CIGCTRL);
++ val |= (1 << 18);
++ }
++
++ writel(val, cfg->regs + S3C_CIGCTRL);
++}
++#else
++void s3c_camif_clear_irq(int irq)
++{
++}
++#endif
++
++/*************************************************************************
++ * Initialize part
++ ************************************************************************/
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++static int s3c_camif_set_gpio(void)
++{
++ s3c2410_gpio_cfgpin(S3C2440_GPJ0, S3C2440_GPJ0_CAMDATA0);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ1, S3C2440_GPJ1_CAMDATA1);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ2, S3C2440_GPJ2_CAMDATA2);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ3, S3C2440_GPJ3_CAMDATA3);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ4, S3C2440_GPJ4_CAMDATA4);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ5, S3C2440_GPJ5_CAMDATA5);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ6, S3C2440_GPJ6_CAMDATA6);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ7, S3C2440_GPJ7_CAMDATA7);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ8, S3C2440_GPJ8_CAMPCLK);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ9, S3C2440_GPJ9_CAMVSYNC);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ10, S3C2440_GPJ10_CAMHREF);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ11, S3C2440_GPJ11_CAMCLKOUT);
++ s3c2410_gpio_cfgpin(S3C2440_GPJ12, S3C2440_GPJ12_CAMRESET);
++
++ writel(0x1fff, S3C2443_GPJDN);
++
++ return 0;
++}
++#elif defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++static int s3c_camif_set_gpio(void)
++{
++ gpio_set_pin(S3C_GPF5, S3C_GPF5_CAMIF_YDATA0);
++ gpio_set_pin(S3C_GPF6, S3C_GPF6_CAMIF_YDATA1);
++ gpio_set_pin(S3C_GPF7, S3C_GPF7_CAMIF_YDATA2);
++ gpio_set_pin(S3C_GPF8, S3C_GPF8_CAMIF_YDATA03);
++ gpio_set_pin(S3C_GPF9, S3C_GPF9_CAMIF_YDATA4);
++ gpio_set_pin(S3C_GPF10, S3C_GPF10_CAMIF_YDATA5);
++ gpio_set_pin(S3C_GPF11, S3C_GPF11_CAMIF_YDATA06);
++ gpio_set_pin(S3C_GPF12, S3C_GPF12_CAMIF_YDATA7);
++ gpio_set_pin(S3C_GPF2, S3C_GPF2_CAMIF_CLK);
++ gpio_set_pin(S3C_GPF4, S3C_GPF4_CAMIF_VSYNC);
++ gpio_set_pin(S3C_GPF1, S3C_GPF1_CAMIF_HREF);
++ gpio_set_pin(S3C_GPF0, S3C_GPF0_CAMIF_CLK);
++ gpio_set_pin(S3C_GPF3, S3C_GPF3_CAMIF_RST);
++
++ writel(0, S3C_GPFPU);
++
++ return 0;
++}
++#endif
++
++void s3c_camif_reset(int is, int delay)
++{
++ camif_cfg_t *cfg = s3c_camif_get_fimc_object(CODEC_MINOR);
++ unsigned int val;
++ unsigned int tmp;
++
++ switch (is) {
++ case CAMIF_RESET:
++ tmp = readl(cfg->regs + S3C_CISRCFMT);
++
++ if (tmp &= (1 << 31)) {
++ /* ITU-R BT 601 */
++ val = readl(cfg->regs + S3C_CIGCTRL);
++ val |= S3C_CIGCTRL_SWRST;
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ val |= S3C_CIGCTRL_IRQ_LEVEL;
++#endif
++ writel(val, cfg->regs + S3C_CIGCTRL);
++ mdelay(1);
++
++ val = readl(cfg->regs + S3C_CIGCTRL);
++ val &= ~S3C_CIGCTRL_SWRST;
++ writel(val, cfg->regs + S3C_CIGCTRL);
++ } else {
++ /* ITU-R BT 656 */
++ tmp = readl(cfg->regs + S3C_CISRCFMT);
++ tmp |= (1 << 31);
++ writel(tmp, cfg->regs + S3C_CISRCFMT);
++
++ val = readl(cfg->regs + S3C_CIGCTRL);
++ val |= S3C_CIGCTRL_SWRST;
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ val |= S3C_CIGCTRL_IRQ_LEVEL;
++#endif
++ writel(val, cfg->regs + S3C_CIGCTRL);
++ mdelay(1);
++
++ val = readl(cfg->regs + S3C_CIGCTRL);
++ val &= ~S3C_CIGCTRL_SWRST;
++ writel(val, cfg->regs + S3C_CIGCTRL);
++
++ tmp = readl(cfg->regs + S3C_CISRCFMT);
++ tmp &= ~(1 << 31);
++ writel(tmp, cfg->regs + S3C_CISRCFMT);
++ }
++
++ break;
++
++ case CAMIF_EX_RESET_AH:
++ val = readl(cfg->regs + S3C_CIGCTRL);
++ val |= S3C_CIGCTRL_CAMRST;
++ writel(val, cfg->regs + S3C_CIGCTRL);
++ udelay(200);
++
++ val = readl(cfg->regs + S3C_CIGCTRL);
++ val &= ~S3C_CIGCTRL_CAMRST;
++ writel(val, cfg->regs + S3C_CIGCTRL);
++ udelay(delay);
++ break;
++
++ case CAMIF_EX_RESET_AL:
++ val = readl(cfg->regs + S3C_CIGCTRL);
++ val &= ~S3C_CIGCTRL_CAMRST;
++ writel(val, cfg->regs + S3C_CIGCTRL);
++ udelay(200);
++
++ val = readl(cfg->regs + S3C_CIGCTRL);
++ val |= S3C_CIGCTRL_CAMRST;
++ writel(val, cfg->regs + S3C_CIGCTRL);
++ udelay(delay);
++ break;
++
++ default:
++ break;
++ }
++}
++
++void s3c_camif_init(void)
++{
++ s3c_camif_reset(CAMIF_RESET, 0);
++ s3c_camif_set_gpio();
++}
++
+diff --git a/drivers/media/video/s3c_camif.h b/drivers/media/video/s3c_camif.h
+new file mode 100644
+index 0000000..d4e1040
+--- /dev/null
++++ b/drivers/media/video/s3c_camif.h
+@@ -0,0 +1,404 @@
++/* drivers/media/video/s3c_camif.h
++ *
++ * Copyright (c) 2008 Samsung Electronics
++ *
++ * Samsung S3C Camera driver
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ */
++
++#ifndef __S3C_CAMIF_H_
++#define __S3C_CAMIF_H_
++
++#ifdef __KERNEL__
++#include <linux/videodev.h>
++#include <linux/videodev2.h>
++#include <asm/types.h>
++#include <linux/i2c.h>
++#include <linux/video_decoder.h>
++#endif /* __KERNEL__ */
++
++#if !defined(O_NONCAP)
++#define O_NONCAP O_TRUNC
++#endif
++
++#if defined(CAMIF_DEBUG)
++#define DPRINTK(fmt, args...) printk(KERN_DEBUG "%s: " fmt, __FUNCTION__ , ## args)
++#else
++#define DPRINTK(fmt, args...)
++#endif
++
++#if defined(CAMIF_DEBUG)
++#define assert(expr) \
++ if(!(expr)) { \
++ printk( "Assertion failed! %s,%s,%s,line=%d\n", \
++ #expr,__FILE__,__FUNCTION__,__LINE__); \
++ }
++#else
++#define assert(expr)
++#endif
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++#define MEM_SIZE 0x08000000
++#define FIMC_VER "3.0"
++#elif defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++#define MEM_SIZE 0x04000000
++#define FIMC_VER "2.3"
++#else
++#define MEM_SIZE 0x04000000
++#define FIMC_VER "2.x"
++#endif
++
++#undef FSM_ON_PREVIEW
++#define FSM_ON_CODEC
++
++#undef USE_LAST_IRQ /* turn on if pp count is 1 */
++
++#define CODEC_DEV_NAME "CAMIF_CODEC"
++#define PREVIEW_DEV_NAME "CAMIF_PREVIEW"
++
++#define CAMIF_DEV_NUM 2
++#define FIMC_CODEC_INDEX 0
++#define FIMC_PREVIEW_INDEX 1
++
++#define BURST_ERR 1
++#define RESERVED_MEM (15 * 1024 * 1024)
++#define YUV_MEM (10 * 1024 * 1024)
++#define RGB_MEM (RESERVED_MEM - YUV_MEM)
++
++#define CODEC_DEFAULT_WIDTH 640
++#define CODEC_DEFAULT_HEIGHT 480
++#define PREVIEW_DEFAULT_WIDTH 640
++#define PREVIEW_DEFAULT_HEIGHT 480
++
++#define CROP_DEFAULT_WIDTH 352
++#define CROP_DEFAULT_HEIGHT 272
++
++#define CODEC_DEFAULT_PPNUM 4
++#define PREVIEW_DEFAULT_PPNUM 4
++
++#define CODEC_MINOR 12
++#define PREVIEW_MINOR 13
++
++#define CHECK_FREQ 5
++#define INSTANT_SKIP 0
++#define INSTANT_GO 1
++
++#define ZOOM_AT_A_TIME_IN_PIXELS 32
++#define ZOOM_IN_MAX 640
++
++/* Codec or Preview Status */
++#define CAMIF_STARTED (1 << 1)
++#define CAMIF_STOPPED (1 << 2)
++#define CAMIF_INT_HAPPEN (1 << 3)
++
++/* Codec or Preview : Interrupt FSM */
++#define CAMIF_1st_INT (1 << 7)
++#define CAMIF_Xth_INT (1 << 8)
++#define CAMIF_Yth_INT (1 << 9)
++#define CAMIF_Zth_INT (1 << 10)
++#define CAMIF_NORMAL_INT (1 << 11)
++#define CAMIF_DUMMY_INT (1 << 12)
++#define CAMIF_CONTINUOUS_INT (1 << 13)
++#define CAMIF_SET_LAST_INT (1 << 14)
++#define CAMIF_STOP_CAPTURE (1 << 15)
++#define CAMIF_LAST_IRQ (1 << 16)
++#define CAMIF_PENDING_INT 0
++
++#define CAMIF_CAPTURE_SKIP_FRAMES 5
++
++/* CAMIF RESET Definition */
++#define CAMIF_RESET (1 << 0)
++#define CAMIF_EX_RESET_AL (1 << 1) /* Active Low */
++#define CAMIF_EX_RESET_AH (1 << 2) /* Active High */
++
++#define USER_EXIT (1 << 2)
++#define USER_ADD (1 << 1)
++#define SENSOR_INIT (1 << 0)
++
++#define SENSOR_MAX 255
++#define SENSOR_QSXGA_MT9P012 (1 << 13)
++#define SENSOR_QSVGA (1 << 12)
++#define SENSOR_UXGA (1 << 11)
++#define SENSOR_SVGA (1 << 10)
++#define SENSOR_SXGA_MT9P012 (1 << 5)
++#define SENSOR_SXGA (1 << 4)
++#define SENSOR_VGA (1 << 3)
++#define SENSOR_DEFAULT 0
++
++#define SENSOR_WB (1 << 9)
++#define SENSOR_AF (1 << 8)
++#define SENSOR_MIRROR (1 << 7)
++#define SENSOR_ZOOMOUT (1 << 6)
++#define SENSOR_ZOOMIN (1 << 5)
++
++/* Global Status Definition */
++#define PWANT2START (1 << 0)
++#define CWANT2START (1 << 1)
++#define BOTH_STARTED (PWANT2START | CWANT2START)
++#define P_NOT_WORKING (1 << 4)
++#define C_WORKING (1 << 5)
++#define P_WORKING (1 << 6)
++#define C_NOT_WORKING (1 << 7)
++
++#define FORMAT_FLAGS_DITHER 0x01
++#define FORMAT_FLAGS_PACKED 0x02
++#define FORMAT_FLAGS_PLANAR 0x04
++#define FORMAT_FLAGS_RAW 0x08
++#define FORMAT_FLAGS_CrCb 0x10
++
++enum camif_itu_fmt {
++ CAMIF_ITU601 = (1 << 31),
++ CAMIF_ITU656 = 0,
++};
++
++/* It is possbie to use two device simultaneously */
++enum camif_dma_type {
++ CAMIF_PREVIEW = (1 << 0),
++ CAMIF_CODEC = (1 << 1),
++};
++
++enum camif_order422 {
++ CAMIF_YCBYCR = 0,
++ CAMIF_YCRYCB = (1 << 14),
++ CAMIF_CBYCRY = (1 << 15),
++ CAMIF_CRYCBY = (1 << 15) | (1 << 14),
++};
++
++enum flip_mode {
++ CAMIF_FLIP = 0,
++ CAMIF_ROTATE_90 = (1 << 13),
++ CAMIF_FLIP_X = (1 << 14),
++ CAMIF_FLIP_Y = (1 << 15),
++ CAMIF_FLIP_MIRROR = (1 << 15) | (1 << 14),
++ CAMIF_FLIP_ROTATE_270 = (1 << 15) | (1 << 14) | (1 << 13),
++};
++
++enum camif_fmt {
++ CAMIF_YCBCR420 = (1 << 0),
++ CAMIF_YCBCR422 = (1 << 1),
++ CAMIF_YCBCR422I = (1 << 2),
++ CAMIF_RGB16 = (1 << 3),
++ CAMIF_RGB24 = (1 << 4),
++ CAMIF_RGB32 = (1 << 5),
++};
++
++enum camif_capturing {
++ CAMIF_BOTH_DMA_ON = (1 << 4),
++ CAMIF_DMA_ON = (1 << 3),
++ CAMIF_BOTH_DMA_OFF = (1 << 1),
++ CAMIF_DMA_OFF = (1 << 0),
++ CAMIF_DMA_OFF_L_IRQ = (1 << 5),
++};
++
++enum image_effect {
++ CAMIF_BYPASS,
++ CAMIF_ARBITRARY_CB_CR,
++ CAMIF_NEGATIVE,
++ CAMIF_ART_FREEZE,
++ CAMIF_EMBOSSING ,
++ CAMIF_SILHOUETTE,
++};
++
++enum input_channel{
++ CAMERA_INPUT,
++ MSDMA_FROM_CODEC,
++ MSDMA_FROM_PREVIEW,
++};
++
++enum output_channel{
++ CAMIF_OUT_PP,
++ CAMIF_OUT_FIFO,
++};
++
++typedef struct camif_performance
++{
++ int frames;
++ int framesdropped;
++ __u64 bytesin;
++ __u64 bytesout;
++ __u32 reserved[4];
++} camif_perf_t;
++
++typedef struct {
++ dma_addr_t phys_y;
++ dma_addr_t phys_cb;
++ dma_addr_t phys_cr;
++ u8 *virt_y;
++ u8 *virt_cb;
++ u8 *virt_cr;
++ dma_addr_t phys_rgb;
++ u8 *virt_rgb;
++} img_buf_t;
++
++/* this structure convers the CIWDOFFST, prescaler, mainscaler */
++typedef struct {
++ u32 modified_src_x; /* After windows applyed to source_x */
++ u32 modified_src_y;
++ u32 hfactor;
++ u32 vfactor;
++ u32 shfactor; /* SHfactor = 10 - ( hfactor + vfactor ) */
++ u32 prehratio;
++ u32 prevratio;
++ u32 predst_x;
++ u32 predst_y;
++ u32 scaleup_h;
++ u32 scaleup_v;
++ u32 mainhratio;
++ u32 mainvratio;
++ u32 scalerbypass; /* only codec */
++ u32 zoom_in_cnt;
++} scaler_t;
++
++enum v4l2_status {
++ CAMIF_V4L2_INIT = (1 << 0),
++ CAMIF_v4L2_DIRTY = (1 << 1),
++};
++
++typedef struct {
++ struct mutex lock;
++ enum camif_itu_fmt itu_fmt;
++ enum camif_order422 order422;
++ struct i2c_client *sensor;
++ u32 win_hor_ofst;
++ u32 win_ver_ofst;
++ u32 win_hor_ofst2;
++ u32 win_ver_ofst2;
++ u32 camclk; /* External Image Sensor Camera Clock */
++ u32 source_x;
++ u32 source_y;
++ u32 polarity_pclk;
++ u32 polarity_vsync;
++ u32 polarity_href;
++ u32 user; /* MAX 2 (codec, preview) */
++ u32 irq_old_priority; /* BUS PRIORITY register */
++ u32 status;
++ u32 init_sensor; /* initializing sensor */
++ u32 reset_type; /* External Sensor Reset Type */
++ u32 reset_udelay;
++ u32 zoom_in_cnt;
++} camif_cis_t;
++
++/* when App want to change v4l2 parameter,
++ * we instantly store it into v4l2_t v2
++ * and then reflect it to hardware
++ */
++typedef struct v4l2 {
++ struct v4l2_fmtdesc *fmtdesc;
++ struct v4l2_framebuffer frmbuf; /* current frame buffer */
++ struct v4l2_input *input;
++ struct v4l2_output *output;
++ enum v4l2_status status;
++
++ /* crop */
++ struct v4l2_rect crop_bounds;
++ struct v4l2_rect crop_defrect;
++ struct v4l2_rect crop_current;
++
++} v4l2_t;
++
++
++typedef struct camif_c_t {
++ struct video_device *v;
++
++ /* V4L2 param only for v4l2 driver */
++ v4l2_t v2;
++ camif_cis_t *cis; /* Common between Codec and Preview */
++
++ /* logical parameter */
++ wait_queue_head_t waitq;
++ u32 status; /* Start/Stop */
++ u32 fsm; /* Start/Stop */
++ u32 open_count; /* duplicated */
++ int irq;
++ char shortname[16];
++ u32 target_x;
++ u32 target_y;
++ scaler_t sc;
++ enum flip_mode flip;
++ enum image_effect effect;
++ enum camif_dma_type dma_type;
++
++ /* 4 pingpong Frame memory */
++ u8 *pp_virt_buf;
++ dma_addr_t pp_phys_buf;
++ u32 pp_totalsize;
++ u32 pp_num; /* used pingpong memory number */
++ img_buf_t img_buf[4];
++ enum camif_fmt src_fmt;
++ enum camif_fmt dst_fmt;
++ enum camif_capturing capture_enable;
++ camif_perf_t perf;
++ u32 cur_frame_num;
++ u32 auto_restart; /* Only For Preview */
++ int input_channel;
++ int output_channel;
++ int buffer_size;
++ void *other; /* other camif_cfg_t */
++ u32 msdma_status; /* 0 : stop, 1 : start */
++ void __iomem *regs;
++} camif_cfg_t;
++
++/* Test Application Usage */
++typedef struct {
++ int src_x;
++ int src_y;
++ int dst_x;
++ int dst_y;
++ int src_fmt;
++ int dst_fmt;
++ int flip;
++ int awb;
++ int effect;
++ int input_channel;
++ int output_channel;
++ unsigned int h_offset;
++ unsigned int v_offset;
++ unsigned int h_offset2;
++ unsigned int v_offset2;
++} camif_param_t;
++
++/* Externs */
++extern camif_cfg_t* s3c_camif_get_fimc_object(int);
++extern int s3c_camif_start_dma(camif_cfg_t *);
++extern int s3c_camif_stop_dma(camif_cfg_t *);
++extern int s3c_camif_get_frame_num(camif_cfg_t *);
++extern unsigned char* s3c_camif_get_frame(camif_cfg_t *);
++extern int s3c_camif_control_fimc(camif_cfg_t *);
++extern void s3c_camif_reset(int, int);
++extern void s3c_camif_init(void);
++extern int s3c_camif_get_fifo_status(camif_cfg_t *);
++extern void s3c_camif_enable_lastirq(camif_cfg_t *);
++extern void s3c_camif_disable_lastirq(camif_cfg_t *);
++extern void s3c_camif_change_flip(camif_cfg_t *);
++extern void s3c_camif_change_effect(camif_cfg_t *);
++extern int s3c_camif_start_codec_msdma(camif_cfg_t *);
++extern int s3c_camif_set_clock(unsigned int camclk);
++extern void s3c_camif_disable_clock(void);
++extern int s3c_camif_start_preview_msdma(camif_cfg_t *);
++extern camif_cis_t* get_initialized_cis(void);
++extern void s3c_camif_clear_irq(int);
++extern int s3c_camif_set_source_format(camif_cis_t *);
++extern void s3c_camif_register_sensor(struct i2c_client *);
++extern void s3c_camif_unregister_sensor(struct i2c_client*);
++extern int s3c_camif_setup_dma(camif_cfg_t *);
++extern void s3c_camif_init_sensor(camif_cfg_t *);
++extern int s3c_camif_set_offset(camif_cis_t *);
++extern void s3c_camif_set_priority(int);
++extern void s3c_camif_open_sensor(camif_cis_t *);
++extern void s3c_camif_set_polarity(camif_cfg_t *cfg);
++
++#endif
++
+diff --git a/drivers/media/video/samsung/3xa_sensor.c b/drivers/media/video/samsung/3xa_sensor.c
+new file mode 100644
+index 0000000..4469317
+--- /dev/null
++++ b/drivers/media/video/samsung/3xa_sensor.c
+@@ -0,0 +1,442 @@
++/*
++ * Copyright (C) 2004 Samsung Electronics
++ * SW.LEE <hitchcar@samsung.com>
++ * - based on Russell King : pcf8583.c
++ * - added smdk24a0, smdk2440
++ * - added poseidon (s3c24a0+wavecom)
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * Driver for FIMC2.x Camera Decoder
++ *
++ */
++
++//#include <linux/config.h>
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/i2c.h>
++#include <linux/i2c-id.h>
++#include <linux/slab.h>
++#include <linux/string.h>
++#include <linux/init.h>
++#include <linux/delay.h>
++
++//#define CAMIF_DEBUG
++
++//#include <asm/arch/registers.h>
++#include "../s3c_camif.h"
++#include "3xa_sensor.h"
++
++static struct i2c_driver sensor_driver;
++
++/* This is an abstract CIS sensor for MSDMA input. */
++
++camif_cis_t msdma_input = {
++ itu_fmt: CAMIF_ITU601,
++ order422: CAMIF_YCBYCR, /* YCRYCB */
++ camclk: 32000000, /* No effect */
++ source_x: 800,
++ source_y: 480,
++ win_hor_ofst: 0,
++ win_ver_ofst: 0,
++ win_hor_ofst2: 0,
++ win_ver_ofst2: 0,
++ polarity_pclk: 0,
++ polarity_vsync:1,
++ polarity_href: 0,
++ reset_type:CAMIF_EX_RESET_AH, /* Ref board has inverted signal */
++ reset_udelay: 20000,
++};
++
++camif_cis_t interlace_input = {
++ itu_fmt: CAMIF_ITU601,
++ order422: CAMIF_YCBYCR, /* YCRYCB */
++ camclk: 32000000, /* No effect */
++ source_x: 720,
++ source_y: 243,
++ win_hor_ofst: 0,
++ win_ver_ofst: 0,
++ win_hor_ofst2: 0,
++ win_ver_ofst2: 0,
++ polarity_pclk: 1,
++ polarity_vsync:0,
++ polarity_href: 0,
++ reset_type:CAMIF_EX_RESET_AH, /* Ref board has inverted signal */
++ reset_udelay: 20000,
++};
++
++#if defined(CONFIG_VIDEO_SAMSUNG_S5K3AA)
++/* This is SXGA(1280x1024) camera but start from VGA(640x480) mode */
++static camif_cis_t data = {
++ itu_fmt: CAMIF_ITU601,
++ order422: CAMIF_CBYCRY, /* YCRYCB */
++ camclk: 48000000, /* No effect */
++ source_x: 640,
++ source_y: 480,
++ win_hor_ofst: 112,
++ win_ver_ofst: 72,
++ win_hor_ofst2: 112,
++ win_ver_ofst2: 72,
++ polarity_pclk: 1,
++ polarity_vsync:0,
++ polarity_href: 0,
++
++#ifdef CONFIG_CPU_S3C24A0A
++ reset_type:CAMIF_EX_RESET_AL, /* Active Low */
++#else
++ reset_type:CAMIF_EX_RESET_AH, /* Ref board has inverted signal */
++#endif
++ reset_udelay: 1000,
++};
++
++s5k3xa_t s5k3aa_regs_mirror[S5K3AA_REGS];
++
++#elif defined(CONFIG_VIDEO_SAMSUNG_S5K3BA)
++/* This is UXGA(1600x1200) camera but start from SVGA(800x600) mode */
++static camif_cis_t data = {
++ itu_fmt: CAMIF_ITU601,
++ order422: CAMIF_YCBYCR, /* YCRYCB */
++ camclk: 19000000,
++ source_x: 640,
++ source_y: 480,
++ win_hor_ofst: 0,
++ win_ver_ofst: 0,
++ win_hor_ofst2: 0,
++ win_ver_ofst2: 0,
++ polarity_pclk: 1,
++ polarity_vsync:1,
++ polarity_href: 0,
++ reset_type: CAMIF_EX_RESET_AL, /* Ref board has inverted signal */
++ reset_udelay: 1000,
++};
++
++s5k3xa_t s5k3ba_regs_mirror[S5K3BA_REGS];
++#else
++#error No samsung CIS moudule here !
++#endif
++
++camif_cis_t* get_initialized_cis(void)
++{
++ if(data.init_sensor == 0) return NULL;
++ return &data;
++}
++
++#define CAM_ID 0x5a
++
++static unsigned short ignore[] = { I2C_CLIENT_END };
++static unsigned short normal_addr[] = { (CAM_ID >> 1), I2C_CLIENT_END };
++static unsigned short *forces[] = { NULL };
++
++static struct i2c_client_address_data addr_data = {
++ normal_i2c:normal_addr,
++ //normal_i2c_range:ignore,
++ probe:ignore,
++ //probe_range:ignore,
++ ignore:ignore,
++ //ignore_range:ignore,
++ forces:forces,
++};
++
++
++unsigned char sensor_read(struct i2c_client *client, unsigned char subaddr)
++{
++ int ret;
++ unsigned char buf[1];
++ struct i2c_msg msg = { client->addr, 0, 1, buf };
++ buf[0] = subaddr;
++
++ ret = i2c_transfer(client->adapter, &msg, 1) == 1 ? 0 : -EIO;
++ if (ret == -EIO) {
++ printk(" I2C write Error \n");
++ return -EIO;
++ }
++
++ msg.flags = I2C_M_RD;
++ ret = i2c_transfer(client->adapter, &msg, 1) == 1 ? 0 : -EIO;
++
++ return buf[0];
++}
++
++
++static int
++sensor_write(struct i2c_client *client,
++ unsigned char subaddr, unsigned char val)
++{
++ unsigned char buf[2];
++ struct i2c_msg msg = { client->addr, 0, 2, buf };
++
++ buf[0] = subaddr;
++ buf[1] = val;
++
++ return i2c_transfer(client->adapter, &msg, 1) == 1 ? 0 : -EIO;
++}
++
++#if defined(CONFIG_VIDEO_SAMSUNG_S5K3AA)
++void inline sensor_init(struct i2c_client *sam_client)
++{
++ int i;
++ i = (sizeof(s5k3aa_reg)/sizeof(s5k3aa_reg[0]));
++
++ for (i = 0; i < S5K3AA_INIT_REGS; i++) {
++ sensor_write(sam_client,
++ s5k3aa_reg[i].subaddr, s5k3aa_reg[i].value);
++#if 0
++ printk(KERN_ERR "Page:[%03d] Subaddr %02x = 0x%02x\n",i,
++ s5k3aa_reg[i].subaddr,
++ s5k3aa_reg[i].value);
++#endif
++ }
++
++#ifdef YOU_WANT_TO_CHECK_IMG_SENSOR
++ for (i = 0; i < S5K3AA_INIT_REGS; i++) {
++ if (s5k3aa_reg[i].subaddr == PAGE_ADDRESS) {
++ sensor_write(sam_client,
++ s5k3aa_reg[i].subaddr,
++ s5k3aa_reg[i].value);
++
++ printk(KERN_ERR "Page: Subaddr %02x = 0x%02x\n",
++ s5k3aa_reg[i].subaddr,
++ s5k3aa_reg[i].value);
++
++
++ } else {
++ s5k3aa_regs_mirror[i].subaddr =
++ s5k3aa_reg[i].subaddr;
++ s5k3aa_regs_mirror[i].value =
++ s5k3aa_read(sam_client, s5k3aa_reg[i].subaddr);
++ printk(KERN_ERR "Subaddr %02x = 0x%02x\n",
++ s5k3aa_reg[i].subaddr,
++ s5k3aa_regs_mirror[i].value);
++ }
++ }
++#endif
++}
++
++#elif defined(CONFIG_VIDEO_SAMSUNG_S5K3BA)
++void inline sensor_init(struct i2c_client *sam_client)
++{
++ int i;
++ i = (sizeof(s5k3ba_reg)/sizeof(s5k3ba_reg[0]));
++
++ for (i = 0; i < S5K3BA_INIT_REGS; i++) {
++ sensor_write(sam_client,
++ s5k3ba_reg[i].subaddr, s5k3ba_reg[i].value);
++ }
++}
++#else
++#error No samsung CIS moudule !
++#endif
++
++static int
++s5k3xa_attach(struct i2c_adapter *adap, int addr, int kind)
++{
++ struct i2c_client *c;
++
++ c = kmalloc(sizeof(*c), GFP_KERNEL);
++ if (!c)
++ return -ENOMEM;
++
++ memset(c, 0, sizeof(struct i2c_client));
++
++ strcpy(c->name, "S5K3XA");
++ c->addr = addr;
++ c->adapter = adap;
++ c->driver = &sensor_driver;
++ c->data = &data;
++ data.sensor = c;
++
++ s3c_camif_register_sensor(c);
++
++ return i2c_attach_client(c);
++}
++
++static int sensor_attach_adapter(struct i2c_adapter *adap)
++{
++ s3c_camif_open_sensor(&data);
++
++ return i2c_probe(adap, &addr_data, s5k3xa_attach);
++}
++
++static int sensor_detach(struct i2c_client *client)
++{
++ i2c_detach_client(client);
++ s3c_camif_unregister_sensor(client);
++ return 0;
++}
++
++/* Purpose:
++ This fucntion only for SXGA Camera : 3AA
++ This fucntion only for UXGA Camera : 3BA
++*/
++static int change_sensor_size(struct i2c_client *client, int size)
++{
++ int i;
++
++ switch (size) {
++#if defined(CONFIG_VIDEO_SAMSUNG_S5K3AA)
++ case SENSOR_VGA:
++ for (i = 0; i < S5K3AA_VGA_REGS; i++) {
++ sensor_write(client, s5k3aa_reg_vga[i].subaddr,
++ s5k3aa_reg_vga[i].value);
++ }
++ break;
++ case SENSOR_SXGA:
++ for (i = 0; i < S5K3AA_SXGA_REGS; i++) {
++ sensor_write(client, s5k3aa_reg_sxga[i].subaddr,
++ s5k3aa_reg_sxga[i].value);
++ }
++ break;
++
++#elif defined(CONFIG_VIDEO_SAMSUNG_S5K3BA)
++ case SENSOR_VGA:
++ for (i = 0; i < S5K3BA_VGA_REGS; i++) {
++ sensor_write(client, s5k3ba_reg_vga[i].subaddr,
++ s5k3ba_reg_vga[i].value);
++ }
++ break;
++
++ case SENSOR_SVGA:
++ for (i = 0; i < S5K3BA_INIT_REGS; i++) {
++ sensor_write(client, s5k3ba_reg[i].subaddr,
++ s5k3ba_reg[i].value);
++ }
++ break;
++ case SENSOR_UXGA:
++ for (i = 0; i < S5K3BA_UXGA_REGS; i++) {
++ sensor_write(client, s5k3ba_reg_uxga[i].subaddr,
++ s5k3ba_reg_uxga[i].value);
++ }
++ break;
++#else
++#error No samsung CIS moudule !
++#endif
++ default:
++ panic("3xa_sensor.c: unexpect value \n");
++ }
++
++ return 0;
++}
++
++static int change_sensor_wb(struct i2c_client *client, int type)
++{
++ printk("[ *** Page 0, 3XA Sensor White Balance Mode ***]\n");
++
++#if defined(CONFIG_VIDEO_SAMSUNG_S5K3AA)
++ sensor_write(client, 0xEC, 0x0);
++ sensor_write(client, 0x30, type);
++#elif defined(CONFIG_VIDEO_SAMSUNG_S5K3BA)
++ sensor_write(client, 0xFC, 0x0);
++ sensor_write(client, 0x30, type);
++#endif
++
++ switch(type){
++ case 0:
++ default:
++ printk(" -> AWB auto mode ]\n");
++ break;
++ case 1:
++ printk(" -> Indoor 3100 mode ]\n");
++ break;
++ case 2:
++ printk(" -> Outdoor 5100 mode ]\n");
++ break;
++ case 3:
++ printk(" -> Indoor 2000 mode ]\n");
++ break;
++ case 4:
++ printk(" -> AE/AWB halt ]\n");
++ break;
++ case 5:
++ printk(" -> Cloudy(6000) mode ]\n");
++ break;
++ case 6:
++ printk(" -> Sunny(8000) mode ]\n");
++ break;
++ }
++
++ return 0;
++}
++
++static int
++sensor_command(struct i2c_client *client, unsigned int cmd, void *arg)
++{
++ switch (cmd) {
++ case SENSOR_INIT:
++ sensor_init(client);
++ printk(KERN_INFO "External Camera initialized\n");
++ break;
++
++ case USER_ADD:
++ //MOD_INC_USE_COUNT;
++ break;
++
++ case USER_EXIT:
++ //MOD_DEC_USE_COUNT;
++ break;
++
++ case SENSOR_VGA:
++ change_sensor_size(client, SENSOR_VGA);
++ break;
++
++ case SENSOR_SVGA:
++ change_sensor_size(client, SENSOR_SVGA);
++ break;
++
++ case SENSOR_SXGA:
++ change_sensor_size(client, SENSOR_SXGA);
++ break;
++
++ case SENSOR_UXGA:
++ change_sensor_size(client, SENSOR_UXGA);
++ break;
++/* Todo
++ case SENSOR_BRIGHTNESS:
++ change_sensor_setting();
++ break;
++*/
++ case SENSOR_WB:
++ printk("[ *** 3XA Sensor White Balance , No mode ***]\n");
++ change_sensor_wb(client, (int) arg);
++ break;
++
++ default:
++ panic("3xa_sensor.c : Unexpect Sensor Command \n");
++ break;
++ }
++
++ return 0;
++}
++
++static struct i2c_driver sensor_driver = {
++ .driver = {
++ .name = "s5k3xa",
++ },
++ //name:"S5K3XA",
++ .id = I2C_DRIVERID_S5K3XA,
++ //flags:I2C_DF_NOTIFY,
++ .attach_adapter = sensor_attach_adapter,
++ .detach_client = sensor_detach,
++ .command = sensor_command
++};
++
++static __init int camif_sensor_init(void)
++{
++ return i2c_add_driver(&sensor_driver);
++}
++
++
++static __init void camif_sensor_exit(void)
++{
++ i2c_del_driver(&sensor_driver);
++}
++
++module_init(camif_sensor_init)
++module_exit(camif_sensor_exit)
++
++MODULE_AUTHOR("Yeom, Youngran <yeom@samsung.com>");
++MODULE_DESCRIPTION("I2C Client Driver For Fimc3.x V4L2 Driver");
++MODULE_LICENSE("GPL");
++
+diff --git a/drivers/media/video/samsung/3xa_sensor.h b/drivers/media/video/samsung/3xa_sensor.h
+new file mode 100644
+index 0000000..cfe6501
+--- /dev/null
++++ b/drivers/media/video/samsung/3xa_sensor.h
+@@ -0,0 +1,3298 @@
++
++#ifndef _SAMSUNG_SXGA_H_
++#define _SAMSUNG_SXGA_H_
++
++/*******************************************************************************************
++ # Display resolution standards #
++
++ QCIF: 176 x 144
++ CIF: 352 x 288
++ QVGA: 320 x 240
++ VGA: 640 x 480
++ SVGA: 800 x 600
++ XGA: 1024 x 768
++ WXGA: 1280 x 800
++ QVGA: 1280 x 960
++ SXGA: 1280 x 1024
++ SXGA+: 1400 x 1050
++ WSXGA+: 1680 x 1050
++ UXGA: 1600 x 1200
++ WUXGA: 1920 x 1200
++ QXGA: 2048 x 1536
++********************************************************************************************/
++
++//#include "../bits.h"
++
++/* Camera information
++ * FPC Label : Samsung MEGA Pixel Camera : V4220 REV06
++ * Modified by charles -Initial function of '3AA' test routine
++ * Modified and tested by YongHwui.Kim <yonghwui.kim@samsung.com> for S5K3AAEX Camera
++ */
++
++#define CHIP_DELAY 0xFF
++
++typedef struct samsung_t{
++ unsigned char subaddr;
++ unsigned char value;
++ unsigned char page;
++} s5k3xa_t;
++
++#ifdef CONFIG_CPU_S3C24A0A
++#define TRY_HIGH_CLOCK 1
++#endif
++
++ //***************************************************
++ // name: S5K3AAEX EVT2 setfile
++ // ver: v2.61
++ // history:
++ // v0.0 start from 040908 setfile
++ // v1.0 arange register
++ // v1.01 change MCLK(25Mhz) and Frame rate(7fps)
++ // v2.0 adjust register setting for 3AA EVT2
++ // - color correction, RGB shding off, hsync start position, Mirror, fps
++ // - Color Tuning, YGRPDLY
++ // v2.1 change Frame rate(7.5fps) and Total gain to x4
++ // (because of reducing visual noise at low illumination)
++ // - change BPRM AGC Max and FrameAE start
++ // improve AE speed
++ // v2.2 modify AWB G gain and solve 50hz flicker detection fail in 25MHz 7.5fps
++ // v2.3 Adjust gamma, Dark Slice, white point, Hue gain,
++ // White Balance B control, Y gain On, Digital Clamp On
++ // lower AWB G gain
++ // v2.4 Adjust AE window weight, Y Gamma, WhitePoint, Shading and BPR Max Thres.
++ // v2.41 Adjust AE/AWB window and AWB internal window boundary to decrease skin color tracking
++ // v2.411 special version for PSCDS
++ // v2.412 RGB shading off
++ // v2.5 Lens change STW to Sekonix
++ // adjust White point and Y shading Coef (RGB shading off)
++ // v2.6 New Tuning because of Full YC off and YCbCr Coef change
++ // Gamma, Dark Slice, color matrix (not use), Color suppress
++ // R Gain and DBPR agc MIN/MAX
++ // v2.61 VCK inversion(data rising)
++ //***************************************************
++ ///////////////////////////////////////////////////
++
++#if defined(CONFIG_VIDEO_SAMSUNG_S5K3AA) // page 0
++// VGA : 640 x 480
++s5k3xa_t s5k3aa_reg[] =
++{
++#if 0
++{0xec,0x00},
++{0x02,0x01}, /* 0x0 : SXGA, 0x01 : VGA, 0x02:QVGA */
++{0x72,0xF0}, //MCLK is 48MHz
++{0x74,0x08}, //50Hz Flicker avoidance
++{0x76,0xb0}, //brightness
++{0x77,0xd0}, //color
++{0x79,0x05}, //brightness
++{0x7a,0x03}, //color
++
++{0xec,0x01},
++{0x8b,0x03},
++#else // Mirror
++ {0xec,0x00},
++ {0x23,0x52}, // RV/H Control
++ {0xec,0x06},
++ {0x8c,0x0b}, // in case of wrp wcp control for mirror
++ {0x8d,0x0c},
++ {0x8e,0x0b},
++ {0x8f,0x0c},
++
++ {0xec,0x00},
++ {0x34,0x0e}, // AWB Tracking Boundary Constant R_Limit High
++ /////////////////////////////
++ // Color Tunning
++
++ //White Point
++ {0x40,0x18}, //1c //18
++ {0x41,0x4b}, //4a //41 //4a
++ {0x42,0x1e}, //23 //1e
++ {0x43,0x3c}, //39 //33 //3b
++ {0x44,0x2a}, //29 //2a //2e //2b
++ {0x45,0x2e}, //2b //2c //2b //25 //2d
++
++ //Hue, Gain control
++ {0x48,0xf8}, //f0 //c0 //fe
++ {0x49,0xfe},
++ {0x4a,0x32}, //28 //03 //01
++ {0x4b,0x40},
++ {0x4c,0xfe},
++ {0x4d,0xfe},
++ {0x4e,0x50}, //0e
++ {0x4f,0x08}, //10 //d0 //10 //02
++
++ {0x50,0xf0}, //e0 //a4 //aa //e0
++ {0x51,0xfe}, //fe
++ {0x52,0x42}, //40 //28 //01
++ {0x53,0x40}, //3e
++ {0x54,0xfe},
++ {0x55,0xfe}, //fc //fe
++ {0x56,0x2a}, //6a //2e
++ {0x57,0x20}, //18 //30 //1a //32
++
++ {0x58,0xda}, //ea //ca //a4 //aa //c6
++ {0x59,0xfe}, //ec //fa
++ {0x5a,0x54}, //44 //4a //20 //30 //35 //30
++ {0x5b,0x28}, //38 //20 //1a //32
++ {0x5c,0xfe},
++ {0x5d,0xfe},
++ {0x5e,0x4a}, //7e //7a
++ {0x5f,0x20}, //40 //18 //08 //20 //30 //3a //2a //42
++
++ {0x6c,0x10}, // AE Target
++ {0x77,0xea}, // Color Gain
++ {0x79,0xfe}, // White balance R control
++ {0x7a,0x01}, // White balance B control
++ {0x83,0xc0}, // Color suppress
++ //s8a04 // unstable diff
++
++ ///////////////////////////////////////////////////
++ // page 1
++ {0xec,0x01},
++ {0x8b,0x21}, //V Output Sync inversion, Full_YC off,SCK656_INV_R
++ {0x6a,0x07}, //Y,Cr first ITU R-601 format
++
++ {0xec,0x03},
++ {0x06,0x07},
++
++ {0xec,0x04},
++ {0x06,0x07},
++
++ {0xec,0x01},
++ {0x2d,0x15}, //Adjust YGRPDLY 3clk->0clk
++
++ /// Color Matrix
++ //s107e
++ //s12fe
++ //s187e //a0
++
++ {0x1c,0xd0}, // Highlight Suppress Reference
++ /////////////////////////////
++ // gamma : 1.800000
++ //Y Gamma
++ {0x2e,0x08},
++ {0x2f,0x18},
++ {0x30,0x26},
++ {0x31,0x70}, //60
++ {0x32,0xf0}, //e0
++ {0x33,0x94}, //90
++ {0x34,0x70}, //b0
++ {0x35,0xbc}, //80
++ {0x36,0x00},
++ {0x37,0x1b},
++
++ // Dark Slice
++ //s4018 // Black Balance Red
++ //s4118 //fe // Black Balance Blue
++ //s4211 //fa // Black Balance Green
++
++ {0x41,0xfe}, // Black Balance Blue
++ {0x42,0xfa}, // Black Balance Green
++
++ {0x48,0xee}, // YCrCb Coef
++ {0x49,0xf7},
++
++ //C Gamma
++ {0x55,0x08}, //08
++ {0x56,0x18}, //18
++ {0x57,0x26}, //26
++ {0x58,0x60}, //70 //60
++ {0x59,0xf0}, //e0
++ {0x5a,0xa9}, //94 //90
++ {0x5b,0x60}, //3b //70 //7b //b0
++ {0x5c,0x50}, //96 //bc //5a //80
++ {0x5d,0x00}, //00
++ {0x5e,0x1b}, //1b
++
++ {0x69,0x0f}, // VCK inversion(data rising)
++ {0xec,0x03},
++ {0x05,0x0f},
++ {0xec,0x04},
++ {0x05,0x0f},
++
++ {0xec,0x01},
++ //adjust AE window
++ {0x97,0x18},
++ {0x9a,0xe0},
++ {0x9c,0x20},
++ {0x9e,0xe8},
++
++ {0xec,0x06},
++ {0x00,0x18},
++ {0x02,0xe0},
++ {0x04,0x20},
++ {0x06,0xe8},
++
++ //adjust AWB window
++ {0xec,0x01},
++ {0xa0,0x5a},
++ {0xa2,0xd8},
++ {0xa4,0x33},
++ {0xa6,0xba},
++
++ {0xec,0x06},
++ {0x08,0x5a},
++ {0x0a,0xd8},
++ {0x0c,0x33},
++ {0x0e,0xba},
++
++ {0xec,0x01},
++ {0xaa,0xe0}, // For AWB, High Threshold Value of Y signal
++ {0xab,0x30}, // For AWB, Low Threshold Value of Y signal
++
++ /// Pixel Filter
++ {0xac,0x80}, // AWB B-G Low Threshold
++ {0xad,0x80}, // AWB B-G High Threshold
++ {0xae,0x80}, // AWB R-G Low Threshold
++ {0xaf,0x80}, // AWB R-G Low Threshold
++ {0xb0,0x60}, // AWB R-G,B-G High Threshold
++ {0xb1,0x80}, // AWB R-G,B-G Low Threshold
++
++ ///////////////////////////////////////////////////
++ //// page 2
++ {0xec,0x02},
++ {0x05,0x0b},
++ {0x07,0x0b},
++ //s1f13 //Adjust Global Gain for 20Mhz
++ {0x26,0x86}, //ADLC Set
++ {0x2d,0x00}, //APS Bias Current 6uA ---> 1uA for SHBN & HN reduce
++ {0x2e,0x50}, //Ramp Gain
++ {0x2f,0x30}, //Ramp Bias Current for SHBN reduce
++ {0x30,0x05}, //for reducing noise... switch cap
++
++ ///////////////////////////////////////////////////
++ //// page 5
++ // Shading
++ {0xec,0x05},
++ {0x00,0x0d}, // Shading Old(Y shading) ON & Shading New(RGB Shading) OFF
++ //s000f // Shading Old(Y shading) & Shading New(RGB Shading)
++
++ ///RGB Shading
++ {0x05,0x05}, // R Shading of RGB Shading
++ {0x06,0x05},
++ {0x07,0x05},
++ {0x08,0x05},
++ {0x09,0x00}, // GR Shading of RGB Shading
++ {0x0a,0x00},
++ {0x0b,0x00},
++ {0x0c,0x00},
++ {0x0d,0x00}, // GB Shading of RGB Shading
++ {0x0e,0x00},
++ {0x0f,0x00},
++ {0x10,0x00},
++ {0x11,0x00}, // B Shading of RGB Shading
++ {0x12,0x00},
++ {0x13,0x00},
++ {0x14,0x00},
++
++ /// Y Shading
++ {0x2d,0xd0}, //e0 //d6 //e0
++ {0x2e,0xb0}, //c0 //aa //c0
++ {0x2f,0xa0}, //95 //a0
++ {0x30,0x88}, //86 //88 //80
++ {0x31,0x88}, //86 //88 //80
++ {0x32,0xa0}, //95 //a0
++ {0x33,0xb0}, //c0 //aa //c0
++ {0x34,0xd0}, //e0 //d6 //e0
++
++ {0x35,0xd0}, //e0
++ {0x36,0xb0}, //ba //a6
++ {0x37,0x98}, //94 //90
++ {0x38,0x88}, //80
++ {0x39,0x88}, //80
++ {0x3a,0x98}, //94 //90
++ {0x3b,0xb0}, //ba //a6
++ {0x3c,0xd0}, //e0
++
++ ////////////////////////////////////////////////
++ // page 7
++ {0xec,0x07},
++ {0x11,0xfe}, // GGain_Offset
++ {0x17,0x40}, // lower AWB Ggain because G is stronger than R/B
++ //s1742 // modify AWB Ggain to make <1.46> =0x40(x1)
++
++ {0x3c,0x00}, //adjust AWB internal window boundary to decrease skin color tracking
++
++ // to dectect 50Hz flicker in 25Mhz 7.5fps
++ {0x60,0x10}, // adjust flicker thres
++ {0x62,0x11}, // adjust edge detection boundary
++ {0x63,0x04},
++
++ {0x69,0x10}, // for mirror
++ {0x70,0x80}, // BLC Off
++
++ // AE weight
++ {0x80,0x10}, //40
++ {0x81,0x00}, //10
++ {0x82,0x01}, //10
++ {0x83,0x02}, //10
++ {0x84,0x02}, //30
++
++ ///////////////////////////////
++ // control start position(hsync hblank )
++ // to remove broken pixel width on left side
++ {0xec,0x01},
++ {0x78,0x3d}, // HBLK START
++ {0x82,0x3d}, // HS656 START
++
++ {0xec,0x03},
++ {0x0e,0x3d},
++ {0x18,0x3d},
++
++ {0xec,0x04},
++ {0x0e,0x3d},
++ {0x18,0x3d},
++
++ ////////////////////////////
++ // Control Gain
++ {0xec,0x00},
++ {0x78,0x60}, //Total gain x4 (Only Analog x4)
++ {0x2d,0x5a}, //Frame AE start
++ {0x82,0x5A}, //Color Suppress AGC Min
++
++ ////////////////////////////
++ // Control BPRM
++ // CIS BPR always off
++ {0xec,0x00},
++ {0x7e,0x87}, //Color Suppress On, Y gain On, Digital clamp On, DBPRM On
++ {0x86,0x01}, //DBPR AGC MIN
++ {0x87,0x00}, //DBPRM THRES. MIN
++ //s8710 //DBPRM THRES. MIN.. optimize between BPR and Pseudo color
++ {0xec,0x07},
++ {0x21,0x90}, //50 //DBPRM THRES. MAX
++ {0x22,0x20}, //DBPR AGC MAX
++
++ ////////////////////////////
++ // improve AE speed
++ {0xec,0x00},
++ {0x92,0x80}, //AE ratio high
++ {0xec,0x07},
++ {0x10,0x30}, // AGC predict ON
++
++ //*********************************************************
++ // If you change MCLK or Frame rate, you change below register
++ //*********************************************************
++ /////////////////////////////
++ ///Adjust Global Gain
++ {0xec,0x02},
++ {0x1f,0x0f}, // if MCLK is 25Mhz
++
++ /////////////////////////////
++ ///Flicker setting
++ {0xec,0x00},
++ {0x72,0xF0}, // if MCLK is 25Mhz
++
++ /////////////////////////////
++ // Adjust Vblank depth
++ /// Make 25Mhz 7.5fps
++ {0xec,0x02},
++ {0x17,0x00},
++ {0x18,0x8c},
++
++ {0xec,0x04},
++ {0x01,0x00},
++ {0x02,0x8c},
++ //*********************************************************
++
++ /////////////////////////////
++ ///Flicker setting
++ {0xec,0x00},
++ {0x74,0x18}, // Auto Flicker start 60hz for 7.5fps
++
++ /////////////////////////////
++ // Frame AE
++ {0xec,0x00},
++ //{0x73,0x11}, // frame 1/2 jassi
++ {0x73,0x21}, // frame 1/3
++
++ /////////////////////// 1213 setting
++ {0xec,0x01}, //sdtv
++ {0x19,0x4d},
++ {0x1a,0x96},
++ {0x1b,0x1d},
++ {0x4a,0x41},
++ {0x48,0xea},
++ {0x47,0x41},
++ {0x49,0xf5},
++
++ {0xec,0x00},
++ {0x44,0x2e},
++ {0x45,0x2c},
++
++ {0x5f,0x18},
++
++ {0xec,0x07},
++ {0x21,0x9c},
++ {0x22,0x58},
++
++ {0xec,0x00}, // bpr
++ {0x87,0x00},
++ {0x86,0x48},
++
++ {0xec,0x01},
++ {0x8b,0x23}, // Full YC
++
++ {0x35,0xff}, //Y gamma
++ {0x5c,0xff}, //C gamma
++
++
++ {0xec,0x00}, //Bally adatpion
++ //{0x74,0x04}, // Auto Flicker start 60hz for 7.5fps jassi
++ {0x74,0x08}, // Auto Flicker start 60hz for 7.5fps
++ //{0x73,0x51}, jassi
++ {0x73,0x21},
++// {0x72,0x78}, //MCLK 24Mhz jassi
++// {0x72,0xA0}, //MCLK 32Mhz
++ {0x72,0xF0}, //MCLK 48Mhz
++ {0xec,0x04},
++ {0x01,0x05}, //4fps
++ {0x02,0x8c},
++ {0xec,0x03},
++ {0x57,0x03},
++ {0x58,0x09},
++ {0x5b,0x02},
++ {0x5c,0x84},
++ {0x5f,0x02},
++ {0x60,0x84},
++ {0x69,0x02},
++ {0x6a,0x84},
++ {0x63,0x02},
++ {0x64,0x04},
++ {0x6d,0x02},
++ {0x6e,0x04},
++ {0x65,0x02},
++ {0x66,0x10},
++ {0x6f,0x02},
++ {0x70,0x10},
++ {0xec,0x03},
++ {0x5e,0x38},
++ {0x52,0x48}, //30fps
++ {0xec,0x02},
++ {0x02,0x0d}, //9bit
++ {0x1f,0x07}, //global gain
++ {0xec,0x07},
++ {0x63,0x0a},
++ {0xec,0x03},
++ {0x56,0x04}, // 04->05 05->04
++ {0xec,0x04},
++ {0x06,0x05}, // 04->05
++
++ {0xec,0x07}, //bpr by pyo
++ {0x21,0x9c},
++ {0x22,0x58},
++ {0xec,0x00}, //<============ page 0
++ {0x87,0x00},
++ {0x86,0x48}, //bpr by pyo
++
++ {0x02,0x31}, //<============ page 0 : addr.- 0x2 : value - 1 [VGA(640x480)]
++
++ {0xec,0x01},
++ {0x21,0x40},
++ {0x22,0x40},
++ {0x23,0x00},
++ {0x24,0x00},
++ {0xec,0x00},
++ {0x6d,0x00},
++ {0x6c,0xf0},
++ {0x86,0x10},
++ {0xec,0x07},
++ {0x9d,0x10},
++ {0xec,0x00},
++ {0x75,0x04},
++ {0x96,0x06},
++ {0x78,0x68},
++ {0x66,0x02},
++ {0x94,0x03},
++ {0x97,0x03},
++};
++#endif
++
++#elif defined(CONFIG_VIDEO_SAMSUNG_S5K3BA)
++
++// For SVGA (800 x 600)
++s5k3xa_t s5k3ba_reg[] =
++{
++//[[CAMIF_POWER_UP]]
++{0xfc, 0x02},
++{0x52, 0x86}, // PLL M
++//{0x52, 0x80}, // PLL M
++//{0x52, 0x64}, // PLL M
++{0xfc, 0x01},
++{0x04, 0x03}, // Original ARM Clock Divider
++//{0x04, 0x02},
++{0xfc, 0x02},
++//{0x50, 0x5B}, //Original
++{0x50, 0x59}, // Input Clock 25Mhz
++{0xfc, 0x02},
++{0x30, 0x84}, // Analog offset
++{0x3d, 0x26}, // ADLC enable
++{0x4f, 0x7a}, // I/O driving strength 7mA
++//s45c0 // CDS S1S timing for HN Á¦°Å <- CC
++{0xfc, 0x03},
++//{0x00, 0x02},
++//s2d03 //02
++{0xfc, 0x07},
++{0x58, 0x10},
++{0x59, 0x00},
++{0x5a, 0x00},
++{0x5b, 0x6c},
++{0xfc, 0xf0},
++{0x00, 0x40},
++{0xfc, 0x01},
++//{0x02, 0x02}, // YCbCr Order
++//sfc05
++//s112e // Cb coef.
++{0xfc, 0x05}, // YCbCr Coef
++{0x11, 0x2e},
++//s113d //2e // Blue saturation
++{0x75, 0x05}, // scaler input vsync start
++{0x8c, 0xb1}, // CLIP V size L
++{0x8d, 0x04}, // CLIP V size H
++{0x77, 0xb1}, // scaler input vsync height
++{0xfc, 0x03}, // UXGA Size
++{0x12, 0x05},
++{0x26, 0xb1},
++{0x27, 0x04},
++{0x14, 0xb1},
++///////////////////////////////////////////
++{0xfc, 0x02},
++{0x4a, 0xc1}, // SC type
++{0x37, 0x16}, // SC type
++{0x47, 0xc4}, // r-ramp by chin
++//////////////////////////////////////////
++
++//////////////////////////////////////////
++// Must Mirro Function
++{0xfc, 0x07},
++{0x69, 0x00}, // Mirror XOR
++{0xfc, 0x00},
++{0x23, 0x91}, // Disable wcp/wrd
++// End Mirror
++//////////////////////////////////////////
++
++/////////////////////////////////////////
++// Special Effect Cr Cb setting
++{0xfc, 0x07},
++{0x30, 0x20},
++{0x31, 0xc0},
++{0x32, 0xc0},
++{0x33, 0x40},
++// End
++/////////////////////////////////////////
++
++// AWB Window Area
++//sfc01
++//sc401
++//sc54e
++//sc76e
++
++// color matrix
++{0xfc, 0x01},
++{0x51, 0x06}, //06
++{0x52, 0x68}, //68 //68
++{0x53, 0xFE}, //FE
++{0x54, 0x23}, //23
++{0x55, 0xFF}, //FF
++{0x56, 0x88}, //88
++ //
++{0x57, 0xFE}, //FE
++{0x58, 0x00}, //00
++{0x59, 0x07}, //07
++{0x5A, 0x1F}, ////1F //1F //1F
++{0x5B, 0xFE}, //FE
++{0x5C, 0xF3}, //F3
++ //
++{0x5D, 0xFF}, //FF
++{0x5E, 0x00}, //00
++{0x5F, 0xFC}, //FC
++{0x60, 0x6F}, //df //6F //6F
++{0x61, 0x08}, //08
++{0x62, 0x9F}, //bf //9F //9F
++
++//Edge
++{0xfc, 0x05},
++{0x2c, 0x0f}, //0a //10 //14 // positive gain
++{0x30, 0x0c}, //10 //14 // negative edge gain
++{0x34, 0x12}, /////// // APTCLP
++{0x35, 0x06}, //0c //0a // APTSC
++{0x36, 0x0b}, // ENHANCE
++{0x3f, 0x00}, // NON-LIN
++{0x45, 0x30}, // EGREF
++{0x47, 0x60}, // LLREF
++{0x48, 0x08}, // by chin
++{0x49, 0x39}, // CSSEL EGSEL CS_DLY by
++{0x47, 0x00},
++{0x40, 0x41}, // Y delay
++//Gamma 2
++{0xfc, 0x01},
++{0x6F, 0x08}, // R
++{0x70, 0x10},
++{0x71, 0x40},
++{0x72, 0xd0},
++{0x73, 0x00},
++{0x74, 0xa8},
++{0x75, 0x08},
++{0x76, 0x68},
++{0x77, 0xba},
++{0x78, 0x6a},
++{0x79, 0x08},
++{0x7A, 0x4a},
++{0x7B, 0x6c},
++{0x7C, 0x8a},
++{0x7D, 0xff},
++{0x7E, 0x9e},
++{0x7F, 0xb0},
++{0x80, 0xc0},
++{0x81, 0xd0},
++{0x82, 0xff},
++{0x83, 0xde},
++{0x84, 0xe6},
++{0x85, 0xea},
++{0x86, 0xff},
++{0x87, 0x08}, //G
++{0x88, 0x40},
++{0x89, 0x78},
++{0x8A, 0xf0},
++{0x8B, 0x00},
++{0x8C, 0xb0},
++{0x8D, 0x10},
++{0x8E, 0x68},
++{0x8F, 0xb6},
++{0x90, 0x6a},
++{0x91, 0x04},
++{0x92, 0x30},
++{0x93, 0x53},
++{0x94, 0x74},
++{0x95, 0xff},
++{0x96, 0x8d},
++{0x97, 0xa2},
++{0x98, 0xb6},
++{0x99, 0xc8},
++{0x9A, 0xff},
++{0x9B, 0xd6},
++{0x9C, 0xe0},
++{0x9D, 0xea},
++{0x9E, 0xff},
++{0x9F, 0x08}, //B
++{0xA0, 0x40},
++{0xA1, 0x78},
++{0xA2, 0xf0},
++{0xA3, 0x00},
++{0xA4, 0xb0},
++{0xA5, 0x10},
++{0xA6, 0x68},
++{0xA7, 0xba},
++{0xA8, 0x6a},
++{0xA9, 0x08},
++{0xAA, 0x3a},
++{0xAB, 0x60},
++{0xAC, 0x80},
++{0xAD, 0xff},
++{0xAE, 0x95},
++{0xAF, 0xa8},
++{0xB0, 0xba},
++{0xB1, 0xcc},
++{0xB2, 0xff},
++{0xB3, 0xd8},
++{0xB4, 0xe2},
++{0xB5, 0xea},
++{0xB6, 0xff},
++{0xfc, 0x00}, // Hue Gain
++{0x48, 0x44},
++{0x49, 0x60},
++{0x4a, 0x00},
++{0x4b, 0x18},
++{0x4c, 0x58},
++{0x4d, 0x70}, //60
++{0x4e, 0x00},
++{0x4f, 0x00},
++{0x50, 0x44},
++{0x51, 0x60},
++{0x52, 0x00},
++{0x53, 0x18},
++{0x54, 0x58},
++{0x55, 0x70}, //60
++{0x56, 0x00},
++{0x57, 0x00},
++{0x58, 0x44},
++{0x59, 0x60},
++{0x5a, 0x00},
++{0x5b, 0x18},
++{0x5c, 0x50},
++{0x5d, 0x48},
++{0x5e, 0x08},
++{0x5f, 0x05}, //00
++//ISP_tuning
++{0xfc, 0x00},
++{0x01, 0x00}, // I2C hold mode off
++//s2222 // I2C master ctrl.
++//s2d5a // frame AE start 50
++{0x3e, 0x10}, // Y_min Y min level limit value of AWB ODM
++{0xfc, 0x01},
++{0x00, 0x00}, // ISP BPR Off
++{0x0c, 0x02}, // Full YC
++{0xc8, 0xe0}, //f0 // AWB Y Max
++////////////////////////////////
++// 2005.07.17 cspyo set
++///////////////////////////////
++{0xfc, 0x00},
++{0x24, 0x45}, // zoom skip 5fps
++{0x6c, 0xb8}, //ba //d2 //d8 // AE target
++{0x6d, 0x00}, //
++{0x78, 0x60}, // AGC Max
++{0x79, 0xfb}, //fc // R gain
++{0x7a, 0x03}, // B gain
++{0x81, 0x00}, // AWB G gain suppress disable
++{0x29, 0x04}, // Y level
++{0x2a, 0x10}, //50 // Y level
++{0x2b, 0x04}, // color level H
++{0x2c, 0x00}, //20 // color level L
++{0xfc, 0x07},
++{0x11, 0x00}, // G offset
++{0x37, 0x00}, // Flicker Add
++{0xfc, 0x00},
++{0x72, 0xa0}, // Flicker for 32MHz
++{0x74, 0x08}, // flicker 60Hz
++{0xfc, 0x05},
++{0x64, 0x02}, // Darkslice R
++{0x65, 0xfe}, // Darkslice G
++{0x66, 0xff}, // Darkslice B
++////////////////////////////////////
++{0xfc, 0x00},
++{0x7e, 0xfc},
++//s7e8c //NR GrGb off
++// [7]: BPR [6]:Noise Filter(1D/NR) [4]: GrGb Enable [3]:BPR Data Threshold
++// [2]: color suppress [1]: Y gain suppress [0]: Digital Clamp
++///////////////////////////////////
++////////////////////////////////////
++// GrGb Correction setting
++{0xfc, 0x01},
++{0x44, 0x0c},
++//s4400
++/// [4]: GrGb full [3]: GrGb On
++/// [2]: GrGb Rb On
++{0xfc, 0x0b},
++{0x21, 0x00}, // Start AGC
++{0x22, 0x10}, // AGCMIN
++{0x23, 0x50}, // AGCMAX
++{0x24, 0x18}, //0e //12 //17 // G Th AGCMIN(23d)
++{0x25, 0x32}, // G Th AGCMAX(50d)
++{0x26, 0x18}, //0e //12 //17 // RB Th AGCMIN
++{0x27, 0x32}, // RB Th AGCMAX
++// GrGb Correction setting End
++///////////////////////////////////
++// BPR Setting
++{0xfc, 0x01},
++{0x3f, 0x00}, // setting because S/W bug
++{0xfc, 0x0b},
++{0x0b, 0x00}, // ISP BPR On Start
++{0x0c, 0x00}, // Th13 AGC Min
++{0x0d, 0x40}, //5a // Th13 AGC Max
++{0x0e, 0x01}, //00 // Th1 Max H for AGCMIN
++{0x0f, 0xff}, //c0 // Th1 Max L for AGCMIN
++{0x10, 0x00}, // Th1 Min H for AGCMAX
++{0x11, 0x10}, //00 // Th1 Min L for AGCMAX
++{0x12, 0xff}, // Th3 Max H for AGCMIN
++{0x13, 0xff}, // Th3 Max L for AGCMIN
++{0x14, 0xff}, // Th3 Min H for AGCMAX
++{0x15, 0xff}, // Th3 Min L for AGCMAX
++///////////////////////////////////////////
++// NR Setting
++{0xfc, 0x01},
++{0x4b, 0x01}, // NR Enable
++//s4b00 // NR Enable
++{0xfc, 0x0b},
++{0x28, 0x00}, //NR Start AGC
++{0x29, 0x00}, // SIG Th AGCMIN H
++{0x2a, 0x0a}, //14 // SIG Th AGCMIN L
++{0x2b, 0x00}, // SIG Th AGCMAX H
++{0x2c, 0x0a}, //14 // SIG Th AGCMAX L
++{0x2d, 0x00}, // PRE Th AGCMIN H
++{0x2e, 0x70}, //50 //64 // PRE Th AGCMIN L(100d)
++{0x2f, 0x01}, // PRE Th AGCMAX H(300d)
++{0x30, 0x2c}, // PRE Th AGCMAX L
++{0x31, 0x00}, // POST Th AGCMIN H
++{0x32, 0x70}, //50 //64 // POST Th AGCMIN L(100d)
++{0x33, 0x01}, // POST Th AGCMAX H(300d)
++{0x34, 0x2c}, // POST Th AGCMAX L
++// NR Setting End
++////////////////////////////////
++// Color suppress setting
++{0xfc, 0x0b},
++{0x08, 0x50}, // C suppress AGC MIN
++{0x09, 0x04}, // C suppress MIN H
++{0x0a, 0x00}, // C suppress MIN L
++// C Suppress Setting End
++///////////////////////////////
++// 1D Y LPF Filter
++{0xfc, 0x01},
++//s05e0 // Default s60
++{0x05, 0x60}, // Default s60
++//[7]: Y LPF filter On [6]: Clap On
++{0xfc, 0x0b},
++{0x35, 0x00}, // YLPF Start AGC
++{0x36, 0x50}, // YLPF01 AGCMIN
++{0x37, 0x50}, // YLPF01 AGCMAX
++{0x38, 0x00}, // YLPF SIG01 Th AGCMINH
++{0x39, 0x00}, // YLPF SIG01 Th AGCMINL
++{0x3a, 0x00}, // YLPF SIG01 Th AGCMAXH
++{0x3b, 0xa0}, // YLPF SIG01 Th AGCMAXH
++{0x3c, 0x50}, // YLPF02 AGCMIN
++{0x3d, 0x50}, // YLPF02 AGCMAX
++{0x3e, 0x00}, // YLPF SIG02 Th AGCMINH
++{0x3f, 0x00}, // YLPF SIG02 Th AGCMINL
++{0x40, 0x00}, // YLPF SIG02 Th AGCMAXH
++{0x41, 0xa0}, // YLPF SIG02 Th AGCMAXH
++// Y LPF Filter setting End
++//------------------------------------------------------------------
++/// Set File
++/// - S5K3BAFB_CRF_June02+yihan_050707.xls generates
++/// - date : 2005-07-08
++///------------------------------------------------------------------
++/// Page : ISP Page 9
++{0xfc, 0x09},
++{0x00, 0x02}, // shading on
++{0x01, 0x06}, // size
++{0x02, 0x40},
++{0x03, 0x04},
++{0x04, 0xB0},
++{0x05, 0x03}, // shading center R
++{0x06, 0x19},
++{0x07, 0x02},
++{0x08, 0x75},
++{0x09, 0x03}, // shading center R
++{0x0A, 0x1b},
++{0x0b, 0x02},
++{0x0c, 0x7a},
++{0x0d, 0x03}, // shading center R
++{0x0e, 0x09},
++{0x0f, 0x02},
++{0x10, 0x7d},
++{0x35, 0x00}, // shading R
++{0x36, 0xff},
++{0x37, 0x01},
++{0x38, 0x06},
++{0x39, 0x01},
++{0x3A, 0x1d},
++{0x3B, 0x01},
++{0x3C, 0x44},
++{0x3D, 0x01},
++{0x3E, 0x5d},
++{0x3F, 0x01},
++{0x40, 0x7c},
++{0x41, 0x01},
++{0x42, 0x97},
++{0x43, 0x01},
++{0x44, 0xba},
++{0x45, 0x01}, // shading G
++{0x46, 0x01},
++{0x47, 0x01},
++{0x48, 0x08},
++{0x49, 0x01},
++{0x4A, 0x1d},
++{0x4B, 0x01},
++{0x4C, 0x40},
++{0x4D, 0x01},
++{0x4E, 0x58},
++{0x4F, 0x01},
++{0x50, 0x73},
++{0x51, 0x01},
++{0x52, 0x8a},
++{0x53, 0x01},
++{0x54, 0xa6},
++{0x55, 0x00}, // shading B
++{0x56, 0xff},
++{0x57, 0x01},
++{0x58, 0x05},
++{0x59, 0x01},
++{0x5A, 0x1a},
++{0x5B, 0x01},
++{0x5C, 0x3c},
++{0x5D, 0x01},
++{0x5E, 0x52},
++{0x5F, 0x01},
++{0x60, 0x6e},
++{0x61, 0x01},
++{0x62, 0x8b},
++{0x63, 0x01},
++{0x64, 0xb3},
++// sub-sampling
++{0xfc, 0x03},
++//{0x2d, 0x01}, // UXGA YCrCb Order
++{0x2d, 0x06}, // UXGA YCrCb Order
++{0x12, 0x05},
++{0x26, 0xb1},
++{0x27, 0x04},
++{0x14, 0xb1},
++{0xfc, 0x04},
++{0x14, 0xb1},
++{0x72, 0x05}, // H2 V1
++{0x74, 0xb1},
++{0xa2, 0x05}, // H1 V2
++{0xa3, 0x02},
++{0xa4, 0x59},
++{0xa7, 0x59},
++{0xa8, 0x02},
++{0xae, 0x59},
++{0xaf, 0x02},
++{0xb6, 0x59},
++{0xb7, 0x02},
++{0xd2, 0x05}, // H2 V2
++{0xd3, 0x02},
++{0xd4, 0x59},
++{0xd7, 0x59},
++{0xd8, 0x02},
++{0xde, 0x59},
++{0xdf, 0x02},
++{0xe6, 0x59},
++{0xe7, 0x02},
++{0xfc, 0x14}, // H4 V1
++{0x05, 0x98},
++{0x0e, 0x02},
++{0x12, 0x05},
++{0x13, 0x04},
++{0x14, 0xb1},
++{0x17, 0xb0},
++{0x18, 0x04},
++{0x1e, 0xb0},
++{0x1f, 0x04},
++{0x26, 0xb1},
++{0x27, 0x04},
++{0x35, 0x98}, // H4 V4
++{0x3e, 0x02},
++{0x42, 0x05},
++{0x43, 0x01},
++{0x44, 0x2d},
++{0x47, 0x2d},
++{0x48, 0x01},
++{0x4e, 0x2d},
++{0x4f, 0x01},
++{0x56, 0x2e},
++{0x57, 0x01},
++// AE Window Size control for sub-sampling
++{0xfc, 0x06},
++{0x12, 0x00}, // H=2 V=1(800*1200)
++{0x13, 0x61}, // AE H End
++{0x16, 0x00}, // AE V End
++{0x17, 0x94},
++{0x22, 0x00}, // H=1 V=2(1600*600)
++{0x23, 0xc5}, // AE H End
++{0x26, 0x00}, // AE V End
++{0x27, 0x4b},
++{0x32, 0x00}, // H=2 V=2(800*600)
++{0x33, 0x61}, // AE H End
++{0x36, 0x00}, // AE V End
++{0x37, 0x48},
++{0x38, 0x00}, // AWB Window Size
++{0x39, 0x0a},
++{0x3a, 0x00},
++{0x3b, 0x61},
++{0x3c, 0x00},
++{0x3d, 0x75},
++{0x3e, 0x00},
++{0x3f, 0x3e},
++{0x42, 0x00}, // H=4 V=1(400*1200)
++{0x43, 0x2f}, // AE H End
++{0x46, 0x00}, // AE V End
++{0x47, 0x97},
++{0x52, 0x00}, // H=4 V=4(400*300)
++{0x53, 0x30}, // AE H End
++{0x56, 0x00}, // AE V End
++{0x57, 0x26},
++// white point
++{0xfc, 0x00},
++{0x40, 0x78}, //7d a
++{0x41, 0xe0}, //e2
++{0x42, 0x83}, //95 12
++{0x43, 0xc6}, //ba c
++{0x44, 0xad}, //bc f
++{0x45, 0x9d}, //99 4
++{0x34, 0x18}, //115
++{0x35, 0x14}, //02
++{0x36, 0x04}, //04
++{0x37, 0x12}, //04
++{0x38, 0x06}, //03
++{0x39, 0x1d}, //18 //25
++{0x3a, 0x14}, //12 //22 //1f
++{0x3b, 0x2c}, //16 //18 //1a
++{0xfc, 0x20}, // AE window weight
++{0x60, 0x00},
++{0x61, 0x00},
++{0x62, 0x00},
++{0x63, 0x00},
++{0x64, 0x11},
++{0x65, 0x11},
++{0x66, 0x11},
++{0x67, 0x11},
++{0x68, 0x11},
++{0x69, 0x22},
++{0x6a, 0x22},
++{0x6b, 0x11},
++{0x6c, 0x11},
++{0x6d, 0x22},
++{0x6e, 0x22},
++{0x6f, 0x11},
++{0x70, 0x11},
++{0x71, 0x22},
++{0x72, 0x22},
++{0x73, 0x11},
++{0x74, 0x11},
++{0x75, 0x22},
++{0x76, 0x22},
++{0x77, 0x11},
++{0x78, 0x33},
++{0x79, 0x33},
++{0x7a, 0x33},
++{0x7b, 0x33},
++{0x7c, 0x33},
++{0x7d, 0x33},
++{0x7e, 0x33},
++{0x7f, 0x33},
++{0xfc, 0x01},
++{0x02, 0x02},
++{0xfc, 0x02},
++{0x30, 0x83},
++{0x44, 0x5b}, // clamp enable
++{0x55, 0x03},
++{0xfc, 0x00},
++{0x62, 0x02},
++{0xfc, 0x04},
++{0xee, 0x08},
++{0xfc, 0x03},
++{0x2e, 0x08},
++{0xfc, 0x02},
++{0x11, 0x11},
++{0xfc, 0x01},
++{0x4d, 0x08}, // RV con, Red pixel Ordering
++//{0x01, 0x00}, // PCLK
++{0x01, 0x01}, // Inversion PCLK
++{0xfc, 0x00},
++{0x02, 0x00}, // UXGA Size Out
++
++// for 800x600(SVGA)
++// Page 0
++{0xfc, 0x00},
++{0x02, 0x09}, // 800*600 sub-sampling
++// Page 9
++{0xfc, 0x09}, // 800*600 shading delta value
++{0x1D, 0xFF},
++{0x1E, 0xFF},
++{0x1F, 0xFF},
++{0x20, 0xFF},
++{0x21, 0xFF},
++{0x22, 0xFF},
++{0x23, 0xFF},
++{0x24, 0xFF},
++{0x25, 0xFF},
++{0x26, 0xFF},
++{0x27, 0xFF},
++{0x28, 0xFF},
++{0x29, 0xFF},
++{0x2A, 0xFF},
++{0x2B, 0xFF},
++{0x2C, 0xFF},
++{0x2D, 0xFF},
++{0x2E, 0xFF},
++{0x2F, 0xFF},
++{0x30, 0xFF},
++{0x31, 0xFF},
++{0x32, 0xFF},
++{0x33, 0xFF},
++{0x34, 0xFF},
++// Page 1
++{0xfc, 0x01},
++{0x02, 0x02}, // YCbCr Order
++};
++#else
++#error No samsung CIS moudule !
++#endif
++
++
++// abridged VGA : 640 x 480
++s5k3xa_t s5k3aa_reg_vga[] =
++{
++ /* Only for VGA Mode */
++ {0xec,0x07}, //bpr by pyo
++ {0x21,0x9c},
++ {0x22,0x58},
++ {0xec,0x00},
++ {0x87,0x00},
++ {0x86,0x48}, //bpr by pyo
++
++ {0xec,0x02},
++ {0x02,0x0d}, //9bit
++ {0x1f,0x07}, //global gain
++
++ {0xec,0x01},
++ {0x21,0x40},
++ {0x22,0x40},
++ {0x23,0x00},
++ {0x24,0x00},
++
++ {0xec,0x00},
++ {0x7b,0x00},
++ {0x73,0x51},
++ {0x02,0x31}, //YONGKAL
++};
++
++// abridged SXGA : 1280 x 1023 (1.3M)
++ s5k3xa_t s5k3aa_reg_sxga[] =
++{
++
++ {0xec,0x07},
++ {0x21,0x90},
++ {0x22,0x60},
++ {0xec,0x00},
++ {0x87,0x00},
++ {0x86,0x20},
++
++ {0xec,0x02},
++ {0x02,0x0f},
++ {0x1f,0x0f},
++ {0xec,0x01},
++ {0x21,0x50},
++ {0x22,0x50},
++ {0x23,0x10},
++ {0x24,0x10},
++ {0xec,0x00},
++ {0x7b,0xff},
++ {0x73,0x00},
++ {0x02,0x00},
++};
++
++
++#define PAGE_ADDRESS 0xEC
++
++#define S5K3AA_INIT_REGS (sizeof(s5k3aa_reg)/sizeof(s5k3aa_reg[0]))
++#define S5K3AA_SXGA_REGS (sizeof(s5k3aa_reg_sxga)/sizeof(s5k3aa_reg_sxga[0]))
++#define S5K3AA_VGA_REGS (sizeof(s5k3aa_reg_vga)/sizeof(s5k3aa_reg_vga[0]))
++
++#define S5K3AA_RISC_REGS 0xEB
++#define S5K3AA_ISP_REGS 0xFB /* S5C7323X */
++#define S5K3AA_CIS_REGS 0x2F /* S5K437LA03 */
++
++//#define S5K3AA_REGS (S5K3AA_RISC_REGS+S5K3AA_ISP_REGS+S5K3AA_CIS_REGS)
++#define S5K3AA_REGS (0x1000)
++
++// For VGA ( 640 x 480) on 3BA module
++s5k3xa_t s5k3ba_reg_vga[] =
++{
++ {0xfc, 0x01},
++ {0x04, 0x03}, //ARM Clock divider(1/4)
++
++ //In case of PCLK = 64MHz
++ {0xfc, 0x02},
++ {0x52, 0x80}, //PLL M
++
++ {0xfc, 0x02},
++ {0x50, 0x19}, //PLL S,P
++
++ {0xfc, 0x07},
++ {0x58, 0x10},
++ {0x59, 0x00},
++ {0x5A, 0x00},
++ {0x5B, 0x6c},
++
++ {0xfc, 0xf0},
++ {0x00, 0x40},
++
++ {0xfc, 0x00},
++ {0x62, 0x02},
++ {0xbc, 0xe0}, // AWB_AE_DIFF, 0x03},
++ {0x2d, 0x02},
++ {0xfc, 0x01},
++ {0x02, 0x02}, // YCbCr Order
++
++ {0xfc, 0x02},
++ {0x4a, 0xc1}, // SC type selection
++ {0x37, 0x18}, //16 // SC type global gain
++ {0x47, 0xc4}, // r-ramp by chin
++
++
++ {0xfc, 0x01}, //AWB Window Area (except sky)
++ {0xc4, 0x01},
++ {0xc5, 0x4e},
++ {0xc7, 0x6e},
++
++ {0xfc, 0x02},
++ {0x30, 0x84}, //Analog offset
++
++ {0xfc, 0x00},
++ {0x3d, 0x10}, //AWB Low Y limit
++
++ {0xfc, 0x02},
++ {0x3d, 0x06}, //ADLC OFF
++ {0x44, 0x5b}, //clamp enable
++ {0x55, 0x03},
++
++ {0xfc, 0x06},
++ {0x0c, 0x01},
++ {0x0d, 0x4e},
++ {0x0f, 0x6e},
++
++ {0xfc, 0x00},
++ {0x78, 0x58}, //AGC MAX (30lux_Micron¹à±âY=60code)
++
++ {0xfc, 0x02},
++ {0x45, 0x8c}, //CDS timing_ÀúÁ¶µµ greenish ÇØ°á(15fps)
++ {0x49, 0x80}, // APS Current 2uA
++
++ {0xfc, 0x01},
++ {0x25, 0x14}, //10 //Digital Clamp
++
++ {0xfc, 0x00},
++ {0x6c, 0xac}, //AE target (Macbeth white=240)
++ {0x6d, 0x00},
++
++ // 2. ISP tuning
++ // ISP_tuning
++ {0xfc, 0x00},
++ {0x01, 0x00}, // I2C hold mode off
++
++ {0xfc, 0x01},
++ {0x00, 0x00}, // ISP BPR Off
++ {0x0c, 0x02}, // Full YC
++ {0xc8, 0x19}, // AWB Y Max
++
++ {0xfc, 0x00},
++ {0x81, 0x00}, // AWB G gain suppress disable
++ {0x29, 0x04},
++ {0x2a, 0x00},
++ {0x2b, 0x04}, // color level
++ {0x2c, 0x00},
++
++ {0xfc, 0x07},
++ {0x11, 0x00}, // G offset
++ {0x37, 0x00}, // Flicker Add
++
++ {0xfc, 0x00},
++ {0x72, 0xa0}, // Flicker for 32MHz
++ {0x74, 0x18}, // Flicker
++ {0x73, 0x00}, // Frame AE
++
++ {0xfc, 0x05},
++ {0x64, 0x00}, // Darkslice R
++ {0x65, 0x00}, // Darkslice G
++ {0x66, 0x00}, // Darkslice B
++
++ //Edge
++ {0xfc, 0x05},
++ {0x2c, 0x0a}, //14 // positive gain
++ {0x30, 0x0a}, //10 // negative edge gain
++ {0x34, 0x1a}, // APTCLP
++ {0x35, 0x10}, //0a // APTSC
++ {0x36, 0x0b}, // ENHANCE
++ {0x3f, 0x00}, // NON-LIN
++ {0x45, 0x30}, // EGREF
++ {0x47, 0x00}, // LLREF
++ {0x48, 0x08}, // by chin
++ {0x49, 0x39}, // CSSEL EGSEL CS_DLY by
++ {0x40, 0x41}, // Y delay
++
++ {0xfc, 0x00},
++ {0x7e, 0xfc},
++ // s7e8c //NR GrGb off
++ // [7]: BPR [6]:Noise Filter(1D/NR) [4]: GrGb Enable [3]:BPR Data Threshold
++ // [2]: color suppress [1]: Y gain suppress [0]: Digital Clamp
++
++ // GrGb Correction setting
++ {0xfc, 0x01},
++ {0x44, 0x0c},
++ //s4400
++ /// [4]: GrGb full [3]: GrGb On
++ /// [2]: GrGb Rb On
++ {0xfc, 0x0b},
++ {0x21, 0x00}, // Start AGC
++ {0x22, 0x10}, // AGCMIN
++ {0x23, 0x50}, // AGCMAX
++ {0x24, 0x18}, // G Th AGCMIN(23d)
++ {0x25, 0x52}, // G Th AGCMAX(50d)
++ {0x26, 0x38}, // RB Th AGCMIN
++ {0x27, 0x52}, // RB Th AGCMAX
++ // GrGb Correction setting End
++
++ ///////////////////////////////////
++ // BPR Setting
++ {0xfc, 0x01},
++ {0x3f, 0x00}, // setting because S/W bug
++
++ {0xfc, 0x0b},
++ {0x0b, 0x00}, // ISP BPR On Start
++ {0x0c, 0x00}, // Th13 AGC Min
++ {0x0d, 0x5a}, // Th13 AGC Max
++ {0x0e, 0x01}, //00 // Th1 Max H for AGCMIN
++ {0x0f, 0xff}, //c0 // Th1 Max L for AGCMIN
++ {0x10, 0x00}, // Th1 Min H for AGCMAX
++ {0x11, 0x10}, //00 // Th1 Min L for AGCMAX
++ {0x12, 0xff}, // Th3 Max H for AGCMIN
++ {0x13, 0xff}, // Th3 Max L for AGCMIN
++ {0x14, 0xff}, // Th3 Min H for AGCMAX
++ {0x15, 0xff}, // Th3 Min L for AGCMAX
++
++ // NR Setting
++ {0xfc, 0x01},
++ {0x4b, 0x01}, // NR Enable
++ // s4b00 // NR Enable
++
++ {0xfc, 0x0b},
++ {0x28, 0x00}, //NR Start AGC
++ {0x29, 0x00}, // SIG Th AGCMIN H
++ {0x2a, 0x0a}, //14 // SIG Th AGCMIN L
++ {0x2b, 0x00}, // SIG Th AGCMAX H
++ {0x2c, 0x0a}, //14 // SIG Th AGCMAX L
++ {0x2d, 0x00}, // PRE Th AGCMIN H
++ {0x2e, 0xc0}, //64 // PRE Th AGCMIN L(100d)
++ {0x2f, 0x01}, // PRE Th AGCMAX H(300d)
++ {0x30, 0x2c}, // PRE Th AGCMAX L
++ {0x31, 0x00}, // POST Th AGCMIN H
++ {0x32, 0xe0}, //64 // POST Th AGCMIN L(100d)
++ {0x33, 0x01}, // POST Th AGCMAX H(300d)
++ {0x34, 0x2c}, // POST Th AGCMAX L
++ // NR Setting End
++
++ // Color suppress setting
++ {0xfc, 0x0b},
++ {0x08, 0x50}, // C suppress AGC MIN
++ {0x09, 0x03}, // C suppress MIN H
++ {0x0a, 0x80}, // C suppress MIN L
++ // C Suppress Setting End
++
++ {0xfc, 0x05},
++ {0x4a, 0x00}, //01 // Edge Color Suppress, 9/13
++
++ // 1D Y LPF Filter
++ {0xfc, 0x01},
++ // s05e0 // Default s60
++ {0x05, 0x60}, // Default s60
++ // [7]: Y LPF filter On [6]: Clap On
++
++ {0xfc, 0x0b},
++ {0x35, 0x00}, // YLPF Start AGC
++ {0x36, 0x50}, // YLPF01 AGCMIN
++ {0x37, 0x50}, // YLPF01 AGCMAX
++ {0x38, 0x00}, // YLPF SIG01 Th AGCMINH
++ {0x39, 0x90}, //00 // YLPF SIG01 Th AGCMINL
++ {0x3a, 0x01}, // YLPF SIG01 Th AGCMAXH
++ {0x3b, 0xa0}, // YLPF SIG01 Th AGCMAXL
++ {0x3c, 0x50}, // YLPF02 AGCMIN
++ {0x3d, 0x50}, // YLPF02 AGCMAX
++ {0x3e, 0x00}, // YLPF SIG02 Th AGCMINH
++ {0x3f, 0xa0}, //00 // YLPF SIG02 Th AGCMINL
++ {0x40, 0x01}, // YLPF SIG02 Th AGCMAXH s73
++ {0x41, 0xb0}, // YLPF SIG02 Th AGCMAXL
++ // Y LPF Filter setting End
++
++ // SET EDGE COLOR SUPPRESS AND Y-LPF
++ {0xfc, 0x05},
++ {0x42, 0x1F},
++ {0x43, 0x1F},
++ {0x44, 0x0E},
++ {0x45, 0x8C}, //
++ {0x46, 0x7A},
++ {0x47, 0x60},
++ {0x48, 0x0C},
++ {0x49, 0x39},
++ {0x4A, 0x01},
++ {0x4B, 0xB1},
++ {0x4C, 0x3B},
++ {0x4D, 0x14},
++
++ // NR Setting
++ {0xfc, 0x01},
++ {0x4b, 0x01}, // NR Enable
++
++ // Set multipliers (which are not suppressed)
++ {0xfc, 0x01},
++ {0x48, 0x11},
++
++ // Suppressed parameters
++ {0xfc, 0x0B},
++ {0x21, 0x00},
++ {0x22, 0x10},
++ {0x23, 0x60},
++ {0x24, 0x10},
++ {0x25, 0x28},
++ {0x26, 0x08},
++ {0x27, 0x20},
++
++ {0x28, 0x00}, //NR Start AGC
++ {0x29, 0x00}, // SIG Th AGCMIN H
++ {0x2A, 0x02}, // SIG Th AGCMIN L
++ {0x2B, 0x00}, // SIG Th AGCMAX H
++ {0x2C, 0x14}, // SIG Th AGCMAX L
++ {0x2D, 0x03}, // PRE Th AGCMIN H
++ {0x2E, 0x84}, // PRE Th AGCMIN L
++ {0x2F, 0x03}, // PRE Th AGCMAX H
++ {0x30, 0x84}, // PRE Th AGCMAX L
++ {0x31, 0x00}, // POST Th AGCMIN H
++ {0x32, 0x00}, // POST Th AGCMIN L
++ {0x33, 0x00}, // POST Th AGCMAX H
++ {0x34, 0xC8}, // POST Th AGCMAX L
++
++ {0x35, 0x00}, // 1D Y filter setting
++ {0x36, 0x10},
++ {0x37, 0x50},
++ {0x38, 0x00},
++ {0x39, 0x14},
++ {0x3A, 0x00},
++ {0x3B, 0x50},
++ {0x3C, 0x10},
++ {0x3D, 0x50},
++ {0x3E, 0x00},
++ {0x3F, 0x28},
++ {0x40, 0x00},
++ {0x41, 0xA0},
++
++ // To avoid AWB tracking @ max AGC gain even though AE is unstable state
++ {0xfc, 0x00},
++ {0xba, 0x50}, // AE Target minus AE Average
++ {0xbb, 0x00},
++ {0xbc, 0x00},
++
++ // 3. AE weight & etc linear
++ // AE Window Weight linear(EVT1)0929
++ {0xfc, 0x20}, // upper window weight zero
++
++ {0x60, 0x11},
++ {0x61, 0x11},
++ {0x62, 0x11},
++ {0x63, 0x11},
++ {0x64, 0x11},
++ {0x65, 0x11},
++ {0x66, 0x11},
++ {0x67, 0x11},
++ {0x68, 0x11},
++ {0x69, 0x11},
++ {0x6a, 0x11},
++ {0x6b, 0x11},
++ {0x6c, 0x11},
++ {0x6d, 0x11},
++ {0x6e, 0x11},
++ {0x6f, 0x11},
++ {0x70, 0x11},
++ {0x71, 0x11},
++ {0x72, 0x11},
++ {0x73, 0x11},
++ {0x74, 0x11},
++ {0x75, 0x11},
++ {0x76, 0x11},
++ {0x77, 0x11},
++ {0x78, 0x11},
++ {0x79, 0x11},
++ {0x7a, 0x11},
++ {0x7b, 0x11},
++ {0x7c, 0x11},
++ {0x7d, 0x11},
++ {0x7e, 0x11},
++ {0x7f, 0x11},
++
++
++ // AE window Weight setting End
++ //hue gain linear
++ {0xfc, 0x00},
++
++ {0x48, 0x40},
++ {0x49, 0x40},
++ {0x4a, 0x00},
++ {0x4b, 0x00},
++ {0x4c, 0x40},
++ {0x4d, 0x40},
++ {0x4e, 0x00},
++ {0x4f, 0x00},
++ {0x50, 0x40},
++ {0x51, 0x40},
++ {0x52, 0x00},
++ {0x53, 0x00},
++ {0x54, 0x40},
++ {0x55, 0x40},
++ {0x56, 0x00},
++ {0x57, 0x00},
++ {0x58, 0x40},
++ {0x59, 0x40},
++ {0x5a, 0x00},
++ {0x5b, 0x00},
++ {0x5c, 0x40},
++ {0x5d, 0x40},
++ {0x5e, 0x00},
++ {0x5f, 0x00},
++ {0x62, 0x00}, //hue enable OFF
++
++ // 4. shading (FlexÇâ 3000K manual shading)
++ {0xfc, 0x09},
++ // DSP9_SH_WIDTH_H
++ {0x01, 0x06},
++ {0x02, 0x40},
++ // DSP9_SH_HEIGHT_H
++ {0x03, 0x04},
++ {0x04, 0xB0},
++ {0x05, 0x03},
++ {0x06, 0x13},
++ {0x07, 0x02},
++ {0x08, 0x5A},
++ {0x09, 0x03},
++ {0x0A, 0x15},
++ {0x0B, 0x02},
++ {0x0C, 0x5B},
++ {0x0D, 0x03},
++ {0x0E, 0x0D},
++ {0x0F, 0x02},
++ {0x10, 0x5D},
++ {0x1D, 0x80},
++ {0x1E, 0x00},
++ {0x1F, 0x80},
++ {0x20, 0x00},
++ {0x23, 0x80},
++ {0x24, 0x00},
++ {0x21, 0x80},
++ {0x22, 0x00},
++ {0x25, 0x80},
++ {0x26, 0x00},
++ {0x27, 0x80},
++ {0x28, 0x00},
++ {0x2B, 0x80},
++ {0x2C, 0x00},
++ {0x29, 0x80},
++ {0x2A, 0x00},
++ {0x2D, 0x80},
++ {0x2E, 0x00},
++ {0x2F, 0x80},
++ {0x30, 0x00},
++ {0x33, 0x80},
++ {0x34, 0x00},
++ {0x31, 0x80},
++ {0x32, 0x00},
++ // DSP9_SH_VAL_R0H
++ {0x35, 0x01},
++ {0x36, 0x00},
++ {0x37, 0x01},
++ {0x38, 0x0F},
++ {0x39, 0x01},
++ {0x3A, 0x42},
++ {0x3B, 0x01},
++ {0x3C, 0x9C},
++ {0x3D, 0x01},
++ {0x3E, 0xD0},
++ {0x3F, 0x02},
++ {0x40, 0x0F},
++ {0x41, 0x02},
++ {0x42, 0x3D},
++ {0x43, 0x02},
++ {0x44, 0x5E},
++ {0x45, 0x01},
++ {0x46, 0x00},
++ {0x47, 0x01},
++ {0x48, 0x0A},
++ {0x49, 0x01},
++ {0x4A, 0x2E},
++ {0x4B, 0x01},
++ {0x4C, 0x66},
++ {0x4D, 0x01},
++ {0x4E, 0x89},
++ {0x4F, 0x01},
++ {0x50, 0xB7},
++ {0x51, 0x01},
++ {0x52, 0xD8},
++ {0x53, 0x01},
++ {0x54, 0xFA},
++ // DS9_SH_VAL_B0H
++ {0x55, 0x01},
++ {0x56, 0x00},
++ {0x57, 0x01},
++ {0x58, 0x0A},
++ {0x59, 0x01},
++ {0x5A, 0x28},
++ {0x5B, 0x01},
++ {0x5C, 0x59},
++ {0x5D, 0x01},
++ {0x5E, 0x7A},
++ {0x5F, 0x01},
++ {0x60, 0xA1},
++ {0x61, 0x01},
++ {0x62, 0xC0},
++ {0x63, 0x01},
++ {0x64, 0xDC},
++ // DSP9_SH_M_R2_R1H
++ {0x65, 0x00},
++ {0x66, 0x9F},
++ {0x67, 0xE6},
++ {0x68, 0x02},
++ {0x69, 0x7F},
++ {0x6A, 0x9B},
++ {0x6B, 0x05},
++ {0x6C, 0x9F},
++ {0x6D, 0x1E},
++ {0x6E, 0x07},
++ {0x6F, 0xA6},
++ {0x70, 0xCC},
++ {0x71, 0x09},
++ {0x72, 0xFE},
++ {0x73, 0x6E},
++ {0x74, 0x0C},
++ {0x75, 0xA6},
++ {0x76, 0x04},
++ {0x77, 0x0F},
++ {0x78, 0x9D},
++ {0x79, 0x8C},
++ // DSP9_SH_M_R2_G1H
++ {0x7A, 0x00},
++ {0x7B, 0x9F},
++ {0x7C, 0x95},
++ {0x7D, 0x02},
++ {0x7E, 0x7E},
++ {0x7F, 0x54},
++ {0x80, 0x05},
++ {0x81, 0x9C},
++ {0x82, 0x3E},
++ {0x83, 0x07},
++ {0x84, 0xA2},
++ {0x85, 0xE3},
++ {0x86, 0x09},
++ {0x87, 0xF9},
++ {0x88, 0x53},
++ {0x89, 0x0C},
++ {0x8A, 0x9F},
++ {0x8B, 0x8D},
++ {0x8C, 0x0F},
++ {0x8D, 0x95},
++ {0x8E, 0x91},
++ // DSP9_SH_M_R2_B1H
++ {0x8F, 0x00},
++ {0x90, 0xA1},
++ {0x91, 0xFF},
++ {0x92, 0x02},
++ {0x93, 0x87},
++ {0x94, 0xFD},
++ {0x95, 0x05},
++ {0x96, 0xB1},
++ {0x97, 0xFA},
++ {0x98, 0x07},
++ {0x99, 0xC0},
++ {0x9A, 0x79},
++ {0x9B, 0x0A},
++ {0x9C, 0x1F},
++ {0x9D, 0xF6},
++ {0x9E, 0x0C},
++ {0x9F, 0xD0},
++ {0xA0, 0x74},
++ {0xA1, 0x0F},
++ {0xA2, 0xD1},
++ {0xA3, 0xF1},
++ // DSP9_SH_SUB_RR0H
++ {0xA4, 0x66},
++ {0xA5, 0x76},
++ {0xA6, 0x22},
++ {0xA7, 0x27},
++ {0xA8, 0x14},
++ {0xA9, 0x7E},
++ {0xAA, 0x1F},
++ {0xAB, 0x86},
++ {0xAC, 0x1B},
++ {0xAD, 0x52},
++ {0xAE, 0x18},
++ {0xAF, 0x1B},
++ {0xB0, 0x15},
++ {0xB1, 0x92},
++ // DSP9_SH_SUB_RG0H
++ {0xB2, 0x66},
++ {0xB3, 0xAA},
++ {0xB4, 0x22},
++ {0xB5, 0x38},
++ {0xB6, 0x14},
++ {0xB7, 0x88},
++ {0xB8, 0x1F},
++ {0xB9, 0x97},
++ {0xBA, 0x1B},
++ {0xBB, 0x60},
++ {0xBC, 0x18},
++ {0xBD, 0x28},
++ {0xBE, 0x15},
++ {0xBF, 0x9D},
++ // DSP9_SH_SUB_RB0H
++ {0xC0, 0x65},
++ {0xC1, 0x23},
++ {0xC2, 0x21},
++ {0xC3, 0xB6},
++ {0xC4, 0x14},
++ {0xC5, 0x3A},
++ {0xC6, 0x1F},
++ {0xC7, 0x1E},
++ {0xC8, 0x1A},
++ {0xC9, 0xF8},
++ {0xCA, 0x17},
++ {0xCB, 0xCC},
++ {0xCC, 0x15},
++ {0xCD, 0x4A},
++ {0x00, 0x02}, // shading on
++
++ {0xfc, 0x00},
++ {0x79, 0xf4},
++ {0x7a, 0x09},
++
++ // 5.color correction
++ // 1229 CCM
++ // 2.0251 -1.0203 -0.0048
++ // -0.7080 1.8970 -0.1889
++ // -0.468 -0.444 1.912
++
++ {0xfc, 0x01},
++ {0x51, 0x08}, //R
++ {0x52, 0x18},
++ {0x53, 0xfb},
++ {0x54, 0xec},
++ {0x55, 0xff},
++ {0x56, 0xfc},
++ {0x57, 0xfd}, //G
++ {0x58, 0x2c},
++ {0x59, 0x07},
++ {0x5a, 0x95},
++ {0x5b, 0xff},
++ {0x5c, 0x3f},
++ {0x5d, 0xfe}, //B
++ {0x5e, 0x22},
++ {0x5f, 0xfe},
++ {0x60, 0x3a},
++ {0x61, 0x07},
++ {0x62, 0xa5},
++
++ //6.gamma
++ //Gamma
++ {0xfc, 0x01},
++
++ // R
++ {0x6F, 0x05},
++ {0x70, 0x14},
++ {0x71, 0x3c},
++ {0x72, 0x96},
++ {0x73, 0x00},
++
++ {0x74, 0x2c},
++ {0x75, 0xa2},
++ {0x76, 0xfc},
++ {0x77, 0x44},
++ {0x78, 0x56},
++
++ {0x79, 0x80},
++ {0x7A, 0xb7},
++ {0x7B, 0xed},
++ {0x7C, 0x16},
++ {0x7D, 0xab},
++
++ {0x7E, 0x3c},
++ {0x7F, 0x61},
++ {0x80, 0x83},
++ {0x81, 0xa4},
++ {0x82, 0xff},
++
++ {0x83, 0xc4},
++ {0x84, 0xe2},
++ {0x85, 0xff},
++ {0x86, 0xff},
++
++
++ // G
++ {0x87, 0x05},
++ {0x88, 0x14},
++ {0x89, 0x3c},
++ {0x8A, 0x96},
++ {0x8B, 0x00},
++
++ {0x8C, 0x2c},
++ {0x8D, 0xa2},
++ {0x8E, 0xfc},
++ {0x8F, 0x44},
++ {0x90, 0x56},
++
++ {0x91, 0x80},
++ {0x92, 0xb7},
++ {0x93, 0xed},
++ {0x94, 0x16},
++ {0x95, 0xab},
++
++ {0x96, 0x3c},
++ {0x97, 0x61},
++ {0x98, 0x83},
++ {0x99, 0xa4},
++ {0x9A, 0xff},
++
++ {0x9B, 0xc4},
++ {0x9C, 0xe2},
++ {0x9D, 0xff},
++ {0x9E, 0xff},
++
++ //B
++ {0x9F, 0x05},
++ {0xA0, 0x10},
++ {0xA1, 0x30},
++ {0xA2, 0x70},
++ {0xA3, 0x00},
++
++ {0xA4, 0x2c},
++ {0xA5, 0xa2},
++ {0xA6, 0xfc},
++ {0xA7, 0x44},
++ {0xA8, 0x56},
++
++ {0xA9, 0x80},
++ {0xAA, 0xb7},
++ {0xAB, 0xed},
++ {0xAC, 0x16},
++ {0xAD, 0xab},
++
++ {0xAE, 0x3c},
++ {0xAF, 0x61},
++ {0xB0, 0x83},
++ {0xB1, 0xa4},
++ {0xB2, 0xff},
++
++ {0xB3, 0xc4},
++ {0xB4, 0xe2},
++ {0xB5, 0xff},
++ {0xB6, 0xff},
++
++ // 7.hue
++ {0xFC, 0x00},
++ {0x62, 0x00}, // hue auto control off
++
++ {0xFC, 0x05},
++ {0x4E, 0x60},
++ {0x4F, 0xA0},
++ {0x50, 0x35},
++ {0x51, 0xA0},
++ {0x52, 0x20},
++ {0x53, 0x01},
++ {0x54, 0xE0},
++ {0x55, 0xE0},
++ {0x56, 0x54},
++ {0x57, 0x20},
++ {0x58, 0x20},
++ {0x59, 0xF0},
++
++ // 8.white point
++ // AWB Start Point
++ {0xfc, 0x07},
++ {0x05, 0x00},
++ {0x06, 0x08},
++ {0x07, 0x1b},
++ {0x08, 0xf0},
++ {0x09, 0x00}, // R
++ {0x0a, 0xa8},
++ {0x0b, 0x00}, // B
++ {0x0c, 0xb0},
++ {0x0d, 0x00}, // G
++ {0x0e, 0x40},
++
++ {0xfc, 0x00},
++ {0x70, 0x02},
++
++ {0x40, 0x8a}, //2000K
++ {0x41, 0xe5},
++ {0x42, 0x95}, //3100K
++ {0x43, 0xba},
++ {0x44, 0xbc}, //5100K
++ {0x45, 0x99},
++
++ {0x34, 0x24},
++ {0x35, 0x10},
++ {0x36, 0x13},
++ {0x37, 0x04},
++ {0x38, 0x10},
++ {0x39, 0x28},
++ {0x3a, 0x1e},
++ {0x3b, 0x2a},
++ {0x31, 0x00}, // skin tone[6], CW delete[5]
++#if 0
++ // Added by SOP at 02/09/2006
++ {0xfc, 0x00},
++ {0x02, 0x00} // Image format from UXGA to VGA
++ // 0: UXGA, 1: SXGA, 2: VGA, 3: QVGA, 4: QQVGA, 5: CIF, 6: QCIF
++#else
++ {0xfc, 0x00},
++ {0x72, 0xfa},
++ {0x74, 0x90},
++
++ {0xfc, 0x02},
++ {0x50, 0x12},
++ {0x52, 0x7a}, // AWB_AE_DIFF
++
++ {0xfc, 0x00},
++ {0x74, 0x18},
++
++ {0xfc, 0x04},
++ {0xed, 0x02},
++ {0xc3, 0x76},
++ {0xd7, 0x58},
++
++ {0xdc, 0x80},
++ {0xdd, 0x02}, // SC type selection
++ {0xde, 0xe0}, //16 // SC type global gain
++ {0xdf, 0x01},
++ {0xe4, 0x80},
++ {0xe5, 0x02}, // SC type selection
++ {0xe6, 0xe0}, //16 // SC type global gain
++ {0xe7, 0x01},
++
++ {0xe9, 0x4d},
++ {0xea, 0x08},
++ {0xeb, 0x00},
++
++ {0xda, 0xcd},
++ {0xdb, 0xcd},
++
++ {0xfc, 0x05}, // AWB_AE_DIFF
++ {0x64, 0xfe},
++ {0x65, 0xfe},
++ {0x66, 0xfd},
++
++ {0xfc, 0x0b},
++ {0x24, 0x20},
++ {0x26, 0x20},
++ {0x2e, 0xf0},
++ {0x32, 0xf0},
++ {0x39, 0xa0},
++
++ {0xfc, 0x00},
++ {0x02, 0x09},
++
++ {0xfc, 0x09},
++ {0x1d, 0xff},
++ {0x1e, 0xff},
++ {0x1f, 0xff},
++ {0x20, 0xff},
++ {0x21, 0xff},
++ {0x22, 0xff},
++ {0x23, 0xff},
++ {0x24, 0xff},
++ {0x25, 0xff},
++ {0x26, 0xff},
++ {0x27, 0xff},
++ {0x28, 0xff},
++ {0x29, 0xff},
++ {0x2a, 0xff},
++ {0x2b, 0xff},
++ {0x2c, 0xff},
++ {0x2d, 0xff},
++ {0x2e, 0xff},
++ {0x2f, 0xff},
++ {0x31, 0xff},
++ {0x32, 0xff},
++ {0x33, 0xff},
++ {0x34, 0xff},
++#endif
++};
++
++
++// For SXGA (1280 x 1024 = 1.3M) on 3BA module
++s5k3xa_t s5k3ba_reg_sxga[] =
++{
++// PLL SETTING Input = 25Mhz, Output = 64Mhz, UXGA (2Mpixel)
++ // 1. initial setting
++
++ {0xfc, 0x01},
++ {0x04, 0x03}, //ARM Clock divider(1/4)
++
++ //In case of PCLK = 64MHz
++ {0xfc, 0x02},
++ {0x52, 0x80}, //PLL M
++
++ {0xfc, 0x02},
++ {0x50, 0x19}, //PLL S,P
++
++ {0xfc, 0x07},
++ {0x58, 0x10},
++ {0x59, 0x00},
++ {0x5A, 0x00},
++ {0x5B, 0x6c},
++
++ {0xfc, 0xf0},
++ {0x00, 0x40},
++
++ {0xfc, 0x00},
++ {0x62, 0x02},
++ {0xbc, 0xe0}, // AWB_AE_DIFF
++
++ {0xfc, 0x03},
++ {0x2d, 0x02},
++ {0xfc, 0x01},
++ {0x02, 0x02}, // YCbCr Order
++
++ {0xfc, 0x02},
++ {0x4a, 0xc1}, // SC type selection
++ {0x37, 0x18}, //16 // SC type global gain
++ {0x47, 0xc4}, // r-ramp by chin
++
++
++ {0xfc, 0x01}, //AWB Window Area (except sky)
++ {0xc4, 0x01},
++ {0xc5, 0x4e},
++ {0xc7, 0x6e},
++
++ {0xfc, 0x02},
++ {0x30, 0x84}, //Analog offset
++
++ {0xfc, 0x00},
++ {0x3d, 0x10}, //AWB Low Y limit
++
++ {0xfc, 0x02},
++ {0x3d, 0x06}, //ADLC OFF
++ {0x44, 0x5b}, //clamp enable
++ {0x55, 0x03},
++
++ {0xfc, 0x06},
++ {0x0c, 0x01},
++ {0x0d, 0x4e},
++ {0x0f, 0x6e},
++
++ {0xfc, 0x00},
++ {0x78, 0x58}, //AGC MAX (30lux_Micron¹à±âY=60code)
++
++ {0xfc, 0x02},
++ {0x45, 0x8c}, //CDS timing_ÀúÁ¶µµ greenish ÇØ°á(15fps)
++ {0x49, 0x80}, // APS Current 2uA
++
++ {0xfc, 0x01},
++ {0x25, 0x14}, //10 //Digital Clamp
++
++ {0xfc, 0x00},
++ {0x6c, 0xac}, //AE target (Macbeth white=240)
++ {0x6d, 0x00},
++
++ // 2. ISP tuning
++ // ISP_tuning
++ {0xfc, 0x00},
++ {0x01, 0x00}, // I2C hold mode off
++
++ {0xfc, 0x01},
++ {0x00, 0x00}, // ISP BPR Off
++ {0x0c, 0x02}, // Full YC
++ {0xc8, 0x19}, // AWB Y Max
++
++ {0xfc, 0x00},
++ {0x81, 0x00}, // AWB G gain suppress disable
++ {0x29, 0x04},
++ {0x2a, 0x00},
++ {0x2b, 0x04}, // color level
++ {0x2c, 0x00},
++
++ {0xfc, 0x07},
++ {0x11, 0x00}, // G offset
++ {0x37, 0x00}, // Flicker Add
++
++ {0xfc, 0x00},
++ {0x72, 0xa0}, // Flicker for 32MHz
++ {0x74, 0x18}, // Flicker
++ {0x73, 0x00}, // Frame AE
++
++ {0xfc, 0x05},
++ {0x64, 0x00}, // Darkslice R
++ {0x65, 0x00}, // Darkslice G
++ {0x66, 0x00}, // Darkslice B
++
++ //Edge
++ {0xfc, 0x05},
++ {0x2c, 0x0a}, //14 // positive gain
++ {0x30, 0x0a}, //10 // negative edge gain
++ {0x34, 0x1a}, // APTCLP
++ {0x35, 0x10}, //0a // APTSC
++ {0x36, 0x0b}, // ENHANCE
++ {0x3f, 0x00}, // NON-LIN
++ {0x45, 0x30}, // EGREF
++ {0x47, 0x00}, // LLREF
++ {0x48, 0x08}, // by chin
++ {0x49, 0x39}, // CSSEL EGSEL CS_DLY by
++ {0x40, 0x41}, // Y delay
++
++ {0xfc, 0x00},
++ {0x7e, 0xfc},
++ // s7e8c //NR GrGb off
++ // [7]: BPR [6]:Noise Filter(1D/NR) [4]: GrGb Enable [3]:BPR Data Threshold
++ // [2]: color suppress [1]: Y gain suppress [0]: Digital Clamp
++
++ // GrGb Correction setting
++ {0xfc, 0x01},
++ {0x44, 0x0c},
++ //s4400
++ /// [4]: GrGb full [3]: GrGb On
++ /// [2]: GrGb Rb On
++ {0xfc, 0x0b},
++ {0x21, 0x00}, // Start AGC
++ {0x22, 0x10}, // AGCMIN
++ {0x23, 0x50}, // AGCMAX
++ {0x24, 0x18}, // G Th AGCMIN(23d)
++ {0x25, 0x52}, // G Th AGCMAX(50d)
++ {0x26, 0x38}, // RB Th AGCMIN
++ {0x27, 0x52}, // RB Th AGCMAX
++ // GrGb Correction setting End
++
++ ///////////////////////////////////
++ // BPR Setting
++ {0xfc, 0x01},
++ {0x3f, 0x00}, // setting because S/W bug
++
++ {0xfc, 0x0b},
++ {0x0b, 0x00}, // ISP BPR On Start
++ {0x0c, 0x00}, // Th13 AGC Min
++ {0x0d, 0x5a}, // Th13 AGC Max
++ {0x0e, 0x01}, //00 // Th1 Max H for AGCMIN
++ {0x0f, 0xff}, //c0 // Th1 Max L for AGCMIN
++ {0x10, 0x00}, // Th1 Min H for AGCMAX
++ {0x11, 0x10}, //00 // Th1 Min L for AGCMAX
++ {0x12, 0xff}, // Th3 Max H for AGCMIN
++ {0x13, 0xff}, // Th3 Max L for AGCMIN
++ {0x14, 0xff}, // Th3 Min H for AGCMAX
++ {0x15, 0xff}, // Th3 Min L for AGCMAX
++
++ // NR Setting
++ {0xfc, 0x01},
++ {0x4b, 0x01}, // NR Enable
++ // s4b00 // NR Enable
++
++ {0xfc, 0x0b},
++ {0x28, 0x00}, //NR Start AGC
++ {0x29, 0x00}, // SIG Th AGCMIN H
++ {0x2a, 0x0a}, //14 // SIG Th AGCMIN L
++ {0x2b, 0x00}, // SIG Th AGCMAX H
++ {0x2c, 0x0a}, //14 // SIG Th AGCMAX L
++ {0x2d, 0x00}, // PRE Th AGCMIN H
++ {0x2e, 0xc0}, //64 // PRE Th AGCMIN L(100d)
++ {0x2f, 0x01}, // PRE Th AGCMAX H(300d)
++ {0x30, 0x2c}, // PRE Th AGCMAX L
++ {0x31, 0x00}, // POST Th AGCMIN H
++ {0x32, 0xe0}, //64 // POST Th AGCMIN L(100d)
++ {0x33, 0x01}, // POST Th AGCMAX H(300d)
++ {0x34, 0x2c}, // POST Th AGCMAX L
++ // NR Setting End
++
++ // Color suppress setting
++ {0xfc, 0x0b},
++ {0x08, 0x50}, // C suppress AGC MIN
++ {0x09, 0x03}, // C suppress MIN H
++ {0x0a, 0x80}, // C suppress MIN L
++ // C Suppress Setting End
++
++ {0xfc, 0x05},
++ {0x4a, 0x00}, //01 // Edge Color Suppress, 9/13
++
++ // 1D Y LPF Filter
++ {0xfc, 0x01},
++ // s05e0 // Default s60
++ {0x05, 0x60}, // Default s60
++ // [7]: Y LPF filter On [6]: Clap On
++
++ {0xfc, 0x0b},
++ {0x35, 0x00}, // YLPF Start AGC
++ {0x36, 0x50}, // YLPF01 AGCMIN
++ {0x37, 0x50}, // YLPF01 AGCMAX
++ {0x38, 0x00}, // YLPF SIG01 Th AGCMINH
++ {0x39, 0x90}, //00 // YLPF SIG01 Th AGCMINL
++ {0x3a, 0x01}, // YLPF SIG01 Th AGCMAXH
++ {0x3b, 0xa0}, // YLPF SIG01 Th AGCMAXL
++ {0x3c, 0x50}, // YLPF02 AGCMIN
++ {0x3d, 0x50}, // YLPF02 AGCMAX
++ {0x3e, 0x00}, // YLPF SIG02 Th AGCMINH
++ {0x3f, 0xa0}, //00 // YLPF SIG02 Th AGCMINL
++ {0x40, 0x01}, // YLPF SIG02 Th AGCMAXH s73
++ {0x41, 0xb0}, // YLPF SIG02 Th AGCMAXL
++ // Y LPF Filter setting End
++
++ // SET EDGE COLOR SUPPRESS AND Y-LPF
++ {0xfc, 0x05},
++ {0x42, 0x1F},
++ {0x43, 0x1F},
++ {0x44, 0x0E},
++ {0x45, 0x8C}, //
++ {0x46, 0x7A},
++ {0x47, 0x60},
++ {0x48, 0x0C},
++ {0x49, 0x39},
++ {0x4A, 0x01},
++ {0x4B, 0xB1},
++ {0x4C, 0x3B},
++ {0x4D, 0x14},
++
++ // NR Setting
++ {0xfc, 0x01},
++ {0x4b, 0x01}, // NR Enable
++
++ // Set multipliers (which are not suppressed)
++ {0xfc, 0x01},
++ {0x48, 0x11},
++
++ // Suppressed parameters
++ {0xfc, 0x0B},
++ {0x21, 0x00},
++ {0x22, 0x10},
++ {0x23, 0x60},
++ {0x24, 0x10},
++ {0x25, 0x28},
++ {0x26, 0x08},
++ {0x27, 0x20},
++
++ {0x28, 0x00}, //NR Start AGC
++ {0x29, 0x00}, // SIG Th AGCMIN H
++ {0x2A, 0x02}, // SIG Th AGCMIN L
++ {0x2B, 0x00}, // SIG Th AGCMAX H
++ {0x2C, 0x14}, // SIG Th AGCMAX L
++ {0x2D, 0x03}, // PRE Th AGCMIN H
++ {0x2E, 0x84}, // PRE Th AGCMIN L
++ {0x2F, 0x03}, // PRE Th AGCMAX H
++ {0x30, 0x84}, // PRE Th AGCMAX L
++ {0x31, 0x00}, // POST Th AGCMIN H
++ {0x32, 0x00}, // POST Th AGCMIN L
++ {0x33, 0x00}, // POST Th AGCMAX H
++ {0x34, 0xC8}, // POST Th AGCMAX L
++
++ {0x35, 0x00}, // 1D Y filter setting
++ {0x36, 0x10},
++ {0x37, 0x50},
++ {0x38, 0x00},
++ {0x39, 0x14},
++ {0x3A, 0x00},
++ {0x3B, 0x50},
++ {0x3C, 0x10},
++ {0x3D, 0x50},
++ {0x3E, 0x00},
++ {0x3F, 0x28},
++ {0x40, 0x00},
++ {0x41, 0xA0},
++
++ // To avoid AWB tracking @ max AGC gain even though AE is unstable state
++ {0xfc, 0x00},
++ {0xba, 0x50}, // AE Target minus AE Average
++ {0xbb, 0x00},
++ {0xbc, 0x00},
++
++ // 3. AE weight & etc linear
++ // AE Window Weight linear(EVT1)0929
++ {0xfc, 0x20}, // upper window weight zero
++
++ {0x60, 0x11},
++ {0x61, 0x11},
++ {0x62, 0x11},
++ {0x63, 0x11},
++ {0x64, 0x11},
++ {0x65, 0x11},
++ {0x66, 0x11},
++ {0x67, 0x11},
++ {0x68, 0x11},
++ {0x69, 0x11},
++ {0x6a, 0x11},
++ {0x6b, 0x11},
++ {0x6c, 0x11},
++ {0x6d, 0x11},
++ {0x6e, 0x11},
++ {0x6f, 0x11},
++ {0x70, 0x11},
++ {0x71, 0x11},
++ {0x72, 0x11},
++ {0x73, 0x11},
++ {0x74, 0x11},
++ {0x75, 0x11},
++ {0x76, 0x11},
++ {0x77, 0x11},
++ {0x78, 0x11},
++ {0x79, 0x11},
++ {0x7a, 0x11},
++ {0x7b, 0x11},
++ {0x7c, 0x11},
++ {0x7d, 0x11},
++ {0x7e, 0x11},
++ {0x7f, 0x11},
++
++ // AE window Weight setting End
++ //hue gain linear
++ {0xfc, 0x00},
++
++ {0x48, 0x40},
++ {0x49, 0x40},
++ {0x4a, 0x00},
++ {0x4b, 0x00},
++ {0x4c, 0x40},
++ {0x4d, 0x40},
++ {0x4e, 0x00},
++ {0x4f, 0x00},
++ {0x50, 0x40},
++ {0x51, 0x40},
++ {0x52, 0x00},
++ {0x53, 0x00},
++ {0x54, 0x40},
++ {0x55, 0x40},
++ {0x56, 0x00},
++ {0x57, 0x00},
++ {0x58, 0x40},
++ {0x59, 0x40},
++ {0x5a, 0x00},
++ {0x5b, 0x00},
++ {0x5c, 0x40},
++ {0x5d, 0x40},
++ {0x5e, 0x00},
++ {0x5f, 0x00},
++ {0x62, 0x00}, //hue enable OFF
++
++ // 4. shading (FlexÇâ 3000K manual shading)
++ {0xfc, 0x09},
++ // DSP9_SH_WIDTH_H
++ {0x01, 0x06},
++ {0x02, 0x40},
++ // DSP9_SH_HEIGHT_H
++ {0x03, 0x04},
++ {0x04, 0xB0},
++ {0x05, 0x03},
++ {0x06, 0x13},
++ {0x07, 0x02},
++ {0x08, 0x5A},
++ {0x09, 0x03},
++ {0x0A, 0x15},
++ {0x0B, 0x02},
++ {0x0C, 0x5B},
++ {0x0D, 0x03},
++ {0x0E, 0x0D},
++ {0x0F, 0x02},
++ {0x10, 0x5D},
++ {0x1D, 0x80},
++ {0x1E, 0x00},
++ {0x1F, 0x80},
++ {0x20, 0x00},
++ {0x23, 0x80},
++ {0x24, 0x00},
++ {0x21, 0x80},
++ {0x22, 0x00},
++ {0x25, 0x80},
++ {0x26, 0x00},
++ {0x27, 0x80},
++ {0x28, 0x00},
++ {0x2B, 0x80},
++ {0x2C, 0x00},
++ {0x29, 0x80},
++ {0x2A, 0x00},
++ {0x2D, 0x80},
++ {0x2E, 0x00},
++ {0x2F, 0x80},
++ {0x30, 0x00},
++ {0x33, 0x80},
++ {0x34, 0x00},
++ {0x31, 0x80},
++ {0x32, 0x00},
++ // DSP9_SH_VAL_R0H
++ {0x35, 0x01},
++ {0x36, 0x00},
++ {0x37, 0x01},
++ {0x38, 0x0F},
++ {0x39, 0x01},
++ {0x3A, 0x42},
++ {0x3B, 0x01},
++ {0x3C, 0x9C},
++ {0x3D, 0x01},
++ {0x3E, 0xD0},
++ {0x3F, 0x02},
++ {0x40, 0x0F},
++ {0x41, 0x02},
++ {0x42, 0x3D},
++ {0x43, 0x02},
++ {0x44, 0x5E},
++ {0x45, 0x01},
++ {0x46, 0x00},
++ {0x47, 0x01},
++ {0x48, 0x0A},
++ {0x49, 0x01},
++ {0x4A, 0x2E},
++ {0x4B, 0x01},
++ {0x4C, 0x66},
++ {0x4D, 0x01},
++ {0x4E, 0x89},
++ {0x4F, 0x01},
++ {0x50, 0xB7},
++ {0x51, 0x01},
++ {0x52, 0xD8},
++ {0x53, 0x01},
++ {0x54, 0xFA},
++ // DS9_SH_VAL_B0H
++ {0x55, 0x01},
++ {0x56, 0x00},
++ {0x57, 0x01},
++ {0x58, 0x0A},
++ {0x59, 0x01},
++ {0x5A, 0x28},
++ {0x5B, 0x01},
++ {0x5C, 0x59},
++ {0x5D, 0x01},
++ {0x5E, 0x7A},
++ {0x5F, 0x01},
++ {0x60, 0xA1},
++ {0x61, 0x01},
++ {0x62, 0xC0},
++ {0x63, 0x01},
++ {0x64, 0xDC},
++ // DSP9_SH_M_R2_R1H
++ {0x65, 0x00},
++ {0x66, 0x9F},
++ {0x67, 0xE6},
++ {0x68, 0x02},
++ {0x69, 0x7F},
++ {0x6A, 0x9B},
++ {0x6B, 0x05},
++ {0x6C, 0x9F},
++ {0x6D, 0x1E},
++ {0x6E, 0x07},
++ {0x6F, 0xA6},
++ {0x70, 0xCC},
++ {0x71, 0x09},
++ {0x72, 0xFE},
++ {0x73, 0x6E},
++ {0x74, 0x0C},
++ {0x75, 0xA6},
++ {0x76, 0x04},
++ {0x77, 0x0F},
++ {0x78, 0x9D},
++ {0x79, 0x8C},
++ // DSP9_SH_M_R2_G1H
++ {0x7A, 0x00},
++ {0x7B, 0x9F},
++ {0x7C, 0x95},
++ {0x7D, 0x02},
++ {0x7E, 0x7E},
++ {0x7F, 0x54},
++ {0x80, 0x05},
++ {0x81, 0x9C},
++ {0x82, 0x3E},
++ {0x83, 0x07},
++ {0x84, 0xA2},
++ {0x85, 0xE3},
++ {0x86, 0x09},
++ {0x87, 0xF9},
++ {0x88, 0x53},
++ {0x89, 0x0C},
++ {0x8A, 0x9F},
++ {0x8B, 0x8D},
++ {0x8C, 0x0F},
++ {0x8D, 0x95},
++ {0x8E, 0x91},
++ // DSP9_SH_M_R2_B1H
++ {0x8F, 0x00},
++ {0x90, 0xA1},
++ {0x91, 0xFF},
++ {0x92, 0x02},
++ {0x93, 0x87},
++ {0x94, 0xFD},
++ {0x95, 0x05},
++ {0x96, 0xB1},
++ {0x97, 0xFA},
++ {0x98, 0x07},
++ {0x99, 0xC0},
++ {0x9A, 0x79},
++ {0x9B, 0x0A},
++ {0x9C, 0x1F},
++ {0x9D, 0xF6},
++ {0x9E, 0x0C},
++ {0x9F, 0xD0},
++ {0xA0, 0x74},
++ {0xA1, 0x0F},
++ {0xA2, 0xD1},
++ {0xA3, 0xF1},
++ // DSP9_SH_SUB_RR0H
++ {0xA4, 0x66},
++ {0xA5, 0x76},
++ {0xA6, 0x22},
++ {0xA7, 0x27},
++ {0xA8, 0x14},
++ {0xA9, 0x7E},
++ {0xAA, 0x1F},
++ {0xAB, 0x86},
++ {0xAC, 0x1B},
++ {0xAD, 0x52},
++ {0xAE, 0x18},
++ {0xAF, 0x1B},
++ {0xB0, 0x15},
++ {0xB1, 0x92},
++ // DSP9_SH_SUB_RG0H
++ {0xB2, 0x66},
++ {0xB3, 0xAA},
++ {0xB4, 0x22},
++ {0xB5, 0x38},
++ {0xB6, 0x14},
++ {0xB7, 0x88},
++ {0xB8, 0x1F},
++ {0xB9, 0x97},
++ {0xBA, 0x1B},
++ {0xBB, 0x60},
++ {0xBC, 0x18},
++ {0xBD, 0x28},
++ {0xBE, 0x15},
++ {0xBF, 0x9D},
++ // DSP9_SH_SUB_RB0H
++ {0xC0, 0x65},
++ {0xC1, 0x23},
++ {0xC2, 0x21},
++ {0xC3, 0xB6},
++ {0xC4, 0x14},
++ {0xC5, 0x3A},
++ {0xC6, 0x1F},
++ {0xC7, 0x1E},
++ {0xC8, 0x1A},
++ {0xC9, 0xF8},
++ {0xCA, 0x17},
++ {0xCB, 0xCC},
++ {0xCC, 0x15},
++ {0xCD, 0x4A},
++ {0x00, 0x02}, // shading on
++
++ {0xfc, 0x00},
++ {0x79, 0xf4},
++ {0x7a, 0x09},
++
++ // 5.color correction
++ // 1229 CCM
++ // 2.0251 -1.0203 -0.0048
++ // -0.7080 1.8970 -0.1889
++ // -0.468 -0.444 1.912
++
++ {0xfc, 0x01},
++ {0x51, 0x08}, //R
++ {0x52, 0x18},
++ {0x53, 0xfb},
++ {0x54, 0xec},
++ {0x55, 0xff},
++ {0x56, 0xfc},
++ {0x57, 0xfd}, //G
++ {0x58, 0x2c},
++ {0x59, 0x07},
++ {0x5a, 0x95},
++ {0x5b, 0xff},
++ {0x5c, 0x3f},
++ {0x5d, 0xfe}, //B
++ {0x5e, 0x22},
++ {0x5f, 0xfe},
++ {0x60, 0x3a},
++ {0x61, 0x07},
++ {0x62, 0xa5},
++
++ //6.gamma
++ //Gamma
++ {0xfc, 0x01},
++
++ // R
++ {0x6F, 0x05},
++ {0x70, 0x14},
++ {0x71, 0x3c},
++ {0x72, 0x96},
++ {0x73, 0x00},
++
++ {0x74, 0x2c},
++ {0x75, 0xa2},
++ {0x76, 0xfc},
++ {0x77, 0x44},
++ {0x78, 0x56},
++
++ {0x79, 0x80},
++ {0x7A, 0xb7},
++ {0x7B, 0xed},
++ {0x7C, 0x16},
++ {0x7D, 0xab},
++
++ {0x7E, 0x3c},
++ {0x7F, 0x61},
++ {0x80, 0x83},
++ {0x81, 0xa4},
++ {0x82, 0xff},
++
++ {0x83, 0xc4},
++ {0x84, 0xe2},
++ {0x85, 0xff},
++ {0x86, 0xff},
++
++ // G
++ {0x87, 0x05},
++ {0x88, 0x14},
++ {0x89, 0x3c},
++ {0x8A, 0x96},
++ {0x8B, 0x00},
++
++ {0x8C, 0x2c},
++ {0x8D, 0xa2},
++ {0x8E, 0xfc},
++ {0x8F, 0x44},
++ {0x90, 0x56},
++
++ {0x91, 0x80},
++ {0x92, 0xb7},
++ {0x93, 0xed},
++ {0x94, 0x16},
++ {0x95, 0xab},
++
++ {0x96, 0x3c},
++ {0x97, 0x61},
++ {0x98, 0x83},
++ {0x99, 0xa4},
++ {0x9A, 0xff},
++
++ {0x9B, 0xc4},
++ {0x9C, 0xe2},
++ {0x9D, 0xff},
++ {0x9E, 0xff},
++
++ //B
++ {0x9F, 0x05},
++ {0xA0, 0x10},
++ {0xA1, 0x30},
++ {0xA2, 0x70},
++ {0xA3, 0x00},
++
++ {0xA4, 0x2c},
++ {0xA5, 0xa2},
++ {0xA6, 0xfc},
++ {0xA7, 0x44},
++ {0xA8, 0x56},
++
++ {0xA9, 0x80},
++ {0xAA, 0xb7},
++ {0xAB, 0xed},
++ {0xAC, 0x16},
++ {0xAD, 0xab},
++
++ {0xAE, 0x3c},
++ {0xAF, 0x61},
++ {0xB0, 0x83},
++ {0xB1, 0xa4},
++ {0xB2, 0xff},
++
++ {0xB3, 0xc4},
++ {0xB4, 0xe2},
++ {0xB5, 0xff},
++ {0xB6, 0xff},
++
++ // 7.hue
++ {0xFC, 0x00},
++ {0x62, 0x00}, // hue auto control off
++
++ {0xFC, 0x05},
++ {0x4E, 0x60},
++ {0x4F, 0xA0},
++ {0x50, 0x35},
++ {0x51, 0xA0},
++ {0x52, 0x20},
++ {0x53, 0x01},
++ {0x54, 0xE0},
++ {0x55, 0xE0},
++ {0x56, 0x54},
++ {0x57, 0x20},
++ {0x58, 0x20},
++ {0x59, 0xF0},
++
++ // 8.white point
++ // AWB Start Point
++ {0xfc, 0x07},
++ {0x05, 0x00},
++ {0x06, 0x08},
++ {0x07, 0x1b},
++ {0x08, 0xf0},
++ {0x09, 0x00}, // R
++ {0x0a, 0xa8},
++ {0x0b, 0x00}, // B
++ {0x0c, 0xb0},
++ {0x0d, 0x00}, // G
++ {0x0e, 0x40},
++
++ {0xfc, 0x00},
++ {0x70, 0x02},
++
++ {0x40, 0x8a}, //2000K
++ {0x41, 0xe5},
++ {0x42, 0x95}, //3100K
++ {0x43, 0xba},
++ {0x44, 0xbc}, //5100K
++ {0x45, 0x99},
++
++ {0x34, 0x24},
++ {0x35, 0x10},
++ {0x36, 0x13},
++ {0x37, 0x04},
++ {0x38, 0x10},
++ {0x39, 0x28},
++ {0x3a, 0x1e},
++ {0x3b, 0x2a},
++ {0x31, 0x00}, // skin tone[6], CW delete[5]
++
++ // Added by SOP at 02/09/2006
++ {0xfc, 0x00},
++ {0x02, 0x01} // Image format from UXGA to VGA
++ // 0: UXGA, 1: SXGA, 2: VGA, 3: QVGA, 4: QQVGA, 5: CIF, 6: QCIF
++};
++
++
++// For UXGA (1600 x 1200 = 2M) on 3BA module
++s5k3xa_t s5k3ba_reg_uxga[] =
++{
++
++//[[CAMIF_POWER_UP]]
++{0xfc, 0x02},
++{0x52, 0x86}, // PLL M
++//{0x52, 0x80}, // PLL M
++//{0x52, 0x64}, // PLL M
++{0xfc, 0x01},
++{0x04, 0x03}, // Original ARM Clock Divider
++//{0x04, 0x02},
++{0xfc, 0x02},
++//{0x50, 0x5B}, //Original
++{0x50, 0x59}, // Input Clock 25Mhz
++{0xfc, 0x02},
++{0x30, 0x84}, // Analog offset
++{0x3d, 0x26}, // ADLC enable
++{0x4f, 0x7a}, // I/O driving strength 7mA
++//s45c0 // CDS S1S timing for HN Á¦°Å <- CC
++{0xfc, 0x03},
++//{0x00, 0x02},
++//s2d03 //02
++{0xfc, 0x07},
++{0x58, 0x10},
++{0x59, 0x00},
++{0x5a, 0x00},
++{0x5b, 0x6c},
++{0xfc, 0xf0},
++{0x00, 0x40},
++{0xfc, 0x01},
++//{0x02, 0x02}, // YCbCr Order
++//sfc05
++//s112e // Cb coef.
++{0xfc, 0x05}, // YCbCr Coef
++{0x11, 0x2e},
++//s113d //2e // Blue saturation
++{0x75, 0x05}, // scaler input vsync start
++{0x8c, 0xb1}, // CLIP V size L
++{0x8d, 0x04}, // CLIP V size H
++{0x77, 0xb1}, // scaler input vsync height
++{0xfc, 0x03}, // UXGA Size
++{0x12, 0x05},
++{0x26, 0xb1},
++{0x27, 0x04},
++{0x14, 0xb1},
++///////////////////////////////////////////
++{0xfc, 0x02},
++{0x4a, 0xc1}, // SC type
++{0x37, 0x16}, // SC type
++{0x47, 0xc4}, // r-ramp by chin
++//////////////////////////////////////////
++
++//////////////////////////////////////////
++// Must Mirro Function
++{0xfc, 0x07},
++{0x69, 0x00}, // Mirror XOR
++{0xfc, 0x00},
++{0x23, 0x91}, // Disable wcp/wrd
++// End Mirror
++//////////////////////////////////////////
++
++/////////////////////////////////////////
++// Special Effect Cr Cb setting
++{0xfc, 0x07},
++{0x30, 0x20},
++{0x31, 0xc0},
++{0x32, 0xc0},
++{0x33, 0x40},
++// End
++/////////////////////////////////////////
++
++// AWB Window Area
++//sfc01
++//sc401
++//sc54e
++//sc76e
++
++// color matrix
++{0xfc, 0x01},
++{0x51, 0x06}, //06
++{0x52, 0x68}, //68 //68
++{0x53, 0xFE}, //FE
++{0x54, 0x23}, //23
++{0x55, 0xFF}, //FF
++{0x56, 0x88}, //88
++ //
++{0x57, 0xFE}, //FE
++{0x58, 0x00}, //00
++{0x59, 0x07}, //07
++{0x5A, 0x1F}, ////1F //1F //1F
++{0x5B, 0xFE}, //FE
++{0x5C, 0xF3}, //F3
++ //
++{0x5D, 0xFF}, //FF
++{0x5E, 0x00}, //00
++{0x5F, 0xFC}, //FC
++{0x60, 0x6F}, //df //6F //6F
++{0x61, 0x08}, //08
++{0x62, 0x9F}, //bf //9F //9F
++
++//Edge
++{0xfc, 0x05},
++{0x2c, 0x0f}, //0a //10 //14 // positive gain
++{0x30, 0x0c}, //10 //14 // negative edge gain
++{0x34, 0x12}, /////// // APTCLP
++{0x35, 0x06}, //0c //0a // APTSC
++{0x36, 0x0b}, // ENHANCE
++{0x3f, 0x00}, // NON-LIN
++{0x45, 0x30}, // EGREF
++{0x47, 0x60}, // LLREF
++{0x48, 0x08}, // by chin
++{0x49, 0x39}, // CSSEL EGSEL CS_DLY by
++{0x47, 0x00},
++{0x40, 0x41}, // Y delay
++//Gamma 2
++{0xfc, 0x01},
++{0x6F, 0x08}, // R
++{0x70, 0x10},
++{0x71, 0x40},
++{0x72, 0xd0},
++{0x73, 0x00},
++{0x74, 0xa8},
++{0x75, 0x08},
++{0x76, 0x68},
++{0x77, 0xba},
++{0x78, 0x6a},
++{0x79, 0x08},
++{0x7A, 0x4a},
++{0x7B, 0x6c},
++{0x7C, 0x8a},
++{0x7D, 0xff},
++{0x7E, 0x9e},
++{0x7F, 0xb0},
++{0x80, 0xc0},
++{0x81, 0xd0},
++{0x82, 0xff},
++{0x83, 0xde},
++{0x84, 0xe6},
++{0x85, 0xea},
++{0x86, 0xff},
++{0x87, 0x08}, //G
++{0x88, 0x40},
++{0x89, 0x78},
++{0x8A, 0xf0},
++{0x8B, 0x00},
++{0x8C, 0xb0},
++{0x8D, 0x10},
++{0x8E, 0x68},
++{0x8F, 0xb6},
++{0x90, 0x6a},
++{0x91, 0x04},
++{0x92, 0x30},
++{0x93, 0x53},
++{0x94, 0x74},
++{0x95, 0xff},
++{0x96, 0x8d},
++{0x97, 0xa2},
++{0x98, 0xb6},
++{0x99, 0xc8},
++{0x9A, 0xff},
++{0x9B, 0xd6},
++{0x9C, 0xe0},
++{0x9D, 0xea},
++{0x9E, 0xff},
++{0x9F, 0x08}, //B
++{0xA0, 0x40},
++{0xA1, 0x78},
++{0xA2, 0xf0},
++{0xA3, 0x00},
++{0xA4, 0xb0},
++{0xA5, 0x10},
++{0xA6, 0x68},
++{0xA7, 0xba},
++{0xA8, 0x6a},
++{0xA9, 0x08},
++{0xAA, 0x3a},
++{0xAB, 0x60},
++{0xAC, 0x80},
++{0xAD, 0xff},
++{0xAE, 0x95},
++{0xAF, 0xa8},
++{0xB0, 0xba},
++{0xB1, 0xcc},
++{0xB2, 0xff},
++{0xB3, 0xd8},
++{0xB4, 0xe2},
++{0xB5, 0xea},
++{0xB6, 0xff},
++{0xfc, 0x00}, // Hue Gain
++{0x48, 0x44},
++{0x49, 0x60},
++{0x4a, 0x00},
++{0x4b, 0x18},
++{0x4c, 0x58},
++{0x4d, 0x70}, //60
++{0x4e, 0x00},
++{0x4f, 0x00},
++{0x50, 0x44},
++{0x51, 0x60},
++{0x52, 0x00},
++{0x53, 0x18},
++{0x54, 0x58},
++{0x55, 0x70}, //60
++{0x56, 0x00},
++{0x57, 0x00},
++{0x58, 0x44},
++{0x59, 0x60},
++{0x5a, 0x00},
++{0x5b, 0x18},
++{0x5c, 0x50},
++{0x5d, 0x48},
++{0x5e, 0x08},
++{0x5f, 0x05}, //00
++//ISP_tuning
++{0xfc, 0x00},
++{0x01, 0x00}, // I2C hold mode off
++//s2222 // I2C master ctrl.
++//s2d5a // frame AE start 50
++{0x3e, 0x10}, // Y_min Y min level limit value of AWB ODM
++{0xfc, 0x01},
++{0x00, 0x00}, // ISP BPR Off
++{0x0c, 0x02}, // Full YC
++{0xc8, 0xe0}, //f0 // AWB Y Max
++////////////////////////////////
++// 2005.07.17 cspyo set
++///////////////////////////////
++{0xfc, 0x00},
++{0x24, 0x45}, // zoom skip 5fps
++{0x6c, 0xb8}, //ba //d2 //d8 // AE target
++{0x6d, 0x00}, //
++{0x78, 0x60}, // AGC Max
++{0x79, 0xfb}, //fc // R gain
++{0x7a, 0x03}, // B gain
++{0x81, 0x00}, // AWB G gain suppress disable
++{0x29, 0x04}, // Y level
++{0x2a, 0x10}, //50 // Y level
++{0x2b, 0x04}, // color level H
++{0x2c, 0x00}, //20 // color level L
++{0xfc, 0x07},
++{0x11, 0x00}, // G offset
++{0x37, 0x00}, // Flicker Add
++{0xfc, 0x00},
++{0x72, 0xa0}, // Flicker for 32MHz
++{0x74, 0x08}, // flicker 60Hz
++{0xfc, 0x05},
++{0x64, 0x02}, // Darkslice R
++{0x65, 0xfe}, // Darkslice G
++{0x66, 0xff}, // Darkslice B
++////////////////////////////////////
++{0xfc, 0x00},
++{0x7e, 0xfc},
++//s7e8c //NR GrGb off
++// [7]: BPR [6]:Noise Filter(1D/NR) [4]: GrGb Enable [3]:BPR Data Threshold
++// [2]: color suppress [1]: Y gain suppress [0]: Digital Clamp
++///////////////////////////////////
++////////////////////////////////////
++// GrGb Correction setting
++{0xfc, 0x01},
++{0x44, 0x0c},
++//s4400
++/// [4]: GrGb full [3]: GrGb On
++/// [2]: GrGb Rb On
++{0xfc, 0x0b},
++{0x21, 0x00}, // Start AGC
++{0x22, 0x10}, // AGCMIN
++{0x23, 0x50}, // AGCMAX
++{0x24, 0x18}, //0e //12 //17 // G Th AGCMIN(23d)
++{0x25, 0x32}, // G Th AGCMAX(50d)
++{0x26, 0x18}, //0e //12 //17 // RB Th AGCMIN
++{0x27, 0x32}, // RB Th AGCMAX
++// GrGb Correction setting End
++///////////////////////////////////
++// BPR Setting
++{0xfc, 0x01},
++{0x3f, 0x00}, // setting because S/W bug
++{0xfc, 0x0b},
++{0x0b, 0x00}, // ISP BPR On Start
++{0x0c, 0x00}, // Th13 AGC Min
++{0x0d, 0x40}, //5a // Th13 AGC Max
++{0x0e, 0x01}, //00 // Th1 Max H for AGCMIN
++{0x0f, 0xff}, //c0 // Th1 Max L for AGCMIN
++{0x10, 0x00}, // Th1 Min H for AGCMAX
++{0x11, 0x10}, //00 // Th1 Min L for AGCMAX
++{0x12, 0xff}, // Th3 Max H for AGCMIN
++{0x13, 0xff}, // Th3 Max L for AGCMIN
++{0x14, 0xff}, // Th3 Min H for AGCMAX
++{0x15, 0xff}, // Th3 Min L for AGCMAX
++///////////////////////////////////////////
++// NR Setting
++{0xfc, 0x01},
++{0x4b, 0x01}, // NR Enable
++//s4b00 // NR Enable
++{0xfc, 0x0b},
++{0x28, 0x00}, //NR Start AGC
++{0x29, 0x00}, // SIG Th AGCMIN H
++{0x2a, 0x0a}, //14 // SIG Th AGCMIN L
++{0x2b, 0x00}, // SIG Th AGCMAX H
++{0x2c, 0x0a}, //14 // SIG Th AGCMAX L
++{0x2d, 0x00}, // PRE Th AGCMIN H
++{0x2e, 0x70}, //50 //64 // PRE Th AGCMIN L(100d)
++{0x2f, 0x01}, // PRE Th AGCMAX H(300d)
++{0x30, 0x2c}, // PRE Th AGCMAX L
++{0x31, 0x00}, // POST Th AGCMIN H
++{0x32, 0x70}, //50 //64 // POST Th AGCMIN L(100d)
++{0x33, 0x01}, // POST Th AGCMAX H(300d)
++{0x34, 0x2c}, // POST Th AGCMAX L
++// NR Setting End
++////////////////////////////////
++// Color suppress setting
++{0xfc, 0x0b},
++{0x08, 0x50}, // C suppress AGC MIN
++{0x09, 0x04}, // C suppress MIN H
++{0x0a, 0x00}, // C suppress MIN L
++// C Suppress Setting End
++///////////////////////////////
++// 1D Y LPF Filter
++{0xfc, 0x01},
++//s05e0 // Default s60
++{0x05, 0x60}, // Default s60
++//[7]: Y LPF filter On [6]: Clap On
++{0xfc, 0x0b},
++{0x35, 0x00}, // YLPF Start AGC
++{0x36, 0x50}, // YLPF01 AGCMIN
++{0x37, 0x50}, // YLPF01 AGCMAX
++{0x38, 0x00}, // YLPF SIG01 Th AGCMINH
++{0x39, 0x00}, // YLPF SIG01 Th AGCMINL
++{0x3a, 0x00}, // YLPF SIG01 Th AGCMAXH
++{0x3b, 0xa0}, // YLPF SIG01 Th AGCMAXH
++{0x3c, 0x50}, // YLPF02 AGCMIN
++{0x3d, 0x50}, // YLPF02 AGCMAX
++{0x3e, 0x00}, // YLPF SIG02 Th AGCMINH
++{0x3f, 0x00}, // YLPF SIG02 Th AGCMINL
++{0x40, 0x00}, // YLPF SIG02 Th AGCMAXH
++{0x41, 0xa0}, // YLPF SIG02 Th AGCMAXH
++// Y LPF Filter setting End
++//------------------------------------------------------------------
++/// Set File
++/// - S5K3BAFB_CRF_June02+yihan_050707.xls generates
++/// - date : 2005-07-08
++///------------------------------------------------------------------
++/// Page : ISP Page 9
++{0xfc, 0x09},
++{0x00, 0x02}, // shading on
++{0x01, 0x06}, // size
++{0x02, 0x40},
++{0x03, 0x04},
++{0x04, 0xB0},
++{0x05, 0x03}, // shading center R
++{0x06, 0x19},
++{0x07, 0x02},
++{0x08, 0x75},
++{0x09, 0x03}, // shading center R
++{0x0A, 0x1b},
++{0x0b, 0x02},
++{0x0c, 0x7a},
++{0x0d, 0x03}, // shading center R
++{0x0e, 0x09},
++{0x0f, 0x02},
++{0x10, 0x7d},
++{0x35, 0x00}, // shading R
++{0x36, 0xff},
++{0x37, 0x01},
++{0x38, 0x06},
++{0x39, 0x01},
++{0x3A, 0x1d},
++{0x3B, 0x01},
++{0x3C, 0x44},
++{0x3D, 0x01},
++{0x3E, 0x5d},
++{0x3F, 0x01},
++{0x40, 0x7c},
++{0x41, 0x01},
++{0x42, 0x97},
++{0x43, 0x01},
++{0x44, 0xba},
++{0x45, 0x01}, // shading G
++{0x46, 0x01},
++{0x47, 0x01},
++{0x48, 0x08},
++{0x49, 0x01},
++{0x4A, 0x1d},
++{0x4B, 0x01},
++{0x4C, 0x40},
++{0x4D, 0x01},
++{0x4E, 0x58},
++{0x4F, 0x01},
++{0x50, 0x73},
++{0x51, 0x01},
++{0x52, 0x8a},
++{0x53, 0x01},
++{0x54, 0xa6},
++{0x55, 0x00}, // shading B
++{0x56, 0xff},
++{0x57, 0x01},
++{0x58, 0x05},
++{0x59, 0x01},
++{0x5A, 0x1a},
++{0x5B, 0x01},
++{0x5C, 0x3c},
++{0x5D, 0x01},
++{0x5E, 0x52},
++{0x5F, 0x01},
++{0x60, 0x6e},
++{0x61, 0x01},
++{0x62, 0x8b},
++{0x63, 0x01},
++{0x64, 0xb3},
++// sub-sampling
++{0xfc, 0x03},
++//{0x2d, 0x01}, // UXGA YCrCb Order
++{0x2d, 0x06}, // UXGA YCrCb Order
++{0x12, 0x05},
++{0x26, 0xb1},
++{0x27, 0x04},
++{0x14, 0xb1},
++{0xfc, 0x04},
++{0x14, 0xb1},
++{0x72, 0x05}, // H2 V1
++{0x74, 0xb1},
++{0xa2, 0x05}, // H1 V2
++{0xa3, 0x02},
++{0xa4, 0x59},
++{0xa7, 0x59},
++{0xa8, 0x02},
++{0xae, 0x59},
++{0xaf, 0x02},
++{0xb6, 0x59},
++{0xb7, 0x02},
++{0xd2, 0x05}, // H2 V2
++{0xd3, 0x02},
++{0xd4, 0x59},
++{0xd7, 0x59},
++{0xd8, 0x02},
++{0xde, 0x59},
++{0xdf, 0x02},
++{0xe6, 0x59},
++{0xe7, 0x02},
++{0xfc, 0x14}, // H4 V1
++{0x05, 0x98},
++{0x0e, 0x02},
++{0x12, 0x05},
++{0x13, 0x04},
++{0x14, 0xb1},
++{0x17, 0xb0},
++{0x18, 0x04},
++{0x1e, 0xb0},
++{0x1f, 0x04},
++{0x26, 0xb1},
++{0x27, 0x04},
++{0x35, 0x98}, // H4 V4
++{0x3e, 0x02},
++{0x42, 0x05},
++{0x43, 0x01},
++{0x44, 0x2d},
++{0x47, 0x2d},
++{0x48, 0x01},
++{0x4e, 0x2d},
++{0x4f, 0x01},
++{0x56, 0x2e},
++{0x57, 0x01},
++// AE Window Size control for sub-sampling
++{0xfc, 0x06},
++{0x12, 0x00}, // H=2 V=1(800*1200)
++{0x13, 0x61}, // AE H End
++{0x16, 0x00}, // AE V End
++{0x17, 0x94},
++{0x22, 0x00}, // H=1 V=2(1600*600)
++{0x23, 0xc5}, // AE H End
++{0x26, 0x00}, // AE V End
++{0x27, 0x4b},
++{0x32, 0x00}, // H=2 V=2(800*600)
++{0x33, 0x61}, // AE H End
++{0x36, 0x00}, // AE V End
++{0x37, 0x48},
++{0x38, 0x00}, // AWB Window Size
++{0x39, 0x0a},
++{0x3a, 0x00},
++{0x3b, 0x61},
++{0x3c, 0x00},
++{0x3d, 0x75},
++{0x3e, 0x00},
++{0x3f, 0x3e},
++{0x42, 0x00}, // H=4 V=1(400*1200)
++{0x43, 0x2f}, // AE H End
++{0x46, 0x00}, // AE V End
++{0x47, 0x97},
++{0x52, 0x00}, // H=4 V=4(400*300)
++{0x53, 0x30}, // AE H End
++{0x56, 0x00}, // AE V End
++{0x57, 0x26},
++// white point
++{0xfc, 0x00},
++{0x40, 0x78}, //7d a
++{0x41, 0xe0}, //e2
++{0x42, 0x83}, //95 12
++{0x43, 0xc6}, //ba c
++{0x44, 0xad}, //bc f
++{0x45, 0x9d}, //99 4
++{0x34, 0x18}, //115
++{0x35, 0x14}, //02
++{0x36, 0x04}, //04
++{0x37, 0x12}, //04
++{0x38, 0x06}, //03
++{0x39, 0x1d}, //18 //25
++{0x3a, 0x14}, //12 //22 //1f
++{0x3b, 0x2c}, //16 //18 //1a
++{0xfc, 0x20}, // AE window weight
++{0x60, 0x00},
++{0x61, 0x00},
++{0x62, 0x00},
++{0x63, 0x00},
++{0x64, 0x11},
++{0x65, 0x11},
++{0x66, 0x11},
++{0x67, 0x11},
++{0x68, 0x11},
++{0x69, 0x22},
++{0x6a, 0x22},
++{0x6b, 0x11},
++{0x6c, 0x11},
++{0x6d, 0x22},
++{0x6e, 0x22},
++{0x6f, 0x11},
++{0x70, 0x11},
++{0x71, 0x22},
++{0x72, 0x22},
++{0x73, 0x11},
++{0x74, 0x11},
++{0x75, 0x22},
++{0x76, 0x22},
++{0x77, 0x11},
++{0x78, 0x33},
++{0x79, 0x33},
++{0x7a, 0x33},
++{0x7b, 0x33},
++{0x7c, 0x33},
++{0x7d, 0x33},
++{0x7e, 0x33},
++{0x7f, 0x33},
++{0xfc, 0x01},
++{0x02, 0x02},
++{0xfc, 0x02},
++{0x30, 0x83},
++{0x44, 0x5b}, // clamp enable
++{0x55, 0x03},
++{0xfc, 0x00},
++{0x62, 0x02},
++{0xfc, 0x04},
++{0xee, 0x08},
++{0xfc, 0x03},
++{0x2e, 0x08},
++{0xfc, 0x02},
++{0x11, 0x11},
++{0xfc, 0x01},
++{0x4d, 0x08}, // RV con, Red pixel Ordering
++//{0x01, 0x00}, // PCLK
++{0x01, 0x01}, // Inversion PCLK
++{0xfc, 0x00},
++{0x02, 0x00}, // UXGA Size Out
++};
++
++
++#define S5K3BA_INIT_REGS (sizeof(s5k3ba_reg)/sizeof(s5k3ba_reg[0]))
++#define S5K3BA_UXGA_REGS (sizeof(s5k3ba_reg_uxga)/sizeof(s5k3ba_reg_uxga[0]))
++#define S5K3BA_VGA_REGS (sizeof(s5k3ba_reg_vga)/sizeof(s5k3ba_reg_vga[0]))
++
++
++#define S5K3BA_RISC_REGS 0xEB
++#define S5K3BA_ISP_REGS 0xFB /* S5C7323X */
++#define S5K3BA_CIS_REGS 0x2F /* S5K437LA03 */
++
++
++//#define S5K3AA_REGS (S5K3AA_RISC_REGS+S5K3AA_ISP_REGS+S5K3AA_CIS_REGS)
++#define S5K3BA_REGS (0x1000)
++
++
++#endif
++
+diff --git a/drivers/media/video/samsung/4xa_sensor.c b/drivers/media/video/samsung/4xa_sensor.c
+new file mode 100644
+index 0000000..e68e603
+--- /dev/null
++++ b/drivers/media/video/samsung/4xa_sensor.c
+@@ -0,0 +1,349 @@
++/*
++ * Copyright (C) 2004 Samsung Electronics
++ * SW.LEE <hitchcar@samsung.com>
++ * - based on Russell King : pcf8583.c
++ * - added smdk24a0, smdk2440
++ * - added poseidon (s3c24a0+wavecom)
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * Driver for FIMC2.x Camera Decoder
++ *
++ */
++
++//#include <linux/config.h>
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/i2c.h>
++#include <linux/i2c-id.h>
++#include <linux/slab.h>
++#include <linux/string.h>
++#include <linux/init.h>
++#include <linux/delay.h>
++
++//#define CAMIF_DEBUG
++
++#include "../s3c_camif.h"
++#include "4xa_sensor.h"
++
++static struct i2c_driver sensor_driver;
++
++/* This is an abstract CIS sensor for MSDMA input. */
++
++camif_cis_t msdma_input = {
++ itu_fmt: CAMIF_ITU601,
++ order422: CAMIF_CBYCRY, /* another case: YCRYCB */
++ camclk: 44000000, /* for 20 fps: 44MHz, for 12 fps(more stable): 26MHz */
++ source_x: 800,
++ source_y: 600,
++ win_hor_ofst: 0,
++ win_ver_ofst: 0,
++ win_hor_ofst2: 0,
++ win_ver_ofst2: 0,
++ polarity_pclk: 0,
++ polarity_vsync:1,
++ polarity_href: 0,
++ reset_type:CAMIF_EX_RESET_AL,
++ reset_udelay: 5000,
++};
++
++camif_cis_t interlace_input = {
++ itu_fmt: CAMIF_ITU601,
++ order422: CAMIF_CBYCRY, /* another case: YCRYCB */
++ camclk: 44000000, /* for 20 fps: 44MHz, for 12 fps(more stable): 26MHz */
++ source_x: 800,
++ source_y: 600,
++ win_hor_ofst: 0,
++ win_ver_ofst: 0,
++ win_hor_ofst2: 0,
++ win_ver_ofst2: 0,
++ polarity_pclk: 0,
++ polarity_vsync:1,
++ polarity_href: 0,
++ reset_type:CAMIF_EX_RESET_AL,
++ reset_udelay: 5000,
++};
++
++#if defined(CONFIG_VIDEO_SAMSUNG_S5K4BA)
++static camif_cis_t data = {
++ itu_fmt: CAMIF_ITU601,
++ order422: CAMIF_YCBYCR,
++ camclk: 44000000, /* for 20 fps: 44MHz, for 12 fps(more stable): 26MHz */
++ source_x: 800,
++ source_y: 600,
++ win_hor_ofst: 40,
++ win_ver_ofst: 0,
++ win_hor_ofst2: 40,
++ win_ver_ofst2: 0,
++ polarity_pclk: 0,
++ polarity_vsync:1,
++ polarity_href: 0,
++ reset_type:CAMIF_EX_RESET_AL,
++ reset_udelay: 5000,
++};
++
++s5k4xa_t s5k4ba_regs_mirror[S5K4BA_REGS];
++#else
++#error No samsung CIS moudule here !
++#endif
++
++camif_cis_t* get_initialized_cis(void)
++{
++ if (data.init_sensor == 0)
++ return NULL;
++
++ return &data;
++}
++
++#define CAM_ID 0x5a
++
++static unsigned short ignore[] = { I2C_CLIENT_END };
++static unsigned short normal_addr[] = { (CAM_ID >> 1), I2C_CLIENT_END };
++static unsigned short *forces[] = { NULL };
++
++static struct i2c_client_address_data addr_data = {
++ normal_i2c:normal_addr,
++ /* normal_i2c_range:ignore, */
++ probe:ignore,
++ /* probe_range:ignore, */
++ ignore:ignore,
++ /* ignore_range:ignore, */
++ forces:forces,
++};
++
++
++unsigned char sensor_read(struct i2c_client *client, unsigned char subaddr)
++{
++ int ret;
++ unsigned char buf[1];
++ struct i2c_msg msg = { client->addr, 0, 1, buf };
++ buf[0] = subaddr;
++
++ ret = i2c_transfer(client->adapter, &msg, 1) == 1 ? 0 : -EIO;
++ if (ret == -EIO) {
++ printk(" I2C write Error \n");
++ return -EIO;
++ }
++
++ msg.flags = I2C_M_RD;
++ ret = i2c_transfer(client->adapter, &msg, 1) == 1 ? 0 : -EIO;
++
++ return buf[0];
++}
++
++static int
++sensor_write(struct i2c_client *client,
++ unsigned char subaddr, unsigned char val)
++{
++ unsigned char buf[2];
++ struct i2c_msg msg = { client->addr, 0, 2, buf };
++
++ buf[0] = subaddr;
++ buf[1] = val;
++
++ return i2c_transfer(client->adapter, &msg, 1) == 1 ? 0 : -EIO;
++}
++
++#if defined(CONFIG_VIDEO_SAMSUNG_S5K4BA)
++void inline sensor_init(struct i2c_client *sam_client)
++{
++ int i;
++
++ i = (sizeof(s5k4ba_reg)/sizeof(s5k4ba_reg[0]));
++ for (i = 0; i < S5K4BA_INIT_REGS; i++) {
++ sensor_write(sam_client,
++ s5k4ba_reg[i].subaddr, s5k4ba_reg[i].value);
++ }
++}
++#else
++#error No samsung CIS moudule !
++#endif
++
++static int
++s5k4xa_attach(struct i2c_adapter *adap, int addr, int kind)
++{
++ struct i2c_client *c;
++
++ c = kmalloc(sizeof(*c), GFP_KERNEL);
++ if (!c)
++ return -ENOMEM;
++
++ memset(c, 0, sizeof(struct i2c_client));
++
++ strcpy(c->name, "S5K4XA");
++ c->addr = addr;
++ c->adapter = adap;
++ c->driver = &sensor_driver;
++ c->data = &data;
++ data.sensor = c;
++
++ s3c_camif_register_sensor(c);
++
++ return i2c_attach_client(c);
++}
++
++static int sensor_attach_adapter(struct i2c_adapter *adap)
++{
++ s3c_camif_open_sensor(&data);
++ return i2c_probe(adap, &addr_data, s5k4xa_attach);
++}
++
++static int sensor_detach(struct i2c_client *client)
++{
++ i2c_detach_client(client);
++ s3c_camif_unregister_sensor(client);
++ return 0;
++}
++
++/* Purpose:
++ This fucntion only for SVGA Camera : 4BA
++*/
++static int change_sensor_size(struct i2c_client *client, int size)
++{
++ int i;
++
++ switch (size) {
++#if defined(CONFIG_VIDEO_SAMSUNG_S5K4BA)
++ case SENSOR_QSVGA:
++ for (i = 0; i < S5K4BA_QSVGA_REGS; i++) {
++ sensor_write(client, s5k4ba_reg_qsvga[i].subaddr,
++ s5k4ba_reg_qsvga[i].value);
++ }
++ break;
++
++ case SENSOR_SVGA:
++ for (i = 0; i < S5K4BA_SVGA_REGS; i++) {
++ sensor_write(client, s5k4ba_reg_svga[i].subaddr,
++ s5k4ba_reg_svga[i].value);
++ }
++ break;
++#else
++#error No samsung CIS moudule !
++#endif
++ default:
++ panic("4xa_sensor.c: unexpect value\n");
++ }
++
++ return 0;
++}
++
++static int change_sensor_wb(struct i2c_client *client, int type)
++{
++ printk("[ *** Page 0, 4XA Sensor White Balance Mode ***]\n");
++
++#if defined(CONFIG_VIDEO_SAMSUNG_S5K4BA)
++ sensor_write(client, 0xFC, 0x0);
++ sensor_write(client, 0x30, type);
++#endif
++
++ switch(type){
++ case 0:
++ default:
++ printk(" -> AWB auto mode ]\n");
++ break;
++ case 1:
++ printk(" -> Indoor 3100 mode ]\n");
++ break;
++ case 2:
++ printk(" -> Outdoor 5100 mode ]\n");
++ break;
++ case 3:
++ printk(" -> Indoor 2000 mode ]\n");
++ break;
++ case 4:
++ printk(" -> AE/AWB halt ]\n");
++ break;
++ case 5:
++ printk(" -> Cloudy(6000) mode ]\n");
++ break;
++ case 6:
++ printk(" -> Sunny(8000) mode ]\n");
++ break;
++ }
++
++ return 0;
++}
++
++static int
++sensor_command(struct i2c_client *client, unsigned int cmd, void *arg)
++{
++ switch (cmd) {
++ case SENSOR_INIT:
++ sensor_init(client);
++ printk(KERN_INFO "External Camera initialized\n");
++ break;
++
++ case USER_ADD:
++ break;
++
++ case USER_EXIT:
++ break;
++
++ case SENSOR_QSVGA:
++ change_sensor_size(client, SENSOR_QSVGA);
++ break;
++
++ case SENSOR_VGA:
++ change_sensor_size(client, SENSOR_VGA);
++ break;
++
++ case SENSOR_SVGA:
++ change_sensor_size(client, SENSOR_SVGA);
++ break;
++
++ case SENSOR_SXGA:
++ change_sensor_size(client, SENSOR_SXGA);
++ break;
++
++ case SENSOR_UXGA:
++ change_sensor_size(client, SENSOR_UXGA);
++ break;
++/* Todo
++ case SENSOR_BRIGHTNESS:
++ change_sensor_setting();
++ break;
++*/
++ case SENSOR_WB:
++ printk("[ *** 4XA Sensor White Balance , No mode ***]\n");
++ change_sensor_wb(client, (int) arg);
++ break;
++
++ default:
++ panic("4xa_sensor.c : Unexpect Sensor Command \n");
++ break;
++ }
++
++ return 0;
++}
++
++static struct i2c_driver sensor_driver = {
++ .driver = {
++ .name = "s5k4xa",
++ },
++ .id = I2C_DRIVERID_S5K4XA,
++ .attach_adapter = sensor_attach_adapter,
++ .detach_client = sensor_detach,
++ .command = sensor_command
++};
++
++static __init int camif_sensor_init(void)
++{
++ return i2c_add_driver(&sensor_driver);
++}
++
++
++static __init void camif_sensor_exit(void)
++{
++ i2c_del_driver(&sensor_driver);
++}
++
++module_init(camif_sensor_init)
++module_exit(camif_sensor_exit)
++
++MODULE_AUTHOR("Jinsung, Yang <jsgood.yang@samsung.com>");
++MODULE_DESCRIPTION("I2C Client Driver for FIMC V4L2 Driver");
++MODULE_LICENSE("GPL");
++
+diff --git a/drivers/media/video/samsung/4xa_sensor.h b/drivers/media/video/samsung/4xa_sensor.h
+new file mode 100644
+index 0000000..9880f6c
+--- /dev/null
++++ b/drivers/media/video/samsung/4xa_sensor.h
+@@ -0,0 +1,2377 @@
++
++#ifndef _SAMSUNG_SXGA_H_
++#define _SAMSUNG_SXGA_H_
++
++/*******************************************************************************************
++ # Display resolution standards #
++
++ QCIF: 176 x 144
++ CIF: 352 x 288
++ QVGA: 320 x 240
++ VGA: 640 x 480
++ SVGA: 800 x 600
++ XGA: 1024 x 768
++ WXGA: 1280 x 800
++ QVGA: 1280 x 960
++ SXGA: 1280 x 1024
++ SXGA+: 1400 x 1050
++ WSXGA+: 1680 x 1050
++ UXGA: 1600 x 1200
++ WUXGA: 1920 x 1200
++ QXGA: 2048 x 1536
++********************************************************************************************/
++
++//#include "../bits.h"
++
++/* Camera information
++ * FPC Label : Samsung MEGA Pixel Camera : V4220 REV06
++ * Modified by charles -Initial function of '3AA' test routine
++ * Modified and tested by YongHwui.Kim <yonghwui.kim@samsung.com> for S5K3AAEX Camera
++ */
++
++#define CHIP_DELAY 0xFF
++
++typedef struct samsung_t{
++ unsigned char subaddr;
++ unsigned char value;
++ unsigned char page;
++} s5k4xa_t;
++
++#ifdef CONFIG_CPU_S3C24A0A
++#define TRY_HIGH_CLOCK 1
++#endif
++
++ //***************************************************
++ // name: S5K3AAEX EVT2 setfile
++ // ver: v2.61
++ // history:
++ // v0.0 start from 040908 setfile
++ // v1.0 arange register
++ // v1.01 change MCLK(25Mhz) and Frame rate(7fps)
++ // v2.0 adjust register setting for 3AA EVT2
++ // - color correction, RGB shding off, hsync start position, Mirror, fps
++ // - Color Tuning, YGRPDLY
++ // v2.1 change Frame rate(7.5fps) and Total gain to x4
++ // (because of reducing visual noise at low illumination)
++ // - change BPRM AGC Max and FrameAE start
++ // improve AE speed
++ // v2.2 modify AWB G gain and solve 50hz flicker detection fail in 25MHz 7.5fps
++ // v2.3 Adjust gamma, Dark Slice, white point, Hue gain,
++ // White Balance B control, Y gain On, Digital Clamp On
++ // lower AWB G gain
++ // v2.4 Adjust AE window weight, Y Gamma, WhitePoint, Shading and BPR Max Thres.
++ // v2.41 Adjust AE/AWB window and AWB internal window boundary to decrease skin color tracking
++ // v2.411 special version for PSCDS
++ // v2.412 RGB shading off
++ // v2.5 Lens change STW to Sekonix
++ // adjust White point and Y shading Coef (RGB shading off)
++ // v2.6 New Tuning because of Full YC off and YCbCr Coef change
++ // Gamma, Dark Slice, color matrix (not use), Color suppress
++ // R Gain and DBPR agc MIN/MAX
++ // v2.61 VCK inversion(data rising)
++ //***************************************************
++ ///////////////////////////////////////////////////
++
++#if defined(CONFIG_VIDEO_SAMSUNG_S5K4BA)
++
++// For SVGA (800 x 600)
++#if 1 // from han
++s5k4xa_t s5k4ba_reg[] =
++{
++ {0xfc,0x07},
++ {0x66,0x01}, // Watch Dog Time On
++ {0xfc,0x00},
++ {0x00,0xAA}, // For EDS Check
++ {0x21,0x03}, // peter0223 Ãß°¡
++ {0xfc,0x01},
++ {0x04,0x01}, // ARM Clock Divider
++
++ {0xfc,0x02},
++ {0x30,0x90}, // Analog offset
++ {0x37,0x0d}, // Global Gain
++ {0x2d,0x48}, // Double Shutter
++ {0x60,0x00}, // Blank_Adrs
++
++ {0x45,0x1e}, //0e// CDS Timing for Average Sub_Sampling
++ {0x47,0x2f},
++ {0x02,0x0e}, // ADC Resolution
++ {0x3d,0x06}, // Frame ADLC
++ {0x4d,0x08}, // Doubler Volatage
++ {0x54,0x02}, // Double Shutter
++ {0x55,0x1e}, // Line ADLC
++ {0x56,0x30}, //
++ {0x59,0x00}, // LineADLC offset
++ {0x5b,0x08}, // R_Ref_Ctrl
++ {0x44,0x63}, // CLP_EN
++ {0x4A,0x10}, // Clamp Control
++ {0x42,0x02}, //
++ {0x43,0xef}, //
++
++ //==========================================================
++ // Table Set for Sub-Sampling
++ //==========================================================
++ {0xfc,0x03},
++ {0x2c,0x00}, // crcb_sel for Sub-Sampling Table
++ {0x05,0x46}, // Output Image Size Set for Capture
++ {0x07,0xb6},
++ {0x0e,0x04},
++ {0x12,0x03},
++
++ {0xfc,0x04},
++ {0x32,0x04},
++ {0x33,0xbc},
++
++ {0xfc,0x04},
++ {0xc5,0x26}, // Output Image Size Set for Preview
++ {0xc7,0x5e},
++ {0xce,0x04},
++ {0xd2,0x04},
++
++ {0xec,0x06}, //CrCb sel = YCBYCR(0x06) by jsgood
++ {0xc0,0x06},
++ {0xc1,0x70},
++ {0xc2,0x02},
++ {0xc3,0x87},
++
++ {0xfc,0x07},
++ {0x05,0x00},
++ {0x06,0x00},
++ {0x07,0x8b},
++ {0x08,0xf5},
++ {0x09,0x00},
++ {0x0a,0xb4},
++ {0x0b,0x00},
++ {0x0c,0xea},
++ {0x0d,0x00},
++ {0x0e,0x40},
++
++ {0xfc,0x00},
++ {0x70,0x02},
++
++ // Jeongyun added still shot cbcr_sel
++ {0xfc,0x03},
++ {0x2c,0x00},
++ {0x5c,0x00},
++ {0x8c,0x00},
++ {0xbc,0x00},
++ {0xfc,0x04},
++ {0x5c,0x00},
++
++
++ //==========================================================
++ // COMMAND SET
++ //==========================================================
++ {0xfc,0x00},
++ {0x73,0x21}, // Frmae AE Enable peter
++ {0x20,0x02}, // Change AWB Mode
++
++ {0xfc,0x00},
++ {0x6c,0xb0}, // AE target
++ {0x6d,0x00},
++
++ {0xfc,0x20},
++ {0x16,0x5a}, // for Prevating AE Hunting
++
++ {0xfc,0x00},
++ {0x78,0x6a}, // AGC Max
++ {0xfc,0x20},
++ {0x16,0x60}, // Frame AE Start
++
++ {0xfc,0x20},
++ {0x57,0x18}, // Stable_Frame_AE
++ {0x2C,0x30}, // For Forbidden Area
++ {0x2E,0x00}, // For Forbidden Area
++ {0x14,0x70},
++ {0x01,0x00}, // Stepless_Off
++
++ {0xfc,0x07},
++ {0x11,0x02}, // AWB G Gain offset
++
++ {0xfc,0x07},
++ {0x3e,0x0a}, // AWB Cut R max
++
++ {0xfc,0x01},
++ {0xc8,0xd0}, // AWB Y Max e0 Y°ªÀÌ ¾î´À ÀÌ»óÀ϶§ ±× ÀÌ»ó°ªÀ» ©¶ó³»´Â ¼¼Æðª
++ {0xfc,0x00},
++ {0x3e,0x20}, //30 AWB Y_min
++ {0x3d,0x10}, // AWB Y_min Low
++ {0xfc,0x22},
++ {0x8c,0x04}, // AWB Min Y Weight AWB ÇÒ¶§ Y½ÅÈ£¸¦ ±âÁØÀ¸·Î Çϴµ¥ °¡ÁßÄ¡¸¦ ¹Ù²Ù´Â °Í.
++ {0x8d,0x16}, // AWB Max Y Weight
++
++ {0xfc,0x00},
++ {0x32,0x04}, // AWB moving average 8 frame
++ {0x81,0x10}, // AWB G gain suppress Disable
++ {0xbc,0xf0},
++
++ {0x29,0x04}, // Y level H
++ {0x2a,0x00}, // Y level L
++ {0x2b,0x03}, // color level H
++ {0x2c,0xc8}, // color level L
++
++ {0xfc,0x07},
++ {0x37,0x00}, // Flicker Add for 32Mhz
++ {0xfc,0x00},
++ {0x72,0xa0}, // Flicker for 32MHz
++ {0x74,0x08}, // flicker 60Hz Fix
++
++ {0xfc,0x20},
++ {0x02,0x02}, // Flicker Dgain Mode
++
++ {0xfc,0x00},
++ //{0x23,0x40}, // Mirror Option
++ {0x62,0x0a}, // Mirror Option
++
++ {0xfc,0x02},
++ {0x4e,0x00}, // IO current 8mA set
++ {0x4e,0x00}, // IO current 8mA set
++ {0x4e,0x00}, // IO current 8mA set
++ {0x4e,0x00}, // IO current 8mA set
++ {0x4f,0x0a}, // 2a IO current 48mA set
++ {0x4f,0x0a}, // IO current 48mA set
++ {0x4f,0x0a}, // IO current 48mA set
++ {0x4f,0x0a}, // IO current 48mA set
++
++ {0xfc,0x01},
++ {0x0c,0x03}, // Full YC Enable
++ //{0x0c,03}, // Full YC Enable
++ //{0x02,02}, // crcb_sel
++ //{0x02,02}, // crcb_sel peter0222 Ãß°¡
++ //{0x01,01}, // pclk peter0222 Ãß°¡
++ //{0x01,01},
++
++ //==========================================================
++ // COLOR MATRIX
++ //==========================================================
++ {0xfc,0x01}, // color matrix
++ {0x51,0x0A},
++ {0x52,0x42},
++ {0x53,0xF9},
++ {0x54,0x80},
++ {0x55,0x00},
++ {0x56,0x3D},
++
++ {0x57,0xFE},
++ {0x58,0x0B},
++ {0x59,0x06},
++ {0x5A,0x9C},
++ {0x5B,0xFF},
++ {0x5C,0x59},
++
++ {0x5D,0xFF},
++ {0x5E,0xD8},
++ {0x5F,0xFC},
++ {0x60,0x2E},
++ {0x61,0x07},
++ {0x62,0xFA},
++
++ //==========================================================
++ // EDGE ENHANCEMENT
++ //==========================================================
++ {0xfc,0x00},
++ {0x89,0x03}, // Edge Suppress On
++ {0xfc,0x0b},
++ {0x42,0x50}, // Edge AGC MIN
++ {0x43,0x60}, // Edge AGC MAX
++ {0x45,0x18}, // positive gain AGC MIN
++ {0x49,0x0a}, // positive gain AGC MAX
++ {0x4d,0x18}, // negative gain AGC MIN
++ {0x51,0x0a}, // negative gain AGC MAX
++
++ {0xfc,0x05},
++ {0x34,0x20}, // APTCLP
++ {0x35,0x09}, // APTSC
++ {0x36,0x0b}, // ENHANCE
++ {0x3f,0x00}, // NON-LIN
++ {0x42,0x10}, // EGFALL
++ {0x43,0x00}, // HLFALL
++ {0x45,0xa0}, // EGREF
++ {0x46,0x7a}, // HLREF
++ {0x47,0x40}, // LLREF
++ {0x48,0x0c},
++ {0x49,0x31}, // CSSEL EGSEL CS_DLY
++
++ {0x40,0x41}, // Y delay
++
++ //==========================================================
++ // GAMMA
++ //========================================================== -
++ {0xfc,0x01},
++
++ {0x6F,0x0A}, // R
++ {0x70,0x1A},
++ {0x71,0x7A},
++ {0x72,0xF8},
++ {0x73,0x00},
++
++ {0x74,0xA0},
++ {0x75,0x18},
++ {0x76,0x65},
++ {0x77,0xAD},
++ {0x78,0x6A},
++
++ {0x79,0xE2},
++ {0x7A,0x12},
++ {0x7B,0x3D},
++ {0x7C,0x5A},
++ {0x7D,0xBF},
++
++ {0x7E,0x72},
++ {0x7F,0x88},
++ {0x80,0x9D},
++ {0x81,0xB0},
++ {0x82,0xFF},
++
++ {0x83,0xC0},
++ {0x84,0xCF},
++ {0x85,0xDA},
++ {0x86,0xFC},
++
++ {0x87,0x08}, //G
++ {0x88,0x12},
++ {0x89,0x42},
++ {0x8A,0xBA},
++ {0x8B,0x00},
++
++ {0x8C,0x75},
++ {0x8D,0xED},
++ {0x8E,0x42},
++ {0x8F,0x80},
++ {0x90,0x5A},
++
++ {0x91,0xB5},
++ {0x92,0xE5},
++ {0x93,0x10},
++ {0x94,0x35},
++ {0x95,0xAF},
++
++ {0x96,0x55},
++ {0x97,0x70},
++ {0x98,0x88},
++ {0x99,0x9D},
++ {0x9A,0xFF},
++
++ {0x9B,0xB1},
++ {0x9C,0xC4},
++ {0x9D,0xD5},
++ {0x9E,0xFC},
++
++ {0x9F,0x05}, //B
++ {0xA0,0x18},
++ {0xA1,0x42},
++ {0xA2,0xd7},
++ {0xA3,0x00},
++
++ {0xA4,0xB6},
++ {0xA5,0x3b},
++ {0xA6,0x88},
++ {0xA7,0xC8},
++ {0xA8,0x6A},
++
++ {0xA9,0x00},
++ {0xAA,0x30},
++ {0xAB,0x58},
++ {0xAC,0x78},
++ {0xAD,0xFF},
++
++ {0xAE,0x90},
++ {0xAF,0xA5},
++ {0xB0,0xB6},
++ {0xB1,0xC5},
++ {0xB2,0xFF},
++
++ {0xB3,0xD0},
++ {0xB4,0xD6},
++ {0xB5,0xDA},
++ {0xB6,0xFC},
++
++ //==========================================================
++ // HUE CONTROL
++ //==========================================================
++ {0xfc,0x00},
++ {0x48,0x34}, // 2000K
++ {0x49,0x34},
++ {0x4a,0xf4},
++ {0x4b,0x00},
++ {0x4c,0x44},
++ {0x4d,0x3c},
++ {0x4e,0xf0},
++ {0x4f,0x0c},
++
++ {0x50,0x34}, // 3000K
++ {0x51,0x34},
++ {0x52,0xf4},
++ {0x53,0x00},
++ {0x54,0x44},
++ {0x55,0x3c},
++ {0x56,0xf0},
++ {0x57,0x0c},
++
++ {0x58,0x34}, // 5100K
++ {0x59,0x30},
++ {0x5a,0x00},
++ {0x5b,0x04},
++ {0x5c,0x40},
++ {0x5d,0x2c},
++ {0x5e,0xfc},
++ {0x5f,0x04},
++ //==========================================================
++ // UPPRE0x0x FUNCTION
++ //==========================================================
++ {0xfc,0x00},
++ {0x7e,0xf4},
++
++ //==========================================================
++ // BPR
++ //==========================================================
++ {0xfc,0x01},
++ {0x3d,0x10},
++
++ {0xfc,0x0b},
++ {0x0b,0x00}, // ISP BPR On start
++ {0x0c,0x20}, // Th13 AGC Min
++ {0x0d,0x40}, // Th13 AGC Max
++ {0x0e,0x00}, // Th1 Max H for AGCMIN
++ {0x0f,0x20}, // Th1 Max L for AGCMIN
++ {0x10,0x00}, // Th1 Min H for AGCMAX
++ {0x11,0x10}, // Th1 Min L for AGCMAX
++ {0x12,0x00}, // Th3 Max H for AGCMIN
++ {0x13,0x00}, // Th3 Max L for AGCMIN
++ {0x14,0xff}, // Th3 Min H for AGCMAX
++ {0x15,0xff}, // Th3 Min L for AGCMAX
++ {0x16,0x20}, // Th57 AGC Min
++ {0x17,0x40}, // Th57 AGC Max
++ {0x18,0x00}, // Th5 Max H for AGCMIN
++ {0x19,0x00}, // Th5 Max L for AGCMIN
++ {0x1a,0x00}, // Th5 Min H for AGCMAX
++ {0x1b,0x20}, // Th5 Min L for AGCMAX
++ {0x1c,0x00}, // Th7 Max H for AGCMIN
++ {0x1d,0x00}, // Th7 Max L for AGCMIN
++ {0x1e,0x00}, // Th7 Min H for AGCMAX
++ {0x1f,0x20}, // Th7 Min L for AGCMAX
++
++ //==========================================================
++ // GR/GB CORRECTION
++ //==========================================================
++ {0xfc,0x01},
++ {0x45,0x0c},
++
++ {0xfc,0x0b},
++ {0x21,0x00}, // start AGC
++ {0x22,0x18}, // AGCMIN
++ {0x23,0x58}, // AGCMAX
++ {0x24,0x0d}, // G Th AGCMIN
++ {0x25,0x30}, // G Th AGCMAX
++ {0x26,0x0d}, // RB Th AGCMIN
++ {0x27,0x30}, // RB Th AGCMAX
++
++ //==========================================================
++ // NR
++ //==========================================================
++ {0xfc,0x01},
++ {0x4C,0x01}, // NR Enable
++ {0x49,0x15}, // Sig_Th Mult
++ {0x4B,0x0A}, // Pre_Th Mult
++
++ {0xfc,0x0b},
++ {0x28,0x00}, // NR start AGC
++ {0x29,0x00}, // SIG Th AGCMIN H
++ {0x2a,0x14}, // SIG Th AGCMIN L
++ {0x2b,0x00}, // SIG Th AGCMAX H
++ {0x2c,0x14}, // SIG Th AGCMAX L
++ {0x2d,0x00}, // PRE Th AGCMIN H
++ {0x2e,0x90}, // PRE Th AGCMIN L
++ {0x2f,0x01}, // PRE Th AGCMAX H
++ {0x30,0x00}, // PRE Th AGCMAX L
++ {0x31,0x00}, // POST Th AGCMIN H
++ {0x32,0xa0}, // POST Th AGCMIN L
++ {0x33,0x01}, // POST Th AGCMAX H
++ {0x34,0x10}, // POST Th AGCMAX L
++
++ //==========================================================
++ // 1D-Y/C-SIGMA-LPF
++ //==========================================================
++ {0xfc,0x01},
++ {0x05,0xc0},
++
++ {0xfc,0x0b},
++ {0x35,0x00}, // YLPF start AGC
++ {0x36,0x40}, // YLPF01 AGCMIN
++ {0x37,0x60}, // YLPF01 AGCMAX
++ {0x38,0x00}, // YLPF SIG01 Th AGCMINH
++ {0x39,0x18}, // YLPF SIG01 Th AGCMINL
++ {0x3a,0x00}, // YLPF SIG01 Th AGCMAXH
++ {0x3b,0x40}, // YLPF SIG01 Th AGCMAXH
++ {0x3c,0x50}, // YLPF02 AGCMIN
++ {0x3d,0x60}, // YLPF02 AGCMAX
++ {0x3e,0x00}, // YLPF SIG02 Th AGCMINH
++ {0x3f,0x30}, // YLPF SIG02 Th AGCMINL
++ {0x40,0x00}, // YLPF SIG02 Th AGCMAXH
++ {0x41,0x40}, // YLPF SIG02 Th AGCMAXH
++ {0xd4,0x40}, // CLPF AGCMIN
++ {0xd5,0x60}, // CLPF AGCMAX
++ {0xd6,0xb0}, // CLPF SIG01 Th AGCMIN
++ {0xd7,0xf0}, // CLPF SIG01 Th AGCMAX
++ {0xd8,0xb0}, // CLPF SIG02 Th AGCMIN
++ {0xd9,0xf0}, // CLPF SIG02 Th AGCMAX
++
++ //==========================================================
++ // COLOR SUPPRESS
++ //==========================================================
++ {0xfc,0x0b},
++ {0x08,0x58}, // Color suppress AGC MIN
++ {0x09,0x03}, // Color suppress MIN H
++ {0x0a,0x80}, // Color suppress MIN L
++
++ //==========================================================
++ // SHADING
++ //==========================================================
++ {0xfc,0x09},
++ //Shading file for 3BAFX
++ //s90000// shading off
++ // DSP9_SH_WIDTH_H
++ {0x01,0x06},
++ {0x02,0x40},
++ // DSP9_SH_HEIGHT_H
++ {0x03,0x04},
++ {0x04,0xB0},
++ // DSP9_SH_XCH_R
++ {0x05,0x03},
++ {0x06,0x1A},
++ {0x07,0x02},
++ {0x08,0x4E},
++ // DSP9_SH_XCH_G
++ {0x09,0x03},
++ {0x0A,0x27},
++ {0x0B,0x02},
++ {0x0C,0x11},
++ // DSP9_SH_XCH_B
++ {0x0D,0x03},
++ {0x0E,0x15},
++ {0x0F,0x01},
++ {0x10,0xE3},
++ // DSP9_SH_Del_eH_R
++ {0x1D,0x85},
++ {0x1E,0x55},
++ {0x1F,0x77},
++ {0x20,0x9E},
++ {0x23,0x7F},
++ {0x24,0xE6},
++ {0x21,0x7F},
++ {0x22,0xE6},
++ // DSP9_SH_Del_eH_G
++ {0x25,0x82},
++ {0x26,0x9A},
++ {0x27,0x78},
++ {0x28,0xC0},
++ {0x2B,0x76},
++ {0x2C,0x07},
++ {0x29,0x86},
++ {0x2A,0x09},
++ // DSP9_SH_Del_eH_B
++ {0x2D,0x85},
++ {0x2E,0x55},
++ {0x2F,0x75},
++ {0x30,0x6D},
++ {0x33,0x74},
++ {0x34,0xA2},
++ {0x31,0x84},
++ {0x32,0xA2},
++ // DSP9_SH_VAL_R0H
++ {0x35,0x01},
++ {0x36,0x01},
++ {0x37,0x01},
++ {0x38,0x14},
++ {0x39,0x01},
++ {0x3A,0x45},
++ {0x3B,0x01},
++ {0x3C,0x8A},
++ {0x3D,0x01},
++ {0x3E,0xA3},
++ {0x3F,0x01},
++ {0x40,0xB9},
++ {0x41,0x01},
++ {0x42,0xD9},
++ {0x43,0x01},
++ {0x44,0xF6},
++ // DSP9_SH_VAL_G0H
++ {0x45,0x01},
++ {0x46,0x00},
++ {0x47,0x01},
++ {0x48,0x0E},
++ {0x49,0x01},
++ {0x4A,0x34},
++ {0x4B,0x01},
++ {0x4C,0x68},
++ {0x4D,0x01},
++ {0x4E,0x76},
++ {0x4F,0x01},
++ {0x50,0x94},
++ {0x51,0x01},
++ {0x52,0xAB},
++ {0x53,0x01},
++ {0x54,0xC3},
++ // DSP9_SH_VAL_B0H
++ {0x55,0x01},
++ {0x56,0x00},
++ {0x57,0x01},
++ {0x58,0x0C},
++ {0x59,0x01},
++ {0x5A,0x2B},
++ {0x5B,0x01},
++ {0x5C,0x5D},
++ {0x5D,0x01},
++ {0x5E,0x70},
++ {0x5F,0x01},
++ {0x60,0x8A},
++ {0x61,0x01},
++ {0x62,0xA1},
++ {0x63,0x01},
++ {0x64,0xB3},
++ // DSP9_SH_M_R2_R1H
++ {0x65,0x00},
++ {0x66,0x98},
++ {0x67,0x2C},
++ {0x68,0x02},
++ {0x69,0x60},
++ {0x6A,0xB0},
++ {0x6B,0x05},
++ {0x6C,0x59},
++ {0x6D,0x8C},
++ {0x6E,0x07},
++ {0x6F,0x48},
++ {0x70,0x1B},
++ {0x71,0x09},
++ {0x72,0x82},
++ {0x73,0xC0},
++ {0x74,0x0C},
++ {0x75,0x09},
++ {0x76,0x7B},
++ {0x77,0x0E},
++ {0x78,0xDC},
++ {0x79,0x4D},
++ // DSP9_SH_M_R2_G1H
++ {0x7A,0x00},
++ {0x7B,0xAD},
++ {0x7C,0x76},
++ {0x7D,0x02},
++ {0x7E,0xB5},
++ {0x7F,0xD7},
++ {0x80,0x06},
++ {0x81,0x19},
++ {0x82,0x23},
++ {0x83,0x08},
++ {0x84,0x4C},
++ {0x85,0xE2},
++ {0x86,0x0A},
++ {0x87,0xD7},
++ {0x88,0x5C},
++ {0x89,0x0D},
++ {0x8A,0xB8},
++ {0x8B,0x90},
++ {0x8C,0x10},
++ {0x8D,0xF0},
++ {0x8E,0x7F},
++ // DSP9_SH_M_R2_B1H
++ {0x8F,0x00},
++ {0x90,0xC1},
++ {0x91,0xD0},
++ {0x92,0x03},
++ {0x93,0x07},
++ {0x94,0x3F},
++ {0x95,0x06},
++ {0x96,0xD0},
++ {0x97,0x4F},
++ {0x98,0x09},
++ {0x99,0x46},
++ {0x9A,0x32},
++ {0x9B,0x0C},
++ {0x9C,0x1C},
++ {0x9D,0xFE},
++ {0x9E,0x0F},
++ {0x9F,0x54},
++ {0xA0,0xB1},
++ {0xA1,0x12},
++ {0xA2,0xED},
++ {0xA3,0x4C},
++ // DSP9_SH_SUB_RR0H
++ {0xA4,0x6B},
++ {0xA5,0xAA},
++ {0xA6,0x23},
++ {0xA7,0xE3},
++ {0xA8,0x15},
++ {0xA9,0x88},
++ {0xAA,0x21},
++ {0xAB,0x20},
++ {0xAC,0x1C},
++ {0xAD,0xB6},
++ {0xAE,0x19},
++ {0xAF,0x55},
++ {0xB0,0x16},
++ {0xB1,0xAA},
++ // DSP9_SH_SUB_RG0H
++ {0xB2,0x5E},
++ {0xB3,0x74},
++ {0xB4,0x1F},
++ {0xB5,0x7C},
++ {0xB6,0x12},
++ {0xB7,0xE4},
++ {0xB8,0x1D},
++ {0xB9,0x10},
++ {0xBA,0x19},
++ {0xBB,0x30},
++ {0xBC,0x16},
++ {0xBD,0x39},
++ {0xBE,0x13},
++ {0xBF,0xE2},
++ // DSP9_SH_SUB_RB0H
++ {0xC0,0x54},
++ {0xC1,0x89},
++ {0xC2,0x1C},
++ {0xC3,0x2D},
++ {0xC4,0x10},
++ {0xC5,0xE8},
++ {0xC6,0x1A},
++ {0xC7,0x02},
++ {0xC8,0x16},
++ {0xC9,0x8A},
++ {0xCA,0x13},
++ {0xCB,0xE4},
++ {0xCC,0x11},
++ {0xCD,0xCC},
++
++ {0x00,0x02}, // {0xhading on
++
++ //==========================================================
++ // X-SHADING
++ //==========================================================
++ {0xfc,0x1B},
++ {0x80,0x01},
++ {0x81,0x00},
++ {0x82,0x4C},
++ {0x83,0x00},
++ {0x84,0x86},
++ {0x85,0x03},
++ {0x86,0x5E},
++ {0x87,0x00},
++ {0x88,0x07},
++ {0x89,0xA4},
++ {0x90,0x00},
++ {0x91,0x12},
++ {0x92,0x00},
++ {0x93,0x12},
++ {0x94,0x00},
++ {0x95,0x12},
++ {0x96,0x00},
++ {0x97,0x12},
++ {0x98,0x00},
++ {0x99,0x12},
++ {0x9A,0x00},
++ {0x9B,0x12},
++ {0x9C,0x00},
++ {0x9D,0x12},
++ {0x9E,0x00},
++ {0x9F,0x12},
++ {0xA0,0x00},
++ {0xA1,0x12},
++ {0xA2,0x00},
++ {0xA3,0x12},
++ {0xA4,0x00},
++ {0xA5,0x12},
++ {0xA6,0x00},
++ {0xA7,0x12},
++ {0xA8,0x00},
++ {0xA9,0x12},
++ {0xAA,0x00},
++ {0xAB,0x12},
++ {0xAC,0x00},
++ {0xAD,0x12},
++ {0xAE,0x00},
++ {0xAF,0x12},
++ {0xB0,0x00},
++ {0xB1,0x12},
++ {0xB2,0x00},
++ {0xB3,0x12},
++ {0xB4,0x00},
++ {0xB5,0x12},
++ {0xB6,0x00},
++ {0xB7,0x15},
++ {0xB8,0x00},
++ {0xB9,0x12},
++ {0xBA,0x00},
++ {0xBB,0x12},
++ {0xBC,0x00},
++ {0xBD,0x12},
++ {0xBE,0x00},
++ {0xBF,0x12},
++ {0xC0,0x00},
++ {0xC1,0x12},
++ {0xC2,0x00},
++ {0xC3,0x12},
++ {0xC4,0x00},
++ {0xC5,0x12},
++ {0xC6,0x00},
++ {0xC7,0x12},
++ {0xC8,0x00},
++ {0xC9,0x12},
++ {0xCA,0x00},
++ {0xCB,0x12},
++ {0xCC,0x00},
++ {0xCD,0x12},
++ {0xCE,0x00},
++ {0xCF,0x12},
++ {0xD0,0x00},
++ {0xD1,0x12},
++ {0xD2,0x00},
++ {0xD3,0x12},
++ {0xD4,0x00},
++ {0xD5,0x12},
++ // x-shading temp. correlation factor
++ {0xfc,0x0b},
++ {0xda,0x00}, // t0(3100K)
++ {0xdb,0xac},
++ {0xdc,0x01}, // tc(5100K)
++ {0xdd,0x30}, // default eeh
++
++ {0xfc,0x00},
++ {0x81,0x10}, // xshading tem
++
++ {0xfc,0x1b},
++ {0x80,0x01}, // X-Shading On
++
++ //==========================================================
++ // AE WINDOW WEIGHT
++ //==========================================================
++ {0xfc,0x00},
++ {0x03,0x4b}, // AE Suppress On
++
++ {0xfc,0x06},
++ {0x01,0x35}, // UXGA AE Window
++ {0x03,0xc2},
++ {0x05,0x48},
++ {0x07,0xb8},
++ {0x31,0x2a}, // Subsampling AE Window
++ {0x33,0x61},
++ {0x35,0x28},
++ {0x37,0x5c},
++ {0x39,0x28},
++ {0x3B,0x5A},
++ {0x3D,0x10}, // 1c
++ {0x3F,0x44},
++
++ {0xfc,0x20},
++ {0x60,0x11},
++ {0x61,0x11},
++ {0x62,0x11},
++ {0x63,0x11},
++ {0x64,0x11},
++ {0x65,0x22},
++ {0x66,0x22},
++ {0x67,0x11},
++ {0x68,0x11},
++ {0x69,0x33},
++ {0x6a,0x33},
++ {0x6b,0x11},
++ {0x6c,0x12},
++ {0x6d,0x55},
++ {0x6e,0x55},
++ {0x6f,0x21},
++ {0x70,0x13},
++ {0x71,0x55},
++ {0x72,0x55},
++ {0x73,0x31},
++ {0x74,0x33},
++ {0x75,0x33},
++ {0x76,0x33},
++ {0x77,0x33},
++
++ //==========================================================
++ // SAIT AWB
++ //==========================================================
++ //=================================
++ // White Point
++ //=================================
++ {0xfc,0x22}, // White Point (For Hue Control & MWB)
++ {0x01,0xD0}, // D65
++ {0x03,0x9B},
++ {0x05,0xC0}, // 5000K
++ {0x07,0xB8},
++ {0x09,0xA7}, // CWF
++ {0x0b,0xDC},
++ {0x0d,0x98}, // 3000K
++ {0x0f,0xE0},
++ {0x11,0x85}, // A
++ {0x12,0x00},
++ {0x13,0xF6},
++ {0x15,0x80}, // 2000K
++ {0x16,0x01},
++ {0x17,0x00},
++
++ //=================================
++ // Basic Setting
++ //=================================
++ {0xfc,0x22},
++ {0xA0,0x01},
++ {0xA1,0x3F},
++ {0xA2,0x0E},
++ {0xA3,0x65},
++ {0xA4,0x07},
++ {0xA5,0xF4},
++ {0xA6,0x11},
++ {0xA7,0xC8},
++ {0xA9,0x02},
++ {0xAA,0x43},
++ {0xAB,0x26},
++ {0xAC,0x1F},
++ {0xAD,0x02},
++ {0xAE,0x2C},
++ {0xAF,0x19},
++ {0xB0,0x0F},
++
++ {0x94,0x3C},
++ {0x95,0xCC},
++ {0x96,0x5C},
++ {0x97,0x4D},
++ {0xD0,0xA8},
++ {0xD1,0x29},
++ {0xD2,0x39},
++ {0xD3,0x22},
++ {0xD4,0x30},
++ {0xDB,0x29},
++ {0xDC,0x7E},
++ {0xDD,0x22},
++
++ {0xE7,0x00},
++ {0xE8,0xca},
++ {0xE9,0x00},
++ {0xEA,0x62},
++ {0xEB,0x00},
++ {0xEC,0x00},
++ {0xEE,0x97},
++
++ //=================================
++ // Pixel Filter Setting
++ //=================================
++ {0xFC,0x07},
++ {0x95,0x8F},
++
++ {0xfc,0x01},
++ {0xD3,0x4B},
++ {0xD4,0x00},
++ {0xD5,0x38},
++ {0xD6,0x00},
++ {0xD7,0x60},
++ {0xD8,0x00},
++ {0xD9,0x4E},
++ {0xDA,0x00},
++ {0xDB,0x27},
++ {0xDC,0x15},
++ {0xDD,0x23},
++ {0xDE,0xAD},
++ {0xDF,0x24},
++ {0xE0,0x01},
++ {0xE1,0x17},
++ {0xE2,0x4A},
++ {0xE3,0x36},
++ {0xE4,0x40},
++ {0xE5,0x40},
++ {0xE6,0x40},
++ {0xE7,0x40},
++ {0xE8,0x30},
++ {0xE9,0x3D},
++ {0xEA,0x17},
++ {0xEB,0x01},
++
++ //=================================
++ // Polygon AWB Region Tune
++ //=================================
++ {0xfc,0x22},
++ {0x18,0x00}, // 1
++ {0x19,0x5a},
++ {0x1a,0xf8},
++ {0x1b,0x00}, // 2
++ {0x1c,0x59},
++ {0x1d,0xCC},
++ {0x1e,0x00}, // 3
++ {0x1f,0x74},
++ {0x20,0xB3},
++ {0x21,0x00}, // 4
++ {0x22,0x86},
++ {0x23,0xA2},
++ {0x24,0x00}, // 5
++ {0x25,0x94},
++ {0x26,0x89},
++ {0x27,0x00}, // 6
++ {0x28,0xA6},
++ {0x29,0x76},
++ {0x2A,0x00}, // 7
++ {0x2B,0xd0},
++ {0x2C,0x5e},
++ {0x2D,0x00}, // 8
++ {0x2E,0xfa},
++ {0x2F,0x47},
++ {0x30,0x00}, // 9
++ {0x31,0xfD},
++ {0x32,0x5D},
++ {0x33,0x00}, // 10
++ {0x34,0xBB},
++ {0x35,0x7c},
++ {0x36,0x00}, // 11
++ {0x37,0xAD},
++ {0x38,0x88},
++ {0x39,0x00}, // 12
++ {0x3A,0x9A},
++ {0x3B,0xA3},
++ {0x3C,0x00}, // 13
++ {0x3D,0x7C},
++ {0x3E,0xDD},
++ {0x3F,0x00}, // 14
++ {0x40,0x00},
++ {0x41,0x00},
++
++ //=================================
++ // Moving Equation Weight
++ //=================================
++ {0xfc,0x22},
++ {0x98,0x07},
++
++ //=================================
++ // EIT Threshold
++ //=================================
++ {0xfc,0x22},
++ {0xb1,0x00}, // {0xunny
++ {0xb2,0x03},
++ {0xb3,0x00},
++ {0xb4,0xc1},
++
++ {0xb5,0x00}, // Cloudy
++ {0xb6,0x05},
++ {0xb7,0xc9},
++ {0xb9,0x81},
++
++ {0xd7,0x00}, // Shade
++ {0xd8,0x35},
++ {0xd9,0x20},
++ {0xda,0x81},
++
++ //=================================
++ // Gain Offset
++ //=================================
++ {0xfc,0x00},
++ {0x79,0xF9},
++ {0x7A,0x02}, // Global AWB gain off{0xet
++
++ {0xfc,0x22},
++ {0x58,0xf6}, // D65 R Off{0xet
++ {0x59,0xff}, // D65 B Off{0xet
++ {0x5A,0xfa}, // 5000K R Off{0xet
++ {0x5B,0xFe}, // 5000K B Off{0xet
++ {0x5C,0xfb}, // CWF R Off{0xet
++ {0x5D,0xFe}, // CWF B Off{0xet
++ {0x5E,0xfb}, // 3000K R Off{0xet
++ {0x5F,0xFb}, // 3000K B Off{0xet
++ {0x60,0xfb}, // A R Off0xet
++ {0x61,0xfb}, // A B Off0xet
++ {0x62,0xfb}, // 2000K R Off0xet
++ {0x63,0xfb}, // 2000K B Off0xet
++
++ {0xde,0x00}, // LARGE OBJECT BUG FIX
++ {0xf0,0x6a}, // RB Ratio
++ //=================================
++ // Green Stablity Enhance
++ //=================================
++ {0xfc,0x22},
++ {0xb9,0x00},
++ {0xba,0x00},
++ {0xbb,0x00},
++ {0xbc,0x00},
++ {0xe5,0x01},
++ {0xe6,0xff},
++
++ {0xbd,0x90},
++
++ //==========================================================
++ // Special Effect
++ //==========================================================
++ {0xfc,0x07}, // Special Effect
++ {0x30,0xc0},
++ {0x31,0x20},
++ {0x32,0x40},
++ {0x33,0xc0},
++ {0x34,0x00},
++ {0x35,0xb0},
++
++ {0xfc,0x00},
++ {0x73,0x21}, // Frmae AE Enable}, peter0223 À§Ä¡ º¯°æ
++
++ {0xfc,0x04},
++ {0xc0,0x06},
++ {0xc1,0x70},
++ {0xFF,0xFF} // REGISTER END
++};
++#else
++s5k4xa_t s5k4ba_reg[] =
++{
++//==========================================================
++// CAMERA INITIAL (Analog & Clock Setting)
++//==========================================================
++ {0xfc, 0x07},
++ {0x66, 0x01},// WDT
++ {0xfc, 0x00},
++ {0x00, 0xaa},// For EDS Check
++ {0x21, 0x03},// peter0223 added
++
++ {0xfc, 0x01},
++ {0x04, 0x01},// ARM Clock Divider
++
++ {0xfc, 0x02},// Analog setting
++ {0x55, 0x1e},// LineADLC on(s551a), off(s550a)
++ {0x56, 0x10},// BPR 16code
++ {0x30, 0x82},// Analog offset (capture =?h)
++ {0x37, 0x25},// Global Gain (default:31)
++
++ {0x57, 0x80},// // LineADLC Roffset
++ {0x58, 0x80},//89 //90 // LineADLC Goffset
++ {0x59, 0x80},//90 // LineADLC offset don't care
++
++ {0x44, 0x64},//clamp en[6]=1 on
++ {0x4a, 0x30},//clamp level 0011h [7]~[4]
++
++ {0x2d, 0x48},// double shutter (default:00)
++ {0x4d, 0x08},// Voltage doubler (default:04)
++ {0x4e, 0x00},// IO current 8mA set
++ {0x4f, 0x8a},// IO current 48mA set
++
++ {0x66, 0x41},// 1st comp current 2uA
++ {0x43, 0xef},// ec_comp
++ {0x62, 0x60},// LD control , CFPN_EN off
++
++//==========================================================
++// Table Set for Sub-Sampling
++//==========================================================
++ {0xfc, 0x03},
++ {0x01, 0x60},
++ //{0x2e, 0x00},
++ {0x2e, 0x03},//DHL
++ {0x05, 0x46},// Output Image Size Set for Capture
++ {0x07, 0xb6},
++ {0x0e, 0x04},
++ {0x12, 0x03},
++
++ {0xfc, 0x04},
++ {0xc5, 0x26},// Output Image Size Set for Preview
++ {0xc7, 0x5e},
++ {0xce, 0x04},
++ {0xd2, 0x04},
++ //{0xee, 0x00},//DHL
++ {0xee, 0x01},
++ {0xc0, 0x06},
++ {0xc1, 0x60},//frame_H
++ {0xc2, 0x02},
++ {0xc3, 0x8d},//frame_V
++
++ {0xfc, 0x07},
++ {0x05, 0x00},
++ {0x06, 0x00},
++ {0x07, 0x8b},
++ {0x08, 0xf5},
++ {0x09, 0x00},
++ {0x0a, 0xb4},
++ {0x0b, 0x00},
++ {0x0c, 0xea},
++ {0x0d, 0x00},
++ {0x0e, 0x40},
++
++#if 1
++//==========================================================
++// COMMAND SET
++//==========================================================
++ {0xfc, 0x00},
++ {0x70, 0x02},
++
++ {0xfc, 0x00},
++ {0x73, 0x11},//21 Frmae AE Enable, peter0223
++ {0x20, 0x02},// Change AWB Mode
++
++ {0xfc, 0x00},
++ {0x78, 0x6a},// AGC Max
++
++ {0xfc, 0x00},
++ {0x6c, 0xa0},// AE target
++ {0x6d, 0x00},
++
++ {0xfc, 0x20},
++ {0x16, 0x5a},// AGC frame AE start _for Prevating AE Hunting
++ {0x57, 0x18},// Stable_Frame_AE
++
++ {0xfc, 0x00},
++ {0x83, 0x06},//low condition shutter off // Double shutter off
++
++ {0xfc, 0x0b},
++ {0x5c, 0x69},//70 //AGC value to start shutter on/off suppress
++ {0x5d, 0x65},//60 //AGC value to start double shutter on/off suppress
++
++ {0xfc, 0x20},
++ {0x25, 0x00},// CINTR Min
++ {0x2a, 0x01},// forbidden
++ {0x2b, 0x02},// For Forbidden Area
++ {0x2c, 0x0a},
++ {0x2d, 0x00},// For Forbidden Area
++ {0x2e, 0x00},
++ {0x2f, 0x05},// forbidden
++ {0x14, 0x78},//70
++ {0x01, 0x00},// Stepless_Off
++
++ {0xfc, 0x00},
++ {0x29, 0x04},// Y level
++ {0x2a, 0x00},
++ {0x2b, 0x03},// C level
++ {0x2c, 0x80},//60
++
++ {0xfc, 0x07},
++ {0x37, 0x00},// Flicker
++
++ {0xfc, 0x00},
++ {0x72, 0xa0},// Flicker for 32MHz
++ {0x74, 0x08},// flicker 60Hz fix
++ {0xfc, 0x20},
++ {0x02, 0x12},//02 Flicker Dgain Mode
++ {0xfc, 0x00},
++ {0x62, 0x02},// Hue Control Enable
++
++ {0xfc, 0x01},
++ //{0x0c, 0x02},// Full YC Enable
++ {0x0C, 0x03},//Donghoon
++
++
++//==========================================================
++// COLOR MATRIX
++//==========================================================
++ {0xfc, 0x01}, //DL gain 60
++ {0x51, 0x08}, //06 //08 07
++ {0x52, 0xe8}, //df //9B E7
++ {0x53, 0xfc}, //fd //FC FB
++ {0x54, 0x33}, //09 //07 B9
++ {0x55, 0xfe}, //00 //FF 00
++ {0x56, 0xe6}, //17 //5E 5F
++ {0x57, 0xfe}, //fe //FD FD
++ {0x58, 0x3d}, //4f //0E 46
++ {0x59, 0x08}, //06 //07 05
++ {0x5a, 0x21}, //9b //EE E6
++ {0x5b, 0xfd}, //ff //FF 00
++ {0x5c, 0xa3}, //17 //05 D3
++ {0x5d, 0xff}, //ff //FF FF
++ {0x5e, 0xbc}, //81 //7A 53
++ {0x5f, 0xfc}, //fd //FC FB
++ {0x60, 0x96}, //5b //23 B1
++ {0x61, 0x07}, //07 //08 08
++ {0x62, 0xaf}, //24 //64 FD
++
++//==========================================================
++// EDGE ENHANCEMENT
++//==========================================================
++ {0xfc, 0x05},
++ {0x12, 0x3d},
++ {0x13, 0x3b},
++ {0x14, 0x38},
++ {0x15, 0x3b},
++ {0x16, 0x3d},
++
++ {0x17, 0x3b},
++ {0x18, 0x05},
++ {0x19, 0x09},
++ {0x1a, 0x05},
++ {0x1b, 0x3b},
++
++ {0x1c, 0x38},
++ {0x1d, 0x09},
++ {0x1e, 0x1c},
++ {0x1f, 0x09},
++ {0x20, 0x38},
++
++ {0x21, 0x3b},
++ {0x22, 0x05},
++ {0x23, 0x09},
++ {0x24, 0x05},
++ {0x25, 0x3b},
++
++ {0x26, 0x3d},
++ {0x27, 0x3b},
++ {0x28, 0x38},
++ {0x29, 0x3b},
++ {0x2a, 0x3d},
++
++ {0xfc, 0x00},
++ {0x89, 0x00},// Edge Suppress On
++ {0xfc, 0x0b},
++ {0x42, 0x50},// Edge AGC MIN
++ {0x43, 0x60},// Edge AGC MAX
++ {0x45, 0x18},// positive gain AGC MIN
++ {0x49, 0x06},// positive gain AGC MAX
++ {0x4d, 0x18},// negative gain AGC MIN
++ {0x51, 0x06},// negative gain AGC MAX
++
++ {0xfc, 0x05},
++ {0x34, 0x28},// APTCLP
++ {0x35, 0x03},// APTSC
++ {0x36, 0x0b},// ENHANCE
++ {0x3f, 0x00},// NON-LIN
++ {0x42, 0x10},// EGFALL
++ {0x43, 0x00},// HLFALL
++ {0x45, 0xa0},// EGREF
++ {0x46, 0x7a},// HLREF
++ {0x47, 0x40},// LLREF
++ {0x48, 0x0c},
++ {0x49, 0x31},// CSSEL EGSEL CS_DLY
++
++ {0x40, 0x41},// Y delay
++
++ // New Wide Luma Edge
++ {0xfc, 0x1d},
++ {0x86, 0x00},
++ {0x87, 0x60},
++ {0x88, 0x01},
++ {0x89, 0x20},
++ {0x8a, 0x00},
++ {0x8b, 0x00},
++ {0x8c, 0x00},
++ {0x8d, 0x00},
++ {0x8e, 0x00},
++ {0x8f, 0x20},
++ {0x90, 0x00},
++ {0x91, 0x00},
++ {0x92, 0x00},
++ {0x93, 0x0a},
++ {0x94, 0x00},
++ {0x95, 0x00},
++ {0x96, 0x00},
++ {0x97, 0x20},
++ {0x98, 0x00},
++ {0x99, 0x00},
++ {0x9a, 0xff},
++ {0x9b, 0xea},
++ {0x9c, 0xaa},
++ {0x9d, 0xab},
++ {0x9e, 0xff},
++ {0x9f, 0xf1},
++ {0xa0, 0x55},
++ {0xa1, 0x56},
++ {0xa2, 0x07},
++
++ {0x85, 0x01},
++
++//==========================================================
++// GAMMA
++//==========================================================
++ {0xfc, 0x1d},
++ {0x00, 0x0b},
++ {0x01, 0x18},
++ {0x02, 0x3d},
++ {0x03, 0x9c},
++ {0x04, 0x00},
++ {0x05, 0x0c},
++ {0x06, 0x76},
++ {0x07, 0xc2},
++ {0x08, 0x00},
++ {0x09, 0x56},
++ {0x0a, 0x34},
++ {0x0b, 0x60},
++ {0x0c, 0x85},
++ {0x0d, 0xa7},
++ {0x0e, 0xaa},
++ {0x0f, 0xc6},
++ {0x10, 0xe2},
++ {0x11, 0xfc},
++ {0x12, 0x13},
++ {0x13, 0xab},
++ {0x14, 0x29},
++ {0x15, 0x3c},
++ {0x16, 0x4b},
++ {0x17, 0x5a},
++ {0x18, 0xff},
++ {0x19, 0x69},
++ {0x1a, 0x78},
++ {0x1b, 0x84},
++ {0x1c, 0x91},
++ {0x1d, 0xff},
++ {0x1e, 0x9c},
++ {0x1f, 0xa7},
++ {0x20, 0xb2},
++ {0x21, 0xbd},
++ {0x22, 0xff},
++ {0x23, 0xc7},
++ {0x24, 0xd2},
++ {0x25, 0xdb},
++ {0x26, 0xe4},
++ {0x27, 0xff},
++ {0x28, 0xec},
++ {0x29, 0xf5},
++ {0x2a, 0xf0},
++ {0x2b, 0x0b},
++ {0x2c, 0x18},
++ {0x2d, 0x3d},
++ {0x2e, 0x9c},
++ {0x2f, 0x00},
++ {0x30, 0x0c},
++ {0x31, 0x76},
++ {0x32, 0xc2},
++ {0x33, 0x00},
++ {0x34, 0x56},
++ {0x35, 0x34},
++ {0x36, 0x60},
++ {0x37, 0x85},
++ {0x38, 0xa7},
++ {0x39, 0xaa},
++ {0x3a, 0xc6},
++ {0x3b, 0xe2},
++ {0x3c, 0xfc},
++ {0x3d, 0x13},
++ {0x3e, 0xab},
++ {0x3f, 0x29},
++ {0x40, 0x3c},
++ {0x41, 0x4b},
++ {0x42, 0x5a},
++ {0x43, 0xff},
++ {0x44, 0x69},
++ {0x45, 0x78},
++ {0x46, 0x84},
++ {0x47, 0x91},
++ {0x48, 0xff},
++ {0x49, 0x9c},
++ {0x4a, 0xa7},
++ {0x4b, 0xb2},
++ {0x4c, 0xbd},
++ {0x4d, 0xff},
++ {0x4e, 0xc7},
++ {0x4f, 0xd2},
++ {0x50, 0xdb},
++ {0x51, 0xe4},
++ {0x52, 0xff},
++ {0x53, 0xec},
++ {0x54, 0xf5},
++ {0x55, 0xf0},
++ {0x56, 0x0b},
++ {0x57, 0x18},
++ {0x58, 0x3d},
++ {0x59, 0x9c},
++ {0x5a, 0x00},
++ {0x5b, 0x0c},
++ {0x5c, 0x76},
++ {0x5d, 0xc2},
++ {0x5e, 0x00},
++ {0x5f, 0x56},
++ {0x60, 0x34},
++ {0x61, 0x60},
++ {0x62, 0x85},
++ {0x63, 0xa7},
++ {0x64, 0xaa},
++ {0x65, 0xc6},
++ {0x66, 0xe2},
++ {0x67, 0xfc},
++ {0x68, 0x13},
++ {0x69, 0xab},
++ {0x6a, 0x29},
++ {0x6b, 0x3c},
++ {0x6c, 0x4b},
++ {0x6d, 0x5a},
++ {0x6e, 0xff},
++ {0x6f, 0x69},
++ {0x70, 0x78},
++ {0x71, 0x84},
++ {0x72, 0x91},
++ {0x73, 0xff},
++ {0x74, 0x9c},
++ {0x75, 0xa7},
++ {0x76, 0xb2},
++ {0x77, 0xbd},
++ {0x78, 0xff},
++ {0x79, 0xc7},
++ {0x7a, 0xd2},
++ {0x7b, 0xdb},
++ {0x7c, 0xe4},
++ {0x7d, 0xff},
++ {0x7e, 0xec},
++ {0x7f, 0xf5},
++ {0x80, 0xf0},
++
++//==========================================================
++// HUE CONTROL
++//==========================================================
++ {0xfc, 0x00},
++ {0x48, 0x40},// 2000K
++ {0x49, 0x30},
++ {0x4a, 0x00},
++ {0x4b, 0x00},
++ {0x4c, 0x30},
++ {0x4d, 0x38},
++ {0x4e, 0x00},
++ {0x4f, 0x00},
++
++ {0x50, 0x40},// 3000K
++ {0x51, 0x30},
++ {0x52, 0x00},
++ {0x53, 0x00},
++ {0x54, 0x30},
++ {0x55, 0x38},
++ {0x56, 0x00},
++ {0x57, 0x00},
++
++ {0x58, 0x3c},//40 // 5100K
++ {0x59, 0x30},//4a //40
++ {0x5a, 0x00},//0c //00
++ {0x5b, 0x00},//00
++ {0x5c, 0x30},//4a
++ {0x5d, 0x38},//40
++ {0x5e, 0x00},//f6 //15
++ {0x5f, 0xfc},//00
++
++//==========================================================
++// SUPPRESS FUNCTION
++//==========================================================
++ {0xfc, 0x00},
++ {0x7e, 0xf4},
++
++//==========================================================
++// BPR
++//==========================================================
++ {0xfc, 0x0b},
++ {0x3d, 0x10},
++
++ {0xfc, 0x0b},
++ {0x0b, 0x00},
++ {0x0c, 0x40},
++ {0x0d, 0x5a},
++ {0x0e, 0x00},
++ {0x0f, 0x20},
++ {0x10, 0x00},
++ {0x11, 0x10},
++ {0x12, 0x00},
++ {0x13, 0x7f},
++ {0x14, 0x03},
++ {0x15, 0xff},
++ {0x16, 0x48},
++ {0x17, 0x60},
++ {0x18, 0x00},
++ {0x19, 0x00},
++ {0x1a, 0x00},
++ {0x1b, 0x20},
++ {0x1c, 0x00},
++ {0x1d, 0x00},
++ {0x1e, 0x00},
++ {0x1f, 0x20},
++
++//==========================================================
++// GR/GB CORRECTION
++//==========================================================
++ {0xfc, 0x01},
++ {0x45, 0x0c},
++ {0xfc, 0x0b},
++ {0x21, 0x00},
++ {0x22, 0x40},
++ {0x23, 0x60},
++ {0x24, 0x0d},
++ {0x25, 0x20},
++ {0x26, 0x0d},
++ {0x27, 0x20},
++
++//==========================================================
++// NR
++//==========================================================
++ {0xfc, 0x01},
++ {0x4c, 0x01},
++ {0x49, 0x15},
++ {0x4b, 0x0a},
++
++ {0xfc, 0x0b},
++ {0x28, 0x00},
++ {0x29, 0x00},
++ {0x2a, 0x14},
++ {0x2b, 0x00},
++ {0x2c, 0x14},
++ {0x2d, 0x00},
++ {0x2e, 0xD0},
++ {0x2f, 0x02},
++ {0x30, 0x00},
++ {0x31, 0x00},
++ {0x32, 0xa0},
++ {0x33, 0x00},
++ {0x34, 0xe0},
++
++//==========================================================
++// 1D-Y/C-SIGMA-LPF
++//==========================================================
++ {0xfc, 0x01},
++ {0x05, 0xC0},
++
++ {0xfc, 0x0b},
++ {0x35, 0x00},
++ {0x36, 0x40},
++ {0x37, 0x60},
++ {0x38, 0x00},
++ {0x39, 0x18},
++ {0x3a, 0x00},
++ {0x3b, 0x40},
++ {0x3c, 0x50},
++ {0x3d, 0x60},
++ {0x3e, 0x00},
++ {0x3f, 0x30},
++ {0x40, 0x00},
++ {0x41, 0x40},
++ {0xd4, 0x40},
++ {0xd5, 0x60},
++ {0xd6, 0xb0},
++ {0xd7, 0xf0},
++ {0xd8, 0xb0},
++ {0xd9, 0xf0},
++
++//==========================================================
++// COLOR SUPPRESS
++//==========================================================
++ {0xfc, 0x0b},
++ {0x08, 0x58},
++ {0x09, 0x03},
++ {0x0a, 0x00},
++
++//==========================================================
++// SHADING
++//==========================================================
++ {0xfc, 0x09},
++
++ {0x01, 0x06},
++ {0x02, 0x40},
++
++ {0x03, 0x04},
++ {0x04, 0xB0},
++
++ {0x05, 0x03},
++ {0x06, 0x20},
++ {0x07, 0x02},
++ {0x08, 0x91},
++
++ {0x09, 0x03},
++ {0x0A, 0x25},
++ {0x0B, 0x02},
++ {0x0C, 0x64},
++
++ {0x0D, 0x03},
++ {0x0E, 0x0F},
++ {0x0F, 0x02},
++ {0x10, 0x4E},
++
++ {0x1D, 0x80},
++ {0x1E, 0x00},
++ {0x1F, 0x80},
++ {0x20, 0x00},
++ {0x23, 0x85},
++ {0x24, 0x52},
++ {0x21, 0x79},
++ {0x22, 0xE6},
++
++ {0x25, 0x80},
++ {0x26, 0x00},
++ {0x27, 0x80},
++ {0x28, 0x00},
++ {0x2B, 0x81},
++ {0x2C, 0x48},
++ {0x29, 0x81},
++ {0x2A, 0x48},
++
++ {0x2D, 0x80},
++ {0x2E, 0x00},
++ {0x2F, 0x80},
++ {0x30, 0x00},
++ {0x33, 0x7C},
++ {0x34, 0x45},
++ {0x31, 0x7D},
++ {0x32, 0x7D},
++
++ {0x35, 0x01},
++ {0x36, 0x00},
++ {0x37, 0x01},
++ {0x38, 0x11},
++ {0x39, 0x01},
++ {0x3A, 0x4E},
++ {0x3B, 0x01},
++ {0x3C, 0xAB},
++ {0x3D, 0x01},
++ {0x3E, 0xDC},
++ {0x3F, 0x02},
++ {0x40, 0x1A},
++ {0x41, 0x02},
++ {0x42, 0x6A},
++ {0x43, 0x02},
++ {0x44, 0xD3},
++
++ {0x45, 0x01},
++ {0x46, 0x00},
++ {0x47, 0x01},
++ {0x48, 0x0E},
++ {0x49, 0x01},
++ {0x4A, 0x40},
++ {0x4B, 0x01},
++ {0x4C, 0x8A},
++ {0x4D, 0x01},
++ {0x4E, 0xB5},
++ {0x4F, 0x01},
++ {0x50, 0xE8},
++ {0x51, 0x02},
++ {0x52, 0x27},
++ {0x53, 0x02},
++ {0x54, 0x84},
++
++ {0x55, 0x01},
++ {0x56, 0x00},
++ {0x57, 0x01},
++ {0x58, 0x0C},
++ {0x59, 0x01},
++ {0x5A, 0x37},
++ {0x5B, 0x01},
++ {0x5C, 0x74},
++ {0x5D, 0x01},
++ {0x5E, 0x96},
++ {0x5F, 0x01},
++ {0x60, 0xC9},
++ {0x61, 0x02},
++ {0x62, 0x04},
++ {0x63, 0x02},
++ {0x64, 0x4B},
++
++ {0x65, 0x00},
++ {0x66, 0x9A},
++ {0x67, 0x2D},
++ {0x68, 0x02},
++ {0x69, 0x68},
++ {0x6A, 0xB6},
++ {0x6B, 0x05},
++ {0x6C, 0x6B},
++ {0x6D, 0x99},
++ {0x6E, 0x07},
++ {0x6F, 0x60},
++ {0x70, 0xAD},
++ {0x71, 0x09},
++ {0x72, 0xA2},
++ {0x73, 0xD7},
++ {0x74, 0x0C},
++ {0x75, 0x32},
++ {0x76, 0x19},
++ {0x77, 0x0F},
++ {0x78, 0x0E},
++ {0x79, 0x70},
++
++ {0x7A, 0x00},
++ {0x7B, 0x9C},
++ {0x7C, 0x9F},
++ {0x7D, 0x02},
++ {0x7E, 0x72},
++ {0x7F, 0x7A},
++ {0x80, 0x05},
++ {0x81, 0x81},
++ {0x82, 0x94},
++ {0x83, 0x07},
++ {0x84, 0x7E},
++ {0x85, 0x97},
++ {0x86, 0x09},
++ {0x87, 0xC9},
++ {0x88, 0xEA},
++ {0x89, 0x0C},
++ {0x8A, 0x63},
++ {0x8B, 0x8C},
++ {0x8C, 0x0F},
++ {0x8D, 0x4B},
++ {0x8E, 0x7E},
++
++ {0x8F, 0x00},
++ {0x90, 0x9E},
++ {0x91, 0xBD},
++ {0x92, 0x02},
++ {0x93, 0x7A},
++ {0x94, 0xF5},
++ {0x95, 0x05},
++ {0x96, 0x94},
++ {0x97, 0xA8},
++ {0x98, 0x07},
++ {0x99, 0x98},
++ {0x9A, 0x8F},
++ {0x9B, 0x09},
++ {0x9C, 0xEB},
++ {0x9D, 0xD5},
++ {0x9E, 0x0C},
++ {0x9F, 0x8E},
++ {0xA0, 0x7A},
++ {0xA1, 0x0F},
++ {0xA2, 0x80},
++ {0xA3, 0x7D},
++
++ {0xA4, 0x6A},
++ {0xA5, 0x44},
++ {0xA6, 0x23},
++ {0xA7, 0x6C},
++ {0xA8, 0x15},
++ {0xA9, 0x40},
++ {0xAA, 0x20},
++ {0xAB, 0xB2},
++ {0xAC, 0x1C},
++ {0xAD, 0x56},
++ {0xAE, 0x19},
++ {0xAF, 0x01},
++ {0xB0, 0x16},
++ {0xB1, 0x5F},
++
++ {0xB2, 0x68},
++ {0xB3, 0x9C},
++ {0xB4, 0x22},
++ {0xB5, 0xDE},
++ {0xB6, 0x14},
++ {0xB7, 0xEC},
++ {0xB8, 0x20},
++ {0xB9, 0x30},
++ {0xBA, 0x1B},
++ {0xBB, 0xE5},
++ {0xBC, 0x18},
++ {0xBD, 0x9D},
++ {0xBE, 0x16},
++ {0xBF, 0x05},
++
++ {0xC0, 0x67},
++ {0xC1, 0x36},
++ {0xC2, 0x22},
++ {0xC3, 0x67},
++ {0xC4, 0x14},
++ {0xC5, 0xA4},
++ {0xC6, 0x1F},
++ {0xC7, 0xC2},
++ {0xC8, 0x1B},
++ {0xC9, 0x86},
++ {0xCA, 0x18},
++ {0xCB, 0x49},
++ {0xCC, 0x15},
++ {0xCD, 0xBA},
++
++ {0x00, 0x02},// shading on
++
++//==========================================================
++// X-SHADING
++//==========================================================
++ {0xfc, 0x1B},
++ {0x80, 0x01},
++ {0x81, 0x00},
++ {0x82, 0x4C},
++ {0x83, 0x00},
++ {0x84, 0x86},
++ {0x85, 0x03},
++ {0x86, 0x5E},
++ {0x87, 0x00},
++ {0x88, 0x07},
++ {0x89, 0xA4},
++ {0x90, 0x00},
++ {0x91, 0x88},
++ {0x92, 0x00},
++ {0x93, 0xC1},
++ {0x94, 0x00},
++ {0x95, 0xF7},
++ {0x96, 0x01},
++ {0x97, 0x21},
++ {0x98, 0x01},
++ {0x99, 0x37},
++ {0x9A, 0x01},
++ {0x9B, 0x0C},
++ {0x9C, 0x00},
++ {0x9D, 0xCE},
++ {0x9E, 0x00},
++ {0x9F, 0x3B},
++ {0xA0, 0x00},
++ {0xA1, 0x5B},
++ {0xA2, 0x00},
++ {0xA3, 0x7A},
++ {0xA4, 0x00},
++ {0xA5, 0x92},
++ {0xA6, 0x00},
++ {0xA7, 0x91},
++ {0xA8, 0x00},
++ {0xA9, 0x81},
++ {0xAA, 0x00},
++ {0xAB, 0x60},
++ {0xAC, 0x07},
++ {0xAD, 0xCB},
++ {0xAE, 0x07},
++ {0xAF, 0xC5},
++ {0xB0, 0x07},
++ {0xB1, 0xBB},
++ {0xB2, 0x07},
++ {0xB3, 0xAA},
++ {0xB4, 0x07},
++ {0xB5, 0xA9},
++ {0xB6, 0x07},
++ {0xB7, 0xB2},
++ {0xB8, 0x07},
++ {0xB9, 0xBF},
++ {0xBA, 0x07},
++ {0xBB, 0x5E},
++ {0xBC, 0x07},
++ {0xBD, 0x3C},
++ {0xBE, 0x06},
++ {0xBF, 0xF9},
++ {0xC0, 0x06},
++ {0xC1, 0xBD},
++ {0xC2, 0x06},
++ {0xC3, 0xB8},
++ {0xC4, 0x06},
++ {0xC5, 0xE2},
++ {0xC6, 0x07},
++ {0xC7, 0x1A},
++ {0xC8, 0x07},
++ {0xC9, 0x15},
++ {0xCA, 0x06},
++ {0xCB, 0xDE},
++ {0xCC, 0x06},
++ {0xCD, 0x9C},
++ {0xCE, 0x06},
++ {0xCF, 0x6F},
++ {0xD0, 0x06},
++ {0xD1, 0x5E},
++ {0xD2, 0x06},
++ {0xD3, 0x84},
++ {0xD4, 0x06},
++ {0xD5, 0xCA},
++
++ {0xfc, 0x0b},
++ {0xda, 0x00},
++ {0xdb, 0x9c},
++ {0xdc, 0x00},
++ {0xdd, 0xd1},
++
++ {0xfc, 0x1b},
++ {0x80, 0x01},
++
++//==========================================================
++// AE WINDOW WEIGHT
++//==========================================================
++ {0xfc, 0x00},
++ {0x03, 0x4b},
++ {0xfc, 0x06},
++ {0x01, 0x35},
++ {0x03, 0xc2},
++ {0x05, 0x48},
++ {0x07, 0xb8},
++ {0x31, 0x2a},
++ {0x33, 0x61},
++ {0x35, 0x28},
++ {0x37, 0x5c},
++
++ {0xfc, 0x20},
++ {0x60, 0x11},
++ {0x61, 0x11},
++ {0x62, 0x11},
++ {0x63, 0x11},
++ {0x64, 0x11},
++ {0x65, 0x22},
++ {0x66, 0x22},
++ {0x67, 0x11},
++ {0x68, 0x11},
++ {0x69, 0x33},
++ {0x6a, 0x33},
++ {0x6b, 0x11},
++ {0x6c, 0x12},
++ {0x6d, 0x55},
++ {0x6e, 0x55},
++ {0x6f, 0x21},
++ {0x70, 0x13},
++ {0x71, 0x55},
++ {0x72, 0x55},
++ {0x73, 0x31},
++ {0x74, 0x33},
++ {0x75, 0x33},
++ {0x76, 0x33},
++ {0x77, 0x33},
++
++//==========================================================
++// SAIT AWB
++//==========================================================
++ {0xfc, 0x00},
++ {0x7b, 0x00},
++
++ {0xfc, 0x07},
++ {0x3c, 0x10},
++ {0x3d, 0x10},
++ {0x3e, 0x10},
++ {0x3f, 0x10},
++
++ {0xfc, 0x01},
++ {0xc8, 0xe0},
++ {0xfc, 0x00},
++ {0x3e, 0x10},
++
++ {0xfc, 0x00},
++ {0x3e, 0x10},
++ {0x3d, 0x04},
++ {0x32, 0x02},
++ {0x81, 0x10},
++ {0xbc, 0xf0},
++ {0xfc, 0x22},
++ {0x8c, 0x04},
++ {0x8d, 0x06},
++
++ {0xfc, 0x07},
++ {0x97, 0x00},
++
++//=================================
++// White Point
++//=================================
++ {0xfc, 0x22},
++ {0x01, 0xD8},
++ {0x03, 0xA1},
++ {0x05, 0xCA},
++ {0x07, 0xC8},
++ {0x09, 0xB3},
++ {0x0b, 0xE2},
++ {0x0d, 0xA0},
++ {0x0f, 0xF0},
++ {0x11, 0x94},
++ {0x12, 0x00},
++ {0x13, 0xFD},
++ {0x15, 0x88},
++ {0x16, 0x01},
++ {0x17, 0x10},
++
++//=================================
++// Basic Setting
++//=================================
++ {0xfc, 0x22},
++ {0xA8, 0xFF},
++
++ {0xA0, 0x01},
++ {0xA1, 0x38},
++ {0xA2, 0x0E},
++ {0xA3, 0x6D},
++ {0xA4, 0x07},
++ {0xA5, 0xF5},
++ {0xA6, 0x11},
++ {0xA7, 0xBE},
++ {0xA9, 0x02},
++ {0xAA, 0xD2},
++ {0xAB, 0x00},
++ {0xAC, 0x00},
++ {0xAD, 0x02},
++ {0xAE, 0x3F},
++ {0xAF, 0x19},
++ {0xB0, 0x91},
++ {0x94, 0x3D},
++ {0x95, 0x00},
++ {0x96, 0x58},
++ {0x97, 0x80},
++ {0xD0, 0xA2},
++ {0xD1, 0x2E},
++ {0xD2, 0x4D},
++ {0xD3, 0x28},
++ {0xD4, 0x90},
++ {0xDB, 0x2E},
++ {0xDC, 0x7A},
++ {0xDD, 0x28},
++ {0xE7, 0x00},
++ {0xE8, 0xc7},
++ {0xE9, 0x00},
++ {0xEA, 0x62},
++ {0xEB, 0xD2},
++ {0xEC, 0xD9},
++ {0xEE, 0xA6},
++
++ {0xfc, 0x00},
++ {0x8a, 0x02},
++
++//=================================
++// Pixel Filter Setting
++//=================================
++ {0xFC, 0x07},
++ {0x95, 0xCF},
++
++ {0xfc, 0x01},
++ {0xd3, 0x4f},
++ {0xd4, 0x00},
++ {0xd5, 0x3c},
++ {0xd6, 0x80},
++ {0xd7, 0x61},
++ {0xd8, 0x00},
++ {0xd9, 0x49},
++ {0xda, 0x00},
++ {0xdb, 0x24},
++ {0xdc, 0x4b},
++ {0xdd, 0x23},
++ {0xde, 0xf2},
++ {0xdf, 0x20},
++ {0xe0, 0x73},
++ {0xe1, 0x18},
++ {0xe2, 0x69},
++ {0xe3, 0x31},
++ {0xe4, 0x40},
++ {0xe5, 0x34},
++ {0xe6, 0x40},
++ {0xe7, 0x40},
++ {0xe8, 0x32},
++ {0xe9, 0x40},
++ {0xea, 0x1c},
++ {0xeb, 0x00},
++
++//=================================
++// Polygon AWB Region Tune
++//=================================
++
++ // AWB3 - Polygon Region
++ {0xfc, 0x22},
++ {0x18, 0x00},
++ {0x19, 0x4b},
++ {0x1a, 0xfd},
++ {0x1b, 0x00},
++ {0x1c, 0x41},
++ {0x1d, 0xd9},
++ {0x1e, 0x00},
++ {0x1f, 0x66},
++ {0x20, 0xa9},
++ {0x21, 0x00},
++ {0x22, 0x8b},
++ {0x23, 0x82},
++ {0x24, 0x00},
++ {0x25, 0xa4},
++ {0x26, 0x6c},
++ {0x27, 0x00},
++ {0x28, 0xbd},
++ {0x29, 0x5d},
++ {0x2a, 0x00},
++ {0x2b, 0xdc},
++ {0x2c, 0x4d},
++ {0x2d, 0x00},
++ {0x2e, 0xdc},
++ {0x2f, 0x63},
++ {0x30, 0x00},
++ {0x31, 0xc1},
++ {0x32, 0x72},
++ {0x33, 0x00},
++ {0x34, 0xab},
++ {0x35, 0x84},
++ {0x36, 0x00},
++ {0x37, 0x99},
++ {0x38, 0xa0},
++ {0x39, 0x00},
++ {0x3a, 0x81},
++ {0x3b, 0xe9},
++ {0x3c, 0x00},
++ {0x3d, 0x00},
++ {0x3e, 0x00},
++ {0x3f, 0x00},
++ {0x40, 0x00},
++ {0x41, 0x00},
++
++//=================================
++// Moving Equation Weight
++//=================================
++ {0xfc, 0x22},
++ {0x98, 0x07},
++
++//=================================
++// EIT Threshold
++//=================================
++ {0xfc, 0x22},
++ {0xb1, 0x00},
++ {0xb2, 0x02},
++ {0xb3, 0x00},
++ {0xb4, 0xC1},
++
++ {0xb5, 0x00},
++ {0xb6, 0x02},
++ {0xb7, 0x00},
++ {0xb9, 0xc2},
++
++ {0xd7, 0x00},
++ {0xd8, 0x35},
++ {0xd9, 0x20},
++ {0xda, 0x81},
++
++//=================================
++// Gain Offset
++//=================================
++ {0xfc, 0x00},
++ {0x79, 0xf8},
++ {0x7a, 0x08},
++
++ {0xfc, 0x07},
++ {0x11, 0x01},
++
++ {0xfc, 0x22},
++ {0x58, 0xf8},
++ {0x59, 0x00},
++ {0x5A, 0xfc},
++ {0x5B, 0x00},
++ {0x5C, 0x00},
++ {0x5D, 0x00},
++ {0x5E, 0x00},
++ {0x5F, 0x00},
++ {0x60, 0x00},
++ {0x61, 0xf8},
++ {0x62, 0x00},
++ {0x63, 0xf0},
++
++ {0xde, 0x00},
++ {0xf0, 0x6a},
++
++//=================================
++// Green Stablity Enhance
++//=================================
++ {0xfc, 0x22},
++ {0xb9, 0x00},
++ {0xba, 0x00},
++ {0xbb, 0x00},
++ {0xbc, 0x00},
++ {0xe5, 0x01},
++ {0xe6, 0xff},
++ {0xbd, 0x8c},
++
++//==========================================================
++// Special Effect
++//==========================================================
++ {0xfc, 0x07},
++ {0x30, 0xc0},
++ {0x31, 0x20},
++ {0x32, 0x40},
++ {0x33, 0xc0},
++ {0x34, 0x00},
++ {0x35, 0xb0},
++#endif
++//==========================================================
++// ETC
++//==========================================================
++ {0xfc, 0x01},
++ {0x01, 0x01},
++ {0x00, 0x90},
++ {0xfc, 0x02},
++ {0x03, 0x20},
++
++ {0xfc, 0x20},
++ {0x0f, 0x00},
++
++ {0xfc, 0x00},
++ {0x02, 0x09},
++
++ {0xfc, 0x01},
++ //{0x02, 0x00},
++ {0x02, 0x02},//Donghoon
++};
++#endif
++#else
++#error No samsung CIS moudule !
++#endif
++
++
++// For VGA ( 640 x 480) on 4BA module
++s5k4xa_t s5k4ba_reg_vga[] =
++{
++ // To do.
++};
++
++// For SVGA ( 800 x 600) on 4BA module
++s5k4xa_t s5k4ba_reg_svga[] =
++{
++ {0xfc,0x02},
++ {0x2d,0x48},
++ {0x44,0x63},
++
++ {0xfc,0x03},
++ {0x02,0x04},
++ {0xfc,0x20},
++ {0x14,0x70},
++
++ {0xfc,0x00},
++ {0x03,0x4b}, // AE/AWB On
++ {0x7e,0xf4}, // Suppress On
++ {0x89,0x03}, // Edge Suppress On
++
++ {0xfc,0x02},
++ {0x02,0x0e},//sensor BPRoff
++
++ {0xfc,0x20},
++ {0x16,0x60}, // Frame AE Start
++
++ {0xfc,0x02},
++ {0x30,0x90}, // Analog offset
++ {0x37,0x0d}, // Global Gain
++ {0x60,0x00}, // Blank_Adrs
++ {0x45,0x0e}, // CDS Timing for Average Sub_Sampling
++ {0x47,0x2f},
++
++ {0xfc,0x01},
++ {0x9F,0x05}, //B
++ {0xA0,0x18},
++ {0xA1,0x42},
++ {0xA2,0xd7},
++ {0xA3,0x00},
++
++ {0xA4,0xB6},
++ {0xA5,0x3b},
++ {0xA6,0x88},
++ {0xA7,0xC8},
++ {0xA8,0x6A},
++
++ {0xfc,0x05},
++ {0x34,0x20}, // APTCLP
++ {0x35,0x08}, //9 //APTSC
++
++ {0xfc,0x00}, // flash 0821
++ {0x32,0x04}, // AWB moving average 8 frame
++
++ {0xfc,0x01},
++ {0x01,0x01}, // Pclk inversion
++
++ {0xfc,0x00},
++ {0x02,0x09}, // 800 x 600
++
++
++ {0xFF,0xFF} // REGISTER END
++};
++
++// For SXGA (1280 x 1024 = 1.3M) on 4BA module
++s5k4xa_t s5k4ba_reg_sxga[] =
++{
++ // To do.
++};
++
++
++// For UXGA (1600 x 1200 = 2M) on 4BA module
++s5k4xa_t s5k4ba_reg_uxga[] =
++{
++ // To do.
++};
++
++
++// For SQVGA on 4BA module
++s5k4xa_t s5k4ba_reg_qsvga[] =
++{
++ // Pclk inversion
++ {0xfc,0x01},
++ {0x01,0x01},
++
++ // To setting CbCr selection on Table 14h
++ {0xfc, 0x14},
++ {0x5c, 0x00},
++
++ // To load table_11 H4V4
++ {0xfc, 0x00},
++ {0x02, 0x0B}
++};
++
++#define S5K4BA_INIT_REGS (sizeof(s5k4ba_reg)/sizeof(s5k4ba_reg[0]))
++#define S5K4BA_UXGA_REGS (sizeof(s5k4ba_reg_uxga)/sizeof(s5k4ba_reg_uxga[0]))
++#define S5K4BA_SVGA_REGS (sizeof(s5k4ba_reg_svga)/sizeof(s5k4ba_reg_svga[0]))
++#define S5K4BA_VGA_REGS (sizeof(s5k4ba_reg_vga)/sizeof(s5k4ba_reg_vga[0]))
++#define S5K4BA_QSVGA_REGS (sizeof(s5k4ba_reg_qsvga)/sizeof(s5k4ba_reg_qsvga[0]))
++
++
++
++#define S5K4BA_RISC_REGS 0xEB
++#define S5K4BA_ISP_REGS 0xFB /* S5C7323X */
++#define S5K4BA_CIS_REGS 0x2F /* S5K437LA03 */
++
++
++#define S5K4BA_REGS (0x1000)
++
++
++
++#endif
++
+diff --git a/drivers/media/video/samsung/Makefile b/drivers/media/video/samsung/Makefile
+new file mode 100644
+index 0000000..885512c
+--- /dev/null
++++ b/drivers/media/video/samsung/Makefile
+@@ -0,0 +1,9 @@
++#
++# Samsung CIS camera module
++
++obj-$(CONFIG_VIDEO_SAMSUNG_S5K3AA) += 3xa_sensor.o
++obj-$(CONFIG_VIDEO_SAMSUNG_S5K3BA) += 3xa_sensor.o
++obj-$(CONFIG_VIDEO_SAMSUNG_S5K4BA) += 4xa_sensor.o
++obj-$(CONFIG_VIDEO_ADV7180) += adv7180.o
++obj-$(CONFIG_VIDEO_APTINA_MT9P012) += mt9p012.o
++
+diff --git a/drivers/media/video/samsung/adv7180.c b/drivers/media/video/samsung/adv7180.c
+new file mode 100644
+index 0000000..02db70d
+--- /dev/null
++++ b/drivers/media/video/samsung/adv7180.c
+@@ -0,0 +1,421 @@
++/*
++ * ADV7180 Analog decoder driver for S3C2443X
++ *
++ * Jaecheol Lee <jc.lee@samsung.com>
++ * 2007.08.08
++ */
++
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/i2c.h>
++#include <linux/i2c-id.h>
++#include <linux/slab.h>
++#include <linux/string.h>
++#include <linux/init.h>
++#include <linux/delay.h>
++#include <linux/video_decoder.h>
++#include <media/v4l2-dev.h>
++
++//#include <asm/arch/registers.h>
++#include "../s3c_camif.h"
++#include "adv7180.h"
++
++
++
++static const char *sensor_version =
++ "adv7180.c, v 1.00 2007/08/08 jc.lee@samsung.com";
++
++
++static struct i2c_driver i2c_driver_adv7180;
++
++/* This is an abstract CIS sensor for MSDMA input. */
++
++camif_cis_t msdma_input = {
++ itu_fmt: CAMIF_ITU601,
++ order422: CAMIF_YCBYCR, /* YCRYCB */
++ camclk: 32000000, /* No effect */
++ source_x: 800,
++ source_y: 480,
++ win_hor_ofst: 0,
++ win_ver_ofst: 0,
++ win_hor_ofst2: 0,
++ win_ver_ofst2: 0,
++ polarity_pclk: 0,
++ polarity_vsync:1,
++ polarity_href: 0,
++ reset_type:CAMIF_EX_RESET_AH, /* Ref board has inverted signal */
++ reset_udelay: 20000,
++};
++
++camif_cis_t interlace_input = {
++ itu_fmt: CAMIF_ITU656,
++ order422: CAMIF_CBYCRY, /* YCRYCB */
++ camclk: 32000000, /* No effect */
++ source_x: 720,
++ source_y: 243,
++ win_hor_ofst: 0,
++ win_ver_ofst: 0,
++ win_hor_ofst2: 0,
++ win_ver_ofst2: 0,
++ polarity_pclk: 0,
++ polarity_vsync:0,
++ polarity_href: 0,
++ reset_type:CAMIF_EX_RESET_AH, /* Ref board has inverted signal */
++ reset_udelay: 20000,
++};
++
++
++extern camif_cis_t* get_initialized_cis();
++camif_cis_t* get_initialized_cis() {
++ if(interlace_input.init_sensor == 0) return NULL;
++ return &interlace_input;
++
++}
++
++static unsigned short ignore[] = { I2C_CLIENT_END };
++static unsigned short normal_addr[] = { (I2C_ADV7180 >> 1), I2C_CLIENT_END };
++static unsigned short *forces[] = { NULL };
++
++static struct i2c_client_address_data addr_data = {
++ normal_i2c:normal_addr,
++ //normal_i2c_range:ignore,
++ probe:ignore,
++ //probe_range:ignore,
++ ignore:ignore,
++ //ignore_range:ignore,
++ forces:forces,
++};
++
++
++static inline int
++adv7180_write (struct i2c_client *client,
++ u8 reg,
++ u8 value)
++{
++ struct adv7180 *decoder = i2c_get_clientdata(client);
++ decoder->reg[reg] = value;
++ return i2c_smbus_write_byte_data(client, reg, value);
++}
++
++static inline int
++adv7180_read (struct i2c_client *client,
++ u8 reg)
++{
++ return i2c_smbus_read_byte_data(client, reg);
++}
++
++static int
++adv7180_write_block (struct i2c_client *client,
++ const u8 *data,
++ unsigned int len)
++{
++ int ret = -1;
++ u8 reg;
++
++ /* the adv7180 has an autoincrement function, use it if
++ * the adapter understands raw I2C */
++ if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
++ /* do raw I2C, not smbus compatible */
++ struct adv7180 *decoder = i2c_get_clientdata(client);
++ struct i2c_msg msg;
++ u8 block_data[32];
++
++ msg.addr = client->addr;
++ msg.flags = 0;
++ while (len >= 2) {
++ msg.buf = (char *) block_data;
++ msg.len = 0;
++ block_data[msg.len++] = reg = data[0];
++ do {
++ block_data[msg.len++] =
++ decoder->reg[reg++] = data[1];
++ len -= 2;
++ data += 2;
++ } while (len >= 2 && data[0] == reg &&
++ msg.len < 32);
++ if ((ret = i2c_transfer(client->adapter,
++ &msg, 1)) < 0)
++ break;
++ }
++ } else {
++ /* do some slow I2C emulation kind of thing */
++ while (len >= 2) {
++ reg = *data++;
++ if ((ret = adv7180_write(client, reg,
++ *data++)) < 0)
++ break;
++ len -= 2;
++ }
++ }
++
++ return ret;
++}
++
++
++static int
++adv7180_detect_client (struct i2c_adapter *adapter,
++ int address,
++ int kind)
++{
++ int i;
++ struct i2c_client *client;
++ struct adv7180 *decoder;
++ char *dname;
++
++ /* Check if the adapter supports the needed features */
++ if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_EMUL))
++ return 0;
++
++ client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
++ if (client == 0)
++ return -ENOMEM;
++ client->addr = address;
++ client->adapter = adapter;
++ client->driver = &i2c_driver_adv7180;
++ if ((client->addr == I2C_ADV7180 >> 1) ||
++ (client->addr == (I2C_ADV7180 >> 1) + 1)) {
++ dname = adv7180_name;
++ } else {
++ /* We should never get here!!! */
++ kfree(client);
++ return 0;
++ }
++
++ client->data = &interlace_input;
++ interlace_input.sensor = client;
++ camif_register_cis(client);
++
++ strlcpy(I2C_NAME(client), dname, sizeof(I2C_NAME(client)));
++
++ decoder = kzalloc(sizeof(struct adv7180), GFP_KERNEL);
++ if (decoder == NULL) {
++ kfree(client);
++ return -ENOMEM;
++ }
++ decoder->norm = VIDEO_MODE_NTSC;
++ decoder->input = 0;
++ decoder->enable = 1;
++ i2c_set_clientdata(client, decoder);
++
++ i = i2c_attach_client(client);
++ if (i) {
++ kfree(client);
++ kfree(decoder);
++ return i;
++ }
++
++ i = adv7180_write_block(client, init_composite, sizeof(init_composite));
++ if (i >= 0) {
++
++ }
++ if (i < 0) {
++ }
++
++ return 0;
++}
++
++
++
++static int adv7180_attach_adapter(struct i2c_adapter *adap)
++{
++ return i2c_probe(adap, &addr_data, adv7180_detect_client);
++}
++
++static int adv7180_detach_client(struct i2c_client *client)
++{
++ int err;
++ err = i2c_detach_client(client);
++ if(err) {
++ return err;
++ }
++ camif_unregister_cis(client);
++
++ kfree(client);
++ return 0;
++}
++
++static int
++adv7180_command (struct i2c_client *client,
++ unsigned int cmd,
++ void *arg)
++{
++ int tmp;
++ u64 endtime;
++
++ struct adv7180 *decoder = i2c_get_clientdata(client);
++
++ switch (cmd) {
++
++ case 0:
++ /* This is just for testing!!! */
++ adv7180_write_block(client, init_composite,
++ sizeof(init_composite));
++ break;
++
++ case USER_ADD:
++ adv7180_write(client, 0x0f, (1<<7)); // Reset
++ endtime = get_jiffies_64() + RESET_DELAY;
++ while(jiffies < endtime); // Delay for a 5 ms
++ break;
++
++ case USER_EXIT:
++ adv7180_write(client, 0x0f, (1<<5)); // PWRDWN : 1
++ break;
++
++ case DECODER_INIT:
++ break;
++
++ case DECODER_GET_STATUS:
++ {
++ int *iarg = arg;
++
++ tmp = adv7180_read(client, 0x10) & 0x000000ff; // STATUS1
++ tmp = (tmp | (adv7180_read(client, 0x11) & 0x000000ff)<<8); // + IDENTIFICATION
++ tmp = (tmp | (adv7180_read(client, 0x12) & 0x000000ff)<<16); // + STATUS2
++ tmp = (tmp | (adv7180_read(client, 0x13) & 0x000000ff)<<24); // + STATUS3
++
++ *iarg = tmp;
++ }
++ break;
++
++ case DECODER_GET_CAPABILITIES:
++ {
++ struct video_decoder_capability *cap = arg;
++
++ cap->flags = VIDEO_DECODER_NTSC |
++ VIDEO_DECODER_PAL; /* well, hacky */
++ cap->inputs = 2;
++ cap->outputs = 1;
++ }
++ break;
++
++ case DECODER_SET_NORM:
++ {
++ int iarg = *(int *) arg;
++ switch (iarg) {
++
++ case 0: // Composite
++ adv7180_write_block(client, init_composite,
++ sizeof(init_composite));
++ break;
++
++ case 1: //S-VIDEO
++ adv7180_write_block(client, init_svideo,
++ sizeof(init_svideo));
++ break;
++
++ case 2: // Component
++ adv7180_write_block(client, init_component,
++ sizeof(init_component));
++ break;
++ default:
++ return -EINVAL;
++
++ }
++
++ decoder->norm = iarg;
++ }
++ break;
++
++ case DECODER_SET_INPUT:
++ {
++ int iarg = *(int *) arg;
++ decoder->input = iarg;
++
++ switch(decoder->input) {
++
++ case CVBS:
++ adv7180_write_block(client, init_composite,
++ sizeof(init_composite));
++ break;
++
++ case SVIDEO:
++ adv7180_write_block(client, init_svideo,
++ sizeof(init_svideo));
++ break;
++
++ case YPbPr:
++ adv7180_write_block(client, init_component,
++ sizeof(init_component));
++ break;
++
++ default:
++ return -EINVAL;
++
++ }
++ }
++ break;
++
++ case DECODER_SET_OUTPUT:
++ {
++ int *iarg = arg;
++
++ if (*iarg != 0) {
++ return -EINVAL;
++ }
++ }
++ break;
++
++ case DECODER_ENABLE_OUTPUT:
++ {
++ int *iarg = arg;
++
++ decoder->enable = !!*iarg;
++ }
++ break;
++
++ case DECODER_SET_GPIO:
++ {
++ int *iarg = arg;
++ switch(*iarg) {
++ case 0: // Pin 37 output is Field signal
++ adv7180_write(client, 0x58, 0x00);
++ break;
++
++ case 1: // Output is Vsync signal
++ adv7180_write(client, 0x58, (1<<0));
++ break;
++
++ default:
++ return -EINVAL;
++ }
++ }
++ break;
++
++ default:
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++static struct i2c_driver i2c_driver_adv7180 = {
++ .driver = {
++ .name = "adv7180",
++ },
++ .id = I2C_DRIVERID_ADV7170, /* Must be fixed!!! */
++
++ .attach_adapter = adv7180_attach_adapter,
++ .detach_client = adv7180_detach_client,
++ .command = adv7180_command
++};
++
++static __init int adv7180_init(void)
++{
++ return i2c_add_driver(&i2c_driver_adv7180);
++}
++
++
++static __init void adv7180_exit(void)
++{
++ i2c_del_driver(&i2c_driver_adv7180);
++}
++
++module_init(adv7180_init)
++module_exit(adv7180_exit)
++
++MODULE_AUTHOR("JaeCheol Lee <jc.lee@samsung.com>");
++MODULE_DESCRIPTION("I2C Client Driver For ADV7180 video decoder");
++MODULE_LICENSE("GPL");
++
+diff --git a/drivers/media/video/samsung/adv7180.h b/drivers/media/video/samsung/adv7180.h
+new file mode 100644
+index 0000000..afb2c82
+--- /dev/null
++++ b/drivers/media/video/samsung/adv7180.h
+@@ -0,0 +1,71 @@
++
++#ifndef _ADV7180_H_
++#define _ADV7180_H_
++
++//#include "../bits.h"
++
++////#define RESET_DELAY (5*HZ/10) // 5ms
++#define RESET_DELAY (10*HZ/10) // 5ms
++
++#define I2C_ADV7180 0x42
++
++#define I2C_NAME(s) (s)->name
++
++static char adv7180_name[] = "adv7180";
++
++enum input_mode {
++ CVBS, // Composite
++ SVIDEO, // S-video
++ YPbPr, // Component
++};
++
++struct adv7180 {
++ unsigned char reg[128];
++
++ int norm;
++ enum input_mode input;
++ int enable;
++};
++
++static const unsigned char init_composite[] = {
++ 0x00, 0x04,
++ 0x04, 0xD7,
++ 0x17, 0x41,
++ 0x31, 0x02,
++ 0x37, 0x09, ////
++ 0x3D, 0xA2,
++
++ 0x3E, 0x6A,
++ 0x3F, 0xA0,
++ 0x0E, 0x80,
++ 0x55, 0x81,
++ 0x0E, 0x00,
++};
++
++static const unsigned char init_component[] = {
++ 0x00, 0x09,
++ 0x31, 0x02,
++ 0x3D, 0xA2,
++ 0x3E, 0x6A,
++ 0x3F, 0xA0,
++
++ 0x0E, 0x80,
++ 0x55, 0x81,
++ 0x0E, 0x00,
++};
++
++static const unsigned char init_svideo[] = {
++ 0x00, 0x06,
++ 0x04, 0x57,
++ 0x31, 0x02,
++ 0x3D, 0xA2,
++ 0x3E, 0x6A,
++
++ 0x3F, 0xA0,
++ 0x58, 0x04,
++ 0x0E, 0x80,
++ 0x55, 0x81,
++ 0x0E, 0x00,
++};
++#endif
++
+diff --git a/drivers/media/video/samsung/mt9p012.c b/drivers/media/video/samsung/mt9p012.c
+new file mode 100644
+index 0000000..28e3bed
+--- /dev/null
++++ b/drivers/media/video/samsung/mt9p012.c
+@@ -0,0 +1,268 @@
++/*
++ * Copyright (C) 2004 Samsung Electronics
++ * SW.LEE <hitchcar@samsung.com>
++ * - based on Russell King : pcf8583.c
++ * - added smdk24a0, smdk2440
++ * - added poseidon (s3c24a0+wavecom)
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * Driver for FIMC2.x Camera Decoder
++ *
++ */
++
++//#include <linux/config.h>
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/i2c.h>
++#include <linux/i2c-id.h>
++#include <linux/slab.h>
++#include <linux/string.h>
++#include <linux/init.h>
++#include <linux/delay.h>
++
++//#define CAMIF_DEBUG
++
++#include "../s3c_camif.h"
++#include "mt9p012.h"
++
++static struct i2c_driver sensor_driver;
++
++camif_cis_t msdma_input;
++
++#define APTINA_MT9P012_INIT_RES_SXGA
++//#define APTINA_MT9P012_INIT_RES_QSXGA
++
++static camif_cis_t data = {
++ itu_fmt: CAMIF_ITU601,
++ order422: CAMIF_CBYCRY,
++ camclk: 16000000,
++
++#if defined(APTINA_MT9P012_INIT_RES_SXGA)
++ source_x: 1296,
++ source_y: 972,
++#elif defined(APTINA_MT9P012_INIT_RES_QSXGA)
++ source_x: 2592,
++ source_y: 1944,
++#endif
++
++ win_hor_ofst: 0,
++ win_ver_ofst: 0,
++ win_hor_ofst2: 0,
++ win_ver_ofst2: 0,
++ polarity_pclk: 0,
++ polarity_vsync:1,
++ polarity_href: 0,
++ reset_type:CAMIF_EX_RESET_AL,
++ reset_udelay: 5000,
++};
++
++camif_cis_t* get_initialized_cis(void)
++{
++ if (data.init_sensor == 0)
++ return NULL;
++
++ return &data;
++}
++
++#define CAM_ID 0x78
++
++static unsigned short ignore[] = { I2C_CLIENT_END };
++static unsigned short normal_addr[] = { (CAM_ID >> 1), I2C_CLIENT_END };
++static unsigned short *forces[] = { NULL };
++
++static struct i2c_client_address_data addr_data = {
++ normal_i2c:normal_addr,
++ /* normal_i2c_range:ignore, */
++ probe:ignore,
++ /* probe_range:ignore, */
++ ignore:ignore,
++ /* ignore_range:ignore, */
++ forces:forces,
++};
++
++
++unsigned char sensor_read(struct i2c_client *client, unsigned char val0)
++{
++ int ret;
++ unsigned char buf[1];
++ struct i2c_msg msg = { client->addr, 0, 1, buf };
++ buf[0] = val0;
++
++ ret = i2c_transfer(client->adapter, &msg, 1) == 1 ? 0 : -EIO;
++ if (ret == -EIO) {
++ printk(" I2C write Error \n");
++ return -EIO;
++ }
++
++ msg.flags = I2C_M_RD;
++ ret = i2c_transfer(client->adapter, &msg, 1) == 1 ? 0 : -EIO;
++
++ return buf[0];
++}
++
++static int
++sensor_write(struct i2c_client *client,
++ unsigned char val0, unsigned char val1, unsigned char val2, unsigned char val3)
++{
++ unsigned char buf[4];
++ struct i2c_msg msg = { client->addr, 0, 4, buf };
++
++ buf[0] = val0;
++ buf[1] = val1;
++ buf[2] = val2;
++ buf[3] = val3;
++
++ return i2c_transfer(client->adapter, &msg, 1) == 1 ? 0 : -EIO;
++}
++
++void inline sensor_init(struct i2c_client *sam_client)
++{
++ int i;
++
++ for (i = 0; i < MT9P012_INIT_REGS; i++) {
++ if (mt9p012_init_reg[i].value0 == 0xde && mt9p012_init_reg[i].value1 == 0xde && mt9p012_init_reg[i].value2 == 0xde) {
++ mdelay(mt9p012_init_reg[i].value3);
++ continue;
++ }
++
++ sensor_write(sam_client, mt9p012_init_reg[i].value0, mt9p012_init_reg[i].value1,
++ mt9p012_init_reg[i].value2, mt9p012_init_reg[i].value3);
++ }
++
++#if defined(APTINA_MT9P012_INIT_RES_QSXGA)
++ for (i = 0; i < MT9P012_QSXGA_REGS; i++) {
++ sensor_write(sam_client, mt9p012_qsxga_reg[i].value0, mt9p012_qsxga_reg[i].value1,
++ mt9p012_qsxga_reg[i].value2, mt9p012_qsxga_reg[i].value3);
++ }
++#endif
++}
++
++static int
++mt9p012_attach(struct i2c_adapter *adap, int addr, int kind)
++{
++ struct i2c_client *c;
++
++ c = kmalloc(sizeof(*c), GFP_KERNEL);
++ if (!c)
++ return -ENOMEM;
++
++ memset(c, 0, sizeof(struct i2c_client));
++
++ strcpy(c->name, "mt9p012");
++ c->addr = addr;
++ c->adapter = adap;
++ c->driver = &sensor_driver;
++ c->data = &data;
++ data.sensor = c;
++
++ s3c_camif_register_sensor(c);
++
++ return i2c_attach_client(c);
++}
++
++static int sensor_attach_adapter(struct i2c_adapter *adap)
++{
++ s3c_camif_open_sensor(&data);
++ return i2c_probe(adap, &addr_data, mt9p012_attach);
++}
++
++static int sensor_detach(struct i2c_client *client)
++{
++ i2c_detach_client(client);
++ s3c_camif_unregister_sensor(client);
++ return 0;
++}
++
++/* Purpose:
++ This fucntion only for SVGA Camera : 4BA
++*/
++static int change_sensor_size(struct i2c_client *client, int size)
++{
++ int i;
++
++ switch (size) {
++ case SENSOR_SXGA_MT9P012:
++ for (i = 0; i < MT9P012_SXGA_REGS; i++) {
++ sensor_write(client, mt9p012_sxga_reg[i].value0, mt9p012_sxga_reg[i].value1,
++ mt9p012_sxga_reg[i].value2, mt9p012_sxga_reg[i].value3);
++ }
++ break;
++
++ case SENSOR_QSXGA_MT9P012:
++ for (i = 0; i < MT9P012_QSXGA_REGS; i++) {
++ sensor_write(client, mt9p012_qsxga_reg[i].value0, mt9p012_qsxga_reg[i].value1,
++ mt9p012_qsxga_reg[i].value2, mt9p012_qsxga_reg[i].value3);
++ }
++ break;
++
++ default:
++ printk("mt9p012.c: unexpected value\n");
++ break;
++ }
++
++ return 0;
++}
++
++static int
++sensor_command(struct i2c_client *client, unsigned int cmd, void *arg)
++{
++ switch (cmd) {
++ case SENSOR_INIT:
++ sensor_init(client);
++ printk(KERN_INFO "External Camera initialized\n");
++ break;
++
++ case SENSOR_SXGA_MT9P012:
++ change_sensor_size(client, SENSOR_SXGA_MT9P012);
++ break;
++
++ case SENSOR_QSXGA_MT9P012:
++ change_sensor_size(client, SENSOR_QSXGA_MT9P012);
++ break;
++
++ case USER_ADD:
++ break;
++
++ case USER_EXIT:
++ break;
++
++ default:
++ printk("mt9p012.c: Unexpected sensor command\n");
++ break;
++ }
++
++ return 0;
++}
++
++static struct i2c_driver sensor_driver = {
++ .driver = {
++ .name = "mt9p012",
++ },
++ .id = I2C_DRIVERID_MT9P012,
++ .attach_adapter = sensor_attach_adapter,
++ .detach_client = sensor_detach,
++ .command = sensor_command
++};
++
++static __init int camif_sensor_init(void)
++{
++ return i2c_add_driver(&sensor_driver);
++}
++
++
++static __init void camif_sensor_exit(void)
++{
++ i2c_del_driver(&sensor_driver);
++}
++
++module_init(camif_sensor_init)
++module_exit(camif_sensor_exit)
++
++MODULE_AUTHOR("Jinsung, Yang <jsgood.yang@samsung.com>");
++MODULE_DESCRIPTION("I2C Client Driver For FIMC V4L2 Driver");
++MODULE_LICENSE("GPL");
++
+diff --git a/drivers/media/video/samsung/mt9p012.h b/drivers/media/video/samsung/mt9p012.h
+new file mode 100644
+index 0000000..76580d3
+--- /dev/null
++++ b/drivers/media/video/samsung/mt9p012.h
+@@ -0,0 +1,758 @@
++
++#ifndef _MT9P012_H_
++#define _MT9P012_H_
++
++#if defined(CONFIG_VIDEO_APTINA_MT9P012)
++
++typedef struct cam_init_t{
++ unsigned char value0;
++ unsigned char value1;
++ unsigned char value2;
++ unsigned char value3;
++} mt9p012_t;
++
++mt9p012_t mt9p012_init_reg[] =
++{
++ {0x00, 0x1a, 0x00, 0x19},// / / RESET_AND_MISC_CONTROL
++ {0x00, 0x1a, 0x00, 0x18},// / / RESET_AND_MISC_CONTROL
++ {0xde, 0xde, 0xde, 0xff},// Delay(2000},
++ {0x00, 0x14, 0x01, 0x45},// /
++ {0x00, 0x10, 0x00, 0x10},// / / PLL_DIVIDERS (N=0, M=16) VCO = 24M*2*16/(0+1) = 768M
++ {0x00, 0x12, 0x00, 0x70},// /
++ {0x00, 0x2a, 0x78, 0x87},// /
++ {0x00, 0x2c, 0x00, 0x00},// /
++ {0x00, 0x2e, 0x04, 0x00},// /
++ {0x00, 0x14, 0x01, 0x47},// /
++ {0x00, 0x14, 0x00, 0x47},// /
++ {0xde, 0xde, 0xde, 0xff},// Delay(2000},
++ {0xde, 0xde, 0xde, 0xff},// Delay(2000},
++ {0x00, 0x14, 0x00, 0x46},// /
++ {0x00, 0x22, 0x01, 0xe0},// / / 24 MHz oscillator
++ {0x00, 0x1a, 0x00, 0x18},// / / RESET_AND_MISC_CONTROL
++ {0x00, 0x18, 0x40, 0x2d},// / / STANDBY_CONTROL_AND_STATUS
++ {0x00, 0x18, 0x40, 0x2c},// / / STANDBY_CONTROL_AND_STATUS
++ {0xde, 0xde, 0xde, 0xff},// Delay(2000},
++ {0xde, 0xde, 0xde, 0xff},// Delay(2000},
++ {0x09, 0x8e, 0x60, 0x3c},// / / MCU_ADDRESS [IO_I2C_CLK_DIVIDER]
++ {0x09, 0x90, 0x07, 0x80},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x68, 0x43},// / / MCU_ADDRESS [PRI_A_CONFIG_AWB_AWB_XSHIFT]
++ {0x09, 0x90, 0x00, 0x47},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x68, 0x45},// / / MCU_ADDRESS [PRI_A_CONFIG_AWB_AWB_YSHIFT]
++ {0x09, 0x90, 0x00, 0x43},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x6c, 0x43},// / / MCU_ADDRESS [PRI_B_CONFIG_AWB_AWB_XSHIFT]
++ {0x09, 0x90, 0x00, 0x47},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x6c, 0x45},// / / MCU_ADDRESS [PRI_B_CONFIG_AWB_AWB_YSHIFT]
++ {0x09, 0x90, 0x00, 0x43},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc8, 0xf4},// / / MCU_ADDRESS [CAM1_AWB_AWB_XSCALE]
++ {0x09, 0x90, 0x00, 0x03},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc8, 0xf5},// / / MCU_ADDRESS [CAM1_AWB_AWB_YSCALE]
++ {0x09, 0x90, 0x00, 0x02},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xf6},// / / MCU_ADDRESS [CAM1_AWB_AWB_WEIGHTS_0]
++ {0x09, 0x90, 0xde, 0x76},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xf8},// / / MCU_ADDRESS [CAM1_AWB_AWB_WEIGHTS_1]
++ {0x09, 0x90, 0xfe, 0x17},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xfa},// / / MCU_ADDRESS [CAM1_AWB_AWB_WEIGHTS_2]
++ {0x09, 0x90, 0x56, 0x61},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xfc},// / / MCU_ADDRESS [CAM1_AWB_AWB_WEIGHTS_3]
++ {0x09, 0x90, 0xf0, 0x55},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xfe},// / / MCU_ADDRESS [CAM1_AWB_AWB_WEIGHTS_4]
++ {0x09, 0x90, 0x56, 0x05},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x00},// / / MCU_ADDRESS [CAM1_AWB_AWB_WEIGHTS_5]
++ {0x09, 0x90, 0xf7, 0x0d},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x02},// / / MCU_ADDRESS [CAM1_AWB_AWB_WEIGHTS_6]
++ {0x09, 0x90, 0x0f, 0xf0},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x04},// / / MCU_ADDRESS [CAM1_AWB_AWB_WEIGHTS_7]
++ {0x09, 0x90, 0x00, 0xdf},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x06},// / / MCU_ADDRESS [CAM1_AWB_AWB_XSHIFT_PRE_ADJ]
++ {0x09, 0x90, 0x00, 0x47},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x08},// / / MCU_ADDRESS [CAM1_AWB_AWB_YSHIFT_PRE_ADJ]
++ {0x09, 0x90, 0x00, 0x43},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xb0},// / / MCU_ADDRESS [CAM1_AWB_CCM_L_0]
++ {0x09, 0x90, 0x01, 0xfd},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xb2},// / / MCU_ADDRESS [CAM1_AWB_CCM_L_1]
++ {0x09, 0x90, 0xfe, 0xc0},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xb4},// / / MCU_ADDRESS [CAM1_AWB_CCM_L_2]
++ {0x09, 0x90, 0x00, 0x5f},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xb6},// / / MCU_ADDRESS [CAM1_AWB_CCM_L_3]
++ {0x09, 0x90, 0xff, 0xf3},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xb8},// / / MCU_ADDRESS [CAM1_AWB_CCM_L_4]
++ {0x09, 0x90, 0x01, 0x49},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xba},// / / MCU_ADDRESS [CAM1_AWB_CCM_L_5]
++ {0x09, 0x90, 0xff, 0xdf},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xbc},// / / MCU_ADDRESS [CAM1_AWB_CCM_L_6]
++ {0x09, 0x90, 0xff, 0xc9},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xbe},// / / MCU_ADDRESS [CAM1_AWB_CCM_L_7]
++ {0x09, 0x90, 0xfe, 0xd7},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xc0},// / / MCU_ADDRESS [CAM1_AWB_CCM_L_8]
++ {0x09, 0x90, 0x02, 0x7b},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xc2},// / / MCU_ADDRESS [CAM1_AWB_CCM_L_9]
++ {0x09, 0x90, 0x00, 0x1a},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xc4},// / / MCU_ADDRESS [CAM1_AWB_CCM_L_10]
++ {0x09, 0x90, 0x00, 0x4a},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xc6},// / / MCU_ADDRESS [CAM1_AWB_CCM_RL_0]
++ {0x09, 0x90, 0x00, 0x02},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xc8},// / / MCU_ADDRESS [CAM1_AWB_CCM_RL_1]
++ {0x09, 0x90, 0x00, 0x39},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xca},// / / MCU_ADDRESS [CAM1_AWB_CCM_RL_2]
++ {0x09, 0x90, 0xff, 0xc3},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xcc},// / / MCU_ADDRESS [CAM1_AWB_CCM_RL_3]
++ {0x09, 0x90, 0x00, 0x0a},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xce},// / / MCU_ADDRESS [CAM1_AWB_CCM_RL_4]
++ {0x09, 0x90, 0xff, 0xf2},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xd0},// / / MCU_ADDRESS [CAM1_AWB_CCM_RL_5]
++ {0x09, 0x90, 0x00, 0x03},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xd2},// / / MCU_ADDRESS [CAM1_AWB_CCM_RL_6]
++ {0x09, 0x90, 0x00, 0x3a},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xd4},// / / MCU_ADDRESS [CAM1_AWB_CCM_RL_7]
++ {0x09, 0x90, 0x00, 0x30},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xd6},// / / MCU_ADDRESS [CAM1_AWB_CCM_RL_8]
++ {0x09, 0x90, 0xff, 0x94},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xd8},// / / MCU_ADDRESS [CAM1_AWB_CCM_RL_9]
++ {0x09, 0x90, 0x00, 0x1b},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xda},// / / MCU_ADDRESS [CAM1_AWB_CCM_RL_10]
++ {0x09, 0x90, 0xff, 0xdf},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x68, 0x39},// / / MCU_ADDRESS [PRI_A_CONFIG_AE_TRACK_AE_MAX_VIRT_AGAIN]
++ {0x09, 0x90, 0x01, 0xfc},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x68, 0x35},// / / MCU_ADDRESS [PRI_A_CONFIG_AE_TRACK_AE_MAX_VIRT_DGAIN]
++ {0x09, 0x90, 0x01, 0x5e},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x6c, 0x39},// / / MCU_ADDRESS [PRI_B_CONFIG_AE_TRACK_AE_MAX_VIRT_AGAIN]
++ {0x09, 0x90, 0x01, 0xfc},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x6c, 0x35},// / / MCU_ADDRESS [PRI_B_CONFIG_AE_TRACK_AE_MAX_VIRT_DGAIN]
++ {0x09, 0x90, 0x01, 0x5e},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xe8, 0x1f},// / / MCU_ADDRESS [PRI_A_CONFIG_AE_RULE_BASE_TARGET]
++ {0x09, 0x90, 0x00, 0x40},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xec, 0x1f},// / / MCU_ADDRESS [PRI_B_CONFIG_AE_RULE_BASE_TARGET]
++ {0x09, 0x90, 0x00, 0x40},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x68, 0x67},// / / MCU_ADDRESS [PRI_A_CONFIG_LL_ALGO_RUN]
++ {0x09, 0x90, 0x00, 0x74},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x84, 0x00},// / / MCU_ADDRESS [SEQ_CMD]
++ {0x09, 0x90, 0x00, 0x06},// / / MCU_DATA_0
++ {0x35, 0x40, 0x00, 0x00},// / / ENABLE_TONAL_CURVE
++ {0x09, 0x8e, 0xbc, 0x0b},// / / MCU_ADDRESS [LL_GAMMA_CONTRAST_CURVE_0]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x0c},// / / MCU_ADDRESS [LL_GAMMA_CONTRAST_CURVE_1]
++ {0x09, 0x90, 0x00, 0x1b},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x0d},// / / MCU_ADDRESS [LL_GAMMA_CONTRAST_CURVE_2]
++ {0x09, 0x90, 0x00, 0x2a},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x0e},// / / MCU_ADDRESS [LL_GAMMA_CONTRAST_CURVE_3]
++ {0x09, 0x90, 0x00, 0x3e},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x0f},// / / MCU_ADDRESS [LL_GAMMA_CONTRAST_CURVE_4]
++ {0x09, 0x90, 0x00, 0x5a},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x10},// / / MCU_ADDRESS [LL_GAMMA_CONTRAST_CURVE_5]
++ {0x09, 0x90, 0x00, 0x70},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x11},// / / MCU_ADDRESS [LL_GAMMA_CONTRAST_CURVE_6]
++ {0x09, 0x90, 0x00, 0x81},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x12},// / / MCU_ADDRESS [LL_GAMMA_CONTRAST_CURVE_7]
++ {0x09, 0x90, 0x00, 0x90},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x13},// / / MCU_ADDRESS [LL_GAMMA_CONTRAST_CURVE_8]
++ {0x09, 0x90, 0x00, 0x9e},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x14},// / / MCU_ADDRESS [LL_GAMMA_CONTRAST_CURVE_9]
++ {0x09, 0x90, 0x00, 0xab},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x15},// / / MCU_ADDRESS [LL_GAMMA_CONTRAST_CURVE_10]
++ {0x09, 0x90, 0x00, 0xb6},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x16},// / / MCU_ADDRESS [LL_GAMMA_CONTRAST_CURVE_11]
++ {0x09, 0x90, 0x00, 0xc1},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x17},// / / MCU_ADDRESS [LL_GAMMA_CONTRAST_CURVE_12]
++ {0x09, 0x90, 0x00, 0xcb},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x18},// / / MCU_ADDRESS [LL_GAMMA_CONTRAST_CURVE_13]
++ {0x09, 0x90, 0x00, 0xd5},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x19},// / / MCU_ADDRESS [LL_GAMMA_CONTRAST_CURVE_14]
++ {0x09, 0x90, 0x00, 0xde},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x1a},// / / MCU_ADDRESS [LL_GAMMA_CONTRAST_CURVE_15]
++ {0x09, 0x90, 0x00, 0xe7},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x1b},// / / MCU_ADDRESS [LL_GAMMA_CONTRAST_CURVE_16]
++ {0x09, 0x90, 0x00, 0xef},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x1c},// / / MCU_ADDRESS [LL_GAMMA_CONTRAST_CURVE_17]
++ {0x09, 0x90, 0x00, 0xf7},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x1d},// / / MCU_ADDRESS [LL_GAMMA_CONTRAST_CURVE_18]
++ {0x09, 0x90, 0x00, 0xff},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x1e},// / / MCU_ADDRESS [LL_GAMMA_NEUTRAL_CURVE_0]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x1f},// / / MCU_ADDRESS [LL_GAMMA_NEUTRAL_CURVE_1]
++ {0x09, 0x90, 0x00, 0x1b},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x20},// / / MCU_ADDRESS [LL_GAMMA_NEUTRAL_CURVE_2]
++ {0x09, 0x90, 0x00, 0x2a},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x21},// / / MCU_ADDRESS [LL_GAMMA_NEUTRAL_CURVE_3]
++ {0x09, 0x90, 0x00, 0x3e},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x22},// / / MCU_ADDRESS [LL_GAMMA_NEUTRAL_CURVE_4]
++ {0x09, 0x90, 0x00, 0x5a},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x23},// / / MCU_ADDRESS [LL_GAMMA_NEUTRAL_CURVE_5]
++ {0x09, 0x90, 0x00, 0x70},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x24},// / / MCU_ADDRESS [LL_GAMMA_NEUTRAL_CURVE_6]
++ {0x09, 0x90, 0x00, 0x81},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x25},// / / MCU_ADDRESS [LL_GAMMA_NEUTRAL_CURVE_7]
++ {0x09, 0x90, 0x00, 0x90},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x26},// / / MCU_ADDRESS [LL_GAMMA_NEUTRAL_CURVE_8]
++ {0x09, 0x90, 0x00, 0x9e},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x27},// / / MCU_ADDRESS [LL_GAMMA_NEUTRAL_CURVE_9]
++ {0x09, 0x90, 0x00, 0xab},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x28},// / / MCU_ADDRESS [LL_GAMMA_NEUTRAL_CURVE_10]
++ {0x09, 0x90, 0x00, 0xb6},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x29},// / / MCU_ADDRESS [LL_GAMMA_NEUTRAL_CURVE_11]
++ {0x09, 0x90, 0x00, 0xc1},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x2a},// / / MCU_ADDRESS [LL_GAMMA_NEUTRAL_CURVE_12]
++ {0x09, 0x90, 0x00, 0xcb},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x2b},// / / MCU_ADDRESS [LL_GAMMA_NEUTRAL_CURVE_13]
++ {0x09, 0x90, 0x00, 0xd5},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x2c},// / / MCU_ADDRESS [LL_GAMMA_NEUTRAL_CURVE_14]
++ {0x09, 0x90, 0x00, 0xde},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x2d},// / / MCU_ADDRESS [LL_GAMMA_NEUTRAL_CURVE_15]
++ {0x09, 0x90, 0x00, 0xe7},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x2e},// / / MCU_ADDRESS [LL_GAMMA_NEUTRAL_CURVE_16]
++ {0x09, 0x90, 0x00, 0xef},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x2f},// / / MCU_ADDRESS [LL_GAMMA_NEUTRAL_CURVE_17]
++ {0x09, 0x90, 0x00, 0xf7},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x30},// / / MCU_ADDRESS [LL_GAMMA_NEUTRAL_CURVE_18]
++ {0x09, 0x90, 0x00, 0xff},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x31},// / / MCU_ADDRESS [LL_GAMMA_NRCURVE_0]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x32},// / / MCU_ADDRESS [LL_GAMMA_NRCURVE_1]
++ {0x09, 0x90, 0x00, 0x0d},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x33},// / / MCU_ADDRESS [LL_GAMMA_NRCURVE_2]
++ {0x09, 0x90, 0x00, 0x19},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x34},// / / MCU_ADDRESS [LL_GAMMA_NRCURVE_3]
++ {0x09, 0x90, 0x00, 0x30},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x35},// / / MCU_ADDRESS [LL_GAMMA_NRCURVE_4]
++ {0x09, 0x90, 0x00, 0x56},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x36},// / / MCU_ADDRESS [LL_GAMMA_NRCURVE_5]
++ {0x09, 0x90, 0x00, 0x70},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x37},// / / MCU_ADDRESS [LL_GAMMA_NRCURVE_6]
++ {0x09, 0x90, 0x00, 0x81},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x38},// / / MCU_ADDRESS [LL_GAMMA_NRCURVE_7]
++ {0x09, 0x90, 0x00, 0x90},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x39},// / / MCU_ADDRESS [LL_GAMMA_NRCURVE_8]
++ {0x09, 0x90, 0x00, 0x9e},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x3a},// / / MCU_ADDRESS [LL_GAMMA_NRCURVE_9]
++ {0x09, 0x90, 0x00, 0xab},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x3b},// / / MCU_ADDRESS [LL_GAMMA_NRCURVE_10]
++ {0x09, 0x90, 0x00, 0xb6},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x3c},// / / MCU_ADDRESS [LL_GAMMA_NRCURVE_11]
++ {0x09, 0x90, 0x00, 0xc1},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x3d},// / / MCU_ADDRESS [LL_GAMMA_NRCURVE_12]
++ {0x09, 0x90, 0x00, 0xcb},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x3e},// / / MCU_ADDRESS [LL_GAMMA_NRCURVE_13]
++ {0x09, 0x90, 0x00, 0xd5},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x3f},// / / MCU_ADDRESS [LL_GAMMA_NRCURVE_14]
++ {0x09, 0x90, 0x00, 0xde},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x40},// / / MCU_ADDRESS [LL_GAMMA_NRCURVE_15]
++ {0x09, 0x90, 0x00, 0xe7},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x41},// / / MCU_ADDRESS [LL_GAMMA_NRCURVE_16]
++ {0x09, 0x90, 0x00, 0xef},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x42},// / / MCU_ADDRESS [LL_GAMMA_NRCURVE_17]
++ {0x09, 0x90, 0x00, 0xf7},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x43},// / / MCU_ADDRESS [LL_GAMMA_NRCURVE_18]
++ {0x09, 0x90, 0x00, 0xff},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x6d},// / / MCU_ADDRESS [CAM1_LL_START_GAMMA_BM]
++ {0x09, 0x90, 0x00, 0x01},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x6f},// / / MCU_ADDRESS [CAM1_LL_MID_GAMMA_BM]
++ {0x09, 0x90, 0x00, 0x02},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x71},// / / MCU_ADDRESS [CAM1_LL_STOP_GAMMA_BM]
++ {0x09, 0x90, 0x03, 0x20},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xdc},// / / MCU_ADDRESS [CAM1_AWB_LL_CCM_0]
++ {0x09, 0x90, 0x01, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xde},// / / MCU_ADDRESS [CAM1_AWB_LL_CCM_1]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xe0},// / / MCU_ADDRESS [CAM1_AWB_LL_CCM_2]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xe2},// / / MCU_ADDRESS [CAM1_AWB_LL_CCM_3]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xe4},// / / MCU_ADDRESS [CAM1_AWB_LL_CCM_4]
++ {0x09, 0x90, 0x01, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xe6},// / / MCU_ADDRESS [CAM1_AWB_LL_CCM_5]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xe8},// / / MCU_ADDRESS [CAM1_AWB_LL_CCM_6]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xea},// / / MCU_ADDRESS [CAM1_AWB_LL_CCM_7]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xec},// / / MCU_ADDRESS [CAM1_AWB_LL_CCM_8]
++ {0x09, 0x90, 0x01, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xdc, 0x2a},// / / MCU_ADDRESS [SYS_DELTA_GAIN]
++ {0x09, 0x90, 0x00, 0x05},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xdc, 0x2b},// / / MCU_ADDRESS [SYS_DELTA_THRESH]
++ {0x09, 0x90, 0x00, 0x36},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x14},// / / MCU_ADDRESS [CAM1_LL_START_DESATURATION]
++ {0x09, 0x90, 0x00, 0xff},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x15},// / / MCU_ADDRESS [CAM1_LL_END_DESATURATION]
++ {0x09, 0x90, 0x00, 0xff},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x68, 0x6b},// / / MCU_ADDRESS [PRI_A_CONFIG_LL_START_BRIGHTNESS]
++ {0x09, 0x90, 0x03, 0x84},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x68, 0x6d},// / / MCU_ADDRESS [PRI_A_CONFIG_LL_STOP_BRIGHTNESS]
++ {0x09, 0x90, 0x0e, 0x74},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xe8, 0x6f},// / / MCU_ADDRESS [PRI_A_CONFIG_LL_START_SATURATION]
++ {0x09, 0x90, 0x00, 0x80},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xe8, 0x70},// / / MCU_ADDRESS [PRI_A_CONFIG_LL_END_SATURATION]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x6c, 0x6b},// / / MCU_ADDRESS [PRI_B_CONFIG_LL_START_BRIGHTNESS]
++ {0x09, 0x90, 0x03, 0x84},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x6c, 0x6d},// / / MCU_ADDRESS [PRI_B_CONFIG_LL_STOP_BRIGHTNESS]
++ {0x09, 0x90, 0x0e, 0x74},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xec, 0x6f},// / / MCU_ADDRESS [PRI_B_CONFIG_LL_START_SATURATION]
++ {0x09, 0x90, 0x00, 0x80},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xec, 0x70},// / / MCU_ADDRESS [PRI_B_CONFIG_LL_END_SATURATION]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x8f},// / / MCU_ADDRESS [CAM1_SYS_UV_COLOR_BOOST]
++ {0x09, 0x90, 0x00, 0x04},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x90},// / / MCU_ADDRESS [CAM1_SYS_DARK_COLOR_KILL]
++ {0x09, 0x90, 0x00, 0x70},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x91},// / / MCU_ADDRESS [CAM1_SYS_BRIGHT_COLORKILL]
++ {0x09, 0x90, 0x00, 0x70},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x1e},// / / MCU_ADDRESS [CAM1_LL_BNR_SETTINGS_0]
++ {0x09, 0x90, 0x00, 0x80},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x20},// / / MCU_ADDRESS [CAM1_LL_BNR_SETTINGS_1]
++ {0x09, 0x90, 0x00, 0x20},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x22},// / / MCU_ADDRESS [CAM1_LL_BNR_SETTINGS_2]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x24},// / / MCU_ADDRESS [CAM1_LL_BNR_SETTINGS_3]
++ {0x09, 0x90, 0x00, 0x20},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x26},// / / MCU_ADDRESS [CAM1_LL_BNR_SETTINGS_4]
++ {0x09, 0x90, 0x00, 0x20},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x28},// / / MCU_ADDRESS [CAM1_LL_BNR_SETTINGS_5]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x2a},// / / MCU_ADDRESS [CAM1_LL_BNR_SETTINGS_6]
++ {0x09, 0x90, 0x00, 0x20},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x2c},// / / MCU_ADDRESS [CAM1_LL_BNR_SETTINGS_7]
++ {0x09, 0x90, 0x00, 0x20},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x2e},// / / MCU_ADDRESS [CAM1_LL_BNR_SETTINGS_8]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x30},// / / MCU_ADDRESS [CAM1_LL_BNR_SETTINGS_9]
++ {0x09, 0x90, 0x00, 0x20},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x44},// / / MCU_ADDRESS [CAM1_LL_BNR_BLEND_START_0]
++ {0x09, 0x90, 0x00, 0x08},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x45},// / / MCU_ADDRESS [CAM1_LL_BNR_BLEND_START_1]
++ {0x09, 0x90, 0x00, 0x08},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x46},// / / MCU_ADDRESS [CAM1_LL_BNR_BLEND_START_2]
++ {0x09, 0x90, 0x00, 0x08},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x47},// / / MCU_ADDRESS [CAM1_LL_BNR_BLEND_STOP_0]
++ {0x09, 0x90, 0x00, 0x10},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x48},// / / MCU_ADDRESS [CAM1_LL_BNR_BLEND_STOP_1]
++ {0x09, 0x90, 0x00, 0x10},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x49},// / / MCU_ADDRESS [CAM1_LL_BNR_BLEND_STOP_2]
++ {0x09, 0x90, 0x00, 0x10},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x5c},// / / MCU_ADDRESS [CAM1_LL_GRB_THRESHOLDS_START_0]
++ {0x09, 0x90, 0x00, 0x64},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x5d},// / / MCU_ADDRESS [CAM1_LL_GRB_THRESHOLDS_START_1]
++ {0x09, 0x90, 0x00, 0x38},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x5e},// / / MCU_ADDRESS [CAM1_LL_GRB_THRESHOLDS_START_2]
++ {0x09, 0x90, 0x00, 0x64},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x5f},// / / MCU_ADDRESS [CAM1_LL_GRB_THRESHOLDS_START_3]
++ {0x09, 0x90, 0x00, 0x51},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x60},// / / MCU_ADDRESS [CAM1_LL_GRB_THRESHOLDS_START_4]
++ {0x09, 0x90, 0x00, 0x10},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x61},// / / MCU_ADDRESS [CAM1_LL_GRB_THRESHOLDS_START_5]
++ {0x09, 0x90, 0x00, 0x20},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x62},// / / MCU_ADDRESS [CAM1_LL_GRB_THRESHOLDS_START_6]
++ {0x09, 0x90, 0x00, 0x10},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x63},// / / MCU_ADDRESS [CAM1_LL_GRB_THRESHOLDS_START_7]
++ {0x09, 0x90, 0x00, 0x20},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x64},// / / MCU_ADDRESS [CAM1_LL_GRB_THRESHOLDS_STOP_0]
++ {0x09, 0x90, 0x00, 0x20},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x65},// / / MCU_ADDRESS [CAM1_LL_GRB_THRESHOLDS_STOP_1]
++ {0x09, 0x90, 0x00, 0x14},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x66},// / / MCU_ADDRESS [CAM1_LL_GRB_THRESHOLDS_STOP_2]
++ {0x09, 0x90, 0x00, 0x1d},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x67},// / / MCU_ADDRESS [CAM1_LL_GRB_THRESHOLDS_STOP_3]
++ {0x09, 0x90, 0x00, 0x20},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x68},// / / MCU_ADDRESS [CAM1_LL_GRB_THRESHOLDS_STOP_4]
++ {0x09, 0x90, 0x00, 0x0c},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x69},// / / MCU_ADDRESS [CAM1_LL_GRB_THRESHOLDS_STOP_5]
++ {0x09, 0x90, 0x00, 0x08},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x6a},// / / MCU_ADDRESS [CAM1_LL_GRB_THRESHOLDS_STOP_6]
++ {0x09, 0x90, 0x00, 0x0c},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x6b},// / / MCU_ADDRESS [CAM1_LL_GRB_THRESHOLDS_STOP_7]
++ {0x09, 0x90, 0x00, 0x08},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x6c},// / / MCU_ADDRESS [CAM1_LL_GRB_WINDOW_PERCENT]
++ {0x09, 0x90, 0x00, 0x64},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x32},// / / MCU_ADDRESS [CAM1_LL_FFNR_SETTINGS_0]
++ {0x09, 0x90, 0x15, 0x2b},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x18},// / / MCU_ADDRESS [CAM1_LL_HF_CONFIG]
++ {0x09, 0x90, 0x00, 0x9f},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x1a},// / / MCU_ADDRESS [CAM1_LL_HF_SLOPE]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x1c},// / / MCU_ADDRESS [CAM1_LL_HF_OFFSET]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x34},// / / MCU_ADDRESS [CAM1_LL_FFNR_SETTINGS_1]
++ {0x09, 0x90, 0x00, 0x0a},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x36},// / / MCU_ADDRESS [CAM1_LL_FFNR_SETTINGS_2]
++ {0x09, 0x90, 0x00, 0x08},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x38},// / / MCU_ADDRESS [CAM1_LL_FFNR_SETTINGS_3]
++ {0x09, 0x90, 0x00, 0x0c},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x4e},// / / MCU_ADDRESS [CAM1_LL_UA_WEIGHTS_START_0]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x4f},// / / MCU_ADDRESS [CAM1_LL_UA_WEIGHTS_START_1]
++ {0x09, 0x90, 0x00, 0x01},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x50},// / / MCU_ADDRESS [CAM1_LL_UA_WEIGHTS_START_2]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x51},// / / MCU_ADDRESS [CAM1_LL_UA_WEIGHTS_START_3]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x52},// / / MCU_ADDRESS [CAM1_LL_UA_WEIGHTS_START_4]
++ {0x09, 0x90, 0x00, 0x0f},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x53},// / / MCU_ADDRESS [CAM1_LL_UA_WEIGHTS_START_5]
++ {0x09, 0x90, 0x00, 0x0f},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x54},// / / MCU_ADDRESS [CAM1_LL_UA_WEIGHTS_STOP_0]
++ {0x09, 0x90, 0x00, 0x08},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x55},// / / MCU_ADDRESS [CAM1_LL_UA_WEIGHTS_STOP_1]
++ {0x09, 0x90, 0x00, 0x08},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x56},// / / MCU_ADDRESS [CAM1_LL_UA_WEIGHTS_STOP_2]
++ {0x09, 0x90, 0x00, 0x08},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x57},// / / MCU_ADDRESS [CAM1_LL_UA_WEIGHTS_STOP_3]
++ {0x09, 0x90, 0x00, 0x04},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x58},// / / MCU_ADDRESS [CAM1_LL_UA_WEIGHTS_STOP_4]
++ {0x09, 0x90, 0x00, 0x08},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x59},// / / MCU_ADDRESS [CAM1_LL_UA_WEIGHTS_STOP_5]
++ {0x09, 0x90, 0x00, 0x04},// / / MCU_DATA_0
++ {0x32, 0x6a, 0x12, 0x08},// / / APERTURE_PARAMETERS_1D
++ {0x09, 0x8e, 0xc9, 0x4b},// / / MCU_ADDRESS [CAM1_LL_LEGACY2DSETTINGS_START_1]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x4a},// / / MCU_ADDRESS [CAM1_LL_LEGACY2DSETTINGS_START_0]
++ {0x09, 0x90, 0x00, 0x04},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x4c},// / / MCU_ADDRESS [CAM1_LL_LEGACY2DSETTINGS_STOP_0]
++ {0x09, 0x90, 0x00, 0x01},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc9, 0x4d},// / / MCU_ADDRESS [CAM1_LL_LEGACY2DSETTINGS_STOP_1]
++ {0x09, 0x90, 0x00, 0x09},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x3a},// / / MCU_ADDRESS [CAM1_LL_DCCDC_SETTINGS_0]
++ {0x09, 0x90, 0x00, 0xc8},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xbc, 0x05},// / / MCU_ADDRESS [LL_CLUSTER_DC_TH]
++ {0x09, 0x90, 0x00, 0x38},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x42},// / / MCU_ADDRESS [CAM1_LL_STOP_GAIN_METRIC]
++ {0x09, 0x90, 0x07, 0xd0},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x0a},// / / MCU_ADDRESS [CAM1_AS_INTEG_SCALE_FIRST_PASS]
++ {0x09, 0x90, 0x06, 0x66},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x0c},// / / MCU_ADDRESS [CAM1_AS_MIN_INT_TIME_FIRST_PASS]
++ {0x09, 0x90, 0x01, 0x40},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x68, 0x57},// / / MCU_ADDRESS [PRI_A_CONFIG_IS_FEATURE_THRESHOLD]
++ {0x09, 0x90, 0x00, 0x14},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x6c, 0x57},// / / MCU_ADDRESS [PRI_B_CONFIG_IS_FEATURE_THRESHOLD]
++ {0x09, 0x90, 0x00, 0x14},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x68, 0x5c},// / / MCU_ADDRESS [PRI_A_CONFIG_IS_BLUR_INPUT_PARAMETER]
++ {0x09, 0x90, 0x00, 0x05},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x6c, 0x5c},// / / MCU_ADDRESS [PRI_B_CONFIG_IS_BLUR_INPUT_PARAMETER]
++ {0x09, 0x90, 0x00, 0x05},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x49, 0x0e},// / / MCU_ADDRESS [CAM1_AS_MAX_DIGITAL_GAIN_ALLOWED]
++ {0x09, 0x90, 0x00, 0xa4},// / / MCU_DATA_0
++ {0x36, 0x4a, 0x01, 0x10},// / / P_R_P0Q0
++ {0x36, 0x4c, 0x1a, 0x2d},// / / P_R_P0Q1
++ {0x36, 0x4e, 0x36, 0x71},// / / P_R_P0Q2
++ {0x36, 0x50, 0xd3, 0x8c},// / / P_R_P0Q3
++ {0x36, 0x52, 0x91, 0xd1},// / / P_R_P0Q4
++ {0x36, 0x8a, 0x82, 0xcc},// / / P_R_P1Q0
++ {0x36, 0x8c, 0x15, 0x8d},// / / P_R_P1Q1
++ {0x36, 0x8e, 0xdf, 0xee},// / / P_R_P1Q2
++ {0x36, 0x90, 0x8b, 0x0e},// / / P_R_P1Q3
++ {0x36, 0x92, 0x63, 0xcf},// / / P_R_P1Q4
++ {0x36, 0xca, 0x35, 0x51},// / / P_R_P2Q0
++ {0x36, 0xcc, 0x07, 0x2b},// / / P_R_P2Q1
++ {0x36, 0xce, 0x92, 0x32},// / / P_R_P2Q2
++ {0x36, 0xd0, 0xae, 0x31},// / / P_R_P2Q3
++ {0x36, 0xd2, 0x7a, 0x50},// / / P_R_P2Q4
++ {0x37, 0x0a, 0x2f, 0xcc},// / / P_R_P3Q0
++ {0x37, 0x0c, 0x94, 0x90},// / / P_R_P3Q1
++ {0x37, 0x0e, 0x32, 0x2e},// / / P_R_P3Q2
++ {0x37, 0x10, 0x12, 0x71},// / / P_R_P3Q3
++ {0x37, 0x12, 0xe9, 0xcd},// / / P_R_P3Q4
++ {0x37, 0x4a, 0xab, 0x90},// / / P_R_P4Q0
++ {0x37, 0x4c, 0x82, 0x30},// / / P_R_P4Q1
++ {0x37, 0x4e, 0xf5, 0x33},// / / P_R_P4Q2
++ {0x37, 0x50, 0x0c, 0x93},// / / P_R_P4Q3
++ {0x37, 0x52, 0x6f, 0x15},// / / P_R_P4Q4
++ {0x36, 0x40, 0x00, 0xd0},// / / P_G1_P0Q0
++ {0x36, 0x42, 0xb1, 0x2c},// / / P_G1_P0Q1
++ {0x36, 0x44, 0x2f, 0x51},// / / P_G1_P0Q2
++ {0x36, 0x46, 0x70, 0x8a},// / / P_G1_P0Q3
++ {0x36, 0x48, 0x82, 0x11},// / / P_G1_P0Q4
++ {0x36, 0x80, 0x97, 0x4b},// / / P_G1_P1Q0
++ {0x36, 0x82, 0x4a, 0xeb},// / / P_G1_P1Q1
++ {0x36, 0x84, 0x82, 0x2f},// / / P_G1_P1Q2
++ {0x36, 0x86, 0xe7, 0x4d},// / / P_G1_P1Q3
++ {0x36, 0x88, 0x2d, 0x4f},// / / P_G1_P1Q4
++ {0x36, 0xc0, 0x22, 0xd1},// / / P_G1_P2Q0
++ {0x36, 0xc2, 0x02, 0x2d},// / / P_G1_P2Q1
++ {0x36, 0xc4, 0x95, 0x12},// / / P_G1_P2Q2
++ {0x36, 0xc6, 0xd0, 0x4d},// / / P_G1_P2Q3
++ {0x36, 0xc8, 0x3a, 0xf0},// / / P_G1_P2Q4
++ {0x37, 0x00, 0x87, 0x4e},// / / P_G1_P3Q0
++ {0x37, 0x02, 0xcb, 0x2e},// / / P_G1_P3Q1
++ {0x37, 0x04, 0x02, 0xb0},// / / P_G1_P3Q2
++ {0x37, 0x06, 0x13, 0xf0},// / / P_G1_P3Q3
++ {0x37, 0x08, 0x25, 0x2f},// / / P_G1_P3Q4
++ {0x37, 0x40, 0x99, 0xf0},// / / P_G1_P4Q0
++ {0x37, 0x42, 0x54, 0xd0},// / / P_G1_P4Q1
++ {0x37, 0x44, 0xa4, 0x33},// / / P_G1_P4Q2
++ {0x37, 0x46, 0xbf, 0x32},// / / P_G1_P4Q3
++ {0x37, 0x48, 0x35, 0x55},// / / P_G1_P4Q4
++ {0x36, 0x54, 0x01, 0x70},// / / P_B_P0Q0
++ {0x36, 0x56, 0xa2, 0x4c},// / / P_B_P0Q1
++ {0x36, 0x58, 0x7e, 0x50},// / / P_B_P0Q2
++ {0x36, 0x5a, 0xe1, 0xcb},// / / P_B_P0Q3
++ {0x36, 0x5c, 0x94, 0x30},// / / P_B_P0Q4
++ {0x36, 0x94, 0x59, 0xab},// / / P_B_P1Q0
++ {0x36, 0x96, 0x28, 0x8d},// / / P_B_P1Q1
++ {0x36, 0x98, 0x92, 0x6d},// / / P_B_P1Q2
++ {0x36, 0x9a, 0x93, 0xee},// / / P_B_P1Q3
++ {0x36, 0x9c, 0x10, 0xae},// / / P_B_P1Q4
++ {0x36, 0xd4, 0x69, 0x70},// / / P_B_P2Q0
++ {0x36, 0xd6, 0x13, 0x0e},// / / P_B_P2Q1
++ {0x36, 0xd8, 0xbd, 0xb0},// / / P_B_P2Q2
++ {0x36, 0xda, 0x8a, 0xb0},// / / P_B_P2Q3
++ {0x36, 0xdc, 0x99, 0xb0},// / / P_B_P2Q4
++ {0x37, 0x14, 0x72, 0x0d},// / / P_B_P3Q0
++ {0x37, 0x16, 0xcb, 0x6f},// / / P_B_P3Q1
++ {0x37, 0x18, 0xcb, 0xac},// / / P_B_P3Q2
++ {0x37, 0x1a, 0x1d, 0x50},// / / P_B_P3Q3
++ {0x37, 0x1c, 0x90, 0x4e},// / / P_B_P3Q4
++ {0x37, 0x54, 0xe4, 0xee},// / / P_B_P4Q0
++ {0x37, 0x56, 0x05, 0xb1},// / / P_B_P4Q1
++ {0x37, 0x58, 0xdc, 0x73},// / / P_B_P4Q2
++ {0x37, 0x5a, 0x99, 0x12},// / / P_B_P4Q3
++ {0x37, 0x5c, 0x35, 0xd5},// / / P_B_P4Q4
++ {0x36, 0x5e, 0x03, 0x50},// / / P_G2_P0Q0
++ {0x36, 0x60, 0x5a, 0x6c},// / / P_G2_P0Q1
++ {0x36, 0x62, 0x34, 0x91},// / / P_G2_P0Q2
++ {0x36, 0x64, 0xa8, 0x2d},// / / P_G2_P0Q3
++ {0x36, 0x66, 0x8b, 0xb1},// / / P_G2_P0Q4
++ {0x36, 0x9e, 0x58, 0x6c},// / / P_G2_P1Q0
++ {0x36, 0xa0, 0x76, 0x6b},// / / P_G2_P1Q1
++ {0x36, 0xa2, 0x1a, 0x6c},// / / P_G2_P1Q2
++ {0x36, 0xa4, 0xe2, 0x2d},// / / P_G2_P1Q3
++ {0x36, 0xa6, 0xbb, 0x0b},// / / P_G2_P1Q4
++ {0x36, 0xde, 0x25, 0x91},// / / P_G2_P2Q0
++ {0x36, 0xe0, 0xaf, 0x2f},// / / P_G2_P2Q1
++ {0x36, 0xe2, 0xa0, 0x12},// / / P_G2_P2Q2
++ {0x36, 0xe4, 0x94, 0x6f},// / / P_G2_P2Q3
++ {0x36, 0xe6, 0x07, 0x91},// / / P_G2_P2Q4
++ {0x37, 0x1e, 0x76, 0xcd},// / / P_G2_P3Q0
++ {0x37, 0x20, 0xf2, 0x8e},// / / P_G2_P3Q1
++ {0x37, 0x22, 0xc7, 0xb0},// / / P_G2_P3Q2
++ {0x37, 0x24, 0x2e, 0xf0},// / / P_G2_P3Q3
++ {0x37, 0x26, 0x25, 0x31},// / / P_G2_P3Q4
++ {0x37, 0x5e, 0xc5, 0xcf},// / / P_G2_P4Q0
++ {0x37, 0x60, 0x59, 0x70},// / / P_G2_P4Q1
++ {0x37, 0x62, 0x9f, 0xd3},// / / P_G2_P4Q2
++ {0x37, 0x64, 0x59, 0x11},// / / P_G2_P4Q3
++ {0x37, 0x66, 0x2b, 0xb5},// / / P_G2_P4Q4
++ {0x37, 0x84, 0x05, 0x0c},// / / CENTER_COLUMN
++ {0x37, 0x82, 0x03, 0xdc},// / / CENTER_ROW
++ {0x32, 0x10, 0x00, 0xb8},// / / COLOR_PIPELINE_CONTROL
++ {0x09, 0x82, 0x00, 0x00},// / / ACCESS_CTL_STAT
++ {0x09, 0x8a, 0x1f, 0x9d},// / / PHYSICAL_ADDR_ACCESS
++ {0x09, 0x90, 0x37, 0x3c},// /
++ {0x09, 0x92, 0x3c, 0x30},// /
++ {0x09, 0x94, 0xe6, 0x04},// /
++ {0x09, 0x96, 0xbd, 0x9e},// /
++ {0x09, 0x98, 0xe2, 0xcc},// /
++ {0x09, 0x9a, 0x00, 0x16},// /
++ {0x09, 0x9c, 0x30, 0xed},// /
++ {0x09, 0x9e, 0x02, 0xcc},// /
++ {0x09, 0x8a, 0x1f, 0xad},// / / PHYSICAL_ADDR_ACCESS
++ {0x09, 0x90, 0xc7, 0xff},// /
++ {0x09, 0x92, 0xed, 0x00},// /
++ {0x09, 0x94, 0xe6, 0x04},// /
++ {0x09, 0x96, 0x4f, 0x17},// /
++ {0x09, 0x98, 0x5f, 0x84},// /
++ {0x09, 0x9a, 0x38, 0xbd},// /
++ {0x09, 0x9c, 0xa8, 0x50},// /
++ {0x09, 0x9e, 0x38, 0x38},// /
++ {0x09, 0x8a, 0x1f, 0xbd},// / / PHYSICAL_ADDR_ACCESS
++ {0x09, 0x90, 0x31, 0x39},// /
++ {0x09, 0x92, 0x0f, 0xbd},// /
++ {0x09, 0x94, 0x1f, 0xde},// /
++ {0x09, 0x96, 0xcc, 0x1f},// /
++ {0x09, 0x98, 0xde, 0xbd},// /
++ {0x09, 0x9a, 0x4c, 0x6c},// /
++ {0x09, 0x9c, 0xc6, 0x01},// /
++ {0x09, 0x9e, 0xf7, 0x1d},// /
++ {0x09, 0x8a, 0x1f, 0xcd},// / / PHYSICAL_ADDR_ACCESS
++ {0x09, 0x90, 0x4c, 0xfc},// /
++ {0x09, 0x92, 0x07, 0xe5},// /
++ {0x09, 0x94, 0x83, 0x1f},// /
++ {0x09, 0x96, 0xbf, 0x26},// /
++ {0x09, 0x98, 0x06, 0xce},// /
++ {0x09, 0x9a, 0x07, 0xd5},// /
++ {0x09, 0x9c, 0x1d, 0x04},// /
++ {0x09, 0x9e, 0x04, 0x0e},// /
++ {0x09, 0x8a, 0x1f, 0xdd},// / / PHYSICAL_ADDR_ACCESS
++ {0x09, 0x90, 0x39, 0xc6},// /
++ {0x09, 0x92, 0x20, 0xf7},// /
++ {0x09, 0x94, 0x07, 0xdf},// /
++ {0x09, 0x96, 0xc6, 0x01},// /
++ {0x09, 0x98, 0xf7, 0x07},// /
++ {0x09, 0x9a, 0xe0, 0xde},// /
++ {0x09, 0x9c, 0x47, 0x18},// /
++ {0x09, 0x9e, 0xce, 0x00},// /
++ {0x09, 0x8a, 0x1f, 0xed},// / / PHYSICAL_ADDR_ACCESS
++ {0x09, 0x90, 0x5b, 0xcc},// /
++ {0x09, 0x92, 0x00, 0x3f},// /
++ {0x09, 0x94, 0xbd, 0x43},// /
++ {0x09, 0x96, 0x14, 0xcc},// /
++ {0x09, 0x98, 0x1f, 0x9d},// /
++ {0x09, 0x9a, 0xfd, 0x00},// /
++ {0x09, 0x9c, 0x7d, 0xcc},// /
++ {0x09, 0x9e, 0x00, 0x5b},// /
++ {0x09, 0x8a, 0x1f, 0xfd},// / / PHYSICAL_ADDR_ACCESS
++ {0x09, 0x90, 0xdd, 0x47},// /
++ {0x09, 0x8a, 0x9f, 0xff},// / / PHYSICAL_ADDR_ACCESS
++ {0x09, 0x90, 0x00, 0x39},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x00, 0x10},// / / MCU_ADDRESS [MON_ADDR]
++ {0x09, 0x90, 0x1f, 0xbf},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x00, 0x03},// / / MCU_ADDRESS [MON_ALGO]
++ {0x09, 0x90, 0x00, 0x04},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xec, 0x8e},// / / MCU_ADDRESS [PRI_B_CONFIG_JPEG_JP_MODE]
++ {0x09, 0x90, 0x00, 0x01},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0x99},// / / MCU_ADDRESS [CAM1_VT_PIX_CLK_DIV]
++ {0x09, 0x90, 0x00, 0x07},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0x9b},// / / MCU_ADDRESS [CAM1_VT_SYS_CLK_DIV]
++ {0x09, 0x90, 0x00, 0x01},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0x9d},// / / MCU_ADDRESS [CAM1_PRE_PLL_CLK_DIV]
++ {0x09, 0x90, 0x00, 0x02},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0x9f},// / / MCU_ADDRESS [CAM1_PLL_MULTIPLIER]
++ {0x09, 0x90, 0x00, 0x40},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xa1},// / / MCU_ADDRESS [CAM1_OP_PIX_CLK_DIV]
++ {0x09, 0x90, 0x00, 0x0a},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0xa3},// / / MCU_ADDRESS [CAM1_OP_SYS_CLK_DIV]
++ {0x09, 0x90, 0x00, 0x01},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc8, 0x98},// / / MCU_ADDRESS [CAM1_B_PLLSETTINGS]
++ {0x09, 0x90, 0x00, 0x01},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0x0c},// / / MCU_ADDRESS [CAM1_CTX_A_READ_MODE]
++ {0x09, 0x90, 0x04, 0x6c},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0x15},// / / MCU_ADDRESS [CAM1_CTX_A_COARSE_ITMIN]
++ {0x09, 0x90, 0x00, 0x04},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x48, 0x5d},// / / MCU_ADDRESS [CAM1_CTX_B_COARSE_ITMIN]
++ {0x09, 0x90, 0x00, 0x04},// / / MCU_DATA_0
++ {0x00, 0x1e, 0x07, 0x77},// / / serial
++ {0x3c, 0x86, 0x00, 0xe1},// / / set tx_ss PCLK1 slew rate
++ {0x3c, 0x88, 0x00, 0xe1},// / / set tx_ss PCLK2 slew rate
++ {0x3c, 0x8a, 0x00, 0xe1},// / / set tx_ss PCLK3 slew rate
++ {0x09, 0x8e, 0xc9, 0xab},// / / MCU_ADDRESS [CAM1_SOC_DATAPORT]
++ {0x09, 0x90, 0x00, 0x19},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xc8, 0x94},// / / MCU_ADDRESS [CAM1_DATA_PORT]
++ {0x09, 0x90, 0x00, 0x03},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xcd, 0xab},// / / MCU_ADDRESS [CAM2_SOC_DATAPORT]
++ {0x09, 0x90, 0x00, 0x91},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xcc, 0x94},// / / MCU_ADDRESS [CAM2_DATA_PORT]
++ {0x09, 0x90, 0x00, 0x03},// / / MCU_DATA_0
++ {0x00, 0x2e, 0x05, 0x00},// / / SENSOR_CLOCK_DIVIDER
++ {0x09, 0x8e, 0x80, 0x02},// / / MCU_ADDRESS [MON_MODE]
++ {0x09, 0x90, 0x00, 0x01},// / / MCU_DATA_0
++ {0x3b, 0x86, 0x00, 0x35},// / / TXBUFFER_TOTAL_BYTE_COUNT
++ {0x3b, 0x00, 0x83, 0x6c},// / / TXBUFFER_DATA_REGISTER_0
++ {0x3b, 0x02, 0xb0, 0x30},// / / TXBUFFER_DATA_REGISTER_1
++ {0x3b, 0x04, 0x01, 0x00},// / / TXBUFFER_DATA_REGISTER_2
++ {0x3b, 0x06, 0x83, 0x6c},// / / TXBUFFER_DATA_REGISTER_3
++ {0x3b, 0x08, 0x8e, 0x30},// / / TXBUFFER_DATA_REGISTER_4
++ {0x3b, 0x0a, 0x60, 0xe0},// / / TXBUFFER_DATA_REGISTER_5
++ {0x3b, 0x0c, 0x83, 0x6c},// / / TXBUFFER_DATA_REGISTER_6
++ {0x3b, 0x0e, 0x92, 0x30},// / / TXBUFFER_DATA_REGISTER_7
++ {0x3b, 0x10, 0x52, 0x0a},// / / TXBUFFER_DATA_REGISTER_8
++ {0x3b, 0x12, 0x83, 0x6c},// / / TXBUFFER_DATA_REGISTER_9
++ {0x3b, 0x14, 0x94, 0x30},// / / TXBUFFER_DATA_REGISTER_10
++ {0x3b, 0x16, 0x56, 0x46},// / / TXBUFFER_DATA_REGISTER_11
++ {0x3b, 0x18, 0x83, 0x6c},// / / TXBUFFER_DATA_REGISTER_12
++ {0x3b, 0x1a, 0x96, 0x30},// / / TXBUFFER_DATA_REGISTER_13
++ {0x3b, 0x1c, 0x52, 0x56},// / / TXBUFFER_DATA_REGISTER_14
++ {0x3b, 0x1e, 0x83, 0x6c},// / / TXBUFFER_DATA_REGISTER_15
++ {0x3b, 0x20, 0xca, 0x30},// / / TXBUFFER_DATA_REGISTER_16
++ {0x3b, 0x22, 0x06, 0x80},// / / TXBUFFER_DATA_REGISTER_17
++ {0x3b, 0x24, 0x83, 0x6c},// / / TXBUFFER_DATA_REGISTER_18
++ {0x3b, 0x26, 0x2a, 0x31},// / / TXBUFFER_DATA_REGISTER_19
++ {0x3b, 0x28, 0x02, 0xdd},// / / TXBUFFER_DATA_REGISTER_20
++ {0x3b, 0x2a, 0x83, 0x6c},// / / TXBUFFER_DATA_REGISTER_21
++ {0x3b, 0x2c, 0x2c, 0x31},// / / TXBUFFER_DATA_REGISTER_22
++ {0x3b, 0x2e, 0xe4, 0x00},// / / TXBUFFER_DATA_REGISTER_23
++ {0x3b, 0x30, 0x83, 0x6c},// / / TXBUFFER_DATA_REGISTER_24
++ {0x3b, 0x32, 0x70, 0x31},// / / TXBUFFER_DATA_REGISTER_25
++ {0x3b, 0x34, 0x9a, 0x29},// / / TXBUFFER_DATA_REGISTER_26
++ {0x3b, 0x82, 0x00, 0x01},// / / I2C_MASTER_CONTROL
++ {0x3b, 0x86, 0x00, 0x35},// / / TXBUFFER_TOTAL_BYTE_COUNT
++ {0x3b, 0x00, 0x83, 0x6c},// / / TXBUFFER_DATA_REGISTER_0
++ {0x3b, 0x02, 0x04, 0x02},// / / TXBUFFER_DATA_REGISTER_1
++ {0x3b, 0x04, 0x10, 0x00},// / / TXBUFFER_DATA_REGISTER_2
++ {0x3b, 0x06, 0x83, 0x6c},// / / TXBUFFER_DATA_REGISTER_3
++ {0x3b, 0x08, 0x06, 0x02},// / / TXBUFFER_DATA_REGISTER_4
++ {0x3b, 0x0a, 0x10, 0x00},// / / TXBUFFER_DATA_REGISTER_5
++ {0x3b, 0x0c, 0x83, 0x6c},// / / TXBUFFER_DATA_REGISTER_6
++ {0x3b, 0x0e, 0x08, 0x02},// / / TXBUFFER_DATA_REGISTER_7
++ {0x3b, 0x10, 0x10, 0x00},// / / TXBUFFER_DATA_REGISTER_8
++ {0x3b, 0x12, 0x83, 0x6c},// / / TXBUFFER_DATA_REGISTER_9
++ {0x3b, 0x14, 0x0a, 0x02},// / / TXBUFFER_DATA_REGISTER_10
++ {0x3b, 0x16, 0x10, 0x00},// / / TXBUFFER_DATA_REGISTER_11
++ {0x3b, 0x18, 0x83, 0x6c},// / / TXBUFFER_DATA_REGISTER_12
++ {0x3b, 0x1a, 0x0c, 0x02},// / / TXBUFFER_DATA_REGISTER_13
++ {0x3b, 0x1c, 0x10, 0x00},// / / TXBUFFER_DATA_REGISTER_14
++ {0x3b, 0x1e, 0x83, 0x6c},// / / TXBUFFER_DATA_REGISTER_15
++ {0x3b, 0x20, 0x88, 0x30},// / / TXBUFFER_DATA_REGISTER_16
++ {0x3b, 0x22, 0xf6, 0x6f},// / / TXBUFFER_DATA_REGISTER_17
++ {0x3b, 0x24, 0x83, 0x6c},// / / TXBUFFER_DATA_REGISTER_18
++ {0x3b, 0x26, 0x54, 0x31},// / / TXBUFFER_DATA_REGISTER_19
++ {0x3b, 0x28, 0x82, 0x02},// / / TXBUFFER_DATA_REGISTER_20
++ {0x3b, 0x2a, 0x83, 0x6c},// / / TXBUFFER_DATA_REGISTER_21
++ {0x3b, 0x2c, 0x56, 0x31},// / / TXBUFFER_DATA_REGISTER_22
++ {0x3b, 0x2e, 0x81, 0x03},// / / TXBUFFER_DATA_REGISTER_23
++ {0x3b, 0x30, 0x83, 0x6c},// / / TXBUFFER_DATA_REGISTER_24
++ {0x3b, 0x32, 0x62, 0x31},// / / TXBUFFER_DATA_REGISTER_25
++ {0x3b, 0x34, 0xce, 0x04},// / / TXBUFFER_DATA_REGISTER_26
++ {0x3b, 0x82, 0x00, 0x01},// / / I2C_MASTER_CONTROL
++ {0x09, 0x8e, 0x80, 0x02},// / / MCU_ADDRESS [MON_MODE]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0xde, 0xde, 0xde, 0x20},// Delay(100},
++ {0xde, 0xde, 0xde, 0xff},// Delay(2000},
++ {0x00, 0x2e, 0x04, 0x00},// / / SENSOR_CLOCK_DIVIDER
++ {0x09, 0x8e, 0xe8, 0x2c},// / / MCU_ADDRESS [PRI_A_CONFIG_AE_TRACK_JUMP_DIVISOR]
++ {0x09, 0x90, 0x00, 0x03},// / / MCU_DATA_0
++ {0x00, 0x18, 0x00, 0x28},// / / STANDBY_CONTROL_AND_STATUS
++ {0xde, 0xde, 0xde, 0x40},// Delay(200},
++ {0xde, 0xde, 0xde, 0xff},// Delay(2000},
++ {0x09, 0x8e, 0x6c, 0x07},// / / MCU_ADDRESS [PRI_B_OUTPUT_FORMAT]
++ {0x09, 0x90, 0x00, 0x01},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x6c, 0x09},// / / MCU_ADDRESS [PRI_B_OUTPUT_FORMAT_ORDER]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xec, 0x8e},// / / MCU_ADDRESS [PRI_B_CONFIG_JPEG_JP_MODE]
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++
++#if 0 // auto focuing and white balance setting
++ {0x09, 0x8e, 0x6c, 0x19},// / / MCU_ADDRESS [PRI_B_CONFIG_AE_RULE_ALGO_ENTER]
++ {0x09, 0x90, 0x80, 0x01},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x6c, 0x1b},// / / MCU_ADDRESS [PRI_B_CONFIG_AE_RULE_ALGO_RUN]
++ {0x09, 0x90, 0x00, 0x04},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x6c, 0x27},// / / MCU_ADDRESS [PRI_B_CONFIG_AE_TRACK_ALGO_RUN]
++ {0x09, 0x90, 0x00, 0x07},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x6c, 0x3f},// / / MCU_ADDRESS [PRI_B_CONFIG_AWB_ALGO_RUN]
++ {0x09, 0x90, 0x1f, 0xff},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x6c, 0x5e},// / / MCU_ADDRESS [PRI_B_CONFIG_STAT_ALGO_ENTER]
++ {0x09, 0x90, 0x80, 0x1f},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x6c, 0x60},// / / MCU_ADDRESS [PRI_B_CONFIG_STAT_ALGO_RUN]
++ {0x09, 0x90, 0x12, 0xe0},// / / MCU_DATA_0
++ {0x09, 0x8e, 0xec, 0x2c},// / / MCU_ADDRESS [PRI_B_CONFIG_AE_TRACK_JUMP_DIVISOR]
++ {0x09, 0x90, 0x00, 0x03},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x6c, 0xad},// / / MCU_ADDRESS [PRI_B_SYNC_FRAME]
++ {0x09, 0x90, 0x01, 0x0c},// / / MCU_DATA_0
++#endif
++
++ {0x09, 0x8e, 0x84, 0x00},// / / MCU_ADDRESS [SEQ_CMD]
++ {0x09, 0x90, 0x00, 0x06},// / / MCU_DATA_0
++ {0xde, 0xde, 0xde, 0xff},// Delay(2000},
++ {0xde, 0xde, 0xde, 0xff},// Delay(2000},
++};
++
++mt9p012_t mt9p012_sxga_reg[] =
++{
++ {0x09, 0x8e, 0xec, 0x05},// / / MCU_DATA_0
++ {0x09, 0x90, 0x00, 0x01},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x84, 0x00},// / / MCU_DATA_0
++ {0x09, 0x90, 0x00, 0x01},// / / MCU_DATA_0
++};
++
++mt9p012_t mt9p012_qsxga_reg[] =
++{
++ {0x09, 0x8e, 0xec, 0x05},// / / MCU_DATA_0
++ {0x09, 0x90, 0x00, 0x00},// / / MCU_DATA_0
++ {0x09, 0x8e, 0x84, 0x00},// / / MCU_DATA_0
++ {0x09, 0x90, 0x00, 0x02},// / / MCU_DATA_0
++};
++
++#define MT9P012_INIT_REGS (sizeof(mt9p012_init_reg) / sizeof(mt9p012_init_reg[0]))
++#define MT9P012_SXGA_REGS (sizeof(mt9p012_sxga_reg) / sizeof(mt9p012_sxga_reg[0]))
++#define MT9P012_QSXGA_REGS (sizeof(mt9p012_qsxga_reg) / sizeof(mt9p012_qsxga_reg[0]))
++
++#endif
++
++#endif
++
+diff --git a/drivers/media/video/videodev2_s3c.h b/drivers/media/video/videodev2_s3c.h
+new file mode 100644
+index 0000000..abcf08c
+--- /dev/null
++++ b/drivers/media/video/videodev2_s3c.h
+@@ -0,0 +1,210 @@
++#ifndef __VIDEODEV2_S3C_H_
++#define __VIDEODEV2_S3C_H_
++
++#include <linux/videodev2.h>
++
++#define V4L2_INPUT_TYPE_MSDMA 3
++#define V4L2_INPUT_TYPE_INTERLACE 4
++
++/****************************************************************
++* struct v4l2_control
++* Control IDs defined by S3C
++*****************************************************************/
++/* Image Effect */
++#define V4L2_CID_ORIGINAL (V4L2_CID_PRIVATE_BASE + 0)
++#define V4L2_CID_ARBITRARY (V4L2_CID_PRIVATE_BASE + 1)
++#define V4L2_CID_NEGATIVE (V4L2_CID_PRIVATE_BASE + 2)
++#define V4L2_CID_ART_FREEZE (V4L2_CID_PRIVATE_BASE + 3)
++#define V4L2_CID_EMBOSSING (V4L2_CID_PRIVATE_BASE + 4)
++#define V4L2_CID_SILHOUETTE (V4L2_CID_PRIVATE_BASE + 5)
++
++/* Image Rotate */
++#define V4L2_CID_ROTATE_90 (V4L2_CID_PRIVATE_BASE + 6)
++#define V4L2_CID_ROTATE_180 (V4L2_CID_PRIVATE_BASE + 7)
++#define V4L2_CID_ROTATE_270 (V4L2_CID_PRIVATE_BASE + 8)
++#define V4L2_CID_ROTATE_BYPASS (V4L2_CID_PRIVATE_BASE + 9)
++
++/* Zoom-in, Zoom-out */
++#define V4L2_CID_ZOOMIN (V4L2_CID_PRIVATE_BASE + 10)
++#define V4L2_CID_ZOOMOUT (V4L2_CID_PRIVATE_BASE + 11)
++
++/****************************************************************
++* I O C T L C O D E S F O R V I D E O D E V I C E S
++* It's only for S3C
++*****************************************************************/
++#define VIDIOC_S_CAMERA_START _IO ('V', BASE_VIDIOC_PRIVATE + 0)
++#define VIDIOC_S_CAMERA_STOP _IO ('V', BASE_VIDIOC_PRIVATE + 1)
++#define VIDIOC_MSDMA_START _IOW ('V', BASE_VIDIOC_PRIVATE + 2, struct v4l2_msdma_format)
++#define VIDIOC_MSDMA_STOP _IOW ('V', BASE_VIDIOC_PRIVATE + 3, struct v4l2_msdma_format)
++#define VIDIOC_S_MSDMA _IOW ('V', BASE_VIDIOC_PRIVATE + 4, struct v4l2_msdma_format)
++#define VIDIOC_S_INTERLACE_MODE _IOW ('V', BASE_VIDIOC_PRIVATE + 5, struct v4l2_interlace_format)
++
++/*
++ * INTERLACE MODE
++ */
++#define S3C_VIDEO_DECODER_PAL 1 /* can decode PAL signal */
++#define S3C_VIDEO_DECODER_NTSC 2 /* can decode NTSC */
++#define S3C_VIDEO_DECODER_SECAM 4 /* can decode SECAM */
++#define S3C_VIDEO_DECODER_AUTO 8 /* can autosense norm */
++#define S3C_VIDEO_DECODER_CCIR 16 /* CCIR-601 pixel rate (720 pixels per line) instead of square pixel rate */
++
++#define S3C_DECODER_INIT _IOW ('V', BASE_VIDIOC_PRIVATE + 14, struct s3c_video_decoder_init) /* init internal registers at once */
++#define S3C_DECODER_GET_CAPABILITIES _IOR ('V', BASE_VIDIOC_PRIVATE + 6, struct s3c_video_decoder_capability)
++#define S3C_DECODER_GET_STATUS _IOR ('V', BASE_VIDIOC_PRIVATE + 7, int)
++#define S3C_DECODER_SET_NORM _IOW ('V', BASE_VIDIOC_PRIVATE + 8, int)
++#define S3C_DECODER_SET_INPUT _IOW ('V', BASE_VIDIOC_PRIVATE + 9, int) /* 0 <= input < #inputs */
++#define S3C_DECODER_SET_OUTPUT _IOW ('V', BASE_VIDIOC_PRIVATE + 10, int) /* 0 <= output < #outputs */
++#define S3C_DECODER_ENABLE_OUTPUT _IOW ('V', BASE_VIDIOC_PRIVATE + 11, int) /* boolean output enable control */
++#define S3C_DECODER_SET_PICTURE _IOW ('V', BASE_VIDIOC_PRIVATE + 12, struct video_picture)
++#define S3C_DECODER_SET_GPIO _IOW ('V', BASE_VIDIOC_PRIVATE + 13, int) /* switch general purpose pin */
++#define S3C_DECODER_SET_VBI_BYPASS _IOW ('V', BASE_VIDIOC_PRIVATE + 15, int) /* switch vbi bypass */
++#define S3C_DECODER_DUMP _IO ('V', BASE_VIDIOC_PRIVATE + 16) /* debug hook */
++
++enum v4l2_msdma_input {
++ V4L2_MSDMA_CODEC = 1,
++ V4L2_MSDMA_PREVIEW = 2,
++};
++
++struct v4l2_msdma_format
++{
++ __u32 width; /* MSDMA INPUT : Source X size */
++ __u32 height; /* MSDMA INPUT : Source Y size */
++ __u32 pixelformat;
++ enum v4l2_msdma_input input_path;
++};
++
++struct v4l2_interlace_format
++{
++ __u32 width; /* INTERLACE INPUT : Source X size */
++ __u32 height; /* INTERLACE INPUT : Source Y size */
++};
++
++struct s3c_video_decoder_init {
++ unsigned char len;
++ const unsigned char *data;
++};
++
++struct s3c_video_decoder_capability { /* this name is too long */
++ __u32 flags;
++ int inputs; /* number of inputs */
++ int outputs; /* number of outputs */
++};
++
++static struct v4l2_input fimc_inputs[] = {
++ {
++ .index = 0,
++ .name = "S3C FIMC External Camera Input",
++ .type = V4L2_INPUT_TYPE_CAMERA,
++ .audioset = 1,
++ .tuner = 0,
++ .std = V4L2_STD_PAL_BG | V4L2_STD_NTSC_M,
++ .status = 0,
++ },
++ {
++ .index = 1,
++ .name = "Memory Input (MSDMA)",
++ .type = V4L2_INPUT_TYPE_MSDMA,
++ .audioset = 2,
++ .tuner = 0,
++ .std = V4L2_STD_PAL_BG | V4L2_STD_NTSC_M,
++ .status = 0,
++ }
++};
++
++static struct v4l2_output fimc_outputs[] = {
++ {
++ .index = 0,
++ .name = "Pingpong Memory Output",
++ .type = 0,
++ .audioset = 0,
++ .modulator = 0,
++ .std = 0,
++ },
++ {
++ .index = 1,
++ .name = "LCD FIFO Output",
++ .type = 0,
++ .audioset = 0,
++ .modulator = 0,
++ .std = 0,
++ }
++};
++
++const struct v4l2_fmtdesc fimc_codec_formats[] = {
++ {
++ .index = 0,
++ .type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
++ .description = "16 bpp RGB, le",
++ .pixelformat = V4L2_PIX_FMT_RGB565,
++ .flags = FORMAT_FLAGS_PACKED,
++ },
++ {
++ .index = 1,
++ .type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
++ .flags = FORMAT_FLAGS_PACKED,
++ .description = "32 bpp RGB, le",
++ .pixelformat = V4L2_PIX_FMT_BGR32,
++ },
++ {
++ .index = 2,
++ .type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
++ .flags = FORMAT_FLAGS_PLANAR,
++ .description = "4:2:2, planar, Y-Cb-Cr",
++ .pixelformat = V4L2_PIX_FMT_YUV422P,
++
++ },
++ {
++ .index = 3,
++ .type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
++ .flags = FORMAT_FLAGS_PLANAR,
++ .description = "4:2:0, planar, Y-Cb-Cr",
++ .pixelformat = V4L2_PIX_FMT_YUV420,
++ }
++};
++
++const struct v4l2_fmtdesc fimc_preview_formats[] = {
++ {
++ .index = 0,
++ .type = V4L2_BUF_TYPE_VIDEO_OVERLAY,
++ .flags = FORMAT_FLAGS_PACKED,
++ .description = "16 bpp RGB, le",
++ .pixelformat = V4L2_PIX_FMT_RGB565,
++ },
++ {
++ .index = 1,
++ .type = V4L2_BUF_TYPE_VIDEO_OVERLAY,
++ .flags = FORMAT_FLAGS_PACKED,
++ .description = "24 bpp RGB, le",
++ .pixelformat = V4L2_PIX_FMT_RGB24,
++ },
++ {
++ .index = 2,
++ .type = V4L2_BUF_TYPE_VIDEO_OVERLAY,
++ .flags = FORMAT_FLAGS_PACKED,
++ .description = "32 bpp RGB, le",
++ .pixelformat = V4L2_PIX_FMT_BGR32,
++ },
++ {
++ .index = 3,
++ .type = V4L2_BUF_TYPE_VIDEO_OVERLAY,
++ .flags = FORMAT_FLAGS_PLANAR,
++ .description = "4:2:2, planar, Y-Cb-Cr",
++ .pixelformat = V4L2_PIX_FMT_YUV422P,
++
++ },
++ {
++ .index = 4,
++ .type = V4L2_BUF_TYPE_VIDEO_OVERLAY,
++ .flags = FORMAT_FLAGS_PLANAR,
++ .description = "4:2:0, planar, Y-Cb-Cr",
++ .pixelformat = V4L2_PIX_FMT_YUV420,
++ }
++};
++
++#define NUMBER_OF_PREVIEW_FORMATS ARRAY_SIZE(fimc_preview_formats)
++#define NUMBER_OF_CODEC_FORMATS ARRAY_SIZE(fimc_codec_formats)
++#define NUMBER_OF_INPUTS ARRAY_SIZE(fimc_inputs)
++#define NUMBER_OF_OUTPUTS ARRAY_SIZE(fimc_outputs)
++
++#endif
++
+diff --git a/drivers/mmc/core/bus.c b/drivers/mmc/core/bus.c
+index b0c22ca..98e0707 100644
+--- a/drivers/mmc/core/bus.c
++++ b/drivers/mmc/core/bus.c
+@@ -231,6 +231,7 @@ int mmc_add_card(struct mmc_card *card)
+ case MMC_TYPE_SDIO:
+ type = "SDIO";
+ break;
++
+ default:
+ type = "?";
+ break;
+diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
+index 68c0e3b..5e773b3 100644
+--- a/drivers/mmc/core/mmc.c
++++ b/drivers/mmc/core/mmc.c
+@@ -397,6 +397,14 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
+ * Activate wide bus (if supported).
+ */
+ if ((card->csd.mmca_vsn >= CSD_SPEC_VER_4) &&
++ (host->caps & MMC_CAP_8_BIT_DATA)) {
++ err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
++ EXT_CSD_BUS_WIDTH, EXT_CSD_BUS_WIDTH_8);
++ if (err)
++ goto free_card;
++
++ mmc_set_bus_width(card->host, MMC_BUS_WIDTH_8);
++ } else if ((card->csd.mmca_vsn >= CSD_SPEC_VER_4) &&
+ (host->caps & MMC_CAP_4_BIT_DATA)) {
+ err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
+ EXT_CSD_BUS_WIDTH, EXT_CSD_BUS_WIDTH_4);
+@@ -404,7 +412,7 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
+ goto free_card;
+
+ mmc_set_bus_width(card->host, MMC_BUS_WIDTH_4);
+- }
++ }
+
+ if (!oldcard)
+ host->card = card;
+diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
+index 5fef678..e440252 100644
+--- a/drivers/mmc/host/Kconfig
++++ b/drivers/mmc/host/Kconfig
+@@ -14,6 +14,53 @@ config MMC_ARMMMCI
+
+ If unsure, say N.
+
++config MMC_S3C
++ tristate "Samsung S3C Multimedia Card Interface support"
++ select MMC_BLOCK
++ depends on ARCH_S3C2410 && MMC && !(CPU_S3C6400 || CPU_S3C6410)
++ help
++ This selects the Samsung S3C Multimedia Card Interface
++ support.
++
++ If unsure, say N.
++
++config HSMMC_S3C
++ tristate "Samsung S3C High Speed MMC Interface support"
++ select MMC_BLOCK
++ depends on (CPU_S3C2443 || CPU_S3C2450 || CPU_S3C2416 || CPU_S3C6400 || CPU_S3C6410) && MMC
++ help
++ This selects the Samsung S3C Multimedia Card Interface
++ support.
++
++ If unsure, say N.
++
++config USE_MMC_AS_ROOT
++ bool "MMC can be used as a Root Filesystem Device"
++ depends on HSMMC_S3C
++ default y
++ help
++ Say Y here when you want to use MMC as a root file system.
++
++config HSMMC_S3C_IRQ_WORKAROUND
++ bool "Fix IRQ Hanging in HS-MMC"
++ depends on HSMMC_S3C
++ default y
++ help
++ Say Y here when you are using S3C6400 or S3C6410.
++
++config HSMMC_SCATTERGATHER
++ bool "Support Scatter and Gather in HS-MMC"
++ depends on HSMMC_S3C
++ help
++ Say Y here. This option can support scatter and gather
++ using DMA boundary in HS-MMC DMA engine.
++
++config S3CMMC_DEBUG
++ bool "To debug interface, enable all debug messages"
++ depends on (MMC_S3C || HSMMC_S3C)
++ help
++ Say Y here to enable Debug Messages.
++
+ config MMC_PXA
+ tristate "Intel PXA25x/26x/27x Multimedia Card Interface support"
+ depends on ARCH_PXA
+diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile
+index 3877c87..a74fea6 100644
+--- a/drivers/mmc/host/Makefile
++++ b/drivers/mmc/host/Makefile
+@@ -17,4 +17,5 @@ obj-$(CONFIG_MMC_OMAP) += omap.o
+ obj-$(CONFIG_MMC_AT91) += at91_mci.o
+ obj-$(CONFIG_MMC_TIFM_SD) += tifm_sd.o
+ obj-$(CONFIG_MMC_SPI) += mmc_spi.o
+-
++obj-$(CONFIG_MMC_S3C) += s3cmci.o
++obj-$(CONFIG_HSMMC_S3C) += s3c-hsmmc.o
+diff --git a/drivers/mmc/host/s3c-hsmmc.c b/drivers/mmc/host/s3c-hsmmc.c
+new file mode 100644
+index 0000000..3d8c68e
+--- /dev/null
++++ b/drivers/mmc/host/s3c-hsmmc.c
+@@ -0,0 +1,1398 @@
++/*
++ * linux/drivers/mmc/s3c-hsmmc.c - Samsung S3C24XX HS-MMC driver
++ *
++ * $Id: s3c-hsmmc.c,v 1.53 2008/06/23 07:56:52 jsgood Exp $
++ *
++ * Copyright (C) 2006 Samsung Electronics, All Rights Reserved.
++ * by Suh, Seung-Chull<sc.suh@samsung.com>
++ *
++ * This driver is made for High Speed MMC interface. This interface
++ * is adopted and implemented since s3c2443 was made.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * Modified by Ryu,Euiyoul <steven.ryu@samsung.com>
++ * Modified by Suh, Seung-chull to support s3c6400
++ *
++ */
++
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/ioport.h>
++#include <linux/platform_device.h>
++#include <linux/delay.h>
++#include <linux/interrupt.h>
++#include <linux/highmem.h>
++#include <linux/dma-mapping.h>
++#include <linux/mmc/host.h>
++#include <linux/mmc/mmc.h>
++#include <linux/mmc/sd.h>
++#include <linux/mmc/card.h>
++#include <linux/err.h>
++#include <linux/clk.h>
++#include <linux/proc_fs.h>
++#include <linux/irq.h>
++
++#include <asm/dma.h>
++#include <asm/dma-mapping.h>
++
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/scatterlist.h>
++#include <asm/sizes.h>
++#include <asm/mach/mmc.h>
++
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-hsmmc.h>
++#include <asm/plat-s3c24xx/clock.h>
++#include <asm/arch/dma.h>
++
++#include <asm/arch/hsmmc.h>
++
++
++#ifdef CONFIG_S3CMMC_DEBUG
++#define DBG(x...) printk(PFX x)
++#else
++#define DBG(x...) do { } while (0)
++#endif
++
++#include "s3c-hsmmc.h"
++
++#define DRIVER_NAME "s3c-hsmmc"
++#define PFX DRIVER_NAME ": "
++
++#define MULTICARD_ON_SINGLEBUS_SUPPORT
++#undef MULTICARD_ON_SINGLEBUS_SUPPORT
++
++#define RESSIZE(ressource) (((ressource)->end - (ressource)->start)+1)
++
++#if defined(CONFIG_PM)
++struct s3c_hsmmc_host *global_host[3];
++#endif
++
++static int card_detect = 0;
++/*****************************************************************************\
++ * *
++ * Low level functions *
++ * *
++\*****************************************************************************/
++
++static struct s3c_hsmmc_cfg s3c_hsmmc_platform = {
++ .hwport = 0,
++ .enabled = 0,
++ .host_caps = (MMC_CAP_4_BIT_DATA | MMC_CAP_MULTIWRITE),
++ .base = NULL,
++ .highspeed = 0,
++
++ /* ctrl for mmc */
++ .fd_ctrl[0] = {
++ .ctrl2 = 0xC0004100, /* ctrl2 for mmc */
++ .ctrl3[0] = 0x80808080, /* ctrl3 for low speed */
++ .ctrl3[1] = 0x00000080, /* ctrl3 for high speed */
++ .ctrl4 = 0,
++ },
++
++ /* ctrl for sd */
++ .fd_ctrl[1] = {
++ .ctrl2 = 0xC0000100, /* ctrl2 for sd */
++ .ctrl3[0] = 0, /* ctrl3 for low speed */
++ .ctrl3[1] = 0, /* ctrl3 for high speed */
++ .ctrl4 = 0,
++ },
++};
++
++/* s3c_hsmmc_get_platdata
++ *
++ * get the platform data associated with the given device, or return
++ * the default if there is none
++ */
++
++static struct s3c_hsmmc_cfg *s3c_hsmmc_get_platdata (struct device *dev)
++{
++ if (dev->platform_data != NULL)
++ return (struct s3c_hsmmc_cfg *)dev->platform_data;
++
++ return &s3c_hsmmc_platform;
++}
++
++static void s3c_hsmmc_reset (struct s3c_hsmmc_host *host, u8 mask)
++{
++ unsigned long timeout;
++
++ s3c_hsmmc_writeb(mask, S3C_HSMMC_SWRST);
++
++ if (mask & S3C_HSMMC_RESET_ALL)
++ host->clock = (uint)-1;
++
++ /* Wait max 100 ms */
++ timeout = 100;
++
++ /* hw clears the bit when it's done */
++ while (s3c_hsmmc_readb(S3C_HSMMC_SWRST) & mask) {
++ if (timeout == 0) {
++ printk("%s: Reset 0x%x never completed. \n",
++ mmc_hostname(host->mmc), (int)mask);
++ return;
++ }
++ timeout--;
++ mdelay(1);
++ }
++
++}
++
++static void s3c_hsmmc_ios_init (struct s3c_hsmmc_host *host)
++{
++ u32 intmask;
++
++ s3c_hsmmc_reset(host, S3C_HSMMC_RESET_ALL);
++
++ intmask = S3C_HSMMC_INT_BUS_POWER | S3C_HSMMC_INT_DATA_END_BIT |
++ S3C_HSMMC_INT_DATA_CRC | S3C_HSMMC_INT_DATA_TIMEOUT | S3C_HSMMC_INT_INDEX |
++ S3C_HSMMC_INT_END_BIT | S3C_HSMMC_INT_CRC | S3C_HSMMC_INT_TIMEOUT |
++ S3C_HSMMC_INT_CARD_REMOVE | S3C_HSMMC_INT_CARD_INSERT |
++ S3C_HSMMC_INT_DATA_AVAIL | S3C_HSMMC_INT_SPACE_AVAIL |
++ S3C_HSMMC_INT_DATA_END | S3C_HSMMC_INT_RESPONSE;
++
++#ifdef CONFIG_HSMMC_SCATTERGATHER
++ intmask |= S3C_HSMMC_INT_DMA_END;
++#endif
++ s3c_hsmmc_writel(intmask, S3C_HSMMC_NORINTSTSEN);
++ s3c_hsmmc_writel(intmask, S3C_HSMMC_NORINTSIGEN);
++}
++
++/*****************************************************************************\
++ * *
++ * Tasklets *
++ * *
++\*****************************************************************************/
++
++static void s3c_hsmmc_tasklet_card (ulong param)
++{
++ struct s3c_hsmmc_host *host;
++ unsigned long iflags;
++
++ host = (struct s3c_hsmmc_host*)param;
++ spin_lock_irqsave(&host->lock, iflags);
++
++ if (!(s3c_hsmmc_readl(S3C_HSMMC_PRNSTS) & S3C_HSMMC_CARD_PRESENT)) {
++ if (host->mrq) {
++ printk(KERN_ERR "%s: Card removed during transfer!\n",
++ mmc_hostname(host->mmc));
++ printk(KERN_ERR "%s: Resetting controller.\n",
++ mmc_hostname(host->mmc));
++
++ s3c_hsmmc_reset(host, S3C_HSMMC_RESET_CMD);
++ s3c_hsmmc_reset(host, S3C_HSMMC_RESET_DATA);
++
++ host->mrq->cmd->error = -ENOMEDIUM;
++ tasklet_schedule(&host->finish_tasklet);
++ }
++ }
++
++ spin_unlock_irqrestore(&host->lock, iflags);
++
++ mmc_detect_change(host->mmc, msecs_to_jiffies(500));
++}
++
++static void s3c_hsmmc_activate_led(struct s3c_hsmmc_host *host)
++{
++#if 0
++ u8 ctrl;
++
++ ctrl = s3c_hsmmc_readb(S3C_HSMMC_HOSTCTL);
++ ctrl |= S3C_HSMMC_CTRL_LED;
++ s3c_hsmmc_writeb(ctrl, S3C_HSMMC_HOSTCTL);
++#endif
++
++#if 0 // for 6400
++ gpio_set_pin(S3C_GPJ13, S3C_GPJ13_SD0LED);
++#endif
++}
++
++static void s3c_hsmmc_deactivate_led(struct s3c_hsmmc_host *host)
++{
++#if 0
++ u8 ctrl;
++
++ ctrl = s3c_hsmmc_readb(S3C_HSMMC_HOSTCTL);
++ ctrl &= ~S3C_HSMMC_CTRL_LED;
++ s3c_hsmmc_writeb(ctrl, S3C_HSMMC_HOSTCTL);
++#endif
++
++#if 0 // for 6400
++ gpio_direction_input(S3C_GPJ13);
++#endif
++}
++
++/*****************************************************************************\
++ * *
++ * Core functions *
++ * *
++\*****************************************************************************/
++
++#ifdef CONFIG_HSMMC_SCATTERGATHER
++static inline uint s3c_hsmmc_build_dma_table (struct s3c_hsmmc_host *host,
++ struct mmc_data *data)
++{
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C2443)
++ uint i, j = 0, sub_num = 0;
++ dma_addr_t addr;
++ uint size, length, end;
++ int boundary, xor_bit;
++ struct scatterlist * sg = data->sg;
++
++ /* build dma table except last one */
++ for (i=0; i<(host->sg_len-1); i++) {
++ addr = sg[i].dma_address;
++ size = sg[i].length;
++ DBG("%d - addr: %08x, size: %08x\n", i, addr, size);
++
++ for (; (j<CONFIG_S3C_HSMMC_MAX_HW_SEGS*4) && size; j++) {
++ end = addr + size;
++ xor_bit = min(7+(2+8+2), fls(addr^end) -1);
++
++ DBG("%08x %08x %08x %d\n", addr, size, end, xor_bit);
++
++ host->dblk[j].dma_address = addr;
++
++ length = (end & ~((1<<xor_bit)-1)) - addr;
++ boundary = xor_bit - (2+8+2);
++ DBG("length: %x, boundary: %d\n", length, boundary);
++
++ if (length < S3C_HSMMC_MALLOC_SIZE) {
++ boundary = 0;
++
++ if ((addr+length) & (S3C_HSMMC_MALLOC_SIZE-1)) {
++ void *dest;
++
++ DBG("#########error fixing: %08x, %x\n", addr, length);
++ dest = host->sub_block[sub_num] + S3C_HSMMC_MALLOC_SIZE - length;
++ if (data->flags & MMC_DATA_WRITE) { /* write */
++ memcpy(dest, phys_to_virt(addr), length);
++ }
++
++ host->dblk[j].original = phys_to_virt(addr);
++ host->dblk[j].dma_address = dma_map_single(NULL, dest, length, host->dma_dir);
++ sub_num++;
++ }
++ }
++
++ host->dblk[j].length = length;
++ host->dblk[j].boundary = boundary;
++ DBG(" %d: %08x, %08x %x\n",
++ j, addr, length, boundary);
++ addr += length;
++ size -= length;
++ }
++ }
++
++ /* the last one */
++ host->dblk[j].dma_address = sg[i].dma_address;
++ host->dblk[j].length = sg[i].length;
++ host->dblk[j].boundary = 0x7;
++
++ return (j+1);
++
++#elif defined(CONFIG_CPU_S3C6410) || defined(CONFIG_CPU_S3C2450)|| defined(CONFIG_CPU_S3C2416)
++ uint i;
++ struct scatterlist * sg = data->sg;
++
++ /* build dma table except the last one */
++ for (i=0; i<(host->sg_len-1); i++) {
++ host->sdma_descr_tbl[i].dma_address = sg[i].dma_address;
++ host->sdma_descr_tbl[i].length_attr = (sg[i].length << 16) | (S3C_HSMMC_ADMA_ATTR_ACT_TRAN) |
++ (S3C_HSMMC_ADMA_ATTR_VALID);
++
++ DBG(" ADMA2 descr table[%d] - addr: %08x, size+attr: %08x\n", i, host->sdma_descr_tbl[i].dma_address,
++ host->sdma_descr_tbl[i].length_attr);
++ }
++
++ /* the last one */
++ host->sdma_descr_tbl[i].dma_address = sg[i].dma_address;
++ host->sdma_descr_tbl[i].length_attr = (sg[i].length << 16) | (S3C_HSMMC_ADMA_ATTR_ACT_TRAN) |
++ (S3C_HSMMC_ADMA_ATTR_END | S3C_HSMMC_ADMA_ATTR_VALID);
++
++ DBG(" ADMA2 descr table[%d] - addr: %08x, size+attr: %08x\n", i, host->sdma_descr_tbl[i].dma_address,
++ host->sdma_descr_tbl[i].length_attr);
++
++ return (i);
++#endif
++
++}
++#endif
++
++static inline void s3c_hsmmc_prepare_data (struct s3c_hsmmc_host *host,
++ struct mmc_command *cmd)
++{
++#if defined(CONFIG_CPU_S3C6410) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ u8 reg8;
++#endif
++ u32 reg;
++ struct mmc_data *data = cmd->data;
++
++ if (data == NULL) {
++ reg = s3c_hsmmc_readl(S3C_HSMMC_NORINTSTSEN) | S3C_HSMMC_NIS_CMDCMP;
++ s3c_hsmmc_writel(reg, S3C_HSMMC_NORINTSTSEN);
++ return;
++ }
++
++ reg = s3c_hsmmc_readl(S3C_HSMMC_NORINTSTSEN) & ~S3C_HSMMC_NIS_CMDCMP;
++ s3c_hsmmc_writel(reg, S3C_HSMMC_NORINTSTSEN);
++
++ host->dma_dir = (data->flags & MMC_DATA_READ)
++ ? DMA_FROM_DEVICE : DMA_TO_DEVICE;
++
++#ifdef CONFIG_HSMMC_SCATTERGATHER
++ host->sg_len = dma_map_sg(mmc_dev(host->mmc), data->sg, data->sg_len,
++ host->dma_dir);
++
++ reg = s3c_hsmmc_readl(S3C_HSMMC_NORINTSTSEN);
++ if (host->sg_len == 1) {
++ reg &= ~S3C_HSMMC_NIS_DMA;
++ } else {
++ reg |= S3C_HSMMC_NIS_DMA;
++ }
++ s3c_hsmmc_writel(reg, S3C_HSMMC_NORINTSTSEN);
++
++#if defined(CONFIG_CPU_S3C6410) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ reg8 = s3c_hsmmc_readb(S3C_HSMMC_HOSTCTL);
++ reg8 |= S3C_HSMMC_CTRL_ADMA2_32;
++ s3c_hsmmc_writeb(reg8, S3C_HSMMC_HOSTCTL);
++ DBG("HOSTCTL(0x28) = 0x%02x\n", s3c_hsmmc_readb(S3C_HSMMC_HOSTCTL));
++#endif
++ DBG("data->flags(direction) = 0x%x\n", data->flags);
++ DBG("data->blksz: %d\n", data->blksz);
++ DBG("data->blocks: %d\n", data->blocks);
++ DBG("data->sg_len: %d\n", data->sg_len);
++
++ DBG("data->sg->addr: 0x%x\n", data->sg->dma_address);
++ DBG("data->sg->length: 0x%x\n", data->sg->length);
++
++ host->dma_blk = s3c_hsmmc_build_dma_table(host, data);
++ host->next_blk = 0;
++#else
++ DBG("data->flags(direction) = 0x%x\n", data->flags);
++ DBG("data->blksz: %d\n", data->blksz);
++ DBG("data->blocks: %d\n", data->blocks);
++ DBG("data->sg_len: %d\n", data->sg_len);
++ dma_map_sg(mmc_dev(host->mmc), data->sg, data->sg_len,
++ host->dma_dir);
++#endif
++}
++
++static inline void s3c_hsmmc_set_transfer_mode (struct s3c_hsmmc_host *host,
++ struct mmc_data *data)
++{
++ u16 mode;
++
++ mode = S3C_HSMMC_TRNS_DMA;
++
++ if (data->stop)
++ mode |= S3C_HSMMC_TRNS_ACMD12;
++
++ if (data->blocks > 1)
++ mode |= S3C_HSMMC_TRNS_MULTI | S3C_HSMMC_TRNS_BLK_CNT_EN;
++ if (data->flags & MMC_DATA_READ)
++ mode |= S3C_HSMMC_TRNS_READ;
++
++ s3c_hsmmc_writew(mode, S3C_HSMMC_TRNMOD);
++}
++
++static inline void s3c_hsmmc_send_register (struct s3c_hsmmc_host *host)
++{
++ struct mmc_command *cmd = host->cmd;
++ struct mmc_data *data = cmd->data;
++
++ u32 cmd_val;
++
++ if (data) {
++
++#ifdef CONFIG_HSMMC_SCATTERGATHER
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C2443)
++ struct s3c_hsmmc_dma_blk *dblk;
++
++ dblk = &host->dblk[0];
++ s3c_hsmmc_writew(S3C_HSMMC_MAKE_BLKSZ(dblk->boundary, data->blksz),
++ S3C_HSMMC_BLKSIZE);
++ s3c_hsmmc_writel(dblk->dma_address, S3C_HSMMC_SYSAD);
++
++#elif defined(CONFIG_CPU_S3C6410) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ s3c_hsmmc_writew(S3C_HSMMC_MAKE_BLKSZ(0x7, data->blksz), S3C_HSMMC_BLKSIZE);
++ s3c_hsmmc_writel(virt_to_phys(host->sdma_descr_tbl), S3C_HSMMC_ADMASYSADDR);
++ DBG("S3C_HSMMC_ADMASYSADDR(0x58) = 0x%08x\n", s3c_hsmmc_readl(S3C_HSMMC_ADMASYSADDR));
++#endif
++
++#else
++ s3c_hsmmc_writew(S3C_HSMMC_MAKE_BLKSZ(0x7, data->blksz), S3C_HSMMC_BLKSIZE);
++ s3c_hsmmc_writel(sg_dma_address(data->sg), S3C_HSMMC_SYSAD);
++#endif
++ s3c_hsmmc_writew(data->blocks, S3C_HSMMC_BLKCNT);
++ s3c_hsmmc_set_transfer_mode(host, data);
++ }
++
++ s3c_hsmmc_writel(cmd->arg, S3C_HSMMC_ARGUMENT);
++
++ cmd_val = (cmd->opcode << 8);
++ if (cmd_val == (12<<8))
++ cmd_val |= (3 << 6);
++
++ if (cmd->flags & MMC_RSP_136) /* Long RSP */
++ cmd_val |= S3C_HSMMC_CMD_RESP_LONG;
++ else if (cmd->flags & MMC_RSP_BUSY) /* R1B */
++ cmd_val |= S3C_HSMMC_CMD_RESP_SHORT_BUSY;
++ else if (cmd->flags & MMC_RSP_PRESENT) /* Normal RSP */
++ cmd_val |= S3C_HSMMC_CMD_RESP_SHORT;
++
++ if (cmd->flags & MMC_RSP_OPCODE)
++ cmd_val |= S3C_HSMMC_CMD_INDEX;
++
++ if (cmd->flags & MMC_RSP_CRC)
++ cmd_val |= S3C_HSMMC_CMD_CRC;
++
++ if (data)
++ cmd_val |= S3C_HSMMC_CMD_DATA;
++
++ s3c_hsmmc_writew(cmd_val, S3C_HSMMC_CMDREG);
++}
++
++static inline void s3c_hsmmc_send_command (struct s3c_hsmmc_host *host,
++ struct mmc_command *cmd)
++{
++ u32 mask=1;
++ ulong timeout;
++
++#if defined(CONFIG_CPU_S3C6410) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ while (s3c_hsmmc_readl(S3C_HSMMC_CONTROL4) & mask);
++#endif
++
++ DBG("Sending cmd=(%d), arg=0x%x\n", cmd->opcode, cmd->arg);
++
++ /* Wait max 10 ms */
++ timeout = 10;
++
++ mask = S3C_HSMMC_CMD_INHIBIT;
++ if ((cmd->data != NULL) || (cmd->flags & MMC_RSP_BUSY))
++ mask |= S3C_HSMMC_DATA_INHIBIT;
++
++ while (s3c_hsmmc_readl(S3C_HSMMC_PRNSTS) & mask) {
++ printk("########### waiting controller wakeup\n");
++ if (timeout == 0) {
++ printk(KERN_ERR "%s: Controller never released "
++ "inhibit bit(s).\n", mmc_hostname(host->mmc));
++ cmd->error = -EIO;
++ tasklet_schedule(&host->finish_tasklet);
++ return;
++ }
++ timeout--;
++ mdelay(1);
++ }
++
++ mod_timer(&host->timer, jiffies + 10 * HZ);
++
++ host->cmd = cmd;
++
++ s3c_hsmmc_prepare_data(host, cmd);
++ s3c_hsmmc_send_register(host);
++}
++
++static void s3c_hsmmc_finish_data (struct s3c_hsmmc_host *host)
++{
++ struct mmc_data *data;
++ u16 blocks;
++
++ //BUG_ON(!host->data);
++ if(!host->data) return;
++
++ data = host->data;
++ host->data = NULL;
++
++ dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len,
++ (data->flags & MMC_DATA_READ)
++ ? DMA_FROM_DEVICE : DMA_TO_DEVICE);
++
++ /*
++ * Controller doesn't count down when in single block mode.
++ */
++ if (data->blocks == 1)
++ blocks = (data->error == 0) ? 0 : 1;
++ else {
++ blocks = s3c_hsmmc_readw(S3C_HSMMC_BLKCNT);
++ }
++ data->bytes_xfered = data->blksz * (data->blocks - blocks);
++
++ if (!data->error && blocks) {
++ printk(KERN_ERR "%s: Controller signalled completion even "
++ "though there were blocks left. : %d\n",
++ mmc_hostname(host->mmc), blocks);
++ data->error = -EIO;
++ }
++ DBG("data->flags(direction) FINISHED = %d\n", data->flags);
++ DBG("data->blksz FINISHED = %d\n", data->blksz);
++ DBG("data->blocks FINISHED = %d\n", data->blocks);
++ DBG("Not FINISHED blocks = %d\n", blocks);
++ DBG("Ending data transfer (%d bytes)\n", data->bytes_xfered);
++ DBG("\n");
++
++ tasklet_schedule(&host->finish_tasklet);
++}
++
++static void s3c_hsmmc_finish_command (struct s3c_hsmmc_host *host)
++{
++ int i;
++
++ //BUG_ON(host->cmd == NULL);
++ if(!host->cmd) return;
++
++ if (host->cmd->flags & MMC_RSP_PRESENT) {
++ if (host->cmd->flags & MMC_RSP_136) {
++ /* CRC is stripped so we need to do some shifting. */
++ for (i=0; i<4; i++) {
++ host->cmd->resp[i] = s3c_hsmmc_readl(S3C_HSMMC_RSPREG0+ (3-i)*4) << 8;
++ if (i != 3)
++ host->cmd->resp[i] |= s3c_hsmmc_readb(S3C_HSMMC_RSPREG0 + (3-i)*4-1);
++ DBG("cmd (%d) resp[%d] = 0x%x\n", host->cmd->opcode, i, host->cmd->resp[i]);
++ }
++ } else {
++ host->cmd->resp[0] = s3c_hsmmc_readl(S3C_HSMMC_RSPREG0);
++ DBG("cmd (%d) resp[%d] = 0x%x\n", host->cmd->opcode, 0, host->cmd->resp[0]);
++ }
++ }
++
++ host->cmd->error = 0;
++
++ DBG("Ending cmd (%d)\n", host->cmd->opcode);
++ DBG("\n");
++
++ if (host->cmd->data)
++ host->data = host->cmd->data;
++ else
++ tasklet_schedule(&host->finish_tasklet);
++
++ host->cmd = NULL;
++}
++
++static void s3c_hsmmc_tasklet_finish (unsigned long param)
++{
++ struct s3c_hsmmc_host *host;
++ unsigned long iflags;
++ struct mmc_request *mrq;
++
++ host = (struct s3c_hsmmc_host*)param;
++
++ //BUG_ON(!host->mrq);
++ if(!host->mrq) return;
++
++ spin_lock_irqsave(&host->lock, iflags);
++
++ del_timer(&host->timer);
++
++ mrq = host->mrq;
++
++ /*
++ * The controller needs a reset of internal state machines
++ * upon error conditions.
++ */
++ if ((mrq->cmd->error) || (mrq->data && (mrq->data->error)) ) {
++ s3c_hsmmc_reset(host, S3C_HSMMC_RESET_CMD);
++ s3c_hsmmc_reset(host, S3C_HSMMC_RESET_DATA);
++ }
++
++ host->mrq = NULL;
++ host->cmd = NULL;
++ host->data = NULL;
++
++ s3c_hsmmc_deactivate_led(host);
++
++ mmiowb();
++ spin_unlock_irqrestore(&host->lock, iflags);
++
++ mmc_request_done(host->mmc, mrq);
++}
++
++/*****************************************************************************
++ * *
++ * Interrupt handling *
++ * *
++ *****************************************************************************/
++
++static void s3c_hsmmc_cmd_irq (struct s3c_hsmmc_host *host, u32 intmask)
++{
++ if (!host->cmd) {
++ printk(KERN_ERR "%s: Got command interrupt 0x%08x even "
++ "though no command operation was in progress.\n",
++ mmc_hostname(host->mmc), (unsigned)intmask);
++ return;
++ }
++
++ if (intmask & S3C_HSMMC_INT_TIMEOUT)
++ host->cmd->error = -ETIMEDOUT;
++ else if (intmask & (S3C_HSMMC_INT_CRC | S3C_HSMMC_INT_END_BIT | S3C_HSMMC_INT_INDEX))
++ host->cmd->error = -EILSEQ;
++
++ if (host->cmd->error)
++ tasklet_schedule(&host->finish_tasklet);
++}
++
++static void s3c_hsmmc_data_irq (struct s3c_hsmmc_host *host, u32 intmask)
++{
++ if (!host->data) {
++ /*
++ * A data end interrupt is sent together with the response
++ * for the stop command.
++ */
++ if (intmask & S3C_HSMMC_INT_DATA_END)
++ return;
++
++ printk(KERN_ERR "%s: Got data interrupt even though no "
++ "data operation was in progress.\n",
++ mmc_hostname(host->mmc));
++ return;
++ }
++
++ if (intmask & S3C_HSMMC_INT_DATA_TIMEOUT)
++ host->data->error = -ETIMEDOUT;
++ else if (intmask & (S3C_HSMMC_INT_DATA_CRC|S3C_HSMMC_INT_DATA_END_BIT))
++ host->data->error = -EILSEQ;
++
++ if (host->data->error)
++ s3c_hsmmc_finish_data(host);
++}
++
++
++/*****************************************************************************\
++ * *
++ * Interrupt handling *
++ * *
++\*****************************************************************************/
++
++/*
++ * ISR for SDI Interface IRQ
++ * Communication between driver and ISR works as follows:
++ * host->mrq points to current request
++ * host->complete_what tells the ISR when the request is considered done
++ *
++ * 1) Driver sets up host->mrq and host->complete_what
++ * 2) Driver prepares the transfer
++ * 3) Driver enables interrupts
++ * 4) Driver starts transfer
++ * 5) Driver waits for host->complete_rquest
++ * 6) ISR checks for request status (errors and success)
++ * 6) ISR sets host->mrq->cmd->error and host->mrq->data->error
++ * 7) ISR completes host->complete_request
++ * 8) ISR disables interrupts
++ * 9) Driver wakes up and takes care of the request
++ */
++
++static irqreturn_t s3c_hsmmc_irq (int irq, void *dev_id)
++{
++ irqreturn_t result = 0;
++ struct s3c_hsmmc_host *host = dev_id;
++ struct mmc_request *mrq;
++ u32 intsts;
++
++#ifdef CONFIG_HSMMC_S3C_IRQ_WORKAROUND
++ uint i, org_irq_sts;
++#endif
++ spin_lock(&host->lock);
++
++ mrq = host->mrq;
++
++ intsts = s3c_hsmmc_readw(S3C_HSMMC_NORINTSTS);
++
++ /* Sometimes, hsmmc does not update its status bit immediately
++ * when it generates irqs. by scsuh.
++ */
++#ifdef CONFIG_HSMMC_S3C_IRQ_WORKAROUND
++ for (i=0; i<0x1000; i++) {
++ if ((intsts = s3c_hsmmc_readw(S3C_HSMMC_NORINTSTS)))
++ break;
++ }
++#endif
++
++ if (unlikely(!intsts)) {
++ result = IRQ_NONE;
++ goto out;
++ }
++ intsts = s3c_hsmmc_readl(S3C_HSMMC_NORINTSTS);
++#ifdef CONFIG_HSMMC_S3C_IRQ_WORKAROUND
++ org_irq_sts = intsts;
++#endif
++
++ DBG(PFX "Got interrupt = 0x%08x\n", intsts);
++
++ if (unlikely(intsts & S3C_HSMMC_INT_CARD_CHANGE)) {
++ u32 reg16;
++
++ if (intsts & S3C_HSMMC_INT_CARD_INSERT)
++ printk(PFX "card inserted.\n");
++ else if (intsts & S3C_HSMMC_INT_CARD_REMOVE)
++ printk(PFX "card removed.\n");
++
++ reg16 = s3c_hsmmc_readw(S3C_HSMMC_NORINTSTSEN);
++ s3c_hsmmc_writew(reg16 & ~S3C_HSMMC_INT_CARD_CHANGE,
++ S3C_HSMMC_NORINTSTSEN);
++ s3c_hsmmc_writew(S3C_HSMMC_INT_CARD_CHANGE, S3C_HSMMC_NORINTSTS);
++ s3c_hsmmc_writew(reg16, S3C_HSMMC_NORINTSTSEN);
++
++ intsts &= ~S3C_HSMMC_INT_CARD_CHANGE;
++
++ tasklet_schedule(&host->card_tasklet);
++ goto insert;
++ }
++
++ if (likely(!(intsts & S3C_HSMMC_NIS_ERR))) {
++ s3c_hsmmc_writel(intsts, S3C_HSMMC_NORINTSTS);
++
++ if (intsts & S3C_HSMMC_NIS_CMDCMP) {
++ DBG("command done\n");
++ s3c_hsmmc_finish_command(host);
++ }
++
++ if (intsts & S3C_HSMMC_NIS_TRSCMP) {
++ DBG("transfer done\n\n");
++ s3c_hsmmc_finish_command(host);
++ s3c_hsmmc_finish_data(host);
++ intsts &= ~S3C_HSMMC_NIS_DMA;
++ }
++
++#ifdef CONFIG_HSMMC_SCATTERGATHER
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C2443)
++ if (intsts & S3C_HSMMC_NIS_DMA) {
++ struct s3c_hsmmc_dma_blk *dblk;
++
++ dblk = &host->dblk[host->next_blk];
++ if (dblk->original) {
++ /* on read */
++ if (host->dma_dir == DMA_FROM_DEVICE) {
++ memcpy(dblk->original, phys_to_virt(dblk->dma_address), dblk->length);
++ }
++ dma_unmap_single(NULL, dblk->dma_address, dblk->length, host->dma_dir);
++ dblk->original = 0;
++ }
++
++ host->next_blk++;
++ dblk = &host->dblk[host->next_blk];
++
++ if (host->next_blk == (host->dma_blk-1)) {
++ u32 reg;
++
++ reg = s3c_hsmmc_readl(S3C_HSMMC_NORINTSTSEN);
++ reg &= ~S3C_HSMMC_NIS_DMA;
++ s3c_hsmmc_writel(reg, S3C_HSMMC_NORINTSTSEN);
++ }
++
++ /* We do not handle DMA boundaries, so set it to max (512 KiB) */
++ s3c_hsmmc_writew((dblk->boundary<<12 | 0x200), S3C_HSMMC_BLKSIZE);
++ s3c_hsmmc_writel(dblk->dma_address, S3C_HSMMC_SYSAD);
++ }
++#endif
++#endif
++ } else {
++ DBG("command FAIL : found bad irq [0x%8x]\n", intsts);
++ DBG("\n");
++ if (intsts & S3C_HSMMC_INT_CMD_MASK) {
++ s3c_hsmmc_writel((intsts & S3C_HSMMC_INT_CMD_MASK)|S3C_HSMMC_INT_RESPONSE, S3C_HSMMC_NORINTSTS);
++ s3c_hsmmc_cmd_irq(host, intsts & S3C_HSMMC_INT_CMD_MASK);
++ }
++
++ if (intsts & S3C_HSMMC_INT_DATA_MASK) {
++ s3c_hsmmc_writel(intsts & S3C_HSMMC_INT_DATA_MASK, S3C_HSMMC_NORINTSTS);
++ s3c_hsmmc_finish_command(host);
++ s3c_hsmmc_data_irq(host, intsts & S3C_HSMMC_INT_DATA_MASK);
++ }
++
++ intsts &= ~(S3C_HSMMC_INT_CMD_MASK | S3C_HSMMC_INT_DATA_MASK);
++ }
++
++ /* XXX: fix later by scsuh */
++#if 0
++ if (intsts & S3C_HSMMC_INT_BUS_POWER) {
++ printk(KERN_ERR "%s: Card is consuming too much power!\n",
++ mmc_hostname(host->mmc));
++ s3c_hsmmc_writel(S3C_HSMMC_INT_BUS_POWER, S3C_HSMMC_NORINTSTS);
++ }
++
++ intsts &= S3C_HSMMC_INT_BUS_POWER;
++
++ if (intsts) {
++ printk(KERN_ERR "%s: Unexpected interrupt 0x%08x.\n",
++ mmc_hostname(host->mmc), intsts);
++
++ s3c_hsmmc_writel(intsts, S3C_HSMMC_NORINTSTS);
++ }
++#endif
++
++#ifdef CONFIG_HSMMC_S3C_IRQ_WORKAROUND
++ for (i=0; i<0x1000; i++) {
++ if (org_irq_sts != s3c_hsmmc_readl(S3C_HSMMC_NORINTSTS))
++ break;
++ }
++#endif
++
++insert:
++ result = IRQ_HANDLED;
++ mmiowb();
++
++out:
++ spin_unlock(&host->lock);
++
++ return result;
++}
++
++static irqreturn_t s3c_hsmmc_irq_cd (int irq, void *dev_id)
++{
++ struct s3c_hsmmc_host *host = dev_id;
++ int ext_CD_int = 0;
++
++#if defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ ext_CD_int = readl(S3C2410_GPFDAT);
++ ext_CD_int &= 0x2; /* GPF1 */
++#elif defined(CONFIG_CPU_S3C6410)
++ ext_CD_int = readl(S3C_GPNDAT);
++ ext_CD_int &= 0x2000; /* GPN13 */
++#endif
++
++ if(ext_CD_int && card_detect) {
++ printk("s3c-hsmmc channel-0(EXT): card removed.\n");
++ set_irq_type(host->irq_cd, IRQT_FALLING);
++ card_detect = 0;
++ }
++ else if(!ext_CD_int && !card_detect) {
++ printk("s3c-hsmmc channel-0(EXT): card inserted.\n");
++ set_irq_type(host->irq_cd, IRQT_RISING);
++ card_detect = 1;
++ }
++ else
++ return IRQ_HANDLED;
++
++
++ tasklet_schedule(&host->card_tasklet);
++ mmiowb();
++
++ spin_unlock(&host->lock);
++
++ return IRQ_HANDLED;
++}
++
++static void s3c_hsmmc_check_status (unsigned long data)
++{
++ struct s3c_hsmmc_host *host = (struct s3c_hsmmc_host *)data;
++
++ s3c_hsmmc_irq(0, host);
++}
++
++static void s3c_hsmmc_request (struct mmc_host *mmc, struct mmc_request *mrq)
++{
++ struct s3c_hsmmc_host *host = mmc_priv(mmc);
++ unsigned long flags;
++
++ DBG("hsmmc request: [CMD] opcode:%d arg:0x%08x flags:0x%02x retries:%u\n",
++ mrq->cmd->opcode, mrq->cmd->arg, mrq->cmd->flags, mrq->cmd->retries);
++
++ spin_lock_irqsave(&host->lock, flags);
++
++ WARN_ON(host->mrq != NULL);
++
++ s3c_hsmmc_activate_led(host);
++
++ host->mrq = mrq;
++
++ if ((s3c_hsmmc_readl(S3C_HSMMC_PRNSTS) & S3C_HSMMC_CARD_PRESENT) || card_detect) {
++ s3c_hsmmc_send_command(host, mrq->cmd);
++ } else {
++ host->mrq->cmd->error = -ENOMEDIUM;
++ tasklet_schedule(&host->finish_tasklet);
++ }
++
++ mmiowb();
++ spin_unlock_irqrestore(&host->lock, flags);
++}
++
++/* return 0: OK
++ * return -1: error
++ */
++static int s3c_set_bus_width (struct s3c_hsmmc_host *host, uint width)
++{
++ u8 reg;
++
++ reg = s3c_hsmmc_readb(S3C_HSMMC_HOSTCTL);
++
++ switch (width) {
++ case MMC_BUS_WIDTH_1:
++ reg &= ~(S3C_HSMMC_CTRL_4BIT | S3C_HSMMC_CTRL_8BIT);
++ DBG("bus width: 1 bit\n");
++ break;
++
++ case MMC_BUS_WIDTH_4:
++ DBG("bus width: 4 bit\n");
++ reg &= ~(S3C_HSMMC_CTRL_8BIT);
++ reg |= S3C_HSMMC_CTRL_4BIT;
++ break;
++
++ case MMC_BUS_WIDTH_8:
++ reg |= S3C_HSMMC_CTRL_8BIT;
++ DBG("bus width: 8 bit\n");
++ break;
++
++ default:
++ DBG("bus width: Error\n");
++ return -1;
++ }
++
++ s3c_hsmmc_writeb(reg, S3C_HSMMC_HOSTCTL);
++
++ DBG("HOSTCTL(0x28) = 0x%02x\n", s3c_hsmmc_readb(S3C_HSMMC_HOSTCTL));
++
++ return 0;
++}
++
++static void s3c_hsmmc_set_clock (struct s3c_hsmmc_host *host, ulong clock)
++{
++ struct s3c_hsmmc_cfg *cfg = host->plat_data;
++ int cardtype = 0;
++ u32 val = 0, tmp_clk = 0, sel_clk = 0, i, j;
++ u16 div = (u16)-1;
++ ulong timeout;
++ u8 ctrl;
++
++ if(host->mmc->card != NULL)
++ cardtype = host->mmc->card->type;
++
++ /* if we already set, just out. */
++ if (clock == host->clock) {
++ printk("%p:host->clock0 : %d Hz\n", host->base, host->clock);
++ return;
++ }
++
++ /* before setting clock, clkcon must be disabled. */
++ s3c_hsmmc_writew(0, S3C_HSMMC_CLKCON);
++
++ s3c_hsmmc_writeb(S3C_HSMMC_TIMEOUT_MAX, S3C_HSMMC_TIMEOUTCON);
++
++ /* change the edge type according to frequency */
++ ctrl = s3c_hsmmc_readb(S3C_HSMMC_HOSTCTL);
++
++ if (cfg->highspeed)
++ ctrl |= S3C_HSMMC_CTRL_HIGHSPEED;
++ else
++ ctrl &= ~S3C_HSMMC_CTRL_HIGHSPEED;
++
++ s3c_hsmmc_writeb(ctrl, S3C_HSMMC_HOSTCTL);
++
++ if (clock == 0) {
++ DBG(" In case of 0 Hz of clock, I'm afraid DO NOTHING ..\n");
++ return;
++ }
++
++ /* calculate optimal clock. by scsuh */
++ DBG("Requested clock is %ld Hz\n", clock);
++
++ for (i = 0; i < NUM_OF_HSMMC_CLKSOURCES; i++) {
++ if ((tmp_clk = clk_get_rate(host->clk[i])) <= clock) {
++ if (tmp_clk >= val) {
++ val = tmp_clk;
++ div = 0;
++ sel_clk = i;
++ }
++ }
++
++ for (j = 0x1; j <= 0x80; j <<= 1) {
++ tmp_clk = clk_get_rate(host->clk[i]) / (j << 1);
++ if ((val < tmp_clk) && (tmp_clk <= clock)) {
++ val = tmp_clk;
++ div = j;
++ sel_clk = i;
++ break;
++ }
++ }
++ DBG(" tmp_val[%d]: %d\n", sel_clk, val);
++ }
++
++ DBG("Optimal clock : %d Hz, div: 0x%x, SelBaseclk_src: %s(%d)\n", val, div, cfg->clocks[sel_clk].name, cfg->clocks[sel_clk].src);
++
++ /* CONTROL2 */
++ s3c_hsmmc_writel(cfg->fd_ctrl[cardtype].ctrl2 | (cfg->clocks[sel_clk].src << 4), S3C_HSMMC_CONTROL2);
++
++ /* CONTROL3 */
++ if (clock > 25000000)
++ s3c_hsmmc_writel(cfg->fd_ctrl[cardtype].ctrl3[SPEED_HIGH], S3C_HSMMC_CONTROL3);
++ else
++ s3c_hsmmc_writel(cfg->fd_ctrl[cardtype].ctrl3[SPEED_NORMAL], S3C_HSMMC_CONTROL3);
++
++#if defined(CONFIG_CPU_S3C6410) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ s3c_hsmmc_writel(cfg->fd_ctrl[cardtype].ctrl4 << 16, S3C_HSMMC_CONTROL4);
++#endif
++
++ s3c_hsmmc_writew(((div<<8) | S3C_HSMMC_CLOCK_INT_EN), S3C_HSMMC_CLKCON);
++
++ timeout = 10;
++ while (!((val = s3c_hsmmc_readw(S3C_HSMMC_CLKCON))
++ & S3C_HSMMC_CLOCK_INT_STABLE)) {
++ if (!timeout) {
++ printk("HSMMC: Error in INTERNAL clock stabilization: %08x\n", val);
++ return;
++ }
++ timeout--;
++ mdelay(1);
++ }
++
++ s3c_hsmmc_writew(val | S3C_HSMMC_CLOCK_CARD_EN, S3C_HSMMC_CLKCON);
++
++//out:
++// host->clock = clock;
++// printk("%p: host->clock1 : %d\n", host->base, host->clock);
++}
++
++
++static void s3c_hsmmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
++{
++ struct s3c_hsmmc_host *host = mmc_priv(mmc);
++
++ unsigned long iflags;
++
++ spin_lock_irqsave(&host->lock, iflags);
++
++ /*
++ * Reset the chip on each power off.
++ * Should clear out any weird states.
++ */
++ if (ios->power_mode == MMC_POWER_OFF) {
++ s3c_hsmmc_writew(0, S3C_HSMMC_NORINTSIGEN);
++ s3c_hsmmc_ios_init(host);
++ }
++
++ if (host->plat_data->enabled)
++ hsmmc_set_gpio(host->plat_data->hwport, host->plat_data->bus_width);
++
++ DBG("\nios->clock: %d Hz\n", ios->clock);
++ s3c_hsmmc_set_clock(host, ios->clock);
++
++ DBG("\nios->bus_width: %d\n", ios->bus_width);
++ s3c_set_bus_width(host, ios->bus_width);
++
++ DBG("S3C_HSMMC_CONTROL2(0x80) = 0x%08x\n", s3c_hsmmc_readl(S3C_HSMMC_CONTROL2));
++ DBG("S3C_HSMMC_CONTROL3(0x84) = 0x%08x\n", s3c_hsmmc_readl(S3C_HSMMC_CONTROL3));
++ DBG("S3C_HSMMC_CLKCON (0x2c) = 0x%04x\n", s3c_hsmmc_readw(S3C_HSMMC_CLKCON));
++
++ if (ios->power_mode == MMC_POWER_OFF)
++ s3c_hsmmc_writeb(S3C_HSMMC_POWER_OFF, S3C_HSMMC_PWRCON);
++ else
++ s3c_hsmmc_writeb(S3C_HSMMC_POWER_ON_ALL, S3C_HSMMC_PWRCON);
++
++ udelay(1000);
++ spin_unlock_irqrestore(&host->lock, iflags);
++}
++
++static struct mmc_host_ops s3c_hsmmc_ops = {
++ .request = s3c_hsmmc_request,
++ .set_ios = s3c_hsmmc_set_ios,
++};
++
++static int s3c_hsmmc_probe (struct platform_device *pdev)
++{
++ struct mmc_host *mmc;
++ struct s3c_hsmmc_host *host;
++ struct s3c_hsmmc_cfg *plat_data;
++ uint i;
++ int ret;
++
++ mmc = mmc_alloc_host(sizeof(struct s3c_hsmmc_host), &pdev->dev);
++
++ if (mmc==NULL) {
++ ret = -ENOMEM;
++ printk("Failed to get mmc_alloc_host.\n");
++ return ret;
++ }
++
++ plat_data = s3c_hsmmc_get_platdata(&pdev->dev);
++
++ host = mmc_priv(mmc);
++
++ host->mmc = mmc;
++
++ host->plat_data = plat_data;
++
++ host->mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ if (!host->mem) {
++ printk("Failed to get io memory region resouce.\n");
++ ret = -ENOENT;
++ goto probe_free_host;
++ }
++
++ host->mem = request_mem_region(host->mem->start,
++ RESSIZE(host->mem), pdev->name);
++ if (!host->mem) {
++ printk("Failed to request io memory region.\n");
++ ret = -ENOENT;
++ goto probe_free_host;
++ }
++
++ host->base = ioremap(host->mem->start, (host->mem->end - host->mem->start)+1);
++ if (host->base == NULL) {
++ printk(KERN_ERR "Failed to remap register block\n");
++ return -ENOMEM;
++ }
++
++ host->irq = platform_get_irq(pdev, 0);
++ if (host->irq == 0) {
++ printk("Failed to get interrupt resouce.\n");
++ ret = -EINVAL;
++ goto untasklet;
++ }
++
++ /* To detect a card inserted on channel 0, an external interrupt is used. */
++ if ((plat_data->enabled == 1) && (plat_data->hwport == 0)) {
++ host->irq_cd = platform_get_irq(pdev, 1);
++ if (host->irq_cd == 0) {
++ printk("Failed to get interrupt resouce.\n");
++ ret = -EINVAL;
++ goto untasklet;
++ }
++#if defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ set_irq_type(host->irq_cd, IRQT_BOTHEDGE);
++#elif defined(CONFIG_CPU_S3C6410)
++ set_irq_type(host->irq_cd, IRQT_LOW);
++#endif
++ }
++
++ host->flags |= S3C_HSMMC_USE_DMA;
++
++#ifdef CONFIG_HSMMC_SCATTERGATHER
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C2443)
++ for (i=0; i<S3C_HSMMC_MAX_SUB_BUF; i++)
++ host->sub_block[i] = kmalloc(S3C_HSMMC_MALLOC_SIZE, GFP_KERNEL);
++#endif
++#endif
++
++ s3c_hsmmc_reset(host, S3C_HSMMC_RESET_ALL);
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ clk_enable(clk_get(&pdev->dev, "sclk_48m"));
++#endif
++
++ /* register some clock sources if exist */
++ for (i=0; i<NUM_OF_HSMMC_CLKSOURCES; i++) {
++ host->clk[i] = clk_get(&pdev->dev, plat_data->clocks[i].name);
++ if (IS_ERR(host->clk[i])) {
++ ret = PTR_ERR(host->clk[i]);
++ host->clk[i] = ERR_PTR(-ENOENT);
++ }
++
++ if (clk_enable(host->clk[i])) {
++ host->clk[i] = ERR_PTR(-ENOENT);
++ }
++
++ if (!IS_ERR(host->clk[i])) {
++ DBG("MMC clock source[%d], %s is %ld Hz\n",i, plat_data->clocks[i].name, clk_get_rate(host->clk[i]));
++ }
++ }
++
++ mmc->ops = &s3c_hsmmc_ops;
++ mmc->ocr_avail = MMC_VDD_32_33|MMC_VDD_33_34;
++ mmc->f_min = 400 * 1000; /* at least 400kHz */
++
++ /* you must make sure that our hsmmc block can support
++ * up to 52MHz. by scsuh
++ */
++ mmc->f_max = 100 * MHZ;
++ mmc->caps = plat_data->host_caps;
++ DBG("mmc->caps: %08x\n", mmc->caps);
++
++ spin_lock_init(&host->lock);
++
++ /*
++ * Maximum number of segments. Hardware cannot do scatter lists.
++ * XXX: must modify later. by scsuh
++ */
++#ifdef CONFIG_HSMMC_SCATTERGATHER
++ mmc->max_hw_segs = CONFIG_S3C_HSMMC_MAX_HW_SEGS;
++ mmc->max_phys_segs = CONFIG_S3C_HSMMC_MAX_HW_SEGS;
++#else
++ mmc->max_hw_segs = 1;
++#endif
++
++ /*
++ * Maximum number of sectors in one transfer. Limited by DMA boundary
++ * size (512KiB), which means (512 KiB/512=) 1024 entries.
++ */
++ //mmc->max_sectors = 128; /* 65535/512=128 */
++
++ /*
++ * Maximum segment size. Could be one segment with the maximum number
++ * of sectors.
++ */
++ mmc->max_blk_size = 512;
++ //mmc->max_seg_size = mmc->max_sectors * mmc->max_blk_size;
++ mmc->max_seg_size = 128 * mmc->max_blk_size;
++
++ //mmc->max_blk_count = mmc->max_sectors;
++ mmc->max_blk_count = 128;
++ mmc->max_req_size = mmc->max_seg_size;
++
++
++ init_timer(&host->timer);
++ host->timer.data = (unsigned long)host;
++ host->timer.function = s3c_hsmmc_check_status;
++ host->timer.expires = jiffies + HZ;
++
++ /*
++ * Init tasklets.
++ */
++ tasklet_init(&host->card_tasklet,
++ s3c_hsmmc_tasklet_card, (unsigned long)host);
++ tasklet_init(&host->finish_tasklet,
++ s3c_hsmmc_tasklet_finish, (unsigned long)host);
++
++ ret = request_irq(host->irq, s3c_hsmmc_irq, 0, DRIVER_NAME, host);
++ if (ret)
++ goto untasklet;
++
++ if ((plat_data->enabled == 1) && (plat_data->hwport == 0)) {
++ ret = request_irq(host->irq_cd, s3c_hsmmc_irq_cd, 0, DRIVER_NAME, host);
++ if (ret)
++ goto untasklet;
++ }
++
++ s3c_hsmmc_ios_init(host);
++
++ mmc_add_host(mmc);
++
++#if defined(CONFIG_PM)
++ global_host[plat_data->hwport] = host;
++#endif
++
++ printk(KERN_INFO "[s3c_hsmmc_probe]: %s.%d: at 0x%p with irq %d. clk src:",
++ pdev->name, pdev->id, host->base, host->irq);
++
++ for (i=0; i<NUM_OF_HSMMC_CLKSOURCES; i++) {
++ if (!IS_ERR(host->clk[i]))
++ printk(" %s", host->clk[i]->name);
++ }
++ printk("\n");
++
++ return 0;
++
++untasklet:
++ tasklet_kill(&host->card_tasklet);
++ tasklet_kill(&host->finish_tasklet);
++
++ for (i=0; i<NUM_OF_HSMMC_CLKSOURCES; i++) {
++ if (host->clk[i] != ERR_PTR(-ENOENT)) {
++ clk_disable(host->clk[i]);
++ clk_put(host->clk[i]);
++ }
++ }
++
++probe_free_host:
++ mmc_free_host(mmc);
++
++ return ret;
++}
++
++static int s3c_hsmmc_remove(struct platform_device *dev)
++{
++ struct mmc_host *mmc = platform_get_drvdata(dev);
++ struct s3c_hsmmc_host *host = mmc_priv(mmc);
++ int i;
++
++ mmc = host->mmc;
++
++ mmc_remove_host(mmc);
++
++ s3c_hsmmc_reset(host, S3C_HSMMC_RESET_ALL);
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ clk_disable(clk_get(&dev->dev, "sclk_48m"));
++#endif
++
++ for (i=0; i<NUM_OF_HSMMC_CLKSOURCES; i++) {
++ clk_disable(host->clk[i]);
++ clk_put(host->clk[i]);
++ }
++
++ free_irq(host->irq, host);
++
++ del_timer_sync(&host->timer);
++
++ tasklet_kill(&host->card_tasklet);
++ tasklet_kill(&host->finish_tasklet);
++
++#ifdef CONFIG_HSMMC_SCATTERGATHER
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C2443)
++ kfree(host->sub_block);
++#endif
++#endif
++ mmc_free_host(mmc);
++
++ return 0;
++}
++
++#ifdef CONFIG_PM
++static int s3c_hsmmc_suspend(struct platform_device *pdev, pm_message_t state)
++{
++// struct mmc_card *card;
++ struct s3c_hsmmc_host *s3c_host = global_host[pdev->id];
++ struct mmc_host *host = s3c_host->mmc;
++
++#if 0
++ /*
++ * Fix me later by jsgood
++ */
++ list_for_each_entry(card, &host->cards, node) {
++ if (card->state & MMC_STATE_PRESENT)
++ card->state &= ~MMC_STATE_PRESENT;
++ }
++#endif
++ mmc_suspend_host(host, state);
++
++ return 0;
++}
++
++static int s3c_hsmmc_resume(struct platform_device *pdev)
++{
++ struct s3c_hsmmc_host *s3c_host = global_host[pdev->id];
++ struct mmc_host *host = s3c_host->mmc;
++
++ s3c_hsmmc_ios_init(s3c_host);
++ mmc_resume_host(host);
++
++ return 0;
++}
++#else
++#define s3c_hsmmc_suspend NULL
++#define s3c_hsmmc_resume NULL
++#endif
++
++
++static struct platform_driver s3c_hsmmc_driver =
++{
++ .probe = s3c_hsmmc_probe,
++ .remove = s3c_hsmmc_remove,
++ .suspend = s3c_hsmmc_suspend,
++ .resume = s3c_hsmmc_resume,
++ .driver = {
++ .name = "s3c-hsmmc",
++ .owner = THIS_MODULE,
++ },
++};
++
++static int __init s3c_hsmmc_drv_init(void)
++{
++ return platform_driver_register(&s3c_hsmmc_driver);
++}
++
++static void __exit s3c_hsmmc_drv_exit(void)
++{
++ platform_driver_unregister(&s3c_hsmmc_driver);
++}
++
++
++module_init(s3c_hsmmc_drv_init);
++module_exit(s3c_hsmmc_drv_exit);
++
++
++MODULE_DESCRIPTION("S3C SD HOST I/F 1.0 and 2.0 Driver");
++MODULE_LICENSE("GPL");
++
+diff --git a/drivers/mmc/host/s3c-hsmmc.h b/drivers/mmc/host/s3c-hsmmc.h
+new file mode 100644
+index 0000000..3b3d3e4
+--- /dev/null
++++ b/drivers/mmc/host/s3c-hsmmc.h
+@@ -0,0 +1,101 @@
++/*
++ * linux/drivers/mmc/s3c-hsmmc.h - Samsung S3C HS-MMC Interface driver
++ *
++ * $Id: s3c-hsmmc.h,v 1.1 2008/03/03 00:40:28 ihlee215 Exp $
++ *
++ * Copyright (C) 2004 Thomas Kleffel, All Rights Reserved.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#ifndef MHZ
++#define MHZ (1000*1000)
++#endif
++
++#define s3c_hsmmc_readl(x) readl((host->base)+(x))
++#define s3c_hsmmc_readw(x) readw((host->base)+(x))
++#define s3c_hsmmc_readb(x) readb((host->base)+(x))
++
++#define s3c_hsmmc_writel(v,x) writel((v),(host->base)+(x))
++#define s3c_hsmmc_writew(v,x) writew((v),(host->base)+(x))
++#define s3c_hsmmc_writeb(v,x) writeb((v),(host->base)+(x))
++
++#define S3C_HSMMC_CLOCK_ON 1
++#define S3C_HSMMC_CLOCK_OFF 0
++
++#define SPEED_NORMAL 0
++#define SPEED_HIGH 1
++
++
++#ifndef CONFIG_S3C_HSMMC_MAX_HW_SEGS
++#define CONFIG_S3C_HSMMC_MAX_HW_SEGS 32
++#endif
++
++
++/* For SDMA */
++struct s3c_hsmmc_dma_blk {
++ dma_addr_t dma_address; /* dma address */
++ uint length; /* length */
++ uint boundary; /* Host DMA Buffer Boundary */
++ void *original;
++};
++
++/* For ADMA2 */
++struct s3c_hsmmc_adma_descr {
++ volatile u32 length_attr; /* length + attribute */
++ volatile u32 dma_address; /* dma address */
++} __packed;
++
++
++struct s3c_hsmmc_host {
++ void __iomem *base;
++ struct mmc_request *mrq;
++ struct mmc_command *cmd;
++ struct mmc_data *data;
++ struct mmc_host *mmc;
++ struct clk *clk[3];
++ struct resource *mem;
++
++ struct timer_list timer;
++
++ struct s3c_hsmmc_cfg *plat_data;
++
++ int irq;
++ int irq_cd;
++
++ spinlock_t lock;
++
++ struct tasklet_struct card_tasklet; /* Tasklet structures */
++ struct tasklet_struct finish_tasklet;
++
++ unsigned int clock; /* Current clock (MHz) */
++ unsigned int ctrl2;
++ unsigned int ctrl3[3]; /* 0: normal, 1: high */
++ unsigned int ctrl4;
++
++#define S3C_HSMMC_USE_DMA (1<<0)
++ int flags; /* Host attributes */
++
++ uint dma_dir;
++
++#ifdef CONFIG_HSMMC_SCATTERGATHER
++ uint sg_len; /* size of scatter list */
++
++ /* For SDMA */
++ uint dma_blk; /* total dmablk number */
++ uint next_blk; /* next block to send */
++ struct s3c_hsmmc_dma_blk dblk[CONFIG_S3C_HSMMC_MAX_HW_SEGS*4];
++
++ /* when pseudo algo cannot deal with sglist */
++#define S3C_HSMMC_MALLOC_SIZE PAGE_SIZE
++#define S3C_HSMMC_MAX_SUB_BUF CONFIG_S3C_HSMMC_MAX_HW_SEGS
++ void *sub_block[S3C_HSMMC_MAX_SUB_BUF];
++
++ /* For ADMA2 */
++ struct s3c_hsmmc_adma_descr sdma_descr_tbl[CONFIG_S3C_HSMMC_MAX_HW_SEGS];
++#endif
++
++};
++
+diff --git a/drivers/mmc/host/s3cmci.c b/drivers/mmc/host/s3cmci.c
+new file mode 100644
+index 0000000..45e603d
+--- /dev/null
++++ b/drivers/mmc/host/s3cmci.c
+@@ -0,0 +1,893 @@
++/*
++ * linux/drivers/mmc/s3cmci.c - Samsung S3C SDI Interface driver
++ *
++ * $Id: s3cmci.c,v 1.1 2008/03/03 00:40:28 ihlee215 Exp $
++ *
++ * Copyright (C) 2004 Thomas Kleffel, All Rights Reserved.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++#include <linux/config.h>
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/ioport.h>
++#include <linux/platform_device.h>
++#include <linux/delay.h>
++#include <linux/interrupt.h>
++#include <linux/dma-mapping.h>
++#include <linux/mmc/host.h>
++#include <linux/mmc/mmc.h>
++#include <linux/err.h>
++
++#include <asm/dma.h>
++#include <asm/dma-mapping.h>
++
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/scatterlist.h>
++#include <asm/sizes.h>
++#include <asm/mach/mmc.h>
++
++#include <asm/arch/registers.h>
++#include <asm/arch/clock.h>
++#include <asm/arch/dma.h>
++
++#ifdef CONFIG_S3CMCI_DEBUG
++#define DBG(x...) printk(x)
++#else
++#define DBG(x...) do { } while (0)
++#endif
++
++#include "s3cmci.h"
++
++#ifndef MHZ
++#define MHZ (1000*1000)
++#endif
++
++#define DRIVER_NAME "s3c-sdi"
++#define PFX DRIVER_NAME ": "
++
++#define RESSIZE(ressource) (((ressource)->end - (ressource)->start)+1)
++
++typedef enum {
++ DMAP_READ,
++ DMAP_WRITE,
++} eDMAPurpose_t;
++
++#ifdef CONFIG_S3CMCI_DEBUG
++uint cmd_rec[40];
++uint cmd_idx = 0;
++#endif
++
++static struct s3c_dma_client s3c_sdi_dma_client = {
++ .name = "s3c-sdi-dma",
++};
++
++/*
++ * ISR for SDI Interface IRQ
++ * Communication between driver and ISR works as follows:
++ * host->mrq points to current request
++ * host->complete_what tells the ISR when the request is considered done
++ * COMPLETION_CMDSENT when the command was sent
++ * COMPLETION_RSPFIN when a response was received
++ * COMPLETION_XFERFINISH when the data transfer is finished
++ * COMPLETION_XFERFINISH_RSPFIN both of the above.
++ * host->complete_request is the completion-object the driver waits for
++ *
++ * 1) Driver sets up host->mrq and host->complete_what
++ * 2) Driver prepares the transfer
++ * 3) Driver enables interrupts
++ * 4) Driver starts transfer
++ * 5) Driver waits for host->complete_rquest
++ * 6) ISR checks for request status (errors and success)
++ * 6) ISR sets host->mrq->cmd->error and host->mrq->data->error
++ * 7) ISR completes host->complete_request
++ * 8) ISR disables interrupts
++ * 9) Driver wakes up and takes care of the request
++ */
++
++static irqreturn_t s3c_sdi_irq(int irq, void *dev_id, struct pt_regs *regs)
++{
++ struct s3c_sdi_host *host;
++ struct mmc_request *mrq;
++ u32 sdi_csta, sdi_dsta, sdi_fsta;
++ u32 sdi_cclear, sdi_dclear;
++ unsigned long iflags;
++
++ host = (struct s3c_sdi_host *)dev_id;
++
++ /* Check for things not supposed to happen */
++ if (!host)
++ return IRQ_HANDLED;
++
++ spin_lock_irqsave( &host->complete_lock, iflags);
++
++ if ( host->complete_what==COMPLETION_NONE ) {
++ goto clear_imask;
++ }
++
++ if (!host->mrq) {
++ goto clear_imask;
++ }
++
++ mrq = host->mrq;
++
++ sdi_csta = readl(host->base + S3C_SDICSTA);
++ sdi_dsta = readl(host->base + S3C_SDIDSTA);
++ sdi_fsta = readl(host->base + S3C_SDIFSTA);
++ sdi_cclear = 0;
++ sdi_dclear = 0;
++
++ if (sdi_csta & S3C_SDICSTA_CMDTOUT) {
++ mrq->cmd->error = MMC_ERR_TIMEOUT;
++ DBG("cmd timeout\n");
++ goto transfer_closed;
++ }
++
++ if (sdi_csta & S3C_SDICSTA_CMDSENT) {
++ if (host->complete_what == COMPLETION_CMDSENT) {
++ mrq->cmd->error = MMC_ERR_NONE;
++ goto transfer_closed;
++ }
++
++ sdi_cclear |= S3C_SDICSTA_CMDSENT;
++ }
++
++ if (sdi_csta & S3C_SDICSTA_CRCFAIL) {
++ if (mrq->cmd->flags & MMC_RSP_CRC) {
++ DBG("cmd badcrc\n");
++ mrq->cmd->error = MMC_ERR_BADCRC;
++ goto transfer_closed;
++ }
++
++ sdi_cclear |= S3C_SDICSTA_CRCFAIL;
++ }
++
++ if (sdi_csta & S3C_SDICSTA_RSPFIN) {
++ if (host->complete_what == COMPLETION_RSPFIN) {
++ mrq->cmd->error = MMC_ERR_NONE;
++ goto transfer_closed;
++ }
++
++ if (host->complete_what == COMPLETION_XFERFINISH_RSPFIN) {
++ mrq->cmd->error = MMC_ERR_NONE;
++ host->complete_what = COMPLETION_XFERFINISH;
++ }
++
++ sdi_cclear |= S3C_SDICSTA_RSPFIN;
++ }
++
++ if (sdi_fsta & S3C_SDIFSTA_FIFOFAIL) {
++ printk(PFX "Unchartererd Waters ....\n");
++ mrq->cmd->error = MMC_ERR_NONE;
++ mrq->data->error = MMC_ERR_FIFO;
++ goto transfer_closed;
++ }
++
++ if (sdi_dsta & S3C_SDIDSTA_RXCRCFAIL) {
++ mrq->cmd->error = MMC_ERR_NONE;
++ mrq->data->error = MMC_ERR_BADCRC;
++ printk(PFX "crc error - RXCRCFAIL\n");
++ goto transfer_closed;
++ }
++
++ if (sdi_dsta & S3C_SDIDSTA_CRCFAIL) {
++ mrq->cmd->error = MMC_ERR_NONE;
++ mrq->data->error = MMC_ERR_BADCRC;
++ printk(PFX "crc error - TXCRCFAIL\n");
++ goto transfer_closed;
++ }
++
++ if (sdi_dsta & S3C_SDIDSTA_DATATIMEOUT) {
++ mrq->cmd->error = MMC_ERR_NONE;
++ mrq->data->error = MMC_ERR_TIMEOUT;
++#ifdef CONFIG_S3CMCI_DEBUG
++ printk(PFX "timeout(%d) - DSTA: %08x\n", mrq->cmd->opcode, readl(host->base + S3C_SDIDSTA));
++ {
++ int i;
++ printk("cmd_idx: %d\n", cmd_idx);
++ for (i=0; i<40; i++) {
++ printk("%02d: %d\n", i, cmd_rec[i]);
++ }
++ }
++#endif
++ goto transfer_closed;
++ }
++
++ if (sdi_dsta & S3C_SDIDSTA_XFERFINISH) {
++ if (host->complete_what == COMPLETION_XFERFINISH) {
++ mrq->cmd->error = MMC_ERR_NONE;
++ mrq->data->error = MMC_ERR_NONE;
++ goto transfer_closed;
++ }
++
++ if (host->complete_what == COMPLETION_XFERFINISH_RSPFIN) {
++ mrq->data->error = MMC_ERR_NONE;
++ host->complete_what = COMPLETION_RSPFIN;
++ }
++
++ sdi_dclear |= S3C_SDIDSTA_XFERFINISH;
++ }
++
++ writel(sdi_cclear, host->base + S3C_SDICSTA);
++ writel(sdi_dclear, host->base + S3C_SDIDSTA);
++
++ spin_unlock_irqrestore( &host->complete_lock, iflags);
++ DBG(PFX "IRQ still waiting.\n");
++ return IRQ_HANDLED;
++
++
++transfer_closed:
++ host->complete_what = COMPLETION_NONE;
++ complete(&host->complete_request);
++ writel(0, host->base + S3C_SDIIMSK);
++ spin_unlock_irqrestore( &host->complete_lock, iflags);
++ DBG(PFX "IRQ transfer closed.\n");
++ return IRQ_HANDLED;
++
++clear_imask:
++ writel(0, host->base + S3C_SDIIMSK);
++ spin_unlock_irqrestore( &host->complete_lock, iflags);
++ DBG(PFX "IRQ clear imask.\n");
++ return IRQ_HANDLED;
++}
++
++static void s3c_sdi_check_status(unsigned long data)
++{
++ struct s3c_sdi_host *host = (struct s3c_sdi_host *)data;
++
++ s3c_sdi_irq(0, host, NULL);
++}
++
++/*
++ * ISR for the CardDetect Pin
++ */
++static irqreturn_t s3c_sdi_irq_cd(int irq, void *dev_id, struct pt_regs *regs)
++{
++ struct s3c_sdi_host *host = (struct s3c_sdi_host *)dev_id;
++ mmc_detect_change(host->mmc, 0);
++
++ DBG(PFX "mmc device mode is changed.\n");
++ return IRQ_HANDLED;
++}
++
++#ifdef CONFIG_ARCH_MDIRAC3
++void s3c_sdi_dma_done_callback (
++ s3c_dma_subchan_t *dma_ch,
++ void *buf_id,
++ int size,
++ s3c_dma_buffresult_t result
++#else
++void s3c_sdi_dma_done_callback (
++ s3c_dma_chan_t *dma_ch,
++ void *buf_id,
++ int size,
++ s3c_dma_buffresult_t result
++)
++#endif
++{ unsigned long iflags;
++ uint sdi_dcnt;
++ struct s3c_sdi_host *host = (struct s3c_sdi_host *)buf_id;
++
++ spin_lock_irqsave( &host->complete_lock, iflags);
++
++ if (!host->mrq)
++ goto out;
++ if (!host->mrq->data)
++ goto out;
++
++ sdi_dcnt = readl(host->base + S3C_SDIDCNT);
++
++ if (result!=S3C_RES_OK)
++ goto fail_request;
++
++
++ if (host->mrq->data->flags & MMC_DATA_READ) {
++ if (sdi_dcnt > 0)
++ goto fail_request;
++ }
++
++out:
++ complete(&host->complete_dma);
++ spin_unlock_irqrestore( &host->complete_lock, iflags);
++ return;
++
++
++fail_request:
++ host->mrq->data->error = MMC_ERR_FAILED;
++ host->complete_what = COMPLETION_NONE;
++ complete(&host->complete_dma);
++ complete(&host->complete_request);
++ writel(0, host->base + S3C_SDIIMSK);
++ DBG(PFX "dma fail\n");
++ goto out;
++
++}
++
++#ifdef CONFIG_ARCH_MDIRAC3
++void s3c_sdi_dma_setup(struct s3c_sdi_host *host, eDMAPurpose_t purpose)
++{
++ int flowctrl,dest_per,src_per;
++
++ switch(purpose) {
++ case DMAP_READ:
++ dest_per = 0;
++ src_per = S3C_DMA3_SDMMC;
++ flowctrl=S3C_DMA_PER2MEM;
++ break;
++
++ case DMAP_WRITE:
++ dest_per= S3C_DMA3_SDMMC;
++ src_per = 0;
++ flowctrl=S3C_DMA_MEM2PER;
++ break;
++
++ default:
++ //add something for other type of transfers
++ // printk("coming to default statement dma transfer\n");
++ break;
++ }
++
++ s3c_dma_devconfig(host->dma,host->subchannel,flowctrl,src_per,dest_per, host->mem->start + S3C_SDIDAT);
++ s3c_dma_config(host->dma,host->subchannel, 4,4);
++ s3c_dma_set_buffdone_fn(host->dma,host->subchannel, s3c_sdi_dma_done_callback);
++ s3c_dma_setflags(host->dma,host->subchannel, S3C_DMAF_AUTOSTART);
++}
++#else
++void s3c_sdi_dma_setup(struct s3c_sdi_host *host, eDMAPurpose_t purpose)
++{
++ s3c_dmasrc_t source = 0;
++
++ switch(purpose) {
++ case DMAP_READ:
++ source = S3C_DMASRC_HW;
++ break;
++
++ case DMAP_WRITE:
++ source=S3C_DMASRC_MEM;
++ break;
++ }
++
++ s3c_dma_devconfig(host->dma, source, 3, host->mem->start + S3C_SDIDAT);
++ s3c_dma_config(host->dma, 4, 0, S3C_REQSEL_SDMMC | (1<<0));
++ s3c_dma_set_buffdone_fn(host->dma, s3c_sdi_dma_done_callback);
++ s3c_dma_setflags(host->dma, S3C_DMAF_AUTOSTART);
++}
++#endif
++
++#define RSP_TYPE(x) ((x) & ~(MMC_RSP_BUSY|MMC_RSP_OPCODE))
++
++static void s3c_sdi_request(struct mmc_host *mmc, struct mmc_request *mrq)
++{
++ struct s3c_sdi_host *host = mmc_priv(mmc);
++ u32 sdi_carg, sdi_ccon, sdi_timer, sdi_fsta;
++ u32 sdi_bsize, sdi_dcon = 0, sdi_imsk;
++ u32 dma_dir = 0;
++
++ WARN_ON(host->mrq != NULL);
++
++ DBG("#############request: [CMD] opcode:0x%02x arg:0x%08x flags:%x retries:%u\n",
++ mrq->cmd->opcode, mrq->cmd->arg, mrq->cmd->flags, mrq->cmd->retries);
++
++ host->mrq = mrq;
++
++ sdi_ccon = mrq->cmd->opcode & S3C_SDICCON_INDEX;
++ sdi_ccon|= (S3C_SDICCON_SENDERHOST | S3C_SDICCON_CMDSTART);
++
++#ifdef CONFIG_S3CMCI_DEBUG
++ {
++ cmd_rec[cmd_idx] = mrq->cmd->opcode;
++ cmd_idx++;
++ cmd_idx %= 40;
++ }
++#endif
++ sdi_carg = mrq->cmd->arg;
++
++ /* XXX: Timer value ?! */
++ sdi_timer= 0x7fffff;
++
++ sdi_bsize= 0;
++
++ /* enable interrupts for transmission errors */
++ sdi_imsk = (S3C_SDIIMSK_RESPONSEND | S3C_SDIIMSK_CRCSTATUS);
++
++ host->complete_what = COMPLETION_CMDSENT;
++
++ if (RSP_TYPE(mmc_resp_type(mrq->cmd))) {
++ host->complete_what = COMPLETION_RSPFIN;
++
++ sdi_ccon |= S3C_SDICCON_WAITRSP;
++ sdi_imsk |= S3C_SDIIMSK_CMDTIMEOUT;
++ } else {
++ /* We need the CMDSENT-Interrupt only if we want are not waiting
++ * for a response
++ */
++ sdi_imsk |= S3C_SDIIMSK_CMDSENT;
++ }
++
++ if (mrq->cmd->flags & MMC_RSP_136) {
++ sdi_ccon|= S3C_SDICCON_LONGRSP;
++ }
++
++ if (mrq->cmd->flags & MMC_RSP_CRC) {
++ sdi_imsk |= S3C_SDIIMSK_RESPONSECRC;
++ }
++
++ if (mrq->data) {
++ host->complete_what = COMPLETION_XFERFINISH_RSPFIN;
++
++ sdi_ccon|= S3C_SDICCON_WITHDATA;
++
++ sdi_bsize = mrq->data->blksz;
++
++ sdi_dcon = (mrq->data->blocks & S3C_SDIDCON_BLKNUM_MASK);
++ sdi_dcon |= S3C_SDIDCON_DMAEN;
++ sdi_dcon |= S3C_SDIDCON_WORDTX;
++
++ if (mmc->ios.bus_width == MMC_BUS_WIDTH_4) {
++ sdi_dcon |= S3C_SDIDCON_WIDEBUS;
++ }
++
++ sdi_imsk |= 0xFFFFFFE0;
++
++ DBG(PFX "request: [DAT] bsize:%u blocks:%u bytes:%u\n",
++ sdi_bsize, mrq->data->blocks, mrq->data->blocks * sdi_bsize);
++
++ if (!(mrq->data->flags & MMC_DATA_STREAM)) {
++ sdi_dcon |= S3C_SDIDCON_BLOCKMODE;
++ }
++
++ if (mrq->data->flags & MMC_DATA_WRITE) {
++ sdi_dcon |= S3C_SDIDCON_TXAFTERRESP;
++ sdi_dcon |= S3C_SDIDCON_XFER_TX;
++ sdi_dcon |= S3C_SDIDCON_DSTART;
++ s3c_sdi_dma_setup(host, DMAP_WRITE);
++ dma_dir = DMA_TO_DEVICE;
++ } else {
++ sdi_dcon |= S3C_SDIDCON_RXAFTERCMD;
++ sdi_dcon |= S3C_SDIDCON_XFER_RX;
++ sdi_dcon |= S3C_SDIDCON_DSTART;
++ s3c_sdi_dma_setup(host, DMAP_READ);
++ dma_dir = DMA_FROM_DEVICE;
++ }
++
++ sdi_fsta = S3C_SDIFSTA_FRST;
++ __raw_writel(sdi_fsta,host->base + S3C_SDIFSTA);
++
++ /* start DMA */
++ dma_map_sg(mmc_dev(mmc), mrq->data->sg, mrq->data->sg_len, dma_dir);
++ s3c_dma_enqueue(host->dma, (void *) host,
++ sg_dma_address(mrq->data->sg),
++ (mrq->data->blocks * mrq->data->blksz) );
++ }
++
++ host->mrq = mrq;
++ init_completion(&host->complete_request);
++ init_completion(&host->complete_dma);
++
++ /* Clear command and data status registers */
++ writel(0xFFFFFFFF, host->base + S3C_SDICSTA);
++ writel(0xFFFFFFFF, host->base + S3C_SDIDSTA);
++
++ /* Setup SDI controller */
++ writel(sdi_bsize,host->base + S3C_SDIBSIZE);
++ writel(sdi_timer,host->base + S3C_SDITIMER);
++ writel(sdi_imsk,host->base + S3C_SDIIMSK);
++
++ /* Setup SDI command argument and data control */
++ writel(sdi_carg, host->base + S3C_SDICARG);
++ writel(sdi_dcon, host->base + S3C_SDIDCON);
++ /* This initiates transfer */
++ writel(sdi_ccon, host->base + S3C_SDICCON);
++
++ /* this wait is very important to sd/mmc run correctly.
++ * Without this blocking code, operation sequence may be crashed.
++ * by scsuh.
++ */
++ /* Wait for transfer to complete */
++ wait_for_completion(&host->complete_request);
++ if (mrq->data && (host->mrq->data->error == MMC_ERR_NONE)) {
++ wait_for_completion(&host->complete_dma);
++ DBG("[DAT] DMA complete.\n");
++ sdi_fsta = readl(host->base + S3C_SDIFSTA);
++ writel(sdi_fsta,host->base + S3C_SDIFSTA);
++ }
++
++ /* Cleanup controller */
++ writel(0, host->base + S3C_SDICARG);
++ writel(0, host->base + S3C_SDIDCON);
++ writel(0, host->base + S3C_SDICCON);
++ writel(0, host->base + S3C_SDIIMSK);
++
++ /* Read response */
++ mrq->cmd->resp[0] = readl(host->base + S3C_SDIRSP0);
++ mrq->cmd->resp[1] = readl(host->base + S3C_SDIRSP1);
++ mrq->cmd->resp[2] = readl(host->base + S3C_SDIRSP2);
++ mrq->cmd->resp[3] = readl(host->base + S3C_SDIRSP3);
++
++ host->mrq = NULL;
++
++ DBG(PFX "request done.\n");
++
++ if (mrq->data) {
++ dma_unmap_sg(mmc_dev(mmc), mrq->data->sg, mrq->data->sg_len, dma_dir);
++
++ /* Calulate the amout of bytes transfer, but only if there was
++ * no error
++ */
++ if (mrq->data->error == MMC_ERR_NONE)
++ mrq->data->bytes_xfered = (mrq->data->blocks * mrq->data->blksz);
++ else
++ mrq->data->bytes_xfered = 0;
++
++ /* If we had an error while transfering data we flush the
++ * DMA channel to clear out any garbage
++ */
++ if (mrq->data->error != MMC_ERR_NONE) {
++#ifdef CONFIG_ARCH_MDIRAC3
++ s3c_dma_ctrl(host->dma,host->subchannel, S3C_DMAOP_FLUSH);
++#else
++ s3c_dma_ctrl(host->dma, S3C_DMAOP_FLUSH);
++#endif
++ DBG(PFX "flushing DMA.\n");
++ }
++ /* Issue stop command */
++ if (mrq->data->stop)
++ mmc_wait_for_cmd(mmc, mrq->data->stop, 3);
++ }
++
++ mrq->done(mrq);
++}
++
++static void s3c_sdi_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
++{
++ struct s3c_sdi_host *host = mmc_priv(mmc);
++ u32 sdi_psc, sdi_con = 0, sdi_fsta;
++
++ writel(0, host->base + S3C_SDICON);
++ udelay(1000);
++
++ DBG("%d, %d\n", ios->clock, ios->bus_width);
++ /* Set power */
++ switch(ios->power_mode) {
++ case MMC_POWER_ON:
++ case MMC_POWER_UP:
++#ifdef CONFIG_ARCH_S3C2460
++ gpio_set_pin(S3C_GPA8, S3C_GPA8_SDIO_CMD);
++ gpio_set_pin(S3C_GPA9, S3C_GPA9_SDIO_DAT0);
++ gpio_set_pin(S3C_GPA10, S3C_GPA10_SDIO_DAT1);
++ gpio_set_pin(S3C_GPA11, S3C_GPA11_SDIO_DAT2);
++ gpio_set_pin(S3C_GPA12, S3C_GPA12_SDIO_DAT3);
++ gpio_set_pin(S3C_GPA13, S3C_GPA13_SDIO_CLK);
++ sdi_con = S3C_SDICON_CLKTYPE_MMC | (1 << 6);
++#else
++ gpio_set_pin(S3C_GPE5, S3C_GPE5_SDCLK);
++ gpio_set_pin(S3C_GPE6, S3C_GPE6_SDCMD);
++ gpio_set_pin(S3C_GPE7, S3C_GPE7_SDDAT0);
++ gpio_set_pin(S3C_GPE8, S3C_GPE8_SDDAT1);
++ gpio_set_pin(S3C_GPE9, S3C_GPE9_SDDAT2);
++ gpio_set_pin(S3C_GPE10, S3C_GPE10_SDDAT3);
++#endif
++
++ if (mmc->mode == MMC_MODE_MMC) {
++ sdi_con = S3C_SDICON_CLKTYPE_MMC;
++ }
++ break;
++
++ case MMC_POWER_OFF:
++ default:
++ sdi_con = S3C_SDICON_RESET;
++ writel(sdi_con, host->base + S3C_SDICON);
++ while(readl(host->base + S3C_SDICON) & S3C_SDICON_RESET);
++#ifdef CONFIG_ARCH_S3C2460
++ gpio_direction_output(S3C_GPA13);
++#else
++ gpio_direction_output(S3C_GPE5);
++#endif
++ break;
++ }
++
++ sdi_fsta = S3C_SDIFSTA_FRST;
++ writel(sdi_fsta,host->base + S3C_SDIFSTA);
++
++ /* Set clock */
++ for(sdi_psc=0;sdi_psc<254;sdi_psc++) {
++ if ( (clk_get_rate(host->clk) / (sdi_psc+1)) <= ios->clock)
++ break;
++ }
++
++ if (sdi_psc > 255)
++ sdi_psc = 255;
++ writel(sdi_psc, host->base + S3C_SDIPRE);
++
++#ifdef CONFIG_S3CMCI_DEBUG
++ if (sdi_psc < 10)
++ printk(" clock is: %lu.%luMHz of %uMHz\n",
++ clk_get_rate(host->clk)/(sdi_psc+1)/1000000,
++ (clk_get_rate(host->clk)/(sdi_psc+1)/1000)%1000,
++ (ios->clock)/1000000);
++#endif
++
++ /* Only SD clock can support more than 20MHz clock.
++ * by scsuh
++ */
++ if (clk_get_rate(host->clk) / (sdi_psc+1) > 20 * MHZ)
++ sdi_con &= ~S3C_SDICON_CLKTYPE_MMC;
++
++ /* Set CLOCK_ENABLE */
++ if (ios->clock)
++ sdi_con |= S3C_SDICON_CLKENABLE;
++ else
++ sdi_con &=~S3C_SDICON_CLKENABLE;
++
++ writel(sdi_con, host->base + S3C_SDICON);
++ udelay(1000);
++}
++
++static struct mmc_host_ops s3c_sdi_ops = {
++ .request = s3c_sdi_request,
++ .set_ios = s3c_sdi_set_ios,
++};
++
++static int s3c_sdi_probe(struct platform_device *pdev)
++{
++ struct mmc_host *mmc;
++ struct s3c_sdi_host *host;
++
++ int ret;
++#ifdef CONFIG_S3C2443_EVT1
++ /* EXTINT0 S3C2443 EVT1 workaround */
++ u32 tmp;
++#endif
++
++ mmc = mmc_alloc_host(sizeof(struct s3c_sdi_host), &pdev->dev);
++ if (!mmc) {
++ ret = -ENOMEM;
++ goto probe_out;
++ }
++
++ host = mmc_priv(mmc);
++ spin_lock_init(&host->complete_lock);
++ host->complete_what = COMPLETION_NONE;
++ host->mmc = mmc;
++#ifdef CONFIG_ARCH_S3C2460
++ host->irq_cd = IRQ_EINT3;
++#elif defined(CONFIG_MACH_SMDK2443)
++ host->irq_cd = IRQ_EINT1;
++#elif defined CONFIG_MACH_SMDK2412
++ host->irq_cd = IRQ_EINT18;
++#endif
++ host->dma = S3C_SDI_DMA;
++
++ host->mem = platform_get_resource(pdev, IORESOURCE_MEM ,0);
++ if (!host->mem) {
++ printk("failed to get io memory region resource.\n");
++ ret = -ENOENT;
++ goto probe_free_host;
++ }
++
++ host->mem = request_mem_region(host->mem->start,
++ RESSIZE(host->mem), pdev->name);
++
++ if (!host->mem) {
++ printk("failed to request io memory region.\n");
++ ret = -ENOENT;
++ goto probe_free_host;
++ }
++
++ /* if there is an error here, check your SoC dependent code.
++ * You must have iotable that contains SDI in it.
++ * by scsuh.
++ */
++ host->base = S3C_VA_SDI;
++ host->irq = platform_get_irq(pdev, 0);
++
++ if (host->irq == 0) {
++ printk("failed to get interrupt resouce.\n");
++ ret = -EINVAL;
++ goto release_memory;
++ }
++
++ if (request_irq(host->irq, s3c_sdi_irq, 0, DRIVER_NAME, host)) {
++ printk("failed to request sdi interrupt.\n");
++ ret = -ENOENT;
++ goto release_memory;
++ }
++
++#if defined(CONFIG_MACH_SMDK2443)
++#ifdef CONFIG_S3C2443_EVT1
++ /* EXTINT0 S3C2443 EVT1 workaround */
++ tmp = __raw_readl(S3C_EXTINT0);
++ s3c_swap_4bit(tmp);
++ __raw_writel(tmp | (1<<7), S3C_EXTINT0);
++#endif
++ gpio_set_pin(S3C_GPF1, S3C_GPF1_EINT1);
++#elif defined(CONFIG_ARCH_S3C2460)
++ gpio_set_pin(S3C_GPJ3, S3C_GPJ3_EXT_INT3);
++#elif defined (CONFIG_MACH_SMDK2412)
++ gpio_set_pin(S3C_GPG10, S3C_GPG10_EINT18);
++#endif
++
++ set_irq_type(host->irq_cd, IRQT_BOTHEDGE);
++
++ if (request_irq(host->irq_cd, s3c_sdi_irq_cd, SA_INTERRUPT, DRIVER_NAME, host)) {
++ printk("failed to request card detect interrupt.\n" );
++ ret = -ENOENT;
++ goto probe_free_irq;
++ }
++
++ if (s3c_dma_request(S3C_SDI_DMA, &s3c_sdi_dma_client, NULL)) {
++ printk("unable to get DMA channel.\n" );
++ ret = -EBUSY;
++ goto probe_free_irq_cd;
++ }
++
++ host->clk = clk_get(&pdev->dev, "sdi");
++ if (IS_ERR(host->clk)) {
++ printk("failed to find clock source.\n");
++ ret = PTR_ERR(host->clk);
++ host->clk = NULL;
++ goto probe_free_host;
++ }
++
++ if ((ret = clk_enable(host->clk))) {
++ printk("failed to enable clock source.\n");
++ goto clk_free;
++ }
++
++ mmc->ops = &s3c_sdi_ops;
++ mmc->ocr_avail = MMC_VDD_32_33|MMC_VDD_33_34;
++ mmc->f_min = clk_get_rate(host->clk) / 512;
++ /* you must make sure that our sdmmc block can support
++ * up to 25MHz. by scsuh
++ */
++ mmc->f_max = 25 * MHZ;
++ mmc->caps = (MMC_CAP_4_BIT_DATA | MMC_CAP_MULTIWRITE);
++
++ /*
++ * Since we only have a 16-bit data length register, we must
++ * ensure that we don't exceed 2^16-1 bytes in a single request.
++ * Choose 64 (512-byte) sectors as the limit.
++ */
++ mmc->max_sectors = 64;
++
++ /*
++ * Set the maximum segment size. Since we aren't doing DMA
++ * (yet) we are only limited by the data length register.
++ */
++
++ mmc->max_seg_size = mmc->max_sectors << 9;
++ printk(KERN_INFO PFX "probe: mapped sdi_base=%p irq=%u irq_cd=%u dma=%u.\n",
++ host->base, host->irq, host->irq_cd, host->dma);
++ platform_set_drvdata(pdev, mmc);
++
++ init_timer(&host->timer);
++ host->timer.data = (unsigned long)host;
++ host->timer.function = s3c_sdi_check_status;
++ host->timer.expires = jiffies + HZ;
++
++ if ((ret = mmc_add_host(mmc))) {
++ printk(KERN_INFO PFX "failed to add mmc host.\n");
++ goto free_dmabuf;
++ }
++
++ printk(KERN_INFO PFX "initialization done.\n");
++ return 0;
++
++free_dmabuf:
++ clk_disable(host->clk);
++
++clk_free:
++ clk_put(host->clk);
++
++probe_free_irq_cd:
++ free_irq(host->irq_cd, host);
++
++probe_free_irq:
++ free_irq(host->irq, host);
++
++release_memory:
++ release_mem_region(host->mem->start, RESSIZE(host->mem));
++
++probe_free_host:
++ mmc_free_host(mmc);
++
++probe_out:
++ return ret;
++}
++
++static int s3c_sdi_remove(struct platform_device *dev)
++{
++ struct mmc_host *mmc = platform_get_drvdata(dev);
++ struct s3c_sdi_host *host = mmc_priv(mmc);
++
++ del_timer_sync(&host->timer);
++ mmc_remove_host(mmc);
++
++ clk_disable(host->clk);
++ clk_put(host->clk);
++ free_irq(host->irq_cd, host);
++ free_irq(host->irq, host);
++ mmc_free_host(mmc);
++
++ return 0;
++}
++
++#ifdef CONFIG_PM
++static int s3c_sdi_suspend(struct platform_device *dev, pm_message_t state)
++{
++ struct mmc_host *mmc = platform_get_drvdata(dev);
++ struct s3c_sdi_host *host = mmc_priv(mmc);
++ int ret = 0;
++
++ if (mmc)
++#if 0
++ mmc_remove_host(host);
++#else
++ ret = mmc_suspend_host(mmc, state);
++ s3c_dma_free(host->dma, &s3c_sdi_dma_client);
++#endif
++
++ //clk_disable(host->clk);
++ return ret;
++}
++
++static int s3c_sdi_resume(struct platform_device *dev)
++{
++ struct mmc_host *mmc = platform_get_drvdata(dev);
++ struct s3c_sdi_host *host = mmc_priv(mmc);
++ int ret = 0;
++
++#if 0
++ clk_enable(host->clk);
++ init_timer(&host->timer);
++ host->timer.data = (unsigned long)host;
++ host->timer.function = s3c_sdi_check_status;
++ host->timer.expires = jiffies + HZ;
++
++ if ((ret = mmc_add_host(mmc))) {
++ printk(KERN_INFO PFX "failed to add mmc host.\n");
++ }
++
++ printk(KERN_INFO PFX "initialization done.\n");
++#else
++ s3c_dma_request(host->dma, &s3c_sdi_dma_client, NULL);
++ if (mmc)
++ ret = mmc_resume_host(mmc);
++#endif
++
++ return ret;
++}
++#else
++#define s3c_sdi_suspend NULL
++#define s3c_sdi_resume NULL
++#endif
++
++static struct platform_driver s3c_sdi_driver =
++{
++ .probe = s3c_sdi_probe,
++ .remove = s3c_sdi_remove,
++ .suspend = s3c_sdi_suspend,
++ .resume = s3c_sdi_resume,
++ .driver = {
++ .name = "s3c-sdi",
++ },
++};
++
++static int __init s3c_sdi_init(void)
++{
++ return platform_driver_register(&s3c_sdi_driver);
++}
++
++static void __exit s3c_sdi_exit(void)
++{
++ platform_driver_unregister(&s3c_sdi_driver);
++}
++module_init(s3c_sdi_init);
++module_exit(s3c_sdi_exit);
++
++MODULE_DESCRIPTION("S3C Multimedia Card I/F Driver");
++MODULE_LICENSE("GPL");
++
+diff --git a/drivers/mmc/host/s3cmci.h b/drivers/mmc/host/s3cmci.h
+new file mode 100644
+index 0000000..d51ab02
+--- /dev/null
++++ b/drivers/mmc/host/s3cmci.h
+@@ -0,0 +1,52 @@
++/*
++ * linux/drivers/mmc/s3c2413mci.h - Samsung S3C2413 SDI Interface driver
++ *
++ * $Id: s3cmci.h,v 1.2 2007/07/17 01:37:30 ihlee215 Exp $
++ *
++ * Copyright (C) 2004 Thomas Kleffel, All Rights Reserved.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++
++#define S3C_SDI_DMA 0
++
++enum s3c_sdi_waitfor {
++ COMPLETION_NONE,
++ COMPLETION_CMDSENT,
++ COMPLETION_RSPFIN,
++ COMPLETION_XFERFINISH,
++ COMPLETION_XFERFINISH_RSPFIN,
++};
++
++struct s3c_sdi_host {
++ void __iomem *base;
++ struct mmc_request *mrq;
++ struct mmc_command *cmd;
++ struct mmc_data *data;
++ struct mmc_host *mmc;
++ struct clk *clk;
++ struct resource *mem;
++
++ unsigned int data_xfered;
++
++ struct timer_list timer;
++
++ int irq;
++ int irq_cd;
++ int dma;
++ int subchannel;
++ int dma_dir;
++
++ spinlock_t complete_lock;
++ struct completion complete_request;
++ struct completion complete_dma;
++ enum s3c_sdi_waitfor complete_what;
++
++ struct scatterlist *sg_ptr;
++ unsigned int sg_len;
++ unsigned int sg_off;
++ unsigned int size;
++};
+diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig
+index 246d451..4022302 100644
+--- a/drivers/mtd/nand/Kconfig
++++ b/drivers/mtd/nand/Kconfig
+@@ -1,5 +1,5 @@
+ # drivers/mtd/nand/Kconfig
+-# $Id: Kconfig,v 1.35 2005/11/07 11:14:30 gleixner Exp $
++# $Id: Kconfig,v 1.1.1.1 2008/02/18 02:22:57 ihlee215 Exp $
+
+ menuconfig MTD_NAND
+ tristate "NAND Device Support"
+@@ -151,6 +151,52 @@ config MTD_NAND_S3C2410_HWECC
+ incorrect ECC generation, and if using these, the default of
+ software ECC is preferable.
+
++ If you lay down a device with the hardware ECC, then you will
++ currently not be able to switch to software, as there is no
++ implementation for ECC method used by the S3C2410
++
++config MTD_NAND_S3C
++ tristate "NAND Flash support for S3C SoC"
++ depends on ARCH_S3C2410 && MTD_NAND
++ help
++ This enables the NAND flash controller on the S3C.
++
++ No board specfic support is done by this driver, each board
++ must advertise a platform_device for the driver to attach.
++
++config MTD_NAND_S3C_DEBUG
++ bool "S3C NAND driver debug"
++ depends on MTD_NAND_S3C
++ help
++ Enable debugging of the S3C NAND driver
++
++config MTD_NO_ECC_WARNING
++ bool "S3C MTD NO ECC warning"
++ depends on MTD_NAND_S3C
++ default y
++ help
++ Disable warnings when reading or writing on NO ECC Mode.
++
++config MTD_NAND_S3C_HWECC
++ bool "S3C NAND Hardware ECC"
++ depends on MTD_NAND_S3C
++ help
++ Enable the use of the S3C's internal ECC generator when
++ using NAND. Early versions of the chip have had problems with
++ incorrect ECC generation, and if using these, the default of
++ software ECC is preferable.
++
++ If you lay down a device with the hardware ECC, then you will
++ currently not be able to switch to software, as there is no
++ implementation for ECC method used by the S3C
++
++config S3C_LARGEPAGE_NAND
++ bool "Large (2K) page nand Support Enable"
++ depends on MTD_NAND_S3C
++ default n
++ help
++ S3C Large Page nand support.
++
+ config MTD_NAND_NDFC
+ tristate "NDFC NanD Flash Controller"
+ depends on 4xx && !PPC_MERGE
+diff --git a/drivers/mtd/nand/Makefile b/drivers/mtd/nand/Makefile
+index 3ad6c01..2d293c1 100644
+--- a/drivers/mtd/nand/Makefile
++++ b/drivers/mtd/nand/Makefile
+@@ -1,7 +1,7 @@
+ #
+ # linux/drivers/nand/Makefile
+ #
+-# $Id: Makefile.common,v 1.15 2004/11/26 12:28:22 dedekind Exp $
++# $Id: Makefile,v 1.1.1.1 2008/02/18 02:22:57 ihlee215 Exp $
+
+ obj-$(CONFIG_MTD_NAND) += nand.o nand_ecc.o
+ obj-$(CONFIG_MTD_NAND_IDS) += nand_ids.o
+@@ -16,6 +16,7 @@ obj-$(CONFIG_MTD_NAND_AU1550) += au1550nd.o
+ obj-$(CONFIG_MTD_NAND_BF5XX) += bf5xx_nand.o
+ obj-$(CONFIG_MTD_NAND_PPCHAMELEONEVB) += ppchameleonevb.o
+ obj-$(CONFIG_MTD_NAND_S3C2410) += s3c2410.o
++obj-$(CONFIG_MTD_NAND_S3C) += s3c_nand.o
+ obj-$(CONFIG_MTD_NAND_DISKONCHIP) += diskonchip.o
+ obj-$(CONFIG_MTD_NAND_H1900) += h1910.o
+ obj-$(CONFIG_MTD_NAND_RTC_FROM4) += rtc_from4.o
+diff --git a/drivers/mtd/nand/s3c_nand.c b/drivers/mtd/nand/s3c_nand.c
+new file mode 100644
+index 0000000..e55e90a
+--- /dev/null
++++ b/drivers/mtd/nand/s3c_nand.c
+@@ -0,0 +1,930 @@
++/* linux/drivers/mtd/nand/s3c_nand.c
++ *
++ * Copyright (c) 2007 Samsung Electronics
++ *
++ * Samsung S3C NAND driver
++ *
++ * $Id: s3c_nand.c,v 1.14 2008/09/16 07:29:25 jsgood Exp $
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ * Based on nand driver from Ben Dooks <ben@simtec.co.uk>
++ * modified by scsuh. based on au1550nd.c
++ *
++ * Many functions for hardware ecc are implemented by jsgood.
++ */
++
++/* Simple H/W Table for Implementation of S3C nand driver
++ * by scsuh
++ * ------------------------------------------------------------------
++ * | En/Dis CE | required | |
++ * | En/Dis ALE | X | * nand controller does |
++ * | En/Dis CLE | X | * nand controller does |
++ * | Wait/Ready | required | |
++ * | Write Command | required | |
++ * | Write Address | required | |
++ * | Write Data | required | |
++ * | Read Data | required | |
++ * | WP on/off | required | * board specific |
++ * | AP Specific Init | required | |
++ * ------------------------------------------------------------------
++ */
++
++#include <linux/module.h>
++#include <linux/delay.h>
++#include <linux/types.h>
++#include <linux/init.h>
++#include <linux/kernel.h>
++#include <linux/string.h>
++#include <linux/ioport.h>
++#include <linux/platform_device.h>
++#include <linux/delay.h>
++#include <linux/err.h>
++#include <linux/clk.h>
++#include <linux/jiffies.h>
++#include <linux/sched.h>
++
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/nand.h>
++#include <linux/mtd/nand_ecc.h>
++#include <linux/mtd/partitions.h>
++
++#include <asm/io.h>
++#include <asm/mach-types.h>
++
++#include <asm/plat-s3c/regs-nand.h>
++#include <asm/plat-s3c/nand.h>
++
++struct s3c_nand_info {
++ /* mtd info */
++ struct nand_hw_control controller;
++ struct s3c_nand_mtd_info *mtds;
++ struct s3c2410_platform_nand *platform;
++
++ /* device info */
++ struct device *device;
++ struct resource *area;
++ struct clk *clk;
++ void __iomem *regs;
++ void __iomem *sel_reg;
++ int sel_bit;
++ int mtd_count;
++
++ //enum s3c_cpu_type cpu_type;
++};
++static struct s3c_nand_info s3c_nand;
++
++static struct mtd_info *s3c_mtd = NULL;
++
++/* Nand flash definition values by jsgood */
++#define S3C_NAND_TYPE_UNKNOWN 0x0
++#define S3C_NAND_TYPE_SLC 0x1
++#define S3C_NAND_TYPE_MLC 0x2
++
++/*
++ * Cached progamming disabled for now, Not sure if its worth the
++ * trouble. The speed gain is not very impressive. (2.3->2.6Mib/s)
++ *
++ * if want to use cached program, define next
++ * by jsgood (modified to keep prevent rule)
++ */
++#undef CONFIG_MTD_NAND_S3C_CACHEDPROG
++
++/* Nand flash global values by jsgood */
++int cur_ecc_mode = 0;
++int nand_type = S3C_NAND_TYPE_UNKNOWN;
++
++#if defined(CONFIG_MTD_NAND_S3C_HWECC)
++/* Nand flash oob definition for SLC 512b page size by jsgood */
++static struct nand_ecclayout s3c_nand_oob_16 = {
++ .eccbytes = 4,
++ .eccpos = {1, 2, 3, 4},
++ .oobfree = {
++ {.offset = 6,
++ .length = 10}}
++};
++
++/* Nand flash oob definition for SLC 2k page size by jsgood */
++static struct nand_ecclayout s3c_nand_oob_64 = {
++ .eccbytes = 16,
++ .eccpos = {40, 41, 42, 43, 44, 45, 46, 47,
++ 48, 49, 50, 51, 52, 53, 54, 55},
++ .oobfree = {
++ {.offset = 2,
++ .length = 38}}
++};
++
++/* Nand flash oob definition for MLC 2k page size by jsgood */
++static struct nand_ecclayout s3c_nand_oob_mlc_64 = {
++ .eccbytes = 32,
++ .eccpos = {
++ 32, 33, 34, 35, 36, 37, 38, 39,
++ 40, 41, 42, 43, 44, 45, 46, 47,
++ 48, 49, 50, 51, 52, 53, 54, 55,
++ 56, 57, 58, 59, 60, 61, 62, 63},
++ .oobfree = {
++ {.offset = 2,
++ .length = 28}}
++};
++#endif
++
++#if defined(CONFIG_MTD_NAND_S3C_DEBUG)
++/*
++ * Function to print out oob buffer for debugging
++ * Written by jsgood
++ */
++void print_oob(const char *header, struct mtd_info *mtd)
++{
++ int i;
++ struct nand_chip *chip = mtd->priv;
++
++ printk("%s:\t", header);
++
++ for(i = 0; i < 64; i++)
++ printk("%02x ", chip->oob_poi[i]);
++
++ printk("\n");
++}
++EXPORT_SYMBOL(print_oob);
++#endif
++
++
++/*
++ * Hardware specific access to control-lines function
++ * Written by jsgood
++ */
++static void s3c_nand_hwcontrol(struct mtd_info *mtd, int dat, unsigned int ctrl)
++{
++ unsigned int cur;
++ void __iomem *regs = s3c_nand.regs;
++
++ if (ctrl & NAND_CTRL_CHANGE) {
++ if (ctrl & NAND_NCE) {
++ if (dat != NAND_CMD_NONE) {
++ cur = readl(regs + S3C2440_NFCONT);
++ cur &= ~S3C2412_NFCONT_nFCE0;
++ writel(cur, regs + S3C2440_NFCONT);
++ }
++ } else {
++ cur = readl(regs + S3C2440_NFCONT);
++ cur |= S3C2412_NFCONT_nFCE0;
++ writel(cur, regs + S3C2440_NFCONT);
++ }
++ }
++
++ if (dat != NAND_CMD_NONE) {
++ if (ctrl & NAND_CLE)
++ writeb(dat, regs + S3C2440_NFCMD);
++ else if (ctrl & NAND_ALE)
++ writeb(dat, regs + S3C2440_NFADDR);
++ }
++}
++
++/*
++ * Function for checking device ready pin
++ * Written by jsgood
++ */
++static int s3c_nand_device_ready(struct mtd_info *mtd)
++{
++ void __iomem *regs = s3c_nand.regs;
++/* it's to check the RnB nand signal bit and return to device ready condition in nand_base.c */
++ return ((readl(regs + S3C2412_NFSTAT) & S3C2410_NFSTAT_BUSY));
++}
++
++/*
++ * We don't use a bad block table
++ */
++static int s3c_nand_scan_bbt(struct mtd_info *mtdinfo)
++{
++ return 0;
++}
++
++#if defined(CONFIG_MTD_NAND_S3C_HWECC)
++#if 0
++/*
++ * S3C Nand flash chip enable function
++ * Written by jsgood
++ */
++static void s3c_nand_ce_on(struct mtd_info *mtd)
++{
++ struct nand_chip *chip = mtd->priv;
++
++ chip->cmd_ctrl(mtd, 0x0, NAND_NCE | NAND_CTRL_CHANGE);
++ nand_wait_ready(mtd);
++}
++
++/*
++ * S3C Nand flash chip disable function
++ * Written by jsgood
++ */
++static void s3c_nand_ce_off(struct mtd_info *mtd)
++{
++ struct nand_chip *chip = mtd->priv;
++
++ chip->cmd_ctrl(mtd, NAND_CMD_NONE, NAND_CTRL_CHANGE);
++ nand_wait_ready(mtd);
++}
++#endif
++
++/*
++ * Function for checking ECCEncDone in NFSTAT
++ * Written by jsgood
++ */
++static void s3c_nand_wait_enc(void)
++{
++ /* S3C2412 can not check S3C2412_NFSTAT_ECC_ENCDONE */
++#if defined(CONFIG_S3C2443) || defined(CONFIG_S3C6400) || defined(CONFIG_S3C2450) || defined(CONFIG_CPU_S3C2416)
++
++ void __iomem *regs = s3c_nand.regs;
++ unsigned long timeo = jiffies;
++
++ timeo += 16; /* when Hz=200, jiffies interval 1/200=5mS, waiting for 80mS 80/5 = 16 */
++
++ /* Apply this short delay always to ensure that we do wait tWB in
++ * any case on any machine. */
++
++ while (time_before(jiffies, timeo)) {
++ if (readl(regs + S3C2412_NFSTAT) & S3C2412_NFSTAT_ECC_ENCDONE)
++ break;
++ cond_resched();
++ }
++#else
++ return;
++#endif
++
++}
++
++/*
++ * Function for checking ECCDecDone in NFSTAT
++ * Written by jsgood
++ */
++static void s3c_nand_wait_dec(void)
++{
++ void __iomem *regs = s3c_nand.regs;
++ unsigned long timeo = jiffies;
++
++ timeo += 16; /* when Hz=200, jiffies interval 1/200=5mS, waiting for 80mS 80/5 = 16 */
++
++ /* Apply this short delay always to ensure that we do wait tWB in
++ * any case on any machine. */
++
++ while (time_before(jiffies, timeo)) {
++ if (readl(regs + S3C2412_NFSTAT) & S3C2412_NFSTAT_ECC_DECDONE)
++ break;
++ cond_resched();
++ }
++}
++
++/*
++ * Function for checking ECC Busy
++ * Written by jsgood
++ */
++static void s3c_nand_wait_ecc_busy(void)
++{
++ void __iomem *regs = s3c_nand.regs;
++ unsigned long timeo = jiffies;
++
++ timeo += 16; /* when Hz=200, jiffies interval 1/200=5mS, waiting for 80mS 80/5 = 16 */
++
++ /* Apply this short delay always to ensure that we do wait tWB in
++ * any case on any machine. */
++
++ while (time_before(jiffies, timeo)) {
++ if (!(readl(regs + S3C2412_NFMECC_ERR0) & S3C_NFSTAT0_ECCBUSY))
++ break;
++ cond_resched();
++ }
++}
++
++/*
++ * This function is called before encoding ecc codes to ready ecc engine.
++ * Written by jsgood
++ */
++static void s3c_nand_enable_hwecc(struct mtd_info *mtd, int mode)
++{
++ u_long nfcont;
++ u_long nfconf;
++ void __iomem *regs = s3c_nand.regs;
++
++ cur_ecc_mode = mode;
++
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416) || defined(CONFIG_CPU_S3C2412) || defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ nfconf = readl(regs + S3C2410_NFCONF);
++
++#if defined(CONFIG_CPU_S3C6410) || defined(CONFIG_CPU_S3C2450)
++ nfconf &= ~(0x3 << 23);
++
++ if (nand_type == S3C_NAND_TYPE_SLC)
++ nfconf |= S3C_NFCONF_ECC_1BIT;
++ else
++ nfconf |= S3C_NFCONF_ECC_4BIT;
++#else
++
++ if (nand_type == S3C_NAND_TYPE_SLC)
++ nfconf &= ~S3C2412_NFCONF_ECC_MLC; /* SLC */
++ else
++ nfconf |= S3C2412_NFCONF_ECC_MLC; /* MLC */
++#endif
++
++ writel(nfconf, regs + S3C2410_NFCONF);
++#endif
++ /* Init main ECC & unlock */
++ nfcont = readl(regs + S3C2440_NFCONT);
++ nfcont |= S3C_NFCONT_INITMECC;
++ nfcont &= ~S3C2412_NFCONT_MAIN_ECC_LOCK;
++
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416) || defined(CONFIG_CPU_S3C2412) || defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ if (nand_type == S3C_NAND_TYPE_MLC) {
++ if (mode == NAND_ECC_WRITE)
++ nfcont |= S3C2412_NFCONT_ECC4_DIRWR;
++ else if (mode == NAND_ECC_READ)
++ nfcont &= ~S3C2412_NFCONT_ECC4_DIRWR;
++ }
++#endif
++ writel(nfcont, regs + S3C2440_NFCONT);
++}
++
++/*
++ * This function is called immediately after encoding ecc codes.
++ * This function returns encoded ecc codes.
++ * Written by jsgood
++ */
++static int s3c_nand_calculate_ecc(struct mtd_info *mtd, const u_char *dat, u_char *ecc_code)
++{
++ u_long nfcont, nfmecc0, nfmecc1;
++ void __iomem *regs = s3c_nand.regs;
++
++ /* Lock */
++ nfcont = readl(regs + S3C2440_NFCONT);
++ nfcont |= S3C2412_NFCONT_MAIN_ECC_LOCK;
++ writel(nfcont, regs + S3C2440_NFCONT);
++
++ if (nand_type == S3C_NAND_TYPE_SLC) {
++ nfmecc0 = readl(regs + S3C2412_NFMECC0);
++
++ ecc_code[0] = nfmecc0 & 0xff;
++ ecc_code[1] = (nfmecc0 >> 8) & 0xff;
++ ecc_code[2] = (nfmecc0 >> 16) & 0xff;
++ ecc_code[3] = (nfmecc0 >> 24) & 0xff;
++ } else {
++ if (cur_ecc_mode == NAND_ECC_READ)
++ s3c_nand_wait_dec();
++ else {
++ s3c_nand_wait_enc();
++
++ nfmecc0 = readl(regs + S3C2412_NFMECC0);
++ nfmecc1 = readl(regs + S3C2412_NFMECC1);
++
++ ecc_code[0] = nfmecc0 & 0xff;
++ ecc_code[1] = (nfmecc0 >> 8) & 0xff;
++ ecc_code[2] = (nfmecc0 >> 16) & 0xff;
++ ecc_code[3] = (nfmecc0 >> 24) & 0xff;
++ ecc_code[4] = nfmecc1 & 0xff;
++ ecc_code[5] = (nfmecc1 >> 8) & 0xff;
++ ecc_code[6] = (nfmecc1 >> 16) & 0xff;
++ ecc_code[7] = (nfmecc1 >> 24) & 0xff;
++ }
++ }
++
++ return 0;
++}
++
++/*
++ * This function determines whether read data is good or not.
++ * If SLC, must write ecc codes to controller before reading status bit.
++ * If MLC, status bit is already set, so only reading is needed.
++ * If status bit is good, return 0.
++ * If correctable errors occured, do that.
++ * If uncorrectable errors occured, return -1.
++ * Written by jsgood
++ */
++static int s3c_nand_correct_data(struct mtd_info *mtd, u_char *dat, u_char *read_ecc, u_char *calc_ecc)
++{
++ int ret = -1;
++ u_long nfestat0, nfestat1, nfmeccdata0, nfmeccdata1, nfmlcbitpt;
++ u_char err_type;
++ void __iomem *regs = s3c_nand.regs;
++
++ if (!dat) {
++ printk("No page data\n");
++ return ret;
++ }
++
++ if (nand_type == S3C_NAND_TYPE_SLC) {
++ /* SLC: Write ECC data to compare */
++ nfmeccdata0 = (read_ecc[1] << 16) | read_ecc[0];
++ nfmeccdata1 = (read_ecc[3] << 16) | read_ecc[2];
++ writel(nfmeccdata0, regs + S3C2440_NFECCD0);
++ writel(nfmeccdata1, regs + S3C2440_NFECCD1);
++
++ /* Read ECC status */
++ nfestat0 = readl(regs + S3C2412_NFMECC_ERR0);
++ err_type = nfestat0 & 0x3;
++
++ switch (err_type) {
++ case 0: /* No error */
++ ret = 0;
++ break;
++
++ case 1: /* 1 bit error (Correctable)
++ (nfestat0 >> 7) & 0x7ff :error byte number
++ (nfestat0 >> 4) & 0x7 :error bit number */
++ printk("s3c-nand: 1 bit error detected at byte %ld, correcting from "
++ "0x%02x ", (nfestat0 >> 7) & 0x7ff, dat[(nfestat0 >> 7) & 0x7ff]);
++ dat[(nfestat0 >> 7) & 0x7ff] ^= (1 << ((nfestat0 >> 4) & 0x7));
++ printk("to 0x%02x...OK\n", dat[(nfestat0 >> 7) & 0x7ff]);
++ ret = 1;
++ break;
++
++ case 2: /* Multiple error */
++ case 3: /* ECC area error */
++ printk("s3c-nand: ECC uncorrectable error detected\n");
++ ret = -1;
++ break;
++ }
++ } else {
++ /* MLC: */
++ s3c_nand_wait_ecc_busy();
++
++ nfestat0 = readl(regs + S3C2412_NFMECC_ERR0);
++ nfestat1 = readl(regs + S3C2412_NFMECC_ERR1);
++ nfmlcbitpt = readl(regs + S3C_NFMLCBITPT);
++
++ err_type = (nfestat0 >> 26) & 0x7;
++
++ /* No error, If free page (all 0xff) */
++ if ((nfestat0 >> 29) & 0x1) {
++ err_type = 0;
++ } else {
++ /* No error, If all 0xff from 17th byte in oob (in case of JFFS2 format) */
++ if (dat) {
++ if (dat[17] == 0xff && dat[26] == 0xff && dat[35] == 0xff && dat[44] == 0xff && dat[54] == 0xff)
++ err_type = 0;
++ }
++ }
++
++ switch (err_type) {
++ case 5: /* Uncorrectable */
++ printk("s3c-nand: ECC uncorrectable error detected\n");
++ ret = -1;
++ break;
++
++ case 4: /* 4 bit error (Correctable) */
++ dat[(nfestat1 >> 16) & 0x3ff] ^= ((nfmlcbitpt >> 24) & 0xff);
++
++ case 3: /* 3 bit error (Correctable) */
++ dat[nfestat1 & 0x3ff] ^= ((nfmlcbitpt >> 16) & 0xff);
++
++ case 2: /* 2 bit error (Correctable) */
++ dat[(nfestat0 >> 16) & 0x3ff] ^= ((nfmlcbitpt >> 8) & 0xff);
++
++ case 1: /* 1 bit error (Correctable) */
++ printk("s3c-nand: %d bit(s) error detected, corrected successfully\n", err_type);
++ dat[nfestat0 & 0x3ff] ^= (nfmlcbitpt & 0xff);
++ ret = err_type;
++ break;
++
++ case 0: /* No error */
++ ret = 0;
++ break;
++ }
++ }
++
++ return ret;
++}
++
++static int s3c_nand_write_oob_1bit(struct mtd_info *mtd, struct nand_chip *chip,
++ int page)
++{
++ uint8_t *ecc_calc = chip->buffers->ecccalc;
++ int status = 0;
++ int eccbytes = chip->ecc.bytes;
++ int secc_start = mtd->oobsize - eccbytes;
++ int i;
++
++ chip->cmdfunc(mtd, NAND_CMD_SEQIN, mtd->writesize, page);
++
++ /* spare area */
++ chip->ecc.hwctl(mtd, NAND_ECC_WRITE);
++ chip->write_buf(mtd, chip->oob_poi, secc_start);
++ chip->ecc.calculate(mtd, 0, &ecc_calc[chip->ecc.total]);
++
++ for (i = 0; i < eccbytes; i++)
++ chip->oob_poi[secc_start + i] = ecc_calc[chip->ecc.total + i];
++
++ chip->write_buf(mtd, chip->oob_poi + secc_start, eccbytes);
++
++ /* Send command to program the OOB data */
++ chip->cmdfunc(mtd, NAND_CMD_PAGEPROG, -1, -1);
++
++ status = chip->waitfunc(mtd, chip);
++
++ return status & NAND_STATUS_FAIL ? -EIO : 0;
++}
++
++static int s3c_nand_read_oob_1bit(struct mtd_info *mtd, struct nand_chip *chip,
++ int page, int sndcmd)
++{
++ uint8_t *ecc_calc = chip->buffers->ecccalc;
++ int eccbytes = chip->ecc.bytes;
++ int secc_start = mtd->oobsize - eccbytes;
++
++ if (sndcmd) {
++ chip->cmdfunc(mtd, NAND_CMD_READOOB, 0, page);
++ sndcmd = 0;
++ }
++
++ chip->ecc.hwctl(mtd, NAND_ECC_READ);
++ chip->read_buf(mtd, chip->oob_poi, secc_start);
++ chip->ecc.calculate(mtd, 0, &ecc_calc[chip->ecc.total]);
++ chip->read_buf(mtd, chip->oob_poi + secc_start, eccbytes);
++
++ /* jffs2 special case */
++ if (!(chip->oob_poi[2] == 0x85 && chip->oob_poi[3] == 0x19))
++ chip->ecc.correct(mtd, chip->oob_poi, chip->oob_poi + secc_start, 0);
++
++ return sndcmd;
++}
++
++static void s3c_nand_write_page_1bit(struct mtd_info *mtd, struct nand_chip *chip,
++ const uint8_t *buf)
++{
++ int i, eccsize = chip->ecc.size;
++ int eccbytes = chip->ecc.bytes;
++ int eccsteps = chip->ecc.steps;
++ int secc_start = mtd->oobsize - eccbytes;
++ uint8_t *ecc_calc = chip->buffers->ecccalc;
++ const uint8_t *p = buf;
++
++ uint32_t *eccpos = chip->ecc.layout->eccpos;
++
++ /* main area */
++ for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {
++ chip->ecc.hwctl(mtd, NAND_ECC_WRITE);
++ chip->write_buf(mtd, p, eccsize);
++ chip->ecc.calculate(mtd, p, &ecc_calc[i]);
++ }
++
++ for (i = 0; i < chip->ecc.total; i++)
++ chip->oob_poi[eccpos[i]] = ecc_calc[i];
++
++ /* spare area */
++ chip->ecc.hwctl(mtd, NAND_ECC_WRITE);
++ chip->write_buf(mtd, chip->oob_poi, secc_start);
++ chip->ecc.calculate(mtd, p, &ecc_calc[chip->ecc.total]);
++
++ for (i = 0; i < eccbytes; i++)
++ chip->oob_poi[secc_start + i] = ecc_calc[chip->ecc.total + i];
++
++ chip->write_buf(mtd, chip->oob_poi + secc_start, eccbytes);
++}
++
++static int s3c_nand_read_page_1bit(struct mtd_info *mtd, struct nand_chip *chip,
++ uint8_t *buf)
++{
++ int i, stat, eccsize = chip->ecc.size;
++ int eccbytes = chip->ecc.bytes;
++ int eccsteps = chip->ecc.steps;
++ int secc_start = mtd->oobsize - eccbytes;
++ int col = 0;
++ uint8_t *p = buf;
++ uint32_t *mecc_pos = chip->ecc.layout->eccpos;
++ uint8_t *ecc_calc = chip->buffers->ecccalc;
++
++ col = mtd->writesize;
++ chip->cmdfunc(mtd, NAND_CMD_RNDOUT, col, -1);
++
++ /* spare area */
++ chip->ecc.hwctl(mtd, NAND_ECC_READ);
++ chip->read_buf(mtd, chip->oob_poi, secc_start);
++ chip->ecc.calculate(mtd, p, &ecc_calc[chip->ecc.total]);
++ chip->read_buf(mtd, chip->oob_poi + secc_start, eccbytes);
++
++ /* jffs2 special case */
++ if (!(chip->oob_poi[2] == 0x85 && chip->oob_poi[3] == 0x19))
++ chip->ecc.correct(mtd, chip->oob_poi, chip->oob_poi + secc_start, 0);
++
++ col = 0;
++
++ /* main area */
++ for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {
++ chip->cmdfunc(mtd, NAND_CMD_RNDOUT, col, -1);
++ chip->ecc.hwctl(mtd, NAND_ECC_READ);
++ chip->read_buf(mtd, p, eccsize);
++ chip->ecc.calculate(mtd, p, &ecc_calc[i]);
++
++ stat = chip->ecc.correct(mtd, p, chip->oob_poi + mecc_pos[0] + ((chip->ecc.steps - eccsteps) * eccbytes), 0);
++ if (stat == -1)
++ mtd->ecc_stats.failed++;
++
++ col = eccsize * (chip->ecc.steps + 1 - eccsteps);
++ }
++
++ return 0;
++}
++
++/*
++ * Hardware specific page read function for MLC.
++ * Written by jsgood
++ */
++static int s3c_nand_read_page_4bit(struct mtd_info *mtd, struct nand_chip *chip,
++ uint8_t *buf)
++{
++ int i, stat, eccsize = chip->ecc.size;
++ int eccbytes = chip->ecc.bytes;
++ int eccsteps = chip->ecc.steps;
++ int col = 0;
++ uint8_t *p = buf;
++ uint32_t *mecc_pos = chip->ecc.layout->eccpos;
++
++ /* Step1: read whole oob */
++ col = mtd->writesize;
++ chip->cmdfunc(mtd, NAND_CMD_RNDOUT, col, -1);
++ chip->read_buf(mtd, chip->oob_poi, mtd->oobsize);
++
++ col = 0;
++ for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {
++ chip->cmdfunc(mtd, NAND_CMD_RNDOUT, col, -1);
++ chip->ecc.hwctl(mtd, NAND_ECC_READ);
++ chip->read_buf(mtd, p, eccsize);
++ chip->write_buf(mtd, chip->oob_poi + mecc_pos[0] + ((chip->ecc.steps - eccsteps) * eccbytes), eccbytes);
++ chip->ecc.calculate(mtd, 0, 0);
++ stat = chip->ecc.correct(mtd, p, 0, 0);
++
++ if (stat == -1)
++ mtd->ecc_stats.failed++;
++
++ col = eccsize * (chip->ecc.steps + 1 - eccsteps);
++ }
++
++ return 0;
++}
++
++/*
++ * Hardware specific page write function for MLC.
++ * Written by jsgood
++ */
++static void s3c_nand_write_page_4bit(struct mtd_info *mtd, struct nand_chip *chip,
++ const uint8_t *buf)
++{
++ int i, eccsize = chip->ecc.size;
++ int eccbytes = chip->ecc.bytes;
++ int eccsteps = chip->ecc.steps;
++ const uint8_t *p = buf;
++ uint8_t *ecc_calc = chip->buffers->ecccalc;
++ uint32_t *mecc_pos = chip->ecc.layout->eccpos;
++
++ /* Step1: write main data and encode mecc */
++ for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {
++ chip->ecc.hwctl(mtd, NAND_ECC_WRITE);
++ chip->write_buf(mtd, p, eccsize);
++ chip->ecc.calculate(mtd, p, &ecc_calc[i]);
++ }
++
++ /* Step2: save encoded mecc */
++ for (i = 0; i < chip->ecc.total; i++)
++ chip->oob_poi[mecc_pos[i]] = ecc_calc[i];
++
++ chip->write_buf(mtd, chip->oob_poi, mtd->oobsize);
++}
++#endif
++
++/* s3c_nand_probe
++ *
++ * called by device layer when it finds a device matching
++ * one our driver can handled. This code checks to see if
++ * it can allocate all necessary resources then calls the
++ * nand layer to look for devices
++ */
++static int s3c_nand_probe(struct platform_device *pdev)
++{
++ struct s3c_nand_mtd_info *plat_info = pdev->dev.platform_data;
++ struct mtd_partition *partition_info = (struct mtd_partition *)plat_info->partition;
++ struct nand_chip *nand;
++ struct resource *res;
++ int err = 0;
++ int ret = 0;
++ int i, j, size;
++
++#if defined(CONFIG_MTD_NAND_S3C_HWECC)
++ struct nand_flash_dev *type = NULL;
++ u_char tmp;
++#endif
++
++ /* get the clock source and enable it */
++
++ s3c_nand.clk = clk_get(&pdev->dev, "nand");
++ if (IS_ERR(s3c_nand.clk)) {
++ dev_err(&pdev->dev, "failed to get clock");
++ err = -ENOENT;
++ goto exit_error;
++ }
++
++ clk_enable(s3c_nand.clk);
++
++ /* allocate and map the resource */
++
++ /* currently we assume we have the one resource */
++ res = pdev->resource;
++ size = res->end - res->start + 1;
++
++ s3c_nand.area = request_mem_region(res->start, size, pdev->name);
++
++ if (s3c_nand.area == NULL) {
++ dev_err(&pdev->dev, "cannot reserve register region\n");
++ err = -ENOENT;
++ goto exit_error;
++ }
++
++ s3c_nand.device = &pdev->dev;
++ s3c_nand.regs = ioremap(res->start, size);
++
++ if (s3c_nand.regs == NULL) {
++ dev_err(&pdev->dev, "cannot reserve register region\n");
++ err = -EIO;
++ goto exit_error;
++ }
++
++ /* allocate memory for MTD device structure and private data */
++ s3c_mtd = kmalloc(sizeof(struct mtd_info) + sizeof(struct nand_chip), GFP_KERNEL);
++
++ if (!s3c_mtd) {
++ printk("Unable to allocate NAND MTD dev structure.\n");
++ return -ENOMEM;
++ }
++
++ /* Get pointer to private data */
++ nand = (struct nand_chip *) (&s3c_mtd[1]);
++
++ /* Initialize structures */
++ memset((char *) s3c_mtd, 0, sizeof(struct mtd_info));
++ memset((char *) nand, 0, sizeof(struct nand_chip));
++
++ /* Link the private data with the MTD structure */
++ s3c_mtd->priv = nand;
++
++ for (i = 0; i < plat_info->chip_nr; i++) {
++ nand->IO_ADDR_R = (char *)(s3c_nand.regs+S3C2440_NFDATA);
++ nand->IO_ADDR_W = (char *)(s3c_nand.regs+S3C2440_NFDATA);
++ nand->cmd_ctrl = s3c_nand_hwcontrol;
++ nand->dev_ready = s3c_nand_device_ready;
++ nand->scan_bbt = s3c_nand_scan_bbt;
++ nand->options = 0;
++
++#if defined(CONFIG_MTD_NAND_S3C_CACHEDPROG)
++ nand->options |= NAND_CACHEPRG;
++#endif
++
++#if defined(CONFIG_MTD_NAND_S3C_HWECC)
++ nand->ecc.mode = NAND_ECC_HW;
++ nand->ecc.hwctl = s3c_nand_enable_hwecc;
++ nand->ecc.calculate = s3c_nand_calculate_ecc;
++ nand->ecc.correct = s3c_nand_correct_data;
++
++ s3c_nand_hwcontrol(0, NAND_CMD_READID, NAND_NCE | NAND_CLE | NAND_CTRL_CHANGE);
++ s3c_nand_hwcontrol(0, 0x00, NAND_CTRL_CHANGE | NAND_NCE | NAND_ALE);
++ s3c_nand_hwcontrol(0, 0x00, NAND_NCE | NAND_ALE);
++ s3c_nand_hwcontrol(0, NAND_CMD_NONE, NAND_NCE | NAND_CTRL_CHANGE);
++ s3c_nand_device_ready(0);
++
++ tmp = readb(nand->IO_ADDR_R); /* Maf. ID */
++ tmp = readb(nand->IO_ADDR_R); /* Device ID */
++
++ for (j = 0; nand_flash_ids[j].name != NULL; j++) {
++ if (tmp == nand_flash_ids[j].id) {
++ type = &nand_flash_ids[j];
++ break;
++ }
++ }
++
++ if (!type) {
++ printk("Unknown NAND Device.\n");
++ goto exit_error;
++ }
++
++ nand->cellinfo = readb(nand->IO_ADDR_R); /* 3rd byte */
++ tmp = readb(nand->IO_ADDR_R); /* 4th byte */
++
++ if (!type->pagesize) {
++ if (((nand->cellinfo >> 2) & 0x3) == 0) {
++ nand_type = S3C_NAND_TYPE_SLC;
++ nand->ecc.size = 512;
++ nand->ecc.bytes = 4;
++
++ if ((1024 << (tmp & 0x3)) > 512) {
++ nand->ecc.read_page = s3c_nand_read_page_1bit;
++ nand->ecc.write_page = s3c_nand_write_page_1bit;
++ nand->ecc.read_oob = s3c_nand_read_oob_1bit;
++ nand->ecc.write_oob = s3c_nand_write_oob_1bit;
++ nand->ecc.layout = &s3c_nand_oob_64;
++ } else {
++ nand->ecc.layout = &s3c_nand_oob_16;
++ }
++ } else {
++ nand_type = S3C_NAND_TYPE_MLC;
++ nand->options |= NAND_NO_SUBPAGE_WRITE; /* NOP = 1 if MLC */
++ nand->ecc.read_page = s3c_nand_read_page_4bit;
++ nand->ecc.write_page = s3c_nand_write_page_4bit;
++ nand->ecc.size = 512;
++ nand->ecc.bytes = 8; /* really 7 bytes */
++ nand->ecc.layout = &s3c_nand_oob_mlc_64;
++ }
++ } else {
++ nand_type = S3C_NAND_TYPE_SLC;
++ nand->ecc.size = 512;
++ nand->cellinfo = 0;
++ nand->ecc.bytes = 4;
++ nand->ecc.layout = &s3c_nand_oob_16;
++ }
++
++ printk("S3C NAND Driver is using hardware ECC.\n");
++#else
++ nand->ecc.mode = NAND_ECC_SOFT;
++ printk("S3C NAND Driver is using software ECC.\n");
++#endif
++ if (nand_scan(s3c_mtd, 1)) {
++ ret = -ENXIO;
++ goto exit_error;
++ }
++
++ /* Register the partitions */
++ add_mtd_partitions(s3c_mtd, partition_info, plat_info->mtd_part_nr);
++ }
++
++ pr_debug("initialized ok\n");
++ return 0;
++
++exit_error:
++ kfree(s3c_mtd);
++
++ return ret;
++}
++
++
++/* PM Support */
++#if defined(CONFIG_PM)
++static int s3c_nand_suspend(struct platform_device *dev, pm_message_t pm)
++{
++
++ return 0;
++}
++
++static int s3c_nand_resume(struct platform_device *dev)
++{
++
++ return 0;
++}
++
++#else
++#define s3c_nand_suspend NULL
++#define s3c_nand_resume NULL
++#endif
++
++/* device management functions */
++static int s3c_nand_remove(struct platform_device *dev)
++{
++ platform_set_drvdata(dev, NULL);
++
++ return 0;
++}
++
++static struct platform_driver s3c_nand_driver = {
++ .probe = s3c_nand_probe,
++ .remove = s3c_nand_remove,
++ .suspend = s3c_nand_suspend,
++ .resume = s3c_nand_resume,
++ .driver = {
++ .name = "s3c-nand",
++ .owner = THIS_MODULE,
++ },
++};
++
++static int __init s3c_nand_init(void)
++{
++ printk("S3C NAND Driver, (c) 2007 Samsung Electronics\n");
++ return platform_driver_register(&s3c_nand_driver);
++}
++
++static void __exit s3c_nand_exit(void)
++{
++ platform_driver_unregister(&s3c_nand_driver);
++}
++
++module_init(s3c_nand_init);
++module_exit(s3c_nand_exit);
++
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("Jinsung Yang <jsgood.yang@samsung.com>");
++MODULE_DESCRIPTION("S3C MTD NAND driver");
+diff --git a/drivers/mtd/onenand/Makefile b/drivers/mtd/onenand/Makefile
+index 4d2eacf..f77301f 100644
+--- a/drivers/mtd/onenand/Makefile
++++ b/drivers/mtd/onenand/Makefile
+@@ -3,7 +3,7 @@
+ #
+
+ # Core functionality.
+-obj-$(CONFIG_MTD_ONENAND) += onenand.o
++obj-$(CONFIG_MTD_ONENAND) += onenand.o onenand_bbt.o
+
+ # Board specific.
+ obj-$(CONFIG_MTD_ONENAND_GENERIC) += generic.o
+@@ -11,4 +11,10 @@ obj-$(CONFIG_MTD_ONENAND_GENERIC) += generic.o
+ # Simulator
+ obj-$(CONFIG_MTD_ONENAND_SIM) += onenand_sim.o
+
+-onenand-objs = onenand_base.o onenand_bbt.o
++ifeq ($(CONFIG_CPU_S3C6400),y)
++onenand-objs = s3c_onenand.o
++else ifeq ($(CONFIG_CPU_S3C6410),y)
++onenand-objs = s3c_onenand.o
++else
++onenand-objs = onenand_base.o
++endif
+diff --git a/drivers/mtd/onenand/onenand_bbt.c b/drivers/mtd/onenand/onenand_bbt.c
+index aecdd50..58993c3 100644
+--- a/drivers/mtd/onenand/onenand_bbt.c
++++ b/drivers/mtd/onenand/onenand_bbt.c
+@@ -13,9 +13,15 @@
+ */
+
+ #include <linux/slab.h>
+-#include <linux/mtd/mtd.h>
++#include <linux/mtd/mtd.h>
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++#include "s3c_onenand.h"
++#else
+ #include <linux/mtd/onenand.h>
+-#include <linux/mtd/compatmac.h>
++#endif
++
++#include <linux/mtd/compatmac.h>
+
+ extern int onenand_bbt_read_oob(struct mtd_info *mtd, loff_t from,
+ struct mtd_oob_ops *ops);
+diff --git a/drivers/mtd/onenand/s3c_onenand.c b/drivers/mtd/onenand/s3c_onenand.c
+new file mode 100644
+index 0000000..3de2f14
+--- /dev/null
++++ b/drivers/mtd/onenand/s3c_onenand.c
+@@ -0,0 +1,2636 @@
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/sched.h>
++#include <linux/interrupt.h>
++#include <linux/jiffies.h>
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/partitions.h>
++
++#include <asm/io.h>
++#include <asm/arch/regs-s3c-clock.h>
++
++#include <linux/dma-mapping.h>
++#include "s3c_onenand.h"
++
++#undef CONFIG_MTD_ONENAND_CHECK_SPEED
++#undef DEBUG_ONENAND
++
++#ifdef CONFIG_MTD_ONENAND_CHECK_SPEED
++#include <asm/arch/regs-gpio.h>
++#endif
++
++#ifdef DEBUG_ONENAND
++#define dbg(x...) printk(x)
++#else
++#define dbg(x...) do { } while (0)
++#endif
++
++#if defined(CONFIG_CPU_S3C6400)
++#define onenand_phys_to_virt(x) (void __iomem *)(chip->dev_base + (x & 0xffffff))
++#define onenand_virt_to_phys(x) (void __iomem *)(ONENAND_AHB_ADDR + (x & 0xffffff))
++#else
++#define onenand_phys_to_virt(x) (void __iomem *)(chip->dev_base + (x & 0x3ffffff))
++#define onenand_virt_to_phys(x) (void __iomem *)(ONENAND_AHB_ADDR + (x & 0x3ffffff))
++#endif
++
++/**
++ * onenand_oob_64 - oob info for large (2KB) page
++ */
++static struct nand_ecclayout onenand_oob_64 = {
++ .eccbytes = 20,
++ .eccpos = {
++ 8, 9, 10, 11, 12,
++ 24, 25, 26, 27, 28,
++ 40, 41, 42, 43, 44,
++ 56, 57, 58, 59, 60,
++ },
++
++ /* For YAFFS2 tag information */
++ .oobfree = {
++ {2, 6}, {13, 3}, {18, 6}, {29, 3},
++ {34, 6}, {45, 3}, {50, 6}, {61, 3}}
++#if 0
++ .oobfree = {
++ {2, 6}, {14, 2}, {18, 6}, {30, 2},
++ {34, 6}, {46, 2}, {50, 6}}
++
++ .oobfree = {
++ {2, 3}, {14, 2}, {18, 3}, {30, 2},
++ {34, 3}, {46, 2}, {50, 3}, {62, 2}
++ }
++#endif
++};
++
++/**
++ * onenand_oob_32 - oob info for middle (1KB) page
++ */
++static struct nand_ecclayout onenand_oob_32 = {
++ .eccbytes = 10,
++ .eccpos = {
++ 8, 9, 10, 11, 12,
++ 24, 25, 26, 27, 28,
++ },
++ .oobfree = { {2, 3}, {14, 2}, {18, 3}, {30, 2} }
++};
++
++static const unsigned char ffchars[] = {
++ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
++ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 16 */
++ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
++ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 32 */
++ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
++ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 48 */
++ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
++ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 64 */
++};
++
++static int onenand_write_oob_nolock(struct mtd_info *mtd, loff_t to, struct mtd_oob_ops *ops);
++
++
++#ifdef CONFIG_MTD_ONENAND_VERIFY_WRITE
++static int onenand_verify_oob(struct mtd_info *mtd, const u_char *buf, loff_t to, size_t len);
++static int onenand_verify_ops(struct mtd_info *mtd, struct mtd_oob_ops *ops, loff_t to, size_t len);
++#endif
++
++/**
++ * dma client
++ */
++static struct s3c2410_dma_client s3c6400onenand_dma_client = {
++ .name = "s3c6400-onenand-dma",
++};
++
++static unsigned int onenand_readl(void __iomem *addr)
++{
++ return readl(addr);
++}
++
++static void onenand_writel(unsigned int value, void __iomem *addr)
++{
++ writel(value, addr);
++}
++
++static void onenand_irq_wait(struct onenand_chip *chip, int stat)
++{
++ while (!chip->read(chip->base + ONENAND_REG_INT_ERR_STAT) & stat);
++}
++
++static void onenand_irq_ack(struct onenand_chip *chip, int stat)
++{
++ chip->write(stat, chip->base + ONENAND_REG_INT_ERR_ACK);
++}
++
++static int onenand_irq_pend(struct onenand_chip *chip, int stat)
++{
++ return (chip->read(chip->base + ONENAND_REG_INT_ERR_STAT) & stat);
++}
++
++static void onenand_irq_wait_ack(struct onenand_chip *chip, int stat)
++{
++ onenand_irq_wait(chip, stat);
++ onenand_irq_ack(chip, stat);
++}
++
++static int onenand_blkrw_complete(struct onenand_chip *chip, int cmd)
++{
++ int cmp_bit = 0, fail_bit = 0, ret = 0;
++
++ if (cmd == ONENAND_CMD_READ) {
++ cmp_bit = ONENAND_INT_ERR_LOAD_CMP;
++ fail_bit = ONENAND_INT_ERR_LD_FAIL_ECC_ERR;
++ } else if (cmd == ONENAND_CMD_PROG) {
++ cmp_bit = ONENAND_INT_ERR_PGM_CMP;
++ fail_bit = ONENAND_INT_ERR_PGM_FAIL;
++ } else {
++ ret = 1;
++ }
++
++ onenand_irq_wait_ack(chip, ONENAND_INT_ERR_INT_ACT);
++ onenand_irq_wait_ack(chip, ONENAND_INT_ERR_BLK_RW_CMP);
++ onenand_irq_wait_ack(chip, cmp_bit);
++
++ if (onenand_irq_pend(chip, fail_bit)) {
++ onenand_irq_ack(chip, fail_bit);
++ ret = 1;
++ }
++
++ return ret;
++}
++
++/**
++ * onenand_read_burst
++ *
++ * 16 Burst read: performance is improved up to 40%.
++ */
++static void onenand_read_burst(void *dest, const void *src, size_t len)
++{
++ int count;
++
++ if (len % 16 != 0)
++ return;
++
++ count = len / 16;
++
++ __asm__ __volatile__(
++ " stmdb r13!, {r0-r3,r9-r12}\n"
++ " mov r2, %0\n"
++ "read_page:\n"
++ " ldmia r1, {r9-r12}\n"
++ " stmia r0!, {r9-r12}\n"
++ " subs r2, r2, #0x1\n"
++ " bne read_page\n"
++ " ldmia r13!, {r0-r3,r9-r12}\n"
++ ::"r" (count));
++}
++
++/**
++ *
++ * onenand_dma_finish
++ *
++ */
++void onenand_dma_finish(struct s3c2410_dma_chan *dma_ch, void *buf_id,
++ int size, enum s3c2410_dma_buffresult result)
++{
++ struct onenand_chip *chip = (struct onenand_chip *) buf_id;
++ complete(chip->done);
++}
++
++/**
++ *
++ * onenand_read_dma
++ *
++ */
++#if 1
++static void onenand_read_dma(struct onenand_chip *chip, unsigned int *dst, void __iomem *src, size_t len)
++{
++ void __iomem *phys_addr = onenand_virt_to_phys((u_int) src);
++
++ DECLARE_COMPLETION_ONSTACK(complete);
++ chip->done = &complete;
++
++#if 0
++ if (s3c_dma_request(chip->dma, chip->dma_ch, &s3c6400onenand_dma_client, NULL)) {
++ printk(KERN_WARNING "Unable to get DMA channel.\n");
++ return;
++ }
++
++ s3c_dma_set_buffdone_fn(chip->dma, chip->dma_ch, onenand_dma_finish);
++ s3c_dma_devconfig(chip->dma, chip->dma_ch, S3C_DMA_MEM2MEM, 1, 0, (u_long) phys_addr);
++ s3c_dma_config(chip->dma, chip->dma_ch, ONENAND_DMA_TRANSFER_WORD, ONENAND_DMA_TRANSFER_WORD);
++ s3c_dma_setflags(chip->dma, chip->dma_ch, S3C2410_DMAF_AUTOSTART);
++ consistent_sync((void *) dst, len, DMA_FROM_DEVICE);
++ s3c_dma_enqueue(chip->dma, chip->dma_ch, (void *) chip, (dma_addr_t) virt_to_dma(NULL, dst), len);
++
++ wait_for_completion(&complete);
++
++ s3c_dma_free(chip->dma, chip->dma_ch, &s3c6400onenand_dma_client);
++#else
++ if (s3c2410_dma_request(DMACH_ONENAND_IN, &s3c6400onenand_dma_client, NULL)) {
++ printk(KERN_WARNING "Unable to get DMA channel.\n");
++ return;
++ }
++
++ s3c2410_dma_set_buffdone_fn(DMACH_ONENAND_IN, onenand_dma_finish);
++ s3c2410_dma_devconfig(DMACH_ONENAND_IN, S3C_DMA_MEM2MEM_P, 1, (u_long) phys_addr);
++ s3c2410_dma_config(DMACH_ONENAND_IN, ONENAND_DMA_TRANSFER_WORD, ONENAND_DMA_TRANSFER_WORD);
++ s3c2410_dma_setflags(DMACH_ONENAND_IN, S3C2410_DMAF_AUTOSTART);
++ dma_cache_maint((void *) dst, len, DMA_FROM_DEVICE);
++ s3c2410_dma_enqueue(DMACH_ONENAND_IN, (void *) chip, (dma_addr_t) virt_to_dma(NULL, dst), len);
++
++ wait_for_completion(&complete);
++
++ s3c2410_dma_free(DMACH_ONENAND_IN, &s3c6400onenand_dma_client);
++#endif
++}
++#else
++extern s3c_dma_mainchan_t s3c_mainchans[S3C_DMA_CONTROLLERS];
++extern void s3c_enable_dmac(unsigned int channel);
++extern void s3c_disable_dmac(unsigned int channel);
++static void onenand_read_dma(struct onenand_chip *chip, unsigned int *dst, void __iomem *src, size_t len)
++{
++ s3c_dma_mainchan_t *mainchan = &s3c_mainchans[chip->dma];
++ void __iomem *phys_addr = onenand_virt_to_phys((u_int) src);
++
++ s3c_enable_dmac(chip->dma);
++ s3c_dma_set_buffdone_fn(chip->dma, chip->dma_ch, onenand_dma_finish);
++ s3c_dma_devconfig(chip->dma, chip->dma_ch, S3C_DMA_MEM2MEM_P, 1, 0, (u_long) phys_addr);
++ s3c_dma_config(chip->dma, chip->dma_ch, ONENAND_DMA_TRANSFER_WORD, ONENAND_DMA_TRANSFER_WORD);
++ s3c_dma_setflags(chip->dma, chip->dma_ch, S3C_DMAF_AUTOSTART);
++ consistent_sync((void *) dst, len, DMA_FROM_DEVICE);
++ s3c_dma_enqueue(chip->dma, chip->dma_ch, (void *) chip, (dma_addr_t) virt_to_dma(NULL, dst), len);
++
++ while (readl(mainchan->regs + S3C_DMAC_ENBLD_CHANNELS) & (1 << chip->dma_ch));
++
++ s3c_dma_ctrl(chip->dma, chip->dma_ch, S3C_DMAOP_STOP);
++ s3c_disable_dmac(chip->dma);
++}
++#endif
++
++/**
++ * onenand_command_map - [DEFAULT] Get command type
++ * @param cmd command
++ * @return command type (00, 01, 10, 11)
++ *
++ */
++static int onenand_command_map(int cmd)
++{
++ int type = ONENAND_CMD_MAP_FF;
++
++ switch (cmd) {
++ case ONENAND_CMD_READ:
++ case ONENAND_CMD_READOOB:
++ case ONENAND_CMD_PROG:
++ case ONENAND_CMD_PROGOOB:
++ type = ONENAND_CMD_MAP_01;
++ break;
++
++ case ONENAND_CMD_UNLOCK:
++ case ONENAND_CMD_LOCK:
++ case ONENAND_CMD_LOCK_TIGHT:
++ case ONENAND_CMD_UNLOCK_ALL:
++ case ONENAND_CMD_ERASE:
++ case ONENAND_CMD_OTP_ACCESS:
++ case ONENAND_CMD_PIPELINE_READ:
++ case ONENAND_CMD_PIPELINE_WRITE:
++ type = ONENAND_CMD_MAP_10;
++ break;
++
++ case ONENAND_CMD_RESET:
++ case ONENAND_CMD_READID:
++ type = ONENAND_CMD_MAP_11;
++ break;
++ default:
++ type = ONENAND_CMD_MAP_FF;
++ break;
++ }
++
++ return type;
++}
++
++/**
++ * onenand_addr_field - [DEFAULT] Generate address field
++ * @param dev_id device id
++ * @param fba block number
++ * @param fpa page number
++ * @param fsa sector number
++ * @return address field
++ *
++ * Refer to Table 7-1 MEM_ADDR Fields in S3C6400/10 User's Manual
++ */
++#if defined(CONFIG_CPU_S3C6400)
++static u_int onenand_addr_field(int dev_id, int fba, int fpa, int fsa)
++{
++ u_int mem_addr = 0;
++ int ddp, density;
++
++ ddp = dev_id & ONENAND_DEVICE_IS_DDP;
++ density = dev_id >> ONENAND_DEVICE_DENSITY_SHIFT;
++
++ switch (density & 0xf) {
++ case ONENAND_DEVICE_DENSITY_128Mb:
++ mem_addr = (((fba & ONENAND_FBA_MASK_128Mb) << ONENAND_FBA_SHIFT_128Mb) | \
++ ((fpa & ONENAND_FPA_MASK) << ONENAND_FPA_SHIFT_128Mb) | \
++ (fsa << ONENAND_FSA_SHIFT));
++ break;
++
++ case ONENAND_DEVICE_DENSITY_256Mb:
++ mem_addr = (((fba & ONENAND_FBA_MASK_256Mb) << ONENAND_FBA_SHIFT_256Mb) | \
++ ((fpa & ONENAND_FPA_MASK) << ONENAND_FPA_SHIFT_256Mb) | \
++ (fsa << ONENAND_FSA_SHIFT));
++ break;
++
++ case ONENAND_DEVICE_DENSITY_512Mb:
++ mem_addr = (((fba & ONENAND_FBA_MASK_512Mb) << ONENAND_FBA_SHIFT_512Mb) | \
++ ((fpa & ONENAND_FPA_MASK) << ONENAND_FPA_SHIFT_512Mb) | \
++ ((fsa & ONENAND_FSA_MASK) << ONENAND_FSA_SHIFT));
++ break;
++
++ case ONENAND_DEVICE_DENSITY_1Gb:
++ if (ddp) {
++ mem_addr = ((ddp << ONENAND_DDP_SHIFT_1Gb) | \
++ ((fba & ONENAND_FBA_MASK_1Gb_DDP) << ONENAND_FBA_SHIFT_1Gb_DDP) | \
++ ((fpa & ONENAND_FPA_MASK) << ONENAND_FPA_SHIFT_1Gb_DDP) | \
++ ((fsa & ONENAND_FSA_MASK) << ONENAND_FSA_SHIFT));
++ } else {
++ mem_addr = (((fba & ONENAND_FBA_MASK_1Gb) << ONENAND_FBA_SHIFT_1Gb) | \
++ ((fpa & ONENAND_FPA_MASK) << ONENAND_FPA_SHIFT_1Gb) | \
++ ((fsa & ONENAND_FSA_MASK) << ONENAND_FSA_SHIFT));
++ }
++
++ break;
++
++ case ONENAND_DEVICE_DENSITY_2Gb:
++ if (ddp) {
++ mem_addr = ((ddp << ONENAND_DDP_SHIFT_2Gb) | \
++ ((fba & ONENAND_FBA_MASK_2Gb_DDP) << ONENAND_FBA_SHIFT_2Gb_DDP) | \
++ ((fpa & ONENAND_FPA_MASK) << ONENAND_FPA_SHIFT_2Gb_DDP) | \
++ ((fsa & ONENAND_FSA_MASK) << ONENAND_FSA_SHIFT));
++ } else {
++ mem_addr = (((fba & ONENAND_FBA_MASK_2Gb) << ONENAND_FBA_SHIFT_2Gb) | \
++ ((fpa & ONENAND_FPA_MASK) << ONENAND_FPA_SHIFT_2Gb) | \
++ ((fsa & ONENAND_FSA_MASK) << ONENAND_FSA_SHIFT));
++ }
++
++ break;
++
++ case ONENAND_DEVICE_DENSITY_4Gb:
++ if (ddp) {
++ mem_addr = ((ddp << ONENAND_DDP_SHIFT_4Gb) | \
++ ((fba & ONENAND_FBA_MASK_4Gb_DDP) << ONENAND_FBA_SHIFT_4Gb_DDP) | \
++ ((fpa & ONENAND_FPA_MASK) << ONENAND_FPA_SHIFT_4Gb_DDP) | \
++ ((fsa & ONENAND_FSA_MASK) << ONENAND_FSA_SHIFT));
++ } else {
++ mem_addr = (((fba & ONENAND_FBA_MASK_4Gb) << ONENAND_FBA_SHIFT_4Gb) | \
++ ((fpa & ONENAND_FPA_MASK) << ONENAND_FPA_SHIFT_4Gb) | \
++ ((fsa & ONENAND_FSA_MASK) << ONENAND_FSA_SHIFT));
++ }
++
++ break;
++ }
++
++ return mem_addr;
++}
++#else
++static u_int onenand_addr_field(int dev_id, int fba, int fpa, int fsa)
++{
++ u_int mem_addr = 0;
++ int ddp, density;
++
++ ddp = dev_id & ONENAND_DEVICE_IS_DDP;
++ density = dev_id >> ONENAND_DEVICE_DENSITY_SHIFT;
++
++ switch (density & 0xf) {
++ case ONENAND_DEVICE_DENSITY_128Mb:
++ mem_addr = (((fba & ONENAND_FBA_MASK_128Mb) << ONENAND_FBA_SHIFT) | \
++ ((fpa & ONENAND_FPA_MASK) << ONENAND_FPA_SHIFT) | \
++ (fsa << ONENAND_FSA_SHIFT));
++ break;
++
++ case ONENAND_DEVICE_DENSITY_256Mb:
++ mem_addr = (((fba & ONENAND_FBA_MASK_256Mb) << ONENAND_FBA_SHIFT) | \
++ ((fpa & ONENAND_FPA_MASK) << ONENAND_FPA_SHIFT) | \
++ (fsa << ONENAND_FSA_SHIFT));
++ break;
++
++ case ONENAND_DEVICE_DENSITY_512Mb:
++ mem_addr = (((fba & ONENAND_FBA_MASK_512Mb) << ONENAND_FBA_SHIFT) | \
++ ((fpa & ONENAND_FPA_MASK) << ONENAND_FPA_SHIFT) | \
++ ((fsa & ONENAND_FSA_MASK) << ONENAND_FSA_SHIFT));
++ break;
++
++ case ONENAND_DEVICE_DENSITY_1Gb:
++ if (ddp) {
++ mem_addr = ((ddp << ONENAND_DDP_SHIFT_1Gb) | \
++ ((fba & ONENAND_FBA_MASK_1Gb_DDP) << ONENAND_FBA_SHIFT) | \
++ ((fpa & ONENAND_FPA_MASK) << ONENAND_FPA_SHIFT) | \
++ ((fsa & ONENAND_FSA_MASK) << ONENAND_FSA_SHIFT));
++ } else {
++ mem_addr = (((fba & ONENAND_FBA_MASK_1Gb) << ONENAND_FBA_SHIFT) | \
++ ((fpa & ONENAND_FPA_MASK) << ONENAND_FPA_SHIFT) | \
++ ((fsa & ONENAND_FSA_MASK) << ONENAND_FSA_SHIFT));
++ }
++
++ break;
++
++ case ONENAND_DEVICE_DENSITY_2Gb:
++ if (ddp) {
++ mem_addr = ((ddp << ONENAND_DDP_SHIFT_2Gb) | \
++ ((fba & ONENAND_FBA_MASK_2Gb_DDP) << ONENAND_FBA_SHIFT) | \
++ ((fpa & ONENAND_FPA_MASK) << ONENAND_FPA_SHIFT) | \
++ ((fsa & ONENAND_FSA_MASK) << ONENAND_FSA_SHIFT));
++ } else {
++ mem_addr = (((fba & ONENAND_FBA_MASK_2Gb) << ONENAND_FBA_SHIFT) | \
++ ((fpa & ONENAND_FPA_MASK) << ONENAND_FPA_SHIFT) | \
++ ((fsa & ONENAND_FSA_MASK) << ONENAND_FSA_SHIFT));
++ }
++
++ break;
++
++ case ONENAND_DEVICE_DENSITY_4Gb:
++ if (ddp) {
++ mem_addr = ((ddp << ONENAND_DDP_SHIFT_1Gb) | \
++ ((fba & ONENAND_FBA_MASK_4Gb_DDP) << ONENAND_FBA_SHIFT) | \
++ ((fpa & ONENAND_FPA_MASK) << ONENAND_FPA_SHIFT) | \
++ ((fsa & ONENAND_FSA_MASK) << ONENAND_FSA_SHIFT));
++ } else {
++ mem_addr = (((fba & ONENAND_FBA_MASK_4Gb) << ONENAND_FBA_SHIFT) | \
++ ((fpa & ONENAND_FPA_MASK) << ONENAND_FPA_SHIFT) | \
++ ((fsa & ONENAND_FSA_MASK) << ONENAND_FSA_SHIFT));
++ }
++
++ break;
++ }
++
++ return mem_addr;
++}
++#endif
++
++/**
++ * onenand_command_address - [DEFAULT] Generate command address
++ * @param mtd MTD device structure
++ * @param cmd_type command type
++ * @param fba block number
++ * @param fpa page number
++ * @param fsa sector number
++ * @param onenand_addr onenand device address to access directly (command 00/11)
++ * @return command address
++ *
++ * Refer to 'Command Mapping' in S3C6400/10 User's Manual
++ */
++static u_int onenand_command_address(struct mtd_info *mtd, int cmd_type, int fba, int fpa, int fsa, int onenand_addr)
++{
++ struct onenand_chip *chip = mtd->priv;
++ u_int cmd_addr = (ONENAND_AHB_ADDR | (cmd_type << ONENAND_CMD_SHIFT));
++ int dev_id;
++
++ dev_id = chip->read(chip->base + ONENAND_REG_DEVICE_ID);
++
++ switch (cmd_type) {
++ case ONENAND_CMD_MAP_00:
++ cmd_addr |= ((onenand_addr & 0xffff) << 1);
++ break;
++
++ case ONENAND_CMD_MAP_01:
++ case ONENAND_CMD_MAP_10:
++ cmd_addr |= (onenand_addr_field(dev_id, fba, fpa, fsa) & ONENAND_MEM_ADDR_MASK);
++ break;
++
++ case ONENAND_CMD_MAP_11:
++ cmd_addr |= ((onenand_addr & 0xffff) << 2);
++ break;
++
++ default:
++ cmd_addr = 0;
++ break;
++ }
++
++ return cmd_addr;
++}
++
++/**
++ * onenand_command - [DEFAULT] Generate command address
++ * @param mtd MTD device structure
++ * @param cmd command
++ * @param addr onenand device address
++ * @return command address
++ *
++ */
++static u_int onenand_command(struct mtd_info *mtd, int cmd, loff_t addr)
++{
++ struct onenand_chip *chip = mtd->priv;
++ int sectors = 4, onenand_addr = -1;
++ int cmd_type, fba = 0, fpa = 0, fsa = 0, page;
++ u_int cmd_addr;
++
++ cmd_type = onenand_command_map(cmd);
++
++ switch (cmd) {
++ case ONENAND_CMD_UNLOCK:
++ case ONENAND_CMD_UNLOCK_ALL:
++ case ONENAND_CMD_LOCK:
++ case ONENAND_CMD_LOCK_TIGHT:
++ case ONENAND_CMD_ERASE:
++ fba = (int) (addr >> chip->erase_shift);
++ page = -1;
++ break;
++
++ default:
++ fba = (int) (addr >> chip->erase_shift);
++ page = (int) (addr >> chip->page_shift);
++ page &= chip->page_mask;
++ fpa = page & ONENAND_FPA_MASK;
++ fsa = sectors & ONENAND_FSA_MASK;
++ break;
++ }
++
++ cmd_addr = onenand_command_address(mtd, cmd_type, fba, fpa, fsa, onenand_addr);
++
++ if (!cmd_addr) {
++ printk("Command address mapping failed\n");
++ return -1;
++ }
++
++ return cmd_addr;
++}
++
++static int onenand_get_device(struct mtd_info *mtd, int new_state)
++{
++/* disable now: future work */
++#if 0
++ struct onenand_chip *chip = mtd->priv;
++ DECLARE_WAITQUEUE(wait, current);
++
++ /*
++ * Grab the lock and see if the device is available
++ */
++ while (1) {
++ spin_lock(&chip->chip_lock);
++ if (chip->state == FL_READY) {
++ chip->state = new_state;
++ spin_unlock(&chip->chip_lock);
++ break;
++ }
++ if (new_state == FL_PM_SUSPENDED) {
++ spin_unlock(&chip->chip_lock);
++ return (chip->state == FL_PM_SUSPENDED) ? 0 : -EAGAIN;
++ }
++ set_current_state(TASK_UNINTERRUPTIBLE);
++ add_wait_queue(&chip->wq, &wait);
++ spin_unlock(&chip->chip_lock);
++ schedule();
++ remove_wait_queue(&chip->wq, &wait);
++ }
++#endif
++ return 0;
++}
++
++/**
++ * onenand_release_device - [GENERIC] release chip
++ * @param mtd MTD device structure
++ *
++ * Deselect, release chip lock and wake up anyone waiting on the device
++ */
++static void onenand_release_device(struct mtd_info *mtd)
++{
++/* disable now: future work */
++#if 0
++ struct onenand_chip *chip = mtd->priv;
++
++ /* Release the chip */
++ spin_lock(&chip->chip_lock);
++ chip->state = FL_READY;
++ wake_up(&chip->wq);
++ spin_unlock(&chip->chip_lock);
++#endif
++}
++
++/**
++ * onenand_bbt_read_oob - [MTD Interface] OneNAND read out-of-band for bbt scan
++ * @param mtd MTD device structure
++ * @param from offset to read from
++ * @param ops oob operation description structure
++ *
++ * OneNAND read out-of-band data from the spare area for bbt scan
++ */
++int onenand_bbt_read_oob(struct mtd_info *mtd, loff_t from,
++ struct mtd_oob_ops *ops)
++{
++ struct onenand_chip *chip = mtd->priv;
++ void __iomem *cmd_addr;
++ int i;
++ size_t len = ops->ooblen;
++ u_char *buf = ops->oobbuf;
++ u_int bbinfo;
++ u_char *bb_poi = (u_char *)&bbinfo;
++
++ DEBUG(MTD_DEBUG_LEVEL3, "onenand_bbt_read_oob: from = 0x%08x, len = %zi\n", (unsigned int) from, len);
++
++ /* Initialize return value */
++ ops->oobretlen = 0;
++
++ /* Do not allow reads past end of device */
++ if (unlikely((from + len) > mtd->size)) {
++ printk(KERN_ERR "onenand_bbt_read_oob: Attempt read beyond end of device\n");
++ return ONENAND_BBT_READ_FATAL_ERROR;
++ }
++
++ /* Grab the lock and see if the device is available */
++ onenand_get_device(mtd, FL_READING);
++
++ /* on the TRANSFER SPARE bit */
++ chip->write(ONENAND_TRANS_SPARE_TSRF_INC, chip->base + ONENAND_REG_TRANS_SPARE);
++
++ /* get start address to read data */
++ cmd_addr = onenand_phys_to_virt(chip->command(mtd, ONENAND_CMD_READ, from));
++
++ switch (chip->options & ONENAND_READ_MASK) {
++ case ONENAND_READ_BURST:
++ onenand_read_burst((u_int *)chip->page_buf, cmd_addr, mtd->writesize);
++ onenand_read_burst((u_int *)chip->oob_buf, cmd_addr, mtd->oobsize);
++ buf[0] = chip->oob_buf[0];
++ buf[1] = chip->oob_buf[1];
++ break;
++
++ case ONENAND_READ_DMA:
++ onenand_read_dma(chip, (u_int *)chip->page_buf, cmd_addr, mtd->writesize);
++ onenand_read_dma(chip, (u_int *)chip->oob_buf, cmd_addr, mtd->oobsize);
++ buf[0] = chip->oob_buf[0];
++ buf[1] = chip->oob_buf[1];
++ break;
++
++ case ONENAND_READ_POLLING:
++ /* read main data and throw into garbage box */
++ for (i = 0; i < (mtd->writesize / 4); i++)
++ chip->read(cmd_addr);
++
++ /* read first 4 bytes of spare data */
++ bbinfo = chip->read(cmd_addr);
++ buf[0] = bb_poi[0];
++ buf[1] = bb_poi[1];
++
++ for (i = 0; i < (mtd->oobsize / 4) - 1; i++)
++ chip->read(cmd_addr);
++ break;
++ }
++
++ onenand_blkrw_complete(chip, ONENAND_CMD_READ);
++
++ /* off the TRANSFER SPARE bit */
++ chip->write(~ONENAND_TRANS_SPARE_TSRF_INC, chip->base + ONENAND_REG_TRANS_SPARE);
++
++ /* Deselect and wake up anyone waiting on the device */
++ onenand_release_device(mtd);
++
++ ops->oobretlen = len;
++ return 0;
++}
++
++/**
++ * onenand_block_isbad_nolock - [GENERIC] Check if a block is marked bad
++ * @param mtd MTD device structure
++ * @param ofs offset from device start
++ * @param allowbbt 1, if its allowed to access the bbt area
++ *
++ * Check, if the block is bad. Either by reading the bad block table or
++ * calling of the scan function.
++ */
++static int onenand_block_isbad_nolock(struct mtd_info *mtd, loff_t ofs, int allowbbt)
++{
++ struct onenand_chip *chip = mtd->priv;
++
++ if (chip->options & ONENAND_CHECK_BAD) {
++ struct bbm_info *bbm = chip->bbm;
++
++ /* Return info from the table */
++ return bbm->isbad_bbt(mtd, ofs, allowbbt);
++ } else
++ return 0;
++}
++
++/**
++ * onenand_block_isbad - [MTD Interface] Check whether the block at the given offset is bad
++ * @param mtd MTD device structure
++ * @param ofs offset relative to mtd start
++ *
++ * Check whether the block is bad
++ */
++static int onenand_block_isbad(struct mtd_info *mtd, loff_t ofs)
++{
++ /* Check for invalid offset */
++ if (ofs > mtd->size)
++ return -EINVAL;
++
++ return onenand_block_isbad_nolock(mtd, ofs, 0);
++}
++
++/**
++ * onenand_default_block_markbad - [DEFAULT] mark a block bad
++ * @param mtd MTD device structure
++ * @param ofs offset from device start
++ *
++ * This is the default implementation, which can be overridden by
++ * a hardware specific driver.
++ */
++static int onenand_default_block_markbad(struct mtd_info *mtd, loff_t ofs)
++{
++ struct onenand_chip *this = mtd->priv;
++ struct bbm_info *bbm = this->bbm;
++ u_char buf[2] = {0, 0};
++ int block;
++ struct mtd_oob_ops ops = {
++ .mode = MTD_OOB_PLACE,
++ .ooblen = 2,
++ .oobbuf = buf,
++ .ooboffs = 0,
++ };
++
++ /* Get block number */
++ block = ((int) ofs) >> bbm->bbt_erase_shift;
++ if (bbm->bbt)
++ bbm->bbt[block >> 2] |= 0x01 << ((block & 0x03) << 1);
++
++ /* We write two bytes, so we dont have to mess with 16 bit access */
++ ofs += mtd->oobsize + (bbm->badblockpos & ~0x01);
++ return onenand_write_oob_nolock(mtd, ofs, &ops);
++}
++
++
++/**
++ * onenand_set_pipeline - [MTD Interface] Set pipeline ahead
++ * @param mtd MTD device structure
++ * @param from offset to read from
++ * @param len number of bytes to read
++ *
++ */
++static int onenand_set_pipeline(struct mtd_info *mtd, loff_t from, size_t len)
++{
++ struct onenand_chip *chip = mtd->priv;
++ int page_cnt = (int) (len >> chip->page_shift);
++ void __iomem *cmd_addr;
++
++ if (len % mtd->writesize > 0)
++ page_cnt++;
++
++ if (page_cnt > 1) {
++ cmd_addr = onenand_phys_to_virt(chip->command(mtd, ONENAND_CMD_PIPELINE_READ, from));
++ chip->write(ONENAND_DATAIN_PIPELINE_READ | page_cnt, cmd_addr);
++ }
++
++ return 0;
++}
++
++/**
++ * onenand_read - [MTD Interface] Read data from flash
++ * @param mtd MTD device structure
++ * @param from offset to read from
++ * @param len number of bytes to read
++ * @param retlen pointer to variable to store the number of read bytes
++ * @param buf the databuffer to put data
++ *
++ */
++static int onenand_read(struct mtd_info *mtd, loff_t from, size_t len,
++ size_t *retlen, u_char *buf)
++{
++ struct onenand_chip *chip = mtd->priv;
++ struct mtd_ecc_stats stats;
++ int i, ret = 0, read = 0, col, thislen;
++ u_int *buf_poi = (u_int *) chip->page_buf;
++ void __iomem *cmd_addr;
++
++ DEBUG(MTD_DEBUG_LEVEL3, "onenand_read: from = 0x%08x, len = %i, col = %i\n", (unsigned int) from, (int) len, (int) col);
++
++ /* Do not allow reads past end of device */
++ if ((from + len) > mtd->size) {
++ DEBUG(MTD_DEBUG_LEVEL3, "onenand_read: Attempt read beyond end of device\n");
++ *retlen = 0;
++ return -EINVAL;
++ }
++
++ /* Grab the lock and see if the device is available */
++ onenand_get_device(mtd, FL_READING);
++
++ /* TODO handling oob */
++ stats = mtd->ecc_stats;
++
++ /* column (start offset to read) */
++ col = (int)(from & (mtd->writesize - 1));
++
++ if (chip->options & ONENAND_PIPELINE_AHEAD)
++ onenand_set_pipeline(mtd, from, len);
++
++#ifdef CONFIG_MTD_ONENAND_CHECK_SPEED
++ if (len > 100000) {
++ writel((readl(S3C_GPNCON) & ~(0x3 << 30)) | (0x1 << 30), S3C_GPNCON);
++ writel(1 << 15, S3C_GPNDAT);
++ }
++#endif
++
++ //while (!ret) {
++ while (1) {
++ if (chip->options & ONENAND_CHECK_BAD) {
++ if (onenand_block_isbad(mtd, from)) {
++ printk (KERN_WARNING "\nonenand_read: skipped to read from a bad block at addr 0x%08x.\n", (unsigned int) from);
++ from += (1 << chip->erase_shift);
++
++ if (col != 0)
++ col = (int)(from & (mtd->writesize - 1));
++
++ continue;
++ }
++ }
++
++ /* get start address to read data */
++ cmd_addr = onenand_phys_to_virt(chip->command(mtd, ONENAND_CMD_READ, from));
++
++ switch (chip->options & ONENAND_READ_MASK) {
++ case ONENAND_READ_BURST:
++ onenand_read_burst(buf_poi, cmd_addr, mtd->writesize);
++ break;
++
++ case ONENAND_READ_DMA:
++ onenand_read_dma(chip, buf_poi, cmd_addr, mtd->writesize);
++ break;
++
++ case ONENAND_READ_POLLING:
++ for (i = 0; i < (mtd->writesize / 4); i++)
++ *buf_poi++ = chip->read(cmd_addr);
++
++ buf_poi -= (mtd->writesize / 4);
++ break;
++
++ default:
++ printk("onenand_read: read mode undefined.\n");
++ return -1;
++ }
++
++ if (onenand_blkrw_complete(chip, ONENAND_CMD_READ)) {
++ printk(KERN_WARNING "onenand_read: Read operation failed:0x%08x.\n", (unsigned int)from);
++#if 0
++ return -1;
++#endif
++ }
++
++ thislen = min_t(int, mtd->writesize - col, len - read);
++ memcpy(buf, chip->page_buf + col, thislen);
++
++ read += thislen;
++
++ if (read == len)
++ break;
++
++ buf += thislen;
++ from += mtd->writesize;
++ col = 0;
++ }
++
++#ifdef CONFIG_MTD_ONENAND_CHECK_SPEED
++ if (len > 100000) {
++ printk("len: %d\n", len);
++ writel(0 << 15, S3C_GPNDAT);
++ }
++#endif
++
++ /* Deselect and wake up anyone waiting on the device */
++ onenand_release_device(mtd);
++
++ /*
++ * Return success, if no ECC failures, else -EBADMSG
++ * fs driver will take care of that, because
++ * retlen == desired len and result == -EBADMSG
++ */
++ *retlen = read;
++
++ if (mtd->ecc_stats.failed - stats.failed)
++ return -EBADMSG;
++
++ if (ret)
++ return ret;
++
++ return mtd->ecc_stats.corrected - stats.corrected ? -EUCLEAN : 0;
++}
++
++/**
++ * onenand_transfer_auto_oob - [Internal] oob auto-placement transfer
++ * @param mtd MTD device structure
++ * @param buf destination address
++ * @param column oob offset to read from
++ * @param thislen oob length to read
++ */
++static int onenand_transfer_auto_oob(struct mtd_info *mtd, uint8_t *buf, int column,
++ int thislen)
++{
++ struct onenand_chip *chip = mtd->priv;
++ struct nand_oobfree *free;
++ int readcol = column;
++ int readend = column + thislen;
++ int lastgap = 0;
++ uint8_t *oob_buf = chip->oob_buf;
++
++ for (free = chip->ecclayout->oobfree; free->length; ++free) {
++ if (readcol >= lastgap)
++ readcol += free->offset - lastgap;
++ if (readend >= lastgap)
++ readend += free->offset - lastgap;
++ lastgap = free->offset + free->length;
++ }
++
++ for (free = chip->ecclayout->oobfree; free->length; ++free) {
++ int free_end = free->offset + free->length;
++ if (free->offset < readend && free_end > readcol) {
++ int st = max_t(int,free->offset,readcol);
++ int ed = min_t(int,free_end,readend);
++ int n = ed - st;
++ memcpy(buf, oob_buf + st, n);
++ buf += n;
++ } else
++ break;
++ }
++ return 0;
++}
++
++
++/**
++ * onenand_read_ops_nolock - [OneNAND Interface] OneNAND read main and/or out-of-band
++ * @param mtd MTD device structure
++ * @param from offset to read from
++ * @param ops: oob operation description structure
++ *
++ * OneNAND read main and/or out-of-band data
++ */
++static int onenand_read_ops_nolock(struct mtd_info *mtd, loff_t from, struct mtd_oob_ops *ops)
++{
++ struct onenand_chip *chip = mtd->priv;
++ int read = 0, thislen, column, oobsize;
++ int i, ret = 0;
++ void __iomem *cmd_addr;
++ u_int *buf_poi, *dbuf_poi;
++
++ int len = ops->ooblen;
++ u_char *buf = ops->datbuf;
++ u_char *sparebuf = ops->oobbuf;
++
++ DEBUG(MTD_DEBUG_LEVEL3, "onenand_read_ops_nolock: from = 0x%08x, len = %i\n", (unsigned int) from, (int) len);
++
++ /* Initialize return length value */
++ ops->retlen = 0;
++ ops->oobretlen = 0;
++
++ if (ops->mode == MTD_OOB_AUTO)
++ oobsize = chip->ecclayout->oobavail;
++ else
++ oobsize = mtd->oobsize;
++
++ column = from & (mtd->oobsize - 1);
++
++ if (unlikely(column >= oobsize)) {
++ printk(KERN_ERR "onenand_read_ops_nolock: Attempted to start read outside oob\n");
++ return -EINVAL;
++ }
++
++ /* Do not allow reads past end of device */
++ if (unlikely(from >= mtd->size ||
++ column + len > ((mtd->size >> chip->page_shift) -
++ (from >> chip->page_shift)) * oobsize)) {
++ printk(KERN_ERR "onenand_read_ops_nolock: Attempted to read beyond end of device\n");
++ return -EINVAL;
++ }
++
++ /* Grab the lock and see if the device is available */
++ onenand_get_device(mtd, FL_READING);
++
++ dbuf_poi = (u_int *)buf;
++
++ if (chip->options & ONENAND_PIPELINE_AHEAD)
++ onenand_set_pipeline(mtd, from, len);
++
++ /* on the TRANSFER SPARE bit */
++ chip->write(ONENAND_TRANS_SPARE_TSRF_INC, chip->base + ONENAND_REG_TRANS_SPARE);
++
++ while (read < len) {
++ if (chip->options & ONENAND_CHECK_BAD) {
++ if (onenand_block_isbad(mtd, from)) {
++ printk (KERN_WARNING "onenand_read_ops_nolock: skipped to read oob from a bad block at addr 0x%08x.\n", (unsigned int) from);
++ from += (1 << chip->erase_shift);
++
++ if (column != 0)
++ column = from & (mtd->oobsize - 1);
++
++ continue;
++ }
++ }
++
++ /* get start address to read data */
++ cmd_addr = onenand_phys_to_virt(chip->command(mtd, ONENAND_CMD_READ, from));
++
++ thislen = oobsize - column;
++ thislen = min_t(int, thislen, len);
++
++ //if (ops->mode == MTD_OOB_AUTO)
++ buf_poi = (u_int *)chip->oob_buf;
++ //else
++ //buf_poi = (u_int *)buf;
++
++ switch (chip->options & ONENAND_READ_MASK) {
++ case ONENAND_READ_BURST:
++ onenand_read_burst(dbuf_poi, cmd_addr, mtd->writesize);
++ onenand_read_burst(buf_poi, cmd_addr, mtd->oobsize);
++ break;
++
++ case ONENAND_READ_DMA:
++ onenand_read_dma(chip, dbuf_poi, cmd_addr, mtd->writesize);
++ onenand_read_dma(chip, buf_poi, cmd_addr, mtd->oobsize);
++ break;
++
++ case ONENAND_READ_POLLING:
++ /* read main data and throw into garbage box */
++ for (i = 0; i < (mtd->writesize / 4); i++)
++ *dbuf_poi = chip->read(cmd_addr);
++
++ /* read spare data */
++ for (i = 0; i < (mtd->oobsize / 4); i++)
++ *buf_poi++ = chip->read(cmd_addr);
++
++ break;
++ }
++
++ if (onenand_blkrw_complete(chip, ONENAND_CMD_READ)) {
++ printk(KERN_WARNING "onenand_read_ops_nolock: Read operation failed:0x%x\n", (unsigned int)from);
++#if 0
++ chip->write(~ONENAND_TRANS_SPARE_TSRF_INC, chip->base + ONENAND_REG_TRANS_SPARE);
++ return -1;
++#endif
++ }
++
++ if (ops->mode == MTD_OOB_AUTO)
++ onenand_transfer_auto_oob(mtd, sparebuf, column, thislen);
++
++ read += thislen;
++
++ if (read == len)
++ break;
++
++ buf += thislen;
++
++ /* Read more? */
++ if (read < len) {
++ /* Page size */
++ from += mtd->writesize;
++ column = 0;
++ }
++ }
++
++ /* off the TRANSFER SPARE bit */
++ chip->write(~ONENAND_TRANS_SPARE_TSRF_INC, chip->base + ONENAND_REG_TRANS_SPARE);
++
++ /* Deselect and wake up anyone waiting on the device */
++ onenand_release_device(mtd);
++
++ ops->retlen = mtd->writesize;
++ ops->oobretlen = read;
++
++ return ret;
++}
++
++
++/**
++ * onenand_read_oob_nolock - [MTD Interface] OneNAND read out-of-band
++ * @param mtd MTD device structure
++ * @param from offset to read from
++ * @param ops: oob operation description structure
++ *
++ * OneNAND read out-of-band data from the spare area
++ */
++static int onenand_read_oob_nolock(struct mtd_info *mtd, loff_t from, struct mtd_oob_ops *ops)
++{
++ struct onenand_chip *chip = mtd->priv;
++ int read = 0, thislen, column, oobsize;
++ int i, ret = 0;
++ void __iomem *cmd_addr;
++ u_int *buf_poi;
++
++ size_t len = ops->ooblen;
++ mtd_oob_mode_t mode = ops->mode;
++ u_char *buf = ops->oobbuf;
++
++ DEBUG(MTD_DEBUG_LEVEL3, "onenand_read_oob_nolock: from = 0x%08x, len = %i\n", (unsigned int) from, (int) len);
++
++ /* Initialize return length value */
++ ops->oobretlen = 0;
++
++ if (mode == MTD_OOB_AUTO)
++ oobsize = chip->ecclayout->oobavail;
++ else
++ oobsize = mtd->oobsize;
++
++ column = from & (mtd->oobsize - 1);
++
++ if (unlikely(column >= oobsize)) {
++ printk(KERN_ERR "onenand_read_oob_nolock: Attempted to start read outside oob\n");
++ return -EINVAL;
++ }
++
++ /* Do not allow reads past end of device */
++ if (unlikely(from >= mtd->size ||
++ column + len > ((mtd->size >> chip->page_shift) -
++ (from >> chip->page_shift)) * oobsize)) {
++ printk(KERN_ERR "onenand_read_oob_nolock: Attempted to read beyond end of device\n");
++ return -EINVAL;
++ }
++
++ /* Grab the lock and see if the device is available */
++ onenand_get_device(mtd, FL_READING);
++
++ if (chip->options & ONENAND_PIPELINE_AHEAD)
++ onenand_set_pipeline(mtd, from, len);
++
++ /* on the TRANSFER SPARE bit */
++ chip->write(ONENAND_TRANS_SPARE_TSRF_INC, chip->base + ONENAND_REG_TRANS_SPARE);
++
++ while (read < len) {
++ if (chip->options & ONENAND_CHECK_BAD) {
++ if (onenand_block_isbad(mtd, from)) {
++ printk (KERN_WARNING "\nonenand_do_read_oob: skipped to read oob from a bad block at addr 0x%08x.\n", (unsigned int) from);
++ from += (1 << chip->erase_shift);
++
++ if (column != 0)
++ column = from & (mtd->oobsize - 1);
++
++ continue;
++ }
++ }
++
++ /* get start address to read data */
++ cmd_addr = onenand_phys_to_virt(chip->command(mtd, ONENAND_CMD_READ, from));
++
++ thislen = oobsize - column;
++ thislen = min_t(int, thislen, len);
++
++ if (mode == MTD_OOB_AUTO)
++ buf_poi = (u_int *)chip->oob_buf;
++ else
++ buf_poi = (u_int *)buf;
++
++ switch (chip->options & ONENAND_READ_MASK) {
++ case ONENAND_READ_BURST:
++ onenand_read_burst(buf_poi, cmd_addr, mtd->writesize);
++ onenand_read_burst(buf_poi, cmd_addr, mtd->oobsize);
++ break;
++
++ case ONENAND_READ_DMA:
++ onenand_read_dma(chip, buf_poi, cmd_addr, mtd->writesize);
++ onenand_read_dma(chip, buf_poi, cmd_addr, mtd->oobsize);
++ break;
++
++ case ONENAND_READ_POLLING:
++ /* read main data and throw into garbage box */
++ for (i = 0; i < (mtd->writesize / 4); i++)
++ *buf_poi = chip->read(cmd_addr);
++
++ /* read spare data */
++ for (i = 0; i < (mtd->oobsize / 4); i++)
++ *buf_poi++ = chip->read(cmd_addr);
++
++ break;
++ }
++
++ if (onenand_blkrw_complete(chip, ONENAND_CMD_READ)) {
++ printk(KERN_WARNING "onenand_read_oob_nolock: Read operation failed:0x%x\n", (unsigned int)from);
++#if 0
++ chip->write(~ONENAND_TRANS_SPARE_TSRF_INC, chip->base + ONENAND_REG_TRANS_SPARE);
++ return -1;
++#endif
++ }
++
++ if (mode == MTD_OOB_AUTO)
++ onenand_transfer_auto_oob(mtd, buf, column, thislen);
++
++ read += thislen;
++
++ if (read == len)
++ break;
++
++ buf += thislen;
++
++ /* Read more? */
++ if (read < len) {
++ /* Page size */
++ from += mtd->writesize;
++ column = 0;
++ }
++ }
++
++ /* off the TRANSFER SPARE bit */
++ chip->write(~ONENAND_TRANS_SPARE_TSRF_INC, chip->base + ONENAND_REG_TRANS_SPARE);
++
++ /* Deselect and wake up anyone waiting on the device */
++ onenand_release_device(mtd);
++
++ ops->oobretlen = read;
++ return ret;
++}
++
++/**
++ * onenand_read_oob - [MTD Interface] NAND write data and/or out-of-band
++ * @mtd: MTD device structure
++ * @from: offset to read from
++ * @ops: oob operation description structure
++ */
++static int onenand_read_oob(struct mtd_info *mtd, loff_t from,
++ struct mtd_oob_ops *ops)
++{
++ int ret = 0;
++
++ switch (ops->mode) {
++ case MTD_OOB_PLACE:
++ case MTD_OOB_AUTO:
++ break;
++ case MTD_OOB_RAW:
++ /* Not implemented yet */
++ default:
++ return -EINVAL;
++ }
++
++ if (ops->datbuf != NULL)
++ ret = onenand_read_ops_nolock(mtd, from, ops);
++ else
++ ret = onenand_read_oob_nolock(mtd, from, ops);
++
++ return ret;
++}
++
++#ifdef CONFIG_MTD_ONENAND_VERIFY_WRITE
++/**
++ * onenand_verify_page - [GENERIC] verify the chip contents after a write
++ * @param mtd MTD device structure
++ * @param buf the databuffer to verify
++ * @param addr address to read
++ * @return 0, if ok
++ */
++static int onenand_verify_page(struct mtd_info *mtd, const u_int *buf, loff_t addr)
++{
++ struct onenand_chip *chip = mtd->priv;
++ void __iomem *cmd_addr;
++ int i, ret = 0;
++ u_int *written = (u_int *)kmalloc(mtd->writesize, GFP_KERNEL);
++
++ cmd_addr = onenand_phys_to_virt(chip->command(mtd, ONENAND_CMD_READ, addr));
++
++ /* write all data of 1 page by 4 bytes at a time */
++ for (i = 0; i < (mtd->writesize / 4); i++) {
++ *written = chip->read(cmd_addr);
++ written++;
++ }
++
++ written -= (mtd->writesize / 4);
++
++ /* Check, if data is same */
++ if (memcmp(written, buf, mtd->writesize))
++ ret = -EBADMSG;
++
++ kfree(written);
++
++ return ret;
++}
++
++/**
++ * onenand_verify_oob - [GENERIC] verify the oob contents after a write
++ * @param mtd MTD device structure
++ * @param buf the databuffer to verify
++ * @param to offset to read from
++ *
++ */
++static int onenand_verify_oob(struct mtd_info *mtd, const u_char *buf, loff_t to, size_t len)
++{
++ struct onenand_chip *chip = mtd->priv;
++ char oobbuf[64];
++ u_int *buf_poi, *dbuf_poi;
++ int read = 0, thislen, column, oobsize, i;
++ void __iomem *cmd_addr;
++ mtd_oob_mode_t mode = MTD_OOB_AUTO;
++
++ if (mode == MTD_OOB_AUTO)
++ oobsize = chip->ecclayout->oobavail;
++ else
++ oobsize = mtd->oobsize;
++
++ column = to & (mtd->oobsize - 1);
++ dbuf_poi = (u_int *)chip->page_buf;
++
++ while (read < len) {
++ /* get start address to read data */
++ cmd_addr = onenand_phys_to_virt(chip->command(mtd, ONENAND_CMD_READ, to));
++
++ thislen = oobsize - column;
++ thislen = min_t(int, thislen, len);
++
++ if (mode == MTD_OOB_AUTO)
++ buf_poi = (u_int *)chip->oob_buf;
++ else
++ buf_poi = (u_int *)buf;
++
++ onenand_read_burst(dbuf_poi, cmd_addr, mtd->writesize);
++ onenand_read_burst(buf_poi, cmd_addr, mtd->oobsize);
++
++ if (onenand_blkrw_complete(chip, ONENAND_CMD_READ)) {
++ printk(KERN_WARNING "onenand_verify_oob: Read operation failed:0x%x\n", (unsigned int)to);
++#if 0
++ chip->write(~ONENAND_TRANS_SPARE_TSRF_INC, chip->base + ONENAND_REG_TRANS_SPARE);
++ return -1;
++#endif
++ }
++
++ if (mode == MTD_OOB_AUTO)
++ onenand_transfer_auto_oob(mtd, oobbuf, column, thislen);
++
++ read += thislen;
++
++ if (read == len)
++ break;
++
++ }
++
++
++ for (i = 0; i < len; i++)
++ if (buf[i] != oobbuf[i])
++ return -EBADMSG;
++
++ return 0;
++}
++
++
++/**
++ * onenand_verify_ops - [GENERIC] verify the oob contents after a write
++ * @param mtd MTD device structure
++ * @param ops oob operation description structure
++ * @param to offset to read from
++ * @param len number of bytes to read
++ *
++ */
++static int onenand_verify_ops(struct mtd_info *mtd, struct mtd_oob_ops *ops, loff_t to, size_t len)
++{
++ struct onenand_chip *chip = mtd->priv;
++ char oobbuf[64];
++ u_int *buf_poi, *dbuf_poi;
++ int read = 0, thislen, column, oobsize, i;
++ void __iomem *cmd_addr;
++ int ret = 0;
++
++ if (ops->mode == MTD_OOB_AUTO)
++ oobsize = chip->ecclayout->oobavail;
++ else
++ oobsize = mtd->oobsize;
++
++ column = to & (mtd->oobsize - 1);
++
++ while (read < len) {
++ /* get start address to read data */
++ cmd_addr = onenand_phys_to_virt(chip->command(mtd, ONENAND_CMD_READ, to));
++
++ thislen = oobsize - column;
++ thislen = min_t(int, thislen, len);
++
++ dbuf_poi = (u_int *)chip->page_buf;
++
++ if (ops->mode == MTD_OOB_AUTO)
++ buf_poi = (u_int *)chip->oob_buf;
++ else
++ buf_poi = (u_int *)oobbuf;
++
++ onenand_read_burst(dbuf_poi, cmd_addr, mtd->writesize);
++ onenand_read_burst(buf_poi, cmd_addr, mtd->oobsize);
++
++ if (onenand_blkrw_complete(chip, ONENAND_CMD_READ)) {
++ printk(KERN_WARNING "onenand_verify_oob: Read operation failed:0x%x\n", (unsigned int)to);
++ return -EBADMSG;
++ }
++
++ if (ops->mode == MTD_OOB_AUTO)
++ onenand_transfer_auto_oob(mtd, oobbuf, column, thislen);
++
++ read += thislen;
++
++ if (read == len)
++ break;
++
++ }
++
++ /* Check, if data is same */
++ if (memcmp(chip->page_buf, ops->datbuf, mtd->writesize)) {
++ printk("Invalid data buffer : 0x%x\n", (unsigned int)to);
++ ret = -EBADMSG;
++ }
++
++ for (i = 0; i < len; i++)
++ if (ops->oobbuf[i] != oobbuf[i]) {
++ printk("Invalid OOB buffer :0x%x\n", (unsigned int)to);
++ ret = -EBADMSG;
++ }
++
++ return ret;
++}
++
++#endif
++
++#define NOTALIGNED(x) ((x & (chip->subpagesize - 1)) != 0)
++
++/**
++ * onenand_write - [MTD Interface] write buffer to FLASH
++ * @param mtd MTD device structure
++ * @param to offset to write to
++ * @param len number of bytes to write
++ * @param retlen pointer to variable to store the number of written bytes
++ * @param buf the data to write
++ *
++ */
++int onenand_write(struct mtd_info *mtd, loff_t to, size_t len,
++ size_t *retlen, const u_char *buf)
++{
++ struct onenand_chip *chip = mtd->priv;
++ int written = 0;
++ int i, ret = 0;
++ void __iomem *cmd_addr;
++ u_int *buf_poi = (u_int *)buf;
++
++ DEBUG(MTD_DEBUG_LEVEL3, "onenand_write: to = 0x%08x, len = %i\n", (unsigned int) to, (int) len);
++
++ /* Initialize retlen, in case of early exit */
++ *retlen = 0;
++
++ /* Do not allow writes past end of device */
++ if (unlikely((to + len) > mtd->size)) {
++ DEBUG(MTD_DEBUG_LEVEL3, "onenand_write: Attempt write to past end of device\n");
++ return -EINVAL;
++ }
++
++ /* Reject writes, which are not page aligned */
++ if (unlikely(NOTALIGNED(to)) || unlikely(NOTALIGNED(len))) {
++ DEBUG(MTD_DEBUG_LEVEL3, "onenand_write: Attempt to write not page aligned data\n");
++ return -EINVAL;
++ }
++
++ /* Grab the lock and see if the device is available */
++ onenand_get_device(mtd, FL_WRITING);
++
++ /* Loop until all data write */
++ while (written < len) {
++ if (chip->options & ONENAND_CHECK_BAD) {
++ if (onenand_block_isbad(mtd, to)) {
++ printk (KERN_WARNING "onenand_write: skipped to write to a bad block at addr 0x%08x.\n", (unsigned int) to);
++ to += (1 << chip->erase_shift);
++ continue;
++ }
++ }
++
++ /* get start address to write data */
++ cmd_addr = onenand_phys_to_virt(chip->command(mtd, ONENAND_CMD_PROG, to));
++
++ /* write all data of 1 page by 4 bytes at a time */
++ for (i = 0; i < (mtd->writesize / 4); i++) {
++ chip->write(*buf_poi, cmd_addr);
++ buf_poi++;
++ }
++
++ if (onenand_blkrw_complete(chip, ONENAND_CMD_PROG)) {
++ printk(KERN_WARNING "onenand_write: Program operation failed.\n");
++ return -1;
++ }
++
++#ifdef CONFIG_MTD_ONENAND_VERIFY_WRITE
++ /* Only check verify write turn on */
++ ret = onenand_verify_page(mtd, buf_poi - (mtd->writesize / 4), to);
++
++ if (ret) {
++ printk("onenand_write: verify failed:0x%x.\n", (unsigned int)to);
++ break;
++ }
++#endif
++ written += mtd->writesize;
++
++ if (written == len)
++ break;
++
++ to += mtd->writesize;
++ }
++
++ /* Deselect and wake up anyone waiting on the device */
++ onenand_release_device(mtd);
++
++ *retlen = written;
++
++ return ret;
++}
++
++/**
++ * onenand_fill_auto_oob - [Internal] oob auto-placement transfer
++ * @param mtd MTD device structure
++ * @param oob_buf oob buffer
++ * @param buf source address
++ * @param column oob offset to write to
++ * @param thislen oob length to write
++ */
++static int onenand_fill_auto_oob(struct mtd_info *mtd, u_char *oob_buf,
++ const u_char *buf, int column, int thislen)
++{
++ struct onenand_chip *chip = mtd->priv;
++ struct nand_oobfree *free;
++ int writecol = column;
++ int writeend = column + thislen;
++ int lastgap = 0;
++
++ for (free = chip->ecclayout->oobfree; free->length; ++free) {
++ if (writecol >= lastgap)
++ writecol += free->offset - lastgap;
++ if (writeend >= lastgap)
++ writeend += free->offset - lastgap;
++ lastgap = free->offset + free->length;
++ }
++ for (free = chip->ecclayout->oobfree; free->length; ++free) {
++ int free_end = free->offset + free->length;
++ if (free->offset < writeend && free_end > writecol) {
++ int st = max_t(int,free->offset,writecol);
++ int ed = min_t(int,free_end,writeend);
++ int n = ed - st;
++ memcpy(oob_buf + st, buf, n);
++ buf += n;
++ } else
++ break;
++ }
++ return 0;
++}
++
++
++/**
++ * onenand_write_ops_nolock - [OneNAND Interface] write main and/or out-of-band
++ * @param mtd MTD device structure
++ * @param to offset to write to
++ * @param ops oob operation description structure
++ *
++ * Write main and/or oob with ECC
++ */
++static int onenand_write_ops_nolock(struct mtd_info *mtd, loff_t to, struct mtd_oob_ops *ops)
++{
++ struct onenand_chip *chip = mtd->priv;
++ int i, column, ret = 0, oobsize;
++ int written = 0;
++
++ int len = ops->ooblen;
++ u_char *buf = ops->datbuf;
++ u_char *sparebuf = ops->oobbuf;
++ u_char *oobbuf;
++
++ void __iomem *cmd_addr;
++ u_int *buf_poi;
++
++ DEBUG(MTD_DEBUG_LEVEL3, "onenand_write_ops_nolock: to = 0x%08x, len = %i\n", (unsigned int) to, (int) len);
++
++ /* Initialize retlen, in case of early exit */
++ ops->retlen = 0;
++ ops->oobretlen = 0;
++
++ if (ops->mode == MTD_OOB_AUTO)
++ oobsize = chip->ecclayout->oobavail;
++ else
++ oobsize = mtd->oobsize;
++
++ column = to & (mtd->oobsize - 1);
++
++ if (unlikely(column >= oobsize)) {
++ printk(KERN_ERR "onenand_write_ops_nolock: Attempted to start write outside oob\n");
++ return -EINVAL;
++ }
++
++ /* For compatibility with NAND: Do not allow write past end of page */
++ if (unlikely(column + len > oobsize)) {
++ printk(KERN_ERR "onenand_write_ops_nolock: "
++ "Attempt to write past end of page\n");
++ return -EINVAL;
++ }
++
++ /* Do not allow reads past end of device */
++ if (unlikely(to >= mtd->size ||
++ column + len > ((mtd->size >> chip->page_shift) -
++ (to >> chip->page_shift)) * oobsize)) {
++ printk(KERN_ERR "onenand_write_ops_nolock: Attempted to write past end of device\n");
++ return -EINVAL;
++ }
++
++ /* Grab the lock and see if the device is available */
++ onenand_get_device(mtd, FL_WRITING);
++
++ oobbuf = chip->oob_buf;
++ buf_poi = (u_int *)buf;
++
++ /* on the TRANSFER SPARE bit */
++ chip->write(ONENAND_TRANS_SPARE_TSRF_INC, chip->base + ONENAND_REG_TRANS_SPARE);
++
++ /* Loop until all data write */
++ while (written < len) {
++ int thislen = min_t(int, oobsize, len - written);
++
++ if (chip->options & ONENAND_CHECK_BAD) {
++ if (onenand_block_isbad(mtd, to)) {
++ printk (KERN_WARNING "onenand_write_ops_nolock: skipped to write oob to a bad block at addr 0x%08x.\n", (unsigned int) to);
++ to += (1 << chip->erase_shift);
++
++ if (column != 0)
++ column = to & (mtd->oobsize - 1);
++
++ continue;
++ }
++ }
++
++ /* get start address to write data */
++ cmd_addr = onenand_phys_to_virt(chip->command(mtd, ONENAND_CMD_PROG, to));
++
++ /* write all data of 1 page by 4 bytes at a time */
++ for (i = 0; i < (mtd->writesize / 4); i++) {
++ chip->write(*buf_poi, cmd_addr);
++ buf_poi++;
++ }
++
++ /* We send data to spare ram with oobsize
++ * to prevent byte access */
++ memset(oobbuf, 0xff, mtd->oobsize);
++
++ if (ops->mode == MTD_OOB_AUTO)
++ onenand_fill_auto_oob(mtd, oobbuf, sparebuf, column, thislen);
++ else
++ memcpy(oobbuf + column, buf, thislen);
++
++ buf_poi = (u_int *)chip->oob_buf;
++ for (i = 0; i < (mtd->oobsize / 4); i++) {
++ chip->write(*buf_poi, cmd_addr);
++ buf_poi++;
++ }
++
++ if (onenand_blkrw_complete(chip, ONENAND_CMD_PROG)) {
++ printk(KERN_WARNING "onenand_write_ops_nolock: Program operation failed.\n");
++ chip->write(~ONENAND_TRANS_SPARE_TSRF_INC, chip->base + ONENAND_REG_TRANS_SPARE);
++ return -1;
++ }
++
++
++#ifdef CONFIG_MTD_ONENAND_VERIFY_WRITE
++ ret = onenand_verify_ops(mtd, ops, to, len);
++
++ if (ret) {
++ printk(KERN_ERR "onenand_write_ops_nolock: verify failed :0x%x\n", (unsigned int)to);
++ break;
++ }
++#endif
++ written += thislen;
++
++ if (written == len)
++ break;
++
++ to += mtd->writesize;
++ buf += thislen;
++ column = 0;
++ }
++
++ /* off the TRANSFER SPARE bit */
++ chip->write(~ONENAND_TRANS_SPARE_TSRF_INC, chip->base + ONENAND_REG_TRANS_SPARE);
++
++ /* Deselect and wake up anyone waiting on the device */
++ onenand_release_device(mtd);
++
++ ops->retlen = mtd->writesize;
++ ops->oobretlen = written;
++
++ return ret;
++}
++
++
++/**
++ * onenand_write_oob_nolock - [Internal] OneNAND write out-of-band
++ * @param mtd MTD device structure
++ * @param to offset to write to
++ * @param len number of bytes to write
++ * @param retlen pointer to variable to store the number of written bytes
++ * @param buf the data to write
++ * @param mode operation mode
++ *
++ * OneNAND write out-of-band
++ */
++static int onenand_write_oob_nolock(struct mtd_info *mtd, loff_t to, struct mtd_oob_ops *ops)
++{
++ struct onenand_chip *chip = mtd->priv;
++ int i, column, ret = 0, oobsize;
++ int written = 0;
++ u_char *oobbuf, *orgbuf;
++ void __iomem *cmd_addr;
++ u_int *buf_poi;
++
++ size_t len = ops->ooblen;
++ const u_char *buf = ops->oobbuf;
++ mtd_oob_mode_t mode = ops->mode;
++
++
++ DEBUG(MTD_DEBUG_LEVEL3, "onenand_write_oob_nolock: to = 0x%08x, len = %i\n", (unsigned int) to, (int) len);
++
++ /* Initialize retlen, in case of early exit */
++ ops->oobretlen = 0;
++
++ if (mode == MTD_OOB_AUTO)
++ oobsize = chip->ecclayout->oobavail;
++ else
++ oobsize = mtd->oobsize;
++
++ column = to & (mtd->oobsize - 1);
++
++ if (unlikely(column >= oobsize)) {
++ printk(KERN_ERR "onenand_write_oob_nolock: Attempted to start write outside oob\n");
++ return -EINVAL;
++ }
++
++ /* For compatibility with NAND: Do not allow write past end of page */
++ if (unlikely(column + len > oobsize)) {
++ printk(KERN_ERR "onenand_write_oob_nolock: "
++ "Attempt to write past end of page\n");
++ return -EINVAL;
++ }
++
++ /* Do not allow reads past end of device */
++ if (unlikely(to >= mtd->size ||
++ column + len > ((mtd->size >> chip->page_shift) -
++ (to >> chip->page_shift)) * oobsize)) {
++ printk(KERN_ERR "onenand_write_oob_nolock: Attempted to write past end of device\n");
++ return -EINVAL;
++ }
++
++ /* Grab the lock and see if the device is available */
++ onenand_get_device(mtd, FL_WRITING);
++
++ orgbuf = buf;
++ oobbuf = chip->oob_buf;
++ buf_poi = (u_int *)chip->oob_buf;
++
++ /* on the TRANSFER SPARE bit */
++ chip->write(ONENAND_TRANS_SPARE_TSRF_INC, chip->base + ONENAND_REG_TRANS_SPARE);
++
++ /* Loop until all data write */
++ while (written < len) {
++ int thislen = min_t(int, oobsize, len - written);
++
++ if (chip->options & ONENAND_CHECK_BAD) {
++ if (onenand_block_isbad(mtd, to)) {
++ printk (KERN_WARNING "\nonenand_do_write_oob: skipped to write oob to a bad block at addr 0x%08x.\n", (unsigned int) to);
++ to += (1 << chip->erase_shift);
++
++ if (column != 0)
++ column = to & (mtd->oobsize - 1);
++
++ continue;
++ }
++ }
++
++ /* get start address to write data */
++ cmd_addr = onenand_phys_to_virt(chip->command(mtd, ONENAND_CMD_PROG, to));
++
++ /* We send data to spare ram with oobsize
++ * to prevent byte access */
++ memset(oobbuf, 0xff, mtd->oobsize);
++
++ if (mode == MTD_OOB_AUTO)
++ onenand_fill_auto_oob(mtd, oobbuf, buf, column, thislen);
++ else
++ memcpy(oobbuf + column, buf, thislen);
++
++ for (i = 0; i < (mtd->writesize / 4); i++)
++ chip->write(0xffffffff, cmd_addr);
++
++ for (i = 0; i < (mtd->oobsize / 4); i++) {
++ chip->write(*buf_poi, cmd_addr);
++ buf_poi++;
++ }
++
++ if (onenand_blkrw_complete(chip, ONENAND_CMD_PROG)) {
++ printk(KERN_WARNING "\onenand_write_oob_nolock: Program operation failed.\n");
++ chip->write(~ONENAND_TRANS_SPARE_TSRF_INC, chip->base + ONENAND_REG_TRANS_SPARE);
++ return -1;
++ }
++
++#ifdef CONFIG_MTD_ONENAND_VERIFY_WRITE
++ ret = onenand_verify_oob(mtd, orgbuf, to, len);
++
++ if (ret) {
++ printk(KERN_ERR "onenand_write_oob_nolock: verify failed :0x%x\n", (unsigned int)to);
++ break;
++ }
++#endif
++ written += thislen;
++
++ if (written == len)
++ break;
++
++ to += mtd->writesize;
++ buf += thislen;
++ column = 0;
++ }
++
++ /* off the TRANSFER SPARE bit */
++ chip->write(~ONENAND_TRANS_SPARE_TSRF_INC, chip->base + ONENAND_REG_TRANS_SPARE);
++
++ /* Deselect and wake up anyone waiting on the device */
++ onenand_release_device(mtd);
++
++ ops->oobretlen = written;
++
++ return ret;
++}
++
++/**
++ * onenand_write_oob - [MTD Interface] NAND write data and/or out-of-band
++ * @param mtd: MTD device structure
++ * @param to: offset to write
++ * @param ops: oob operation description structure
++ */
++static int onenand_write_oob(struct mtd_info *mtd, loff_t to,
++ struct mtd_oob_ops *ops)
++{
++ int ret;
++
++ switch (ops->mode) {
++ case MTD_OOB_PLACE:
++ case MTD_OOB_AUTO:
++ break;
++ case MTD_OOB_RAW:
++ /* Not implemented yet */
++ default:
++ return -EINVAL;
++ }
++
++ if (ops->datbuf != NULL)
++ ret = onenand_write_ops_nolock(mtd, to, ops);
++ else
++ ret = onenand_write_oob_nolock(mtd, to, ops);
++ return ret;
++
++}
++
++/**
++ * onenand_erase - [MTD Interface] erase block(s)
++ * @param mtd MTD device structure
++ * @param instr erase instruction
++ *
++ * Erase one ore more blocks
++ */
++static int onenand_erase(struct mtd_info *mtd, struct erase_info *instr)
++{
++ struct onenand_chip *chip = mtd->priv;
++ unsigned int block_size;
++ loff_t addr;
++ int len, ret = 0;
++ void __iomem *cmd_addr;
++
++ DEBUG(MTD_DEBUG_LEVEL3, "onenand_erase: start = 0x%08x, len = %i\n", (unsigned int) instr->addr, (unsigned int) instr->len);
++
++ block_size = (1 << chip->erase_shift);
++
++ /* Start address must align on block boundary */
++ if (unlikely(instr->addr & (block_size - 1))) {
++ DEBUG(MTD_DEBUG_LEVEL3, "onenand_erase: Unaligned address\n");
++ return -EINVAL;
++ }
++
++ /* Length must align on block boundary */
++ if (unlikely(instr->len & (block_size - 1))) {
++ DEBUG(MTD_DEBUG_LEVEL3, "onenand_erase: Length not block aligned\n");
++ return -EINVAL;
++ }
++
++ /* Do not allow erase past end of device */
++ if (unlikely((instr->len + instr->addr) > mtd->size)) {
++ DEBUG(MTD_DEBUG_LEVEL3, "onenand_erase: Erase past end of device\n");
++ return -EINVAL;
++ }
++
++ instr->fail_addr = 0xffffffff;
++
++ /* Grab the lock and see if the device is available */
++ onenand_get_device(mtd, FL_ERASING);
++
++ /* Loop throught the pages */
++ len = instr->len;
++ addr = instr->addr;
++
++ instr->state = MTD_ERASING;
++
++ while (len) {
++ if (chip->options & ONENAND_CHECK_BAD) {
++
++ /* Check if we have a bad block, we do not erase bad blocks */
++ if (onenand_block_isbad_nolock(mtd, addr, 0)) {
++ printk (KERN_WARNING "onenand_erase: attempt to erase a bad block at addr 0x%08x\n", (unsigned int) addr);
++ instr->state = MTD_ERASE_FAILED;
++ goto erase_exit;
++ }
++ }
++
++ /* get address to erase */
++ cmd_addr = onenand_phys_to_virt(chip->command(mtd, ONENAND_CMD_ERASE, addr));
++
++ chip->write(ONENAND_DATAIN_ERASE_SINGLE, cmd_addr); /* single block erase */
++
++ /* wait irq */
++ onenand_irq_wait_ack(chip, ONENAND_INT_ERR_INT_ACT);
++ onenand_irq_wait_ack(chip, ONENAND_INT_ERR_ERS_CMP);
++
++ chip->write(ONENAND_DATAIN_ERASE_VERIFY, cmd_addr);
++
++ /* wait irq */
++ onenand_irq_wait_ack(chip, ONENAND_INT_ERR_INT_ACT);
++ onenand_irq_wait_ack(chip, ONENAND_INT_ERR_ERS_CMP);
++
++ /* check fail */
++ if (onenand_irq_pend(chip, ONENAND_INT_ERR_ERS_FAIL)) {
++ DEBUG(MTD_DEBUG_LEVEL3, "onenand_erase: block %d erase verify failed.\n", addr >> chip->erase_shift);
++ onenand_irq_ack(chip, ONENAND_INT_ERR_ERS_FAIL);
++
++ /* check lock */
++ if (onenand_irq_pend(chip, ONENAND_INT_ERR_LOCKED_BLK)) {
++ DEBUG(MTD_DEBUG_LEVEL3, "onenand_erase: block %d is locked.\n", addr >> chip->erase_shift);
++ onenand_irq_ack(chip, ONENAND_INT_ERR_LOCKED_BLK);
++ }
++ }
++
++ len -= block_size;
++ addr += block_size;
++ }
++
++ instr->state = MTD_ERASE_DONE;
++
++erase_exit:
++ ret = instr->state == MTD_ERASE_DONE ? 0 : -EIO;
++ /* Do call back function */
++ if (!ret)
++ mtd_erase_callback(instr);
++
++ /* Deselect and wake up anyone waiting on the device */
++ onenand_release_device(mtd);
++
++ return ret;
++}
++
++/**
++ * onenand_sync - [MTD Interface] sync
++ * @param mtd MTD device structure
++ *
++ * Sync is actually a wait for chip ready function
++ */
++static void onenand_sync(struct mtd_info *mtd)
++{
++ DEBUG(MTD_DEBUG_LEVEL3, "onenand_sync: called\n");
++
++ /* Grab the lock and see if the device is available */
++ onenand_get_device(mtd, FL_SYNCING);
++
++ /* Release it and go back */
++ onenand_release_device(mtd);
++}
++
++/**
++ * onenand_do_lock_cmd - [OneNAND Interface] Lock or unlock block(s)
++ * @param mtd MTD device structure
++ * @param ofs offset relative to mtd start
++ * @param len number of bytes to lock or unlock
++ *
++ * Lock or unlock one or more blocks
++ */
++static int onenand_do_lock_cmd(struct mtd_info *mtd, loff_t ofs, size_t len, int cmd)
++{
++ struct onenand_chip *chip = mtd->priv;
++ int start, end, ofs_end, block_size;
++ int datain1, datain2;
++ void __iomem *cmd_addr;
++
++ start = ofs >> chip->erase_shift;
++ end = len >> chip->erase_shift;
++ block_size = 1 << chip->erase_shift;
++ ofs_end = ofs + len - block_size;
++
++ if (cmd == ONENAND_CMD_LOCK) {
++ datain1 = ONENAND_DATAIN_LOCK_START;
++ datain2 = ONENAND_DATAIN_LOCK_END;
++ } else {
++ datain1 = ONENAND_DATAIN_UNLOCK_START;
++ datain2 = ONENAND_DATAIN_UNLOCK_END;
++ }
++
++ if (ofs < ofs_end) {
++ cmd_addr = onenand_phys_to_virt(chip->command(mtd, cmd, ofs));
++ chip->write(datain1, cmd_addr);
++ }
++
++ cmd_addr = onenand_phys_to_virt(chip->command(mtd, cmd, ofs));
++ chip->write(datain2, cmd_addr);
++
++ if (cmd == ONENAND_CMD_LOCK) {
++ if (!chip->read(chip->base + ONENAND_REG_INT_ERR_STAT) & ONENAND_INT_ERR_LOCKED_BLK) {
++ DEBUG(MTD_DEBUG_LEVEL3, "onenand_do_lock_cmd: lock failed.\n");
++ return -1;
++ }
++ } else {
++ if (chip->read(chip->base + ONENAND_REG_INT_ERR_STAT) & ONENAND_INT_ERR_LOCKED_BLK) {
++ DEBUG(MTD_DEBUG_LEVEL3, "onenand_do_lock_cmd: unlock failed.\n");
++ return -1;
++ }
++ }
++
++ return 0;
++}
++
++/**
++ * onenand_lock - [MTD Interface] Lock block(s)
++ * @param mtd MTD device structure
++ * @param ofs offset relative to mtd start
++ * @param len number of bytes to lock
++ *
++ * Lock one or more blocks
++ */
++static int onenand_lock(struct mtd_info *mtd, loff_t ofs, size_t len)
++{
++ return onenand_do_lock_cmd(mtd, ofs, len, ONENAND_CMD_LOCK);
++}
++
++/**
++ * onenand_unlock - [MTD Interface] Unlock block(s)
++ * @param mtd MTD device structure
++ * @param ofs offset relative to mtd start
++ * @param len number of bytes to unlock
++ *
++ * Unlock one or more blocks
++ */
++int onenand_unlock(struct mtd_info *mtd, loff_t ofs, size_t len)
++{
++ return onenand_do_lock_cmd(mtd, ofs, len, ONENAND_CMD_UNLOCK);
++}
++
++/**
++ * onenand_check_lock_status - [OneNAND Interface] Check lock status
++ * @param this onenand chip data structure
++ *
++ * Check lock status
++ */
++static void onenand_check_lock_status(struct mtd_info *mtd)
++{
++ struct onenand_chip *chip = mtd->priv;
++ unsigned int block, end;
++ void __iomem *cmd_addr;
++ int tmp;
++
++ end = chip->chipsize >> chip->erase_shift;
++
++ for (block = 0; block < end; block++) {
++ cmd_addr = onenand_phys_to_virt(chip->command(mtd, ONENAND_CMD_READ, block << chip->erase_shift));
++ tmp = chip->read(cmd_addr);
++
++ if (chip->read(chip->base + ONENAND_REG_INT_ERR_STAT) & ONENAND_INT_ERR_LOCKED_BLK) {
++ printk(KERN_ERR "block %d is write-protected!\n", block);
++ chip->write(ONENAND_INT_ERR_LOCKED_BLK, chip->base + ONENAND_REG_INT_ERR_ACK);
++ }
++ }
++}
++
++/**
++ * onenand_unlock_all - [OneNAND Interface] unlock all blocks
++ * @param mtd MTD device structure
++ *
++ * Unlock all blocks
++ */
++static int onenand_unlock_all(struct mtd_info *mtd)
++{
++ struct onenand_chip *chip = mtd->priv;
++ void __iomem *cmd_addr;
++
++ if (chip->options & ONENAND_HAS_UNLOCK_ALL) {
++ /* write unlock command */
++ cmd_addr = onenand_phys_to_virt(chip->command(mtd, ONENAND_CMD_UNLOCK_ALL, 0));
++ chip->write(ONENAND_DATAIN_UNLOCK_ALL, cmd_addr);
++
++ /* Workaround for all block unlock in DDP */
++ if (chip->device_id & ONENAND_DEVICE_IS_DDP) {
++ loff_t ofs;
++ size_t len;
++
++ /* 1st block on another chip */
++ ofs = chip->chipsize >> 1;
++ len = 1 << chip->erase_shift;
++
++ onenand_unlock(mtd, ofs, len);
++ }
++
++ onenand_check_lock_status(mtd);
++
++ return 0;
++ }
++
++ onenand_unlock(mtd, 0x0, chip->chipsize);
++
++ return 0;
++}
++
++/**
++ * onenand_lock_scheme - Check and set OneNAND lock scheme
++ * @param mtd MTD data structure
++ *
++ * Check and set OneNAND lock scheme
++ */
++static void onenand_lock_scheme(struct mtd_info *mtd)
++{
++ struct onenand_chip *chip = mtd->priv;
++ unsigned int density, process;
++
++ /* Lock scheme depends on density and process */
++ density = chip->device_id >> ONENAND_DEVICE_DENSITY_SHIFT;
++ process = chip->version_id >> ONENAND_VERSION_PROCESS_SHIFT;
++
++ /* Lock scheme */
++ if (density >= ONENAND_DEVICE_DENSITY_1Gb) {
++ /* A-Die has all block unlock */
++ if (process) {
++ printk(KERN_DEBUG "Chip support all block unlock\n");
++ chip->options |= ONENAND_HAS_UNLOCK_ALL;
++ }
++ } else {
++ /* Some OneNAND has continues lock scheme */
++ if (!process) {
++ printk(KERN_DEBUG "Lock scheme is Continues Lock\n");
++ chip->options |= ONENAND_HAS_CONT_LOCK;
++ }
++ }
++}
++
++/**
++ * onenand_print_device_info - Print device ID
++ * @param device device ID
++ *
++ * Print device ID
++ */
++void onenand_print_device_info(int device, int version)
++{
++ int vcc, demuxed, ddp, density;
++
++ vcc = device & ONENAND_DEVICE_VCC_MASK;
++ demuxed = device & ONENAND_DEVICE_IS_DEMUX;
++ ddp = device & ONENAND_DEVICE_IS_DDP;
++ density = device >> ONENAND_DEVICE_DENSITY_SHIFT;
++ printk(KERN_INFO "%sOneNAND%s %dMB %sV 16-bit (0x%02x)\n",
++ demuxed ? "" : "Muxed ",
++ ddp ? "(DDP)" : "",
++ (16 << density),
++ vcc ? "2.65/3.3" : "1.8",
++ device);
++ printk(KERN_DEBUG "OneNAND version = 0x%04x\n", version);
++}
++
++static const struct onenand_manufacturers onenand_manuf_ids[] = {
++ {ONENAND_MFR_SAMSUNG, "Samsung"},
++};
++
++/**
++ * onenand_check_maf - Check manufacturer ID
++ * @param manuf manufacturer ID
++ *
++ * Check manufacturer ID
++ */
++static int onenand_check_maf(int manuf)
++{
++ int size = ARRAY_SIZE(onenand_manuf_ids);
++ char *name;
++ int i;
++
++ for (i = 0; i < size; i++)
++ if (manuf == onenand_manuf_ids[i].id)
++ break;
++
++ if (i < size)
++ name = onenand_manuf_ids[i].name;
++ else
++ name = "Unknown";
++
++ printk(KERN_DEBUG "OneNAND Manufacturer: %s (0x%0x)\n", name, manuf);
++
++ return (i == size);
++}
++
++/**
++ * onenand_suspend - [MTD Interface] Suspend the OneNAND flash
++ * @param mtd MTD device structure
++ */
++static int onenand_suspend(struct mtd_info *mtd)
++{
++ return onenand_get_device(mtd, FL_PM_SUSPENDED);
++}
++
++/**
++ * onenand_resume - [MTD Interface] Resume the OneNAND flash
++ * @param mtd MTD device structure
++ */
++static void onenand_resume(struct mtd_info *mtd)
++{
++ struct onenand_chip *chip = mtd->priv;
++
++ if (chip->state == FL_PM_SUSPENDED)
++ onenand_release_device(mtd);
++ else
++ printk(KERN_ERR "resume() called for the chip which is not"
++ "in suspended state\n");
++}
++
++/*
++ * Setting address width registers
++ * (FBA_WIDTH, FPA_WIDTH, FSA_WIDTH, DFS_DBS_WIDTH)
++ */
++static void s3c_onenand_width_regs(struct onenand_chip *chip)
++{
++ int dev_id, ddp, density;
++ int w_dfs_dbs = 0, w_fba = 10, w_fpa = 6, w_fsa = 2;
++
++ dev_id = readl(chip->base + ONENAND_REG_DEVICE_ID);
++
++ ddp = dev_id & ONENAND_DEVICE_IS_DDP;
++ density = dev_id >> ONENAND_DEVICE_DENSITY_SHIFT;
++
++ switch (density & 0xf) {
++ case ONENAND_DEVICE_DENSITY_128Mb:
++ w_dfs_dbs = 0;
++ w_fba = 8;
++ w_fpa = 6;
++ w_fsa = 1;
++ break;
++
++ case ONENAND_DEVICE_DENSITY_256Mb:
++ w_dfs_dbs = 0;
++ w_fba = 9;
++ w_fpa = 6;
++ w_fsa = 1;
++ break;
++
++ case ONENAND_DEVICE_DENSITY_512Mb:
++ w_dfs_dbs = 0;
++ w_fba = 9;
++ w_fpa = 6;
++ w_fsa = 2;
++ break;
++
++ case ONENAND_DEVICE_DENSITY_1Gb:
++ if (ddp) {
++ w_dfs_dbs = 1;
++ w_fba = 9;
++ } else {
++ w_dfs_dbs = 0;
++ w_fba = 10;
++ }
++
++ w_fpa = 6;
++ w_fsa = 2;
++ break;
++
++ case ONENAND_DEVICE_DENSITY_2Gb:
++ if (ddp) {
++ w_dfs_dbs = 1;
++ w_fba = 10;
++ } else {
++ w_dfs_dbs = 0;
++ w_fba = 11;
++ }
++
++ w_fpa = 6;
++ w_fsa = 2;
++ break;
++
++ case ONENAND_DEVICE_DENSITY_4Gb:
++ if (ddp) {
++ w_dfs_dbs = 1;
++ w_fba = 11;
++ } else {
++ w_dfs_dbs = 0;
++ w_fba = 12;
++ }
++
++ w_fpa = 6;
++ w_fsa = 2;
++ break;
++ }
++
++ writel(w_fba, chip->base + ONENAND_REG_FBA_WIDTH);
++ writel(w_fpa, chip->base + ONENAND_REG_FPA_WIDTH);
++ writel(w_fsa, chip->base + ONENAND_REG_FSA_WIDTH);
++ writel(w_dfs_dbs, chip->base + ONENAND_REG_DBS_DFS_WIDTH);
++}
++
++/*
++ * Board-specific NAND initialization. The following members of the
++ * argument are board-specific (per include/linux/mtd/nand.h):
++ * - base : address that OneNAND is located at.
++ * - scan_bbt: board specific bad block scan function.
++ * Members with a "?" were not set in the merged testing-NAND branch,
++ * so they are not set here either.
++ */
++static int s3c_onenand_init (struct onenand_chip *chip)
++{
++ int value;
++
++ chip->options |= (ONENAND_READ_BURST | ONENAND_CHECK_BAD | ONENAND_PIPELINE_AHEAD);
++
++ /*** Initialize Controller ***/
++
++ /* SYSCON */
++ value = readl(S3C_CLK_DIV0);
++ value = (value & ~(3 << 16)) | (1 << 16);
++ writel(value, S3C_CLK_DIV0);
++
++#if defined(CONFIG_CPU_S3C6410)
++ writel(ONENAND_FLASH_AUX_WD_DISABLE, chip->base + ONENAND_REG_FLASH_AUX_CNTRL);
++#endif
++
++ /* Cold Reset */
++ writel(ONENAND_MEM_RESET_COLD, chip->base + ONENAND_REG_MEM_RESET);
++
++ /* Access Clock Register */
++ writel(ONENAND_ACC_CLOCK_134_67, chip->base + ONENAND_REG_ACC_CLOCK);
++
++ /* FBA, FPA, FSA, DBS_DFS Width Register */
++ s3c_onenand_width_regs(chip);
++
++ /* Enable Interrupts */
++ writel(0x3ff, chip->base + ONENAND_REG_INT_ERR_MASK);
++ writel(ONENAND_INT_PIN_ENABLE, chip->base + ONENAND_REG_INT_PIN_ENABLE);
++ writel(readl(chip->base + ONENAND_REG_INT_ERR_MASK) & ~(ONENAND_INT_ERR_RDY_ACT),
++ chip->base + ONENAND_REG_INT_ERR_MASK);
++
++ /* Memory Device Configuration Register */
++ value = (ONENAND_MEM_CFG_SYNC_READ | ONENAND_MEM_CFG_BRL_4 | \
++ ONENAND_MEM_CFG_BL_16| ONENAND_MEM_CFG_IOBE | \
++ ONENAND_MEM_CFG_INT_HIGH | ONENAND_MEM_CFG_RDY_HIGH);
++ writel(value, chip->base + ONENAND_REG_MEM_CFG);
++
++ /* Burst Length Register */
++ writel(ONENAND_BURST_LEN_16, chip->base + ONENAND_REG_BURST_LEN);
++
++#ifdef CONFIG_MTD_ONENAND_CHECK_SPEED
++ writel((readl(S3C_GPNCON) & ~(0x3 << 30)) | (0x1 << 30), S3C_GPNCON);
++ writel(0 << 15, S3C_GPNDAT);
++#endif
++
++ return 0;
++}
++
++/**
++ * onenand_probe - [OneNAND Interface] Probe the OneNAND device
++ * @param mtd MTD device structure
++ *
++ * OneNAND detection method:
++ * Compare the the values from command with ones from register
++ */
++static int onenand_probe(struct mtd_info *mtd)
++{
++ struct onenand_chip *chip = mtd->priv;
++ int maf_id, dev_id, ver_id, density;
++
++ s3c_onenand_init(chip);
++
++ chip->dev_base = (void __iomem *)ioremap_nocache(ONENAND_AHB_ADDR, SZ_256M);
++
++ if (!chip->dev_base) {
++ printk("ioremap failed.\n");
++ return -1;
++ }
++
++ printk("onenand_probe: OneNAND memory device is remapped at 0x%08x.\n", (u_int) chip->dev_base);
++
++ chip->dma = ONENAND_DMA_CON;
++ chip->dma_ch = DMACH_ONENAND_IN;
++
++ /* Read manufacturer and device IDs from Register */
++ maf_id = chip->read(chip->base + ONENAND_REG_MANUFACT_ID);
++ dev_id = chip->read(chip->base + ONENAND_REG_DEVICE_ID);
++ ver_id = chip->read(chip->base + ONENAND_REG_FLASH_VER_ID);
++
++ /* Check manufacturer ID */
++ if (onenand_check_maf(maf_id))
++ return -ENXIO;
++
++ /* Flash device information */
++ onenand_print_device_info(dev_id, ver_id);
++ chip->device_id = dev_id;
++ chip->version_id = ver_id;
++
++ density = dev_id >> ONENAND_DEVICE_DENSITY_SHIFT;
++ chip->chipsize = (16 << density) << 20;
++ /* Set density mask. it is used for DDP */
++ chip->density_mask = (1 << (density + 6));
++
++ /* OneNAND page size & block size */
++ /* The data buffer size is equal to page size */
++ mtd->writesize = chip->read(chip->base + ONENAND_REG_DATA_BUF_SIZE);
++ mtd->oobsize = mtd->writesize >> 5;
++ /* Pagers per block is always 64 in OneNAND */
++ mtd->erasesize = mtd->writesize << 6;
++
++ chip->erase_shift = ffs(mtd->erasesize) - 1;
++ chip->page_shift = ffs(mtd->writesize) - 1;
++ chip->page_mask = (mtd->erasesize / mtd->writesize) - 1;
++
++ /* REVIST: Multichip handling */
++
++ mtd->size = chip->chipsize;
++
++ /* Check OneNAND lock scheme */
++ onenand_lock_scheme(mtd);
++
++ return 0;
++}
++
++/**
++ * onenand_block_markbad - [MTD Interface] Mark the block at the given offset as bad
++ * @param mtd MTD device structure
++ * @param ofs offset relative to mtd start
++ *
++ * Mark the block as bad
++ */
++static int onenand_block_markbad(struct mtd_info *mtd, loff_t ofs)
++{
++ struct onenand_chip *chip = mtd->priv;
++ int ret;
++
++ if (chip->options & ONENAND_CHECK_BAD) {
++ ret = onenand_block_isbad(mtd, ofs);
++ if (ret) {
++ /* If it was bad already, return success and do nothing */
++ if (ret > 0)
++ return 0;
++ return ret;
++ }
++
++ return chip->block_markbad(mtd, ofs);
++ } else
++ return 0;
++}
++
++int s3c_onenand_scan_bbt(struct mtd_info *mtd)
++{
++ struct onenand_chip *chip = mtd->priv;
++
++ if (chip->options & ONENAND_CHECK_BAD)
++ return onenand_default_bbt(mtd);
++ else
++ return 0;
++}
++
++/**
++ * onenand_scan - [OneNAND Interface] Scan for the OneNAND device
++ * @param mtd MTD device structure
++ * @param maxchips Number of chips to scan for
++ *
++ * This fills out all the not initialized function pointers
++ * with the defaults.
++ * The flash ID is read and the mtd/chip structures are
++ * filled with the appropriate values.
++ */
++int onenand_scan(struct mtd_info *mtd, int maxchips)
++{
++ int i;
++ struct onenand_chip *chip = mtd->priv;
++
++ if (!chip->read)
++ chip->read = onenand_readl;
++
++ if (!chip->write)
++ chip->write = onenand_writel;
++
++ if (!chip->command)
++ chip->command = onenand_command;
++
++ if (!chip->block_markbad)
++ chip->block_markbad = onenand_default_block_markbad;
++
++ if (!chip->scan_bbt)
++ chip->scan_bbt = s3c_onenand_scan_bbt;
++
++ if (onenand_probe(mtd))
++ return -ENXIO;
++
++ /* Allocate buffers, if necessary */
++ if (!chip->page_buf) {
++ size_t len;
++ len = mtd->writesize + mtd->oobsize;
++ chip->page_buf = kmalloc(len, GFP_KERNEL);
++ if (!chip->page_buf) {
++ printk(KERN_ERR "onenand_scan(): Can't allocate page_buf\n");
++ return -ENOMEM;
++ }
++ chip->options |= ONENAND_PAGEBUF_ALLOC;
++ }
++
++ if (!chip->oob_buf) {
++ chip->oob_buf = kzalloc(mtd->oobsize, GFP_KERNEL);
++ if (!chip->oob_buf) {
++ printk(KERN_ERR "onenand_scan(): Can't allocate oob_buf\n");
++ if (chip->options & ONENAND_PAGEBUF_ALLOC) {
++ chip->options &= ~ONENAND_PAGEBUF_ALLOC;
++ kfree(chip->page_buf);
++ }
++ return -ENOMEM;
++ }
++ chip->options |= ONENAND_OOBBUF_ALLOC;
++ }
++
++ /*
++ * Allow subpage writes up to oobsize.
++ */
++ switch (mtd->oobsize) {
++ case 64:
++ chip->ecclayout = &onenand_oob_64;
++ mtd->subpage_sft = 2;
++ break;
++
++ case 32:
++ chip->ecclayout = &onenand_oob_32;
++ mtd->subpage_sft = 1;
++ break;
++
++ default:
++ printk(KERN_WARNING "No OOB scheme defined for oobsize %d\n",
++ mtd->oobsize);
++ mtd->subpage_sft = 0;
++ /* To prevent kernel oops */
++ chip->ecclayout = &onenand_oob_32;
++ break;
++ }
++
++ chip->subpagesize = mtd->writesize >> mtd->subpage_sft;
++
++ /*
++ * The number of bytes available for a client to place data into
++ * the out of band area
++ */
++ chip->ecclayout->oobavail = 0;
++ for (i = 0; chip->ecclayout->oobfree[i].length; i++)
++ chip->ecclayout->oobavail +=
++ chip->ecclayout->oobfree[i].length;
++ mtd->oobavail = chip->ecclayout->oobavail;
++
++ mtd->ecclayout = chip->ecclayout;
++
++ /* Fill in remaining MTD driver data */
++ mtd->type = MTD_NANDFLASH;
++ mtd->flags = MTD_CAP_NANDFLASH;
++ mtd->erase = onenand_erase;
++ mtd->point = NULL;
++ mtd->unpoint = NULL;
++ mtd->read = onenand_read;
++ mtd->write = onenand_write;
++ mtd->read_oob = onenand_read_oob;
++ mtd->write_oob = onenand_write_oob;
++ mtd->sync = onenand_sync;
++ mtd->lock = onenand_lock;
++ mtd->unlock = onenand_unlock;
++ mtd->block_isbad = onenand_block_isbad;
++ mtd->block_markbad = onenand_block_markbad;
++ mtd->suspend = onenand_suspend;
++ mtd->resume = onenand_resume;
++ mtd->owner = THIS_MODULE;
++
++ /* Unlock whole block */
++ onenand_unlock_all(mtd);
++
++ return chip->scan_bbt(mtd);
++}
++
++/**
++ * onenand_release - [OneNAND Interface] Free resources held by the OneNAND device
++ * @param mtd MTD device structure
++ */
++void onenand_release(struct mtd_info *mtd)
++{
++ struct onenand_chip *chip = mtd->priv;
++
++#ifdef CONFIG_MTD_PARTITIONS
++ /* Deregister partitions */
++ del_mtd_partitions (mtd);
++#endif
++ /* Deregister the device */
++ del_mtd_device (mtd);
++
++ /* Free bad block table memory, if allocated */
++ if (chip->bbm) {
++ struct bbm_info *bbm = chip->bbm;
++ kfree(bbm->bbt);
++ kfree(chip->bbm);
++ }
++
++ /* Buffer allocated by onenand_scan */
++ if (chip->options & ONENAND_PAGEBUF_ALLOC)
++ kfree(chip->page_buf);
++ if (chip->options & ONENAND_OOBBUF_ALLOC)
++ kfree(chip->oob_buf);
++}
++
++EXPORT_SYMBOL_GPL(onenand_scan);
++EXPORT_SYMBOL_GPL(onenand_release);
++
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("Jinsung Yang <jsgood.yang@samsung.com>");
++MODULE_DESCRIPTION("S3C OneNAND Controller Driver");
+diff --git a/drivers/mtd/onenand/s3c_onenand.h b/drivers/mtd/onenand/s3c_onenand.h
+new file mode 100644
+index 0000000..b37792f
+--- /dev/null
++++ b/drivers/mtd/onenand/s3c_onenand.h
+@@ -0,0 +1,158 @@
++#ifndef __LINUX_MTD_S3C_ONENAND_H
++#define __LINUX_MTD_S3C_ONENAND_H
++
++#include <linux/spinlock.h>
++#include <linux/completion.h>
++#include <asm/arch/regs-onenand.h>
++#include <linux/mtd/bbm.h>
++#include <asm/dma.h>
++#include <asm/arch/dma.h>
++
++#define MAX_BUFFERRAM 2
++
++/* Scan and identify a OneNAND device */
++extern int onenand_scan(struct mtd_info *mtd, int max_chips);
++/* Free resources held by the OneNAND device */
++extern void onenand_release(struct mtd_info *mtd);
++
++/*
++ * onenand_state_t - chip states
++ * Enumeration for OneNAND flash chip state
++ */
++typedef enum {
++ FL_READY,
++ FL_READING,
++ FL_WRITING,
++ FL_ERASING,
++ FL_SYNCING,
++ FL_LOCKING,
++ FL_RESETING,
++ FL_OTPING,
++ FL_PM_SUSPENDED,
++} onenand_state_t;
++
++/**
++ * struct onenand_bufferram - OneNAND BufferRAM Data
++ * @block: block address in BufferRAM
++ * @page: page address in BufferRAM
++ * @valid: valid flag
++ */
++struct onenand_bufferram {
++ int block;
++ int page;
++ int valid;
++};
++
++/**
++ * struct onenand_chip - OneNAND Private Flash Chip Data
++ * @base: [BOARDSPECIFIC] address to access OneNAND
++ * @chipsize: [INTERN] the size of one chip for multichip arrays
++ * @device_id: [INTERN] device ID
++ * @density_mask: chip density, used for DDP devices
++ * @verstion_id: [INTERN] version ID
++ * @options: [BOARDSPECIFIC] various chip options. They can
++ * partly be set to inform onenand_scan about
++ * @erase_shift: [INTERN] number of address bits in a block
++ * @page_shift: [INTERN] number of address bits in a page
++ * @page_mask: [INTERN] a page per block mask
++ * @bufferram_index: [INTERN] BufferRAM index
++ * @bufferram: [INTERN] BufferRAM info
++ * @readw: [REPLACEABLE] hardware specific function for read short
++ * @writew: [REPLACEABLE] hardware specific function for write short
++ * @command: [REPLACEABLE] hardware specific function for writing
++ * commands to the chip
++ * @wait: [REPLACEABLE] hardware specific function for wait on ready
++ * @read_bufferram: [REPLACEABLE] hardware specific function for BufferRAM Area
++ * @write_bufferram: [REPLACEABLE] hardware specific function for BufferRAM Area
++ * @read_word: [REPLACEABLE] hardware specific function for read
++ * register of OneNAND
++ * @write_word: [REPLACEABLE] hardware specific function for write
++ * register of OneNAND
++ * @mmcontrol: sync burst read function
++ * @block_markbad: function to mark a block as bad
++ * @scan_bbt: [REPLACEALBE] hardware specific function for scanning
++ * Bad block Table
++ * @chip_lock: [INTERN] spinlock used to protect access to this
++ * structure and the chip
++ * @wq: [INTERN] wait queue to sleep on if a OneNAND
++ * operation is in progress
++ * @state: [INTERN] the current state of the OneNAND device
++ * @page_buf: data buffer
++ * @subpagesize: [INTERN] holds the subpagesize
++ * @ecclayout: [REPLACEABLE] the default ecc placement scheme
++ * @bbm: [REPLACEABLE] pointer to Bad Block Management
++ * @priv: [OPTIONAL] pointer to private chip date
++ */
++struct onenand_chip {
++ void __iomem *base; /* SFR base address (0x7010_0000 ~) */
++ void __iomem *dev_base; /* virtual address base for AHB Port Address (0x2000_0000 ~ 0x20FF_FFFF) */
++ unsigned int chipsize;
++ unsigned int device_id;
++ unsigned int version_id;
++ unsigned int density_mask;
++ unsigned int options;
++
++ unsigned int erase_shift;
++ unsigned int page_shift;
++ unsigned int page_mask;
++
++ unsigned int bufferram_index;
++ struct onenand_bufferram bufferram[MAX_BUFFERRAM];
++
++ uint (*command)(struct mtd_info *mtd, int cmd, loff_t address);
++ unsigned int (*read)(void __iomem *addr);
++ void (*write)(unsigned int value, void __iomem *addr);
++ int (*block_markbad)(struct mtd_info *mtd, loff_t ofs);
++ int (*scan_bbt)(struct mtd_info *mtd);
++
++ int irq;
++
++ spinlock_t chip_lock;
++ wait_queue_head_t wq;
++ onenand_state_t state;
++
++ unsigned char *page_buf;
++ unsigned char *oob_buf;
++
++ int subpagesize;
++ struct nand_ecclayout *ecclayout;
++
++ void *bbm;
++ void *priv;
++
++ int dma;
++ unsigned int dma_ch;
++ void *done; /* completion */
++};
++
++/*
++ * Options bits
++ */
++#define ONENAND_HAS_CONT_LOCK (0x0001)
++#define ONENAND_HAS_UNLOCK_ALL (0x0002)
++#define ONENAND_CHECK_BAD (0x0004)
++#define ONENAND_READ_POLLING (0x0010)
++#define ONENAND_READ_BURST (0x0020)
++#define ONENAND_READ_DMA (0x0040)
++#define ONENAND_PIPELINE_AHEAD (0x0100)
++#define ONENAND_READ_MASK (0x00F0)
++#define ONENAND_PAGEBUF_ALLOC (0x1000)
++#define ONENAND_OOBBUF_ALLOC (0x2000)
++
++/*
++ * OneNAND Flash Manufacturer ID Codes
++ */
++#define ONENAND_MFR_SAMSUNG 0xec
++
++/**
++ * struct onenand_manufacturers - NAND Flash Manufacturer ID Structure
++ * @name: Manufacturer name
++ * @id: manufacturer ID code of device.
++*/
++struct onenand_manufacturers {
++ int id;
++ char *name;
++};
++
++#endif /* __LINUX_MTD_ONENAND_H */
++
+diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
+index 28d284a..8d649ab 100644
+--- a/drivers/net/Kconfig
++++ b/drivers/net/Kconfig
+@@ -916,7 +916,7 @@ config SMC911X
+ tristate "SMSC LAN911[5678] support"
+ select CRC32
+ select MII
+- depends on ARCH_PXA || SH_MAGIC_PANEL_R2
++ depends on ARCH_PXA || SH_MAGIC_PANEL_R2 || MACH_SMDK6410 || MACH_SMDK2450 || MACH_SMDK2416 || MACH_SMDK6430
+ help
+ This is a driver for SMSC's LAN911x series of Ethernet chipsets
+ including the new LAN9115, LAN9116, LAN9117, and LAN9118.
+diff --git a/drivers/net/cs89x0.c b/drivers/net/cs89x0.c
+index 5717509..7515c2b 100644
+--- a/drivers/net/cs89x0.c
++++ b/drivers/net/cs89x0.c
+@@ -194,6 +194,24 @@ static unsigned int cs8900_irq_map[] = {IRQ_IXDP2X01_CS8900, 0, 0, 0};
+ #define CIRRUS_DEFAULT_IRQ VH_INTC_INT_NUM_CASCADED_INTERRUPT_1 /* Event inputs bank 1 - ID 35/bit 3 */
+ static unsigned int netcard_portlist[] __initdata = {CIRRUS_DEFAULT_BASE, 0};
+ static unsigned int cs8900_irq_map[] = {CIRRUS_DEFAULT_IRQ, 0, 0, 0};
++#elif defined(CONFIG_MACH_SMDK2443)
++#include <asm/irq.h>
++#include <linux/irq.h>
++#include <linux/interrupt.h>
++static unsigned int netcard_portlist[] __initdata = {(uint)S3C24XX_VA_CS8900 + 0x300, 0};
++static unsigned int cs8900_irq_map[] = {IRQ_EINT13,0,0,0};
++#elif defined(CONFIG_MACH_SMDK2450) || defined(CONFIG_MACH_SMDK2416)
++#include <asm/irq.h>
++#include <linux/irq.h>
++#include <linux/interrupt.h>
++static unsigned int netcard_portlist[] __initdata = {(uint)S3C24XX_VA_CS8900 + 0x300, 0};
++static unsigned int cs8900_irq_map[] = {IRQ_EINT4,0,0,0};
++#elif defined(CONFIG_MACH_SMDK6400) || defined(CONFIG_MACH_SMDK6410)
++#include <asm/irq.h>
++#include <linux/irq.h>
++#include <linux/interrupt.h>
++static unsigned int netcard_portlist[] __initdata = {(uint)S3C24XX_VA_CS8900 + 0x300, 0};
++static unsigned int cs8900_irq_map[] = {IRQ_EINT10,0,0,0};
+ #else
+ static unsigned int netcard_portlist[] __initdata =
+ { 0x300, 0x320, 0x340, 0x360, 0x200, 0x220, 0x240, 0x260, 0x280, 0x2a0, 0x2c0, 0x2e0, 0};
+@@ -316,6 +334,13 @@ struct net_device * __init cs89x0_probe(int unit)
+ int irq;
+ int io;
+
++#if defined(CONFIG_MACH_SMDK2443) || defined(CONFIG_MACH_SMDK2450) ||defined(CONFIG_MACH_SMDK2416) || defined(CONFIG_MACH_SMDK6400) || defined(CONFIG_MACH_SMDK6410)
++ if (unit > 0) {
++ err = -ENODEV;
++ return ERR_PTR(err);
++ }
++#endif
++
+ if (!dev)
+ return ERR_PTR(-ENODEV);
+
+@@ -518,6 +543,10 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
+ int retval;
+ DECLARE_MAC_BUF(mac);
+
++#if defined(CONFIG_MACH_SMDK2443) || defined(CONFIG_MACH_SMDK2450) || defined(CONFIG_MACH_SMDK2416)|| defined(CONFIG_MACH_SMDK6400) || defined(CONFIG_MACH_SMDK6410)
++ set_irq_type(cs8900_irq_map[0], IRQT_HIGH);
++#endif
++
+ /* Initialize the device structure. */
+ if (!modular) {
+ memset(lp, 0, sizeof(*lp));
+@@ -532,6 +561,10 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
+ #endif
+ lp->force = g_cs89x0_media__force;
+ #endif
++
++#if defined(CONFIG_MACH_SMDK2443) || defined(CONFIG_MACH_SMDK2450) ||defined(CONFIG_MACH_SMDK2416) || defined(CONFIG_MACH_SMDK6400) || defined(CONFIG_MACH_SMDK6410)
++ lp->force = FORCE_RJ45 | FORCE_HALF;
++#endif
+ }
+
+ #ifdef CONFIG_ARCH_PNX010X
+@@ -840,6 +873,15 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
+ printk(", programmed I/O");
+ }
+
++#if defined(CONFIG_MACH_SMDK2443) || defined(CONFIG_MACH_SMDK2450) || defined(CONFIG_MACH_SMDK2416) || defined(CONFIG_MACH_SMDK6400) || defined(CONFIG_MACH_SMDK6410)
++ dev->dev_addr[0] = 0x00;
++ dev->dev_addr[1] = 0x09;
++ dev->dev_addr[2] = 0xc0;
++ dev->dev_addr[3] = 0xff;
++ dev->dev_addr[4] = 0xec;
++ dev->dev_addr[5] = 0x48;
++#endif
++
+ /* print the ethernet address. */
+ printk(", MAC %s", print_mac(mac, dev->dev_addr));
+
+@@ -1128,6 +1170,9 @@ detect_tp(struct net_device *dev)
+ case FORCE_FULL:
+ writereg(dev, PP_TestCTL, readreg(dev, PP_TestCTL) | FDX_8900);
+ break;
++ default:
++ /* only for evaluation in order to get full duplex mode */
++ writereg(dev, PP_TestCTL, readreg(dev, PP_TestCTL) | FDX_8900);
+ }
+ fdx = readreg(dev, PP_TestCTL) & FDX_8900;
+ } else {
+@@ -1304,7 +1349,8 @@ net_open(struct net_device *dev)
+ else
+ #endif
+ {
+-#if !defined(CONFIG_MACH_IXDP2351) && !defined(CONFIG_ARCH_IXDP2X01) && !defined(CONFIG_ARCH_PNX010X)
++#if !defined(CONFIG_MACH_IXDP2351) && !defined(CONFIG_ARCH_IXDP2X01) && !defined(CONFIG_ARCH_PNX010X) && \
++ !defined(CONFIG_CPU_S3C2443) && !defined(CONFIG_CPU_S3C2450) && !defined(CONFIG_MACH_SMDK2416) && !defined(CONFIG_CPU_S3C6400) && !defined(CONFIG_CPU_S3C6410)
+ if (((1 << dev->irq) & lp->irq_map) == 0) {
+ printk(KERN_ERR "%s: IRQ %d is not in our map of allowable IRQs, which is %x\n",
+ dev->name, dev->irq, lp->irq_map);
+diff --git a/drivers/net/irda/Kconfig b/drivers/net/irda/Kconfig
+index 6580695..b427100 100644
+--- a/drivers/net/irda/Kconfig
++++ b/drivers/net/irda/Kconfig
+@@ -3,6 +3,12 @@ menu "Infrared-port device drivers"
+
+ comment "SIR device drivers"
+
++config S3C_SIR
++ tristate "S3C Irda SIR device"
++ depends on IRDA
++ help
++ Say Y here if you want to have S3C IRDA support.
++
+ config IRTTY_SIR
+ tristate "IrTTY (uses Linux serial driver)"
+ depends on IRDA
+diff --git a/drivers/net/irda/Makefile b/drivers/net/irda/Makefile
+index fefbb59..f9af62d 100644
+--- a/drivers/net/irda/Makefile
++++ b/drivers/net/irda/Makefile
+@@ -34,6 +34,7 @@ obj-$(CONFIG_EP7211_IR) += ep7211_ir.o
+ obj-$(CONFIG_AU1000_FIR) += au1k_ir.o
+ # New SIR drivers
+ obj-$(CONFIG_IRTTY_SIR) += irtty-sir.o sir-dev.o
++obj-$(CONFIG_S3C_SIR) += s3c-sir.o
+ # New dongles drivers for new SIR drivers
+ obj-$(CONFIG_ESI_DONGLE) += esi-sir.o
+ obj-$(CONFIG_TEKRAM_DONGLE) += tekram-sir.o
+diff --git a/drivers/net/irda/s3c-sir.c b/drivers/net/irda/s3c-sir.c
+new file mode 100644
+index 0000000..e65bfe2
+--- /dev/null
++++ b/drivers/net/irda/s3c-sir.c
+@@ -0,0 +1,1166 @@
++/*
++ * linux/drivers/net/irda/s3c-sir.c
++ *
++ * Copyright (C) 2000-2001 Russell King
++ * Copyright (C) 2006 Naushad K
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * Infra-red driver for the S3C embedded microprocessor
++ * Derived from sa1100 irda file.
++ *
++ */
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/types.h>
++#include <linux/init.h>
++#include <linux/errno.h>
++#include <linux/netdevice.h>
++#include <linux/slab.h>
++#include <linux/rtnetlink.h>
++#include <linux/interrupt.h>
++#include <linux/delay.h>
++#include <linux/platform_device.h>
++#include <linux/dma-mapping.h>
++#include <linux/delay.h>
++#include <linux/clk.h>
++
++#include <net/irda/irda.h>
++#include <net/irda/wrapper.h>
++#include <net/irda/irda_device.h>
++
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/hardware.h>
++#include <asm/mach/irda.h>
++
++#include <asm/arch/map.h>
++#include <asm/arch/hardware.h>
++//#include <asm/arch/regs-sir.h>
++#include <asm/plat-s3c/regs-serial.h>
++#include <asm/arch/regs-gpio.h>
++
++#include <asm/dma.h>
++#include <asm/dma-mapping.h>
++#include <asm/arch/dma.h>
++#include <asm/arch/irqs.h>
++
++//#define S3C_IRDA_DEBUG
++#undef S3C_IRDA_DEBUG
++
++#ifdef S3C_IRDA_DEBUG
++#define DBG(x...) printk(PFX x)
++#else
++#define DBG(x...) do { } while (0)
++#endif
++
++#define DRIVER_NAME "s3c-irda"
++#define PFX DRIVER_NAME ": "
++
++#if 0
++static int power_level = 3;
++static int tx_lpm;
++#endif
++static int max_rate = 115200;
++
++struct s3c_irda {
++ unsigned char hscr0;
++ unsigned char utcr4;
++ unsigned char power;
++ unsigned char open;
++
++ int speed;
++ int newspeed;
++
++ struct sk_buff *txskb;
++ struct sk_buff *rxskb;
++
++ struct net_device_stats stats;
++ struct device *dev;
++ struct irda_platform_data *pdata;
++ struct irlap_cb *irlap;
++ struct qos_info qos;
++
++ iobuff_t tx_buff;
++ iobuff_t rx_buff;
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ unsigned int sir_irq;
++#else
++ unsigned int sir_rx_irq;
++ unsigned int sir_tx_irq;
++ unsigned int sir_err_irq;
++#endif
++
++ struct resource *sir_mem;
++ struct clk *sir_clk;
++ void __iomem *sir_base;
++ int dma;
++};
++
++
++#define RESSIZE(ressource) (((ressource)->end - (ressource)->start)+1)
++#define S3C_SIR_MAX_RXLEN 2047
++
++static const unsigned int nSlotTable[16] = {0x0000,0x0080,0x0808,0x8888,0x2222,0x4924,0x4a52,0x54aa,
++ 0x5555,0xd555,0xd5d5,0xddd5,0xdddd,0xdfdd,0xdfdf,0xffdf};
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++// UART3 port has been reserved for Irda.
++#define sir_writereg(val,reg) writel(val, (S3C24XX_VA_UART3 + reg))
++#define sir_readreg(reg) readl(S3C24XX_VA_UART3 + reg)
++#else
++#define sir_writereg(val,reg) writel(val, (S3C24XX_VA_UART2 + reg))
++#define sir_readreg(reg) readl(S3C24XX_VA_UART2 + reg)
++#endif
++
++
++extern int clk_enable(struct clk *clk);
++extern unsigned long clk_get_rate(struct clk *clk);
++extern struct clk *clk_get(struct device *dev, const char *id);
++extern void clk_put(struct clk *clk);
++extern void clk_disable(struct clk *clk);
++
++
++static void s3c_irda_gpio_conf(void)
++{
++#if defined(CONFIG_CPU_S3C2412)
++ gpio_set_pin(S3C_GPH6, S3C_GPH6_TXD2);
++ gpio_set_pin(S3C_GPH7, S3C_GPH7_RXD2);
++ gpio_set_pin(S3C_GPG12, S3C_GPG12_OUTP);
++ gpio_set_pin(S3C_GPH8, S3C_GPH8_UCLK);
++ gpio_set_value(S3C_GPG12, 1);
++#endif
++
++
++#if defined(CONFIG_CPU_S3C2443)
++ gpio_set_pin(S3C_GPH4, S3C_GPH4_TXD2);
++ gpio_set_pin(S3C_GPH5, S3C_GPH5_RXD2);
++ gpio_set_pin(S3C_GPH12, S3C_GPH12_UCLK);
++#endif
++
++#if defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ s3c2410_gpio_cfgpin(S3C2410_GPH4, S3C2410_GPH4_TXD1);
++ s3c2410_gpio_cfgpin(S3C2410_GPH5, S3C2410_GPH5_RXD1);
++ s3c2410_gpio_cfgpin(S3C2410_GPH12, S3C2410_GPH12_EXTUART);
++#endif
++
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ gpio_set_pin(S3C_GPB3, S3C_GPB3_UART_TXD3);
++ gpio_set_pin(S3C_GPB2, S3C_GPB2_UART_RXD3);
++ //gpio_set_pin(S3C_GPH12, S3C_GPH12_UCLK);
++#endif
++
++}
++
++
++static int s3c_irda_sir_init(struct s3c_irda *si)
++{
++ u32 ucon,ulcon,ufcon;
++
++ DBG("%s\r\n",__FUNCTION__);
++
++ // Enable uart clock
++ clk_enable(si->sir_clk);
++
++ s3c_irda_gpio_conf();
++
++ ulcon = S3C_LCON_IRM | S3C_LCON_PNONE | S3C_LCON_CS8;
++ ucon = S3C_UCON_PCLK | S3C_UCON_TXILEVEL | S3C_UCON_RXILEVEL |S3C_UCON_RXFIFO_TOI| S3C_UCON_RX_ESIE | S3C_UCON_LOOP_OPERATION | S3C_UCON_NO_SBS | S3C_UCON_RXIRQMODE;
++ ufcon = S3C_UFCON_TXTRIG16 | S3C_UFCON_RXTRIG32 | S3C_UFCON_RESETBOTH| S3C_UFCON_FIFO_ENABLE;
++
++
++ sir_writereg(ulcon, S3C_ULCON);
++ sir_writereg(ufcon, S3C_UFCON);
++ sir_writereg(ucon, S3C_UCON);
++
++#if defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ enable_irq(si->sir_err_irq);
++ enable_irq(si->sir_tx_irq);
++ enable_irq(si->sir_rx_irq);
++#endif
++
++ return 0;
++}
++
++
++static int s3c_irda_sir_stop(struct s3c_irda *si)
++{
++ DBG("%s\r\n",__FUNCTION__);
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ disable_irq(si->sir_irq);
++#else
++ disable_irq(si->sir_rx_irq);
++ disable_irq(si->sir_tx_irq);
++ disable_irq(si->sir_err_irq);
++#endif
++
++ sir_writereg(0, S3C_ULCON);
++ sir_writereg(0, S3C_UFCON);
++ sir_writereg(0, S3C_UCON);
++
++ // disable uart clock
++ clk_disable(si->sir_clk);
++
++ return 0;
++}
++
++
++//extern unsigned int s3c24xx_pclk;
++static int s3c_irda_sir_setspeed(struct s3c_irda *si, u32 speed)
++{
++ u32 ubrdiv, pclk;
++ int slot = -1;
++
++ DBG("%s\r\n",__FUNCTION__);
++
++ pclk = clk_get_rate(si->sir_clk);
++ ubrdiv = (int) (pclk/16/speed ) - 1;
++
++ DBG("sir : pclk %d speed %d ubrdiv %d \r\n",pclk,speed,ubrdiv);
++
++ sir_writereg(ubrdiv,S3C_UBRDIV);
++
++ if(slot >= 0){
++ sir_writereg(nSlotTable[slot], S3C_UDIVSLOT);
++ }
++ return 0;
++}
++
++
++/*
++ * Set the IrDA communications speed.
++ */
++static int s3c_irda_set_speed(struct s3c_irda *si, int speed)
++{
++ unsigned long flags;
++ int ret = -EINVAL;
++
++ DBG("%s\r\n",__FUNCTION__);
++
++ switch (speed) {
++ case 9600: case 19200: case 38400:
++ case 57600: case 115200:
++
++ local_irq_save(flags);
++ s3c_irda_sir_setspeed(si,speed);
++ si->speed = speed;
++ local_irq_restore(flags);
++ ret = 0;
++ break;
++
++ default:
++ break;
++ }
++
++ return ret;
++
++}
++
++
++/*
++ * Control the power state of the IrDA transmitter.
++ * State:
++ * 0 - off
++ * 1 - short range, lowest power
++ * 2 - medium range, medium power
++ * 3 - maximum range, high power
++ *
++ * Currently, only assabet is known to support this.
++ */
++static int
++__s3c_irda_set_power(struct s3c_irda *si, unsigned int state)
++{
++ int ret = 0;
++ DBG("%s\r\n",__FUNCTION__);
++
++ if (si->pdata->set_power)
++ ret = si->pdata->set_power(si->dev, state);
++ return ret;
++}
++
++
++static inline int s3c_set_power(struct s3c_irda *si, unsigned int state)
++{
++ int ret;
++ DBG("%s\r\n",__FUNCTION__);
++
++ ret = __s3c_irda_set_power(si, state);
++ if (ret == 0)
++ si->power = state;
++
++ return ret;
++}
++
++static int s3c_irda_startup(struct s3c_irda *si)
++{
++ int ret;
++
++ /*
++ * Ensure that the ports for this device are setup correctly.
++ */
++
++ DBG("%s\r\n",__FUNCTION__);
++
++#if defined(CONFIG_CPU_S3C2412)
++ gpio_pullup(S3C_GPH6, 1);
++ gpio_pullup(S3C_GPH7, 1);
++ gpio_pullup(S3C_GPH8, 1);
++ gpio_pullup(S3C_GPG12, 1);
++#endif
++
++#if defined(CONFIG_CPU_S3C2443)
++ gpio_pullup(S3C_GPH4, 1);
++ gpio_pullup(S3C_GPH5, 1);
++ gpio_pullup(S3C_GPH12, 1);
++#endif
++
++#if defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ s3c2410_gpio_pullup(S3C2410_GPH4, 1);
++ s3c2410_gpio_pullup(S3C2410_GPH5, 1);
++ s3c2410_gpio_pullup(S3C2410_GPH12, 1);
++#endif
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ gpio_pullup(S3C_GPB3, 1);
++ gpio_pullup(S3C_GPB2, 1);
++// gpio_pullup(S3C_GPH12, 1);
++#endif
++
++ ret = s3c_irda_sir_init(si);
++ if(ret) {
++ printk("Irda Startup failed\r\n");
++ return ret;
++ }
++
++ ret = s3c_irda_set_speed(si, si->speed = 9600);
++ if (ret) {
++ s3c_irda_sir_stop(si);
++ }
++
++ return ret;
++}
++
++static void s3c_irda_shutdown(struct s3c_irda *si)
++{
++ DBG("%s\r\n",__FUNCTION__);
++ s3c_irda_sir_stop(si);
++}
++
++
++#ifdef CONFIG_PM
++/*
++ * Suspend the IrDA interface.
++ */
++static int s3c_irda_suspend(struct platform_device *pdev, pm_message_t state)
++{
++ struct net_device *dev = platform_get_drvdata(pdev);
++ struct s3c_irda *si;
++
++ DBG("%s\r\n",__FUNCTION__);
++
++ if (!dev)
++ return 0;
++
++ si = dev->priv;
++ if (si->open) {
++ /*
++ * Stop the transmit queue
++ */
++ netif_device_detach(dev);
++ //disable_irq(dev->irq);
++ s3c_irda_shutdown(si);
++ __s3c_irda_set_power(si, 0);
++ }
++
++ return 0;
++}
++
++
++/*
++ * Resume the IrDA interface.
++ */
++static int s3c_irda_resume(struct platform_device *pdev)
++{
++ struct net_device *dev = platform_get_drvdata(pdev);
++ struct s3c_irda *si;
++
++ DBG("%s\r\n",__FUNCTION__);
++
++ if (!dev)
++ return 0;
++
++ si = dev->priv;
++ if (si->open) {
++ /*
++ * If we missed a speed change, initialise at the new speed
++ * directly. It is debatable whether this is actually
++ * required, but in the interests of continuing from where
++ * we left off it is desireable. The converse argument is
++ * that we should re-negotiate at 9600 baud again.
++ */
++ if (si->newspeed) {
++ si->speed = si->newspeed;
++ si->newspeed = 0;
++ }
++
++ s3c_irda_startup(si);
++ __s3c_irda_set_power(si, si->power);
++
++ /*
++ * This automatically wakes up the queue
++ */
++ netif_device_attach(dev);
++ }
++
++ return 0;
++}
++#else
++#define s3c_irda_suspend NULL
++#define s3c_irda_resume NULL
++#endif
++
++
++/*
++ * SIR format interrupt service routines.
++ */
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++static irqreturn_t s3c_irda_sir_irq(int irq, void *dev_id)
++{
++
++ struct net_device *dev = dev_id;
++ struct s3c_irda *si = dev->priv;
++ int err_status;
++
++ u8 data;
++ u32 ucon, ufcon, ufstat, intpnd;
++
++ intpnd = sir_readreg(S3C_UINTPND);
++ DBG("%s == 0x%1x\r\n",__FUNCTION__, sir_readreg(S3C_UINTPND));
++
++ err_status = sir_readreg(S3C_UERSTAT);
++
++ if(err_status) {
++ printk("Error : 0x%x\n", sir_readreg(S3C_UERSTAT));
++ data = sir_readreg(S3C_URXH);
++ si->stats.rx_errors++;
++ si->stats.rx_frame_errors++;
++ }
++ if(intpnd & UART_ERR_INT){
++ printk(KERN_DEBUG "Uart Error = 0x%1x", intpnd);
++ sir_writereg(UART_ERR_INT , S3C_UINTPND);
++ sir_readreg(S3C_UINTPND);
++ }
++ if(intpnd & UART_RX_INT) {
++ DBG("Rx intr : 0x%1x\n", intpnd);
++ sir_writereg(UART_RX_INT , S3C_UINTPND);
++ sir_readreg(S3C_UINTPND);
++ DBG("Rx intr : 0x%1x\n", intpnd);
++
++ while ((sir_readreg(S3C_UFSTAT) & 0X3F) > 0) {
++ data = sir_readreg(S3C_URXH);
++ async_unwrap_char(dev, &si->stats, &si->rx_buff, data);
++ }
++ dev->last_rx = jiffies;
++
++ // Clear fifo
++ ufcon = sir_readreg(S3C_UFCON);
++ ufcon |= 3;
++ sir_writereg(ufcon,S3C_UFCON);
++ }
++
++ if(intpnd & UART_TX_INT) {
++
++ DBG("Tx intr : 0x%1x\n", intpnd);
++ sir_writereg(UART_TX_INT , S3C_UINTPND);
++ sir_readreg(S3C_UINTPND);
++ DBG("Tx intr : 0x%1x\n", intpnd);
++
++ if(si->tx_buff.len > 0) {
++
++ ufstat = sir_readreg(S3C_UFSTAT);
++ /*
++ * Transmitter FIFO is not full
++ */
++ while (!(ufstat & (1 << 14)) ) {
++ while(!(sir_readreg(S3C_UTRSTAT)&0x02));
++ sir_writereg(*si->tx_buff.data++,S3C_UTXH);
++ if(si->tx_buff.len == 0)
++ break;
++ si->tx_buff.len -= 1;
++ rmb();
++ ufstat = sir_readreg(S3C_UFSTAT);
++ }
++
++ if (si->tx_buff.len == 0) {
++ si->stats.tx_packets++;
++ si->stats.tx_bytes += si->tx_buff.data -
++ si->tx_buff.head;
++
++ /*
++ * We need to ensure that the transmitter has
++ * finished.
++ */
++ do {
++ rmb();
++ ufstat = sir_readreg(S3C_UFSTAT);
++ } while (((ufstat >> 8 )& 0x3f ) > 0);
++
++ /*
++ * Ok, we've finished transmitting. Now enable
++ * the receiver. Sometimes we get a receive IRQ
++ * immediately after a transmit...
++ */
++ ufcon = sir_readreg(S3C_UFCON);
++ ufcon |= 7;
++ sir_writereg(ufcon, S3C_UFCON);
++
++ ucon = sir_readreg(S3C_UCON);
++ ucon &= ~( 3 << 2);
++ sir_writereg(ucon, S3C_UCON);
++
++ if (si->newspeed) {
++ s3c_irda_set_speed(si, si->newspeed);
++ si->newspeed = 0;
++ }
++
++ if (1) {
++ ucon |= 1;
++ sir_writereg(ucon, S3C_UCON);
++ }
++
++ netif_wake_queue(dev);
++ }
++ }
++ }
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ if(intpnd & UART_MODEM_INT) {
++ printk("MODEM interrupt ...\n");
++ }
++#endif
++
++ return IRQ_HANDLED;
++
++}
++
++#else
++
++static irqreturn_t s3c_irda_sir_irq(int irq, void *dev_id, struct pt_regs *regs)
++{
++ struct net_device *dev = dev_id;
++ struct s3c_irda *si = dev->priv;
++ int err_status;
++ u8 data;
++
++#ifdef S3C_IRDA_DEBUG
++ printk("%s\r\n",__FUNCTION__);
++#endif
++
++ err_status = sir_readreg(S3C_UERSTAT);
++
++ if(err_status) {
++#ifdef S3C_IRDA_DEBUG
++ printk("Rx Error");
++#endif
++ data = sir_readreg(S3C_URXH);
++ si->stats.rx_errors++;
++ si->stats.rx_frame_errors++;
++ }
++
++ if(irq == si->sir_rx_irq) {
++#ifdef S3C_IRDA_DEBUG
++ printk("Rx intr");
++#endif
++
++ while ((sir_readreg(S3C_UFSTAT) & 0X3F) > 0) {
++ data = sir_readreg(S3C_URXH);
++ async_unwrap_char(dev, &si->stats, &si->rx_buff, data);
++ }
++ dev->last_rx = jiffies;
++ }
++
++ if((irq == si->sir_tx_irq) && (si->tx_buff.len > 0) ) {
++ u32 ufstat;
++#ifdef S3C_IRDA_DEBUG
++ printk("Tx intr");
++#endif
++
++ ufstat = sir_readreg(S3C_UFSTAT);
++ /*
++ * Transmitter FIFO is not full
++ */
++ while (!(ufstat & (1 << 14)) ){
++ while(!(sir_readreg(S3C_UTRSTAT)&0x02));
++ sir_writereg(*si->tx_buff.data++,S3C_UTXH);
++ if(si->tx_buff.len == 0)
++ break;
++ si->tx_buff.len -= 1;
++ rmb();
++ ufstat = sir_readreg(S3C_UFSTAT);
++ };
++
++ if (si->tx_buff.len == 0) {
++ u32 ucon,ufcon;
++
++ si->stats.tx_packets++;
++ si->stats.tx_bytes += si->tx_buff.data -
++ si->tx_buff.head;
++
++ /*
++ * We need to ensure that the transmitter has
++ * finished.
++ */
++ do {
++ rmb();
++ ufstat = sir_readreg(S3C_UFSTAT);
++ }while (((ufstat >> 8 )& 0x3f ) > 0);
++
++ /*
++ * Ok, we've finished transmitting. Now enable
++ * the receiver. Sometimes we get a receive IRQ
++ * immediately after a transmit...
++ */
++ ucon = sir_readreg(S3C_UCON);
++ ucon &= ~( 3 << 2);
++ sir_writereg(ucon,S3C_UCON);
++
++ ufcon = sir_readreg(S3C_UFCON);
++ ufcon |= 7;
++
++ sir_writereg(ufcon,S3C_UFCON);
++
++ if (si->newspeed) {
++ s3c_irda_set_speed(si, si->newspeed);
++ si->newspeed = 0;
++ }
++ if (1) {
++ ucon |= 1;
++ sir_writereg(ucon,S3C_UCON);
++ }
++
++ /* I'm hungry! */
++ netif_wake_queue(dev);
++ }
++ }
++ return IRQ_HANDLED;
++
++}
++#endif
++
++
++static int s3c_irda_hard_xmit(struct sk_buff *skb, struct net_device *dev)
++{
++ struct s3c_irda *si = dev->priv;
++ int speed = irda_get_next_speed(skb);
++
++ DBG("%s\r\n",__FUNCTION__);
++
++ /*
++ * Does this packet contain a request to change the interface
++ * speed? If so, remember it until we complete the transmission
++ * of this frame.
++ */
++ if (speed != si->speed && speed != -1) {
++ DBG("Irda New Speed %d bps\r\n",speed);
++
++ si->newspeed = speed;
++ }
++ /*
++ * If this is an empty frame, we can bypass a lot.
++ */
++ if (skb->len == 0) {
++ if (si->newspeed) {
++ si->newspeed = 0;
++ s3c_irda_set_speed(si, speed);
++ }
++ dev_kfree_skb(skb);
++ return 0;
++ }
++
++ {
++ u32 ucon, ufcon, len, bytes;
++ u8 *cp;
++
++ netif_stop_queue(dev);
++
++ cp = si->tx_buff.data = si->tx_buff.head;
++ len = si->tx_buff.len = async_wrap_skb(skb, si->tx_buff.data,
++ si->tx_buff.truesize);
++
++ /*
++ * Set the transmit interrupt enable. This will fire
++ * off an interrupt immediately. Note that we disable
++ * the receiver so we won't get spurious characteres
++ * received.
++ */
++
++ // Stop Rx
++ // UCON : Receive Mode Disable
++ ucon = sir_readreg(S3C_UCON);
++ ucon &= ~( 3); // UCON : Receive Mode Disable
++ sir_writereg(ucon,S3C_UCON);
++
++ // Clear fifo
++ ufcon = sir_readreg(S3C_UFCON);
++ ufcon |= 7;
++ sir_writereg(ufcon,S3C_UFCON);
++
++ // Enable Tx and Tx Int
++#if defined(CONFIG_CPU_S3C2412)
++ gpio_set_value(S3C_GPG12, 0);
++#endif
++
++ // UCON : Transmit Mode - 01 - Interrupt request or polling mode
++ ucon |= (1 << 2 );
++ sir_writereg(ucon,S3C_UCON);
++
++ dev_kfree_skb(skb);
++ }
++
++ dev->trans_start = jiffies;
++ return 0;
++}
++
++
++static int s3c_irda_ioctl(struct net_device *dev, struct ifreq *ifreq, int cmd)
++{
++ struct if_irda_req *rq = (struct if_irda_req *)ifreq;
++ struct s3c_irda *si = dev->priv;
++ int ret = -EOPNOTSUPP;
++
++ DBG("%s\r\n",__FUNCTION__);
++
++ switch (cmd) {
++ case SIOCSBANDWIDTH:
++
++ if (capable(CAP_NET_ADMIN)) {
++ /*
++ * We are unable to set the speed if the
++ * device is not running.
++ */
++ if (si->open) {
++ ret = s3c_irda_set_speed(si,
++ rq->ifr_baudrate);
++ } else {
++ DBG("s3c_irda_ioctl: SIOCSBANDWIDTH: !netif_running\n");
++ ret = 0;
++ }
++ }
++ break;
++
++ case SIOCSMEDIABUSY:
++ ret = -EPERM;
++ if (capable(CAP_NET_ADMIN)) {
++ irda_device_set_media_busy(dev, TRUE);
++ ret = 0;
++ }
++ break;
++
++ case SIOCGRECEIVING:
++ rq->ifr_receiving = si->rx_buff.state != OUTSIDE_FRAME;
++ ret = 0;
++ break;
++
++ default:
++ break;
++ }
++
++ return ret;
++}
++
++
++static struct net_device_stats *s3c_irda_stats(struct net_device *dev)
++{
++ struct s3c_irda *si = dev->priv;
++
++ DBG("%s\r\n",__FUNCTION__);
++ return &si->stats;
++}
++
++static int s3c_irda_start(struct net_device *dev)
++{
++ struct s3c_irda *si = dev->priv;
++ int err;
++
++ DBG("%s\r\n",__FUNCTION__);
++
++ si->speed = 9600;
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ err = request_irq(si->sir_irq, s3c_irda_sir_irq, 0, dev->name, dev);
++ if (err)
++ goto err_irq1;
++#else
++ err = request_irq(si->sir_rx_irq, s3c_irda_sir_irq, 0, dev->name, dev);
++ if (err)
++ goto err_irq1;
++ err = request_irq(si->sir_tx_irq, s3c_irda_sir_irq, 0, dev->name, dev);
++ if (err)
++ goto err_irq2;
++ err = request_irq(si->sir_err_irq, s3c_irda_sir_irq, 0, dev->name, dev);
++ if (err)
++ goto err_irlap;
++#endif
++
++ /*
++ * The interrupt must remain disabled for now.
++ */
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ disable_irq(si->sir_irq);
++#else
++ disable_irq(si->sir_rx_irq);
++ disable_irq(si->sir_tx_irq);
++ disable_irq(si->sir_err_irq);
++#endif
++
++ /*
++ * Setup the serial port for the specified speed.
++ */
++ err = s3c_irda_startup(si);
++ if (err)
++ goto err_irq2;
++
++ /*
++ * Open a new IrLAP layer instance.
++ */
++ si->irlap = irlap_open(dev, &si->qos, "s3c");
++
++ err = -ENOMEM;
++ if (!si->irlap)
++ goto err_irlap;
++
++ /*
++ * Now enable the interrupt and start the queue
++ */
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ enable_irq(si->sir_irq);
++#endif
++ si->open = 1;
++ netif_start_queue(dev);
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ sir_writereg(0,S3C_UINTMSK); // clean mask
++#endif
++ return 0;
++
++err_irlap:
++ si->open = 0;
++ s3c_irda_shutdown(si);
++err_irq2:
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ free_irq(si->sir_irq, dev);
++#else
++ free_irq(si->sir_err_irq, dev);
++ free_irq(si->sir_rx_irq, dev);
++ free_irq(si->sir_tx_irq, dev);
++#endif
++err_irq1:
++ return err;
++}
++
++static int s3c_irda_stop(struct net_device *dev)
++{
++ struct s3c_irda *si = dev->priv;
++
++ DBG("%s\r\n",__FUNCTION__);
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ disable_irq(si->sir_irq);
++#else
++ disable_irq(si->sir_rx_irq);
++ disable_irq(si->sir_tx_irq);
++ disable_irq(si->sir_err_irq);
++#endif
++
++ s3c_irda_shutdown(si);
++
++ /*
++ * If we have been doing DMA receive, make sure we
++ * tidy that up cleanly.
++ */
++ if (si->rxskb) {
++ dev_kfree_skb(si->rxskb);
++ si->rxskb = NULL;
++ }
++
++ /* Stop IrLAP */
++ if (si->irlap) {
++ irlap_close(si->irlap);
++ si->irlap = NULL;
++ }
++
++ netif_stop_queue(dev);
++ si->open = 0;
++
++ /*
++ * Free resources
++ */
++ //free_irq(dev->irq, dev);
++
++// s3c_set_power(si, 0);
++ return 0;
++}
++
++static int s3c_irda_init_iobuf(iobuff_t *io, int size)
++{
++ DBG("%s\r\n",__FUNCTION__);
++
++ io->head = kmalloc(size, GFP_KERNEL | GFP_DMA);
++
++ if (io->head != NULL) {
++ io->truesize = size;
++ io->in_frame = FALSE;
++ io->state = OUTSIDE_FRAME;
++ io->data = io->head;
++ }
++
++ return io->head ? 0 : -ENOMEM;
++}
++
++
++static int s3c_irda_init_mem( struct s3c_irda *si,
++ struct platform_device *pdev)
++{
++ int ret = 0;
++
++ DBG("%s\r\n",__FUNCTION__);
++
++ si->sir_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++
++ if (!si->sir_mem) {
++ printk("failed to get io sir_memory region resouce.\n");
++ return -ENOENT;
++ }
++
++ if(NULL == request_mem_region(si->sir_mem->start,
++ RESSIZE(si->sir_mem), pdev->name)) {
++ printk("failed to request io sir memory region.\n");
++ ret = -ENOENT;
++ }
++
++ return ret;
++}
++
++
++static int s3c_irda_free_mem( struct s3c_irda *si)
++{
++ DBG("%s\r\n",__FUNCTION__);
++
++// iounmap(si->sir_base);
++ release_mem_region(si->sir_mem->start, RESSIZE(si->sir_mem));
++ return 0;
++}
++
++static int s3c_irda_init_clk(struct device *dev,
++ struct s3c_irda *si)
++{
++ int ret;
++ DBG("%s \r\n",__FUNCTION__);
++
++#if defined(CONFIG_CPU_S3C2443)
++ si->sir_clk = clk_get(dev, "uart2");
++#endif
++
++#if defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ si->sir_clk = clk_get(dev, "uart");
++#endif
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ si->sir_clk = clk_get(dev, "UART2");
++#endif
++
++ if (IS_ERR(si->sir_clk)) {
++ DBG(KERN_INFO PFX "failed to find sir clock source.\n");
++ ret = PTR_ERR(si->sir_clk);
++ si->sir_clk = NULL;
++ goto sir_free_si;
++ }
++
++ /*Please edit for s3cx*/
++ if((ret = clk_enable(si->sir_clk))) {
++ printk("failed to use sir clock source.\n");
++ ret =-ENODEV;
++ goto sir_clk_free;
++ }
++
++ return 0;
++
++sir_clk_free:
++ clk_put(si->sir_clk);
++sir_free_si:
++ return ret;
++}
++
++
++static int s3c_irda_stop_clk( struct s3c_irda *si)
++{
++ DBG("%s\r\n",__FUNCTION__);
++
++ clk_disable(si->sir_clk);
++ clk_put(si->sir_clk);
++ return 0;
++}
++
++
++static int s3c_irda_probe(struct platform_device *pdev)
++{
++ struct net_device *dev;
++ struct s3c_irda *si;
++ unsigned int baudrate_mask;
++ int err;
++
++ DBG("%s\r\n",__FUNCTION__);
++
++ dev = alloc_irdadev(sizeof(struct s3c_irda));
++ if (!dev){
++ printk("alloc_irdadev Error! \r\n");
++ return -ENOMEM;
++ }
++
++ si = dev->priv;
++ si->dev = &pdev->dev;
++ si->pdata = pdev->dev.platform_data;
++
++ if( (err = s3c_irda_init_mem(si,pdev)) != 0)
++ goto err_mem;
++
++
++ err = s3c_irda_init_iobuf(&si->rx_buff, 14384);
++ if (err)
++ goto err_iobuf_rx;
++#if 0
++ err = s3c_irda_init_iobuf(&si->tx_buff, 4000);
++#else
++ err = s3c_irda_init_iobuf(&si->tx_buff, 14384);
++#endif
++
++ if (err)
++ goto err_iobuf_tx;
++
++ dev->hard_start_xmit = s3c_irda_hard_xmit;
++ dev->open = s3c_irda_start;
++ dev->stop = s3c_irda_stop;
++ dev->do_ioctl = s3c_irda_ioctl;
++ dev->get_stats = s3c_irda_stats;
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ si->sir_irq = platform_get_irq(pdev, 0);
++
++ if (si->sir_irq == 0) {
++ printk("failed to get interrupt resouce.\n");
++ goto err_irq;
++ }
++#else
++ si->sir_rx_irq = platform_get_irq(pdev, 0);
++ if (si->sir_rx_irq == 0) {
++#ifdef S3C_IRDA_DEBUG
++ printk("failed to get interrupt resouce.\n");
++#endif
++
++ goto err_irq;
++ }
++
++ si->sir_tx_irq = si->sir_rx_irq + 1;
++ si->sir_err_irq = si->sir_rx_irq + 2;
++#endif
++
++ if(s3c_irda_init_clk(&pdev->dev,si)!= 0)
++ goto err_irq;
++
++ irda_init_max_qos_capabilies(&si->qos);
++
++ baudrate_mask = IR_9600|IR_19200|IR_38400|IR_57600|IR_115200;
++
++ switch (max_rate) {
++ case 115200: baudrate_mask |= IR_115200;
++ case 57600: baudrate_mask |= IR_57600;
++ case 38400: baudrate_mask |= IR_38400;
++ case 19200: baudrate_mask |= IR_19200;
++ }
++
++ si->qos.baud_rate.bits &= baudrate_mask;
++ si->qos.min_turn_time.bits = 7;
++
++ irda_qos_bits_to_value(&si->qos);
++
++ sir_writereg(0, S3C_UCON);
++ sir_writereg(0, S3C_ULCON);
++
++// __raw_writel(7 << 3, S3C_SUBSRCPND);
++// __raw_writel(1 << 23, S3C_SRCPND);
++
++ err = register_netdev(dev);
++ if (err == 0){
++ platform_set_drvdata(pdev, dev);
++ DBG("%s success \r\n",__FUNCTION__);
++ }
++
++ if (err) {
++ s3c_irda_stop_clk(si);
++ err_irq:
++ kfree(si->tx_buff.head);
++ err_iobuf_tx:
++ kfree(si->rx_buff.head);
++ err_iobuf_rx:
++ s3c_irda_free_mem(si);
++ err_mem:
++ free_netdev(dev);
++ }
++ return err;
++}
++
++
++static int s3c_irda_remove(struct platform_device *pdev)
++{
++ struct net_device *dev = platform_get_drvdata(pdev);
++
++ DBG("%s\r\n",__FUNCTION__);
++
++ if (dev) {
++ struct s3c_irda *si = dev->priv;
++ unregister_netdev(dev);
++ kfree(si->tx_buff.head);
++ kfree(si->rx_buff.head);
++ s3c_irda_free_mem(si);
++ s3c_irda_stop_clk(si);
++ free_netdev(dev);
++ }
++
++ return 0;
++}
++
++
++static struct platform_driver s3c_irda_driver = {
++ .probe = s3c_irda_probe,
++ .remove = s3c_irda_remove,
++ .suspend = s3c_irda_suspend,
++ .resume = s3c_irda_resume,
++ .driver = {
++ .name = "s3c-irda",
++ },
++};
++
++static char banner[] = KERN_INFO "S3C IrDA driver, (c) 2006 Samsung Electronics\n";
++
++static int __init s3c_irda_init(void)
++{
++ printk(banner);
++ return platform_driver_register(&s3c_irda_driver);
++
++}
++
++
++static void __exit s3c_irda_exit(void)
++{
++ DBG("%s\r\n",__FUNCTION__);
++ platform_driver_unregister(&s3c_irda_driver);
++}
++
++
++module_init(s3c_irda_init);
++module_exit(s3c_irda_exit);
++
++MODULE_AUTHOR("alinuxguy <alinuxguy@samsung.com>");
++MODULE_DESCRIPTION("S3C IrDA driver");
++MODULE_LICENSE("GPL");
++
+diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
+index 76cc1d3..264bd05 100644
+--- a/drivers/net/smc911x.c
++++ b/drivers/net/smc911x.c
+@@ -1986,6 +1986,17 @@ static int __init smc911x_probe(struct net_device *dev, unsigned long ioaddr)
+
+ spin_lock_init(&lp->lock);
+
++#if defined(CONFIG_MACH_SMDK6410) || defined(CONFIG_MACH_SMDK2450) || defined(CONFIG_MACH_SMDK2416)
++ dev->dev_addr[0] = 0x00;
++ dev->dev_addr[1] = 0x09;
++ dev->dev_addr[2] = 0xc0;
++ dev->dev_addr[3] = 0xff;
++ dev->dev_addr[4] = 0xec;
++ dev->dev_addr[5] = 0x48;
++
++ SMC_SET_MAC_ADDR(dev->dev_addr);
++#endif
++
+ /* Get the MAC address */
+ SMC_GET_MAC_ADDR(dev->dev_addr);
+
+diff --git a/drivers/net/smc911x.h b/drivers/net/smc911x.h
+index 7defa63..9ae3c87 100644
+--- a/drivers/net/smc911x.h
++++ b/drivers/net/smc911x.h
+@@ -37,7 +37,7 @@
+ #define SMC_USE_16BIT 0
+ #define SMC_USE_32BIT 1
+ #define SMC_IRQ_SENSE IRQF_TRIGGER_FALLING
+-#elif defined(CONFIG_SH_MAGIC_PANEL_R2)
++#elif defined(CONFIG_SH_MAGIC_PANEL_R2) || defined(CONFIG_MACH_SMDK6410) || defined(CONFIG_MACH_SMDK2450) || defined(CONFIG_MACH_SMDK2416)
+ #define SMC_USE_SH_DMA 0
+ #define SMC_USE_16BIT 0
+ #define SMC_USE_32BIT 1
+diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c
+index e2041b4..de5dbcd 100644
+--- a/drivers/rtc/rtc-s3c.c
++++ b/drivers/rtc/rtc-s3c.c
+@@ -44,6 +44,14 @@ static int s3c_rtc_freq = 1;
+ static DEFINE_SPINLOCK(s3c_rtc_pie_lock);
+ static unsigned int tick_count;
+
++/* common function function */
++
++extern void s3c_rtc_set_pie(void __iomem *base, uint to);
++extern void s3c_rtc_set_freq_regs(void __iomem *base, uint freq, unchar *s3c_freq);
++extern void s3c_rtc_enable_set(struct platform_device *dev,void __iomem *base, int en);
++extern unsigned int s3c_rtc_set_bit_byte(void __iomem *base, uint offset, uint val);
++extern unsigned int s3c_rtc_read_alarm_status(void __iomem *base);
++
+ /* IRQ Handlers */
+
+ static irqreturn_t s3c_rtc_alarmirq(int irq, void *id)
+@@ -51,6 +59,9 @@ static irqreturn_t s3c_rtc_alarmirq(int irq, void *id)
+ struct rtc_device *rdev = id;
+
+ rtc_update_irq(rdev, 1, RTC_AF | RTC_IRQF);
++
++ s3c_rtc_set_bit_byte(s3c_rtc_base,S3C_INTP,S3C_INTP_ALM);
++
+ return IRQ_HANDLED;
+ }
+
+@@ -59,6 +70,9 @@ static irqreturn_t s3c_rtc_tickirq(int irq, void *id)
+ struct rtc_device *rdev = id;
+
+ rtc_update_irq(rdev, tick_count++, RTC_PF | RTC_IRQF);
++
++ s3c_rtc_set_bit_byte(s3c_rtc_base,S3C_INTP,S3C_INTP_TIC);
++
+ return IRQ_HANDLED;
+ }
+
+@@ -75,36 +89,32 @@ static void s3c_rtc_setaie(int to)
+ tmp |= S3C2410_RTCALM_ALMEN;
+
+ writeb(tmp, s3c_rtc_base + S3C2410_RTCALM);
++
++ if (s3c_rtc_read_alarm_status(s3c_rtc_base))
++
++ enable_irq_wake(s3c_rtc_alarmno);
++ else
++ disable_irq_wake(s3c_rtc_alarmno);
++
+ }
+
+ static void s3c_rtc_setpie(int to)
+ {
+- unsigned int tmp;
+-
+ pr_debug("%s: pie=%d\n", __FUNCTION__, to);
+
+ spin_lock_irq(&s3c_rtc_pie_lock);
+- tmp = readb(s3c_rtc_base + S3C2410_TICNT) & ~S3C2410_TICNT_ENABLE;
+
+- if (to)
+- tmp |= S3C2410_TICNT_ENABLE;
++ s3c_rtc_set_pie(s3c_rtc_base,to);
+
+- writeb(tmp, s3c_rtc_base + S3C2410_TICNT);
+ spin_unlock_irq(&s3c_rtc_pie_lock);
+ }
+
+ static void s3c_rtc_setfreq(int freq)
+ {
+- unsigned int tmp;
+-
+ spin_lock_irq(&s3c_rtc_pie_lock);
+- tmp = readb(s3c_rtc_base + S3C2410_TICNT) & S3C2410_TICNT_ENABLE;
+-
+- s3c_rtc_freq = freq;
+
+- tmp |= (128 / freq)-1;
++ s3c_rtc_set_freq_regs(s3c_rtc_base,freq,&s3c_rtc_freq);
+
+- writeb(tmp, s3c_rtc_base + S3C2410_TICNT);
+ spin_unlock_irq(&s3c_rtc_pie_lock);
+ }
+
+@@ -153,6 +163,7 @@ static int s3c_rtc_gettime(struct device *dev, struct rtc_time *rtc_tm)
+ static int s3c_rtc_settime(struct device *dev, struct rtc_time *tm)
+ {
+ void __iomem *base = s3c_rtc_base;
++
+ int year = tm->tm_year - 100;
+
+ pr_debug("set time %02d.%02d.%02d %02d/%02d/%02d\n",
+@@ -277,11 +288,6 @@ static int s3c_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)
+ disable_irq_wake(s3c_rtc_alarmno);
+ }
+
+- if (alrm->enabled)
+- enable_irq_wake(s3c_rtc_alarmno);
+- else
+- disable_irq_wake(s3c_rtc_alarmno);
+-
+ return 0;
+ }
+
+@@ -403,36 +409,7 @@ static void s3c_rtc_enable(struct platform_device *pdev, int en)
+ if (s3c_rtc_base == NULL)
+ return;
+
+- if (!en) {
+- tmp = readb(base + S3C2410_RTCCON);
+- writeb(tmp & ~S3C2410_RTCCON_RTCEN, base + S3C2410_RTCCON);
+-
+- tmp = readb(base + S3C2410_TICNT);
+- writeb(tmp & ~S3C2410_TICNT_ENABLE, base + S3C2410_TICNT);
+- } else {
+- /* re-enable the device, and check it is ok */
+-
+- if ((readb(base+S3C2410_RTCCON) & S3C2410_RTCCON_RTCEN) == 0){
+- dev_info(&pdev->dev, "rtc disabled, re-enabling\n");
+-
+- tmp = readb(base + S3C2410_RTCCON);
+- writeb(tmp|S3C2410_RTCCON_RTCEN, base+S3C2410_RTCCON);
+- }
+-
+- if ((readb(base + S3C2410_RTCCON) & S3C2410_RTCCON_CNTSEL)){
+- dev_info(&pdev->dev, "removing RTCCON_CNTSEL\n");
+-
+- tmp = readb(base + S3C2410_RTCCON);
+- writeb(tmp& ~S3C2410_RTCCON_CNTSEL, base+S3C2410_RTCCON);
+- }
+-
+- if ((readb(base + S3C2410_RTCCON) & S3C2410_RTCCON_CLKRST)){
+- dev_info(&pdev->dev, "removing RTCCON_CLKRST\n");
+-
+- tmp = readb(base + S3C2410_RTCCON);
+- writeb(tmp & ~S3C2410_RTCCON_CLKRST, base+S3C2410_RTCCON);
+- }
+- }
++ s3c_rtc_enable_set(pdev,base,en);
+ }
+
+ static int s3c_rtc_remove(struct platform_device *dev)
+@@ -457,6 +434,7 @@ static int s3c_rtc_probe(struct platform_device *pdev)
+ struct rtc_device *rtc;
+ struct resource *res;
+ int ret;
++ unsigned char bcd_tmp,bcd_loop;
+
+ pr_debug("%s: probe=%p\n", __FUNCTION__, pdev);
+
+@@ -522,7 +500,15 @@ static int s3c_rtc_probe(struct platform_device *pdev)
+ goto err_nortc;
+ }
+
+- rtc->max_user_freq = 128;
++ rtc->max_user_freq = S3C_MAX_CNT;
++
++ /* check rtc time */
++ for (bcd_loop = S3C2410_RTCSEC ; bcd_loop <= S3C2410_RTCYEAR ; bcd_loop +=0x4)
++ {
++ bcd_tmp = readb(s3c_rtc_base + bcd_loop);
++ if(((bcd_tmp & 0xf) > 0x9) || ((bcd_tmp & 0xf0) > 0x90))
++ writeb(0, s3c_rtc_base + bcd_loop);
++ }
+
+ platform_set_drvdata(pdev, rtc);
+ return 0;
+@@ -542,19 +528,38 @@ static int s3c_rtc_probe(struct platform_device *pdev)
+
+ /* RTC Power management control */
+
++static struct timespec s3c_rtc_delta;
+ static int ticnt_save;
+
+ static int s3c_rtc_suspend(struct platform_device *pdev, pm_message_t state)
+ {
++ struct rtc_time tm;
++ struct timespec time;
++
++ time.tv_nsec = 0;
+ /* save TICNT for anyone using periodic interrupts */
+ ticnt_save = readb(s3c_rtc_base + S3C2410_TICNT);
++ /* calculate time delta for suspend */
++
++ s3c_rtc_gettime(&pdev->dev, &tm);
++ rtc_tm_to_time(&tm, &time.tv_sec);
++ save_time_delta(&s3c_rtc_delta, &time);
+ s3c_rtc_enable(pdev, 0);
++
+ return 0;
+ }
+
+ static int s3c_rtc_resume(struct platform_device *pdev)
+ {
++ struct rtc_time tm;
++ struct timespec time;
++
++ time.tv_nsec = 0;
++
+ s3c_rtc_enable(pdev, 1);
++ s3c_rtc_gettime(&pdev->dev, &tm);
++ rtc_tm_to_time(&tm, &time.tv_sec);
++ restore_time_delta(&s3c_rtc_delta, &time);
+ writeb(ticnt_save, s3c_rtc_base + S3C2410_TICNT);
+ return 0;
+ }
+diff --git a/drivers/serial/21285.c b/drivers/serial/21285.c
+index facb678..101016e 100644
+--- a/drivers/serial/21285.c
++++ b/drivers/serial/21285.c
+@@ -5,7 +5,7 @@
+ *
+ * Based on drivers/char/serial.c
+ *
+- * $Id: 21285.c,v 1.37 2002/07/28 10:03:27 rmk Exp $
++ * $Id: 21285.c,v 1.2 2008/10/28 10:50:02 ihlee215 Exp $
+ */
+ #include <linux/module.h>
+ #include <linux/tty.h>
+@@ -488,7 +488,7 @@ static int __init serial21285_init(void)
+ {
+ int ret;
+
+- printk(KERN_INFO "Serial: 21285 driver $Revision: 1.37 $\n");
++ printk(KERN_INFO "Serial: 21285 driver $Revision: 1.2 $\n");
+
+ serial21285_setup_ports();
+
+@@ -509,5 +509,5 @@ module_init(serial21285_init);
+ module_exit(serial21285_exit);
+
+ MODULE_LICENSE("GPL");
+-MODULE_DESCRIPTION("Intel Footbridge (21285) serial driver $Revision: 1.37 $");
++MODULE_DESCRIPTION("Intel Footbridge (21285) serial driver $Revision: 1.2 $");
+ MODULE_ALIAS_CHARDEV(SERIAL_21285_MAJOR, SERIAL_21285_MINOR);
+diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig
+index d7e1996..f3f17d5 100644
+--- a/drivers/serial/Kconfig
++++ b/drivers/serial/Kconfig
+@@ -1,7 +1,7 @@
+ #
+ # Serial device configuration
+ #
+-# $Id: Kconfig,v 1.11 2004/03/11 18:08:04 lethal Exp $
++# $Id: Kconfig,v 1.2 2008/07/30 06:46:07 eyryu Exp $
+ #
+
+ menu "Serial drivers"
+@@ -461,6 +461,67 @@ config SERIAL_S3C2410_CONSOLE
+ your boot loader about how to pass options to the kernel at
+ boot time.)
+
++config SERIAL_S3C6400
++ tristate "Samsung S3C6400 Serial port support"
++ depends on CPU_S3C6400 || CPU_S3C6410
++ select SERIAL_CORE
++ help
++ Support for the on-chip UARTs on the Samsung S3C64XX series CPUs,
++ providing /dev/ttySAC0, 1 and 2 (note, some machines may not
++ provide all of these ports, depending on how the serial port
++ pins are configured.
++
++ Currently this driver supports the UARTS on the S3C6400 CPU.
++
++config SERIAL_S3C64XX_CONSOLE
++ bool "Support for console on S3C64XX serial port"
++ depends on SERIAL_S3C6400=y
++ select SERIAL_CORE_CONSOLE
++ help
++ Allow selection of the S3C64XX on-board serial ports for use as
++ an virtual console.
++
++ Even if you say Y here, the currently visible virtual console
++ (/dev/tty0) will still be used as the system console by default, but
++ you can alter that using a kernel command line option such as
++ "console=ttySACx". (Try "man bootparam" or see the documentation of
++ your boot loader about how to pass options to the kernel at
++ boot time.)
++
++config SERIAL_S3C64XX_HS_UART
++ bool "Support for High speed UART(Max.4000000bps) on S3C64XX serial port"
++ depends on SERIAL_S3C6400=y
++ select SERIAL_CORE
++ help
++ Allow High speed UART on the S3C64XX on-board serial ports
++
++config SERIAL_S5PC100
++ tristate "Samsung S5PC100 Serial port support"
++ depends on CPU_S5PC100
++ select SERIAL_CORE
++ help
++ Support for the on-chip UARTs on the Samsung S3C64XX series CPUs,
++ providing /dev/ttySAC0, 1 and 2 (note, some machines may not
++ provide all of these ports, depending on how the serial port
++ pins are configured.
++
++ Currently this driver supports the UARTS on the S5PC100 CPU.
++
++config SERIAL_S5PC1XX_CONSOLE
++ bool "Support for console on S5PC1XX serial port"
++ depends on SERIAL_S5PC100=y
++ select SERIAL_CORE_CONSOLE
++ help
++ Allow selection of the S5PC1XX on-board serial ports for use as
++ an virtual console.
++
++ Even if you say Y here, the currently visible virtual console
++ (/dev/tty0) will still be used as the system console by default, but
++ you can alter that using a kernel command line option such as
++ "console=ttySACx". (Try "man bootparam" or see the documentation of
++ your boot loader about how to pass options to the kernel at
++ boot time.)
++
+ config SERIAL_DZ
+ bool "DECstation DZ serial driver"
+ depends on MACH_DECSTATION && 32BIT
+diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile
+index af6377d..8d45997 100644
+--- a/drivers/serial/Makefile
++++ b/drivers/serial/Makefile
+@@ -1,7 +1,7 @@
+ #
+ # Makefile for the kernel serial device drivers.
+ #
+-# $Id: Makefile,v 1.8 2002/07/21 21:32:30 rmk Exp $
++# $Id: Makefile,v 1.2 2008/07/30 06:46:07 eyryu Exp $
+ #
+
+ obj-$(CONFIG_SERIAL_CORE) += serial_core.o
+@@ -29,6 +29,8 @@ obj-$(CONFIG_SERIAL_PNX8XXX) += pnx8xxx_uart.o
+ obj-$(CONFIG_SERIAL_SA1100) += sa1100.o
+ obj-$(CONFIG_SERIAL_BFIN) += bfin_5xx.o
+ obj-$(CONFIG_SERIAL_S3C2410) += s3c2410.o
++obj-$(CONFIG_SERIAL_S3C6400) += s3c6400.o
++obj-$(CONFIG_SERIAL_S5PC100) += s5pc100.o
+ obj-$(CONFIG_SERIAL_SUNCORE) += suncore.o
+ obj-$(CONFIG_SERIAL_SUNHV) += sunhv.o
+ obj-$(CONFIG_SERIAL_SUNZILOG) += sunzilog.o
+diff --git a/drivers/serial/s3c2410.c b/drivers/serial/s3c2410.c
+index e773c8e..2ca26fa 100644
+--- a/drivers/serial/s3c2410.c
++++ b/drivers/serial/s3c2410.c
+@@ -643,7 +643,14 @@ static int s3c24xx_serial_calcbaud(struct baud_calc *calc,
+ rate /= clksrc->divisor;
+
+ calc->clksrc = clksrc;
++
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ /* Error correction */
++ calc->quot = (rate) / (16 * baud);
++#else
++ /* Error to calculation of UART BAUD RATE DIVISOR */
+ calc->quot = (rate + (8 * baud)) / (16 * baud);
++#endif
+ calc->calc = (rate / (calc->quot * 16));
+
+ calc->quot--;
+@@ -1364,8 +1371,7 @@ static inline void s3c2410_serial_exit(void)
+
+ #endif /* CONFIG_CPU_S3C2410 */
+
+-#if defined(CONFIG_CPU_S3C2440) || defined(CONFIG_CPU_S3C2442)
+-
++#if defined(CONFIG_CPU_S3C2440)||defined(CONFIG_CPU_S3C2442)||defined(CONFIG_CPU_S3C2443)||defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
+ static int s3c2440_serial_setsource(struct uart_port *port,
+ struct s3c24xx_uart_clksrc *clk)
+ {
+@@ -1379,7 +1385,11 @@ static int s3c2440_serial_setsource(struct uart_port *port,
+ ucon |= S3C2440_UCON_UCLK;
+ else if (strcmp(clk->name, "pclk") == 0)
+ ucon |= S3C2440_UCON_PCLK;
++#if defined(CONFIG_CPU_S3C2443)||defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ else if (strcmp(clk->name, "esysclk") == 0)
++#else
+ else if (strcmp(clk->name, "fclk") == 0)
++#endif
+ ucon |= S3C2440_UCON_FCLK;
+ else {
+ printk(KERN_ERR "unknown clock source %s\n", clk->name);
+@@ -1436,8 +1446,11 @@ static int s3c2440_serial_getsource(struct uart_port *port,
+ /* manual calims 44, seems to be 9 */
+ clk->divisor = 9;
+ }
+-
++#if defined(CONFIG_CPU_S3C2443)||defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ clk->name = "esysclk";
++#else
+ clk->name = "fclk";
++#endif
+ break;
+ }
+
+diff --git a/drivers/serial/s3c6400.c b/drivers/serial/s3c6400.c
+new file mode 100644
+index 0000000..89e15c7
+--- /dev/null
++++ b/drivers/serial/s3c6400.c
+@@ -0,0 +1,1676 @@
++/*
++ * based on linux/drivers/serial/s3c6400.c
++ * modified by ihlee215. ts=8
++ *
++ * Driver for onboard UARTs on the Samsung S3C
++ *
++ * Based on drivers/char/serial.c and drivers/char/21285.c
++ *
++ * Ben Dooks, (c) 2003 Simtec Electronics
++ *
++ * Changelog:
++ *
++ * 22-Jul-2004 BJD Finished off device rewrite
++ *
++ * 21-Jul-2004 BJD Thanks to <herbet@13thfloor.at> for pointing out
++ * problems with baud rate and loss of IR settings. Update
++ * to add configuration via platform_device structure
++ *
++ * 28-Sep-2004 BJD Re-write for the following items
++ * - S3C serial support
++ * - Power Management support
++ * - Fix console via IrDA devices
++ * - SysReq (Herbert Ptzl)
++ * - Break character handling (Herbert Ptzl)
++ * - spin-lock initialisation (Dimitry Andric)
++ * - added clock control
++ * - updated init code to use platform_device info
++*/
++
++/* Note on 24XX error handling
++ *
++ * The s3c2410 manual has a love/hate affair with the contents of the
++ * UERSTAT register in the UART blocks, and keeps marking some of the
++ * error bits as reserved. Having checked with the s3c2410x01,
++ * it copes with BREAKs properly, so I am happy to ignore the RESERVED
++ * feature from the latter versions of the manual.
++ *
++ * If it becomes aparrent that latter versions of the 2410 remove these
++ * bits, then action will have to be taken to differentiate the versions
++ * and change the policy on BREAK
++ *
++ * BJD, 04-Nov-2004
++*/
++
++#if defined(CONFIG_SERIAL_S3C64XX_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
++#define SUPPORT_SYSRQ
++#endif
++
++#include <linux/module.h>
++#include <linux/ioport.h>
++#include <linux/platform_device.h>
++#include <linux/init.h>
++#include <linux/sysrq.h>
++#include <linux/console.h>
++#include <linux/tty.h>
++#include <linux/tty_flip.h>
++#include <linux/serial_core.h>
++#include <linux/serial.h>
++#include <linux/delay.h>
++#include <linux/clk.h>
++
++#include <asm/io.h>
++#include <asm/irq.h>
++
++#include <asm/hardware.h>
++
++#include <asm/arch/gpio.h>
++#include <asm/plat-s3c/regs-serial.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-s3c-clock.h>
++
++/* structures */
++
++struct s3c_uart_info {
++ char *name;
++ unsigned int type;
++ unsigned int fifosize;
++ unsigned long rx_fifomask;
++ unsigned long rx_fifoshift;
++ unsigned long rx_fifofull;
++ unsigned long tx_fifomask;
++ unsigned long tx_fifoshift;
++ unsigned long tx_fifofull;
++
++ /* clock source control */
++
++ int (*get_clksrc)(struct uart_port *, struct s3c24xx_uart_clksrc *clk);
++ int (*set_clksrc)(struct uart_port *, struct s3c24xx_uart_clksrc *clk);
++
++ /* uart controls */
++ int (*reset_port)(struct uart_port *, struct s3c2410_uartcfg *);
++};
++
++struct s3c_uart_port {
++ unsigned char rx_claimed;
++ unsigned char tx_claimed;
++
++ struct s3c_uart_info *info;
++ struct s3c24xx_uart_clksrc *clksrc;
++ struct clk *clk;
++ struct clk *baudclk;
++ struct uart_port port;
++};
++
++
++/* configuration defines */
++
++#if 0
++#if 1
++/* send debug to the low-level output routines */
++
++extern void printascii(const char *);
++
++static void
++s3c_serial_dbg(const char *fmt, ...)
++{
++ va_list va;
++ char buff[256];
++
++ va_start(va, fmt);
++ vsprintf(buff, fmt, va);
++ va_end(va);
++
++ printascii(buff);
++}
++
++#define dbg(x...) s3c_serial_dbg(x)
++
++#else
++#define dbg(x...) printk(KERN_DEBUG "s3c: ");
++#endif
++#else /* no debug */
++#define dbg(x...) do {} while(0)
++#endif
++
++/* UART name and device definitions */
++#define S3C_SERIAL_NAME "ttySAC"
++//#define S3C_SERIAL_MAJOR TTY_MAJOR
++#define S3C_SERIAL_MAJOR 204
++#define S3C_SERIAL_MINOR 64
++
++/* conversion functions */
++#define s3c_dev_to_port(__dev) (struct uart_port *)dev_get_drvdata(__dev)
++#define s3c_dev_to_cfg(__dev) (struct s3c2410_uartcfg *)((__dev)->platform_data)
++
++/* port irq numbers */
++#define TX_IRQ(port) ((port)->irq + 1)
++#define RX_IRQ(port) ((port)->irq)
++#define UART_IRQ(port) ((port)->irq)
++
++/* register access controls */
++#define portaddr(port, reg) ((port)->membase + (reg))
++
++#define rd_regb(port, reg) (__raw_readb(portaddr(port, reg)))
++#define rd_regl(port, reg) (__raw_readl(portaddr(port, reg)))
++
++#define wr_regb(port, reg, val) \
++ do { __raw_writeb(val, portaddr(port, reg)); } while(0)
++
++#define wr_regl(port, reg, val) \
++ do { __raw_writel(val, portaddr(port, reg)); } while(0)
++
++/* macros to change one thing to another */
++#define tx_enabled(port) ((port)->unused[0])
++#define rx_enabled(port) ((port)->unused[1])
++
++const unsigned int nSlotTable[16] = {0x0000, 0x0080, 0x0808, 0x0888, 0x2222, 0x4924, 0x4a52, 0x54aa,
++ 0x5555, 0xd555, 0xd5d5, 0xddd5, 0xdddd, 0xdfdd, 0xdfdf, 0xffdf};
++
++#ifdef UART_HAS_INTMSK
++static inline void uart_enable_irq (struct uart_port *port, uint val)
++{
++ uint mask;
++
++ mask = rd_regl(port, S3C_UINTMSK);
++ mask &= ~val;
++ wr_regl(port, S3C_UINTMSK, mask);
++}
++
++static inline void uart_disable_irq (struct uart_port *port, uint val)
++{
++ uint mask;
++
++ mask = rd_regl(port, S3C_UINTMSK);
++ mask |= val;
++ wr_regl(port, S3C_UINTMSK, mask);
++
++}
++#endif
++
++/* flag to ignore all characters comming in */
++#define RXSTAT_DUMMY_READ (0x10000000)
++
++/* now comes the code to initialise either the s3c serial
++ * port information
++ */
++static int s3c_serial_getsource_hw(struct uart_port *port,
++ struct s3c24xx_uart_clksrc *clk)
++{
++ unsigned long ucon = rd_regl(port, S3C_UCON);
++
++ switch (ucon & S3C_UCON_CLKMASK) {
++ case S3C_UCON_UCLK:
++ clk->divisor = 1;
++ clk->name = "uclk";
++ break;
++
++ case S3C_UCON_PCLK:
++ case S3C_UCON_PCLK2:
++ clk->divisor = 1;
++ clk->name = "pclk";
++ break;
++
++ case S3C_UCON_FCLK:
++
++#if defined (CONFIG_SERIAL_S3C64XX_HS_UART)
++
++ clk->divisor = 2; /* For 4000000bps, epll_clk_192Mhz is needed. */
++ clk->name = "epll_clk_uart_192m";
++
++#else
++
++ clk->divisor = 2;
++ clk->name = "mpll_clk_uart";
++
++#endif
++ break;
++ }
++
++ return 0;
++}
++
++
++static int s3c_serial_setsource_hw(struct uart_port *port,
++ struct s3c24xx_uart_clksrc *clk)
++{
++ unsigned long ucon = rd_regl(port, S3C_UCON);
++
++ ucon &= ~S3C_UCON_CLKMASK;
++
++ if (strcmp(clk->name, "uclk") == 0)
++ ucon |= S3C_UCON_UCLK;
++ else if (strcmp(clk->name, "pclk") == 0)
++ ucon |= S3C_UCON_PCLK;
++ else if (strcmp(clk->name, "epll_clk_uart_192m") == 0)
++ ucon |= S3C_UCON_FCLK;
++ else if (strcmp(clk->name, "mpll_clk_uart") == 0)
++ ucon |= S3C_UCON_FCLK;
++ else {
++ printk(KERN_ERR "unknown clock source %s\n", clk->name);
++ return -EINVAL;
++ }
++
++ wr_regl(port, S3C_UCON, ucon);
++ return 0;
++}
++
++static inline struct s3c_uart_port *to_ourport(struct uart_port *port)
++{
++ return container_of(port, struct s3c_uart_port, port);
++}
++
++/* translate a port to the device name */
++
++static inline const char *s3c_serial_portname(struct uart_port *port)
++{
++ return to_platform_device(port->dev)->name;
++}
++
++static int s3c_serial_txempty_nofifo(struct uart_port *port)
++{
++ return (rd_regl(port, S3C_UTRSTAT) & S3C_UTRSTAT_TXE);
++}
++
++static void s3c_serial_rx_enable(struct uart_port *port)
++{
++ unsigned long flags;
++ unsigned int ucon, ufcon;
++ int count = 10000;
++
++ spin_lock_irqsave(&port->lock, flags);
++
++ while (--count && !s3c_serial_txempty_nofifo(port))
++ udelay(100);
++
++ ufcon = rd_regl(port, S3C_UFCON);
++ ufcon |= S3C_UFCON_RESETRX;
++ wr_regl(port, S3C_UFCON, ufcon);
++
++ ucon = rd_regl(port, S3C_UCON);
++ ucon |= S3C_UCON_RXIRQMODE;
++ wr_regl(port, S3C_UCON, ucon);
++
++ rx_enabled(port) = 1;
++ spin_unlock_irqrestore(&port->lock, flags);
++}
++
++static void s3c_serial_rx_disable(struct uart_port *port)
++{
++ unsigned long flags;
++ unsigned int ucon;
++
++ spin_lock_irqsave(&port->lock, flags);
++
++ ucon = rd_regl(port, S3C_UCON);
++ ucon &= ~S3C_UCON_RXIRQMODE;
++ wr_regl(port, S3C_UCON, ucon);
++
++ rx_enabled(port) = 0;
++ spin_unlock_irqrestore(&port->lock, flags);
++}
++
++static void s3c_serial_stop_tx(struct uart_port *port)
++{
++ if (tx_enabled(port)) {
++#ifdef UART_HAS_INTMSK
++ uart_disable_irq(port, UART_TX_INT);
++#else
++ disable_irq(TX_IRQ(port));
++#endif
++ tx_enabled(port) = 0;
++ if (port->flags & UPF_CONS_FLOW)
++ s3c_serial_rx_enable(port);
++ }
++}
++
++static void s3c_serial_start_tx(struct uart_port *port)
++{
++ if (!tx_enabled(port)) {
++ if (port->flags & UPF_CONS_FLOW)
++ s3c_serial_rx_disable(port);
++
++#ifdef UART_HAS_INTMSK
++ uart_enable_irq(port, UART_TX_INT);
++#else
++ enable_irq(TX_IRQ(port));
++#endif
++ tx_enabled(port) = 1;
++ }
++}
++
++
++static void s3c_serial_stop_rx(struct uart_port *port)
++{
++ if (rx_enabled(port)) {
++#ifdef UART_HAS_INTMSK
++ uart_disable_irq(port, UART_RX_INT);
++#else
++ disable_irq(RX_IRQ(port));
++#endif
++ rx_enabled(port) = 0;
++ }
++}
++
++static void s3c_serial_enable_ms(struct uart_port *port)
++{
++}
++
++static inline struct s3c_uart_info *s3c_port_to_info(struct uart_port *port)
++{
++ return to_ourport(port)->info;
++}
++
++static inline struct s3c2410_uartcfg *s3c_port_to_cfg(struct uart_port *port)
++{
++ if (port->dev == NULL)
++ return NULL;
++
++ return (struct s3c2410_uartcfg *)port->dev->platform_data;
++}
++
++static int s3c_serial_rx_fifocnt(struct s3c_uart_port *ourport,
++ unsigned long ufstat)
++{
++ struct s3c_uart_info *info = ourport->info;
++
++ if (ufstat & info->rx_fifofull)
++ return info->fifosize;
++
++ return (ufstat & info->rx_fifomask) >> info->rx_fifoshift;
++}
++
++
++/* ? - where has parity gone?? */
++#define S3C_UERSTAT_PARITY (0x1000)
++
++static irqreturn_t
++s3c_serial_rx_chars(int irq, void *dev_id)
++{
++ struct s3c_uart_port *ourport = dev_id;
++ struct uart_port *port = &ourport->port;
++ struct tty_struct *tty = port->info->tty;
++ unsigned int ufcon, ch, flag, ufstat, uerstat;
++ int max_count = 64;
++
++ while (max_count-- > 0) {
++ ufcon = rd_regl(port, S3C_UFCON);
++ ufstat = rd_regl(port, S3C_UFSTAT);
++
++ if (s3c_serial_rx_fifocnt(ourport, ufstat) == 0)
++ break;
++
++ uerstat = rd_regl(port, S3C_UERSTAT);
++ ch = rd_regb(port, S3C_URXH);
++
++ if (port->flags & UPF_CONS_FLOW) {
++ int txe = s3c_serial_txempty_nofifo(port);
++
++ if (rx_enabled(port)) {
++ if (!txe) {
++ rx_enabled(port) = 0;
++ continue;
++ }
++ } else {
++ if (txe) {
++ ufcon |= S3C_UFCON_RESETRX;
++ wr_regl(port, S3C_UFCON, ufcon);
++ rx_enabled(port) = 1;
++ goto out;
++ }
++ continue;
++ }
++ }
++
++ /* insert the character into the buffer */
++
++ flag = TTY_NORMAL;
++ port->icount.rx++;
++
++ if (uerstat & S3C_UERSTAT_ANY) {
++ dbg("rxerr: port ch=0x%02x, rxs=0x%08x\n", ch, uerstat);
++
++ /* check for break */
++ if (uerstat & S3C_UERSTAT_BREAK) {
++ dbg("break!\n");
++ port->icount.brk++;
++ flag = TTY_BREAK;
++ if (uart_handle_break(port))
++ goto recv_char;
++ }
++
++ if (uerstat & S3C_UERSTAT_FRAME)
++ port->icount.frame++;
++ if (uerstat & S3C_UERSTAT_OVERRUN)
++ port->icount.overrun++;
++
++ uerstat &= port->read_status_mask;
++
++ if (uerstat & S3C_UERSTAT_BREAK)
++ flag = TTY_BREAK;
++ else if (uerstat & S3C_UERSTAT_PARITY)
++ flag = TTY_PARITY;
++ else if (uerstat & ( S3C_UERSTAT_FRAME | S3C_UERSTAT_OVERRUN))
++ flag = TTY_FRAME;
++
++ uart_insert_char(port, uerstat, S3C_UERSTAT_OVERRUN, ch, flag);
++ }
++
++ uart_handle_sysrq_char(port, ch);
++ recv_char:
++ uart_insert_char(port, uerstat, S3C_UERSTAT_OVERRUN, ch, flag);
++
++ ignore_char:
++ continue;
++ }
++ tty_flip_buffer_push(tty);
++
++ out:
++ return IRQ_HANDLED;
++}
++
++static irqreturn_t s3c_serial_tx_chars(int irq, void *id)
++{
++ struct s3c_uart_port *ourport = id;
++ struct uart_port *port = &ourport->port;
++ struct circ_buf *xmit = &port->info->xmit;
++ int count = 256;
++
++ if (port->x_char) {
++ wr_regb(port, S3C_UTXH, port->x_char);
++ port->icount.tx++;
++ port->x_char = 0;
++ goto out;
++ }
++
++ /* if there isnt anything more to transmit, or the uart is now
++ * stopped, disable the uart and exit
++ */
++
++ if (uart_circ_empty(xmit) || uart_tx_stopped(port)) {
++ s3c_serial_stop_tx(port);
++ goto out;
++ }
++
++ /* try and drain the buffer... */
++
++ while (!uart_circ_empty(xmit) && count-- > 0) {
++ if (rd_regl(port, S3C_UFSTAT) & ourport->info->tx_fifofull)
++ break;
++
++ wr_regb(port, S3C_UTXH, xmit->buf[xmit->tail]);
++ xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
++ port->icount.tx++;
++ }
++
++ if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
++ uart_write_wakeup(port);
++
++ if (uart_circ_empty(xmit))
++ s3c_serial_stop_tx(port);
++
++ out:
++ return IRQ_HANDLED;
++}
++
++static unsigned int s3c_serial_tx_empty(struct uart_port *port)
++{
++ struct s3c_uart_info *info = s3c_port_to_info(port);
++ unsigned long ufstat = rd_regl(port, S3C_UFSTAT);
++ unsigned long ufcon = rd_regl(port, S3C_UFCON);
++
++ if (ufcon & S3C_UFCON_FIFOMODE) {
++ if ((ufstat & info->tx_fifomask) != 0 ||
++ (ufstat & info->tx_fifofull))
++ return 0;
++
++ return 1;
++ }
++
++ return s3c_serial_txempty_nofifo(port);
++}
++
++/* no modem control lines */
++static unsigned int s3c_serial_get_mctrl(struct uart_port *port)
++{
++ unsigned int umstat = rd_regb(port,S3C_UMSTAT);
++
++ if (umstat & S3C_UMSTAT_CTS)
++ return TIOCM_CAR | TIOCM_DSR | TIOCM_CTS;
++ else
++ return TIOCM_CAR | TIOCM_DSR;
++}
++
++static void s3c_serial_set_mctrl(struct uart_port *port, unsigned int mctrl)
++{
++ /* todo - possibly remove AFC and do manual CTS */
++}
++
++static void s3c_serial_break_ctl(struct uart_port *port, int break_state)
++{
++ unsigned long flags;
++ unsigned int ucon;
++
++ spin_lock_irqsave(&port->lock, flags);
++
++ ucon = rd_regl(port, S3C_UCON);
++
++ if (break_state)
++ ucon |= S3C_UCON_SBREAK;
++ else
++ ucon &= ~S3C_UCON_SBREAK;
++
++ wr_regl(port, S3C_UCON, ucon);
++
++ spin_unlock_irqrestore(&port->lock, flags);
++}
++
++static void s3c_serial_shutdown(struct uart_port *port)
++{
++ struct s3c_uart_port *ourport = to_ourport(port);
++
++#ifdef UART_HAS_INTMSK
++ if (ourport->tx_claimed || ourport->rx_claimed) {
++ free_irq(UART_IRQ(port), ourport);
++
++ ourport->tx_claimed = 0;
++ ourport->rx_claimed = 0;
++ tx_enabled(port) = 0;
++ rx_enabled(port) = 0;
++ }
++#else
++ if (ourport->tx_claimed) {
++ free_irq(TX_IRQ(port), ourport);
++ tx_enabled(port) = 0;
++ ourport->tx_claimed = 0;
++ }
++
++ if (ourport->rx_claimed) {
++ free_irq(RX_IRQ(port), ourport);
++ ourport->rx_claimed = 0;
++ rx_enabled(port) = 0;
++ }
++#endif
++}
++
++#ifdef UART_HAS_INTMSK
++static irqreturn_t
++s3c_serial_interrupt(int irq, void *dev_id)
++{
++ struct s3c_uart_port *ourport = dev_id;
++ struct uart_port *port = &ourport->port;
++ uint intpnd;
++
++ intpnd = rd_regl(port, S3C_UINTPND);
++
++ if (intpnd & UART_RX_INT) {
++ wr_regl(port, S3C_UINTPND, UART_RX_INT);
++ rd_regl(port, S3C_UINTPND); /*clearing the interrupt*/
++
++ return s3c_serial_rx_chars( irq, dev_id);
++ }
++ else if (intpnd & UART_TX_INT) {
++ wr_regl(port, S3C_UINTPND, UART_TX_INT);
++ rd_regl(port, S3C_UINTPND); /*clearing the interrupt*/
++ return s3c_serial_tx_chars(irq, dev_id);
++ }
++ else if (intpnd & UART_ERR_INT) {
++ printk("UART err int.\n");
++ wr_regl(port, S3C_UINTPND, UART_ERR_INT);
++ rd_regl(port, S3C_UINTPND); /*clearing the interrupt*/
++ return IRQ_HANDLED;
++ }
++ else if (intpnd & UART_MODEM_INT) {
++ printk("In Modem ... other case\n");
++ wr_regl(port, S3C_UINTPND, UART_MODEM_INT);
++ rd_regl(port, S3C_UINTPND); /*clearing the interrupt*/
++ return IRQ_HANDLED;
++ }
++ // work around h/w problem : interrupt status bit update delay
++ //return IRQ_NONE;
++ return IRQ_HANDLED;
++
++}
++#endif
++
++static int s3c_serial_startup(struct uart_port *port)
++{
++ struct s3c_uart_port *ourport = to_ourport(port);
++ unsigned long flags;
++ int ret;
++
++ dbg("s3c_serial_startup: port=%p (%08lx,%p)\n",
++ port->mapbase, port->membase);
++
++ local_irq_save(flags);
++
++ rx_enabled(port) = 1;
++ tx_enabled(port) = 1;
++
++#ifdef UART_HAS_INTMSK
++ uart_enable_irq(port, UART_TX_INT | UART_RX_INT);
++ ret = request_irq(UART_IRQ(port), s3c_serial_interrupt, 0,
++ s3c_serial_portname(port), ourport);
++ if (ret != 0) {
++ printk(KERN_ERR "cannot get irq %d\n", UART_IRQ(port));
++ return ret;
++ }
++#else
++ ret = request_irq(RX_IRQ(port),
++ s3c_serial_rx_chars, 0,
++ s3c_serial_portname(port), ourport);
++ if (ret != 0) {
++ printk(KERN_ERR "cannot get irq %d\n", RX_IRQ(port));
++ return ret;
++ }
++
++ ret = request_irq(TX_IRQ(port),
++ s3c_serial_tx_chars, 0,
++ s3c_serial_portname(port), ourport);
++ if (ret) {
++ printk(KERN_ERR "cannot get irq %d\n", TX_IRQ(port));
++ s3c_serial_shutdown(port);
++ local_irq_restore(flags);
++ return ret;
++ }
++#endif
++
++ ourport->rx_claimed = 1;
++ ourport->tx_claimed = 1;
++
++ dbg("s3c_serial_startup ok\n");
++
++ /* the port reset code should have done the correct
++ * register setup for the port controls */
++ local_irq_restore(flags);
++ return ret;
++}
++
++/* power power management control */
++static void s3c_serial_pm(struct uart_port *port, unsigned int level,
++ unsigned int old)
++{
++ struct s3c_uart_port *ourport = to_ourport(port);
++
++ switch (level) {
++ case 3:
++ if (!IS_ERR(ourport->baudclk) && ourport->baudclk != NULL)
++ clk_disable(ourport->baudclk);
++
++ clk_disable(ourport->clk);
++ break;
++
++ case 0:
++ clk_enable(ourport->clk);
++
++ if (!IS_ERR(ourport->baudclk) && ourport->baudclk != NULL)
++ clk_enable(ourport->baudclk);
++
++ break;
++ default:
++ printk(KERN_ERR "s3c_serial: unknown pm %d\n", level);
++ }
++}
++
++/* baud rate calculation
++ *
++ * The UARTs on the S3C can take their clocks from a number
++ * of different sources, including the peripheral clock ("pclk") and an
++ * external clock ("uclk"). The S3C2413 also adds the core clock ("fclk")
++ * with a programmable extra divisor.
++ *
++ * The following code goes through the clock sources, and calculates the
++ * baud clocks (and the resultant actual baud rates) and then tries to
++ * pick the closest one and select that.
++ *
++ * NOTES:
++ * 1) there is no current code to properly select/deselect FCLK on
++ * the s3c2413, so only specify FCLK or non-FCLK in the clock
++ * sources for the UART
++ *
++*/
++
++
++#define MAX_CLKS (8)
++
++static struct s3c24xx_uart_clksrc tmp_clksrc = {
++ .name = "pclk",
++ .min_baud = 0,
++ .max_baud = 0,
++ .divisor = 1,
++};
++
++static inline int
++s3c_serial_getsource(struct uart_port *port, struct s3c24xx_uart_clksrc *c)
++{
++ struct s3c_uart_info *info = s3c_port_to_info(port);
++
++ return (info->get_clksrc)(port, c);
++}
++
++static inline int
++s3c_serial_setsource(struct uart_port *port, struct s3c24xx_uart_clksrc *c)
++{
++ struct s3c_uart_info *info = s3c_port_to_info(port);
++
++ return (info->set_clksrc)(port, c);
++}
++
++
++struct baud_calc {
++ struct s3c24xx_uart_clksrc *clksrc;
++ unsigned int calc;
++ unsigned int quot;
++ unsigned int slot;
++ struct clk *src;
++};
++
++static int s3c_serial_calcbaud(struct baud_calc *calc,
++ struct uart_port *port,
++ struct s3c24xx_uart_clksrc *clksrc,
++ unsigned int baud)
++{
++ unsigned long rate,nslot;
++ unsigned long tempdiv;
++ unsigned int serial_result_1,serial_result_2;
++
++ calc->src = clk_get(port->dev, clksrc->name);
++ if (calc->src == NULL || IS_ERR(calc->src))
++ return 0;
++
++ baud/=100;
++
++ rate = clk_get_rate(calc->src);
++ rate /= clksrc->divisor;
++
++ calc->clksrc = clksrc;
++
++ tempdiv = (rate*10/(baud*16))-1000;
++ serial_result_1 = ((tempdiv%1000)*16)/1000;
++ serial_result_2 = (((tempdiv%1000)*16) - (serial_result_1*1000));
++
++ if (serial_result_2 >=500)
++ nslot = serial_result_1+1;
++ else
++ nslot = serial_result_1;
++
++ calc->quot = tempdiv/1000;
++ calc->calc = (rate / (calc->quot * 16));
++ calc->slot = nSlotTable[nslot];
++ printk(KERN_DEBUG "FOUND quot %d, calc %d, slot 0x%x, nslot %ld\n",
++ calc->quot, calc->calc ,
++ calc->slot, nslot);
++ return 1;
++}
++
++static unsigned int s3c_serial_getclk(struct uart_port *port,
++ struct s3c24xx_uart_clksrc **clksrc,
++ struct clk **clk,
++ unsigned int baud, unsigned int *slot)
++{
++ struct s3c2410_uartcfg *cfg = s3c_port_to_cfg(port);
++ struct s3c24xx_uart_clksrc *clkp;
++ struct baud_calc res[MAX_CLKS];
++ struct baud_calc *resptr, *best, *sptr;
++ int i;
++
++ clkp = cfg->clocks;
++ best = NULL;
++
++ if (cfg->clocks_size < 2) {
++ if (cfg->clocks_size == 0)
++ clkp = &tmp_clksrc;
++
++ /* check to see if we're sourcing fclk, and if so we're
++ * going to have to update the clock source
++ */
++
++ if (strcmp(clkp->name, "fclk") == 0) {
++ struct s3c24xx_uart_clksrc src;
++
++ s3c_serial_getsource(port, &src);
++
++ /* check that the port already using fclk, and if
++ * not, then re-select fclk
++ */
++
++ if (strcmp(src.name, clkp->name) == 0) {
++ s3c_serial_setsource(port, clkp);
++ s3c_serial_getsource(port, &src);
++ }
++
++ clkp->divisor = src.divisor;
++ }
++
++ s3c_serial_calcbaud(res, port, clkp, baud);
++ best = res;
++ resptr = best + 1;
++ } else {
++ resptr = res;
++
++ for (i = 0; i < cfg->clocks_size; i++, clkp++) {
++ if (s3c_serial_calcbaud(resptr, port, clkp, baud))
++ resptr++;
++ }
++ }
++
++ /* ok, we now need to select the best clock we found */
++
++ if (best==NULL) {
++ unsigned int deviation = (1<<30)|((1<<30)-1);
++ int calc_deviation;
++
++ best = sptr = res;
++
++ for (sptr = res; sptr < resptr; sptr++) {
++ printk(KERN_DEBUG
++ "found clk %p (%s) quot %d, calc %d\n",
++ sptr->clksrc, sptr->clksrc->name,
++ sptr->quot, sptr->calc);
++
++ calc_deviation = baud - sptr->calc;
++
++ if (calc_deviation < 0)
++ calc_deviation = -calc_deviation;
++
++ if (calc_deviation < deviation) {
++ best = sptr;
++ deviation = calc_deviation;
++ }
++ }
++
++ printk(KERN_DEBUG "The best clksrc among candidate clksrc: %p(%s) (deviation: %d bps)\n", best, best->clksrc->name, deviation);
++ }
++
++ printk(KERN_DEBUG "Selected clock is %p (%s) quot %d, calc %d\n",
++ best->clksrc, best->clksrc->name, best->quot, best->calc);
++
++ /* store results to pass back */
++ *clksrc = best->clksrc;
++ *clk = best->src;
++ *slot = best->slot;
++
++ return best->quot;
++}
++
++static void s3c_serial_set_termios(struct uart_port *port,
++ struct ktermios *termios,
++ struct ktermios *old)
++{
++ struct s3c2410_uartcfg *cfg = s3c_port_to_cfg(port);
++ struct s3c_uart_port *ourport = to_ourport(port);
++ struct s3c24xx_uart_clksrc *clksrc = NULL;
++ struct clk *clk = NULL;
++ unsigned long flags;
++ unsigned int baud, quot, slot = 0;
++ unsigned int ulcon;
++ unsigned int umcon;
++
++ /*
++ * We don't support modem control lines.
++ */
++ termios->c_cflag &= ~(HUPCL | CMSPAR);
++ termios->c_cflag |= CLOCAL;
++
++ /*
++ * Ask the core to calculate the divisor for us.
++ */
++
++ baud = uart_get_baud_rate(port, termios, old, 0, 4000000);
++
++ if (baud == 38400 && (port->flags & UPF_SPD_MASK) == UPF_SPD_CUST)
++ quot = port->custom_divisor;
++ else
++ quot = s3c_serial_getclk(port, &clksrc, &clk, baud, &slot);
++
++ /* check to see if we need to change clock source */
++
++ if (ourport->clksrc != clksrc || ourport->baudclk != clk) {
++ s3c_serial_setsource(port, clksrc);
++
++ if (ourport->baudclk != NULL && !IS_ERR(ourport->baudclk)) {
++ clk_disable(ourport->baudclk);
++ ourport->baudclk = NULL;
++ }
++
++ clk_enable(clk);
++
++ ourport->clksrc = clksrc;
++ ourport->baudclk = clk;
++ }
++
++ switch (termios->c_cflag & CSIZE) {
++ case CS5:
++ dbg("config: 5bits/char\n");
++ ulcon = S3C_LCON_CS5;
++ break;
++ case CS6:
++ dbg("config: 6bits/char\n");
++ ulcon = S3C_LCON_CS6;
++ break;
++ case CS7:
++ dbg("config: 7bits/char\n");
++ ulcon = S3C_LCON_CS7;
++ break;
++ case CS8:
++ default:
++ dbg("config: 8bits/char\n");
++ ulcon = S3C_LCON_CS8;
++ break;
++ }
++
++ /* preserve original lcon IR settings */
++ ulcon |= (cfg->ulcon & S3C_LCON_IRM);
++
++ if (termios->c_cflag & CSTOPB)
++ ulcon |= S3C_LCON_STOPB;
++
++ umcon = (termios->c_cflag & CRTSCTS) ? S3C_UMCOM_AFC : 0;
++
++ if (termios->c_cflag & PARENB) {
++ if (termios->c_cflag & PARODD)
++ ulcon |= S3C_LCON_PODD;
++ else
++ ulcon |= S3C_LCON_PEVEN;
++ } else {
++ ulcon |= S3C_LCON_PNONE;
++ }
++
++ spin_lock_irqsave(&port->lock, flags);
++
++ dbg("setting ulcon to %08x, brddiv to %d\n", ulcon, quot);
++
++ wr_regl(port, S3C_ULCON, ulcon);
++ wr_regl(port, S3C_UBRDIV, quot);
++ wr_regl(port, S3C_UDIVSLOT, slot);
++ wr_regl(port, S3C_UMCON, umcon);
++
++ dbg("uart: ulcon = 0x%08x, ucon = 0x%08x, ufcon = 0x%08x\n",
++ rd_regl(port, S3C_ULCON),
++ rd_regl(port, S3C_UCON),
++ rd_regl(port, S3C_UFCON));
++
++ /*
++ * Update the per-port timeout.
++ */
++ uart_update_timeout(port, termios->c_cflag, baud);
++
++ /*
++ * Which character status flags are we interested in?
++ */
++ port->read_status_mask = S3C_UERSTAT_OVERRUN;
++ if (termios->c_iflag & INPCK)
++ port->read_status_mask |= S3C_UERSTAT_FRAME | S3C_UERSTAT_PARITY;
++
++ /*
++ * Which character status flags should we ignore?
++ */
++ port->ignore_status_mask = 0;
++ if (termios->c_iflag & IGNPAR)
++ port->ignore_status_mask |= S3C_UERSTAT_OVERRUN;
++ if (termios->c_iflag & IGNBRK && termios->c_iflag & IGNPAR)
++ port->ignore_status_mask |= S3C_UERSTAT_FRAME;
++
++ /*
++ * Ignore all characters if CREAD is not set.
++ */
++ if ((termios->c_cflag & CREAD) == 0)
++ port->ignore_status_mask |= RXSTAT_DUMMY_READ;
++
++ spin_unlock_irqrestore(&port->lock, flags);
++}
++
++static const char *s3c_serial_type(struct uart_port *port)
++{
++ switch (port->type) {
++ case PORT_S3C2410:
++ return "S3C";
++ default:
++ return NULL;
++ }
++}
++
++#define MAP_SIZE (0x100)
++
++static void s3c_serial_release_port(struct uart_port *port)
++{
++ release_mem_region(port->mapbase, MAP_SIZE);
++}
++
++static int s3c_serial_request_port(struct uart_port *port)
++{
++ const char *name = s3c_serial_portname(port);
++ return request_mem_region(port->mapbase, MAP_SIZE, name) ? 0 : -EBUSY;
++}
++
++static void s3c_serial_config_port(struct uart_port *port, int flags)
++{
++ struct s3c_uart_info *info = s3c_port_to_info(port);
++
++ if (flags & UART_CONFIG_TYPE && s3c_serial_request_port(port) == 0)
++ port->type = info->type;
++}
++
++/*
++ * verify the new serial_struct (for TIOCSSERIAL).
++ */
++static int
++s3c_serial_verify_port(struct uart_port *port, struct serial_struct *ser)
++{
++ struct s3c_uart_info *info = s3c_port_to_info(port);
++
++ if (ser->type != PORT_UNKNOWN && ser->type != info->type)
++ return -EINVAL;
++
++ return 0;
++}
++
++
++#ifdef CONFIG_SERIAL_S3C64XX_CONSOLE
++
++static struct console s3c_serial_console;
++
++#define S3C64XX_SERIAL_CONSOLE &s3c_serial_console
++#else
++#define S3C64XX_SERIAL_CONSOLE NULL
++#endif
++
++static struct uart_ops s3c_serial_ops = {
++ .pm = s3c_serial_pm,
++ .tx_empty = s3c_serial_tx_empty,
++ .get_mctrl = s3c_serial_get_mctrl,
++ .set_mctrl = s3c_serial_set_mctrl,
++ .stop_tx = s3c_serial_stop_tx,
++ .start_tx = s3c_serial_start_tx,
++ .stop_rx = s3c_serial_stop_rx,
++ .enable_ms = s3c_serial_enable_ms,
++ .break_ctl = s3c_serial_break_ctl,
++ .startup = s3c_serial_startup,
++ .shutdown = s3c_serial_shutdown,
++ .set_termios = s3c_serial_set_termios,
++ .type = s3c_serial_type,
++ .release_port = s3c_serial_release_port,
++ .request_port = s3c_serial_request_port,
++ .config_port = s3c_serial_config_port,
++ .verify_port = s3c_serial_verify_port,
++};
++
++
++static struct uart_driver s3c_uart_drv = {
++ .owner = THIS_MODULE,
++ .dev_name = "s3c_serial",
++ .nr = NR_PORTS,
++ .cons = S3C64XX_SERIAL_CONSOLE,
++ .driver_name = S3C_SERIAL_NAME,
++ .major = S3C_SERIAL_MAJOR,
++ .minor = S3C_SERIAL_MINOR,
++};
++
++static struct s3c_uart_port s3c_serial_ports[NR_PORTS] = {
++ [0] = {
++ .port = {
++ .lock = SPIN_LOCK_UNLOCKED,
++ .iotype = UPIO_MEM,
++ .irq = S3C_IRQ_UART0,
++ .uartclk = 0,
++ .fifosize = UART_FIFO_SIZE,
++ .ops = &s3c_serial_ops,
++ .flags = UPF_BOOT_AUTOCONF,
++ .line = 0,
++ }
++ },
++ [1] = {
++ .port = {
++ .lock = SPIN_LOCK_UNLOCKED,
++ .iotype = UPIO_MEM,
++ .irq = S3C_IRQ_UART1,
++ .uartclk = 0,
++ .fifosize = UART_FIFO_SIZE,
++ .ops = &s3c_serial_ops,
++ .flags = UPF_BOOT_AUTOCONF,
++ .line = 1,
++ }
++ },
++#if NR_PORTS > 2
++ [2] = {
++ .port = {
++ .lock = SPIN_LOCK_UNLOCKED,
++ .iotype = UPIO_MEM,
++ .irq = S3C_IRQ_UART2,
++ .uartclk = 0,
++ .fifosize = UART_FIFO_SIZE,
++ .ops = &s3c_serial_ops,
++ .flags = UPF_BOOT_AUTOCONF,
++ .line = 2,
++ }
++ },
++ [3] = {
++ .port = {
++ .lock = SPIN_LOCK_UNLOCKED,
++ .iotype = UPIO_MEM,
++ .irq = S3C_IRQ_UART3,
++ .uartclk = 0,
++ .fifosize = UART_FIFO_SIZE,
++ .ops = &s3c_serial_ops,
++ .flags = UPF_BOOT_AUTOCONF,
++ .line = 3,
++ }
++ }
++#endif
++};
++
++/* s3c_serial_resetport
++ *
++ * wrapper to call the specific reset for this port (reset the fifos
++ * and the settings)
++*/
++
++static int s3c_serial_resetport(struct uart_port *port,
++ struct s3c2410_uartcfg *cfg)
++{
++#if 0
++ struct s3c_uart_info *info = s3c_port_to_info(port);
++
++ return (info->reset_port)(port, cfg);
++#else
++ /* ensure registers are setup */
++ dbg("s3c_serial_resetport: port=%p (%08lx), cfg=%p\n",
++ port, port->mapbase, cfg);
++
++ wr_regl(port, S3C_UCON, cfg->ucon);
++ wr_regl(port, S3C_ULCON, cfg->ulcon);
++
++ /* reset both fifos */
++ wr_regl(port, S3C_UFCON, cfg->ufcon | S3C_UFCON_RESETBOTH);
++ wr_regl(port, S3C_UFCON, cfg->ufcon);
++
++ return 0;
++
++#endif
++}
++
++/* s3c_serial_init_port
++ *
++ * initialise a single serial port from the platform device given
++ */
++
++static int s3c_serial_init_port(struct s3c_uart_port *ourport,
++ struct s3c_uart_info *info,
++ struct platform_device *plat_dev)
++{
++ struct uart_port *port = &ourport->port;
++ struct s3c2410_uartcfg *cfg;
++ struct resource *res;
++
++ dbg("s3c_serial_init_port: port=%p, plat_dev=%p\n", port, plat_dev);
++
++ if (plat_dev == NULL)
++ return -ENODEV;
++
++ cfg = s3c_dev_to_cfg(&plat_dev->dev);
++
++ if (port->mapbase != 0)
++ return 0;
++
++ if (cfg->hwport > NR_PORTS)
++ return -EINVAL;
++
++ /*GPIO setup for each port*/
++ switch(port->line) {
++ case 0:
++ gpio_set_pin(S3C_GPA0, S3C_GPA0_UART_RXD0);
++ gpio_set_pin(S3C_GPA1, S3C_GPA1_UART_TXD0);
++ gpio_set_pin(S3C_GPA2, S3C_GPA2_UART_CTS0);
++ gpio_set_pin(S3C_GPA3, S3C_GPA3_UART_RTS0);
++ break;
++ case 1:
++ gpio_set_pin(S3C_GPA4, S3C_GPA4_UART_RXD1);
++ gpio_set_pin(S3C_GPA5, S3C_GPA5_UART_TXD1);
++ gpio_set_pin(S3C_GPA5, S3C_GPA6_UART_CTS1);
++ gpio_set_pin(S3C_GPA7, S3C_GPA7_UART_RTS1);
++ break;
++ case 2:
++ gpio_set_pin(S3C_GPB0, S3C_GPB0_UART_RXD2);
++ gpio_set_pin(S3C_GPB1, S3C_GPB1_UART_TXD2);
++ break;
++ case 3:
++ gpio_set_pin(S3C_GPB2, S3C_GPB2_UART_RXD3);
++ gpio_set_pin(S3C_GPB3, S3C_GPB3_UART_TXD3);
++ break;
++ default:
++ break;
++ }
++
++ /* setup info for port */
++ port->dev = &plat_dev->dev;
++ ourport->info = info;
++
++ /* copy the info in from provided structure */
++ ourport->port.fifosize = info->fifosize;
++
++ dbg("s3c_serial_init_port: %p (hw %d)...\n", port, cfg->hwport);
++
++ port->uartclk = UART_CLK;
++
++ if (cfg->uart_flags & UPF_CONS_FLOW) {
++ dbg("s3c_serial_init_port: enabling flow control\n");
++ port->flags |= UPF_CONS_FLOW;
++ }
++
++ /* sort our the physical and virtual addresses for each UART */
++
++ res = platform_get_resource(plat_dev, IORESOURCE_MEM, 0);
++ if (res == NULL) {
++ printk(KERN_ERR "failed to find memory resource for uart\n");
++ return -EINVAL;
++ }
++
++ dbg("resource %p (%lx..%lx)\n", res, res->start, res->end);
++
++ port->mapbase = res->start;
++ port->membase = S3C24XX_VA_UART + (res->start - S3C24XX_PA_UART);
++ port->irq = platform_get_irq(plat_dev, 0);
++
++ ourport->clk = clk_get(&plat_dev->dev, "UART0");
++
++ dbg("port: map=%08x, mem=%08x, irq=%d, clock=%ld\n",
++ port->mapbase, port->membase, port->irq, port->uartclk);
++
++ /* reset the fifos (and setup the uart) */
++ s3c_serial_resetport(port, cfg);
++ return 0;
++}
++
++/* Device driver serial port probe */
++static int probe_index = 0;
++
++static int s3c6400_serial_probe(struct platform_device *dev,
++ struct s3c_uart_info *info)
++{
++ struct s3c_uart_port *ourport;
++ int ret;
++
++ dbg("s3c_serial_probe(%p) %d\n", dev, probe_index);
++
++ ourport = &s3c_serial_ports[probe_index];
++ probe_index++;
++
++ dbg("%s: initialising port %p...\n", __FUNCTION__, ourport);
++
++ //ret = s3c_serial_init_port(ourport, &s3c_uart_inf, dev);
++ ret = s3c_serial_init_port(ourport, info, dev);
++ if (ret < 0)
++ goto probe_err;
++
++ dbg("%s: adding port\n", __FUNCTION__);
++ uart_add_one_port(&s3c_uart_drv, &ourport->port);
++ platform_set_drvdata(dev, &ourport->port);
++
++ return 0;
++
++ probe_err:
++ return ret;
++}
++
++static int s3c_serial_remove(struct platform_device *dev)
++{
++ struct uart_port *port = s3c_dev_to_port(&dev->dev);
++
++ if (port)
++ uart_remove_one_port(&s3c_uart_drv, port);
++
++ return 0;
++}
++
++/* UART power management code */
++
++#ifdef CONFIG_PM
++
++#include <asm/plat-s3c24xx/pm.h>
++
++#define SAVE_UART(va) \
++ SAVE_ITEM((va) + S3C_ULCON), \
++ SAVE_ITEM((va) + S3C_UCON), \
++ SAVE_ITEM((va) + S3C_UFCON), \
++ SAVE_ITEM((va) + S3C_UMCON), \
++ SAVE_ITEM((va) + S3C_UBRDIV), \
++ SAVE_ITEM((va) + S3C_UDIVSLOT), \
++ SAVE_ITEM((va) + S3C_UINTMSK)
++
++
++static struct sleep_save uart_save[] = {
++ SAVE_UART(S3C24XX_VA_UART0),
++ SAVE_UART(S3C24XX_VA_UART1),
++ SAVE_UART(S3C24XX_VA_UART2),
++ SAVE_UART(S3C24XX_VA_UART3),
++};
++static int s3c_serial_suspend(struct platform_device *dev, pm_message_t state)
++{
++ struct uart_port *port = s3c_dev_to_port(&dev->dev);
++
++ s3c2410_pm_do_save(uart_save, ARRAY_SIZE(uart_save));
++
++ if (port)
++ uart_suspend_port(&s3c_uart_drv, port);
++
++ return 0;
++}
++
++static int s3c_serial_resume(struct platform_device *dev)
++{
++ struct uart_port *port = s3c_dev_to_port(&dev->dev);
++ struct s3c_uart_port *ourport = to_ourport(port);
++
++ if (port) {
++ clk_enable(ourport->clk);
++ s3c_serial_resetport(port, s3c_port_to_cfg(port));
++ clk_disable(ourport->clk);
++
++ s3c2410_pm_do_restore(uart_save, ARRAY_SIZE(uart_save));
++
++ uart_resume_port(&s3c_uart_drv, port);
++ }
++
++ return 0;
++}
++
++#else
++#define s3c_serial_suspend NULL
++#define s3c_serial_resume NULL
++#endif
++
++static int s3c_serial_init(struct platform_driver *drv,
++ struct s3c_uart_info *info)
++{
++ dbg("s3c64xx_serial_init(%p,%p)\n", drv, info);
++ return platform_driver_register(drv);
++}
++
++static struct s3c_uart_info s3c_uart_inf = {
++ .name = "Samsung S3C UART",
++ .type = PORT_S3C2410,
++ .fifosize = UART_FIFO_SIZE,
++ .rx_fifomask = S3C_UFSTAT_RXMASK,
++ .rx_fifoshift = S3C_UFSTAT_RXSHIFT,
++ .rx_fifofull = S3C_UFSTAT_RXFULL,
++ .tx_fifofull = S3C_UFSTAT_TXFULL,
++ .tx_fifomask = S3C_UFSTAT_TXMASK,
++ .tx_fifoshift = S3C_UFSTAT_TXSHIFT,
++ .get_clksrc = s3c_serial_getsource_hw,
++ .set_clksrc = s3c_serial_setsource_hw,
++// .reset_port = s3c_serial_resetport,
++};
++
++/* device management */
++
++static int s3c_serial_probe(struct platform_device *dev)
++{
++ return s3c6400_serial_probe(dev, &s3c_uart_inf);
++}
++
++static struct platform_driver s3c_serial_drv = {
++ .probe = s3c_serial_probe,
++ .remove = s3c_serial_remove,
++ .suspend = s3c_serial_suspend,
++ .resume = s3c_serial_resume,
++ .driver = {
++ .name = "s3c-uart",
++ .owner = THIS_MODULE,
++ },
++};
++
++static inline int s3c6400_serial_init(void)
++{
++ return s3c_serial_init(&s3c_serial_drv, &s3c_uart_inf);
++}
++
++static inline void s3c6400_serial_exit(void)
++{
++ platform_driver_unregister(&s3c_serial_drv);
++}
++
++
++/* module initialisation code */
++static int __init s3c_serial_modinit(void)
++{
++ int ret;
++
++ ret = uart_register_driver(&s3c_uart_drv);
++ if (ret < 0) {
++ printk(KERN_ERR "failed to register UART driver\n");
++ return -1;
++ }
++
++ s3c6400_serial_init();
++
++ return 0;
++}
++
++static void __exit s3c_serial_modexit(void)
++{
++ s3c6400_serial_exit();
++
++ uart_unregister_driver(&s3c_uart_drv);
++}
++
++module_init(s3c_serial_modinit);
++module_exit(s3c_serial_modexit);
++
++/* ----------------------------------------------------------------------------------*/
++/* Console code for UART */
++/*-----------------------------------------------------------------------------------*/
++
++#ifdef CONFIG_SERIAL_S3C64XX_CONSOLE
++
++static struct uart_port *cons_uart;
++
++static int
++s3c_serial_console_txrdy(struct uart_port *port, unsigned int ufcon)
++{
++ struct s3c_uart_info *info = s3c_port_to_info(port);
++ unsigned long ufstat, utrstat;
++
++ if (ufcon & S3C_UFCON_FIFOMODE) {
++ /* fifo mode - check ammount of data in fifo registers... */
++ ufstat = rd_regl(port, S3C_UFSTAT);
++ return (ufstat & info->tx_fifofull) ? 0 : 1;
++ }
++
++ /* in non-fifo mode, we go and use the tx buffer empty */
++ utrstat = rd_regl(port, S3C_UTRSTAT);
++ return (utrstat & S3C_UTRSTAT_TXE) ? 1 : 0;
++}
++
++static void
++s3c_serial_console_write(struct console *co, const char *s,
++ unsigned int count)
++{
++ int i;
++ unsigned int ufcon = rd_regl(cons_uart, S3C_UFCON);
++
++ for (i = 0; i < count; i++) {
++ while (!s3c_serial_console_txrdy(cons_uart, ufcon))
++ barrier();
++
++ wr_regb(cons_uart, S3C_UTXH, s[i]);
++
++ if (s[i] == '\n') {
++ while (!s3c_serial_console_txrdy(cons_uart, ufcon))
++ barrier();
++
++ wr_regb(cons_uart, S3C_UTXH, '\r');
++ }
++ }
++}
++
++static void __init
++s3c_serial_get_options(struct uart_port *port, int *baud,
++ int *parity, int *bits)
++{
++ struct s3c24xx_uart_clksrc clksrc;
++ struct clk *clk;
++ unsigned int ulcon;
++ unsigned int ucon;
++ unsigned int ubrdiv;
++ unsigned long rate;
++
++ ulcon = rd_regl(port, S3C_ULCON);
++ ucon = rd_regl(port, S3C_UCON);
++ ubrdiv = rd_regl(port, S3C_UBRDIV);
++
++ dbg("s3c_serial_get_options: port=%p\n"
++ "registers: ulcon=%08x, ucon=%08x, ubdriv=%08x\n",
++ port, ulcon, ucon, ubrdiv);
++
++ if ((ucon & 0xf) != 0) {
++ /* consider the serial port configured if the tx/rx mode set */
++ switch (ulcon & S3C_LCON_CSMASK) {
++ case S3C_LCON_CS5:
++ *bits = 5;
++ break;
++
++ case S3C_LCON_CS6:
++ *bits = 6;
++ break;
++
++ case S3C_LCON_CS7:
++ *bits = 7;
++ break;
++
++ case S3C_LCON_CS8:
++ default:
++ *bits = 8;
++ break;
++ }
++
++ switch (ulcon & S3C_LCON_PMASK) {
++ case S3C_LCON_PEVEN:
++ *parity = 'e';
++ break;
++
++ case S3C_LCON_PODD:
++ *parity = 'o';
++ break;
++
++ case S3C_LCON_PNONE:
++ default:
++ *parity = 'n';
++ }
++
++ /* now calculate the baud rate */
++ s3c_serial_getsource(port, &clksrc);
++
++ clk = clk_get(port->dev, clksrc.name);
++ if (!IS_ERR(clk) && clk != NULL)
++ rate = clk_get_rate(clk) / clksrc.divisor;
++ else
++ rate = 1;
++
++
++ *baud = rate / ( 16 * (ubrdiv + 1));
++ dbg("calculated baud %d\n", *baud);
++ }
++
++}
++
++/* s3c_serial_init_ports
++ *
++ * initialise the serial ports from the machine provided initialisation
++ * data.
++*/
++
++static int s3c_serial_init_ports(struct s3c_uart_info *info)
++{
++ struct s3c_uart_port *ptr = s3c_serial_ports;
++ struct platform_device **platdev_ptr;
++ int i;
++
++ dbg("s3c_serial_init_ports: initialising ports...\n");
++
++ platdev_ptr = s3c24xx_uart_devs;
++
++ for (i = 0; i < NR_PORTS; i++, ptr++, platdev_ptr++) {
++ s3c_serial_init_port(ptr, info, *platdev_ptr);
++ }
++
++ return 0;
++}
++
++static int __init
++s3c_serial_console_setup(struct console *co, char *options)
++{
++ struct uart_port *port;
++ int baud = 9600;
++ int bits = 8;
++ int parity = 'n';
++ int flow = 'n';
++
++ dbg("s3c_serial_console_setup: co=%p (%d), %s\n",
++ co, co->index, options);
++
++ /* is this a valid port */
++
++ if (co->index == -1 || co->index >= NR_PORTS)
++ co->index = 0;
++
++ port = &s3c_serial_ports[co->index].port;
++
++ /* is the port configured? */
++
++ if (port->mapbase == 0x0) {
++ co->index = 0;
++ port = &s3c_serial_ports[co->index].port;
++ }
++
++ cons_uart = port;
++
++ dbg("s3c_serial_console_setup: port=%p (%d)\n", port, co->index);
++
++ /*
++ * Check whether an invalid uart number has been specified, and
++ * if so, search for the first available port that does have
++ * console support.
++ */
++ if (options)
++ uart_parse_options(options, &baud, &parity, &bits, &flow);
++ else
++ s3c_serial_get_options(port, &baud, &parity, &bits);
++
++ dbg("s3c_serial_console_setup: baud %d\n", baud);
++
++ return uart_set_options(port, co, baud, parity, bits, flow);
++}
++
++/* s3c_serial_initconsole
++ *
++ * initialise the console from one of the uart drivers
++ */
++
++static struct console s3c_serial_console =
++{
++ .name = S3C_SERIAL_NAME,
++ .device = uart_console_device,
++ .flags = CON_PRINTBUFFER,
++ .index = -1,
++ .write = s3c_serial_console_write,
++ .setup = s3c_serial_console_setup
++};
++
++static int s3c_serial_initconsole(void)
++{
++ dbg("s3c_serial_initconsole\n");
++
++ s3c_serial_console.data = &s3c_uart_drv;
++ s3c_serial_init_ports(&s3c_uart_inf);
++
++ register_console(&s3c_serial_console);
++ return 0;
++}
++
++console_initcall(s3c_serial_initconsole);
++
++#endif /* CONFIG_SERIAL_S3C_CONSOLE */
++
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>");
++MODULE_DESCRIPTION("Samsung S3C Serial port driver");
+diff --git a/drivers/serial/s5pc100.c b/drivers/serial/s5pc100.c
+new file mode 100644
+index 0000000..9d311a6
+--- /dev/null
++++ b/drivers/serial/s5pc100.c
+@@ -0,0 +1,1643 @@
++/*
++ * based on linux/drivers/serial/s5pc100.c
++ *
++ * Driver for onboard UARTs on the Samsung S3C
++ *
++ * Based on drivers/char/serial.c and drivers/char/21285.c
++ *
++ * Ben Dooks, (c) 2003 Simtec Electronics
++ *
++ * Changelog:
++ *
++ * 22-Jul-2004 BJD Finished off device rewrite
++ *
++ * 21-Jul-2004 BJD Thanks to <herbet@13thfloor.at> for pointing out
++ * problems with baud rate and loss of IR settings. Update
++ * to add configuration via platform_device structure
++ *
++ * 28-Sep-2004 BJD Re-write for the following items
++ * - S3C serial support
++ * - Power Management support
++ * - Fix console via IrDA devices
++ * - SysReq (Herbert Ptzl)
++ * - Break character handling (Herbert Ptzl)
++ * - spin-lock initialisation (Dimitry Andric)
++ * - added clock control
++ * - updated init code to use platform_device info
++*/
++
++/* Note on 24XX error handling
++ *
++ * The s3c2410 manual has a love/hate affair with the contents of the
++ * UERSTAT register in the UART blocks, and keeps marking some of the
++ * error bits as reserved. Having checked with the s3c2410x01,
++ * it copes with BREAKs properly, so I am happy to ignore the RESERVED
++ * feature from the latter versions of the manual.
++ *
++ * If it becomes aparrent that latter versions of the 2410 remove these
++ * bits, then action will have to be taken to differentiate the versions
++ * and change the policy on BREAK
++ *
++ * BJD, 04-Nov-2004
++*/
++
++#if defined(CONFIG_SERIAL_S5PC1XX_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
++#define SUPPORT_SYSRQ
++#endif
++
++#include <linux/module.h>
++#include <linux/ioport.h>
++#include <linux/platform_device.h>
++#include <linux/init.h>
++#include <linux/sysrq.h>
++#include <linux/console.h>
++#include <linux/tty.h>
++#include <linux/tty_flip.h>
++#include <linux/serial_core.h>
++#include <linux/serial.h>
++#include <linux/delay.h>
++#include <linux/clk.h>
++
++#include <asm/io.h>
++#include <asm/irq.h>
++
++#include <asm/hardware.h>
++
++#include <asm/plat-s3c/regs-serial.h>
++#include <asm/arch/gpio.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-s3c-clock.h>
++
++/* structures */
++
++struct s3c_uart_info {
++ char *name;
++ unsigned int type;
++ unsigned int fifosize;
++ unsigned long rx_fifomask;
++ unsigned long rx_fifoshift;
++ unsigned long rx_fifofull;
++ unsigned long tx_fifomask;
++ unsigned long tx_fifoshift;
++ unsigned long tx_fifofull;
++
++ /* clock source control */
++
++ int (*get_clksrc)(struct uart_port *, struct s3c24xx_uart_clksrc *clk);
++ int (*set_clksrc)(struct uart_port *, struct s3c24xx_uart_clksrc *clk);
++
++ /* uart controls */
++ int (*reset_port)(struct uart_port *, struct s3c2410_uartcfg *);
++};
++
++struct s3c_uart_port {
++ unsigned char rx_claimed;
++ unsigned char tx_claimed;
++
++ struct s3c_uart_info *info;
++ struct s3c24xx_uart_clksrc *clksrc;
++ struct clk *clk;
++ struct clk *baudclk;
++ struct uart_port port;
++};
++
++
++/* configuration defines */
++
++#if 1
++#if 0
++/* send debug to the low-level output routines */
++
++extern void printascii(const char *);
++
++static void
++s3c_serial_dbg(const char *fmt, ...)
++{
++ va_list va;
++ char buff[256];
++
++ va_start(va, fmt);
++ vsprintf(buff, fmt, va);
++ va_end(va);
++
++ printascii(buff);
++}
++
++#define dbg(x...) s3c_serial_dbg(x)
++
++#else
++#define dbg(x...) printk(KERN_DEBUG "s3c: ");
++#endif
++#else /* no debug */
++#define dbg(x...) do {} while(0)
++#endif
++
++/* UART name and device definitions */
++#define S3C_SERIAL_NAME "ttySAC"
++//#define S3C_SERIAL_MAJOR TTY_MAJOR
++#define S3C_SERIAL_MAJOR 204
++#define S3C_SERIAL_MINOR 64
++
++/* conversion functions */
++#define s3c_dev_to_port(__dev) (struct uart_port *)dev_get_drvdata(__dev)
++#define s3c_dev_to_cfg(__dev) (struct s3c2410_uartcfg *)((__dev)->platform_data)
++
++/* port irq numbers */
++#define TX_IRQ(port) ((port)->irq + 1)
++#define RX_IRQ(port) ((port)->irq)
++#define UART_IRQ(port) ((port)->irq)
++
++/* register access controls */
++#define portaddr(port, reg) ((port)->membase + (reg))
++
++#define rd_regb(port, reg) (__raw_readb(portaddr(port, reg)))
++#define rd_regl(port, reg) (__raw_readl(portaddr(port, reg)))
++
++#define wr_regb(port, reg, val) \
++ do { __raw_writeb(val, portaddr(port, reg)); } while(0)
++
++#define wr_regl(port, reg, val) \
++ do { __raw_writel(val, portaddr(port, reg)); } while(0)
++
++/* macros to change one thing to another */
++#define tx_enabled(port) ((port)->unused[0])
++#define rx_enabled(port) ((port)->unused[1])
++
++const unsigned int nSlotTable[16] = {0x0000, 0x0080, 0x0808, 0x0888, 0x2222, 0x4924, 0x4a52, 0x54aa,
++ 0x5555, 0xd555, 0xd5d5, 0xddd5, 0xdddd, 0xdfdd, 0xdfdf, 0xffdf};
++
++#ifdef UART_HAS_INTMSK
++static inline void uart_enable_irq (struct uart_port *port, uint val)
++{
++ uint mask;
++
++ mask = rd_regl(port, S3C_UINTMSK);
++ mask &= ~val;
++ wr_regl(port, S3C_UINTMSK, mask);
++}
++
++static inline void uart_disable_irq (struct uart_port *port, uint val)
++{
++ uint mask;
++
++ mask = rd_regl(port, S3C_UINTMSK);
++ mask |= val;
++ wr_regl(port, S3C_UINTMSK, mask);
++
++}
++#endif
++
++/* flag to ignore all characters comming in */
++#define RXSTAT_DUMMY_READ (0x10000000)
++
++/* now comes the code to initialise either the s3c serial
++ * port information
++ */
++static int s3c_serial_getsource_hw(struct uart_port *port,
++ struct s3c24xx_uart_clksrc *clk)
++{
++ unsigned long ucon = rd_regl(port, S3C_UCON);
++
++ switch (ucon & S3C_UCON_CLKMASK) {
++ case S3C_UCON_UCLK:
++ clk->divisor = 1;
++ clk->name = "uclk";
++ break;
++
++ case S3C_UCON_PCLK:
++ case S3C_UCON_PCLK2:
++ clk->divisor = 1;
++ clk->name = "pclkd1";
++ break;
++
++ case S3C_UCON_FCLK:
++
++#if defined (CONFIG_SERIAL_S3C64XX_HS_UART)
++
++ clk->divisor = 2; /* For 4000000bps, epll_clk_192Mhz is needed. */
++ clk->name = "epll_clk_uart_192m";
++
++#else
++
++ clk->divisor = 2;
++ clk->name = "mpll_clk_uart";
++
++#endif
++ break;
++ }
++
++ return 0;
++}
++
++
++static int s3c_serial_setsource_hw(struct uart_port *port,
++ struct s3c24xx_uart_clksrc *clk)
++{
++ unsigned long ucon = rd_regl(port, S3C_UCON);
++
++ ucon &= ~S3C_UCON_CLKMASK;
++
++ if (strcmp(clk->name, "uclk") == 0)
++ ucon |= S3C_UCON_UCLK;
++ else if (strcmp(clk->name, "pclkd1") == 0)
++ ucon |= S3C_UCON_PCLK;
++ else if (strcmp(clk->name, "epll_clk_uart_192m") == 0)
++ ucon |= S3C_UCON_FCLK;
++ else if (strcmp(clk->name, "mpll_clk_uart") == 0)
++ ucon |= S3C_UCON_FCLK;
++ else {
++ printk(KERN_ERR "unknown clock source %s\n", clk->name);
++ return -EINVAL;
++ }
++
++ wr_regl(port, S3C_UCON, ucon);
++ return 0;
++}
++
++static inline struct s3c_uart_port *to_ourport(struct uart_port *port)
++{
++ return container_of(port, struct s3c_uart_port, port);
++}
++
++/* translate a port to the device name */
++
++static inline const char *s3c_serial_portname(struct uart_port *port)
++{
++ return to_platform_device(port->dev)->name;
++}
++
++static int s3c_serial_txempty_nofifo(struct uart_port *port)
++{
++ return (rd_regl(port, S3C_UTRSTAT) & S3C_UTRSTAT_TXE);
++}
++
++static void s3c_serial_rx_enable(struct uart_port *port)
++{
++ unsigned long flags;
++ unsigned int ucon, ufcon;
++ int count = 10000;
++
++ spin_lock_irqsave(&port->lock, flags);
++
++ while (--count && !s3c_serial_txempty_nofifo(port))
++ udelay(100);
++
++ ufcon = rd_regl(port, S3C_UFCON);
++ ufcon |= S3C_UFCON_RESETRX;
++ wr_regl(port, S3C_UFCON, ufcon);
++
++ ucon = rd_regl(port, S3C_UCON);
++ ucon |= S3C_UCON_RXIRQMODE;
++ wr_regl(port, S3C_UCON, ucon);
++
++ rx_enabled(port) = 1;
++ spin_unlock_irqrestore(&port->lock, flags);
++}
++
++static void s3c_serial_rx_disable(struct uart_port *port)
++{
++ unsigned long flags;
++ unsigned int ucon;
++
++ spin_lock_irqsave(&port->lock, flags);
++
++ ucon = rd_regl(port, S3C_UCON);
++ ucon &= ~S3C_UCON_RXIRQMODE;
++ wr_regl(port, S3C_UCON, ucon);
++
++ rx_enabled(port) = 0;
++ spin_unlock_irqrestore(&port->lock, flags);
++}
++
++static void s3c_serial_stop_tx(struct uart_port *port)
++{
++ if (tx_enabled(port)) {
++#ifdef UART_HAS_INTMSK
++ uart_disable_irq(port, UART_TX_INT);
++#else
++ disable_irq(TX_IRQ(port));
++#endif
++ tx_enabled(port) = 0;
++ if (port->flags & UPF_CONS_FLOW)
++ s3c_serial_rx_enable(port);
++ }
++}
++
++static void s3c_serial_start_tx(struct uart_port *port)
++{
++ if (!tx_enabled(port)) {
++ if (port->flags & UPF_CONS_FLOW)
++ s3c_serial_rx_disable(port);
++
++#ifdef UART_HAS_INTMSK
++ uart_enable_irq(port, UART_TX_INT);
++#else
++ enable_irq(TX_IRQ(port));
++#endif
++ tx_enabled(port) = 1;
++ }
++}
++
++
++static void s3c_serial_stop_rx(struct uart_port *port)
++{
++ if (rx_enabled(port)) {
++#ifdef UART_HAS_INTMSK
++ uart_disable_irq(port, UART_RX_INT);
++#else
++ disable_irq(RX_IRQ(port));
++#endif
++ rx_enabled(port) = 0;
++ }
++}
++
++static void s3c_serial_enable_ms(struct uart_port *port)
++{
++}
++
++static inline struct s3c_uart_info *s3c_port_to_info(struct uart_port *port)
++{
++ return to_ourport(port)->info;
++}
++
++static inline struct s3c2410_uartcfg *s3c_port_to_cfg(struct uart_port *port)
++{
++ if (port->dev == NULL)
++ return NULL;
++
++ return (struct s3c2410_uartcfg *)port->dev->platform_data;
++}
++
++static int s3c_serial_rx_fifocnt(struct s3c_uart_port *ourport,
++ unsigned long ufstat)
++{
++ struct s3c_uart_info *info = ourport->info;
++
++ if (ufstat & info->rx_fifofull)
++ return info->fifosize;
++
++ return (ufstat & info->rx_fifomask) >> info->rx_fifoshift;
++}
++
++
++/* ? - where has parity gone?? */
++#define S3C_UERSTAT_PARITY (0x1000)
++
++static irqreturn_t
++s3c_serial_rx_chars(int irq, void *dev_id)
++{
++ struct s3c_uart_port *ourport = dev_id;
++ struct uart_port *port = &ourport->port;
++ struct tty_struct *tty = port->info->tty;
++ unsigned int ufcon, ch, flag, ufstat, uerstat;
++ int max_count = 64;
++
++ while (max_count-- > 0) {
++ ufcon = rd_regl(port, S3C_UFCON);
++ ufstat = rd_regl(port, S3C_UFSTAT);
++
++ if (s3c_serial_rx_fifocnt(ourport, ufstat) == 0)
++ break;
++
++ uerstat = rd_regl(port, S3C_UERSTAT);
++ ch = rd_regb(port, S3C_URXH);
++
++ if (port->flags & UPF_CONS_FLOW) {
++ int txe = s3c_serial_txempty_nofifo(port);
++
++ if (rx_enabled(port)) {
++ if (!txe) {
++ rx_enabled(port) = 0;
++ continue;
++ }
++ } else {
++ if (txe) {
++ ufcon |= S3C_UFCON_RESETRX;
++ wr_regl(port, S3C_UFCON, ufcon);
++ rx_enabled(port) = 1;
++ goto out;
++ }
++ continue;
++ }
++ }
++
++ /* insert the character into the buffer */
++
++ flag = TTY_NORMAL;
++ port->icount.rx++;
++
++ if (uerstat & S3C_UERSTAT_ANY) {
++ dbg("rxerr: port ch=0x%02x, rxs=0x%08x\n", ch, uerstat);
++
++ /* check for break */
++ if (uerstat & S3C_UERSTAT_BREAK) {
++ dbg("break!\n");
++ port->icount.brk++;
++ if (uart_handle_break(port))
++ goto ignore_char;
++ }
++
++ if (uerstat & S3C_UERSTAT_FRAME)
++ port->icount.frame++;
++ if (uerstat & S3C_UERSTAT_OVERRUN)
++ port->icount.overrun++;
++
++ uerstat &= port->read_status_mask;
++
++ if (uerstat & S3C_UERSTAT_BREAK)
++ flag = TTY_BREAK;
++ else if (uerstat & S3C_UERSTAT_PARITY)
++ flag = TTY_PARITY;
++ else if (uerstat & ( S3C_UERSTAT_FRAME | S3C_UERSTAT_OVERRUN))
++ flag = TTY_FRAME;
++ }
++
++ if (uart_handle_sysrq_char(port, ch))
++ goto ignore_char;
++
++ uart_insert_char(port, uerstat, S3C_UERSTAT_OVERRUN, ch, flag);
++
++ ignore_char:
++ continue;
++ }
++ tty_flip_buffer_push(tty);
++
++ out:
++ return IRQ_HANDLED;
++}
++
++static irqreturn_t s3c_serial_tx_chars(int irq, void *id)
++{
++ struct s3c_uart_port *ourport = id;
++ struct uart_port *port = &ourport->port;
++ struct circ_buf *xmit = &port->info->xmit;
++ int count = 256;
++
++ if (port->x_char) {
++ wr_regb(port, S3C_UTXH, port->x_char);
++ port->icount.tx++;
++ port->x_char = 0;
++ goto out;
++ }
++
++ /* if there isnt anything more to transmit, or the uart is now
++ * stopped, disable the uart and exit
++ */
++
++ if (uart_circ_empty(xmit) || uart_tx_stopped(port)) {
++ s3c_serial_stop_tx(port);
++ goto out;
++ }
++
++ /* try and drain the buffer... */
++
++ while (!uart_circ_empty(xmit) && count-- > 0) {
++ if (rd_regl(port, S3C_UFSTAT) & ourport->info->tx_fifofull)
++ break;
++
++ wr_regb(port, S3C_UTXH, xmit->buf[xmit->tail]);
++ xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
++ port->icount.tx++;
++ }
++
++ if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
++ uart_write_wakeup(port);
++
++ if (uart_circ_empty(xmit))
++ s3c_serial_stop_tx(port);
++
++ out:
++ return IRQ_HANDLED;
++}
++
++static unsigned int s3c_serial_tx_empty(struct uart_port *port)
++{
++ struct s3c_uart_info *info = s3c_port_to_info(port);
++ unsigned long ufstat = rd_regl(port, S3C_UFSTAT);
++ unsigned long ufcon = rd_regl(port, S3C_UFCON);
++
++ if (ufcon & S3C_UFCON_FIFOMODE) {
++ if ((ufstat & info->tx_fifomask) != 0 ||
++ (ufstat & info->tx_fifofull))
++ return 0;
++
++ return 1;
++ }
++
++ return s3c_serial_txempty_nofifo(port);
++}
++
++/* no modem control lines */
++static unsigned int s3c_serial_get_mctrl(struct uart_port *port)
++{
++ unsigned int umstat = rd_regb(port,S3C_UMSTAT);
++
++ if (umstat & S3C_UMSTAT_CTS)
++ return TIOCM_CAR | TIOCM_DSR | TIOCM_CTS;
++ else
++ return TIOCM_CAR | TIOCM_DSR;
++}
++
++static void s3c_serial_set_mctrl(struct uart_port *port, unsigned int mctrl)
++{
++ /* todo - possibly remove AFC and do manual CTS */
++}
++
++static void s3c_serial_break_ctl(struct uart_port *port, int break_state)
++{
++ unsigned long flags;
++ unsigned int ucon;
++
++ spin_lock_irqsave(&port->lock, flags);
++
++ ucon = rd_regl(port, S3C_UCON);
++
++ if (break_state)
++ ucon |= S3C_UCON_SBREAK;
++ else
++ ucon &= ~S3C_UCON_SBREAK;
++
++ wr_regl(port, S3C_UCON, ucon);
++
++ spin_unlock_irqrestore(&port->lock, flags);
++}
++
++static void s3c_serial_shutdown(struct uart_port *port)
++{
++ struct s3c_uart_port *ourport = to_ourport(port);
++
++#ifdef UART_HAS_INTMSK
++ if (ourport->tx_claimed || ourport->rx_claimed) {
++ free_irq(UART_IRQ(port), ourport);
++
++ ourport->tx_claimed = 0;
++ ourport->rx_claimed = 0;
++ tx_enabled(port) = 0;
++ rx_enabled(port) = 0;
++ }
++#else
++ if (ourport->tx_claimed) {
++ free_irq(TX_IRQ(port), ourport);
++ tx_enabled(port) = 0;
++ ourport->tx_claimed = 0;
++ }
++
++ if (ourport->rx_claimed) {
++ free_irq(RX_IRQ(port), ourport);
++ ourport->rx_claimed = 0;
++ rx_enabled(port) = 0;
++ }
++#endif
++}
++
++#ifdef UART_HAS_INTMSK
++static irqreturn_t
++s3c_serial_interrupt(int irq, void *dev_id)
++{
++ struct s3c_uart_port *ourport = dev_id;
++ struct uart_port *port = &ourport->port;
++ uint intpnd;
++
++ intpnd = rd_regl(port, S3C_UINTPND);
++
++ if (intpnd & UART_RX_INT) {
++ wr_regl(port, S3C_UINTPND, UART_RX_INT);
++ rd_regl(port, S3C_UINTPND); /*clearing the interrupt*/
++
++ return s3c_serial_rx_chars( irq, dev_id);
++ }
++ else if (intpnd & UART_TX_INT) {
++ wr_regl(port, S3C_UINTPND, UART_TX_INT);
++ rd_regl(port, S3C_UINTPND); /*clearing the interrupt*/
++ return s3c_serial_tx_chars(irq, dev_id);
++ }
++ else if (intpnd & UART_ERR_INT) {
++ printk("UART err int.\n");
++ wr_regl(port, S3C_UINTPND, UART_ERR_INT);
++ rd_regl(port, S3C_UINTPND); /*clearing the interrupt*/
++ return IRQ_HANDLED;
++ }
++ else if (intpnd & UART_MODEM_INT) {
++ printk("In Modem ... other case\n");
++ wr_regl(port, S3C_UINTPND, UART_MODEM_INT);
++ rd_regl(port, S3C_UINTPND); /*clearing the interrupt*/
++ return IRQ_HANDLED;
++ }
++ // work around h/w problem : interrupt status bit update delay
++ //return IRQ_NONE;
++ return IRQ_HANDLED;
++
++}
++#endif
++
++static int s3c_serial_startup(struct uart_port *port)
++{
++ struct s3c_uart_port *ourport = to_ourport(port);
++ unsigned long flags;
++ int ret;
++
++ dbg("s3c_serial_startup: port=%p (%08lx,%p)\n",
++ port->mapbase, port->membase);
++
++ local_irq_save(flags);
++
++ rx_enabled(port) = 1;
++ tx_enabled(port) = 1;
++
++#ifdef UART_HAS_INTMSK
++ uart_enable_irq(port, UART_TX_INT | UART_RX_INT);
++ ret = request_irq(UART_IRQ(port), s3c_serial_interrupt, 0,
++ s3c_serial_portname(port), ourport);
++ if (ret != 0) {
++ printk(KERN_ERR "cannot get irq %d\n", UART_IRQ(port));
++ return ret;
++ }
++#else
++ ret = request_irq(RX_IRQ(port),
++ s3c_serial_rx_chars, 0,
++ s3c_serial_portname(port), ourport);
++ if (ret != 0) {
++ printk(KERN_ERR "cannot get irq %d\n", RX_IRQ(port));
++ return ret;
++ }
++
++ ret = request_irq(TX_IRQ(port),
++ s3c_serial_tx_chars, 0,
++ s3c_serial_portname(port), ourport);
++ if (ret) {
++ printk(KERN_ERR "cannot get irq %d\n", TX_IRQ(port));
++ s3c_serial_shutdown(port);
++ local_irq_restore(flags);
++ return ret;
++ }
++#endif
++
++ ourport->rx_claimed = 1;
++ ourport->tx_claimed = 1;
++
++ dbg("s3c_serial_startup ok\n");
++
++ /* the port reset code should have done the correct
++ * register setup for the port controls */
++ local_irq_restore(flags);
++ return ret;
++}
++
++/* power power management control */
++static void s3c_serial_pm(struct uart_port *port, unsigned int level,
++ unsigned int old)
++{
++ struct s3c_uart_port *ourport = to_ourport(port);
++
++ switch (level) {
++ case 3:
++ if (!IS_ERR(ourport->baudclk) && ourport->baudclk != NULL)
++ clk_disable(ourport->baudclk);
++
++ clk_disable(ourport->clk);
++ break;
++
++ case 0:
++ clk_enable(ourport->clk);
++
++ if (!IS_ERR(ourport->baudclk) && ourport->baudclk != NULL)
++ clk_enable(ourport->baudclk);
++
++ break;
++ default:
++ printk(KERN_ERR "s3c_serial: unknown pm %d\n", level);
++ }
++}
++
++/* baud rate calculation
++ *
++ * The UARTs on the S3C can take their clocks from a number
++ * of different sources, including the peripheral clock ("pclk") and an
++ * external clock ("uclk"). The S3C2413 also adds the core clock ("fclk")
++ * with a programmable extra divisor.
++ *
++ * The following code goes through the clock sources, and calculates the
++ * baud clocks (and the resultant actual baud rates) and then tries to
++ * pick the closest one and select that.
++ *
++ * NOTES:
++ * 1) there is no current code to properly select/deselect FCLK on
++ * the s3c2413, so only specify FCLK or non-FCLK in the clock
++ * sources for the UART
++ *
++*/
++
++
++#define MAX_CLKS (8)
++
++static struct s3c24xx_uart_clksrc tmp_clksrc = {
++ .name = "pclkd1",
++ .min_baud = 0,
++ .max_baud = 0,
++ .divisor = 1,
++};
++
++static inline int
++s3c_serial_getsource(struct uart_port *port, struct s3c24xx_uart_clksrc *c)
++{
++ struct s3c_uart_info *info = s3c_port_to_info(port);
++
++ return (info->get_clksrc)(port, c);
++}
++
++static inline int
++s3c_serial_setsource(struct uart_port *port, struct s3c24xx_uart_clksrc *c)
++{
++ struct s3c_uart_info *info = s3c_port_to_info(port);
++
++ return (info->set_clksrc)(port, c);
++}
++
++
++struct baud_calc {
++ struct s3c24xx_uart_clksrc *clksrc;
++ unsigned int calc;
++ unsigned int quot;
++ unsigned int slot;
++ struct clk *src;
++};
++
++static int s3c_serial_calcbaud(struct baud_calc *calc,
++ struct uart_port *port,
++ struct s3c24xx_uart_clksrc *clksrc,
++ unsigned int baud)
++{
++ unsigned long rate,nslot;
++ unsigned long tempdiv;
++
++ calc->src = clk_get(port->dev, clksrc->name);
++ if (calc->src == NULL || IS_ERR(calc->src))
++ return 0;
++
++ baud/=10;
++
++ rate = clk_get_rate(calc->src);
++ rate /= clksrc->divisor;
++
++ calc->clksrc = clksrc;
++
++ tempdiv = (rate*10/(baud*16))-100;
++ nslot = (((tempdiv%100)*16)+50)/100; /* 50 means round operation by ryu */
++ calc->quot = tempdiv/100;
++ calc->calc = (rate / (calc->quot * 16));
++ calc->slot = nSlotTable[nslot];
++ printk(KERN_DEBUG "FOUND quot %d, calc %d, slot 0x%x, nslot %ld\n",
++ calc->quot, calc->calc ,
++ calc->slot, nslot);
++ return 1;
++}
++
++static unsigned int s3c_serial_getclk(struct uart_port *port,
++ struct s3c24xx_uart_clksrc **clksrc,
++ struct clk **clk,
++ unsigned int baud, unsigned int *slot)
++{
++ struct s3c2410_uartcfg *cfg = s3c_port_to_cfg(port);
++ struct s3c24xx_uart_clksrc *clkp;
++ struct baud_calc res[MAX_CLKS];
++ struct baud_calc *resptr, *best, *sptr;
++ int i;
++
++ clkp = cfg->clocks;
++ best = NULL;
++
++ if (cfg->clocks_size < 2) {
++ if (cfg->clocks_size == 0)
++ clkp = &tmp_clksrc;
++
++ /* check to see if we're sourcing fclk, and if so we're
++ * going to have to update the clock source
++ */
++
++ if (strcmp(clkp->name, "fclk") == 0) {
++ struct s3c24xx_uart_clksrc src;
++
++ s3c_serial_getsource(port, &src);
++
++ /* check that the port already using fclk, and if
++ * not, then re-select fclk
++ */
++
++ if (strcmp(src.name, clkp->name) == 0) {
++ s3c_serial_setsource(port, clkp);
++ s3c_serial_getsource(port, &src);
++ }
++
++ clkp->divisor = src.divisor;
++ }
++
++ s3c_serial_calcbaud(res, port, clkp, baud);
++ best = res;
++ resptr = best + 1;
++ } else {
++ resptr = res;
++
++ for (i = 0; i < cfg->clocks_size; i++, clkp++) {
++ if (s3c_serial_calcbaud(resptr, port, clkp, baud))
++ resptr++;
++ }
++ }
++
++ /* ok, we now need to select the best clock we found */
++
++ if (best==NULL) {
++ unsigned int deviation = (1<<30)|((1<<30)-1);
++ int calc_deviation;
++
++ best = sptr = res;
++
++ for (sptr = res; sptr < resptr; sptr++) {
++ printk(KERN_DEBUG
++ "found clk %p (%s) quot %d, calc %d\n",
++ sptr->clksrc, sptr->clksrc->name,
++ sptr->quot, sptr->calc);
++
++ calc_deviation = baud - sptr->calc;
++
++ if (calc_deviation < 0)
++ calc_deviation = -calc_deviation;
++
++ if (calc_deviation < deviation) {
++ best = sptr;
++ deviation = calc_deviation;
++ }
++ }
++
++ printk(KERN_DEBUG "The best clksrc among candidate clksrc: %p(%s) (deviation: %d bps)\n", best, best->clksrc->name, deviation);
++ }
++
++ printk(KERN_DEBUG "Selected clock is %p (%s) quot %d, calc %d\n",
++ best->clksrc, best->clksrc->name, best->quot, best->calc);
++
++ /* store results to pass back */
++ *clksrc = best->clksrc;
++ *clk = best->src;
++ *slot = best->slot;
++
++ return best->quot;
++}
++
++static void s3c_serial_set_termios(struct uart_port *port,
++ struct ktermios *termios,
++ struct ktermios *old)
++{
++ struct s3c2410_uartcfg *cfg = s3c_port_to_cfg(port);
++ struct s3c_uart_port *ourport = to_ourport(port);
++ struct s3c24xx_uart_clksrc *clksrc = NULL;
++ struct clk *clk = NULL;
++ unsigned long flags;
++ unsigned int baud, quot, slot = 0;
++ unsigned int ulcon;
++ unsigned int umcon;
++
++ /*
++ * We don't support modem control lines.
++ */
++ termios->c_cflag &= ~(HUPCL | CMSPAR);
++ termios->c_cflag |= CLOCAL;
++
++ /*
++ * Ask the core to calculate the divisor for us.
++ */
++
++ baud = uart_get_baud_rate(port, termios, old, 0, 4000000);
++
++ if (baud == 38400 && (port->flags & UPF_SPD_MASK) == UPF_SPD_CUST)
++ quot = port->custom_divisor;
++ else
++ quot = s3c_serial_getclk(port, &clksrc, &clk, baud, &slot);
++
++ /* check to see if we need to change clock source */
++
++ if (ourport->clksrc != clksrc || ourport->baudclk != clk) {
++ s3c_serial_setsource(port, clksrc);
++
++ if (ourport->baudclk != NULL && !IS_ERR(ourport->baudclk)) {
++ clk_disable(ourport->baudclk);
++ ourport->baudclk = NULL;
++ }
++
++ clk_enable(clk);
++
++ ourport->clksrc = clksrc;
++ ourport->baudclk = clk;
++ }
++
++ switch (termios->c_cflag & CSIZE) {
++ case CS5:
++ dbg("config: 5bits/char\n");
++ ulcon = S3C_LCON_CS5;
++ break;
++ case CS6:
++ dbg("config: 6bits/char\n");
++ ulcon = S3C_LCON_CS6;
++ break;
++ case CS7:
++ dbg("config: 7bits/char\n");
++ ulcon = S3C_LCON_CS7;
++ break;
++ case CS8:
++ default:
++ dbg("config: 8bits/char\n");
++ ulcon = S3C_LCON_CS8;
++ break;
++ }
++
++ /* preserve original lcon IR settings */
++ ulcon |= (cfg->ulcon & S3C_LCON_IRM);
++
++ if (termios->c_cflag & CSTOPB)
++ ulcon |= S3C_LCON_STOPB;
++
++ umcon = (termios->c_cflag & CRTSCTS) ? S3C_UMCOM_AFC : 0;
++
++ if (termios->c_cflag & PARENB) {
++ if (termios->c_cflag & PARODD)
++ ulcon |= S3C_LCON_PODD;
++ else
++ ulcon |= S3C_LCON_PEVEN;
++ } else {
++ ulcon |= S3C_LCON_PNONE;
++ }
++
++ spin_lock_irqsave(&port->lock, flags);
++
++ dbg("setting ulcon to %08x, brddiv to %d\n", ulcon, quot);
++
++ wr_regl(port, S3C_ULCON, ulcon);
++ wr_regl(port, S3C_UBRDIV, quot);
++ wr_regl(port, S3C_UDIVSLOT, slot);
++ wr_regl(port, S3C_UMCON, umcon);
++
++ dbg("uart: ulcon = 0x%08x, ucon = 0x%08x, ufcon = 0x%08x\n",
++ rd_regl(port, S3C_ULCON),
++ rd_regl(port, S3C_UCON),
++ rd_regl(port, S3C_UFCON));
++
++ /*
++ * Update the per-port timeout.
++ */
++ uart_update_timeout(port, termios->c_cflag, baud);
++
++ /*
++ * Which character status flags are we interested in?
++ */
++ port->read_status_mask = S3C_UERSTAT_OVERRUN;
++ if (termios->c_iflag & INPCK)
++ port->read_status_mask |= S3C_UERSTAT_FRAME | S3C_UERSTAT_PARITY;
++
++ /*
++ * Which character status flags should we ignore?
++ */
++ port->ignore_status_mask = 0;
++ if (termios->c_iflag & IGNPAR)
++ port->ignore_status_mask |= S3C_UERSTAT_OVERRUN;
++ if (termios->c_iflag & IGNBRK && termios->c_iflag & IGNPAR)
++ port->ignore_status_mask |= S3C_UERSTAT_FRAME;
++
++ /*
++ * Ignore all characters if CREAD is not set.
++ */
++ if ((termios->c_cflag & CREAD) == 0)
++ port->ignore_status_mask |= RXSTAT_DUMMY_READ;
++
++ spin_unlock_irqrestore(&port->lock, flags);
++}
++
++static const char *s3c_serial_type(struct uart_port *port)
++{
++ switch (port->type) {
++ case PORT_S3C2410:
++ return "S3C";
++ default:
++ return NULL;
++ }
++}
++
++#define MAP_SIZE (0x100)
++
++static void s3c_serial_release_port(struct uart_port *port)
++{
++ release_mem_region(port->mapbase, MAP_SIZE);
++}
++
++static int s3c_serial_request_port(struct uart_port *port)
++{
++ const char *name = s3c_serial_portname(port);
++ return request_mem_region(port->mapbase, MAP_SIZE, name) ? 0 : -EBUSY;
++}
++
++static void s3c_serial_config_port(struct uart_port *port, int flags)
++{
++ struct s3c_uart_info *info = s3c_port_to_info(port);
++
++ if (flags & UART_CONFIG_TYPE && s3c_serial_request_port(port) == 0)
++ port->type = info->type;
++}
++
++/*
++ * verify the new serial_struct (for TIOCSSERIAL).
++ */
++static int
++s3c_serial_verify_port(struct uart_port *port, struct serial_struct *ser)
++{
++ struct s3c_uart_info *info = s3c_port_to_info(port);
++
++ if (ser->type != PORT_UNKNOWN && ser->type != info->type)
++ return -EINVAL;
++
++ return 0;
++}
++
++
++#ifdef CONFIG_SERIAL_S5PC1XX_CONSOLE
++
++static struct console s3c_serial_console;
++
++#define S3C64XX_SERIAL_CONSOLE &s3c_serial_console
++#else
++#define S3C64XX_SERIAL_CONSOLE NULL
++#endif
++
++static struct uart_ops s3c_serial_ops = {
++ .pm = s3c_serial_pm,
++ .tx_empty = s3c_serial_tx_empty,
++ .get_mctrl = s3c_serial_get_mctrl,
++ .set_mctrl = s3c_serial_set_mctrl,
++ .stop_tx = s3c_serial_stop_tx,
++ .start_tx = s3c_serial_start_tx,
++ .stop_rx = s3c_serial_stop_rx,
++ .enable_ms = s3c_serial_enable_ms,
++ .break_ctl = s3c_serial_break_ctl,
++ .startup = s3c_serial_startup,
++ .shutdown = s3c_serial_shutdown,
++ .set_termios = s3c_serial_set_termios,
++ .type = s3c_serial_type,
++ .release_port = s3c_serial_release_port,
++ .request_port = s3c_serial_request_port,
++ .config_port = s3c_serial_config_port,
++ .verify_port = s3c_serial_verify_port,
++};
++
++
++static struct uart_driver s3c_uart_drv = {
++ .owner = THIS_MODULE,
++ .dev_name = "s3c_serial",
++ .nr = NR_PORTS,
++ .cons = S3C64XX_SERIAL_CONSOLE,
++ .driver_name = S3C_SERIAL_NAME,
++ .major = S3C_SERIAL_MAJOR,
++ .minor = S3C_SERIAL_MINOR,
++};
++
++static struct s3c_uart_port s3c_serial_ports[NR_PORTS] = {
++ [0] = {
++ .port = {
++ .lock = SPIN_LOCK_UNLOCKED,
++ .iotype = UPIO_MEM,
++ .irq = S3C_IRQ_UART0,
++ .uartclk = 0,
++ .fifosize = UART_FIFO_SIZE,
++ .ops = &s3c_serial_ops,
++ .flags = UPF_BOOT_AUTOCONF,
++ .line = 0,
++ }
++ },
++ [1] = {
++ .port = {
++ .lock = SPIN_LOCK_UNLOCKED,
++ .iotype = UPIO_MEM,
++ .irq = S3C_IRQ_UART1,
++ .uartclk = 0,
++ .fifosize = UART_FIFO_SIZE,
++ .ops = &s3c_serial_ops,
++ .flags = UPF_BOOT_AUTOCONF,
++ .line = 1,
++ }
++ },
++#if NR_PORTS > 2
++ [2] = {
++ .port = {
++ .lock = SPIN_LOCK_UNLOCKED,
++ .iotype = UPIO_MEM,
++ .irq = S3C_IRQ_UART2,
++ .uartclk = 0,
++ .fifosize = UART_FIFO_SIZE,
++ .ops = &s3c_serial_ops,
++ .flags = UPF_BOOT_AUTOCONF,
++ .line = 2,
++ }
++ },
++ [3] = {
++ .port = {
++ .lock = SPIN_LOCK_UNLOCKED,
++ .iotype = UPIO_MEM,
++ .irq = S3C_IRQ_UART3,
++ .uartclk = 0,
++ .fifosize = UART_FIFO_SIZE,
++ .ops = &s3c_serial_ops,
++ .flags = UPF_BOOT_AUTOCONF,
++ .line = 3,
++ }
++ }
++#endif
++};
++
++/* s3c_serial_resetport
++ *
++ * wrapper to call the specific reset for this port (reset the fifos
++ * and the settings)
++*/
++
++static int s3c_serial_resetport(struct uart_port *port,
++ struct s3c2410_uartcfg *cfg)
++{
++#if 0
++ struct s3c_uart_info *info = s3c_port_to_info(port);
++
++ return (info->reset_port)(port, cfg);
++#else
++ /* ensure registers are setup */
++ dbg("s3c_serial_resetport: port=%p (%08lx), cfg=%p\n",
++ port, port->mapbase, cfg);
++
++ wr_regl(port, S3C_UCON, cfg->ucon);
++ wr_regl(port, S3C_ULCON, cfg->ulcon);
++
++ /* reset both fifos */
++ wr_regl(port, S3C_UFCON, cfg->ufcon | S3C_UFCON_RESETBOTH);
++ wr_regl(port, S3C_UFCON, cfg->ufcon);
++
++ return 0;
++
++#endif
++}
++
++/* s3c_serial_init_port
++ *
++ * initialise a single serial port from the platform device given
++ */
++
++static int s3c_serial_init_port(struct s3c_uart_port *ourport,
++ struct s3c_uart_info *info,
++ struct platform_device *plat_dev)
++{
++ struct uart_port *port = &ourport->port;
++ struct s3c2410_uartcfg *cfg;
++ struct resource *res;
++
++ dbg("s3c_serial_init_port: port=%p, plat_dev=%p\n", port, plat_dev);
++
++ if (plat_dev == NULL)
++ return -ENODEV;
++
++ cfg = s3c_dev_to_cfg(&plat_dev->dev);
++
++ if (port->mapbase != 0)
++ return 0;
++
++ if (cfg->hwport > NR_PORTS)
++ return -EINVAL;
++
++ /*GPIO setup for each port*/
++ switch(port->line) {
++ case 0:
++ gpio_set_pin(S3C_GPA0, S3C_GPA0_UART_RXD0);
++ gpio_set_pin(S3C_GPA1, S3C_GPA1_UART_TXD0);
++ gpio_set_pin(S3C_GPA2, S3C_GPA2_UART_CTS0);
++ gpio_set_pin(S3C_GPA3, S3C_GPA3_UART_RTS0);
++ break;
++ case 1:
++ gpio_set_pin(S3C_GPA4, S3C_GPA4_UART_RXD1);
++ gpio_set_pin(S3C_GPA5, S3C_GPA5_UART_TXD1);
++ gpio_set_pin(S3C_GPA5, S3C_GPA6_UART_CTS1);
++ gpio_set_pin(S3C_GPA7, S3C_GPA7_UART_RTS1);
++ break;
++ case 2:
++ gpio_set_pin(S3C_GPB0, S3C_GPB0_UART_RXD2);
++ gpio_set_pin(S3C_GPB1, S3C_GPB1_UART_TXD2);
++ break;
++ case 3:
++ gpio_set_pin(S3C_GPB2, S3C_GPB2_UART_RXD3);
++ gpio_set_pin(S3C_GPB3, S3C_GPB3_UART_TXD3);
++ break;
++ default:
++ break;
++ }
++
++ /* setup info for port */
++ port->dev = &plat_dev->dev;
++ ourport->info = info;
++
++ /* copy the info in from provided structure */
++ ourport->port.fifosize = info->fifosize;
++
++ dbg("s3c_serial_init_port: %p (hw %d)...\n", port, cfg->hwport);
++
++ port->uartclk = UART_CLK;
++
++ if (cfg->uart_flags & UPF_CONS_FLOW) {
++ dbg("s3c_serial_init_port: enabling flow control\n");
++ port->flags |= UPF_CONS_FLOW;
++ }
++
++ /* sort our the physical and virtual addresses for each UART */
++
++ res = platform_get_resource(plat_dev, IORESOURCE_MEM, 0);
++ if (res == NULL) {
++ printk(KERN_ERR "failed to find memory resource for uart\n");
++ return -EINVAL;
++ }
++
++ dbg("resource %p (%lx..%lx)\n", res, res->start, res->end);
++
++ port->mapbase = res->start;
++ port->membase = S3C24XX_VA_UART + (res->start - S3C24XX_PA_UART);
++ port->irq = platform_get_irq(plat_dev, 0);
++
++ ourport->clk = clk_get(&plat_dev->dev, "UART0");
++
++ dbg("port: map=%08x, mem=%08x, irq=%d, clock=%ld\n",
++ port->mapbase, port->membase, port->irq, port->uartclk);
++
++ /* reset the fifos (and setup the uart) */
++ s3c_serial_resetport(port, cfg);
++ return 0;
++}
++
++/* Device driver serial port probe */
++static int probe_index = 0;
++
++static int s3c6400_serial_probe(struct platform_device *dev,
++ struct s3c_uart_info *info)
++{
++ struct s3c_uart_port *ourport;
++ int ret;
++
++ dbg("s3c_serial_probe(%p) %d\n", dev, probe_index);
++
++ ourport = &s3c_serial_ports[probe_index];
++ probe_index++;
++
++ dbg("%s: initialising port %p...\n", __FUNCTION__, ourport);
++
++ //ret = s3c_serial_init_port(ourport, &s3c_uart_inf, dev);
++ ret = s3c_serial_init_port(ourport, info, dev);
++ if (ret < 0)
++ goto probe_err;
++
++ dbg("%s: adding port\n", __FUNCTION__);
++ uart_add_one_port(&s3c_uart_drv, &ourport->port);
++ platform_set_drvdata(dev, &ourport->port);
++
++ return 0;
++
++ probe_err:
++ return ret;
++}
++
++static int s3c_serial_remove(struct platform_device *dev)
++{
++ struct uart_port *port = s3c_dev_to_port(&dev->dev);
++
++ if (port)
++ uart_remove_one_port(&s3c_uart_drv, port);
++
++ return 0;
++}
++
++/* UART power management code */
++
++#ifdef CONFIG_PM
++
++static int s3c_serial_suspend(struct platform_device *dev, pm_message_t state)
++{
++ struct uart_port *port = s3c_dev_to_port(&dev->dev);
++
++ if (port)
++ uart_suspend_port(&s3c_uart_drv, port);
++
++ return 0;
++}
++
++static int s3c_serial_resume(struct platform_device *dev)
++{
++ struct uart_port *port = s3c_dev_to_port(&dev->dev);
++ struct s3c_uart_port *ourport = to_ourport(port);
++
++ if (port) {
++ clk_enable(ourport->clk);
++ s3c_serial_resetport(port, s3c_port_to_cfg(port));
++ clk_disable(ourport->clk);
++
++ uart_resume_port(&s3c_uart_drv, port);
++ }
++
++ return 0;
++}
++
++#else
++#define s3c_serial_suspend NULL
++#define s3c_serial_resume NULL
++#endif
++
++static int s3c_serial_init(struct platform_driver *drv,
++ struct s3c_uart_info *info)
++{
++ dbg("s3c64xx_serial_init(%p,%p)\n", drv, info);
++ return platform_driver_register(drv);
++}
++
++static struct s3c_uart_info s3c_uart_inf = {
++ .name = "Samsung S3C UART",
++ .type = PORT_S3C2410,
++ .fifosize = UART_FIFO_SIZE,
++ .rx_fifomask = S3C_UFSTAT_RXMASK,
++ .rx_fifoshift = S3C_UFSTAT_RXSHIFT,
++ .rx_fifofull = S3C_UFSTAT_RXFULL,
++ .tx_fifofull = S3C_UFSTAT_TXFULL,
++ .tx_fifomask = S3C_UFSTAT_TXMASK,
++ .tx_fifoshift = S3C_UFSTAT_TXSHIFT,
++ .get_clksrc = s3c_serial_getsource_hw,
++ .set_clksrc = s3c_serial_setsource_hw,
++// .reset_port = s3c_serial_resetport,
++};
++
++/* device management */
++
++static int s3c_serial_probe(struct platform_device *dev)
++{
++ return s3c6400_serial_probe(dev, &s3c_uart_inf);
++}
++
++static struct platform_driver s3c_serial_drv = {
++ .probe = s3c_serial_probe,
++ .remove = s3c_serial_remove,
++ .suspend = s3c_serial_suspend,
++ .resume = s3c_serial_resume,
++ .driver = {
++ .name = "s3c-uart",
++ .owner = THIS_MODULE,
++ },
++};
++
++static inline int s3c6400_serial_init(void)
++{
++ return s3c_serial_init(&s3c_serial_drv, &s3c_uart_inf);
++}
++
++static inline void s3c6400_serial_exit(void)
++{
++ platform_driver_unregister(&s3c_serial_drv);
++}
++
++
++/* module initialisation code */
++static int __init s3c_serial_modinit(void)
++{
++ int ret;
++
++ ret = uart_register_driver(&s3c_uart_drv);
++ if (ret < 0) {
++ printk(KERN_ERR "failed to register UART driver\n");
++ return -1;
++ }
++
++ s3c6400_serial_init();
++
++ return 0;
++}
++
++static void __exit s3c_serial_modexit(void)
++{
++ s3c6400_serial_exit();
++
++ uart_unregister_driver(&s3c_uart_drv);
++}
++
++module_init(s3c_serial_modinit);
++module_exit(s3c_serial_modexit);
++
++/* ----------------------------------------------------------------------------------*/
++/* Console code for UART */
++/*-----------------------------------------------------------------------------------*/
++
++#ifdef CONFIG_SERIAL_S5PC1XX_CONSOLE
++
++static struct uart_port *cons_uart;
++
++static int
++s3c_serial_console_txrdy(struct uart_port *port, unsigned int ufcon)
++{
++ struct s3c_uart_info *info = s3c_port_to_info(port);
++ unsigned long ufstat, utrstat;
++
++ if (ufcon & S3C_UFCON_FIFOMODE) {
++ /* fifo mode - check ammount of data in fifo registers... */
++ ufstat = rd_regl(port, S3C_UFSTAT);
++ return (ufstat & info->tx_fifofull) ? 0 : 1;
++ }
++
++ /* in non-fifo mode, we go and use the tx buffer empty */
++ utrstat = rd_regl(port, S3C_UTRSTAT);
++ return (utrstat & S3C_UTRSTAT_TXE) ? 1 : 0;
++}
++
++static void
++s3c_serial_console_write(struct console *co, const char *s,
++ unsigned int count)
++{
++ int i;
++ unsigned int ufcon = rd_regl(cons_uart, S3C_UFCON);
++
++ for (i = 0; i < count; i++) {
++ while (!s3c_serial_console_txrdy(cons_uart, ufcon))
++ barrier();
++
++ wr_regb(cons_uart, S3C_UTXH, s[i]);
++
++ if (s[i] == '\n') {
++ while (!s3c_serial_console_txrdy(cons_uart, ufcon))
++ barrier();
++
++ wr_regb(cons_uart, S3C_UTXH, '\r');
++ }
++ }
++}
++
++static void __init
++s3c_serial_get_options(struct uart_port *port, int *baud,
++ int *parity, int *bits)
++{
++ struct s3c24xx_uart_clksrc clksrc;
++ struct clk *clk;
++ unsigned int ulcon;
++ unsigned int ucon;
++ unsigned int ubrdiv;
++ unsigned long rate;
++
++ ulcon = rd_regl(port, S3C_ULCON);
++ ucon = rd_regl(port, S3C_UCON);
++ ubrdiv = rd_regl(port, S3C_UBRDIV);
++
++ dbg("s3c_serial_get_options: port=%p\n"
++ "registers: ulcon=%08x, ucon=%08x, ubdriv=%08x\n",
++ port, ulcon, ucon, ubrdiv);
++
++ if ((ucon & 0xf) != 0) {
++ /* consider the serial port configured if the tx/rx mode set */
++ switch (ulcon & S3C_LCON_CSMASK) {
++ case S3C_LCON_CS5:
++ *bits = 5;
++ break;
++
++ case S3C_LCON_CS6:
++ *bits = 6;
++ break;
++
++ case S3C_LCON_CS7:
++ *bits = 7;
++ break;
++
++ case S3C_LCON_CS8:
++ default:
++ *bits = 8;
++ break;
++ }
++
++ switch (ulcon & S3C_LCON_PMASK) {
++ case S3C_LCON_PEVEN:
++ *parity = 'e';
++ break;
++
++ case S3C_LCON_PODD:
++ *parity = 'o';
++ break;
++
++ case S3C_LCON_PNONE:
++ default:
++ *parity = 'n';
++ }
++
++ /* now calculate the baud rate */
++ s3c_serial_getsource(port, &clksrc);
++
++ clk = clk_get(port->dev, clksrc.name);
++ if (!IS_ERR(clk) && clk != NULL)
++ rate = clk_get_rate(clk) / clksrc.divisor;
++ else
++ rate = 1;
++
++
++ *baud = rate / ( 16 * (ubrdiv + 1));
++ dbg("calculated baud %d\n", *baud);
++ }
++
++}
++
++/* s3c_serial_init_ports
++ *
++ * initialise the serial ports from the machine provided initialisation
++ * data.
++*/
++
++static int s3c_serial_init_ports(struct s3c_uart_info *info)
++{
++ struct s3c_uart_port *ptr = s3c_serial_ports;
++ struct platform_device **platdev_ptr;
++ int i;
++
++ dbg("s3c_serial_init_ports: initialising ports...\n");
++
++ platdev_ptr = s3c24xx_uart_devs;
++
++ for (i = 0; i < NR_PORTS; i++, ptr++, platdev_ptr++) {
++ s3c_serial_init_port(ptr, info, *platdev_ptr);
++ }
++
++ return 0;
++}
++
++static int __init
++s3c_serial_console_setup(struct console *co, char *options)
++{
++ struct uart_port *port;
++ int baud = 9600;
++ int bits = 8;
++ int parity = 'n';
++ int flow = 'n';
++
++ dbg("s3c_serial_console_setup: co=%p (%d), %s\n",
++ co, co->index, options);
++
++ /* is this a valid port */
++
++ if (co->index == -1 || co->index >= NR_PORTS)
++ co->index = 0;
++
++ port = &s3c_serial_ports[co->index].port;
++
++ /* is the port configured? */
++
++ if (port->mapbase == 0x0) {
++ co->index = 0;
++ port = &s3c_serial_ports[co->index].port;
++ }
++
++ cons_uart = port;
++
++ dbg("s3c_serial_console_setup: port=%p (%d)\n", port, co->index);
++
++ /*
++ * Check whether an invalid uart number has been specified, and
++ * if so, search for the first available port that does have
++ * console support.
++ */
++ if (options)
++ uart_parse_options(options, &baud, &parity, &bits, &flow);
++ else
++ s3c_serial_get_options(port, &baud, &parity, &bits);
++
++ dbg("s3c_serial_console_setup: baud %d\n", baud);
++
++ return uart_set_options(port, co, baud, parity, bits, flow);
++}
++
++/* s3c_serial_initconsole
++ *
++ * initialise the console from one of the uart drivers
++ */
++
++static struct console s3c_serial_console =
++{
++ .name = S3C_SERIAL_NAME,
++ .device = uart_console_device,
++ .flags = CON_PRINTBUFFER,
++ .index = -1,
++ .write = s3c_serial_console_write,
++ .setup = s3c_serial_console_setup
++};
++
++static int s3c_serial_initconsole(void)
++{
++ dbg("s3c_serial_initconsole\n");
++
++ s3c_serial_console.data = &s3c_uart_drv;
++ s3c_serial_init_ports(&s3c_uart_inf);
++
++ register_console(&s3c_serial_console);
++ return 0;
++}
++
++console_initcall(s3c_serial_initconsole);
++
++#endif /* CONFIG_SERIAL_S3C_CONSOLE */
++
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>");
++MODULE_DESCRIPTION("Samsung S3C Serial port driver");
+diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
+index abf0504..12380e8 100644
+--- a/drivers/spi/Kconfig
++++ b/drivers/spi/Kconfig
+@@ -174,6 +174,57 @@ config SPI_S3C24XX_GPIO
+ GPIO lines to provide the SPI bus. This can be used where
+ the inbuilt hardware cannot provide the transfer mode, or
+ where the board is using non hardware connected pins.
++
++config HS_SPI_S3C2450
++ tristate "S3C2450 High Speed SPI Driver"
++ depends on SPI && MACH_SMDK2450
++ help
++ Say Y here to include support for SPI controller in the
++ Samsung S3C2450 based System-on-Chip devices.
++
++config HS_SPI_S3C2416
++ tristate "S3C2416 High Speed SPI Driver"
++ depends on SPI && MACH_SMDK2416
++ help
++ Say Y here to include support for SPI controller in the
++ Samsung S3C2416 based System-on-Chip devices.
++
++config HS_SPI_S3C6410
++ tristate "S3C6410 High Speed SPI Driver"
++ depends on SPI && (MACH_SMDK6410 || MACH_SMDK6430)
++ help
++ Say Y here to include support for SPI controller in the
++ Samsung S3C6410 based System-on-Chip devices.
++
++choice
++ prompt "High Speed SPI Clock Implementations"
++ depends on HS_SPI_S3C2450 || HS_SPI_S3C6410 || HS_SPI_S3C2416
++
++config SPICLK_PCLK
++ bool "PCLK"
++ depends on HS_SPI_S3C2450 || HS_SPI_S3C6410 || HS_SPI_S3C2416
++ help
++ Say Y here to include support for pclk source.
++
++config SPICLK_EPLL
++ bool "EPLL"
++ depends on HS_SPI_S3C2450 || HS_SPI_S3C6410 || HS_SPI_S3C2416
++ help
++ Say Y here to include support for EPLL source.
++
++config SPICLK_USBCLK
++ bool "USBCLK"
++ depends on HS_SPI_S3C6400 || HS_SPI_S3C6410
++ help
++ Say Y here to include support for USB clock source.
++
++endchoice
++
++config WORD_TRANSIZE
++ bool "Tansfer size as Word"
++ depends on HS_SPI_S3C6400 || HS_SPI_S3C6410
++ help
++ Say Y here to include support for word transfer size.
+
+ config SPI_TXX9
+ tristate "Toshiba TXx9 SPI controller"
+diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
+index 41fbac4..35c6f87 100644
+--- a/drivers/spi/Makefile
++++ b/drivers/spi/Makefile
+@@ -35,6 +35,18 @@ obj-$(CONFIG_SPI_SPIDEV) += spidev.o
+ obj-$(CONFIG_SPI_TLE62X0) += tle62x0.o
+ # ... add above this line ...
+
++ifeq ($(CONFIG_MACH_SMDK2450),y)
++obj-$(CONFIG_SPI) += spi-dev.o hspi-s3c24xx.o
++endif
++
++ifeq ($(CONFIG_MACH_SMDK2416),y)
++obj-$(CONFIG_SPI) += spi-dev.o hspi-s3c24xx.o
++endif
++
++ifeq ($(CONFIG_MACH_SMDK6410),y)
++obj-$(CONFIG_SPI) += spi-dev.o hspi-s3c64xx.o
++endif
++
+ # SPI slave controller drivers (upstream link)
+ # ... add above this line ...
+
+diff --git a/drivers/spi/hspi-s3c24xx.c b/drivers/spi/hspi-s3c24xx.c
+new file mode 100644
+index 0000000..853e240
+--- /dev/null
++++ b/drivers/spi/hspi-s3c24xx.c
+@@ -0,0 +1,773 @@
++/* spi-s3c2443.c
++ *
++ * Copyright (C) 2006 Samsung Electronics Co. Ltd.
++ *
++ * S3C2443 SPI Controller
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++*/
++
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/time.h>
++#include <linux/clk.h>
++#include <linux/interrupt.h>
++#include <linux/sched.h>
++#include <linux/delay.h>
++#include <linux/errno.h>
++#include <linux/err.h>
++#include <linux/device.h>
++#include <linux/platform_device.h>
++
++#include <asm/hardware.h>
++#include <asm/irq.h>
++#include <asm/io.h>
++
++#include <asm/arch-s3c2410/regs-s3c-clock.h>
++
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-clock.h>
++#include <asm/arch/regs-spi.h>
++#include <asm/dma.h>
++
++#include "spi-dev.h"
++#include "hspi-s3c24xx.h"
++
++#undef debug
++//#define debug
++
++#ifdef debug
++#define DBG(x...) printk(x)
++#define DEBUG printk("%s :: %d\n",__FUNCTION__,__LINE__)
++void print_reg(struct s3c_spi *spi)
++{
++ printk("CH_CFG = 0x%08x\n",readl(spi->regs + S3C_CH_CFG));
++ printk("CLK_CFG = 0x%08x\n",readl(spi->regs + S3C_CLK_CFG));
++ printk("MODE_CFG = 0x%08x\n",readl(spi->regs + S3C_MODE_CFG));
++ printk("SLAVE_CFG = 0x%08x\n",readl(spi->regs + S3C_SLAVE_SEL));
++ printk("INT_EN = 0x%08x\n",readl(spi->regs + S3C_SPI_INT_EN));
++ printk("SPI_STATUS = 0x%08x\n",readl(spi->regs + S3C_SPI_STATUS));
++ printk("PACKET_CNT = 0x%08x\n",readl(spi->regs + S3C_PACKET_CNT));
++ printk("PEND_CLR = 0x%08x\n",readl(spi->regs + S3C_PENDING_CLR));
++}
++#else
++#define DEBUG
++#define DBG(x...) do { } while (0)
++void print_reg(struct s3c_spi *spi)
++{
++}
++#endif
++
++static void s3c_spi_free(struct s3c_spi *spi)
++{
++ DEBUG;
++
++ if (spi->clk != NULL && !IS_ERR(spi->clk)) {
++ clk_disable(spi->clk);
++ clk_put(spi->clk);
++ spi->clk = NULL;
++ }
++
++ if (spi->regs != NULL) {
++ iounmap(spi->regs);
++ spi->regs = NULL;
++ }
++
++ if (spi->ioarea != NULL) {
++ release_resource(spi->ioarea);
++ kfree(spi->ioarea);
++ spi->ioarea = NULL;
++ }
++}
++
++static int s3c_spi_hw_init(struct s3c_spi *spi)
++{
++
++ /* program defaults into the registers */
++ writel(readl(S3C2443_SCLKCON)|(1<<14), S3C2443_SCLKCON);
++ writel(readl(S3C2443_PCLKCON)|(1<<6), S3C2443_PCLKCON);
++
++ writel(readl(S3C24XX_MISCCR)|S3C24XX_MISCCR_SPISEL, S3C24XX_MISCCR);
++
++ /* initialize the gpio */
++ s3c2410_gpio_cfgpin(S3C2410_GPE11, S3C2410_GPE11_SPIMISO0);
++ s3c2410_gpio_cfgpin(S3C2410_GPE12, S3C2410_GPE12_SPIMOSI0);
++ s3c2410_gpio_cfgpin(S3C2410_GPE13, S3C2410_GPE13_SPICLK0);
++
++ s3c2410_gpio_cfgpin(S3C2410_GPL13, S3C2410_GPL13_SS0);
++ s3c2410_gpio_cfgpin(S3C2410_GPL14, S3C2410_GPL14_SS1);
++
++ s3c2410_gpio_cfgpin(S3C2410_GPL11, S3C2410_GPL11_SPIMOSI1);
++ s3c2410_gpio_cfgpin(S3C2410_GPL12, S3C2410_GPL12_SPIMISO1);
++ s3c2410_gpio_cfgpin(S3C2410_GPL10, S3C2410_GPL10_SPICLK1);
++
++#ifdef CONFIG_SPICLK_PCLK
++ /*Enable PCLK into the HS SPI*/
++ writel(readl(S3C2443_PCLKCON)|(1<<6), S3C2443_PCLKCON);
++
++ clk_enable(spi->clk);
++
++#elif defined CONFIG_SPICLK_EPLL
++ /* implemetation when use EPLL clock */
++ writel(0x800, S3C2443_LOCKCON1);
++ writel( (readl( S3C2443_CLKSRC ) | (1 << 6) ), S3C2443_CLKSRC); // EPLL Output
++
++#if defined(CONFIG_CPU_S3C2443)
++ writel((40<<16)|(1<<8)|(1<<0) ,S3C2443_EPLLCON);//96MHz
++#elif defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ writel((48<<16)|(3<<8)|(1<<0) ,S3C2443_EPLLCON);//96MHz
++#else
++# error Any CPU Type is not selected
++#endif
++
++ writel( readl(S3C2443_EPLLCON)& (~(1<<24)) , S3C2443_EPLLCON ); //EPLL On
++ writel(( readl(S3C2443_CLKDIV1) & (~(0x3<<24))) | (0x0 << 24) , S3C2443_CLKDIV1 ); // Epll Ratio is 1
++ writel(( readl(S3C24XX_MISCCR) & (~(0x7<<8))) | (0x1 << 8) , S3C24XX_MISCCR );
++
++ /* Epll, prescaler = 1 */
++ /* clock = ( clock source / (2 * ( prescaler + 1))) */
++ writel(0x501, spi->regs + S3C_CLK_CFG); //Use EPLL Clock and Clock On Prescaler 1
++#else
++#error you must define correct confige file.
++#endif
++ /* hspi software restet */
++
++ writeb(readb(spi->regs + S3C_CH_CFG) | (1<<5), spi->regs + S3C_CH_CFG);
++ writeb(readb(spi->regs + S3C_CH_CFG) & (~(1<<5)), spi->regs + S3C_CH_CFG);
++
++ DEBUG;
++
++ return 0;
++}
++
++static int s3c_spi_dma_init(struct s3c_spi *spi, int mode)
++{
++ DEBUG;
++
++ // TX
++ if (mode == 0) {
++ s3c2410_dma_devconfig(spi->dma, S3C2410_DMASRC_MEM, S3C_SPI_DMA_HWCFG, S3C_SPI_TX_DATA_REG);
++ s3c2410_dma_config(spi->dma, S3C_DMA_XFER_BYTE, S3C_DCON_SPI1);
++
++ }
++
++ // RX
++ if (mode == 1) {
++ s3c2410_dma_devconfig(spi->dma, S3C2410_DMASRC_HW, S3C_SPI_DMA_HWCFG, S3C_SPI_RX_DATA_REG);
++ s3c2410_dma_config(spi->dma, S3C_DMA_XFER_BYTE, S3C_DCON_SPI1);
++
++ }
++
++ s3c2410_dma_setflags(spi->dma, S3C2410_DMAF_AUTOSTART);
++
++ return 0;
++}
++
++static inline void s3c_spi_write_fifo(struct s3c_spi *spi)
++{
++ u32 wdata = 0;
++
++ if (spi->msg->wbuf) {
++ wdata = spi->msg->wbuf[spi->msg_ptr++];
++ } else {
++ spi->msg_ptr++;
++ wdata = 0xff;
++ }
++
++ DBG("wdata = %x\n",wdata);
++ writel(wdata, spi->regs + S3C_SPI_TX_DATA);
++}
++
++/* s3c_spi_master_complete
++ *
++ * complete the message and wake up the caller, using the given return code,
++ * or zero to mean ok.
++*/
++static inline void s3c_spi_master_complete(struct s3c_spi *spi, int ret)
++{
++ DEBUG;
++
++ spi->msg_ptr = 0;
++ spi->msg_rd_ptr = 0;
++ spi->msg->flags = 0;
++ spi->msg = NULL;
++ spi->msg_idx ++;
++ spi->msg_num = 0;
++
++ writel(0xff, spi->regs + S3C_PENDING_CLR);
++
++
++ if (ret)
++ spi->msg_idx = ret;
++}
++
++static int s3c_spi_done(struct s3c_spi *spi)
++{
++ u32 spi_clkcfg;
++ DEBUG;
++
++ spi_clkcfg = readl( spi->regs + S3C_CLK_CFG);
++ spi_clkcfg &= SPI_ENCLK_DISABLE;
++ writel( spi_clkcfg , spi->regs + S3C_CLK_CFG);
++
++ return 0;
++
++}
++
++static inline void s3c_spi_stop(struct s3c_spi *spi, int ret)
++{
++ DEBUG;
++
++ writel(0x0, spi->regs + S3C_SPI_INT_EN);
++ writel(0x1f, spi->regs + S3C_PENDING_CLR);
++ writel(0x0, spi->regs + S3C_CH_CFG);
++
++ s3c_spi_done(spi);
++ spi->state = STATE_IDLE;
++ s3c_spi_master_complete(spi, ret);
++ print_reg(spi);
++ up(&spi->sem);
++}
++
++void s3c_spi_dma_cb(struct s3c2410_dma_chan *dma_ch, void *buf_id,
++ int size, enum s3c2410_dma_buffresult result)
++{
++ struct s3c_spi *spi = (struct s3c_spi *)buf_id;
++ unsigned long status = 0;
++ DEBUG;
++
++ status = readl(spi->regs + S3C_SPI_STATUS);
++
++ pr_debug("DMA call back\n");
++
++ if (spi->msg->wbuf)
++ while (!(readl(spi->regs +S3C_SPI_STATUS) & SPI_STUS_TX_DONE)) {}
++
++ s3c_spi_stop(spi, status);
++}
++
++/* s3c_spi_message_start
++ *
++ * configure the spi controler and transmit start of a message onto the bus
++*/
++static void s3c_spi_message_start(struct s3c_spi *spi)
++{
++ struct spi_msg *msg = spi->msg;
++
++ u32 spi_chcfg = 0, spi_slavecfg, spi_inten= 0, spi_packet=0;
++
++ u8 prescaler = 1;
++ u32 spi_clkcfg = 0, spi_modecfg = 0 ;
++
++ DEBUG;
++
++ /* initialise the spi controller */
++ s3c_spi_hw_init(spi);
++
++ /* 1. Set transfer type (CPOL & CPHA set) */
++ spi_chcfg = SPI_CH_RISING | SPI_CH_FORMAT_A;
++
++ if (spi->msg->flags & SPI_M_MODE_MASTER) {
++ spi_chcfg |= SPI_CH_MASTER;
++ } else if(spi->msg->flags & SPI_M_MODE_SLAVE){
++ spi_chcfg |= SPI_CH_SLAVE;
++ }
++
++ writel( spi_chcfg , spi->regs + S3C_CH_CFG);
++
++ /* 2. Set clock configuration register */
++ spi_clkcfg = SPI_ENCLK_ENABLE;
++
++#if defined CONFIG_SPICLK_PCLK
++ spi_clkcfg |= SPI_CLKSEL_PCLK;
++#elif defined CONFIG_SPICLK_EPLL
++ spi_clkcfg |= SPI_CLKSEL_ECLK;
++#else
++#error you must define correct confige file.
++#endif
++ writel( spi_clkcfg , spi->regs + S3C_CLK_CFG);
++
++ spi_clkcfg = readl( spi->regs + S3C_CLK_CFG);
++
++ /* SPI clockout = clock source / (2 * (prescaler +1)) */
++ spi_clkcfg |= prescaler;
++ writel( spi_clkcfg , spi->regs + S3C_CLK_CFG);
++
++ /* 3. Set SPI MODE configuration register */
++#ifdef CONFIG_WORD_TRANSIZE
++ spi_modecfg = SPI_MODE_CH_TSZ_WORD;
++#else
++ spi_modecfg = SPI_MODE_CH_TSZ_BYTE;
++#endif
++ spi_modecfg |= SPI_MODE_TXDMA_OFF| SPI_MODE_SINGLE| SPI_MODE_RXDMA_OFF;
++
++ if (msg->flags & SPI_M_DMA_MODE) {
++ spi_modecfg |= SPI_MODE_TXDMA_ON| SPI_MODE_RXDMA_ON;
++ }
++
++ if (msg->wbuf)
++ spi_modecfg |= ( 0x3f << 5); /* Tx FIFO trigger level in INT mode */
++ if (msg->rbuf)
++ spi_modecfg |= ( 0x3f << 11); /* Rx FIFO trigger level in INT mode */
++
++ spi_modecfg |= ( 0x3ff << 19);
++ writel(spi_modecfg, spi->regs + S3C_MODE_CFG);
++
++ /* 4. Set SPI INT_EN register */
++
++ if (msg->wbuf)
++ spi_inten = SPI_INT_TX_FIFORDY_EN|SPI_INT_TX_UNDERRUN_EN|SPI_INT_TX_OVERRUN_EN;
++ if (msg->rbuf){
++ spi_inten = SPI_INT_RX_FIFORDY_EN|SPI_INT_RX_UNDERRUN_EN|SPI_INT_RX_OVERRUN_EN|SPI_INT_TRAILING_EN;
++ }
++ writel(spi_inten, spi->regs + S3C_SPI_INT_EN);
++
++ writel(0x1f, spi->regs + S3C_PENDING_CLR);
++
++ /* 5. Set Packet Count configuration register */
++ spi_packet = SPI_PACKET_CNT_EN;
++ spi_packet |= 0xffff;
++ writel(spi_packet, spi->regs + S3C_PACKET_CNT);
++
++ /* 6. Set Tx or Rx Channel on */
++ spi_chcfg = readl(spi->regs + S3C_CH_CFG);
++
++ spi_chcfg |= SPI_CH_TXCH_OFF | SPI_CH_RXCH_OFF;
++
++ if (msg->wbuf)
++ spi_chcfg |= SPI_CH_TXCH_ON;
++ if (msg->rbuf)
++ spi_chcfg |= SPI_CH_RXCH_ON;
++
++ writel(spi_chcfg, spi->regs + S3C_CH_CFG);
++
++ if (msg->flags & SPI_M_DMA_MODE) {
++
++ if (msg->wbuf)
++ spi->dma = DMACH_SPI_TX;
++ if (msg->rbuf)
++ spi->dma = DMACH_SPI_RX;
++
++ if (s3c2410_dma_request(spi->dma, &s3c2443spi_dma_client, NULL)) {
++ printk(KERN_WARNING "unable to get DMA channel.\n" );
++ }
++
++ s3c2410_dma_set_buffdone_fn(spi->dma, s3c_spi_dma_cb);
++ s3c2410_dma_set_opfn(spi->dma, NULL);
++
++
++ if (msg->wbuf)
++ s3c_spi_dma_init(spi, 0);
++ if (msg->rbuf)
++ s3c_spi_dma_init(spi, 1);
++
++ s3c2410_dma_enqueue(spi->dma, (void *) spi, spi->dmabuf_addr, spi->msg->len);
++ }
++ /* 7. Set nSS low to start Tx or Rx operation */
++ spi_slavecfg = readl(spi->regs + S3C_SLAVE_SEL);
++ spi_slavecfg &= SPI_SLAVE_SIG_ACT;
++ writel(spi_slavecfg, spi->regs + S3C_SLAVE_SEL);
++
++ print_reg(spi);
++}
++
++/* is_msgend
++ *
++ * returns TRUE if we reached the end of the current message
++*/
++
++static inline int tx_msgend(struct s3c_spi *spi)
++{
++ return spi->msg_ptr >= spi->msg->len;
++}
++
++static inline int rx_msgend(struct s3c_spi *spi)
++{
++ return spi->msg_rd_ptr >= spi->msg->len;
++}
++
++/* spi_s3c_irq_nextbyte
++ *
++ * process an interrupt and work out what to do
++ */
++static void spi_s3c_irq_nextbyte(struct s3c_spi *spi, unsigned long spsta)
++{
++ DEBUG;
++ DBG("spi->state = %d \n",spi->state);
++ switch (spi->state) {
++ case STATE_IDLE:
++ DBG("%s: called in STATE_IDLE\n", __FUNCTION__);
++ break;
++
++ case STATE_STOP:
++ udelay(200);
++ s3c_spi_stop(spi, 0);
++ DBG("%s: called in STATE_STOP\n", __FUNCTION__);
++ break;
++
++ case STATE_XFER_TX:
++ DEBUG;
++ print_reg(spi);
++ DBG("msg_ptr = 0x%x, len = 0x%x \n", spi->msg_ptr ,spi->msg->len);
++ while(!(tx_msgend(spi)))
++ s3c_spi_write_fifo(spi);
++ DEBUG;
++ print_reg(spi);
++ spi->state = STATE_STOP;
++ break;
++ case STATE_XFER_RX:
++ DEBUG;
++ print_reg(spi);
++ DBG("msg_rd_ptr = 0x%x, len = 0x%x \n", spi->msg_rd_ptr ,spi->msg->len);
++ while(!(rx_msgend(spi))){
++ spi->msg->rbuf[spi->msg_rd_ptr++] = readl(spi->regs + S3C_SPI_RX_DATA);
++ DBG("msg_rd_ptr = 0x%x, len = 0x%x \n", spi->msg_rd_ptr ,spi->msg->len);
++ DBG("msg_rbuf = 0x%x\n", spi->msg->rbuf[spi->msg_rd_ptr - 1]);
++ }
++ DBG("msg_rd_ptr = 0x%x, len = 0x%x \n", spi->msg_rd_ptr ,spi->msg->len);
++ DEBUG;
++ print_reg(spi);
++ s3c_spi_stop(spi, 0);
++ break;
++ default:
++ dev_err(spi->dev, "%s: called with Invalid option\n", __FUNCTION__);
++ }
++
++ return;
++}
++
++/* s3c_spi_irq
++ *
++ * top level IRQ servicing routine
++*/
++static irqreturn_t s3c_spi_irq(int irqno, void *dev_id)
++{
++ struct s3c_spi *spi = dev_id;
++ unsigned long spi_sts;
++
++ spi_sts = readl(spi->regs + S3C_SPI_STATUS);
++
++ if (spi_sts & SPI_STUS_RX_OVERRUN_ERR) {
++ printk("hspi : Rx overrun error detected\n");
++ }
++
++ if (spi_sts & SPI_STUS_RX_UNDERRUN_ERR) {
++ printk("hspi : Rx underrun error detected\n");
++ }
++
++ if (spi_sts & SPI_STUS_TX_OVERRUN_ERR) {
++ printk("hspi : Tx overrun error detected\n");
++ }
++
++ if (spi_sts & SPI_STUS_TX_UNDERRUN_ERR) {
++ printk("hspi : Tx underrun error detected\n");
++ }
++
++ /* pretty much this leaves us with the fact that we've
++ * transmitted or received whatever byte we last sent */
++ spi_s3c_irq_nextbyte(spi, spi_sts);
++
++ return IRQ_HANDLED;
++}
++
++static int s3c_spi_doxfer(struct s3c_spi *spi, struct spi_msg msgs[], int num)
++{
++ int ret;
++
++ spin_lock_irq(&spi->lock);
++
++ spi->msg = msgs;
++ spi->msg_num = num;
++ spi->msg_ptr = 0;
++ spi->msg_rd_ptr = 0;
++ spi->msg_idx = 0;
++
++ if (spi->msg->flags & SPI_M_DMA_MODE) {
++ spi->dmabuf_addr = spi->spidev.dmabuf;
++ pr_debug("spi->dmabuf_addr = 0x%x\n",spi->dmabuf_addr);
++ }
++
++ if (spi->msg->wbuf) {
++ DEBUG;
++ spi->state = STATE_XFER_TX;
++ } else if (spi->msg->rbuf) {
++ DEBUG;
++ spi->state = STATE_XFER_RX;
++ } else {
++ dev_err(spi->dev,"Unknown functionality \n");
++ return -ESRCH;
++ }
++ s3c_spi_message_start(spi);
++ DEBUG;
++
++ if (down_interruptible(&spi->sem))
++ return -EINTR;
++
++ DEBUG;
++ spin_unlock_irq(&spi->lock);
++
++ DEBUG;
++ ret = spi->msg_idx;
++
++ return ret;
++}
++
++
++/* s3c_spi_xfer
++ *
++ * first port of call from the spi bus code when an message needs
++ * transfering across the spi bus.
++*/
++static int s3c_spi_xfer(struct spi_dev *spi_dev,
++ struct spi_msg msgs[], int num)
++{
++ struct s3c_spi *spi = (struct s3c_spi *)spi_dev->algo_data;
++ int retry;
++ int ret;
++
++ for (retry = 0; retry < spi_dev->retries; retry++) {
++
++ ret = s3c_spi_doxfer(spi, msgs, num);
++
++ print_reg(spi);
++ if (ret != -EAGAIN)
++ return ret;
++ printk("Retrying transmission (%d)\n", retry);
++
++ udelay(100);
++ }
++
++ DEBUG;
++ return -EREMOTEIO;
++}
++
++static int s3c_spi_close(struct spi_dev *spi_dev)
++{
++ struct s3c_spi *spi = (struct s3c_spi *)spi_dev->algo_data;
++ u32 spi_clkcfg;
++ DEBUG;
++
++ spi_clkcfg = readl( spi->regs + S3C_CLK_CFG);
++ spi_clkcfg &= SPI_ENCLK_DISABLE;
++ writel( spi_clkcfg , spi->regs + S3C_CLK_CFG);
++
++ /* Buffer Clear after finish xfer */
++ writel( 0x20, spi->regs + S3C_CH_CFG);
++ writel( 0x0, spi->regs + S3C_CH_CFG);
++
++ return 0;
++
++}
++
++
++/* spi bus registration info */
++
++static struct spi_algorithm s3c_spi_algorithm = {
++ .name = "S3C2443-spi-algorithm",
++ .master_xfer = s3c_spi_xfer,
++ .close = s3c_spi_close,
++};
++
++static struct s3c_spi s3c_spi[2] = {
++ [0] = {
++ .lock = SPIN_LOCK_UNLOCKED,
++ .spidev = {
++ .algo = &s3c_spi_algorithm,
++ .retries = 2,
++ .timeout = 5,
++ }
++ },
++ [1] = {
++ .lock = SPIN_LOCK_UNLOCKED,
++ .spidev = {
++ .algo = &s3c_spi_algorithm,
++ .retries = 2,
++ .timeout = 5,
++ }
++ },
++};
++
++
++/* s3c_spi_probe
++ *
++ * called by the bus driver when a suitable device is found
++*/
++
++static int s3c_spi_probe(struct platform_device *pdev)
++{
++ struct s3c_spi *spi = &s3c_spi[pdev->id];
++ struct resource *res;
++ int ret;
++
++ /* find the clock and enable it */
++ sema_init(&spi->sem, 0);
++ spi->nr = pdev->id;
++ spi->dev = &pdev->dev;
++
++ spi->clk = clk_get(&pdev->dev, "spi");
++
++ if (IS_ERR(spi->clk)) {
++ dev_err(&pdev->dev, "cannot get clock\n");
++ ret = -ENOENT;
++ goto out;
++ }
++
++ /* map the registers */
++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++
++ if (res == NULL) {
++ dev_err(&pdev->dev, "cannot find IO resource\n");
++ ret = -ENOENT;
++ goto out;
++ }
++
++ spi->ioarea = request_mem_region(res->start, (res->end - res->start) + 1, pdev->name);
++
++ if (spi->ioarea == NULL) {
++ dev_err(&pdev->dev, "cannot request IO\n");
++ ret = -ENXIO;
++ goto out;
++ }
++
++ printk(KERN_ALERT "resource start : %x\n",res->start);
++
++ spi->regs = ioremap(res->start, (res->end - res->start) + 1);
++
++ if (spi->regs == NULL) {
++ dev_err(&pdev->dev, "cannot map IO\n");
++ ret = -ENXIO;
++ goto out;
++ }
++
++ printk(KERN_ALERT "hspi registers %p (%p, %p)\n", spi->regs, spi->ioarea, res);
++
++ /* setup info block for the spi core */
++
++ spi->spidev.algo_data = spi;
++ spi->spidev.dev.parent = &pdev->dev;
++ spi->spidev.minor = spi->nr;
++ init_MUTEX(&spi->spidev.bus_lock);
++
++ /* find the IRQ for this unit (note, this relies on the init call to
++ * ensure no current IRQs pending
++ */
++ res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
++
++ if (res == NULL) {
++ printk("hspi cannot find IRQ\n");
++ ret = -ENOENT;
++ goto out;
++ }
++
++ ret = request_irq(res->start, s3c_spi_irq, SA_INTERRUPT,
++ pdev->name, spi);
++
++ if (ret != 0) {
++ printk("hspi cannot claim IRQ\n");
++ goto out;
++ }
++
++ ret = spi_attach_spidev(&spi->spidev);
++
++ if (ret < 0) {
++ dev_err(&pdev->dev, "failed to add adapter to spi core\n");
++ goto out;
++ }
++
++ dev_set_drvdata(&pdev->dev, spi);
++
++ dev_info(&pdev->dev, "%s: S3C SPI adapter\n", spi->dev->bus_id);
++
++ printk("%s: S3C SPI adapter\n", spi->dev->bus_id);
++
++out:
++ if (ret < 0)
++ s3c_spi_free(spi);
++
++ return ret;
++}
++
++/* s3c_spi_remove
++ *
++ * called when device is removed from the bus
++*/
++static int s3c_spi_remove(struct platform_device *pdev)
++{
++ struct s3c_spi *spi = dev_get_drvdata(&pdev->dev);
++
++ DEBUG;
++
++ if (spi != NULL) {
++ spi_detach_spidev(&spi->spidev);
++ s3c_spi_free(spi);
++ dev_set_drvdata(&pdev->dev, NULL);
++ }
++
++ return 0;
++}
++
++#ifdef CONFIG_PM
++static int s3c_spi_suspend(struct platform_device *pdev, pm_message_t msg)
++{
++ struct s3c_spi *hw = platform_get_drvdata(pdev);
++ clk_disable(hw->clk);
++ return 0;
++}
++
++static int s3c_spi_resume(struct platform_device *pdev)
++{
++ struct s3c_spi *hw = platform_get_drvdata(pdev);
++ clk_enable(hw->clk);
++ return 0;
++}
++#else
++#define s3c_spi_suspend NULL
++#define s3c_spi_resume NULL
++#endif
++
++/* device driver for platform bus bits */
++static struct platform_driver s3c_spi_driver = {
++ .probe = s3c_spi_probe,
++ .remove = s3c_spi_remove,
++#ifdef CONFIG_PM
++ .suspend = s3c_spi_suspend,
++ .resume = s3c_spi_resume,
++#endif
++ .driver = {
++ .name = "s3c2410-spi",
++ .owner = THIS_MODULE,
++ .bus = &platform_bus_type,
++ },
++};
++
++static int __init s3c_spi_driver_init(void)
++{
++ printk(KERN_INFO "S3C2443 HSPI Driver \n");
++
++ return platform_driver_register(&s3c_spi_driver);
++}
++
++static void __exit s3c_spi_driver_exit(void)
++{
++ platform_driver_unregister(&s3c_spi_driver);
++}
++
++module_init(s3c_spi_driver_init);
++module_exit(s3c_spi_driver_exit);
++
++MODULE_DESCRIPTION("S3C2443 SPI Bus driver");
++MODULE_AUTHOR("Ryu Euiyoul<steven.ryu@samsung.com>");
++MODULE_LICENSE("GPL");
+diff --git a/drivers/spi/hspi-s3c24xx.h b/drivers/spi/hspi-s3c24xx.h
+new file mode 100644
+index 0000000..66c7094
+--- /dev/null
++++ b/drivers/spi/hspi-s3c24xx.h
+@@ -0,0 +1,95 @@
++/* ------------------------------------------------------------------------- */
++/* */
++/* spi-s3c6400.h - definitions of s3c6400 specific spi interface */
++/* */
++/* ------------------------------------------------------------------------- */
++/* Copyright (C) 2006 Samsung Electronics Co. ltd.
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
++/* ------------------------------------------------------------------------- */
++
++#ifndef _S3C2443_SPI_H
++#define _S3C2443_SPI_H
++
++#include <asm/dma.h>
++#include <asm/arch/dma.h>
++
++#define S3C_DCON_HANDSHAKE (1<<31)
++#define S3C_DCON_SYNC_PCLK (0<<30)
++
++//#define SPI_CHANNEL 1
++
++#if(SPI_CHANNEL==0)
++/* SPI CHANNEL 0 */
++#define S3C_SPI_TX_DATA_REG 0x52000018 //SPI TX data
++#define S3C_SPI_RX_DATA_REG 0x5200001C //SPI RX data
++#else
++/* SPI CHANNEL 1 */
++#define S3C_SPI_TX_DATA_REG 0x59000018 //SPI TX data
++#define S3C_SPI_RX_DATA_REG 0x5900001C //SPI RX data
++#endif
++
++/* DMA transfer unit (byte). */
++#define S3C_DMA_XFER_BYTE 1
++#define S3C_DMA_XFER_WORD 4
++
++/* DMA configuration setup byte. */
++#define S3C_DCON_SPI1 (S3C_DCON_HANDSHAKE | S3C_DCON_SYNC_PCLK)
++
++/* DMA hardware configuration mode (DISRCC register). */
++#define S3C_SPI1_DMA_HWCFG 3
++#define S3C_SPI_DMA_HWCFG 3
++
++#define DMA_BUFFER_SIZE 1500
++
++/* spi controller state */
++int req_dma_flag = 1;
++enum s3c_spi_state {
++ STATE_IDLE,
++ STATE_XFER_TX,
++ STATE_XFER_RX,
++ STATE_STOP
++};
++
++static struct s3c2410_dma_client s3c2443spi_dma_client = {
++ .name = "s3c2443-spi-dma",
++};
++
++struct s3c_spi {
++ spinlock_t lock;
++ struct semaphore sem;
++ int nr;
++ int dma;
++ u_int subchannel;/* user fragment index */
++ dma_addr_t dmabuf_addr;
++
++ struct spi_msg *msg;
++ unsigned int msg_num;
++ unsigned int msg_idx;
++ unsigned int msg_ptr;
++ unsigned int msg_rd_ptr;
++
++ enum s3c_spi_state state;
++
++ void __iomem *regs;
++ struct clk *clk;
++ struct device *dev;
++ struct resource *irq;
++ struct resource *ioarea;
++ struct spi_dev spidev;
++};
++
++
++#endif /* _S3C6400_SPI_H */
+diff --git a/drivers/spi/hspi-s3c64xx.c b/drivers/spi/hspi-s3c64xx.c
+new file mode 100644
+index 0000000..6407a8b
+--- /dev/null
++++ b/drivers/spi/hspi-s3c64xx.c
+@@ -0,0 +1,789 @@
++/* spi-s3c6400.c
++ *
++ * Copyright (C) 2006 Samsung Electronics Co. Ltd.
++ *
++ * S3C6400 SPI Controller
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++*/
++
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/time.h>
++#include <linux/interrupt.h>
++#include <linux/sched.h>
++#include <linux/delay.h>
++#include <linux/errno.h>
++#include <linux/err.h>
++#include <linux/device.h>
++#include <linux/platform_device.h>
++#include <linux/clk.h>
++
++#include <asm/hardware.h>
++#include <asm/irq.h>
++#include <asm/io.h>
++#include <asm/arch-s3c2410/regs-s3c-clock.h>
++#include <asm/arch/gpio.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/plat-s3c24xx/regs-spi.h>
++#include <asm/dma.h>
++
++#include "spi-dev.h"
++#include "hspi-s3c64xx.h"
++
++//#define S3C_SPI_DEBUG
++
++#ifdef S3C_SPI_DEBUG
++#define DBG(x...) printk(x)
++#define DEBUG printk("%s :: %d\n",__FUNCTION__,__LINE__)
++void print_reg(struct s3c_spi *spi)
++{
++ printk("CH_CFG = 0x%08x\n",readl(spi->regs + S3C_CH_CFG));
++ printk("CLK_CFG = 0x%08x\n",readl(spi->regs + S3C_CLK_CFG));
++ printk("MODE_CFG = 0x%08x\n",readl(spi->regs + S3C_MODE_CFG));
++ printk("SLAVE_CFG = 0x%08x\n",readl(spi->regs + S3C_SLAVE_SEL));
++ printk("INT_EN = 0x%08x\n",readl(spi->regs + S3C_SPI_INT_EN));
++ printk("SPI_STATUS = 0x%08x\n",readl(spi->regs + S3C_SPI_STATUS));
++ printk("PACKET_CNT = 0x%08x\n",readl(spi->regs + S3C_PACKET_CNT));
++ printk("PEND_CLR = 0x%08x\n",readl(spi->regs + S3C_PENDING_CLR));
++ printk("SWAP_CFG = 0x%08x\n",readl(spi->regs + S3C_SWAP_CFG));
++ printk("FB_CLK = 0x%08x\n",readl(spi->regs + S3C_FB_CLK));
++}
++#else
++#define DEBUG
++#define DBG(x...) do { } while (0)
++void print_reg(struct s3c_spi *spi)
++{
++}
++#endif
++
++static void s3c_spi_free(struct s3c_spi *spi)
++{
++ if (spi->clk != NULL && !IS_ERR(spi->clk)) {
++ clk_disable(spi->clk);
++ clk_put(spi->clk);
++ spi->clk = NULL;
++ }
++
++ if (spi->regs != NULL) {
++ iounmap(spi->regs);
++ spi->regs = NULL;
++ }
++
++ if (spi->ioarea != NULL) {
++ release_resource(spi->ioarea);
++ kfree(spi->ioarea);
++ spi->ioarea = NULL;
++ }
++}
++
++static int s3c_spi_hw_init(struct s3c_spi *spi)
++{
++
++ unsigned int s3c_spcon;
++
++#ifdef CONFIG_SPICLK_PCLK
++ clk_enable(spi->clk);
++#elif defined (CONFIG_SPICLK_EPLL)
++ writel((readl(S3C_PCLK_GATE)|S3C_CLKCON_PCLK_SPI0|S3C_CLKCON_PCLK_SPI1),S3C_PCLK_GATE);
++ writel((readl(S3C_SCLK_GATE)|S3C_CLKCON_SCLK_SPI0|S3C_CLKCON_SCLK_SPI1),S3C_SCLK_GATE);
++
++ writel(readl(S3C_CLK_SRC)|S3C_CLKSRC_MPLL_CLKSEL, S3C_CLK_SRC);
++
++ /* Set SPi Clock to MOUT(266Mhz)*/
++ if(SPI_CHANNEL == 0)
++ writel((readl(S3C_CLK_SRC)&~(0x3<<14))|(1<<14), S3C_CLK_SRC);
++ else /* SPI_CHANNEL = 1 */
++ writel((readl(S3C_CLK_SRC)&~(0x3<<16))|(1<<16), S3C_CLK_SRC);
++
++ /* CLK_DIV2 setting */
++ /* SPI Input Clock(88.87Mhz) = 266.66Mhz / (2 + 1)*/
++ writel(((readl(S3C_CLK_DIV2) & ~(0xff << 0)) | 2) , S3C_CLK_DIV2);
++
++#elif defined (CONFIG_SPICLK_USBCLK)
++ writel((readl(S3C_PCLK_GATE)| S3C_CLKCON_PCLK_SPI0|S3C_CLKCON_PCLK_SPI1),S3C_PCLK_GATE);
++ writel((readl(S3C_SCLK_GATE)|S3C_CLKCON_SCLK_SPI0_48|S3C_CLKCON_SCLK_SPI1_48),S3C_SCLK_GATE);
++#endif
++
++ /* initialize the gpio */
++ if (SPI_CHANNEL == 0) {
++
++ gpio_set_pin(S3C_GPC0, S3C_GPC0_SPI_MISO0);
++ gpio_set_pin(S3C_GPC1, S3C_GPC1_SPI_CLK0);
++ gpio_set_pin(S3C_GPC2, S3C_GPC2_SPI_MOSI0);
++ gpio_set_pin(S3C_GPC3, S3C_GPC3_SPI_CS0);
++
++ gpio_pullup(S3C_GPC0, 1);
++ gpio_pullup(S3C_GPC1, 1);
++ gpio_pullup(S3C_GPC2, 1);
++ gpio_pullup(S3C_GPC3, 1);
++
++ } else {
++
++ gpio_set_pin(S3C_GPC4, S3C_GPC4_SPI_MISO1);
++ gpio_set_pin(S3C_GPC5, S3C_GPC5_SPI_CLK1);
++ gpio_set_pin(S3C_GPC6, S3C_GPC6_SPI_MOSI1);
++ gpio_set_pin(S3C_GPC7, S3C_GPC7_SPI_CS1);
++
++ gpio_pullup(S3C_GPC4, 1);
++ gpio_pullup(S3C_GPC5, 1);
++ gpio_pullup(S3C_GPC6, 1);
++ gpio_pullup(S3C_GPC7, 1);
++ }
++
++ /* SPI drive strength */
++ s3c_spcon = readl(S3C_SPCON);
++ writel((s3c_spcon & ~(3<<28)) | (1<<28), S3C_SPCON);
++
++ return 0;
++}
++
++static int s3c_spi_dma_init(struct s3c_spi *spi, int mode)
++{
++ // TX
++ if (mode == 0) {
++ if(SPI_CHANNEL == 0)
++ s3c2410_dma_devconfig(spi->subchannel, S3C2410_DMASRC_MEM, 0, S3C_SPI_TX_DATA_REG);
++ else // SPI_CHANNEL = 1
++ s3c2410_dma_devconfig(spi->subchannel, S3C2410_DMASRC_MEM, 0, S3C_SPI_TX_DATA_REG);
++
++ }
++
++ // RX
++ if (mode == 1) {
++ if(SPI_CHANNEL == 0)
++ s3c2410_dma_devconfig(spi->subchannel, S3C2410_DMASRC_HW, 0, S3C_SPI_RX_DATA_REG);
++ else // SPI_CHANNEL = 1
++ s3c2410_dma_devconfig(spi->subchannel, S3C2410_DMASRC_HW, 0, S3C_SPI_RX_DATA_REG);
++
++ }
++
++#ifdef CONFIG_WORD_TRANSIZE
++ s3c2410_dma_config(spi->subchannel, S3C_DMA_XFER_WORD, S3C_DMA_XFER_WORD);
++#else
++ s3c2410_dma_config(spi->subchannel, S3C_DMA_XFER_BYTE, S3C_DMA_XFER_BYTE);
++#endif
++ s3c2410_dma_setflags(spi->subchannel, S3C2410_DMAF_AUTOSTART);
++
++ return 0;
++}
++
++static inline void s3c_spi_write_fifo(struct s3c_spi *spi)
++{
++ u32 wdata = 0;
++
++ if (spi->msg->wbuf){
++ wdata = spi->msg->wbuf[spi->msg_ptr++];
++ } else {
++ spi->msg_ptr++;
++ wdata = 0xff;
++ }
++
++ DBG("wdata = %x\n",wdata);
++ writel(wdata, spi->regs + S3C_SPI_TX_DATA);
++}
++
++/* s3c_spi_master_complete
++ *
++ * complete the message and wake up the caller, using the given return code,
++ * or zero to mean ok.
++*/
++static inline void s3c_spi_master_complete(struct s3c_spi *spi, int ret)
++{
++ spi->msg_ptr = 0;
++ spi->msg_rd_ptr = 0;
++ spi->msg->flags = 0;
++ spi->msg = NULL;
++ spi->msg_idx ++;
++ spi->msg_num = 0;
++
++ writel(0xff, spi->regs + S3C_PENDING_CLR);
++
++ if (ret)
++ spi->msg_idx = ret;
++}
++
++static int s3c_spi_done(struct s3c_spi *spi)
++{
++ u32 spi_clkcfg;
++
++ /* initialize the gpio */
++ if(SPI_CHANNEL == 0) {
++ gpio_direction_input(S3C_GPC0);
++ gpio_direction_input(S3C_GPC1);
++ gpio_direction_input(S3C_GPC2);
++ gpio_direction_input(S3C_GPC3);
++
++ } else {
++ gpio_direction_input(S3C_GPC4);
++ gpio_direction_input(S3C_GPC5);
++ gpio_direction_input(S3C_GPC6);
++ gpio_direction_input(S3C_GPC7);
++ }
++ spi_clkcfg = readl( spi->regs + S3C_CLK_CFG);
++ spi_clkcfg &= SPI_ENCLK_DISABLE;
++ writel( spi_clkcfg , spi->regs + S3C_CLK_CFG);
++
++ return 0;
++
++}
++
++static inline void s3c_spi_stop(struct s3c_spi *spi, int ret)
++{
++ writel(0x0, spi->regs + S3C_SPI_INT_EN);
++ writel(0x1f, spi->regs + S3C_PENDING_CLR);
++ writel(0x0, spi->regs + S3C_CH_CFG);
++
++ s3c_spi_done(spi);
++ spi->state = STATE_IDLE;
++ s3c_spi_master_complete(spi, ret);
++ print_reg(spi);
++ up(&spi->sem);
++}
++
++void s3c_spi_dma_cb(struct s3c2410_dma_chan *dma_ch, void *buf_id,
++ int size, enum s3c2410_dma_buffresult result)
++{
++ struct s3c_spi *spi = (struct s3c_spi *)buf_id;
++ unsigned long status = 0;
++
++ status = readl(spi->regs + S3C_SPI_STATUS);
++
++ pr_debug("DMA call back\n");
++
++ if (spi->msg->wbuf)
++ while (!(readl(spi->regs +S3C_SPI_STATUS) & SPI_STUS_TX_DONE)) {}
++
++ //s3c_spi_stop(spi, status);
++ s3c_spi_stop(spi, 0);
++}
++
++/* s3c_spi_message_start
++ *
++ * configure the spi controler and transmit start of a message onto the bus
++*/
++static void s3c_spi_message_start(struct s3c_spi *spi)
++{
++ struct spi_msg *msg = spi->msg;
++
++ u32 spi_chcfg = 0, spi_slavecfg, spi_inten= 0, spi_packet=0;
++
++// u8 prescaler = 0; // 44.435 Mhz
++ u8 prescaler = 1; // 22.2175 Mhz
++// u8 prescaler = 2; // 14.81 Mhz
++// u8 prescaler = 3; // 11.10875 Mhz
++// u8 prescaler = 4; // 8.887Mhz
++
++ u32 spi_clkcfg = 0, spi_modecfg = 0 ;
++
++ /* initialise the spi controller */
++ s3c_spi_hw_init(spi);
++
++ /* 1. Set transfer type (CPOL & CPHA set) */
++ spi_chcfg = SPI_CH_RISING | SPI_CH_FORMAT_A;
++
++ if (spi->msg->flags & SPI_M_MODE_MASTER) {
++ spi_chcfg |= SPI_CH_MASTER;
++ } else if(spi->msg->flags & SPI_M_MODE_SLAVE){
++ spi_chcfg |= SPI_CH_SLAVE;
++ }
++
++ writel( spi_chcfg , spi->regs + S3C_CH_CFG);
++
++ /* 2. Set clock configuration register */
++ spi_clkcfg = SPI_ENCLK_ENABLE;
++
++#if defined CONFIG_SPICLK_PCLK
++ spi_clkcfg |= SPI_CLKSEL_PCLK;
++#elif defined CONFIG_SPICLK_EPLL
++ spi_clkcfg |= SPI_CLKSEL_ECLK;
++#elif defined CONFIG_SPICLK_USBCLK
++ spi_clkcfg |= SPI_CLKSEL_USBCLK;
++#endif
++ writel( spi_clkcfg , spi->regs + S3C_CLK_CFG);
++
++ spi_clkcfg = readl( spi->regs + S3C_CLK_CFG);
++
++ /* SPI clockout = clock source / (2 * (prescaler +1)) */
++ spi_clkcfg |= prescaler;
++ writel( spi_clkcfg , spi->regs + S3C_CLK_CFG);
++
++ /* 3. Set SPI MODE configuration register */
++#ifdef CONFIG_WORD_TRANSIZE
++ spi_modecfg = SPI_MODE_CH_TSZ_WORD| SPI_MODE_BUS_TSZ_WORD;
++#else
++ spi_modecfg = SPI_MODE_CH_TSZ_BYTE| SPI_MODE_BUS_TSZ_BYTE;
++#endif
++ spi_modecfg |= SPI_MODE_TXDMA_OFF| SPI_MODE_SINGLE| SPI_MODE_RXDMA_OFF;
++
++ if (msg->flags & SPI_M_DMA_MODE) {
++ spi_modecfg |= SPI_MODE_TXDMA_ON| SPI_MODE_RXDMA_ON;
++ }
++
++ if (msg->wbuf)
++ spi_modecfg |= ( 0x3f << 5); /* Tx FIFO trigger level in INT mode */
++ if (msg->rbuf)
++ spi_modecfg |= ( 0x3f << 11); /* Rx FIFO trigger level in INT mode */
++
++ spi_modecfg |= ( 0x3ff << 19);
++ writel(spi_modecfg, spi->regs + S3C_MODE_CFG);
++
++ /* 4. Set SPI INT_EN register */
++
++ if (msg->wbuf)
++ spi_inten = SPI_INT_TX_FIFORDY_EN|SPI_INT_TX_UNDERRUN_EN|SPI_INT_TX_OVERRUN_EN;
++ if (msg->rbuf){
++ spi_inten = SPI_INT_RX_FIFORDY_EN|SPI_INT_RX_UNDERRUN_EN|SPI_INT_RX_OVERRUN_EN|SPI_INT_TRAILING_EN ;
++ }
++ writel(spi_inten, spi->regs + S3C_SPI_INT_EN);
++
++ writel(0x1f, spi->regs + S3C_PENDING_CLR);
++
++ /* 5. Set Packet Count configuration register */
++ spi_packet = SPI_PACKET_CNT_EN;
++ spi_packet |= 0xffff;
++ writel(spi_packet, spi->regs + S3C_PACKET_CNT);
++
++ if (msg->flags & SPI_M_DMA_MODE) {
++ spi->dma = S3C_SPI_DMA;
++
++ if (msg->wbuf)
++ spi->subchannel = DMACH_SPI0_OUT;
++ if (msg->rbuf)
++ spi->subchannel = DMACH_SPI0_IN;
++
++ if (s3c2410_dma_request(spi->subchannel, &s3c6400spi_dma_client, NULL)) {
++ printk(KERN_WARNING "unable to get DMA channel.\n" );
++ }
++
++ s3c2410_dma_set_buffdone_fn(spi->subchannel, s3c_spi_dma_cb);
++ s3c2410_dma_set_opfn(spi->subchannel, NULL);
++
++
++ if (msg->wbuf)
++ s3c_spi_dma_init(spi, 0);
++ if (msg->rbuf)
++ s3c_spi_dma_init(spi, 1);
++
++ s3c2410_dma_enqueue(spi->subchannel, (void *) spi, spi->dmabuf_addr, spi->msg->len);
++ }
++
++ /* 6. Set Tx or Rx Channel on */
++ spi_chcfg = readl(spi->regs + S3C_CH_CFG);
++ spi_chcfg |= SPI_CH_TXCH_OFF | SPI_CH_RXCH_OFF;
++
++ if (msg->wbuf)
++ spi_chcfg |= SPI_CH_TXCH_ON;
++ if (msg->rbuf)
++ spi_chcfg |= SPI_CH_RXCH_ON;
++
++ writel(spi_chcfg, spi->regs + S3C_CH_CFG);
++
++ /* 7. Set nSS low to start Tx or Rx operation */
++ spi_slavecfg = readl(spi->regs + S3C_SLAVE_SEL);
++ spi_slavecfg &= SPI_SLAVE_SIG_ACT;
++ spi_slavecfg |= (0x3f << 4);
++ writel(spi_slavecfg, spi->regs + S3C_SLAVE_SEL);
++
++ print_reg(spi);
++}
++
++/* is_msgend
++ *
++ * returns TRUE if we reached the end of the current message
++*/
++
++static inline int tx_msgend(struct s3c_spi *spi)
++{
++ return spi->msg_ptr >= spi->msg->len;
++}
++
++static inline int rx_msgend(struct s3c_spi *spi)
++{
++ return spi->msg_rd_ptr >= spi->msg->len;
++}
++
++/* spi_s3c_irq_nextbyte
++ *
++ * process an interrupt and work out what to do
++ */
++static void spi_s3c_irq_nextbyte(struct s3c_spi *spi, unsigned long spsta)
++{
++ DBG("spi->state = %d \n",spi->state);
++ switch (spi->state) {
++ case STATE_IDLE:
++ DBG("%s: called in STATE_IDLE\n", __FUNCTION__);
++ break;
++
++ case STATE_STOP:
++ udelay(200);
++ s3c_spi_stop(spi, 0);
++ DBG("%s: called in STATE_STOP\n", __FUNCTION__);
++ break;
++
++ case STATE_XFER_TX:
++ print_reg(spi);
++ DBG("msg_ptr = 0x%x, len = 0x%x \n", spi->msg_ptr ,spi->msg->len);
++ while(!(tx_msgend(spi)))
++ s3c_spi_write_fifo(spi);
++ print_reg(spi);
++ spi->state = STATE_STOP;
++ break;
++ case STATE_XFER_RX:
++ print_reg(spi);
++ DBG("msg_rd_ptr = 0x%x, len = 0x%x \n", spi->msg_rd_ptr ,spi->msg->len);
++ while(!(rx_msgend(spi))){
++ spi->msg->rbuf[spi->msg_rd_ptr++] = readl(spi->regs + S3C_SPI_RX_DATA);
++ DBG("msg_rd_ptr = 0x%x, len = 0x%x \n", spi->msg_rd_ptr ,spi->msg->len);
++ DBG("msg_rbuf = 0x%x\n", spi->msg->rbuf[spi->msg_rd_ptr - 1]);
++ }
++ DBG("msg_rd_ptr = 0x%x, len = 0x%x \n", spi->msg_rd_ptr ,spi->msg->len);
++ print_reg(spi);
++ s3c_spi_stop(spi, 0);
++ break;
++ default:
++ dev_err(spi->dev, "%s: called with Invalid option\n", __FUNCTION__);
++ }
++
++ return;
++}
++
++/* s3c_spi_irq
++ *
++ * top level IRQ servicing routine
++*/
++static irqreturn_t s3c_spi_irq(int irqno, void *dev_id)
++{
++ struct s3c_spi *spi = dev_id;
++ unsigned long spi_sts;
++
++ spi_sts = readl(spi->regs + S3C_SPI_STATUS);
++ if (spi_sts & SPI_STUS_RX_OVERRUN_ERR) {
++ printk("hspi : Rx overrun error detected\n");
++ }
++
++ if (spi_sts & SPI_STUS_RX_UNDERRUN_ERR) {
++ printk("hspi : Rx underrun error detected\n");
++ }
++
++ if (spi_sts & SPI_STUS_TX_OVERRUN_ERR) {
++ printk("hspi : Tx overrun error detected\n");
++ }
++
++ if (spi_sts & SPI_STUS_TX_UNDERRUN_ERR) {
++ printk("hspi : Tx underrun error detected\n");
++ }
++
++ /* pretty much this leaves us with the fact that we've
++ * transmitted or received whatever byte we last sent */
++ spi_s3c_irq_nextbyte(spi, spi_sts);
++
++ return IRQ_HANDLED;
++}
++
++static int s3c_spi_doxfer(struct s3c_spi *spi, struct spi_msg msgs[], int num)
++{
++ int ret;
++
++ spin_lock_irq(&spi->lock);
++
++ spi->msg = msgs;
++ spi->msg_num = num;
++ spi->msg_ptr = 0;
++ spi->msg_rd_ptr = 0;
++ spi->msg_idx = 0;
++
++ if (spi->msg->flags & SPI_M_DMA_MODE) {
++ spi->dmabuf_addr = spi->spidev.dmabuf;
++ pr_debug("spi->dmabuf_addr = 0x%x\n",spi->dmabuf_addr);
++ }
++
++ if (spi->msg->wbuf) {
++ spi->state = STATE_XFER_TX;
++ } else if (spi->msg->rbuf) {
++ spi->state = STATE_XFER_RX;
++ } else {
++ dev_err(spi->dev,"Unknown functionality \n");
++ return -ESRCH;
++ }
++
++ s3c_spi_message_start(spi);
++
++ if (down_interruptible(&spi->sem))
++ return -EINTR;
++
++ spin_unlock_irq(&spi->lock);
++
++ ret = spi->msg_idx;
++
++ return ret;
++}
++
++
++/* s3c_spi_xfer
++ *
++ * first port of call from the spi bus code when an message needs
++ * transfering across the spi bus.
++*/
++static int s3c_spi_xfer(struct spi_dev *spi_dev,
++ struct spi_msg msgs[], int num)
++{
++ struct s3c_spi *spi = (struct s3c_spi *)spi_dev->algo_data;
++ int retry;
++ int ret;
++
++ for (retry = 0; retry < spi_dev->retries; retry++) {
++ ret = s3c_spi_doxfer(spi, msgs, num);
++
++ print_reg(spi);
++ if (ret != -EAGAIN)
++ return ret;
++ printk("Retrying transmission (%d)\n", retry);
++
++ udelay(100);
++ }
++
++ return -EREMOTEIO;
++}
++
++static int s3c_spi_close(struct spi_dev *spi_dev)
++{
++ struct s3c_spi *spi = (struct s3c_spi *)spi_dev->algo_data;
++ u32 spi_clkcfg;
++
++ s3c2410_dma_free(spi->subchannel, &s3c6400spi_dma_client);
++
++ if(SPI_CHANNEL == 0) {
++
++ gpio_direction_input(S3C_GPC0);
++ gpio_direction_input(S3C_GPC1);
++ gpio_direction_input(S3C_GPC2);
++ gpio_direction_input(S3C_GPC3);
++
++ } else {
++
++ gpio_direction_input(S3C_GPC4);
++ gpio_direction_input(S3C_GPC5);
++ gpio_direction_input(S3C_GPC6);
++ gpio_direction_input(S3C_GPC7);
++ }
++ spi_clkcfg = readl( spi->regs + S3C_CLK_CFG);
++ spi_clkcfg &= SPI_ENCLK_DISABLE;
++ writel( spi_clkcfg , spi->regs + S3C_CLK_CFG);
++
++ /* Buffer Clear after finish xfer */
++ writel( 0x20, spi->regs + S3C_CH_CFG);
++ writel( 0x0, spi->regs + S3C_CH_CFG);
++
++ return 0;
++
++}
++
++
++/* spi bus registration info */
++static struct spi_algorithm s3c_spi_algorithm = {
++ .name = "S3C6400-spi-algorithm",
++ .master_xfer = s3c_spi_xfer,
++ .close = s3c_spi_close,
++};
++
++static struct s3c_spi s3c_spi[2] = {
++ [0] = {
++ .lock = SPIN_LOCK_UNLOCKED,
++ .spidev = {
++ .algo = &s3c_spi_algorithm,
++ .retries = 2,
++ .timeout = 5,
++ }
++ },
++ [1] = {
++ .lock = SPIN_LOCK_UNLOCKED,
++ .spidev = {
++ .algo = &s3c_spi_algorithm,
++ .retries = 2,
++ .timeout = 5,
++ }
++ },
++};
++
++
++/* s3c_spi_probe
++ *
++ * called by the bus driver when a suitable device is found
++*/
++
++static int s3c_spi_probe(struct platform_device *pdev)
++{
++ struct s3c_spi *spi = &s3c_spi[pdev->id];
++ struct resource *res;
++ int ret;
++
++ /* find the clock and enable it */
++ sema_init(&spi->sem, 0);
++ spi->nr = pdev->id;
++ spi->dev = &pdev->dev;
++
++ spi->clk = clk_get(&pdev->dev, "spi");
++
++ if (IS_ERR(spi->clk)) {
++ dev_err(&pdev->dev, "cannot get clock\n");
++ ret = -ENOENT;
++ goto out;
++ }
++
++ /* map the registers */
++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++
++ if (res == NULL) {
++ dev_err(&pdev->dev, "cannot find IO resource\n");
++ ret = -ENOENT;
++ goto out;
++ }
++
++ spi->ioarea = request_mem_region(res->start, (res->end - res->start) + 1, pdev->name);
++
++ if (spi->ioarea == NULL) {
++ dev_err(&pdev->dev, "cannot request IO\n");
++ ret = -ENXIO;
++ goto out;
++ }
++
++ spi->regs = ioremap(res->start, (res->end - res->start) + 1);
++
++ if (spi->regs == NULL) {
++ dev_err(&pdev->dev, "cannot map IO\n");
++ ret = -ENXIO;
++ goto out;
++ }
++
++ printk("hspi registers %p (%p, %p)\n", spi->regs, spi->ioarea, res);
++
++ /* setup info block for the spi core */
++ spi->spidev.algo_data = spi;
++ spi->spidev.dev.parent = &pdev->dev;
++ spi->spidev.minor = spi->nr;
++ init_MUTEX(&spi->spidev.bus_lock);
++
++ /* find the IRQ for this unit (note, this relies on the init call to
++ * ensure no current IRQs pending
++ */
++ res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
++
++ if (res == NULL) {
++ printk("hspi cannot find IRQ\n");
++ ret = -ENOENT;
++ goto out;
++ }
++
++ ret = request_irq(res->start, s3c_spi_irq, SA_INTERRUPT,
++ pdev->name, spi);
++
++ if (ret != 0) {
++ printk("hspi cannot claim IRQ\n");
++ goto out;
++ }
++
++ printk("hspi irq resource %p (%d)\n", res, res->start);
++
++ ret = spi_attach_spidev(&spi->spidev);
++
++ if (ret < 0) {
++ dev_err(&pdev->dev, "failed to add adapter to spi core\n");
++ goto out;
++ }
++
++ dev_set_drvdata(&pdev->dev, spi);
++
++ dev_info(&pdev->dev, "%s: S3C SPI adapter\n", spi->dev->bus_id);
++
++ printk("%s: S3C SPI adapter\n", spi->dev->bus_id);
++
++out:
++ if (ret < 0)
++ s3c_spi_free(spi);
++
++ return ret;
++}
++
++/* s3c_spi_remove
++ *
++ * called when device is removed from the bus
++*/
++static int s3c_spi_remove(struct platform_device *pdev)
++{
++ struct s3c_spi *spi = dev_get_drvdata(&pdev->dev);
++
++ if (spi != NULL) {
++ spi_detach_spidev(&spi->spidev);
++ s3c_spi_free(spi);
++ dev_set_drvdata(&pdev->dev, NULL);
++ }
++
++ return 0;
++}
++
++#ifdef CONFIG_PM
++static int s3c_spi_suspend(struct platform_device *pdev, pm_message_t msg)
++{
++ struct s3c_spi *hw = platform_get_drvdata(pdev);
++ clk_disable(hw->clk);
++ return 0;
++}
++
++static int s3c_spi_resume(struct platform_device *pdev)
++{
++ struct s3c_spi *hw = platform_get_drvdata(pdev);
++ clk_enable(hw->clk);
++ return 0;
++}
++#else
++#define s3c_spi_suspend NULL
++#define s3c_spi_resume NULL
++#endif
++
++/* device driver for platform bus bits */
++static struct platform_driver s3c_spi_driver = {
++ .probe = s3c_spi_probe,
++ .remove = s3c_spi_remove,
++#ifdef CONFIG_PM
++ .suspend = s3c_spi_suspend,
++ .resume = s3c_spi_resume,
++#endif
++ .driver = {
++ .name = "s3c2410-spi",
++ .owner = THIS_MODULE,
++ .bus = &platform_bus_type,
++ },
++};
++
++static int __init s3c_spi_driver_init(void)
++{
++ printk(KERN_INFO "S3C64XX SPI Driver \n");
++
++ return platform_driver_register(&s3c_spi_driver);
++}
++
++static void __exit s3c_spi_driver_exit(void)
++{
++ platform_driver_unregister(&s3c_spi_driver);
++}
++
++module_init(s3c_spi_driver_init);
++module_exit(s3c_spi_driver_exit);
++
++MODULE_DESCRIPTION("S3C64XX SPI Bus driver");
++MODULE_AUTHOR("Jongpill Lee<boyko.lee@samsung.com>");
++MODULE_LICENSE("GPL");
+diff --git a/drivers/spi/hspi-s3c64xx.h b/drivers/spi/hspi-s3c64xx.h
+new file mode 100644
+index 0000000..8ecda6d
+--- /dev/null
++++ b/drivers/spi/hspi-s3c64xx.h
+@@ -0,0 +1,95 @@
++/* ------------------------------------------------------------------------- */
++/* */
++/* spi-s3c6400.h - definitions of s3c6400 specific spi interface */
++/* */
++/* ------------------------------------------------------------------------- */
++/* Copyright (C) 2006 Samsung Electronics Co. ltd.
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
++/* ------------------------------------------------------------------------- */
++
++#ifndef _S3C6400_SPI_H
++#define _S3C6400_SPI_H
++
++#include <asm/dma.h>
++#include <asm/arch/dma.h>
++
++//#define SPI_CHANNEL 1
++
++#if(SPI_CHANNEL==0)
++/* SPI CHANNEL 0 */
++#define S3C_SPI_TX_DATA_REG 0x7F00B018 //SPI TX data
++#define S3C_SPI_RX_DATA_REG 0x7F00B01C //SPI RX data
++#else
++/* SPI CHANNEL 1 */
++#define S3C_SPI_TX_DATA_REG 0x7F00C018 //SPI TX data
++#define S3C_SPI_RX_DATA_REG 0x7F00C01C //SPI RX data
++#endif
++
++/* DMA channel to be used for the SPI interface. */
++#define S3C_SPI_DMA 0
++
++/* DMA transfer unit (byte). */
++#define S3C_DMA_XFER_BYTE 1
++#define S3C_DMA_XFER_WORD 4
++
++/* DMA configuration setup byte. */
++#define S3C_DCON_SPI1 (S3C_DCON_HANDSHAKE | S3C_DCON_SYNC_PCLK)
++
++/* DMA hardware configuration mode (DISRCC register). */
++#define S3C_SPI1_DMA_HWCFG 3
++#define S3C_SPI_DMA_HWCFG 3
++
++#define DMA_BUFFER_SIZE 1500
++
++/* spi controller state */
++int req_dma_flag = 1;
++enum s3c_spi_state {
++ STATE_IDLE,
++ STATE_XFER_TX,
++ STATE_XFER_RX,
++ STATE_STOP
++};
++
++static struct s3c2410_dma_client s3c6400spi_dma_client = {
++ .name = "s3c6400-spi-dma",
++};
++
++struct s3c_spi {
++ spinlock_t lock;
++ struct semaphore sem;
++ int nr;
++ int dma;
++ u_int subchannel;/* user fragment index */
++ dma_addr_t dmabuf_addr;
++
++ struct spi_msg *msg;
++ unsigned int msg_num;
++ unsigned int msg_idx;
++ unsigned int msg_ptr;
++ unsigned int msg_rd_ptr;
++
++ enum s3c_spi_state state;
++
++ void __iomem *regs;
++ struct clk *clk;
++ struct device *dev;
++ struct resource *irq;
++ struct resource *ioarea;
++ struct spi_dev spidev;
++};
++
++
++#endif /* _S3C6400_SPI_H */
+diff --git a/drivers/spi/spi-dev.c b/drivers/spi/spi-dev.c
+new file mode 100644
+index 0000000..a74a944
+--- /dev/null
++++ b/drivers/spi/spi-dev.c
+@@ -0,0 +1,379 @@
++/*
++* spi-dev.c - spi-bus driver, char device interface
++*
++* Copyright (C) 2006 Samsung Electronics Co. Ltd.
++*
++* This program is free software; you can redistribute it and/or modify
++* it under the terms of the GNU General Public License as published by
++* the Free Software Foundation; either version 2 of the License, or
++* (at your option) any later version.
++*
++* This program is distributed in the hope that it will be useful,
++* but WITHOUT ANY WARRANTY; without even the implied warranty of
++* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++* GNU General Public License for more details.
++*
++* You should have received a copy of the GNU General Public License
++* along with this program; if not, write to the Free Software
++* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++*/
++
++#include <asm/dma.h>
++#include <asm/arch/dma.h>
++//#include <linux/config.h>
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/fs.h>
++#include <linux/slab.h>
++#include <linux/smp_lock.h>
++//#include <linux/devfs_fs_kernel.h>
++#include <linux/init.h>
++#include <linux/dma-mapping.h>
++#include "spi-dev.h"
++#include <asm/uaccess.h>
++
++#undef debug
++//#define debug
++#ifdef debug
++#define CRDEBUG printk("%s :: %d\n",__FUNCTION__,__LINE__)
++#else
++#define CRDEBUG
++#endif
++
++//#define pr_debuf printk
++#define BUFFER_SIZE 65536 //8192 for perf measurement
++#define SPI_MINORS 2
++static struct spi_dev *spi_dev_array[SPI_MINORS];
++static spinlock_t (spi_dev_array_lock);
++
++static struct spi_dev *attach_to_spi_dev_array(struct spi_dev *spi_dev)
++{
++ CRDEBUG;
++ spin_lock(&spi_dev_array_lock);
++
++ if (spi_dev_array[spi_dev->minor]) {
++ spin_unlock(&spi_dev_array_lock);
++ dev_err(&spi_dev->dev, "spi-dev already has a device assigned to this adapter\n");
++ goto error;
++ }
++ spi_dev_array[spi_dev->minor] = spi_dev;
++ spin_unlock(&spi_dev_array_lock);
++ return spi_dev;
++error:
++ return ERR_PTR(-ENODEV);
++}
++
++static void return_spi_dev(struct spi_dev *spi_dev)
++{
++ CRDEBUG;
++ spin_lock(&spi_dev_array_lock);
++ spi_dev_array[spi_dev->minor] = NULL;
++ spin_unlock(&spi_dev_array_lock);
++}
++
++int spi_attach_spidev(struct spi_dev *spidev)
++{
++ struct spi_dev *spi_dev;
++
++ CRDEBUG;
++ spi_dev = attach_to_spi_dev_array(spidev);
++ if (IS_ERR(spi_dev))
++ return PTR_ERR(spi_dev);
++
++// devfs_mk_cdev(MKDEV(SPI_MAJOR, spi_dev->minor),
++// S_IFCHR|S_IRUSR|S_IWUSR, "spi/%d", spi_dev->minor);
++ dev_dbg(&spi_dev->dev, "Registered as minor %d\n", spi_dev->minor);
++
++ return 0;
++}
++
++int spi_detach_spidev(struct spi_dev *spi_dev)
++{
++ CRDEBUG;
++// devfs_remove("spi/%d", spi_dev->minor);
++ return_spi_dev(spi_dev);
++
++ dev_dbg(&spi_dev->dev, "Adapter unregistered\n");
++ return 0;
++}
++
++struct spi_dev *spi_dev_get_by_minor(unsigned index)
++{
++ struct spi_dev *spi_dev;
++
++ CRDEBUG;
++ spin_lock(&spi_dev_array_lock);
++ spi_dev = spi_dev_array[index];
++ spin_unlock(&spi_dev_array_lock);
++ return spi_dev;
++}
++
++int spi_master_recv(struct spi_dev *spi_dev, char *rbuf ,int count)
++{
++ struct spi_msg msg;
++ int ret;
++
++ CRDEBUG;
++ if (spi_dev->algo->master_xfer) {
++ msg.flags = spi_dev->flags;
++ msg.len = count;
++ msg.wbuf = NULL;
++ msg.rbuf = rbuf;
++
++ dev_dbg(&spi_dev->dev, "master_recv: reading %d bytes.\n",
++ count);
++
++ down(&spi_dev->bus_lock);
++ ret = spi_dev->algo->master_xfer(spi_dev, &msg, 1);
++ up(&spi_dev->bus_lock);
++
++ dev_dbg(&spi_dev->dev, "master_recv: return:%d (count:%d)\n",
++ ret, count);
++
++ /* if everything went ok (i.e. 1 msg transmitted), return #bytes
++ * transmitted, else error code.
++ */
++ return (ret == 1 )? count : ret;
++ } else {
++ dev_err(&spi_dev->dev, "SPI level transfers not supported\n");
++ return -ENOSYS;
++ }
++}
++
++int spi_master_send(struct spi_dev *spi_dev, char *wbuf, int count)
++{
++ int ret;
++ struct spi_msg msg;
++
++ CRDEBUG;
++ if (spi_dev->algo->master_xfer) {
++ msg.flags = spi_dev->flags;
++ msg.len = count;
++ msg.wbuf = wbuf;
++ msg.rbuf = NULL;
++
++ dev_dbg(&spi_dev->dev, "master_send: writing %d bytes.\n",
++ count);
++ down(&spi_dev->bus_lock);
++ ret = spi_dev->algo->master_xfer(spi_dev, &msg, 1);
++ up(&spi_dev->bus_lock);
++
++ /* if everything went ok (i.e. 1 msg transmitted), return #bytes
++ * transmitted, else error code.
++ */
++ return (ret == 1 )? count : ret;
++ } else {
++ dev_err(&spi_dev->dev, "SPI level transfers not supported\n");
++ return -ENOSYS;
++ }
++}
++
++static ssize_t spidev_read (struct file *file, char __user *buf, size_t count,
++ loff_t *offset)
++{
++ char *tmp;
++ int ret;
++ struct spi_dev *spi_dev = (struct spi_dev *)file->private_data;
++#ifdef CONFIG_WORD_TRANSIZE
++ count = count * 4;
++#endif
++ CRDEBUG;
++ if (count > BUFFER_SIZE)
++ count = BUFFER_SIZE;
++
++ if(spi_dev->flags & SPI_M_DMA_MODE){
++ tmp = dma_alloc_coherent(NULL, BUFFER_SIZE,
++ &spi_dev->dmabuf, GFP_KERNEL | GFP_DMA);
++ }else{
++ tmp = kmalloc(count,GFP_KERNEL);
++ }
++ if (tmp==NULL)
++ return -ENOMEM;
++
++ pr_debug("%s: tmp=0x%x dmabuf=0x%x\n",
++ __FUNCTION__,*tmp,spi_dev->dmabuf);
++ pr_debug("spi-dev: spi-%d reading %zd bytes.\n",
++ iminor(file->f_dentry->d_inode), count);
++
++ ret = spi_master_recv(spi_dev,tmp,count);
++ if (ret >= 0)
++ ret = copy_to_user(buf,tmp,count)?-EFAULT:ret;
++ if(spi_dev->flags & SPI_M_DMA_MODE){
++ dma_free_coherent(NULL,BUFFER_SIZE,tmp,spi_dev->dmabuf);
++ }else{
++ kfree(tmp);
++ }
++ return ret;
++}
++
++static ssize_t spidev_write (struct file *file, const char __user *buf, size_t count,
++ loff_t *offset)
++{
++ int ret;
++ char *tmp;
++ struct spi_dev *spi_dev = (struct spi_dev *)file->private_data;
++#ifdef CONFIG_WORD_TRANSIZE
++ count = count * 4;
++#endif
++ if (count > BUFFER_SIZE)
++ count = BUFFER_SIZE;
++ if(spi_dev->flags & SPI_M_DMA_MODE){
++ tmp = dma_alloc_coherent(NULL, BUFFER_SIZE,
++ &spi_dev->dmabuf, GFP_KERNEL | GFP_DMA);
++ }else{
++ tmp = kmalloc(count,GFP_KERNEL);
++ }
++
++ if (tmp==NULL)
++ return -ENOMEM;
++ pr_debug("%s: tmp=0x%x dmabuf=0x%x\n",
++ __FUNCTION__,*tmp,spi_dev->dmabuf);
++
++ if (copy_from_user(tmp, buf, count)) {
++ if(spi_dev->flags & SPI_M_DMA_MODE){
++ dma_free_coherent(NULL,BUFFER_SIZE,tmp,spi_dev->dmabuf);
++ }else{
++ kfree(tmp);
++ }
++ return -EFAULT;
++ }
++
++ pr_debug("spi-dev: spi-%d writing %zd bytes.\n",
++ iminor(file->f_dentry->d_inode), count);
++
++ ret = spi_master_send(spi_dev, tmp, count);
++ if(spi_dev->flags & SPI_M_DMA_MODE){
++ dma_free_coherent(NULL,BUFFER_SIZE,tmp,spi_dev->dmabuf);
++ }else{
++ kfree(tmp);
++ }
++ return ret;
++}
++
++int spidev_ioctl (struct inode *inode, struct file *file, unsigned int cmd,
++ unsigned long arg)
++{
++ struct spi_dev *spi_dev = (struct spi_dev *)file->private_data;
++
++ CRDEBUG;
++ dev_dbg(&spi_dev->dev, "spi-%d ioctl, cmd: 0x%x, arg: %lx.\n",
++ iminor(inode),cmd, arg);
++
++ switch ( cmd ) {
++ case SET_SPI_FLAGS:
++ spi_dev->flags = (unsigned int) arg;
++ break;
++ case SET_SPI_RETRIES:
++ spi_dev->retries = arg;
++ break;
++ case SET_SPI_TIMEOUT:
++ spi_dev->timeout = arg;
++ break;
++ default:
++ printk("Invalid ioctl option\n");
++ }
++ return 0;
++}
++
++static int spidev_open(struct inode *inode, struct file *file)
++{
++ unsigned int minor = iminor(inode);
++ struct spi_dev *spi_dev;
++
++ CRDEBUG;
++
++ spi_dev = spi_dev_get_by_minor(minor);
++ if (!spi_dev)
++ return -ENODEV;
++
++ /* registered with adapter, passed as client to user */
++ file->private_data = spi_dev;
++
++ return 0;
++}
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++int spi_master_close(struct spi_dev *spi_dev)
++{
++ int ret;
++ CRDEBUG;
++ ret = spi_dev->algo->close(spi_dev);
++ return 0;
++}
++static int spidev_release(struct inode *inode, struct file *file)
++{
++ struct spi_dev *spi_dev = (struct spi_dev *)file->private_data;
++ int ret;
++ CRDEBUG;
++
++ ret = spi_master_close(spi_dev);
++ file->private_data = NULL;
++
++ return 0;
++}
++#else
++
++static int spidev_release(struct inode *inode, struct file *file)
++{
++ CRDEBUG;
++ file->private_data = NULL;
++
++ return 0;
++}
++#endif
++static struct file_operations spidev_fops = {
++ .owner = THIS_MODULE,
++ .llseek = no_llseek,
++ .read = spidev_read,
++ .write = spidev_write,
++ .ioctl = spidev_ioctl,
++ .open = spidev_open,
++ .release = spidev_release,
++};
++
++//static int __init spi_dev_init(void)
++static int spi_dev_init(void)
++{
++ int res;
++
++ printk(KERN_INFO "spi /dev entries driver\n");
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++#if(SPI_CHANNEL==0)
++ res = register_chrdev(SPI_MAJOR, "spi0", &spidev_fops);
++#else
++ res = register_chrdev(SPI_MAJOR, "spi1", &spidev_fops);
++#endif
++#elif defined CONFIG_HS_SPI_S3C2443
++ res = register_chrdev(SPI_MAJOR, "spi0", &spidev_fops);
++#else
++ res = register_chrdev(SPI_MAJOR, "spi", &spidev_fops);
++#endif
++ if (res)
++ goto out;
++
++// devfs_mk_dir("spi");
++ return 0;
++
++out:
++ printk(KERN_ERR "%s: Driver Initialisation failed\n", __FILE__);
++ return res;
++}
++
++//static void __exit spi_dev_exit(void)
++static void spi_dev_exit(void)
++{
++ CRDEBUG;
++// devfs_remove("spi");
++ unregister_chrdev(SPI_MAJOR,"spi");
++}
++
++MODULE_AUTHOR("Samsung Electronics");
++MODULE_DESCRIPTION("spi /dev entries driver");
++MODULE_LICENSE("GPL");
++
++module_init(spi_dev_init);
++module_exit(spi_dev_exit);
++
++EXPORT_SYMBOL(spi_attach_spidev);
++EXPORT_SYMBOL(spi_detach_spidev);
+diff --git a/drivers/spi/spi-dev.h b/drivers/spi/spi-dev.h
+new file mode 100644
+index 0000000..5e06654
+--- /dev/null
++++ b/drivers/spi/spi-dev.h
+@@ -0,0 +1,138 @@
++/* ------------------------------------------------------------------------- */
++/* */
++/* spi.h - definitions for the spi-bus interface */
++/* */
++/* ------------------------------------------------------------------------- */
++/* Copyright (C) 2006 Samsung Electronics Co. ltd.
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
++/* ------------------------------------------------------------------------- */
++
++#ifndef _LINUX_SPI_H
++#define _LINUX_SPI_H
++
++#include <linux/module.h>
++#include <linux/types.h>
++#include <linux/device.h> /* for struct device */
++#include <asm/semaphore.h>
++
++/* --- General options ------------------------------------------------ */
++
++struct spi_msg;
++struct spi_dev;
++struct spi_algorithm;
++
++/*
++ * The master routines are the ones normally used to transmit data to devices
++ * on a bus (or/and read from them). Apart from these basic transfer functions
++ * to transmit one message at a time, a more complex version can be used to
++ * transmit an arbitrary number of messages without interruption.
++ */
++extern int spi_master_send(struct spi_dev *,char* ,int);
++extern int spi_master_recv(struct spi_dev *,char* ,int);
++
++#define SPI_CHANNEL 0
++
++/*
++ * A driver is capable of handling one or more physical devices present on
++ * SPI adapters. This information is used to inform the driver of adapter
++ * events.
++ */
++
++struct spi_dev {
++ int minor;
++
++ dma_addr_t dmabuf; /* handle for DMA transfer */
++ unsigned int flags; /* flags for the SPI operation */
++ struct semaphore bus_lock; /* semaphore for bus access */
++
++ struct spi_algorithm *algo; /* the algorithm to access the bus */
++ void *algo_data; /* the bus control struct */
++
++ int timeout;
++ int retries;
++ struct device dev; /* the adapter device */
++};
++
++/*
++ * The following structs are for those who like to implement new bus drivers:
++ * spi_algorithm is the interface to a class of hardware solutions which can
++ * be addressed using the same bus algorithms - i.e. bit-banging or the PCF8584
++ * to name two of the most common.
++ */
++struct spi_algorithm {
++ char name[32]; /* textual description */
++ unsigned int id;
++
++ /* If an adapter algorithm can't to SPI-level access, set master_xfer
++ to NULL. If an adapter algorithm can do SMBus access, set
++ smbus_xfer. If set to NULL, the SMBus protocol is simulated
++ using common SPI messages */
++ int (*master_xfer)(struct spi_dev *spi_dev,struct spi_msg *msgs,
++ int num);
++
++ /* --- ioctl like call to set div. parameters. */
++ int (*algo_control)(struct spi_dev *, unsigned int, unsigned long);
++
++ /* To determine what the adapter supports */
++ u32 (*functionality) (struct spi_dev *);
++ int (*close)(struct spi_dev *spi_dev);
++};
++
++/* ----- functions exported by spi.o */
++
++/* administration...
++ */
++extern int spi_attach_spidev(struct spi_dev *);
++extern int spi_detach_spidev(struct spi_dev *);
++
++/*
++ * SPI Message - used for pure spi transaction, also from /dev interface
++ */
++
++#define SPI_M_MODE_MASTER 0x001
++#define SPI_M_MODE_SLAVE 0x002
++#define SPI_M_USE_FIFO 0x004
++#define SPI_M_CPOL_ACTHIGH 0x010
++#define SPI_M_CPOL_ACTLOW 0x020
++#define SPI_M_CPHA_FORMATA 0x040
++#define SPI_M_CPHA_FORMATB 0x080
++#define SPI_M_DMA_MODE 0x100
++#define SPI_M_INT_MODE 0x200
++#define SPI_M_POLL_MODE 0x400
++#define SPI_M_DEBUG 0x800
++#define SPI_M_FIFO_POLL 0x1000
++
++
++struct spi_msg {
++ __u16 flags;
++ __u16 len; /* msg length */
++ __u8 *wbuf; /* pointer to msg data to write */
++ __u8 *rbuf; /* pointer to msg data for read */
++};
++
++/* ----- commands for the ioctl call: */
++ /* -> spi-adapter specific ioctls */
++#define SET_SPI_RETRIES 0x0701 /* number of times a device address */
++ /* should be polled when not */
++ /* acknowledging */
++#define SET_SPI_TIMEOUT 0x0702 /* set timeout - call with int */
++#define SET_SPI_FLAGS 0x0704 /* set flags for h/w settings */
++
++#define SPI_MAJOR 153 /* Device major number */
++ /* minor 0-15 spi0 - spi15 */
++
++#endif /* _LINUX_SPI_H */
++
+diff --git a/drivers/spi/spi_s3c24xx.c b/drivers/spi/spi_s3c24xx.c
+index 89d6685..fb692db 100644
+--- a/drivers/spi/spi_s3c24xx.c
++++ b/drivers/spi/spi_s3c24xx.c
+@@ -127,7 +127,7 @@ static int s3c24xx_spi_setupxfer(struct spi_device *spi,
+
+ div = (div / 2) - 1;
+
+- if (div < 0)
++ if (div == 0)
+ div = 1;
+
+ if (div > 255)
+diff --git a/drivers/usb/Makefile b/drivers/usb/Makefile
+index 516a640..ee04968 100644
+--- a/drivers/usb/Makefile
++++ b/drivers/usb/Makefile
+@@ -16,6 +16,7 @@ obj-$(CONFIG_USB_UHCI_HCD) += host/
+ obj-$(CONFIG_USB_SL811_HCD) += host/
+ obj-$(CONFIG_USB_U132_HCD) += host/
+ obj-$(CONFIG_USB_R8A66597_HCD) += host/
++obj-$(CONFIG_USB_S3C_OTG_HOST) += host/
+
+ obj-$(CONFIG_USB_ACM) += class/
+ obj-$(CONFIG_USB_PRINTER) += class/
+diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
+index f81d08d..10e2993 100644
+--- a/drivers/usb/gadget/Kconfig
++++ b/drivers/usb/gadget/Kconfig
+@@ -87,6 +87,8 @@ config USB_GADGET_SELECTED
+ choice
+ prompt "USB Peripheral Controller"
+ depends on USB_GADGET
++ default USB_GADGET_S3C_OTGD_HS if PLAT_S3C64XX
++ default USB_GADGET_S3C_HS if PLAT_S3C24XX
+ help
+ A USB device uses a controller to talk to its host.
+ Systems should have only one such upstream link.
+@@ -274,6 +276,41 @@ config USB_OMAP
+ default USB_GADGET
+ select USB_GADGET_SELECTED
+
++config USB_GADGET_S3C_FS
++ boolean "S3C full speed(1.1) USB device"
++ depends on CPU_S3C2412
++ select USB_GADGET_SELECTED
++ help
++ Say "y" to link the driver statically, or "m" to build a
++ dynamically linked module called "s3c_udc_fs" and force all
++ gadget drivers to also be dynamically linked.
++
++config USB_GADGET_S3C_HS
++ boolean "S3C high speed(2.0, dual-speed) USB device"
++ depends on (CPU_S3C2443 || CPU_S3C2450)
++ select USB_GADGET_SELECTED
++ select USB_GADGET_DUALSPEED
++ help
++ Say "y" to link the driver statically, or "m" to build a
++ dynamically linked module called "s3c_udc_hs" and force all
++ gadget drivers to also be dynamically linked.
++
++config USB_GADGET_S3C_OTGD_HS
++ boolean "S3C USB OTG controller"
++ depends on PLAT_S3C64XX && !(USB_S3C_OTG_HOST)
++ select USB_GADGET_SELECTED
++ select USB_GADGET_DUALSPEED
++ help
++ Samsung's S3C64XX processors have high speed USB OTG controller.
++ To link the driver eables
++ the 'S3C high speed(2.0, dual-speed) USB OTG device' below.
++
++config USB_S3C
++ tristate
++ depends on USB_GADGET_S3C_FS && USB_GADGET_S3C_HS && USB_GADGET_S3C_OTGD_HS
++ default USB_GADGET
++ select USB_GADGET_SELECTED
++
+ config USB_OTG
+ boolean "OTG Support"
+ depends on USB_GADGET_OMAP && ARCH_OMAP_OTG && USB_OHCI_HCD
+@@ -358,6 +395,42 @@ config USB_DUMMY_HCD
+
+ endchoice
+
++comment "NOTE: S3C OTG device role enables the controller driver below"
++ depends on USB_GADGET_S3C_OTGD_HS
++
++
++config USB_S3C_OTGD_HS
++ tristate "S3C high speed(2.0, dual-speed) USB OTG device"
++ depends on USB_GADGET && USB_GADGET_S3C_OTGD_HS && !(USB_S3C_OTG_HOST)
++ default y
++ help
++ Say "y" to link the driver statically, or "m" to build a
++ dynamically linked module called "s3c-udc-otg-hs" and force all
++ gadget drivers to also be dynamically linked.
++
++choice
++ prompt "S3C OTGD transfer mode"
++ depends on USB_S3C_OTGD_HS
++ default USB_GADGET_S3C_OTGD_HS_DMA_MODE
++ help
++ S3C USB OTG conteroller supports DMA mode and Slave mode
++ for the dat transfer. You must slect one for the core
++ operation mode.
++
++config USB_GADGET_S3C_OTGD_HS_DMA_MODE
++ bool "enabled DMA MODE"
++ depends on USB_GADGET_S3C_OTGD_HS
++ default y
++ help
++ S3C USB OTG core operates in DMA mode.
++
++config USB_GADGET_S3C_OTGD_HS_SLAVE_MODE
++ bool "enabled Slave MODE"
++ depends on USB_GADGET_S3C_OTGD_HS
++ help
++ S3C USB OTG core operates in Slave mode.
++endchoice
++
+ config USB_GADGET_DUALSPEED
+ bool
+ depends on USB_GADGET
+diff --git a/drivers/usb/gadget/Makefile b/drivers/usb/gadget/Makefile
+index 904e57b..057795c 100644
+--- a/drivers/usb/gadget/Makefile
++++ b/drivers/usb/gadget/Makefile
+@@ -17,6 +17,9 @@ obj-$(CONFIG_USB_AT91) += at91_udc.o
+ obj-$(CONFIG_USB_ATMEL_USBA) += atmel_usba_udc.o
+ obj-$(CONFIG_USB_FSL_USB2) += fsl_usb2_udc.o
+ obj-$(CONFIG_USB_M66592) += m66592-udc.o
++obj-$(CONFIG_USB_GADGET_S3C_HS) += s3c-udc-hs.o
++obj-$(CONFIG_USB_GADGET_S3C_FS) += s3c-udc-fs.o
++obj-$(CONFIG_USB_S3C_OTGD_HS) += s3c-udc-otg-hs.o
+
+ #
+ # USB gadget drivers
+diff --git a/drivers/usb/gadget/epautoconf.c b/drivers/usb/gadget/epautoconf.c
+index f9d0710..b98059b 100644
+--- a/drivers/usb/gadget/epautoconf.c
++++ b/drivers/usb/gadget/epautoconf.c
+@@ -264,6 +264,24 @@ struct usb_ep * __devinit usb_ep_autoconfig (
+ return ep;
+ }
+
++ } else if (gadget_is_s3c(gadget)) {
++ if (USB_ENDPOINT_XFER_INT == type) {
++ /* single buffering is enough */
++ ep = find_ep (gadget, "ep3-int");
++ if (ep && ep_matches (gadget, ep, desc))
++ return ep;
++ } else if (USB_ENDPOINT_XFER_BULK == type
++ && (USB_DIR_IN & desc->bEndpointAddress)) {
++ ep = find_ep (gadget, "ep2-bulk");
++ if (ep && ep_matches (gadget, ep, desc))
++ return ep;
++ }
++ else if (USB_ENDPOINT_XFER_BULK == type
++ && !(USB_DIR_IN & desc->bEndpointAddress)) {
++ ep = find_ep (gadget, "ep1-bulk");
++ if (ep && ep_matches (gadget, ep, desc))
++ return ep;
++ }
+ } else if (gadget_is_sh (gadget) && USB_ENDPOINT_XFER_INT == type) {
+ /* single buffering is enough; maybe 8 byte fifo is too */
+ ep = find_ep (gadget, "ep3in-bulk");
+diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c
+index ba7935d..889efed 100644
+--- a/drivers/usb/gadget/ether.c
++++ b/drivers/usb/gadget/ether.c
+@@ -32,6 +32,7 @@
+ #include <linux/usb/cdc.h>
+ #include <linux/usb/gadget.h>
+
++#include <asm/cacheflush.h>
+ #include "gadget_chips.h"
+
+ /*-------------------------------------------------------------------------*/
+@@ -90,6 +91,21 @@ static const char driver_desc [] = DRIVER_DESC;
+ |USB_CDC_PACKET_TYPE_DIRECTED)
+
+
++/* for memory copying socket buffers, it enhances performance of data communication */
++#define SKB_MEMCOPY 1
++
++#if SKB_MEMCOPY
++
++#if defined(CONFIG_USB_GADGET_S3C_OTGD_HS_DMA_MODE) /* DMA Mode */
++ #define MEMCOPY_FOR_DMA
++ #undef MEMCOPY_FOR_SLAVE
++#else /* Slave Mode */
++ #define MEMCOPY_FOR_SLAVE
++ #undef MEMCOPY_FOR_DMA
++#endif
++
++#endif //SKB_MEMCOPY
++
+ /*-------------------------------------------------------------------------*/
+
+ struct eth_dev {
+@@ -243,6 +259,10 @@ MODULE_PARM_DESC(host_addr, "Host Ethernet Address");
+ #define DEV_CONFIG_CDC
+ #endif
+
++#if defined(CONFIG_USB_GADGET_S3C_FS) || defined(CONFIG_USB_GADGET_S3C_HS) || defined(CONFIG_USB_GADGET_S3C_OTGD_HS)
++#define DEV_CONFIG_CDC
++#endif
++
+ #ifdef CONFIG_USB_GADGET_AT91
+ #define DEV_CONFIG_CDC
+ #endif
+@@ -1704,7 +1724,23 @@ rx_submit (struct eth_dev *dev, struct usb_request *req, gfp_t gfp_flags)
+ */
+ skb_reserve(skb, NET_IP_ALIGN);
+
++#if SKB_MEMCOPY
++
++#ifdef MEMCOPY_FOR_DMA
++ req->buf = kmalloc(size, GFP_ATOMIC| GFP_DMA);
++#endif
++#ifdef MEMCOPY_FOR_SLAVE
++ req->buf = kmalloc(size, GFP_ATOMIC);
++#endif
++
++ if (!req->buf) {
++ req->buf = skb->data;
++ printk("%s: fail to kmalloc [req->buf = skb->data]\n", __FUNCTION__);
++ }
++
++#else
+ req->buf = skb->data;
++#endif
+ req->length = size;
+ req->complete = rx_complete;
+ req->context = skb;
+@@ -1715,8 +1751,13 @@ enomem:
+ defer_kevent (dev, WORK_RX_MEMORY);
+ if (retval) {
+ DEBUG (dev, "rx submit --> %d\n", retval);
+- if (skb)
++ if (skb) {
+ dev_kfree_skb_any(skb);
++#ifdef SKB_MEMCOPY
++ if(req->buf != skb->data)
++ kfree(req->buf);
++#endif
++ }
+ spin_lock(&dev->req_lock);
+ list_add (&req->list, &dev->rx_reqs);
+ spin_unlock(&dev->req_lock);
+@@ -1734,6 +1775,10 @@ static void rx_complete (struct usb_ep *ep, struct usb_request *req)
+
+ /* normal completion */
+ case 0:
++#ifdef SKB_MEMCOPY
++ if(req->buf != skb->data)
++ memcpy(skb->data, req->buf, req->actual);
++#endif
+ skb_put (skb, req->actual);
+ /* we know MaxPacketsPerTransfer == 1 here */
+ if (rndis_active(dev))
+@@ -1755,6 +1800,11 @@ static void rx_complete (struct usb_ep *ep, struct usb_request *req)
+ * use skb buffers.
+ */
+ status = netif_rx (skb);
++
++#ifdef SKB_MEMCOPY
++ if(req->buf != skb->data)
++ kfree(req->buf);
++#endif
+ skb = NULL;
+ break;
+
+@@ -1770,6 +1820,10 @@ static void rx_complete (struct usb_ep *ep, struct usb_request *req)
+ defer_kevent (dev, WORK_RX_MEMORY);
+ quiesce:
+ dev_kfree_skb_any (skb);
++#ifdef SKB_MEMCOPY
++ if(req->buf != skb->data)
++ kfree(req->buf);
++#endif
+ goto clean;
+
+ /* data overrun */
+@@ -1783,8 +1837,13 @@ quiesce:
+ break;
+ }
+
+- if (skb)
++ if (skb) {
+ dev_kfree_skb_any (skb);
++#ifdef SKB_MEMCOPY
++ if(req->buf != skb->data)
++ kfree(req->buf);
++#endif
++ }
+ if (!netif_running (dev->net)) {
+ clean:
+ spin_lock(&dev->req_lock);
+@@ -1913,7 +1972,10 @@ static void tx_complete (struct usb_ep *ep, struct usb_request *req)
+ list_add (&req->list, &dev->tx_reqs);
+ spin_unlock(&dev->req_lock);
+ dev_kfree_skb_any (skb);
+-
++#ifdef SKB_MEMCOPY
++ if(req->buf != skb->data)
++ kfree(req->buf);
++#endif
+ atomic_dec (&dev->tx_qlen);
+ if (netif_carrier_ok (dev->net))
+ netif_wake_queue (dev->net);
+@@ -1993,7 +2055,25 @@ static int eth_start_xmit (struct sk_buff *skb, struct net_device *net)
+ rndis_add_hdr (skb);
+ length = skb->len;
+ }
++#if SKB_MEMCOPY
++
++#ifdef MEMCOPY_FOR_DMA
++ req->buf = kmalloc(skb->len +2, GFP_ATOMIC | GFP_DMA);
++#endif
++#ifdef MEMCOPY_FOR_SLAVE
++ req->buf = kmalloc(skb->len +2, GFP_ATOMIC);
++#endif
++
++ if (!req->buf) {
++ req->buf = skb->data;
++ printk("%s: fail to kmalloc [req->buf = skb->data]\n", __FUNCTION__);
++ }
++ else
++ memcpy((void *)req->buf, (void *)skb->data, skb->len);
++
++#else
+ req->buf = skb->data;
++#endif
+ req->context = skb;
+ req->complete = tx_complete;
+
+@@ -2027,6 +2107,10 @@ static int eth_start_xmit (struct sk_buff *skb, struct net_device *net)
+ drop:
+ dev->stats.tx_dropped++;
+ dev_kfree_skb_any (skb);
++#ifdef SKB_MEMCOPY
++ if(req->buf != skb->data)
++ kfree(req->buf);
++#endif
+ spin_lock_irqsave(&dev->req_lock, flags);
+ if (list_empty (&dev->tx_reqs))
+ netif_start_queue (net);
+diff --git a/drivers/usb/gadget/gadget_chips.h b/drivers/usb/gadget/gadget_chips.h
+index f7f159c..3b8da62 100644
+--- a/drivers/usb/gadget/gadget_chips.h
++++ b/drivers/usb/gadget/gadget_chips.h
+@@ -100,6 +100,12 @@
+ #define gadget_is_s3c2410(g) 0
+ #endif
+
++#if defined(CONFIG_USB_GADGET_S3C_FS) || defined(CONFIG_USB_GADGET_S3C_HS) || defined(CONFIG_USB_GADGET_S3C_OTGD_HS)
++#define gadget_is_s3c(g) !strcmp("s3c-udc", (g)->name)
++#else
++#define gadget_is_s3c(g) 0
++#endif
++
+ #ifdef CONFIG_USB_GADGET_AT91
+ #define gadget_is_at91(g) !strcmp("at91_udc", (g)->name)
+ #else
+@@ -212,5 +218,7 @@ static inline int usb_gadget_controller_number(struct usb_gadget *gadget)
+ return 0x20;
+ else if (gadget_is_m66592(gadget))
+ return 0x21;
++ else if (gadget_is_s3c(gadget))
++ return 0x22;
+ return -ENOENT;
+ }
+diff --git a/drivers/usb/gadget/s3c-udc-fs.c b/drivers/usb/gadget/s3c-udc-fs.c
+new file mode 100644
+index 0000000..67aa9f6
+--- /dev/null
++++ b/drivers/usb/gadget/s3c-udc-fs.c
+@@ -0,0 +1,1875 @@
++/*
++ * linux/drivers/usb/gadget/s3c24x0_udc.c
++ * Samsung S3C24X0 on-chip full speed USB device controllers
++ *
++ * Copyright (C) 2005 for Samsung Electronics
++ * - by Jaswinder Singh Brar <jassi@samsung.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ */
++
++#include "s3c-udc.h"
++#include <linux/platform_device.h>
++
++#define GPIO_INIT do{ \
++ u32 val; \
++ val = __raw_readl(S3C_GPFCON); \
++ val &= ~(3<<4); \
++ val |= (1<<4); \
++ __raw_writel(val, S3C_GPFCON); \
++ val = __raw_readl(S3C_GPFDN); \
++ val |= (1<<2); \
++ __raw_writel(val, S3C_GPFDN); \
++ val = __raw_readl(S3C_GPFDAT); \
++ val &= ~(1<<2); \
++ __raw_writel(val, S3C_GPFDAT); \
++ }while(0)
++
++#define GPIO_DEINIT do{ \
++ u32 val; \
++ val = __raw_readl(S3C_GPFCON); \
++ val &= ~(3<<4); \
++ __raw_writel(val, S3C_GPFCON); \
++ val = __raw_readl(S3C_GPFDN); \
++ val &= ~(1<<2); \
++ __raw_writel(val, S3C_GPFDN); \
++ val = __raw_readl(S3C_GPFDAT); \
++ val &= ~(1<<2); \
++ __raw_writel(val, S3C_GPFDAT); \
++ }while(0)
++
++#define GPIO_ENABLE do{ \
++ u32 val; \
++ val = __raw_readl(S3C_GPFDAT); \
++ val |= (1<<2); \
++ __raw_writel(val, S3C_GPFDAT); \
++ }while(0)
++
++#define GPIO_DISABLE do{ \
++ u32 val; \
++ val = __raw_readl(S3C_GPFDAT); \
++ val &= ~(1<<2); \
++ __raw_writel(val, S3C_GPFDAT); \
++ }while(0)
++
++#ifndef DEBUG_EP0
++# define DEBUG_EP0(fmt,args...)
++#endif
++#ifndef DEBUG_SETUP
++# define DEBUG_SETUP(fmt,args...)
++#endif
++#ifndef DEBUG
++# define NO_STATES
++# define DEBUG(fmt,args...)
++#endif
++
++//#define DEBUG_EP0 printk
++//#define DEBUG_SETUP printk
++
++#define DRIVER_DESC "Samsung USB Full/High speed Device Controller"
++#define DRIVER_VERSION __DATE__
++
++#ifndef _BIT /* FIXME - what happended to _BIT in 2.6.7bk18? */
++#define _BIT(x) (1<<(x))
++#endif
++
++struct s3c_udc *the_controller;
++static struct clk *udc_clock;
++
++static const char driver_name[] = "s3c-udc";
++static const char driver_desc[] = DRIVER_DESC;
++static const char ep0name[] = "ep0-control";
++
++/*
++ Local definintions.
++*/
++
++static char *state_names[] = {
++ "WAIT_FOR_SETUP",
++ "DATA_STATE_XMIT",
++ "DATA_STATE_NEED_ZLP",
++ "WAIT_FOR_OUT_STATUS",
++ "DATA_STATE_RECV"
++};
++
++/*
++ Local declarations.
++*/
++static int s3c_ep_enable(struct usb_ep *ep,
++ const struct usb_endpoint_descriptor *);
++static int s3c_ep_disable(struct usb_ep *ep);
++static struct usb_request *s3c_alloc_request(struct usb_ep *ep, int);
++static void s3c_free_request(struct usb_ep *ep, struct usb_request *);
++static int s3c_queue(struct usb_ep *ep, struct usb_request *, int);
++static int s3c_dequeue(struct usb_ep *ep, struct usb_request *);
++static int s3c_set_halt(struct usb_ep *ep, int);
++static int s3c_fifo_status(struct usb_ep *ep);
++static void s3c_fifo_flush(struct usb_ep *ep);
++static void s3c_ep0_kick(struct s3c_udc *dev, struct s3c_ep *ep);
++static void s3c_handle_ep0(struct s3c_udc *dev);
++
++static void done(struct s3c_ep *ep, struct s3c_request *req,
++ int status);
++static void stop_activity(struct s3c_udc *dev,
++ struct usb_gadget_driver *driver);
++static int udc_enable(struct s3c_udc *dev);
++static void udc_set_address(struct s3c_udc *dev, unsigned char address);
++static void reconfig_usbd(void);
++
++static __inline__ u32 usb_read(u32 port, u8 ind)
++{
++ __raw_writel(ind, S3C_UDC_INDEX_REG);
++ return __raw_readl(port);
++}
++
++static __inline__ void usb_write(u32 val, u32 port, u8 ind)
++{
++ __raw_writel(ind, S3C_UDC_INDEX_REG);
++ __raw_writel(val, port);
++}
++
++static __inline__ void usb_set(u32 val, u32 port, u8 ind)
++{
++ __raw_writel(ind, S3C_UDC_INDEX_REG);
++ __raw_writel(__raw_readl(port) | val, port);
++}
++
++static __inline__ void usb_clear(u32 val, u32 port, u8 ind)
++{
++ __raw_writel(ind, S3C_UDC_INDEX_REG);
++ __raw_writel(__raw_readl(port) & ~val, port);
++}
++
++static struct usb_ep_ops s3c_ep_ops = {
++ .enable = s3c_ep_enable,
++ .disable = s3c_ep_disable,
++
++ .alloc_request = s3c_alloc_request,
++ .free_request = s3c_free_request,
++
++ .queue = s3c_queue,
++ .dequeue = s3c_dequeue,
++
++ .set_halt = s3c_set_halt,
++ .fifo_status = s3c_fifo_status,
++ .fifo_flush = s3c_fifo_flush,
++};
++
++/* Inline code */
++
++static __inline__ int write_packet(struct s3c_ep *ep,
++ struct s3c_request *req, int max)
++{
++ u8 *buf;
++ int length, count;
++ u32 fifo = ep->fifo;
++
++ buf = req->req.buf + req->req.actual;
++ prefetch(buf);
++
++ length = req->req.length - req->req.actual;
++ length = min(length, max);
++ req->req.actual += length;
++
++ DEBUG("Write %d (max %d), fifo %p\n", length, max, fifo);
++
++ count = length;
++
++ while (count--)
++ __raw_writel(*buf++, fifo);
++
++ return length;
++}
++
++#ifdef CONFIG_USB_GADGET_DEBUG_FILES
++
++static const char proc_node_name[] = "driver/udc";
++
++static int
++udc_proc_read(char *page, char **start, off_t off, int count,
++ int *eof, void *_dev)
++{
++ char *buf = page;
++ struct s3c_udc *dev = _dev;
++ char *next = buf;
++ unsigned size = count;
++ unsigned long flags;
++ int t;
++
++ if (off != 0)
++ return 0;
++
++ local_irq_save(flags);
++
++ /* basic device status */
++ t = scnprintf(next, size,
++ DRIVER_DESC "\n"
++ "%s version: %s\n"
++ "Gadget driver: %s\n"
++ "\n",
++ driver_name, DRIVER_VERSION,
++ dev->driver ? dev->driver->driver.name : "(none)");
++ size -= t;
++ next += t;
++
++ local_irq_restore(flags);
++ *eof = 1;
++ return count - size;
++}
++
++#define create_proc_files() create_proc_read_entry(proc_node_name, 0, NULL, udc_proc_read, dev)
++#define remove_proc_files() remove_proc_entry(proc_node_name, NULL)
++
++#else /* !CONFIG_USB_GADGET_DEBUG_FILES */
++
++#define create_proc_files() do {} while (0)
++#define remove_proc_files() do {} while (0)
++
++#endif /* CONFIG_USB_GADGET_DEBUG_FILES */
++
++/*
++ * udc_disable - disable USB device controller
++ */
++static void udc_disable(struct s3c_udc *dev)
++{
++ DEBUG("%s, %p\n", __FUNCTION__, dev);
++
++ udc_set_address(dev, 0);
++
++ if (udc_clock) {
++ clk_disable(udc_clock);
++ //clk_unuse(udc_clock);
++ clk_put(udc_clock);
++ udc_clock = NULL;
++ }
++
++ dev->ep0state = WAIT_FOR_SETUP;
++ dev->gadget.speed = USB_SPEED_UNKNOWN;
++ dev->usb_address = 0;
++}
++
++/*
++ * udc_reinit - initialize software state
++ */
++static void udc_reinit(struct s3c_udc *dev)
++{
++ u32 i;
++
++ DEBUG("%s, %p\n", __FUNCTION__, dev);
++
++ /* device/ep0 records init */
++ INIT_LIST_HEAD(&dev->gadget.ep_list);
++ INIT_LIST_HEAD(&dev->gadget.ep0->ep_list);
++ dev->ep0state = WAIT_FOR_SETUP;
++
++ /* basic endpoint records init */
++ for (i = 0; i < S3C_MAX_ENDPOINTS; i++) {
++ struct s3c_ep *ep = &dev->ep[i];
++
++ if (i != 0)
++ list_add_tail(&ep->ep.ep_list, &dev->gadget.ep_list);
++
++ ep->desc = 0;
++ ep->stopped = 0;
++ INIT_LIST_HEAD(&ep->queue);
++ ep->pio_irqs = 0;
++ }
++
++ /* the rest was statically initialized, and is read-only */
++}
++
++#define BYTES2MAXP(x) (x / 8)
++#define MAXP2BYTES(x) (x * 8)
++
++/* until it's enabled, this UDC should be completely invisible
++ * to any USB host.
++ */
++static int udc_enable(struct s3c_udc *dev)
++{
++ u32 val;
++
++ DEBUG("%s, %p\n", __FUNCTION__, dev);
++
++ dev->gadget.speed = USB_SPEED_UNKNOWN;
++
++ val = usb_read(S3C_MISCCR, 0);
++ val &= ~((1<<3)|(1<<13)); // USB Device in Normal mode
++ usb_write(val, S3C_MISCCR, 0);
++
++ /* Enable Clock */
++ udc_clock = clk_get(NULL, "usb-device");
++ if (!udc_clock) {
++ printk("failed to get udc clock source\n");
++ return -ENOENT;
++ }
++ //clk_use(udc_clock);
++ clk_enable(udc_clock);
++
++ val = (1<<0);
++ usb_write(val, S3C_UDC_EP_INT_REG, 0); //clear
++ val = (1<<2); //UD_USBINTE_RESET
++ usb_write(val, S3C_UDC_USB_INT_REG, 0); //clear
++
++ /* Set MAXP values for each */
++ usb_write(dev->ep[0].ep.maxpacket>>3, S3C_UDC_MAXP_REG, 0);
++
++ usb_write(dev->ep[1].ep.maxpacket>>3, S3C_UDC_MAXP_REG, 1);
++
++ usb_write(dev->ep[2].ep.maxpacket>>3, S3C_UDC_MAXP_REG, 2);
++
++ usb_write(dev->ep[3].ep.maxpacket>>3, S3C_UDC_MAXP_REG, 3);
++
++ usb_write(dev->ep[4].ep.maxpacket>>3, S3C_UDC_MAXP_REG, 4);
++
++ return 0;
++}
++
++/*
++ Register entry point for the peripheral controller driver.
++*/
++int usb_gadget_register_driver(struct usb_gadget_driver *driver)
++{
++ struct s3c_udc *dev = the_controller;
++ int retval;
++
++ DEBUG("%s: %s\n", __FUNCTION__, driver->driver.name);
++
++ if (!driver
++ || driver->speed != USB_SPEED_FULL
++ || !driver->bind
++ || !driver->unbind || !driver->disconnect || !driver->setup)
++ return -EINVAL;
++ if (!dev)
++ return -ENODEV;
++ if (dev->driver)
++ return -EBUSY;
++
++ /* first hook up the driver ... */
++ dev->driver = driver;
++ dev->gadget.dev.driver = &driver->driver;
++
++ device_add(&dev->gadget.dev);
++ retval = driver->bind(&dev->gadget);
++ if (retval) {
++ printk("%s: bind to driver %s --> error %d\n", dev->gadget.name,
++ driver->driver.name, retval);
++ device_del(&dev->gadget.dev);
++
++ dev->driver = 0;
++ dev->gadget.dev.driver = 0;
++ return retval;
++ }
++
++ reconfig_usbd();
++ enable_irq(IRQ_USBD);
++
++ printk("Registered gadget driver '%s'\n", driver->driver.name);
++
++ GPIO_ENABLE;
++
++ return 0;
++}
++
++EXPORT_SYMBOL(usb_gadget_register_driver);
++
++/*
++ Unregister entry point for the peripheral controller driver.
++*/
++int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
++{
++ struct s3c_udc *dev = the_controller;
++ unsigned long flags;
++
++ GPIO_DISABLE;
++
++ if (!dev)
++ return -ENODEV;
++ if (!driver || driver != dev->driver)
++ return -EINVAL;
++
++ spin_lock_irqsave(&dev->lock, flags);
++ dev->driver = 0;
++ stop_activity(dev, driver);
++ spin_unlock_irqrestore(&dev->lock, flags);
++
++ driver->unbind(&dev->gadget);
++ device_del(&dev->gadget.dev);
++
++ disable_irq(IRQ_USBD);
++
++ printk("Unregistered gadget driver '%s'\n", driver->driver.name);
++ return 0;
++}
++
++EXPORT_SYMBOL(usb_gadget_unregister_driver);
++
++/*-------------------------------------------------------------------------*/
++
++/** Write request to FIFO (max write == maxp size)
++ * Return: 0 = still running, 1 = completed, negative = errno
++ */
++static int write_fifo(struct s3c_ep *ep, struct s3c_request *req)
++{
++ u32 max;
++ unsigned count;
++ int is_last, is_short;
++
++ max = le16_to_cpu(ep->desc->wMaxPacketSize);
++
++ count = write_packet(ep, req, max);
++
++ /* last packet is usually short (or a zlp) */
++ if (unlikely(count != max))
++ is_last = is_short = 1;
++ else {
++ if (likely(req->req.length != req->req.actual)
++ || req->req.zero)
++ is_last = 0;
++ else
++ is_last = 1;
++ /* interrupt/iso maxpacket may not fill the fifo */
++ is_short = unlikely(max < ep_maxpacket(ep));
++ }
++
++ /* requests complete when all IN data is in the FIFO */
++ if (is_last) {
++ if(!ep_index(ep)){ // EP0 must not come here
++ BUG();
++ //usb_set(S3C_UDC_EP0_CSR_IPKRDY | S3C_UDC_EP0_CSR_DE,
++ // S3C_UDC_EP0_CSR_REG, 0);
++ }else{
++ usb_set(S3C_UDC_ICSR1_PKTRDY, ep->csr1, ep_index(ep));
++ }
++ done(ep, req, 0);
++ return 1;
++ } else{
++ usb_set(S3C_UDC_ICSR1_PKTRDY, ep->csr1, ep_index(ep));
++ }
++
++ DEBUG_EP0("%s: wrote %s %d bytes%s%s %d left %p\n", __FUNCTION__,
++ ep->ep.name, count,
++ is_last ? "/L" : "", is_short ? "/S" : "",
++ req->req.length - req->req.actual, req);
++
++ return 0;
++}
++
++/** Read to request from FIFO (max read == bytes in fifo)
++ * Return: 0 = still running, 1 = completed, negative = errno
++ */
++static int read_fifo(struct s3c_ep *ep, struct s3c_request *req)
++{
++ u32 csr;
++ u8 *buf;
++ unsigned bufferspace, count, is_short;
++ u32 fifo = ep->fifo;
++
++ /* make sure there's a packet in the FIFO. */
++ csr = usb_read(ep->csr1, ep_index(ep));
++ if (!(csr & S3C_UDC_OCSR1_PKTRDY)) {
++ DEBUG("%s: Packet NOT ready!\n", __FUNCTION__);
++ return -EINVAL;
++ }
++
++ buf = req->req.buf + req->req.actual;
++ prefetchw(buf);
++ bufferspace = req->req.length - req->req.actual;
++
++ /* read all bytes from this packet */
++ count = (( (usb_read(S3C_UDC_OUT_FIFO_CNT2_REG, ep_index(ep)) & 0xff ) << 8) | (usb_read(S3C_UDC_OUT_FIFO_CNT1_REG, ep_index(ep)) & 0xff));
++ req->req.actual += min(count, bufferspace);
++
++ is_short = (count < ep->ep.maxpacket);
++ DEBUG("read %s %02x, %d bytes%s req %p %d/%d\n",
++ ep->ep.name, csr, count,
++ is_short ? "/S" : "", req, req->req.actual, req->req.length);
++
++ while (likely(count-- != 0)) {
++ u8 byte = (u8) __raw_readl(fifo);
++
++ if (unlikely(bufferspace == 0)) {
++ /* this happens when the driver's buffer
++ * is smaller than what the host sent.
++ * discard the extra data.
++ */
++ if (req->req.status != -EOVERFLOW)
++ printk("%s overflow %d\n", ep->ep.name, count);
++ req->req.status = -EOVERFLOW;
++ } else {
++ *buf++ = byte;
++ bufferspace--;
++ }
++ }
++
++ usb_clear(S3C_UDC_OCSR1_PKTRDY, ep->csr1, ep_index(ep));
++
++ /* completion */
++ if (is_short || req->req.actual == req->req.length) {
++ done(ep, req, 0);
++ return 1;
++ }
++
++ /* finished that packet. the next one may be waiting... */
++ return 0;
++}
++
++/*
++ * done - retire a request; caller blocked irqs
++ */
++static void done(struct s3c_ep *ep, struct s3c_request *req, int status)
++{
++ unsigned int stopped = ep->stopped;
++
++ DEBUG("%s, %p\n", __FUNCTION__, ep);
++ list_del_init(&req->queue);
++
++ if (likely(req->req.status == -EINPROGRESS))
++ req->req.status = status;
++ else
++ status = req->req.status;
++
++ if (status && status != -ESHUTDOWN)
++ DEBUG("complete %s req %p stat %d len %u/%u\n",
++ ep->ep.name, &req->req, status,
++ req->req.actual, req->req.length);
++
++ /* don't modify queue heads during completion callback */
++ ep->stopped = 1;
++
++ spin_unlock(&ep->dev->lock);
++ req->req.complete(&ep->ep, &req->req);
++ spin_lock(&ep->dev->lock);
++
++ ep->stopped = stopped;
++}
++
++/*
++ * nuke - dequeue ALL requests
++ */
++void nuke(struct s3c_ep *ep, int status)
++{
++ struct s3c_request *req;
++
++ DEBUG("%s, %p\n", __FUNCTION__, ep);
++
++ /* called with irqs blocked */
++ while (!list_empty(&ep->queue)) {
++ req = list_entry(ep->queue.next, struct s3c_request, queue);
++ done(ep, req, status);
++ }
++}
++
++/**
++ * s3c_in_epn - handle IN interrupt
++ */
++static void s3c_in_epn(struct s3c_udc *dev, u32 ep_idx)
++{
++ u32 csr;
++ struct s3c_ep *ep = &dev->ep[ep_idx];
++ struct s3c_request *req;
++
++ csr = usb_read(ep->csr1, ep_index(ep));
++ DEBUG("%s: %d, csr %x\n", __FUNCTION__, ep_idx, csr);
++
++ if (csr & S3C_UDC_ICSR1_SENTSTL) {
++ printk("S3C_UDC_ICSR1_SENTSTL\n");
++ usb_set(S3C_UDC_ICSR1_SENTSTL /*| S3C_UDC_ICSR1_SENDSTL */ ,
++ ep->csr1, ep_index(ep));
++ return;
++ }
++
++ if (!ep->desc) {
++ DEBUG("%s: NO EP DESC\n", __FUNCTION__);
++ return;
++ }
++
++ if (list_empty(&ep->queue))
++ req = 0;
++ else
++ req = list_entry(ep->queue.next, struct s3c_request, queue);
++
++ DEBUG("req: %p\n", req);
++
++ if (!req)
++ return;
++
++ write_fifo(ep, req);
++}
++
++/* ********************************************************************************************* */
++/* Bulk OUT (recv)
++ */
++
++static void s3c_out_epn(struct s3c_udc *dev, u32 ep_idx)
++{
++ struct s3c_ep *ep = &dev->ep[ep_idx];
++ struct s3c_request *req;
++
++ DEBUG("%s: %d\n", __FUNCTION__, ep_idx);
++
++ if (ep->desc) {
++ u32 csr;
++ csr = usb_read(ep->csr1, ep_index(ep));
++
++ while ((csr = usb_read(ep->csr1, ep_index(ep)))
++ & (S3C_UDC_OCSR1_PKTRDY | S3C_UDC_OCSR1_SENTSTL)) {
++
++ DEBUG("%s: %x\n", __FUNCTION__, csr);
++
++ if (csr & S3C_UDC_OCSR1_SENTSTL) {
++ DEBUG("%s: stall sent, flush fifo\n",
++ __FUNCTION__);
++ /* usb_set(USB_OUT_CSR1_FIFO_FLUSH, ep->csr1, ep_index(ep)); */
++ } else if (csr & S3C_UDC_OCSR1_PKTRDY) {
++ if (list_empty(&ep->queue))
++ req = 0;
++ else
++ req = list_entry(ep->queue.next,
++ struct s3c_request, queue);
++
++ if (!req) {
++ //printk("%s: NULL REQ %d\n",
++ // __FUNCTION__, ep_idx);
++ break;
++ } else {
++ read_fifo(ep, req);
++ }
++ }
++ }
++ } else {
++ /* Throw packet away.. */
++ printk("%s: No descriptor?!?\n", __FUNCTION__);
++ }
++}
++
++static void stop_activity(struct s3c_udc *dev,
++ struct usb_gadget_driver *driver)
++{
++ int i;
++
++ /* don't disconnect drivers more than once */
++ if (dev->gadget.speed == USB_SPEED_UNKNOWN)
++ driver = 0;
++ dev->gadget.speed = USB_SPEED_UNKNOWN;
++
++ /* prevent new request submissions, kill any outstanding requests */
++ for (i = 0; i < S3C_MAX_ENDPOINTS; i++) {
++ struct s3c_ep *ep = &dev->ep[i];
++ ep->stopped = 1;
++ nuke(ep, -ESHUTDOWN);
++ }
++
++ /* report disconnect; the driver is already quiesced */
++ if (driver) {
++ spin_unlock(&dev->lock);
++ driver->disconnect(&dev->gadget);
++ spin_lock(&dev->lock);
++ }
++
++ /* re-init driver-visible data structures */
++ udc_reinit(dev);
++}
++
++static void reconfig_usbd(void)
++{
++ u32 val;
++
++ usb_write(0, S3C_UDC_PWR_REG, 0);
++
++ /* EP0 */
++ val = EP0_FIFO_SIZE>>3;
++ usb_write(val, S3C_UDC_MAXP_REG, 0);
++
++ val = (1<<6)|(1<<7); //EP0_CSR_SOPKTRDY | EP0_CSR_SSE;
++ usb_write(val, S3C_UDC_EP0_CSR_REG, 0);
++
++ /* EP3 -- INT */
++ val = EP_FIFO_SIZE>>3;
++ usb_write(val, S3C_UDC_MAXP_REG, 3);
++
++ val = (1<<6)|(1<<3); //UD_ICSR1_FFLUSH | UD_ICSR1_CLRDT;
++ usb_write(val, S3C_UDC_IN_CSR1_REG, 3);
++
++ val = (1<<5)|(1<<4); //UD_ICSR2_MODEIN | UD_ICSR2_DMAIEN;
++ usb_write(val, S3C_UDC_IN_CSR2_REG, 3);
++
++ /* EP2 -- IN */
++ val = EP_FIFO_SIZE>>3;
++ usb_write(val, S3C_UDC_MAXP_REG, 2);
++
++ val = (1<<6)|(1<<3); //UD_ICSR1_FFLUSH | UD_ICSR1_CLRDT;
++ usb_write(val, S3C_UDC_IN_CSR1_REG, 2);
++
++ val = (1<<5)|(1<<4); //UD_ICSR2_MODEIN | UD_ICSR2_DMAIEN;
++ usb_write(val, S3C_UDC_IN_CSR2_REG, 2);
++
++ /* EP1 -- OUT */
++ val = EP_FIFO_SIZE>>3;
++ usb_write(val, S3C_UDC_MAXP_REG, 1);
++
++ val = (1<<6)|(1<<3); //UD_ICSR1_FFLUSH | UD_ICSR1_CLRDT;
++ usb_write(val, S3C_UDC_IN_CSR1_REG, 1);
++
++ usb_write(0, S3C_UDC_IN_CSR2_REG, 1); // output mode
++
++ val = (1<<4)|(1<<7); //UD_OCSR1_FFLUSH | UD_OCSR1_CLRDT;
++ usb_write(val, S3C_UDC_OUT_CSR1_REG, 1);
++
++ val = (1<<5); //UD_OCSR2_DMAIEN;
++ usb_write(val, S3C_UDC_OUT_CSR2_REG, 1);
++
++ val = EP_FIFO_SIZE>>3;
++ usb_write(val, S3C_UDC_MAXP_REG, 3);
++
++ val = EP_FIFO_SIZE>>3;
++ usb_write(val, S3C_UDC_MAXP_REG, 2);
++
++ val = EP_FIFO_SIZE>>3;
++ usb_write(val, S3C_UDC_MAXP_REG, 1);
++
++ //val = (1<<0)|(1<<1)|(1<<2); //UD_INTE_EP0 | UD_INTE_EP2 | UD_INTE_EP1;
++ val = (1<<0)|(1<<1)|(1<<2)|(1<<3); //UD_INTE_EP0 | UD_INTE_EP2 | UD_INTE_EP1;
++ usb_write(val, S3C_UDC_EP_INT_EN_REG, 0);
++ usb_write(val & ~(1<<0), S3C_UDC_EP_INT_REG, 0); //clear
++
++ val = (1<<0)|(1<<2); //UD_USBINTE_RESET | UD_USBINTE_SUSPND;
++ usb_write(val, S3C_UDC_USB_INT_EN_REG, 0);
++ usb_write(val, S3C_UDC_USB_INT_REG, 0); //clear
++}
++
++/*
++ * elfin usb client interrupt handler.
++ */
++static irqreturn_t s3c_udc_irq(int irq, void *_dev, struct pt_regs *r)
++{
++ struct s3c_udc *dev = _dev;
++
++ spin_lock(&dev->lock);
++
++ u32 intr_out, intr_in;
++ u32 intr_int, val;
++
++ intr_out = intr_in = usb_read(S3C_UDC_EP_INT_REG, 0);
++ intr_int = usb_read(S3C_UDC_USB_INT_REG, 0);
++
++ /* We have only 3 usable eps now -jassi */
++ intr_in &= (S3C_UDC_INT_EP3 | S3C_UDC_INT_EP2 | S3C_UDC_INT_EP0);
++ intr_out &= S3C_UDC_INT_EP1;
++
++ if (!intr_out && !intr_in && !intr_int){
++ spin_unlock(&dev->lock);
++ return IRQ_HANDLED;
++ }
++
++ DEBUG("%s (on state %s)\n", __FUNCTION__,
++ state_names[dev->ep0state]);
++ DEBUG("intr_out = %x\n", intr_out);
++ DEBUG("intr_in = %x\n", intr_in);
++ DEBUG("intr_int = %x\n", intr_int);
++
++ if (intr_in) {
++ if (intr_in & S3C_UDC_INT_EP0){
++ //printk("EP0 ");
++ usb_write(S3C_UDC_INT_EP0, S3C_UDC_EP_INT_REG, 0);
++ s3c_handle_ep0(dev);
++ }else if (intr_in & S3C_UDC_INT_EP2){
++ //printk("EP2 ");
++ usb_write(S3C_UDC_INT_EP2, S3C_UDC_EP_INT_REG, 2);
++ s3c_in_epn(dev, 2); // hard coded !!! -jassi
++ }else{
++ //printk("EP3 ");
++ usb_write(S3C_UDC_INT_EP3, S3C_UDC_EP_INT_REG, 3);
++ s3c_in_epn(dev, 3); // hard coded !!! -jassi
++ }
++ }
++
++ if (intr_out) {
++ //printk("EP1 ");
++ usb_write(S3C_UDC_INT_EP1, S3C_UDC_EP_INT_REG, 1);
++ s3c_out_epn(dev, 1); // hard coded !!! -jassi
++ }
++
++ if (intr_int) {
++ if (intr_int & S3C_UDC_USBINT_RESET) {
++ reconfig_usbd();
++ dev->gadget.speed = USB_SPEED_FULL;
++ dev->ep0state = WAIT_FOR_SETUP;
++ usb_write(S3C_UDC_USBINT_RESET, S3C_UDC_USB_INT_REG, 0);
++ DEBUG_SETUP("RESET");
++ }
++
++ usb_write(intr_int, S3C_UDC_USB_INT_REG, 0);
++
++ if (intr_int & S3C_UDC_USBINT_RESUME) {
++ DEBUG_SETUP("USB resume\n");
++
++ if (dev->gadget.speed != USB_SPEED_UNKNOWN
++ && dev->driver
++ && dev->driver->resume) {
++ dev->driver->resume(&dev->gadget);
++ }
++ }
++
++ if (intr_int & S3C_UDC_USBINT_SUSPEND) {
++ if (dev->gadget.speed !=
++ USB_SPEED_UNKNOWN && dev->driver
++ && dev->driver->suspend) {
++ dev->driver->suspend(&dev->gadget);
++ }
++ }
++
++ }
++
++
++ __raw_writel(IRQ_USBD, S3C_INTPND);
++ __raw_writel(IRQ_USBD, S3C_SRCPND);
++
++ spin_unlock(&dev->lock);
++
++ return IRQ_HANDLED;
++}
++
++static int s3c_ep_enable(struct usb_ep *_ep,
++ const struct usb_endpoint_descriptor *desc)
++{
++ struct s3c_ep *ep;
++ struct s3c_udc *dev;
++ unsigned long flags;
++
++ DEBUG("%s, %p\n", __FUNCTION__, _ep);
++
++ ep = container_of(_ep, struct s3c_ep, ep);
++ if (!_ep || !desc || ep->desc || _ep->name == ep0name
++ || desc->bDescriptorType != USB_DT_ENDPOINT
++ || ep->bEndpointAddress != desc->bEndpointAddress
++ || ep_maxpacket(ep) < le16_to_cpu(desc->wMaxPacketSize)) {
++ DEBUG("%s, bad ep or descriptor\n", __FUNCTION__);
++ return -EINVAL;
++ }
++
++ /* xfer types must match, except that interrupt ~= bulk */
++ if (ep->bmAttributes != desc->bmAttributes
++ && ep->bmAttributes != USB_ENDPOINT_XFER_BULK
++ && desc->bmAttributes != USB_ENDPOINT_XFER_INT) {
++ DEBUG("%s, %s type mismatch\n", __FUNCTION__, _ep->name);
++ return -EINVAL;
++ }
++
++ /* hardware _could_ do smaller, but driver doesn't */
++ if ((desc->bmAttributes == USB_ENDPOINT_XFER_BULK
++ && le16_to_cpu(desc->wMaxPacketSize) != ep_maxpacket(ep))
++ || !desc->wMaxPacketSize) {
++ DEBUG("%s, bad %s maxpacket\n", __FUNCTION__, _ep->name);
++ return -ERANGE;
++ }
++
++ dev = ep->dev;
++ if (!dev->driver || dev->gadget.speed == USB_SPEED_UNKNOWN) {
++ DEBUG("%s, bogus device state\n", __FUNCTION__);
++ return -ESHUTDOWN;
++ }
++
++ spin_lock_irqsave(&ep->dev->lock, flags);
++
++ ep->stopped = 0;
++ ep->desc = desc;
++ ep->pio_irqs = 0;
++ ep->ep.maxpacket = le16_to_cpu(desc->wMaxPacketSize);
++
++ /* Reset halt state */
++ s3c_set_halt(_ep, 0);
++
++ spin_unlock_irqrestore(&ep->dev->lock, flags);
++
++ DEBUG("%s: enabled %s\n", __FUNCTION__, _ep->name);
++ return 0;
++}
++
++/** Disable EP
++ */
++static int s3c_ep_disable(struct usb_ep *_ep)
++{
++ struct s3c_ep *ep;
++ unsigned long flags;
++
++ DEBUG("%s, %p\n", __FUNCTION__, _ep);
++
++ ep = container_of(_ep, struct s3c_ep, ep);
++ if (!_ep || !ep->desc) {
++ DEBUG("%s, %s not enabled\n", __FUNCTION__,
++ _ep ? ep->ep.name : NULL);
++ return -EINVAL;
++ }
++
++ spin_lock_irqsave(&ep->dev->lock, flags);
++
++ /* Nuke all pending requests */
++ nuke(ep, -ESHUTDOWN);
++
++ ep->desc = 0;
++ ep->stopped = 1;
++
++ spin_unlock_irqrestore(&ep->dev->lock, flags);
++
++ DEBUG("%s: disabled %s\n", __FUNCTION__, _ep->name);
++ return 0;
++}
++
++static struct usb_request *s3c_alloc_request(struct usb_ep *ep,
++ int gfp_flags)
++{
++ struct s3c_request *req;
++
++ DEBUG("%s, %p\n", __FUNCTION__, ep);
++
++ req = kmalloc(sizeof *req, gfp_flags);
++ if (!req)
++ return 0;
++
++ memset(req, 0, sizeof *req);
++ INIT_LIST_HEAD(&req->queue);
++
++ return &req->req;
++}
++
++static void s3c_free_request(struct usb_ep *ep, struct usb_request *_req)
++{
++ struct s3c_request *req;
++
++ DEBUG("%s, %p\n", __FUNCTION__, ep);
++
++ req = container_of(_req, struct s3c_request, req);
++ WARN_ON(!list_empty(&req->queue));
++ kfree(req);
++}
++
++
++/** Queue one request
++ * Kickstart transfer if needed
++ */
++static int s3c_queue(struct usb_ep *_ep, struct usb_request *_req,
++ int gfp_flags)
++{
++ struct s3c_request *req;
++ struct s3c_ep *ep;
++ struct s3c_udc *dev;
++ unsigned long flags;
++
++ DEBUG("\n\n\n%s, %p\n", __FUNCTION__, _ep);
++
++ req = container_of(_req, struct s3c_request, req);
++ if (unlikely
++ (!_req || !_req->complete || !_req->buf
++ || !list_empty(&req->queue))) {
++ DEBUG("%s, bad params\n", __FUNCTION__);
++ return -EINVAL;
++ }
++
++ ep = container_of(_ep, struct s3c_ep, ep);
++ if (unlikely(!_ep || (!ep->desc && ep->ep.name != ep0name))) {
++ DEBUG("%s, bad ep\n", __FUNCTION__);
++ return -EINVAL;
++ }
++
++ dev = ep->dev;
++ if (unlikely(!dev->driver || dev->gadget.speed == USB_SPEED_UNKNOWN)) {
++ DEBUG("%s, bogus device state %p\n", __FUNCTION__, dev->driver);
++ return -ESHUTDOWN;
++ }
++
++ DEBUG("%s queue req %p, len %d buf %p\n", _ep->name, _req, _req->length,
++ _req->buf);
++
++ spin_lock_irqsave(&dev->lock, flags);
++
++ _req->status = -EINPROGRESS;
++ _req->actual = 0;
++
++ /* kickstart this i/o queue? */
++ DEBUG("Add to %d Q %d %d\n", ep_index(ep), list_empty(&ep->queue),
++ ep->stopped);
++ if (list_empty(&ep->queue) && likely(!ep->stopped)) {
++ u32 csr;
++
++ if (unlikely(ep_index(ep) == 0)) {
++ /* EP0 */
++ list_add_tail(&req->queue, &ep->queue);
++ s3c_ep0_kick(dev, ep);
++ req = 0;
++ } else if (ep_is_in(ep)) {
++ csr = usb_read(ep->csr1, ep_index(ep));
++ if(!(csr & S3C_UDC_ICSR1_PKTRDY)&&(write_fifo(ep, req) == 1))
++ req = 0;
++ } else {
++ csr = usb_read(ep->csr1, ep_index(ep));
++ if (read_fifo(ep, req) == 1)
++ req = 0;
++ }
++ }
++
++ /* pio or dma irq handler advances the queue. */
++ if (likely(req != 0))
++ list_add_tail(&req->queue, &ep->queue);
++
++ spin_unlock_irqrestore(&dev->lock, flags);
++
++ return 0;
++}
++
++/* dequeue JUST ONE request */
++static int s3c_dequeue(struct usb_ep *_ep, struct usb_request *_req)
++{
++ struct s3c_ep *ep;
++ struct s3c_request *req;
++ unsigned long flags;
++
++ DEBUG("%s, %p\n", __FUNCTION__, _ep);
++
++ ep = container_of(_ep, struct s3c_ep, ep);
++ if (!_ep || ep->ep.name == ep0name)
++ return -EINVAL;
++
++ spin_lock_irqsave(&ep->dev->lock, flags);
++
++ /* make sure it's actually queued on this endpoint */
++ list_for_each_entry(req, &ep->queue, queue) {
++ if (&req->req == _req)
++ break;
++ }
++ if (&req->req != _req) {
++ spin_unlock_irqrestore(&ep->dev->lock, flags);
++ return -EINVAL;
++ }
++
++ done(ep, req, -ECONNRESET);
++
++ spin_unlock_irqrestore(&ep->dev->lock, flags);
++ return 0;
++}
++
++/** Halt specific EP
++ * Return 0 if success
++ */
++static int s3c_set_halt(struct usb_ep *_ep, int value)
++{
++ return 0;
++}
++
++/** Return bytes in EP FIFO
++ */
++static int s3c_fifo_status(struct usb_ep *_ep)
++{
++ u32 csr;
++ int count = 0;
++ struct s3c_ep *ep;
++
++ ep = container_of(_ep, struct s3c_ep, ep);
++ if (!_ep) {
++ DEBUG("%s, bad ep\n", __FUNCTION__);
++ return -ENODEV;
++ }
++
++ DEBUG("%s, %d\n", __FUNCTION__, ep_index(ep));
++
++ /* LPD can't report unclaimed bytes from IN fifos */
++ if (ep_is_in(ep))
++ return -EOPNOTSUPP;
++
++ csr = usb_read(ep->csr1, ep_index(ep));
++ if (ep->dev->gadget.speed != USB_SPEED_UNKNOWN ||
++ csr & S3C_UDC_OCSR1_PKTRDY) {
++ count = ( ((usb_read(S3C_UDC_OUT_FIFO_CNT2_REG, ep_index(ep)) & 0xff) << 8)
++ | (usb_read(S3C_UDC_OUT_FIFO_CNT1_REG, ep_index(ep)) & 0xff));
++ }
++
++ return count;
++}
++
++/** Flush EP FIFO
++ */
++static void s3c_fifo_flush(struct usb_ep *_ep)
++{
++ struct s3c_ep *ep;
++
++ ep = container_of(_ep, struct s3c_ep, ep);
++ if (unlikely(!_ep || (!ep->desc && ep->ep.name != ep0name))) {
++ DEBUG("%s, bad ep\n", __FUNCTION__);
++ return;
++ }
++}
++
++/****************************************************************/
++/* End Point 0 related functions */
++/****************************************************************/
++
++/* return: 0 = still running, 1 = completed, negative = errno */
++static int write_fifo_ep0(struct s3c_ep *ep, struct s3c_request *req)
++{
++ u32 max;
++ unsigned count;
++ int is_last;
++
++ max = ep_maxpacket(ep);
++
++ DEBUG_EP0("%s\n", __FUNCTION__);
++
++ count = write_packet(ep, req, max);
++
++ /* last packet is usually short (or a zlp) */
++ if (unlikely(count != max))
++ is_last = 1;
++ else {
++ if (likely(req->req.length != req->req.actual) || req->req.zero)
++ is_last = 0;
++ else
++ is_last = 1;
++ }
++
++ DEBUG_EP0("%s: wrote %s %d bytes%s %d left %p\n", __FUNCTION__,
++ ep->ep.name, count,
++ is_last ? "/L" : "", req->req.length - req->req.actual, req);
++
++ /* requests complete when all IN data is in the FIFO */
++ if (is_last) {
++ return 1;
++ }
++
++ return 0;
++}
++
++static __inline__ int s3c_fifo_read(struct s3c_ep *ep,
++ unsigned char *cp, int max)
++{
++ int bytes;
++ int count;
++ u32 fifo = ep->fifo;
++
++ count = ( ((usb_read(S3C_UDC_OUT_FIFO_CNT2_REG, ep_index(ep)) & 0xff ) << 8)
++ | (usb_read(S3C_UDC_OUT_FIFO_CNT1_REG, ep_index(ep)) & 0xff) );
++
++ if (count != max){
++ printk("count=%d max=%d\n", count, max);
++ count = max;
++ }
++ bytes = count;
++ while (count--)
++ *cp++ = (u8) __raw_readl(fifo);
++
++ return bytes;
++}
++
++static __inline__ void s3c_fifo_write(struct s3c_ep *ep,
++ unsigned char *cp, int count)
++{
++ u32 fifo = ep->fifo;
++ DEBUG_EP0("fifo_write: %d %d\n", ep_index(ep), count);
++ while (count--)
++ __raw_writel(*cp++, fifo);
++}
++
++static int read_fifo_ep0(struct s3c_ep *ep, struct s3c_request *req)
++{
++ u32 csr;
++ u8 *buf;
++ unsigned bufferspace, count, is_short;
++ u32 fifo = ep->fifo;
++
++ DEBUG_EP0("%s\n", __FUNCTION__);
++
++ csr = usb_read(S3C_UDC_EP0_CSR_REG, ep_index(ep));
++ if (!(csr & S3C_UDC_OCSR1_PKTRDY))
++ return 0;
++
++ buf = req->req.buf + req->req.actual;
++ prefetchw(buf);
++ bufferspace = req->req.length - req->req.actual;
++
++ /* read all bytes from this packet */
++ if (likely(csr & S3C_UDC_EP0_CSR_OPKRDY)) {
++ count = 8; // I do !!!
++ req->req.actual += min(count, bufferspace);
++ } else { // zlp
++ count = 0;
++ }
++
++ is_short = (count < ep->ep.maxpacket);
++ DEBUG_EP0("read %s %02x, %d bytes%s req %p %d/%d\n",
++ ep->ep.name, csr, count,
++ is_short ? "/S" : "", req, req->req.actual, req->req.length);
++
++ while (likely(count-- != 0)) {
++ u8 byte = (u8) __raw_readl(fifo);
++
++ if (unlikely(bufferspace == 0)) {
++ /* this happens when the driver's buffer
++ * is smaller than what the host sent.
++ * discard the extra data.
++ */
++ if (req->req.status != -EOVERFLOW)
++ DEBUG_EP0("%s overflow %d\n", ep->ep.name,
++ count);
++ req->req.status = -EOVERFLOW;
++ } else {
++ *buf++ = byte;
++ bufferspace--;
++ }
++ }
++
++ /* completion */
++ if (is_short || req->req.actual == req->req.length) {
++ return 1;
++ }
++
++ return 0;
++}
++
++/**
++ * udc_set_address - set the USB address for this device
++ * @address:
++ *
++ * Called from control endpoint function after it decodes a set address setup packet.
++ */
++static void udc_set_address(struct s3c_udc *dev, unsigned char address)
++{
++ DEBUG_EP0("%s: %d\n", __FUNCTION__, address);
++ dev->usb_address = address;
++ usb_set((1<<7) | (address & 0x7f), S3C_UDC_FUNC_ADDR_REG, 0);
++}
++
++/*
++ * DATA_STATE_RECV (OUT_PKT_RDY)
++ * - if error
++ * set S3C_UDC_EP0_CSR_SOPKTRDY | S3C_UDC_EP0_CSR_DE | S3C_UDC_EP0_CSR_SENDSTL bits
++ * - else
++ * set S3C_UDC_EP0_CSR_SOPKTRDY bit
++ if last set S3C_UDC_EP0_CSR_DE bit
++ */
++static int first_time = 1;
++
++static void s3c_ep0_read(struct s3c_udc *dev)
++{
++ struct s3c_request *req;
++ struct s3c_ep *ep = &dev->ep[0];
++ int ret;
++
++ if (!list_empty(&ep->queue))
++ req = list_entry(ep->queue.next, struct s3c_request, queue);
++ else
++ BUG(); //logic ensures -jassi
++
++ if(req->req.length == 0) {
++ usb_set((S3C_UDC_EP0_CSR_SOPKTRDY | S3C_UDC_EP0_CSR_DE),
++ S3C_UDC_EP0_CSR_REG, 0);
++ dev->ep0state = WAIT_FOR_SETUP;
++ first_time = 1;
++ done(ep, req, 0);
++ return;
++ }
++
++ if(!req->req.actual && first_time){ //for SetUp packet
++ usb_set(S3C_UDC_EP0_CSR_SOPKTRDY, S3C_UDC_EP0_CSR_REG, 0);
++ first_time = 0;
++ return;
++ }
++
++ ret = read_fifo_ep0(ep, req);
++ if (ret) {
++ usb_set((S3C_UDC_EP0_CSR_SOPKTRDY | S3C_UDC_EP0_CSR_DE),
++ S3C_UDC_EP0_CSR_REG, 0);
++ dev->ep0state = WAIT_FOR_SETUP;
++ first_time = 1;
++ done(ep, req, 0);
++ return;
++ }
++ usb_set(S3C_UDC_EP0_CSR_SOPKTRDY, S3C_UDC_EP0_CSR_REG, 0);
++}
++
++/*
++ * DATA_STATE_XMIT
++ */
++static int s3c_ep0_write(struct s3c_udc *dev)
++{
++ struct s3c_request *req;
++ struct s3c_ep *ep = &dev->ep[0];
++ int ret, need_zlp = 0;
++
++ DEBUG_EP0("%s: %x\n", __FUNCTION__);
++
++ if (list_empty(&ep->queue))
++ req = 0;
++ else
++ req = list_entry(ep->queue.next, struct s3c_request, queue);
++
++ if (!req) {
++ DEBUG_EP0("%s: NULL REQ\n", __FUNCTION__);
++ return 0;
++ }
++
++ if (req->req.length == 0) {
++ usb_set((S3C_UDC_EP0_CSR_IPKRDY | S3C_UDC_EP0_CSR_DE),
++ S3C_UDC_EP0_CSR_REG, 0);
++ dev->ep0state = WAIT_FOR_SETUP;
++ done(ep, req, 0);
++ return 1;
++ }
++
++ if (req->req.length - req->req.actual == EP0_FIFO_SIZE) {
++ /* Next write will end with the packet size, */
++ /* so we need Zero-length-packet */
++ need_zlp = 1;
++ }
++
++ ret = write_fifo_ep0(ep, req);
++
++ if ((ret == 1) && !need_zlp) {
++ /* Last packet */
++ DEBUG_EP0("%s: finished, waiting for status\n", __FUNCTION__);
++
++ usb_set((S3C_UDC_EP0_CSR_IPKRDY | S3C_UDC_EP0_CSR_DE),
++ S3C_UDC_EP0_CSR_REG, 0);
++ dev->ep0state = WAIT_FOR_SETUP;
++ } else {
++ DEBUG_EP0("%s: not finished\n", __FUNCTION__);
++ usb_set(S3C_UDC_EP0_CSR_IPKRDY, S3C_UDC_EP0_CSR_REG, 0);
++ }
++
++ if (need_zlp) {
++ DEBUG_EP0("%s: Need ZLP!\n", __FUNCTION__);
++ dev->ep0state = DATA_STATE_NEED_ZLP;
++ }
++
++ if(ret)
++ done(ep, req, 0);
++
++ return 1;
++}
++
++#if 0
++static int s3c_handle_get_status(struct s3c_udc *dev,
++ struct usb_ctrlrequest *ctrl)
++{
++ struct s3c_ep *ep0 = &dev->ep[0];
++ struct s3c_ep *qep;
++ int reqtype = (ctrl->bRequestType & USB_RECIP_MASK);
++ u16 val = 0;
++
++ if (reqtype == USB_RECIP_INTERFACE) {
++ /* This is not supported.
++ * And according to the USB spec, this one does nothing..
++ * Just return 0
++ */
++ DEBUG_SETUP("GET_STATUS: USB_RECIP_INTERFACE\n");
++ } else if (reqtype == USB_RECIP_DEVICE) {
++ DEBUG_SETUP("GET_STATUS: USB_RECIP_DEVICE\n");
++ val |= (1 << 0); /* Self powered */
++ /*val |= (1<<1); *//* Remote wakeup */
++ } else if (reqtype == USB_RECIP_ENDPOINT) {
++ int ep_num = (ctrl->wIndex & ~USB_DIR_IN);
++
++ DEBUG_SETUP
++ ("GET_STATUS: USB_RECIP_ENDPOINT (%d), ctrl->wLength = %d\n",
++ ep_num, ctrl->wLength);
++
++ if (ctrl->wLength > 2 || ep_num > 3)
++ return -EOPNOTSUPP;
++
++ qep = &dev->ep[ep_num];
++ if (ep_is_in(qep) != ((ctrl->wIndex & USB_DIR_IN) ? 1 : 0)
++ && ep_index(qep) != 0) {
++ return -EOPNOTSUPP;
++ }
++
++ /* Return status on next IN token */
++ switch (qep->ep_type) {
++ case ep_control:
++ val =
++ (usb_read(qep->csr1, ep_index(qep)) & S3C_UDC_EP0_CSR_SENDSTL) ==
++ S3C_UDC_EP0_CSR_SENDSTL;
++ break;
++ case ep_bulk_in:
++ case ep_interrupt:
++ val = (usb_read(qep->csr1, ep_index(qep))
++ & S3C_UDC_ICSR1_SENDSTL) == S3C_UDC_ICSR1_SENDSTL;
++ break;
++ case ep_bulk_out:
++ val = (usb_read(qep->csr1, ep_index(qep))
++ & S3C_UDC_OCSR1_SENDSTL) == S3C_UDC_OCSR1_SENDSTL;
++ break;
++ }
++
++ /* Back to EP0 index */
++
++ DEBUG_SETUP("GET_STATUS, ep: %d (%x), val = %d\n", ep_num,
++ ctrl->wIndex, val);
++ } else {
++ DEBUG_SETUP("Unknown REQ TYPE: %d\n", reqtype);
++ return -EOPNOTSUPP;
++ }
++
++ /* Clear "out packet ready" */
++ usb_set((S3C_UDC_EP0_CSR_SOPKTRDY), S3C_UDC_EP0_CSR_REG, 0);
++ /* Put status to FIFO */
++ s3c_fifo_write(ep0, (u8 *) & val, sizeof(val));
++ /* Issue "In packet ready" */
++ usb_set((S3C_UDC_EP0_CSR_IPKRDY | S3C_UDC_EP0_CSR_DE),
++ S3C_UDC_EP0_CSR_REG, 0);
++
++ return 0;
++}
++#endif
++
++/*
++ * WAIT_FOR_SETUP (OUT_PKT_RDY)
++ * - read data packet from EP0 FIFO
++ * - decode command
++ * - if error
++ * set S3C_UDC_EP0_CSR_SOPKTRDY | S3C_UDC_EP0_CSR_DE | S3C_UDC_EP0_CSR_SENDSTL bits
++ * - else
++ * set S3C_UDC_EP0_CSR_SOPKTRDY | S3C_UDC_EP0_CSR_DE bits
++ */
++static void s3c_ep0_setup(struct s3c_udc *dev, u32 csr)
++{
++ struct s3c_ep *ep = &dev->ep[0];
++ struct usb_ctrlrequest ctrl;
++ int i, bytes, is_in;
++
++ DEBUG_SETUP("%s: %x\n", __FUNCTION__, csr);
++
++ /* Nuke all previous transfers */
++ nuke(ep, -EPROTO);
++
++ /* read control req from fifo (8 bytes) */
++ bytes = s3c_fifo_read(ep, (unsigned char *)&ctrl, 8);
++ DEBUG_SETUP("Read CTRL REQ %d bytes\n", bytes);
++ DEBUG_SETUP("CTRL.bRequestType = 0x%x (is_in %d)\n", ctrl.bRequestType,
++ ctrl.bRequestType & USB_DIR_IN);
++ DEBUG_SETUP("CTRL.bRequest = 0x%x\n", ctrl.bRequest);
++ DEBUG_SETUP("CTRL.wLength = 0x%x\n", ctrl.wLength);
++ DEBUG_SETUP("CTRL.wValue = 0x%x (%d)\n", ctrl.wValue, ctrl.wValue >> 8);
++ DEBUG_SETUP("CTRL.wIndex = 0x%x\n", ctrl.wIndex);
++
++ /* Set direction of EP0 */
++ if (likely(ctrl.bRequestType & USB_DIR_IN)) {
++ ep->bEndpointAddress |= USB_DIR_IN;
++ is_in = 1;
++ } else {
++ ep->bEndpointAddress &= ~USB_DIR_IN;
++ is_in = 0;
++ }
++
++ dev->req_pending = 1;
++
++ /* Handle some SETUP packets ourselves */
++ switch (ctrl.bRequest) {
++ case USB_REQ_SET_ADDRESS:
++ if (ctrl.bRequestType != (USB_TYPE_STANDARD | USB_RECIP_DEVICE))
++ break;
++
++ DEBUG_SETUP("USB_REQ_SET_ADDRESS (%d)\n", ctrl.wValue);
++ udc_set_address(dev, ctrl.wValue);
++ usb_set((S3C_UDC_EP0_CSR_SOPKTRDY | S3C_UDC_EP0_CSR_DE), S3C_UDC_EP0_CSR_REG, 0);
++ return;
++#if 0
++ case USB_REQ_GET_STATUS:
++ DEBUG_SETUP("USB_REQ_GET_STATUS \n");
++ if (s3c_handle_get_status(dev, &ctrl) == 0)
++ return;
++#endif
++ default:
++ DEBUG_SETUP(" DFAULT\n");
++ break;
++ }
++
++ if (likely(dev->driver)) {
++ /* device-2-host (IN) or no data setup command, process immediately */
++ spin_unlock(&dev->lock);
++ i = dev->driver->setup(&dev->gadget, &ctrl);
++ spin_lock(&dev->lock);
++
++ if (i < 0) {
++ /* setup processing failed, force stall */
++ printk(" --> ERROR: gadget setup FAILED (stalling), \
++ setup returned %d\n", i);
++ usb_set((S3C_UDC_EP0_CSR_SOPKTRDY | S3C_UDC_EP0_CSR_DE
++ |S3C_UDC_EP0_CSR_SENDSTL), S3C_UDC_EP0_CSR_REG, 0);
++ /* ep->stopped = 1; */
++ dev->ep0state = WAIT_FOR_SETUP;
++ }
++ }
++}
++
++/*
++ * DATA_STATE_NEED_ZLP
++ */
++static void s3c_ep0_in_zlp(struct s3c_udc *dev, u32 csr)
++{
++ DEBUG_EP0("%s: %x\n", __FUNCTION__, csr);
++
++ usb_set((S3C_UDC_EP0_CSR_IPKRDY | S3C_UDC_EP0_CSR_DE),
++ S3C_UDC_EP0_CSR_REG, 0);
++ dev->ep0state = WAIT_FOR_SETUP;
++}
++
++/*
++ * handle ep0 interrupt
++ */
++static void s3c_handle_ep0(struct s3c_udc *dev)
++{
++ struct s3c_ep *ep = &dev->ep[0];
++ u32 csr;
++
++ csr = usb_read(S3C_UDC_EP0_CSR_REG, ep_index(ep));
++
++ DEBUG_EP0("%s: csr = %x\n", __FUNCTION__, csr);
++
++ /*
++ * if SENT_STALL is set
++ * - clear the SENT_STALL bit
++ */
++ if (csr & S3C_UDC_EP0_CSR_SENTSTL) {
++ printk("%s: S3C_UDC_EP0_CSR_SENTSTL is set: %x\n", __FUNCTION__, csr);
++ usb_write(0, S3C_UDC_EP0_CSR_REG, 0);
++ nuke(ep, -ECONNABORTED);
++ dev->ep0state = WAIT_FOR_SETUP;
++ return;
++ }
++
++ /*
++ * if SETUP_END is set
++ * - abort the last transfer
++ * - set SERVICED_SETUP_END_BIT
++ */
++ if (csr & S3C_UDC_EP0_CSR_SE) {
++ DEBUG_EP0("%s: S3C_UDC_EP0_CSR_SE is set: %x\n", __FUNCTION__, csr);
++
++ usb_clear(0xc0, S3C_UDC_EP0_CSR_REG, 0);
++ usb_set(S3C_UDC_EP0_CSR_SSE, S3C_UDC_EP0_CSR_REG, 0);
++
++ nuke(ep, 0);
++ dev->ep0state = WAIT_FOR_SETUP;
++ }
++
++ /*
++ * if a transfer is in progress && IN_PKT_RDY and OUT_PKT_RDY are clear
++ * - fill EP0 FIFO
++ * - if last packet
++ * - set IN_PKT_RDY | DATA_END
++ * - else
++ * set IN_PKT_RDY
++ */
++ if (!(csr & (S3C_UDC_EP0_CSR_IPKRDY | S3C_UDC_EP0_CSR_OPKRDY))) {
++ switch (dev->ep0state) {
++ case DATA_STATE_XMIT:
++ DEBUG_EP0("continue with DATA_STATE_XMIT\n");
++ s3c_ep0_write(dev);
++ return;
++ case DATA_STATE_NEED_ZLP:
++ DEBUG_EP0("continue with DATA_STATE_NEED_ZLP\n");
++ s3c_ep0_in_zlp(dev, csr);
++ return;
++ default:
++ /* Stall? */
++ DEBUG_EP0("Odd state!! state = %s\n",
++ state_names[dev->ep0state]);
++ dev->ep0state = WAIT_FOR_SETUP;
++ /* nuke(ep, 0); */
++ /* usb_set(S3C_UDC_EP0_CSR_SENDSTL, ep->csr1, ep_index(ep)); */
++ break;
++ }
++ }
++
++ /*
++ * if S3C_UDC_EP0_CSR_OPKRDY is set
++ * - read data packet from EP0 FIFO
++ * - decode command
++ * - if error
++ * set SERVICED_OUT_PKT_RDY | DATA_END bits | SEND_STALL
++ * - else
++ * set SERVICED_OUT_PKT_RDY | DATA_END bits
++ */
++ if (csr & S3C_UDC_EP0_CSR_OPKRDY) {
++ switch (dev->ep0state) {
++ case WAIT_FOR_SETUP:
++ DEBUG_EP0("WAIT_FOR_SETUP\n");
++ s3c_ep0_setup(dev, csr);
++ break;
++
++ case DATA_STATE_RECV:
++ DEBUG_EP0("DATA_STATE_RECV\n");
++ s3c_ep0_read(dev);
++ break;
++
++ default:
++ /* send stall? */
++ DEBUG_EP0("strange state!! 2. send stall? state = %d\n",
++ dev->ep0state);
++ break;
++ }
++ }
++}
++
++static void s3c_ep0_kick(struct s3c_udc *dev, struct s3c_ep *ep)
++{
++ if (ep_is_in(ep)) {
++ /* Clear "out packet ready" */
++ usb_set(S3C_UDC_EP0_CSR_SOPKTRDY, S3C_UDC_EP0_CSR_REG, 0);
++ udelay(5); // time to settle things down
++
++ dev->ep0state = DATA_STATE_XMIT;
++ s3c_ep0_write(dev);
++ } else {
++ dev->ep0state = DATA_STATE_RECV;
++ s3c_ep0_read(dev);
++ }
++}
++
++/* ---------------------------------------------------------------------------
++ * device-scoped parts of the api to the usb controller hardware
++ * ---------------------------------------------------------------------------
++ */
++
++static int s3c_udc_get_frame(struct usb_gadget *_gadget)
++{
++ u32 frame1 = usb_read(S3C_UDC_FRAME_NUM1_REG, 0);/* Least significant 8 bits */
++ u32 frame2 = usb_read(S3C_UDC_FRAME_NUM1_REG, 0);/* Most significant 3 bits */
++ DEBUG("%s, %p\n", __FUNCTION__, _gadget);
++ return ((frame2 & 0x07) << 8) | (frame1 & 0xff);
++}
++
++static int s3c_udc_wakeup(struct usb_gadget *_gadget)
++{
++ return -ENOTSUPP;
++}
++
++static const struct usb_gadget_ops s3c_udc_ops = {
++ .get_frame = s3c_udc_get_frame,
++ .wakeup = s3c_udc_wakeup,
++ /* current versions must always be self-powered */
++};
++
++static void nop_release(struct device *dev)
++{
++ DEBUG("%s %s\n", __FUNCTION__, dev->bus_id);
++}
++
++static struct s3c_udc memory = {
++ .usb_address = 0,
++
++ .gadget = {
++ .ops = &s3c_udc_ops,
++ .ep0 = &memory.ep[0].ep,
++ .name = driver_name,
++ .dev = {
++ .bus_id = "gadget",
++ .release = nop_release,
++ },
++ },
++
++ /* control endpoint */
++ .ep[0] = {
++ .ep = {
++ .name = ep0name,
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP0_FIFO_SIZE,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = 0,
++ .bmAttributes = 0,
++
++ .ep_type = ep_control,
++ .fifo = S3C_UDC_EP0_FIFO_REG,
++ .csr1 = S3C_UDC_EP0_CSR_REG,
++ .csr2 = S3C_UDC_EP0_CSR_REG,
++ },
++
++ /* first group of endpoints */
++ .ep[1] = {
++ .ep = {
++ .name = "ep1-bulk",
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP_FIFO_SIZE,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = 1,
++ .bmAttributes = USB_ENDPOINT_XFER_BULK,
++
++ .ep_type = ep_bulk_out,
++ .fifo = S3C_UDC_EP1_FIFO_REG,
++ .csr1 = S3C_UDC_OUT_CSR1_REG,
++ .csr2 = S3C_UDC_OUT_CSR2_REG,
++ },
++
++ .ep[2] = {
++ .ep = {
++ .name = "ep2-bulk",
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP_FIFO_SIZE,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = USB_DIR_IN | 2,
++ .bmAttributes = USB_ENDPOINT_XFER_BULK,
++
++ .ep_type = ep_bulk_in,
++ .fifo = S3C_UDC_EP2_FIFO_REG,
++ .csr1 = S3C_UDC_IN_CSR1_REG,
++ .csr2 = S3C_UDC_IN_CSR2_REG,
++ },
++
++ .ep[3] = { // Though NOT USED XXX
++ .ep = {
++ .name = "ep3-int",
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP_FIFO_SIZE,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = USB_DIR_IN | 3,
++ .bmAttributes = USB_ENDPOINT_XFER_INT,
++
++ .ep_type = ep_interrupt,
++ .fifo = S3C_UDC_EP3_FIFO_REG,
++ .csr1 = S3C_UDC_IN_CSR1_REG,
++ .csr2 = S3C_UDC_IN_CSR2_REG,
++ },
++ .ep[4] = { // Though NOT USED XXX
++ .ep = {
++ .name = "ep4-int",
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP_FIFO_SIZE,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = USB_DIR_IN | 4,
++ .bmAttributes = USB_ENDPOINT_XFER_INT,
++
++ .ep_type = ep_interrupt,
++ .fifo = S3C_UDC_EP4_FIFO_REG,
++ .csr1 = S3C_UDC_IN_CSR1_REG,
++ .csr2 = S3C_UDC_IN_CSR2_REG,
++ },
++};
++
++/*
++ * probe - binds to the platform device
++ */
++static int s3c_udc_probe(struct platform_device *pdev)
++{
++ struct s3c_udc *dev = &memory;
++ int retval;
++
++ DEBUG("%s: %p\n", __FUNCTION__, pdev);
++
++ GPIO_INIT;
++
++ spin_lock_init(&dev->lock);
++ dev->dev = &pdev;
++
++ device_initialize(&dev->gadget.dev);
++ dev->gadget.dev.parent = &pdev->dev;
++
++ //dev->gadget.is_dualspeed = 1; // Hack only
++ dev->gadget.is_otg = 0;
++ dev->gadget.is_a_peripheral = 0;
++ dev->gadget.b_hnp_enable = 0;
++ dev->gadget.a_hnp_support = 0;
++ dev->gadget.a_alt_hnp_support = 0;
++
++ the_controller = dev;
++ platform_set_drvdata(pdev, dev);
++
++ udc_reinit(dev);
++
++ local_irq_disable();
++
++ /* irq setup after old hardware state is cleaned up */
++ retval =
++ request_irq(IRQ_USBD, s3c_udc_irq, SA_INTERRUPT, driver_name,
++ dev);
++ if (retval != 0) {
++ DEBUG(KERN_ERR "%s: can't get irq %i, err %d\n", driver_name,
++ IRQ_USBD, retval);
++ return -EBUSY;
++ }
++
++ disable_irq(IRQ_USBD);
++
++ udc_enable(dev);
++ reconfig_usbd();
++
++ local_irq_enable();
++ create_proc_files();
++
++ return retval;
++}
++
++static int s3c_udc_remove(struct platform_device *pdev)
++{
++ struct s3c_udc *dev = platform_get_drvdata(pdev);
++
++ DEBUG("%s: %p\n", __FUNCTION__, pdev);
++
++ udc_disable(dev);
++ remove_proc_files();
++ usb_gadget_unregister_driver(dev->driver);
++
++ free_irq(IRQ_USBD, dev);
++
++ platform_set_drvdata(pdev, 0);
++
++ the_controller = 0;
++
++ return 0;
++}
++
++/*-------------------------------------------------------------------------*/
++
++static struct platform_driver s3c_udc_driver = {
++ .probe = s3c_udc_probe,
++ .remove = s3c_udc_remove,
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "s3c-udc",
++ },
++};
++
++
++static int __init s3c_udc_init(void)
++{
++ int ret;
++
++ ret = platform_driver_register(&s3c_udc_driver);
++ if(!ret)
++ printk("Loaded %s version %s\n", driver_name, DRIVER_VERSION);
++
++ return ret;
++}
++
++static void __exit s3c_udc_exit(void)
++{
++ platform_driver_unregister(&s3c_udc_driver);
++ printk("Unloaded %s version %s\n", driver_name, DRIVER_VERSION);
++}
++
++module_init(s3c_udc_init);
++module_exit(s3c_udc_exit);
++
++MODULE_DESCRIPTION(DRIVER_DESC);
++MODULE_AUTHOR("Samsung");
++MODULE_LICENSE("GPL");
++
+diff --git a/drivers/usb/gadget/s3c-udc-hs.c b/drivers/usb/gadget/s3c-udc-hs.c
+new file mode 100644
+index 0000000..839b392
+--- /dev/null
++++ b/drivers/usb/gadget/s3c-udc-hs.c
+@@ -0,0 +1,1959 @@
++/*
++ * drivers/usb/gadget/s3c-udc-hs.c
++ * Samsung S3C on-chip full/high speed USB device controllers
++ *
++ * $Id: s3c-udc-hs.c,v 1.2 2008/03/05 02:14:45 ihlee215 Exp $*
++ *
++ * Copyright (C) 2006 for Samsung Electronics
++ *
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ */
++
++#include <linux/platform_device.h>
++#include <linux/clk.h>
++#include <asm/irq.h>
++#include <asm/arch/regs-irq.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-s3c2443-clock.h>
++#include <asm/arch/regs-udc-hs.h>
++#include "s3c-udc.h"
++
++#undef DEBUG_S3C_UDC_SETUP
++#undef DEBUG_S3C_UDC_EP0
++#undef DEBUG_S3C_UDC
++
++// USB Device DMA support
++#define RX_DMA_MODE 0
++#define TX_DMA_MODE 0
++static int tx_dmaStart = 0;
++static int rx_dmaStart = 0;
++
++
++#ifdef DEBUG_S3C_UDC_SETUP
++static char *state_names[] = {
++ "WAIT_FOR_SETUP",
++ "DATA_STATE_XMIT",
++ "DATA_STATE_NEED_ZLP",
++ "WAIT_FOR_OUT_STATUS",
++ "DATA_STATE_RECV"
++ };
++#define DEBUG_SETUP(fmt,args...) printk(fmt, ##args)
++#else
++#define DEBUG_SETUP(fmt,args...) do {} while(0)
++#endif
++
++#ifdef DEBUG_S3C_UDC_EP0
++#define DEBUG_EP0(fmt,args...) printk(fmt, ##args)
++#else
++#define DEBUG_EP0(fmt,args...) do {} while(0)
++#endif
++
++#ifdef DEBUG_S3C_UDC
++#define DEBUG(fmt,args...) printk(fmt, ##args)
++#else
++#define DEBUG(fmt,args...) do {} while(0)
++#endif
++
++#define DRIVER_DESC "Samsung Dual-speed USB Device Controller"
++#define DRIVER_VERSION __DATE__
++
++struct s3c_udc *the_controller;
++
++static const char driver_name[] = "s3c-udc";
++static const char driver_desc[] = DRIVER_DESC;
++static const char ep0name[] = "ep0-control";
++
++// Max packet size
++static u32 ep0_fifo_size = 64;
++static u32 ep_fifo_size = 512;
++static u32 ep_fifo_size2 = 1024;
++
++/*
++ Local declarations.
++*/
++static int s3c_ep_enable(struct usb_ep *ep,
++ const struct usb_endpoint_descriptor *);
++static int s3c_ep_disable(struct usb_ep *ep);
++static struct usb_request *s3c_alloc_request(struct usb_ep *ep, gfp_t gfp_flags);
++static void s3c_free_request(struct usb_ep *ep, struct usb_request *);
++
++static int s3c_queue(struct usb_ep *ep, struct usb_request *, gfp_t gfp_flags);
++static int s3c_dequeue(struct usb_ep *ep, struct usb_request *);
++static int s3c_set_halt(struct usb_ep *ep, int);
++static int s3c_fifo_status(struct usb_ep *ep);
++static void s3c_fifo_flush(struct usb_ep *ep);
++static void s3c_ep0_kick(struct s3c_udc *dev, struct s3c_ep *ep);
++static void s3c_handle_ep0(struct s3c_udc *dev);
++
++static void done(struct s3c_ep *ep, struct s3c_request *req,
++ int status);
++static void stop_activity(struct s3c_udc *dev,
++ struct usb_gadget_driver *driver);
++static int udc_enable(struct s3c_udc *dev);
++static void udc_set_address(struct s3c_udc *dev, unsigned char address);
++static void reconfig_usbd(void);
++
++static __inline__ u32 usb_read(u32 port, u8 ind)
++{
++ __raw_writel(ind, S3C_UDC_INDEX_REG);
++ return __raw_readl(port);
++}
++
++static __inline__ void usb_write(u32 val, u32 port, u8 ind)
++{
++ __raw_writel(ind, S3C_UDC_INDEX_REG);
++ __raw_writel(val, port);
++}
++
++static __inline__ void usb_set(u32 val, u32 port, u8 ind)
++{
++ __raw_writel(ind, S3C_UDC_INDEX_REG);
++ __raw_writel(__raw_readl(port) | val, port);
++}
++
++static __inline__ void usb_clear(u32 val, u32 port, u8 ind)
++{
++ __raw_writel(ind, S3C_UDC_INDEX_REG);
++ __raw_writel(__raw_readl(port) & ~val, port);
++}
++
++static struct usb_ep_ops s3c_ep_ops = {
++ .enable = s3c_ep_enable,
++ .disable = s3c_ep_disable,
++
++ .alloc_request = s3c_alloc_request,
++ .free_request = s3c_free_request,
++
++ .queue = s3c_queue,
++ .dequeue = s3c_dequeue,
++
++ .set_halt = s3c_set_halt,
++ .fifo_status = s3c_fifo_status,
++ .fifo_flush = s3c_fifo_flush,
++};
++
++
++/* Inline code */
++static __inline__ int write_packet(struct s3c_ep *ep,
++ struct s3c_request *req, int max)
++{
++ u16 *buf;
++ int length, count;
++ u32 fifo = ep->fifo;
++
++ buf = req->req.buf + req->req.actual;
++ prefetch(buf);
++
++ length = req->req.length - req->req.actual;
++ length = min(length, max);
++ req->req.actual += length;
++
++ DEBUG("%s: Write %d (max %d), fifo=0x%x\n",
++ __FUNCTION__, length, max, fifo);
++
++ usb_write(length, (u32) S3C_UDC_BYTE_WRITE_CNT_REG, ep_index(ep));
++
++
++ for (count=0;count<length;count+=2) {
++ __raw_writel(*buf++, fifo);
++ }
++
++ return length;
++}
++
++#ifdef CONFIG_USB_GADGET_DEBUG_FILES
++
++static const char proc_node_name[] = "driver/udc";
++
++static int
++udc_proc_read(char *page, char **start, off_t off, int count,
++ int *eof, void *_dev)
++{
++ char *buf = page;
++ struct s3c_udc *dev = _dev;
++ char *next = buf;
++ unsigned size = count;
++ unsigned long flags;
++ int t;
++
++ if (off != 0)
++ return 0;
++
++ local_irq_save(flags);
++
++ /* basic device status */
++ t = scnprintf(next, size,
++ DRIVER_DESC "\n"
++ "%s version: %s\n"
++ "Gadget driver: %s\n"
++ "\n",
++ driver_name, DRIVER_VERSION,
++ dev->driver ? dev->driver->driver.name : "(none)");
++ size -= t;
++ next += t;
++
++ local_irq_restore(flags);
++ *eof = 1;
++ return count - size;
++}
++
++#define create_proc_files() \
++ create_proc_read_entry(proc_node_name, 0, NULL, udc_proc_read, dev)
++#define remove_proc_files() \
++ remove_proc_entry(proc_node_name, NULL)
++
++#else /* !CONFIG_USB_GADGET_DEBUG_FILES */
++
++#define create_proc_files() do {} while (0)
++#define remove_proc_files() do {} while (0)
++
++#endif /* CONFIG_USB_GADGET_DEBUG_FILES */
++
++/*
++ * udc_disable - disable USB device controller
++ */
++static void udc_disable(struct s3c_udc *dev)
++{
++ DEBUG_SETUP("%s: %p\n", __FUNCTION__, dev);
++
++ udc_set_address(dev, 0);
++
++ dev->ep0state = WAIT_FOR_SETUP;
++ dev->gadget.speed = USB_SPEED_UNKNOWN;
++ dev->usb_address = 0;
++ __raw_writel(__raw_readl(S3C_PWRCFG)&~(1<<4), S3C_PWRCFG);
++}
++
++/*
++ * udc_reinit - initialize software state
++ */
++static void udc_reinit(struct s3c_udc *dev)
++{
++ u32 i;
++
++ DEBUG_SETUP("%s: %p\n", __FUNCTION__, dev);
++
++ /* device/ep0 records init */
++ INIT_LIST_HEAD(&dev->gadget.ep_list);
++ INIT_LIST_HEAD(&dev->gadget.ep0->ep_list);
++ dev->ep0state = WAIT_FOR_SETUP;
++
++ /* basic endpoint records init */
++ for (i = 0; i < S3C_MAX_ENDPOINTS; i++) {
++ struct s3c_ep *ep = &dev->ep[i];
++
++ if (i != 0)
++ list_add_tail(&ep->ep.ep_list, &dev->gadget.ep_list);
++
++ ep->desc = 0;
++ ep->stopped = 0;
++ INIT_LIST_HEAD(&ep->queue);
++ ep->pio_irqs = 0;
++ }
++
++ /* the rest was statically initialized, and is read-only */
++}
++
++#define BYTES2MAXP(x) (x / 8)
++#define MAXP2BYTES(x) (x * 8)
++
++/* until it's enabled, this UDC should be completely invisible
++ * to any USB host.
++ */
++static int udc_enable(struct s3c_udc *dev)
++{
++ DEBUG_SETUP("%s: %p\n", __FUNCTION__, dev);
++
++ /* if reset by sleep wakeup, control the retention I/O cell */
++ if (__raw_readl(S3C_RSTSTAT) & 0x8)
++ __raw_writel(__raw_readl(S3C_RSTCON)|(1<<16), S3C_RSTCON);
++
++
++ /* USB Port is Normal mode */
++ __raw_writel(__raw_readl(S3C2410_MISCCR)&~(1<<12), S3C2410_MISCCR);
++
++ /* PHY power enable */
++ __raw_writel(__raw_readl(S3C_PWRCFG)|(1<<4), S3C_PWRCFG);
++
++ /* USB device 2.0 must reset like bellow,
++ * 1st phy reset and after at least 10us, func_reset & host reset
++ * phy reset can reset bellow registers.
++ */
++ /* PHY 2.0 S/W reset */
++ __raw_writel((0<<2)|(0<<1)|(1<<0), S3C_URSTCON);
++ udelay(20); /* phy reset must be asserted for at 10us */
++
++ /*Function 2.0, Host 1.1 S/W reset*/
++ __raw_writel((1<<2)|(1<<1)|(0<<0), S3C_URSTCON);
++ __raw_writel((0<<2)|(0<<1)|(0<<0), S3C_URSTCON);
++
++ /* 48Mhz,Crystal,External X-tal,device */
++ __raw_writel((0<<3)|(0<<2)|(1<<1)|(0<<0), S3C_PHYCTRL);
++
++ /* 48Mhz clock on ,PHY2.0 analog block power on
++ * XO block power on,XO block power in suspend mode,
++ * PHY 2.0 Pll power on ,suspend signal for save mode disable
++ */
++ __raw_writel((1<<31)|(0<<4)|(0<<3)|(0<<2)|(0<<1)|(0<<0), S3C_PHYPWR);
++
++ /* D+ pull up disable(VBUS detect), USB2.0 Function clock Enable,
++ * USB1.1 HOST disable, USB2.0 PHY test enable
++ */
++ __raw_writel((0<<31)|(1<<2)|(0<<1)|(1<<0), S3C_UCLKCON);
++
++ __raw_writel(IRQ_USBD, S3C2410_INTPND);
++ __raw_writel(IRQ_USBD, S3C2410_SRCPND);
++
++ reconfig_usbd();
++
++ __raw_writel(__raw_readl(S3C2410_INTMSK)&~(IRQ_USBD), S3C2410_INTMSK);
++
++ /* D+ pull up , USB2.0 Function clock Enable,
++ * USB1.1 HOST disable,USB2.0 PHY test enable
++ */
++ __raw_writel((1<<31)|(1<<2)|(0<<1)|(1<<0), S3C_UCLKCON);
++
++ DEBUG_SETUP("S3C2443 USB Controller Core Initialized\n");
++
++ dev->gadget.speed = USB_SPEED_UNKNOWN;
++
++ return 0;
++}
++
++/*
++ Register entry point for the peripheral controller driver.
++*/
++int usb_gadget_register_driver(struct usb_gadget_driver *driver)
++{
++ struct s3c_udc *dev = the_controller;
++ int retval;
++
++ DEBUG_SETUP("%s: %s\n", __FUNCTION__, driver->driver.name);
++
++ if (!driver
++ || (driver->speed != USB_SPEED_FULL && driver->speed != USB_SPEED_HIGH)
++ || !driver->bind
++ || !driver->unbind || !driver->disconnect || !driver->setup)
++ return -EINVAL;
++ if (!dev)
++ return -ENODEV;
++ if (dev->driver)
++ return -EBUSY;
++
++ /* first hook up the driver ... */
++ dev->driver = driver;
++ dev->gadget.dev.driver = &driver->driver;
++ retval = device_add(&dev->gadget.dev);
++
++ if(retval) { /* TODO */
++ printk("target device_add failed, error %d\n", retval);
++ return retval;
++ }
++
++ retval = driver->bind(&dev->gadget);
++ if (retval) {
++ printk("%s: bind to driver %s --> error %d\n", dev->gadget.name,
++ driver->driver.name, retval);
++ device_del(&dev->gadget.dev);
++
++ dev->driver = 0;
++ dev->gadget.dev.driver = 0;
++ return retval;
++ }
++
++ enable_irq(IRQ_USBD);
++
++ printk("Registered gadget driver '%s'\n", driver->driver.name);
++ udc_enable(dev);
++
++ return 0;
++}
++
++EXPORT_SYMBOL(usb_gadget_register_driver);
++
++/*
++ Unregister entry point for the peripheral controller driver.
++*/
++int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
++{
++ struct s3c_udc *dev = the_controller;
++ unsigned long flags;
++
++ if (!dev)
++ return -ENODEV;
++ if (!driver || driver != dev->driver)
++ return -EINVAL;
++
++ spin_lock_irqsave(&dev->lock, flags);
++ dev->driver = 0;
++ stop_activity(dev, driver);
++ spin_unlock_irqrestore(&dev->lock, flags);
++
++ driver->unbind(&dev->gadget);
++ device_del(&dev->gadget.dev);
++
++ disable_irq(IRQ_USBD);
++
++ printk("Unregistered gadget driver '%s'\n", driver->driver.name);
++ return 0;
++}
++
++EXPORT_SYMBOL(usb_gadget_unregister_driver);
++
++/*-------------------------------------------------------------------------*/
++
++/** Write request to FIFO (max write == maxp size)
++ * Return: 0 = still running, 1 = completed, negative = errno
++ */
++static int write_fifo(struct s3c_ep *ep, struct s3c_request *req)
++{
++ u32 max;
++ unsigned count;
++ int is_last = 0, is_short = 0;
++
++#if TX_DMA_MODE
++ if(tx_dmaStart) return 0;
++ if ((req->req.actual == 0) && (req->req.length > ep->ep.maxpacket) && (!tx_dmaStart)) {
++
++ DEBUG("TX_DMA_Start:: %s: read %s, bytes req %p %d/%d\n",
++ __FUNCTION__, ep->ep.name, req, req->req.actual, req->req.length);
++
++ usb_set(S3C_DMA_ENABLE,
++ (u32) S3C_UDC_FCON_REG, ep_index(ep));
++
++ usb_write(ep->ep.maxpacket, (u32) S3C_UDC_MAXP_REG, ep_index(ep));
++ usb_write(ep->ep.maxpacket, (u32) S3C_UDC_BYTE_WRITE_CNT_REG, ep_index(ep));
++
++ usb_set((u16)req->req.length,
++ (u32) S3C_UDC_DMA_TOTAL_CNT1_REG, ep_index(ep));
++
++ usb_set((u16)((req->req.length)>>16),
++ (u32) S3C_UDC_DMA_TOTAL_CNT2_REG, ep_index(ep));
++
++ usb_set(virt_to_phys(req->req.buf),
++ (u32) S3C_UDC_DMA_MEM_BASE_ADDR_REG, ep_index(ep));
++
++ usb_set(ep->ep.maxpacket,
++ (u32) S3C_UDC_DMA_CNT_REG, ep_index(ep));
++
++ usb_set(ep->ep.maxpacket,
++ (u32) S3C_UDC_DMA_FIFO_CNT_REG, ep_index(ep));
++
++ usb_set(S3C_MAX_BURST_INCR16,
++ (u32) S3C_UDC_DMA_IF_CON_REG, ep_index(ep));
++
++ usb_set(S3C_DMA_FLY_ENABLE|S3C_DMA_TX_START|S3C_USB_DMA_MODE,
++ (u32) S3C_UDC_DMA_CON_REG, ep_index(ep));
++ tx_dmaStart = 1;
++
++ udelay(600);
++
++ }
++ else {
++#endif
++ max = le16_to_cpu(ep->desc->wMaxPacketSize);
++ count = write_packet(ep, req, max);
++
++ /* last packet is usually short (or a zlp) */
++ if (unlikely(count != max))
++ is_last = is_short = 1;
++ else {
++ if (likely(req->req.length != req->req.actual)
++ || req->req.zero)
++ is_last = 0;
++ else
++ is_last = 1;
++ /* interrupt/iso maxpacket may not fill the fifo */
++ is_short = unlikely(max < ep_maxpacket(ep));
++ }
++
++ DEBUG("%s: wrote %s %d bytes%s%s req %p %d/%d\n", __FUNCTION__,
++ ep->ep.name, count,
++ is_last ? "/L" : "", is_short ? "/S" : "",
++ req, req->req.actual, req->req.length);
++
++#if TX_DMA_MODE
++ }
++#endif
++
++ /* requests complete when all IN data is in the FIFO */
++ if (is_last) {
++ if(!ep_index(ep)){
++ DEBUG("%s: --> Error EP0 must not come here!\n",
++ __FUNCTION__);
++ BUG();
++ }
++ done(ep, req, 0);
++ return 1;
++ }
++
++ return 0;
++}
++
++
++
++/** Read to request from FIFO (max read == bytes in fifo)
++ * Return: 0 = still running, 1 = completed, negative = errno
++ */
++static int read_fifo(struct s3c_ep *ep, struct s3c_request *req)
++{
++ u32 csr;
++ u16 *buf;
++ unsigned bufferspace, count, count_bytes, is_short = 0;
++ u32 fifo = ep->fifo;
++
++ csr = usb_read( (u32) S3C_UDC_EP_STATUS_REG, ep_index(ep));
++
++ /* make sure there's a packet in the FIFO. */
++ if (!(csr & S3C_UDC_EP_RX_SUCCESS)) {
++ DEBUG("%s: Packet NOT ready!\n", __FUNCTION__);
++ return -EINVAL;
++ }
++
++ buf = req->req.buf + req->req.actual;
++ prefetchw(buf);
++ bufferspace = req->req.length - req->req.actual;
++
++ /* read all bytes from this packet */
++ count = usb_read((u32) S3C_UDC_BYTE_READ_CNT_REG, ep_index(ep));
++ if (csr & S3C_UDC_EP_LWO)
++ count_bytes = count * 2 -1;
++ else
++ count_bytes = count * 2;
++
++
++#if RX_DMA_MODE
++ if(rx_dmaStart) return 0;
++
++ if ((req->req.actual == 0) && (req->req.length > ep->ep.maxpacket) && (!rx_dmaStart)) {
++
++ DEBUG("RX_DMA_Start :: %s: read %s, %d bytes req %p %d/%d CSR::0x%x\n",
++ __FUNCTION__, ep->ep.name, count_bytes, req, req->req.actual, req->req.length, csr);
++
++
++ usb_set(S3C_DMA_ENABLE,
++ (u32) S3C_UDC_FCON_REG, ep_index(ep));
++
++ usb_set((u16)req->req.length,
++ (u32) S3C_UDC_DMA_TOTAL_CNT1_REG, ep_index(ep));
++
++ usb_set((u16)((req->req.length)>>16),
++ (u32) S3C_UDC_DMA_TOTAL_CNT2_REG, ep_index(ep));
++
++ usb_set(ep->ep.maxpacket,
++ (u32) S3C_UDC_DMA_CNT_REG, ep_index(ep));
++ //usb_set(512,
++ //(u32) S3C_UDC_DMA_FIFO_CNT_REG, ep_index(ep));
++
++ usb_set(S3C_MAX_BURST_INCR16,
++ (u32) S3C_UDC_DMA_IF_CON_REG, ep_index(ep));
++
++ usb_set(virt_to_phys(buf),
++ (u32) S3C_UDC_DMA_MEM_BASE_ADDR_REG, ep_index(ep));
++
++ usb_set(S3C_DMA_FLY_ENABLE|S3C_DMA_RX_START|S3C_USB_DMA_MODE,
++ (u32) S3C_UDC_DMA_CON_REG, ep_index(ep));
++ rx_dmaStart = 1;
++
++
++ }
++ else {
++#endif
++ req->req.actual += min(count_bytes, bufferspace);
++
++ is_short = (count_bytes < ep->ep.maxpacket);
++ DEBUG("%s: read %s, %d bytes%s req %p %d/%d\n",
++ __FUNCTION__,
++ ep->ep.name, count_bytes,
++ is_short ? "/S" : "", req, req->req.actual, req->req.length);
++
++ while (likely(count-- != 0)) {
++ u16 byte = (u16) __raw_readl(fifo);
++
++ if (unlikely(bufferspace == 0)) {
++ /* this happens when the driver's buffer
++ * is smaller than what the host sent.
++ * discard the extra data.
++ */
++ if (req->req.status != -EOVERFLOW)
++ printk("%s overflow %d\n", ep->ep.name, count);
++ req->req.status = -EOVERFLOW;
++ } else {
++ *buf++ = byte;
++ bufferspace--;
++ }
++ }
++
++#if RX_DMA_MODE
++ }
++#endif
++
++ /* completion */
++ if (is_short || req->req.actual == req->req.length) {
++ done(ep, req, 0);
++ return 1;
++ }
++
++ /* finished that packet. the next one may be waiting... */
++ return 0;
++}
++
++/*
++ * done - retire a request; caller blocked irqs
++ */
++static void done(struct s3c_ep *ep, struct s3c_request *req, int status)
++{
++ unsigned int stopped = ep->stopped;
++
++ DEBUG("%s: %p\n", __FUNCTION__, ep);
++ list_del_init(&req->queue);
++
++ if (likely(req->req.status == -EINPROGRESS))
++ req->req.status = status;
++ else
++ status = req->req.status;
++
++ if (status && status != -ESHUTDOWN)
++ DEBUG("complete %s req %p stat %d len %u/%u\n",
++ ep->ep.name, &req->req, status,
++ req->req.actual, req->req.length);
++
++ /* don't modify queue heads during completion callback */
++ ep->stopped = 1;
++
++ spin_unlock(&ep->dev->lock);
++ req->req.complete(&ep->ep, &req->req);
++ spin_lock(&ep->dev->lock);
++
++ ep->stopped = stopped;
++}
++
++/*
++ * nuke - dequeue ALL requests
++ */
++void nuke(struct s3c_ep *ep, int status)
++{
++ struct s3c_request *req;
++
++ DEBUG("%s: %p\n", __FUNCTION__, ep);
++
++ /* called with irqs blocked */
++ while (!list_empty(&ep->queue)) {
++ req = list_entry(ep->queue.next, struct s3c_request, queue);
++ done(ep, req, status);
++ }
++}
++
++/**
++ * s3c_in_epn - handle IN interrupt
++ */
++static void s3c_in_epn(struct s3c_udc *dev, u32 ep_idx)
++{
++ u32 csr;
++ struct s3c_ep *ep = &dev->ep[ep_idx];
++ struct s3c_request *req;
++
++ csr = usb_read((u32) S3C_UDC_EP_STATUS_REG, ep_idx);
++ DEBUG("%s: S3C_UDC_EP%d_STATUS_REG=0x%x\n", __FUNCTION__, ep_idx, csr);
++
++ if (csr & S3C_UDC_EP_STALL) {
++ DEBUG("%s: S3C_UDC_EP_STALL\n", __FUNCTION__);
++ usb_set(S3C_UDC_EP_STALL, (u32) S3C_UDC_EP_STATUS_REG, ep_idx);
++ return;
++ }
++
++ if (!ep->desc) {
++ DEBUG("%s: NO EP DESC\n", __FUNCTION__);
++ return;
++ }
++
++
++ if (csr & S3C_UDC_EP_DTCZ) {
++ DEBUG("%s: TX_DMA :: DMA Total Count Zero:: S3C_UDC_EP%d_STATUS_REG=0x%x\n",
++ __FUNCTION__, ep_index(ep), csr);
++
++ tx_dmaStart = 0;
++ usb_set(S3C_DMA_DISABLE,
++ (u32) S3C_UDC_FCON_REG, ep_idx);
++
++ usb_set(S3C_DMA_TX_STOP|S3C_USB_INT_MODE,
++ (u32) S3C_UDC_DMA_CON_REG, ep_idx);
++
++ usb_set(S3C_UDC_EP_DTCZ, (u32) S3C_UDC_EP_STATUS_REG, ep_idx);
++
++
++ if (list_empty(&ep->queue))
++ req = 0;
++ else
++ req = list_entry(ep->queue.next,
++ struct s3c_request, queue);
++ if (unlikely(!req)) {
++ DEBUG("%s: TX_DMA :: NULL REQ\n", __FUNCTION__, ep_idx, req);
++ //return;
++ } else {
++ DEBUG("%s: TX_DMA_DONE - REQ is %p (%d/%d) CSR:0x%x\n", __FUNCTION__, req, req->req.actual, req->req.length, csr);
++ req->req.actual = req->req.length;
++ done(ep, req, 0);
++ }
++
++ }
++
++
++ if (csr & S3C_UDC_EP_TX_SUCCESS) {
++ usb_set(S3C_UDC_EP_TX_SUCCESS,
++ (u32) S3C_UDC_EP_STATUS_REG, ep_idx);
++
++ if (list_empty(&ep->queue))
++ req = 0;
++ else
++ req = list_entry(ep->queue.next, struct s3c_request, queue);
++
++ if (unlikely(!req)) {
++ DEBUG("%s:NULL REQ :: EP_TX_SUCCESS, req = %p CSR:0x%x\n", __FUNCTION__, req, csr);
++ return;
++ }
++ else {
++ DEBUG("%s: EP_TX_SUCCESS, req = %p CSR:0x%x\n", __FUNCTION__, req, csr);
++ if ((write_fifo(ep, req)==0) && (csr & S3C_UDC_EP_PSIF_TWO))
++ write_fifo(ep, req);
++
++ }
++ }
++
++}
++
++/* ********************************************************************************************* */
++/* Bulk OUT (recv)
++ */
++
++static void s3c_out_epn(struct s3c_udc *dev, u32 ep_idx)
++{
++ struct s3c_ep *ep = &dev->ep[ep_idx];
++ struct s3c_request *req;
++ u32 csr;
++
++ csr=usb_read((u32) S3C_UDC_EP_STATUS_REG, ep_index(ep));
++ DEBUG("%s: S3C_UDC_EP%d_STATUS_REG=0x%x\n",
++ __FUNCTION__, ep_index(ep), csr);
++
++ if (unlikely(!(ep->desc))) {
++ /* Throw packet away.. */
++ printk("%s: No descriptor?!?\n", __FUNCTION__);
++ return;
++ }
++
++ if (csr & S3C_UDC_EP_STALL) {
++ DEBUG("%s: stall sent\n", __FUNCTION__);
++ usb_set(S3C_UDC_EP_STALL, (u32) S3C_UDC_EP_STATUS_REG, ep_idx);
++ return;
++ }
++
++ if (csr & S3C_UDC_EP_FIFO_FLUSH) {
++ DEBUG("%s: fifo flush \n", __FUNCTION__);
++ usb_set(S3C_UDC_EP_FIFO_FLUSH, (u32) S3C_UDC_EP_CON_REG, ep_idx);
++ return;
++ }
++
++
++ if (csr & S3C_UDC_EP_DTCZ) {
++ DEBUG("%s: DMA Total Count Zero:: S3C_UDC_EP%d_STATUS_REG=0x%x\n",
++ __FUNCTION__, ep_index(ep), csr);
++
++ rx_dmaStart = 0;
++ usb_set(S3C_DMA_DISABLE,
++ (u32) S3C_UDC_FCON_REG, ep_idx);
++
++ usb_set(S3C_DMA_RX_STOP|S3C_USB_INT_MODE,
++ (u32) S3C_UDC_DMA_CON_REG, ep_idx);
++
++ usb_set(S3C_UDC_EP_DTCZ, (u32) S3C_UDC_EP_STATUS_REG, ep_idx);
++
++ if (list_empty(&ep->queue))
++ req = 0;
++ else
++ req = list_entry(ep->queue.next,
++ struct s3c_request, queue);
++ if (unlikely(!req)) {
++ DEBUG("RX_DMA :: %s: NULL REQ\n", __FUNCTION__, ep_idx, req);
++ } else {
++ DEBUG("%s : RX_DMA_DONE - REQ : %p\n", __FUNCTION__, req);
++ req->req.actual = req->req.length;
++ done(ep, req, 0);
++ }
++ }
++
++
++ if (csr & S3C_UDC_EP_RX_SUCCESS) {
++ if(!rx_dmaStart) {
++ if (list_empty(&ep->queue))
++ req = 0;
++ else
++ req = list_entry(ep->queue.next,
++ struct s3c_request, queue);
++
++ if (unlikely(!req)) {
++ DEBUG("%s: NULL REQ on ISR %d\n", __FUNCTION__, ep_idx);
++ return;
++ } else {
++ if(((read_fifo(ep, req))==0) && (csr & S3C_UDC_EP_PSIF_TWO))
++ read_fifo(ep, req);
++ }
++ }
++ }
++
++}
++
++static void stop_activity(struct s3c_udc *dev,
++ struct usb_gadget_driver *driver)
++{
++ int i;
++
++ /* don't disconnect drivers more than once */
++ if (dev->gadget.speed == USB_SPEED_UNKNOWN)
++ driver = 0;
++ dev->gadget.speed = USB_SPEED_UNKNOWN;
++
++ /* prevent new request submissions, kill any outstanding requests */
++ for (i = 0; i < S3C_MAX_ENDPOINTS; i++) {
++ struct s3c_ep *ep = &dev->ep[i];
++ ep->stopped = 1;
++ nuke(ep, -ESHUTDOWN);
++ }
++
++ /* report disconnect; the driver is already quiesced */
++ if (driver) {
++ spin_unlock(&dev->lock);
++ driver->disconnect(&dev->gadget);
++ spin_lock(&dev->lock);
++ }
++
++ /* re-init driver-visible data structures */
++ udc_reinit(dev);
++}
++
++static void reconfig_usbd(void)
++{
++ __raw_writel(0x04, S3C_UDC_EP_DIR_REG); /* EP1:OUT, EP2:IN */
++
++ /* EP0~2 Interrupt enable */
++ __raw_writel(0x7, S3C_UDC_EP_INT_EN_REG);
++
++ __raw_writel(0x0000, S3C_UDC_TEST_REG);
++
++ /* error interrupt enable, 16bit bus, Little format,
++ * suspend&reset enable
++ */
++ __raw_writel(S3C_UDC_DTZIEN_EN|S3C_UDC_RRD_EN
++ |S3C_UDC_SUS_EN|S3C_UDC_RST_EN,
++ S3C_UDC_SYS_CON_REG);
++
++ __raw_writel(0x0000, S3C_UDC_EP0_CON_REG);
++
++ /* EP1, EP2 dual FIFO mode enable */
++ usb_write(0x0080, (u32) S3C_UDC_EP_CON_REG, 1);
++ usb_write(0x0080, (u32) S3C_UDC_EP_CON_REG, 2);
++
++ __raw_writel(0, S3C_UDC_INDEX_REG);
++
++}
++
++void set_max_pktsize(struct s3c_udc *dev, enum usb_device_speed speed)
++{
++ if (speed == USB_SPEED_HIGH)
++ {
++ ep0_fifo_size = 64;
++ ep_fifo_size = 512;
++ ep_fifo_size2 = 1024;
++ dev->gadget.speed = USB_SPEED_HIGH;
++ }
++ else
++ {
++ ep0_fifo_size = 64;
++ ep_fifo_size = 64;
++ ep_fifo_size2 = 64;
++ dev->gadget.speed = USB_SPEED_FULL;
++ }
++
++ dev->ep[0].ep.maxpacket = ep0_fifo_size;
++ dev->ep[1].ep.maxpacket = ep_fifo_size;
++ dev->ep[2].ep.maxpacket = ep_fifo_size;
++ dev->ep[3].ep.maxpacket = ep_fifo_size;
++ dev->ep[4].ep.maxpacket = ep_fifo_size;
++ dev->ep[5].ep.maxpacket = ep_fifo_size2;
++ dev->ep[6].ep.maxpacket = ep_fifo_size2;
++ dev->ep[7].ep.maxpacket = ep_fifo_size2;
++ dev->ep[8].ep.maxpacket = ep_fifo_size2;
++
++ usb_write(ep0_fifo_size, (u32) S3C_UDC_MAXP_REG, 0);
++ usb_write(ep_fifo_size, (u32) S3C_UDC_MAXP_REG, 1);
++ usb_write(ep_fifo_size, (u32) S3C_UDC_MAXP_REG, 2);
++ usb_write(ep_fifo_size, (u32) S3C_UDC_MAXP_REG, 3);
++ usb_write(ep_fifo_size, (u32) S3C_UDC_MAXP_REG, 4);
++ usb_write(ep_fifo_size2, (u32) S3C_UDC_MAXP_REG, 5);
++ usb_write(ep_fifo_size2, (u32) S3C_UDC_MAXP_REG, 6);
++ usb_write(ep_fifo_size2, (u32) S3C_UDC_MAXP_REG, 7);
++ usb_write(ep_fifo_size2, (u32) S3C_UDC_MAXP_REG, 8);
++
++}
++
++/*
++ * elfin usb client interrupt handler.
++ */
++static irqreturn_t s3c_udc_irq(int irq, void *_dev)
++{
++ struct s3c_udc *dev = _dev;
++ u32 intr_out;
++ u32 intr_in;
++ u32 intr_status, intr_status_chk;
++
++ spin_lock(&dev->lock);
++
++
++ intr_status = __raw_readl(S3C_UDC_SYS_STATUS_REG);
++ intr_out = intr_in = __raw_readl(S3C_UDC_EP_INT_REG);
++
++ DEBUG_SETUP("\n\n%s: S3C_UDC_EP_INT_REG=0x%x, S3C_UDC_SYS_STATUS_REG=0x%x(on state %s)\n",
++ __FUNCTION__, intr_out, intr_status, state_names[dev->ep0state]);
++
++ /* We have only 3 usable eps now */
++ intr_status_chk = intr_status & S3C_UDC_INT_CHECK;
++ intr_in &= (S3C_UDC_INT_EP2 | S3C_UDC_INT_EP0);
++ intr_out &= S3C_UDC_INT_EP1;
++
++
++ if (!intr_out && !intr_in && !intr_status_chk){
++ spin_unlock(&dev->lock);
++ return IRQ_HANDLED;
++ }
++
++ if (intr_status) {
++ if (intr_status & S3C_UDC_INT_VBUSON) {
++ DEBUG_SETUP("%s: VBUSON interrupt\n", __FUNCTION__);
++ __raw_writel(S3C_UDC_INT_VBUSON, S3C_UDC_SYS_STATUS_REG);
++ }
++
++ if (intr_status & S3C_UDC_INT_ERR) {
++ DEBUG_SETUP("%s: Error interrupt\n", __FUNCTION__);
++ __raw_writel(S3C_UDC_INT_ERR, S3C_UDC_SYS_STATUS_REG);
++ }
++
++ if (intr_status & S3C_UDC_INT_SDE) {
++ DEBUG_SETUP("%s: Speed Detection interrupt\n",
++ __FUNCTION__);
++ __raw_writel(S3C_UDC_INT_SDE, S3C_UDC_SYS_STATUS_REG);
++
++ if (intr_status & S3C_UDC_INT_HSP) {
++ DEBUG_SETUP("%s: High Speed Detection\n",
++ __FUNCTION__);
++ set_max_pktsize(dev, USB_SPEED_HIGH);
++ }
++ else {
++ DEBUG_SETUP("%s: Full Speed Detection\n",
++ __FUNCTION__);
++ set_max_pktsize(dev, USB_SPEED_FULL);
++ }
++ }
++
++ if (intr_status & S3C_UDC_INT_SUSPEND) {
++ DEBUG_SETUP("%s: SUSPEND interrupt\n", __FUNCTION__);
++ __raw_writel(S3C_UDC_INT_SUSPEND, S3C_UDC_SYS_STATUS_REG);
++ if (dev->gadget.speed != USB_SPEED_UNKNOWN
++ && dev->driver
++ && dev->driver->suspend) {
++ dev->driver->suspend(&dev->gadget);
++ }
++ }
++
++ if (intr_status & S3C_UDC_INT_RESUME) {
++ DEBUG_SETUP("%s: RESUME interrupt\n", __FUNCTION__);
++ __raw_writel(S3C_UDC_INT_RESUME, S3C_UDC_SYS_STATUS_REG);
++ if (dev->gadget.speed != USB_SPEED_UNKNOWN
++ && dev->driver
++ && dev->driver->resume) {
++ dev->driver->resume(&dev->gadget);
++ }
++ }
++
++ if (intr_status & S3C_UDC_INT_RESET) {
++ DEBUG_SETUP("%s: RESET interrupt\n", __FUNCTION__);
++ __raw_writel(S3C_UDC_INT_RESET, S3C_UDC_SYS_STATUS_REG);
++ reconfig_usbd();
++ dev->ep0state = WAIT_FOR_SETUP;
++ }
++ }
++
++ if (intr_in) {
++ if (intr_in & S3C_UDC_INT_EP0){
++ __raw_writel(S3C_UDC_INT_EP0, S3C_UDC_EP_INT_REG);
++ s3c_handle_ep0(dev);
++ }else if (intr_in & S3C_UDC_INT_EP2){
++ __raw_writel(S3C_UDC_INT_EP2, S3C_UDC_EP_INT_REG);
++ s3c_in_epn(dev, 2); // hard coded !!!
++ }else{
++ __raw_writel(S3C_UDC_INT_EP3, S3C_UDC_EP_INT_REG);
++ s3c_in_epn(dev, 3); // hard coded !!!
++ }
++ }
++
++ if (intr_out) {
++ usb_write(S3C_UDC_INT_EP1, (u32) S3C_UDC_EP_INT_REG, 1);
++ s3c_out_epn(dev, 1); // hard coded !!!
++ }
++
++ __raw_writel(IRQ_USBD, S3C2410_INTPND);
++ __raw_writel(IRQ_USBD, S3C2410_SRCPND);
++
++ spin_unlock(&dev->lock);
++
++ return IRQ_HANDLED;
++}
++
++static int s3c_ep_enable(struct usb_ep *_ep,
++ const struct usb_endpoint_descriptor *desc)
++{
++ struct s3c_ep *ep;
++ struct s3c_udc *dev;
++ unsigned long flags;
++
++ DEBUG("%s: %p\n", __FUNCTION__, _ep);
++
++ ep = container_of(_ep, struct s3c_ep, ep);
++ if (!_ep || !desc || ep->desc || _ep->name == ep0name
++ || desc->bDescriptorType != USB_DT_ENDPOINT
++ || ep->bEndpointAddress != desc->bEndpointAddress
++ || ep_maxpacket(ep) < le16_to_cpu(desc->wMaxPacketSize)) {
++ DEBUG("%s: bad ep or descriptor\n", __FUNCTION__);
++ return -EINVAL;
++ }
++
++ /* xfer types must match, except that interrupt ~= bulk */
++ if (ep->bmAttributes != desc->bmAttributes
++ && ep->bmAttributes != USB_ENDPOINT_XFER_BULK
++ && desc->bmAttributes != USB_ENDPOINT_XFER_INT) {
++ DEBUG("%s: %s type mismatch\n", __FUNCTION__, _ep->name);
++ return -EINVAL;
++ }
++
++ /* hardware _could_ do smaller, but driver doesn't */
++ if ((desc->bmAttributes == USB_ENDPOINT_XFER_BULK
++ && le16_to_cpu(desc->wMaxPacketSize) != ep_maxpacket(ep))
++ || !desc->wMaxPacketSize) {
++ DEBUG("%s: bad %s maxpacket\n", __FUNCTION__, _ep->name);
++ return -ERANGE;
++ }
++
++ dev = ep->dev;
++ if (!dev->driver || dev->gadget.speed == USB_SPEED_UNKNOWN) {
++ DEBUG("%s: bogus device state\n", __FUNCTION__);
++ return -ESHUTDOWN;
++ }
++
++ spin_lock_irqsave(&ep->dev->lock, flags);
++
++ ep->stopped = 0;
++ ep->desc = desc;
++ ep->pio_irqs = 0;
++ ep->ep.maxpacket = le16_to_cpu(desc->wMaxPacketSize);
++
++ /* Reset halt state */
++ s3c_set_halt(_ep, 0);
++
++ spin_unlock_irqrestore(&ep->dev->lock, flags);
++
++ DEBUG("%s: enabled %s\n", __FUNCTION__, _ep->name);
++ return 0;
++}
++
++/** Disable EP
++ */
++static int s3c_ep_disable(struct usb_ep *_ep)
++{
++ struct s3c_ep *ep;
++ unsigned long flags;
++
++ DEBUG("%s: %p\n", __FUNCTION__, _ep);
++
++ ep = container_of(_ep, struct s3c_ep, ep);
++ if (!_ep || !ep->desc) {
++ DEBUG("%s: %s not enabled\n", __FUNCTION__,
++ _ep ? ep->ep.name : NULL);
++ return -EINVAL;
++ }
++
++ spin_lock_irqsave(&ep->dev->lock, flags);
++
++ /* Nuke all pending requests */
++ nuke(ep, -ESHUTDOWN);
++
++ ep->desc = 0;
++ ep->stopped = 1;
++
++ spin_unlock_irqrestore(&ep->dev->lock, flags);
++
++ DEBUG("%s: disabled %s\n", __FUNCTION__, _ep->name);
++ return 0;
++}
++
++static struct usb_request *s3c_alloc_request(struct usb_ep *ep,
++ gfp_t gfp_flags)
++{
++ struct s3c_request *req;
++
++ DEBUG("%s: %p\n", __FUNCTION__, ep);
++
++ req = kmalloc(sizeof *req, gfp_flags);
++ if (!req)
++ return 0;
++
++ memset(req, 0, sizeof *req);
++ INIT_LIST_HEAD(&req->queue);
++
++ return &req->req;
++}
++
++static void s3c_free_request(struct usb_ep *ep, struct usb_request *_req)
++{
++ struct s3c_request *req;
++
++ DEBUG("%s: %p\n", __FUNCTION__, ep);
++
++ req = container_of(_req, struct s3c_request, req);
++ WARN_ON(!list_empty(&req->queue));
++ kfree(req);
++}
++
++
++/** Queue one request
++ * Kickstart transfer if needed
++ */
++static int s3c_queue(struct usb_ep *_ep, struct usb_request *_req,
++ gfp_t gfp_flags)
++{
++ struct s3c_request *req;
++ struct s3c_ep *ep;
++ struct s3c_udc *dev;
++ unsigned long flags;
++
++ DEBUG("%s: %p\n", __FUNCTION__, _ep);
++
++ req = container_of(_req, struct s3c_request, req);
++ if (unlikely
++ (!_req || !_req->complete || !_req->buf
++ || !list_empty(&req->queue))) {
++ DEBUG("%s: bad params\n", __FUNCTION__);
++ return -EINVAL;
++ }
++
++ ep = container_of(_ep, struct s3c_ep, ep);
++ if (unlikely(!_ep || (!ep->desc && ep->ep.name != ep0name))) {
++ DEBUG("%s: bad ep\n", __FUNCTION__);
++ return -EINVAL;
++ }
++
++ dev = ep->dev;
++ if (unlikely(!dev->driver || dev->gadget.speed == USB_SPEED_UNKNOWN)) {
++ DEBUG("%s: bogus device state %p\n", __FUNCTION__, dev->driver);
++ return -ESHUTDOWN;
++ }
++
++ DEBUG("%s: %s queue req %p, len %d buf %p\n",
++ __FUNCTION__, _ep->name, _req, _req->length, _req->buf);
++
++ spin_lock_irqsave(&dev->lock, flags);
++
++ _req->status = -EINPROGRESS;
++ _req->actual = 0;
++
++ /* kickstart this i/o queue? */
++ DEBUG("%s: Add to ep=%d, Q empty=%d, stopped=%d\n",
++ __FUNCTION__, ep_index(ep), list_empty(&ep->queue), ep->stopped);
++ if (list_empty(&ep->queue) && likely(!ep->stopped)) {
++ u32 csr;
++
++ if (unlikely(ep_index(ep) == 0)) {
++ /* EP0 */
++ list_add_tail(&req->queue, &ep->queue);
++ s3c_ep0_kick(dev, ep);
++ req = 0;
++
++ } else if (ep_is_in(ep)) {
++ csr = usb_read((u32) S3C_UDC_EP_STATUS_REG, ep_index(ep));
++ DEBUG("%s: ep_is_in, S3C_UDC_EP%d_STATUS_REG=0x%x\n",
++ __FUNCTION__, ep_index(ep), csr);
++
++ if(!(csr & S3C_UDC_EP_TX_SUCCESS)
++ && (write_fifo(ep, req) == 1))
++ req = 0;
++ else
++ DEBUG("IN-list_add_taill :: req =%p\n", req);
++
++ } else {
++ csr = usb_read((u32) S3C_UDC_EP_STATUS_REG, ep_index(ep));
++ DEBUG("%s: ep_is_out, S3C_UDC_EP%d_STATUS_REG=0x%x\n",
++ __FUNCTION__, ep_index(ep),csr);
++
++ if((csr & S3C_UDC_EP_RX_SUCCESS)
++ && (read_fifo(ep, req) == 1))
++ req = 0;
++ else
++ DEBUG("OUT-list_add_taill :: req =%p\n", req);
++ }
++ }
++
++ /* pio or dma irq handler advances the queue. */
++ if (likely(req != 0))
++ list_add_tail(&req->queue, &ep->queue);
++
++ spin_unlock_irqrestore(&dev->lock, flags);
++
++ return 0;
++}
++
++/* dequeue JUST ONE request */
++static int s3c_dequeue(struct usb_ep *_ep, struct usb_request *_req)
++{
++ struct s3c_ep *ep;
++ struct s3c_request *req;
++ unsigned long flags;
++
++ DEBUG("%s: %p\n", __FUNCTION__, _ep);
++
++ ep = container_of(_ep, struct s3c_ep, ep);
++ if (!_ep || ep->ep.name == ep0name)
++ return -EINVAL;
++
++ spin_lock_irqsave(&ep->dev->lock, flags);
++
++ /* make sure it's actually queued on this endpoint */
++ list_for_each_entry(req, &ep->queue, queue) {
++ if (&req->req == _req)
++ break;
++ }
++ if (&req->req != _req) {
++ spin_unlock_irqrestore(&ep->dev->lock, flags);
++ return -EINVAL;
++ }
++
++ done(ep, req, -ECONNRESET);
++
++ spin_unlock_irqrestore(&ep->dev->lock, flags);
++ return 0;
++}
++
++/** Halt specific EP
++ * Return 0 if success
++ */
++static int s3c_set_halt(struct usb_ep *_ep, int value)
++{
++ return 0;
++}
++
++/** Return bytes in EP FIFO
++ */
++static int s3c_fifo_status(struct usb_ep *_ep)
++{
++ u32 csr;
++ int count = 0;
++ struct s3c_ep *ep;
++
++ ep = container_of(_ep, struct s3c_ep, ep);
++ if (!_ep) {
++ DEBUG("%s: bad ep\n", __FUNCTION__);
++ return -ENODEV;
++ }
++
++ DEBUG("%s: %d\n", __FUNCTION__, ep_index(ep));
++
++ /* LPD can't report unclaimed bytes from IN fifos */
++ if (ep_is_in(ep))
++ return -EOPNOTSUPP;
++
++ csr = usb_read((u32) S3C_UDC_EP_STATUS_REG, ep_index(ep));
++ if (ep->dev->gadget.speed != USB_SPEED_UNKNOWN ||
++ csr & S3C_UDC_EP_RX_SUCCESS) {
++
++ count = usb_read((u32) S3C_UDC_BYTE_READ_CNT_REG, ep_index(ep));
++
++ if (usb_read((u32) S3C_UDC_EP_STATUS_REG, ep_index(ep))
++ & S3C_UDC_EP_LWO)
++ count = count * 2 -1;
++ else
++ count = count * 2;
++ }
++
++ return count;
++}
++
++/** Flush EP FIFO
++ */
++static void s3c_fifo_flush(struct usb_ep *_ep)
++{
++ struct s3c_ep *ep;
++
++ ep = container_of(_ep, struct s3c_ep, ep);
++ if (unlikely(!_ep || (!ep->desc && ep->ep.name != ep0name))) {
++ DEBUG("%s: bad ep\n", __FUNCTION__);
++ return;
++ }
++
++ DEBUG("%s: %d\n", __FUNCTION__, ep_index(ep));
++}
++
++/****************************************************************/
++/* End Point 0 related functions */
++/****************************************************************/
++
++/* return: 0 = still running, 1 = completed, negative = errno */
++static int write_fifo_ep0(struct s3c_ep *ep, struct s3c_request *req)
++{
++ u32 max;
++ unsigned count;
++ int is_last;
++
++ max = ep_maxpacket(ep);
++
++ DEBUG_EP0("%s: max = %d\n", __FUNCTION__, max);
++
++ count = write_packet(ep, req, max);
++
++ /* last packet is usually short (or a zlp) */
++ if (unlikely(count != max))
++ is_last = 1;
++ else {
++ if (likely(req->req.length != req->req.actual) || req->req.zero)
++ is_last = 0;
++ else
++ is_last = 1;
++ }
++
++ DEBUG_EP0("%s: wrote %s %d bytes%s %d left %p\n", __FUNCTION__,
++ ep->ep.name, count,
++ is_last ? "/L" : "", req->req.length - req->req.actual, req);
++
++ /* requests complete when all IN data is in the FIFO */
++ if (is_last) {
++ return 1;
++ }
++
++ return 0;
++}
++
++static __inline__ int s3c_fifo_read(struct s3c_ep *ep, u16 *cp, int max)
++{
++ int bytes;
++ int count;
++
++ count = usb_read((u32) S3C_UDC_BYTE_READ_CNT_REG, ep_index(ep));
++ DEBUG_EP0("%s: count=%d, ep_index=%d, fifo=0x%x\n",
++ __FUNCTION__, count, ep_index(ep), ep->fifo);
++ bytes = count * 2;
++
++ while (count--) {
++ *cp++ = (u16) __raw_readl(S3C_UDC_EP0_FIFO_REG);
++ }
++
++ __raw_writel(S3C_UDC_EP0_RX_SUCCESS, S3C_UDC_EP0_STATUS_REG);/* clear */
++
++ return bytes;
++}
++
++static int read_fifo_ep0(struct s3c_ep *ep, struct s3c_request *req)
++{
++ u32 csr;
++ u16 *buf;
++ unsigned bufferspace, count, is_short, bytes;
++ u32 fifo = ep->fifo;
++
++ DEBUG_EP0("%s\n", __FUNCTION__);
++
++ csr = __raw_readl(S3C_UDC_EP0_STATUS_REG);
++ if (!(csr & S3C_UDC_EP0_RX_SUCCESS))
++ return 0;
++
++ buf = req->req.buf + req->req.actual;
++ prefetchw(buf);
++ bufferspace = req->req.length - req->req.actual;
++
++ /* read all bytes from this packet */
++ if (likely(csr & S3C_UDC_EP0_RX_SUCCESS)) {
++ count = usb_read((u32) S3C_UDC_BYTE_READ_CNT_REG, ep_index(ep));
++ if (csr & S3C_UDC_EP0_LWO)
++ bytes = count * 2 -1;
++ else
++ bytes = count * 2;
++
++ req->req.actual += min(bytes, bufferspace);
++ } else { // zlp
++ count = 0;
++ bytes = 0;
++ }
++
++ is_short = (bytes < ep->ep.maxpacket);
++ DEBUG_EP0("%s: read %s %02x, %d bytes%s req %p %d/%d\n",
++ __FUNCTION__,
++ ep->ep.name, csr, bytes,
++ is_short ? "/S" : "", req, req->req.actual, req->req.length);
++
++ while (likely(count-- != 0)) {
++ u16 byte = (u16) __raw_readl(fifo);
++
++ if (unlikely(bufferspace == 0)) {
++ /* this happens when the driver's buffer
++ * is smaller than what the host sent.
++ * discard the extra data.
++ */
++ if (req->req.status != -EOVERFLOW)
++ DEBUG_EP0("%s overflow %d\n", ep->ep.name,
++ count);
++ req->req.status = -EOVERFLOW;
++ } else {
++ *buf++ = byte;
++ bufferspace = bufferspace - 2;
++ }
++ }
++
++ __raw_writel(S3C_UDC_EP0_RX_SUCCESS, S3C_UDC_EP0_STATUS_REG);/* clear */
++
++ /* completion */
++ if (is_short || req->req.actual == req->req.length) {
++ return 1;
++ }
++
++ return 0;
++}
++
++/**
++ * udc_set_address - set the USB address for this device
++ * @address:
++ *
++ * Called from control endpoint function
++ * after it decodes a set address setup packet.
++ */
++static void udc_set_address(struct s3c_udc *dev, unsigned char address)
++{
++ DEBUG_EP0("%s: address=%d, S3C_UDC_FUNC_ADDR_REG=0x%x\n",
++ __FUNCTION__, address, __raw_readl(S3C_UDC_FUNC_ADDR_REG));
++ dev->usb_address = address;
++}
++
++/*
++ * DATA_STATE_RECV (OUT_PKT_RDY)
++ */
++static int first_time = 1;
++
++static void s3c_ep0_read(struct s3c_udc *dev)
++{
++ struct s3c_request *req;
++ struct s3c_ep *ep = &dev->ep[0];
++ int ret;
++
++ if (!list_empty(&ep->queue))
++ req = list_entry(ep->queue.next, struct s3c_request, queue);
++ else {
++ DEBUG_EP0("%s: ---> BUG\n", __FUNCTION__);
++ BUG(); //logic ensures -jassi
++ return;
++ }
++
++ DEBUG_EP0("%s: req.length = 0x%x, req.actual = 0x%x\n",
++ __FUNCTION__, req->req.length, req->req.actual);
++
++ if(req->req.length == 0) {
++ __raw_writel(S3C_UDC_EP0_RX_SUCCESS, S3C_UDC_EP0_STATUS_REG);
++ dev->ep0state = WAIT_FOR_SETUP;
++ first_time = 1;
++ done(ep, req, 0);
++ return;
++ }
++
++ if(!req->req.actual && first_time){ //for SetUp packet
++ __raw_writel(S3C_UDC_EP0_RX_SUCCESS, S3C_UDC_EP0_STATUS_REG);
++ first_time = 0;
++ return;
++ }
++
++ ret = read_fifo_ep0(ep, req);
++ if (ret) {
++ dev->ep0state = WAIT_FOR_SETUP;
++ first_time = 1;
++ done(ep, req, 0);
++ return;
++ }
++
++}
++
++/*
++ * DATA_STATE_XMIT
++ */
++static int s3c_ep0_write(struct s3c_udc *dev)
++{
++ struct s3c_request *req;
++ struct s3c_ep *ep = &dev->ep[0];
++ int ret, need_zlp = 0;
++
++ DEBUG_EP0("%s: ep0 write\n", __FUNCTION__);
++
++ if (list_empty(&ep->queue))
++ req = 0;
++ else
++ req = list_entry(ep->queue.next, struct s3c_request, queue);
++
++ if (!req) {
++ DEBUG_EP0("%s: NULL REQ\n", __FUNCTION__);
++ return 0;
++ }
++
++ DEBUG_EP0("%s: req.length = 0x%x, req.actual = 0x%x\n",
++ __FUNCTION__, req->req.length, req->req.actual);
++
++ if (req->req.length == 0) {
++ dev->ep0state = WAIT_FOR_SETUP;
++ done(ep, req, 0);
++ return 1;
++ }
++
++ if (req->req.length - req->req.actual == ep0_fifo_size) {
++ /* Next write will end with the packet size, */
++ /* so we need Zero-length-packet */
++ need_zlp = 1;
++ }
++
++ ret = write_fifo_ep0(ep, req);
++
++ if ((ret == 1) && !need_zlp) {
++ /* Last packet */
++ DEBUG_EP0("%s: finished, waiting for status\n", __FUNCTION__);
++ dev->ep0state = WAIT_FOR_SETUP;
++ } else {
++ DEBUG_EP0("%s: not finished\n", __FUNCTION__);
++ }
++
++ if (need_zlp) {
++ DEBUG_EP0("%s: Need ZLP!\n", __FUNCTION__);
++ dev->ep0state = DATA_STATE_NEED_ZLP;
++ }
++
++ if(ret)
++ done(ep, req, 0);
++
++ return 1;
++}
++
++/*
++ * WAIT_FOR_SETUP (OUT_PKT_RDY)
++ */
++static void s3c_ep0_setup(struct s3c_udc *dev, u32 csr)
++{
++ struct s3c_ep *ep = &dev->ep[0];
++ struct usb_ctrlrequest ctrl;
++ int i, bytes, is_in;
++
++ DEBUG_SETUP("%s: csr = 0x%x\n", __FUNCTION__, csr);
++
++ /* Nuke all previous transfers */
++ nuke(ep, -EPROTO);
++
++ /* read control req from fifo (8 bytes) */
++ bytes = s3c_fifo_read(ep, (u16 *)&ctrl, 8);
++
++ DEBUG_SETUP("Read CTRL REQ %d bytes\n", bytes);
++ DEBUG_SETUP("CTRL.bRequestType = 0x%x (is_in %d)\n", ctrl.bRequestType,
++ ctrl.bRequestType & USB_DIR_IN);
++ DEBUG_SETUP("CTRL.bRequest = 0x%x\n", ctrl.bRequest);
++ DEBUG_SETUP("CTRL.wLength = 0x%x\n", ctrl.wLength);
++ DEBUG_SETUP("CTRL.wValue = 0x%x (%d)\n", ctrl.wValue, ctrl.wValue >> 8);
++ DEBUG_SETUP("CTRL.wIndex = 0x%x\n", ctrl.wIndex);
++
++ /* Set direction of EP0 */
++ if (likely(ctrl.bRequestType & USB_DIR_IN)) {
++ ep->bEndpointAddress |= USB_DIR_IN;
++ is_in = 1;
++ } else {
++ ep->bEndpointAddress &= ~USB_DIR_IN;
++ is_in = 0;
++ }
++
++ dev->req_pending = 1;
++
++ /* Handle some SETUP packets ourselves */
++ switch (ctrl.bRequest) {
++ case USB_REQ_SET_ADDRESS:
++ if (ctrl.bRequestType
++ != (USB_TYPE_STANDARD | USB_RECIP_DEVICE))
++ break;
++
++ DEBUG_SETUP("%s: USB_REQ_SET_ADDRESS (%d)\n",
++ __FUNCTION__, ctrl.wValue);
++ udc_set_address(dev, ctrl.wValue);
++ return;
++ default:
++ DEBUG_SETUP("%s: DFAULT\n", __FUNCTION__);
++ break;
++ }
++
++ if (likely(dev->driver)) {
++ /* device-2-host (IN) or no data setup command,
++ * process immediately */
++ spin_unlock(&dev->lock);
++ i = dev->driver->setup(&dev->gadget, &ctrl);
++ spin_lock(&dev->lock);
++
++ if (i < 0) {
++ /* setup processing failed, force stall */
++ printk("%s: --> ERROR: gadget setup FAILED (stalling), setup returned %d\n",
++ __FUNCTION__, i);
++ /* ep->stopped = 1; */
++ dev->ep0state = WAIT_FOR_SETUP;
++ }
++ }
++}
++
++/*
++ * handle ep0 interrupt
++ */
++static void s3c_handle_ep0(struct s3c_udc *dev)
++{
++ struct s3c_ep *ep = &dev->ep[0];
++ u32 csr;
++
++ csr = __raw_readl(S3C_UDC_EP0_STATUS_REG);
++
++ DEBUG_EP0("%s: S3C_UDC_EP0_STATUS_REG = 0x%x\n", __FUNCTION__, csr);
++
++ /*
++ * if SENT_STALL is set
++ * - clear the SENT_STALL bit
++ */
++ if (csr & S3C_UDC_EP0_STALL) {
++ printk("%s: S3C_UDC_EP0_STALL\n", __FUNCTION__);
++ __raw_writel(S3C_UDC_EP0_STALL, S3C_UDC_EP0_STATUS_REG); /* clear */
++ nuke(ep, -ECONNABORTED);
++ dev->ep0state = WAIT_FOR_SETUP;
++ return;
++ }
++
++ if (csr & S3C_UDC_EP0_TX_SUCCESS) {
++ DEBUG_EP0("%s: EP0_TX_SUCCESS \n", __FUNCTION__);
++ __raw_writel(S3C_UDC_EP0_TX_SUCCESS, S3C_UDC_EP0_STATUS_REG); /* clear */
++ }
++
++ if (csr & S3C_UDC_EP0_RX_SUCCESS) {
++ if (dev->ep0state == WAIT_FOR_SETUP) {
++ DEBUG_EP0("%s: WAIT_FOR_SETUP\n", __FUNCTION__);
++ s3c_ep0_setup(dev, csr);
++ } else {
++ DEBUG_EP0("%s: strange state!!(state = %s)\n",
++ __FUNCTION__, state_names[dev->ep0state]);
++ }
++ }
++}
++
++static void s3c_ep0_kick(struct s3c_udc *dev, struct s3c_ep *ep)
++{
++ DEBUG_EP0("%s: ep_is_in = %d\n", __FUNCTION__, ep_is_in(ep));
++ if (ep_is_in(ep)) {
++ dev->ep0state = DATA_STATE_XMIT;
++ s3c_ep0_write(dev);
++ } else {
++ dev->ep0state = DATA_STATE_RECV;
++ s3c_ep0_read(dev);
++ }
++}
++
++/* ---------------------------------------------------------------------------
++ * device-scoped parts of the api to the usb controller hardware
++ * ---------------------------------------------------------------------------
++ */
++
++static int s3c_udc_get_frame(struct usb_gadget *_gadget)
++{
++ /*fram count number [10:0]*/
++ u32 frame = __raw_readl(S3C_UDC_FRAME_NUM_REG);
++ DEBUG("%s: %p\n", __FUNCTION__, _gadget);
++ return (frame & 0x7ff);
++}
++
++static int s3c_udc_wakeup(struct usb_gadget *_gadget)
++{
++ return -ENOTSUPP;
++}
++
++static const struct usb_gadget_ops s3c_udc_ops = {
++ .get_frame = s3c_udc_get_frame,
++ .wakeup = s3c_udc_wakeup,
++ /* current versions must always be self-powered */
++};
++
++static void nop_release(struct device *dev)
++{
++ DEBUG("%s %s\n", __FUNCTION__, dev->bus_id);
++}
++
++static struct s3c_udc memory = {
++ .usb_address = 0,
++
++ .gadget = {
++ .ops = &s3c_udc_ops,
++ .ep0 = &memory.ep[0].ep,
++ .name = driver_name,
++ .dev = {
++ .bus_id = "gadget",
++ .release = nop_release,
++ },
++ },
++
++ /* control endpoint */
++ .ep[0] = {
++ .ep = {
++ .name = ep0name,
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP0_FIFO_SIZE,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = 0,
++ .bmAttributes = 0,
++
++ .ep_type = ep_control,
++ .fifo = (u32) S3C_UDC_EP0_FIFO_REG,
++ },
++
++ /* first group of endpoints */
++ .ep[1] = {
++ .ep = {
++ .name = "ep1-bulk",
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP_FIFO_SIZE,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = 1,
++ .bmAttributes = USB_ENDPOINT_XFER_BULK,
++
++ .ep_type = ep_bulk_out,
++ .fifo = (u32) S3C_UDC_EP1_FIFO_REG,
++ },
++
++ .ep[2] = {
++ .ep = {
++ .name = "ep2-bulk",
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP_FIFO_SIZE,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = USB_DIR_IN | 2,
++ .bmAttributes = USB_ENDPOINT_XFER_BULK,
++
++ .ep_type = ep_bulk_in,
++ .fifo = (u32) S3C_UDC_EP2_FIFO_REG,
++ },
++
++ .ep[3] = { // Though NOT USED XXX
++ .ep = {
++ .name = "ep3-int",
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP_FIFO_SIZE,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = USB_DIR_IN | 3,
++ .bmAttributes = USB_ENDPOINT_XFER_INT,
++
++ .ep_type = ep_interrupt,
++ .fifo = (u32) S3C_UDC_EP3_FIFO_REG,
++ },
++ .ep[4] = { // Though NOT USED XXX
++ .ep = {
++ .name = "ep4-int",
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP_FIFO_SIZE,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = USB_DIR_IN | 4,
++ .bmAttributes = USB_ENDPOINT_XFER_INT,
++
++ .ep_type = ep_interrupt,
++ .fifo = (u32) S3C_UDC_EP4_FIFO_REG,
++ },
++ .ep[5] = { // Though NOT USED XXX
++ .ep = {
++ .name = "ep5-int",
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP_FIFO_SIZE2,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = USB_DIR_IN | 5,
++ .bmAttributes = USB_ENDPOINT_XFER_INT,
++
++ .ep_type = ep_interrupt,
++ .fifo = (u32) S3C_UDC_EP5_FIFO_REG,
++ },
++ .ep[6] = { // Though NOT USED XXX
++ .ep = {
++ .name = "ep6-int",
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP_FIFO_SIZE2,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = USB_DIR_IN | 6,
++ .bmAttributes = USB_ENDPOINT_XFER_INT,
++
++ .ep_type = ep_interrupt,
++ .fifo = (u32) S3C_UDC_EP6_FIFO_REG,
++ },
++ .ep[7] = { // Though NOT USED XXX
++ .ep = {
++ .name = "ep7-int",
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP_FIFO_SIZE2,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = USB_DIR_IN | 7,
++ .bmAttributes = USB_ENDPOINT_XFER_INT,
++
++ .ep_type = ep_interrupt,
++ .fifo = (u32) S3C_UDC_EP7_FIFO_REG,
++ },
++ .ep[8] = { // Though NOT USED XXX
++ .ep = {
++ .name = "ep8-int",
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP_FIFO_SIZE2,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = USB_DIR_IN | 8,
++ .bmAttributes = USB_ENDPOINT_XFER_INT,
++
++ .ep_type = ep_interrupt,
++ .fifo = (u32) S3C_UDC_EP8_FIFO_REG,
++ },
++};
++
++/*
++ * probe - binds to the platform device
++ */
++static struct clk *udc_clock = NULL;
++
++static int s3c_udc_probe(struct platform_device *pdev)
++{
++ struct s3c_udc *dev = &memory;
++ int retval;
++
++ DEBUG("%s: %p\n", __FUNCTION__, pdev);
++
++ spin_lock_init(&dev->lock);
++ dev->dev = pdev;
++
++ device_initialize(&dev->gadget.dev);
++ dev->gadget.dev.parent = &pdev->dev;
++
++ dev->gadget.is_dualspeed = 1; // Hack only
++ dev->gadget.is_otg = 0;
++ dev->gadget.is_a_peripheral = 0;
++ dev->gadget.b_hnp_enable = 0;
++ dev->gadget.a_hnp_support = 0;
++ dev->gadget.a_alt_hnp_support = 0;
++
++ the_controller = dev;
++ platform_set_drvdata(pdev, dev);
++
++ udc_reinit(dev);
++
++ udc_clock = clk_get(&pdev->dev, "usb-device");
++ if (udc_clock == NULL) {
++ printk(KERN_INFO "failed to find usb-device clock source\n");
++ return -ENOENT;
++ }
++ clk_enable(udc_clock);
++
++ local_irq_disable();
++
++ /* irq setup after old hardware state is cleaned up */
++ retval =
++ request_irq(IRQ_USBD, s3c_udc_irq, IRQF_DISABLED, driver_name,
++ dev);
++ if (retval != 0) {
++ DEBUG(KERN_ERR "%s: can't get irq %i, err %d\n", driver_name,
++ IRQ_USBD, retval);
++ return -EBUSY;
++ }
++
++ disable_irq(IRQ_USBD);
++ local_irq_enable();
++ create_proc_files();
++
++ return retval;
++}
++
++static int s3c_udc_remove(struct platform_device *pdev)
++{
++ struct s3c_udc *dev = platform_get_drvdata(pdev);
++
++ DEBUG("%s: %p\n", __FUNCTION__, pdev);
++
++ udc_disable(dev);
++ remove_proc_files();
++ usb_gadget_unregister_driver(dev->driver);
++
++ free_irq(IRQ_USBD, dev);
++
++ platform_set_drvdata(pdev, 0);
++
++ the_controller = 0;
++
++ return 0;
++}
++
++/*-------------------------------------------------------------------------*/
++static struct platform_driver s3c_udc_driver = {
++ .probe = s3c_udc_probe,
++ .remove = s3c_udc_remove,
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "s3c2410-usbgadget",
++ },
++};
++
++static int __init udc_init(void)
++{
++ int ret;
++
++ ret = platform_driver_register(&s3c_udc_driver);
++ if(!ret)
++ printk("Loaded %s version %s\n", driver_name, DRIVER_VERSION);
++
++ return ret;
++}
++
++static void __exit udc_exit(void)
++{
++ platform_driver_unregister(&s3c_udc_driver);
++ printk("Unloaded %s version %s\n", driver_name, DRIVER_VERSION);
++}
++
++module_init(udc_init);
++module_exit(udc_exit);
++
++MODULE_DESCRIPTION(DRIVER_DESC);
++MODULE_AUTHOR("Samsung");
++MODULE_LICENSE("GPL");
+diff --git a/drivers/usb/gadget/s3c-udc-otg-hs.c b/drivers/usb/gadget/s3c-udc-otg-hs.c
+new file mode 100644
+index 0000000..7b95e2c
+--- /dev/null
++++ b/drivers/usb/gadget/s3c-udc-otg-hs.c
+@@ -0,0 +1,1091 @@
++/*
++ * drivers/usb/gadget/s3c-udc-otg-hs.c
++ * Samsung S3C on-chip full/high speed USB OTG 2.0 device controllers
++ *
++ * $Id: s3c-udc-otg-hs.c,v 1.12 2008/09/28 01:33:52 dasan Exp $*
++ *
++ * Copyright (C) 2006 for Samsung Electronics
++ *
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ */
++
++#include "s3c-udc.h"
++#include <linux/platform_device.h>
++#include <linux/clk.h>
++#include <asm/arch/regs-s3c-clock.h>
++#include <asm/arch/regs-usb-otg-hs.h>
++
++/*
++ * DMA Mode : support File-backed Storage and Ethernet(CDC, RNDIS) Gadget
++ * Slave Mode : support File-backed Storage and Ethernet(CDC) Gadget
++ */
++
++#if defined(CONFIG_USB_GADGET_S3C_OTGD_HS_DMA_MODE) /* DMA mode */
++#define OTG_DMA_MODE 1
++
++#elif defined(CONFIG_USB_GADGET_S3C_OTGD_HS_SLAVE_MODE) /* Slave mode */
++#define OTG_DMA_MODE 0
++
++#else
++#error " Unknown S3C OTG operation mode, Slect a correct operation mode"
++#endif
++
++#undef DEBUG_S3C_UDC_SETUP
++#undef DEBUG_S3C_UDC_EP0
++#undef DEBUG_S3C_UDC_ISR
++#undef DEBUG_S3C_UDC_OUT_EP
++#undef DEBUG_S3C_UDC_IN_EP
++#undef DEBUG_S3C_UDC
++
++//#define DEBUG_S3C_UDC_SETUP
++//#define DEBUG_S3C_UDC_EP0
++//#define DEBUG_S3C_UDC_ISR
++//#define DEBUG_S3C_UDC_OUT_EP
++//#define DEBUG_S3C_UDC_IN_EP
++//#define DEBUG_S3C_UDC
++
++#define EP0_CON 0
++#define EP1_OUT 1
++#define EP2_IN 2
++#define EP3_IN 3
++#define EP_MASK 0xF
++
++#if defined(DEBUG_S3C_UDC_ISR) || defined(DEBUG_S3C_UDC_EP0)
++static char *state_names[] = {
++ "WAIT_FOR_SETUP",
++ "DATA_STATE_XMIT",
++ "DATA_STATE_NEED_ZLP",
++ "WAIT_FOR_OUT_STATUS",
++ "DATA_STATE_RECV",
++ "RegReadErr"
++ };
++#endif
++
++#ifdef DEBUG_S3C_UDC_SETUP
++#define DEBUG_SETUP(fmt,args...) printk(fmt, ##args)
++#else
++#define DEBUG_SETUP(fmt,args...) do {} while(0)
++#endif
++
++#ifdef DEBUG_S3C_UDC_EP0
++#define DEBUG_EP0(fmt,args...) printk(fmt, ##args)
++#else
++#define DEBUG_EP0(fmt,args...) do {} while(0)
++#endif
++
++#ifdef DEBUG_S3C_UDC
++#define DEBUG(fmt,args...) printk(fmt, ##args)
++#else
++#define DEBUG(fmt,args...) do {} while(0)
++#endif
++
++#ifdef DEBUG_S3C_UDC_ISR
++#define DEBUG_ISR(fmt,args...) printk(fmt, ##args)
++#else
++#define DEBUG_ISR(fmt,args...) do {} while(0)
++#endif
++
++#ifdef DEBUG_S3C_UDC_OUT_EP
++#define DEBUG_OUT_EP(fmt,args...) printk(fmt, ##args)
++#else
++#define DEBUG_OUT_EP(fmt,args...) do {} while(0)
++#endif
++
++#ifdef DEBUG_S3C_UDC_IN_EP
++#define DEBUG_IN_EP(fmt,args...) printk(fmt, ##args)
++#else
++#define DEBUG_IN_EP(fmt,args...) do {} while(0)
++#endif
++
++
++#define DRIVER_DESC "Samsung Dual-speed USB 2.0 OTG Device Controller"
++#define DRIVER_VERSION __DATE__
++
++struct s3c_udc *the_controller;
++
++static const char driver_name[] = "s3c-udc";
++static const char driver_desc[] = DRIVER_DESC;
++static const char ep0name[] = "ep0-control";
++
++// Max packet size
++static u32 ep0_fifo_size = 64;
++static u32 ep_fifo_size = 512;
++static u32 ep_fifo_size2 = 1024;
++static int reset_available = 1;
++
++/* extern declarations in arch/arm/mach-s3c64xx*/
++#define OTGD_PHY_CLK_VALUE (0x20) /* UTMI Interface, Oscillator */
++extern void otg_phy_init(u32 otg_phy_clk);
++extern void otg_phy_off(void);
++extern struct usb_ctrlrequest usb_ctrl;
++
++/*
++ Local declarations.
++*/
++static int s3c_ep_enable(struct usb_ep *ep, const struct usb_endpoint_descriptor *);
++static int s3c_ep_disable(struct usb_ep *ep);
++static struct usb_request *s3c_alloc_request(struct usb_ep *ep, gfp_t gfp_flags);
++static void s3c_free_request(struct usb_ep *ep, struct usb_request *);
++
++static int s3c_queue(struct usb_ep *ep, struct usb_request *, gfp_t gfp_flags);
++static int s3c_dequeue(struct usb_ep *ep, struct usb_request *);
++static int s3c_set_halt(struct usb_ep *ep, int);
++static int s3c_fifo_status(struct usb_ep *ep);
++static void s3c_fifo_flush(struct usb_ep *ep);
++static void s3c_ep0_read(struct s3c_udc *dev);
++static void s3c_ep0_kick(struct s3c_udc *dev, struct s3c_ep *ep);
++static void s3c_handle_ep0(struct s3c_udc *dev);
++static int s3c_ep0_write(struct s3c_udc *dev);
++static int write_fifo_ep0(struct s3c_ep *ep, struct s3c_request *req);
++static void done(struct s3c_ep *ep, struct s3c_request *req, int status);
++static void stop_activity(struct s3c_udc *dev, struct usb_gadget_driver *driver);
++static int udc_enable(struct s3c_udc *dev);
++static void udc_set_address(struct s3c_udc *dev, unsigned char address);
++static void reconfig_usbd(void);
++static void set_max_pktsize(struct s3c_udc *dev, enum usb_device_speed speed);
++static void nuke(struct s3c_ep *ep, int status);
++
++static struct usb_ep_ops s3c_ep_ops = {
++ .enable = s3c_ep_enable,
++ .disable = s3c_ep_disable,
++
++ .alloc_request = s3c_alloc_request,
++ .free_request = s3c_free_request,
++
++ .queue = s3c_queue,
++ .dequeue = s3c_dequeue,
++
++ .set_halt = s3c_set_halt,
++ .fifo_status = s3c_fifo_status,
++ .fifo_flush = s3c_fifo_flush,
++};
++
++#ifdef CONFIG_USB_GADGET_DEBUG_FILES
++
++static const char proc_node_name[] = "driver/udc";
++
++static int
++udc_proc_read(char *page, char **start, off_t off, int count,
++ int *eof, void *_dev)
++{
++ char *buf = page;
++ struct s3c_udc *dev = _dev;
++ char *next = buf;
++ unsigned size = count;
++ unsigned long flags;
++ int t;
++
++ if (off != 0)
++ return 0;
++
++ local_irq_save(flags);
++
++ /* basic device status */
++ t = scnprintf(next, size,
++ DRIVER_DESC "\n"
++ "%s version: %s\n"
++ "Gadget driver: %s\n"
++ "\n",
++ driver_name, DRIVER_VERSION,
++ dev->driver ? dev->driver->driver.name : "(none)");
++ size -= t;
++ next += t;
++
++ local_irq_restore(flags);
++ *eof = 1;
++ return count - size;
++}
++
++#define create_proc_files() \
++ create_proc_read_entry(proc_node_name, 0, NULL, udc_proc_read, dev)
++#define remove_proc_files() \
++ remove_proc_entry(proc_node_name, NULL)
++
++#else /* !CONFIG_USB_GADGET_DEBUG_FILES */
++
++#define create_proc_files() do {} while (0)
++#define remove_proc_files() do {} while (0)
++
++#endif /* CONFIG_USB_GADGET_DEBUG_FILES */
++
++#if OTG_DMA_MODE /* DMA Mode */
++#include "s3c-udc-otg-xfer-dma.c"
++
++#else /* Slave Mode */
++#include "s3c-udc-otg-xfer-slave.c"
++#endif
++
++/*
++ * udc_disable - disable USB device controller
++ */
++static void udc_disable(struct s3c_udc *dev)
++{
++ DEBUG_SETUP("%s: %p\n", __FUNCTION__, dev);
++
++ udc_set_address(dev, 0);
++
++ dev->ep0state = WAIT_FOR_SETUP;
++ dev->gadget.speed = USB_SPEED_UNKNOWN;
++ dev->usb_address = 0;
++
++ otg_phy_off();
++}
++
++/*
++ * udc_reinit - initialize software state
++ */
++static void udc_reinit(struct s3c_udc *dev)
++{
++ u32 i;
++
++ DEBUG_SETUP("%s: %p\n", __FUNCTION__, dev);
++
++ /* device/ep0 records init */
++ INIT_LIST_HEAD(&dev->gadget.ep_list);
++ INIT_LIST_HEAD(&dev->gadget.ep0->ep_list);
++ dev->ep0state = WAIT_FOR_SETUP;
++
++ /* basic endpoint records init */
++ for (i = 0; i < S3C_MAX_ENDPOINTS; i++) {
++ struct s3c_ep *ep = &dev->ep[i];
++
++ if (i != 0)
++ list_add_tail(&ep->ep.ep_list, &dev->gadget.ep_list);
++
++ ep->desc = 0;
++ ep->stopped = 0;
++ INIT_LIST_HEAD(&ep->queue);
++ ep->pio_irqs = 0;
++ }
++
++ /* the rest was statically initialized, and is read-only */
++}
++
++#define BYTES2MAXP(x) (x / 8)
++#define MAXP2BYTES(x) (x * 8)
++
++/* until it's enabled, this UDC should be completely invisible
++ * to any USB host.
++ */
++static int udc_enable(struct s3c_udc *dev)
++{
++ DEBUG_SETUP("%s: %p\n", __FUNCTION__, dev);
++
++ otg_phy_init(OTGD_PHY_CLK_VALUE);
++ reconfig_usbd();
++
++ DEBUG_SETUP("S3C USB 2.0 OTG Controller Core Initialized : 0x%x\n",
++ readl(S3C_UDC_OTG_GINTMSK));
++
++ dev->gadget.speed = USB_SPEED_UNKNOWN;
++
++ return 0;
++}
++
++/*
++ Register entry point for the peripheral controller driver.
++*/
++int usb_gadget_register_driver(struct usb_gadget_driver *driver)
++{
++ struct s3c_udc *dev = the_controller;
++ int retval;
++
++ DEBUG_SETUP("%s: %s\n", __FUNCTION__, driver->driver.name);
++
++ if (!driver
++ || (driver->speed != USB_SPEED_FULL && driver->speed != USB_SPEED_HIGH)
++ || !driver->bind
++ || !driver->unbind || !driver->disconnect || !driver->setup)
++ return -EINVAL;
++ if (!dev)
++ return -ENODEV;
++ if (dev->driver)
++ return -EBUSY;
++
++ /* first hook up the driver ... */
++ dev->driver = driver;
++ dev->gadget.dev.driver = &driver->driver;
++ retval = device_add(&dev->gadget.dev);
++
++ if(retval) { /* TODO */
++ printk("target device_add failed, error %d\n", retval);
++ return retval;
++ }
++
++ retval = driver->bind(&dev->gadget);
++ if (retval) {
++ printk("%s: bind to driver %s --> error %d\n", dev->gadget.name,
++ driver->driver.name, retval);
++ device_del(&dev->gadget.dev);
++
++ dev->driver = 0;
++ dev->gadget.dev.driver = 0;
++ return retval;
++ }
++
++ enable_irq(IRQ_OTG);
++
++ printk("Registered gadget driver '%s'\n", driver->driver.name);
++ udc_enable(dev);
++
++ return 0;
++}
++
++EXPORT_SYMBOL(usb_gadget_register_driver);
++
++/*
++ Unregister entry point for the peripheral controller driver.
++*/
++int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
++{
++ struct s3c_udc *dev = the_controller;
++ unsigned long flags;
++
++ if (!dev)
++ return -ENODEV;
++ if (!driver || driver != dev->driver)
++ return -EINVAL;
++
++ spin_lock_irqsave(&dev->lock, flags);
++ dev->driver = 0;
++ stop_activity(dev, driver);
++ spin_unlock_irqrestore(&dev->lock, flags);
++
++ driver->unbind(&dev->gadget);
++ device_del(&dev->gadget.dev);
++
++ disable_irq(IRQ_OTG);
++
++ printk("Unregistered gadget driver '%s'\n", driver->driver.name);
++
++ udc_disable(dev);
++
++ return 0;
++}
++
++EXPORT_SYMBOL(usb_gadget_unregister_driver);
++
++/*
++ * done - retire a request; caller blocked irqs
++ */
++static void done(struct s3c_ep *ep, struct s3c_request *req, int status)
++{
++ u32 stopped = ep->stopped;
++
++ DEBUG("%s: %s %p, req = %p, stopped = %d\n",__FUNCTION__, ep->ep.name, ep, &req->req, stopped);
++ list_del_init(&req->queue);
++
++ if (likely(req->req.status == -EINPROGRESS)) {
++ req->req.status = status;
++ } else {
++ status = req->req.status;
++ }
++
++ if (status && status != -ESHUTDOWN) {
++ DEBUG("complete %s req %p stat %d len %u/%u\n",
++ ep->ep.name, &req->req, status,
++ req->req.actual, req->req.length);
++ }
++
++ /* don't modify queue heads during completion callback */
++ ep->stopped = 1;
++
++ spin_unlock(&ep->dev->lock);
++ req->req.complete(&ep->ep, &req->req);
++ spin_lock(&ep->dev->lock);
++
++ ep->stopped = stopped;
++}
++
++/*
++ * nuke - dequeue ALL requests
++ */
++static void nuke(struct s3c_ep *ep, int status)
++{
++ struct s3c_request *req;
++
++ DEBUG("%s: %s %p\n", __FUNCTION__, ep->ep.name, ep);
++
++ /* called with irqs blocked */
++ while (!list_empty(&ep->queue)) {
++ req = list_entry(ep->queue.next, struct s3c_request, queue);
++ done(ep, req, status);
++ }
++}
++
++static void stop_activity(struct s3c_udc *dev,
++ struct usb_gadget_driver *driver)
++{
++ int i;
++
++ /* don't disconnect drivers more than once */
++ if (dev->gadget.speed == USB_SPEED_UNKNOWN)
++ driver = 0;
++ dev->gadget.speed = USB_SPEED_UNKNOWN;
++
++ /* prevent new request submissions, kill any outstanding requests */
++ for (i = 0; i < S3C_MAX_ENDPOINTS; i++) {
++ struct s3c_ep *ep = &dev->ep[i];
++ ep->stopped = 1;
++ nuke(ep, -ESHUTDOWN);
++ }
++
++ /* report disconnect; the driver is already quiesced */
++ if (driver) {
++ spin_unlock(&dev->lock);
++ driver->disconnect(&dev->gadget);
++ spin_lock(&dev->lock);
++ }
++
++ /* re-init driver-visible data structures */
++ udc_reinit(dev);
++}
++
++static void reconfig_usbd(void)
++{
++ // 2. Soft-reset OTG Core and then unreset again.
++ u32 uTemp = writel(CORE_SOFT_RESET, S3C_UDC_OTG_GRSTCTL);
++
++ writel( 0<<15 // PHY Low Power Clock sel
++ |1<<14 // Non-Periodic TxFIFO Rewind Enable
++ |0x5<<10 // Turnaround time
++ |0<<9|0<<8 // [0:HNP disable, 1:HNP enable][ 0:SRP disable, 1:SRP enable] H1= 1,1
++ |0<<7 // Ulpi DDR sel
++ |0<<6 // 0: high speed utmi+, 1: full speed serial
++ |0<<4 // 0: utmi+, 1:ulpi
++ |1<<3 // phy i/f 0:8bit, 1:16bit
++ |0x7<<0, // HS/FS Timeout*
++ S3C_UDC_OTG_GUSBCFG);
++
++ // 3. Put the OTG device core in the disconnected state.
++ uTemp = readl(S3C_UDC_OTG_DCTL);
++ uTemp |= SOFT_DISCONNECT;
++ writel(uTemp, S3C_UDC_OTG_DCTL);
++
++ udelay(20);
++
++ // 4. Make the OTG device core exit from the disconnected state.
++ uTemp = readl(S3C_UDC_OTG_DCTL);
++ uTemp = uTemp & ~SOFT_DISCONNECT;
++ writel(uTemp, S3C_UDC_OTG_DCTL);
++
++ // 5. Configure OTG Core to initial settings of device mode.
++ writel(1<<18|0x0<<0, S3C_UDC_OTG_DCFG); // [][1: full speed(30Mhz) 0:high speed]
++
++ mdelay(1);
++
++ // 6. Unmask the core interrupts
++ writel(GINTMSK_INIT, S3C_UDC_OTG_GINTMSK);
++
++ // 7. Set NAK bit of EP0, EP1, EP2
++ writel(DEPCTL_EPDIS|DEPCTL_SNAK|(0<<0), S3C_UDC_OTG_DOEPCTL0); /* EP0: Control OUT */
++ writel(DEPCTL_EPDIS|DEPCTL_SNAK|(0<<0), S3C_UDC_OTG_DIEPCTL0); /* EP0: Control IN */
++
++ writel(DEPCTL_EPDIS|DEPCTL_SNAK|DEPCTL_BULK_TYPE|(0<<0), S3C_UDC_OTG_DOEPCTL1); /* EP1:Data OUT */
++ writel(DEPCTL_EPDIS|DEPCTL_SNAK|DEPCTL_BULK_TYPE|(0<<0), S3C_UDC_OTG_DIEPCTL2); /* EP2:Data IN */
++ writel(DEPCTL_EPDIS|DEPCTL_SNAK|DEPCTL_BULK_TYPE|(0<<0), S3C_UDC_OTG_DIEPCTL3); /* EP3:IN Interrupt*/
++
++ // 8. Unmask EP interrupts on IN EPs : 0, 2, 3
++ // OUT EPs : 0, 1
++ writel( (((1<<EP1_OUT)|(1<<EP0_CON))<<16) |
++ (1<<EP3_IN)|(1<<EP2_IN)|(1<<EP0_CON),
++ S3C_UDC_OTG_DAINTMSK);
++
++ // 9. Unmask device OUT EP common interrupts
++ writel(DOEPMSK_INIT, S3C_UDC_OTG_DOEPMSK);
++
++ // 10. Unmask device IN EP common interrupts
++ writel(DIEPMSK_INIT, S3C_UDC_OTG_DIEPMSK);
++
++ // 11. Set Rx FIFO Size
++ writel(RX_FIFO_SIZE, S3C_UDC_OTG_GRXFSIZ);
++
++ // 12. Set Non Periodic Tx FIFO Size
++ writel(NPTX_FIFO_SIZE<<16| NPTX_FIFO_START_ADDR<<0, S3C_UDC_OTG_GNPTXFSIZ);
++
++ // 13. Clear NAK bit of EP0, EP1, EP2
++ // For Slave mode
++ writel(DEPCTL_EPDIS|DEPCTL_CNAK|(0<<0), S3C_UDC_OTG_DOEPCTL0); /* EP0: Control OUT */
++
++ // 14. Initialize OTG Link Core.
++ writel(GAHBCFG_INIT, S3C_UDC_OTG_GAHBCFG);
++
++}
++
++static void set_max_pktsize(struct s3c_udc *dev, enum usb_device_speed speed)
++{
++ u32 ep_ctrl;
++
++ if (speed == USB_SPEED_HIGH) {
++ ep0_fifo_size = 64;
++ ep_fifo_size = 512;
++ ep_fifo_size2 = 1024;
++ dev->gadget.speed = USB_SPEED_HIGH;
++ } else {
++ ep0_fifo_size = 64;
++ ep_fifo_size = 64;
++ ep_fifo_size2 = 64;
++ dev->gadget.speed = USB_SPEED_FULL;
++ }
++
++ dev->ep[0].ep.maxpacket = ep0_fifo_size;
++ dev->ep[1].ep.maxpacket = ep_fifo_size;
++ dev->ep[2].ep.maxpacket = ep_fifo_size;
++ dev->ep[3].ep.maxpacket = ep_fifo_size;
++ dev->ep[4].ep.maxpacket = ep_fifo_size;
++ dev->ep[5].ep.maxpacket = ep_fifo_size2;
++ dev->ep[6].ep.maxpacket = ep_fifo_size2;
++ dev->ep[7].ep.maxpacket = ep_fifo_size2;
++ dev->ep[8].ep.maxpacket = ep_fifo_size2;
++
++
++ if (speed == USB_SPEED_HIGH) {
++ // EP0 - Control IN (64 bytes)
++ ep_ctrl = readl(S3C_UDC_OTG_DIEPCTL0);
++ writel(ep_ctrl|(0<<0), (u32) S3C_UDC_OTG_DIEPCTL0);
++
++ // EP0 - Control OUT (64 bytes)
++ ep_ctrl = readl(S3C_UDC_OTG_DOEPCTL0);
++ writel(ep_ctrl|(0<<0), (u32) S3C_UDC_OTG_DOEPCTL0);
++ } else {
++ // EP0 - Control IN (8 bytes)
++ ep_ctrl = readl(S3C_UDC_OTG_DIEPCTL0);
++ writel(ep_ctrl|(3<<0), (u32) S3C_UDC_OTG_DIEPCTL0);
++
++ // EP0 - Control OUT (8 bytes)
++ ep_ctrl = readl(S3C_UDC_OTG_DOEPCTL0);
++ writel(ep_ctrl|(3<<0), (u32) S3C_UDC_OTG_DOEPCTL0);
++ }
++
++
++ // EP1 - Bulk Data OUT (512 bytes)
++ ep_ctrl = readl(S3C_UDC_OTG_DOEPCTL1);
++ writel(ep_ctrl|(ep_fifo_size<<0), (u32) S3C_UDC_OTG_DOEPCTL1);
++
++ // EP2 - Bulk Data IN (512 bytes)
++ ep_ctrl = readl(S3C_UDC_OTG_DIEPCTL2);
++ writel(ep_ctrl|(ep_fifo_size<<0), (u32) S3C_UDC_OTG_DIEPCTL2);
++
++ // EP3 - INTR Data IN (512 bytes)
++ ep_ctrl = readl(S3C_UDC_OTG_DIEPCTL3);
++ writel(ep_ctrl|(ep_fifo_size<<0), (u32) S3C_UDC_OTG_DIEPCTL3);
++
++}
++
++static int s3c_ep_enable(struct usb_ep *_ep,
++ const struct usb_endpoint_descriptor *desc)
++{
++ struct s3c_ep *ep;
++ struct s3c_udc *dev;
++ unsigned long flags;
++
++ DEBUG("%s: %p\n", __FUNCTION__, _ep);
++
++ ep = container_of(_ep, struct s3c_ep, ep);
++ if (!_ep || !desc || ep->desc || _ep->name == ep0name
++ || desc->bDescriptorType != USB_DT_ENDPOINT
++ || ep->bEndpointAddress != desc->bEndpointAddress
++ || ep_maxpacket(ep) < le16_to_cpu(desc->wMaxPacketSize)) {
++
++ DEBUG("%s: bad ep or descriptor\n", __FUNCTION__);
++ return -EINVAL;
++ }
++
++ /* xfer types must match, except that interrupt ~= bulk */
++ if (ep->bmAttributes != desc->bmAttributes
++ && ep->bmAttributes != USB_ENDPOINT_XFER_BULK
++ && desc->bmAttributes != USB_ENDPOINT_XFER_INT) {
++
++ DEBUG("%s: %s type mismatch\n", __FUNCTION__, _ep->name);
++ return -EINVAL;
++ }
++
++ /* hardware _could_ do smaller, but driver doesn't */
++ if ((desc->bmAttributes == USB_ENDPOINT_XFER_BULK
++ && le16_to_cpu(desc->wMaxPacketSize) != ep_maxpacket(ep))
++ || !desc->wMaxPacketSize) {
++
++ DEBUG("%s: bad %s maxpacket\n", __FUNCTION__, _ep->name);
++ return -ERANGE;
++ }
++
++ dev = ep->dev;
++ if (!dev->driver || dev->gadget.speed == USB_SPEED_UNKNOWN) {
++
++ DEBUG("%s: bogus device state\n", __FUNCTION__);
++ return -ESHUTDOWN;
++ }
++
++ spin_lock_irqsave(&ep->dev->lock, flags);
++
++ ep->stopped = 0;
++ ep->desc = desc;
++ ep->pio_irqs = 0;
++ ep->ep.maxpacket = le16_to_cpu(desc->wMaxPacketSize);
++
++ /* Reset halt state */
++ s3c_set_halt(_ep, 0);
++
++ spin_unlock_irqrestore(&ep->dev->lock, flags);
++
++ DEBUG("%s: enabled %s, stopped = %d, maxpacket = %d\n",
++ __FUNCTION__, _ep->name, ep->stopped, ep->ep.maxpacket);
++ return 0;
++}
++
++/** Disable EP
++ */
++static int s3c_ep_disable(struct usb_ep *_ep)
++{
++ struct s3c_ep *ep;
++ unsigned long flags;
++
++ DEBUG("%s: %p\n", __FUNCTION__, _ep);
++
++ ep = container_of(_ep, struct s3c_ep, ep);
++ if (!_ep || !ep->desc) {
++ DEBUG("%s: %s not enabled\n", __FUNCTION__,
++ _ep ? ep->ep.name : NULL);
++ return -EINVAL;
++ }
++
++ spin_lock_irqsave(&ep->dev->lock, flags);
++
++ /* Nuke all pending requests */
++ nuke(ep, -ESHUTDOWN);
++
++ ep->desc = 0;
++ ep->stopped = 1;
++
++ spin_unlock_irqrestore(&ep->dev->lock, flags);
++
++ DEBUG("%s: disabled %s\n", __FUNCTION__, _ep->name);
++ return 0;
++}
++
++static struct usb_request *s3c_alloc_request(struct usb_ep *ep,
++ gfp_t gfp_flags)
++{
++ struct s3c_request *req;
++
++ DEBUG("%s: %s %p\n", __FUNCTION__, ep->name, ep);
++
++ req = kmalloc(sizeof *req, gfp_flags);
++ if (!req)
++ return 0;
++
++ memset(req, 0, sizeof *req);
++ INIT_LIST_HEAD(&req->queue);
++
++ return &req->req;
++}
++
++static void s3c_free_request(struct usb_ep *ep, struct usb_request *_req)
++{
++ struct s3c_request *req;
++
++ DEBUG("%s: %p\n", __FUNCTION__, ep);
++
++ req = container_of(_req, struct s3c_request, req);
++ WARN_ON(!list_empty(&req->queue));
++ kfree(req);
++}
++
++/* dequeue JUST ONE request */
++static int s3c_dequeue(struct usb_ep *_ep, struct usb_request *_req)
++{
++ struct s3c_ep *ep;
++ struct s3c_request *req;
++ unsigned long flags;
++
++ DEBUG("%s: %p\n", __FUNCTION__, _ep);
++
++ ep = container_of(_ep, struct s3c_ep, ep);
++ if (!_ep || ep->ep.name == ep0name)
++ return -EINVAL;
++
++ spin_lock_irqsave(&ep->dev->lock, flags);
++
++ /* make sure it's actually queued on this endpoint */
++ list_for_each_entry(req, &ep->queue, queue) {
++ if (&req->req == _req)
++ break;
++ }
++ if (&req->req != _req) {
++ spin_unlock_irqrestore(&ep->dev->lock, flags);
++ return -EINVAL;
++ }
++
++ done(ep, req, -ECONNRESET);
++
++ spin_unlock_irqrestore(&ep->dev->lock, flags);
++ return 0;
++}
++
++/** Halt specific EP
++ * Return 0 if success
++ */
++static int s3c_set_halt(struct usb_ep *_ep, int value)
++{
++ return 0;
++}
++
++/** Return bytes in EP FIFO
++ */
++static int s3c_fifo_status(struct usb_ep *_ep)
++{
++ int count = 0;
++ struct s3c_ep *ep;
++
++ ep = container_of(_ep, struct s3c_ep, ep);
++ if (!_ep) {
++ DEBUG("%s: bad ep\n", __FUNCTION__);
++ return -ENODEV;
++ }
++
++ DEBUG("%s: %d\n", __FUNCTION__, ep_index(ep));
++
++ /* LPD can't report unclaimed bytes from IN fifos */
++ if (ep_is_in(ep))
++ return -EOPNOTSUPP;
++
++ return count;
++}
++
++/** Flush EP FIFO
++ */
++static void s3c_fifo_flush(struct usb_ep *_ep)
++{
++ struct s3c_ep *ep;
++
++ ep = container_of(_ep, struct s3c_ep, ep);
++ if (unlikely(!_ep || (!ep->desc && ep->ep.name != ep0name))) {
++ DEBUG("%s: bad ep\n", __FUNCTION__);
++ return;
++ }
++
++ DEBUG("%s: %d\n", __FUNCTION__, ep_index(ep));
++}
++
++/* ---------------------------------------------------------------------------
++ * device-scoped parts of the api to the usb controller hardware
++ * ---------------------------------------------------------------------------
++ */
++
++static int s3c_udc_get_frame(struct usb_gadget *_gadget)
++{
++ /*fram count number [21:8]*/
++ u32 frame = readl(S3C_UDC_OTG_DSTS);
++
++ DEBUG("%s: %p\n", __FUNCTION__, _gadget);
++ return (frame & 0x3ff00);
++}
++
++static int s3c_udc_wakeup(struct usb_gadget *_gadget)
++{
++ return -ENOTSUPP;
++}
++
++static const struct usb_gadget_ops s3c_udc_ops = {
++ .get_frame = s3c_udc_get_frame,
++ .wakeup = s3c_udc_wakeup,
++ /* current versions must always be self-powered */
++};
++
++static void nop_release(struct device *dev)
++{
++ DEBUG("%s %s\n", __FUNCTION__, dev->bus_id);
++}
++
++static struct s3c_udc memory = {
++ .usb_address = 0,
++
++ .gadget = {
++ .ops = &s3c_udc_ops,
++ .ep0 = &memory.ep[0].ep,
++ .name = driver_name,
++ .dev = {
++ .bus_id = "gadget",
++ .release = nop_release,
++ },
++ },
++
++ /* control endpoint */
++ .ep[0] = {
++ .ep = {
++ .name = ep0name,
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP0_FIFO_SIZE,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = 0,
++ .bmAttributes = 0,
++
++ .ep_type = ep_control,
++ .fifo = (u32) S3C_UDC_OTG_EP0_FIFO,
++ },
++
++ /* first group of endpoints */
++ .ep[1] = {
++ .ep = {
++ .name = "ep1-bulk",
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP_FIFO_SIZE,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = 1,
++ .bmAttributes = USB_ENDPOINT_XFER_BULK,
++
++ .ep_type = ep_bulk_out,
++ .fifo = (u32) S3C_UDC_OTG_EP1_FIFO,
++ },
++
++ .ep[2] = {
++ .ep = {
++ .name = "ep2-bulk",
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP_FIFO_SIZE,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = USB_DIR_IN | 2,
++ .bmAttributes = USB_ENDPOINT_XFER_BULK,
++
++ .ep_type = ep_bulk_in,
++ .fifo = (u32) S3C_UDC_OTG_EP2_FIFO,
++ },
++
++ .ep[3] = { // Though NOT USED XXX
++ .ep = {
++ .name = "ep3-int",
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP_FIFO_SIZE,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = USB_DIR_IN | 3,
++ .bmAttributes = USB_ENDPOINT_XFER_INT,
++
++ .ep_type = ep_interrupt,
++ .fifo = (u32) S3C_UDC_OTG_EP3_FIFO,
++ },
++ .ep[4] = { // Though NOT USED XXX
++ .ep = {
++ .name = "ep4-int",
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP_FIFO_SIZE,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = USB_DIR_IN | 4,
++ .bmAttributes = USB_ENDPOINT_XFER_INT,
++
++ .ep_type = ep_interrupt,
++ .fifo = (u32) S3C_UDC_OTG_EP4_FIFO,
++ },
++ .ep[5] = { // Though NOT USED XXX
++ .ep = {
++ .name = "ep5-int",
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP_FIFO_SIZE2,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = USB_DIR_IN | 5,
++ .bmAttributes = USB_ENDPOINT_XFER_INT,
++
++ .ep_type = ep_interrupt,
++ .fifo = (u32) S3C_UDC_OTG_EP5_FIFO,
++ },
++ .ep[6] = { // Though NOT USED XXX
++ .ep = {
++ .name = "ep6-int",
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP_FIFO_SIZE2,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = USB_DIR_IN | 6,
++ .bmAttributes = USB_ENDPOINT_XFER_INT,
++
++ .ep_type = ep_interrupt,
++ .fifo = (u32) S3C_UDC_OTG_EP6_FIFO,
++ },
++ .ep[7] = { // Though NOT USED XXX
++ .ep = {
++ .name = "ep7-int",
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP_FIFO_SIZE2,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = USB_DIR_IN | 7,
++ .bmAttributes = USB_ENDPOINT_XFER_INT,
++
++ .ep_type = ep_interrupt,
++ .fifo = (u32) S3C_UDC_OTG_EP7_FIFO,
++ },
++ .ep[8] = { // Though NOT USED XXX
++ .ep = {
++ .name = "ep8-int",
++ .ops = &s3c_ep_ops,
++ .maxpacket = EP_FIFO_SIZE2,
++ },
++ .dev = &memory,
++
++ .bEndpointAddress = USB_DIR_IN | 8,
++ .bmAttributes = USB_ENDPOINT_XFER_INT,
++
++ .ep_type = ep_interrupt,
++ .fifo = (u32) S3C_UDC_OTG_EP8_FIFO,
++ },
++};
++
++/*
++ * probe - binds to the platform device
++ */
++static struct clk *otg_clock = NULL;
++
++static int s3c_udc_probe(struct platform_device *pdev)
++{
++ struct s3c_udc *dev = &memory;
++ int retval;
++
++ DEBUG("%s: %p\n", __FUNCTION__, pdev);
++
++ spin_lock_init(&dev->lock);
++ dev->dev = pdev;
++
++ device_initialize(&dev->gadget.dev);
++ dev->gadget.dev.parent = &pdev->dev;
++
++ dev->gadget.is_dualspeed = 1; // Hack only
++ dev->gadget.is_otg = 0;
++ dev->gadget.is_a_peripheral = 0;
++ dev->gadget.b_hnp_enable = 0;
++ dev->gadget.a_hnp_support = 0;
++ dev->gadget.a_alt_hnp_support = 0;
++
++ the_controller = dev;
++ platform_set_drvdata(pdev, dev);
++
++ otg_clock = clk_get(&pdev->dev, "otg");
++ if (otg_clock == NULL) {
++ printk(KERN_INFO "failed to find otg clock source\n");
++ return -ENOENT;
++ }
++ clk_enable(otg_clock);
++
++ udc_reinit(dev);
++
++ local_irq_disable();
++
++ /* irq setup after old hardware state is cleaned up */
++ retval =
++ request_irq(IRQ_OTG, s3c_udc_irq, SA_INTERRUPT, driver_name,
++ dev);
++
++ if (retval != 0) {
++ DEBUG(KERN_ERR "%s: can't get irq %i, err %d\n", driver_name,
++ IRQ_OTG, retval);
++ return -EBUSY;
++ }
++
++ disable_irq(IRQ_OTG);
++ local_irq_enable();
++ create_proc_files();
++
++ return retval;
++}
++
++static int s3c_udc_remove(struct platform_device *pdev)
++{
++ struct s3c_udc *dev = platform_get_drvdata(pdev);
++
++ DEBUG("%s: %p\n", __FUNCTION__, pdev);
++
++ if (otg_clock != NULL) {
++ clk_disable(otg_clock);
++ clk_put(otg_clock);
++ otg_clock = NULL;
++ }
++
++ remove_proc_files();
++ usb_gadget_unregister_driver(dev->driver);
++
++ free_irq(IRQ_OTG, dev);
++
++ platform_set_drvdata(pdev, 0);
++
++ the_controller = 0;
++
++ return 0;
++}
++
++#ifdef CONFIG_PM
++static int s3c_udc_suspend(struct platform_device *dev, pm_message_t state)
++{
++ return 0;
++}
++
++static int s3c_udc_resume(struct platform_device *dev)
++{
++ return 0;
++}
++#else
++#define s3c_udc_suspend NULL
++#define s3c_udc_resume NULL
++#endif /* CONFIG_PM */
++
++/*-------------------------------------------------------------------------*/
++static struct platform_driver s3c_udc_driver = {
++ .probe = s3c_udc_probe,
++ .remove = s3c_udc_remove,
++ .suspend = s3c_udc_suspend,
++ .resume = s3c_udc_resume,
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "s3c2410-usbgadget",
++ },
++};
++
++static int __init udc_init(void)
++{
++ int ret;
++
++ ret = platform_driver_register(&s3c_udc_driver);
++ if(!ret)
++ printk("Loaded %s version %s %s\n", driver_name, DRIVER_VERSION,
++ OTG_DMA_MODE? "(DMA Mode)" : "(Slave Mode)");
++
++ return ret;
++}
++
++static void __exit udc_exit(void)
++{
++ platform_driver_unregister(&s3c_udc_driver);
++ printk("Unloaded %s version %s\n", driver_name, DRIVER_VERSION);
++}
++
++module_init(udc_init);
++module_exit(udc_exit);
++
++MODULE_DESCRIPTION(DRIVER_DESC);
++MODULE_AUTHOR("Samsung");
++MODULE_LICENSE("GPL");
+diff --git a/drivers/usb/gadget/s3c-udc-otg-xfer-dma.c b/drivers/usb/gadget/s3c-udc-otg-xfer-dma.c
+new file mode 100644
+index 0000000..f635acb
+--- /dev/null
++++ b/drivers/usb/gadget/s3c-udc-otg-xfer-dma.c
+@@ -0,0 +1,947 @@
++/*
++ * drivers/usb/gadget/s3c-udc-otg-hs-dma.c
++ * Samsung S3C on-chip full/high speed USB OTG 2.0 device controllers
++ *
++ * $Id: s3c-udc-otg-xfer-dma.c,v 1.2 2009/01/19 01:03:13 dasan Exp $*
++ *
++ * Copyright (C) 2009 for Samsung Electronics
++ *
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ */
++
++#define GINTMSK_INIT (INT_OUT_EP|INT_IN_EP|INT_RESUME|INT_ENUMDONE|INT_RESET|INT_SUSPEND)
++#define DOEPMSK_INIT (CTRL_OUT_EP_SETUP_PHASE_DONE|AHB_ERROR|TRANSFER_DONE)
++#define DIEPMSK_INIT (NON_ISO_IN_EP_TIMEOUT|AHB_ERROR|TRANSFER_DONE)
++#define GAHBCFG_INIT (PTXFE_HALF|NPTXFE_HALF|MODE_DMA|BURST_INCR4|GBL_INT_UNMASK)
++
++/* Send Zero Length Packet for status stage of control transfer */
++static inline void s3c_send_zlp(void)
++{
++ u32 diepsiz0, diepctl0;
++
++ diepsiz0 = readl(S3C_UDC_OTG_DIEPTSIZ0);
++ diepctl0 = readl(S3C_UDC_OTG_DIEPCTL0);
++
++ writel(diepsiz0|1<<19| 0<<0, S3C_UDC_OTG_DIEPTSIZ0);
++ writel(diepctl0|DEPCTL_EPENA|DEPCTL_CNAK|EP3_IN<<11, S3C_UDC_OTG_DIEPCTL0);
++}
++
++static int setdma_rx(struct s3c_ep *ep, struct s3c_request *req)
++{
++ u32 *buf, ctrl;
++ u32 length, pktcnt;
++ u32 ep_num = ep_index(ep);
++
++ buf = req->req.buf + req->req.actual;
++ prefetchw(buf);
++
++ length = req->req.length - req->req.actual;
++ dma_cache_maint(buf, length, DMA_FROM_DEVICE);
++
++ if(length == 0)
++ pktcnt = 1;
++ else
++ pktcnt = (length - 1)/(ep->ep.maxpacket) + 1;
++
++ if(ep_num == EP0_CON) {
++ ctrl = readl(S3C_UDC_OTG_DOEPCTL0);
++
++ writel(virt_to_phys(buf), S3C_UDC_OTG_DOEPDMA0);
++ writel((pktcnt<<19)|(length<<0), S3C_UDC_OTG_DOEPTSIZ0);
++ writel(DEPCTL_EPENA|DEPCTL_CNAK|ctrl, S3C_UDC_OTG_DOEPCTL0);
++
++ DEBUG_OUT_EP("%s: RX DMA start : DOEPDMA0 = 0x%x, DOEPTSIZ0 = 0x%x, DOEPCTL0 = 0x%x,pktcnt = %d, xfersize = %d\n",
++ __FUNCTION__,
++ readl(S3C_UDC_OTG_DOEPDMA0),
++ readl(S3C_UDC_OTG_DOEPTSIZ0),
++ readl(S3C_UDC_OTG_DOEPCTL0),
++ pktcnt, length);
++
++ } else if (ep_num == EP1_OUT) {
++ ctrl = readl(S3C_UDC_OTG_DOEPCTL1);
++
++ writel(virt_to_phys(buf), S3C_UDC_OTG_DOEPDMA1);
++ writel((pktcnt<<19)|(length<<0), S3C_UDC_OTG_DOEPTSIZ1);
++ writel(DEPCTL_EPENA|DEPCTL_CNAK|ctrl, S3C_UDC_OTG_DOEPCTL1);
++
++ DEBUG_OUT_EP("%s: RX DMA start : DOEPDMA1 = 0x%x, DOEPTSIZ1 = 0x%x, DOEPCTL1 = 0x%x, "
++ "pktcnt = %d, xfersize = %d\n",
++ __FUNCTION__,
++ readl(S3C_UDC_OTG_DOEPDMA1),
++ readl(S3C_UDC_OTG_DOEPTSIZ1),
++ readl(S3C_UDC_OTG_DOEPCTL1),
++ pktcnt, length);
++
++ } else {
++ DEBUG_OUT_EP("Not Support EP\n");
++ }
++
++ return 0;
++
++}
++
++static int setdma_tx(struct s3c_ep *ep, struct s3c_request *req)
++{
++ u32 *buf, ctrl;
++ u32 length, pktcnt;
++ u32 ep_num = ep_index(ep);
++
++ buf = req->req.buf + req->req.actual;
++ prefetch(buf);
++ length = req->req.length - req->req.actual;
++
++ if(ep_num == EP0_CON) {
++ length = min(length, (u32)ep_maxpacket(ep));
++ }
++
++ req->req.actual += length;
++ dma_cache_maint(buf, length, DMA_TO_DEVICE);
++
++ if(length == 0) {
++ pktcnt = 1;
++ } else {
++ pktcnt = (length - 1)/(ep->ep.maxpacket) + 1;
++ }
++
++ if(ep_num == EP0_CON) {
++ ctrl = readl(S3C_UDC_OTG_DIEPCTL0);
++
++ writel(virt_to_phys(buf), S3C_UDC_OTG_DIEPDMA0);
++ writel((pktcnt<<19)|(length<<0), (u32) S3C_UDC_OTG_DIEPTSIZ0);
++ writel(DEPCTL_EPENA|DEPCTL_CNAK|(EP2_IN<<11), (u32) S3C_UDC_OTG_DIEPCTL0);
++
++ DEBUG_IN_EP("%s:TX DMA start : DIEPDMA0 = 0x%x, DIEPTSIZ0 = 0x%x, DIEPCTL0 = 0x%x,"
++ "pktcnt = %d, xfersize = %d\n",
++ __FUNCTION__,
++ readl(S3C_UDC_OTG_DIEPDMA0),
++ readl(S3C_UDC_OTG_DIEPTSIZ0),
++ readl(S3C_UDC_OTG_DIEPCTL0),
++ pktcnt, length);
++
++ } else if (ep_num == EP2_IN) {
++ ctrl = readl(S3C_UDC_OTG_DIEPCTL2);
++
++ writel(virt_to_phys(buf), S3C_UDC_OTG_DIEPDMA2);
++ writel((pktcnt<<19)|(length<<0), S3C_UDC_OTG_DIEPTSIZ2);
++ writel(DEPCTL_EPENA|DEPCTL_CNAK|(EP0_CON<<11)|ctrl, (u32) S3C_UDC_OTG_DIEPCTL2);
++
++ DEBUG_IN_EP("%s:TX DMA start : DIEPDMA2 = 0x%x, DIEPTSIZ2 = 0x%x, DIEPCTL2 = 0x%x,"
++ "pktcnt = %d, xfersize = %d\n",
++ __FUNCTION__,
++ readl(S3C_UDC_OTG_DIEPDMA2),
++ readl(S3C_UDC_OTG_DIEPTSIZ2),
++ readl(S3C_UDC_OTG_DIEPCTL2),
++ pktcnt, length);
++
++ } else if (ep_num == EP3_IN) {
++ ctrl = readl(S3C_UDC_OTG_DIEPCTL3);
++
++ writel(virt_to_phys(buf), S3C_UDC_OTG_DIEPDMA3);
++ writel((pktcnt<<19)|(length<<0), S3C_UDC_OTG_DIEPTSIZ3);
++ writel(DEPCTL_EPENA|DEPCTL_CNAK|(EP0_CON<<11)| ctrl, (u32) S3C_UDC_OTG_DIEPCTL3);
++
++ DEBUG_IN_EP("%s:TX DMA start : DIEPDMA3 = 0x%x, DIEPTSIZ3 = 0x%x, DIEPCTL3 = 0x%x,"
++ "pktcnt = %d, xfersize = %d\n",
++ __FUNCTION__,
++ readl(S3C_UDC_OTG_DIEPDMA3),
++ readl(S3C_UDC_OTG_DIEPTSIZ3),
++ readl(S3C_UDC_OTG_DIEPCTL3),
++ pktcnt, length);
++
++ } else {
++ DEBUG_IN_EP("%s: --> Error Unused Endpoint!!\n",
++ __FUNCTION__);
++ BUG();
++ }
++
++ return length;
++}
++
++static void complete_rx(struct s3c_udc *dev, u32 ep_idx)
++{
++ struct s3c_ep *ep = &dev->ep[ep_idx];
++ struct s3c_request *req = NULL;
++ u32 csr, count_bytes=0, xfer_length, is_short = 0;
++ DEBUG_OUT_EP("%s\n",__FUNCTION__);
++
++ if (list_empty(&ep->queue)) {
++ DEBUG_OUT_EP("%s: NULL REQ on OUT EP-%d\n", __FUNCTION__, ep_idx);
++ return;
++
++ }
++
++ req = list_entry(ep->queue.next, struct s3c_request, queue);
++
++ if(ep_idx == EP0_CON) {
++ csr = readl(S3C_UDC_OTG_DOEPTSIZ0);
++ count_bytes = (csr & 0x7f);
++
++ } else if (ep_idx == EP1_OUT) {
++ csr = readl(S3C_UDC_OTG_DOEPTSIZ1);
++ count_bytes = (csr & 0x7fff);
++
++ } else {
++ DEBUG_OUT_EP("%s : Not support EP\n");
++ }
++
++ dma_cache_maint(req->req.buf, req->req.length, DMA_FROM_DEVICE);
++ xfer_length = req->req.length-count_bytes;
++ req->req.actual += min(xfer_length, req->req.length-req->req.actual);
++ is_short = (xfer_length < ep->ep.maxpacket);
++
++ DEBUG_OUT_EP("%s: RX DMA done : %d/%d bytes received%s, DOEPTSIZ1 = 0x%x, %d bytes remained\n",
++ __FUNCTION__, req->req.actual, req->req.length,
++ is_short ? "/S" : "", csr, count_bytes);
++ DEBUG_OUT_EP("%s : req->length = %d / req->actual = %d / xfer_length = %d / ep.maxpacket = %d / is_short = %d \n",
++ __FUNCTION__, req->req.length,req->req.actual,
++ xfer_length,ep->ep.maxpacket, is_short);
++
++ if (is_short || req->req.actual == xfer_length) {
++ if(ep_idx == EP0_CON && dev->ep0state == DATA_STATE_RECV) {
++ DEBUG_OUT_EP(" => Send ZLP\n");
++ dev->ep0state = WAIT_FOR_SETUP;
++ s3c_send_zlp();
++
++ } else {
++ done(ep, req, 0);
++
++ if(!list_empty(&ep->queue)) {
++ req = list_entry(ep->queue.next, struct s3c_request, queue);
++ DEBUG_OUT_EP("%s: Next Rx request start...\n", __FUNCTION__);
++ setdma_rx(ep, req);
++ }
++ }
++ }
++}
++
++static void complete_tx(struct s3c_udc *dev, u32 ep_idx)
++{
++ struct s3c_ep *ep = &dev->ep[ep_idx];
++ struct s3c_request *req;
++ u32 count_bytes = 0;
++
++ if (list_empty(&ep->queue)) {
++ DEBUG_IN_EP("%s: NULL REQ on IN EP-%d\n", __FUNCTION__, ep_idx);
++ return;
++
++ }
++
++ req = list_entry(ep->queue.next, struct s3c_request, queue);
++
++ if(dev->ep0state == DATA_STATE_XMIT) {
++ u32 last = write_fifo_ep0(ep, req);
++
++ if(last) {
++ dev->ep0state = WAIT_FOR_SETUP;
++ }
++
++ return;
++ }
++
++ if(ep_idx == EP0_CON) {
++ count_bytes = (readl(S3C_UDC_OTG_DIEPTSIZ0)) & 0x7f;
++ req->req.actual = req->req.length-count_bytes;
++
++ DEBUG_IN_EP("%s: TX DMA done : %d/%d bytes sent, DIEPTSIZ0 = 0x%x\n",
++ __FUNCTION__, req->req.actual,
++ req->req.length,
++ readl(S3C_UDC_OTG_DIEPTSIZ0));
++
++ } else if (ep_idx == EP2_IN) {
++ count_bytes = (readl(S3C_UDC_OTG_DIEPTSIZ2)) & 0x7fff;
++ req->req.actual = req->req.length-count_bytes;
++
++ DEBUG_IN_EP("%s: TX DMA done : %d/%d bytes sent, DIEPTSIZ2 = 0x%x\n",
++ __FUNCTION__, req->req.actual,
++ req->req.length,
++ readl(S3C_UDC_OTG_DIEPTSIZ2));
++
++ }
++ else if (ep_idx == EP3_IN)
++ {
++ count_bytes = (readl(S3C_UDC_OTG_DIEPTSIZ3)) & 0x7fff;
++ req->req.actual = req->req.length-count_bytes;
++
++ DEBUG_IN_EP("%s: TX DMA done : %d/%d bytes sent, DIEPTSIZ3 = 0x%x\n",
++ __FUNCTION__, req->req.actual,
++ req->req.length,
++ readl(S3C_UDC_OTG_DIEPTSIZ3));
++ } else {
++ DEBUG_IN_EP("%s: --> Error Unused Endpoint-%d!!\n", __FUNCTION__, ep_idx);
++ }
++
++ if (req->req.actual == req->req.length) {
++ done(ep, req, 0);
++
++ if(!list_empty(&ep->queue)) {
++ req = list_entry(ep->queue.next, struct s3c_request, queue);
++ DEBUG_IN_EP("%s: Next Tx request start...\n", __FUNCTION__);
++ setdma_tx(ep, req);
++ }
++ }
++}
++
++static void process_ep_in_intr(struct s3c_udc *dev)
++{
++ u32 ep_int, ep_int_status, ep_ctrl;
++
++ ep_int = readl(S3C_UDC_OTG_DAINT);
++ DEBUG_IN_EP("\tDAINT : 0x%x \n", ep_int);
++
++
++ /* CONTROL IN endpont */
++ if (ep_int & (1<<EP0_CON)) {
++ ep_int_status = readl(S3C_UDC_OTG_DIEPINT0);
++ ep_ctrl = readl(S3C_UDC_OTG_DIEPCTL0);
++ DEBUG_EP0("\tEP0-IN : DIEPINT0 = 0x%x, DIEPCTL0 = 0x%x \n", ep_int_status, ep_ctrl);
++ writel(ep_int_status, S3C_UDC_OTG_DIEPINT0); // Interrupt Clear
++
++ if (ep_int_status & TRANSFER_DONE) {
++ DEBUG_EP0("\tEP0-IN transaction completed - (TX DMA done)\n");
++
++ complete_tx(dev, EP0_CON);
++
++ if(dev->ep0state == WAIT_FOR_SETUP) {
++ writel((1 << 19)|sizeof(struct usb_ctrlrequest), S3C_UDC_OTG_DOEPTSIZ0);
++ writel(virt_to_phys(&usb_ctrl), S3C_UDC_OTG_DOEPDMA0);
++ writel(ep_ctrl|DEPCTL_EPENA|DEPCTL_CNAK, S3C_UDC_OTG_DOEPCTL0);
++ }
++
++ }
++
++ }
++
++ /* EP2 - BULK IN endpont */
++ else if(ep_int & (1<<EP2_IN)) { /* BULK IN endpont */
++ ep_int_status = readl(S3C_UDC_OTG_DIEPINT2);
++ ep_ctrl = readl(S3C_UDC_OTG_DIEPCTL2);
++
++ DEBUG_IN_EP("\tEP2-IN : DIEPINT2 = 0x%x, DIEPCTL2 = 0x%x\n", ep_int_status, ep_ctrl);
++
++ if (ep_int_status & TRANSFER_DONE) {
++ DEBUG_IN_EP("\tBULK IN transaction completed - (TX DMA done)\n");
++ complete_tx(dev, EP2_IN);
++ }
++ writel(ep_int_status, S3C_UDC_OTG_DIEPINT2); // ep2 Interrupt Clear
++
++ }
++
++ /* EP3 - INTR IN endpont */
++ else if(ep_int & (1<<EP3_IN)) { /* BULK IN endpont */
++ ep_int_status = readl(S3C_UDC_OTG_DIEPINT3);
++ ep_ctrl = readl(S3C_UDC_OTG_DIEPCTL3);
++
++ DEBUG_IN_EP("\tEP3-IN : DIEPINT3 = 0x%x, DIEPCTL3 = 0x%x\n", ep_int_status, ep_ctrl);
++
++ if (ep_int_status & TRANSFER_DONE) {
++ DEBUG_IN_EP("\tBULK IN transaction completed - (TX DMA done)\n");
++ complete_tx(dev, EP3_IN);
++ }
++ writel(ep_int_status, S3C_UDC_OTG_DIEPINT3); // ep2 Interrupt Clear
++ }
++
++}
++
++static void process_ep_out_intr(struct s3c_udc * dev)
++{
++ u32 ep_int, ep_int_status, ep_ctrl;
++
++ ep_int = readl(S3C_UDC_OTG_DAINT);
++ DEBUG_OUT_EP("\tDAINT : 0x%x \n", ep_int);
++
++ /* CONTROL OUT endpont */
++ if (ep_int & ((1<<EP0_CON)<<16)) {
++ ep_int_status = readl(S3C_UDC_OTG_DOEPINT0);
++ ep_ctrl = readl(S3C_UDC_OTG_DOEPCTL0);
++ DEBUG_EP0("\tEP0-OUT : DOEPINT0 = 0x%x, DOEPCTL0 = 0x%x\n", ep_int_status, ep_ctrl);
++
++ if (ep_int_status & CTRL_OUT_EP_SETUP_PHASE_DONE) {
++
++ DEBUG_EP0("\tSETUP packet(transaction) arrived\n");
++ s3c_handle_ep0(dev);
++ writel(ep_int_status & CTRL_OUT_EP_SETUP_PHASE_DONE, S3C_UDC_OTG_DOEPINT0); // Interrupt Clear
++
++ } else if (ep_int_status & TRANSFER_DONE) {
++
++ DEBUG_EP0("\tEP0-OUT transaction completed - (RX DMA done)\n");
++ complete_rx(dev, EP0_CON);
++ writel((1 << 19)|sizeof(struct usb_ctrlrequest), S3C_UDC_OTG_DOEPTSIZ0);
++ writel(ep_ctrl|DEPCTL_EPENA|DEPCTL_CNAK, S3C_UDC_OTG_DOEPCTL0); // ep0 OUT enable, clear nak
++ writel(ep_int_status & TRANSFER_DONE, S3C_UDC_OTG_DOEPINT0); // Interrupt Clear
++
++ } else {
++ writel(ep_int_status, S3C_UDC_OTG_DOEPINT0); // Interrupt Clear
++ }
++
++ } else if (ep_int & ((1<<EP1_OUT)<<16)) {/* EP1 - BULK OUT endpont */
++ ep_int_status = readl(S3C_UDC_OTG_DOEPINT1);
++ ep_ctrl = readl(S3C_UDC_OTG_DOEPCTL1);
++
++ DEBUG_OUT_EP("\tEP1-OUT : DOEPINT1 = 0x%x, DOEPCTL1 = 0x%x\n", ep_int_status, ep_ctrl);
++
++ if (ep_int_status & TRANSFER_DONE) {
++ DEBUG_OUT_EP("\tBULK OUT packet(transaction) arrived - (RX DMA done)\n");
++ complete_rx(dev, EP1_OUT);
++ }
++ writel(ep_int_status, S3C_UDC_OTG_DOEPINT1); // ep1 Interrupt Clear
++
++ }
++
++
++}
++
++/*
++ * elfin usb client interrupt handler.
++ */
++static irqreturn_t s3c_udc_irq(int irq, void *_dev)
++{
++ struct s3c_udc *dev = _dev;
++ u32 intr_status;
++ u32 usb_status, gintmsk;
++
++ spin_lock(&dev->lock);
++
++ intr_status = readl(S3C_UDC_OTG_GINTSTS);
++ gintmsk = readl(S3C_UDC_OTG_GINTMSK);
++
++ DEBUG_ISR("\n**** %s : GINTSTS=0x%x(on state %s), GINTMSK : 0x%x, DAINT : 0x%x, DAINTMSK : 0x%x\n",
++ __FUNCTION__, intr_status, state_names[dev->ep0state], gintmsk,
++ readl(S3C_UDC_OTG_DAINT), readl(S3C_UDC_OTG_DAINTMSK));
++
++ if (!intr_status) {
++ spin_unlock(&dev->lock);
++ return IRQ_HANDLED;
++ }
++
++ if (intr_status & INT_ENUMDONE) {
++ DEBUG_SETUP("####################################\n");
++ DEBUG_SETUP(" %s: Speed Detection interrupt\n",
++ __FUNCTION__);
++
++ writel(INT_ENUMDONE, S3C_UDC_OTG_GINTSTS);
++ usb_status = (readl(S3C_UDC_OTG_DSTS) & 0x6);
++
++ if (usb_status & (USB_FULL_30_60MHZ | USB_FULL_48MHZ)) {
++ DEBUG_SETUP(" %s: Full Speed Detection\n",__FUNCTION__);
++ set_max_pktsize(dev, USB_SPEED_FULL);
++
++ } else {
++ DEBUG_SETUP(" %s: High Speed Detection : 0x%x\n", __FUNCTION__, usb_status);
++ set_max_pktsize(dev, USB_SPEED_HIGH);
++ }
++ }
++
++ if (intr_status & INT_EARLY_SUSPEND) {
++ DEBUG_SETUP("####################################\n");
++ DEBUG_SETUP(" %s:Early suspend interrupt\n", __FUNCTION__);
++ writel(INT_EARLY_SUSPEND, S3C_UDC_OTG_GINTSTS);
++ }
++
++ if (intr_status & INT_SUSPEND) {
++ usb_status = readl(S3C_UDC_OTG_DSTS);
++ DEBUG_SETUP("####################################\n");
++ DEBUG_SETUP(" %s:Suspend interrupt :(DSTS):0x%x\n", __FUNCTION__, usb_status);
++ writel(INT_SUSPEND, S3C_UDC_OTG_GINTSTS);
++
++ if (dev->gadget.speed != USB_SPEED_UNKNOWN
++ && dev->driver
++ && dev->driver->suspend) {
++
++ dev->driver->suspend(&dev->gadget);
++ }
++ }
++
++ if (intr_status & INT_RESUME) {
++ DEBUG_SETUP("####################################\n");
++ DEBUG_SETUP(" %s: Resume interrupt\n", __FUNCTION__);
++ writel(INT_RESUME, S3C_UDC_OTG_GINTSTS);
++
++ if (dev->gadget.speed != USB_SPEED_UNKNOWN
++ && dev->driver
++ && dev->driver->resume) {
++
++ dev->driver->resume(&dev->gadget);
++ }
++ }
++
++ if (intr_status & INT_RESET) {
++ usb_status = readl(S3C_UDC_OTG_GOTGCTL);
++ DEBUG_SETUP("####################################\n");
++ DEBUG_SETUP(" %s: Reset interrupt - (GOTGCTL):0x%x\n", __FUNCTION__, usb_status);
++ writel(INT_RESET, S3C_UDC_OTG_GINTSTS);
++
++ if((usb_status & 0xc0000) == (0x3 << 18)) {
++ if(reset_available) {
++ DEBUG_SETUP(" ===> OTG core got reset (%d)!! \n", reset_available);
++ reconfig_usbd();
++ dev->ep0state = WAIT_FOR_SETUP;
++ reset_available = 0;
++
++ writel((1 << 19)|sizeof(struct usb_ctrlrequest), S3C_UDC_OTG_DOEPTSIZ0);
++ writel(virt_to_phys(&usb_ctrl), S3C_UDC_OTG_DOEPDMA0);
++ writel(DEPCTL_EPENA |DEPCTL_CNAK, S3C_UDC_OTG_DOEPCTL0);
++ }
++ } else {
++ reset_available = 1;
++ DEBUG_SETUP(" RESET handling skipped : reset_available : %d\n", reset_available);
++ }
++ }
++
++ if (intr_status & INT_IN_EP) {
++ DEBUG_IN_EP("####################################\n");
++ DEBUG_IN_EP(" %s: EP In interrupt \n", __FUNCTION__);
++
++ process_ep_in_intr(dev);
++ }
++
++ if(intr_status & INT_OUT_EP) {
++ DEBUG_OUT_EP("####################################\n");
++ DEBUG_OUT_EP(" %s: EP In interrupt \n", __FUNCTION__);
++
++ process_ep_out_intr(dev);
++ }
++
++ spin_unlock(&dev->lock);
++
++ return IRQ_HANDLED;
++}
++
++/** Queue one request
++ * Kickstart transfer if needed
++ */
++static int s3c_queue(struct usb_ep *_ep, struct usb_request *_req,
++ gfp_t gfp_flags)
++{
++ struct s3c_request *req;
++ struct s3c_ep *ep;
++ struct s3c_udc *dev;
++ unsigned long flags;
++ u32 ep_num;
++
++ req = container_of(_req, struct s3c_request, req);
++ if (unlikely(!_req || !_req->complete || !_req->buf || !list_empty(&req->queue))) {
++
++ DEBUG("%s: bad params\n", __FUNCTION__);
++ return -EINVAL;
++ }
++
++ ep = container_of(_ep, struct s3c_ep, ep);
++
++ if (unlikely(!_ep || (!ep->desc && ep->ep.name != ep0name))) {
++
++ DEBUG("%s: bad ep\n", __FUNCTION__);
++ return -EINVAL;
++ }
++
++ ep_num = (u32)ep_index(ep);
++ dev = ep->dev;
++ if (unlikely(!dev->driver || dev->gadget.speed == USB_SPEED_UNKNOWN)) {
++
++ DEBUG("%s: bogus device state %p\n", __FUNCTION__, dev->driver);
++ return -ESHUTDOWN;
++ }
++
++ DEBUG("\n%s: %s queue req %p, len %d buf %p\n",
++ __FUNCTION__,_ep->name, _req, _req->length, _req->buf);
++
++ spin_lock_irqsave(&dev->lock, flags);
++
++ _req->status = -EINPROGRESS;
++ _req->actual = 0;
++
++ /* kickstart this i/o queue? */
++ DEBUG("%s: Add to ep=%d, Q empty=%d, stopped=%d\n",
++ __FUNCTION__, ep_num, list_empty(&ep->queue), ep->stopped);
++
++ if (list_empty(&ep->queue) && !ep->stopped) {
++ u32 csr;
++
++ if (ep_num == 0) {
++ /* EP0 */
++ list_add_tail(&req->queue, &ep->queue);
++ s3c_ep0_kick(dev, ep);
++ req = 0;
++
++ } else if (ep_num == EP2_IN || ep_num == EP3_IN) {
++ csr = readl((u32) S3C_UDC_OTG_GINTSTS);
++ DEBUG_IN_EP("%s: ep_is_in, S3C_UDC_OTG_GINTSTS=0x%x\n",
++ __FUNCTION__, csr);
++
++ setdma_tx(ep, req);
++
++ } else {
++ csr = readl((u32) S3C_UDC_OTG_GINTSTS);
++ DEBUG_OUT_EP("%s: ep_is_out, S3C_UDC_OTG_GINTSTS=0x%x\n",
++ __FUNCTION__, csr);
++
++ setdma_rx(ep, req);
++ }
++ }
++
++ /* pio or dma irq handler advances the queue. */
++ if (likely(req != 0)) {
++ list_add_tail(&req->queue, &ep->queue);
++ }
++
++ spin_unlock_irqrestore(&dev->lock, flags);
++
++ return 0;
++}
++
++/****************************************************************/
++/* End Point 0 related functions */
++/****************************************************************/
++
++/* return: 0 = still running, 1 = completed, negative = errno */
++static int write_fifo_ep0(struct s3c_ep *ep, struct s3c_request *req)
++{
++ u32 max;
++ unsigned count;
++ int is_last;
++
++ max = ep_maxpacket(ep);
++
++ DEBUG_EP0("%s: max = %d\n", __FUNCTION__, max);
++
++ count = setdma_tx(ep, req);
++
++ /* last packet is usually short (or a zlp) */
++ if (likely(count != max))
++ is_last = 1;
++ else {
++ if (likely(req->req.length != req->req.actual) || req->req.zero)
++ is_last = 0;
++ else
++ is_last = 1;
++ }
++
++ DEBUG_EP0("%s: wrote %s %d bytes%s %d left %p\n", __FUNCTION__,
++ ep->ep.name, count,
++ is_last ? "/L" : "", req->req.length - req->req.actual, req);
++
++ /* requests complete when all IN data is in the FIFO */
++ if (is_last) {
++ ep->dev->ep0state = WAIT_FOR_SETUP;
++ return 1;
++ }
++
++ return 0;
++}
++
++static __inline__ int s3c_fifo_read(struct s3c_ep *ep, u32 *cp, int max)
++{
++ u32 bytes;
++
++ bytes = sizeof(struct usb_ctrlrequest);
++ dma_cache_maint(&usb_ctrl, bytes, DMA_FROM_DEVICE);
++ DEBUG_EP0("%s: bytes=%d, ep_index=%d \n", __FUNCTION__, bytes, ep_index(ep));
++
++ return bytes;
++}
++
++/**
++ * udc_set_address - set the USB address for this device
++ * @address:
++ *
++ * Called from control endpoint function
++ * after it decodes a set address setup packet.
++ */
++static void udc_set_address(struct s3c_udc *dev, unsigned char address)
++{
++ u32 ctrl = readl(S3C_UDC_OTG_DCFG);
++ writel(address << 4 | ctrl, S3C_UDC_OTG_DCFG);
++ writel((1 << 19)|(0<<0), S3C_UDC_OTG_DIEPTSIZ0);
++
++ ctrl = readl(S3C_UDC_OTG_DIEPCTL0);
++ writel(DEPCTL_EPENA|DEPCTL_CNAK|ctrl, S3C_UDC_OTG_DIEPCTL0); /* EP0: Control IN */
++
++ DEBUG_EP0("%s: USB OTG 2.0 Device address=%d, DCFG=0x%x\n",
++ __FUNCTION__, address, readl(S3C_UDC_OTG_DCFG));
++
++ dev->usb_address = address;
++}
++
++static void s3c_ep0_read(struct s3c_udc *dev)
++{
++ struct s3c_request *req;
++ struct s3c_ep *ep = &dev->ep[0];
++ int ret;
++
++ if (!list_empty(&ep->queue)) {
++ req = list_entry(ep->queue.next, struct s3c_request, queue);
++
++ } else {
++ DEBUG("%s: ---> BUG\n", __FUNCTION__);
++ BUG(); //logic ensures -jassi
++ return;
++ }
++
++ DEBUG_EP0("%s: req.length = 0x%x, req.actual = 0x%x\n",
++ __FUNCTION__, req->req.length, req->req.actual);
++
++ if(req->req.length == 0) {
++ dev->ep0state = WAIT_FOR_SETUP;
++ done(ep, req, 0);
++ return;
++ }
++
++ ret = setdma_rx(ep, req);
++
++ if (ret) {
++ dev->ep0state = WAIT_FOR_SETUP;
++ done(ep, req, 0);
++ return;
++ }
++
++}
++
++/*
++ * DATA_STATE_XMIT
++ */
++static int s3c_ep0_write(struct s3c_udc *dev)
++{
++ struct s3c_request *req;
++ struct s3c_ep *ep = &dev->ep[0];
++ int ret, need_zlp = 0;
++
++ DEBUG_EP0("%s: ep0 write\n", __FUNCTION__);
++
++ if (list_empty(&ep->queue)) {
++ req = 0;
++
++ } else {
++ req = list_entry(ep->queue.next, struct s3c_request, queue);
++ }
++
++ if (!req) {
++ DEBUG_EP0("%s: NULL REQ\n", __FUNCTION__);
++ return 0;
++ }
++
++ DEBUG_EP0("%s: req.length = 0x%x, req.actual = 0x%x\n",
++ __FUNCTION__, req->req.length, req->req.actual);
++
++ if (req->req.length == 0) {
++ dev->ep0state = WAIT_FOR_SETUP;
++ s3c_send_zlp();
++ done(ep, req, 0);
++ return 1;
++ }
++
++ if (req->req.length - req->req.actual == ep0_fifo_size) {
++ /* Next write will end with the packet size, */
++ /* so we need Zero-length-packet */
++ need_zlp = 1;
++ }
++
++ ret = write_fifo_ep0(ep, req);
++
++ if ((ret == 1) && !need_zlp) {
++ /* Last packet */
++ DEBUG_EP0("%s: finished, waiting for status\n", __FUNCTION__);
++ dev->ep0state = WAIT_FOR_SETUP;
++
++ } else {
++ DEBUG_EP0("%s: not finished\n", __FUNCTION__);
++ dev->ep0state = DATA_STATE_XMIT;
++ }
++
++ if (need_zlp) {
++ DEBUG_EP0("%s: Need ZLP!\n", __FUNCTION__);
++ dev->ep0state = DATA_STATE_NEED_ZLP;
++ }
++
++ if(ret) {
++ done(ep, req, 0);
++ }
++
++ return 1;
++}
++
++u16 g_status;
++
++/*
++ * WAIT_FOR_SETUP (OUT_PKT_RDY)
++ */
++static void s3c_ep0_setup(struct s3c_udc *dev)
++{
++ struct s3c_ep *ep = &dev->ep[0];
++ int i, bytes, is_in;
++ u32 ep_ctrl, pktcnt;
++
++ /* Nuke all previous transfers */
++ nuke(ep, -EPROTO);
++
++ /* read control req from fifo (8 bytes) */
++ bytes = s3c_fifo_read(ep, (u32 *)&usb_ctrl, 8);
++
++ DEBUG_SETUP("Read CTRL REQ %d bytes\n", bytes);
++ DEBUG_SETUP(" CTRL.bRequestType = 0x%x (is_in %d)\n", usb_ctrl.bRequestType,
++ usb_ctrl.bRequestType & USB_DIR_IN);
++ DEBUG_SETUP(" CTRL.bRequest = 0x%x\n", usb_ctrl.bRequest);
++ DEBUG_SETUP(" CTRL.wLength = 0x%x\n", usb_ctrl.wLength);
++ DEBUG_SETUP(" CTRL.wValue = 0x%x (%d)\n", usb_ctrl.wValue, usb_ctrl.wValue >> 8);
++ DEBUG_SETUP(" CTRL.wIndex = 0x%x\n", usb_ctrl.wIndex);
++
++ /* Set direction of EP0 */
++ if (likely(usb_ctrl.bRequestType & USB_DIR_IN)) {
++ ep->bEndpointAddress |= USB_DIR_IN;
++ is_in = 1;
++
++ } else {
++ ep->bEndpointAddress &= ~USB_DIR_IN;
++ is_in = 0;
++ }
++
++ dev->req_pending = 1;
++
++ /* Handle some SETUP packets ourselves */
++ switch (usb_ctrl.bRequest) {
++ case USB_REQ_SET_ADDRESS:
++ if (usb_ctrl.bRequestType
++ != (USB_TYPE_STANDARD | USB_RECIP_DEVICE))
++ break;
++
++ DEBUG_SETUP("%s: *** USB_REQ_SET_ADDRESS (%d)\n",
++ __FUNCTION__, usb_ctrl.wValue);
++ udc_set_address(dev, usb_ctrl.wValue);
++ return;
++
++ case USB_REQ_SET_CONFIGURATION :
++ DEBUG_SETUP("============================================\n");
++ DEBUG_SETUP("%s: USB_REQ_SET_CONFIGURATION (%d)\n",
++ __FUNCTION__, usb_ctrl.wValue);
++config_change:
++ writel((1 << 19)|(0<<0), S3C_UDC_OTG_DIEPTSIZ0);
++
++ ep_ctrl = readl(S3C_UDC_OTG_DIEPCTL0);
++ writel(DEPCTL_EPENA|DEPCTL_CNAK|ep_ctrl, S3C_UDC_OTG_DIEPCTL0); /* EP0: Control IN */
++
++ // For Startng EP1 on this new configuration
++ ep_ctrl = readl(S3C_UDC_OTG_DOEPCTL1);
++ writel(DEPCTL_CNAK|DEPCTL_BULK_TYPE|DEPCTL_USBACTEP|ep_ctrl, S3C_UDC_OTG_DOEPCTL1); /* EP1: Bulk OUT */
++
++ // For starting EP2 on this new configuration
++ ep_ctrl = readl(S3C_UDC_OTG_DIEPCTL2);
++ writel(DEPCTL_CNAK|DEPCTL_BULK_TYPE|DEPCTL_USBACTEP|ep_ctrl, S3C_UDC_OTG_DIEPCTL2); /* EP2: Bulk IN */
++
++ // For starting EP3 on this new configuration
++ ep_ctrl = readl(S3C_UDC_OTG_DIEPCTL3);
++ writel(DEPCTL_CNAK|DEPCTL_BULK_TYPE|DEPCTL_USBACTEP|ep_ctrl, S3C_UDC_OTG_DIEPCTL3); /* EP3: INTR IN */
++
++ DEBUG_SETUP("%s:(DOEPCTL1):0x%x, (DIEPCTL2):0x%x, (DIEPCTL3):0x%x\n",
++ __FUNCTION__,
++ readl(S3C_UDC_OTG_DOEPCTL1),
++ readl(S3C_UDC_OTG_DIEPCTL2),
++ readl(S3C_UDC_OTG_DIEPCTL3));
++
++ DEBUG_SETUP("============================================\n");
++
++ reset_available = 1;
++ dev->req_config = 1;
++ break;
++
++ case USB_REQ_GET_DESCRIPTOR:
++ DEBUG_SETUP("%s: *** USB_REQ_GET_DESCRIPTOR \n",__FUNCTION__);
++ break;
++
++ case USB_REQ_SET_INTERFACE:
++ DEBUG_SETUP("%s: *** USB_REQ_SET_INTERFACE (%d)\n",
++ __FUNCTION__, usb_ctrl.wValue);
++ goto config_change;
++ break;
++
++ case USB_REQ_GET_CONFIGURATION:
++ DEBUG_SETUP("%s: *** USB_REQ_GET_CONFIGURATION \n",__FUNCTION__);
++ break;
++
++ case USB_REQ_GET_STATUS:
++ DEBUG_SETUP("%s: *** USB_REQ_GET_STATUS \n",__FUNCTION__);
++
++ if ((usb_ctrl.bRequestType & (USB_DIR_IN | USB_TYPE_MASK))
++ != (USB_DIR_IN | USB_TYPE_STANDARD)) {
++
++ DEBUG_SETUP("%s: *** USB_REQ_GET_STATUS : delegated !!! \n",__FUNCTION__);
++ break;
++ }
++
++ g_status = __constant_cpu_to_le16(0);
++
++ dma_cache_maint(&g_status, 2, DMA_TO_DEVICE);
++ pktcnt = 1;
++
++ writel(virt_to_phys(&g_status), S3C_UDC_OTG_DIEPDMA0);
++ writel((pktcnt<<19)|(2<<0), (u32) S3C_UDC_OTG_DIEPTSIZ0);
++
++ ep_ctrl = readl(S3C_UDC_OTG_DIEPCTL0);
++
++ writel(DEPCTL_EPENA|DEPCTL_CNAK|(EP0_CON<<11), (u32) S3C_UDC_OTG_DIEPCTL0);
++
++ dev->ep0state = WAIT_FOR_SETUP;
++ return;
++
++ default:
++ DEBUG_SETUP("%s: *** Default of usb_ctrl.bRequest=0x%x happened.\n",
++ __FUNCTION__, usb_ctrl.bRequest);
++ break;
++ }
++
++ if (likely(dev->driver)) {
++ /* device-2-host (IN) or no data setup command,
++ * process immediately */
++ spin_unlock(&dev->lock);
++ DEBUG_SETUP("%s: usb_ctrlrequest will be passed to fsg_setup()\n", __FUNCTION__);
++ i = dev->driver->setup(&dev->gadget, &usb_ctrl);
++ spin_lock(&dev->lock);
++
++ if (i < 0) {
++ /* setup processing failed, force stall */
++ DEBUG_SETUP("%s: gadget setup FAILED (stalling), setup returned %d\n",
++ __FUNCTION__, i);
++ /* ep->stopped = 1; */
++ dev->ep0state = WAIT_FOR_SETUP;
++ }
++ }
++}
++
++/*
++ * handle ep0 interrupt
++ */
++static void s3c_handle_ep0(struct s3c_udc *dev)
++{
++ if (dev->ep0state == WAIT_FOR_SETUP) {
++ DEBUG_EP0("%s: WAIT_FOR_SETUP\n", __FUNCTION__);
++ s3c_ep0_setup(dev);
++
++ } else {
++ DEBUG_EP0("%s: strange state!!(state = %s)\n",
++ __FUNCTION__, state_names[dev->ep0state]);
++ }
++}
++
++static void s3c_ep0_kick(struct s3c_udc *dev, struct s3c_ep *ep)
++{
++ DEBUG_EP0("%s: ep_is_in = %d\n", __FUNCTION__, ep_is_in(ep));
++ if (ep_is_in(ep)) {
++ dev->ep0state = DATA_STATE_XMIT;
++ s3c_ep0_write(dev);
++
++ } else {
++ dev->ep0state = DATA_STATE_RECV;
++ s3c_ep0_read(dev);
++ }
++}
+diff --git a/drivers/usb/gadget/s3c-udc-otg-xfer-slave.c b/drivers/usb/gadget/s3c-udc-otg-xfer-slave.c
+new file mode 100644
+index 0000000..9f9d52d
+--- /dev/null
++++ b/drivers/usb/gadget/s3c-udc-otg-xfer-slave.c
+@@ -0,0 +1,957 @@
++/*
++ * drivers/usb/gadget/s3c-udc-otg-hs-slave.c
++ * Samsung S3C on-chip full/high speed USB OTG 2.0 device controllers
++ *
++ * $Id: s3c-udc-otg-xfer-slave.c,v 1.2 2009/01/19 01:03:13 dasan Exp $*
++ *
++ * Copyright (C) 2009 for Samsung Electronics
++ *
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ */
++
++#define GINTMSK_INIT (INT_RESUME|INT_ENUMDONE|INT_RESET|INT_SUSPEND|INT_RX_FIFO_NOT_EMPTY)
++#define DOEPMSK_INIT (AHB_ERROR)
++#define DIEPMSK_INIT (NON_ISO_IN_EP_TIMEOUT|AHB_ERROR)
++#define GAHBCFG_INIT (PTXFE_HALF|NPTXFE_HALF|MODE_SLAVE|BURST_SINGLE|GBL_INT_UNMASK)
++
++u32 tx_ep_num = 2;
++
++static int set_interface_first = 0;
++
++/*-------------------------------------------------------------------------*/
++
++/** Read to request from FIFO (max read == bytes in fifo)
++ * Return: 0 = still running, 1 = completed, negative = errno
++ */
++static int read_fifo(struct s3c_ep *ep, struct s3c_request *req)
++{
++ u32 csr, gintmsk;
++ u32 *buf;
++ u32 bufferspace, count, count_bytes, is_short = 0;
++ u32 fifo = ep->fifo;
++
++ csr = readl(S3C_UDC_OTG_GRXSTSP);
++ count_bytes = (csr & 0x7ff0)>>4;
++
++ gintmsk = readl(S3C_UDC_OTG_GINTMSK);
++
++ if(!count_bytes) {
++ DEBUG_OUT_EP("%s: count_bytes %d bytes\n", __FUNCTION__, count_bytes);
++
++ // Unmask USB OTG 2.0 interrupt source : INT_RX_FIFO_NOT_EMPTY
++ writel(gintmsk | INT_RX_FIFO_NOT_EMPTY, S3C_UDC_OTG_GINTMSK);
++ return 0;
++ }
++
++ buf = req->req.buf + req->req.actual;
++ prefetchw(buf);
++ bufferspace = req->req.length - req->req.actual;
++
++ count = count_bytes / 4;
++ if(count_bytes%4) count = count + 1;
++
++ req->req.actual += min(count_bytes, bufferspace);
++
++ is_short = (count_bytes < ep->ep.maxpacket);
++ DEBUG_OUT_EP("%s: read %s, %d bytes%s req %p %d/%d GRXSTSP:0x%x\n",
++ __FUNCTION__,
++ ep->ep.name, count_bytes,
++ is_short ? "/S" : "", req, req->req.actual, req->req.length, csr);
++
++ while (likely(count-- != 0)) {
++ u32 byte = (u32) readl(fifo);
++
++ if (unlikely(bufferspace == 0)) {
++ /* this happens when the driver's buffer
++ * is smaller than what the host sent.
++ * discard the extra data.
++ */
++ if (req->req.status != -EOVERFLOW)
++ printk("%s overflow %d\n", ep->ep.name, count);
++ req->req.status = -EOVERFLOW;
++ } else {
++ *buf++ = byte;
++ bufferspace-=4;
++ }
++ }
++
++ // Unmask USB OTG 2.0 interrupt source : INT_RX_FIFO_NOT_EMPTY
++ writel(gintmsk | INT_RX_FIFO_NOT_EMPTY, S3C_UDC_OTG_GINTMSK);
++
++ /* completion */
++ if (is_short || req->req.actual == req->req.length) {
++ done(ep, req, 0);
++ return 1;
++ }
++
++ /* finished that packet. the next one may be waiting... */
++ return 0;
++}
++
++/* Inline code */
++static __inline__ int write_packet(struct s3c_ep *ep,
++ struct s3c_request *req, int max)
++{
++ u32 *buf;
++ int length, count;
++ u32 fifo = ep->fifo, in_ctrl;
++
++ buf = req->req.buf + req->req.actual;
++ prefetch(buf);
++
++ length = req->req.length - req->req.actual;
++ length = min(length, max);
++ req->req.actual += length;
++
++ DEBUG("%s: Write %d (max %d), fifo=0x%x\n",
++ __FUNCTION__, length, max, fifo);
++
++ if(ep_index(ep) == EP0_CON) {
++ writel((1<<19)|(length<<0), (u32) S3C_UDC_OTG_DIEPTSIZ0);
++
++ in_ctrl = readl(S3C_UDC_OTG_DIEPCTL0);
++ writel(DEPCTL_EPENA|DEPCTL_CNAK|(EP2_IN<<11)| in_ctrl, (u32) S3C_UDC_OTG_DIEPCTL0);
++
++ DEBUG_EP0("%s:(DIEPTSIZ0):0x%x, (DIEPCTL0):0x%x, (GNPTXSTS):0x%x\n", __FUNCTION__,
++ readl(S3C_UDC_OTG_DIEPTSIZ0),readl(S3C_UDC_OTG_DIEPCTL0),
++ readl(S3C_UDC_OTG_GNPTXSTS));
++
++ udelay(30);
++
++ } else if ((ep_index(ep) == EP2_IN)) {
++ writel((1<<19)|(length<<0), S3C_UDC_OTG_DIEPTSIZ2);
++
++ in_ctrl = readl(S3C_UDC_OTG_DIEPCTL2);
++ writel(DEPCTL_EPENA|DEPCTL_CNAK|(EP2_IN<<11)| in_ctrl, (u32) S3C_UDC_OTG_DIEPCTL2);
++
++ DEBUG_IN_EP("%s:(DIEPTSIZ2):0x%x, (DIEPCTL2):0x%x, (GNPTXSTS):0x%x\n", __FUNCTION__,
++ readl(S3C_UDC_OTG_DIEPTSIZ2),readl(S3C_UDC_OTG_DIEPCTL2),
++ readl(S3C_UDC_OTG_GNPTXSTS));
++
++ udelay(30);
++
++ } else if ((ep_index(ep) == EP3_IN)) {
++
++ if (set_interface_first == 1) {
++ DEBUG_IN_EP("%s: first packet write skipped after set_interface\n", __FUNCTION__);
++ set_interface_first = 0;
++ return length;
++ }
++
++ writel((1<<19)|(length<<0), S3C_UDC_OTG_DIEPTSIZ3);
++
++ in_ctrl = readl(S3C_UDC_OTG_DIEPCTL3);
++ writel(DEPCTL_EPENA|DEPCTL_CNAK|(EP2_IN<<11)| in_ctrl, (u32) S3C_UDC_OTG_DIEPCTL3);
++
++ DEBUG_IN_EP("%s:(DIEPTSIZ3):0x%x, (DIEPCTL3):0x%x, (GNPTXSTS):0x%x\n", __FUNCTION__,
++ readl(S3C_UDC_OTG_DIEPTSIZ3),readl(S3C_UDC_OTG_DIEPCTL3),
++ readl(S3C_UDC_OTG_GNPTXSTS));
++
++ udelay(30);
++
++ } else {
++ printk("%s: --> Error Unused Endpoint!!\n",
++ __FUNCTION__);
++ BUG();
++ }
++
++ for (count=0;count<length;count+=4) {
++ writel(*buf++, fifo);
++ }
++ return length;
++}
++
++/** Write request to FIFO (max write == maxp size)
++ * Return: 0 = still running, 1 = completed, negative = errno
++ */
++static int write_fifo(struct s3c_ep *ep, struct s3c_request *req)
++{
++ u32 max, gintmsk;
++ unsigned count;
++ int is_last = 0, is_short = 0;
++
++ gintmsk = readl(S3C_UDC_OTG_GINTMSK);
++
++ max = le16_to_cpu(ep->desc->wMaxPacketSize);
++ count = write_packet(ep, req, max);
++
++ /* last packet is usually short (or a zlp) */
++ if (unlikely(count != max))
++ is_last = is_short = 1;
++ else {
++ if (likely(req->req.length != req->req.actual)
++ || req->req.zero)
++ is_last = 0;
++ else
++ is_last = 1;
++ /* interrupt/iso maxpacket may not fill the fifo */
++ is_short = unlikely(max < ep_maxpacket(ep));
++ }
++
++ DEBUG_IN_EP("%s: wrote %s %d bytes%s%s req %p %d/%d\n",
++ __FUNCTION__,
++ ep->ep.name, count,
++ is_last ? "/L" : "", is_short ? "/S" : "",
++ req, req->req.actual, req->req.length);
++
++ /* requests complete when all IN data is in the FIFO */
++ if (is_last) {
++ if(!ep_index(ep)){
++ printk("%s: --> Error EP0 must not come here!\n",
++ __FUNCTION__);
++ BUG();
++ }
++ writel(gintmsk&(~INT_NP_TX_FIFO_EMPTY), S3C_UDC_OTG_GINTMSK);
++ done(ep, req, 0);
++ return 1;
++ }
++
++ // Unmask USB OTG 2.0 interrupt source : INT_NP_TX_FIFO_EMPTY
++ writel(gintmsk | INT_NP_TX_FIFO_EMPTY, S3C_UDC_OTG_GINTMSK);
++ return 0;
++}
++
++/* ********************************************************************************************* */
++/* Bulk OUT (recv)
++ */
++
++static void s3c_out_epn(struct s3c_udc *dev, u32 ep_idx)
++{
++ struct s3c_ep *ep = &dev->ep[ep_idx];
++ struct s3c_request *req;
++
++ if (unlikely(!(ep->desc))) {
++ /* Throw packet away.. */
++ printk("%s: No descriptor?!?\n", __FUNCTION__);
++ return;
++ }
++
++ if (list_empty(&ep->queue))
++ req = 0;
++ else
++ req = list_entry(ep->queue.next,
++ struct s3c_request, queue);
++
++ if (unlikely(!req)) {
++ DEBUG_OUT_EP("%s: NULL REQ on OUT EP-%d\n", __FUNCTION__, ep_idx);
++ return;
++
++ } else {
++ read_fifo(ep, req);
++ }
++
++}
++
++/**
++ * s3c_in_epn - handle IN interrupt
++ */
++static void s3c_in_epn(struct s3c_udc *dev, u32 ep_idx)
++{
++ struct s3c_ep *ep = &dev->ep[ep_idx];
++ struct s3c_request *req;
++
++ if (list_empty(&ep->queue))
++ req = 0;
++ else
++ req = list_entry(ep->queue.next, struct s3c_request, queue);
++
++ if (unlikely(!req)) {
++ DEBUG_IN_EP("%s: NULL REQ on IN EP-%d\n", __FUNCTION__, ep_idx);
++ return;
++ }
++ else {
++ write_fifo(ep, req);
++ }
++
++}
++
++/*
++ * elfin usb client interrupt handler.
++ */
++static irqreturn_t s3c_udc_irq(int irq, void *_dev)
++{
++ struct s3c_udc *dev = _dev;
++ u32 intr_status;
++ u32 usb_status, ep_ctrl, gintmsk;
++
++ spin_lock(&dev->lock);
++
++ intr_status = readl(S3C_UDC_OTG_GINTSTS);
++ gintmsk = readl(S3C_UDC_OTG_GINTMSK);
++
++ DEBUG_ISR("\n**** %s : GINTSTS=0x%x(on state %s), GINTMSK : 0x%x\n",
++ __FUNCTION__, intr_status, state_names[dev->ep0state], gintmsk);
++
++ if (!intr_status) {
++ spin_unlock(&dev->lock);
++ return IRQ_HANDLED;
++ }
++
++ if (intr_status & INT_ENUMDONE) {
++ DEBUG_SETUP("####################################\n");
++ DEBUG_SETUP(" %s: Speed Detection interrupt\n",
++ __FUNCTION__);
++ writel(INT_ENUMDONE, S3C_UDC_OTG_GINTSTS);
++
++ usb_status = (readl(S3C_UDC_OTG_DSTS) & 0x6);
++
++ if (usb_status & (USB_FULL_30_60MHZ | USB_FULL_48MHZ)) {
++ DEBUG_SETUP(" %s: Full Speed Detection\n",__FUNCTION__);
++ set_max_pktsize(dev, USB_SPEED_FULL);
++
++ } else {
++ DEBUG_SETUP(" %s: High Speed Detection : 0x%x\n", __FUNCTION__, usb_status);
++ set_max_pktsize(dev, USB_SPEED_HIGH);
++ }
++ }
++
++ if (intr_status & INT_EARLY_SUSPEND) {
++ DEBUG_SETUP("####################################\n");
++ DEBUG_SETUP(" %s:Early suspend interrupt\n", __FUNCTION__);
++ writel(INT_EARLY_SUSPEND, S3C_UDC_OTG_GINTSTS);
++ }
++
++ if (intr_status & INT_SUSPEND) {
++ usb_status = readl(S3C_UDC_OTG_DSTS);
++ DEBUG_SETUP("####################################\n");
++ DEBUG_SETUP(" %s:Suspend interrupt :(DSTS):0x%x\n", __FUNCTION__, usb_status);
++ writel(INT_SUSPEND, S3C_UDC_OTG_GINTSTS);
++
++ if (dev->gadget.speed != USB_SPEED_UNKNOWN
++ && dev->driver
++ && dev->driver->suspend) {
++
++ dev->driver->suspend(&dev->gadget);
++ }
++ }
++
++ if (intr_status & INT_RESUME) {
++ DEBUG_SETUP("####################################\n");
++ DEBUG_SETUP(" %s: Resume interrupt\n", __FUNCTION__);
++ writel(INT_RESUME, S3C_UDC_OTG_GINTSTS);
++
++ if (dev->gadget.speed != USB_SPEED_UNKNOWN
++ && dev->driver
++ && dev->driver->resume) {
++
++ dev->driver->resume(&dev->gadget);
++ }
++ }
++
++ if (intr_status & INT_RESET) {
++ usb_status = readl(S3C_UDC_OTG_GOTGCTL);
++ DEBUG_SETUP("####################################\n");
++ DEBUG_SETUP(" %s: Reset interrupt - (GOTGCTL):0x%x\n", __FUNCTION__, usb_status);
++ writel(INT_RESET, S3C_UDC_OTG_GINTSTS);
++
++ if((usb_status & 0xc0000) == (0x3 << 18)) {
++ if(reset_available) {
++ DEBUG_SETUP(" ===> OTG core got reset (%d)!! \n", reset_available);
++ reconfig_usbd();
++ dev->ep0state = WAIT_FOR_SETUP;
++ reset_available = 0;
++ }
++ } else {
++ reset_available = 1;
++ DEBUG_SETUP(" RESET handling skipped : reset_available : %d\n", reset_available);
++ }
++ }
++
++ if (intr_status & INT_RX_FIFO_NOT_EMPTY) {
++ u32 grx_status, packet_status, ep_num, fifoCntByte = 0;
++
++ // Mask USB OTG 2.0 interrupt source : INT_RX_FIFO_NOT_EMPTY
++ gintmsk &= ~INT_RX_FIFO_NOT_EMPTY;
++ writel(gintmsk, S3C_UDC_OTG_GINTMSK);
++
++ grx_status = readl(S3C_UDC_OTG_GRXSTSR);
++ DEBUG_ISR(" INT_RX_FIFO_NOT_EMPTY(GRXSTSR):0x%x, GINTMSK:0x%x\n", grx_status, gintmsk);
++
++ packet_status = grx_status & 0x1E0000;
++ fifoCntByte = (grx_status & 0x7ff0)>>4;
++ ep_num = grx_status & EP_MASK;
++
++ if (fifoCntByte) {
++
++ if (packet_status == SETUP_PKT_RECEIVED) {
++ DEBUG_EP0(" => A SETUP data packet received : %d bytes\n", fifoCntByte);
++ s3c_handle_ep0(dev);
++
++ // Unmask USB OTG 2.0 interrupt source : INT_RX_FIFO_NOT_EMPTY
++ gintmsk |= INT_RX_FIFO_NOT_EMPTY;
++
++ } else if (packet_status == OUT_PKT_RECEIVED) {
++
++ if(ep_num == EP1_OUT) {
++ ep_ctrl = readl(S3C_UDC_OTG_DOEPCTL1);
++ DEBUG_ISR(" => A Bulk OUT data packet received : %d bytes, (DOEPCTL1):0x%x\n",
++ fifoCntByte, ep_ctrl);
++ s3c_out_epn(dev, 1);
++ gintmsk = readl(S3C_UDC_OTG_GINTMSK);
++ writel(ep_ctrl | DEPCTL_CNAK, S3C_UDC_OTG_DOEPCTL1);
++ } else if (ep_num == EP0_CON) {
++ ep_ctrl = readl(S3C_UDC_OTG_DOEPCTL0);
++ DEBUG_EP0(" => A CONTROL OUT data packet received : %d bytes, (DOEPCTL0):0x%x\n",
++ fifoCntByte, ep_ctrl);
++ dev->ep0state = DATA_STATE_RECV;
++ s3c_ep0_read(dev);
++ gintmsk |= INT_RX_FIFO_NOT_EMPTY;
++ } else {
++ DEBUG_ISR(" => Unused EP: %d bytes, (GRXSTSR):0x%x\n", fifoCntByte, grx_status);
++ }
++ } else {
++ grx_status = readl(S3C_UDC_OTG_GRXSTSP);
++
++ // Unmask USB OTG 2.0 interrupt source : INT_RX_FIFO_NOT_EMPTY
++ gintmsk |= INT_RX_FIFO_NOT_EMPTY;
++
++ DEBUG_ISR(" => A reserved packet received : %d bytes\n", fifoCntByte);
++ }
++ } else {
++ if (dev->ep0state == DATA_STATE_XMIT) {
++ ep_ctrl = readl(S3C_UDC_OTG_DOEPCTL0);
++ DEBUG_EP0(" => Write ep0 continue... (DOEPCTL0):0x%x\n", ep_ctrl);
++ s3c_ep0_write(dev);
++ }
++
++ if (packet_status == SETUP_TRANSACTION_COMPLETED) {
++ ep_ctrl = readl(S3C_UDC_OTG_DOEPCTL0);
++ DEBUG_EP0(" => A SETUP transaction completed (DOEPCTL0):0x%x\n", ep_ctrl);
++ writel(ep_ctrl | DEPCTL_CNAK, S3C_UDC_OTG_DOEPCTL0);
++
++ } else if (packet_status == OUT_TRANSFER_COMPLELTED) {
++ if (ep_num == EP1_OUT) {
++ ep_ctrl = readl(S3C_UDC_OTG_DOEPCTL1);
++ DEBUG_ISR(" => An OUT transaction completed (DOEPCTL1):0x%x\n", ep_ctrl);
++ writel(ep_ctrl | DEPCTL_CNAK, S3C_UDC_OTG_DOEPCTL1);
++ } else if (ep_num == EP0_CON) {
++ ep_ctrl = readl(S3C_UDC_OTG_DOEPCTL0);
++ DEBUG_ISR(" => An OUT transaction completed (DOEPCTL0):0x%x\n", ep_ctrl);
++ writel(ep_ctrl | DEPCTL_CNAK, S3C_UDC_OTG_DOEPCTL0);
++ } else {
++ DEBUG_ISR(" => Unused EP: %d bytes, (GRXSTSR):0x%x\n", fifoCntByte, grx_status);
++ }
++ } else if (packet_status == OUT_PKT_RECEIVED) {
++ DEBUG_ISR(" => A OUT PACKET RECEIVED (NO FIFO CNT BYTE)...(GRXSTSR):0x%x\n", grx_status);
++ } else {
++ DEBUG_ISR(" => A RESERVED PACKET RECEIVED (NO FIFO CNT BYTE)...(GRXSTSR):0x%x\n", grx_status);
++ }
++
++ grx_status = readl(S3C_UDC_OTG_GRXSTSP);
++
++ // Unmask USB OTG 2.0 interrupt source : INT_RX_FIFO_NOT_EMPTY
++ gintmsk |= INT_RX_FIFO_NOT_EMPTY;
++
++ }
++
++ // Un/Mask USB OTG 2.0 interrupt sources
++ writel(gintmsk, S3C_UDC_OTG_GINTMSK);
++
++ spin_unlock(&dev->lock);
++ return IRQ_HANDLED;
++ }
++
++
++ if (intr_status & INT_NP_TX_FIFO_EMPTY) {
++ DEBUG_ISR(" INT_NP_TX_FIFO_EMPTY (GNPTXSTS):0x%x, (GINTMSK):0x%x, ep_num=%d\n",
++ readl(S3C_UDC_OTG_GNPTXSTS),
++ readl(S3C_UDC_OTG_GINTMSK),
++ tx_ep_num);
++
++ s3c_in_epn(dev, tx_ep_num);
++ }
++
++ spin_unlock(&dev->lock);
++
++ return IRQ_HANDLED;
++}
++
++/** Queue one request
++ * Kickstart transfer if needed
++ */
++static int s3c_queue(struct usb_ep *_ep, struct usb_request *_req,
++ gfp_t gfp_flags)
++{
++ struct s3c_request *req;
++ struct s3c_ep *ep;
++ struct s3c_udc *dev;
++ unsigned long flags;
++
++ req = container_of(_req, struct s3c_request, req);
++ if (unlikely(!_req || !_req->complete || !_req->buf
++ || !list_empty(&req->queue)))
++ {
++ DEBUG("%s: bad params\n", __FUNCTION__);
++ return -EINVAL;
++ }
++
++ ep = container_of(_ep, struct s3c_ep, ep);
++ if (unlikely(!_ep || (!ep->desc && ep->ep.name != ep0name))) {
++ DEBUG("%s: bad ep\n", __FUNCTION__);
++ return -EINVAL;
++ }
++
++ dev = ep->dev;
++ if (unlikely(!dev->driver || dev->gadget.speed == USB_SPEED_UNKNOWN)) {
++ DEBUG("%s: bogus device state %p\n", __FUNCTION__, dev->driver);
++ return -ESHUTDOWN;
++ }
++
++ DEBUG("\n%s: %s queue req %p, len %d buf %p\n",
++ __FUNCTION__, _ep->name, _req, _req->length, _req->buf);
++
++ spin_lock_irqsave(&dev->lock, flags);
++
++ _req->status = -EINPROGRESS;
++ _req->actual = 0;
++
++ /* kickstart this i/o queue? */
++ DEBUG("%s: Add to ep=%d, Q empty=%d, stopped=%d\n",
++ __FUNCTION__, ep_index(ep), list_empty(&ep->queue), ep->stopped);
++
++ if (list_empty(&ep->queue) && likely(!ep->stopped)) {
++ u32 csr;
++
++ if (unlikely(ep_index(ep) == 0)) {
++ /* EP0 */
++ list_add_tail(&req->queue, &ep->queue);
++ s3c_ep0_kick(dev, ep);
++ req = 0;
++
++ } else if (ep_is_in(ep)) {
++ csr = readl((u32) S3C_UDC_OTG_GINTSTS);
++ DEBUG_IN_EP("%s: ep_is_in, S3C_UDC_OTG_GINTSTS=0x%x\n",
++ __FUNCTION__, csr);
++
++ if((csr & INT_NP_TX_FIFO_EMPTY) &&
++ (write_fifo(ep, req) == 1)) {
++ req = 0;
++ } else {
++ DEBUG("++++ IN-list_add_taill::req=%p, ep=%d\n",
++ req, ep_index(ep));
++ tx_ep_num = ep_index(ep);
++ }
++ } else {
++ csr = readl((u32) S3C_UDC_OTG_GINTSTS);
++ DEBUG_OUT_EP("%s: ep_is_out, S3C_UDC_OTG_GINTSTS=0x%x\n",
++ __FUNCTION__, csr);
++
++ if((csr & INT_RX_FIFO_NOT_EMPTY) &&
++ (read_fifo(ep, req) == 1))
++ req = 0;
++ else
++ DEBUG("++++ OUT-list_add_taill::req=%p, DOEPCTL1:0x%x\n",
++ req, readl(S3C_UDC_OTG_DOEPCTL1));
++ }
++ }
++
++ /* pio or dma irq handler advances the queue. */
++ if (likely(req != 0))
++ list_add_tail(&req->queue, &ep->queue);
++
++ spin_unlock_irqrestore(&dev->lock, flags);
++
++ return 0;
++}
++
++/****************************************************************/
++/* End Point 0 related functions */
++/****************************************************************/
++
++/* return: 0 = still running, 1 = completed, negative = errno */
++static int write_fifo_ep0(struct s3c_ep *ep, struct s3c_request *req)
++{
++ u32 max;
++ unsigned count;
++ int is_last;
++
++ max = ep_maxpacket(ep);
++
++ DEBUG_EP0("%s: max = %d\n", __FUNCTION__, max);
++
++ count = write_packet(ep, req, max);
++
++ /* last packet is usually short (or a zlp) */
++ if (likely(count != max))
++ is_last = 1;
++ else {
++ if (likely(req->req.length != req->req.actual) || req->req.zero)
++ is_last = 0;
++ else
++ is_last = 1;
++ }
++
++ DEBUG_EP0("%s: wrote %s %d bytes%s %d left %p\n", __FUNCTION__,
++ ep->ep.name, count,
++ is_last ? "/L" : "", req->req.length - req->req.actual, req);
++
++ /* requests complete when all IN data is in the FIFO */
++ if (is_last) {
++ return 1;
++ }
++
++ return 0;
++}
++
++static __inline__ int s3c_fifo_read(struct s3c_ep *ep, u32 *cp, int max)
++{
++ int bytes;
++ int count;
++ u32 grx_status = readl(S3C_UDC_OTG_GRXSTSP);
++ bytes = (grx_status & 0x7ff0)>>4;
++
++ DEBUG_EP0("%s: GRXSTSP=0x%x, bytes=%d, ep_index=%d, fifo=0x%x\n",
++ __FUNCTION__, grx_status, bytes, ep_index(ep), ep->fifo);
++
++ // 32 bits interface
++ count = bytes / 4;
++
++ while (count--) {
++ *cp++ = (u32) readl(S3C_UDC_OTG_EP0_FIFO);
++ }
++
++ return bytes;
++}
++
++static int read_fifo_ep0(struct s3c_ep *ep, struct s3c_request *req)
++{
++ u32 csr;
++ u32 *buf;
++ unsigned bufferspace, count, is_short, bytes;
++ u32 fifo = ep->fifo;
++
++ DEBUG_EP0("%s\n", __FUNCTION__);
++
++ csr = readl(S3C_UDC_OTG_GRXSTSP);
++ bytes = (csr & 0x7ff0)>>4;
++
++ buf = req->req.buf + req->req.actual;
++ prefetchw(buf);
++ bufferspace = req->req.length - req->req.actual;
++
++ /* read all bytes from this packet */
++ if (likely((csr & EP_MASK) == EP0_CON)) {
++ count = bytes / 4;
++ req->req.actual += min(bytes, bufferspace);
++
++ } else { // zlp
++ count = 0;
++ bytes = 0;
++ }
++
++ is_short = (bytes < ep->ep.maxpacket);
++ DEBUG_EP0("%s: read %s %02x, %d bytes%s req %p %d/%d\n",
++ __FUNCTION__,
++ ep->ep.name, csr, bytes,
++ is_short ? "/S" : "", req, req->req.actual, req->req.length);
++
++ while (likely(count-- != 0)) {
++ u32 byte = (u32) readl(fifo);
++
++ if (unlikely(bufferspace == 0)) {
++ /* this happens when the driver's buffer
++ * is smaller than what the host sent.
++ * discard the extra data.
++ */
++ if (req->req.status != -EOVERFLOW)
++ DEBUG_EP0("%s overflow %d\n", ep->ep.name,
++ count);
++ req->req.status = -EOVERFLOW;
++ } else {
++ *buf++ = byte;
++ bufferspace = bufferspace - 4;
++ }
++ }
++
++ /* completion */
++ if (is_short || req->req.actual == req->req.length) {
++ return 1;
++ }
++
++ return 0;
++}
++
++/**
++ * udc_set_address - set the USB address for this device
++ * @address:
++ *
++ * Called from control endpoint function
++ * after it decodes a set address setup packet.
++ */
++static void udc_set_address(struct s3c_udc *dev, unsigned char address)
++{
++ u32 ctrl = readl(S3C_UDC_OTG_DCFG);
++ writel(address << 4 | ctrl, S3C_UDC_OTG_DCFG);
++
++ ctrl = readl(S3C_UDC_OTG_DIEPCTL0);
++ writel(DEPCTL_EPENA|DEPCTL_CNAK|ctrl, S3C_UDC_OTG_DIEPCTL0); /* EP0: Control IN */
++
++ DEBUG_EP0("%s: USB OTG 2.0 Device address=%d, DCFG=0x%x\n",
++ __FUNCTION__, address, readl(S3C_UDC_OTG_DCFG));
++
++ dev->usb_address = address;
++}
++
++
++
++static int first_time = 1;
++
++static void s3c_ep0_read(struct s3c_udc *dev)
++{
++ struct s3c_request *req;
++ struct s3c_ep *ep = &dev->ep[0];
++ int ret;
++
++ if (!list_empty(&ep->queue))
++ req = list_entry(ep->queue.next, struct s3c_request, queue);
++ else {
++ printk("%s: ---> BUG\n", __FUNCTION__);
++ BUG(); //logic ensures -jassi
++ return;
++ }
++
++ DEBUG_EP0("%s: req.length = 0x%x, req.actual = 0x%x\n",
++ __FUNCTION__, req->req.length, req->req.actual);
++
++ if(req->req.length == 0) {
++ dev->ep0state = WAIT_FOR_SETUP;
++ first_time = 1;
++ done(ep, req, 0);
++ return;
++ }
++
++ if(!req->req.actual && first_time){ //for SetUp packet
++ first_time = 0;
++ return;
++ }
++
++ ret = read_fifo_ep0(ep, req);
++ if (ret) {
++ dev->ep0state = WAIT_FOR_SETUP;
++ first_time = 1;
++ done(ep, req, 0);
++ return;
++ }
++
++}
++
++/*
++ * DATA_STATE_XMIT
++ */
++static int s3c_ep0_write(struct s3c_udc *dev)
++{
++ struct s3c_request *req;
++ struct s3c_ep *ep = &dev->ep[0];
++ int ret, need_zlp = 0;
++
++ DEBUG_EP0("%s: ep0 write\n", __FUNCTION__);
++
++ if (list_empty(&ep->queue))
++ req = 0;
++ else
++ req = list_entry(ep->queue.next, struct s3c_request, queue);
++
++ if (!req) {
++ DEBUG_EP0("%s: NULL REQ\n", __FUNCTION__);
++ return 0;
++ }
++
++ DEBUG_EP0("%s: req.length = 0x%x, req.actual = 0x%x\n",
++ __FUNCTION__, req->req.length, req->req.actual);
++
++ if (req->req.length == 0) {
++ dev->ep0state = WAIT_FOR_SETUP;
++ done(ep, req, 0);
++ return 1;
++ }
++
++ if (req->req.length - req->req.actual == ep0_fifo_size) {
++ /* Next write will end with the packet size, */
++ /* so we need Zero-length-packet */
++ need_zlp = 1;
++ }
++
++ ret = write_fifo_ep0(ep, req);
++
++ if ((ret == 1) && !need_zlp) {
++ /* Last packet */
++ DEBUG_EP0("%s: finished, waiting for status\n", __FUNCTION__);
++ dev->ep0state = WAIT_FOR_SETUP;
++ } else {
++ DEBUG_EP0("%s: not finished\n", __FUNCTION__);
++ }
++
++ if (need_zlp) {
++ DEBUG_EP0("%s: Need ZLP!\n", __FUNCTION__);
++ dev->ep0state = DATA_STATE_NEED_ZLP;
++ }
++
++ if(ret)
++ done(ep, req, 0);
++
++ return 1;
++}
++
++/*
++ * WAIT_FOR_SETUP (OUT_PKT_RDY)
++ */
++static void s3c_ep0_setup(struct s3c_udc *dev)
++{
++ struct s3c_ep *ep = &dev->ep[0];
++ int i, bytes, is_in;
++ u32 ep_ctrl;
++
++ /* Nuke all previous transfers */
++ nuke(ep, -EPROTO);
++
++ /* read control req from fifo (8 bytes) */
++ bytes = s3c_fifo_read(ep, (u32 *)&usb_ctrl, 8);
++
++ DEBUG_SETUP("Read CTRL REQ %d bytes\n", bytes);
++ DEBUG_SETUP(" CTRL.bRequestType = 0x%x (is_in %d)\n", usb_ctrl.bRequestType,
++ usb_ctrl.bRequestType & USB_DIR_IN);
++ DEBUG_SETUP(" CTRL.bRequest = 0x%x\n", usb_ctrl.bRequest);
++ DEBUG_SETUP(" CTRL.wLength = 0x%x\n", usb_ctrl.wLength);
++ DEBUG_SETUP(" CTRL.wValue = 0x%x (%d)\n", usb_ctrl.wValue, usb_ctrl.wValue >> 8);
++ DEBUG_SETUP(" CTRL.wIndex = 0x%x\n", usb_ctrl.wIndex);
++
++ /* Set direction of EP0 */
++ if (likely(usb_ctrl.bRequestType & USB_DIR_IN)) {
++ ep->bEndpointAddress |= USB_DIR_IN;
++ is_in = 1;
++ } else {
++ ep->bEndpointAddress &= ~USB_DIR_IN;
++ is_in = 0;
++ }
++
++ dev->req_pending = 1;
++
++ /* Handle some SETUP packets ourselves */
++ switch (usb_ctrl.bRequest) {
++ case USB_REQ_SET_ADDRESS:
++ if (usb_ctrl.bRequestType
++ != (USB_TYPE_STANDARD | USB_RECIP_DEVICE))
++ break;
++
++ DEBUG_SETUP("%s: *** USB_REQ_SET_ADDRESS (%d)\n",
++ __FUNCTION__, usb_ctrl.wValue);
++ udc_set_address(dev, usb_ctrl.wValue);
++ return;
++
++ case USB_REQ_SET_CONFIGURATION :
++ DEBUG_SETUP("============================================\n");
++ DEBUG_SETUP("%s: USB_REQ_SET_CONFIGURATION (%d)\n",
++ __FUNCTION__, usb_ctrl.wValue);
++config_change:
++ // Just to send ZLP(Zero length Packet) to HOST in response to SET CONFIGURATION
++ ep_ctrl = readl(S3C_UDC_OTG_DIEPCTL0);
++ writel(DEPCTL_EPENA|DEPCTL_CNAK|ep_ctrl, S3C_UDC_OTG_DIEPCTL0); /* EP0: Control IN */
++
++ // For Startng EP1 on this new configuration
++ ep_ctrl = readl(S3C_UDC_OTG_DOEPCTL1);
++ writel(DEPCTL_EPDIS|DEPCTL_CNAK|DEPCTL_BULK_TYPE|DEPCTL_USBACTEP|ep_ctrl, S3C_UDC_OTG_DOEPCTL1); /* EP1: Bulk OUT */
++
++ // For starting EP2 on this new configuration
++ ep_ctrl = readl(S3C_UDC_OTG_DIEPCTL2);
++ writel(DEPCTL_BULK_TYPE|DEPCTL_USBACTEP|ep_ctrl, S3C_UDC_OTG_DIEPCTL2); /* EP2: Bulk IN */
++
++ // For starting EP3 on this new configuration
++ ep_ctrl = readl(S3C_UDC_OTG_DIEPCTL3);
++ writel(DEPCTL_BULK_TYPE|DEPCTL_USBACTEP|ep_ctrl, S3C_UDC_OTG_DIEPCTL3); /* EP3: INTR IN */
++
++ DEBUG_SETUP("%s:(DOEPCTL1):0x%x, (DIEPCTL2):0x%x, (DIEPCTL3):0x%x\n",
++ __FUNCTION__,
++ readl(S3C_UDC_OTG_DOEPCTL1),
++ readl(S3C_UDC_OTG_DIEPCTL2),
++ readl(S3C_UDC_OTG_DIEPCTL3));
++
++ DEBUG_SETUP("============================================\n");
++
++ reset_available = 1;
++ dev->req_config = 1;
++ break;
++
++ case USB_REQ_GET_DESCRIPTOR:
++ DEBUG_SETUP("%s: *** USB_REQ_GET_DESCRIPTOR \n",__FUNCTION__);
++ break;
++
++ case USB_REQ_SET_INTERFACE:
++ DEBUG_SETUP("%s: *** USB_REQ_SET_INTERFACE (%d)\n",
++ __FUNCTION__, usb_ctrl.wValue);
++
++ set_interface_first = 1;
++ goto config_change;
++ break;
++
++ case USB_REQ_GET_CONFIGURATION:
++ DEBUG_SETUP("%s: *** USB_REQ_GET_CONFIGURATION \n",__FUNCTION__);
++ break;
++
++ case USB_REQ_GET_STATUS:
++ DEBUG_SETUP("%s: *** USB_REQ_GET_STATUS \n",__FUNCTION__);
++ break;
++
++ default:
++ DEBUG_SETUP("%s: *** Default of usb_ctrl.bRequest=0x%x happened.\n",
++ __FUNCTION__, usb_ctrl.bRequest);
++ break;
++ }
++
++ if (likely(dev->driver)) {
++ /* device-2-host (IN) or no data setup command,
++ * process immediately */
++ spin_unlock(&dev->lock);
++ DEBUG_SETUP("%s: usb_ctrlrequest will be passed to fsg_setup()\n", __FUNCTION__);
++ i = dev->driver->setup(&dev->gadget, &usb_ctrl);
++ spin_lock(&dev->lock);
++
++ if (i < 0) {
++ /* setup processing failed, force stall */
++ DEBUG_SETUP("%s: gadget setup FAILED (stalling), setup returned %d\n",
++ __FUNCTION__, i);
++ /* ep->stopped = 1; */
++ dev->ep0state = WAIT_FOR_SETUP;
++ }
++ }
++}
++
++/*
++ * handle ep0 interrupt
++ */
++static void s3c_handle_ep0(struct s3c_udc *dev)
++{
++ if (dev->ep0state == WAIT_FOR_SETUP) {
++ DEBUG_EP0("%s: WAIT_FOR_SETUP\n", __FUNCTION__);
++ s3c_ep0_setup(dev);
++
++ } else {
++ DEBUG_EP0("%s: strange state!!(state = %s)\n",
++ __FUNCTION__, state_names[dev->ep0state]);
++ }
++}
++
++static void s3c_ep0_kick(struct s3c_udc *dev, struct s3c_ep *ep)
++{
++ DEBUG_EP0("%s: ep_is_in = %d\n", __FUNCTION__, ep_is_in(ep));
++ if (ep_is_in(ep)) {
++ dev->ep0state = DATA_STATE_XMIT;
++ s3c_ep0_write(dev);
++ } else {
++ dev->ep0state = DATA_STATE_RECV;
++ s3c_ep0_read(dev);
++ }
++}
+diff --git a/drivers/usb/gadget/s3c-udc.h b/drivers/usb/gadget/s3c-udc.h
+new file mode 100644
+index 0000000..d64f5e6
+--- /dev/null
++++ b/drivers/usb/gadget/s3c-udc.h
+@@ -0,0 +1,136 @@
++/*
++ * drivers/usb/gadget/s3c-udc.h
++ * Samsung S3C on-chip full/high speed USB device controllers
++ * $Id: s3c-udc.h,v 1.4 2008/06/15 00:25:28 ihlee215 Exp $*
++ * Copyright (C) 2005 for Samsung Electronics
++ * - by Jaswinder Singh Brar <jassi@samsung.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ */
++
++#ifndef __S3C_USB_GADGET
++#define __S3C_USB_GADGET
++
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/ioport.h>
++#include <linux/types.h>
++#include <linux/version.h>
++#include <linux/errno.h>
++#include <linux/delay.h>
++#include <linux/sched.h>
++#include <linux/slab.h>
++#include <linux/init.h>
++#include <linux/timer.h>
++#include <linux/list.h>
++#include <linux/interrupt.h>
++#include <linux/proc_fs.h>
++#include <linux/mm.h>
++#include <linux/device.h>
++#include <linux/dma-mapping.h>
++
++#include <asm/byteorder.h>
++#include <asm/dma.h>
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/system.h>
++#include <asm/unaligned.h>
++#include <asm/hardware.h>
++//#include <asm/hardware/clock.h>
++
++#include <linux/usb/ch9.h>
++#include <linux/usb/gadget.h>
++
++// Max packet size
++#if defined(CONFIG_USB_GADGET_S3C_FS)
++#define EP0_FIFO_SIZE 8
++#define EP_FIFO_SIZE 64
++#define S3C_MAX_ENDPOINTS 5
++#elif defined(CONFIG_USB_GADGET_S3C_HS)
++#define EP0_FIFO_SIZE 64
++#define EP_FIFO_SIZE 512
++#define EP_FIFO_SIZE2 1024
++#define S3C_MAX_ENDPOINTS 9
++#else
++#define EP0_FIFO_SIZE 64
++#define EP_FIFO_SIZE 512
++#define EP_FIFO_SIZE2 1024
++#define S3C_MAX_ENDPOINTS 16
++#endif
++
++#define WAIT_FOR_SETUP 0
++#define DATA_STATE_XMIT 1
++#define DATA_STATE_NEED_ZLP 2
++#define WAIT_FOR_OUT_STATUS 3
++#define DATA_STATE_RECV 4
++#define RegReadErr 5
++#define FAIL_TO_SETUP 6
++
++/* ********************************************************************************************* */
++/* IO
++ */
++
++typedef enum ep_type {
++ ep_control, ep_bulk_in, ep_bulk_out, ep_interrupt
++} ep_type_t;
++
++struct s3c_ep {
++ struct usb_ep ep;
++ struct s3c_udc *dev;
++
++ const struct usb_endpoint_descriptor *desc;
++ struct list_head queue;
++ unsigned long pio_irqs;
++
++ u8 stopped;
++ u8 bEndpointAddress;
++ u8 bmAttributes;
++
++ ep_type_t ep_type;
++ u32 fifo;
++#ifdef CONFIG_USB_GADGET_S3C_FS
++ u32 csr1;
++ u32 csr2;
++#endif
++};
++
++struct s3c_request {
++ struct usb_request req;
++ struct list_head queue;
++};
++
++struct s3c_udc {
++ struct usb_gadget gadget;
++ struct usb_gadget_driver *driver;
++ //struct device *dev;
++ struct platform_device *dev;
++ spinlock_t lock;
++
++ int ep0state;
++ struct s3c_ep ep[S3C_MAX_ENDPOINTS];
++
++ unsigned char usb_address;
++
++ unsigned req_pending:1, req_std:1, req_config:1;
++};
++
++extern struct s3c_udc *the_controller;
++
++#define ep_is_in(EP) (((EP)->bEndpointAddress&USB_DIR_IN)==USB_DIR_IN)
++#define ep_index(EP) ((EP)->bEndpointAddress&0xF)
++#define ep_maxpacket(EP) ((EP)->ep.maxpacket)
++
++#endif
+diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
+index 49a91c5..cdd0ed1 100644
+--- a/drivers/usb/host/Kconfig
++++ b/drivers/usb/host/Kconfig
+@@ -261,3 +261,8 @@ config USB_R8A66597_HCD
+ To compile this driver as a module, choose M here: the
+ module will be called r8a66597-hcd.
+
++config USB_S3C_OTG_HOST
++ tristate "S3C USB OTG Host support"
++ depends on (USB && PLAT_S3C64XX)
++ help
++ S3C6400 & S3C6410 OTG Host.
+diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile
+index bb8e9d4..8a01634 100644
+--- a/drivers/usb/host/Makefile
++++ b/drivers/usb/host/Makefile
+@@ -16,4 +16,4 @@ obj-$(CONFIG_USB_SL811_HCD) += sl811-hcd.o
+ obj-$(CONFIG_USB_SL811_CS) += sl811_cs.o
+ obj-$(CONFIG_USB_U132_HCD) += u132-hcd.o
+ obj-$(CONFIG_USB_R8A66597_HCD) += r8a66597-hcd.o
+-
++obj-$(CONFIG_USB_S3C_OTG_HOST) += s3c-otg/
+diff --git a/drivers/usb/host/ohci-s3c2410.c b/drivers/usb/host/ohci-s3c2410.c
+index 44b79e8..c214ef5 100644
+--- a/drivers/usb/host/ohci-s3c2410.c
++++ b/drivers/usb/host/ohci-s3c2410.c
+@@ -24,6 +24,9 @@
+
+ #include <asm/hardware.h>
+ #include <asm/arch/usb-control.h>
++#include <asm/arch/regs-gpio.h>
++
++#include <asm/arch/regs-s3c-clock.h>
+
+ #define valid_port(idx) ((idx) == 1 || (idx) == 2)
+
+@@ -32,6 +35,22 @@
+ static struct clk *clk;
+ static struct clk *usb_clk;
+
++#undef USB_HOST_PORT2_EN
++//#define USB_HOST_PORT2_EN
++
++#if defined(CONFIG_PLAT_S3C64XX)
++#define S3C_USB_CLKSRC_EPLL 0
++#define S3C_USB_CLKSRC_48M 1
++extern void usb_host_clk_en(int usb_host_clksrc, u32 otg_phy_clk);
++
++#ifdef USB_HOST_PORT2_EN
++static struct clk *otg_clk;
++#define OTGH_PHY_CLK_VALUE (0x60) /* Serial Interface, Oscillator */
++#else
++#define OTGH_PHY_CLK_VALUE (0x20) /* UTMI Interface, Oscillator */
++#endif
++#endif
++
+ /* forward definitions */
+
+ static void s3c2410_hcd_oc(struct s3c2410_hcd_info *info, int port_oc);
+@@ -54,6 +73,10 @@ static void s3c2410_start_hc(struct platform_device *dev, struct usb_hcd *hcd)
+
+ clk_enable(clk);
+
++#if defined(USB_HOST_PORT2_EN) && defined(CONFIG_PLAT_S3C64XX)
++ clk_enable(otg_clk);
++#endif
++
+ if (info != NULL) {
+ info->hcd = hcd;
+ info->report_oc = s3c2410_hcd_oc;
+@@ -332,6 +355,48 @@ usb_hcd_s3c2410_remove (struct usb_hcd *hcd, struct platform_device *dev)
+ usb_put_hcd(hcd);
+ }
+
++#if defined(CONFIG_PLAT_S3C24XX) && defined(USB_HOST_PORT2_EN)
++#include <asm/arch/regs-udc-hs.h>
++static int usb20_phy_init(void)
++{
++ s3c2410_gpio_pullup(S3C2443_GPH14, 2); /* usb power pull-up enable */
++ s3c2410_gpio_pullup(S3C2410_GPF2, 0); /* vbus detect pull-up/down disable */
++ s3c2410_gpio_cfgpin(S3C2443_GPH14, S3C2443_GPH14_OUTP);
++ s3c2410_gpio_setpin(S3C2443_GPH14, 1); /* usb power enbale */
++
++ mdelay(1);
++
++ /* if reset by sleep wakeup, control the retention I/O cell */
++ if (readl(S3C_RSTSTAT) & 0x8)
++ writel(readl(S3C_RSTCON)|(1<<16), S3C_RSTCON);
++
++
++ /* USB Port is Normal mode */
++ writel(readl(S3C2410_MISCCR)&~(1<<12), S3C2410_MISCCR);
++
++ /* PHY power enable */
++ writel(readl(S3C_PWRCFG)|(1<<4), S3C_PWRCFG);
++
++ /* USB device 2.0 must reset like bellow,
++ * 1st phy reset and after at least 10us, func_reset & host reset
++ * phy reset can reset bellow registers.
++ */
++ /* PHY 2.0 S/W reset */
++ writel((0<<2)|(0<<1)|(1<<0), S3C_URSTCON);
++ udelay(20); /* phy reset must be asserted for at 10us */
++
++ /*Function 2.0, Host 1.1 S/W reset*/
++ writel((1<<2)|(1<<1)|(0<<0), S3C_URSTCON);
++ writel((0<<2)|(0<<1)|(0<<0), S3C_URSTCON);
++
++ writel(0x00000030, S3C2443_CLKREG(0x84));
++ writel(0x80000005, S3C2443_CLKREG(0x8c));
++ writel(5, S3C2443_CLKREG(0x80));
++
++ return 0;
++}
++#endif
++
+ /**
+ * usb_hcd_s3c2410_probe - initialize S3C2410-based HCDs
+ * Context: !in_interrupt()
+@@ -346,6 +411,20 @@ static int usb_hcd_s3c2410_probe (const struct hc_driver *driver,
+ {
+ struct usb_hcd *hcd = NULL;
+ int retval;
++#if defined(CONFIG_PLAT_S3C24XX)
++ /* USB host Power enable */
++ s3c2410_gpio_cfgpin(S3C2410_GPB4, S3C2410_GPB4_OUTP);
++ s3c2410_gpio_pullup(S3C2410_GPB4, 0);
++ s3c2410_gpio_setpin(S3C2410_GPB4, 1);
++
++#if defined(USB_HOST_PORT2_EN) && defined(CONFIG_PLAT_S3C24XX)
++ usb20_phy_init();
++#endif
++#endif
++
++#if defined(CONFIG_PLAT_S3C64XX)
++ usb_host_clk_en(S3C_USB_CLKSRC_48M, OTGH_PHY_CLK_VALUE);
++#endif
+
+ s3c2410_usb_set_power(dev->dev.platform_data, 1, 1);
+ s3c2410_usb_set_power(dev->dev.platform_data, 2, 1);
+@@ -370,13 +449,23 @@ static int usb_hcd_s3c2410_probe (const struct hc_driver *driver,
+ goto err_mem;
+ }
+
++#if defined(USB_HOST_PORT2_EN) && defined(CONFIG_PLAT_S3C64XX)
++ otg_clk = clk_get(&dev->dev, "otg");
++ if (IS_ERR(clk)) {
++ dev_err(&dev->dev, "cannot get otg clock\n");
++ retval = -ENOENT;
++ goto err_clk;
++ }
++#endif
++
++#if defined(CONFIG_PLAT_S3C24XX)
+ usb_clk = clk_get(&dev->dev, "usb-bus-host");
+ if (IS_ERR(usb_clk)) {
+ dev_err(&dev->dev, "cannot get usb-host clock\n");
+ retval = -ENOENT;
+ goto err_clk;
+ }
+-
++#endif
+ s3c2410_start_hc(dev, hcd);
+
+ hcd->regs = ioremap(hcd->rsrc_start, hcd->rsrc_len);
+@@ -399,8 +488,10 @@ static int usb_hcd_s3c2410_probe (const struct hc_driver *driver,
+ iounmap(hcd->regs);
+ clk_put(usb_clk);
+
++#if defined(CONFIG_PLAT_S3C24XX) || defined(CONFIG_PLAT_S3C64XX)
+ err_clk:
+ clk_put(clk);
++#endif
+
+ err_mem:
+ release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
+@@ -433,7 +524,7 @@ ohci_s3c2410_start (struct usb_hcd *hcd)
+
+ static const struct hc_driver ohci_s3c2410_hc_driver = {
+ .description = hcd_name,
+- .product_desc = "S3C24XX OHCI",
++ .product_desc = "S3C OHCI",
+ .hcd_priv_size = sizeof(struct ohci_hcd),
+
+ /*
+diff --git a/drivers/usb/host/s3c-otg/Makefile b/drivers/usb/host/s3c-otg/Makefile
+new file mode 100644
+index 0000000..12cfd34
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/Makefile
+@@ -0,0 +1,18 @@
++#
++# Makefile for USB OTG Host Controller Drivers
++#
++
++obj-$(CONFIG_USB_S3C_OTG_HOST) += s3c_otg_hcd.o
++
++s3c_otg_hcd-objs += s3c-otg-hcdi-driver.o s3c-otg-hcdi-hcd.o
++s3c_otg_hcd-objs += s3c-otg-transfer-common.o s3c-otg-transfer-nonperiodic.o \
++ s3c-otg-transfer-periodic.o
++s3c_otg_hcd-objs += s3c-otg-scheduler-ischeduler.o s3c-otg-scheduler-scheduler.o \
++ s3c-otg-scheduler-readyq.o
++s3c_otg_hcd-objs += s3c-otg-oci.o
++s3c_otg_hcd-objs += s3c-otg-transferchecker-common.o \
++ s3c-otg-transferchecker-control.o \
++ s3c-otg-transferchecker-bulk.o \
++ s3c-otg-transferchecker-interrupt.o
++s3c_otg_hcd-objs += s3c-otg-isr.o
++s3c_otg_hcd-objs += s3c-otg-roothub.o
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-common-common.h b/drivers/usb/host/s3c-otg/s3c-otg-common-common.h
+new file mode 100644
+index 0000000..ee3011d
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-common-common.h
+@@ -0,0 +1,50 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * @file s3c-otg-common-common.h
++ * @brief it includes common header files for all modules \n
++ * @version
++ * ex)-# Jun 11,2008 v1.0 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Creating the initial version of this code \n
++ * @see None
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#ifndef _S3C_OTG_COMMON_COMMON_H_
++#define _S3C_OTG_COMMON_COMMON_H_
++
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++
++//#include "s3c-otg-common-typedef.h"
++#include "s3c-otg-common-errorcode.h"
++#include <linux/errno.h>
++#include <linux/usb.h>
++
++//Define OS
++#define LINUX 1
++
++//Kernel Version
++#define KERNEL_2_6_21
++
++
++#ifdef __cplusplus
++}
++#endif
++#endif /* _S3C_OTG_COMMON_COMMON_H_ */
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-common-const.h b/drivers/usb/host/s3c-otg/s3c-otg-common-const.h
+new file mode 100644
+index 0000000..bdad246
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-common-const.h
+@@ -0,0 +1,167 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : s3c-otg-common-const.h
++ * [Description] : The Header file defines constants to be used at sub-modules of S3C6400HCD.
++ * [Author] : Yang Soon Yeal { syatom.yang@samsung.com }
++ * [Department] : System LSI Division/System SW Lab
++ * [Created Date]: 2008/06/03
++ * [Revision History]
++ * (1) 2008/06/03 by Yang Soon Yeal { syatom.yang@samsung.com }
++ * - Created s3c-otg-common-const.h file and defines some constants.
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#ifndef _CONST_TYPE_DEF_H_
++#define _CONST_TYPE_DEF_H_
++
++/*
++// ----------------------------------------------------------------------------
++// Include files : None.
++// ----------------------------------------------------------------------------
++*/
++
++#include "s3c-otg-common-common.h"
++
++//#include "s3c-otg-common-regdef.h"
++
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++
++/**
++ * @def OTG_PORT_NUMBER
++ *
++ * @brief write~ description
++ *
++ * describe in detail
++ */
++#define OTG_PORT_NUMBER 0
++
++
++
++//Defines Stages of Control Transfer
++#define SETUP_STAGE 1
++#define DATA_STAGE 2
++#define STATUS_STAGE 3
++#define COMPLETE_STAGE 4
++
++
++//Defines Direction of Endpoint
++#define EP_IN 1
++#define EP_OUT 0
++
++//Define speed of USB Device
++#define LOW_SPEED_OTG 2
++#define FULL_SPEED_OTG 1
++#define HIGH_SPEED_OTG 0
++#define SUPER_SPEED_OTG 3
++
++//Define multiple count of packet in periodic transfer.
++#define MULTI_COUNT_ZERO 0
++#define MULTI_COUNT_ONE 1
++#define MULTI_COUNT_TWO 2
++
++//Define USB Transfer Types.
++#define CONTROL_TRANSFER 0
++#define ISOCH_TRANSFER 1
++#define BULK_TRANSFER 2
++#define INT_TRANSFER 3
++
++#define BULK_TIMEOUT 300
++
++//Defines PID
++#define DATA0 0
++#define DATA1 2
++#define DATA2 1
++#define MDATA 3
++#define SETUP 3
++
++//Defines USB Transfer Request Size on USB2.0
++#define USB_20_STAND_DEV_REQUEST_SIZE 8
++//Define Max Channel Number
++#define MAX_CH_NUMBER 16
++//Define Channel Number
++#define CH_0 0
++#define CH_1 1
++#define CH_2 2
++#define CH_3 3
++#define CH_4 4
++#define CH_5 5
++#define CH_6 6
++#define CH_7 7
++#define CH_8 8
++#define CH_9 9
++#define CH_10 10
++#define CH_11 11
++#define CH_12 12
++#define CH_13 13
++#define CH_14 14
++#define CH_15 15
++#define CH_NONE 20
++
++
++// define the Constant for result of processing the USB Transfer.
++#define RE_TRANSMIT 1
++#define RE_SCHEDULE 2
++#define DE_ALLOCATE 3
++#define NO_ACTION 4
++
++//define the threshold value to retransmit USB Transfer
++#define RETRANSMIT_THRESHOLD 2
++
++//define the maximum size of data to be tranferred through channel.
++#define MAX_CH_TRANSFER_SIZE 65536//65535
++
++//define Max Frame Number which Synopsys OTG suppports.
++#define MAX_FRAME_NUMBER 0x3FFF
++// Channel Interrupt Status
++#define CH_STATUS_DataTglErr (0x1<<10)
++#define CH_STATUS_FrmOvrun (0x1<<9)
++#define CH_STATUS_BblErr (0x1<<8)
++#define CH_STATUS_XactErr (0x1<<7)
++#define CH_STATUS_NYET (0x1<<6)
++#define CH_STATUS_ACK (0x1<<5)
++#define CH_STATUS_NAK (0x1<<4)
++#define CH_STATUS_STALL (0x1<<3)
++#define CH_STATUS_AHBErr (0x1<<2)
++#define CH_STATUS_ChHltd (0x1<<1)
++#define CH_STATUS_XferCompl (0x1<<0)
++#define CH_STATUS_ALL 0x7FF
++
++
++//Define USB Transfer Flag..
++//typedef URB_SHORT_NOT_OK USB_TRANS_FLAG_NOT_SHORT;
++//typedef URB_ISO_ASAP USB_TRANS_FLAG_ISO_ASYNCH;
++
++#define USB_TRANS_FLAG_NOT_SHORT URB_SHORT_NOT_OK
++#define USB_TRANS_FLAG_ISO_ASYNCH URB_ISO_ASAP
++
++
++#define HFNUM_MAX_FRNUM 0x3FFF
++#define SCHEDULE_SLOT 10
++
++#ifdef __cplusplus
++}
++#endif
++
++
++#endif
++
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-common-datastruct.h b/drivers/usb/host/s3c-otg/s3c-otg-common-datastruct.h
+new file mode 100644
+index 0000000..f5f5d52
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-common-datastruct.h
+@@ -0,0 +1,870 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : s3c-otg-common-datastruct.h
++ * [Description] : The Header file defines Data Structures to be used at sub-modules of S3C6400HCD.
++ * [Author] : Yang Soon Yeal { syatom.yang@samsung.com }
++ * [Department] : System LSI Division/System SW Lab
++ * [Created Date]: 2008/06/03
++ * [Revision History]
++ * (1) 2008/06/03 by Yang Soon Yeal { syatom.yang@samsung.com }
++ * - Created this file and defines Data Structure to be managed by Transfer.
++ * (2) 2008/08/18 by SeungSoo Yang ( ss1.yang@samsung.com )
++ * - modifying ED structure
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#ifndef _DATA_STRUCT_DEF_H
++#define _DATA_STRUCT_DEF_H
++
++/*
++// ----------------------------------------------------------------------------
++// Include files : None.
++// ----------------------------------------------------------------------------
++*/
++
++//#include "s3c-otg-common-typedef.h"
++#include "s3c-otg-hcdi-list.h"
++
++//#include "s3c-otg-common-regdef.h"
++//#include "s3c-otg-common-errorcode.h"
++
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++
++typedef struct
++{
++ u32 apll_lock; // 0x00
++ u32 MPLL_LOCK; // 0x04
++ u32 EPLL_LOCK; // 0x08
++ u32 APLL_CON; // 0x0c
++
++ u32 MPLL_CON; // 0x10
++ u32 EPLL_CON0; // 0x14
++ u32 EPLL_CON1; // 0x18
++ u32 CLK_SRC; // 0x1c
++
++ u32 CLK_DIV0; // 0x20
++ u32 CLK_DIV1; // 0x24
++ u32 CLK_DIV2; // 0x28
++ u32 CLK_OUT; // 0x2c
++
++ u32 HCLK_GATE; // 0x30
++ u32 PCLK_GATE; // 0x34
++ u32 SCLK_GATE; // 0x38
++ u32 PAD0; // 0x3c
++
++ u32 PAD1[48]; // 0x40~0xff
++
++ u32 AHB_CON0; // 0x100
++ u32 AHB_CON1; // 0x104
++ u32 AHB_CON2; // 0x108
++ u32 PAD2; // 0x10c
++
++ u32 SDMA_SEL; // 0x110
++ u32 SW_RST; // 0x114
++ u32 SYS_ID; // 0x118
++ u32 PAD3; // 0x11c
++
++ u32 MEM_SYS_CFG; // 0x120
++ u32 QOS_OVERRIDE0; // 0x124
++ u32 QOS_OVERRIDE1; // 0x128
++ u32 MEM_CFG_STAT; // 0x12c
++
++ u32 PAD4[436]; // 0x130~0x7ff
++
++ u32 PAD5; // 0x800
++ u32 PWR_CFG; // 0x804
++ u32 EINT_MASK; // 0x808
++ u32 PAD6; // 0x80c
++
++ u32 NORMAL_CFG; // 0x810
++ u32 STOP_CFG; // 0x814
++ u32 SLEEP_CFG; // 0x818
++ u32 PAD7; // 0x81c
++
++ u32 OSC_FREQ; // 0x820
++ u32 OSC_STABLE; // 0x824
++ u32 PWR_STABLE; // 0x828
++ u32 FPC_STABLE; // 0x82c
++
++ u32 MTC_STABLE; // 0x830
++ u32 PAD8[3]; // 0x834~0x83f
++
++ u32 PAD9[48]; // 0x840~0x8ff
++
++ u32 OTHERS; // 0x900
++ u32 RST_STAT; // 0x904
++ u32 WAKEUP_STAT; // 0x908
++ u32 BLK_PWR_STAT; // 0x90c
++
++ u32 PAD10[60]; // 0x910~0x9ff
++
++ u32 INFORM0; // 0xa00
++ u32 INFORM1; // 0xa04
++ u32 INFORM2; // 0xa08
++ u32 INFORM3; // 0xa0c
++
++ u32 INFORM4; // 0xa10
++ u32 INFORM5; // 0xa14
++ u32 INFORM6; // 0xa18
++ u32 INFORM7; // 0xa1c
++} S3C6400_SYSCON_REG, *PS3C6400_SYSCON_REG;
++
++typedef union _hcintmsk_t
++{
++ // raw register data
++ u32 d32;
++
++ // register bits
++ struct
++ {
++ unsigned xfercompl : 1;
++ unsigned chhltd : 1;
++ unsigned ahberr : 1;
++ unsigned stall : 1;
++ unsigned nak : 1;
++ unsigned ack : 1;
++ unsigned nyet : 1;
++ unsigned xacterr : 1;
++ unsigned bblerr : 1;
++ unsigned frmovrun : 1;
++ unsigned datatglerr : 1;
++ unsigned reserved : 21;
++ } b;
++} hcintmsk_t;
++
++typedef union _hcintn_t
++{
++ u32 d32;
++ struct
++ {
++ u32 xfercompl :1;
++ u32 chhltd :1;
++ u32 abherr :1;
++ u32 stall :1;
++ u32 nak :1;
++ u32 ack :1;
++ u32 nyet :1;
++ u32 xacterr :1;
++ u32 bblerr :1;
++ u32 frmovrun :1;
++ u32 datatglerr :1;
++ u32 reserved :21;
++ }b;
++}hcintn_t;
++
++
++typedef union _pcgcctl_t
++{
++ /** raw register data */
++ u32 d32;
++ /** register bits */
++ struct
++ {
++ unsigned stoppclk :1;
++ unsigned gatehclk :1;
++ unsigned pwrclmp :1;
++ unsigned rstpdwnmodule :1;
++ unsigned physuspended :1;
++ unsigned Reserved5_31 :27;
++ }b;
++}pcgcctl_t;
++
++
++typedef struct isoch_packet_desc
++{
++ u32 isoch_packiet_start_addr;// start address of buffer is buffer address + uiOffsert.
++ u32 buf_size;
++ u32 transferred_szie;
++ u32 isoch_status;
++}isoch_packet_desc_t;//, *isoch_packet_desc_t *,**isoch_packet_desc_t **;
++
++
++typedef struct standard_dev_req_info
++{
++ bool is_data_stage;
++ u8 conrol_transfer_stage;
++ u32 vir_standard_dev_req_addr;
++ u32 phy_standard_dev_req_addr;
++}standard_dev_req_info_t;
++
++
++typedef struct control_data_tgl_t
++{
++ u8 setup_tgl;
++ u8 data_tgl;
++ u8 status_tgl;
++}control_data_tgl_t;
++
++
++
++typedef struct ed_status
++{
++ u8 data_tgl;
++ control_data_tgl_t control_data_tgl;
++ bool is_ping_enable;
++ bool is_in_transfer_ready_q;
++ bool is_in_transferring;
++ u32 in_transferring_td;
++ bool is_alloc_resource_for_ed;
++}ed_status_t;//, *ed_status_t *,**ed_status_t **;
++
++
++typedef struct ed_desc
++{
++ u8 device_addr;
++ u8 endpoint_num;
++ bool is_ep_in;
++ u8 dev_speed;
++ u8 endpoint_type;
++ u16 max_packet_size;
++ u8 mc;
++ u8 interval;
++ u32 sched_frame;
++ u32 used_bus_time;
++ u8 hub_addr;
++ u8 hub_port;
++ bool is_do_split;
++}ed_dest_t;//, *ed_dest_t *,**ed_dest_t **;
++
++
++//Defines the Data Structures of Transfer.
++typedef struct hc_reg
++{
++
++ hcintmsk_t hc_int_msk;
++ hcintn_t hc_int;
++ u32 dma_addr;
++
++}hc_reg_t;//, *hc_reg_t *, **hc_reg_t **;
++
++
++typedef struct stransfer
++{
++ u32 stransfer_id;
++ u32 parent_td;
++ ed_dest_t *ed_desc_p;
++ ed_status_t *ed_status_p;
++ u32 start_vir_buf_addr;
++ u32 start_phy_buf_addr;
++ u32 buf_size;
++ u32 packet_cnt;
++ u8 alloc_chnum;
++ hc_reg_t hc_reg;
++}stransfer_t;//, *stransfer_t *,**stransfer_t **;
++
++
++typedef struct ed
++{
++ u32 ed_id;
++ bool is_halted;
++ bool is_need_to_insert_scheduler;
++ ed_dest_t ed_desc;
++ ed_status_t ed_status;
++ otg_list_head ed_list_entry;
++ otg_list_head td_list_entry;
++ otg_list_head trans_ready_q_list_entry;
++ u32 num_td;
++ void *ed_private;
++}ed_t;//, *ed_t *, **ed_t **;
++
++
++
++typedef struct td
++{
++ u32 td_id;
++ ed_t *parent_ed_p;
++ void *call_back_func_p;
++ void *call_back_func_param_p;
++ bool is_transferring;
++ bool is_transfer_done;
++ u32 transferred_szie;
++ bool is_standard_dev_req;
++ standard_dev_req_info_t standard_dev_req_info;
++ u32 vir_buf_addr;
++ u32 phy_buf_addr;
++ u32 buf_size;
++ u32 transfer_flag;
++ stransfer_t cur_stransfer;
++ USB_ERROR_CODE error_code;
++ u32 err_cnt;
++ otg_list_head td_list_entry;
++
++ //Isochronous Transfer Specific
++ u32 isoch_packet_num;
++ isoch_packet_desc_t *isoch_packet_desc_p;
++ u32 isoch_packet_index;
++ u32 isoch_packet_position;
++ u32 sched_frame;
++ u32 interval;
++ u32 used_total_bus_time;
++
++ // the private data can be used by S3C6400Interface.
++ void *td_private;
++}td_t;//, *td_t *,**td_t **;
++
++
++//Define Data Structures of Scheduler.
++typedef struct trans_ready_q
++{
++bool is_periodic_transfer;
++otg_list_head trans_ready_q_list_head;
++u32 trans_ready_entry_num;
++
++//In case of Periodic Transfer
++u32 total_perio_bus_bandwidth;
++u8 total_alloc_chnum;
++}trans_ready_q_t;//, *trans_ready_q_t *,**trans_ready_q_t **;
++
++
++//Define USB OTG Reg Data Structure by Kyuhyeok.
++
++#define MAX_COUNT 10000
++#define INT_ALL 0xffffffff
++
++typedef union _haint_t
++{
++ u32 d32;
++ struct
++ {
++ u32 reserved1 :16;
++ u32 channel_intr_15 :1;
++ u32 channel_intr_14 :1;
++ u32 channel_intr_13 :1;
++ u32 channel_intr_12 :1;
++ u32 channel_intr_11 :1;
++ u32 channel_intr_10 :1;
++ u32 channel_intr_9 :1;
++ u32 channel_intr_8 :1;
++ u32 channel_intr_7 :1;
++ u32 channel_intr_6 :1;
++ u32 channel_intr_5 :1;
++ u32 channel_intr_4 :1;
++ u32 channel_intr_3 :1;
++ u32 channel_intr_2 :1;
++ u32 channel_intr_1 :1;
++ u32 channel_intr_0 :1;
++ }b;
++}haint_t;
++
++typedef union _gresetctl_t
++{
++ /** raw register data */
++ u32 d32;
++ /** register bits */
++ struct
++ {
++ unsigned csftrst : 1;
++ unsigned hsftrst : 1;
++ unsigned hstfrm : 1;
++ unsigned intknqflsh : 1;
++ unsigned rxfflsh : 1;
++ unsigned txfflsh : 1;
++ unsigned txfnum : 5;
++ unsigned reserved11_29 : 19;
++ unsigned dmareq : 1;
++ unsigned ahbidle : 1;
++ } b;
++} gresetctl_t;
++
++
++typedef union _gahbcfg_t
++{
++ /** raw register data */
++ u32 d32;
++ /** register bits */
++ struct
++ {
++ unsigned glblintrmsk : 1;
++#define GAHBCFG_GLBINT_ENABLE 1
++ unsigned hburstlen : 4;
++#define INT_DMA_MODE_SINGLE 00
++#define INT_DMA_MODE_INCR 01
++#define INT_DMA_MODE_INCR4 03
++#define INT_DMA_MODE_INCR8 05
++#define INT_DMA_MODE_INCR16 07
++ unsigned dmaenable : 1;
++#define GAHBCFG_DMAENABLE 1
++ unsigned reserved : 1;
++ unsigned nptxfemplvl : 1;
++ unsigned ptxfemplvl : 1;
++#define GAHBCFG_TXFEMPTYLVL_EMPTY 1
++#define GAHBCFG_TXFEMPTYLVL_HALFEMPTY 0
++ unsigned reserved9_31 : 22;
++ } b;
++} gahbcfg_t;
++
++typedef union _gusbcfg_t
++{
++ /** raw register data */
++ u32 d32;
++ /** register bits */
++ struct
++ {
++ unsigned toutcal : 3;
++ unsigned phyif : 1;
++ unsigned ulpi_utmi_sel : 1;
++ unsigned fsintf : 1;
++ unsigned physel : 1;
++ unsigned ddrsel : 1;
++ unsigned srpcap : 1;
++ unsigned hnpcap : 1;
++ unsigned usbtrdtim : 4;
++ unsigned nptxfrwnden : 1;
++ unsigned phylpwrclksel : 1;
++ unsigned reserved : 13;
++ unsigned forcehstmode : 1;
++ unsigned reserved2 : 2;
++ } b;
++} gusbcfg_t;
++
++
++typedef union _ghwcfg2_t
++{
++ /** raw register data */
++ u32 d32;
++ /** register bits */
++ struct {
++ /* GHWCFG2 */
++ unsigned op_mode : 3;
++#define MODE_HNP_SRP_CAPABLE 0
++#define MODE_SRP_ONLY_CAPABLE 1
++#define MODE_NO_HNP_SRP_CAPABLE 2
++#define MODE_SRP_CAPABLE_DEVICE 3
++#define MODE_NO_SRP_CAPABLE_DEVICE 4
++#define MODE_SRP_CAPABLE_HOST 5
++#define MODE_NO_SRP_CAPABLE_HOST 6
++
++ unsigned architecture : 2;
++#define HWCFG2_ARCH_SLAVE_ONLY 0x00
++#define HWCFG2_ARCH_EXT_DMA 0x01
++#define HWCFG2_ARCH_INT_DMA 0x02
++
++ unsigned point2point : 1;
++ unsigned hs_phy_type : 2;
++ unsigned fs_phy_type : 2;
++ unsigned num_dev_ep : 4;
++ unsigned num_host_chan : 4;
++ unsigned perio_ep_supported : 1;
++ unsigned dynamic_fifo : 1;
++ unsigned rx_status_q_depth : 2;
++ unsigned nonperio_tx_q_depth : 2;
++ unsigned host_perio_tx_q_depth : 2;
++ unsigned dev_token_q_depth : 5;
++ unsigned reserved31 : 1;
++ } b;
++} ghwcfg2_t;
++
++typedef union _gintsts_t
++{
++ /** raw register data */
++ u32 d32;
++#define SOF_INTR_MASK 0x0008
++ /** register bits */
++ struct
++ {
++#define HOST_MODE 1
++#define DEVICE_MODE 0
++ unsigned curmode : 1;
++#define OTG_HOST_MODE 1
++#define OTG_DEVICE_MODE 0
++
++ unsigned modemismatch : 1;
++ unsigned otgintr : 1;
++ unsigned sofintr : 1;
++ unsigned rxstsqlvl : 1;
++ unsigned nptxfempty : 1;
++ unsigned ginnakeff : 1;
++ unsigned goutnakeff : 1;
++ unsigned reserved8 : 1;
++ unsigned i2cintr : 1;
++ unsigned erlysuspend : 1;
++ unsigned usbsuspend : 1;
++ unsigned usbreset : 1;
++ unsigned enumdone : 1;
++ unsigned isooutdrop : 1;
++ unsigned eopframe : 1;
++ unsigned intokenrx : 1;
++ unsigned epmismatch : 1;
++ unsigned inepint : 1;
++ unsigned outepintr : 1;
++ unsigned incompisoin : 1;
++ unsigned incompisoout : 1;
++ unsigned reserved22_23 : 2;
++ unsigned portintr : 1;
++ unsigned hcintr : 1;
++ unsigned ptxfempty : 1;
++ unsigned reserved27 : 1;
++ unsigned conidstschng : 1;
++ unsigned disconnect : 1;
++ unsigned sessreqintr : 1;
++ unsigned wkupintr : 1;
++ } b;
++} gintsts_t;
++
++
++typedef union _hcfg_t
++{
++ /** raw register data */
++ u32 d32;
++
++ /** register bits */
++ struct
++ {
++ /** FS/LS Phy Clock Select */
++ unsigned fslspclksel : 2;
++#define HCFG_30_60_MHZ 0
++#define HCFG_48_MHZ 1
++#define HCFG_6_MHZ 2
++
++ /** FS/LS Only Support */
++ unsigned fslssupp : 1;
++ } b;
++} hcfg_t;
++
++typedef union _hprt_t
++{
++ /** raw register data */
++ u32 d32;
++ /** register bits */
++ struct
++ {
++ unsigned prtconnsts : 1;
++ unsigned prtconndet : 1;
++ unsigned prtena : 1;
++ unsigned prtenchng : 1;
++ unsigned prtovrcurract : 1;
++ unsigned prtovrcurrchng : 1;
++ unsigned prtres : 1;
++ unsigned prtsusp : 1;
++ unsigned prtrst : 1;
++ unsigned reserved9 : 1;
++ unsigned prtlnsts : 2;
++ unsigned prtpwr : 1;
++ unsigned prttstctl : 4;
++ unsigned prtspd : 2;
++#define HPRT0_PRTSPD_HIGH_SPEED 0
++#define HPRT0_PRTSPD_FULL_SPEED 1
++#define HPRT0_PRTSPD_LOW_SPEED 2
++ unsigned reserved19_31 : 13;
++ } b;
++} hprt_t;
++
++
++typedef union _gintmsk_t
++{
++ /** raw register data */
++ u32 d32;
++ /** register bits */
++ struct
++ {
++ unsigned reserved0 : 1;
++ unsigned modemismatch : 1;
++ unsigned otgintr : 1;
++ unsigned sofintr : 1;
++ unsigned rxstsqlvl : 1;
++ unsigned nptxfempty : 1;
++ unsigned ginnakeff : 1;
++ unsigned goutnakeff : 1;
++ unsigned reserved8 : 1;
++ unsigned i2cintr : 1;
++ unsigned erlysuspend : 1;
++ unsigned usbsuspend : 1;
++ unsigned usbreset : 1;
++ unsigned enumdone : 1;
++ unsigned isooutdrop : 1;
++ unsigned eopframe : 1;
++ unsigned reserved16 : 1;
++ unsigned epmismatch : 1;
++ unsigned inepintr : 1;
++ unsigned outepintr : 1;
++ unsigned incompisoin : 1;
++ unsigned incompisoout : 1;
++ unsigned reserved22_23 : 2;
++ unsigned portintr : 1;
++ unsigned hcintr : 1;
++ unsigned ptxfempty : 1;
++ unsigned reserved27 : 1;
++ unsigned conidstschng : 1;
++ unsigned disconnect : 1;
++ unsigned sessreqintr : 1;
++ unsigned wkupintr : 1;
++ } b;
++} gintmsk_t;
++
++
++typedef struct _hc_t
++{
++
++ u8 hc_num; // Host channel number used for register address lookup
++
++ unsigned dev_addr : 7; // Device to access
++ unsigned ep_is_in : 1; // EP direction; 0: OUT, 1: IN
++
++ unsigned ep_num : 4; // EP to access
++ unsigned low_speed : 1; // 1: Low speed, 0: Not low speed
++ unsigned ep_type : 2; // Endpoint type.
++ // One of the following values:
++ // - OTG_EP_TYPE_CONTROL: 0
++ // - OTG_EP_TYPE_ISOC: 1
++ // - OTG_EP_TYPE_BULK: 2
++ // - OTG_EP_TYPE_INTR: 3
++
++ unsigned rsvdb1 : 1; // 8 bit padding
++
++ u8 rsvd2; // 4 byte boundary
++
++ unsigned max_packet : 12; // Max packet size in bytes
++
++ unsigned data_pid_start : 2;
++#define OTG_HC_PID_DATA0 0
++#define OTG_HC_PID_DATA2 1
++#define OTG_HC_PID_DATA1 2
++#define OTG_HC_PID_MDATA 3
++#define OTG_HC_PID_SETUP 3
++
++ unsigned multi_count : 2; // Number of periodic transactions per (micro)frame
++
++
++ // Flag to indicate whether the transfer has been started. Set to 1 if
++ // it has been started, 0 otherwise.
++ u8 xfer_started;
++
++
++ // Set to 1 to indicate that a PING request should be issued on this
++ // channel. If 0, process normally.
++ u8 do_ping;
++
++ // Set to 1 to indicate that the error count for this transaction is
++ // non-zero. Set to 0 if the error count is 0.
++ u8 error_state;
++ u32 *xfer_buff; // Pointer to the current transfer buffer position.
++ u16 start_pkt_count; // Packet count at start of transfer.
++
++ u32 xfer_len; // Total number of bytes to transfer.
++ u32 xfer_count; // Number of bytes transferred so far.
++
++
++ // Set to 1 if the host channel has been halted, but the core is not
++ // finished flushing queued requests. Otherwise 0.
++ u8 halt_pending;
++ u8 halt_status; // Reason for halting the host channel
++ u8 short_read; // Set when the host channel does a short read.
++ u8 rsvd3; // 4 byte boundary
++
++} hc_t;
++
++
++// Port status for the HC
++#define HCD_DRIVE_RESET 0x0001
++#define HCD_SEND_SETUP 0x0002
++
++#define HC_MAX_PKT_COUNT 511
++#define HC_MAX_TRANSFER_SIZE 65535
++#define MAXP_SIZE_64BYTE 64
++#define MAXP_SIZE_512BYTE 512
++#define MAXP_SIZE_1024BYTE 1024
++
++typedef union _hcchar_t
++{
++ // raw register data
++ u32 d32;
++
++ // register bits
++ struct
++ {
++ // Maximum packet size in bytes
++ unsigned mps : 11;
++
++ // Endpoint number
++ unsigned epnum : 4;
++
++ // 0: OUT, 1: IN
++ unsigned epdir : 1;
++#define HCDIR_OUT 0
++#define HCDIR_IN 1
++
++ unsigned reserved : 1;
++
++ // 0: Full/high speed device, 1: Low speed device
++ unsigned lspddev : 1;
++
++ // 0: Control, 1: Isoc, 2: Bulk, 3: Intr
++ unsigned eptype : 2;
++#define OTG_EP_TYPE_CONTROL 0
++#define OTG_EP_TYPE_ISOC 1
++#define OTG_EP_TYPE_BULK 2
++#define OTG_EP_TYPE_INTR 3
++
++ // Packets per frame for periodic transfers. 0 is reserved.
++ unsigned multicnt : 2;
++
++ // Device address
++ unsigned devaddr : 7;
++
++ // Frame to transmit periodic transaction.
++ // 0: even, 1: odd
++ unsigned oddfrm : 1;
++
++ // Channel disable
++ unsigned chdis : 1;
++
++ // Channel enable
++ unsigned chen : 1;
++ } b;
++} hcchar_t;
++
++typedef union _hctsiz_t
++{
++ // raw register data
++ u32 d32;
++
++ // register bits
++ struct
++ {
++ // Total transfer size in bytes
++ unsigned xfersize : 19;
++
++ // Data packets to transfer
++ unsigned pktcnt : 10;
++
++ // Packet ID for next data packet
++ // 0: DATA0
++ // 1: DATA2
++ // 2: DATA1
++ // 3: MDATA (non-Control), SETUP (Control)
++ unsigned pid : 2;
++#define HCTSIZ_DATA0 0
++#define HCTSIZ_DATA1 2
++#define HCTSIZ_DATA2 1
++#define HCTSIZ_MDATA 3
++#define HCTSIZ_SETUP 3
++
++ // Do PING protocol when 1
++ unsigned dopng : 1;
++ } b;
++} hctsiz_t;
++
++
++
++typedef union _grxstsr_t
++{
++ // raw register data
++ u32 d32;
++
++ // register bits
++ struct
++ {
++ unsigned Reserved : 11;
++ unsigned pktsts : 4;
++ unsigned dpid : 2;
++ unsigned bcnt : 11;
++ unsigned chnum : 4;
++ } b;
++} grxstsr_t;
++
++typedef union _hfir_t
++{
++ // raw register data
++ u32 d32;
++
++ // register bits
++ struct
++ {
++ unsigned Reserved : 16;
++ unsigned frint : 16;
++ } b;
++} hfir_t;
++
++typedef union _hfnum_t
++{
++ // raw register data
++ u32 d32;
++
++ // register bits
++ struct
++ {
++ unsigned frnum : 16;
++#define HFNUM_MAX_FRNUM 0x3FFF
++ unsigned frrem : 16;
++ } b;
++} hfnum_t;
++
++typedef union grstctl_t
++{
++ /** raw register data */
++ u32 d32;
++ /** register bits */
++ struct
++ {
++ unsigned csftrst : 1;
++ unsigned hsftrst : 1;
++ unsigned hstfrm : 1;
++ unsigned intknqflsh : 1;
++ unsigned rxfflsh : 1;
++ unsigned txfflsh : 1;
++ unsigned txfnum : 5;
++ unsigned reserved11_29 : 19;
++ unsigned dmareq : 1;
++ unsigned ahbidle : 1;
++ } b;
++} grstctl_t;
++
++
++
++
++typedef struct hc_info
++{
++ hcintmsk_t hc_int_msk;
++ hcintn_t hc_int;
++ u32 dma_addr;
++ hcchar_t hc_char;
++ hctsiz_t hc_size;
++}hc_info_t;//, *hc_info_t *, **hc_info_t **;
++
++#ifndef USB_MAXCHILDREN
++ #define USB_MAXCHILDREN (31)
++#endif
++
++typedef struct _usb_hub_descriptor_t
++{
++ u8 desc_length;
++ u8 desc_type;
++ u8 port_number;
++ u16 hub_characteristics;
++ u8 power_on_to_power_good;
++ u8 hub_control_current;
++ /* add 1 bit for hub status change; round to bytes */
++ u8 DeviceRemovable[(USB_MAXCHILDREN + 1 + 7) / 8];
++ u8 port_pwr_ctrl_mask[(USB_MAXCHILDREN + 1 + 7) / 8];
++}usb_hub_descriptor_t;
++
++
++#ifdef __cplusplus
++}
++#endif
++
++
++#endif
++
++
++
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-common-errorcode.h b/drivers/usb/host/s3c-otg/s3c-otg-common-errorcode.h
+new file mode 100644
+index 0000000..d471357
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-common-errorcode.h
+@@ -0,0 +1,114 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : s3c-otg-common-errorcode.h
++ * [Description] : The Header file defines Error Codes to be used at sub-modules of S3C6400HCD.
++ * [Author] : Yang Soon Yeal { syatom.yang@samsung.com }
++ * [Department] : System LSI Division/System SW Lab
++ * [Created Date]: 2008/06/03
++ * [Revision History]
++ * (1) 2008/06/03 by Yang Soon Yeal { syatom.yang@samsung.com }
++ * - Created this file.
++ * (2) 2008/08/18 by SeungSoo Yang ( ss1.yang@samsung.com )
++ * - add HCD error code
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#ifndef _ERROR_CODE_DEF_H
++#define _ERROR_CODE_DEF_H
++
++/*
++// ----------------------------------------------------------------------------
++// Include files : None.
++// ----------------------------------------------------------------------------
++*/
++
++//#include "s3c-otg-common-typedef.h"
++#include "s3c-otg-common-common.h"
++
++
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++
++
++typedef int USB_ERROR_CODE;
++
++//General USB Error Code.
++#define USB_ERR_SUCCESS 0
++#define USB_ERR_FAIL -1
++
++#define USB_ERR_NO 1
++
++#define USB_ERR_NO_ENTITY -2
++
++//S3CTransfer Error Code
++#define USB_ERR_NODEV -ENODEV
++#define USB_ERR_NOMEM -ENOMEM
++#define USB_ERR_NOSPACE -ENOSPC
++
++//OTG-HCD error code
++#define USB_ERR_NOELEMENT -ENOENT
++#define USB_ERR_ESHUTDOWN -ESHUTDOWN /* unplug */
++#define USB_ERR_DEQUEUED -ECONNRESET /* unlink */
++
++
++//S3CScheduler Error Code
++#define USB_ERR_ALREADY_EXIST -1
++#define USB_ERR_NO_RESOURCE -2
++#define USB_ERR_NO_CHANNEL -3
++#define USB_ERR_NO_BANDWIDTH -4
++#define USB_ERR_ALL_RESROUCE -5
++
++
++
++
++/************************************************
++ *Defines the USB Error Status Code of USB Transfer.
++ ************************************************/
++
++//#ifdef LINUX
++
++#define USB_ERR_STATUS_COMPLETE 0
++#define USB_ERR_STATUS_INPROGRESS -EINPROGRESS
++#define USB_ERR_STATUS_CRC -EILSEQ
++#define USB_ERR_STATUS_XACTERR -EPROTO
++#define USB_ERR_STATUS_STALL -EPIPE
++#define USB_ERR_STATUS_BBLERR -EOVERFLOW
++#define USB_ERR_STATUS_AHBERR -EIO
++#define USB_ERR_STATUS_FRMOVRUN_OUT -ENOSR
++#define USB_ERR_STATUS_FRMOVRUN_IN -ECOMM
++#define USB_ERR_STATUS_SHORTREAD -EREMOTEIO
++
++//#else
++
++//#endif
++
++
++
++
++
++
++#ifdef __cplusplus
++}
++#endif
++
++
++#endif
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-common-regdef.h b/drivers/usb/host/s3c-otg/s3c-otg-common-regdef.h
+new file mode 100644
+index 0000000..cfccc4a
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-common-regdef.h
+@@ -0,0 +1,317 @@
++/****************************************************************************
++* (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++*
++* [File Name] : S3C6400_OtgDevice.h
++* [Description] :
++*
++* [Author] : Kyu Hyeok Jang { kyuhyeok.jang@samsung.com }
++* [Department] : System LSI Division/Embedded Software Center
++* [Created Date]: 2007/12/15
++* [Revision History]
++* (1) 2007/12/15 by Kyu Hyeok Jang { kyuhyeok.jang@samsung.com }
++* - Created
++*
++****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#ifndef _OTG_REG_DEF_H
++#define _OTG_REG_DEF_H
++
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++
++//#include "s3c-otg-common-typedef.h"
++
++#define RegOpenKey(hkey, lpsz, phk) \
++ RegOpenKeyEx((hkey), (lpsz), 0, 0, (phk))
++
++#define OTG_LINK_REG_SIZE 0x11000
++
++// "IoBase"=dword:B1800000
++// "IoLen"=dword:11000 ; chandolp 1000 --> 10000
++
++////////////////////////////////////////////////////////////
++#define S3C6400_BASE_REG_PA_USBOTG_PHY 0x7C100000
++#define S3C6400_BASE_REG_PA_SYSCON 0x7E00F000
++////////////////////////////////////////////////////////////
++
++typedef struct {
++ u32 OPHYPWR;
++ u32 OPHYCLK;
++ u32 ORSTCON;
++}OTG_PHY_REG, *PS_OTG_PHY_REG;
++
++#define GOTGCTL 0x000 // OTG Control & Status
++#define GOTGINT 0x004 // OTG Interrupt
++#define GAHBCFG 0x008 // Core AHB Configuration
++#define GUSBCFG 0x00C // Core USB Configuration
++#define GRSTCTL 0x010 // Core Reset
++#define GINTSTS 0x014 // Core Interrupt
++#define GINTMSK 0x018 // Core Interrupt Mask
++#define GRXSTSR 0x01C // Receive Status Debug Read/Status Read
++#define GRXSTSP 0x020 // Receive Status Debug Pop/Status Pop
++#define GRXFSIZ 0x024 // Receive FIFO Size
++#define GNPTXFSIZ 0x028 // Non-Periodic Transmit FIFO Size
++#define GNPTXSTS 0x02C // Non-Periodic Transmit FIFO/Queue Status
++#define GPVNDCTL 0x034 // PHY Vendor Control
++#define GGPIO 0x038 // General Purpose I/O
++#define GUID 0x03C // User ID
++#define GSNPSID 0x040 // Synopsys ID
++#define GHWCFG1 0x044 // User HW Config1
++#define GHWCFG2 0x048 // User HW Config2
++#define GHWCFG3 0x04C // User HW Config3
++#define GHWCFG4 0x050 // User HW Config4
++
++#define HPTXFSIZ 0x100 // Host Periodic Transmit FIFO Size
++#define DPTXFSIZ1 0x104 // Device Periodic Transmit FIFO-1 Size
++#define DPTXFSIZ2 0x108 // Device Periodic Transmit FIFO-2 Size
++#define DPTXFSIZ3 0x10C // Device Periodic Transmit FIFO-3 Size
++#define DPTXFSIZ4 0x110 // Device Periodic Transmit FIFO-4 Size
++#define DPTXFSIZ5 0x114 // Device Periodic Transmit FIFO-5 Size
++#define DPTXFSIZ6 0x118 // Device Periodic Transmit FIFO-6 Size
++#define DPTXFSIZ7 0x11C // Device Periodic Transmit FIFO-7 Size
++#define DPTXFSIZ8 0x120 // Device Periodic Transmit FIFO-8 Size
++#define DPTXFSIZ9 0x124 // Device Periodic Transmit FIFO-9 Size
++#define DPTXFSIZ10 0x128 // Device Periodic Transmit FIFO-10 Size
++#define DPTXFSIZ11 0x12C // Device Periodic Transmit FIFO-11 Size
++#define DPTXFSIZ12 0x130 // Device Periodic Transmit FIFO-12 Size
++#define DPTXFSIZ13 0x134 // Device Periodic Transmit FIFO-13 Size
++#define DPTXFSIZ14 0x138 // Device Periodic Transmit FIFO-14 Size
++#define DPTXFSIZ15 0x13C // Device Periodic Transmit FIFO-15 Size
++
++//*********************************************************************
++// Host Mode Registers
++//*********************************************************************
++// Host Global Registers
++
++// Channel specific registers
++#define HCCHAR_ADDR 0x500
++#define HCCHAR(n) 0x500 + ((n)*0x20)
++#define HCSPLT(n) 0x504 + ((n)*0x20)
++#define HCINT(n) 0x508 + ((n)*0x20)
++#define HCINTMSK(n) 0x50C + ((n)*0x20)
++#define HCTSIZ(n) 0x510 + ((n)*0x20)
++#define HCDMA(n) 0x514 + ((n)*0x20)
++
++#define HCFG 0x400 // Host Configuration
++#define HFIR 0x404 // Host Frame Interval
++#define HFNUM 0x408 // Host Frame Number/Frame Time Remaining
++#define HPTXSTS 0x410 // Host Periodic Transmit FIFO/Queue Status
++#define HAINT 0x414 // Host All Channels Interrupt
++#define HAINTMSK 0x418 // Host All Channels Interrupt Mask
++
++// Host Port Control & Status Registers
++
++#define HPRT 0x440 // Host Port Control & Status
++
++// Device Logical Endpoints-Specific Registers
++
++#define DIEPCTL 0x900 // Device IN Endpoint 0 Control
++#define DOEPCTL(n) 0xB00 + ((n)*0x20)) // Device OUT Endpoint 0 Control
++#define DIEPINT(n) 0x908 + ((n)*0x20)) // Device IN Endpoint 0 Interrupt
++#define DOEPINT(n) 0xB08 + ((n)*0x20)) // Device OUT Endpoint 0 Interrupt
++#define DIEPTSIZ(n) 0x910 + ((n)*0x20)) // Device IN Endpoint 0 Transfer Size
++#define DOEPTSIZ(n) 0xB10 + ((n)*0x20)) // Device OUT Endpoint 0 Transfer Size
++#define DIEPDMA(n) 0x914 + ((n)*0x20)) // Device IN Endpoint 0 DMA Address
++#define DOEPDMA(n) 0xB14 + ((n)*0x20)) // Device OUT Endpoint 0 DMA Address
++
++#define EP_FIFO(n) 0x1000 + ((n)*0x1000))
++
++#define PCGCCTL 0x0E00
++
++//
++#define BASE_REGISTER_OFFSET 0x0
++#define REGISTER_SET_SIZE 0x200
++
++// Power Reg Bits
++#define USB_RESET 0x8
++#define MCU_RESUME 0x4
++#define SUSPEND_MODE 0x2
++#define SUSPEND_MODE_ENABLE_CTRL 0x1
++
++// EP0 CSR
++#define EP0_OUT_PACKET_RDY 0x1
++#define EP0_IN_PACKET_RDY 0x2
++#define EP0_SENT_STALL 0x4
++#define DATA_END 0x8
++#define SETUP_END 0x10
++#define EP0_SEND_STALL 0x20
++#define SERVICED_OUT_PKY_RDY 0x40
++#define SERVICED_SETUP_END 0x80
++
++// IN_CSR1_REG Bit definitions
++#define IN_PACKET_READY 0x1
++#define UNDER_RUN 0x4 // Iso Mode Only
++#define FLUSH_IN_FIFO 0x8
++#define IN_SEND_STALL 0x10
++#define IN_SENT_STALL 0x20
++#define IN_CLR_DATA_TOGGLE 0x40
++
++// OUT_CSR1_REG Bit definitions
++#define OUT_PACKET_READY 0x1
++#define FLUSH_OUT_FIFO 0x10
++#define OUT_SEND_STALL 0x20
++#define OUT_SENT_STALL 0x40
++#define OUT_CLR_DATA_TOGGLE 0x80
++
++// IN_CSR2_REG Bit definitions
++#define IN_DMA_INT_DISABLE 0x10
++#define SET_MODE_IN 0x20
++
++#define EPTYPE (0x3<<18)
++#define SET_TYPE_CONTROL (0x0<<18)
++#define SET_TYPE_ISO (0x1<<18)
++#define SET_TYPE_BULK (0x2<<18)
++#define SET_TYPE_INTERRUPT (0x3<<18)
++
++#define AUTO_MODE 0x80
++
++// OUT_CSR2_REG Bit definitions
++#define AUTO_CLR 0x40
++#define OUT_DMA_INT_DISABLE 0x20
++
++// Can be used for Interrupt and Interrupt Enable Reg - common bit def
++#define EP0_IN_INT (0x1<<0)
++#define EP1_IN_INT (0x1<<1)
++#define EP2_IN_INT (0x1<<2)
++#define EP3_IN_INT (0x1<<3)
++#define EP4_IN_INT (0x1<<4)
++#define EP5_IN_INT (0x1<<5)
++#define EP6_IN_INT (0x1<<6)
++#define EP7_IN_INT (0x1<<7)
++#define EP8_IN_INT (0x1<<8)
++#define EP9_IN_INT (0x1<<9)
++#define EP10_IN_INT (0x1<<10)
++#define EP11_IN_INT (0x1<<11)
++#define EP12_IN_INT (0x1<<12)
++#define EP13_IN_INT (0x1<<13)
++#define EP14_IN_INT (0x1<<14)
++#define EP15_IN_INT (0x1<<15)
++#define EP0_OUT_INT (0x1<<16)
++#define EP1_OUT_INT (0x1<<17)
++#define EP2_OUT_INT (0x1<<18)
++#define EP3_OUT_INT (0x1<<19)
++#define EP4_OUT_INT (0x1<<20)
++#define EP5_OUT_INT (0x1<<21)
++#define EP6_OUT_INT (0x1<<22)
++#define EP7_OUT_INT (0x1<<23)
++#define EP8_OUT_INT (0x1<<24)
++#define EP9_OUT_INT (0x1<<25)
++#define EP10_OUT_INT (0x1<<26)
++#define EP11_OUT_INT (0x1<<27)
++#define EP12_OUT_INT (0x1<<28)
++#define EP13_OUT_INT (0x1<<29)
++#define EP14_OUT_INT (0x1<<30)
++#define EP15_OUT_INT (0x1<<31)
++
++// GOTGINT
++#define SesEndDet (0x1<<2)
++
++// GRSTCTL
++#define TxFFlsh (0x1<<5)
++#define RxFFlsh (0x1<<4)
++#define INTknQFlsh (0x1<<3)
++#define FrmCntrRst (0x1<<2)
++#define HSftRst (0x1<<1)
++#define CSftRst (0x1<<0)
++
++#define CLEAR_ALL_EP_INTRS 0xffffffff
++
++#define EP_INTERRUPT_DISABLE_ALL 0x0 // Bits to write to EP_INT_EN_REG - Use CLEAR
++
++// DMA control register bit definitions
++#define RUN_OB 0x80
++#define STATE 0x70
++#define DEMAND_MODE 0x8
++#define OUT_DMA_RUN 0x4
++#define IN_DMA_RUN 0x2
++#define DMA_MODE_EN 0x1
++
++
++#define REAL_PHYSICAL_ADDR_EP0_FIFO (0x520001c0) //Endpoint 0 FIFO
++#define REAL_PHYSICAL_ADDR_EP1_FIFO (0x520001c4) //Endpoint 1 FIFO
++#define REAL_PHYSICAL_ADDR_EP2_FIFO (0x520001c8) //Endpoint 2 FIFO
++#define REAL_PHYSICAL_ADDR_EP3_FIFO (0x520001cc) //Endpoint 3 FIFO
++#define REAL_PHYSICAL_ADDR_EP4_FIFO (0x520001d0) //Endpoint 4 FIFO
++
++// GAHBCFG
++#define MODE_DMA (1<<5)
++#define MODE_SLAVE (0<<5)
++#define BURST_SINGLE (0<<1)
++#define BURST_INCR (1<<1)
++#define BURST_INCR4 (3<<1)
++#define BURST_INCR8 (5<<1)
++#define BURST_INCR16 (7<<1)
++#define GBL_INT_MASK (0<<0)
++#define GBL_INT_UNMASK (1<<0)
++
++// For USB DMA
++//BOOL InitUsbdDriverGlobals(void); //:-)
++//void UsbdDeallocateVm(void); //:-)
++//BOOL UsbdAllocateVm(void); //:-)
++//void UsbdInitDma(int epnum, int bufIndex,int bufOffset); //:-)
++
++
++//by Kevin
++
++//////////////////////////////////////////////////////////////////////////
++
++/*
++inline u32 ReadReg(
++ u32 uiOffset
++ )
++{
++ volatile u32 *pbReg = ctrlr_base_reg_addr(uiOffset);
++ u32 uiValue = (u32) *pbReg;
++ return uiValue;
++}
++
++inline void WriteReg(
++ u32 uiOffset,
++ u32 bValue
++ )
++{
++ volatile ULONG *pbReg = ctrlr_base_reg_addr(uiOffset);
++ *pbReg = (ULONG) bValue;
++}
++
++inline void UpdateReg(
++ u32 uiOffset,
++ u32 bValue
++ )
++{
++ WriteReg(uiOffset, (ReadReg(uiOffset) | bValue));
++};
++
++inline void ClearReg(
++ u32 uiOffeset,
++ u32 bValue
++ )
++{
++ WriteReg(uiOffeset, (ReadReg(uiOffeset) & ~bValue));
++};
++*/
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif //_S3C6400OTGDEVICE_H_
++
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-hcdi-debug.h b/drivers/usb/host/s3c-otg/s3c-otg-hcdi-debug.h
+new file mode 100644
+index 0000000..cbbf452
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-hcdi-debug.h
+@@ -0,0 +1,96 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * @file s3c-otg-hcdi-debug.c
++ * @brief It provides debug functions for display message \n
++ * @version
++ * -# Jun 9,2008 v1.0 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Creating the initial version of this code \n
++ * -# Jul 15,2008 v1.2 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Optimizing for performance \n
++ * @see None
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#ifndef _S3C_OTG_HCDI_DEBUG_H_
++#define _S3C_OTG_HCDI_DEBUG_H_
++
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++
++
++#ifdef OTG_DEBUG
++
++#define OTG_DBG_ACTIVE true
++#define OTG_DBG_INACTIVE false
++
++#define OTG_DBG_OTGHCDI true
++#define OTG_DBG_OTGHCDI_DRIVER true
++#define OTG_DBG_OTGHCDI_HCD true
++#define OTG_DBG_OTGHCDI_KAL true
++#define OTG_DBG_OTGHCDI_LIST false
++#define OTG_DBG_OTGHCDI_MEM false
++
++#define OTG_DBG_TRANSFER false
++#define OTG_DBG_SCHEDULE false
++#define OTG_DBG_OCI false
++#define OTG_DBG_DONETRASF false
++#define OTG_DBG_ISR false
++#define OTG_DBG_ROOTHUB false
++
++
++#if defined(__linux__)
++
++#include <linux/kernel.h> //for printk
++
++# define otg_err(is_active, msg...) \
++ do{ if ((is_active) == true)\
++ {\
++ printk(KERN_ERR "otg_err: in %s()::%05d ", __func__ , __LINE__); \
++ printk("=> " msg); \
++ }\
++ }while(0)
++
++# define otg_dbg(is_active, msg...) \
++ do{ if ((is_active) == true)\
++ {\
++ printk(KERN_DEBUG "otg_dbg: in %s()::%05d ", __func__, __LINE__); \
++ printk("=> " msg); \
++ }\
++ }while(0)
++
++#else
++
++#error Not supported OS
++
++#endif
++
++#else //OTG_DEBUG
++
++# define otg_err(is_active, msg...) do{}while(0)
++# define otg_dbg(is_active, msg...) do{}while(0)
++
++#endif
++
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* _S3C_OTG_HCDI_DEBUG_H_ */
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-hcdi-driver.c b/drivers/usb/host/s3c-otg/s3c-otg-hcdi-driver.c
+new file mode 100644
+index 0000000..9ab4cf2
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-hcdi-driver.c
+@@ -0,0 +1,256 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * @file s3c-otg-hcdi-driver.c
++ * @brief It provides functions related with module for OTGHCD driver. \n
++ * @version
++ * -# Jun 9,2008 v1.0 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Creating the initial version of this code \n
++ * -# Jul 15,2008 v1.2 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Optimizing for performance \n
++ * -# Aug 18,2008 v1.3 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Modifying for successful rmmod & disconnecting \n
++ * @see None
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#include "s3c-otg-hcdi-driver.h"
++
++/**
++ * static int s3c6410_otg_drv_probe (struct platform_device *pdev)
++ *
++ * @brief probe function of OTG hcd platform_driver
++ *
++ * @param [in] pdev : pointer of platform_device of otg hcd platform_driver
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If fail \n
++ * @remark
++ * it allocates resources of it and call other modules' init function.
++ * then call usb_create_hcd, usb_add_hcd, s3c6410_otghcd_start functions
++ */
++
++static int s3c6410_otg_drv_probe (struct platform_device *pdev)
++{
++
++ int ret_val = 0;
++ u32 reg_val = 0;
++
++ otg_dbg(OTG_DBG_OTGHCDI_DRIVER, "s3c6410_otg_drv_probe \n");
++
++/**
++ 2.6.20+ requires pdev.dma_mask to be set prior to calling usb_create_hcd()
++ Set device flags indicating whether the HCD supports DMA.
++*/
++ pdev->dev.dma_mask = (void *) ~0;
++ pdev->dev.coherent_dma_mask = ~0;
++
++
++///init for host mode
++/**
++ Allocate memory for the base HCD & Initialize the base HCD.
++*/
++ g_pUsbHcd = usb_create_hcd(&s3c6410_otg_hc_driver, &pdev->dev, pdev->dev.bus_id);
++ if (g_pUsbHcd == NULL)
++ {
++ ret_val = -ENOMEM;
++ otg_err(OTG_DBG_OTGHCDI_DRIVER, "failed to usb_create_hcd\n");
++ goto err_out_clk;
++ }
++
++
++// mapping hcd resource & device resource
++
++ g_pUsbHcd->rsrc_start = pdev->resource[0].start;
++ g_pUsbHcd->rsrc_len = pdev->resource[0].end - pdev->resource[0].start + 1;
++
++ if (!request_mem_region(g_pUsbHcd->rsrc_start, g_pUsbHcd->rsrc_len, gHcdName))
++ {
++ otg_err(OTG_DBG_OTGHCDI_DRIVER, "failed to request_mem_region\n");
++ reg_val = -EBUSY;
++ goto err_out_create_hcd;
++ }
++
++
++//Physical address => Virtual address
++ g_pUsbHcd->regs = S3C24XX_VA_OTG;
++ g_pUsbHcd->self.otg_port = 1;
++
++ g_pUDCBase = (u8 *)g_pUsbHcd->regs;
++
++ /// call others' init()
++ reg_val = otg_hcd_init_modules();
++ if( reg_val != USB_ERR_SUCCESS)
++ {
++ otg_err(OTG_DBG_OTGHCDI_DRIVER, "failed to otg_hcd_init_modules\n");
++ reg_val = USB_ERR_FAIL;
++ goto err_out_create_hcd;
++ }
++
++ /**
++ * Attempt to ensure this device is really a s3c6410 USB-OTG Controller.
++ * Read and verify the SNPSID register contents. The value should be
++ * 0x45F42XXX, which corresponds to "OT2", as in "OTG version 2.XX".
++ */
++ //reg_val = read_reg_32((unsigned int *)((u8 *)g_pUsbHcd->regs + 0x40));
++
++ reg_val = read_reg_32(0x40);
++ if ((reg_val & 0xFFFFF000) != 0x4F542000)
++ {
++ otg_err(OTG_DBG_OTGHCDI_DRIVER, "Bad value for SNPSID: 0x%08x\n", (u16)reg_val);
++ ret_val = -EINVAL;
++ goto err_out_create_hcd_init;
++ }
++
++ /*
++ * Finish generic HCD initialization and start the HCD. This function
++ * allocates the DMA buffer pool, registers the USB bus, requests the
++ * IRQ line, and calls s3c6410_otghcd_start method.
++ */
++ ret_val = usb_add_hcd(g_pUsbHcd, pdev->resource[1].start, IRQF_DISABLED);
++ if (ret_val < 0)
++ {
++ goto err_out_create_hcd_init;
++ }
++
++ otg_dbg(OTG_DBG_OTGHCDI_DRIVER,"OTG HCD Initialized HCD, bus=%s, usbbus=%d\n",
++ "EMSP OTG Controller", g_pUsbHcd->self.busnum);
++ return USB_ERR_SUCCESS;
++
++err_out_create_hcd_init:
++ otg_hcd_deinit_modules();
++ release_mem_region(g_pUsbHcd->rsrc_start, g_pUsbHcd->rsrc_len);
++
++err_out_create_hcd:
++ usb_put_hcd(g_pUsbHcd);
++
++err_out_clk:
++
++ return ret_val;
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * static int s3c6410_otg_drv_remove (struct platform_device *dev)
++ *
++ * @brief remove function of OTG hcd platform_driver
++ *
++ * @param [in] pdev : pointer of platform_device of otg hcd platform_driver
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If fail \n
++ * @remark
++ * This function is called when the otg device unregistered with the
++ * s3c6410_otg_driver. This happens, for example, when the rmmod command is
++ * executed. The device may or may not be electrically present. If it is
++ * present, the driver stops device processing. Any resources used on behalf
++ * of this device are freed.
++ */
++static int s3c6410_otg_drv_remove (struct platform_device *dev)
++{
++ otg_dbg(OTG_DBG_OTGHCDI_DRIVER, "s3c6410_otg_drv_remove \n");
++
++ otg_hcd_deinit_modules();
++
++ usb_remove_hcd(g_pUsbHcd);
++
++ release_mem_region(g_pUsbHcd->rsrc_start, g_pUsbHcd->rsrc_len);
++
++ usb_put_hcd(g_pUsbHcd);
++
++ return USB_ERR_SUCCESS;
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * @struct s3c6410_otg_driver
++ *
++ * @brief
++ * This structure defines the methods to be called by a bus driver
++ * during the lifecycle of a device on that bus. Both drivers and
++ * devices are registered with a bus driver. The bus driver matches
++ * devices to drivers based on information in the device and driver
++ * structures.
++ *
++ * The probe function is called when the bus driver matches a device
++ * to this driver. The remove function is called when a device is
++ * unregistered with the bus driver.
++ */
++static struct platform_driver s3c6410_otg_driver = {
++ .probe = s3c6410_otg_drv_probe,
++ .remove = s3c6410_otg_drv_remove,
++ .shutdown = usb_hcd_platform_shutdown,
++ .driver = {
++ .name = "s3c6410_OTGHCD",
++ .owner = THIS_MODULE,
++ },
++};
++//-------------------------------------------------------------------------------
++
++/**
++ * static int __init s3c6410_otg_module_init(void)
++ *
++ * @brief module_init function
++ *
++ * @return it returns result of platform_driver_register
++ * @remark
++ * This function is called when the s3c6410_otg_driver is installed with the
++ * insmod command. It registers the s3c6410_otg_driver structure with the
++ * appropriate bus driver. This will cause the s3c6410_otg_driver_probe function
++ * to be called. In addition, the bus driver will automatically expose
++ * attributes defined for the device and driver in the special sysfs file
++ * system.
++ */
++static int __init s3c6410_otg_module_init(void)
++{
++ int ret_val = 0;
++
++ otg_dbg(OTG_DBG_OTGHCDI_DRIVER, "s3c6410_otg_module_init \n");
++
++ ret_val = platform_driver_register(&s3c6410_otg_driver);
++ if (ret_val < 0)
++ {
++ otg_err(OTG_DBG_OTGHCDI_DRIVER, "platform_driver_register \n");
++ }
++ return ret_val;
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * static void __exit s3c6410_otg_module_exit(void)
++ *
++ * @brief module_exit function
++ *
++ * @remark
++ * This function is called when the driver is removed from the kernel
++ * with the rmmod command. The driver unregisters itself with its bus
++ * driver.
++ */
++static void __exit s3c6410_otg_module_exit(void)
++{
++ otg_dbg(OTG_DBG_OTGHCDI_DRIVER, "s3c6410_otg_module_exit \n");
++ platform_driver_unregister(&s3c6410_otg_driver);
++}
++//-------------------------------------------------------------------------------
++
++module_init(s3c6410_otg_module_init);
++module_exit(s3c6410_otg_module_exit);
++
++MODULE_DESCRIPTION("OTG USB HOST controller driver");
++MODULE_AUTHOR("SAMSUNG / System LSI / EMSP");
++MODULE_LICENSE("GPL");
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-hcdi-driver.h b/drivers/usb/host/s3c-otg/s3c-otg-hcdi-driver.h
+new file mode 100644
+index 0000000..e00f57d
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-hcdi-driver.h
+@@ -0,0 +1,73 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * @file s3c-otg-hcdi-driver.h
++ * @brief header of s3c-otg-hcdi-driver \n
++ * @version
++ * -# Jun 9,2008 v1.0 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Creating the initial version of this code \n
++ * -# Jul 15,2008 v1.2 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Optimizing for performance \n
++ * -# Aug 18,2008 v1.3 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Modifying for successful rmmod & disconnecting \n
++ * @see None
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#ifndef _S3C_OTG_HCDI_DRIVER_H_
++#define _S3C_OTG_HCDI_DRIVER_H_
++
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++
++#include <linux/module.h>
++#include <linux/init.h>
++//#include <linux/clk.h> //for clk_get, clk_enable etc.
++
++#include <linux/device.h>
++#include <linux/platform_device.h>
++#include <linux/errno.h>
++#include <linux/interrupt.h> //for SA_SHIRQ
++#include <asm/arch/map.h> //address for smdk
++#include <linux/dma-mapping.h> //dma_alloc_coherent
++#include <linux/ioport.h> //request_mem_request ...
++#include <asm/arch/irqs.h> //for IRQ_OTG
++
++//#include <asm/io.h> //for ioremap
++
++#include "s3c-otg-common-common.h"
++#include "s3c-otg-hcdi-debug.h"
++#include "s3c-otg-hcdi-hcd.h"
++#include "s3c-otg-hcdi-kal.h"
++
++//struct clk* g_pOTG_clock = NULL;
++struct usb_hcd* g_pUsbHcd = NULL;
++
++volatile u8 * g_pUDCBase;
++
++static const char gHcdName[] = "EMSP_OTG_HCD";
++
++extern int otg_hcd_init_modules(void);
++extern void otg_hcd_deinit_modules(void);
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* _S3C_OTG_HCDI_DRIVER_H_ */
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-hcdi-hcd.c b/drivers/usb/host/s3c-otg/s3c-otg-hcdi-hcd.c
+new file mode 100644
+index 0000000..cfb8590
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-hcdi-hcd.c
+@@ -0,0 +1,651 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * @file s3c-otg-hcdi-hcd.c
++ * @brief implementation of structure hc_drive \n
++ * @version
++ * -# Jun 11,2008 v1.0 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Creating the initial version of this code \n
++ * -# Jul 15,2008 v1.2 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Optimizing for performance \n
++ * -# Aug 18,2008 v1.3 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Modifying for successful rmmod & disconnecting \n
++ * @see None
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#include "s3c-otg-hcdi-hcd.h"
++
++static SPINLOCK_t otg_hcd_spin_lock = SPIN_LOCK_INIT;
++
++/**
++ * otg_hcd_init_modules()
++ *
++ * @brief call other modules' init functions
++ *
++ * @return PASS : If success \n
++ * FAIL : If fail \n
++ */
++int otg_hcd_init_modules(void)
++{
++ u32 spin_lock_flag = 0;
++
++ otg_dbg(OTG_DBG_OTGHCDI_DRIVER, "OTGHCD_InitModuless \n");
++ spin_lock_irg_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++
++ init_transfer();
++ init_scheduler();
++ oci_init();
++
++ spin_unlock_irq_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++
++ return USB_ERR_SUCCESS;
++};
++
++/**
++ * void otg_hcd_deinit_modules(void)
++ *
++ * @brief call other modules' de-init functions
++ *
++ * @return PASS : If success \n
++ * FAIL : If fail \n
++ */
++void otg_hcd_deinit_modules(void)
++{
++ u32 spin_lock_flag = 0;
++
++ otg_dbg(OTG_DBG_OTGHCDI_DRIVER, "otg_hcd_deinit_modules \n");
++
++ spin_lock_irg_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++
++ deinit_transfer();
++
++ spin_unlock_irq_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++}
++
++/**
++ * irqreturn_t (*s3c6410_otghcd_irq) (struct usb_hcd *hcd)
++ *
++ * @brief interrupt handler of otg irq
++ *
++ * @param [in] hcd : pointer of usb_hcd
++ *
++ * @return IRQ_HANDLED \n
++ */
++irqreturn_t s3c6410_otghcd_irq(struct usb_hcd *hcd)
++{
++
++ u32 spin_lock_flag = 0;
++
++ otg_dbg(false, "s3c6410_otghcd_irq \n");
++
++ spin_lock_irg_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++ otg_handle_interrupt();
++ spin_unlock_irq_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++
++
++ return IRQ_HANDLED;
++}
++//-------------------------------------------------------------------------------
++
++
++/**
++ * int s3c6410_otghcd_start(struct usb_hcd *hcd)
++ *
++ * @brief initialize and start otg hcd
++ *
++ * @param [in] usb_hcd_p : pointer of usb_hcd
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ */
++int s3c6410_otghcd_start(struct usb_hcd *usb_hcd_p)
++{
++ struct usb_bus *usb_bus_p;
++
++ otg_dbg(OTG_DBG_OTGHCDI_HCD, "s3c6410_otghcd_start \n");
++
++ usb_bus_p = hcd_to_bus(usb_hcd_p);
++
++ //* Initialize and connect root hub if one is not already attached */
++ if (usb_bus_p->root_hub) {
++ otg_dbg(OTG_DBG_OTGHCDI_HCD, "OTG HCD Has Root Hub\n");
++
++ //* Inform the HUB driver to resume. */
++ otg_usbcore_resume_roothub();
++ } else {
++ otg_err(OTG_DBG_OTGHCDI_HCD, "OTG HCD Does Not Have Root Hub\n");
++ return USB_ERR_FAIL;
++ }
++
++ usb_hcd_p->poll_rh = 1;
++ usb_hcd_p->uses_new_polling = 1;
++
++ ///init bus state before enable irq
++ usb_hcd_p->state = HC_STATE_RUNNING;
++
++ oci_start();//enable irq
++
++ return USB_ERR_SUCCESS;
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * void s3c6410_otghcd_stop(struct usb_hcd *hcd)
++ *
++ * @brief deinitialize and stop otg hcd
++ *
++ * @param [in] hcd : pointer of usb_hcd
++ *
++ */
++void s3c6410_otghcd_stop(struct usb_hcd *hcd)
++{
++ u32 spin_lock_flag = 0;
++
++ otg_dbg(OTG_DBG_OTGHCDI_HCD, "s3c6410_otghcd_stop \n");
++
++ spin_lock_irg_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++ otg_hcd_deinit_modules();
++ oci_stop();
++ spin_unlock_irq_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * void s3c6410_otghcd_shutdown(struct usb_hcd *hcd)
++ *
++ * @brief shutdown otg hcd
++ *
++ * @param [in] usb_hcd_p : pointer of usb_hcd
++ *
++ */
++void s3c6410_otghcd_shutdown(struct usb_hcd *usb_hcd_p)
++{
++
++ u32 spin_lock_flag = 0;
++
++ otg_dbg(OTG_DBG_OTGHCDI_HCD, "s3c6410_otghcd_shutdown \n");
++ otg_hcd_deinit_modules();
++
++ spin_lock_irg_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++ oci_stop();
++ spin_unlock_irq_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++
++ free_irq(IRQ_OTG, usb_hcd_p);
++ usb_hcd_p->state = HC_STATE_HALT;
++ otg_usbcore_hc_died();
++}
++//-------------------------------------------------------------------------------
++
++
++/**
++ * int s3c6410_otghcd_get_frame_number(struct usb_hcd *hcd)
++ *
++ * @brief get currnet frame number
++ *
++ * @param [in] hcd : pointer of usb_hcd
++ *
++ * @return ret : frame number \n
++ */
++int s3c6410_otghcd_get_frame_number(struct usb_hcd *hcd)
++{
++ int ret = 0;
++ u32 spin_lock_flag = 0;
++
++ otg_dbg(OTG_DBG_OTGHCDI_HCD, "s3c6410_otghcd_get_frame_number \n");
++
++ spin_lock_irg_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++ ret = oci_get_frame_num();
++ spin_unlock_irq_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++ return ret;
++}
++//-------------------------------------------------------------------------------
++
++
++/**
++ * int s3c6410_otghcd_urb_enqueue()
++ *
++ * @brief enqueue a urb to otg hcd
++ *
++ * @param [in] hcd : pointer of usb_hcd
++ * [in] ep : pointer of usb_host_endpoint
++ * [in] urb : pointer of urb
++ * [in] mem_flags : type of gfp_t
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ */
++int
++s3c6410_otghcd_urb_enqueue
++(
++ struct usb_hcd *hcd,
++ struct urb *urb,
++ gfp_t mem_flags
++)
++{
++
++ int ret_val = 0;
++ u32 trans_flag = 0;
++ u32 return_td_addr = 0;
++ u8 dev_speed, ed_type = 0, additional_multi_count;
++ u16 max_packet_size;
++
++ u8 dev_addr = 0;
++ u8 ep_num = 0;
++ bool f_is_ep_in = true;
++ u8 interval = 0;
++ u32 sched_frame = 0;
++ u8 hub_addr = 0;
++ u8 hub_port = 0;
++ bool f_is_do_split = false;
++
++ u32 spin_lock_flag = 0;
++
++ ed_t * target_ed = NULL;
++ isoch_packet_desc_t * new_isoch_packet_desc = NULL;
++
++ otg_dbg(false, "s3c6410_otghcd_urb_enqueue \n");
++
++ /// check ep has ed_t or not
++ if(!(urb->ep->hcpriv))
++ {
++ ///for getting dev_speed
++ switch (urb->dev->speed)
++ {
++ case USB_SPEED_HIGH :
++ dev_speed = HIGH_SPEED_OTG; break;
++
++ case USB_SPEED_FULL :
++ dev_speed = FULL_SPEED_OTG; break;
++
++ case USB_SPEED_LOW :
++ dev_speed = LOW_SPEED_OTG; break;
++
++ default:
++ otg_err(OTG_DBG_OTGHCDI_HCD, "unKnown Device Speed \n");
++ return USB_ERR_FAIL;
++ }
++
++ ///for getting ed_type
++ switch (usb_pipetype(urb->pipe))
++ {
++ case PIPE_BULK :
++ ed_type = BULK_TRANSFER; break;
++
++ case PIPE_INTERRUPT :
++ ed_type = INT_TRANSFER; break;
++
++ case PIPE_CONTROL :
++ ed_type = CONTROL_TRANSFER; break;
++
++ case PIPE_ISOCHRONOUS :
++ ed_type = ISOCH_TRANSFER; break;
++ default:
++ otg_err(OTG_DBG_OTGHCDI_HCD, "unKnown ep type \n");
++ return USB_ERR_FAIL;
++ }
++
++ max_packet_size = usb_maxpacket(urb->dev, urb->pipe, !(usb_pipein(urb->pipe)));
++
++ additional_multi_count = ((max_packet_size) >> 11) & 0x03;
++
++ if ( ((dev_speed == FULL_SPEED_OTG) || (dev_speed == LOW_SPEED_OTG)) &&
++ (urb->dev->tt) && (urb->dev->tt->hub->devnum != 1) )
++ {
++ f_is_do_split = true;
++ }
++
++ dev_addr = usb_pipedevice(urb->pipe);
++ ep_num = usb_pipeendpoint(urb->pipe);
++ f_is_ep_in = usb_pipein(urb->pipe) ? true : false;
++ interval = (u8)(urb->interval);
++ sched_frame = (u8)(urb->start_frame);
++
++ //check
++ if(urb->dev->tt == NULL)
++ {
++ hub_port = 0; //u8 hub_port
++ hub_addr = 0; //u8 hub_addr,
++ }
++ else
++ {
++ hub_port = (u8)(urb->dev->ttport); //u8 hub_port,
++ hub_addr = (u8)(urb->dev->tt->hub->devnum);//u8 hub_addr,
++ }
++
++ ret_val = create_ed(&target_ed);
++ if(ret_val != USB_ERR_SUCCESS)
++ {
++ otg_err(OTG_DBG_OTGHCDI_HCD, "fail to create_ed() \n");
++ return ret_val;
++ }
++
++ ret_val = init_ed( target_ed,
++ dev_addr,
++ ep_num,
++ f_is_ep_in,
++ dev_speed,
++ ed_type,
++ max_packet_size,
++ additional_multi_count,
++ interval,
++ sched_frame,
++ hub_addr,
++ hub_port,
++ f_is_do_split,
++ (void *)urb->ep);
++
++ if(ret_val != USB_ERR_SUCCESS)
++ {
++ otg_err(OTG_DBG_OTGHCDI_HCD, "fail to init_ed() :err = %d \n",(int)ret_val);
++ otg_mem_free(target_ed);
++ return USB_ERR_FAIL;
++ }
++
++ urb->ep->hcpriv = (void *)(target_ed);
++ } // if(!(ep->hcpriv))
++ else
++ {
++ dev_addr = usb_pipedevice(urb->pipe);
++ if(((ed_t *)(urb->ep->hcpriv))->ed_desc.device_addr != dev_addr)
++ {
++ ((ed_t *)urb->ep->hcpriv)->ed_desc.device_addr = dev_addr;
++ }
++ }
++
++ target_ed = (ed_t *)urb->ep->hcpriv;
++
++ if(urb->transfer_flags & URB_SHORT_NOT_OK)
++ trans_flag += USB_TRANS_FLAG_NOT_SHORT;
++ if (urb->transfer_flags & URB_ISO_ASAP)
++ trans_flag += USB_TRANS_FLAG_ISO_ASYNCH;
++
++ if(ed_type == ISOCH_TRANSFER)
++ {
++ otg_err(OTG_DBG_OTGHCDI_HCD, "ISO not yet supported \n");
++ return USB_ERR_FAIL;
++ }
++
++ spin_lock_irg_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++
++ if (!HC_IS_RUNNING(hcd->state)) {
++ otg_err(OTG_DBG_OTGHCDI_HCD, "!HC_IS_RUNNING(hcd->state) \n");
++ spin_unlock_irq_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++ return -USB_ERR_NODEV;
++ }
++
++ /* in case of unlink-during-submit */
++ if (urb->status != -EINPROGRESS) {
++ urb->hcpriv = NULL;
++ usb_hcd_giveback_urb(hcd, urb, urb->status);
++ goto fail;
++ }
++
++ ret_val = issue_transfer( target_ed, (void *)NULL, (void *)NULL,
++ trans_flag,
++ (usb_pipetype(urb->pipe) == PIPE_CONTROL)?true:false,
++ (u32)urb->setup_packet, (u32)urb->setup_dma,
++ (u32)urb->transfer_buffer, (u32)urb->transfer_dma,
++ (u32)urb->transfer_buffer_length,
++ (u32)urb->start_frame,(u32)urb->number_of_packets,
++ new_isoch_packet_desc, (void *)urb, &return_td_addr);
++
++ if(ret_val != USB_ERR_SUCCESS)
++ {
++ otg_err(OTG_DBG_OTGHCDI_HCD, "fail to issue_transfer() \n");
++ return USB_ERR_FAIL;
++ }
++ urb->hcpriv = (void *)return_td_addr;
++
++fail:
++
++ spin_unlock_irq_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++ return USB_ERR_SUCCESS;
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * int s3c6410_otghcd_urb_dequeue(struct usb_hcd *_hcd, struct urb *_urb )
++ *
++ * @brief dequeue a urb to otg
++ *
++ * @param [in] _hcd : pointer of usb_hcd
++ * [in] _urb : pointer of urb
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ */
++int s3c6410_otghcd_urb_dequeue(struct usb_hcd *_hcd, struct urb *_urb, int status)
++{
++ int ret_val = 0;
++
++ u32 spin_lock_flag = 0;
++ td_t * cancel_td = (td_t *)_urb->hcpriv;
++
++ if (cancel_td == NULL)
++ {
++ otg_err(OTG_DBG_OTGHCDI_HCD, "cancel_td == NULL \n");
++ return USB_ERR_FAIL;
++ }
++
++ otg_dbg(OTG_DBG_OTGHCDI_HCD, "s3c6410_otghcd_urb_dequeue \n");
++
++ spin_lock_irg_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++
++ if (!HC_IS_RUNNING(_hcd->state)) {
++ otg_err(OTG_DBG_OTGHCDI_HCD, "!HC_IS_RUNNING(hcd->state) \n");
++ otg_usbcore_giveback(cancel_td);
++ spin_unlock_irq_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++ return 0;
++ }
++
++ ret_val = cancel_transfer(cancel_td->parent_ed_p, cancel_td);
++ if(ret_val != USB_ERR_DEQUEUED && ret_val != USB_ERR_NOELEMENT)
++ {
++ otg_err(OTG_DBG_OTGHCDI_HCD, "fail to cancel_transfer() \n");
++ otg_usbcore_giveback(cancel_td);
++ spin_unlock_irq_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++ return USB_ERR_FAIL;
++ }
++
++ otg_usbcore_giveback(cancel_td);
++
++ spin_unlock_irq_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++ return USB_ERR_SUCCESS;
++}
++//-------------------------------------------------------------------------------
++
++
++/**
++ * void s3c6410_otghcd_endpoint_disable(struct usb_hcd *hcd, struct usb_host_endpoint *ep)
++ *
++ * @brief disable a endpoint
++ *
++ * @param [in] hcd : pointer of usb_hcd
++ * [in] ep : pointer of usb_host_endpoint
++ */
++void s3c6410_otghcd_endpoint_disable(struct usb_hcd *hcd, struct usb_host_endpoint *ep)
++{
++ int ret_val = 0;
++ u32 spin_lock_flag = 0;
++
++ otg_dbg(OTG_DBG_OTGHCDI_HCD, "s3c6410_otghcd_endpoint_disable \n");
++
++ if(!((ed_t *)ep->hcpriv))
++ return;
++ spin_lock_irg_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++ ret_val = delete_ed((ed_t *)ep->hcpriv);
++ spin_unlock_irq_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++
++ if(ret_val != USB_ERR_SUCCESS)
++ {
++ otg_err(OTG_DBG_OTGHCDI_HCD, "fail to delete_ed() \n");
++ return ;
++ }
++ //ep->hcpriv = NULL; delete_ed coveres it
++}
++//-------------------------------------------------------------------------------
++
++
++/**
++ * int s3c6410_otghcd_hub_status_data(struct usb_hcd *_hcd, char *_buf)
++ *
++ * @brief get status of root hub
++ *
++ * @param [in] _hcd : pointer of usb_hcd
++ * [inout] _buf : pointer of buffer for write a status data
++ *
++ * @return ret_val : return port status \n
++ */
++int s3c6410_otghcd_hub_status_data(struct usb_hcd *_hcd, char *_buf)
++{
++ int ret_val = 0;
++ u32 spin_lock_flag = 0;
++
++ otg_dbg(false, "s3c6410_otghcd_hub_status_data \n");
++
++ spin_lock_irg_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++ ret_val = get_otg_port_status(OTG_PORT_NUMBER, _buf);
++ spin_unlock_irq_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++
++ return (int)ret_val;
++}
++//-------------------------------------------------------------------------------
++
++
++/**
++ * int s3c6410_otghcd_hub_control()
++ *
++ * @brief control root hub
++ *
++ * @param [in] hcd : pointer of usb_hcd
++ * [in] typeReq : type of control request
++ * [in] value : value
++ * [in] index : index
++ * [in] buf_p : pointer of urb
++ * [in] length : type of gfp_t
++ *
++ * @return ret_val : return root_hub_feature \n
++ */
++int
++s3c6410_otghcd_hub_control
++(
++ struct usb_hcd *hcd,
++ u16 typeReq,
++ u16 value,
++ u16 index,
++ char* buf_p,
++ u16 length
++)
++{
++ int ret_val = 0;
++ u32 spin_lock_flag = 0;
++
++ otg_dbg(false, "s3c6410_otghcd_hub_control \n");
++
++ spin_lock_irg_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++
++ ret_val = root_hub_feature(OTG_PORT_NUMBER, typeReq, value, (void *)buf_p);
++
++ spin_unlock_irq_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++ if(ret_val != USB_ERR_SUCCESS)
++ {
++ otg_err(OTG_DBG_OTGHCDI_HCD, "fail to root_hub_feature() \n");
++ return ret_val;
++ }
++ return (int)ret_val;
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * int s3c6410_otghcd_bus_suspend(struct usb_hcd *hcd)
++ *
++ * @brief suspend otg hcd
++ *
++ * @param [in] hcd : pointer of usb_hcd
++ *
++ * @return USB_ERR_SUCCESS \n
++ */
++int s3c6410_otghcd_bus_suspend(struct usb_hcd *hcd)
++{
++ u32 spin_lock_flag = 0;
++
++ otg_dbg(OTG_DBG_OTGHCDI_HCD, "s3c6410_otghcd_bus_suspend \n");
++ spin_lock_irg_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++ bus_suspend();
++
++ spin_unlock_irq_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++ return USB_ERR_SUCCESS;
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * int s3c6410_otghcd_bus_resume(struct usb_hcd *hcd)
++ *
++ * @brief resume otg hcd
++ *
++ * @param [in] hcd : pointer of usb_hcd
++ *
++ * @return USB_ERR_SUCCESS \n
++ */
++int s3c6410_otghcd_bus_resume(struct usb_hcd *hcd)
++{
++ u32 spin_lock_flag = 0;
++
++ otg_dbg(OTG_DBG_OTGHCDI_HCD, "s3c6410_otghcd_bus_resume \n");
++ spin_lock_irg_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++ if(bus_resume() != USB_ERR_SUCCESS)
++ {
++ return USB_ERR_FAIL;
++ }
++ spin_unlock_irq_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++ return USB_ERR_SUCCESS;
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * int s3c6410_otghcd_start_port_reset(struct usb_hcd *hcd, unsigned port)
++ *
++ * @brief reset otg port
++ *
++ * @param [in] hcd : pointer of usb_hcd
++ * [in] port : number of port
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * ret_val : If call fail \n
++ */
++int s3c6410_otghcd_start_port_reset(struct usb_hcd *hcd, unsigned port)
++{
++ int ret_val = 0;
++
++ u32 spin_lock_flag = 0;
++
++ otg_dbg(OTG_DBG_OTGHCDI_HCD, "s3c6410_otghcd_start_port_reset \n");
++ spin_lock_irg_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++
++ ret_val = reset_and_enable_port(OTG_PORT_NUMBER);
++
++ spin_unlock_irq_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
++ if(ret_val != USB_ERR_SUCCESS)
++ {
++ otg_err(OTG_DBG_OTGHCDI_HCD, "fail to reset_and_enable_port() \n");
++ return ret_val;
++ }
++ return USB_ERR_SUCCESS;
++}
++//-------------------------------------------------------------------------------
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-hcdi-hcd.h b/drivers/usb/host/s3c-otg/s3c-otg-hcdi-hcd.h
+new file mode 100644
+index 0000000..031ebf6
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-hcdi-hcd.h
+@@ -0,0 +1,144 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * @file s3c-otg-hcdi-hcd.h
++ * @brief header of s3c-otg-hcdi-hcd \n
++ * @version
++ * -# Jun 9,2008 v1.0 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Creating the initial version of this code \n
++ * -# Jul 15,2008 v1.2 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Optimizing for performance \n
++ * -# Aug 18,2008 v1.3 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Modifying for successful rmmod & disconnecting \n
++ * @see None
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#ifndef _S3C_OTG_HCDI_HCD_H_
++#define _S3C_OTG_HCDI_HCD_H_
++
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++
++//for IRQ_NONE (0) IRQ_HANDLED (1) IRQ_RETVAL(x) ((x) != 0)
++#include <linux/interrupt.h>
++
++#include <linux/usb.h>
++//#include <../drivers/usb/core/hcd.h>
++
++#include "s3c-otg-hcdi-debug.h"
++#include "s3c-otg-hcdi-kal.h"
++
++#include "s3c-otg-common-common.h"
++#include "s3c-otg-common-datastruct.h"
++#include "s3c-otg-common-const.h"
++
++#include "s3c-otg-transfer-transfer.h"
++#include "s3c-otg-oci.h"
++#include "s3c-otg-roothub.h"
++
++//placed in ISR
++extern void otg_handle_interrupt(void);
++
++int otg_hcd_init_modules(void);
++void otg_hcd_deinit_modules(void);
++
++
++irqreturn_t s3c6410_otghcd_irq(struct usb_hcd *hcd);
++
++int s3c6410_otghcd_start(struct usb_hcd *hcd);
++void s3c6410_otghcd_stop(struct usb_hcd *hcd);
++void s3c6410_otghcd_shutdown(struct usb_hcd *hcd);
++
++int s3c6410_otghcd_get_frame_number(struct usb_hcd *hcd);
++
++int s3c6410_otghcd_urb_enqueue(
++ struct usb_hcd *hcd,
++ struct urb *urb,
++ gfp_t mem_flags);
++
++int s3c6410_otghcd_urb_dequeue(
++ struct usb_hcd *_hcd,
++ struct urb *_urb,
++ int status);
++
++void s3c6410_otghcd_endpoint_disable(
++ struct usb_hcd *hcd,
++ struct usb_host_endpoint *ep);
++
++int s3c6410_otghcd_hub_status_data(
++ struct usb_hcd *_hcd,
++ char *_buf);
++
++int s3c6410_otghcd_hub_control(
++ struct usb_hcd *hcd,
++ u16 type_req,
++ u16 value,
++ u16 index,
++ char * buf,
++ u16 length);
++
++int s3c6410_otghcd_bus_suspend(struct usb_hcd *hcd);
++int s3c6410_otghcd_bus_resume(struct usb_hcd *hcd);
++int s3c6410_otghcd_start_port_reset(struct usb_hcd *hcd, unsigned port);
++
++/**
++ * @struct hc_driver s3c6410_otg_hc_driver
++ *
++ * @brief implementation of hc_driver for OTG HCD
++ *
++ * describe in detail
++ */
++static const struct hc_driver s3c6410_otg_hc_driver = {
++ .description = "EMSP_OTGHCD",
++ .product_desc = "S3C6410 OTGHCD",
++
++ .irq = s3c6410_otghcd_irq,
++ .flags = HCD_MEMORY | HCD_USB2,
++
++ /** basic lifecycle operations */
++ //.reset =
++ .start = s3c6410_otghcd_start,
++ //.suspend = ,
++ //.resume = ,
++ .stop = s3c6410_otghcd_stop,
++ .shutdown = s3c6410_otghcd_shutdown,
++
++ /** managing i/o requests and associated device resources */
++ .urb_enqueue = s3c6410_otghcd_urb_enqueue,
++ .urb_dequeue = s3c6410_otghcd_urb_dequeue,
++ .endpoint_disable = s3c6410_otghcd_endpoint_disable,
++
++ /** scheduling support */
++ .get_frame_number = s3c6410_otghcd_get_frame_number,
++
++ /** root hub support */
++ .hub_status_data = s3c6410_otghcd_hub_status_data,
++ .hub_control = s3c6410_otghcd_hub_control,
++ //.hub_irq_enable =
++ .bus_suspend = s3c6410_otghcd_bus_suspend,
++ .bus_resume = s3c6410_otghcd_bus_resume,
++ .start_port_reset = s3c6410_otghcd_start_port_reset,
++};
++
++#ifdef __cplusplus
++}
++#endif
++#endif /* _S3C_OTG_HCDI_HCD_H_ */
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-hcdi-kal.h b/drivers/usb/host/s3c-otg/s3c-otg-hcdi-kal.h
+new file mode 100644
+index 0000000..5d1203d
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-hcdi-kal.h
+@@ -0,0 +1,420 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * @file s3c-otg-hcdi-kal.h
++ * @brief header of s3c-otg-hcdi-kal \n
++ * @version
++ * -# Jun 9,2008 v1.0 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Creating the initial version of this code \n
++ * -# Jul 15,2008 v1.2 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Optimizing for performance \n
++ * -# Aug 18,2008 v1.3 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Modifying for successful rmmod & disconnecting \n
++ * @see None
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#ifndef _S3C_OTG_HCDI_KAL_H_
++#define _S3C_OTG_HCDI_KAL_H_
++
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++
++#include "s3c-otg-hcdi-debug.h"
++#include "s3c-otg-common-common.h"
++#include "s3c-otg-common-datastruct.h"
++#include "s3c-otg-common-const.h"
++
++#include <asm/io.h> //for readl, writel
++#include <linux/usb/ch9.h> //for usb_device_driver, enum usb_device_speed
++#include <linux/usb.h>
++#include <../drivers/usb/core/hcd.h>
++
++extern volatile u8 * g_pUDCBase;
++extern struct usb_hcd* g_pUsbHcd;
++
++
++#if defined(__linux__)
++
++#include <linux/spinlock.h>
++#define SPINLOCK_t spinlock_t
++#define SPIN_LOCK_INIT SPIN_LOCK_UNLOCKED
++
++#else
++
++#error Not supported OS
++
++#endif
++
++#define spin_lock_otg(lock) spin_lock(lock)
++#define spin_lock_irg_otg(lock) spin_lock_irq(lock)
++#define spin_lock_irg_save_otg(lock, flags) spin_lock_irqsave(lock, flags)
++
++#define spin_unlock_otg(lock) spin_unlock(lock)
++#define spin_unlock_irq_otg(lock) spin_unlock_irq(lock)
++#define spin_unlock_irq_save_otg(lock, flags) spin_unlock_irqrestore(lock, flags)
++
++#define ctrlr_base_reg_addr(offset) \
++ ((volatile unsigned int *)((g_pUDCBase) + (offset)))
++/**
++ * otg_kal_make_ep_null
++ *
++ * @brief make ep->hcpriv NULL
++ *
++ * @param [in] pdelete_ed : pointer of ed
++ *
++ * @return void \n
++ */
++static inline void
++otg_kal_make_ep_null
++(
++ ed_t *pdelete_ed
++)
++{
++ ((struct usb_host_endpoint *)(pdelete_ed->ed_private))->hcpriv = NULL;
++}
++//---------------------------------------------------------------------------------------
++
++/**
++ * otg_kal_is_ep_null
++ *
++ * @brief check ep->hcpriv is NULL or not
++ *
++ * @param [in] pdelete_ed : pointer of ed
++ *
++ * @return bool \n
++ */
++static inline bool
++otg_kal_is_ep_null
++(
++ ed_t *pdelete_ed
++)
++{
++ if (((struct usb_host_endpoint *)(pdelete_ed->ed_private))->hcpriv == NULL)
++ return true;
++ else
++ return false;
++}
++//---------------------------------------------------------------------------------------
++
++
++/**
++ * int otg_usbcore_get_calc_bustime()
++ *
++ * @brief get bus time of usbcore
++ *
++ * @param [in] speed : usb speed
++ * [in] is_input : input or not
++ * [in] is_isoch : isochronous or not
++ * [in] byte_count : bytes
++ *
++ * @return bus time of usbcore \n
++ */
++static inline int
++otg_usbcore_get_calc_bustime
++(
++ u8 speed,
++ bool is_input,
++ bool is_isoch,
++ unsigned int byte_count
++)
++{
++ unsigned int convert_speed = 0;
++
++ otg_dbg(OTG_DBG_OTGHCDI_KAL, "otg_usbcore_get_calc_bustime \n");
++/* enum usb_device_speed {
++ USB_SPEED_UNKNOWN = 0,
++ USB_SPEED_LOW, USB_SPEED_FULL,
++ USB_SPEED_HIGH,
++ USB_SPEED_VARIABLE, };*/
++ switch(speed)
++ {
++ case HIGH_SPEED_OTG : convert_speed = USB_SPEED_HIGH; break;
++ case FULL_SPEED_OTG : convert_speed = USB_SPEED_FULL; break;
++ case LOW_SPEED_OTG : convert_speed = USB_SPEED_LOW; break;
++ default: convert_speed = USB_SPEED_UNKNOWN; break;
++ }
++ return usb_calc_bus_time(convert_speed, is_input, (unsigned int)is_isoch, byte_count);
++}
++
++//-------------------------------------------------------------------------------
++
++/**
++ * void otg_usbcore_giveback(td_t td_p)
++ *
++ * @brief give-back a td as urb
++ *
++ * @param [in] td_p : pointer of td_t to give back
++ *
++ * @return void \n
++ */
++static inline void
++otg_usbcore_giveback(td_t * td_p)
++{
++ struct urb *urb_p = NULL;
++
++// otg_dbg(OTG_DBG_OTGHCDI_KAL, "otg_usbcore_giveback \n");
++ if (td_p->td_private == NULL)
++ {
++ otg_err(OTG_DBG_OTGHCDI_KAL, "td_p->td_private == NULL \n");
++ return;
++ }
++
++ urb_p = (struct urb *)td_p->td_private;
++
++ urb_p->actual_length = (int)(td_p->transferred_szie);
++ urb_p->status = (int)(td_p->error_code);
++ urb_p->error_count = (int)(td_p->err_cnt);
++ urb_p->hcpriv = NULL;
++
++#ifdef OTG_DEBUG
++ if(urb_p->transfer_buffer_length != td_p->transferred_szie)
++ {
++ if(!td_p->parent_ed_p->ed_desc.is_ep_in)
++ {
++ otg_dbg(false, "###OUT ==> %d: %d : %d\n",(int)urb_p->transfer_buffer_length,(int)td_p->transferred_szie, (int)td_p->buf_size);
++ }
++ else
++ {
++ otg_dbg(false, "###IN ==> %d: %d : %d\n",(int)urb_p->transfer_buffer_length,(int)td_p->transferred_szie, (int)td_p->buf_size);
++ }
++ }
++#endif
++ usb_hcd_giveback_urb(g_pUsbHcd, urb_p, urb_p->status);
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * void otg_usbcore_hc_died(void)
++ *
++ * @brief inform usbcore of hc die
++ *
++ * @return void \n
++ */
++static inline void
++otg_usbcore_hc_died(void)
++{
++ otg_dbg(OTG_DBG_OTGHCDI_KAL, "otg_usbcore_hc_died \n");
++ usb_hc_died(g_pUsbHcd);
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * void otg_usbcore_poll_rh_status(void)
++ *
++ * @brief invoke usbcore's usb_hcd_poll_rh_status
++ *
++ * @param void
++ *
++ * @return void \n
++ */
++static inline void
++otg_usbcore_poll_rh_status(void)
++{
++ usb_hcd_poll_rh_status(g_pUsbHcd);
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * void otg_usbcore_resume_roothub(void)
++ *
++ * @brief invoke usbcore's usb_hcd_resume_root_hub
++ *
++ * @param void
++ *
++ * @return void \n
++ */
++static inline void
++otg_usbcore_resume_roothub(void)
++{
++ otg_dbg(OTG_DBG_OTGHCDI_KAL, "otg_usbcore_resume_roothub \n");
++ usb_hcd_resume_root_hub(g_pUsbHcd);
++};
++//-------------------------------------------------------------------------------
++
++/**
++ * int otg_usbcore_inc_usb_bandwidth(u32 band_width)
++ *
++ * @brief increase bandwidth of usb bus
++ *
++ * @param [in] band_width : bandwidth to be increased
++ *
++ * @return USB_ERR_SUCCESS \n
++ */
++static inline int
++otg_usbcore_inc_usb_bandwidth(u32 band_width)
++{
++ otg_dbg(OTG_DBG_OTGHCDI_KAL, "otg_usbcore_inc_usb_bandwidth \n");
++ hcd_to_bus(g_pUsbHcd)->bandwidth_allocated += band_width;
++ return USB_ERR_SUCCESS;
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * int otg_usbcore_des_usb_bandwidth(u32 uiBandwidth)
++ *
++ * @brief decrease bandwidth of usb bus
++ *
++ * @param [in] band_width : bandwidth to be decreased
++ *
++ * @return USB_ERR_SUCCESS \n
++ */
++static inline int
++otg_usbcore_des_usb_bandwidth(u32 band_width)
++{
++ otg_dbg(OTG_DBG_OTGHCDI_KAL, "otg_usbcore_des_usb_bandwidth \n");
++ hcd_to_bus(g_pUsbHcd)->bandwidth_allocated -= band_width;
++ return USB_ERR_SUCCESS;
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * int otg_usbcore_inc_periodic_transfer_cnt(u8 transfer_type)
++ *
++ * @brief increase count of periodic transfer
++ *
++ * @param [in] transfer_type : type of transfer
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ */
++static inline int
++otg_usbcore_inc_periodic_transfer_cnt(u8 transfer_type)
++{
++ otg_dbg(OTG_DBG_OTGHCDI_KAL, "otg_usbcore_inc_periodic_transfer_cnt \n");
++
++ switch(transfer_type)
++ {
++ case INT_TRANSFER :
++ hcd_to_bus(g_pUsbHcd)->bandwidth_int_reqs++;
++ break;
++ case ISOCH_TRANSFER :
++ hcd_to_bus(g_pUsbHcd)->bandwidth_isoc_reqs++;
++ break;
++ default:
++ otg_err(OTG_DBG_OTGHCDI_KAL, "not proper TransferType for otg_usbcore_inc_periodic_transfer_cnt()\n");
++ return USB_ERR_FAIL;
++ }
++ return USB_ERR_SUCCESS;
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * int otg_usbcore_des_periodic_transfer_cnt(u8 transfer_type)
++ *
++ * @brief decrease count of periodic transfer
++ *
++ * @param [in] transfer_type : type of transfer
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ */
++static inline int
++otg_usbcore_des_periodic_transfer_cnt(u8 transfer_type)
++{
++ otg_dbg(OTG_DBG_OTGHCDI_KAL, "otg_usbcore_des_periodic_transfer_cnt \n");
++
++ switch(transfer_type)
++ {
++ case INT_TRANSFER :
++ hcd_to_bus(g_pUsbHcd)->bandwidth_int_reqs--;
++ break;
++ case ISOCH_TRANSFER :
++ hcd_to_bus(g_pUsbHcd)->bandwidth_isoc_reqs--;
++ break;
++ default:
++ otg_err(OTG_DBG_OTGHCDI_KAL, "not proper TransferType for otg_usbcore_des_periodic_transfer_cnt()\n");
++ return USB_ERR_FAIL;
++ }
++ return USB_ERR_SUCCESS;
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * u32 read_reg_32(u32 offset)
++ *
++ * @brief Reads the content of a register.
++ *
++ * @param [in] offset : offset of address of register to read.
++ *
++ * @return contents of the register. \n
++ * @remark call readl()
++ */
++static inline u32 read_reg_32(u32 offset)
++{
++ volatile unsigned int * reg_addr_p = ctrlr_base_reg_addr(offset);
++ return *reg_addr_p;
++ //return readl(reg_addr_p);
++};
++//-------------------------------------------------------------------------------
++
++/**
++ * void write_reg_32( u32 offset, const u32 value)
++ *
++ * @brief Writes a register with a 32 bit value.
++ *
++ * @param [in] offset : offset of address of register to write.
++ * @param [in] value : value to write
++ *
++ * @remark call writel()
++ */
++static inline void write_reg_32( u32 offset, const u32 value)
++{
++ volatile unsigned int * reg_addr_p = ctrlr_base_reg_addr(offset);
++ *reg_addr_p = value;
++ //writel( value, reg_addr_p );
++};
++//-------------------------------------------------------------------------------
++
++/**
++ * void update_reg_32(u32 offset, u32 value)
++ *
++ * @brief logic or operation
++ *
++ * @param [in] offset : offset of address of register to write.
++ * @param [in] value : value to or
++ *
++ */
++static inline void update_reg_32(u32 offset, u32 value)
++{
++ write_reg_32(offset, (read_reg_32(offset) | value));
++}
++//---------------------------------------------------------------------------------------
++
++/**
++ * void clear_reg_32(u32 offset, u32 value)
++ *
++ * @brief logic not operation
++ *
++ * @param [in] offset : offset of address of register to write.
++ * @param [in] value : value to not
++ *
++ */
++static inline void clear_reg_32(u32 offset, u32 value)
++{
++ write_reg_32(offset, (read_reg_32(offset) & ~value));
++}
++//---------------------------------------------------------------------------------------
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* _S3C_OTG_HCDI_KAL_H_ */
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-hcdi-list.h b/drivers/usb/host/s3c-otg/s3c-otg-hcdi-list.h
+new file mode 100644
+index 0000000..d3731cd
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-hcdi-list.h
+@@ -0,0 +1,225 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * @file s3c-otg-hcdi-list.h
++ * @brief list functions for otg \n
++ * @version
++ * -# Jun 9,2008 v1.0 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Creating the initial version of this code \n
++ * -# Jul 15,2008 v1.2 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Optimizing for performance \n
++ * @see None
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#ifndef _S3C_OTG_HCDI_LIST_H_
++#define _S3C_OTG_HCDI_LIST_H_
++
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++
++#include "s3c-otg-common-common.h"
++#include "s3c-otg-hcdi-debug.h"
++
++#if defined(__linux__)
++
++#include <linux/list.h>
++
++typedef struct list_head otg_list_head;
++
++#else
++
++#error Not supported OS
++
++#endif
++
++#define otg_list_get_node(ptr, type, member) container_of(ptr, type, member)
++
++
++#define otg_list_for_each_safe(pos, n, head) \
++ for (pos = (head)->next, n = pos->next; pos != (head); \
++ pos = n, n = pos->next)
++
++
++/**
++ * void otg_list_push_next(otg_list_head *new_node_p, otg_list_head *list_head_p)
++ *
++ * @brief push a list node into the next of head
++ *
++ * @param [in] new_node_p : node to be pushed
++ * @param [in] otg_list_head : target list head
++ *
++ * @return void \n
++ */
++
++static inline
++void otg_list_push_next(otg_list_head *new_node_p, otg_list_head *list_head_p)
++{
++ otg_dbg(OTG_DBG_OTGHCDI_LIST, "otg_list_push_next \n");
++ list_add(new_node_p, list_head_p);
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * void otg_list_push_prev(otg_list_head *new_node_p, otg_list_head *list_head_p)
++ *
++ * @brief push a list node into the previous of head
++ *
++ * @param [in] new_node_p : node to be pushed
++ * @param [in] otg_list_head : target list head
++ *
++ * @return void \n
++ */
++static inline
++void otg_list_push_prev(otg_list_head *new_node_p, otg_list_head *list_head_p)
++{
++ otg_dbg(OTG_DBG_OTGHCDI_LIST, "otg_list_push_prev \n");
++ list_add_tail(new_node_p, list_head_p);
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * void otg_list_pop(otg_list_head *list_entity_p)
++ *
++ * @brief pop a list node
++ *
++ * @param [in] new_node_p : node to be poped
++ * @param [in] otg_list_head : target list head
++ *
++ * @return void \n
++ */
++static inline
++void otg_list_pop(otg_list_head *list_entity_p)
++{
++ otg_dbg(OTG_DBG_OTGHCDI_LIST, "otg_list_pop \n");
++ list_del(list_entity_p);
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * void otg_list_move_next(otg_list_head *node_p, otg_list_head *list_head_p)
++ *
++ * @brief move a list to next of head
++ *
++ * @param [in] new_node_p : node to be moved
++ * @param [in] otg_list_head : target list head
++ *
++ * @return void \n
++ */
++static inline
++void otg_list_move_next(otg_list_head *node_p, otg_list_head *list_head_p)
++{
++ otg_dbg(OTG_DBG_OTGHCDI_LIST, "otg_list_move_next \n");
++ list_move(node_p, list_head_p);
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * void otg_list_move_prev(otg_list_head *node_p, otg_list_head *list_head_p)
++ *
++ * @brief move a list to previous of head
++ *
++ * @param [in] new_node_p : node to be moved
++ * @param [in] otg_list_head : target list head
++ *
++ * @return void \n
++ */
++static inline
++void otg_list_move_prev(otg_list_head *node_p, otg_list_head *list_head_p)
++{
++ otg_dbg(OTG_DBG_OTGHCDI_LIST, "otg_list_move_prev \n");
++ list_move_tail(node_p, list_head_p);
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * bool otg_list_empty(otg_list_head *list_head_p)
++ *
++ * @brief check a list empty or not
++ *
++ * @param [in] list_head_p : node to check
++ *
++ * @return true : empty list \n
++ * false : not empty list
++ */
++static inline
++bool otg_list_empty(otg_list_head *list_head_p)
++{
++
++ otg_dbg(OTG_DBG_OTGHCDI_LIST, "otg_list_empty \n");
++ if(list_empty(list_head_p))
++ return true;
++ return false;
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * void otg_list_merge(otg_list_head *list_p, otg_list_head *head_p)
++ *
++ * @brief merge two list
++ *
++ * @param [in] list_p : a head
++ * @param [in] head_p : target list head
++ *
++ * @return void \n
++ */
++static inline
++void otg_list_merge(otg_list_head *list_p, otg_list_head *head_p)
++{
++ otg_dbg(OTG_DBG_OTGHCDI_LIST, "otg_list_merge \n");
++ list_splice(list_p, head_p);
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * void otg_list_init(otg_list_head *list_p)
++ *
++ * @brief initialize a list
++ *
++ * @param [in] list_p : node to be initialized
++ *
++ * @return void \n
++ */
++static inline
++void otg_list_init(otg_list_head *list_p)
++{
++ otg_dbg(OTG_DBG_OTGHCDI_LIST, "otg_list_init \n");
++ list_p->next = list_p;
++ list_p->prev = list_p;
++}
++//-------------------------------------------------------------------------------
++
++/*
++void otg_list_push_next(otg_list_head *new_node_p, otg_list_head *list_head_p );
++void otg_list_push_prev(otg_list_head *new_node_p, otg_list_head *list_head_p);
++void otg_list_pop(otg_list_head *list_entity_p);
++
++void otg_list_move_next(otg_list_head *node_p, otg_list_head *list_head_p);
++void otg_list_move_prev(otg_list_head *node_p, otg_list_head *list_head_p);
++
++bool otg_list_empty(otg_list_head *list_head_p);
++void otg_list_merge(otg_list_head *list_p, otg_list_head *head_p);
++void otg_list_init(otg_list_head *list_p);
++*/
++
++#ifdef __cplusplus
++}
++#endif
++#endif /* _S3C_OTG_HCDI_LIST_H_ */
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-hcdi-memory.h b/drivers/usb/host/s3c-otg/s3c-otg-hcdi-memory.h
+new file mode 100644
+index 0000000..a0a4af8
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-hcdi-memory.h
+@@ -0,0 +1,180 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * @file s3c-otg-hcdi-memory.h
++ * @brief header of s3c-otg-hcdi-memory \n
++ * @version
++ * -# Jun 9,2008 v1.0 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Creating the initial version of this code \n
++ * -# Jul 15,2008 v1.2 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Optimizing for performance \n
++ * @see None
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#ifndef _S3C_OTG_HCDI_MEMORY_H_
++#define _S3C_OTG_HCDI_MEMORY_H_
++
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++
++#include "s3c-otg-common-common.h"
++#include "s3c-otg-hcdi-debug.h"
++
++/**
++ * @enum otg_mem_alloc_flag
++ *
++ * @brief enumeration for flag of memory allocation
++ */
++typedef
++enum otg_mem_alloc_flag
++{
++ USB_MEM_SYNC, USB_MEM_ASYNC, USB_MEM_DMA
++}otg_mem_alloc_flag_t;
++//---------------------------------------------------------------------------------------
++
++/*
++inline int otg_mem_alloc(void ** addr_pp, u16 byte_size, otg_mem_alloc_flag_t type);
++inline int otg_mem_copy(void * to_addr_p, void * from_addr_p, u16 byte_size);
++//inline int otg_mem_free(void * addr_p);
++inline int otg_mem_set(void * addr_p, char value, u16 byte_size);
++*/
++
++/**
++ * int otg_mem_alloc(void ** addr_pp, u16 byte_size, u8 ubType);
++ *
++ * @brief allocating momory specified
++ *
++ * @param [inout] addr_pp : address to be assigned
++ * [in] byte_size : size of memory
++ * [in] type : otg_mem_alloc_flag_t type
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ */
++static inline int
++otg_mem_alloc
++(
++ void ** addr_pp,
++ u16 byte_size,
++ otg_mem_alloc_flag_t type
++)
++{
++ gfp_t flags;
++ otg_dbg(OTG_DBG_OTGHCDI_MEM, "otg_mem_alloc \n");
++
++ switch(type)
++ {
++ case USB_MEM_SYNC: flags = GFP_KERNEL; break;
++ case USB_MEM_ASYNC: flags = GFP_ATOMIC; break;
++ case USB_MEM_DMA: flags = GFP_DMA; break;
++ default:
++ otg_err(OTG_DBG_OTGHCDI_MEM, "not proper otg_mem_alloc_flag_t in otg_mem_alloc \n");
++ return USB_ERR_FAIL;
++ }
++
++ *addr_pp = kmalloc((size_t)byte_size, flags);
++ if(*addr_pp == 0)
++ {
++ otg_err(OTG_DBG_OTGHCDI_MEM, "kmalloc failed\n");
++ return USB_ERR_FAIL;
++ }
++ return USB_ERR_SUCCESS;
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * int otg_mem_copy(void * to_addr_p, void * from_addr_p, u16 byte_size);
++ *
++ * @brief memory copy
++ *
++ * @param [in] to_addr_p : target address
++ * [in] from_addr_p : source address
++ * [in] byte_size : size
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ */
++static inline int
++otg_mem_copy
++(
++ void * to_addr_p,
++ void * from_addr_p,
++ u16 byte_size
++)
++{
++ otg_dbg(OTG_DBG_OTGHCDI_MEM, "otg_mem_copy \n");
++
++ memcpy(to_addr_p, from_addr_p, (size_t)byte_size);
++
++ return USB_ERR_SUCCESS;
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * int otg_mem_free(void * addr_p);
++ *
++ * @brief de-allocating memory
++ *
++ * @param [in] addr_p : target address to be de-allocated
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ */
++static inline int
++otg_mem_free(void * addr_p)
++{
++ //otg_dbg(OTG_DBG_OTGHCDI_MEM, "otg_mem_free \n");
++ kfree(addr_p);
++ return USB_ERR_SUCCESS;
++}
++
++//-------------------------------------------------------------------------------
++
++/**
++ * int otg_mem_set(void * addr_p, char value, u16 byte_size)
++ *
++ * @brief writing a value to memory
++ *
++ * @param [in] addr_p : target address
++ * [in] value : value to be written
++ * [in] byte_size : size
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ */
++static inline int
++otg_mem_set
++(
++ void * addr_p,
++ char value,
++ u16 byte_size
++)
++{
++ otg_dbg(OTG_DBG_OTGHCDI_MEM, "otg_mem_set \n");
++ memset(addr_p, value, (size_t)byte_size);
++ return USB_ERR_SUCCESS;
++}
++//-------------------------------------------------------------------------------
++
++
++#ifdef __cplusplus
++}
++#endif
++#endif /* _S3C_OTG_HCDI_MEMORY_H_ */
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-isr.c b/drivers/usb/host/s3c-otg/s3c-otg-isr.c
+new file mode 100644
+index 0000000..b2946a5
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-isr.c
+@@ -0,0 +1,283 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : Isr.c
++ * [Description] : The file implement the external and internal functions of ISR
++ * [Author] : Jang Kyu Hyeok { kyuhyeok.jang@samsung.com }
++ * [Department] : System LSI Division/Embedded S/W Platform
++ * [Created Date]: 2008/06/13
++ * [Revision History]
++ * (1) 2008/06/13 by Jang Kyu Hyeok { kyuhyeok.jang@samsung.com }
++ * - Created this file and implements functions of ISR
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#include "s3c-otg-isr.h"
++
++/**
++ * void otg_handle_interrupt(void)
++ *
++ * @brief Main interrupt processing routine
++ *
++ * @param None
++ *
++ * @return None
++ *
++ * @remark
++ *
++ */
++
++extern port_flags_t port_flag;
++extern bool ch_halt;
++
++__inline__ void otg_handle_interrupt(void)
++{
++ gintsts_t clearIntr = {.d32 = 0};
++ gintsts_t gintsts = {.d32 = 0};
++
++ gintsts.d32 = read_reg_32(GINTSTS) & read_reg_32(GINTMSK);
++
++ if (gintsts.b.wkupintr)
++ {
++ //otg_dbg(OTG_DBG_ISR, "Wakeup Interrupt\n");
++ clearIntr.b.wkupintr = 1;
++ }
++
++ if (gintsts.b.disconnect)
++ {
++ //otg_dbg(OTG_DBG_ISR, "Disconnect Interrupt\n");
++ port_flag.b.port_connect_status_change = 1;
++ port_flag.b.port_connect_status = 0;
++ clearIntr.b.disconnect = 1;
++ }
++
++ if (gintsts.b.conidstschng)
++ {
++ //otg_dbg(OTG_DBG_ISR, "Connect ID Status Change Interrupt\n");
++ clearIntr.b.conidstschng = 1;
++ oci_init_mode();
++ }
++
++ if (gintsts.b.hcintr)
++ {
++ //Mask Channel Interrupt to prevent generating interrupt
++ //otg_dbg(OTG_DBG_ISR, "Channel Interrupt\n");
++ if(!ch_halt)
++ {
++ do_transfer_checker();
++ }
++
++ }
++
++ if (gintsts.b.portintr)
++ {
++ // Read Only
++ //otg_dbg(OTG_DBG_ISR, "Port Interrupt\n");
++ process_port_intr();
++ }
++
++
++ if (gintsts.b.otgintr)
++ {
++ // Read Only
++ //otg_dbg(OTG_DBG_ISR, "OTG Interrupt\n");
++ }
++
++ if (gintsts.b.sofintr)
++ {
++ otg_dbg(OTG_DBG_ISR, "SOF Interrupt\n");
++ do_schedule();
++ clearIntr.b.sofintr = 1;
++ }
++
++ if (gintsts.b.modemismatch)
++ {
++ //otg_dbg(OTG_DBG_ISR, "Mode Mismatch Interrupt\n");
++ clearIntr.b.modemismatch = 1;
++ }
++ update_reg_32(GINTSTS, clearIntr.d32);
++
++}
++
++/**
++ * void mask_channel_interrupt(u32 ch_num, u32 mask_info)
++ *
++ * @brief Mask specific channel interrupt
++ *
++ * @param [IN] chnum : channel number for masking
++ * [IN] mask_info : mask information to write register
++ *
++ * @return None
++ *
++ * @remark
++ *
++ */
++void mask_channel_interrupt(u32 ch_num, u32 mask_info)
++{
++ clear_reg_32(HCINTMSK(ch_num),mask_info);
++}
++
++/**
++ * void unmask_channel_interrupt(u32 ch_num, u32 mask_info)
++ *
++ * @brief Unmask specific channel interrupt
++ *
++ * @param [IN] chnum : channel number for unmasking
++ * [IN] mask_info : mask information to write register
++ *
++ * @return None
++ *
++ * @remark
++ *
++ */
++void unmask_channel_interrupt(u32 ch_num, u32 mask_info)
++{
++ update_reg_32(HCINTMSK(ch_num),mask_info);
++}
++
++/**
++ * int get_ch_info(hc_info_t * hc_reg, u8 ch_num)
++ *
++ * @brief Get current channel information about specific channel
++ *
++ * @param [OUT] hc_reg : structure to write channel inforamtion value
++ * [IN] ch_num : channel number for unmasking
++ *
++ * @return None
++ *
++ * @remark
++ *
++ */
++int get_ch_info(hc_info_t *hc_reg, u8 ch_num)
++{
++ if(hc_reg !=NULL)
++ {
++ hc_reg->hc_int_msk.d32 = read_reg_32(HCINTMSK(ch_num));
++ hc_reg->hc_int.d32 = read_reg_32(HCINT(ch_num));
++ hc_reg->dma_addr = read_reg_32(HCDMA(ch_num));
++ hc_reg->hc_char.d32 = read_reg_32(HCCHAR(ch_num));
++ hc_reg->hc_size.d32 = read_reg_32(HCTSIZ(ch_num));
++
++ return USB_ERR_SUCCESS;
++ }
++ return USB_ERR_FAIL;
++}
++
++/**
++ * void get_intr_ch(u32* haint, u32* haintmsk)
++ *
++ * @brief Get Channel Interrupt Information in HAINT, HAINTMSK register
++ *
++ * @param [OUT] haint : HAINT register value
++ * [OUT] haintmsk : HAINTMSK register value
++ *
++ * @return None
++ *
++ * @remark
++ *
++ */
++void get_intr_ch(u32 *haint, u32 *haintmsk)
++{
++ *haint = read_reg_32(HAINT);
++ *haintmsk = read_reg_32(HAINTMSK);
++}
++
++
++/**
++ * void clear_ch_intr(u8 ch_num, u32 clear_bit)
++ *
++ * @brief Get Channel Interrupt Information in HAINT, HAINTMSK register
++ *
++ * @param [IN] haint : HAINT register value
++ * [IN] haintmsk : HAINTMSK register value
++ *
++ * @return None
++ *
++ * @remark
++ *
++ */
++void clear_ch_intr(u8 ch_num, u32 clear_bit)
++{
++ update_reg_32(HCINT(ch_num),clear_bit);
++}
++
++/**
++ * void enable_sof(void)
++ *
++ * @brief Generate SOF Interrupt.
++ *
++ * @param None
++ *
++ * @return None
++ *
++ * @remark
++ *
++ */
++void enable_sof(void)
++{
++ gintmsk_t gintmsk = {.d32 = 0};
++ gintmsk.b.sofintr = 1;
++ update_reg_32(GINTMSK, gintmsk.d32);
++}
++
++/**
++ * void disable_sof(void)
++ *
++ * @brief Stop to generage SOF interrupt
++ *
++ * @param None
++ *
++ * @return None
++ *
++ * @remark
++ *
++ */
++ void disable_sof(void)
++{
++ gintmsk_t gintmsk = {.d32 = 0};
++ gintmsk.b.sofintr = 1;
++ clear_reg_32(GINTMSK, gintmsk.d32);
++}
++
++/*Internal function of isr */
++void process_port_intr(void)
++{
++ hprt_t hprt;//by ss1, clear_hprt;
++ hprt.d32 = read_reg_32(HPRT);
++
++ //otg_dbg(OTG_DBG_ISR,"\nPort Interrupt() : HPRT = 0x%x\n",hprt.d32);
++
++ if(hprt.b.prtconndet)
++ {
++ port_flag.b.port_connect_status_change = 1;
++ port_flag.b.port_connect_status = 1;
++ }
++
++
++ if(hprt.b.prtenchng)
++ {
++ port_flag.b.port_enable_change = 1;
++ }
++
++ hprt.b.prtena = 0; //prtena¸¦ writeclear½ÃÅ°¸é ¾ÈµÊ.
++ //hprt.b.prtpwr = 0;
++ hprt.b.prtrst = 0;
++ hprt.b.prtconnsts = 0;
++ write_reg_32(HPRT, hprt.d32);
++
++}
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-isr.h b/drivers/usb/host/s3c-otg/s3c-otg-isr.h
+new file mode 100644
+index 0000000..2d30c44
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-isr.h
+@@ -0,0 +1,72 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] :s3c-otg-isr.h
++ * [Description] : The Header file defines the external and internal functions of ISR.
++ * [Author] : Jang Kyu Hyeok { kyuhyeok.jang@samsung.com }
++ * [Department] : System LSI Division/Embedded S/W Platform
++ * [Created Date]: 2008/06/18
++ * [Revision History]
++ * (1) 2008/06/18 by Jang Kyu Hyeok { kyuhyeok.jang@samsung.com }
++ * - Created this file and defines functions of Scheduler
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#ifndef _ISR_H_
++#define _ISR_H_
++
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++
++#include "s3c-otg-common-errorcode.h"
++#include "s3c-otg-common-const.h"
++#include "s3c-otg-common-datastruct.h"
++#include "s3c-otg-common-regdef.h"
++#include "s3c-otg-hcdi-kal.h"
++#include "s3c-otg-scheduler-scheduler.h"
++#include "s3c-otg-transferchecker-common.h"
++#include "s3c-otg-roothub.h"
++#include "s3c-otg-oci.h"
++
++__inline__ void otg_handle_interrupt(void);
++
++void process_port_intr(void);
++
++void mask_channel_interrupt(u32 ch_num, u32 mask_info);
++
++void unmask_channel_interrupt(u32 ch_num, u32 mask_info);
++
++extern int get_ch_info(hc_info_t *hc_reg, u8 ch_num);
++
++extern void get_intr_ch(u32 *haint, u32 *haintmsk);
++
++extern void clear_ch_intr(u8 ch_num, u32 clear_bit);
++
++extern void enable_sof(void);
++
++extern void disable_sof(void);
++
++#ifdef __cplusplus
++}
++#endif
++#endif /* _ISR_H_ */
++
++
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-oci.c b/drivers/usb/host/s3c-otg/s3c-otg-oci.c
+new file mode 100644
+index 0000000..5e927c0
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-oci.c
+@@ -0,0 +1,792 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : OCI.c
++ * [Description] : The file implement the external and internal functions of OCI
++ * [Author] : Jang Kyu Hyeok { kyuhyeok.jang@samsung.com }
++ * [Department] : System LSI Division/Embedded S/W Platform
++ * [Created Date]: 2008/06/12
++ * [Revision History]
++ * (1) 2008/06/12 by Jang Kyu Hyeok { kyuhyeok.jang@samsung.com }
++ * - Created this file and Implement functions of OCI
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#include "s3c-otg-oci.h"
++
++static bool ch_enable[16];
++bool ch_halt;
++
++/**
++ * int oci_init(void)
++ *
++ * @brief Initialize oci module.
++ *
++ * @param None
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ * @remark
++ *
++ */
++int oci_init(void)
++{
++ otg_mem_set((void*)ch_enable, true, sizeof(bool)*16);
++ ch_halt = false;
++
++ if(oci_sys_init() == USB_ERR_SUCCESS)
++ {
++ if(oci_core_reset() == USB_ERR_SUCCESS)
++ {
++ oci_set_global_interrupt(false);
++ return USB_ERR_SUCCESS;
++ }
++ else
++ {
++ //otg_dbg(OTG_DBG_OCI, "oci_core_reset() Fail\n");
++ return USB_ERR_FAIL;
++ }
++ }
++
++ return USB_ERR_FAIL;
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * int oci_core_init(void)
++ *
++ * @brief process core initialize as s3c6410 otg spec
++ *
++ * @param None
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ * @remark
++ *
++ */
++int oci_core_init(void)
++{
++ gahbcfg_t ahbcfg = {.d32 = 0};
++ gusbcfg_t usbcfg = {.d32 = 0};
++ ghwcfg2_t hwcfg2 = {.d32 = 0};
++ gintmsk_t gintmsk = {.d32 = 0};
++
++ //otg_dbg(OTG_DBG_OCI, "oci_core_init \n");
++
++ /* PHY parameters */
++ usbcfg.b.physel = 0;
++ usbcfg.b.phyif = 1; // 16 bit
++ usbcfg.b.ulpi_utmi_sel = 0; // UTMI
++ //usbcfg.b.ddrsel = 1; // DDR
++ usbcfg.b.usbtrdtim = 5; // 16 bit UTMI
++ usbcfg.b.toutcal = 7;
++ write_reg_32 (GUSBCFG, usbcfg.d32);
++
++ // Reset after setting the PHY parameters
++ if(oci_core_reset() == USB_ERR_SUCCESS)
++ {
++ /* Program the GAHBCFG Register.*/
++ hwcfg2.d32 = read_reg_32 (GHWCFG2);
++
++ switch (hwcfg2.b.architecture)
++ {
++ case HWCFG2_ARCH_SLAVE_ONLY:
++ //otg_dbg(OTG_DBG_OCI, "Slave Only Mode\n");
++ ahbcfg.b.nptxfemplvl = 0;
++ ahbcfg.b.ptxfemplvl = 0;
++ break;
++
++ case HWCFG2_ARCH_EXT_DMA:
++ //otg_dbg(OTG_DBG_OCI, "External DMA Mode - TBD!\n");
++ break;
++
++ case HWCFG2_ARCH_INT_DMA:
++ //otg_dbg(OTG_DBG_OCI, "Internal DMA Setting \n");
++ ahbcfg.b.dmaenable = true;
++ ahbcfg.b.hburstlen = INT_DMA_MODE_INCR;
++ break;
++
++ default:
++ //otg_dbg(OTG_DBG_OCI, "ERR> hwcfg2\n ");
++ break;
++ }
++ write_reg_32 (GAHBCFG, ahbcfg.d32);
++
++ /* Program the GUSBCFG register.*/
++ switch (hwcfg2.b.op_mode)
++ {
++ case MODE_HNP_SRP_CAPABLE:
++ //otg_dbg(OTG_DBG_OCI, "GHWCFG2 OP Mode : MODE_HNP_SRP_CAPABLE \n");
++ usbcfg.b.hnpcap = 1;
++ usbcfg.b.srpcap = 1;
++ break;
++
++ case MODE_SRP_ONLY_CAPABLE:
++ //otg_dbg(OTG_DBG_OCI, "GHWCFG2 OP Mode : MODE_SRP_ONLY_CAPABLE \n");
++ usbcfg.b.srpcap = 1;
++ break;
++
++ case MODE_NO_HNP_SRP_CAPABLE:
++ //otg_dbg(OTG_DBG_OCI, "GHWCFG2 OP Mode : MODE_NO_HNP_SRP_CAPABLE \n");
++ usbcfg.b.hnpcap = 0;
++ break;
++
++ case MODE_SRP_CAPABLE_DEVICE:
++ //otg_dbg(OTG_DBG_OCI, "GHWCFG2 OP Mode : MODE_SRP_CAPABLE_DEVICE \n");
++ usbcfg.b.srpcap = 1;
++ break;
++
++ case MODE_NO_SRP_CAPABLE_DEVICE:
++ //otg_dbg(OTG_DBG_OCI, "GHWCFG2 OP Mode : MODE_NO_SRP_CAPABLE_DEVICE \n");
++ usbcfg.b.srpcap = 0;
++ break;
++
++ case MODE_SRP_CAPABLE_HOST:
++ //otg_dbg(OTG_DBG_OCI, "GHWCFG2 OP Mode : MODE_SRP_CAPABLE_HOST \n");
++ usbcfg.b.srpcap = 1;
++ break;
++
++ case MODE_NO_SRP_CAPABLE_HOST:
++ //otg_dbg(OTG_DBG_OCI, "GHWCFG2 OP Mode : MODE_NO_SRP_CAPABLE_HOST \n");
++ usbcfg.b.srpcap = 0;
++ break;
++ default :
++ //otg_dbg(OTG_DBG_OCI, "ERR> hwcfg2\n ");
++ break;
++ }
++ write_reg_32 (GUSBCFG, usbcfg.d32);
++
++ /* Program the GINTMSK register.*/
++ gintmsk.b.modemismatch = 1;
++ gintmsk.b.sofintr = 1;
++ //gintmsk.b.otgintr = 1;
++ gintmsk.b.conidstschng = 1;
++ //gintmsk.b.wkupintr = 1;
++ gintmsk.b.disconnect = 1;
++ //gintmsk.b.usbsuspend = 1;
++ //gintmsk.b.sessreqintr = 1;
++ //gintmsk.b.portintr = 1;
++ //gintmsk.b.hcintr = 1;
++ write_reg_32(GINTMSK, gintmsk.d32);
++
++ return USB_ERR_SUCCESS;
++ }
++ else
++ {
++ //otg_dbg(OTG_DBG_OCI, "Core Reset FAIL\n");
++ return USB_ERR_FAIL;
++ }
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * int oci_host_init(void)
++ *
++ * @brief Process host initialize as s3c6410 spec
++ *
++ * @param None
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ * @remark
++ *
++ */
++int oci_host_init(void)
++{
++ gintmsk_t gintmsk = {.d32 = 0};
++ hcfg_t hcfg = {.d32 = 0};
++ hprt_t hprt;
++ hprt.d32 = read_reg_32(HPRT);
++
++ //otg_dbg(OTG_DBG_OCI, "oci_host_init \n");
++
++ gintmsk.b.portintr = 1;
++ update_reg_32(GINTMSK,gintmsk.d32);
++
++ hcfg.b.fslspclksel = HCFG_30_60_MHZ;
++ update_reg_32(HCFG, hcfg.d32);
++
++ /* turn on vbus */
++ if(!hprt.b.prtpwr)
++ {
++ hprt.b.prtpwr = 1;
++ write_reg_32(HPRT, hprt.d32);
++ }
++
++ oci_config_flush_fifo(OTG_HOST_MODE);
++
++ return USB_ERR_SUCCESS;
++
++}
++//-------------------------------------------------------------------------------
++
++
++/**
++ * int oci_start(void)
++ *
++ * @brief start to operate oci module by calling oci_core_init function
++ *
++ * @param None
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ * @remark
++ *
++ */
++int oci_start(void)
++{
++ //otg_dbg(OTG_DBG_OCI, "oci_start \n");
++
++ if(oci_core_init() == USB_ERR_SUCCESS)
++ {
++ mdelay(50);
++
++ if(oci_init_mode() == USB_ERR_SUCCESS)
++ {
++ oci_set_global_interrupt(true);
++ return USB_ERR_SUCCESS;
++ }
++ else
++ {
++ //otg_dbg(OTG_DBG_OCI, "oci_init_mode() Fail\n");
++ return USB_ERR_FAIL;
++ }
++ }
++ else
++ {
++ //otg_dbg(OTG_DBG_OCI, "oci_core_init() Fail\n");
++ return USB_ERR_FAIL;
++ }
++
++
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * int oci_stop(void)
++ *
++ * @brief stop to opearte otg core
++ *
++ * @param None
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ * @remark
++ *
++ */
++int oci_stop(void)
++{
++ //otg_dbg(OTG_DBG_OCI, "oci_stop \n");
++
++ oci_set_global_interrupt(false);
++
++ root_hub_feature(0,
++ ClearPortFeature,
++ USB_PORT_FEAT_POWER,
++ NULL
++ );
++
++ return USB_ERR_SUCCESS;
++}
++//-------------------------------------------------------------------------------
++
++
++/**
++ * oci_start_transfer( stransfer_t *st_t)
++ *
++ * @brief start transfer by using transfer information to receive from scheduler
++ *
++ * @param [IN] *st_t - information about transfer to write register by calling oci_channel_init function
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ * @remark
++ *
++ */
++
++u8 oci_start_transfer( stransfer_t *st_t)
++{
++ hcchar_t hcchar = {.d32 = 0};
++ //otg_dbg(OTG_DBG_OCI, "oci_start_transfer \n");
++
++ if(st_t->alloc_chnum ==CH_NONE)
++ {
++ if( oci_channel_alloc(&(st_t->alloc_chnum)) == USB_ERR_SUCCESS)
++ {
++ oci_channel_init(st_t->alloc_chnum, st_t);
++
++ hcchar.b.chen = 1;
++ update_reg_32(HCCHAR(st_t->alloc_chnum), hcchar.d32);
++
++ return st_t->alloc_chnum;
++ }
++ else
++ {
++ //otg_dbg(OTG_DBG_OCI, "oci_start_transfer Fail - Channel Allocation Error\n");
++ return CH_NONE;
++ }
++ }
++ else
++ {
++ oci_channel_init(st_t->alloc_chnum, st_t);
++
++ hcchar.b.chen = 1;
++ update_reg_32(HCCHAR(st_t->alloc_chnum), hcchar.d32);
++
++ return st_t->alloc_chnum;
++ }
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * int oci_stop_transfer(u8 ch_num)
++ *
++ * @brief stop to transfer even if transfering
++ *
++ * @param None
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ * @remark
++ *
++ */
++int oci_stop_transfer(u8 ch_num)
++{
++ hcchar_t hcchar = {.d32 = 0};
++ hcintmsk_t hcintmsk = {.d32 = 0};
++
++ //otg_dbg(OTG_DBG_OCI, "++oci_stop_transfer \n");
++
++ if(ch_num>16)
++ {
++ return USB_ERR_FAIL;
++ }
++
++ ch_halt = true;
++
++ hcintmsk.b.chhltd = 1;
++ update_reg_32(HCINTMSK(ch_num),hcintmsk.d32);
++
++ hcchar.b.chdis = 1;
++ hcchar.b.chen = 1;
++ update_reg_32(HCCHAR(ch_num),hcchar.d32);
++
++ oci_channel_dealloc(ch_num);
++
++ clear_reg_32(HAINTMSK,ch_num);
++ write_reg_32(HCINT(ch_num),INT_ALL);
++ clear_reg_32(HCINTMSK(ch_num), INT_ALL);
++
++ ch_halt =false;
++ //otg_dbg(OTG_DBG_OCI, "--oci_stop_transfer \n");
++
++ return USB_ERR_SUCCESS;
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * int oci_channel_init( u8 ch_num, stransfer_t *st_t)
++ *
++ * @brief Process channel initialize to prepare starting transfer
++ *
++ * @param None
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ * @remark
++ *
++ */
++int oci_channel_init( u8 ch_num, stransfer_t *st_t)
++{
++ u32 intr_enable = 0;
++ gintmsk_t gintmsk = {.d32 = 0};
++ hcchar_t hcchar = {.d32 = 0};
++ hctsiz_t hctsiz = {.d32 = 0};
++
++ //otg_dbg(OTG_DBG_OCI, "oci_channel_init \n");
++
++ //Clear channel information
++ write_reg_32(HCTSIZ(ch_num), 0);
++ write_reg_32(HCCHAR(ch_num), 0);
++ write_reg_32(HCINTMSK(ch_num), 0);
++ write_reg_32(HCINT(ch_num), INT_ALL);
++ write_reg_32(HCDMA(ch_num), 0);
++
++ //enable host channel interrupt in GINTSTS
++ gintmsk.b.hcintr =1;
++ update_reg_32(GINTMSK, gintmsk.d32);
++ // Enable the top level host channel interrupt in HAINT
++ intr_enable = (1 << ch_num);
++ update_reg_32(HAINTMSK, intr_enable);
++ // unmask the down level host channel interrupt in HCINT
++ write_reg_32(HCINTMSK(ch_num),st_t->hc_reg.hc_int_msk.d32);
++
++ // Program the HCSIZn register with the endpoint characteristics for
++ hctsiz.b.xfersize = st_t->buf_size;
++ hctsiz.b.pktcnt = st_t->packet_cnt;
++
++ // Program the HCCHARn register with the endpoint characteristics for
++ hcchar.b.mps = st_t->ed_desc_p->max_packet_size;
++ hcchar.b.epnum = st_t->ed_desc_p->endpoint_num;
++ hcchar.b.epdir = st_t->ed_desc_p->is_ep_in;
++ hcchar.b.lspddev = (st_t->ed_desc_p->dev_speed == LOW_SPEED_OTG);
++ hcchar.b.eptype = st_t->ed_desc_p->endpoint_type;
++ hcchar.b.multicnt = st_t->ed_desc_p->mc;
++ hcchar.b.devaddr = st_t->ed_desc_p->device_addr;
++
++ if(st_t->ed_desc_p->endpoint_type == INT_TRANSFER ||
++ st_t->ed_desc_p->endpoint_type == ISOCH_TRANSFER)
++ {
++ u32 uiFrameNum = 0;
++ uiFrameNum = oci_get_frame_num();
++
++ hcchar.b.oddfrm = uiFrameNum%2?1:0;
++
++ //if transfer type is periodic transfer, must support sof interrupt
++ /*
++ gintmsk.b.sofintr = 1;
++ update_reg_32(GINTMSK, gintmsk.d32);
++ */
++ }
++
++
++ if(st_t->ed_desc_p->endpoint_type == CONTROL_TRANSFER)
++ {
++ td_t *td_p;
++ td_p = (td_t *)st_t->parent_td;
++
++ switch(td_p->standard_dev_req_info.conrol_transfer_stage)
++ {
++ case SETUP_STAGE:
++ hctsiz.b.pid = st_t->ed_status_p->control_data_tgl.setup_tgl;
++ hcchar.b.epdir = EP_OUT;
++ break;
++ case DATA_STAGE:
++ hctsiz.b.pid = st_t->ed_status_p->control_data_tgl.data_tgl;
++ hcchar.b.epdir = st_t->ed_desc_p->is_ep_in;
++ break;
++ case STATUS_STAGE:
++ hctsiz.b.pid = st_t->ed_status_p->control_data_tgl.status_tgl;
++
++ if(td_p->standard_dev_req_info.is_data_stage)
++ {
++ hcchar.b.epdir = ~(st_t->ed_desc_p->is_ep_in);
++ }
++ else
++ {
++ hcchar.b.epdir = EP_IN;
++ }
++ break;
++ default:break;
++ }
++ }
++ else
++ {
++ hctsiz.b.pid = st_t->ed_status_p->data_tgl;
++ }
++
++ hctsiz.b.dopng = st_t->ed_status_p->is_ping_enable;
++ write_reg_32(HCTSIZ(ch_num),hctsiz.d32);
++ st_t->ed_status_p->is_ping_enable = false;
++
++ // Write DMA Address
++ write_reg_32(HCDMA(ch_num),st_t->start_phy_buf_addr);
++
++ //Wrote HCCHAR Register
++ write_reg_32(HCCHAR(ch_num),hcchar.d32);
++
++ return USB_ERR_SUCCESS;
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * u32 oci_get_frame_num(void)
++ *
++ * @brief Get current frame number by reading register.
++ *
++ * @param None
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ * @remark
++ *
++ */
++u32 oci_get_frame_num(void)
++{
++ hfnum_t hfnum;
++ hfnum.d32 = read_reg_32(HFNUM);
++ return hfnum.b.frnum;
++}
++//-------------------------------------------------------------------------------
++
++/**
++ * u16 oci_get_frame_interval(void)
++ *
++ * @brief Get current frame interval by reading register.
++ *
++ * @param None
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ * @remark
++ *
++ */
++u16 oci_get_frame_interval(void)
++{
++ hfir_t hfir;
++ hfir.d32 = read_reg_32(HFIR);
++ return hfir.b.frint;
++}
++//-------------------------------------------------------------------------------
++
++void oci_set_frame_interval(u16 interval)
++{
++ hfir_t hfir = {.d32 = 0};
++ hfir.b.frint = interval;
++ write_reg_32(HFIR, hfir.d32);
++
++}
++
++///OCI Internal Functions
++
++int oci_channel_alloc(u8 *ch_num)
++{
++ u8 ch;
++ for(ch = 0 ; ch<16 ; ch++)
++ {
++ if(ch_enable[ch] == true)
++ {
++ *ch_num = ch;
++
++ ch_enable[ch] = false;
++ return USB_ERR_SUCCESS;
++ }
++ }
++ return USB_ERR_FAIL;
++}
++
++int oci_channel_dealloc(u8 ch_num)
++{
++ if(ch_num < 16 && ch_enable[ch_num] == false)
++ {
++ ch_enable[ch_num] = true;
++
++ write_reg_32(HCTSIZ(ch_num), 0);
++ write_reg_32(HCCHAR(ch_num), 0);
++ write_reg_32(HCINTMSK(ch_num), 0);
++ write_reg_32(HCINT(ch_num), INT_ALL);
++ write_reg_32(HCDMA(ch_num), 0);
++ return USB_ERR_SUCCESS;
++ }
++ return USB_ERR_FAIL;
++}
++
++int oci_sys_init(void)
++{
++ volatile S3C6400_SYSCON_REG *syscon_reg;
++ volatile OTG_PHY_REG *otgphy_reg;
++
++ //otg_dbg(OTG_DBG_OCI, "oci_sys_init \n");
++
++ otgphy_reg = S3C24XX_VA_OTGSFR;
++ syscon_reg = S3C24XX_VA_SYSCON;
++
++ syscon_reg->HCLK_GATE |= (0x1<<20);
++ syscon_reg->OTHERS |= (0x1<<16);
++ otgphy_reg->OPHYPWR = 0x0;
++ otgphy_reg->OPHYCLK = 0x20;
++
++ otgphy_reg->ORSTCON = 0x1;
++ mdelay(80);
++
++ otgphy_reg->ORSTCON = 0x0;
++ mdelay(80);
++
++ return USB_ERR_SUCCESS;
++}
++
++void oci_set_global_interrupt(bool set)
++{
++ gahbcfg_t ahbcfg;
++
++ ahbcfg.d32 = 0;
++ ahbcfg.b.glblintrmsk = 1;
++
++ if(set)
++ {
++ update_reg_32(GAHBCFG,ahbcfg.d32);
++ }
++ else
++ {
++ clear_reg_32(GAHBCFG,ahbcfg.d32);
++ }
++}
++
++int oci_init_mode(void)
++{
++ gintsts_t gintsts;
++ gintsts.d32 = read_reg_32(GINTSTS);
++ //otg_dbg(OTG_DBG_OCI,"GINSTS = 0x%x\n",(unsigned int)gintsts.d32);
++ //otg_dbg(OTG_DBG_OCI,"GINMSK = 0x%x\n",(unsigned int)read_reg_32(GINTMSK));
++
++ if(gintsts.b.curmode == OTG_HOST_MODE)
++ {
++ //otg_dbg(OTG_DBG_OCI,"HOST Mode\n");
++ if(oci_host_init() == USB_ERR_SUCCESS)
++ {
++ return USB_ERR_SUCCESS;
++ }
++ else
++ {
++ //otg_dbg(OTG_DBG_OCI,"oci_host_init() Fail\n");
++ return USB_ERR_FAIL;
++ }
++ }
++
++ else // Device Mode
++ {
++ //otg_dbg(OTG_DBG_OCI,"DEVICE Mode\n");
++ if(oci_dev_init() == USB_ERR_SUCCESS)
++ {
++ return USB_ERR_SUCCESS;
++ }
++ else
++ {
++ //otg_dbg(OTG_DBG_OCI,"oci_dev_init() Fail\n");
++ return USB_ERR_FAIL;
++ }
++ }
++
++ return USB_ERR_SUCCESS;
++}
++
++void oci_config_flush_fifo(u32 mode)
++{
++ ghwcfg2_t hwcfg2 = {.d32 = 0};
++ //otg_dbg(OTG_DBG_OCI,"oci_config_flush_fifo\n");
++
++ hwcfg2.d32 = read_reg_32(GHWCFG2);
++
++ // Configure data FIFO sizes
++ if (hwcfg2.b.dynamic_fifo)
++ {
++ // Rx FIFO
++ write_reg_32(GRXFSIZ, 0x0000010D);
++
++ // Non-periodic Tx FIFO
++ write_reg_32(GNPTXFSIZ, 0x0080010D);
++
++ if (mode == OTG_HOST_MODE)
++ {
++ // For Periodic transactions,
++ // program HPTXFSIZ
++ }
++ }
++
++ // Flush the FIFOs
++ oci_flush_tx_fifo(0);
++
++ oci_flush_rx_fifo();
++}
++
++void oci_flush_tx_fifo(u32 num)
++{
++ grstctl_t greset = {.d32 = 0};
++ u32 count = 0;
++
++ //otg_dbg(OTG_DBG_OCI,"oci_flush_tx_fifo\n");
++
++ greset.b.txfflsh = 1;
++ greset.b.txfnum = num;
++ write_reg_32(GRSTCTL, greset.d32);
++
++ // wait for flush to end
++ while (greset.b.txfflsh == 1)
++ {
++ greset.d32 = read_reg_32(GRSTCTL);
++ if (++count > MAX_COUNT)
++ {
++ break;
++ }
++ };
++
++ /* Wait for 3 PHY Clocks*/
++ udelay(30);
++}
++
++void oci_flush_rx_fifo(void)
++{
++ grstctl_t greset = {.d32 = 0};
++ u32 count = 0;
++
++ //otg_dbg(OTG_DBG_OCI,"oci_flush_rx_fifo\n");
++
++ greset.b.rxfflsh = 1;
++ write_reg_32(GRSTCTL, greset.d32 );
++
++ do
++ {
++ greset.d32 = read_reg_32(GRSTCTL);
++
++ if (++count > MAX_COUNT)
++ {
++ break;
++ }
++
++ } while (greset.b.rxfflsh == 1);
++
++ /* Wait for 3 PHY Clocks*/
++ udelay(30);
++}
++
++int oci_core_reset(void)
++{
++ u32 count = 0;
++ grstctl_t greset = {.d32 = 0};
++
++ //otg_dbg(OTG_DBG_OCI,"oci_core_reset\n");
++
++ /* Wait for AHB master IDLE state. */
++ do
++ {
++ greset.d32 = read_reg_32 (GRSTCTL);
++ mdelay (50);
++
++ if(++count>100)
++ {
++ //otg_dbg(OTG_DBG_OCI,"AHB status is not IDLE\n");
++ return USB_ERR_FAIL;
++ }
++ } while (greset.b.ahbidle != 1);
++
++ /* Core Soft Reset */
++ greset.b.csftrst = 1;
++ write_reg_32 (GRSTCTL, greset.d32);
++
++ /* Wait for 3 PHY Clocks*/
++ mdelay (50);
++ return USB_ERR_SUCCESS;
++}
++
++int oci_dev_init(void)
++{
++ //otg_dbg(OTG_DBG_OCI,"Current Not Support Device Mode! \n");
++ //return USB_ERR_FAIL;
++ return USB_ERR_SUCCESS;
++}
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-oci.h b/drivers/usb/host/s3c-otg/s3c-otg-oci.h
+new file mode 100644
+index 0000000..b6b2c47
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-oci.h
+@@ -0,0 +1,83 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] :s3c-otg-oci.h
++ * [Description] : The Header file defines the external and internal functions of OCI.
++ * [Author] : Jang Kyu Hyeok { kyuhyeok.jang@samsung.com }
++ * [Department] : System LSI Division/Embedded S/W Platform
++ * [Created Date]: 2008/06/18
++ * [Revision History]
++ * (1) 2008/06/25 by Jang Kyu Hyeok { kyuhyeok.jang@samsung.com }
++ * - Added some functions and data structure of OCI
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#ifndef _OCI_H_
++#define _OCI_H_
++
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++
++//#include "s3c-otg-common-const.h"
++#include "s3c-otg-common-errorcode.h"
++#include "s3c-otg-common-regdef.h"
++#include "s3c-otg-hcdi-kal.h"
++#include "s3c-otg-hcdi-memory.h"
++#include "s3c-otg-hcdi-debug.h"
++#include "s3c-otg-roothub.h"
++
++#include <asm/arch/map.h> //virtual address for smdk
++
++
++///OCI interace
++int oci_init(void);
++
++int oci_start(void);
++int oci_stop(void);
++
++u8 oci_start_transfer(stransfer_t *st_t);
++int oci_stop_transfer(u8 ch_num);
++
++int oci_channel_init(u8 ch_num, stransfer_t *st_t);
++u32 oci_get_frame_num(void);
++u16 oci_get_frame_interval(void);
++void oci_set_frame_interval(u16 intervl);
++
++///OCI Internal Functions
++int oci_sys_init(void);
++int oci_core_init(void);
++int oci_init_mode(void);
++int oci_host_init(void);
++int oci_dev_init(void);
++
++int oci_channel_alloc(u8 *ch_num);
++int oci_channel_dealloc(u8 ch_num);
++
++void oci_config_flush_fifo(u32 mode);
++void oci_flush_tx_fifo(u32 num);
++void oci_flush_rx_fifo(void);
++
++int oci_core_reset(void);
++void oci_set_global_interrupt(bool set);
++
++#ifdef __cplusplus
++}
++#endif
++#endif /* _OCI_H_ */
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-roothub.c b/drivers/usb/host/s3c-otg/s3c-otg-roothub.c
+new file mode 100644
+index 0000000..c38d115
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-roothub.c
+@@ -0,0 +1,467 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : RootHub.c
++ * [Description] : The file implement the external and internal functions of RootHub
++ * [Author] : Jang Kyu Hyeok { kyuhyeok.jang@samsung.com }
++ * [Department] : System LSI Division/Embedded S/W Platform
++ * [Created Date]: 2008/06/13
++ * [Revision History]
++ * (1) 2008/06/13 by Jang Kyu Hyeok { kyuhyeok.jang@samsung.com }
++ * - Created this file and implements functions of RootHub
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#include "s3c-otg-roothub.h"
++
++port_flags_t port_flag;
++
++/**
++ * int get_otg_port_status(const u8 port, char* status)
++ *
++ * @brief Get port change bitmap information
++ *
++ * @param [IN] port : port number
++ * [OUT] status : buffer to store bitmap information
++ *
++ * @returnUSB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ *
++ * @remark
++ *
++ */
++__inline__ int get_otg_port_status(const u8 port, char *status)
++{
++ //return root_hub_feature(port, GetPortStatus, NULL, status);
++
++ status[port] = 0;
++ status[port] |= (port_flag.b.port_connect_status_change ||
++ port_flag.b.port_reset_change ||
++ port_flag.b.port_enable_change ||
++ port_flag.b.port_suspend_change ||
++ port_flag.b.port_over_current_change) << 1;
++
++ if (status[port]) {
++ otg_dbg(OTG_DBG_ROOTHUB, " Root port status changed\n");
++ otg_dbg(OTG_DBG_ROOTHUB, " port_connect_status_change: %d\n",
++ port_flag.b.port_connect_status_change);
++ otg_dbg(OTG_DBG_ROOTHUB, " port_reset_change: %d\n",
++ port_flag.b.port_reset_change);
++ otg_dbg(OTG_DBG_ROOTHUB, " port_enable_change: %d\n",
++ port_flag.b.port_enable_change);
++ otg_dbg(OTG_DBG_ROOTHUB, " port_suspend_change: %d\n",
++ port_flag.b.port_suspend_change);
++ otg_dbg(OTG_DBG_ROOTHUB, " port_over_current_change: %d\n",
++ port_flag.b.port_over_current_change);
++ }
++
++ return (status[port] !=0);
++}
++
++/**
++ * int reset_and_enable_port(const u8 port)
++ *
++ * @brief Reset port and make enable status the specific port
++ *
++ * @param [IN] port : port number
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ *
++ * @remark
++ *
++ */
++int reset_and_enable_port(const u8 port)
++{
++ hprt_t hprt;
++ u32 count = 0;
++ u32 max_error_count = 1000;
++
++ mdelay(50);
++ hprt.d32 = read_reg_32(HPRT);
++
++ if(!hprt.b.prtena)
++ {
++ hprt.b.prtrst = 1; // drive reset
++ write_reg_32(HPRT, hprt.d32);
++ mdelay(80);
++
++ hprt.b.prtrst = 0;
++ write_reg_32(HPRT, hprt.d32);
++ mdelay(60);
++
++ do
++ {
++ hprt.d32 = read_reg_32(HPRT);
++ udelay(10);
++
++ if(count > max_error_count)
++ {
++ otg_dbg(OTG_DBG_ROOTHUB,"Port Reset Fail : HPRT : 0x%x\n",(u16)read_reg_32(HPRT));
++ return USB_ERR_FAIL;
++ }
++ count++;
++ }while(!hprt.b.prtena);
++ }
++
++ return USB_ERR_SUCCESS;
++}
++
++/**
++ * int root_hub_feature(const u8 port,
++ * const u16 type_req,
++ * const u16 feature,
++ * void* buf)
++ *
++ * @brief Get port change bitmap information
++ *
++ * @param [IN] port : port number
++ * [IN] type_req : request type of hub feature as usb 2.0 spec
++ * [IN] feature : hub feature as usb 2.0 spec
++ * [OUT] status : buffer to store results
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ *
++ * @remark
++ *
++ */
++__inline__ int root_hub_feature(const u8 port,
++ const u16 type_req,
++ const u16 feature,
++ void *buf)
++{
++ int retval = USB_ERR_SUCCESS;
++ usb_hub_descriptor_t *desc = NULL;
++ u32 port_status = 0;
++ hprt_t hprt = {.d32 = 0};
++
++ switch (type_req)
++ {
++ case ClearHubFeature:
++ otg_dbg(OTG_DBG_ROOTHUB,"case ClearHubFeature\n");
++ switch (feature)
++ {
++ case C_HUB_LOCAL_POWER:
++ otg_dbg(OTG_DBG_ROOTHUB,"case ClearHubFeature -C_HUB_LOCAL_POWER \n");
++ break;
++ case C_HUB_OVER_CURRENT:
++ otg_dbg(OTG_DBG_ROOTHUB,"case ClearHubFeature -C_HUB_OVER_CURRENT \n");
++ /* Nothing required here */
++ break;
++ default:
++ retval = USB_ERR_FAIL;
++ }
++ break;
++
++ case ClearPortFeature:
++ otg_dbg(OTG_DBG_ROOTHUB,"case ClearPortFeature\n");
++ switch (feature)
++ {
++ case USB_PORT_FEAT_ENABLE:
++ otg_dbg(OTG_DBG_ROOTHUB,"case ClearPortFeature -USB_PORT_FEAT_ENABLE \n");
++ hprt.b.prtena = 1;
++ update_reg_32(HPRT, hprt.d32);
++ break;
++
++ case USB_PORT_FEAT_SUSPEND:
++ otg_dbg(OTG_DBG_ROOTHUB,"case ClearPortFeature -USB_PORT_FEAT_SUSPEND \n");
++ bus_resume();
++ break;
++
++ case USB_PORT_FEAT_POWER:
++ otg_dbg(OTG_DBG_ROOTHUB,"case ClearPortFeature -USB_PORT_FEAT_POWER \n");
++ hprt.b.prtpwr = 1;
++ clear_reg_32(HPRT, hprt.d32);
++ break;
++
++ case USB_PORT_FEAT_INDICATOR:
++ otg_dbg(OTG_DBG_ROOTHUB,"case ClearPortFeature -USB_PORT_FEAT_INDICATOR \n");
++ /* Port inidicator not supported */
++ break;
++
++ case USB_PORT_FEAT_C_CONNECTION:
++ otg_dbg(OTG_DBG_ROOTHUB,"case ClearPortFeature -USB_PORT_FEAT_C_CONNECTION \n");
++ /* Clears drivers internal connect status change
++ * flag */
++ port_flag.b.port_connect_status_change = 0;
++ break;
++
++ case USB_PORT_FEAT_C_RESET:
++ otg_dbg(OTG_DBG_ROOTHUB,"case ClearPortFeature -USB_PORT_FEAT_C_RESET \n");
++ /* Clears the driver's internal Port Reset Change
++ * flag */
++ port_flag.b.port_reset_change = 0;
++ break;
++
++ case USB_PORT_FEAT_C_ENABLE:
++ otg_dbg(OTG_DBG_ROOTHUB,"case ClearPortFeature -USB_PORT_FEAT_C_ENABLE \n");
++ /* Clears the driver's internal Port
++ * Enable/Disable Change flag */
++ port_flag.b.port_enable_change = 0;
++ break;
++
++ case USB_PORT_FEAT_C_SUSPEND:
++ otg_dbg(OTG_DBG_ROOTHUB,"case ClearPortFeature -USB_PORT_FEAT_C_SUSPEND \n");
++ /* Clears the driver's internal Port Suspend
++ * Change flag, which is set when resume signaling on
++ * the host port is complete */
++ port_flag.b.port_suspend_change = 0;
++ break;
++
++ case USB_PORT_FEAT_C_OVER_CURRENT:
++ otg_dbg(OTG_DBG_ROOTHUB,"case ClearPortFeature -USB_PORT_FEAT_C_OVER_CURRENT \n");
++ port_flag.b.port_over_current_change = 0;
++ break;
++
++ default:
++ retval = USB_ERR_FAIL;
++ }
++ break;
++
++ case GetHubDescriptor:
++ otg_dbg(OTG_DBG_ROOTHUB,"case GetHubDescriptor\n");
++ desc = (usb_hub_descriptor_t *)buf;
++ desc->desc_length = 9;
++ desc->desc_type = 0x29;
++ desc->port_number = 1;
++ desc->hub_characteristics = 0x08;
++ desc->power_on_to_power_good = 1;
++ desc->hub_control_current = 0;
++ desc->bitmap[0] = 0;
++ desc->bitmap[1] = 0xff;
++ break;
++
++ case GetHubStatus:
++ otg_dbg(OTG_DBG_ROOTHUB,"case GetHubStatus\n");
++ otg_mem_set(buf, 0, 4);
++ break;
++
++ case GetPortStatus:
++ //otg_dbg(OTG_DBG_ROOTHUB_KH,"case GetPortStatus\n");
++
++
++ if (port_flag.b.port_connect_status_change)
++ port_status |= (1 << USB_PORT_FEAT_C_CONNECTION);
++
++ if (port_flag.b.port_enable_change)
++ port_status |= (1 << USB_PORT_FEAT_C_ENABLE);
++
++ if (port_flag.b.port_suspend_change)
++ port_status |= (1 << USB_PORT_FEAT_C_SUSPEND);
++
++ if (port_flag.b.port_reset_change)
++ port_status|= (1 << USB_PORT_FEAT_C_RESET);
++
++ if (port_flag.b.port_over_current_change)
++ port_status |= (1 << USB_PORT_FEAT_C_OVER_CURRENT);
++
++
++ if (!port_flag.b.port_connect_status)
++ {
++ //
++ // The port is disconnected, which means the core is
++ // either in device mode or it soon will be. Just
++ // return 0's for the remainder of the port status
++ // since the port register can't be read if the core
++ // is in device mode.
++
++ *((__le32*)buf) = cpu_to_le32(port_status);
++ break;
++ }
++
++
++ hprt.d32 = read_reg_32(HPRT);
++
++ if (hprt.b.prtconnsts)
++ port_status|= (1 << USB_PORT_FEAT_CONNECTION);
++
++ if (hprt.b.prtena)
++ port_status |= (1 << USB_PORT_FEAT_ENABLE);
++
++ if (hprt.b.prtsusp)
++ port_status |= (1 << USB_PORT_FEAT_SUSPEND);
++
++ if (hprt.b.prtovrcurract)
++ port_status |= (1 << USB_PORT_FEAT_OVER_CURRENT);
++
++ if (hprt.b.prtrst)
++ port_status |= (1 << USB_PORT_FEAT_RESET);
++
++ if (hprt.b.prtpwr)
++ port_status |= (1 << USB_PORT_FEAT_POWER);
++
++ if (hprt.b.prtspd == 0)
++ port_status |= (1 << USB_PORT_FEAT_HIGHSPEED);
++
++ else if (hprt.b.prtspd == 2)
++ port_status |= (1 << USB_PORT_FEAT_LOWSPEED);
++
++ if (hprt.b.prttstctl)
++ port_status |= (1 << USB_PORT_FEAT_TEST);
++
++ *((__le32*)buf) = cpu_to_le32(port_status);
++ break;
++
++ case SetHubFeature:
++ otg_dbg(OTG_DBG_ROOTHUB,"case SetHubFeature\n");
++ /* No HUB features supported */
++ break;
++
++ case SetPortFeature:
++ otg_dbg(OTG_DBG_ROOTHUB,"case SetPortFeature\n");
++ if (!port_flag.b.port_connect_status) {
++ /*
++ * The port is disconnected, which means the core is
++ * either in device mode or it soon will be. Just
++ * return without doing anything since the port
++ * register can't be written if the core is in device
++ * mode.
++ */
++ break;
++ }
++
++ switch (feature)
++ {
++ case USB_PORT_FEAT_SUSPEND:
++ otg_dbg(OTG_DBG_ROOTHUB,"case SetPortFeature -USB_PORT_FEAT_SUSPEND \n");
++ bus_suspend();
++ break;
++
++ case USB_PORT_FEAT_POWER:
++ otg_dbg(OTG_DBG_ROOTHUB,"case SetPortFeature -USB_PORT_FEAT_POWER \n");
++ hprt.d32 = read_reg_32(HPRT);
++ if(!hprt.b.prtpwr)
++ {
++ //hprt.d32 = 0;
++ hprt.b.prtpwr = 1;
++ write_reg_32(HPRT, hprt.d32);
++ }
++ break;
++
++ case USB_PORT_FEAT_RESET:
++ otg_dbg(OTG_DBG_ROOTHUB,"case SetPortFeature -USB_PORT_FEAT_RESET \n");
++ retval = reset_and_enable_port(port);
++ break;
++
++ case USB_PORT_FEAT_INDICATOR:
++ otg_dbg(OTG_DBG_ROOTHUB,"case USB_PORT_FEAT_INDICATOR\n");
++ break;
++
++ default :
++ retval = USB_ERR_FAIL;
++ break;
++ }
++ break;
++
++ default:
++ retval = USB_ERR_FAIL;
++ otg_dbg(OTG_DBG_ROOTHUB,"root_hub_feature() Function Error\n");
++ break;
++ }
++ if(retval != USB_ERR_SUCCESS)
++ retval = USB_ERR_FAIL;
++ return retval;
++}
++
++/**
++ * void bus_suspend(void)
++ *
++ * @brief Make suspend status when this platform support PM Mode
++ *
++ * @param None
++ *
++ * @return None
++ *
++ * @remark
++ *
++ */
++void bus_suspend(void)
++{
++ hprt_t hprt;
++ pcgcctl_t pcgcctl;
++
++ hprt.d32 = 0;
++ pcgcctl.d32 = 0;
++
++ hprt.b.prtsusp = 1;
++ update_reg_32(HPRT, hprt.d32);
++
++ pcgcctl.b.pwrclmp = 1;
++ update_reg_32(PCGCCTL,pcgcctl.d32);
++ udelay(1);
++
++ pcgcctl.b.rstpdwnmodule = 1;
++ update_reg_32(PCGCCTL,pcgcctl.d32);
++ udelay(1);
++
++ pcgcctl.b.stoppclk = 1;
++ update_reg_32(PCGCCTL,pcgcctl.d32);
++ udelay(1);
++}
++
++/**
++ * int bus_resume(void)
++ *
++ * @brief Make resume status when this platform support PM Mode
++ *
++ * @param None
++ *
++ * @return USB_ERR_SUCCESS : If success \n
++ * USB_ERR_FAIL : If call fail \n
++ *
++ * @remark
++ *
++ */
++int bus_resume(void)
++{
++ /*
++ hprt_t hprt;
++ pcgcctl_t pcgcctl;
++ hprt.d32 = 0;
++ pcgcctl.d32 = 0;
++
++ pcgcctl.b.stoppclk = 1;
++ clear_reg_32(PCGCCTL,pcgcctl.d32);
++ udelay(1);
++
++ pcgcctl.b.pwrclmp = 1;
++ clear_reg_32(PCGCCTL,pcgcctl.d32);
++ udelay(1);
++
++ pcgcctl.b.rstpdwnmodule = 1;
++ clear_reg_32(PCGCCTL,pcgcctl.d32);
++ udelay(1);
++
++ hprt.b.prtres = 1;
++ update_reg_32(HPRT, hprt.d32);
++ mdelay(20);
++
++ clear_reg_32(HPRT, hprt.d32);
++ */
++ otg_dbg(OTG_DBG_OTGHCDI_HCD, "bus_resume()...... \n");
++ if(oci_init() == USB_ERR_SUCCESS)
++ {
++ if(oci_start() == USB_ERR_SUCCESS)
++ {
++ otg_dbg(OTG_DBG_OTGHCDI_HCD, "OTG Init Success...... \n");
++ return USB_ERR_SUCCESS;
++ }
++ }
++ return USB_ERR_FAIL;
++}
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-roothub.h b/drivers/usb/host/s3c-otg/s3c-otg-roothub.h
+new file mode 100644
+index 0000000..036d4be
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-roothub.h
+@@ -0,0 +1,84 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] :s3c-otg-roothub.h
++ * [Description] : The Header file defines the external and internal functions of RootHub.
++ * [Author] : Jang Kyu Hyeok { kyuhyeok.jang@samsung.com }
++ * [Department] : System LSI Division/Embedded S/W Platform
++ * [Created Date]: 2008/06/13
++ * [Revision History]
++ * (1) 2008/06/13 by Jang Kyu Hyeok { kyuhyeok.jang@samsung.com }
++ * - Created this file and defines functions of RootHub
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#ifndef _ROOTHUB_H_
++#define _ROOTHUB_H_
++
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++
++#include "s3c-otg-common-errorcode.h"
++#include "s3c-otg-common-regdef.h"
++#include "s3c-otg-common-datastruct.h"
++#include "s3c-otg-hcdi-kal.h"
++#include "s3c-otg-hcdi-memory.h"
++#include "s3c-otg-oci.h"
++
++typedef union _port_flags_t
++{
++ /** raw register data */
++ u32 d32;
++ /** register bits */
++ struct
++ {
++ unsigned port_connect_status_change : 1;
++ unsigned port_connect_status : 1;
++ unsigned port_reset_change : 1;
++ unsigned port_enable_change : 1;
++ unsigned port_suspend_change : 1;
++ unsigned port_over_current_change : 1;
++ unsigned reserved : 27;
++ } b;
++}port_flags_t;
++
++
++
++__inline__ int root_hub_feature(const u8 port,
++ const u16 typeReq,
++ const u16 feature,
++ void *buf
++ );
++
++__inline__ int get_otg_port_status(const u8 port,
++ char *status);
++
++int reset_and_enable_port(const u8 port);
++
++void bus_suspend(void);
++
++int bus_resume(void);
++
++#ifdef __cplusplus
++}
++#endif
++#endif /* _ROOTHUB_H_ */
++
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-scheduler-ischeduler.c b/drivers/usb/host/s3c-otg/s3c-otg-scheduler-ischeduler.c
+new file mode 100644
+index 0000000..3a694ff
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-scheduler-ischeduler.c
+@@ -0,0 +1,427 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : Scheduler.c
++ * [Description] : The source file implements the internal functions of Scheduler.
++ * [Author] : Yang Soon Yeal { syatom.yang@samsung.com }
++ * [Department] : System LSI Division/System SW Lab
++ * [Created Date]: 2008/06/04
++ * [Revision History]
++ * (1) 2008/06/03 by Yang Soon Yeal { syatom.yang@samsung.com }
++ * - Created this file and implements functions of Scheduler
++ * -# Jul 15,2008 v1.2 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Optimizing for performance \n
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#include "s3c-otg-scheduler-scheduler.h"
++
++void init_scheduler(void)
++{
++ //init_scheduling();
++ init_transfer_ready_q();
++}
++
++#if 0 //by ss1 inlined
++/******************************************************************************/
++/*!
++ * @name int insert_ed_to_scheduler(ed_t *pInsertED)
++ *
++ * @brief this function transfers the pInsertED to S3C6400Scheduler, and
++ * after that, the pInsertED is inserted to TransferReadyQ and scheduled by Scheduler.
++ *
++ *
++ * @param [IN] pInsertED = indicates pointer of ed_t to be inserted to TransferReadyQ.
++ *
++ * @return USB_ERR_ALREADY_EXIST - if the pInsertED is already existed.
++ * USB_ERR_SUCCESS - if success to insert pInsertED to S3CScheduler.
++ */
++/******************************************************************************/
++int insert_ed_to_scheduler(ed_t *pInsertED)
++{
++ if(!pInsertED->is_need_to_insert_scheduler)
++ {
++ return USB_ERR_ALREADY_EXIST;
++ }
++
++ insert_ed_to_ready_q(pInsertED, false);
++ pInsertED->is_need_to_insert_scheduler = false;
++ pInsertED->ed_status.is_in_transfer_ready_q = true;
++
++ do_periodic_schedule();
++ do_nonperiodic_schedule();
++
++ return USB_ERR_SUCCESS;
++}
++#endif
++
++/******************************************************************************/
++/*!
++ * @name int reserve_used_resource_for_periodic(u32 usb_time)
++ *
++ * @brief this function reserves the necessary resource of USB Transfer for Periodic Transfer.
++ * So, this function firstly checks there ares some available USB Time
++ * and Channel resource for USB Transfer.
++ * if there exists necessary resources for Periodic Transfer, then reserves the resource.
++ *
++ * @param [IN] usb_time = indicates the USB Time for the USB Transfer.
++ *
++ * @return USB_ERR_SUCCESS - if success to insert pInsertED to S3CScheduler.
++ * USB_ERR_NO_BANDWIDTH - if fail to reserve the USB Bandwidth.
++ * USB_ERR_NO_CHANNEL - if fail to reserve the Channel.
++ */
++/******************************************************************************/
++
++int reserve_used_resource_for_periodic(u32 usb_time,
++ u8 dev_speed,
++ u8 trans_type)
++{
++ if(inc_perio_bus_time(usb_time,dev_speed)==USB_ERR_SUCCESS)
++ {
++ if(inc_perio_chnum()==USB_ERR_SUCCESS)
++ {
++ otg_usbcore_inc_usb_bandwidth(usb_time);
++ otg_usbcore_inc_periodic_transfer_cnt(trans_type);
++ return USB_ERR_SUCCESS;
++ }
++ else
++ {
++ dec_perio_bus_time(usb_time);
++ return USB_ERR_NO_CHANNEL;
++ }
++ }
++ else
++ {
++ return USB_ERR_NO_BANDWIDTH;
++ }
++
++}
++
++
++/******************************************************************************/
++/*!
++ * @name int free_usb_resource_for_periodic(ed_t * pFreeED)
++ *
++ * @brief this function frees the resources to be allocated to pFreeED at S3CScheduler.
++ * that is, this functions only releases the resources to be allocated by S3C6400Scheduler.
++ *
++ * @param [IN] pFreeED = indicates ed_t to have the information of the resource to be released.
++ *
++ * @return USB_ERR_SUCCESS - if success to free the USB Resource.
++ * USB_ERR_FAIL - if fail to free the USB Resrouce.
++ */
++/******************************************************************************/
++int free_usb_resource_for_periodic( u32 free_usb_time,
++ u8 free_chnum,
++ u8 trans_type)
++{
++ if(dec_perio_bus_time(free_usb_time)==USB_ERR_SUCCESS)
++ {
++ if(dec_perio_chnum()==USB_ERR_SUCCESS)
++ {
++ if(free_chnum!=CH_NONE)
++ {
++ oci_channel_dealloc(free_chnum);
++ set_transferring_td_array(free_chnum, 0);
++ }
++ otg_usbcore_des_usb_bandwidth(free_usb_time);
++ otg_usbcore_des_periodic_transfer_cnt(trans_type);
++ return USB_ERR_SUCCESS;
++ }
++ }
++ return USB_ERR_FAIL;
++}
++
++/******************************************************************************/
++/*!
++ * @name int remove_ed_from_scheduler(ed_t * remove_ed)
++ *
++ * @brief this function just remove the remove_ed from TransferReadyQ. So if you want to
++ * stop the USB Tranfer of remove_ed or release the releated resources.
++ * you should call another functions of S3CScheduler.
++ *
++ * @param [IN] remove_ed = indicates ed_t to be removed from TransferReadyQ.
++ *
++ * @return USB_ERR_SUCCESS - if success to remove the remove_ed from TransferReadyQ.
++ * USB_ERR_FAIL - if fail to remove the remove_ed from TransferReadyQ.
++ */
++ /******************************************************************************/
++int remove_ed_from_scheduler(ed_t *remove_ed)
++{
++ if(remove_ed->ed_status.is_in_transfer_ready_q)
++ {
++ remove_ed_from_ready_q(remove_ed);
++ remove_ed->ed_status.is_in_transfer_ready_q = false;
++
++ return USB_ERR_SUCCESS;
++ }
++ else
++ {
++ return USB_ERR_FAIL;
++ }
++}
++
++/******************************************************************************/
++/*!
++ * @name int cancel_to_transfer_td(td_t * cancel_td)
++ *
++ * @brief this function stop to execute the USB Transfer of cancel_td and
++ * release the Channel Resources to be allocated the cancel_td ,if the Transfer Type of
++ * cancel_td is NonPeriodic Transfer.
++ * this function don't release any usb resources(Channel, USB Bandwidth) for Periodic Transfer.
++ * if you want to release some usb resources for a periodic Transfer, you should call
++ * the free_usb_resource_for_periodic()
++ *
++ * @param [IN] cancel_td = indicates the td_t to be canceled.
++ *
++ * @return USB_ERR_SUCCESS - if success to cancel the USB Transfer of cancel_td.
++ * USB_ERR_FAIL - if fail to cancel the USB Transfer of cancel_td.
++ */
++ /******************************************************************************/
++int cancel_to_transfer_td(td_t *cancel_td)
++{
++ if(cancel_td->is_transfer_done)
++ {
++ return USB_ERR_FAIL;
++ }
++
++ if(cancel_td->is_transferring)
++ {
++ int err;
++
++ err = oci_stop_transfer(cancel_td->cur_stransfer.alloc_chnum);
++
++ if(err == USB_ERR_SUCCESS)
++ {
++ set_transferring_td_array(cancel_td->cur_stransfer.alloc_chnum,0);
++
++ cancel_td->cur_stransfer.alloc_chnum = CH_NONE;
++ cancel_td->is_transferring = false;
++ cancel_td->parent_ed_p->ed_status.is_in_transferring = false;
++ cancel_td->parent_ed_p->ed_status.in_transferring_td = 0;
++
++ if(cancel_td->cur_stransfer.ed_desc_p->endpoint_type == BULK_TRANSFER||
++ cancel_td->cur_stransfer.ed_desc_p->endpoint_type == CONTROL_TRANSFER )
++ {
++ dec_nonperio_chnum();
++ }
++ return err;
++ }
++ else
++ {
++ return err;
++ }
++ }
++ else
++ {
++ return USB_ERR_FAIL;
++ }
++}
++
++
++
++
++/******************************************************************************/
++/*!
++ * @name int retransmit(td_t *retrasmit_td)
++ *
++ * @brief this function retransmits the retrasmit_td immediately.
++ * So, the Channel of pRetransmitted is reused for retransmittion.
++ *
++ * @param [IN] retrasmit_td = indicates the pointer ot the td_t to be retransmitted.
++ *
++ * @return USB_ERR_SUCCESS - if success to retransmit the retrasmit_td.
++ * USB_ERR_FAIL - if fail to retransmit the retrasmit_td.
++ */
++ /******************************************************************************/
++int retransmit(td_t *retrasmit_td)
++{
++ u32 td_addr=0;
++
++ if(get_transferring_td_array(retrasmit_td->cur_stransfer.alloc_chnum,&td_addr)==USB_ERR_SUCCESS)
++ {
++ if(td_addr == (u32)retrasmit_td)
++ {
++ if(oci_start_transfer(&retrasmit_td->cur_stransfer)== retrasmit_td->cur_stransfer.alloc_chnum)
++ {
++ retrasmit_td->is_transferring = true;
++ retrasmit_td->parent_ed_p->ed_status.in_transferring_td = (u32)retrasmit_td;
++ retrasmit_td->parent_ed_p->ed_status.is_in_transfer_ready_q = false;
++ retrasmit_td->parent_ed_p->ed_status.is_in_transferring = true;
++ }
++ }
++ else
++ {
++ return USB_ERR_FAIL;
++ }
++ }
++ else
++ {
++ return USB_ERR_FAIL;
++ }
++
++ return USB_ERR_SUCCESS;
++
++}
++
++/******************************************************************************/
++/*!
++ * @name int reschedule(td_t *reschedule_td)
++ *
++ * @brief this function re-schedules the reschedule_td.
++ * So, the Channel of pRescheuleTD is released and reschedule_td is inserted to TransferReadyQ.
++ *
++ * @param [IN] reschedule_td = indicates the pointer ot the td_t to be rescheduled.
++ *
++ * @return USB_ERR_SUCCESS - if success to re-schedule the reschedule_td.
++ * USB_ERR_FAIL - if fail to re-schedule the reschedule_td.
++ */
++ /******************************************************************************/
++int reschedule(td_t *reschedule_td)
++{
++ u32 td_addr;
++
++ if(get_transferring_td_array(reschedule_td->cur_stransfer.alloc_chnum, &td_addr)==USB_ERR_SUCCESS)
++ {
++ if((u32)reschedule_td == td_addr)
++ {
++ set_transferring_td_array(reschedule_td->cur_stransfer.alloc_chnum, 0);
++ oci_channel_dealloc(reschedule_td->cur_stransfer.alloc_chnum);
++
++ reschedule_td->cur_stransfer.alloc_chnum = CH_NONE;
++ reschedule_td->parent_ed_p->is_need_to_insert_scheduler = true;
++ reschedule_td->parent_ed_p->ed_status.in_transferring_td = 0;
++
++ if(reschedule_td->parent_ed_p->ed_desc.endpoint_type == BULK_TRANSFER||
++ reschedule_td->parent_ed_p->ed_desc.endpoint_type == CONTROL_TRANSFER )
++ {
++ //Increase the available Channel
++ dec_nonperio_chnum();
++
++ }
++
++ insert_ed_to_ready_q(reschedule_td->parent_ed_p, false);
++ reschedule_td->parent_ed_p->ed_status.is_in_transfer_ready_q =true;
++
++ }
++ else
++ {
++ //this case is not support....
++ }
++ }
++ return USB_ERR_SUCCESS;
++
++}
++
++/******************************************************************************/
++/*!
++ * @name int deallocate(td_t *deallocate_td)
++ *
++ * @brief this function frees resources to be allocated deallocate_td by S3CScheduler.
++ * this function just free the resource by S3CScheduler. that is, Channel Resource.
++ * if there are another td_t at ed_t, deallocate() insert the ed_t to TransferReadyQ.
++ *
++ * @param [IN] deallocate_td = indicates the pointer ot the td_t to be deallocated.
++ *
++ * @return USB_ERR_SUCCESS - if success to dealloate the resources for the deallocate_td.
++ * USB_ERR_FAIL - if fail to dealloate the resources for the deallocate_td.
++ */
++ /******************************************************************************/
++int deallocate(td_t *deallocate_td)
++{
++ u32 td_addr;
++
++ if(get_transferring_td_array(deallocate_td->cur_stransfer.alloc_chnum , &td_addr)==USB_ERR_SUCCESS)
++ {
++ if((u32)deallocate_td == td_addr)
++ {
++ set_transferring_td_array(deallocate_td->cur_stransfer.alloc_chnum, 0);
++ oci_channel_dealloc(deallocate_td->cur_stransfer.alloc_chnum);
++
++ deallocate_td->cur_stransfer.alloc_chnum = CH_NONE;
++
++ if(deallocate_td->parent_ed_p->ed_desc.endpoint_type == BULK_TRANSFER||
++ deallocate_td->parent_ed_p->ed_desc.endpoint_type == CONTROL_TRANSFER )
++ {
++ //Increase the available Channel
++ dec_nonperio_chnum();
++ }
++
++ deallocate_td->parent_ed_p->is_need_to_insert_scheduler = true;
++
++ if(deallocate_td->parent_ed_p->num_td)
++ {
++ //insert ed_t to TransferReadyQ.
++ insert_ed_to_ready_q(deallocate_td->parent_ed_p , false);
++ deallocate_td->parent_ed_p->ed_status.is_in_transfer_ready_q = true;
++ deallocate_td->parent_ed_p->is_need_to_insert_scheduler = false;
++ }
++ return USB_ERR_SUCCESS;
++ }
++ else
++ {
++ return USB_ERR_FAIL;
++ }
++ }
++ else
++ {
++ return USB_ERR_FAIL;
++ }
++
++}
++
++//TBD....
++void do_schedule(void)
++{
++ if(get_avail_chnum())
++ {
++ do_periodic_schedule();
++ do_nonperiodic_schedule();
++ }
++}
++
++/******************************************************************************/
++/*!
++ * @name int get_td_info(u8 chnum,
++ * unsigned int *td_addr_p)
++ *
++ * @brief this function returns the pointer of td_t at TransferringTDArray[chnum]
++ *
++ * @param [IN] chnum = indicates the index of TransferringTDArray
++ * to include the address of td_t which we gets
++ * [OUT] td_addr_p= indicate pointer to store the address of td_t.
++ *
++ * @return USB_ERR_SUCCESS -if success to get the address of td_t.
++ * USB_ERR_FAIL -if fail to get the address of td_t.
++ */
++ /******************************************************************************/
++int get_td_info( u8 chnum,
++ unsigned int *td_addr_p)
++{
++ u32 td_addr;
++
++ if(get_transferring_td_array(chnum, &td_addr)==USB_ERR_SUCCESS)
++ {
++ *td_addr_p = td_addr;
++ return USB_ERR_SUCCESS;
++ }
++
++ return USB_ERR_FAIL;
++}
++
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-scheduler-readyq.c b/drivers/usb/host/s3c-otg/s3c-otg-scheduler-readyq.c
+new file mode 100644
+index 0000000..e6e9749
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-scheduler-readyq.c
+@@ -0,0 +1,253 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : TransferReadyQ.c
++ * [Description] : The source file implements the internal functions of TransferReadyQ.
++ * [Author] : Yang Soon Yeal { syatom.yang@samsung.com }
++ * [Department] : System LSI Division/System SW Lab
++ * [Created Date]: 2008/06/04
++ * [Revision History]
++ * (1) 2008/06/04 by Yang Soon Yeal { syatom.yang@samsung.com }
++ * - Created this file and implements functions of TransferReadyQ.
++ * -# Jul 15,2008 v1.2 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Optimizing for performance \n
++ *
++ ****************************************************************************/
++
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#include "s3c-otg-scheduler-scheduler.h"
++
++static trans_ready_q_t periodic_trans_ready_q;
++static trans_ready_q_t nonperiodic_trans_ready_q;
++
++/******************************************************************************/
++/*!
++ * @name void init_transfer_ready_q(void)
++ *
++ * @brief this function initiates PeriodicTransferReadyQ and NonPeriodicTransferReadyQ.
++ *
++ *
++ * @param void
++ *
++ * @return void.
++ */
++/******************************************************************************/
++void init_transfer_ready_q(void)
++{
++
++ otg_dbg(OTG_DBG_SCHEDULE,"start init_transfer_ready_q\n");
++
++ otg_list_init(&periodic_trans_ready_q.trans_ready_q_list_head);
++ periodic_trans_ready_q.is_periodic_transfer = true;
++ periodic_trans_ready_q.trans_ready_entry_num = 0;
++ periodic_trans_ready_q.total_alloc_chnum = 0;
++ periodic_trans_ready_q.total_perio_bus_bandwidth = 0;
++
++ otg_list_init(&nonperiodic_trans_ready_q.trans_ready_q_list_head);
++ nonperiodic_trans_ready_q.is_periodic_transfer = false;
++ nonperiodic_trans_ready_q.trans_ready_entry_num = 0;
++ nonperiodic_trans_ready_q.total_alloc_chnum = 0;
++ nonperiodic_trans_ready_q.total_perio_bus_bandwidth = 0;
++
++
++}
++
++
++/******************************************************************************/
++/*!
++ * @name int insert_ed_to_ready_q(ed_t *insert_ed,
++ * bool f_isfirst)
++ *
++ * @brief this function inserts ed_t * to TransferReadyQ.
++ *
++ *
++ * @param [IN] insert_ed = indicates the ed_t to be inserted to TransferReadyQ.
++ * [IN] f_isfirst = indicates whether the insert_ed is inserted as first entry of TransferReadyQ.
++ *
++ * @return USB_ERR_SUCCESS -if successes to insert the insert_ed to TransferReadyQ.
++ * USB_ERR_FAILl -if fails to insert the insert_ed to TransferReadyQ.
++ */
++/******************************************************************************/
++int insert_ed_to_ready_q(ed_t *insert_ed,
++ bool f_isfirst)
++{
++
++ if(insert_ed->ed_desc.endpoint_type == BULK_TRANSFER||
++ insert_ed->ed_desc.endpoint_type == CONTROL_TRANSFER)
++ {
++ if(f_isfirst)
++ {
++ otg_list_push_next(&insert_ed->trans_ready_q_list_entry,&nonperiodic_trans_ready_q.trans_ready_q_list_head);
++ }
++ else
++ {
++ otg_list_push_prev(&insert_ed->trans_ready_q_list_entry,&nonperiodic_trans_ready_q.trans_ready_q_list_head);
++ }
++ nonperiodic_trans_ready_q.trans_ready_entry_num++;
++ }
++ else
++ {
++ if(f_isfirst)
++ {
++ otg_list_push_next(&insert_ed->trans_ready_q_list_entry,&periodic_trans_ready_q.trans_ready_q_list_head);
++ }
++ else
++ {
++ otg_list_push_prev(&insert_ed->trans_ready_q_list_entry,&periodic_trans_ready_q.trans_ready_q_list_head);
++ }
++ periodic_trans_ready_q.trans_ready_entry_num++;
++ }
++
++ return USB_ERR_SUCCESS;
++
++}
++
++
++u32 get_periodic_ready_q_entity_num(void)
++{
++ return periodic_trans_ready_q.trans_ready_entry_num;
++}
++/******************************************************************************/
++/*!
++ * @name int remove_ed_from_ready_q(ed_t *remove_ed)
++ *
++ * @brief this function removes ed_t * from TransferReadyQ.
++ *
++ *
++ * @param [IN] remove_ed = indicate the ed_t to be removed from TransferReadyQ.
++ *
++ * @return USB_ERR_SUCCESS -if successes to remove the remove_ed from TransferReadyQ.
++ * USB_ERR_FAILl -if fails to remove the remove_ed from TransferReadyQ.
++ */
++/******************************************************************************/
++int remove_ed_from_ready_q(ed_t *remove_ed)
++{
++// SPINLOCK_t SLForRemoveED_t = SPIN_LOCK_INIT;
++// u32 uiSLFlag=0;
++
++ otg_list_pop(&remove_ed->trans_ready_q_list_entry);
++
++ if(remove_ed->ed_desc.endpoint_type == BULK_TRANSFER||
++ remove_ed->ed_desc.endpoint_type == CONTROL_TRANSFER)
++ {
++// spin_lock_irg_save_otg(&SLForRemoveED_t, uiSLFlag);
++// otg_list_pop(&remove_ed->trans_ready_q_list_entry);
++ nonperiodic_trans_ready_q.trans_ready_entry_num--;
++// spin_unlock_irq_save_otg(&SLForRemoveED_t, uiSLFlag);
++ }
++ else
++ {
++// spin_lock_irg_save_otg(&SLForRemoveED_t, uiSLFlag);
++// otg_list_pop(&remove_ed->trans_ready_q_list_entry);
++ periodic_trans_ready_q.trans_ready_entry_num--;
++// spin_unlock_irq_save_otg(&SLForRemoveED_t, uiSLFlag);
++ }
++
++ return USB_ERR_SUCCESS;
++
++}
++
++//by ss1 unused func
++/*
++bool check_ed_on_ready_q(ed_t *check_ed_p)
++{
++
++ if(check_ed_p->ed_status.is_in_transfer_ready_q)
++ return true;
++ else
++ return false;
++}*/
++
++/******************************************************************************/
++/*!
++ * @name int get_ed_from_ready_q(bool f_isperiodic,
++ * td_t **get_ed)
++ *
++ * @brief this function returns the first entity of TransferReadyQ.
++ * if there are some ed_t on TransferReadyQ, this function pops first ed_t from TransferReadyQ.
++ * So, the TransferReadyQ don's has the poped ed_t.
++ *
++ *
++ * @param [IN] f_isperiodic = indicate whether Periodic or not
++ * [OUT] get_ed = indicate the double pointer to store the address of first entity
++ * on TransferReadyQ.
++ *
++ * @return USB_ERR_SUCCESS -if successes to get frist ed_t from TransferReadyQ.
++ * USB_ERR_NO_ENTITY -if fails to get frist ed_t from TransferReadyQ
++ * because there is no entity on TransferReadyQ.
++ */
++/******************************************************************************/
++
++int get_ed_from_ready_q(bool f_isperiodic,
++ ed_t **get_ed)
++{
++ if(f_isperiodic)
++ {
++ otg_list_head *transreadyq_list_entity=NULL;
++
++ if(periodic_trans_ready_q.trans_ready_entry_num==0)
++ {
++ return USB_ERR_NO_ENTITY;
++ }
++
++ transreadyq_list_entity = periodic_trans_ready_q.trans_ready_q_list_head.next;
++
++ //if(transreadyq_list_entity!= &periodic_trans_ready_q.trans_ready_q_list_head)
++ if(!otg_list_empty(&periodic_trans_ready_q.trans_ready_q_list_head))
++ {
++ *get_ed = otg_list_get_node(transreadyq_list_entity,ed_t,trans_ready_q_list_entry);
++ otg_list_pop(transreadyq_list_entity);
++ periodic_trans_ready_q.trans_ready_entry_num--;
++
++ return USB_ERR_SUCCESS;
++ }
++ else
++ {
++ return USB_ERR_NO_ENTITY;
++ }
++ }
++ else
++ {
++ otg_list_head *transreadyq_list_entity=NULL;
++
++ if(nonperiodic_trans_ready_q.trans_ready_entry_num==0)
++ {
++ return USB_ERR_NO_ENTITY;
++ }
++
++ transreadyq_list_entity = nonperiodic_trans_ready_q.trans_ready_q_list_head.next;
++
++ //if(transreadyq_list_entity!= &nonperiodic_trans_ready_q.trans_ready_q_list_head)
++ if(!otg_list_empty(&nonperiodic_trans_ready_q.trans_ready_q_list_head))
++ {
++ *get_ed = otg_list_get_node(transreadyq_list_entity,ed_t, trans_ready_q_list_entry);
++
++ otg_list_pop(transreadyq_list_entity);
++
++ nonperiodic_trans_ready_q.trans_ready_entry_num--;
++
++ return USB_ERR_SUCCESS;
++ }
++ else
++ {
++ return USB_ERR_NO_ENTITY;
++ }
++ }
++}
++
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-scheduler-scheduler.c b/drivers/usb/host/s3c-otg/s3c-otg-scheduler-scheduler.c
+new file mode 100644
+index 0000000..26bd50e
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-scheduler-scheduler.c
+@@ -0,0 +1,449 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : Scheduler.c
++ * [Description] : The source file implements the internal functions of Scheduler.
++ * [Author] : Yang Soon Yeal { syatom.yang@samsung.com }
++ * [Department] : System LSI Division/System SW Lab
++ * [Created Date]: 2008/06/04
++ * [Revision History]
++ * (1) 2008/06/03 by Yang Soon Yeal { syatom.yang@samsung.com }
++ * - Created this file and implements functions of Scheduler
++ * -# Jul 15,2008 v1.2 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Optimizing for performance \n
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#include "s3c-otg-scheduler-scheduler.h"
++
++//Define constant variables
++
++//the max periodic bus time is 80%*125us on High Speed Mode
++static const u32 perio_highbustime_threshold = 100;
++
++//the max periodic bus time is 90%*1000us(1ms) on Full/Low Speed Mode .
++static const u32 perio_fullbustime_threshold = 900;
++
++static const u8 perio_chnum_threshold = 14;
++//static const u8 total_chnum_threshold = 16;
++static u8 total_chnum_threshold = 16;
++
++ //Define global variables
++
++static u32 perio_used_bustime = 0;
++static u8 perio_used_chnum = 0;
++static u8 nonperio_used_chnum = 0;
++static u8 total_used_chnum = 0;
++static u32 transferring_td_array[16]={0};
++
++
++int inc_perio_bus_time(u32 bus_time, u8 dev_speed)
++{
++ switch(dev_speed)
++ {
++ case HIGH_SPEED_OTG:
++ if((bus_time+perio_used_bustime)<=perio_highbustime_threshold)
++ {
++ perio_used_bustime=+bus_time;
++ return USB_ERR_SUCCESS;
++ }
++ else
++ {
++ return USB_ERR_FAIL;
++ }
++
++ case LOW_SPEED_OTG:
++ case FULL_SPEED_OTG:
++ if((bus_time+perio_used_bustime)<=perio_fullbustime_threshold)
++ {
++ perio_used_bustime=+bus_time;
++ return USB_ERR_SUCCESS;
++ }
++ else
++ {
++ return USB_ERR_FAIL;
++ }
++ case SUPER_SPEED_OTG:
++ break;
++ default:
++ break;
++ }
++ return USB_ERR_FAIL;
++}
++
++int dec_perio_bus_time(u32 bus_time)
++{
++ if(perio_used_bustime >= bus_time )
++ {
++ perio_used_bustime =- bus_time;
++ return USB_ERR_SUCCESS;
++ }
++ else
++ {
++ return USB_ERR_FAIL;
++ }
++}
++
++int inc_perio_chnum(void)
++{
++ if(perio_used_chnum<perio_chnum_threshold)
++ {
++ if(total_used_chnum<total_chnum_threshold)
++ {
++ perio_used_chnum++;
++ total_used_chnum++;
++ return USB_ERR_SUCCESS;
++ }
++ }
++ return USB_ERR_FAIL;
++}
++
++u8 get_avail_chnum(void)
++{
++ return total_chnum_threshold - total_used_chnum;
++}
++
++int dec_perio_chnum(void)
++{
++ if(perio_used_chnum>0)
++ {
++ if(total_used_chnum>0)
++ {
++ perio_used_chnum--;
++ total_used_chnum--;
++ return USB_ERR_SUCCESS;
++ }
++ }
++ return USB_ERR_FAIL;
++}
++
++int inc_non_perio_chnum(void)
++{
++ if(nonperio_used_chnum<total_chnum_threshold)
++ {
++ if(total_used_chnum<total_chnum_threshold)
++ {
++ nonperio_used_chnum++;
++ total_used_chnum++;
++ return USB_ERR_SUCCESS;
++ }
++ }
++ return USB_ERR_FAIL;
++}
++
++int dec_nonperio_chnum(void)
++{
++ if(nonperio_used_chnum>0)
++ {
++ if(total_used_chnum>0)
++ {
++ nonperio_used_chnum--;
++ total_used_chnum--;
++ return USB_ERR_SUCCESS;
++ }
++ }
++ return USB_ERR_FAIL;
++}
++
++int get_transferring_td_array(u8 chnum, unsigned int *td_addr)
++{
++ if(transferring_td_array[chnum]!=0)
++ {
++ *td_addr = transferring_td_array[chnum];
++ return USB_ERR_SUCCESS;
++ }
++
++ return USB_ERR_FAIL;
++}
++
++int set_transferring_td_array(u8 chnum, u32 td_addr)
++{
++ if(td_addr ==0)
++ {
++ transferring_td_array[chnum] = td_addr;
++ return USB_ERR_SUCCESS;
++ }
++
++ if(transferring_td_array[chnum] == 0)
++ {
++ transferring_td_array[chnum] = td_addr;
++ return USB_ERR_SUCCESS;
++ }
++ else
++ {
++ return USB_ERR_FAIL;
++ }
++}
++
++/******************************************************************************/
++/*!
++ * @name int insert_ed_to_scheduler(ed_t *insert_ed)
++ *
++ * @brief this function transfers the insert_ed to S3C6400Scheduler, and
++ * after that, the insert_ed is inserted to TransferReadyQ and scheduled by Scheduler.
++ *
++ *
++ * @param [IN] insert_ed = indicates pointer of ed_t to be inserted to TransferReadyQ.
++ *
++ * @return USB_ERR_ALREADY_EXIST - if the insert_ed is already existed.
++ * USB_ERR_SUCCESS - if success to insert insert_ed to S3CScheduler.
++ */
++/******************************************************************************/
++int insert_ed_to_scheduler(ed_t *insert_ed)
++{
++ if(!insert_ed->is_need_to_insert_scheduler)
++ {
++ return USB_ERR_ALREADY_EXIST;
++ }
++
++ insert_ed_to_ready_q(insert_ed, false);
++ insert_ed->is_need_to_insert_scheduler = false;
++ insert_ed->ed_status.is_in_transfer_ready_q = true;
++
++ do_periodic_schedule();
++ do_nonperiodic_schedule();
++
++ return USB_ERR_SUCCESS;
++}
++
++/******************************************************************************/
++/*!
++ * @name int do_periodic_schedule(void)
++ *
++ * @brief this function schedules PeriodicTransferReadyQ.
++ * this function checks whether PeriodicTransferReadyQ has some ed_t.
++ * if there are some ed_t on PeriodicTransferReadyQ
++ * , this function request to start USB Trasnfer to S3C6400OCI.
++ *
++ *
++ * @param void
++ *
++ * @return void
++ */
++/******************************************************************************/
++void do_periodic_schedule(void)
++{
++ ed_t *scheduling_ed= NULL;
++ int err_sched = USB_ERR_SUCCESS;
++ u32 sched_cnt = 0;
++
++ otg_dbg(OTG_DBG_SCHEDULE,"*******Start to DoPeriodicSchedul*********\n");
++
++ sched_cnt = get_periodic_ready_q_entity_num();
++
++ while(sched_cnt)
++ {
++
++ //in periodic transfser, the channel resource was already reserved.
++ //So, we don't need this routine...
++
++start_sched_perio_transfer:
++ if(!sched_cnt)
++ goto end_sched_perio_transfer;
++
++ err_sched = get_ed_from_ready_q(true, &scheduling_ed);
++
++ if(err_sched==USB_ERR_SUCCESS)
++ {
++ otg_list_head *td_list_entry;
++ td_t *td;
++ u32 cur_frame_num = 0;
++
++ otg_dbg(OTG_DBG_SCHEDULE,"the ed_t to be scheduled :%d",(int)scheduling_ed);
++ sched_cnt--;
++ td_list_entry = scheduling_ed->td_list_entry.next;
++
++ if(td_list_entry == &scheduling_ed->td_list_entry)
++ {
++ //scheduling_ed has no td_t. so we schedules another ed_t on PeriodicTransferReadyQ.
++ goto start_sched_perio_transfer;
++ }
++
++ if(scheduling_ed->ed_status.is_in_transferring)
++ {
++ //scheduling_ed is already Scheduled. so we schedules another ed_t on PeriodicTransferReadyQ.
++ goto start_sched_perio_transfer;
++ }
++
++ cur_frame_num = oci_get_frame_num();
++
++ if(((cur_frame_num-scheduling_ed->ed_desc.sched_frame)&HFNUM_MAX_FRNUM)>(HFNUM_MAX_FRNUM>>1))
++ {
++ insert_ed_to_ready_q(scheduling_ed, false);
++ goto start_sched_perio_transfer;
++ }
++
++ td = otg_list_get_node(td_list_entry, td_t, td_list_entry);
++
++ if((!td->is_transferring) && (!td->is_transfer_done))
++ {
++ u8 alloc_ch;
++ otg_dbg(OTG_DBG_SCHEDULE,"the td_t to be scheduled :%d",(int)td);
++ alloc_ch = oci_start_transfer(&td->cur_stransfer);
++ if(alloc_ch<total_chnum_threshold)
++ {
++ td->cur_stransfer.alloc_chnum = alloc_ch;
++ transferring_td_array[alloc_ch] = (u32)td;
++
++ scheduling_ed->ed_status.is_in_transferring = true;
++ scheduling_ed->ed_status.is_in_transfer_ready_q = false;
++ scheduling_ed->ed_status.in_transferring_td = (u32)td;
++
++ td->is_transferring = true;
++ }
++ else
++ {
++ //we should insert the ed_t to TransferReadyQ, because the USB Transfer of the ed_t is failed.
++ scheduling_ed->ed_status.is_in_transferring = false;
++ scheduling_ed->ed_status.is_in_transfer_ready_q = true;
++ scheduling_ed->ed_status.in_transferring_td = 0;
++
++ insert_ed_to_ready_q(scheduling_ed,true);
++
++ scheduling_ed->is_need_to_insert_scheduler = false;
++ goto end_sched_perio_transfer;
++ }
++
++ }
++ else
++ { // the selected td_t was already transferring or completed to transfer.
++ //we should decide how to control this case.
++ goto end_sched_perio_transfer;
++ }
++
++
++ }
++ else
++ {
++ // there is no ED on PeriodicTransferQ. So we finish scheduling.
++ goto end_sched_perio_transfer;
++ }
++ }
++
++end_sched_perio_transfer:
++
++ return;
++}
++
++
++/******************************************************************************/
++/*!
++ * @name int do_nonperiodic_schedule(void)
++ *
++ * @brief this function start to schedule thie NonPeriodicTransferReadyQ.
++ * this function checks whether NonPeriodicTransferReadyQ has some ed_t.
++ * if there are some ed_t on NonPeriodicTransferReadyQ
++ * , this function request to start USB Trasnfer to S3C6400OCI.
++ *
++ *
++ * @param void
++ *
++ * @return void
++ */
++/******************************************************************************/
++void do_nonperiodic_schedule(void)
++{
++ if(total_used_chnum<total_chnum_threshold)
++ {
++ ed_t *scheduling_ed;
++ int err_sched;
++
++ while(1)
++ {
++
++start_sched_nonperio_transfer:
++
++ //check there is available channel resource for Non-Periodic Transfer.
++ if(total_used_chnum==total_chnum_threshold)
++ {
++ goto end_sched_nonperio_transfer;
++ }
++
++ err_sched = get_ed_from_ready_q(false, &scheduling_ed);
++
++ if(err_sched ==USB_ERR_SUCCESS )
++ {
++ otg_list_head *td_list_entry;
++ td_t *td;
++
++ td_list_entry = scheduling_ed->td_list_entry.next;
++
++ //if(td_list_entry == &scheduling_ed->td_list_entry)
++ if(otg_list_empty(&scheduling_ed->td_list_entry))
++ {
++ //scheduling_ed has no td_t. so we schedules another ed_t on PeriodicTransferReadyQ.
++ goto start_sched_nonperio_transfer;
++ }
++
++ if(scheduling_ed->ed_status.is_in_transferring)
++ {
++ //scheduling_ed is already Scheduled. so we schedules another ed_t on PeriodicTransferReadyQ.
++ goto start_sched_nonperio_transfer;
++ }
++
++ td = otg_list_get_node(td_list_entry, td_t, td_list_entry);
++
++ if((!td->is_transferring) && (!td->is_transfer_done))
++ {
++ u8 alloc_ch;
++
++ alloc_ch =oci_start_transfer(&td->cur_stransfer);
++
++ if(alloc_ch<total_chnum_threshold)
++ {
++ td->cur_stransfer.alloc_chnum = alloc_ch;
++ transferring_td_array[alloc_ch] = (u32)td;
++
++ inc_non_perio_chnum();
++
++ scheduling_ed->ed_status.is_in_transferring = true;
++ scheduling_ed->ed_status.is_in_transfer_ready_q = false;
++ scheduling_ed->ed_status.in_transferring_td =(u32)td;
++ td->is_transferring = true;
++ }
++ else
++ {
++ //we should insert the ed_t to TransferReadyQ, because the USB Transfer of the ed_t is failed.
++ scheduling_ed->ed_status.is_in_transferring = false;
++ scheduling_ed->ed_status.in_transferring_td =0;
++ insert_ed_to_ready_q(scheduling_ed,true);
++ scheduling_ed->ed_status.is_in_transfer_ready_q = true;
++
++ goto end_sched_nonperio_transfer;
++ }
++ }
++ else
++ {
++ goto end_sched_nonperio_transfer;
++ }
++ }
++ else
++ { //there is no ed_t on NonPeriodicTransferReadyQ.
++ //So, we finish do_nonperiodic_schedule().
++ goto end_sched_nonperio_transfer;
++ }
++ }
++ }
++
++end_sched_nonperio_transfer:
++
++ return;
++}
++
++
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-scheduler-scheduler.h b/drivers/usb/host/s3c-otg/s3c-otg-scheduler-scheduler.h
+new file mode 100644
+index 0000000..5b7e553
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-scheduler-scheduler.h
+@@ -0,0 +1,103 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : Scheduler.h
++ * [Description] : The Header file defines the external and internal functions of Scheduler.
++ * [Author] : Yang Soon Yeal { syatom.yang@samsung.com }
++ * [Department] : System LSI Division/System SW Lab
++ * [Created Date]: 2008/06/03
++ * [Revision History]
++ * (1) 2008/06/03 by Yang Soon Yeal { syatom.yang@samsung.com }
++ * - Created this file and defines functions of Scheduler
++ * -# Jul 15,2008 v1.2 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Optimizing for performance \n
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#ifndef _SCHEDULER_H
++#define _SCHEDULER_H
++
++/*
++// ----------------------------------------------------------------------------
++// Include files : None.
++// ----------------------------------------------------------------------------
++*/
++//#include "s3c-otg-common-typedef.h"
++#include "s3c-otg-common-const.h"
++#include "s3c-otg-common-errorcode.h"
++#include "s3c-otg-common-datastruct.h"
++#include "s3c-otg-hcdi-memory.h"
++#include "s3c-otg-hcdi-kal.h"
++#include "s3c-otg-hcdi-debug.h"
++#include "s3c-otg-oci.h"
++
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++
++
++//Defines external functions of IScheduler.c
++extern void init_scheduler(void);
++//extern int insert_ed_to_scheduler(ed_t *insert_ed);
++extern int reserve_used_resource_for_periodic(u32 usb_time,u8 dev_speed, u8 trans_type);
++extern int free_usb_resource_for_periodic(u32 free_usb_time, u8 free_chnum, u8 trans_type);
++extern int remove_ed_from_scheduler(ed_t *remove_ed);
++extern int cancel_to_transfer_td(td_t *cancel_td);
++extern int retransmit(td_t *retransmit_td);
++extern int reschedule(td_t *resched_td);
++extern int deallocate(td_t *dealloc_td);
++extern void do_schedule(void);
++
++extern int get_td_info(u8 chnum,unsigned int *td_addr);
++
++
++// Defines functiions of TranferReadyQ.
++void init_transfer_ready_q(void);
++int insert_ed_to_ready_q(ed_t *insert_ed, bool f_isfirst);
++int remove_ed_from_ready_q(ed_t *remove_ed);
++int get_ed_from_ready_q(bool f_isperiodic, ed_t **get_ed);
++
++//Define functions of Scheduler
++void do_periodic_schedule(void);
++void do_nonperiodic_schedule(void);
++int set_transferring_td_array(u8 chnum, u32 td_addr);
++int get_transferring_td_array(u8 chnum, unsigned int *td_addr);
++
++
++//Define fuctions to manage some static global variable.
++int inc_perio_bus_time(u32 uiBusTime, u8 dev_speed);
++int dec_perio_bus_time(u32 uiBusTime);
++
++u8 get_avail_chnum(void);
++int inc_perio_chnum(void);
++int dec_perio_chnum(void);
++int inc_non_perio_chnum(void);
++int dec_nonperio_chnum(void);
++u32 get_periodic_ready_q_entity_num(void);
++
++int insert_ed_to_scheduler(ed_t * insert_ed);
++
++
++#ifdef __cplusplus
++}
++#endif
++
++
++#endif
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-transfer-common.c b/drivers/usb/host/s3c-otg/s3c-otg-transfer-common.c
+new file mode 100644
+index 0000000..6cce851
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-transfer-common.c
+@@ -0,0 +1,838 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : Commons3c-otg-transfer-transfer.h
++ * [Description] : This source file implements the functions to be defined at CommonTransfer Module.
++ * [Author] : Yang Soon Yeal { syatom.yang@samsung.com }
++ * [Department] : System LSI Division/System SW Lab
++ * [Created Date]: 2008/06/03
++ * [Revision History]
++ * (1) 2008/06/03 by Yang Soon Yeal { syatom.yang@samsung.com }
++ * - Created this file and implements some functions of CommonTransfer.
++ * (2) 2008/07/15 by SeungSoo Yang ( ss1.yang@samsung.com )n
++ * - Optimizing for performance \n
++ * (3) 2008/08/18 by SeungSoo Yang ( ss1.yang@samsung.com )
++ * - Modifying for successful rmmod & disconnecting \n
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#include "s3c-otg-transfer-transfer.h"
++
++// the header pointer to indicate the ED_list to manage the ed_t to be created and initiated.
++otg_list_head ed_list_head;
++u32 ref_periodic_transfer;
++
++/******************************************************************************/
++/*!
++ * @name void init_transfer(void)
++ *
++ * @brief this function initiates the S3CTranfer module. that is, this functions initiates
++ * the ED_list_head OTG List which manages the all ed_t to be existed.
++ *
++ * @param void
++ *
++ * @return void
++ */
++/******************************************************************************/
++
++void init_transfer(void)
++{
++ otg_dbg(OTG_DBG_TRANSFER,"start to init_transfer\n");
++ otg_list_init(&ed_list_head);
++ ref_periodic_transfer = 0;
++
++}
++
++
++/******************************************************************************/
++/*!
++ * @name void DeInitTransfer(void)
++ *
++ * @brief this function Deinitiates the S3CTranfer module. this functions check which there are
++ * some ed_t on ED_list_head. if some ed_t exists, deinit_transfer() deletes the ed_t.
++ *
++ *
++ * @param void
++ *
++ * @return void
++ */
++/******************************************************************************/
++void deinit_transfer(void)
++{
++ otg_list_head *ed_list_member;
++ ed_t *delete_ed_p;
++
++ while(otg_list_empty(&ed_list_head) != true)
++ {
++ ed_list_member = ed_list_head.next;
++
++ // otg_list_pop(ed_list_member);
++
++ delete_ed_p= otg_list_get_node(ed_list_member,ed_t,ed_list_entry);
++
++ delete_ed(delete_ed_p);
++ }
++}
++
++
++/******************************************************************************/
++/*!
++ * @name int delete_ed(ed_t *delete_ed)
++ *
++ * @brief this function delete the delete_ed.
++ * if there is some available TD_ts on delete_ed, then this function also deletes these td_t
++ *
++ *
++ * @param [IN] delete_ed = indicates the address of ed_t to be deleted.
++ *
++ * @return USB_ERR_SUCCESS -if successes to delete the ed_t.
++ * USB_ERR_FAILl -if fails to delete the ed_t.
++ */
++/******************************************************************************/
++int delete_ed(ed_t *delete_ed)
++{
++ otg_kal_make_ep_null(delete_ed);
++
++ if(delete_ed->num_td)
++ {
++ cancel_all_td(delete_ed);
++/**
++ need to giveback of td's urb with considering life-cycle of
++ TD, ED, urb->hcpriv, td->private, ep->hcpriv, td->parentED
++ (commented by ss1.yang)
++*/
++ }
++
++ otg_list_pop(&delete_ed->ed_list_entry);
++
++ if(delete_ed->ed_desc.endpoint_type == INT_TRANSFER ||
++ delete_ed->ed_desc.endpoint_type == ISOCH_TRANSFER)
++ {
++ ref_periodic_transfer--;
++ }
++
++ if(ref_periodic_transfer==0)
++ {
++ disable_sof();
++ }
++ otg_mem_free(delete_ed);
++
++ return USB_ERR_SUCCESS;
++}
++
++
++/******************************************************************************/
++/*!
++ * @name int delete_td(td_t *delete_td)
++ *
++ * @brief this function frees memory resource for the delete_td.
++ * and if delete_td is transferring USB Transfer, then this function request to cancel
++ * the USB Transfer to S3CScheduler.
++ *
++ *
++ * @param [OUT] new_td_p = returns the address of the new td_t .
++ *
++ * @return USB_ERR_SUCCESS -if successes to create the new td_t.
++ * USB_ERR_FAILl -if fails to create to new td_t.
++ */
++/******************************************************************************/
++int delete_td(td_t *delete_td)
++{
++
++ if(delete_td->is_transferring)
++ {
++ //at this case, we should cancel the USB Transfer.
++ cancel_to_transfer_td(delete_td);
++ }
++
++ otg_mem_free(delete_td);
++ return USB_ERR_SUCCESS;
++}
++
++
++int create_isoch_packet_desc( isoch_packet_desc_t **new_isoch_packet_desc,
++ u32 isoch_packet_num)
++{
++ return otg_mem_alloc((void **)new_isoch_packet_desc, (u16)sizeof(isoch_packet_desc_t)*isoch_packet_num,USB_MEM_SYNC);
++}
++
++int delete_isoch_packet_desc( isoch_packet_desc_t *del_isoch_packet_desc,
++ u32 isoch_packet_num)
++{
++ return otg_mem_free(del_isoch_packet_desc);
++}
++
++
++/******************************************************************************/
++/*!
++ * @name void init_isoch_packet_desc( isoch_packet_desc_t *init_isoch_packet_desc,
++ * u32 isoch_packet_start_addr,
++ * u32 isoch_packet_size,
++ * u32 index)
++ *
++ * @brief this function initiates the isoch_packet_desc_t[index].
++ *
++ *
++ * @param [OUT] init_isoch_packet_desc = indicates the pointer of IsochPackDesc_t to be initiated.
++ * [IN] isoch_packet_start_addr = indicates the start address of the buffer to be used
++ * at USB Isochronous Transfer.
++ * [IN] isoch_packet_size = indicates the size of Isochronous packet.
++ * [IN] index = indicates the index to be mapped with this init_isoch_packet_desc.
++ *
++ * @return void
++ */
++/******************************************************************************/
++void init_isoch_packet_desc( isoch_packet_desc_t *init_isoch_packet_desc,
++ u32 isoch_packet_start_addr,
++ u32 isoch_packet_size,
++ u32 index)
++{
++
++ init_isoch_packet_desc[index].buf_size = isoch_packet_size;
++ init_isoch_packet_desc[index].isoch_packiet_start_addr = isoch_packet_start_addr;
++ init_isoch_packet_desc[index].isoch_status = 0;
++ init_isoch_packet_desc[index].transferred_szie = 0;
++
++
++}
++
++/******************************************************************************/
++/*!
++ * @name int create_ed(ed_t **new_ed)
++ *
++ * @brief this function creates a new ed_t and returns the ed_t to Caller
++ *
++ *
++ * @param [OUT] new_ed = returns the address of the new ed_t .
++ *
++ * @return USB_ERR_SUCCESS -if successes to create the new ed_t.
++ * USB_ERR_FAILl -if fails to create to new ed_t.
++ */
++/******************************************************************************/
++int create_ed(ed_t **new_ed)
++{
++ int err_code = USB_ERR_SUCCESS;
++
++ err_code = otg_mem_alloc((void **)new_ed,(u16)sizeof(ed_t), USB_MEM_SYNC);
++ otg_mem_set(*new_ed, 0, sizeof(ed_t));
++ return err_code;
++}
++
++
++/******************************************************************************/
++/*!
++ * @name int init_ed( ed_t *init_ed,
++ * u8 dev_addr,
++ * u8 ep_num,
++ * bool f_is_ep_in,
++ * u8 dev_speed,
++ * u8 ep_type,
++ * u32 max_packet_size,
++ * u8 multi_count,
++ * u8 interval,
++ * u32 sched_frame,
++ * u8 hub_addr,
++ * u8 hub_port,
++ * bool f_is_do_split)
++ *
++ * @brief this function initiates the init_ed by using the another parameters.
++ *
++ *
++ * @param [OUT] init_ed = returns the ed_t to be initiated.
++ * [IN] dev_addr = inidcates the address of USB Device.
++ * [IN] ep_num = inidcates the number of the specific endpoint on USB Device.
++ * [IN] f_is_ep_in = inidcates whether the endpoint is IN or not
++ * [IN] dev_speed = inidcates the speed of USB Device.
++ * [IN] max_packet_size = inidcates the maximum packet size of a specific endpoint on USB Device.
++ * [IN] multi_count = if the endpoint supports periodic transfer
++ * , this indicates the multiple packet to be transferred on a uframe
++ * [IN] interval= if the endpoint support periodic transfer, this indicates the polling rate.
++ * [IN] sched_frame= if the endpoint supports periodic transfer, this indicates the start frame number.
++ * [IN] hub_addr= indicate the address of hub which the USB device attachs to.
++ * [IN] hub_port= inidcates the port number of the hub which the USB device attachs to.
++ * [IN] f_is_do_split= inidcates whether this tranfer is split transaction or not.
++ *
++ * @return USB_ERR_SUCCESS -if successes to initiate the ed_t.
++ * USB_ERR_FAILl -if fails to initiate the ed_t.
++ * USB_ERR_NOSPACE -if fails to initiate the ed_t
++ * because there is no USB Resource for this init_ed.
++ */
++/******************************************************************************/
++int init_ed(ed_t *init_ed,
++ u8 dev_addr,
++ u8 ep_num,
++ bool f_is_ep_in,
++ u8 dev_speed,
++ u8 ep_type,
++ u16 max_packet_size,
++ u8 multi_count,
++ u8 interval,
++ u32 sched_frame,
++ u8 hub_addr,
++ u8 hub_port,
++ bool f_is_do_split,
++ void *ep)
++{
++ init_ed->is_halted = false;
++ init_ed->is_need_to_insert_scheduler= true;
++ init_ed->ed_id = (u32)init_ed;
++ init_ed->num_td = 0;
++ init_ed->ed_private = ep;
++
++ otg_list_init(&init_ed->td_list_entry);
++
++ //start to initiate struct ed_desc....
++ init_ed->ed_desc.is_do_split = f_is_do_split;
++ init_ed->ed_desc.is_ep_in = f_is_ep_in;
++ init_ed->ed_desc.dev_speed = dev_speed;
++ init_ed->ed_desc.hub_addr = hub_addr;
++ init_ed->ed_desc.hub_port = hub_port;
++ init_ed->ed_desc.mc = multi_count;
++ init_ed->ed_desc.device_addr = dev_addr;
++ init_ed->ed_desc.endpoint_num = ep_num;
++ init_ed->ed_desc.endpoint_type = ep_type;
++ init_ed->ed_desc.max_packet_size = max_packet_size;
++ init_ed->ed_desc.sched_frame = sched_frame;
++
++ if(init_ed->ed_desc.endpoint_type == INT_TRANSFER)
++ {
++ if(init_ed->ed_desc.dev_speed == LOW_SPEED_OTG ||init_ed->ed_desc.dev_speed == FULL_SPEED_OTG)
++ {
++ init_ed->ed_desc.interval =interval;
++ }
++ else if(init_ed->ed_desc.dev_speed == HIGH_SPEED_OTG)
++ {
++ u8 count = 0;
++ u8 cal_interval = 1;
++
++ for(count = 0;count<(init_ed->ed_desc.interval-1);count++)
++ {
++ cal_interval *=2;
++ }
++
++ init_ed->ed_desc.interval =cal_interval;
++ }
++ else
++ {
++ otg_dbg(OTG_DBG_TRANSFER,"Super-Speed is not supported\n");
++ }
++ init_ed->ed_desc.sched_frame = (SCHEDULE_SLOT+oci_get_frame_num())&HFNUM_MAX_FRNUM;
++ ref_periodic_transfer++;
++ }
++ if(init_ed->ed_desc.endpoint_type==ISOCH_TRANSFER)
++ {
++ u8 count = 0;
++ u8 cal_interval = 1;
++
++ for(count = 0;count<(init_ed->ed_desc.interval-1);count++)
++ {
++ cal_interval *=2;
++ }
++
++ init_ed->ed_desc.interval = cal_interval;
++ init_ed->ed_desc.sched_frame = (SCHEDULE_SLOT+oci_get_frame_num())&HFNUM_MAX_FRNUM;
++ ref_periodic_transfer++;
++ }
++
++ //start to initiate struct ed_status....
++
++ //initiates PID
++ switch(ep_type)
++ {
++ case BULK_TRANSFER:
++ case INT_TRANSFER:
++ init_ed->ed_status.data_tgl = DATA0;
++ break;
++
++ case CONTROL_TRANSFER:
++ init_ed->ed_status.control_data_tgl.setup_tgl = SETUP;
++ init_ed->ed_status.control_data_tgl.data_tgl = DATA1;
++ init_ed->ed_status.control_data_tgl.status_tgl = DATA1;
++ break;
++
++ case ISOCH_TRANSFER:
++ if(f_is_ep_in)
++ {
++ switch(multi_count)
++ {
++ case MULTI_COUNT_ZERO :
++ init_ed->ed_status.data_tgl = DATA0;
++ break;
++ case MULTI_COUNT_ONE :
++ init_ed->ed_status.data_tgl = DATA1;
++ break;
++ case MULTI_COUNT_TWO :
++ init_ed->ed_status.data_tgl = DATA2;
++ break;
++ default:break;
++ }
++ }
++ else
++ {
++ switch(multi_count)
++ {
++ case MULTI_COUNT_ZERO :
++ init_ed->ed_status.data_tgl = DATA0;
++ break;
++ case MULTI_COUNT_ONE :
++ init_ed->ed_status.data_tgl = MDATA;
++ break;
++ case MULTI_COUNT_TWO :
++ init_ed->ed_status.data_tgl = MDATA;
++ break;
++ default:break;
++ }
++ }
++ break;
++ default:
++ break;
++
++ }
++
++ if(init_ed->ed_desc.endpoint_type == INT_TRANSFER ||
++ init_ed->ed_desc.endpoint_type == ISOCH_TRANSFER)
++ {
++ u32 usb_time = 0, byte_count = 0;
++
++ //calculates the bytes to be transferred at one (uframe)frame.
++ byte_count = (init_ed->ed_desc.mc+1)*init_ed->ed_desc.max_packet_size;
++
++ usb_time = (u32)otg_usbcore_get_calc_bustime(init_ed->ed_desc.dev_speed,
++ init_ed->ed_desc.is_ep_in,
++ (init_ed->ed_desc.endpoint_type==ISOCH_TRANSFER?true:false),
++ byte_count);
++ usb_time /= 1000; //convert nanosec unit to usec unit
++
++ if(reserve_used_resource_for_periodic(usb_time, init_ed->ed_desc.dev_speed, init_ed->ed_desc.endpoint_type)!=USB_ERR_SUCCESS)
++ {
++ return USB_ERR_NOSPACE;
++ }
++
++ init_ed->ed_status.is_alloc_resource_for_ed =true;
++ init_ed->ed_desc.used_bus_time =usb_time;
++ init_ed->ed_desc.mc =multi_count+1;
++ }
++
++ init_ed->ed_status.is_in_transfer_ready_q =false;
++ init_ed->ed_status.is_in_transferring =false;
++ init_ed->ed_status.is_ping_enable =false;
++ init_ed->ed_status.in_transferring_td =0;
++
++ //push the ed_t to ED_list.
++ otg_list_push_prev(&init_ed->ed_list_entry,&ed_list_head);
++
++ if(ref_periodic_transfer)
++ {
++ enable_sof();
++ }
++ return USB_ERR_SUCCESS;
++}
++
++
++/******************************************************************************/
++/*!
++ * @name int create_td(td_t **new_td)
++ *
++ * @brief this function creates a new td_t and returns the td_t to Caller
++ *
++ *
++ * @param [OUT] new_td = returns the address of the new td_t .
++ *
++ * @return USB_ERR_SUCCESS -if successes to create the new td_t.
++ * USB_ERR_FAILl -if fails to create to new td_t.
++ */
++/******************************************************************************/
++int create_td(td_t **new_td)
++{
++ int err_code = USB_ERR_SUCCESS;
++
++ err_code = otg_mem_alloc((void **)new_td,(u16)sizeof(td_t), USB_MEM_SYNC);
++ otg_mem_set(*new_td, 0, sizeof(td_t));
++ return err_code;
++}
++
++
++/******************************************************************************/
++/*!
++ * @name int init_td( td_t *init_td,
++ * ed_t *parent_ed,
++ * void *call_back_fun,
++ * void *call_back_param,
++ * u32 transfer_flag,
++ * bool f_is_standard_dev_req,
++ * u32 phy_setup,
++ * u32 vir_setup,
++ * u32 vir_buf_addr,
++ * u32 phy_buf_addr,
++ * u32 buf_size,
++ * u32 isoch_start_frame,
++ * isoch_packet_desc_t *isoch_packet_desc,
++ * u32 isoch_packet_num,
++ * void *td_priv)
++ *
++ * @brief this function initiates the init_td by using another parameter.
++ *
++ *
++ * @param [IN] init_td - indicate the td_t to be initiated.
++ * [IN] parent_ed - indicate the ed_t to manage this init_td
++ * [IN] call_back_func - indicate the call-back function of application.
++ * [IN] call_back_param - indicate the parameter of the call-back function.
++ * [IN] transfer_flag - indicate the transfer flag.
++ * [IN] f_is_standard_dev_req - indicates the issue transfer request is USB Standard Request
++ * [IN] phy_setup - the physical address of buffer to store the USB Standard Request.
++ * [IN] vir_setup - the virtual address of buffer to store the USB Standard Request.
++ * [IN] vir_buf_addr - the virtual address of buffer to store the data to be transferred or received.
++ * [IN] phy_buf_addr - the physical address of buffer to store the data to be transferred or received.
++ * [IN] buf_size - indicates the buffer size.
++ * [IN] isoch_start_frame - if this usb transfer is isochronous transfer
++ * , this indicates the start frame to start the usb transfer.
++ * [IN] isoch_packet_desc - if the usb transfer is isochronous transfer
++ * , this indicates the structure to describe the isochronous transfer.
++ * [IN] isoch_packet_num - if the usb transfer is isochronous transfer
++ * , this indicates the number of packet to consist of the usb transfer.
++ * [IN] td_priv - indicate the private data to be delivered from usb core of linux.
++ * td_priv stores the urb of linux.
++ *
++ * @return USB_ERR_SUCCESS -if successes to initiate the new td_t.
++ * USB_ERR_FAILl -if fails to create to new td_t.
++ */
++/******************************************************************************/
++int init_td( td_t *init_td,
++ ed_t *parent_ed,
++ void *call_back_fun,
++ void *call_back_param,
++ u32 transfer_flag,
++ bool f_is_standard_dev_req,
++ u32 phy_setup,
++ u32 vir_setup,
++ u32 vir_buf_addr,
++ u32 phy_buf_addr,
++ u32 buf_size,
++ u32 isoch_start_frame,
++ isoch_packet_desc_t *isoch_packet_desc,
++ u32 isoch_packet_num,
++ void *td_priv)
++{
++ if(f_is_standard_dev_req)
++ {
++ if((phy_buf_addr>0) && (buf_size>0))
++ {
++ init_td->standard_dev_req_info.is_data_stage = true;
++ }
++ else
++ {
++ init_td->standard_dev_req_info.is_data_stage = false;
++ }
++ init_td->standard_dev_req_info.conrol_transfer_stage = SETUP_STAGE;
++ init_td->standard_dev_req_info.phy_standard_dev_req_addr = phy_setup;
++ init_td->standard_dev_req_info.vir_standard_dev_req_addr = vir_setup;
++ }
++
++ init_td->call_back_func_p = call_back_fun;
++ init_td->call_back_func_param_p = call_back_param;
++ init_td->error_code = USB_ERR_SUCCESS;
++ init_td->is_standard_dev_req = f_is_standard_dev_req;
++ init_td->is_transfer_done = false;
++ init_td->is_transferring = false;
++ init_td->td_private = td_priv;
++ init_td->err_cnt = 0;
++ init_td->parent_ed_p = parent_ed;
++ init_td->phy_buf_addr = phy_buf_addr;
++ init_td->vir_buf_addr = vir_buf_addr;
++ init_td->buf_size = buf_size;
++ init_td->isoch_packet_desc_p = isoch_packet_desc;
++ init_td->isoch_packet_num = isoch_packet_num;
++ init_td->isoch_packet_index = 0;
++ init_td->isoch_packet_position = 0;
++ init_td->sched_frame = isoch_start_frame;
++ init_td->used_total_bus_time = parent_ed->ed_desc.used_bus_time;
++ init_td->td_id = (u32)init_td;
++ init_td->transfer_flag = transfer_flag;
++ init_td->transferred_szie = 0;
++
++ switch(parent_ed->ed_desc.endpoint_type)
++ {
++ case CONTROL_TRANSFER:
++ init_nonperio_stransfer(true, init_td);
++ break;
++
++ case BULK_TRANSFER:
++ init_nonperio_stransfer(false, init_td);
++ break;
++
++ case INT_TRANSFER:
++ init_perio_stransfer(false, init_td);
++ break;
++
++ case ISOCH_TRANSFER:
++ init_perio_stransfer(true, init_td);
++ break;
++
++ default:
++ return USB_ERR_FAIL;
++ }
++
++ //insert the td_t to parent_ed->td_list_entry.
++ otg_list_push_prev(&init_td->td_list_entry,&parent_ed->td_list_entry);
++ parent_ed->num_td++;
++
++ return USB_ERR_SUCCESS;
++}
++
++/******************************************************************************/
++/*!
++ * @name int issue_transfer(ed_t *parent_ed,
++ * void *call_back_func,
++ * void *call_back_param,
++ * u32 transfer_flag,
++ * bool f_is_standard_dev_req,
++ * u32 setup_vir_addr,
++ * u32 setup_phy_addr,
++ * u32 vir_buf_addr,
++ * u32 phy_buf_addr,
++ * u32 buf_size,
++ * u32 start_frame,
++ * u32 isoch_packet_num,
++ * isoch_packet_desc_t *isoch_packet_desc,
++ * void *td_priv,
++ * unsigned int *return_td_addr)
++ *
++ * @brief this function start USB Transfer
++ *
++ *
++ * @param [IN] parent_ed - indicate the ed_t to manage this issue transfer.
++ * [IN] call_back_func - indicate the call-back function of application.
++ * [IN] call_back_param - indicate the parameter of the call-back function.
++ * [IN] transfer_flag - indicate the transfer flag.
++ * [IN] f_is_standard_dev_req - indicates the issue transfer request is USB Standard Request
++ * [IN] setup_vir_addr - the virtual address of buffer to store the USB Standard Request.
++ * [IN] setup_phy_addr - the physical address of buffer to store the USB Standard Request.
++ * [IN] vir_buf_addr - the virtual address of buffer to store the data to be transferred or received.
++ * [IN] phy_buf_addr - the physical address of buffer to store the data to be transferred or received.
++ * [IN] buf_size - indicates the buffer size.
++ * [IN] start_frame - if this usb transfer is isochronous transfer
++ * , this indicates the start frame to start the usb transfer.
++ * [IN] isoch_packet_num - if the usb transfer is isochronous transfer
++ * , this indicates the number of packet to consist of the usb transfer.
++ * [IN] isoch_packet_desc - if the usb transfer is isochronous transfer
++ * , this indicates the structure to describe the isochronous transfer.
++ * [IN] td_priv - indicate the private data to be delivered from usb core of linux.
++ * td_priv stores the urb of linux.
++ * [OUT] return_td_addr - indicates the variable address to store the new td_t for this transfer
++ *
++ * @return USB_ERR_SUCCESS -if successes to initiate the new td_t.
++ * USB_ERR_FAILl -if fails to create to new td_t.
++ */
++/******************************************************************************/
++int issue_transfer(ed_t *parent_ed,
++ void *call_back_func,
++ void *call_back_param,
++ u32 transfer_flag,
++ bool f_is_standard_dev_req,
++ u32 setup_vir_addr,
++ u32 setup_phy_addr,
++ u32 vir_buf_addr,
++ u32 phy_buf_addr,
++ u32 buf_size,
++ u32 start_frame,
++ u32 isoch_packet_num,
++ isoch_packet_desc_t *isoch_packet_desc,
++ void *td_priv,
++ unsigned int *return_td_addr)
++{
++ td_t *new_td_p = NULL;
++
++ int err = USB_ERR_SUCCESS;
++ if(create_td(&new_td_p)==USB_ERR_SUCCESS)
++ {
++ err = init_td( new_td_p,
++ parent_ed,
++ call_back_func,
++ call_back_param,
++ transfer_flag,
++ f_is_standard_dev_req,
++ setup_phy_addr,
++ setup_vir_addr,
++ vir_buf_addr,
++ phy_buf_addr,
++ buf_size,
++ start_frame,
++ isoch_packet_desc,
++ isoch_packet_num,
++ td_priv);
++
++ if(err !=USB_ERR_SUCCESS)
++ {
++ return USB_ERR_NOMEM;
++ }
++
++ if(parent_ed->is_need_to_insert_scheduler)
++ {
++ insert_ed_to_scheduler(parent_ed);
++ }
++
++ *return_td_addr = (u32)new_td_p;
++
++ return USB_ERR_SUCCESS;
++ }
++ else
++ {
++ return USB_ERR_NOMEM;
++ }
++}
++
++/******************************************************************************/
++/*!
++ * @name int cancel_transfer( ed_t *parent_ed,
++ * td_t *cancel_td)
++ *
++ * @brief this function cancels to transfer USB Transfer of cancel_td.
++ * this function firstly check whether this cancel_td is transferring or not
++ * if the cancel_td is transferring, the this function requests to cancel the USB Transfer
++ * to S3CScheduler. if the parent_ed is for Periodic Transfer, and
++ * there is not any td_t at parent_ed, then this function requests to release
++ * some usb resources for the ed_t to S3CScheduler. finally this function deletes the cancel_td.
++ *
++ * @param [IN] pUpdateTD = indicates the pointer ot the td_t to have STransfer to be updated.
++ *
++ * @return USB_ERR_SUCCESS - if success to update the STranfer of pUpdateTD.
++ * USB_ERR_FAIL - if fail to update the STranfer of pUpdateTD.
++ */
++ /******************************************************************************/
++int cancel_transfer(ed_t *parent_ed,
++ td_t *cancel_td)
++{
++ int err = USB_ERR_DEQUEUED;
++ otg_list_head *tmp_list_p, *tmp_list2_p;
++ bool cond_found = false;
++
++ if(parent_ed == NULL || cancel_td == NULL)
++ {
++ otg_dbg(OTG_DBG_TRANSFER, "parent_ed == NULL || cancel_td == NULL");
++ cancel_td->error_code = USB_ERR_NOELEMENT;
++ // otg_usbcore_giveback(cancel_td);
++ return cancel_td->error_code;
++ }
++
++ otg_list_for_each_safe(tmp_list_p, tmp_list2_p, &parent_ed->td_list_entry) {
++ if(&cancel_td->td_list_entry == tmp_list_p)
++ {
++ cond_found = true;
++ break;
++ }
++ }
++ if (cond_found != true)
++ {
++ otg_dbg(OTG_DBG_TRANSFER, "cond_found != true \n");
++ cancel_td->error_code = USB_ERR_NOELEMENT;
++ // otg_usbcore_giveback(cancel_td);
++ return cancel_td->error_code;
++ }
++
++
++ if(cancel_td->is_transferring)
++ {
++ if(!parent_ed->ed_status.is_in_transfer_ready_q)
++ {
++ err = cancel_to_transfer_td(cancel_td);
++
++ parent_ed->ed_status.in_transferring_td = 0;
++
++ if(err != USB_ERR_SUCCESS)
++ {
++ otg_dbg(OTG_DBG_TRANSFER, "cancel_to_transfer_td \n");
++ cancel_td->error_code = err;
++ // otg_usbcore_giveback(cancel_td);
++ goto ErrorStatus;
++ }
++
++ otg_list_pop(&cancel_td->td_list_entry);
++ parent_ed->num_td--;
++ }
++ }
++ else
++ {
++ otg_list_pop(&cancel_td->td_list_entry);
++ parent_ed->num_td--;
++
++ if(parent_ed->num_td==0)
++ {
++ remove_ed_from_scheduler(parent_ed);
++ }
++ }
++
++ if(parent_ed->num_td)
++ {
++ parent_ed->is_need_to_insert_scheduler = true;
++ insert_ed_to_scheduler(parent_ed);
++ }
++ else
++ {
++ if(parent_ed->ed_desc.endpoint_type == INT_TRANSFER ||
++ parent_ed->ed_desc.endpoint_type == ISOCH_TRANSFER)
++ {
++ //Release channel and usb bus resource for this ed_t.
++ //but, not release memory for this ed_t.
++ free_usb_resource_for_periodic(parent_ed->ed_desc.used_bus_time,
++ cancel_td->cur_stransfer.alloc_chnum,
++ cancel_td->parent_ed_p->ed_desc.endpoint_type);
++
++ parent_ed->ed_status.is_alloc_resource_for_ed =false;
++ }
++ }
++ // the caller of this functions should call otg_usbcore_giveback(cancel_td);
++ cancel_td->error_code = USB_ERR_DEQUEUED;
++ //otg_usbcore_giveback(cancel_td);
++ delete_td(cancel_td);
++
++ErrorStatus:
++
++ return err;
++
++
++}
++
++
++/******************************************************************************/
++/*!
++ * @name int cancel_all_td(ed_t *parent_ed)
++ *
++ * @brief this function cancels all Transfer which parent_ed manages.
++ *
++ * @param [IN] parent_ed = indicates the pointer ot the ed_t to manage TD_ts to be canceled.
++ *
++ * @return USB_ERR_SUCCESS - if success to cancel all TD_ts of pParentsED.
++ * USB_ERR_FAIL - if fail to cancel all TD_ts of pParentsED.
++ */
++ /******************************************************************************/
++int cancel_all_td(ed_t *parent_ed)
++{
++ otg_list_head *cancel_td_list_entry;
++ td_t *cancel_td;
++
++ do
++ {
++ cancel_td_list_entry = parent_ed->td_list_entry.next;
++
++ cancel_td = otg_list_get_node(cancel_td_list_entry,td_t, td_list_entry);
++
++ cancel_transfer(parent_ed, cancel_td);
++ } while(parent_ed->num_td);
++
++ return USB_ERR_SUCCESS;
++}
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-transfer-nonperiodic.c b/drivers/usb/host/s3c-otg/s3c-otg-transfer-nonperiodic.c
+new file mode 100644
+index 0000000..9e17dad
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-transfer-nonperiodic.c
+@@ -0,0 +1,147 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : NonPeriodicTransfer.c
++ * [Description] : This source file implements the functions to be defined at NonPeriodicTransfer Module.
++ * [Author] : Yang Soon Yeal { syatom.yang@samsung.com }
++ * [Department] : System LSI Division/System SW Lab
++ * [Created Date]: 2008/06/07
++ * [Revision History]
++ * (1) 2008/06/07 by Yang Soon Yeal { syatom.yang@samsung.com }
++ * - Created this file and implements some functions of NonPeriodicTransfer.
++ * -# Jul 15,2008 v1.2 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Optimizing for performance \n
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++
++#include "s3c-otg-transfer-transfer.h"
++
++/******************************************************************************/
++/*!
++ * @name int init_nonperio_stransfer( bool f_is_standard_dev_req,
++ * td_t *parent_td)
++ *
++ * @brief this function initiates the parent_td->cur_stransfer for NonPeriodic Transfer and
++ * inserts this init_td_p to init_td_p->parent_ed_p.
++ *
++ * @param [IN] f_is_standard_dev_req = indicates whether this transfer is Control or not.
++ * [IN] parent_td = indicates the address of td_t to be initiated.
++ *
++ * @return USB_ERR_SUCCESS - if success to update the STranfer of pUpdateTD.
++ * USB_ERR_FAIL - if fail to update the STranfer of pUpdateTD.
++ */
++ /******************************************************************************/
++int init_nonperio_stransfer(bool f_is_standard_dev_req,
++ td_t *parent_td)
++{
++
++
++ parent_td->cur_stransfer.ed_desc_p = &parent_td->parent_ed_p->ed_desc;
++ parent_td->cur_stransfer.ed_status_p = &parent_td->parent_ed_p->ed_status;
++ parent_td->cur_stransfer.alloc_chnum = CH_NONE;
++ parent_td->cur_stransfer.parent_td = (u32)parent_td;
++ parent_td->cur_stransfer.stransfer_id = (u32)&parent_td->cur_stransfer;
++
++ otg_mem_set(&(parent_td->cur_stransfer.hc_reg), 0, sizeof(hc_reg_t));
++
++ parent_td->cur_stransfer.hc_reg.hc_int_msk.b.chhltd = 1;
++
++ if(f_is_standard_dev_req)
++ {
++ parent_td->cur_stransfer.buf_size = USB_20_STAND_DEV_REQUEST_SIZE;
++ parent_td->cur_stransfer.start_phy_buf_addr = parent_td->standard_dev_req_info.phy_standard_dev_req_addr;
++ parent_td->cur_stransfer.start_vir_buf_addr = parent_td->standard_dev_req_info.vir_standard_dev_req_addr;
++ }
++ else
++ {
++ parent_td->cur_stransfer.buf_size = (parent_td->buf_size>MAX_CH_TRANSFER_SIZE)
++ ?MAX_CH_TRANSFER_SIZE
++ :parent_td->buf_size;
++
++ parent_td->cur_stransfer.start_phy_buf_addr = parent_td->phy_buf_addr;
++ parent_td->cur_stransfer.start_vir_buf_addr = parent_td->vir_buf_addr;
++ }
++
++ parent_td->cur_stransfer.packet_cnt = calc_packet_cnt(parent_td->cur_stransfer.buf_size
++ , parent_td->parent_ed_p->ed_desc.max_packet_size);
++
++ return USB_ERR_SUCCESS;
++}
++
++
++/******************************************************************************/
++/*!
++ * @name void update_nonperio_stransfer(td_t *parent_td)
++ *
++ * @brief this function updates the parent_td->cur_stransfer to be used by S3COCI.
++ *
++ * @param [IN/OUT]parent_td = indicates the pointer of td_t to store the STranser to be updated.
++ *
++ * @return USB_ERR_SUCCESS -if success to update the parent_td->cur_stransfer.
++ * USB_ERR_FAIL -if fail to update the parent_td->cur_stransfer.
++ */
++ /******************************************************************************/
++void update_nonperio_stransfer(td_t *parent_td)
++{
++ switch(parent_td->parent_ed_p->ed_desc.endpoint_type)
++ {
++ case BULK_TRANSFER:
++ parent_td->cur_stransfer.start_phy_buf_addr = parent_td->phy_buf_addr+parent_td->transferred_szie;
++ parent_td->cur_stransfer.start_vir_buf_addr = parent_td->vir_buf_addr+parent_td->transferred_szie;
++ parent_td->cur_stransfer.buf_size = ((parent_td->buf_size - parent_td->transferred_szie)>MAX_CH_TRANSFER_SIZE)
++ ?MAX_CH_TRANSFER_SIZE
++ :parent_td->buf_size - parent_td->transferred_szie;
++ break;
++
++ case CONTROL_TRANSFER:
++ if(parent_td->standard_dev_req_info.conrol_transfer_stage == SETUP_STAGE)
++ {
++ // but, this case will not be occured......
++ parent_td->cur_stransfer.start_phy_buf_addr = parent_td->standard_dev_req_info.phy_standard_dev_req_addr;
++ parent_td->cur_stransfer.start_vir_buf_addr = parent_td->standard_dev_req_info.vir_standard_dev_req_addr;
++ parent_td->cur_stransfer.buf_size = 8;
++ }
++ else if(parent_td->standard_dev_req_info.conrol_transfer_stage == DATA_STAGE)
++ {
++ parent_td->cur_stransfer.start_phy_buf_addr = parent_td->phy_buf_addr+parent_td->transferred_szie;
++ parent_td->cur_stransfer.start_vir_buf_addr = parent_td->vir_buf_addr+parent_td->transferred_szie;
++ parent_td->cur_stransfer.buf_size = ((parent_td->buf_size - parent_td->transferred_szie)>MAX_CH_TRANSFER_SIZE)
++ ?MAX_CH_TRANSFER_SIZE
++ :parent_td->buf_size - parent_td->transferred_szie;
++ }
++ else
++ {
++ parent_td->cur_stransfer.start_phy_buf_addr = 0;
++ parent_td->cur_stransfer.start_vir_buf_addr = 0;
++ parent_td->cur_stransfer.buf_size = 0;
++ }
++ break;
++
++
++ default:
++ break;
++ }
++
++ parent_td->cur_stransfer.packet_cnt = calc_packet_cnt(parent_td->cur_stransfer.buf_size, parent_td->parent_ed_p->ed_desc.max_packet_size);
++
++}
++
++
++
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-transfer-periodic.c b/drivers/usb/host/s3c-otg/s3c-otg-transfer-periodic.c
+new file mode 100644
+index 0000000..7bc6ed3
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-transfer-periodic.c
+@@ -0,0 +1,131 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : NonPeriodicTransfer.c
++ * [Description] : This source file implements the functions to be defined at NonPeriodicTransfer Module.
++ * [Author] : Yang Soon Yeal { syatom.yang@samsung.com }
++ * [Department] : System LSI Division/System SW Lab
++ * [Created Date]: 2008/06/09
++ * [Revision History]
++ * (1) 2008/06/09 by Yang Soon Yeal { syatom.yang@samsung.com }
++ * - Created this file and implements some functions of PeriodicTransfer.
++ * -# Jul 15,2008 v1.2 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Optimizing for performance \n
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#include "s3c-otg-transfer-transfer.h"
++
++
++/******************************************************************************/
++/*!
++ * @name int init_perio_stransfer( bool f_is_isoch_transfer,
++ * td_t *parent_td)
++ *
++ * @brief this function initiates the parent_td->cur_stransfer for Periodic Transfer and
++ * inserts this init_td_p to init_td_p->parent_ed_p.
++ *
++ * @param [IN] f_is_isoch_transfer = indicates whether this transfer is Isochronous or not.
++ * [IN] parent_td = indicates the address of td_t to be initiated.
++ *
++ * @return USB_ERR_SUCCESS -if success to update the STranfer of pUpdateTD.
++ * USB_ERR_FAIL -if fail to update the STranfer of pUpdateTD.
++ */
++ /******************************************************************************/
++int init_perio_stransfer( bool f_is_isoch_transfer,
++ td_t *parent_td)
++{
++ parent_td->cur_stransfer.ed_desc_p = &parent_td->parent_ed_p->ed_desc;
++ parent_td->cur_stransfer.ed_status_p = &parent_td->parent_ed_p->ed_status;
++ parent_td->cur_stransfer.alloc_chnum = CH_NONE;
++ parent_td->cur_stransfer.parent_td = (u32)parent_td;
++ parent_td->cur_stransfer.stransfer_id = (u32)&parent_td->cur_stransfer;
++
++ otg_mem_set(&parent_td->cur_stransfer.hc_reg, 0, sizeof(hc_reg_t));
++
++ parent_td->cur_stransfer.hc_reg.hc_int_msk.b.chhltd = 1;
++
++ if(f_is_isoch_transfer)
++ {
++ // initiates the STransfer usinb the IsochPacketDesc[0].
++ parent_td->cur_stransfer.buf_size =parent_td->isoch_packet_desc_p[0].buf_size;
++ parent_td->cur_stransfer.start_phy_buf_addr =parent_td->phy_buf_addr + parent_td->isoch_packet_desc_p[0].isoch_packiet_start_addr;
++ parent_td->cur_stransfer.start_vir_buf_addr =parent_td->vir_buf_addr + parent_td->isoch_packet_desc_p[0].isoch_packiet_start_addr;
++ }
++ else
++ {
++ parent_td->cur_stransfer.buf_size =(parent_td->buf_size>MAX_CH_TRANSFER_SIZE)
++ ?MAX_CH_TRANSFER_SIZE
++ :parent_td->buf_size;
++
++ parent_td->cur_stransfer.start_phy_buf_addr =parent_td->phy_buf_addr;
++ parent_td->cur_stransfer.start_vir_buf_addr =parent_td->vir_buf_addr;
++ }
++
++ parent_td->cur_stransfer.packet_cnt = calc_packet_cnt(parent_td->cur_stransfer.buf_size, parent_td->parent_ed_p->ed_desc.max_packet_size);
++
++ return USB_ERR_SUCCESS;
++}
++
++
++/******************************************************************************/
++/*!
++ * @name void update_perio_stransfer(td_t *parent_td)
++ *
++ * @brief this function updates the parent_td->cur_stransfer to be used by S3COCI.
++ * the STransfer of parent_td is for Periodic Transfer.
++ *
++ * @param [IN/OUT]parent_td = indicates the pointer of td_t to store the STranser to be updated.
++ *
++ * @return USB_ERR_SUCCESS -if success to update the parent_td->cur_stransfer.
++ * USB_ERR_FAIL -if fail to update the parent_td->cur_stransfer.
++ */
++ /******************************************************************************/
++void update_perio_stransfer(td_t *parent_td)
++{
++
++ switch(parent_td->parent_ed_p->ed_desc.endpoint_type)
++ {
++ case INT_TRANSFER:
++ parent_td->cur_stransfer.start_phy_buf_addr =parent_td->phy_buf_addr+parent_td->transferred_szie;
++ parent_td->cur_stransfer.start_vir_buf_addr =parent_td->vir_buf_addr+parent_td->transferred_szie;
++ parent_td->cur_stransfer.buf_size =(parent_td->buf_size>MAX_CH_TRANSFER_SIZE)
++ ?MAX_CH_TRANSFER_SIZE
++ :parent_td->buf_size;
++ break;
++
++ case ISOCH_TRANSFER:
++ parent_td->cur_stransfer.start_phy_buf_addr = parent_td->phy_buf_addr
++ +parent_td->isoch_packet_desc_p[parent_td->isoch_packet_index].isoch_packiet_start_addr
++ +parent_td->isoch_packet_position;
++
++ parent_td->cur_stransfer.start_vir_buf_addr = parent_td->vir_buf_addr
++ +parent_td->isoch_packet_desc_p[parent_td->isoch_packet_index].isoch_packiet_start_addr
++ +parent_td->isoch_packet_position;
++
++ parent_td->cur_stransfer.buf_size = (parent_td->isoch_packet_desc_p[parent_td->isoch_packet_index].buf_size - parent_td->isoch_packet_position)>MAX_CH_TRANSFER_SIZE
++ ?MAX_CH_TRANSFER_SIZE
++ :parent_td->isoch_packet_desc_p[parent_td->isoch_packet_index].buf_size - parent_td->isoch_packet_position;
++
++ break;
++
++ default:
++ break;
++ }
++}
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-transfer-transfer.h b/drivers/usb/host/s3c-otg/s3c-otg-transfer-transfer.h
+new file mode 100644
+index 0000000..07f4d0b
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-transfer-transfer.h
+@@ -0,0 +1,147 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : s3c-otg-transfer-transfer.h
++ * [Description] : The Header file defines the external and internal functions of Transfer.
++ * [Author] : Yang Soon Yeal { syatom.yang@samsung.com }
++ * [Department] : System LSI Division/System SW Lab
++ * [Created Date]: 2008/06/03
++ * [Revision History]
++ * (1) 2008/06/03 by Yang Soon Yeal { syatom.yang@samsung.com }
++ * - Created this file and defines functions of Transfer
++ * -# Jul 15,2008 v1.2 by SeungSoo Yang (ss1.yang@samsung.com) \n
++ * : Optimizing for performance \n
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#ifndef _TRANSFER_H
++#define _TRANSFER_H
++
++/*
++// ----------------------------------------------------------------------------
++// Include files : None.
++// ----------------------------------------------------------------------------
++*/
++//#include "s3c-otg-common-const.h"
++#include "s3c-otg-common-errorcode.h"
++#include "s3c-otg-common-datastruct.h"
++#include "s3c-otg-hcdi-memory.h"
++#include "s3c-otg-hcdi-kal.h"
++#include "s3c-otg-hcdi-debug.h"
++
++#include "s3c-otg-scheduler-scheduler.h"
++#include "s3c-otg-isr.h"
++
++
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++
++// the header pointer to indicate the ED_list to manage the ed_t to be created and initiated.
++extern otg_list_head ed_list_head;
++extern u32 ref_periodic_transfer;
++
++
++void init_transfer(void);
++void deinit_transfer(void);
++
++int issue_transfer(ed_t *parent_ed,
++ void *call_back_func,
++ void *call_back_param,
++ u32 transfer_flag,
++ bool f_is_standard_dev_req,
++ u32 setup_vir_addr,
++ u32 setup_phy_addr,
++ u32 vir_buf_addr,
++ u32 phy_buf_addr,
++ u32 buf_size,
++ u32 start_frame,
++ u32 isoch_packet_num,
++ isoch_packet_desc_t *isoch_packet_desc,
++ void *td_priv,
++ unsigned int *return_td_addr);
++
++int cancel_transfer(ed_t *parent_ed,
++ td_t *cancel_td);
++
++int cancel_all_td(ed_t *parent_ed);
++
++int create_ed(ed_t ** new_ed);
++
++int init_ed(ed_t * init_ed,
++ u8 dev_addr,
++ u8 ep_num,
++ bool f_is_ep_in,
++ u8 dev_speed,
++ u8 ep_type,
++ u16 max_packet_size,
++ u8 multi_count,
++ u8 interval,
++ u32 sched_frame,
++ u8 hub_addr,
++ u8 hub_port,
++ bool f_is_do_split,
++ void *ep);
++
++int delete_ed(ed_t *delete_ed);
++
++int delete_td(td_t * delete_td);
++
++int create_isoch_packet_desc( isoch_packet_desc_t **new_isoch_packet_desc,
++ u32 isoch_packet_num);
++
++int delete_isoch_packet_desc( isoch_packet_desc_t *del_isoch_packet_desc,
++ u32 isoch_packet_num);
++
++
++void init_isoch_packet_desc( isoch_packet_desc_t *init_isoch_packet_desc,
++ u32 offset,
++ u32 isoch_packet_size,
++ u32 index);
++
++// NonPeriodicTransfer.c implements.
++
++int init_nonperio_stransfer(bool f_is_standard_dev_req,
++ td_t *parent_td);
++
++void update_nonperio_stransfer(td_t *parent_td);
++
++//PeriodicTransfer.c implements
++
++int init_perio_stransfer( bool f_is_isoch_transfer,
++ td_t *parent_td);
++
++void update_perio_stransfer(td_t *parent_td);
++
++static inline u32 calc_packet_cnt(u32 data_size, u16 max_packet_size)
++{
++ if(data_size != 0)
++ {
++ return (data_size%max_packet_size==0)?data_size/max_packet_size:data_size/max_packet_size+1;
++ }
++ return 1;
++}
++
++#ifdef __cplusplus
++}
++#endif
++
++
++#endif
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-bulk.c b/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-bulk.c
+new file mode 100644
+index 0000000..5f0a993
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-bulk.c
+@@ -0,0 +1,673 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : BulkTransferChecker.c
++ * [Description] : The Source file implements the external and internal functions of BulkTransferChecker.
++ * [Author] : Yang Soon Yeal { syatom.yang@samsung.com }
++ * [Department] : System LSI Division/System SW Lab
++ * [Created Date]: 2008/06/13
++ * [Revision History]
++ * (1) 2008/06/18 by Yang Soon Yeal { syatom.yang@samsung.com }
++ * - Created this file and implements functions of BulkTransferChecker
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#include "s3c-otg-transferchecker-bulk.h"
++#include "s3c-otg-isr.h"
++
++/******************************************************************************/
++/*!
++ * @name u8 process_bulk_transfer(td_t *result_td,
++ hc_info_t *hc_reg_data)
++
++ *
++ * @brief this function processes the result of the Bulk Transfer.
++ * firstly, this function checks the result of the Bulk Transfer.
++ * and according to the result, calls the sub-functions to process the result.
++ *
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t whose channel is interruped.
++ * [IN] hc_reg_data -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return RE_TRANSMIT -if need to retransmit the result_td.
++ * RE_SCHEDULE -if need to reschedule the result_td.
++ * DE_ALLOCATE -if USB Transfer is completed.
++ * NO_ACTION -if we don't need any action,
++ */
++/******************************************************************************/
++u8 process_bulk_transfer(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ hcintn_t hc_intr_info;
++ u8 return_val=0;
++
++ //we just deal with the interrupts to be unmasked.
++ hc_intr_info.d32 = hc_reg_data->hc_int.d32 & result_td->cur_stransfer.hc_reg.hc_int_msk.d32;
++
++ if(result_td->parent_ed_p->ed_desc.is_ep_in)
++ {
++ if(hc_intr_info.b.chhltd)
++ {
++ return_val = process_chhltd_on_bulk(result_td, hc_reg_data);
++ }
++
++ else if (hc_intr_info.b.ack)
++ {
++ return_val =process_ack_on_bulk(result_td, hc_reg_data);
++ }
++
++ else if (hc_intr_info.b.nak)
++ {
++ return_val =process_nak_on_bulk(result_td, hc_reg_data);
++ }
++
++ else if (hc_intr_info.b.datatglerr)
++ {
++ return_val = process_datatgl_on_bulk(result_td,hc_reg_data);
++ }
++ }
++ else
++ {
++ if(hc_intr_info.b.chhltd)
++ {
++ return_val = process_chhltd_on_bulk(result_td, hc_reg_data);
++
++ }
++
++ else if(hc_intr_info.b.ack)
++ {
++ return_val =process_ack_on_bulk( result_td, hc_reg_data);
++ }
++ }
++
++ return return_val;
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_chhltd_on_bulk(td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function processes Channel Halt event according to Synopsys OTG Spec.
++ * firstly, this function checks the reason of the Channel Halt, and according to the reason,
++ * calls the sub-functions to process the result.
++ *
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] hc_reg_data -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return RE_TRANSMIT -if need to retransmit the result_td.
++ * RE_SCHEDULE -if need to reschedule the result_td.
++ * DE_ALLOCATE -if USB Transfer is completed.
++ */
++/******************************************************************************/
++u8 process_chhltd_on_bulk(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ if(result_td->parent_ed_p->ed_desc.is_ep_in)
++ {
++ if(hc_reg_data->hc_int.b.xfercompl)
++ {
++ return process_xfercompl_on_bulk( result_td, hc_reg_data);
++ }
++ else if(hc_reg_data->hc_int.b.stall)
++ {
++ return process_stall_on_bulk(result_td, hc_reg_data);
++ }
++ else if(hc_reg_data->hc_int.b.bblerr)
++ {
++ return process_bblerr_on_bulk(result_td, hc_reg_data);
++ }
++ else if(hc_reg_data->hc_int.b.xacterr)
++ {
++ return process_xacterr_on_bulk(result_td, hc_reg_data);
++ }
++ else
++ {
++ //Occure Error State.....
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ALL);
++
++ //Mask ack Interrupt..
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ result_td->err_cnt++;
++ if(result_td->err_cnt == 3)
++ {
++ result_td->error_code = USB_ERR_STATUS_XACTERR;
++ result_td->err_cnt = 0;
++ return DE_ALLOCATE;
++ }
++
++ return RE_TRANSMIT;
++ }
++ }
++ else
++ {
++ if(hc_reg_data->hc_int.b.xfercompl)
++ {
++ return process_xfercompl_on_bulk(result_td, hc_reg_data);
++ }
++ else if(hc_reg_data->hc_int.b.stall)
++ {
++ return process_stall_on_bulk(result_td, hc_reg_data);
++ }
++ else if(hc_reg_data->hc_int.b.xacterr)
++ {
++ return process_xacterr_on_bulk(result_td, hc_reg_data);
++ }
++
++ else if(hc_reg_data->hc_int.b.nak)
++ {
++ return process_nak_on_bulk(result_td, hc_reg_data);
++ }
++ else if(hc_reg_data->hc_int.b.nyet)
++ {
++ return process_nyet_on_bulk(result_td, hc_reg_data);
++ }
++ else
++ {
++ //occur error state...
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ALL);
++
++ //Mask ack Interrupt..
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ result_td->err_cnt++;
++ if(result_td->err_cnt == 3)
++ {
++ result_td->error_code = USB_ERR_STATUS_XACTERR;
++ result_td->err_cnt = 0;
++ return DE_ALLOCATE;
++ }
++
++ return RE_TRANSMIT;
++ }
++
++
++
++ }
++ return USB_ERR_SUCCESS;
++
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_xfercompl_on_bulk( td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with the xfercompl event according to Synopsys OTG Spec.
++ * the procedure of this function is as following
++ * 1. clears all bits of the channel' HCINT by using clear_ch_intr() of S3CIsr.
++ * 2. masks some bit of HCINTMSK
++ * 3. updates the result_td fields
++ * err_cnt/u8/standard_dev_req_info.
++ * 4. updates the result_td->parent_ed_p->ed_status.
++ * BulkDataTgl.
++ * 5. calculates the tranferred size by calling calc_transferred_size() on DATA_STAGE.
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] hc_reg_data -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return USB_ERR_SUCCESS
++ */
++/******************************************************************************/
++u8 process_xfercompl_on_bulk(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ u8 ret_val=0;
++
++ result_td->err_cnt = 0;
++
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ALL);
++
++ //Mask ack Interrupt..
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ result_td->parent_ed_p->ed_status.is_ping_enable =false;
++
++ result_td->transferred_szie += calc_transferred_size(true,result_td, hc_reg_data);
++
++ if(result_td->transferred_szie==result_td->buf_size)
++ {//at IN Transfer, short transfer is accepted.
++ result_td->error_code = USB_ERR_STATUS_COMPLETE;
++ ret_val = DE_ALLOCATE;
++ }
++ else
++ {
++ if(result_td->parent_ed_p->ed_desc.is_ep_in&& hc_reg_data->hc_size.b.xfersize)
++ {
++ if(result_td->transfer_flag&USB_TRANS_FLAG_NOT_SHORT)
++ {
++ result_td->error_code =USB_ERR_STATUS_SHORTREAD;
++ }
++ else
++ {
++ result_td->error_code =USB_ERR_STATUS_COMPLETE;
++ }
++ ret_val = DE_ALLOCATE;
++ }
++ else
++ {
++ ret_val = RE_SCHEDULE;
++ }
++ }
++ update_datatgl(hc_reg_data->hc_size.b.pid, result_td);
++
++ if(hc_reg_data->hc_int.b.nyet)
++ {
++ //at OUT Transfer, we must re-transmit.
++ if(result_td->parent_ed_p->ed_desc.is_ep_in==false)
++ {
++
++ if(result_td->parent_ed_p->ed_desc.dev_speed == HIGH_SPEED_OTG)
++ {
++ result_td->parent_ed_p->ed_status.is_ping_enable = true;
++ }
++ else
++ {
++ result_td->parent_ed_p->ed_status.is_ping_enable = false;
++ }
++ }
++ }
++
++ return ret_val;
++
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_ahb_on_bulk(td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with theAHB Errorl event according to Synopsys OTG Spec.
++ * this function stop the channel to be executed
++ * TBD....
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] hc_reg_data -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return USB_ERR_SUCCESS
++ */
++/******************************************************************************/
++u8 process_ahb_on_bulk(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ result_td->err_cnt =0;
++ result_td->error_code =USB_ERR_STATUS_AHBERR;
++
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_AHBErr);
++
++ //Mask ack Interrupt..
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ // we just calculate the size of the transferred data on Data Stage of Bulk Transfer.
++ result_td->transferred_szie += calc_transferred_size(false,result_td, hc_reg_data);
++ result_td->parent_ed_p->ed_status.is_ping_enable = false;
++
++ return DE_ALLOCATE;
++
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_stall_on_bulk(td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with theStall event according to Synopsys OTG Spec.
++ * when Stall is occured at Bulk Transfer, we should reset the PID as DATA0
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] hc_reg_data -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return DE_ALLOCATE
++ */
++/******************************************************************************/
++u8 process_stall_on_bulk( td_t * result_td,
++ hc_info_t * hc_reg_data)
++{
++ result_td->err_cnt =0;
++ result_td->error_code =USB_ERR_STATUS_STALL;
++
++ //this channel is stalled, So we don't process another interrupts.
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ALL);
++
++ //Mask ack Interrupt..
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ result_td->parent_ed_p->ed_status.is_ping_enable = false;
++ result_td->transferred_szie += calc_transferred_size(false,result_td, hc_reg_data);
++
++ update_datatgl(DATA0, result_td);
++
++
++ return DE_ALLOCATE;
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_nak_on_bulk(td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with the nak event according to Synopsys OTG Spec.
++ * nak is occured at OUT/IN Transaction of Data/Status Stage, and is not occured at Setup Stage.
++ * If nak is occured at IN Transaction, this function processes this interrupt as following.
++ * 1. resets the result_td->err_cnt.
++ * 2. masks ack/nak/DaaTglErr bit of HCINTMSK.
++ * 3. clears the nak bit of HCINT
++ * 4. be careful, nak of IN Transaction don't require re-transmit.
++ * If nak is occured at OUT Transaction, this function processes this interrupt as following.
++ * 1. all procedures of IN Transaction are executed.
++ * 2. calculates the size of the transferred data.
++ * 3. if the speed of USB Device is High-Speed, sets the ping protocol.
++ * 4. update the Toggle
++ * at OUT Transaction, this function check whether the speed of USB Device is High-Speed or not.
++ * if USB Device is High-Speed, then
++ * this function sets the ping protocol.
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] hc_reg_data -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return RE_SCHEDULE -if the direction of the Transfer is OUT
++ * NO_ACTION -if the direction of the Transfer is IN
++ */
++/******************************************************************************/
++u8 process_nak_on_bulk(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ result_td->err_cnt = 0;
++
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++
++ //at OUT Transfer, we must re-transmit.
++ if(result_td->parent_ed_p->ed_desc.is_ep_in==false)
++ {
++ result_td->transferred_szie += calc_transferred_size(false,result_td, hc_reg_data);
++
++ if(result_td->parent_ed_p->ed_desc.dev_speed == HIGH_SPEED_OTG)
++ {
++ result_td->parent_ed_p->ed_status.is_ping_enable = true;
++ }
++ else
++ {
++ result_td->parent_ed_p->ed_status.is_ping_enable = false;
++ }
++
++ update_datatgl(hc_reg_data->hc_size.b.pid, result_td);
++
++ return RE_TRANSMIT;
++ }
++ return NO_ACTION;
++
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_ack_on_bulk(td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with the ack event according to Synopsys OTG Spec.
++ * ack of IN/OUT Transaction don't need any retransmit.
++ * this function just resets result_td->err_cnt and masks ack/nak/DataTgl of HCINTMSK.
++ * finally, this function clears ack bit of HCINT and ed_status.is_ping_enable.
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] hc_reg_data -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return USB_ERR_SUCCESS
++ */
++/******************************************************************************/
++u8 process_ack_on_bulk(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ result_td->err_cnt = 0;
++
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++
++ result_td->parent_ed_p->ed_status.is_ping_enable = false;
++
++ return NO_ACTION;
++
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_nyet_on_bulk(td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with the nyet event according to Synopsys OTG Spec.
++ * nyet is only occured at OUT Transaction.
++ * If nyet is occured at OUT Transaction, this function processes this interrupt as following.
++ * 1. resets the result_td->err_cnt.
++ * 2. masks ack/nak/datatglerr bit of HCINTMSK.
++ * 3. clears the nyet bit of HCINT
++ * 4. calculates the size of the transferred data.
++ * 5. if the speed of USB Device is High-Speed, sets the ping protocol.
++ * 6. update the Data Toggle.
++ * 7. return RE_SCHEDULE to retransmit.
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] hc_reg_data -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return RE_SCHEDULE
++ */
++/******************************************************************************/
++u8 process_nyet_on_bulk(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ if(result_td->parent_ed_p->ed_desc.is_ep_in)
++ {
++ // Error State....
++ return NO_ACTION;
++ }
++
++ result_td->err_cnt = 0;
++
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NYET);
++
++ result_td->transferred_szie += calc_transferred_size(false,result_td, hc_reg_data);
++
++ if(result_td->parent_ed_p->ed_desc.dev_speed == HIGH_SPEED_OTG)
++ {
++ result_td->parent_ed_p->ed_status.is_ping_enable = true;
++ }
++ else
++ {
++ result_td->parent_ed_p->ed_status.is_ping_enable = false;
++ }
++
++ update_datatgl(hc_reg_data->hc_size.b.pid, result_td);
++
++ return RE_TRANSMIT;
++
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_xacterr_on_bulk( td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with the xacterr event according to Synopsys OTG Spec.
++ * xacterr is occured at OUT/IN Transaction and we should retransmit the USB Transfer
++ * if the Error Counter is less than the RETRANSMIT_THRESHOLD.
++ * the reasons of xacterr is Timeout/CRC error/false EOP.
++ * the procedure to process xacterr is as following.
++ * 1. increses the result_td->err_cnt
++ * 2. check whether the result_td->err_cnt is equal to 3.
++ * 2. unmasks ack/nak/datatglerr bit of HCINTMSK.
++ * 3. clears the xacterr bit of HCINT
++ * 4. calculates the size of the transferred data.
++ * 5. if the speed of USB Device is High-Speed, sets the ping protocol.
++ * 6. update the Data Toggle.
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] hc_reg_data -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return RE_TRANSMIT -if the error count is less than 3
++ * DE_ALLOCATE -if the error count is equal to 3
++ */
++/******************************************************************************/
++u8 process_xacterr_on_bulk( td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ u8 ret_val = 0;
++
++ if(result_td->err_cnt<RETRANSMIT_THRESHOLD)
++ {
++ result_td->cur_stransfer.hc_reg.hc_int_msk.d32 |= (CH_STATUS_ACK+CH_STATUS_NAK+CH_STATUS_DataTglErr);
++ ret_val = RE_TRANSMIT;
++ result_td->err_cnt++ ;
++ }
++ else
++ {
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++ ret_val = DE_ALLOCATE;
++ result_td->err_cnt = 0 ;
++ result_td->error_code = USB_ERR_STATUS_XACTERR;
++ }
++
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ result_td->transferred_szie += calc_transferred_size(false,result_td, hc_reg_data);
++
++ if(result_td->parent_ed_p->ed_desc.is_ep_in==false)
++ {
++ if(result_td->parent_ed_p->ed_desc.dev_speed == HIGH_SPEED_OTG)
++ {
++ result_td->parent_ed_p->ed_status.is_ping_enable = true;
++ }
++ else
++ {
++ result_td->parent_ed_p->ed_status.is_ping_enable = false;
++ }
++ }
++
++
++ update_datatgl(hc_reg_data->hc_size.b.pid, result_td);
++
++ return ret_val;
++
++}
++
++/******************************************************************************/
++/*!
++ * @name void process_bblerr_on_bulk(td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with the Babble event according to Synopsys OTG Spec.
++ * babble error is occured when the buffer to receive data to be transmit is overflow.
++ * So, babble error can be just occured at IN Transaction.
++ * when Babble Error is occured, we should stop the USB Transfer, and return the fact
++ * to Application.
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] hc_reg_data -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return DE_ALLOCATE
++ */
++/******************************************************************************/
++u8 process_bblerr_on_bulk(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++
++ if(!result_td->parent_ed_p->ed_desc.is_ep_in)
++ {
++ return NO_ACTION;
++ }
++
++ result_td->err_cnt =0;
++ result_td->error_code =USB_ERR_STATUS_BBLERR;
++
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ALL);
++
++ //Mask ack Interrupt..
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ result_td->parent_ed_p->ed_status.is_ping_enable =false;
++ result_td->transferred_szie += calc_transferred_size(false, result_td, hc_reg_data);
++
++ return DE_ALLOCATE;
++
++
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_datatgl_on_bulk( td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with the datatglerr event according to Synopsys OTG Spec.
++ * the datatglerr event is occured at IN Transfer, and the channel is not halted.
++ * this function just resets result_td->err_cnt and masks ack/nak/DataTgl of HCINTMSK.
++ * finally, this function clears datatglerr bit of HCINT.
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] hc_reg_data -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return NO_ACTION
++ */
++/******************************************************************************/
++u8 process_datatgl_on_bulk(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ result_td->err_cnt = 0;
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ return NO_ACTION;
++
++}
++
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-bulk.h b/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-bulk.h
+new file mode 100644
+index 0000000..f1f8593
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-bulk.h
+@@ -0,0 +1,88 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : BulkTransferChecker.h
++ * [Description] : The Header file defines the external and internal functions of BulkTransferChecker
++ * [Author] : Yang Soon Yeal { syatom.yang@samsung.com }
++ * [Department] : System LSI Division/System SW Lab
++ * [Created Date]: 2008/06/18
++ * [Revision History]
++ * (1) 2008/06/18 by Yang Soon Yeal { syatom.yang@samsung.com }
++ * - Created this file and defines functions of BulkTransferChecker
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#ifndef _BULK_TRANSFER_CHECKER_H
++#define _BULK_TRANSFER_CHECKER_H
++
++/*
++// ----------------------------------------------------------------------------
++// Include files : None.
++// ----------------------------------------------------------------------------
++*/
++//#include "s3c-otg-common-typedef.h"
++#include "s3c-otg-common-const.h"
++#include "s3c-otg-common-errorcode.h"
++#include "s3c-otg-common-datastruct.h"
++
++
++
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++u8 process_bulk_transfer(td_t *raw_td,
++ hc_info_t *hc_reg_data);
++
++u8 process_xfercompl_on_bulk(td_t *raw_td,
++ hc_info_t *hc_reg_data);
++
++u8 process_chhltd_on_bulk(td_t *raw_td,
++ hc_info_t *hc_reg_data);
++
++u8 process_ahb_on_bulk(td_t *raw_td,
++ hc_info_t *hc_reg_data);
++
++u8 process_stall_on_bulk(td_t *raw_td,
++ hc_info_t *hc_reg_data);
++
++u8 process_nak_on_bulk(td_t *raw_td,
++ hc_info_t *hc_reg_data);
++
++u8 process_ack_on_bulk(td_t *raw_td,
++ hc_info_t *hc_reg_data);
++
++u8 process_nyet_on_bulk(td_t *raw_td,
++ hc_info_t *hc_reg_data);
++
++u8 process_xacterr_on_bulk(td_t *raw_td,
++ hc_info_t *hc_reg_data);
++
++u8 process_bblerr_on_bulk(td_t *raw_td,
++ hc_info_t *hc_reg_data);
++
++u8 process_datatgl_on_bulk(td_t *raw_td,
++ hc_info_t *hc_reg_data);
++
++#ifdef __cplusplus
++}
++#endif
++
++
++#endif
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-checker.h b/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-checker.h
+new file mode 100644
+index 0000000..8026fc6
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-checker.h
+@@ -0,0 +1,66 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : DoneTransferChecker.h
++ * [Description] : The Header file defines the external and internal functions of S3CDoneTransferChecker.
++ * [Author] : Yang Soon Yeal { syatom.yang@samsung.com }
++ * [Department] : System LSI Division/System SW Lab
++ * [Created Date]: 2008/06/12
++ * [Revision History]
++ * (1) 2008/06/12 by Yang Soon Yeal { syatom.yang@samsung.com }
++ * - Created this file and defines functions of S3CDoneTransferChecker
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#ifndef _DONE_TRANSFER_CHECKER_H
++#define _DONE_TRANSFER_CHECKER_H
++
++/*
++// ----------------------------------------------------------------------------
++// Include files : None.
++// ----------------------------------------------------------------------------
++*/
++
++//#include "s3c-otg-common-typedef.h"
++#include "s3c-otg-common-const.h"
++#include "s3c-otg-common-errorcode.h"
++#include "s3c-otg-common-datastruct.h"
++
++#include "s3c-otg-hcdi-debug.h"
++
++
++
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++
++
++
++#ifdef __cplusplus
++}
++#endif
++
++
++#endif
++
++
++
++
++
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-common.c b/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-common.c
+new file mode 100644
+index 0000000..86d96de
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-common.c
+@@ -0,0 +1,256 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : CommonTransferChecker.c
++ * [Description] : The Source file implements the external and internal functions of CommonTransferChecker.
++ * [Author] : Yang Soon Yeal { syatom.yang@samsung.com }
++ * [Department] : System LSI Division/System SW Lab
++ * [Created Date]: 2009/01/12
++ * [Revision History]
++ * (1) 2008/06/12 by Yang Soon Yeal { syatom.yang@samsung.com }
++ * - Created this file and implements functions of CommonTransferChecker
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#include "s3c-otg-transferchecker-common.h"
++
++
++/******************************************************************************/
++/*!
++ * @name int init_done_transfer_checker(void)
++ *
++ * @brief this function initiates S3CDoneTransferChecker Module.
++ *
++ *
++ * @param void
++ *
++ * @return void
++ */
++/******************************************************************************/
++//ss1
++/*void init_done_transfer_checker(void)
++{
++ return USB_ERR_SUCCESS;
++}*/
++
++/******************************************************************************/
++/*!
++ * @name void do_transfer_checker(void)
++ *
++ * @brief this function processes the result of USB Transfer. So, do_transfer_checker fistly
++ * check which channel occurs OTG Interrupt and gets the status information of the channel.
++ * do_transfer_checker requests the information of td_t to S3CScheduler.
++ * To process the interrupt of the channel, do_transfer_checker calls the sub-modules of
++ * S3CDoneTransferChecker, for example, ControlTransferChecker, BulkTransferChecker.
++ * according to the process result of the channel interrupt, do_transfer_checker decides
++ * the USB Transfer will be done or retransmitted.
++ *
++ *
++ * @param void
++ *
++ * @return void
++ */
++/*******************************************************************************/
++void do_transfer_checker (void)
++{
++ u32 hc_intr = 0;
++ u32 hc_intr_msk = 0;
++ u8 do_try_cnt = 0;
++
++ hc_info_t ch_info;
++ u32 td_addr = 0;
++ td_t *done_td = {0};
++ u8 proc_result = 0;
++
++ //by ss1
++ otg_mem_set((void *)&ch_info, 0, sizeof(hc_info_t));
++
++ // Get value of HAINT...
++ get_intr_ch(&hc_intr,&hc_intr_msk);
++
++start_do_transfer_checker:
++
++ while(do_try_cnt<MAX_CH_NUMBER)
++ {
++ //checks the channel number to be masked or not.
++ if(!(hc_intr & hc_intr_msk & (1<<do_try_cnt)))
++ {
++ do_try_cnt++;
++ goto start_do_transfer_checker;
++ }
++
++ //Gets the address of the td_t to have the channel to be interrupted.
++ get_td_info(do_try_cnt, &td_addr);
++
++ done_td = (td_t *)td_addr;
++
++ if(do_try_cnt != done_td->cur_stransfer.alloc_chnum)
++ {
++ do_try_cnt++;
++ goto start_do_transfer_checker;
++ }
++
++ //Gets the informationof channel to be interrupted.
++ get_ch_info(&ch_info,do_try_cnt);
++
++ switch(done_td->parent_ed_p->ed_desc.endpoint_type)
++ {
++ case CONTROL_TRANSFER:
++ proc_result = process_control_transfer(done_td, &ch_info);
++ break;
++ case BULK_TRANSFER:
++ proc_result = process_bulk_transfer(done_td, &ch_info);
++ break;
++ case INT_TRANSFER:
++ proc_result = process_intr_transfer(done_td, &ch_info);
++ break;
++ case ISOCH_TRANSFER:
++ // proc_result = ProcessIsochTransfer(done_td, &ch_info);
++ break;
++ default:break;
++ }
++
++ if((proc_result == RE_TRANSMIT) || (proc_result == RE_SCHEDULE))
++ {
++ done_td->parent_ed_p->ed_status.is_in_transferring = false;
++ done_td->is_transfer_done = false;
++ done_td->is_transferring = false;
++
++ if(done_td->parent_ed_p->ed_desc.endpoint_type == CONTROL_TRANSFER ||
++ done_td->parent_ed_p->ed_desc.endpoint_type==BULK_TRANSFER)
++ {
++ update_nonperio_stransfer(done_td);
++ }
++ else
++ {
++ update_perio_stransfer(done_td);
++ }
++
++ if(proc_result == RE_TRANSMIT)
++ {
++ retransmit(done_td);
++ }
++ else
++ {
++ reschedule(done_td);
++ }
++ }
++
++ else if(proc_result==DE_ALLOCATE)
++ {
++ done_td->parent_ed_p->ed_status.is_in_transferring = false;
++ done_td->parent_ed_p->ed_status.in_transferring_td = 0;
++ done_td->is_transfer_done = true;
++ done_td->is_transferring = false;
++
++ otg_usbcore_giveback( done_td);
++ release_trans_resource(done_td);
++ }
++
++ else
++ { //NO_ACTION....
++ done_td->parent_ed_p->ed_status.is_in_transferring = true;
++ done_td->parent_ed_p->ed_status.in_transferring_td = (u32)done_td;
++ done_td->is_transfer_done = false;
++ done_td->is_transferring = true;
++ }
++ do_try_cnt++;
++ }
++ // Complete to process the Channel Interrupt.
++ // So. we now start to scheduler of S3CScheduler.
++ do_schedule();
++
++}
++
++
++int release_trans_resource(td_t * done_td)
++{
++ //remove the pDeallocateTD from parent_ed_p.
++ otg_list_pop(&done_td->td_list_entry);
++ done_td->parent_ed_p->num_td--;
++
++ //Call deallocate to release the channel and bandwidth resource of S3CScheduler.
++ deallocate(done_td);
++ delete_td(done_td);
++ return USB_ERR_SUCCESS;
++}
++
++u32 calc_transferred_size(bool f_is_complete,
++ td_t *td,
++ hc_info_t *hc_info)
++{
++ if(f_is_complete)
++ {
++ if(td->parent_ed_p->ed_desc.is_ep_in)
++ {
++ return td->cur_stransfer.buf_size - hc_info->hc_size.b.xfersize;
++ }
++ else
++ {
++ return td->cur_stransfer.buf_size;
++ }
++ }
++ else
++ {
++ return (td->cur_stransfer.packet_cnt - hc_info->hc_size.b.pktcnt)*td->parent_ed_p->ed_desc.max_packet_size;
++ }
++
++}
++
++void update_frame_number(td_t *pResultTD)
++{
++ u32 cur_frame_num=0;
++
++ if(pResultTD->parent_ed_p->ed_desc.endpoint_type == CONTROL_TRANSFER ||
++ pResultTD->parent_ed_p->ed_desc.endpoint_type == BULK_TRANSFER)
++ {
++ return;
++ }
++
++ pResultTD->parent_ed_p->ed_desc.sched_frame+= pResultTD->parent_ed_p->ed_desc.interval;
++ pResultTD->parent_ed_p->ed_desc.sched_frame &= HFNUM_MAX_FRNUM;
++
++ cur_frame_num = oci_get_frame_num();
++ if(((cur_frame_num - pResultTD->parent_ed_p->ed_desc.sched_frame)&HFNUM_MAX_FRNUM) <= (HFNUM_MAX_FRNUM>>1))
++ {
++ pResultTD->parent_ed_p->ed_desc.sched_frame = cur_frame_num;
++ }
++}
++
++void update_datatgl(u8 ubCurDataTgl,
++ td_t *td)
++{
++ switch(td->parent_ed_p->ed_desc.endpoint_type)
++ {
++ case CONTROL_TRANSFER:
++ if(td->standard_dev_req_info.conrol_transfer_stage == DATA_STAGE)
++ {
++ td->parent_ed_p->ed_status.control_data_tgl.data_tgl = ubCurDataTgl;
++ }
++ break;
++ case BULK_TRANSFER:
++ case INT_TRANSFER:
++ td->parent_ed_p->ed_status.data_tgl =ubCurDataTgl;
++ break;
++
++ case ISOCH_TRANSFER:
++ break;
++ default:break;
++ }
++}
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-common.h b/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-common.h
+new file mode 100644
+index 0000000..3b9822e
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-common.h
+@@ -0,0 +1,79 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : CommonTransferChecker.h
++ * [Description] : The Header file defines the external and internal functions of CommonTransferChecker.
++ * [Author] : Yang Soon Yeal { syatom.yang@samsung.com }
++ * [Department] : System LSI Division/System SW Lab
++ * [Created Date]: 2008/06/12
++ * [Revision History]
++ * (1) 2008/06/12 by Yang Soon Yeal { syatom.yang@samsung.com }
++ * - Created this file and defines functions of CommonTransferChecker
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#ifndef _COMMON_TRANSFER_CHECKER_H
++#define _COMMON_TRANSFER_CHECKER_H
++
++/*
++// ----------------------------------------------------------------------------
++// Include files : None.
++// ----------------------------------------------------------------------------
++*/
++
++#include "s3c-otg-common-common.h"
++//#include "s3c-otg-common-const.h"
++#include "s3c-otg-common-errorcode.h"
++#include "s3c-otg-common-datastruct.h"
++#include "s3c-otg-common-regdef.h"
++#include "s3c-otg-transfer-transfer.h"
++
++#include "s3c-otg-hcdi-debug.h"
++#include "s3c-otg-hcdi-memory.h"
++#include "s3c-otg-scheduler-scheduler.h"
++#include "s3c-otg-isr.h"
++#include "s3c-otg-transferchecker-control.h"
++#include "s3c-otg-transferchecker-bulk.h"
++#include "s3c-otg-transferchecker-interrupt.h"
++//#include "s3c-otg-transferchecker-iso.h"
++
++
++
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++
++//void init_done_transfer_checker (void);
++void do_transfer_checker (void);
++int release_trans_resource(td_t *done_td);
++u32 calc_transferred_size(bool f_is_complete,
++ td_t *td,
++ hc_info_t *hc_info);
++void update_frame_number(td_t *result_td);
++void update_datatgl(u8 cur_data_tgl,
++ td_t *td);
++
++#ifdef __cplusplus
++}
++#endif
++
++
++#endif
++
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-control.c b/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-control.c
+new file mode 100644
+index 0000000..bd7f54f
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-control.c
+@@ -0,0 +1,791 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : ControlTransferChecker.c
++ * [Description] : The Source file implements the external and internal functions of ControlTransferChecker.
++ * [Author] : Yang Soon Yeal { syatom.yang@samsung.com }
++ * [Department] : System LSI Division/System SW Lab
++ * [Created Date]: 2009/01/12
++ * [Revision History]
++ * (1) 2008/06/13 by Yang Soon Yeal { syatom.yang@samsung.com }
++ * - Created this file and implements functions of ControlTransferChecker
++ * (2) 2008/06/18 by Yang Soon Yeal { syatom.yang@samsung.com }
++ * - Completed to implement ControlTransferChecker.c v1.0
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#include "s3c-otg-transferchecker-control.h"
++#include "s3c-otg-isr.h"
++
++
++
++/******************************************************************************/
++/*!
++ * @name u8 process_control_transfer(td_t *result_td,
++ hc_info_t *hc_reg_data)
++
++ *
++ * @brief this function processes the result of the Control Transfer.
++ * firstly, this function checks the result the Control Transfer.
++ * and according to the result, calls the sub-functions to process the result.
++ *
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] ubChNum -indicates the number of the channel to be interrupted.
++ * [IN] hc_reg_data -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return RE_TRANSMIT -if need to retransmit the result_td.
++ * RE_SCHEDULE -if need to reschedule the result_td.
++ * DE_ALLOCATE -if USB Transfer is completed.
++ */
++/******************************************************************************/
++u8 process_control_transfer(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ hcintn_t hcintr_info;
++ u8 ret_val=0;
++
++ //we just deal with the interrupts to be unmasked.
++ hcintr_info.d32 = hc_reg_data->hc_int.d32&result_td->cur_stransfer.hc_reg.hc_int_msk.d32;
++
++ if(result_td->parent_ed_p->ed_desc.is_ep_in)
++ {
++ if(hcintr_info.b.chhltd)
++ {
++ ret_val = process_chhltd_on_control(result_td, hc_reg_data);
++ }
++
++ else if (hcintr_info.b.ack)
++ {
++ ret_val =process_ack_on_control(result_td, hc_reg_data);
++ }
++
++ else if (hcintr_info.b.nak)
++ {
++ ret_val =process_nak_on_control(result_td, hc_reg_data);
++ }
++
++ else if (hcintr_info.b.datatglerr)
++ {
++ ret_val = process_datatgl_on_control(result_td,hc_reg_data);
++ }
++ }
++ else
++ {
++ if(hcintr_info.b.chhltd)
++ {
++ ret_val = process_chhltd_on_control(result_td, hc_reg_data);
++ }
++
++ else if(hcintr_info.b.ack)
++ {
++ ret_val =process_ack_on_control( result_td, hc_reg_data);
++
++ }
++ }
++
++ return ret_val;
++}
++
++
++u8 process_indirection_on_control( td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ if(hc_reg_data->hc_int.b.xfercompl)
++ {
++ return process_xfercompl_on_control( result_td, hc_reg_data);
++ }
++ else if(hc_reg_data->hc_int.b.stall)
++ {
++ return process_stall_on_control(result_td, hc_reg_data);
++ }
++ else if(hc_reg_data->hc_int.b.bblerr)
++ {
++ return process_bblerr_on_control(result_td, hc_reg_data);
++ }
++ else if(hc_reg_data->hc_int.b.xacterr)
++ {
++ return process_xacterr_on_control(result_td, hc_reg_data);
++ }
++ else
++ {
++
++ //Occure Error State.....
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ALL);
++
++ //Mask ack Interrupt..
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++ result_td->err_cnt++;
++ if(result_td->err_cnt == 3)
++ {
++ result_td->error_code = USB_ERR_STATUS_XACTERR;
++ result_td->err_cnt = 0;
++ return DE_ALLOCATE;
++ }
++ return RE_TRANSMIT;
++ }
++}
++u8 process_outdirection_on_control(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ if(hc_reg_data->hc_int.b.xfercompl)
++ {
++ return process_xfercompl_on_control(result_td, hc_reg_data);
++ }
++ else if(hc_reg_data->hc_int.b.stall)
++ {
++ return process_stall_on_control(result_td, hc_reg_data);
++ }
++ else if(hc_reg_data->hc_int.b.nak)
++ {
++ return process_nak_on_control(result_td, hc_reg_data);
++ }
++ else if(hc_reg_data->hc_int.b.xacterr)
++ {
++ return process_xacterr_on_control(result_td, hc_reg_data);
++ }
++ else if(hc_reg_data->hc_int.b.nyet)
++ {
++ return process_nyet_on_control(result_td, hc_reg_data);
++ }
++ else
++ {
++ //occur error state...
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ALL);
++
++ //Mask ack Interrupt..
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ result_td->err_cnt++;
++ if(result_td->err_cnt == 3)
++ {
++ result_td->error_code = USB_ERR_STATUS_XACTERR;
++ result_td->err_cnt = 0;
++ return DE_ALLOCATE;
++ }
++
++ return RE_TRANSMIT;
++ }
++}
++
++/********************************************************************************
++ * @name u8 process_chhltd_on_control( td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function processes Channel Halt event according to Synopsys OTG Spec.
++ * firstly, this function checks the reason of the Channel Halt, and according to the reason,
++ * calls the sub-functions to process the result.
++ *
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] hc_reg_data -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return RE_TRANSMIT -if need to retransmit the result_td.
++ * RE_SCHEDULE -if need to reschedule the result_td.
++ * DE_ALLOCATE -if USB Transfer is completed.
++ */
++/******************************************************************************/
++u8 process_chhltd_on_control( td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++
++ if(result_td->standard_dev_req_info.conrol_transfer_stage == SETUP_STAGE)
++ {
++ return process_outdirection_on_control(result_td, hc_reg_data);
++ }
++ else if(result_td->standard_dev_req_info.conrol_transfer_stage == DATA_STAGE)
++ {
++ if(result_td->parent_ed_p->ed_desc.is_ep_in)
++ {
++ return process_indirection_on_control(result_td, hc_reg_data);
++ }
++ else
++ {
++ return process_outdirection_on_control(result_td, hc_reg_data);
++ }
++ }
++ else
++ {
++ if(result_td->standard_dev_req_info.is_data_stage == true)
++ {
++ if(result_td->parent_ed_p->ed_desc.is_ep_in)
++ {
++ return process_outdirection_on_control(result_td, hc_reg_data);
++ }
++ else
++ {
++ return process_indirection_on_control(result_td, hc_reg_data);
++ }
++ }
++ else
++ {
++ return process_indirection_on_control(result_td, hc_reg_data);
++ }
++ }
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_xfercompl_on_control(td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with the xfercompl event according to Synopsys OTG Spec.
++ * the procedure of this function is as following
++ * 1. clears all bits of the channel' HCINT by using clear_ch_intr() of S3CIsr.
++ * 2. masks some bit of HCINTMSK
++ * 3. updates the result_td fields
++ * err_cnt/u8/standard_dev_req_info.
++ * 4. updates the result_td->parent_ed_p->ed_status.
++ * control_data_tgl.
++ * 5. calculates the tranferred size by calling calc_transferred_size() on DATA_STAGE.
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] hc_reg_data -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return USB_ERR_SUCCESS
++ */
++/******************************************************************************/
++u8 process_xfercompl_on_control(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ u8 ret_val = 0;
++
++ result_td->err_cnt = 0;
++
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum,CH_STATUS_ALL);
++ //Mask ack Interrupt..
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ result_td->parent_ed_p->ed_status.is_ping_enable =false;
++
++ switch(result_td->standard_dev_req_info.conrol_transfer_stage)
++ {
++ case SETUP_STAGE:
++ if(result_td->standard_dev_req_info.is_data_stage)
++ {
++ result_td->standard_dev_req_info.conrol_transfer_stage = DATA_STAGE;
++ }
++ else
++ {
++ result_td->standard_dev_req_info.conrol_transfer_stage = STATUS_STAGE;
++ }
++ ret_val = RE_TRANSMIT;
++
++ break;
++
++ case DATA_STAGE:
++
++ result_td->transferred_szie += calc_transferred_size(true,result_td, hc_reg_data);
++
++ if(result_td->transferred_szie==result_td->buf_size)
++ {//at IN Transfer, short transfer is accepted.
++ result_td->standard_dev_req_info.conrol_transfer_stage =STATUS_STAGE;
++ result_td->error_code = USB_ERR_STATUS_COMPLETE;
++ }
++ else
++ {
++ if(result_td->parent_ed_p->ed_desc.is_ep_in&& hc_reg_data->hc_size.b.xfersize)
++ {
++ if(result_td->transfer_flag&USB_TRANS_FLAG_NOT_SHORT)
++ {
++ result_td->error_code =USB_ERR_STATUS_SHORTREAD;
++ result_td->standard_dev_req_info.conrol_transfer_stage=STATUS_STAGE;
++ }
++ else
++ {
++ result_td->error_code =USB_ERR_STATUS_COMPLETE;
++ result_td->standard_dev_req_info.conrol_transfer_stage =STATUS_STAGE;
++ }
++ }
++ else
++ { // the Data Stage is not completed. So we need to continue Data Stage.
++ result_td->standard_dev_req_info.conrol_transfer_stage = DATA_STAGE;
++ update_datatgl(hc_reg_data->hc_size.b.pid, result_td);
++ }
++ }
++
++ if(hc_reg_data->hc_int.b.nyet)
++ {
++ //at OUT Transfer, we must re-transmit.
++ if(result_td->parent_ed_p->ed_desc.is_ep_in==false)
++ {
++
++ if(result_td->parent_ed_p->ed_desc.dev_speed == HIGH_SPEED_OTG)
++ {
++ result_td->parent_ed_p->ed_status.is_ping_enable = true;
++ }
++ else
++ {
++ result_td->parent_ed_p->ed_status.is_ping_enable = false;
++ }
++ }
++ }
++ ret_val = RE_TRANSMIT;
++ break;
++
++ case STATUS_STAGE:
++ result_td->standard_dev_req_info.conrol_transfer_stage = COMPLETE_STAGE;
++
++ if(hc_reg_data->hc_int.b.nyet)
++ {
++ //at OUT Transfer, we must re-transmit.
++ if(result_td->parent_ed_p->ed_desc.is_ep_in==false)
++ {
++
++ if(result_td->parent_ed_p->ed_desc.dev_speed == HIGH_SPEED_OTG)
++ {
++ result_td->parent_ed_p->ed_status.is_ping_enable = true;
++ }
++ else
++ {
++ result_td->parent_ed_p->ed_status.is_ping_enable = false;
++ }
++ }
++ }
++
++ ret_val = DE_ALLOCATE;
++ break;
++
++ default:
++ break;
++ }
++
++ return ret_val;
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_ahb_on_control( td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with theAHB Errorl event according to Synopsys OTG Spec.
++ * this function stop the channel to be executed
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] hc_reg_data -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return DE_ALLOCATE
++ */
++/******************************************************************************/
++u8 process_ahb_on_control( td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ result_td->err_cnt =0;
++ result_td->error_code =USB_ERR_STATUS_AHBERR;
++
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_AHBErr);
++
++ //Mask ack Interrupt..
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ // we just calculate the size of the transferred data on Data Stage of Control Transfer.
++ if(result_td->standard_dev_req_info.conrol_transfer_stage == DATA_STAGE)
++ {
++ result_td->transferred_szie += calc_transferred_size(false,result_td, hc_reg_data);
++ }
++
++ return DE_ALLOCATE;
++
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_stall_on_control( td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with theStall event according to Synopsys OTG Spec.
++ * but USB2.0 Spec don't permit the Stall on Setup Stage of Control Transfer.
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] hc_reg_data -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return DE_ALLOCATE
++ */
++/******************************************************************************/
++u8 process_stall_on_control( td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ result_td->err_cnt =0;
++ result_td->error_code =USB_ERR_STATUS_STALL;
++
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ALL);
++
++ //Mask ack Interrupt..
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ result_td->parent_ed_p->ed_status.is_ping_enable = false;
++
++ // we just calculate the size of the transferred data on Data Stage of Control Transfer.
++ if(result_td->standard_dev_req_info.conrol_transfer_stage == DATA_STAGE)
++ {
++ result_td->transferred_szie += calc_transferred_size(false,result_td, hc_reg_data);
++ }
++
++ return DE_ALLOCATE;
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_nak_on_control( td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with the nak event according to Synopsys OTG Spec.
++ * nak is occured at OUT/IN Transaction of Data/Status Stage, and is not occured at Setup Stage.
++ * If nak is occured at IN Transaction, this function processes this interrupt as following.
++ * 1. resets the result_td->err_cnt.
++ * 2. masks ack/nak/DaaTglErr bit of HCINTMSK.
++ * 3. clears the nak bit of HCINT
++ * 4. be careful, nak of IN Transaction don't require re-transmit.
++ * If nak is occured at OUT Transaction, this function processes this interrupt as following.
++ * 1. all procedures of IN Transaction are executed.
++ * 2. calculates the size of the transferred data.
++ * 3. if the speed of USB Device is High-Speed, sets the ping protocol.
++ * 4. update the Toggle
++ * at OUT Transaction, this function check whether the speed of USB Device is High-Speed or not.
++ * if USB Device is High-Speed, then
++ * this function sets the ping protocol.
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] hc_reg_data -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return RE_SCHEDULE
++ */
++/******************************************************************************/
++u8 process_nak_on_control( td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ result_td->err_cnt = 0;
++
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++
++ //at OUT Transfer, we must re-transmit.
++ if(result_td->parent_ed_p->ed_desc.is_ep_in==false)
++ {
++ result_td->transferred_szie += calc_transferred_size(false,result_td, hc_reg_data);
++
++ update_datatgl(hc_reg_data->hc_size.b.pid, result_td);
++ }
++
++ if(result_td->parent_ed_p->ed_desc.dev_speed == HIGH_SPEED_OTG)
++ {
++ if(result_td->standard_dev_req_info.conrol_transfer_stage == DATA_STAGE)
++ {
++ if(result_td->parent_ed_p->ed_desc.is_ep_in==false)
++ {
++ result_td->parent_ed_p->ed_status.is_ping_enable = true;
++ }
++ }
++ else if(result_td->standard_dev_req_info.conrol_transfer_stage == STATUS_STAGE)
++ {
++ if(result_td->parent_ed_p->ed_desc.is_ep_in==true)
++ {
++ result_td->parent_ed_p->ed_status.is_ping_enable = true;
++ }
++ }
++ else
++ {
++ result_td->parent_ed_p->ed_status.is_ping_enable = false;
++ }
++
++ }
++
++ return RE_SCHEDULE;
++
++
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_ack_on_control( td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with the ack event according to Synopsys OTG Spec.
++ * ack of IN/OUT Transaction don't need any retransmit.
++ * this function just resets result_td->err_cnt and masks ack/nak/DataTgl of HCINTMSK.
++ * finally, this function clears ack bit of HCINT.
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] hc_reg_data -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return NO_ACTION
++ */
++/******************************************************************************/
++u8 process_ack_on_control(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ result_td->err_cnt = 0;
++
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++
++ result_td->parent_ed_p->ed_status.is_ping_enable =false;
++
++ return NO_ACTION;
++
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_nyet_on_control(td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with the nyet event according to Synopsys OTG Spec.
++ * nyet is occured at OUT Transaction of Data/Status Stage, and is not occured at Setup Stage.
++ * If nyet is occured at OUT Transaction, this function processes this interrupt as following.
++ * 1. resets the result_td->err_cnt.
++ * 2. masks ack/nak/datatglerr bit of HCINTMSK.
++ * 3. clears the nyet bit of HCINT
++ * 4. calculates the size of the transferred data.
++ * 5. if the speed of USB Device is High-Speed, sets the ping protocol.
++ * 6. update the Data Toggle.
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] hc_reg_data -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return RE_SCHEDULE
++ */
++/******************************************************************************/
++u8 process_nyet_on_control(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ result_td->err_cnt = 0;
++
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NYET);
++
++ result_td->transferred_szie += calc_transferred_size(false,result_td, hc_reg_data);
++
++ if(result_td->parent_ed_p->ed_desc.dev_speed == HIGH_SPEED_OTG)
++ {
++ if(result_td->standard_dev_req_info.conrol_transfer_stage == DATA_STAGE)
++ {
++ if(result_td->parent_ed_p->ed_desc.is_ep_in==false)
++ {
++ result_td->parent_ed_p->ed_status.is_ping_enable = true;
++ }
++ }
++ else if(result_td->standard_dev_req_info.conrol_transfer_stage == STATUS_STAGE)
++ {
++ if(result_td->parent_ed_p->ed_desc.is_ep_in==true)
++ {
++ result_td->parent_ed_p->ed_status.is_ping_enable = true;
++ }
++ }
++ else
++ {
++ result_td->parent_ed_p->ed_status.is_ping_enable = false;
++ }
++
++ }
++
++ update_datatgl(hc_reg_data->hc_size.b.pid, result_td);
++
++ return RE_SCHEDULE;
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_xacterr_on_control( td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with the xacterr event according to Synopsys OTG Spec.
++ * xacterr is occured at OUT/IN Transaction of Data/Status Stage, and is not occured at Setup Stage.
++ * if Timeout/CRC error/false EOP is occured, then xacterr is occured.
++ * the procedure to process xacterr is as following.
++ * 1. increses the result_td->err_cnt
++ * 2. check whether the result_td->err_cnt is equal to 3.
++ * 2. unmasks ack/nak/datatglerr bit of HCINTMSK.
++ * 3. clears the xacterr bit of HCINT
++ * 4. calculates the size of the transferred data.
++ * 5. if the speed of USB Device is High-Speed, sets the ping protocol.
++ * 6. update the Data Toggle.
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] hc_reg_data -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return RE_TRANSMIT -if the Error Counter is less than RETRANSMIT_THRESHOLD
++ * DE_ALLOCATE -if the Error Counter is equal to RETRANSMIT_THRESHOLD
++ */
++/******************************************************************************/
++u8 process_xacterr_on_control(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ u8 ret_val=0;
++
++ if(result_td->err_cnt<RETRANSMIT_THRESHOLD)
++ {
++ result_td->cur_stransfer.hc_reg.hc_int_msk.d32 |= (CH_STATUS_ACK+CH_STATUS_NAK+CH_STATUS_DataTglErr);
++ ret_val = RE_TRANSMIT;
++ unmask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ unmask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ unmask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++ result_td->err_cnt++ ;
++ }
++ else
++ {
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++ ret_val = DE_ALLOCATE;
++ result_td->err_cnt = 0 ;
++ result_td->error_code = USB_ERR_STATUS_XACTERR;
++ }
++
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ if(result_td->standard_dev_req_info.conrol_transfer_stage == DATA_STAGE)
++ {
++ result_td->transferred_szie += calc_transferred_size(false,result_td, hc_reg_data);
++
++ }
++
++ if(result_td->parent_ed_p->ed_desc.dev_speed == HIGH_SPEED_OTG)
++ {
++ if(result_td->standard_dev_req_info.conrol_transfer_stage == DATA_STAGE)
++ {
++ if(result_td->parent_ed_p->ed_desc.is_ep_in==false)
++ {
++ result_td->parent_ed_p->ed_status.is_ping_enable = true;
++ }
++ }
++ else if(result_td->standard_dev_req_info.conrol_transfer_stage == STATUS_STAGE)
++ {
++ if(result_td->parent_ed_p->ed_desc.is_ep_in==true)
++ {
++ result_td->parent_ed_p->ed_status.is_ping_enable = true;
++ }
++ }
++ else
++ {
++ result_td->parent_ed_p->ed_status.is_ping_enable = false;
++ }
++
++
++ }
++
++
++
++ update_datatgl(hc_reg_data->hc_size.b.pid, result_td);
++
++ return ret_val;
++
++}
++
++/******************************************************************************/
++/*!
++ * @name void process_bblerr_on_control( td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with the Babble event according to Synopsys OTG Spec.
++ * babble error can be just occured at IN Transaction. So if the direction of transfer is
++ * OUT, this function return Error Code.
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] hc_reg_data -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return DE_ALLOCATE
++ * NO_ACTION -if the direction is OUT
++ */
++/******************************************************************************/
++u8 process_bblerr_on_control( td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++
++ if(!result_td->parent_ed_p->ed_desc.is_ep_in)
++ {
++ return NO_ACTION;
++ }
++
++ result_td->err_cnt = 0;
++ result_td->error_code =USB_ERR_STATUS_BBLERR;
++
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ALL);
++
++ //Mask ack Interrupt..
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ result_td->parent_ed_p->ed_status.is_ping_enable =false;
++
++ // we just calculate the size of the transferred data on Data Stage of Control Transfer.
++ if(result_td->standard_dev_req_info.conrol_transfer_stage == DATA_STAGE)
++ {
++ result_td->transferred_szie += calc_transferred_size(false, result_td, hc_reg_data);
++ }
++
++ return DE_ALLOCATE;
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_datatgl_on_control(td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with the datatglerr event according to Synopsys OTG Spec.
++ * the datatglerr event is occured at IN Transfer.
++ * this function just resets result_td->err_cnt and masks ack/nak/DataTgl of HCINTMSK.
++ * finally, this function clears datatglerr bit of HCINT.
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] hc_reg_data -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return NO_ACTION
++ */
++/******************************************************************************/
++u8 process_datatgl_on_control( td_t * result_td,
++ hc_info_t * hc_reg_data)
++{
++ result_td->err_cnt = 0;
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ return NO_ACTION;
++
++}
++
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-control.h b/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-control.h
+new file mode 100644
+index 0000000..120a0c5
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-control.h
+@@ -0,0 +1,100 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : ControlTransferChecker.h
++ * [Description] : The Header file defines the external and internal functions of ControlTransferChecker
++ * [Author] : Yang Soon Yeal { syatom.yang@samsung.com }
++ * [Department] : System LSI Division/System SW Lab
++ * [Created Date]: 2009/01/12
++ * [Revision History]
++ * (1) 2008/06/13 by Yang Soon Yeal { syatom.yang@samsung.com }
++ * - Created this file and defines functions of ControlTransferChecker
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#ifndef _CONTROL_TRANSFER_CHECKER_H
++#define _CONTROL_TRANSFER_CHECKER_H
++
++/*
++// ----------------------------------------------------------------------------
++// Include files : None.
++// ----------------------------------------------------------------------------
++*/
++
++#include "s3c-otg-common-common.h"
++//#include "s3c-otg-common-typedef.h"
++#include "s3c-otg-common-const.h"
++#include "s3c-otg-common-errorcode.h"
++#include "s3c-otg-common-datastruct.h"
++#include "s3c-otg-common-regdef.h"
++
++#include "s3c-otg-hcdi-debug.h"
++#include "s3c-otg-scheduler-scheduler.h"
++
++#include "s3c-otg-transferchecker-checker.h"
++
++
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++u8 process_control_transfer( td_t *raw_td,
++ hc_info_t *hc_reg_data);
++
++u8 process_xfercompl_on_control(td_t *raw_td,
++ hc_info_t *hc_reg_data);
++
++u8 process_chhltd_on_control( td_t *raw_td,
++ hc_info_t *hc_reg_data);
++
++u8 process_ahb_on_control( td_t *raw_td,
++ hc_info_t *hc_reg_data);
++
++u8 process_stall_on_control( td_t *raw_td,
++ hc_info_t *hc_reg_data);
++
++u8 process_nak_on_control (td_t *raw_td,
++ hc_info_t *hc_reg_data);
++
++u8 process_ack_on_control (td_t *raw_td,
++ hc_info_t *hc_reg_data);
++
++u8 process_nyet_on_control( td_t *raw_td,
++ hc_info_t *hc_reg_data);
++
++u8 process_xacterr_on_control(td_t *raw_td,
++ hc_info_t *hc_reg_data);
++
++u8 process_bblerr_on_control( td_t *raw_td,
++ hc_info_t *hc_reg_data);
++
++u8 process_datatgl_on_control(td_t *raw_td,
++ hc_info_t *hc_reg_data);
++u8 process_indirection_on_control( td_t *result_td,
++ hc_info_t *hc_reg_data);
++
++u8 process_outdirection_on_control(td_t *result_td,
++ hc_info_t *hc_reg_data);
++
++#ifdef __cplusplus
++}
++#endif
++
++
++#endif
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-interrupt.c b/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-interrupt.c
+new file mode 100644
+index 0000000..b9ac765
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-interrupt.c
+@@ -0,0 +1,582 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : IntTransferChecker.c
++ * [Description] : The Source file implements the external and internal functions of IntTransferChecker
++ * [Author] : Yang Soon Yeal { syatom.yang@samsung.com }
++ * [Department] : System LSI Division/System SW Lab
++ * [Created Date]: 2008/06/19
++ * [Revision History]
++ * (1) 2008/06/18 by Yang Soon Yeal { syatom.yang@samsung.com }
++ * - Created this file and implements functions of IntTransferChecker
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++
++#include "s3c-otg-transferchecker-interrupt.h"
++
++/******************************************************************************/
++/*!
++ * @name u8 process_intr_transfer(td_t *result_td,
++ * hc_info_t *HCRegData)
++ *
++ *
++ * @brief this function processes the result of the Interrupt Transfer.
++ * firstly, this function checks the result of the Interrupt Transfer.
++ * and according to the result, calls the sub-functions to process the result.
++ *
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t whose channel is interruped.
++ * [IN] HCRegData -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return RE_TRANSMIT -if need to retransmit the result_td.
++ * RE_SCHEDULE -if need to reschedule the result_td.
++ * DE_ALLOCATE -if USB Transfer is completed.
++ * NO_ACTION -if we don't need any action,
++ */
++/******************************************************************************/
++u8 process_intr_transfer(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ hcintn_t hc_intr_info;
++ u8 ret_val=0;
++
++ //we just deal with the interrupts to be unmasked.
++ hc_intr_info.d32 = hc_reg_data->hc_int.d32&result_td->cur_stransfer.hc_reg.hc_int_msk.d32;
++
++ if(result_td->parent_ed_p->ed_desc.is_ep_in)
++ {
++ if(hc_intr_info.b.chhltd)
++ {
++ ret_val = process_chhltd_on_intr(result_td, hc_reg_data);
++ }
++
++ else if (hc_intr_info.b.ack)
++ {
++ ret_val =process_ack_on_intr(result_td, hc_reg_data);
++ }
++ }
++ else
++ {
++ if(hc_intr_info.b.chhltd)
++ {
++ ret_val = process_chhltd_on_intr(result_td, hc_reg_data);
++
++ }
++
++ else if(hc_intr_info.b.ack)
++ {
++ ret_val =process_ack_on_intr( result_td, hc_reg_data);
++ }
++ }
++
++ return ret_val;
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_chhltd_on_intr(td_t *result_td,
++ * hc_info_t *HCRegData)
++ *
++ *
++ * @brief this function processes Channel Halt event according to Synopsys OTG Spec.
++ * firstly, this function checks the reason of the Channel Halt, and according to the reason,
++ * calls the sub-functions to process the result.
++ *
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] HCRegData -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return RE_TRANSMIT -if need to retransmit the result_td.
++ * RE_SCHEDULE -if need to reschedule the result_td.
++ * DE_ALLOCATE -if USB Transfer is completed.
++ */
++/******************************************************************************/
++u8 process_chhltd_on_intr(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ if(result_td->parent_ed_p->ed_desc.is_ep_in)
++ {
++ if(hc_reg_data->hc_int.b.xfercompl)
++ {
++ return process_xfercompl_on_intr( result_td, hc_reg_data);
++ }
++ else if(hc_reg_data->hc_int.b.stall)
++ {
++ return process_stall_on_intr(result_td, hc_reg_data);
++ }
++ else if(hc_reg_data->hc_int.b.bblerr)
++ {
++ return process_bblerr_on_intr(result_td, hc_reg_data);
++ }
++ else if (hc_reg_data->hc_int.b.nak)
++ {
++ return process_nak_on_intr(result_td, hc_reg_data);
++ }
++ else if(hc_reg_data->hc_int.b.datatglerr)
++ {
++ return process_datatgl_on_intr(result_td, hc_reg_data);
++ }
++ else if(hc_reg_data->hc_int.b.frmovrun)
++ {
++ return process_frmovrrun_on_intr(result_td,hc_reg_data);
++ }
++ else if(hc_reg_data->hc_int.b.xacterr)
++ {
++ return process_xacterr_on_intr(result_td, hc_reg_data);
++ }
++ else
++ {
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ALL);
++
++ //Mask ack Interrupt..
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++ return RE_TRANSMIT;
++ }
++ }
++ else
++ {
++ if(hc_reg_data->hc_int.b.xfercompl)
++ {
++ return process_xfercompl_on_intr( result_td, hc_reg_data);
++ }
++ else if(hc_reg_data->hc_int.b.stall)
++ {
++ return process_stall_on_intr(result_td, hc_reg_data);
++ }
++ else if (hc_reg_data->hc_int.b.nak)
++ {
++ return process_nak_on_intr(result_td, hc_reg_data);
++ }
++ else if(hc_reg_data->hc_int.b.frmovrun)
++ {
++ return process_frmovrrun_on_intr(result_td,hc_reg_data);
++ }
++ else if(hc_reg_data->hc_int.b.xacterr)
++ {
++ return process_xacterr_on_intr(result_td, hc_reg_data);
++ }
++ else
++ {
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ALL);
++
++ //Mask ack Interrupt..
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ result_td->err_cnt++;
++ if(result_td->err_cnt == 3)
++ {
++ result_td->error_code = USB_ERR_STATUS_XACTERR;
++ result_td->err_cnt = 0;
++ return DE_ALLOCATE;
++ }
++
++ return RE_TRANSMIT;
++ }
++
++ }
++
++
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_xfercompl_on_intr( td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with the xfercompl event according to Synopsys OTG Spec.
++ * the procedure of this function is as following
++ * 1. clears all bits of the channel' HCINT by using clear_ch_intr() of S3CIsr.
++ * 2. masks ack/nak(?)/datatglerr(?) bit of HCINTMSK
++ * 3. Resets the err_cnt of result_td.
++ * 4. updates the result_td->parent_ed_p->ed_status.
++ * IntDataTgl.
++ * 5. calculates the tranferred size by calling calc_transferred_size() on DATA_STAGE.
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] HCRegData -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return DE_ALLOCATE -if USB Transfer is completed.
++ * RE_TRANSMIT -if need to retransmit the result_td.
++ */
++/******************************************************************************/
++u8 process_xfercompl_on_intr( td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ u8 ret_val=0;
++
++ result_td->err_cnt =0;
++
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ALL);
++
++ //Mask ack Interrupt..
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ result_td->transferred_szie += calc_transferred_size(true,result_td, hc_reg_data);
++
++ if(result_td->transferred_szie==result_td->buf_size)
++ {//at IN Transfer, short transfer is accepted.
++ result_td->error_code = USB_ERR_STATUS_COMPLETE;
++ ret_val = DE_ALLOCATE;
++ }
++ else
++ {
++ // this routine will not be executed on Interrupt Transfer.
++ // So, we should decide to remove this routine or not.
++ if(result_td->parent_ed_p->ed_desc.is_ep_in&& hc_reg_data->hc_size.b.xfersize)
++ {
++ if(result_td->transfer_flag&USB_TRANS_FLAG_NOT_SHORT)
++ {
++ result_td->error_code = USB_ERR_STATUS_SHORTREAD;
++ }
++ else
++ {
++ result_td->error_code = USB_ERR_STATUS_COMPLETE;
++ }
++ ret_val = DE_ALLOCATE;
++ }
++ else
++ { // the Data Stage is not completed. So we need to continue Data Stage.
++ update_datatgl(hc_reg_data->hc_size.b.pid, result_td);
++ ret_val = RE_TRANSMIT;
++ }
++ }
++
++ update_datatgl(hc_reg_data->hc_size.b.pid, result_td);
++
++ return ret_val;
++
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_ahb_on_intr(td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with theAHB Errorl event according to Synopsys OTG Spec.
++ * this function stop the channel to be executed
++ *
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] HCRegData -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return DE_ALLOCATE
++ */
++/******************************************************************************/
++u8 process_ahb_on_intr(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ result_td->err_cnt = 0;
++ result_td->error_code = USB_ERR_STATUS_AHBERR;
++
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_AHBErr);
++
++ //Mask ack Interrupt..
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ // we just calculate the size of the transferred data on Data Stage of Int Transfer.
++ result_td->transferred_szie += calc_transferred_size(false,result_td, hc_reg_data);
++ result_td->parent_ed_p->ed_status.is_ping_enable =false;
++
++ return DE_ALLOCATE;
++
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_stall_on_intr(td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with the Stall event according to Synopsys OTG Spec.
++ * when Stall is occured at Int Transfer, we should reset the PID as DATA0
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] HCRegData -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return DE_ALLOCATE
++ */
++/******************************************************************************/
++u8 process_stall_on_intr(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ result_td->err_cnt = 0;
++ result_td->error_code = USB_ERR_STATUS_STALL;
++
++ //this channel is stalled, So we don't process another interrupts.
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ALL);
++
++ //Mask ack Interrupt..
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ result_td->transferred_szie += calc_transferred_size(false,result_td, hc_reg_data);
++
++ update_datatgl(DATA0, result_td);
++
++ return DE_ALLOCATE;
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_nak_on_intr(td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with the nak event according to Synopsys OTG Spec.
++ * nak is occured at OUT/IN Transaction of Interrupt Transfer.
++ * we can't use ping protocol on Interrupt Transfer. and Syonopsys OTG IP occures
++ * chhltd interrupt on nak of IN/OUT Transaction. So we should retransmit the transfer
++ * on IN Transfer.
++ * If nak is occured at IN Transaction, this function processes this interrupt as following.
++ * 1. resets the result_td->err_cnt.
++ * 2. masks ack/nak/DaaTglErr bit of HCINTMSK.
++ * 3. clears the nak bit of HCINT
++ * 4. calculates frame number to retransmit this Interrupt Transfer.
++ *
++ * If nak is occured at OUT Transaction, this function processes this interrupt as following.
++ * 1. all procedures of IN Transaction are executed.
++ * 2. calculates the size of the transferred data.
++ * 3. if the speed of USB Device is High-Speed, sets the ping protocol.
++ * 4. update the Toggle
++ * at OUT Transaction, this function check whether the speed of USB Device is High-Speed or not.
++ * if USB Device is High-Speed, then
++ * this function sets the ping protocol.
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] HCRegData -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return RE_SCHEDULE -if the direction of the Transfer is OUT
++ * NO_ACTION -if the direction of the Transfer is IN
++ */
++/******************************************************************************/
++u8 process_nak_on_intr(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ result_td->err_cnt = 0;
++
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++
++
++ result_td->transferred_szie += calc_transferred_size(false,result_td, hc_reg_data);
++
++ update_datatgl(hc_reg_data->hc_size.b.pid, result_td);
++
++ update_frame_number(result_td);
++
++ return RE_SCHEDULE;
++// return RE_TRANSMIT;
++
++
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_ack_on_intr(td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with the ack event according to Synopsys OTG Spec.
++ * ack of IN/OUT Transaction don't need any retransmit.
++ * this function just resets result_td->err_cnt and masks ack/nak/DataTgl of HCINTMSK.
++ * finally, this function clears ack bit of HCINT and ed_status.is_ping_enable.
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] HCRegData -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return NO_ACTION
++ */
++/******************************************************************************/
++u8 process_ack_on_intr(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ result_td->err_cnt = 0;
++
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++
++ return NO_ACTION;
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_xacterr_on_intr(td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ * @brief this function deals with the xacterr event according to Synopsys OTG Spec.
++ * xacterr is occured at OUT/IN Transaction and we should retransmit the USB Transfer
++ * if the Error Counter is less than the RETRANSMIT_THRESHOLD.
++ * the reasons of xacterr is Timeout/CRC error/false EOP.
++ * the procedure to process xacterr is as following.
++ * 1. increses the result_td->err_cnt
++ * 2. check whether the result_td->err_cnt is equal to 3.
++ * 2. unmasks ack/nak/datatglerr bit of HCINTMSK.
++ * 3. clears the xacterr bit of HCINT
++ * 4. calculates the size of the transferred data.
++ * 5. update the Data Toggle.
++ * 6. update the frame number to start retransmitting the Interrupt Transfer.
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] HCRegData -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return RE_SCHEDULE -if the error count is less than 3
++ * DE_ALLOCATE -if the error count is equal to 3
++ */
++/******************************************************************************/
++u8 process_xacterr_on_intr(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ u8 ret_val = 0;
++
++ if(result_td->err_cnt<RETRANSMIT_THRESHOLD)
++ {
++ result_td->cur_stransfer.hc_reg.hc_int_msk.d32 |=(CH_STATUS_ACK+CH_STATUS_NAK+CH_STATUS_DataTglErr);
++ ret_val = RE_SCHEDULE;
++ result_td->err_cnt++ ;
++ }
++ else
++ {
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++ ret_val = DE_ALLOCATE;
++ result_td->err_cnt = 0 ;
++ }
++
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ result_td->transferred_szie += calc_transferred_size(false,result_td, hc_reg_data);
++
++ update_datatgl(hc_reg_data->hc_size.b.pid, result_td);
++
++ if(ret_val == RE_SCHEDULE)
++ { //Calculates the frame number
++ update_frame_number(result_td);
++ }
++
++ return ret_val;
++}
++
++/******************************************************************************/
++/*!
++ * @name void process_bblerr_on_intr(td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ *
++ * @brief this function deals with the Babble event according to Synopsys OTG Spec.
++ * babble error is occured when the USB device continues to send packets
++ * althrough EOP is occured. So Babble error is only occured at IN Transfer.
++ * when Babble Error is occured, we should stop the USB Transfer, and return the fact
++ * to Application.
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] HCRegData -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return DE_ALLOCATE
++ */
++/******************************************************************************/
++u8 process_bblerr_on_intr(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++
++ if(!result_td->parent_ed_p->ed_desc.is_ep_in)
++ {
++ return NO_ACTION;
++ }
++
++ result_td->err_cnt = 0;
++ result_td->error_code =USB_ERR_STATUS_BBLERR;
++
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ALL);
++
++ //Mask ack Interrupt..
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ result_td->transferred_szie += calc_transferred_size(false, result_td, hc_reg_data);
++ return DE_ALLOCATE;
++}
++
++/******************************************************************************/
++/*!
++ * @name u8 process_datatgl_on_intr( td_t *result_td,
++ * hc_info_t *hc_reg_data)
++ *
++ * @brief this function deals with the datatglerr event according to Synopsys OTG Spec.
++ * the datatglerr event is occured at IN Transfer, and the channel is not halted.
++ * this function just resets result_td->err_cnt and masks ack/nak/DataTgl of HCINTMSK.
++ * finally, this function clears datatglerr bit of HCINT.
++ *
++ * @param [IN] result_td -indicates the pointer of the td_t to be mapped with the uChNum.
++ * [IN] HCRegData -indicates the interrupt information of the Channel to be interrupted
++ *
++ * @return RE_SCHEDULE
++ */
++/******************************************************************************/
++u8 process_datatgl_on_intr(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++ result_td->err_cnt = 0;
++
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_ACK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++ mask_channel_interrupt(result_td->cur_stransfer.alloc_chnum, CH_STATUS_DataTglErr);
++
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++
++ result_td->transferred_szie += calc_transferred_size(false,result_td, hc_reg_data);
++
++ update_datatgl(hc_reg_data->hc_size.b.pid, result_td);
++
++ update_frame_number(result_td);
++
++ return RE_SCHEDULE;
++}
++
++u8 process_frmovrrun_on_intr(td_t *result_td,
++ hc_info_t *hc_reg_data)
++{
++
++ clear_ch_intr(result_td->cur_stransfer.alloc_chnum, CH_STATUS_NAK);
++
++ update_datatgl(hc_reg_data->hc_size.b.pid, result_td);
++
++ update_frame_number(result_td);
++
++ return RE_TRANSMIT;
++}
++
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-interrupt.h b/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-interrupt.h
+new file mode 100644
+index 0000000..0436117
+--- /dev/null
++++ b/drivers/usb/host/s3c-otg/s3c-otg-transferchecker-interrupt.h
+@@ -0,0 +1,97 @@
++/****************************************************************************
++ * (C) Copyright 2008 Samsung Electronics Co., Ltd., All rights reserved
++ *
++ * [File Name] : IntTransferChecker.h
++ * [Description] : The Header file defines the external and internal functions of IntTransferChecker
++ * [Author] : Yang Soon Yeal { syatom.yang@samsung.com }
++ * [Department] : System LSI Division/System SW Lab
++ * [Created Date]: 2008/06/19
++ * [Revision History]
++ * (1) 2008/06/18 by Yang Soon Yeal { syatom.yang@samsung.com }
++ * - Created this file and defines functions of IntTransferChecker
++ *
++ ****************************************************************************/
++/****************************************************************************
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ ****************************************************************************/
++
++#ifndef _INT_TRANSFER_CHECKER_H
++#define _INT_TRANSFER_CHECKER_H
++
++/*
++// ----------------------------------------------------------------------------
++// Include files : None.
++// ----------------------------------------------------------------------------
++*/
++
++#include "s3c-otg-common-common.h"
++//#include "s3c-otg-common-typedef.h"
++#include "s3c-otg-common-const.h"
++#include "s3c-otg-common-errorcode.h"
++#include "s3c-otg-common-datastruct.h"
++#include "s3c-otg-common-regdef.h"
++
++#include "s3c-otg-hcdi-debug.h"
++#include "s3c-otg-scheduler-scheduler.h"
++#include "s3c-otg-isr.h"
++#include "s3c-otg-transferchecker-checker.h"
++
++
++
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++
++u8 process_intr_transfer(td_t *pRawTD,
++ hc_info_t *pHCRegData);
++
++u8 process_xfercompl_on_intr(td_t *pRawTD,
++ hc_info_t *pHCRegData);
++
++u8 process_chhltd_on_intr(td_t *pRawTD,
++ hc_info_t *pHCRegData);
++
++u8 process_ahb_on_intr(td_t *pRawTD,
++ hc_info_t *pHCRegData);
++
++u8 process_stall_on_intr(td_t *pRawTD,
++ hc_info_t *pHCRegData);
++
++u8 process_nak_on_intr(td_t *pRawTD,
++ hc_info_t *pHCRegData);
++
++u8 process_frmovrrun_on_intr(td_t *pRawTD,
++ hc_info_t *pHCRegData);
++
++u8 process_ack_on_intr(td_t *pRawTD,
++ hc_info_t *pHCRegData);
++
++u8 process_xacterr_on_intr(td_t *pRawTD,
++ hc_info_t *pHCRegData);
++
++u8 process_bblerr_on_intr(td_t *pRawTD,
++ hc_info_t *pHCRegData);
++
++u8 process_datatgl_on_intr(td_t *pRawTD,
++ hc_info_t *pHCRegData);
++
++#ifdef __cplusplus
++}
++#endif
++
++
++#endif
++
+diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
+index 5b3dbcf..4212cd0 100644
+--- a/drivers/video/Kconfig
++++ b/drivers/video/Kconfig
+@@ -201,6 +201,93 @@ config FB_TILEBLITTING
+ comment "Frame buffer hardware drivers"
+ depends on FB
+
++config FB_S3C
++ tristate "S3C Framebuffer Support"
++ select FB_CFB_FILLRECT
++ select FB_CFB_COPYAREA
++ select FB_CFB_IMAGEBLIT
++ depends on FB && ARCH_S3C2410
++
++ default n
++ ---help---
++ TBA
++
++choice
++depends on FB_S3C
++prompt "Select LCD Type"
++default FB_S3C_LTE480WV
++config FB_S3C_LTE480WV
++ bool "LTE480WV/LTP700WV"
++ ---help---
++ TBA
++
++config FB_S3C_LTV350QV
++ bool "LTV350QV"
++ ---help---
++ TBA
++
++config FB_S3C_LTS222QV
++ bool "LTS222QV"
++ ---help---
++ TBA
++
++endchoice
++
++config FB_S3C_BPP
++ tristate "Advanced options for S3C Framebuffer"
++ depends on FB_S3C
++ default n
++ ---help---
++ TBA
++
++choice
++depends on FB_S3C_BPP
++prompt "Select BPP(Bits Per Pixel)"
++default FB_S3C_BPP_16
++config FB_S3C_BPP_8
++ bool "8 BPP"
++ ---help---
++ TBA
++
++config FB_S3C_BPP_16
++ bool "16 BPP"
++ ---help---
++ TBA
++
++config FB_S3C_BPP_24
++ bool "24 BPP"
++ ---help---
++ TBA
++
++config FB_S3C_BPP_32
++ bool "32 BPP"
++ ---help---
++ TBA
++endchoice
++
++config FB_S3C_NUM
++ int "Number of Framebuffers"
++ depends on ARCH_S3C2410 && FB_S3C_BPP
++ default "1"
++ ---help---
++ TBA
++
++config FB_S3C_VIRTUAL_SCREEN
++ bool "Enable Virtual Screen"
++ depends on FB_S3C_BPP
++
++ default n
++ ---help---
++ TBA
++
++config FB_S3C_DOUBLE_BUFFERING
++ bool "Enable Double Buffering"
++ depends on FB_S3C_BPP
++
++ default n
++ ---help---
++ TBA
++
+ config FB_CIRRUS
+ tristate "Cirrus Logic support"
+ depends on FB && (ZORRO || PCI)
+diff --git a/drivers/video/Makefile b/drivers/video/Makefile
+index 83e02b3..87d6c8f 100644
+--- a/drivers/video/Makefile
++++ b/drivers/video/Makefile
+@@ -106,6 +106,7 @@ obj-$(CONFIG_FB_MAXINE) += maxinefb.o
+ obj-$(CONFIG_FB_S1D13XXX) += s1d13xxxfb.o
+ obj-$(CONFIG_FB_IMX) += imxfb.o
+ obj-$(CONFIG_FB_S3C2410) += s3c2410fb.o
++obj-$(CONFIG_FB_S3C) += s3c/
+ obj-$(CONFIG_FB_PNX4008_DUM) += pnx4008/
+ obj-$(CONFIG_FB_PNX4008_DUM_RGB) += pnx4008/
+ obj-$(CONFIG_FB_IBM_GXT4500) += gxt4500.o
+@@ -128,3 +129,4 @@ obj-$(CONFIG_FB_VIRTUAL) += vfb.o
+
+ #video output switch sysfs driver
+ obj-$(CONFIG_VIDEO_OUTPUT_CONTROL) += output.o
++
+diff --git a/drivers/video/backlight/Kconfig b/drivers/video/backlight/Kconfig
+index 9609a6c..710dcc4 100644
+--- a/drivers/video/backlight/Kconfig
++++ b/drivers/video/backlight/Kconfig
+@@ -75,6 +75,14 @@ config BACKLIGHT_HP680
+ If you have a HP Jornada 680, say y to enable the
+ backlight driver.
+
++config BACKLIGHT_SMDK
++ tristate "SMDK Backlight Driver"
++ depends on BACKLIGHT_CLASS_DEVICE && MACH_SMDK
++ default y
++ help
++ If you have SMDK board, say y to enable the
++ backlight driver.
++
+ config BACKLIGHT_PROGEAR
+ tristate "Frontpath ProGear Backlight Driver"
+ depends on BACKLIGHT_CLASS_DEVICE && PCI && X86
+diff --git a/drivers/video/backlight/Makefile b/drivers/video/backlight/Makefile
+index 965a78b..3096708 100644
+--- a/drivers/video/backlight/Makefile
++++ b/drivers/video/backlight/Makefile
+@@ -9,3 +9,4 @@ obj-$(CONFIG_BACKLIGHT_HP680) += hp680_bl.o
+ obj-$(CONFIG_BACKLIGHT_LOCOMO) += locomolcd.o
+ obj-$(CONFIG_BACKLIGHT_PROGEAR) += progear_bl.o
+ obj-$(CONFIG_BACKLIGHT_CARILLO_RANCH) += cr_bllcd.o
++obj-$(CONFIG_BACKLIGHT_SMDK) += smdk_bl.o
+diff --git a/drivers/video/backlight/smdk_bl.c b/drivers/video/backlight/smdk_bl.c
+new file mode 100644
+index 0000000..91a2b75
+--- /dev/null
++++ b/drivers/video/backlight/smdk_bl.c
+@@ -0,0 +1,166 @@
++/*
++ * Backlight Driver for SMDK(Samsung Mobile Develop Kit) board
++ *
++ * Copyright (c) 2008 Jongpill Lee
++ *
++ * Based on hp680 Backlight Driver
++ *
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file "COPYING" in the main directory of this archive
++ * for more details.
++ */
++
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/spinlock.h>
++#include <linux/fb.h>
++#include <linux/backlight.h>
++
++#define SMDK_MAX_INTENSITY 100
++#define SMDK_DEFAULT_INTENSITY 0
++
++unsigned int smdk_bl_suspend_ck;
++static int current_intensity = 0;
++
++extern void s3cfb_set_brightness(int val);
++
++static DEFINE_SPINLOCK(bl_lock);
++
++static void smdk_bl_send_intensity(struct backlight_device *bd)
++{
++ unsigned long flags;
++ int intensity = bd->props.brightness;
++
++ if (bd->props.power != FB_BLANK_UNBLANK)
++ intensity = 0;
++ if (bd->props.fb_blank != FB_BLANK_UNBLANK)
++ intensity = 0;
++ if (smdk_bl_suspend_ck)
++ intensity = 0;
++
++ s3cfb_set_brightness(SMDK_MAX_INTENSITY - intensity);
++
++ current_intensity = intensity;
++}
++
++
++#ifdef CONFIG_PM
++static int smdk_bl_suspend(struct platform_device *pdev, pm_message_t state)
++{
++ struct backlight_device *bd = platform_get_drvdata(pdev);
++
++ smdk_bl_suspend_ck = 1;
++ smdk_bl_send_intensity(bd);
++
++ return 0;
++}
++
++static int smdk_bl_resume(struct platform_device *pdev)
++{
++ struct backlight_device *bd = platform_get_drvdata(pdev);
++
++ smdk_bl_suspend_ck = 0;
++ smdk_bl_send_intensity(bd);
++
++ return 0;
++}
++#else
++#define smdk_bl_suspend NULL
++#define smdk_bl_resume NULL
++#endif
++
++static int smdk_bl_set_intensity(struct backlight_device *bd)
++{
++ smdk_bl_send_intensity(bd);
++ return 0;
++}
++
++static int smdk_bl_get_intensity(struct backlight_device *bd)
++{
++ return current_intensity;
++}
++
++static struct backlight_ops smdk_bl_ops = {
++ .get_brightness = smdk_bl_get_intensity,
++ .update_status = smdk_bl_set_intensity,
++};
++
++static int __init smdk_bl_probe(struct platform_device *pdev)
++{
++ struct backlight_device *bd;
++
++ bd = backlight_device_register ("smdk-backlight", &pdev->dev, NULL,
++ &smdk_bl_ops);
++ if (IS_ERR(bd))
++ return PTR_ERR(bd);
++
++ platform_set_drvdata(pdev, bd);
++
++ bd->props.max_brightness = SMDK_MAX_INTENSITY;
++ bd->props.brightness = SMDK_DEFAULT_INTENSITY;
++ smdk_bl_send_intensity(bd);
++
++ return 0;
++}
++
++static int smdk_bl_remove(struct platform_device *pdev)
++{
++ struct backlight_device *bd = platform_get_drvdata(pdev);
++
++ bd->props.brightness = 0;
++ bd->props.power = 0;
++ smdk_bl_send_intensity(bd);
++
++ backlight_device_unregister(bd);
++
++ return 0;
++}
++
++static struct platform_driver smdk_bl_driver = {
++ .probe = smdk_bl_probe,
++ .remove = smdk_bl_remove,
++ .suspend = smdk_bl_suspend,
++ .resume = smdk_bl_resume,
++ .driver = {
++ .name = "smdk-backlight",
++ },
++};
++
++static struct platform_device *smdk_bl_device;
++
++static int __init smdk_bl_init(void)
++{
++ int ret;
++
++ printk("SMDK board LCD Backlight Device Driver (c) 2008 Samsung Electronics \n");
++
++ ret = platform_driver_register(&smdk_bl_driver);
++ if (!ret) {
++ smdk_bl_device = platform_device_alloc("smdk-backlight", -1);
++ if (!smdk_bl_device)
++ return -ENOMEM;
++
++ ret = platform_device_add(smdk_bl_device);
++
++ if (ret) {
++ platform_device_put(smdk_bl_device);
++ platform_driver_unregister(&smdk_bl_driver);
++ }
++ }
++ return ret;
++}
++
++static void __exit smdk_bl_exit(void)
++{
++ platform_device_unregister(smdk_bl_device);
++ platform_driver_unregister(&smdk_bl_driver);
++}
++
++module_init(smdk_bl_init);
++module_exit(smdk_bl_exit);
++
++MODULE_AUTHOR("Jongpill Lee <boyko.lee@samsung.com>");
++MODULE_DESCRIPTION("SMDK board Backlight Driver");
++MODULE_LICENSE("GPL");
+diff --git a/drivers/video/cfbimgblt.c b/drivers/video/cfbimgblt.c
+index f598907..bc85262 100644
+--- a/drivers/video/cfbimgblt.c
++++ b/drivers/video/cfbimgblt.c
+@@ -84,7 +84,13 @@ static inline void color_imageblit(const struct fb_image *image,
+ /* Draw the penguin */
+ u32 __iomem *dst, *dst2;
+ u32 color = 0, val, shift;
++
++#if defined(CONFIG_FB_S3C)
++ int i, n, bpp = p->fix.line_length / p->var.width * 8;
++#else
+ int i, n, bpp = p->var.bits_per_pixel;
++#endif
++
+ u32 null_bits = 32 - bpp;
+ u32 *palette = (u32 *) p->pseudo_palette;
+ const u8 *src = image->data;
+diff --git a/drivers/video/logo/Kconfig b/drivers/video/logo/Kconfig
+index 9de1c11..0e55269 100644
+--- a/drivers/video/logo/Kconfig
++++ b/drivers/video/logo/Kconfig
+@@ -27,6 +27,11 @@ config LOGO_LINUX_CLUT224
+ bool "Standard 224-color Linux logo"
+ default y
+
++config LOGO_LINUX_LANDSCAPED_CLUT224
++ bool "Standard landscape 224-color Linux logo"
++ depends on LOGO
++ default y
++
+ config LOGO_DEC_CLUT224
+ bool "224-color Digital Equipment Corporation Linux logo"
+ depends on MACH_DECSTATION || ALPHA
+diff --git a/drivers/video/logo/Makefile b/drivers/video/logo/Makefile
+index a5fc4ed..a5ad676 100644
+--- a/drivers/video/logo/Makefile
++++ b/drivers/video/logo/Makefile
+@@ -4,6 +4,7 @@ obj-$(CONFIG_LOGO) += logo.o
+ obj-$(CONFIG_LOGO_LINUX_MONO) += logo_linux_mono.o
+ obj-$(CONFIG_LOGO_LINUX_VGA16) += logo_linux_vga16.o
+ obj-$(CONFIG_LOGO_LINUX_CLUT224) += logo_linux_clut224.o
++obj-$(CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224) += logo_linux_landscaped_clut224.o
+ obj-$(CONFIG_LOGO_DEC_CLUT224) += logo_dec_clut224.o
+ obj-$(CONFIG_LOGO_MAC_CLUT224) += logo_mac_clut224.o
+ obj-$(CONFIG_LOGO_PARISC_CLUT224) += logo_parisc_clut224.o
+diff --git a/drivers/video/logo/logo.c b/drivers/video/logo/logo.c
+index fc72684..d1ec7fd 100644
+--- a/drivers/video/logo/logo.c
++++ b/drivers/video/logo/logo.c
+@@ -24,6 +24,7 @@
+ extern const struct linux_logo logo_linux_mono;
+ extern const struct linux_logo logo_linux_vga16;
+ extern const struct linux_logo logo_linux_clut224;
++extern const struct linux_logo logo_linux_landscaped_clut224;
+ extern const struct linux_logo logo_dec_clut224;
+ extern const struct linux_logo logo_mac_clut224;
+ extern const struct linux_logo logo_parisc_clut224;
+@@ -76,6 +77,10 @@ const struct linux_logo * __init_refok fb_find_logo(int depth)
+ /* Generic Linux logo */
+ logo = &logo_linux_clut224;
+ #endif
++#ifdef CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224
++ /* Generic Linux logo */
++ logo = &logo_linux_landscaped_clut224;
++#endif
+ #ifdef CONFIG_LOGO_DEC_CLUT224
+ /* DEC Linux logo on MIPS/MIPS64 or ALPHA */
+ logo = &logo_dec_clut224;
+diff --git a/drivers/video/logo/logo_linux_clut224.ppm b/drivers/video/logo/logo_linux_clut224.ppm
+index 3c14e43..98b9f74 100644
+--- a/drivers/video/logo/logo_linux_clut224.ppm
++++ b/drivers/video/logo/logo_linux_clut224.ppm
+@@ -1,1604 +1,9843 @@
+ P3
+-# Standard 224-color Linux logo
+-80 80
++320 240
+ 255
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 6 6 6 10 10 10 10 10 10
+- 10 10 10 6 6 6 6 6 6 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 10 10 10 14 14 14
+- 22 22 22 26 26 26 30 30 30 34 34 34
+- 30 30 30 30 30 30 26 26 26 18 18 18
+- 14 14 14 10 10 10 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 14 14 14 26 26 26 42 42 42
+- 54 54 54 66 66 66 78 78 78 78 78 78
+- 78 78 78 74 74 74 66 66 66 54 54 54
+- 42 42 42 26 26 26 18 18 18 10 10 10
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 22 22 22 42 42 42 66 66 66 86 86 86
+- 66 66 66 38 38 38 38 38 38 22 22 22
+- 26 26 26 34 34 34 54 54 54 66 66 66
+- 86 86 86 70 70 70 46 46 46 26 26 26
+- 14 14 14 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 10 10 10 26 26 26
+- 50 50 50 82 82 82 58 58 58 6 6 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 6 6 6 54 54 54 86 86 86 66 66 66
+- 38 38 38 18 18 18 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 22 22 22 50 50 50
+- 78 78 78 34 34 34 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 6 6 6 70 70 70
+- 78 78 78 46 46 46 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 18 18 18 42 42 42 82 82 82
+- 26 26 26 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 14 14 14
+- 46 46 46 34 34 34 6 6 6 2 2 6
+- 42 42 42 78 78 78 42 42 42 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 0 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 10 10 10 30 30 30 66 66 66 58 58 58
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 26 26 26
+- 86 86 86 101 101 101 46 46 46 10 10 10
+- 2 2 6 58 58 58 70 70 70 34 34 34
+- 10 10 10 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 14 14 14 42 42 42 86 86 86 10 10 10
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 30 30 30
+- 94 94 94 94 94 94 58 58 58 26 26 26
+- 2 2 6 6 6 6 78 78 78 54 54 54
+- 22 22 22 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 22 22 22 62 62 62 62 62 62 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 26 26 26
+- 54 54 54 38 38 38 18 18 18 10 10 10
+- 2 2 6 2 2 6 34 34 34 82 82 82
+- 38 38 38 14 14 14 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 30 30 30 78 78 78 30 30 30 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 10 10 10
+- 10 10 10 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 78 78 78
+- 50 50 50 18 18 18 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 38 38 38 86 86 86 14 14 14 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 54 54 54
+- 66 66 66 26 26 26 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 42 42 42 82 82 82 2 2 6 2 2 6
+- 2 2 6 6 6 6 10 10 10 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 6 6 6
+- 14 14 14 10 10 10 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 18 18 18
+- 82 82 82 34 34 34 10 10 10 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 46 46 46 86 86 86 2 2 6 2 2 6
+- 6 6 6 6 6 6 22 22 22 34 34 34
+- 6 6 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 18 18 18 34 34 34
+- 10 10 10 50 50 50 22 22 22 2 2 6
+- 2 2 6 2 2 6 2 2 6 10 10 10
+- 86 86 86 42 42 42 14 14 14 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 46 46 46 86 86 86 2 2 6 2 2 6
+- 38 38 38 116 116 116 94 94 94 22 22 22
+- 22 22 22 2 2 6 2 2 6 2 2 6
+- 14 14 14 86 86 86 138 138 138 162 162 162
+-154 154 154 38 38 38 26 26 26 6 6 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 86 86 86 46 46 46 14 14 14 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 46 46 46 86 86 86 2 2 6 14 14 14
+-134 134 134 198 198 198 195 195 195 116 116 116
+- 10 10 10 2 2 6 2 2 6 6 6 6
+-101 98 89 187 187 187 210 210 210 218 218 218
+-214 214 214 134 134 134 14 14 14 6 6 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 86 86 86 50 50 50 18 18 18 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 1 0 0 0
+- 0 0 1 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 46 46 46 86 86 86 2 2 6 54 54 54
+-218 218 218 195 195 195 226 226 226 246 246 246
+- 58 58 58 2 2 6 2 2 6 30 30 30
+-210 210 210 253 253 253 174 174 174 123 123 123
+-221 221 221 234 234 234 74 74 74 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 70 70 70 58 58 58 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 46 46 46 82 82 82 2 2 6 106 106 106
+-170 170 170 26 26 26 86 86 86 226 226 226
+-123 123 123 10 10 10 14 14 14 46 46 46
+-231 231 231 190 190 190 6 6 6 70 70 70
+- 90 90 90 238 238 238 158 158 158 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 70 70 70 58 58 58 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 1 0 0 0
+- 0 0 1 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 42 42 42 86 86 86 6 6 6 116 116 116
+-106 106 106 6 6 6 70 70 70 149 149 149
+-128 128 128 18 18 18 38 38 38 54 54 54
+-221 221 221 106 106 106 2 2 6 14 14 14
+- 46 46 46 190 190 190 198 198 198 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 74 74 74 62 62 62 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 1 0 0 0
+- 0 0 1 0 0 0 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 42 42 42 94 94 94 14 14 14 101 101 101
+-128 128 128 2 2 6 18 18 18 116 116 116
+-118 98 46 121 92 8 121 92 8 98 78 10
+-162 162 162 106 106 106 2 2 6 2 2 6
+- 2 2 6 195 195 195 195 195 195 6 6 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 74 74 74 62 62 62 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 1 0 0 1
+- 0 0 1 0 0 0 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 38 38 38 90 90 90 14 14 14 58 58 58
+-210 210 210 26 26 26 54 38 6 154 114 10
+-226 170 11 236 186 11 225 175 15 184 144 12
+-215 174 15 175 146 61 37 26 9 2 2 6
+- 70 70 70 246 246 246 138 138 138 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 70 70 70 66 66 66 26 26 26 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 38 38 38 86 86 86 14 14 14 10 10 10
+-195 195 195 188 164 115 192 133 9 225 175 15
+-239 182 13 234 190 10 232 195 16 232 200 30
+-245 207 45 241 208 19 232 195 16 184 144 12
+-218 194 134 211 206 186 42 42 42 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 50 50 50 74 74 74 30 30 30 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 34 34 34 86 86 86 14 14 14 2 2 6
+-121 87 25 192 133 9 219 162 10 239 182 13
+-236 186 11 232 195 16 241 208 19 244 214 54
+-246 218 60 246 218 38 246 215 20 241 208 19
+-241 208 19 226 184 13 121 87 25 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 50 50 50 82 82 82 34 34 34 10 10 10
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 34 34 34 82 82 82 30 30 30 61 42 6
+-180 123 7 206 145 10 230 174 11 239 182 13
+-234 190 10 238 202 15 241 208 19 246 218 74
+-246 218 38 246 215 20 246 215 20 246 215 20
+-226 184 13 215 174 15 184 144 12 6 6 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 26 26 26 94 94 94 42 42 42 14 14 14
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 30 30 30 78 78 78 50 50 50 104 69 6
+-192 133 9 216 158 10 236 178 12 236 186 11
+-232 195 16 241 208 19 244 214 54 245 215 43
+-246 215 20 246 215 20 241 208 19 198 155 10
+-200 144 11 216 158 10 156 118 10 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 6 6 6 90 90 90 54 54 54 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 30 30 30 78 78 78 46 46 46 22 22 22
+-137 92 6 210 162 10 239 182 13 238 190 10
+-238 202 15 241 208 19 246 215 20 246 215 20
+-241 208 19 203 166 17 185 133 11 210 150 10
+-216 158 10 210 150 10 102 78 10 2 2 6
+- 6 6 6 54 54 54 14 14 14 2 2 6
+- 2 2 6 62 62 62 74 74 74 30 30 30
+- 10 10 10 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 34 34 34 78 78 78 50 50 50 6 6 6
+- 94 70 30 139 102 15 190 146 13 226 184 13
+-232 200 30 232 195 16 215 174 15 190 146 13
+-168 122 10 192 133 9 210 150 10 213 154 11
+-202 150 34 182 157 106 101 98 89 2 2 6
+- 2 2 6 78 78 78 116 116 116 58 58 58
+- 2 2 6 22 22 22 90 90 90 46 46 46
+- 18 18 18 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 38 38 38 86 86 86 50 50 50 6 6 6
+-128 128 128 174 154 114 156 107 11 168 122 10
+-198 155 10 184 144 12 197 138 11 200 144 11
+-206 145 10 206 145 10 197 138 11 188 164 115
+-195 195 195 198 198 198 174 174 174 14 14 14
+- 2 2 6 22 22 22 116 116 116 116 116 116
+- 22 22 22 2 2 6 74 74 74 70 70 70
+- 30 30 30 10 10 10 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 18 18 18
+- 50 50 50 101 101 101 26 26 26 10 10 10
+-138 138 138 190 190 190 174 154 114 156 107 11
+-197 138 11 200 144 11 197 138 11 192 133 9
+-180 123 7 190 142 34 190 178 144 187 187 187
+-202 202 202 221 221 221 214 214 214 66 66 66
+- 2 2 6 2 2 6 50 50 50 62 62 62
+- 6 6 6 2 2 6 10 10 10 90 90 90
+- 50 50 50 18 18 18 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 10 10 10 34 34 34
+- 74 74 74 74 74 74 2 2 6 6 6 6
+-144 144 144 198 198 198 190 190 190 178 166 146
+-154 121 60 156 107 11 156 107 11 168 124 44
+-174 154 114 187 187 187 190 190 190 210 210 210
+-246 246 246 253 253 253 253 253 253 182 182 182
+- 6 6 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 62 62 62
+- 74 74 74 34 34 34 14 14 14 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 10 10 10 22 22 22 54 54 54
+- 94 94 94 18 18 18 2 2 6 46 46 46
+-234 234 234 221 221 221 190 190 190 190 190 190
+-190 190 190 187 187 187 187 187 187 190 190 190
+-190 190 190 195 195 195 214 214 214 242 242 242
+-253 253 253 253 253 253 253 253 253 253 253 253
+- 82 82 82 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 14 14 14
+- 86 86 86 54 54 54 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 18 18 18 46 46 46 90 90 90
+- 46 46 46 18 18 18 6 6 6 182 182 182
+-253 253 253 246 246 246 206 206 206 190 190 190
+-190 190 190 190 190 190 190 190 190 190 190 190
+-206 206 206 231 231 231 250 250 250 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-202 202 202 14 14 14 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 42 42 42 86 86 86 42 42 42 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 14 14 14 38 38 38 74 74 74 66 66 66
+- 2 2 6 6 6 6 90 90 90 250 250 250
+-253 253 253 253 253 253 238 238 238 198 198 198
+-190 190 190 190 190 190 195 195 195 221 221 221
+-246 246 246 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 82 82 82 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 78 78 78 70 70 70 34 34 34
+- 14 14 14 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 34 34 34 66 66 66 78 78 78 6 6 6
+- 2 2 6 18 18 18 218 218 218 253 253 253
+-253 253 253 253 253 253 253 253 253 246 246 246
+-226 226 226 231 231 231 246 246 246 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 178 178 178 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 18 18 18 90 90 90 62 62 62
+- 30 30 30 10 10 10 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 10 10 10 26 26 26
+- 58 58 58 90 90 90 18 18 18 2 2 6
+- 2 2 6 110 110 110 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-250 250 250 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 231 231 231 18 18 18 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 18 18 18 94 94 94
+- 54 54 54 26 26 26 10 10 10 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 22 22 22 50 50 50
+- 90 90 90 26 26 26 2 2 6 2 2 6
+- 14 14 14 195 195 195 250 250 250 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-250 250 250 242 242 242 54 54 54 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 38 38 38
+- 86 86 86 50 50 50 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 14 14 14 38 38 38 82 82 82
+- 34 34 34 2 2 6 2 2 6 2 2 6
+- 42 42 42 195 195 195 246 246 246 253 253 253
+-253 253 253 253 253 253 253 253 253 250 250 250
+-242 242 242 242 242 242 250 250 250 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 250 250 250 246 246 246 238 238 238
+-226 226 226 231 231 231 101 101 101 6 6 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 38 38 38 82 82 82 42 42 42 14 14 14
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 10 10 10 26 26 26 62 62 62 66 66 66
+- 2 2 6 2 2 6 2 2 6 6 6 6
+- 70 70 70 170 170 170 206 206 206 234 234 234
+-246 246 246 250 250 250 250 250 250 238 238 238
+-226 226 226 231 231 231 238 238 238 250 250 250
+-250 250 250 250 250 250 246 246 246 231 231 231
+-214 214 214 206 206 206 202 202 202 202 202 202
+-198 198 198 202 202 202 182 182 182 18 18 18
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 62 62 62 66 66 66 30 30 30
+- 10 10 10 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 14 14 14 42 42 42 82 82 82 18 18 18
+- 2 2 6 2 2 6 2 2 6 10 10 10
+- 94 94 94 182 182 182 218 218 218 242 242 242
+-250 250 250 253 253 253 253 253 253 250 250 250
+-234 234 234 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 246 246 246
+-238 238 238 226 226 226 210 210 210 202 202 202
+-195 195 195 195 195 195 210 210 210 158 158 158
+- 6 6 6 14 14 14 50 50 50 14 14 14
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 6 6 6 86 86 86 46 46 46
+- 18 18 18 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 22 22 22 54 54 54 70 70 70 2 2 6
+- 2 2 6 10 10 10 2 2 6 22 22 22
+-166 166 166 231 231 231 250 250 250 253 253 253
+-253 253 253 253 253 253 253 253 253 250 250 250
+-242 242 242 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 246 246 246
+-231 231 231 206 206 206 198 198 198 226 226 226
+- 94 94 94 2 2 6 6 6 6 38 38 38
+- 30 30 30 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 62 62 62 66 66 66
+- 26 26 26 10 10 10 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 30 30 30 74 74 74 50 50 50 2 2 6
+- 26 26 26 26 26 26 2 2 6 106 106 106
+-238 238 238 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 246 246 246 218 218 218 202 202 202
+-210 210 210 14 14 14 2 2 6 2 2 6
+- 30 30 30 22 22 22 2 2 6 2 2 6
+- 2 2 6 2 2 6 18 18 18 86 86 86
+- 42 42 42 14 14 14 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 42 42 42 90 90 90 22 22 22 2 2 6
+- 42 42 42 2 2 6 18 18 18 218 218 218
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 250 250 250 221 221 221
+-218 218 218 101 101 101 2 2 6 14 14 14
+- 18 18 18 38 38 38 10 10 10 2 2 6
+- 2 2 6 2 2 6 2 2 6 78 78 78
+- 58 58 58 22 22 22 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 18 18 18
+- 54 54 54 82 82 82 2 2 6 26 26 26
+- 22 22 22 2 2 6 123 123 123 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 250 250 250
+-238 238 238 198 198 198 6 6 6 38 38 38
+- 58 58 58 26 26 26 38 38 38 2 2 6
+- 2 2 6 2 2 6 2 2 6 46 46 46
+- 78 78 78 30 30 30 10 10 10 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 10 10 10 30 30 30
+- 74 74 74 58 58 58 2 2 6 42 42 42
+- 2 2 6 22 22 22 231 231 231 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 250 250 250
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 246 246 246 46 46 46 38 38 38
+- 42 42 42 14 14 14 38 38 38 14 14 14
+- 2 2 6 2 2 6 2 2 6 6 6 6
+- 86 86 86 46 46 46 14 14 14 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 14 14 14 42 42 42
+- 90 90 90 18 18 18 18 18 18 26 26 26
+- 2 2 6 116 116 116 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 250 250 250 238 238 238
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 94 94 94 6 6 6
+- 2 2 6 2 2 6 10 10 10 34 34 34
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 74 74 74 58 58 58 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 10 10 10 26 26 26 66 66 66
+- 82 82 82 2 2 6 38 38 38 6 6 6
+- 14 14 14 210 210 210 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 246 246 246 242 242 242
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 144 144 144 2 2 6
+- 2 2 6 2 2 6 2 2 6 46 46 46
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 42 42 42 74 74 74 30 30 30 10 10 10
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 14 14 14 42 42 42 90 90 90
+- 26 26 26 6 6 6 42 42 42 2 2 6
+- 74 74 74 250 250 250 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 242 242 242 242 242 242
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 182 182 182 2 2 6
+- 2 2 6 2 2 6 2 2 6 46 46 46
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 10 10 10 86 86 86 38 38 38 10 10 10
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 10 10 10 26 26 26 66 66 66 82 82 82
+- 2 2 6 22 22 22 18 18 18 2 2 6
+-149 149 149 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 234 234 234 242 242 242
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 206 206 206 2 2 6
+- 2 2 6 2 2 6 2 2 6 38 38 38
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 6 6 6 86 86 86 46 46 46 14 14 14
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 18 18 18 46 46 46 86 86 86 18 18 18
+- 2 2 6 34 34 34 10 10 10 6 6 6
+-210 210 210 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 234 234 234 242 242 242
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 221 221 221 6 6 6
+- 2 2 6 2 2 6 6 6 6 30 30 30
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 82 82 82 54 54 54 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 26 26 26 66 66 66 62 62 62 2 2 6
+- 2 2 6 38 38 38 10 10 10 26 26 26
+-238 238 238 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 238 238 238
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 6 6 6
+- 2 2 6 2 2 6 10 10 10 30 30 30
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 66 66 66 58 58 58 22 22 22
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 38 38 38 78 78 78 6 6 6 2 2 6
+- 2 2 6 46 46 46 14 14 14 42 42 42
+-246 246 246 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 242 242 242
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 234 234 234 10 10 10
+- 2 2 6 2 2 6 22 22 22 14 14 14
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 66 66 66 62 62 62 22 22 22
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 18 18 18
+- 50 50 50 74 74 74 2 2 6 2 2 6
+- 14 14 14 70 70 70 34 34 34 62 62 62
+-250 250 250 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 246 246 246
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 234 234 234 14 14 14
+- 2 2 6 2 2 6 30 30 30 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 66 66 66 62 62 62 22 22 22
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 18 18 18
+- 54 54 54 62 62 62 2 2 6 2 2 6
+- 2 2 6 30 30 30 46 46 46 70 70 70
+-250 250 250 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 246 246 246
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 226 226 226 10 10 10
+- 2 2 6 6 6 6 30 30 30 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 66 66 66 58 58 58 22 22 22
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 22 22 22
+- 58 58 58 62 62 62 2 2 6 2 2 6
+- 2 2 6 2 2 6 30 30 30 78 78 78
+-250 250 250 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 246 246 246
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 206 206 206 2 2 6
+- 22 22 22 34 34 34 18 14 6 22 22 22
+- 26 26 26 18 18 18 6 6 6 2 2 6
+- 2 2 6 82 82 82 54 54 54 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 26 26 26
+- 62 62 62 106 106 106 74 54 14 185 133 11
+-210 162 10 121 92 8 6 6 6 62 62 62
+-238 238 238 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 246 246 246
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 158 158 158 18 18 18
+- 14 14 14 2 2 6 2 2 6 2 2 6
+- 6 6 6 18 18 18 66 66 66 38 38 38
+- 6 6 6 94 94 94 50 50 50 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 10 10 10 10 10 10 18 18 18 38 38 38
+- 78 78 78 142 134 106 216 158 10 242 186 14
+-246 190 14 246 190 14 156 118 10 10 10 10
+- 90 90 90 238 238 238 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 250 250 250
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 246 230 190
+-238 204 91 238 204 91 181 142 44 37 26 9
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 38 38 38 46 46 46
+- 26 26 26 106 106 106 54 54 54 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 14 14 14 22 22 22
+- 30 30 30 38 38 38 50 50 50 70 70 70
+-106 106 106 190 142 34 226 170 11 242 186 14
+-246 190 14 246 190 14 246 190 14 154 114 10
+- 6 6 6 74 74 74 226 226 226 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 250 250 250
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 228 184 62
+-241 196 14 241 208 19 232 195 16 38 30 10
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 6 6 6 30 30 30 26 26 26
+-203 166 17 154 142 90 66 66 66 26 26 26
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 18 18 18 38 38 38 58 58 58
+- 78 78 78 86 86 86 101 101 101 123 123 123
+-175 146 61 210 150 10 234 174 13 246 186 14
+-246 190 14 246 190 14 246 190 14 238 190 10
+-102 78 10 2 2 6 46 46 46 198 198 198
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 234 234 234 242 242 242
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 224 178 62
+-242 186 14 241 196 14 210 166 10 22 18 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 6 6 6 121 92 8
+-238 202 15 232 195 16 82 82 82 34 34 34
+- 10 10 10 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 14 14 14 38 38 38 70 70 70 154 122 46
+-190 142 34 200 144 11 197 138 11 197 138 11
+-213 154 11 226 170 11 242 186 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-225 175 15 46 32 6 2 2 6 22 22 22
+-158 158 158 250 250 250 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 250 250 250 242 242 242 224 178 62
+-239 182 13 236 186 11 213 154 11 46 32 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 61 42 6 225 175 15
+-238 190 10 236 186 11 112 100 78 42 42 42
+- 14 14 14 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 22 22 22 54 54 54 154 122 46 213 154 11
+-226 170 11 230 174 11 226 170 11 226 170 11
+-236 178 12 242 186 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-241 196 14 184 144 12 10 10 10 2 2 6
+- 6 6 6 116 116 116 242 242 242 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 231 231 231 198 198 198 214 170 54
+-236 178 12 236 178 12 210 150 10 137 92 6
+- 18 14 6 2 2 6 2 2 6 2 2 6
+- 6 6 6 70 47 6 200 144 11 236 178 12
+-239 182 13 239 182 13 124 112 88 58 58 58
+- 22 22 22 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 30 30 30 70 70 70 180 133 36 226 170 11
+-239 182 13 242 186 14 242 186 14 246 186 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 232 195 16 98 70 6 2 2 6
+- 2 2 6 2 2 6 66 66 66 221 221 221
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 206 206 206 198 198 198 214 166 58
+-230 174 11 230 174 11 216 158 10 192 133 9
+-163 110 8 116 81 8 102 78 10 116 81 8
+-167 114 7 197 138 11 226 170 11 239 182 13
+-242 186 14 242 186 14 162 146 94 78 78 78
+- 34 34 34 14 14 14 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 30 30 30 78 78 78 190 142 34 226 170 11
+-239 182 13 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 241 196 14 203 166 17 22 18 6
+- 2 2 6 2 2 6 2 2 6 38 38 38
+-218 218 218 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-250 250 250 206 206 206 198 198 198 202 162 69
+-226 170 11 236 178 12 224 166 10 210 150 10
+-200 144 11 197 138 11 192 133 9 197 138 11
+-210 150 10 226 170 11 242 186 14 246 190 14
+-246 190 14 246 186 14 225 175 15 124 112 88
+- 62 62 62 30 30 30 14 14 14 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 30 30 30 78 78 78 174 135 50 224 166 10
+-239 182 13 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 241 196 14 139 102 15
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 78 78 78 250 250 250 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-250 250 250 214 214 214 198 198 198 190 150 46
+-219 162 10 236 178 12 234 174 13 224 166 10
+-216 158 10 213 154 11 213 154 11 216 158 10
+-226 170 11 239 182 13 246 190 14 246 190 14
+-246 190 14 246 190 14 242 186 14 206 162 42
+-101 101 101 58 58 58 30 30 30 14 14 14
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 30 30 30 74 74 74 174 135 50 216 158 10
+-236 178 12 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 241 196 14 226 184 13
+- 61 42 6 2 2 6 2 2 6 2 2 6
+- 22 22 22 238 238 238 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 226 226 226 187 187 187 180 133 36
+-216 158 10 236 178 12 239 182 13 236 178 12
+-230 174 11 226 170 11 226 170 11 230 174 11
+-236 178 12 242 186 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 186 14 239 182 13
+-206 162 42 106 106 106 66 66 66 34 34 34
+- 14 14 14 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 26 26 26 70 70 70 163 133 67 213 154 11
+-236 178 12 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 241 196 14
+-190 146 13 18 14 6 2 2 6 2 2 6
+- 46 46 46 246 246 246 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 221 221 221 86 86 86 156 107 11
+-216 158 10 236 178 12 242 186 14 246 186 14
+-242 186 14 239 182 13 239 182 13 242 186 14
+-242 186 14 246 186 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-242 186 14 225 175 15 142 122 72 66 66 66
+- 30 30 30 10 10 10 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 26 26 26 70 70 70 163 133 67 210 150 10
+-236 178 12 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-232 195 16 121 92 8 34 34 34 106 106 106
+-221 221 221 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-242 242 242 82 82 82 18 14 6 163 110 8
+-216 158 10 236 178 12 242 186 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 242 186 14 163 133 67
+- 46 46 46 18 18 18 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 30 30 30 78 78 78 163 133 67 210 150 10
+-236 178 12 246 186 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-241 196 14 215 174 15 190 178 144 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 218 218 218
+- 58 58 58 2 2 6 22 18 6 167 114 7
+-216 158 10 236 178 12 246 186 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 186 14 242 186 14 190 150 46
+- 54 54 54 22 22 22 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 38 38 38 86 86 86 180 133 36 213 154 11
+-236 178 12 246 186 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 232 195 16 190 146 13 214 214 214
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 250 250 250 170 170 170 26 26 26
+- 2 2 6 2 2 6 37 26 9 163 110 8
+-219 162 10 239 182 13 246 186 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 186 14 236 178 12 224 166 10 142 122 72
+- 46 46 46 18 18 18 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 18 18 18
+- 50 50 50 109 106 95 192 133 9 224 166 10
+-242 186 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-242 186 14 226 184 13 210 162 10 142 110 46
+-226 226 226 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-198 198 198 66 66 66 2 2 6 2 2 6
+- 2 2 6 2 2 6 50 34 6 156 107 11
+-219 162 10 239 182 13 246 186 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 242 186 14
+-234 174 13 213 154 11 154 122 46 66 66 66
+- 30 30 30 10 10 10 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 22 22 22
+- 58 58 58 154 121 60 206 145 10 234 174 13
+-242 186 14 246 186 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 186 14 236 178 12 210 162 10 163 110 8
+- 61 42 6 138 138 138 218 218 218 250 250 250
+-253 253 253 253 253 253 253 253 253 250 250 250
+-242 242 242 210 210 210 144 144 144 66 66 66
+- 6 6 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 61 42 6 163 110 8
+-216 158 10 236 178 12 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 239 182 13 230 174 11 216 158 10
+-190 142 34 124 112 88 70 70 70 38 38 38
+- 18 18 18 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 22 22 22
+- 62 62 62 168 124 44 206 145 10 224 166 10
+-236 178 12 239 182 13 242 186 14 242 186 14
+-246 186 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 236 178 12 216 158 10 175 118 6
+- 80 54 7 2 2 6 6 6 6 30 30 30
+- 54 54 54 62 62 62 50 50 50 38 38 38
+- 14 14 14 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 6 6 6 80 54 7 167 114 7
+-213 154 11 236 178 12 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 242 186 14 239 182 13 239 182 13
+-230 174 11 210 150 10 174 135 50 124 112 88
+- 82 82 82 54 54 54 34 34 34 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 18 18 18
+- 50 50 50 158 118 36 192 133 9 200 144 11
+-216 158 10 219 162 10 224 166 10 226 170 11
+-230 174 11 236 178 12 239 182 13 239 182 13
+-242 186 14 246 186 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 186 14 230 174 11 210 150 10 163 110 8
+-104 69 6 10 10 10 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 6 6 6 91 60 6 167 114 7
+-206 145 10 230 174 11 242 186 14 246 190 14
+-246 190 14 246 190 14 246 186 14 242 186 14
+-239 182 13 230 174 11 224 166 10 213 154 11
+-180 133 36 124 112 88 86 86 86 58 58 58
+- 38 38 38 22 22 22 10 10 10 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 34 34 34 70 70 70 138 110 50 158 118 36
+-167 114 7 180 123 7 192 133 9 197 138 11
+-200 144 11 206 145 10 213 154 11 219 162 10
+-224 166 10 230 174 11 239 182 13 242 186 14
+-246 186 14 246 186 14 246 186 14 246 186 14
+-239 182 13 216 158 10 185 133 11 152 99 6
+-104 69 6 18 14 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 6 6 6 80 54 7 152 99 6
+-192 133 9 219 162 10 236 178 12 239 182 13
+-246 186 14 242 186 14 239 182 13 236 178 12
+-224 166 10 206 145 10 192 133 9 154 121 60
+- 94 94 94 62 62 62 42 42 42 22 22 22
+- 14 14 14 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 18 18 18 34 34 34 58 58 58 78 78 78
+-101 98 89 124 112 88 142 110 46 156 107 11
+-163 110 8 167 114 7 175 118 6 180 123 7
+-185 133 11 197 138 11 210 150 10 219 162 10
+-226 170 11 236 178 12 236 178 12 234 174 13
+-219 162 10 197 138 11 163 110 8 130 83 6
+- 91 60 6 10 10 10 2 2 6 2 2 6
+- 18 18 18 38 38 38 38 38 38 38 38 38
+- 38 38 38 38 38 38 38 38 38 38 38 38
+- 38 38 38 38 38 38 26 26 26 2 2 6
+- 2 2 6 6 6 6 70 47 6 137 92 6
+-175 118 6 200 144 11 219 162 10 230 174 11
+-234 174 13 230 174 11 219 162 10 210 150 10
+-192 133 9 163 110 8 124 112 88 82 82 82
+- 50 50 50 30 30 30 14 14 14 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 14 14 14 22 22 22 34 34 34
+- 42 42 42 58 58 58 74 74 74 86 86 86
+-101 98 89 122 102 70 130 98 46 121 87 25
+-137 92 6 152 99 6 163 110 8 180 123 7
+-185 133 11 197 138 11 206 145 10 200 144 11
+-180 123 7 156 107 11 130 83 6 104 69 6
+- 50 34 6 54 54 54 110 110 110 101 98 89
+- 86 86 86 82 82 82 78 78 78 78 78 78
+- 78 78 78 78 78 78 78 78 78 78 78 78
+- 78 78 78 82 82 82 86 86 86 94 94 94
+-106 106 106 101 101 101 86 66 34 124 80 6
+-156 107 11 180 123 7 192 133 9 200 144 11
+-206 145 10 200 144 11 192 133 9 175 118 6
+-139 102 15 109 106 95 70 70 70 42 42 42
+- 22 22 22 10 10 10 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 10 10 10
+- 14 14 14 22 22 22 30 30 30 38 38 38
+- 50 50 50 62 62 62 74 74 74 90 90 90
+-101 98 89 112 100 78 121 87 25 124 80 6
+-137 92 6 152 99 6 152 99 6 152 99 6
+-138 86 6 124 80 6 98 70 6 86 66 30
+-101 98 89 82 82 82 58 58 58 46 46 46
+- 38 38 38 34 34 34 34 34 34 34 34 34
+- 34 34 34 34 34 34 34 34 34 34 34 34
+- 34 34 34 34 34 34 38 38 38 42 42 42
+- 54 54 54 82 82 82 94 86 76 91 60 6
+-134 86 6 156 107 11 167 114 7 175 118 6
+-175 118 6 167 114 7 152 99 6 121 87 25
+-101 98 89 62 62 62 34 34 34 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 6 6 6 10 10 10
+- 18 18 18 22 22 22 30 30 30 42 42 42
+- 50 50 50 66 66 66 86 86 86 101 98 89
+-106 86 58 98 70 6 104 69 6 104 69 6
+-104 69 6 91 60 6 82 62 34 90 90 90
+- 62 62 62 38 38 38 22 22 22 14 14 14
+- 10 10 10 10 10 10 10 10 10 10 10 10
+- 10 10 10 10 10 10 6 6 6 10 10 10
+- 10 10 10 10 10 10 10 10 10 14 14 14
+- 22 22 22 42 42 42 70 70 70 89 81 66
+- 80 54 7 104 69 6 124 80 6 137 92 6
+-134 86 6 116 81 8 100 82 52 86 86 86
+- 58 58 58 30 30 30 14 14 14 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 10 10 10 14 14 14
+- 18 18 18 26 26 26 38 38 38 54 54 54
+- 70 70 70 86 86 86 94 86 76 89 81 66
+- 89 81 66 86 86 86 74 74 74 50 50 50
+- 30 30 30 14 14 14 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 18 18 18 34 34 34 58 58 58
+- 82 82 82 89 81 66 89 81 66 89 81 66
+- 94 86 66 94 86 76 74 74 74 50 50 50
+- 26 26 26 14 14 14 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 6 6 6 14 14 14 18 18 18
+- 30 30 30 38 38 38 46 46 46 54 54 54
+- 50 50 50 42 42 42 30 30 30 18 18 18
+- 10 10 10 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 14 14 14 26 26 26
+- 38 38 38 50 50 50 58 58 58 58 58 58
+- 54 54 54 42 42 42 30 30 30 18 18 18
+- 10 10 10 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 6 6 6 10 10 10 14 14 14 18 18 18
+- 18 18 18 14 14 14 10 10 10 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 14 14 14 18 18 18 22 22 22 22 22 22
+- 18 18 18 14 14 14 10 10 10 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
++45 39 35 45 39 35 45 39 35 28 30 29 32 31 35 33 35 35 28 30 29 31 42 35
++46 47 45 56 54 51 57 45 51 56 54 51 71 59 54 64 57 60 64 57 60 41 38 42
++28 30 29 21 19 21 20 20 20 21 19 21 20 20 20 20 20 20 17 19 20 13 14 11
++12 22 12 12 22 12 20 20 20 28 30 29 45 39 35 68 50 43 68 50 43 68 50 43
++49 43 41 41 33 22 23 20 27 23 20 27 21 19 21 23 20 27 39 28 30 37 33 35
++37 33 35 39 28 30 41 28 14 28 30 29 49 43 41 68 50 43 68 50 43 49 43 41
++41 33 22 39 20 27 23 19 15 23 19 15 21 19 21 23 19 15 23 19 15 23 19 15
++27 32 26 23 19 15 39 20 27 39 20 27 45 30 35 48 36 41 61 46 51 61 46 51
++57 45 51 49 43 41 45 39 35 27 32 26 21 19 21 23 20 27 20 20 20 20 20 20
++23 19 15 21 19 15 21 19 15 14 14 18 14 14 18 14 14 18 13 14 11 14 14 18
++14 14 18 13 14 11 14 14 18 20 20 20 21 19 21 20 28 24 28 30 29 23 20 27
++27 32 26 20 20 20 17 19 20 20 20 20 27 32 26 41 33 22 45 39 35 45 39 35
++68 50 43 68 50 43 68 50 43 49 43 41 68 33 37 41 33 22 41 33 22 68 50 20
++41 33 22 41 28 14 41 28 14 39 28 30 41 50 16 41 33 22 45 39 35 41 33 22
++33 35 35 45 49 35 68 68 60 86 83 83 99 96 86 99 96 86 86 83 83 57 59 55
++45 39 35 35 34 35 28 30 29 21 29 29 21 19 27 20 20 20 28 30 29 28 30 29
++21 29 29 21 29 29 21 19 21 23 19 15 23 19 15 39 14 11 23 19 15 39 14 11
++21 19 21 21 19 21 21 19 21 21 19 15 14 14 18 14 14 18 14 14 18 21 19 15
++14 14 18 14 14 18 17 19 20 17 19 20 14 14 18 13 14 11 17 19 20 21 19 15
++21 19 15 23 19 15 20 20 20 20 20 20 20 20 20 23 20 27 20 20 20 20 20 20
++20 20 20 20 20 20 21 19 21 20 20 20 21 19 15 21 19 15 20 20 20 20 20 20
++23 19 15 23 19 15 35 34 35 56 54 51 57 59 55 46 47 45 35 34 35 28 30 29
++28 30 29 33 35 35 33 35 35 30 34 36 28 30 29 23 20 27 20 28 24 20 28 24
++20 28 24 21 19 15 20 20 20 21 19 15 27 32 26 37 33 35 49 43 41 56 54 51
++45 39 35 41 33 22 45 39 35 41 33 22 41 50 16 41 33 22 41 33 22 27 32 26
++21 19 15 21 19 15 20 20 20 20 20 20 20 20 20 28 30 29 32 31 35 33 35 35
++28 30 29 21 19 21 21 19 21 21 19 21 20 28 24 23 20 27 20 28 24 21 19 21
++27 32 26 28 30 29 45 39 35 45 39 35 45 39 35 45 39 35 35 34 35 27 32 26
++21 19 21 21 29 29 20 28 24 28 30 29 28 30 29 23 20 27 27 32 26 28 30 29
++28 30 29 35 34 35 35 34 35 27 32 26 33 35 35 35 34 35 37 33 35 37 33 35
++35 34 35 39 37 42 35 34 35 35 34 35 35 34 35 35 34 35 33 35 35 28 30 29
++28 30 29 28 30 29 28 30 29 33 35 35 28 30 29 45 39 35 45 39 35 45 39 35
++45 39 35 35 34 35 35 34 35 35 34 35 28 30 29 28 30 29 28 30 29 28 30 29
++30 34 36 30 34 36 30 34 36 30 34 36 30 34 36 32 31 35 32 31 35 32 31 35
++33 35 35 35 34 35 39 43 42 41 38 42 39 43 42 37 33 35 35 34 35 35 34 35
++35 34 35 35 34 35 35 34 35 39 37 42 39 37 42 35 34 35 33 35 35 32 31 35
++32 31 35 35 34 35 35 34 35 39 43 42 46 47 45 46 47 45 39 43 42 35 34 35
++35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 39 37 42 35 34 35 35 34 35
++35 34 35 39 37 42 39 43 42 46 47 45 46 47 45 57 45 51 46 47 45 41 38 42
++39 43 42 41 38 42 41 38 42 41 38 42 39 37 42 39 37 42 35 34 35 39 37 42
++
++41 33 22 41 33 22 27 32 26 27 32 26 27 32 26 20 28 24 27 32 26 35 34 35
++41 38 42 46 47 45 57 45 51 56 54 51 75 64 67 75 64 67 64 57 60 45 39 35
++28 30 29 20 20 20 20 20 20 20 20 20 20 20 20 21 19 15 21 19 15 17 19 20
++12 22 12 14 14 18 21 19 15 28 30 29 45 39 35 68 50 43 73 50 50 68 50 43
++49 43 41 39 28 30 28 30 29 21 19 21 21 19 15 20 20 20 27 32 26 39 28 30
++28 30 29 39 20 27 27 32 26 41 33 22 45 39 35 68 50 43 68 50 43 68 33 37
++41 33 22 23 19 15 23 19 15 23 19 15 23 20 27 23 19 15 39 20 27 41 28 14
++23 19 15 23 19 15 23 19 15 28 30 29 48 36 41 61 46 51 73 50 50 56 54 51
++68 50 43 61 46 51 45 39 35 27 32 26 20 28 24 21 19 21 20 28 24 27 32 26
++41 28 14 27 32 26 21 19 21 14 14 18 14 14 18 21 19 15 14 14 18 14 14 18
++13 14 11 14 14 18 14 14 18 17 19 20 21 19 21 28 30 29 21 19 21 27 32 26
++20 28 24 20 20 20 14 14 18 20 20 20 23 19 15 41 33 22 41 33 22 45 39 35
++45 49 35 68 50 43 68 50 43 68 33 37 45 39 35 68 50 20 41 33 22 41 50 16
++41 33 22 23 19 15 41 33 22 41 33 22 41 33 22 41 50 16 41 33 22 31 42 35
++35 34 35 39 43 42 68 68 60 86 83 83 103 106 97 99 96 86 86 83 83 57 59 55
++33 35 35 35 34 35 27 32 26 28 26 35 20 20 20 23 20 27 35 34 35 49 43 41
++39 43 42 37 33 35 23 19 15 23 20 27 41 28 14 41 28 14 39 20 27 41 28 14
++39 14 11 39 20 27 23 19 15 21 19 15 14 14 18 14 14 18 14 14 18 13 14 11
++13 14 11 14 14 18 21 19 15 13 14 11 14 14 18 13 14 11 21 19 15 21 19 15
++20 28 24 23 19 15 20 20 20 20 20 20 20 20 20 17 19 20 17 19 20 17 19 20
++20 20 20 20 20 20 20 20 20 20 20 20 21 19 15 21 19 15 23 19 15 27 32 26
++23 19 15 21 19 15 45 39 35 56 54 51 57 59 55 49 43 41 35 34 35 28 30 29
++33 35 35 33 35 35 33 35 35 32 31 35 28 30 29 20 28 24 20 20 20 27 32 26
++27 32 26 27 32 26 20 28 24 21 19 15 27 32 26 33 35 35 68 50 43 49 43 41
++45 49 35 45 39 35 41 33 22 68 50 20 45 39 35 41 50 16 41 33 22 23 19 15
++21 19 15 21 19 15 20 20 20 20 20 20 20 20 20 23 20 27 28 30 29 28 30 29
++23 20 27 23 20 27 20 28 24 21 19 21 21 19 21 20 28 24 23 20 27 21 19 21
++21 19 21 27 32 26 31 42 35 45 39 35 31 42 35 45 39 35 41 33 22 21 19 21
++27 32 26 28 30 29 21 29 29 28 30 29 20 28 24 28 30 29 28 30 29 28 30 29
++28 30 29 35 34 35 27 32 26 39 28 30 31 42 35 45 39 35 37 33 35 37 33 35
++35 34 35 39 43 42 35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 28 30 29
++28 30 29 32 31 35 28 30 29 32 31 35 32 31 35 39 43 42 49 43 41 39 43 42
++45 39 35 39 43 42 45 39 35 33 35 35 32 31 35 28 30 29 32 31 35 28 30 29
++30 34 36 30 34 36 30 34 36 30 34 36 30 34 36 30 34 36 32 31 35 28 30 29
++35 34 35 35 34 35 41 38 42 39 43 42 41 38 42 35 34 35 35 34 35 35 34 35
++35 34 35 35 34 35 35 34 35 39 43 42 35 34 35 35 34 35 33 35 35 35 34 35
++33 35 35 35 34 35 35 34 35 41 38 42 46 47 45 46 47 45 39 43 42 39 37 42
++33 35 35 35 34 35 33 35 35 35 34 35 37 33 35 31 42 35 35 34 35 39 37 42
++35 34 35 39 37 42 49 43 41 46 47 45 57 45 51 46 47 45 46 47 45 49 43 41
++41 38 42 39 43 42 41 38 42 39 43 42 45 39 35 39 43 42 39 37 42 39 43 42
++
++27 32 26 27 32 26 27 32 26 23 19 15 20 20 20 23 19 15 23 19 15 20 28 24
++39 28 30 39 37 42 49 43 41 71 59 54 75 64 67 71 81 67 58 53 60 28 30 29
++21 19 21 21 19 15 14 14 18 21 19 15 20 20 20 21 19 15 14 14 18 21 19 15
++17 19 20 13 14 11 20 20 20 28 30 29 49 43 41 68 50 43 68 64 51 68 50 43
++45 39 35 41 33 22 28 30 29 21 19 21 21 19 15 20 20 20 20 28 24 27 32 26
++28 30 29 41 28 14 23 19 15 23 19 15 45 39 35 49 43 41 68 50 43 41 33 22
++41 33 22 23 19 15 23 19 15 23 19 15 27 32 26 39 20 27 41 33 22 39 28 30
++41 33 22 23 19 15 23 19 15 39 28 30 49 43 41 58 61 60 75 64 67 71 59 54
++64 57 60 49 43 41 45 39 35 28 30 29 21 19 21 23 20 27 39 28 30 45 39 35
++49 43 41 45 39 35 41 33 22 21 19 21 14 14 18 14 14 18 13 14 11 21 19 15
++14 14 18 21 19 15 14 14 18 17 19 20 20 20 20 21 19 21 27 32 26 23 20 27
++27 32 26 21 19 21 20 20 20 20 20 20 27 32 26 41 28 14 41 33 22 45 49 35
++68 50 43 68 50 43 49 43 41 45 39 35 45 39 35 41 33 22 68 50 20 41 33 22
++41 33 22 41 28 14 41 33 22 41 33 22 41 33 22 68 50 20 45 39 35 41 33 22
++33 35 35 45 49 35 68 68 60 86 83 83 99 96 86 83 103 97 87 76 74 57 59 55
++33 35 35 27 32 26 20 20 20 21 19 21 20 20 20 28 30 29 56 54 51 68 67 72
++68 68 60 56 54 51 41 33 22 41 28 14 41 33 22 41 33 22 41 28 14 41 33 22
++41 28 14 41 28 14 39 14 11 23 19 15 14 14 18 14 14 18 14 14 18 13 14 11
++14 14 18 13 14 11 13 14 11 14 14 18 13 14 11 13 14 11 21 19 15 21 19 21
++41 33 22 27 32 26 39 20 27 20 20 20 21 19 15 17 19 20 14 14 18 13 14 11
++14 14 18 13 14 11 14 14 18 17 19 20 21 19 15 19 34 14 21 19 21 27 32 26
++23 19 15 21 19 15 45 39 35 57 59 55 68 68 60 46 47 45 35 34 35 28 30 29
++28 30 29 33 35 35 31 42 35 30 34 36 28 30 29 21 19 21 27 32 26 41 33 22
++37 33 35 45 39 35 27 32 26 23 19 15 27 32 26 41 33 22 45 39 35 49 43 41
++68 50 20 45 39 35 45 39 35 41 33 22 68 50 20 41 33 22 27 32 26 23 19 15
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 27 23 20 27
++20 20 20 20 28 24 21 19 21 21 19 21 20 28 24 21 19 21 27 32 26 21 19 21
++20 28 24 27 32 26 39 28 30 39 43 42 45 39 35 45 39 35 33 35 35 27 32 26
++23 20 27 27 32 26 20 28 24 28 30 29 23 20 27 27 32 26 28 30 29 28 30 29
++35 34 35 27 32 26 41 33 22 35 34 35 45 39 35 41 38 42 45 39 35 37 33 35
++33 35 35 35 34 35 33 35 35 35 34 35 39 37 42 41 38 42 35 34 35 28 30 29
++28 30 29 32 31 35 28 30 29 28 30 29 35 34 35 46 47 45 46 47 45 57 45 51
++46 47 45 46 47 45 46 47 45 35 34 35 28 30 29 28 30 29 28 30 29 32 31 35
++28 30 29 30 34 36 28 30 29 30 34 36 32 31 35 33 35 35 32 31 35 32 31 35
++35 34 35 35 34 35 39 37 42 35 34 35 35 34 35 33 35 35 35 34 35 33 35 35
++33 35 35 35 34 35 35 34 35 35 34 35 39 37 42 35 34 35 33 35 35 35 34 35
++35 34 35 35 34 35 35 34 35 39 43 42 46 47 45 39 37 42 35 34 35 35 34 35
++35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 35 34 35
++39 43 42 39 37 42 39 43 42 46 47 45 49 43 41 46 47 45 46 47 45 41 38 42
++39 43 42 39 43 42 45 39 35 39 43 42 39 43 42 39 43 42 45 39 35 46 47 45
++
++27 32 26 20 28 24 23 19 15 27 32 26 41 33 22 28 30 29 41 33 22 23 19 15
++20 20 20 28 30 29 45 39 35 58 61 60 75 64 67 68 68 60 46 47 45 20 20 20
++21 19 15 21 19 15 20 20 20 20 28 24 27 32 26 21 19 21 21 19 15 17 19 20
++21 19 15 17 19 20 20 28 24 45 39 35 49 43 41 56 54 51 68 50 43 68 50 43
++45 39 35 37 33 35 39 28 30 20 20 20 20 20 20 23 19 15 23 19 15 27 32 26
++23 19 15 23 19 15 21 19 15 41 28 14 41 33 22 45 39 35 68 50 43 45 39 35
++41 33 22 23 19 15 21 19 15 20 20 20 41 28 14 45 39 35 68 33 37 45 39 35
++45 39 35 41 33 22 23 19 15 20 28 24 39 37 42 57 59 55 75 64 67 75 64 67
++68 68 60 56 54 51 39 28 30 27 32 26 23 19 15 23 20 27 45 39 35 68 50 43
++68 64 51 68 50 43 45 39 35 27 32 26 21 19 15 13 14 11 14 14 18 17 19 20
++17 19 20 13 14 11 14 14 18 17 19 20 20 20 20 23 20 27 23 19 15 27 32 26
++28 30 29 20 28 24 20 20 20 21 19 15 21 19 15 41 28 14 41 33 22 45 39 35
++45 49 35 49 43 41 68 50 20 45 39 35 68 33 37 45 39 35 41 50 16 45 39 35
++68 50 20 41 50 16 41 33 22 41 50 16 41 33 22 41 33 22 41 33 22 31 42 35
++33 35 35 46 47 45 68 68 60 86 83 83 103 106 97 99 96 86 75 83 72 68 64 51
++27 32 26 27 32 26 20 20 20 20 20 20 20 28 24 45 39 35 68 68 60 99 96 86
++104 88 73 68 64 51 45 39 35 41 33 22 45 30 35 68 50 20 68 50 20 68 50 20
++41 33 22 41 28 14 41 28 14 23 19 15 21 19 15 17 19 20 17 19 20 12 22 12
++21 19 15 13 14 11 21 19 15 13 14 11 21 19 15 13 14 11 23 19 15 27 32 26
++41 33 22 37 33 35 41 33 22 21 19 21 21 19 15 14 14 18 13 14 11 14 14 18
++13 14 11 13 14 11 13 14 11 13 14 11 21 19 15 23 19 15 27 32 26 41 33 22
++23 19 15 21 19 21 46 47 45 57 59 55 64 57 60 56 54 51 28 30 29 28 30 29
++33 35 35 39 43 42 33 35 35 28 30 29 28 30 29 21 19 21 27 32 26 45 39 35
++49 43 41 49 43 41 45 39 35 41 33 22 27 32 26 41 33 22 45 49 35 49 43 41
++49 43 41 45 39 35 45 39 35 45 49 35 45 49 35 41 33 22 27 32 26 20 20 20
++20 20 20 20 20 20 20 20 20 23 20 27 21 19 21 20 28 24 21 19 21 20 28 24
++21 19 21 23 20 27 21 19 21 23 20 27 21 19 21 23 20 27 21 19 21 27 32 26
++23 20 27 28 30 29 45 39 35 44 55 41 56 54 51 46 47 45 37 33 35 28 30 29
++27 32 26 28 30 29 23 20 27 28 30 29 20 28 24 28 30 29 32 31 35 35 34 35
++45 39 35 28 30 29 32 31 35 45 39 35 49 43 41 57 45 51 49 43 41 45 39 35
++33 35 35 35 34 35 35 34 35 35 34 35 39 43 42 39 43 42 39 37 42 37 33 35
++28 30 29 32 31 35 28 30 29 28 30 29 39 37 42 56 54 51 64 57 60 57 59 55
++68 68 60 57 59 55 56 54 51 39 43 42 33 35 35 35 34 35 33 35 35 28 30 29
++33 35 35 28 30 29 30 34 36 28 30 29 30 34 36 33 35 35 35 34 35 33 35 35
++35 34 35 35 34 35 35 34 35 33 35 35 35 34 35 35 34 35 33 35 35 35 34 35
++35 34 35 35 34 35 39 43 42 35 34 35 33 35 35 35 34 35 35 34 35 41 38 42
++35 34 35 35 34 35 39 37 42 41 38 42 39 43 42 35 34 35 35 34 35 35 34 35
++33 35 35 35 34 35 33 35 35 35 34 35 35 34 35 35 34 35 35 34 35 39 37 42
++39 43 42 45 39 35 41 38 42 41 38 42 49 43 41 46 47 45 46 47 45 46 47 45
++39 43 42 39 43 42 39 43 42 46 47 45 39 43 42 39 43 42 39 43 42 39 43 42
++
++35 34 35 27 32 26 41 28 14 41 33 22 45 39 35 49 43 41 45 39 35 39 28 30
++23 19 15 21 19 21 35 34 35 46 47 45 57 59 55 56 54 51 39 37 42 17 19 20
++21 19 15 20 20 20 27 32 26 37 33 35 45 39 35 37 33 35 28 30 29 23 19 15
++20 20 20 20 28 24 32 31 35 39 43 42 57 45 51 68 50 43 68 50 43 49 43 41
++45 39 35 45 39 35 27 32 26 27 32 26 41 33 22 41 33 22 45 39 35 41 33 22
++41 33 22 39 20 27 23 19 15 20 28 24 41 33 22 68 50 43 68 50 43 49 43 41
++45 30 35 23 19 15 20 20 20 20 28 24 41 33 22 49 43 41 68 50 43 68 50 43
++49 43 41 41 33 22 23 20 27 23 19 15 28 30 29 46 47 45 68 68 60 87 76 74
++61 60 67 49 43 41 27 32 26 17 19 20 21 19 21 39 28 30 49 43 41 68 50 43
++71 59 54 68 50 43 45 39 35 41 28 14 17 19 20 14 14 18 21 19 15 20 20 20
++21 19 15 14 14 18 14 14 18 17 19 20 20 20 20 20 20 20 27 32 26 21 19 21
++23 19 15 23 19 15 23 19 15 20 20 20 23 19 15 23 19 15 41 33 22 45 39 35
++49 43 41 68 50 43 49 43 41 68 33 37 45 39 35 41 50 16 68 50 20 68 50 20
++41 33 22 68 50 20 41 33 22 68 50 20 41 33 22 68 50 20 45 39 35 41 33 22
++33 35 35 44 55 41 68 68 60 99 96 86 103 106 97 99 96 86 75 83 72 56 54 51
++28 30 29 27 32 26 21 19 21 27 32 26 41 33 22 46 47 45 87 76 74 103 106 97
++99 96 86 68 69 55 45 49 35 41 28 14 41 33 22 41 33 22 41 33 22 41 33 22
++41 28 14 27 32 26 41 28 14 20 20 20 21 19 15 21 19 21 21 19 21 20 20 20
++21 19 15 21 19 15 13 14 11 21 19 15 13 14 11 23 19 15 23 19 15 27 32 26
++41 33 22 41 33 22 35 34 35 23 19 15 23 19 15 20 20 20 21 19 15 14 14 18
++14 14 18 13 14 11 17 19 20 17 19 20 21 19 15 23 19 15 23 19 15 27 32 26
++23 19 15 28 30 29 45 39 35 46 47 45 56 54 51 39 43 42 28 30 29 28 30 29
++33 35 35 33 35 35 33 35 35 30 34 36 27 32 26 21 19 21 41 33 22 45 39 35
++68 50 43 68 50 43 45 39 35 41 33 22 41 33 22 39 28 30 45 49 35 68 50 20
++45 39 35 45 39 35 45 39 35 41 33 22 45 39 35 41 33 22 19 34 14 21 19 21
++20 20 20 20 20 20 20 20 20 23 20 27 23 20 27 23 20 27 23 20 27 23 20 27
++21 19 21 20 28 24 21 19 21 27 32 26 21 19 21 27 32 26 21 19 21 28 30 29
++23 20 27 28 30 29 46 47 45 58 61 60 68 68 60 56 54 51 39 43 42 28 30 29
++21 29 29 28 30 29 20 28 24 20 28 24 23 20 27 28 30 29 35 34 35 39 37 42
++41 38 42 37 33 35 41 33 22 49 43 41 57 45 51 68 50 43 49 43 41 45 39 35
++33 35 35 35 34 35 35 34 35 39 43 42 45 39 35 46 47 45 46 47 45 35 34 35
++35 34 35 28 30 29 28 30 29 39 28 30 39 43 42 56 54 51 68 68 60 75 64 67
++71 81 67 64 57 60 46 47 45 35 34 35 33 35 35 33 35 35 28 30 29 35 34 35
++28 30 29 28 30 29 33 35 35 27 32 26 28 30 29 33 35 35 35 34 35 35 34 35
++35 34 35 35 34 35 33 35 35 35 34 35 33 35 35 35 34 35 33 35 35 33 35 35
++33 35 35 35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 33 35 35 35 34 35
++31 42 35 37 33 35 39 43 42 35 34 35 35 34 35 35 34 35 33 35 35 33 35 35
++35 34 35 35 34 35 35 34 35 39 43 42 35 34 35 39 43 42 39 43 42 49 43 41
++46 47 45 39 43 42 39 43 42 41 38 42 46 47 45 41 38 42 46 47 45 41 38 42
++46 47 45 39 43 42 46 47 45 39 43 42 46 47 45 39 43 42 39 43 42 46 47 45
++
++45 39 35 45 39 35 45 39 35 49 43 41 68 50 43 68 50 43 68 33 37 41 33 22
++23 19 15 23 19 15 20 28 24 35 34 35 41 38 42 39 37 42 21 29 29 20 20 20
++21 19 15 20 28 24 28 30 29 45 49 35 56 54 51 46 47 45 45 39 35 27 32 26
++20 20 20 32 31 35 39 43 42 46 47 45 46 47 45 57 45 51 49 43 41 49 43 41
++48 36 41 41 33 22 37 33 35 45 49 35 49 43 41 68 50 43 71 59 54 68 50 43
++45 39 35 41 33 22 27 32 26 23 19 15 45 39 35 68 50 43 74 57 60 68 64 51
++49 43 41 27 32 26 20 20 20 23 19 15 45 49 35 68 50 43 99 61 48 73 50 50
++68 50 43 45 39 35 39 20 27 21 19 15 20 20 20 39 37 42 64 57 60 75 83 72
++68 68 60 39 37 42 20 20 20 17 19 20 23 20 27 45 39 35 68 50 43 99 61 48
++68 50 43 68 50 43 45 39 35 20 20 20 21 19 15 13 14 11 17 19 20 20 20 20
++17 19 20 21 19 15 17 19 20 20 20 20 21 19 21 21 19 21 27 32 26 39 28 30
++27 32 26 28 30 29 27 32 26 27 32 26 27 32 26 27 32 26 23 19 15 45 30 35
++49 43 41 68 50 43 68 50 43 45 49 35 45 39 35 45 39 35 41 33 22 68 33 37
++68 50 20 45 49 35 68 50 20 68 50 20 41 50 16 45 49 35 41 33 22 31 42 35
++35 34 35 46 47 45 71 81 67 86 83 83 103 106 97 99 85 89 75 83 72 57 59 55
++41 33 22 21 19 21 28 30 29 27 32 26 45 39 35 57 59 55 87 76 74 114 121 97
++99 96 86 88 79 65 45 49 35 23 19 15 27 32 26 27 32 26 41 28 14 27 32 26
++23 19 15 20 28 24 21 19 15 21 19 15 17 19 20 28 30 29 39 28 30 27 32 26
++20 28 24 21 19 15 21 19 15 21 19 15 20 20 20 23 19 15 23 19 15 39 28 30
++41 33 22 45 39 35 41 33 22 39 28 30 23 19 15 20 20 20 21 19 15 17 19 20
++21 19 15 14 14 18 17 19 20 20 20 20 23 19 15 23 19 15 23 19 15 23 20 27
++41 28 14 21 19 21 28 30 29 35 34 35 45 39 35 35 34 35 39 28 30 28 30 29
++33 35 35 39 37 42 31 42 35 28 30 29 27 32 26 21 19 21 41 33 22 45 30 35
++68 50 43 68 50 43 48 36 41 41 33 22 27 32 26 41 33 22 41 33 22 45 39 35
++45 39 35 41 33 22 45 39 35 45 49 35 41 33 22 41 33 22 23 19 15 21 19 21
++20 20 20 23 20 27 20 20 20 23 20 27 23 20 27 23 20 27 20 28 24 21 19 21
++28 30 29 23 20 27 23 20 27 20 28 24 23 20 27 21 19 21 27 32 26 23 20 27
++23 20 27 32 31 35 46 47 45 68 68 60 68 67 72 57 59 55 35 34 35 23 20 27
++21 29 29 21 29 29 28 30 29 28 30 29 20 28 24 28 30 29 33 35 35 45 39 35
++37 33 35 37 33 35 45 39 35 45 39 35 61 46 51 49 43 41 49 43 41 45 39 35
++27 32 26 35 34 35 41 38 42 39 43 42 46 47 45 46 47 45 46 47 45 39 43 42
++35 34 35 35 34 35 28 30 29 28 30 29 41 38 42 58 61 60 75 64 67 75 83 72
++87 76 74 57 59 55 39 43 42 28 30 29 27 32 26 33 35 35 39 28 30 37 33 35
++28 30 29 33 35 35 27 32 26 27 32 26 33 35 35 33 35 35 35 34 35 33 35 35
++35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 35 34 35
++33 35 35 35 34 35 33 35 35 35 34 35 33 35 35 35 34 35 35 34 35 35 34 35
++35 34 35 35 34 35 35 34 35 35 34 35 33 35 35 35 34 35 35 34 35 35 34 35
++35 34 35 33 35 35 39 37 42 35 34 35 35 34 35 46 47 45 46 47 45 46 47 45
++56 54 51 46 47 45 41 38 42 46 47 45 46 47 45 46 47 45 39 43 42 39 43 42
++46 47 45 39 43 42 46 47 45 46 47 45 46 47 45 39 43 42 46 47 45 46 47 45
++
++46 47 45 45 39 35 45 39 35 68 50 20 73 50 50 68 50 20 68 50 43 45 30 35
++41 28 14 21 19 21 21 19 21 23 20 27 27 32 26 28 30 29 20 20 20 17 19 20
++21 19 21 28 30 29 37 33 35 68 50 43 73 50 50 73 50 50 68 50 43 41 33 22
++27 32 26 28 30 29 41 38 42 45 39 35 39 43 42 45 39 35 37 33 35 37 33 35
++41 33 22 35 34 35 41 33 22 49 43 41 68 50 43 99 61 48 71 59 54 99 61 48
++45 39 35 41 33 22 23 19 15 41 33 22 46 47 45 75 64 67 86 83 83 75 64 67
++46 47 45 28 30 29 17 19 20 20 28 24 41 33 22 56 54 51 71 59 54 71 59 54
++68 50 43 41 33 22 39 28 30 14 14 18 13 14 11 33 35 35 68 68 60 68 67 72
++58 53 60 27 32 26 17 19 20 13 14 11 20 28 24 45 39 35 68 50 43 71 59 54
++68 50 43 68 50 43 41 33 22 41 33 22 23 19 15 13 14 11 14 14 18 20 20 20
++17 19 20 17 19 20 21 19 15 17 19 20 21 19 15 20 20 20 27 32 26 20 28 24
++41 33 22 41 33 22 45 39 35 68 33 37 41 33 22 41 33 22 27 32 26 45 39 35
++49 43 41 46 47 45 46 47 45 49 43 41 45 49 35 41 33 22 33 35 35 41 50 16
++45 49 35 68 50 20 68 50 20 49 43 41 68 50 20 49 43 41 45 39 35 45 39 35
++33 35 35 46 47 45 71 81 67 99 85 89 103 106 97 83 103 97 71 81 67 56 54 51
++27 32 26 27 32 26 27 32 26 37 33 35 45 39 35 71 59 54 88 79 65 114 99 97
++113 97 77 68 68 60 41 33 22 20 20 20 21 19 15 21 19 15 20 20 20 20 20 20
++20 20 20 20 20 20 21 19 15 21 19 15 23 19 15 39 28 30 41 33 22 41 33 22
++23 19 15 21 19 15 19 34 14 21 19 15 19 34 14 28 30 29 28 30 29 41 33 22
++39 28 30 45 39 35 27 32 26 27 32 26 23 19 15 23 19 15 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 21 19 21 23 19 15 23 20 27 41 28 14
++21 19 21 20 20 20 20 20 20 21 19 21 20 28 24 23 20 27 27 32 26 28 30 29
++28 30 29 39 37 42 39 37 42 32 31 35 28 30 29 23 20 27 41 33 22 45 39 35
++68 50 43 68 33 37 45 49 35 41 33 22 41 33 22 37 33 35 41 50 16 41 33 22
++41 33 22 45 39 35 41 33 22 37 33 35 35 34 35 27 32 26 20 20 20 20 28 24
++20 20 20 20 28 24 21 19 21 20 28 24 21 19 21 20 28 24 21 19 21 23 20 27
++20 28 24 28 30 29 27 32 26 23 20 27 27 32 26 28 30 29 23 20 27 27 32 26
++28 30 29 28 30 29 46 47 45 61 60 67 68 68 60 46 47 45 30 34 36 28 30 29
++28 30 29 28 30 29 28 30 29 28 30 29 28 30 29 28 30 29 32 31 35 41 38 42
++39 43 42 35 34 35 35 34 35 45 49 35 49 43 41 49 43 41 49 43 41 45 39 35
++37 33 35 37 33 35 39 43 42 41 38 42 46 47 45 46 47 45 56 54 51 46 47 45
++35 34 35 32 31 35 28 30 29 35 34 35 35 34 35 56 54 51 61 60 67 68 75 77
++68 67 72 46 47 45 37 33 35 37 33 35 35 34 35 28 30 29 33 35 35 41 33 22
++49 43 41 45 39 35 35 34 35 35 34 35 33 35 35 35 34 35 33 35 35 35 34 35
++33 35 35 33 35 35 35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 35 34 35
++35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 45 39 35 37 33 35 39 43 42
++35 34 35 35 34 35 35 34 35 33 35 35 35 34 35 33 35 35 35 34 35 33 35 35
++35 34 35 35 34 35 35 34 35 35 34 35 39 43 42 39 43 42 57 45 51 56 54 51
++56 54 51 46 47 45 49 43 41 46 47 45 46 47 45 46 47 45 46 47 45 46 47 55
++46 47 45 46 47 45 46 47 55 46 47 55 46 47 45 46 47 45 46 47 45 46 47 45
++
++56 54 51 45 39 35 45 39 35 68 50 43 99 61 48 73 50 50 68 50 43 41 33 22
++23 20 27 20 20 20 20 20 20 20 20 20 20 20 20 17 19 20 17 19 20 20 20 20
++17 19 20 27 32 26 45 39 35 56 54 51 99 61 48 74 57 60 68 50 43 45 30 35
++27 32 26 27 32 26 28 30 29 28 30 29 27 32 26 21 19 21 27 32 26 27 32 26
++27 32 26 41 33 22 45 39 35 68 50 43 68 64 51 99 61 48 99 61 48 73 50 50
++68 50 43 41 33 22 27 32 26 39 28 30 56 54 51 75 64 67 86 83 83 68 68 60
++39 43 42 20 28 24 21 19 15 20 28 24 41 33 22 68 50 43 73 50 50 68 50 43
++68 33 37 41 33 22 23 19 15 17 19 20 14 14 18 35 34 35 57 59 55 61 60 67
++46 47 45 23 20 27 14 14 18 21 19 15 23 19 15 33 35 35 68 50 43 73 50 50
++99 61 48 68 50 43 45 39 35 28 30 29 21 19 15 14 14 18 17 19 20 20 20 20
++20 20 20 20 20 20 20 20 20 14 14 18 21 19 15 20 20 20 23 19 15 28 30 29
++45 39 35 68 50 43 68 50 43 68 50 43 68 50 43 45 30 35 41 33 22 28 30 29
++39 43 42 46 47 45 46 47 45 49 43 41 35 34 35 27 32 26 21 19 21 41 28 14
++41 50 16 45 49 35 68 50 43 68 50 43 68 50 43 68 50 43 68 50 20 45 39 35
++37 33 35 46 47 45 71 81 67 86 83 83 103 106 97 99 96 86 68 75 77 56 54 51
++27 32 26 27 32 26 27 32 26 41 33 22 49 43 41 73 50 50 105 79 65 99 96 86
++104 88 73 68 69 55 28 30 29 17 19 20 20 20 20 20 20 20 20 20 20 20 20 20
++21 19 15 14 14 18 17 19 20 21 19 15 27 32 26 45 39 35 45 39 35 28 30 29
++27 32 26 20 28 24 23 19 15 20 28 24 20 28 24 23 19 15 39 20 27 27 32 26
++37 33 35 41 33 22 41 33 22 39 20 27 23 19 15 20 20 20 20 20 20 20 20 20
++20 20 20 21 19 21 20 20 20 21 19 21 23 19 15 23 19 15 23 19 15 23 20 27
++23 19 15 17 19 20 21 19 15 14 14 18 13 14 11 20 20 20 21 19 21 28 30 29
++28 30 29 35 34 35 35 34 35 28 30 29 28 30 29 27 32 26 45 30 35 45 39 35
++68 50 43 68 50 43 49 43 41 41 33 22 39 28 30 41 33 22 41 33 22 45 39 35
++45 49 35 41 33 22 41 33 22 35 34 35 37 33 35 20 28 24 23 20 27 21 19 21
++21 19 21 27 32 26 21 19 21 23 20 27 21 19 21 21 19 21 21 19 21 20 28 24
++23 20 27 28 30 29 23 20 27 27 32 26 21 19 21 23 20 27 28 30 29 28 30 29
++23 20 27 28 30 29 39 43 42 57 59 55 56 54 51 31 42 35 28 30 29 28 30 29
++28 30 29 28 30 29 28 30 29 28 30 29 27 32 26 28 30 29 33 35 35 35 34 35
++35 34 35 33 35 35 45 39 35 49 43 41 49 43 41 49 43 41 45 39 35 45 39 35
++37 33 35 35 34 35 41 38 42 33 35 35 39 43 42 46 47 55 56 54 51 46 47 45
++39 37 42 35 34 35 28 30 29 28 30 29 32 31 35 46 47 45 58 61 60 68 67 72
++57 59 55 39 43 42 35 34 35 37 33 35 28 30 29 33 35 35 45 39 35 49 43 41
++49 43 41 49 43 41 45 39 35 35 34 35 33 35 35 35 34 35 33 35 35 35 34 35
++35 34 35 35 34 35 35 34 35 35 34 35 33 35 35 35 34 35 35 34 35 39 37 42
++35 34 35 35 34 35 39 43 42 35 34 35 41 38 42 46 47 45 41 38 42 45 39 35
++33 35 35 35 34 35 35 34 35 35 34 35 35 34 35 33 35 35 35 34 35 35 34 35
++35 34 35 35 34 35 39 43 42 35 34 35 41 38 42 46 47 45 46 47 45 49 43 41
++57 45 51 46 47 45 46 47 45 46 47 45 49 40 56 46 47 55 46 47 45 46 47 45
++56 54 51 64 57 60 46 47 45 46 47 55 49 43 41 48 36 41 46 47 45 46 47 45
++
++49 43 41 45 39 35 68 33 37 49 43 41 68 50 43 68 50 43 68 50 20 45 30 35
++23 19 15 23 19 15 20 20 20 20 20 20 17 19 20 20 20 20 17 19 20 21 19 21
++21 19 21 28 30 29 45 39 35 73 50 50 74 57 60 99 61 48 73 50 50 45 39 35
++23 19 15 21 19 15 21 19 21 20 28 24 23 19 15 21 19 15 21 19 15 23 19 15
++27 32 26 41 33 22 45 39 35 68 50 43 71 59 54 99 61 48 74 57 60 99 61 48
++45 39 35 41 33 22 41 33 22 27 32 26 49 43 41 57 59 55 64 57 60 46 47 45
++32 31 35 14 14 18 13 14 11 20 20 20 31 42 35 49 43 41 68 50 43 68 50 43
++45 39 35 41 28 14 17 19 20 14 14 18 17 19 20 35 34 35 46 47 45 56 54 51
++35 34 35 17 19 20 13 14 11 14 14 18 20 20 20 41 33 22 49 43 41 71 59 54
++68 50 43 68 50 43 41 33 22 41 28 14 14 14 18 13 14 11 14 14 18 17 19 20
++20 20 20 20 20 20 20 20 20 13 14 11 13 14 11 20 20 20 27 32 26 39 28 30
++49 43 41 68 50 43 73 50 50 73 50 50 68 50 43 45 39 35 41 33 22 21 19 21
++27 32 26 28 30 29 32 31 35 28 30 29 23 20 27 20 20 20 20 20 20 23 19 15
++41 33 22 45 39 35 68 50 20 68 50 43 68 50 20 73 50 50 68 50 43 45 30 35
++41 33 22 56 54 51 71 81 67 99 96 86 103 106 97 86 83 83 75 83 72 56 54 51
++28 30 29 35 34 35 27 32 26 28 30 29 45 30 35 68 50 43 75 64 67 113 97 77
++88 79 65 68 69 55 33 35 35 12 22 12 17 19 20 20 20 20 20 20 20 17 19 20
++14 14 18 21 19 15 13 14 11 14 14 18 21 19 21 28 30 29 41 33 22 28 30 29
++23 19 15 23 19 15 27 32 26 27 32 26 23 19 15 27 32 26 20 20 20 27 32 26
++41 28 14 32 31 35 27 32 26 23 19 15 20 20 20 20 20 20 20 20 20 21 19 21
++20 28 24 21 19 21 20 20 20 20 20 20 17 19 20 21 19 21 21 19 21 21 19 21
++21 19 21 14 14 18 13 14 11 13 14 11 17 19 20 20 20 20 20 20 20 21 19 21
++28 30 29 28 30 29 35 34 35 28 30 29 28 30 29 27 32 26 41 33 22 45 39 35
++49 43 41 68 50 43 45 39 35 41 33 22 27 32 26 35 34 35 41 33 22 45 49 35
++45 39 35 45 39 35 45 39 35 31 42 35 28 30 29 21 19 21 21 19 21 21 19 21
++27 32 26 23 20 27 20 28 24 21 19 21 21 19 21 20 28 24 21 19 21 23 20 27
++27 32 26 27 32 26 23 20 27 21 19 21 20 28 24 28 30 29 28 30 29 23 20 27
++28 30 29 28 30 29 39 37 42 39 43 42 31 42 35 30 34 36 21 29 29 28 30 29
++28 30 29 28 30 29 28 30 29 28 30 29 23 20 27 28 30 29 33 35 35 35 34 35
++35 34 35 35 34 35 31 42 35 45 39 35 49 43 41 49 43 41 45 39 35 37 33 35
++39 28 30 33 35 35 33 35 35 33 35 35 31 42 35 39 43 42 56 54 51 58 53 60
++46 47 45 32 31 35 33 35 35 28 30 29 28 30 29 39 37 42 46 47 55 58 53 60
++39 43 42 33 35 35 32 31 35 28 30 29 35 34 35 35 34 35 45 39 35 49 43 41
++49 43 41 49 43 41 45 39 35 33 35 35 35 34 35 35 34 35 33 35 35 35 34 35
++35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 33 35 35 35 34 35
++35 34 35 35 34 35 35 34 35 35 34 35 39 43 42 49 43 41 46 47 45 39 43 42
++35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 33 35 35
++35 34 35 35 34 35 35 34 35 35 34 35 39 43 42 39 43 42 57 45 51 46 47 45
++46 47 45 57 45 51 46 47 45 46 47 45 46 47 45 57 45 51 46 47 45 46 47 55
++45 62 74 83 103 97 75 110 124 75 110 124 112 124 124 75 110 124 104 108 124 45 62 74
++
++49 43 41 41 33 22 41 33 22 45 39 35 68 50 43 68 33 37 45 30 35 41 28 14
++21 19 15 21 19 15 20 20 20 20 20 20 20 20 20 21 19 21 20 20 20 20 20 20
++21 19 21 23 19 15 49 43 41 71 59 54 74 57 60 99 61 48 73 50 50 49 43 41
++27 32 26 20 20 20 20 20 20 21 19 21 20 20 20 17 19 20 17 19 20 23 19 15
++33 35 35 41 33 22 45 39 35 68 50 20 68 50 43 99 61 48 99 61 48 68 50 43
++68 50 43 41 33 22 41 33 22 27 32 26 39 28 30 35 34 35 35 34 35 28 30 29
++17 19 20 13 14 11 13 14 11 27 32 26 45 49 35 56 54 51 68 50 43 68 50 43
++41 33 22 20 28 24 17 19 20 14 14 18 17 19 20 37 33 35 39 43 42 39 43 42
++28 30 29 21 19 15 13 14 11 14 14 18 17 19 20 28 30 29 45 49 35 68 50 43
++68 50 43 45 49 35 39 28 30 20 20 20 17 19 20 14 14 18 13 14 11 14 14 18
++21 19 15 14 14 18 20 20 20 13 14 11 20 20 20 23 19 15 27 32 26 41 33 22
++68 50 43 68 50 43 68 50 43 99 61 48 68 50 43 68 33 37 39 28 30 23 19 15
++21 19 15 17 19 20 21 19 21 20 20 20 20 20 20 21 19 21 20 28 24 20 20 20
++39 20 27 45 39 35 68 50 43 68 50 43 73 50 50 99 61 48 73 50 50 45 39 35
++41 33 22 56 54 51 75 83 72 86 83 83 103 106 97 99 96 86 68 75 77 56 54 51
++28 30 29 35 34 35 27 32 26 20 28 24 41 33 22 45 39 35 75 64 67 113 97 77
++104 88 73 68 64 51 27 32 26 14 14 18 20 20 20 20 20 20 17 19 20 21 19 15
++17 19 20 14 14 18 13 14 11 14 14 18 21 19 15 20 20 20 23 19 15 39 20 27
++27 32 26 23 19 15 27 32 26 23 19 15 20 28 24 21 19 21 21 19 21 23 19 15
++28 30 29 23 19 15 27 32 26 20 20 20 20 20 20 17 19 20 20 20 20 20 20 20
++21 19 21 20 20 20 20 20 20 17 19 20 14 14 18 14 14 18 17 19 20 21 19 21
++17 19 20 13 14 11 13 14 11 14 14 18 21 19 15 14 14 18 17 19 20 20 20 20
++21 19 21 28 30 29 33 35 35 28 30 29 41 33 22 20 28 24 39 20 27 41 33 22
++49 43 41 68 50 43 45 39 35 27 32 26 23 19 15 41 33 22 41 33 22 45 39 35
++45 49 35 45 49 35 45 39 35 37 33 35 27 32 26 23 20 27 20 28 24 23 20 27
++21 19 21 27 32 26 23 20 27 20 20 20 23 20 27 21 19 21 21 19 21 20 28 24
++21 19 21 23 20 27 28 30 29 23 19 15 23 20 27 21 19 21 28 30 29 27 32 26
++33 35 35 28 30 29 30 34 36 33 35 35 28 30 29 28 30 29 21 29 29 28 30 29
++28 30 29 28 30 29 28 30 29 28 30 29 27 32 26 28 30 29 39 43 42 39 43 42
++35 34 35 35 34 35 35 34 35 35 34 35 49 43 41 49 43 41 45 39 35 33 35 35
++41 33 22 37 33 35 45 39 35 41 33 22 35 34 35 39 43 42 56 54 51 56 54 51
++39 43 42 35 34 35 35 34 35 32 31 35 32 31 35 32 31 35 46 47 45 41 38 42
++31 42 35 28 30 29 33 35 35 28 30 29 35 34 35 31 42 35 49 43 41 56 54 51
++61 46 51 46 47 45 45 39 35 35 34 35 35 34 35 35 34 35 35 34 35 33 35 35
++35 34 35 35 34 35 33 35 35 33 35 35 37 33 35 31 42 35 35 34 35 35 34 35
++39 43 42 35 34 35 33 35 35 35 34 35 49 43 41 49 43 41 49 43 41 39 43 42
++39 37 42 35 34 35 35 34 35 33 35 35 35 34 35 33 35 35 35 34 35 35 34 35
++39 43 42 37 33 35 31 42 35 39 37 42 39 37 42 46 47 45 56 54 51 57 45 51
++56 54 51 57 45 51 46 47 55 46 47 45 58 53 60 39 43 42 45 62 74 112 124 124
++121 182 205 121 182 205 91 128 178 91 128 178 91 128 178 91 128 178 91 128 178 122 133 132
++
++46 47 45 33 35 35 27 32 26 41 33 22 45 39 35 41 33 22 39 28 30 23 19 15
++21 19 15 21 19 15 17 19 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++21 19 15 27 32 26 45 39 35 68 50 43 99 61 48 71 59 54 68 50 43 45 39 35
++41 28 14 14 14 18 21 19 15 21 19 15 17 19 20 21 19 15 20 20 20 27 32 26
++39 28 30 41 33 22 41 33 22 45 39 35 68 50 43 68 50 43 99 61 48 68 50 43
++68 50 20 39 28 30 39 20 27 27 32 26 21 19 21 20 28 24 20 20 20 14 14 18
++13 14 11 14 14 18 20 20 20 28 30 29 49 43 41 68 64 51 71 59 54 45 49 35
++27 32 26 23 19 15 14 14 18 17 19 20 14 14 18 32 26 35 32 31 35 28 30 29
++20 20 20 14 14 18 17 19 20 21 19 21 20 20 20 35 34 35 49 43 41 68 50 43
++68 50 43 45 39 35 41 33 22 20 28 24 20 20 20 21 19 15 17 19 20 17 19 20
++14 14 18 21 19 15 17 19 20 14 14 18 20 20 20 20 20 20 27 32 26 45 39 35
++68 50 43 68 50 43 99 61 48 68 50 43 68 50 43 45 39 35 41 28 14 23 20 27
++17 19 20 17 19 20 21 19 27 23 20 27 21 19 27 21 19 21 21 19 27 17 19 20
++28 30 29 45 30 35 68 33 37 68 72 23 99 36 46 73 50 50 99 36 46 68 50 20
++41 33 22 56 54 51 75 83 72 99 96 86 103 106 97 99 85 89 71 81 67 56 54 51
++33 35 35 33 35 35 27 32 26 20 28 24 20 28 24 49 43 41 88 79 65 113 97 77
++104 88 73 68 64 51 27 32 26 17 19 20 20 20 20 21 19 15 20 20 20 17 19 20
++21 19 15 17 19 20 14 14 18 21 19 15 13 14 11 21 19 15 21 19 21 20 28 24
++23 19 15 27 32 26 23 19 15 20 20 20 23 19 15 20 20 20 20 20 20 21 19 21
++23 19 15 23 19 15 21 19 21 20 20 20 14 14 18 14 14 18 17 19 20 20 20 20
++20 20 20 17 19 20 13 14 11 13 14 11 14 14 18 14 14 18 17 19 20 17 19 20
++14 14 18 14 14 18 13 14 11 14 14 18 13 14 11 14 14 18 21 19 15 20 20 20
++20 20 20 23 20 27 27 32 26 27 32 26 27 32 26 27 32 26 23 19 15 39 28 30
++45 39 35 45 39 35 41 33 22 39 20 27 21 19 15 27 32 26 41 33 22 41 33 22
++45 49 35 45 39 35 39 43 42 35 34 35 27 32 26 23 20 27 23 20 27 21 19 21
++20 20 20 21 19 21 20 20 20 20 28 24 23 20 27 20 28 24 21 19 21 21 19 21
++21 19 21 27 32 26 21 19 21 23 20 27 23 19 15 28 30 29 28 30 29 28 30 29
++28 30 29 28 30 29 28 30 29 30 34 36 28 30 29 21 29 29 28 30 29 28 30 29
++20 28 24 28 30 29 28 30 29 20 28 24 28 30 29 33 35 35 39 43 42 35 34 35
++33 35 35 27 32 26 41 33 22 33 35 35 41 38 42 41 38 42 37 33 35 35 34 35
++45 49 35 49 43 41 57 45 51 49 43 41 49 43 41 45 39 35 46 47 45 46 47 55
++39 43 42 32 31 35 28 30 29 28 30 29 35 34 35 33 35 35 39 37 42 39 37 42
++33 35 35 30 34 36 33 35 35 28 30 29 33 35 35 45 39 35 49 43 41 49 43 41
++49 43 41 49 43 41 49 43 41 45 39 35 35 34 35 39 43 42 35 34 35 35 34 35
++35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 37 33 35 35 34 35 35 34 35
++35 34 35 35 34 35 45 39 35 45 49 35 39 43 42 49 43 41 49 43 41 39 43 42
++45 39 35 33 35 35 35 34 35 33 35 35 35 34 35 35 34 35 35 34 35 35 34 35
++35 34 35 35 34 35 41 38 42 35 34 35 39 43 42 46 47 45 46 47 45 58 53 60
++57 45 51 46 47 55 46 47 45 46 47 45 39 43 42 112 124 124 143 151 181 121 182 205
++121 182 205 121 182 205 121 182 205 121 182 205 121 182 205 121 182 205 91 128 178 91 128 178
++
++45 39 35 27 32 26 20 20 20 28 30 29 28 30 29 20 28 24 12 22 12 21 19 15
++17 19 20 17 19 20 17 19 20 20 20 20 20 20 20 20 20 20 21 19 21 13 14 11
++17 19 20 39 14 11 41 33 22 68 50 43 68 50 43 68 50 43 49 43 41 37 33 35
++20 20 20 13 14 11 13 14 11 20 20 20 21 19 15 20 20 20 20 20 20 20 28 24
++37 33 35 45 39 35 45 39 35 41 33 22 49 43 41 68 50 43 68 50 43 68 50 43
++41 33 22 39 28 30 41 33 22 27 32 26 23 19 15 21 19 15 13 14 11 21 19 15
++20 20 20 20 20 20 28 30 29 45 39 35 56 54 51 58 61 60 57 59 55 49 43 41
++28 30 29 20 28 24 20 20 20 20 20 20 20 20 20 20 28 24 28 30 29 23 20 27
++28 30 29 28 30 29 23 20 27 23 19 15 20 20 20 32 31 35 57 45 51 56 54 51
++68 50 43 49 43 41 27 32 26 23 20 27 23 20 27 21 19 21 20 20 20 17 19 20
++23 19 15 23 19 15 23 19 15 39 14 11 39 14 11 39 20 27 41 38 42 46 47 45
++68 50 43 73 50 50 68 50 43 73 50 50 68 50 20 68 33 37 41 33 22 23 19 15
++20 20 20 20 28 24 23 20 27 23 20 27 23 20 27 23 20 27 21 19 27 17 19 20
++20 20 20 41 33 22 68 33 37 73 50 50 99 61 48 99 61 48 68 50 43 68 33 37
++41 33 22 56 54 51 86 83 83 99 96 86 103 106 97 99 96 86 71 81 67 56 54 51
++27 32 26 33 35 35 27 32 26 28 30 29 27 32 26 49 43 41 71 82 60 99 96 86
++75 83 72 56 54 51 27 32 26 17 19 20 17 19 20 17 19 20 17 19 20 17 19 20
++17 19 20 17 19 20 21 19 15 14 14 18 14 14 18 20 20 20 21 19 21 21 19 21
++28 30 29 21 19 21 20 20 20 17 19 20 20 20 20 14 14 18 17 19 20 20 20 20
++23 20 27 21 19 21 21 19 21 20 20 20 14 14 18 14 14 18 13 14 11 14 14 18
++14 14 18 14 14 18 14 14 18 14 14 18 17 19 20 14 14 18 14 14 18 14 14 18
++17 19 20 20 20 20 20 20 20 17 19 20 17 19 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 21 19 21 27 32 26 27 32 26 27 32 26 27 32 26 27 32 26
++37 33 35 45 39 35 41 33 22 27 32 26 23 19 15 23 19 15 27 32 26 45 39 35
++31 42 35 45 39 35 35 34 35 33 35 35 28 30 29 20 28 24 20 20 20 20 28 24
++21 19 21 20 28 24 23 20 27 21 19 21 23 19 15 23 20 27 21 19 21 27 32 26
++21 19 21 27 32 26 21 19 21 20 28 24 23 20 27 27 32 26 23 20 27 28 30 29
++28 30 29 28 30 29 33 35 35 30 34 36 28 30 29 28 30 29 28 30 29 28 30 29
++28 30 29 28 30 29 28 30 29 28 30 29 28 30 29 32 31 35 35 34 35 35 34 35
++28 30 29 28 30 29 28 30 29 33 35 35 41 38 42 39 43 42 35 34 35 45 39 35
++49 43 41 68 50 43 73 50 50 68 50 43 49 43 41 45 39 35 46 47 45 46 47 45
++35 34 35 39 28 30 35 34 35 39 28 30 32 31 35 28 30 29 39 37 42 41 38 42
++31 42 35 33 35 35 35 34 35 35 34 35 32 31 35 37 33 35 49 43 41 49 43 41
++61 46 51 49 43 41 45 39 35 41 38 42 39 43 42 35 34 35 33 35 35 39 37 42
++35 34 35 33 35 35 35 34 35 39 43 42 35 34 35 35 34 35 31 42 35 33 35 35
++33 35 35 35 34 35 33 35 35 45 49 35 49 43 41 46 47 45 49 43 41 41 38 42
++39 37 42 35 34 35 39 43 42 33 35 35 35 34 35 35 34 35 35 34 35 35 34 35
++35 34 35 35 34 35 39 43 42 35 34 35 41 38 42 46 47 45 46 47 55 46 47 45
++46 47 45 46 47 45 64 57 60 41 38 42 143 146 150 212 206 189 210 216 207 210 216 207
++231 233 186 231 233 186 210 216 207 210 216 207 189 200 189 189 200 189 121 182 205 121 182 205
++
++37 33 35 20 28 24 21 19 15 20 20 20 20 28 24 41 28 14 27 32 26 23 19 15
++23 19 15 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 17 19 20
++27 32 26 39 28 30 68 33 37 68 50 43 68 50 43 68 50 20 39 28 30 21 19 21
++17 19 20 21 19 15 17 19 20 21 19 15 20 20 20 20 20 20 20 20 20 28 30 29
++45 39 35 68 50 43 68 50 43 68 33 37 68 33 37 45 39 35 68 33 37 45 39 35
++41 33 22 41 33 22 28 30 29 23 19 15 23 19 15 20 20 20 14 14 18 17 19 20
++20 20 20 20 20 20 20 28 24 41 38 42 57 59 55 68 64 51 56 54 51 41 33 22
++27 32 26 39 20 27 45 39 35 45 39 35 41 33 22 27 32 26 23 19 15 45 30 35
++49 43 41 68 50 43 48 36 41 41 33 22 28 30 29 28 30 29 45 39 35 57 45 51
++49 43 41 45 39 35 27 32 26 20 20 20 21 19 27 20 28 24 20 20 20 20 20 20
++23 19 15 39 20 27 41 28 14 41 28 14 68 24 14 41 28 14 48 36 41 68 50 43
++71 59 54 73 50 50 73 50 50 68 50 43 68 33 37 41 33 22 68 24 14 39 20 27
++39 14 11 23 20 27 21 19 21 21 19 21 21 19 21 21 19 21 21 19 21 17 19 20
++20 28 24 41 33 22 68 33 37 68 50 43 99 61 48 68 33 37 68 50 20 68 33 37
++41 33 22 56 54 51 75 83 72 103 106 97 103 106 97 86 83 83 68 75 77 46 47 45
++31 42 35 27 32 26 33 35 35 28 30 29 28 30 29 49 43 41 68 69 55 88 79 65
++68 69 55 45 49 35 23 19 15 21 19 15 17 19 20 17 19 20 17 19 20 17 19 20
++12 22 12 14 14 18 17 19 20 13 14 11 14 14 18 21 19 15 20 20 20 27 32 26
++21 19 21 21 19 21 20 20 20 14 14 18 13 14 11 14 14 18 14 14 18 17 19 20
++17 19 20 17 19 20 17 19 20 14 14 18 14 14 18 14 14 18 14 14 18 14 14 18
++14 14 18 14 14 18 14 14 18 14 14 18 14 14 18 20 20 20 21 19 21 21 19 21
++17 19 20 20 20 20 20 20 20 21 19 15 17 19 20 21 19 15 17 19 20 20 20 20
++20 20 20 20 20 20 23 20 27 20 28 24 27 32 26 41 28 14 20 28 24 27 32 26
++41 33 22 28 30 29 28 30 29 27 32 26 41 28 14 27 32 26 41 33 22 31 42 35
++45 39 35 31 42 35 35 34 35 31 42 35 28 30 29 20 28 24 20 20 20 20 20 20
++21 19 21 21 19 21 20 28 24 21 19 21 20 28 24 21 19 21 23 20 27 27 32 26
++23 20 27 23 20 27 27 32 26 21 19 21 21 19 21 28 30 29 23 20 27 27 32 26
++28 30 29 28 30 29 33 35 35 28 30 29 28 30 29 28 30 29 28 30 29 28 30 29
++28 30 29 28 30 29 28 30 29 23 20 27 20 28 24 28 30 29 32 31 35 28 30 29
++28 30 29 28 30 29 28 30 29 32 31 35 37 33 35 39 43 42 35 34 35 45 39 35
++61 46 51 68 50 43 68 64 51 68 50 43 61 46 51 45 39 35 46 47 45 41 38 42
++37 33 35 37 33 35 37 33 35 32 31 35 28 30 29 35 34 35 39 43 42 39 43 42
++35 34 35 33 35 35 33 35 35 28 30 29 35 34 35 37 33 35 49 43 41 49 43 41
++45 39 35 49 43 41 45 39 35 39 37 42 35 34 35 39 37 42 35 34 35 33 35 35
++39 43 42 35 34 35 35 34 35 35 34 35 35 34 35 33 35 35 35 34 35 35 34 35
++35 34 35 35 34 35 31 42 35 45 39 35 45 39 35 49 43 41 49 43 41 46 47 45
++41 38 42 41 38 42 35 34 35 33 35 35 35 34 35 33 35 35 35 34 35 31 42 35
++37 33 35 39 37 42 35 34 35 41 38 42 39 43 42 46 47 45 46 47 45 56 54 51
++46 47 45 56 54 51 39 43 42 112 124 124 210 216 207 210 216 207 211 221 218 235 233 206
++211 221 218 235 233 206 235 233 206 211 221 218 210 216 207 189 200 189 231 233 186 211 221 218
++
++28 30 29 21 19 21 12 22 12 21 19 15 41 33 22 45 39 35 45 39 35 45 39 35
++39 28 30 27 32 26 20 20 20 20 20 20 17 19 20 20 20 20 20 20 20 23 19 15
++35 34 35 68 50 43 68 64 51 99 61 48 73 50 50 45 39 35 41 28 14 20 20 20
++13 14 11 20 20 20 21 19 15 21 19 15 20 20 20 20 20 20 23 19 15 45 39 35
++68 50 20 68 50 43 99 61 48 73 50 50 68 50 43 45 39 35 41 33 22 41 33 22
++41 33 22 39 20 27 23 19 15 21 19 21 20 20 20 20 20 20 21 19 15 17 19 20
++20 20 20 20 20 20 23 20 27 45 39 35 56 54 51 57 59 55 46 47 45 39 28 30
++41 33 22 68 50 43 68 50 43 68 50 43 68 50 43 41 33 22 41 33 22 68 50 43
++74 57 60 99 61 48 99 61 48 49 43 41 41 33 22 28 30 29 35 34 35 45 39 35
++45 39 35 41 33 22 20 28 24 20 20 20 23 20 27 23 20 27 21 19 21 23 19 15
++39 20 27 39 14 11 68 24 14 68 24 14 68 24 14 68 24 14 68 33 37 73 50 50
++73 50 50 73 50 50 68 50 43 68 50 20 45 39 35 68 24 14 39 20 27 68 24 14
++39 20 27 39 14 11 21 19 21 20 20 20 17 19 20 17 19 20 21 19 27 17 19 20
++20 20 20 39 28 30 45 39 35 68 50 43 68 50 43 73 50 50 68 33 37 41 33 22
++37 33 35 56 54 51 75 83 72 99 96 86 103 106 97 86 83 83 71 81 67 56 54 51
++28 30 29 27 32 26 33 35 35 28 30 29 27 32 26 35 34 35 46 47 45 68 64 51
++45 49 35 45 39 35 20 28 24 20 20 20 17 19 20 17 19 20 20 20 20 17 19 20
++17 19 20 17 19 20 17 19 20 17 19 20 14 14 18 20 20 20 21 19 21 21 19 21
++23 20 27 20 20 20 14 14 18 21 19 15 13 14 11 14 14 18 14 14 18 17 19 20
++14 14 18 17 19 20 14 14 18 14 14 18 17 19 20 14 14 18 17 19 20 14 14 18
++14 14 18 14 14 18 14 14 18 14 14 18 21 19 15 28 30 29 37 33 35 41 38 42
++23 20 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 21 19 21 27 32 26 28 30 29 28 30 29 41 33 22 21 19 21
++27 32 26 23 20 27 41 33 22 27 32 26 35 34 35 37 33 35 31 42 35 35 34 35
++33 35 35 41 33 22 35 34 35 35 34 35 33 35 35 28 30 29 20 28 24 20 28 24
++21 19 21 20 28 24 21 19 21 21 19 21 21 19 21 23 19 15 28 30 29 37 33 35
++28 30 29 28 30 29 21 19 21 27 32 26 23 20 27 21 19 21 27 32 26 28 30 29
++33 35 35 39 37 42 35 34 35 35 34 35 33 35 35 33 35 35 28 30 29 28 30 29
++28 30 29 28 30 29 28 30 29 28 30 29 23 20 27 28 30 29 28 30 29 28 30 29
++28 30 29 28 30 29 28 30 29 28 30 29 37 33 35 33 35 35 35 34 35 49 43 41
++61 46 51 68 64 51 73 50 50 68 50 43 61 46 51 45 39 35 39 43 42 39 43 42
++37 33 35 49 43 41 41 38 42 37 33 35 37 33 35 32 31 35 39 43 42 39 43 42
++33 35 35 28 30 29 35 34 35 35 34 35 37 33 35 41 38 42 49 43 41 45 39 35
++45 39 35 45 39 35 35 34 35 35 34 35 39 43 42 35 34 35 41 38 42 39 43 42
++35 34 35 39 37 42 35 34 35 35 34 35 35 34 35 33 35 35 45 39 35 31 42 35
++45 39 35 37 33 35 45 39 35 45 39 35 41 38 42 49 43 41 49 43 41 49 43 41
++46 47 45 39 43 42 35 34 35 31 42 35 35 34 35 35 34 35 35 34 35 41 38 42
++35 34 35 39 43 42 35 34 35 35 34 35 39 37 42 46 47 45 46 47 45 56 54 51
++57 59 55 46 47 55 75 64 67 189 200 189 238 233 218 210 216 207 235 233 206 210 216 207
++235 233 206 235 233 206 235 233 206 235 233 206 210 216 207 159 178 157 210 216 207 210 216 207
++
++23 20 27 20 20 20 20 20 20 27 32 26 45 39 35 68 50 43 73 50 50 99 61 48
++49 43 41 41 33 22 41 33 22 17 19 20 20 20 20 20 20 20 20 20 20 27 32 26
++45 39 35 71 59 54 99 79 59 99 79 59 99 61 48 49 43 41 41 33 22 21 19 21
++20 20 20 20 20 20 21 19 15 20 20 20 21 19 15 20 20 20 20 28 24 45 39 35
++68 50 43 99 61 48 99 61 48 99 61 48 68 50 43 68 50 20 39 28 30 41 33 22
++39 20 27 20 20 20 20 28 24 23 19 15 21 19 21 17 19 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 35 34 35 46 47 45 56 54 51 45 49 35 41 33 22
++68 33 37 99 61 48 99 61 48 99 79 59 99 61 48 68 24 14 45 39 35 68 50 43
++99 61 48 105 79 65 99 61 48 68 50 43 45 30 35 23 19 15 27 32 26 27 32 26
++28 30 29 20 28 24 21 19 27 20 28 24 23 20 27 20 28 24 23 20 27 41 28 14
++68 24 14 68 24 14 100 10 13 68 24 14 100 10 13 68 24 14 68 33 37 68 33 37
++68 50 43 68 50 43 68 33 37 68 24 14 68 24 14 68 24 14 68 24 14 68 24 14
++68 24 14 68 24 14 39 20 27 23 19 15 17 19 20 18 29 26 21 19 27 20 20 20
++20 20 20 27 32 26 45 30 35 68 50 43 68 50 43 68 33 37 68 33 37 41 33 22
++33 35 35 56 54 51 75 83 72 99 85 89 103 106 97 86 83 83 75 64 67 44 55 41
++35 34 35 33 35 35 27 32 26 32 31 35 20 28 24 28 30 29 27 32 26 35 34 35
++27 32 26 27 32 26 23 19 15 21 19 15 17 19 20 17 19 20 20 20 20 20 20 20
++17 19 20 17 19 20 21 19 15 17 19 20 13 14 11 20 20 20 20 28 24 23 20 27
++20 20 20 21 19 15 13 14 11 13 14 11 14 14 18 14 14 18 14 14 18 14 14 18
++14 14 18 14 14 18 14 14 18 14 14 18 14 14 18 14 14 18 13 14 11 14 14 18
++21 19 15 14 14 18 14 14 18 14 14 18 23 19 15 41 38 42 56 54 51 56 54 51
++32 31 35 21 19 15 17 19 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 23 20 27 28 30 29 37 33 35 33 35 35 28 30 29
++27 32 26 28 30 29 28 30 29 37 33 35 41 33 22 35 34 35 45 39 35 35 34 35
++33 35 35 31 42 35 37 33 35 35 34 35 33 35 35 28 30 29 23 20 27 20 20 20
++21 19 21 23 20 27 21 19 21 27 32 26 21 19 21 20 28 24 28 30 29 37 33 35
++35 34 35 28 30 29 21 19 21 21 19 21 20 28 24 28 30 29 37 33 35 45 39 35
++39 43 42 49 43 41 39 43 42 49 43 41 39 43 42 39 43 42 33 35 35 28 30 29
++28 30 29 28 30 29 28 30 29 28 30 29 28 30 29 28 30 29 39 28 30 28 30 29
++28 30 29 37 33 35 28 30 29 28 30 29 37 33 35 33 35 35 33 35 35 49 43 41
++61 46 51 71 59 54 73 50 50 61 46 51 56 54 51 45 39 35 41 38 42 35 34 35
++41 38 42 46 47 45 49 43 41 41 38 42 35 34 35 35 34 35 39 43 42 39 43 42
++39 43 42 33 35 35 35 34 35 35 34 35 41 38 42 39 43 42 41 38 42 35 34 35
++35 34 35 39 37 42 35 34 35 35 34 35 35 34 35 39 43 42 39 43 42 41 38 42
++45 39 35 33 35 35 39 43 42 35 34 35 39 43 42 35 34 35 45 39 35 39 43 42
++49 43 41 49 43 41 41 38 42 41 38 42 45 39 35 39 43 42 39 43 42 46 47 45
++49 43 41 39 37 42 33 35 35 35 34 35 35 34 35 39 43 42 35 34 35 35 34 35
++35 34 35 35 34 35 35 34 35 39 43 42 35 34 35 39 43 42 46 47 45 46 47 55
++46 47 45 46 47 45 163 158 149 210 216 207 238 233 218 210 216 207 235 233 206 211 221 218
++235 233 206 211 221 218 221 241 240 235 233 206 235 233 206 235 233 206 211 221 218 231 233 186
++
++21 19 27 20 28 24 20 20 20 41 33 22 68 50 43 99 61 48 99 79 59 99 61 48
++68 50 43 68 33 37 27 32 26 20 20 20 20 20 20 20 20 20 20 20 20 41 33 22
++68 50 43 71 59 54 104 74 73 99 79 59 99 61 48 68 33 37 41 33 22 21 19 21
++20 20 20 21 19 15 20 20 20 20 20 20 20 20 20 20 20 20 41 28 14 45 39 35
++71 59 54 99 61 48 99 61 48 71 59 54 68 50 43 68 50 43 41 33 22 39 28 30
++27 32 26 23 19 15 21 19 21 21 19 21 20 20 20 17 19 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 28 30 29 45 49 35 31 42 35 45 39 35 45 30 35
++68 50 43 99 61 48 105 79 65 105 79 65 99 61 48 68 50 20 68 33 37 99 61 48
++104 74 73 99 61 48 99 61 48 68 50 43 45 39 35 39 28 30 20 28 24 20 20 20
++23 20 27 21 19 27 18 29 26 21 29 29 23 20 27 20 28 24 39 20 27 39 20 27
++39 20 27 100 10 13 68 24 14 100 10 13 100 10 13 100 10 13 68 24 14 68 24 14
++45 39 35 45 39 35 41 33 22 68 33 37 68 24 14 68 24 14 68 24 14 100 10 13
++100 10 13 68 24 14 39 14 11 41 28 14 20 20 20 23 20 27 23 20 27 20 28 24
++27 32 26 27 32 26 45 30 35 68 50 43 68 33 37 68 50 43 41 33 22 27 32 26
++27 32 26 45 49 35 68 67 72 75 83 72 99 96 86 86 83 83 68 68 60 46 47 45
++41 33 22 33 35 35 28 30 29 33 35 35 23 20 27 20 28 24 21 19 15 21 19 21
++21 19 21 20 20 20 21 19 15 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 14 14 18 17 19 20 20 20 20 21 19 21 20 20 20
++20 20 20 14 14 18 13 14 11 14 14 18 21 19 15 14 14 18 14 14 18 21 19 15
++14 14 18 14 14 18 21 19 15 14 14 18 14 14 18 21 19 15 14 14 18 14 14 18
++14 14 18 14 14 18 21 19 15 14 14 18 28 30 29 56 54 51 75 64 67 64 57 60
++39 28 30 14 14 18 17 19 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 17 19 20 23 19 15 27 32 26 28 30 29 27 32 26 37 33 35 28 30 29
++27 32 26 32 31 35 37 33 35 35 34 35 33 35 35 35 34 35 31 42 35 35 34 35
++37 33 35 35 34 35 35 34 35 35 34 35 32 31 35 28 30 29 27 32 26 23 20 27
++21 19 21 20 28 24 21 19 21 21 19 21 21 19 21 28 30 29 28 30 29 35 34 35
++28 30 29 23 20 27 20 20 20 23 20 27 21 19 21 32 31 35 46 47 45 58 53 60
++56 54 51 46 47 45 46 47 45 46 47 45 56 54 51 46 47 45 35 34 35 28 30 29
++28 30 29 28 30 29 28 30 29 28 30 29 28 30 29 32 31 35 28 30 29 28 30 29
++28 30 29 28 30 29 32 31 35 35 34 35 35 34 35 28 30 29 33 35 35 49 43 41
++61 46 51 71 59 54 71 59 54 68 50 43 57 45 51 45 39 35 35 34 35 33 35 35
++37 33 35 49 43 41 41 38 42 39 43 42 37 33 35 35 34 35 46 47 45 46 47 45
++39 43 42 35 34 35 35 34 35 35 34 35 39 37 42 49 43 41 35 34 35 39 43 42
++35 34 35 35 34 35 39 37 42 39 43 42 41 38 42 39 43 42 45 39 35 39 43 42
++39 43 42 39 43 42 35 34 35 35 34 35 35 34 35 35 34 35 39 43 42 49 43 41
++57 45 51 57 45 51 49 43 41 49 43 41 41 38 42 41 38 42 46 47 45 46 47 45
++41 38 42 35 34 35 35 34 35 31 42 35 35 34 35 35 34 35 39 37 42 35 34 35
++39 43 42 41 38 42 39 43 42 41 38 42 39 43 42 41 38 42 39 43 42 46 47 45
++49 43 41 68 75 77 203 196 201 210 216 207 238 233 218 211 221 218 229 221 240 238 233 218
++221 241 240 246 248 239 221 241 240 246 248 239 221 241 240 238 233 218 238 233 218 235 233 206
++
++23 20 27 21 19 21 23 19 15 41 33 22 56 54 51 71 59 54 99 79 59 99 79 59
++73 50 50 49 43 41 41 28 14 21 19 21 20 20 20 20 20 20 21 19 21 45 39 35
++68 50 43 99 61 48 99 79 59 99 61 48 73 50 50 68 50 20 28 30 29 23 19 15
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 49 43 41
++71 59 54 99 61 48 88 79 65 99 61 48 73 50 50 68 50 43 45 30 35 28 30 29
++20 20 20 21 19 21 20 28 24 21 19 21 21 19 21 20 20 20 17 19 20 20 20 20
++20 20 20 20 20 20 17 19 20 23 20 27 28 30 29 33 35 35 35 34 35 45 39 35
++73 50 50 99 79 59 105 79 65 99 61 48 99 61 48 68 50 43 68 50 43 99 61 48
++99 61 48 99 61 48 99 61 48 68 50 43 68 33 37 41 33 22 28 30 29 20 20 20
++20 28 24 21 19 27 18 29 26 21 19 27 23 20 27 20 28 24 23 20 27 68 24 14
++68 24 14 100 10 13 100 10 13 100 10 13 68 33 37 68 24 14 68 24 14 39 20 27
++39 20 27 41 28 14 68 24 14 68 24 14 100 10 13 100 10 13 100 10 13 68 24 14
++68 24 14 68 24 14 68 24 14 39 20 27 21 19 21 23 20 27 39 28 30 28 30 29
++23 20 27 28 30 29 39 28 30 49 43 41 49 43 41 45 39 35 41 33 22 28 30 29
++28 30 29 45 39 35 57 59 55 68 68 60 68 75 77 68 68 60 56 54 51 35 34 35
++28 30 29 33 35 35 27 32 26 28 30 29 20 20 20 20 20 20 20 20 20 21 19 21
++21 19 21 21 19 21 20 20 20 20 20 20 21 19 15 17 19 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 21 19 15 20 20 20 21 19 21 20 28 24
++21 19 15 14 14 18 21 19 15 14 14 18 14 14 18 13 14 11 21 19 15 14 14 18
++13 14 11 13 14 11 14 14 18 14 14 18 14 14 18 13 14 11 14 14 18 14 14 18
++13 14 11 17 19 20 14 14 18 21 19 15 37 33 35 64 57 60 75 64 67 57 59 55
++27 32 26 13 14 11 17 19 20 17 19 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 17 19 20 20 20 20 21 19 21 28 30 29 39 28 30 33 35 35 28 30 29
++28 30 29 28 30 29 45 39 35 31 42 35 45 39 35 31 42 35 45 39 35 35 34 35
++45 39 35 33 35 35 35 34 35 35 34 35 33 35 35 27 32 26 21 19 21 21 19 21
++20 20 20 21 19 21 23 20 27 20 28 24 21 19 21 20 28 24 28 30 29 28 30 29
++27 32 26 20 20 20 20 28 24 20 20 20 27 32 26 37 33 35 56 54 51 57 59 55
++56 54 51 57 45 51 46 47 45 46 47 45 56 54 51 39 43 42 33 35 35 28 30 29
++20 28 24 28 30 29 23 20 27 28 30 29 28 30 29 28 30 29 28 30 29 28 30 29
++32 31 35 32 31 35 28 30 29 35 34 35 28 30 29 28 30 29 35 34 35 45 39 35
++56 54 51 61 46 51 61 46 51 61 46 51 49 43 41 45 39 35 32 31 35 32 31 35
++35 34 35 41 38 42 41 38 42 49 43 41 37 33 35 41 38 42 46 47 45 46 47 45
++41 38 42 33 35 35 35 34 35 35 34 35 39 37 42 35 34 35 31 42 35 35 34 35
++35 34 35 33 35 35 35 34 35 45 39 35 39 43 42 41 38 42 39 43 42 41 38 42
++41 38 42 39 37 42 35 34 35 39 43 42 35 34 35 35 34 35 49 43 41 57 45 51
++56 54 51 56 54 51 57 45 51 48 36 41 41 38 42 49 43 41 46 47 45 46 47 45
++39 37 42 35 34 35 35 34 35 35 34 35 35 34 35 41 38 42 35 34 35 35 34 35
++45 39 35 39 37 42 49 43 41 46 47 45 41 38 42 49 43 41 39 43 42 39 43 42
++39 37 42 112 104 120 211 221 218 173 188 216 188 191 205 166 181 211 121 182 205 166 181 211
++166 181 211 166 181 211 189 200 189 221 241 240 221 241 240 211 221 218 211 221 218 211 221 218
++
++21 19 21 23 20 27 21 19 21 27 32 26 68 50 43 99 61 48 99 61 48 99 61 48
++68 50 43 45 39 35 23 19 15 20 20 20 20 20 20 23 19 15 27 32 26 45 39 35
++61 46 51 99 61 48 99 79 59 99 61 48 73 50 50 68 50 43 41 33 22 21 19 21
++20 20 20 21 19 15 20 20 20 20 20 20 17 19 20 21 19 15 23 19 15 49 43 41
++68 50 43 99 61 48 99 79 59 99 61 48 73 50 50 49 43 41 37 33 35 28 30 29
++21 19 21 20 28 24 21 19 21 23 20 27 23 20 27 21 19 21 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 23 20 27 28 30 29 35 34 35 49 43 41
++74 57 60 104 74 73 104 74 73 99 61 48 68 50 43 68 33 37 68 50 43 73 50 50
++104 74 73 99 61 48 99 61 48 68 50 43 49 43 41 41 33 22 23 20 27 23 20 27
++18 29 26 21 19 27 21 19 27 23 20 27 21 19 21 23 20 27 39 20 27 68 24 14
++100 10 13 100 10 13 99 36 46 100 10 13 100 10 13 68 24 14 68 24 14 39 20 27
++39 20 27 39 28 30 68 24 14 68 24 14 68 24 14 68 24 14 100 10 13 100 10 13
++100 10 13 68 24 14 68 24 14 39 14 11 27 32 26 21 19 21 28 30 29 28 30 29
++27 32 26 23 20 27 28 30 29 41 38 42 45 39 35 41 33 22 39 20 27 27 32 26
++27 32 26 28 30 29 39 43 42 46 47 45 56 54 51 49 43 41 31 42 35 35 34 35
++28 30 29 28 30 29 28 30 29 28 30 29 21 19 21 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++23 20 27 28 30 29 20 28 24 21 19 21 20 20 20 20 20 20 23 20 27 21 19 21
++21 19 15 17 19 20 17 19 20 20 20 20 17 19 20 17 19 20 17 19 20 14 14 18
++14 14 18 20 20 20 14 14 18 21 19 15 14 14 18 21 19 15 21 19 15 17 19 20
++14 14 18 21 19 21 23 19 15 23 20 27 45 39 35 71 59 54 68 68 60 49 43 41
++21 19 15 14 14 18 13 14 11 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 21 19 21 20 20 20 20 20 20 28 30 29 33 35 35 37 33 35 28 30 29
++27 32 26 39 28 30 31 42 35 45 39 35 35 34 35 45 39 35 35 34 35 45 39 35
++31 42 35 33 35 35 35 34 35 35 34 35 28 30 29 28 30 29 20 28 24 21 19 21
++21 19 21 27 32 26 21 19 21 20 28 24 23 20 27 20 28 24 21 19 21 21 19 21
++20 28 24 23 20 27 20 28 24 20 20 20 28 30 29 39 43 42 56 54 51 56 54 51
++56 54 51 56 54 51 49 43 41 45 39 35 46 47 45 39 43 42 30 34 36 21 29 29
++28 30 29 28 30 29 28 30 29 32 31 35 32 31 35 32 31 35 28 30 29 32 31 35
++28 30 29 35 34 35 28 30 29 39 28 30 28 30 29 35 34 35 35 34 35 49 43 41
++56 54 51 68 50 43 56 54 51 49 43 41 45 39 35 35 34 35 35 34 35 33 35 35
++35 34 35 37 33 35 49 43 41 46 47 45 41 38 42 46 47 45 56 54 51 49 43 41
++35 34 35 33 35 35 35 34 35 39 43 42 35 34 35 39 43 42 33 35 35 39 37 42
++33 35 35 45 39 35 35 34 35 33 35 35 45 39 35 41 38 42 39 43 42 41 38 42
++39 43 42 39 43 42 35 34 35 35 34 35 37 33 35 31 42 35 49 43 41 56 54 51
++57 45 51 56 54 51 57 45 51 49 43 41 49 43 41 41 38 42 46 47 45 39 43 42
++37 33 35 39 43 42 35 34 35 39 43 42 35 34 35 35 34 35 39 43 42 33 35 35
++41 38 42 41 38 42 46 47 45 46 47 45 46 47 45 39 43 42 46 47 45 39 43 42
++46 47 55 104 108 124 141 154 138 91 128 178 121 182 205 91 128 178 121 182 205 121 182 205
++121 182 205 121 182 205 121 182 205 188 196 234 221 241 240 173 188 216 121 182 205 173 188 216
++
++27 32 26 23 19 15 20 28 24 41 33 22 49 43 41 68 69 55 99 79 59 99 61 48
++68 33 37 41 28 14 23 20 27 21 19 21 20 20 20 21 19 21 23 20 27 49 43 41
++71 59 54 99 79 59 99 79 59 99 61 48 99 61 48 68 50 43 39 28 30 27 32 26
++20 20 20 21 19 15 20 20 20 21 19 21 17 19 20 21 19 15 23 19 15 45 39 35
++68 50 43 73 50 50 73 50 50 73 50 50 68 50 43 68 50 20 39 28 30 21 19 21
++21 19 21 23 20 27 23 20 27 20 28 24 21 19 21 23 20 27 17 19 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 28 24 39 37 42 56 54 51 58 61 60 75 83 72
++103 81 83 103 81 83 104 74 73 99 61 48 73 50 50 41 33 22 68 33 37 68 50 43
++99 61 48 74 57 60 99 61 48 68 50 43 41 33 22 41 33 22 23 20 27 20 28 24
++20 20 20 21 19 27 21 19 27 21 29 29 23 20 27 39 20 27 39 20 27 100 10 13
++68 24 14 100 10 13 100 10 13 100 10 13 100 10 13 68 24 14 39 14 11 39 20 27
++23 19 15 41 28 14 68 24 14 68 24 14 100 10 13 100 10 13 100 10 13 68 33 37
++100 10 13 39 20 27 39 20 27 39 20 27 41 28 14 27 32 26 27 32 26 23 20 27
++21 19 21 21 19 21 21 19 21 28 30 29 39 28 30 39 28 30 27 32 26 23 20 27
++28 30 29 28 30 29 28 30 29 28 30 29 27 32 26 27 32 26 27 32 26 27 32 26
++27 32 26 28 30 29 28 30 29 21 19 21 21 19 21 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 23 20 27
++27 32 26 28 30 29 23 20 27 20 20 20 20 20 20 20 28 24 21 19 21 20 20 20
++20 20 20 20 20 20 27 32 26 28 30 29 21 19 21 20 20 20 17 19 20 20 20 20
++23 19 15 21 19 21 23 19 15 20 20 20 21 19 15 17 19 20 17 19 20 21 19 21
++20 20 20 21 19 21 21 19 21 39 28 30 45 39 35 61 46 51 61 46 51 45 39 35
++21 19 15 17 19 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 21 19 21 28 30 29 33 35 35 35 34 35 28 30 29
++28 30 29 35 34 35 45 39 35 31 42 35 45 39 35 31 42 35 45 39 35 31 42 35
++41 33 22 35 34 35 35 34 35 35 34 35 28 30 29 28 30 29 23 20 27 20 28 24
++28 30 29 21 19 21 28 30 29 23 20 27 27 32 26 21 19 21 28 30 29 28 30 29
++28 30 29 28 30 29 27 32 26 21 29 29 28 30 29 39 43 42 46 47 45 46 47 45
++46 47 45 49 43 41 45 39 35 35 34 35 33 35 35 33 35 35 33 35 35 28 30 29
++28 30 29 28 30 29 28 30 29 32 31 35 32 31 35 28 30 29 32 31 35 32 31 35
++28 30 29 37 33 35 35 34 35 31 42 35 45 39 35 39 43 42 49 43 41 46 47 45
++56 54 51 64 57 60 68 50 43 56 54 51 49 43 41 45 49 35 39 43 42 37 33 35
++35 34 35 37 33 35 49 43 41 46 47 45 46 47 45 46 47 45 46 47 45 39 37 42
++35 34 35 33 35 35 35 34 35 35 34 35 39 43 42 41 38 42 45 39 35 31 42 35
++37 33 35 35 34 35 37 33 35 45 39 35 33 35 35 39 43 42 39 43 42 39 43 42
++39 43 42 41 38 42 39 43 42 35 34 35 35 34 35 35 34 35 49 43 41 61 46 51
++49 43 41 56 54 51 49 43 41 49 43 41 41 38 42 41 38 42 39 37 42 35 34 35
++35 34 35 35 34 35 39 37 42 35 34 35 35 34 35 45 39 35 39 37 42 39 37 42
++45 39 35 46 47 45 49 43 41 46 47 45 41 38 42 46 47 45 49 43 41 39 43 42
++39 43 42 75 110 124 75 110 124 91 128 178 75 110 124 91 128 178 91 128 178 91 128 178
++91 128 178 91 128 178 121 182 205 121 182 205 121 182 205 121 182 205 121 182 205 121 182 205
++
++68 69 47 41 33 22 17 19 20 27 32 26 68 50 43 73 50 50 99 61 48 71 59 54
++45 39 35 41 33 22 20 20 20 20 28 24 28 30 29 28 30 29 20 28 24 39 28 30
++61 46 51 99 61 48 105 79 65 75 64 67 99 61 48 49 43 41 41 33 22 21 19 21
++20 20 20 20 20 20 20 20 20 20 20 20 23 20 27 20 28 24 12 22 12 41 33 22
++45 49 35 68 50 43 71 59 54 71 59 54 68 50 20 45 30 35 28 30 29 27 32 26
++21 19 21 21 19 21 20 28 24 23 20 27 21 19 21 21 19 21 20 20 20 20 20 20
++20 20 20 20 20 20 23 20 27 33 35 35 46 47 45 58 61 60 86 83 83 99 85 89
++99 85 89 103 81 83 104 74 73 99 79 59 73 50 50 41 33 22 45 39 35 68 50 43
++99 61 48 71 59 54 68 50 43 68 33 37 41 33 22 20 20 20 20 20 20 21 19 21
++20 20 20 23 20 27 23 20 27 23 20 27 28 30 29 39 20 27 68 24 14 100 10 13
++100 10 13 100 10 13 100 10 13 68 33 37 100 10 13 68 24 14 39 20 27 39 20 27
++39 20 27 39 20 27 68 24 14 68 33 37 100 10 13 100 10 13 100 10 13 100 10 13
++68 24 14 68 24 14 68 24 14 41 33 22 23 19 15 27 32 26 27 32 26 28 30 29
++27 32 26 20 20 20 21 19 21 20 28 24 23 19 15 23 20 27 27 32 26 28 30 29
++32 31 35 35 34 35 28 30 29 39 28 30 27 32 26 23 19 15 27 32 26 23 19 15
++27 32 26 28 30 29 28 30 29 28 30 29 20 28 24 20 20 20 20 20 20 21 19 21
++20 28 24 21 19 21 27 32 26 23 20 27 27 32 26 23 20 27 27 32 26 23 20 27
++27 32 26 23 20 27 28 30 29 20 28 24 20 20 20 21 19 21 21 19 21 20 20 20
++21 19 15 21 19 21 39 28 30 39 28 30 39 28 30 17 19 20 20 20 20 27 32 26
++39 28 30 45 39 35 41 33 22 41 33 22 20 20 20 17 19 20 17 19 20 20 20 20
++21 19 21 27 32 26 39 20 27 27 32 26 45 39 35 49 43 41 45 39 35 28 30 29
++21 19 15 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 21 19 21 28 30 29 33 35 35 35 34 35 32 31 35
++28 30 29 41 33 22 31 42 35 45 39 35 33 35 35 45 39 35 31 42 35 45 39 35
++35 34 35 33 35 35 35 34 35 35 34 35 37 33 35 28 30 29 28 30 29 23 20 27
++28 30 29 28 30 29 28 30 29 28 30 29 28 30 29 28 30 29 28 30 29 28 30 29
++28 30 29 28 30 29 28 30 29 28 30 29 33 35 35 39 43 42 39 43 42 46 47 45
++39 43 42 41 38 42 35 34 35 28 30 29 28 30 29 39 43 42 39 43 42 33 35 35
++32 31 35 28 30 29 32 31 35 32 31 35 32 31 35 28 30 29 32 31 35 28 30 29
++32 31 35 39 43 42 45 49 35 56 54 51 56 54 51 56 54 51 46 47 45 49 43 41
++56 54 51 71 59 54 56 54 51 49 43 41 46 47 45 46 47 45 46 47 45 46 47 45
++37 33 35 45 39 35 45 39 35 46 47 45 49 43 41 46 47 45 46 47 45 45 39 35
++35 34 35 33 35 35 35 34 35 41 38 42 39 43 42 45 39 35 39 43 42 45 39 35
++41 38 42 45 39 35 45 39 35 45 39 35 45 39 35 49 43 41 41 38 42 39 43 42
++49 43 41 39 43 42 41 38 42 35 34 35 37 33 35 31 42 35 49 43 41 56 54 51
++68 50 43 56 54 51 57 45 51 49 43 41 41 38 42 39 37 42 35 34 35 33 35 35
++41 38 42 35 34 35 39 43 42 35 34 35 35 34 35 41 38 42 39 43 42 46 47 45
++41 38 42 41 38 42 49 43 41 46 47 45 49 43 41 39 43 42 39 43 42 39 43 42
++42 59 47 68 74 109 75 110 124 75 110 124 91 128 178 91 128 178 91 128 178 75 110 124
++121 182 205 91 128 178 91 128 178 121 182 205 121 182 205 121 182 205 91 128 178 91 128 178
++
++113 97 77 68 50 43 23 20 27 20 28 24 45 39 35 68 50 43 68 64 51 68 50 43
++45 39 35 27 32 26 28 30 29 41 33 22 45 39 35 37 33 35 41 33 22 39 28 30
++45 39 35 68 50 43 71 59 54 99 61 48 68 50 43 41 33 22 27 32 26 17 19 20
++21 19 21 21 19 21 20 20 20 17 19 20 21 19 21 21 19 15 27 32 26 68 50 43
++68 69 47 99 61 48 68 50 20 68 50 43 68 33 37 41 33 22 28 30 29 21 19 21
++20 20 20 23 20 27 23 20 27 20 20 20 23 20 27 20 20 20 21 19 21 20 20 20
++20 20 20 20 20 20 20 28 24 35 34 35 42 59 47 68 67 72 86 83 83 99 96 86
++103 81 83 134 98 86 104 74 73 104 74 73 73 50 50 57 45 51 45 39 35 49 43 41
++68 50 43 68 50 43 49 43 41 41 33 22 39 28 30 20 28 24 20 20 20 20 20 20
++20 20 20 20 28 24 23 20 27 23 20 27 39 20 27 68 24 14 68 24 14 100 10 13
++68 33 37 100 10 13 100 10 13 100 10 13 68 24 14 68 24 14 39 20 27 21 19 21
++39 20 27 68 24 14 68 24 14 100 10 13 100 10 13 68 33 37 100 10 13 68 33 37
++68 33 37 68 33 37 61 46 51 49 43 41 41 33 22 39 28 30 41 33 22 28 30 29
++23 20 27 23 20 27 20 20 20 21 19 21 20 20 20 27 32 26 23 20 27 28 30 29
++32 31 35 28 30 29 32 31 35 28 30 29 28 30 29 27 32 26 41 33 22 27 32 26
++41 33 22 28 30 29 27 32 26 23 20 27 27 32 26 21 19 21 21 19 21 20 20 20
++23 20 27 28 30 29 28 30 29 28 30 29 28 30 29 23 20 27 27 32 26 28 30 29
++28 30 29 28 30 29 21 19 21 21 19 21 21 19 21 20 20 20 20 20 20 21 19 15
++21 19 15 27 32 26 39 28 30 39 28 30 39 20 27 21 19 15 27 32 26 45 39 35
++68 50 43 68 64 51 68 50 43 49 43 41 41 33 22 20 20 20 17 19 20 20 20 20
++20 28 24 27 32 26 41 33 22 35 34 35 45 39 35 45 30 35 45 39 35 41 28 14
++20 28 24 21 19 21 20 20 20 20 20 20 20 20 20 21 19 21 20 28 24 21 19 21
++20 20 20 20 20 20 20 20 20 20 28 24 28 30 29 32 31 35 28 30 29 28 30 29
++27 32 26 28 30 29 45 39 35 31 42 35 45 39 35 33 35 35 41 33 22 31 42 35
++45 39 35 33 35 35 35 34 35 35 34 35 35 34 35 28 30 29 39 28 30 28 30 29
++37 33 35 32 31 35 28 30 29 39 28 30 28 30 29 28 30 29 28 30 29 39 28 30
++37 33 35 41 38 42 49 43 41 45 39 35 45 39 35 45 49 35 39 43 42 39 43 42
++37 33 35 35 34 35 28 30 29 28 30 29 37 33 35 39 43 42 46 47 45 35 34 35
++33 35 35 32 31 35 32 31 35 32 31 35 28 30 29 32 31 35 28 30 29 35 34 35
++49 43 41 56 54 51 57 59 55 58 61 60 68 64 51 56 54 51 46 47 45 49 43 41
++46 47 45 57 45 51 49 43 41 45 49 35 49 43 41 56 54 51 56 54 51 56 54 51
++46 47 45 49 43 41 45 39 35 39 43 42 45 39 35 46 47 45 49 43 41 46 47 45
++35 34 35 35 34 35 35 34 35 41 38 42 41 38 42 39 43 42 45 39 35 46 47 45
++56 54 51 56 54 51 46 47 45 49 43 41 45 39 35 41 38 42 45 39 35 39 43 42
++39 43 42 39 43 42 45 39 35 39 43 42 39 37 42 39 43 42 49 43 41 57 45 51
++49 43 41 56 54 51 49 43 41 49 43 41 41 38 42 35 34 35 39 37 42 35 34 35
++35 34 35 35 34 35 35 34 35 35 34 35 49 43 41 46 47 45 57 45 51 46 47 45
++49 43 41 49 43 41 46 47 45 46 47 45 41 38 42 46 47 45 46 47 45 39 43 42
++28 32 42 68 74 109 75 110 124 75 110 124 91 128 178 91 128 178 121 182 205 91 128 178
++121 182 205 91 128 178 121 182 205 75 110 124 91 128 178 75 110 124 91 128 178 91 128 178
++
++165 108 102 105 79 65 41 38 42 21 19 27 41 28 14 45 39 35 68 50 43 68 50 43
++41 33 22 28 30 29 49 43 41 68 69 55 99 96 86 103 106 97 88 79 65 49 43 41
++45 49 35 68 50 43 68 64 51 68 50 43 45 39 35 41 28 14 23 19 15 20 20 20
++21 19 21 21 19 21 20 20 20 21 19 21 23 20 27 23 19 15 44 55 41 134 98 86
++165 108 102 161 121 76 143 103 96 99 79 28 68 50 43 41 33 22 27 32 26 20 20 20
++21 19 21 20 28 24 21 19 21 20 28 24 20 20 20 23 20 27 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 23 20 27 45 39 35 57 59 55 75 64 67 104 74 73
++104 74 73 105 79 65 133 69 69 99 61 48 88 79 65 68 68 60 68 69 55 56 54 51
++68 50 43 45 39 35 45 39 35 39 28 30 27 32 26 27 32 26 27 32 26 20 28 24
++23 19 15 23 20 27 23 20 27 21 19 21 39 20 27 39 20 27 68 24 14 100 10 13
++100 10 13 68 33 37 100 10 13 68 24 14 100 10 13 39 14 11 39 20 27 27 32 26
++39 20 27 39 20 27 100 10 13 68 33 37 100 10 13 100 10 13 100 10 13 68 24 14
++99 61 48 74 57 60 99 79 59 74 57 60 68 50 43 41 33 22 39 20 27 28 30 29
++28 30 29 27 32 26 20 20 20 20 20 20 21 19 15 20 28 24 28 30 29 32 26 35
++32 31 35 32 31 35 28 30 29 32 31 35 28 30 29 39 28 30 27 32 26 27 32 26
++28 30 29 28 30 29 41 33 22 28 30 29 28 30 29 28 30 29 20 20 20 20 20 20
++20 20 20 28 30 29 35 34 35 32 31 35 28 30 29 28 30 29 28 30 29 28 30 29
++28 30 29 28 30 29 28 30 29 21 19 21 20 20 20 20 20 20 20 20 20 17 19 20
++23 19 15 23 19 15 39 28 30 41 33 22 39 20 27 23 19 15 41 33 22 68 50 43
++99 79 59 99 79 59 99 79 59 73 50 50 45 39 35 28 30 29 21 19 21 23 19 15
++28 30 29 27 32 26 39 28 30 45 39 35 45 39 35 41 33 22 45 30 35 39 28 30
++41 28 14 28 30 29 20 28 24 23 20 27 28 30 29 28 30 29 28 30 29 23 20 27
++20 20 20 20 20 20 21 19 21 23 20 27 28 30 29 35 34 35 37 33 35 28 30 29
++28 30 29 27 32 26 35 34 35 31 42 35 41 33 22 35 34 35 31 42 35 45 39 35
++35 34 35 33 35 35 35 34 35 35 34 35 35 34 35 33 35 35 35 34 35 39 37 42
++35 34 35 45 39 35 39 37 42 35 34 35 37 33 35 37 33 35 35 34 35 39 37 42
++56 54 51 64 57 60 75 64 67 74 57 60 61 46 51 49 43 41 45 49 35 35 34 35
++39 43 42 35 34 35 35 34 35 32 31 35 39 37 42 46 47 45 46 47 45 37 33 35
++28 30 29 32 31 35 32 31 35 28 30 29 28 30 29 32 31 35 28 30 29 46 47 45
++57 59 55 68 68 60 68 68 60 68 68 60 68 68 60 56 54 51 45 49 35 49 43 41
++49 43 41 49 43 41 49 43 41 45 49 35 46 47 45 68 69 55 58 61 60 57 59 55
++57 59 55 46 47 45 49 43 41 45 39 35 45 39 35 46 47 45 46 47 45 45 39 35
++39 43 42 35 34 35 39 43 42 33 35 35 45 39 35 39 43 42 49 43 41 56 54 51
++64 57 60 71 59 54 57 59 55 56 54 51 49 43 41 35 34 35 45 39 35 41 38 42
++41 38 42 41 38 42 39 43 42 41 38 42 39 43 42 46 47 45 46 47 45 49 43 41
++57 45 51 49 43 41 49 43 41 45 39 35 39 43 42 39 37 42 39 43 42 39 37 42
++39 43 42 35 34 35 33 35 35 39 37 42 49 43 41 46 47 45 56 54 51 57 45 51
++46 47 45 46 47 45 49 43 41 41 38 42 41 38 42 41 38 42 46 47 45 46 47 55
++42 59 47 45 62 74 75 110 124 75 110 124 75 110 124 69 83 54 45 62 74 69 83 54
++69 83 54 75 110 124 75 110 124 75 110 124 121 182 205 121 182 205 91 128 178 91 128 178
++
++184 123 101 134 98 86 73 50 50 41 28 14 23 20 27 27 32 26 41 33 22 31 42 35
++27 32 26 45 39 35 113 97 77 164 145 137 188 177 159 210 180 161 188 177 159 164 133 127
++113 97 77 68 69 55 68 50 43 49 43 41 39 28 30 20 20 20 20 20 20 20 28 24
++23 20 27 21 19 21 21 19 21 17 19 20 20 28 24 45 49 35 134 98 86 191 160 135
++210 180 161 210 180 161 216 172 134 184 123 101 113 97 77 68 33 37 27 32 26 23 20 27
++23 20 27 21 19 21 21 19 21 20 28 24 20 20 20 20 20 20 23 19 15 21 19 15
++21 19 15 20 20 20 17 19 20 17 19 20 23 20 27 27 32 26 45 49 35 73 50 50
++99 61 48 133 69 69 105 79 65 134 98 86 143 103 96 137 117 96 128 104 97 88 79 65
++56 54 51 37 33 35 45 30 35 37 33 35 41 33 22 39 28 30 28 30 29 27 32 26
++20 28 24 23 20 27 20 28 24 20 28 24 39 20 27 68 24 14 100 10 13 100 10 13
++100 10 13 100 10 13 100 10 13 68 33 37 68 24 14 39 20 27 39 20 27 20 20 20
++39 20 27 39 20 27 68 24 14 100 10 13 100 10 13 68 24 14 100 10 13 99 36 46
++99 61 48 105 79 65 105 79 65 99 79 59 99 61 48 49 43 41 41 33 22 39 28 30
++23 19 15 20 20 20 21 19 15 17 19 20 20 20 20 28 30 29 28 30 29 32 31 35
++28 30 29 28 26 35 32 31 35 32 31 35 28 30 29 33 35 35 41 33 22 33 35 35
++41 33 22 28 30 29 27 32 26 23 20 27 28 30 29 21 19 21 20 20 20 20 20 20
++20 20 20 28 30 29 30 34 36 28 30 29 28 30 29 28 30 29 28 30 29 37 33 35
++35 34 35 28 30 29 23 20 27 20 28 24 20 20 20 20 20 20 17 19 20 13 14 11
++21 19 15 20 28 24 39 28 30 39 20 27 23 19 15 23 19 15 45 39 35 73 50 50
++105 79 65 133 69 69 105 79 65 68 69 47 68 50 43 41 33 22 20 20 20 28 30 29
++35 34 35 32 31 35 45 39 35 39 43 42 49 43 41 45 30 35 41 33 22 41 28 14
++21 19 21 27 32 26 39 20 27 41 33 22 41 33 22 45 39 35 45 39 35 41 33 22
++23 19 15 23 19 15 20 28 24 27 32 26 32 31 35 35 34 35 28 30 29 28 30 29
++28 30 29 28 30 29 37 33 35 37 33 35 31 42 35 45 39 35 31 42 35 41 33 22
++31 42 35 41 33 22 45 39 35 45 39 35 45 39 35 37 33 35 45 39 35 31 42 35
++45 39 35 45 39 35 45 39 35 45 39 35 45 39 35 37 33 35 37 33 35 49 43 41
++71 59 54 99 79 59 105 79 65 99 61 48 71 59 54 49 43 41 49 43 41 45 39 35
++37 33 35 45 39 35 41 38 42 45 39 35 41 38 42 39 43 42 41 38 42 35 34 35
++33 35 35 28 30 29 39 28 30 35 34 35 37 33 35 37 33 35 41 38 42 56 54 51
++58 61 60 68 68 60 68 68 60 68 68 60 68 68 60 56 54 51 46 47 45 39 43 42
++39 43 42 39 43 42 39 43 42 39 43 42 56 54 51 57 59 55 68 68 60 68 68 60
++57 59 55 57 59 55 46 47 45 39 43 42 45 39 35 49 43 41 46 47 45 49 43 41
++39 37 42 35 34 35 39 37 42 39 43 42 39 37 42 45 39 35 46 47 45 56 54 51
++71 59 54 71 59 54 56 54 51 49 43 41 45 39 35 37 33 35 39 37 42 39 43 42
++39 43 42 46 47 45 49 43 41 39 43 42 45 39 35 46 47 45 46 47 45 57 45 51
++56 54 51 46 47 45 46 47 45 39 43 42 41 38 42 39 43 42 39 43 42 39 43 42
++45 39 35 33 35 35 39 43 42 35 34 35 46 47 45 46 47 45 56 54 51 56 54 51
++46 47 55 46 47 45 46 47 45 39 43 42 39 43 42 46 47 45 46 47 45 56 54 51
++42 59 47 45 62 74 45 62 74 75 110 124 75 110 124 159 178 157 189 200 189 189 200 189
++173 191 134 189 200 189 159 178 157 141 158 118 75 110 124 103 117 86 75 110 124 75 110 124
++
++184 128 126 161 121 76 99 79 59 39 28 30 20 20 20 20 28 24 33 35 35 28 30 29
++39 28 30 88 79 65 164 145 120 215 195 173 212 206 189 240 208 188 240 208 188 210 180 161
++164 145 137 104 88 73 56 54 51 49 43 41 28 30 29 20 20 20 20 20 20 23 20 27
++20 28 24 23 20 27 20 20 20 20 20 20 45 49 35 137 117 96 210 180 161 240 208 188
++240 208 188 242 198 175 242 198 175 210 180 161 184 128 126 105 79 65 41 33 22 27 32 26
++20 28 24 39 20 27 23 20 27 21 19 21 20 20 20 21 19 27 21 19 21 17 19 20
++20 20 20 20 20 20 20 20 20 28 30 29 23 20 27 28 30 29 45 39 35 68 33 37
++104 74 73 134 98 86 165 108 102 191 160 135 191 160 135 210 180 161 191 160 135 128 104 97
++88 79 65 45 49 35 37 33 35 45 39 35 45 39 35 45 39 35 45 39 35 41 33 22
++27 32 26 21 19 21 28 30 29 23 19 15 39 20 27 68 33 37 100 10 13 68 24 14
++100 10 13 68 33 37 100 10 13 100 10 13 68 24 14 39 14 11 28 30 29 20 28 24
++41 28 14 39 20 27 100 10 13 68 33 37 100 10 13 100 10 13 100 10 13 99 36 46
++99 61 48 104 88 73 134 98 86 105 79 65 99 79 59 68 64 51 45 39 35 39 28 30
++27 32 26 20 20 20 17 19 20 20 20 20 20 20 20 28 30 29 28 30 29 32 31 35
++28 30 29 28 30 29 32 31 35 32 31 35 28 30 29 33 35 35 33 35 35 41 33 22
++33 35 35 37 33 35 27 32 26 28 30 29 28 30 29 28 30 29 21 19 21 20 20 20
++20 28 24 28 30 29 33 35 35 33 35 35 30 34 36 28 30 29 28 30 29 33 35 35
++35 34 35 28 30 29 28 30 29 21 19 21 17 19 20 21 19 15 17 19 20 13 14 11
++13 14 11 23 19 15 23 19 15 23 19 15 23 19 15 23 19 15 45 49 35 99 61 48
++113 97 77 134 98 86 113 97 77 99 79 59 68 50 43 45 39 35 28 30 29 28 30 29
++41 38 42 39 43 42 46 47 45 46 47 45 49 43 41 41 33 22 27 32 26 23 20 27
++27 32 26 20 20 20 27 32 26 41 33 22 49 43 41 68 50 43 68 50 43 45 39 35
++39 28 30 27 32 26 23 19 15 23 20 27 28 30 29 32 31 35 28 30 29 23 20 27
++28 30 29 28 30 29 35 34 35 35 34 35 35 34 35 35 34 35 31 42 35 45 39 35
++45 49 35 57 45 51 68 64 51 68 50 43 49 43 41 45 49 35 41 33 22 35 34 35
++45 39 35 39 43 42 49 43 41 45 39 35 37 33 35 39 37 42 39 37 42 68 50 43
++74 57 60 104 74 73 104 74 73 99 79 59 73 50 50 68 50 43 49 43 41 45 39 35
++41 38 42 41 38 42 45 39 35 41 38 42 41 38 42 41 38 42 39 43 42 35 34 35
++35 34 35 33 35 35 33 35 35 39 43 42 39 43 42 46 47 45 56 54 51 57 59 55
++68 68 60 68 67 72 68 68 60 68 68 60 68 68 60 57 59 55 46 47 45 46 47 45
++46 47 45 46 47 45 39 43 42 46 47 45 57 59 55 68 68 60 68 68 60 58 61 60
++68 68 60 68 69 55 57 59 55 56 54 51 46 47 45 49 43 41 41 38 42 41 38 42
++35 34 35 33 35 35 35 34 35 45 39 35 41 38 42 39 43 42 46 47 45 71 59 54
++71 59 54 71 59 54 71 59 54 56 54 51 49 43 41 39 43 42 45 39 35 41 38 42
++39 43 42 39 43 42 39 43 42 41 38 42 41 38 42 41 38 42 46 47 45 46 47 45
++56 54 51 56 54 51 41 38 42 39 43 42 41 38 42 46 47 45 49 43 41 46 47 45
++39 43 42 41 38 42 35 34 35 41 38 42 39 43 42 46 47 55 56 54 51 58 53 60
++56 54 51 46 47 45 46 47 45 41 38 42 46 47 45 46 47 55 56 54 51 58 61 60
++42 59 47 42 59 47 83 103 97 159 178 157 173 191 134 189 200 189 189 200 189 210 216 207
++210 216 207 210 216 207 189 200 189 211 221 218 211 221 218 211 221 218 188 193 159 83 103 97
++
++216 172 134 165 108 102 103 81 83 45 39 35 35 34 35 56 54 51 56 54 51 46 47 45
++49 43 41 87 76 74 164 145 137 215 195 173 240 208 188 240 208 188 240 208 188 210 180 161
++191 160 135 114 99 97 71 82 60 46 47 45 28 30 29 27 32 26 28 30 29 28 30 29
++28 30 29 28 30 29 35 34 35 45 49 35 86 83 83 164 145 137 210 180 161 242 198 175
++240 208 188 242 198 175 242 198 175 216 172 134 184 128 126 134 98 86 68 50 43 41 28 14
++21 19 21 28 30 29 23 20 27 23 20 27 20 28 24 17 19 20 17 19 20 17 19 20
++17 19 20 17 19 20 21 19 15 20 20 20 17 19 20 21 19 21 45 30 35 73 50 50
++134 98 86 165 108 102 206 156 159 236 180 161 242 198 175 242 198 175 236 180 161 191 160 135
++113 97 77 68 64 51 41 33 22 45 39 35 45 49 35 45 39 35 45 39 35 39 28 30
++27 32 26 23 20 27 23 20 27 20 28 24 39 20 27 68 24 14 99 36 46 133 28 45
++99 61 48 133 28 45 99 36 46 68 24 14 39 20 27 39 20 27 27 32 26 28 30 29
++39 20 27 41 28 14 68 24 14 100 10 13 100 10 13 99 36 46 100 10 13 68 33 37
++105 79 65 141 108 110 164 145 137 164 145 120 114 99 97 68 69 47 45 39 35 27 32 26
++23 19 15 20 20 20 23 19 15 27 32 26 27 32 26 27 32 26 39 28 30 32 31 35
++28 30 29 32 31 35 32 31 35 28 30 29 32 31 35 28 30 29 33 35 35 27 32 26
++33 35 35 41 33 22 27 32 26 39 28 30 28 30 29 23 20 27 20 28 24 21 19 21
++20 28 24 28 30 29 30 34 36 28 30 29 28 30 29 28 30 29 28 30 29 35 34 35
++35 34 35 35 34 35 27 32 26 21 19 21 23 19 15 20 20 20 20 20 20 21 19 15
++17 19 20 21 19 15 20 20 20 23 19 15 23 19 15 23 20 27 45 39 35 68 69 47
++133 69 69 134 98 86 105 79 65 105 79 65 73 50 50 45 39 35 39 28 30 33 35 35
++41 38 42 46 47 45 46 47 55 56 54 51 46 47 45 37 33 35 28 30 29 28 30 29
++28 30 29 28 30 29 37 33 35 49 43 41 68 50 43 68 50 43 68 50 43 45 39 35
++41 33 22 27 32 26 21 19 21 28 30 29 28 30 29 27 32 26 28 30 29 28 30 29
++28 30 29 28 30 29 35 34 35 35 34 35 41 33 22 31 42 35 45 39 35 45 39 35
++49 43 41 68 64 51 88 79 65 74 57 60 68 50 43 49 43 41 35 34 35 33 35 35
++35 34 35 37 33 35 45 39 35 33 35 35 35 34 35 39 43 42 39 43 42 56 54 51
++74 57 60 99 79 59 105 79 65 99 61 48 71 59 54 68 50 43 45 39 35 41 38 42
++41 38 42 41 38 42 41 38 42 41 38 42 37 33 35 39 43 42 35 34 35 33 35 35
++33 35 35 33 35 35 35 34 35 46 47 45 46 47 45 46 47 45 46 47 45 56 54 51
++57 59 55 68 68 60 75 64 67 71 81 67 68 68 60 56 54 51 46 47 45 46 47 55
++46 47 55 39 43 42 46 47 45 46 47 45 56 54 51 56 54 51 56 54 51 56 54 51
++64 57 60 68 68 60 68 68 60 57 59 55 46 47 45 39 43 42 45 39 35 41 38 42
++45 39 35 35 34 35 39 43 42 39 37 42 33 35 35 39 43 42 46 47 45 61 46 51
++74 57 60 64 57 60 56 54 51 46 47 45 45 39 35 41 38 42 39 43 42 39 43 42
++49 43 41 39 43 42 45 39 35 41 38 42 45 39 35 39 37 42 41 38 42 46 47 45
++46 47 45 46 47 45 41 38 42 39 43 42 39 43 42 46 47 45 46 47 45 46 47 45
++46 47 45 39 37 42 35 34 35 46 47 45 46 47 45 56 54 51 57 59 55 58 61 60
++56 54 51 46 47 55 56 54 51 46 47 45 56 54 51 57 59 55 58 61 60 61 60 67
++58 53 60 58 61 60 71 81 67 122 133 132 159 178 157 188 193 159 189 200 189 189 200 189
++189 200 189 210 216 207 210 216 207 189 200 189 231 233 186 189 200 189 189 200 189 188 193 159
++
++191 160 135 164 133 127 99 96 86 64 57 60 57 59 55 68 68 60 68 67 72 61 60 67
++46 47 45 99 79 59 164 145 137 215 195 173 242 198 175 240 208 188 242 198 175 188 177 159
++164 145 120 128 104 97 86 83 83 68 69 55 46 47 45 35 34 35 39 28 30 39 37 42
++35 34 35 41 38 42 56 54 51 68 67 72 114 121 97 191 160 135 215 197 156 242 198 175
++242 198 175 242 198 175 242 198 157 210 180 161 235 170 109 134 98 86 68 50 43 39 28 30
++27 32 26 21 29 29 21 19 15 27 32 26 41 33 22 45 49 35 68 50 43 41 28 14
++21 19 15 20 28 24 27 32 26 23 20 27 21 19 21 41 33 22 68 33 37 104 74 73
++165 108 102 191 160 135 215 195 173 242 198 175 240 208 188 242 198 175 240 208 188 236 180 161
++164 145 120 104 88 73 46 47 45 45 39 35 49 43 41 45 49 35 45 39 35 37 33 35
++39 28 30 28 30 29 27 32 26 23 19 15 39 20 27 68 24 14 133 65 47 184 123 101
++191 160 135 184 128 126 165 108 102 99 79 59 68 24 14 41 28 14 27 32 26 39 28 30
++39 20 27 45 30 35 68 24 14 68 24 14 100 10 13 100 10 13 100 10 13 99 36 46
++128 104 97 188 172 163 212 206 189 212 206 189 163 158 149 104 88 73 41 33 22 20 20 20
++23 19 15 27 32 26 27 32 26 37 33 35 41 33 22 35 34 35 33 35 35 33 35 35
++32 31 35 28 30 29 35 34 35 28 30 29 35 34 35 27 32 26 41 33 22 31 42 35
++41 33 22 27 32 26 33 35 35 28 30 29 28 30 29 28 30 29 28 30 29 21 19 21
++17 19 20 21 29 29 28 30 29 33 35 35 33 35 35 28 30 29 27 32 26 33 35 35
++35 34 35 41 33 22 27 32 26 20 28 24 23 19 15 20 28 24 27 32 26 27 32 26
++23 20 27 20 20 20 20 20 20 14 14 18 17 19 20 20 20 20 45 39 35 99 61 48
++113 97 77 134 98 86 113 97 77 105 79 65 73 50 50 45 39 35 27 32 26 30 34 36
++39 43 42 39 43 42 46 47 45 46 47 55 41 38 42 37 33 35 28 26 35 32 31 35
++35 34 35 28 32 42 39 37 42 49 43 41 49 43 41 68 50 43 68 50 43 49 43 41
++41 33 22 41 33 22 41 33 22 23 20 27 27 32 26 23 20 27 21 19 21 23 20 27
++28 30 29 35 34 35 28 30 29 33 35 35 45 39 35 31 42 35 33 35 35 45 39 35
++68 50 43 74 57 60 99 61 48 88 79 65 68 50 43 45 39 35 39 28 30 33 35 35
++33 35 35 28 30 29 33 35 35 35 34 35 35 34 35 39 43 42 39 43 42 71 59 54
++99 61 48 104 74 73 99 61 48 99 61 48 74 57 60 71 59 54 49 43 41 45 39 35
++35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 35 34 35
++35 34 35 35 34 35 45 49 35 56 54 51 56 54 51 56 54 51 46 47 45 56 54 51
++56 54 51 68 68 60 71 81 67 75 64 67 58 61 60 46 47 45 46 47 45 46 47 45
++46 47 55 46 47 45 46 47 45 46 47 45 46 47 45 49 43 41 49 43 41 56 54 51
++57 59 55 68 68 60 68 68 60 58 61 60 44 55 41 45 39 35 39 37 42 35 34 35
++39 37 42 39 37 42 39 43 42 39 43 42 35 34 35 39 37 42 49 43 41 56 54 51
++64 57 60 71 59 54 56 54 51 46 47 45 45 39 35 39 43 42 49 43 41 39 43 42
++49 43 41 39 43 42 45 39 35 45 39 35 45 39 35 37 33 35 39 37 42 41 38 42
++49 43 41 46 47 45 41 38 42 39 43 42 41 38 42 46 47 45 46 47 45 46 47 45
++39 43 42 39 37 42 46 47 45 46 47 45 57 59 55 56 54 51 58 53 60 56 54 51
++58 61 60 57 59 55 57 59 55 58 53 60 57 59 55 58 61 60 61 60 67 58 61 60
++61 60 67 58 61 60 58 61 60 99 96 86 141 154 138 159 178 157 188 193 159 189 200 189
++189 200 189 189 200 189 189 200 189 212 206 189 189 200 189 188 193 159 189 200 189 188 193 159
++
++173 167 157 141 138 138 123 109 109 99 96 86 86 83 83 86 83 83 68 75 77 68 67 72
++46 47 45 88 79 65 164 145 120 236 180 161 240 208 188 240 208 188 210 180 161 191 160 135
++114 121 97 114 121 97 103 117 86 103 81 83 75 64 67 57 59 55 46 47 45 46 47 45
++56 54 51 61 60 67 86 83 83 103 106 97 123 109 109 123 133 112 164 145 120 216 172 134
++210 180 161 236 180 161 236 180 161 228 160 135 184 123 101 113 97 77 68 69 47 49 43 41
++32 31 35 20 28 24 49 43 41 105 79 65 165 137 101 191 160 135 191 160 135 134 98 86
++44 55 41 41 33 22 45 39 35 45 30 35 41 33 22 73 50 50 134 98 86 184 123 101
++184 128 126 210 180 161 236 180 161 242 198 175 242 198 175 240 208 188 242 198 175 236 180 161
++191 160 135 128 104 97 56 54 51 68 50 43 68 64 51 71 59 54 68 64 51 49 43 41
++33 35 35 28 30 29 23 20 27 20 20 20 41 33 22 73 50 50 165 108 102 210 180 161
++242 198 175 242 198 157 210 180 161 164 145 120 113 97 77 49 43 41 39 20 27 39 28 30
++41 28 14 41 28 14 68 24 14 100 10 13 100 10 13 99 36 46 100 10 13 99 61 48
++141 139 118 212 206 189 229 200 201 229 200 201 215 195 173 114 121 97 27 32 26 23 19 15
++20 28 24 41 33 22 39 28 30 45 39 35 45 49 35 39 43 42 45 39 35 27 32 26
++28 30 29 28 30 29 28 30 29 37 33 35 27 32 26 28 30 29 27 32 26 27 32 26
++35 34 35 27 32 26 41 33 22 33 35 35 28 30 29 23 20 27 27 32 26 21 19 21
++20 20 20 28 30 29 33 35 35 33 35 35 30 34 36 27 32 26 41 33 22 33 35 35
++35 34 35 33 35 35 27 32 26 23 19 15 27 32 26 27 32 26 28 30 29 37 33 35
++32 31 35 20 28 24 20 20 20 14 14 18 21 19 15 20 20 20 39 28 30 68 69 47
++105 79 65 134 98 86 105 79 65 99 79 59 68 50 43 41 33 22 20 28 24 30 34 36
++39 43 42 39 37 42 39 43 42 39 43 42 28 32 42 28 32 42 39 37 42 39 37 42
++39 43 42 39 43 42 46 47 55 49 43 41 68 50 43 68 50 20 68 50 43 68 33 37
++45 39 35 27 32 26 21 19 21 27 32 26 23 19 15 21 19 21 27 32 26 28 30 29
++28 30 29 23 20 27 27 32 26 39 28 30 33 35 35 27 32 26 35 34 35 45 39 35
++68 50 43 99 79 59 99 79 59 99 61 48 68 50 43 48 36 41 39 28 30 28 30 29
++27 32 26 28 30 29 28 30 29 35 34 35 39 37 42 39 43 42 46 47 45 64 57 60
++75 64 67 99 61 48 104 74 73 99 61 48 75 64 67 73 50 50 49 43 41 37 33 35
++33 35 35 35 34 35 33 35 35 35 34 35 35 34 35 35 34 35 33 35 35 35 34 35
++35 34 35 45 39 35 56 54 51 56 54 51 64 57 60 68 64 51 57 59 55 56 54 51
++56 54 51 68 68 60 75 64 67 71 81 67 68 64 51 46 47 45 46 47 45 46 47 45
++46 47 45 46 47 45 46 47 45 39 43 42 49 43 41 46 47 45 56 54 51 49 43 41
++56 54 51 68 68 60 68 68 60 58 61 60 56 54 51 39 43 42 35 34 35 35 34 35
++35 34 35 33 35 35 37 33 35 41 38 42 46 47 45 56 54 51 57 59 55 64 57 60
++74 57 60 57 59 55 56 54 51 49 43 41 46 47 45 39 43 42 39 43 42 46 47 45
++49 43 41 45 39 35 45 39 35 45 39 35 49 43 41 39 37 42 37 33 35 41 38 42
++46 47 45 49 43 41 39 43 42 49 43 41 46 47 45 46 47 45 41 38 42 46 47 45
++46 47 45 39 43 42 46 47 45 46 47 45 46 47 55 46 47 45 46 47 45 46 47 45
++58 53 60 57 59 55 58 61 60 58 61 60 58 61 60 64 57 60 58 61 60 58 61 60
++68 68 60 61 60 67 58 61 60 68 67 72 86 83 83 122 133 132 163 158 149 173 183 156
++188 193 159 173 183 156 188 193 159 173 183 156 188 193 159 188 193 159 173 183 156 173 167 157
++
++163 148 159 141 138 138 122 133 132 103 106 97 103 106 97 103 106 97 75 64 67 58 61 60
++46 47 55 88 79 65 163 158 149 215 195 173 240 208 188 240 208 188 215 195 173 164 145 120
++135 123 86 114 99 97 123 109 109 103 117 86 99 96 86 87 76 74 68 68 60 58 61 60
++68 68 60 86 83 83 123 109 109 112 124 124 122 113 129 99 96 86 128 104 97 184 128 126
++236 180 161 242 198 175 242 198 157 216 172 134 184 128 126 113 97 77 99 61 48 71 59 54
++45 39 35 49 43 41 143 103 96 191 160 135 236 180 161 242 198 175 215 195 173 191 160 135
++113 97 77 56 54 51 71 59 54 71 59 54 73 50 50 134 98 86 188 147 163 231 153 161
++210 180 161 210 180 161 236 180 161 236 180 161 236 180 161 242 198 175 215 197 156 210 180 161
++191 160 135 99 96 86 71 59 54 71 81 67 104 88 73 105 79 65 88 79 65 99 61 48
++45 49 35 41 33 22 23 20 27 23 19 15 45 30 35 134 98 86 191 160 135 242 198 175
++240 208 188 240 208 188 240 208 188 210 180 161 164 145 120 99 79 59 41 33 22 37 33 35
++32 26 35 39 20 27 68 33 37 68 33 37 100 10 13 100 10 13 99 36 46 137 117 96
++194 181 189 210 216 207 238 233 218 238 233 218 212 206 189 141 138 138 41 33 22 41 33 22
++23 19 15 27 32 26 45 39 35 49 43 41 45 49 35 68 50 43 45 39 35 28 30 29
++27 32 26 28 30 29 28 30 29 35 34 35 37 33 35 35 34 35 41 33 22 27 32 26
++41 33 22 35 34 35 33 35 35 28 30 29 27 32 26 27 32 26 23 19 15 27 32 26
++20 28 24 27 32 26 31 42 35 35 34 35 35 34 35 28 30 29 27 32 26 27 32 26
++45 39 35 27 32 26 41 33 22 20 28 24 23 19 15 27 32 26 41 33 22 45 39 35
++41 33 22 39 28 30 20 28 24 21 19 15 21 19 21 27 32 26 41 33 22 68 50 43
++105 79 65 105 79 65 99 79 59 73 50 50 45 49 35 41 33 22 39 28 30 39 37 42
++33 35 35 39 37 42 28 32 42 33 35 35 28 32 42 39 43 42 28 32 42 39 43 42
++35 32 58 46 47 55 39 43 42 46 47 45 48 36 41 68 50 43 68 50 43 49 43 41
++41 33 22 41 33 22 27 32 26 21 19 21 21 19 21 23 20 27 21 19 21 20 28 24
++23 20 27 28 30 29 28 30 29 27 32 26 27 32 26 35 34 35 41 33 22 49 43 41
++73 50 50 99 61 48 74 57 60 73 50 50 68 50 43 49 43 41 41 33 22 39 28 30
++28 30 29 28 30 29 28 30 29 33 35 35 39 37 42 46 47 45 46 47 45 68 64 51
++74 57 60 104 74 73 104 74 73 104 74 73 99 79 59 71 59 54 45 39 35 35 34 35
++33 35 35 35 34 35 35 34 35 39 43 42 35 34 35 39 43 42 35 34 35 39 37 42
++39 43 42 56 54 51 68 50 43 71 59 54 73 50 50 71 59 54 71 59 54 68 50 43
++71 59 54 68 68 60 75 64 67 75 64 67 56 54 51 46 47 45 46 47 45 46 47 55
++46 47 45 39 43 42 46 47 45 49 43 41 56 54 51 71 59 54 68 50 43 49 43 41
++56 54 51 68 68 60 68 68 60 58 61 60 45 49 35 35 34 35 39 43 42 37 33 35
++31 42 35 33 35 35 39 43 42 46 47 45 58 61 60 68 67 72 68 75 77 75 83 72
++68 67 72 74 57 60 68 68 60 58 61 60 57 59 55 57 59 55 56 54 51 49 43 41
++46 47 45 49 43 41 49 43 41 45 39 35 49 43 41 49 43 41 45 39 35 49 43 41
++39 43 42 49 43 41 39 43 42 46 47 45 49 43 41 46 47 45 46 47 45 46 47 45
++39 43 42 49 43 41 46 47 45 49 43 41 57 45 51 61 46 51 56 54 51 57 45 51
++56 54 51 58 61 60 57 59 55 58 61 60 64 57 60 58 61 60 68 68 60 58 61 60
++61 60 67 68 68 60 58 61 60 58 61 60 68 68 60 87 76 74 103 106 97 141 132 131
++173 167 157 159 178 157 141 154 138 163 158 149 157 164 157 188 172 163 173 175 176 157 164 157
++
++141 139 118 123 109 109 114 121 97 114 121 97 103 106 97 99 96 86 68 68 60 58 61 60
++56 54 51 75 64 67 164 145 120 215 195 173 240 208 188 240 208 188 236 180 161 141 128 110
++105 79 65 99 96 86 114 121 97 114 121 97 103 106 97 99 96 86 71 81 67 75 64 67
++99 96 86 103 106 97 122 113 129 123 133 112 123 109 109 86 83 83 104 88 73 184 128 126
++216 172 134 236 180 161 236 180 161 216 172 134 164 145 120 134 98 86 71 59 54 71 59 54
++57 45 51 88 79 65 184 128 126 236 180 161 242 198 175 240 208 188 242 198 175 191 160 135
++99 96 86 68 68 60 68 68 60 64 57 60 75 64 67 164 111 125 206 156 159 212 185 189
++240 189 188 240 189 188 236 180 161 236 180 161 236 180 161 210 180 161 216 172 134 191 160 135
++128 104 97 71 82 60 68 67 72 86 83 83 114 99 97 128 104 97 118 123 77 104 88 73
++68 50 43 45 39 35 28 30 29 39 20 27 68 50 43 134 98 86 191 160 135 242 198 175
++240 208 188 240 208 188 212 206 189 210 180 161 191 160 135 105 79 65 45 39 35 45 39 35
++39 28 30 39 20 27 41 28 14 68 24 14 99 36 46 100 41 14 133 69 69 173 167 157
++212 206 189 235 233 206 238 233 218 210 216 207 203 196 201 163 158 149 88 79 65 46 47 45
++35 34 35 41 33 22 41 33 22 45 39 35 68 50 20 45 49 35 45 39 35 41 33 22
++27 32 26 28 30 29 39 28 30 33 35 35 35 34 35 33 35 35 27 32 26 27 32 26
++27 32 26 27 32 26 41 33 22 27 32 26 27 32 26 27 32 26 27 32 26 21 19 21
++27 32 26 41 33 22 35 34 35 35 34 35 27 32 26 27 32 26 27 32 26 27 32 26
++41 33 22 27 32 26 27 32 26 23 19 15 23 19 15 27 32 26 33 35 35 45 39 35
++31 42 35 27 32 26 20 28 24 27 32 26 39 28 30 37 33 35 45 39 35 68 50 43
++99 61 48 99 79 59 99 61 48 68 50 43 45 39 35 41 33 22 33 35 35 39 37 42
++33 35 35 33 35 35 35 34 35 39 37 42 39 43 42 28 32 42 39 43 42 28 32 42
++39 43 42 31 42 35 35 32 58 39 43 42 45 39 35 45 39 35 68 33 37 41 33 22
++41 33 22 23 20 27 23 19 15 27 32 26 21 19 21 20 28 24 28 30 29 23 20 27
++28 30 29 28 30 29 28 30 29 28 30 29 28 30 29 35 34 35 39 28 30 68 50 43
++73 50 50 74 57 60 99 61 48 71 59 54 68 50 43 68 33 37 45 30 35 37 33 35
++28 30 29 28 30 29 32 31 35 33 35 35 39 37 42 41 38 42 39 43 42 46 47 45
++71 59 54 99 61 48 88 79 65 99 61 48 74 57 60 49 43 41 45 39 35 35 34 35
++35 34 35 35 34 35 39 43 42 37 33 35 39 43 42 45 39 35 39 43 42 46 47 45
++46 47 45 46 47 45 56 54 51 74 57 60 99 61 48 75 64 67 74 57 60 73 50 50
++68 64 51 64 57 60 68 68 60 64 57 60 46 47 45 46 47 45 46 47 45 46 47 45
++46 47 45 46 47 45 39 43 42 49 43 41 68 50 43 68 50 43 68 50 43 49 43 41
++68 50 43 58 61 60 68 68 60 57 59 55 45 39 35 33 35 35 35 34 35 35 34 35
++35 34 35 46 47 45 57 59 55 61 60 67 68 67 72 75 64 67 68 67 72 75 64 67
++68 67 72 75 64 67 68 75 77 87 76 74 68 75 77 75 64 67 57 59 55 46 47 45
++49 43 41 49 43 41 46 47 45 46 47 45 46 47 45 49 43 41 49 43 41 39 43 42
++46 47 45 46 47 45 46 47 45 46 47 45 46 47 45 46 47 45 46 47 45 46 47 45
++49 43 41 46 47 45 49 43 41 46 47 45 71 59 54 64 57 60 71 59 54 56 54 51
++56 54 51 56 54 51 57 59 55 64 57 60 58 61 60 58 61 60 64 57 60 58 61 60
++68 68 60 58 61 60 58 61 60 58 61 60 58 53 60 58 61 60 68 68 60 86 83 83
++103 106 97 123 109 109 141 132 131 122 133 132 123 109 109 103 106 97 75 83 72 75 64 67
++
++118 123 77 103 117 86 113 97 77 103 117 86 103 117 86 99 96 86 68 68 60 58 53 60
++56 54 51 68 68 60 164 133 127 215 195 173 215 195 173 240 189 188 191 160 135 128 104 97
++88 79 65 104 88 73 103 106 97 114 121 97 137 117 96 114 99 97 99 96 86 99 96 86
++114 121 97 122 113 129 123 133 112 122 113 129 103 106 97 87 76 74 99 96 86 165 137 101
++216 172 134 215 197 156 236 180 161 216 172 134 165 137 101 113 97 77 71 59 54 56 54 51
++56 54 51 113 97 77 184 128 126 236 180 161 236 180 161 236 180 161 210 180 161 137 117 96
++99 79 59 68 64 51 68 67 72 68 67 72 87 76 74 141 128 110 206 156 159 240 189 188
++229 200 201 240 189 188 215 195 173 210 180 161 236 180 161 236 180 161 216 172 134 165 108 102
++87 76 74 58 53 60 68 75 77 99 96 86 123 109 109 141 128 110 141 128 110 128 104 97
++99 79 59 49 43 41 28 30 29 39 14 11 99 61 48 143 103 96 191 160 135 236 180 161
++242 198 157 242 198 175 215 195 173 191 160 135 165 137 101 104 88 73 68 50 43 68 50 43
++45 39 35 41 33 22 68 33 37 68 33 37 68 24 14 99 36 46 143 103 96 210 180 161
++212 206 189 229 200 201 229 200 201 229 200 201 188 189 175 141 154 138 103 106 97 68 68 60
++49 43 41 39 43 42 41 33 22 45 39 35 45 39 35 45 49 35 45 39 35 27 32 26
++27 32 26 35 34 35 28 30 29 27 32 26 37 33 35 27 32 26 27 32 26 27 32 26
++27 32 26 27 32 26 27 32 26 28 30 29 41 33 22 27 32 26 27 32 26 27 32 26
++23 19 15 27 32 26 35 34 35 35 34 35 33 35 35 41 28 14 27 32 26 27 32 26
++27 32 26 27 32 26 27 32 26 20 28 24 23 19 15 27 32 26 27 32 26 45 39 35
++45 39 35 27 32 26 27 32 26 41 33 22 49 43 41 56 54 51 49 43 41 68 50 43
++71 59 54 71 59 54 71 59 54 56 54 51 45 39 35 30 34 36 39 37 42 35 34 35
++28 30 29 28 30 29 33 35 35 33 35 35 39 43 42 39 37 42 31 42 35 39 43 42
++28 32 42 31 42 35 33 35 35 28 30 29 41 33 22 45 39 35 45 39 35 45 39 35
++41 33 22 39 20 27 20 28 24 21 19 21 20 28 24 23 20 27 23 20 27 28 30 29
++28 30 29 39 28 30 28 30 29 28 30 29 39 28 30 35 34 35 41 33 22 49 43 41
++73 50 50 99 61 48 71 59 54 73 50 50 68 33 37 68 33 37 45 30 35 45 39 35
++35 34 35 35 34 35 35 34 35 39 37 42 39 37 42 41 38 42 35 34 35 45 39 35
++49 43 41 71 59 54 74 57 60 74 57 60 61 46 51 45 39 35 28 30 29 35 34 35
++35 34 35 35 34 35 41 38 42 39 43 42 41 38 42 39 43 42 46 47 45 46 47 45
++46 47 45 46 47 45 71 59 54 71 59 54 88 79 65 71 59 54 99 61 48 71 59 54
++56 54 51 57 59 55 57 59 55 56 54 51 46 47 45 46 47 45 46 47 45 46 47 45
++46 47 45 39 43 42 49 43 41 49 43 41 56 54 51 71 59 54 68 50 43 49 43 41
++56 54 51 68 68 60 68 68 60 56 54 51 45 39 35 33 35 35 45 39 35 33 35 35
++41 38 42 61 60 67 75 83 72 75 64 67 57 59 55 57 59 55 68 68 60 64 57 60
++58 61 60 75 64 67 86 83 83 86 83 83 86 83 83 75 83 72 57 59 55 56 54 51
++46 47 45 46 47 45 49 43 41 49 43 41 49 43 41 46 47 45 49 43 41 49 43 41
++46 47 45 46 47 45 45 49 35 46 47 45 46 47 45 46 47 45 46 47 45 46 47 45
++46 47 45 49 43 41 46 47 45 57 45 51 71 59 54 71 59 54 71 59 54 56 54 51
++46 47 45 56 54 51 56 54 51 58 61 60 68 68 60 58 61 60 58 61 60 58 61 60
++61 60 67 58 61 60 64 57 60 58 61 60 58 61 60 56 54 51 57 59 55 58 61 60
++57 59 55 58 53 60 64 57 60 57 59 55 57 59 55 58 61 60 57 59 55 58 61 60
++
++113 97 77 113 97 77 113 97 77 104 88 73 88 79 65 71 82 60 68 68 60 57 59 55
++58 61 60 88 79 65 141 128 110 188 177 159 210 180 161 188 177 159 164 145 120 113 97 77
++88 79 65 75 83 72 99 96 86 114 121 97 141 139 118 164 145 120 141 154 138 141 139 118
++141 132 131 123 133 112 141 115 130 112 104 120 99 96 86 86 83 83 99 96 86 165 137 101
++191 160 135 210 180 161 216 172 134 191 160 135 164 145 120 134 98 86 99 79 59 71 59 54
++71 59 54 105 79 65 165 108 102 191 160 135 210 180 161 210 180 161 216 172 134 164 145 120
++134 98 86 99 79 59 68 68 60 68 67 72 68 68 60 99 85 89 164 133 127 210 180 161
++212 185 189 212 185 189 215 195 173 236 180 161 242 198 175 236 180 161 228 160 135 164 111 125
++75 83 72 45 62 74 68 67 72 86 83 83 114 99 97 141 128 110 141 139 118 137 117 96
++105 79 65 68 50 43 41 33 22 39 20 27 68 50 43 134 98 86 228 160 135 236 180 161
++215 195 173 236 180 161 191 160 135 165 137 101 113 97 77 105 79 65 99 79 59 68 50 43
++68 50 43 68 50 43 68 50 43 68 50 43 68 33 37 73 50 50 165 108 102 188 177 159
++215 195 173 212 206 189 215 195 173 210 180 161 164 145 137 123 109 109 99 96 86 75 83 72
++64 57 60 56 54 51 45 39 35 37 33 35 41 33 22 41 33 22 27 32 26 41 33 22
++27 32 26 41 33 22 33 35 35 41 33 22 33 35 35 27 32 26 23 19 15 23 19 15
++27 32 26 41 33 22 27 32 26 39 28 30 27 32 26 27 32 26 23 19 15 27 32 26
++27 32 26 41 33 22 33 35 35 41 33 22 33 35 35 27 32 26 23 19 15 27 32 26
++27 32 26 41 28 14 20 20 20 23 19 15 20 28 24 27 32 26 41 33 22 33 35 35
++35 34 35 27 32 26 41 33 22 49 43 41 71 59 54 99 79 59 71 59 54 68 64 51
++68 50 43 99 61 48 71 59 54 68 50 43 45 49 35 39 43 42 39 37 42 33 35 35
++35 34 35 28 30 29 35 34 35 39 37 42 45 39 35 41 38 42 45 39 35 39 37 42
++45 39 35 39 37 42 35 34 35 27 32 26 39 28 30 49 43 41 68 64 51 46 47 45
++45 39 35 27 32 26 20 28 24 28 30 29 23 20 27 27 32 26 27 32 26 28 30 29
++39 28 30 35 34 35 37 33 35 37 33 35 45 39 35 45 49 35 49 43 41 68 33 37
++73 50 50 71 59 54 73 50 50 73 50 50 68 33 37 68 33 37 45 39 35 41 33 22
++37 33 35 39 43 42 39 37 42 45 39 35 33 35 35 39 37 42 35 34 35 35 34 35
++49 43 41 71 59 54 71 59 54 68 50 43 49 43 41 35 34 35 35 34 35 35 34 35
++35 34 35 31 42 35 37 33 35 39 43 42 41 38 42 46 47 45 46 47 45 41 38 42
++41 38 42 46 47 45 57 45 51 74 57 60 99 61 48 99 79 59 74 57 60 71 59 54
++57 45 51 46 47 45 57 45 51 46 47 45 46 47 45 46 47 45 46 47 45 46 47 45
++46 47 45 46 47 45 46 47 45 56 54 51 68 50 43 68 50 43 71 59 54 68 50 43
++56 54 51 68 68 60 57 59 55 46 47 45 31 42 35 35 34 35 39 43 42 35 34 35
++58 53 60 86 83 83 86 83 83 68 67 72 56 54 51 61 46 51 61 46 51 56 54 51
++64 57 60 71 81 67 86 83 83 86 83 83 99 85 89 86 83 83 58 61 60 49 43 41
++49 43 41 49 43 41 49 43 41 46 47 45 49 43 41 49 43 41 41 38 42 46 47 45
++46 47 45 46 47 45 46 47 45 49 43 41 45 49 35 46 47 45 46 47 45 49 43 41
++46 47 45 39 43 42 49 43 41 56 54 51 71 59 54 74 57 60 64 57 60 56 54 51
++57 45 51 56 54 51 56 54 51 58 61 60 64 57 60 58 61 60 64 57 60 58 61 60
++64 57 60 58 61 60 58 61 60 58 61 60 58 53 60 56 54 51 56 54 51 56 54 51
++68 64 51 57 59 55 68 64 51 57 45 51 56 54 51 42 59 47 56 54 51 46 47 45
++
++118 123 77 118 123 77 103 117 86 104 88 73 88 79 65 71 82 60 68 68 60 58 61 60
++68 68 60 99 96 86 137 117 96 166 168 134 164 145 137 164 145 120 137 117 96 103 117 86
++99 96 86 99 96 86 113 97 77 141 139 118 166 168 134 210 180 161 215 195 173 188 172 163
++164 145 137 141 115 130 123 109 109 103 106 97 86 83 83 99 96 86 103 106 97 141 132 131
++164 145 137 188 172 163 188 177 159 206 156 159 164 145 120 137 117 96 99 85 89 88 79 65
++71 59 54 88 79 65 137 117 96 206 156 159 240 189 188 235 233 206 240 208 188 215 195 173
++216 172 134 164 145 120 113 97 77 88 79 65 75 83 72 75 64 67 99 85 89 141 132 131
++188 172 163 210 180 161 206 156 159 210 180 161 236 180 161 236 180 161 216 172 134 143 103 96
++75 64 67 61 60 67 61 60 67 68 75 77 103 106 97 123 109 109 165 137 101 137 117 96
++104 88 73 68 64 51 45 39 35 39 20 27 68 50 20 134 98 86 191 160 135 242 198 157
++242 198 175 236 180 161 216 172 134 165 137 101 133 69 69 105 79 65 105 79 65 99 61 48
++99 61 48 99 61 48 99 61 48 73 50 50 45 49 35 68 50 43 137 117 96 191 160 135
++210 180 161 210 180 161 210 180 161 191 160 135 164 145 120 113 97 77 87 76 74 75 83 72
++68 67 72 71 59 54 46 47 45 45 39 35 27 32 26 20 28 24 27 32 26 27 32 26
++41 33 22 45 39 35 31 42 35 45 39 35 33 35 35 41 33 22 27 32 26 23 19 15
++27 32 26 27 32 26 27 32 26 35 34 35 28 30 29 28 30 29 27 32 26 23 19 15
++27 32 26 27 32 26 31 42 35 35 34 35 28 30 29 27 32 26 27 32 26 23 19 15
++27 32 26 20 28 24 27 32 26 23 19 15 23 19 15 27 32 26 33 35 35 35 34 35
++27 32 26 23 19 15 41 33 22 68 64 51 105 79 65 113 97 77 134 98 86 113 97 77
++105 79 65 105 79 65 99 79 59 88 79 65 57 59 55 46 47 45 46 47 45 39 43 42
++49 43 41 39 43 42 45 39 35 39 43 42 49 43 41 49 43 41 49 43 41 45 39 35
++45 39 35 45 39 35 45 39 35 45 39 35 56 54 51 99 96 86 112 124 124 99 96 86
++57 59 55 35 34 35 28 30 29 28 30 29 39 28 30 28 30 29 28 30 29 28 30 29
++32 31 35 37 33 35 37 33 35 45 39 35 46 47 45 56 54 51 45 49 35 68 50 43
++71 59 54 99 61 48 73 50 50 68 50 43 68 50 20 45 39 35 49 43 41 45 39 35
++45 39 35 45 39 35 45 39 35 41 38 42 37 33 35 35 34 35 33 35 35 33 35 35
++46 47 45 56 54 51 56 54 51 46 47 45 39 43 42 35 34 35 33 35 35 39 43 42
++35 34 35 37 33 35 39 37 42 45 39 35 39 43 42 46 47 45 41 38 42 39 43 42
++41 38 42 46 47 45 56 54 51 73 50 50 88 79 65 99 79 59 99 79 59 68 50 43
++49 43 41 46 47 45 46 47 45 41 38 42 39 43 42 46 47 45 46 47 45 46 47 45
++46 47 45 39 43 42 46 47 45 56 54 51 56 54 51 68 64 51 71 59 54 68 50 43
++56 54 51 64 57 60 56 54 51 46 47 45 45 39 35 45 39 35 41 38 42 46 47 45
++68 75 77 99 85 89 103 106 97 75 64 67 56 54 51 56 54 51 68 50 43 61 46 51
++56 54 51 68 75 77 86 83 83 99 85 89 83 103 97 68 75 77 57 59 55 56 54 51
++49 43 41 56 54 51 46 47 45 49 43 41 49 43 41 49 43 41 49 43 41 46 47 45
++56 54 51 56 54 51 56 54 51 46 47 45 44 55 41 49 43 41 44 55 41 46 47 45
++45 49 35 49 43 41 56 54 51 57 59 55 71 59 54 71 59 54 71 59 54 68 50 43
++56 54 51 46 47 45 57 59 55 64 57 60 58 61 60 58 61 60 58 61 60 57 59 55
++57 59 55 57 59 55 56 54 51 56 54 51 68 50 43 71 59 54 74 57 60 88 79 65
++71 59 54 99 61 48 99 61 48 73 50 50 68 50 43 46 47 45 46 47 45 46 47 45
++
++118 123 77 104 88 73 88 79 65 88 79 65 71 82 60 68 69 55 68 68 60 58 61 60
++68 75 77 99 96 86 114 121 97 141 139 118 141 128 110 123 133 112 114 121 97 128 104 97
++114 121 97 103 106 97 123 133 112 164 145 137 215 197 156 212 206 189 240 208 188 215 195 173
++164 145 137 123 109 109 103 106 97 99 85 89 112 124 124 164 145 137 173 183 156 173 167 157
++163 158 149 191 160 135 191 160 135 173 167 157 164 145 120 141 128 110 137 117 96 99 96 86
++128 104 97 164 145 137 215 195 173 229 200 201 235 233 206 245 232 231 238 233 218 240 208 188
++236 180 161 216 172 134 165 108 102 104 88 73 87 76 74 75 83 72 86 83 83 114 99 97
++123 109 109 141 128 110 141 128 110 191 160 135 228 160 135 191 160 135 184 128 126 104 88 73
++61 60 67 58 61 60 61 60 67 68 67 72 86 83 83 114 99 97 137 117 96 137 117 96
++113 97 77 68 69 55 49 43 41 41 33 22 68 50 43 113 97 77 191 160 135 236 180 161
++215 195 173 236 180 161 191 160 135 143 103 96 105 79 65 105 79 65 133 69 69 105 79 65
++105 79 65 105 79 65 105 79 65 99 61 48 68 64 51 45 39 35 113 97 77 191 160 135
++215 195 173 242 198 175 242 198 175 236 180 161 184 123 101 113 97 77 75 64 67 75 83 72
++75 64 67 68 68 60 56 54 51 49 43 41 28 30 29 27 32 26 27 32 26 41 33 22
++35 34 35 45 49 35 49 43 41 45 49 35 45 49 35 33 35 35 20 28 24 27 32 26
++41 33 22 41 33 22 41 33 22 45 49 35 41 33 22 41 33 22 41 28 14 27 32 26
++41 28 14 27 32 26 41 33 22 37 33 35 35 34 35 27 32 26 20 28 24 27 32 26
++27 32 26 23 19 15 23 19 15 20 28 24 23 19 15 27 32 26 41 33 22 31 42 35
++27 32 26 20 20 20 27 32 26 68 50 43 134 98 86 165 137 101 164 145 120 165 137 101
++134 98 86 113 97 77 113 97 77 88 79 65 74 57 60 57 59 55 57 59 55 56 54 51
++56 54 51 56 54 51 46 47 55 46 47 45 49 43 41 45 49 35 68 50 43 45 49 35
++68 50 43 71 59 54 68 50 43 56 54 51 99 96 86 173 167 157 188 189 180 141 154 138
++71 81 67 37 33 35 35 34 35 33 35 35 35 34 35 37 33 35 35 34 35 33 35 35
++27 32 26 45 39 35 45 39 35 49 43 41 68 50 43 68 64 51 56 54 51 68 50 43
++71 59 54 74 57 60 73 50 50 68 50 43 68 50 43 61 46 51 49 43 41 39 43 42
++45 39 35 39 43 42 39 43 42 35 34 35 39 37 42 35 34 35 31 42 35 45 39 35
++46 47 45 58 53 60 56 54 51 46 47 45 39 43 42 39 43 42 41 38 42 41 38 42
++39 43 42 39 43 42 41 38 42 35 34 35 39 37 42 39 43 42 49 43 41 39 43 42
++46 47 45 46 47 45 49 43 41 73 50 50 74 57 60 99 61 48 73 50 50 57 45 51
++46 47 45 39 43 42 41 38 42 41 38 42 39 43 42 39 43 42 39 43 42 39 43 42
++39 43 42 46 47 45 56 54 51 56 54 51 71 59 54 68 50 43 71 59 54 68 50 43
++56 54 51 68 68 60 57 59 55 46 47 45 39 43 42 31 42 35 39 43 42 56 54 51
++86 83 83 103 106 97 99 85 89 68 67 72 56 54 51 68 50 43 57 45 51 49 43 41
++56 54 51 87 76 74 86 83 83 86 83 83 99 85 89 68 67 72 75 64 67 75 64 67
++88 79 65 71 59 54 71 59 54 49 43 41 45 49 35 46 47 45 46 47 45 46 47 45
++57 59 55 58 61 60 57 59 55 56 54 51 45 49 35 56 54 51 49 43 41 44 55 41
++56 54 51 56 54 51 68 50 43 71 59 54 74 57 60 71 59 54 74 57 60 57 59 55
++49 43 41 56 54 51 56 54 51 57 59 55 58 61 60 57 59 55 64 57 60 57 59 55
++56 54 51 46 47 45 57 45 51 71 59 54 88 79 65 113 97 77 128 104 97 137 117 96
++134 98 86 133 69 69 133 65 47 133 65 47 99 61 48 99 61 48 73 50 50 46 47 45
++
++113 97 77 103 117 86 104 88 73 75 83 72 68 68 60 71 81 67 68 68 60 58 61 60
++87 76 74 103 106 97 123 109 109 123 133 112 137 117 96 114 121 97 137 117 96 114 121 97
++123 133 112 123 109 109 164 145 120 188 177 159 242 198 175 240 208 188 240 208 188 215 195 173
++164 145 137 99 96 86 86 83 83 86 83 83 143 146 150 212 206 189 210 216 207 212 206 189
++188 177 159 188 177 159 173 167 157 164 145 137 164 145 137 164 133 127 141 128 110 164 145 120
++210 180 161 210 216 207 238 233 218 245 232 231 245 232 231 245 232 231 245 232 231 235 233 206
++240 208 188 216 172 134 164 145 120 114 99 97 99 96 86 86 83 83 99 96 86 104 88 73
++113 97 77 104 88 73 143 103 96 165 108 102 165 137 101 164 133 127 128 104 97 75 64 67
++61 60 67 45 62 74 45 62 74 61 60 67 68 75 77 99 96 86 114 99 97 128 104 97
++113 97 77 105 79 65 71 59 54 68 50 43 75 64 67 137 117 96 191 160 135 215 195 173
++215 195 173 210 180 161 164 145 120 113 97 77 99 61 48 105 79 65 113 97 77 113 97 77
++134 98 86 143 103 96 137 117 96 134 98 86 99 79 59 99 79 59 128 104 97 210 180 161
++210 180 161 242 198 175 215 195 173 236 180 161 164 145 120 113 97 77 68 64 51 68 67 72
++87 76 74 68 68 60 64 57 60 49 43 41 45 39 35 41 33 22 27 32 26 35 34 35
++49 43 41 56 54 51 68 64 51 68 64 51 56 54 51 45 49 35 41 50 16 45 49 35
++68 50 20 68 50 43 68 72 23 68 50 43 68 50 43 68 72 23 45 49 35 68 50 20
++41 50 16 45 39 35 45 39 35 45 39 35 27 32 26 27 32 26 28 30 29 28 30 29
++27 32 26 27 32 26 27 32 26 23 19 15 19 34 14 41 33 22 27 32 26 41 28 14
++27 32 26 41 28 14 41 33 22 105 79 65 164 145 120 216 172 134 236 180 161 191 160 135
++165 137 101 137 117 96 143 103 96 113 97 77 86 83 83 68 67 72 68 68 60 61 60 67
++68 68 60 58 61 60 58 61 60 57 59 55 56 54 51 68 50 43 68 69 47 99 61 48
++99 79 59 113 97 77 104 88 73 88 79 65 164 145 137 210 216 207 238 233 218 189 200 189
++87 76 74 39 43 42 41 38 42 39 43 42 41 38 42 41 38 42 39 43 42 33 35 35
++68 50 43 104 88 73 113 97 77 113 97 77 99 96 86 71 82 60 56 54 51 68 50 43
++71 59 54 99 61 48 71 59 54 73 50 50 71 59 54 71 59 54 68 64 51 56 54 51
++46 47 45 46 47 45 45 39 35 45 49 35 45 39 35 45 39 35 45 39 35 45 39 35
++49 43 41 56 54 51 56 54 51 46 47 55 46 47 45 46 47 45 49 43 41 46 47 45
++56 54 51 46 47 45 39 43 42 39 43 42 41 38 42 56 54 51 57 59 55 64 57 60
++64 57 60 46 47 55 56 54 51 75 64 67 87 76 74 87 76 74 68 50 43 46 47 45
++46 47 45 39 43 42 39 37 42 39 37 42 39 37 42 39 43 42 46 47 45 39 43 42
++39 43 42 46 47 45 58 61 60 75 64 67 71 59 54 61 46 51 68 50 43 68 50 43
++61 60 67 86 83 83 75 83 72 57 59 55 56 54 51 46 47 45 49 43 41 61 60 67
++99 85 89 83 103 97 86 83 83 68 67 72 68 64 51 56 54 51 68 50 43 57 45 51
++56 54 51 68 67 72 68 75 77 86 83 83 86 83 83 104 88 73 128 104 97 141 128 110
++164 133 127 141 128 110 113 97 77 71 59 54 46 47 45 49 43 41 49 43 41 56 54 51
++64 57 60 64 57 60 68 64 51 56 54 51 56 54 51 46 47 45 49 43 41 68 68 60
++88 79 65 105 79 65 88 79 65 88 79 65 74 57 60 71 59 54 64 57 60 56 54 51
++49 43 41 49 43 41 57 45 51 56 54 51 57 59 55 57 59 55 56 54 51 56 54 51
++46 47 45 49 43 41 57 45 51 87 76 74 128 104 97 141 128 110 164 133 127 184 128 126
++161 121 76 159 63 71 133 65 47 159 63 71 159 63 71 133 65 47 99 61 48 68 50 43
++
++118 123 77 99 79 59 71 82 60 71 82 60 71 81 67 68 75 77 68 67 72 58 61 60
++75 83 72 113 97 77 114 121 97 137 117 96 114 121 97 123 109 109 114 121 97 137 117 96
++123 133 112 141 128 110 164 145 137 210 180 161 210 180 161 242 198 175 215 195 173 216 172 134
++141 108 110 86 83 83 68 75 77 86 83 83 173 167 157 211 221 218 245 232 231 245 232 231
++235 233 206 229 200 201 212 206 189 210 180 161 210 180 161 191 160 135 210 180 161 194 181 189
++210 216 207 238 233 218 245 232 231 245 232 231 221 241 240 245 232 231 245 232 231 235 233 206
++242 198 175 191 160 135 141 128 110 114 99 97 99 85 89 99 96 86 137 117 96 141 128 110
++165 137 101 165 137 101 137 117 96 137 117 96 128 104 97 113 97 77 86 83 83 61 60 67
++61 60 67 61 60 67 61 60 67 45 62 74 68 67 72 87 76 74 113 97 77 135 123 86
++134 98 86 113 97 77 105 79 65 74 57 60 113 97 77 164 133 127 173 167 157 210 180 161
++210 180 161 184 128 126 137 117 96 99 61 48 99 61 48 99 79 59 113 97 36 134 98 86
++164 145 120 216 172 134 210 180 161 210 180 161 191 160 135 164 145 120 164 145 120 210 180 161
++242 198 175 215 195 173 242 198 175 210 180 161 165 137 101 104 88 73 57 59 55 68 68 60
++68 67 72 68 68 60 68 68 60 71 59 54 56 54 51 49 43 41 49 43 41 68 50 43
++68 69 55 88 79 65 104 88 73 104 88 73 88 79 65 99 79 59 68 50 43 68 72 23
++99 79 28 99 79 28 99 79 28 99 79 28 99 79 28 99 79 28 99 79 28 99 79 28
++68 69 47 68 50 20 45 39 35 33 35 35 33 35 35 41 33 22 41 33 22 41 33 22
++41 33 22 27 32 26 41 33 22 68 50 20 68 50 20 68 72 23 68 50 43 99 79 59
++104 88 73 99 79 59 99 79 59 113 97 77 191 160 135 216 172 134 210 180 161 216 172 134
++184 128 126 164 145 120 141 128 110 123 109 109 86 83 83 68 74 109 68 75 77 68 67 72
++68 67 72 68 67 72 68 67 72 58 61 60 68 64 51 75 64 67 113 97 77 165 137 101
++165 137 101 165 137 101 137 117 96 113 97 77 173 175 176 238 233 218 229 221 240 189 200 189
++68 68 60 45 39 35 39 43 42 46 47 45 46 47 45 49 43 41 39 43 42 46 47 45
++134 98 86 184 128 126 191 160 135 188 172 163 163 158 149 163 158 149 141 139 118 114 121 97
++114 99 97 88 79 65 71 59 54 88 79 65 75 64 67 75 64 67 68 68 60 58 61 60
++57 59 55 49 43 41 45 49 35 68 69 47 88 79 65 99 79 59 104 88 73 104 88 73
++99 79 59 68 69 47 64 57 60 57 59 55 57 59 55 57 59 55 56 54 51 58 53 60
++58 61 60 64 57 60 56 54 51 56 54 51 56 54 51 68 67 72 75 64 67 58 61 60
++75 64 67 68 68 60 61 60 67 68 67 72 75 64 67 87 76 74 57 59 55 46 47 55
++46 47 55 46 47 55 39 43 42 39 43 42 46 47 55 39 43 42 39 43 42 39 43 42
++39 43 42 57 59 55 68 75 77 99 96 86 99 85 89 68 68 60 68 64 51 68 69 55
++99 96 86 99 96 86 104 88 73 105 79 65 68 69 55 71 59 54 49 43 41 68 67 72
++83 103 97 96 81 123 99 85 89 68 67 72 57 59 55 56 54 51 61 46 51 56 54 51
++56 54 51 75 64 67 86 83 83 68 75 77 86 83 83 123 109 109 164 145 137 191 160 135
++191 160 135 164 133 127 134 98 86 68 69 55 61 46 51 44 55 41 57 45 51 56 54 51
++68 69 55 68 68 60 68 68 60 68 69 55 56 54 51 56 54 51 68 50 43 104 88 73
++128 104 97 143 103 96 134 98 86 113 97 77 104 74 73 74 57 60 57 59 55 46 47 45
++49 43 41 41 38 42 46 47 45 56 54 51 56 54 51 56 54 51 46 47 55 46 47 45
++46 47 45 49 43 41 71 59 54 104 74 73 103 81 83 134 98 86 113 97 77 104 88 73
++99 61 48 133 69 69 133 65 47 133 65 47 133 65 47 133 69 69 133 65 47 133 65 47
++
++103 117 86 88 79 65 68 69 55 75 64 67 87 76 74 87 76 74 75 64 67 68 68 60
++71 81 67 114 99 97 114 121 97 123 109 109 123 133 112 141 128 110 123 133 112 123 133 112
++141 128 110 141 139 118 163 158 149 216 172 134 210 180 161 236 180 161 236 180 161 191 160 135
++128 104 97 75 64 67 68 75 77 87 76 74 143 146 150 235 233 206 245 232 231 246 248 239
++245 232 231 246 248 239 238 233 218 210 216 207 242 198 175 240 208 188 235 233 206 229 200 201
++238 233 218 245 232 231 245 232 231 229 221 240 238 233 218 245 232 231 238 233 218 229 200 201
++210 180 161 165 108 102 114 99 97 99 85 89 103 106 97 137 117 96 164 145 137 216 172 134
++236 180 161 210 180 161 191 160 135 165 137 101 114 121 97 86 83 83 68 75 77 61 60 67
++45 62 74 61 60 67 61 60 67 45 62 74 58 53 60 87 76 74 113 97 77 137 117 96
++135 123 86 143 103 96 134 98 86 105 79 65 113 97 77 141 128 110 173 167 157 188 172 163
++173 167 157 165 137 101 105 79 65 99 61 48 99 79 59 99 61 48 104 74 73 165 137 101
++210 180 161 215 195 173 240 208 188 240 208 188 240 208 188 215 195 173 215 197 156 210 180 161
++240 208 188 215 195 173 215 195 173 188 177 159 141 139 118 86 83 83 58 61 60 68 68 60
++75 64 67 75 64 67 68 68 60 75 64 67 88 79 65 105 79 65 68 69 47 88 79 65
++99 96 86 135 123 86 141 128 110 137 117 96 135 123 86 113 97 77 99 79 59 99 79 28
++113 97 36 113 97 36 113 97 36 113 97 36 113 97 36 113 97 36 162 123 29 113 97 36
++99 79 28 68 72 23 45 39 35 33 35 35 45 39 35 41 33 22 45 49 35 45 49 35
++41 33 22 41 33 22 68 50 43 68 72 23 99 79 28 99 79 28 118 123 77 164 145 120
++210 180 161 191 160 135 191 160 135 164 145 120 191 160 135 206 156 159 215 195 173 212 185 189
++215 195 173 215 195 173 194 181 189 163 158 149 104 108 124 68 74 109 86 83 83 68 67 72
++68 75 77 87 76 74 75 83 72 68 69 55 75 64 67 113 97 77 184 123 101 191 160 135
++216 172 134 191 160 135 164 145 120 123 109 109 173 183 156 210 221 240 245 232 231 173 167 157
++57 59 55 46 47 45 46 47 45 46 47 55 57 45 51 46 47 45 46 47 45 68 69 47
++184 128 126 228 160 135 242 198 175 212 206 189 212 185 189 189 200 189 188 189 180 187 177 178
++173 167 157 141 139 118 114 99 97 104 88 73 86 83 83 86 83 83 87 76 74 75 83 72
++68 68 60 68 69 55 128 104 97 164 145 120 166 168 134 191 160 135 210 180 161 191 160 135
++164 145 120 134 98 86 87 76 74 68 68 60 58 61 60 58 61 60 61 60 67 68 68 60
++68 67 72 68 68 60 61 60 67 58 61 60 57 59 55 99 96 86 123 109 109 68 68 60
++86 83 83 75 83 72 68 75 77 68 68 60 74 57 60 68 75 77 68 75 77 61 60 67
++56 54 51 58 53 60 58 53 60 46 47 55 46 47 55 46 47 55 46 47 55 46 47 55
++46 47 45 58 53 60 103 106 97 122 113 129 123 133 112 99 96 86 68 64 51 99 96 86
++141 108 110 137 117 96 164 145 120 164 145 120 141 128 110 104 88 73 88 79 65 99 96 86
++99 96 86 99 96 86 86 83 83 75 64 67 56 54 51 56 54 51 68 50 43 56 54 51
++58 61 60 68 68 60 68 68 60 86 83 83 141 128 110 191 160 135 206 156 159 191 160 135
++164 145 137 165 137 101 113 97 77 88 79 65 68 50 43 56 54 51 68 50 43 68 69 55
++68 69 55 68 69 55 88 79 65 68 69 55 56 54 51 68 64 51 75 64 67 143 103 96
++165 137 101 165 108 102 143 103 96 134 98 86 103 81 83 88 79 65 71 59 54 46 47 45
++49 43 41 49 43 41 46 47 45 46 47 45 46 47 55 56 54 51 56 54 51 46 47 45
++46 47 45 46 47 45 64 57 60 75 64 67 99 61 48 104 74 73 104 74 73 104 74 73
++99 61 48 73 50 50 74 57 60 71 59 54 74 57 60 99 61 48 133 69 69 133 65 47
++
++104 88 73 71 82 60 71 59 54 88 79 65 104 88 73 104 88 73 88 79 65 71 59 54
++68 68 60 99 96 86 114 121 97 141 128 110 123 133 112 137 117 96 114 121 97 141 128 110
++114 121 97 141 139 118 164 145 120 206 156 159 236 180 161 236 180 161 236 180 161 216 172 134
++164 111 125 104 74 73 68 75 77 68 75 77 122 113 129 194 181 189 238 233 218 245 232 231
++246 248 239 246 248 239 246 248 239 238 233 218 240 208 188 240 208 188 235 233 206 229 200 201
++211 221 218 210 216 207 238 233 218 211 221 218 210 216 207 211 221 218 211 221 218 212 185 189
++141 139 118 104 88 73 86 83 83 99 85 89 103 106 97 141 108 110 191 160 135 236 180 161
++240 208 188 242 198 175 242 198 175 210 180 161 164 133 127 104 88 73 68 75 77 58 53 60
++46 47 55 46 47 55 46 47 55 46 47 55 46 47 45 88 79 65 134 98 86 137 117 96
++165 137 101 165 137 101 161 121 76 134 98 86 134 98 86 123 109 109 164 133 127 164 133 127
++141 128 110 134 98 86 105 79 65 99 61 48 99 61 48 99 61 48 134 98 86 165 137 101
++206 156 159 215 197 156 242 198 175 235 233 206 240 208 188 240 208 188 215 195 173 210 180 161
++215 197 156 215 195 173 215 197 156 191 160 135 141 128 110 86 83 83 68 67 72 75 83 72
++68 67 72 68 68 60 68 68 60 87 76 74 105 79 65 113 97 77 134 98 86 128 104 97
++141 128 110 164 145 120 164 145 120 166 168 134 164 145 120 135 123 86 113 97 77 99 79 28
++113 97 36 162 123 29 113 97 36 162 123 29 161 121 76 162 123 29 117 142 36 161 121 76
++113 97 36 99 79 28 45 39 35 28 30 29 45 39 35 45 49 35 68 50 20 68 50 20
++41 33 22 41 50 16 68 50 43 99 79 28 113 97 36 113 97 36 165 137 101 236 180 161
++215 197 156 242 198 175 215 195 173 215 195 173 215 195 173 229 200 201 235 233 206 235 233 206
++211 221 218 238 233 218 211 221 218 203 196 201 131 128 178 96 81 123 68 74 109 68 75 77
++68 75 77 68 75 77 87 76 74 88 79 65 113 97 77 165 137 101 191 160 135 210 180 161
++210 180 161 206 156 159 164 145 120 137 117 96 164 145 137 203 196 201 210 216 207 141 138 138
++86 83 83 75 83 72 61 60 67 56 54 51 46 47 45 46 47 45 44 55 41 88 79 65
++191 160 135 236 180 161 229 200 201 212 206 189 210 216 207 210 216 207 210 216 207 203 196 201
++203 196 201 188 189 180 173 167 157 141 132 131 103 106 97 99 96 86 86 83 83 86 83 83
++99 96 86 141 132 131 188 177 159 215 195 173 242 198 175 215 195 173 215 197 156 236 180 161
++210 180 161 141 128 110 104 88 73 75 64 67 68 68 60 68 67 72 68 67 72 68 67 72
++68 67 72 58 61 60 61 60 67 68 67 72 75 83 72 99 96 86 99 96 86 68 68 60
++87 76 74 86 83 83 71 81 67 75 64 67 75 64 67 68 67 72 68 75 77 68 67 72
++58 61 60 58 61 60 58 53 60 58 61 60 58 53 60 58 53 60 58 53 60 56 54 51
++58 53 60 61 60 67 123 109 109 163 158 149 143 146 150 141 138 138 141 139 118 164 145 137
++141 139 118 164 145 137 216 172 134 206 156 159 191 160 135 166 168 134 164 145 137 141 139 118
++114 121 97 103 106 97 99 96 86 99 96 86 75 64 67 68 64 51 71 59 54 56 54 51
++68 64 51 68 68 60 86 83 83 141 128 110 173 167 157 164 145 137 165 108 102 137 117 96
++143 103 96 134 98 86 113 97 77 104 74 73 75 64 67 68 64 51 88 79 65 88 79 65
++88 79 65 88 79 65 88 79 65 88 79 65 68 64 51 68 64 51 88 79 65 134 98 86
++141 108 110 143 103 96 143 103 96 134 98 86 104 88 73 88 79 65 56 54 51 46 47 45
++49 43 41 46 47 45 48 36 41 46 47 55 57 45 51 56 54 51 46 47 55 46 47 45
++46 47 45 46 47 45 71 59 54 75 64 67 113 97 77 143 103 96 143 103 96 143 103 96
++133 69 69 99 79 59 73 50 50 71 59 54 71 59 54 64 57 60 74 57 60 99 61 48
++
++75 83 72 68 64 51 99 61 48 113 97 77 143 103 96 134 98 86 134 98 86 88 79 65
++75 64 67 99 96 86 114 121 97 123 133 112 137 117 96 114 121 97 141 128 110 114 121 97
++123 133 112 141 128 110 164 133 127 191 160 135 236 180 161 242 198 175 242 198 175 236 180 161
++191 160 135 113 97 77 86 83 83 86 83 83 86 83 83 143 146 150 203 196 201 245 235 246
++246 248 239 245 235 246 245 232 231 238 233 218 240 208 188 240 208 188 240 208 188 229 200 201
++229 200 201 212 206 189 212 206 189 212 185 189 215 195 173 188 189 175 187 177 178 141 139 118
++104 88 73 75 64 67 86 83 83 86 83 83 99 85 89 141 128 110 216 172 134 236 180 161
++240 208 188 242 198 175 215 195 173 210 180 161 164 145 137 128 104 97 75 83 72 46 47 55
++46 47 55 39 43 42 39 37 42 33 35 35 56 54 51 104 88 73 137 117 96 184 123 101
++164 145 120 184 123 101 165 108 102 161 121 76 128 104 97 137 117 96 141 128 110 137 117 96
++134 98 86 113 97 77 105 79 65 99 79 59 99 79 59 99 61 48 113 97 77 164 145 120
++216 172 134 210 180 161 210 180 161 240 208 188 240 208 188 215 195 173 191 160 135 166 168 134
++216 172 134 216 172 134 191 160 135 164 133 127 99 96 86 68 75 77 86 83 83 86 83 83
++87 76 74 75 64 67 68 68 60 68 68 60 134 98 86 137 117 96 135 123 86 141 139 118
++164 145 120 173 167 157 173 167 157 188 177 159 188 177 159 141 128 110 135 123 86 113 97 36
++113 97 36 162 123 29 161 121 76 117 142 36 162 123 29 161 121 76 162 123 29 162 123 29
++113 97 36 99 79 28 45 49 35 33 35 35 45 39 35 68 50 20 68 72 23 68 50 43
++41 50 16 41 33 22 68 50 20 68 69 47 99 79 28 162 123 29 165 137 101 215 195 173
++240 208 188 240 208 188 240 208 188 229 200 201 229 200 201 238 233 218 245 232 231 245 235 246
++245 235 246 245 235 246 245 235 246 221 241 240 143 151 181 75 110 124 68 74 109 68 67 72
++68 67 72 75 64 67 75 83 72 99 96 86 143 103 96 184 128 126 191 160 135 206 156 159
++210 180 161 210 180 161 191 160 135 141 132 131 141 139 118 157 164 157 157 164 157 141 138 138
++123 133 112 112 104 120 99 96 86 68 67 72 46 47 55 56 54 51 39 43 42 105 79 65
++184 128 126 210 180 161 215 195 173 188 189 180 203 196 201 203 196 201 211 221 218 211 221 218
++210 216 207 203 196 201 203 196 201 173 183 156 141 154 138 99 96 86 86 83 83 103 106 97
++141 154 138 188 189 175 212 206 189 240 208 188 242 198 175 215 195 173 242 198 175 215 195 173
++188 177 159 165 137 101 99 85 89 88 79 65 68 68 60 71 81 67 68 67 72 75 64 67
++68 75 77 57 59 55 56 54 51 75 83 72 87 76 74 87 76 74 114 121 97 75 83 72
++88 79 65 104 88 73 86 83 83 104 88 73 87 76 74 75 64 67 75 83 72 58 61 60
++68 67 72 61 60 67 58 61 60 61 60 67 61 60 67 61 60 67 58 61 60 61 60 67
++61 60 67 86 83 83 143 146 150 173 175 176 173 167 157 188 189 175 203 196 201 189 200 189
++164 133 127 164 145 137 191 160 135 191 160 135 191 160 135 210 180 161 210 180 161 188 177 159
++164 145 137 141 139 118 141 138 138 141 128 110 114 121 97 104 88 73 87 76 74 99 96 86
++103 106 97 86 83 83 114 99 97 164 145 137 164 133 127 134 98 86 134 98 86 141 128 110
++165 108 102 165 108 102 134 98 86 105 79 65 71 59 54 88 79 65 99 96 86 114 99 97
++103 117 86 113 97 77 99 96 86 104 88 73 88 79 65 71 59 54 88 79 65 114 99 97
++134 98 86 134 98 86 134 98 86 128 104 97 114 99 97 88 79 65 68 64 51 56 54 51
++57 45 51 49 40 56 46 47 45 46 47 45 46 47 45 46 47 55 46 47 45 46 47 45
++46 47 45 39 43 42 73 50 50 88 79 65 134 98 86 165 108 102 143 103 96 134 98 86
++134 98 86 133 65 47 73 50 50 61 46 51 58 53 60 56 54 51 57 59 55 71 59 54
++
++87 76 74 68 67 72 104 88 73 161 121 76 184 123 101 184 123 101 161 121 76 133 78 94
++75 83 72 103 106 97 123 109 109 123 133 112 123 133 112 141 128 110 114 121 97 141 128 110
++141 128 110 114 121 97 141 139 118 188 172 163 236 180 161 242 198 175 242 198 175 242 198 175
++206 156 159 143 103 96 86 83 83 68 75 77 68 75 77 86 83 83 157 164 157 245 232 231
++246 248 239 245 235 246 238 233 218 212 185 189 210 180 161 206 156 159 210 180 161 215 195 173
++236 180 161 215 195 173 210 180 161 191 160 135 165 137 101 143 103 96 128 104 97 104 88 73
++75 83 72 75 83 72 87 76 74 68 75 77 86 83 83 137 117 96 191 160 135 236 180 161
++215 195 173 236 180 161 210 180 161 216 172 134 141 139 118 114 99 97 88 79 65 68 68 60
++58 53 60 35 32 58 39 43 42 28 32 42 71 59 54 104 88 73 161 121 76 165 137 101
++184 128 126 165 137 101 165 137 101 165 108 102 137 117 96 141 128 110 141 128 110 141 108 110
++128 104 97 113 97 77 133 65 47 105 79 65 99 79 59 99 61 48 137 117 96 191 160 135
++216 172 134 210 180 161 216 172 134 210 180 161 216 172 134 191 160 135 165 137 101 184 123 101
++184 123 101 203 180 109 165 137 101 161 121 76 113 97 77 104 88 73 86 83 83 86 83 83
++86 83 83 86 83 83 68 68 60 75 64 67 113 97 77 137 117 96 137 117 96 164 145 120
++173 167 157 188 177 159 210 180 161 188 193 159 191 160 135 164 145 120 118 123 77 113 97 36
++162 123 29 113 97 36 162 123 29 161 121 76 162 123 29 117 142 36 161 121 76 162 123 29
++113 97 36 99 79 59 45 39 35 33 35 35 41 33 22 68 50 20 68 69 47 99 79 28
++41 33 22 41 33 22 41 50 16 68 50 43 99 61 48 99 79 59 137 117 96 216 172 134
++215 195 173 242 198 175 215 195 173 242 198 175 229 200 201 238 233 218 245 232 231 245 232 231
++245 232 231 246 248 239 245 232 231 210 221 240 143 151 181 91 128 178 96 81 123 45 62 74
++68 75 77 68 67 72 87 76 74 104 88 73 143 103 96 164 145 120 184 128 126 191 160 135
++206 156 159 206 156 159 191 160 135 164 145 137 141 139 118 141 132 131 163 158 149 163 158 149
++164 145 137 141 138 138 123 133 112 103 106 97 87 76 74 56 54 51 44 55 41 88 79 65
++184 128 126 210 180 161 210 180 161 215 195 173 212 185 189 187 177 178 194 181 189 211 221 218
++210 216 207 210 216 207 210 216 207 182 181 190 163 158 149 103 106 97 114 99 97 164 145 137
++188 172 163 212 185 189 229 200 201 210 180 161 210 180 161 210 180 161 210 180 161 242 198 175
++210 180 161 191 160 135 114 99 97 87 76 74 68 67 72 68 67 72 68 68 60 68 67 72
++68 67 72 46 47 45 64 57 60 75 64 67 86 83 83 99 96 86 114 99 97 99 96 86
++88 79 65 86 83 83 88 79 65 86 83 83 71 81 67 68 68 60 68 68 60 68 68 60
++61 60 67 68 67 72 61 60 67 58 61 60 61 60 67 61 60 67 61 60 67 61 60 67
++61 60 67 103 106 97 163 148 159 173 167 157 173 167 157 189 200 189 210 216 207 187 177 178
++137 117 96 164 111 125 184 128 126 191 160 135 191 160 135 188 177 159 215 195 173 188 193 159
++188 177 159 188 177 159 188 177 159 173 167 157 163 158 149 164 145 137 163 158 149 166 168 134
++141 128 110 86 83 83 99 96 86 123 109 109 99 85 89 104 74 73 137 117 96 165 108 102
++141 128 110 165 108 102 128 104 97 75 64 67 58 61 60 104 88 73 137 117 96 135 123 86
++137 117 96 114 121 97 128 104 97 103 117 86 104 88 73 88 79 65 88 79 65 113 97 77
++134 98 86 143 103 96 137 117 96 143 103 96 134 98 86 104 74 73 75 64 67 64 57 60
++56 54 51 49 40 56 57 45 51 49 40 56 49 40 56 57 45 51 46 47 45 49 43 41
++49 43 41 57 45 51 61 46 51 74 57 60 113 97 77 134 98 86 143 103 96 143 103 96
++134 98 86 105 79 65 73 50 50 56 54 51 58 53 60 61 46 51 56 54 51 56 54 51
++
++103 106 97 103 106 97 141 108 110 184 123 101 203 180 109 216 122 126 184 123 101 137 117 96
++96 81 123 103 106 97 114 121 97 128 104 97 123 133 112 137 117 96 123 133 112 123 109 109
++114 121 97 123 133 112 163 158 149 188 172 163 215 195 173 242 198 175 242 198 175 242 198 175
++215 195 173 164 133 127 86 83 83 86 83 83 68 75 77 68 67 72 112 124 124 210 216 207
++238 233 218 229 221 240 189 200 189 141 132 131 141 128 110 165 108 102 184 123 101 228 160 135
++242 198 175 242 198 175 236 180 161 191 160 135 184 123 101 137 117 96 135 123 86 113 97 77
++99 96 86 99 96 86 99 96 86 87 76 74 86 83 83 165 137 101 191 160 135 236 180 161
++236 180 161 210 180 161 216 172 134 164 133 127 137 117 96 113 97 77 104 88 73 75 64 67
++58 61 60 46 47 55 39 43 42 39 37 42 68 50 43 104 88 73 165 137 101 184 123 101
++165 137 101 184 123 101 165 137 101 137 117 96 141 128 110 141 128 110 141 132 131 137 117 96
++134 98 86 113 97 77 113 97 77 105 79 65 133 65 47 99 79 59 137 117 96 191 160 135
++215 195 173 242 198 175 242 198 175 236 180 161 206 156 159 165 137 101 143 103 96 165 137 101
++184 123 101 203 180 109 184 123 101 184 123 101 161 121 76 143 103 96 113 97 77 103 106 97
++99 96 86 86 83 83 87 76 74 68 69 55 99 79 59 134 98 86 141 128 110 164 145 120
++188 177 159 188 193 159 210 180 161 188 193 159 188 177 159 165 137 101 113 97 77 113 97 36
++162 123 29 162 123 29 117 142 36 161 121 76 162 123 29 161 121 76 162 123 29 161 121 76
++162 123 29 99 79 28 68 50 20 27 32 26 41 33 22 68 50 20 99 61 48 68 72 23
++68 50 20 41 28 14 41 33 22 45 49 35 68 69 47 68 50 43 105 79 65 141 128 110
++191 160 135 191 160 135 203 180 109 164 145 120 191 160 135 215 195 173 229 200 201 235 233 206
++238 233 218 238 233 218 238 233 218 210 221 240 143 151 181 96 81 123 91 128 178 68 74 109
++68 74 109 68 67 72 87 76 74 113 97 77 113 97 77 134 98 86 143 103 96 141 128 110
++164 145 137 188 147 163 206 156 159 191 160 135 164 133 127 164 133 127 141 132 131 143 146 150
++157 164 157 163 158 149 143 146 150 141 132 131 103 106 97 68 75 77 56 54 51 68 69 55
++184 128 126 206 156 159 240 189 188 236 180 161 210 180 161 188 172 163 173 167 157 203 196 201
++203 196 201 211 221 218 210 216 207 189 200 189 141 138 138 137 117 96 164 145 120 210 180 161
++212 185 189 215 195 173 206 156 159 191 160 135 184 128 126 191 160 135 210 180 161 242 198 175
++242 198 175 191 160 135 114 99 97 88 79 65 68 75 77 61 60 67 68 68 60 68 67 72
++68 68 60 56 54 51 56 54 51 75 83 72 86 83 83 99 96 86 99 96 86 114 99 97
++104 88 73 99 96 86 71 81 67 88 79 65 87 76 74 86 83 83 68 64 51 75 64 67
++68 68 60 57 59 55 58 61 60 61 60 67 61 60 67 61 60 67 61 60 67 61 60 67
++61 60 67 103 106 97 173 175 176 112 124 124 141 132 131 188 189 180 194 181 189 141 132 131
++113 97 77 134 98 86 165 137 101 164 133 127 191 160 135 210 180 161 215 195 173 215 195 173
++215 195 173 188 189 175 215 195 173 212 206 189 188 189 180 188 189 175 188 189 175 188 189 175
++103 106 97 68 68 60 68 67 72 87 76 74 56 54 51 114 99 97 141 108 110 165 137 101
++164 133 127 137 117 96 113 97 77 88 79 65 68 67 72 114 121 97 141 128 110 141 128 110
++137 139 97 137 117 96 137 139 97 137 117 96 128 104 97 88 79 65 87 76 74 113 97 77
++128 104 97 143 103 96 143 103 96 143 103 96 134 98 86 104 88 73 88 79 65 57 59 55
++56 54 51 58 53 60 58 53 60 58 53 60 58 53 60 57 45 51 46 47 55 46 47 55
++42 59 47 56 54 51 61 46 51 73 50 50 105 79 65 133 69 69 143 103 96 134 98 86
++133 69 69 99 61 48 68 50 43 49 43 41 56 54 51 57 45 51 56 54 51 56 54 51
++
++123 109 109 123 109 109 123 109 109 184 128 126 191 160 135 228 160 135 184 128 126 141 108 110
++75 110 124 83 103 97 103 106 97 123 109 109 123 133 112 123 109 109 123 133 112 137 117 96
++114 121 97 141 128 110 187 177 178 212 185 189 229 200 201 229 200 201 240 208 188 240 208 188
++229 200 201 163 158 149 99 85 89 68 75 77 68 75 77 68 67 72 83 103 97 187 177 178
++210 216 207 188 191 205 143 146 150 103 106 97 99 96 86 134 98 86 184 123 101 228 160 135
++242 198 175 242 198 175 236 180 161 228 160 135 184 123 101 165 137 101 165 137 101 137 117 96
++137 117 96 137 117 96 114 99 97 99 96 86 88 79 65 141 108 110 210 180 161 236 180 161
++242 198 175 231 153 161 191 160 135 165 137 101 134 98 86 114 99 97 113 97 77 86 83 83
++75 64 67 56 54 51 39 43 42 39 43 42 56 54 51 105 79 65 161 121 76 184 128 126
++203 180 109 184 123 101 165 137 101 161 121 76 137 117 96 164 111 125 141 128 110 141 108 110
++113 97 77 113 97 77 133 69 69 113 97 77 105 79 65 99 61 48 134 98 86 191 160 135
++242 198 175 240 208 188 240 208 188 240 208 188 242 198 157 191 160 135 161 121 76 161 121 76
++184 123 101 184 123 101 235 170 109 184 123 101 165 137 101 161 121 76 134 98 86 99 96 86
++99 96 86 99 85 89 75 83 72 68 68 60 105 79 65 118 123 77 137 117 96 164 145 120
++188 177 159 188 177 159 215 197 156 188 177 159 188 177 159 141 128 110 113 97 36 113 97 36
++161 121 76 162 123 29 162 123 29 162 123 29 161 121 76 162 123 29 165 137 101 162 123 29
++117 142 36 113 97 36 45 49 35 45 49 35 45 39 35 68 50 20 99 79 28 99 79 28
++68 50 20 41 50 16 45 39 35 45 49 35 68 50 43 56 54 51 68 64 51 134 98 86
++165 137 101 165 137 101 161 121 76 161 121 76 134 98 86 184 123 101 184 128 126 206 156 159
++229 200 201 229 200 201 245 232 231 203 196 201 131 128 178 91 128 178 91 128 178 96 81 123
++68 74 109 68 75 77 75 64 67 104 74 73 134 98 86 141 108 110 164 133 127 164 145 137
++191 160 135 206 156 159 206 156 159 191 160 135 184 128 126 164 145 137 164 145 137 141 154 138
++143 146 150 163 158 149 163 158 149 141 132 131 123 109 109 68 75 77 56 54 51 68 64 51
++164 133 127 210 180 161 242 198 175 242 198 175 210 180 161 191 160 135 164 133 127 173 175 176
++203 196 201 203 196 201 203 196 201 194 181 189 164 145 137 164 145 120 191 160 135 236 180 161
++210 180 161 210 180 161 188 147 163 184 123 101 184 128 126 191 160 135 236 180 161 240 189 188
++215 195 173 191 160 135 99 96 86 75 64 67 68 67 72 68 68 60 68 67 72 75 83 72
++61 60 67 56 54 51 57 59 55 75 64 67 87 76 74 99 96 86 99 96 86 103 106 97
++99 96 86 99 96 86 103 81 83 87 76 74 104 88 73 99 96 86 68 68 60 68 68 60
++58 61 60 46 47 45 58 53 60 61 60 67 61 60 67 58 61 60 61 60 67 61 60 67
++61 60 67 99 85 89 143 146 150 99 96 86 99 96 86 157 164 157 143 146 150 123 109 109
++114 99 97 128 104 97 141 128 110 164 111 125 191 160 135 188 177 159 215 195 173 215 195 173
++212 206 189 215 195 173 212 206 189 189 200 189 215 195 173 212 206 189 212 206 189 173 167 157
++87 76 74 61 60 67 68 68 60 58 53 60 64 57 60 114 99 97 141 108 110 141 128 110
++164 133 127 143 103 96 128 104 97 99 85 89 75 83 72 114 121 97 141 128 110 141 128 110
++137 117 96 141 128 110 141 128 110 137 117 96 114 99 97 88 79 65 88 79 65 133 78 94
++134 98 86 143 103 96 143 103 96 143 103 96 113 97 77 113 97 77 104 88 73 56 54 51
++58 53 60 58 53 60 58 53 60 58 53 60 58 53 60 58 53 60 57 45 51 58 53 60
++45 62 74 56 54 51 56 54 51 99 61 48 104 74 73 133 69 69 133 69 69 133 69 69
++133 65 47 99 61 48 68 50 20 73 50 50 61 46 51 57 45 51 56 54 51 57 45 51
++
++163 158 149 141 138 138 164 133 127 165 137 101 184 123 101 184 123 101 141 128 110 123 109 109
++68 74 109 83 103 97 86 83 83 99 96 86 114 99 97 123 133 112 114 121 97 114 121 97
++123 133 112 157 164 157 189 200 189 212 206 189 210 216 207 229 200 201 238 233 218 238 233 218
++229 200 201 173 175 176 99 85 89 68 67 72 68 67 72 61 60 67 68 67 72 104 108 124
++143 146 150 122 133 132 104 108 124 103 106 97 114 99 97 133 69 69 223 122 101 235 170 109
++236 180 161 242 198 157 228 160 135 191 160 135 184 123 101 191 160 135 191 160 135 173 167 157
++191 160 135 166 168 134 164 145 137 141 128 110 113 97 77 141 128 110 210 180 161 236 180 161
++242 198 175 242 198 175 216 172 134 165 108 102 113 97 77 113 97 77 114 99 97 104 88 73
++88 79 65 64 57 60 46 47 55 46 47 45 56 54 51 113 97 77 164 145 120 191 160 135
++216 172 134 216 172 134 184 128 126 164 133 127 141 128 110 164 133 127 141 139 118 137 117 96
++128 104 97 113 97 77 133 69 69 113 97 36 133 69 69 113 97 36 134 98 86 164 145 120
++242 198 175 240 208 188 240 208 188 240 208 188 242 198 175 210 180 161 137 117 96 105 79 65
++161 121 76 184 123 101 203 180 109 212 122 83 203 180 109 184 123 101 161 121 76 113 97 77
++99 85 89 83 103 97 87 76 74 68 64 51 99 79 59 134 98 86 137 117 96 164 145 120
++188 177 159 210 180 161 188 189 175 210 180 161 166 168 134 161 121 76 113 97 77 113 97 36
++117 142 36 162 123 29 161 121 76 117 142 36 162 123 29 161 121 76 197 180 35 161 121 76
++162 123 29 113 97 36 68 50 20 41 33 22 41 33 22 68 69 47 99 79 28 99 79 28
++99 79 28 68 50 20 68 50 43 44 55 41 57 59 55 57 59 55 68 69 47 113 97 36
++161 121 76 162 123 29 161 121 76 113 97 36 161 121 76 165 108 102 165 108 102 165 108 102
++184 128 126 188 147 163 188 147 163 131 128 178 131 128 178 91 128 178 131 128 178 91 128 178
++75 110 124 86 83 83 87 76 74 114 99 97 164 133 127 191 160 135 210 180 161 240 189 188
++210 180 161 228 160 135 228 160 135 246 122 125 216 122 126 184 128 126 188 147 163 173 167 157
++163 158 149 141 138 138 143 146 150 141 138 138 103 106 97 75 64 67 56 54 51 57 45 51
++134 98 86 206 156 159 242 198 175 242 198 175 236 180 161 191 160 135 141 132 131 157 164 157
++188 189 180 203 196 201 210 216 207 215 195 173 210 180 161 206 156 159 236 180 161 236 180 161
++210 180 161 188 172 163 191 160 135 164 145 120 164 111 125 191 160 135 210 180 161 240 208 188
++215 195 173 164 145 137 103 81 83 75 83 72 68 68 60 68 67 72 68 67 72 87 76 74
++58 61 60 56 54 51 56 54 51 64 57 60 75 83 72 99 96 86 86 83 83 114 99 97
++114 99 97 99 96 86 128 104 97 123 109 109 99 96 86 86 83 83 104 88 73 75 64 67
++64 57 60 57 59 55 58 61 60 68 67 72 61 60 67 61 60 67 61 60 67 61 60 67
++61 60 67 68 75 77 103 106 97 68 75 77 68 67 72 114 121 97 122 113 129 112 124 124
++123 133 112 141 108 110 141 139 118 164 133 127 164 145 120 188 177 159 215 195 173 215 195 173
++215 195 173 212 206 189 212 206 189 212 206 189 212 206 189 212 206 189 188 189 180 123 109 109
++68 68 60 61 60 67 58 53 60 46 47 45 68 67 72 103 106 97 128 104 97 143 103 96
++143 103 96 141 108 110 123 133 112 99 96 86 87 76 74 99 96 86 141 128 110 137 139 97
++137 117 96 114 121 97 114 121 97 104 88 73 88 79 65 68 50 43 71 59 54 104 74 73
++113 97 77 143 103 96 134 98 86 134 98 86 165 137 101 135 123 86 88 79 65 68 64 51
++58 53 60 58 53 60 58 53 60 58 53 60 58 53 60 58 53 60 58 53 60 58 53 60
++57 59 55 73 50 50 99 61 48 99 36 46 99 61 48 133 65 47 133 65 47 133 65 47
++133 65 47 133 65 47 133 28 45 99 61 48 73 50 50 68 50 43 57 45 51 56 54 51
++
++188 172 163 163 158 149 164 145 137 165 108 102 165 108 102 137 117 96 128 104 97 96 81 123
++83 103 97 61 60 67 68 68 60 75 83 72 99 96 86 103 106 97 114 121 97 123 133 112
++173 167 157 194 181 189 210 216 207 203 196 201 211 221 218 229 221 240 238 233 218 238 233 218
++210 216 207 173 175 176 86 83 83 68 67 72 61 60 67 68 67 72 68 75 77 83 103 97
++75 110 124 104 108 124 104 108 124 112 104 120 133 78 94 224 65 75 212 122 83 246 122 125
++246 122 125 228 160 135 246 122 125 223 122 101 184 123 101 191 160 135 210 180 161 215 195 173
++229 200 201 215 195 173 215 195 173 188 177 159 164 145 137 166 168 134 210 180 161 215 195 173
++242 198 175 210 180 161 191 160 135 137 117 96 105 79 65 99 96 86 113 97 77 113 97 77
++88 79 65 75 83 72 61 60 67 57 59 55 75 64 67 123 109 109 191 160 135 236 180 161
++215 195 173 236 180 161 191 160 135 191 160 135 164 133 127 164 133 127 141 132 131 123 109 109
++137 117 96 113 97 77 113 97 77 134 98 86 143 103 96 143 103 96 161 121 76 184 128 126
++210 180 161 242 198 175 240 208 188 242 198 175 242 198 175 216 172 134 165 108 102 113 97 36
++161 121 76 161 121 76 212 122 83 202 181 82 223 122 101 203 180 109 161 121 76 134 98 86
++99 85 89 86 83 83 68 67 72 56 54 51 99 79 59 113 97 77 165 137 101 166 168 134
++188 177 159 188 193 159 210 180 161 188 177 159 172 173 110 161 121 76 162 123 29 162 123 29
++162 123 29 161 121 76 197 180 35 162 123 29 161 121 76 197 180 35 162 123 29 162 123 29
++162 123 29 99 79 28 68 50 20 41 50 16 41 50 16 68 50 20 113 97 36 113 97 36
++99 79 28 68 69 47 73 50 50 68 50 43 56 54 51 68 69 47 99 79 59 118 123 77
++162 123 29 161 121 76 117 142 36 161 121 76 165 137 101 184 128 126 228 160 135 184 123 101
++134 98 86 133 78 94 96 81 123 91 128 178 131 128 178 91 128 178 131 128 178 91 128 178
++91 128 178 68 74 109 103 106 97 141 132 131 164 145 137 206 156 159 210 180 161 215 195 173
++236 180 161 216 122 126 246 122 125 246 122 125 246 122 125 246 122 125 231 153 161 210 180 161
++173 167 157 163 158 149 141 154 138 141 139 118 99 96 86 75 64 67 56 54 51 45 49 35
++105 79 65 164 133 127 206 156 159 242 198 175 229 200 201 215 195 173 188 189 175 173 175 176
++188 189 180 212 206 189 229 200 201 240 208 188 242 198 175 236 180 161 236 180 161 212 185 189
++206 156 159 206 156 159 188 147 163 164 145 137 184 128 126 164 145 120 210 180 161 240 189 188
++210 180 161 163 158 149 141 139 118 123 133 112 99 85 89 68 75 77 103 106 97 188 189 180
++86 83 83 56 54 51 57 59 55 68 68 60 87 76 74 86 83 83 88 79 65 103 106 97
++137 117 96 123 109 109 104 88 73 103 106 97 114 99 97 99 96 86 88 79 65 75 83 72
++71 59 54 56 54 51 64 57 60 68 67 72 61 60 67 61 60 67 61 60 67 61 60 67
++61 60 67 58 61 60 68 67 72 68 67 72 71 81 67 86 83 83 123 109 109 112 124 124
++114 99 97 103 106 97 114 99 97 141 108 110 141 139 118 163 158 149 188 177 159 215 195 173
++212 206 189 215 195 173 215 195 173 212 206 189 212 206 189 188 189 175 141 139 118 68 75 77
++61 60 67 61 60 67 58 61 60 58 53 60 68 75 77 99 85 89 123 109 109 137 117 96
++141 128 110 141 128 110 122 113 129 75 83 72 58 61 60 86 83 83 114 99 97 128 104 97
++114 121 97 104 88 73 68 69 55 56 54 51 49 43 41 46 47 45 58 53 60 75 64 67
++104 74 73 104 88 73 113 97 77 135 123 86 165 137 101 161 121 76 88 79 65 56 54 51
++49 43 41 57 45 51 57 45 51 58 53 60 58 53 60 58 53 60 58 53 60 73 50 50
++99 61 48 99 61 48 133 65 47 133 65 47 133 65 47 133 28 45 133 65 47 133 65 47
++159 63 71 133 65 47 133 65 47 133 65 47 99 61 48 73 50 50 56 54 51 46 47 45
++
++188 172 163 188 172 163 164 145 137 165 137 101 134 98 86 113 97 77 86 83 83 86 83 83
++68 75 77 58 61 60 68 68 60 71 81 67 86 83 83 103 106 97 103 106 97 141 138 138
++188 189 180 203 196 201 211 221 218 203 196 201 211 221 218 211 221 218 229 221 240 229 221 240
++210 216 207 157 164 157 68 75 77 61 60 67 61 60 67 61 60 67 68 75 77 68 74 109
++104 108 124 112 124 124 112 104 120 133 78 94 165 108 102 224 65 75 224 65 75 224 65 75
++246 122 125 246 122 125 223 122 101 224 65 75 184 123 101 206 156 159 212 206 189 210 216 207
++240 208 188 229 200 201 212 206 189 188 189 175 173 183 156 188 172 163 210 180 161 242 198 175
++242 198 175 215 195 173 184 128 126 113 97 77 99 61 48 88 79 65 104 88 73 113 97 77
++104 88 73 88 79 65 87 76 74 99 96 86 112 104 120 141 115 130 188 172 163 236 180 161
++242 198 175 240 208 188 210 180 161 163 158 149 164 142 149 163 158 149 173 167 157 173 167 157
++164 145 120 128 104 97 161 121 76 184 123 101 191 160 135 191 160 135 191 160 135 191 160 135
++210 180 161 210 180 161 236 180 161 210 180 161 210 180 161 164 145 120 161 121 76 133 69 69
++161 121 76 161 121 76 161 121 76 184 123 101 202 181 82 184 123 101 184 123 101 135 123 86
++86 83 83 86 83 83 68 68 60 68 50 43 105 79 65 135 123 86 141 128 110 191 160 135
++188 177 159 188 189 175 188 193 159 188 177 159 203 180 109 203 180 109 202 181 82 202 181 82
++247 185 70 235 213 109 202 181 82 202 181 82 202 181 82 202 181 82 202 181 82 202 181 82
++202 181 82 161 121 76 161 121 76 162 123 29 117 142 36 162 123 29 161 121 76 162 123 29
++113 97 36 68 72 23 68 69 47 56 54 51 56 54 51 68 64 51 99 79 28 162 123 29
++161 121 76 113 97 36 113 97 36 113 97 77 164 133 127 216 172 134 210 180 161 216 172 134
++164 111 125 99 85 89 96 81 123 96 81 123 91 128 178 91 128 178 91 128 178 91 128 178
++91 128 178 131 128 178 157 164 157 187 177 178 210 180 161 210 180 161 210 180 161 236 180 161
++216 172 134 223 122 101 224 65 75 224 65 75 223 122 101 246 122 125 231 153 161 206 156 159
++188 172 163 188 172 163 163 148 159 123 133 112 86 83 83 57 59 55 46 47 45 46 47 45
++68 50 43 134 98 86 164 145 137 215 195 173 212 206 189 212 206 189 203 196 201 189 200 189
++203 196 201 212 206 189 240 208 188 242 198 175 240 189 188 236 180 161 231 153 161 191 160 135
++206 156 159 206 156 159 188 147 163 191 160 135 206 156 159 206 156 159 212 185 189 212 206 189
++212 206 189 215 195 173 188 189 180 173 175 176 157 164 157 143 146 150 203 196 201 245 232 231
++86 83 83 61 60 67 68 67 72 68 67 72 86 83 83 86 83 83 99 96 86 88 79 65
++99 96 86 123 109 109 104 88 73 128 104 97 137 117 96 113 97 77 86 83 83 88 79 65
++64 57 60 56 54 51 56 54 51 68 68 60 68 68 60 58 61 60 68 68 60 58 61 60
++58 61 60 58 61 60 58 61 60 68 67 72 86 83 83 103 106 97 103 106 97 86 83 83
++86 83 83 103 106 97 86 83 83 113 97 77 137 117 96 164 145 120 191 160 135 188 193 159
++215 195 173 215 195 173 215 195 173 212 206 189 188 189 175 164 145 137 86 83 83 68 67 72
++68 67 72 61 60 67 61 60 67 61 60 67 68 67 72 99 85 89 114 99 97 164 133 127
++164 133 127 123 109 109 86 83 83 61 60 67 57 59 55 68 69 55 86 83 83 88 79 65
++99 96 86 68 64 51 56 54 51 49 43 41 46 47 45 57 45 51 64 57 60 71 59 54
++75 64 67 105 79 65 134 98 86 165 137 101 172 173 110 135 123 86 88 79 65 49 43 41
++46 47 45 49 43 41 57 45 51 49 40 56 58 53 60 64 57 60 73 50 50 74 57 60
++133 65 47 133 65 47 159 26 46 133 65 47 159 63 71 154 59 17 159 63 71 154 59 17
++159 26 46 133 65 47 133 65 47 133 65 47 99 61 48 56 54 51 56 54 51 46 47 45
++
++215 195 173 210 180 161 210 180 161 184 128 126 165 108 102 99 79 59 86 83 83 86 83 83
++68 75 77 68 67 72 68 68 60 68 68 60 87 76 74 86 83 83 99 96 86 173 167 157
++203 196 201 211 221 218 211 221 218 203 196 201 211 221 218 211 221 218 245 232 231 211 221 218
++203 196 201 143 146 150 68 67 72 58 53 60 58 53 60 45 62 74 68 75 77 104 108 124
++112 124 124 104 108 124 112 104 120 141 132 131 223 122 101 224 65 75 224 65 75 224 65 75
++224 65 75 224 65 75 224 65 75 224 65 75 165 108 102 191 160 135 215 195 173 229 200 201
++240 208 188 210 216 207 240 208 188 215 195 173 188 177 159 187 177 178 215 195 173 242 198 175
++240 208 188 215 195 173 184 128 126 105 79 65 68 69 47 68 69 55 104 88 73 113 97 77
++113 97 77 113 97 77 113 97 77 123 109 109 122 133 132 143 151 181 188 147 163 194 181 189
++240 189 188 212 185 189 187 177 178 188 147 163 163 148 159 187 177 178 203 196 201 215 195 173
++188 172 163 164 145 137 165 137 101 191 160 135 236 180 161 242 198 175 240 189 188 236 180 161
++191 160 135 216 172 134 191 160 135 184 128 126 164 145 120 161 121 76 161 121 76 161 121 76
++161 121 76 161 121 76 212 122 83 212 122 83 184 123 101 165 137 101 161 121 76 134 98 86
++99 96 86 86 83 83 68 67 72 56 54 51 104 88 73 135 123 86 164 145 120 166 168 134
++188 177 159 215 195 173 210 180 161 215 197 156 235 213 109 235 213 109 235 213 109 239 232 157
++235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 235 213 109
++235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 235 213 109
++161 121 76 99 79 28 68 50 43 56 54 51 58 53 60 68 50 43 99 79 28 105 79 65
++113 97 36 113 97 77 68 69 47 104 88 73 164 145 120 210 180 161 236 180 161 210 180 161
++191 160 135 143 103 96 68 74 109 96 81 123 91 128 178 91 128 178 131 128 178 91 128 178
++131 128 178 131 128 178 203 196 201 211 221 218 229 200 201 215 195 173 236 180 161 210 180 161
++228 160 135 184 123 101 224 65 75 224 65 75 223 122 101 246 122 125 246 122 125 231 153 161
++231 153 161 188 172 163 163 148 159 112 124 124 87 76 74 71 59 54 68 50 43 61 46 51
++45 39 35 68 64 51 128 104 97 187 177 178 210 216 207 210 216 207 210 216 207 210 216 207
++229 200 201 240 208 188 240 208 188 215 195 173 216 172 134 191 160 135 184 128 126 184 128 126
++191 160 135 184 128 126 191 160 135 206 156 159 212 185 189 212 185 189 212 206 189 229 200 201
++210 216 207 212 206 189 203 196 201 189 200 189 203 196 201 182 181 190 246 248 239 210 221 240
++68 68 60 68 68 60 75 64 67 87 76 74 86 83 83 99 96 86 71 81 67 103 81 83
++88 79 65 86 83 83 113 97 77 164 145 120 161 121 76 104 88 73 68 64 51 88 79 65
++75 64 67 58 61 60 46 47 45 57 59 55 58 61 60 75 64 67 88 79 65 86 83 83
++87 76 74 68 68 60 68 68 60 86 83 83 123 109 109 99 96 86 87 76 74 71 59 54
++71 59 54 87 76 74 87 76 74 128 104 97 141 128 110 164 145 137 173 167 157 215 197 156
++212 206 189 215 195 173 215 195 173 188 193 159 163 158 149 99 96 86 68 68 60 61 60 67
++61 60 67 61 60 67 61 60 67 61 60 67 61 60 67 68 75 77 99 85 89 141 115 130
++123 109 109 86 83 83 68 68 60 56 54 51 46 47 45 56 54 51 68 68 60 68 68 60
++68 67 72 46 47 45 57 45 51 56 54 51 68 64 51 68 64 51 75 64 67 99 79 59
++87 76 74 114 99 97 165 137 101 164 145 120 172 173 110 134 98 86 68 69 47 49 43 41
++46 47 45 49 43 41 57 45 51 46 47 55 56 54 51 64 57 60 73 50 50 133 65 47
++133 65 47 99 61 48 133 65 47 99 61 48 133 65 47 133 69 69 133 65 47 133 69 69
++133 65 47 133 69 69 133 65 47 104 74 73 99 36 46 71 59 54 56 54 51 57 45 51
++
++236 180 161 242 198 175 236 180 161 216 172 134 164 133 127 87 76 74 68 75 77 86 83 83
++75 83 72 68 67 72 68 68 60 68 68 60 68 75 77 75 83 72 86 83 83 173 175 176
++203 196 201 210 216 207 203 196 201 203 196 201 211 221 218 211 221 218 229 221 240 221 241 240
++203 196 201 122 133 132 68 67 72 61 60 67 45 62 74 68 75 77 68 75 77 104 108 124
++104 108 124 123 133 112 164 145 137 212 185 189 212 185 189 231 153 161 246 122 125 224 65 75
++224 65 75 224 65 75 224 65 75 159 63 71 165 108 102 191 160 135 210 180 161 215 195 173
++215 195 173 215 195 173 210 180 161 164 145 137 141 128 110 164 145 137 188 172 163 215 195 173
++229 200 201 215 195 173 141 128 110 99 79 59 88 79 65 88 79 65 88 79 65 99 96 86
++113 97 77 113 97 77 128 104 97 141 128 110 141 115 130 163 148 159 163 148 159 188 172 163
++206 156 159 188 172 163 188 147 163 143 146 150 163 148 159 188 172 163 210 180 161 212 185 189
++210 180 161 191 160 135 191 160 135 240 189 188 240 208 188 240 208 188 240 208 188 242 198 175
++231 153 161 191 160 135 184 123 101 165 137 101 161 121 76 161 121 76 161 121 76 212 122 83
++212 122 83 212 122 83 161 121 76 162 123 29 161 121 76 161 121 76 161 121 76 99 96 86
++103 106 97 86 83 83 71 81 67 68 69 47 113 97 77 141 128 110 164 145 120 188 177 159
++188 193 159 188 193 159 188 177 159 216 210 134 239 232 157 235 213 109 239 232 157 235 213 109
++239 232 157 235 213 109 239 232 157 239 232 157 235 213 109 239 232 157 239 232 157 235 213 109
++239 232 157 239 232 157 235 213 109 239 232 157 235 213 109 239 232 157 235 213 109 235 213 109
++247 185 70 118 123 77 45 49 35 56 54 51 58 53 60 44 55 41 68 69 47 88 79 65
++88 79 65 68 69 47 68 50 43 113 97 77 164 145 137 210 180 161 240 208 188 215 195 173
++191 160 135 128 104 97 68 74 109 96 81 123 96 81 123 91 128 178 91 128 178 131 128 178
++91 128 178 166 181 211 229 221 240 245 232 231 238 233 218 240 208 188 242 198 175 236 180 161
++210 180 161 216 122 126 184 123 101 223 122 101 246 122 125 224 65 75 223 122 101 246 122 125
++246 122 125 206 156 159 164 133 127 99 96 86 104 88 73 133 78 94 143 103 96 134 98 86
++113 97 77 99 79 59 104 88 73 173 167 157 212 206 189 210 216 207 210 216 207 210 216 207
++210 216 207 229 200 201 242 198 175 206 156 159 165 108 102 184 123 101 184 128 126 216 122 126
++228 160 135 206 156 159 191 160 135 212 185 189 203 196 201 210 216 207 210 216 207 210 216 207
++210 216 207 211 221 218 210 216 207 210 216 207 210 216 207 210 221 240 246 248 239 246 248 239
++86 83 83 71 59 54 128 104 97 165 137 101 113 97 77 71 59 54 88 79 65 88 79 65
++75 83 72 99 61 48 134 98 86 191 160 135 191 160 135 216 172 134 165 137 101 113 97 77
++99 79 59 104 74 73 75 64 67 64 57 60 71 59 54 104 88 73 141 128 110 164 145 120
++164 133 127 128 104 97 75 64 67 103 106 97 141 132 131 123 133 112 134 98 86 113 97 77
++143 103 96 143 103 96 143 103 96 164 133 127 191 160 135 191 160 135 191 160 135 173 183 156
++210 180 161 188 177 159 173 183 156 173 167 157 141 128 110 71 81 67 68 67 72 61 60 67
++75 64 67 75 64 67 75 64 67 61 60 67 61 60 67 58 53 60 87 76 74 103 106 97
++86 83 83 68 68 60 57 59 55 56 54 51 56 54 51 56 54 51 56 54 51 57 59 55
++56 54 51 45 49 35 56 54 51 68 68 60 105 79 65 103 81 83 134 98 86 104 74 73
++104 88 73 137 117 96 165 137 101 184 123 101 165 137 101 113 97 77 68 64 51 46 47 45
++46 47 45 39 43 42 39 43 42 61 60 67 87 76 74 104 74 73 104 74 73 133 69 69
++99 61 48 74 57 60 75 64 67 74 57 60 104 74 73 104 74 73 133 69 69 133 69 69
++133 69 69 133 65 47 133 65 47 133 65 47 99 61 48 68 50 43 57 45 51 64 57 60
++
++242 198 175 242 198 175 210 180 161 206 156 159 165 137 101 103 81 83 86 83 83 86 83 83
++68 67 72 68 68 60 68 68 60 68 68 60 68 67 72 68 67 72 75 83 72 143 146 150
++182 181 190 188 191 205 173 175 176 173 167 157 203 196 201 210 216 207 238 233 218 211 221 218
++210 216 207 141 138 138 75 64 67 58 53 60 45 62 74 45 62 74 68 75 77 112 104 120
++123 109 109 163 158 149 212 206 189 235 233 206 238 233 218 240 208 188 231 153 161 224 65 75
++224 65 75 224 65 75 165 108 102 143 103 96 164 111 125 184 128 126 216 172 134 210 180 161
++216 172 134 216 172 134 191 160 135 141 128 110 104 88 73 99 85 89 141 154 138 215 195 173
++212 185 189 188 172 163 141 108 110 105 79 65 88 79 65 88 79 65 88 79 65 113 97 77
++128 104 97 134 98 86 133 69 69 133 65 47 133 28 45 133 69 69 133 28 45 159 63 71
++159 63 71 181 55 69 159 63 71 159 26 46 159 63 71 159 26 46 159 63 71 159 26 46
++159 26 46 181 55 69 181 55 69 181 55 69 216 122 126 231 153 161 240 208 188 238 233 218
++215 195 173 191 160 135 191 160 135 165 137 101 161 121 76 184 123 101 212 122 83 165 137 101
++212 122 83 161 121 76 161 121 76 161 121 76 133 65 47 134 98 86 99 79 59 104 88 73
++99 96 86 86 83 83 87 76 74 87 76 74 134 98 86 165 137 101 191 160 135 188 177 159
++188 177 159 210 180 161 215 197 156 216 210 134 235 213 109 239 232 157 239 232 157 239 232 157
++239 232 157 239 232 157 239 232 157 235 213 109 239 232 157 239 232 157 239 232 157 239 232 157
++239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 235 213 109
++235 213 109 202 181 82 68 72 23 68 50 43 56 54 51 56 54 51 56 54 51 68 64 51
++57 59 55 57 59 55 57 59 55 113 97 77 191 160 135 212 185 189 242 198 175 210 180 161
++164 142 149 114 99 97 75 64 67 68 74 109 96 81 123 91 128 178 131 128 178 91 128 178
++91 128 178 163 147 193 225 201 230 229 221 240 238 233 218 229 200 201 240 208 188 240 208 188
++236 180 161 216 172 134 184 128 126 216 122 126 216 122 126 246 122 125 224 65 75 246 122 125
++224 65 75 223 122 101 133 78 94 113 97 77 128 104 97 184 128 126 228 160 135 236 180 161
++216 172 134 164 133 127 137 117 96 173 167 157 203 196 201 210 216 207 210 216 207 229 200 201
++240 208 188 240 208 188 210 180 161 164 133 127 113 97 77 164 111 125 228 160 135 206 156 159
++236 180 161 191 160 135 191 160 135 194 181 189 210 216 207 211 221 218 211 221 218 211 221 218
++211 221 218 211 221 218 211 221 218 229 221 240 238 233 218 245 235 246 246 248 239 246 248 239
++122 133 132 104 88 73 206 156 159 216 172 134 216 172 134 137 117 96 99 79 59 88 79 65
++104 88 73 99 79 59 161 121 76 191 160 135 223 122 101 203 180 109 216 172 134 216 172 134
++184 123 101 191 160 135 165 137 101 104 88 73 104 74 73 134 98 86 184 128 126 191 160 135
++191 160 135 128 104 97 88 79 65 123 109 109 188 177 159 163 158 149 184 123 101 184 128 126
++184 128 126 191 160 135 216 122 126 184 128 126 216 172 134 188 177 159 188 177 159 166 168 134
++188 177 159 166 168 134 164 145 137 164 145 120 103 106 97 68 75 77 64 57 60 75 64 67
++104 74 73 113 97 77 133 78 94 113 97 77 104 74 73 104 74 73 74 57 60 86 83 83
++87 76 74 57 59 55 56 54 51 56 54 51 46 47 55 57 59 55 56 54 51 56 54 51
++46 47 45 46 47 45 56 54 51 88 79 65 134 98 86 143 103 96 134 98 86 105 79 65
++104 88 73 141 108 110 165 137 101 164 145 120 165 137 101 99 79 28 46 47 45 46 47 45
++46 47 45 46 47 45 46 47 45 68 75 77 103 81 83 103 81 83 133 69 69 99 36 46
++75 64 67 74 57 60 75 64 67 68 67 72 75 64 67 99 61 48 99 61 48 133 65 47
++133 65 47 133 65 47 133 65 47 133 28 45 99 61 48 73 50 50 68 50 43 68 50 43
++
++242 198 175 215 195 173 216 172 134 184 128 126 134 98 86 87 76 74 75 83 72 68 67 72
++58 61 60 58 61 60 68 69 55 75 64 67 68 68 60 71 59 54 68 68 60 103 106 97
++112 124 124 112 104 120 103 106 97 112 104 120 143 146 150 194 181 189 210 216 207 229 200 201
++229 200 201 191 160 135 128 104 97 87 76 74 64 57 60 64 57 60 87 76 74 137 117 96
++173 167 157 212 206 189 225 201 230 238 233 218 229 221 240 245 232 231 240 208 188 231 153 161
++224 65 75 159 63 71 133 78 94 112 104 120 164 111 125 191 160 135 206 156 159 210 180 161
++236 180 161 236 180 161 191 160 135 165 108 102 99 85 89 86 83 83 123 109 109 173 167 157
++188 172 163 173 167 157 128 104 97 105 79 65 133 69 69 133 69 69 133 65 47 133 69 69
++133 65 47 133 28 45 133 23 15 159 26 46 159 26 46 159 26 46 159 26 46 159 26 46
++159 26 46 159 26 46 159 26 46 159 26 46 181 55 69 159 26 46 159 26 46 181 55 69
++159 26 46 175 13 17 181 55 69 181 55 69 159 26 46 159 63 71 181 55 69 216 122 126
++240 208 188 231 233 186 191 160 135 184 123 101 184 123 101 161 121 76 212 122 83 202 181 82
++161 121 76 212 122 83 162 123 29 133 65 47 113 97 36 99 79 28 88 79 65 75 83 72
++86 83 83 86 83 83 68 67 72 87 76 74 118 123 77 141 128 110 166 168 134 188 177 159
++188 189 175 188 193 159 215 197 156 239 232 157 239 232 157 239 232 157 239 232 157 235 213 109
++239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 235 213 109 239 232 157 239 232 157
++239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 235 213 109 239 232 157 235 213 109
++235 213 109 202 181 82 162 123 29 68 72 23 56 54 51 57 59 55 68 64 51 57 59 55
++68 68 60 58 61 60 56 54 51 87 76 74 164 145 137 210 180 161 212 185 189 210 180 161
++141 128 110 86 83 83 61 60 67 49 40 56 68 74 109 96 81 123 96 81 123 96 81 123
++131 128 178 163 147 193 229 200 201 229 221 240 229 200 201 215 195 173 240 189 188 242 198 175
++240 189 188 228 160 135 206 156 159 191 160 135 216 122 126 224 65 75 246 122 125 224 65 75
++223 122 101 224 65 75 165 108 102 165 108 102 164 145 137 212 185 189 240 208 188 240 208 188
++215 195 173 216 172 134 191 160 135 188 189 175 210 216 207 211 221 218 210 216 207 212 206 189
++212 185 189 215 195 173 164 145 137 103 106 97 103 81 83 165 108 102 191 160 135 236 180 161
++236 180 161 228 160 135 164 145 137 173 167 157 203 196 201 211 221 218 229 221 240 229 221 240
++245 232 231 229 221 240 245 235 246 245 235 246 221 241 240 245 235 246 246 248 239 245 235 246
++157 164 157 128 104 97 236 180 161 216 172 134 216 172 134 236 180 161 165 137 101 105 79 65
++137 117 96 191 160 135 191 160 135 203 180 109 216 172 134 228 160 135 191 160 135 216 172 134
++203 180 109 184 123 101 184 123 101 134 98 86 113 97 77 134 98 86 164 145 120 206 156 159
++191 160 135 141 108 110 86 83 83 141 128 110 188 172 163 166 168 134 165 137 101 184 128 126
++216 122 126 228 160 135 191 160 135 184 128 126 191 160 135 188 177 159 166 168 134 164 145 137
++164 133 127 141 139 118 164 145 137 141 154 138 99 96 86 58 61 60 56 54 51 75 64 67
++113 97 77 165 108 102 165 108 102 165 108 102 143 103 96 134 98 86 113 97 77 99 85 89
++68 68 60 58 61 60 57 59 55 58 53 60 57 59 55 56 54 51 56 54 51 46 47 45
++46 47 45 46 47 45 64 57 60 104 74 73 104 88 73 134 98 86 113 97 77 105 79 65
++113 97 77 141 128 110 164 145 120 165 137 101 118 123 77 68 69 47 57 45 51 46 47 45
++46 47 45 39 43 42 46 47 45 75 64 67 75 64 67 99 61 48 99 61 48 75 64 67
++74 57 60 64 57 60 74 57 60 68 68 60 74 57 60 99 61 48 133 69 69 133 65 47
++133 65 47 133 65 47 133 65 47 133 65 47 99 61 48 99 61 48 71 59 54 71 59 54
++
++236 180 161 210 180 161 191 160 135 137 117 96 88 79 65 87 76 74 75 83 72 68 67 72
++58 61 60 68 68 60 88 79 65 88 79 65 88 79 65 68 69 55 75 64 67 88 79 65
++86 83 83 75 83 72 68 75 77 68 75 77 86 83 83 141 138 138 212 206 189 229 200 201
++240 208 188 210 180 161 191 160 135 128 104 97 103 81 83 114 99 97 141 139 118 188 177 159
++212 206 189 238 233 218 245 232 231 245 235 246 245 235 246 246 248 239 245 232 231 240 189 188
++165 108 102 133 78 94 104 108 124 96 81 123 141 115 130 164 111 125 191 160 135 236 180 161
++236 180 161 236 180 161 191 160 135 165 108 102 104 74 73 99 85 89 164 133 127 164 133 127
++164 133 127 164 142 149 133 78 94 133 28 45 133 28 45 133 23 15 159 26 46 133 28 45
++133 23 15 159 26 46 181 55 69 159 26 46 159 26 46 159 26 46 197 60 17 159 26 46
++159 26 46 159 26 46 159 26 46 159 26 46 175 13 17 181 55 69 175 13 17 159 26 46
++159 26 46 159 26 46 181 55 69 175 13 17 159 26 46 181 55 69 159 26 46 181 55 69
++165 108 102 212 185 189 215 197 156 165 137 101 161 121 76 212 122 83 202 181 82 212 122 83
++212 122 83 161 121 76 161 121 76 133 65 47 99 79 28 73 50 50 68 50 43 68 67 72
++75 83 72 88 79 65 75 64 67 86 83 83 113 97 77 141 128 110 164 145 120 191 160 135
++188 193 159 188 177 159 215 197 156 239 232 157 235 213 109 239 232 157 239 232 157 239 232 157
++239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157
++239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 235 213 109 235 213 109
++235 213 109 247 185 70 202 181 82 161 121 76 68 69 47 64 57 60 58 61 60 68 68 60
++68 68 60 68 68 60 68 68 60 71 59 54 114 99 97 164 145 137 191 160 135 141 128 110
++75 64 67 57 59 55 64 57 60 61 60 67 61 60 67 68 74 109 96 81 123 91 128 178
++96 81 123 188 147 163 240 189 188 212 185 189 210 216 207 229 200 201 240 208 188 242 198 175
++236 180 161 228 160 135 184 128 126 216 122 126 184 128 126 181 55 69 224 65 75 224 65 75
++224 65 75 223 122 101 165 108 102 191 160 135 188 177 159 240 208 188 238 233 218 245 232 231
++240 189 188 236 180 161 210 180 161 212 206 189 210 216 207 229 200 201 189 200 189 163 158 149
++166 168 134 163 158 149 123 109 109 99 96 86 87 76 74 137 117 96 184 128 126 191 160 135
++206 156 159 164 145 120 134 98 86 141 128 110 189 200 189 210 221 240 229 221 240 221 241 240
++245 235 246 245 235 246 221 241 240 245 235 246 221 241 240 245 235 246 246 248 239 246 248 239
++211 221 218 141 108 110 236 180 161 242 198 157 242 198 157 242 198 157 216 172 134 137 117 96
++216 172 134 216 172 134 216 172 134 216 172 134 216 172 134 191 160 135 216 172 134 216 172 134
++216 172 134 184 123 101 172 173 110 113 97 77 134 98 86 134 98 86 165 137 101 191 160 135
++188 172 163 123 109 109 87 76 74 141 132 131 173 167 157 141 128 110 165 108 102 184 128 126
++191 160 135 216 122 126 184 128 126 165 137 101 141 128 110 166 168 134 163 158 149 141 128 110
++114 121 97 128 104 97 166 168 134 141 139 118 68 67 72 46 47 55 46 47 55 71 59 54
++134 98 86 184 123 101 165 108 102 184 123 101 184 123 101 134 98 86 134 98 86 86 83 83
++58 61 60 57 59 55 58 53 60 56 54 51 46 47 55 56 54 51 46 47 55 46 47 45
++46 47 45 46 47 45 68 67 72 104 74 73 104 74 73 134 98 86 104 74 73 133 69 69
++114 99 97 128 104 97 141 128 110 141 128 110 113 97 77 68 50 43 46 47 45 46 47 55
++46 47 45 46 47 45 46 47 45 57 45 51 71 59 54 99 61 48 104 74 73 99 61 48
++74 57 60 57 45 51 56 54 51 57 59 55 58 53 60 74 57 60 133 69 69 133 65 47
++159 26 46 133 65 47 133 65 47 133 65 47 133 28 45 99 61 48 73 50 50 74 57 60
++
++215 195 173 236 180 161 191 160 135 137 117 96 99 79 59 75 64 67 75 64 67 61 60 67
++68 64 51 75 64 67 104 88 73 113 97 77 113 97 77 161 121 76 165 137 101 164 145 137
++141 132 131 114 99 97 86 83 83 68 75 77 68 75 77 164 145 120 212 185 189 231 233 186
++240 208 188 242 198 175 206 156 159 164 145 137 191 160 135 188 177 159 236 180 161 215 195 173
++235 233 206 245 232 231 245 232 231 246 248 239 246 248 239 245 232 231 245 232 231 229 200 201
++141 115 130 83 103 97 96 81 123 103 106 97 114 99 97 128 104 97 164 133 127 191 160 135
++231 153 161 216 172 134 184 128 126 114 99 97 88 79 65 114 99 97 164 142 149 164 142 149
++188 147 163 164 133 127 133 28 45 154 59 17 159 26 46 159 26 46 154 59 17 154 14 17
++159 26 46 159 26 46 175 13 17 159 26 46 159 26 46 159 26 46 159 26 46 175 13 17
++159 26 46 175 13 17 197 60 17 159 26 46 159 26 46 175 13 17 159 26 46 159 26 46
++159 26 46 175 13 17 181 55 69 197 60 17 181 55 69 175 13 17 181 55 69 159 26 46
++159 26 46 181 55 69 165 108 102 212 122 83 161 121 76 165 137 101 212 122 83 202 181 82
++212 122 83 161 121 76 162 123 29 133 65 47 68 50 20 45 39 35 44 55 41 61 60 67
++71 81 67 68 68 60 71 82 60 99 79 59 113 97 77 137 117 96 165 137 101 164 145 120
++164 145 120 191 160 135 216 210 134 235 213 109 239 232 157 239 232 157 239 232 157 239 232 157
++239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157
++239 232 157 239 232 157 239 232 157 239 232 157 235 213 109 239 232 157 235 213 109 235 213 109
++235 213 109 235 213 109 247 185 70 202 181 82 113 97 36 64 57 60 68 68 60 75 64 67
++75 64 67 75 64 67 68 67 72 68 68 60 68 68 60 86 83 83 86 83 83 87 76 74
++68 68 60 64 57 60 74 57 60 61 60 67 49 40 56 35 32 58 68 74 109 96 81 123
++133 78 94 216 122 126 231 153 161 229 200 201 229 200 201 210 216 207 229 200 201 212 185 189
++206 156 159 216 122 126 165 108 102 223 122 101 224 65 75 181 55 69 224 65 75 224 65 75
++223 122 101 216 122 126 164 145 137 173 167 157 212 185 189 229 200 201 240 208 188 245 232 231
++240 208 188 240 208 188 215 195 173 229 200 201 210 216 207 211 221 218 188 189 180 99 96 86
++114 99 97 114 99 97 103 106 97 122 133 132 173 175 176 188 191 205 212 185 189 212 185 189
++164 145 137 141 108 110 163 148 159 211 221 218 229 221 240 229 221 240 221 241 240 245 235 246
++221 241 240 245 235 246 221 241 240 245 235 246 245 235 246 246 248 239 245 235 246 246 248 239
++245 235 246 188 189 175 216 172 134 242 198 175 242 198 157 242 198 157 215 197 156 216 172 134
++236 180 161 242 198 157 216 172 134 191 160 135 113 97 77 99 61 48 75 64 67 113 97 77
++164 145 120 165 108 102 165 137 101 184 128 126 161 121 76 134 98 86 143 103 96 173 167 157
++164 145 137 83 103 97 86 83 83 123 109 109 141 139 118 113 97 77 134 98 86 165 108 102
++184 123 101 184 128 126 165 108 102 113 97 77 128 104 97 141 132 131 141 128 110 114 121 97
++123 109 109 114 121 97 141 132 131 86 83 83 46 47 45 46 47 45 46 47 45 57 45 51
++104 74 73 161 121 76 165 108 102 184 123 101 184 123 101 134 98 86 114 99 97 87 76 74
++58 61 60 56 54 51 58 53 60 56 54 51 57 59 55 46 47 55 46 47 45 46 47 45
++46 47 45 46 47 45 74 57 60 88 79 65 104 74 73 113 97 77 105 79 65 104 88 73
++104 74 73 104 74 73 128 104 97 113 97 77 88 79 65 71 59 54 56 54 51 46 47 45
++46 47 45 49 43 41 46 47 45 46 47 55 74 57 60 99 61 48 99 61 48 73 50 50
++99 61 48 104 74 73 104 74 73 88 79 65 104 74 73 105 79 65 133 69 69 133 65 47
++133 65 47 133 65 47 133 28 45 133 65 47 99 61 48 99 61 48 71 59 54 99 61 48
++
++240 208 188 242 198 175 210 180 161 165 108 102 88 79 65 88 79 65 71 59 54 71 59 54
++68 68 60 88 79 65 134 98 86 137 117 96 165 137 101 191 160 135 210 180 161 236 180 161
++188 172 163 141 108 110 86 83 83 83 103 97 122 113 129 173 175 176 212 206 189 235 233 206
++240 208 188 242 198 175 236 180 161 215 195 173 242 198 175 240 208 188 215 195 173 240 208 188
++229 200 201 229 221 240 238 233 218 245 235 246 245 232 231 245 232 231 245 232 231 229 200 201
++141 115 130 103 106 97 96 81 123 83 103 97 68 74 109 103 81 83 114 99 97 164 111 125
++184 128 126 165 137 101 143 103 96 88 79 65 87 76 74 141 128 110 164 133 127 164 133 127
++184 128 126 133 78 94 133 23 15 159 26 46 154 14 17 159 26 46 159 26 46 133 23 15
++159 26 46 154 14 17 154 59 17 154 14 17 154 14 17 159 26 46 154 14 17 133 28 45
++154 14 17 133 28 45 154 14 17 159 26 46 154 14 17 159 26 46 197 60 17 159 26 46
++159 26 46 159 26 46 159 26 46 159 26 46 175 13 17 159 26 46 181 55 69 175 13 17
++181 55 69 175 13 17 175 13 17 181 55 69 181 55 69 212 122 83 212 122 83 202 181 82
++184 123 101 161 121 76 133 65 47 68 50 20 68 24 14 37 33 35 46 47 45 64 57 60
++68 68 60 64 57 60 75 64 67 105 79 65 113 97 77 135 123 86 134 98 86 137 117 96
++137 117 96 137 139 97 203 180 109 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157
++239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157
++239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 235 213 109 235 213 109 235 213 109
++235 213 109 235 213 109 235 213 109 202 181 82 113 97 77 68 68 60 68 68 60 68 68 60
++68 68 60 68 68 60 75 64 67 68 68 60 68 67 72 75 64 67 75 83 72 87 76 74
++86 83 83 64 57 60 75 64 67 74 57 60 73 50 50 61 46 51 49 40 56 133 28 45
++159 63 71 181 55 69 216 122 126 194 181 189 225 201 230 229 200 201 229 200 201 210 180 161
++184 128 126 216 122 126 224 65 75 224 65 75 224 65 75 224 65 75 224 65 75 165 108 102
++164 111 125 164 133 127 163 148 159 187 177 178 188 189 180 229 200 201 238 233 218 245 232 231
++235 233 206 240 189 188 212 206 189 229 200 201 210 216 207 203 196 201 157 164 157 122 113 129
++173 175 176 188 191 205 221 241 240 210 221 240 210 221 240 210 221 240 229 221 240 221 241 240
++245 235 246 229 221 240 229 221 240 229 221 240 210 221 240 221 241 240 229 221 240 229 221 240
++221 241 240 245 235 246 245 235 246 245 235 246 221 241 240 246 248 239 245 235 246 246 248 239
++246 248 239 245 232 231 191 160 135 236 180 161 216 172 134 242 198 175 216 172 134 210 180 161
++242 198 175 236 180 161 236 180 161 191 160 135 161 121 76 105 79 65 99 36 46 68 24 14
++105 79 65 161 121 76 206 156 159 210 180 161 191 160 135 164 133 127 165 137 101 164 142 149
++164 133 127 112 104 120 114 99 97 123 109 109 123 109 109 86 83 83 104 88 73 141 108 110
++184 128 126 165 137 101 134 98 86 99 96 86 99 96 86 141 128 110 122 113 129 123 133 112
++123 109 109 123 109 109 103 106 97 68 68 60 49 43 41 39 43 42 46 47 45 49 43 41
++88 79 65 128 104 97 165 108 102 143 103 96 134 98 86 128 104 97 114 99 97 68 68 60
++58 53 60 56 54 51 58 53 60 56 54 51 56 54 51 46 47 55 56 54 51 46 47 45
++46 47 45 46 47 45 64 57 60 75 64 67 104 74 73 105 79 65 133 69 69 88 79 65
++74 57 60 68 68 60 104 88 73 88 79 65 87 76 74 75 64 67 68 64 51 57 45 51
++46 47 45 39 43 42 46 47 45 49 43 41 73 50 50 99 61 48 99 36 46 75 64 67
++113 97 77 134 98 86 133 78 94 134 98 86 134 98 86 104 74 73 133 69 69 99 61 48
++133 65 47 133 65 47 133 65 47 133 65 47 99 36 46 99 36 46 71 59 54 104 74 73
++
++240 208 188 215 195 173 191 160 135 137 117 96 99 61 48 88 79 65 74 57 60 71 59 54
++75 64 67 113 97 77 164 133 127 216 172 134 210 180 161 236 180 161 242 198 175 210 180 161
++206 156 159 123 109 109 86 83 83 104 108 124 143 146 150 182 181 190 210 216 207 238 233 218
++240 208 188 210 180 161 210 180 161 210 180 161 215 195 173 240 208 188 215 195 173 210 180 161
++188 172 163 215 195 173 212 206 189 212 206 189 212 206 189 212 206 189 203 196 201 173 167 157
++103 106 97 96 81 123 83 103 97 68 74 109 86 83 83 87 76 74 104 74 73 134 98 86
++134 98 86 103 81 83 87 76 74 88 79 65 103 81 83 164 111 125 164 142 149 164 133 127
++184 128 126 133 28 45 159 26 46 154 14 17 154 59 17 159 26 46 154 14 17 154 14 17
++133 23 15 159 26 46 133 23 15 133 23 15 133 28 45 133 23 15 133 28 45 133 23 15
++133 23 15 133 23 15 133 23 15 133 23 15 159 26 46 154 14 17 159 26 46 159 26 46
++175 13 17 159 26 46 175 13 17 181 55 69 159 26 46 181 55 69 175 13 17 181 55 69
++159 26 46 181 55 69 181 55 69 133 78 94 159 63 71 159 63 71 212 122 83 212 122 83
++184 123 101 213 123 36 134 98 86 68 50 20 27 32 26 39 43 42 56 54 51 58 61 60
++57 59 55 68 50 43 68 64 51 113 97 36 161 121 76 161 121 76 118 123 77 113 97 77
++135 123 86 161 121 76 235 213 109 235 213 109 239 232 157 239 232 157 239 232 157 239 232 157
++239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157
++239 232 157 235 213 109 172 173 110 203 180 109 162 123 29 235 213 109 235 213 109 239 232 157
++235 213 109 235 213 109 235 213 109 202 181 82 113 97 36 71 59 54 71 59 54 71 59 54
++88 79 65 87 76 74 88 79 65 75 64 67 68 68 60 68 75 77 86 83 83 103 106 97
++112 104 120 99 96 86 87 76 74 104 88 73 114 99 97 133 78 94 141 108 110 133 78 94
++165 108 102 164 111 125 181 55 69 216 122 126 212 185 189 212 185 189 212 185 189 216 122 126
++216 122 126 224 65 75 223 122 101 246 122 125 212 122 83 224 65 75 181 55 69 143 103 96
++122 133 132 141 138 138 141 132 131 141 138 138 173 167 157 212 185 189 240 208 188 238 233 218
++238 233 218 240 208 188 215 195 173 215 195 173 203 196 201 182 181 190 163 148 159 211 221 218
++210 221 240 210 221 240 210 221 240 210 221 240 210 221 240 229 221 240 210 221 240 229 221 240
++221 241 240 221 241 240 229 221 240 221 241 240 229 221 240 229 221 240 229 221 240 221 241 240
++229 221 240 245 235 246 221 241 240 245 235 246 246 248 239 245 235 246 246 248 239 245 235 246
++246 248 239 246 248 239 212 206 189 184 128 126 191 160 135 242 198 157 236 180 161 216 172 134
++216 172 134 236 180 161 215 197 156 236 180 161 216 172 134 184 123 101 184 123 101 216 172 134
++216 172 134 216 172 134 242 198 175 210 180 161 210 180 161 184 128 126 164 133 127 191 160 135
++191 160 135 164 145 137 123 109 109 114 99 97 103 106 97 99 96 86 99 96 86 141 128 110
++173 167 157 164 133 127 114 99 97 103 106 97 123 109 109 123 109 109 123 133 112 122 113 129
++123 133 112 123 109 109 99 96 86 57 59 55 46 47 45 45 39 35 39 43 42 39 43 42
++87 76 74 128 104 97 134 98 86 135 123 86 137 117 96 114 99 97 87 76 74 58 53 60
++56 54 51 56 54 51 58 53 60 56 54 51 46 47 45 56 54 51 46 47 55 46 47 45
++46 47 45 58 61 60 61 60 67 68 68 60 75 64 67 104 74 73 104 74 73 75 64 67
++64 57 60 68 68 60 75 64 67 71 81 67 75 64 67 64 57 60 46 47 45 46 47 45
++46 47 55 46 47 45 45 49 35 61 46 51 73 50 50 74 57 60 99 61 48 74 57 60
++104 74 73 103 81 83 134 98 86 134 98 86 103 81 83 99 61 48 99 61 48 99 36 46
++133 65 47 99 61 48 133 28 45 133 65 47 99 61 48 99 61 48 74 57 60 104 74 73
++
++215 195 173 210 180 161 165 137 101 105 79 65 105 79 65 99 79 59 99 61 48 88 79 65
++99 79 59 143 103 96 191 160 135 210 180 161 240 189 188 215 195 173 229 200 201 210 180 161
++191 160 135 114 99 97 86 83 83 104 108 124 157 164 157 182 181 190 210 216 207 229 200 201
++189 200 189 191 160 135 164 145 137 210 180 161 194 181 189 210 180 161 164 133 127 137 117 96
++165 137 101 191 160 135 210 180 161 191 160 135 164 145 137 141 128 110 114 99 97 99 85 89
++83 103 97 83 103 97 99 85 89 68 74 109 87 76 74 87 76 74 104 74 73 104 74 73
++104 74 73 87 76 74 75 64 67 114 99 97 141 108 110 164 133 127 184 128 126 164 133 127
++165 108 102 133 23 15 154 14 17 133 23 15 154 14 17 159 26 46 133 23 15 133 28 45
++100 41 14 100 10 13 133 23 15 100 10 13 100 10 13 100 10 13 99 36 46 100 10 13
++100 10 13 100 10 13 99 36 46 100 10 13 100 10 13 133 28 45 133 23 15 159 26 46
++154 59 17 154 14 17 159 26 46 159 26 46 175 13 17 159 26 46 159 26 46 175 13 17
++181 55 69 165 108 102 96 81 123 91 128 178 96 81 123 133 78 94 159 26 46 181 55 69
++212 122 83 165 137 101 161 121 76 68 50 20 49 43 41 56 54 51 64 57 60 68 68 60
++44 55 41 45 39 35 99 79 28 161 121 76 202 181 82 172 173 110 202 181 82 165 137 101
++202 181 82 203 180 109 235 213 109 235 213 109 239 232 157 239 232 157 239 232 157 239 232 157
++239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 235 213 109
++235 213 109 99 79 28 41 50 16 68 72 23 68 69 47 68 72 23 118 123 77 202 181 82
++239 232 157 235 213 109 235 213 109 235 213 109 113 97 36 134 98 86 113 97 77 134 98 86
++134 98 86 134 98 86 113 97 77 87 76 74 68 68 60 75 83 72 103 106 97 123 109 109
++114 121 97 103 106 97 114 99 97 165 108 102 184 128 126 191 160 135 210 180 161 212 185 189
++206 156 159 216 122 126 224 65 75 216 122 126 216 122 126 216 122 126 216 122 126 223 122 101
++224 65 75 246 122 125 224 65 75 224 65 75 224 65 75 224 65 75 165 108 102 133 78 94
++112 124 124 122 133 132 122 113 129 123 109 109 141 132 131 173 167 157 215 195 173 245 232 231
++238 233 218 240 189 188 215 195 173 173 175 176 173 183 156 143 146 150 173 175 176 188 196 234
++210 221 240 188 196 234 210 221 240 211 221 218 229 221 240 211 221 218 238 233 218 229 221 240
++210 221 240 245 235 246 221 241 240 245 232 231 245 232 231 229 221 240 238 233 218 229 221 240
++246 248 239 221 241 240 245 235 246 245 235 246 246 248 239 245 235 246 246 248 239 245 235 246
++246 248 239 246 248 239 245 232 231 242 198 175 242 198 157 215 195 173 210 180 161 216 172 134
++216 172 134 215 197 156 216 172 134 236 180 161 216 172 134 216 172 134 216 172 134 236 180 161
++236 180 161 191 160 135 242 198 175 240 189 188 215 195 173 191 160 135 141 128 110 191 160 135
++206 156 159 164 145 137 137 117 96 123 133 112 123 133 112 114 99 97 114 99 97 164 133 127
++163 158 149 113 97 77 103 106 97 123 133 112 123 133 112 141 132 131 123 133 112 141 132 131
++123 109 109 123 109 109 99 85 89 56 54 51 49 43 41 49 43 41 49 43 41 46 47 45
++99 96 86 123 109 109 141 128 110 164 145 137 123 133 112 86 83 83 58 53 60 58 53 60
++58 53 60 57 59 55 56 54 51 46 47 55 46 47 45 46 47 55 46 47 45 46 47 55
++58 53 60 68 75 77 68 67 72 68 68 60 75 64 67 75 64 67 75 64 67 71 59 54
++57 59 55 61 60 67 68 67 72 61 60 67 58 61 60 58 61 60 58 53 60 46 47 55
++46 47 55 46 47 55 49 43 41 61 46 51 71 59 54 73 50 50 68 50 43 73 50 50
++104 74 73 104 74 73 104 74 73 113 97 77 99 61 48 74 57 60 73 50 50 99 61 48
++99 61 48 133 65 47 133 65 47 99 61 48 99 36 46 73 50 50 74 57 60 99 79 59
++
++191 160 135 137 117 96 113 97 77 105 79 65 105 79 65 105 79 65 105 79 65 104 74 73
++99 61 48 137 117 96 191 160 135 210 180 161 212 206 189 229 200 201 212 185 189 188 172 163
++141 132 131 103 106 97 86 83 83 83 103 97 143 146 150 157 164 157 173 175 176 187 177 178
++143 146 150 103 106 97 114 99 97 141 108 110 141 128 110 123 109 109 114 99 97 164 133 127
++188 172 163 236 180 161 236 180 161 236 180 161 191 160 135 164 133 127 99 96 86 86 83 83
++96 81 123 86 83 83 86 83 83 86 83 83 87 76 74 87 76 74 104 74 73 133 69 69
++103 81 83 104 74 73 87 76 74 114 99 97 141 108 110 143 103 96 143 103 96 134 98 86
++105 79 65 133 28 45 133 23 15 133 28 45 100 10 13 133 23 15 100 10 13 68 24 14
++133 69 69 143 103 96 164 133 127 184 128 126 141 108 110 114 99 97 128 104 97 128 104 97
++134 98 86 99 61 48 99 36 46 68 33 37 68 33 37 68 24 14 68 24 14 100 10 13
++133 23 15 133 28 45 133 23 15 133 23 15 159 26 46 159 26 46 159 26 46 159 26 46
++141 108 110 104 108 124 91 128 178 104 108 124 141 132 131 141 138 138 164 145 120 165 108 102
++181 55 69 181 55 69 159 63 71 133 69 69 71 82 60 99 96 86 123 109 109 103 106 97
++68 69 55 41 28 14 118 123 77 202 181 82 235 213 109 235 213 109 235 213 109 235 213 109
++235 213 109 235 213 109 235 213 109 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157
++239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 203 180 109 202 181 82 68 50 20
++68 72 23 45 49 35 39 37 42 39 37 42 27 32 26 41 33 22 41 28 14 68 50 20
++202 181 82 235 213 109 239 232 157 235 213 109 212 122 83 191 160 135 184 123 101 216 122 126
++184 128 126 184 123 101 143 103 96 86 83 83 68 68 60 75 64 67 75 83 72 103 106 97
++112 104 120 99 96 86 128 104 97 164 145 120 206 156 159 210 180 161 236 180 161 215 195 173
++206 156 159 206 156 159 165 108 102 224 65 75 246 122 125 224 65 75 246 122 125 224 65 75
++224 65 75 246 122 125 224 65 75 246 122 125 246 122 125 224 65 75 165 108 102 128 104 97
++123 109 109 122 113 129 123 109 109 103 106 97 141 128 110 163 158 149 210 180 161 240 208 188
++238 233 218 229 200 201 215 195 173 188 172 163 141 154 138 123 133 112 203 196 201 188 196 234
++210 221 240 210 221 240 211 221 218 211 221 218 229 221 240 211 221 218 210 221 240 229 221 240
++221 241 240 229 221 240 245 235 246 221 241 240 245 235 246 221 241 240 229 221 240 221 241 240
++245 232 231 245 232 231 221 241 240 245 235 246 221 241 240 246 248 239 245 235 246 246 248 239
++246 248 239 245 235 246 246 248 239 215 195 173 210 180 161 216 172 134 216 172 134 216 172 134
++216 172 134 191 160 135 216 172 134 216 172 134 216 172 134 184 123 101 216 172 134 216 172 134
++228 160 135 191 160 135 236 180 161 215 195 173 210 180 161 165 108 102 113 97 77 184 128 126
++184 128 126 164 133 127 141 128 110 141 128 110 114 99 97 103 81 83 104 88 73 137 117 96
++137 117 96 88 79 65 123 109 109 122 113 129 141 132 131 141 132 131 141 115 130 141 115 130
++123 133 112 123 109 109 99 96 86 75 64 67 58 53 60 56 54 51 71 59 54 57 45 51
++83 103 97 103 106 97 141 132 131 122 113 129 86 83 83 58 61 60 56 54 51 56 54 51
++64 57 60 56 54 51 46 47 55 56 54 51 46 47 45 46 47 55 46 47 55 58 53 60
++61 60 67 68 67 72 75 64 67 61 60 67 58 53 60 58 61 60 56 54 51 57 45 51
++61 60 67 61 60 67 61 60 67 61 60 67 61 60 67 45 62 74 58 53 60 58 53 60
++46 47 55 49 40 56 57 45 51 56 54 51 68 50 43 56 54 51 57 45 51 58 53 60
++74 57 60 75 64 67 99 79 59 74 57 60 64 57 60 58 53 60 58 53 60 73 50 50
++133 65 47 133 28 45 133 65 47 99 61 48 99 61 48 73 50 50 68 50 43 74 57 60
++
++141 128 110 128 104 97 113 97 77 104 88 73 105 79 65 104 88 73 113 97 77 104 74 73
++88 79 65 104 74 73 164 133 127 188 189 175 203 196 201 212 206 189 203 196 201 188 189 175
++163 148 159 123 109 109 86 83 83 86 83 83 104 108 124 112 104 120 122 133 132 122 133 132
++103 106 97 75 64 67 75 83 72 68 67 72 87 76 74 99 96 86 123 109 109 164 145 137
++188 177 159 215 195 173 242 198 175 215 195 173 210 180 161 164 145 120 123 109 109 86 83 83
++75 83 72 86 83 83 86 83 83 86 83 83 86 83 83 87 76 74 104 74 73 103 81 83
++103 81 83 87 76 74 86 83 83 141 128 110 128 104 97 104 74 73 99 61 48 99 61 48
++99 61 48 100 41 14 133 28 45 159 26 46 133 23 15 100 10 13 100 10 13 164 145 137
++238 233 218 240 208 188 242 198 157 242 198 175 194 181 189 173 175 176 173 167 157 191 160 135
++210 180 161 215 195 173 166 181 211 131 128 178 91 128 178 141 115 130 114 99 97 73 50 50
++39 14 11 99 36 46 154 14 17 133 23 15 133 23 15 133 23 15 159 26 46 133 28 45
++114 99 97 68 74 109 104 108 124 194 181 189 99 85 89 68 74 109 104 108 124 133 78 94
++181 55 69 197 60 17 181 55 69 165 108 102 141 139 118 143 146 150 187 177 178 157 164 157
++123 109 109 68 72 23 161 121 76 235 213 109 235 213 109 239 232 157 239 232 157 239 232 157
++239 232 157 239 232 157 239 232 157 239 232 157 235 213 109 239 232 157 239 232 157 239 232 157
++239 232 157 239 232 157 239 232 157 235 213 109 216 210 134 68 72 23 68 69 47 31 42 35
++39 43 42 33 35 35 33 35 35 32 31 35 28 30 29 39 20 27 23 20 27 28 30 29
++45 49 35 135 123 86 235 213 109 235 213 109 216 172 134 216 172 134 236 180 161 236 180 161
++216 172 134 184 128 126 137 117 96 99 96 86 75 83 72 68 67 72 68 68 60 68 67 72
++71 82 60 86 83 83 134 98 86 184 128 126 231 153 161 236 180 161 212 185 189 236 180 161
++206 156 159 184 128 126 165 108 102 165 108 102 224 65 75 224 65 75 246 122 125 224 65 75
++246 122 125 224 65 75 246 122 125 224 65 75 223 122 101 223 122 101 223 122 101 165 108 102
++184 128 126 191 160 135 164 133 127 165 108 102 164 133 127 191 160 135 188 147 163 212 206 189
++238 233 218 240 208 188 229 200 201 173 167 157 141 138 138 123 133 112 210 221 240 211 221 218
++225 201 230 211 221 218 225 201 230 210 221 240 211 221 218 229 221 240 229 221 240 211 221 218
++229 221 240 238 233 218 221 241 240 245 232 231 245 235 246 245 235 246 246 248 239 245 232 231
++245 235 246 245 232 231 245 232 231 246 248 239 245 232 231 245 235 246 246 248 239 221 241 240
++246 248 239 246 248 239 246 248 239 245 232 231 188 177 159 216 172 134 191 160 135 216 172 134
++216 172 134 216 172 134 191 160 135 191 160 135 184 123 101 228 160 135 228 160 135 236 180 161
++236 180 161 216 172 134 210 180 161 191 160 135 164 133 127 103 81 83 99 61 48 114 99 97
++164 133 127 141 115 130 141 132 131 141 132 131 103 106 97 87 76 74 88 79 65 68 69 55
++87 76 74 87 76 74 103 106 97 141 132 131 141 132 131 123 133 112 123 133 112 123 109 109
++122 113 129 123 109 109 99 96 86 87 76 74 75 64 67 71 59 54 57 59 55 56 54 51
++75 64 67 103 106 97 112 104 120 75 83 72 57 59 55 58 53 60 56 54 51 58 53 60
++57 59 55 57 59 55 56 54 51 56 54 51 46 47 45 58 53 60 58 53 60 58 61 60
++58 53 60 58 61 60 58 53 60 56 54 51 46 47 45 46 47 45 56 54 51 57 59 55
++58 53 60 58 53 60 46 47 55 61 60 67 45 62 74 58 53 60 45 62 74 58 53 60
++46 47 55 46 47 45 46 47 55 56 54 51 57 45 51 57 45 51 61 46 51 56 54 51
++57 59 55 74 57 60 74 57 60 74 57 60 61 46 51 57 45 51 57 45 51 73 50 50
++99 61 48 99 61 48 99 61 48 99 36 46 49 43 41 57 45 51 57 45 51 56 54 51
++
++141 128 110 128 104 97 113 97 77 113 97 77 113 97 77 134 98 86 134 98 86 103 81 83
++88 79 65 88 79 65 141 108 110 163 158 149 173 175 176 203 196 201 189 200 189 173 175 176
++157 164 157 112 124 124 86 83 83 86 83 83 103 106 97 112 104 120 123 133 112 122 113 129
++103 106 97 86 83 83 75 64 67 68 68 60 75 83 72 103 106 97 123 133 112 141 154 138
++164 145 137 191 160 135 210 180 161 210 180 161 210 180 161 191 160 135 137 117 96 128 104 97
++99 96 86 99 85 89 99 85 89 99 85 89 86 83 83 103 81 83 103 81 83 103 81 83
++103 81 83 86 83 83 86 83 83 103 81 83 87 76 74 73 50 50 68 33 37 68 33 37
++73 50 50 68 33 37 99 36 46 99 36 46 133 78 94 104 74 73 123 109 109 212 185 189
++212 185 189 240 189 188 215 195 173 210 180 161 173 175 176 143 151 181 141 132 131 141 154 138
++191 160 135 173 175 176 143 151 181 131 128 178 91 128 178 141 128 110 141 128 110 165 137 101
++113 97 77 100 41 14 100 10 13 99 36 46 133 11 15 133 28 45 133 23 15 133 23 15
++99 61 48 68 74 109 96 81 123 96 81 123 163 148 159 112 104 120 123 109 109 159 63 71
++175 13 17 159 26 46 197 60 17 181 55 69 165 108 102 188 189 180 189 200 189 203 196 201
++173 175 176 99 96 86 197 180 35 235 213 109 239 232 157 239 232 157 239 232 157 239 232 157
++239 232 157 239 232 157 235 213 109 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157
++235 213 109 235 213 109 235 213 109 162 123 29 99 79 28 19 34 14 27 32 26 27 32 26
++28 30 29 28 30 29 28 30 29 28 30 29 28 30 29 23 19 15 28 30 29 20 28 24
++23 19 15 68 50 20 165 137 101 235 170 109 216 172 134 236 180 161 236 180 161 236 180 161
++228 160 135 164 145 120 134 98 86 86 83 83 86 83 83 68 67 72 68 68 60 68 68 60
++68 68 60 75 64 67 128 104 97 191 160 135 206 156 159 210 180 161 236 180 161 191 160 135
++164 133 127 128 104 97 134 98 86 133 78 94 184 123 101 224 65 75 224 65 75 224 65 75
++224 65 75 246 122 125 224 65 75 223 122 101 224 65 75 223 122 101 216 122 126 228 160 135
++206 156 159 206 156 159 228 160 135 191 160 135 191 160 135 191 160 135 188 177 159 229 200 201
++240 208 188 240 208 188 212 206 189 188 177 159 141 132 131 163 158 149 188 196 234 188 196 234
++211 221 218 210 221 240 211 221 218 211 221 218 229 221 240 221 241 240 210 221 240 229 221 240
++221 241 240 229 221 240 229 221 240 229 221 240 221 241 240 245 235 246 221 241 240 245 232 231
++221 241 240 245 232 231 221 241 240 245 232 231 221 241 240 246 248 239 246 248 239 245 235 246
++245 235 246 246 248 239 246 248 239 245 232 231 191 160 135 191 160 135 191 160 135 206 156 159
++216 172 134 191 160 135 216 172 134 191 160 135 165 137 101 184 128 126 164 145 120 165 108 102
++210 180 161 164 133 127 164 133 127 141 108 110 114 99 97 88 79 65 71 59 54 74 57 60
++114 99 97 141 128 110 141 138 138 123 109 109 99 96 86 74 57 60 68 64 51 56 54 51
++68 64 51 75 64 67 99 96 86 122 113 129 123 133 112 141 115 130 122 113 129 123 133 112
++141 128 110 123 109 109 114 99 97 86 83 83 75 64 67 71 59 54 64 57 60 64 57 60
++64 57 60 68 67 72 87 76 74 68 68 60 68 64 51 64 57 60 57 59 55 56 54 51
++56 54 51 58 53 60 56 54 51 56 54 51 46 47 55 58 53 60 58 53 60 58 61 60
++57 59 55 46 47 55 46 47 45 56 54 51 56 54 51 56 54 51 46 47 45 58 61 60
++46 47 55 58 53 60 45 62 74 58 53 60 58 53 60 45 62 74 58 53 60 46 47 55
++46 47 55 46 47 55 46 47 45 57 45 51 71 59 54 75 64 67 88 79 65 74 57 60
++56 54 51 56 54 51 56 54 51 49 40 56 57 45 51 46 47 45 57 45 51 57 45 51
++73 50 50 99 36 46 73 50 50 73 50 50 57 45 51 56 54 51 49 43 41 64 57 60
++
++141 128 110 128 104 97 113 97 77 114 99 97 134 98 86 128 104 97 128 104 97 99 96 86
++113 97 77 134 98 86 184 128 126 164 145 137 173 175 176 182 181 190 187 177 178 157 164 157
++163 148 159 141 132 131 123 109 109 68 75 77 83 103 97 112 104 120 141 138 138 141 138 138
++123 133 112 99 85 89 71 81 67 68 68 60 87 76 74 112 104 120 122 113 129 123 133 112
++128 104 97 137 117 96 164 145 120 191 160 135 188 172 163 191 160 135 191 160 135 184 128 126
++165 137 101 123 109 109 99 96 86 86 83 83 99 85 89 86 83 83 86 83 83 103 81 83
++87 76 74 99 85 89 87 76 74 86 83 83 87 76 74 74 57 60 68 64 51 68 50 43
++71 59 54 75 64 67 123 109 109 163 148 159 157 164 157 143 151 181 182 181 190 173 175 176
++194 181 189 194 181 189 206 156 159 163 148 159 163 148 159 143 146 150 122 133 132 163 148 159
++163 148 159 163 148 159 131 128 178 91 128 178 122 113 129 164 145 120 188 177 159 191 160 135
++191 160 135 164 133 127 74 57 60 68 24 14 100 10 13 100 41 14 159 26 46 133 28 45
++99 36 46 68 75 77 68 75 77 58 61 60 122 113 129 114 99 97 133 69 69 159 26 46
++159 26 46 175 13 17 181 55 69 159 26 46 181 55 69 216 122 126 246 248 239 221 241 240
++189 200 189 164 145 120 172 173 110 235 213 109 239 232 157 235 213 109 239 232 157 239 232 157
++239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157
++202 181 82 113 97 36 235 213 109 137 139 97 68 50 20 39 37 42 27 32 26 21 19 21
++21 19 21 21 19 21 20 28 24 23 20 27 27 32 26 23 20 27 28 30 29 20 20 20
++20 20 20 23 19 15 104 88 73 165 137 101 191 160 135 216 172 134 236 180 161 236 180 161
++216 172 134 141 128 110 113 97 77 86 83 83 86 83 83 71 81 67 64 57 60 57 59 55
++68 68 60 71 59 54 113 97 77 164 145 137 228 160 135 236 180 161 210 180 161 191 160 135
++165 108 102 104 88 73 86 83 83 114 99 97 143 103 96 165 108 102 224 65 75 246 122 125
++246 122 125 224 65 75 246 122 125 223 122 101 246 122 125 246 122 125 228 160 135 206 156 159
++236 180 161 236 180 161 236 180 161 228 160 135 191 160 135 191 160 135 216 172 134 240 208 188
++240 208 188 238 233 218 240 189 188 173 167 157 141 132 131 188 191 205 211 221 218 210 221 240
++211 221 218 225 201 230 210 221 240 211 221 218 229 221 240 211 221 218 229 221 240 211 221 218
++229 221 240 245 232 231 221 241 240 245 232 231 245 235 246 221 241 240 245 235 246 245 235 246
++245 232 231 245 232 231 221 241 240 245 232 231 245 235 246 246 248 239 246 248 239 246 248 239
++245 235 246 246 248 239 246 248 239 245 232 231 164 145 120 137 117 96 164 145 120 191 160 135
++216 172 134 210 180 161 216 172 134 191 160 135 191 160 135 216 172 134 206 156 159 165 137 101
++143 103 96 141 128 110 114 99 97 99 96 86 86 83 83 68 64 51 68 64 51 68 68 60
++103 106 97 123 133 112 141 132 131 123 109 109 86 83 83 71 59 54 58 61 60 56 54 51
++57 59 55 64 57 60 99 96 86 114 99 97 123 109 109 123 109 109 123 109 109 123 133 112
++122 113 129 123 109 109 103 106 97 87 76 74 68 68 60 64 57 60 64 57 60 64 57 60
++57 59 55 71 59 54 75 64 67 87 76 74 86 83 83 75 83 72 68 68 60 58 53 60
++56 54 51 56 54 51 46 47 55 56 54 51 56 54 51 58 53 60 46 47 55 58 61 60
++58 53 60 73 50 50 61 46 51 56 54 51 57 45 51 46 47 45 57 59 55 58 53 60
++45 62 74 58 53 60 58 61 60 46 47 55 45 62 74 58 53 60 58 53 60 45 62 74
++49 40 56 46 47 55 58 53 60 74 57 60 104 74 73 104 74 73 133 69 69 87 76 74
++73 50 50 61 46 51 57 45 51 46 47 45 46 47 55 46 47 45 56 54 51 57 45 51
++56 54 51 61 46 51 61 46 51 57 45 51 57 45 51 46 47 45 57 45 51 64 57 60
++
++141 128 110 128 104 97 128 104 97 128 104 97 137 117 96 128 104 97 128 104 97 128 104 97
++159 63 71 212 122 83 216 122 126 184 128 126 164 145 137 164 142 149 188 147 163 163 158 149
++173 167 157 164 145 137 141 115 130 99 85 89 68 75 77 99 96 86 122 133 132 141 138 138
++122 113 129 75 83 72 68 67 72 68 68 60 68 67 72 103 106 97 123 109 109 103 106 97
++99 96 86 86 83 83 164 133 127 210 180 161 242 198 175 240 189 188 215 195 173 242 198 175
++206 156 159 141 138 138 114 99 97 86 83 83 99 85 89 99 85 89 86 83 83 86 83 83
++86 83 83 86 83 83 99 85 89 86 83 83 99 96 86 88 79 65 88 79 65 68 50 43
++73 50 50 88 79 65 112 124 124 157 164 157 143 151 181 173 175 176 143 151 181 182 181 190
++182 181 190 182 181 190 163 147 193 182 181 190 163 147 193 173 175 176 166 181 211 157 164 157
++143 146 150 122 113 129 122 113 129 112 124 124 164 145 120 210 180 161 242 198 175 242 198 175
++215 195 173 191 160 135 164 133 127 103 81 83 68 33 37 99 36 46 133 23 15 133 11 15
++133 65 47 112 104 120 86 83 83 104 88 73 86 83 83 104 74 73 133 28 45 175 13 17
++159 26 46 197 60 17 159 26 46 181 55 69 181 55 69 181 55 69 165 108 102 206 156 159
++210 216 207 173 183 156 216 210 134 235 213 109 239 232 157 239 232 157 239 232 157 239 232 157
++239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 235 213 109 239 232 157
++117 142 36 68 72 23 203 180 109 137 139 97 41 28 14 23 19 15 23 19 15 21 19 21
++27 32 26 28 30 29 23 20 27 27 32 26 23 20 27 28 30 29 28 30 29 28 30 29
++20 28 24 23 19 15 49 43 41 68 69 47 105 79 65 165 108 102 191 160 135 191 160 135
++184 128 126 128 104 97 99 85 89 99 85 89 86 83 83 87 76 74 68 68 60 68 68 60
++68 68 60 71 59 54 104 74 73 141 128 110 184 128 126 191 160 135 206 156 159 191 160 135
++165 108 102 104 88 73 87 76 74 99 96 86 114 99 97 143 103 96 165 108 102 224 65 75
++224 65 75 246 122 125 223 122 101 246 122 125 228 160 135 216 172 134 216 172 134 228 160 135
++236 180 161 236 180 161 231 153 161 191 160 135 191 160 135 191 160 135 210 180 161 242 198 175
++240 208 188 242 198 175 188 172 163 163 148 159 173 175 176 188 191 205 203 196 201 188 196 234
++210 221 240 211 221 218 211 221 218 211 221 218 210 221 240 229 221 240 221 241 240 229 221 240
++221 241 240 229 221 240 245 232 231 229 221 240 221 241 240 245 232 231 245 232 231 221 241 240
++238 233 218 229 221 240 238 233 218 245 232 231 221 241 240 245 235 246 246 248 239 245 235 246
++221 241 240 246 248 239 246 248 239 245 232 231 191 160 135 165 137 101 161 121 76 184 128 126
++191 160 135 216 172 134 216 172 134 184 128 126 191 160 135 184 128 126 165 108 102 103 81 83
++123 109 109 103 106 97 99 96 86 99 96 86 88 79 65 71 59 54 71 59 54 75 64 67
++99 85 89 123 109 109 141 132 131 141 128 110 99 96 86 71 59 54 56 54 51 46 47 55
++57 59 55 68 68 60 68 67 72 86 83 83 99 85 89 83 103 97 114 99 97 123 133 112
++123 109 109 123 109 109 103 106 97 87 76 74 71 59 54 68 68 60 64 57 60 64 57 60
++75 64 67 75 83 72 86 83 83 104 88 73 86 83 83 87 76 74 87 76 74 57 59 55
++58 53 60 57 59 55 56 54 51 56 54 51 46 47 55 58 53 60 58 61 60 64 57 60
++74 57 60 88 79 65 88 79 65 71 59 54 56 54 51 56 54 51 58 61 60 46 47 55
++57 59 55 46 47 55 58 53 60 45 62 74 58 53 60 45 62 74 58 53 60 46 47 55
++46 47 55 46 47 55 74 57 60 104 74 73 133 78 94 113 97 77 133 78 94 104 74 73
++74 57 60 56 54 51 46 47 45 46 47 55 46 47 45 56 54 51 46 47 55 56 54 51
++57 45 51 58 53 60 46 47 55 46 47 45 56 54 51 46 47 45 57 45 51 58 53 60
++
++173 167 157 141 128 110 128 104 97 128 104 97 137 117 96 123 109 109 123 109 109 143 103 96
++223 122 101 224 65 75 216 122 126 216 122 126 191 160 135 206 156 159 206 156 159 206 156 159
++231 153 161 184 128 126 165 108 102 103 81 83 68 67 72 86 83 83 112 104 120 123 133 112
++103 106 97 75 83 72 75 64 67 68 68 60 71 81 67 99 96 86 103 106 97 103 106 97
++83 103 97 114 99 97 164 145 137 236 180 161 240 208 188 240 208 188 240 208 188 240 208 188
++240 208 188 188 172 163 141 128 110 99 85 89 83 103 97 86 83 83 99 85 89 86 83 83
++99 85 89 86 83 83 86 83 83 103 81 83 104 88 73 104 88 73 104 88 73 99 79 59
++105 79 65 105 79 65 137 117 96 141 132 131 163 148 159 163 147 193 173 175 176 182 181 190
++188 191 205 188 191 205 188 196 234 188 191 205 188 196 234 188 191 205 188 191 205 173 175 176
++131 128 178 123 109 109 112 124 124 141 138 138 210 180 161 242 198 175 240 208 188 240 208 188
++240 208 188 240 189 188 188 172 163 164 133 127 123 109 109 68 24 14 133 28 45 133 28 45
++133 23 15 133 28 45 99 36 46 133 65 47 114 99 97 104 74 73 159 26 46 159 26 46
++181 55 69 181 55 69 181 55 69 197 60 17 159 26 46 175 13 17 159 26 46 181 55 69
++184 123 101 206 156 159 216 210 134 235 213 109 239 232 157 239 232 157 239 232 157 239 232 157
++239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 235 213 109 239 232 157
++202 181 82 161 121 76 99 79 28 113 97 36 45 49 35 28 30 29 27 32 26 45 39 35
++28 30 29 28 30 29 23 20 27 27 32 26 28 30 29 23 20 27 28 30 29 28 30 29
++21 19 21 21 19 15 17 19 20 23 19 15 68 50 43 137 117 96 191 160 135 184 128 126
++137 117 96 99 85 89 83 103 97 86 83 83 99 85 89 86 83 83 75 83 72 68 68 60
++64 57 60 88 79 65 104 88 73 134 98 86 143 103 96 161 121 76 143 103 96 165 137 101
++141 108 110 103 81 83 68 68 60 86 83 83 123 109 109 123 109 109 134 98 86 165 108 102
++223 122 101 228 160 135 236 180 161 242 198 157 228 160 135 216 172 134 191 160 135 206 156 159
++231 153 161 228 160 135 228 160 135 184 123 101 203 180 109 203 180 109 216 210 134 242 198 157
++210 180 161 210 180 161 188 172 163 173 167 157 173 188 216 188 196 234 210 216 207 211 221 218
++225 201 230 211 221 218 225 201 230 210 221 240 229 221 240 211 221 218 229 221 240 211 221 218
++229 221 240 229 221 240 221 241 240 238 233 218 229 221 240 245 232 231 221 241 240 245 232 231
++245 232 231 238 233 218 221 241 240 229 221 240 245 232 231 246 248 239 246 248 239 245 235 246
++221 241 240 245 235 246 211 221 218 210 216 207 210 180 161 164 133 127 141 128 110 135 123 86
++165 137 101 191 160 135 165 137 101 165 137 101 143 103 96 134 98 86 113 97 77 99 96 86
++99 96 86 103 106 97 103 106 97 86 83 83 75 64 67 74 57 60 68 68 60 71 59 54
++87 76 74 103 106 97 141 132 131 141 108 110 99 85 89 87 76 74 74 57 60 73 50 50
++56 54 51 64 57 60 68 68 60 68 67 72 68 67 72 87 76 74 99 85 89 103 106 97
++103 106 97 103 106 97 99 85 89 68 68 60 58 61 60 64 57 60 61 60 67 64 57 60
++75 64 67 86 83 83 99 96 86 99 96 86 113 97 77 99 96 86 88 79 65 68 68 60
++57 59 55 46 47 55 46 47 55 56 54 51 56 54 51 46 47 55 58 61 60 68 68 60
++104 74 73 104 74 73 99 79 59 74 57 60 71 59 54 58 53 60 58 53 60 57 59 55
++45 62 74 58 53 60 46 47 55 58 53 60 46 47 55 58 53 60 46 47 55 46 47 55
++46 47 55 56 54 51 75 64 67 104 74 73 104 88 73 103 81 83 104 74 73 87 76 74
++74 57 60 61 46 51 57 45 51 46 47 45 57 45 51 46 47 55 56 54 51 57 45 51
++57 45 51 57 45 51 46 47 45 46 47 55 57 45 51 57 45 51 57 45 51 56 54 51
++
++188 189 175 163 158 149 137 117 96 114 99 97 128 104 97 128 104 97 114 99 97 112 104 120
++224 65 75 223 122 101 216 122 126 216 122 126 206 156 159 236 180 161 236 180 161 236 180 161
++228 160 135 206 156 159 165 108 102 75 64 67 56 54 51 58 61 60 68 75 77 99 96 86
++86 83 83 58 61 60 64 57 60 68 68 60 61 60 67 75 83 72 86 83 83 86 83 83
++75 83 72 123 109 109 164 145 137 210 180 161 242 198 175 240 208 188 240 208 188 240 208 188
++229 200 201 187 177 178 141 138 138 112 104 120 99 85 89 86 83 83 99 96 86 86 83 83
++86 83 83 99 85 89 86 83 83 104 88 73 114 99 97 137 117 96 184 128 126 191 160 135
++191 160 135 184 123 101 137 117 96 128 104 97 123 109 109 122 133 132 143 146 150 143 151 181
++173 175 176 182 181 190 188 191 205 188 191 205 203 196 201 188 191 205 182 181 190 143 151 181
++112 124 124 103 106 97 137 117 96 164 145 120 210 180 161 240 208 188 240 208 188 240 208 188
++235 233 206 240 208 188 215 195 173 163 158 149 141 115 130 103 81 83 99 36 46 133 23 15
++133 23 15 133 28 45 133 28 45 133 23 15 133 69 69 133 28 45 154 59 17 175 13 17
++181 55 69 159 26 46 159 26 46 159 26 46 181 55 69 159 26 46 181 55 69 175 13 17
++181 55 69 159 26 46 235 170 109 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157
++239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 235 213 109 235 213 109
++202 181 82 216 210 134 68 69 47 27 32 26 21 29 29 28 26 35 27 32 26 35 34 35
++35 34 35 28 30 29 27 32 26 23 20 27 28 30 29 28 30 29 23 20 27 28 30 29
++23 20 27 20 20 20 20 28 24 12 22 12 23 19 15 68 50 43 74 57 60 113 97 77
++99 96 86 99 85 89 99 85 89 99 96 86 99 85 89 99 96 86 86 83 83 87 76 74
++113 97 77 141 132 131 191 160 135 191 160 135 191 160 135 165 137 101 143 103 96 113 97 77
++134 98 86 88 79 65 57 59 55 75 64 67 83 103 97 114 121 97 114 99 97 134 98 86
++184 123 101 228 160 135 216 172 134 242 198 157 215 197 156 203 180 109 203 180 109 184 123 101
++191 160 135 184 128 126 184 128 126 202 181 82 235 170 109 242 198 157 235 213 109 216 210 134
++203 180 109 191 160 135 187 177 178 189 200 189 188 191 205 188 196 234 188 191 205 188 196 234
++211 221 218 210 221 240 211 221 218 211 221 218 229 221 240 221 241 240 229 221 240 229 221 240
++221 241 240 238 233 218 229 221 240 229 221 240 245 232 231 221 241 240 238 233 218 221 241 240
++245 232 231 211 221 218 238 233 218 221 241 240 238 233 218 245 235 246 221 241 240 246 248 239
++187 177 178 157 164 157 143 146 150 173 175 176 203 196 201 141 128 110 114 99 97 114 99 97
++128 104 97 141 128 110 164 133 127 165 137 101 184 128 126 134 98 86 74 57 60 86 83 83
++114 121 97 112 104 120 99 96 86 87 76 74 68 68 60 68 64 51 64 57 60 57 59 55
++68 67 72 114 99 97 141 128 110 141 108 110 113 97 77 134 98 86 134 98 86 104 88 73
++71 59 54 58 53 60 58 61 60 64 57 60 61 60 67 61 60 67 68 75 77 86 83 83
++99 85 89 99 96 86 104 88 73 75 64 67 71 59 54 64 57 60 64 57 60 64 57 60
++71 82 60 86 83 83 104 88 73 99 96 86 99 96 86 104 88 73 88 79 65 68 64 51
++56 54 51 56 54 51 56 54 51 46 47 55 58 53 60 58 53 60 56 54 51 73 50 50
++88 79 65 99 61 48 74 57 60 73 50 50 56 54 51 57 59 55 46 47 55 58 53 60
++46 47 55 58 61 60 46 47 55 45 62 74 58 53 60 45 62 74 58 61 60 46 47 55
++56 54 51 74 57 60 103 81 83 103 81 83 99 61 48 75 64 67 99 61 48 74 57 60
++74 57 60 57 59 55 56 54 51 57 45 51 57 45 51 57 45 51 61 46 51 61 46 51
++68 50 43 49 43 41 57 45 51 56 54 51 56 54 51 46 47 55 46 47 45 46 47 45
++
++194 181 189 173 167 157 141 139 118 113 97 77 113 97 77 128 104 97 114 121 97 128 104 97
++165 108 102 165 108 102 216 122 126 231 153 161 236 180 161 236 180 161 240 189 188 240 189 188
++236 180 161 184 128 126 141 108 110 99 61 48 57 45 51 45 49 35 58 61 60 61 60 67
++58 61 60 56 54 51 56 54 51 57 59 55 68 68 60 68 67 72 86 83 83 86 83 83
++86 83 83 99 96 86 141 128 110 216 172 134 236 180 161 242 198 175 242 198 175 240 208 188
++212 185 189 173 175 176 143 146 150 104 108 124 104 108 124 86 83 83 86 83 83 86 83 83
++99 96 86 86 83 83 99 85 89 99 96 86 137 117 96 191 160 135 236 180 161 236 180 161
++236 180 161 216 172 134 184 128 126 141 128 110 114 99 97 104 108 124 104 108 124 141 138 138
++143 151 181 173 175 176 182 181 190 182 181 190 182 181 190 157 164 157 143 146 150 122 133 132
++112 104 120 103 106 97 123 133 112 164 145 120 236 180 161 242 198 175 240 208 188 240 208 188
++240 208 188 240 208 188 215 195 173 173 167 157 122 113 129 123 109 109 103 81 83 133 28 45
++133 23 15 133 23 15 133 28 45 133 28 45 133 28 45 133 28 45 159 26 46 159 26 46
++181 55 69 181 55 69 181 55 69 197 60 17 175 13 17 181 55 69 175 13 17 181 55 69
++159 26 46 224 65 75 181 55 69 216 210 134 239 232 157 231 233 186 239 232 157 231 233 186
++239 232 157 239 232 157 239 232 157 239 232 157 235 213 109 113 97 36 202 181 82 172 173 110
++117 142 36 118 123 77 41 28 14 27 32 26 21 19 21 28 30 29 28 30 29 28 30 29
++28 30 29 39 28 30 28 30 29 27 32 26 21 19 21 28 30 29 39 28 30 28 30 29
++20 20 20 20 20 20 21 19 15 21 19 15 20 28 24 28 30 29 45 30 35 103 81 83
++114 99 97 99 85 89 99 85 89 83 103 97 103 106 97 99 85 89 86 83 83 114 99 97
++173 167 157 240 189 188 240 208 188 240 208 188 240 189 188 231 153 161 191 160 135 143 103 96
++134 98 86 88 79 65 56 54 51 58 61 60 87 76 74 99 96 86 103 106 97 99 96 86
++165 108 102 216 172 134 216 172 134 242 198 157 235 213 109 216 210 134 235 170 109 203 180 109
++184 123 101 161 121 76 202 181 82 235 170 109 235 213 109 235 213 109 239 232 157 235 213 109
++203 180 109 191 160 135 188 189 175 188 191 205 182 181 190 188 196 234 211 221 218 211 221 218
++211 221 218 203 196 201 210 221 240 229 221 240 221 241 240 229 221 240 211 221 218 229 221 240
++238 233 218 229 221 240 211 221 218 238 233 218 221 241 240 245 232 231 229 221 240 238 233 218
++245 235 246 211 221 218 245 232 231 211 221 218 245 232 231 211 221 218 246 248 239 245 232 231
++173 175 176 189 200 189 194 181 189 238 233 218 211 221 218 245 232 231 203 196 201 99 96 86
++103 106 97 114 99 97 123 109 109 137 117 96 137 117 96 88 79 65 68 68 60 86 83 83
++123 109 109 103 106 97 103 106 97 75 83 72 68 68 60 68 68 60 68 68 60 64 57 60
++87 76 74 99 96 86 114 99 97 114 99 97 114 99 97 164 111 125 165 108 102 143 103 96
++87 76 74 61 46 51 56 54 51 58 53 60 58 61 60 61 60 67 58 61 60 75 64 67
++105 79 65 128 104 97 128 104 97 113 97 77 87 76 74 71 59 54 64 57 60 64 57 60
++75 64 67 88 79 65 86 83 83 99 96 86 88 79 65 75 83 72 71 82 60 74 57 60
++57 59 55 56 54 51 46 47 45 56 54 51 58 53 60 58 53 60 56 54 51 61 46 51
++75 64 67 99 79 59 99 61 48 74 57 60 71 59 54 64 57 60 58 53 60 46 47 55
++58 61 60 46 47 55 58 53 60 46 47 55 61 60 67 58 53 60 46 47 55 56 54 51
++56 54 51 75 64 67 99 61 48 74 57 60 74 57 60 99 61 48 75 64 67 104 74 73
++75 64 67 71 59 54 46 47 55 46 47 45 57 45 51 61 46 51 68 50 43 61 46 51
++57 45 51 57 45 51 57 45 51 56 54 51 46 47 45 46 47 45 57 45 51 46 47 45
++
++157 164 157 164 145 137 141 128 110 114 99 97 114 99 97 114 99 97 103 106 97 112 104 120
++133 78 94 164 111 125 164 111 125 188 147 163 240 189 188 236 180 161 240 189 188 236 180 161
++210 180 161 188 147 163 141 108 110 87 76 74 48 36 41 35 34 35 46 47 45 56 54 51
++46 47 45 46 47 45 39 43 42 46 47 45 64 57 60 68 75 77 86 83 83 86 83 83
++86 83 83 99 96 86 141 108 110 188 147 163 236 180 161 236 180 161 236 180 161 215 195 173
++206 156 159 143 151 181 143 146 150 131 128 178 104 108 124 99 85 89 99 96 86 86 83 83
++99 85 89 86 83 83 99 85 89 104 88 73 164 133 127 206 156 159 242 198 157 242 198 175
++242 198 175 236 180 161 216 172 134 191 160 135 141 128 110 123 109 109 104 108 124 112 124 124
++122 113 129 122 133 132 141 138 138 143 146 150 141 138 138 122 113 129 104 108 124 104 108 124
++103 106 97 99 96 86 137 117 96 164 145 120 191 160 135 236 180 161 236 180 161 240 189 188
++242 198 175 215 195 173 210 180 161 164 133 127 112 124 124 122 113 129 123 109 109 104 74 73
++99 36 46 133 11 15 133 23 15 133 23 15 133 28 45 133 28 45 154 14 17 159 26 46
++181 55 69 159 26 46 181 55 69 159 26 46 175 13 17 181 55 69 175 13 17 181 55 69
++175 13 17 181 55 69 175 13 17 159 26 46 235 170 109 231 233 186 231 233 186 239 232 157
++231 233 186 239 232 157 231 233 186 239 232 157 202 181 82 99 79 28 41 50 16 99 61 48
++45 30 35 41 28 14 23 20 27 23 20 27 21 19 21 28 30 29 28 30 29 23 20 27
++27 32 26 27 32 26 23 20 27 28 30 29 27 32 26 28 30 29 20 28 24 23 20 27
++20 28 24 21 19 21 21 19 15 13 14 11 21 19 15 23 20 27 61 46 51 87 76 74
++99 96 86 99 85 89 99 96 86 96 81 123 99 85 89 103 106 97 114 99 97 164 145 137
++229 200 201 240 208 188 240 208 188 240 208 188 242 198 175 242 198 175 216 172 134 191 160 135
++184 128 126 113 97 77 68 69 55 57 59 55 68 67 72 86 83 83 99 96 86 86 83 83
++134 98 86 202 181 82 235 213 109 235 170 109 235 213 109 235 213 109 235 213 109 203 180 109
++191 160 135 184 128 126 202 181 82 235 213 109 235 213 109 239 232 157 235 213 109 235 213 109
++202 181 82 165 137 101 188 189 180 166 181 211 163 147 193 188 191 205 188 196 234 203 196 201
++225 201 230 210 221 240 211 221 218 229 221 240 211 221 218 229 221 240 238 233 218 229 221 240
++211 221 218 229 221 240 229 221 240 211 221 218 229 221 240 211 221 218 238 233 218 211 221 218
++229 221 240 238 233 218 211 221 218 238 233 218 221 241 240 245 232 231 246 248 239 211 221 218
++211 221 218 211 221 218 238 233 218 203 196 201 211 221 218 246 248 239 173 175 176 103 106 97
++83 103 97 99 85 89 83 103 97 99 85 89 103 106 97 99 96 86 86 83 83 99 96 86
++112 104 120 114 121 97 103 106 97 86 83 83 75 64 67 68 68 60 68 68 60 71 59 54
++75 64 67 103 106 97 99 85 89 87 76 74 114 99 97 141 128 110 184 128 126 164 133 127
++113 97 77 68 68 60 46 47 45 56 54 51 57 59 55 58 61 60 57 59 55 105 79 65
++143 103 96 165 137 101 165 137 101 143 103 96 113 97 77 88 79 65 64 57 60 71 59 54
++71 81 67 88 79 65 88 79 65 104 88 73 104 88 73 99 79 59 88 79 65 75 64 67
++64 57 60 46 47 45 56 54 51 56 54 51 56 54 51 46 47 55 46 47 55 61 46 51
++104 74 73 104 74 73 104 74 73 105 79 65 71 59 54 61 46 51 58 53 60 46 47 55
++58 53 60 46 47 55 46 47 55 46 47 55 45 62 74 45 62 74 46 47 55 46 47 55
++57 59 55 68 68 60 68 50 43 73 50 50 75 64 67 104 74 73 104 74 73 104 74 73
++75 64 67 64 57 60 56 54 51 56 54 51 57 45 51 61 46 51 61 46 51 68 50 43
++57 45 51 57 45 51 57 45 51 56 54 51 56 54 51 56 54 51 46 47 45 57 45 51
++
++141 132 131 122 113 129 123 109 109 114 99 97 114 99 97 112 104 120 104 108 124 104 108 124
++122 113 129 122 113 129 141 138 138 163 148 159 206 156 159 236 180 161 231 153 161 210 180 161
++187 177 178 164 142 149 122 113 129 104 74 73 49 40 56 41 38 42 49 43 41 57 45 51
++41 33 22 27 32 26 28 30 29 49 43 41 58 61 60 75 83 72 87 76 74 86 83 83
++86 83 83 99 96 86 141 128 110 206 156 159 242 198 175 240 189 188 236 180 161 236 180 161
++188 147 163 143 151 181 143 151 181 131 128 178 112 124 124 104 108 124 83 103 97 99 85 89
++86 83 83 86 83 83 99 85 89 114 99 97 164 145 120 236 180 161 242 198 175 240 208 188
++240 208 188 242 198 175 242 198 157 228 160 135 164 133 127 141 108 110 112 124 124 112 104 120
++112 124 124 122 113 129 104 108 124 104 108 124 104 108 124 104 108 124 103 106 97 104 108 124
++99 96 86 103 106 97 114 99 97 164 145 120 191 160 135 236 180 161 242 198 157 236 180 161
++236 180 161 191 160 135 141 108 110 114 99 97 112 124 124 112 124 124 122 113 129 114 99 97
++133 28 45 133 28 45 100 10 13 133 23 15 133 28 45 154 14 17 133 28 45 159 26 46
++154 59 17 159 26 46 181 55 69 159 26 46 181 55 69 175 13 17 181 55 69 175 13 17
++181 55 69 175 13 17 181 55 69 181 55 69 212 122 83 235 233 206 239 232 157 231 233 186
++239 232 157 231 233 186 231 233 186 239 232 157 239 232 157 202 181 82 99 79 28 68 72 23
++35 34 35 20 20 20 20 28 24 23 20 27 27 32 26 28 30 29 28 30 29 21 19 21
++28 30 29 21 19 21 27 32 26 27 32 26 23 20 27 27 32 26 21 19 21 28 30 29
++28 30 29 28 30 29 23 20 27 21 19 15 17 19 20 14 14 18 23 19 15 68 50 43
++99 85 89 114 99 97 103 106 97 114 99 97 103 106 97 99 85 89 123 109 109 188 172 163
++240 208 188 235 233 206 240 208 188 240 208 188 240 189 188 242 198 175 240 189 188 231 153 161
++206 156 159 137 117 96 75 83 72 64 57 60 57 45 51 75 64 67 75 64 67 68 68 60
++113 97 77 212 122 83 202 181 82 202 181 82 247 185 70 235 213 109 235 213 109 242 198 157
++215 197 156 216 172 134 235 213 109 235 213 109 239 232 157 235 213 109 235 213 109 235 213 109
++165 137 101 99 79 59 182 181 190 163 147 193 166 181 211 188 196 234 203 196 201 211 221 218
++173 175 176 188 191 205 229 221 240 210 221 240 229 221 240 229 221 240 211 221 218 211 221 218
++229 221 240 238 233 218 211 221 218 238 233 218 229 221 240 238 233 218 211 221 218 245 232 231
++210 216 207 211 221 218 229 221 240 211 221 218 245 232 231 246 248 239 211 221 218 210 216 207
++225 201 230 238 233 218 229 221 240 210 216 207 246 248 239 173 167 157 103 106 97 112 104 120
++99 96 86 96 81 123 103 106 97 96 81 123 104 108 124 123 109 109 114 99 97 99 96 86
++103 106 97 103 106 97 103 106 97 99 96 86 68 75 77 74 57 60 74 57 60 68 64 51
++87 76 74 99 96 86 68 75 77 75 64 67 103 81 83 164 133 127 191 160 135 206 156 159
++164 133 127 103 106 97 57 59 55 46 47 45 56 54 51 56 54 51 71 59 54 137 117 96
++184 128 126 191 160 135 191 160 135 184 128 126 165 137 101 128 104 97 87 76 74 57 59 55
++71 59 54 88 79 65 134 98 86 141 128 110 165 108 102 141 108 110 143 103 96 87 76 74
++56 54 51 56 54 51 56 54 51 56 54 51 56 54 51 46 47 45 46 47 45 61 46 51
++74 57 60 104 74 73 104 74 73 104 74 73 99 61 48 57 59 55 58 53 60 58 53 60
++46 47 55 58 53 60 58 53 60 58 53 60 46 47 55 58 53 60 58 61 60 64 57 60
++74 57 60 57 59 55 71 59 54 74 57 60 99 61 48 87 76 74 104 74 73 75 64 67
++71 59 54 64 57 60 57 45 51 57 45 51 61 46 51 68 50 43 61 46 51 49 43 41
++57 45 51 57 45 51 56 54 51 61 46 51 64 57 60 56 54 51 57 45 51 56 54 51
++
++68 68 60 88 79 65 103 81 83 99 96 86 104 108 124 104 108 124 112 124 124 104 108 124
++104 108 124 122 113 129 141 138 138 164 142 149 188 147 163 188 147 163 188 147 163 164 142 149
++143 146 150 122 113 129 112 104 120 99 85 89 68 75 77 75 64 67 74 57 60 74 57 60
++45 39 35 23 19 15 28 30 29 46 47 45 64 57 60 68 75 77 75 83 72 86 83 83
++86 83 83 103 106 97 141 132 131 188 172 163 215 195 173 236 180 161 240 189 188 215 195 173
++187 177 178 143 151 181 143 151 181 143 151 181 131 128 178 122 113 129 104 108 124 96 81 123
++83 103 97 99 96 86 86 83 83 123 109 109 191 160 135 236 180 161 242 198 175 242 198 175
++242 198 175 242 198 175 236 180 161 216 172 134 164 145 137 123 109 109 112 104 120 112 124 124
++112 124 124 112 124 124 112 124 124 112 104 120 103 106 97 96 81 123 103 106 97 83 103 97
++83 103 97 99 96 86 99 96 86 141 128 110 188 177 159 236 180 161 242 198 175 240 208 188
++236 180 161 191 160 135 137 117 96 114 99 97 112 124 124 122 113 129 122 133 132 112 124 124
++103 81 83 133 28 45 133 28 45 133 23 15 133 28 45 133 23 15 133 23 15 159 26 46
++159 26 46 154 14 17 181 55 69 175 13 17 181 55 69 175 13 17 159 26 46 197 60 17
++159 26 46 197 60 17 159 26 46 175 13 17 159 26 46 133 58 15 100 41 14 242 198 157
++231 233 186 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 172 173 110 68 50 20
++28 30 29 27 32 26 20 28 24 27 32 26 28 30 29 23 20 27 28 30 29 21 19 21
++27 32 26 27 32 26 23 20 27 21 19 21 41 33 22 23 20 27 28 30 29 28 30 29
++20 28 24 23 20 27 23 19 15 14 14 18 17 19 20 21 19 21 28 30 29 75 64 67
++99 96 86 114 99 97 99 85 89 83 103 97 99 85 89 99 85 89 99 96 86 164 142 149
++215 195 173 240 189 188 240 189 188 236 180 161 242 198 175 240 208 188 242 198 175 215 197 156
++206 156 159 137 117 96 86 83 83 75 64 67 46 47 45 49 43 41 73 50 50 68 69 47
++99 79 59 162 123 29 161 121 76 161 121 76 161 121 76 235 170 109 235 213 109 216 210 134
++188 177 159 215 197 156 235 213 109 235 213 109 235 213 109 235 213 109 239 232 157 235 213 109
++161 121 76 141 139 118 182 181 190 166 181 211 188 191 205 210 216 207 188 196 234 188 191 205
++211 221 218 182 181 190 143 146 150 203 196 201 211 221 218 229 221 240 211 221 218 229 221 240
++211 221 218 229 221 240 211 221 218 238 233 218 211 221 218 211 221 218 211 221 218 211 221 218
++210 216 207 210 216 207 211 221 218 238 233 218 245 232 231 194 181 189 194 181 189 238 233 218
++238 233 218 221 241 240 245 232 231 238 233 218 143 146 150 112 124 124 173 175 176 143 146 150
++112 104 120 99 85 89 83 103 97 103 106 97 112 104 120 112 104 120 103 81 83 87 76 74
++86 83 83 99 85 89 103 106 97 86 83 83 75 64 67 75 64 67 68 68 60 68 64 51
++87 76 74 103 81 83 88 79 65 74 57 60 103 81 83 141 128 110 188 147 163 188 172 163
++164 142 149 87 76 74 68 67 72 68 75 77 68 68 60 46 47 45 88 79 65 165 108 102
++165 137 101 184 123 101 184 128 126 184 128 126 164 145 120 114 99 97 75 64 67 58 61 60
++71 59 54 104 88 73 165 108 102 164 133 127 184 123 101 165 137 101 143 103 96 71 59 54
++46 47 55 56 54 51 46 47 45 56 54 51 64 57 60 71 59 54 71 59 54 74 57 60
++74 57 60 104 74 73 104 74 73 104 88 73 88 79 65 64 57 60 56 54 51 46 47 55
++46 47 55 46 47 55 46 47 55 46 47 55 57 59 55 58 61 60 75 64 67 87 76 74
++88 79 65 87 76 74 71 59 54 74 57 60 75 64 67 99 61 48 88 79 65 74 57 60
++56 54 51 56 54 51 57 45 51 57 45 51 68 50 43 57 45 51 68 50 43 57 45 51
++57 45 51 46 47 45 57 45 51 56 54 51 71 59 54 74 57 60 68 68 60 64 57 60
++
++35 34 35 56 54 51 87 76 74 103 106 97 122 113 129 104 108 124 104 108 124 104 108 124
++122 133 132 141 115 130 164 142 149 164 142 149 164 133 127 134 98 86 103 81 83 114 99 97
++112 104 120 104 108 124 68 74 109 96 81 123 83 103 97 99 85 89 103 81 83 104 74 73
++68 50 43 45 49 35 46 47 45 57 59 55 68 67 72 87 76 74 86 83 83 83 103 97
++96 81 123 112 124 124 141 138 138 187 177 178 240 189 188 215 195 173 242 198 175 240 189 188
++188 189 180 173 175 176 143 151 181 121 182 205 143 151 181 131 128 178 112 124 124 104 108 124
++99 85 89 86 83 83 99 96 86 123 109 109 191 160 135 206 156 159 236 180 161 236 180 161
++236 180 161 236 180 161 206 156 159 191 160 135 141 128 110 99 85 89 83 103 97 112 104 120
++104 108 124 112 104 120 104 108 124 103 106 97 104 108 124 103 106 97 103 106 97 96 81 123
++86 83 83 86 83 83 86 83 83 114 121 97 191 160 135 215 195 173 242 198 175 242 198 175
++242 198 175 191 160 135 123 109 109 86 83 83 103 106 97 122 113 129 112 124 124 112 124 124
++123 109 109 99 61 48 133 23 15 159 26 46 133 28 45 133 28 45 133 28 45 133 28 45
++133 23 15 159 26 46 159 26 46 175 13 17 159 26 46 197 60 17 159 26 46 181 55 69
++175 13 17 175 13 17 159 26 46 154 59 17 133 11 15 100 10 13 154 14 17 154 59 17
++161 121 76 239 232 157 239 232 157 239 232 157 239 232 157 235 213 109 99 79 28 35 34 35
++20 25 36 21 29 29 23 19 15 28 30 29 23 20 27 27 32 26 23 20 27 28 30 29
++23 19 15 23 20 27 27 32 26 23 19 15 20 28 24 23 20 27 21 19 21 23 20 27
++23 20 27 27 32 26 23 20 27 21 19 21 21 19 21 21 29 29 20 20 20 49 43 41
++71 59 54 99 96 86 114 99 97 99 85 89 86 83 83 86 83 83 86 83 83 128 104 97
++164 145 137 164 145 120 191 160 135 206 156 159 242 198 175 240 189 188 242 198 175 215 195 173
++191 160 135 141 128 110 114 121 97 86 83 83 42 59 47 45 49 35 71 59 54 64 57 60
++99 79 59 113 97 36 105 79 65 113 97 36 161 121 76 165 137 101 247 185 70 216 172 134
++191 160 135 203 180 109 235 213 109 239 232 157 235 213 109 239 232 157 235 213 109 235 213 109
++161 121 76 203 196 201 166 181 211 188 191 205 182 181 190 188 191 205 188 196 234 188 189 180
++221 241 240 104 108 124 143 146 150 188 191 205 211 221 218 211 221 218 229 221 240 211 221 218
++238 233 218 211 221 218 211 221 218 229 221 240 210 216 207 203 196 201 211 221 218 194 181 189
++188 189 180 211 221 218 245 232 231 245 235 246 211 221 218 188 189 180 245 232 231 221 241 240
++211 221 218 246 248 239 211 221 218 122 113 129 99 96 86 173 175 176 238 233 218 203 196 201
++112 104 120 103 106 97 83 103 97 99 85 89 104 108 124 103 106 97 83 103 97 74 57 60
++68 68 60 75 83 72 86 83 83 86 83 83 75 64 67 64 57 60 74 57 60 87 76 74
++123 109 109 141 128 110 128 104 97 99 96 86 103 81 83 123 109 109 188 147 163 194 181 189
++141 132 131 87 76 74 103 106 97 141 138 138 141 138 138 99 96 86 88 79 65 134 98 86
++165 108 102 141 128 110 165 137 101 165 137 101 141 128 110 88 79 65 75 64 67 68 69 55
++71 59 54 113 97 77 164 133 127 165 137 101 164 133 127 164 133 127 104 88 73 56 54 51
++58 53 60 56 54 51 46 47 45 58 61 60 87 76 74 113 97 77 113 97 77 134 98 86
++99 61 48 74 57 60 104 88 73 128 104 97 104 88 73 57 59 55 46 47 45 46 47 55
++46 47 55 46 47 55 58 53 60 58 53 60 57 59 55 75 64 67 87 76 74 104 88 73
++104 74 73 104 74 73 75 64 67 71 59 54 73 50 50 74 57 60 73 50 50 61 46 51
++56 54 51 46 47 45 57 45 51 61 46 51 68 33 37 61 46 51 68 33 37 57 45 51
++46 47 45 56 54 51 57 45 51 56 54 51 74 57 60 75 64 67 75 64 67 71 59 54
++
++49 43 41 61 60 67 99 85 89 104 108 124 112 124 124 104 108 124 104 108 124 91 128 178
++122 113 129 141 132 131 164 111 125 164 111 125 128 104 97 104 88 73 68 69 55 88 79 65
++104 88 73 86 83 83 86 83 83 112 104 120 75 110 124 104 108 124 114 99 97 114 99 97
++104 74 73 113 97 77 88 79 65 87 76 74 75 83 72 86 83 83 86 83 83 104 108 124
++104 108 124 131 128 178 143 151 181 189 200 189 229 200 201 238 233 218 238 233 218 235 233 206
++182 181 190 173 175 176 143 151 181 166 181 211 143 151 181 143 151 181 91 128 178 104 108 124
++83 103 97 86 83 83 86 83 83 114 99 97 164 133 127 184 128 126 191 160 135 184 128 126
++184 128 126 191 160 135 184 128 126 164 133 127 128 104 97 99 85 89 86 83 83 99 85 89
++103 106 97 112 104 120 103 106 97 104 108 124 103 106 97 83 103 97 104 108 124 83 103 97
++83 103 97 86 83 83 75 83 72 123 109 109 164 145 137 236 180 161 215 195 173 236 180 161
++188 177 159 164 133 127 86 83 83 68 75 77 86 83 83 103 106 97 112 104 120 122 113 129
++112 124 124 114 99 97 133 28 45 133 23 15 133 23 15 159 26 46 154 14 17 133 28 45
++133 23 15 159 26 46 154 59 17 159 26 46 175 13 17 159 26 46 159 26 46 175 13 17
++181 55 69 159 26 46 133 23 15 133 11 15 133 23 15 154 14 17 154 59 17 159 26 46
++154 59 17 159 63 71 216 210 134 239 232 157 239 232 157 113 97 77 31 42 35 28 30 29
++23 20 27 23 20 27 27 32 26 21 19 21 41 28 14 27 32 26 23 19 15 23 20 27
++27 32 26 28 30 29 28 30 29 28 30 29 23 20 27 27 32 26 27 32 26 27 32 26
++20 28 24 23 20 27 23 20 27 28 30 29 21 19 21 21 19 21 20 20 20 41 33 22
++68 50 43 123 109 109 114 99 97 99 85 89 86 83 83 75 83 72 86 83 83 71 81 67
++88 79 65 114 99 97 184 123 101 231 153 161 242 198 175 240 208 188 240 208 188 210 180 161
++191 160 135 164 133 127 141 128 110 103 106 97 68 69 47 88 79 65 113 97 77 113 97 77
++143 103 96 191 160 135 206 156 159 206 156 159 216 172 134 165 137 101 165 137 101 165 137 101
++161 121 76 235 213 109 235 213 109 235 213 109 239 232 157 235 213 109 235 213 109 235 213 109
++164 145 120 188 191 205 182 181 190 173 188 216 188 191 205 166 181 211 122 133 132 211 221 218
++182 181 190 112 104 120 143 151 181 203 196 201 203 196 201 211 221 218 229 221 240 211 221 218
++225 201 230 211 221 218 229 221 240 210 216 207 194 181 189 188 189 180 173 175 176 188 189 180
++229 221 240 245 232 231 246 248 239 173 175 176 173 167 157 211 221 218 245 232 231 245 235 246
++245 232 231 211 221 218 194 181 189 210 216 207 141 115 130 188 172 163 164 142 149 211 221 218
++157 164 157 112 104 120 112 104 120 103 106 97 112 104 120 112 104 120 122 133 132 68 67 72
++71 59 54 68 75 77 75 83 72 75 64 67 61 60 67 64 57 60 88 79 65 135 123 86
++184 123 101 191 160 135 164 145 120 165 108 102 114 99 97 141 139 118 173 175 176 173 167 157
++143 146 150 173 175 176 173 175 176 187 177 178 122 113 129 64 57 60 88 79 65 143 103 96
++165 108 102 161 121 76 165 108 102 165 108 102 114 99 97 75 64 67 68 68 60 68 68 60
++68 64 51 87 76 74 128 104 97 143 103 96 165 108 102 143 103 96 87 76 74 61 60 67
++56 54 51 46 47 55 56 54 51 75 64 67 114 99 97 143 103 96 141 108 110 134 98 86
++88 79 65 88 79 65 137 117 96 141 139 118 104 88 73 56 54 51 46 47 45 49 40 56
++46 47 45 46 47 45 46 47 55 58 53 60 68 68 60 103 81 83 113 97 77 114 99 97
++134 98 86 103 81 83 87 76 74 74 57 60 56 54 51 46 47 45 57 45 51 57 45 51
++49 43 41 49 43 41 57 45 51 61 46 51 49 43 41 57 45 51 46 47 45 57 45 51
++57 45 51 49 43 41 61 46 51 71 59 54 75 64 67 75 64 67 71 59 54 71 59 54
++
++46 47 55 86 83 83 75 110 124 104 108 124 104 108 124 104 108 124 112 124 124 104 108 124
++122 133 132 141 138 138 164 111 125 141 128 110 128 104 97 113 97 77 141 108 110 191 160 135
++164 145 120 137 117 96 99 85 89 83 103 97 96 81 123 104 108 124 103 106 97 114 99 97
++128 104 97 128 104 97 114 99 97 99 96 86 86 83 83 83 103 97 83 103 97 104 108 124
++91 128 178 131 128 178 157 164 157 210 216 207 229 221 240 245 232 231 245 232 231 238 233 218
++203 196 201 173 175 176 163 148 159 143 151 181 143 151 181 143 151 181 131 128 178 75 110 124
++96 81 123 75 83 72 75 64 67 88 79 65 113 97 77 141 128 110 184 128 126 165 137 101
++137 117 96 161 121 76 165 137 101 141 108 110 128 104 97 87 76 74 68 75 77 68 75 77
++86 83 83 83 103 97 103 106 97 83 103 97 96 81 123 103 106 97 103 106 97 83 103 97
++86 83 83 68 75 77 68 75 77 99 96 86 141 138 138 206 156 159 210 180 161 191 160 135
++164 133 127 99 96 86 71 81 67 68 68 60 68 67 72 86 83 83 103 106 97 112 124 124
++122 113 129 123 109 109 103 81 83 159 26 46 159 26 46 159 26 46 133 28 45 154 14 17
++133 28 45 133 23 15 159 26 46 159 26 46 159 26 46 175 13 17 181 55 69 175 13 17
++159 26 46 154 14 17 133 23 15 133 23 15 133 23 15 133 23 15 133 23 15 133 23 15
++133 11 15 159 26 46 133 23 15 154 59 17 133 65 47 41 50 16 27 32 26 23 20 27
++23 20 27 20 28 24 23 19 15 28 30 29 28 30 29 28 26 35 28 30 29 28 30 29
++28 30 29 28 30 29 28 30 29 28 30 29 28 30 29 28 30 29 39 20 27 27 32 26
++23 20 27 28 30 29 28 30 29 32 31 35 23 20 27 23 20 27 28 30 29 20 28 24
++68 64 51 137 117 96 164 145 120 103 117 86 86 83 83 75 83 72 86 83 83 68 67 72
++68 68 60 99 96 86 165 137 101 191 160 135 236 180 161 236 180 161 240 189 188 236 180 161
++188 172 163 173 167 157 141 132 131 123 109 109 104 88 73 113 97 77 135 123 86 135 123 86
++191 160 135 236 180 161 242 198 175 240 208 188 242 198 175 191 160 135 161 121 76 118 123 77
++134 98 86 203 180 109 235 213 109 239 232 157 235 213 109 235 213 109 235 213 109 247 185 70
++163 158 149 173 175 176 173 188 216 188 196 234 188 196 234 143 146 150 75 110 124 131 128 178
++143 146 150 163 148 159 187 177 178 188 191 205 188 191 205 203 196 201 211 221 218 229 221 240
++211 221 218 211 221 218 210 216 207 203 196 201 187 177 178 157 164 157 210 216 207 238 233 218
++245 232 231 221 241 240 211 221 218 173 175 176 238 233 218 245 235 246 246 248 239 211 221 218
++203 196 201 173 175 176 211 221 218 188 189 180 141 115 130 141 132 131 164 142 149 246 248 239
++229 221 240 123 133 112 112 104 120 112 124 124 123 109 109 122 133 132 157 164 157 123 109 109
++75 64 67 75 64 67 68 67 72 68 64 51 64 57 60 56 54 51 105 79 65 191 160 135
++210 180 161 236 180 161 216 172 134 191 160 135 166 168 134 188 172 163 163 158 149 122 113 129
++173 167 157 173 175 176 143 146 150 157 164 157 86 83 83 46 47 55 75 64 67 165 108 102
++184 128 126 184 123 101 165 108 102 137 117 96 105 79 65 68 64 51 58 61 60 68 68 60
++58 61 60 75 64 67 104 88 73 134 98 86 128 104 97 104 88 73 86 83 83 68 67 72
++58 61 60 56 54 51 46 47 45 88 79 65 134 98 86 134 98 86 143 103 96 113 97 77
++74 57 60 114 99 97 141 139 118 141 128 110 68 68 60 46 47 45 46 47 45 46 47 45
++46 47 45 49 40 56 57 45 51 75 64 67 114 99 97 114 99 97 113 97 77 103 81 83
++104 74 73 103 81 83 104 74 73 75 64 67 57 45 51 49 43 41 46 47 45 46 47 45
++57 45 51 46 47 45 57 45 51 49 43 41 57 45 51 57 45 51 49 43 41 57 45 51
++49 43 41 49 43 41 56 54 51 71 59 54 75 64 67 104 74 73 75 64 67 57 59 55
++
++68 75 77 68 74 109 104 108 124 104 108 124 75 110 124 91 128 178 104 108 124 91 128 178
++122 113 129 122 133 132 141 115 130 164 111 125 164 145 120 206 156 159 236 180 161 242 198 175
++236 180 161 191 160 135 141 108 110 103 106 97 112 104 120 75 110 124 104 108 124 112 104 120
++137 117 96 137 117 96 114 99 97 99 85 89 86 83 83 75 110 124 104 108 124 131 128 178
++131 128 178 131 128 178 143 151 181 188 191 205 245 235 246 245 235 246 246 248 239 245 232 231
++229 200 201 188 172 163 173 175 176 157 164 157 143 151 181 91 128 178 131 128 178 75 110 124
++86 83 83 68 75 77 68 68 60 99 96 86 137 117 96 191 160 135 210 180 161 210 180 161
++164 145 120 143 103 96 137 117 96 128 104 97 114 99 97 75 64 67 61 60 67 61 60 67
++68 67 72 68 75 77 99 85 89 99 85 89 103 106 97 83 103 97 96 81 123 99 85 89
++86 83 83 68 75 77 68 75 77 68 75 77 123 109 109 164 133 127 164 133 127 141 128 110
++99 96 86 86 83 83 68 75 77 86 83 83 68 75 77 86 83 83 96 81 123 83 103 97
++103 106 97 103 106 97 83 103 97 133 65 47 133 28 45 159 26 46 133 23 15 159 26 46
++133 28 45 159 26 46 154 14 17 159 26 46 175 13 17 159 26 46 159 26 46 159 26 46
++154 14 17 133 23 15 133 23 15 133 23 15 133 23 15 133 11 15 133 23 15 133 23 15
++133 11 15 154 59 17 154 14 17 159 26 46 100 10 13 68 24 14 41 33 22 23 19 15
++23 20 27 21 19 21 21 19 21 28 26 35 21 29 29 28 30 29 28 30 29 37 33 35
++45 30 35 23 19 15 41 33 22 28 30 29 28 30 29 28 30 29 27 32 26 23 20 27
++23 19 15 27 32 26 23 20 27 28 30 29 20 20 20 21 19 21 28 30 29 21 19 21
++71 59 54 141 139 118 164 145 120 114 121 97 86 83 83 86 83 83 86 83 83 75 64 67
++71 81 67 99 96 86 123 109 109 164 133 127 184 128 126 216 172 134 210 180 161 210 180 161
++188 172 163 191 160 135 164 145 120 123 133 112 113 97 77 113 97 77 134 98 86 143 103 96
++191 160 135 242 198 175 240 208 188 240 208 188 242 198 175 216 172 134 184 123 101 143 103 96
++161 121 76 235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 202 181 82
++173 175 176 182 181 190 188 191 205 188 196 234 211 221 218 173 188 216 131 128 178 112 124 124
++122 113 129 141 138 138 122 113 129 210 216 207 229 221 240 203 196 201 211 221 218 211 221 218
++229 221 240 229 200 201 211 221 218 173 175 176 173 167 157 211 221 218 203 196 201 203 196 201
++188 189 180 203 196 201 212 206 189 211 221 218 211 221 218 203 196 201 194 181 189 189 200 189
++188 189 180 203 196 201 245 232 231 112 124 124 141 132 131 141 132 131 203 196 201 221 241 240
++245 232 231 203 196 201 173 175 176 143 146 150 157 164 157 210 216 207 229 221 240 164 145 137
++88 79 65 68 67 72 68 75 77 71 59 54 64 57 60 75 64 67 134 98 86 191 160 135
++216 172 134 210 180 161 210 180 161 210 180 161 215 195 173 173 167 157 114 99 97 99 96 86
++141 132 131 122 133 132 103 106 97 99 96 86 68 75 77 57 59 55 74 57 60 165 108 102
++165 137 101 184 123 101 184 128 126 165 108 102 88 79 65 56 54 51 56 54 51 58 61 60
++68 69 55 57 59 55 68 69 55 104 88 73 103 106 97 123 109 109 86 83 83 86 83 83
++99 96 86 68 75 77 56 54 51 75 64 67 103 81 83 134 98 86 134 98 86 103 81 83
++104 74 73 137 117 96 123 109 109 87 76 74 46 47 45 39 43 42 46 47 45 46 47 45
++41 38 42 49 43 41 57 45 51 87 76 74 104 74 73 75 64 67 71 59 54 71 59 54
++71 59 54 75 64 67 74 57 60 71 59 54 57 45 51 46 47 45 46 47 45 49 43 41
++46 47 45 49 43 41 46 47 45 46 47 45 49 43 41 49 43 41 57 45 51 49 43 41
++49 43 41 57 45 51 61 46 51 61 46 51 71 59 54 64 57 60 71 59 54 46 47 45
++
++123 133 112 123 109 109 104 108 124 83 103 97 104 108 124 104 108 124 104 108 124 112 124 124
++104 108 124 122 133 132 141 115 130 141 132 131 191 160 135 242 198 175 240 208 188 240 208 188
++242 198 175 236 180 161 191 160 135 141 132 131 122 113 129 104 108 124 103 106 97 112 104 120
++123 109 109 128 104 97 104 88 73 87 76 74 83 103 97 122 113 129 131 128 178 143 151 181
++143 151 181 121 182 205 143 151 181 166 181 211 211 221 218 245 235 246 238 233 218 238 233 218
++240 208 188 240 208 188 212 185 189 173 175 176 143 146 150 131 128 178 112 124 124 83 103 97
++68 75 77 68 67 72 75 64 67 137 117 96 206 156 159 240 189 188 240 208 188 240 189 188
++210 180 161 165 137 101 143 103 96 134 98 86 88 79 65 68 68 60 58 61 60 57 59 55
++58 53 60 68 67 72 86 83 83 83 103 97 96 81 123 99 96 86 86 83 83 61 60 67
++58 53 60 46 47 55 58 53 60 58 53 60 86 83 83 123 109 109 123 109 109 99 96 86
++87 76 74 86 83 83 86 83 83 83 103 97 99 85 89 83 103 97 68 75 77 86 83 83
++99 85 89 83 103 97 103 81 83 133 69 69 133 28 45 159 26 46 159 26 46 133 23 15
++159 26 46 133 23 15 159 26 46 159 26 46 159 26 46 159 26 46 197 60 17 159 26 46
++154 14 17 133 23 15 133 23 15 133 11 15 133 23 15 133 23 15 133 23 15 159 26 46
++133 23 15 133 23 15 159 26 46 175 13 17 154 59 17 68 24 14 39 14 11 39 14 11
++20 28 24 21 19 21 21 19 21 21 29 29 28 30 29 28 30 29 28 30 29 41 33 22
++68 33 37 41 33 22 23 19 15 27 32 26 23 20 27 28 30 29 28 30 29 21 19 21
++41 33 22 41 33 22 41 33 22 23 19 15 23 19 15 37 33 35 21 19 15 28 30 29
++71 59 54 164 145 120 210 180 161 173 167 157 141 154 138 141 132 131 141 128 110 99 96 86
++75 64 67 103 106 97 114 99 97 123 109 109 137 117 96 164 133 127 191 160 135 188 172 163
++191 160 135 164 145 137 164 145 137 141 139 118 103 106 97 99 79 59 135 123 86 164 145 120
++210 180 161 242 198 175 240 189 188 240 208 188 240 189 188 216 172 134 191 160 135 164 133 127
++135 123 86 235 213 109 235 213 109 239 232 157 235 213 109 235 213 109 247 185 70 191 160 135
++173 175 176 166 181 211 188 196 234 210 221 240 203 196 201 188 196 234 188 191 205 104 108 124
++75 110 124 143 146 150 203 196 201 211 221 218 182 181 190 203 196 201 229 221 240 211 221 218
++210 216 207 210 216 207 194 181 189 114 99 97 157 164 157 143 146 150 210 216 207 238 233 218
++229 221 240 238 233 218 211 221 218 173 175 176 173 167 157 203 196 201 211 221 218 210 216 207
++211 221 218 229 221 240 238 233 218 112 124 124 164 142 149 103 106 97 245 232 231 211 221 218
++238 233 218 221 241 240 238 233 218 211 221 218 245 232 231 203 196 201 238 233 218 164 145 137
++99 96 86 87 76 74 68 67 72 68 68 60 68 68 60 113 97 77 141 128 110 191 160 135
++206 156 159 216 172 134 206 156 159 210 180 161 210 180 161 188 177 159 141 128 110 88 79 65
++68 67 72 87 76 74 61 60 67 68 68 60 68 67 72 58 61 60 64 57 60 128 104 97
++165 108 102 184 128 126 164 145 120 143 103 96 75 64 67 56 54 51 46 47 45 57 59 55
++68 68 60 68 68 60 58 61 60 87 76 74 103 106 97 103 106 97 75 83 72 143 146 150
++143 146 150 112 104 120 68 68 60 75 64 67 113 97 77 134 98 86 104 74 73 134 98 86
++105 79 65 113 97 77 103 81 83 56 54 51 46 47 45 44 55 41 46 47 45 46 47 45
++49 43 41 57 45 51 57 45 51 74 57 60 61 46 51 73 50 50 74 57 60 75 64 67
++99 61 48 75 64 67 75 64 67 71 59 54 49 43 41 46 47 45 46 47 45 46 47 45
++41 38 42 46 47 45 46 47 45 46 47 45 46 47 45 46 47 45 49 43 41 57 45 51
++68 50 43 73 50 50 71 59 54 71 59 54 56 54 51 61 46 51 57 45 51 46 47 45
++
++191 160 135 164 145 137 141 132 131 104 108 124 104 108 124 75 110 124 122 133 132 122 133 132
++131 128 178 122 113 129 122 133 132 164 145 137 210 180 161 242 198 175 240 208 188 240 208 188
++240 208 188 215 195 173 206 156 159 191 160 135 141 132 131 104 108 124 104 108 124 122 113 129
++141 128 110 134 98 86 75 83 72 68 75 77 104 108 124 131 128 178 143 151 181 121 182 205
++143 151 181 143 151 181 143 151 181 166 181 211 203 196 201 229 200 201 238 233 218 240 208 188
++238 233 218 240 208 188 240 208 188 188 189 180 157 164 157 104 108 124 68 74 109 68 75 77
++61 60 67 71 59 54 87 76 74 141 128 110 210 180 161 240 208 188 240 208 188 240 208 188
++240 189 188 216 172 134 164 145 120 137 117 96 88 79 65 64 57 60 58 53 60 57 59 55
++56 54 51 58 61 60 68 75 77 86 83 83 75 83 72 46 47 55 39 43 42 33 35 35
++20 28 24 28 30 29 23 20 27 20 28 24 45 49 35 68 75 77 83 103 97 86 83 83
++75 83 72 96 81 123 103 106 97 112 104 120 104 108 124 86 83 83 68 67 72 61 60 67
++68 67 72 104 74 73 133 69 69 159 26 46 133 28 45 133 23 15 159 26 46 159 26 46
++159 26 46 159 26 46 159 26 46 154 59 17 159 26 46 159 26 46 159 26 46 154 14 17
++133 23 15 133 23 15 133 23 15 133 23 15 133 23 15 133 23 15 133 23 15 133 23 15
++133 23 15 159 26 46 154 59 17 154 14 17 154 14 17 133 23 15 73 50 50 45 39 35
++20 28 24 21 19 21 28 30 29 21 19 21 28 30 29 27 32 26 41 33 22 68 50 43
++104 88 73 71 59 54 19 34 14 27 32 26 21 19 21 23 20 27 28 30 29 27 32 26
++39 28 30 68 50 43 45 49 35 41 33 22 88 79 65 99 96 86 41 33 22 41 28 14
++128 104 97 188 177 159 210 180 161 188 189 180 189 200 189 188 172 163 173 167 157 164 145 120
++99 96 86 86 83 83 99 96 86 86 83 83 86 83 83 99 96 86 141 108 110 141 128 110
++141 132 131 164 145 137 141 154 138 141 132 131 114 99 97 103 106 97 164 145 120 210 180 161
++215 195 173 236 180 161 242 198 175 242 198 175 210 180 161 236 180 161 206 156 159 164 145 120
++135 123 86 235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 202 181 82 164 145 120
++166 181 211 163 147 193 211 221 218 188 191 205 210 216 207 188 191 205 182 181 190 173 175 176
++68 74 109 104 108 124 203 196 201 182 181 190 203 196 201 210 216 207 210 216 207 225 201 230
++210 216 207 203 196 201 141 138 138 194 181 189 238 233 218 210 216 207 203 196 201 210 216 207
++238 233 218 229 221 240 210 216 207 210 216 207 211 221 218 238 233 218 211 221 218 210 216 207
++211 221 218 238 233 218 229 221 240 157 164 157 163 158 149 189 200 189 245 232 231 188 189 180
++203 196 201 203 196 201 211 221 218 238 233 218 210 216 207 211 221 218 245 235 246 163 158 149
++141 108 110 83 103 97 86 83 83 99 85 89 87 76 74 128 104 97 184 123 101 184 128 126
++191 160 135 191 160 135 191 160 135 216 172 134 188 177 159 191 160 135 141 139 118 99 96 86
++68 68 60 61 60 67 68 67 72 68 68 60 61 60 67 58 61 60 56 54 51 104 88 73
++143 103 96 165 137 101 165 108 102 141 128 110 104 88 73 68 64 51 46 47 45 56 54 51
++64 57 60 68 68 60 68 69 55 58 61 60 86 83 83 68 67 72 103 106 97 173 175 176
++173 175 176 122 133 132 86 83 83 88 79 65 113 97 77 103 81 83 133 78 94 113 97 77
++105 79 65 87 76 74 99 61 48 61 46 51 46 47 45 46 47 45 49 43 41 49 43 41
++57 45 51 49 43 41 57 45 51 49 43 41 48 36 41 73 50 50 87 76 74 74 57 60
++104 74 73 88 79 65 74 57 60 61 46 51 46 47 45 41 38 42 46 47 45 46 47 45
++46 47 45 46 47 45 46 47 45 39 43 42 39 43 42 46 47 45 49 43 41 57 45 51
++71 59 54 75 64 67 75 64 67 75 64 67 71 59 54 46 47 45 49 43 41 46 47 45
++
++215 195 173 210 180 161 173 167 157 164 145 137 104 108 124 122 113 129 173 175 176 203 196 201
++182 181 190 157 164 157 141 138 138 141 138 138 188 172 163 242 198 175 240 208 188 240 208 188
++240 208 188 242 198 175 236 180 161 173 167 157 141 139 118 122 133 132 123 109 109 141 139 118
++141 128 110 128 104 97 88 79 65 75 83 72 112 124 124 143 151 181 143 151 181 143 151 181
++143 151 181 121 182 205 166 181 211 173 175 176 194 181 189 212 185 189 240 208 188 242 198 175
++240 208 188 240 208 188 238 233 218 229 200 201 188 189 180 112 124 124 56 54 51 58 53 60
++58 53 60 58 61 60 64 57 60 141 128 110 236 180 161 240 208 188 238 233 218 240 208 188
++240 208 188 240 189 188 216 172 134 164 133 127 104 88 73 57 59 55 56 54 51 56 54 51
++57 59 55 58 61 60 87 76 74 61 60 67 35 34 35 28 26 35 20 28 24 21 19 21
++20 28 24 21 19 21 28 30 29 39 20 27 28 30 29 28 30 29 74 57 60 99 85 89
++83 103 97 112 104 120 112 124 124 112 104 120 112 104 120 86 83 83 68 75 77 68 50 43
++133 65 47 159 26 46 159 26 46 159 26 46 133 23 15 133 23 15 159 26 46 159 26 46
++133 23 15 159 26 46 133 23 15 159 26 46 175 13 17 133 23 15 133 23 15 159 26 46
++133 23 15 133 23 15 133 11 15 133 23 15 133 11 15 133 23 15 133 23 15 133 23 15
++133 11 15 154 14 17 159 26 46 154 14 17 159 26 46 133 69 69 161 121 76 99 79 59
++23 19 15 20 28 24 23 20 27 41 33 22 45 39 35 68 24 14 105 79 65 105 79 65
++143 103 96 105 79 65 32 31 35 28 30 29 23 19 15 45 39 35 39 28 30 41 33 22
++68 50 20 68 50 20 68 33 37 68 50 43 141 108 110 141 128 110 45 39 35 88 79 65
++173 167 157 188 177 159 189 200 189 229 200 201 229 200 201 229 200 201 212 206 189 210 180 161
++141 128 110 88 79 65 68 75 77 75 83 72 75 83 72 68 67 72 75 83 72 103 106 97
++122 113 129 141 154 138 164 145 137 123 133 112 103 106 97 114 99 97 166 168 134 216 172 134
++210 180 161 216 172 134 216 172 134 231 153 161 210 180 161 210 180 161 210 180 161 164 145 137
++161 121 76 203 180 109 235 213 109 235 213 109 247 185 70 235 170 109 216 172 134 173 183 156
++173 175 176 104 108 124 103 106 97 210 216 207 203 196 201 188 196 234 188 191 205 173 175 176
++173 175 176 104 108 124 173 175 176 188 191 205 203 196 201 210 216 207 210 216 207 203 196 201
++187 177 178 103 106 97 141 132 131 157 164 157 173 175 176 189 200 189 212 185 189 212 185 189
++212 185 189 187 177 178 229 200 201 245 232 231 221 241 240 211 221 218 229 200 201 211 221 218
++245 235 246 229 221 240 238 233 218 157 164 157 203 196 201 182 181 190 188 189 180 182 181 190
++203 196 201 238 233 218 211 221 218 210 216 207 245 232 231 246 248 239 245 232 231 173 167 157
++141 128 110 123 109 109 122 113 129 112 124 124 87 76 74 114 99 97 164 133 127 191 160 135
++191 160 135 184 128 126 184 123 101 164 145 120 191 160 135 191 160 135 157 164 157 123 133 112
++75 64 67 68 67 72 68 68 60 64 57 60 68 68 60 57 59 55 71 59 54 86 83 83
++137 117 96 165 108 102 164 145 137 141 132 131 87 76 74 56 54 51 56 54 51 46 47 45
++57 59 55 58 61 60 58 61 60 56 54 51 56 54 51 56 54 51 141 138 138 194 181 189
++173 175 176 163 158 149 99 85 89 71 59 54 87 76 74 104 74 73 104 88 73 103 81 83
++99 61 48 75 64 67 99 36 46 57 45 51 39 43 42 46 47 45 46 47 45 49 43 41
++68 50 43 49 43 41 61 46 51 49 43 41 49 43 41 61 46 51 74 57 60 88 79 65
++104 74 73 74 57 60 74 57 60 56 54 51 46 47 45 46 47 45 41 38 42 46 47 45
++46 47 45 39 43 42 46 47 45 46 47 45 46 47 45 46 47 45 49 43 41 56 54 51
++87 76 74 87 76 74 87 76 74 68 68 60 57 59 55 46 47 45 46 47 45 41 38 42
++
++215 195 173 215 197 156 210 180 161 166 168 134 141 115 130 164 145 137 229 200 201 225 201 230
++210 216 207 173 175 176 143 146 150 141 138 138 191 160 135 210 180 161 242 198 175 240 208 188
++240 208 188 242 198 175 210 180 161 164 145 137 141 132 131 122 133 132 122 133 132 141 132 131
++123 109 109 114 121 97 88 79 65 68 74 109 122 133 132 143 151 181 121 182 205 143 151 181
++143 151 181 143 151 181 143 151 181 166 181 211 194 181 189 212 185 189 242 198 175 242 198 175
++240 208 188 240 208 188 229 200 201 238 233 218 203 196 201 143 146 150 75 83 72 39 43 42
++46 47 55 57 59 55 64 57 60 141 128 110 236 180 161 240 189 188 240 208 188 238 233 218
++240 208 188 240 189 188 236 180 161 164 133 127 88 79 65 46 47 55 56 54 51 56 54 51
++56 54 51 57 59 55 56 54 51 39 37 42 28 30 29 23 20 27 21 19 21 23 20 27
++28 30 29 28 26 35 28 30 29 28 30 29 28 26 35 30 34 36 46 47 55 86 83 83
++83 103 97 112 104 120 112 124 124 122 113 129 104 108 124 86 83 83 99 61 48 99 36 46
++159 26 46 154 14 17 159 26 46 175 13 17 159 26 46 133 23 15 159 26 46 159 26 46
++159 26 46 154 14 17 159 26 46 159 26 46 154 14 17 133 23 15 100 10 13 133 23 15
++159 26 46 133 23 15 133 23 15 133 23 15 133 28 45 133 23 15 133 23 15 133 28 45
++154 14 17 159 26 46 154 14 17 159 26 46 133 23 15 161 121 76 165 108 102 143 103 96
++68 50 43 23 19 15 39 28 30 49 43 41 99 61 48 99 79 59 105 79 65 134 98 86
++165 108 102 105 79 65 37 33 35 41 33 22 45 39 35 73 50 50 68 50 43 73 50 50
++99 79 59 71 59 54 49 43 41 99 85 89 103 106 97 128 104 97 105 79 65 173 167 157
++210 180 161 173 167 157 188 189 180 229 200 201 210 216 207 212 206 189 240 208 188 212 185 189
++164 145 137 99 85 89 68 75 77 87 76 74 68 75 77 75 64 67 68 75 77 99 96 86
++123 109 109 123 133 112 141 132 131 123 133 112 103 106 97 104 88 73 141 128 110 191 160 135
++164 145 137 191 160 135 184 128 126 191 160 135 191 160 135 210 180 161 187 177 178 141 128 110
++113 97 77 165 137 101 235 170 109 203 180 109 203 180 109 215 197 156 215 195 173 182 181 190
++188 191 205 143 146 150 87 76 74 103 81 83 163 148 159 203 196 201 182 181 190 188 191 205
++188 191 205 173 175 176 182 181 190 203 196 201 211 221 218 203 196 201 188 191 205 173 175 176
++141 132 131 123 133 112 194 181 189 238 233 218 206 156 159 184 128 126 184 128 126 164 111 125
++184 128 126 184 128 126 164 111 125 216 122 126 238 233 218 211 221 218 211 221 218 245 235 246
++211 221 218 189 200 189 210 216 207 203 196 201 163 158 149 189 200 189 163 158 149 189 200 189
++211 221 218 238 233 218 245 232 231 245 235 246 246 248 239 245 232 231 246 248 239 173 167 157
++141 132 131 141 138 138 141 138 138 123 133 112 68 67 72 88 79 65 128 104 97 184 128 126
++184 128 126 191 160 135 191 160 135 134 98 86 128 104 97 173 167 157 188 172 163 123 109 109
++68 67 72 68 68 60 64 57 60 68 68 60 57 59 55 64 57 60 68 68 60 99 96 86
++137 117 96 164 133 127 164 145 137 114 99 97 64 57 60 57 59 55 56 54 51 56 54 51
++56 54 51 56 54 51 57 59 55 49 43 41 46 47 45 68 67 72 157 164 157 188 189 180
++182 181 190 143 146 150 75 83 72 56 54 51 75 64 67 104 74 73 104 88 73 88 79 65
++74 57 60 75 64 67 73 50 50 46 47 45 46 47 45 46 47 45 49 43 41 68 33 37
++57 45 51 68 33 37 49 43 41 49 43 41 45 39 35 61 46 51 74 57 60 74 57 60
++75 64 67 74 57 60 71 59 54 46 47 45 46 47 45 49 43 41 46 47 45 46 47 45
++46 47 45 41 38 42 49 43 41 39 43 42 39 43 42 39 43 42 46 47 45 56 54 51
++57 59 55 71 59 54 75 64 67 68 68 60 56 54 51 49 43 41 39 43 42 41 38 42
++
++242 198 175 215 197 156 215 197 156 188 177 159 164 133 127 188 172 163 229 200 201 245 232 231
++229 200 201 182 181 190 143 146 150 141 132 131 164 145 137 210 180 161 236 180 161 240 189 188
++242 198 175 242 198 157 191 160 135 164 145 120 141 139 118 122 133 132 141 132 131 141 132 131
++123 133 112 128 104 97 86 83 83 83 103 97 131 128 178 143 151 181 143 151 181 166 181 211
++131 128 178 143 151 181 131 128 178 143 151 181 194 181 189 212 185 189 242 198 175 236 180 161
++236 180 161 240 208 188 235 233 206 238 233 218 210 216 207 194 181 189 122 113 129 49 43 41
++56 54 51 58 61 60 57 59 55 141 108 110 206 156 159 240 189 188 240 208 188 240 208 188
++240 208 188 240 208 188 206 156 159 165 108 102 75 64 67 58 61 60 56 54 51 56 54 51
++56 54 51 57 59 55 41 38 42 28 30 29 17 19 20 23 20 27 28 30 29 32 31 35
++20 25 36 23 20 27 28 26 35 28 26 35 21 29 29 20 25 36 20 25 36 68 75 77
++112 104 120 112 124 124 122 133 132 112 124 124 112 104 120 103 81 83 133 28 45 159 26 46
++159 26 46 159 26 46 175 13 17 159 26 46 154 59 17 154 14 17 159 26 46 154 14 17
++159 26 46 154 59 17 154 14 17 154 14 17 159 26 46 133 23 15 133 23 15 100 10 13
++159 26 46 154 14 17 159 26 46 133 23 15 133 23 15 159 26 46 159 26 46 154 14 17
++159 26 46 154 59 17 154 14 17 154 14 17 133 65 47 165 137 101 165 108 102 165 137 101
++88 79 65 68 33 37 45 39 35 68 50 43 105 79 65 133 78 94 133 69 69 134 98 86
++137 117 96 99 61 48 41 33 22 49 43 41 105 79 65 105 79 65 105 79 65 99 61 48
++68 50 43 68 50 43 71 59 54 99 85 89 68 75 77 88 79 65 141 139 118 210 180 161
++188 172 163 188 172 163 163 158 149 188 189 180 194 181 189 215 195 173 212 185 189 210 180 161
++141 138 138 114 99 97 83 103 97 99 85 89 86 83 83 68 75 77 87 76 74 86 83 83
++99 96 86 99 96 86 103 106 97 99 96 86 86 83 83 88 79 65 113 97 77 134 98 86
++134 98 86 137 117 96 137 117 96 143 103 96 141 128 110 164 145 137 173 167 157 128 104 97
++104 74 73 134 98 86 135 123 86 134 98 86 164 145 120 210 180 161 212 206 189 182 181 190
++188 191 205 141 115 130 141 108 110 134 98 86 99 61 48 104 88 73 173 167 157 182 181 190
++173 175 176 211 221 218 173 188 216 173 175 176 182 181 190 203 196 201 173 167 157 103 106 97
++123 109 109 194 181 189 238 233 218 212 185 189 184 128 126 231 153 161 181 55 69 216 122 126
++181 55 69 181 55 69 216 122 126 224 65 75 231 153 161 225 201 230 210 216 207 203 196 201
++203 196 201 210 216 207 182 181 190 157 164 157 143 146 150 141 115 130 141 132 131 238 233 218
++245 232 231 245 235 246 245 232 231 221 241 240 238 233 218 211 221 218 245 232 231 173 167 157
++123 109 109 143 146 150 164 142 149 86 83 83 61 60 67 75 64 67 88 79 65 165 137 101
++164 145 120 184 123 101 137 117 96 99 79 59 99 96 86 163 158 149 141 138 138 86 83 83
++58 61 60 64 57 60 58 61 60 64 57 60 57 59 55 68 64 51 68 68 60 104 88 73
++141 108 110 164 133 127 128 104 97 71 82 60 57 59 55 68 68 60 58 61 60 56 54 51
++56 54 51 44 55 41 49 43 41 56 54 51 45 39 35 99 96 86 173 175 176 182 181 190
++173 175 176 123 109 109 46 47 55 49 43 41 56 54 51 74 57 60 75 64 67 88 79 65
++74 57 60 73 50 50 57 45 51 41 38 42 46 47 45 56 54 51 61 46 51 57 45 51
++49 43 41 61 46 51 49 43 41 68 33 37 49 43 41 57 45 51 61 46 51 73 50 50
++74 57 60 75 64 67 71 59 54 57 45 51 46 47 45 46 47 45 46 47 45 46 47 45
++46 47 45 46 47 45 39 43 42 46 47 45 46 47 45 39 43 42 46 47 45 57 45 51
++57 45 51 61 46 51 57 45 51 46 47 45 49 43 41 39 43 42 41 38 42 39 43 42
++
++215 197 156 215 197 156 215 197 156 210 180 161 184 128 126 212 185 189 238 233 218 245 232 231
++210 216 207 173 167 157 141 138 138 122 133 132 141 128 110 164 145 120 206 156 159 236 180 161
++215 195 173 210 180 161 191 160 135 164 133 127 122 133 132 141 132 131 141 138 138 141 132 131
++122 133 132 114 121 97 103 106 97 112 124 124 122 133 132 143 151 181 121 182 205 143 151 181
++143 151 181 91 128 178 143 151 181 143 151 181 187 177 178 212 185 189 240 189 188 242 198 175
++240 208 188 240 208 188 229 200 201 238 233 218 211 221 218 210 216 207 173 167 157 58 61 60
++46 47 45 57 59 55 68 64 51 114 99 97 191 160 135 240 189 188 240 208 188 240 208 188
++240 208 188 240 189 188 191 160 135 123 109 109 87 76 74 58 61 60 56 54 51 57 59 55
++57 59 55 41 38 42 27 32 26 23 20 27 23 20 27 28 30 29 28 30 29 28 30 29
++28 26 35 32 26 35 37 33 35 57 45 51 73 50 50 61 46 51 49 43 41 46 47 45
++103 106 97 112 124 124 141 115 130 112 124 124 114 99 97 159 63 71 159 26 46 197 60 17
++159 26 46 175 13 17 154 59 17 159 26 46 159 26 46 154 14 17 133 23 15 159 26 46
++159 26 46 154 14 17 133 23 15 133 28 45 154 59 17 159 26 46 133 11 15 133 23 15
++133 23 15 159 26 46 133 23 15 159 26 46 154 14 17 133 23 15 154 14 17 159 26 46
++154 14 17 154 14 17 159 26 46 133 65 47 165 108 102 165 137 101 164 111 125 165 137 101
++143 103 96 135 123 86 134 98 86 99 36 46 105 79 65 113 97 77 134 98 86 143 103 96
++137 117 96 99 61 48 68 50 43 105 79 65 134 98 86 134 98 86 133 69 69 105 79 65
++68 50 43 104 74 73 104 74 73 68 68 60 61 60 67 68 69 55 128 104 97 188 147 163
++191 160 135 164 145 120 141 128 110 137 117 96 164 145 137 191 160 135 191 160 135 164 145 137
++123 109 109 104 108 124 112 104 120 104 108 124 103 106 97 83 103 97 86 83 83 68 75 77
++75 83 72 68 75 77 87 76 74 75 83 72 87 76 74 104 88 73 113 97 77 134 98 86
++135 123 86 134 98 86 134 98 86 137 117 96 143 103 96 137 117 96 141 128 110 114 99 97
++104 88 73 104 88 73 104 88 73 105 79 65 164 145 120 210 180 161 212 206 189 182 181 190
++173 175 176 141 108 110 137 117 96 137 117 96 143 103 96 134 98 86 113 97 77 164 133 127
++173 167 157 194 181 189 189 200 189 203 196 201 157 164 157 143 146 150 123 109 109 103 106 97
++164 142 149 203 196 201 229 200 201 165 108 102 231 153 161 224 65 75 224 65 75 206 156 159
++188 147 163 224 65 75 224 65 75 224 65 75 216 122 126 203 196 201 210 216 207 211 221 218
++210 216 207 203 196 201 203 196 201 141 115 130 122 133 132 123 109 109 194 181 189 211 221 218
++210 216 207 238 233 218 211 221 218 211 221 218 245 232 231 245 232 231 211 221 218 203 196 201
++103 106 97 141 132 131 103 106 97 68 67 72 61 60 67 68 68 60 75 64 67 128 104 97
++141 128 110 137 117 96 128 104 97 75 64 67 86 83 83 103 106 97 86 83 83 58 61 60
++61 60 67 58 61 60 68 68 60 57 59 55 68 68 60 68 68 60 56 54 51 88 79 65
++114 99 97 134 98 86 74 57 60 57 59 55 68 68 60 68 68 60 68 68 60 57 59 55
++46 47 45 46 47 45 39 43 42 46 47 45 56 54 51 141 138 138 187 177 178 143 146 150
++123 109 109 68 67 72 41 38 42 46 47 45 46 47 45 71 59 54 88 79 65 103 81 83
++61 46 51 41 38 42 45 39 35 39 43 42 46 47 45 57 45 51 68 33 37 57 45 51
++68 33 37 49 43 41 49 43 41 49 43 41 57 45 51 49 43 41 49 43 41 64 57 60
++71 59 54 71 59 54 56 54 51 57 45 51 49 43 41 57 45 51 46 47 45 57 45 51
++46 47 45 41 38 42 39 43 42 39 43 42 39 43 42 39 43 42 49 43 41 56 54 51
++56 54 51 71 59 54 56 54 51 46 47 45 41 38 42 39 43 42 39 43 42 41 38 42
++
++242 198 175 215 197 156 215 197 156 191 160 135 191 160 135 212 206 189 238 233 218 245 232 231
++212 185 189 157 164 157 143 146 150 141 132 131 112 124 124 128 104 97 164 145 120 191 160 135
++191 160 135 216 172 134 191 160 135 164 133 127 123 133 112 122 133 132 141 138 138 141 138 138
++141 132 131 122 133 132 143 146 150 157 164 157 163 147 193 143 151 181 143 151 181 143 151 181
++143 151 181 143 151 181 131 128 178 143 151 181 173 175 176 212 185 189 240 208 188 240 208 188
++240 208 188 240 208 188 238 233 218 238 233 218 229 221 240 238 233 218 203 196 201 103 106 97
++58 61 60 68 68 60 68 68 60 88 79 65 164 133 127 206 156 159 240 189 188 240 208 188
++242 198 175 236 180 161 164 145 137 123 109 109 71 81 67 58 61 60 57 59 55 58 53 60
++46 47 45 27 32 26 21 19 15 20 20 20 28 30 29 28 30 29 23 20 27 23 20 27
++27 32 26 71 59 54 113 97 77 143 103 96 134 98 86 134 98 86 113 97 77 74 57 60
++99 85 89 122 113 129 112 124 124 123 109 109 133 69 69 154 14 17 154 14 17 159 26 46
++159 26 46 154 59 17 175 13 17 159 26 46 154 14 17 159 26 46 133 23 15 133 28 45
++133 23 15 133 23 15 133 23 15 133 11 15 154 14 17 159 26 46 154 14 17 133 23 15
++133 23 15 133 23 15 159 26 46 159 26 46 133 23 15 154 14 17 133 28 45 154 59 17
++159 26 46 154 14 17 133 23 15 159 63 71 164 145 120 164 133 127 164 133 127 165 108 102
++165 137 101 137 117 96 134 98 86 134 98 86 134 98 86 161 121 76 143 103 96 165 108 102
++141 128 110 113 97 77 134 98 86 134 98 86 134 98 86 134 98 86 134 98 86 99 61 48
++105 79 65 191 160 135 113 97 77 73 50 50 61 60 67 61 60 67 68 68 60 141 128 110
++141 128 110 165 137 101 141 128 110 137 117 96 165 137 101 191 160 135 184 128 126 141 128 110
++103 106 97 104 108 124 112 124 124 122 113 129 104 108 124 112 104 120 83 103 97 75 64 67
++68 67 72 75 64 67 68 67 72 68 68 60 75 64 67 87 76 74 134 98 86 134 98 86
++134 98 86 134 98 86 135 123 86 134 98 86 143 103 96 134 98 86 113 97 77 105 79 65
++104 88 73 103 81 83 104 88 73 104 88 73 137 117 96 166 168 134 187 177 178 188 191 205
++141 138 138 141 108 110 165 108 102 165 108 102 161 121 76 137 117 96 143 103 96 165 137 101
++141 108 110 141 128 110 165 137 101 164 142 149 164 133 127 103 106 97 123 109 109 122 133 132
++210 216 207 173 167 157 187 177 178 164 111 125 216 122 126 181 55 69 181 55 69 216 122 126
++184 128 126 181 55 69 224 65 75 224 65 75 181 55 69 163 148 159 122 133 132 173 175 176
++211 221 218 203 196 201 173 175 176 112 124 124 141 138 138 210 216 207 246 248 239 238 233 218
++210 216 207 210 216 207 211 221 218 246 248 239 245 232 231 221 241 240 238 233 218 245 235 246
++112 124 124 99 85 89 86 83 83 68 67 72 61 60 67 58 61 60 75 64 67 114 99 97
++164 133 127 163 158 149 123 109 109 75 64 67 57 59 55 58 53 60 61 60 67 58 61 60
++58 61 60 58 61 60 64 57 60 68 68 60 75 64 67 68 68 60 68 64 51 68 64 51
++75 64 67 74 57 60 71 59 54 58 61 60 71 81 67 68 67 72 71 81 67 64 57 60
++44 55 41 49 43 41 45 49 35 49 43 41 86 83 83 173 175 176 143 146 150 86 83 83
++57 59 55 46 47 45 46 47 55 46 47 45 46 47 55 64 57 60 87 76 74 87 76 74
++46 47 45 39 43 42 39 43 42 39 43 42 49 43 41 49 43 41 57 45 51 49 43 41
++49 43 41 68 33 37 49 43 41 49 43 41 48 36 41 49 43 41 61 46 51 64 57 60
++56 54 51 46 47 45 46 47 45 57 45 51 49 43 41 49 43 41 49 43 41 57 45 51
++49 43 41 46 47 45 39 43 42 39 43 42 46 47 45 46 47 45 39 43 42 49 43 41
++56 54 51 61 46 51 56 54 51 46 47 45 41 38 42 39 37 42 41 38 42 41 38 42
++
++215 195 173 215 197 156 210 180 161 216 172 134 163 158 149 229 200 201 229 200 201 229 200 201
++173 175 176 143 146 150 164 142 149 141 138 138 123 133 112 103 106 97 128 104 97 141 128 110
++164 133 127 164 145 120 164 133 127 141 128 110 123 109 109 122 133 132 141 138 138 141 154 138
++141 138 138 157 164 157 187 177 178 189 200 189 187 177 178 143 151 181 121 182 205 143 151 181
++143 151 181 143 151 181 143 151 181 143 151 181 173 175 176 194 181 189 240 189 188 240 208 188
++240 208 188 240 208 188 229 200 201 238 233 218 221 241 240 238 233 218 210 216 207 143 146 150
++75 83 72 71 81 67 75 83 72 75 83 72 128 104 97 191 160 135 210 180 161 240 189 188
++236 180 161 188 172 163 141 132 131 99 96 86 68 75 77 58 61 60 64 57 60 56 54 51
++37 33 35 23 19 15 21 19 15 23 20 27 23 20 27 21 19 21 23 20 27 27 32 26
++73 50 50 114 99 97 143 103 96 143 103 96 134 98 86 133 78 94 133 69 69 104 74 73
++128 104 97 123 109 109 112 124 124 133 69 69 133 28 45 154 14 17 133 28 45 154 14 17
++159 26 46 175 13 17 159 26 46 175 13 17 154 59 17 159 26 46 133 23 15 133 23 15
++133 23 15 133 28 45 154 14 17 133 23 15 133 28 45 154 14 17 133 28 45 133 28 45
++133 23 15 133 23 15 133 23 15 154 14 17 159 26 46 133 23 15 133 23 15 154 14 17
++159 26 46 154 59 17 133 23 15 165 108 102 164 133 127 165 137 101 164 133 127 137 117 96
++134 98 86 134 98 86 113 97 77 134 98 86 137 117 96 165 108 102 164 145 120 164 145 120
++165 108 102 161 121 76 134 98 86 133 69 69 134 98 86 133 65 47 113 97 77 99 61 48
++104 74 73 236 180 161 165 108 102 68 50 43 57 59 55 61 60 67 58 61 60 88 79 65
++137 117 96 165 137 101 164 145 120 216 172 134 210 180 161 231 153 161 210 180 161 164 133 127
++99 85 89 75 110 124 122 113 129 112 124 124 112 124 124 104 108 124 103 106 97 86 83 83
++68 75 77 71 81 67 68 68 60 68 67 72 88 79 65 88 79 65 113 97 77 134 98 86
++165 137 101 191 160 135 191 160 135 191 160 135 184 128 126 161 121 76 113 97 77 105 79 65
++104 88 73 87 76 74 88 79 65 75 64 67 104 88 73 128 104 97 173 175 176 188 191 205
++141 115 130 141 128 110 165 108 102 165 137 101 137 117 96 137 117 96 137 117 96 165 108 102
++161 121 76 165 108 102 165 108 102 134 98 86 128 104 97 114 99 97 164 142 149 203 196 201
++211 221 218 210 216 207 188 147 163 188 147 163 224 65 75 181 55 69 224 65 75 216 122 126
++164 111 125 246 122 125 164 111 125 224 65 75 184 128 126 141 138 138 173 167 157 164 142 149
++141 138 138 210 216 207 141 154 138 112 104 120 123 109 109 163 158 149 203 196 201 245 232 231
++245 235 246 245 232 231 245 232 231 229 221 240 238 233 218 245 232 231 245 232 231 245 232 231
++157 164 157 68 67 72 61 60 67 61 60 67 61 60 67 61 60 67 71 81 67 122 113 129
++157 164 157 163 148 159 103 106 97 57 59 55 56 54 51 58 53 60 58 61 60 58 61 60
++58 53 60 64 57 60 68 68 60 75 64 67 75 83 72 75 64 67 75 64 67 68 68 60
++68 69 55 71 59 54 68 64 51 68 68 60 68 68 60 75 64 67 68 68 60 58 61 60
++56 54 51 46 47 45 45 39 35 46 47 45 141 132 131 157 164 157 86 83 83 46 47 45
++46 47 45 46 47 45 46 47 45 39 43 42 46 47 55 58 53 60 68 68 60 64 57 60
++39 43 42 39 43 42 39 43 42 49 43 41 41 38 42 49 43 41 49 43 41 49 43 41
++57 45 51 49 43 41 49 43 41 49 43 41 57 45 51 57 45 51 57 45 51 61 46 51
++56 54 51 49 43 41 57 45 51 49 43 41 57 45 51 49 43 41 57 45 51 49 43 41
++49 43 41 41 38 42 49 43 41 39 43 42 39 43 42 46 47 45 49 43 41 49 43 41
++56 54 51 56 54 51 57 45 51 46 47 45 39 43 42 39 43 42 39 37 42 39 37 42
++
++215 195 173 215 197 156 210 180 161 191 160 135 188 177 159 212 185 189 203 196 201 189 200 189
++163 158 149 188 172 163 188 172 163 210 180 161 164 145 137 141 128 110 103 106 97 123 109 109
++141 128 110 141 132 131 141 139 118 123 109 109 123 133 112 141 132 131 141 138 138 141 138 138
++141 138 138 173 175 176 203 196 201 203 196 201 182 181 190 143 151 181 143 151 181 143 151 181
++143 151 181 166 181 211 189 200 189 188 191 205 188 191 205 210 216 207 229 200 201 240 208 188
++240 208 188 245 232 231 238 233 218 238 233 218 221 241 240 245 232 231 211 221 218 173 167 157
++103 106 97 86 83 83 86 83 83 86 83 83 99 96 86 128 104 97 164 145 137 191 160 135
++188 172 163 188 172 163 141 132 131 103 106 97 68 75 77 71 81 67 75 64 67 49 43 41
++27 32 26 13 14 11 17 19 20 20 20 20 28 30 29 21 19 27 20 28 24 45 39 35
++88 79 65 133 78 94 134 98 86 143 103 96 134 98 86 104 88 73 104 74 73 133 69 69
++104 74 73 114 99 97 114 99 97 133 28 45 154 14 17 133 23 15 133 28 45 159 26 46
++159 26 46 159 26 46 154 59 17 154 14 17 154 14 17 154 14 17 133 23 15 133 23 15
++133 28 45 159 26 46 159 26 46 154 14 17 154 14 17 154 59 17 159 26 46 154 14 17
++133 23 15 100 10 13 133 23 15 133 28 45 133 23 15 133 23 15 133 28 45 133 23 15
++154 14 17 133 23 15 133 28 45 165 137 101 141 128 110 164 111 125 137 117 96 134 98 86
++113 97 77 133 65 47 113 97 77 134 98 86 134 98 86 165 137 101 164 133 127 165 108 102
++137 117 96 143 103 96 134 98 86 113 97 36 105 79 65 99 79 59 133 69 69 99 79 59
++133 78 94 236 180 161 164 133 127 68 50 43 56 54 51 58 61 60 61 60 67 68 68 60
++113 97 77 164 145 120 216 172 134 210 180 161 242 198 175 242 198 175 236 180 161 191 160 135
++87 76 74 83 103 97 112 104 120 112 124 124 122 113 129 112 124 124 104 108 124 86 83 83
++68 67 72 68 68 60 68 67 72 71 81 67 75 64 67 88 79 65 113 97 77 134 98 86
++191 160 135 236 180 161 236 180 161 236 180 161 236 180 161 184 128 126 134 98 86 99 79 59
++87 76 74 87 76 74 88 79 65 87 76 74 71 59 54 75 64 67 173 175 176 182 181 190
++128 104 97 128 104 97 143 103 96 165 108 102 165 108 102 137 117 96 165 108 102 165 137 101
++165 108 102 161 121 76 165 108 102 161 121 76 143 103 96 141 128 110 194 181 189 210 216 207
++210 216 207 211 221 218 212 185 189 133 78 94 216 122 126 224 65 75 216 122 126 164 111 125
++181 55 69 216 122 126 231 153 161 164 111 125 163 147 193 173 167 157 229 221 240 157 164 157
++114 99 97 163 158 149 173 167 157 141 132 131 143 146 150 141 138 138 123 109 109 123 133 112
++187 177 178 211 221 218 246 248 239 246 248 239 245 232 231 221 241 240 238 233 218 229 221 240
++189 200 189 58 53 60 68 67 72 61 60 67 61 60 67 61 60 67 61 60 67 123 109 109
++157 164 157 112 124 124 68 67 72 58 53 60 58 53 60 46 47 55 57 59 55 61 60 67
++58 53 60 61 60 67 68 68 60 71 81 67 75 64 67 104 88 73 113 97 77 128 104 97
++134 98 86 113 97 77 68 68 60 68 68 60 68 68 60 75 64 67 68 68 60 68 68 60
++56 54 51 46 47 45 46 47 45 46 47 45 141 138 138 104 108 124 56 54 51 57 45 51
++56 54 51 57 45 51 46 47 45 46 47 45 46 47 55 46 47 45 56 54 51 46 47 45
++41 38 42 46 47 45 39 43 42 39 43 42 39 43 42 39 43 42 46 47 45 48 36 41
++48 36 41 57 45 51 48 36 41 49 43 41 49 43 41 57 45 51 57 45 51 56 54 51
++57 45 51 57 45 51 49 43 41 57 45 51 49 43 41 49 43 41 49 43 41 49 43 41
++49 43 41 41 38 42 41 38 42 41 38 42 41 38 42 49 43 41 46 47 45 46 47 45
++57 45 51 46 47 45 46 47 45 46 47 45 41 38 42 41 38 42 39 37 42 39 37 42
++
++216 172 134 215 197 156 191 160 135 191 160 135 191 160 135 188 189 175 203 196 201 188 172 163
++173 167 157 215 195 173 240 208 188 240 189 188 215 195 173 163 158 149 141 139 118 123 109 109
++122 133 132 122 133 132 141 132 131 112 124 124 141 132 131 122 133 132 122 133 132 141 138 138
++141 138 138 157 164 157 188 189 175 189 200 189 173 175 176 143 151 181 143 151 181 173 175 176
++173 188 216 188 191 205 188 191 205 211 221 218 211 221 218 211 221 218 211 221 218 238 233 218
++238 233 218 229 200 201 238 233 218 211 221 218 238 233 218 245 232 231 211 221 218 187 177 178
++123 133 112 99 96 86 99 96 86 99 96 86 99 96 86 114 99 97 114 99 97 164 133 127
++164 145 137 163 158 149 141 115 130 83 103 97 87 76 74 75 83 72 68 64 51 37 33 35
++28 30 29 17 19 20 20 20 20 23 20 27 17 19 20 21 29 29 20 20 20 41 33 22
++104 74 73 134 98 86 134 98 86 105 79 65 73 50 50 99 61 48 73 50 50 99 79 59
++104 88 73 105 79 65 133 28 45 133 28 45 133 23 15 133 28 45 133 23 15 159 26 46
++154 59 17 175 13 17 159 26 46 154 14 17 159 26 46 133 23 15 159 26 46 133 23 15
++133 23 15 133 23 15 159 26 46 154 59 17 159 26 46 175 13 17 154 14 17 154 14 17
++133 28 45 154 14 17 133 23 15 133 23 15 133 23 15 133 23 15 133 23 15 133 23 15
++133 23 15 154 14 17 133 65 47 164 111 125 165 137 101 141 128 110 134 98 86 113 97 36
++105 79 65 113 97 77 133 69 69 113 97 77 113 97 77 105 79 65 134 98 86 134 98 86
++133 69 69 113 97 77 105 79 65 133 69 69 113 97 77 133 69 69 99 61 48 105 79 65
++134 98 86 210 180 161 165 108 102 71 59 54 58 53 60 58 61 60 58 61 60 57 59 55
++88 79 65 164 145 120 216 172 134 236 180 161 242 198 175 240 189 188 236 180 161 191 160 135
++87 76 74 68 67 72 83 103 97 112 104 120 104 108 124 112 104 120 83 103 97 75 83 72
++68 75 77 75 64 67 71 81 67 75 64 67 88 79 65 99 79 59 105 79 65 133 69 69
++206 156 159 236 180 161 242 198 175 242 198 175 236 180 161 191 160 135 113 97 77 99 61 48
++88 79 65 75 64 67 88 79 65 88 79 65 71 59 54 75 64 67 173 175 176 173 175 176
++103 81 83 134 98 86 134 98 86 137 117 96 143 103 96 137 117 96 143 103 96 143 103 96
++137 117 96 165 108 102 161 121 76 165 108 102 143 103 96 165 108 102 212 185 189 211 221 218
++225 201 230 211 221 218 229 200 201 188 147 163 188 147 163 188 147 163 216 122 126 224 65 75
++224 65 75 216 122 126 188 147 163 164 142 149 143 146 150 203 196 201 187 177 178 141 132 131
++173 167 157 242 198 175 215 195 173 141 132 131 238 233 218 189 200 189 188 189 180 188 189 180
++187 177 178 173 175 176 188 172 163 210 216 207 211 221 218 210 216 207 229 221 240 238 233 218
++229 221 240 99 85 89 61 60 67 68 67 72 61 60 67 61 60 67 56 54 51 68 75 77
++123 109 109 68 75 77 56 54 51 58 61 60 46 47 55 58 53 60 58 53 60 58 61 60
++58 53 60 68 68 60 68 68 60 68 69 55 88 79 65 137 117 96 164 133 127 191 160 135
++184 128 126 141 128 110 99 96 86 71 81 67 68 68 60 68 68 60 68 68 60 68 68 60
++57 59 55 56 54 51 46 47 45 56 54 51 112 104 120 68 67 72 46 47 45 71 59 54
++71 59 54 56 54 51 46 47 45 46 47 45 46 47 45 46 47 45 46 47 45 39 43 42
++46 47 45 41 38 42 39 43 42 41 38 42 41 38 42 41 38 42 39 37 42 49 43 41
++48 36 41 49 43 41 48 36 41 49 43 41 48 36 41 49 43 41 57 45 51 57 45 51
++57 45 51 49 43 41 49 43 41 49 43 41 49 43 41 48 36 41 57 45 51 48 36 41
++49 43 41 49 43 41 39 43 42 46 47 45 56 54 51 46 47 55 46 47 45 49 43 41
++46 47 45 49 43 41 46 47 45 49 43 41 39 43 42 39 37 42 39 37 42 39 37 42
++
++191 160 135 191 160 135 203 180 109 191 160 135 173 167 157 188 172 163 173 167 157 173 167 157
++210 180 161 242 198 175 240 208 188 240 208 188 242 198 175 210 180 161 188 172 163 163 158 149
++143 146 150 141 138 138 122 133 132 123 133 112 122 133 132 141 132 131 141 132 131 141 154 138
++141 138 138 143 146 150 163 158 149 157 164 157 143 146 150 143 146 150 143 151 181 173 188 216
++210 216 207 211 221 218 211 221 218 210 216 207 210 216 207 211 221 218 238 233 218 225 201 230
++238 233 218 211 221 218 238 233 218 221 241 240 238 233 218 211 221 218 211 221 218 188 172 163
++123 133 112 86 83 83 99 96 86 104 108 124 123 109 109 103 106 97 86 83 83 103 106 97
++141 132 131 141 138 138 123 133 112 99 85 89 86 83 83 86 83 83 56 54 51 39 43 42
++35 34 35 23 19 15 39 20 27 39 20 27 28 30 29 39 43 42 49 43 41 104 88 73
++143 103 96 134 98 86 113 97 77 133 69 69 104 88 73 99 79 59 99 61 48 71 59 54
++99 61 48 99 36 46 133 23 15 133 11 15 154 14 17 133 23 15 159 26 46 154 14 17
++159 26 46 154 14 17 133 23 15 133 23 15 159 26 46 133 23 15 133 23 15 133 23 15
++133 11 15 133 23 15 100 10 13 133 23 15 133 28 45 154 59 17 159 26 46 159 26 46
++175 13 17 159 26 46 154 14 17 159 26 46 133 23 15 133 23 15 133 23 15 133 11 15
++100 10 13 133 23 15 133 28 45 143 103 96 143 103 96 134 98 86 105 79 65 105 79 65
++134 98 86 134 98 86 134 98 86 134 98 86 133 69 69 99 61 48 99 79 59 105 79 65
++113 97 77 133 69 69 134 98 86 134 98 86 113 97 77 99 79 28 99 61 48 68 33 37
++99 61 48 164 145 137 113 97 77 71 59 54 58 61 60 58 53 60 57 59 55 56 54 51
++88 79 65 165 137 101 191 160 135 215 197 156 236 180 161 210 180 161 236 180 161 164 142 149
++87 76 74 75 64 67 86 83 83 86 83 83 103 106 97 83 103 97 99 85 89 68 75 77
++68 67 72 75 83 72 87 76 74 75 64 67 88 79 65 99 61 48 99 79 59 105 79 65
++184 128 126 242 198 157 242 198 175 242 198 175 236 180 161 184 123 101 105 79 65 99 79 59
++74 57 60 99 79 59 104 74 73 88 79 65 71 59 54 88 79 65 173 175 176 182 181 190
++75 64 67 105 79 65 113 97 77 133 69 69 161 121 76 137 117 96 161 121 76 143 103 96
++161 121 76 165 108 102 165 137 101 165 108 102 161 121 76 161 121 76 128 104 97 212 206 189
++238 233 218 245 232 231 211 221 218 245 232 231 188 147 163 181 55 69 231 153 161 194 181 189
++188 147 163 164 111 125 184 128 126 122 113 129 141 138 138 194 181 189 123 133 112 164 133 127
++215 195 173 240 189 188 210 180 161 191 160 135 187 177 178 246 248 239 182 181 190 189 200 189
++203 196 201 210 216 207 203 196 201 203 196 201 238 233 218 245 232 231 245 232 231 238 233 218
++221 241 240 157 164 157 68 67 72 58 61 60 61 60 67 61 60 67 61 60 67 58 61 60
++58 61 60 58 61 60 58 53 60 58 53 60 58 53 60 58 61 60 61 60 67 61 60 67
++58 61 60 57 59 55 71 82 60 105 79 65 137 117 96 164 145 120 206 156 159 216 172 134
++191 160 135 164 111 125 113 97 77 71 81 67 68 68 60 64 57 60 68 68 60 68 68 60
++58 61 60 57 59 55 56 54 51 56 54 51 86 83 83 46 47 45 57 59 55 74 57 60
++74 57 60 71 59 54 49 43 41 49 43 41 46 47 45 46 47 45 46 47 45 41 38 42
++39 43 42 41 38 42 39 43 42 41 38 42 39 43 42 45 39 35 39 37 42 41 38 42
++49 43 41 48 36 41 68 33 37 49 43 41 49 43 41 49 43 41 57 45 51 49 43 41
++49 43 41 49 43 41 57 45 51 49 43 41 49 43 41 49 43 41 48 36 41 49 43 41
++46 47 45 46 47 45 42 59 47 57 59 55 58 61 60 58 61 60 64 57 60 58 53 60
++56 54 51 57 45 51 46 47 45 41 38 42 39 43 42 41 38 42 39 37 42 39 37 42
++
++216 172 134 165 137 101 191 160 135 164 145 120 166 168 134 163 158 149 163 158 149 164 145 137
++215 195 173 240 208 188 240 208 188 240 208 188 240 208 188 240 208 188 212 206 189 194 181 189
++173 175 176 157 164 157 141 132 131 141 132 131 122 133 132 122 133 132 122 133 132 141 138 138
++141 138 138 122 133 132 123 109 109 112 124 124 112 124 124 122 133 132 166 181 211 189 200 189
++203 196 201 210 216 207 212 206 189 212 206 189 212 206 189 229 200 201 211 221 218 238 233 218
++229 221 240 238 233 218 229 221 240 211 221 218 211 221 218 210 216 207 203 196 201 143 146 150
++103 106 97 99 96 86 83 103 97 123 109 109 123 109 109 104 108 124 99 96 86 99 96 86
++123 109 109 112 124 124 112 104 120 86 83 83 86 83 83 68 68 60 45 39 35 32 31 35
++28 30 29 68 33 37 99 61 48 99 61 48 73 50 50 45 39 35 68 50 43 114 99 97
++143 103 96 134 98 86 133 69 69 99 79 59 68 33 37 68 50 43 104 74 73 99 79 59
++68 33 37 133 23 15 133 23 15 133 11 15 133 28 45 133 23 15 133 28 45 154 14 17
++159 26 46 154 14 17 133 23 15 159 26 46 133 23 15 154 14 17 133 28 45 133 23 15
++100 10 13 133 28 45 133 23 15 133 28 45 184 128 126 99 61 48 133 23 15 133 23 15
++133 28 45 154 59 17 159 26 46 154 59 17 159 26 46 159 26 46 159 26 46 133 28 45
++133 23 15 100 10 13 100 10 13 133 69 69 113 97 77 105 79 65 113 97 77 134 98 86
++134 98 86 113 97 77 134 98 86 113 97 77 113 97 77 105 79 65 99 61 48 105 79 65
++133 65 47 113 97 77 105 79 65 134 98 86 133 69 69 105 79 65 73 50 50 134 98 86
++128 104 97 104 88 73 75 64 67 64 57 60 58 61 60 56 54 51 46 47 55 46 47 45
++68 69 55 114 121 97 165 137 101 164 145 120 164 145 137 188 172 163 191 160 135 141 115 130
++86 83 83 68 74 109 86 83 83 68 74 109 86 83 83 68 74 109 86 83 83 75 64 67
++68 67 72 87 76 74 71 81 67 75 64 67 75 64 67 87 76 74 105 79 65 105 79 65
++137 117 96 216 172 134 236 180 161 228 160 135 191 160 135 143 103 96 99 61 48 99 61 48
++88 79 65 87 76 74 113 97 77 137 117 96 137 117 96 164 133 127 194 181 189 188 191 205
++141 132 131 87 76 74 99 79 59 113 97 77 113 97 77 113 97 77 143 103 96 143 103 96
++143 103 96 137 117 96 184 123 101 165 137 101 165 108 102 165 137 101 165 108 102 164 133 127
++210 216 207 229 221 240 238 233 218 225 201 230 245 232 231 225 201 230 212 185 189 231 153 161
++212 185 189 194 181 189 203 196 201 173 175 176 164 142 149 157 164 157 123 109 109 212 185 189
++212 185 189 210 180 161 184 128 126 191 160 135 164 133 127 187 177 178 245 232 231 188 189 180
++210 216 207 212 206 189 203 196 201 229 200 201 210 216 207 210 216 207 238 233 218 211 221 218
++245 232 231 210 216 207 68 75 77 68 68 60 68 67 72 61 60 67 61 60 67 58 61 60
++64 57 60 58 61 60 61 60 67 58 61 60 46 47 55 58 53 60 58 53 60 58 61 60
++56 54 51 87 76 74 141 128 110 164 133 127 191 160 135 191 160 135 191 160 135 184 128 126
++164 111 125 165 137 101 128 104 97 113 97 77 75 64 67 68 69 55 57 59 55 58 61 60
++68 64 51 57 59 55 57 59 55 46 47 45 58 61 60 49 43 41 71 59 54 74 57 60
++74 57 60 68 50 43 57 45 51 46 47 45 46 47 45 46 47 45 46 47 45 46 47 45
++41 38 42 39 43 42 45 39 35 39 43 42 41 38 42 39 43 42 35 34 35 45 39 35
++57 45 51 61 46 51 71 59 54 56 54 51 57 45 51 48 36 41 49 43 41 48 36 41
++49 43 41 49 43 41 49 43 41 48 36 41 49 43 41 48 36 41 57 45 51 48 36 41
++46 47 45 46 47 55 45 62 74 57 59 55 57 59 55 58 53 60 57 59 55 58 53 60
++56 54 51 57 45 51 46 47 45 49 43 41 39 43 42 39 37 42 39 37 42 39 37 42
++
++210 180 161 191 160 135 184 123 101 165 137 101 164 145 120 164 145 120 164 145 120 191 160 135
++215 195 173 240 189 188 240 208 188 240 208 188 240 208 188 240 208 188 229 200 201 211 221 218
++203 196 201 187 177 178 143 146 150 122 133 132 123 133 112 141 132 131 141 132 131 141 154 138
++141 132 131 114 121 97 99 96 86 83 103 97 104 108 124 143 151 181 188 191 205 210 216 207
++203 196 201 212 206 189 212 185 189 240 189 188 210 180 161 215 195 173 210 216 207 211 221 218
++238 233 218 221 241 240 211 221 218 229 200 201 203 196 201 194 181 189 173 167 157 123 133 112
++99 96 86 86 83 83 99 96 86 123 109 109 123 109 109 114 121 97 83 103 97 103 106 97
++122 113 129 112 104 120 99 96 86 83 103 97 86 83 83 49 43 41 28 30 29 30 34 36
++39 20 27 73 50 50 143 103 96 165 108 102 143 103 96 99 79 59 99 61 48 141 108 110
++143 103 96 165 108 102 134 98 86 128 104 97 99 79 59 133 65 47 143 103 96 113 97 77
++68 33 37 133 11 15 133 23 15 133 23 15 159 26 46 154 14 17 159 26 46 154 14 17
++154 59 17 133 23 15 133 23 15 133 28 45 154 14 17 133 28 45 133 23 15 133 11 15
++133 28 45 100 10 13 133 23 15 133 28 45 99 61 48 164 111 125 133 69 69 100 10 13
++100 10 13 100 10 13 133 28 45 159 26 46 154 14 17 159 26 46 154 14 17 154 14 17
++133 23 15 133 23 15 100 10 13 99 36 46 105 79 65 105 79 65 105 79 65 99 79 59
++99 79 59 99 79 59 105 79 65 99 61 48 99 61 48 105 79 65 99 61 48 133 69 69
++113 97 77 105 79 65 134 98 86 99 79 59 100 41 14 68 50 43 99 61 48 141 108 110
++87 76 74 58 61 60 68 67 72 61 60 67 58 61 60 56 54 51 46 47 55 39 43 42
++61 46 51 99 79 59 118 123 77 128 104 97 137 117 96 137 117 96 123 109 109 114 99 97
++104 108 124 104 108 124 86 83 83 68 75 77 86 83 83 68 75 77 68 67 72 68 67 72
++68 75 77 87 76 74 75 64 67 75 64 67 88 79 65 104 88 73 104 74 73 99 61 48
++134 98 86 165 137 101 191 160 135 184 128 126 161 121 76 99 61 48 99 61 48 88 79 65
++104 74 73 104 88 73 164 133 127 210 180 161 236 180 161 242 198 175 212 185 189 173 188 216
++173 188 216 173 188 216 112 104 120 73 50 50 105 79 65 133 69 69 113 97 77 161 121 76
++165 108 102 165 137 101 165 108 102 164 133 127 184 123 101 165 137 101 161 121 76 165 108 102
++212 185 189 211 221 218 238 233 218 238 233 218 229 221 240 211 221 218 229 221 240 188 191 205
++225 201 230 225 201 230 211 221 218 245 235 246 229 221 240 182 181 190 211 221 218 215 195 173
++210 180 161 164 133 127 141 108 110 184 128 126 206 156 159 114 99 97 187 177 178 210 216 207
++173 167 157 229 221 240 210 216 207 203 196 201 203 196 201 211 221 218 211 221 218 238 233 218
++225 201 230 238 233 218 157 164 157 61 60 67 68 67 72 61 60 67 68 67 72 75 83 72
++68 75 77 64 57 60 56 54 51 61 60 67 46 47 55 46 47 55 58 53 60 46 47 55
++58 61 60 141 128 110 206 156 159 191 160 135 164 133 127 165 108 102 165 108 102 165 137 101
++164 145 120 184 128 126 164 111 125 137 117 96 75 64 67 68 64 51 57 59 55 57 59 55
++57 59 55 57 59 55 57 59 55 56 54 51 58 61 60 57 59 55 71 59 54 71 59 54
++99 61 48 64 57 60 61 46 51 46 47 45 46 47 45 46 47 45 41 38 42 41 38 42
++39 43 42 46 47 45 41 38 42 39 43 42 45 39 35 41 38 42 39 37 42 46 47 45
++64 57 60 75 64 67 75 64 67 71 59 54 57 45 51 49 43 41 48 36 41 48 36 41
++49 43 41 49 43 41 48 36 41 57 45 51 48 36 41 49 43 41 48 36 41 48 36 41
++46 47 55 57 59 55 42 59 47 46 47 55 46 47 45 46 47 45 46 47 45 57 45 51
++46 47 45 46 47 45 46 47 45 46 47 45 41 38 42 39 37 42 39 37 42 39 37 42
++
++242 198 175 216 172 134 191 160 135 164 145 120 164 133 127 141 128 110 164 145 120 164 145 137
++210 180 161 215 195 173 242 198 175 242 198 175 229 200 201 235 233 206 229 221 240 211 221 218
++211 221 218 203 196 201 173 167 157 141 132 131 141 128 110 122 133 132 141 138 138 141 138 138
++122 133 132 104 108 124 99 85 89 83 103 97 141 154 138 182 181 190 203 196 201 212 206 189
++212 206 189 240 189 188 242 198 175 215 195 173 242 198 175 210 180 161 215 195 173 210 216 207
++229 221 240 245 232 231 211 221 218 210 216 207 188 189 175 163 158 149 164 145 137 103 106 97
++87 76 74 75 83 72 99 96 86 103 106 97 112 124 124 141 128 110 141 139 118 141 138 138
++123 109 109 103 117 86 86 83 83 99 85 89 86 83 83 45 39 35 23 20 27 41 38 42
++21 19 21 105 79 65 159 63 71 133 65 47 161 121 76 143 103 96 143 103 96 141 108 110
++165 108 102 141 128 110 165 108 102 133 69 69 104 74 73 105 79 65 143 103 96 165 108 102
++133 23 15 133 23 15 133 23 15 133 28 45 133 23 15 159 26 46 154 59 17 154 14 17
++159 26 46 154 14 17 133 23 15 133 23 15 133 23 15 133 28 45 133 23 15 133 23 15
++100 10 13 133 23 15 133 28 45 133 23 15 133 23 15 133 28 45 184 123 101 159 63 71
++100 41 14 133 23 15 100 10 13 68 24 14 133 23 15 133 23 15 133 28 45 159 26 46
++154 14 17 133 28 45 100 10 13 68 24 14 99 61 48 99 61 48 73 50 50 68 50 20
++99 61 48 68 33 37 68 50 43 68 50 20 68 24 14 99 61 48 71 59 54 99 79 59
++113 97 77 133 69 69 105 79 65 133 65 47 68 33 37 112 104 120 141 138 138 103 106 97
++71 81 67 75 64 67 68 68 60 68 68 60 58 61 60 56 54 51 46 47 45 31 42 35
++45 49 35 68 68 60 99 85 89 103 106 97 103 106 97 112 104 120 104 108 124 104 108 124
++112 124 124 112 104 120 83 103 97 68 75 77 68 75 77 68 67 72 68 67 72 64 57 60
++68 67 72 75 64 67 71 81 67 87 76 74 104 74 73 113 97 77 104 88 73 99 79 59
++113 97 77 137 117 96 165 108 102 134 98 86 99 79 59 99 79 59 105 79 65 104 74 73
++104 88 73 137 117 96 191 160 135 215 195 173 229 200 201 229 200 201 240 208 188 194 181 189
++166 181 211 166 181 211 166 181 211 104 108 124 71 59 54 105 79 65 99 79 59 105 79 65
++134 98 86 137 117 96 165 108 102 165 137 101 165 137 101 184 128 126 184 123 101 165 137 101
++165 137 101 215 195 173 238 233 218 229 221 240 221 241 240 246 248 239 229 221 240 245 232 231
++245 232 231 245 232 231 211 221 218 211 221 218 182 181 190 245 232 231 210 180 161 210 180 161
++164 145 137 114 99 97 137 117 96 164 145 120 206 156 159 191 160 135 114 99 97 211 221 218
++173 175 176 188 189 180 238 233 218 212 206 189 203 196 201 210 216 207 229 200 201 238 233 218
++211 221 218 229 221 240 211 221 218 99 96 86 61 60 67 68 75 77 75 64 67 99 96 86
++104 88 73 58 61 60 57 59 55 56 54 51 57 59 55 46 47 55 46 47 55 46 47 45
++88 79 65 164 133 127 164 145 137 164 133 127 128 104 97 134 98 86 141 128 110 184 123 101
++191 160 135 184 128 126 164 145 120 114 99 97 68 69 55 57 59 55 57 59 55 57 59 55
++57 59 55 57 59 55 56 54 51 57 59 55 56 54 51 56 54 51 71 59 54 74 57 60
++74 57 60 71 59 54 56 54 51 46 47 45 46 47 45 46 47 45 46 47 45 39 43 42
++41 38 42 35 34 35 41 38 42 39 43 42 39 43 42 39 43 42 41 38 42 46 47 45
++73 50 50 88 79 65 75 64 67 74 57 60 75 64 67 49 43 41 49 43 41 49 43 41
++57 45 51 48 36 41 57 45 51 49 43 41 49 43 41 49 43 41 39 37 42 39 43 42
++46 47 55 46 47 55 46 47 55 46 47 45 46 47 45 46 47 45 57 45 51 57 45 51
++49 43 41 49 43 41 49 43 41 41 38 42 39 37 42 35 34 35 39 37 42 37 33 35
++
++240 208 188 242 198 157 191 160 135 165 108 102 103 117 86 114 99 97 137 117 96 141 128 110
++164 133 127 164 133 127 191 160 135 188 172 163 212 206 189 203 196 201 210 216 207 238 233 218
++210 216 207 203 196 201 188 189 180 143 146 150 112 124 124 122 113 129 122 133 132 122 133 132
++123 109 109 99 96 86 103 106 97 122 113 129 157 164 157 188 191 205 210 216 207 211 221 218
++240 208 188 240 208 188 240 208 188 235 233 206 240 208 188 240 189 188 215 195 173 229 200 201
++238 233 218 238 233 218 211 221 218 203 196 201 173 167 157 141 132 131 123 109 109 128 104 97
++114 99 97 114 121 97 123 109 109 164 145 137 173 167 157 210 180 161 210 180 161 210 180 161
++164 145 137 103 106 97 99 96 86 86 83 83 75 64 67 27 32 26 35 34 35 39 28 30
++21 19 21 73 50 50 143 103 96 161 121 76 165 108 102 134 98 86 113 97 77 134 98 86
++165 108 102 164 133 127 165 108 102 134 98 86 133 69 69 165 108 102 165 108 102 133 69 69
++99 36 46 133 11 15 133 23 15 159 26 46 154 14 17 159 26 46 154 14 17 154 14 17
++133 23 15 133 23 15 133 28 45 133 23 15 133 28 45 133 11 15 133 11 15 100 10 13
++133 23 15 133 23 15 100 10 13 133 11 15 100 10 13 133 23 15 133 28 45 133 65 47
++133 28 45 133 11 15 133 23 15 133 23 15 100 10 13 100 10 13 100 10 13 100 10 13
++100 10 13 100 10 13 100 10 13 100 10 13 68 24 14 99 36 46 68 50 20 68 50 20
++68 24 14 39 14 11 68 24 14 39 14 11 39 14 11 123 109 109 163 158 149 99 61 48
++105 79 65 134 98 86 99 79 28 99 61 48 74 57 60 141 115 130 122 113 129 68 74 109
++68 68 60 68 75 77 68 67 72 68 67 72 61 60 67 58 61 60 56 54 51 39 43 42
++46 47 55 68 67 72 83 103 97 112 104 120 112 104 120 112 104 120 112 124 124 112 124 124
++122 113 129 112 124 124 103 106 97 68 74 109 68 67 72 61 60 67 61 60 67 68 67 72
++75 83 72 68 75 77 87 76 74 103 81 83 134 98 86 114 99 97 134 98 86 104 88 73
++134 98 86 143 103 96 134 98 86 105 79 65 105 79 65 104 88 73 113 97 77 134 98 86
++128 104 97 141 128 110 210 180 161 240 189 188 240 208 188 240 208 188 238 233 218 203 196 201
++166 181 211 163 147 193 143 151 181 166 181 211 112 104 120 68 69 55 99 79 59 105 79 65
++113 97 36 134 98 86 143 103 96 165 108 102 165 137 101 184 128 126 164 145 120 184 128 126
++165 137 101 184 128 126 164 145 137 210 180 161 210 216 207 238 233 218 229 221 240 211 221 218
++211 221 218 229 221 240 238 233 218 229 221 240 211 221 218 157 164 157 141 132 131 164 133 127
++114 99 97 103 81 83 128 104 97 165 108 102 191 160 135 191 160 135 141 132 131 173 167 157
++203 196 201 188 189 180 203 196 201 211 221 218 203 196 201 210 216 207 210 216 207 225 201 230
++211 221 218 211 221 218 238 233 218 229 221 240 114 99 97 71 59 54 99 96 86 141 132 131
++114 99 97 75 64 67 57 59 55 57 59 55 58 53 60 46 47 55 46 47 45 68 68 60
++104 88 73 114 121 97 137 117 96 86 83 83 88 79 65 105 79 65 165 108 102 165 137 101
++191 160 135 165 137 101 164 133 127 105 79 65 68 68 60 57 59 55 68 64 51 57 59 55
++57 59 55 57 59 55 56 54 51 56 54 51 56 54 51 56 54 51 71 59 54 73 50 50
++74 57 60 71 59 54 57 45 51 49 43 41 46 47 45 46 47 45 41 38 42 39 43 42
++41 38 42 39 43 42 37 33 35 39 43 42 41 38 42 41 38 42 39 43 42 56 54 51
++75 64 67 88 79 65 74 57 60 99 96 86 75 64 67 68 50 43 48 36 41 48 36 41
++49 43 41 49 43 41 48 36 41 49 43 41 48 36 41 41 38 42 39 37 42 39 37 42
++39 43 42 46 47 55 39 43 42 39 43 42 46 47 45 57 45 51 57 45 51 57 45 51
++57 45 51 46 47 45 41 38 42 39 43 42 41 38 42 39 37 42 39 37 42 39 37 42
++
++240 208 188 242 198 175 191 160 135 137 117 96 99 79 59 75 83 72 86 83 83 99 85 89
++88 79 65 88 79 65 114 99 97 143 146 150 188 172 163 212 206 189 229 200 201 229 200 201
++229 200 201 212 206 189 173 175 176 143 146 150 122 133 132 103 106 97 103 106 97 103 106 97
++99 96 86 86 83 83 83 103 97 122 133 132 173 175 176 189 200 189 229 200 201 238 233 218
++238 233 218 238 233 218 238 233 218 240 208 188 240 208 188 240 208 188 236 180 161 212 206 189
++229 200 201 238 233 218 211 221 218 203 196 201 173 175 176 141 132 131 141 128 110 165 108 102
++141 128 110 164 133 127 164 145 137 206 156 159 210 180 161 210 180 161 242 198 175 210 180 161
++191 160 135 114 99 97 99 96 86 86 83 83 75 64 67 27 32 26 39 28 30 28 30 29
++23 20 27 68 50 20 159 63 71 165 108 102 134 98 86 133 69 69 134 98 86 134 98 86
++161 121 76 143 103 96 165 108 102 161 121 76 134 98 86 143 103 96 165 108 102 133 65 47
++133 11 15 133 11 15 133 28 45 133 23 15 133 28 45 159 26 46 154 59 17 159 26 46
++154 14 17 159 26 46 133 11 15 133 23 15 133 11 15 133 23 15 133 23 15 133 23 15
++100 10 13 100 10 13 133 28 45 133 23 15 133 23 15 100 10 13 100 10 13 133 23 15
++154 14 17 133 28 45 133 23 15 133 23 15 133 23 15 133 23 15 100 41 14 100 10 13
++100 41 14 100 10 13 100 10 13 100 41 14 100 10 13 100 10 13 68 24 14 100 10 13
++68 24 14 100 10 13 68 24 14 68 24 14 39 14 11 68 33 37 211 221 218 141 139 118
++99 61 48 105 79 65 73 50 50 114 99 97 163 148 159 131 128 178 96 81 123 68 75 77
++71 81 67 68 67 72 68 67 72 75 64 67 68 68 60 68 68 60 57 59 55 56 54 51
++68 68 60 68 67 72 99 85 89 114 99 97 112 104 120 122 113 129 122 113 129 122 133 132
++122 133 132 122 113 129 104 108 124 86 83 83 68 75 77 68 67 72 68 75 77 86 83 83
++86 83 83 87 76 74 87 76 74 113 97 77 137 117 96 128 104 97 128 104 97 134 98 86
++128 104 97 143 103 96 134 98 86 113 97 77 134 98 86 134 98 86 128 104 97 128 104 97
++141 108 110 165 137 101 206 156 159 242 198 175 240 208 188 240 208 188 229 200 201 203 196 201
++143 151 181 166 181 211 173 175 176 131 128 178 143 146 150 104 108 124 75 64 67 99 79 59
++133 69 69 113 97 36 133 69 69 137 117 96 165 108 102 165 137 101 191 160 135 184 123 101
++191 160 135 184 128 126 165 137 101 164 133 127 191 160 135 210 216 207 210 216 207 203 196 201
++188 189 180 143 146 150 141 138 138 141 154 138 141 132 131 99 96 86 128 104 97 113 97 77
++99 96 86 103 106 97 123 109 109 137 117 96 137 117 96 184 123 101 164 142 149 211 221 218
++211 221 218 182 181 190 210 216 207 238 233 218 211 221 218 210 216 207 211 221 218 211 221 218
++238 233 218 225 201 230 211 221 218 235 233 206 188 177 159 141 108 110 141 128 110 163 158 149
++123 133 112 75 83 72 71 59 54 68 68 60 57 59 55 56 54 51 71 59 54 99 96 86
++99 96 86 113 97 77 87 76 74 68 69 55 68 64 51 113 97 77 165 108 102 184 128 126
++184 128 126 141 128 110 134 98 86 87 76 74 71 81 67 68 68 60 68 69 55 57 59 55
++57 59 55 57 59 55 56 54 51 56 54 51 46 47 45 49 43 41 56 54 51 71 59 54
++71 59 54 56 54 51 49 43 41 46 47 45 49 43 41 46 47 45 39 43 42 49 43 41
++39 43 42 39 37 42 45 39 35 41 38 42 39 43 42 45 39 35 39 43 42 61 46 51
++88 79 65 74 57 60 88 79 65 103 81 83 56 54 51 49 43 41 68 50 43 49 43 41
++49 43 41 49 43 41 48 36 41 48 36 41 41 38 42 41 38 42 39 37 42 39 37 42
++39 37 42 28 32 42 39 37 42 39 37 42 41 38 42 46 47 45 56 54 51 57 45 51
++57 45 51 46 47 45 49 43 41 46 47 45 41 38 42 35 34 35 39 37 42 39 37 42
++
++240 208 188 240 189 188 228 160 135 134 98 86 99 79 59 88 79 65 104 88 73 86 83 83
++104 88 73 83 103 97 103 106 97 141 138 138 173 167 157 212 185 189 212 206 189 240 208 188
++235 233 206 212 185 189 188 172 163 141 138 138 123 109 109 103 106 97 86 83 83 86 83 83
++86 83 83 68 75 77 71 81 67 103 106 97 122 133 132 188 177 159 212 206 189 240 208 188
++240 208 188 240 208 188 240 189 188 240 208 188 240 189 188 242 198 175 210 180 161 210 180 161
++215 195 173 229 200 201 203 196 201 188 189 180 163 158 149 123 109 109 114 99 97 141 108 110
++141 128 110 164 133 127 164 133 127 191 160 135 210 180 161 215 195 173 215 195 173 210 180 161
++164 133 127 104 88 73 86 83 83 99 96 86 71 59 54 27 32 26 41 33 22 21 19 21
++21 19 15 41 28 14 133 69 69 134 98 86 133 69 69 134 98 86 134 98 86 134 98 86
++133 69 69 134 98 86 134 98 86 133 69 69 133 69 69 105 79 65 133 65 47 133 23 15
++133 28 45 133 28 45 154 14 17 133 28 45 154 14 17 159 26 46 154 14 17 154 14 17
++133 23 15 133 23 15 133 23 15 133 28 45 133 11 15 100 10 13 133 28 45 68 24 14
++133 65 47 133 78 94 100 10 13 100 10 13 100 10 13 133 23 15 100 10 13 100 10 13
++133 23 15 133 23 15 133 23 15 133 28 45 133 23 15 133 23 15 133 11 15 133 23 15
++100 10 13 100 10 13 68 24 14 100 10 13 100 10 13 68 24 14 100 10 13 100 10 13
++100 10 13 100 10 13 100 10 13 68 24 14 68 24 14 39 14 11 188 147 163 187 177 178
++141 115 130 114 99 97 122 113 129 163 147 193 143 151 181 83 103 97 87 76 74 88 79 65
++104 88 73 113 97 77 118 123 77 137 117 96 137 117 96 135 123 86 104 88 73 88 79 65
++104 88 73 137 117 96 141 139 118 164 133 127 141 128 110 141 115 130 122 113 129 122 133 132
++122 133 132 122 133 132 104 108 124 104 108 124 83 103 97 99 85 89 83 103 97 99 85 89
++86 83 83 68 67 72 104 88 73 114 99 97 141 108 110 137 117 96 141 108 110 137 117 96
++137 117 96 137 117 96 141 108 110 137 117 96 141 108 110 141 108 110 137 117 96 143 103 96
++137 117 96 184 128 126 210 180 161 240 208 188 240 208 188 240 208 188 240 189 188 194 181 189
++143 151 181 173 175 176 143 151 181 143 151 181 131 128 178 122 133 132 104 108 124 68 67 72
++88 79 65 104 88 73 134 98 86 134 98 86 134 98 86 161 121 76 165 108 102 165 137 101
++203 180 109 191 160 135 191 160 135 184 128 126 184 123 101 191 160 135 210 180 161 210 216 207
++189 200 189 203 196 201 188 191 205 189 200 189 141 132 131 99 96 86 104 88 73 114 99 97
++123 109 109 123 133 112 141 128 110 123 109 109 128 104 97 137 117 96 141 108 110 173 167 157
++157 164 157 143 146 150 187 177 178 210 216 207 211 221 218 229 200 201 210 216 207 238 233 218
++225 201 230 235 233 206 212 185 189 215 195 173 215 195 173 210 180 161 191 160 135 164 145 137
++123 133 112 99 96 86 88 79 65 87 76 74 68 64 51 64 57 60 87 76 74 114 99 97
++113 97 77 99 96 86 75 83 72 68 69 55 71 59 54 88 79 65 128 104 97 164 133 127
++164 133 127 165 108 102 99 96 86 104 88 73 86 83 83 71 81 67 68 68 60 57 59 55
++56 54 51 57 59 55 56 54 51 46 47 45 39 43 42 45 39 35 49 43 41 56 54 51
++56 54 51 49 43 41 46 47 45 46 47 45 39 43 42 39 43 42 41 38 42 39 43 42
++41 38 42 39 37 42 33 35 35 39 43 42 37 33 35 39 43 42 41 38 42 57 59 55
++71 59 54 71 59 54 74 57 60 75 64 67 71 59 54 64 57 60 57 45 51 49 43 41
++48 36 41 48 36 41 48 36 41 41 38 42 45 39 35 35 34 35 39 37 42 39 37 42
++39 37 42 39 37 42 39 43 42 39 37 42 39 43 42 46 47 45 57 45 51 49 43 41
++49 43 41 49 43 41 41 38 42 46 47 55 41 38 42 39 37 42 39 37 42 32 31 35
++
++240 208 188 236 180 161 191 160 135 134 98 86 134 98 86 137 117 96 141 128 110 137 117 96
++141 128 110 141 128 110 141 128 110 164 145 137 188 172 163 215 195 173 240 208 188 235 233 206
++240 208 188 242 198 175 188 177 159 164 145 137 141 128 110 137 117 96 128 104 97 128 104 97
++128 104 97 113 97 77 113 97 77 113 97 77 113 97 77 164 133 127 210 180 161 240 208 188
++240 208 188 236 180 161 236 180 161 236 180 161 210 180 161 216 172 134 165 137 101 165 137 101
++164 133 127 164 145 137 166 168 134 163 158 149 141 139 118 99 96 86 104 88 73 114 99 97
++128 104 97 123 109 109 141 128 110 164 145 137 206 156 159 215 195 173 236 180 161 216 172 134
++164 133 127 113 97 77 86 83 83 103 81 83 49 43 41 27 32 26 23 19 15 14 14 18
++23 19 15 68 69 47 133 69 69 133 69 69 105 79 65 133 69 69 113 97 77 134 98 86
++133 69 69 113 97 77 133 69 69 105 79 65 113 97 77 143 103 96 133 65 47 133 28 45
++133 28 45 133 23 15 133 23 15 133 23 15 159 26 46 133 23 15 159 26 46 133 23 15
++154 14 17 133 23 15 133 28 45 133 23 15 100 10 13 133 28 45 68 24 14 164 111 125
++188 147 163 164 133 127 114 99 97 68 24 14 133 28 45 100 10 13 133 23 15 100 41 14
++100 10 13 133 23 15 100 10 13 100 10 13 133 11 15 133 23 15 133 23 15 133 28 45
++133 23 15 100 41 14 133 23 15 100 10 13 100 10 13 133 23 15 133 23 15 133 23 15
++133 23 15 133 28 45 100 10 13 100 10 13 100 10 13 100 10 13 114 99 97 173 175 176
++163 148 159 182 181 190 188 191 205 163 147 193 112 104 120 86 83 83 113 97 77 165 137 101
++203 180 109 203 180 109 216 172 134 203 180 109 235 170 109 203 180 109 161 121 76 137 117 96
++164 145 120 210 180 161 210 180 161 215 195 173 216 172 134 163 158 149 141 138 138 141 138 138
++122 113 129 141 138 138 122 133 132 122 113 129 112 104 120 104 108 124 112 104 120 104 108 124
++86 83 83 88 79 65 99 96 86 143 103 96 137 117 96 141 128 110 165 108 102 141 128 110
++141 108 110 141 128 110 141 128 110 141 128 110 137 117 96 141 108 110 137 117 96 143 103 96
++143 103 96 191 160 135 240 208 188 240 208 188 238 233 218 240 208 188 242 198 175 215 195 173
++157 164 157 143 151 181 166 181 211 143 151 181 143 146 150 131 128 178 122 133 132 112 104 120
++75 64 67 73 50 50 104 74 73 113 97 36 134 98 86 134 98 86 161 121 76 165 108 102
++184 123 101 228 160 135 191 160 135 216 172 134 191 160 135 191 160 135 191 160 135 164 145 137
++210 180 161 189 200 189 203 196 201 194 181 189 114 121 97 104 88 73 103 81 83 114 121 97
++141 139 118 141 128 110 141 128 110 123 109 109 113 97 77 114 99 97 113 97 77 114 99 97
++141 128 110 141 128 110 114 99 97 164 145 137 212 185 189 212 206 189 229 200 201 210 216 207
++238 233 218 212 206 189 210 180 161 242 198 175 215 195 173 236 180 161 210 180 161 164 145 120
++128 104 97 113 97 77 99 96 86 99 96 86 88 79 65 71 81 67 113 97 77 114 121 97
++103 117 86 104 88 73 75 64 67 64 57 60 68 68 60 74 57 60 103 81 83 165 137 101
++164 145 120 141 128 110 88 79 65 99 96 86 104 88 73 99 96 86 86 83 83 68 69 55
++57 59 55 56 54 51 56 54 51 57 45 51 39 43 42 39 43 42 45 39 35 56 54 51
++49 43 41 46 47 45 46 47 45 49 43 41 41 38 42 49 43 41 41 38 42 39 43 42
++45 39 35 41 38 42 39 43 42 35 34 35 39 37 42 35 34 35 39 37 42 56 54 51
++68 50 43 71 59 54 71 59 54 74 57 60 56 54 51 61 46 51 49 43 41 48 36 41
++57 45 51 49 43 41 48 36 41 41 38 42 35 34 35 39 37 42 39 37 42 39 37 42
++39 37 42 39 37 42 39 37 42 39 37 42 41 38 42 46 47 45 57 45 51 46 47 45
++48 36 41 41 38 42 41 38 42 46 47 45 41 38 42 28 32 42 39 37 42 35 34 35
++
++240 189 188 236 180 161 184 123 101 161 121 76 184 123 101 184 123 101 191 160 135 216 122 126
++191 160 135 191 160 135 164 145 137 164 145 137 210 180 161 240 189 188 240 208 188 240 208 188
++240 208 188 215 195 173 191 160 135 191 160 135 191 160 135 184 128 126 191 160 135 184 123 101
++184 123 101 184 123 101 165 137 101 184 123 101 143 103 96 128 104 97 188 147 163 206 156 159
++228 160 135 191 160 135 184 123 101 184 128 126 184 128 126 184 123 101 134 98 86 99 79 59
++104 88 73 113 97 77 113 97 77 113 97 77 104 88 73 104 88 73 88 79 65 104 88 73
++87 76 74 104 88 73 103 81 83 164 133 127 191 160 135 236 180 161 215 195 173 236 180 161
++191 160 135 137 117 96 104 88 73 68 68 60 45 39 35 37 33 35 41 33 22 39 14 11
++23 19 15 105 79 65 134 98 86 134 98 86 133 65 47 105 79 65 105 79 65 134 98 86
++134 98 86 134 98 86 134 98 86 134 98 86 134 98 86 134 98 86 99 36 46 133 23 15
++133 11 15 100 10 13 159 26 46 133 23 15 133 28 45 159 26 46 154 14 17 154 14 17
++133 28 45 133 23 15 133 11 15 133 11 15 99 36 46 143 103 96 141 128 110 133 69 69
++68 24 14 68 24 14 164 111 125 133 69 69 100 10 13 100 10 13 100 10 13 100 10 13
++133 23 15 99 36 46 133 11 15 133 11 15 100 10 13 100 10 13 133 23 15 100 10 13
++133 23 15 133 11 15 133 28 45 133 23 15 133 28 45 133 23 15 133 23 15 133 23 15
++133 28 45 133 23 15 133 23 15 100 10 13 100 10 13 100 10 13 74 57 60 173 175 176
++166 181 211 188 196 234 166 181 211 163 147 193 86 83 83 113 97 77 184 123 101 216 172 134
++235 170 109 216 210 134 242 198 157 235 213 109 242 198 157 235 170 109 165 137 101 191 160 135
++242 198 175 240 189 188 240 208 188 240 208 188 240 208 188 215 195 173 188 172 163 141 138 138
++122 133 132 131 128 178 122 113 129 112 124 124 112 124 124 104 108 124 112 124 124 112 104 120
++99 96 86 86 83 83 114 99 97 128 104 97 137 117 96 143 103 96 141 128 110 141 128 110
++165 108 102 141 128 110 164 111 125 141 128 110 164 111 125 137 117 96 141 108 110 134 98 86
++143 103 96 191 160 135 240 189 188 240 208 188 245 232 231 240 208 188 240 189 188 215 195 173
++141 138 138 122 133 132 143 151 181 173 175 176 131 128 178 143 146 150 91 128 178 122 113 129
++103 106 97 99 85 89 68 75 77 88 79 65 99 79 59 105 79 65 134 98 86 134 98 86
++165 108 102 165 137 101 184 128 126 216 172 134 191 160 135 216 172 134 191 160 135 191 160 135
++206 156 159 215 195 173 203 196 201 141 132 131 99 96 86 103 106 97 99 96 86 123 109 109
++141 139 118 141 139 118 123 109 109 103 106 97 114 99 97 104 88 73 88 79 65 128 104 97
++141 139 118 141 128 110 99 96 86 114 99 97 164 145 137 191 160 135 191 160 135 188 177 159
++210 180 161 210 180 161 210 180 161 215 197 156 215 195 173 236 180 161 215 197 156 191 160 135
++135 123 86 113 97 77 137 117 96 141 139 118 114 99 97 99 96 86 114 121 97 128 104 97
++103 106 97 88 79 65 68 68 60 88 79 65 71 59 54 71 59 54 104 74 73 141 108 110
++141 128 110 104 88 73 104 88 73 103 117 86 99 96 86 99 96 86 104 88 73 71 81 67
++57 59 55 56 54 51 56 54 51 46 47 45 39 43 42 46 47 45 39 43 42 49 43 41
++46 47 45 46 47 45 46 47 45 41 38 42 39 43 42 39 43 42 39 43 42 41 38 42
++39 43 42 39 37 42 45 39 35 39 37 42 35 34 35 39 43 42 45 39 35 46 47 45
++56 54 51 73 50 50 71 59 54 68 50 43 56 54 51 57 45 51 49 43 41 49 43 41
++48 36 41 49 43 41 41 38 42 41 38 42 39 37 42 35 34 35 39 37 42 39 37 42
++39 37 42 28 32 42 39 37 42 33 35 35 39 43 42 46 47 45 46 47 45 46 47 45
++48 36 41 39 37 42 39 37 42 39 37 42 39 37 42 39 37 42 37 33 35 28 32 42
++
++236 180 161 191 160 135 165 108 102 161 121 76 165 137 101 216 172 134 216 172 134 216 172 134
++216 172 134 191 160 135 164 145 137 163 158 149 188 177 159 242 198 175 240 189 188 240 208 188
++215 195 173 210 180 161 191 160 135 191 160 135 216 172 134 216 172 134 235 170 109 216 172 134
++235 170 109 216 172 134 228 160 135 191 160 135 165 137 101 113 97 77 128 104 97 165 108 102
++165 108 102 184 123 101 191 160 135 216 172 134 216 172 134 184 128 126 161 121 76 134 98 86
++165 108 102 161 121 76 165 137 101 184 123 101 165 137 101 165 108 102 165 137 101 165 108 102
++137 117 96 135 123 86 143 103 96 164 145 120 215 197 156 242 198 175 215 195 173 242 198 175
++210 180 161 184 128 126 88 79 65 68 33 37 45 30 35 48 36 41 68 24 14 68 24 14
++100 41 14 134 98 86 133 69 69 134 98 86 133 69 69 99 61 48 99 79 59 105 79 65
++134 98 86 135 123 86 134 98 86 113 97 77 133 65 47 99 36 46 100 10 13 100 10 13
++133 23 15 133 23 15 133 23 15 133 28 45 133 23 15 154 14 17 159 26 46 133 23 15
++159 26 46 133 23 15 100 10 13 164 111 125 206 156 159 133 69 69 68 24 14 99 36 46
++133 23 15 100 10 13 68 24 14 164 111 125 71 59 54 100 10 13 100 10 13 100 41 14
++100 10 13 133 11 15 133 23 15 133 28 45 133 23 15 133 28 45 133 23 15 133 28 45
++133 23 15 159 26 46 159 26 46 133 23 15 133 11 15 133 28 45 133 23 15 133 28 45
++133 23 15 133 23 15 133 23 15 133 23 15 133 23 15 100 41 14 99 36 46 163 147 193
++166 181 211 225 201 230 166 181 211 143 151 181 114 99 97 165 137 101 235 213 109 242 198 157
++235 213 109 242 198 157 239 232 157 242 198 157 242 198 157 235 170 109 172 173 110 206 156 159
++240 208 188 240 208 188 238 233 218 240 208 188 238 233 218 240 208 188 212 185 189 163 148 159
++141 138 138 141 138 138 163 148 159 157 164 157 143 146 150 143 146 150 141 138 138 122 113 129
++114 99 97 128 104 97 137 117 96 137 117 96 137 117 96 143 103 96 141 128 110 141 108 110
++141 128 110 141 128 110 141 128 110 141 128 110 137 117 96 137 117 96 128 104 97 113 97 77
++133 69 69 184 123 101 236 180 161 240 208 188 240 208 188 240 208 188 240 208 188 212 185 189
++187 177 178 99 85 89 112 124 124 143 151 181 166 181 211 143 146 150 122 113 129 104 108 124
++104 108 124 103 106 97 86 83 83 86 83 83 86 83 83 88 79 65 99 79 59 99 61 48
++105 79 65 105 79 65 134 98 86 164 133 127 216 172 134 228 160 135 191 160 135 216 172 134
++206 156 159 210 180 161 191 160 135 128 104 97 114 99 97 113 97 77 99 96 86 141 128 110
++141 138 138 141 128 110 114 121 97 113 97 77 114 99 97 99 96 86 104 88 73 123 109 109
++141 132 131 123 133 112 114 99 97 113 97 77 141 128 110 191 160 135 203 180 109 210 180 161
++236 180 161 210 180 161 236 180 161 215 197 156 215 195 173 236 180 161 215 195 173 216 172 134
++191 160 135 137 117 96 141 128 110 164 145 137 137 117 96 137 117 96 141 128 110 137 117 96
++103 106 97 88 79 65 88 79 65 88 79 65 75 64 67 71 59 54 75 64 67 104 88 73
++104 88 73 104 88 73 113 97 77 103 117 86 113 97 77 99 96 86 99 96 86 86 83 83
++57 59 55 42 59 47 46 47 45 56 54 51 46 47 45 46 47 45 46 47 45 46 47 45
++46 47 45 49 43 41 39 43 42 39 43 42 41 38 42 39 43 42 49 43 41 39 43 42
++41 38 42 39 43 42 35 34 35 39 43 42 39 43 42 46 47 45 46 47 45 49 43 41
++49 43 41 56 54 51 56 54 51 56 54 51 58 53 60 57 45 51 49 43 41 49 43 41
++49 43 41 48 36 41 45 39 35 41 38 42 39 37 42 39 37 42 39 37 42 39 37 42
++39 37 42 39 37 42 39 37 42 39 37 42 49 43 41 46 47 45 57 45 51 49 43 41
++39 43 42 35 34 35 35 34 35 35 34 35 39 37 42 39 37 42 35 34 35 35 34 35
++
++236 180 161 184 128 126 134 98 86 134 98 86 184 123 101 216 172 134 216 172 134 216 172 134
++191 160 135 191 160 135 164 145 137 164 133 127 173 167 157 215 195 173 210 180 161 141 139 118
++123 109 109 123 109 109 141 108 110 164 133 127 216 122 126 216 172 134 235 170 109 228 160 135
++242 198 157 235 170 109 228 160 135 216 122 126 141 128 110 99 85 89 103 81 83 105 79 65
++134 98 86 184 123 101 191 160 135 231 153 161 228 160 135 191 160 135 165 108 102 161 121 76
++184 123 101 235 170 109 216 122 126 203 180 109 228 160 135 223 122 101 203 180 109 191 160 135
++184 123 101 184 123 101 165 137 101 184 128 126 184 128 126 206 156 159 236 180 161 206 156 159
++165 108 102 159 63 71 133 28 45 133 65 47 133 23 15 133 28 45 133 23 15 133 28 45
++133 28 45 134 98 86 133 69 69 134 98 86 133 65 47 99 61 48 99 61 48 105 79 65
++134 98 86 134 98 86 134 98 86 134 98 86 99 61 48 100 10 13 133 23 15 133 28 45
++133 28 45 133 28 45 133 23 15 133 23 15 154 14 17 159 26 46 133 23 15 133 23 15
++159 26 46 133 23 15 134 98 86 128 104 97 87 76 74 68 33 37 99 36 46 100 10 13
++99 36 46 99 36 46 99 36 46 99 61 48 137 117 96 104 74 73 100 10 13 100 10 13
++133 23 15 100 10 13 133 23 15 133 11 15 133 23 15 133 23 15 154 14 17 133 23 15
++133 23 15 133 23 15 133 23 15 133 23 15 133 23 15 133 23 15 154 14 17 154 14 17
++133 28 45 133 23 15 133 23 15 133 23 15 100 10 13 100 10 13 99 36 46 163 147 193
++166 181 211 163 147 193 163 147 193 131 128 178 99 85 89 184 128 126 216 210 134 242 198 157
++239 232 157 242 198 157 235 213 109 239 232 157 235 213 109 203 180 109 184 123 101 191 160 135
++215 195 173 242 198 175 240 208 188 240 208 188 240 208 188 240 208 188 240 189 188 188 172 163
++141 115 130 163 148 159 194 181 189 188 191 205 194 181 189 188 189 180 173 175 176 163 158 149
++164 133 127 141 128 110 165 108 102 143 103 96 128 104 97 137 117 96 143 103 96 137 117 96
++165 108 102 141 128 110 165 108 102 141 108 110 143 103 96 128 104 97 134 98 86 105 79 65
++133 69 69 165 108 102 216 122 126 240 208 188 240 208 188 245 232 231 240 208 188 229 200 201
++240 189 188 75 64 67 45 30 35 39 43 42 61 60 67 68 75 77 68 75 77 68 75 77
++61 60 67 68 67 72 68 75 77 86 83 83 86 83 83 86 83 83 99 96 86 99 96 86
++99 96 86 134 98 86 113 97 77 105 79 65 134 98 86 184 128 126 206 156 159 210 180 161
++216 172 134 210 180 161 210 180 161 191 160 135 137 117 96 99 96 86 114 99 97 141 139 118
++164 145 137 141 128 110 123 109 109 114 99 97 114 121 97 104 88 73 103 81 83 141 128 110
++141 138 138 137 117 96 114 99 97 103 106 97 113 97 77 191 160 135 216 172 134 210 180 161
++215 197 156 236 180 161 215 197 156 215 195 173 242 198 175 215 197 156 236 180 161 215 197 156
++210 180 161 164 145 120 165 137 101 141 128 110 141 128 110 164 145 137 164 145 120 114 121 97
++99 96 86 104 88 73 86 83 83 104 88 73 71 82 60 57 59 55 56 54 51 68 64 51
++71 82 60 104 88 73 103 106 97 113 97 77 103 117 86 99 96 86 104 88 73 75 83 72
++68 69 55 46 47 45 56 54 51 57 59 55 71 59 54 68 64 51 57 45 51 46 47 45
++46 47 45 39 43 42 41 38 42 41 38 42 39 43 42 41 38 42 39 43 42 41 38 42
++39 43 42 45 39 35 39 43 42 39 43 42 46 47 45 46 47 45 46 47 45 49 43 41
++56 54 51 56 54 51 56 54 51 64 57 60 68 68 60 57 45 51 46 47 45 49 43 41
++49 43 41 41 38 42 41 38 42 37 33 35 35 34 35 39 37 42 39 37 42 33 35 35
++39 37 42 39 37 42 33 35 35 35 34 35 41 38 42 49 43 41 46 47 45 49 43 41
++41 38 42 35 34 35 39 37 42 35 34 35 35 34 35 28 32 42 35 34 35 35 34 35
++
++191 160 135 165 137 101 99 79 59 113 97 77 165 137 101 191 160 135 191 160 135 216 172 134
++228 160 135 191 160 135 164 133 127 141 128 110 163 148 159 188 172 163 173 167 157 114 99 97
++75 64 67 87 76 74 99 96 86 128 104 97 161 121 76 184 123 101 184 123 101 235 170 109
++228 160 135 228 160 135 216 172 134 184 128 126 128 104 97 99 96 86 99 85 89 99 79 59
++113 97 77 165 108 102 228 160 135 206 156 159 216 172 134 184 128 126 165 108 102 165 108 102
++235 170 109 228 160 135 235 170 109 216 172 134 235 170 109 242 198 157 228 160 135 223 122 101
++212 122 83 181 55 69 181 55 69 181 55 69 159 26 46 181 55 69 159 26 46 159 26 46
++154 14 17 159 26 46 154 14 17 181 55 69 154 14 17 159 26 46 154 14 17 159 26 46
++159 26 46 159 63 71 134 98 86 133 69 69 105 79 65 99 61 48 99 61 48 99 61 48
++134 98 86 133 65 47 113 97 77 165 108 102 99 61 48 133 23 15 133 28 45 159 26 46
++159 26 46 159 26 46 133 28 45 133 28 45 133 23 15 154 14 17 133 23 15 133 23 15
++133 23 15 154 14 17 99 61 48 123 109 109 164 133 127 188 147 163 141 128 110 141 132 131
++114 99 97 141 132 131 188 172 163 104 74 73 68 24 14 165 108 102 88 79 65 100 10 13
++100 10 13 133 28 45 133 23 15 133 28 45 133 28 45 133 23 15 133 28 45 159 26 46
++133 23 15 133 28 45 133 28 45 133 28 45 133 23 15 154 59 17 133 28 45 133 23 15
++133 23 15 133 11 15 133 23 15 133 28 45 133 23 15 100 10 13 99 36 46 122 113 129
++143 146 150 131 128 178 122 113 129 103 106 97 113 97 77 165 137 101 235 213 109 242 198 157
++242 198 157 239 232 157 242 198 157 242 198 157 235 213 109 184 123 101 134 98 86 164 133 127
++210 180 161 242 198 175 240 189 188 242 198 175 240 189 188 240 208 188 210 180 161 164 142 149
++141 115 130 173 167 157 187 177 178 212 206 189 203 196 201 194 181 189 188 189 180 163 158 149
++164 133 127 165 108 102 165 108 102 143 103 96 113 97 77 134 98 86 128 104 97 128 104 97
++137 117 96 137 117 96 141 108 110 137 117 96 128 104 97 128 104 97 134 98 86 133 69 69
++159 63 71 224 65 75 216 122 126 240 189 188 240 208 188 240 208 188 245 232 231 240 208 188
++141 108 110 41 28 14 45 30 35 31 42 35 33 35 35 31 42 35 30 34 36 33 35 35
++28 30 29 27 32 26 46 47 45 57 45 51 75 64 67 68 75 77 68 75 77 86 83 83
++99 96 86 112 124 124 164 142 149 173 167 157 164 133 127 104 74 73 134 98 86 236 180 161
++210 180 161 210 180 161 236 180 161 210 180 161 206 156 159 141 128 110 114 99 97 141 128 110
++164 145 137 141 132 131 114 121 97 128 104 97 114 99 97 99 96 86 114 99 97 141 132 131
++141 139 118 128 104 97 114 99 97 99 96 86 114 99 97 141 128 110 210 180 161 210 180 161
++215 197 156 215 195 173 236 180 161 215 195 173 236 180 161 215 195 173 236 180 161 210 180 161
++210 180 161 216 172 134 191 160 135 137 117 96 141 108 110 191 160 135 164 145 137 137 139 97
++99 96 86 99 96 86 88 79 65 99 96 86 68 68 60 57 59 55 56 54 51 57 59 55
++113 97 77 99 96 86 99 96 86 99 96 86 99 96 86 88 79 65 99 96 86 86 83 83
++68 64 51 56 54 51 71 59 54 88 79 65 104 88 73 105 79 65 74 57 60 56 54 51
++46 47 45 41 38 42 39 43 42 46 47 45 41 38 42 39 43 42 41 38 42 39 43 42
++41 38 42 39 43 42 46 47 45 46 47 45 46 47 45 46 47 45 46 47 45 49 43 41
++57 59 55 56 54 51 58 53 60 68 68 60 61 60 67 46 47 45 46 47 45 46 47 45
++41 38 42 49 43 41 41 38 42 39 37 42 39 37 42 39 37 42 30 34 36 39 37 42
++39 37 42 39 37 42 39 37 42 39 37 42 41 38 42 46 47 45 46 47 45 41 38 42
++39 37 42 35 34 35 33 35 35 39 37 42 35 34 35 39 37 42 35 34 35 32 31 35
++
++164 133 127 137 117 96 71 59 54 68 69 55 113 97 77 161 121 76 164 145 120 203 180 109
++228 160 135 184 123 101 165 137 101 137 117 96 143 146 150 173 167 157 163 148 159 123 109 109
++86 83 83 75 83 72 87 76 74 88 79 65 88 79 65 113 97 77 161 121 76 184 123 101
++216 172 134 216 172 134 184 123 101 137 117 96 99 96 86 103 106 97 128 104 97 137 117 96
++165 108 102 165 137 101 191 160 135 184 128 126 165 137 101 143 103 96 114 99 97 137 117 96
++191 160 135 216 172 134 216 172 134 216 172 134 223 122 101 161 121 76 181 55 69 181 55 69
++181 55 69 181 55 69 181 55 69 159 26 46 159 26 46 159 26 46 154 14 17 159 26 46
++154 14 17 159 26 46 154 14 17 159 26 46 154 59 17 159 26 46 154 14 17 154 59 17
++154 14 17 133 65 47 159 63 71 113 97 36 133 69 69 133 65 47 99 61 48 99 61 48
++133 69 69 105 79 65 164 145 137 164 145 137 133 65 47 133 28 45 133 28 45 133 28 45
++133 23 15 133 23 15 133 23 15 133 23 15 133 23 15 133 28 45 133 23 15 133 23 15
++133 23 15 133 28 45 99 36 46 184 128 126 104 74 73 99 61 48 100 10 13 104 74 73
++87 76 74 123 109 109 103 81 83 68 24 14 100 10 13 100 10 13 123 109 109 133 78 94
++100 41 14 133 11 15 133 23 15 133 11 15 133 23 15 133 28 45 154 14 17 133 23 15
++133 28 45 133 23 15 133 58 15 100 41 14 133 58 15 133 65 47 154 59 17 133 23 15
++133 28 45 133 23 15 133 23 15 133 23 15 100 10 13 100 10 13 99 61 48 128 104 97
++123 109 109 128 104 97 123 109 109 103 106 97 113 97 77 172 173 110 228 160 135 239 232 157
++235 213 109 242 198 157 242 198 157 235 213 109 235 170 109 161 121 76 113 97 36 161 121 76
++216 172 134 236 180 161 242 198 175 242 198 175 242 198 175 215 195 173 187 177 178 141 132 131
++114 99 97 141 132 131 163 148 159 188 172 163 173 175 176 173 183 156 173 175 176 141 132 131
++141 108 110 134 98 86 134 98 86 113 97 77 103 81 83 104 88 73 104 88 73 113 97 77
++114 99 97 113 97 77 114 99 97 113 97 77 113 97 77 103 81 83 104 88 73 159 63 71
++159 63 71 224 65 75 223 122 101 236 180 161 240 208 188 238 233 218 188 147 163 99 85 89
++73 50 50 37 33 35 35 34 35 35 34 35 32 31 35 41 33 22 28 30 29 35 34 35
++35 34 35 35 34 35 28 30 29 32 26 35 35 34 35 57 45 51 58 53 60 61 60 67
++87 76 74 86 83 83 123 109 109 143 146 150 203 196 201 210 216 207 164 133 127 191 160 135
++236 180 161 236 180 161 210 180 161 210 180 161 216 172 134 206 156 159 191 160 135 164 145 120
++141 132 131 164 145 120 141 128 110 128 104 97 114 121 97 113 97 77 123 109 109 141 139 118
++141 139 118 99 96 86 104 88 73 99 96 86 114 121 97 104 88 73 113 97 77 165 137 101
++191 160 135 210 180 161 210 180 161 215 197 156 236 180 161 215 197 156 215 197 156 236 180 161
++215 197 156 236 180 161 216 172 134 184 128 126 165 137 101 191 160 135 164 145 137 128 104 97
++86 83 83 88 79 65 88 79 65 99 96 86 68 69 55 71 59 54 56 54 51 68 68 60
++99 96 86 104 88 73 99 96 86 99 96 86 99 96 86 99 96 86 99 96 86 88 79 65
++68 64 51 64 57 60 104 74 73 134 98 86 143 103 96 134 98 86 104 74 73 71 59 54
++46 47 45 49 43 41 39 43 42 46 47 45 41 38 42 39 43 42 41 38 42 39 43 42
++41 38 42 39 43 42 46 47 45 56 54 51 46 47 55 46 47 45 46 47 45 41 38 42
++64 57 60 68 67 72 86 83 83 86 83 83 56 54 51 46 47 45 46 47 45 46 47 45
++39 43 42 41 38 42 41 38 42 39 37 42 33 35 35 39 37 42 39 37 42 39 37 42
++30 34 36 39 37 42 39 37 42 33 35 35 39 37 42 39 43 42 41 38 42 35 34 35
++33 35 35 35 34 35 35 34 35 35 34 35 39 37 42 32 31 35 32 31 35 32 31 35
++
++137 117 96 99 96 86 56 54 51 57 59 55 71 59 54 105 79 65 143 103 96 184 123 101
++203 180 109 184 123 101 134 98 86 104 88 73 112 124 124 163 148 159 143 146 150 112 124 124
++86 83 83 86 83 83 68 75 77 68 68 60 68 67 72 71 59 54 104 88 73 165 137 101
++203 180 109 216 122 126 141 128 110 114 99 97 114 99 97 163 158 149 191 160 135 210 180 161
++236 180 161 216 172 134 216 172 134 184 128 126 143 103 96 88 79 65 68 67 72 114 99 97
++165 137 101 165 137 101 191 160 135 216 172 134 159 63 71 159 26 46 197 60 17 159 26 46
++175 13 17 159 26 46 197 60 17 159 26 46 154 14 17 159 26 46 133 23 15 133 23 15
++159 26 46 154 59 17 159 26 46 159 26 46 159 26 46 133 28 45 159 26 46 159 26 46
++175 13 17 159 26 46 154 59 17 134 98 86 134 98 86 113 97 36 133 65 47 99 36 46
++87 76 74 194 181 189 188 196 234 210 221 240 133 78 94 133 28 45 133 23 15 159 26 46
++133 28 45 133 23 15 133 28 45 133 11 15 133 23 15 154 14 17 133 28 45 133 23 15
++100 10 13 99 36 46 133 23 15 68 24 14 164 111 125 68 24 14 133 23 15 99 36 46
++188 147 163 123 109 109 68 24 14 100 10 13 100 10 13 99 36 46 99 36 46 143 103 96
++99 36 46 133 23 15 100 10 13 133 28 45 133 23 15 133 23 15 133 23 15 133 23 15
++133 23 15 100 10 13 133 58 15 133 58 15 113 97 36 133 58 15 154 59 17 100 41 14
++133 23 15 159 26 46 159 26 46 133 23 15 100 10 13 68 24 14 165 137 101 164 145 120
++165 137 101 165 137 101 165 137 101 141 139 118 165 108 102 203 180 109 235 170 109 242 198 157
++239 232 157 242 198 157 242 198 157 216 172 134 212 122 83 202 181 82 161 121 76 165 137 101
++210 180 161 242 198 175 240 208 188 240 208 188 240 208 188 229 200 201 212 206 189 143 146 150
++114 121 97 123 109 109 123 109 109 123 133 112 123 133 112 141 154 138 163 158 149 141 139 118
++114 99 97 113 97 77 133 78 94 104 74 73 88 79 65 88 79 65 87 76 74 87 76 74
++87 76 74 103 81 83 86 83 83 104 74 73 86 83 83 104 74 73 88 79 65 133 65 47
++159 63 71 159 63 71 184 123 101 206 156 159 240 189 188 99 96 86 20 28 24 46 47 45
++39 37 42 39 43 42 28 32 42 39 37 42 37 33 35 48 36 41 35 34 35 39 43 42
++37 33 35 39 37 42 32 31 35 30 34 36 30 34 36 27 32 26 35 34 35 39 43 42
++68 64 51 68 67 72 86 83 83 86 83 83 112 124 124 157 164 157 212 206 189 191 160 135
++210 180 161 236 180 161 210 180 161 210 180 161 236 180 161 206 156 159 216 172 134 164 145 137
++164 145 120 141 132 131 123 133 112 128 104 97 114 99 97 114 99 97 141 128 110 141 139 118
++123 109 109 99 96 86 88 79 65 99 96 86 114 99 97 99 96 86 88 79 65 71 59 54
++164 133 127 216 172 134 216 172 134 215 197 156 215 195 173 210 180 161 236 180 161 210 180 161
++215 197 156 210 180 161 210 180 161 210 180 161 164 145 120 164 145 120 164 145 120 88 79 65
++71 82 60 68 69 55 86 83 83 104 88 73 71 59 54 56 54 51 57 45 51 71 81 67
++99 96 86 99 96 86 103 117 86 99 96 86 88 79 65 99 96 86 99 96 86 104 88 73
++71 59 54 75 64 67 113 97 77 165 108 102 165 108 102 143 103 96 133 69 69 71 59 54
++56 54 51 39 43 42 41 38 42 46 47 45 39 43 42 39 43 42 41 38 42 45 39 35
++39 43 42 49 43 41 46 47 55 46 47 45 46 47 45 56 54 51 46 47 45 46 47 45
++64 57 60 86 83 83 103 106 97 68 67 72 39 43 42 46 47 45 46 47 45 46 47 45
++46 47 45 46 47 45 41 38 42 39 43 42 39 37 42 39 37 42 39 37 42 39 37 42
++39 37 42 39 37 42 39 37 42 39 37 42 39 37 42 41 38 42 39 37 42 39 37 42
++35 34 35 35 34 35 35 34 35 33 35 35 35 34 35 32 31 35 32 31 35 32 31 35
++
++99 96 86 87 76 74 64 57 60 56 54 51 56 54 51 56 54 51 99 79 59 134 98 86
++165 108 102 137 117 96 104 88 73 68 68 60 86 83 83 123 109 109 112 124 124 99 96 86
++75 83 72 75 83 72 68 75 77 75 64 67 68 68 60 68 68 60 104 88 73 165 137 101
++184 128 126 184 123 101 141 128 110 128 104 97 164 145 137 215 195 173 240 208 188 240 208 188
++242 198 175 242 198 175 236 180 161 191 160 135 137 117 96 103 81 83 86 83 83 86 83 83
++99 85 89 141 115 130 141 132 131 165 108 102 159 26 46 159 26 46 159 26 46 159 26 46
++159 26 46 159 26 46 159 26 46 181 55 69 154 14 17 159 26 46 159 26 46 159 26 46
++154 14 17 159 26 46 154 14 17 159 26 46 154 14 17 159 26 46 159 26 46 159 26 46
++159 26 46 159 26 46 159 26 46 159 63 71 133 65 47 105 79 65 99 61 48 164 142 149
++188 191 205 210 221 240 188 196 234 173 175 176 99 36 46 100 10 13 99 36 46 133 23 15
++133 28 45 133 23 15 133 11 15 133 23 15 133 28 45 133 23 15 133 23 15 133 23 15
++100 10 13 133 23 15 100 10 13 68 24 14 113 97 77 133 78 94 99 36 46 164 133 127
++188 172 163 99 36 46 100 10 13 100 10 13 100 10 13 99 36 46 173 167 157 133 69 69
++141 115 130 99 61 48 100 10 13 133 11 15 100 10 13 133 23 15 133 28 45 100 10 13
++100 10 13 133 23 15 100 41 14 100 41 14 133 58 15 99 79 28 100 41 14 133 23 15
++154 14 17 159 26 46 133 23 15 100 10 13 68 24 14 161 121 76 228 160 135 216 172 134
++216 172 134 216 172 134 203 180 109 216 172 134 191 160 135 191 160 135 216 172 134 216 210 134
++242 198 175 235 233 206 240 208 188 215 197 156 203 180 109 212 122 83 162 123 29 143 103 96
++191 160 135 236 180 161 240 208 188 240 208 188 235 233 206 238 233 218 211 221 218 189 200 189
++173 167 157 157 164 157 141 154 138 141 154 138 163 158 149 188 189 175 203 196 201 188 189 180
++163 158 149 128 104 97 113 97 77 114 99 97 99 96 86 99 96 86 114 99 97 113 97 77
++113 97 77 99 96 86 113 97 77 99 96 86 104 88 73 99 85 89 104 88 73 104 74 73
++105 79 65 99 79 59 133 69 69 141 128 110 87 76 74 39 37 42 49 40 56 46 47 55
++41 38 42 35 34 35 33 35 35 35 34 35 33 35 35 39 37 42 35 34 35 35 34 35
++35 34 35 35 34 35 39 37 42 33 35 35 32 31 35 28 30 29 35 34 35 28 30 29
++37 33 35 39 43 42 56 54 51 68 67 72 103 106 97 122 113 129 141 138 138 164 145 137
++210 180 161 216 172 134 215 195 173 236 180 161 210 180 161 210 180 161 210 180 161 216 172 134
++164 133 127 141 128 110 103 106 97 104 88 73 99 96 86 114 99 97 123 109 109 123 109 109
++103 106 97 88 79 65 86 83 83 99 96 86 99 96 86 86 83 83 68 69 55 57 59 55
++75 64 67 128 104 97 164 145 120 216 172 134 210 180 161 236 180 161 215 197 156 215 197 156
++210 180 161 236 180 161 215 197 156 216 172 134 216 172 134 164 145 120 128 104 97 68 64 51
++57 59 55 56 54 51 88 79 65 88 79 65 56 54 51 64 57 60 56 54 51 68 68 60
++104 88 73 99 96 86 99 96 86 88 79 65 99 96 86 99 96 86 88 79 65 88 79 65
++58 61 60 88 79 65 133 78 94 134 98 86 143 103 96 134 98 86 104 74 73 74 57 60
++68 50 43 46 47 45 39 43 42 46 47 45 49 43 41 39 43 42 39 43 42 39 37 42
++41 38 42 46 47 45 46 47 45 56 54 51 46 47 45 46 47 55 46 47 45 39 43 42
++46 47 45 68 75 77 75 64 67 46 47 45 46 47 45 46 47 45 46 47 45 46 47 45
++46 47 45 46 47 45 41 38 42 39 37 42 39 37 42 39 37 42 28 32 42 39 37 42
++35 34 35 35 34 35 35 34 35 39 37 42 35 34 35 39 37 42 39 37 42 35 34 35
++39 37 42 35 34 35 39 37 42 30 34 36 28 32 42 32 31 35 32 31 35 32 31 35
++
++99 85 89 87 76 74 75 64 67 68 64 51 56 54 51 44 55 41 57 59 55 71 82 60
++104 88 73 88 79 65 75 83 72 68 67 72 71 81 67 68 67 72 75 83 72 68 67 72
++68 67 72 87 76 74 75 83 72 68 67 72 68 67 72 71 81 67 104 88 73 165 108 102
++164 145 120 165 137 101 137 117 96 141 139 118 188 177 159 215 195 173 240 208 188 240 208 188
++240 208 188 242 198 175 236 180 161 216 172 134 164 133 127 128 104 97 68 75 77 86 83 83
++96 81 123 122 133 132 141 138 138 133 78 94 159 26 46 159 26 46 159 26 46 159 26 46
++197 60 17 159 26 46 159 26 46 175 13 17 159 26 46 154 59 17 159 26 46 159 26 46
++159 26 46 154 14 17 159 26 46 159 26 46 159 26 46 154 59 17 175 13 17 159 26 46
++159 26 46 159 26 46 159 26 46 133 23 15 133 28 45 133 65 47 122 113 129 211 221 218
++210 221 240 229 221 240 188 196 234 188 147 163 133 28 45 133 28 45 100 10 13 100 10 13
++133 23 15 100 10 13 133 28 45 133 23 15 133 23 15 133 28 45 154 14 17 133 28 45
++100 10 13 100 10 13 99 36 46 100 10 13 100 10 13 165 108 102 104 74 73 164 142 149
++68 33 37 100 10 13 100 10 13 68 33 37 104 74 73 164 142 149 114 99 97 113 97 77
++99 36 46 206 156 159 99 36 46 99 36 46 133 23 15 100 10 13 100 10 13 100 10 13
++100 41 14 133 23 15 133 65 47 99 79 28 100 41 14 100 41 14 100 10 13 133 23 15
++159 26 46 133 28 45 100 10 13 68 24 14 133 69 69 242 198 157 236 180 161 216 172 134
++216 172 134 216 172 134 228 160 135 216 172 134 216 172 134 203 180 109 216 172 134 242 198 157
++235 233 206 245 232 231 238 233 218 238 233 218 216 172 134 165 137 101 134 98 86 113 97 77
++164 145 120 206 156 159 210 180 161 212 185 189 235 233 206 229 221 240 238 233 218 238 233 218
++210 216 207 210 216 207 210 216 207 212 206 189 212 206 189 211 221 218 238 233 218 210 216 207
++210 180 161 191 160 135 164 145 120 164 145 120 165 137 101 184 128 126 165 137 101 184 128 126
++165 137 101 164 133 127 165 137 101 165 137 101 165 108 102 141 128 110 165 137 101 141 128 110
++137 117 96 135 123 86 128 104 97 88 79 65 45 39 35 46 47 55 49 40 56 41 38 42
++35 34 35 28 30 29 35 34 35 33 35 35 35 34 35 33 35 35 33 35 35 35 34 35
++41 38 42 39 43 42 46 47 45 39 43 42 41 38 42 35 34 35 28 30 29 33 35 35
++37 33 35 32 31 35 28 30 29 28 26 35 61 60 67 122 113 129 103 106 97 141 128 110
++210 180 161 210 180 161 236 180 161 210 180 161 236 180 161 236 180 161 236 180 161 191 160 135
++191 160 135 113 97 77 88 79 65 75 83 72 88 79 65 104 88 73 99 96 86 104 88 73
++88 79 65 88 79 65 88 79 65 87 76 74 104 88 73 88 79 65 71 59 54 64 57 60
++57 59 55 68 50 43 113 97 77 191 160 135 191 160 135 210 180 161 216 172 134 210 180 161
++236 180 161 210 180 161 210 180 161 210 180 161 216 172 134 216 172 134 164 145 120 113 97 77
++49 43 41 68 68 60 114 121 97 99 96 86 57 59 55 57 59 55 57 59 55 68 68 60
++99 96 86 113 97 77 99 96 86 86 83 83 103 117 86 75 83 72 104 88 73 86 83 83
++68 64 51 74 57 60 99 61 48 134 98 86 133 69 69 104 74 73 99 79 59 74 57 60
++74 57 60 46 47 45 46 47 45 46 47 45 45 39 35 41 38 42 39 43 42 39 37 42
++39 43 42 46 47 45 46 47 45 46 47 45 46 47 45 46 47 45 46 47 45 46 47 45
++41 38 42 49 43 41 39 43 42 41 38 42 46 47 45 46 47 45 46 47 45 46 47 45
++41 38 42 46 47 45 39 43 42 39 37 42 33 35 35 39 37 42 35 34 35 39 37 42
++35 34 35 37 33 35 39 37 42 35 34 35 39 37 42 39 37 42 35 34 35 39 37 42
++33 35 35 39 37 42 32 31 35 32 31 35 32 26 35 28 32 42 32 31 35 32 31 35
++
++99 96 86 99 85 89 87 76 74 71 81 67 64 57 60 57 59 55 56 54 51 57 59 55
++68 68 60 68 67 72 75 83 72 87 76 74 75 83 72 75 64 67 71 81 67 75 64 67
++68 67 72 68 75 77 75 64 67 68 67 72 71 81 67 75 64 67 99 96 86 137 117 96
++165 137 101 164 133 127 141 128 110 141 128 110 191 160 135 210 180 161 215 195 173 215 195 173
++242 198 157 236 180 161 215 195 173 206 156 159 164 133 127 143 103 96 99 85 89 104 108 124
++122 133 132 122 133 132 141 115 130 133 78 94 159 26 46 159 26 46 175 13 17 159 26 46
++159 26 46 154 14 17 159 26 46 154 59 17 159 26 46 175 13 17 159 26 46 154 59 17
++159 26 46 133 28 45 159 26 46 133 23 15 159 26 46 133 23 15 159 26 46 159 26 46
++154 59 17 159 26 46 154 14 17 133 23 15 154 14 17 134 98 86 188 191 205 188 196 234
++188 196 234 211 221 218 211 221 218 188 147 163 159 26 46 159 26 46 133 28 45 100 10 13
++100 10 13 99 36 46 133 11 15 133 28 45 100 10 13 133 23 15 133 28 45 154 14 17
++133 23 15 100 10 13 100 10 13 133 23 15 100 10 13 99 36 46 113 97 77 99 61 48
++99 36 46 99 36 46 133 78 94 164 145 137 141 108 110 99 36 46 100 10 13 100 10 13
++68 24 14 99 36 46 165 108 102 99 36 46 100 10 13 100 10 13 100 10 13 133 23 15
++100 10 13 100 41 14 100 41 14 100 41 14 100 10 13 133 23 15 154 14 17 154 59 17
++133 23 15 100 10 13 68 24 14 133 65 47 215 195 173 242 198 157 215 197 156 236 180 161
++216 172 134 216 172 134 216 172 134 216 172 134 216 172 134 216 172 134 203 180 109 240 208 188
++245 232 231 246 248 239 246 248 239 245 232 231 229 200 201 191 160 135 113 97 77 104 88 73
++141 108 110 164 145 137 191 160 135 173 167 157 210 216 207 245 232 231 246 248 239 229 221 240
++238 233 218 221 241 240 238 233 218 229 221 240 238 233 218 238 233 218 238 233 218 211 221 218
++215 195 173 216 172 134 228 160 135 191 160 135 228 160 135 191 160 135 216 172 134 184 128 126
++235 170 109 191 160 135 216 122 126 191 160 135 191 160 135 223 122 101 191 160 135 216 122 126
++203 180 109 184 128 126 191 160 135 99 79 59 41 38 42 46 47 45 39 37 42 39 37 42
++46 47 45 35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 41 38 42 39 43 42
++45 39 35 39 37 42 41 38 42 39 37 42 39 43 42 45 39 35 39 37 42 35 34 35
++28 30 29 28 30 29 37 33 35 33 35 35 32 31 35 46 47 55 46 47 45 71 59 54
++184 128 126 216 172 134 236 180 161 210 180 161 236 180 161 210 180 161 236 180 161 228 160 135
++184 128 126 113 97 77 88 79 65 71 81 67 71 81 67 71 81 67 75 83 72 71 81 67
++75 64 67 68 68 60 75 64 67 87 76 74 68 67 72 68 68 60 68 68 60 58 61 60
++58 61 60 57 59 55 71 59 54 88 79 65 165 137 101 191 160 135 216 172 134 216 172 134
++216 172 134 210 180 161 210 180 161 216 172 134 210 180 161 216 172 134 206 156 159 184 128 126
++113 97 77 128 104 97 173 175 176 114 121 97 68 68 60 58 61 60 57 59 55 75 64 67
++99 96 86 88 79 65 75 83 72 88 79 65 75 83 72 88 79 65 71 81 67 75 64 67
++57 59 55 71 59 54 105 79 65 104 74 73 133 69 69 105 79 65 105 79 65 99 79 59
++74 57 60 46 47 45 46 47 45 39 43 42 39 43 42 41 38 42 45 39 35 39 37 42
++39 43 42 46 47 45 46 47 45 46 47 55 46 47 45 46 47 45 46 47 45 41 38 42
++41 38 42 35 34 35 39 37 42 39 43 42 46 47 45 46 47 45 46 47 45 41 38 42
++39 43 42 41 38 42 41 38 42 35 34 35 39 37 42 33 35 35 39 37 42 39 37 42
++37 33 35 35 34 35 39 37 42 39 37 42 35 34 35 39 37 42 35 34 35 32 31 35
++32 31 35 32 31 35 32 31 35 32 31 35 32 31 35 28 32 42 32 26 35 28 26 35
++
++114 99 97 86 83 83 99 85 89 86 83 83 71 81 67 58 53 60 58 53 60 61 46 51
++68 68 60 75 64 67 75 83 72 87 76 74 88 79 65 75 64 67 75 64 67 68 68 60
++71 81 67 75 64 67 75 83 72 68 67 72 75 83 72 87 76 74 113 97 77 137 117 96
++141 128 110 141 128 110 141 128 110 137 117 96 137 117 96 141 128 110 191 160 135 216 172 134
++210 180 161 236 180 161 236 180 161 216 172 134 164 133 127 143 103 96 133 78 94 91 128 178
++122 113 129 112 104 120 133 78 94 133 69 69 159 26 46 159 26 46 154 59 17 133 23 15
++159 26 46 154 14 17 159 26 46 154 14 17 159 26 46 159 26 46 159 26 46 133 28 45
++133 11 15 100 41 14 100 10 13 133 23 15 100 10 13 133 23 15 133 23 15 133 23 15
++154 14 17 159 26 46 159 26 46 133 28 45 133 11 15 164 142 149 188 191 205 210 221 240
++211 221 218 210 221 240 188 196 234 187 177 178 159 63 71 197 60 17 159 26 46 159 26 46
++133 28 45 133 11 15 100 10 13 100 10 13 133 28 45 133 23 15 154 14 17 133 28 45
++133 23 15 133 23 15 133 23 15 100 10 13 100 10 13 133 23 15 99 36 46 164 111 125
++134 98 86 188 172 163 187 177 178 99 61 48 100 10 13 100 10 13 68 33 37 104 74 73
++104 74 73 68 24 14 68 33 37 163 148 159 99 61 48 100 10 13 99 36 46 100 10 13
++100 10 13 68 24 14 100 10 13 100 10 13 133 58 15 159 26 46 159 26 46 133 11 15
++99 36 46 100 10 13 100 41 14 240 208 188 242 198 175 242 198 157 242 198 157 216 172 134
++216 172 134 216 172 134 216 172 134 216 172 134 216 172 134 216 122 126 191 160 135 215 195 173
++245 232 231 245 232 231 246 248 239 246 248 239 246 248 239 212 206 189 164 145 120 104 88 73
++114 99 97 123 133 112 123 109 109 141 138 138 211 221 218 238 233 218 221 241 240 245 232 231
++221 241 240 246 248 239 245 232 231 221 241 240 221 241 240 238 233 218 229 200 201 240 208 188
++216 172 134 228 160 135 216 172 134 228 160 135 216 172 134 216 172 134 235 170 109 216 172 134
++235 170 109 216 172 134 235 170 109 216 172 134 235 170 109 216 172 134 216 172 134 216 172 134
++228 160 135 216 172 134 216 172 134 99 61 48 46 47 55 46 47 55 39 43 42 28 30 29
++68 68 60 39 37 42 33 35 35 39 37 42 35 34 35 39 43 42 35 34 35 35 34 35
++33 35 35 28 30 29 33 35 35 35 34 35 28 30 29 33 35 35 39 37 42 39 43 42
++46 47 45 39 43 42 28 30 29 33 35 35 31 42 35 39 43 42 28 30 29 75 64 67
++164 133 127 191 160 135 210 180 161 231 153 161 191 160 135 228 160 135 191 160 135 191 160 135
++184 123 101 165 108 102 103 81 83 104 88 73 104 88 73 86 83 83 104 88 73 99 85 89
++86 83 83 87 76 74 87 76 74 75 83 72 87 76 74 87 76 74 75 83 72 88 79 65
++68 68 60 68 68 60 71 81 67 75 64 67 99 79 59 143 103 96 191 160 135 191 160 135
++188 177 159 216 172 134 216 172 134 210 180 161 210 180 161 210 180 161 216 172 134 216 172 134
++164 145 120 165 137 101 188 172 163 114 121 97 86 83 83 75 83 72 68 68 60 71 82 60
++86 83 83 86 83 83 86 83 83 75 83 72 68 68 60 58 61 60 71 59 54 56 54 51
++56 54 51 74 57 60 104 74 73 134 98 86 113 97 77 104 74 73 133 69 69 88 79 65
++61 46 51 41 38 42 46 47 45 39 37 42 45 49 35 41 38 42 39 43 42 41 38 42
++39 43 42 41 38 42 46 47 45 46 47 45 46 47 45 46 47 45 46 47 45 46 47 45
++33 35 35 35 34 35 41 38 42 41 38 42 46 47 45 46 47 45 41 38 42 39 43 42
++41 38 42 39 43 42 39 43 42 39 37 42 35 34 35 39 37 42 39 37 42 39 37 42
++37 33 35 39 37 42 37 33 35 39 37 42 39 37 42 32 31 35 39 37 42 32 31 35
++32 31 35 32 31 35 32 31 35 32 31 35 32 31 35 32 31 35 32 31 35 32 31 35
++
++99 96 86 99 96 86 99 96 86 99 96 86 87 76 74 58 61 60 46 47 45 56 54 51
++58 61 60 87 76 74 86 83 83 104 88 73 87 76 74 88 79 65 88 79 65 75 64 67
++68 67 72 75 83 72 68 67 72 87 76 74 86 83 83 99 96 86 128 104 97 141 128 110
++141 128 110 137 117 96 137 117 96 113 97 77 88 79 65 105 79 65 165 137 101 206 156 159
++242 198 157 236 180 161 210 180 161 206 156 159 164 145 137 159 63 71 143 103 96 96 81 123
++104 108 124 133 69 69 159 26 46 133 23 15 133 23 15 133 23 15 133 11 15 159 26 46
++133 28 45 154 59 17 133 23 15 159 26 46 133 23 15 154 59 17 133 23 15 133 11 15
++100 10 13 133 23 15 133 23 15 133 28 45 133 23 15 133 28 45 133 23 15 133 28 45
++133 28 45 154 14 17 159 26 46 133 23 15 133 28 45 203 196 201 210 221 240 210 221 240
++188 196 234 225 201 230 188 196 234 225 201 230 133 69 69 159 26 46 159 26 46 159 26 46
++133 23 15 133 28 45 100 41 14 100 10 13 100 10 13 133 23 15 133 28 45 133 23 15
++133 23 15 100 10 13 100 10 13 99 36 46 100 10 13 100 10 13 100 10 13 128 104 97
++113 97 77 133 78 94 99 61 48 133 11 15 100 10 13 141 128 110 164 133 127 114 99 97
++133 69 69 103 81 83 133 69 69 68 33 37 134 98 86 104 74 73 100 10 13 133 28 45
++133 28 45 154 14 17 133 23 15 159 26 46 133 23 15 133 23 15 100 41 14 100 10 13
++68 24 14 68 24 14 216 172 134 242 198 175 242 198 157 242 198 157 215 197 156 216 172 134
++216 172 134 228 160 135 216 172 134 228 160 135 216 172 134 235 170 109 184 123 101 164 145 120
++215 195 173 238 233 218 245 232 231 245 232 231 245 232 231 235 233 206 215 195 173 164 145 137
++123 109 109 112 104 120 83 103 97 141 138 138 211 221 218 245 232 231 246 248 239 246 248 239
++246 248 239 221 241 240 246 248 239 245 232 231 238 233 218 210 216 207 215 195 173 215 197 156
++216 172 134 216 172 134 216 172 134 216 172 134 228 160 135 216 172 134 216 172 134 228 160 135
++216 172 134 216 172 134 235 170 109 216 172 134 216 172 134 216 172 134 235 170 109 228 160 135
++216 172 134 216 172 134 236 180 161 68 50 43 46 47 55 39 37 42 35 34 35 33 35 35
++68 67 72 28 30 29 35 34 35 35 34 35 35 34 35 35 34 35 32 31 35 33 35 35
++39 37 42 45 39 35 35 34 35 39 37 42 35 34 35 39 43 42 39 43 42 49 43 41
++39 43 42 39 43 42 33 35 35 32 31 35 33 35 35 37 33 35 37 33 35 56 54 51
++74 57 60 113 97 77 228 160 135 216 172 134 184 128 126 228 160 135 184 128 126 228 160 135
++184 128 126 191 160 135 165 108 102 137 117 96 165 108 102 135 123 86 143 103 96 135 123 86
++134 98 86 134 98 86 134 98 86 134 98 86 134 98 86 134 98 86 134 98 86 134 98 86
++113 97 77 113 97 77 114 99 97 113 97 77 104 88 73 105 79 65 134 98 86 184 128 126
++191 160 135 191 160 135 206 156 159 216 172 134 216 172 134 216 172 134 210 180 161 216 172 134
++191 160 135 191 160 135 165 137 101 141 108 110 123 133 112 123 109 109 103 106 97 99 96 86
++123 109 109 141 139 118 123 133 112 99 85 89 57 59 55 57 59 55 57 59 55 58 53 60
++49 43 41 68 64 51 113 97 77 133 69 69 133 78 94 134 98 86 133 78 94 74 57 60
++68 50 43 41 38 42 46 47 45 41 38 42 39 43 42 45 39 35 39 43 42 41 38 42
++39 43 42 41 38 42 39 43 42 41 38 42 41 38 42 41 38 42 41 38 42 39 37 42
++35 34 35 39 43 42 41 38 42 39 43 42 39 43 42 41 38 42 39 43 42 41 38 42
++39 43 42 41 38 42 41 38 42 35 34 35 39 37 42 39 37 42 39 37 42 39 37 42
++39 37 42 35 34 35 39 37 42 28 32 42 39 37 42 37 33 35 32 31 35 32 31 35
++32 31 35 32 31 35 32 31 35 28 26 35 28 32 42 28 26 35 32 31 35 28 26 35
++
++99 96 86 99 85 89 99 96 86 99 85 89 87 76 74 57 59 55 57 59 55 56 54 51
++57 59 55 88 79 65 105 79 65 113 97 77 137 117 96 164 145 120 141 128 110 99 79 59
++68 69 55 68 67 72 68 67 72 75 64 67 104 88 73 137 117 96 141 128 110 141 128 110
++141 128 110 137 117 96 113 97 77 99 79 59 68 69 55 99 79 59 141 128 110 216 172 134
++242 198 175 215 195 173 236 180 161 206 156 159 159 26 46 181 55 69 159 63 71 143 146 150
++133 78 94 133 28 45 133 23 15 133 23 15 133 11 15 133 28 45 133 23 15 133 23 15
++159 26 46 154 14 17 159 26 46 154 14 17 159 26 46 133 28 45 133 23 15 133 23 15
++159 26 46 159 26 46 159 26 46 159 26 46 159 26 46 181 55 69 159 26 46 159 26 46
++154 14 17 159 26 46 165 108 102 163 148 159 182 181 190 210 221 240 211 221 218 188 196 234
++211 221 218 211 221 218 188 196 234 225 201 230 122 113 129 133 23 15 133 28 45 133 23 15
++154 14 17 133 23 15 133 28 45 133 23 15 100 41 14 100 10 13 100 10 13 133 28 45
++159 26 46 133 23 15 133 11 15 100 41 14 100 10 13 100 10 13 99 36 46 100 10 13
++143 103 96 133 78 94 133 28 45 100 10 13 164 133 127 164 133 127 100 10 13 68 24 14
++100 10 13 68 24 14 68 33 37 137 117 96 68 33 37 68 33 37 104 74 73 68 24 14
++100 41 14 100 10 13 99 36 46 100 41 14 68 24 14 68 24 14 39 14 11 39 14 11
++133 65 47 242 198 175 242 198 175 240 208 188 240 208 188 242 198 157 216 172 134 216 172 134
++228 160 135 216 172 134 228 160 135 191 160 135 228 160 135 184 123 101 184 123 101 134 98 86
++134 98 86 191 160 135 215 195 173 229 200 201 238 233 218 229 200 201 229 200 201 215 195 173
++188 172 163 141 115 130 68 75 77 141 138 138 211 221 218 245 232 231 246 248 239 221 241 240
++245 232 231 245 232 231 246 248 239 238 233 218 238 233 218 210 216 207 216 172 134 216 172 134
++228 160 135 216 172 134 235 170 109 228 160 135 203 180 109 191 160 135 216 172 134 235 170 109
++216 172 134 235 170 109 216 172 134 216 172 134 228 160 135 216 172 134 216 172 134 216 172 134
++235 170 109 242 198 157 216 172 134 49 43 41 49 43 41 37 33 35 32 31 35 57 59 55
++61 60 67 103 106 97 57 59 55 35 34 35 39 43 42 33 35 35 35 34 35 35 34 35
++39 37 42 39 43 42 46 47 45 39 43 42 35 34 35 41 38 42 46 47 45 46 47 45
++35 34 35 46 47 45 46 47 45 39 43 42 35 34 35 35 34 35 35 34 35 37 33 35
++49 43 41 45 39 35 165 108 102 216 172 134 184 123 101 216 172 134 216 122 126 228 160 135
++191 160 135 228 160 135 184 123 101 165 137 101 184 123 101 184 123 101 184 123 101 184 123 101
++184 123 101 161 121 76 184 123 101 161 121 76 165 137 101 184 123 101 184 123 101 184 123 101
++161 121 76 165 108 102 143 103 96 161 121 76 134 98 86 134 98 86 161 121 76 133 69 69
++165 137 101 191 160 135 191 160 135 191 160 135 206 156 159 191 160 135 191 160 135 206 156 159
++216 172 134 216 172 134 191 160 135 184 128 126 141 128 110 164 133 127 141 154 138 141 138 138
++157 164 157 173 175 176 163 158 149 99 96 86 88 79 65 75 64 67 75 64 67 71 59 54
++56 54 51 61 46 51 87 76 74 103 81 83 104 88 73 105 79 65 99 79 59 74 57 60
++56 54 51 49 43 41 49 43 41 49 43 41 49 43 41 39 43 42 39 43 42 39 43 42
++39 43 42 39 43 42 41 38 42 41 38 42 39 43 42 39 43 42 35 34 35 39 43 42
++35 34 35 39 37 42 35 34 35 45 39 35 39 43 42 35 34 35 41 38 42 37 33 35
++41 38 42 39 43 42 41 38 42 39 37 42 39 37 42 39 37 42 39 37 42 32 31 35
++39 37 42 39 37 42 39 37 42 35 34 35 39 37 42 39 37 42 32 31 35 28 26 35
++32 31 35 28 26 35 32 26 35 32 26 35 32 26 35 32 26 35 32 26 35 32 26 35
++
++86 83 83 86 83 83 87 76 74 75 83 72 68 68 60 56 54 51 56 54 51 46 47 45
++68 64 51 75 64 67 134 98 86 164 145 120 210 180 161 215 195 173 210 180 161 137 117 96
++75 64 67 68 68 60 68 68 60 71 81 67 113 97 77 137 117 96 141 128 110 165 137 101
++137 117 96 113 97 77 104 88 73 88 79 65 99 79 59 104 88 73 137 117 96 191 160 135
++210 180 161 231 153 161 184 123 101 159 63 71 159 26 46 159 26 46 133 28 45 133 69 69
++133 28 45 133 11 15 133 11 15 133 28 45 133 11 15 133 28 45 154 14 17 133 23 15
++159 26 46 133 23 15 133 23 15 159 26 46 133 23 15 159 26 46 154 14 17 159 26 46
++159 26 46 154 14 17 154 59 17 154 14 17 159 26 46 154 14 17 154 14 17 159 26 46
++133 23 15 133 28 45 212 185 189 210 221 240 210 221 240 225 201 230 210 221 240 210 221 240
++210 221 240 210 221 240 211 221 218 188 196 234 194 181 189 133 28 45 133 28 45 159 26 46
++133 23 15 133 28 45 154 14 17 133 28 45 133 23 15 100 10 13 100 10 13 133 23 15
++133 28 45 154 14 17 133 28 45 100 10 13 100 10 13 100 10 13 100 10 13 100 10 13
++68 33 37 134 98 86 99 61 48 68 33 37 164 133 127 74 57 60 100 10 13 68 24 14
++99 36 46 68 24 14 68 24 14 68 33 37 73 50 50 68 33 37 68 33 37 68 24 14
++39 14 11 39 14 11 68 24 14 39 14 11 39 14 11 68 24 14 39 14 11 99 36 46
++242 198 157 240 208 188 239 232 157 242 198 175 242 198 157 242 198 157 216 172 134 216 172 134
++216 172 134 191 160 135 161 121 76 161 121 76 134 98 86 161 121 76 161 121 76 161 121 76
++184 128 126 191 160 135 206 156 159 210 180 161 240 189 188 240 208 188 238 233 218 240 208 188
++229 200 201 163 158 149 99 85 89 143 146 150 211 221 218 246 248 239 245 232 231 246 248 239
++246 248 239 221 241 240 245 232 231 221 241 240 238 233 218 212 206 189 215 197 156 235 170 109
++216 172 134 228 160 135 216 172 134 216 172 134 228 160 135 216 172 134 228 160 135 216 172 134
++228 160 135 216 172 134 228 160 135 216 172 134 216 172 134 216 172 134 235 170 109 228 160 135
++242 198 157 235 170 109 216 172 134 68 50 20 35 34 35 28 30 29 37 33 35 28 30 29
++28 30 29 41 38 42 99 96 86 32 31 35 35 34 35 35 34 35 39 43 42 41 38 42
++46 47 45 41 38 42 46 47 45 46 47 45 39 43 42 35 34 35 35 34 35 39 37 42
++46 47 45 46 47 45 46 47 45 46 47 45 46 47 45 49 43 41 35 34 35 33 35 35
++45 39 35 45 39 35 184 123 101 191 160 135 184 128 126 191 160 135 228 160 135 191 160 135
++228 160 135 184 123 101 184 123 101 203 180 109 184 123 101 203 180 109 184 123 101 223 122 101
++184 123 101 184 123 101 184 123 101 165 137 101 184 123 101 184 123 101 212 122 83 165 137 101
++184 123 101 184 123 101 161 121 76 165 108 102 165 108 102 161 121 76 165 108 102 134 98 86
++134 98 86 134 98 86 161 121 76 164 145 120 191 160 135 191 160 135 216 172 134 191 160 135
++191 160 135 191 160 135 216 172 134 191 160 135 191 160 135 165 137 101 164 145 137 163 158 149
++173 167 157 173 167 157 164 133 127 113 97 77 104 74 73 104 88 73 104 74 73 74 57 60
++56 54 51 56 54 51 73 50 50 99 61 48 88 79 65 104 74 73 88 79 65 74 57 60
++46 47 45 49 43 41 49 43 41 46 47 45 49 43 41 46 47 45 46 47 45 49 43 41
++49 43 41 39 43 42 49 43 41 39 43 42 49 43 41 49 43 41 41 38 42 39 43 42
++41 38 42 39 43 42 39 43 42 41 38 42 39 43 42 41 38 42 39 43 42 35 34 35
++39 43 42 39 37 42 35 34 35 39 37 42 39 37 42 39 37 42 39 37 42 39 37 42
++35 34 35 39 37 42 37 33 35 35 34 35 39 37 42 32 31 35 32 31 35 32 31 35
++32 26 35 32 31 35 32 26 35 32 31 35 28 26 35 32 31 35 28 26 35 32 31 35
++
++88 79 65 71 59 54 68 64 51 68 64 51 56 54 51 56 54 51 57 59 55 46 47 45
++71 59 54 104 88 73 164 145 120 215 195 173 240 208 188 240 208 188 240 208 188 164 145 120
++104 74 73 68 68 60 58 61 60 71 81 67 99 96 86 137 117 96 141 128 110 137 117 96
++128 104 97 104 88 73 99 79 59 99 79 59 113 97 77 128 104 97 137 117 96 164 145 137
++216 122 126 159 63 71 133 23 15 133 11 15 133 23 15 133 11 15 133 28 45 100 10 13
++133 11 15 133 23 15 133 11 15 133 28 45 133 23 15 133 11 15 133 28 45 133 23 15
++133 23 15 133 28 45 133 23 15 133 23 15 159 26 46 133 23 15 159 26 46 154 59 17
++159 26 46 133 23 15 133 28 45 154 14 17 154 59 17 159 26 46 159 26 46 154 59 17
++159 26 46 159 63 71 211 221 218 188 196 234 188 196 234 210 221 240 210 221 240 188 196 234
++225 201 230 188 196 234 210 221 240 211 221 218 188 196 234 164 111 125 133 28 45 133 23 15
++159 26 46 133 28 45 133 23 15 154 14 17 159 26 46 159 26 46 133 23 15 100 10 13
++133 23 15 133 28 45 133 23 15 133 23 15 133 28 45 100 10 13 133 23 15 100 10 13
++100 10 13 68 24 14 133 78 94 99 61 48 73 50 50 87 76 74 68 24 14 68 33 37
++99 36 46 68 33 37 68 24 14 39 20 27 68 24 14 39 14 11 39 14 11 39 14 11
++68 24 14 39 14 11 39 14 11 39 14 11 68 24 14 39 14 11 68 24 14 165 137 101
++242 198 157 242 198 157 240 208 188 242 198 157 242 198 157 216 172 134 242 198 157 228 160 135
++235 170 109 161 121 76 133 69 69 99 36 46 99 79 28 133 69 69 134 98 86 143 103 96
++210 180 161 215 195 173 240 208 188 236 180 161 215 195 173 240 189 188 240 208 188 238 233 218
++229 200 201 173 167 157 141 128 110 163 158 149 203 196 201 246 248 239 245 232 231 221 241 240
++245 232 231 246 248 239 246 248 239 238 233 218 235 233 206 240 208 188 216 172 134 216 172 134
++228 160 135 216 172 134 216 172 134 216 172 134 216 172 134 216 172 134 216 172 134 235 170 109
++216 172 134 235 170 109 216 172 134 228 160 135 203 180 109 228 160 135 216 172 134 235 170 109
++242 198 157 235 170 109 191 160 135 45 39 35 37 33 35 39 28 30 32 31 35 35 34 35
++39 37 42 39 37 42 39 43 42 99 96 86 28 30 29 41 38 42 39 43 42 35 34 35
++46 47 45 39 43 42 39 43 42 46 47 45 56 54 51 39 43 42 35 34 35 35 34 35
++39 37 42 41 38 42 46 47 45 46 47 55 46 47 45 56 54 51 39 37 42 35 34 35
++37 33 35 48 36 41 191 160 135 228 160 135 184 123 101 203 180 109 236 180 161 228 160 135
++191 160 135 161 121 76 184 123 101 223 122 101 184 123 101 184 123 101 184 123 101 184 123 101
++172 173 110 184 123 101 184 123 101 184 123 101 184 123 101 203 180 109 184 123 101 184 123 101
++184 123 101 161 121 76 184 123 101 184 123 101 161 121 76 184 123 101 143 103 96 161 121 76
++161 121 76 134 98 86 134 98 86 134 98 86 143 103 96 165 137 101 191 160 135 191 160 135
++184 128 126 191 160 135 216 172 134 216 172 134 184 128 126 191 160 135 164 145 120 141 128 110
++164 133 127 165 137 101 137 117 96 134 98 86 134 98 86 105 79 65 99 61 48 71 59 54
++71 59 54 68 64 51 57 45 51 74 57 60 99 61 48 104 74 73 87 76 74 68 50 43
++57 45 51 49 43 41 56 54 51 57 45 51 56 54 51 56 54 51 61 46 51 61 46 51
++57 45 51 61 46 51 46 47 45 49 43 41 46 47 45 46 47 45 49 43 41 39 43 42
++49 43 41 45 39 35 49 43 41 39 43 42 49 43 41 41 38 42 49 43 41 41 38 42
++37 33 35 39 43 42 39 37 42 39 37 42 33 35 35 39 37 42 39 37 42 28 32 42
++39 37 42 35 34 35 39 37 42 32 31 35 32 31 35 32 31 35 32 31 35 32 31 35
++32 31 35 28 26 35 32 31 35 32 26 35 32 31 35 32 26 35 32 31 35 32 26 35
++
++105 79 65 105 79 65 99 79 59 88 79 65 68 69 47 68 64 51 49 43 41 46 47 45
++75 64 67 137 117 96 188 172 163 240 208 188 235 233 206 240 208 188 240 208 188 191 160 135
++104 74 73 75 64 67 68 68 60 68 69 55 104 88 73 134 98 86 135 123 86 128 104 97
++113 97 77 99 79 59 113 97 77 114 99 97 137 117 96 137 117 96 141 128 110 184 123 101
++159 63 71 159 26 46 159 26 46 159 26 46 154 14 17 133 23 15 133 23 15 133 23 15
++133 23 15 133 28 45 133 11 15 133 28 45 154 14 17 133 23 15 133 23 15 133 28 45
++133 23 15 133 11 15 133 23 15 133 23 15 133 23 15 100 10 13 133 23 15 133 23 15
++133 23 15 159 26 46 154 14 17 159 63 71 159 26 46 159 26 46 154 14 17 159 26 46
++133 28 45 164 111 125 188 196 234 210 221 240 188 196 234 188 196 234 188 196 234 210 221 240
++210 221 240 210 221 240 211 221 218 210 221 240 211 221 218 203 196 201 133 69 69 133 11 15
++133 23 15 133 23 15 133 28 45 133 23 15 159 26 46 159 26 46 133 23 15 133 23 15
++100 10 13 100 41 14 100 10 13 133 23 15 100 10 13 100 41 14 100 10 13 100 10 13
++100 10 13 100 10 13 68 24 14 99 36 46 99 61 48 73 50 50 73 50 50 73 50 50
++68 24 14 68 24 14 39 14 11 68 24 14 39 14 11 39 14 11 39 14 11 39 14 11
++39 14 11 68 24 14 39 14 11 68 24 14 68 24 14 68 24 14 39 14 11 228 160 135
++242 198 157 242 198 175 239 232 157 242 198 175 242 198 157 242 198 157 242 198 157 235 170 109
++191 160 135 161 121 76 161 121 76 135 123 86 134 98 86 105 79 65 113 97 77 161 121 76
++210 180 161 242 198 175 240 208 188 240 208 188 240 208 188 240 208 188 245 232 231 238 233 218
++229 200 201 188 177 159 164 145 137 157 164 157 189 200 189 188 189 180 210 216 207 245 232 231
++211 221 218 188 189 180 188 189 180 210 216 207 238 233 218 212 206 189 216 172 134 216 172 134
++216 172 134 203 180 109 228 160 135 191 160 135 216 172 134 216 172 134 216 172 134 216 172 134
++228 160 135 235 170 109 216 172 134 216 172 134 191 160 135 228 160 135 235 170 109 235 170 109
++228 160 135 235 170 109 165 137 101 41 28 14 37 33 35 37 33 35 35 34 35 35 34 35
++35 34 35 33 35 35 28 30 29 103 106 97 68 75 77 68 67 72 45 39 35 39 43 42
++41 38 42 46 47 45 46 47 45 46 47 45 46 47 45 46 47 45 46 47 45 39 43 42
++41 38 42 39 43 42 49 43 41 46 47 45 46 47 45 56 54 51 33 35 35 35 34 35
++37 33 35 68 50 43 184 128 126 184 128 126 184 123 101 191 160 135 228 160 135 184 128 126
++191 160 135 161 121 76 191 160 135 184 123 101 203 180 109 184 123 101 203 180 109 184 123 101
++184 123 101 184 123 101 184 123 101 165 137 101 184 123 101 184 123 101 212 122 83 184 123 101
++184 123 101 184 123 101 161 121 76 184 123 101 161 121 76 165 108 102 161 121 76 165 108 102
++161 121 76 165 108 102 161 121 76 161 121 76 134 98 86 134 98 86 161 121 76 184 123 101
++184 128 126 184 128 126 184 128 126 191 160 135 191 160 135 216 122 126 191 160 135 184 128 126
++165 137 101 165 108 102 165 137 101 165 108 102 165 108 102 143 103 96 105 79 65 99 61 48
++71 59 54 71 59 54 57 59 55 75 64 67 87 76 74 75 64 67 73 50 50 57 45 51
++56 54 51 49 43 41 49 43 41 49 43 41 68 50 43 73 50 50 71 59 54 68 50 43
++68 50 43 68 50 43 57 45 51 46 47 45 57 45 51 57 45 51 49 43 41 49 43 41
++46 47 45 46 47 45 49 43 41 49 43 41 46 47 45 46 47 45 41 38 42 49 43 41
++41 38 42 45 39 35 39 43 42 39 37 42 39 37 42 39 37 42 39 37 42 37 33 35
++39 37 42 37 33 35 35 34 35 32 31 35 32 31 35 32 31 35 32 31 35 28 26 35
++28 26 35 32 26 35 32 26 35 32 31 35 28 26 35 32 26 35 28 26 35 28 26 35
++
++165 137 101 161 121 76 134 98 86 113 97 77 113 97 77 88 79 65 71 59 54 56 54 51
++87 76 74 141 128 110 206 156 159 240 208 188 240 208 188 235 233 206 229 200 201 191 160 135
++104 88 73 88 79 65 75 64 67 99 79 59 113 97 77 113 97 77 134 98 86 113 97 77
++105 79 65 113 97 77 113 97 77 137 117 96 141 128 110 165 137 101 165 108 102 159 63 71
++159 26 46 197 60 17 159 26 46 154 14 17 159 26 46 159 26 46 154 14 17 133 28 45
++133 11 15 133 28 45 133 23 15 133 23 15 133 28 45 100 10 13 133 23 15 133 11 15
++100 10 13 133 23 15 133 11 15 99 36 46 133 23 15 100 10 13 133 23 15 133 23 15
++159 26 46 159 26 46 159 26 46 216 122 126 133 69 69 133 28 45 133 65 47 133 28 45
++133 28 45 184 128 126 188 196 234 210 221 240 210 221 240 210 221 240 211 221 218 188 196 234
++188 191 205 188 196 234 210 221 240 210 221 240 188 196 234 210 221 240 182 181 190 133 69 69
++100 10 13 100 41 14 100 10 13 100 10 13 133 23 15 133 28 45 154 59 17 159 26 46
++133 28 45 133 11 15 133 23 15 100 10 13 133 28 45 100 10 13 100 10 13 100 10 13
++99 36 46 100 10 13 68 24 14 68 24 14 100 10 13 68 24 14 99 61 48 68 24 14
++68 24 14 68 24 14 68 24 14 39 14 11 39 14 11 39 14 11 39 14 11 39 14 11
++68 24 14 39 14 11 68 24 14 68 24 14 68 24 14 68 24 14 68 24 14 236 180 161
++242 198 157 239 232 157 242 198 175 242 198 175 242 198 175 242 198 157 242 198 157 228 160 135
++203 180 109 184 128 126 210 180 161 215 195 173 210 180 161 191 160 135 165 108 102 134 98 86
++191 160 135 240 189 188 238 233 218 240 208 188 240 208 188 229 200 201 238 233 218 238 233 218
++221 241 240 212 206 189 188 189 180 188 189 180 173 175 176 173 167 157 112 124 124 143 146 150
++103 106 97 39 43 42 86 83 83 141 138 138 189 200 189 212 206 189 216 172 134 228 160 135
++203 180 109 216 122 126 191 160 135 216 172 134 216 172 134 216 172 134 216 172 134 235 170 109
++216 172 134 216 172 134 235 170 109 216 172 134 228 160 135 216 172 134 216 172 134 235 170 109
++216 172 134 216 172 134 134 98 86 39 28 30 45 39 35 37 33 35 35 34 35 39 43 42
++35 34 35 32 31 35 35 34 35 28 26 35 46 47 45 163 158 149 46 47 45 46 47 45
++46 47 45 46 47 45 46 47 45 46 47 45 46 47 45 46 47 45 56 54 51 56 54 51
++39 43 42 46 47 45 46 47 55 56 54 51 56 54 51 46 47 45 39 37 42 35 34 35
++41 38 42 68 69 47 216 122 126 203 180 109 184 123 101 191 160 135 216 172 134 191 160 135
++184 123 101 184 123 101 223 122 101 191 160 135 184 123 101 184 123 101 184 123 101 184 123 101
++184 123 101 184 123 101 184 123 101 165 137 101 212 122 83 184 123 101 203 180 109 184 123 101
++184 123 101 184 123 101 161 121 76 184 123 101 165 108 102 161 121 76 161 121 76 161 121 76
++165 108 102 161 121 76 161 121 76 165 108 102 161 121 76 161 121 76 134 98 86 134 98 86
++165 137 101 191 160 135 184 123 101 184 128 126 184 123 101 191 160 135 184 128 126 191 160 135
++184 128 126 191 160 135 184 128 126 164 145 120 184 128 126 165 137 101 165 108 102 143 103 96
++134 98 86 73 50 50 61 46 51 74 57 60 71 59 54 68 50 43 56 54 51 49 43 41
++68 50 43 49 43 41 49 43 41 57 45 51 49 43 41 61 46 51 68 50 43 73 50 50
++56 54 51 68 50 43 49 43 41 61 46 51 49 43 41 61 46 51 49 43 41 49 43 41
++49 43 41 49 43 41 49 43 41 49 43 41 46 47 45 49 43 41 46 47 45 49 43 41
++46 47 45 39 43 42 45 39 35 39 43 42 33 35 35 39 37 42 39 37 42 39 37 42
++32 31 35 39 37 42 37 33 35 32 31 35 32 31 35 32 31 35 32 31 35 32 31 35
++32 31 35 32 26 35 32 31 35 32 26 35 32 26 35 32 31 35 32 26 35 28 26 35
++
++184 128 126 165 137 101 137 117 96 134 98 86 113 97 77 87 76 74 71 81 67 56 54 51
++99 96 86 164 145 137 188 189 175 229 200 201 240 208 188 240 208 188 240 189 188 164 133 127
++88 79 65 104 88 73 113 97 77 141 128 110 165 137 101 184 128 126 172 173 110 164 145 120
++165 137 101 137 117 96 137 117 96 141 128 110 165 137 101 165 108 102 159 63 71 181 55 69
++159 26 46 159 26 46 159 26 46 159 26 46 154 59 17 154 14 17 133 28 45 133 23 15
++133 28 45 154 14 17 133 23 15 133 28 45 100 10 13 133 23 15 100 10 13 100 10 13
++133 23 15 133 28 45 100 10 13 133 11 15 100 10 13 133 28 45 159 26 46 159 26 46
++197 60 17 159 26 46 181 55 69 206 156 159 206 156 159 164 142 149 165 108 102 181 55 69
++133 28 45 188 147 163 188 196 234 210 221 240 210 221 240 210 221 240 210 221 240 210 221 240
++188 196 234 210 216 207 188 196 234 210 221 240 210 221 240 225 201 230 210 221 240 203 196 201
++188 147 163 133 78 94 133 28 45 133 28 45 133 28 45 133 23 15 133 23 15 133 28 45
++154 14 17 159 26 46 133 28 45 133 23 15 133 23 15 100 10 13 100 41 14 100 10 13
++100 10 13 68 24 14 100 10 13 68 24 14 100 10 13 100 10 13 68 24 14 68 24 14
++99 36 46 133 69 69 39 14 11 68 24 14 68 24 14 39 14 11 68 24 14 39 14 11
++68 24 14 68 24 14 68 24 14 68 24 14 68 24 14 39 14 11 161 121 76 236 180 161
++242 198 157 242 198 157 242 198 157 239 232 157 242 198 175 242 198 157 236 180 161 216 172 134
++216 172 134 236 180 161 242 198 175 240 208 188 240 208 188 215 195 173 191 160 135 137 117 96
++191 160 135 215 195 173 240 208 188 240 208 188 245 232 231 240 208 188 245 232 231 211 221 218
++203 196 201 188 189 180 157 164 157 143 146 150 87 76 74 56 54 51 41 38 42 45 39 35
++39 43 42 49 43 41 46 47 45 56 54 51 87 76 74 123 109 109 141 128 110 184 128 126
++216 172 134 191 160 135 235 170 109 191 160 135 228 160 135 216 172 134 216 172 134 228 160 135
++235 170 109 216 172 134 216 172 134 216 172 134 203 180 109 228 160 135 191 160 135 216 172 134
++235 170 109 216 172 134 113 97 77 41 33 22 37 33 35 41 38 42 35 34 35 35 34 35
++35 34 35 33 35 35 39 37 42 33 35 35 35 34 35 103 106 97 86 83 83 46 47 45
++46 47 45 46 47 45 46 47 55 49 43 41 41 38 42 46 47 45 46 47 55 46 47 45
++46 47 45 46 47 45 46 47 45 39 43 42 46 47 45 46 47 45 41 38 42 35 34 35
++37 33 35 56 54 51 191 160 135 184 123 101 223 122 101 184 123 101 216 172 134 216 122 126
++184 123 101 203 180 109 191 160 135 184 123 101 203 180 109 184 123 101 203 180 109 184 123 101
++184 123 101 165 137 101 184 123 101 184 123 101 165 137 101 212 122 83 184 123 101 184 123 101
++165 137 101 161 121 76 184 123 101 161 121 76 161 121 76 165 108 102 161 121 76 165 108 102
++161 121 76 165 108 102 161 121 76 184 123 101 161 121 76 165 108 102 161 121 76 134 98 86
++134 98 86 165 137 101 165 137 101 165 108 102 184 123 101 184 128 126 184 123 101 184 128 126
++184 123 101 184 128 126 184 123 101 184 123 101 165 108 102 134 98 86 99 61 48 133 69 69
++134 98 86 99 61 48 64 57 60 56 54 51 57 45 51 49 43 41 61 46 51 57 45 51
++56 54 51 49 43 41 57 45 51 49 43 41 45 39 35 49 43 41 68 50 43 68 50 43
++68 50 43 61 46 51 49 43 41 61 46 51 49 43 41 61 46 51 49 43 41 49 43 41
++49 43 41 49 43 41 49 43 41 49 43 41 49 43 41 49 43 41 49 43 41 41 38 42
++49 43 41 39 43 42 39 37 42 35 34 35 39 37 42 39 37 42 35 34 35 39 37 42
++35 34 35 35 34 35 32 31 35 32 31 35 32 31 35 32 26 35 32 31 35 32 31 35
++28 26 35 32 31 35 28 26 35 32 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++
++164 145 120 165 137 101 165 108 102 113 97 77 99 96 86 123 109 109 103 106 97 86 83 83
++141 138 138 173 175 176 187 177 178 188 189 180 212 185 189 242 198 175 240 189 188 163 158 149
++113 97 77 113 97 77 184 128 126 210 180 161 215 195 173 242 198 175 242 198 175 242 198 175
++210 180 161 188 172 163 166 168 134 141 139 118 164 133 127 159 63 71 159 63 71 159 26 46
++154 14 17 159 26 46 197 60 17 159 26 46 159 26 46 133 28 45 133 23 15 133 11 15
++133 23 15 133 11 15 133 23 15 100 10 13 100 10 13 100 10 13 100 10 13 133 23 15
++99 36 46 100 10 13 100 10 13 100 10 13 100 10 13 133 23 15 133 23 15 159 26 46
++159 26 46 159 26 46 159 26 46 159 26 46 133 28 45 159 26 46 159 26 46 133 28 45
++159 63 71 188 196 234 188 196 234 211 221 218 188 196 234 188 196 234 210 216 207 188 196 234
++210 221 240 210 221 240 188 196 234 211 221 218 188 196 234 211 221 218 188 196 234 210 221 240
++225 201 230 225 201 230 187 177 178 103 81 83 133 23 15 159 26 46 159 26 46 159 26 46
++133 23 15 133 23 15 133 23 15 159 26 46 133 28 45 133 28 45 133 28 45 100 10 13
++100 10 13 100 10 13 100 10 13 68 24 14 100 10 13 100 10 13 68 24 14 68 24 14
++242 198 157 239 232 157 99 61 48 39 14 11 68 24 14 68 24 14 68 24 14 68 24 14
++68 24 14 68 24 14 68 24 14 68 24 14 68 24 14 159 63 71 236 180 161 242 198 157
++242 198 157 242 198 157 242 198 157 240 208 188 242 198 175 242 198 157 216 172 134 216 172 134
++236 180 161 242 198 175 240 208 188 235 233 206 240 208 188 242 198 175 210 180 161 164 142 149
++163 148 159 194 181 189 240 189 188 238 233 218 240 208 188 229 200 201 245 235 246 210 216 207
++122 133 132 68 67 72 28 30 29 39 43 42 33 35 35 32 31 35 35 34 35 39 43 42
++45 39 35 35 34 35 28 30 29 37 33 35 37 33 35 49 43 41 68 50 43 134 98 86
++191 160 135 228 160 135 191 160 135 228 160 135 216 172 134 216 172 134 235 170 109 216 172 134
++216 172 134 228 160 135 203 180 109 228 160 135 228 160 135 191 160 135 235 170 109 216 172 134
++235 170 109 228 160 135 165 137 101 45 39 35 45 39 35 35 34 35 35 34 35 28 30 29
++32 31 35 33 35 35 35 34 35 39 37 42 39 37 42 46 47 45 112 124 124 39 37 42
++58 53 60 46 47 45 46 47 45 46 47 45 57 59 55 39 37 42 37 33 35 37 33 35
++46 47 45 46 47 45 56 54 51 46 47 45 49 43 41 39 43 42 39 43 42 41 38 42
++37 33 35 49 43 41 184 128 126 216 172 134 191 160 135 191 160 135 203 180 109 191 160 135
++184 123 101 184 123 101 184 123 101 203 180 109 184 123 101 223 122 101 184 123 101 184 123 101
++184 123 101 184 123 101 184 123 101 184 123 101 184 123 101 184 123 101 202 181 82 184 123 101
++184 123 101 184 123 101 165 137 101 184 123 101 184 123 101 184 123 101 184 123 101 184 123 101
++184 123 101 184 123 101 161 121 76 161 121 76 184 123 101 165 137 101 161 121 76 134 98 86
++141 128 110 210 180 161 164 145 137 141 108 110 165 137 101 184 123 101 184 123 101 165 108 102
++143 103 96 143 103 96 143 103 96 134 98 86 105 79 65 99 61 48 105 79 65 133 69 69
++104 74 73 134 98 86 104 74 73 56 54 51 68 50 43 49 43 41 56 54 51 49 43 41
++49 43 41 68 50 43 49 43 41 49 43 41 49 43 41 45 39 35 56 54 51 68 50 43
++49 43 41 68 50 43 49 43 41 68 50 43 49 43 41 57 45 51 49 43 41 49 43 41
++49 43 41 49 43 41 49 43 41 49 43 41 49 40 56 41 38 42 49 43 41 49 43 41
++41 38 42 41 38 42 41 38 42 35 34 35 39 43 42 41 38 42 39 37 42 39 37 42
++39 37 42 37 33 35 28 32 42 32 26 35 32 31 35 32 31 35 32 26 35 32 31 35
++32 31 35 32 26 35 32 26 35 32 31 35 32 26 35 28 26 35 28 26 35 28 26 35
++
++191 160 135 191 160 135 184 128 126 165 137 101 137 117 96 141 132 131 141 132 131 112 124 124
++143 146 150 166 181 211 173 175 176 157 164 157 164 145 137 210 180 161 212 206 189 212 185 189
++173 167 157 191 160 135 210 180 161 236 180 161 242 198 175 240 189 188 240 208 188 240 208 188
++229 200 201 210 216 207 188 189 175 188 177 159 164 133 127 159 63 71 181 55 69 159 26 46
++154 59 17 159 26 46 133 28 45 159 26 46 133 23 15 154 14 17 133 23 15 133 23 15
++133 28 45 133 23 15 100 10 13 100 10 13 68 24 14 100 10 13 100 10 13 100 10 13
++68 24 14 68 24 14 100 10 13 133 23 15 133 28 45 159 26 46 159 26 46 154 59 17
++159 26 46 181 55 69 159 26 46 159 26 46 159 26 46 159 26 46 175 13 17 159 63 71
++203 196 201 188 196 234 188 196 234 173 188 216 182 181 190 173 175 176 143 151 181 173 175 176
++173 175 176 163 147 193 173 175 176 163 147 193 173 175 176 166 181 211 182 181 190 173 188 216
++188 191 205 203 196 201 188 196 234 225 201 230 173 175 176 164 111 125 159 63 71 133 23 15
++133 23 15 133 23 15 100 10 13 100 41 14 100 10 13 100 10 13 100 10 13 100 10 13
++99 36 46 100 10 13 100 41 14 100 10 13 100 41 14 100 10 13 99 61 48 239 232 157
++235 213 109 239 232 157 202 181 82 68 24 14 68 24 14 100 10 13 68 24 14 68 24 14
++100 10 13 68 24 14 100 10 13 68 24 14 100 10 13 184 123 101 236 180 161 242 198 157
++242 198 157 242 198 157 242 198 175 242 198 157 242 198 157 215 197 156 216 172 134 236 180 161
++242 198 157 242 198 175 240 208 188 240 208 188 240 208 188 240 208 188 240 189 188 188 172 163
++163 148 159 173 175 176 187 177 178 212 185 189 229 200 201 229 221 240 238 233 218 157 164 157
++68 75 77 49 43 41 35 34 35 28 30 29 35 34 35 28 30 29 37 33 35 35 34 35
++35 34 35 33 35 35 27 32 26 45 39 35 41 33 22 45 39 35 49 43 41 56 54 51
++113 97 77 191 160 135 235 170 109 203 180 109 228 160 135 203 180 109 228 160 135 203 180 109
++228 160 135 203 180 109 228 160 135 191 160 135 235 170 109 228 160 135 235 170 109 191 160 135
++235 170 109 228 160 135 191 160 135 41 28 14 37 33 35 39 28 30 35 34 35 39 37 42
++35 34 35 35 34 35 35 34 35 39 43 42 41 38 42 39 43 42 103 106 97 46 47 45
++46 47 45 46 47 45 46 47 45 58 61 60 41 38 42 46 47 45 39 43 42 39 43 42
++41 38 42 41 38 42 46 47 45 46 47 45 46 47 45 46 47 45 46 47 45 46 47 45
++41 38 42 45 39 35 88 79 65 113 97 77 165 108 102 165 137 101 184 123 101 228 160 135
++184 123 101 191 160 135 184 123 101 203 180 109 184 123 101 203 180 109 184 123 101 203 180 109
++184 123 101 184 123 101 202 181 82 184 123 101 184 123 101 184 123 101 184 123 101 184 123 101
++212 122 83 184 123 101 212 122 83 212 122 83 165 137 101 212 122 83 184 123 101 212 122 83
++161 121 76 161 121 76 161 121 76 165 108 102 188 177 159 164 145 137 113 97 77 113 97 77
++137 117 96 173 167 157 173 175 176 188 177 159 141 128 110 143 103 96 184 123 101 165 108 102
++134 98 86 99 61 48 99 61 48 73 50 50 99 61 48 133 69 69 134 98 86 143 103 96
++133 69 69 134 98 86 74 57 60 71 59 54 56 54 51 57 45 51 68 50 43 49 43 41
++57 45 51 49 43 41 57 45 51 49 43 41 49 43 41 45 39 35 49 43 41 68 50 43
++68 50 43 57 45 51 49 43 41 49 43 41 57 45 51 49 43 41 49 43 41 49 43 41
++49 43 41 48 36 41 49 43 41 41 38 42 49 43 41 49 43 41 48 36 41 41 38 42
++41 38 42 35 34 35 39 43 42 39 43 42 46 47 45 46 47 45 39 37 42 39 37 42
++28 32 42 37 33 35 32 26 35 32 31 35 32 31 35 32 26 35 32 31 35 32 31 35
++32 26 35 28 26 35 32 31 35 28 26 35 28 26 35 32 26 35 28 26 35 28 26 35
++
++242 198 175 236 180 161 236 180 161 206 156 159 163 158 149 163 158 149 164 145 137 141 132 131
++122 133 132 143 146 150 163 148 159 123 109 109 123 109 109 212 206 189 240 208 188 240 208 188
++212 206 189 240 189 188 242 198 175 242 198 175 240 208 188 240 208 188 240 189 188 240 208 188
++210 216 207 235 233 206 211 221 218 189 200 189 184 123 101 181 55 69 181 55 69 159 26 46
++159 26 46 133 28 45 154 14 17 154 59 17 159 26 46 154 14 17 159 26 46 154 14 17
++133 11 15 68 24 14 68 24 14 68 33 37 73 50 50 39 14 11 68 24 14 39 14 11
++39 14 11 68 24 14 68 24 14 100 10 13 100 10 13 133 23 15 133 23 15 133 23 15
++159 26 46 159 26 46 197 60 17 159 26 46 197 60 17 159 26 46 159 26 46 164 111 125
++210 221 240 188 191 205 188 196 234 182 181 190 166 181 211 166 181 211 166 181 211 166 181 211
++173 175 176 143 151 181 143 151 181 173 175 176 163 147 193 182 181 190 166 181 211 182 181 190
++166 181 211 173 188 216 188 191 205 188 191 205 188 191 205 188 191 205 203 196 201 188 172 163
++133 69 69 100 10 13 133 28 45 133 23 15 100 41 14 133 23 15 100 41 14 133 23 15
++133 23 15 133 23 15 100 10 13 100 10 13 100 10 13 100 10 13 165 137 101 239 232 157
++239 232 157 235 213 109 184 123 101 68 24 14 68 24 14 68 24 14 68 24 14 100 10 13
++68 24 14 100 10 13 100 10 13 100 10 13 68 24 14 228 160 135 242 198 157 242 198 157
++242 198 157 236 180 161 210 180 161 215 197 156 216 172 134 191 160 135 216 172 134 215 195 173
++215 195 173 240 208 188 240 208 188 235 233 206 240 208 188 240 208 188 240 189 188 215 195 173
++182 181 190 157 164 157 173 175 176 188 191 205 188 196 234 211 221 218 221 241 240 123 109 109
++41 38 42 28 30 29 33 35 35 35 34 35 28 30 29 35 34 35 39 43 42 45 39 35
++41 33 22 35 34 35 41 33 22 37 33 35 27 32 26 39 28 30 41 33 22 57 45 51
++45 39 35 105 79 65 191 160 135 228 160 135 216 172 134 228 160 135 228 160 135 228 160 135
++228 160 135 228 160 135 191 160 135 235 170 109 216 172 134 235 170 109 228 160 135 235 170 109
++216 172 134 235 170 109 216 172 134 41 28 14 45 39 35 45 39 35 37 33 35 35 34 35
++32 31 35 39 43 42 46 47 45 45 39 35 39 43 42 46 47 45 68 67 72 86 83 83
++46 47 45 46 47 55 87 76 74 112 124 124 157 164 157 123 109 109 58 61 60 46 47 45
++46 47 45 39 37 42 39 37 42 39 37 42 35 34 35 39 43 42 46 47 45 46 47 45
++35 34 35 33 35 35 41 33 22 45 30 35 41 28 14 99 79 59 191 160 135 184 123 101
++203 180 109 184 123 101 172 173 110 184 123 101 191 160 135 184 123 101 184 123 101 184 123 101
++184 123 101 184 123 101 184 123 101 184 123 101 172 173 110 212 122 83 202 181 82 184 123 101
++184 123 101 202 181 82 184 123 101 202 181 82 212 122 83 203 180 109 212 122 83 202 181 82
++212 122 83 161 121 76 165 108 102 184 123 101 212 185 189 157 164 157 123 133 112 123 109 109
++123 109 109 141 154 138 163 158 149 173 175 176 187 177 178 164 133 127 134 98 86 165 108 102
++161 121 76 133 69 69 113 97 77 133 69 69 165 108 102 165 108 102 133 65 47 133 65 47
++134 98 86 99 61 48 68 50 43 71 59 54 56 54 51 49 43 41 49 43 41 57 45 51
++49 43 41 49 43 41 49 43 41 49 43 41 49 43 41 41 38 42 48 36 41 68 50 43
++49 43 41 57 45 51 49 43 41 68 50 43 49 43 41 49 43 41 61 46 51 49 43 41
++49 43 41 49 43 41 41 38 42 49 43 41 48 36 41 49 43 41 41 38 42 49 43 41
++41 38 42 39 43 42 41 38 42 46 47 55 46 47 45 49 40 56 39 37 42 39 37 42
++39 37 42 37 33 35 28 32 42 32 26 35 32 26 35 32 31 35 32 31 35 32 26 35
++32 31 35 32 26 35 32 26 35 32 31 35 32 26 35 28 26 35 28 26 35 28 26 35
++
++240 208 188 240 208 188 242 198 175 215 195 173 188 172 163 173 167 157 164 142 149 141 128 110
++113 97 77 128 104 97 99 85 89 105 79 65 137 117 96 215 195 173 229 200 201 238 233 218
++240 208 188 240 208 188 240 208 188 240 208 188 240 208 188 240 189 188 210 180 161 210 180 161
++212 185 189 210 216 207 211 221 218 211 221 218 184 128 126 181 55 69 181 55 69 159 26 46
++154 59 17 133 28 45 133 28 45 133 23 15 133 28 45 159 26 46 159 26 46 133 28 45
++133 65 47 188 172 163 212 185 189 210 216 207 173 167 157 39 14 11 68 24 14 100 10 13
++100 10 13 100 10 13 133 11 15 133 28 45 133 23 15 133 23 15 133 28 45 154 14 17
++133 23 15 159 26 46 133 28 45 159 26 46 159 26 46 133 28 45 133 65 47 188 191 205
++188 196 234 173 188 216 166 181 211 182 181 190 182 181 190 182 181 190 182 181 190 166 181 211
++182 181 190 166 181 211 188 191 205 173 188 216 188 191 205 188 191 205 188 191 205 182 181 190
++188 191 205 182 181 190 166 181 211 182 181 190 173 188 216 188 191 205 188 191 205 188 196 234
++203 196 201 187 177 178 165 108 102 133 28 45 133 28 45 133 11 15 133 28 45 133 23 15
++100 41 14 100 10 13 100 41 14 133 11 15 100 10 13 100 41 14 172 173 110 239 232 157
++239 232 157 239 232 157 161 121 76 100 10 13 100 10 13 100 10 13 100 10 13 100 10 13
++100 10 13 68 24 14 100 10 13 100 10 13 100 10 13 133 65 47 236 180 161 216 172 134
++161 121 76 135 123 86 137 117 96 141 128 110 114 121 97 137 117 96 191 160 135 215 195 173
++215 195 173 240 208 188 240 208 188 240 208 188 240 208 188 240 208 188 240 208 188 240 208 188
++188 189 180 173 175 176 173 175 176 166 181 211 188 196 234 229 221 240 182 181 190 39 43 42
++32 31 35 35 34 35 33 35 35 28 30 29 32 31 35 37 33 35 45 39 35 45 39 35
++35 34 35 41 33 22 39 28 30 45 39 35 39 28 30 37 33 35 41 33 22 49 43 41
++57 45 51 68 50 43 105 79 65 184 123 101 203 180 109 228 160 135 235 170 109 216 172 134
++235 170 109 216 172 134 228 160 135 216 172 134 228 160 135 216 172 134 235 170 109 191 160 135
++228 160 135 216 172 134 216 172 134 68 50 43 45 30 35 45 39 35 37 33 35 37 33 35
++35 34 35 41 38 42 41 38 42 39 43 42 46 47 45 46 47 45 46 47 45 103 106 97
++46 47 55 46 47 45 57 59 55 86 83 83 194 181 189 173 167 157 141 132 131 75 64 67
++46 47 45 46 47 45 46 47 45 46 47 45 46 47 45 33 35 35 33 35 35 33 35 35
++33 35 35 33 35 35 33 35 35 37 33 35 39 37 42 41 28 14 113 97 77 191 160 135
++184 123 101 191 160 135 223 122 101 165 137 101 184 123 101 165 137 101 184 123 101 184 123 101
++212 122 83 184 123 101 184 123 101 184 123 101 212 122 83 184 123 101 184 123 101 212 122 83
++184 123 101 184 123 101 212 122 83 184 123 101 184 123 101 184 123 101 184 123 101 184 123 101
++184 123 101 161 121 76 161 121 76 164 145 120 212 206 189 173 175 176 141 138 138 141 154 138
++141 154 138 157 164 157 157 164 157 173 183 156 173 175 176 188 189 175 164 133 127 134 98 86
++133 69 69 161 121 76 165 108 102 161 121 76 165 108 102 134 98 86 143 103 96 134 98 86
++99 61 48 68 50 43 56 54 51 61 46 51 56 54 51 61 46 51 56 54 51 49 43 41
++49 43 41 49 43 41 49 43 41 49 43 41 49 43 41 45 39 35 49 43 41 49 43 41
++61 46 51 57 45 51 49 43 41 49 43 41 68 50 43 49 43 41 49 43 41 49 43 41
++49 43 41 48 36 41 49 43 41 41 38 42 49 43 41 48 36 41 41 38 42 41 38 42
++41 38 42 41 38 42 46 47 45 46 47 55 41 38 42 39 37 42 39 37 42 28 32 42
++32 26 35 32 31 35 32 26 35 32 26 35 32 31 35 32 31 35 32 26 35 32 31 35
++32 26 35 32 31 35 28 26 35 32 26 35 28 26 35 32 31 35 28 26 35 28 26 35
++
++240 208 188 240 208 188 242 198 175 215 195 173 188 172 163 188 172 163 163 158 149 164 145 137
++184 128 126 164 145 120 184 128 126 184 128 126 164 145 120 215 195 173 240 208 188 229 200 201
++229 200 201 240 189 188 240 208 188 238 233 218 240 208 188 240 208 188 236 180 161 191 160 135
++173 167 157 212 206 189 210 216 207 221 241 240 184 128 126 181 55 69 159 63 71 159 26 46
++159 26 46 159 26 46 133 28 45 133 23 15 100 10 13 133 23 15 159 26 46 133 28 45
++212 206 189 245 235 246 246 248 239 246 248 239 212 185 189 68 24 14 68 24 14 133 23 15
++159 26 46 159 26 46 159 26 46 133 23 15 133 23 15 133 23 15 133 23 15 133 23 15
++159 26 46 154 14 17 159 26 46 159 26 46 159 63 71 206 156 159 184 128 126 188 196 234
++166 181 211 188 191 205 173 175 176 166 181 211 173 175 176 166 181 211 188 191 205 188 196 234
++210 216 207 188 196 234 211 221 218 211 221 218 210 221 240 188 191 205 210 216 207 225 201 230
++188 196 234 210 216 207 188 196 234 188 191 205 188 191 205 188 191 205 188 191 205 188 191 205
++188 191 205 188 191 205 225 201 230 203 196 201 164 142 149 99 36 46 68 24 14 100 10 13
++100 10 13 100 10 13 133 11 15 100 41 14 133 28 45 133 58 15 231 233 186 239 232 157
++239 232 157 239 232 157 202 181 82 100 41 14 68 24 14 100 10 13 100 10 13 100 10 13
++100 10 13 100 10 13 133 23 15 100 10 13 133 23 15 133 65 47 236 180 161 191 160 135
++105 79 65 71 59 54 87 76 74 86 83 83 87 76 74 113 97 77 173 167 157 215 195 173
++212 206 189 215 195 173 240 208 188 240 208 188 242 198 175 240 208 188 231 233 186 229 200 201
++211 221 218 188 191 205 173 188 216 188 196 234 188 196 234 210 221 240 83 103 97 37 33 35
++35 34 35 32 31 35 20 28 24 35 34 35 35 34 35 37 33 35 45 39 35 35 34 35
++41 33 22 27 32 26 37 33 35 45 39 35 45 39 35 45 39 35 45 39 35 45 39 35
++48 36 41 45 39 35 68 50 43 99 61 48 184 123 101 236 180 161 216 172 134 235 170 109
++228 160 135 216 172 134 235 170 109 216 172 134 235 170 109 191 160 135 223 122 101 191 160 135
++184 128 126 203 180 109 236 180 161 134 98 86 45 39 35 39 28 30 41 33 22 37 33 35
++37 33 35 35 34 35 41 38 42 39 43 42 41 38 42 46 47 45 39 43 42 112 104 120
++39 37 42 46 47 45 46 47 45 99 96 86 141 115 130 164 142 149 187 177 178 68 68 60
++46 47 45 56 54 51 46 47 45 56 54 51 57 59 55 46 47 55 46 47 45 46 47 45
++39 43 42 35 34 35 35 34 35 48 36 41 28 32 42 35 34 35 68 24 14 184 128 126
++203 180 109 212 122 83 184 128 126 203 180 109 184 123 101 184 123 101 203 180 109 184 123 101
++165 137 101 212 122 83 184 123 101 202 181 82 184 123 101 184 123 101 212 122 83 165 137 101
++212 122 83 165 137 101 184 123 101 165 137 101 184 123 101 165 137 101 184 123 101 161 121 76
++161 121 76 184 123 101 161 121 76 184 128 126 229 200 201 187 177 178 173 167 157 173 167 157
++188 172 163 173 175 176 173 167 157 173 183 156 188 189 175 159 178 157 187 177 178 114 121 97
++133 69 69 134 98 86 165 108 102 165 108 102 165 108 102 133 69 69 133 69 69 133 69 69
++71 59 54 64 57 60 56 54 51 57 45 51 49 43 41 49 43 41 68 50 43 49 43 41
++49 43 41 45 39 35 45 39 35 49 43 41 49 43 41 41 38 42 45 39 35 68 50 43
++49 43 41 61 46 51 45 49 35 68 50 43 49 43 41 57 45 51 68 50 43 61 46 51
++49 43 41 49 43 41 48 36 41 46 47 45 49 43 41 48 36 41 49 43 41 45 39 35
++41 38 42 39 37 42 46 47 45 46 47 55 46 47 55 41 38 42 39 37 42 39 37 42
++32 31 35 32 31 35 32 26 35 28 26 35 32 31 35 32 26 35 32 31 35 32 31 35
++32 31 35 32 26 35 32 26 35 32 31 35 32 26 35 28 26 35 28 26 35 28 26 35
++
++215 195 173 242 198 175 210 180 161 210 180 161 173 167 157 188 172 163 188 147 163 191 160 135
++236 180 161 236 180 161 236 180 161 216 172 134 210 180 161 240 208 188 238 233 218 238 233 218
++212 206 189 229 200 201 240 208 188 238 233 218 240 208 188 240 208 188 240 189 188 210 180 161
++164 145 137 188 177 159 210 216 207 211 221 218 188 172 163 159 63 71 159 26 46 154 59 17
++159 26 46 133 28 45 154 59 17 133 28 45 133 65 47 143 103 96 99 61 48 210 180 161
++245 235 246 246 248 239 246 248 239 245 235 246 210 216 207 68 24 14 133 28 45 133 23 15
++159 26 46 154 14 17 159 26 46 154 14 17 159 26 46 154 14 17 133 28 45 133 23 15
++133 23 15 133 23 15 154 59 17 133 28 45 184 128 126 141 115 130 182 181 190 173 188 216
++182 181 190 173 175 176 166 181 211 182 181 190 173 188 216 188 196 234 203 196 201 188 191 205
++188 196 234 203 196 201 188 191 205 173 188 216 188 191 205 210 221 240 188 196 234 210 221 240
++211 221 218 225 201 230 210 221 240 210 221 240 210 221 240 211 221 218 210 221 240 225 201 230
++211 221 218 188 191 205 173 175 176 163 147 193 173 175 176 182 181 190 164 111 125 133 69 69
++133 28 45 100 10 13 133 23 15 100 10 13 100 10 13 165 137 101 239 232 157 239 232 157
++239 232 157 239 232 157 216 210 134 100 41 14 133 11 15 100 10 13 100 41 14 133 23 15
++133 23 15 133 23 15 133 23 15 100 10 13 100 10 13 216 172 134 235 170 109 165 137 101
++74 57 60 99 96 86 103 106 97 103 106 97 86 83 83 86 83 83 166 168 134 215 195 173
++212 206 189 215 195 173 240 208 188 240 189 188 215 195 173 242 198 175 240 208 188 238 233 218
++238 233 218 211 221 218 188 196 234 173 188 216 188 191 205 210 221 240 68 67 72 32 31 35
++35 34 35 35 34 35 39 28 30 35 34 35 37 33 35 37 33 35 45 39 35 45 39 35
++37 33 35 45 39 35 41 33 22 37 33 35 45 49 35 45 39 35 45 39 35 41 33 22
++45 39 35 45 39 35 45 39 35 57 45 51 161 121 76 228 160 135 242 198 157 235 170 109
++242 198 157 235 170 109 242 198 157 235 170 109 223 122 101 165 137 101 165 137 101 134 98 86
++161 121 76 184 123 101 216 172 134 216 172 134 99 79 59 41 33 22 33 35 35 39 37 42
++37 33 35 45 39 35 39 37 42 39 43 42 46 47 45 46 47 45 46 47 45 86 83 83
++112 104 120 46 47 55 56 54 51 68 68 60 114 99 97 173 167 157 194 181 189 141 132 131
++56 54 51 57 45 51 46 47 45 46 47 45 39 43 42 56 54 51 57 59 55 57 59 55
++56 54 51 39 43 42 39 43 42 35 34 35 37 33 35 45 30 35 39 28 30 134 98 86
++184 128 126 184 123 101 203 180 109 184 123 101 184 123 101 172 173 110 184 123 101 184 123 101
++184 123 101 184 123 101 184 123 101 184 123 101 184 123 101 202 181 82 184 123 101 184 123 101
++184 123 101 161 121 76 184 123 101 165 137 101 212 122 83 161 121 76 161 121 76 184 123 101
++184 123 101 161 121 76 161 121 76 184 128 126 212 206 189 173 175 176 157 164 157 173 175 176
++188 189 180 188 189 180 173 175 176 173 175 176 187 177 178 173 175 176 173 183 156 141 128 110
++133 69 69 105 79 65 105 79 65 133 69 69 134 98 86 133 69 69 113 97 77 99 61 48
++56 54 51 56 54 51 61 46 51 49 43 41 57 45 51 49 43 41 49 43 41 49 43 41
++49 43 41 48 36 41 49 43 41 48 36 41 49 43 41 39 43 42 45 39 35 49 43 41
++68 50 43 49 43 41 68 50 43 49 43 41 49 43 41 68 50 43 49 43 41 45 39 35
++49 43 41 48 36 41 49 43 41 48 36 41 41 38 42 41 38 42 41 38 42 41 38 42
++41 38 42 46 47 55 46 47 45 41 38 42 39 37 42 39 37 42 28 32 42 37 33 35
++28 32 42 32 31 35 32 31 35 32 31 35 28 32 42 28 26 35 28 26 35 28 26 35
++28 26 35 32 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++
++210 180 161 173 167 157 191 160 135 173 167 157 173 175 176 194 181 189 212 206 189 215 195 173
++242 198 175 242 198 175 240 189 188 242 198 175 240 189 188 235 233 206 245 232 231 245 235 246
++245 232 231 238 233 218 245 232 231 240 208 188 238 233 218 240 208 188 240 189 188 210 180 161
++164 145 137 163 158 149 194 181 189 238 233 218 212 185 189 133 65 47 181 55 69 159 26 46
++159 26 46 159 26 46 159 26 46 133 23 15 105 79 65 246 248 239 246 248 239 246 248 239
++246 248 239 246 248 239 246 248 239 246 248 239 229 200 201 99 36 46 133 23 15 133 28 45
++159 26 46 159 26 46 159 26 46 159 26 46 159 26 46 159 26 46 133 23 15 133 23 15
++133 28 45 133 23 15 133 11 15 159 26 46 184 128 126 143 151 181 173 188 216 182 181 190
++163 147 193 182 181 190 173 188 216 188 191 205 210 221 240 188 191 205 211 221 218 188 196 234
++188 191 205 210 221 240 211 221 218 188 196 234 173 188 216 182 181 190 188 191 205 188 196 234
++188 191 205 188 196 234 210 221 240 225 201 230 210 221 240 225 201 230 210 221 240 210 221 240
++173 188 216 157 164 157 143 151 181 173 175 176 143 151 181 143 146 150 143 151 181 173 167 157
++164 145 137 104 74 73 68 33 37 99 36 46 99 61 48 165 137 101 231 233 186 239 232 157
++239 232 157 239 232 157 239 232 157 100 41 14 133 23 15 133 23 15 133 23 15 133 23 15
++133 23 15 133 23 15 133 23 15 133 23 15 133 11 15 161 121 76 216 172 134 161 121 76
++88 79 65 112 104 120 112 124 124 112 104 120 86 83 83 75 64 67 141 139 118 210 180 161
++212 206 189 240 208 188 229 200 201 240 208 188 240 189 188 212 206 189 212 206 189 235 233 206
++238 233 218 238 233 218 210 216 207 188 191 205 210 216 207 182 181 190 31 42 35 33 35 35
++32 31 35 32 31 35 35 34 35 37 33 35 37 33 35 45 39 35 45 39 35 45 39 35
++45 39 35 45 39 35 45 39 35 39 43 42 45 39 35 49 43 41 45 39 35 45 39 35
++41 33 22 45 39 35 68 33 37 68 50 20 184 123 101 242 198 157 235 170 109 235 170 109
++235 170 109 235 170 109 235 170 109 235 170 109 161 121 76 113 97 77 99 79 59 133 65 47
++134 98 86 161 121 76 184 123 101 216 172 134 216 172 134 68 50 43 49 43 41 35 34 35
++37 33 35 39 37 42 41 38 42 39 43 42 39 43 42 46 47 45 46 47 55 39 43 42
++122 113 129 68 75 77 57 59 55 58 53 60 56 54 51 68 75 77 141 138 138 182 181 190
++58 53 60 46 47 45 46 47 55 46 47 45 41 38 42 56 54 51 58 61 60 56 54 51
++56 54 51 46 47 45 28 30 29 45 39 35 39 43 42 49 43 41 28 30 29 99 61 48
++191 160 135 191 160 135 223 122 101 191 160 135 203 180 109 184 123 101 184 128 126 203 180 109
++184 123 101 203 180 109 184 123 101 203 180 109 184 123 101 184 123 101 184 123 101 184 123 101
++165 137 101 184 123 101 165 137 101 184 123 101 184 123 101 184 123 101 184 123 101 161 121 76
++165 108 102 161 121 76 184 123 101 164 145 120 212 206 189 173 175 176 173 175 176 188 189 180
++188 189 180 188 189 175 173 175 176 188 189 175 188 189 175 173 175 176 173 175 176 141 128 110
++134 98 86 133 65 47 73 50 50 99 61 48 113 97 77 105 79 65 99 61 48 74 57 60
++68 50 43 56 54 51 61 46 51 68 50 43 49 43 41 49 43 41 49 43 41 49 43 41
++48 36 41 41 38 42 48 36 41 49 43 41 49 43 41 49 43 41 45 39 35 57 45 51
++68 50 43 49 43 41 49 43 41 49 43 41 49 43 41 49 43 41 49 43 41 49 43 41
++49 43 41 48 36 41 45 39 35 41 38 42 45 39 35 41 38 42 41 38 42 41 38 42
++46 47 55 46 47 45 49 40 56 41 38 42 39 37 42 39 37 42 39 37 42 32 31 35
++32 31 35 32 31 35 28 26 35 32 31 35 28 26 35 32 31 35 28 26 35 28 32 42
++28 26 35 32 31 35 28 26 35 30 34 36 28 26 35 28 26 35 20 25 36 28 26 35
++
++141 128 110 99 96 86 99 96 86 141 154 138 187 177 178 210 216 207 211 221 218 229 200 201
++240 189 188 242 198 175 242 198 175 242 198 175 235 233 206 245 232 231 245 235 246 245 235 246
++246 248 239 245 235 246 245 232 231 245 232 231 238 233 218 240 208 188 212 206 189 191 160 135
++141 138 138 141 154 138 188 177 159 189 200 189 210 216 207 159 63 71 181 55 69 159 26 46
++154 59 17 133 28 45 159 26 46 133 28 45 133 65 47 235 233 206 245 235 246 246 248 239
++246 248 239 246 248 239 246 248 239 246 248 239 210 216 207 99 36 46 133 28 45 154 59 17
++159 26 46 154 59 17 159 26 46 175 13 17 154 59 17 154 14 17 133 28 45 133 23 15
++133 11 15 133 23 15 133 28 45 133 28 45 194 181 189 173 188 216 182 181 190 163 147 193
++173 188 216 188 191 205 188 196 234 211 221 218 188 191 205 188 196 234 188 191 205 188 191 205
++188 196 234 210 221 240 210 221 240 210 221 240 210 221 240 188 196 234 210 216 207 210 221 240
++211 221 218 210 221 240 203 196 201 188 196 234 211 221 218 188 196 234 210 216 207 188 196 234
++182 181 190 188 191 205 188 191 205 188 191 205 182 181 190 182 181 190 173 175 176 143 146 150
++143 151 181 163 148 159 143 146 150 164 133 127 191 160 135 239 232 157 239 232 157 239 232 157
++239 232 157 239 232 157 239 232 157 99 79 28 133 23 15 133 23 15 133 23 15 133 23 15
++133 23 15 133 28 45 133 23 15 133 23 15 133 11 15 133 65 47 216 172 134 137 117 96
++87 76 74 103 106 97 123 109 109 123 109 109 86 83 83 71 81 67 99 96 86 163 158 149
++188 177 159 229 200 201 240 208 188 229 200 201 188 189 175 188 177 159 188 177 159 210 216 207
++245 232 231 221 241 240 238 233 218 210 216 207 235 233 206 157 164 157 33 35 35 33 35 35
++28 30 29 28 30 29 37 33 35 45 39 35 41 38 42 45 39 35 49 43 41 45 39 35
++45 39 35 45 39 35 39 43 42 45 39 35 45 39 35 49 43 41 45 39 35 41 38 42
++45 39 35 49 43 41 99 61 48 165 137 101 228 160 135 216 172 134 228 160 135 242 198 157
++235 170 109 228 160 135 235 170 109 184 123 101 161 121 76 134 98 86 161 121 76 165 137 101
++165 137 101 161 121 76 161 121 76 184 123 101 216 172 134 165 137 101 68 24 14 35 34 35
++41 38 42 41 38 42 45 39 35 41 38 42 39 43 42 46 47 45 46 47 45 56 54 51
++75 64 67 123 109 109 49 43 41 46 47 45 46 47 45 57 45 51 46 47 45 56 54 51
++58 53 60 58 61 60 46 47 55 58 61 60 56 54 51 46 47 45 41 38 42 39 37 42
++39 43 42 39 37 42 33 35 35 41 38 42 35 34 35 37 33 35 45 39 35 45 39 35
++165 137 101 164 145 120 184 128 126 191 160 135 184 123 101 216 172 134 191 160 135 184 123 101
++184 123 101 184 128 126 184 123 101 184 128 126 165 137 101 184 128 126 165 137 101 165 137 101
++184 123 101 184 123 101 184 123 101 184 123 101 184 123 101 161 121 76 184 123 101 161 121 76
++212 122 83 161 121 76 161 121 76 184 128 126 210 216 207 188 189 175 188 189 175 188 189 180
++188 189 180 173 175 176 173 175 176 173 175 176 187 177 178 173 175 176 173 183 156 137 117 96
++134 98 86 99 61 48 73 50 50 71 59 54 73 50 50 68 50 43 61 46 51 49 43 41
++56 54 51 61 46 51 68 50 43 49 43 41 49 43 41 49 43 41 49 43 41 49 43 41
++41 38 42 45 39 35 49 43 41 41 38 42 49 43 41 41 38 42 48 36 41 61 46 51
++49 43 41 49 43 41 49 43 41 49 43 41 49 43 41 49 43 41 48 36 41 49 43 41
++45 39 35 45 39 35 41 38 42 41 38 42 41 38 42 45 39 35 41 38 42 41 38 42
++46 47 55 41 38 42 39 43 42 39 37 42 39 37 42 28 32 42 32 31 35 28 32 42
++32 31 35 28 26 35 32 31 35 28 26 35 28 26 35 28 32 42 28 26 35 28 26 35
++28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 21 29 29 28 26 35 21 29 29
++
++86 83 83 68 68 60 112 124 124 173 175 176 211 221 218 245 232 231 245 232 231 238 233 218
++229 200 201 215 195 173 240 189 188 240 208 188 245 232 231 246 248 239 246 248 239 246 248 239
++246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 245 232 231 229 200 201 173 167 157
++166 168 134 164 145 137 191 160 135 188 189 175 210 216 207 184 128 126 159 63 71 133 65 47
++159 26 46 159 26 46 154 59 17 159 26 46 159 26 46 203 196 201 246 248 239 245 235 246
++246 248 239 246 248 239 246 248 239 246 248 239 203 196 201 133 58 15 133 28 45 159 26 46
++159 26 46 175 13 17 159 26 46 159 26 46 159 26 46 159 26 46 154 14 17 133 28 45
++133 23 15 133 28 45 100 10 13 188 147 163 188 191 205 143 151 181 166 181 211 188 191 205
++211 221 218 210 221 240 188 191 205 188 191 205 188 196 234 173 188 216 173 175 176 182 181 190
++188 196 234 210 221 240 210 221 240 210 221 240 188 196 234 211 221 218 210 221 240 188 196 234
++211 221 218 188 196 234 210 221 240 188 191 205 163 147 193 157 164 157 143 151 181 188 191 205
++210 221 240 203 196 201 211 221 218 203 196 201 203 196 201 188 191 205 188 191 205 188 191 205
++203 196 201 188 191 205 157 164 157 215 197 156 239 232 157 239 232 157 239 232 157 239 232 157
++235 233 206 239 232 157 231 233 186 203 180 109 133 58 15 133 28 45 133 23 15 133 28 45
++133 23 15 154 14 17 133 23 15 133 28 45 154 14 17 133 65 47 210 180 161 118 123 77
++87 76 74 83 103 97 99 96 86 104 88 73 75 64 67 75 64 67 64 57 60 103 106 97
++141 139 118 189 200 189 210 216 207 210 216 207 188 189 180 188 189 180 188 191 205 203 196 201
++221 241 240 245 235 246 246 248 239 246 248 239 246 248 239 173 175 176 39 43 42 41 38 42
++39 43 42 37 33 35 35 34 35 41 38 42 41 38 42 49 43 41 41 38 42 45 39 35
++45 39 35 45 39 35 48 36 41 68 50 43 68 50 43 68 33 37 49 43 41 49 43 41
++48 36 41 73 50 50 134 98 86 216 172 134 216 172 134 235 170 109 216 172 134 228 160 135
++216 172 134 235 170 109 223 122 101 184 123 101 161 121 76 191 160 135 216 172 134 216 172 134
++236 180 161 184 123 101 161 121 76 191 160 135 235 170 109 236 180 161 161 121 76 41 33 22
++41 38 42 41 38 42 41 38 42 41 38 42 49 43 41 46 47 45 46 47 45 49 43 41
++164 145 137 164 145 137 114 99 97 113 97 77 128 104 97 137 117 96 128 104 97 71 59 54
++57 45 51 46 47 45 56 54 51 46 47 45 58 53 60 46 47 45 37 33 35 39 43 42
++57 59 55 58 61 60 35 34 35 45 39 35 46 47 45 35 34 35 28 30 29 37 33 35
++87 76 74 191 160 135 203 180 109 184 128 126 203 180 109 191 160 135 223 122 101 191 160 135
++203 180 109 184 123 101 191 160 135 165 137 101 184 123 101 165 137 101 184 123 101 165 137 101
++184 123 101 165 137 101 184 123 101 184 123 101 161 121 76 184 123 101 184 123 101 184 123 101
++161 121 76 165 108 102 161 121 76 164 145 120 212 206 189 187 177 178 188 189 180 188 189 180
++188 189 180 173 175 176 173 183 156 173 175 176 188 189 175 173 175 176 173 175 176 137 117 96
++105 79 65 99 61 48 71 59 54 71 59 54 64 57 60 68 50 43 49 43 41 49 43 41
++49 43 41 57 45 51 49 43 41 61 46 51 49 43 41 49 43 41 49 43 41 45 39 35
++41 38 42 41 38 42 48 36 41 49 43 41 41 38 42 48 36 41 49 43 41 49 43 41
++45 39 35 45 39 35 45 39 35 45 39 35 45 30 35 45 39 35 45 39 35 49 43 41
++49 43 41 41 38 42 41 38 42 35 34 35 41 38 42 41 38 42 39 43 42 46 47 45
++46 47 55 46 47 55 41 38 42 39 37 42 28 32 42 35 34 35 32 31 35 32 31 35
++32 31 35 32 31 35 32 31 35 28 26 35 32 31 35 28 26 35 28 26 35 28 26 35
++28 26 35 28 26 35 28 26 35 28 26 35 20 25 36 28 26 35 20 25 36 28 26 35
++
++75 64 67 114 121 97 173 175 176 203 196 201 245 232 231 246 248 239 245 235 246 246 248 239
++211 221 218 240 208 188 235 233 206 245 232 231 245 235 246 246 248 239 246 248 239 246 248 239
++246 248 239 246 248 239 246 248 239 245 235 246 246 248 239 245 235 246 238 233 218 215 195 173
++210 180 161 236 180 161 188 177 159 188 172 163 189 200 189 188 172 163 159 63 71 159 26 46
++159 26 46 159 26 46 159 26 46 159 26 46 133 28 45 188 189 175 211 221 218 245 232 231
++246 248 239 246 248 239 245 235 246 246 248 239 229 200 201 99 36 46 159 26 46 159 26 46
++159 26 46 159 26 46 154 59 17 159 26 46 154 14 17 159 26 46 159 26 46 154 14 17
++154 14 17 100 10 13 164 111 125 173 188 216 173 175 176 173 188 216 188 191 205 188 196 234
++182 181 190 166 181 211 173 175 176 173 188 216 203 196 201 163 147 193 166 181 211 188 191 205
++188 191 205 210 221 240 225 201 230 210 221 240 210 221 240 210 221 240 210 221 240 225 201 230
++210 221 240 188 196 234 188 191 205 166 181 211 173 175 176 143 151 181 157 164 157 182 181 190
++173 175 176 166 181 211 163 148 159 166 181 211 182 181 190 188 191 205 188 191 205 203 196 201
++173 175 176 122 133 132 114 99 97 188 193 159 239 232 157 239 232 157 239 232 157 231 233 186
++231 233 186 239 232 157 231 233 186 231 233 186 154 59 17 154 59 17 154 14 17 133 23 15
++154 14 17 133 23 15 133 28 45 133 23 15 133 28 45 134 98 86 216 172 134 113 97 77
++75 83 72 87 76 74 75 83 72 104 88 73 113 97 77 114 99 97 122 133 132 143 146 150
++143 151 181 188 191 205 203 196 201 188 196 234 188 196 234 188 196 234 173 188 216 188 196 234
++188 196 234 188 196 234 211 221 218 210 221 240 210 221 240 182 181 190 58 53 60 39 37 42
++41 38 42 39 43 42 41 38 42 45 39 35 49 43 41 41 38 42 45 39 35 45 39 35
++45 39 35 49 43 41 104 74 73 134 98 86 133 69 69 68 50 20 68 50 43 68 33 37
++68 50 43 105 79 65 105 79 65 191 160 135 235 170 109 216 172 134 216 172 134 216 172 134
++235 170 109 216 172 134 216 172 134 184 123 101 203 180 109 228 160 135 236 180 161 242 198 157
++236 180 161 184 128 126 165 137 101 203 180 109 228 160 135 235 170 109 215 197 156 134 98 86
++45 30 35 45 39 35 41 38 42 45 39 35 46 47 45 46 47 45 46 47 55 104 88 73
++210 180 161 191 160 135 210 180 161 216 172 134 210 180 161 216 172 134 191 160 135 191 160 135
++134 98 86 71 59 54 56 54 51 46 47 45 56 54 51 46 47 45 46 47 45 46 47 45
++57 59 55 56 54 51 41 38 42 39 43 42 56 54 51 39 43 42 31 42 35 37 33 35
++68 50 43 113 97 77 184 123 101 184 123 101 184 123 101 184 123 101 165 137 101 184 123 101
++184 123 101 184 123 101 184 123 101 184 123 101 165 137 101 184 123 101 165 137 101 184 123 101
++165 137 101 184 123 101 184 123 101 165 137 101 184 123 101 184 123 101 161 121 76 191 160 135
++141 128 110 143 103 96 161 121 76 184 128 126 189 200 189 188 189 175 188 189 180 188 189 180
++188 189 180 157 164 157 173 175 176 188 189 175 187 177 178 173 175 176 173 183 156 128 104 97
++105 79 65 73 50 50 64 57 60 64 57 60 68 50 43 61 46 51 57 45 51 49 43 41
++57 45 51 49 43 41 68 50 43 49 43 41 57 45 51 49 43 41 49 43 41 49 43 41
++41 38 42 48 36 41 49 43 41 41 38 42 49 43 41 41 38 42 48 36 41 49 43 41
++45 30 35 35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 37 33 35 46 47 45
++37 33 35 33 35 35 39 37 42 33 35 35 37 33 35 35 34 35 41 38 42 46 47 45
++46 47 45 41 38 42 39 37 42 39 37 42 32 31 35 28 32 42 32 31 35 28 26 35
++32 31 35 28 26 35 32 31 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 28 26 35 28 26 35 20 25 36 21 29 29 20 25 36 28 26 35 28 26 35
++
++99 96 86 141 138 138 187 177 178 210 216 207 221 241 240 221 241 240 246 248 239 246 248 239
++245 235 246 246 248 239 245 235 246 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239
++246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 238 233 218 240 208 188
++240 208 188 240 208 188 236 180 161 216 172 134 188 177 159 212 185 189 133 69 69 133 65 47
++159 26 46 159 26 46 133 65 47 154 59 17 133 28 45 206 156 159 212 206 189 229 200 201
++240 208 188 238 233 218 246 248 239 246 248 239 212 185 189 133 23 15 159 26 46 159 26 46
++154 59 17 159 26 46 159 26 46 159 26 46 159 26 46 154 59 17 133 23 15 154 14 17
++159 26 46 165 108 102 203 196 201 166 181 211 188 196 234 211 221 218 188 191 205 143 146 150
++143 146 150 143 151 181 173 188 216 188 191 205 173 175 176 143 151 181 157 164 157 166 181 211
++173 188 216 188 196 234 211 221 218 188 196 234 210 221 240 210 221 240 210 221 240 188 196 234
++210 221 240 173 175 176 173 175 176 188 191 205 188 191 205 182 181 190 163 148 159 173 188 216
++182 181 190 188 191 205 28 32 42 103 106 97 157 164 157 112 124 124 141 138 138 157 164 157
++173 167 157 143 151 181 143 146 150 216 210 134 239 232 157 239 232 157 239 232 157 239 232 157
++231 233 186 231 233 186 231 233 186 231 233 186 161 121 76 159 26 46 133 28 45 133 23 15
++154 14 17 159 26 46 133 23 15 133 23 15 100 41 14 165 137 101 172 173 110 88 79 65
++86 83 83 87 76 74 113 97 77 164 145 137 187 177 178 210 221 240 210 221 240 188 196 234
++210 221 240 188 196 234 188 196 234 210 221 240 188 191 205 188 191 205 188 191 205 173 188 216
++210 216 207 188 196 234 188 196 234 173 188 216 173 188 216 210 221 240 188 196 234 122 133 132
++61 60 67 28 32 42 39 43 42 49 43 41 45 39 35 45 39 35 45 39 35 31 42 35
++68 33 37 105 79 65 133 78 94 161 121 76 113 97 77 99 61 48 45 39 35 75 64 67
++133 69 69 134 98 86 68 50 20 165 108 102 235 170 109 216 172 134 235 170 109 216 172 134
++235 170 109 228 160 135 203 180 109 235 170 109 228 160 135 236 180 161 242 198 175 242 198 157
++236 180 161 203 180 109 223 122 101 228 160 135 216 172 134 216 172 134 228 160 135 165 108 102
++39 28 30 28 30 29 39 37 42 41 38 42 46 47 45 57 45 51 68 50 43 191 160 135
++191 160 135 210 180 161 210 180 161 191 160 135 210 180 161 206 156 159 216 172 134 191 160 135
++184 128 126 165 137 101 71 59 54 68 64 51 46 47 55 58 53 60 56 54 51 58 61 60
++58 61 60 58 61 60 56 54 51 56 54 51 56 54 51 39 43 42 35 34 35 37 33 35
++58 61 60 58 53 60 137 117 96 191 160 135 184 123 101 172 173 110 184 123 101 184 123 101
++184 123 101 165 137 101 184 123 101 165 137 101 184 123 101 184 123 101 184 123 101 184 123 101
++184 123 101 165 137 101 184 123 101 165 137 101 212 122 83 161 121 76 184 128 126 187 177 178
++137 117 96 134 98 86 113 97 77 164 145 137 188 172 163 173 175 176 189 200 189 188 189 180
++188 189 180 157 164 157 173 175 176 188 189 180 187 177 178 173 175 176 173 167 157 128 104 97
++68 69 47 68 50 43 56 54 51 71 59 54 64 57 60 68 50 43 57 45 51 49 43 41
++61 46 51 57 45 51 61 46 51 56 54 51 68 50 43 57 45 51 49 43 41 49 43 41
++48 36 41 41 38 42 49 43 41 41 38 42 45 39 35 41 38 42 49 43 41 41 38 42
++37 33 35 45 39 35 35 34 35 41 38 42 35 34 35 33 35 35 41 38 42 35 34 35
++39 43 42 35 34 35 35 34 35 35 34 35 39 37 42 35 34 35 39 37 42 46 47 55
++46 47 55 41 38 42 39 37 42 39 37 42 28 32 42 37 33 35 32 31 35 32 31 35
++32 31 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++30 34 36 20 25 36 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++
++103 106 97 141 138 138 188 177 159 188 189 175 212 185 189 210 216 207 245 232 231 246 248 239
++246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239
++246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 245 235 246 245 232 231 235 233 206
++240 208 188 240 208 188 240 208 188 206 156 159 188 177 159 188 193 159 165 108 102 181 55 69
++159 26 46 181 55 69 159 26 46 181 55 69 133 65 47 210 180 161 210 216 207 238 233 218
++240 208 188 238 233 218 238 233 218 229 221 240 194 181 189 133 28 45 159 26 46 154 59 17
++159 26 46 159 26 46 175 13 17 159 26 46 154 59 17 159 26 46 159 26 46 133 28 45
++143 103 96 188 191 205 173 188 216 166 181 211 173 175 176 141 138 138 131 128 178 173 175 176
++182 181 190 166 181 211 188 196 234 182 181 190 143 151 181 143 146 150 143 146 150 143 151 181
++188 191 205 188 191 205 188 196 234 211 221 218 210 221 240 211 221 218 188 196 234 182 181 190
++143 146 150 143 151 181 182 181 190 182 181 190 188 191 205 188 191 205 173 175 176 182 181 190
++182 181 190 188 191 205 157 164 157 28 32 42 143 151 181 173 167 157 141 138 138 122 133 132
++141 115 130 141 138 138 164 145 137 242 198 157 235 213 109 239 232 157 239 232 157 231 233 186
++231 233 186 231 233 186 231 233 186 231 233 186 203 180 109 133 23 15 154 59 17 159 26 46
++154 59 17 133 28 45 133 28 45 133 23 15 100 10 13 184 123 101 114 121 97 75 83 72
++86 83 83 99 96 86 164 145 120 212 185 189 210 216 207 188 196 234 188 196 234 210 221 240
++188 196 234 188 196 234 188 196 234 188 191 205 173 188 216 188 191 205 188 196 234 188 196 234
++211 221 218 188 196 234 188 191 205 188 196 234 188 191 205 173 188 216 188 196 234 188 196 234
++188 196 234 143 151 181 68 75 77 41 38 42 45 39 35 45 39 35 45 39 35 45 39 35
++99 79 59 143 103 96 143 103 96 133 69 69 134 98 86 113 97 77 68 50 43 104 74 73
++133 69 69 113 97 77 99 61 48 184 123 101 228 160 135 216 172 134 216 172 134 228 160 135
++216 172 134 228 160 135 235 170 109 216 122 126 228 160 135 236 180 161 242 198 157 236 180 161
++242 198 157 216 172 134 216 172 134 228 160 135 235 170 109 216 172 134 235 170 109 216 172 134
++73 50 50 41 33 22 41 38 42 41 38 42 49 43 41 45 39 35 128 104 97 191 160 135
++210 180 161 210 180 161 216 172 134 210 180 161 188 177 159 216 172 134 191 160 135 191 160 135
++184 123 101 165 137 101 103 81 83 56 54 51 46 47 45 58 61 60 57 59 55 58 53 60
++57 59 55 58 53 60 58 61 60 57 59 55 58 61 60 46 47 45 41 38 42 45 49 35
++57 59 55 57 59 55 88 79 65 184 123 101 184 123 101 184 123 101 165 137 101 184 123 101
++165 137 101 184 123 101 184 123 101 165 137 101 184 123 101 165 137 101 184 123 101 184 123 101
++165 137 101 161 121 76 184 123 101 165 137 101 184 123 101 161 121 76 191 160 135 188 189 175
++141 138 138 141 139 118 123 109 109 141 139 118 141 154 138 173 175 176 188 189 180 188 189 180
++188 189 180 157 164 157 173 175 176 188 189 175 173 175 176 173 175 176 173 183 156 128 104 97
++99 79 59 68 50 43 71 59 54 56 54 51 61 46 51 57 45 51 57 45 51 61 46 51
++56 54 51 61 46 51 57 45 51 56 54 51 56 54 51 56 54 51 49 43 41 49 43 41
++49 43 41 49 43 41 49 43 41 41 38 42 37 33 35 41 38 42 49 43 41 37 33 35
++41 38 42 37 33 35 39 37 42 33 35 35 35 34 35 35 34 35 35 34 35 35 34 35
++35 34 35 35 34 35 39 43 42 35 34 35 35 34 35 33 35 35 39 37 42 41 38 42
++39 43 42 39 37 42 39 37 42 39 37 42 32 31 35 32 31 35 32 31 35 28 32 42
++28 26 35 28 26 35 30 34 36 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 21 29 29 28 26 35 20 25 36 28 26 35 28 26 35 28 26 35 28 26 35
++
++123 133 112 141 138 138 164 145 137 164 145 120 164 145 120 166 168 134 212 206 189 246 248 239
++246 248 239 245 235 246 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239
++246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 245 232 231 240 208 188
++238 233 218 240 208 188 242 198 175 210 180 161 191 160 135 188 172 163 184 128 126 133 65 47
++181 55 69 159 26 46 159 26 46 159 26 46 159 26 46 231 153 161 238 233 218 245 232 231
++238 233 218 245 232 231 245 232 231 246 248 239 212 185 189 154 59 17 159 26 46 159 26 46
++159 26 46 159 26 46 159 26 46 159 26 46 154 14 17 159 26 46 133 11 15 141 108 110
++225 201 230 143 151 181 122 113 129 122 113 129 104 108 124 112 124 124 157 164 157 166 181 211
++188 191 205 188 191 205 182 181 190 143 146 150 143 151 181 173 175 176 143 151 181 143 151 181
++188 196 234 188 191 205 210 221 240 210 221 240 210 221 240 188 196 234 211 221 218 143 146 150
++143 151 181 173 175 176 143 151 181 173 175 176 182 181 190 173 175 176 143 151 181 182 181 190
++188 191 205 143 151 181 173 175 176 112 104 120 157 164 157 173 175 176 173 175 176 182 181 190
++188 189 175 191 160 135 216 210 134 239 232 157 235 213 109 239 232 157 239 232 157 239 232 157
++231 233 186 239 232 157 231 233 186 239 232 157 216 210 134 133 58 15 154 14 17 159 26 46
++100 10 13 100 41 14 133 23 15 159 26 46 133 23 15 133 28 45 71 81 67 99 96 86
++123 109 109 123 109 109 164 145 137 188 191 205 188 196 234 210 221 240 188 196 234 210 221 240
++188 196 234 188 191 205 166 181 211 173 175 176 173 175 176 188 191 205 188 191 205 203 196 201
++173 188 216 188 191 205 188 191 205 188 191 205 188 196 234 188 191 205 188 191 205 188 196 234
++188 191 205 188 196 234 188 196 234 58 53 60 46 47 55 45 49 35 49 43 41 68 50 20
++133 78 94 165 108 102 134 98 86 133 69 69 143 103 96 165 108 102 73 50 50 99 61 48
++134 98 86 133 69 69 216 172 134 228 160 135 216 172 134 216 172 134 216 172 134 191 160 135
++235 170 109 228 160 135 235 170 109 235 170 109 235 170 109 236 180 161 236 180 161 242 198 157
++236 180 161 216 172 134 216 172 134 235 170 109 216 172 134 216 172 134 203 180 109 228 160 135
++161 121 76 41 28 14 45 39 35 39 37 42 45 39 35 49 43 41 141 139 118 191 160 135
++216 172 134 210 180 161 210 180 161 210 180 161 216 172 134 206 156 159 216 172 134 216 172 134
++165 137 101 165 108 102 141 128 110 68 50 43 41 38 42 56 54 51 56 54 51 57 59 55
++56 54 51 56 54 51 56 54 51 58 53 60 58 61 60 58 61 60 58 61 60 58 61 60
++58 61 60 61 60 67 68 64 51 113 97 77 165 137 101 184 123 101 165 137 101 184 123 101
++165 137 101 184 123 101 165 137 101 184 123 101 184 123 101 184 123 101 184 123 101 184 123 101
++184 123 101 165 137 101 184 123 101 184 128 126 161 121 76 161 121 76 184 128 126 189 200 189
++159 178 157 173 183 156 163 158 149 141 154 138 164 145 137 173 167 157 189 200 189 188 189 180
++173 175 176 157 164 157 188 189 175 173 175 176 188 189 175 173 175 176 157 164 157 134 98 86
++88 79 65 68 50 43 71 59 54 57 59 55 68 50 43 49 43 41 56 54 51 49 43 41
++56 54 51 49 43 41 56 54 51 61 46 51 68 50 43 46 47 45 49 43 41 49 43 41
++49 43 41 49 43 41 41 38 42 41 38 42 37 33 35 39 37 42 39 43 42 37 33 35
++39 37 42 37 33 35 39 43 42 57 59 55 46 47 45 28 30 29 39 43 42 35 34 35
++39 43 42 35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 39 37 42 39 43 42
++41 38 42 39 37 42 39 37 42 39 37 42 32 31 35 32 31 35 28 26 35 28 26 35
++32 31 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 20 25 36 28 26 35 21 29 29 28 26 35 28 26 35 28 26 35 28 26 35
++
++141 128 110 164 145 137 210 180 161 236 180 161 215 197 156 191 160 135 210 180 161 238 233 218
++246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239
++246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 245 235 246 238 233 218
++240 208 188 240 208 188 240 208 188 215 195 173 210 180 161 188 177 159 206 156 159 133 65 47
++159 26 46 159 26 46 181 55 69 159 26 46 159 26 46 191 160 135 238 233 218 245 232 231
++245 232 231 245 232 231 246 248 239 246 248 239 212 185 189 133 28 45 159 26 46 197 60 17
++159 26 46 159 26 46 154 59 17 159 26 46 159 26 46 133 23 15 133 28 45 164 111 125
++114 99 97 114 99 97 83 103 97 143 146 150 163 147 193 143 151 181 143 151 181 173 175 176
++166 181 211 166 181 211 143 151 181 173 175 176 166 181 211 182 181 190 143 151 181 188 191 205
++188 196 234 211 221 218 210 221 240 210 221 240 203 196 201 166 181 211 143 151 181 188 191 205
++203 196 201 188 196 234 210 216 207 188 196 234 188 191 205 188 191 205 143 151 181 173 175 176
++182 181 190 157 164 157 143 146 150 143 146 150 143 146 150 163 148 159 143 146 150 141 139 118
++231 233 186 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157
++231 233 186 231 233 186 231 233 186 239 232 157 231 233 186 133 65 47 133 23 15 133 23 15
++99 36 46 100 41 14 133 23 15 154 14 17 159 26 46 99 36 46 86 83 83 83 103 97
++143 146 150 182 181 190 203 196 201 210 221 240 210 221 240 188 196 234 210 221 240 188 196 234
++173 175 176 157 164 157 143 151 181 182 181 190 173 188 216 188 191 205 188 191 205 173 188 216
++211 221 218 188 196 234 211 221 218 188 196 234 188 191 205 188 191 205 173 188 216 188 191 205
++188 196 234 188 191 205 211 221 218 122 133 132 35 32 58 49 43 41 68 50 43 99 61 48
++141 108 110 165 108 102 133 69 69 161 121 76 143 103 96 134 98 86 133 69 69 104 88 73
++134 98 86 184 123 101 228 160 135 235 170 109 216 172 134 228 160 135 191 160 135 235 170 109
++228 160 135 235 170 109 235 170 109 235 170 109 235 170 109 235 170 109 236 180 161 242 198 157
++216 172 134 228 160 135 235 170 109 228 160 135 235 170 109 203 180 109 228 160 135 235 170 109
++216 172 134 143 103 96 68 50 20 45 30 35 45 39 35 71 59 54 141 128 110 191 160 135
++191 160 135 191 160 135 210 180 161 216 172 134 210 180 161 216 172 134 216 172 134 191 160 135
++184 123 101 184 123 101 164 145 120 104 88 73 49 43 41 56 54 51 58 53 60 58 61 60
++58 61 60 61 60 67 58 61 60 58 61 60 61 60 67 64 57 60 58 61 60 68 68 60
++58 61 60 46 47 55 58 61 60 68 64 51 165 137 101 184 123 101 184 123 101 165 137 101
++184 123 101 184 123 101 184 123 101 184 123 101 165 137 101 184 123 101 161 121 76 184 123 101
++161 121 76 184 123 101 165 137 101 184 128 126 184 123 101 161 121 76 191 160 135 189 200 189
++188 189 180 188 189 180 188 189 180 173 175 176 157 164 157 187 177 178 189 200 189 188 189 180
++173 175 176 157 164 157 173 175 176 188 189 180 173 175 176 173 175 176 173 167 157 134 98 86
++74 57 60 68 50 43 61 46 51 61 46 51 68 50 43 68 50 43 49 43 41 49 43 41
++49 43 41 49 43 41 49 43 41 68 50 43 49 43 41 49 43 41 49 43 41 49 43 41
++46 47 45 41 38 42 41 38 42 35 34 35 35 34 35 45 39 35 39 43 42 37 33 35
++35 34 35 35 34 35 58 61 60 122 133 132 64 57 60 39 43 42 37 33 35 35 34 35
++39 37 42 35 34 35 35 34 35 31 42 35 37 33 35 33 35 35 35 34 35 39 37 42
++39 37 42 39 37 42 39 37 42 32 31 35 28 26 35 32 31 35 28 26 35 32 31 35
++28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++21 29 29 20 25 36 23 20 27 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++
++141 128 110 188 177 159 242 198 175 240 208 188 240 208 188 236 180 161 210 180 161 210 216 207
++246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239
++246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 245 232 231 238 233 218
++240 208 188 240 208 188 240 189 188 194 181 189 188 177 159 188 172 163 188 177 159 159 63 71
++181 55 69 159 26 46 181 55 69 154 59 17 159 26 46 184 128 126 245 235 246 245 232 231
++246 248 239 246 248 239 246 248 239 246 248 239 206 156 159 133 65 47 159 26 46 159 26 46
++159 26 46 159 26 46 159 26 46 154 14 17 159 26 46 154 14 17 133 23 15 133 28 45
++104 74 73 188 147 163 141 138 138 188 191 205 182 181 190 188 191 205 173 175 176 166 181 211
++173 188 216 173 175 176 157 164 157 166 181 211 182 181 190 188 191 205 173 175 176 188 191 205
++188 196 234 210 221 240 188 196 234 143 146 150 131 128 178 188 191 205 210 221 240 188 196 234
++211 221 218 188 196 234 203 196 201 188 191 205 210 216 207 188 191 205 173 175 176 143 151 181
++173 175 176 104 108 124 112 104 120 112 124 124 163 148 159 173 175 176 141 132 131 173 183 156
++238 233 218 235 233 206 231 233 186 235 233 206 231 233 186 231 233 186 235 233 206 235 233 206
++235 233 206 235 233 206 235 233 206 235 233 206 235 233 206 215 197 156 133 58 15 133 58 15
++99 36 46 133 23 15 133 28 45 133 28 45 133 23 15 133 65 47 122 113 129 188 191 205
++210 221 240 210 221 240 210 221 240 188 196 234 210 221 240 210 221 240 210 221 240 173 175 176
++122 133 132 143 146 150 188 191 205 182 181 190 182 181 190 182 181 190 188 191 205 210 221 240
++188 191 205 188 191 205 188 191 205 203 196 201 188 196 234 188 191 205 182 181 190 188 191 205
++188 191 205 188 191 205 173 188 216 188 191 205 112 104 120 104 74 73 104 88 73 113 97 77
++165 108 102 134 98 86 105 79 65 133 65 47 134 98 86 134 98 86 134 98 86 134 98 86
++133 78 94 184 123 101 235 170 109 235 170 109 235 170 109 191 160 135 235 170 109 216 122 126
++235 170 109 235 170 109 235 170 109 247 185 70 235 170 109 235 170 109 236 180 161 228 160 135
++228 160 135 235 170 109 235 170 109 235 170 109 216 122 126 235 170 109 191 160 135 228 160 135
++203 180 109 216 172 134 143 103 96 41 33 22 45 39 35 56 54 51 134 98 86 165 137 101
++191 160 135 210 180 161 216 172 134 210 180 161 210 180 161 216 172 134 216 172 134 184 128 126
++165 137 101 184 123 101 184 123 101 134 98 86 46 47 45 56 54 51 56 54 51 58 53 60
++57 59 55 57 59 55 58 61 60 64 57 60 58 61 60 68 68 60 61 60 67 64 57 60
++61 60 67 56 54 51 64 57 60 57 59 55 134 98 86 184 123 101 191 160 135 184 123 101
++203 180 109 184 123 101 184 123 101 165 137 101 184 123 101 212 122 83 184 123 101 165 137 101
++184 123 101 161 121 76 164 145 120 184 123 101 161 121 76 161 121 76 191 160 135 212 206 189
++189 200 189 203 196 201 189 200 189 212 206 189 173 175 176 188 189 175 188 189 180 188 189 180
++173 175 176 157 164 157 188 189 175 188 189 180 173 175 176 188 189 175 157 164 157 104 88 73
++68 50 43 49 43 41 71 59 54 75 64 67 88 79 65 75 64 67 68 50 43 61 46 51
++68 50 43 49 43 41 49 43 41 57 45 51 49 43 41 49 43 41 49 43 41 49 43 41
++41 38 42 41 38 42 41 38 42 35 34 35 35 34 35 35 34 35 39 43 42 35 34 35
++39 37 42 35 34 35 64 57 60 103 106 97 49 43 41 41 38 42 41 38 42 39 37 42
++31 42 35 35 34 35 35 34 35 37 33 35 33 35 35 35 34 35 33 35 35 30 34 36
++33 35 35 39 37 42 35 34 35 32 31 35 32 31 35 28 26 35 28 26 35 28 26 35
++32 31 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 28 26 35 20 25 36 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++
++164 133 127 210 180 161 242 198 175 240 208 188 240 208 188 240 208 188 210 180 161 215 195 173
++246 248 239 246 248 239 245 235 246 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239
++246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 245 235 246 246 248 239 240 208 188
++240 189 188 210 180 161 188 172 163 173 167 157 173 167 157 163 158 149 163 158 149 184 128 126
++133 28 45 159 26 46 159 63 71 159 26 46 159 26 46 181 55 69 235 233 206 246 248 239
++246 248 239 245 235 246 246 248 239 246 248 239 187 177 178 159 26 46 154 59 17 159 26 46
++175 13 17 159 26 46 197 60 17 159 26 46 159 26 46 159 26 46 159 26 46 133 11 15
++164 142 149 166 181 211 143 146 150 166 181 211 188 191 205 173 188 216 188 191 205 173 188 216
++182 181 190 143 151 181 166 181 211 182 181 190 182 181 190 173 175 176 143 151 181 188 191 205
++173 188 216 143 151 181 143 151 181 188 191 205 210 221 240 210 221 240 188 196 234 210 221 240
++188 196 234 203 196 201 188 196 234 203 196 201 188 196 234 188 191 205 188 191 205 173 175 176
++122 113 129 112 104 120 103 106 97 103 106 97 122 113 129 143 146 150 141 138 138 189 200 189
++246 248 239 238 233 218 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 238 233 218
++246 248 239 246 248 239 246 248 239 246 248 239 238 233 218 246 248 239 184 123 101 133 23 15
++133 23 15 133 28 45 133 69 69 159 63 71 165 108 102 164 111 125 164 142 149 173 175 176
++225 201 230 188 196 234 210 221 240 210 221 240 188 196 234 211 221 218 143 151 181 141 138 138
++157 164 157 173 175 176 182 181 190 182 181 190 188 191 205 188 191 205 211 221 218 188 191 205
++203 196 201 211 221 218 188 196 234 188 191 205 182 181 190 188 191 205 166 181 211 173 175 176
++166 181 211 188 191 205 173 175 176 188 191 205 157 164 157 141 108 110 165 108 102 165 137 101
++143 103 96 105 79 65 143 103 96 134 98 86 143 103 96 134 98 86 134 98 86 134 98 86
++113 97 77 134 98 86 235 170 109 235 170 109 223 122 101 216 172 134 216 172 134 228 160 135
++235 170 109 247 185 70 223 122 101 247 185 70 235 170 109 228 160 135 242 198 157 236 180 161
++235 170 109 235 170 109 223 122 101 235 170 109 235 170 109 216 172 134 228 160 135 216 172 134
++191 160 135 228 160 135 216 172 134 105 79 65 41 33 22 39 43 42 104 88 73 165 137 101
++191 160 135 191 160 135 216 172 134 216 172 134 210 180 161 216 172 134 191 160 135 184 123 101
++184 123 101 184 123 101 191 160 135 137 117 96 71 59 54 58 61 60 58 61 60 57 59 55
++64 57 60 64 57 60 58 61 60 58 61 60 64 57 60 61 60 67 58 61 60 64 57 60
++61 60 67 61 60 67 58 61 60 61 60 67 99 79 59 184 123 101 184 123 101 184 123 101
++184 123 101 184 123 101 184 123 101 184 123 101 184 123 101 165 137 101 184 123 101 184 123 101
++161 121 76 165 108 102 184 128 126 165 137 101 184 123 101 165 108 102 206 156 159 203 196 201
++189 200 189 203 196 201 189 200 189 203 196 201 173 175 176 188 189 175 188 189 180 188 189 180
++173 175 176 163 158 149 173 175 176 188 189 175 173 175 176 187 177 178 157 164 157 88 79 65
++56 54 51 49 43 41 88 79 65 104 74 73 134 98 86 103 81 83 99 79 59 75 64 67
++99 61 48 73 50 50 61 46 51 49 43 41 49 43 41 49 43 41 41 38 42 41 38 42
++45 39 35 39 37 42 35 34 35 31 42 35 39 37 42 39 43 42 41 38 42 35 34 35
++31 42 35 41 38 42 39 37 42 41 38 42 39 37 42 33 35 35 35 34 35 35 34 35
++37 33 35 35 34 35 35 34 35 35 34 35 33 35 35 28 30 29 28 30 29 32 31 35
++33 35 35 32 31 35 32 31 35 32 31 35 32 31 35 28 30 29 28 26 35 32 31 35
++28 26 35 28 26 35 28 26 35 30 34 36 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 28 26 35 21 29 29 28 26 35 21 29 29 28 26 35 28 30 29 28 26 35
++
++164 133 127 188 177 159 242 198 175 240 208 188 240 208 188 242 198 175 242 198 157 215 195 173
++245 235 246 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 245 235 246
++246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 245 232 231 229 200 201
++188 177 159 191 160 135 173 167 157 173 167 157 173 167 157 163 158 149 164 145 137 164 145 137
++133 65 47 159 63 71 159 26 46 154 59 17 181 55 69 159 26 46 184 128 126 246 248 239
++245 235 246 246 248 239 245 235 246 246 248 239 191 160 135 159 26 46 159 26 46 197 60 17
++159 26 46 159 26 46 159 26 46 159 26 46 154 14 17 133 23 15 159 26 46 159 26 46
++194 181 189 166 181 211 182 181 190 86 83 83 188 191 205 173 188 216 173 188 216 173 188 216
++173 175 176 143 151 181 188 191 205 189 200 189 143 151 181 157 164 157 173 175 176 173 188 216
++122 133 132 210 221 240 210 221 240 210 221 240 211 221 218 188 196 234 229 221 240 188 196 234
++211 221 218 188 196 234 188 191 205 188 191 205 188 191 205 211 221 218 188 191 205 143 146 150
++141 138 138 122 133 132 112 104 120 86 83 83 68 75 77 104 108 124 163 148 159 212 206 189
++246 248 239 238 233 218 238 233 218 238 233 218 238 233 218 238 233 218 235 233 206 246 248 239
++235 233 206 246 248 239 238 233 218 238 233 218 246 248 239 238 233 218 212 206 189 100 41 14
++99 36 46 164 133 127 184 128 126 164 133 127 164 133 127 164 133 127 165 108 102 141 108 110
++141 115 130 210 221 240 210 221 240 188 196 234 211 221 218 143 151 181 68 75 77 173 175 176
++182 181 190 104 108 124 157 164 157 188 191 205 188 191 205 211 221 218 188 191 205 188 191 205
++188 196 234 188 191 205 173 175 176 182 181 190 188 191 205 173 175 176 182 181 190 173 175 176
++157 164 157 182 181 190 173 175 176 188 191 205 188 191 205 141 115 130 165 137 101 165 108 102
++134 98 86 133 65 47 143 103 96 143 103 96 161 121 76 134 98 86 134 98 86 133 69 69
++133 69 69 133 69 69 235 170 109 235 170 109 235 170 109 236 180 161 242 198 175 242 198 175
++235 170 109 247 185 70 247 185 70 247 185 70 235 170 109 242 198 157 242 198 175 242 198 175
++242 198 157 235 170 109 223 122 101 247 185 70 235 170 109 228 160 135 206 156 159 191 160 135
++235 170 109 191 160 135 216 172 134 184 128 126 68 50 43 64 57 60 104 88 73 165 108 102
++165 137 101 191 160 135 191 160 135 191 160 135 216 172 134 191 160 135 216 172 134 203 180 109
++184 123 101 184 123 101 184 123 101 164 145 120 99 79 59 57 59 55 68 68 60 64 57 60
++64 57 60 64 57 60 68 68 60 64 57 60 68 68 60 58 61 60 64 57 60 58 61 60
++68 68 60 68 67 72 68 68 60 68 68 60 68 69 55 164 145 120 184 123 101 212 122 83
++172 173 110 184 123 101 165 137 101 184 123 101 165 137 101 184 123 101 184 123 101 161 121 76
++184 123 101 184 123 101 172 173 110 184 128 126 161 121 76 184 123 101 191 160 135 189 200 189
++189 200 189 203 196 201 189 200 189 212 206 189 173 175 176 188 189 180 188 189 180 188 189 180
++173 175 176 159 178 157 173 175 176 188 189 175 188 189 175 173 175 176 157 164 157 88 79 65
++46 47 55 61 46 51 104 88 73 134 98 86 143 103 96 134 98 86 104 88 73 133 78 94
++104 74 73 73 50 50 61 46 51 57 45 51 49 43 41 41 38 42 45 39 35 39 43 42
++35 34 35 39 43 42 35 34 35 39 37 42 35 34 35 49 43 41 39 43 42 35 34 35
++37 33 35 39 37 42 33 35 35 39 37 42 39 37 42 39 37 42 39 37 42 37 33 35
++31 42 35 35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 32 31 35 35 34 35
++28 30 29 32 31 35 32 31 35 32 31 35 32 31 35 32 31 35 32 31 35 28 26 35
++28 26 35 32 31 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 23 20 27 28 26 35 28 26 35 28 26 35 23 20 27 28 26 35 28 26 35
++
++164 145 137 188 177 159 242 198 157 240 208 188 240 208 188 242 198 175 236 180 161 215 195 173
++238 233 218 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239
++246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 245 232 231 203 196 201
++188 177 159 188 172 163 173 167 157 188 177 159 188 177 159 163 158 149 164 145 137 163 158 149
++159 63 71 133 65 47 159 26 46 159 26 46 159 26 46 159 26 46 165 108 102 245 232 231
++246 248 239 246 248 239 246 248 239 246 248 239 188 147 163 159 26 46 159 26 46 159 26 46
++159 26 46 197 60 17 133 28 45 154 59 17 159 26 46 159 26 46 154 14 17 159 63 71
++188 196 234 188 191 205 166 181 211 163 147 193 112 124 124 188 191 205 188 196 234 182 181 190
++143 151 181 182 181 190 173 188 216 182 181 190 143 146 150 143 151 181 143 151 181 122 133 132
++210 221 240 210 221 240 182 181 190 173 175 176 173 175 176 173 175 176 188 191 205 211 221 218
++225 201 230 188 196 234 188 191 205 188 191 205 143 151 181 173 175 176 182 181 190 143 146 150
++143 146 150 122 113 129 112 124 124 86 83 83 68 67 72 99 85 89 122 133 132 212 206 189
++235 233 206 235 233 206 235 233 206 235 233 206 238 233 218 238 233 218 238 233 218 238 233 218
++238 233 218 238 233 218 246 248 239 238 233 218 238 233 218 246 248 239 235 233 206 99 36 46
++133 69 69 164 133 127 164 133 127 164 133 127 164 111 125 164 133 127 164 133 127 141 128 110
++113 97 77 141 115 130 211 221 218 225 201 230 173 175 176 68 75 77 68 74 109 188 191 205
++86 83 83 68 74 109 112 124 124 188 196 234 210 216 207 188 196 234 173 175 176 210 216 207
++188 191 205 173 175 176 188 191 205 182 181 190 182 181 190 166 181 211 173 175 176 143 151 181
++173 175 176 182 181 190 173 175 176 173 188 216 182 181 190 141 138 138 165 108 102 137 117 96
++105 79 65 105 79 65 143 103 96 165 108 102 143 103 96 143 103 96 133 69 69 113 97 36
++134 98 86 133 69 69 184 123 101 235 170 109 235 170 109 242 198 175 240 208 188 240 208 188
++235 170 109 247 185 70 247 185 70 247 185 70 235 170 109 242 198 175 240 208 188 240 208 188
++236 180 161 235 170 109 247 185 70 212 122 83 235 170 109 228 160 135 191 160 135 191 160 135
++184 128 126 184 128 126 203 180 109 191 160 135 99 61 48 61 46 51 105 79 65 137 117 96
++191 160 135 165 137 101 191 160 135 216 172 134 216 172 134 216 172 134 191 160 135 184 123 101
++191 160 135 161 121 76 184 123 101 191 160 135 134 98 86 56 54 51 58 61 60 68 68 60
++64 57 60 64 57 60 58 61 60 64 57 60 58 61 60 68 68 60 64 57 60 68 68 60
++64 57 60 68 64 51 64 57 60 64 57 60 71 59 54 137 117 96 184 123 101 184 123 101
++184 123 101 184 123 101 165 137 101 184 123 101 203 180 109 184 123 101 164 145 120 184 123 101
++184 123 101 161 121 76 184 123 101 184 123 101 184 123 101 161 121 76 191 160 135 189 200 189
++212 185 189 189 200 189 188 189 180 210 216 207 173 167 157 188 189 180 188 189 180 188 189 180
++173 175 176 173 167 157 188 189 175 173 175 176 173 175 176 173 175 176 163 158 149 75 64 67
++46 47 45 57 59 55 113 97 77 133 78 94 134 98 86 133 78 94 134 98 86 134 98 86
++103 81 83 73 50 50 68 50 43 49 43 41 41 38 42 41 38 42 39 37 42 35 34 35
++41 38 42 35 34 35 35 34 35 35 34 35 33 35 35 46 47 45 39 37 42 33 35 35
++35 34 35 35 34 35 39 37 42 39 37 42 33 35 35 39 37 42 39 37 42 35 34 35
++45 39 35 35 34 35 35 34 35 33 35 35 35 34 35 28 30 29 28 30 29 37 33 35
++28 30 29 32 31 35 32 31 35 28 30 29 32 31 35 28 30 29 28 26 35 28 26 35
++32 31 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 28 26 35 28 30 29 28 26 35 28 26 35 28 30 29 28 26 35 23 20 27
++
++141 128 110 188 172 163 242 198 157 242 198 175 240 208 188 242 198 175 242 198 157 210 180 161
++212 206 189 221 241 240 245 235 246 246 248 239 245 235 246 246 248 239 246 248 239 246 248 239
++246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 245 235 246 210 216 207 173 167 157
++188 172 163 188 189 175 188 189 180 212 206 189 188 189 180 188 172 163 188 177 159 188 177 159
++165 108 102 159 63 71 159 26 46 181 55 69 159 26 46 181 55 69 133 28 45 212 185 189
++246 248 239 246 248 239 246 248 239 246 248 239 165 108 102 159 26 46 154 59 17 159 26 46
++159 26 46 159 26 46 154 14 17 159 26 46 159 26 46 154 14 17 133 28 45 165 108 102
++187 177 178 173 188 216 182 181 190 182 181 190 141 138 138 157 164 157 173 188 216 182 181 190
++166 181 211 188 191 205 188 191 205 143 151 181 143 151 181 173 175 176 143 151 181 173 188 216
++182 181 190 163 148 159 173 167 157 163 148 159 173 167 157 188 147 163 164 142 149 182 181 190
++203 196 201 210 216 207 188 196 234 188 191 205 182 181 190 122 113 129 143 151 181 163 148 159
++122 133 132 122 113 129 103 106 97 86 83 83 99 85 89 86 83 83 141 128 110 212 206 189
++215 195 173 212 206 189 242 198 175 212 206 189 215 195 173 231 233 186 215 195 173 231 233 186
++215 195 173 212 206 189 239 232 157 212 206 189 215 197 156 240 208 188 215 195 173 99 61 48
++164 111 125 164 133 127 164 133 127 164 133 127 164 133 127 165 108 102 164 133 127 165 108 102
++165 108 102 113 97 77 141 132 131 163 147 193 122 133 132 68 75 77 96 81 123 122 113 129
++68 74 109 141 138 138 182 181 190 188 191 205 188 191 205 182 181 190 203 196 201 188 191 205
++173 175 176 182 181 190 173 175 176 182 181 190 182 181 190 163 148 159 173 175 176 143 151 181
++182 181 190 173 175 176 182 181 190 182 181 190 188 191 205 164 145 137 165 108 102 113 97 77
++99 61 48 134 98 86 165 108 102 141 128 110 134 98 86 134 98 86 133 69 69 113 97 77
++133 69 69 99 36 46 161 121 76 247 185 70 235 170 109 242 198 157 245 232 231 240 208 188
++235 213 109 247 185 70 247 185 70 247 185 70 235 213 109 242 198 157 240 208 188 242 198 175
++228 160 135 247 185 70 247 185 70 213 123 36 247 185 70 228 160 135 191 160 135 191 160 135
++164 145 120 164 145 120 184 128 126 164 145 137 141 108 110 45 39 35 105 79 65 113 97 77
++164 145 120 184 128 126 191 160 135 191 160 135 216 172 134 216 172 134 216 172 134 191 160 135
++216 172 134 191 160 135 191 160 135 184 128 126 164 133 127 71 59 54 57 59 55 64 57 60
++75 64 67 64 57 60 68 68 60 68 68 60 64 57 60 68 64 51 64 57 60 58 61 60
++58 61 60 61 60 67 58 61 60 58 61 60 57 59 55 105 79 65 165 108 102 203 180 109
++165 137 101 184 123 101 203 180 109 184 123 101 184 123 101 184 123 101 212 122 83 165 137 101
++184 123 101 165 137 101 165 137 101 184 123 101 161 121 76 184 123 101 191 160 135 187 177 178
++189 200 189 189 200 189 189 200 189 203 196 201 173 167 157 182 181 190 188 189 180 188 189 180
++173 175 176 157 164 157 173 175 176 188 189 180 173 183 156 173 175 176 143 146 150 105 79 65
++56 54 51 61 46 51 87 76 74 88 79 65 133 78 94 133 69 69 104 74 73 104 74 73
++104 74 73 68 50 43 48 36 41 49 43 41 39 43 42 37 33 35 39 43 42 35 34 35
++39 43 42 35 34 35 39 43 42 35 34 35 35 34 35 46 47 45 35 34 35 35 34 35
++39 37 42 33 35 35 39 37 42 39 37 42 39 37 42 39 37 42 39 37 42 35 34 35
++33 35 35 45 39 35 35 34 35 33 35 35 35 34 35 32 31 35 32 31 35 32 31 35
++28 30 29 32 31 35 32 31 35 32 31 35 32 31 35 32 31 35 32 31 35 28 26 35
++28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 32 26 35 23 20 27 28 26 35 23 20 27 28 26 35 23 20 27 23 20 27
++
++114 99 97 191 160 135 236 180 161 242 198 175 240 208 188 242 198 175 236 180 161 191 160 135
++164 145 120 173 167 157 212 206 189 245 232 231 246 248 239 246 248 239 245 235 246 246 248 239
++245 235 246 246 248 239 245 235 246 246 248 239 246 248 239 245 232 231 173 167 157 141 154 138
++188 172 163 188 189 175 215 195 173 212 185 189 215 195 173 212 185 189 215 195 173 188 189 175
++191 160 135 159 63 71 159 26 46 133 65 47 133 65 47 133 69 69 159 63 71 164 133 127
++188 189 180 235 233 206 246 248 239 246 248 239 165 108 102 181 55 69 159 26 46 159 26 46
++175 13 17 159 26 46 159 26 46 154 59 17 159 26 46 159 26 46 133 65 47 164 133 127
++163 148 159 203 196 201 182 181 190 163 147 193 143 151 181 83 103 97 166 181 211 182 181 190
++173 188 216 188 191 205 182 181 190 141 138 138 143 151 181 143 146 150 143 151 181 182 181 190
++173 167 157 163 148 159 163 148 159 188 147 163 191 160 135 164 142 149 191 160 135 164 142 149
++173 167 157 203 196 201 188 196 234 194 181 189 182 181 190 143 146 150 122 133 132 163 148 159
++112 124 124 123 109 109 99 96 86 88 79 65 88 79 65 141 139 118 235 233 206 238 233 218
++238 233 218 238 233 218 238 233 218 235 233 206 238 233 218 235 233 206 235 233 206 235 233 206
++235 233 206 235 233 206 215 195 173 188 177 159 165 137 101 164 145 120 141 128 110 165 108 102
++164 133 127 141 115 130 164 133 127 164 111 125 141 128 110 141 128 110 165 108 102 143 103 96
++165 108 102 164 133 127 141 132 131 122 133 132 163 148 159 143 151 181 68 74 109 157 164 157
++104 108 124 163 147 193 188 191 205 182 181 190 182 181 190 188 191 205 173 175 176 157 164 157
++173 175 176 173 175 176 182 181 190 182 181 190 157 164 157 157 164 157 173 175 176 163 148 159
++173 175 176 143 151 181 182 181 190 182 181 190 188 191 205 141 132 131 134 98 86 99 61 48
++105 79 65 143 103 96 137 117 96 143 103 96 134 98 86 104 88 73 105 79 65 133 69 69
++133 65 47 161 121 76 212 122 83 247 185 70 247 185 70 242 198 157 235 233 206 245 232 231
++235 213 109 247 185 70 247 185 70 247 185 70 247 185 70 235 170 109 242 198 157 235 170 109
++235 170 109 247 185 70 213 123 36 247 185 70 235 170 109 246 122 125 191 160 135 164 145 137
++141 128 110 141 128 110 141 139 118 141 139 118 141 132 131 68 68 60 68 50 43 99 79 59
++165 108 102 191 160 135 165 137 101 203 180 109 216 172 134 191 160 135 191 160 135 203 180 109
++228 160 135 191 160 135 216 172 134 191 160 135 184 128 126 88 79 65 71 59 54 64 57 60
++71 81 67 75 64 67 68 68 60 68 68 60 68 68 60 68 68 60 68 64 51 68 68 60
++61 60 67 61 60 67 58 61 60 58 61 60 57 59 55 71 59 54 134 98 86 165 137 101
++165 108 102 165 137 101 184 123 101 184 123 101 165 137 101 165 137 101 184 123 101 165 137 101
++165 137 101 165 137 101 164 145 120 165 108 102 165 137 101 161 121 76 164 145 137 188 189 180
++203 196 201 189 200 189 212 185 189 189 200 189 173 175 176 188 189 180 188 189 180 188 189 180
++173 175 176 159 178 157 188 189 180 187 177 178 173 175 176 173 175 176 141 154 138 104 88 73
++71 59 54 56 54 51 74 57 60 75 64 67 104 74 73 88 79 65 73 50 50 73 50 50
++71 59 54 46 47 45 41 38 42 41 38 42 41 38 42 41 38 42 35 34 35 31 42 35
++39 37 42 35 34 35 35 34 35 35 34 35 35 34 35 39 43 42 35 34 35 39 43 42
++45 39 35 39 37 42 39 43 42 39 37 42 39 37 42 39 37 42 39 37 42 35 34 35
++39 43 42 39 37 42 39 37 42 33 35 35 33 35 35 32 31 35 32 31 35 32 31 35
++32 31 35 32 31 35 28 26 35 32 31 35 28 26 35 32 31 35 28 26 35 28 26 35
++28 26 35 28 26 35 28 26 35 30 34 36 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 28 26 35 28 30 29 28 26 35 28 26 35 23 20 27 23 20 27 21 29 29
++
++99 96 86 141 128 110 191 160 135 236 180 161 242 198 157 236 180 161 191 160 135 165 137 101
++113 97 77 114 99 97 141 154 138 210 216 207 245 235 246 246 248 239 246 248 239 245 235 246
++245 232 231 211 221 218 238 233 218 229 221 240 211 221 218 188 189 180 141 128 110 114 99 97
++164 133 127 163 158 149 210 180 161 212 206 189 215 195 173 229 200 201 215 195 173 210 180 161
++240 208 188 159 63 71 159 63 71 133 69 69 143 103 96 141 108 110 165 108 102 143 103 96
++143 103 96 141 128 110 187 177 178 245 235 246 133 69 69 159 26 46 159 26 46 197 60 17
++159 26 46 154 59 17 159 26 46 154 14 17 154 14 17 181 55 69 165 108 102 141 138 138
++141 115 130 163 148 159 182 181 190 173 175 176 173 175 176 143 146 150 122 133 132 173 175 176
++182 181 190 182 181 190 143 151 181 143 146 150 143 151 181 143 146 150 173 175 176 163 148 159
++164 142 149 163 148 159 191 160 135 173 167 157 163 148 159 184 128 126 164 142 149 164 142 149
++164 145 137 164 145 137 188 191 205 188 191 205 173 175 176 163 148 159 112 104 120 122 133 132
++103 106 97 86 83 83 75 83 72 103 106 97 187 177 178 238 233 218 246 248 239 238 233 218
++246 248 239 238 233 218 246 248 239 238 233 218 246 248 239 245 232 231 246 248 239 238 233 218
++245 232 231 238 233 218 235 233 206 188 189 175 137 117 96 128 104 97 141 132 131 164 133 127
++141 139 118 164 111 125 164 133 127 165 108 102 165 108 102 141 128 110 141 108 110 134 98 86
++143 103 96 164 133 127 163 148 159 157 164 157 157 164 157 203 196 201 68 74 109 141 138 138
++75 110 124 143 146 150 203 196 201 143 151 181 182 181 190 173 175 176 143 146 150 173 175 176
++182 181 190 173 175 176 163 148 159 157 164 157 163 147 193 173 175 176 157 164 157 163 148 159
++173 175 176 143 146 150 188 191 205 173 175 176 182 181 190 141 138 138 105 79 65 99 61 48
++113 97 77 128 104 97 134 98 86 113 97 77 104 88 73 133 69 69 105 79 65 105 79 65
++133 28 45 235 170 109 235 170 109 247 185 70 247 185 70 235 213 109 240 208 188 235 233 206
++242 198 157 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 235 170 109
++247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 242 198 157 240 189 188 188 172 163
++141 132 131 141 139 118 123 109 109 123 109 109 123 109 109 114 99 97 68 50 43 71 59 54
++113 97 77 184 123 101 203 180 109 184 128 126 216 172 134 216 172 134 184 123 101 191 160 135
++206 156 159 236 180 161 216 172 134 191 160 135 184 128 126 114 99 97 71 59 54 68 68 60
++75 64 67 64 57 60 68 64 51 56 54 51 68 64 51 68 69 55 75 64 67 88 79 65
++113 97 77 128 104 97 137 117 96 113 97 77 99 96 86 68 50 43 88 79 65 141 128 110
++141 128 110 141 108 110 141 128 110 137 117 96 137 117 96 137 117 96 165 137 101 141 128 110
++164 133 127 188 193 159 164 145 137 137 117 96 143 103 96 143 103 96 164 145 137 173 175 176
++215 195 173 189 200 189 189 200 189 189 200 189 173 167 157 188 189 180 188 189 180 188 189 180
++173 175 176 157 164 157 188 189 180 188 189 180 173 175 176 173 183 156 164 145 137 105 79 65
++71 59 54 56 54 51 58 53 60 56 54 51 56 54 51 56 54 51 56 54 51 41 38 42
++46 47 45 46 47 45 46 47 45 49 43 41 39 43 42 39 43 42 39 43 42 35 34 35
++41 38 42 37 33 35 39 43 42 35 34 35 39 37 42 39 43 42 35 34 35 35 34 35
++33 35 35 39 43 42 41 38 42 39 37 42 39 37 42 39 37 42 39 37 42 35 34 35
++39 37 42 39 43 42 39 37 42 35 34 35 32 31 35 32 31 35 32 31 35 32 31 35
++28 26 35 32 31 35 28 26 35 32 31 35 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 32 26 35 23 20 27 28 26 35 23 20 27 28 30 29 23 20 27 28 26 35
++
++87 76 74 114 99 97 164 145 120 191 160 135 216 172 134 191 160 135 165 137 101 113 97 77
++165 137 101 191 160 135 188 172 163 212 206 189 238 233 218 245 235 246 221 241 240 221 241 240
++210 216 207 203 196 201 188 189 175 188 189 175 210 180 161 164 142 149 99 96 86 75 83 72
++99 96 86 141 132 131 191 160 135 210 180 161 242 198 175 240 208 188 242 198 175 210 180 161
++229 200 201 123 133 112 141 108 110 143 103 96 165 108 102 141 108 110 134 98 86 143 103 96
++133 78 94 133 69 69 134 98 86 143 103 96 159 63 71 159 26 46 154 14 17 159 26 46
++159 26 46 159 26 46 159 26 46 154 14 17 133 23 15 159 63 71 184 128 126 141 115 130
++137 117 96 143 103 96 141 132 131 187 177 178 166 181 211 143 151 181 96 81 123 143 151 181
++173 175 176 173 175 176 143 146 150 122 133 132 143 146 150 163 148 159 164 142 149 164 145 137
++191 160 135 164 145 137 164 145 137 164 145 137 191 160 135 164 145 137 164 145 137 164 145 137
++164 133 127 164 133 127 141 132 131 194 181 189 143 151 181 143 146 150 83 103 97 122 113 129
++87 76 74 99 79 59 172 173 110 231 233 186 235 233 206 235 233 206 235 233 206 235 233 206
++235 233 206 238 233 218 238 233 218 246 248 239 238 233 218 246 248 239 238 233 218 246 248 239
++246 248 239 235 233 206 240 208 188 188 193 159 88 79 65 123 109 109 164 133 127 164 133 127
++141 115 130 141 128 110 141 108 110 165 108 102 137 117 96 165 108 102 134 98 86 134 98 86
++113 97 77 163 158 149 173 175 176 173 175 176 173 175 176 182 181 190 122 113 129 96 81 123
++166 181 211 203 196 201 182 181 190 173 175 176 143 146 150 143 146 150 173 175 176 182 181 190
++141 138 138 143 146 150 173 175 176 182 181 190 173 175 176 141 138 138 163 148 159 182 181 190
++143 146 150 141 138 138 203 196 201 173 175 176 188 191 205 141 138 138 73 50 50 105 79 65
++113 97 77 105 79 65 104 74 73 105 79 65 105 79 65 105 79 65 133 65 47 159 63 71
++246 122 125 223 122 101 235 170 109 247 185 70 247 185 70 247 185 70 240 208 188 235 233 206
++235 213 109 247 185 70 235 213 109 247 185 70 235 213 109 247 185 70 247 185 70 247 185 70
++247 185 70 247 185 70 247 185 70 247 185 70 235 170 109 240 208 188 240 208 188 242 198 175
++184 128 126 137 117 96 99 96 86 104 88 73 113 97 77 113 97 77 133 69 69 88 79 65
++56 54 51 141 128 110 184 128 126 203 180 109 191 160 135 184 123 101 216 172 134 216 172 134
++216 172 134 236 180 161 210 180 161 216 172 134 165 137 101 99 96 86 75 64 67 75 64 67
++68 50 43 113 97 77 134 98 86 161 121 76 191 160 135 210 180 161 242 198 175 240 208 188
++242 198 175 242 198 157 215 197 156 236 180 161 216 172 134 165 137 101 88 79 65 113 97 77
++103 106 97 123 109 109 103 106 97 114 99 97 123 109 109 123 109 109 112 124 124 114 99 97
++141 139 118 210 216 207 163 158 149 141 132 131 123 133 112 123 133 112 141 132 131 173 167 157
++189 200 189 203 196 201 188 189 180 203 196 201 173 175 176 188 189 180 188 189 180 188 189 180
++173 167 157 173 167 157 188 189 180 173 175 176 173 175 176 173 175 176 141 138 138 87 76 74
++64 57 60 56 54 51 46 47 45 46 47 45 56 54 51 46 47 45 49 43 41 39 43 42
++46 47 45 41 38 42 46 47 45 39 43 42 41 38 42 39 37 42 35 34 35 41 38 42
++39 43 42 45 39 35 33 35 35 35 34 35 39 43 42 41 38 42 35 34 35 39 37 42
++41 38 42 41 38 42 39 43 42 41 38 42 39 43 42 39 37 42 35 34 35 39 37 42
++39 37 42 39 37 42 39 37 42 30 34 36 32 31 35 32 31 35 32 31 35 32 31 35
++32 31 35 32 31 35 28 26 35 28 26 35 32 31 35 28 26 35 28 26 35 28 26 35
++28 26 35 28 30 29 28 26 35 28 26 35 28 26 35 21 29 29 20 25 36 21 29 29
++28 26 35 28 30 29 32 26 35 32 26 35 32 26 35 28 26 35 28 26 35 23 20 27
++
++75 64 67 104 88 73 128 104 97 165 137 101 165 137 101 137 117 96 113 97 77 134 98 86
++188 172 163 240 208 188 215 195 173 229 200 201 211 221 218 211 221 218 210 216 207 187 177 178
++157 164 157 163 158 149 163 158 149 141 138 138 141 115 130 114 99 97 68 75 77 68 75 77
++87 76 74 99 85 89 164 133 127 210 180 161 236 180 161 236 180 161 236 180 161 191 160 135
++173 167 157 141 138 138 128 104 97 143 103 96 133 78 94 134 98 86 133 78 94 133 69 69
++134 98 86 99 36 46 104 74 73 165 108 102 133 65 47 159 26 46 159 26 46 154 59 17
++159 26 46 175 13 17 154 59 17 159 26 46 154 14 17 134 98 86 141 115 130 141 108 110
++137 117 96 143 103 96 128 104 97 141 132 131 164 142 149 173 175 176 122 133 132 58 61 60
++75 110 124 112 124 124 104 108 124 103 106 97 164 142 149 164 142 149 184 128 126 164 145 137
++164 145 137 184 128 126 164 145 137 184 128 126 164 145 137 164 145 137 164 145 137 164 133 127
++164 133 127 141 108 110 128 104 97 163 148 159 173 175 176 122 133 132 103 106 97 103 106 97
++216 210 134 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 231 233 186
++239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 231 233 186 239 232 157 231 233 186
++231 233 186 239 232 157 239 232 157 118 123 77 86 83 83 164 145 137 141 115 130 164 133 127
++164 133 127 164 111 125 165 137 101 137 117 96 143 103 96 134 98 86 104 88 73 133 69 69
++99 61 48 141 128 110 182 181 190 188 191 205 182 181 190 173 175 176 131 128 178 75 110 124
++173 175 176 143 151 181 141 138 138 141 138 138 143 146 150 173 167 157 143 146 150 143 146 150
++163 148 159 173 175 176 173 175 176 173 175 176 163 148 159 157 164 157 182 181 190 157 164 157
++141 138 138 157 164 157 203 196 201 182 181 190 173 175 176 163 148 159 104 74 73 113 97 77
++133 69 69 134 98 86 105 79 65 105 79 65 105 79 65 99 79 59 99 79 59 181 55 69
++223 122 101 223 122 101 223 122 101 223 122 101 213 123 36 235 170 109 240 208 188 245 232 231
++235 213 109 247 185 70 247 185 70 235 213 109 247 185 70 247 185 70 247 185 70 247 185 70
++247 185 70 247 185 70 247 185 70 235 170 109 242 198 157 245 232 231 245 232 231 242 198 175
++216 122 126 165 108 102 143 103 96 184 128 126 191 160 135 184 128 126 143 103 96 104 88 73
++99 79 59 113 97 77 191 160 135 184 123 101 191 160 135 191 160 135 191 160 135 191 160 135
++210 180 161 242 198 157 216 172 134 191 160 135 184 123 101 88 79 65 71 59 54 113 97 77
++188 177 159 215 195 173 242 198 175 215 195 173 242 198 175 240 208 188 242 198 175 242 198 175
++215 197 156 242 198 175 215 197 156 216 172 134 191 160 135 191 160 135 113 97 77 114 99 97
++123 109 109 103 106 97 103 106 97 103 106 97 103 106 97 103 106 97 123 109 109 103 106 97
++141 138 138 210 216 207 188 189 180 173 167 157 157 164 157 163 158 149 141 154 138 157 164 157
++203 196 201 189 200 189 189 200 189 189 200 189 159 178 157 188 189 180 189 200 189 188 189 180
++159 178 157 173 175 176 188 189 180 188 189 180 173 183 156 173 175 176 141 139 118 75 64 67
++57 59 55 56 54 51 46 47 55 46 47 45 46 47 45 46 47 45 39 43 42 41 38 42
++46 47 45 46 47 45 39 43 42 41 38 42 39 43 42 45 39 35 39 43 42 33 35 35
++45 39 35 39 37 42 35 34 35 41 38 42 46 47 45 39 43 42 35 34 35 33 35 35
++33 35 35 45 39 35 39 37 42 39 37 42 35 34 35 35 34 35 39 37 42 39 37 42
++39 37 42 39 37 42 39 37 42 35 34 35 33 35 35 33 35 35 32 31 35 32 31 35
++28 26 35 28 26 35 32 31 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 28 26 35 28 26 35 21 29 29 28 26 35 20 25 36 21 29 29 20 25 36
++23 20 27 28 26 35 23 20 27 28 30 29 23 20 27 23 20 27 23 20 27 23 20 27
++
++103 81 83 104 88 73 114 99 97 114 99 97 128 104 97 134 98 86 104 88 73 165 137 101
++229 200 201 240 208 188 235 233 206 229 200 201 212 185 189 187 177 178 164 145 137 137 117 96
++141 128 110 141 132 131 112 124 124 112 104 120 104 108 124 83 103 97 83 103 97 68 74 109
++86 83 83 68 75 77 103 81 83 141 108 110 188 147 163 210 180 161 206 156 159 164 145 137
++141 132 131 141 132 131 114 99 97 143 103 96 133 69 69 141 128 110 143 103 96 73 50 50
++134 98 86 99 36 46 99 79 59 133 69 69 133 28 45 133 23 15 159 26 46 159 26 46
++159 26 46 159 26 46 159 26 46 154 14 17 159 63 71 141 128 110 141 108 110 143 103 96
++137 117 96 141 108 110 137 117 96 137 117 96 114 99 97 134 98 86 99 96 86 103 106 97
++68 67 72 46 47 55 61 60 67 141 138 138 164 142 149 164 133 127 164 133 127 184 128 126
++164 133 127 184 128 126 164 133 127 164 133 127 164 145 137 191 160 135 184 128 126 164 133 127
++141 128 110 128 104 97 113 97 77 141 128 110 122 133 132 112 104 120 88 79 65 172 173 110
++239 232 157 239 232 157 235 213 109 235 213 109 239 232 157 239 232 157 239 232 157 239 232 157
++239 232 157 239 232 157 231 233 186 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157
++239 232 157 235 213 109 202 181 82 68 72 23 141 128 110 141 138 138 164 133 127 164 111 125
++141 128 110 165 108 102 141 128 110 143 103 96 134 98 86 134 98 86 105 79 65 99 79 59
++99 61 48 75 64 67 203 196 201 188 191 205 188 191 205 166 181 211 157 164 157 122 113 129
++143 146 150 112 124 124 122 133 132 163 158 149 141 138 138 122 113 129 141 138 138 143 146 150
++157 164 157 163 148 159 143 146 150 143 146 150 173 175 176 203 196 201 157 164 157 143 146 150
++122 133 132 163 148 159 203 196 201 188 191 205 157 164 157 163 148 159 114 99 97 104 74 73
++104 88 73 104 74 73 99 61 48 104 74 73 99 61 48 133 69 69 99 61 48 223 122 101
++246 122 125 246 122 125 224 65 75 223 122 101 213 123 36 235 170 109 235 233 206 238 233 218
++235 213 109 247 185 70 235 213 109 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70
++247 185 70 247 185 70 235 170 109 242 198 157 231 233 186 245 232 231 245 232 231 242 198 157
++223 122 101 184 123 101 206 156 159 236 180 161 236 180 161 236 180 161 165 137 101 105 79 65
++113 97 77 143 103 96 137 117 96 216 172 134 191 160 135 223 122 101 191 160 135 191 160 135
++216 172 134 236 180 161 216 172 134 191 160 135 184 123 101 88 79 65 88 79 65 188 177 159
++215 197 156 242 198 157 215 197 156 215 195 173 242 198 157 240 208 188 215 195 173 242 198 175
++242 198 175 242 198 157 215 197 156 236 180 161 216 172 134 216 172 134 165 108 102 165 108 102
++143 103 96 123 109 109 103 106 97 103 106 97 103 106 97 112 104 120 114 121 97 103 106 97
++143 146 150 238 233 218 189 200 189 189 200 189 189 200 189 188 189 180 173 167 157 173 167 157
++212 206 189 189 200 189 194 181 189 189 200 189 173 175 176 188 189 180 188 189 180 182 181 190
++173 175 176 173 175 176 188 189 175 173 175 176 188 189 180 173 175 176 141 132 131 68 68 60
++57 59 55 46 47 55 46 47 45 46 47 45 46 47 45 46 47 45 41 38 42 39 43 42
++46 47 45 46 47 45 41 38 42 46 47 45 39 37 42 35 34 35 39 37 42 35 34 35
++39 37 42 33 35 35 35 34 35 39 43 42 46 47 45 41 38 42 35 34 35 39 43 42
++39 37 42 39 37 42 33 35 35 35 34 35 39 43 42 35 34 35 35 34 35 39 37 42
++39 37 42 39 37 42 39 37 42 39 37 42 32 31 35 33 35 35 32 31 35 32 31 35
++32 31 35 32 31 35 28 26 35 28 26 35 32 31 35 28 26 35 28 26 35 28 26 35
++28 26 35 28 26 35 28 30 29 28 26 35 21 29 29 20 25 36 28 26 35 20 25 36
++28 26 35 28 26 35 28 26 35 28 26 35 23 20 27 28 30 29 23 20 27 23 20 27
++
++128 104 97 128 104 97 114 99 97 113 97 77 114 99 97 114 99 97 99 96 86 164 145 137
++229 200 201 238 233 218 229 200 201 212 185 189 164 145 137 123 109 109 128 104 97 164 133 127
++163 158 149 164 145 137 141 138 138 112 124 124 104 108 124 99 85 89 96 81 123 83 103 97
++83 103 97 86 83 83 86 83 83 68 75 77 99 96 86 141 108 110 141 128 110 141 128 110
++141 139 118 122 133 132 141 138 138 141 108 110 143 103 96 212 206 189 99 79 59 141 108 110
++143 103 96 99 61 48 73 50 50 100 41 14 133 28 45 159 26 46 154 14 17 159 26 46
++154 59 17 159 26 46 133 23 15 159 26 46 165 108 102 137 117 96 128 104 97 143 103 96
++143 103 96 128 104 97 128 104 97 134 98 86 113 97 77 105 79 65 104 74 73 75 64 67
++75 64 67 99 96 86 141 138 138 164 133 127 164 133 127 164 111 125 164 133 127 184 128 126
++164 133 127 164 133 127 164 133 127 164 133 127 184 128 126 164 133 127 164 133 127 141 128 110
++141 108 110 113 97 77 104 88 73 114 99 97 122 113 129 88 79 65 170 184 134 239 232 157
++239 232 157 239 232 157 235 213 109 203 180 109 235 213 109 239 232 157 239 232 157 239 232 157
++239 232 157 239 232 157 231 233 186 239 232 157 231 233 186 231 233 186 239 232 157 239 232 157
++239 232 157 235 213 109 165 137 101 99 79 59 164 145 137 141 108 110 164 133 127 164 111 125
++141 128 110 143 103 96 143 103 96 134 98 86 113 97 77 105 79 65 99 61 48 99 79 59
++114 99 97 123 109 109 182 181 190 188 191 205 188 191 205 182 181 190 173 175 176 104 108 124
++99 96 86 103 106 97 123 109 109 103 106 97 103 106 97 141 139 118 143 146 150 143 146 150
++163 148 159 173 175 176 173 175 176 173 175 176 157 164 157 143 146 150 143 146 150 141 138 138
++141 138 138 173 175 176 188 191 205 188 191 205 173 175 176 157 164 157 103 81 83 133 69 69
++99 61 48 68 50 20 99 61 48 99 61 48 88 79 65 99 61 48 99 61 48 223 122 101
++246 122 125 223 122 101 246 122 125 224 65 75 213 123 36 236 180 161 240 208 188 238 233 218
++242 198 157 247 185 70 247 185 70 247 185 70 235 213 109 247 185 70 247 185 70 247 185 70
++247 185 70 235 170 109 235 213 109 242 198 157 238 233 218 245 235 246 235 233 206 235 170 109
++223 122 101 191 160 135 236 180 161 242 198 175 242 198 175 236 180 161 191 160 135 165 108 102
++164 111 125 141 128 110 134 98 86 184 128 126 216 172 134 172 173 110 191 160 135 216 172 134
++216 172 134 210 180 161 191 160 135 165 137 101 165 137 101 99 61 48 134 98 86 164 145 120
++216 172 134 236 180 161 215 195 173 242 198 157 215 195 173 242 198 175 239 232 157 240 208 188
++215 197 156 242 198 175 215 197 156 215 197 156 216 172 134 216 172 134 184 123 101 212 122 83
++212 122 83 143 103 96 123 109 109 114 99 97 103 106 97 103 106 97 103 106 97 103 106 97
++163 158 149 211 221 218 212 206 189 203 196 201 203 196 201 189 200 189 188 189 180 188 189 180
++203 196 201 189 200 189 189 200 189 188 189 180 173 175 176 189 200 189 189 200 189 188 189 180
++159 178 157 173 175 176 188 189 180 173 175 176 188 189 175 173 175 176 122 133 132 68 68 60
++56 54 51 56 54 51 56 54 51 46 47 45 46 47 45 39 43 42 41 38 42 46 47 45
++46 47 45 39 43 42 46 47 45 41 38 42 39 43 42 35 34 35 39 43 42 35 34 35
++35 34 35 33 35 35 35 34 35 41 38 42 39 43 42 35 34 35 35 34 35 35 34 35
++35 34 35 35 34 35 33 35 35 39 37 42 45 39 35 39 43 42 39 37 42 39 37 42
++35 34 35 33 35 35 30 34 36 35 34 35 28 30 29 32 31 35 28 30 29 32 31 35
++32 31 35 28 26 35 32 31 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 28 30 29 28 26 35 23 20 27 28 26 35 21 29 29 20 25 36 23 20 27
++21 29 29 28 26 35 21 29 29 21 29 29 23 20 27 21 29 29 23 20 27 23 20 27
++
++164 133 127 141 128 110 143 103 96 114 99 97 114 99 97 114 121 97 114 99 97 163 158 149
++235 233 206 238 233 218 240 208 188 188 189 175 164 133 127 128 104 97 164 133 127 173 167 157
++173 167 157 163 148 159 143 146 150 122 113 129 103 106 97 83 103 97 99 85 89 96 81 123
++99 85 89 83 103 97 86 83 83 68 75 77 75 64 67 61 60 67 75 83 72 112 104 120
++141 132 131 141 132 131 141 154 138 141 128 110 99 61 48 194 181 189 143 103 96 164 133 127
++128 104 97 99 61 48 73 50 50 100 41 14 133 28 45 159 26 46 154 59 17 159 26 46
++159 26 46 159 26 46 154 14 17 133 69 69 164 111 125 128 104 97 134 98 86 128 104 97
++128 104 97 128 104 97 134 98 86 113 97 77 105 79 65 105 79 65 99 79 59 88 79 65
++74 57 60 164 133 127 164 142 149 165 108 102 165 108 102 165 137 101 165 108 102 165 108 102
++143 103 96 165 137 101 164 133 127 164 133 127 164 145 120 164 111 125 141 128 110 134 98 86
++113 97 77 105 79 65 73 50 50 114 99 97 71 82 60 173 183 156 238 233 218 239 232 157
++239 232 157 215 197 156 191 160 135 191 160 135 216 172 134 242 198 157 239 232 157 239 232 157
++239 232 157 231 233 186 231 233 186 231 233 186 231 233 186 239 232 157 231 233 186 231 233 186
++239 232 157 235 213 109 165 137 101 141 158 118 164 133 127 141 115 130 164 133 127 137 117 96
++143 103 96 134 98 86 134 98 86 134 98 86 99 61 48 99 61 48 75 64 67 112 104 120
++157 164 157 210 216 207 173 175 176 188 191 205 173 175 176 122 133 132 103 106 97 86 83 83
++114 99 97 141 132 131 143 146 150 122 113 129 141 132 131 143 146 150 173 167 157 182 181 190
++173 175 176 157 164 157 173 175 176 163 148 159 173 175 176 143 146 150 141 138 138 173 175 176
++143 146 150 163 148 159 203 196 201 203 196 201 173 175 176 188 191 205 123 109 109 99 61 48
++181 55 69 224 65 75 100 41 14 100 41 14 73 50 50 68 33 37 99 61 48 246 122 125
++224 65 75 246 122 125 224 65 75 224 65 75 213 123 36 228 160 135 235 233 206 245 232 231
++235 170 109 247 185 70 235 170 109 235 170 109 235 213 109 247 185 70 235 213 109 247 185 70
++235 213 109 247 185 70 242 198 157 240 208 188 246 248 239 238 233 218 242 198 157 235 170 109
++235 170 109 223 122 101 215 197 156 240 189 188 242 198 175 236 180 161 236 180 161 191 160 135
++191 160 135 164 133 127 141 128 110 184 128 126 191 160 135 184 128 126 216 172 134 216 172 134
++216 172 134 216 172 134 191 160 135 184 123 101 143 103 96 165 137 101 161 121 76 134 98 86
++165 137 101 210 180 161 215 197 156 242 198 175 215 197 156 242 198 175 240 208 188 242 198 157
++242 198 175 215 197 156 215 197 156 236 180 161 216 172 134 191 160 135 191 160 135 212 122 83
++223 122 101 143 103 96 103 106 97 103 106 97 123 109 109 103 106 97 112 104 120 103 106 97
++157 164 157 238 233 218 203 196 201 189 200 189 203 196 201 203 196 201 188 189 180 188 189 180
++189 200 189 189 200 189 194 181 189 188 189 180 173 175 176 188 189 180 188 189 180 189 200 189
++173 167 157 188 189 175 188 189 180 188 189 180 188 189 180 173 175 176 123 133 112 68 67 72
++57 59 55 46 47 55 46 47 45 46 47 55 46 47 45 46 47 45 46 47 45 46 47 45
++46 47 45 46 47 45 41 38 42 39 43 42 41 38 42 45 39 35 33 35 35 35 34 35
++35 34 35 35 34 35 35 34 35 35 34 35 39 37 42 35 34 35 35 34 35 33 35 35
++35 34 35 39 43 42 35 34 35 39 43 42 39 43 42 39 43 42 35 34 35 39 37 42
++33 35 35 35 34 35 35 34 35 35 34 35 35 34 35 28 30 29 32 31 35 28 30 29
++32 31 35 32 31 35 28 26 35 28 26 35 32 31 35 28 26 35 28 32 42 28 26 35
++28 26 35 28 26 35 28 30 29 28 26 35 20 25 36 28 26 35 28 26 35 20 25 36
++21 29 29 21 29 29 23 20 27 21 29 29 21 29 29 20 25 36 23 20 27 21 29 29
++
++164 133 127 165 137 101 141 108 110 123 109 109 114 99 97 103 106 97 114 99 97 173 167 157
++229 200 201 245 232 231 229 200 201 215 195 173 141 139 118 141 108 110 164 145 137 164 142 149
++164 145 137 122 133 132 112 104 120 103 106 97 103 106 97 96 81 123 99 85 89 83 103 97
++96 81 123 83 103 97 96 81 123 86 83 83 68 67 72 61 60 67 75 83 72 112 104 120
++122 133 132 141 139 118 141 138 138 188 189 180 104 74 73 123 109 109 173 167 157 88 79 65
++114 99 97 73 50 50 104 74 73 99 36 46 133 23 15 159 26 46 133 23 15 133 28 45
++175 13 17 159 26 46 133 23 15 133 69 69 141 108 110 143 103 96 128 104 97 134 98 86
++134 98 86 134 98 86 134 98 86 113 97 77 104 74 73 99 79 59 99 79 59 99 79 59
++141 128 110 164 133 127 141 115 130 137 117 96 143 103 96 143 103 96 165 108 102 137 117 96
++165 108 102 165 108 102 165 108 102 165 137 101 165 108 102 141 128 110 143 103 96 104 88 73
++105 79 65 68 50 43 88 79 65 99 96 86 188 193 159 246 248 239 235 233 206 235 233 206
++240 208 188 215 195 173 240 208 188 212 206 189 212 185 189 216 172 134 216 210 134 239 232 157
++239 232 157 231 233 186 235 233 206 235 233 206 235 233 206 235 233 206 235 233 206 231 233 186
++239 232 157 235 213 109 137 139 97 164 145 137 141 132 131 164 133 127 165 108 102 165 108 102
++113 97 77 134 98 86 134 98 86 105 79 65 73 50 50 87 76 74 122 133 132 141 138 138
++96 81 123 173 175 176 157 164 157 122 113 129 112 104 120 103 106 97 99 85 89 141 132 131
++141 138 138 163 158 149 163 148 159 173 167 157 157 164 157 163 148 159 173 175 176 173 167 157
++173 175 176 182 181 190 173 175 176 173 167 157 173 175 176 157 164 157 173 175 176 143 146 150
++163 148 159 182 181 190 188 191 205 188 191 205 163 148 159 173 175 176 194 181 189 216 122 126
++246 122 125 224 65 75 224 65 75 181 55 69 159 63 71 159 26 46 224 65 75 224 65 75
++246 122 125 224 65 75 224 65 75 224 65 75 224 65 75 235 170 109 240 208 188 238 233 218
++239 232 157 242 198 157 239 232 157 242 198 157 242 198 157 242 198 157 242 198 157 242 198 157
++242 198 157 242 198 157 242 198 157 235 233 206 245 232 231 240 208 188 235 170 109 247 185 70
++223 122 101 191 160 135 236 180 161 236 180 161 242 198 175 240 189 188 236 180 161 236 180 161
++210 180 161 164 133 127 141 132 131 165 137 101 191 160 135 184 123 101 191 160 135 216 172 134
++216 172 134 210 180 161 216 172 134 164 145 120 143 103 96 134 98 86 165 137 101 143 103 96
++161 121 76 165 137 101 210 180 161 215 197 156 215 197 156 215 197 156 242 198 175 212 206 189
++242 198 157 215 195 173 242 198 157 215 197 156 215 197 156 216 172 134 216 172 134 184 123 101
++184 123 101 134 98 86 103 106 97 103 106 97 103 106 97 103 106 97 103 106 97 99 96 86
++163 158 149 211 221 218 189 200 189 210 216 207 189 200 189 203 196 201 188 189 180 188 189 180
++203 196 201 189 200 189 189 200 189 173 175 176 187 177 178 189 200 189 188 189 180 189 200 189
++173 167 157 173 175 176 188 189 180 173 175 176 188 189 180 173 175 176 112 124 124 68 67 72
++57 59 55 56 54 51 57 45 51 46 47 45 46 47 45 46 47 45 46 47 45 46 47 45
++46 47 45 46 47 45 46 47 45 41 38 42 39 37 42 39 37 42 35 34 35 39 43 42
++35 34 35 39 43 42 39 37 42 39 43 42 35 34 35 35 34 35 33 35 35 35 34 35
++35 34 35 35 34 35 35 34 35 41 38 42 46 47 45 41 38 42 45 39 35 39 37 42
++39 37 42 39 37 42 35 34 35 39 37 42 35 34 35 35 34 35 32 31 35 32 31 35
++28 30 29 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 28 26 35 28 26 35 28 26 35 21 29 29 21 29 29 28 26 35 21 29 29
++23 20 27 20 25 36 21 29 29 23 20 27 21 29 29 21 29 29 23 20 27 23 20 27
++
++184 128 126 164 133 127 141 128 110 128 104 97 114 99 97 99 96 86 103 106 97 163 158 149
++210 216 207 229 200 201 210 216 207 188 172 163 123 109 109 114 99 97 141 132 131 141 132 131
++123 109 109 103 106 97 103 106 97 96 81 123 83 103 97 99 85 89 83 103 97 99 85 89
++83 103 97 99 85 89 83 103 97 86 83 83 68 75 77 68 67 72 99 96 86 112 124 124
++141 132 131 122 133 132 141 132 131 188 189 180 238 233 218 141 132 131 229 200 201 87 76 74
++141 132 131 57 45 51 68 50 43 99 36 46 159 26 46 133 23 15 159 26 46 133 23 15
++159 26 46 159 26 46 133 23 15 133 69 69 137 117 96 128 104 97 128 104 97 134 98 86
++134 98 86 113 97 77 113 97 77 104 74 73 105 79 65 99 79 59 74 57 60 128 104 97
++164 133 127 164 133 127 164 111 125 141 128 110 165 108 102 165 108 102 165 108 102 165 108 102
++137 117 96 137 117 96 165 108 102 141 128 110 141 108 110 134 98 86 113 97 77 99 61 48
++71 59 54 68 50 43 86 83 83 141 132 131 141 154 138 141 128 110 137 139 97 173 183 156
++173 167 157 141 132 131 143 146 150 112 104 120 99 85 89 68 67 72 113 97 77 216 210 134
++231 233 186 235 233 206 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 235 233 206
++239 232 157 173 191 134 165 137 101 141 115 130 141 128 110 141 108 110 141 128 110 134 98 86
++133 69 69 134 98 86 113 97 36 99 61 48 71 59 54 141 115 130 143 146 150 143 151 181
++123 109 109 86 83 83 99 96 86 103 106 97 122 113 129 141 138 138 143 146 150 164 142 149
++157 164 157 163 158 149 173 167 157 173 167 157 173 175 176 173 175 176 173 175 176 182 181 190
++173 175 176 173 175 176 163 148 159 163 148 159 143 146 150 163 148 159 157 164 157 163 148 159
++157 164 157 173 175 176 182 181 190 203 196 201 187 177 178 206 156 159 240 189 188 246 122 125
++224 65 75 246 122 125 224 65 75 224 65 75 224 65 75 224 65 75 224 65 75 223 122 101
++224 65 75 224 65 75 224 65 75 213 123 36 223 122 101 242 198 157 238 233 218 245 232 231
++238 233 218 238 233 218 235 233 206 238 233 218 245 232 231 238 233 218 246 248 239 235 233 206
++235 233 206 240 208 188 235 233 206 245 232 231 245 232 231 242 198 175 235 170 109 247 185 70
++223 122 101 216 122 126 210 180 161 236 180 161 242 198 175 242 198 175 242 198 175 206 156 159
++206 156 159 141 139 118 141 138 138 137 117 96 191 160 135 184 123 101 191 160 135 184 123 101
++191 160 135 216 172 134 236 180 161 191 160 135 143 103 96 68 50 43 104 88 73 165 137 101
++165 108 102 161 121 76 191 160 135 216 172 134 215 197 156 236 180 161 242 198 175 242 198 175
++242 198 175 215 197 156 215 197 156 236 180 161 215 197 156 216 172 134 216 172 134 191 160 135
++184 123 101 128 104 97 103 106 97 103 106 97 83 103 97 99 85 89 114 99 97 99 96 86
++157 164 157 211 221 218 212 206 189 189 200 189 203 196 201 210 216 207 188 189 175 188 189 180
++189 200 189 203 196 201 189 200 189 188 177 159 188 189 180 189 200 189 189 200 189 194 181 189
++157 164 157 188 189 180 188 189 180 188 189 180 173 175 176 173 167 157 122 133 132 99 96 86
++56 54 51 46 47 55 46 47 45 46 47 55 57 45 51 46 47 45 46 47 45 46 47 45
++46 47 45 46 47 45 46 47 45 41 38 42 39 43 42 39 37 42 39 43 42 39 43 42
++41 38 42 35 34 35 35 34 35 35 34 35 39 43 42 39 37 42 35 34 35 39 43 42
++33 35 35 35 34 35 41 38 42 46 47 45 46 47 45 41 38 42 41 38 42 35 34 35
++39 37 42 39 37 42 39 37 42 30 34 36 39 37 42 35 34 35 32 31 35 32 31 35
++32 31 35 28 26 35 28 32 42 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 28 26 35 28 26 35 28 26 35 21 29 29 28 26 35 23 20 27 28 26 35
++21 29 29 23 20 27 23 20 27 21 29 29 21 19 27 21 29 29 21 29 29 21 29 29
++
++191 160 135 164 133 127 164 111 125 141 128 110 128 104 97 143 103 96 141 128 110 163 158 149
++215 195 173 212 206 189 188 177 159 163 158 149 141 128 110 103 106 97 123 109 109 123 109 109
++112 104 120 112 104 120 103 106 97 83 103 97 96 81 123 99 85 89 68 74 109 86 83 83
++96 81 123 83 103 97 96 81 123 86 83 83 68 75 77 86 83 83 112 104 120 123 133 112
++122 133 132 141 132 131 123 133 112 173 175 176 245 232 231 246 248 239 246 248 239 210 216 207
++157 164 157 99 96 86 68 50 43 133 28 45 133 28 45 133 23 15 133 28 45 133 28 45
++154 59 17 175 13 17 133 28 45 133 69 69 128 104 97 128 104 97 134 98 86 114 99 97
++134 98 86 104 74 73 104 74 73 105 79 65 99 61 48 88 79 65 99 61 48 141 132 131
++164 133 127 164 133 127 164 133 127 164 133 127 141 108 110 165 108 102 143 103 96 134 98 86
++133 69 69 134 98 86 128 104 97 134 98 86 113 97 77 99 79 59 99 61 48 68 50 43
++57 45 51 58 61 60 104 108 124 122 133 132 68 75 77 21 19 27 28 26 35 68 75 77
++122 133 132 122 133 132 143 146 150 91 128 178 122 133 132 104 108 124 103 106 97 99 96 86
++203 180 109 231 233 186 235 233 206 235 233 206 235 233 206 235 233 206 235 233 206 238 233 218
++240 208 188 163 158 149 141 128 110 141 115 130 164 111 125 165 137 101 143 103 96 134 98 86
++105 79 65 105 79 65 99 61 48 75 64 67 112 104 120 141 115 130 143 146 150 173 175 176
++143 146 150 104 108 124 112 104 120 141 132 131 143 146 150 173 167 157 157 164 157 163 148 159
++173 167 157 173 167 157 173 175 176 173 175 176 173 175 176 187 177 178 173 175 176 173 175 176
++182 181 190 173 175 176 173 175 176 173 175 176 163 158 149 143 146 150 157 164 157 157 164 157
++173 175 176 173 175 176 182 181 190 203 196 201 231 153 161 246 122 125 223 122 101 246 122 125
++224 65 75 246 122 125 224 65 75 223 122 101 224 65 75 224 65 75 224 65 75 224 65 75
++223 122 101 224 65 75 223 122 101 235 170 109 242 198 157 242 198 157 245 232 231 245 232 231
++246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 246 248 239 245 232 231 246 248 239
++245 232 231 246 248 239 245 232 231 245 232 231 240 208 188 235 170 109 247 185 70 213 123 36
++235 170 109 184 128 126 191 160 135 236 180 161 242 198 175 240 189 188 210 180 161 191 160 135
++164 133 127 141 132 131 141 132 131 141 128 110 184 128 126 191 160 135 184 123 101 203 180 109
++216 172 134 191 160 135 210 180 161 191 160 135 141 128 110 87 76 74 68 50 43 105 79 65
++137 117 96 161 121 76 165 137 101 191 160 135 216 172 134 215 197 156 215 197 156 215 197 156
++242 198 175 242 198 157 215 197 156 236 180 161 215 197 156 216 172 134 216 172 134 191 160 135
++165 137 101 143 103 96 123 109 109 103 106 97 114 99 97 103 106 97 104 88 73 87 76 74
++173 167 157 210 216 207 203 196 201 203 196 201 212 206 189 203 196 201 173 175 176 188 189 180
++203 196 201 188 189 180 189 200 189 173 175 176 188 189 180 194 181 189 189 200 189 188 189 180
++159 178 157 173 175 176 188 189 180 188 189 175 173 167 157 141 154 138 163 158 149 103 106 97
++46 47 55 56 54 51 56 54 51 57 45 51 56 54 51 57 45 51 46 47 45 46 47 45
++46 47 45 39 43 42 49 43 41 46 47 45 46 47 45 56 54 51 68 68 60 68 68 60
++58 61 60 58 61 60 57 59 55 56 54 51 46 47 45 46 47 45 35 34 35 35 34 35
++35 34 35 39 37 42 41 38 42 41 38 42 49 43 41 39 43 42 37 33 35 39 37 42
++35 34 35 39 37 42 39 37 42 33 35 35 32 31 35 32 31 35 32 31 35 28 26 35
++32 31 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 28 26 35 28 26 35 28 26 35 28 30 29 28 26 35 28 30 29 28 26 35
++28 26 35 21 29 29 23 20 27 23 20 27 20 25 36 21 29 29 23 20 27 23 20 27
++
++184 128 126 164 145 120 184 128 126 164 133 127 164 133 127 191 160 135 206 156 159 236 180 161
++215 195 173 210 180 161 188 172 163 188 172 163 164 145 137 141 132 131 103 106 97 112 124 124
++112 104 120 103 106 97 96 81 123 99 96 86 83 103 97 83 103 97 99 85 89 83 103 97
++99 85 89 99 85 89 83 103 97 86 83 83 86 83 83 86 83 83 104 108 124 123 133 112
++141 132 131 141 132 131 122 133 132 173 167 157 229 221 240 211 221 218 245 235 246 229 221 240
++203 196 201 157 164 157 88 79 65 133 28 45 133 23 15 133 28 45 133 23 15 154 14 17
++133 28 45 159 26 46 133 65 47 134 98 86 128 104 97 134 98 86 113 97 77 134 98 86
++105 79 65 104 74 73 99 61 48 88 79 65 73 50 50 73 50 50 114 99 97 164 133 127
++164 133 127 164 111 125 164 133 127 165 108 102 165 108 102 137 117 96 143 103 96 113 97 77
++113 97 77 134 98 86 113 97 77 105 79 65 99 61 48 68 50 43 68 50 43 45 49 35
++23 19 15 33 35 35 83 103 97 83 103 97 104 108 124 28 26 35 23 20 27 49 40 56
++104 108 124 83 103 97 122 113 129 122 133 132 104 108 124 122 113 129 104 108 124 37 33 35
++104 88 73 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 212 206 189
++166 168 134 164 145 137 141 115 130 141 108 110 141 128 110 141 108 110 143 103 96 113 97 77
++105 79 65 99 61 48 75 64 67 122 113 129 143 146 150 143 146 150 143 151 181 173 175 176
++173 175 176 122 133 132 141 138 138 173 175 176 173 167 157 157 164 157 173 167 157 163 148 159
++173 175 176 173 175 176 187 177 178 173 175 176 173 175 176 187 177 178 182 181 190 173 175 176
++182 181 190 173 175 176 173 175 176 157 164 157 173 167 157 143 146 150 163 148 159 173 175 176
++173 175 176 173 175 176 189 200 189 212 185 189 206 156 159 246 122 125 224 65 75 224 65 75
++246 122 125 246 122 125 224 65 75 246 122 125 224 65 75 224 65 75 224 65 75 224 65 75
++246 122 125 224 65 75 236 180 161 240 189 188 240 208 188 240 208 188 245 232 231 246 248 239
++246 248 239 245 232 231 246 248 239 245 232 231 238 233 218 238 233 218 238 233 218 245 232 231
++245 232 231 246 248 239 245 232 231 238 233 218 242 198 157 235 170 109 247 185 70 247 185 70
++223 122 101 223 122 101 191 160 135 231 153 161 242 198 157 236 180 161 164 145 137 141 128 110
++123 109 109 123 109 109 141 128 110 141 108 110 165 137 101 184 123 101 191 160 135 191 160 135
++210 180 161 235 233 206 246 248 239 246 248 239 229 221 240 103 106 97 103 106 97 141 132 131
++134 98 86 104 88 73 143 103 96 165 137 101 184 123 101 216 172 134 216 172 134 215 197 156
++242 198 175 215 197 156 215 197 156 215 197 156 236 180 161 215 197 156 216 172 134 216 172 134
++184 123 101 161 121 76 141 128 110 164 133 127 157 164 157 123 109 109 99 96 86 99 96 86
++173 167 157 212 206 189 189 200 189 203 196 201 210 216 207 210 216 207 188 189 175 188 189 180
++189 200 189 189 200 189 189 200 189 173 175 176 188 189 175 189 200 189 188 189 180 188 189 180
++173 175 176 188 189 180 188 189 180 173 175 176 159 178 157 157 164 157 157 164 157 99 96 86
++58 61 60 57 59 55 56 54 51 56 54 51 56 54 51 46 47 45 46 47 55 46 47 45
++46 47 45 46 47 45 46 47 45 46 47 45 75 64 67 99 96 86 83 103 97 103 106 97
++99 85 89 86 83 83 75 83 72 68 75 77 61 60 67 46 47 45 41 38 42 33 35 35
++33 35 35 35 34 35 41 38 42 41 38 42 41 38 42 37 33 35 37 33 35 39 37 42
++35 34 35 39 37 42 39 37 42 28 32 42 32 31 35 32 31 35 32 31 35 28 26 35
++32 31 35 28 26 35 32 31 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 28 26 35 28 26 35 28 26 35 23 20 27 21 29 29 23 20 27 21 29 29
++23 20 27 23 20 27 23 20 27 21 29 29 23 20 27 21 29 29 23 20 27 20 28 24
++
++191 160 135 164 145 120 184 128 126 164 133 127 191 160 135 236 180 161 240 208 188 240 208 188
++240 208 188 240 189 188 240 208 188 229 200 201 215 195 173 163 158 149 112 124 124 112 104 120
++112 104 120 83 103 97 99 96 86 96 81 123 83 103 97 99 85 89 96 81 123 83 103 97
++96 81 123 99 85 89 68 74 109 68 75 77 68 75 77 86 83 83 103 106 97 122 133 132
++141 132 131 122 133 132 141 132 131 157 164 157 203 196 201 238 233 218 211 221 218 245 232 231
++211 221 218 189 200 189 134 98 86 133 28 45 133 23 15 133 28 45 133 23 15 133 28 45
++154 14 17 159 26 46 159 63 71 134 98 86 128 104 97 134 98 86 113 97 77 104 74 73
++99 79 59 99 61 48 71 59 54 99 61 48 68 50 43 68 69 47 141 115 130 164 133 127
++164 133 127 165 108 102 141 128 110 141 108 110 143 103 96 134 98 86 134 98 86 133 65 47
++113 97 77 105 79 65 99 79 59 99 61 48 68 50 43 56 54 51 45 39 35 23 19 15
++13 14 11 41 38 42 68 67 72 86 83 83 86 83 83 28 30 29 21 19 15 56 54 51
++99 85 89 83 103 97 99 85 89 99 85 89 86 83 83 99 96 86 99 96 86 41 33 22
++68 69 47 172 173 110 216 210 134 235 213 109 235 213 109 135 123 86 75 83 72 103 106 97
++123 109 109 141 132 131 141 128 110 164 133 127 165 108 102 143 103 96 134 98 86 105 79 65
++99 61 48 86 83 83 122 113 129 143 146 150 143 151 181 157 164 157 163 148 159 163 148 159
++173 175 176 163 148 159 173 175 176 173 167 157 173 175 176 173 175 176 173 175 176 173 167 157
++173 175 176 173 175 176 187 177 178 173 175 176 173 175 176 187 177 178 182 181 190 173 175 176
++173 175 176 173 175 176 173 175 176 157 164 157 112 104 120 141 138 138 163 148 159 157 164 157
++173 175 176 182 181 190 188 191 205 163 148 159 141 108 110 246 122 125 246 122 125 246 122 125
++246 122 125 246 122 125 246 122 125 224 65 75 224 65 75 223 122 101 224 65 75 224 65 75
++224 65 75 223 122 101 236 180 161 240 208 188 240 208 188 240 208 188 242 198 175 240 208 188
++240 208 188 231 233 186 231 233 186 240 208 188 239 232 157 240 208 188 239 232 157 242 198 175
++231 233 186 240 208 188 238 233 218 242 198 175 235 170 109 235 170 109 247 185 70 247 185 70
++223 122 101 164 145 120 164 145 137 216 172 134 206 156 159 164 145 137 141 108 110 114 99 97
++103 106 97 99 96 86 123 109 109 141 128 110 184 128 126 164 145 120 191 160 135 212 206 189
++245 235 246 245 235 246 245 235 246 245 235 246 246 248 239 229 221 240 229 221 240 238 233 218
++238 233 218 141 139 118 104 88 73 161 121 76 191 160 135 191 160 135 216 172 134 215 197 156
++215 197 156 242 198 157 236 180 161 215 197 156 215 197 156 236 180 161 216 172 134 228 160 135
++191 160 135 165 137 101 184 123 101 173 167 157 210 216 207 141 132 131 103 106 97 99 96 86
++163 158 149 188 189 175 189 200 189 189 200 189 189 200 189 203 196 201 188 189 175 194 181 189
++189 200 189 203 196 201 189 200 189 173 167 157 188 189 180 189 200 189 189 200 189 188 189 180
++157 164 157 188 189 180 188 189 180 188 189 175 173 175 176 163 158 149 173 175 176 86 83 83
++68 68 60 68 68 60 68 68 60 71 59 54 56 54 51 57 45 51 56 54 51 46 47 45
++46 47 45 46 47 45 46 47 45 68 68 60 103 106 97 123 109 109 103 106 97 103 106 97
++83 103 97 83 103 97 86 83 83 75 83 72 68 67 72 57 59 55 46 47 45 39 43 42
++35 34 35 45 39 35 39 43 42 39 37 42 45 39 35 41 38 42 37 33 35 35 34 35
++35 34 35 39 37 42 39 37 42 30 34 36 32 31 35 28 26 35 32 31 35 28 26 35
++32 31 35 28 26 35 28 26 35 28 30 29 28 26 35 28 30 29 28 26 35 28 26 35
++28 26 35 28 26 35 28 26 35 28 26 35 21 29 29 28 26 35 23 20 27 28 26 35
++21 29 29 23 20 27 23 20 27 23 20 27 23 20 27 23 20 27 23 20 27 23 20 27
++
++191 160 135 164 145 137 164 145 120 184 128 126 191 160 135 215 195 173 240 208 188 238 233 218
++240 208 188 238 233 218 240 208 188 235 233 206 229 200 201 173 167 157 123 109 109 112 104 120
++112 104 120 103 106 97 96 81 123 103 106 97 83 103 97 99 85 89 83 103 97 99 85 89
++83 103 97 86 83 83 86 83 83 68 67 72 68 67 72 86 83 83 112 104 120 123 133 112
++122 133 132 141 139 118 122 133 132 141 139 118 173 175 176 210 216 207 238 233 218 246 248 239
++245 232 231 238 233 218 143 103 96 159 26 46 133 28 45 133 23 15 159 26 46 133 23 15
++133 28 45 154 14 17 133 69 69 134 98 86 104 88 73 113 97 77 133 78 94 105 79 65
++99 61 48 71 59 54 73 50 50 68 50 43 68 50 43 99 79 59 164 142 149 164 133 127
++141 128 110 141 128 110 165 108 102 143 103 96 143 103 96 133 78 94 105 79 65 99 61 48
++113 97 77 105 79 65 99 61 48 68 50 43 45 49 35 21 19 15 12 22 12 21 19 15
++21 19 15 45 39 35 75 64 67 75 64 67 64 57 60 28 30 29 21 19 15 27 32 26
++71 81 67 68 68 60 45 49 35 45 49 35 21 29 29 35 34 35 45 49 35 45 49 35
++68 50 43 104 88 73 161 121 76 165 137 101 117 142 36 68 69 55 83 103 97 83 103 97
++143 146 150 164 142 149 164 111 125 141 128 110 165 108 102 134 98 86 113 97 77 99 61 48
++99 61 48 141 138 138 131 128 178 143 146 150 173 175 176 173 175 176 173 175 176 157 164 157
++182 181 190 173 175 176 173 175 176 173 175 176 173 175 176 173 167 157 173 175 176 173 175 176
++173 167 157 173 175 176 187 177 178 182 181 190 173 175 176 182 181 190 173 175 176 187 177 178
++173 175 176 163 148 159 173 175 176 173 175 176 58 53 60 143 146 150 143 146 150 141 138 138
++173 175 176 194 181 189 143 146 150 122 133 132 163 148 159 188 147 163 246 122 125 246 122 125
++224 65 75 246 122 125 224 65 75 246 122 125 246 122 125 224 65 75 224 65 75 224 65 75
++224 65 75 213 123 36 246 122 125 242 198 157 242 198 175 242 198 157 235 170 109 235 213 109
++235 213 109 235 213 109 235 213 109 235 213 109 242 198 157 235 213 109 235 213 109 247 185 70
++235 213 109 235 213 109 242 198 157 236 180 161 235 170 109 235 170 109 235 170 109 235 170 109
++223 122 101 184 128 126 164 133 127 184 128 126 164 145 120 134 98 86 99 96 86 86 83 83
++86 83 83 86 83 83 99 85 89 137 117 96 165 137 101 191 160 135 238 233 218 245 235 246
++245 235 246 221 241 240 246 248 239 245 235 246 221 241 240 245 232 231 245 232 231 221 241 240
++221 241 240 245 235 246 163 158 149 99 79 59 165 137 101 184 123 101 191 160 135 203 180 109
++210 180 161 215 197 156 242 198 157 216 172 134 216 172 134 210 180 161 216 172 134 216 172 134
++191 160 135 184 123 101 191 160 135 164 133 127 212 206 189 173 167 157 141 138 138 141 139 118
++141 138 138 157 164 157 188 189 180 210 216 207 203 196 201 210 216 207 173 175 176 188 189 180
++189 200 189 203 196 201 188 189 180 173 175 176 188 189 180 188 189 180 189 200 189 188 189 180
++173 175 176 188 189 180 173 175 176 188 189 175 173 175 176 157 164 157 173 167 157 86 83 83
++71 81 67 68 68 60 71 59 54 68 68 60 71 59 54 46 47 45 46 47 45 46 47 45
++46 47 45 46 47 55 56 54 51 86 83 83 103 106 97 103 106 97 114 121 97 103 106 97
++99 85 89 83 103 97 99 85 89 86 83 83 68 75 77 68 75 77 64 57 60 56 54 51
++46 47 45 46 47 45 46 47 45 41 38 42 39 37 42 41 38 42 39 37 42 39 37 42
++35 34 35 39 37 42 33 35 35 28 32 42 32 31 35 28 32 42 28 26 35 32 31 35
++28 32 42 28 30 29 28 26 35 28 30 29 28 26 35 28 30 29 28 26 35 28 26 35
++28 26 35 28 26 35 28 26 35 28 30 29 28 26 35 28 30 29 28 26 35 28 30 29
++23 20 27 23 20 27 23 20 27 23 20 27 21 29 29 23 20 27 20 28 24 23 20 27
++
++191 160 135 184 128 126 164 145 120 165 108 102 191 160 135 242 198 175 240 208 188 240 208 188
++240 208 188 240 208 188 240 208 188 240 189 188 188 172 163 123 109 109 112 104 120 104 108 124
++103 106 97 96 81 123 83 103 97 99 96 86 68 74 109 99 85 89 83 103 97 96 81 123
++99 85 89 68 74 109 68 75 77 68 67 72 68 67 72 86 83 83 103 106 97 122 113 129
++123 133 112 141 132 131 122 133 132 141 132 131 163 158 149 189 200 189 221 241 240 246 248 239
++245 235 246 246 248 239 134 98 86 159 26 46 159 26 46 133 28 45 154 14 17 133 23 15
++133 23 15 159 26 46 133 28 45 105 79 65 104 74 73 104 74 73 105 79 65 99 61 48
++71 59 54 73 50 50 68 50 20 68 50 43 71 59 54 164 133 127 164 133 127 164 133 127
++164 111 125 141 108 110 134 98 86 133 78 94 133 69 69 105 79 65 99 61 48 105 79 65
++105 79 65 99 61 48 45 49 35 27 32 26 21 19 15 20 20 20 20 20 20 17 19 20
++21 19 15 56 54 51 68 68 60 56 54 51 27 32 26 21 19 15 17 19 20 17 19 20
++49 43 41 41 38 42 46 47 45 35 34 35 41 33 22 27 32 26 27 32 26 45 39 35
++56 54 51 68 69 55 69 83 54 68 80 50 71 59 54 68 67 72 143 146 150 188 196 234
++173 175 176 141 115 130 164 111 125 141 128 110 137 117 96 105 79 65 105 79 65 103 81 83
++163 147 193 143 146 150 163 148 159 143 151 181 173 175 176 163 147 193 173 175 176 182 181 190
++157 164 157 173 175 176 173 175 176 173 175 176 173 175 176 182 181 190 163 148 159 173 175 176
++163 148 159 173 175 176 173 175 176 173 175 176 173 175 176 173 175 176 182 181 190 173 175 176
++157 164 157 157 164 157 141 132 131 141 132 131 123 133 112 114 99 97 123 109 109 141 132 131
++157 164 157 164 133 127 216 122 126 216 122 126 246 122 125 246 122 125 246 122 125 246 122 125
++246 122 125 246 122 125 246 122 125 224 65 75 246 122 125 224 65 75 224 65 75 224 65 75
++224 65 75 212 122 83 213 123 36 247 185 70 235 170 109 247 185 70 247 185 70 247 185 70
++247 185 70 247 185 70 247 185 70 247 185 70 242 198 157 239 232 157 235 170 109 247 185 70
++247 185 70 247 185 70 247 185 70 235 170 109 242 198 157 242 198 175 242 198 175 242 198 157
++184 128 126 141 128 110 141 128 110 123 109 109 114 99 97 103 81 83 86 83 83 87 76 74
++86 83 83 86 83 83 86 83 83 128 104 97 123 109 109 229 200 201 245 235 246 245 235 246
++245 235 246 246 248 239 245 235 246 221 241 240 245 235 246 221 241 240 245 232 231 221 241 240
++245 232 231 246 248 239 246 248 239 194 181 189 113 97 77 165 137 101 165 137 101 165 137 101
++216 172 134 236 180 161 215 197 156 215 195 173 216 172 134 215 197 156 216 172 134 216 172 134
++184 123 101 191 160 135 216 172 134 184 128 126 165 137 101 188 189 175 173 175 176 173 175 176
++163 158 149 143 146 150 188 189 180 203 196 201 189 200 189 203 196 201 173 183 156 194 181 189
++189 200 189 189 200 189 189 200 189 173 175 176 188 189 180 189 200 189 188 189 180 188 189 180
++173 167 157 173 175 176 188 189 180 173 175 176 188 189 175 143 146 150 159 178 157 86 83 83
++68 68 60 68 68 60 64 57 60 64 57 60 56 54 51 58 53 60 46 47 45 46 47 45
++46 47 45 56 54 51 68 64 51 99 96 86 114 121 97 114 121 97 112 104 120 104 108 124
++103 106 97 99 85 89 83 103 97 86 83 83 86 83 83 75 83 72 68 67 72 58 61 60
++58 61 60 57 59 55 39 43 42 39 37 42 33 35 35 45 39 35 35 34 35 33 35 35
++32 31 35 30 34 36 39 37 42 30 34 36 35 34 35 32 31 35 32 31 35 28 26 35
++28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 30 29
++28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 21 19 27 21 29 29 21 29 29
++23 20 27 21 29 29 21 19 27 20 28 24 20 20 20 20 20 20 23 20 27 20 28 24
++
++191 160 135 191 160 135 164 133 127 165 137 101 184 128 126 236 180 161 242 198 175 240 189 188
++240 189 188 242 198 175 210 180 161 164 145 137 123 109 109 103 106 97 112 104 120 104 108 124
++103 106 97 103 106 97 96 81 123 83 103 97 99 85 89 83 103 97 86 83 83 86 83 83
++86 83 83 86 83 83 68 75 77 68 75 77 68 75 77 86 83 83 103 106 97 112 124 124
++123 109 109 122 133 132 123 133 112 141 132 131 141 154 138 188 189 175 238 233 218 246 248 239
++245 235 246 246 248 239 159 63 71 159 26 46 159 26 46 133 23 15 159 26 46 159 26 46
++133 23 15 159 26 46 133 23 15 133 65 47 99 36 46 68 69 47 88 79 65 68 69 55
++71 59 54 68 50 43 68 33 37 41 28 14 99 96 86 141 132 131 141 115 130 141 128 110
++141 108 110 143 103 96 134 98 86 133 69 69 105 79 65 99 61 48 73 50 50 99 61 48
++68 64 51 45 49 35 13 14 11 13 14 11 21 19 15 13 14 11 13 14 11 13 14 11
++68 68 60 68 68 60 45 39 35 23 19 15 21 19 15 21 19 15 17 19 20 17 19 20
++33 35 35 31 42 35 68 69 55 13 14 11 23 19 15 39 14 11 49 43 41 68 64 51
++58 61 60 57 59 55 71 59 54 56 54 51 56 54 51 143 151 181 210 221 240 188 196 234
++164 142 149 141 115 130 141 128 110 134 98 86 134 98 86 99 79 59 105 79 65 141 115 130
++143 151 181 143 151 181 173 175 176 173 175 176 173 175 176 182 181 190 166 181 211 173 175 176
++163 147 193 173 175 176 173 175 176 163 148 159 182 181 190 187 177 178 173 175 176 163 148 159
++173 175 176 173 175 176 163 148 159 173 175 176 163 147 193 173 175 176 173 175 176 173 175 176
++163 148 159 141 138 138 141 115 130 99 96 86 141 132 131 141 115 130 123 109 109 103 106 97
++123 109 109 164 111 125 246 122 125 246 122 125 224 65 75 246 122 125 246 122 125 246 122 125
++246 122 125 224 65 75 246 122 125 246 122 125 224 65 75 246 122 125 224 65 75 224 65 75
++213 123 36 224 65 75 213 123 36 247 185 70 213 123 36 247 185 70 247 185 70 247 185 70
++247 185 70 247 185 70 247 185 70 247 185 70 235 213 109 235 213 109 247 185 70 247 185 70
++247 185 70 247 185 70 247 185 70 235 170 109 236 180 161 240 208 188 240 208 188 240 189 188
++184 128 126 164 133 127 141 128 110 103 106 97 104 88 73 87 76 74 87 76 74 86 83 83
++87 76 74 87 76 74 86 83 83 114 99 97 141 138 138 246 248 239 221 241 240 245 235 246
++246 248 239 245 235 246 221 241 240 245 235 246 245 235 246 246 248 239 245 235 246 221 241 240
++245 232 231 246 248 239 245 235 246 246 248 239 240 208 188 165 108 102 184 123 101 165 137 101
++191 160 135 216 172 134 215 197 156 215 197 156 215 197 156 216 172 134 216 172 134 216 172 134
++191 160 135 235 170 109 216 172 134 191 160 135 165 137 101 188 172 163 203 196 201 189 200 189
++188 189 175 157 164 157 189 200 189 212 206 189 203 196 201 212 206 189 173 175 176 189 200 189
++212 185 189 189 200 189 189 200 189 173 167 157 189 200 189 194 181 189 189 200 189 188 189 180
++157 164 157 188 189 180 188 189 180 187 177 178 173 167 157 122 133 132 143 146 150 75 64 67
++68 68 60 64 57 60 68 64 51 57 59 55 64 57 60 56 54 51 56 54 51 46 47 45
++56 54 51 57 59 55 75 83 72 123 109 109 114 121 97 114 121 97 123 109 109 103 106 97
++103 106 97 83 103 97 86 83 83 86 83 83 86 83 83 68 75 77 68 68 60 61 60 67
++58 61 60 57 59 55 41 38 42 39 43 42 35 34 35 35 34 35 31 42 35 35 34 35
++30 34 36 32 31 35 30 34 36 32 31 35 32 31 35 32 31 35 32 31 35 28 26 35
++28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++28 30 29 23 20 27 28 30 29 23 20 27 28 26 35 21 29 29 23 20 27 23 20 27
++21 29 29 21 19 27 21 29 29 20 28 24 20 28 24 20 20 20 20 28 24 21 19 21
++
++164 145 120 164 133 127 141 128 110 165 108 102 191 160 135 215 195 173 240 189 188 242 198 175
++242 198 175 236 180 161 206 156 159 164 133 127 114 99 97 112 104 120 104 108 124 103 106 97
++96 81 123 83 103 97 99 96 86 96 81 123 86 83 83 99 85 89 68 74 109 83 103 97
++99 85 89 68 74 109 86 83 83 68 75 77 68 75 77 83 103 97 86 83 83 99 96 86
++103 106 97 123 109 109 123 133 112 122 133 132 141 138 138 173 167 157 211 221 218 246 248 239
++246 248 239 229 200 201 133 69 69 154 59 17 159 26 46 159 26 46 133 23 15 159 26 46
++154 14 17 133 23 15 159 26 46 133 23 15 133 23 15 68 33 37 68 50 20 68 33 37
++68 50 20 41 28 14 68 33 37 73 50 50 141 132 131 164 145 137 164 133 127 165 108 102
++143 103 96 143 103 96 133 78 94 105 79 65 88 79 65 99 61 48 99 79 59 73 50 50
++41 28 14 39 14 11 99 96 86 141 138 138 143 146 150 157 164 157 157 164 157 173 167 157
++141 139 118 88 79 65 88 79 65 27 32 26 20 20 20 20 20 20 21 19 15 27 32 26
++45 39 35 41 33 22 68 50 43 104 88 73 164 133 127 188 172 163 163 158 149 87 76 74
++57 59 55 61 60 67 58 53 60 83 103 97 182 181 190 210 221 240 188 196 234 188 191 205
++164 142 149 164 145 137 165 108 102 134 98 86 99 61 48 105 79 65 104 74 73 143 146 150
++166 181 211 173 175 176 173 175 176 173 175 176 188 191 205 182 181 190 143 151 181 173 175 176
++173 175 176 182 181 190 173 175 176 173 175 176 182 181 190 182 181 190 157 164 157 173 167 157
++173 175 176 163 148 159 173 175 176 173 175 176 157 164 157 173 175 176 173 175 176 163 148 159
++141 132 131 141 132 131 141 132 131 114 99 97 114 99 97 103 106 97 123 109 109 99 96 86
++164 111 125 246 122 125 224 65 75 246 122 125 246 122 125 246 122 125 231 153 161 231 153 161
++246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 224 65 75 224 65 75 224 65 75
++197 60 17 213 123 36 213 123 36 213 123 36 247 185 70 213 123 36 247 185 70 247 185 70
++247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70
++247 185 70 247 185 70 235 170 109 247 185 70 235 170 109 242 198 175 240 208 188 236 180 161
++164 133 127 141 132 131 123 133 112 123 109 109 103 106 97 87 76 74 87 76 74 86 83 83
++86 83 83 87 76 74 86 83 83 86 83 83 187 177 178 245 235 246 221 241 240 245 235 246
++221 241 240 245 235 246 245 235 246 221 241 240 245 235 246 221 241 240 245 235 246 245 235 246
++221 241 240 245 235 246 245 232 231 235 233 206 242 198 175 236 180 161 161 121 76 184 123 101
++165 137 101 191 160 135 216 172 134 242 198 157 216 172 134 215 197 156 216 172 134 191 160 135
++191 160 135 216 172 134 216 172 134 191 160 135 184 128 126 164 145 137 210 216 207 210 216 207
++188 189 180 187 177 178 189 200 189 203 196 201 210 216 207 189 200 189 173 175 176 188 189 180
++189 200 189 194 181 189 189 200 189 173 175 176 188 189 180 189 200 189 188 189 180 187 177 178
++159 178 157 173 175 176 188 189 180 188 189 175 157 164 157 103 106 97 114 121 97 68 68 60
++71 59 54 71 59 54 71 59 54 56 54 51 56 54 51 57 59 55 46 47 55 46 47 45
++56 54 51 58 61 60 99 96 86 123 133 112 123 133 112 123 109 109 103 106 97 104 108 124
++99 85 89 83 103 97 86 83 83 86 83 83 86 83 83 68 75 77 68 67 72 68 67 72
++56 54 51 46 47 45 39 37 42 35 34 35 41 38 42 35 34 35 37 33 35 32 31 35
++32 31 35 32 31 35 28 26 35 32 31 35 32 31 35 28 30 29 28 26 35 28 30 29
++28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 30 29 28 26 35
++28 26 35 28 26 35 21 29 29 28 26 35 23 20 27 21 29 29 20 28 24 20 28 24
++23 20 27 21 29 29 23 20 27 21 29 29 23 20 27 23 20 27 23 20 27 23 20 27
++
++164 133 127 165 108 102 141 128 110 143 103 96 191 160 135 242 198 175 240 208 188 240 208 188
++240 208 188 240 189 188 206 156 159 141 128 110 114 99 97 104 108 124 112 104 120 103 106 97
++103 106 97 99 85 89 83 103 97 83 103 97 99 85 89 68 74 109 99 85 89 86 83 83
++68 74 109 86 83 83 68 75 77 68 67 72 86 83 83 86 83 83 86 83 83 68 75 77
++86 83 83 99 96 86 112 124 124 123 133 112 141 139 118 163 158 149 210 216 207 246 248 239
++246 248 239 206 156 159 159 26 46 159 26 46 159 26 46 154 14 17 133 23 15 159 26 46
++159 26 46 154 14 17 159 26 46 159 26 46 159 26 46 133 23 15 100 10 13 68 24 14
++99 36 46 133 28 45 99 36 46 164 133 127 164 142 149 164 145 137 164 111 125 137 117 96
++143 103 96 134 98 86 133 69 69 99 61 48 99 61 48 88 79 65 99 61 48 68 33 37
++68 24 14 68 24 14 212 185 189 246 248 239 246 248 239 246 248 239 238 233 218 188 189 175
++137 117 96 164 145 137 164 145 137 45 39 35 37 33 35 33 35 35 35 34 35 41 28 14
++23 19 15 45 39 35 188 172 163 229 200 201 203 196 201 194 181 189 163 158 149 86 83 83
++58 61 60 61 60 67 86 83 83 188 196 234 203 196 201 188 196 234 203 196 201 163 148 159
++164 145 137 164 133 127 141 108 110 99 79 59 99 61 48 104 88 73 114 99 97 173 175 176
++166 181 211 182 181 190 166 181 211 188 191 205 188 191 205 188 191 205 189 200 189 163 148 159
++173 175 176 173 175 176 163 148 159 173 175 176 182 181 190 187 177 178 163 148 159 173 175 176
++157 164 157 157 164 157 173 175 176 188 172 163 188 147 163 163 148 159 173 175 176 143 146 150
++143 146 150 123 133 112 141 132 131 123 109 109 103 106 97 114 99 97 122 113 129 123 109 109
++184 128 126 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 231 153 161 240 208 188
++231 153 161 246 122 125 246 122 125 224 65 75 224 65 75 246 122 125 224 65 75 197 60 17
++197 60 17 224 65 75 213 123 36 247 185 70 247 185 70 213 123 36 247 185 70 247 185 70
++247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70
++213 123 36 247 185 70 247 185 70 247 185 70 247 185 70 235 170 109 235 170 109 216 122 126
++141 139 118 141 128 110 141 132 131 141 138 138 123 109 109 68 75 77 87 76 74 86 83 83
++86 83 83 86 83 83 68 75 77 86 83 83 203 196 201 245 232 231 221 241 240 245 235 246
++245 235 246 221 241 240 245 235 246 246 248 239 245 235 246 245 235 246 221 241 240 245 235 246
++221 241 240 245 232 231 246 248 239 242 198 175 242 198 157 235 170 109 228 160 135 161 121 76
++161 121 76 161 121 76 216 172 134 210 180 161 242 198 157 236 180 161 215 197 156 228 160 135
++216 172 134 216 172 134 216 172 134 216 172 134 191 160 135 165 137 101 210 216 207 212 206 189
++189 200 189 187 177 178 189 200 189 189 200 189 203 196 201 189 200 189 173 175 176 189 200 189
++212 185 189 189 200 189 189 200 189 173 167 157 189 200 189 188 189 180 189 200 189 173 175 176
++173 167 157 173 175 176 188 189 175 173 175 176 173 167 157 112 124 124 114 99 97 75 64 67
++75 64 67 71 59 54 71 59 54 57 59 55 71 59 54 56 54 51 46 47 45 46 47 45
++57 59 55 68 68 60 123 109 109 112 124 124 123 109 109 112 124 124 103 106 97 103 106 97
++103 106 97 99 85 89 83 103 97 86 83 83 75 83 72 68 75 77 68 67 72 58 61 60
++39 43 42 33 35 35 35 34 35 39 37 42 35 34 35 31 42 35 37 33 35 32 31 35
++32 31 35 32 26 35 32 31 35 32 31 35 28 30 29 28 26 35 28 26 35 28 26 35
++28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 23 20 27
++28 26 35 23 20 27 21 29 29 23 20 27 21 29 29 23 20 27 20 28 24 23 20 27
++20 28 24 20 28 24 21 29 29 21 29 29 23 20 27 21 29 29 23 20 27 23 20 27
++
++165 137 101 113 97 77 104 88 73 113 97 77 184 128 126 236 180 161 240 208 188 240 208 188
++242 198 175 236 180 161 191 160 135 128 104 97 99 96 86 104 108 124 104 108 124 112 104 120
++83 103 97 96 81 123 99 85 89 96 81 123 83 103 97 86 83 83 86 83 83 68 75 77
++86 83 83 86 83 83 68 75 77 68 67 72 68 75 77 68 75 77 68 67 72 56 54 51
++58 61 60 75 83 72 103 106 97 123 109 109 123 133 112 141 139 118 188 189 180 238 233 218
++245 235 246 165 108 102 159 26 46 159 26 46 159 26 46 159 26 46 159 26 46 154 14 17
++154 59 17 159 26 46 133 23 15 154 14 17 154 14 17 159 26 46 133 23 15 133 11 15
++133 23 15 133 28 45 184 123 101 173 167 157 164 142 149 164 133 127 141 108 110 143 103 96
++133 69 69 105 79 65 99 36 46 99 61 48 99 61 48 73 50 50 68 33 37 100 10 13
++133 28 45 133 28 45 191 160 135 246 248 239 221 241 240 245 232 231 210 216 207 188 177 159
++210 180 161 242 198 175 215 195 173 45 39 35 35 34 35 20 28 24 27 32 26 27 32 26
++27 32 26 39 20 27 123 109 109 229 200 201 203 196 201 188 189 180 143 146 150 68 67 72
++61 60 67 104 108 124 210 221 240 211 221 218 188 191 205 163 148 159 141 128 110 141 108 110
++164 133 127 165 108 102 113 97 77 99 61 48 99 61 48 104 74 73 143 146 150 182 181 190
++143 151 181 173 175 176 189 200 189 188 191 205 188 191 205 188 191 205 173 175 176 122 133 132
++143 146 150 143 146 150 163 148 159 173 175 176 182 181 190 173 175 176 163 148 159 173 175 176
++123 109 109 114 99 97 133 78 94 103 81 83 133 69 69 133 78 94 133 69 69 164 133 127
++123 133 112 122 113 129 123 109 109 123 109 109 114 99 97 141 139 118 123 109 109 123 109 109
++206 156 159 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 240 189 188 245 232 231
++246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 224 65 75 224 65 75 224 65 75
++197 60 17 224 65 75 223 122 101 235 170 109 213 123 36 247 185 70 247 185 70 247 185 70
++247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70
++247 185 70 247 185 70 247 185 70 247 185 70 213 123 36 212 122 83 223 122 101 212 122 83
++141 132 131 141 132 131 141 132 131 141 138 138 123 109 109 87 76 74 87 76 74 86 83 83
++86 83 83 86 83 83 87 76 74 99 85 89 157 164 157 229 221 240 229 221 240 221 241 240
++245 235 246 246 248 239 229 221 240 221 241 240 245 235 246 221 241 240 245 235 246 245 235 246
++245 235 246 245 235 246 240 208 188 242 198 157 235 170 109 235 170 109 242 198 157 228 160 135
++165 108 102 161 121 76 165 137 101 216 172 134 210 180 161 215 197 156 236 180 161 215 197 156
++236 180 161 236 180 161 216 172 134 191 160 135 184 128 126 165 137 101 188 189 175 203 196 201
++189 200 189 188 189 180 203 196 201 203 196 201 212 206 189 189 200 189 188 172 163 194 181 189
++189 200 189 189 200 189 188 189 180 173 175 176 189 200 189 188 189 180 189 200 189 187 177 178
++159 178 157 173 175 176 173 175 176 188 189 175 173 175 176 141 154 138 141 128 110 88 79 65
++88 79 65 75 64 67 71 59 54 71 59 54 56 54 51 46 47 45 57 59 55 56 54 51
++58 61 60 86 83 83 122 113 129 123 133 112 112 124 124 114 121 97 112 104 120 103 106 97
++103 106 97 83 103 97 86 83 83 86 83 83 86 83 83 71 81 67 58 61 60 46 47 45
++39 43 42 39 43 42 46 47 45 39 43 42 45 39 35 35 34 35 35 34 35 32 31 35
++32 31 35 32 26 35 28 30 29 32 26 35 28 30 29 28 30 29 28 26 35 28 30 29
++28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 21 29 29 28 26 35
++28 30 29 28 26 35 21 29 29 28 26 35 23 20 27 20 28 24 20 28 24 20 28 24
++20 20 20 20 28 24 23 20 27 21 29 29 23 20 27 23 20 27 23 20 27 23 20 27
++
++141 128 110 88 79 65 99 61 48 99 61 48 184 123 101 228 160 135 242 198 175 242 198 175
++240 208 188 236 180 161 164 133 127 99 85 89 114 99 97 104 108 124 103 106 97 83 103 97
++103 106 97 83 103 97 103 106 97 83 103 97 99 85 89 68 74 109 68 75 77 68 67 72
++68 75 77 68 75 77 68 75 77 68 67 72 68 67 72 68 75 77 75 64 67 46 47 45
++46 47 45 64 57 60 86 83 83 99 96 86 112 104 120 123 133 112 163 158 149 221 241 240
++229 200 201 159 26 46 159 26 46 197 60 17 181 55 69 154 14 17 154 59 17 159 26 46
++159 26 46 159 26 46 159 26 46 154 14 17 133 65 47 154 14 17 159 26 46 159 26 46
++68 24 14 39 28 30 141 138 138 173 167 157 164 145 137 164 142 149 165 108 102 134 98 86
++99 61 48 99 61 48 99 61 48 99 79 59 68 64 51 99 36 46 100 41 14 100 10 13
++100 10 13 133 28 45 133 69 69 173 183 156 173 183 156 188 193 159 188 177 159 210 180 161
++210 180 161 240 208 188 238 233 218 99 61 48 28 30 29 28 30 29 23 19 15 23 19 15
++27 32 26 45 39 35 123 133 112 203 196 201 203 196 201 173 175 176 122 133 132 83 103 97
++210 221 240 221 241 240 188 191 205 163 148 159 164 142 149 141 108 110 141 108 110 134 98 86
++134 98 86 134 98 86 99 79 59 99 79 59 74 57 60 87 76 74 143 146 150 173 175 176
++141 138 138 122 113 129 173 175 176 194 181 189 182 181 190 182 181 190 173 175 176 143 146 150
++141 138 138 143 146 150 157 164 157 182 181 190 182 181 190 173 175 176 157 164 157 128 104 97
++133 78 94 133 69 69 133 28 45 99 36 46 99 36 46 133 69 69 133 78 94 104 74 73
++141 132 131 103 106 97 123 109 109 141 138 138 141 138 138 141 138 138 75 64 67 141 115 130
++228 160 135 246 122 125 246 122 125 246 122 125 224 65 75 231 153 161 240 189 188 240 189 188
++246 122 125 246 122 125 246 122 125 224 65 75 246 122 125 223 122 101 224 65 75 197 60 17
++197 60 17 213 123 36 223 122 101 235 170 109 247 185 70 247 185 70 213 123 36 247 185 70
++247 185 70 247 185 70 247 185 70 235 170 109 242 198 157 242 198 157 247 185 70 247 185 70
++213 123 36 247 185 70 213 123 36 247 185 70 213 123 36 223 122 101 212 122 83 184 123 101
++141 128 110 164 133 127 141 132 131 141 132 131 103 106 97 87 76 74 86 83 83 103 81 83
++86 83 83 87 76 74 87 76 74 103 106 97 123 109 109 203 196 201 221 241 240 229 221 240
++245 235 246 221 241 240 245 235 246 245 235 246 221 241 240 245 235 246 221 241 240 246 248 239
++221 241 240 245 235 246 245 232 231 236 180 161 235 170 109 242 198 157 242 198 157 242 198 157
++223 122 101 161 121 76 134 98 86 191 160 135 216 172 134 236 180 161 215 197 156 216 172 134
++210 180 161 216 172 134 216 172 134 191 160 135 184 123 101 184 128 126 191 160 135 210 216 207
++189 200 189 188 189 175 189 200 189 212 206 189 203 196 201 203 196 201 173 175 176 189 200 189
++203 196 201 189 200 189 188 189 180 173 167 157 188 189 180 189 200 189 188 189 180 173 175 176
++173 167 157 189 200 189 188 189 180 188 189 180 173 175 176 188 189 175 143 146 150 86 83 83
++68 69 55 88 79 65 86 83 83 86 83 83 75 83 72 71 81 67 64 57 60 68 68 60
++75 83 72 123 133 112 112 124 124 123 109 109 112 124 124 103 106 97 103 106 97 103 106 97
++103 106 97 99 85 89 86 83 83 86 83 83 68 75 77 68 67 72 46 47 45 39 37 42
++39 37 42 58 53 60 56 54 51 39 43 42 35 34 35 33 35 35 35 34 35 28 30 29
++32 31 35 28 30 29 32 31 35 28 26 35 28 26 35 28 30 29 28 30 29 28 30 29
++28 30 29 28 30 29 28 30 29 28 30 29 28 26 35 28 30 29 23 20 27 23 20 27
++23 20 27 21 29 29 21 29 29 21 29 29 23 20 27 21 29 29 23 20 27 21 29 29
++20 28 24 20 28 24 20 28 24 23 20 27 23 20 27 27 32 26 23 20 27 20 28 24
++
++134 98 86 114 99 97 141 132 131 184 128 126 216 122 126 236 180 161 240 189 188 240 208 188
++235 233 206 229 200 201 188 147 163 103 106 97 99 85 89 104 108 124 112 104 120 104 108 124
++99 85 89 96 81 123 83 103 97 96 81 123 83 103 97 99 85 89 86 83 83 68 67 72
++68 67 72 68 67 72 68 67 72 68 67 72 75 64 67 68 75 77 61 60 67 46 47 45
++39 43 42 56 54 51 68 68 60 75 83 72 75 83 72 99 96 86 163 158 149 211 221 218
++212 185 189 159 26 46 159 26 46 159 26 46 159 26 46 181 55 69 175 13 17 159 26 46
++159 26 46 197 60 17 159 26 46 159 26 46 154 14 17 159 26 46 154 14 17 99 36 46
++39 28 30 23 20 27 114 99 97 164 145 137 164 145 137 164 133 127 165 108 102 113 97 77
++99 79 59 105 79 65 105 79 65 99 61 48 68 50 43 100 41 14 133 28 45 133 23 15
++99 36 46 100 10 13 105 79 65 173 167 157 173 167 157 166 168 134 173 167 157 210 180 161
++215 195 173 242 198 175 240 208 188 164 145 137 41 33 22 39 20 27 41 28 14 49 43 41
++188 172 163 212 206 189 203 196 201 210 216 207 203 196 201 173 175 176 122 133 132 187 177 178
++187 177 178 163 148 159 164 142 149 184 128 126 165 108 102 134 98 86 134 98 86 134 98 86
++134 98 86 105 79 65 105 79 65 99 79 59 68 33 37 14 14 18 35 32 58 83 103 97
++141 138 138 122 133 132 141 138 138 143 146 150 182 181 190 182 181 190 173 175 176 143 146 150
++122 133 132 141 132 131 173 175 176 173 175 176 173 175 176 157 164 157 163 148 159 103 81 83
++133 28 45 100 10 13 99 36 46 99 36 46 134 98 86 68 33 37 133 69 69 104 74 73
++123 133 112 123 109 109 141 132 131 141 132 131 141 138 138 71 59 54 75 64 67 141 115 130
++216 122 126 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 231 153 161 231 153 161
++246 122 125 246 122 125 246 122 125 246 122 125 224 65 75 223 122 101 212 122 83 224 65 75
++224 65 75 224 65 75 235 170 109 246 122 125 247 185 70 213 123 36 247 185 70 247 185 70
++247 185 70 247 185 70 247 185 70 235 213 109 242 198 157 235 213 109 247 185 70 247 185 70
++247 185 70 213 123 36 247 185 70 213 123 36 247 185 70 213 123 36 223 122 101 143 103 96
++141 115 130 141 115 130 141 132 131 123 133 112 99 96 86 87 76 74 87 76 74 86 83 83
++87 76 74 87 76 74 75 64 67 103 106 97 123 109 109 163 148 159 211 221 218 229 221 240
++221 241 240 245 235 246 221 241 240 229 221 240 245 235 246 221 241 240 245 235 246 221 241 240
++245 235 246 221 241 240 245 235 246 229 200 201 240 208 188 240 208 188 240 208 188 242 198 175
++242 198 175 228 160 135 161 121 76 134 98 86 191 160 135 216 172 134 216 172 134 216 172 134
++236 180 161 210 180 161 216 172 134 191 160 135 184 123 101 164 145 120 137 117 96 203 196 201
++189 200 189 188 189 175 203 196 201 189 200 189 210 216 207 189 200 189 173 175 176 212 206 189
++189 200 189 189 200 189 188 189 180 173 175 176 194 181 189 189 200 189 188 189 180 173 175 176
++173 175 176 189 200 189 203 196 201 189 200 189 189 200 189 189 200 189 173 175 176 141 138 138
++141 132 131 141 154 138 163 158 149 163 158 149 141 138 138 141 132 131 112 124 124 123 133 112
++112 124 124 141 132 131 141 132 131 122 133 132 123 109 109 112 124 124 112 104 120 103 106 97
++99 85 89 83 103 97 86 83 83 75 83 72 68 75 77 58 61 60 39 37 42 39 37 42
++41 38 42 57 59 55 56 54 51 39 43 42 35 34 35 35 34 35 35 34 35 32 31 35
++32 31 35 28 30 29 32 31 35 28 26 35 28 30 29 28 26 35 28 30 29 23 20 27
++28 30 29 23 20 27 28 30 29 28 26 35 23 20 27 28 26 35 28 26 35 28 26 35
++28 26 35 28 26 35 23 20 27 21 29 29 21 29 29 21 29 29 23 20 27 21 29 29
++21 19 27 20 28 24 21 19 21 20 28 24 21 19 21 23 20 27 20 20 20 23 20 27
++
++113 97 77 164 133 127 203 196 201 229 200 201 245 232 231 240 208 188 245 232 231 245 232 231
++245 232 231 238 233 218 189 200 189 141 138 138 103 106 97 104 108 124 103 106 97 83 103 97
++83 103 97 99 85 89 103 106 97 83 103 97 96 81 123 83 103 97 86 83 83 68 75 77
++61 60 67 61 60 67 58 53 60 61 60 67 68 67 72 68 67 72 58 61 60 46 47 45
++46 47 45 46 47 45 56 54 51 64 57 60 58 61 60 75 83 72 141 154 138 203 196 201
++191 160 135 159 26 46 181 55 69 159 26 46 175 13 17 159 26 46 159 26 46 159 26 46
++154 14 17 159 26 46 159 26 46 197 60 17 159 26 46 159 26 46 99 36 46 45 30 35
++39 20 27 28 32 42 46 47 45 173 167 157 164 133 127 164 133 127 143 103 96 113 97 77
++133 69 69 105 79 65 68 50 43 68 50 20 68 24 14 68 24 14 100 10 13 68 24 14
++68 24 14 100 10 13 133 65 47 238 233 218 211 221 218 238 233 218 210 216 207 240 189 188
++215 195 173 236 180 161 215 195 173 240 208 188 240 208 188 212 206 189 238 233 218 235 233 206
++238 233 218 229 200 201 235 233 206 225 201 230 203 196 201 143 146 150 188 196 234 141 108 110
++141 108 110 143 103 96 133 69 69 134 98 86 134 98 86 133 69 69 134 98 86 143 103 96
++134 98 86 133 69 69 99 79 59 68 33 37 23 19 15 27 32 26 21 19 21 32 26 35
++99 85 89 157 164 157 143 146 150 173 175 176 141 138 138 173 175 176 173 175 176 163 158 149
++122 113 129 112 124 124 157 164 157 173 175 176 173 175 176 163 148 159 141 138 138 133 69 69
++100 10 13 99 36 46 133 65 47 133 69 69 133 69 69 99 36 46 100 10 13 104 74 73
++123 109 109 122 133 132 141 138 138 143 146 150 103 106 97 86 83 83 87 76 74 164 145 137
++231 153 161 246 122 125 246 122 125 224 65 75 246 122 125 246 122 125 246 122 125 246 122 125
++246 122 125 246 122 125 224 65 75 246 122 125 224 65 75 246 122 125 224 65 75 212 122 83
++213 123 36 246 122 125 235 170 109 235 170 109 247 185 70 235 170 109 247 185 70 247 185 70
++247 185 70 247 185 70 247 185 70 242 198 157 239 232 157 242 198 157 247 185 70 247 185 70
++247 185 70 247 185 70 213 123 36 247 185 70 213 123 36 247 185 70 223 122 101 159 63 71
++123 133 112 141 132 131 141 132 131 141 132 131 99 96 86 87 76 74 86 83 83 86 83 83
++86 83 83 87 76 74 87 76 74 99 85 89 123 109 109 112 124 124 173 167 157 229 221 240
++245 232 231 245 235 246 229 221 240 221 241 240 245 232 231 245 235 246 245 235 246 245 235 246
++245 235 246 246 248 239 221 241 240 229 221 240 212 185 189 245 232 231 240 208 188 240 208 188
++240 208 188 240 208 188 210 180 161 105 79 65 161 121 76 191 160 135 216 172 134 215 197 156
++236 180 161 216 172 134 216 172 134 191 160 135 184 123 101 165 137 101 161 121 76 188 189 175
++189 200 189 188 189 180 203 196 201 212 206 189 203 196 201 189 200 189 188 189 175 189 200 189
++194 181 189 189 200 189 188 189 180 173 175 176 188 189 180 189 200 189 188 189 180 173 175 176
++188 189 175 210 216 207 212 206 189 203 196 201 210 216 207 203 196 201 189 200 189 188 189 175
++188 189 175 188 189 180 188 189 180 188 189 175 173 175 176 188 177 159 173 175 176 157 164 157
++157 164 157 163 158 149 141 154 138 141 138 138 141 138 138 123 133 112 112 124 124 112 104 120
++103 106 97 103 106 97 86 83 83 86 83 83 68 75 77 46 47 45 39 37 42 35 34 35
++39 43 42 58 61 60 58 53 60 46 47 45 39 37 42 33 35 35 28 30 29 32 31 35
++28 30 29 32 31 35 28 26 35 28 30 29 28 26 35 28 26 35 28 30 29 28 30 29
++28 30 29 28 30 29 23 20 27 28 26 35 28 30 29 28 26 35 23 20 27 28 30 29
++23 20 27 21 29 29 21 29 29 23 20 27 23 20 27 23 20 27 21 29 29 23 20 27
++20 28 24 21 19 21 20 28 24 23 20 27 20 28 24 21 19 21 20 28 24 23 20 27
++
++164 145 120 188 172 163 210 216 207 229 221 240 245 235 246 245 235 246 245 235 246 246 248 239
++245 232 231 245 232 231 229 200 201 173 175 176 104 108 124 104 108 124 112 104 120 96 81 123
++83 103 97 96 81 123 83 103 97 96 81 123 103 106 97 83 103 97 96 81 123 86 83 83
++61 60 67 61 60 67 58 53 60 61 60 67 61 60 67 68 67 72 57 59 55 46 47 45
++46 47 45 56 54 51 57 59 55 68 68 60 86 83 83 99 96 86 141 138 138 189 200 189
++184 123 101 159 26 46 154 14 17 159 26 46 159 26 46 197 60 17 159 26 46 154 59 17
++159 26 46 175 13 17 159 26 46 159 26 46 159 26 46 99 36 46 41 33 22 28 26 35
++20 25 36 28 26 35 28 26 35 75 64 67 164 133 127 165 137 101 143 103 96 135 123 86
++105 79 65 99 61 48 68 69 47 99 36 46 99 36 46 133 23 15 100 10 13 100 10 13
++100 10 13 99 36 46 133 69 69 246 248 239 221 241 240 245 232 231 238 233 218 238 233 218
++240 208 188 240 189 188 236 180 161 236 180 161 210 180 161 240 189 188 240 208 188 238 233 218
++238 233 218 245 232 231 238 233 218 245 232 231 210 216 207 188 191 205 163 148 159 141 115 130
++105 79 65 133 69 69 165 108 102 165 108 102 184 123 101 137 117 96 134 98 86 134 98 86
++105 79 65 105 79 65 68 33 37 28 30 29 23 19 15 21 19 21 23 20 27 21 19 27
++17 19 20 122 113 129 157 164 157 173 175 176 173 175 176 173 175 176 182 181 190 173 167 157
++143 146 150 141 132 131 163 148 159 173 175 176 173 175 176 163 148 159 141 108 110 99 36 46
++133 78 94 133 69 69 133 69 69 99 36 46 99 36 46 99 36 46 99 36 46 123 109 109
++141 132 131 141 138 138 143 146 150 141 138 138 114 99 97 99 85 89 86 83 83 163 148 159
++216 122 126 246 122 125 246 122 125 246 122 125 246 122 125 224 65 75 246 122 125 246 122 125
++246 122 125 246 122 125 246 122 125 224 65 75 246 122 125 246 122 125 223 122 101 246 122 125
++246 122 125 228 160 135 246 122 125 228 160 135 236 180 161 242 198 157 242 198 157 242 198 157
++235 170 109 235 170 109 242 198 157 240 208 188 235 233 206 242 198 157 242 198 157 242 198 157
++246 122 125 235 170 109 247 185 70 212 122 83 247 185 70 212 122 83 212 122 83 133 65 47
++128 104 97 141 132 131 164 145 137 143 146 150 103 106 97 87 76 74 87 76 74 103 81 83
++86 83 83 87 76 74 87 76 74 86 83 83 114 99 97 122 113 129 141 128 110 173 175 176
++229 221 240 221 241 240 229 221 240 229 221 240 229 221 240 221 241 240 245 235 246 221 241 240
++245 235 246 221 241 240 246 248 239 245 235 246 238 233 218 229 200 201 240 189 188 240 189 188
++245 232 231 240 208 188 238 233 218 164 133 127 113 97 77 165 108 102 191 160 135 216 172 134
++216 172 134 210 180 161 216 172 134 216 172 134 184 123 101 184 128 126 165 137 101 191 160 135
++188 189 180 189 200 189 203 196 201 189 200 189 210 216 207 189 200 189 187 177 178 189 200 189
++203 196 201 189 200 189 188 189 180 173 167 157 189 200 189 188 189 180 188 189 180 173 175 176
++187 177 178 210 216 207 210 216 207 189 200 189 210 216 207 203 196 201 212 206 189 203 196 201
++189 200 189 203 196 201 189 200 189 189 200 189 188 189 180 188 189 180 173 175 176 173 175 176
++173 167 157 157 164 157 157 164 157 163 158 149 141 154 138 141 132 131 122 133 132 123 133 112
++112 124 124 112 104 120 83 103 97 99 85 89 58 61 60 39 37 42 35 34 35 39 37 42
++39 43 42 58 61 60 58 53 60 46 47 45 39 37 42 35 34 35 35 34 35 28 30 29
++32 31 35 28 30 29 32 31 35 28 26 35 28 26 35 28 26 35 28 26 35 23 20 27
++28 30 29 23 20 27 28 30 29 28 30 29 23 20 27 28 30 29 28 30 29 23 20 27
++21 29 29 23 20 27 23 20 27 23 20 27 23 20 27 21 29 29 23 20 27 23 20 27
++23 20 27 23 20 27 21 19 21 20 28 24 20 20 20 20 28 24 23 20 27 23 20 27
++
++242 198 175 215 195 173 229 200 201 245 232 231 246 248 239 245 235 246 246 248 239 245 235 246
++245 235 246 245 232 231 229 200 201 187 177 178 122 113 129 112 104 120 103 106 97 99 85 89
++83 103 97 103 106 97 83 103 97 103 106 97 83 103 97 96 81 123 99 96 86 86 83 83
++68 75 77 68 75 77 61 60 67 61 60 67 61 60 67 58 61 60 56 54 51 56 54 51
++57 59 55 68 68 60 68 68 60 75 83 72 86 83 83 112 124 124 173 175 176 203 196 201
++159 63 71 181 55 69 159 26 46 154 59 17 159 26 46 159 26 46 159 26 46 159 26 46
++175 13 17 159 26 46 154 59 17 159 26 46 99 36 46 41 33 22 21 29 29 28 26 35
++28 26 35 28 26 35 28 26 35 21 19 15 113 97 77 141 128 110 165 108 102 134 98 86
++99 79 28 71 59 54 99 61 48 99 36 46 133 28 45 133 28 45 133 28 45 133 28 45
++100 10 13 100 10 13 99 36 46 206 156 159 246 248 239 246 248 239 245 235 246 238 233 218
++229 200 201 240 208 188 240 208 188 242 198 175 236 180 161 236 180 161 229 200 201 240 208 188
++238 233 218 238 233 218 246 248 239 229 221 240 182 181 190 182 181 190 141 138 138 164 142 149
++191 160 135 164 142 149 184 128 126 165 108 102 165 108 102 133 69 69 113 97 77 134 98 86
++105 79 65 68 50 43 21 19 21 23 20 27 20 20 20 28 30 29 21 19 15 17 19 20
++21 29 29 58 61 60 188 191 205 173 175 176 173 175 176 173 175 176 182 181 190 173 175 176
++157 164 157 141 138 138 157 164 157 157 164 157 173 175 176 143 146 150 114 99 97 99 36 46
++133 65 47 99 36 46 133 78 94 99 36 46 100 10 13 99 36 46 141 128 110 141 132 131
++143 146 150 143 146 150 143 146 150 112 104 120 122 113 129 64 57 60 143 146 150 173 167 157
++231 153 161 246 122 125 224 65 75 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125
++246 122 125 224 65 75 246 122 125 224 65 75 246 122 125 223 122 101 246 122 125 246 122 125
++236 180 161 228 160 135 228 160 135 242 198 157 240 208 188 238 233 218 238 233 218 240 208 188
++235 233 206 240 208 188 238 233 218 238 233 218 235 233 206 238 233 218 235 233 206 240 208 188
++240 208 188 242 198 157 235 170 109 235 170 109 235 170 109 235 170 109 224 65 75 133 65 47
++123 109 109 141 132 131 163 158 149 173 167 157 103 106 97 75 64 67 87 76 74 86 83 83
++87 76 74 86 83 83 87 76 74 86 83 83 123 109 109 141 128 110 122 113 129 141 128 110
++188 191 205 245 232 231 221 241 240 229 221 240 221 241 240 245 232 231 221 241 240 245 235 246
++245 235 246 245 235 246 221 241 240 245 235 246 229 221 240 212 206 189 228 160 135 235 170 109
++236 180 161 240 208 188 236 180 161 210 180 161 134 98 86 161 121 76 165 137 101 216 172 134
++216 172 134 216 172 134 216 172 134 191 160 135 191 160 135 203 180 109 184 128 126 165 137 101
++188 189 180 188 189 180 203 196 201 212 206 189 203 196 201 189 200 189 187 177 178 189 200 189
++189 200 189 189 200 189 187 177 178 173 175 176 188 189 180 188 189 180 188 189 180 173 175 176
++189 200 189 203 196 201 210 216 207 203 196 201 210 216 207 189 200 189 210 216 207 189 200 189
++189 200 189 189 200 189 194 181 189 189 200 189 188 189 180 188 189 180 173 175 176 173 175 176
++173 167 157 157 164 157 157 164 157 143 146 150 141 138 138 141 138 138 122 133 132 123 133 112
++112 104 120 103 106 97 103 106 97 86 83 83 39 43 42 39 37 42 39 37 42 35 34 35
++41 38 42 58 53 60 46 47 55 46 47 45 39 37 42 32 31 35 28 26 35 35 34 35
++28 30 29 32 31 35 32 31 35 28 30 29 28 26 35 28 26 35 28 30 29 28 26 35
++28 26 35 21 29 29 23 20 27 28 30 29 28 26 35 21 29 29 23 20 27 20 28 24
++23 20 27 28 30 29 23 20 27 28 30 29 23 20 27 23 20 27 23 20 27 21 29 29
++21 19 21 21 19 21 23 20 27 20 28 24 20 20 20 20 28 24 21 19 21 20 28 24
++
++238 233 218 240 208 188 240 208 188 240 208 188 238 233 218 245 232 231 245 235 246 245 232 231
++245 232 231 240 189 188 231 153 161 188 147 163 123 109 109 103 106 97 104 108 124 83 103 97
++96 81 123 99 85 89 96 81 123 83 103 97 96 81 123 99 85 89 83 103 97 68 74 109
++86 83 83 86 83 83 68 75 77 68 67 72 61 60 67 58 61 60 46 47 55 57 59 55
++68 67 72 86 83 83 75 83 72 86 83 83 99 96 86 157 164 157 210 216 207 173 175 176
++133 23 15 100 41 14 100 10 13 133 28 45 133 28 45 133 28 45 159 26 46 154 59 17
++159 26 46 154 14 17 159 26 46 133 28 45 68 33 37 28 26 35 28 26 35 28 26 35
++28 26 35 28 26 35 23 20 27 23 20 27 39 28 30 99 96 86 134 98 86 99 79 59
++71 59 54 99 61 48 68 33 37 68 24 14 100 10 13 100 10 13 68 24 14 68 24 14
++100 10 13 100 41 14 133 28 45 133 69 69 229 221 240 246 248 239 246 248 239 211 221 218
++210 180 161 206 156 159 210 180 161 236 180 161 236 180 161 210 180 161 188 177 159 210 180 161
++235 233 206 245 232 231 238 233 218 187 177 178 188 189 180 194 181 189 141 132 131 133 78 94
++133 69 69 134 98 86 133 69 69 134 98 86 165 108 102 143 103 96 134 98 86 105 79 65
++73 50 50 23 19 15 21 19 15 20 28 24 20 28 24 27 32 26 23 20 27 20 28 24
++23 20 27 28 26 35 143 146 150 173 175 176 173 175 176 173 175 176 173 175 176 157 164 157
++157 164 157 143 146 150 157 164 157 143 151 181 157 164 157 163 148 159 114 99 97 133 78 94
++99 36 46 133 65 47 133 69 69 99 61 48 104 74 73 141 108 110 122 133 132 141 138 138
++143 146 150 163 148 159 157 164 157 143 146 150 143 146 150 163 148 159 157 164 157 188 147 163
++216 122 126 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 224 65 75 246 122 125
++246 122 125 224 65 75 246 122 125 224 65 75 246 122 125 224 65 75 246 122 125 235 170 109
++235 170 109 235 170 109 228 160 135 242 198 175 240 208 188 245 232 231 245 232 231 245 232 231
++238 233 218 245 232 231 245 232 231 245 232 231 245 232 231 245 232 231 246 248 239 245 232 231
++245 232 231 240 208 188 240 208 188 240 208 188 242 198 175 236 180 161 212 122 83 133 65 47
++141 108 110 141 138 138 173 167 157 187 177 178 112 124 124 68 67 72 87 76 74 87 76 74
++87 76 74 87 76 74 87 76 74 86 83 83 123 109 109 123 133 112 141 115 130 141 128 110
++143 146 150 188 191 205 211 221 218 238 233 218 229 221 240 229 221 240 245 232 231 245 235 246
++221 241 240 245 235 246 245 235 246 221 241 240 229 221 240 245 232 231 242 198 157 235 170 109
++235 170 109 235 170 109 223 122 101 228 160 135 165 108 102 184 123 101 165 137 101 191 160 135
++164 145 120 165 137 101 164 145 120 191 160 135 191 160 135 184 123 101 184 123 101 164 145 120
++188 172 163 189 200 189 189 200 189 203 196 201 210 216 207 189 200 189 173 175 176 212 206 189
++194 181 189 189 200 189 187 177 178 159 178 157 188 189 180 188 189 180 188 189 180 188 189 175
++189 200 189 203 196 201 212 206 189 203 196 201 189 200 189 212 206 189 203 196 201 189 200 189
++203 196 201 189 200 189 188 189 180 188 189 180 182 181 190 188 189 175 173 175 176 173 175 176
++173 167 157 157 164 157 143 146 150 141 138 138 141 132 131 141 132 131 141 132 131 112 124 124
++123 109 109 104 108 124 103 106 97 86 83 83 33 35 35 35 34 35 39 43 42 35 34 35
++39 37 42 46 47 45 39 37 42 39 37 42 33 35 35 33 35 35 35 34 35 28 30 29
++32 31 35 28 26 35 28 30 29 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++23 20 27 28 30 29 28 30 29 28 26 35 21 29 29 23 20 27 21 29 29 21 29 29
++23 20 27 28 30 29 23 20 27 23 20 27 23 20 27 23 20 27 23 20 27 23 20 27
++23 20 27 23 20 27 21 19 21 21 19 21 20 20 20 20 28 24 23 20 27 21 19 21
++
++238 233 218 240 208 188 240 189 188 236 180 161 240 189 188 240 189 188 240 189 188 240 208 188
++240 189 188 231 153 161 231 153 161 184 123 101 133 78 94 112 104 120 96 81 123 99 96 86
++83 103 97 83 103 97 103 106 97 99 85 89 83 103 97 99 85 89 83 103 97 99 85 89
++83 103 97 86 83 83 86 83 83 86 83 83 68 67 72 58 53 60 46 47 45 64 57 60
++86 83 83 99 96 86 99 96 86 99 96 86 112 124 124 203 196 201 246 248 239 123 109 109
++68 24 14 68 24 14 68 24 14 39 20 27 99 79 59 141 108 110 165 108 102 133 69 69
++133 28 45 133 65 47 99 36 46 68 24 14 21 29 29 28 26 35 28 26 35 28 26 35
++23 20 27 23 20 27 23 20 27 20 28 24 21 19 15 27 32 26 104 88 73 99 61 48
++68 69 47 99 61 48 68 33 37 100 10 13 68 24 14 68 24 14 68 24 14 100 10 13
++100 10 13 99 36 46 133 23 15 100 10 13 212 206 189 246 248 239 245 235 246 188 189 175
++141 139 118 165 137 101 184 128 126 191 160 135 236 180 161 210 180 161 164 145 120 164 145 137
++240 208 188 246 248 239 188 172 163 141 108 110 164 133 127 164 142 149 164 145 137 165 108 102
++165 108 102 184 128 126 184 128 126 184 128 126 184 123 101 134 98 86 99 61 48 105 79 65
++41 28 14 20 28 24 20 20 20 21 19 21 20 20 20 27 32 26 28 30 29 23 20 27
++33 35 35 21 29 29 61 60 67 163 148 159 173 175 176 173 175 176 182 181 190 143 146 150
++163 148 159 157 164 157 157 164 157 173 175 176 163 148 159 157 164 157 141 115 130 99 61 48
++104 74 73 104 74 73 103 81 83 141 115 130 114 99 97 123 109 109 122 133 132 141 138 138
++163 158 149 173 175 176 173 175 176 187 177 178 141 138 138 143 146 150 173 175 176 188 147 163
++246 122 125 246 122 125 224 65 75 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125
++224 65 75 246 122 125 224 65 75 246 122 125 246 122 125 246 122 125 223 122 101 223 122 101
++235 170 109 235 170 109 236 180 161 228 160 135 242 198 175 240 208 188 245 232 231 238 233 218
++240 208 188 235 233 206 235 233 206 238 233 218 238 233 218 245 232 231 245 232 231 238 233 218
++238 233 218 240 208 188 229 200 201 240 208 188 240 208 188 231 153 161 159 63 71 99 79 59
++123 109 109 141 138 138 173 175 176 188 189 180 141 138 138 87 76 74 87 76 74 87 76 74
++87 76 74 87 76 74 75 64 67 86 83 83 123 109 109 141 115 130 141 128 110 141 132 131
++173 167 157 141 138 138 203 196 201 221 241 240 211 221 218 221 241 240 229 221 240 221 241 240
++245 235 246 246 248 239 246 248 239 221 241 240 221 241 240 245 232 231 240 208 188 242 198 157
++247 185 70 247 185 70 212 122 83 212 122 83 161 121 76 133 69 69 191 160 135 113 97 77
++99 79 59 71 82 60 88 79 65 191 160 135 216 172 134 191 160 135 188 177 159 212 206 189
++203 196 201 194 181 189 203 196 201 189 200 189 203 196 201 212 206 189 173 175 176 189 200 189
++189 200 189 189 200 189 187 177 178 173 167 157 189 200 189 173 175 176 173 167 157 157 164 157
++173 175 176 188 189 175 173 175 176 173 175 176 188 189 175 173 175 176 173 175 176 188 189 175
++173 175 176 188 189 175 173 175 176 173 175 176 173 183 156 173 175 176 157 164 157 157 164 157
++157 164 157 163 158 149 141 138 138 141 132 131 122 133 132 122 133 132 123 133 112 122 113 129
++112 124 124 103 106 97 103 106 97 61 60 67 39 43 42 35 34 35 35 34 35 39 37 42
++33 35 35 39 37 42 33 35 35 32 31 35 33 35 35 35 34 35 35 34 35 32 31 35
++32 31 35 28 30 29 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 30 29
++28 26 35 28 30 29 23 20 27 28 26 35 23 20 27 28 26 35 23 20 27 23 20 27
++28 26 35 23 20 27 23 20 27 23 20 27 20 28 24 23 20 27 20 28 24 23 20 27
++20 20 20 20 28 24 23 20 27 20 28 24 23 20 27 21 19 21 23 20 27 20 28 24
++
++240 208 188 242 198 175 231 153 161 231 153 161 240 189 188 240 189 188 240 208 188 240 208 188
++240 189 188 231 153 161 231 153 161 216 122 126 164 111 125 96 81 123 103 106 97 96 81 123
++83 103 97 96 81 123 83 103 97 96 81 123 103 106 97 68 74 109 99 85 89 99 85 89
++68 74 109 99 85 89 68 74 109 86 83 83 68 67 72 57 59 55 56 54 51 61 60 67
++86 83 83 103 106 97 103 106 97 99 96 86 141 139 118 210 216 207 221 241 240 212 185 189
++68 33 37 39 14 11 68 24 14 68 33 37 141 138 138 173 175 176 182 181 190 182 181 190
++163 148 159 141 132 131 57 45 51 28 32 42 28 26 35 28 30 29 28 26 35 28 26 35
++32 26 35 23 20 27 21 19 21 20 20 20 20 28 24 20 20 20 41 33 22 68 69 55
++88 79 65 100 41 14 100 41 14 99 36 46 100 10 13 133 11 15 100 10 13 100 10 13
++133 23 15 133 28 45 133 23 15 133 28 45 164 145 137 246 248 239 235 233 206 215 195 173
++210 180 161 236 180 161 210 180 161 206 156 159 191 160 135 188 177 159 188 147 163 164 145 137
++210 216 207 211 221 218 141 138 138 99 85 89 99 85 89 128 104 97 128 104 97 137 117 96
++165 108 102 134 98 86 113 97 77 105 79 65 133 65 47 105 79 65 133 69 69 68 50 43
++23 19 15 23 20 27 21 29 29 23 20 27 27 32 26 21 19 21 28 30 29 28 30 29
++23 20 27 21 29 29 21 19 27 104 108 124 157 164 157 173 175 176 163 148 159 143 146 150
++157 164 157 182 181 190 122 113 129 141 138 138 143 146 150 157 164 157 157 164 157 164 142 149
++164 142 149 163 148 159 141 138 138 103 106 97 75 83 72 141 138 138 143 146 150 163 148 159
++173 175 176 182 181 190 157 164 157 143 146 150 173 175 176 157 164 157 164 142 149 184 128 126
++246 122 125 224 65 75 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125
++246 122 125 224 65 75 246 122 125 246 122 125 246 122 125 224 65 75 246 122 125 247 185 70
++247 185 70 247 185 70 235 170 109 235 170 109 235 170 109 235 170 109 235 213 109 242 198 157
++242 198 157 235 213 109 242 198 157 242 198 157 242 198 157 242 198 157 242 198 157 242 198 175
++240 208 188 240 208 188 242 198 175 240 189 188 236 180 161 235 170 109 133 65 47 99 79 59
++141 115 130 141 138 138 173 167 157 187 177 178 122 133 132 87 76 74 68 75 77 87 76 74
++68 75 77 87 76 74 68 67 72 99 96 86 123 109 109 141 132 131 141 108 110 141 132 131
++173 175 176 163 158 149 112 104 120 173 175 176 229 221 240 238 233 218 229 221 240 245 232 231
++245 235 246 221 241 240 245 232 231 245 235 246 245 235 246 245 232 231 235 233 206 236 180 161
++235 170 109 213 123 36 247 185 70 213 123 36 212 122 83 134 98 86 134 98 86 99 96 86
++86 83 83 86 83 83 56 54 51 137 117 96 229 200 201 210 216 207 245 232 231 245 232 231
++211 221 218 210 216 207 203 196 201 212 206 189 203 196 201 188 189 180 188 189 175 203 196 201
++203 196 201 188 189 180 173 175 176 173 175 176 188 189 180 173 175 176 122 133 132 123 109 109
++114 121 97 112 124 124 123 109 109 123 133 112 123 109 109 123 133 112 123 133 112 122 113 129
++123 133 112 123 133 112 123 109 109 123 133 112 122 113 129 123 133 112 122 113 129 123 133 112
++112 104 120 114 121 97 112 104 120 114 121 97 103 106 97 103 106 97 103 106 97 103 106 97
++99 96 86 99 85 89 68 75 77 46 47 45 39 43 42 39 37 42 39 43 42 35 34 35
++33 35 35 35 34 35 28 30 29 33 35 35 32 31 35 28 30 29 33 35 35 32 31 35
++32 31 35 28 26 35 28 30 29 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++23 20 27 28 26 35 28 30 29 28 30 29 28 30 29 28 30 29 23 20 27 23 20 27
++28 30 29 28 30 29 23 20 27 20 28 24 23 20 27 20 28 24 23 20 27 20 28 24
++23 20 27 21 19 21 23 20 27 21 19 21 23 20 27 20 28 24 21 19 21 23 20 27
++
++236 180 161 191 160 135 216 172 134 236 180 161 240 189 188 240 189 188 245 232 231 240 189 188
++240 189 188 240 189 188 236 180 161 231 153 161 141 115 130 103 106 97 83 103 97 83 103 97
++103 106 97 103 106 97 96 81 123 83 103 97 83 103 97 99 85 89 83 103 97 99 85 89
++83 103 97 99 85 89 86 83 83 68 75 77 61 60 67 56 54 51 46 47 45 68 68 60
++114 121 97 122 133 132 123 109 109 103 106 97 141 132 131 210 216 207 246 248 239 246 248 239
++164 145 137 39 14 11 68 33 37 73 50 50 173 175 176 122 113 129 141 138 138 143 151 181
++188 191 205 141 138 138 20 25 36 28 26 35 21 29 29 21 19 27 23 20 27 23 20 27
++45 30 35 39 28 30 39 28 30 20 20 20 20 20 20 21 19 21 20 20 20 49 43 41
++73 50 50 100 10 13 100 10 13 133 23 15 133 23 15 133 28 45 133 23 15 133 28 45
++133 28 45 100 41 14 100 10 13 99 36 46 104 74 73 246 248 239 229 200 201 240 208 188
++238 233 218 229 200 201 240 189 188 236 180 161 206 156 159 206 156 159 188 172 163 188 172 163
++225 201 230 122 133 132 122 113 129 131 128 178 131 128 178 99 85 89 74 57 60 68 33 37
++68 50 20 99 61 48 134 98 86 165 108 102 161 121 76 143 103 96 105 79 65 39 14 11
++28 26 35 21 19 27 23 20 27 23 20 27 20 28 24 20 20 20 27 32 26 39 37 42
++46 47 55 28 30 29 23 20 27 86 83 83 173 175 176 143 146 150 141 138 138 157 164 157
++163 148 159 173 175 176 123 133 112 141 138 138 143 146 150 173 175 176 163 148 159 173 175 176
++143 151 181 173 175 176 112 104 120 103 106 97 163 148 159 157 164 157 163 148 159 173 175 176
++182 181 190 143 146 150 141 138 138 182 181 190 173 175 176 173 175 176 164 142 149 216 122 126
++246 122 125 246 122 125 246 122 125 224 65 75 246 122 125 246 122 125 224 65 75 246 122 125
++246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 224 65 75
++247 185 70 235 170 109 235 170 109 235 170 109 247 185 70 247 185 70 247 185 70 247 185 70
++247 185 70 247 185 70 247 185 70 247 185 70 235 213 109 247 185 70 247 185 70 247 185 70
++247 185 70 235 170 109 235 170 109 235 170 109 235 170 109 212 122 83 154 59 17 103 81 83
++141 128 110 141 132 131 163 158 149 157 164 157 123 109 109 68 75 77 87 76 74 87 76 74
++75 64 67 75 64 67 75 64 67 103 106 97 141 132 131 141 132 131 141 132 131 164 133 127
++187 177 178 163 158 149 75 83 72 75 64 67 157 164 157 210 221 240 221 241 240 229 221 240
++211 221 218 245 235 246 245 235 246 246 248 239 246 248 239 221 241 240 245 232 231 240 208 188
++235 170 109 247 185 70 235 170 109 228 160 135 228 160 135 128 104 97 87 76 74 68 68 60
++64 57 60 75 64 67 75 64 67 123 133 112 245 232 231 221 241 240 210 221 240 210 221 240
++210 221 240 211 221 218 203 196 201 189 200 189 212 206 189 188 189 180 173 175 176 189 200 189
++189 200 189 188 189 180 173 175 176 173 175 176 188 189 180 187 177 178 123 133 112 75 83 72
++68 75 77 71 81 67 71 81 67 68 68 60 68 67 72 68 68 60 68 67 72 68 68 60
++68 68 60 68 67 72 68 68 60 68 68 60 68 68 60 68 68 60 68 68 60 68 68 60
++58 61 60 68 68 60 58 61 60 58 61 60 64 57 60 58 61 60 58 53 60 58 53 60
++46 47 55 57 59 55 46 47 45 39 43 42 39 37 42 35 34 35 35 34 35 35 34 35
++33 35 35 35 34 35 35 34 35 35 34 35 28 30 29 35 34 35 28 30 29 32 31 35
++32 31 35 28 30 29 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 30 29
++28 30 29 28 30 29 23 20 27 28 30 29 23 20 27 28 30 29 23 20 27 21 29 29
++23 20 27 23 20 27 23 20 27 23 20 27 23 20 27 23 20 27 20 28 24 23 20 27
++21 19 21 20 28 24 23 20 27 20 28 24 21 19 21 23 20 27 21 19 21 20 28 24
++
++242 198 175 191 160 135 210 180 161 236 180 161 231 153 161 240 189 188 240 189 188 240 189 188
++231 153 161 231 153 161 246 122 125 216 122 126 141 108 110 86 83 83 83 103 97 103 106 97
++96 81 123 103 106 97 83 103 97 99 96 86 96 81 123 83 103 97 99 85 89 68 74 109
++86 83 83 68 74 109 86 83 83 68 67 72 56 54 51 46 47 45 46 47 45 86 83 83
++157 164 157 173 167 157 173 167 157 141 139 118 141 154 138 189 200 189 245 232 231 221 241 240
++245 232 231 141 115 130 68 33 37 143 146 150 188 191 205 182 181 190 182 181 190 203 196 201
++188 196 234 68 67 72 35 34 35 28 26 35 28 26 35 28 26 35 45 30 35 45 30 35
++61 46 51 68 33 37 28 30 29 20 28 24 23 20 27 23 20 27 23 20 27 23 19 15
++68 33 37 68 33 37 100 10 13 68 33 37 99 36 46 99 36 46 68 33 37 68 24 14
++99 36 46 99 36 46 99 36 46 141 115 130 163 148 159 188 189 180 229 200 201 240 208 188
++240 208 188 238 233 218 240 208 188 236 180 161 210 180 161 188 172 163 212 185 189 194 181 189
++173 175 176 131 128 178 143 146 150 131 128 178 104 108 124 68 75 77 104 74 73 104 88 73
++165 108 102 184 128 126 184 128 126 134 98 86 105 79 65 73 50 50 39 20 27 20 20 20
++23 20 27 23 20 27 21 29 29 23 19 15 20 28 24 21 19 21 20 28 24 30 34 36
++103 106 97 23 20 27 21 29 29 61 60 67 143 146 150 143 146 150 141 132 131 141 138 138
++141 138 138 123 109 109 112 104 120 141 138 138 122 133 132 163 148 159 173 175 176 173 175 176
++173 175 176 143 146 150 86 83 83 163 148 159 182 181 190 173 175 176 173 175 176 157 164 157
++122 113 129 141 132 131 173 175 176 182 181 190 182 181 190 182 181 190 143 146 150 216 122 126
++246 122 125 224 65 75 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125
++224 65 75 246 122 125 246 122 125 246 122 125 246 122 125 224 65 75 223 122 101 223 122 101
++247 185 70 247 185 70 235 170 109 247 185 70 247 185 70 247 185 70 213 123 36 247 185 70
++247 185 70 247 185 70 247 185 70 235 170 109 247 185 70 247 185 70 247 185 70 247 185 70
++247 185 70 247 185 70 247 185 70 247 185 70 213 123 36 213 123 36 133 65 47 114 99 97
++141 128 110 141 115 130 123 109 109 103 106 97 86 83 83 64 57 60 87 76 74 75 64 67
++87 76 74 75 64 67 75 64 67 114 99 97 122 133 132 141 115 130 141 128 110 141 132 131
++173 167 157 123 133 112 87 76 74 68 68 60 87 76 74 143 146 150 211 221 218 238 233 218
++229 221 240 221 241 240 238 233 218 221 241 240 245 232 231 246 248 239 210 216 207 157 164 157
++240 189 188 240 189 188 240 189 188 188 172 163 123 109 109 87 76 74 88 79 65 103 106 97
++87 76 74 104 88 73 87 76 74 141 138 138 246 248 239 229 221 240 211 221 218 229 221 240
++211 221 218 229 221 240 210 216 207 210 216 207 203 196 201 173 175 176 188 189 175 189 200 189
++203 196 201 189 200 189 173 167 157 188 189 175 188 189 180 188 189 180 143 146 150 103 106 97
++99 96 86 99 96 86 86 83 83 86 83 83 86 83 83 75 83 72 71 81 67 68 67 72
++68 68 60 68 68 60 68 68 60 68 68 60 58 61 60 57 59 55 58 61 60 57 59 55
++57 59 55 56 54 51 57 59 55 56 54 51 46 47 45 46 47 45 46 47 45 46 47 45
++39 43 42 39 43 42 39 43 42 39 43 42 35 34 35 31 42 35 37 33 35 31 42 35
++35 34 35 35 34 35 35 34 35 35 34 35 28 30 29 32 31 35 32 31 35 32 31 35
++28 30 29 28 26 35 28 26 35 28 30 29 28 26 35 28 30 29 28 26 35 23 20 27
++28 30 29 23 20 27 28 30 29 28 30 29 28 30 29 23 20 27 28 30 29 23 20 27
++21 19 21 23 20 27 21 19 21 20 28 24 23 20 27 20 28 24 23 20 27 23 20 27
++20 28 24 23 20 27 23 20 27 21 19 21 23 20 27 20 28 24 23 20 27 23 20 27
++
++240 189 188 240 208 188 236 180 161 231 153 161 246 122 125 246 122 125 246 122 125 246 122 125
++246 122 125 224 65 75 246 122 125 224 65 75 133 78 94 103 106 97 122 133 132 143 146 150
++143 146 150 143 146 150 122 133 132 112 104 120 103 106 97 99 85 89 68 74 109 86 83 83
++86 83 83 86 83 83 68 67 72 58 61 60 39 43 42 49 43 41 46 47 45 123 133 112
++189 200 189 203 196 201 212 206 189 173 167 157 173 167 157 212 206 189 211 221 218 246 248 239
++246 248 239 246 248 239 212 185 189 173 175 176 182 181 190 188 191 205 188 196 234 210 216 207
++122 113 129 28 32 42 28 32 42 28 26 35 28 26 35 32 26 35 45 30 35 45 30 35
++68 33 37 48 36 41 39 28 30 28 30 29 21 29 29 21 19 21 17 19 20 39 43 42
++99 85 89 141 115 130 141 115 130 164 142 149 112 104 120 87 76 74 99 85 89 141 115 130
++141 138 138 104 108 124 143 151 181 143 151 181 143 151 181 173 175 176 212 185 189 240 208 188
++240 208 188 240 208 188 240 208 188 240 189 188 236 180 161 210 180 161 212 185 189 194 181 189
++143 146 150 104 108 124 91 128 178 143 146 150 68 74 109 141 108 110 184 128 126 184 128 126
++165 137 101 113 97 77 99 61 48 41 33 22 39 14 11 21 19 15 12 22 12 20 28 24
++20 28 24 28 30 29 20 28 24 27 32 26 28 30 29 28 30 29 20 28 24 14 14 18
++103 106 97 46 47 55 32 31 35 28 30 29 112 104 120 173 175 176 141 138 138 141 138 138
++103 106 97 87 76 74 75 83 72 86 83 83 112 104 120 157 164 157 163 148 159 173 175 176
++173 175 176 143 146 150 45 62 74 122 133 132 122 133 132 99 85 89 68 75 77 99 85 89
++157 164 157 173 175 176 187 177 178 182 181 190 182 181 190 182 181 190 173 175 176 188 147 163
++246 122 125 246 122 125 224 65 75 246 122 125 224 65 75 246 122 125 224 65 75 246 122 125
++246 122 125 246 122 125 246 122 125 224 65 75 246 122 125 246 122 125 224 65 75 223 122 101
++247 185 70 223 122 101 235 170 109 247 185 70 212 122 83 247 185 70 247 185 70 247 185 70
++213 123 36 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70
++247 185 70 247 185 70 212 122 83 213 123 36 212 122 83 213 123 36 181 55 69 103 106 97
++122 113 129 103 106 97 75 83 72 68 68 60 58 61 60 68 68 60 75 64 67 87 76 74
++68 67 72 75 64 67 75 64 67 103 106 97 123 109 109 122 113 129 141 128 110 141 115 130
++141 132 131 114 99 97 75 64 67 75 64 67 75 64 67 46 47 55 182 181 190 211 221 218
++229 221 240 211 221 218 235 233 206 245 232 231 246 248 239 246 248 239 194 181 189 173 175 176
++112 124 124 210 216 207 141 138 138 103 117 86 104 88 73 88 79 65 88 79 65 164 145 137
++88 79 65 104 88 73 88 79 65 99 96 86 229 221 240 238 233 218 229 221 240 238 233 218
++229 221 240 211 221 218 211 221 218 211 221 218 212 206 189 173 175 176 187 177 178 189 200 189
++189 200 189 188 189 180 173 167 157 188 189 180 189 200 189 203 196 201 188 189 175 173 167 157
++157 164 157 173 167 157 143 146 150 163 158 149 141 138 138 141 132 131 122 133 132 123 133 112
++123 109 109 103 106 97 103 106 97 99 85 89 86 83 83 86 83 83 71 81 67 68 68 60
++68 68 60 58 61 60 57 59 55 56 54 51 56 54 51 56 54 51 46 47 45 46 47 45
++39 43 42 39 43 42 35 34 35 35 34 35 39 43 42 35 34 35 37 33 35 37 33 35
++35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 35 34 35 28 30 29 32 31 35
++28 30 29 28 26 35 28 30 29 28 26 35 28 26 35 28 30 29 28 26 35 28 30 29
++28 30 29 28 30 29 28 30 29 23 20 27 20 28 24 28 30 29 21 19 21 20 28 24
++23 20 27 20 28 24 23 20 27 23 20 27 21 19 21 23 20 27 27 32 26 21 19 21
++23 20 27 21 19 21 20 28 24 23 20 27 21 19 21 23 20 27 20 20 20 20 28 24
++
++240 208 188 242 198 175 236 180 161 228 160 135 246 122 125 246 122 125 246 122 125 246 122 125
++224 65 75 246 122 125 224 65 75 224 65 75 143 103 96 141 138 138 173 175 176 182 181 190
++189 200 189 188 191 205 188 191 205 173 175 176 143 146 150 122 133 132 104 108 124 83 103 97
++86 83 83 68 75 77 61 60 67 56 54 51 35 34 35 33 35 35 68 68 60 157 164 157
++212 206 189 210 216 207 212 206 189 215 195 173 189 200 189 210 216 207 238 233 218 221 241 240
++245 232 231 246 248 239 245 235 246 188 191 205 188 191 205 166 181 211 188 191 205 173 175 176
++35 32 58 28 32 42 20 25 36 28 30 29 32 26 35 39 28 30 39 28 30 28 30 29
++39 28 30 27 32 26 37 33 35 21 19 21 27 32 26 13 14 11 28 26 35 122 133 132
++143 151 181 166 181 211 131 128 178 122 133 132 112 104 120 131 128 178 173 175 176 163 147 193
++104 108 124 143 151 181 143 151 181 173 175 176 163 147 193 143 151 181 229 200 201 242 198 175
++238 233 218 240 208 188 242 198 175 242 198 175 240 189 188 212 185 189 212 185 189 194 181 189
++122 133 132 122 133 132 143 146 150 141 132 131 141 128 110 143 103 96 105 79 65 99 79 59
++68 50 43 45 30 35 28 26 35 21 19 21 20 20 20 23 20 27 21 19 27 20 28 24
++23 20 27 20 28 24 23 20 27 28 30 29 28 30 29 28 30 29 28 30 29 23 20 27
++64 57 60 58 61 60 28 30 29 20 28 24 75 83 72 143 146 150 143 146 150 123 133 112
++75 83 72 71 81 67 123 109 109 157 164 157 188 189 180 194 181 189 189 200 189 194 181 189
++188 189 180 189 200 189 182 181 190 112 104 120 103 106 97 99 85 89 103 106 97 143 146 150
++182 181 190 187 177 178 182 181 190 182 181 190 188 191 205 182 181 190 182 181 190 188 147 163
++246 122 125 224 65 75 223 122 101 246 122 125 246 122 125 246 122 125 246 122 125 224 65 75
++246 122 125 246 122 125 246 122 125 246 122 125 224 65 75 224 65 75 223 122 101 223 122 101
++213 123 36 247 185 70 223 122 101 247 185 70 247 185 70 213 123 36 247 185 70 213 123 36
++247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70
++247 185 70 247 185 70 213 123 36 247 185 70 212 122 83 213 123 36 133 69 69 123 109 109
++123 109 109 99 85 89 75 64 67 75 64 67 75 64 67 64 57 60 75 64 67 68 68 60
++75 64 67 74 57 60 86 83 83 123 109 109 122 113 129 123 109 109 123 109 109 141 108 110
++141 108 110 88 79 65 75 64 67 68 68 60 68 68 60 71 59 54 103 81 83 173 175 176
++245 232 231 211 221 218 211 221 218 238 233 218 229 221 240 245 235 246 210 216 207 86 83 83
++99 96 86 103 106 97 123 109 109 87 76 74 71 81 67 87 76 74 68 68 60 104 88 73
++99 96 86 88 79 65 68 69 55 163 158 149 245 232 231 211 221 218 210 221 240 229 221 240
++211 221 218 229 221 240 225 201 230 211 221 218 211 221 218 182 181 190 188 189 180 188 189 180
++212 206 189 188 189 180 157 164 157 189 200 189 212 206 189 203 196 201 203 196 201 203 196 201
++203 196 201 203 196 201 189 200 189 189 200 189 189 200 189 188 189 180 188 189 180 173 167 157
++173 175 176 157 164 157 157 164 157 163 158 149 141 154 138 141 132 131 141 132 131 122 133 132
++112 124 124 103 106 97 99 96 86 99 96 86 86 83 83 75 83 72 68 67 72 58 61 60
++58 61 60 46 47 45 39 43 42 39 37 42 35 34 35 35 34 35 35 34 35 35 34 35
++33 35 35 35 34 35 28 30 29 33 35 35 28 30 29 32 31 35 32 31 35 28 30 29
++32 31 35 28 30 29 28 26 35 28 30 29 28 30 29 23 20 27 28 30 29 28 30 29
++23 20 27 28 30 29 28 30 29 28 30 29 23 20 27 23 20 27 20 28 24 23 20 27
++23 20 27 20 28 24 21 19 21 20 28 24 20 28 24 20 28 24 21 19 21 20 28 24
++20 20 20 23 20 27 21 19 21 20 28 24 23 20 27 20 28 24 23 20 27 23 20 27
++
++215 195 173 236 180 161 173 167 157 191 160 135 216 122 126 246 122 125 246 122 125 224 65 75
++246 122 125 246 122 125 224 65 75 224 65 75 216 122 126 173 175 176 182 181 190 210 216 207
++210 216 207 211 221 218 210 216 207 188 191 205 188 191 205 173 175 176 173 175 176 141 138 138
++83 103 97 68 75 77 58 61 60 41 38 42 35 34 35 45 39 35 75 83 72 173 167 157
++189 200 189 210 216 207 231 233 186 212 206 189 210 216 207 211 221 218 221 241 240 221 241 240
++246 248 239 246 248 239 246 248 239 203 196 201 188 191 205 188 196 234 211 221 218 68 74 109
++20 25 36 30 34 36 32 31 35 28 30 29 39 28 30 32 31 35 28 30 29 23 20 27
++28 30 29 37 33 35 28 30 29 28 30 29 14 14 18 21 19 21 103 106 97 131 128 178
++188 191 205 143 151 181 112 124 124 122 113 129 143 151 181 173 175 176 163 147 193 104 108 124
++143 146 150 182 181 190 173 175 176 163 147 193 143 151 181 143 151 181 212 185 189 240 208 188
++240 208 188 240 208 188 240 208 188 242 198 175 240 189 188 215 195 173 212 185 189 173 175 176
++122 113 129 131 128 178 131 128 178 57 59 55 75 64 67 57 45 51 39 28 30 28 26 35
++21 19 27 23 20 27 20 28 24 21 19 21 23 20 27 20 28 24 20 20 20 20 28 24
++21 29 29 21 29 29 28 30 29 21 29 29 28 30 29 28 30 29 28 30 29 21 19 21
++33 35 35 86 83 83 33 35 35 28 30 29 39 43 42 141 132 131 123 133 112 123 109 109
++203 196 201 194 181 189 245 232 231 221 241 240 246 248 239 245 235 246 246 248 239 246 248 239
++246 248 239 246 248 239 210 216 207 112 104 120 122 113 129 141 138 138 141 138 138 173 167 157
++194 181 189 194 181 189 189 200 189 194 181 189 188 191 205 182 181 190 188 191 205 206 156 159
++246 122 125 246 122 125 246 122 125 224 65 75 246 122 125 224 65 75 246 122 125 224 65 75
++246 122 125 246 122 125 246 122 125 224 65 75 224 65 75 246 122 125 224 65 75 223 122 101
++212 122 83 213 123 36 247 185 70 223 122 101 247 185 70 213 123 36 247 185 70 247 185 70
++213 123 36 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 213 123 36
++247 185 70 213 123 36 247 185 70 213 123 36 213 123 36 224 65 75 161 121 76 141 108 110
++114 99 97 87 76 74 74 57 60 68 68 60 68 68 60 64 57 60 64 57 60 64 57 60
++64 57 60 86 83 83 103 106 97 123 109 109 123 133 112 123 109 109 141 128 110 141 128 110
++128 104 97 87 76 74 75 64 67 74 57 60 68 68 60 58 61 60 99 61 48 165 108 102
++216 172 134 210 216 207 210 216 207 245 232 231 246 248 239 221 241 240 86 83 83 46 47 55
++86 83 83 163 158 149 103 106 97 68 68 60 75 64 67 75 64 67 68 69 55 68 64 51
++88 79 65 88 79 65 104 88 73 188 189 180 211 221 218 229 221 240 238 233 218 229 221 240
++229 221 240 211 221 218 211 221 218 225 201 230 211 221 218 203 196 201 188 189 180 189 200 189
++189 200 189 189 200 189 157 164 157 203 196 201 210 216 207 210 216 207 210 216 207 210 216 207
++210 216 207 210 216 207 210 216 207 210 216 207 210 216 207 210 216 207 203 196 201 189 200 189
++203 196 201 189 200 189 188 189 180 188 189 180 187 177 178 173 175 176 159 178 157 173 167 157
++163 158 149 143 146 150 141 138 138 122 133 132 123 133 112 112 124 124 123 109 109 99 96 86
++99 96 86 58 53 60 32 31 35 35 34 35 33 35 35 35 34 35 39 43 42 35 34 35
++35 34 35 35 34 35 33 35 35 28 30 29 28 30 29 32 31 35 32 31 35 28 30 29
++28 30 29 28 26 35 28 26 35 28 30 29 23 20 27 28 30 29 28 30 29 23 20 27
++28 30 29 28 30 29 23 20 27 23 20 27 21 19 21 20 28 24 21 19 21 23 20 27
++20 28 24 21 19 21 23 20 27 20 28 24 23 20 27 20 28 24 23 20 27 23 20 27
++21 19 21 20 28 24 23 20 27 23 20 27 21 19 21 23 20 27 21 19 21 20 28 24
++
++206 156 159 191 160 135 164 133 127 141 139 118 173 167 157 231 153 161 231 153 161 246 122 125
++224 65 75 246 122 125 224 65 75 246 122 125 216 122 126 188 172 163 182 181 190 188 191 205
++211 221 218 211 221 218 210 221 240 211 221 218 211 221 218 188 191 205 188 191 205 166 181 211
++143 146 150 83 103 97 58 61 60 39 43 42 33 35 35 33 35 35 68 67 72 163 158 149
++188 189 180 212 206 189 212 206 189 212 206 189 212 206 189 211 221 218 211 221 218 238 233 218
++221 241 240 246 248 239 246 248 239 210 221 240 211 221 218 210 221 240 157 164 157 30 34 36
++30 34 36 28 26 35 39 37 42 28 30 29 28 30 29 39 28 30 23 20 27 28 30 29
++21 19 21 23 19 15 23 20 27 14 14 18 61 60 67 143 146 150 163 147 193 173 175 176
++157 164 157 104 108 124 104 108 124 131 128 178 182 181 190 143 151 181 104 108 124 112 124 124
++143 151 181 143 151 181 143 151 181 166 181 211 173 175 176 143 151 181 163 147 193 238 233 218
++240 189 188 240 208 188 242 198 175 240 189 188 210 180 161 188 172 163 212 185 189 173 175 176
++173 175 176 143 151 181 112 124 124 32 31 35 35 34 35 33 35 35 30 34 36 21 29 29
++20 25 36 18 29 26 23 20 27 23 20 27 20 20 20 23 20 27 23 20 27 23 20 27
++23 20 27 28 30 29 21 29 29 23 20 27 23 20 27 28 30 29 28 30 29 28 30 29
++17 19 20 86 83 83 20 28 24 28 30 29 39 43 42 141 132 131 210 216 207 229 221 240
++246 248 239 246 248 239 246 248 239 245 232 231 245 232 231 221 241 240 246 248 239 221 241 240
++245 232 231 245 235 246 182 181 190 141 132 131 143 146 150 173 175 176 182 181 190 188 191 205
++188 191 205 188 191 205 188 191 205 188 191 205 182 181 190 173 175 176 182 181 190 206 156 159
++246 122 125 224 65 75 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 224 65 75
++246 122 125 246 122 125 224 65 75 246 122 125 224 65 75 224 65 75 224 65 75 223 122 101
++224 65 75 223 122 101 246 122 125 247 185 70 213 123 36 213 123 36 213 123 36 213 123 36
++223 122 101 213 123 36 223 122 101 213 123 36 223 122 101 213 123 36 247 185 70 212 122 83
++247 185 70 212 122 83 213 123 36 213 123 36 212 122 83 213 123 36 143 103 96 141 132 131
++128 104 97 104 88 73 71 59 54 74 57 60 64 57 60 57 59 55 64 57 60 99 96 86
++122 133 132 141 132 131 123 133 112 122 113 129 123 109 109 122 113 129 123 109 109 141 108 110
++128 104 97 105 79 65 75 64 67 68 68 60 74 57 60 45 62 74 99 61 48 223 122 101
++231 153 161 191 160 135 210 216 207 245 232 231 221 241 240 143 146 150 58 61 60 112 124 124
++123 109 109 157 164 157 87 76 74 88 79 65 68 64 51 88 79 65 88 79 65 113 97 77
++128 104 97 71 82 60 99 96 86 182 181 190 238 233 218 211 221 218 210 221 240 211 221 218
++229 221 240 211 221 218 211 221 218 229 221 240 211 221 218 211 221 218 203 196 201 203 196 201
++188 189 180 194 181 189 157 164 157 189 200 189 210 216 207 189 200 189 210 216 207 203 196 201
++210 216 207 210 216 207 210 216 207 203 196 201 210 216 207 210 216 207 210 216 207 203 196 201
++212 206 189 189 200 189 189 200 189 189 200 189 188 189 180 188 189 180 173 175 176 173 175 176
++157 164 157 173 167 157 141 154 138 143 146 150 141 138 138 141 138 138 123 133 112 112 104 120
++103 106 97 46 47 45 35 34 35 39 43 42 35 34 35 35 34 35 35 34 35 35 34 35
++33 35 35 35 34 35 27 32 26 39 28 30 32 31 35 28 30 29 32 31 35 28 30 29
++28 30 29 28 26 35 28 30 29 28 26 35 28 30 29 27 32 26 23 20 27 28 30 29
++28 30 29 28 30 29 28 30 29 23 20 27 28 30 29 23 20 27 27 32 26 23 19 15
++23 20 27 21 19 21 27 32 26 21 19 21 20 28 24 21 19 21 20 28 24 20 28 24
++21 19 21 23 20 27 21 19 21 20 28 24 23 20 27 20 28 24 21 19 21 23 20 27
++
++137 117 96 141 108 110 137 117 96 141 139 118 173 167 157 188 177 159 231 153 161 231 153 161
++246 122 125 246 122 125 224 65 75 246 122 125 224 65 75 188 147 163 173 175 176 182 181 190
++188 191 205 211 221 218 211 221 218 211 221 218 188 196 234 211 221 218 211 221 218 188 191 205
++173 175 176 143 146 150 86 83 83 46 47 45 35 34 35 27 32 26 44 55 41 141 139 118
++188 189 175 212 206 189 215 195 173 212 206 189 210 216 207 211 221 218 238 233 218 221 241 240
++246 248 239 246 248 239 246 248 239 211 221 218 188 196 234 188 191 205 46 47 55 28 32 42
++39 37 42 33 35 35 39 37 42 32 31 35 28 30 29 23 20 27 23 19 15 21 19 21
++21 19 21 33 35 35 13 14 11 28 32 42 104 108 124 143 146 150 143 151 181 143 146 150
++96 81 123 112 124 124 112 124 124 173 175 176 173 175 176 104 108 124 83 103 97 143 146 150
++143 151 181 173 175 176 143 151 181 173 175 176 143 151 181 166 181 211 143 146 150 187 177 178
++240 208 188 240 208 188 240 189 188 210 180 161 188 172 163 188 172 163 187 177 178 194 181 189
++173 175 176 182 181 190 68 74 109 39 43 42 39 37 42 35 34 35 32 31 35 28 30 29
++20 28 24 21 29 29 23 20 27 20 28 24 21 19 21 20 28 24 23 20 27 20 28 24
++28 30 29 28 30 29 28 30 29 28 30 29 28 30 29 23 20 27 28 30 29 28 30 29
++21 19 21 86 83 83 14 14 18 28 30 29 75 83 72 112 104 120 211 221 218 246 248 239
++246 248 239 246 248 239 246 248 239 221 241 240 245 232 231 221 241 240 245 232 231 246 248 239
++221 241 240 246 248 239 157 164 157 143 146 150 173 175 176 188 191 205 210 216 207 203 196 201
++203 196 201 210 216 207 203 196 201 203 196 201 203 196 201 188 191 205 182 181 190 216 122 126
++246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125
++224 65 75 246 122 125 224 65 75 224 65 75 224 65 75 246 122 125 246 122 125 224 65 75
++223 122 101 223 122 101 223 122 101 223 122 101 224 65 75 212 122 83 212 122 83 213 123 36
++224 65 75 213 123 36 213 123 36 224 65 75 213 123 36 213 123 36 224 65 75 213 123 36
++213 123 36 213 123 36 213 123 36 224 65 75 213 123 36 224 65 75 123 109 109 141 132 131
++165 137 101 134 98 86 88 79 65 71 59 54 75 64 67 86 83 83 123 109 109 157 164 157
++187 177 178 173 175 176 141 132 131 122 113 129 123 109 109 123 133 112 123 109 109 141 128 110
++141 108 110 103 81 83 75 64 67 68 69 55 74 57 60 87 76 74 99 79 59 236 180 161
++240 208 188 240 208 188 187 177 178 238 233 218 211 221 218 68 75 77 64 57 60 188 189 180
++123 109 109 157 164 157 68 68 60 68 69 55 88 79 65 99 96 86 88 79 65 68 64 51
++45 49 35 123 109 109 211 221 218 211 221 218 229 221 240 229 221 240 211 221 218 229 221 240
++211 221 218 225 201 230 211 221 218 211 221 218 225 201 230 211 221 218 210 216 207 194 181 189
++189 200 189 189 200 189 173 175 176 212 206 189 210 216 207 210 216 207 212 206 189 210 216 207
++210 216 207 210 216 207 210 216 207 212 206 189 203 196 201 210 216 207 212 206 189 203 196 201
++189 200 189 189 200 189 194 181 189 188 189 180 189 200 189 188 189 180 173 175 176 173 175 176
++173 167 157 157 164 157 157 164 157 163 158 149 141 154 138 141 138 138 122 133 132 123 109 109
++103 106 97 46 47 55 46 47 45 35 34 35 35 34 35 35 34 35 35 34 35 33 35 35
++35 34 35 33 35 35 28 30 29 33 35 35 28 30 29 32 31 35 32 31 35 28 30 29
++28 30 29 28 26 35 28 30 29 28 26 35 23 20 27 28 30 29 27 32 26 28 30 29
++23 20 27 28 30 29 23 20 27 28 30 29 23 20 27 28 30 29 23 20 27 20 28 24
++23 20 27 27 32 26 21 19 21 21 19 21 20 28 24 21 19 21 21 19 21 21 19 21
++20 28 24 23 20 27 20 28 24 21 19 21 23 20 27 21 19 21 23 20 27 20 28 24
++
++114 121 97 137 117 96 141 108 110 141 128 110 163 158 149 173 167 157 182 181 190 231 153 161
++231 153 161 246 122 125 246 122 125 224 65 75 224 65 75 164 111 125 157 164 157 173 175 176
++189 200 189 210 216 207 188 196 234 211 221 218 211 221 218 211 221 218 188 196 234 211 221 218
++173 188 216 157 164 157 112 104 120 58 61 60 45 39 35 27 32 26 37 33 35 141 154 138
++188 189 180 212 206 189 212 206 189 215 195 173 212 206 189 210 216 207 229 221 240 221 241 240
++245 232 231 246 248 239 245 235 246 210 221 240 143 146 150 46 47 55 20 25 36 28 32 42
++39 43 42 35 34 35 37 33 35 28 30 29 28 30 29 23 19 15 23 20 27 21 19 21
++20 20 20 14 14 18 58 53 60 143 146 150 122 133 132 104 108 124 112 124 124 104 108 124
++141 138 138 143 151 181 163 147 193 163 147 193 104 108 124 96 81 123 131 128 178 143 146 150
++143 151 181 173 175 176 166 181 211 166 181 211 104 108 124 86 83 83 122 133 132 114 99 97
++242 198 175 240 189 188 216 172 134 164 133 127 137 117 96 141 132 131 188 147 163 187 177 178
++173 175 176 173 175 176 58 53 60 39 37 42 39 37 42 28 32 42 28 26 35 21 29 29
++23 20 27 20 28 24 23 20 27 23 20 27 20 28 24 23 20 27 23 20 27 28 30 29
++23 20 27 28 30 29 28 26 35 28 30 29 28 30 29 21 19 21 28 30 29 28 30 29
++28 30 29 68 75 77 28 30 29 28 30 29 103 106 97 112 124 124 210 216 207 246 248 239
++221 241 240 246 248 239 238 233 218 221 241 240 246 248 239 245 232 231 221 241 240 246 248 239
++245 232 231 221 241 240 163 148 159 157 164 157 143 146 150 123 109 109 114 99 97 137 117 96
++164 133 127 173 167 157 194 181 189 211 221 218 188 196 234 188 191 205 194 181 189 231 153 161
++224 65 75 246 122 125 224 65 75 246 122 125 224 65 75 246 122 125 246 122 125 224 65 75
++246 122 125 224 65 75 246 122 125 224 65 75 224 65 75 224 65 75 246 122 125 224 65 75
++223 122 101 216 122 126 184 128 126 165 108 102 162 123 29 181 55 69 154 59 17 159 63 71
++159 63 71 159 63 71 133 65 47 133 65 47 154 59 17 159 63 71 197 60 17 197 60 17
++224 65 75 224 65 75 224 65 75 213 123 36 224 65 75 159 63 71 141 132 131 141 138 138
++184 128 126 165 108 102 128 104 97 137 117 96 141 138 138 143 146 150 173 175 176 203 196 201
++189 200 189 187 177 178 141 138 138 123 133 112 122 113 129 123 109 109 123 109 109 141 108 110
++141 108 110 104 88 73 88 79 65 75 64 67 71 59 54 71 59 54 105 79 65 240 189 188
++238 233 218 240 208 188 238 233 218 211 221 218 141 138 138 61 60 67 87 76 74 194 181 189
++103 106 97 103 106 97 88 79 65 68 64 51 71 59 54 74 57 60 71 59 54 88 79 65
++104 88 73 188 172 163 211 221 218 229 221 240 211 221 218 211 221 218 225 201 230 238 233 218
++211 221 218 211 221 218 225 201 230 211 221 218 211 221 218 225 201 230 211 221 218 189 200 189
++188 189 180 188 189 180 187 177 178 189 200 189 189 200 189 203 196 201 189 200 189 203 196 201
++189 200 189 203 196 201 203 196 201 203 196 201 189 200 189 210 216 207 203 196 201 189 200 189
++189 200 189 189 200 189 188 189 180 188 189 180 188 189 180 188 189 175 173 175 176 173 175 176
++157 164 157 157 164 157 163 158 149 143 146 150 141 138 138 141 132 131 112 124 124 114 121 97
++112 104 120 56 54 51 41 38 42 35 34 35 37 33 35 31 42 35 35 34 35 35 34 35
++32 31 35 28 30 29 35 34 35 28 30 29 32 31 35 28 30 29 32 31 35 28 30 29
++23 20 27 28 30 29 28 26 35 28 26 35 27 32 26 23 20 27 27 32 26 23 20 27
++27 32 26 28 30 29 23 20 27 23 20 27 28 30 29 23 20 27 21 19 21 27 32 26
++21 19 21 21 19 21 21 19 21 23 20 27 20 28 24 20 20 20 20 28 24 23 20 27
++21 19 21 21 19 21 23 20 27 21 19 21 23 20 27 20 28 24 21 19 21 23 20 27
++
++137 117 96 141 108 110 141 128 110 141 128 110 164 133 127 164 145 137 188 177 159 187 177 178
++187 177 178 231 153 161 246 122 125 224 65 75 224 65 75 159 63 71 141 139 118 173 175 176
++173 175 176 173 188 216 210 216 207 188 191 205 188 196 234 211 221 218 211 221 218 188 191 205
++210 216 207 173 175 176 122 133 132 68 75 77 41 38 42 27 32 26 27 32 26 173 167 157
++210 216 207 210 216 207 212 206 189 215 197 156 215 195 173 229 200 201 235 233 206 229 200 201
++238 233 218 235 233 206 246 248 239 173 175 176 39 37 42 28 32 42 28 26 35 39 37 42
++41 38 42 39 43 42 33 35 35 28 30 29 23 20 27 23 19 15 23 19 15 20 20 20
++15 15 26 68 74 109 141 138 138 131 128 178 143 146 150 143 151 181 143 151 181 143 151 181
++143 151 181 173 175 176 182 181 190 112 124 124 83 103 97 104 108 124 122 133 132 143 146 150
++163 147 193 166 181 211 143 151 181 122 133 132 20 25 36 15 15 26 68 75 77 122 113 129
++194 181 189 210 180 161 164 145 120 113 97 77 74 57 60 103 106 97 141 132 131 164 142 149
++141 132 131 114 99 97 28 32 42 39 37 42 39 37 42 28 32 42 28 30 29 20 25 36
++21 29 29 21 29 29 21 29 29 18 29 26 18 29 26 21 29 29 21 29 29 23 20 27
++21 29 29 23 20 27 21 29 29 21 29 29 28 26 35 28 30 29 28 26 35 28 30 29
++32 31 35 58 61 60 61 60 67 28 30 29 112 104 120 123 133 112 238 233 218 245 235 246
++245 232 231 246 248 239 246 248 239 245 232 231 221 241 240 246 248 239 245 232 231 246 248 239
++238 233 218 221 241 240 173 175 176 122 113 129 86 83 83 87 76 74 134 98 86 141 108 110
++164 133 127 165 108 102 141 128 110 164 145 137 188 172 163 210 216 207 182 181 190 216 122 126
++246 122 125 224 65 75 246 122 125 246 122 125 246 122 125 246 122 125 224 65 75 246 122 125
++224 65 75 224 65 75 224 65 75 224 65 75 224 65 75 246 122 125 224 65 75 246 122 125
++223 122 101 216 122 126 163 158 149 141 108 110 99 61 48 88 79 65 104 74 73 71 59 54
++88 79 65 74 57 60 88 79 65 74 57 60 74 57 60 68 50 43 64 57 60 75 64 67
++74 57 60 99 61 48 99 61 48 99 61 48 88 79 65 114 99 97 141 139 118 164 133 127
++191 160 135 184 128 126 164 145 137 173 175 176 188 189 180 189 200 189 203 196 201 210 216 207
++210 216 207 182 181 190 141 138 138 122 113 129 123 109 109 123 133 112 123 109 109 141 128 110
++141 108 110 113 97 77 74 57 60 71 59 54 75 64 67 61 60 67 134 98 86 242 198 157
++238 233 218 245 232 231 240 208 188 238 233 218 86 83 83 75 64 67 103 106 97 163 158 149
++99 96 86 99 96 86 68 68 60 71 59 54 75 64 67 56 54 51 68 68 60 75 64 67
++143 146 150 203 196 201 211 221 218 211 221 218 229 221 240 211 221 218 229 221 240 211 221 218
++225 201 230 238 233 218 211 221 218 211 221 218 229 221 240 211 221 218 211 221 218 203 196 201
++173 175 176 163 158 149 157 164 157 173 167 157 173 167 157 173 175 176 173 175 176 173 167 157
++173 175 176 173 183 156 173 175 176 173 183 156 173 175 176 173 175 176 173 175 176 173 175 176
++173 167 157 173 175 176 173 175 176 173 167 157 173 175 176 157 164 157 173 167 157 157 164 157
++163 158 149 143 146 150 141 138 138 141 138 138 141 132 131 141 138 138 112 124 124 123 109 109
++103 106 97 57 59 55 39 37 42 37 33 35 41 33 22 39 37 42 46 47 55 27 32 26
++37 33 35 39 37 42 37 33 35 39 28 30 39 28 30 28 30 29 27 32 26 28 26 35
++28 26 35 28 30 29 28 26 35 28 30 29 28 26 35 28 26 35 28 26 35 28 30 29
++28 26 35 23 20 27 27 32 26 20 28 24 21 19 21 21 19 21 20 28 24 21 19 21
++23 20 27 27 32 26 21 19 21 20 28 24 21 19 21 21 19 21 21 19 21 20 28 24
++21 19 21 20 28 24 23 20 27 20 28 24 21 19 21 23 20 27 21 19 21 20 28 24
++
++114 99 97 128 104 97 141 128 110 141 128 110 141 128 110 141 139 118 164 145 137 173 167 157
++188 172 163 231 153 161 246 122 125 246 122 125 224 65 75 159 63 71 141 128 110 143 151 181
++173 175 176 189 200 189 173 188 216 211 221 218 211 221 218 189 200 189 188 196 234 211 221 218
++188 191 205 173 175 176 122 133 132 68 75 77 45 39 35 27 32 26 31 42 35 173 175 176
++210 216 207 235 233 206 212 206 189 215 195 173 215 195 173 229 200 201 229 200 201 210 216 207
++173 183 156 188 189 175 141 154 138 39 43 42 28 30 29 30 34 36 28 26 35 39 37 42
++33 35 35 35 34 35 27 32 26 23 20 27 23 19 15 20 28 24 17 19 20 39 37 42
++122 113 129 143 151 181 122 133 132 122 133 132 143 151 181 143 151 181 173 175 176 182 181 190
++163 147 193 143 151 181 122 133 132 83 103 97 96 81 123 122 133 132 143 151 181 173 175 176
++143 151 181 143 151 181 157 164 157 131 128 178 75 110 124 122 113 129 35 32 58 143 146 150
++163 148 159 164 145 137 141 128 110 104 88 73 68 64 51 75 64 67 99 85 89 123 109 109
++141 128 110 88 79 65 28 32 42 39 37 42 37 33 35 32 31 35 28 26 35 21 29 29
++23 20 27 21 29 29 21 29 29 21 19 27 21 29 29 21 29 29 21 29 29 28 26 35
++21 29 29 21 29 29 23 20 27 20 28 24 28 26 35 28 30 29 28 26 35 28 30 29
++28 30 29 28 26 35 103 106 97 28 30 29 99 96 86 122 113 129 221 241 240 246 248 239
++246 248 239 246 248 239 221 241 240 246 248 239 238 233 218 245 232 231 221 241 240 246 248 239
++221 241 240 229 221 240 141 138 138 122 113 129 114 99 97 87 76 74 113 97 77 165 108 102
++141 128 110 165 137 101 164 133 127 164 133 127 164 111 125 164 142 149 182 181 190 246 122 125
++224 65 75 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 224 65 75
++246 122 125 224 65 75 224 65 75 224 65 75 246 122 125 224 65 75 246 122 125 246 122 125
++246 122 125 206 156 159 188 172 163 141 138 138 103 81 83 104 74 73 99 61 48 74 57 60
++88 79 65 75 64 67 87 76 74 75 64 67 74 57 60 74 57 60 75 64 67 74 57 60
++88 79 65 75 64 67 74 57 60 73 50 50 75 64 67 114 99 97 141 132 131 141 132 131
++164 133 127 164 145 137 188 172 163 203 196 201 210 216 207 203 196 201 210 216 207 210 216 207
++210 216 207 182 181 190 141 138 138 141 128 110 112 124 124 123 109 109 123 109 109 123 109 109
++143 103 96 103 81 83 88 79 65 68 69 55 74 57 60 64 57 60 213 123 36 235 170 109
++236 180 161 242 198 157 240 208 188 240 208 188 188 147 163 74 57 60 141 138 138 141 138 138
++103 106 97 68 68 60 68 68 60 57 45 51 99 96 86 68 68 60 68 64 51 189 200 189
++188 189 180 173 175 176 203 196 201 210 216 207 210 216 207 225 201 230 211 221 218 211 221 218
++211 221 218 211 221 218 211 221 218 225 201 230 211 221 218 210 216 207 225 201 230 211 221 218
++163 148 159 103 106 97 103 106 97 103 106 97 103 106 97 103 106 97 103 106 97 103 106 97
++103 106 97 103 106 97 114 121 97 112 104 120 114 121 97 123 109 109 123 133 112 123 109 109
++112 124 124 114 121 97 123 109 109 112 124 124 114 121 97 112 104 120 114 121 97 123 109 109
++103 106 97 103 106 97 103 106 97 103 106 97 83 103 97 99 96 86 99 96 86 86 83 83
++68 75 77 46 47 45 33 35 35 39 37 42 30 34 36 33 35 35 28 30 29 37 33 35
++27 32 26 27 32 26 28 30 29 28 30 29 28 30 29 32 26 35 28 30 29 28 26 35
++28 30 29 28 26 35 28 30 29 28 26 35 28 26 35 28 30 29 28 26 35 28 26 35
++28 30 29 27 32 26 23 20 27 28 30 29 21 19 21 27 32 26 21 19 21 23 20 27
++20 28 24 21 19 21 23 20 27 20 20 20 23 20 27 21 19 21 20 28 24 21 19 21
++21 19 21 23 20 27 23 20 27 21 19 21 23 20 27 20 28 24 23 20 27 23 20 27
++
++88 79 65 113 97 77 123 109 109 141 128 110 141 128 110 141 128 110 164 133 127 164 145 137
++173 167 157 188 172 163 228 160 135 223 122 101 224 65 75 224 65 75 159 63 71 159 178 157
++182 181 190 189 200 189 188 196 234 210 216 207 188 196 234 211 221 218 211 221 218 211 221 218
++173 188 216 173 175 176 122 133 132 71 81 67 56 54 51 46 47 45 42 59 47 188 189 175
++211 221 218 235 233 206 212 206 189 212 206 189 212 206 189 235 233 206 235 233 206 210 216 207
++141 139 118 122 133 132 45 39 35 33 35 35 33 35 35 32 31 35 35 34 35 32 31 35
++35 34 35 28 30 29 20 28 24 23 20 27 27 32 26 14 14 18 39 37 42 143 151 181
++143 151 181 141 138 138 131 128 178 143 146 150 131 128 178 173 175 176 166 181 211 143 151 181
++122 133 132 112 124 124 104 108 124 96 81 123 112 124 124 143 146 150 143 146 150 131 128 178
++143 146 150 143 151 181 143 146 150 143 151 181 143 146 150 143 151 181 61 60 67 131 128 178
++141 138 138 141 132 131 114 99 97 87 76 74 68 67 72 58 61 60 57 59 55 113 97 77
++191 160 135 88 79 65 37 33 35 28 32 42 35 34 35 32 31 35 21 29 29 28 26 35
++21 29 29 20 25 36 21 19 27 21 29 29 21 29 29 21 29 29 21 29 29 21 29 29
++21 29 29 28 26 35 28 30 29 28 30 29 28 26 35 28 30 29 28 26 35 28 30 29
++28 30 29 21 29 29 68 75 77 58 53 60 86 83 83 163 148 159 246 248 239 246 248 239
++221 241 240 245 232 231 246 248 239 245 232 231 221 241 240 246 248 239 246 248 239 245 232 231
++238 233 218 211 221 218 143 146 150 173 175 176 143 146 150 103 81 83 103 81 83 137 117 96
++165 108 102 164 133 127 164 111 125 164 145 120 165 137 101 133 78 94 141 132 131 246 122 125
++246 122 125 224 65 75 246 122 125 246 122 125 246 122 125 246 122 125 224 65 75 246 122 125
++224 65 75 224 65 75 223 122 101 224 65 75 246 122 125 246 122 125 223 122 101 246 122 125
++246 122 125 210 180 161 194 181 189 173 167 157 128 104 97 88 79 65 75 64 67 99 61 48
++75 64 67 75 64 67 87 76 74 87 76 74 75 64 67 75 64 67 68 68 60 75 64 67
++75 64 67 75 64 67 71 59 54 73 50 50 88 79 65 123 109 109 141 138 138 141 128 110
++141 128 110 164 145 137 182 181 190 203 196 201 210 216 207 210 216 207 211 221 218 203 196 201
++210 216 207 173 175 176 141 138 138 122 113 129 123 109 109 123 109 109 123 109 109 141 128 110
++141 108 110 104 88 73 75 64 67 74 57 60 74 57 60 74 57 60 224 65 75 247 185 70
++247 185 70 247 185 70 235 170 109 242 198 157 242 198 157 184 123 101 114 99 97 112 104 120
++87 76 74 141 128 110 103 117 86 68 50 43 56 54 51 56 54 51 104 88 73 210 216 207
++210 216 207 210 216 207 164 142 149 173 167 157 210 216 207 211 221 218 210 216 207 225 201 230
++211 221 218 225 201 230 211 221 218 211 221 218 211 221 218 141 132 131 211 221 218 211 221 218
++188 191 205 99 96 86 86 83 83 75 83 72 75 83 72 68 67 72 75 83 72 86 83 83
++75 83 72 68 67 72 68 67 72 68 68 60 68 68 60 68 67 72 68 68 60 68 68 60
++68 68 60 68 68 60 58 61 60 57 59 55 58 61 60 68 68 60 58 61 60 58 61 60
++68 68 60 58 61 60 57 59 55 57 59 55 68 68 60 57 59 55 46 47 55 46 47 55
++57 59 55 31 42 35 45 49 35 27 32 26 31 42 35 27 32 26 45 39 35 30 34 36
++27 32 26 28 30 29 28 30 29 31 42 35 32 31 35 28 30 29 27 32 26 28 30 29
++28 30 29 28 30 29 28 30 29 28 30 29 28 26 35 28 26 35 28 30 29 28 26 35
++28 30 29 23 20 27 23 20 27 20 28 24 23 20 27 23 20 27 23 20 27 20 28 24
++23 19 15 28 30 29 20 20 20 20 28 24 23 19 15 20 28 24 21 19 21 23 20 27
++20 28 24 21 19 21 20 28 24 23 20 27 21 19 21 23 20 27 20 20 20 20 28 24
++
++88 79 65 88 79 65 113 97 77 128 104 97 141 108 110 137 117 96 141 128 110 141 139 118
++163 158 149 188 172 163 206 156 159 246 122 125 224 65 75 224 65 75 159 63 71 141 154 138
++166 181 211 189 200 189 211 221 218 173 188 216 211 221 218 173 188 216 211 221 218 188 196 234
++210 216 207 173 175 176 114 121 97 86 83 83 68 67 72 68 67 72 86 83 83 189 200 189
++238 233 218 211 221 218 238 233 218 212 206 189 235 233 206 238 233 218 238 233 218 238 233 218
++188 189 180 157 164 157 30 34 36 28 26 35 32 31 35 28 30 29 28 30 29 28 30 29
++28 30 29 28 30 29 23 20 27 17 19 20 20 20 20 96 81 123 182 181 190 166 181 211
++143 146 150 131 128 178 122 133 132 122 133 132 143 151 181 173 175 176 143 151 181 143 146 150
++143 151 181 131 128 178 86 83 83 104 108 124 131 128 178 122 133 132 143 146 150 143 146 150
++143 151 181 143 151 181 143 146 150 143 151 181 143 146 150 58 53 60 35 32 58 122 133 132
++131 128 178 86 83 83 99 85 89 86 83 83 68 75 77 61 60 67 68 64 51 128 104 97
++210 180 161 99 61 48 28 26 35 30 34 36 33 35 35 32 31 35 21 29 29 28 26 35
++21 29 29 21 29 29 18 29 26 28 26 35 21 29 29 28 26 35 21 29 29 28 26 35
++21 29 29 21 29 29 21 29 29 21 29 29 28 26 35 21 29 29 28 26 35 28 30 29
++28 30 29 28 26 35 28 26 35 68 75 77 75 83 72 211 221 218 246 248 239 245 232 231
++246 248 239 246 248 239 245 232 231 221 241 240 245 232 231 221 241 240 245 232 231 246 248 239
++221 241 240 246 248 239 203 196 201 182 181 190 173 167 157 123 109 109 104 74 73 137 117 96
++164 133 127 165 137 101 164 133 127 164 133 127 141 128 110 165 108 102 133 69 69 246 122 125
++246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 224 65 75
++246 122 125 224 65 75 224 65 75 223 122 101 224 65 75 246 122 125 224 65 75 246 122 125
++246 122 125 240 189 188 210 216 207 173 175 176 141 139 118 104 74 73 88 79 65 75 64 67
++75 64 67 75 64 67 75 64 67 75 64 67 75 64 67 75 64 67 75 64 67 68 68 60
++75 64 67 68 68 60 71 59 54 68 64 51 86 83 83 122 113 129 141 138 138 122 133 132
++141 132 131 157 164 157 189 200 189 203 196 201 211 221 218 203 196 201 211 221 218 210 216 207
++210 216 207 173 175 176 141 132 131 122 133 132 123 109 109 123 133 112 123 109 109 123 109 109
++128 104 97 104 74 73 88 79 65 75 64 67 68 68 60 99 61 48 212 122 83 212 122 83
++247 185 70 212 122 83 247 185 70 247 185 70 247 185 70 235 170 109 133 65 47 128 104 97
++114 121 97 173 167 157 163 158 149 114 121 97 68 50 43 49 43 41 123 133 112 210 216 207
++210 216 207 210 216 207 210 216 207 163 148 159 141 138 138 189 200 189 225 201 230 211 221 218
++211 221 218 211 221 218 225 201 230 211 221 218 225 201 230 143 146 150 163 148 159 211 221 218
++211 221 218 163 148 159 141 154 138 141 138 138 141 132 131 141 139 118 122 113 129 123 133 112
++103 106 97 103 106 97 103 106 97 86 83 83 99 96 86 86 83 83 86 83 83 75 83 72
++75 83 72 71 81 67 68 68 60 68 68 60 68 68 60 68 68 60 57 59 55 57 59 55
++57 59 55 57 59 55 56 54 51 68 68 60 68 75 77 46 47 55 46 47 55 46 47 45
++57 45 51 46 47 55 58 53 60 46 47 45 45 49 35 68 72 23 45 49 35 41 38 42
++35 34 35 39 37 42 32 31 35 27 32 26 37 33 35 28 32 42 39 20 27 28 30 29
++28 30 29 28 30 29 28 30 29 28 30 29 28 26 35 28 30 29 28 26 35 28 30 29
++28 30 29 28 30 29 23 20 27 23 20 27 23 20 27 21 19 21 21 19 21 27 32 26
++23 20 27 21 19 21 23 20 27 21 19 21 21 19 21 21 19 21 23 20 27 21 19 21
++21 19 21 23 20 27 21 19 21 20 28 24 23 20 27 20 28 24 23 20 27 23 20 27
++
++88 79 65 88 79 65 88 79 65 104 88 73 128 104 97 137 117 96 128 104 97 137 117 96
++141 154 138 173 167 157 210 180 161 231 153 161 246 122 125 224 65 75 159 63 71 141 138 138
++173 175 176 189 200 189 188 196 234 211 221 218 211 221 218 173 188 216 211 221 218 211 221 218
++189 200 189 166 181 211 112 124 124 99 96 86 86 83 83 83 103 97 112 104 120 189 200 189
++211 221 218 246 248 239 238 233 218 238 233 218 238 233 218 238 233 218 245 235 246 221 241 240
++122 133 132 203 196 201 83 103 97 20 25 36 32 31 35 28 30 29 41 33 22 28 30 29
++21 19 21 21 19 27 14 14 18 39 37 42 143 151 181 188 191 205 173 188 216 166 181 211
++143 146 150 122 133 132 131 128 178 131 128 178 143 151 181 143 151 181 143 151 181 143 151 181
++188 191 205 104 108 124 104 108 124 122 133 132 122 133 132 131 128 178 122 133 132 131 128 178
++163 148 159 122 133 132 143 151 181 143 151 181 143 146 150 45 62 74 46 47 55 68 75 77
++143 151 181 86 83 83 112 104 120 103 106 97 86 83 83 71 81 67 68 64 51 137 117 96
++210 180 161 104 74 73 20 25 36 20 25 36 30 34 36 28 26 35 28 26 35 28 26 35
++21 29 29 20 25 36 28 30 29 21 29 29 21 29 29 28 26 35 21 29 29 28 26 35
++21 29 29 28 26 35 20 28 24 21 29 29 23 20 27 28 30 29 28 26 35 28 30 29
++32 31 35 21 29 29 21 29 29 68 75 77 68 67 72 245 232 231 221 241 240 246 248 239
++221 241 240 246 248 239 245 232 231 246 248 239 245 232 231 246 248 239 246 248 239 221 241 240
++245 232 231 245 232 231 246 248 239 246 248 239 229 221 240 173 175 176 68 69 55 143 103 96
++141 128 110 164 111 125 164 133 127 165 137 101 141 108 110 134 98 86 134 98 86 246 122 125
++224 65 75 246 122 125 224 65 75 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125
++224 65 75 246 122 125 224 65 75 224 65 75 246 122 125 246 122 125 246 122 125 246 122 125
++246 122 125 240 189 188 203 196 201 189 200 189 163 158 149 114 99 97 88 79 65 74 57 60
++75 64 67 75 64 67 87 76 74 87 76 74 75 64 67 75 64 67 75 64 67 75 64 67
++75 64 67 68 68 60 64 57 60 64 57 60 99 85 89 141 132 131 141 138 138 141 132 131
++141 132 131 173 175 176 203 196 201 188 191 205 210 216 207 203 196 201 211 221 218 203 196 201
++210 216 207 173 175 176 122 113 129 123 109 109 123 109 109 123 109 109 123 109 109 141 108 110
++128 104 97 104 74 73 75 64 67 68 69 55 74 57 60 99 61 48 212 122 83 247 185 70
++247 185 70 247 185 70 213 123 36 247 185 70 213 123 36 247 185 70 159 63 71 113 97 77
++137 117 96 188 177 159 173 183 156 173 167 157 68 64 51 68 64 51 141 128 110 210 216 207
++229 200 201 211 221 218 188 189 180 189 200 189 187 177 178 143 146 150 203 196 201 211 221 218
++225 201 230 211 221 218 211 221 218 211 221 218 211 221 218 211 221 218 122 113 129 211 221 218
++225 201 230 203 196 201 203 196 201 189 200 189 189 200 189 189 200 189 189 200 189 188 189 180
++187 177 178 173 167 157 157 164 157 173 167 157 157 164 157 141 154 138 141 138 138 141 132 131
++123 133 112 122 113 129 123 109 109 103 106 97 103 106 97 86 83 83 86 83 83 75 83 72
++68 68 60 68 68 60 68 64 51 86 83 83 86 83 83 45 39 35 99 79 28 113 97 36
++68 72 23 68 69 47 58 53 60 58 53 60 35 34 35 113 97 36 113 97 36 45 49 35
++45 30 35 41 50 16 68 50 20 113 97 36 99 79 28 13 14 11 39 37 42 28 30 29
++23 20 27 28 30 29 28 30 29 28 30 29 28 26 35 28 30 29 28 30 29 28 30 29
++23 20 27 28 30 29 23 20 27 20 28 24 23 20 27 23 20 27 23 20 27 20 20 20
++21 19 21 27 32 26 21 19 21 20 28 24 23 20 27 20 28 24 23 19 15 20 28 24
++21 19 21 23 20 27 20 28 24 23 20 27 21 19 21 23 20 27 21 19 21 20 28 24
++
++103 81 83 99 79 59 88 79 65 105 79 65 113 97 77 114 121 97 128 104 97 128 104 97
++141 139 118 188 172 163 187 177 178 236 180 161 228 160 135 228 160 135 184 128 126 122 133 132
++159 178 157 173 188 216 189 200 189 211 221 218 173 188 216 211 221 218 211 221 218 211 221 218
++211 221 218 173 175 176 123 133 112 83 103 97 86 83 83 103 106 97 103 106 97 189 200 189
++238 233 218 221 241 240 246 248 239 245 232 231 221 241 240 246 248 239 211 221 218 112 104 120
++21 29 29 68 75 77 188 191 205 39 37 42 23 20 27 39 28 30 23 19 15 23 20 27
++20 20 20 21 19 21 20 25 36 122 133 132 188 191 205 166 181 211 166 181 211 143 151 181
++131 128 178 91 128 178 143 146 150 143 151 181 143 151 181 143 151 181 157 164 157 166 181 211
++166 181 211 103 106 97 112 124 124 131 128 178 122 133 132 141 138 138 131 128 178 143 146 150
++131 128 178 143 146 150 143 151 181 163 148 159 143 151 181 131 128 178 143 146 150 58 53 60
++131 128 178 86 83 83 123 109 109 112 104 120 103 106 97 86 83 83 99 79 59 137 117 96
++236 180 161 104 74 73 28 32 42 20 25 36 30 34 36 32 31 35 21 29 29 28 26 35
++21 29 29 21 29 29 28 26 35 23 20 27 28 26 35 21 29 29 28 26 35 21 29 29
++28 26 35 28 30 29 28 30 29 28 30 29 28 26 35 21 29 29 28 30 29 28 30 29
++30 34 36 28 26 35 21 29 29 86 83 83 12 22 12 203 196 201 246 248 239 246 248 239
++245 232 231 246 248 239 246 248 239 221 241 240 245 232 231 221 241 240 246 248 239 245 232 231
++246 248 239 221 241 240 246 248 239 221 241 240 246 248 239 245 232 231 113 97 77 128 104 97
++143 103 96 164 133 127 184 128 126 164 133 127 137 117 96 133 69 69 165 108 102 224 65 75
++246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 224 65 75
++246 122 125 224 65 75 224 65 75 246 122 125 224 65 75 246 122 125 224 65 75 246 122 125
++246 122 125 240 189 188 210 216 207 203 196 201 173 167 157 114 99 97 88 79 65 75 64 67
++75 64 67 75 64 67 75 64 67 75 64 67 75 64 67 68 68 60 74 57 60 74 57 60
++75 64 67 71 59 54 64 57 60 68 64 51 99 85 89 141 132 131 164 142 149 141 132 131
++141 132 131 187 177 178 203 196 201 203 196 201 211 221 218 203 196 201 210 216 207 211 221 218
++203 196 201 173 167 157 122 133 132 123 109 109 112 124 124 123 109 109 123 109 109 123 109 109
++128 104 97 87 76 74 88 79 65 68 68 60 61 60 67 133 65 47 213 123 36 247 185 70
++212 122 83 247 185 70 247 185 70 223 122 101 247 185 70 247 185 70 212 122 83 165 108 102
++141 139 118 164 145 120 166 168 134 173 167 157 99 96 86 123 109 109 141 138 138 210 216 207
++210 216 207 210 216 207 210 216 207 188 189 180 211 221 218 173 167 157 187 177 178 210 216 207
++211 221 218 210 216 207 225 201 230 211 221 218 225 201 230 211 221 218 112 104 120 211 221 218
++211 221 218 210 216 207 211 221 218 210 216 207 210 216 207 210 216 207 203 196 201 210 216 207
++203 196 201 203 196 201 189 200 189 189 200 189 188 189 180 188 189 175 173 175 176 173 175 176
++173 167 157 173 167 157 157 164 157 141 154 138 141 138 138 141 132 131 123 133 112 123 109 109
++103 106 97 99 96 86 86 83 83 103 106 97 86 83 83 41 50 16 113 97 36 197 180 35
++117 142 36 99 79 28 57 45 51 45 39 35 23 19 15 117 142 36 162 123 29 68 50 20
++45 39 35 68 72 23 197 180 35 162 123 29 113 97 36 19 34 14 28 30 29 28 30 29
++28 30 29 28 30 29 23 20 27 28 30 29 28 30 29 28 26 35 23 20 27 28 30 29
++28 30 29 28 30 29 23 20 27 23 20 27 28 30 29 23 20 27 21 19 21 20 28 24
++23 20 27 21 19 21 27 32 26 21 19 21 21 19 21 21 19 21 23 20 27 21 19 21
++20 28 24 21 19 21 23 20 27 20 20 20 23 20 27 20 28 24 21 19 21 23 20 27
++
++137 117 96 113 97 77 105 79 65 104 88 73 104 88 73 113 97 77 104 88 73 113 97 77
++141 154 138 173 167 157 188 172 163 210 180 161 206 156 159 188 147 163 141 128 110 141 132 131
++173 175 176 189 200 189 210 221 240 173 188 216 211 221 218 173 188 216 211 221 218 188 196 234
++210 216 207 182 181 190 122 133 132 103 106 97 68 75 77 86 83 83 83 103 97 159 178 157
++211 221 218 245 232 231 246 248 239 246 248 239 246 248 239 143 146 150 28 32 42 30 34 36
++28 30 29 27 32 26 112 124 124 182 181 190 61 60 67 23 20 27 27 32 26 28 30 29
++14 14 18 61 60 67 143 151 181 188 191 205 166 181 211 182 181 190 166 181 211 143 151 181
++143 146 150 122 113 129 131 128 178 143 151 181 143 151 181 173 175 176 166 181 211 166 181 211
++122 113 129 104 108 124 141 138 138 143 146 150 122 113 129 131 128 178 143 146 150 143 151 181
++141 138 138 143 151 181 163 148 159 143 151 181 163 148 159 143 151 181 143 146 150 35 32 58
++122 133 132 68 75 77 103 106 97 157 164 157 141 154 138 141 128 110 114 99 97 164 145 120
++242 198 175 137 117 96 28 26 35 23 20 27 37 33 35 28 26 35 28 26 35 28 26 35
++28 26 35 28 26 35 28 30 29 28 30 29 28 26 35 23 20 27 21 29 29 28 26 35
++20 25 36 28 26 35 28 26 35 20 25 36 28 26 35 28 26 35 21 29 29 28 30 29
++28 30 29 28 30 29 21 29 29 68 75 77 17 19 20 122 133 132 246 248 239 245 235 246
++221 241 240 246 248 239 245 232 231 221 241 240 245 232 231 246 248 239 245 232 231 221 241 240
++246 248 239 245 232 231 221 241 240 246 248 239 246 248 239 246 248 239 123 133 112 128 104 97
++143 103 96 165 108 102 141 128 110 165 137 101 141 108 110 128 104 97 165 108 102 246 122 125
++224 65 75 246 122 125 246 122 125 246 122 125 246 122 125 224 65 75 246 122 125 246 122 125
++224 65 75 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125
++246 122 125 212 185 189 229 200 201 203 196 201 188 189 175 141 132 131 104 88 73 75 64 67
++74 57 60 75 64 67 75 64 67 87 76 74 75 64 67 75 64 67 75 64 67 68 67 72
++68 68 60 68 67 72 57 59 55 64 57 60 86 83 83 122 133 132 141 132 131 123 133 112
++141 138 138 188 189 180 188 191 205 189 200 189 188 191 205 203 196 201 210 216 207 203 196 201
++203 196 201 157 164 157 112 124 124 123 109 109 123 109 109 123 109 109 123 133 112 123 109 109
++103 81 83 88 79 65 74 57 60 68 68 60 64 57 60 99 61 48 223 122 101 247 185 70
++213 123 36 247 185 70 212 122 83 247 185 70 213 123 36 247 185 70 235 170 109 212 122 83
++166 168 134 164 145 120 135 123 86 141 128 110 137 117 96 118 123 77 141 128 110 212 206 189
++210 216 207 210 216 207 203 196 201 189 200 189 203 196 201 210 216 207 157 164 157 194 181 189
++211 221 218 210 216 207 211 221 218 210 216 207 211 221 218 229 221 240 86 83 83 210 216 207
++211 221 218 203 196 201 210 216 207 211 221 218 238 233 218 210 216 207 211 221 218 210 216 207
++210 216 207 210 216 207 210 216 207 210 216 207 203 196 201 210 216 207 203 196 201 189 200 189
++189 200 189 189 200 189 188 189 180 188 189 180 173 175 176 173 175 176 173 167 157 157 164 157
++143 146 150 143 146 150 122 133 132 112 124 124 105 79 65 113 97 36 68 72 23 117 142 36
++113 97 36 99 79 28 68 72 23 68 72 23 99 79 28 99 79 28 99 79 28 68 72 23
++68 72 23 99 79 28 113 97 36 113 97 36 41 50 16 99 79 28 68 50 20 23 20 27
++27 32 26 39 20 27 28 26 35 28 30 29 23 20 27 28 26 35 28 30 29 23 20 27
++28 26 35 23 20 27 23 20 27 20 28 24 23 20 27 20 28 24 23 20 27 23 20 27
++20 28 24 23 20 27 21 19 21 23 20 27 20 28 24 23 20 27 20 28 24 23 20 27
++23 20 27 23 20 27 20 28 24 23 20 27 20 20 20 23 20 27 23 20 27 20 28 24
++
++141 128 110 128 104 97 113 97 77 104 88 73 88 79 65 99 79 59 99 79 59 114 99 97
++163 158 149 188 172 163 188 172 163 210 180 161 188 172 163 163 158 149 141 132 131 112 124 124
++141 154 138 173 188 216 173 188 216 211 221 218 173 188 216 211 221 218 188 196 234 211 221 218
++211 221 218 182 181 190 122 133 132 86 83 83 68 75 77 68 75 77 86 83 83 141 154 138
++211 221 218 246 248 239 246 248 239 210 216 207 173 175 176 157 164 157 86 83 83 28 26 35
++28 30 29 21 19 15 27 32 26 123 109 109 141 138 138 23 20 27 21 19 21 14 14 18
++68 74 109 188 191 205 182 181 190 182 181 190 166 181 211 166 181 211 173 175 176 143 151 181
++131 128 178 122 133 132 143 146 150 143 151 181 163 147 193 166 181 211 173 188 216 143 151 181
++75 110 124 112 124 124 143 146 150 131 128 178 122 133 132 143 146 150 143 146 150 131 128 178
++143 146 150 143 151 181 143 151 181 143 151 181 131 128 178 86 83 83 46 47 55 39 43 42
++143 146 150 68 75 77 83 103 97 143 146 150 163 158 149 164 145 137 128 104 97 164 145 137
++242 198 175 188 177 159 39 28 30 21 29 29 28 30 29 21 29 29 28 30 29 28 26 35
++28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 30 29 28 26 35 23 20 27
++20 25 36 30 34 36 28 26 35 21 29 29 20 25 36 21 29 29 28 30 29 28 30 29
++28 30 29 30 34 36 21 19 27 68 75 77 28 30 29 46 47 55 246 248 239 246 248 239
++246 248 239 246 248 239 238 233 218 246 248 239 245 232 231 221 241 240 246 248 239 246 248 239
++245 232 231 221 241 240 246 248 239 246 248 239 221 241 240 246 248 239 164 145 137 128 104 97
++143 103 96 165 137 101 165 108 102 164 111 125 141 128 110 128 104 97 184 123 101 246 122 125
++224 65 75 246 122 125 224 65 75 246 122 125 246 122 125 246 122 125 246 122 125 246 122 125
++246 122 125 246 122 125 224 65 75 223 122 101 246 122 125 224 65 75 223 122 101 246 122 125
++236 180 161 212 185 189 212 206 189 203 196 201 189 200 189 163 158 149 114 99 97 88 79 65
++68 68 60 75 64 67 75 64 67 75 64 67 75 64 67 61 60 67 75 64 67 68 68 60
++68 67 72 64 57 60 64 57 60 56 54 51 87 76 74 103 106 97 112 104 120 123 109 109
++122 133 132 157 164 157 173 175 176 173 175 176 173 175 176 182 181 190 188 191 205 188 191 205
++189 200 189 141 138 138 123 109 109 114 121 97 123 109 109 123 109 109 123 109 109 114 99 97
++87 76 74 71 59 54 64 57 60 57 59 55 64 57 60 99 79 28 224 65 75 213 123 36
++212 122 83 213 123 36 247 185 70 235 170 109 235 170 109 223 122 101 247 185 70 223 122 101
++161 121 76 188 177 159 165 137 101 118 123 77 104 88 73 88 79 65 113 97 77 203 196 201
++210 216 207 210 216 207 203 196 201 189 200 189 212 206 189 210 216 207 203 196 201 173 175 176
++203 196 201 210 216 207 225 201 230 210 216 207 210 216 207 229 221 240 86 83 83 157 164 157
++225 201 230 210 221 240 203 196 201 210 216 207 210 216 207 211 221 218 210 216 207 210 216 207
++210 216 207 210 216 207 210 216 207 210 216 207 210 216 207 210 216 207 210 216 207 210 216 207
++203 196 201 203 196 201 189 200 189 189 200 189 188 189 180 188 189 180 188 191 205 173 175 176
++173 167 157 163 158 149 163 148 159 103 106 97 99 61 48 99 79 28 113 97 36 162 123 29
++162 123 29 154 59 17 154 59 17 175 13 17 154 59 17 154 14 17 154 59 17 154 59 17
++154 59 17 154 59 17 162 123 29 117 142 36 68 72 23 100 41 14 41 28 14 28 32 42
++28 32 42 23 20 27 19 34 14 28 26 35 28 26 35 28 30 29 23 20 27 28 30 29
++23 20 27 23 20 27 20 28 24 23 20 27 20 28 24 23 20 27 23 20 27 20 28 24
++23 20 27 23 20 27 23 20 27 21 19 21 23 20 27 21 19 21 23 20 27 21 19 21
++20 28 24 20 20 20 23 20 27 21 19 21 23 20 27 20 28 24 20 20 20 23 20 27
++
++141 108 110 128 104 97 113 97 77 105 79 65 88 79 65 74 57 60 88 79 65 99 96 86
++163 158 149 173 167 157 173 167 157 163 158 149 141 132 131 123 109 109 83 103 97 86 83 83
++143 146 150 121 182 205 211 221 218 173 188 216 211 221 218 173 188 216 211 221 218 211 221 218
++189 200 189 189 200 189 122 133 132 83 103 97 68 68 60 68 67 72 86 83 83 159 178 157
++211 221 218 246 248 239 203 196 201 83 103 97 39 37 42 157 164 157 143 151 181 39 43 42
++21 29 29 27 32 26 27 32 26 39 43 42 99 96 86 86 83 83 68 75 77 104 108 124
++188 191 205 188 196 234 188 191 205 166 181 211 166 181 211 182 181 190 163 147 193 143 151 181
++143 146 150 131 128 178 143 151 181 143 151 181 166 181 211 166 181 211 166 181 211 122 113 129
++104 108 124 131 128 178 131 128 178 122 133 132 91 128 178 143 146 150 143 151 181 122 133 132
++143 151 181 163 148 159 143 151 181 173 175 176 143 151 181 104 108 124 68 75 77 104 108 124
++131 128 178 122 133 132 131 128 178 173 175 176 164 142 149 141 128 110 99 96 86 164 145 120
++236 180 161 240 208 188 45 30 35 28 30 29 20 28 24 28 26 35 28 26 35 21 29 29
++20 25 36 28 26 35 28 26 35 28 30 29 28 26 35 28 26 35 21 29 29 20 25 36
++21 29 29 20 25 36 20 25 36 28 26 35 28 26 35 21 29 29 21 29 29 28 30 29
++27 32 26 21 29 29 30 34 36 61 60 67 27 32 26 33 35 35 189 200 189 246 248 239
++245 235 246 221 241 240 246 248 239 221 241 240 238 233 218 246 248 239 245 232 231 221 241 240
++246 248 239 238 233 218 221 241 240 245 232 231 246 248 239 246 248 239 164 142 149 113 97 77
++143 103 96 141 128 110 164 133 127 165 137 101 164 133 127 137 117 96 165 108 102 216 122 126
++246 122 125 224 65 75 246 122 125 224 65 75 246 122 125 246 122 125 246 122 125 224 65 75
++246 122 125 224 65 75 246 122 125 224 65 75 224 65 75 224 65 75 246 122 125 236 180 161
++240 208 188 229 200 201 210 216 207 210 216 207 203 196 201 173 175 176 141 128 110 87 76 74
++75 64 67 74 57 60 68 68 60 75 64 67 61 60 67 74 57 60 64 57 60 61 60 67
++75 64 67 64 57 60 57 59 55 57 45 51 56 54 51 64 57 60 75 64 67 86 83 83
++103 106 97 122 133 132 122 133 132 91 128 178 143 146 150 143 146 150 143 151 181 173 175 176
++157 164 157 112 124 124 103 106 97 103 106 97 112 124 124 123 109 109 114 99 97 103 81 83
++56 54 51 49 43 41 49 43 41 49 43 41 57 45 51 68 50 43 133 65 47 197 60 17
++212 122 83 213 123 36 246 122 125 236 180 161 236 180 161 235 170 109 235 170 109 228 160 135
++161 121 76 164 145 120 188 177 159 135 123 86 88 79 65 68 69 47 103 106 97 212 206 189
++210 216 207 210 216 207 203 196 201 189 200 189 203 196 201 189 200 189 189 200 189 188 189 180
++173 175 176 210 216 207 211 221 218 211 221 218 225 201 230 203 196 201 68 67 72 103 106 97
++229 221 240 211 221 218 210 216 207 203 196 201 225 201 230 210 216 207 210 216 207 210 216 207
++210 216 207 210 216 207 203 196 201 210 216 207 203 196 201 203 196 201 189 200 189 212 206 189
++189 200 189 189 200 189 189 200 189 188 189 180 188 189 180 188 189 180 173 175 176 173 175 176
++157 164 157 143 146 150 123 133 112 118 123 77 162 123 29 161 121 76 197 60 17 154 59 17
++175 13 17 175 13 17 154 14 17 154 14 17 154 14 17 175 13 17 175 13 17 154 14 17
++154 14 17 175 13 17 154 14 17 154 14 17 154 59 17 154 59 17 113 97 36 68 50 20
++41 33 22 27 32 26 20 28 24 21 29 29 28 30 29 23 20 27 23 20 27 28 26 35
++23 20 27 20 28 24 23 20 27 20 28 24 23 20 27 28 30 29 20 28 24 23 20 27
++23 20 27 20 28 24 21 19 21 23 20 27 20 28 24 23 20 27 21 19 21 20 28 24
++23 20 27 23 20 27 20 28 24 23 20 27 20 28 24 21 19 21 23 20 27 20 20 20
++
++141 128 110 128 104 97 113 97 77 99 79 59 68 69 47 68 50 43 68 64 51 99 96 86
++163 158 149 173 167 157 173 167 157 141 154 138 104 108 124 99 85 89 83 103 97 75 110 124
++143 151 181 189 200 189 121 182 205 211 221 218 173 188 216 211 221 218 173 188 216 211 221 218
++211 221 218 189 200 189 122 133 132 75 83 72 68 75 77 68 75 77 83 103 97 173 175 176
++238 233 218 188 191 205 83 103 97 61 60 67 21 19 27 143 146 150 122 133 132 46 47 55
++28 30 29 32 26 35 27 32 26 12 22 12 86 83 83 182 181 190 188 196 234 188 191 205
++173 188 216 188 191 205 182 181 190 166 181 211 182 181 190 166 181 211 173 175 176 143 151 181
++143 146 150 143 151 181 143 151 181 143 151 181 182 181 190 173 188 216 163 147 193 104 108 124
++112 124 124 143 146 150 131 128 178 122 133 132 122 113 129 143 146 150 131 128 178 143 146 150
++143 151 181 143 151 181 143 151 181 143 146 150 163 148 159 143 151 181 143 151 181 143 151 181
++131 128 178 131 128 178 143 151 181 143 146 150 141 132 131 137 117 96 104 88 73 114 99 97
++216 172 134 240 208 188 74 57 60 23 20 27 20 28 24 21 29 29 21 29 29 21 29 29
++23 20 27 21 29 29 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++20 25 36 23 20 27 21 29 29 20 25 36 28 26 35 28 26 35 21 29 29 21 29 29
++27 32 26 28 26 35 21 29 29 57 59 55 39 43 42 21 29 29 68 68 60 246 248 239
++245 232 231 246 248 239 245 232 231 245 232 231 245 232 231 221 241 240 246 248 239 245 232 231
++221 241 240 238 233 218 211 221 218 238 233 218 221 241 240 245 232 231 141 154 138 99 79 59
++165 108 102 143 103 96 164 133 127 165 108 102 164 133 127 164 133 127 164 111 125 184 123 101
++223 122 101 246 122 125 224 65 75 224 65 75 246 122 125 224 65 75 246 122 125 224 65 75
++224 65 75 224 65 75 224 65 75 224 65 75 181 55 69 181 55 69 223 122 101 229 200 201
++238 233 218 203 196 201 210 216 207 212 206 189 203 196 201 188 189 175 141 138 138 104 88 73
++75 64 67 64 57 60 61 60 67 64 57 60 68 68 60 64 57 60 68 68 60 64 57 60
++64 57 60 64 57 60 56 54 51 46 47 45 37 33 35 45 39 35 37 33 35 46 47 45
++61 60 67 75 110 124 104 108 124 112 124 124 75 110 124 75 110 124 122 133 132 143 146 150
++122 133 132 86 83 83 86 83 83 86 83 83 99 96 86 86 83 83 86 83 83 75 64 67
++45 39 35 45 39 35 45 39 35 45 39 35 45 39 35 28 32 42 41 33 22 99 36 46
++133 58 15 181 55 69 228 160 135 240 208 188 210 180 161 231 153 161 236 180 161 228 160 135
++210 180 161 114 121 97 99 79 59 141 128 110 141 128 110 173 167 157 188 189 175 210 216 207
++210 216 207 210 216 207 212 206 189 189 200 189 203 196 201 212 206 189 203 196 201 189 200 189
++157 164 157 173 175 176 203 196 201 210 216 207 211 221 218 122 133 132 68 67 72 68 75 77
++210 216 207 225 201 230 211 221 218 203 196 201 189 200 189 212 206 189 210 216 207 210 216 207
++203 196 201 203 196 201 212 206 189 203 196 201 212 206 189 189 200 189 203 196 201 189 200 189
++189 200 189 188 189 180 188 189 180 188 189 180 188 189 180 188 189 175 173 175 176 173 175 176
++122 133 132 117 142 36 212 122 83 162 123 29 175 13 17 197 60 17 159 26 46 197 60 17
++162 123 29 162 123 29 197 60 17 154 59 17 197 180 35 154 59 17 154 14 17 154 59 17
++154 59 17 154 14 17 154 14 17 133 23 15 175 13 17 154 14 17 154 14 17 154 59 17
++162 123 29 41 50 16 21 29 29 39 28 30 28 26 35 28 26 35 21 29 29 23 20 27
++23 20 27 23 20 27 28 30 29 23 20 27 20 28 24 23 20 27 23 20 27 20 28 24
++21 19 21 23 20 27 23 20 27 23 20 27 21 19 21 20 28 24 23 20 27 23 20 27
++21 19 21 23 20 27 21 19 21 23 20 27 21 19 21 23 20 27 21 19 21 21 19 21
++
++141 128 110 137 117 96 114 99 97 105 79 65 71 59 54 68 50 20 45 49 35 68 68 60
++123 133 112 163 158 149 163 158 149 141 138 138 103 106 97 83 103 97 83 103 97 122 133 132
++143 151 181 166 181 211 173 188 216 211 221 218 173 188 216 211 221 218 211 221 218 211 221 218
++211 221 218 166 181 211 141 154 138 68 75 77 68 75 77 71 81 67 86 83 83 157 164 157
++203 196 201 143 146 150 68 75 77 35 32 58 12 22 12 143 146 150 83 103 97 61 60 67
++32 31 35 23 20 27 23 20 27 123 109 109 188 191 205 166 181 211 188 191 205 166 181 211
++182 181 190 173 188 216 166 181 211 188 191 205 166 181 211 163 147 193 143 151 181 143 146 150
++131 128 178 122 133 132 143 151 181 143 151 181 173 188 216 166 181 211 143 146 150 75 110 124
++104 108 124 122 113 129 143 146 150 122 133 132 143 151 181 131 128 178 122 133 132 143 146 150
++143 151 181 163 148 159 143 151 181 143 151 181 143 151 181 143 151 181 173 175 176 143 151 181
++122 133 132 143 151 181 122 133 132 143 151 181 164 133 127 141 128 110 123 133 112 114 121 97
++184 128 126 236 180 161 143 103 96 20 28 24 21 19 15 17 19 20 20 28 24 28 26 35
++21 29 29 20 25 36 28 26 35 20 25 36 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 21 29 29 20 25 36 23 20 27 21 29 29 28 26 35 21 29 29 28 30 29
++21 29 29 28 30 29 21 29 29 30 34 36 68 75 77 33 35 35 28 30 29 122 133 132
++246 248 239 221 241 240 246 248 239 221 241 240 246 248 239 245 232 231 246 248 239 221 241 240
++238 233 218 211 221 218 210 216 207 203 196 201 210 216 207 210 216 207 163 158 149 88 79 65
++134 98 86 137 117 96 165 137 101 164 133 127 141 128 110 165 137 101 164 111 125 164 133 127
++165 108 102 224 65 75 181 55 69 224 65 75 224 65 75 224 65 75 224 65 75 224 65 75
++181 55 69 159 63 71 133 65 47 99 36 46 100 41 14 68 24 14 99 96 86 210 216 207
++211 221 218 210 216 207 210 216 207 203 196 201 210 216 207 188 189 180 163 158 149 99 85 89
++68 67 72 68 68 60 68 68 60 61 60 67 64 57 60 61 60 67 64 57 60 57 59 55
++64 57 60 57 59 55 56 54 51 46 47 45 39 28 30 35 34 35 39 28 30 45 39 35
++61 60 67 83 103 97 104 108 124 91 128 178 91 128 178 122 133 132 91 128 178 143 146 150
++75 110 124 58 61 60 56 54 51 57 59 55 68 68 60 68 69 55 71 59 54 56 54 51
++41 33 22 37 33 35 45 39 35 37 33 35 45 39 35 48 36 41 41 38 42 48 36 41
++57 45 51 71 59 54 191 160 135 238 233 218 189 200 189 189 200 189 212 185 189 188 189 175
++188 189 180 203 196 201 189 200 189 188 172 163 211 221 218 210 216 207 212 206 189 210 216 207
++210 216 207 210 216 207 188 189 180 189 200 189 210 216 207 189 200 189 203 196 201 188 189 180
++188 189 180 173 175 176 182 181 190 211 221 218 182 181 190 61 60 67 61 60 67 61 60 67
++173 167 157 211 221 218 210 216 207 212 206 189 187 177 178 173 175 176 187 177 178 173 175 176
++188 189 175 173 175 176 188 189 175 173 175 176 173 175 176 188 189 175 173 175 176 173 175 176
++173 175 176 173 175 176 173 175 176 173 175 176 173 167 157 173 175 176 143 146 150 137 139 97
++161 121 76 212 122 83 197 60 17 181 55 69 175 13 17 197 60 17 197 60 17 213 123 36
++154 59 17 154 59 17 175 13 17 154 59 17 162 123 29 154 59 17 175 13 17 162 123 29
++154 59 17 175 13 17 154 59 17 197 180 35 162 123 29 154 59 17 154 14 17 154 14 17
++133 23 15 154 59 17 113 97 36 68 50 20 21 29 29 23 20 27 23 20 27 23 20 27
++23 20 27 20 28 24 23 20 27 23 20 27 20 28 24 23 20 27 20 28 24 23 20 27
++23 20 27 20 28 24 21 19 21 23 20 27 21 19 21 23 20 27 21 19 21 20 28 24
++23 20 27 20 28 24 23 20 27 20 28 24 21 19 21 20 28 24 21 19 21 21 19 21
++
++137 117 96 128 104 97 137 117 96 113 97 77 71 59 54 56 54 51 46 47 45 46 47 45
++99 96 86 141 132 131 163 158 149 141 139 118 104 108 124 104 108 124 91 128 178 173 175 176
++121 182 205 173 188 216 173 188 216 173 188 216 211 221 218 211 221 218 173 188 216 211 221 218
++210 216 207 189 200 189 122 133 132 75 83 72 68 75 77 58 61 60 75 83 72 112 124 124
++143 146 150 68 75 77 45 62 74 31 42 35 39 43 42 173 175 176 64 57 60 21 19 15
++37 33 35 28 30 29 71 81 67 238 233 218 188 191 205 166 181 211 173 188 216 163 147 193
++182 181 190 173 188 216 188 191 205 188 191 205 188 172 163 188 172 163 143 151 181 131 128 178
++122 133 132 122 133 132 173 175 176 173 188 216 166 181 211 143 151 181 104 108 124 122 113 129
++122 113 129 143 146 150 131 128 178 131 128 178 143 151 181 143 151 181 143 146 150 131 128 178
++143 146 150 143 151 181 163 148 159 143 151 181 173 175 176 143 151 181 173 175 176 143 151 181
++104 108 124 112 124 124 104 108 124 143 151 181 163 148 159 188 172 163 188 189 180 182 181 190
++173 167 157 188 177 159 164 145 120 13 14 11 20 20 20 20 20 20 20 28 24 28 26 35
++32 31 35 28 30 29 21 29 29 20 28 24 21 29 29 21 29 29 28 30 29 27 32 26
++28 30 29 28 30 29 28 30 29 21 29 29 28 30 29 28 26 35 28 30 29 28 30 29
++28 30 29 21 29 29 28 30 29 28 30 29 28 30 29 68 67 72 39 43 42 68 75 77
++246 248 239 245 232 231 246 248 239 245 232 231 245 232 231 221 241 240 245 232 231 246 248 239
++245 232 231 210 216 207 188 189 180 188 189 175 188 189 175 188 189 175 187 177 178 68 64 51
++104 88 73 143 103 96 141 128 110 165 108 102 165 137 101 164 111 125 165 137 101 164 133 127
++184 128 126 133 69 69 100 41 14 133 65 47 133 28 45 99 36 46 99 61 48 99 61 48
++88 79 65 75 64 67 74 57 60 71 59 54 45 39 35 39 28 30 87 76 74 203 196 201
++210 216 207 203 196 201 210 216 207 210 216 207 203 196 201 189 200 189 157 164 157 103 106 97
++75 64 67 68 68 60 75 64 67 64 57 60 64 57 60 64 57 60 58 61 60 64 57 60
++56 54 51 58 53 60 56 54 51 41 38 42 33 35 35 41 33 22 39 28 30 49 43 41
++68 67 72 75 110 124 91 128 178 112 124 124 122 133 132 91 128 178 143 151 181 143 151 181
++104 108 124 46 47 55 31 42 35 31 42 35 33 35 35 39 37 42 49 43 41 41 38 42
++37 33 35 45 39 35 41 38 42 45 39 35 41 38 42 45 39 35 37 33 35 49 43 41
++68 69 55 75 64 67 188 189 180 238 233 218 210 216 207 211 221 218 210 216 207 210 216 207
++210 216 207 212 206 189 211 221 218 210 216 207 211 221 218 210 216 207 203 196 201 210 216 207
++210 216 207 210 216 207 189 200 189 189 200 189 203 196 201 212 206 189 203 196 201 188 189 180
++188 189 180 203 196 201 157 164 157 203 196 201 143 146 150 68 67 72 57 59 55 141 132 131
++235 233 206 210 216 207 210 216 207 203 196 201 189 200 189 141 138 138 112 124 124 123 133 112
++123 133 112 123 133 112 122 133 132 141 138 138 123 133 112 141 138 138 141 138 138 141 139 118
++137 139 97 141 132 131 122 133 132 141 139 118 122 133 132 104 108 124 113 97 36 213 123 36
++181 55 69 197 60 17 181 55 69 213 123 36 181 55 69 159 26 46 213 123 36 162 123 29
++159 26 46 175 13 17 175 13 17 133 58 15 197 180 35 162 123 29 162 123 29 197 180 35
++154 59 17 154 14 17 162 123 29 162 123 29 154 14 17 154 14 17 175 13 17 133 23 15
++175 13 17 154 14 17 154 14 17 162 123 29 68 72 23 23 19 15 21 19 21 28 26 35
++17 19 20 28 26 35 18 29 26 18 29 26 23 20 27 28 26 35 23 20 27 27 32 26
++23 19 15 23 20 27 21 19 21 20 28 24 21 19 21 20 28 24 23 20 27 23 20 27
++20 20 20 23 20 27 23 20 27 21 19 21 23 20 27 23 20 27 21 19 21 21 19 21
++
++137 117 96 123 109 109 137 117 96 113 97 77 99 79 59 56 54 51 46 47 45 46 47 45
++75 83 72 123 133 112 164 145 137 141 138 138 122 133 132 122 133 132 143 151 181 166 181 211
++173 188 216 189 200 189 173 188 216 211 221 218 173 188 216 211 221 218 211 221 218 211 221 218
++189 200 189 173 175 176 122 133 132 75 83 72 86 83 83 103 106 97 103 106 97 83 103 97
++45 62 74 45 62 74 46 47 55 30 34 36 21 29 29 143 146 150 143 146 150 122 133 132
++103 106 97 48 36 41 123 133 112 157 164 157 182 181 190 166 181 211 173 188 216 182 181 190
++173 188 216 173 188 216 194 181 189 141 128 110 105 79 65 134 98 86 164 145 137 143 146 150
++131 128 178 143 151 181 166 181 211 173 175 176 143 151 181 143 151 181 75 110 124 122 113 129
++143 146 150 143 151 181 131 128 178 143 146 150 143 151 181 143 146 150 131 128 178 143 146 150
++143 151 181 143 151 181 143 151 181 157 164 157 163 147 193 173 175 176 143 151 181 143 146 150
++68 74 109 96 81 123 143 151 181 143 151 181 173 175 176 203 196 201 210 216 207 211 221 218
++210 216 207 212 185 189 188 172 163 41 33 22 21 19 21 20 20 20 20 20 20 28 30 29
++32 31 35 28 26 35 28 30 29 28 26 35 21 29 29 21 29 29 21 29 29 28 30 29
++28 30 29 28 30 29 28 26 35 28 26 35 28 26 35 21 29 29 28 26 35 28 30 29
++28 30 29 20 28 24 28 30 29 21 29 29 20 28 24 68 75 77 27 32 26 39 43 42
++238 233 218 246 248 239 221 241 240 238 233 218 221 241 240 246 248 239 246 248 239 221 241 240
++238 233 218 210 216 207 188 189 180 188 189 175 188 189 175 188 189 175 188 189 175 123 109 109
++88 79 65 134 98 86 141 108 110 165 108 102 141 128 110 164 133 127 164 133 127 164 133 127
++164 133 127 164 145 120 105 79 65 68 24 14 45 39 35 68 33 37 71 59 54 87 76 74
++68 68 60 71 81 67 64 57 60 56 54 51 45 39 35 39 28 30 68 68 60 187 177 178
++210 216 207 210 216 207 203 196 201 210 216 207 210 216 207 189 200 189 173 167 157 103 106 97
++75 64 67 75 64 67 68 68 60 64 57 60 58 61 60 61 60 67 64 57 60 58 61 60
++58 53 60 57 59 55 57 45 51 49 43 41 37 33 35 41 33 22 45 39 35 45 39 35
++68 67 72 104 108 124 104 108 124 91 128 178 112 124 124 143 151 181 121 182 205 143 146 150
++83 103 97 31 42 35 37 33 35 45 39 35 35 34 35 35 34 35 37 33 35 37 33 35
++41 38 42 37 33 35 41 38 42 37 33 35 41 38 42 45 39 35 37 33 35 49 43 41
++64 57 60 71 81 67 188 189 180 245 232 231 210 216 207 211 221 218 211 221 218 211 221 218
++211 221 218 210 216 207 210 216 207 211 221 218 210 216 207 210 216 207 203 196 201 210 216 207
++210 216 207 203 196 201 188 189 180 189 200 189 210 216 207 189 200 189 189 200 189 189 200 189
++188 189 180 189 200 189 188 189 180 157 164 157 86 83 83 61 60 67 141 132 131 210 216 207
++210 216 207 229 200 201 210 216 207 210 216 207 212 206 189 173 167 157 86 83 83 68 68 60
++68 67 72 75 83 72 68 68 60 68 68 60 88 79 65 71 81 67 68 67 72 71 81 67
++68 75 77 71 81 67 75 83 72 75 83 72 68 80 50 113 97 36 162 123 29 197 60 17
++159 26 46 175 13 17 175 13 17 197 180 35 162 123 29 181 55 69 162 123 29 162 123 29
++175 13 17 175 13 17 154 14 17 154 59 17 197 180 35 133 58 15 154 59 17 162 123 29
++154 59 17 175 13 17 162 123 29 162 123 29 162 123 29 133 23 15 154 14 17 162 123 29
++162 123 29 154 59 17 175 13 17 154 14 17 154 59 17 99 79 28 33 35 35 23 20 27
++28 30 29 39 14 11 21 19 21 20 28 24 20 28 24 20 20 20 21 19 21 23 20 27
++20 20 20 20 28 24 21 19 21 23 20 27 23 20 27 21 19 21 21 19 21 20 28 24
++23 20 27 20 28 24 21 19 21 20 28 24 21 19 21 20 20 20 20 20 20 20 20 20
++
++137 117 96 137 117 96 128 104 97 128 104 97 104 88 73 68 64 51 56 54 51 56 54 51
++87 76 74 141 128 110 141 154 138 141 154 138 157 164 157 121 182 205 166 181 211 189 200 189
++173 188 216 173 188 216 173 188 216 173 188 216 211 221 218 211 221 218 173 188 216 211 221 218
++188 191 205 157 164 157 112 124 124 114 121 97 157 164 157 189 200 189 143 146 150 68 74 109
++68 75 77 45 62 74 39 43 42 28 30 29 20 28 24 61 60 67 123 133 112 68 68 60
++103 106 97 173 175 176 163 158 149 159 178 157 188 191 205 166 181 211 173 188 216 188 191 205
++188 196 234 188 196 234 173 167 157 134 98 86 162 123 29 113 97 36 104 88 73 141 138 138
++143 151 181 166 181 211 166 181 211 143 151 181 143 151 181 143 151 181 86 83 83 104 108 124
++143 146 150 143 151 181 143 151 181 143 151 181 143 151 181 131 128 178 143 146 150 143 151 181
++173 175 176 143 151 181 157 164 157 143 151 181 166 181 211 182 181 190 143 151 181 131 128 178
++173 175 176 143 151 181 173 175 176 143 151 181 143 151 181 203 196 201 211 221 218 229 221 240
++229 221 240 235 233 206 203 196 201 86 83 83 23 20 27 20 28 24 20 20 20 28 26 35
++30 34 36 30 34 36 30 34 36 28 30 29 28 26 35 21 29 29 21 19 27 28 30 29
++32 31 35 28 26 35 28 30 29 28 26 35 28 30 29 28 26 35 21 29 29 28 26 35
++28 30 29 28 30 29 28 30 29 21 29 29 21 19 21 75 83 72 20 20 20 21 29 29
++173 175 176 221 241 240 245 232 231 245 232 231 246 248 239 245 232 231 221 241 240 245 232 231
++238 233 218 210 216 207 188 189 180 188 189 180 188 189 180 188 189 175 189 200 189 188 189 175
++75 64 67 99 79 59 143 103 96 141 128 110 164 111 125 165 137 101 184 128 126 164 145 120
++184 128 126 164 133 127 164 133 127 68 64 51 45 39 35 57 59 55 75 64 67 75 83 72
++75 83 72 68 68 60 68 68 60 56 54 51 45 39 35 28 30 29 68 64 51 157 164 157
++203 196 201 203 196 201 210 216 207 203 196 201 210 216 207 203 196 201 173 175 176 123 109 109
++75 64 67 71 81 67 75 64 67 64 57 60 58 61 60 64 57 60 58 61 60 64 57 60
++58 61 60 64 57 60 58 53 60 49 43 41 37 33 35 45 39 35 45 39 35 39 43 42
++68 75 77 104 108 124 91 128 178 112 124 124 91 128 178 143 151 181 143 151 181 122 133 132
++61 60 67 46 47 45 49 43 41 31 42 35 35 34 35 33 35 35 39 37 42 37 33 35
++37 33 35 45 39 35 37 33 35 45 39 35 41 38 42 37 33 35 45 39 35 49 43 41
++64 57 60 87 76 74 189 200 189 245 232 231 210 216 207 211 221 218 238 233 218 211 221 218
++235 233 206 210 216 207 211 221 218 210 216 207 210 216 207 210 216 207 203 196 201 210 216 207
++210 216 207 210 216 207 189 200 189 188 189 180 210 216 207 212 206 189 203 196 201 188 189 180
++189 200 189 188 189 180 203 196 201 122 133 132 58 53 60 163 148 159 210 216 207 210 216 207
++212 206 189 210 216 207 210 216 207 211 221 218 210 216 207 203 196 201 173 175 176 68 67 72
++68 68 60 68 68 60 68 68 60 68 69 55 68 68 60 57 59 55 58 61 60 68 67 72
++61 60 67 58 53 60 68 69 47 45 49 35 161 121 76 197 60 17 181 55 69 181 55 69
++162 123 29 154 59 17 154 59 17 175 13 17 197 180 35 162 123 29 197 60 17 213 123 36
++154 59 17 154 14 17 154 59 17 154 59 17 197 180 35 154 59 17 175 13 17 162 123 29
++154 59 17 154 59 17 162 123 29 133 58 15 154 14 17 175 13 17 154 59 17 162 123 29
++133 58 15 154 59 17 154 59 17 154 14 17 154 14 17 154 59 17 162 123 29 41 33 22
++20 28 24 23 19 15 23 20 27 23 20 27 19 34 14 27 32 26 21 19 21 20 28 24
++23 20 27 21 19 21 21 19 21 20 28 24 21 19 21 23 20 27 20 28 24 23 20 27
++21 19 21 23 20 27 21 19 21 23 20 27 20 20 20 23 20 27 20 20 20 20 20 20
++
++123 109 109 137 117 96 137 117 96 113 97 77 104 88 73 68 68 60 56 54 51 68 69 55
++103 106 97 141 132 131 163 158 149 143 146 150 173 175 176 166 181 211 189 200 189 173 188 216
++173 188 216 173 188 216 173 188 216 211 221 218 211 221 218 188 196 234 211 221 218 211 221 218
++173 175 176 141 154 138 122 133 132 188 189 180 210 216 207 203 196 201 83 103 97 61 60 67
++68 75 77 45 62 74 49 40 56 39 43 42 28 30 29 20 28 24 28 30 29 49 43 41
++203 196 201 238 233 218 211 221 218 211 221 218 188 196 234 166 181 211 173 188 216 188 191 205
++188 196 234 203 196 201 173 175 176 164 133 127 99 79 59 133 65 47 113 97 77 143 146 150
++166 181 211 173 175 176 143 151 181 143 151 181 143 151 181 212 185 189 141 132 131 112 104 120
++122 133 132 143 151 181 143 151 181 143 151 181 143 146 150 122 133 132 131 128 178 143 151 181
++143 151 181 173 175 176 163 147 193 173 175 176 173 175 176 166 181 211 143 151 181 157 164 157
++143 151 181 173 175 176 143 151 181 166 181 211 173 175 176 189 200 189 225 201 230 211 221 218
++229 221 240 238 233 218 211 221 218 173 175 176 21 19 21 27 32 26 20 20 20 28 30 29
++30 34 36 28 26 35 30 34 36 28 26 35 28 26 35 21 29 29 21 29 29 23 20 27
++28 30 29 28 26 35 28 30 29 28 26 35 28 26 35 28 26 35 21 29 29 28 26 35
++28 30 29 28 30 29 30 34 36 28 30 29 20 28 24 68 67 72 21 29 29 28 30 29
++86 83 83 246 248 239 246 248 239 221 241 240 245 232 231 246 248 239 246 248 239 221 241 240
++238 233 218 203 196 201 188 189 180 188 189 180 189 200 189 189 200 189 188 189 180 188 189 175
++141 128 110 68 50 43 104 88 73 143 103 96 165 137 101 164 133 127 184 128 126 191 160 135
++184 128 126 191 160 135 184 128 126 128 104 97 45 30 35 58 53 60 75 64 67 87 76 74
++87 76 74 87 76 74 64 57 60 56 54 51 49 43 41 41 33 22 56 54 51 163 158 149
++189 200 189 210 216 207 210 216 207 210 216 207 203 196 201 189 200 189 188 189 175 123 133 112
++75 64 67 75 83 72 75 64 67 68 68 60 64 57 60 58 61 60 58 61 60 58 61 60
++64 57 60 58 61 60 56 54 51 49 43 41 45 39 35 48 36 41 49 43 41 46 47 55
++83 103 97 104 108 124 122 133 132 91 128 178 122 133 132 91 128 178 121 182 205 112 124 124
++45 62 74 68 75 77 68 67 72 46 47 45 35 34 35 35 34 35 35 34 35 35 34 35
++37 33 35 37 33 35 39 37 42 37 33 35 37 33 35 37 33 35 45 39 35 46 47 45
++68 68 60 75 83 72 203 196 201 238 233 218 210 216 207 210 216 207 211 221 218 238 233 218
++211 221 218 203 196 201 210 216 207 235 233 206 210 216 207 210 216 207 189 200 189 210 216 207
++210 216 207 210 216 207 194 181 189 189 200 189 203 196 201 203 196 201 189 200 189 188 189 180
++188 189 180 203 196 201 210 216 207 187 177 178 141 138 138 157 164 157 203 196 201 212 206 189
++211 221 218 194 181 189 211 221 218 210 216 207 210 216 207 203 196 201 189 200 189 122 113 129
++99 96 86 86 83 83 75 83 72 75 83 72 68 68 60 68 68 60 68 68 60 68 68 60
++68 68 60 68 68 60 44 55 41 113 97 36 154 59 17 154 14 17 197 60 17 224 65 75
++197 180 35 197 180 35 213 123 36 162 123 29 162 123 29 197 180 35 154 59 17 197 180 35
++162 123 29 162 123 29 197 60 17 154 59 17 154 59 17 154 59 17 154 14 17 154 59 17
++154 59 17 154 59 17 162 123 29 154 59 17 154 59 17 175 13 17 154 14 17 162 123 29
++162 123 29 154 14 17 133 23 15 154 59 17 154 59 17 154 14 17 154 14 17 113 97 36
++41 33 22 20 28 24 20 25 36 23 20 27 23 19 15 28 30 29 21 19 21 23 20 27
++23 19 15 20 28 24 21 19 21 23 20 27 23 20 27 20 28 24 21 19 21 23 20 27
++20 28 24 21 19 21 21 19 21 20 20 20 23 20 27 20 20 20 20 20 20 20 20 20
++
++137 117 96 137 117 96 137 117 96 114 99 97 104 88 73 87 76 74 87 76 74 99 96 86
++123 133 112 141 139 118 141 138 138 157 164 157 173 175 176 173 188 216 188 196 234 173 188 216
++189 200 189 173 188 216 173 188 216 211 221 218 173 188 216 211 221 218 211 221 218 211 221 218
++173 175 176 122 133 132 173 167 157 211 221 218 221 241 240 99 85 89 83 103 97 46 47 55
++61 60 67 58 61 60 46 47 45 39 43 42 33 35 35 33 35 35 20 20 20 143 146 150
++246 248 239 245 235 246 246 248 239 229 221 240 188 196 234 166 181 211 188 191 205 188 196 234
++188 191 205 188 196 234 188 191 205 134 98 86 113 97 36 135 123 86 123 109 109 143 151 181
++173 175 176 143 151 181 143 151 181 173 175 176 163 148 159 229 200 201 210 180 161 112 104 120
++122 133 132 143 146 150 143 151 181 143 146 150 131 128 178 122 133 132 143 146 150 143 151 181
++157 164 157 143 151 181 166 181 211 143 151 181 173 175 176 143 151 181 173 175 176 143 151 181
++166 181 211 143 151 181 182 181 190 143 151 181 122 113 129 188 172 163 212 206 189 211 221 218
++221 241 240 211 221 218 229 221 240 238 233 218 56 54 51 20 28 24 23 20 27 21 29 29
++32 31 35 30 34 36 20 25 36 28 32 42 30 34 36 28 26 35 28 26 35 28 26 35
++28 30 29 28 26 35 28 26 35 28 26 35 20 25 36 28 26 35 28 26 35 28 26 35
++28 30 29 21 29 29 28 30 29 21 29 29 30 34 36 56 54 51 56 54 51 28 30 29
++35 34 35 189 200 189 246 248 239 245 232 231 246 248 239 221 241 240 245 232 231 245 235 246
++238 233 218 210 216 207 189 200 189 189 200 189 212 185 189 189 200 189 188 189 180 188 189 175
++163 158 149 88 79 65 88 79 65 134 98 86 141 108 110 164 133 127 184 128 126 191 160 135
++184 128 126 191 160 135 164 145 120 164 133 127 99 61 48 68 50 43 88 79 65 75 64 67
++87 76 74 75 64 67 68 68 60 56 54 51 45 49 35 39 28 30 56 54 51 143 146 150
++189 200 189 203 196 201 203 196 201 210 216 207 210 216 207 212 206 189 173 175 176 141 132 131
++71 81 67 75 64 67 75 64 67 68 68 60 68 68 60 58 61 60 64 57 60 58 61 60
++58 61 60 58 61 60 58 53 60 49 43 41 45 39 35 48 36 41 48 36 41 45 62 74
++112 124 124 122 133 132 91 128 178 91 128 178 122 133 132 121 182 205 157 164 157 75 110 124
++75 110 124 104 108 124 104 108 124 68 67 72 30 34 36 39 43 42 33 35 35 35 34 35
++37 33 35 35 34 35 39 37 42 37 33 35 41 38 42 33 35 35 45 39 35 56 54 51
++64 57 60 75 83 72 203 196 201 238 233 218 211 221 218 210 216 207 238 233 218 211 221 218
++211 221 218 210 216 207 210 216 207 211 221 218 210 216 207 212 206 189 203 196 201 210 216 207
++210 216 207 210 216 207 188 189 180 189 200 189 210 216 207 203 196 201 189 200 189 188 189 175
++189 200 189 210 216 207 210 216 207 210 216 207 212 206 189 188 189 175 189 200 189 212 206 189
++164 145 137 61 60 67 141 132 131 203 196 201 211 221 218 112 104 120 46 47 55 46 47 45
++86 83 83 141 138 138 141 138 138 141 128 110 112 124 124 114 99 97 99 61 48 104 88 73
++99 96 86 88 79 65 161 121 76 197 60 17 197 60 17 175 13 17 197 60 17 181 55 69
++213 123 36 197 180 35 154 59 17 197 60 17 197 180 35 197 180 35 213 123 36 154 14 17
++175 13 17 154 14 17 154 14 17 154 14 17 154 14 17 154 14 17 154 14 17 154 14 17
++175 13 17 175 13 17 133 23 15 162 123 29 197 60 17 154 59 17 154 59 17 162 123 29
++162 123 29 175 13 17 175 13 17 154 59 17 162 123 29 154 59 17 154 14 17 154 14 17
++99 79 28 37 33 35 23 20 27 41 28 14 68 24 14 68 24 14 23 20 27 27 32 26
++21 19 21 23 20 27 21 19 21 20 28 24 21 19 21 21 19 21 23 20 27 21 19 21
++23 20 27 21 19 21 20 28 24 23 20 27 20 20 20 20 20 20 20 20 20 20 20 20
++
++123 109 109 137 117 96 128 104 97 113 97 77 99 96 86 99 96 86 112 124 124 123 109 109
++123 133 112 141 128 110 112 124 124 122 133 132 159 178 157 173 188 216 189 200 189 173 188 216
++173 188 216 173 188 216 211 221 218 173 188 216 211 221 218 173 188 216 211 221 218 173 188 216
++159 178 157 112 124 124 188 189 180 238 233 218 238 233 218 61 60 67 39 37 42 33 35 35
++39 43 42 39 43 42 33 35 35 46 47 55 46 47 45 33 35 35 123 109 109 246 248 239
++246 248 239 246 248 239 246 248 239 221 241 240 188 196 234 188 196 234 188 191 205 210 221 240
++188 191 205 173 188 216 188 191 205 163 158 149 134 98 86 133 69 69 141 128 110 163 147 193
++143 151 181 143 151 181 143 151 181 163 147 193 157 164 157 212 185 189 240 189 188 164 133 127
++131 128 178 143 151 181 143 146 150 122 133 132 104 108 124 122 113 129 131 128 178 143 146 150
++143 151 181 143 146 150 143 151 181 143 151 181 166 181 211 173 175 176 163 147 193 157 164 157
++143 146 150 122 113 129 141 132 131 163 158 149 210 180 161 215 195 173 215 195 173 203 196 201
++238 233 218 229 221 240 246 248 239 246 248 239 103 106 97 28 30 29 20 28 24 23 20 27
++30 34 36 28 30 29 28 26 35 28 26 35 30 34 36 28 26 35 30 34 36 28 26 35
++20 25 36 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 28 30 29 28 30 29 28 30 29 28 30 29 39 43 42 86 83 83 18 29 26
++28 30 29 99 96 86 221 241 240 245 232 231 221 241 240 246 248 239 246 248 239 221 241 240
++238 233 218 210 216 207 188 189 180 188 189 180 189 200 189 188 189 180 188 189 175 173 167 157
++163 158 149 163 158 149 99 79 59 99 79 59 137 117 96 164 133 127 184 128 126 191 160 135
++191 160 135 191 160 135 206 156 159 191 160 135 137 117 96 88 79 65 75 64 67 71 81 67
++75 64 67 75 83 72 74 57 60 64 57 60 49 43 41 28 30 29 56 54 51 141 138 138
++189 200 189 212 206 189 210 216 207 210 216 207 203 196 201 203 196 201 188 189 180 141 138 138
++87 76 74 75 64 67 68 68 60 75 64 67 68 68 60 64 57 60 58 61 60 58 61 60
++58 61 60 64 57 60 57 59 55 46 47 45 45 39 35 45 39 35 45 39 35 68 67 72
++131 128 178 91 128 178 112 124 124 91 128 178 143 151 181 143 151 181 143 151 181 75 110 124
++104 108 124 143 146 150 122 133 132 68 74 109 31 42 35 39 37 42 33 35 35 35 34 35
++45 39 35 35 34 35 35 34 35 39 37 42 37 33 35 35 34 35 39 43 42 56 54 51
++68 68 60 75 83 72 203 196 201 211 221 218 210 216 207 211 221 218 225 201 230 235 233 206
++210 216 207 210 216 207 211 221 218 229 200 201 210 216 207 203 196 201 203 196 201 210 216 207
++210 216 207 210 216 207 188 189 180 189 200 189 203 196 201 189 200 189 212 206 189 173 175 176
++210 216 207 210 216 207 210 216 207 210 216 207 211 221 218 210 216 207 188 189 180 141 132 131
++57 59 55 57 59 55 68 75 77 99 85 89 68 67 72 58 53 60 57 59 55 56 54 51
++99 85 89 157 164 157 143 146 150 141 132 131 71 81 67 99 79 28 159 63 71 135 123 86
++141 154 138 161 121 76 213 123 36 181 55 69 197 60 17 181 55 69 181 55 69 181 55 69
++197 60 17 202 181 82 162 123 29 181 55 69 154 59 17 197 60 17 197 60 17 175 13 17
++197 60 17 154 59 17 162 123 29 133 58 15 113 97 36 133 58 15 99 79 28 133 58 15
++154 59 17 154 59 17 154 59 17 154 14 17 154 14 17 154 59 17 162 123 29 162 123 29
++162 123 29 154 59 17 154 14 17 154 59 17 197 180 35 162 123 29 154 59 17 175 13 17
++154 59 17 68 72 23 41 33 22 68 50 20 154 59 17 68 24 14 41 33 22 20 20 20
++23 20 27 23 20 27 23 19 15 20 20 20 23 20 27 20 28 24 23 20 27 20 28 24
++21 19 21 21 19 21 21 19 21 21 19 21 20 20 20 21 19 21 20 20 20 20 20 20
++
++141 108 110 137 117 96 134 98 86 113 97 77 99 85 89 112 124 124 141 138 138 141 138 138
++122 113 129 114 121 97 103 106 97 122 133 132 121 182 205 211 221 218 121 182 205 211 221 218
++173 188 216 189 200 189 173 188 216 211 221 218 173 188 216 211 221 218 211 221 218 189 200 189
++159 178 157 122 133 132 189 200 189 221 241 240 246 248 239 211 221 218 141 132 131 39 43 42
++20 28 24 32 31 35 30 34 36 39 43 42 56 54 51 57 59 55 210 221 240 246 248 239
++246 248 239 246 248 239 246 248 239 211 221 218 188 191 205 188 196 234 188 196 234 188 196 234
++188 191 205 188 191 205 166 181 211 182 181 190 173 175 176 157 164 157 143 146 150 173 175 176
++143 151 181 163 148 159 166 181 211 173 175 176 163 148 159 212 185 189 240 189 188 188 172 163
++123 133 112 143 151 181 131 128 178 122 113 129 122 133 132 131 128 178 143 151 181 143 151 181
++143 151 181 143 146 150 143 151 181 143 151 181 173 175 176 166 181 211 143 146 150 68 67 72
++37 33 35 74 57 60 235 233 206 245 232 231 240 208 188 215 195 173 188 172 163 212 206 189
++211 221 218 221 241 240 238 233 218 245 235 246 157 164 157 20 20 20 23 20 27 20 28 24
++21 29 29 30 34 36 28 26 35 30 34 36 28 26 35 30 34 36 28 26 35 30 34 36
++28 26 35 30 34 36 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 28 26 35 28 26 35 28 30 29 28 30 29 30 34 36 99 96 86 20 28 24
++28 30 29 21 19 27 173 167 157 221 241 240 245 232 231 221 241 240 245 232 231 221 241 240
++238 233 218 210 216 207 189 200 189 212 185 189 189 200 189 189 200 189 188 189 180 173 183 156
++163 158 149 163 158 149 123 133 112 105 79 65 105 79 65 165 108 102 164 133 127 191 160 135
++206 156 159 191 160 135 206 156 159 191 160 135 191 160 135 137 117 96 104 88 73 75 64 67
++75 83 72 75 64 67 68 68 60 64 57 60 49 43 41 45 39 35 45 49 35 141 132 131
++194 181 189 210 216 207 203 196 201 210 216 207 210 216 207 203 196 201 189 200 189 143 146 150
++87 76 74 71 81 67 75 64 67 75 64 67 75 64 67 64 57 60 58 61 60 64 57 60
++58 61 60 58 61 60 58 61 60 46 47 45 45 39 35 33 35 35 39 37 42 68 75 77
++122 133 132 122 133 132 122 133 132 91 128 178 143 151 181 121 182 205 122 133 132 75 110 124
++122 133 132 143 151 181 143 151 181 75 110 124 46 47 55 35 34 35 35 34 35 39 37 42
++39 43 42 35 34 35 39 37 42 37 33 35 45 39 35 41 38 42 35 34 35 56 54 51
++68 68 60 86 83 83 189 200 189 211 221 218 210 216 207 238 233 218 211 221 218 211 221 218
++210 216 207 238 233 218 210 216 207 211 221 218 210 216 207 210 216 207 212 206 189 210 216 207
++210 216 207 203 196 201 188 189 180 189 200 189 189 200 189 212 206 189 203 196 201 188 189 180
++203 196 201 210 216 207 211 221 218 211 221 218 211 221 218 211 221 218 189 200 189 58 61 60
++57 59 55 68 75 77 112 104 120 58 61 60 61 60 67 46 47 45 46 47 45 103 106 97
++203 196 201 163 158 149 143 146 150 141 138 138 113 97 36 197 180 35 100 41 14 113 97 36
++113 97 36 212 122 83 197 60 17 224 65 75 235 213 109 247 185 70 197 180 35 212 122 83
++175 13 17 162 123 29 202 181 82 197 60 17 175 13 17 197 60 17 159 26 46 162 123 29
++162 123 29 68 72 23 31 42 35 44 55 41 42 59 47 41 50 16 45 49 35 41 50 16
++41 50 16 68 50 20 162 123 29 162 123 29 133 23 15 154 14 17 154 14 17 154 59 17
++133 23 15 154 14 17 154 59 17 197 180 35 154 59 17 133 23 15 154 59 17 154 14 17
++133 11 15 162 123 29 68 50 20 162 123 29 99 79 28 113 97 36 113 97 36 28 30 29
++28 32 42 13 14 11 28 30 29 28 30 29 21 19 21 23 20 27 21 19 21 23 20 27
++20 28 24 23 20 27 20 28 24 23 20 27 20 20 20 23 20 27 20 20 20 20 20 20
++
++137 117 96 137 117 96 114 99 97 104 88 73 99 96 86 112 124 124 143 146 150 143 146 150
++141 154 138 123 133 112 112 124 124 143 146 150 173 175 176 173 188 216 173 188 216 211 221 218
++173 188 216 211 221 218 173 188 216 211 221 218 173 188 216 211 221 218 211 221 218 173 188 216
++159 178 157 157 164 157 203 196 201 245 232 231 246 248 239 245 235 246 246 248 239 182 181 190
++68 75 77 28 30 29 28 26 35 35 34 35 46 47 55 75 83 72 246 248 239 246 248 239
++246 248 239 245 235 246 246 248 239 210 221 240 188 196 234 188 196 234 210 216 207 112 124 124
++188 191 205 173 188 216 188 191 205 166 181 211 143 151 181 163 148 159 143 146 150 143 151 181
++143 151 181 173 175 176 143 151 181 143 146 150 141 138 138 211 221 218 229 200 201 212 185 189
++141 138 138 122 133 132 143 151 181 131 128 178 143 151 181 143 151 181 143 151 181 143 151 181
++173 175 176 143 151 181 122 133 132 112 104 120 75 83 72 57 45 51 48 36 41 45 39 35
++45 39 35 105 79 65 240 208 188 240 189 188 240 208 188 212 185 189 187 177 178 203 196 201
++211 221 218 238 233 218 245 232 231 246 248 239 210 216 207 28 30 29 27 32 26 21 29 29
++21 29 29 32 31 35 28 26 35 30 34 36 28 26 35 30 34 36 28 26 35 28 26 35
++28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 21 29 29 32 31 35 28 30 29 28 30 29 21 29 29 103 106 97 21 29 29
++28 30 29 28 30 29 86 83 83 246 248 239 238 233 218 221 241 240 245 232 231 246 248 239
++211 221 218 210 216 207 188 189 180 189 200 189 189 200 189 212 206 189 188 189 180 173 175 176
++173 167 157 166 168 134 141 139 118 114 99 97 99 79 59 134 98 86 165 137 101 184 128 126
++191 160 135 216 172 134 206 156 159 216 172 134 206 156 159 191 160 135 164 111 125 113 97 77
++75 64 67 75 64 67 64 57 60 57 59 55 49 43 41 45 39 35 49 43 41 123 133 112
++188 189 180 203 196 201 210 216 207 210 216 207 203 196 201 189 200 189 189 200 189 163 158 149
++87 76 74 75 64 67 75 64 67 71 81 67 68 67 72 64 57 60 58 61 60 58 61 60
++64 57 60 58 61 60 64 57 60 56 54 51 33 35 35 35 34 35 33 35 35 68 75 77
++104 108 124 91 128 178 91 128 178 143 146 150 143 151 181 143 151 181 75 110 124 75 110 124
++91 128 178 143 151 181 143 151 181 112 124 124 45 62 74 33 35 35 35 34 35 35 34 35
++35 34 35 35 34 35 39 37 42 37 33 35 41 38 42 35 34 35 39 43 42 56 54 51
++68 68 60 99 96 86 188 189 180 210 216 207 210 216 207 211 221 218 210 216 207 235 233 206
++203 196 201 211 221 218 210 216 207 238 233 218 210 216 207 189 200 189 203 196 201 210 216 207
++210 216 207 210 216 207 188 189 180 189 200 189 210 216 207 189 200 189 203 196 201 188 189 180
++210 216 207 210 216 207 229 200 201 211 221 218 229 200 201 210 216 207 211 221 218 86 83 83
++86 83 83 99 85 89 57 59 55 57 59 55 46 47 45 68 68 60 143 146 150 203 196 201
++173 175 176 141 154 138 123 109 109 118 123 77 162 123 29 162 123 29 113 97 36 117 142 36
++162 123 29 159 26 46 181 55 69 197 60 17 213 123 36 197 180 35 213 123 36 197 180 35
++197 180 35 197 60 17 181 55 69 197 60 17 197 60 17 197 60 17 113 97 36 68 69 47
++61 46 51 49 43 41 56 54 51 46 47 45 41 38 42 31 42 35 31 42 35 31 42 35
++33 35 35 27 32 26 20 28 24 41 50 16 99 79 28 154 59 17 154 59 17 154 14 17
++175 13 17 154 59 17 197 180 35 133 58 15 154 14 17 154 14 17 154 59 17 154 59 17
++154 14 17 133 23 15 133 58 15 68 72 23 113 97 36 99 79 28 162 123 29 68 72 23
++27 32 26 20 28 24 17 19 20 21 19 21 23 20 27 20 28 24 23 20 27 21 19 21
++23 20 27 21 19 21 23 20 27 20 20 20 23 20 27 20 20 20 20 20 20 20 20 20
++
++128 104 97 128 104 97 113 97 77 99 96 86 103 106 97 122 133 132 143 146 150 143 151 181
++143 146 150 157 164 157 173 183 156 166 181 211 189 200 189 173 188 216 173 188 216 173 188 216
++211 221 218 121 182 205 211 221 218 173 188 216 211 221 218 173 188 216 173 188 216 210 216 207
++159 178 157 143 146 150 189 200 189 211 221 218 245 232 231 246 248 239 245 232 231 246 248 239
++157 164 157 56 54 51 28 30 29 21 29 29 13 14 11 163 148 159 246 248 239 246 248 239
++246 248 239 246 248 239 246 248 239 210 216 207 188 196 234 166 181 211 122 133 132 68 68 60
++143 151 181 210 216 207 188 196 234 173 175 176 143 151 181 143 151 181 143 151 181 143 146 150
++173 175 176 166 181 211 143 151 181 122 113 129 122 113 129 203 196 201 238 233 218 240 208 188
++212 185 189 103 106 97 143 146 150 166 181 211 166 181 211 166 181 211 182 181 190 143 151 181
++83 103 97 39 37 42 41 33 22 49 43 41 68 50 43 68 50 43 99 61 48 73 50 50
++68 50 20 73 50 50 240 208 188 240 208 188 215 195 173 212 185 189 210 216 207 211 221 218
++211 221 218 211 221 218 245 232 231 221 241 240 246 248 239 103 106 97 23 20 27 20 28 24
++17 19 20 30 34 36 30 34 36 30 34 36 30 34 36 28 26 35 32 31 35 30 34 36
++28 26 35 30 34 36 28 26 35 28 26 35 30 34 36 20 25 36 28 26 35 28 26 35
++28 26 35 21 29 29 28 26 35 21 29 29 28 30 29 23 20 27 61 60 67 46 47 45
++28 30 29 39 37 42 83 103 97 238 233 218 211 221 218 235 233 206 211 221 218 238 233 218
++211 221 218 212 206 189 189 200 189 188 189 180 203 196 201 212 206 189 189 200 189 188 177 159
++173 183 156 173 167 157 164 145 120 123 133 112 88 79 65 99 61 48 143 103 96 191 160 135
++191 160 135 206 156 159 210 180 161 210 180 161 210 180 161 216 172 134 206 156 159 191 160 135
++99 96 86 71 59 54 64 57 60 71 59 54 56 54 51 49 43 41 56 54 51 122 113 129
++188 189 180 203 196 201 210 216 207 203 196 201 210 216 207 212 206 189 203 196 201 157 164 157
++86 83 83 75 83 72 68 68 60 75 64 67 68 67 72 68 68 60 64 57 60 58 61 60
++58 61 60 58 61 60 57 59 55 46 47 45 35 34 35 35 34 35 35 34 35 45 62 74
++75 110 124 112 124 124 122 133 132 91 128 178 121 182 205 143 151 181 131 128 178 75 110 124
++122 133 132 143 146 150 121 182 205 122 133 132 45 62 74 33 35 35 35 34 35 35 34 35
++39 43 42 35 34 35 39 37 42 37 33 35 45 39 35 35 34 35 39 37 42 57 59 55
++68 67 72 99 96 86 203 196 201 210 216 207 210 216 207 238 233 218 211 221 218 210 216 207
++210 216 207 211 221 218 210 216 207 211 221 218 210 216 207 189 200 189 210 216 207 210 216 207
++210 216 207 210 216 207 188 189 180 203 196 201 203 196 201 189 200 189 210 216 207 212 206 189
++210 216 207 210 216 207 211 221 218 210 216 207 210 216 207 211 221 218 210 216 207 157 164 157
++112 124 124 86 83 83 46 47 45 58 61 60 86 83 83 157 164 157 210 216 207 188 189 180
++163 158 149 75 83 72 113 97 36 197 180 35 162 123 29 105 79 65 117 142 36 162 123 29
++197 60 17 175 13 17 175 13 17 181 55 69 159 26 46 162 123 29 154 59 17 162 123 29
++162 123 29 197 60 17 175 13 17 197 60 17 162 123 29 68 69 47 61 60 67 58 53 60
++42 59 47 56 54 51 46 47 45 39 43 42 39 37 42 37 33 35 39 37 42 37 33 35
++27 32 26 33 35 35 45 30 35 20 25 36 31 42 35 41 33 22 113 97 36 154 14 17
++175 13 17 133 58 15 162 123 29 133 23 15 154 14 17 154 59 17 162 123 29 162 123 29
++162 123 29 154 14 17 154 59 17 113 97 36 117 142 36 100 41 14 113 97 36 162 123 29
++68 50 20 23 20 27 20 28 24 23 19 15 23 20 27 21 19 21 20 28 24 23 20 27
++20 28 24 23 20 27 20 28 24 23 20 27 20 20 20 21 19 21 20 20 20 20 20 20
++
++128 104 97 128 104 97 134 98 86 113 97 77 112 124 124 143 146 150 143 151 181 159 178 157
++157 164 157 173 175 176 189 200 189 189 200 189 189 200 189 121 182 205 189 200 189 121 182 205
++189 200 189 211 221 218 188 196 234 211 221 218 173 188 216 211 221 218 189 200 189 188 196 234
++159 178 157 103 106 97 141 154 138 188 189 180 189 200 189 212 206 189 210 216 207 210 216 207
++114 99 97 41 33 22 35 34 35 49 43 41 99 96 86 211 221 218 238 233 218 221 241 240
++245 232 231 221 241 240 245 232 231 189 200 189 112 124 124 45 62 74 44 55 41 57 45 51
++45 39 35 68 67 72 99 96 86 104 108 124 141 138 138 143 146 150 143 146 150 143 151 181
++173 175 176 143 151 181 143 146 150 104 108 124 122 133 132 163 147 193 229 200 201 229 200 201
++245 232 231 163 158 149 99 85 89 143 146 150 173 175 176 104 108 124 46 47 55 46 47 45
++45 30 35 68 50 43 73 50 50 73 50 50 99 61 48 99 61 48 99 61 48 68 50 43
++68 33 37 68 33 37 141 128 110 229 200 201 229 200 201 210 216 207 238 233 218 225 201 230
++210 216 207 211 221 218 245 232 231 246 248 239 246 248 239 182 181 190 27 32 26 28 30 29
++20 28 24 28 30 29 30 34 36 32 31 35 32 31 35 28 26 35 30 34 36 28 26 35
++28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 28 30 29 23 20 27 28 30 29 20 28 24 28 30 29 20 20 20 68 68 60
++30 34 36 20 20 20 75 83 72 173 175 176 189 200 189 189 200 189 212 206 189 203 196 201
++212 206 189 203 196 201 189 200 189 188 189 180 212 206 189 189 200 189 212 206 189 188 189 175
++188 189 175 188 177 159 188 177 159 164 145 137 114 121 97 88 79 65 105 79 65 164 133 127
++184 128 126 216 172 134 206 156 159 216 172 134 236 180 161 210 180 161 210 180 161 210 180 161
++184 128 126 104 88 73 64 57 60 57 59 55 64 57 60 56 54 51 68 68 60 123 133 112
++173 175 176 189 200 189 203 196 201 189 200 189 203 196 201 189 200 189 188 189 180 163 158 149
++86 83 83 68 68 60 74 57 60 58 61 60 68 68 60 61 60 67 68 68 60 58 61 60
++57 59 55 58 53 60 56 54 51 46 47 45 39 37 42 45 39 35 31 42 35 58 61 60
++112 124 124 91 128 178 91 128 178 143 151 181 143 146 150 143 151 181 122 133 132 75 110 124
++91 128 178 131 128 178 143 151 181 112 124 124 45 62 74 39 43 42 31 42 35 37 33 35
++35 34 35 45 39 35 35 34 35 45 39 35 39 37 42 35 34 35 46 47 45 58 61 60
++68 68 60 99 96 86 189 200 189 210 216 207 211 221 218 210 216 207 211 221 218 210 216 207
++210 216 207 210 216 207 210 216 207 210 216 207 203 196 201 143 146 150 173 167 157 210 216 207
++203 196 201 210 216 207 189 200 189 189 200 189 212 206 189 189 200 189 188 189 180 188 189 175
++188 189 180 203 196 201 212 206 189 203 196 201 212 206 189 203 196 201 203 196 201 188 189 180
++64 57 60 68 75 77 86 83 83 86 83 83 141 138 138 189 200 189 194 181 189 141 154 138
++86 83 83 68 69 55 117 142 36 197 180 35 133 58 15 117 142 36 162 123 29 197 60 17
++159 26 46 213 123 36 197 180 35 154 59 17 175 13 17 154 59 17 197 180 35 154 14 17
++175 13 17 154 14 17 162 123 29 133 65 47 68 72 23 68 69 47 68 69 47 68 69 47
++68 69 47 68 50 43 44 55 41 45 49 35 45 49 35 41 50 16 45 49 35 41 50 16
++41 50 16 41 50 16 41 50 16 41 50 16 41 33 22 41 50 16 41 50 16 113 97 36
++154 59 17 154 14 17 175 13 17 154 14 17 154 59 17 162 123 29 197 180 35 154 59 17
++154 59 17 154 14 17 154 14 17 154 59 17 99 79 28 162 123 29 99 79 28 162 123 29
++113 97 36 41 28 14 21 19 27 20 28 24 20 20 20 23 20 27 21 19 21 23 20 27
++21 19 21 23 20 27 21 19 21 21 19 21 20 28 24 21 19 21 20 20 20 20 20 20
++
++114 121 97 128 104 97 128 104 97 114 99 97 123 133 112 141 154 138 143 151 181 122 133 132
++143 146 150 189 200 189 210 216 207 210 216 207 159 178 157 122 133 132 122 133 132 159 178 157
++121 182 205 173 188 216 173 188 216 211 221 218 173 188 216 211 221 218 188 196 234 189 200 189
++157 164 157 68 75 77 75 83 72 114 121 97 141 139 118 166 168 134 141 158 118 163 158 149
++141 139 118 75 83 72 103 106 97 188 189 175 188 189 175 173 183 156 173 175 176 188 193 159
++188 189 175 188 189 175 212 206 189 112 124 124 68 67 72 68 68 60 68 33 37 68 50 43
++45 39 35 45 39 35 35 34 35 41 28 14 21 19 15 39 43 42 83 103 97 143 151 181
++166 181 211 143 151 181 112 124 124 104 108 124 131 128 178 122 133 132 212 206 189 245 232 231
++229 200 201 212 206 189 103 106 97 68 74 109 122 133 132 39 43 42 28 30 29 39 28 30
++68 50 20 99 61 48 68 50 43 99 61 48 68 50 43 99 61 48 73 50 50 68 50 43
++68 50 43 61 46 51 68 33 37 212 185 189 238 233 218 211 221 218 238 233 218 211 221 218
++203 196 201 238 233 218 221 241 240 245 235 246 246 248 239 246 248 239 58 61 60 21 29 29
++21 19 27 30 34 36 32 31 35 30 34 36 28 26 35 30 34 36 28 26 35 30 34 36
++28 26 35 28 26 35 28 26 35 20 25 36 28 26 35 28 26 35 28 26 35 28 26 35
++28 26 35 32 31 35 21 29 29 32 31 35 28 30 29 28 30 29 28 30 29 68 67 72
++20 20 20 39 37 42 57 45 51 114 121 97 189 200 189 188 189 175 188 189 180 188 189 180
++188 189 180 189 200 189 188 189 180 189 200 189 203 196 201 212 206 189 189 200 189 188 189 180
++215 195 173 188 189 175 215 195 173 188 177 159 164 145 120 104 88 73 71 59 54 113 97 77
++184 128 126 191 160 135 216 172 134 206 156 159 210 180 161 215 195 173 236 180 161 236 180 161
++236 180 161 191 160 135 86 83 83 64 57 60 68 64 51 64 57 60 87 76 74 123 109 109
++163 158 149 173 175 176 188 189 175 188 189 175 173 175 176 173 175 176 157 164 157 141 132 131
++75 64 67 57 59 55 56 54 51 56 54 51 58 61 60 68 68 60 68 67 72 58 61 60
++56 54 51 56 54 51 46 47 45 46 47 55 46 47 45 46 47 45 46 47 45 45 62 74
++104 108 124 122 133 132 122 133 132 143 151 181 121 182 205 121 182 205 143 151 181 91 128 178
++112 124 124 122 133 132 91 128 178 112 124 124 68 74 109 58 53 60 45 39 35 31 42 35
++35 34 35 39 43 42 37 33 35 41 38 42 37 33 35 35 34 35 46 47 45 58 61 60
++58 61 60 99 96 86 189 200 189 210 216 207 229 200 201 211 221 218 235 233 206 211 221 218
++229 200 201 210 216 207 238 233 218 210 216 207 189 200 189 163 158 149 141 132 131 189 200 189
++211 221 218 203 196 201 188 189 180 203 196 201 203 196 201 188 189 180 143 146 150 141 139 118
++141 138 138 141 154 138 143 146 150 141 154 138 163 158 149 157 164 157 173 167 157 157 164 157
++68 68 60 68 68 60 57 59 55 114 121 97 203 196 201 188 189 180 141 132 131 86 83 83
++86 83 83 87 76 74 68 50 43 68 33 37 113 97 36 99 79 28 162 123 29 175 13 17
++197 60 17 162 123 29 197 180 35 213 123 36 175 13 17 154 59 17 213 123 36 154 59 17
++154 14 17 162 123 29 99 79 28 133 58 15 162 123 29 154 59 17 162 123 29 162 123 29
++197 60 17 162 123 29 162 123 29 197 60 17 162 123 29 154 59 17 162 123 29 154 59 17
++162 123 29 197 60 17 154 59 17 154 59 17 162 123 29 154 59 17 154 59 17 68 24 14
++99 79 28 154 59 17 154 14 17 154 59 17 117 142 36 162 123 29 133 23 15 162 123 29
++175 13 17 133 23 15 175 13 17 154 14 17 133 58 15 41 50 16 117 142 36 41 28 14
++68 50 20 20 28 24 15 15 26 20 20 20 21 19 21 23 20 27 20 28 24 21 19 21
++20 28 24 23 20 27 20 28 24 21 19 21 21 19 27 21 19 21 20 20 20 20 20 20
++
++113 97 77 114 99 97 113 97 77 128 104 97 112 124 124 141 154 138 143 146 150 122 133 132
++141 154 138 189 200 189 189 200 189 173 175 176 112 124 124 45 62 74 69 83 54 112 124 124
++189 200 189 173 188 216 221 241 240 173 188 216 211 221 218 121 182 205 211 221 218 173 188 216
++159 178 157 103 106 97 114 121 97 141 138 138 163 158 149 163 158 149 163 158 149 163 158 149
++163 158 149 173 167 157 163 158 149 164 145 137 163 158 149 163 158 149 166 168 134 163 158 149
++141 154 138 163 158 149 164 145 137 141 139 118 103 81 83 49 43 41 68 50 43 73 50 50
++68 50 20 68 50 43 73 50 50 68 33 37 68 33 37 41 33 22 28 30 29 37 33 35
++88 79 65 112 104 120 114 99 97 141 132 131 123 109 109 141 132 131 215 195 173 238 233 218
++235 233 206 212 185 189 141 139 118 123 133 112 212 185 189 215 195 173 99 61 48 41 33 22
++68 33 37 68 50 43 68 50 20 99 36 46 68 50 20 73 50 50 68 33 37 68 50 20
++68 33 37 68 50 43 68 50 20 164 133 127 238 233 218 211 221 218 229 221 240 229 221 240
++210 216 207 211 221 218 245 232 231 246 248 239 245 235 246 246 248 239 141 138 138 28 30 29
++20 28 24 28 30 29 30 34 36 30 34 36 30 34 36 28 26 35 28 26 35 28 26 35
++30 34 36 28 26 35 30 34 36 32 31 35 28 26 35 30 34 36 28 30 29 28 30 29
++27 32 26 28 30 29 28 30 29 28 30 29 28 30 29 28 30 29 28 30 29 61 60 67
++28 30 29 28 30 29 33 35 35 123 133 112 212 185 189 188 189 175 188 189 180 188 189 175
++189 200 189 188 189 175 188 189 175 189 200 189 189 200 189 189 200 189 212 206 189 189 200 189
++212 206 189 212 206 189 212 206 189 212 206 189 166 168 134 103 106 97 88 79 65 88 79 65
++105 79 65 164 133 127 191 160 135 216 172 134 210 180 161 236 180 161 236 180 161 215 195 173
++215 195 173 240 189 188 210 180 161 128 104 97 75 64 67 74 57 60 86 83 83 103 106 97
++103 106 97 123 133 112 123 133 112 123 133 112 112 124 124 123 109 109 114 121 97 99 96 86
++46 47 45 45 49 35 45 39 35 46 47 45 56 54 51 61 60 67 68 67 72 57 59 55
++58 53 60 56 54 51 56 54 51 58 53 60 57 59 55 57 59 55 46 47 45 68 67 72
++112 124 124 91 128 178 91 128 178 143 146 150 143 151 181 166 181 211 143 146 150 75 110 124
++75 110 124 91 128 178 122 133 132 91 128 178 75 110 124 68 75 77 39 43 42 35 34 35
++37 33 35 35 34 35 39 37 42 35 34 35 39 43 42 35 34 35 46 47 45 57 59 55
++58 61 60 99 96 86 189 200 189 210 216 207 211 221 218 211 221 218 211 221 218 210 216 207
++203 196 201 210 216 207 210 216 207 210 216 207 212 206 189 189 200 189 210 216 207 210 216 207
++189 200 189 212 206 189 188 189 180 189 200 189 210 216 207 173 175 176 103 106 97 86 83 83
++75 83 72 87 76 74 87 76 74 86 83 83 75 83 72 86 83 83 86 83 83 99 96 86
++71 81 67 68 68 60 141 138 138 189 200 189 212 206 189 122 133 132 69 83 54 123 109 109
++157 164 157 173 167 157 163 158 149 141 154 138 99 79 28 162 123 29 154 14 17 175 13 17
++175 13 17 154 59 17 162 123 29 162 123 29 197 180 35 154 59 17 162 123 29 175 13 17
++154 59 17 68 72 23 100 41 14 133 28 45 154 14 17 175 13 17 159 26 46 175 13 17
++159 26 46 175 13 17 154 59 17 154 59 17 175 13 17 175 13 17 154 59 17 154 59 17
++175 13 17 154 59 17 154 59 17 154 59 17 175 13 17 154 14 17 154 14 17 133 58 15
++68 24 14 99 79 28 154 59 17 154 14 17 162 123 29 154 59 17 175 13 17 133 23 15
++154 59 17 162 123 29 162 123 29 154 59 17 154 14 17 162 123 29 68 50 20 19 34 14
++21 19 15 21 19 21 28 26 35 17 19 20 20 28 24 23 20 27 21 19 21 23 20 27
++21 19 21 20 20 20 20 20 20 21 19 21 20 20 20 20 20 20 20 20 20 20 20 20
++
++88 79 65 88 79 65 104 88 73 88 79 65 112 124 124 122 133 132 122 133 132 112 124 124
++143 146 150 159 178 157 173 175 176 141 154 138 88 79 65 44 55 41 42 59 47 123 133 112
++121 182 205 211 221 218 173 188 216 211 221 218 173 188 216 211 221 218 173 188 216 166 181 211
++173 175 176 182 181 190 212 206 189 210 216 207 210 216 207 212 206 189 210 216 207 212 206 189
++210 216 207 212 206 189 212 206 189 212 206 189 188 189 175 188 189 180 188 189 180 188 189 175
++188 189 175 173 183 156 173 167 157 164 145 137 141 128 110 104 74 73 99 79 59 99 79 59
++99 61 48 99 61 48 99 61 48 99 61 48 73 50 50 68 50 43 49 43 41 41 33 22
++141 128 110 210 180 161 191 160 135 206 156 159 164 133 127 191 160 135 215 195 173 240 208 188
++240 208 188 173 167 157 163 158 149 203 196 201 235 233 206 245 232 231 194 181 189 68 50 43
++68 50 43 99 61 48 68 50 43 99 61 48 73 50 50 68 33 37 68 50 20 68 33 37
++68 50 43 68 50 43 68 33 37 141 128 110 238 233 218 229 221 240 238 233 218 211 221 218
++210 216 207 210 216 207 245 232 231 221 241 240 246 248 239 246 248 239 211 221 218 28 30 29
++28 30 29 21 29 29 30 34 36 30 34 36 28 26 35 28 30 29 21 29 29 21 29 29
++28 30 29 28 26 35 28 30 29 28 26 35 30 34 36 28 26 35 28 30 29 28 30 29
++28 30 29 28 30 29 28 30 29 28 30 29 28 30 29 28 30 29 20 28 24 68 67 72
++20 28 24 32 31 35 28 30 29 112 124 124 188 189 180 188 189 175 189 200 189 188 189 180
++189 200 189 188 189 180 215 195 173 188 189 180 188 189 180 215 195 173 188 193 159 215 195 173
++215 195 173 212 206 189 240 208 188 215 195 173 188 177 159 123 109 109 87 76 74 87 76 74
++88 79 65 105 79 65 141 128 110 216 172 134 206 156 159 210 180 161 210 180 161 236 180 161
++236 180 161 215 195 173 240 189 188 240 189 188 188 172 163 141 128 110 103 81 83 75 83 72
++56 54 51 57 59 55 58 53 60 57 45 51 56 54 51 46 47 45 49 43 41 49 43 41
++45 39 35 41 33 22 37 33 35 45 39 35 56 54 51 71 59 54 68 64 51 58 61 60
++57 59 55 57 59 55 57 59 55 57 59 55 56 54 51 58 61 60 57 59 55 68 75 77
++104 108 124 112 124 124 122 133 132 91 128 178 166 181 211 121 182 205 143 151 181 104 108 124
++75 110 124 75 110 124 112 124 124 91 128 178 104 108 124 68 74 109 46 47 55 39 43 42
++41 38 42 35 34 35 39 43 42 35 34 35 35 34 35 35 34 35 56 54 51 57 59 55
++57 59 55 99 96 86 189 200 189 210 216 207 210 216 207 235 233 206 211 221 218 210 216 207
++212 206 189 210 216 207 211 221 218 210 216 207 210 216 207 189 200 189 203 196 201 210 216 207
++210 216 207 210 216 207 188 189 180 189 200 189 203 196 201 188 189 175 112 124 124 87 76 74
++75 83 72 75 83 72 75 83 72 71 81 67 75 83 72 88 79 65 71 81 67 71 81 67
++68 68 60 103 106 97 173 183 156 215 195 173 212 206 189 166 168 134 188 177 159 211 221 218
++203 196 201 210 216 207 163 158 149 135 123 86 162 123 29 154 14 17 154 59 17 154 59 17
++175 13 17 154 14 17 197 180 35 162 123 29 162 123 29 162 123 29 175 13 17 154 59 17
++113 97 36 87 76 74 133 58 15 133 23 15 159 26 46 175 13 17 175 13 17 154 59 17
++154 59 17 197 180 35 162 123 29 197 180 35 162 123 29 162 123 29 197 180 35 162 123 29
++162 123 29 197 180 35 162 123 29 162 123 29 154 14 17 154 14 17 154 14 17 133 23 15
++68 50 20 41 50 16 99 79 28 154 59 17 154 14 17 162 123 29 154 59 17 175 13 17
++162 123 29 162 123 29 154 59 17 162 123 29 133 23 15 154 14 17 154 59 17 68 50 20
++20 20 20 21 29 29 12 22 12 20 28 24 23 20 27 21 19 21 23 20 27 20 28 24
++20 20 20 21 19 21 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++88 79 65 104 88 73 99 96 86 99 96 86 103 106 97 122 133 132 112 124 124 83 103 97
++122 133 132 141 154 138 141 139 118 114 99 97 113 97 77 137 117 96 141 128 110 163 158 149
++188 189 175 189 200 189 188 196 234 173 188 216 211 221 218 121 182 205 189 200 189 121 182 205
++189 200 189 211 221 218 238 233 218 245 232 231 238 233 218 245 232 231 245 232 231 238 233 218
++245 232 231 238 233 218 238 233 218 238 233 218 238 233 218 238 233 218 238 233 218 235 233 206
++211 221 218 210 216 207 212 206 189 187 177 178 164 142 149 134 98 86 103 81 83 133 69 69
++104 74 73 99 61 48 104 74 73 99 61 48 68 33 37 68 50 43 68 50 20 41 28 14
++164 145 137 236 180 161 240 189 188 242 198 175 191 160 135 165 137 101 191 160 135 215 195 173
++187 177 178 173 167 157 188 189 180 210 216 207 238 233 218 238 233 218 245 232 231 141 139 118
++68 33 37 68 50 43 68 50 43 99 61 48 68 50 20 68 33 37 68 24 14 68 33 37
++99 61 48 68 50 20 68 50 43 114 99 97 246 248 239 238 233 218 211 221 218 203 196 201
++194 181 189 203 196 201 211 221 218 245 232 231 245 232 231 221 241 240 246 248 239 87 76 74
++33 35 35 20 28 24 32 31 35 30 34 36 21 29 29 28 26 35 28 26 35 28 26 35
++21 29 29 21 29 29 28 26 35 30 34 36 32 31 35 30 34 36 28 26 35 28 30 29
++28 26 35 28 30 29 28 30 29 28 30 29 28 30 29 28 30 29 28 30 29 46 47 55
++41 38 42 23 20 27 28 30 29 87 76 74 188 189 180 188 189 180 189 200 189 188 189 180
++188 189 180 188 189 175 188 189 175 188 189 180 215 195 173 215 197 156 215 197 156 242 198 157
++215 197 156 239 232 157 242 198 175 215 197 156 216 172 134 114 121 97 87 76 74 75 83 72
++68 75 77 99 79 59 105 79 65 161 121 76 191 160 135 206 156 159 236 180 161 215 195 173
++242 198 175 236 180 161 242 198 175 242 198 175 240 208 188 240 208 188 210 180 161 137 117 96
++74 57 60 57 45 51 49 43 41 46 47 45 45 39 35 45 49 35 49 43 41 49 43 41
++35 34 35 33 35 35 33 35 35 41 38 42 46 47 45 64 57 60 68 68 60 68 67 72
++68 67 72 61 60 67 64 57 60 64 57 60 68 68 60 68 68 60 68 68 60 83 103 97
++112 124 124 112 124 124 91 128 178 143 151 181 121 182 205 173 175 176 143 151 181 75 110 124
++75 110 124 104 108 124 91 128 178 112 124 124 91 128 178 75 110 124 61 60 67 39 43 42
++33 35 35 35 34 35 35 34 35 35 34 35 39 43 42 35 34 35 49 43 41 57 59 55
++58 61 60 103 106 97 203 196 201 210 216 207 210 216 207 210 216 207 211 221 218 210 216 207
++203 196 201 211 221 218 210 216 207 210 216 207 210 216 207 188 189 180 210 216 207 210 216 207
++210 216 207 203 196 201 173 175 176 210 216 207 210 216 207 189 200 189 163 158 149 141 138 138
++141 132 131 122 133 132 123 133 112 123 109 109 103 106 97 103 106 97 99 96 86 99 85 89
++75 83 72 103 106 97 188 177 159 188 177 159 166 168 134 164 145 120 164 145 120 188 189 175
++188 189 175 173 167 157 137 139 97 162 123 29 154 59 17 175 13 17 154 59 17 197 180 35
++162 123 29 162 123 29 162 123 29 213 123 36 175 13 17 154 59 17 154 14 17 162 123 29
++46 47 55 99 79 59 133 65 47 154 59 17 154 14 17 159 26 46 175 13 17 197 60 17
++162 123 29 162 123 29 197 180 35 117 142 36 154 59 17 162 123 29 197 180 35 117 142 36
++162 123 29 162 123 29 197 180 35 162 123 29 154 14 17 175 13 17 154 14 17 133 23 15
++100 41 14 27 32 26 41 33 22 99 79 28 154 14 17 154 14 17 133 11 15 162 123 29
++162 123 29 162 123 29 154 59 17 197 180 35 154 59 17 154 14 17 133 23 15 99 79 28
++68 72 23 23 19 15 20 28 24 17 19 20 20 28 24 23 20 27 20 28 24 23 20 27
++21 19 21 20 20 20 20 28 24 21 19 21 20 20 20 20 20 20 20 20 20 20 20 20
++
++123 133 112 141 132 131 157 164 157 157 164 157 141 154 138 112 124 124 83 103 97 75 83 72
++123 109 109 141 139 118 141 128 110 141 128 110 191 160 135 210 180 161 210 180 161 212 206 189
++189 200 189 211 221 218 211 221 218 211 221 218 173 188 216 189 200 189 173 188 216 173 175 176
++210 216 207 238 233 218 245 232 231 246 248 239 221 241 240 246 248 239 246 248 239 221 241 240
++246 248 239 246 248 239 221 241 240 245 232 231 221 241 240 245 232 231 246 248 239 245 232 231
++245 232 231 245 232 231 238 233 218 238 233 218 210 180 161 128 104 97 134 98 86 113 97 77
++105 79 65 104 74 73 99 61 48 99 61 48 68 50 43 68 33 37 41 33 22 68 33 37
++188 177 159 212 206 189 240 189 188 215 195 173 191 160 135 143 103 96 103 81 83 123 133 112
++143 146 150 188 189 180 210 216 207 229 221 240 238 233 218 238 233 218 238 233 218 212 206 189
++49 43 41 68 50 43 99 61 48 68 50 20 99 61 48 68 50 43 68 50 43 99 61 48
++73 50 50 99 61 48 68 50 43 99 96 86 246 248 239 245 232 231 211 221 218 210 216 207
++189 200 189 189 200 189 210 216 207 211 221 218 245 232 231 246 248 239 246 248 239 173 175 176
++13 14 11 21 29 29 28 30 29 30 34 36 30 34 36 28 26 35 30 34 36 28 30 29
++28 30 29 23 20 27 23 20 27 28 30 29 28 30 29 28 30 29 30 34 36 28 26 35
++32 31 35 28 26 35 28 26 35 28 26 35 28 26 35 28 26 35 28 30 29 33 35 35
++61 60 67 33 35 35 28 30 29 35 34 35 141 154 138 203 196 201 188 189 180 189 200 189
++188 189 180 188 189 175 188 189 175 188 189 175 215 197 156 242 198 157 239 232 157 235 213 109
++235 213 109 235 213 109 239 232 157 235 213 109 203 180 109 161 121 76 86 83 83 75 83 72
++86 83 83 104 74 73 162 123 29 202 181 82 165 137 101 184 123 101 206 156 159 236 180 161
++236 180 161 210 180 161 228 160 135 242 198 175 242 198 175 240 189 188 240 208 188 240 208 188
++242 198 175 134 98 86 68 50 43 68 50 20 68 50 20 68 33 37 49 43 41 49 43 41
++45 39 35 45 30 35 37 33 35 45 30 35 57 45 51 61 60 67 68 67 72 86 83 83
++87 76 74 75 64 67 64 57 60 74 57 60 71 59 54 68 69 55 114 99 97 143 146 150
++143 146 150 91 128 178 122 133 132 91 128 178 159 178 157 166 181 211 143 151 181 83 103 97
++83 103 97 104 108 124 75 110 124 112 124 124 112 124 124 104 108 124 61 60 67 33 35 35
++35 34 35 39 43 42 35 34 35 39 37 42 35 34 35 45 39 35 39 43 42 57 59 55
++68 68 60 114 121 97 203 196 201 203 196 201 238 233 218 210 216 207 211 221 218 210 216 207
++203 196 201 235 233 206 211 221 218 210 216 207 203 196 201 188 189 180 210 216 207 211 221 218
++210 216 207 212 206 189 173 175 176 210 216 207 210 216 207 210 216 207 203 196 201 189 200 189
++189 200 189 189 200 189 194 181 189 188 189 180 173 175 176 173 167 157 157 164 157 163 158 149
++143 146 150 114 121 97 166 168 134 165 137 101 137 139 97 165 137 101 137 139 97 141 128 110
++141 158 118 165 137 101 117 142 36 133 28 45 133 11 15 159 26 46 175 13 17 162 123 29
++197 180 35 154 59 17 162 123 29 162 123 29 175 13 17 175 13 17 162 123 29 88 79 65
++99 96 86 113 97 77 133 65 47 133 23 15 175 13 17 154 14 17 154 59 17 197 180 35
++133 58 15 162 123 29 117 142 36 197 180 35 154 59 17 162 123 29 197 180 35 162 123 29
++162 123 29 197 180 35 162 123 29 197 60 17 154 14 17 154 14 17 154 14 17 133 23 15
++68 50 20 37 33 35 41 28 14 41 50 16 162 123 29 154 14 17 154 14 17 162 123 29
++154 59 17 162 123 29 197 180 35 162 123 29 133 23 15 133 11 15 133 11 15 133 58 15
++68 72 23 41 33 22 23 20 27 23 20 27 21 19 21 23 20 27 21 19 21 23 20 27
++21 19 21 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++164 145 120 173 167 157 203 196 201 203 196 201 173 175 176 114 121 97 58 61 60 42 59 47
++104 88 73 114 121 97 165 137 101 191 160 135 206 156 159 210 180 161 191 160 135 229 200 201
++238 233 218 211 221 218 210 221 240 221 241 240 210 221 240 211 221 218 173 188 216 159 178 157
++189 200 189 221 241 240 221 241 240 245 232 231 245 232 231 246 248 239 246 248 239 245 235 246
++246 248 239 245 235 246 246 248 239 246 248 239 246 248 239 245 232 231 221 241 240 246 248 239
++246 248 239 245 232 231 245 232 231 238 233 218 188 172 163 114 99 97 134 98 86 113 97 77
++133 69 69 105 79 65 73 50 50 73 50 50 68 33 37 45 39 35 41 33 22 68 64 51
++191 160 135 215 195 173 215 195 173 216 172 134 141 108 110 99 61 48 75 64 67 123 133 112
++173 175 176 189 200 189 210 216 207 211 221 218 211 221 218 210 216 207 210 216 207 210 216 207
++114 99 97 68 50 20 73 50 50 99 61 48 99 61 48 99 61 48 99 61 48 99 61 48
++99 61 48 73 50 50 68 33 37 114 99 97 246 248 239 246 248 239 238 233 218 238 233 218
++211 221 218 238 233 218 210 216 207 238 233 218 221 241 240 245 232 231 246 248 239 221 241 240
++99 85 89 20 28 24 30 34 36 30 34 36 21 29 29 30 34 36 28 26 35 28 30 29
++21 29 29 23 20 27 20 28 24 20 20 20 20 28 24 28 30 29 23 20 27 28 26 35
++28 26 35 28 30 29 28 30 29 28 30 29 32 31 35 28 30 29 28 30 29 28 30 29
++68 67 72 20 28 24 28 30 29 39 43 42 123 133 112 203 196 201 189 200 189 188 189 180
++188 189 180 188 189 175 188 189 175 189 200 189 215 197 156 239 232 157 235 213 109 247 185 70
++235 213 109 235 213 109 247 185 70 235 213 109 247 185 70 135 123 86 104 88 73 75 83 72
++86 83 83 161 121 76 202 181 82 247 185 70 235 213 109 235 170 109 202 181 82 216 172 134
++240 189 188 242 198 175 236 180 161 216 172 134 240 189 188 242 198 175 240 208 188 240 208 188
++240 208 188 236 180 161 165 137 101 161 121 76 162 123 29 162 123 29 162 123 29 113 97 36
++113 97 36 133 65 47 99 79 28 99 79 28 99 79 28 99 61 48 104 88 73 113 97 77
++104 88 73 88 79 65 88 79 65 88 79 65 87 76 74 114 99 97 188 189 175 210 216 207
++157 164 157 122 133 132 91 128 178 143 146 150 121 182 205 166 181 211 143 146 150 104 108 124
++112 104 120 122 113 129 122 133 132 143 151 181 157 164 157 122 133 132 58 61 60 45 39 35
++39 43 42 35 34 35 41 38 42 31 42 35 41 38 42 39 43 42 56 54 51 68 68 60
++58 61 60 123 109 109 189 200 189 210 216 207 210 216 207 210 216 207 211 221 218 210 216 207
++212 206 189 211 221 218 210 216 207 210 216 207 210 216 207 188 189 180 210 216 207 210 216 207
++203 196 201 203 196 201 173 183 156 210 216 207 210 216 207 210 216 207 210 216 207 210 216 207
++210 216 207 210 216 207 210 216 207 210 216 207 210 216 207 203 196 201 203 196 201 189 200 189
++189 200 189 128 104 97 103 117 86 165 137 101 188 193 159 216 172 134 137 139 97 118 123 77
++99 85 89 75 64 67 99 79 28 133 23 15 133 23 15 154 14 17 175 13 17 175 13 17
++162 123 29 162 123 29 197 60 17 197 60 17 154 59 17 162 123 29 113 97 77 103 106 97
++114 121 97 103 106 97 133 65 47 154 59 17 159 26 46 175 13 17 162 123 29 162 123 29
++162 123 29 154 59 17 162 123 29 162 123 29 162 123 29 154 59 17 162 123 29 162 123 29
++154 59 17 162 123 29 162 123 29 154 59 17 133 23 15 175 13 17 154 14 17 133 23 15
++100 41 14 20 28 24 27 32 26 28 30 29 41 50 16 154 59 17 154 14 17 154 14 17
++154 59 17 197 180 35 133 58 15 154 14 17 154 14 17 154 14 17 133 11 15 100 41 14
++68 72 23 20 20 20 20 20 20 20 20 20 20 28 24 23 20 27 20 28 24 21 19 21
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++141 128 110 173 167 157 212 206 189 189 200 189 173 175 176 103 106 97 31 42 35 23 19 15
++71 59 54 134 98 86 164 145 137 210 180 161 210 180 161 242 198 175 240 208 188 240 208 188
++235 233 206 221 241 240 221 241 240 221 241 240 221 241 240 221 241 240 211 221 218 173 188 216
++189 200 189 238 233 218 245 232 231 246 248 239 246 248 239 246 248 239 221 241 240 246 248 239
++246 248 239 246 248 239 245 235 246 246 248 239 245 232 231 245 235 246 246 248 239 246 248 239
++245 235 246 238 233 218 238 233 218 245 232 231 164 142 149 113 97 77 128 104 97 104 88 73
++105 79 65 99 61 48 99 61 48 68 33 37 68 50 20 68 33 37 41 33 22 103 81 83
++191 160 135 210 180 161 206 156 159 161 121 76 99 61 48 71 59 54 88 79 65 163 148 159
++173 175 176 194 181 189 189 200 189 188 189 180 188 189 175 189 200 189 189 200 189 203 196 201
++188 189 180 41 33 22 73 50 50 73 50 50 99 61 48 104 74 73 99 61 48 99 61 48
++99 61 48 68 50 43 68 50 43 104 88 73 246 248 239 245 232 231 221 241 240 245 235 246
++246 248 239 246 248 239 245 232 231 221 241 240 245 232 231 246 248 239 245 235 246 246 248 239
++245 232 231 61 60 67 30 34 36 39 37 42 30 34 36 21 29 29 28 30 29 28 30 29
++28 30 29 28 30 29 23 20 27 28 30 29 21 19 21 20 20 20 21 29 29 21 29 29
++20 25 36 28 26 35 28 26 35 28 26 35 30 34 36 32 31 35 28 30 29 23 20 27
++99 85 89 21 19 21 28 30 29 21 29 29 99 85 89 203 196 201 212 206 189 188 189 175
++188 189 175 188 189 175 188 189 175 215 195 173 215 197 156 242 198 157 235 213 109 235 213 109
++235 213 109 247 185 70 247 185 70 247 185 70 202 181 82 135 123 86 88 79 65 86 83 83
++88 79 65 161 121 76 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 184 123 101
++236 180 161 242 198 175 228 160 135 191 160 135 228 160 135 236 180 161 236 180 161 231 153 161
++242 198 157 240 208 188 242 198 157 235 170 109 247 185 70 247 185 70 202 181 82 247 185 70
++247 185 70 213 123 36 197 180 35 213 123 36 197 180 35 213 123 36 161 121 76 202 181 82
++212 122 83 161 121 76 161 121 76 161 121 76 161 121 76 188 177 159 210 216 207 210 216 207
++173 175 176 122 133 132 122 133 132 143 151 181 173 175 176 121 182 205 143 146 150 141 138 138
++164 145 137 164 145 120 163 158 149 188 189 175 188 189 180 141 132 131 68 69 47 33 35 35
++41 38 42 46 47 45 46 47 45 46 47 45 49 43 41 64 57 60 87 76 74 68 67 72
++68 68 60 103 106 97 173 183 156 203 196 201 211 221 218 229 200 201 211 221 218 210 216 207
++210 216 207 211 221 218 210 216 207 210 216 207 210 216 207 194 181 189 210 216 207 210 216 207
++210 216 207 189 200 189 187 177 178 235 233 206 210 216 207 210 216 207 210 216 207 211 221 218
++235 233 206 211 221 218 210 216 207 211 221 218 211 221 218 210 216 207 210 216 207 210 216 207
++210 216 207 141 138 138 87 76 74 166 168 134 164 145 120 135 123 86 104 88 73 71 81 67
++68 75 77 86 83 83 118 123 77 133 69 69 133 65 47 181 55 69 181 55 69 197 60 17
++224 65 75 213 123 36 213 123 36 181 55 69 181 55 69 161 121 76 123 109 109 103 106 97
++103 106 97 99 96 86 105 79 65 197 60 17 213 123 36 162 123 29 197 180 35 197 180 35
++197 180 35 197 180 35 197 180 35 197 180 35 197 180 35 197 180 35 197 180 35 197 180 35
++197 180 35 117 142 36 197 180 35 162 123 29 162 123 29 154 59 17 154 59 17 154 59 17
++68 24 14 27 32 26 21 19 15 23 20 27 28 26 35 99 79 28 133 58 15 175 13 17
++162 123 29 162 123 29 133 23 15 154 14 17 154 14 17 133 11 15 100 10 13 133 58 15
++41 50 16 23 20 27 23 20 27 21 19 21 21 19 21 21 19 21 23 20 27 23 20 27
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++135 123 86 165 137 101 166 168 134 188 177 159 141 154 138 68 68 60 19 34 14 27 32 26
++88 79 65 141 128 110 206 156 159 215 195 173 240 208 188 240 208 188 240 208 188 240 208 188
++229 200 201 211 221 218 221 241 240 221 241 240 221 241 240 221 241 240 221 241 240 221 241 240
++211 221 218 221 241 240 245 232 231 221 241 240 246 248 239 246 248 239 246 248 239 245 235 246
++246 248 239 246 248 239 246 248 239 246 248 239 245 235 246 246 248 239 246 248 239 246 248 239
++246 248 239 235 233 206 238 233 218 229 200 201 141 108 110 143 103 96 128 104 97 104 74 73
++105 79 65 99 61 48 68 33 37 68 50 20 41 33 22 45 30 35 49 43 41 88 79 65
++164 145 137 188 177 159 164 145 120 105 79 65 100 41 14 88 79 65 103 106 97 157 164 157
++173 175 176 163 158 149 137 117 96 113 97 77 128 104 97 141 139 118 188 189 175 210 216 207
++245 232 231 104 88 73 68 50 43 68 50 43 99 61 48 99 61 48 99 61 48 74 57 60
++68 50 43 68 50 20 68 50 43 75 64 67 246 248 239 246 248 239 246 248 239 246 248 239
++246 248 239 245 232 231 221 241 240 245 232 231 245 232 231 221 241 240 246 248 239 245 232 231
++246 248 239 182 181 190 46 47 55 31 42 35 28 30 29 28 30 29 20 28 24 28 30 29
++23 20 27 28 30 29 28 30 29 23 20 27 23 20 27 23 19 15 23 19 15 23 20 27
++28 30 29 21 29 29 28 30 29 28 30 29 27 32 26 27 32 26 41 33 22 75 64 67
++123 109 109 41 33 22 39 28 30 28 30 29 86 83 83 210 216 207 189 200 189 188 189 175
++188 189 175 188 189 175 188 189 175 215 195 173 215 195 173 215 197 156 203 180 109 203 180 109
++202 181 82 235 213 109 202 181 82 203 180 109 161 121 76 104 88 73 88 79 65 75 83 72
++87 76 74 134 98 86 202 181 82 247 185 70 235 213 109 202 181 82 202 181 82 161 121 76
++236 180 161 242 198 157 242 198 157 236 180 161 184 123 101 184 123 101 216 122 126 228 160 135
++191 160 135 242 198 175 242 198 175 216 172 134 247 185 70 247 185 70 247 185 70 247 185 70
++247 185 70 247 185 70 247 185 70 247 185 70 202 181 82 247 185 70 247 185 70 202 181 82
++247 185 70 247 185 70 202 181 82 247 185 70 202 181 82 236 180 161 240 208 188 240 208 188
++173 167 157 122 133 132 91 128 178 91 128 178 143 151 181 166 181 211 143 151 181 166 168 134
++191 160 135 191 160 135 191 160 135 210 180 161 188 177 159 165 137 101 99 61 48 68 50 43
++68 50 20 68 50 43 68 69 55 75 64 67 88 79 65 87 76 74 86 83 83 68 68 60
++58 61 60 103 106 97 173 167 157 203 196 201 211 221 218 211 221 218 211 221 218 229 200 201
++210 216 207 211 221 218 235 233 206 210 216 207 203 196 201 189 200 189 210 216 207 210 216 207
++210 216 207 189 200 189 188 189 180 210 216 207 211 221 218 238 233 218 211 221 218 211 221 218
++210 216 207 211 221 218 210 216 207 210 216 207 210 216 207 211 221 218 210 216 207 210 216 207
++210 216 207 203 196 201 123 133 112 88 79 65 88 79 65 114 121 97 88 79 65 173 167 157
++173 175 176 141 154 138 137 139 97 213 123 36 133 65 47 181 55 69 181 55 69 224 65 75
++197 60 17 181 55 69 224 65 75 197 60 17 161 121 76 118 123 77 112 124 124 86 83 83
++68 68 60 68 68 60 133 65 47 154 59 17 154 59 17 154 59 17 154 59 17 154 59 17
++154 59 17 154 59 17 154 59 17 133 58 15 154 59 17 133 58 15 133 58 15 154 59 17
++133 58 15 154 59 17 154 59 17 154 59 17 154 59 17 154 59 17 154 59 17 154 59 17
++100 41 14 27 32 26 19 34 14 21 19 21 23 19 15 41 50 16 99 79 28 154 59 17
++154 14 17 175 13 17 154 14 17 154 14 17 133 11 15 133 11 15 100 10 13 99 79 28
++41 28 14 12 22 12 23 19 15 23 20 27 21 19 21 23 20 27 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++135 123 86 137 117 96 135 123 86 114 99 97 88 79 65 41 33 22 21 19 15 23 19 15
++88 79 65 191 160 135 210 180 161 242 198 175 240 208 188 235 233 206 240 208 188 240 208 188
++212 206 189 210 216 207 221 241 240 246 248 239 221 241 240 246 248 239 246 248 239 246 248 239
++221 241 240 238 233 218 246 248 239 238 233 218 245 232 231 221 241 240 238 233 218 221 241 240
++246 248 239 221 241 240 246 248 239 246 248 239 246 248 239 221 241 240 246 248 239 246 248 239
++245 232 231 238 233 218 212 185 189 164 145 137 123 109 109 128 104 97 128 104 97 133 69 69
++99 61 48 99 61 48 68 50 43 68 33 37 45 39 35 41 33 22 71 59 54 86 83 83
++141 128 110 163 148 159 164 133 127 105 79 65 99 61 48 88 79 65 112 124 124 163 148 159
++163 158 149 137 117 96 135 123 86 165 137 101 161 121 76 135 123 86 188 177 159 211 221 218
++245 232 231 114 121 97 68 33 37 68 50 43 68 50 43 99 61 48 99 61 48 68 50 43
++68 50 43 68 50 43 68 33 37 71 59 54 238 233 218 246 248 239 246 248 239 221 241 240
++246 248 239 246 248 239 245 232 231 221 241 240 246 248 239 246 248 239 221 241 240 245 235 246
++221 241 240 246 248 239 86 83 83 32 31 35 30 34 36 28 30 29 35 34 35 28 30 29
++27 32 26 23 20 27 28 30 29 37 33 35 48 36 41 71 59 54 68 50 43 49 43 41
++39 20 27 41 33 22 45 39 35 49 43 41 68 50 43 88 79 65 128 104 97 141 128 110
++128 104 97 71 59 54 68 50 20 45 39 35 68 67 72 212 206 189 189 200 189 188 189 175
++188 193 159 215 195 173 215 197 156 215 197 156 216 210 134 242 198 157 216 172 134 203 180 109
++203 180 109 191 160 135 172 173 110 165 137 101 135 123 86 99 96 86 86 83 83 86 83 83
++75 83 72 113 97 36 161 121 76 172 173 110 184 123 101 202 181 82 161 121 76 113 97 77
++184 123 101 242 198 157 242 198 175 242 198 175 242 198 175 242 198 175 191 160 135 184 123 101
++212 122 83 165 108 102 240 208 188 242 198 157 247 185 70 235 213 109 247 185 70 247 185 70
++247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70
++247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 235 213 109 235 213 109 216 210 134
++164 145 137 112 124 124 91 128 178 122 133 132 143 146 150 121 182 205 143 146 150 191 160 135
++235 170 109 202 181 82 203 180 109 203 180 109 235 170 109 202 181 82 162 123 29 161 121 76
++161 121 76 162 123 29 162 123 29 134 98 86 135 123 86 135 123 86 113 97 77 99 79 59
++99 79 59 128 104 97 173 183 156 203 196 201 210 216 207 210 216 207 210 216 207 210 216 207
++210 216 207 211 221 218 210 216 207 210 216 207 210 216 207 194 181 189 210 216 207 210 216 207
++203 196 201 210 216 207 203 196 201 238 233 218 211 221 218 210 216 207 238 233 218 225 201 230
++211 221 218 238 233 218 211 221 218 238 233 218 210 216 207 210 216 207 210 216 207 203 196 201
++203 196 201 203 196 201 210 216 207 173 175 176 68 68 60 71 81 67 173 167 157 188 189 180
++143 146 150 143 146 150 122 133 132 202 181 82 159 63 71 159 63 71 197 60 17 224 65 75
++224 65 75 224 65 75 197 60 17 202 181 82 103 117 86 122 133 132 103 106 97 58 61 60
++57 59 55 75 64 67 99 61 48 154 59 17 154 59 17 154 59 17 175 13 17 154 59 17
++197 60 17 154 59 17 133 23 15 154 59 17 154 14 17 154 59 17 175 13 17 154 59 17
++175 13 17 154 59 17 154 14 17 154 59 17 154 14 17 154 59 17 133 23 15 133 58 15
++68 50 20 28 32 42 41 28 14 23 19 15 28 32 42 12 22 12 41 50 16 133 58 15
++133 11 15 154 14 17 154 14 17 133 11 15 133 11 15 133 11 15 100 41 14 68 72 23
++20 28 24 20 20 20 19 34 14 21 19 27 20 28 24 20 20 20 20 20 20 23 20 27
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++113 97 77 118 123 77 137 117 96 99 96 86 68 80 50 41 33 22 31 42 35 45 39 35
++114 99 97 210 180 161 215 195 173 240 189 188 240 208 188 240 208 188 235 233 206 240 208 188
++212 206 189 188 191 205 211 221 218 210 221 240 221 241 240 246 248 239 245 235 246 245 235 246
++245 235 246 221 241 240 211 221 218 210 216 207 212 206 189 212 206 189 210 216 207 210 216 207
++210 216 207 235 233 206 211 221 218 211 221 218 238 233 218 238 233 218 238 233 218 238 233 218
++238 233 218 203 196 201 123 109 109 103 106 97 122 113 129 141 108 110 114 99 97 104 74 73
++99 61 48 73 50 50 68 33 37 41 33 22 41 33 22 45 39 35 64 57 60 75 64 67
++141 132 131 163 148 159 164 133 127 134 98 86 99 61 48 99 79 59 141 138 138 173 167 157
++163 158 149 184 128 126 216 172 134 216 172 134 191 160 135 184 123 101 188 177 159 210 216 207
++246 248 239 141 138 138 49 43 41 68 50 20 68 50 43 68 50 43 73 50 50 99 61 48
++99 61 48 68 50 43 68 50 43 68 50 43 173 175 176 246 248 239 246 248 239 246 248 239
++246 248 239 221 241 240 246 248 239 245 232 231 221 241 240 246 248 239 246 248 239 246 248 239
++245 232 231 157 164 157 21 19 27 30 34 36 23 20 27 20 28 24 21 19 21 17 19 20
++17 19 20 21 19 15 21 19 21 46 47 45 88 79 65 114 99 97 137 117 96 143 103 96
++128 104 97 143 103 96 165 137 101 141 108 110 137 117 96 143 103 96 137 117 96 165 137 101
++165 108 102 137 117 96 114 99 97 88 79 65 99 96 86 212 206 189 189 200 189 188 189 175
++215 197 156 215 197 156 239 232 157 235 213 109 235 213 109 235 213 109 235 213 109 235 213 109
++247 185 70 235 170 109 247 185 70 203 180 109 134 98 86 104 88 73 86 83 83 88 79 65
++104 88 73 161 121 76 202 181 82 203 180 109 202 181 82 203 180 109 184 123 101 134 98 86
++134 98 86 236 180 161 242 198 175 242 198 175 242 198 175 242 198 175 240 208 188 242 198 175
++242 198 157 228 160 135 184 128 126 242 198 175 242 198 157 203 180 109 203 180 109 202 181 82
++202 181 82 203 180 109 235 213 109 202 181 82 202 181 82 247 185 70 202 181 82 247 185 70
++247 185 70 202 181 82 247 185 70 247 185 70 247 185 70 247 185 70 235 213 109 202 181 82
++135 123 86 104 108 124 104 108 124 91 128 178 122 133 132 91 128 178 122 133 132 172 173 110
++247 185 70 202 181 82 247 185 70 202 181 82 247 185 70 213 123 36 202 181 82 213 123 36
++202 181 82 213 123 36 202 181 82 212 122 83 202 181 82 213 123 36 202 181 82 162 123 29
++162 123 29 165 137 101 173 183 156 189 200 189 211 221 218 210 216 207 210 216 207 203 196 201
++210 216 207 210 216 207 210 216 207 211 221 218 212 206 189 189 200 189 210 216 207 203 196 201
++212 206 189 203 196 201 212 206 189 210 216 207 203 196 201 210 216 207 210 216 207 210 216 207
++210 216 207 210 216 207 210 216 207 225 201 230 210 216 207 210 216 207 210 216 207 203 196 201
++210 216 207 210 216 207 203 196 201 210 216 207 188 191 205 157 164 157 173 175 176 173 175 176
++143 146 150 141 154 138 157 164 157 103 117 86 161 121 76 162 123 29 159 63 71 181 55 69
++181 55 69 213 123 36 161 121 76 123 133 112 141 154 138 123 109 109 86 83 83 58 53 60
++58 61 60 71 81 67 133 65 47 162 123 29 197 180 35 162 123 29 197 180 35 162 123 29
++197 180 35 162 123 29 197 180 35 162 123 29 162 123 29 197 180 35 154 59 17 197 180 35
++162 123 29 197 180 35 162 123 29 197 180 35 162 123 29 197 180 35 162 123 29 162 123 29
++68 24 14 39 20 27 23 20 27 23 20 27 20 20 20 23 20 27 20 28 24 41 50 16
++113 97 36 133 23 15 133 11 15 133 11 15 100 10 13 100 41 14 133 58 15 41 33 22
++20 28 24 20 20 20 21 19 15 20 28 24 23 20 27 21 19 21 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++113 97 77 137 117 96 164 145 137 141 139 118 103 106 97 71 81 67 114 99 97 123 133 112
++173 167 157 240 189 188 240 208 188 240 208 188 240 208 188 240 208 188 240 208 188 210 180 161
++188 189 180 189 200 189 211 221 218 210 221 240 221 241 240 221 241 240 221 241 240 246 248 239
++221 241 240 246 248 239 210 216 207 173 175 176 141 154 138 141 154 138 164 145 120 163 158 149
++164 145 137 163 158 149 163 158 149 163 158 149 173 167 157 173 183 156 188 189 175 203 196 201
++229 200 201 99 96 86 46 47 55 39 37 42 28 30 29 61 60 67 99 96 86 104 74 73
++99 61 48 68 50 43 68 50 20 45 39 35 45 30 35 74 57 60 68 68 60 64 57 60
++123 133 112 163 158 149 164 133 127 113 97 77 99 61 48 103 81 83 141 138 138 163 158 149
++206 156 159 216 172 134 242 198 157 242 198 157 228 160 135 191 160 135 216 172 134 210 216 207
++245 232 231 141 138 138 68 64 51 68 33 37 68 33 37 68 50 20 68 50 20 68 50 43
++73 50 50 99 61 48 74 57 60 64 57 60 123 109 109 246 248 239 221 241 240 245 232 231
++221 241 240 246 248 239 238 233 218 221 241 240 246 248 239 246 248 239 245 232 231 221 241 240
++246 248 239 188 191 205 68 67 72 14 14 18 14 14 18 21 19 21 13 14 11 13 14 11
++14 14 18 13 14 11 21 19 21 45 39 35 74 57 60 113 97 77 113 97 77 137 117 96
++137 117 96 143 103 96 164 133 127 165 137 101 165 108 102 137 117 96 143 103 96 141 128 110
++141 128 110 137 117 96 134 98 86 134 98 86 141 128 110 212 206 189 188 189 180 188 189 175
++212 206 189 242 198 175 235 213 109 235 213 109 235 213 109 235 213 109 247 185 70 235 213 109
++247 185 70 235 213 109 247 185 70 212 122 83 118 123 77 99 96 86 86 83 83 88 79 65
++161 121 76 202 181 82 247 185 70 247 185 70 235 170 109 247 185 70 202 181 82 162 123 29
++99 79 59 141 128 110 228 160 135 242 198 175 242 198 175 242 198 175 240 208 188 242 198 175
++236 180 161 242 198 175 184 123 101 161 121 76 184 128 126 191 160 135 165 137 101 165 137 101
++165 137 101 202 181 82 165 137 101 184 123 101 203 180 109 165 137 101 202 181 82 172 173 110
++203 180 109 202 181 82 203 180 109 202 181 82 203 180 109 203 180 109 202 181 82 202 181 82
++135 123 86 104 108 124 104 108 124 91 128 178 122 133 132 91 128 178 112 124 124 191 160 135
++202 181 82 247 185 70 213 123 36 202 181 82 247 185 70 202 181 82 247 185 70 162 123 29
++161 121 76 202 181 82 247 185 70 247 185 70 247 185 70 202 181 82 247 185 70 247 185 70
++202 181 82 203 180 109 173 167 157 203 196 201 210 216 207 211 221 218 210 216 207 212 206 189
++203 196 201 235 233 206 211 221 218 210 216 207 203 196 201 194 181 189 210 216 207 203 196 201
++188 189 180 173 167 157 188 189 175 188 189 175 188 189 175 194 181 189 189 200 189 188 189 180
++212 206 189 203 196 201 189 200 189 212 206 189 189 200 189 212 206 189 203 196 201 189 200 189
++189 200 189 189 200 189 203 196 201 189 200 189 203 196 201 189 200 189 187 177 178 173 175 176
++141 154 138 157 164 157 163 148 159 141 154 138 135 123 86 161 121 76 165 137 101 202 181 82
++202 181 82 118 123 77 112 124 124 157 164 157 141 138 138 112 104 120 75 83 72 68 67 72
++68 67 72 71 81 67 133 58 15 162 123 29 197 180 35 162 123 29 197 180 35 197 180 35
++117 142 36 162 123 29 162 123 29 133 58 15 197 60 17 154 59 17 133 23 15 162 123 29
++162 123 29 117 142 36 162 123 29 197 180 35 117 142 36 197 180 35 162 123 29 162 123 29
++68 24 14 32 31 35 23 19 15 23 20 27 27 32 26 21 19 21 23 20 27 21 19 15
++41 50 16 113 97 36 113 97 36 133 58 15 162 123 29 113 97 36 41 50 16 17 19 20
++17 19 20 21 19 21 23 20 27 17 19 20 20 20 20 23 20 27 20 28 24 23 20 27
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++118 123 77 164 145 137 188 193 159 173 175 176 141 154 138 141 138 138 173 175 176 188 189 180
++229 200 201 240 208 188 240 208 188 240 208 188 240 189 188 215 195 173 215 195 173 188 147 163
++163 158 149 188 191 205 221 241 240 221 241 240 221 241 240 221 241 240 221 241 240 221 241 240
++245 235 246 221 241 240 211 221 218 188 189 180 157 164 157 163 158 149 166 168 134 163 158 149
++163 158 149 141 154 138 164 145 137 141 154 138 141 139 118 141 138 138 143 146 150 188 177 159
++173 167 157 61 60 67 46 47 55 39 37 42 30 34 36 23 20 27 28 30 29 45 39 35
++68 50 43 68 50 43 48 36 41 41 33 22 61 46 51 103 106 97 99 85 89 74 57 60
++123 109 109 141 132 131 137 117 96 133 69 69 99 61 48 99 79 59 141 132 131 173 167 157
++191 160 135 216 172 134 236 180 161 242 198 157 236 180 161 235 170 109 191 160 135 212 206 189
++238 233 218 141 138 138 86 83 83 68 68 60 73 50 50 68 50 43 73 50 50 71 59 54
++88 79 65 75 64 67 74 57 60 45 30 35 20 28 24 188 189 180 245 232 231 246 248 239
++246 248 239 221 241 240 246 248 239 245 232 231 221 241 240 246 248 239 246 248 239 221 241 240
++245 232 231 246 248 239 221 241 240 203 196 201 112 104 120 20 20 20 23 20 27 20 20 20
++20 28 24 20 20 20 14 14 18 21 19 15 71 59 54 104 88 73 113 97 77 134 98 86
++137 117 96 113 97 77 141 128 110 141 128 110 143 103 96 137 117 96 165 108 102 137 117 96
++165 108 102 141 128 110 143 103 96 113 97 77 123 109 109 189 200 189 188 189 180 188 189 175
++215 195 173 215 197 156 242 198 157 235 213 109 247 185 70 235 213 109 235 213 109 247 185 70
++235 213 109 247 185 70 202 181 82 165 137 101 118 123 77 104 88 73 86 83 83 113 97 77
++161 121 76 247 185 70 247 185 70 247 185 70 235 213 109 247 185 70 247 185 70 161 121 76
++99 79 59 105 79 65 141 128 110 236 180 161 242 198 175 242 198 175 242 198 175 242 198 175
++240 189 188 236 180 161 236 180 161 228 160 135 228 160 135 242 198 157 235 170 109 235 170 109
++202 181 82 203 180 109 202 181 82 202 181 82 203 180 109 212 122 83 172 173 110 212 122 83
++165 137 101 184 123 101 165 137 101 184 123 101 165 137 101 212 122 83 165 137 101 184 123 101
++114 99 97 104 108 124 75 110 124 122 133 132 91 128 178 112 124 124 75 110 124 141 139 118
++184 123 101 202 181 82 184 123 101 202 181 82 212 122 83 202 181 82 202 181 82 202 181 82
++113 97 36 202 181 82 202 181 82 197 180 35 202 181 82 213 123 36 202 181 82 213 123 36
++247 185 70 203 180 109 157 164 157 189 200 189 210 216 207 211 221 218 210 216 207 203 196 201
++210 216 207 211 221 218 210 216 207 210 216 207 212 206 189 189 200 189 203 196 201 212 206 189
++157 164 157 103 106 97 103 106 97 99 96 86 103 106 97 114 121 97 123 109 109 114 121 97
++123 133 112 123 133 112 141 132 131 141 132 131 141 138 138 141 154 138 141 138 138 163 158 149
++141 154 138 163 158 149 163 158 149 163 158 149 157 164 157 173 167 157 173 175 176 173 175 176
++143 146 150 122 133 132 123 133 112 114 121 97 135 123 86 117 142 36 162 123 29 99 79 59
++103 117 86 104 108 124 123 133 112 112 124 124 122 113 129 114 121 97 103 106 97 112 104 120
++99 96 86 86 83 83 113 97 36 213 123 36 197 180 35 197 180 35 117 142 36 162 123 29
++154 59 17 197 180 35 133 58 15 154 14 17 154 59 17 154 14 17 175 13 17 154 59 17
++154 59 17 162 123 29 133 58 15 162 123 29 100 41 14 162 123 29 162 123 29 162 123 29
++68 24 14 41 33 22 23 20 27 20 28 24 20 20 20 21 19 21 21 19 21 21 19 21
++23 19 15 12 22 12 41 50 16 41 50 16 68 50 20 99 79 28 100 41 14 41 50 16
++19 34 14 21 19 27 28 26 35 17 19 20 21 19 21 21 19 21 21 19 21 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++114 121 97 166 168 134 212 206 189 189 200 189 187 177 178 189 200 189 211 221 218 211 221 218
++229 200 201 235 233 206 240 208 188 215 195 173 210 180 161 188 172 163 164 145 137 123 109 109
++112 124 124 188 189 180 210 221 240 245 235 246 221 241 240 221 241 240 245 235 246 221 241 240
++221 241 240 221 241 240 245 232 231 235 233 206 210 216 207 231 233 186 210 216 207 212 206 189
++212 206 189 212 206 189 212 206 189 212 206 189 188 177 159 143 146 150 141 132 131 143 146 150
++123 109 109 46 47 45 39 43 42 30 34 36 32 31 35 28 30 29 28 30 29 23 19 15
++23 19 15 37 33 35 71 59 54 68 68 60 112 104 120 122 113 129 103 106 97 75 64 67
++114 99 97 141 128 110 134 98 86 99 79 59 99 61 48 104 74 73 112 124 124 163 148 159
++206 156 159 216 172 134 236 180 161 242 198 157 228 160 135 203 180 109 191 160 135 188 172 163
++210 216 207 112 124 124 28 26 35 58 53 60 68 67 72 86 83 83 86 83 83 58 53 60
++49 43 41 23 20 27 20 20 20 23 20 27 20 28 24 103 106 97 246 248 239 221 241 240
++245 232 231 246 248 239 245 232 231 221 241 240 245 232 231 246 248 239 245 232 231 246 248 239
++245 232 231 221 241 240 245 235 246 246 248 239 245 232 231 58 61 60 23 20 27 20 28 24
++20 20 20 23 20 27 23 19 15 23 20 27 45 39 35 113 97 77 133 69 69 113 97 77
++105 79 65 105 79 65 134 98 86 165 108 102 165 137 101 143 103 96 135 123 86 143 103 96
++165 137 101 137 117 96 134 98 86 113 97 77 113 97 77 215 195 173 215 195 173 215 195 173
++215 197 156 215 197 156 216 210 134 203 180 109 203 180 109 247 185 70 202 181 82 235 213 109
++203 180 109 202 181 82 165 137 101 135 123 86 114 121 97 123 109 109 114 121 97 135 123 86
++165 137 101 203 180 109 235 213 109 247 185 70 235 213 109 235 213 109 247 185 70 162 123 29
++99 79 59 103 106 97 99 96 86 165 108 102 228 160 135 242 198 157 242 198 175 242 198 175
++242 198 175 236 180 161 242 198 157 242 198 157 236 180 161 236 180 161 242 198 157 235 213 109
++247 185 70 247 185 70 235 170 109 247 185 70 247 185 70 235 170 109 247 185 70 202 181 82
++247 185 70 247 185 70 202 181 82 247 185 70 202 181 82 202 181 82 202 181 82 202 181 82
++161 121 76 112 104 120 122 133 132 91 128 178 112 124 124 91 128 178 104 108 124 123 109 109
++165 137 101 161 121 76 161 121 76 161 121 76 161 121 76 161 121 76 161 121 76 161 121 76
++161 121 76 165 137 101 161 121 76 212 122 83 161 121 76 202 181 82 161 121 76 202 181 82
++161 121 76 191 160 135 173 167 157 212 206 189 211 221 218 210 216 207 210 216 207 203 196 201
++210 216 207 210 216 207 210 216 207 210 216 207 203 196 201 189 200 189 210 216 207 203 196 201
++163 158 149 86 83 83 75 83 72 87 76 74 75 83 72 87 76 74 75 83 72 87 76 74
++71 81 67 87 76 74 75 83 72 71 81 67 71 82 60 68 69 55 68 68 60 71 82 60
++68 69 55 87 76 74 75 83 72 75 83 72 86 83 83 103 106 97 173 175 176 173 175 176
++141 154 138 68 80 50 161 121 76 162 123 29 162 123 29 213 123 36 161 121 76 162 123 29
++69 83 54 68 67 72 87 76 74 75 83 72 68 75 77 75 83 72 86 83 83 86 83 83
++86 83 83 88 79 65 133 65 47 162 123 29 117 142 36 197 180 35 213 123 36 133 23 15
++175 13 17 162 123 29 162 123 29 154 59 17 197 60 17 154 59 17 197 60 17 162 123 29
++154 59 17 162 123 29 154 59 17 162 123 29 133 58 15 197 180 35 162 123 29 162 123 29
++68 24 14 27 32 26 23 20 27 20 28 24 23 20 27 20 28 24 23 19 15 23 20 27
++21 19 27 19 34 14 41 28 14 162 123 29 162 123 29 133 58 15 133 58 15 162 123 29
++99 79 28 23 19 15 20 25 36 21 19 15 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++99 96 86 173 167 157 212 206 189 189 200 189 210 216 207 211 221 218 221 241 240 229 221 240
++211 221 218 229 200 201 215 195 173 191 160 135 141 115 130 123 109 109 122 113 129 112 124 124
++112 124 124 143 151 181 211 221 218 221 241 240 221 241 240 245 235 246 221 241 240 221 241 240
++245 232 231 245 232 231 235 233 206 238 233 218 238 233 218 238 233 218 238 233 218 238 233 218
++238 233 218 235 233 206 238 233 218 235 233 206 212 206 189 157 164 157 104 108 124 112 124 124
++68 75 77 39 37 42 28 32 42 28 30 29 28 30 29 28 30 29 23 20 27 27 32 26
++20 20 20 21 19 15 21 19 21 46 47 45 122 133 132 122 113 129 83 103 97 75 64 67
++75 64 67 103 81 83 105 79 65 99 61 48 99 61 48 104 88 73 122 133 132 173 175 176
++210 180 161 216 172 134 242 198 157 236 180 161 242 198 157 228 160 135 191 160 135 164 145 120
++173 167 157 114 99 97 17 19 20 23 20 27 21 19 21 21 19 21 17 19 20 21 19 21
++14 14 18 23 20 27 20 28 24 21 19 21 27 32 26 75 83 72 246 248 239 246 248 239
++221 241 240 246 248 239 221 241 240 245 232 231 246 248 239 221 241 240 246 248 239 221 241 240
++245 232 231 246 248 239 245 232 231 246 248 239 246 248 239 157 164 157 86 83 83 123 109 109
++86 83 83 14 14 18 28 26 35 23 20 27 39 28 30 99 85 89 123 109 109 134 98 86
++105 79 65 99 79 59 133 69 69 165 137 101 134 98 86 143 103 96 134 98 86 137 117 96
++165 108 102 137 117 96 134 98 86 113 97 77 113 97 77 215 195 173 215 197 156 239 232 157
++235 213 109 242 198 157 235 213 109 235 170 109 235 213 109 235 170 109 216 172 134 235 170 109
++202 181 82 165 137 101 165 137 101 161 121 76 137 117 96 165 137 101 165 137 101 172 173 110
++203 180 109 202 181 82 202 181 82 203 180 109 203 180 109 202 181 82 202 181 82 161 121 76
++99 96 86 123 109 109 114 121 97 128 104 97 165 137 101 216 172 134 236 180 161 236 180 161
++242 198 175 242 198 157 235 170 109 242 198 157 236 180 161 236 180 161 242 198 157 247 185 70
++235 213 109 247 185 70 247 185 70 235 213 109 247 185 70 247 185 70 247 185 70 235 213 109
++247 185 70 247 185 70 235 213 109 247 185 70 247 185 70 247 185 70 247 185 70 202 181 82
++161 121 76 135 123 86 112 104 120 104 108 124 122 133 132 122 133 132 122 133 132 141 139 118
++202 181 82 212 122 83 202 181 82 165 137 101 202 181 82 184 123 101 165 137 101 184 123 101
++165 137 101 161 121 76 161 121 76 161 121 76 161 121 76 161 121 76 161 121 76 161 121 76
++161 121 76 164 145 120 173 175 176 189 200 189 211 221 218 229 200 201 210 216 207 212 206 189
++210 216 207 211 221 218 210 216 207 203 196 201 189 200 189 189 200 189 210 216 207 210 216 207
++173 175 176 123 133 112 103 106 97 103 106 97 103 106 97 99 96 86 86 83 83 86 83 83
++86 83 83 86 83 83 86 83 83 88 79 65 71 81 67 71 81 67 88 79 65 75 83 72
++68 68 60 75 64 67 68 68 60 75 64 67 71 81 67 99 96 86 159 178 157 173 175 176
++137 117 96 113 97 36 162 123 29 197 60 17 162 123 29 213 123 36 162 123 29 162 123 29
++162 123 29 68 69 47 58 61 60 61 60 67 61 46 51 57 59 55 57 59 55 56 54 51
++57 59 55 68 69 55 99 79 28 162 123 29 197 180 35 133 58 15 133 23 15 154 59 17
++175 13 17 154 59 17 197 180 35 154 59 17 175 13 17 133 23 15 175 13 17 162 123 29
++154 59 17 162 123 29 154 59 17 162 123 29 154 59 17 162 123 29 197 180 35 162 123 29
++68 24 14 41 28 14 28 30 29 20 20 20 28 30 29 23 19 15 20 28 24 28 26 35
++23 20 27 41 50 16 133 58 15 154 59 17 162 123 29 162 123 29 162 123 29 154 59 17
++154 59 17 99 79 28 41 28 14 17 19 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++99 96 86 163 158 149 189 200 189 210 216 207 211 221 218 229 221 240 221 241 240 221 241 240
++210 216 207 188 172 163 141 132 131 123 109 109 123 109 109 122 113 129 143 146 150 143 146 150
++157 164 157 157 164 157 188 196 234 221 241 240 221 241 240 221 241 240 221 241 240 246 248 239
++238 233 218 235 233 206 235 233 206 235 233 206 235 233 206 235 233 206 246 248 239 235 233 206
++238 233 218 238 233 218 238 233 218 235 233 206 231 233 186 157 164 157 104 108 124 83 103 97
++58 53 60 39 43 42 30 34 36 28 30 29 20 28 24 21 19 21 20 28 24 20 20 20
++20 20 20 20 28 24 21 19 21 28 32 42 112 124 124 96 81 123 86 83 83 68 68 60
++71 59 54 68 69 55 74 57 60 68 69 55 99 96 86 141 128 110 163 148 159 187 177 178
++188 189 175 236 180 161 242 198 157 242 198 157 242 198 157 216 172 134 191 160 135 141 128 110
++164 133 127 114 99 97 21 19 21 28 30 29 23 20 27 23 20 27 17 19 20 21 19 21
++23 20 27 23 20 27 28 30 29 21 19 21 20 28 24 61 60 67 246 248 239 246 248 239
++245 232 231 246 248 239 245 232 231 221 241 240 245 232 231 246 248 239 245 232 231 246 248 239
++245 232 231 221 241 240 238 233 218 246 248 239 245 235 246 245 235 246 221 241 240 210 216 207
++229 221 240 104 108 124 86 83 83 104 108 124 163 147 193 210 221 240 225 201 230 143 146 150
++105 79 65 105 79 65 105 79 65 143 103 96 135 123 86 134 98 86 134 98 86 134 98 86
++165 137 101 143 103 96 134 98 86 133 69 69 113 97 77 215 197 156 239 232 157 235 213 109
++235 213 109 247 185 70 235 213 109 235 213 109 247 185 70 235 213 109 235 213 109 247 185 70
++235 213 109 247 185 70 202 181 82 247 185 70 203 180 109 247 185 70 235 213 109 247 185 70
++235 170 109 247 185 70 235 170 109 247 185 70 235 170 109 235 170 109 202 181 82 212 122 83
++161 121 76 113 97 77 114 99 97 135 123 86 161 121 76 184 123 101 236 180 161 242 198 175
++240 189 188 242 198 157 228 160 135 228 160 135 236 180 161 236 180 161 236 180 161 235 170 109
++202 181 82 235 170 109 235 213 109 235 170 109 247 185 70 235 213 109 235 213 109 247 185 70
++247 185 70 235 213 109 247 185 70 247 185 70 235 213 109 247 185 70 247 185 70 247 185 70
++212 122 83 161 121 76 141 128 110 164 145 137 163 158 149 173 175 176 164 145 137 165 137 101
++247 185 70 202 181 82 247 185 70 247 185 70 247 185 70 197 180 35 247 185 70 247 185 70
++197 180 35 247 185 70 202 181 82 202 181 82 202 181 82 202 181 82 184 123 101 202 181 82
++161 121 76 172 173 110 173 175 176 212 206 189 211 221 218 211 221 218 210 216 207 203 196 201
++210 216 207 210 216 207 211 221 218 212 206 189 203 196 201 203 196 201 210 216 207 210 216 207
++203 196 201 187 177 178 188 189 180 173 175 176 173 175 176 157 164 157 163 158 149 143 146 150
++141 154 138 141 132 131 123 133 112 112 124 124 123 109 109 103 106 97 103 106 97 99 96 86
++86 83 83 86 83 83 86 83 83 87 76 74 75 83 72 103 106 97 173 175 176 173 175 176
++135 123 86 162 123 29 213 123 36 162 123 29 197 180 35 162 123 29 162 123 29 197 180 35
++197 60 17 113 97 36 58 61 60 61 60 67 68 68 60 42 59 47 58 61 60 58 53 60
++42 59 47 68 64 51 133 58 15 162 123 29 162 123 29 133 58 15 154 59 17 213 123 36
++154 59 17 154 14 17 162 123 29 162 123 29 175 13 17 154 59 17 175 13 17 162 123 29
++175 13 17 154 14 17 154 14 17 154 14 17 133 58 15 197 180 35 162 123 29 162 123 29
++68 24 14 27 32 26 23 20 27 20 28 24 23 20 27 20 20 20 23 20 27 21 19 27
++41 28 14 113 97 36 162 123 29 162 123 29 162 123 29 154 59 17 162 123 29 162 123 29
++162 123 29 154 59 17 41 50 16 18 29 26 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++141 139 118 157 164 157 188 189 180 189 200 189 210 216 207 211 221 218 229 221 240 211 221 218
++189 200 189 164 145 137 123 133 112 114 99 97 112 124 124 141 138 138 143 146 150 143 151 181
++173 175 176 173 175 176 182 181 190 210 221 240 221 241 240 221 241 240 210 221 240 211 221 218
++231 233 186 239 232 157 231 233 186 231 233 186 231 233 186 231 233 186 231 233 186 231 233 186
++231 233 186 231 233 186 231 233 186 231 233 186 239 232 157 141 132 131 104 108 124 83 103 97
++49 40 56 28 32 42 33 35 35 39 37 42 28 30 29 28 30 29 20 20 20 20 28 24
++20 20 20 21 19 15 17 19 20 46 47 45 104 108 124 96 81 123 68 75 77 75 64 67
++74 57 60 73 50 50 68 64 51 75 64 67 123 109 109 163 158 149 173 175 176 173 175 176
++188 177 159 216 172 134 191 160 135 236 180 161 228 160 135 216 172 134 184 123 101 161 121 76
++128 104 97 123 109 109 35 34 35 20 20 20 20 20 20 17 19 20 20 20 20 20 20 20
++20 20 20 20 28 24 21 19 15 21 19 21 27 32 26 28 30 29 210 216 207 246 248 239
++246 248 239 221 241 240 245 232 231 246 248 239 246 248 239 221 241 240 246 248 239 221 241 240
++245 232 231 246 248 239 246 248 239 221 241 240 210 221 240 210 221 240 210 221 240 188 196 234
++210 216 207 188 196 234 210 221 240 210 221 240 210 221 240 210 221 240 210 221 240 188 196 234
++188 191 205 123 109 109 99 79 59 143 103 96 161 121 76 113 97 77 134 98 86 161 121 76
++137 117 96 143 103 96 134 98 86 113 97 36 113 97 77 206 156 159 242 198 157 235 213 109
++235 213 109 235 213 109 247 185 70 235 213 109 235 213 109 247 185 70 235 213 109 247 185 70
++247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 235 213 109 247 185 70 247 185 70
++235 213 109 247 185 70 247 185 70 235 213 109 247 185 70 247 185 70 247 185 70 247 185 70
++161 121 76 118 123 77 99 79 59 118 123 77 161 121 76 202 181 82 247 185 70 242 198 157
++240 189 188 242 198 175 236 180 161 203 180 109 228 160 135 242 198 175 228 160 135 202 181 82
++203 180 109 202 181 82 202 181 82 202 181 82 203 180 109 202 181 82 212 122 83 202 181 82
++203 180 109 202 181 82 203 180 109 202 181 82 202 181 82 235 170 109 202 181 82 235 170 109
++202 181 82 191 160 135 191 160 135 188 177 159 210 180 161 215 195 173 166 168 134 212 122 83
++202 181 82 247 185 70 202 181 82 247 185 70 202 181 82 247 185 70 247 185 70 202 181 82
++247 185 70 247 185 70 213 123 36 247 185 70 202 181 82 247 185 70 197 180 35 247 185 70
++202 181 82 191 160 135 188 172 163 210 216 207 210 216 207 210 216 207 210 216 207 212 206 189
++210 216 207 210 216 207 210 216 207 210 216 207 189 200 189 212 206 189 211 221 218 238 233 218
++211 221 218 210 216 207 210 216 207 210 216 207 210 216 207 203 196 201 210 216 207 189 200 189
++189 200 189 188 189 180 188 189 180 187 177 178 173 175 176 173 167 157 173 167 157 157 164 157
++141 154 138 141 154 138 141 132 131 123 133 112 122 133 132 141 138 138 173 167 157 159 178 157
++161 121 76 154 59 17 162 123 29 197 180 35 197 180 35 162 123 29 162 123 29 197 180 35
++154 59 17 113 97 36 68 50 43 58 61 60 56 54 51 58 53 60 57 59 55 58 53 60
++46 47 55 56 54 51 133 58 15 162 123 29 197 180 35 162 123 29 162 123 29 162 123 29
++154 14 17 154 14 17 154 59 17 154 59 17 154 14 17 154 59 17 175 13 17 154 14 17
++162 123 29 162 123 29 154 14 17 162 123 29 162 123 29 162 123 29 117 142 36 162 123 29
++68 24 14 41 33 22 23 20 27 20 28 24 23 20 27 20 28 24 21 19 21 23 20 27
++41 50 16 154 59 17 154 59 17 197 180 35 117 142 36 162 123 29 162 123 29 162 123 29
++162 123 29 154 59 17 113 97 36 23 19 15 21 19 15 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++173 175 176 188 172 163 187 177 178 173 175 176 188 189 180 188 189 180 189 200 189 189 200 189
++173 175 176 163 158 149 141 154 138 163 158 149 157 164 157 157 164 157 173 175 176 182 181 190
++173 175 176 157 164 157 173 175 176 188 191 205 211 221 218 211 221 218 210 216 207 210 216 207
++239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157 239 232 157
++239 232 157 239 232 157 239 232 157 239 232 157 173 191 134 123 109 109 122 113 129 96 81 123
++39 43 42 31 42 35 33 35 35 35 34 35 28 30 29 28 30 29 28 30 29 23 20 27
++21 19 15 21 19 15 28 30 29 61 60 67 122 113 129 83 103 97 99 96 86 128 104 97
++113 97 77 88 79 65 56 54 51 71 81 67 141 132 131 173 175 176 203 196 201 187 177 178
++173 167 157 191 160 135 191 160 135 228 160 135 191 160 135 203 180 109 191 160 135 165 137 101
++137 117 96 164 133 127 68 64 51 17 19 20 21 19 27 21 29 29 20 28 24 23 20 27
++21 19 21 21 19 21 28 30 29 21 19 21 20 28 24 23 19 15 112 124 124 221 241 240
++246 248 239 246 248 239 221 241 240 245 232 231 221 241 240 245 232 231 245 232 231 246 248 239
++246 248 239 245 235 246 211 221 218 210 221 240 188 196 234 188 196 234 210 221 240 188 196 234
++173 188 216 188 191 205 173 188 216 210 221 240 188 196 234 210 221 240 211 221 218 188 196 234
++210 221 240 188 191 205 114 99 97 134 98 86 161 121 76 134 98 86 134 98 86 137 117 96
++165 108 102 161 121 76 134 98 86 134 98 86 105 79 65 166 168 134 215 195 173 235 213 109
++247 185 70 235 213 109 235 213 109 235 213 109 247 185 70 235 213 109 235 213 109 235 213 109
++235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 247 185 70 235 213 109 247 185 70
++235 213 109 247 185 70 235 213 109 247 185 70 235 213 109 247 185 70 235 213 109 247 185 70
++162 123 29 99 79 28 99 61 48 113 97 36 161 121 76 247 185 70 235 213 109 235 170 109
++242 198 175 236 180 161 242 198 157 235 170 109 235 170 109 242 198 157 216 172 134 235 170 109
++235 170 109 202 181 82 235 170 109 203 180 109 223 122 101 203 180 109 203 180 109 203 180 109
++203 180 109 212 122 83 172 173 110 212 122 83 165 137 101 184 123 101 165 137 101 203 180 109
++216 172 134 216 172 134 216 172 134 216 172 134 215 197 156 210 180 161 165 137 101 165 137 101
++212 122 83 202 181 82 202 181 82 212 122 83 202 181 82 212 122 83 202 181 82 202 181 82
++212 122 83 247 185 70 202 181 82 247 185 70 197 180 35 235 170 109 213 123 36 247 185 70
++202 181 82 191 160 135 173 175 176 210 216 207 210 216 207 210 216 207 210 216 207 203 196 201
++210 216 207 210 216 207 210 216 207 210 216 207 203 196 201 203 196 201 238 233 218 238 233 218
++211 221 218 238 233 218 238 233 218 238 233 218 211 221 218 211 221 218 238 233 218 211 221 218
++238 233 218 210 216 207 211 221 218 211 221 218 210 216 207 210 216 207 210 216 207 203 196 201
++210 216 207 203 196 201 188 189 180 187 177 178 188 189 180 188 189 180 157 164 157 143 146 150
++162 123 29 213 123 36 162 123 29 197 180 35 162 123 29 162 123 29 197 180 35 162 123 29
++213 123 36 162 123 29 68 50 20 58 61 60 58 61 60 58 53 60 58 53 60 58 53 60
++42 59 47 56 54 51 133 58 15 162 123 29 117 142 36 197 180 35 197 180 35 162 123 29
++154 14 17 197 60 17 162 123 29 175 13 17 133 23 15 154 14 17 154 14 17 154 59 17
++154 59 17 154 14 17 154 14 17 162 123 29 197 180 35 117 142 36 197 180 35 154 59 17
++100 41 14 27 32 26 23 20 27 20 28 24 28 26 35 20 20 20 23 19 15 20 28 24
++68 50 20 162 123 29 154 59 17 162 123 29 197 180 35 162 123 29 162 123 29 162 123 29
++154 59 17 162 123 29 113 97 36 23 19 15 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++187 177 178 173 175 176 187 177 178 187 177 178 188 189 175 187 177 178 187 177 178 173 175 176
++187 177 178 173 175 176 187 177 178 173 175 176 173 167 157 187 177 178 173 175 176 188 172 163
++173 175 176 173 175 176 173 175 176 173 175 176 188 189 180 173 175 176 173 175 176 188 189 175
++215 197 156 215 197 156 239 232 157 216 210 134 239 232 157 216 210 134 239 232 157 239 232 157
++239 232 157 239 232 157 239 232 157 216 172 134 173 167 157 163 158 149 141 154 138 141 132 131
++46 47 45 39 37 42 33 35 35 32 31 35 28 30 29 28 30 29 23 20 27 20 20 20
++21 19 21 17 19 20 13 14 11 103 106 97 122 133 132 122 113 129 141 128 110 141 128 110
++165 108 102 128 104 97 87 76 74 87 76 74 141 138 138 188 189 180 189 200 189 182 181 190
++173 167 157 164 145 137 184 123 101 184 123 101 184 123 101 184 128 126 228 160 135 184 128 126
++164 145 120 163 158 149 86 83 83 21 19 21 20 28 24 23 20 27 21 19 21 20 28 24
++23 20 27 20 28 24 23 20 27 28 30 29 23 20 27 28 30 29 27 32 26 103 106 97
++246 248 239 245 232 231 221 241 240 246 248 239 221 241 240 238 233 218 246 248 239 188 191 205
++122 133 132 75 110 124 112 124 124 143 146 150 166 181 211 211 221 218 210 221 240 210 221 240
++188 196 234 188 191 205 173 188 216 188 196 234 225 201 230 210 221 240 188 196 234 211 221 218
++188 196 234 203 196 201 141 138 138 134 98 86 134 98 86 134 98 86 161 121 76 143 103 96
++137 117 96 134 98 86 113 97 77 133 69 69 113 97 77 164 145 120 212 206 189 188 177 159
++172 173 110 164 145 120 203 180 109 172 173 110 203 180 109 172 173 110 203 180 109 203 180 109
++203 180 109 202 181 82 235 170 109 202 181 82 235 213 109 235 213 109 235 213 109 235 213 109
++235 213 109 235 213 109 247 185 70 235 213 109 247 185 70 235 213 109 247 185 70 247 185 70
++162 123 29 68 50 20 68 50 20 99 61 48 162 123 29 202 181 82 247 185 70 247 185 70
++216 210 134 236 180 161 236 180 161 242 198 157 235 213 109 247 185 70 247 185 70 235 213 109
++247 185 70 247 185 70 247 185 70 247 185 70 235 213 109 247 185 70 247 185 70 235 170 109
++202 181 82 247 185 70 202 181 82 247 185 70 202 181 82 202 181 82 235 170 109 235 170 109
++203 180 109 203 180 109 203 180 109 203 180 109 235 170 109 203 180 109 202 181 82 161 121 76
++161 121 76 165 137 101 165 137 101 165 137 101 202 181 82 161 121 76 161 121 76 212 122 83
++161 121 76 161 121 76 202 181 82 161 121 76 212 122 83 165 137 101 202 181 82 161 121 76
++212 122 83 191 160 135 188 189 180 210 216 207 210 216 207 211 221 218 210 216 207 203 196 201
++210 216 207 210 216 207 210 216 207 210 216 207 189 200 189 210 216 207 211 221 218 238 233 218
++238 233 218 211 221 218 221 241 240 238 233 218 211 221 218 238 233 218 211 221 218 238 233 218
++211 221 218 211 221 218 238 233 218 211 221 218 238 233 218 211 221 218 211 221 218 210 216 207
++211 221 218 210 216 207 210 216 207 210 216 207 210 216 207 203 196 201 163 158 149 173 175 176
++161 121 76 154 59 17 162 123 29 197 180 35 197 180 35 154 59 17 162 123 29 162 123 29
++213 123 36 154 59 17 44 55 41 58 61 60 45 62 74 56 54 51 56 54 51 56 54 51
++46 47 45 56 54 51 99 79 28 162 123 29 197 180 35 162 123 29 197 180 35 162 123 29
++154 59 17 154 59 17 162 123 29 175 13 17 154 14 17 154 14 17 154 14 17 154 14 17
++154 59 17 154 59 17 154 14 17 154 59 17 162 123 29 197 180 35 162 123 29 162 123 29
++68 24 14 19 34 14 39 20 27 20 28 24 23 20 27 20 20 20 20 28 24 21 19 21
++41 50 16 197 60 17 162 123 29 162 123 29 133 58 15 162 123 29 162 123 29 197 180 35
++133 58 15 154 59 17 162 123 29 21 19 15 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++188 189 175 187 177 178 188 189 175 188 189 175 187 177 178 187 177 178 188 189 175 187 177 178
++187 177 178 188 189 175 187 177 178 188 189 175 187 177 178 188 189 175 187 177 178 188 189 175
++173 175 176 188 189 175 188 189 175 173 175 176 173 175 176 188 189 175 173 175 176 173 175 176
++188 193 159 173 183 156 173 175 176 187 177 178 173 175 176 188 177 159 173 175 176 188 177 159
++188 177 159 188 172 163 188 177 159 188 177 159 173 175 176 188 172 163 173 175 176 143 146 150
++41 38 42 35 34 35 28 30 29 28 30 29 28 30 29 27 32 26 23 20 27 20 20 20
++20 20 20 21 19 21 17 19 20 141 138 138 163 158 149 163 158 149 164 142 149 191 160 135
++166 168 134 164 145 137 141 132 131 123 133 112 163 158 149 188 189 180 188 189 180 188 189 180
++173 175 176 163 158 149 164 145 120 165 137 101 165 137 101 172 173 110 191 160 135 191 160 135
++164 145 137 173 167 157 112 104 120 20 28 24 21 19 21 20 28 24 21 19 21 23 20 27
++27 32 26 21 19 21 28 30 29 27 32 26 20 28 24 20 28 24 27 32 26 68 75 77
++246 248 239 246 248 239 238 233 218 238 233 218 246 248 239 246 248 239 159 178 157 58 61 60
++58 53 60 58 53 60 45 62 74 35 32 58 20 25 36 68 74 109 112 124 124 122 133 132
++143 151 181 182 181 190 188 191 205 188 191 205 211 221 218 225 201 230 211 221 218 188 196 234
++203 196 201 188 196 234 157 164 157 134 98 86 133 69 69 134 98 86 135 123 86 165 108 102
++161 121 76 134 98 86 134 98 86 134 98 86 133 69 69 164 145 120 215 197 156 216 172 134
++203 180 109 191 160 135 203 180 109 184 123 101 172 173 110 165 137 101 191 160 135 164 145 120
++172 173 110 164 145 120 164 145 120 164 145 120 164 145 120 165 137 101 172 173 110 165 137 101
++172 173 110 172 173 110 172 173 110 203 180 109 173 191 134 202 181 82 202 181 82 161 121 76
++113 97 36 105 79 65 134 98 86 105 79 65 99 61 48 162 123 29 202 181 82 235 170 109
++235 170 109 235 170 109 228 160 135 242 198 157 235 213 109 247 185 70 235 213 109 247 185 70
++247 185 70 235 213 109 247 185 70 235 213 109 247 185 70 247 185 70 247 185 70 247 185 70
++235 213 109 247 185 70 247 185 70 247 185 70 235 213 109 247 185 70 247 185 70 247 185 70
++235 213 109 247 185 70 247 185 70 247 185 70 247 185 70 202 181 82 247 185 70 202 181 82
++247 185 70 202 181 82 202 181 82 202 181 82 212 122 83 202 181 82 202 181 82 165 137 101
++197 180 35 202 181 82 161 121 76 161 121 76 161 121 76 161 121 76 161 121 76 161 121 76
++135 123 86 157 164 157 188 189 180 210 216 207 211 221 218 210 216 207 210 216 207 203 196 201
++210 216 207 210 216 207 210 216 207 210 216 207 203 196 201 210 216 207 238 233 218 211 221 218
++211 221 218 211 221 218 238 233 218 211 221 218 238 233 218 211 221 218 238 233 218 211 221 218
++211 221 218 211 221 218 211 221 218 238 233 218 211 221 218 238 233 218 211 221 218 235 233 206
++211 221 218 211 221 218 210 216 207 211 221 218 210 216 207 189 200 189 173 175 176 173 183 156
++135 123 86 154 59 17 213 123 36 197 180 35 162 123 29 213 123 36 197 180 35 197 180 35
++197 60 17 113 97 36 68 68 60 57 59 55 44 55 41 56 54 51 58 53 60 56 54 51
++46 47 55 49 43 41 133 58 15 162 123 29 197 180 35 117 142 36 197 180 35 162 123 29
++154 59 17 154 59 17 197 180 35 154 59 17 154 14 17 154 14 17 154 14 17 175 13 17
++154 59 17 162 123 29 154 14 17 133 58 15 197 180 35 117 142 36 162 123 29 162 123 29
++68 24 14 27 32 26 23 20 27 20 28 24 28 26 35 20 20 20 21 19 15 32 26 35
++19 34 14 162 123 29 154 59 17 117 142 36 197 180 35 162 123 29 162 123 29 162 123 29
++154 59 17 154 59 17 68 72 23 28 26 35 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++188 189 180 188 189 180 188 189 180 187 177 178 188 189 180 188 189 180 187 177 178 188 189 175
++173 175 176 187 177 178 173 175 176 187 177 178 173 175 176 187 177 178 173 175 176 187 177 178
++173 175 176 173 175 176 188 189 175 173 175 176 188 189 175 173 175 176 188 172 163 188 189 175
++173 175 176 187 177 178 188 189 175 187 177 178 188 189 175 187 177 178 188 189 175 173 175 176
++187 177 178 188 189 175 173 175 176 187 177 178 187 177 178 188 189 175 187 177 178 163 158 149
++39 37 42 35 34 35 35 34 35 28 30 29 28 30 29 23 20 27 20 28 24 23 20 27
++20 20 20 20 20 20 35 34 35 173 175 176 173 175 176 173 167 157 173 167 157 173 167 157
++191 160 135 173 167 157 173 167 157 157 164 157 173 167 157 173 175 176 188 177 159 173 175 176
++159 178 157 157 164 157 163 158 149 163 158 149 163 158 149 191 160 135 173 167 157 173 167 157
++163 158 149 173 167 157 122 133 132 20 28 24 21 19 15 23 20 27 20 28 24 23 20 27
++21 19 21 23 20 27 23 19 15 20 20 20 27 32 26 23 19 15 28 30 29 57 59 55
++245 232 231 211 221 218 210 216 207 143 146 150 104 108 124 68 75 77 45 62 74 68 75 77
++68 74 109 68 75 77 68 74 109 104 108 124 112 124 124 104 108 124 104 108 124 104 108 124
++122 133 132 143 151 181 166 181 211 188 191 205 188 196 234 211 221 218 188 196 234 203 196 201
++188 191 205 210 221 240 182 181 190 104 88 73 105 79 65 134 98 86 134 98 86 135 123 86
++134 98 86 113 97 36 133 69 69 113 97 36 113 97 77 165 137 101 235 213 109 235 213 109
++247 185 70 235 213 109 235 170 109 235 213 109 247 185 70 235 213 109 247 185 70 235 170 109
++235 170 109 202 181 82 235 170 109 203 180 109 235 170 109 203 180 109 203 180 109 203 180 109
++203 180 109 203 180 109 203 180 109 191 160 135 203 180 109 172 173 110 165 137 101 161 121 76
++191 160 135 210 180 161 228 160 135 191 160 135 134 98 86 105 79 65 161 121 76 172 173 110
++203 180 109 165 137 101 203 180 109 184 128 126 202 181 82 203 180 109 203 180 109 202 181 82
++235 213 109 202 181 82 235 213 109 202 181 82 235 213 109 202 181 82 235 213 109 247 185 70
++235 213 109 247 185 70 235 213 109 247 185 70 247 185 70 247 185 70 235 213 109 247 185 70
++247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70
++247 185 70 247 185 70 247 185 70 247 185 70 202 181 82 247 185 70 202 181 82 247 185 70
++202 181 82 202 181 82 247 185 70 202 181 82 247 185 70 202 181 82 213 123 36 165 137 101
++118 123 77 164 145 120 188 189 180 210 216 207 210 216 207 210 216 207 211 221 218 212 206 189
++210 216 207 210 216 207 229 200 201 210 216 207 210 216 207 211 221 218 211 221 218 238 233 218
++211 221 218 238 233 218 211 221 218 211 221 218 211 221 218 211 221 218 211 221 218 211 221 218
++235 233 206 225 201 230 210 216 207 211 221 218 211 221 218 211 221 218 211 221 218 210 216 207
++210 216 207 229 200 201 210 216 207 210 216 207 210 216 207 203 196 201 163 148 159 159 178 157
++103 117 86 162 123 29 154 59 17 197 180 35 197 180 35 162 123 29 162 123 29 154 59 17
++197 60 17 69 83 54 68 64 51 57 59 55 71 59 54 58 53 60 46 47 55 56 54 51
++46 47 45 56 54 51 99 79 28 162 123 29 162 123 29 197 180 35 117 142 36 197 180 35
++133 58 15 154 14 17 197 180 35 133 58 15 154 14 17 154 14 17 154 14 17 154 14 17
++154 14 17 154 59 17 154 14 17 154 59 17 162 123 29 197 180 35 117 142 36 162 123 29
++100 41 14 27 32 26 23 20 27 20 28 24 21 19 27 20 20 20 21 19 15 23 20 27
++23 20 27 68 72 23 154 59 17 154 59 17 162 123 29 162 123 29 162 123 29 162 123 29
++133 58 15 133 58 15 41 50 16 21 19 15 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++188 189 180 194 181 189 188 189 180 188 189 180 188 189 180 188 189 180 188 189 180 187 177 178
++188 189 175 188 189 175 188 189 175 188 189 175 187 177 178 188 189 175 187 177 178 188 189 175
++188 189 175 187 177 178 187 177 178 188 189 175 173 175 176 188 189 180 187 177 178 187 177 178
++188 189 175 187 177 178 187 177 178 187 177 178 188 172 163 187 177 178 187 177 178 188 189 175
++188 189 175 173 175 176 188 189 175 173 175 176 188 189 175 187 177 178 187 177 178 143 146 150
++46 47 45 39 37 42 35 34 35 28 30 29 28 30 29 28 30 29 28 30 29 28 30 29
++23 20 27 21 19 15 86 83 83 187 177 178 187 177 178 173 175 176 188 172 163 188 172 163
++173 167 157 188 172 163 187 177 178 187 177 178 173 175 176 173 167 157 173 175 176 173 167 157
++187 177 178 173 175 176 173 175 176 173 175 176 173 175 176 173 183 156 173 175 176 188 172 163
++173 175 176 173 167 157 159 178 157 45 39 35 23 19 15 21 19 21 27 32 26 21 19 21
++27 32 26 23 20 27 27 32 26 28 30 29 21 19 21 28 30 29 28 26 35 28 32 42
++173 175 176 83 103 97 83 103 97 143 151 181 166 181 211 166 181 211 173 188 216 210 221 240
++188 196 234 210 221 240 188 196 234 211 221 218 188 196 234 188 196 234 188 196 234 188 196 234
++188 196 234 188 191 205 188 191 205 182 181 190 188 191 205 211 221 218 203 196 201 188 196 234
++188 191 205 188 191 205 188 191 205 114 99 97 113 97 36 134 98 86 134 98 86 133 69 69
++113 97 77 133 69 69 113 97 77 134 98 86 133 65 47 202 181 82 235 213 109 247 185 70
++235 213 109 247 185 70 247 185 70 235 213 109 247 185 70 235 213 109 247 185 70 247 185 70
++235 213 109 247 185 70 235 213 109 247 185 70 247 185 70 235 213 109 247 185 70 247 185 70
++247 185 70 247 185 70 247 185 70 235 213 109 247 185 70 235 170 109 203 180 109 236 180 161
++242 198 175 240 208 188 240 189 188 236 180 161 184 128 126 134 98 86 184 123 101 191 160 135
++203 180 109 165 137 101 203 180 109 165 137 101 191 160 135 165 137 101 184 128 126 165 137 101
++165 137 101 172 173 110 184 123 101 172 173 110 165 137 101 203 180 109 172 173 110 203 180 109
++172 173 110 202 181 82 203 180 109 202 181 82 203 180 109 202 181 82 202 181 82 203 180 109
++202 181 82 235 170 109 203 180 109 235 213 109 202 181 82 202 181 82 202 181 82 247 185 70
++202 181 82 247 185 70 202 181 82 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70
++247 185 70 247 185 70 247 185 70 247 185 70 197 180 35 247 185 70 247 185 70 197 180 35
++113 97 36 141 139 118 173 175 176 210 216 207 211 221 218 210 216 207 210 216 207 203 196 201
++203 196 201 210 216 207 210 216 207 203 196 201 203 196 201 212 206 189 210 216 207 203 196 201
++210 216 207 210 216 207 210 216 207 210 216 207 229 200 201 210 216 207 211 221 218 229 200 201
++210 216 207 210 216 207 210 216 207 210 216 207 210 216 207 211 221 218 229 200 201 210 216 207
++210 216 207 211 221 218 210 216 207 203 196 201 210 216 207 194 181 189 159 178 157 173 175 176
++123 109 109 99 79 28 162 123 29 154 59 17 154 59 17 175 13 17 154 59 17 162 123 29
++113 97 36 42 59 47 68 64 51 58 53 60 71 59 54 42 59 47 56 54 51 46 47 55
++46 47 45 56 54 51 133 58 15 162 123 29 197 180 35 162 123 29 197 180 35 162 123 29
++154 59 17 154 14 17 154 59 17 154 14 17 175 13 17 154 14 17 154 14 17 154 59 17
++162 123 29 133 58 15 154 14 17 162 123 29 117 142 36 197 180 35 162 123 29 162 123 29
++68 24 14 27 32 26 23 20 27 20 28 24 23 20 27 20 20 20 21 19 21 21 29 29
++13 14 11 41 50 16 68 72 23 197 60 17 133 23 15 133 23 15 154 59 17 133 23 15
++162 123 29 41 50 16 20 28 24 21 19 15 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++188 189 180 188 189 180 194 181 189 188 189 180 188 189 180 188 189 180 188 189 180 188 189 180
++188 189 180 194 181 189 188 189 180 187 177 178 173 175 176 188 189 175 187 177 178 173 175 176
++188 189 175 187 177 178 188 189 175 187 177 178 187 177 178 187 177 178 188 189 175 173 175 176
++188 189 175 187 177 178 188 189 175 187 177 178 188 189 175 173 175 176 188 193 159 187 177 178
++187 177 178 188 189 175 187 177 178 187 177 178 188 189 175 187 177 178 188 189 175 143 146 150
++49 43 41 35 34 35 28 30 29 28 30 29 21 19 21 23 20 27 21 19 21 21 19 21
++20 28 24 28 30 29 143 146 150 187 177 178 173 175 176 188 189 175 173 175 176 173 167 157
++173 167 157 187 177 178 173 175 176 188 189 175 173 175 176 188 177 159 187 177 178 187 177 178
++188 189 175 188 177 159 188 189 175 187 177 178 187 177 178 173 175 176 188 189 175 173 175 176
++187 177 178 187 177 178 188 189 175 123 133 112 21 19 21 23 20 27 21 19 21 23 20 27
++20 28 24 21 19 21 21 19 21 23 20 27 28 26 35 20 25 36 46 47 55 83 103 97
++143 151 181 188 196 234 210 221 240 188 196 234 210 221 240 188 196 234 188 196 234 188 196 234
++211 221 218 188 196 234 211 221 218 188 196 234 211 221 218 188 196 234 211 221 218 188 191 205
++210 216 207 188 196 234 182 181 190 163 147 193 188 191 205 188 191 205 188 191 205 188 191 205
++203 196 201 188 191 205 188 196 234 128 104 97 133 69 69 113 97 77 134 98 86 113 97 36
++133 69 69 113 97 36 133 69 69 134 98 86 105 79 65 203 180 109 235 213 109 235 213 109
++235 213 109 235 213 109 235 213 109 247 185 70 235 213 109 247 185 70 235 213 109 235 213 109
++247 185 70 235 213 109 247 185 70 235 213 109 235 213 109 247 185 70 235 213 109 235 213 109
++247 185 70 235 213 109 247 185 70 235 213 109 247 185 70 235 213 109 247 185 70 242 198 157
++240 208 188 240 208 188 240 208 188 242 198 175 206 156 159 191 160 135 235 170 109 235 170 109
++235 213 109 235 170 109 235 170 109 235 213 109 202 181 82 247 185 70 203 180 109 235 170 109
++203 180 109 235 170 109 202 181 82 203 180 109 203 180 109 212 122 83 172 173 110 212 122 83
++172 173 110 184 123 101 165 137 101 165 137 101 172 173 110 165 137 101 172 173 110 165 137 101
++172 173 110 165 137 101 172 173 110 184 123 101 202 181 82 202 181 82 165 137 101 202 181 82
++184 123 101 202 181 82 202 181 82 184 123 101 202 181 82 202 181 82 212 122 83 202 181 82
++212 122 83 202 181 82 212 122 83 202 181 82 202 181 82 212 122 83 202 181 82 212 122 83
++113 97 36 164 145 137 173 175 176 210 216 207 210 216 207 210 216 207 210 216 207 212 206 189
++210 216 207 210 216 207 189 200 189 163 158 149 141 154 138 141 154 138 163 158 149 163 158 149
++173 167 157 173 167 157 173 175 176 173 183 156 173 175 176 188 189 175 188 189 175 188 189 175
++188 189 180 188 189 180 188 189 180 212 185 189 189 200 189 189 200 189 189 200 189 203 196 201
++189 200 189 203 196 201 189 200 189 189 200 189 203 196 201 188 189 180 173 175 176 173 175 176
++104 108 124 71 82 60 68 69 55 113 97 36 113 97 36 197 60 17 113 97 36 99 79 28
++68 72 23 99 79 59 68 69 47 57 59 55 58 53 60 46 47 45 56 54 51 57 45 51
++46 47 45 56 54 51 99 79 28 162 123 29 162 123 29 197 180 35 117 142 36 197 180 35
++154 59 17 175 13 17 154 14 17 154 14 17 154 14 17 154 14 17 154 14 17 154 59 17
++162 123 29 162 123 29 154 59 17 162 123 29 197 180 35 162 123 29 117 142 36 162 123 29
++100 10 13 19 34 14 39 20 27 20 28 24 23 20 27 23 20 27 23 20 27 23 20 27
++41 50 16 68 72 23 68 72 23 68 72 23 99 79 28 133 58 15 113 97 36 99 79 28
++19 34 14 20 28 24 23 19 15 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++194 181 189 188 189 180 188 189 180 188 189 180 194 181 189 188 189 180 188 189 180 188 191 205
++188 196 234 211 221 218 188 196 234 188 191 205 173 175 176 188 189 175 187 177 178 163 158 149
++173 167 157 188 189 180 187 177 178 188 189 175 187 177 178 182 181 190 173 183 156 188 189 175
++188 191 205 182 181 190 188 189 175 173 175 176 188 189 175 188 189 180 188 189 175 182 181 190
++188 189 175 173 175 176 188 189 175 187 177 178 188 189 180 187 177 178 188 189 180 163 158 149
++39 43 42 28 30 29 28 30 29 23 20 27 27 32 26 21 19 21 20 28 24 21 19 21
++13 14 11 64 57 60 188 189 175 187 177 178 188 177 159 187 177 178 173 175 176 173 167 157
++173 167 157 187 177 178 187 177 178 187 177 178 173 175 176 173 175 176 173 175 176 173 175 176
++188 189 175 173 175 176 188 189 175 173 175 176 188 189 175 188 189 175 173 175 176 188 189 180
++187 177 178 188 189 175 187 177 178 187 177 178 56 54 51 23 19 15 27 32 26 23 20 27
++28 26 35 17 19 20 61 60 67 131 128 178 68 75 77 104 108 124 188 196 234 210 221 240
++210 221 240 188 196 234 210 221 240 188 196 234 188 196 234 211 221 218 188 196 234 211 221 218
++188 196 234 188 191 205 188 196 234 203 196 201 188 196 234 188 191 205 203 196 201 188 196 234
++188 191 205 188 191 205 182 181 190 173 175 176 188 191 205 182 181 190 182 181 190 188 191 205
++188 196 234 188 191 205 203 196 201 123 109 109 113 97 77 113 97 36 133 65 47 99 61 48
++99 61 48 105 79 65 113 97 36 133 69 69 99 61 48 216 172 134 216 172 134 216 210 134
++235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 235 213 109
++235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 247 185 70
++235 213 109 235 213 109 247 185 70 235 213 109 247 185 70 235 213 109 235 213 109 242 198 157
++240 208 188 240 208 188 240 208 188 240 208 188 236 180 161 216 172 134 242 198 157 235 213 109
++235 213 109 247 185 70 235 213 109 247 185 70 247 185 70 235 213 109 247 185 70 235 213 109
++247 185 70 247 185 70 235 213 109 247 185 70 235 170 109 247 185 70 235 213 109 247 185 70
++235 170 109 247 185 70 235 170 109 235 170 109 202 181 82 235 170 109 202 181 82 235 170 109
++203 180 109 202 181 82 212 122 83 202 181 82 165 137 101 165 137 101 184 123 101 165 137 101
++165 137 101 161 121 76 165 137 101 165 137 101 165 137 101 161 121 76 165 137 101 137 139 97
++165 137 101 161 121 76 165 137 101 161 121 76 184 123 101 165 137 101 161 121 76 135 123 86
++113 97 77 164 145 137 188 189 175 210 216 207 210 216 207 210 216 207 210 216 207 203 196 201
++210 216 207 210 216 207 189 200 189 123 109 109 86 83 83 87 76 74 88 79 65 86 83 83
++86 83 83 86 83 83 99 96 86 99 96 86 99 96 86 99 96 86 103 106 97 103 106 97
++114 121 97 141 128 110 123 133 112 141 139 118 141 132 131 141 132 131 141 154 138 164 145 137
++163 158 149 163 158 149 163 158 149 163 158 149 163 158 149 159 178 157 173 175 176 173 175 176
++103 106 97 87 76 74 87 76 74 104 74 73 71 81 67 68 75 77 68 72 23 162 123 29
++133 65 47 154 59 17 162 123 29 68 69 47 61 60 67 58 53 60 44 55 41 46 47 45
++46 47 45 46 47 45 133 58 15 162 123 29 162 123 29 197 180 35 197 180 35 162 123 29
++154 59 17 154 14 17 175 13 17 154 14 17 154 14 17 175 13 17 133 23 15 154 14 17
++162 123 29 197 180 35 154 59 17 162 123 29 162 123 29 197 180 35 162 123 29 162 123 29
++68 24 14 27 32 26 23 19 15 18 29 26 41 28 14 17 19 20 21 19 15 41 50 16
++154 59 17 133 58 15 100 41 14 162 123 29 68 72 23 31 42 35 19 34 14 21 19 15
++21 19 15 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++188 189 180 188 189 180 187 177 178 187 177 178 188 189 175 188 189 180 187 177 178 203 196 201
++210 221 240 210 221 240 210 221 240 203 196 201 173 175 176 188 177 159 173 175 176 141 139 118
++122 113 129 187 177 178 187 177 178 187 177 178 188 189 175 173 175 176 188 177 159 189 200 189
++203 196 201 210 216 207 182 181 190 188 189 180 188 191 205 203 196 201 188 191 205 194 181 189
++188 189 180 188 189 175 188 189 175 187 177 178 188 189 175 188 189 180 182 181 190 157 164 157
++37 33 35 28 30 29 20 28 24 28 30 29 23 20 27 21 19 21 21 19 21 23 19 15
++21 19 15 87 76 74 188 189 180 187 177 178 173 175 176 188 189 175 173 175 176 173 167 157
++173 167 157 188 172 163 187 177 178 173 183 156 187 177 178 173 183 156 187 177 178 188 189 175
++173 175 176 188 189 175 187 177 178 173 175 176 188 189 175 173 175 176 188 189 175 173 175 176
++187 177 178 188 189 180 187 177 178 188 189 180 123 109 109 21 19 15 21 19 15 17 19 20
++32 31 35 122 133 132 188 196 234 229 221 240 182 181 190 188 196 234 210 221 240 210 221 240
++210 221 240 188 196 234 211 221 218 188 196 234 211 221 218 188 196 234 203 196 201 188 196 234
++188 191 205 188 196 234 188 191 205 188 196 234 188 191 205 188 196 234 188 191 205 188 191 205
++188 191 205 188 196 234 173 175 176 173 175 176 166 181 211 182 181 190 182 181 190 188 191 205
++189 200 189 173 188 216 203 196 201 123 109 109 99 79 59 105 79 65 99 61 48 99 61 48
++133 65 47 105 79 65 133 69 69 99 79 59 134 98 86 188 177 159 191 160 135 216 172 134
++188 177 159 210 180 161 188 193 159 215 197 156 215 197 156 216 210 134 203 180 109 216 210 134
++235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 235 213 109
++235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 235 170 109 236 180 161
++242 198 175 240 189 188 242 198 175 240 189 188 236 180 161 236 180 161 242 198 157 247 185 70
++235 213 109 247 185 70 235 213 109 247 185 70 235 213 109 247 185 70 235 213 109 247 185 70
++235 213 109 247 185 70 247 185 70 235 213 109 247 185 70 235 213 109 247 185 70 247 185 70
++235 213 109 247 185 70 235 213 109 247 185 70 247 185 70 235 170 109 247 185 70 202 181 82
++235 170 109 235 170 109 203 180 109 202 181 82 235 170 109 202 181 82 202 181 82 202 181 82
++202 181 82 184 123 101 202 181 82 165 137 101 165 137 101 165 137 101 165 137 101 184 123 101
++161 121 76 165 137 101 161 121 76 161 121 76 161 121 76 161 121 76 161 121 76 113 97 36
++128 104 97 141 154 138 188 189 175 210 216 207 210 216 207 210 216 207 210 216 207 203 196 201
++210 216 207 211 221 218 203 196 201 123 133 112 86 83 83 86 83 83 75 83 72 88 79 65
++75 83 72 88 79 65 75 83 72 75 83 72 88 79 65 75 83 72 86 83 83 87 76 74
++87 76 74 75 83 72 87 76 74 87 76 74 75 83 72 87 76 74 99 96 86 86 83 83
++99 96 86 99 96 86 99 96 86 103 106 97 103 106 97 163 158 149 173 175 176 173 175 176
++103 106 97 68 75 77 75 64 67 75 64 67 61 60 67 68 69 47 113 97 36 133 23 15
++100 41 14 133 23 15 133 58 15 162 123 29 33 35 35 57 59 55 58 53 60 56 54 51
++46 47 55 49 43 41 99 79 28 162 123 29 162 123 29 197 180 35 117 142 36 197 180 35
++162 123 29 154 14 17 154 14 17 154 14 17 175 13 17 154 14 17 154 14 17 175 13 17
++154 59 17 162 123 29 133 23 15 162 123 29 197 180 35 117 142 36 197 180 35 154 59 17
++100 41 14 19 34 14 23 19 15 20 20 20 20 25 36 21 29 29 28 32 42 99 79 28
++100 41 14 100 10 13 100 10 13 100 41 14 133 58 15 41 50 16 20 28 24 21 19 15
++20 20 20 20 20 20 20 28 24 21 19 21 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++187 177 178 188 189 180 188 189 180 187 177 178 187 177 178 188 189 175 182 181 190 211 221 218
++210 221 240 245 235 246 210 221 240 225 201 230 188 189 180 173 175 176 188 189 175 141 132 131
++143 146 150 188 189 180 188 189 175 187 177 178 187 177 178 188 189 175 182 181 190 225 201 230
++229 221 240 225 201 230 211 221 218 188 196 234 210 221 240 210 221 240 210 221 240 188 189 180
++187 177 178 187 177 178 187 177 178 187 177 178 173 175 176 188 189 180 188 189 175 143 146 150
++28 30 29 28 30 29 21 19 21 28 30 29 28 30 29 27 32 26 20 20 20 21 19 15
++13 14 11 112 124 124 188 189 175 173 175 176 173 175 176 187 177 178 173 167 157 173 167 157
++173 167 157 173 183 156 188 189 175 187 177 178 188 189 175 188 189 175 187 177 178 187 177 178
++188 189 175 187 177 178 188 189 175 188 189 175 173 183 156 173 175 176 188 189 180 182 181 190
++182 181 190 189 200 189 182 181 190 173 175 176 104 108 124 56 54 51 39 37 42 141 138 138
++188 196 234 211 221 218 203 196 201 210 216 207 210 216 207 211 221 218 210 221 240 188 196 234
++210 221 240 188 196 234 211 221 218 188 196 234 211 221 218 188 196 234 211 221 218 188 191 205
++188 196 234 203 196 201 188 196 234 188 191 205 188 191 205 188 191 205 203 196 201 188 196 234
++188 191 205 189 200 189 166 181 211 173 175 176 173 175 176 182 181 190 182 181 190 188 191 205
++188 191 205 182 181 190 188 191 205 114 99 97 68 50 43 99 61 48 99 61 48 68 69 47
++99 61 48 99 61 48 68 72 23 68 50 43 141 128 110 173 183 156 173 175 176 173 167 157
++173 175 176 188 172 163 173 175 176 173 167 157 173 167 157 188 172 163 187 177 178 188 172 163
++173 167 157 188 172 163 173 175 176 188 172 163 173 167 157 173 167 157 173 167 157 191 160 135
++191 160 135 191 160 135 188 177 159 216 172 134 210 180 161 210 180 161 210 180 161 188 172 163
++210 180 161 188 189 175 215 195 173 194 181 189 210 180 161 210 180 161 215 197 156 216 172 134
++235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 235 213 109 235 213 109
++235 213 109 235 213 109 235 213 109 247 185 70 235 213 109 247 185 70 247 185 70 235 213 109
++247 185 70 235 213 109 247 185 70 247 185 70 235 213 109 247 185 70 247 185 70 247 185 70
++247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 247 185 70
++202 181 82 247 185 70 247 185 70 202 181 82 247 185 70 247 185 70 247 185 70 202 181 82
++202 181 82 202 181 82 202 181 82 202 181 82 165 137 101 202 181 82 161 121 76 161 121 76
++141 128 110 157 164 157 187 177 178 210 216 207 210 216 207 210 216 207 210 216 207 212 206 189
++210 216 207 210 216 207 203 196 201 141 154 138 123 109 109 114 121 97 103 106 97 103 106 97
++99 96 86 99 96 86 99 96 86 104 88 73 86 83 83 86 83 83 104 88 73 86 83 83
++88 79 65 75 83 72 88 79 65 75 83 72 88 79 65 75 83 72 87 76 74 75 64 67
++68 68 60 68 68 60 68 68 60 68 68 60 68 68 60 141 154 138 173 175 176 173 175 176
++103 106 97 71 81 67 75 64 67 68 75 77 71 82 60 113 97 36 133 58 15 133 23 15
++133 28 45 133 23 15 133 11 15 154 59 17 113 97 36 68 69 47 46 47 45 46 47 55
++46 47 45 68 50 43 100 41 14 162 123 29 197 180 35 117 142 36 197 180 35 162 123 29
++162 123 29 162 123 29 154 59 17 154 14 17 154 14 17 154 59 17 154 14 17 154 14 17
++133 11 15 162 123 29 133 23 15 197 180 35 117 142 36 197 180 35 162 123 29 162 123 29
++68 24 14 28 30 29 39 20 27 23 20 27 18 29 26 41 28 14 113 97 36 133 23 15
++133 11 15 133 11 15 133 11 15 100 10 13 100 41 14 113 97 36 41 33 22 21 19 21
++20 20 20 21 19 21 21 19 21 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++188 189 180 187 177 178 187 177 178 188 189 180 188 189 180 188 189 175 188 189 180 203 196 201
++229 221 240 245 235 246 229 221 240 210 221 240 194 181 189 188 189 180 187 177 178 173 175 176
++188 189 175 188 189 180 187 177 178 188 189 180 188 189 180 188 189 180 211 221 218 229 221 240
++229 221 240 229 221 240 210 221 240 210 221 240 229 221 240 229 221 240 210 221 240 203 196 201
++187 177 178 173 175 176 188 177 159 188 189 175 187 177 178 187 177 178 187 177 178 143 146 150
++27 32 26 23 20 27 27 32 26 28 30 29 23 20 27 27 32 26 21 19 21 20 20 20
++13 14 11 163 158 149 187 177 178 173 175 176 188 189 175 173 183 156 173 167 157 173 167 157
++173 175 176 173 175 176 182 181 190 173 175 176 187 177 178 173 175 176 188 189 175 187 177 178
++188 189 175 187 177 178 188 189 175 173 175 176 173 167 157 141 139 118 122 133 132 99 85 89
++173 175 176 182 181 190 188 191 205 182 181 190 28 32 42 20 25 36 28 32 42 28 32 42
++143 146 150 225 201 230 203 196 201 210 216 207 211 221 218 188 196 234 210 221 240 210 221 240
++188 196 234 211 221 218 188 196 234 210 216 207 173 188 216 203 196 201 173 188 216 211 221 218
++188 191 205 188 191 205 188 191 205 188 191 205 188 191 205 188 191 205 188 191 205 188 191 205
++182 181 190 182 181 190 173 175 176 143 151 181 173 175 176 173 175 176 173 175 176 182 181 190
++173 175 176 157 164 157 173 175 176 87 76 74 68 50 43 68 50 20 68 50 20 68 50 20
++68 50 43 68 50 20 68 33 37 68 50 43 141 128 110 173 167 157 187 177 178 173 175 176
++188 172 163 173 167 157 188 177 159 173 175 176 188 177 159 173 175 176 187 177 178 173 175 176
++187 177 178 173 175 176 173 175 176 188 172 163 173 167 157 188 172 163 173 183 156 173 167 157
++173 175 176 173 167 157 173 167 157 159 178 157 173 183 156 173 167 157 173 175 176 173 175 176
++173 167 157 173 167 157 188 172 163 188 172 163 173 167 157 173 167 157 173 167 157 191 160 135
++173 167 157 191 160 135 173 167 157 191 160 135 191 160 135 191 160 135 203 180 109 203 180 109
++203 180 109 216 172 134 203 180 109 203 180 109 203 180 109 203 180 109 216 210 134 235 170 109
++203 180 109 202 181 82 235 213 109 203 180 109 235 170 109 235 213 109 235 213 109 235 170 109
++235 213 109 247 185 70 235 213 109 247 185 70 202 181 82 247 185 70 247 185 70 247 185 70
++247 185 70 247 185 70 247 185 70 247 185 70 247 185 70 202 181 82 247 185 70 247 185 70
++247 185 70 197 180 35 247 185 70 247 185 70 247 185 70 197 180 35 247 185 70 165 137 101
++164 145 120 157 164 157 188 189 180 210 216 207 210 216 207 210 216 207 210 216 207 203 196 201
++211 221 218 238 233 218 211 221 218 203 196 201 188 189 180 188 189 180 187 177 178 159 178 157
++157 164 157 163 158 149 163 158 149 141 138 138 141 139 118 123 133 112 123 133 112 123 109 109
++99 96 86 99 96 86 99 85 89 86 83 83 86 83 83 86 83 83 86 83 83 88 79 65
++71 81 67 75 64 67 71 81 67 87 76 74 71 81 67 163 158 149 173 175 176 173 175 176
++103 106 97 68 75 77 87 76 74 68 68 60 99 79 59 162 123 29 133 23 15 133 28 45
++154 14 17 133 23 15 159 26 46 154 14 17 154 59 17 162 123 29 44 55 41 46 47 55
++46 47 45 57 59 55 99 79 28 162 123 29 162 123 29 162 123 29 197 180 35 117 142 36
++197 180 35 162 123 29 162 123 29 154 14 17 154 14 17 154 59 17 162 123 29 154 14 17
++175 13 17 162 123 29 154 59 17 162 123 29 197 180 35 162 123 29 162 123 29 154 59 17
++68 50 20 41 33 22 20 25 36 20 25 36 27 32 26 99 79 28 133 23 15 154 14 17
++154 14 17 133 11 15 133 11 15 133 11 15 100 10 13 133 58 15 68 72 23 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++187 177 178 173 175 176 173 175 176 187 177 178 187 177 178 187 177 178 189 200 189 188 191 205
++229 221 240 245 235 246 245 235 246 229 221 240 203 196 201 187 177 178 188 189 175 188 189 180
++187 177 178 188 189 180 173 175 176 187 177 178 187 177 178 203 196 201 229 221 240 245 235 246
++245 235 246 229 221 240 225 201 230 210 221 240 221 241 240 245 235 246 229 221 240 188 191 205
++187 177 178 188 189 175 173 175 176 187 177 178 188 189 180 188 189 180 188 189 180 141 138 138
++39 28 30 28 30 29 23 20 27 28 30 29 28 30 29 23 20 27 20 20 20 21 19 15
++68 68 60 187 177 178 188 189 175 187 177 178 173 175 176 187 177 178 173 167 157 173 175 176
++173 188 216 188 196 234 188 191 205 188 196 234 173 188 216 188 191 205 173 188 216 188 191 205
++188 191 205 188 191 205 182 181 190 173 175 176 157 164 157 173 175 176 141 139 118 112 124 124
++173 175 176 182 181 190 182 181 190 166 181 211 122 133 132 143 146 150 182 181 190 188 191 205
++173 188 216 210 216 207 203 196 201 210 216 207 210 216 207 203 196 201 210 216 207 188 196 234
++203 196 201 188 196 234 188 191 205 188 196 234 188 191 205 166 181 211 182 181 190 104 108 124
++173 188 216 188 191 205 166 181 211 182 181 190 188 191 205 188 191 205 182 181 190 182 181 190
++173 175 176 173 175 176 157 164 157 143 146 150 157 164 157 143 146 150 143 146 150 143 146 150
++143 146 150 141 138 138 141 132 131 71 59 54 45 49 35 68 50 20 68 33 37 45 30 35
++68 50 20 45 39 35 68 50 20 68 33 37 141 128 110 188 172 163 188 172 163 188 172 163
++188 172 163 173 175 176 187 177 178 188 172 163 187 177 178 188 177 159 188 172 163 188 177 159
++188 172 163 188 172 163 188 177 159 173 175 176 173 183 156 188 177 159 173 167 157 173 175 176
++173 167 157 159 178 157 173 167 157 173 167 157 173 167 157 173 175 176 173 167 157 173 167 157
++173 167 157 173 167 157 173 167 157 173 175 176 173 167 157 173 167 157 188 172 163 159 178 157
++173 167 157 173 167 157 173 167 157 173 167 157 166 168 134 173 167 157 163 158 149 173 167 157
++163 158 149 163 158 149 163 158 149 173 167 157 163 158 149 191 160 135 166 168 134 166 168 134
++191 160 135 191 160 135 191 160 135 191 160 135 191 160 135 172 173 110 191 160 135 172 173 110
++203 180 109 172 173 110 172 173 110 203 180 109 203 180 109 203 180 109 203 180 109 203 180 109
++203 180 109 203 180 109 203 180 109 202 181 82 202 181 82 247 185 70 202 181 82 202 181 82
++247 185 70 235 170 109 247 185 70 202 181 82 212 122 83 247 185 70 202 181 82 202 181 82
++164 145 120 163 148 159 188 189 180 210 216 207 210 216 207 210 216 207 210 216 207 189 200 189
++238 233 218 211 221 218 238 233 218 238 233 218 211 221 218 238 233 218 211 221 218 210 216 207
++210 216 207 203 196 201 210 216 207 189 200 189 203 196 201 189 200 189 188 189 180 187 177 178
++173 175 176 173 167 157 163 158 149 157 164 157 164 145 137 141 139 118 141 132 131 123 133 112
++123 109 109 123 109 109 103 106 97 103 106 97 99 85 89 157 164 157 173 175 176 157 164 157
++103 106 97 75 64 67 68 68 60 68 67 72 99 79 28 133 65 47 133 23 15 154 14 17
++154 14 17 159 26 46 175 13 17 154 14 17 175 13 17 154 59 17 113 97 36 68 50 43
++46 47 45 46 47 45 68 24 14 133 58 15 162 123 29 162 123 29 162 123 29 197 180 35
++162 123 29 197 180 35 162 123 29 154 14 17 154 14 17 175 13 17 162 123 29 162 123 29
++154 14 17 162 123 29 154 59 17 162 123 29 162 123 29 162 123 29 162 123 29 100 41 14
++41 28 14 21 19 27 12 22 12 41 50 16 133 58 15 154 59 17 154 14 17 154 14 17
++154 14 17 133 11 15 133 11 15 133 11 15 133 11 15 100 41 14 68 72 23 20 20 20
++20 20 20 21 19 21 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++173 175 176 188 177 159 188 189 175 187 177 178 188 189 180 188 189 175 188 189 180 188 191 205
++210 221 240 245 232 231 245 235 246 221 241 240 210 221 240 194 181 189 188 189 175 187 177 178
++188 189 180 187 177 178 188 189 180 187 177 178 188 189 180 225 201 230 229 221 240 245 235 246
++229 221 240 210 221 240 188 196 234 188 196 234 229 221 240 229 221 240 210 221 240 194 181 189
++187 177 178 188 189 180 188 189 180 188 189 180 187 177 178 188 189 180 188 189 180 112 124 124
++39 28 30 27 32 26 28 30 29 28 30 29 21 19 21 27 32 26 20 20 20 20 20 20
++141 138 138 188 189 180 187 177 178 173 175 176 188 172 163 188 172 163 173 175 176 166 181 211
++188 196 234 188 196 234 188 196 234 188 196 234 188 196 234 188 196 234 188 196 234 188 196 234
++188 196 234 188 196 234 188 196 234 112 104 120 86 83 83 141 154 138 114 121 97 122 133 132
++188 191 205 189 200 189 188 191 205 122 133 132 203 196 201 163 147 193 143 146 150 188 191 205
++188 191 205 188 191 205 203 196 201 210 216 207 203 196 201 211 221 218 188 191 205 188 191 205
++188 196 234 188 191 205 210 216 207 188 191 205 188 191 205 188 191 205 143 146 150 83 103 97
++143 151 181 188 191 205 173 175 176 173 175 176 166 181 211 173 175 176 173 175 176 143 151 181
++157 164 157 143 146 150 141 138 138 104 108 124 112 104 120 104 108 124 112 104 120 103 106 97
++83 103 97 75 64 67 68 68 60 45 39 35 68 50 20 45 39 35 45 39 35 41 33 22
++45 30 35 41 33 22 68 33 37 45 39 35 164 142 149 173 175 176 173 175 176 173 175 176
++173 175 176 188 189 175 173 175 176 173 175 176 173 175 176 187 177 178 173 175 176 187 177 178
++173 175 176 173 175 176 173 175 176 173 175 176 173 175 176 173 175 176 173 175 176 173 167 157
++188 172 163 173 167 157 173 167 157 173 167 157 173 167 157 173 167 157 188 172 163 173 167 157
++173 167 157 173 175 176 173 167 157 173 167 157 173 167 157 173 175 176 157 164 157 188 172 163
++173 167 157 173 167 157 163 158 149 163 158 149 173 167 157 173 167 157 173 167 157 173 167 157
++163 148 159 173 167 157 173 167 157 173 167 157 173 167 157 163 158 149 163 158 149 163 158 149
++157 164 157 163 158 149 157 164 157 141 154 138 163 158 149 163 158 149 164 145 120 141 138 138
++164 133 127 141 139 118 141 128 110 164 133 127 164 145 120 164 145 120 164 145 120 164 145 120
++191 160 135 172 173 110 184 123 101 203 180 109 191 160 135 172 173 110 191 160 135 203 180 109
++184 123 101 172 173 110 184 123 101 202 181 82 172 173 110 184 123 101 202 181 82 161 121 76
++141 128 110 141 154 138 173 175 176 187 177 178 188 189 180 194 181 189 188 189 180 173 175 176
++210 216 207 211 221 218 211 221 218 238 233 218 211 221 218 238 233 218 229 221 240 238 233 218
++211 221 218 238 233 218 211 221 218 211 221 218 211 221 218 211 221 218 210 216 207 211 221 218
++210 216 207 210 216 207 210 216 207 212 206 189 203 196 201 203 196 201 189 200 189 188 189 180
++187 177 178 173 175 176 157 164 157 157 164 157 163 158 149 173 167 157 173 175 176 157 164 157
++83 103 97 87 76 74 68 67 72 68 75 77 68 80 50 133 58 15 133 28 45 133 23 15
++159 26 46 175 13 17 175 13 17 154 59 17 175 13 17 175 13 17 175 13 17 162 123 29
++41 50 16 58 53 60 46 47 55 39 28 30 100 41 14 154 59 17 162 123 29 162 123 29
++197 180 35 117 142 36 154 59 17 175 13 17 154 14 17 154 14 17 162 123 29 162 123 29
++154 59 17 162 123 29 175 13 17 162 123 29 162 123 29 133 58 15 100 41 14 23 19 15
++20 25 36 28 26 35 41 50 16 113 97 36 154 14 17 133 11 15 154 14 17 154 14 17
++154 14 17 154 14 17 154 14 17 133 11 15 133 11 15 133 58 15 68 72 23 23 19 15
++17 19 20 17 19 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++187 177 178 173 175 176 187 177 178 173 175 176 187 177 178 187 177 178 188 189 180 194 181 189
++203 196 201 229 221 240 245 235 246 245 235 246 229 221 240 203 196 201 187 177 178 187 177 178
++187 177 178 188 189 180 187 177 178 182 181 190 210 216 207 229 221 240 229 221 240 245 235 246
++229 221 240 225 201 230 187 177 178 194 181 189 203 196 201 188 196 234 188 191 205 182 181 190
++188 189 180 187 177 178 188 189 175 187 177 178 188 189 175 187 177 178 188 189 180 123 109 109
++46 47 45 39 37 42 28 30 29 23 20 27 28 30 29 23 20 27 23 20 27 49 43 41
++189 200 189 188 189 175 187 177 178 187 177 178 173 175 176 173 183 156 157 164 157 166 181 211
++188 196 234 188 196 234 210 221 240 188 196 234 188 196 234 188 196 234 188 196 234 188 196 234
++188 196 234 188 196 234 188 196 234 99 85 89 41 38 42 56 54 51 104 88 73 141 154 138
++188 189 180 188 191 205 188 191 205 68 75 77 188 191 205 182 181 190 157 164 157 143 151 181
++182 181 190 188 191 205 188 191 205 210 216 207 203 196 201 203 196 201 188 191 205 188 191 205
++188 191 205 188 191 205 166 181 211 182 181 190 173 175 176 166 181 211 143 146 150 163 148 159
++182 181 190 173 175 176 173 175 176 157 164 157 157 164 157 157 164 157 143 146 150 143 146 150
++122 133 132 122 113 129 104 108 124 131 128 178 122 133 132 104 108 124 122 113 129 104 108 124
++103 106 97 75 64 67 49 43 41 45 39 35 45 39 35 68 50 20 41 33 22 68 50 20
++41 33 22 68 33 37 41 33 22 103 106 97 173 175 176 188 177 159 173 175 176 187 177 178
++188 177 159 173 175 176 188 189 175 187 177 178 188 189 175 173 175 176 188 189 175 173 175 176
++187 177 178 188 172 163 187 177 178 188 172 163 173 175 176 188 172 163 173 167 157 173 175 176
++173 167 157 173 167 157 173 167 157 173 175 176 173 167 157 173 175 176 173 167 157 173 175 176
++173 167 157 173 167 157 173 175 176 173 167 157 173 167 157 173 167 157 173 175 176 173 167 157
++173 167 157 173 167 157 173 167 157 173 167 157 173 167 157 163 158 149 163 158 149 173 167 157
++173 167 157 163 158 149 173 167 157 163 158 149 163 158 149 173 167 157 163 158 149 173 167 157
++163 158 149 163 158 149 163 158 149 163 158 149 163 158 149 163 158 149 163 158 149 141 154 138
++164 145 137 141 132 131 141 132 131 141 138 138 141 138 138 164 145 137 141 154 138 164 145 137
++141 132 131 164 145 120 141 138 138 164 145 137 141 132 131 164 133 127 141 139 118 164 133 127
++141 139 118 164 145 120 141 139 118 164 133 127 141 139 118 164 145 120 141 139 118 141 139 118
++123 133 112 123 133 112 141 132 131 141 154 138 141 138 138 141 154 138 143 146 150 141 139 118
++173 175 176 188 172 163 188 189 175 187 177 178 188 189 180 189 200 189 188 189 180 189 200 189
++212 206 189 203 196 201 203 196 201 210 216 207 212 206 189 210 216 207 210 216 207 212 206 189
++210 216 207 210 216 207 210 216 207 210 216 207 203 196 201 210 216 207 210 216 207 212 206 189
++203 196 201 189 200 189 173 175 176 188 189 180 173 175 176 157 164 157 157 164 157 143 146 150
++103 106 97 68 67 72 68 68 60 75 64 67 68 80 50 162 123 29 154 59 17 154 14 17
++159 26 46 175 13 17 159 26 46 175 13 17 159 26 46 154 14 17 154 14 17 154 59 17
++113 97 36 68 72 23 46 47 45 39 43 42 45 39 35 68 50 20 133 58 15 162 123 29
++162 123 29 162 123 29 162 123 29 154 14 17 175 13 17 162 123 29 117 142 36 197 180 35
++162 123 29 162 123 29 154 59 17 162 123 29 133 58 15 68 50 20 23 19 15 21 29 29
++28 30 29 68 72 23 133 58 15 154 14 17 154 14 17 154 14 17 154 14 17 154 14 17
++154 14 17 175 13 17 133 11 15 133 11 15 133 11 15 162 123 29 41 50 16 21 19 21
++21 19 15 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++188 177 159 188 189 175 188 177 159 188 189 175 188 189 175 188 189 175 188 177 159 188 189 175
++189 200 189 229 221 240 221 241 240 245 235 246 229 221 240 210 221 240 182 181 190 188 189 180
++188 189 180 187 177 178 187 177 178 194 181 189 173 175 176 229 221 240 245 235 246 245 235 246
++188 196 234 194 181 189 187 177 178 173 175 176 194 181 189 188 191 205 187 177 178 188 189 175
++187 177 178 173 175 176 173 175 176 182 181 190 182 181 190 182 181 190 203 196 201 112 124 124
++68 75 77 39 37 42 28 26 35 28 30 29 21 19 21 20 20 20 20 20 20 75 64 67
++189 200 189 188 189 175 187 177 178 173 175 176 187 177 178 188 172 163 173 167 157 157 164 157
++173 188 216 188 196 234 188 196 234 188 196 234 188 196 234 188 196 234 188 191 205 173 188 216
++188 196 234 166 181 211 166 181 211 74 57 60 37 33 35 45 49 35 56 54 51 104 88 73
++189 200 189 189 200 189 188 191 205 45 62 74 143 151 181 203 196 201 188 191 205 157 164 157
++188 191 205 182 181 190 210 216 207 203 196 201 189 200 189 189 200 189 189 200 189 182 181 190
++173 175 176 173 175 176 173 175 176 157 164 157 173 175 176 143 146 150 104 108 124 122 133 132
++143 146 150 143 146 150 122 133 132 122 133 132 104 108 124 104 108 124 104 108 124 104 108 124
++122 113 129 131 128 178 112 124 124 104 108 124 131 128 178 104 108 124 104 108 124 104 108 124
++83 103 97 99 85 89 49 43 41 68 33 37 41 33 22 45 39 35 41 33 22 68 33 37
++49 43 41 41 28 14 88 79 65 188 172 163 187 177 178 173 175 176 187 177 178 173 175 176
++187 177 178 173 175 176 188 172 163 173 175 176 187 177 178 188 177 159 173 175 176 188 172 163
++173 175 176 188 189 175 173 175 176 173 175 176 188 172 163 173 175 176 173 175 176 173 167 157
++173 175 176 173 167 157 173 175 176 173 167 157 173 167 157 173 175 176 173 167 157 173 175 176
++188 172 163 173 175 176 173 167 157 173 175 176 173 167 157 173 175 176 173 167 157 173 175 176
++173 175 176 173 167 157 173 167 157 173 167 157 173 167 157 163 158 149 173 167 157 163 158 149
++173 167 157 173 167 157 173 167 157 173 167 157 173 167 157 173 167 157 163 158 149 173 167 157
++163 158 149 163 158 149 163 158 149 163 158 149 163 158 149 163 158 149 164 142 149 164 145 137
++143 146 150 141 138 138 141 132 131 163 158 149 141 154 138 164 145 137 141 138 138 164 145 137
++141 154 138 164 145 137 141 138 138 164 145 137 141 138 138 164 145 137 141 138 138 141 138 138
++141 139 118 141 132 131 141 139 118 141 132 131 141 139 118 141 128 110 141 132 131 141 132 131
++141 132 131 123 133 112 122 133 132 123 133 112 122 113 129 141 139 118 123 133 112 123 109 109
++123 133 112 123 133 112 123 133 112 123 133 112 123 133 112 123 133 112 141 132 131 123 133 112
++122 133 132 141 132 131 141 154 138 141 132 131 141 138 138 143 146 150 163 158 149 143 146 150
++163 158 149 157 164 157 157 164 157 173 167 157 159 178 157 173 175 176 173 175 176 173 175 176
++173 183 156 143 146 150 141 132 131 141 138 138 141 138 138 103 106 97 112 124 124 123 133 112
++86 83 83 58 61 60 68 68 60 68 68 60 68 67 72 99 79 28 154 59 17 159 26 46
++175 13 17 154 59 17 175 13 17 175 13 17 175 13 17 175 13 17 154 14 17 175 13 17
++175 13 17 162 123 29 99 79 28 45 49 35 39 43 42 28 32 42 41 50 16 100 41 14
++162 123 29 162 123 29 162 123 29 154 59 17 154 14 17 154 59 17 197 180 35 162 123 29
++162 123 29 162 123 29 154 59 17 100 41 14 19 34 14 28 30 29 23 20 27 41 33 22
++113 97 36 154 59 17 133 23 15 154 14 17 154 14 17 175 13 17 154 14 17 154 14 17
++154 14 17 154 14 17 154 14 17 154 14 17 133 58 15 99 79 28 23 19 15 21 19 21
++21 19 21 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++173 175 176 187 177 178 173 175 176 188 177 159 187 177 178 187 177 178 188 189 175 187 177 178
++194 181 189 210 221 240 229 221 240 221 241 240 245 235 246 225 201 230 188 191 205 187 177 178
++188 189 175 173 175 176 188 189 180 194 181 189 143 151 181 245 235 246 163 147 193 188 196 234
++203 196 201 187 177 178 188 189 175 203 196 201 188 196 234 210 216 207 188 191 205 188 172 163
++187 177 178 189 200 189 188 191 205 188 191 205 203 196 201 211 221 218 210 221 240 141 138 138
++46 47 55 32 31 35 23 20 27 23 20 27 20 28 24 20 20 20 20 20 20 123 109 109
++194 181 189 194 181 189 188 189 180 187 177 178 173 175 176 187 177 178 173 167 157 163 148 159
++173 175 176 182 181 190 182 181 190 188 191 205 194 181 189 187 177 178 187 177 178 194 181 189
++187 177 178 187 177 178 187 177 178 75 64 67 27 32 26 41 33 22 31 42 35 123 109 109
++173 183 156 187 177 178 189 200 189 68 67 72 122 133 132 203 196 201 188 191 205 182 181 190
++143 146 150 182 181 190 182 181 190 182 181 190 188 189 180 173 167 157 141 154 138 141 154 138
++141 138 138 122 133 132 112 124 124 104 108 124 103 106 97 112 104 120 99 96 86 112 104 120
++122 133 132 112 124 124 131 128 178 122 133 132 131 128 178 143 146 150 131 128 178 131 128 178
++122 133 132 131 128 178 122 133 132 91 128 178 112 124 124 122 113 129 104 108 124 122 113 129
++112 104 120 112 104 120 87 76 74 49 43 41 68 50 20 41 33 22 68 50 20 45 39 35
++41 33 22 103 81 83 163 158 149 187 177 178 173 175 176 187 177 178 188 177 159 173 175 176
++188 189 175 173 175 176 187 177 178 188 189 175 173 175 176 173 175 176 187 177 178 173 175 176
++188 189 175 173 175 176 187 177 178 173 175 176 188 172 163 173 175 176 188 172 163 173 175 176
++173 167 157 173 175 176 173 167 157 173 167 157 173 175 176 188 172 163 173 167 157 173 167 157
++173 167 157 173 167 157 173 175 176 173 167 157 173 175 176 173 167 157 173 167 157 173 175 176
++173 167 157 173 167 157 173 175 176 173 167 157 157 164 157 173 167 157 173 167 157 157 164 157
++173 167 157 163 158 149 173 167 157 173 167 157 163 158 149 173 167 157 173 167 157 173 167 157
++163 148 159 173 167 157 163 158 149 163 158 149 163 158 149 163 158 149 143 146 150 163 158 149
++164 145 137 141 138 138 141 138 138 164 145 137 141 154 138 164 142 149 141 154 138 164 145 137
++164 145 137 141 154 138 164 145 137 141 154 138 164 145 137 141 154 138 141 139 118 141 154 138
++141 138 138 141 138 138 141 138 138 141 138 138 141 139 118 141 132 131 141 132 131 141 132 131
++141 132 131 141 132 131 141 132 131 141 132 131 123 133 112 122 113 129 123 133 112 122 113 129
++123 133 112 122 113 129 123 133 112 123 109 109 123 109 109 112 104 120 123 109 109 103 106 97
++123 109 109 114 121 97 103 106 97 103 106 97 103 106 97 123 109 109 103 106 97 103 106 97
++103 106 97 114 99 97 103 106 97 103 106 97 103 106 97 103 106 97 103 106 97 103 106 97
++103 106 97 99 96 86 86 83 83 75 83 72 86 83 83 75 83 72 86 83 83 86 83 83
++71 81 67 68 68 60 68 67 72 64 57 60 61 60 67 68 64 51 113 97 36 154 14 17
++175 13 17 175 13 17 175 13 17 159 26 46 175 13 17 154 59 17 175 13 17 175 13 17
++154 14 17 175 13 17 154 59 17 113 97 36 99 79 28 41 50 16 39 37 42 41 33 22
++68 50 20 154 59 17 162 123 29 154 59 17 154 14 17 133 11 15 162 123 29 162 123 29
++162 123 29 133 58 15 68 50 20 19 34 14 20 28 24 19 34 14 68 72 23 133 58 15
++154 14 17 154 14 17 154 14 17 154 14 17 154 14 17 154 14 17 154 14 17 133 11 15
++154 14 17 154 14 17 154 14 17 133 11 15 133 58 15 39 28 30 21 19 15 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++173 183 156 173 175 176 173 183 156 187 177 178 188 189 175 173 175 176 188 189 175 188 189 180
++182 181 190 203 196 201 229 221 240 245 235 246 221 241 240 229 221 240 210 216 207 187 177 178
++173 175 176 188 189 175 188 189 180 210 221 240 245 235 246 245 235 246 229 221 240 229 221 240
++194 181 189 188 189 175 194 181 189 211 221 218 229 221 240 210 221 240 188 196 234 188 189 180
++189 200 189 211 221 218 210 221 240 221 241 240 229 221 240 229 221 240 245 235 246 143 146 150
++35 32 58 28 30 29 23 20 27 20 28 24 23 20 27 20 28 24 21 19 15 157 164 157
++203 196 201 211 221 218 211 221 218 182 181 190 187 177 178 173 167 157 173 167 157 163 158 149
++188 177 159 188 189 180 203 196 201 203 196 201 203 196 201 203 196 201 187 177 178 187 177 178
++188 172 163 187 177 178 143 146 150 68 68 60 45 39 35 35 34 35 45 49 35 46 47 45
++173 167 157 173 175 176 173 175 176 99 85 89 46 47 55 83 103 97 143 146 150 182 181 190
++157 164 157 75 110 124 173 175 176 173 175 176 157 164 157 122 133 132 99 96 86 68 68 60
++42 59 47 157 164 157 188 189 180 189 200 189 203 196 201 188 189 180 203 196 201 203 196 201
++173 188 216 166 181 211 143 151 181 143 151 181 143 151 181 131 128 178 91 128 178 131 128 178
++122 133 132 131 128 178 122 133 132 122 113 129 122 113 129 112 124 124 122 113 129 122 133 132
++122 113 129 112 124 124 103 106 97 71 59 54 45 30 35 68 33 37 41 33 22 41 33 22
++141 108 110 188 189 175 188 172 163 187 177 178 188 172 163 173 175 176 173 175 176 188 172 163
++173 175 176 188 177 159 187 177 178 173 175 176 188 177 159 187 177 178 173 175 176 188 189 175
++188 172 163 187 177 178 188 177 159 173 175 176 187 177 178 173 167 157 173 175 176 188 172 163
++173 175 176 188 172 163 173 175 176 173 167 157 173 175 176 173 167 157 188 172 163 173 175 176
++173 175 176 173 167 157 173 175 176 173 167 157 188 172 163 173 175 176 188 172 163 173 175 176
++173 167 157 173 175 176 173 167 157 173 167 157 173 167 157 173 167 157 157 164 157 173 167 157
++163 148 159 173 167 157 173 167 157 173 167 157 173 167 157 173 167 157 163 148 159 173 167 157
++163 158 149 173 167 157 163 148 159 163 158 149 163 158 149 163 158 149 163 158 149 163 158 149
++141 154 138 141 138 138 141 139 118 163 158 149 164 142 149 141 154 138 164 145 137 163 158 149
++141 138 138 164 145 137 164 145 137 164 145 137 141 154 138 164 145 137 141 138 138 141 138 138
++141 138 138 141 154 138 141 139 118 141 132 131 141 132 131 141 132 131 141 132 131 141 139 118
++122 133 132 141 128 110 122 133 132 141 128 110 122 133 132 141 128 110 122 133 132 141 128 110
++123 133 112 122 113 129 123 133 112 123 109 109 123 133 112 114 121 97 112 104 120 114 121 97
++112 104 120 103 106 97 123 109 109 123 109 109 103 106 97 103 106 97 123 109 109 103 106 97
++103 106 97 103 106 97 103 106 97 103 106 97 114 99 97 99 96 86 99 85 89 99 96 86
++86 83 83 99 96 86 86 83 83 99 96 86 86 83 83 86 83 83 87 76 74 75 83 72
++75 64 67 75 83 72 68 67 72 61 60 67 68 68 60 71 81 67 99 79 28 154 59 17
++154 59 17 175 13 17 159 26 46 175 13 17 154 14 17 175 13 17 175 13 17 154 59 17
++162 123 29 154 59 17 175 13 17 175 13 17 154 59 17 162 123 29 99 79 28 41 50 16
++30 34 36 41 50 16 100 41 14 133 58 15 133 11 15 100 41 14 154 59 17 162 123 29
++68 50 20 41 28 14 19 34 14 31 42 35 68 72 23 162 123 29 154 59 17 154 14 17
++175 13 17 154 14 17 162 123 29 162 123 29 154 59 17 133 11 15 154 14 17 154 14 17
++154 14 17 154 14 17 133 11 15 154 59 17 68 72 23 19 34 14 17 19 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++173 183 156 173 183 156 170 184 134 173 183 156 170 184 134 173 183 156 173 183 156 173 183 156
++173 183 156 188 189 180 210 221 240 229 221 240 229 221 240 210 221 240 203 196 201 173 175 176
++188 193 159 173 175 176 203 196 201 210 221 240 229 221 240 229 221 240 229 221 240 188 196 234
++182 181 190 188 189 175 188 189 180 225 201 230 210 221 240 210 221 240 210 221 240 188 191 205
++211 221 218 210 221 240 245 235 246 229 221 240 245 235 246 229 221 240 221 241 240 122 113 129
++28 32 42 23 20 27 28 30 29 23 20 27 21 19 21 23 20 27 32 26 35 188 191 205
++210 221 240 210 221 240 229 221 240 203 196 201 182 181 190 173 167 157 173 167 157 163 158 149
++173 175 176 203 196 201 210 221 240 229 221 240 229 221 240 210 221 240 203 196 201 182 181 190
++188 189 175 188 189 175 173 175 176 68 68 60 61 60 67 46 47 45 41 38 42 31 42 35
++112 104 120 173 167 157 173 175 176 159 178 157 143 146 150 143 146 150 166 181 211 173 175 176
++68 67 72 46 47 45 30 34 36 86 83 83 58 61 60 41 33 22 20 28 24 20 28 24
++28 26 35 173 167 157 194 181 189 188 189 180 188 189 180 189 200 189 188 189 180 182 181 190
++166 181 211 163 147 193 121 182 205 143 151 181 131 128 178 131 128 178 131 128 178 122 133 132
++131 128 178 122 133 132 122 133 132 141 138 138 122 133 132 122 133 132 122 133 132 122 133 132
++122 133 132 122 133 132 123 133 112 114 99 97 68 50 20 41 33 22 68 50 43 123 109 109
++173 167 157 173 167 157 173 175 176 188 172 163 173 175 176 187 177 178 188 189 175 173 175 176
++188 189 175 173 175 176 187 177 178 188 189 175 173 175 176 187 177 178 188 189 175 173 175 176
++188 189 175 173 175 176 187 177 178 173 175 176 188 172 163 173 175 176 188 172 163 173 175 176
++188 172 163 173 175 176 188 172 163 173 175 176 173 167 157 187 177 178 203 196 201 211 221 218
++188 191 205 182 181 190 173 167 157 173 175 176 173 167 157 173 175 176 173 167 157 173 175 176
++188 189 180 187 177 178 173 175 176 157 164 157 173 167 157 173 167 157 163 148 159 173 167 157
++173 167 157 173 167 157 163 148 159 173 167 157 163 148 159 173 167 157 173 167 157 163 158 149
++173 167 157 163 158 149 163 158 149 163 158 149 163 158 149 163 158 149 164 145 137 163 158 149
++164 145 137 164 145 137 141 138 138 143 146 150 164 145 137 143 146 150 164 145 137 143 146 150
++164 145 137 163 158 149 143 146 150 164 145 137 143 146 150 164 145 137 141 154 138 141 138 138
++164 145 137 141 138 138 141 138 138 141 139 118 141 154 138 141 139 118 141 138 138 141 132 131
++141 132 131 141 132 131 141 132 131 122 133 132 141 115 130 123 133 112 122 113 129 123 133 112
++122 113 129 141 128 110 123 109 109 112 124 124 123 109 109 112 124 124 114 121 97 112 104 120
++114 121 97 123 109 109 123 109 109 103 106 97 123 109 109 123 109 109 103 106 97 103 106 97
++114 99 97 103 106 97 114 99 97 103 106 97 99 96 86 103 106 97 99 96 86 86 83 83
++99 96 86 99 96 86 86 83 83 86 83 83 86 83 83 75 83 72 86 83 83 87 76 74
++75 64 67 75 83 72 68 68 60 58 61 60 68 64 51 68 67 72 61 60 67 162 123 29
++175 13 17 154 59 17 175 13 17 175 13 17 154 59 17 175 13 17 159 26 46 162 123 29
++162 123 29 175 13 17 175 13 17 154 59 17 154 14 17 154 14 17 154 59 17 154 59 17
++99 79 28 68 72 23 68 72 23 68 24 14 133 58 15 162 123 29 133 58 15 68 50 20
++68 50 20 99 79 28 99 79 28 154 59 17 154 14 17 154 14 17 154 14 17 154 14 17
++162 123 29 162 123 29 154 59 17 162 123 29 162 123 29 154 59 17 154 14 17 154 14 17
++154 14 17 175 13 17 154 59 17 99 79 28 27 32 26 18 29 26 21 19 15 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++170 184 134 172 173 110 170 184 134 170 184 134 170 184 134 172 173 110 170 184 134 170 184 134
++170 184 134 166 168 134 173 183 156 203 196 201 211 221 218 211 221 218 188 189 180 173 183 156
++173 183 156 173 183 156 188 189 175 210 216 207 210 221 240 210 221 240 210 221 240 182 181 190
++173 183 156 173 183 156 173 175 176 211 221 218 166 181 211 35 32 58 173 188 216 188 191 205
++188 196 234 229 221 240 229 221 240 210 221 240 210 221 240 210 221 240 245 235 246 96 81 123
++28 32 42 28 26 35 23 20 27 20 28 24 23 19 15 27 32 26 58 53 60 225 201 230
++225 201 230 229 221 240 229 221 240 210 221 240 188 191 205 173 175 176 163 158 149 173 167 157
++187 177 178 203 196 201 229 221 240 221 241 240 245 235 246 210 221 240 210 221 240 182 181 190
++188 189 175 188 172 163 188 189 180 188 191 205 210 221 240 182 181 190 41 38 42 41 33 22
++44 55 41 141 139 118 141 154 138 163 158 149 163 158 149 173 175 176 182 181 190 182 181 190
++20 25 36 18 29 26 14 14 18 30 34 36 20 20 20 20 28 24 17 19 20 20 28 24
++23 20 27 123 109 109 189 200 189 188 189 180 194 181 189 203 196 201 211 221 218 166 181 211
++166 181 211 143 151 181 143 151 181 131 128 178 143 151 181 141 154 138 91 128 178 143 146 150
++122 133 132 131 128 178 122 133 132 131 128 178 141 138 138 141 132 131 143 146 150 141 138 138
++143 146 150 143 146 150 143 146 150 141 132 131 74 57 60 71 59 54 173 167 157 187 177 178
++173 175 176 188 189 175 173 175 176 187 177 178 187 177 178 187 177 178 173 175 176 187 177 178
++187 177 178 188 189 175 173 175 176 187 177 178 173 175 176 188 189 175 173 175 176 187 177 178
++187 177 178 188 189 175 173 175 176 187 177 178 187 177 178 173 175 176 188 172 163 173 175 176
++173 167 157 173 175 176 188 172 163 173 175 176 188 172 163 188 191 205 229 221 240 229 221 240
++210 221 240 188 196 234 182 181 190 173 167 157 173 175 176 173 167 157 173 175 176 188 191 205
++225 201 230 188 196 234 188 191 205 173 167 157 173 175 176 157 164 157 173 167 157 173 167 157
++163 148 159 157 164 157 173 167 157 173 167 157 163 158 149 173 167 157 163 158 149 163 148 159
++173 167 157 163 148 159 157 164 157 163 158 149 163 158 149 164 145 137 143 146 150 164 145 137
++141 154 138 141 132 131 141 139 118 164 145 137 143 146 150 164 145 137 163 158 149 143 146 150
++164 145 137 143 146 150 164 145 137 143 146 150 141 154 138 141 138 138 141 138 138 164 145 137
++141 138 138 141 154 138 141 138 138 141 138 138 141 138 138 141 138 138 141 138 138 141 139 118
++141 138 138 141 139 118 122 133 132 141 128 110 122 133 132 141 128 110 122 113 129 141 128 110
++122 133 132 123 133 112 122 113 129 123 109 109 123 109 109 123 109 109 112 124 124 123 109 109
++114 121 97 104 108 124 114 121 97 112 104 120 114 121 97 103 106 97 123 109 109 123 109 109
++103 106 97 103 106 97 103 106 97 103 106 97 99 85 89 103 106 97 99 85 89 99 85 89
++99 96 86 86 83 83 99 96 86 86 83 83 86 83 83 86 83 83 87 76 74 75 83 72
++71 81 67 75 83 72 68 67 72 57 59 55 68 68 60 68 68 60 68 68 60 68 68 60
++213 123 36 154 14 17 175 13 17 175 13 17 175 13 17 175 13 17 154 59 17 197 180 35
++154 59 17 175 13 17 162 123 29 197 180 35 154 59 17 154 14 17 154 14 17 154 14 17
++154 14 17 175 13 17 154 59 17 162 123 29 100 41 14 41 28 14 68 50 20 162 123 29
++154 59 17 133 23 15 154 14 17 154 14 17 154 14 17 133 23 15 154 59 17 154 14 17
++162 123 29 154 59 17 154 14 17 154 14 17 162 123 29 162 123 29 175 13 17 133 11 15
++154 14 17 133 23 15 133 58 15 41 50 16 20 20 20 23 20 27 21 19 15 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 166 168 134
++170 184 134 170 184 134 170 184 134 173 191 134 173 183 156 173 183 156 173 183 156 170 184 134
++170 184 134 170 184 134 159 178 157 173 183 156 182 181 190 189 200 189 187 177 178 173 183 156
++170 184 134 170 184 134 170 184 134 188 189 175 188 189 180 42 59 47 141 154 138 173 183 156
++189 200 189 211 221 218 210 221 240 203 196 201 182 181 190 173 175 176 189 200 189 58 61 60
++27 32 26 28 26 35 20 28 24 27 32 26 20 20 20 20 28 24 99 96 86 188 196 234
++188 191 205 229 221 240 229 221 240 210 221 240 188 191 205 173 183 156 173 167 157 163 158 149
++188 189 180 211 221 218 221 241 240 245 235 246 245 235 246 221 241 240 210 221 240 188 189 180
++188 189 175 188 189 180 194 181 189 210 221 240 229 221 240 245 235 246 166 181 211 68 67 72
++46 47 55 31 42 35 87 76 74 123 133 112 122 133 132 163 158 149 159 178 157 182 181 190
++46 47 55 30 34 36 28 30 29 21 29 29 17 19 20 20 28 24 20 28 24 21 19 15
++20 20 20 103 106 97 188 189 180 189 200 189 203 196 201 194 181 189 68 75 77 46 47 55
++45 62 74 68 74 109 122 133 132 122 133 132 131 128 178 122 133 132 143 146 150 122 133 132
++143 146 150 141 138 138 143 146 150 141 138 138 143 146 150 143 146 150 143 146 150 143 146 150
++163 148 159 141 138 138 141 138 138 141 132 131 103 106 97 163 158 149 187 177 178 188 189 175
++187 177 178 188 189 175 173 175 176 188 172 163 173 175 176 188 172 163 173 175 176 188 172 163
++173 175 176 173 175 176 187 177 178 173 175 176 188 189 175 173 175 176 187 177 178 187 177 178
++188 189 175 173 175 176 187 177 178 188 177 159 173 175 176 188 172 163 173 175 176 188 172 163
++173 175 176 173 167 157 173 175 176 173 167 157 173 175 176 225 201 230 245 235 246 245 235 246
++229 221 240 210 221 240 182 181 190 173 175 176 188 172 163 173 167 157 173 175 176 211 221 218
++229 221 240 229 221 240 188 191 205 173 175 176 157 164 157 173 167 157 173 175 176 173 167 157
++173 167 157 173 167 157 163 148 159 173 167 157 173 167 157 163 148 159 173 167 157 173 167 157
++157 164 157 173 167 157 163 158 149 163 158 149 163 158 149 163 158 149 163 158 149 141 154 138
++164 145 137 141 132 131 141 132 131 163 158 149 141 154 138 164 145 137 143 146 150 164 145 137
++143 146 150 164 145 137 143 146 150 164 145 137 143 146 150 164 145 137 141 138 138 141 154 138
++141 138 138 141 138 138 141 138 138 141 138 138 141 138 138 141 138 138 141 138 138 141 132 131
++141 132 131 122 133 132 141 132 131 141 132 131 141 132 131 123 133 112 122 113 129 123 133 112
++141 132 131 123 109 109 123 133 112 123 133 112 112 124 124 123 109 109 114 121 97 123 109 109
++103 106 97 123 109 109 103 106 97 123 109 109 103 106 97 123 109 109 103 106 97 103 106 97
++103 106 97 103 106 97 99 85 89 103 106 97 103 106 97 86 83 83 103 106 97 99 96 86
++99 85 89 99 85 89 86 83 83 87 76 74 86 83 83 75 83 72 87 76 74 87 76 74
++68 75 77 75 64 67 71 81 67 57 59 55 58 61 60 68 68 60 58 61 60 68 64 51
++68 69 47 162 123 29 197 60 17 159 26 46 154 14 17 154 59 17 162 123 29 162 123 29
++175 13 17 154 59 17 162 123 29 162 123 29 154 14 17 162 123 29 162 123 29 154 14 17
++154 14 17 154 59 17 154 14 17 175 13 17 133 11 15 154 14 17 154 14 17 154 14 17
++154 14 17 175 13 17 154 59 17 154 14 17 162 123 29 162 123 29 154 59 17 154 14 17
++162 123 29 162 123 29 154 14 17 154 14 17 162 123 29 162 123 29 133 11 15 154 14 17
++154 14 17 162 123 29 41 50 16 12 22 12 21 19 27 21 19 15 17 19 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++170 184 134 170 184 134 173 191 134 170 184 134 170 184 134 173 191 134 173 191 134 173 191 134
++170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 173 191 134 173 191 134
++173 191 134 173 191 134 173 191 134 173 191 134 170 184 134 173 183 156 170 184 134 173 191 134
++170 184 134 170 184 134 172 173 110 173 191 134 166 168 134 123 133 112 170 184 134 159 178 157
++173 183 156 173 183 156 173 183 156 173 183 156 170 184 134 170 184 134 170 184 134 44 55 41
++33 35 35 28 30 29 28 30 29 20 20 20 20 28 24 20 20 20 112 124 124 173 183 156
++188 193 159 203 196 201 188 196 234 210 216 207 182 181 190 173 183 156 166 168 134 173 183 156
++188 189 175 203 196 201 229 221 240 221 241 240 221 241 240 210 221 240 210 221 240 187 177 178
++173 183 156 188 189 180 203 196 201 210 221 240 210 221 240 210 221 240 229 221 240 173 188 216
++35 32 58 46 47 55 46 47 45 49 43 41 68 69 55 173 167 157 122 133 132 189 200 189
++112 124 124 20 28 24 28 26 35 23 20 27 17 19 20 17 19 20 17 19 20 20 20 20
++21 19 15 141 154 138 188 189 180 189 200 189 187 177 178 61 60 67 20 25 36 28 32 42
++28 32 42 21 29 29 18 29 26 15 15 26 42 59 47 83 103 97 104 108 124 104 108 124
++112 124 124 104 108 124 141 138 138 141 138 138 143 146 150 143 146 150 163 148 159 141 138 138
++143 146 150 122 133 132 112 104 120 157 164 157 194 181 189 187 177 178 188 189 175 188 189 175
++188 189 180 187 177 178 188 172 163 173 175 176 173 175 176 187 177 178 173 175 176 188 172 163
++173 175 176 188 189 175 173 175 176 188 177 159 173 175 176 188 172 163 188 189 175 173 175 176
++188 172 163 187 177 178 173 175 176 187 177 178 187 177 178 173 175 176 173 175 176 173 167 157
++173 175 176 188 172 163 173 175 176 173 167 157 173 175 176 225 201 230 229 221 240 245 235 246
++245 235 246 229 221 240 188 191 205 173 175 176 173 175 176 173 167 157 187 177 178 225 201 230
++245 235 246 229 221 240 188 191 205 173 175 176 173 167 157 173 167 157 173 167 157 157 164 157
++173 167 157 173 167 157 173 167 157 163 148 159 173 175 176 173 175 176 163 148 159 173 167 157
++157 164 157 173 167 157 157 164 157 163 158 149 163 158 149 163 158 149 164 145 137 163 158 149
++141 154 138 141 139 118 141 138 138 164 145 137 143 146 150 164 145 137 163 158 149 164 142 149
++143 146 150 164 145 137 163 158 149 141 154 138 141 138 138 141 138 138 141 138 138 141 138 138
++141 138 138 141 154 138 141 132 131 141 154 138 141 132 131 141 139 118 141 138 138 141 132 131
++141 138 138 141 139 118 141 132 131 123 133 112 122 133 132 141 115 130 123 133 112 122 113 129
++123 133 112 122 113 129 123 133 112 123 109 109 123 109 109 112 124 124 123 109 109 112 124 124
++103 106 97 123 109 109 123 109 109 114 121 97 112 104 120 103 106 97 123 109 109 103 106 97
++114 99 97 103 106 97 103 106 97 114 99 97 99 85 89 103 106 97 99 96 86 86 83 83
++83 103 97 99 85 89 86 83 83 86 83 83 88 79 65 75 83 72 87 76 74 75 83 72
++75 64 67 75 83 72 68 68 60 56 54 51 68 68 60 68 68 60 68 68 60 68 64 51
++45 62 74 68 69 47 162 123 29 154 59 17 175 13 17 175 13 17 197 180 35 197 60 17
++154 14 17 162 123 29 197 180 35 175 13 17 154 59 17 197 180 35 162 123 29 154 59 17
++154 59 17 162 123 29 154 59 17 175 13 17 162 123 29 154 14 17 154 59 17 162 123 29
++197 180 35 162 123 29 154 59 17 154 14 17 162 123 29 154 59 17 154 14 17 154 14 17
++154 14 17 162 123 29 162 123 29 133 58 15 162 123 29 154 59 17 154 14 17 154 14 17
++113 97 36 41 28 14 12 22 12 18 29 26 17 19 20 20 28 24 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134
++170 184 134 173 191 134 173 191 134 170 184 134 173 191 134 173 191 134 173 191 134 173 191 134
++188 193 159 173 183 156 173 191 134 173 191 134 188 193 159 173 191 134 173 191 134 188 193 159
++173 191 134 173 191 134 173 191 134 173 183 156 173 191 134 188 193 159 173 191 134 173 191 134
++173 191 134 173 183 156 173 191 134 170 184 134 173 191 134 170 184 134 170 184 134 39 43 42
++23 20 27 27 32 26 20 28 24 28 30 29 21 19 15 21 19 15 123 133 112 170 184 134
++170 184 134 173 191 134 188 193 159 173 183 156 170 184 134 170 184 134 170 184 134 170 184 134
++173 191 134 188 189 175 189 200 189 188 191 205 211 221 218 203 196 201 188 189 180 173 183 156
++173 183 156 173 183 156 189 200 189 210 221 240 210 221 240 211 221 218 182 181 190 189 200 189
++141 138 138 46 47 55 58 61 60 68 69 55 71 81 67 141 132 131 123 133 112 173 167 157
++187 177 178 46 47 55 28 26 35 46 47 45 28 30 29 20 28 24 20 20 20 20 20 20
++27 32 26 141 132 131 189 200 189 141 154 138 58 53 60 20 25 36 30 34 36 28 26 35
++32 31 35 28 32 42 21 29 29 20 25 36 15 15 26 28 32 42 41 38 42 58 61 60
++68 75 77 86 83 83 141 138 138 143 146 150 143 146 150 143 146 150 141 138 138 141 132 131
++122 133 132 141 138 138 157 164 157 187 177 178 187 177 178 188 189 175 187 177 178 187 177 178
++188 189 175 188 189 175 173 175 176 188 172 163 188 177 159 173 175 176 188 177 159 173 175 176
++188 177 159 173 175 176 188 172 163 188 189 175 173 175 176 187 177 178 173 175 176 188 189 175
++173 175 176 188 189 175 173 175 176 188 189 175 173 175 176 188 177 159 173 175 176 188 172 163
++173 175 176 173 175 176 173 167 157 173 175 176 173 167 157 210 221 240 229 221 240 245 235 246
++245 235 246 229 221 240 225 201 230 173 175 176 173 175 176 173 167 157 173 175 176 210 221 240
++245 235 246 229 221 240 188 191 205 173 167 157 173 167 157 173 175 176 173 167 157 173 175 176
++163 148 159 173 167 157 163 158 149 173 167 157 163 158 149 173 167 157 157 164 157 173 167 157
++157 164 157 173 167 157 163 158 149 157 164 157 163 158 149 143 146 150 163 158 149 164 142 149
++141 154 138 141 132 131 141 132 131 163 158 149 143 146 150 163 158 149 143 146 150 164 145 137
++163 158 149 164 142 149 143 146 150 164 145 137 141 154 138 164 145 137 141 138 138 141 154 138
++141 138 138 141 138 138 141 138 138 141 132 131 141 138 138 141 138 138 141 154 138 141 132 131
++141 132 131 141 132 131 122 133 132 141 132 131 141 132 131 123 133 112 141 132 131 123 133 112
++141 128 110 122 113 129 123 133 112 123 109 109 112 124 124 123 109 109 114 121 97 123 109 109
++114 121 97 112 104 120 114 121 97 112 104 120 114 121 97 103 106 97 112 104 120 103 106 97
++103 106 97 114 99 97 103 106 97 103 106 97 99 96 86 99 85 89 83 103 97 103 106 97
++83 103 97 99 85 89 86 83 83 99 96 86 86 83 83 99 85 89 87 76 74 75 83 72
++75 64 67 68 75 77 68 68 60 56 54 51 58 61 60 68 68 60 68 68 60 68 68 60
++64 57 60 68 64 51 68 50 43 162 123 29 154 59 17 175 13 17 154 59 17 162 123 29
++162 123 29 197 180 35 154 59 17 175 13 17 154 59 17 197 180 35 162 123 29 154 59 17
++154 59 17 162 123 29 154 14 17 133 58 15 197 180 35 154 59 17 154 59 17 154 59 17
++162 123 29 133 23 15 154 14 17 154 14 17 162 123 29 162 123 29 162 123 29 154 14 17
++154 14 17 154 59 17 162 123 29 162 123 29 154 59 17 154 14 17 154 59 17 133 58 15
++41 50 16 21 19 21 18 29 26 17 19 20 21 19 21 21 19 15 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 188 193 159 173 191 134
++173 191 134 188 193 159 173 191 134 173 183 156 173 191 134 173 191 134 173 183 156 173 191 134
++173 191 134 173 191 134 188 193 159 173 191 134 173 191 134 188 193 159 173 191 134 173 191 134
++188 193 159 188 193 159 173 191 134 188 193 159 173 191 134 173 191 134 188 193 159 173 191 134
++173 191 134 173 191 134 173 191 134 173 191 134 173 183 156 173 191 134 166 168 134 28 30 29
++23 20 27 20 28 24 23 19 15 28 30 29 20 20 20 12 22 12 141 158 118 173 191 134
++173 191 134 173 191 134 170 184 134 173 191 134 173 191 134 173 191 134 173 191 134 170 184 134
++173 191 134 173 191 134 173 191 134 173 183 156 173 183 156 173 191 134 173 183 156 173 191 134
++173 191 134 170 184 134 173 183 156 173 183 156 173 183 156 173 183 156 173 183 156 173 191 134
++173 183 156 68 69 47 112 124 124 68 64 51 49 43 41 141 139 118 141 154 138 123 133 112
++188 189 180 83 103 97 99 85 89 58 53 60 15 15 26 23 20 27 23 20 27 20 28 24
++23 20 27 86 83 83 123 109 109 17 19 20 35 34 35 32 26 35 39 37 42 28 32 42
++20 25 36 20 25 36 15 15 26 35 32 58 103 106 97 163 148 159 143 146 150 143 146 150
++143 146 150 143 146 150 143 146 150 143 146 150 163 148 159 143 146 150 122 133 132 123 109 109
++143 146 150 188 189 175 188 177 159 188 189 175 188 189 175 173 175 176 188 189 175 188 189 175
++188 189 180 188 189 175 188 172 163 173 175 176 173 183 156 188 172 163 173 175 176 188 177 159
++173 175 176 188 177 159 173 175 176 188 177 159 187 177 178 188 177 159 187 177 178 173 175 176
++188 189 175 187 177 178 188 172 163 173 175 176 187 177 178 187 177 178 173 175 176 173 167 157
++173 175 176 173 167 157 173 175 176 173 167 157 173 175 176 225 201 230 245 235 246 229 221 240
++229 221 240 229 221 240 210 221 240 188 191 205 173 175 176 173 167 157 173 175 176 229 221 240
++245 235 246 229 221 240 188 196 234 173 167 157 173 175 176 173 167 157 157 164 157 157 164 157
++173 175 176 143 151 181 173 175 176 173 175 176 157 164 157 173 167 157 157 164 157 173 167 157
++163 148 159 157 164 157 173 167 157 163 148 159 163 158 149 163 158 149 143 146 150 163 158 149
++141 154 138 141 132 131 141 154 138 163 158 149 164 145 137 143 146 150 163 158 149 143 146 150
++163 158 149 143 146 150 164 145 137 143 146 150 164 145 137 141 138 138 141 138 138 141 138 138
++164 145 137 141 154 138 141 138 138 141 154 138 141 138 138 141 132 131 141 138 138 141 132 131
++141 138 138 141 139 118 141 132 131 141 132 131 123 133 112 122 113 129 141 128 110 122 113 129
++123 133 112 122 113 129 123 133 112 123 109 109 123 133 112 123 109 109 104 108 124 114 121 97
++112 104 120 114 121 97 123 109 109 103 106 97 123 109 109 103 106 97 114 99 97 103 106 97
++103 106 97 103 106 97 114 99 97 99 85 89 99 96 86 112 104 120 143 146 150 122 113 129
++86 83 83 86 83 83 99 85 89 112 104 120 122 113 129 112 104 120 87 76 74 75 83 72
++75 64 67 71 81 67 68 68 60 58 53 60 58 61 60 68 68 60 64 57 60 68 68 60
++68 68 60 75 64 67 68 64 51 46 47 45 162 123 29 159 63 71 175 13 17 154 59 17
++154 59 17 197 60 17 154 14 17 175 13 17 162 123 29 162 123 29 175 13 17 162 123 29
++162 123 29 162 123 29 175 13 17 154 59 17 197 180 35 133 58 15 154 14 17 154 14 17
++162 123 29 154 59 17 175 13 17 175 13 17 154 59 17 197 180 35 133 23 15 133 23 15
++154 14 17 154 14 17 154 59 17 133 23 15 154 14 17 154 59 17 113 97 36 41 50 16
++23 19 15 23 19 15 21 19 21 21 19 21 23 19 15 21 19 21 23 20 27 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++173 191 134 173 183 156 173 191 134 173 191 134 173 183 156 173 191 134 173 191 134 188 193 159
++173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134
++173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 188 193 159 173 191 134
++173 191 134 173 191 134 188 193 159 173 191 134 173 191 134 173 191 134 173 191 134 188 193 159
++173 191 134 188 193 159 173 191 134 188 193 159 173 191 134 188 193 159 123 133 112 20 20 20
++20 28 24 21 19 15 17 19 20 17 19 20 21 19 15 56 54 51 170 184 134 173 183 156
++173 191 134 173 183 156 173 191 134 188 193 159 173 191 134 173 183 156 173 191 134 173 183 156
++173 183 156 173 191 134 173 183 156 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134
++173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134
++173 191 134 170 184 134 45 49 35 41 38 42 49 43 41 141 154 138 164 145 137 114 121 97
++173 175 176 141 132 131 46 47 55 23 20 27 23 20 27 28 30 29 17 19 20 21 29 29
++28 26 35 39 37 42 21 29 29 28 32 42 35 32 58 49 40 56 45 62 74 68 75 77
++104 108 124 122 133 132 143 146 150 143 151 181 157 164 157 143 151 181 157 164 157 143 151 181
++157 164 157 143 151 181 163 148 159 157 164 157 143 146 150 141 132 131 141 154 138 188 193 159
++188 189 175 173 183 156 188 177 159 173 183 156 188 189 175 188 177 159 173 183 156 188 189 175
++188 189 175 187 177 178 173 183 156 173 183 156 188 172 163 173 183 156 188 172 163 173 183 156
++188 177 159 173 175 176 173 183 156 187 177 178 173 183 156 173 175 176 188 189 175 188 177 159
++187 177 178 173 175 176 187 177 178 188 177 159 173 175 176 188 177 159 173 175 176 188 172 163
++173 175 176 173 167 157 173 175 176 173 175 176 173 167 157 210 221 240 229 221 240 225 201 230
++210 221 240 229 221 240 229 221 240 225 201 230 173 175 176 188 172 163 173 175 176 210 221 240
++245 235 246 229 221 240 188 191 205 173 167 157 173 167 157 173 167 157 173 175 176 188 191 205
++188 191 205 188 196 234 188 196 234 188 196 234 188 191 205 182 181 190 173 167 157 163 158 149
++157 164 157 173 167 157 173 175 176 157 164 157 157 164 157 143 146 150 163 158 149 163 158 149
++141 138 138 141 138 138 157 164 157 157 164 157 163 158 149 141 154 138 164 145 137 163 158 149
++164 145 137 163 158 149 163 158 149 163 158 149 141 154 138 141 138 138 141 154 138 141 132 131
++141 154 138 141 138 138 141 138 138 141 138 138 141 139 118 141 138 138 141 138 138 141 139 118
++141 132 131 122 133 132 141 132 131 122 133 132 141 132 131 123 133 112 123 133 112 122 113 129
++123 133 112 123 109 109 123 133 112 123 109 109 112 124 124 123 109 109 114 121 97 112 104 120
++114 121 97 112 104 120 114 121 97 123 109 109 103 106 97 123 109 109 103 106 97 112 104 120
++103 106 97 114 99 97 103 106 97 99 96 86 103 106 97 143 146 150 166 181 211 131 128 178
++83 103 97 86 83 83 86 83 83 112 104 120 163 148 159 112 104 120 68 75 77 87 76 74
++75 64 67 71 81 67 68 68 60 57 59 55 68 68 60 68 68 60 58 61 60 68 68 60
++57 59 55 58 61 60 58 61 60 58 61 60 56 54 51 68 72 23 162 123 29 197 60 17
++154 14 17 175 13 17 154 14 17 154 14 17 162 123 29 162 123 29 154 14 17 162 123 29
++197 180 35 154 59 17 175 13 17 197 60 17 117 142 36 154 14 17 154 14 17 154 14 17
++162 123 29 154 59 17 154 14 17 154 14 17 133 58 15 162 123 29 162 123 29 154 59 17
++154 14 17 154 14 17 154 14 17 154 59 17 133 58 15 68 72 23 12 22 12 20 28 24
++21 19 15 20 20 20 21 19 15 21 19 15 21 19 21 21 19 21 17 19 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 170 184 134 170 184 134
++170 184 134 173 191 134 173 191 134 173 191 134 170 184 134 170 184 134 170 184 134 170 184 134
++173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134
++173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134
++173 191 134 173 191 134 173 191 134 188 193 159 188 193 159 173 191 134 114 121 97 27 32 26
++21 29 29 18 29 26 20 20 20 20 28 24 20 28 24 137 139 97 188 193 159 173 191 134
++173 191 134 173 191 134 173 191 134 173 191 134 188 193 159 173 191 134 170 184 134 188 193 159
++173 191 134 173 191 134 173 191 134 188 193 159 173 191 134 173 191 134 188 193 159 173 191 134
++173 191 134 173 183 156 173 191 134 173 183 156 173 191 134 188 193 159 173 191 134 173 191 134
++173 183 156 188 193 159 99 96 86 45 49 35 56 54 51 71 82 60 141 139 118 104 88 73
++173 167 157 163 158 149 86 83 83 21 19 27 39 37 42 21 19 27 20 25 36 28 32 42
++28 32 42 20 25 36 45 62 74 143 146 150 166 181 211 188 191 205 188 191 205 166 181 211
++182 181 190 163 147 193 173 175 176 143 151 181 157 164 157 173 175 176 163 148 159 157 164 157
++163 148 159 157 164 157 143 146 150 141 138 138 122 133 132 141 139 118 173 183 156 173 191 134
++173 183 156 173 191 134 173 183 156 170 184 134 170 184 134 173 183 156 173 183 156 173 183 156
++173 183 156 173 183 156 173 183 156 173 183 156 173 183 156 173 183 156 173 183 156 173 183 156
++173 183 156 173 183 156 188 177 159 173 183 156 173 183 156 188 177 159 173 183 156 173 183 156
++173 183 156 188 177 159 173 183 156 188 189 175 173 183 156 173 183 156 173 167 157 173 183 156
++173 175 176 173 167 157 173 183 156 173 167 157 173 175 176 225 201 230 229 221 240 210 221 240
++173 188 216 229 221 240 229 221 240 210 221 240 194 181 189 173 175 176 187 177 178 225 201 230
++245 235 246 229 221 240 188 191 205 173 175 176 173 167 157 182 181 190 203 196 201 210 221 240
++210 221 240 210 221 240 210 221 240 210 221 240 188 196 234 225 201 230 188 191 205 173 167 157
++173 167 157 182 181 190 188 191 205 188 191 205 157 164 157 163 158 149 164 145 137 141 154 138
++164 145 137 157 164 157 173 188 216 182 181 190 163 148 159 141 154 138 163 158 149 141 154 138
++143 146 150 173 175 176 182 181 190 163 147 193 141 154 138 164 145 137 141 138 138 141 138 138
++141 154 138 141 138 138 141 132 131 141 138 138 141 138 138 141 154 138 164 145 137 141 132 131
++141 132 131 141 139 118 122 133 132 141 132 131 141 115 130 123 133 112 123 133 112 123 133 112
++141 115 130 123 133 112 122 113 129 123 133 112 123 109 109 123 109 109 123 133 112 123 109 109
++112 104 120 114 121 97 123 109 109 103 106 97 114 121 97 103 106 97 114 121 97 103 106 97
++114 99 97 103 106 97 103 106 97 99 96 86 103 106 97 163 147 193 188 196 234 122 113 129
++103 81 83 86 83 83 86 83 83 112 104 120 188 147 163 133 78 94 75 64 67 87 76 74
++68 75 77 71 81 67 64 57 60 56 54 51 58 61 60 68 68 60 58 61 60 58 61 60
++68 68 60 58 61 60 57 59 55 57 59 55 57 59 55 58 61 60 61 60 67 104 88 73
++162 123 29 154 59 17 175 13 17 154 14 17 175 13 17 154 14 17 154 14 17 154 59 17
++197 180 35 133 58 15 154 14 17 154 59 17 197 180 35 154 59 17 154 14 17 154 14 17
++162 123 29 162 123 29 154 14 17 154 14 17 154 14 17 154 59 17 154 59 17 154 14 17
++133 23 15 154 59 17 162 123 29 99 79 28 41 50 16 19 34 14 23 19 15 23 20 27
++21 19 15 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++170 184 134 170 184 134 170 184 134 173 191 134 170 184 134 170 184 134 173 191 134 170 184 134
++173 191 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134
++170 184 134 170 184 134 170 184 134 170 184 134 173 191 134 173 191 134 173 191 134 173 191 134
++173 191 134 170 184 134 173 191 134 170 184 134 173 191 134 173 191 134 173 191 134 173 191 134
++173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 68 69 55 28 30 29
++28 26 35 20 25 36 20 28 24 28 30 29 20 20 20 123 133 112 173 191 134 173 191 134
++173 191 134 173 191 134 173 183 156 173 191 134 173 191 134 173 183 156 173 191 134 188 193 159
++173 191 134 188 193 159 173 191 134 173 191 134 173 183 156 173 191 134 173 191 134 173 191 134
++188 193 159 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134
++173 191 134 173 191 134 137 139 97 41 33 22 68 64 51 68 69 55 71 82 60 68 69 55
++114 121 97 173 167 157 141 138 138 39 43 42 21 19 27 45 62 74 173 175 176 122 133 132
++68 75 77 122 113 129 182 181 190 173 188 216 182 181 190 166 181 211 182 181 190 173 175 176
++166 181 211 173 175 176 173 175 176 173 175 176 157 164 157 163 147 193 157 164 157 163 148 159
++143 146 150 143 146 150 143 146 150 141 138 138 141 154 138 173 183 156 173 183 156 173 191 134
++173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 172 173 110 173 191 134
++173 191 134 173 191 134 173 191 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134
++170 184 134 173 183 156 170 184 134 173 183 156 173 191 134 173 183 156 170 184 134 173 183 156
++170 184 134 173 183 156 173 183 156 173 183 156 173 167 157 173 183 156 173 183 156 173 167 157
++173 183 156 173 183 156 173 167 157 173 183 156 173 183 156 225 201 230 210 221 240 225 201 230
++182 181 190 210 221 240 229 221 240 229 221 240 189 200 189 173 167 157 173 175 176 210 221 240
++229 221 240 210 221 240 182 181 190 157 164 157 173 175 176 188 191 205 210 221 240 210 221 240
++188 196 234 188 196 234 188 196 234 225 201 230 229 221 240 229 221 240 188 196 234 173 175 176
++173 167 157 188 191 205 210 221 240 188 196 234 173 175 176 143 146 150 163 158 149 143 146 150
++157 164 157 173 188 216 188 196 234 188 196 234 143 151 181 143 146 150 143 146 150 164 142 149
++182 181 190 188 196 234 188 196 234 182 181 190 164 145 137 141 138 138 141 154 138 164 133 127
++141 138 138 164 145 137 143 146 150 143 146 150 173 175 176 188 191 205 143 151 181 157 164 157
++173 175 176 143 146 150 141 132 131 141 132 131 141 128 110 143 146 150 143 146 150 141 138 138
++123 133 112 122 113 129 123 133 112 123 109 109 123 133 112 123 109 109 112 124 124 112 124 124
++114 121 97 103 106 97 104 108 124 114 121 97 112 104 120 114 99 97 123 109 109 103 106 97
++114 99 97 112 104 120 99 85 89 103 106 97 99 85 89 131 128 178 163 147 193 96 81 123
++86 83 83 99 85 89 88 79 65 96 81 123 188 147 163 104 74 73 87 76 74 68 75 77
++87 76 74 68 67 72 58 61 60 56 54 51 68 68 60 61 60 67 68 68 60 68 68 60
++58 61 60 64 57 60 58 61 60 57 59 55 58 61 60 56 54 51 68 74 109 68 75 77
++68 50 20 113 97 36 133 58 15 154 59 17 154 59 17 154 14 17 175 13 17 154 14 17
++154 59 17 154 14 17 175 13 17 154 59 17 162 123 29 154 14 17 154 14 17 154 14 17
++154 59 17 154 59 17 154 14 17 175 13 17 154 14 17 154 14 17 154 59 17 154 59 17
++133 58 15 68 72 23 41 50 16 12 22 12 21 19 15 27 32 26 64 57 60 58 61 60
++21 19 21 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++173 191 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 141 158 118 173 191 134
++170 184 134 173 191 134 170 184 134 170 184 134 170 184 134 172 173 110 170 184 134 170 184 134
++173 191 134 170 184 134 170 184 134 170 184 134 173 191 134 170 184 134 170 184 134 170 184 134
++170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134
++170 184 134 170 184 134 170 184 134 170 184 134 172 173 110 166 168 134 41 50 16 28 30 29
++23 20 27 28 32 42 17 19 20 23 20 27 20 20 20 103 117 86 173 191 134 170 184 134
++173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134
++173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134
++173 191 134 173 191 134 173 191 134 173 191 134 173 183 156 173 191 134 173 191 134 173 191 134
++173 191 134 170 184 134 114 121 97 45 49 35 45 49 35 68 64 51 68 69 55 104 88 73
++123 133 112 141 138 138 194 181 189 61 60 67 45 62 74 182 181 190 173 175 176 166 181 211
++173 175 176 182 181 190 166 181 211 182 181 190 182 181 190 182 181 190 182 181 190 163 147 193
++173 175 176 173 175 176 143 151 181 157 164 157 143 151 181 157 164 157 157 164 157 143 151 181
++143 146 150 141 138 138 114 121 97 123 133 112 170 184 134 173 183 156 173 191 134 173 191 134
++188 193 159 173 191 134 173 191 134 173 191 134 170 184 134 173 191 134 170 184 134 173 191 134
++170 184 134 170 184 134 170 184 134 173 191 134 173 191 134 170 184 134 170 184 134 173 191 134
++173 191 134 173 191 134 173 191 134 173 191 134 170 184 134 170 184 134 170 184 134 170 184 134
++170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134
++166 168 134 170 184 134 166 168 134 166 168 134 166 168 134 189 200 189 188 196 234 187 177 178
++166 168 134 194 181 189 225 201 230 188 196 234 187 177 178 166 168 134 173 175 176 210 221 240
++229 221 240 188 196 234 173 175 176 173 167 157 173 175 176 203 196 201 210 221 240 210 221 240
++166 181 211 173 175 176 163 147 193 182 181 190 188 196 234 229 221 240 210 221 240 173 175 176
++163 148 159 188 196 234 229 221 240 188 196 234 163 147 193 157 164 157 141 154 138 163 148 159
++166 181 211 188 196 234 210 221 240 188 196 234 166 181 211 143 146 150 163 158 149 141 154 138
++188 191 205 188 196 234 210 221 240 166 181 211 141 138 138 141 154 138 143 146 150 141 138 138
++141 154 138 141 132 131 173 167 157 166 181 211 173 188 216 210 221 240 173 188 216 188 196 234
++188 196 234 163 147 193 143 151 181 122 133 132 141 138 138 166 181 211 166 181 211 143 151 181
++122 113 129 123 133 112 123 109 109 122 113 129 123 109 109 112 124 124 143 151 181 122 133 132
++123 109 109 112 124 124 123 109 109 141 138 138 141 115 130 123 109 109 141 115 130 122 113 129
++103 106 97 114 99 97 103 106 97 103 106 97 96 81 123 99 85 89 122 113 129 103 106 97
++99 85 89 86 83 83 86 83 83 104 108 124 163 148 159 133 78 94 68 67 72 87 76 74
++75 83 72 68 67 72 68 67 72 58 53 60 61 60 67 68 68 60 61 60 67 68 68 60
++68 68 60 58 61 60 57 59 55 57 59 55 68 68 60 58 61 60 68 67 72 87 76 74
++49 43 41 45 49 35 44 55 41 68 72 23 162 123 29 162 123 29 154 59 17 154 59 17
++154 14 17 154 14 17 175 13 17 175 13 17 154 14 17 154 14 17 154 14 17 175 13 17
++154 14 17 154 14 17 133 11 15 133 23 15 154 59 17 162 123 29 113 97 36 68 50 20
++12 22 12 19 34 14 23 19 15 23 19 15 32 26 35 58 53 60 122 133 132 123 109 109
++57 59 55 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 172 173 110 173 191 134 170 184 134
++170 184 134 99 79 59 141 158 118 173 191 134 170 184 134 170 184 134 170 184 134 170 184 134
++170 184 134 170 184 134 170 184 134 170 184 134 173 191 134 170 184 134 173 191 134 170 184 134
++170 184 134 173 191 134 170 184 134 170 184 134 170 184 134 173 191 134 170 184 134 170 184 134
++170 184 134 173 191 134 173 191 134 173 191 134 173 191 134 114 121 97 18 29 26 35 32 58
++61 60 67 45 62 74 68 75 77 68 75 77 21 29 29 118 123 77 170 184 134 170 184 134
++170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134
++173 191 134 173 191 134 170 184 134 173 191 134 170 184 134 170 184 134 170 184 134 170 184 134
++170 184 134 173 191 134 173 191 134 170 184 134 173 191 134 170 184 134 173 191 134 173 191 134
++170 184 134 173 191 134 68 80 50 45 49 35 41 33 22 56 54 51 68 64 51 68 64 51
++166 168 134 163 158 149 166 168 134 122 133 132 182 181 190 188 191 205 182 181 190 194 181 189
++182 181 190 182 181 190 173 175 176 182 181 190 182 181 190 166 181 211 182 181 190 173 175 176
++173 175 176 143 151 181 173 175 176 173 175 176 157 164 157 163 148 159 143 146 150 141 138 138
++123 133 112 123 133 112 141 154 138 188 193 159 188 193 159 173 191 134 173 191 134 173 191 134
++173 191 134 173 183 156 173 191 134 173 191 134 173 183 156 173 191 134 173 191 134 173 191 134
++173 191 134 170 184 134 173 191 134 173 191 134 170 184 134 173 191 134 170 184 134 170 184 134
++173 191 134 170 184 134 173 191 134 170 184 134 173 191 134 173 191 134 170 184 134 173 191 134
++170 184 134 173 191 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134
++170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 166 168 134 173 183 156 170 184 134
++166 168 134 166 168 134 159 178 157 188 189 175 166 168 134 170 184 134 166 168 134 182 181 190
++188 191 205 173 175 176 157 164 157 166 168 134 166 168 134 188 189 180 188 196 234 182 181 190
++163 158 149 166 168 134 166 168 134 157 164 157 182 181 190 210 221 240 188 196 234 157 164 157
++166 168 134 173 175 176 210 221 240 188 191 205 157 164 157 141 154 138 163 158 149 157 164 157
++173 188 216 188 196 234 188 196 234 173 188 216 173 175 176 164 145 137 141 154 138 143 146 150
++188 196 234 188 196 234 173 188 216 173 175 176 141 154 138 141 139 118 143 146 150 141 139 118
++164 145 137 143 146 150 194 181 189 188 196 234 188 196 234 188 196 234 188 196 234 188 196 234
++188 196 234 173 188 216 121 182 205 143 146 150 143 151 181 121 182 205 188 196 234 163 147 193
++122 133 132 123 133 112 141 128 110 123 109 109 123 133 112 143 151 181 166 181 211 141 132 131
++122 113 129 143 146 150 141 138 138 182 181 190 163 148 159 143 151 181 163 147 193 143 151 181
++122 113 129 103 106 97 114 99 97 103 106 97 99 96 86 103 106 97 131 128 178 83 103 97
++86 83 83 99 96 86 88 79 65 104 108 124 163 147 193 103 81 83 71 81 67 87 76 74
++68 67 72 68 67 72 68 67 72 56 54 51 68 67 72 75 64 67 68 68 60 64 57 60
++68 68 60 64 57 60 57 59 55 57 59 55 58 61 60 56 54 51 99 85 89 68 74 109
++57 45 51 57 45 51 46 47 45 44 55 41 31 42 35 41 50 16 99 79 28 99 79 28
++133 58 15 113 97 36 154 59 17 113 97 36 154 59 17 154 59 17 154 59 17 133 58 15
++133 58 15 113 97 36 133 58 15 99 79 28 99 79 28 68 50 20 41 28 14 20 20 20
++23 19 15 23 20 27 21 19 27 17 19 20 21 19 27 68 68 60 122 113 129 99 96 86
++58 61 60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++137 139 97 141 158 118 141 158 118 141 158 118 141 158 118 172 173 110 141 158 118 172 173 110
++166 168 134 137 139 97 173 191 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134
++170 184 134 170 184 134 170 184 134 170 184 134 173 191 134 173 191 134 170 184 134 173 191 134
++170 184 134 173 191 134 170 184 134 173 191 134 173 191 134 170 184 134 173 191 134 173 191 134
++173 191 134 173 191 134 170 184 134 173 191 134 173 191 134 103 117 86 45 62 74 104 108 124
++96 81 123 131 128 178 173 175 176 143 146 150 58 53 60 141 158 118 173 191 134 170 184 134
++173 191 134 170 184 134 170 184 134 173 191 134 170 184 134 173 191 134 173 191 134 173 191 134
++170 184 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 170 184 134
++170 184 134 170 184 134 170 184 134 170 184 134 173 191 134 170 184 134 170 184 134 170 184 134
++170 184 134 173 191 134 104 88 73 45 49 35 27 32 26 45 49 35 68 69 55 68 64 51
++137 117 96 157 164 157 141 128 110 141 139 118 157 164 157 173 188 216 188 189 180 188 189 180
++188 189 175 173 175 176 173 175 176 173 175 176 173 175 176 173 175 176 173 175 176 143 151 181
++173 175 176 157 164 157 157 164 157 143 151 181 143 146 150 112 124 124 112 104 120 103 106 97
++141 154 138 215 195 173 188 193 159 188 193 159 173 191 134 173 191 134 173 183 156 173 191 134
++173 191 134 173 191 134 173 191 134 188 193 159 173 191 134 173 191 134 173 191 134 173 191 134
++173 191 134 173 191 134 173 191 134 188 193 159 173 191 134 173 191 134 170 184 134 173 191 134
++173 191 134 173 191 134 173 191 134 170 184 134 173 191 134 170 184 134 173 191 134 170 184 134
++170 184 134 173 191 134 173 183 156 173 191 134 170 184 134 170 184 134 170 184 134 170 184 134
++170 184 134 172 173 110 170 184 134 172 173 110 166 168 134 170 184 134 172 173 110 170 184 134
++166 168 134 173 191 134 170 184 134 166 168 134 172 173 110 170 184 134 172 173 110 141 158 118
++170 184 134 141 158 118 172 173 110 170 184 134 141 158 118 170 184 134 157 164 157 163 158 149
++172 173 110 141 158 118 172 173 110 141 158 118 141 154 138 173 175 176 173 175 176 166 168 134
++141 158 118 166 168 134 173 175 176 173 175 176 141 158 118 141 158 118 141 158 118 163 158 149
++166 181 211 173 188 216 121 182 205 173 188 216 159 178 157 141 154 138 141 139 118 163 158 149
++188 196 234 173 188 216 173 175 176 143 146 150 141 138 138 141 139 118 141 154 138 141 138 138
++141 154 138 143 146 150 188 191 205 166 181 211 163 147 193 173 188 216 121 182 205 173 188 216
++188 196 234 121 182 205 188 196 234 143 151 181 143 146 150 173 188 216 188 196 234 166 181 211
++141 138 138 122 113 129 123 133 112 122 113 129 141 132 131 188 191 205 166 181 211 131 128 178
++141 132 131 166 181 211 131 128 178 166 181 211 166 181 211 166 181 211 188 196 234 121 182 205
++131 128 178 112 124 124 99 85 89 114 99 97 99 96 86 122 133 132 166 181 211 122 113 129
++83 103 97 99 85 89 87 76 74 75 110 124 163 147 193 96 81 123 87 76 74 75 83 72
++87 76 74 86 83 83 86 83 83 68 75 77 114 99 97 68 75 77 87 76 74 99 85 89
++58 61 60 58 61 60 64 57 60 57 59 55 56 54 51 46 47 45 68 74 109 96 81 123
++42 59 47 49 43 41 57 45 51 45 49 35 39 43 42 61 46 51 162 123 29 162 123 29
++68 72 23 68 50 20 41 28 14 41 50 16 99 79 28 68 72 23 41 50 16 41 50 16
++41 28 14 41 28 14 68 72 23 117 142 36 197 180 35 41 28 14 41 28 14 18 29 26
++17 19 20 21 19 21 23 19 15 23 20 27 23 19 15 45 49 35 112 124 124 103 106 97
++39 37 42 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++103 117 86 71 82 60 117 142 36 69 83 54 118 123 77 69 83 54 103 117 86 103 117 86
++103 117 86 103 117 86 118 123 77 137 139 97 137 139 97 137 139 97 137 139 97 141 158 118
++137 139 97 137 139 97 141 158 118 137 139 97 141 158 118 141 158 118 141 158 118 141 158 118
++172 173 110 170 184 134 141 158 118 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134
++170 184 134 170 184 134 170 184 134 173 191 134 159 178 157 141 138 138 131 128 178 75 110 124
++75 110 124 157 164 157 99 96 86 103 106 97 99 96 86 166 168 134 173 191 134 170 184 134
++173 191 134 172 173 110 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134
++170 184 134 173 191 134 173 191 134 173 191 134 170 184 134 173 191 134 170 184 134 170 184 134
++173 191 134 170 184 134 173 191 134 173 191 134 173 191 134 170 184 134 173 191 134 173 191 134
++173 191 134 170 184 134 173 191 134 170 184 134 141 158 118 68 69 47 56 54 51 68 68 60
++75 83 72 164 145 137 166 168 134 141 132 131 42 59 47 103 106 97 188 189 180 188 189 180
++188 189 175 173 175 176 173 175 176 173 175 176 173 175 176 173 175 176 173 175 176 157 164 157
++157 164 157 122 133 132 99 85 89 112 124 124 103 106 97 123 133 112 141 158 118 166 168 134
++173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134
++173 191 134 173 191 134 173 191 134 173 191 134 173 191 134 188 193 159 173 191 134 188 193 159
++170 184 134 173 191 134 173 191 134 188 193 159 188 193 159 173 191 134 188 177 159 173 191 134
++170 184 134 170 184 134 170 184 134 173 191 134 173 191 134 173 191 134 173 191 134 173 183 156
++173 191 134 173 183 156 173 191 134 173 191 134 170 184 134 173 191 134 173 191 134 170 184 134
++170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134
++170 184 134 170 184 134 170 184 134 141 158 118 170 184 134 166 168 134 170 184 134 170 184 134
++172 173 110 170 184 134 170 184 134 141 158 118 170 184 134 172 173 110 141 158 118 172 173 110
++141 158 118 170 184 134 141 158 118 166 168 134 170 184 134 141 158 118 166 168 134 141 158 118
++166 168 134 141 158 118 166 168 134 141 158 118 141 158 118 172 173 110 141 158 118 141 158 118
++141 158 118 141 158 118 170 184 134 141 154 138 141 158 118 141 158 118 141 158 118 141 158 118
++141 154 138 157 164 157 141 154 138 141 139 118 141 158 118 141 139 118 141 139 118 137 139 97
++141 139 118 123 133 112 163 148 159 163 148 159 141 138 138 141 138 138 141 115 130 143 146 150
++143 151 181 166 181 211 166 181 211 143 146 150 122 133 132 166 181 211 121 182 205 166 181 211
++122 133 132 123 133 112 123 109 109 114 121 97 143 151 181 188 196 234 121 182 205 141 115 130
++122 133 132 166 181 211 131 128 178 163 147 193 131 128 178 91 128 178 163 147 193 121 182 205
++121 182 205 122 113 129 103 106 97 103 106 97 114 99 97 91 128 178 121 182 205 131 128 178
++99 96 86 86 83 83 99 96 86 75 110 124 166 181 211 104 108 124 87 76 74 68 67 72
++75 110 124 96 81 123 68 74 109 104 108 124 91 128 178 96 81 123 91 128 178 104 108 124
++87 76 74 61 60 67 58 61 60 57 59 55 57 59 55 58 53 60 83 103 97 68 74 109
++58 53 60 61 60 67 68 67 72 46 47 55 58 61 60 46 47 45 41 50 16 117 142 36
++99 79 28 68 50 20 45 39 35 68 50 20 117 142 36 162 123 29 68 72 23 68 72 23
++41 33 22 68 50 20 68 72 23 117 142 36 68 50 20 23 20 27 21 19 27 20 28 24
++23 20 27 20 28 24 23 20 27 20 28 24 21 19 21 17 19 20 32 31 35 28 30 29
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 103 117 86
++69 83 54 103 117 86 69 83 54 69 83 54 103 117 86 69 83 54 113 97 36 103 117 86
++103 117 86 103 117 86 118 123 77 103 117 86 118 123 77 103 117 86 137 139 97 137 139 97
++137 139 97 137 139 97 141 158 118 141 158 118 141 158 118 157 164 157 173 188 216 131 128 178
++131 128 178 103 106 97 112 124 124 141 132 131 123 133 112 141 158 118 173 191 134 170 184 134
++170 184 134 170 184 134 173 191 134 170 184 134 173 191 134 173 191 134 173 191 134 170 184 134
++170 184 134 173 191 134 173 191 134 170 184 134 173 191 134 173 191 134 173 191 134 173 191 134
++173 191 134 170 184 134 173 191 134 170 184 134 170 184 134 173 191 134 173 191 134 173 191 134
++170 184 134 173 191 134 173 191 134 173 191 134 173 191 134 188 189 180 71 82 60 68 64 51
++88 79 65 141 139 118 164 145 120 123 133 112 57 59 55 14 14 18 112 124 124 182 181 190
++173 175 176 173 183 156 173 167 157 157 164 157 173 175 176 143 151 181 157 164 157 143 146 150
++122 133 132 68 67 72 68 68 60 123 133 112 166 168 134 173 183 156 170 184 134 173 191 134
++170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134
++170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 173 191 134 170 184 134
++170 184 134 170 184 134 170 184 134 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134
++173 191 134 173 191 134 173 191 134 170 184 134 170 184 134 188 193 159 173 191 134 188 193 159
++173 191 134 188 193 159 173 191 134 188 193 159 173 191 134 173 183 156 173 191 134 188 193 159
++170 184 134 170 184 134 173 191 134 170 184 134 173 191 134 170 184 134 170 184 134 170 184 134
++170 184 134 170 184 134 172 173 110 170 184 134 170 184 134 141 158 118 170 184 134 141 158 118
++170 184 134 141 158 118 170 184 134 172 173 110 166 168 134 166 168 134 170 184 134 141 158 118
++170 184 134 166 168 134 141 158 118 170 184 134 141 158 118 166 168 134 141 158 118 170 184 134
++141 158 118 141 158 118 141 158 118 172 173 110 166 168 134 141 158 118 141 158 118 172 173 110
++141 158 118 141 158 118 141 158 118 141 158 118 141 158 118 141 158 118 137 139 97 141 158 118
++137 139 97 137 139 97 141 158 118 137 139 97 137 139 97 137 139 97 137 139 97 137 139 97
++137 139 97 137 139 97 123 133 112 137 139 97 141 158 118 123 133 112 123 133 112 114 121 97
++123 133 112 112 124 124 143 146 150 123 133 112 123 133 112 122 133 132 131 128 178 143 151 181
++112 124 124 114 121 97 114 121 97 114 121 97 143 146 150 143 151 181 131 128 178 114 121 97
++123 109 109 122 133 132 122 113 129 104 108 124 75 110 124 91 128 178 131 128 178 131 128 178
++131 128 178 112 104 120 114 99 97 83 103 97 83 103 97 131 128 178 121 182 205 131 128 178
++75 83 72 83 103 97 88 79 65 91 128 178 166 181 211 68 74 109 87 76 74 68 75 77
++104 108 124 96 81 123 58 53 60 104 108 124 91 128 178 75 110 124 91 128 178 96 81 123
++104 108 124 68 74 109 56 54 51 58 61 60 58 53 60 58 53 60 68 74 109 68 74 109
++45 62 74 68 75 77 96 81 123 68 74 109 45 62 74 68 74 109 49 40 56 27 32 26
++19 34 14 41 50 16 28 32 42 35 32 58 42 59 47 68 72 23 41 50 16 41 33 22
++27 32 26 19 34 14 39 28 30 13 14 11 13 14 11 28 26 35 20 25 36 21 19 21
++23 20 27 21 19 21 23 20 27 23 20 27 21 19 21 17 19 20 21 19 15 17 19 20
++17 19 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++71 82 60 69 83 54 75 83 72 69 83 54 75 83 72 69 83 54 103 117 86 69 83 54
++75 83 72 71 82 60 69 83 54 69 83 54 69 83 54 103 117 86 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 71 82 60 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 103 117 86 75 83 72 122 133 132 157 164 157 143 151 181 122 133 132
++83 103 97 112 104 120 122 133 132 141 138 138 123 109 109 114 121 97 137 139 97 137 139 97
++137 139 97 141 158 118 137 139 97 141 158 118 141 158 118 141 158 118 172 173 110 141 158 118
++166 168 134 172 173 110 166 168 134 170 184 134 170 184 134 170 184 134 172 173 110 170 184 134
++170 184 134 170 184 134 170 184 134 173 191 134 170 184 134 170 184 134 170 184 134 173 191 134
++173 191 134 170 184 134 173 191 134 170 184 134 159 178 157 122 133 132 75 83 72 45 49 35
++68 69 47 104 88 73 114 121 97 86 83 83 86 83 83 143 151 181 173 175 176 188 189 180
++173 175 176 157 164 157 163 158 149 157 164 157 157 164 157 163 148 159 122 133 132 112 124 124
++122 113 129 122 133 132 159 178 157 173 191 134 173 191 134 173 191 134 173 191 134 173 191 134
++173 191 134 173 191 134 170 184 134 173 191 134 170 184 134 170 184 134 172 173 110 170 184 134
++170 184 134 173 191 134 170 184 134 173 191 134 170 184 134 170 184 134 170 184 134 170 184 134
++170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134
++170 184 134 170 184 134 170 184 134 170 184 134 173 191 134 170 184 134 170 184 134 170 184 134
++170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 173 191 134 170 184 134
++170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134
++170 184 134 170 184 134 170 184 134 170 184 134 172 173 110 170 184 134 172 173 110 141 158 118
++170 184 134 170 184 134 141 158 118 170 184 134 141 158 118 170 184 134 172 173 110 170 184 134
++141 158 118 170 184 134 172 173 110 170 184 134 141 158 118 170 184 134 172 173 110 141 158 118
++141 158 118 172 173 110 170 184 134 141 158 118 141 158 118 141 158 118 172 173 110 141 158 118
++141 158 118 141 158 118 141 158 118 141 158 118 137 139 97 141 158 118 141 158 118 137 139 97
++141 158 118 137 139 97 141 158 118 137 139 97 141 158 118 137 139 97 137 139 97 137 139 97
++123 133 112 137 139 97 137 139 97 141 154 138 173 183 156 173 183 156 159 178 157 166 168 134
++141 154 138 141 158 118 123 133 112 118 123 77 114 121 97 114 121 97 114 121 97 118 123 77
++103 117 86 118 123 77 118 123 77 103 117 86 114 121 97 123 133 112 103 117 86 103 117 86
++103 117 86 103 106 97 103 106 97 103 117 86 99 96 86 99 96 86 104 88 73 104 108 124
++103 106 97 99 96 86 104 88 73 86 83 83 99 96 86 75 110 124 91 128 178 104 108 124
++75 83 72 75 83 72 88 79 65 75 110 124 131 128 178 86 83 83 75 83 72 75 64 67
++75 110 124 96 81 123 58 53 60 75 64 67 68 74 109 68 67 72 68 74 109 75 110 124
++96 81 123 83 103 97 58 61 60 56 54 51 57 59 55 46 47 55 83 103 97 68 74 109
++45 62 74 45 62 74 68 74 109 68 74 109 45 62 74 45 62 74 45 62 74 39 43 42
++31 42 35 27 32 26 28 32 42 46 47 55 35 32 58 41 33 22 21 19 21 28 30 29
++28 26 35 23 20 27 23 20 27 23 19 15 19 34 14 17 19 20 17 19 20 23 20 27
++20 20 20 21 19 21 20 28 24 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++17 19 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++71 81 67 71 82 60 71 82 60 71 82 60 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 71 82 60 69 83 54 68 80 50 69 83 54 69 83 54 71 82 60
++69 83 54 71 82 60 69 83 54 69 83 54 69 83 54 69 83 54 71 82 60 71 82 60
++71 82 60 69 83 54 69 83 54 83 103 97 69 83 54 71 82 60 75 83 72 69 83 54
++103 117 86 69 83 54 69 83 54 69 83 54 141 154 138 173 175 176 182 181 190 143 146 150
++122 133 132 122 113 129 141 154 138 141 138 138 123 133 112 83 103 97 69 83 54 69 83 54
++69 83 54 103 117 86 69 83 54 69 83 54 103 117 86 103 117 86 103 117 86 103 117 86
++103 117 86 103 117 86 118 123 77 114 121 97 118 123 77 114 121 97 137 139 97 137 139 97
++141 158 118 141 158 118 141 158 118 141 158 118 172 173 110 141 158 118 170 184 134 170 184 134
++141 158 118 172 173 110 170 184 134 157 164 157 173 175 176 143 151 181 58 61 60 27 32 26
++31 42 35 71 81 67 68 64 51 86 83 83 188 191 205 182 181 190 182 181 190 173 175 176
++157 164 157 164 145 137 141 154 138 141 132 131 141 132 131 112 124 124 112 124 124 143 146 150
++157 164 157 143 146 150 157 164 157 173 183 156 170 184 134 170 184 134 173 191 134 173 191 134
++173 191 134 170 184 134 173 191 134 173 191 134 173 191 134 170 184 134 173 191 134 170 184 134
++173 191 134 170 184 134 170 184 134 170 184 134 170 184 134 173 191 134 172 173 110 170 184 134
++170 184 134 170 184 134 170 184 134 173 191 134 170 184 134 170 184 134 170 184 134 170 184 134
++170 184 134 173 191 134 170 184 134 170 184 134 172 173 110 170 184 134 170 184 134 172 173 110
++170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 166 168 134 170 184 134 170 184 134
++170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 166 168 134 141 158 118 170 184 134
++166 168 134 172 173 110 170 184 134 141 158 118 170 184 134 141 158 118 170 184 134 172 173 110
++141 158 118 170 184 134 172 173 110 141 158 118 170 184 134 141 158 118 170 184 134 141 158 118
++172 173 110 170 184 134 141 158 118 172 173 110 170 184 134 141 158 118 172 173 110 141 158 118
++172 173 110 141 158 118 170 184 134 166 168 134 170 184 134 172 173 110 141 158 118 141 158 118
++172 173 110 141 158 118 141 158 118 137 139 97 141 158 118 172 173 110 141 158 118 141 158 118
++141 158 118 137 139 97 141 158 118 137 139 97 141 158 118 137 139 97 141 158 118 137 139 97
++123 133 112 118 123 77 141 158 118 166 168 134 189 200 189 182 181 190 159 178 157 173 175 176
++173 175 176 141 154 138 123 133 112 137 139 97 114 121 97 137 139 97 114 121 97 118 123 77
++118 123 77 114 121 97 118 123 77 114 121 97 103 117 86 103 117 86 103 117 86 118 123 77
++103 117 86 103 117 86 103 117 86 104 88 73 103 117 86 88 79 65 113 97 36 103 117 86
++75 83 72 99 96 86 71 82 60 103 117 86 71 82 60 103 117 86 83 103 97 104 88 73
++88 79 65 71 82 60 88 79 65 86 83 83 83 103 97 71 81 67 71 81 67 71 82 60
++68 75 77 68 67 72 58 61 60 68 64 51 68 64 51 57 59 55 57 59 55 86 83 83
++45 62 74 68 75 77 58 61 60 56 54 51 56 54 51 56 54 51 68 75 77 45 62 74
++45 62 74 45 62 74 35 32 58 28 32 42 46 47 55 68 67 72 45 62 74 49 40 56
++35 34 35 31 42 35 39 37 42 28 32 42 46 47 55 28 32 42 21 29 29 27 32 26
++19 34 14 23 19 15 27 32 26 23 19 15 23 19 15 20 28 24 20 20 20 20 20 20
++23 20 27 20 20 20 23 20 27 21 19 21 20 20 20 20 20 20 17 19 20 17 19 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 17 19 20
++
++83 103 97 75 83 72 71 82 60 71 82 60 83 103 97 83 103 97 69 83 54 69 83 54
++103 117 86 75 83 72 103 117 86 75 83 72 71 81 67 71 82 60 75 83 72 75 83 72
++69 83 54 75 83 72 69 83 54 75 83 72 71 82 60 71 82 60 71 82 60 71 82 60
++71 82 60 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 71 82 60
++69 83 54 71 82 60 69 83 54 71 82 60 143 151 181 143 151 181 182 181 190 173 175 176
++143 146 150 122 113 129 141 138 138 141 132 131 123 133 112 114 121 97 69 83 54 75 83 72
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 75 83 72 69 83 54 71 82 60 71 82 60 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 103 117 86 69 83 54 103 117 86 103 117 86 69 83 54 103 117 86
++103 117 86 103 117 86 122 133 132 157 164 157 131 128 178 182 181 190 104 108 124 17 19 20
++23 19 15 39 28 30 23 20 27 122 133 132 182 181 190 182 181 190 182 181 190 182 181 190
++157 164 157 123 133 112 86 83 83 75 83 72 103 106 97 141 138 138 143 146 150 143 146 150
++163 148 159 157 164 157 157 164 157 157 164 157 141 154 138 159 178 157 170 184 134 173 191 134
++170 184 134 173 191 134 170 184 134 173 191 134 170 184 134 170 184 134 170 184 134 173 191 134
++173 191 134 173 191 134 172 173 110 170 184 134 173 191 134 170 184 134 173 191 134 173 191 134
++173 191 134 170 184 134 170 184 134 173 191 134 173 191 134 170 184 134 170 184 134 173 191 134
++170 184 134 170 184 134 172 173 110 170 184 134 170 184 134 172 173 110 170 184 134 173 191 134
++170 184 134 170 184 134 170 184 134 170 184 134 172 173 110 170 184 134 172 173 110 166 168 134
++170 184 134 172 173 110 170 184 134 141 158 118 170 184 134 172 173 110 170 184 134 172 173 110
++170 184 134 141 158 118 170 184 134 172 173 110 170 184 134 172 173 110 170 184 134 141 158 118
++172 173 110 170 184 134 141 158 118 172 173 110 141 158 118 172 173 110 141 158 118 172 173 110
++141 158 118 172 173 110 141 158 118 141 158 118 141 158 118 172 173 110 141 158 118 170 184 134
++141 158 118 141 158 118 141 158 118 172 173 110 166 168 134 141 158 118 172 173 110 141 158 118
++141 158 118 141 158 118 141 158 118 172 173 110 141 158 118 141 158 118 141 158 118 137 139 97
++141 158 118 141 158 118 123 133 112 137 139 97 141 158 118 123 133 112 137 139 97 123 133 112
++137 139 97 137 139 97 137 139 97 123 133 112 141 158 118 141 158 118 141 158 118 141 139 118
++141 158 118 141 158 118 137 139 97 118 123 77 118 123 77 114 121 97 103 117 86 118 123 77
++114 121 97 114 121 97 103 117 86 103 117 86 103 117 86 118 123 77 104 88 73 103 117 86
++103 117 86 104 88 73 103 117 86 103 117 86 103 117 86 103 117 86 103 117 86 69 83 54
++83 103 97 113 97 36 103 117 86 75 83 72 88 79 65 69 83 54 71 82 60 99 96 86
++69 83 54 88 79 65 71 82 60 69 83 54 71 81 67 71 82 60 71 81 67 68 80 50
++68 69 55 68 68 60 68 80 50 68 69 55 57 59 55 68 69 55 56 54 51 56 54 51
++56 54 51 56 54 51 56 54 51 44 55 41 44 55 41 42 59 47 42 59 47 42 59 47
++39 43 42 45 49 35 31 42 35 41 33 22 39 37 42 35 32 58 49 40 56 39 43 42
++33 35 35 28 30 29 30 34 36 28 32 42 35 32 58 28 30 29 27 32 26 27 32 26
++28 30 29 28 30 29 23 20 27 28 30 29 23 20 27 21 19 21 21 19 21 20 20 20
++20 20 20 23 20 27 20 20 20 21 19 21 20 20 20 17 19 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 17 19 20
++
++103 117 86 103 117 86 75 83 72 103 117 86 103 117 86 83 103 97 69 83 54 83 103 97
++83 103 97 103 117 86 83 103 97 103 117 86 103 117 86 75 83 72 75 83 72 71 82 60
++103 117 86 69 83 54 103 117 86 69 83 54 71 82 60 103 117 86 69 83 54 69 83 54
++75 83 72 69 83 54 75 83 72 69 83 54 75 83 72 103 117 86 69 83 54 83 103 97
++69 83 54 71 82 60 75 83 72 75 83 72 83 103 97 173 175 176 173 188 216 173 175 176
++143 146 150 99 96 86 122 133 132 141 138 138 122 133 132 103 106 97 75 83 72 69 83 54
++69 83 54 71 82 60 75 83 72 71 82 60 69 83 54 69 83 54 75 83 72 69 83 54
++71 82 60 75 83 72 103 117 86 75 83 72 71 82 60 68 80 50 68 80 50 69 83 54
++103 117 86 69 83 54 69 83 54 75 83 72 69 83 54 69 83 54 69 83 54 69 83 54
++42 59 47 68 80 50 141 154 138 173 175 176 112 124 124 122 133 132 141 138 138 68 67 72
++14 14 18 28 32 42 122 133 132 163 147 193 173 175 176 182 181 190 182 181 190 173 175 176
++157 164 157 103 106 97 39 37 42 99 96 86 99 96 86 123 133 112 123 133 112 123 133 112
++123 133 112 123 133 112 122 133 132 122 133 132 141 138 138 141 138 138 143 146 150 166 168 134
++141 158 118 172 173 110 170 184 134 172 173 110 170 184 134 172 173 110 170 184 134 172 173 110
++173 191 134 170 184 134 170 184 134 173 191 134 170 184 134 170 184 134 173 191 134 172 173 110
++170 184 134 172 173 110 173 191 134 170 184 134 172 173 110 173 191 134 170 184 134 172 173 110
++173 191 134 173 191 134 173 191 134 170 184 134 173 191 134 173 191 134 170 184 134 170 184 134
++170 184 134 170 184 134 172 173 110 170 184 134 170 184 134 170 184 134 141 158 118 173 191 134
++170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 141 158 118
++170 184 134 170 184 134 141 158 118 170 184 134 141 158 118 170 184 134 141 158 118 172 173 110
++141 158 118 170 184 134 141 158 118 170 184 134 141 158 118 170 184 134 141 158 118 170 184 134
++141 158 118 170 184 134 141 158 118 172 173 110 141 158 118 141 158 118 141 158 118 141 158 118
++172 173 110 141 158 118 141 158 118 141 158 118 141 158 118 141 158 118 141 158 118 141 158 118
++141 158 118 141 158 118 137 139 97 141 158 118 141 158 118 172 173 110 141 158 118 137 139 97
++141 158 118 137 139 97 137 139 97 141 158 118 118 123 77 141 158 118 118 123 77 141 158 118
++118 123 77 141 158 118 118 123 77 137 139 97 137 139 97 114 121 97 118 123 77 123 133 112
++114 121 97 118 123 77 114 121 97 137 139 97 114 121 97 118 123 77 114 121 97 118 123 77
++103 117 86 118 123 77 118 123 77 114 121 97 118 123 77 103 117 86 103 117 86 103 117 86
++113 97 36 103 117 86 69 83 54 118 123 77 69 83 54 103 117 86 69 83 54 118 123 77
++69 83 54 103 117 86 69 83 54 69 83 54 103 117 86 69 83 54 104 88 73 69 83 54
++71 82 60 103 117 86 69 83 54 71 82 60 71 82 60 71 82 60 71 82 60 75 83 72
++123 133 112 99 96 86 68 69 55 68 69 47 68 69 55 58 61 60 114 121 97 75 83 72
++44 55 41 56 54 51 68 69 55 103 106 97 71 81 67 46 47 45 46 47 45 57 59 55
++83 103 97 33 35 35 45 49 35 31 42 35 57 59 55 99 96 86 58 61 60 68 67 72
++99 96 86 46 47 45 30 34 36 28 30 29 99 96 86 68 67 72 46 47 45 99 96 86
++86 83 83 86 83 83 86 83 83 99 96 86 46 47 45 86 83 83 86 83 83 86 83 83
++58 61 60 20 28 24 17 19 20 20 20 20 20 20 20 20 20 20 13 14 11 86 83 83
++39 43 42 20 28 24 41 38 42 86 83 83 39 37 42 46 47 45 86 83 83 86 83 83
++86 83 83 46 47 45 14 14 18 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++69 83 54 71 82 60 69 83 54 69 83 54 71 82 60 69 83 54 75 83 72 69 83 54
++69 83 54 69 83 54 69 83 54 68 80 50 69 83 54 69 83 54 71 82 60 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 75 83 72 69 83 54
++69 83 54 103 117 86 71 82 60 71 82 60 71 82 60 71 82 60 69 83 54 71 82 60
++75 83 72 71 82 60 75 83 72 71 81 67 143 146 150 173 175 176 173 175 176 157 164 157
++157 164 157 143 146 150 163 158 149 141 154 138 122 133 132 103 106 97 75 83 72 71 81 67
++103 117 86 75 83 72 71 82 60 71 82 60 71 82 60 71 82 60 103 117 86 75 83 72
++71 82 60 75 83 72 83 103 97 75 83 72 75 83 72 75 83 72 68 80 50 69 83 54
++83 103 97 75 83 72 69 83 54 103 117 86 69 83 54 83 103 97 69 83 54 83 103 97
++69 83 54 104 108 124 173 175 176 157 164 157 143 151 181 104 108 124 104 108 124 143 146 150
++104 108 124 112 104 120 143 146 150 157 164 157 143 146 150 143 146 150 143 146 150 99 85 89
++58 53 60 39 37 42 46 47 45 46 47 45 41 33 22 68 68 60 71 81 67 86 83 83
++68 69 55 99 96 86 99 96 86 114 99 97 123 133 112 103 117 86 88 79 65 103 117 86
++123 133 112 114 121 97 114 121 97 123 133 112 141 158 118 123 133 112 137 139 97 123 133 112
++137 139 97 137 139 97 141 158 118 141 158 118 137 139 97 137 139 97 141 158 118 141 158 118
++172 173 110 141 158 118 141 158 118 166 168 134 170 184 134 141 158 118 172 173 110 170 184 134
++141 158 118 172 173 110 170 184 134 170 184 134 172 173 110 170 184 134 170 184 134 170 184 134
++172 173 110 170 184 134 170 184 134 170 184 134 170 184 134 170 184 134 173 191 134 170 184 134
++170 184 134 166 168 134 170 184 134 170 184 134 172 173 110 170 184 134 141 158 118 170 184 134
++173 191 134 141 158 118 173 191 134 141 158 118 170 184 134 172 173 110 141 158 118 173 191 134
++141 158 118 172 173 110 141 158 118 172 173 110 141 158 118 172 173 110 141 158 118 172 173 110
++141 158 118 141 158 118 172 173 110 141 158 118 172 173 110 141 158 118 172 173 110 141 158 118
++141 158 118 117 142 36 137 139 97 137 139 97 137 139 97 141 158 118 172 173 110 137 139 97
++141 158 118 137 139 97 141 158 118 137 139 97 141 158 118 137 139 97 137 139 97 141 158 118
++137 139 97 137 139 97 137 139 97 137 139 97 137 139 97 137 139 97 137 139 97 137 139 97
++137 139 97 118 123 77 123 133 112 137 139 97 118 123 77 137 139 97 114 121 97 137 139 97
++118 123 77 114 121 97 137 139 97 103 117 86 118 123 77 114 121 97 118 123 77 118 123 77
++103 117 86 118 123 77 103 117 86 103 117 86 103 117 86 103 117 86 103 117 86 103 117 86
++103 117 86 103 117 86 118 123 77 103 117 86 103 117 86 103 117 86 118 123 77 69 83 54
++103 117 86 69 83 54 103 117 86 113 97 36 69 83 54 103 117 86 69 83 54 104 88 73
++71 82 60 71 82 60 71 82 60 71 82 60 71 82 60 71 82 60 69 83 54 99 96 86
++173 175 176 157 164 157 68 68 60 68 80 50 57 59 55 141 139 118 173 175 176 103 106 97
++68 69 47 56 54 51 112 124 124 187 177 178 141 154 138 57 59 55 39 43 42 86 83 83
++173 167 157 112 124 124 46 47 45 35 34 35 75 83 72 173 167 157 86 83 83 112 124 124
++157 164 157 57 59 55 27 32 26 39 37 42 157 164 157 122 133 132 46 47 55 99 85 89
++143 146 150 157 164 157 83 103 97 86 83 83 86 83 83 157 164 157 112 124 124 99 96 86
++122 133 132 141 132 131 56 54 51 20 20 20 17 19 20 17 19 20 20 20 20 143 146 150
++61 60 67 35 34 35 141 138 138 99 96 86 21 19 21 86 83 83 157 164 157 103 106 97
++103 106 97 157 164 157 99 96 86 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++
++68 80 50 71 82 60 69 83 54 69 83 54 69 83 54 69 83 54 68 80 50 68 80 50
++68 80 50 69 83 54 69 83 54 69 83 54 68 80 50 69 83 54 69 83 54 69 83 54
++68 80 50 42 59 47 68 80 50 69 83 54 69 83 54 68 80 50 69 83 54 69 83 54
++69 83 54 68 80 50 68 80 50 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 68 80 50 69 83 54 69 83 54 122 133 132 159 178 157 157 164 157 143 146 150
++157 164 157 143 146 150 157 164 157 141 138 138 141 138 138 114 121 97 75 83 72 69 83 54
++69 83 54 68 80 50 42 59 47 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 75 83 72 69 83 54 71 82 60 75 83 72 75 83 72 68 80 50 68 80 50
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++83 103 97 141 154 138 173 175 176 188 191 205 173 175 176 157 164 157 143 146 150 122 133 132
++163 158 149 157 164 157 157 164 157 173 167 157 173 175 176 157 164 157 157 164 157 141 138 138
++28 30 29 21 19 15 20 28 24 20 28 24 27 32 26 49 43 41 49 43 41 23 19 15
++56 54 51 56 54 51 45 49 35 68 69 47 41 33 22 68 50 20 41 50 16 69 83 54
++103 117 86 114 121 97 114 121 97 114 121 97 114 121 97 83 103 97 103 117 86 75 83 72
++83 103 97 69 83 54 103 117 86 69 83 54 103 117 86 103 117 86 69 83 54 103 117 86
++103 117 86 103 117 86 118 123 77 103 117 86 103 117 86 118 123 77 103 117 86 103 117 86
++118 123 77 137 139 97 141 158 118 137 139 97 123 133 112 137 139 97 137 139 97 141 158 118
++141 158 118 141 158 118 141 158 118 141 158 118 141 158 118 141 158 118 141 158 118 172 173 110
++141 158 118 141 158 118 172 173 110 141 158 118 170 184 134 141 158 118 172 173 110 172 173 110
++141 158 118 172 173 110 141 158 118 172 173 110 170 184 134 170 184 134 172 173 110 141 158 118
++141 158 118 173 191 134 141 158 118 141 158 118 172 173 110 141 158 118 141 158 118 172 173 110
++141 158 118 172 173 110 141 158 118 141 158 118 141 158 118 141 158 118 141 158 118 141 158 118
++137 139 97 141 158 118 137 139 97 141 158 118 141 158 118 137 139 97 141 158 118 141 158 118
++172 173 110 137 139 97 137 139 97 141 158 118 137 139 97 137 139 97 141 158 118 137 139 97
++137 139 97 117 142 36 141 158 118 103 117 86 141 158 118 117 142 36 123 133 112 118 123 77
++123 133 112 137 139 97 118 123 77 118 123 77 137 139 97 103 117 86 118 123 77 137 139 97
++103 117 86 137 139 97 103 117 86 103 117 86 118 123 77 103 117 86 118 123 77 103 117 86
++118 123 77 103 117 86 103 117 86 103 117 86 113 97 36 103 117 86 69 83 54 118 123 77
++69 83 54 103 117 86 69 83 54 118 123 77 69 83 54 103 117 86 69 83 54 103 117 86
++69 83 54 103 117 86 69 83 54 69 83 54 71 82 60 69 83 54 69 83 54 69 83 54
++69 83 54 75 83 72 71 82 60 71 82 60 71 82 60 71 82 60 69 83 54 99 96 86
++159 178 157 173 183 156 99 96 86 68 80 50 71 81 67 173 175 176 157 164 157 103 106 97
++44 55 41 68 69 47 173 175 176 141 154 138 173 167 157 75 83 72 56 54 51 75 83 72
++173 175 176 173 175 176 103 106 97 27 32 26 75 83 72 157 164 157 75 83 72 123 109 109
++173 175 176 58 61 60 33 35 35 33 35 35 157 164 157 122 113 129 27 32 26 20 20 20
++112 124 124 163 148 159 41 38 42 20 20 20 61 60 67 173 167 157 68 75 77 14 14 18
++21 19 21 141 138 138 141 138 138 32 31 35 21 19 15 23 20 27 21 19 15 141 138 138
++68 68 60 143 146 150 112 104 120 13 14 11 20 28 24 86 83 83 157 164 157 21 19 27
++23 20 27 141 138 138 122 133 132 21 19 21 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 17 19 20 17 19 20
++
++71 82 60 71 82 60 58 61 60 69 83 54 69 83 54 68 80 50 69 83 54 42 59 47
++68 80 50 68 80 50 68 80 50 69 83 54 42 59 47 68 80 50 69 83 54 68 80 50
++69 83 54 69 83 54 69 83 54 58 61 60 69 83 54 68 80 50 58 61 60 69 83 54
++71 82 60 42 59 47 68 80 50 69 83 54 69 83 54 69 83 54 42 59 47 69 83 54
++42 59 47 68 80 50 42 59 47 69 83 54 75 83 72 103 106 97 75 83 72 86 83 83
++141 154 138 173 175 176 163 148 159 141 154 138 122 133 132 103 106 97 68 68 60 68 80 50
++42 59 47 42 59 47 68 80 50 57 59 55 42 59 47 69 83 54 42 59 47 58 61 60
++69 83 54 42 59 47 69 83 54 69 83 54 68 80 50 42 59 47 68 80 50 42 59 47
++69 83 54 42 59 47 69 83 54 42 59 47 68 80 50 68 80 50 68 80 50 68 80 50
++71 81 67 173 175 176 173 175 176 173 175 176 143 146 150 141 138 138 141 154 138 141 132 131
++112 124 124 141 132 131 141 138 138 157 164 157 173 167 157 143 146 150 163 158 149 141 154 138
++123 109 109 57 59 55 13 14 11 27 32 26 68 69 55 68 64 51 45 49 35 23 19 15
++45 49 35 41 33 22 28 30 29 39 28 30 21 19 15 27 32 26 31 42 35 71 81 67
++69 83 54 71 81 67 69 83 54 69 83 54 42 59 47 41 50 16 68 80 50 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 103 117 86 69 83 54 69 83 54 103 117 86 69 83 54 69 83 54
++69 83 54 103 117 86 69 83 54 69 83 54 103 117 86 69 83 54 69 83 54 103 117 86
++71 82 60 117 142 36 69 83 54 103 117 86 117 142 36 103 117 86 118 123 77 103 117 86
++118 123 77 118 123 77 103 117 86 118 123 77 118 123 77 137 139 97 137 139 97 137 139 97
++141 158 118 141 158 118 141 158 118 141 158 118 137 139 97 141 158 118 141 158 118 141 158 118
++141 158 118 137 139 97 141 158 118 141 158 118 141 158 118 141 158 118 141 158 118 141 158 118
++141 158 118 141 158 118 141 158 118 141 158 118 141 158 118 141 158 118 141 158 118 141 158 118
++137 139 97 141 158 118 137 139 97 172 173 110 137 139 97 141 158 118 141 158 118 117 142 36
++137 139 97 141 158 118 137 139 97 137 139 97 137 139 97 137 139 97 141 158 118 117 142 36
++141 158 118 123 133 112 141 158 118 117 142 36 141 158 118 103 117 86 123 133 112 117 142 36
++123 133 112 117 142 36 103 117 86 137 139 97 103 117 86 118 123 77 118 123 77 103 117 86
++118 123 77 103 117 86 103 117 86 118 123 77 103 117 86 103 117 86 103 117 86 103 117 86
++103 117 86 103 117 86 103 117 86 103 117 86 69 83 54 103 117 86 69 83 54 118 123 77
++69 83 54 118 123 77 69 83 54 103 117 86 113 97 36 69 83 54 103 117 86 69 83 54
++113 97 36 69 83 54 69 83 54 103 117 86 69 83 54 69 83 54 103 117 86 71 82 60
++69 83 54 69 83 54 69 83 54 71 82 60 69 83 54 68 80 50 68 69 47 99 96 86
++141 154 138 123 133 112 123 133 112 42 59 47 103 106 97 103 106 97 163 158 149 103 117 86
++44 55 41 99 96 86 143 146 150 99 96 86 173 175 176 103 106 97 44 55 41 68 75 77
++141 154 138 75 83 72 143 146 150 87 76 74 75 83 72 173 175 176 75 83 72 112 104 120
++157 164 157 56 54 51 28 30 29 28 30 29 163 158 149 122 133 132 28 30 29 20 28 24
++122 113 129 157 164 157 35 34 35 20 20 20 68 67 72 157 164 157 86 83 83 23 20 27
++20 20 20 112 104 120 173 167 157 46 47 45 17 19 20 20 20 20 20 20 20 143 146 150
++141 138 138 157 164 157 57 59 55 21 19 21 21 19 21 68 75 77 157 164 157 68 67 72
++68 75 77 163 148 159 103 106 97 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 14 14 18 13 14 11
++
++68 69 47 68 69 47 42 59 47 69 83 54 57 59 55 68 80 50 68 80 50 68 80 50
++69 83 54 58 61 60 42 59 47 57 59 55 68 80 50 58 61 60 69 83 54 58 61 60
++69 83 54 68 68 60 71 82 60 71 82 60 71 82 60 71 81 67 69 83 54 71 82 60
++71 82 60 71 82 60 71 82 60 71 82 60 71 82 60 71 81 67 71 82 60 71 82 60
++42 59 47 69 83 54 58 61 60 68 80 50 71 81 67 68 69 55 71 81 67 99 96 86
++114 121 97 123 133 112 141 139 118 163 158 149 114 121 97 75 83 72 44 55 41 68 69 47
++68 80 50 42 59 47 68 80 50 42 59 47 69 83 54 69 83 54 68 80 50 69 83 54
++42 59 47 69 83 54 42 59 47 69 83 54 58 61 60 68 80 50 42 59 47 68 80 50
++68 80 50 42 59 47 68 80 50 42 59 47 68 80 50 42 59 47 42 59 47 68 80 50
++71 82 60 122 133 132 141 154 138 173 183 156 141 154 138 68 69 55 46 47 45 75 83 72
++123 109 109 123 133 112 141 132 131 163 158 149 173 167 157 157 164 157 163 158 149 163 158 149
++143 146 150 123 109 109 31 42 35 45 49 35 44 55 41 45 49 35 45 49 35 44 55 41
++12 22 12 45 49 35 45 49 35 45 49 35 45 49 35 45 49 35 68 64 51 68 80 50
++42 59 47 69 83 54 69 83 54 69 83 54 68 80 50 68 80 50 68 80 50 68 80 50
++69 83 54 71 82 60 75 83 72 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 103 117 86 69 83 54 103 117 86
++103 117 86 103 117 86 117 142 36 69 83 54 103 117 86 117 142 36 103 117 86 117 142 36
++103 117 86 117 142 36 103 117 86 117 142 36 141 158 118 117 142 36 137 139 97 137 139 97
++117 142 36 141 158 118 137 139 97 137 139 97 137 139 97 137 139 97 137 139 97 117 142 36
++141 158 118 137 139 97 141 158 118 117 142 36 141 158 118 137 139 97 137 139 97 141 158 118
++141 158 118 117 142 36 141 158 118 117 142 36 141 158 118 117 142 36 141 158 118 137 139 97
++137 139 97 117 142 36 141 158 118 103 117 86 137 139 97 117 142 36 141 158 118 103 117 86
++123 133 112 118 123 77 123 133 112 117 142 36 123 133 112 103 117 86 118 123 77 103 117 86
++118 123 77 103 117 86 118 123 77 103 117 86 117 142 36 103 117 86 103 117 86 117 142 36
++103 117 86 69 83 54 117 142 36 75 83 72 118 123 77 103 117 86 113 97 36 103 117 86
++103 117 86 69 83 54 103 117 86 69 83 54 103 117 86 69 83 54 113 97 36 75 83 72
++71 82 60 69 83 54 113 97 36 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 71 82 60 69 83 54 69 83 54 68 80 50 68 69 47 68 80 50 75 83 72
++141 154 138 71 81 67 163 158 149 68 69 47 141 154 138 56 54 51 141 154 138 114 99 97
++56 54 51 141 139 118 114 121 97 86 83 83 157 164 157 141 154 138 39 43 42 75 83 72
++157 164 157 39 43 42 103 106 97 143 146 150 103 106 97 157 164 157 86 83 83 114 121 97
++173 175 176 56 54 51 28 30 29 33 35 35 157 164 157 122 113 129 27 32 26 23 19 15
++112 124 124 163 158 149 35 34 35 20 20 20 68 67 72 157 164 157 86 83 83 20 20 20
++13 14 11 112 124 124 173 175 176 39 37 42 21 19 21 20 20 20 20 20 20 143 146 150
++112 124 124 173 167 157 112 104 120 13 14 11 21 19 21 86 83 83 173 167 157 141 132 131
++173 175 176 112 124 124 13 14 11 21 19 21 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 17 19 20 17 19 20 13 14 11 14 14 18
++
++68 69 55 68 80 50 68 69 47 68 80 50 68 80 50 58 61 60 69 83 54 58 61 60
++68 68 60 68 80 50 57 59 55 44 55 41 68 69 55 68 69 55 68 68 60 68 69 55
++68 69 55 68 68 60 69 83 54 68 69 55 57 59 55 68 69 55 71 81 67 68 68 60
++71 82 60 71 81 67 68 68 60 57 59 55 57 59 55 58 61 60 68 69 55 68 69 47
++42 59 47 57 59 55 68 69 55 69 83 54 75 64 67 75 83 72 88 79 65 68 69 55
++68 69 55 68 69 55 75 83 72 71 81 67 88 79 65 71 82 60 71 82 60 68 68 60
++68 69 55 69 83 54 71 81 67 69 83 54 71 81 67 68 80 50 58 61 60 69 83 54
++57 59 55 69 83 54 69 83 54 68 80 50 68 80 50 42 59 47 68 80 50 68 80 50
++42 59 47 68 80 50 68 80 50 68 80 50 68 80 50 68 80 50 68 80 50 42 59 47
++71 82 60 103 117 86 114 99 97 68 64 51 68 69 47 68 69 55 75 83 72 68 50 43
++103 106 97 103 106 97 123 109 109 141 138 138 163 158 149 143 146 150 163 158 149 173 167 157
++163 158 149 114 121 97 44 55 41 68 69 55 42 59 47 68 80 50 42 59 47 68 80 50
++44 55 41 68 69 47 68 80 50 44 55 41 45 49 35 68 69 47 58 61 60 68 80 50
++69 83 54 69 83 54 69 83 54 69 83 54 42 59 47 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 103 117 86
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 103 117 86 69 83 54
++103 117 86 69 83 54 69 83 54 117 142 36 103 117 86 117 142 36 118 123 77 103 117 86
++123 133 112 117 142 36 103 117 86 118 123 77 141 158 118 117 142 36 118 123 77 117 142 36
++118 123 77 137 139 97 118 123 77 141 158 118 118 123 77 141 158 118 118 123 77 103 117 86
++141 158 118 103 117 86 141 158 118 118 123 77 141 158 118 123 133 112 103 117 86 141 158 118
++117 142 36 103 117 86 137 139 97 103 117 86 137 139 97 103 117 86 117 142 36 141 158 118
++118 123 77 118 123 77 103 117 86 103 117 86 103 117 86 103 117 86 103 117 86 103 117 86
++103 117 86 103 117 86 103 117 86 103 117 86 118 123 77 69 83 54 103 117 86 103 117 86
++69 83 54 103 117 86 117 142 36 69 83 54 103 117 86 69 83 54 103 117 86 69 83 54
++103 117 86 71 82 60 69 83 54 103 117 86 69 83 54 88 79 65 69 83 54 69 83 54
++71 82 60 69 83 54 68 80 50 68 80 50 68 80 50 68 80 50 68 69 47 104 88 73
++141 154 138 56 54 51 141 154 138 123 133 112 123 133 112 57 59 55 143 146 150 103 117 86
++56 54 51 141 154 138 112 124 124 123 133 112 141 132 131 173 167 157 68 68 60 71 81 67
++143 146 150 39 43 42 45 49 35 122 133 132 163 158 149 157 164 157 86 83 83 103 106 97
++157 164 157 58 61 60 28 30 29 46 47 45 157 164 157 123 109 109 28 30 29 23 19 15
++122 113 129 157 164 157 35 34 35 23 20 27 68 67 72 157 164 157 68 75 77 20 20 20
++39 43 42 141 138 138 122 113 129 20 28 24 20 20 20 20 20 20 23 19 15 143 146 150
++68 68 60 112 104 120 157 164 157 86 83 83 21 19 21 68 75 77 157 164 157 30 34 36
++123 109 109 143 146 150 56 54 51 17 19 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 21 19 15 17 19 20 21 19 15 17 19 20 14 14 18
++
++68 69 47 57 59 55 68 80 50 58 61 60 68 80 50 57 59 55 68 80 50 68 68 60
++68 80 50 68 68 60 68 69 55 45 39 35 45 49 35 68 68 60 68 69 55 68 69 47
++68 69 47 57 59 55 69 83 54 68 68 60 69 83 54 68 68 60 71 81 67 71 82 60
++68 69 55 71 82 60 71 81 67 71 82 60 71 82 60 71 82 60 71 81 67 68 68 60
++71 82 60 68 69 55 68 69 55 68 68 60 75 83 72 88 79 65 71 81 67 68 68 60
++71 81 67 68 69 55 71 81 67 68 69 55 71 81 67 68 69 55 71 81 67 71 81 67
++71 81 67 71 81 67 71 81 67 68 68 60 71 81 67 68 68 60 71 81 67 71 82 60
++71 82 60 71 82 60 58 61 60 71 82 60 71 82 60 68 69 55 68 80 50 68 69 55
++68 80 50 68 69 55 69 83 54 58 61 60 69 83 54 57 59 55 68 80 50 42 59 47
++68 80 50 88 79 65 103 106 97 104 88 73 88 79 65 56 54 51 88 79 65 99 96 86
++99 79 59 104 88 73 123 133 112 141 139 118 141 132 131 141 139 118 141 132 131 163 158 149
++163 158 149 173 167 157 123 109 109 31 42 35 57 59 55 44 55 41 68 69 47 42 59 47
++68 80 50 42 59 47 68 69 47 57 59 55 44 55 41 68 69 47 42 59 47 68 69 47
++58 61 60 68 80 50 42 59 47 68 80 50 69 83 54 68 80 50 42 59 47 42 59 47
++69 83 54 69 83 54 69 83 54 68 80 50 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 75 83 72 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 42 59 47 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 68 80 50 69 83 54 69 83 54 42 59 47 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 103 117 86 69 83 54 103 117 86 83 103 97
++103 117 86 103 117 86 117 142 36 83 103 97 117 142 36 103 117 86 103 117 86 117 142 36
++103 117 86 103 117 86 117 142 36 123 133 112 123 133 112 117 142 36 123 133 112 103 117 86
++103 117 86 103 117 86 118 123 77 103 117 86 103 117 86 103 117 86 103 117 86 103 117 86
++103 117 86 117 142 36 123 133 112 103 117 86 118 123 77 103 117 86 117 142 36 103 117 86
++103 117 86 117 142 36 103 117 86 69 83 54 118 123 77 103 117 86 117 142 36 103 117 86
++113 97 36 103 117 86 71 82 60 103 117 86 69 83 54 103 117 86 69 83 54 118 123 77
++69 83 54 113 97 36 69 83 54 69 83 54 69 83 54 69 83 54 88 79 65 69 83 54
++71 82 60 69 83 54 68 80 50 68 69 55 68 80 50 68 69 55 68 80 50 83 103 97
++141 154 138 68 69 47 103 106 97 173 175 176 99 96 86 44 55 41 163 158 149 103 106 97
++114 121 97 123 133 112 45 39 35 45 49 35 68 68 60 159 178 157 122 133 132 71 81 67
++157 164 157 33 35 35 27 32 26 45 49 35 141 132 131 173 175 176 86 83 83 68 67 72
++173 175 176 123 109 109 39 43 42 103 106 97 173 175 176 68 75 77 28 30 29 23 20 27
++112 124 124 163 158 149 35 34 35 20 20 20 68 67 72 173 167 157 112 104 120 86 83 83
++157 164 157 141 138 138 33 35 35 21 19 15 141 138 138 86 83 83 20 20 20 163 158 149
++58 61 60 20 28 24 112 124 124 173 175 176 58 61 60 87 76 74 157 164 157 28 26 35
++39 43 42 157 164 157 141 132 131 28 30 29 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 17 19 20 17 19 20 14 14 18 17 19 20
++
++68 80 50 57 59 55 68 80 50 68 69 55 69 83 54 68 80 50 68 69 55 68 69 55
++68 68 60 71 82 60 68 68 60 44 55 41 68 64 51 71 81 67 71 82 60 68 80 50
++42 59 47 68 80 50 68 69 55 71 82 60 68 68 60 71 81 67 71 82 60 68 68 60
++68 69 55 71 82 60 68 69 55 68 68 60 68 68 60 71 82 60 68 68 60 71 82 60
++75 64 67 71 82 60 68 69 55 71 81 67 88 79 65 68 68 60 71 82 60 75 64 67
++71 81 67 88 79 65 68 69 55 56 54 51 68 69 55 68 64 51 57 59 55 68 64 51
++68 68 60 71 81 67 68 68 60 71 81 67 71 82 60 75 83 72 68 68 60 45 49 35
++68 68 60 75 83 72 68 69 55 71 81 67 68 68 60 57 59 55 68 68 60 68 68 60
++71 81 67 71 81 67 68 68 60 71 82 60 71 81 67 71 82 60 68 69 55 68 68 60
++68 69 55 71 82 60 45 49 35 44 55 41 99 96 86 75 83 72 68 50 20 71 82 60
++71 82 60 113 97 77 123 133 112 141 128 110 123 133 112 114 121 97 141 128 110 163 158 149
++163 158 149 141 132 131 71 81 67 31 42 35 45 49 35 68 69 47 42 59 47 68 69 47
++42 59 47 44 55 41 56 54 51 44 55 41 44 55 41 42 59 47 68 69 47 42 59 47
++42 59 47 68 69 55 42 59 47 57 59 55 57 59 55 57 59 55 44 55 41 44 55 41
++42 59 47 68 80 50 58 61 60 68 80 50 58 61 60 68 80 50 69 83 54 42 59 47
++68 80 50 68 80 50 68 80 50 68 80 50 68 80 50 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 71 82 60 69 83 54
++69 83 54 69 83 54 42 59 47 69 83 54 42 59 47 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 42 59 47 69 83 54
++69 83 54 42 59 47 68 80 50 42 59 47 68 80 50 69 83 54 42 59 47 69 83 54
++42 59 47 69 83 54 69 83 54 42 59 47 69 83 54 69 83 54 42 59 47 42 59 47
++68 80 50 42 59 47 68 80 50 69 83 54 42 59 47 68 80 50 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 83 103 97 69 83 54 83 103 97 103 117 86
++103 117 86 103 117 86 103 117 86 103 117 86 103 117 86 123 133 112 103 117 86 117 142 36
++103 117 86 123 133 112 117 142 36 123 133 112 118 123 77 118 123 77 123 133 112 117 142 36
++123 133 112 141 158 118 103 117 86 103 117 86 141 158 118 103 117 86 103 117 86 103 117 86
++103 117 86 71 82 60 103 117 86 118 123 77 69 83 54 103 117 86 103 117 86 69 83 54
++103 117 86 69 83 54 103 117 86 69 83 54 103 117 86 69 83 54 113 97 36 69 83 54
++69 83 54 69 83 54 103 117 86 88 79 65 69 83 54 103 117 86 71 82 60 71 82 60
++71 82 60 71 82 60 69 83 54 68 80 50 68 80 50 68 69 47 68 69 47 71 82 60
++103 117 86 57 59 55 71 82 60 114 121 97 68 69 55 68 64 51 103 106 97 75 83 72
++103 106 97 87 76 74 44 55 41 45 49 35 45 49 35 103 106 97 103 106 97 58 61 60
++103 106 97 45 49 35 45 39 35 31 42 35 58 61 60 103 106 97 57 59 55 27 32 26
++58 61 60 103 106 97 123 133 112 112 104 120 57 59 55 23 20 27 27 32 26 21 19 21
++68 75 77 99 96 86 32 31 35 21 19 21 46 47 55 99 85 89 83 103 97 99 85 89
++58 61 60 28 30 29 20 20 20 21 19 21 83 103 97 68 68 60 14 14 18 86 83 83
++46 47 45 21 19 15 57 45 51 103 106 97 58 61 60 46 47 55 103 106 97 28 30 29
++21 19 21 86 83 83 103 106 97 28 30 29 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 17 19 20 14 14 18 21 19 15 14 14 18 14 14 18
++
++68 69 47 68 69 47 42 59 47 42 59 47 68 80 50 68 69 55 68 80 50 68 69 55
++68 80 50 68 69 55 57 59 55 68 69 55 71 82 60 68 69 55 68 80 50 68 69 47
++68 69 47 68 69 47 57 59 55 68 80 50 42 59 47 68 69 55 71 81 67 71 82 60
++68 69 55 71 82 60 68 69 55 71 82 60 71 81 67 88 79 65 68 69 55 71 82 60
++68 68 60 71 82 60 75 64 67 88 79 65 71 82 60 71 81 67 68 69 55 71 82 60
++68 69 55 71 82 60 68 69 55 68 69 47 68 69 55 71 82 60 68 68 60 68 64 51
++56 54 51 68 69 55 68 69 55 68 68 60 88 79 65 88 79 65 68 69 55 45 49 35
++68 64 51 68 68 60 68 64 51 57 59 55 68 64 51 57 59 55 57 59 55 68 69 55
++68 68 60 68 68 60 57 59 55 68 68 60 71 81 67 75 64 67 68 69 55 88 79 65
++71 81 67 68 68 60 56 54 51 41 28 14 68 64 51 41 50 16 31 42 35 68 50 43
++69 83 54 88 79 65 99 96 86 99 96 86 103 117 86 137 117 96 123 133 112 163 158 149
++141 138 138 46 47 45 39 28 30 41 38 42 45 39 35 31 42 35 57 59 55 68 69 47
++42 59 47 68 69 47 68 69 47 68 69 47 56 54 51 68 64 51 56 54 51 68 69 47
++68 69 47 68 69 55 68 69 47 68 69 55 68 69 47 68 69 47 57 59 55 68 69 47
++44 55 41 57 59 55 68 80 50 42 59 47 68 69 47 42 59 47 68 69 55 69 83 54
++68 68 60 68 69 55 58 61 60 57 59 55 68 69 55 68 69 55 68 69 55 68 69 55
++68 80 50 68 69 55 69 83 54 58 61 60 69 83 54 69 83 54 69 83 54 45 62 74
++69 83 54 69 83 54 69 83 54 45 62 74 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 68 80 50 68 80 50 42 59 47 69 83 54 69 83 54 69 83 54
++69 83 54 42 59 47 69 83 54 69 83 54 69 83 54 42 59 47 69 83 54 68 80 50
++42 59 47 69 83 54 42 59 47 68 80 50 69 83 54 42 59 47 69 83 54 69 83 54
++68 80 50 42 59 47 68 80 50 68 80 50 42 59 47 69 83 54 68 80 50 68 80 50
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 103 117 86 69 83 54 103 117 86 69 83 54
++103 117 86 103 117 86 103 117 86 103 117 86 103 117 86 103 117 86 103 117 86 103 117 86
++103 117 86 103 117 86 103 117 86 118 123 77 123 133 112 103 117 86 103 117 86 103 117 86
++118 123 77 103 117 86 103 117 86 103 117 86 118 123 77 103 117 86 103 117 86 103 117 86
++69 83 54 118 123 77 69 83 54 118 123 77 113 97 36 103 117 86 69 83 54 103 117 86
++103 117 86 103 117 86 69 83 54 69 83 54 103 117 86 69 83 54 71 82 60 69 83 54
++88 79 65 69 83 54 68 80 50 68 69 55 68 80 50 68 69 55 71 82 60 68 80 50
++68 69 47 68 69 47 57 59 55 57 59 55 56 54 51 57 59 55 44 55 41 56 54 51
++45 49 35 44 55 41 56 54 51 44 55 41 56 54 51 45 49 35 46 47 45 46 47 45
++33 35 35 31 42 35 33 35 35 45 49 35 27 32 26 27 32 26 31 42 35 31 42 35
++27 32 26 28 30 29 23 20 27 20 20 20 28 30 29 23 20 27 20 28 24 28 30 29
++23 20 27 20 20 20 23 20 27 28 30 29 23 20 27 17 19 20 23 20 27 20 20 20
++20 20 20 21 19 21 17 19 20 21 19 21 21 19 15 21 19 21 23 20 27 17 19 20
++20 20 20 20 20 20 17 19 20 28 30 29 21 19 15 17 19 20 14 14 18 21 19 21
++17 19 20 20 20 20 17 19 20 21 19 21 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 17 19 20 21 19 15 14 14 18 14 14 18 14 14 18
++
++68 80 50 42 59 47 68 80 50 68 69 47 68 69 47 42 59 47 42 59 47 68 80 50
++42 59 47 68 80 50 68 69 55 68 80 50 68 69 47 42 59 47 68 80 50 68 80 50
++42 59 47 68 80 50 68 80 50 68 80 50 68 69 47 68 69 55 71 82 60 68 80 50
++68 69 47 68 80 50 68 69 55 69 83 54 57 59 55 68 80 50 68 69 55 68 69 55
++68 69 55 68 69 47 68 69 47 68 69 55 68 69 55 68 69 55 68 69 47 68 69 55
++71 82 60 68 69 55 68 69 55 68 69 55 68 69 55 68 69 47 68 69 55 44 55 41
++44 55 41 68 64 51 71 82 60 68 68 60 68 64 51 44 55 41 44 55 41 56 54 51
++57 59 55 68 69 55 68 69 55 68 69 55 68 69 55 68 69 55 69 83 54 68 69 55
++68 69 47 68 69 55 68 69 55 68 69 55 68 69 55 68 69 55 68 68 60 68 64 51
++56 54 51 56 54 51 56 54 51 68 68 60 68 68 60 45 49 35 41 28 14 12 22 12
++41 33 22 44 55 41 88 79 65 88 79 65 88 79 65 88 79 65 114 99 97 141 139 118
++163 158 149 141 139 118 103 106 97 58 53 60 45 39 35 31 42 35 45 39 35 42 59 47
++57 59 55 57 59 55 57 59 55 68 64 51 58 61 60 68 68 60 68 69 55 57 59 55
++57 59 55 68 69 55 57 59 55 57 59 55 57 59 55 57 59 55 68 69 47 56 54 51
++68 69 55 68 64 51 68 69 55 57 59 55 68 69 55 68 69 55 57 59 55 68 69 55
++68 69 55 68 69 55 68 68 60 68 80 50 57 59 55 68 68 60 71 82 60 68 68 60
++69 83 54 57 59 55 68 69 55 68 80 50 58 61 60 68 69 55 42 59 47 68 80 50
++68 80 50 71 82 60 58 61 60 68 80 50 69 83 54 69 83 54 42 59 47 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 75 83 72 69 83 54 42 59 47 69 83 54 69 83 54
++71 82 60 69 83 54 75 83 72 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++103 117 86 69 83 54 69 83 54 71 82 60 71 82 60 71 82 60 69 83 54 75 83 72
++71 82 60 103 117 86 69 83 54 75 83 72 69 83 54 69 83 54 68 80 50 68 80 50
++68 80 50 69 83 54 69 83 54 68 80 50 42 59 47 68 80 50 42 59 47 68 80 50
++42 59 47 68 80 50 69 83 54 42 59 47 68 80 50 42 59 47 68 80 50 69 83 54
++68 80 50 68 80 50 69 83 54 68 80 50 69 83 54 69 83 54 69 83 54 69 83 54
++117 142 36 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 117 142 36 69 83 54
++69 83 54 103 117 86 113 97 36 69 83 54 103 117 86 69 83 54 118 123 77 69 83 54
++103 117 86 69 83 54 113 97 36 69 83 54 69 83 54 69 83 54 103 117 86 69 83 54
++103 117 86 69 83 54 69 83 54 103 117 86 69 83 54 71 82 60 88 79 65 69 83 54
++71 82 60 71 82 60 71 82 60 71 82 60 75 83 72 71 82 60 71 82 60 71 82 60
++68 80 50 42 59 47 68 69 47 68 69 47 68 69 47 44 55 41 68 69 47 44 55 41
++68 50 43 44 55 41 45 49 35 44 55 41 41 33 22 45 49 35 31 42 35 39 43 42
++45 49 35 45 49 35 31 42 35 41 33 22 31 42 35 31 42 35 27 32 26 27 32 26
++27 32 26 28 30 29 20 28 24 28 30 29 21 19 21 28 30 29 21 19 21 21 19 21
++21 19 21 20 20 20 20 20 20 23 20 27 20 20 20 28 30 29 20 20 20 20 20 20
++21 19 21 20 20 20 20 20 20 17 19 20 21 19 21 17 19 20 20 20 20 21 19 21
++17 19 20 21 19 21 17 19 20 21 19 21 21 19 21 17 19 20 20 20 20 17 19 20
++21 19 21 17 19 20 17 19 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 17 19 20 21 19 15 14 14 18 17 19 20 17 19 20 14 14 18
++
++68 80 50 68 80 50 68 69 47 42 59 47 68 80 50 68 80 50 69 83 54 68 80 50
++68 80 50 58 61 60 68 80 50 57 59 55 68 80 50 68 69 47 42 59 47 68 80 50
++68 80 50 68 80 50 57 59 55 68 80 50 42 59 47 68 80 50 69 83 54 58 61 60
++68 80 50 57 59 55 68 80 50 57 59 55 68 69 47 68 80 50 42 59 47 68 80 50
++42 59 47 68 69 47 68 80 50 58 61 60 42 59 47 68 69 47 68 80 50 68 69 55
++57 59 55 68 69 47 68 69 55 68 80 50 42 59 47 68 69 55 57 59 55 68 80 50
++71 82 60 68 69 55 68 68 60 71 82 60 71 81 67 68 69 55 68 69 55 68 69 47
++68 69 47 68 80 50 68 69 55 68 80 50 68 80 50 68 69 55 42 59 47 69 83 54
++68 80 50 57 59 55 68 80 50 68 69 55 71 82 60 68 69 55 69 83 54 68 69 55
++68 68 60 68 69 55 44 55 41 56 54 51 44 55 41 57 59 55 57 59 55 44 55 41
++45 49 35 27 32 26 41 33 22 68 68 60 99 96 86 88 79 65 71 82 60 99 96 86
++114 121 97 141 128 110 163 158 149 187 177 178 141 132 131 99 96 86 58 61 60 56 54 51
++57 59 55 68 68 60 68 68 60 56 54 51 49 43 41 68 64 51 57 59 55 58 61 60
++57 59 55 68 69 55 57 59 55 42 59 47 68 69 47 56 54 51 68 69 55 68 69 55
++68 69 55 68 68 60 56 54 51 56 54 51 71 82 60 68 68 60 71 81 67 68 68 60
++68 68 60 68 69 55 68 68 60 68 68 60 68 68 60 57 59 55 68 68 60 68 68 60
++68 69 55 57 59 55 68 69 47 68 69 55 68 80 50 68 69 55 75 83 72 75 83 72
++71 82 60 75 83 72 69 83 54 68 68 60 69 83 54 69 83 54 69 83 54 71 82 60
++71 81 67 71 81 67 71 81 67 75 83 72 71 81 67 75 83 72 83 103 97 71 82 60
++83 103 97 99 96 86 83 103 97 103 117 86 103 117 86 103 117 86 103 117 86 99 96 86
++103 117 86 103 117 86 103 117 86 118 123 77 103 117 86 103 117 86 118 123 77 103 117 86
++103 117 86 114 121 97 137 139 97 123 133 112 118 123 77 114 121 97 137 139 97 118 123 77
++118 123 77 137 139 97 118 123 77 118 123 77 103 117 86 118 123 77 103 117 86 103 117 86
++103 117 86 123 133 112 103 117 86 69 83 54 69 83 54 69 83 54 68 80 50 68 80 50
++42 59 47 42 59 47 42 59 47 68 80 50 68 80 50 68 80 50 69 83 54 69 83 54
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++83 103 97 69 83 54 117 142 36 83 103 97 103 117 86 103 117 86 83 103 97 103 117 86
++103 117 86 69 83 54 103 117 86 69 83 54 118 123 77 69 83 54 103 117 86 69 83 54
++113 97 36 69 83 54 69 83 54 103 117 86 69 83 54 103 117 86 68 80 50 69 83 54
++69 83 54 69 83 54 88 79 65 69 83 54 69 83 54 69 83 54 69 83 54 71 82 60
++69 83 54 71 82 60 69 83 54 68 80 50 68 80 50 68 69 47 68 80 50 68 69 47
++68 69 47 68 69 47 42 59 47 68 69 47 42 59 47 68 69 47 44 55 41 68 69 47
++44 55 41 44 55 41 45 49 35 56 54 51 44 55 41 45 49 35 39 43 42 45 49 35
++39 43 42 46 47 45 31 42 35 41 33 22 31 42 35 27 32 26 33 35 35 27 32 26
++41 33 22 20 28 24 23 19 15 28 30 29 28 30 29 28 30 29 23 20 27 20 28 24
++28 30 29 20 20 20 21 19 21 20 28 24 21 19 21 23 20 27 17 19 20 20 20 20
++17 19 20 17 19 20 21 19 21 20 20 20 17 19 20 21 19 15 28 30 29 17 19 20
++20 20 20 20 20 20 21 19 21 17 19 20 20 20 20 14 14 18 20 20 20 20 20 20
++20 28 24 21 19 15 14 14 18 21 19 21 20 20 20 20 20 20 20 20 20 20 20 20
++17 19 20 14 14 18 13 14 11 14 14 18 21 19 15 13 14 11 17 19 20 14 14 18
++
++68 80 50 42 59 47 68 80 50 68 80 50 42 59 47 68 80 50 68 80 50 68 80 50
++68 80 50 42 59 47 68 80 50 68 80 50 42 59 47 68 80 50 68 80 50 42 59 47
++69 83 54 68 80 50 42 59 47 68 80 50 69 83 54 57 59 55 68 80 50 42 59 47
++68 80 50 42 59 47 68 80 50 68 80 50 42 59 47 68 80 50 42 59 47 68 69 47
++68 80 50 42 59 47 68 80 50 68 80 50 68 80 50 42 59 47 57 59 55 68 80 50
++42 59 47 45 49 35 44 55 41 68 69 55 68 80 50 69 83 54 68 80 50 68 69 47
++68 69 47 68 80 50 68 69 47 44 55 41 68 69 47 57 59 55 68 80 50 68 69 47
++57 59 55 71 82 60 68 80 50 68 80 50 42 59 47 68 69 47 68 80 50 68 69 47
++57 59 55 68 80 50 68 80 50 58 61 60 68 80 50 57 59 55 68 69 55 68 69 55
++57 59 55 68 69 55 57 59 55 68 69 47 57 59 55 68 69 47 56 54 51 56 54 51
++68 64 51 68 69 47 57 59 55 68 69 47 56 54 51 56 54 51 68 69 55 68 69 55
++88 79 65 88 79 65 103 117 86 99 96 86 114 121 97 123 109 109 114 121 97 141 132 131
++114 121 97 141 132 131 123 133 112 141 132 131 68 64 51 68 68 60 68 68 60 68 69 55
++56 54 51 45 49 35 57 59 55 68 64 51 68 68 60 68 69 55 68 68 60 71 82 60
++75 64 67 68 68 60 68 69 55 88 79 65 75 64 67 88 79 65 68 68 60 68 68 60
++68 69 55 104 88 73 71 82 60 88 79 65 71 82 60 99 96 86 86 83 83 71 81 67
++88 79 65 88 79 65 99 96 86 88 79 65 75 83 72 99 96 86 137 117 96 128 104 97
++113 97 77 104 88 73 99 96 86 88 79 65 99 96 86 99 96 86 99 96 86 103 117 86
++99 96 86 99 96 86 75 83 72 103 117 86 75 83 72 104 88 73 99 96 86 103 117 86
++103 117 86 118 123 77 103 117 86 113 97 77 103 117 86 114 121 97 118 123 77 114 121 97
++114 121 97 118 123 77 137 139 97 118 123 77 114 121 97 118 123 77 137 139 97 114 121 97
++137 139 97 137 139 97 118 123 77 123 133 112 141 158 118 137 139 97 123 133 112 137 139 97
++137 139 97 123 133 112 137 139 97 123 133 112 137 139 97 137 139 97 137 139 97 123 133 112
++137 139 97 141 158 118 137 139 97 137 139 97 114 121 97 123 133 112 103 117 86 103 117 86
++103 117 86 103 117 86 69 83 54 103 117 86 69 83 54 69 83 54 69 83 54 69 83 54
++103 117 86 103 117 86 103 117 86 103 117 86 117 142 36 103 117 86 103 117 86 69 83 54
++68 80 50 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54
++69 83 54 118 123 77 69 83 54 103 117 86 69 83 54 103 117 86 69 83 54 103 117 86
++75 83 72 69 83 54 103 117 86 69 83 54 103 117 86 69 83 54 69 83 54 113 97 36
++69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 69 83 54 68 80 50
++68 80 50 68 80 50 68 80 50 68 69 47 68 80 50 42 59 47 68 69 47 68 69 47
++42 59 47 57 59 55 68 69 47 44 55 41 56 54 51 68 69 47 44 55 41 45 49 35
++68 69 47 44 55 41 45 49 35 44 55 41 45 49 35 45 49 35 39 43 42 45 49 35
++39 43 42 45 39 35 31 42 35 31 42 35 33 35 35 27 32 26 27 32 26 27 32 26
++27 32 26 23 20 27 28 30 29 28 30 29 28 30 29 21 19 21 20 28 24 21 19 21
++21 19 21 20 28 24 21 19 21 21 19 21 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++21 19 21 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 17 19 20
++21 19 15 17 19 20 14 14 18 14 14 18 14 14 18 14 14 18 14 14 18 14 14 18
++
++68 69 47 68 80 50 42 59 47 68 80 50 42 59 47 68 80 50 42 59 47 42 59 47
++68 80 50 42 59 47 68 80 50 42 59 47 68 80 50 68 80 50 68 69 47 68 80 50
++68 80 50 42 59 47 69 83 54 68 80 50 68 80 50 42 59 47 68 80 50 68 80 50
++68 80 50 68 80 50 42 59 47 69 83 54 69 83 54 68 80 50 68 80 50 68 80 50
++68 80 50 68 80 50 68 80 50 42 59 47 68 80 50 68 80 50 68 80 50 42 59 47
++68 80 50 68 80 50 68 80 50 68 80 50 58 61 60 68 80 50 42 59 47 68 80 50
++42 59 47 68 80 50 42 59 47 68 80 50 42 59 47 68 80 50 68 80 50 42 59 47
++68 80 50 68 69 47 68 69 47 68 80 50 68 80 50 68 80 50 42 59 47 68 80 50
++68 80 50 68 80 50 68 80 50 68 80 50 68 80 50 68 69 47 68 80 50 68 69 47
++68 69 47 42 59 47 68 80 50 69 83 54 68 69 55 69 83 54 68 80 50 68 80 50
++68 69 55 69 83 54 68 80 50 68 69 47 42 59 47 68 80 50 69 83 54 68 80 50
++57 59 55 44 55 41 68 69 47 45 49 35 56 54 51 71 82 60 88 79 65 75 83 72
++68 69 55 68 68 60 88 79 65 99 96 86 56 54 51 45 49 35 68 64 51 68 64 51
++44 55 41 56 54 51 69 83 54 68 69 55 68 64 51 68 69 55 68 64 51 68 64 51
++71 82 60 68 69 55 71 82 60 68 69 55 88 79 65 71 82 60 88 79 65 88 79 65
++68 69 55 88 79 65 88 79 65 99 96 86 104 88 73 103 117 86 113 97 77 104 88 73
++88 79 65 113 97 77 114 121 97 113 97 77 113 97 77 113 97 77 137 117 96 114 121 97
++137 117 96 114 121 97 137 117 96 141 128 110 135 123 86 137 117 96 135 123 86 113 97 77
++118 123 77 135 123 86 137 139 97 114 121 97 135 123 86 137 139 97 118 123 77 104 88 73
++99 79 59 113 97 77 99 79 59 88 79 65 113 97 77 68 80 50 68 50 43 113 97 77
++135 123 86 141 128 110 164 145 137 137 139 97 141 128 110 141 139 118 141 158 118 172 173 110
++141 158 118 141 158 118 141 158 118 137 139 97 137 139 97 141 158 118 137 139 97 137 139 97
++141 158 118 141 158 118 137 139 97 141 158 118 141 158 118 141 158 118 141 158 118 141 158 118
++137 139 97 137 139 97 123 133 112 137 139 97 141 158 118 137 139 97 113 97 77 118 123 77
++137 139 97 137 139 97 137 139 97 137 139 97 103 117 86 137 139 97 137 139 97 137 139 97
++118 123 77 103 117 86 69 83 54 103 117 86 69 83 54 69 83 54 103 117 86 103 117 86
++68 80 50 71 82 60 103 117 86 69 83 54 69 83 54 69 83 54 103 117 86 68 80 50
++69 83 54 68 80 50 68 80 50 69 83 54 103 117 86 69 83 54 68 80 50 69 83 54
++69 83 54 69 83 54 103 117 86 68 80 50 68 80 50 69 83 54 88 79 65 71 82 60
++75 83 72 69 83 54 104 88 73 71 82 60 75 83 72 71 82 60 71 82 60 71 82 60
++71 82 60 68 80 50 68 69 55 68 80 50 68 69 47 68 80 50 68 69 47 42 59 47
++68 80 50 68 69 47 42 59 47 68 69 47 44 55 41 68 69 47 45 49 35 56 54 51
++45 49 35 44 55 41 45 49 35 44 55 41 45 49 35 45 49 35 39 43 42 39 43 42
++31 42 35 31 42 35 35 34 35 31 42 35 41 33 22 31 42 35 27 32 26 27 32 26
++27 32 26 27 32 26 27 32 26 23 20 27 28 30 29 23 20 27 27 32 26 21 19 21
++21 19 21 21 19 21 21 19 21 20 28 24 21 19 21 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 17 19 20
++14 14 18 14 14 18 14 14 18 14 14 18 14 14 18 17 19 20 14 14 18 14 14 18
++
++42 59 47 42 59 47 68 80 50 42 59 47 68 80 50 42 59 47 68 80 50 68 80 50
++42 59 47 68 80 50 42 59 47 68 80 50 68 80 50 42 59 47 68 80 50 42 59 47
++68 80 50 69 83 54 68 80 50 42 59 47 68 80 50 68 80 50 68 69 47 42 59 47
++68 80 50 42 59 47 68 80 50 68 80 50 68 80 50 68 80 50 42 59 47 68 80 50
++68 80 50 42 59 47 68 80 50 42 59 47 68 80 50 42 59 47 69 83 54 68 80 50
++68 69 55 69 83 54 42 59 47 69 83 54 42 59 47 69 83 54 42 59 47 68 69 47
++68 80 50 68 80 50 68 80 50 68 80 50 68 80 50 42 59 47 69 83 54 57 59 55
++68 80 50 68 80 50 42 59 47 68 80 50 57 59 55 69 83 54 68 69 47 68 69 47
++68 80 50 42 59 47 57 59 55 68 80 50 68 69 47 68 80 50 57 59 55 68 80 50
++68 80 50 68 80 50 68 69 47 68 80 50 68 80 50 68 69 47 68 69 55 68 80 50
++68 80 50 68 69 55 68 80 50 71 82 60 69 83 54 68 69 55 69 83 54 68 69 55
++71 82 60 71 82 60 68 69 55 68 69 47 68 69 47 88 79 65 71 82 60 88 79 65
++75 83 72 88 79 65 68 69 47 88 79 65 71 82 60 88 79 65 68 69 55 68 64 51
++68 69 55 71 82 60 88 79 65 88 79 65 75 83 72 88 79 65 86 83 83 88 79 65
++88 79 65 104 88 73 99 96 86 104 88 73 113 97 77 103 106 97 113 97 77 113 97 77
++114 121 97 137 117 96 113 97 77 103 117 86 137 117 96 141 128 110 141 128 110 123 133 112
++137 117 96 135 123 86 135 123 86 135 123 86 137 139 97 137 117 96 141 128 110 137 117 96
++164 145 120 141 139 118 137 117 96 141 128 110 141 128 110 137 117 96 141 128 110 137 117 96
++137 117 96 141 128 110 164 145 120 164 145 120 141 128 110 165 137 101 141 128 110 141 128 110
++141 139 118 141 139 118 164 145 120 164 145 120 141 128 110 141 128 110 141 139 118 137 117 96
++141 128 110 141 128 110 164 145 120 141 139 118 164 145 120 164 145 120 164 145 120 165 137 101
++141 128 110 165 137 101 141 128 110 137 139 97 141 158 118 164 145 120 137 139 97 141 158 118
++166 168 134 137 139 97 141 139 118 141 158 118 164 145 120 141 128 110 137 139 97 137 139 97
++137 139 97 141 158 118 137 139 97 137 139 97 137 139 97 135 123 86 118 123 77 103 117 86
++137 139 97 137 139 97 118 123 77 123 133 112 137 139 97 118 123 77 123 133 112 118 123 77
++123 133 112 118 123 77 137 139 97 103 117 86 118 123 77 118 123 77 103 117 86 118 123 77
++103 117 86 103 117 86 103 117 86 103 117 86 68 80 50 103 117 86 69 83 54 104 88 73
++104 88 73 104 88 73 103 117 86 103 117 86 113 97 36 103 117 86 118 123 77 88 79 65
++103 117 86 113 97 36 69 83 54 69 83 54 69 83 54 104 88 73 69 83 54 69 83 54
++69 83 54 68 80 50 42 59 47 68 80 50 68 80 50 68 80 50 68 69 47 68 80 50
++71 82 60 68 80 50 68 80 50 68 80 50 42 59 47 68 69 47 68 80 50 68 80 50
++42 59 47 68 69 47 68 69 47 44 55 41 68 69 47 44 55 41 68 69 47 45 49 35
++68 69 47 44 55 41 44 55 41 45 49 35 45 49 35 45 49 35 31 42 35 45 49 35
++45 39 35 45 49 35 31 42 35 33 35 35 31 42 35 33 35 35 27 32 26 27 32 26
++28 30 29 23 19 15 27 32 26 23 20 27 27 32 26 21 19 21 23 20 27 20 20 20
++23 20 27 21 19 21 20 28 24 21 19 21 21 19 21 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
++20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 19 15
++14 14 18 14 14 18 14 14 18 14 14 18 14 14 18 17 19 20 14 14 18 14 14 18
++
+diff --git a/drivers/video/logo/logo_linux_landscaped_clut224.ppm b/drivers/video/logo/logo_linux_landscaped_clut224.ppm
+new file mode 100644
+index 0000000..025b85d
+--- /dev/null
++++ b/drivers/video/logo/logo_linux_landscaped_clut224.ppm
+@@ -0,0 +1,48483 @@
++P3
++800 480
++255
++33 30 30 33 30 30 36 35 37 36 35 37 36 35 37 42 38 42 34 40 43 34 40 43
++34 40 43 34 40 43 34 40 43 34 40 43 33 39 38 33 39 38 31 35 35 31 35 35
++28 35 38 28 35 38 31 35 35 28 30 35 28 35 38 23 30 35 31 35 35 25 30 29
++25 30 29 22 25 24 25 30 29 22 25 24 26 24 32 23 20 24 15 22 17 14 16 17
++23 18 22 12 18 20 17 12 17 17 12 17 17 12 17 14 16 17 7 10 17 17 12 17
++7 12 13 7 10 17 7 12 13 7 10 17 7 12 13 7 12 13 7 10 17 7 10 17
++12 18 20 12 18 20 15 17 7 15 17 7 15 22 17 15 22 17 15 22 17 22 25 24
++23 31 15 29 35 19 23 31 15 29 35 19 32 39 24 32 39 24 32 39 24 32 39 24
++32 39 24 32 39 24 47 47 21 35 46 43 47 47 21 49 74 23 42 47 42 49 74 23
++49 74 23 50 61 48 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47
++49 74 23 35 46 43 49 74 23 32 39 24 32 39 24 49 74 23 32 39 24 32 39 24
++32 39 24 32 39 24 32 39 24 32 39 24 29 35 19 29 35 19 32 39 24 29 35 19
++32 39 24 32 39 24 32 39 24 32 39 24 32 39 24 32 39 24 47 47 21 35 46 43
++49 74 23 43 55 48 50 61 48 51 73 47 51 73 47 51 73 47 64 70 48 59 79 61
++64 70 48 59 79 61 66 86 47 59 79 61 59 79 61 75 77 62 59 79 61 66 86 47
++59 79 61 51 73 47 51 73 47 51 73 47 50 61 48 50 61 48 50 61 48 50 61 48
++47 49 42 43 55 48 42 47 42 42 47 42 42 47 42 33 39 38 32 39 24 33 39 38
++32 39 24 33 30 30 32 39 24 33 30 30 33 30 30 32 39 24 34 30 15 52 30 35
++34 30 15 52 30 15 53 35 17 53 35 17 55 39 18 76 18 19 76 46 20 55 39 18
++88 30 18 76 46 20 88 30 18 76 46 20 88 30 18 76 46 20 88 30 18 88 30 18
++88 30 18 88 30 18 88 30 18 88 30 18 88 30 18 88 30 18 88 30 18 88 30 18
++88 30 18 76 46 20 88 30 18 76 46 20 88 30 18 76 46 20 88 30 18 76 46 20
++88 30 18 76 46 20 76 18 19 76 46 20 76 18 19 76 46 20 76 46 20 76 18 19
++76 46 20 76 18 19 76 46 20 55 39 18 76 46 20 52 30 35 76 46 20 55 39 18
++52 30 35 76 46 20 53 35 37 55 39 37 55 39 37 60 49 42 60 49 42 59 36 42
++55 39 37 55 39 37 55 39 37 60 49 42 60 49 42 60 49 42 62 47 47 62 47 47
++76 44 53 63 55 45 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 88 73 62
++88 73 62 88 66 70 88 73 62 88 73 62 88 66 70 88 73 62 88 66 70 88 66 70
++88 73 62 88 66 70 88 73 62 88 66 70 88 66 70 88 73 62 88 66 70 88 73 62
++88 66 70 88 66 70 88 66 70 88 66 70 88 66 70 88 66 70 88 66 70 88 73 62
++75 63 62 88 66 70 75 63 62 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53
++75 56 53 75 56 53 88 66 70 75 56 53 88 73 62 88 66 70 88 66 70 88 73 62
++88 66 70 88 66 70 88 66 70 88 83 74 88 66 70 101 83 74 101 83 74 88 66 70
++101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 99 93 84 101 83 74 88 83 88
++99 93 84 101 83 74 99 93 84 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74
++101 83 74 88 66 70 101 83 74 101 83 74 101 60 73 101 83 74 88 73 62 101 83 74
++88 73 62 101 60 73 88 73 62 101 60 73 88 73 62 88 44 51 88 73 62 75 56 53
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 60 49 42 62 47 47 62 47 47
++60 49 42 53 46 48 55 39 37 47 44 42 47 39 42 42 38 42 36 35 37 33 30 32
++33 30 30 26 30 28 26 24 32 26 30 28 26 30 28 22 25 24 23 20 24 15 22 17
++23 18 22 12 18 20 23 20 24 23 20 24 23 20 24 23 20 24 23 18 22 23 20 24
++23 20 24 22 25 24 26 24 32 22 25 24 33 30 30 33 30 30 26 30 28 33 30 30
++33 30 30 33 30 30 33 30 30 36 35 37 32 39 24 52 30 35 53 35 17 53 35 37
++55 39 37 55 39 18 55 39 37 55 39 37 76 46 20 59 36 42 76 46 20 76 46 20
++76 44 53 76 46 20 76 46 20 88 44 51 76 46 20 88 44 51 88 73 31 88 44 51
++88 73 31 88 44 51 88 44 51 88 73 62 101 74 26 101 60 73 88 73 62 88 73 62
++101 60 73 88 73 62 88 73 62 101 60 73 88 73 62 88 73 62 88 73 62 75 63 62
++75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 65 63 61 75 63 62 65 63 61
++65 63 61 59 57 61 59 57 61 59 57 61 59 55 55 59 55 55 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 47 44 42 47 49 42 47 44 42
++47 49 42 47 49 42 52 55 48 55 55 48 55 55 48 53 46 48 55 55 48 59 55 55
++59 55 55 59 55 55 65 55 54 75 72 67 75 72 67 75 63 62 65 63 61 75 72 67
++88 83 74 75 72 67 65 63 61 65 63 61 65 63 61 55 55 48 47 49 42 42 41 42
++42 41 42 42 41 42 36 35 37 36 35 37 42 38 42 42 41 42 42 41 42 42 41 42
++42 38 42 36 35 37 42 38 42 42 41 42 42 41 42 42 41 42 42 38 42 42 41 42
++42 41 42 42 41 42 42 38 42 42 38 42 42 38 42 36 35 37 36 35 37 36 35 37
++33 30 32 33 30 32 26 30 28 30 30 34 33 30 30 33 30 32 33 30 32 33 30 32
++33 30 32 33 30 32 33 30 32 31 35 35 33 30 32 33 30 32 33 30 32 33 30 32
++33 30 30 33 30 30 33 30 30 33 30 30 26 30 28 33 30 30 26 30 28 33 30 30
++26 30 28 33 30 30 33 30 30 33 30 32 36 35 37 36 35 37 36 35 37 42 41 42
++42 41 42 48 44 48 48 44 48 48 50 48 48 50 48 54 57 61 48 50 48 54 57 61
++54 57 61 54 57 61 59 57 61 59 57 61 54 57 61 59 57 61 63 59 71 65 63 61
++59 69 70 63 59 71 75 81 76 75 81 82 75 81 82 75 81 82 75 81 90 75 81 90
++77 90 100 95 91 100 77 90 100 95 91 100 95 91 100 95 91 100 95 91 100 77 90 100
++95 91 100 88 83 88 77 90 100 88 83 88 75 81 90 88 83 88 75 81 82 88 83 88
++88 83 88 75 81 82 88 83 88 88 83 88 75 81 82 88 83 88 75 81 82 75 81 82
++75 81 82 75 81 82 75 64 82 75 81 76 75 64 82 65 63 61 63 59 71 65 63 61
++63 59 71 59 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61
++54 57 61 54 57 61 54 57 61 48 50 48 53 46 48 48 50 48 48 44 48 47 44 42
++47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 38 42
++42 38 42 42 38 42 47 39 42 42 38 42 47 39 42 42 38 42 47 39 42 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 33 30 30 33 30 30 33 30 30 33 30 32
++33 30 32 33 30 32 33 30 30 33 30 30 33 30 30 33 30 32 33 30 32 33 30 32
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 26 30 28 26 25 15 26 30 28 26 25 15 22 25 24 26 25 15 22 25 24
++23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 26 24 32
++23 20 24 23 20 24 33 30 30 23 20 24 22 25 24 26 24 32 26 30 28 26 24 32
++33 30 30 26 30 28 33 30 32 31 35 35 31 35 35 31 35 35 33 39 38 33 39 38
++33 39 38 34 40 43 34 40 43 35 46 43 35 46 43 35 46 43 35 47 50 35 47 50
++35 47 50 43 55 48 35 47 50 43 55 48 48 50 48 43 55 48 43 55 48 48 50 48
++48 50 48 52 55 48 48 50 48 48 50 48 42 47 42 42 47 42 42 47 42 42 41 42
++42 41 42 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 41 42
++36 35 37 36 35 37 33 30 30 33 30 30 33 30 30 31 35 35 33 30 30 31 35 35
++33 30 32 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30 32 39 24 33 30 32
++26 30 28 33 30 30 26 30 28 26 30 28 22 25 24 22 25 24 26 24 32 22 23 31
++25 30 29 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24
++22 25 24 25 30 29 25 30 29 26 30 28 22 25 24 23 20 24 26 30 28 26 24 32
++26 30 28 26 30 28 26 30 28 26 30 28 26 30 28 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 15 22 17 12 18 20 15 22 17
++12 18 30 15 22 17 12 18 20 23 20 24 12 18 20 12 18 20 12 18 20 12 18 20
++23 18 22 14 16 17 23 18 22 23 18 22 23 18 22 15 22 17 23 18 22 15 22 17
++22 25 24 22 25 24 22 25 24 26 30 28 26 25 15 33 30 30 26 30 28 26 30 28
++33 30 30 33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 22 25 24 22 25 24
++22 25 24 23 20 24 22 25 24 26 25 15 23 18 22 15 22 17 23 18 22 15 22 17
++14 16 17 14 16 17 23 18 22 14 16 17 23 18 22 15 22 17 23 18 22 22 25 24
++26 25 15 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24 26 25 15 23 20 24
++23 20 24 22 25 24 22 25 24 22 25 24 26 25 15 22 25 24 23 18 22 22 24 13
++23 18 22 23 18 22 23 20 24 22 25 24 22 25 24 26 30 28 26 30 28 33 30 30
++36 35 37 42 41 42 36 35 37 47 44 42 51 49 42 48 50 48 55 55 48 59 55 55
++59 55 55 54 57 61 59 55 55 59 57 61 59 57 61 59 57 61 59 57 61 59 57 61
++
++36 35 37 32 39 24 32 39 24 36 35 37 37 35 43 42 38 42 34 40 43 34 40 43
++34 40 43 34 40 43 34 40 43 34 40 43 34 40 43 33 39 38 37 35 43 31 35 35
++33 39 38 28 35 38 28 35 38 28 35 38 31 35 35 28 35 38 31 35 35 23 30 35
++25 30 29 25 30 29 26 24 32 26 30 28 22 25 24 23 20 24 23 20 24 23 18 22
++12 18 20 23 18 22 12 18 20 17 12 17 14 16 17 17 12 17 17 12 17 7 10 17
++17 12 17 7 10 17 13 4 7 7 10 17 13 4 7 7 12 13 7 12 13 7 10 17
++12 18 20 12 18 20 7 12 13 15 22 17 15 22 17 15 22 17 23 31 15 25 30 29
++23 31 15 26 30 28 29 35 19 32 39 24 32 39 24 32 39 24 35 46 43 32 39 24
++35 46 43 47 47 21 35 46 43 49 74 23 35 46 43 49 74 23 49 74 23 50 61 48
++51 73 47 49 74 23 51 73 47 51 73 47 49 74 23 51 73 47 51 73 47 49 74 23
++51 73 47 49 74 23 32 39 24 49 74 23 49 74 23 32 39 24 32 39 24 32 39 24
++32 39 24 32 39 24 32 39 24 32 39 24 32 39 24 32 39 24 29 35 19 32 39 24
++32 39 24 32 39 24 32 39 24 32 39 24 32 39 24 49 74 23 35 46 43 47 47 21
++42 47 42 49 74 23 50 61 48 49 74 23 51 73 47 51 73 47 64 70 48 59 79 61
++66 86 47 59 79 61 70 96 55 75 77 62 70 96 55 59 79 61 70 96 55 59 79 61
++66 86 47 59 79 61 64 70 48 51 73 47 51 73 47 51 73 47 50 61 48 51 73 47
++43 55 48 49 74 23 42 47 42 43 55 48 47 47 21 42 47 42 42 47 42 47 47 21
++47 44 42 32 39 24 36 35 37 53 35 17 36 35 37 53 35 17 33 30 30 52 30 15
++33 30 30 53 35 17 53 35 17 52 30 35 88 30 18 55 39 18 76 46 20 76 18 19
++76 46 20 76 46 20 76 46 20 88 30 18 76 46 20 102 33 26 76 46 20 102 33 26
++76 46 20 102 33 26 88 30 18 101 74 26 102 33 26 76 46 20 88 30 18 76 46 20
++88 30 18 88 30 18 76 46 20 88 30 18 88 30 18 76 46 20 88 30 18 76 46 20
++76 18 19 76 46 20 76 46 20 76 18 19 76 46 20 76 46 20 76 18 19 76 46 20
++76 46 20 55 39 18 88 30 18 59 36 42 76 18 19 76 46 20 55 39 37 76 18 19
++76 46 20 55 39 37 59 36 42 76 46 20 59 36 42 76 46 20 60 49 42 76 46 20
++60 49 42 76 46 20 60 49 42 76 46 20 60 49 42 76 46 20 76 44 53 63 55 45
++76 44 53 63 55 45 76 44 53 75 56 53 75 56 53 88 73 62 88 73 62 75 56 53
++88 66 70 88 73 62 88 73 62 88 66 70 88 73 62 88 73 62 101 60 73 88 73 62
++101 60 73 88 73 62 88 66 70 88 73 62 88 73 62 88 66 70 101 83 74 88 66 70
++88 83 74 88 66 70 88 83 74 88 83 74 88 83 74 88 73 62 88 66 70 88 66 70
++88 66 70 88 73 62 88 66 70 75 63 62 75 56 53 88 73 62 75 56 53 88 44 51
++88 73 62 101 60 73 75 56 53 88 73 62 88 66 70 88 73 62 88 66 70 88 66 70
++101 83 74 88 66 70 101 83 74 101 60 73 101 83 74 88 69 84 101 83 74 101 83 74
++88 83 88 101 83 74 101 83 74 101 83 74 95 91 100 101 83 74 88 83 88 99 93 84
++101 83 74 99 93 84 88 83 88 99 93 84 88 83 88 101 83 74 101 83 74 101 60 73
++101 83 74 101 83 74 101 60 73 101 83 74 101 83 74 101 60 73 101 83 74 101 60 73
++101 83 74 101 83 74 120 63 71 88 73 62 88 73 62 88 73 62 88 73 62 88 44 51
++88 73 62 88 44 51 75 56 53 75 56 53 75 56 53 63 55 45 76 44 53 63 55 45
++62 47 47 59 36 42 51 49 42 55 39 37 47 39 42 42 38 42 36 35 37 33 30 32
++33 30 30 33 30 30 23 20 24 33 30 30 26 24 32 22 25 24 23 20 24 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24
++22 25 24 23 20 24 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30 33 30 30
++36 35 37 32 39 24 36 35 37 53 35 17 36 35 37 53 35 17 36 35 37 55 39 18
++55 39 37 55 39 37 59 36 42 76 46 20 59 36 42 76 46 20 76 46 20 88 44 51
++76 46 20 88 44 51 102 33 26 88 44 51 76 46 20 101 74 26 88 44 51 122 49 24
++88 44 51 101 74 26 101 60 73 101 74 26 120 63 71 101 60 73 101 74 26 101 60 73
++101 74 26 101 60 73 101 74 26 101 60 73 88 73 62 88 73 62 88 66 70 88 73 62
++88 73 62 88 73 62 75 72 67 75 73 58 75 72 67 75 72 67 65 63 61 75 72 67
++65 63 61 63 59 71 65 63 61 59 57 61 54 57 61 54 57 61 48 50 48 54 57 61
++48 50 48 54 57 61 59 55 55 54 57 61 59 55 55 52 55 48 48 50 48 47 44 42
++48 50 48 48 50 48 53 46 48 55 55 48 63 55 51 59 55 55 59 55 55 59 55 55
++75 73 58 65 63 61 65 63 61 75 72 67 75 72 67 75 72 67 75 63 62 75 72 67
++88 83 74 75 81 69 75 72 67 65 63 61 75 77 62 65 63 61 59 55 55 52 55 48
++47 49 42 47 49 42 47 49 42 42 47 42 42 41 42 47 44 42 53 46 48 48 50 48
++48 44 48 42 41 42 42 41 42 48 44 48 43 42 50 42 41 42 42 41 42 42 38 42
++42 41 42 42 41 42 42 41 42 42 38 42 36 35 37 42 38 42 36 35 37 36 35 37
++36 35 37 36 35 37 31 35 35 31 35 35 33 30 32 31 35 35 31 35 35 31 35 35
++31 35 35 31 35 35 33 30 32 36 35 37 36 35 37 33 30 32 33 30 32 33 30 32
++33 30 32 33 30 30 33 30 30 29 35 19 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 31 35 35 36 35 37 32 39 24 42 41 42 42 47 42
++48 44 48 48 44 48 48 50 48 48 50 48 57 43 64 54 57 61 54 57 61 54 57 61
++59 57 61 53 63 61 63 59 71 63 59 71 63 59 71 63 59 71 59 69 70 63 59 71
++59 69 70 75 64 82 75 81 82 88 83 88 75 81 90 75 81 90 88 83 88 77 90 100
++95 91 100 95 91 100 94 105 108 95 91 100 94 105 108 95 91 100 94 105 108 95 91 100
++95 91 100 95 91 100 95 91 100 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88
++88 83 88 88 83 88 88 83 88 90 98 89 88 83 88 88 83 88 75 81 82 88 83 88
++75 81 82 88 83 88 75 81 76 75 64 82 75 81 76 75 81 76 63 59 71 75 72 67
++59 69 70 63 59 71 59 69 70 63 59 71 59 69 70 63 59 71 59 69 70 53 63 61
++54 57 61 54 57 61 54 57 61 54 57 61 59 55 55 48 50 48 48 50 48 47 49 42
++47 44 42 47 44 42 42 41 42 42 41 42 42 41 42 47 39 42 47 39 42 47 39 42
++47 39 42 47 39 42 42 41 42 53 35 37 42 38 42 47 39 42 47 39 42 42 38 42
++53 35 37 36 35 37 36 35 37 52 30 35 36 35 37 52 30 35 33 30 30 36 35 37
++33 30 32 36 35 37 33 30 32 52 30 35 33 30 30 36 35 37 33 30 32 33 30 32
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 26 30 28 23 20 24 26 30 28 26 25 15 22 25 24 26 25 15
++22 25 24 23 20 24 22 25 24 23 20 24 33 30 30 23 20 24 33 30 30 23 20 24
++33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 23 20 24 26 30 28 33 30 30
++33 30 30 33 30 32 33 30 32 31 35 35 36 35 37 36 35 37 33 39 38 33 39 38
++33 39 38 34 40 43 35 46 43 35 46 43 35 47 50 35 46 43 43 55 48 35 47 50
++43 55 48 45 57 61 43 55 48 48 50 48 45 57 61 48 50 48 45 57 61 45 57 61
++54 57 61 52 55 48 54 57 61 48 50 48 48 50 48 42 47 42 42 47 42 42 47 42
++42 41 42 47 44 42 42 41 42 47 47 21 42 41 42 47 44 42 36 35 37 42 41 42
++36 35 37 53 35 37 42 38 42 36 35 37 33 30 30 36 35 37 36 35 37 36 35 37
++32 39 24 36 35 37 33 30 30 32 39 24 33 30 30 32 39 24 31 35 35 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 26 30 28 26 24 32 25 30 29 26 24 32
++26 24 32 26 24 32 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24
++25 30 29 25 30 29 26 30 28 26 30 28 33 30 30 26 30 28 33 30 30 22 25 24
++33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 29 35 19 26 25 15 26 30 28
++26 24 32 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24
++23 20 24 12 18 30 22 25 24 12 18 30 23 20 24 12 18 30 12 18 20 23 18 22
++14 16 17 12 18 20 23 18 22 12 18 20 23 18 22 15 22 17 23 18 22 23 20 24
++23 20 24 26 30 28 22 25 24 26 30 28 34 30 15 26 30 28 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 26 30 28 33 30 30
++26 30 28 26 25 15 22 25 24 23 20 24 22 24 13 23 18 22 22 24 13 15 22 17
++22 24 13 15 22 17 23 18 22 23 18 22 15 22 17 23 18 22 23 20 24 22 25 24
++23 20 24 26 25 15 22 25 24 26 25 15 33 30 30 23 20 24 33 30 30 34 30 15
++33 30 30 26 25 15 22 25 24 26 25 15 22 25 24 26 25 15 22 24 13 23 18 22
++23 18 22 22 24 13 23 20 24 23 20 24 26 24 32 34 30 15 33 30 30 32 39 24
++36 35 37 36 35 37 47 44 42 47 44 42 48 50 48 52 55 48 59 55 55 54 57 61
++59 57 61 59 57 61 65 63 61 53 63 61 65 63 61 53 63 61 59 57 61 59 57 61
++
++33 30 30 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 34 40 43 34 40 43
++34 40 43 34 40 43 34 40 43 34 40 43 34 40 43 33 39 38 33 39 38 33 39 38
++28 35 38 33 39 38 28 35 38 33 39 38 28 35 38 28 35 38 31 35 35 28 35 38
++30 30 34 28 30 35 26 30 28 26 24 32 26 30 28 22 25 24 23 20 24 22 25 24
++23 20 24 12 18 20 23 18 22 17 12 17 17 12 17 14 16 17 7 10 17 7 10 17
++7 12 13 17 12 17 7 10 17 7 10 17 7 12 13 7 10 17 17 12 17 14 16 17
++12 18 20 12 18 20 14 16 17 15 17 7 15 22 17 15 22 17 23 31 15 22 25 24
++29 35 19 29 35 19 29 35 19 32 39 24 32 39 24 35 46 43 47 47 21 32 39 24
++49 74 23 35 46 43 49 74 23 35 46 43 49 74 23 43 55 48 49 74 23 51 73 47
++49 74 23 51 73 47 49 74 23 57 86 47 51 73 47 57 86 47 51 73 47 51 73 47
++51 73 47 49 74 23 51 73 47 32 39 24 49 74 23 32 39 24 49 74 23 32 39 24
++32 39 24 32 39 24 32 39 24 32 39 24 32 39 24 32 39 24 29 35 19 32 39 24
++32 39 24 32 39 24 32 39 24 32 39 24 32 39 24 32 39 24 32 39 24 49 74 23
++35 46 43 50 61 48 50 61 48 50 61 48 51 73 47 64 70 48 59 79 61 66 86 47
++75 77 62 70 96 55 75 77 62 59 79 61 59 79 61 75 81 69 59 79 61 75 77 62
++59 79 61 59 79 61 59 79 61 64 70 48 51 73 47 51 73 47 50 61 48 50 61 48
++50 61 48 43 55 48 43 55 48 35 46 43 43 55 48 35 46 43 47 47 21 33 39 38
++32 39 24 36 35 37 32 39 24 36 35 37 32 39 24 52 30 35 33 30 30 53 35 17
++33 30 30 53 35 17 52 30 35 55 39 18 76 46 20 76 18 19 76 46 20 76 46 20
++88 30 18 76 46 20 88 30 18 76 46 20 102 33 26 76 46 20 102 33 26 76 46 20
++102 33 26 76 46 20 102 33 26 76 46 20 102 33 26 76 46 20 102 33 26 88 30 18
++76 46 20 88 30 18 88 30 18 76 46 20 76 46 20 88 30 18 76 46 20 88 30 18
++76 46 20 88 30 18 59 36 42 76 46 20 88 30 18 59 36 42 76 46 20 76 46 20
++76 18 19 76 46 20 59 36 42 76 46 20 55 39 18 59 36 42 76 46 20 55 39 37
++76 46 20 59 36 42 76 46 20 62 47 47 60 49 42 59 36 42 60 49 42 59 36 42
++60 49 42 59 36 42 60 49 42 59 36 42 60 49 42 62 47 47 63 55 45 76 44 53
++63 55 45 88 44 51 75 56 53 75 56 53 75 56 53 75 56 53 88 73 62 88 73 62
++88 66 70 88 73 62 101 60 73 88 73 62 101 83 74 101 83 74 101 83 74 101 83 74
++101 83 74 88 66 70 101 83 74 88 66 70 101 83 74 88 66 70 101 83 74 88 66 70
++101 83 74 88 83 74 88 66 70 88 69 84 88 66 70 88 83 74 88 66 70 88 73 62
++88 66 70 88 66 70 75 63 62 88 73 62 88 44 51 75 56 53 88 44 51 88 73 62
++88 44 51 88 73 62 88 66 70 88 73 62 88 66 70 88 66 70 101 83 74 88 66 70
++101 83 74 101 83 74 88 66 70 101 83 74 101 83 74 101 83 74 101 83 74 101 60 73
++101 83 74 101 83 74 95 91 100 120 63 71 99 93 84 101 83 74 99 93 84 101 83 74
++95 91 100 120 63 71 99 93 84 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74
++101 83 74 101 60 73 101 83 74 88 73 62 101 83 74 88 73 62 88 73 62 120 63 71
++88 73 62 88 73 62 88 73 62 88 73 62 120 63 71 88 44 51 88 73 62 88 73 31
++88 44 51 75 56 53 75 56 53 88 44 51 63 55 45 76 44 53 60 49 42 63 55 45
++62 47 47 55 39 37 47 39 42 47 44 42 47 39 42 36 35 37 36 35 37 33 30 32
++33 30 30 33 30 30 33 30 30 22 25 24 33 30 30 22 25 24 22 25 24 22 25 24
++23 20 24 15 22 17 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24
++26 24 32 26 24 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 32 36 35 37 36 35 37 42 41 42 53 35 37 47 47 21 53 35 37 55 39 37
++55 39 18 55 39 37 60 49 42 59 36 42 76 46 20 76 44 53 76 46 20 76 46 20
++88 44 51 76 46 20 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31
++88 44 51 120 63 71 101 74 26 101 60 73 88 73 62 120 63 71 88 73 62 120 63 71
++88 73 62 101 60 73 88 73 62 101 60 73 88 73 62 88 73 62 88 73 62 88 73 62
++75 63 62 88 66 70 75 63 62 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 59 69 70 65 63 61 65 63 61 59 57 61 59 55 55 54 57 61 59 55 55
++54 57 61 59 55 55 54 57 61 65 63 61 54 57 61 59 55 55 52 55 48 48 50 48
++55 55 48 55 55 48 55 55 48 59 55 55 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 75 72 67 65 63 61 65 63 61 75 63 62 75 72 67 65 63 61 65 63 61
++75 72 67 75 72 67 75 72 67 75 81 69 75 72 67 75 72 67 75 81 69 65 63 61
++59 55 55 59 55 55 59 55 55 52 55 48 48 44 48 48 50 48 59 55 55 52 55 48
++53 46 48 48 50 48 48 44 48 48 44 48 42 41 42 47 44 42 42 41 42 42 38 42
++42 38 42 42 41 42 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 31 35 35 31 35 35 33 30 32 36 35 37 33 30 32
++36 35 37 33 30 30 36 35 37 36 35 37 33 30 32 33 30 32 33 30 32 36 35 37
++33 30 32 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 31 35 35 31 35 35 36 35 37 36 35 37 42 41 42 42 41 42 42 41 42
++48 44 48 48 50 48 48 50 48 54 57 61 48 50 48 54 57 61 54 57 61 54 57 61
++59 57 61 63 59 71 53 63 61 63 59 71 63 59 71 59 69 70 75 72 67 75 72 67
++75 64 82 75 81 76 75 81 82 75 81 90 88 83 88 90 98 89 95 91 100 95 91 100
++94 105 108 94 105 108 95 91 100 94 105 108 95 91 100 94 105 108 95 91 100 94 105 108
++95 91 100 77 90 100 95 91 100 77 90 100 88 83 88 88 83 88 90 98 89 88 83 88
++90 98 89 88 83 88 88 83 88 88 83 88 90 98 89 88 83 88 88 83 88 88 83 88
++88 83 88 75 81 82 88 83 88 75 81 82 75 64 82 75 81 76 75 64 82 75 81 76
++75 64 82 75 81 76 59 69 70 60 63 87 59 69 70 59 69 70 63 59 71 59 69 70
++63 59 71 53 63 61 59 57 61 54 57 61 57 43 51 54 57 61 53 46 48 48 50 48
++48 50 48 47 44 42 47 44 42 47 44 42 42 41 42 42 41 42 47 44 42 42 41 42
++47 39 42 47 39 42 47 39 42 42 41 42 47 39 42 47 39 42 42 38 42 42 38 42
++36 35 37 47 39 42 36 35 37 36 35 37 36 35 37 33 30 30 52 30 35 36 35 37
++52 30 35 36 35 37 36 35 37 33 30 30 36 35 37 52 30 35 33 30 30 52 30 35
++33 30 30 33 30 30 49 13 16 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 26 25 15 33 30 30 34 30 15 22 25 24 26 25 15 26 30 28 23 20 24
++33 30 30 26 24 32 33 30 30 26 25 15 23 20 24 33 30 30 23 20 24 33 30 30
++26 24 32 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30
++33 30 32 30 30 34 33 30 32 31 35 35 36 35 37 33 39 38 36 35 37 33 39 38
++42 41 42 35 46 43 35 46 43 34 40 43 35 46 43 42 47 42 35 47 50 43 55 48
++35 47 50 43 55 48 35 47 50 43 55 48 48 50 48 45 57 61 48 50 48 52 55 48
++54 57 61 52 55 48 54 57 61 52 55 48 48 50 48 48 50 48 47 49 42 48 44 48
++48 44 48 47 44 42 47 44 42 42 41 42 42 41 42 42 41 42 42 47 42 42 41 42
++47 44 42 42 41 42 36 35 37 47 39 42 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 33 30 30 33 30 30 36 35 37 33 30 30 32 39 24 31 35 35
++33 30 30 33 30 30 33 30 30 33 30 30 26 30 28 33 30 30 28 30 35 25 30 29
++26 24 32 25 30 29 22 25 24 22 23 31 22 25 24 22 25 24 26 30 28 26 30 28
++25 30 29 25 30 29 26 30 28 26 30 28 33 30 30 26 24 32 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 29 35 19 26 30 28 26 30 28 26 30 28
++26 24 32 22 25 24 26 24 32 22 25 24 22 25 24 22 25 24 15 22 17 22 25 24
++22 25 24 12 18 20 22 25 24 22 25 24 12 18 30 12 18 20 23 18 22 12 18 20
++23 20 24 23 18 22 15 22 17 23 20 24 23 20 24 23 20 24 23 18 22 22 25 24
++22 25 24 23 20 24 33 30 30 26 30 28 22 25 24 33 30 30 22 25 24 33 30 30
++33 30 30 31 35 35 33 30 30 31 35 35 33 30 30 33 30 30 29 35 19 33 30 30
++22 25 24 33 30 30 23 20 24 22 25 24 23 20 24 23 18 22 22 25 24 15 22 17
++23 18 22 23 18 22 12 18 20 23 18 22 23 18 22 22 25 24 23 18 22 26 25 15
++22 25 24 22 25 24 26 25 15 26 24 32 22 25 24 33 30 30 33 30 30 28 13 18
++33 30 30 22 25 24 33 30 30 26 30 28 26 25 15 22 25 24 23 18 22 26 25 15
++22 25 24 22 25 24 22 25 24 22 25 24 33 30 30 23 20 24 33 30 30 36 35 37
++36 35 37 47 47 21 42 41 42 47 49 42 48 50 48 55 55 48 59 55 55 59 55 55
++59 57 61 53 63 61 65 63 61 59 57 61 65 63 61 59 57 61 59 57 61 53 63 61
++
++33 30 30 32 39 24 36 35 37 31 35 35 31 35 35 36 35 37 28 35 38 33 39 38
++28 35 38 37 35 43 28 35 38 28 35 38 31 35 35 28 35 38 33 39 38 28 35 38
++31 35 35 28 35 38 33 39 38 31 35 35 33 39 38 28 35 38 31 35 35 25 30 29
++28 30 35 25 30 29 25 30 29 26 30 28 26 24 32 22 25 24 23 20 24 23 20 24
++23 18 22 23 18 22 17 12 17 12 18 20 14 16 17 17 12 17 17 12 17 17 12 17
++7 10 17 13 4 7 7 10 17 13 4 7 7 12 13 7 12 13 7 10 17 14 16 17
++7 10 17 14 16 17 15 22 17 15 22 17 15 22 17 15 22 17 15 22 17 25 30 29
++23 31 15 29 35 19 25 30 29 32 39 24 32 39 24 32 39 24 32 39 24 49 74 23
++32 39 24 35 46 43 47 47 21 43 55 48 49 74 23 49 74 23 51 73 47 49 74 23
++51 73 47 49 74 23 51 73 47 49 74 23 57 86 47 49 74 23 57 86 47 49 74 23
++51 73 47 49 74 23 49 74 23 35 46 43 49 74 23 32 39 24 49 74 23 23 31 15
++49 74 23 32 39 24 32 39 24 32 39 24 32 39 24 23 31 15 23 31 15 23 31 15
++23 31 15 32 39 24 32 39 24 32 39 24 32 39 24 32 39 24 35 46 43 32 39 24
++42 47 42 47 49 42 49 74 23 50 61 48 50 61 48 51 73 47 64 70 48 59 79 61
++59 79 61 59 79 61 75 77 62 59 79 61 70 96 55 75 77 62 60 82 70 75 81 69
++59 79 61 64 70 48 59 79 61 53 63 61 64 70 48 50 61 48 50 61 48 50 61 48
++50 61 48 43 55 48 43 55 48 35 46 43 47 47 21 35 46 43 33 39 38 33 39 38
++36 35 37 36 35 37 32 39 24 52 30 35 33 30 30 32 39 24 52 30 35 34 30 15
++52 30 35 52 30 15 53 35 17 53 35 17 52 30 35 76 46 20 55 39 37 76 18 19
++76 46 20 76 46 20 88 30 18 76 46 20 88 30 18 76 46 20 88 30 18 88 30 18
++76 46 20 102 33 26 76 46 20 88 30 18 76 46 20 88 30 18 88 30 18 88 30 18
++76 46 20 102 33 26 76 46 20 88 30 18 88 30 18 88 30 18 88 30 18 88 30 18
++76 46 20 88 30 18 76 46 20 76 18 19 76 46 20 88 30 18 55 39 18 76 18 19
++55 39 37 76 18 19 76 46 20 76 18 19 76 46 20 76 18 19 52 30 35 76 46 20
++59 36 42 76 46 20 55 39 37 59 36 42 59 36 42 76 46 20 59 36 42 76 46 20
++60 49 42 62 47 47 76 46 20 62 47 47 76 46 20 60 49 42 63 55 45 76 46 20
++63 55 45 63 55 45 75 56 53 75 56 53 75 56 53 75 56 53 88 66 70 88 66 70
++88 73 62 88 66 70 101 83 74 88 66 70 88 66 70 101 83 74 101 60 73 88 66 70
++101 60 73 101 83 74 88 66 70 88 66 70 88 66 70 88 66 70 88 83 74 88 66 70
++88 83 74 88 66 70 88 83 74 88 66 70 88 83 74 88 66 70 75 72 67 88 66 70
++88 73 62 75 56 53 88 73 62 75 56 53 88 73 62 75 56 53 75 56 53 75 56 53
++88 73 62 75 56 53 88 73 62 75 56 53 88 66 70 88 73 62 88 66 70 88 66 70
++88 66 70 88 73 62 88 66 70 88 66 70 88 66 70 88 66 70 88 66 70 88 69 84
++101 83 74 88 69 84 101 60 73 101 83 74 88 69 84 101 83 74 88 69 84 101 60 73
++101 83 74 88 69 84 101 83 74 88 69 84 101 83 74 88 69 84 88 66 70 88 73 62
++101 60 73 88 73 62 88 73 62 88 73 62 88 44 51 88 73 62 101 60 73 88 73 31
++101 60 73 101 74 26 88 44 51 88 73 62 88 44 51 88 73 31 88 44 51 88 44 51
++75 56 53 76 46 20 75 56 53 76 46 20 60 49 42 76 46 20 60 49 42 60 49 42
++55 39 37 55 39 37 53 35 37 36 35 37 52 30 35 36 35 37 33 30 30 33 30 30
++33 30 30 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24
++23 20 24 23 20 24 15 22 17 23 20 24 23 20 24 23 20 24 22 25 24 26 30 28
++23 20 24 26 30 28 26 24 32 33 30 30 33 30 30 33 30 32 33 30 30 33 30 30
++36 35 37 33 30 30 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 47 47 21
++53 35 37 55 39 18 55 39 37 76 46 20 59 36 42 59 36 42 62 47 47 76 46 20
++63 55 45 76 46 20 76 46 20 88 44 51 76 46 20 88 44 51 88 73 31 88 44 51
++88 73 62 88 44 51 88 44 51 88 73 31 101 60 73 101 74 26 88 73 62 88 73 62
++88 73 62 88 73 62 101 60 73 88 73 62 88 73 62 88 44 51 88 73 62 75 63 62
++88 73 62 75 63 62 75 73 58 75 63 62 75 63 62 75 63 62 65 63 61 63 59 71
++59 69 70 65 63 61 59 57 61 54 57 61 59 55 55 59 55 55 59 55 55 54 57 61
++53 46 48 48 50 48 51 49 42 47 49 42 51 49 42 53 46 48 59 55 55 59 55 55
++59 55 55 59 55 55 55 55 48 63 55 51 65 63 61 65 63 61 63 55 51 65 63 61
++59 55 55 65 63 61 63 55 51 55 55 48 59 55 55 59 55 55 55 55 48 53 46 48
++52 55 48 59 55 55 65 63 61 59 69 70 65 63 61 59 57 61 75 72 67 75 81 76
++65 63 61 59 55 55 59 57 61 65 63 61 55 55 48 48 50 48 59 55 55 59 55 55
++59 57 61 59 57 61 48 50 48 42 41 42 42 38 42 42 41 42 42 41 42 36 35 37
++36 35 37 36 35 37 42 38 42 42 38 42 42 41 42 36 35 37 36 35 37 36 35 37
++36 35 37 33 30 32 33 30 32 32 39 24 33 30 30 31 35 35 33 30 30 33 30 32
++32 39 24 33 30 30 32 39 24 33 30 30 33 30 30 36 35 37 33 30 30 32 39 24
++33 30 30 33 30 30 33 30 30 32 39 24 33 30 30 33 30 30 32 39 24 33 30 30
++33 30 30 32 39 24 33 30 30 36 35 37 36 35 37 36 35 37 42 38 42 42 41 42
++47 44 42 43 42 50 48 44 48 48 44 48 48 44 48 54 57 61 57 43 51 54 57 61
++54 57 61 59 57 61 59 57 61 59 57 61 63 59 71 63 59 71 63 59 71 59 69 70
++75 72 67 75 64 82 75 81 82 75 81 90 88 83 88 77 90 100 90 98 89 77 90 100
++95 91 100 95 91 100 94 105 108 95 91 100 94 105 108 95 91 100 95 91 100 77 90 100
++95 91 100 90 98 89 88 83 88 88 83 88 77 90 100 88 83 88 75 81 90 88 83 88
++88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 75 81 90 88 83 88
++75 81 90 88 83 88 75 81 90 75 81 82 75 64 82 75 81 82 75 64 82 75 81 82
++75 64 82 75 64 82 59 69 70 75 64 82 59 69 70 60 63 87 59 69 70 63 59 71
++59 69 70 63 59 71 59 57 61 54 57 61 54 57 61 59 55 55 48 50 48 48 44 48
++48 44 48 47 44 42 42 41 42 42 41 42 36 35 37 42 41 42 32 39 24 53 35 37
++36 35 37 36 35 37 53 35 37 32 39 24 53 35 37 32 39 24 53 35 37 36 35 37
++53 35 37 36 35 37 53 35 37 36 35 37 52 30 35 36 35 37 33 30 30 33 30 30
++36 35 37 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 23 20 24 33 30 30 33 30 30 23 20 24 34 30 15
++23 20 24 26 25 15 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 23 20 24
++33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 22 25 24 26 24 32 26 30 28
++26 30 28 33 30 30 33 30 30 33 30 30 31 35 35 31 35 35 33 39 38 36 35 37
++33 39 38 33 39 38 33 39 38 34 40 43 34 40 43 35 46 43 42 41 42 35 47 50
++35 47 50 43 42 50 35 47 50 48 50 48 35 47 50 48 50 48 48 50 48 45 57 61
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 44 48 47 44 42
++47 44 42 47 44 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++47 44 42 47 44 42 47 39 42 47 47 21 42 41 42 42 41 42 47 47 21 36 35 37
++36 35 37 32 39 24 33 30 30 32 39 24 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 31 35 35 33 30 30 33 30 32 30 30 34 26 30 28 26 30 28
++26 24 32 22 25 24 22 25 24 22 25 24 22 25 24 26 30 28 22 25 24 22 25 24
++25 30 29 26 30 28 26 30 28 26 30 28 26 30 28 33 30 30 26 24 32 33 30 30
++26 30 28 33 30 30 33 30 30 33 30 30 26 30 28 33 30 30 23 20 24 26 30 28
++23 20 24 26 30 28 22 25 24 22 25 24 22 25 24 22 25 24 22 23 31 22 25 24
++12 18 20 22 25 24 12 18 30 22 25 24 22 25 24 12 18 20 23 18 22 12 18 20
++23 18 22 12 18 20 23 18 22 14 16 17 15 22 17 23 20 24 22 24 13 23 18 22
++23 20 24 22 25 24 23 20 24 33 30 30 22 25 24 26 25 15 33 30 30 26 30 28
++33 30 30 33 30 30 33 30 30 33 30 30 26 30 28 34 30 15 26 30 28 33 30 30
++26 25 15 26 30 28 22 25 24 26 25 15 22 25 24 26 25 15 15 22 17 23 18 22
++15 22 17 14 16 17 23 18 22 15 22 17 23 18 22 15 22 17 22 25 24 23 20 24
++26 25 15 23 20 24 22 25 24 26 25 15 26 30 28 34 30 15 23 20 24 26 30 28
++33 30 30 22 25 24 33 30 30 26 25 15 26 24 32 26 25 15 22 25 24 22 25 24
++26 25 15 23 20 24 26 25 15 23 20 24 26 30 28 26 25 15 33 30 30 32 39 24
++33 30 30 36 35 37 42 38 42 42 41 42 48 44 48 48 44 48 48 50 48 52 55 48
++59 55 55 59 55 55 59 55 55 50 61 48 59 55 55 54 57 61 54 57 61 59 55 55
++
++26 30 28 33 30 30 33 30 30 33 30 30 33 30 32 33 30 36 28 30 35 28 30 35
++28 30 35 28 35 38 28 35 38 28 30 35 28 35 38 28 30 35 31 35 35 28 35 38
++28 35 38 31 35 35 31 35 35 28 35 38 31 35 35 31 35 35 25 30 29 25 30 29
++28 30 35 25 30 29 25 30 29 33 30 30 26 24 32 23 20 24 23 20 24 23 20 24
++23 18 22 14 16 17 14 16 17 14 16 17 17 12 17 7 10 17 7 10 17 13 4 7
++13 4 7 7 12 13 13 4 7 7 10 17 7 12 13 13 4 7 7 10 17 14 16 17
++17 12 17 14 16 17 12 18 20 15 22 17 15 22 17 23 31 15 22 25 24 29 35 19
++25 30 29 32 39 24 32 39 24 32 39 24 32 39 24 35 46 43 35 46 43 35 46 43
++49 74 23 49 74 23 43 55 48 49 74 23 51 73 47 51 73 47 51 73 47 49 74 23
++57 86 47 57 86 47 49 74 23 57 86 47 51 73 47 49 74 23 57 86 47 49 74 23
++51 73 47 49 74 23 49 74 23 49 74 23 35 46 43 49 74 23 35 46 43 32 39 24
++32 39 24 32 39 24 32 39 24 32 39 24 23 31 15 32 39 24 23 31 15 23 31 15
++23 31 15 23 31 15 28 35 38 32 39 24 32 39 24 32 39 24 32 39 24 49 74 23
++35 46 43 49 74 23 43 55 48 50 61 48 50 61 48 51 73 47 53 63 61 64 70 48
++59 79 61 59 79 61 59 79 61 75 77 62 59 79 61 59 79 61 75 81 69 59 79 61
++59 79 61 59 79 61 64 70 48 53 63 61 51 73 47 53 63 61 50 61 48 50 61 48
++43 55 48 47 49 42 43 55 48 42 47 42 35 46 43 35 46 43 32 39 24 42 47 42
++32 39 24 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 34 30 15 52 30 35
++34 30 15 53 35 17 52 30 35 53 35 17 76 18 19 55 39 18 88 30 18 76 46 20
++76 18 19 76 46 20 88 30 18 76 46 20 102 33 26 76 46 20 88 30 18 88 30 18
++88 30 18 88 30 18 102 33 26 76 46 20 88 30 18 76 46 20 88 30 18 88 30 18
++88 30 18 76 46 20 88 30 18 76 46 20 76 46 20 88 30 18 76 46 20 59 36 42
++88 30 18 76 46 20 88 30 18 76 46 20 76 18 19 55 39 18 76 18 19 76 46 20
++76 46 20 76 46 20 76 18 19 55 39 37 76 46 20 55 39 18 76 46 20 52 30 35
++76 46 20 59 36 42 59 36 42 76 46 20 59 36 42 60 49 42 59 36 42 60 49 42
++59 36 42 60 49 42 59 36 42 60 49 42 62 47 47 76 44 53 60 49 42 75 56 53
++75 56 53 63 55 45 75 56 53 75 56 53 88 73 62 88 73 62 75 56 53 88 73 62
++88 66 70 88 66 70 88 83 74 101 83 74 101 83 74 88 66 70 101 83 74 101 83 74
++88 66 70 88 66 70 101 83 74 88 73 62 88 83 74 88 83 74 88 66 70 88 83 74
++88 66 70 88 83 74 88 66 70 88 83 74 88 66 70 88 83 74 88 66 70 75 72 67
++75 72 67 88 66 70 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 88 73 62
++88 44 51 88 73 62 88 44 51 88 73 62 88 66 70 88 66 70 88 73 62 88 66 70
++88 73 62 88 66 70 88 73 62 88 66 70 88 66 70 88 73 62 101 83 74 88 66 70
++88 66 70 88 66 70 101 83 74 88 69 84 101 83 74 101 60 73 101 83 74 88 69 84
++101 83 74 88 66 70 88 69 84 88 73 62 88 66 70 88 73 62 88 73 62 88 73 62
++88 73 62 88 44 51 88 73 62 101 74 26 101 60 73 88 73 31 88 73 62 88 73 62
++88 44 51 88 73 62 101 60 73 88 44 51 88 73 62 88 44 51 75 56 53 88 73 31
++76 44 53 76 44 53 76 46 20 62 47 47 60 49 42 60 49 42 55 39 37 55 39 37
++55 39 37 47 39 42 53 35 37 36 35 37 36 35 37 33 30 30 33 30 30 33 30 30
++33 30 30 23 20 24 26 30 28 23 20 24 26 24 32 22 25 24 22 25 24 23 20 24
++12 18 20 23 20 24 23 20 24 15 22 17 23 20 24 22 25 24 22 25 24 22 25 24
++26 24 32 33 30 30 26 24 32 33 30 30 33 30 30 33 30 30 33 30 32 33 30 30
++33 30 30 33 30 30 52 30 35 32 39 24 47 39 42 36 35 37 53 35 17 52 30 35
++52 30 35 55 39 37 55 39 37 55 39 37 55 39 37 76 46 20 59 36 42 76 46 20
++76 44 53 76 46 20 76 44 53 76 46 20 88 44 51 88 44 51 88 44 51 88 73 31
++88 44 51 101 74 26 101 60 73 88 44 51 88 73 62 101 60 73 88 44 51 120 63 71
++88 73 62 88 73 62 88 73 62 88 73 62 101 60 73 88 73 62 75 63 62 88 73 62
++75 63 62 75 63 62 75 63 62 75 72 67 75 72 67 65 63 61 75 72 67 65 63 61
++65 63 61 59 57 61 53 63 61 55 55 48 48 50 48 42 47 42 48 44 48 48 44 48
++54 57 61 53 46 48 47 44 42 42 41 42 36 35 37 47 44 42 53 46 48 55 55 48
++53 46 48 59 55 55 63 55 51 59 55 55 65 55 54 65 63 61 59 55 55 51 49 42
++47 49 42 51 49 42 55 55 48 51 49 42 55 55 48 55 55 48 52 55 48 47 44 42
++42 41 42 48 50 48 59 55 55 59 57 61 59 55 55 59 55 55 59 57 61 75 59 67
++75 72 67 65 63 61 59 57 61 59 55 55 59 55 55 59 57 61 59 57 61 65 63 61
++59 55 55 59 55 55 52 55 48 42 38 42 42 38 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 47 44 42 47 44 42 42 41 42 36 35 37 36 35 37 36 35 37
++33 30 32 33 30 30 31 35 35 33 30 30 31 35 35 33 30 30 31 35 35 31 35 35
++33 30 32 32 39 24 33 30 32 31 35 35 36 35 37 32 39 24 36 35 37 33 30 30
++33 30 30 32 39 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++31 35 35 36 35 37 36 35 37 33 30 30 36 35 37 36 35 37 42 38 42 42 41 42
++42 41 42 48 44 48 48 44 48 48 50 48 48 50 48 54 57 61 48 50 48 54 57 61
++54 57 61 54 57 61 59 57 61 63 59 71 65 63 61 59 69 70 75 72 67 75 64 82
++75 81 76 75 64 82 75 81 76 88 83 88 75 81 90 95 91 100 95 91 100 95 91 100
++94 105 108 94 105 108 95 91 100 94 105 108 95 91 100 95 91 100 77 91 115 95 91 100
++95 91 100 77 90 100 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88
++88 83 88 88 83 88 77 90 100 88 83 88 77 90 100 88 83 88 88 83 88 88 83 88
++88 83 88 75 81 90 88 83 88 75 81 90 75 81 82 75 64 82 75 81 82 75 64 82
++75 81 82 75 64 82 60 81 83 59 69 70 75 64 82 59 69 70 60 63 87 59 69 70
++59 69 70 63 59 71 59 69 70 59 57 61 59 57 61 54 57 61 53 46 48 48 50 48
++48 44 48 43 42 50 42 41 42 42 41 42 42 41 42 36 35 37 42 41 42 36 35 37
++53 35 37 36 35 37 36 35 37 53 35 37 32 39 24 47 39 42 36 35 37 53 35 37
++42 41 42 36 35 37 36 35 37 33 30 30 36 35 37 33 30 30 33 30 30 33 30 30
++33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30
++34 30 15 26 24 32 34 30 15 33 30 30 23 20 24 28 13 18 33 30 30 28 13 18
++33 30 30 23 20 24 33 30 30 23 20 24 26 30 28 33 30 30 23 20 24 33 30 30
++33 30 30 33 30 30 23 20 24 33 30 30 23 20 24 26 30 28 26 30 28 33 30 30
++33 30 30 33 30 30 26 30 28 33 30 30 31 35 35 33 30 30 36 35 37 33 39 38
++36 35 37 33 39 38 33 39 38 33 39 38 33 39 38 42 41 42 35 46 43 34 40 43
++34 40 43 35 47 50 43 42 50 42 47 42 35 47 50 42 47 42 48 50 48 43 42 50
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 53 46 48
++53 46 48 47 44 42 47 44 42 47 49 42 47 44 42 47 49 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 42 41 42 42 41 42 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 31 35 35 31 35 35 31 35 35 33 30 30 26 30 28
++26 30 28 26 30 28 26 24 32 26 30 28 26 30 28 26 30 28 26 30 28 22 25 24
++26 30 28 25 30 29 26 30 28 26 30 28 26 24 32 33 30 30 22 25 24 33 30 30
++26 30 28 33 30 30 26 30 28 33 30 30 22 25 24 26 30 28 26 30 28 26 24 32
++33 30 30 22 25 24 26 30 28 22 25 24 22 25 24 22 25 24 22 25 24 12 18 20
++22 25 24 22 25 24 22 25 24 22 25 24 12 18 30 22 25 24 23 20 24 15 22 17
++23 18 22 12 18 20 23 20 24 23 20 24 23 20 24 15 22 17 23 20 24 22 25 24
++23 20 24 22 25 24 26 30 28 26 25 15 26 30 28 33 30 30 22 25 24 34 30 15
++26 30 28 26 30 28 26 30 28 33 30 30 26 30 28 26 30 28 33 30 30 26 25 15
++33 30 30 23 20 24 26 30 28 23 20 24 26 25 15 23 20 24 22 25 24 23 18 22
++15 22 17 23 18 22 12 18 20 14 16 17 14 16 17 23 18 22 23 18 22 23 20 24
++22 25 24 26 25 15 33 30 30 26 25 15 22 25 24 33 30 30 33 30 30 33 30 30
++26 25 15 33 30 30 22 25 24 33 30 30 22 25 24 26 30 28 22 25 24 22 25 24
++22 25 24 22 25 24 33 30 30 22 25 24 33 30 30 26 25 15 33 30 30 33 30 30
++33 30 30 36 35 37 36 35 37 42 41 42 47 44 42 48 44 48 48 50 48 48 50 48
++52 55 48 52 55 48 52 55 48 52 55 48 52 55 48 59 55 55 59 55 55 52 55 48
++
++33 30 30 26 30 28 33 30 30 33 30 30 26 30 28 30 30 34 28 30 35 23 30 35
++23 30 35 23 30 35 23 30 35 28 30 35 28 30 35 28 30 35 28 30 35 28 30 35
++30 30 34 30 30 34 31 35 35 31 35 35 28 30 35 31 35 35 30 30 34 25 30 29
++25 30 29 26 30 28 26 24 32 26 30 28 23 20 24 23 20 24 23 20 24 23 18 22
++23 18 22 17 12 17 14 16 17 17 12 17 7 10 17 17 12 17 7 12 13 7 12 13
++7 10 17 3 4 9 7 10 17 13 4 7 7 12 13 7 10 17 7 12 13 7 10 17
++7 10 17 14 16 17 12 18 20 15 22 17 15 22 17 22 25 24 23 31 15 25 30 29
++29 35 19 29 35 19 32 39 24 32 39 24 47 47 21 32 39 24 49 74 23 35 46 43
++47 47 21 43 55 48 50 61 48 49 74 23 51 73 47 49 74 23 57 86 47 57 86 47
++49 74 23 57 86 47 57 86 47 49 74 23 57 86 47 49 74 23 51 73 47 57 86 47
++49 74 23 43 55 48 49 74 23 43 55 48 49 74 23 35 46 43 49 74 23 32 39 24
++49 74 23 32 39 24 32 39 24 32 39 24 32 39 24 23 31 15 32 39 24 23 31 15
++23 31 15 23 31 15 23 31 15 23 31 15 32 39 24 32 39 24 35 46 43 32 39 24
++35 46 43 43 55 48 47 49 42 50 61 48 50 61 48 50 61 48 59 79 61 65 63 61
++59 79 61 59 79 61 75 77 62 59 79 61 59 79 61 75 81 69 60 82 70 59 79 61
++65 63 61 59 79 61 53 63 61 53 63 61 59 79 61 50 61 48 50 61 48 50 61 48
++50 61 48 43 55 48 42 47 42 42 47 42 42 47 42 35 46 43 42 47 42 36 35 37
++32 39 24 36 35 37 32 39 24 33 30 30 53 35 17 33 30 30 33 30 30 53 35 17
++36 35 37 52 30 15 52 30 15 52 30 35 76 46 20 55 39 37 76 18 19 59 36 42
++76 46 20 76 46 20 88 30 18 76 46 20 88 30 18 76 46 20 88 30 18 76 46 20
++88 30 18 76 46 20 88 30 18 76 46 20 88 30 18 102 33 26 76 46 20 88 30 18
++76 46 20 88 30 18 76 46 20 102 33 26 88 30 18 76 46 20 88 30 18 88 30 18
++76 46 20 88 30 18 76 46 20 59 36 42 76 18 19 76 46 20 88 30 18 55 39 18
++76 18 19 59 36 42 76 46 20 55 39 18 76 46 20 59 36 42 76 46 20 52 30 35
++76 46 20 59 36 42 76 46 20 59 36 42 59 36 42 76 46 20 60 49 42 76 44 53
++62 47 47 76 46 20 60 49 42 76 46 20 60 49 42 60 49 42 76 44 53 63 55 45
++63 55 45 75 56 53 75 56 53 75 56 53 75 56 53 88 66 70 88 73 62 88 66 70
++88 66 70 101 83 74 88 66 70 101 83 74 88 69 84 101 83 74 101 83 74 88 69 84
++101 83 74 101 83 74 88 66 70 101 83 74 88 66 70 101 83 74 88 66 70 88 83 74
++88 66 70 88 83 74 88 69 84 88 83 74 88 66 70 75 81 76 88 66 70 75 72 67
++88 66 70 75 56 53 88 73 62 88 73 62 75 56 53 88 73 62 88 44 51 75 56 53
++75 56 53 75 63 62 88 73 62 75 63 62 88 73 62 88 73 62 88 66 70 88 66 70
++88 66 70 88 73 62 88 66 70 88 73 62 88 66 70 88 66 70 88 66 70 88 66 70
++88 73 62 88 66 70 88 66 70 88 66 70 88 66 70 88 83 74 88 73 62 88 66 70
++88 66 70 88 66 70 101 60 73 88 73 62 88 66 70 88 73 62 75 56 53 88 73 62
++88 44 51 88 73 62 88 44 51 88 73 62 88 44 51 88 73 62 88 44 51 88 73 62
++88 73 62 88 44 51 88 73 62 88 73 31 88 44 51 88 73 31 75 56 53 88 44 51
++76 44 53 76 46 20 76 44 53 59 36 42 76 46 20 55 39 37 55 39 37 55 39 37
++53 35 37 47 39 42 52 30 35 47 47 21 52 30 35 36 35 37 33 30 30 33 30 30
++33 30 30 33 30 30 23 20 24 26 30 28 22 25 24 26 24 32 22 25 24 23 20 24
++23 20 24 23 20 24 23 18 22 12 18 20 23 20 24 23 20 24 23 20 24 26 30 28
++23 20 24 26 30 28 26 24 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++36 35 37 32 39 24 36 35 37 33 30 30 36 35 37 32 39 24 52 30 35 36 35 37
++47 47 21 53 35 17 55 39 37 55 39 18 55 39 37 55 39 37 59 36 42 76 46 20
++60 49 42 76 46 20 76 44 53 76 46 20 88 44 51 76 46 20 88 73 31 88 44 51
++88 44 51 88 73 62 88 44 51 88 73 62 88 44 51 101 74 26 88 73 62 88 73 62
++101 60 73 88 73 62 101 60 73 88 73 62 88 73 62 88 73 62 75 63 62 88 73 62
++75 63 62 88 73 62 75 72 67 75 63 62 75 72 67 75 72 67 65 63 61 65 63 61
++65 63 61 59 57 61 59 57 61 52 55 48 51 49 42 42 47 42 36 35 37 36 35 37
++42 41 42 47 44 42 36 35 37 36 35 37 32 39 24 36 35 37 36 35 37 42 38 42
++47 44 42 51 49 42 53 46 48 55 55 48 55 55 48 51 49 42 47 49 42 42 41 42
++36 35 37 36 35 37 42 41 42 47 39 42 47 44 42 52 55 48 55 55 48 51 49 42
++42 41 42 47 49 42 55 55 48 59 57 61 59 55 55 52 55 48 48 50 48 54 57 61
++65 63 61 65 63 61 65 63 61 55 55 48 65 63 61 75 72 67 75 81 76 65 63 61
++59 57 61 55 55 48 55 55 48 48 50 48 48 50 48 47 49 42 51 49 42 48 50 48
++55 55 48 52 55 48 59 55 55 52 55 48 47 44 42 47 44 42 36 35 37 36 35 37
++36 35 37 33 30 32 31 35 35 32 39 24 36 35 37 32 39 24 33 30 30 36 35 37
++32 39 24 33 30 30 36 35 37 32 39 24 36 35 37 36 35 37 36 35 37 32 39 24
++33 30 30 36 35 37 33 30 30 36 35 37 33 30 30 33 30 30 32 39 24 33 30 30
++33 30 30 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 42 38 42
++47 44 42 47 44 42 48 44 48 48 44 48 53 46 48 48 44 48 54 57 61 57 43 51
++59 55 55 59 55 55 59 57 61 54 57 61 65 63 61 63 59 71 75 72 67 59 69 70
++75 64 82 75 72 67 75 81 82 88 83 88 88 83 88 77 90 100 90 98 89 77 90 100
++95 91 100 95 91 100 95 91 100 95 91 100 94 105 108 95 91 100 94 105 108 95 91 100
++88 83 88 78 98 90 88 83 88 77 90 100 90 98 89 77 90 100 88 83 88 77 90 100
++88 83 88 77 90 100 88 83 88 95 91 100 88 83 88 88 83 88 88 83 88 88 83 88
++77 90 100 88 83 88 88 83 88 75 81 90 88 83 88 75 81 90 75 81 90 75 64 82
++75 81 90 75 81 82 75 64 82 75 64 82 60 81 83 75 64 82 60 81 83 75 64 82
++60 81 83 75 64 82 63 59 71 63 59 71 59 57 61 59 57 61 54 57 61 53 46 48
++48 44 48 48 44 48 42 41 42 42 41 42 42 38 42 47 47 21 36 35 37 36 35 37
++36 35 37 42 38 42 47 47 21 36 35 37 53 35 37 36 35 37 47 47 21 36 35 37
++36 35 37 53 35 37 33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 52 30 35
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 32 49 13 16 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 23 20 24 33 30 30 26 25 15 33 30 30 23 20 24
++26 25 15 33 30 30 26 25 15 23 20 24 33 30 30 23 20 24 33 30 30 33 30 30
++23 20 24 33 30 30 33 30 30 33 30 30 26 30 28 23 20 24 33 30 30 26 30 28
++26 30 28 33 30 30 33 30 30 26 30 28 33 30 30 31 35 35 31 35 35 31 35 35
++31 35 35 31 35 35 33 39 38 33 39 38 33 39 38 34 40 43 34 40 43 34 40 43
++34 40 43 35 46 43 35 46 43 35 47 50 42 47 42 43 42 50 48 50 48 48 50 48
++48 50 48 48 50 48 54 57 61 52 55 48 52 55 48 52 55 48 55 55 48 53 46 48
++51 49 42 53 46 48 48 50 48 51 49 42 48 50 48 47 49 42 47 49 42 47 49 42
++51 49 42 51 49 42 51 49 42 47 44 42 42 47 42 47 44 42 42 41 42 47 39 42
++36 35 37 47 47 21 36 35 37 36 35 37 42 38 42 47 47 21 42 41 42 47 44 42
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 31 35 35 30 30 34
++30 30 34 30 30 34 26 24 32 26 30 28 26 24 32 26 30 28 26 30 28 26 30 28
++26 30 28 26 30 28 26 24 32 26 30 28 26 30 28 22 25 24 33 30 30 33 30 30
++26 24 32 33 30 30 26 24 32 26 30 28 33 30 30 26 25 15 33 30 30 26 30 28
++26 24 32 23 20 24 26 30 28 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 12 18 20 22 25 24 22 25 24 22 25 24 12 18 30 23 20 24
++23 20 24 23 20 24 23 20 24 15 22 17 23 18 22 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 22 25 24 23 20 24 33 30 30 22 25 24 26 30 28 26 24 32
++26 30 28 33 30 30 34 30 15 26 30 28 33 30 30 34 30 15 26 30 28 33 30 30
++22 25 24 26 30 28 26 25 15 23 20 24 23 20 24 23 18 22 22 25 24 22 25 24
++15 22 17 23 18 22 14 16 17 23 18 22 15 22 17 23 18 22 15 22 17 23 18 22
++23 20 24 26 30 28 22 25 24 22 25 24 33 30 30 26 25 15 33 30 30 33 30 30
++33 30 30 34 30 15 26 30 28 26 30 28 26 25 15 33 30 30 23 20 24 33 30 30
++26 25 15 33 30 30 26 25 15 22 25 24 26 25 15 26 30 28 26 30 28 32 39 24
++33 30 30 36 35 37 32 39 24 36 35 37 42 41 42 47 44 42 48 44 48 48 50 48
++48 50 48 52 55 48 48 50 48 54 57 61 48 50 48 54 57 61 48 50 48 54 57 61
++
++26 30 28 33 30 30 26 30 28 26 30 28 26 30 28 26 24 32 25 30 29 23 30 35
++25 30 29 25 30 29 23 30 35 28 30 35 28 30 35 25 30 29 28 30 35 31 35 35
++30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 26 24 32
++26 24 32 22 25 24 26 30 28 23 20 24 23 20 24 23 18 22 23 18 22 23 18 22
++12 18 20 14 16 17 17 12 17 14 16 17 17 12 17 7 10 17 13 4 7 7 10 17
++3 4 9 13 4 7 7 10 17 7 12 13 3 4 9 7 12 13 7 10 17 17 12 17
++7 10 17 14 16 17 14 16 17 15 22 17 23 31 15 22 25 24 22 25 24 29 35 19
++25 30 29 32 39 24 32 39 24 32 39 24 35 46 43 49 74 23 32 39 24 49 74 23
++43 55 48 49 74 23 49 74 23 51 73 47 51 73 47 57 86 47 49 74 23 57 86 47
++49 74 23 57 86 47 49 74 23 57 86 47 49 74 23 57 86 47 49 74 23 57 86 47
++51 73 47 49 74 23 49 74 23 49 74 23 51 73 47 49 74 23 35 46 43 32 39 24
++32 39 24 32 39 24 32 39 24 32 39 24 32 39 24 32 39 24 23 31 15 23 30 35
++23 31 15 23 31 15 23 30 35 23 31 15 35 46 43 32 39 24 35 46 43 35 46 43
++42 47 42 47 49 42 43 55 48 50 61 48 50 61 48 53 63 61 64 70 48 59 79 61
++59 79 61 75 77 62 59 79 61 75 81 69 75 81 69 60 82 70 75 77 62 59 79 61
++59 69 70 53 63 61 64 70 48 53 63 61 53 63 61 53 63 61 50 61 48 54 57 61
++48 50 48 47 49 42 42 47 42 42 47 42 35 46 43 32 39 24 35 46 43 32 39 24
++36 35 37 32 39 24 33 30 30 33 30 30 33 30 30 32 39 24 52 30 35 33 30 30
++53 35 17 52 30 15 52 30 35 52 30 15 52 30 35 76 18 19 76 46 20 76 46 20
++76 18 19 59 36 42 76 46 20 88 30 18 76 46 20 88 30 18 76 46 20 88 30 18
++76 46 20 88 30 18 76 46 20 102 33 26 76 46 20 76 46 20 88 30 18 88 30 18
++76 46 20 88 30 18 76 46 20 88 30 18 76 46 20 88 30 18 88 30 18 76 46 20
++76 18 19 76 46 20 76 18 19 76 46 20 76 46 20 76 18 19 55 39 37 76 46 20
++76 46 20 76 46 20 76 18 19 59 36 42 76 46 20 76 18 19 55 39 37 76 46 20
++59 36 42 76 46 20 55 39 37 76 46 20 60 49 42 62 47 47 60 49 42 76 46 20
++60 49 42 62 47 47 60 49 42 62 47 47 76 44 53 60 49 42 63 55 45 76 44 53
++75 56 53 75 56 53 75 56 53 75 56 53 88 73 62 88 66 70 88 66 70 88 73 62
++88 66 70 88 66 70 88 83 74 88 66 70 101 83 74 88 69 84 101 83 74 101 60 73
++101 83 74 88 69 84 101 83 74 88 69 84 101 83 74 88 69 84 88 83 74 88 69 84
++88 83 74 88 83 74 88 66 70 88 83 74 88 83 74 88 66 70 75 72 67 88 73 62
++75 63 62 88 73 62 75 56 53 75 56 53 88 73 62 75 56 53 75 56 53 88 73 62
++88 73 62 88 73 62 75 56 53 88 66 70 88 73 62 88 66 70 88 66 70 88 73 62
++88 66 70 88 73 62 88 66 70 88 73 62 88 66 70 88 73 62 88 66 70 88 73 62
++88 66 70 88 73 62 88 66 70 88 73 62 88 66 70 88 73 62 88 66 70 88 73 62
++88 66 70 75 63 62 88 73 62 88 73 62 88 44 51 88 73 62 88 44 51 75 56 53
++88 73 62 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 62 101 74 26
++88 44 51 88 73 31 88 44 51 88 44 51 88 44 51 88 44 51 76 46 20 75 56 53
++76 46 20 63 55 45 76 46 20 76 44 53 60 49 42 55 39 37 60 49 42 55 39 37
++55 39 37 52 30 35 32 39 24 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 26 24 32 33 30 30 23 20 24 26 24 32 22 25 24 22 25 24 23 20 24
++15 22 17 23 20 24 12 18 20 23 18 22 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 33 30 30 26 24 32 33 30 30 26 24 32 33 30 30 33 30 30 33 30 30
++36 35 37 33 30 30 33 30 30 32 39 24 36 35 37 52 30 35 36 35 37 55 39 18
++36 35 37 53 35 37 52 30 35 55 39 37 55 39 18 59 36 42 76 46 20 59 36 42
++76 46 20 59 36 42 76 46 20 76 44 53 76 46 20 88 44 51 88 44 51 88 73 31
++88 44 51 88 44 51 88 73 31 88 73 62 88 73 62 101 60 73 88 44 51 88 73 62
++88 73 62 88 44 51 88 73 62 88 73 62 88 44 51 88 73 62 88 73 62 75 63 62
++88 73 62 75 63 62 75 72 67 75 63 62 75 72 67 75 59 67 75 72 67 65 63 61
++59 57 61 59 55 55 59 55 55 53 46 48 51 49 42 47 39 42 36 35 37 32 39 24
++33 30 30 33 30 30 32 39 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 42 41 42 36 35 37 33 30 32 33 30 32 33 30 30 29 35 19
++26 25 15 33 30 30 36 35 37 36 35 37 36 35 37 42 47 42 47 49 42 48 50 48
++47 44 42 47 44 42 48 50 48 59 55 55 59 55 55 48 50 48 48 44 48 47 49 42
++59 55 55 65 63 61 65 63 61 55 55 48 59 55 55 75 81 69 88 83 74 75 72 67
++52 55 48 47 44 42 55 55 48 59 57 61 59 55 55 59 55 55 59 55 55 65 63 61
++65 63 61 65 63 61 59 57 61 55 55 48 51 49 42 47 44 42 47 47 21 36 35 37
++36 35 37 36 35 37 36 35 37 32 39 24 36 35 37 36 35 37 32 39 24 36 35 37
++32 39 24 36 35 37 32 39 24 36 35 37 36 35 37 36 35 37 36 35 37 47 47 21
++36 35 37 32 39 24 52 30 35 32 39 24 33 30 30 36 35 37 33 30 30 33 30 30
++53 35 37 36 35 37 47 47 21 36 35 37 36 35 37 53 35 37 36 35 37 47 44 42
++47 39 42 47 44 42 48 44 48 48 44 48 48 50 48 48 50 48 54 57 61 53 46 48
++54 57 61 59 55 55 59 55 55 54 57 61 59 57 61 65 63 61 63 59 71 75 72 67
++75 72 67 75 64 82 75 81 76 75 81 82 88 83 88 88 83 88 95 91 100 95 91 100
++95 91 100 95 91 100 77 90 100 95 91 100 77 90 100 95 91 100 77 90 100 77 90 100
++77 90 100 88 83 88 78 98 90 88 83 88 77 90 100 88 83 88 77 90 100 88 83 88
++77 90 100 88 83 88 95 91 100 77 90 100 95 91 100 77 90 100 77 90 100 95 91 100
++95 91 100 77 90 100 95 91 100 75 81 90 88 83 88 75 81 90 88 83 88 75 81 90
++75 81 90 75 81 90 75 81 90 75 81 90 75 64 82 60 81 83 75 64 82 60 63 87
++75 64 82 60 81 83 63 59 71 59 69 70 63 59 71 54 57 61 54 57 61 53 46 48
++48 50 48 48 44 48 43 42 50 42 41 42 42 38 42 36 35 37 47 39 42 52 30 35
++36 35 37 53 35 37 36 35 37 53 35 37 32 39 24 53 35 37 36 35 37 53 35 37
++32 39 24 36 35 37 36 35 37 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 34 30 15 33 30 30 33 30 30
++49 13 16 33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 49 13 16 33 30 30
++28 13 18 33 30 30 28 13 18 33 30 30 33 30 30 28 13 18 33 30 30 28 13 18
++33 30 30 23 18 22 26 25 15 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30
++33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 33 30 30 23 20 24 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 32 33 30 32 33 30 32 36 35 37 33 30 32
++36 35 37 36 35 37 31 35 35 36 35 37 37 35 43 34 40 43 34 40 43 34 40 43
++34 40 43 42 41 42 34 40 43 42 41 42 35 46 43 42 47 42 48 44 48 48 50 48
++48 50 48 48 50 48 48 44 48 54 57 61 53 46 48 52 55 48 53 46 48 55 55 48
++53 46 48 53 46 48 51 49 42 48 50 48 53 46 48 48 50 48 53 46 48 48 50 48
++48 50 48 48 50 48 48 50 48 51 49 42 47 44 42 42 47 42 42 41 42 36 35 37
++42 41 42 42 38 42 42 41 42 36 35 37 42 41 42 42 41 42 42 41 42 36 35 37
++42 41 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 39 38 36 35 37
++28 30 35 30 30 34 30 30 34 30 30 34 33 30 30 26 30 28 26 30 28 33 30 30
++26 30 28 26 30 28 26 30 28 26 30 28 23 20 24 33 30 30 23 20 24 26 24 32
++26 30 28 23 20 24 33 30 30 26 24 32 26 30 28 26 30 28 33 30 30 26 30 28
++26 30 28 26 30 28 23 20 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24
++22 25 24 22 25 24 22 25 24 22 23 31 12 18 30 22 25 24 22 25 24 15 22 17
++23 20 24 12 18 20 23 20 24 15 22 17 23 20 24 15 22 17 23 20 24 22 25 24
++22 25 24 26 24 32 26 30 28 22 25 24 26 25 15 22 25 24 33 30 30 23 20 24
++33 30 30 26 30 28 26 30 28 33 30 30 26 30 28 26 24 32 34 30 15 26 24 32
++26 25 15 22 25 24 23 20 24 23 20 24 26 25 15 23 18 22 15 22 17 23 20 24
++23 18 22 12 18 20 23 18 22 14 16 17 23 18 22 14 16 17 23 18 22 22 25 24
++23 20 24 26 25 15 23 20 24 33 30 30 33 30 30 33 30 30 33 30 30 23 20 24
++33 30 30 26 24 32 33 30 30 26 25 15 33 30 30 33 30 30 26 25 15 33 30 30
++23 20 24 26 30 28 23 20 24 26 30 28 23 20 24 26 30 28 26 25 15 33 30 30
++33 30 30 33 30 30 36 35 37 36 35 37 47 44 42 42 47 42 47 44 42 48 50 48
++48 50 48 54 57 61 48 50 48 52 55 48 52 55 48 45 57 61 53 46 48 48 50 48
++
++26 30 28 26 25 15 33 30 30 26 30 28 22 25 24 26 24 32 22 23 31 22 23 31
++22 23 31 22 25 24 22 23 31 22 23 31 25 30 29 25 30 29 25 30 29 30 30 34
++30 30 34 26 30 28 30 30 34 26 30 28 30 30 34 26 30 28 26 30 28 26 30 28
++22 25 24 26 24 32 22 25 24 26 24 32 23 20 24 23 18 22 23 18 22 23 18 22
++14 16 17 17 12 17 17 12 17 7 10 17 17 12 17 7 10 17 7 10 17 3 4 9
++13 4 7 7 10 17 3 4 9 13 4 7 7 12 13 3 4 9 7 12 13 7 12 13
++7 10 17 14 16 17 14 16 17 15 22 17 15 22 17 23 31 15 22 25 24 23 31 15
++32 39 24 32 39 24 32 39 24 32 39 24 32 39 24 35 46 43 47 47 21 42 47 42
++49 74 23 51 73 47 51 73 47 49 74 23 57 86 47 49 74 23 57 86 47 57 86 47
++49 74 23 57 86 47 57 86 47 57 86 47 57 86 47 49 74 23 57 86 47 57 86 47
++57 86 47 51 73 47 51 73 47 49 74 23 35 46 43 49 74 23 35 46 43 49 74 23
++32 39 24 49 74 23 32 39 24 32 39 24 32 39 24 23 30 35 23 31 15 23 31 15
++23 31 15 23 31 15 23 31 15 23 31 15 23 30 35 32 39 24 35 46 43 32 39 24
++47 49 42 43 55 48 47 49 42 50 61 48 50 61 48 59 79 61 53 63 61 53 63 61
++59 79 61 59 69 70 59 79 61 59 79 61 59 69 70 59 79 61 59 69 70 59 79 61
++53 63 61 59 79 61 53 63 61 51 73 47 53 63 61 50 61 48 43 55 48 48 50 48
++48 50 48 42 47 42 42 47 42 35 46 43 33 39 38 35 46 43 33 39 38 32 39 24
++36 35 37 36 35 37 32 39 24 33 30 30 33 30 30 53 35 17 33 30 30 52 30 15
++34 30 15 52 30 35 52 30 15 52 30 35 55 39 18 59 36 42 76 46 20 52 30 35
++76 46 20 76 18 19 76 46 20 88 30 18 76 46 20 88 30 18 76 46 20 88 30 18
++88 30 18 76 46 20 88 30 18 76 46 20 88 30 18 88 30 18 76 46 20 88 30 18
++88 30 18 76 46 20 88 30 18 76 46 20 88 30 18 88 30 18 76 46 20 76 18 19
++76 46 20 76 46 20 59 36 42 76 46 20 76 18 19 76 46 20 76 46 20 76 46 20
++76 18 19 59 36 42 76 46 20 55 39 18 76 46 20 52 30 35 76 46 20 52 30 35
++76 46 20 59 36 42 60 49 42 59 36 42 76 46 20 59 36 42 60 49 42 59 36 42
++60 49 42 60 49 42 60 49 42 60 49 42 60 49 42 76 44 53 63 55 45 75 56 53
++63 55 45 75 56 53 75 56 53 75 63 62 75 56 53 88 66 70 88 73 62 88 66 70
++88 83 74 101 83 74 88 69 84 88 83 74 88 69 84 101 83 74 88 69 84 101 83 74
++88 69 84 101 83 74 88 69 84 88 83 74 101 83 74 88 69 84 101 83 74 88 83 74
++88 66 70 88 83 74 88 83 74 88 69 84 75 81 76 88 83 74 88 83 74 88 66 70
++88 66 70 88 73 62 75 63 62 88 73 62 75 56 53 75 56 53 75 56 53 75 56 53
++88 44 51 88 73 62 88 66 70 88 73 62 88 66 70 88 73 62 88 66 70 88 66 70
++88 66 70 88 73 62 88 73 62 88 66 70 88 66 70 88 66 70 88 73 62 88 66 70
++88 73 62 88 66 70 88 73 62 88 44 51 88 73 62 75 63 62 75 56 53 75 63 62
++75 56 53 75 63 62 75 56 53 75 56 53 88 73 62 75 56 53 75 56 53 88 44 51
++88 44 51 75 56 53 88 44 51 75 56 53 88 44 51 88 73 31 88 44 51 88 44 51
++88 44 51 88 44 51 88 44 51 88 73 31 88 44 51 88 73 31 75 56 53 76 46 20
++76 44 53 76 46 20 76 44 53 76 46 20 60 49 42 76 46 20 55 39 37 55 39 18
++55 39 37 36 35 37 52 30 35 52 30 35 33 30 30 52 30 35 36 35 37 33 30 30
++33 30 30 33 30 30 22 25 24 26 30 28 26 30 28 22 25 24 23 20 24 23 20 24
++23 20 24 23 20 24 23 18 22 23 18 22 15 22 17 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 33 30 30 23 20 24 26 30 28 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 32 39 24 36 35 37 52 30 35
++47 47 21 52 30 35 53 35 17 55 39 37 55 39 37 55 39 18 55 39 37 55 39 37
++59 36 42 76 46 20 59 36 42 76 46 20 60 49 42 76 46 20 76 44 53 76 46 20
++88 44 51 88 73 62 88 44 51 88 44 51 88 44 51 88 73 62 88 73 31 101 60 73
++88 73 62 120 63 71 88 73 62 88 73 62 88 73 62 75 63 62 75 63 62 88 73 62
++75 63 62 75 72 67 75 63 62 75 72 67 75 59 67 75 72 67 75 63 62 65 63 61
++65 63 61 59 57 61 59 55 55 53 46 48 47 44 42 47 44 42 47 39 42 42 41 42
++33 30 30 33 30 30 26 30 28 34 30 15 33 30 30 26 25 15 26 30 28 22 25 24
++34 30 15 33 30 30 26 25 15 34 30 15 23 20 24 26 25 15 23 18 22 26 25 15
++23 18 22 26 25 15 33 30 30 32 39 24 36 35 37 36 35 37 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 48 50 48 48 50 48 59 55 55 55 55 48 48 50 48
++48 50 48 55 55 48 55 55 48 52 55 48 42 41 42 55 55 48 65 63 61 59 57 61
++51 49 42 47 44 42 55 55 48 59 55 55 55 55 48 65 63 61 65 63 61 75 72 67
++75 72 67 65 63 61 59 57 61 48 50 48 48 50 48 51 49 42 47 44 42 42 41 42
++42 41 42 36 35 37 32 39 24 36 35 37 32 39 24 36 35 37 32 39 24 36 35 37
++36 35 37 36 35 37 47 47 21 36 35 37 42 38 42 47 47 21 36 35 37 42 38 42
++36 35 37 42 41 42 36 35 37 42 41 42 33 30 30 36 35 37 47 47 21 36 35 37
++36 35 37 36 35 37 36 35 37 53 35 37 36 35 37 36 35 37 42 38 42 42 38 42
++42 41 42 47 44 42 47 44 42 48 44 48 48 44 48 48 44 48 48 44 48 53 46 48
++48 50 48 53 46 48 52 55 48 59 55 55 59 55 55 63 59 71 65 63 61 63 59 71
++59 69 70 75 72 67 75 81 76 75 81 82 88 83 88 88 83 88 88 83 88 88 83 88
++78 98 90 95 91 100 95 91 100 77 90 100 95 91 100 77 90 100 95 91 100 88 83 88
++77 90 100 88 83 88 88 83 88 77 90 100 88 83 88 88 83 88 77 90 100 88 83 88
++95 91 100 77 90 100 95 91 100 95 91 100 77 90 100 88 83 88 95 91 100 77 90 100
++77 90 100 95 91 100 88 83 88 77 90 100 88 83 88 88 83 88 77 90 100 88 83 88
++75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 82
++60 81 83 75 64 82 60 63 87 59 69 70 63 59 71 59 57 61 54 57 61 57 43 64
++54 57 61 48 50 48 48 44 48 42 41 42 36 35 37 53 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 52 30 35 36 35 37 53 35 37 36 35 37
++36 35 37 52 30 35 33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 26 25 15 33 30 30 23 20 24 26 25 15
++23 20 24 26 25 15 23 20 24 23 20 24 33 30 30 26 25 15 33 30 30 23 18 22
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 22 25 24 33 30 30 26 30 28
++26 30 28 26 30 28 33 30 30 33 30 32 33 30 32 33 30 30 31 35 35 33 30 30
++36 35 37 31 35 35 31 35 35 31 35 35 36 35 37 33 39 38 34 40 43 33 39 38
++34 40 43 34 40 43 34 40 43 42 41 42 34 40 43 42 41 42 42 47 42 48 44 48
++48 50 48 48 44 48 54 57 61 52 55 48 52 55 48 59 55 55 59 55 55 59 55 55
++55 55 48 53 46 48 48 50 48 52 55 48 52 55 48 52 55 48 52 55 48 53 46 48
++48 50 48 52 55 48 47 49 42 47 49 42 47 44 42 47 44 42 47 44 42 47 47 21
++42 41 42 36 35 37 47 47 21 42 41 42 42 41 42 42 41 42 47 44 42 47 44 42
++42 41 42 47 39 42 42 41 42 42 41 42 33 39 38 42 41 42 37 35 43 37 35 43
++36 35 37 31 35 35 31 35 35 30 30 34 30 30 34 26 30 28 30 30 34 26 30 28
++26 30 28 26 30 28 22 25 24 33 30 30 26 30 28 22 25 24 26 24 32 33 30 30
++26 24 32 26 30 28 26 24 32 26 30 28 26 30 28 22 25 24 26 30 28 23 20 24
++33 30 30 23 20 24 26 30 28 26 30 28 22 25 24 22 25 24 22 25 24 22 23 31
++22 25 24 22 23 31 12 18 20 22 25 24 22 25 24 12 18 30 22 25 24 23 20 24
++22 25 24 22 25 24 23 20 24 23 20 24 23 20 24 22 25 24 22 25 24 23 20 24
++22 25 24 23 20 24 26 24 32 23 20 24 26 30 28 26 25 15 23 20 24 33 30 30
++23 20 24 33 30 30 26 25 15 26 24 32 34 30 15 26 30 28 22 25 24 33 30 30
++23 20 24 26 30 28 26 25 15 23 20 24 23 18 22 23 18 22 23 20 24 23 20 24
++12 18 20 23 18 22 14 16 17 14 16 17 23 18 22 22 24 13 22 25 24 23 18 22
++23 20 24 23 20 24 22 25 24 26 25 15 26 30 28 26 25 15 33 30 30 33 30 30
++26 25 15 33 30 30 26 30 28 26 30 28 33 30 30 23 20 24 33 30 30 22 25 24
++26 30 28 26 25 15 23 20 24 26 25 15 26 30 28 26 25 15 26 30 28 26 30 28
++32 39 24 36 35 37 33 30 30 36 35 37 42 41 42 42 41 42 48 44 48 48 50 48
++53 46 48 48 50 48 53 46 48 45 57 61 48 50 48 53 46 48 45 57 61 48 50 48
++
++22 25 24 26 30 28 22 25 24 23 20 24 26 24 32 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 22 25 24 22 25 24 25 30 29 22 23 31 25 30 29 30 30 34
++30 30 34 30 30 34 26 30 28 26 30 28 26 30 28 26 30 28 26 24 32 23 20 24
++22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 23 18 22 23 18 22 14 16 17
++14 16 17 14 16 17 17 12 17 7 10 17 7 10 17 17 12 17 7 12 13 7 10 17
++3 4 9 13 4 7 7 12 13 3 4 9 3 4 9 13 4 7 7 12 13 13 4 7
++7 12 13 7 12 13 14 16 17 15 17 7 15 22 17 15 22 17 23 31 15 25 30 29
++32 39 24 32 39 24 35 46 43 49 74 23 32 39 24 49 74 23 42 47 42 49 74 23
++43 55 48 49 74 23 50 61 48 51 73 47 49 74 23 57 86 47 57 86 47 49 74 23
++57 86 47 57 86 47 49 74 23 64 97 47 49 74 23 64 97 47 49 74 23 57 86 47
++57 86 47 49 74 23 51 73 47 49 74 23 51 73 47 35 46 43 49 74 23 32 39 24
++32 39 24 32 39 24 32 39 24 32 39 24 23 31 15 23 31 15 23 31 15 23 31 15
++15 22 17 23 30 35 23 31 15 23 30 35 32 39 24 32 39 24 35 46 43 35 46 43
++42 47 42 42 47 42 50 61 48 43 55 48 50 61 48 53 63 61 53 63 61 53 63 61
++65 63 61 59 79 61 59 69 70 75 72 67 59 69 70 59 69 70 65 63 61 59 79 61
++53 63 61 53 63 61 53 63 61 53 63 61 50 61 48 43 55 48 43 55 48 43 55 48
++35 46 43 35 46 43 33 39 38 33 39 38 33 39 38 33 39 38 36 35 37 31 35 35
++32 39 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 34 30 15
++52 30 35 34 30 15 52 30 15 53 35 17 76 18 19 52 30 35 76 18 19 76 46 20
++76 18 19 76 46 20 76 18 19 76 46 20 76 18 19 76 46 20 88 30 18 88 30 18
++76 46 20 88 30 18 88 30 18 76 46 20 88 30 18 76 46 20 88 30 18 76 46 20
++88 30 18 76 46 20 88 30 18 76 46 20 88 30 18 76 46 20 76 18 19 76 46 20
++76 46 20 76 18 19 76 46 20 76 18 19 60 49 42 76 46 20 76 18 19 59 36 42
++76 46 20 76 46 20 76 18 19 59 36 42 76 46 20 55 39 18 76 18 19 55 39 37
++76 46 20 59 36 42 76 46 20 59 36 42 62 47 47 60 49 42 60 49 42 76 46 20
++60 49 42 60 49 42 76 46 20 59 36 42 60 49 42 60 49 42 63 55 45 76 44 53
++63 55 45 75 56 53 75 56 53 75 56 53 88 73 62 75 63 62 88 73 62 88 66 70
++88 66 70 101 83 74 88 66 70 101 83 74 88 66 70 88 83 74 101 83 74 88 69 84
++101 83 74 101 83 74 101 83 74 88 69 84 101 83 74 88 83 74 88 69 84 88 83 74
++88 69 84 88 83 74 88 69 84 88 83 74 88 83 74 88 66 70 75 81 69 88 73 62
++75 72 67 75 63 62 88 73 62 75 56 53 88 73 62 75 56 53 88 73 62 88 73 62
++88 73 62 88 66 70 88 73 62 88 66 70 88 73 62 88 66 70 88 66 70 88 73 62
++88 66 70 88 73 62 88 66 70 88 73 62 88 66 70 75 63 62 88 66 70 75 56 53
++88 66 70 75 56 53 75 56 53 88 73 62 75 56 53 75 56 53 88 73 62 75 56 53
++88 66 70 75 56 53 75 56 53 75 56 53 88 44 51 75 56 53 75 56 53 88 44 51
++75 73 36 88 44 51 88 73 31 88 44 51 75 56 53 88 44 51 75 73 36 88 44 51
++75 73 36 88 44 51 75 73 36 88 44 51 76 46 20 76 44 53 76 46 20 76 44 53
++76 46 20 76 44 53 60 49 42 59 36 42 60 49 42 55 39 37 55 39 37 55 39 37
++55 39 37 47 47 21 36 35 37 33 30 30 33 30 30 32 39 24 33 30 30 33 30 30
++33 30 30 26 30 28 26 24 32 33 30 30 26 24 32 23 20 24 22 25 24 23 20 24
++23 20 24 12 18 20 23 20 24 12 18 20 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 33 30 30 23 20 24 33 30 30 26 30 28 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 32 39 24 33 30 30 33 30 30 33 30 30 33 30 30
++36 35 37 53 35 17 36 35 37 52 30 35 55 39 18 53 35 37 55 39 37 76 46 20
++53 35 37 55 39 37 59 36 42 76 46 20 76 44 53 76 46 20 75 56 53 88 44 51
++75 56 53 76 46 20 88 73 62 88 73 62 88 73 62 88 44 51 88 66 70 88 73 62
++88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 66 70 88 73 62 88 66 70
++75 72 67 88 66 70 75 63 62 75 63 62 75 63 62 65 63 61 65 63 61 65 63 61
++65 55 54 59 55 55 53 46 48 47 44 42 42 41 42 32 39 24 36 35 37 32 39 24
++33 30 30 26 30 28 23 18 22 23 20 24 22 25 24 22 25 24 23 20 24 26 25 15
++23 18 22 23 18 22 23 18 22 23 18 22 17 12 17 17 12 17 14 16 17 14 16 17
++17 12 17 22 25 24 22 25 24 33 30 30 33 30 30 32 39 24 42 41 42 42 41 42
++42 41 42 36 35 37 36 35 37 47 39 42 53 46 48 59 55 55 59 55 55 52 55 48
++42 41 42 47 44 42 47 44 42 47 44 42 33 30 30 36 35 37 55 55 48 55 55 48
++51 49 42 42 41 42 51 49 42 65 63 61 65 63 61 65 63 61 65 63 61 75 72 67
++59 57 61 59 55 55 55 55 48 53 46 48 51 49 42 48 50 48 47 44 42 47 44 42
++36 35 37 32 39 24 53 35 37 32 39 24 33 30 30 36 35 37 36 35 37 32 39 24
++47 39 42 32 39 24 42 38 42 36 35 37 55 39 37 36 35 37 53 35 37 32 39 24
++55 39 37 42 41 42 47 47 21 36 35 37 47 47 21 36 35 37 52 30 35 36 35 37
++36 35 37 53 35 37 32 39 24 36 35 37 36 35 37 47 47 21 42 38 42 42 41 42
++47 39 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 48 44 48 48 44 48
++48 50 48 53 46 48 59 55 55 53 46 48 54 57 61 59 55 55 59 57 61 63 59 71
++75 72 67 75 64 82 75 64 82 75 81 82 88 83 88 88 83 88 88 83 88 77 90 100
++95 91 100 95 91 100 77 90 100 95 91 100 77 90 100 95 91 100 77 90 100 88 83 88
++77 90 100 75 81 90 78 98 90 88 83 88 77 90 100 77 90 100 88 83 88 77 90 100
++95 91 100 95 91 100 95 91 100 77 90 100 95 91 100 77 90 100 95 91 100 77 90 100
++95 91 100 95 91 100 77 91 115 95 91 100 77 90 100 77 90 100 88 83 88 77 90 100
++95 91 100 75 81 90 77 90 100 75 81 90 75 81 90 75 81 90 60 63 87 75 81 90
++60 63 87 75 81 82 59 69 70 63 59 71 59 69 70 63 59 71 59 57 61 54 57 61
++53 46 48 48 50 48 43 42 50 42 41 42 42 38 42 32 39 24 36 35 37 47 47 21
++36 35 37 52 30 35 47 47 21 52 30 35 32 39 24 53 35 37 36 35 37 47 47 21
++36 35 37 52 30 35 36 35 37 33 30 30 52 30 35 33 30 30 33 30 30 52 30 35
++33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30 52 30 35 33 30 30
++52 30 35 33 30 30 52 30 35 33 30 30 49 13 16 33 30 32 33 30 30 52 30 35
++33 30 30 49 13 16 33 30 30 33 30 30 33 30 30 28 13 18 33 30 30 23 20 24
++26 25 15 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30
++26 30 28 23 20 24 33 30 30 23 20 24 33 30 30 22 25 24 33 30 30 26 25 15
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 32 33 30 32 36 35 37
++31 35 35 33 30 32 33 30 32 33 30 36 36 35 37 33 39 38 37 35 43 36 35 37
++33 39 38 36 35 37 33 39 38 42 38 42 34 40 43 42 47 42 47 44 42 42 47 42
++48 50 48 48 50 48 53 46 48 59 55 55 59 55 55 59 55 55 55 55 48 53 46 48
++59 55 55 55 55 48 55 55 48 55 55 48 53 46 48 55 55 48 55 55 48 52 55 48
++52 55 48 48 50 48 51 49 42 48 50 48 51 49 42 47 49 42 47 44 42 47 44 42
++47 44 42 42 41 42 42 41 42 42 41 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 34 40 43
++37 35 43 36 35 37 36 35 37 31 35 35 31 35 35 31 35 35 33 30 32 30 30 34
++33 30 30 26 30 28 33 30 30 26 30 28 26 24 32 26 30 28 22 25 24 33 30 30
++26 24 32 33 30 30 26 30 28 22 25 24 33 30 30 26 25 15 33 30 30 26 30 28
++22 25 24 33 30 30 23 20 24 26 30 28 23 20 24 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24
++12 18 20 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 15 22 17
++22 25 24 23 20 24 22 25 24 26 30 28 23 20 24 22 25 24 33 30 30 26 30 28
++26 24 32 22 25 24 33 30 30 26 30 28 26 24 32 22 25 24 33 30 30 23 20 24
++26 25 15 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 15 22 17 15 22 17
++23 20 24 12 18 20 14 16 17 23 18 22 15 22 17 23 18 22 23 18 22 22 25 24
++23 18 22 22 25 24 22 25 24 33 30 30 26 30 28 33 30 30 33 30 30 26 25 15
++33 30 30 33 30 30 26 25 15 33 30 30 33 30 30 33 30 30 34 30 15 23 20 24
++33 30 30 23 20 24 23 20 24 26 25 15 23 20 24 33 30 30 34 30 15 26 30 28
++33 30 30 33 30 30 32 39 24 36 35 37 36 35 37 47 44 42 47 44 42 48 44 48
++48 50 48 48 44 48 48 50 48 48 50 48 53 46 48 54 57 61 48 44 48 48 50 48
++
++23 20 24 23 20 24 26 24 32 22 25 24 22 25 24 22 25 24 22 25 24 12 18 30
++15 22 17 22 25 24 12 18 30 22 25 24 22 25 24 25 30 29 26 30 28 30 30 34
++26 30 28 33 30 30 26 24 32 33 30 30 26 24 32 33 30 30 26 30 28 26 25 15
++26 25 15 23 20 24 23 20 24 22 25 24 23 18 22 23 18 22 14 16 17 23 18 22
++17 12 17 14 16 17 17 12 17 7 12 13 17 12 17 7 12 13 7 10 17 13 4 7
++7 12 13 7 12 13 3 4 9 13 4 7 3 4 9 3 4 9 13 4 7 7 12 13
++7 12 13 7 12 13 15 17 7 15 17 7 15 22 17 22 24 13 22 25 24 32 39 24
++33 39 38 32 39 24 32 39 24 32 39 24 47 47 21 35 46 43 49 74 23 43 55 48
++49 74 23 64 70 48 49 74 23 57 86 47 64 70 48 57 86 47 49 74 23 57 86 47
++64 97 47 57 86 47 64 97 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47
++51 73 47 57 86 47 51 73 47 51 73 47 49 74 23 49 74 23 35 46 43 49 74 23
++32 39 24 49 74 23 32 39 24 23 31 15 23 31 15 23 30 35 23 31 15 15 22 17
++15 22 17 23 31 15 23 31 15 23 31 15 25 30 29 32 39 24 32 39 24 33 39 38
++42 47 42 42 47 42 43 55 48 43 55 48 54 57 61 50 61 48 53 63 61 53 63 61
++59 69 70 53 63 61 59 69 70 53 63 61 59 69 70 59 79 61 59 69 70 53 63 61
++59 69 70 53 63 61 53 63 61 50 61 48 45 57 61 43 55 48 43 55 48 35 46 43
++35 46 43 35 46 43 33 39 38 35 46 43 33 39 38 31 35 35 33 30 30 33 30 30
++36 35 37 33 30 30 32 39 24 33 30 30 53 35 17 33 30 30 52 30 15 33 30 30
++34 30 15 52 30 15 52 30 35 53 35 17 55 39 37 76 18 19 55 39 18 55 39 37
++55 39 18 76 46 20 76 18 19 76 46 20 88 30 18 76 46 20 88 30 18 76 46 20
++88 30 18 88 30 18 76 46 20 88 30 18 76 46 20 88 30 18 76 46 20 76 46 20
++76 18 19 76 46 20 76 46 20 88 30 18 59 36 42 76 46 20 76 46 20 76 46 20
++76 18 19 76 46 20 59 36 42 76 46 20 76 46 20 59 36 42 76 46 20 76 46 20
++59 36 42 76 46 20 59 36 42 55 39 18 76 46 20 55 39 37 55 39 37 76 46 20
++55 39 37 55 39 37 55 39 37 60 49 42 60 49 42 76 46 20 62 47 47 62 47 47
++60 49 42 60 49 42 60 49 42 60 49 42 60 49 42 76 44 53 76 46 20 63 55 45
++63 55 45 75 56 53 75 56 53 75 56 53 75 56 53 88 73 62 88 73 62 88 66 70
++88 83 74 88 66 70 88 69 84 88 83 74 101 83 74 88 66 70 88 83 74 101 83 74
++88 69 84 88 83 74 88 69 84 88 83 74 101 83 74 88 69 84 101 83 74 88 83 74
++88 66 70 88 83 74 88 83 74 88 83 74 88 83 74 88 83 74 88 83 74 88 66 70
++88 73 62 75 63 62 88 73 62 75 56 53 75 63 62 88 73 62 75 56 53 88 66 70
++88 73 62 88 66 70 88 73 62 101 60 73 88 73 62 88 66 70 88 73 62 88 66 70
++88 73 62 88 66 70 88 73 62 88 66 70 88 73 62 88 73 62 75 56 53 88 73 62
++88 66 70 88 44 51 88 73 62 75 56 53 88 66 70 75 56 53 75 56 53 75 56 53
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 88 44 51 75 56 53
++88 44 51 75 56 53 88 44 51 75 56 53 76 46 20 88 44 51 76 46 20 75 56 53
++76 46 20 88 44 51 76 46 20 88 44 51 76 46 20 88 44 51 76 46 20 60 49 42
++76 44 53 76 46 20 76 44 53 59 36 42 76 46 20 55 39 37 55 39 37 55 39 37
++53 35 37 53 35 37 52 30 35 55 39 18 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 23 20 24 26 24 32 26 24 32 26 24 32 22 23 31 23 20 24
++15 22 17 23 18 22 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24
++22 25 24 22 25 24 33 30 30 26 30 28 26 24 32 26 30 28 33 30 30 26 24 32
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 32 39 24 33 30 30 53 35 17
++33 30 30 36 35 37 53 35 37 36 35 37 53 35 37 55 39 37 55 39 37 52 30 35
++59 36 42 55 39 18 59 36 42 59 36 42 59 36 42 60 49 42 60 49 42 76 46 20
++88 44 51 75 56 53 88 44 51 75 56 53 88 44 51 88 73 62 88 44 51 88 73 62
++75 56 53 88 66 70 88 73 62 88 66 70 75 63 62 88 66 70 88 73 62 88 66 70
++75 72 67 75 72 67 75 63 62 75 63 62 65 63 61 75 63 62 65 63 61 59 55 55
++51 49 42 47 44 42 47 39 42 36 35 37 33 30 30 33 30 30 33 30 30 34 30 15
++22 25 24 23 20 24 14 16 17 23 18 22 23 18 22 22 25 24 23 20 24 23 20 24
++23 20 24 23 20 24 22 25 24 22 25 24 23 18 22 22 24 13 17 12 17 17 12 17
++15 22 17 23 18 22 23 20 24 23 18 22 23 20 24 33 30 30 36 35 37 47 44 42
++42 41 42 36 35 37 33 30 30 36 35 37 47 44 42 55 55 48 59 57 61 55 55 48
++42 41 42 36 35 37 36 35 37 36 35 37 33 30 30 33 30 32 47 44 42 51 49 42
++47 44 42 42 41 42 52 55 48 53 63 61 75 73 58 65 63 61 65 63 61 55 55 48
++52 55 48 48 50 48 52 55 48 51 49 42 47 44 42 47 44 42 47 39 42 36 35 37
++53 35 37 36 35 37 36 35 37 32 39 24 31 35 35 47 47 21 36 35 37 36 35 37
++32 39 24 53 35 37 42 38 42 47 47 21 42 38 42 47 47 21 36 35 37 47 39 42
++47 47 21 47 39 42 42 41 42 53 35 37 36 35 37 47 39 42 36 35 37 36 35 37
++47 47 21 36 35 37 36 35 37 36 35 37 53 35 37 36 35 37 36 35 37 47 47 21
++36 35 37 42 41 42 42 38 42 42 41 42 42 38 42 42 41 42 42 41 42 47 39 42
++47 44 42 48 44 48 48 44 48 48 50 48 57 43 51 59 55 55 59 55 55 65 57 61
++63 59 71 75 72 67 75 72 67 75 64 82 75 81 82 75 81 90 75 81 90 88 83 88
++88 83 88 88 83 88 88 83 88 88 83 88 77 90 100 88 83 88 88 83 88 88 83 88
++88 83 88 77 90 100 75 81 90 77 90 100 77 90 100 88 83 88 77 90 100 95 91 100
++77 90 100 95 91 100 95 95 116 95 91 100 95 91 100 95 91 100 77 90 100 95 91 100
++95 91 100 95 95 116 95 91 100 77 91 115 95 91 100 95 91 100 95 91 100 77 91 115
++77 90 100 77 91 115 75 81 90 77 90 100 77 90 100 75 81 90 61 78 101 75 81 90
++75 81 90 60 81 83 75 64 82 60 63 87 63 59 71 63 59 71 59 57 61 54 57 61
++54 57 61 48 50 48 48 44 48 42 41 42 36 35 37 53 35 37 33 30 30 52 30 35
++32 39 24 33 30 30 36 35 37 36 35 37 53 35 37 36 35 37 53 35 37 36 35 37
++52 30 35 33 30 30 36 35 37 53 35 37 33 30 30 33 30 30 52 30 35 33 30 30
++33 30 30 33 30 30 52 30 35 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30
++33 30 30 52 30 35 33 30 30 33 30 32 33 30 30 52 30 35 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 28 13 18 33 30 30
++28 13 18 33 30 30 23 20 24 33 30 30 33 30 30 23 20 24 26 24 32 26 24 32
++23 20 24 33 30 30 33 30 30 33 30 30 22 25 24 33 30 30 22 25 24 26 30 28
++26 30 28 26 30 28 33 30 30 33 30 30 32 39 24 33 30 30 33 30 32 32 39 24
++36 35 37 36 35 37 33 30 32 33 30 32 36 35 37 36 35 37 36 35 37 36 35 37
++33 39 38 37 35 43 36 35 37 33 39 38 42 41 42 42 47 42 47 44 42 47 44 42
++48 50 48 48 50 48 59 55 55 55 55 48 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 55 55 48 55 55 48 59 55 55 59 55 55 55 55 48
++55 55 48 53 46 48 52 55 48 51 49 42 53 46 48 53 46 48 51 49 42 47 49 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 47 49 42
++47 49 42 48 50 48 48 50 48 48 50 48 43 42 50 42 47 42 43 42 50 42 41 42
++42 41 42 34 40 43 37 35 43 37 35 43 36 35 37 33 30 36 31 35 35 31 35 35
++30 30 34 26 30 28 26 30 28 33 30 30 22 25 24 33 30 30 26 30 28 33 30 30
++22 25 24 33 30 30 23 20 24 33 30 30 26 30 28 26 30 28 34 30 15 22 25 24
++33 30 30 22 25 24 33 30 30 22 25 24 26 30 28 22 25 24 26 24 32 22 25 24
++22 23 31 23 20 24 22 25 24 22 23 31 22 23 31 22 25 24 12 18 30 22 25 24
++22 25 24 22 25 24 23 20 24 12 18 20 22 25 24 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 26 24 32 23 20 24 26 30 28 23 20 24 26 30 28 23 20 24
++33 30 30 26 30 28 23 20 24 33 30 30 22 25 24 33 30 30 23 20 24 33 30 30
++23 20 24 26 30 28 22 25 24 23 20 24 23 18 22 23 20 24 23 20 24 12 18 20
++23 18 22 14 16 17 23 18 22 12 18 20 23 18 22 23 18 22 15 22 17 23 18 22
++23 20 24 23 20 24 26 25 15 26 30 28 26 25 15 33 30 30 23 20 24 33 30 30
++23 20 24 33 30 30 33 30 30 26 24 32 34 30 15 33 30 30 26 24 32 33 30 30
++26 25 15 23 20 24 34 30 15 26 24 32 26 25 15 33 30 30 23 20 24 34 30 15
++26 30 28 33 30 30 33 30 30 33 30 30 36 35 37 42 38 42 47 44 42 42 41 42
++48 44 48 47 44 42 48 44 48 48 44 48 48 50 48 53 46 48 53 46 48 53 46 48
++
++23 20 24 22 25 24 22 25 24 23 20 24 23 20 24 23 20 24 22 25 24 15 22 17
++22 25 24 15 22 17 22 25 24 22 25 24 25 30 29 22 25 24 22 23 31 26 30 28
++26 24 32 26 30 28 26 24 32 33 30 30 26 30 28 23 20 24 26 25 15 23 20 24
++22 25 24 33 30 30 23 20 24 23 20 24 23 20 24 22 24 13 14 16 17 14 16 17
++14 16 17 14 16 17 17 12 17 7 10 17 7 12 13 13 4 7 7 10 17 7 10 17
++13 4 7 7 12 13 3 4 9 3 4 9 6 15 6 13 4 7 6 15 6 7 12 13
++13 4 7 15 17 7 14 16 17 22 24 13 22 24 13 22 25 24 26 30 28 29 35 19
++32 39 24 32 39 24 35 46 43 47 47 21 35 46 43 49 74 23 42 47 42 49 74 23
++50 61 48 51 73 47 51 73 47 64 70 48 49 74 23 57 86 47 66 86 47 57 86 47
++49 74 23 64 97 47 49 74 23 64 97 47 49 74 23 57 86 47 57 86 47 57 86 47
++57 86 47 49 74 23 51 73 47 49 74 23 35 47 50 49 74 23 35 46 43 32 39 24
++32 39 24 32 39 24 32 39 24 23 31 15 23 31 15 23 31 15 15 22 17 23 31 15
++15 22 17 23 31 15 23 30 35 32 39 24 25 30 29 32 39 24 33 39 38 35 46 43
++35 46 43 42 47 42 42 47 42 43 55 48 43 55 48 45 57 61 54 57 61 54 57 61
++53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61
++53 63 61 53 63 61 50 61 48 45 57 61 43 55 48 43 55 48 42 47 42 35 46 43
++35 46 43 35 46 43 33 39 38 33 39 38 33 39 38 31 35 35 32 39 24 33 30 30
++33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 34 30 15
++53 35 17 33 30 30 52 30 15 52 30 35 52 30 15 52 30 35 55 39 18 76 18 19
++76 46 20 76 18 19 76 46 20 76 18 19 76 46 20 76 18 19 76 46 20 88 30 18
++88 30 18 76 46 20 88 30 18 76 46 20 76 18 19 76 46 20 76 18 19 88 44 51
++76 46 20 76 18 19 76 46 20 76 46 20 88 30 18 76 46 20 76 18 19 76 46 20
++55 39 18 76 18 19 76 46 20 76 18 19 59 36 42 76 46 20 59 36 42 76 46 20
++59 36 42 55 39 18 76 46 20 59 36 42 76 18 19 55 39 18 76 46 20 55 39 37
++59 36 42 76 46 20 59 36 42 55 39 37 60 49 42 62 47 47 60 49 42 63 55 45
++60 49 42 63 55 45 60 49 42 63 55 45 76 46 20 63 55 45 63 55 45 76 44 53
++63 55 45 75 56 53 75 56 53 75 56 53 75 56 53 88 73 62 88 73 62 88 66 70
++88 66 70 88 83 74 101 83 74 88 66 70 88 83 74 101 83 74 88 69 84 101 83 74
++101 83 74 88 69 84 101 83 74 88 69 84 101 83 74 88 83 74 88 69 84 88 83 74
++88 83 74 88 69 84 88 83 74 88 66 70 88 83 74 88 83 74 88 66 70 75 81 69
++88 66 70 88 73 62 75 63 62 88 73 62 88 73 62 75 56 53 88 73 62 88 66 70
++88 73 62 88 66 70 88 73 62 88 73 62 88 66 70 88 66 70 101 83 74 88 66 70
++88 66 70 75 72 67 88 66 70 75 72 67 75 63 62 75 56 53 88 66 70 75 56 53
++88 66 70 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 88 73 62 75 56 53
++75 56 53 88 66 70 75 56 53 75 56 53 75 56 53 76 46 20 75 56 53 76 46 20
++76 44 53 76 46 20 75 56 53 76 46 20 75 56 53 88 44 51 75 56 53 76 46 20
++88 44 51 75 56 53 76 46 20 88 44 51 76 46 20 76 44 53 76 46 20 76 44 53
++76 46 20 59 36 42 62 47 47 76 46 20 59 36 42 55 39 37 55 39 37 55 39 18
++47 39 42 36 35 37 47 47 21 36 35 37 33 30 30 36 35 37 32 39 24 33 30 30
++26 30 28 26 30 28 33 30 30 22 25 24 26 24 32 26 24 32 23 20 24 22 25 24
++23 20 24 23 20 24 12 18 20 23 20 24 23 20 24 22 25 24 23 18 22 22 25 24
++22 25 24 33 30 30 26 30 28 33 30 30 26 30 28 33 30 30 26 30 28 33 30 30
++26 30 28 33 30 30 29 35 19 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++36 35 37 53 35 17 33 30 30 55 39 18 52 30 35 52 30 35 55 39 18 55 39 18
++52 30 35 55 39 18 59 36 42 76 46 20 60 49 42 76 46 20 76 44 53 76 44 53
++75 56 53 88 44 51 75 56 53 75 56 53 88 73 62 75 56 53 88 73 62 88 66 70
++88 73 62 88 73 62 75 63 62 88 66 70 88 73 62 88 66 70 88 73 62 75 72 67
++88 66 70 75 72 67 75 63 62 75 63 62 75 63 62 75 63 62 59 55 55 55 55 48
++42 38 42 33 30 30 34 30 15 26 25 15 26 30 28 26 25 15 26 25 15 23 20 24
++26 30 28 23 20 24 23 18 22 14 16 17 14 16 17 23 20 24 22 25 24 22 25 24
++26 30 28 33 30 30 33 30 30 33 30 30 26 30 28 23 18 22 17 12 17 14 16 17
++17 12 17 23 18 22 23 18 22 26 25 15 22 25 24 26 30 28 31 35 35 42 41 42
++42 41 42 36 35 37 33 30 30 33 30 30 36 35 37 55 55 48 59 57 61 55 55 48
++47 44 42 42 41 42 36 35 37 42 41 42 32 39 24 36 35 37 42 38 42 42 41 42
++36 35 37 32 39 24 53 46 48 65 63 61 65 63 61 65 63 61 50 61 48 52 55 48
++47 44 42 42 41 42 51 49 42 51 49 42 47 44 42 47 39 42 32 39 24 53 35 37
++32 39 24 33 30 30 32 39 24 36 35 37 36 35 37 36 35 37 36 35 37 32 39 24
++47 39 42 36 35 37 32 39 24 47 39 42 36 35 37 47 39 42 47 39 42 47 44 42
++36 35 37 47 39 42 47 47 21 36 35 37 42 41 42 47 47 21 36 35 37 53 35 37
++36 35 37 36 35 37 47 47 21 42 38 42 36 35 37 53 35 37 42 41 42 47 39 42
++47 39 42 32 39 24 53 35 37 36 35 37 55 39 37 36 35 37 47 44 42 42 41 42
++47 39 42 47 44 42 48 44 48 48 44 48 48 44 48 53 46 48 59 55 55 59 57 61
++65 57 61 63 59 71 75 72 67 75 64 82 75 81 76 75 64 82 88 83 88 75 81 90
++88 83 88 77 90 100 88 83 88 77 90 100 88 83 88 77 90 100 75 81 90 78 98 90
++75 81 90 78 98 90 75 81 90 77 90 100 88 83 88 95 91 100 95 91 100 95 91 100
++95 95 116 95 91 100 95 95 116 95 91 100 95 95 116 77 91 115 95 91 100 95 95 116
++95 95 116 77 91 115 95 91 100 95 95 116 95 91 100 77 91 115 95 91 100 77 91 115
++95 91 100 75 81 90 77 91 115 75 81 90 77 90 100 77 90 100 75 81 90 75 81 90
++75 81 90 75 81 90 75 64 82 60 81 83 63 59 71 63 59 71 63 59 71 54 57 61
++57 43 64 48 50 48 43 42 50 42 41 42 36 35 37 32 39 24 36 35 37 33 30 30
++33 30 30 52 30 35 32 39 24 52 30 35 32 39 24 53 35 37 36 35 37 52 30 35
++36 35 37 52 30 35 36 35 37 33 30 30 52 30 35 33 30 30 33 30 30 52 30 35
++33 30 30 52 30 35 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30 52 30 35
++33 30 30 33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++49 13 16 33 30 30 33 30 30 28 13 18 33 30 30 33 30 30 26 25 15 33 30 30
++23 20 24 33 30 30 33 30 30 33 30 30 28 13 18 26 30 28 23 20 24 26 30 28
++33 30 30 23 20 24 22 25 24 33 30 30 23 20 24 26 30 28 22 25 24 22 25 24
++33 30 30 26 30 28 33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 32 33 30 32 33 30 32 33 30 36 36 35 37 36 35 37 36 35 37
++36 35 37 33 39 38 36 35 37 42 41 42 42 41 42 42 41 42 42 47 42 47 44 42
++48 50 48 48 50 48 55 55 48 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 55 55 48 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 55 55 48 55 55 48 59 55 55 55 55 48 53 46 48 51 49 42 47 49 42
++47 49 42 47 44 42 47 49 42 47 44 42 47 44 42 47 49 42 51 49 42 51 49 42
++48 50 48 48 44 48 43 42 50 48 50 48 48 50 48 48 44 48 43 42 50 43 42 50
++42 41 42 43 42 50 42 41 42 34 40 43 34 40 43 36 35 37 31 35 35 33 30 32
++33 30 30 26 30 28 26 30 28 26 30 28 26 30 28 23 20 24 33 30 30 23 20 24
++26 30 28 33 30 30 33 30 30 26 30 28 34 30 15 33 30 30 26 30 28 33 30 30
++26 30 28 33 30 30 26 30 28 33 30 30 23 20 24 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 23 20 24 22 25 24 22 25 24 12 18 30 22 25 24 22 25 24
++22 25 24 12 18 30 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 23 20 24
++23 20 24 22 25 24 22 25 24 22 25 24 26 30 28 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 33 30 30 23 20 24 33 30 30 23 20 24 22 25 24 26 30 28
++23 20 24 23 20 24 23 20 24 23 20 24 26 25 15 23 18 22 23 20 24 23 20 24
++15 22 17 12 18 20 14 16 17 14 16 17 15 22 17 23 18 22 15 22 17 23 18 22
++22 25 24 23 20 24 23 20 24 26 30 28 26 30 28 33 30 30 34 30 15 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 34 30 15 23 20 24
++33 30 30 23 20 24 23 20 24 26 25 15 23 20 24 26 25 15 33 30 30 23 20 24
++33 30 30 26 30 28 33 30 30 33 30 30 36 35 37 53 35 37 36 35 37 42 41 42
++42 41 42 47 44 42 48 44 48 48 44 48 48 50 48 48 44 48 48 50 48 48 44 48
++
++23 20 24 23 20 24 23 20 24 23 20 24 12 18 20 22 25 24 12 18 20 22 25 24
++15 22 17 12 18 30 22 25 24 12 18 20 22 25 24 22 25 24 22 25 24 22 25 24
++23 20 24 26 30 28 22 25 24 33 30 30 23 20 24 33 30 30 26 30 28 22 25 24
++23 18 22 23 20 24 26 25 15 22 25 24 23 18 22 23 18 22 17 12 17 14 16 17
++14 16 17 14 16 17 17 12 17 13 4 7 7 10 17 7 10 17 13 4 7 7 10 17
++7 12 13 13 4 7 3 4 9 13 4 7 3 4 9 3 4 9 13 4 7 7 12 13
++7 12 13 7 12 13 14 16 17 15 22 17 15 22 17 26 25 15 22 25 24 32 39 24
++32 39 24 32 39 24 47 47 21 32 39 24 43 55 48 47 47 21 47 49 42 50 61 48
++50 61 48 49 74 23 51 73 47 57 86 47 75 73 36 57 86 47 66 86 47 66 86 47
++57 86 47 64 97 47 57 86 47 57 86 47 64 97 47 57 86 47 49 74 23 57 86 47
++57 86 47 51 73 47 51 73 47 51 73 47 49 74 23 35 46 43 49 74 23 32 39 24
++49 74 23 32 39 24 23 31 15 23 31 15 23 31 15 15 22 17 23 31 15 15 22 17
++23 30 35 15 22 17 23 30 35 23 31 15 25 30 29 23 30 35 33 39 38 33 39 38
++35 46 43 42 47 42 42 47 42 43 55 48 45 57 61 52 55 48 45 57 61 50 61 48
++53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61
++53 63 61 45 57 61 45 57 61 43 55 48 48 50 48 43 55 48 35 47 50 35 46 43
++35 46 43 33 39 38 33 39 38 28 35 38 32 39 24 31 35 35 33 30 32 31 35 35
++33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 34 30 15 33 30 30 34 30 15
++33 30 30 52 30 15 52 30 15 52 30 35 55 39 18 76 18 19 55 39 18 55 39 18
++76 18 19 55 39 18 55 39 18 76 18 19 55 39 18 76 46 20 76 18 19 76 46 20
++76 18 19 76 46 20 76 18 19 76 46 20 76 18 19 76 46 20 76 46 20 76 18 19
++76 46 20 76 46 20 76 18 19 76 46 20 55 39 18 76 18 19 76 46 20 52 30 35
++76 46 20 59 36 42 55 39 18 55 39 37 55 39 18 76 18 19 76 46 20 59 36 42
++76 46 20 59 36 42 55 39 18 55 39 37 76 46 20 55 39 37 55 39 37 76 46 20
++55 39 37 55 39 37 55 39 37 60 49 42 76 46 20 60 49 42 60 49 42 62 47 47
++76 46 20 63 55 45 63 55 45 76 44 53 62 47 47 62 47 47 63 55 45 60 49 42
++63 55 45 63 55 45 75 56 53 75 56 53 75 56 53 75 63 62 88 73 62 88 83 74
++88 66 70 88 83 74 88 69 84 101 83 74 88 83 74 88 83 74 101 83 74 88 69 84
++88 83 88 101 83 74 88 83 74 88 83 74 101 83 74 88 69 84 101 83 74 88 83 74
++88 66 70 88 83 74 88 83 74 88 69 84 88 83 74 88 69 84 88 83 74 88 83 74
++75 72 67 88 66 70 88 66 70 75 63 62 88 73 62 88 66 70 88 73 62 88 73 62
++88 66 70 88 66 70 88 66 70 88 66 70 101 83 74 88 83 74 88 66 70 88 66 70
++88 83 74 88 66 70 88 73 62 75 63 62 88 66 70 75 56 53 88 66 70 75 56 53
++88 66 70 75 63 62 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53
++75 56 53 76 44 53 63 55 45 76 44 53 63 55 45 76 44 53 60 49 42 76 44 53
++76 44 53 76 46 20 88 44 51 76 44 53 76 46 20 88 44 51 76 46 20 75 56 53
++76 46 20 76 44 53 76 46 20 76 44 53 76 46 20 76 44 53 76 46 20 60 49 42
++59 36 42 76 46 20 60 49 42 59 36 42 55 39 37 55 39 37 55 39 37 53 35 37
++55 39 18 36 35 37 52 30 35 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30
++26 24 32 33 30 30 26 30 28 26 24 32 22 25 24 26 24 32 23 20 24 22 25 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 22 25 24 22 25 24
++22 25 24 26 30 28 26 24 32 26 30 28 33 30 30 22 25 24 33 30 30 26 24 32
++33 30 30 26 30 28 33 30 30 33 30 30 32 39 24 33 30 30 33 30 30 32 39 24
++33 30 30 33 30 30 33 30 30 36 35 37 36 35 37 47 47 21 52 30 35 52 30 35
++55 39 37 59 36 42 55 39 37 59 36 42 59 36 42 62 47 47 60 49 42 76 46 20
++63 55 45 75 56 53 75 56 53 75 56 53 75 63 62 75 56 53 88 66 70 75 63 62
++88 66 70 88 66 70 88 73 62 88 66 70 88 66 70 88 83 74 88 66 70 88 83 74
++75 72 67 88 66 70 75 72 67 75 72 67 75 72 67 65 63 61 65 55 54 55 55 48
++47 44 42 36 35 37 33 30 30 26 30 28 33 30 30 33 30 30 26 30 28 23 20 24
++26 25 15 14 16 17 17 12 17 17 12 17 14 16 17 23 18 22 14 16 17 23 18 22
++23 18 22 23 20 24 26 30 28 33 30 30 26 30 28 23 20 24 23 18 22 14 16 17
++17 12 17 15 17 7 17 12 17 23 18 22 26 24 32 33 30 30 26 30 28 33 30 30
++33 30 32 33 30 32 33 30 30 26 25 15 33 30 30 47 44 42 55 55 48 59 55 55
++48 50 48 51 49 42 47 49 42 47 44 42 42 41 42 42 41 42 42 41 42 36 35 37
++36 35 37 47 44 42 55 55 48 65 63 61 52 55 48 51 49 42 47 44 42 42 47 42
++36 35 37 36 35 37 47 44 42 51 49 42 51 49 42 47 44 42 53 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 32 39 24 36 35 37 47 47 21 36 35 37 42 41 42
++36 35 37 55 39 37 42 41 42 53 35 37 47 39 42 47 47 21 47 39 42 47 47 21
++55 39 37 47 39 42 42 41 42 47 47 21 36 35 37 47 39 42 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 47 47 21 42 41 42 32 39 24 47 39 42
++32 39 24 47 39 42 36 35 37 36 35 37 36 35 37 47 47 21 36 35 37 36 35 37
++36 35 37 36 35 37 42 38 42 42 41 42 47 44 42 48 44 48 53 46 48 55 55 48
++59 55 55 65 63 61 65 63 61 63 59 71 75 72 67 75 81 76 75 64 82 75 81 82
++75 81 82 88 83 88 75 81 90 88 83 88 75 81 90 88 83 88 88 83 88 75 81 90
++88 83 88 77 90 100 77 90 100 95 91 100 77 90 100 77 90 100 95 91 100 77 91 115
++94 105 108 94 105 108 94 105 108 95 95 116 95 95 116 94 105 108 95 95 116 95 91 100
++95 95 116 95 95 116 95 95 116 95 95 116 95 95 116 95 95 116 95 91 100 95 95 116
++95 91 100 95 95 116 77 91 115 95 91 100 77 91 115 77 91 115 77 90 100 61 78 101
++75 81 90 75 81 90 75 64 82 75 81 82 75 64 82 59 69 70 63 59 71 59 57 61
++54 57 61 54 57 61 48 44 48 47 44 42 42 41 42 53 35 37 36 35 37 53 35 17
++36 35 37 33 30 30 33 30 30 36 35 37 52 30 35 36 35 37 36 35 37 52 30 35
++36 35 37 36 35 37 52 30 35 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30
++52 30 35 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30 52 30 35 33 30 30
++33 30 30 52 30 35 33 30 30 33 30 30 52 30 35 33 30 30 52 30 35 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 23 20 24
++33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 26 24 32
++22 25 24 26 24 32 33 30 30 22 25 24 33 30 30 22 25 24 33 30 30 23 20 24
++26 30 28 26 30 28 26 30 28 33 30 30 26 30 28 33 30 30 31 35 35 33 30 30
++31 35 35 33 30 30 33 30 32 33 30 32 33 30 36 31 35 35 33 30 36 36 35 37
++33 39 38 36 35 37 42 41 42 36 35 37 42 38 42 42 41 42 47 44 42 47 44 42
++48 50 48 48 50 48 59 55 55 54 57 61 59 55 55 59 57 61 65 63 61 59 57 61
++59 57 61 59 57 61 59 57 61 65 63 61 65 63 61 65 63 61 59 57 61 65 63 61
++65 63 61 59 55 55 59 55 55 59 55 55 59 55 55 55 55 48 48 50 48 53 46 48
++48 50 48 51 49 42 48 50 48 47 49 42 51 49 42 52 55 48 53 46 48 52 55 48
++48 50 48 48 50 48 54 57 61 48 44 48 54 57 61 48 50 48 48 50 48 48 50 48
++43 42 50 43 42 50 43 42 50 42 41 42 42 38 42 37 35 43 37 35 43 36 35 37
++31 35 35 30 30 34 33 30 30 26 24 32 26 30 28 33 30 30 23 20 24 33 30 30
++23 20 24 26 30 28 26 25 15 23 20 24 33 30 30 26 30 28 26 30 28 33 30 30
++26 30 28 26 30 28 26 24 32 26 30 28 26 30 28 26 24 32 22 25 24 22 23 31
++22 25 24 23 20 24 22 25 24 22 23 31 22 25 24 22 25 24 12 18 30 22 25 24
++22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24
++23 20 24 26 24 32 23 20 24 26 30 28 23 20 24 26 30 28 23 20 24 33 30 30
++23 20 24 33 30 30 23 20 24 26 30 28 22 25 24 33 30 30 23 20 24 33 30 30
++23 20 24 33 30 30 22 25 24 23 20 24 23 18 22 23 20 24 15 22 17 23 20 24
++23 20 24 12 18 20 23 18 22 14 16 17 23 18 22 15 22 17 23 18 22 23 18 22
++26 25 15 23 20 24 26 25 15 22 25 24 26 25 15 33 30 30 26 24 32 33 30 30
++33 30 30 34 30 15 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 23 20 24
++34 30 15 23 20 24 34 30 15 23 20 24 26 25 15 23 20 24 26 25 15 26 25 15
++33 30 30 29 35 19 33 30 30 33 30 30 32 39 24 36 35 37 36 35 37 42 41 42
++42 41 42 42 41 42 42 41 42 48 44 48 48 44 48 48 44 48 48 44 48 48 44 48
++
++12 18 20 23 18 22 12 18 20 23 18 22 14 16 17 23 18 22 12 18 20 12 18 20
++12 18 20 15 22 17 15 22 17 12 18 30 22 25 24 23 20 24 23 20 24 23 20 24
++22 25 24 22 25 24 22 25 24 33 30 30 23 20 24 26 30 28 23 18 22 23 20 24
++23 20 24 23 18 22 23 20 24 23 18 22 23 18 22 14 16 17 17 12 17 14 16 17
++14 16 17 7 12 13 7 12 13 7 10 17 17 12 17 7 12 13 7 10 17 13 4 7
++3 4 9 7 12 13 3 4 9 6 15 6 13 4 7 6 15 6 7 12 13 13 4 7
++7 12 13 15 17 7 17 12 17 17 12 17 22 24 13 22 25 24 26 25 15 29 35 19
++32 39 24 32 39 24 35 46 43 47 47 21 49 74 23 35 46 43 49 74 23 50 61 48
++49 74 23 64 70 48 64 70 48 75 73 36 57 86 47 66 86 47 66 86 47 57 86 47
++57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47
++51 73 47 49 74 23 51 73 47 49 74 23 35 47 50 49 74 23 32 39 24 32 39 24
++23 31 15 23 31 15 23 31 15 23 31 15 23 31 15 15 22 17 15 22 17 15 22 17
++15 22 17 23 31 15 23 30 35 25 30 29 23 30 35 32 39 24 33 39 38 35 46 43
++42 41 42 35 46 43 43 42 50 43 55 48 43 55 48 45 57 61 45 57 61 45 57 61
++54 57 61 53 63 61 53 63 61 53 63 61 46 59 71 45 57 61 45 57 61 45 57 61
++45 57 61 45 57 61 45 57 61 43 42 50 35 47 50 35 47 50 35 47 50 34 40 43
++34 40 43 33 39 38 28 35 38 32 39 24 25 30 29 32 39 24 26 30 28 33 30 32
++33 30 30 33 30 30 29 35 19 33 30 30 34 30 15 33 30 30 52 30 15 28 13 18
++34 30 15 52 30 15 52 30 35 52 30 15 52 30 35 59 36 42 76 18 19 55 39 18
++52 30 35 76 46 20 76 18 19 76 46 20 76 18 19 76 46 20 76 46 20 76 18 19
++76 46 20 76 46 20 76 46 20 76 18 19 76 46 20 76 18 19 76 46 20 59 36 42
++88 30 18 55 39 18 76 46 20 76 18 19 55 39 37 76 46 20 55 39 18 76 46 20
++53 35 17 76 18 19 55 39 37 76 46 20 52 30 35 55 39 37 55 39 18 55 39 37
++76 46 20 52 30 35 76 46 20 55 39 37 55 39 18 59 36 42 76 46 20 55 39 37
++55 39 37 55 39 37 55 39 37 60 49 42 60 49 42 60 49 42 60 49 42 60 49 42
++63 55 45 62 47 47 63 55 45 60 49 42 60 49 42 60 49 42 60 49 42 63 55 45
++63 55 45 76 44 53 75 56 53 75 56 53 75 73 58 88 73 62 88 73 62 88 66 70
++88 83 74 88 69 84 101 83 74 88 83 74 88 83 74 101 83 74 88 83 88 101 83 74
++101 83 74 88 83 88 88 83 74 88 69 84 88 83 74 101 83 74 88 66 70 88 83 74
++88 83 74 88 66 70 88 83 74 88 83 74 88 69 84 88 83 74 88 83 74 88 69 84
++88 83 74 88 66 70 88 83 74 88 66 70 88 66 70 88 73 62 88 73 62 88 66 70
++88 66 70 101 83 74 88 83 74 88 69 84 88 83 74 88 66 70 88 69 84 88 83 74
++88 66 70 88 66 70 88 83 74 88 66 70 75 63 62 75 63 62 88 66 70 75 56 53
++75 56 53 75 56 53 75 56 53 75 56 53 76 44 53 75 56 53 62 47 47 76 44 53
++63 55 45 76 46 20 75 56 53 60 49 42 76 46 20 62 47 47 88 44 51 76 46 20
++76 44 53 60 49 42 76 46 20 76 44 53 76 44 53 76 46 20 76 44 53 76 46 20
++76 44 53 76 46 20 76 44 53 76 46 20 60 49 42 76 46 20 76 44 53 76 46 20
++59 36 42 62 47 47 59 36 42 55 39 37 76 46 20 55 39 37 55 39 37 53 35 37
++53 35 37 36 35 37 33 30 30 32 39 24 33 30 30 33 30 30 33 30 30 30 30 34
++26 30 28 26 24 32 26 24 32 26 24 32 23 20 24 26 24 32 23 20 24 23 20 24
++23 20 24 12 18 20 23 20 24 15 22 17 23 20 24 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 26 30 28 26 30 28 26 24 32 26 30 28 26 24 32 33 30 30
++26 24 32 22 25 24 33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30
++32 39 24 33 30 30 52 30 35 32 39 24 52 30 35 33 30 30 36 35 37 47 47 21
++52 30 35 55 39 37 55 39 37 76 46 20 60 49 42 60 49 42 60 49 42 76 44 53
++63 55 45 76 44 53 75 56 53 75 56 53 75 63 62 75 63 62 75 63 62 88 66 70
++88 66 70 75 63 62 88 66 70 88 66 70 75 72 67 88 66 70 75 72 67 88 66 70
++75 72 67 75 63 62 75 63 62 65 63 61 65 63 61 65 55 54 59 55 55 51 49 42
++47 44 42 36 35 37 33 30 30 33 30 30 34 30 15 26 30 28 26 25 15 23 18 22
++23 18 22 26 25 15 23 18 22 23 18 22 22 25 24 23 18 22 17 12 17 14 16 17
++17 12 17 17 12 17 17 12 17 23 18 22 23 20 24 22 25 24 23 20 24 23 18 22
++14 16 17 17 12 17 14 16 17 15 17 7 23 20 24 23 20 24 23 18 22 23 18 22
++26 30 28 26 30 28 22 25 24 22 25 24 33 30 30 33 30 32 47 49 42 52 55 48
++52 55 48 55 55 48 48 50 48 47 44 42 47 44 42 47 49 42 47 44 42 36 35 37
++42 41 42 51 49 42 59 55 55 59 55 55 42 41 42 33 39 38 42 41 42 32 39 24
++32 39 24 36 35 37 51 49 42 55 55 48 55 55 48 51 49 42 36 35 37 47 47 21
++47 39 42 53 35 37 36 35 37 47 44 42 36 35 37 42 41 42 42 41 42 42 41 42
++55 39 37 42 41 42 47 44 42 47 39 42 42 41 42 47 39 42 47 39 42 42 41 42
++42 41 42 47 47 21 47 39 42 42 41 42 36 35 37 47 47 21 42 38 42 47 47 21
++36 35 37 32 39 24 52 30 35 36 35 37 47 39 42 32 39 24 53 35 37 36 35 37
++53 35 37 36 35 37 36 35 37 47 47 21 36 35 37 52 30 35 32 39 24 52 30 35
++32 39 24 36 35 37 52 30 35 36 35 37 42 38 42 47 44 42 47 44 42 53 46 48
++55 55 48 59 55 55 65 57 61 63 59 71 65 63 61 75 72 67 75 64 82 75 81 76
++75 64 82 75 81 82 75 81 90 75 81 90 75 81 90 88 83 88 75 81 90 88 83 88
++75 81 90 77 90 100 88 83 88 77 90 100 95 91 100 77 91 115 94 105 108 94 105 108
++94 105 108 95 95 116 95 95 116 94 105 108 95 95 116 94 105 108 95 95 116 94 105 108
++95 95 116 95 95 116 95 95 116 95 95 116 95 95 116 95 95 116 95 95 116 95 95 116
++77 91 115 95 95 116 77 91 115 77 91 115 95 91 100 77 90 100 77 91 115 75 81 90
++77 90 100 75 81 90 75 81 90 75 64 82 60 63 87 75 64 82 59 69 70 65 63 61
++59 57 61 57 43 64 48 50 48 43 42 50 47 39 42 36 35 37 36 35 37 36 35 37
++33 30 30 53 35 37 32 39 24 52 30 35 36 35 37 52 30 35 36 35 37 52 30 35
++36 35 37 52 30 35 36 35 37 52 30 35 32 39 24 33 30 30 33 30 30 52 30 35
++33 30 30 52 30 35 36 35 37 33 30 30 52 30 35 36 35 37 52 30 35 33 30 30
++52 30 35 33 30 30 52 30 35 33 30 30 52 30 35 33 30 30 33 30 30 52 30 35
++33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 34 30 15
++26 24 32 33 30 30 23 20 24 33 30 30 34 30 15 33 30 30 23 20 24 33 30 30
++33 30 30 22 25 24 26 30 28 22 25 24 33 30 30 22 25 24 22 25 24 33 30 30
++26 25 15 33 30 30 26 25 15 33 30 30 26 30 28 33 30 30 33 30 30 33 30 30
++32 39 24 33 30 30 33 30 30 30 30 34 36 35 37 33 30 36 36 35 37 36 35 37
++36 35 37 36 35 37 33 39 38 42 38 42 42 38 42 42 41 42 42 47 42 48 44 48
++48 50 48 54 57 61 54 57 61 59 57 61 59 57 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 64 70 48 59 57 61 59 55 55 59 55 55 52 55 48 53 46 48
++48 50 48 48 50 48 48 44 48 53 46 48 55 55 48 55 55 48 59 55 55 59 55 55
++59 55 55 54 57 61 59 55 55 54 57 61 53 46 48 54 57 61 45 57 61 48 44 48
++43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 42 38 42 37 35 43 37 35 43
++31 35 35 30 30 34 30 30 34 26 30 28 33 30 30 26 24 32 22 25 24 26 30 28
++23 20 24 34 30 15 22 25 24 33 30 30 26 30 28 33 30 30 34 30 15 26 24 32
++26 30 28 26 30 28 26 30 28 33 30 30 23 20 24 22 25 24 22 25 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 12 18 30 22 25 24 22 25 24
++12 18 20 22 25 24 22 25 24 23 20 24 22 25 24 12 18 20 22 25 24 23 20 24
++22 25 24 22 25 24 22 25 24 26 24 32 22 25 24 26 24 32 22 25 24 23 20 24
++26 25 15 26 24 32 22 25 24 26 30 28 23 20 24 33 30 30 23 20 24 22 25 24
++22 25 24 23 20 24 23 20 24 23 20 24 23 18 22 23 18 22 22 25 24 23 20 24
++12 18 20 23 18 22 14 16 17 12 18 20 23 18 22 15 22 17 23 18 22 15 22 17
++26 25 15 22 25 24 23 20 24 22 25 24 33 30 30 23 20 24 34 30 15 26 24 32
++26 25 15 33 30 30 33 30 30 33 30 30 23 20 24 33 30 30 34 30 15 26 24 32
++26 25 15 23 20 24 26 25 15 28 13 18 26 25 15 33 30 30 28 13 18 33 30 30
++26 25 15 23 20 24 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 42 38 42
++42 38 42 42 41 42 42 41 42 42 41 42 48 44 48 43 42 50 48 44 48 48 44 48
++
++17 12 17 12 18 20 17 12 17 14 16 17 14 16 17 14 16 17 15 22 17 12 18 20
++12 18 20 22 25 24 12 18 20 15 22 17 12 18 20 23 20 24 15 22 17 22 25 24
++23 20 24 22 25 24 22 25 24 23 18 22 33 30 30 22 25 24 23 20 24 26 25 15
++22 25 24 23 18 22 23 18 22 23 18 22 22 24 13 17 12 17 17 12 17 7 12 13
++17 12 17 7 12 13 17 12 17 17 12 17 7 10 17 13 4 7 3 4 9 7 12 13
++3 4 9 3 4 9 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13
++7 12 13 17 12 17 15 17 7 14 16 17 15 22 17 23 18 22 26 25 15 29 35 19
++32 39 24 32 39 24 32 39 24 32 39 24 35 46 43 47 47 21 50 61 48 47 49 42
++49 74 23 51 73 47 51 73 47 57 86 47 75 73 36 57 86 47 75 73 36 66 86 47
++57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 49 74 23 51 73 47
++57 86 47 49 74 23 35 46 43 49 74 23 35 46 43 49 74 23 32 39 24 32 39 24
++32 39 24 23 31 15 23 31 15 23 31 15 15 22 17 15 22 17 15 22 17 15 22 17
++15 22 17 12 18 30 15 22 17 23 31 15 25 30 29 23 30 35 33 39 38 33 39 38
++34 40 43 42 41 42 42 47 42 35 47 50 43 55 48 48 50 48 45 57 61 52 55 48
++45 57 61 45 57 61 45 57 61 45 57 61 54 57 61 45 57 61 45 57 61 45 57 61
++45 57 61 43 55 48 43 42 50 35 47 50 35 47 50 35 47 50 35 46 43 34 40 43
++33 39 38 31 35 35 28 35 38 31 35 35 25 30 29 26 30 28 33 30 30 26 30 28
++26 30 28 33 30 30 33 30 30 28 13 18 33 30 30 34 30 15 33 30 30 34 30 15
++33 30 30 34 30 15 52 30 15 52 30 15 55 39 18 76 18 19 55 39 18 55 39 18
++76 18 19 55 39 18 76 18 19 55 39 18 76 46 20 76 18 19 55 39 18 76 46 20
++76 18 19 76 46 20 76 18 19 76 46 20 76 46 20 76 46 20 76 18 19 76 46 20
++76 18 19 76 46 20 76 18 19 76 46 20 55 39 18 76 18 19 55 39 18 76 18 19
++52 30 35 76 46 20 55 39 18 52 30 35 76 46 20 52 30 35 76 46 20 55 39 18
++59 36 42 55 39 18 55 39 37 76 46 20 55 39 37 76 46 20 55 39 37 55 39 37
++55 39 37 76 46 20 60 49 42 55 39 37 60 49 42 60 49 42 60 49 42 60 49 42
++60 49 42 63 55 45 60 49 42 60 49 42 60 49 42 76 46 20 60 49 42 63 55 45
++63 55 45 63 55 45 75 56 53 75 56 53 75 63 62 88 66 70 88 73 62 88 66 70
++88 83 74 101 83 74 88 83 88 101 83 74 88 83 74 88 69 84 101 83 74 88 83 88
++101 83 74 88 83 88 101 83 74 88 83 74 88 83 74 88 69 84 88 83 74 88 69 84
++88 83 74 88 83 74 88 69 84 101 83 74 88 83 88 101 83 74 88 83 88 88 83 74
++88 66 70 88 83 74 88 66 70 88 66 70 88 73 62 88 73 62 88 66 70 88 73 62
++88 66 70 88 66 70 88 66 70 101 83 74 88 69 84 101 83 74 88 66 70 88 83 74
++88 66 70 88 83 74 88 66 70 88 66 70 88 66 70 75 63 62 75 56 53 88 66 70
++75 63 62 76 44 53 75 56 53 76 44 53 75 56 53 63 55 45 76 44 53 63 55 45
++63 55 45 62 47 47 60 49 42 62 47 47 62 47 47 76 46 20 76 44 53 60 49 42
++76 44 53 76 46 20 76 44 53 62 47 47 76 46 20 76 44 53 76 46 20 59 36 42
++76 46 20 59 36 42 76 46 20 59 36 42 76 46 20 59 36 42 76 46 20 59 36 42
++59 36 42 76 46 20 55 39 37 55 39 37 55 39 37 55 39 37 53 35 37 55 39 37
++33 30 30 52 30 35 53 35 17 36 35 37 33 30 30 33 30 30 33 30 30 30 30 34
++33 30 32 26 24 32 26 24 32 26 24 32 23 20 24 22 25 24 22 23 31 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 22 25 24 22 25 24
++22 25 24 23 20 24 23 18 22 33 30 30 22 25 24 22 25 24 23 20 24 33 30 30
++22 25 24 33 30 30 22 25 24 26 25 15 33 30 30 26 30 28 29 35 19 26 30 28
++33 30 30 34 30 15 33 30 30 33 30 30 32 39 24 52 30 35 33 30 30 52 30 35
++53 35 37 55 39 37 59 36 42 60 49 42 60 49 42 59 36 42 76 46 20 60 49 42
++76 44 53 63 55 45 75 56 53 75 56 53 75 56 53 75 59 67 75 56 53 75 63 62
++88 66 70 75 63 62 88 66 70 75 72 67 88 66 70 75 63 62 75 63 62 75 63 62
++65 63 61 65 55 54 63 55 51 59 55 55 63 55 51 59 55 55 51 49 42 47 39 42
++33 30 30 33 30 30 34 30 15 33 30 30 22 25 24 22 24 13 23 18 22 22 24 13
++23 20 24 22 25 24 22 25 24 26 30 28 33 30 30 22 25 24 22 25 24 17 12 17
++15 17 7 13 4 7 13 4 7 6 15 6 17 12 17 23 20 24 22 25 24 23 18 22
++15 17 7 14 16 17 17 12 17 17 12 17 15 17 7 14 16 17 17 12 17 14 16 17
++23 18 22 23 20 24 23 20 24 23 20 24 26 25 15 33 30 30 42 41 42 42 41 42
++47 44 42 53 46 48 48 50 48 48 50 48 47 49 42 47 44 42 47 49 42 47 44 42
++42 41 42 52 55 48 48 50 48 47 49 42 33 39 38 33 30 30 32 39 24 33 30 30
++33 30 30 42 41 42 52 55 48 59 55 55 55 55 48 55 55 48 51 49 42 47 44 42
++47 44 42 42 41 42 47 49 42 42 47 42 47 49 42 47 44 42 42 41 42 42 41 42
++42 41 42 47 47 21 47 44 42 47 44 42 47 47 21 47 39 42 47 39 42 47 47 21
++47 39 42 47 39 42 42 41 42 47 47 21 47 39 42 47 39 42 36 35 37 42 38 42
++47 39 42 36 35 37 36 35 37 47 47 21 32 39 24 53 35 37 33 30 30 36 35 37
++32 39 24 36 35 37 36 35 37 42 38 42 36 35 37 36 35 37 36 35 37 33 30 30
++36 35 37 33 30 30 32 39 24 36 35 37 36 35 37 42 38 42 47 44 42 53 46 48
++53 46 48 59 55 55 59 57 61 65 63 61 63 59 71 59 69 70 75 72 67 75 64 82
++75 81 82 75 81 82 75 81 82 75 81 90 88 83 88 75 81 90 75 81 90 77 90 100
++88 83 88 77 90 100 77 90 100 95 91 100 77 90 100 95 95 116 94 105 108 95 95 116
++94 105 108 95 108 128 112 96 108 95 108 128 94 105 108 95 95 116 94 105 108 95 95 116
++94 105 108 95 108 128 95 108 128 95 95 116 95 95 116 95 95 116 95 95 116 95 95 116
++95 95 116 95 95 116 95 95 116 95 95 116 77 91 115 95 91 100 77 91 115 77 90 100
++75 81 90 75 81 90 75 81 90 75 81 90 75 81 82 59 69 70 75 64 82 63 59 71
++59 57 61 54 57 61 48 50 48 48 44 48 47 44 42 47 44 42 36 35 37 52 30 35
++36 35 37 32 39 24 52 30 35 36 35 37 53 35 37 36 35 37 53 35 37 36 35 37
++53 35 37 36 35 37 53 35 37 33 30 30 52 30 35 33 30 32 53 35 17 36 35 37
++53 35 37 36 35 37 52 30 35 36 35 37 52 30 35 36 35 37 52 30 35 36 35 37
++52 30 35 36 35 37 52 30 35 36 35 37 52 30 35 36 35 37 52 30 35 33 30 32
++52 30 35 36 35 37 52 30 35 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++28 13 18 33 30 30 23 20 24 33 30 30 26 24 32 33 30 30 26 30 28 33 30 30
++22 25 24 33 30 30 22 25 24 33 30 30 22 25 24 33 30 30 22 25 24 26 30 28
++23 20 24 26 30 28 26 30 28 26 30 28 33 30 30 26 25 15 26 30 28 26 30 28
++33 30 30 33 30 30 33 30 30 30 30 34 33 30 36 33 30 36 33 30 36 33 30 36
++31 35 35 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 42 41 42 48 50 48
++48 50 48 59 55 55 59 57 61 59 57 61 65 63 61 65 63 61 59 69 70 75 72 67
++63 59 71 75 72 67 59 69 70 65 63 61 65 63 61 59 69 70 75 72 67 65 63 61
++59 69 70 65 63 61 65 63 61 65 63 61 59 57 61 59 57 61 59 55 55 55 55 48
++55 55 48 48 50 48 48 50 48 53 46 48 52 55 48 59 55 55 59 55 55 59 55 55
++59 57 61 59 57 61 59 57 61 59 57 61 54 57 61 54 57 61 57 43 64 54 57 61
++45 57 61 48 50 48 48 50 48 43 42 50 43 42 50 43 42 50 43 42 50 37 35 43
++36 35 37 30 30 34 30 30 34 30 30 34 30 30 34 26 30 28 33 30 30 23 20 24
++33 30 30 22 25 24 22 25 24 34 30 15 26 30 28 33 30 30 26 30 28 26 30 28
++33 30 30 26 30 28 26 30 28 22 25 24 26 30 28 26 24 32 22 25 24 22 23 31
++22 25 24 23 20 24 22 25 24 22 25 24 22 23 31 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 12 18 20 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 26 24 32 22 25 24 26 24 32 26 30 28 23 20 24 33 30 30
++23 20 24 26 30 28 22 25 24 22 25 24 23 20 24 33 30 30 22 25 24 33 30 30
++23 20 24 33 30 30 22 25 24 23 18 22 22 24 13 23 20 24 12 18 20 23 20 24
++23 20 24 23 20 24 14 16 17 14 16 17 14 16 17 14 16 17 23 18 22 15 22 17
++23 18 22 23 18 22 26 25 15 23 20 24 26 25 15 33 30 30 23 20 24 33 30 30
++33 30 30 33 30 30 23 20 24 34 30 15 33 30 30 23 20 24 26 24 32 26 25 15
++33 30 30 34 30 15 26 24 32 34 30 15 23 20 24 26 25 15 23 20 24 34 30 15
++23 20 24 22 25 24 26 30 28 26 25 15 33 30 30 33 30 30 33 30 30 36 35 37
++36 35 37 36 35 37 42 38 42 42 41 42 42 41 42 48 44 48 48 44 48 48 44 48
++
++14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++14 16 17 12 18 20 23 18 22 12 18 20 23 18 22 15 22 17 23 20 24 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 23 18 22 22 25 24 23 18 22 14 16 17 17 12 17 14 16 17 17 12 17
++17 12 17 17 12 17 17 12 17 7 12 13 7 10 17 13 4 7 7 12 13 13 4 7
++7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 3 4 9 13 4 7 15 17 7
++17 12 17 7 12 13 15 17 7 14 16 17 22 24 13 22 24 13 22 25 24 26 30 28
++29 35 19 32 39 24 32 39 24 47 47 21 43 55 48 49 74 23 47 49 42 49 74 23
++51 49 42 51 73 47 75 73 36 51 73 47 57 86 47 57 86 47 57 86 47 57 86 47
++57 86 47 57 86 47 57 86 47 57 86 47 49 74 23 57 86 47 57 86 47 51 73 47
++51 73 47 51 73 47 49 74 23 35 46 43 32 39 24 32 39 24 32 39 24 32 39 24
++23 31 15 32 39 24 23 31 15 15 22 17 15 22 17 15 22 17 15 22 17 12 18 30
++15 22 17 23 30 35 15 22 17 23 30 35 23 30 35 28 35 38 33 39 38 33 39 38
++34 40 43 34 40 43 43 42 50 35 47 50 48 50 48 43 42 50 48 50 48 45 57 61
++43 42 50 45 57 61 45 57 61 45 57 61 45 57 61 45 57 61 43 42 50 45 57 61
++43 42 50 45 57 61 35 47 50 43 42 50 34 40 43 42 41 42 34 40 43 33 39 38
++31 35 35 31 35 35 30 30 34 26 30 28 30 30 34 26 30 28 26 30 28 26 30 28
++33 30 30 34 30 15 26 30 28 34 30 15 33 30 30 33 30 30 49 13 16 33 30 30
++52 30 15 49 13 16 52 30 35 52 30 15 52 30 35 53 35 17 53 35 17 76 18 19
++55 39 18 76 46 20 55 39 18 88 30 18 55 39 18 76 46 20 76 18 19 76 46 20
++55 39 18 76 46 20 52 30 35 76 46 20 76 18 19 55 39 37 76 46 20 59 36 42
++55 39 18 55 39 18 55 39 18 55 39 18 52 30 35 55 39 18 52 30 35 55 39 18
++55 39 37 55 39 18 52 30 35 55 39 18 52 30 35 55 39 18 59 36 42 52 30 35
++76 46 20 55 39 37 55 39 37 55 39 37 55 39 37 55 39 37 55 39 37 76 46 20
++55 39 37 55 39 37 55 39 37 55 39 18 60 49 42 60 49 42 60 49 42 60 49 42
++76 46 20 60 49 42 60 49 42 60 49 42 60 49 42 62 47 47 63 55 45 60 49 42
++75 56 53 63 55 45 75 56 53 75 73 58 75 63 62 88 73 62 75 72 67 88 83 74
++88 83 74 88 69 84 88 83 74 88 83 88 88 83 74 88 83 88 101 83 74 88 83 74
++88 83 88 101 83 74 88 83 88 88 69 84 88 83 74 101 83 74 88 83 74 88 66 70
++88 83 74 88 83 74 101 83 74 88 83 88 101 83 74 88 83 88 101 83 74 88 83 88
++101 83 74 88 69 84 88 66 70 88 83 74 88 66 70 88 83 74 88 66 70 101 83 74
++88 66 70 101 83 74 88 69 84 101 83 74 88 83 74 88 69 84 88 83 74 88 69 84
++88 83 74 88 66 70 75 72 67 88 83 74 88 66 70 75 63 62 88 66 70 75 56 53
++75 56 53 75 56 53 62 47 47 60 49 42 60 49 42 60 49 42 60 49 42 76 46 20
++76 44 53 60 49 42 76 46 20 62 47 47 62 47 47 62 47 47 76 46 20 76 44 53
++76 46 20 62 47 47 76 46 20 59 36 42 76 44 53 76 46 20 59 36 42 59 36 42
++76 46 20 76 44 53 59 36 42 76 46 20 76 44 53 59 36 42 60 49 42 55 39 37
++55 39 37 59 36 42 55 39 37 55 39 37 55 39 18 53 35 37 53 35 37 47 47 21
++52 30 35 36 35 37 33 30 30 33 30 30 32 39 24 33 30 30 31 35 35 30 30 34
++26 24 32 26 30 28 26 24 32 22 25 24 22 23 31 22 23 31 22 25 24 22 23 31
++23 20 24 12 18 20 23 20 24 12 18 20 23 20 24 23 20 24 22 25 24 22 25 24
++23 20 24 22 25 24 22 25 24 22 25 24 26 24 32 26 30 28 26 24 32 26 30 28
++26 24 32 26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 33 30 30 23 20 24
++33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 32 39 24 33 30 30 55 39 37
++47 47 21 55 39 37 60 49 42 59 36 42 60 49 42 60 49 42 60 49 42 62 47 47
++63 55 45 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 63 62 88 66 70
++75 63 62 88 66 70 75 72 67 88 66 70 75 72 67 75 72 67 75 59 67 65 63 61
++65 55 54 63 55 51 59 55 55 55 55 48 55 55 48 47 44 42 33 30 30 33 30 30
++26 25 15 26 25 15 23 20 24 26 25 15 22 24 13 23 18 22 22 24 13 23 18 22
++23 20 24 22 25 24 23 20 24 33 30 30 23 20 24 33 30 30 23 20 24 23 18 22
++7 12 13 3 4 9 13 4 7 3 4 9 13 4 7 14 16 17 17 12 17 14 16 17
++17 12 17 15 17 7 17 12 17 7 12 13 13 4 7 13 4 7 15 17 7 17 12 17
++15 17 7 23 18 22 22 25 24 26 25 15 23 18 22 22 25 24 33 30 30 36 35 37
++36 35 37 42 41 42 51 49 42 48 50 48 53 46 48 48 44 48 47 44 42 47 44 42
++47 44 42 42 41 42 36 35 37 36 35 37 36 35 37 33 30 30 33 30 30 26 30 28
++33 30 30 51 49 42 55 55 48 59 55 55 55 55 48 65 63 61 59 55 55 55 55 48
++47 44 42 47 44 42 47 49 42 51 49 42 51 49 42 47 44 42 47 44 42 47 44 42
++42 41 42 42 41 42 47 39 42 47 44 42 47 44 42 47 44 42 55 39 37 42 41 42
++47 39 42 47 47 21 47 39 42 47 39 42 47 39 42 47 47 21 47 39 42 36 35 37
++47 47 21 36 35 37 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37 53 35 37
++33 30 30 53 35 37 32 39 24 53 35 37 32 39 24 53 35 37 33 30 30 33 30 30
++53 35 17 36 35 37 36 35 37 52 30 35 36 35 37 47 39 42 42 41 42 47 44 42
++53 46 48 55 55 48 59 55 55 65 57 61 65 63 61 59 69 70 75 64 82 75 81 76
++75 64 82 75 81 82 75 81 82 75 81 90 75 81 90 88 83 88 77 90 100 88 83 88
++77 90 100 77 90 100 95 91 100 77 91 115 95 91 100 94 105 108 95 95 116 94 105 108
++95 108 128 111 119 127 94 105 108 95 108 128 95 108 128 95 108 128 95 95 116 95 108 128
++111 119 127 95 108 128 112 96 108 95 108 128 95 108 128 95 108 128 95 108 128 95 95 116
++95 95 116 95 95 116 77 91 115 95 95 116 77 91 115 77 91 115 95 91 100 77 90 100
++77 90 100 77 90 100 75 81 90 75 64 82 60 63 87 75 64 82 75 64 82 59 69 70
++63 59 71 59 57 61 54 57 61 48 44 48 48 44 48 42 41 42 42 41 42 36 35 37
++36 35 37 52 30 35 36 35 37 53 35 37 42 38 42 53 35 37 36 35 37 55 39 37
++42 38 42 53 35 37 42 38 42 36 35 37 52 30 35 36 35 37 36 35 37 52 30 35
++36 35 37 53 35 37 36 35 37 53 35 37 36 35 37 53 35 37 42 41 42 53 35 37
++42 41 42 53 35 37 47 39 42 53 35 37 36 35 37 55 39 37 42 38 42 53 35 37
++36 35 37 53 35 37 36 35 37 36 35 37 52 30 35 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 28 13 18 33 30 30 23 18 22 23 20 24
++33 30 30 23 20 24 26 30 28 23 20 24 33 30 30 23 20 24 33 30 30 23 20 24
++33 30 30 23 20 24 26 30 28 23 20 24 26 30 28 26 30 28 33 30 30 33 30 30
++33 30 30 26 30 28 30 30 34 30 30 34 30 30 34 30 30 34 31 35 35 33 30 36
++33 30 36 36 35 37 36 35 37 36 35 37 42 38 42 42 38 42 42 41 42 48 44 48
++59 55 55 54 57 61 59 57 61 65 63 61 59 69 70 63 59 71 75 72 67 59 69 70
++75 64 82 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 64 82 75 72 67
++75 72 67 59 69 70 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 59 57 61
++59 55 55 59 55 55 48 50 48 54 57 61 54 57 61 54 57 61 59 57 61 65 63 61
++63 59 71 63 59 71 63 59 71 63 59 71 59 57 61 54 57 61 54 57 61 54 57 61
++48 50 48 45 57 61 43 42 50 45 57 61 48 50 48 43 42 50 43 42 50 35 46 43
++37 35 43 36 35 37 28 30 35 30 30 34 30 30 34 26 24 32 22 25 24 23 20 24
++22 25 24 26 25 15 33 30 30 22 25 24 33 30 30 23 20 24 26 30 28 26 24 32
++26 30 28 26 24 32 22 25 24 26 30 28 22 25 24 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 15 22 17
++22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24
++22 25 24 22 25 24 22 25 24 26 30 28 23 20 24 22 25 24 23 20 24 23 20 24
++23 20 24 23 20 24 33 30 30 23 20 24 26 30 28 22 25 24 22 25 24 22 25 24
++22 25 24 23 20 24 23 20 24 23 20 24 23 18 22 23 20 24 22 25 24 23 20 24
++12 18 20 15 22 17 14 16 17 23 18 22 15 22 17 23 18 22 14 16 17 23 18 22
++23 18 22 22 24 13 23 20 24 22 25 24 26 24 32 26 30 28 23 20 24 33 30 30
++23 18 22 26 25 15 33 30 30 23 20 24 33 30 30 33 30 30 26 25 15 33 30 30
++23 18 22 23 20 24 22 25 24 23 20 24 23 20 24 26 25 15 33 30 30 23 18 22
++22 25 24 34 30 15 23 20 24 33 30 30 26 30 28 33 30 30 33 30 30 36 35 37
++36 35 37 42 38 42 42 38 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++
++14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 14 16 17 7 12 13 14 16 17
++14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 23 18 22 12 18 20 23 18 22
++15 22 17 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 23 18 22
++23 18 22 23 18 22 23 18 22 14 16 17 23 18 22 17 12 17 14 16 17 17 12 17
++7 12 13 17 12 17 7 10 17 13 4 7 7 12 13 7 10 17 13 4 7 7 12 13
++7 12 13 13 4 7 7 12 13 3 4 9 6 15 6 13 4 7 7 12 13 7 12 13
++15 17 7 17 12 17 17 12 17 15 17 7 22 24 13 23 18 22 26 25 15 26 25 15
++33 30 30 32 39 24 32 39 24 47 47 21 42 47 42 47 47 21 47 49 42 47 49 42
++49 74 23 51 73 47 49 74 23 64 70 48 64 70 48 49 74 23 57 86 47 75 73 36
++57 86 47 57 86 47 49 74 23 57 86 47 57 86 47 49 74 23 51 73 47 49 74 23
++51 73 47 49 74 23 35 46 43 49 74 23 35 46 43 49 74 23 32 39 24 32 39 24
++32 39 24 23 31 15 15 22 17 15 22 17 15 22 17 12 18 20 15 22 17 15 22 17
++15 22 17 15 22 17 12 18 30 15 22 17 25 30 29 23 30 35 28 35 38 28 35 38
++34 40 43 34 40 43 35 46 43 43 42 50 35 47 50 43 42 50 35 47 50 43 42 50
++45 57 61 43 42 50 45 57 61 43 42 50 45 57 61 32 40 58 45 57 61 32 40 58
++35 47 50 35 47 50 43 42 50 34 40 43 34 40 43 34 40 43 33 39 38 28 35 38
++31 35 35 33 30 32 30 30 34 30 30 34 30 30 34 26 24 32 26 30 28 26 30 28
++26 25 15 33 30 30 22 25 24 33 30 30 28 13 18 34 30 15 33 30 30 49 13 16
++52 30 35 34 30 15 52 30 15 52 30 15 52 30 15 76 18 19 55 39 18 52 30 35
++55 39 18 76 18 19 55 39 18 76 18 19 76 46 20 76 18 19 55 39 18 76 18 19
++76 46 20 76 18 19 88 30 18 52 30 35 76 46 20 55 39 18 76 18 19 76 46 20
++76 18 19 55 39 18 76 18 19 53 35 17 55 39 18 76 18 19 52 30 35 55 39 18
++52 30 35 55 39 18 52 30 35 52 30 35 55 39 18 53 35 37 53 35 17 55 39 37
++52 30 35 55 39 37 55 39 37 55 39 37 55 39 18 55 39 37 55 39 37 55 39 37
++55 39 18 60 49 42 55 39 37 60 49 42 55 39 18 60 49 42 60 49 42 60 49 42
++60 49 42 60 49 42 76 46 20 60 49 42 60 49 42 60 49 42 60 49 42 63 55 45
++60 49 42 75 56 53 64 70 48 75 56 53 75 72 67 88 66 70 88 83 74 88 69 84
++88 83 74 88 83 74 88 83 74 88 69 84 101 83 74 88 83 74 88 83 74 101 83 74
++88 83 74 88 83 88 88 83 74 101 83 74 88 69 84 88 83 74 88 69 84 88 83 74
++88 83 74 101 83 74 88 83 88 88 83 88 101 83 74 88 83 88 99 93 84 101 83 74
++88 69 84 88 83 74 88 83 74 88 66 70 88 83 74 88 66 70 88 66 70 88 69 84
++101 83 74 88 69 84 101 83 74 88 83 74 88 69 84 101 83 74 88 83 74 88 83 74
++88 66 70 88 83 74 88 66 70 88 69 84 75 72 67 88 66 70 75 63 62 75 56 53
++75 56 53 75 56 53 76 44 53 63 55 45 76 44 53 60 49 42 76 44 53 62 47 47
++60 49 42 59 36 42 62 47 47 62 47 47 76 46 20 60 49 42 60 49 42 76 44 53
++59 36 42 76 44 53 76 46 20 59 36 42 76 46 20 76 44 53 59 36 42 76 46 20
++59 36 42 59 36 42 76 46 20 59 36 42 59 36 42 76 46 20 59 36 42 76 46 20
++55 39 37 55 39 37 55 39 37 55 39 37 53 35 37 47 47 21 42 38 42 52 30 35
++36 35 37 33 30 30 33 30 30 32 39 24 33 30 30 33 30 30 33 30 30 30 30 34
++26 24 32 26 24 32 25 30 29 26 24 32 26 24 32 22 25 24 22 25 24 23 20 24
++22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 26 24 32 22 25 24 22 25 24 22 25 24 22 25 24 26 24 32
++22 25 24 23 20 24 26 30 28 22 25 24 33 30 30 22 25 24 23 20 24 33 30 30
++33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 47 47 21 36 35 37 53 35 37
++47 39 42 55 39 37 55 39 37 60 49 42 62 47 47 60 49 42 62 47 47 62 47 47
++62 47 47 62 47 47 65 55 54 75 56 53 75 56 53 75 63 62 75 56 53 75 63 62
++75 63 62 75 72 67 88 66 70 75 81 76 88 66 70 88 69 84 75 72 67 75 72 67
++65 63 61 65 63 61 65 55 54 55 55 48 47 44 42 33 30 30 26 25 15 22 24 13
++22 24 13 23 18 22 22 24 13 23 18 22 22 24 13 26 25 15 23 20 24 29 35 19
++22 25 24 26 25 15 23 18 22 23 18 22 33 30 30 33 30 30 26 30 28 23 18 22
++17 12 17 17 12 17 15 17 7 14 16 17 13 4 7 6 15 6 13 4 7 13 4 7
++3 4 9 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 7 12 13
++13 4 7 15 17 7 23 18 22 14 16 17 17 12 17 22 24 13 23 20 24 26 30 28
++33 30 30 32 39 24 42 41 42 47 49 42 48 50 48 53 46 48 48 50 48 48 50 48
++47 44 42 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30 26 25 15 33 30 30
++42 41 42 48 50 48 52 55 48 55 55 48 59 55 55 65 63 61 65 63 61 55 55 48
++47 49 42 51 49 42 51 49 42 51 49 42 51 49 42 47 44 42 47 44 42 42 38 42
++47 47 21 47 39 42 47 47 21 47 44 42 55 39 37 47 44 42 47 44 42 47 47 21
++42 41 42 53 35 37 47 44 42 47 39 42 47 47 21 47 39 42 36 35 37 53 35 37
++36 35 37 53 35 37 32 39 24 52 30 35 36 35 37 47 47 21 36 35 37 32 39 24
++36 35 37 32 39 24 36 35 37 32 39 24 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 33 30 30 33 30 30 33 30 32 47 47 21 36 35 37 42 38 42 47 39 42
++48 50 48 53 46 48 59 55 55 59 57 61 65 63 61 59 69 70 75 72 67 59 69 70
++75 64 82 75 81 82 75 81 82 75 81 82 88 83 88 75 81 90 77 90 100 95 91 100
++77 90 100 95 91 100 77 90 100 94 105 108 95 95 116 94 105 108 95 108 128 94 105 108
++95 108 128 94 105 108 95 108 128 111 119 127 95 108 128 112 96 108 95 108 128 111 119 127
++95 108 128 95 108 128 95 108 128 111 119 127 95 108 128 111 119 127 95 108 128 95 108 128
++95 108 128 95 95 116 95 95 116 77 91 115 95 91 100 95 95 116 77 91 115 77 91 115
++95 91 100 61 78 101 75 81 90 75 81 90 75 81 82 75 64 82 60 63 87 75 64 82
++63 59 71 59 57 61 54 57 61 52 55 48 48 50 48 47 44 42 36 35 37 47 39 42
++36 35 37 53 35 37 36 35 37 53 35 37 42 41 42 53 35 37 47 39 42 42 38 42
++53 35 37 42 41 42 53 35 37 47 39 42 53 35 37 47 39 42 53 35 37 42 41 42
++53 35 37 42 41 42 53 35 37 42 41 42 53 35 37 47 39 42 47 44 42 47 44 42
++47 44 42 55 39 37 47 44 42 47 44 42 47 44 42 47 44 42 47 39 42 47 39 42
++53 35 37 36 35 37 47 39 42 42 41 42 52 30 35 33 30 30 52 30 35 33 30 30
++33 30 30 33 30 30 23 20 24 33 30 30 26 30 28 33 30 30 22 25 24 23 20 24
++23 20 24 33 30 30 23 20 24 22 25 24 23 20 24 33 30 30 23 20 24 26 25 15
++22 25 24 22 25 24 23 20 24 26 30 28 26 30 28 26 24 32 26 30 28 26 30 28
++26 30 28 26 24 32 25 30 29 33 30 30 26 30 28 30 30 34 33 30 32 33 30 32
++33 30 32 33 30 32 36 35 37 36 35 37 42 38 42 42 41 42 43 42 50 48 50 48
++59 55 55 59 57 61 65 63 61 63 59 71 59 69 70 75 64 82 75 72 67 75 64 82
++75 81 76 75 64 82 75 81 76 59 69 70 75 64 82 75 81 76 75 72 67 59 69 70
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 59 69 70 65 63 61 59 57 61
++59 57 61 54 57 61 59 55 55 54 57 61 59 57 61 59 57 61 65 63 61 59 69 70
++75 72 67 59 69 70 65 63 61 59 69 70 63 59 71 59 57 61 54 57 61 54 57 61
++54 57 61 54 57 61 45 57 61 43 42 50 45 57 61 35 47 50 43 42 50 43 42 50
++34 40 43 37 35 43 36 35 37 33 30 32 26 24 32 26 24 32 26 25 15 22 25 24
++23 20 24 23 20 24 26 30 28 22 25 24 26 30 28 22 25 24 26 30 28 26 30 28
++26 24 32 23 20 24 33 30 30 26 30 28 22 25 24 22 25 24 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 12 18 20 22 25 24 23 20 24 22 25 24
++22 25 24 15 22 17 23 20 24 23 20 24 22 25 24 23 20 24 15 22 17 23 18 22
++22 25 24 23 20 24 22 25 24 23 20 24 26 30 28 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 33 30 30 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 23 18 22 15 22 17 23 20 24 12 18 20
++23 20 24 23 20 24 23 18 22 14 16 17 14 16 17 14 16 17 23 18 22 15 22 17
++14 16 17 23 18 22 23 18 22 23 20 24 23 20 24 33 30 30 23 20 24 23 20 24
++22 25 24 22 25 24 26 25 15 33 30 30 23 20 24 33 30 30 23 20 24 23 20 24
++26 25 15 26 30 28 28 13 18 33 30 30 23 20 24 23 20 24 23 20 24 26 25 15
++23 20 24 22 25 24 22 25 24 26 30 28 26 30 28 29 35 19 33 30 30 33 30 30
++36 35 37 36 35 37 42 38 42 42 38 42 42 41 42 42 41 42 43 42 50 42 41 42
++
++7 12 13 7 12 13 17 12 17 7 12 13 7 12 13 7 12 13 17 12 17 7 12 13
++7 12 13 17 12 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 23 18 22
++23 18 22 23 20 24 23 20 24 23 18 22 23 18 22 23 18 22 23 18 22 23 20 24
++14 16 17 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17 17 12 17 7 12 13
++17 12 17 13 4 7 7 12 13 17 12 17 7 10 17 13 4 7 7 12 13 13 4 7
++7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 23 10 10
++17 12 17 14 16 17 15 17 7 15 22 17 23 18 22 26 25 15 26 30 28 34 30 15
++26 30 28 32 39 24 32 39 24 32 39 24 47 47 21 47 49 42 49 74 23 47 49 42
++47 49 42 49 74 23 64 70 48 51 73 47 57 86 47 66 86 47 51 73 47 57 86 47
++49 74 23 57 86 47 57 86 47 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47
++49 74 23 35 46 43 49 74 23 32 39 24 32 39 24 32 39 24 32 39 24 23 31 15
++23 31 15 23 31 15 15 22 17 15 22 17 15 22 17 12 18 20 12 18 20 15 22 17
++12 18 30 15 22 17 25 30 29 15 22 17 23 30 35 23 30 35 28 30 35 28 35 38
++28 35 38 34 40 43 34 40 43 34 40 43 42 41 42 35 47 50 34 40 43 43 42 50
++32 40 58 35 47 50 32 40 58 43 42 50 32 40 58 43 42 50 35 47 50 35 47 50
++32 40 58 34 40 43 34 40 43 34 40 43 34 40 43 28 35 38 28 35 38 33 30 36
++33 30 36 30 30 34 30 30 34 26 30 28 26 30 28 26 30 28 26 30 28 26 25 15
++26 30 28 26 25 15 33 30 30 34 30 15 33 30 30 33 30 30 49 13 16 33 30 30
++34 30 15 49 13 16 52 30 35 52 30 15 52 30 15 52 30 15 53 35 17 76 18 19
++55 39 18 76 18 19 55 39 18 76 18 19 53 35 17 55 39 18 76 46 20 76 18 19
++55 39 18 76 46 20 55 39 18 76 18 19 55 39 18 59 36 42 55 39 18 53 35 17
++55 39 18 55 39 18 53 35 17 53 35 17 53 35 17 52 30 35 55 39 18 52 30 35
++53 35 17 52 30 15 52 30 35 55 39 18 53 35 37 52 30 35 55 39 18 52 30 35
++55 39 18 55 39 37 55 39 18 55 39 37 55 39 37 55 39 37 76 46 20 55 39 37
++55 39 37 55 39 18 55 39 37 60 49 42 60 49 42 60 49 42 60 49 42 60 49 42
++60 49 42 60 49 42 60 49 42 60 49 42 63 55 45 63 55 45 76 44 53 63 55 45
++63 55 45 63 55 45 75 56 53 75 63 62 75 73 58 88 66 70 88 83 74 88 83 74
++88 83 74 88 69 84 88 83 74 88 83 74 88 83 88 88 83 74 88 83 88 88 83 74
++88 83 74 101 83 74 88 69 84 88 83 74 88 83 74 101 83 74 88 83 74 88 83 74
++88 69 84 88 83 74 101 83 74 88 83 88 101 83 74 88 83 88 101 83 74 88 83 88
++101 83 74 88 69 84 101 83 74 88 69 84 88 66 70 101 83 74 88 83 74 101 83 74
++101 83 74 101 83 74 88 69 84 88 66 70 101 83 74 88 69 84 88 83 74 88 69 84
++88 83 74 88 69 84 88 83 74 88 66 70 88 83 74 88 66 70 75 59 67 75 63 62
++75 56 53 75 56 53 63 55 45 62 47 47 76 46 20 62 47 47 55 39 37 76 46 20
++59 36 42 60 49 42 76 46 20 62 47 47 59 36 42 76 44 53 76 46 20 76 44 53
++76 46 20 59 36 42 59 36 42 76 46 20 59 36 42 59 36 42 76 46 20 59 36 42
++59 36 42 76 46 20 59 36 42 59 36 42 55 39 37 59 36 42 55 39 37 55 39 37
++55 39 37 55 39 37 55 39 37 55 39 37 47 47 21 52 30 35 36 35 37 36 35 37
++33 30 30 33 30 30 33 30 30 33 30 30 26 30 28 26 30 28 26 30 28 26 24 32
++26 24 32 25 30 29 26 24 32 25 30 29 22 23 31 23 20 24 22 23 31 23 20 24
++22 23 31 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24
++23 20 24 22 25 24 26 24 32 22 25 24 22 23 31 22 25 24 22 25 24 22 25 24
++23 20 24 22 25 24 23 20 24 26 24 32 22 25 24 26 30 28 23 20 24 23 20 24
++23 20 24 33 30 30 23 20 24 33 30 30 33 30 30 36 35 37 53 35 37 42 41 42
++55 39 37 47 39 42 55 39 37 53 46 48 62 47 47 62 47 47 62 47 47 62 47 47
++65 55 54 75 56 53 65 55 54 75 56 53 65 57 61 75 63 62 75 63 62 75 63 62
++75 63 62 75 72 67 75 72 67 88 66 70 75 81 76 88 69 84 75 72 67 75 72 67
++75 63 62 65 63 61 55 55 48 36 35 37 32 39 24 26 25 15 23 18 22 15 17 7
++23 18 22 22 24 13 26 25 15 26 25 15 23 20 24 22 25 24 33 30 30 33 30 30
++23 20 24 23 20 24 23 18 22 26 25 15 23 20 24 33 30 32 33 30 30 22 25 24
++23 20 24 23 18 22 14 16 17 17 12 17 14 16 17 17 12 17 13 4 7 6 15 6
++13 4 7 3 4 9 13 4 7 13 4 7 7 12 13 17 12 17 7 12 13 23 10 10
++7 12 13 13 4 7 7 12 13 23 10 10 14 16 17 17 12 17 23 18 22 23 18 22
++22 25 24 22 25 24 33 30 30 36 35 37 47 44 42 48 50 48 48 44 48 48 44 48
++42 41 42 33 30 30 26 30 28 23 20 24 22 25 24 22 25 24 33 30 30 36 35 37
++47 44 42 48 50 48 48 44 48 48 50 48 55 55 48 59 55 55 65 63 61 52 55 48
++53 46 48 48 50 48 47 44 42 42 41 42 47 44 42 47 44 42 47 44 42 47 39 42
++47 39 42 42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++55 39 37 47 47 21 47 44 42 55 39 37 47 44 42 47 39 42 47 47 21 36 35 37
++53 35 37 32 39 24 53 35 37 36 35 37 33 30 30 36 35 37 52 30 35 33 30 30
++52 30 35 32 39 24 52 30 35 33 30 30 36 35 37 33 30 30 52 30 35 32 39 24
++33 30 30 33 30 30 36 35 37 33 30 30 36 35 37 36 35 37 36 35 37 47 39 42
++47 44 42 53 46 48 59 55 55 59 57 61 65 63 61 63 59 71 75 72 67 75 64 82
++75 81 76 75 81 82 75 81 82 75 81 90 88 83 88 77 90 100 95 91 100 77 90 100
++95 95 116 77 90 100 95 95 116 95 91 100 94 105 108 94 105 108 95 108 128 94 105 108
++111 119 127 111 119 127 95 108 128 111 119 127 95 108 128 111 119 127 95 108 128 95 108 128
++111 119 127 111 119 127 95 108 128 111 119 127 95 108 128 111 119 127 95 95 116 111 119 127
++95 95 116 95 108 128 95 95 116 95 95 116 95 95 116 95 95 116 95 95 116 95 95 116
++77 90 100 77 91 115 75 81 90 75 81 90 75 64 82 75 81 90 75 64 82 59 69 70
++63 59 71 63 59 71 59 57 61 54 57 61 48 50 48 48 44 48 47 44 42 42 38 42
++36 35 37 55 39 37 47 39 42 53 35 37 42 41 42 55 39 37 47 44 42 55 39 37
++47 44 42 47 39 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++55 39 37 47 44 42 55 39 37 47 44 42 47 44 42 51 49 42 53 46 48 51 49 42
++53 46 48 53 46 48 53 46 48 62 47 47 53 46 48 53 46 48 47 44 42 47 44 42
++55 39 37 47 44 42 47 39 42 47 39 42 42 41 42 53 35 37 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 23 20 24 33 30 30 26 30 28
++23 20 24 22 25 24 33 30 30 23 20 24 33 30 30 23 18 22 23 20 24 33 30 30
++23 20 24 26 30 28 22 25 24 33 30 30 23 20 24 26 30 28 26 30 28 33 30 30
++26 30 28 33 30 30 26 24 32 26 30 28 26 24 32 33 30 30 30 30 34 33 30 32
++31 35 35 36 35 37 33 30 32 42 38 42 53 35 37 42 41 42 47 44 42 48 50 48
++54 57 61 65 57 61 65 63 61 75 72 67 75 64 82 59 69 70 75 81 82 75 64 82
++75 81 76 75 81 82 75 81 76 75 81 76 75 81 76 75 81 76 75 64 82 75 81 76
++75 72 67 75 81 82 75 64 82 75 72 67 63 59 71 75 72 67 63 59 71 65 63 61
++65 63 61 59 57 61 59 57 61 59 57 61 65 63 61 59 69 70 75 72 67 75 64 82
++59 69 70 75 64 82 75 72 67 75 64 82 59 69 70 59 69 70 63 59 71 59 57 61
++54 57 61 54 57 61 54 57 61 45 57 61 48 50 48 45 57 61 43 42 50 43 42 50
++43 42 50 34 40 43 36 35 37 28 30 35 26 24 32 22 25 24 22 25 24 23 20 24
++23 20 24 26 25 15 22 25 24 33 30 30 23 20 24 33 30 30 23 20 24 26 30 28
++23 20 24 33 30 30 22 25 24 26 30 28 22 25 24 26 24 32 23 20 24 26 24 32
++22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24
++22 25 24 22 25 24 26 24 32 22 25 24 23 20 24 23 20 24 22 25 24 23 20 24
++26 25 15 23 20 24 22 25 24 33 30 30 22 25 24 22 25 24 22 25 24 33 30 30
++23 20 24 22 25 24 23 18 22 23 20 24 23 18 22 23 18 22 23 20 24 15 22 17
++23 20 24 12 18 20 12 18 20 23 18 22 14 16 17 14 16 17 14 16 17 23 18 22
++17 12 17 23 18 22 15 22 17 23 20 24 23 20 24 23 20 24 23 20 24 26 25 15
++23 20 24 23 20 24 23 20 24 23 20 24 26 25 15 23 20 24 33 30 30 26 25 15
++23 20 24 22 25 24 23 20 24 23 20 24 26 25 15 23 20 24 26 25 15 23 20 24
++22 25 24 23 20 24 26 25 15 23 20 24 33 30 30 26 30 28 33 30 30 33 30 30
++33 30 30 36 35 37 36 35 37 37 35 43 42 38 42 42 41 42 42 41 42 42 41 42
++
++7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 17 12 17 7 12 13 7 12 13
++17 12 17 7 12 13 7 12 13 17 12 17 14 16 17 14 16 17 23 18 22 15 22 17
++23 18 22 15 22 17 23 18 22 23 20 24 14 16 17 23 18 22 12 18 20 23 18 22
++23 20 24 14 16 17 17 12 17 17 12 17 14 16 17 17 12 17 7 12 13 17 12 17
++13 4 7 17 12 17 7 10 17 13 4 7 7 10 17 13 4 7 7 12 13 3 4 9
++7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 17 12 17
++17 12 17 17 12 17 14 16 17 22 24 13 22 25 24 26 25 15 26 25 15 26 30 28
++34 30 15 34 30 15 32 39 24 32 39 24 42 47 42 47 49 42 47 47 21 47 49 42
++49 74 23 50 61 48 50 61 48 51 73 47 64 70 48 49 74 23 57 86 47 64 70 48
++57 86 47 51 73 47 51 73 47 49 74 23 51 73 47 51 73 47 49 74 23 51 73 47
++35 47 50 49 74 23 32 39 24 35 46 43 49 74 23 32 39 24 23 30 35 23 31 15
++23 31 15 15 22 17 15 22 17 15 22 17 12 18 20 12 18 20 12 18 20 15 22 17
++15 22 17 12 18 30 15 22 17 12 18 30 22 23 31 25 30 29 23 30 35 28 30 35
++31 35 35 28 35 38 37 35 43 34 40 43 34 40 43 34 40 43 29 34 50 43 42 50
++34 40 43 43 42 50 35 47 50 43 42 50 35 47 50 43 42 50 32 40 58 34 40 43
++34 40 43 29 34 50 34 40 43 33 39 38 37 35 43 28 35 38 31 35 35 33 30 36
++30 30 34 30 30 34 33 30 30 26 30 28 33 30 30 26 30 28 26 25 15 33 30 30
++34 30 15 26 30 28 34 30 15 33 30 30 28 13 18 33 30 30 33 30 30 49 13 16
++34 30 15 52 30 15 52 30 15 52 30 35 52 30 15 52 30 35 76 18 19 55 39 18
++52 30 15 76 46 20 52 30 35 55 39 18 76 18 19 55 39 18 76 18 19 55 39 18
++55 39 18 76 18 19 55 39 18 55 39 37 53 35 17 76 46 20 52 30 35 76 18 19
++52 30 35 52 30 15 52 30 35 53 35 17 52 30 35 53 35 17 53 35 17 52 30 35
++53 35 17 52 30 35 53 35 17 52 30 35 55 39 18 55 39 37 55 39 18 55 39 37
++55 39 37 55 39 18 55 39 37 60 49 42 55 39 18 55 39 37 55 39 37 55 39 37
++55 39 37 60 49 42 47 47 21 60 49 42 47 47 21 60 49 42 60 49 42 63 55 45
++60 49 42 63 55 45 60 49 42 60 49 42 63 55 45 63 55 45 60 49 42 63 55 45
++63 55 45 63 55 45 75 63 62 75 63 62 88 66 70 75 72 67 88 83 74 88 66 70
++88 83 74 88 69 84 101 83 74 88 83 74 88 83 88 101 83 74 88 83 74 88 69 84
++88 83 74 88 69 84 101 83 74 88 83 74 88 69 84 88 83 74 88 69 84 88 83 74
++88 83 74 101 83 74 88 83 88 101 83 74 88 83 88 101 83 74 88 83 88 101 83 74
++88 83 88 101 83 74 88 83 74 88 83 74 88 69 84 88 83 74 88 69 84 88 83 74
++88 69 84 88 83 88 101 83 74 88 83 74 88 83 74 88 69 84 101 83 74 88 69 84
++88 83 74 88 69 84 88 83 74 88 69 84 75 64 82 88 66 70 75 63 62 75 59 67
++75 56 53 75 56 53 76 44 53 76 44 53 62 47 47 60 49 42 62 47 47 59 36 42
++60 49 42 59 36 42 62 47 47 62 47 47 76 46 20 60 49 42 62 47 47 59 36 42
++60 49 42 76 44 53 60 49 42 59 36 42 76 46 20 59 36 42 59 36 42 59 36 42
++59 36 42 59 36 42 60 49 42 59 36 42 60 49 42 55 39 37 55 39 37 60 49 42
++55 39 37 55 39 37 55 39 37 53 35 37 36 35 37 52 30 35 33 30 30 52 30 35
++52 30 35 33 30 30 33 30 30 33 30 30 26 30 28 26 30 28 26 24 32 26 30 28
++26 30 28 26 24 32 22 25 24 26 24 32 22 23 31 23 20 24 23 20 24 22 25 24
++22 25 24 12 18 30 23 20 24 22 25 24 12 18 30 22 23 31 23 20 24 22 25 24
++22 23 31 22 25 24 22 25 24 22 23 31 22 23 31 22 25 24 22 23 31 22 25 24
++26 24 32 26 24 32 23 20 24 26 30 28 26 30 28 26 24 32 22 25 24 33 30 30
++22 25 24 22 25 24 33 30 30 33 30 30 36 35 37 36 35 37 42 41 42 47 44 42
++47 44 42 51 49 42 53 46 48 53 46 48 53 46 48 55 55 48 62 47 47 65 55 54
++62 47 47 65 55 54 65 55 54 65 57 61 75 63 62 75 63 62 75 59 67 75 63 62
++88 66 70 88 66 70 75 64 82 88 66 70 75 81 76 88 69 84 75 72 67 75 72 67
++65 63 61 51 49 42 36 35 37 34 30 15 33 30 30 26 25 15 23 18 22 22 24 13
++23 18 22 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 26 25 15 23 20 24
++26 25 15 23 18 22 23 20 24 23 18 22 14 16 17 23 18 22 23 20 24 23 20 24
++23 18 22 15 22 17 17 12 17 14 16 17 17 12 17 14 16 17 14 16 17 14 16 17
++17 12 17 15 17 7 7 12 13 6 15 6 13 4 7 17 12 17 17 12 17 7 12 13
++17 12 17 7 12 13 17 12 17 14 16 17 23 18 22 23 18 22 14 16 17 23 18 22
++23 20 24 23 18 22 22 25 24 33 30 30 33 30 30 42 38 42 42 41 42 42 41 42
++33 30 30 33 30 30 23 18 22 23 18 22 22 24 13 22 25 24 33 30 30 42 41 42
++51 49 42 47 49 42 47 44 42 47 44 42 42 41 42 47 44 42 48 50 48 59 55 55
++52 55 48 47 44 42 36 35 37 32 39 24 47 44 42 42 41 42 55 39 37 42 41 42
++47 39 42 47 47 21 47 44 42 47 49 42 55 39 37 51 49 42 51 49 42 55 39 37
++47 44 42 47 39 42 47 44 42 47 47 21 47 44 42 53 35 37 36 35 37 55 39 37
++36 35 37 53 35 37 36 35 37 36 35 37 53 35 17 36 35 37 32 39 24 36 35 37
++33 30 30 36 35 37 32 39 24 36 35 37 53 35 17 33 30 30 32 39 24 33 30 30
++36 35 37 53 35 17 33 30 30 33 30 30 33 30 30 52 30 35 36 35 37 42 38 42
++47 44 42 53 46 48 59 55 55 59 57 61 65 63 61 75 64 82 59 69 70 75 64 82
++75 81 82 75 64 82 75 81 90 75 81 90 88 83 88 77 90 100 77 90 100 95 91 100
++95 91 100 95 95 116 77 91 115 95 95 116 95 95 116 95 108 128 95 108 128 111 119 127
++95 108 128 111 119 127 95 108 128 111 119 127 111 119 127 95 108 128 111 119 127 111 119 127
++95 108 128 111 119 127 95 108 128 119 117 138 112 96 108 95 108 128 111 119 127 95 95 116
++111 119 127 95 108 128 95 108 128 95 108 128 95 95 116 95 95 116 95 95 116 95 91 100
++77 91 115 95 91 100 77 90 100 75 81 90 75 81 90 75 81 90 75 81 82 75 64 82
++63 59 71 63 59 71 59 57 61 54 57 61 59 55 55 48 50 48 47 44 42 55 39 37
++47 39 42 47 39 42 47 39 42 47 44 42 47 44 42 47 44 42 53 46 48 53 46 48
++53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 57 43 51 53 46 48 62 47 47
++53 46 48 53 46 48 55 55 48 57 43 51 62 47 47 57 43 51 63 55 51 65 55 54
++59 55 55 65 55 54 59 57 61 59 55 55 59 55 55 59 55 55 59 55 55 53 46 48
++48 44 48 53 46 48 47 44 42 47 44 42 47 39 42 42 38 42 42 38 42 52 30 35
++33 30 32 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 23 20 24
++33 30 30 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 26 30 28 22 25 24
++26 24 32 22 25 24 26 24 32 22 25 24 26 24 32 26 30 28 26 24 32 26 24 32
++26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 26 30 28 30 30 34 33 30 32
++33 30 30 31 35 35 33 30 30 36 35 37 36 35 37 42 41 42 48 44 48 53 46 48
++54 57 61 65 63 61 63 59 71 59 69 70 75 72 67 75 64 82 75 81 82 75 81 82
++75 81 82 75 64 82 75 81 82 88 69 84 75 81 82 75 81 82 88 69 84 75 81 82
++75 81 76 75 64 82 75 81 76 75 81 82 75 81 76 75 64 82 75 81 76 65 63 61
++59 69 70 65 63 61 63 59 71 63 59 71 75 72 67 59 69 70 75 64 82 75 72 67
++75 81 82 75 81 76 75 81 82 75 81 82 75 81 76 63 59 71 59 69 70 59 69 70
++59 69 70 63 59 71 54 57 61 54 57 61 54 57 61 43 42 50 45 57 61 43 42 50
++35 47 50 34 40 43 33 39 38 28 30 35 30 30 34 26 24 32 26 24 32 22 25 24
++22 25 24 23 20 24 23 20 24 26 30 28 22 25 24 26 24 32 22 25 24 26 24 32
++22 25 24 26 24 32 22 25 24 26 24 32 22 25 24 26 24 32 22 25 24 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24
++23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 26 24 32 26 25 15 22 25 24
++23 20 24 26 30 28 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24
++26 25 15 22 25 24 22 25 24 22 25 24 15 22 17 23 18 22 15 22 17 23 20 24
++15 22 17 23 18 22 23 18 22 15 22 17 14 16 17 23 18 22 14 16 17 23 18 22
++15 22 17 23 18 22 23 18 22 23 20 24 23 20 24 22 25 24 23 20 24 26 24 32
++23 20 24 26 25 15 23 20 24 26 30 28 23 20 24 26 30 28 23 20 24 23 20 24
++23 20 24 23 20 24 26 25 15 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++33 30 30 23 20 24 26 24 32 23 20 24 23 20 24 23 20 24 33 30 30 33 30 30
++33 30 30 33 30 30 36 35 37 36 35 37 42 38 42 42 38 42 42 38 42 42 38 42
++
++3 4 9 3 4 9 3 4 9 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13
++13 4 7 7 12 13 17 12 17 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17
++23 18 22 23 18 22 23 18 22 23 18 22 23 18 22 23 18 22 23 18 22 23 18 22
++23 18 22 14 16 17 17 12 17 17 12 17 14 16 17 17 12 17 7 12 13 13 4 7
++17 12 17 13 4 7 17 12 17 7 12 13 7 12 13 13 4 7 7 12 13 13 4 7
++7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 17 12 17 23 10 10
++14 16 17 28 13 18 22 24 13 22 25 24 26 25 15 22 25 24 33 30 30 26 25 15
++26 25 15 29 35 19 32 39 24 32 39 24 47 47 21 47 49 42 47 49 42 47 47 21
++50 61 48 49 74 23 50 61 48 51 73 47 51 73 47 64 70 48 49 74 23 57 86 47
++49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 43 55 48 43 55 48 49 74 23
++35 46 43 35 46 43 32 39 24 32 39 24 32 39 24 23 31 15 23 31 15 23 31 15
++23 31 15 15 22 17 15 22 17 15 22 17 6 15 6 12 18 20 7 12 13 12 18 20
++15 22 17 15 22 17 12 18 30 23 30 35 22 25 24 23 30 35 22 23 31 25 30 29
++23 30 35 31 35 35 33 39 38 37 35 43 37 35 43 37 35 43 34 40 43 29 34 50
++43 42 50 29 34 50 43 42 50 32 40 58 43 42 50 32 40 58 29 34 50 34 40 43
++29 34 50 34 40 43 28 35 38 28 35 38 28 35 38 31 35 35 36 35 37 33 30 36
++33 30 32 30 30 34 26 30 28 26 30 28 22 25 24 33 30 30 26 25 15 33 30 30
++26 25 15 33 30 30 26 25 15 33 30 30 34 30 15 33 30 30 49 13 16 33 30 30
++52 30 15 33 30 30 49 13 16 52 30 15 52 30 35 53 35 17 53 35 17 53 35 17
++76 18 19 52 30 15 76 18 19 55 39 18 55 39 18 76 18 19 55 39 18 55 39 18
++76 18 19 55 39 18 55 39 18 76 18 19 53 35 17 52 30 35 52 30 15 55 39 18
++53 35 17 52 30 15 52 30 15 52 30 35 52 30 15 52 30 35 52 30 15 33 30 30
++53 35 17 36 35 37 53 35 17 53 35 37 53 35 17 53 35 37 55 39 18 55 39 37
++55 39 18 55 39 37 55 39 37 55 39 18 60 49 42 55 39 37 55 39 37 47 47 21
++55 39 37 55 39 37 60 49 42 55 39 37 60 49 42 60 49 42 60 49 42 63 55 45
++63 55 45 63 55 45 75 56 53 63 55 45 63 55 45 76 44 53 60 49 42 63 55 45
++63 55 45 75 56 53 75 73 58 75 63 62 75 72 67 88 66 70 88 83 74 88 69 84
++88 83 74 88 83 74 88 83 88 88 83 88 88 83 74 88 83 88 88 83 74 88 83 74
++88 83 74 88 83 74 88 69 84 88 83 74 88 83 74 88 69 84 88 83 74 101 83 74
++88 83 74 88 83 74 101 83 74 88 83 88 88 83 88 101 83 74 88 83 88 88 83 88
++101 83 74 88 69 84 88 69 84 101 83 74 88 83 74 88 69 84 101 83 74 88 69 84
++101 83 74 101 83 74 88 69 84 88 83 88 101 83 74 88 83 88 101 83 74 88 83 88
++88 69 84 88 83 74 88 69 84 88 83 74 88 66 70 88 66 70 75 72 67 75 59 67
++75 56 53 75 56 53 62 47 47 62 47 47 59 36 42 62 47 47 59 36 42 60 49 42
++59 36 42 76 46 20 62 47 47 59 36 42 60 49 42 59 36 42 76 46 20 76 44 53
++60 49 42 76 46 20 59 36 42 59 36 42 59 36 42 76 44 53 76 46 20 59 36 42
++76 46 20 62 47 47 59 36 42 60 49 42 59 36 42 55 39 37 60 49 42 55 39 37
++55 39 37 55 39 37 47 39 42 53 35 37 36 35 37 52 30 35 32 39 24 52 30 35
++33 30 30 33 30 30 33 30 30 26 30 28 26 30 28 23 20 24 26 30 28 22 25 24
++26 24 32 26 24 32 23 20 24 26 24 32 23 20 24 23 20 24 23 20 24 22 23 31
++23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 22 23 31
++23 20 24 22 23 31 22 23 31 22 25 24 22 23 31 22 25 24 22 23 31 23 20 24
++22 23 31 22 25 24 22 25 24 26 24 32 23 20 24 22 25 24 26 24 32 22 25 24
++22 25 24 22 25 24 33 30 30 33 30 30 33 30 32 42 38 42 47 44 42 47 44 42
++47 44 42 53 46 48 48 50 48 55 55 48 55 55 48 55 55 48 63 55 51 63 55 51
++65 55 54 65 55 54 65 57 61 75 59 67 75 56 53 75 59 67 75 63 62 75 59 67
++88 66 70 75 81 76 88 66 70 75 81 76 88 69 84 75 72 67 75 72 67 75 63 62
++55 55 48 47 39 42 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 26 25 15
++22 25 24 22 25 24 33 30 30 26 30 28 33 30 30 23 20 24 23 20 24 23 20 24
++23 18 22 23 18 22 14 16 17 15 17 7 13 4 7 7 12 13 7 12 13 17 12 17
++13 4 7 15 17 7 17 12 17 15 17 7 17 12 17 23 18 22 23 20 24 26 30 28
++33 30 30 26 24 32 23 20 24 23 18 22 23 18 22 14 16 17 22 24 13 17 12 17
++13 4 7 15 17 7 17 12 17 17 12 17 22 24 13 23 18 22 23 18 22 23 18 22
++23 18 22 17 12 17 23 18 22 23 20 24 22 25 24 33 30 30 36 35 37 33 30 32
++33 30 30 23 18 22 15 22 17 17 12 17 22 24 13 26 30 28 36 35 37 47 44 42
++42 41 42 42 38 42 42 41 42 36 35 37 36 35 37 36 35 37 47 44 42 42 41 42
++42 41 42 42 41 42 42 41 42 47 44 42 47 44 42 47 44 42 42 41 42 47 47 21
++47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 51 49 42 51 49 42 47 44 42
++55 39 37 47 47 21 55 39 37 47 44 42 55 39 37 47 44 42 53 35 37 36 35 37
++55 39 37 32 39 24 53 35 37 32 39 24 36 35 37 36 35 37 52 30 35 32 39 24
++52 30 35 32 39 24 33 30 32 36 35 37 33 30 30 36 35 37 33 30 30 52 30 35
++32 39 24 33 30 32 33 30 30 36 35 37 33 30 30 36 35 37 36 35 37 42 38 42
++47 44 42 53 46 48 59 55 55 59 55 55 59 57 61 59 69 70 75 64 82 75 81 76
++75 64 82 75 81 82 75 81 82 88 83 88 77 90 100 95 91 100 95 91 100 77 91 115
++95 95 116 77 91 115 94 105 108 95 95 116 95 108 128 95 108 128 111 119 127 95 108 128
++111 119 127 111 119 127 111 119 127 111 119 127 95 108 128 111 119 127 111 119 127 95 108 128
++111 119 127 95 108 128 111 119 127 95 108 128 111 119 127 95 108 128 111 119 127 95 108 128
++111 119 127 95 95 116 94 105 108 95 108 128 95 95 116 95 95 116 95 95 116 95 95 116
++95 95 116 77 90 100 77 91 115 88 69 84 61 78 101 88 69 84 60 63 87 75 64 82
++59 69 70 63 59 71 59 57 61 59 57 61 54 57 61 48 50 48 53 46 48 47 44 42
++47 44 42 55 39 37 47 44 42 47 44 42 53 46 48 53 46 48 60 49 42 53 46 48
++53 46 48 53 46 48 55 55 48 62 47 47 59 55 55 63 55 51 59 55 55 63 55 51
++65 55 54 63 55 51 59 55 55 59 55 55 59 55 55 65 55 54 65 55 54 65 57 61
++65 57 61 65 57 61 65 57 61 65 57 61 65 57 61 65 55 54 59 55 55 59 55 55
++55 55 48 53 46 48 53 46 48 53 46 48 47 44 42 47 44 42 42 41 42 42 38 42
++36 35 37 36 35 37 33 30 32 33 30 32 33 30 30 33 30 30 26 24 32 26 30 28
++23 20 24 26 30 28 23 20 24 33 30 30 22 25 24 33 30 30 23 18 22 22 25 24
++26 30 28 23 20 24 26 30 28 23 20 24 26 30 28 23 20 24 26 30 28 26 30 28
++26 24 32 26 30 28 26 30 28 26 24 32 33 30 30 26 24 32 26 30 28 30 30 34
++31 35 35 31 35 35 36 35 37 53 35 37 36 35 37 47 44 42 47 44 42 48 50 48
++59 57 61 59 57 61 59 69 70 75 72 67 75 64 82 75 81 82 75 81 82 88 83 88
++88 69 84 75 81 82 75 81 82 75 81 82 88 83 88 75 81 82 75 81 82 75 81 82
++88 69 84 75 81 76 75 81 82 75 64 82 75 81 82 75 64 82 75 72 67 59 69 70
++75 72 67 63 59 71 59 69 70 75 72 67 63 59 71 75 81 76 75 81 76 75 81 82
++75 64 82 75 81 82 75 81 82 75 64 82 75 81 82 75 64 82 59 69 70 75 64 82
++59 69 70 59 69 70 63 59 71 46 59 71 54 57 61 45 57 61 48 50 48 45 57 61
++43 42 50 35 46 43 34 40 43 28 30 35 30 30 34 26 30 28 22 25 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 26 24 32 22 25 24 26 24 32 22 25 24
++26 24 32 22 25 24 26 24 32 22 25 24 26 24 32 22 25 24 22 25 24 22 25 24
++23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 22 25 24 22 25 24 22 25 24
++23 20 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 22 25 24 22 25 24 26 24 32 22 25 24 22 25 24 22 25 24
++26 25 15 22 25 24 22 25 24 22 25 24 22 25 24 33 30 30 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 23 20 24 23 18 22 22 25 24 23 18 22 23 20 24
++12 18 20 23 18 22 12 18 20 12 18 20 23 18 22 14 16 17 14 16 17 23 18 22
++14 16 17 23 18 22 23 18 22 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 26 25 15 23 20 24 26 25 15 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 26 30 28 33 30 30 26 30 28 26 24 32
++33 30 30 33 30 30 33 30 32 36 35 37 36 35 37 42 38 42 42 38 42 42 38 42
++
++7 12 13 3 4 9 13 4 7 3 4 9 3 4 9 7 12 13 7 12 13 13 4 7
++7 12 13 7 12 13 7 12 13 17 12 17 14 16 17 14 16 17 14 16 17 14 16 17
++14 16 17 23 18 22 14 16 17 23 18 22 12 18 20 23 18 22 14 16 17 14 16 17
++14 16 17 17 12 17 17 12 17 7 12 13 17 12 17 17 12 17 17 12 17 7 12 13
++13 4 7 7 12 13 13 4 7 7 10 17 13 4 7 7 12 13 13 4 7 7 12 13
++13 4 7 7 12 13 13 4 7 7 12 13 17 12 17 7 12 13 15 17 7 14 16 17
++23 18 22 22 25 24 23 18 22 26 25 15 22 25 24 34 30 15 26 25 15 33 30 30
++26 25 15 29 35 19 34 30 15 32 39 24 42 47 42 47 47 21 42 47 42 49 74 23
++47 47 21 50 61 48 50 61 48 49 74 23 51 73 47 49 74 23 51 73 47 64 70 48
++51 73 47 51 73 47 51 73 47 49 74 23 51 73 47 51 73 47 49 74 23 35 46 43
++49 74 23 32 39 24 49 74 23 32 39 24 32 39 24 23 30 35 23 31 15 23 31 15
++23 31 15 15 22 17 15 22 17 15 22 17 7 12 13 12 18 20 7 12 13 12 18 20
++12 18 20 12 18 30 15 22 17 15 22 17 12 18 30 22 25 24 22 25 24 22 23 31
++23 30 35 28 30 35 28 35 38 28 35 38 34 40 43 29 34 50 43 42 50 34 40 43
++34 40 43 43 42 50 32 40 58 34 40 43 35 47 50 29 34 50 34 40 43 29 34 50
++28 35 38 28 35 38 28 35 38 28 30 35 28 30 35 28 30 35 28 30 35 33 30 36
++30 30 34 33 30 30 26 24 32 33 30 30 34 30 15 23 20 24 33 30 30 26 25 15
++33 30 30 26 25 15 33 30 30 28 13 18 33 30 30 34 30 15 33 30 30 33 30 30
++34 30 15 52 30 15 52 30 15 52 30 35 53 35 17 52 30 35 76 18 19 52 30 15
++53 35 17 76 18 19 55 39 18 55 39 18 76 18 19 53 35 17 55 39 18 76 18 19
++55 39 18 52 30 35 53 35 17 52 30 35 52 30 15 52 30 15 52 30 15 52 30 35
++52 30 15 52 30 35 52 30 15 34 30 15 52 30 15 33 30 30 34 30 15 52 30 35
++32 39 24 52 30 35 32 39 24 52 30 35 47 47 21 52 30 35 47 47 21 55 39 37
++55 39 37 55 39 37 55 39 37 55 39 37 55 39 18 60 49 42 55 39 37 60 49 42
++60 49 42 55 39 37 51 49 42 60 49 42 60 49 42 60 49 42 63 55 45 63 55 45
++63 55 45 75 56 53 63 55 45 63 55 45 63 55 45 60 49 42 63 55 45 63 55 45
++75 56 53 75 56 53 75 63 62 75 72 67 75 72 67 88 66 70 75 81 69 88 66 70
++88 83 74 88 69 84 101 83 74 88 83 88 101 83 74 88 83 88 101 83 74 88 69 84
++88 83 74 88 69 84 88 83 88 101 83 74 88 69 84 88 83 74 88 83 74 88 83 74
++88 69 84 101 83 74 88 83 88 101 83 74 88 83 88 101 83 74 88 83 88 101 83 74
++88 83 88 88 83 74 101 83 74 88 83 74 88 69 84 88 83 74 88 83 74 101 83 74
++88 69 84 88 83 88 101 83 74 101 83 74 88 83 88 101 83 74 88 83 88 101 83 74
++88 83 88 88 83 88 88 83 88 88 69 84 75 81 76 88 69 84 88 66 70 75 63 62
++75 56 53 76 44 53 75 56 53 76 44 53 62 47 47 60 49 42 59 36 42 59 36 42
++60 49 42 62 47 47 62 47 47 62 47 47 76 46 20 62 47 47 62 47 47 76 44 53
++59 36 42 76 44 53 62 47 47 76 46 20 60 49 42 59 36 42 59 36 42 62 47 47
++62 47 47 59 36 42 55 39 37 59 36 42 60 49 42 55 39 37 60 49 42 55 39 37
++55 39 37 47 44 42 53 35 37 32 39 24 52 30 35 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 26 30 28 26 30 28 26 30 28 23 20 24 26 30 28
++26 24 32 22 25 24 22 23 31 22 25 24 22 23 31 23 20 24 22 25 24 22 23 31
++22 25 24 23 20 24 22 25 24 12 18 30 23 20 24 23 20 24 12 18 30 22 25 24
++23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 22 23 31 22 25 24 22 25 24
++22 25 24 26 24 32 22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 26 30 28
++26 24 32 26 30 28 33 30 30 33 30 32 36 35 37 42 38 42 47 44 42 48 44 48
++53 46 48 53 46 48 53 46 48 53 46 48 59 55 55 59 55 55 59 55 55 59 55 55
++65 55 54 65 55 54 65 55 54 75 63 62 75 63 62 75 63 62 75 59 67 88 66 70
++88 83 74 88 69 84 88 69 84 88 69 84 88 83 74 88 69 84 75 72 67 75 63 62
++55 55 48 51 49 42 36 35 37 47 44 42 47 44 42 36 35 37 33 30 30 26 30 28
++26 25 15 23 18 22 26 25 15 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24
++23 18 22 14 16 17 14 16 17 13 4 7 3 4 9 13 4 7 7 12 13 13 4 7
++7 12 13 13 4 7 13 4 7 7 12 13 15 17 7 14 16 17 23 18 22 23 20 24
++26 30 28 33 30 30 26 30 28 23 20 24 22 25 24 22 25 24 23 18 22 23 18 22
++7 12 13 7 12 13 17 12 17 14 16 17 23 18 22 14 16 17 23 18 22 23 18 22
++14 16 17 14 16 17 14 16 17 17 12 17 14 16 17 23 20 24 33 30 30 26 30 28
++23 20 24 15 17 7 17 12 17 22 24 13 23 18 22 26 30 28 33 30 30 36 35 37
++33 30 30 33 30 30 33 30 30 33 30 30 32 39 24 36 35 37 42 41 42 42 41 42
++47 44 42 52 55 48 52 55 48 51 49 42 47 44 42 47 44 42 47 44 42 47 39 42
++47 44 42 47 44 42 51 49 42 51 49 42 51 49 42 51 49 42 51 49 42 51 49 42
++51 49 42 47 44 42 51 49 42 47 44 42 55 39 37 47 44 42 47 47 21 55 39 37
++36 35 37 53 35 37 53 35 37 36 35 37 53 35 37 32 39 24 36 35 37 36 35 37
++32 39 24 52 30 35 33 30 30 33 30 30 52 30 35 32 39 24 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 32 39 24 36 35 37 36 35 37
++47 44 42 53 46 48 55 55 48 59 57 61 59 57 61 63 59 71 59 69 70 75 64 82
++75 64 82 75 81 82 75 81 90 75 81 90 77 90 100 77 90 100 95 91 100 95 95 116
++95 95 116 94 105 108 95 95 116 95 108 128 112 96 108 95 108 128 111 119 127 95 108 128
++111 119 127 95 108 128 111 119 127 111 122 142 111 119 127 119 117 138 111 119 127 119 117 138
++119 117 138 111 119 127 95 108 128 119 117 138 95 108 128 111 119 127 95 108 128 111 119 127
++111 119 127 95 108 128 111 119 127 95 95 116 95 108 128 95 108 128 95 95 116 95 95 116
++95 95 116 95 91 100 95 91 100 77 90 100 75 81 90 75 81 90 75 81 90 75 64 82
++59 69 70 63 59 71 63 59 71 63 59 71 59 57 61 59 55 55 53 46 48 53 46 48
++53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 59 55 55 57 43 51 59 55 55
++65 55 54 59 55 55 59 55 55 65 55 54 65 57 61 65 57 61 65 57 61 65 57 61
++65 57 61 65 57 61 65 57 61 65 57 61 65 57 61 65 57 61 65 57 61 75 63 62
++65 63 61 75 59 67 65 63 61 65 63 61 65 63 61 65 57 61 65 57 61 59 57 61
++59 57 61 59 55 55 53 46 48 53 46 48 53 46 48 48 44 48 47 44 42 47 39 42
++42 38 42 36 35 37 36 35 37 33 30 32 33 30 30 33 30 30 33 30 30 22 25 24
++33 30 30 26 25 15 26 24 32 26 25 15 23 20 24 33 30 30 23 20 24 26 30 28
++23 20 24 26 30 28 26 24 32 26 30 28 23 20 24 22 25 24 26 24 32 22 25 24
++23 20 24 26 24 32 22 25 24 26 24 32 26 30 28 26 30 28 30 30 34 33 30 30
++31 35 35 33 30 32 32 39 24 36 35 37 42 41 42 47 44 42 48 44 48 48 50 48
++59 57 61 63 59 71 75 72 67 75 64 82 75 81 76 75 81 82 88 83 88 75 81 90
++88 83 88 75 81 90 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88
++75 81 82 88 83 88 75 81 82 88 83 88 75 81 82 75 81 82 75 81 82 75 64 82
++75 81 76 75 72 67 75 64 82 59 69 70 75 64 82 59 69 70 75 64 82 75 81 82
++75 81 82 75 81 90 75 81 82 75 81 90 75 81 82 75 81 82 75 64 82 75 81 76
++60 63 87 63 59 71 59 69 70 54 57 61 54 57 61 45 57 61 45 57 61 45 57 61
++43 42 50 43 42 50 34 40 43 31 35 35 30 30 34 26 24 32 26 24 32 22 25 24
++23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 26 24 32 22 25 24
++22 23 31 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24
++22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24
++22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 15 22 17 23 20 24 15 22 17
++23 20 24 12 18 20 23 20 24 14 16 17 14 16 17 23 18 22 14 16 17 23 18 22
++14 16 17 23 18 22 23 18 22 23 18 22 23 18 22 23 18 22 23 18 22 23 20 24
++23 20 24 23 20 24 26 25 15 23 20 24 22 25 24 23 20 24 23 20 24 26 25 15
++23 20 24 26 25 15 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 18 22 23 20 24 23 20 24 26 30 28
++26 30 28 33 30 30 33 30 30 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++
++3 4 9 3 3 1 6 15 6 13 4 7 7 12 13 13 4 7 7 12 13 7 12 13
++13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 15 17 7 14 16 17 14 16 17
++23 18 22 14 16 17 23 18 22 14 16 17 17 12 17 14 16 17 17 12 17 23 18 22
++17 12 17 14 16 17 17 12 17 17 12 17 7 12 13 13 4 7 7 12 13 13 4 7
++7 12 13 13 4 7 7 10 17 17 12 17 7 12 13 7 10 17 13 4 7 7 12 13
++3 4 9 13 4 7 7 12 13 17 12 17 15 17 7 15 17 7 17 12 17 14 16 17
++23 18 22 22 24 13 22 25 24 22 25 24 26 30 28 33 30 30 26 30 28 26 30 28
++34 30 15 33 30 30 32 39 24 47 47 21 42 41 42 47 47 21 47 49 42 47 49 42
++49 74 23 47 49 42 49 74 23 55 55 48 50 61 48 64 70 48 51 73 47 49 74 23
++51 73 47 51 73 47 49 74 23 50 61 48 43 55 48 49 74 23 35 46 43 35 46 43
++35 46 43 32 39 24 35 46 43 23 31 15 32 39 24 23 31 15 23 31 15 15 22 17
++15 22 17 15 22 17 15 22 17 12 18 20 7 12 13 14 16 17 7 12 13 14 16 17
++12 18 20 15 22 17 15 22 17 22 25 24 22 25 24 23 30 35 22 23 31 23 30 35
++25 30 29 23 30 35 28 35 38 28 35 38 28 35 38 34 40 43 29 34 50 29 34 50
++34 40 43 29 34 50 34 40 43 37 35 43 29 34 50 37 35 43 24 30 43 33 39 38
++28 35 38 24 30 43 28 30 35 28 30 35 30 30 34 28 30 35 33 30 36 33 30 36
++30 30 34 33 30 30 26 24 32 33 30 30 34 30 15 33 30 30 28 13 18 34 30 15
++28 13 18 33 30 30 34 30 15 33 30 30 34 30 15 28 13 18 52 30 35 49 13 16
++33 30 30 52 30 15 33 30 30 52 30 15 52 30 35 52 30 15 52 30 35 53 35 17
++52 30 35 52 30 15 52 30 35 76 18 19 53 35 17 53 35 17 52 30 15 53 35 17
++53 35 17 52 30 35 53 35 17 53 35 17 52 30 35 52 30 15 52 30 35 52 30 15
++33 30 30 49 13 16 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 34 30 15
++52 30 35 32 39 24 53 35 37 32 39 24 53 35 37 47 47 21 53 35 37 47 47 21
++55 39 37 47 47 21 55 39 37 55 39 37 55 39 37 47 47 21 55 39 37 47 47 21
++55 39 37 60 49 42 60 49 42 60 49 42 60 49 42 63 55 45 63 55 45 63 55 45
++63 55 45 63 55 45 63 55 45 63 55 45 60 49 42 63 55 45 63 55 45 63 55 45
++63 55 45 64 70 48 75 63 62 75 63 62 88 73 62 75 81 76 88 83 74 88 83 74
++88 83 74 88 83 74 88 83 74 88 83 74 88 83 88 88 83 74 88 83 88 101 83 74
++88 83 74 88 83 74 101 83 74 88 83 74 88 83 74 88 83 74 88 69 84 88 83 74
++88 83 74 88 83 88 101 83 74 88 83 88 99 93 84 88 83 88 101 83 74 88 83 88
++101 83 74 88 83 88 88 69 84 88 83 74 88 83 74 88 69 84 88 83 74 88 69 84
++88 83 74 101 83 74 88 83 88 101 83 74 88 83 88 101 83 74 88 83 88 88 83 88
++88 83 88 88 69 84 101 83 74 88 69 84 88 69 84 88 66 70 75 59 67 75 59 67
++75 59 67 75 56 53 65 55 54 62 47 47 62 47 47 59 36 42 62 47 47 59 36 42
++62 47 47 59 36 42 76 44 53 60 49 42 62 47 47 76 44 53 60 49 42 62 47 47
++62 47 47 60 49 42 59 36 42 62 47 47 60 49 42 62 47 47 60 49 42 59 36 42
++60 49 42 55 39 37 60 49 42 60 49 42 55 39 37 53 46 48 51 49 42 47 44 42
++47 44 42 47 39 42 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37 33 30 30
++33 30 30 26 30 28 26 30 28 26 24 32 22 25 24 26 24 32 22 25 24 22 23 31
++22 23 31 22 23 31 26 24 32 22 23 31 23 20 24 22 23 31 23 20 24 12 18 30
++23 20 24 12 18 30 23 20 24 23 20 24 12 18 20 22 25 24 22 25 24 22 23 31
++22 25 24 22 23 31 23 20 24 22 23 31 22 25 24 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 26 24 32 22 25 24 26 24 32
++26 24 32 26 30 28 30 30 34 36 35 37 34 40 43 42 41 42 43 42 50 48 44 48
++48 50 48 48 50 48 54 57 61 54 57 61 57 43 51 59 55 55 59 55 55 59 57 61
++59 57 61 65 57 61 65 57 61 65 63 61 75 72 67 75 72 67 75 64 82 75 81 76
++88 69 84 88 83 88 88 69 84 75 81 82 88 69 84 88 69 84 75 72 67 75 72 67
++65 63 61 65 55 54 63 55 45 51 49 42 47 44 42 32 39 24 34 30 15 22 25 24
++22 24 13 22 24 13 23 18 22 23 18 22 23 20 24 23 18 22 23 18 22 22 24 13
++23 18 22 23 18 22 17 12 17 15 17 7 17 12 17 23 20 24 23 18 22 14 16 17
++23 18 22 17 12 17 17 12 17 14 16 17 7 12 13 17 12 17 17 12 17 17 12 17
++17 12 17 17 12 17 17 12 17 23 18 22 23 18 22 26 30 28 26 24 32 23 18 22
++17 12 17 15 17 7 17 12 17 14 16 17 17 12 17 23 18 22 26 25 15 23 18 22
++26 12 13 14 16 17 14 16 17 22 24 13 14 16 17 23 18 22 23 18 22 22 25 24
++26 25 15 14 16 17 14 16 17 15 17 7 17 12 17 26 25 15 22 25 24 33 30 30
++33 30 30 29 35 19 26 30 28 22 25 24 33 30 30 36 35 37 51 49 42 52 55 48
++65 63 61 65 63 61 65 63 61 55 55 48 51 49 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 51 49 42 51 49 42 53 46 48 60 49 42 51 49 42 51 49 42
++51 49 42 55 39 37 51 49 42 55 39 37 51 49 42 51 49 42 55 39 37 47 44 42
++47 47 21 47 39 42 32 39 24 53 35 37 32 39 24 36 35 37 52 30 35 32 39 24
++33 30 32 33 30 30 32 39 24 33 30 30 33 30 30 36 35 37 33 30 30 32 39 24
++52 30 35 33 30 30 32 39 24 33 30 30 33 30 30 33 30 30 52 30 35 36 35 37
++47 44 42 48 44 48 59 55 55 59 57 61 59 57 61 63 59 71 75 72 67 75 64 82
++75 81 82 75 81 90 75 81 90 88 83 88 77 90 100 95 91 100 95 95 116 95 95 116
++95 95 116 95 95 116 95 108 128 95 108 128 95 108 128 111 119 127 111 119 127 111 119 127
++111 122 142 111 122 142 111 119 127 111 122 142 111 119 127 111 122 142 111 119 127 95 108 128
++111 119 127 95 108 128 111 119 127 95 108 128 111 119 127 112 96 108 111 119 127 95 108 128
++111 119 127 95 108 128 95 108 128 95 108 128 95 95 116 95 108 128 95 95 116 95 95 116
++95 95 116 77 91 115 77 90 100 88 69 84 77 90 100 75 81 90 75 64 82 75 81 90
++75 64 82 60 63 87 59 69 70 63 59 71 59 57 61 59 57 61 59 55 55 59 55 55
++57 43 51 59 55 55 57 43 51 55 55 48 59 55 55 59 55 55 65 57 61 65 57 61
++65 57 61 65 57 61 65 57 61 75 59 67 65 63 61 75 59 67 75 59 67 65 63 61
++65 57 61 75 59 67 65 57 61 65 57 61 75 59 67 65 63 61 75 59 67 75 59 67
++63 59 71 75 72 67 75 59 67 63 59 71 75 63 62 63 59 71 65 63 61 65 57 61
++65 57 61 59 55 55 59 55 55 59 55 55 48 44 48 48 44 48 47 39 42 47 39 42
++42 38 42 36 35 37 36 35 37 36 35 37 33 30 30 33 30 30 23 20 24 23 20 24
++23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24
++26 24 32 23 20 24 22 25 24 23 20 24 26 30 28 23 20 24 26 24 32 26 24 32
++23 20 24 26 30 28 22 25 24 22 25 24 26 24 32 26 30 28 26 30 28 33 30 32
++33 30 32 31 35 35 36 35 37 36 35 37 42 41 42 47 44 42 48 44 48 55 55 48
++59 57 61 65 63 61 59 69 70 75 81 76 75 64 82 75 81 82 88 83 88 88 83 88
++88 83 88 88 83 88 75 81 90 88 83 88 75 81 90 75 81 90 88 83 88 75 81 90
++75 81 90 88 83 88 75 81 90 88 83 88 75 81 90 88 69 84 75 81 82 60 81 83
++75 64 82 59 69 70 75 64 82 59 69 70 75 64 82 75 81 76 75 64 82 75 81 82
++75 81 82 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 60 81 83 75 64 82
++60 81 83 59 69 70 63 59 71 46 59 71 59 69 70 46 59 71 45 57 61 45 57 61
++35 47 50 35 47 50 37 35 43 33 30 36 28 30 35 28 30 35 26 24 32 22 25 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24
++23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 26 24 32 23 20 24 26 24 32
++22 25 24 22 25 24 23 20 24 23 20 24 23 20 24 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 26 30 28 23 20 24 33 30 30
++22 25 24 33 30 30 23 20 24 22 25 24 22 25 24 33 30 30 23 20 24 22 25 24
++23 20 24 26 30 28 23 20 24 26 30 28 26 25 15 23 20 24 22 25 24 22 25 24
++23 20 24 22 25 24 22 25 24 23 18 22 22 24 13 23 20 24 23 20 24 15 22 17
++23 20 24 15 22 17 12 18 20 15 22 17 12 18 20 14 16 17 14 16 17 23 18 22
++14 16 17 23 18 22 14 16 17 23 18 22 15 22 17 23 18 22 23 18 22 23 18 22
++23 20 24 23 18 22 23 20 24 23 18 22 23 20 24 23 20 24 22 25 24 23 20 24
++23 20 24 23 20 24 23 18 22 23 18 22 23 18 22 23 18 22 26 25 15 23 18 22
++23 20 24 23 20 24 23 20 24 23 20 24 26 25 15 23 20 24 22 25 24 33 30 30
++23 20 24 33 30 30 33 30 30 33 30 30 36 35 37 33 30 30 36 35 37 36 35 37
++
++3 4 9 13 4 7 3 4 9 7 12 13 3 4 9 3 4 9 3 4 9 7 12 13
++13 4 7 7 12 13 7 12 13 17 12 17 7 12 13 7 12 13 14 16 17 14 16 17
++17 12 17 14 16 17 23 18 22 17 12 17 14 16 17 23 18 22 14 16 17 17 12 17
++14 16 17 17 12 17 17 12 17 7 12 13 17 12 17 7 12 13 13 4 7 7 12 13
++13 4 7 7 12 13 7 10 17 13 4 7 7 10 17 13 4 7 7 10 17 13 4 7
++3 4 9 13 4 7 7 12 13 17 12 17 13 4 7 15 17 7 17 12 17 14 16 17
++23 18 22 23 20 24 22 25 24 26 25 15 26 30 28 34 30 15 33 30 30 33 30 30
++32 39 24 32 39 24 32 39 24 36 35 37 47 47 21 47 49 42 51 49 42 49 74 23
++51 49 42 50 61 48 52 55 48 49 74 23 50 61 48 49 74 23 50 61 48 51 73 47
++55 55 48 49 74 23 50 61 48 43 55 48 49 74 23 35 46 43 49 74 23 32 39 24
++49 74 23 32 39 24 32 39 24 32 39 24 23 31 15 23 30 35 23 31 15 15 22 17
++15 22 17 15 22 17 14 16 17 17 12 17 7 12 13 17 12 17 7 12 13 14 16 17
++14 16 17 12 18 20 12 18 20 12 18 20 22 25 24 12 18 30 22 25 24 22 25 24
++23 30 35 23 30 35 28 30 35 28 35 38 37 35 43 29 34 50 28 35 38 37 35 43
++29 34 50 34 40 43 37 35 43 29 34 50 34 40 43 29 34 50 34 40 43 29 34 50
++28 35 38 28 30 35 28 30 35 30 30 34 30 30 34 30 30 34 28 30 35 30 30 34
++33 30 30 26 24 32 33 30 30 28 13 18 33 30 30 28 13 18 34 30 15 33 30 30
++33 30 30 28 13 18 33 30 30 28 13 18 33 30 30 33 30 32 28 13 18 33 30 30
++52 30 15 33 30 30 52 30 15 52 30 15 52 30 35 53 35 17 52 30 35 76 18 19
++53 35 17 76 18 19 52 30 15 52 30 15 53 35 17 76 18 19 52 30 15 52 30 35
++76 18 19 53 35 17 52 30 35 52 30 15 52 30 35 52 30 15 34 30 15 52 30 35
++49 13 16 33 30 30 34 30 15 49 13 16 52 30 35 34 30 15 52 30 35 36 35 37
++32 39 24 33 30 30 47 47 21 53 35 37 32 39 24 55 39 37 36 35 37 55 39 37
++55 39 37 55 39 37 55 39 37 47 47 21 51 49 42 55 39 37 55 39 37 60 49 42
++55 39 37 60 49 42 47 47 21 60 49 42 60 49 42 63 55 45 63 55 45 63 55 45
++75 56 53 63 55 45 63 55 45 63 55 45 60 49 42 60 49 42 63 55 45 63 55 45
++64 70 48 75 56 53 75 63 62 75 63 62 75 72 67 75 72 67 88 66 70 88 83 74
++88 69 84 88 83 74 88 69 84 88 83 74 88 83 88 101 83 74 88 83 74 88 83 74
++88 69 84 88 83 74 88 83 88 88 69 84 88 83 74 88 69 84 88 83 74 101 83 74
++88 83 88 101 83 74 88 83 88 99 93 84 99 93 84 88 83 88 99 93 84 88 83 88
++101 83 74 88 83 88 101 83 74 88 69 84 88 83 74 88 83 74 88 83 88 101 83 74
++88 83 88 88 83 88 101 83 74 88 83 88 101 83 74 95 91 100 101 83 74 95 91 100
++101 83 74 88 83 88 88 83 88 88 83 88 88 83 74 88 69 84 88 66 70 75 59 67
++75 56 53 75 56 53 76 44 53 62 47 47 76 44 53 60 49 42 76 44 53 59 36 42
++62 47 47 62 47 47 60 49 42 76 44 53 59 36 42 60 49 42 76 44 53 62 47 47
++76 44 53 62 47 47 76 46 20 59 36 42 60 49 42 59 36 42 62 47 47 60 49 42
++59 36 42 62 47 47 55 39 37 59 36 42 53 46 48 55 39 37 51 49 42 55 39 37
++47 39 42 55 39 37 36 35 37 52 30 35 32 39 24 52 30 35 33 30 30 33 30 30
++33 30 30 33 30 30 26 24 32 26 30 28 22 25 24 22 25 24 22 23 31 26 24 32
++22 25 24 22 23 31 22 25 24 22 23 31 23 20 24 23 20 24 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 12 18 20 23 20 24 22 23 31 23 20 24 22 23 31
++23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 22 23 31 23 20 24 22 25 24
++22 23 31 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 22 23 31 26 30 28
++26 24 32 30 30 34 28 35 38 37 35 43 42 38 42 43 42 50 43 42 50 48 44 48
++48 44 48 45 57 61 57 43 51 48 44 48 59 55 55 59 55 55 59 57 61 59 55 55
++59 57 61 65 63 61 65 63 61 65 63 61 75 63 62 75 63 62 75 72 67 88 69 84
++88 69 84 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 69 84 75 72 67
++75 72 67 75 72 67 65 63 61 51 49 42 53 35 37 33 30 30 26 30 28 26 25 15
++26 25 15 17 12 17 22 24 13 23 18 22 22 24 13 23 18 22 23 18 22 14 16 17
++23 18 22 23 18 22 14 16 17 14 16 17 23 20 24 26 30 28 26 24 32 23 20 24
++23 18 22 23 18 22 22 24 13 17 12 17 14 16 17 14 16 17 13 4 7 15 17 7
++13 4 7 7 12 13 15 17 7 7 12 13 15 17 7 17 12 17 23 18 22 22 24 13
++14 16 17 23 18 22 14 16 17 17 12 17 15 22 17 23 18 22 23 18 22 17 12 17
++15 17 7 17 12 17 15 22 17 23 18 22 23 18 22 17 12 17 15 22 17 23 18 22
++23 18 22 22 24 13 17 12 17 17 12 17 15 17 7 14 16 17 23 18 22 26 25 15
++22 25 24 23 20 24 33 30 30 22 25 24 29 35 19 33 30 30 42 41 42 59 55 55
++75 72 67 75 81 76 75 72 67 75 72 67 65 63 61 65 63 61 51 49 42 47 44 42
++47 44 42 51 49 42 55 55 48 53 46 48 60 49 42 51 49 42 53 46 48 60 49 42
++51 49 42 51 49 42 51 49 42 60 49 42 51 49 42 55 39 37 47 44 42 55 39 37
++47 39 42 53 35 37 47 47 21 36 35 37 53 35 37 36 35 37 32 39 24 52 30 35
++33 30 30 36 35 37 33 30 30 52 30 35 33 30 30 32 39 24 52 30 35 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 32 39 24 36 35 37
++47 39 42 48 44 48 53 46 48 59 57 61 59 57 61 63 59 71 63 59 71 75 81 82
++75 64 82 75 81 90 75 81 90 77 90 100 77 90 100 77 90 100 95 91 100 94 105 108
++95 95 116 95 108 128 95 95 116 95 108 128 111 119 127 95 108 128 111 119 127 95 108 128
++98 121 131 111 122 142 111 119 127 111 122 142 119 117 138 95 108 128 111 119 127 119 117 138
++111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 95 108 128 111 119 127 95 108 128
++119 117 138 112 96 108 111 119 127 95 108 128 111 119 127 95 95 116 95 108 128 95 95 116
++95 95 116 77 91 115 95 91 100 77 91 115 75 81 90 75 81 90 75 81 90 60 63 87
++75 64 82 63 59 71 75 64 82 59 69 70 65 63 61 59 57 61 59 57 61 59 55 55
++65 55 54 59 55 55 59 55 55 59 55 55 59 55 55 65 57 61 65 57 61 75 59 67
++65 57 61 75 59 67 75 59 67 75 59 67 75 59 67 75 64 82 75 72 67 75 64 82
++75 59 67 75 72 67 75 59 67 75 72 67 75 59 67 75 59 67 75 72 67 75 64 82
++75 72 67 75 72 67 75 64 82 75 72 67 75 59 67 65 63 61 75 59 67 65 63 61
++65 57 61 59 57 61 59 55 55 57 43 51 53 46 48 48 44 48 48 44 48 48 44 48
++47 39 42 36 35 37 42 38 42 33 30 32 33 30 30 33 30 30 33 30 30 23 20 24
++33 30 30 26 25 15 23 20 24 33 30 30 26 24 32 26 25 15 23 20 24 22 25 24
++26 30 28 23 20 24 26 30 28 23 20 24 22 25 24 22 25 24 23 20 24 23 20 24
++22 23 31 22 25 24 26 24 32 22 25 24 22 25 24 26 24 32 26 30 28 33 30 30
++31 35 35 33 30 30 36 35 37 36 35 37 36 35 37 47 44 42 48 44 48 55 55 48
++59 57 61 75 72 67 63 59 71 75 72 67 75 81 76 75 81 82 75 81 82 75 81 90
++88 83 88 88 83 88 88 83 88 78 98 90 88 83 88 88 83 88 88 83 88 75 81 90
++88 83 88 75 81 90 88 83 88 88 83 88 75 81 90 75 81 90 75 81 90 75 81 82
++60 81 83 75 64 82 60 81 83 75 64 82 75 72 67 75 64 82 75 81 82 75 81 82
++75 81 90 88 83 88 88 83 88 95 91 100 75 81 90 75 81 90 75 81 90 75 81 90
++75 64 82 60 63 87 59 69 70 59 69 70 63 59 71 46 59 71 54 57 61 45 57 61
++45 57 61 43 42 50 29 34 50 37 35 43 28 30 35 26 24 32 25 30 29 22 23 31
++23 20 24 15 22 17 23 20 24 15 22 17 23 20 24 23 20 24 23 20 24 22 25 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 26 24 32 23 20 24
++22 23 31 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 26 24 32 26 24 32
++22 25 24 26 24 32 23 20 24 26 30 28 23 20 24 22 25 24 33 30 30 22 25 24
++22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 33 30 30
++26 25 15 26 30 28 22 25 24 23 20 24 22 25 24 23 20 24 26 24 32 22 25 24
++22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 15 22 17 23 20 24 23 20 24
++12 18 20 23 20 24 12 18 20 23 18 22 14 16 17 14 16 17 23 18 22 23 18 22
++23 18 22 23 18 22 23 18 22 23 18 22 17 12 17 14 16 17 14 16 17 23 18 22
++23 18 22 23 18 22 23 18 22 23 18 22 26 25 15 23 20 24 26 25 15 23 20 24
++23 20 24 23 20 24 23 18 22 22 24 13 23 18 22 23 18 22 23 18 22 23 20 24
++23 20 24 23 18 22 23 18 22 23 18 22 23 18 22 23 20 24 23 20 24 23 20 24
++22 25 24 26 30 28 26 30 28 32 39 24 33 30 30 36 35 37 32 39 24 33 30 32
++
++3 4 9 3 3 1 3 4 9 13 4 7 3 4 9 7 12 13 13 4 7 7 12 13
++3 4 9 7 12 13 13 4 7 7 12 13 7 12 13 17 12 17 14 16 17 14 16 17
++14 16 17 23 18 22 14 16 17 17 12 17 14 16 17 23 18 22 17 12 17 14 16 17
++17 12 17 17 12 17 7 12 13 17 12 17 13 4 7 7 12 13 13 4 7 7 12 13
++7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 7 10 17 7 12 13 7 12 13
++13 4 7 7 12 13 7 12 13 13 4 7 15 17 7 14 16 17 14 16 17 22 24 13
++23 18 22 26 25 15 22 25 24 26 30 28 33 30 30 29 35 19 33 30 30 34 30 15
++32 39 24 32 39 24 32 39 24 47 47 21 42 47 42 47 49 42 51 49 42 49 74 23
++50 61 48 49 74 23 47 49 42 50 61 48 49 74 23 51 49 42 51 73 47 49 74 23
++50 61 48 50 61 48 49 74 23 47 49 42 47 47 21 35 46 43 32 39 24 32 39 24
++35 46 43 32 39 24 32 39 24 32 39 24 23 31 15 23 31 15 15 22 17 15 22 17
++15 22 17 15 22 17 12 18 20 7 12 13 7 12 13 7 12 13 17 12 17 7 12 13
++14 16 17 12 18 20 12 18 20 22 25 24 12 18 30 22 25 24 22 23 31 22 23 31
++23 30 35 23 30 35 28 30 35 24 30 43 28 35 38 28 30 35 24 30 43 24 30 43
++28 35 38 28 30 35 24 30 43 28 35 38 24 30 43 28 35 38 28 35 38 28 30 35
++28 30 35 28 30 35 28 30 35 28 30 35 26 24 32 30 30 34 26 30 28 26 24 32
++26 24 32 33 30 30 23 20 24 33 30 30 34 30 15 33 30 30 23 20 24 34 30 15
++28 13 18 33 30 30 34 30 15 33 30 30 49 13 16 33 30 30 33 30 30 49 13 16
++34 30 15 52 30 15 52 30 35 52 30 15 52 30 35 52 30 15 52 30 15 53 35 17
++52 30 35 52 30 15 52 30 35 52 30 15 52 30 35 52 30 15 53 35 17 52 30 15
++52 30 35 53 35 17 52 30 15 52 30 35 34 30 15 52 30 35 49 13 16 33 30 30
++34 30 15 33 30 30 49 13 16 33 30 30 33 30 30 33 30 30 52 30 35 34 30 15
++52 30 35 32 39 24 52 30 35 32 39 24 55 39 37 47 47 21 55 39 37 47 47 21
++47 44 42 47 47 21 55 39 37 55 39 37 55 39 37 47 47 21 51 49 42 47 47 21
++60 49 42 60 49 42 60 49 42 63 55 45 60 49 42 63 55 45 63 55 45 63 55 45
++63 55 45 60 49 42 60 49 42 60 49 42 60 49 42 63 55 45 63 55 45 63 55 45
++65 55 54 63 55 51 64 70 48 75 63 62 75 72 67 88 83 74 88 83 74 88 69 84
++88 83 74 88 83 74 88 83 74 88 83 74 88 83 74 88 83 74 88 69 84 88 83 74
++88 83 74 88 83 74 88 83 74 101 83 74 88 83 74 88 83 74 88 83 74 88 69 84
++101 83 74 88 83 88 101 83 74 88 83 88 101 83 74 99 93 84 101 83 74 88 83 88
++101 83 74 88 83 88 101 83 74 88 83 88 101 83 74 88 69 84 88 83 74 88 83 88
++101 83 74 88 83 88 99 93 84 88 83 88 99 93 84 88 69 84 112 96 108 88 69 84
++95 91 100 88 69 84 88 83 88 88 69 84 88 69 84 88 69 84 88 66 70 75 63 62
++75 59 67 75 56 53 65 55 54 76 44 53 62 47 47 62 47 47 60 49 42 62 47 47
++76 44 53 62 47 47 76 44 53 60 49 42 62 47 47 62 47 47 62 47 47 62 47 47
++62 47 47 62 47 47 62 47 47 62 47 47 60 49 42 62 47 47 60 49 42 59 36 42
++53 46 48 60 49 42 53 46 48 53 46 48 53 46 48 53 46 48 51 49 42 47 44 42
++47 44 42 42 38 42 36 35 37 36 35 37 36 35 37 33 30 30 33 30 32 33 30 32
++26 24 32 26 30 28 26 24 32 22 25 24 22 23 31 26 24 32 22 25 24 22 23 31
++22 23 31 22 23 31 22 25 24 23 20 24 12 18 30 23 20 24 23 20 24 23 20 24
++22 23 31 23 20 24 12 18 20 23 20 24 12 18 20 23 20 24 22 25 24 23 20 24
++23 20 24 22 25 24 22 23 31 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 23 20 24 22 23 31 22 25 24 22 23 31 22 23 31 26 24 32
++25 30 29 28 30 35 33 30 36 34 40 43 34 40 43 43 42 50 43 42 50 48 50 48
++48 50 48 57 43 64 48 50 48 54 57 61 57 43 51 54 57 61 59 55 55 59 55 55
++65 57 61 65 57 61 65 63 61 75 72 67 75 72 67 75 64 82 88 69 84 75 81 76
++88 83 88 88 69 84 88 83 88 88 83 88 88 83 88 88 83 88 88 83 74 75 81 76
++75 72 67 75 72 67 63 55 51 47 49 42 33 30 30 26 25 15 23 20 24 22 25 24
++23 18 22 22 24 13 17 12 17 17 12 17 23 18 22 23 18 22 14 16 17 23 18 22
++14 16 17 23 18 22 14 16 17 23 18 22 23 18 22 22 25 24 26 30 28 23 20 24
++23 20 24 23 18 22 23 18 22 14 16 17 14 16 17 14 16 17 14 16 17 7 12 13
++13 4 7 7 12 13 17 12 17 17 12 17 17 12 17 14 16 17 14 16 17 17 12 17
++23 18 22 15 22 17 23 18 22 17 12 17 17 12 17 22 24 13 17 12 17 14 16 17
++15 17 7 17 12 17 23 18 22 22 25 24 23 18 22 14 16 17 23 18 22 14 16 17
++22 24 13 17 12 17 14 16 17 15 17 7 17 12 17 17 12 17 22 24 13 23 18 22
++22 25 24 26 25 15 23 20 24 22 25 24 23 20 24 33 30 30 36 35 37 51 49 42
++59 57 61 75 72 67 75 72 67 75 81 76 88 83 74 75 72 67 63 55 51 51 49 42
++47 44 42 51 49 42 51 49 42 51 49 42 51 49 42 53 46 48 60 49 42 51 49 42
++51 49 42 60 49 42 51 49 42 51 49 42 60 49 42 51 49 42 55 39 37 47 47 21
++47 39 42 47 47 21 36 35 37 36 35 37 36 35 37 36 35 37 53 35 37 32 39 24
++33 30 30 52 30 35 32 39 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++32 39 24 52 30 35 33 30 30 33 30 30 33 30 30 33 30 32 36 35 37 47 39 42
++42 41 42 47 44 42 53 46 48 59 57 61 59 57 61 59 69 70 75 64 82 75 64 82
++75 81 82 75 81 90 75 81 90 77 90 100 95 91 100 95 95 116 77 91 115 95 95 116
++95 95 116 95 108 128 95 108 128 95 108 128 111 119 127 95 108 128 111 119 127 111 122 142
++119 117 138 111 122 142 111 119 127 111 122 142 111 119 127 111 122 142 111 119 127 95 108 128
++119 117 138 111 119 127 95 108 128 111 119 127 95 108 128 119 117 138 95 108 128 111 119 127
++95 108 128 111 119 127 95 108 128 112 96 108 95 108 128 95 108 128 112 96 108 95 95 116
++95 95 116 95 95 116 88 83 88 75 81 90 88 69 84 61 78 101 88 69 84 75 64 82
++75 81 82 63 59 71 59 69 70 63 59 71 63 59 71 65 63 61 59 57 61 59 55 55
++59 55 55 59 55 55 65 57 61 59 55 55 65 57 61 65 57 61 75 59 67 63 59 71
++75 59 67 63 59 71 75 72 67 75 64 82 75 72 67 75 72 67 75 64 82 75 72 67
++75 64 82 75 72 67 75 64 82 75 72 67 75 64 82 75 72 67 75 64 82 75 72 67
++75 64 82 75 72 67 75 72 67 75 64 82 75 72 67 63 59 71 63 59 71 63 59 71
++65 63 61 65 57 61 59 55 55 57 43 64 53 46 48 53 46 48 48 44 48 48 44 48
++42 38 42 42 38 42 36 35 37 33 30 32 33 30 32 33 30 30 23 20 24 26 25 15
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24
++23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 22 23 31 22 25 24
++22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 26 30 28 26 24 32 33 30 32
++33 30 32 31 35 35 36 35 37 36 35 37 47 44 42 47 44 42 48 50 48 53 46 48
++59 57 61 59 69 70 75 72 67 75 64 82 75 64 82 75 81 82 88 83 88 88 83 88
++88 83 88 77 90 100 88 83 88 88 83 88 88 83 88 75 81 90 75 81 90 88 83 88
++88 83 88 75 81 90 88 83 88 75 81 90 88 83 88 75 81 90 75 81 82 75 81 82
++75 64 82 75 81 82 75 64 82 75 81 76 60 81 83 75 64 82 75 81 76 75 81 90
++88 83 88 88 83 88 77 90 100 88 83 88 77 90 100 88 83 88 75 81 90 75 81 90
++60 81 83 75 81 82 60 63 87 59 69 70 59 69 70 63 59 71 46 59 71 45 57 61
++45 57 61 43 42 50 35 47 50 37 35 43 28 35 38 28 30 35 26 24 32 22 25 24
++23 20 24 23 20 24 12 18 20 23 20 24 23 20 24 15 22 17 23 20 24 23 20 24
++23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24
++26 30 28 22 25 24 22 25 24 26 30 28 22 25 24 33 30 30 23 20 24 22 25 24
++26 30 28 23 20 24 22 25 24 23 20 24 26 30 28 22 25 24 33 30 30 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24
++23 20 24 22 25 24 23 20 24 23 18 22 15 22 17 23 20 24 23 20 24 15 22 17
++23 20 24 12 18 20 15 22 17 12 18 20 15 22 17 23 18 22 14 16 17 14 16 17
++23 18 22 14 16 17 14 16 17 14 16 17 23 18 22 14 16 17 23 18 22 23 18 22
++14 16 17 23 18 22 14 16 17 23 18 22 23 18 22 23 20 24 23 20 24 23 18 22
++23 20 24 23 18 22 23 18 22 23 20 24 23 18 22 15 22 17 23 18 22 23 18 22
++23 18 22 15 22 17 23 20 24 23 18 22 22 25 24 23 18 22 22 25 24 23 20 24
++33 30 30 23 20 24 33 30 30 33 30 30 33 30 30 33 30 32 31 35 35 33 30 32
++
++3 3 1 3 4 9 3 4 9 6 15 6 3 4 9 13 4 7 7 12 13 3 4 9
++13 4 7 7 12 13 7 12 13 7 12 13 17 12 17 14 16 17 14 16 17 17 12 17
++17 12 17 17 12 17 14 16 17 17 12 17 17 12 17 14 16 17 17 12 17 14 16 17
++17 12 17 7 12 13 17 12 17 7 12 13 7 12 13 17 12 17 7 12 13 7 12 13
++13 4 7 7 12 13 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 7 12 13
++7 12 13 7 12 13 17 12 17 7 12 13 15 17 7 14 16 17 22 24 13 22 24 13
++26 25 15 22 25 24 26 25 15 29 35 19 34 30 15 32 39 24 33 30 30 32 39 24
++32 39 24 36 35 37 47 47 21 33 39 38 47 47 21 47 49 42 47 49 42 49 74 23
++50 61 48 47 47 21 51 73 47 47 47 21 50 61 48 50 61 48 49 74 23 50 61 48
++50 61 48 49 74 23 47 49 42 49 74 23 35 46 43 49 74 23 35 46 43 32 39 24
++35 46 43 32 39 24 32 39 24 23 31 15 23 30 35 23 31 15 15 22 17 15 22 17
++12 18 20 12 18 20 12 18 20 7 10 17 14 16 17 7 10 17 14 16 17 7 10 17
++14 16 17 14 16 17 12 18 20 12 18 20 22 25 24 12 18 30 12 18 30 22 23 31
++22 23 31 23 30 35 23 30 35 23 30 35 23 30 35 24 30 43 23 30 35 28 30 35
++23 30 35 23 30 35 28 30 35 28 35 38 33 30 36 23 30 35 26 24 32 26 24 32
++26 24 32 28 30 35 26 24 32 26 24 32 26 24 32 26 24 32 22 25 24 22 25 24
++33 30 30 26 25 15 33 30 30 23 20 24 33 30 30 28 13 18 33 30 30 23 20 24
++33 30 30 26 25 15 28 13 18 34 30 15 33 30 30 34 30 15 52 30 15 33 30 30
++49 13 16 33 30 30 52 30 15 52 30 35 52 30 15 52 30 15 52 30 35 52 30 15
++52 30 15 52 30 15 52 30 15 76 18 19 52 30 15 52 30 15 52 30 35 52 30 35
++52 30 15 52 30 35 52 30 15 33 30 30 52 30 15 34 30 15 33 30 30 34 30 15
++28 13 18 34 30 15 33 30 30 33 30 30 34 30 15 33 30 30 32 39 24 33 30 30
++32 39 24 52 30 35 32 39 24 53 35 37 55 39 37 36 35 37 42 47 42 55 39 37
++47 44 42 47 47 21 47 44 42 47 47 21 51 49 42 51 49 42 51 49 42 60 49 42
++60 49 42 63 55 45 60 49 42 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45
++63 55 45 60 49 42 63 55 45 60 49 42 63 55 45 60 49 42 63 55 45 63 55 51
++64 70 48 75 56 53 65 63 61 75 72 67 75 72 67 88 66 70 75 81 76 88 83 74
++88 83 74 88 83 74 88 83 88 88 83 74 88 69 84 88 83 74 88 83 88 101 83 74
++88 69 84 88 83 74 88 83 74 88 66 70 88 83 74 88 69 84 88 83 74 88 83 74
++88 83 74 88 83 74 101 83 74 99 93 84 88 83 88 99 93 84 88 83 88 101 83 74
++88 83 74 88 69 84 88 83 74 88 83 74 88 83 88 101 83 74 88 83 88 101 83 74
++88 83 88 99 93 84 88 69 84 95 91 100 101 83 74 95 91 100 88 83 88 112 96 108
++101 83 74 95 91 100 88 83 88 88 83 88 88 83 74 88 69 84 88 66 70 75 63 62
++75 59 67 65 55 54 65 55 54 62 47 47 62 47 47 62 47 47 62 47 47 59 36 42
++62 47 47 62 47 47 62 47 47 62 47 47 62 47 47 62 47 47 62 47 47 62 47 47
++62 47 47 62 47 47 62 47 47 62 47 47 60 49 42 59 36 42 53 46 48 53 46 48
++53 46 48 55 39 37 53 46 48 53 46 48 53 46 48 57 43 51 47 44 42 53 46 48
++47 44 42 47 44 42 47 44 42 36 35 37 36 35 37 31 35 35 30 30 34 26 24 32
++26 24 32 26 24 32 22 23 31 22 23 31 22 25 24 22 23 31 22 25 24 22 23 31
++22 25 24 22 23 31 22 25 24 12 18 30 22 25 24 22 25 24 12 18 30 12 18 20
++23 20 24 12 18 20 23 20 24 12 18 30 23 20 24 12 18 20 23 20 24 12 18 30
++22 25 24 12 18 20 22 25 24 15 22 17 23 20 24 22 25 24 23 20 24 15 22 17
++22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 22 23 31 22 23 31
++23 30 35 28 35 38 28 35 38 29 34 50 43 42 50 35 47 50 43 42 50 43 42 50
++43 42 50 48 50 48 48 50 48 57 43 64 59 55 55 59 55 55 59 57 61 59 57 61
++65 57 61 63 59 71 75 72 67 75 64 82 75 64 82 75 81 76 88 69 84 88 69 84
++88 83 88 88 83 88 88 83 88 95 91 100 88 83 88 88 83 88 75 81 76 75 72 67
++75 72 67 59 55 55 51 49 42 33 30 30 26 30 28 22 25 24 23 18 22 23 18 22
++23 18 22 23 18 22 14 16 17 23 18 22 14 16 17 15 22 17 17 12 17 15 22 17
++17 12 17 22 24 13 17 12 17 14 16 17 17 12 17 23 18 22 23 18 22 23 20 24
++15 22 17 14 16 17 14 16 17 15 17 7 17 12 17 15 17 7 23 18 22 15 22 17
++17 12 17 7 12 13 15 17 7 14 16 17 14 16 17 15 22 17 23 18 22 15 22 17
++23 18 22 23 18 22 23 18 22 15 22 17 14 16 17 14 16 17 23 18 22 14 16 17
++17 12 17 7 12 13 14 16 17 23 20 24 26 25 15 23 18 22 23 18 22 17 12 17
++7 12 13 17 12 17 7 12 13 15 17 7 17 12 17 17 12 17 14 16 17 22 24 13
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 33 30 32 42 41 42
++48 50 48 59 57 61 65 63 61 75 72 67 75 81 76 75 72 67 65 55 54 63 55 51
++55 55 48 51 49 42 53 46 48 51 49 42 51 49 42 55 55 48 60 49 42 60 49 42
++60 49 42 51 49 42 60 49 42 51 49 42 51 49 42 55 39 37 47 44 42 47 44 42
++55 39 37 47 39 42 55 39 37 53 35 37 42 38 42 47 47 21 36 35 37 36 35 37
++33 30 30 32 39 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 32 33 30 32 33 30 32 36 35 37 36 35 37
++47 39 42 48 50 48 57 43 51 54 57 61 59 57 61 59 69 70 59 69 70 60 63 87
++75 81 90 75 81 90 77 90 100 77 90 100 95 95 116 77 91 115 95 95 116 95 108 128
++94 105 108 95 108 128 111 119 127 95 108 128 111 119 127 111 119 127 111 122 142 111 119 127
++98 121 131 119 117 138 111 122 142 111 119 127 111 122 142 111 119 127 111 122 142 119 117 138
++98 121 131 119 117 138 111 119 127 119 117 138 111 119 127 111 119 127 111 119 127 95 108 128
++111 119 127 95 108 128 119 117 138 95 108 128 95 108 128 95 95 116 95 108 128 95 95 116
++95 95 116 77 91 115 95 91 100 77 91 115 77 90 100 75 81 90 75 64 82 75 81 90
++75 64 82 75 64 82 63 59 71 63 59 71 65 63 61 63 59 71 59 57 61 59 57 61
++59 55 55 65 57 61 59 57 61 59 57 61 65 57 61 63 59 71 63 59 71 63 59 71
++75 72 67 75 64 82 75 72 67 75 64 82 75 81 76 88 69 84 75 72 67 75 81 76
++75 64 82 75 72 67 75 64 82 75 64 82 75 72 67 75 64 82 75 81 76 75 64 82
++75 81 76 75 64 82 75 64 82 75 72 67 75 64 82 63 59 71 75 72 67 75 59 67
++63 59 71 59 57 61 59 55 55 59 55 55 54 57 61 53 46 48 48 44 48 48 44 48
++42 41 42 36 35 37 42 38 42 36 35 37 33 30 32 26 24 32 33 30 30 26 24 32
++26 24 32 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 22 25 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 23 20 24 23 20 24 22 25 24 26 24 32 26 30 28 33 30 30
++30 30 34 33 30 30 33 30 30 36 35 37 42 38 42 42 41 42 48 44 48 55 55 48
++59 57 61 65 63 61 59 69 70 75 64 82 75 81 76 88 69 84 75 81 90 88 83 88
++88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 77 90 100
++88 83 88 88 83 88 75 81 90 75 81 90 75 81 90 75 81 90 75 64 82 75 81 90
++75 81 82 75 64 82 75 81 82 60 81 83 75 64 82 75 81 82 75 81 82 75 81 82
++75 81 90 77 90 100 88 83 88 77 90 100 88 83 88 77 90 100 75 81 90 75 81 90
++75 81 90 60 63 87 60 81 83 60 63 87 60 63 87 63 59 71 46 59 71 57 43 64
++45 57 61 43 42 50 35 47 50 34 40 43 33 30 36 28 30 35 26 24 32 22 23 31
++12 18 20 23 20 24 23 20 24 23 20 24 23 20 24 23 18 22 12 18 20 23 20 24
++15 22 17 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24
++22 25 24 26 24 32 22 25 24 22 25 24 22 25 24 23 20 24 23 20 24 23 20 24
++22 25 24 23 20 24 22 25 24 26 25 15 26 30 28 22 25 24 26 25 15 23 20 24
++26 25 15 23 20 24 26 30 28 26 25 15 23 20 24 23 20 24 22 25 24 22 25 24
++22 25 24 26 24 32 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 23 20 24 15 22 17 23 20 24 23 20 24 22 25 24 12 18 20
++23 20 24 12 18 20 23 18 22 23 18 22 14 16 17 12 18 20 14 16 17 14 16 17
++14 16 17 14 16 17 14 16 17 23 18 22 15 22 17 17 12 17 23 18 22 17 12 17
++23 18 22 14 16 17 23 18 22 14 16 17 23 18 22 23 20 24 23 20 24 23 18 22
++23 18 22 23 18 22 23 18 22 15 22 17 23 18 22 23 18 22 23 18 22 15 22 17
++23 18 22 15 22 17 23 18 22 15 22 17 23 18 22 22 25 24 23 20 24 22 25 24
++22 25 24 22 25 24 26 24 32 26 30 28 26 30 28 30 30 34 33 30 32 30 30 34
++
++3 4 9 3 4 9 3 4 9 13 4 7 3 4 9 7 12 13 3 4 9 13 4 7
++7 12 13 13 4 7 7 12 13 17 12 17 7 12 13 14 16 17 14 16 17 14 16 17
++14 16 17 17 12 17 17 12 17 14 16 17 17 12 17 17 12 17 7 12 13 17 12 17
++17 12 17 7 12 13 13 4 7 17 12 17 13 4 7 7 12 13 13 4 7 7 12 13
++7 12 13 13 4 7 7 12 13 3 4 9 7 12 13 13 4 7 7 12 13 17 12 17
++13 4 7 7 12 13 15 17 7 15 17 7 17 12 17 15 17 7 23 18 22 26 25 15
++22 25 24 26 25 15 26 30 28 33 30 30 33 30 30 32 39 24 32 39 24 33 30 30
++32 39 24 47 47 21 33 39 38 47 49 42 42 47 42 47 49 42 49 74 23 47 49 42
++49 74 23 50 61 48 49 74 23 43 55 48 49 74 23 47 49 42 49 74 23 47 49 42
++49 74 23 47 49 42 49 74 23 42 47 42 47 47 21 32 39 24 35 46 43 49 74 23
++32 39 24 32 39 24 32 39 24 23 31 15 23 31 15 15 22 17 23 31 15 15 22 17
++15 22 17 7 12 13 14 16 17 14 16 17 7 10 17 7 12 13 14 16 17 7 10 17
++17 12 17 14 16 17 14 16 17 12 18 20 12 18 30 22 25 24 12 18 30 22 25 24
++12 18 30 25 30 29 22 23 31 22 23 31 22 23 31 23 30 35 22 23 31 23 30 35
++22 23 31 26 24 32 25 30 29 22 23 31 23 30 35 26 24 32 22 23 31 22 25 24
++22 23 31 26 30 28 26 24 32 26 24 32 22 25 24 22 25 24 22 25 24 22 25 24
++26 25 15 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30 26 25 15 23 20 24
++33 30 30 23 20 24 33 30 30 33 30 30 49 13 16 33 30 30 33 30 30 52 30 15
++33 30 30 52 30 15 52 30 15 52 30 35 49 13 16 52 30 35 52 30 15 52 30 15
++52 30 15 52 30 35 52 30 15 52 30 15 52 30 35 52 30 35 52 30 15 76 18 19
++52 30 35 52 30 15 52 30 35 49 13 16 33 30 30 34 30 15 33 30 30 52 30 15
++33 30 30 33 30 30 28 13 18 34 30 15 52 30 35 33 30 30 52 30 35 32 39 24
++52 30 35 32 39 24 36 35 37 53 35 37 47 47 21 47 39 42 47 47 21 47 44 42
++55 39 37 47 47 21 47 44 42 47 47 21 51 49 42 47 47 21 60 49 42 51 49 42
++60 49 42 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45
++63 55 45 60 49 42 63 55 45 60 49 42 63 55 45 60 49 42 63 55 45 63 55 45
++65 55 54 65 63 61 75 63 62 75 63 62 75 72 67 75 81 76 88 83 74 88 69 84
++88 83 74 88 83 88 88 83 74 88 83 74 88 83 88 101 83 74 88 83 74 88 83 74
++88 83 74 88 83 74 88 73 62 88 83 74 88 66 70 88 83 74 88 83 74 88 83 74
++101 83 74 88 83 74 88 83 88 101 83 74 99 93 84 101 83 74 88 83 88 101 83 74
++88 83 88 88 83 74 88 83 74 88 69 84 88 83 74 88 83 88 101 83 74 88 83 88
++88 83 88 101 83 74 95 91 100 101 83 74 95 91 100 95 91 100 101 83 74 95 91 100
++88 69 84 95 91 100 101 60 73 88 83 88 88 69 84 88 69 84 88 66 70 75 72 67
++75 59 67 75 56 53 65 55 54 62 47 47 62 47 47 62 47 47 62 47 47 62 47 47
++62 47 47 62 47 47 76 44 53 62 47 47 62 47 47 62 47 47 75 56 53 62 47 47
++76 44 53 63 55 45 62 47 47 62 47 47 53 46 48 60 49 42 53 46 48 60 49 42
++53 46 48 60 49 42 53 46 48 53 46 48 53 46 48 47 39 42 53 46 48 47 44 42
++47 44 42 47 44 42 42 38 42 36 35 37 33 39 38 31 35 35 30 30 34 26 24 32
++22 23 31 26 24 32 22 25 24 22 23 31 22 23 31 22 25 24 22 23 31 22 25 24
++22 23 31 22 25 24 12 18 30 22 25 24 12 18 30 12 18 20 12 18 20 23 18 22
++12 18 20 23 18 22 12 18 20 23 18 22 12 18 20 23 20 24 12 18 20 23 18 22
++12 18 20 15 22 17 12 18 20 15 22 17 15 22 17 23 18 22 15 22 17 23 18 22
++22 25 24 22 25 24 15 22 17 22 23 31 12 18 30 22 25 24 22 23 31 22 23 31
++23 30 35 28 30 35 34 40 43 37 35 43 32 40 58 43 42 50 43 42 50 48 50 48
++57 43 64 48 50 48 54 57 61 59 55 55 59 55 55 57 43 64 65 57 61 65 57 61
++65 57 61 65 63 61 75 59 67 75 64 82 75 81 76 88 69 84 75 81 82 88 69 84
++88 83 88 95 91 100 88 83 88 95 91 100 88 83 88 88 83 88 75 72 67 75 72 67
++59 55 55 51 49 42 33 39 38 26 25 15 22 25 24 23 18 22 23 20 24 15 22 17
++23 18 22 23 18 22 23 18 22 14 16 17 17 12 17 17 12 17 17 12 17 23 18 22
++23 18 22 23 18 22 14 16 17 23 18 22 14 16 17 23 18 22 23 18 22 22 25 24
++23 18 22 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 23 18 22 23 18 22
++15 22 17 17 12 17 17 12 17 14 16 17 14 16 17 23 18 22 22 24 13 22 25 24
++22 25 24 22 25 24 22 25 24 14 16 17 23 18 22 14 16 17 14 16 17 14 16 17
++14 16 17 17 12 17 22 24 13 23 20 24 22 25 24 22 25 24 23 18 22 14 16 17
++17 12 17 6 15 6 13 4 7 17 12 17 17 12 17 15 17 7 17 12 17 22 24 13
++23 18 22 23 18 22 23 18 22 23 18 22 23 20 24 23 20 24 33 30 32 42 38 42
++48 50 48 59 55 55 59 55 55 65 63 61 75 72 67 75 72 67 75 81 69 75 72 67
++75 63 62 55 55 48 53 46 48 51 49 42 51 49 42 51 49 42 51 49 42 60 49 42
++60 49 42 60 49 42 51 49 42 55 39 37 51 49 42 51 49 42 55 39 37 47 44 42
++47 47 21 47 39 42 47 47 21 36 35 37 36 35 37 52 30 35 36 35 37 47 47 21
++33 30 32 36 35 37 52 30 35 32 39 24 33 30 30 33 30 32 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 32 36 35 37 42 38 42
++47 39 42 48 44 48 59 55 55 54 57 61 54 57 61 63 59 71 75 64 82 75 81 82
++75 81 90 75 81 90 77 90 100 95 95 116 95 95 116 95 95 116 95 95 116 95 95 116
++95 108 128 111 119 127 95 108 128 111 119 127 111 119 127 95 108 128 111 119 127 111 122 142
++119 117 138 111 122 142 111 119 127 111 122 142 119 117 138 111 119 127 111 122 142 111 119 127
++111 122 142 111 122 142 95 108 128 119 117 138 95 108 128 111 119 127 95 108 128 119 117 138
++95 108 128 111 119 127 95 108 128 95 108 128 95 95 116 95 108 128 95 95 116 95 95 116
++95 95 116 95 91 100 77 90 100 88 69 84 75 81 90 88 69 84 75 81 90 75 64 82
++60 81 83 75 64 82 59 69 70 63 59 71 59 69 70 63 59 71 65 63 61 59 57 61
++65 57 61 59 55 55 59 55 55 65 63 61 65 57 61 63 59 71 75 59 67 63 59 71
++75 59 67 75 72 67 75 64 82 75 81 76 75 72 67 75 81 76 75 64 82 75 64 82
++75 81 76 75 64 82 75 81 76 88 69 84 75 81 76 75 64 82 75 81 76 75 72 67
++75 64 82 75 72 67 75 81 76 75 64 82 65 63 61 75 72 67 63 59 71 63 59 71
++65 63 61 59 57 61 57 43 64 59 55 55 53 46 48 57 43 64 48 44 48 48 44 48
++42 41 42 42 38 42 36 35 37 36 35 37 33 30 32 33 30 32 26 24 32 22 25 24
++22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 23 20 24
++23 20 24 15 22 17 23 20 24 22 25 24 15 22 17 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 26 24 32 26 30 28 26 24 32
++33 30 30 30 30 34 33 30 32 36 35 37 42 41 42 42 41 42 48 44 48 52 55 48
++59 57 61 65 63 61 63 59 71 75 72 67 75 64 82 75 81 82 88 83 88 88 83 88
++88 83 88 88 83 88 88 83 88 88 83 88 77 90 100 88 83 88 75 81 90 88 83 88
++75 81 90 88 83 88 75 81 90 88 83 88 75 81 90 75 81 90 75 81 90 75 81 90
++75 64 82 75 81 90 75 81 82 75 64 82 75 81 76 75 64 82 75 81 76 75 81 90
++75 81 90 88 83 88 77 90 100 88 83 88 77 90 100 75 81 90 75 81 90 75 81 90
++75 64 82 60 81 83 75 64 82 59 69 70 59 69 70 63 59 71 46 59 71 54 57 61
++45 57 61 45 57 61 32 40 58 34 40 43 24 30 43 30 30 34 26 24 32 22 25 24
++23 20 24 12 18 20 23 20 24 23 20 24 12 18 20 23 20 24 23 20 24 23 18 22
++23 20 24 15 22 17 23 20 24 23 20 24 15 22 17 23 20 24 23 20 24 23 20 24
++22 25 24 22 25 24 22 25 24 26 24 32 23 20 24 22 25 24 23 20 24 22 25 24
++22 25 24 22 25 24 33 30 30 23 20 24 33 30 30 26 25 15 22 25 24 22 25 24
++22 25 24 26 30 28 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 26 24 32
++23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24
++23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 12 18 20 23 20 24 12 18 20
++22 25 24 12 18 20 23 18 22 12 18 20 23 18 22 14 16 17 14 16 17 14 16 17
++23 18 22 14 16 17 23 18 22 14 16 17 14 16 17 23 18 22 23 18 22 17 12 17
++17 12 17 23 18 22 14 16 17 23 18 22 23 18 22 23 20 24 23 20 24 23 18 22
++23 18 22 23 18 22 23 18 22 23 18 22 23 18 22 12 18 20 23 18 22 14 16 17
++23 18 22 14 16 17 23 18 22 12 18 20 23 20 24 23 20 24 22 25 24 22 25 24
++23 20 24 23 20 24 26 30 28 26 24 32 33 30 30 26 30 28 30 30 34 26 30 28
++
++3 4 9 3 3 1 3 4 9 3 4 9 13 4 7 3 4 9 13 4 7 3 4 9
++7 12 13 7 12 13 13 4 7 7 12 13 17 12 17 7 12 13 14 16 17 17 12 17
++17 12 17 14 16 17 17 12 17 17 12 17 7 12 13 17 12 17 17 12 17 7 12 13
++13 4 7 17 12 17 7 10 17 7 12 13 7 12 13 17 12 17 7 12 13 13 4 7
++7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7
++7 12 13 7 12 13 7 12 13 17 12 17 15 17 7 15 22 17 22 24 13 22 25 24
++26 25 15 26 30 28 23 31 15 34 30 15 32 39 24 32 39 24 32 39 24 32 39 24
++47 47 21 32 39 24 42 47 42 47 47 21 49 74 23 47 49 42 51 49 42 49 74 23
++50 61 48 50 61 48 50 61 48 47 47 21 47 49 42 49 74 23 43 55 48 49 74 23
++47 49 42 42 47 42 49 74 23 35 46 43 49 74 23 32 39 24 32 39 24 32 39 24
++32 39 24 23 30 35 23 31 15 23 30 35 15 22 17 15 22 17 12 18 20 15 22 17
++7 12 13 14 16 17 7 12 13 7 10 17 7 12 13 7 10 17 7 12 13 7 10 17
++7 12 13 17 12 17 14 16 17 14 16 17 12 18 20 12 18 20 12 18 20 12 18 30
++22 25 24 12 18 30 22 23 31 22 23 31 22 23 31 22 23 31 22 23 31 22 23 31
++22 23 31 12 18 30 22 23 31 22 25 24 22 23 31 22 23 31 22 23 31 22 25 24
++22 25 24 23 20 24 22 25 24 26 24 32 23 20 24 22 25 24 23 20 24 33 30 30
++23 20 24 34 30 15 23 20 24 34 30 15 26 25 15 33 30 30 28 13 18 33 30 30
++34 30 15 28 13 18 34 30 15 33 30 30 34 30 15 33 30 30 52 30 15 33 30 30
++52 30 15 52 30 15 52 30 35 52 30 15 53 35 17 52 30 15 52 30 15 52 30 15
++52 30 15 49 13 16 52 30 15 49 13 16 52 30 15 52 30 15 52 30 15 52 30 35
++52 30 15 33 30 30 52 30 15 34 30 15 33 30 30 49 13 16 34 30 15 33 30 30
++28 13 18 34 30 15 34 30 15 33 30 30 33 30 30 34 30 15 52 30 35 32 39 24
++33 30 30 32 39 24 52 30 35 32 39 24 53 35 37 36 35 37 47 39 42 47 47 21
++47 44 42 47 39 42 47 47 21 47 44 42 55 39 37 51 49 42 51 49 42 51 49 42
++63 55 45 51 49 42 63 55 45 63 55 45 64 70 48 63 55 45 63 55 45 63 55 45
++63 55 45 63 55 45 60 49 42 60 49 42 60 49 42 63 55 45 63 55 45 63 55 51
++65 55 54 64 70 48 65 63 61 65 63 61 75 72 67 88 66 70 75 81 76 75 81 76
++88 83 74 88 83 74 88 69 84 88 83 74 88 83 74 88 83 74 88 83 74 88 69 84
++88 83 74 88 66 70 88 83 74 88 83 74 88 83 74 88 83 74 88 66 70 88 83 74
++88 83 74 88 83 74 101 83 74 88 83 88 88 83 88 88 83 88 101 83 74 88 83 88
++101 83 74 88 83 88 101 83 74 88 83 88 101 83 74 88 83 88 88 83 88 88 83 88
++99 93 84 88 83 88 95 91 100 88 83 88 95 91 100 88 69 84 112 96 108 95 91 100
++95 91 100 88 83 88 95 91 100 88 69 84 88 83 88 88 69 84 88 66 70 75 59 67
++75 59 67 65 55 54 65 55 54 62 47 47 62 47 47 62 47 47 62 47 47 62 47 47
++62 47 47 62 47 47 62 47 47 62 47 47 76 44 53 65 55 54 62 47 47 65 55 54
++65 55 54 62 47 47 62 47 47 62 47 47 62 47 47 57 43 51 57 43 51 62 47 47
++53 46 48 53 46 48 53 46 48 57 43 51 53 46 48 53 46 48 47 44 42 48 44 48
++48 44 48 48 44 48 42 41 42 36 35 37 36 35 37 30 30 34 28 30 35 22 23 31
++22 23 31 22 25 24 22 23 31 22 23 31 22 25 24 23 20 24 22 23 31 22 25 24
++12 18 30 22 25 24 12 18 30 22 25 24 22 23 31 22 23 31 12 18 30 12 18 20
++23 18 22 12 18 30 23 20 24 23 20 24 23 20 24 12 18 30 23 20 24 23 20 24
++12 18 20 23 20 24 23 18 22 23 20 24 23 20 24 22 25 24 23 20 24 15 22 17
++23 20 24 15 22 17 22 25 24 22 25 24 22 25 24 12 18 30 22 23 31 22 23 31
++23 30 35 28 30 35 34 40 43 34 40 43 35 47 50 43 42 50 35 47 50 43 42 50
++48 44 48 45 57 61 48 50 48 57 43 64 54 57 61 59 57 61 59 57 61 65 57 61
++75 59 67 65 63 61 75 64 82 75 81 76 75 64 82 75 81 82 88 69 84 88 83 88
++88 83 88 95 91 100 88 83 88 88 83 88 88 83 88 75 64 82 75 72 67 59 55 55
++47 49 42 36 35 37 26 25 15 22 25 24 26 25 15 26 30 28 26 25 15 23 18 22
++23 18 22 22 24 13 17 12 17 15 17 7 17 12 17 14 16 17 26 25 15 23 20 24
++22 25 24 23 18 22 22 24 13 23 18 22 14 16 17 23 18 22 22 25 24 23 20 24
++22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 26 30 28 26 30 28 22 25 24
++23 18 22 22 25 24 14 16 17 14 16 17 14 16 17 23 18 22 22 25 24 33 30 30
++33 30 30 26 30 28 22 25 24 23 18 22 14 16 17 14 16 17 15 17 7 17 12 17
++22 24 13 23 20 24 14 16 17 15 22 17 23 18 22 23 20 24 22 25 24 15 22 17
++13 4 7 7 12 13 13 4 7 7 12 13 14 16 17 17 12 17 14 16 17 23 18 22
++15 17 7 17 12 17 15 22 17 22 24 13 23 20 24 22 25 24 33 30 30 36 35 37
++59 55 55 65 63 61 59 55 55 59 55 55 75 72 67 88 83 74 88 83 88 88 83 74
++75 72 67 63 55 51 53 46 48 60 49 42 60 49 42 60 49 42 60 49 42 60 49 42
++51 49 42 60 49 42 51 49 42 60 49 42 51 49 42 55 39 37 51 49 42 55 39 37
++47 44 42 55 39 37 47 39 42 53 35 37 36 35 37 47 47 21 36 35 37 36 35 37
++33 30 30 32 39 24 33 30 30 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30
++23 20 24 33 30 30 33 30 30 33 30 30 33 30 32 33 30 32 36 35 37 42 38 42
++43 42 50 48 44 48 53 46 48 57 43 64 54 57 61 59 69 70 59 69 70 75 81 90
++75 64 82 77 90 100 77 90 100 77 90 100 95 95 116 95 95 116 94 105 108 95 108 128
++95 108 128 95 108 128 111 119 127 95 108 128 111 119 127 111 119 127 111 122 142 111 119 127
++111 119 127 111 122 142 111 122 142 111 119 127 111 122 142 111 122 142 119 117 138 111 122 142
++111 119 127 111 122 142 119 117 138 98 121 131 119 117 138 119 117 138 111 119 127 111 119 127
++95 108 128 119 117 138 95 108 128 111 119 127 95 108 128 95 108 128 95 95 116 95 95 116
++95 95 116 77 91 115 95 91 100 77 91 115 75 81 90 75 81 90 75 81 90 75 64 82
++75 64 82 59 69 70 75 64 82 65 63 61 63 59 71 65 63 61 63 59 71 59 57 61
++59 55 55 65 57 61 59 57 61 59 57 61 65 57 61 63 59 71 65 63 61 75 59 67
++59 69 70 75 64 82 75 72 67 75 64 82 75 64 82 75 64 82 88 69 84 75 81 76
++88 69 84 75 81 76 75 64 82 75 72 67 75 64 82 75 81 76 75 64 82 75 64 82
++75 81 76 75 64 82 75 64 82 75 72 67 75 64 82 63 59 71 75 72 67 75 59 67
++63 59 71 59 57 61 59 57 61 59 55 55 54 57 61 59 55 55 53 46 48 48 44 48
++42 41 42 42 38 42 42 38 42 36 35 37 33 30 32 26 24 32 26 24 32 26 30 28
++26 24 32 22 25 24 22 25 24 23 20 24 23 20 24 15 22 17 23 20 24 12 18 20
++23 20 24 23 20 24 12 18 20 23 20 24 23 20 24 23 20 24 23 20 24 15 22 17
++12 18 20 23 20 24 23 20 24 23 20 24 22 25 24 22 25 24 26 24 32 26 30 28
++26 24 32 33 30 32 33 30 30 36 35 37 36 35 37 42 41 42 48 44 48 53 46 48
++59 55 55 59 57 61 59 69 70 75 72 67 75 64 82 75 81 82 75 81 82 75 81 90
++88 83 88 88 83 88 77 90 100 88 83 88 88 83 88 75 81 90 88 83 88 77 90 100
++88 83 88 75 81 90 88 83 88 75 81 90 75 81 90 88 83 88 75 81 90 75 81 90
++75 81 90 75 81 90 75 81 82 60 81 83 75 64 82 60 81 83 75 64 82 75 81 82
++75 81 90 75 81 90 88 83 88 77 90 100 88 83 88 77 90 100 75 81 90 75 81 90
++75 81 90 75 81 90 60 81 83 60 63 87 60 63 87 46 59 71 63 59 71 46 59 71
++45 57 61 45 57 61 43 42 50 34 40 43 37 35 43 33 30 36 30 30 34 22 23 31
++12 18 20 23 20 24 23 18 22 12 18 20 22 25 24 23 18 22 15 22 17 23 18 22
++14 16 17 12 18 20 23 20 24 15 22 17 23 20 24 23 20 24 22 25 24 23 20 24
++23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 26 24 32 22 25 24 22 25 24
++22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24
++22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 12 18 20 23 20 24 23 20 24 22 25 24 12 18 20 22 25 24
++12 18 20 23 18 22 23 18 22 12 18 20 23 18 22 14 16 17 23 18 22 14 16 17
++14 16 17 14 16 17 14 16 17 23 18 22 14 16 17 14 16 17 23 18 22 14 16 17
++17 12 17 14 16 17 23 18 22 14 16 17 23 18 22 23 18 22 23 18 22 23 18 22
++23 18 22 23 18 22 23 18 22 14 16 17 23 18 22 14 16 17 23 18 22 23 18 22
++12 18 20 23 18 22 14 16 17 23 18 22 15 22 17 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 26 30 28 26 24 32 26 30 28 30 30 34 26 30 28 30 30 34
++
++3 4 9 3 4 9 13 4 7 3 4 9 6 15 6 3 4 9 7 12 13 3 4 9
++13 4 7 7 12 13 7 12 13 7 12 13 13 4 7 7 12 13 17 12 17 14 16 17
++17 12 17 14 16 17 17 12 17 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17
++7 12 13 7 10 17 13 4 7 7 12 13 13 4 7 13 4 7 7 12 13 13 4 7
++13 4 7 3 4 9 7 12 13 7 12 13 7 12 13 13 4 7 7 12 13 13 4 7
++15 17 7 17 12 17 17 12 17 14 16 17 15 22 17 22 24 13 23 18 22 26 25 15
++22 25 24 26 25 15 29 35 19 29 35 19 32 39 24 32 39 24 47 47 21 33 30 30
++32 39 24 47 47 21 42 47 42 47 47 21 47 49 42 50 61 48 49 74 23 52 55 48
++49 74 23 47 49 42 49 74 23 43 55 48 49 74 23 42 47 42 49 74 23 42 47 42
++49 74 23 42 47 42 47 47 21 35 46 43 32 39 24 32 39 24 32 39 24 32 39 24
++32 39 24 23 31 15 23 31 15 23 31 15 15 22 17 15 22 17 15 22 17 7 12 13
++7 12 13 7 12 13 14 16 17 7 10 17 17 12 17 7 12 13 17 12 17 7 10 17
++17 12 17 7 12 13 7 12 13 17 12 17 14 16 17 12 18 20 12 18 20 14 16 17
++12 18 20 23 18 22 12 18 20 12 18 30 23 20 24 23 20 24 12 18 20 23 20 24
++12 18 20 12 18 20 12 18 20 12 18 20 12 18 20 23 18 22 15 22 17 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 26 25 15 23 20 24
++34 30 15 28 13 18 33 30 30 28 13 18 33 30 30 26 25 15 33 30 30 34 30 15
++28 13 18 33 30 30 33 30 30 49 13 16 33 30 30 52 30 15 52 30 35 52 30 35
++52 30 15 52 30 35 53 35 17 52 30 35 52 30 15 52 30 35 52 30 15 52 30 35
++52 30 15 52 30 35 52 30 15 52 30 35 52 30 15 52 30 35 49 13 16 33 30 30
++52 30 15 33 30 30 49 13 16 33 30 30 34 30 15 33 30 30 26 24 32 28 13 18
++33 30 30 28 13 18 26 30 28 26 25 15 33 30 30 33 30 30 33 30 30 33 30 30
++36 35 37 33 30 30 32 39 24 53 35 37 47 47 21 42 41 42 47 47 21 42 38 42
++47 44 42 42 41 42 47 44 42 47 47 21 47 49 42 47 47 21 51 49 42 51 49 42
++60 49 42 50 61 48 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45
++63 55 45 60 49 42 63 55 45 60 49 42 60 49 42 63 55 45 55 55 48 63 55 51
++65 55 54 65 63 61 65 63 61 75 72 67 75 72 67 75 81 76 88 69 84 88 83 74
++88 69 84 75 81 82 88 83 74 88 83 88 88 83 74 88 69 84 88 83 74 88 83 74
++88 83 74 88 69 84 75 81 76 88 66 70 88 66 70 88 83 74 88 69 84 88 83 74
++88 83 74 88 83 88 101 83 74 88 83 88 101 83 74 88 83 88 88 83 74 99 93 84
++88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 99 93 84 88 83 88
++88 83 88 99 93 84 88 69 84 95 91 100 95 91 100 112 96 108 88 69 84 95 91 100
++88 69 84 95 91 100 88 69 84 88 83 88 88 69 84 88 69 84 75 81 76 75 59 67
++75 59 67 65 55 54 65 55 54 62 47 47 57 43 51 62 47 47 62 47 47 62 47 47
++62 47 47 62 47 47 62 47 47 65 55 54 63 55 51 63 55 51 76 44 53 65 55 54
++62 47 47 65 55 54 62 47 47 62 47 47 63 55 51 57 43 51 59 55 55 57 43 51
++55 55 48 57 43 51 59 55 55 53 46 48 53 46 48 48 44 48 48 50 48 48 44 48
++48 50 48 43 42 50 34 40 43 36 35 37 36 35 37 33 30 36 28 30 35 22 23 31
++22 25 24 22 23 31 22 25 24 12 18 30 12 18 30 22 25 24 12 18 30 22 25 24
++22 23 31 22 25 24 12 18 30 22 25 24 22 23 31 22 23 31 12 18 30 23 18 22
++12 18 20 12 18 30 12 18 20 23 20 24 12 18 20 14 16 17 12 18 20 12 18 20
++23 20 24 17 12 17 14 16 17 12 18 20 23 20 24 22 25 24 23 20 24 23 20 24
++12 18 20 23 20 24 15 22 17 22 25 24 22 25 24 22 25 24 22 23 31 23 30 35
++28 30 35 28 35 38 34 40 43 29 34 50 43 42 50 43 42 50 45 57 61 43 42 50
++45 57 61 57 43 51 54 57 61 54 57 61 59 55 55 59 57 61 65 57 61 63 59 71
++75 59 67 75 64 82 75 72 67 75 64 82 88 83 88 88 69 84 75 81 90 88 83 88
++95 91 100 88 69 84 88 83 88 88 69 84 75 81 82 75 59 67 59 55 55 51 49 42
++36 35 37 29 35 19 26 25 15 22 25 24 33 30 30 29 35 19 22 25 24 26 25 15
++23 18 22 14 16 17 17 12 17 7 12 13 17 12 17 23 18 22 22 25 24 26 30 28
++23 20 24 23 20 24 23 20 24 23 18 22 15 22 17 23 18 22 23 18 22 22 25 24
++22 25 24 33 30 30 22 25 24 26 30 28 26 30 28 26 30 28 23 18 22 23 18 22
++23 18 22 22 24 13 23 18 22 14 16 17 14 16 17 15 22 17 23 20 24 26 30 28
++33 30 32 22 25 24 23 18 22 22 24 13 14 16 17 7 12 13 17 12 17 23 18 22
++22 25 24 22 25 24 15 22 17 14 16 17 15 22 17 22 25 24 23 20 24 14 16 17
++7 12 13 13 4 7 7 12 13 13 4 7 15 17 7 17 12 17 14 16 17 14 16 17
++14 16 17 17 12 17 22 24 13 23 18 22 26 30 28 26 24 32 33 30 30 36 35 37
++48 44 48 59 55 55 52 55 48 55 55 48 65 63 61 75 81 76 88 83 74 75 81 76
++65 63 61 63 55 51 55 55 48 62 47 47 63 55 45 63 55 51 55 55 48 60 49 42
++60 49 42 60 49 42 60 49 42 60 49 42 51 49 42 60 49 42 51 49 42 55 39 37
++47 44 42 55 39 37 36 35 37 47 39 42 36 35 37 53 35 37 36 35 37 32 39 24
++52 30 35 32 39 24 33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 23 20 24 33 30 32 33 30 32 33 30 32 52 30 35 37 35 43
++47 39 42 53 46 48 57 43 64 54 57 61 54 57 61 63 59 71 60 63 87 75 81 82
++75 81 90 77 90 100 95 91 100 95 95 116 95 95 116 95 108 128 95 108 128 95 108 128
++111 119 127 95 108 128 111 119 127 98 121 131 119 117 138 98 121 131 119 117 138 111 122 142
++111 122 142 111 122 142 119 117 138 111 122 142 111 122 142 119 117 138 111 122 142 111 122 142
++119 117 138 111 122 142 111 119 127 111 122 142 111 119 127 111 122 142 95 108 128 119 117 138
++95 108 128 111 119 127 95 108 128 95 95 116 95 108 128 112 96 108 95 108 128 95 95 116
++95 91 100 95 91 100 75 81 90 88 69 84 75 81 90 75 64 82 75 81 90 75 64 82
++75 64 82 75 72 67 63 59 71 59 69 70 63 59 71 65 63 61 63 59 71 59 57 61
++59 57 61 59 57 61 59 57 61 65 57 61 59 57 61 65 63 61 63 59 71 63 59 71
++75 72 67 75 72 67 75 64 82 75 72 67 75 81 76 75 64 82 75 81 76 75 64 82
++75 81 76 88 69 84 75 81 76 75 64 82 75 81 76 75 64 82 75 81 76 75 64 82
++75 81 76 75 64 82 75 72 67 75 64 82 75 72 67 75 64 82 63 59 71 63 59 71
++65 63 61 65 57 61 59 57 61 57 43 64 59 55 55 53 46 48 53 46 48 48 44 48
++48 44 48 42 41 42 42 38 42 36 35 37 33 30 36 33 30 30 26 30 28 26 24 32
++22 25 24 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 15 22 17 23 20 24
++15 22 17 23 20 24 22 25 24 23 20 24 12 18 20 22 25 24 23 20 24 23 20 24
++23 20 24 23 20 24 15 22 17 23 20 24 22 25 24 26 24 32 26 30 28 33 30 30
++26 24 32 33 30 32 33 30 32 36 35 37 42 38 42 42 41 42 48 44 48 48 50 48
++54 57 61 59 57 61 63 59 71 63 59 71 75 72 67 75 81 82 88 69 84 88 83 88
++75 81 82 88 83 88 75 81 90 88 83 88 75 81 90 88 83 88 75 81 90 88 83 88
++75 81 90 75 81 90 77 90 100 75 81 90 88 83 88 75 81 90 75 81 90 75 81 90
++75 81 90 75 81 82 75 64 82 75 81 90 75 64 82 75 81 82 75 81 82 75 64 82
++75 81 90 75 81 90 75 81 90 75 81 90 77 90 100 88 83 88 75 81 90 75 81 90
++75 81 90 60 63 87 75 64 82 60 81 83 59 69 70 59 69 70 46 59 71 54 57 61
++46 59 71 43 42 50 35 47 50 43 42 50 34 40 43 37 35 43 30 30 34 26 24 32
++22 25 24 23 18 22 12 18 20 17 12 17 23 18 22 12 18 20 23 18 22 12 18 20
++23 18 22 14 16 17 23 18 22 23 20 24 15 22 17 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24
++22 25 24 22 25 24 22 25 24 33 30 30 23 20 24 22 25 24 22 25 24 33 30 30
++23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 22 23 31
++22 25 24 22 25 24 23 20 24 22 23 31 22 25 24 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 12 18 20 23 20 24 15 22 17 23 20 24
++12 18 20 22 25 24 14 16 17 23 18 22 12 18 20 14 16 17 14 16 17 14 16 17
++14 16 17 23 18 22 14 16 17 14 16 17 12 18 20 23 18 22 14 16 17 14 16 17
++14 16 17 23 18 22 14 16 17 23 18 22 12 18 20 23 18 22 14 16 17 23 18 22
++12 18 20 23 18 22 14 16 17 23 18 22 23 18 22 14 16 17 23 18 22 12 18 20
++23 18 22 14 16 17 23 18 22 14 16 17 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 22 25 24 26 24 32 22 25 24 26 30 28 26 24 32 33 30 30 30 30 34
++
++3 4 9 3 3 1 3 4 9 3 4 9 3 4 9 13 4 7 3 4 9 13 4 7
++7 12 13 7 12 13 13 4 7 7 12 13 7 12 13 17 12 17 7 12 13 17 12 17
++7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 13 4 7 17 12 17 7 12 13
++17 12 17 13 4 7 7 10 17 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7
++6 15 6 13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 17 12 17
++7 12 13 7 12 13 14 16 17 14 16 17 22 24 13 23 18 22 26 25 15 22 25 24
++26 25 15 26 30 28 29 35 19 32 39 24 33 30 30 47 47 21 32 39 24 33 39 38
++47 47 21 42 47 42 47 47 21 50 61 48 47 47 21 50 61 48 51 49 42 50 61 48
++50 61 48 49 74 23 50 61 48 47 47 21 42 47 42 49 74 23 43 55 48 47 47 21
++35 46 43 49 74 23 35 46 43 49 74 23 32 39 24 35 46 43 32 39 24 32 39 24
++32 39 24 23 31 15 15 22 17 15 22 17 15 22 17 15 22 17 6 15 6 14 16 17
++7 12 13 7 12 13 7 10 17 17 12 17 7 12 13 7 12 13 7 10 17 13 4 7
++7 12 13 13 4 7 15 17 7 7 12 13 14 16 17 7 10 17 7 10 17 12 18 20
++17 12 17 12 18 20 12 18 20 17 12 17 12 18 30 12 18 20 12 18 20 12 18 20
++12 18 20 12 18 20 12 18 20 12 18 20 14 16 17 12 18 20 23 18 22 12 18 20
++14 16 17 12 18 20 14 16 17 14 16 17 23 18 22 23 20 24 26 25 15 23 18 22
++26 25 15 23 20 24 26 25 15 23 20 24 34 30 15 23 20 24 34 30 15 28 13 18
++33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 52 30 35 52 30 15 33 30 30
++53 35 17 52 30 35 52 30 15 52 30 15 52 30 35 52 30 15 52 30 15 52 30 15
++34 30 15 49 13 16 52 30 15 49 13 16 52 30 15 49 13 16 52 30 15 52 30 35
++49 13 16 52 30 15 34 30 15 34 30 15 28 13 18 34 30 15 28 13 18 34 30 15
++26 25 15 23 20 24 34 30 15 23 20 24 26 25 15 34 30 15 33 30 30 53 35 17
++33 30 30 32 39 24 52 30 35 32 39 24 36 35 37 42 38 42 42 38 42 47 47 21
++36 35 37 47 47 21 47 44 42 47 44 42 47 47 21 51 49 42 51 49 42 60 49 42
++51 49 42 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 50 61 48 63 55 45
++60 49 42 63 55 45 51 49 42 60 49 42 60 49 42 63 55 45 55 55 48 63 55 51
++65 55 54 64 70 48 65 63 61 75 63 62 75 72 67 75 72 67 75 81 76 75 81 76
++75 81 76 88 83 74 75 81 76 88 83 74 88 83 74 75 81 76 88 83 74 88 69 84
++88 83 74 88 83 74 88 66 70 75 72 67 75 81 76 88 66 70 88 83 74 88 83 74
++88 83 74 101 83 74 88 83 88 88 83 74 88 83 74 88 83 88 88 83 74 88 83 88
++101 83 74 88 83 88 101 83 74 88 83 88 99 93 84 88 83 88 99 93 84 88 69 84
++95 91 100 88 83 88 95 91 100 101 83 74 95 91 100 88 69 84 95 91 100 112 96 108
++95 91 100 101 83 74 88 83 88 88 83 88 88 69 84 88 69 84 88 66 70 75 63 62
++65 57 61 65 57 61 76 44 53 65 55 54 62 47 47 62 47 47 62 47 47 62 47 47
++62 47 47 62 47 47 62 47 47 62 47 47 65 55 54 62 47 47 65 55 54 65 55 54
++75 56 53 62 47 47 65 55 54 62 47 47 57 43 51 59 55 55 57 43 51 59 55 55
++53 46 48 59 55 55 53 46 48 48 50 48 57 43 64 48 50 48 43 42 50 48 50 48
++43 42 50 42 41 42 34 40 43 37 35 43 28 35 38 30 30 34 25 30 29 22 23 31
++22 23 31 22 23 31 22 23 31 22 25 24 22 25 24 12 18 30 23 20 24 12 18 30
++22 25 24 12 18 30 22 25 24 12 18 20 12 18 30 12 18 20 12 18 30 17 12 17
++7 10 17 17 12 17 14 16 17 14 16 17 12 18 20 17 12 17 14 16 17 14 16 17
++23 18 22 14 16 17 17 12 17 14 16 17 14 16 17 12 18 20 23 20 24 12 18 20
++23 18 22 22 25 24 23 20 24 15 22 17 23 20 24 22 23 31 22 23 31 25 30 29
++23 30 35 28 35 38 37 35 43 35 47 50 43 42 50 32 40 58 43 42 50 45 57 61
++48 50 48 43 42 50 54 57 61 57 43 64 54 57 61 59 57 61 63 59 71 75 59 67
++63 59 71 75 72 67 75 64 82 75 81 76 88 69 84 75 81 90 88 69 84 95 91 100
++88 83 88 88 83 88 75 81 82 75 64 82 75 59 67 59 55 55 47 44 42 42 41 42
++32 39 24 33 30 30 33 30 30 33 30 30 26 25 15 33 30 30 22 25 24 23 18 22
++17 12 17 15 17 7 14 16 17 23 18 22 23 18 22 23 20 24 23 20 24 23 18 22
++23 20 24 23 20 24 22 25 24 23 18 22 23 18 22 14 16 17 23 18 22 23 18 22
++23 18 22 15 22 17 23 18 22 17 12 17 17 12 17 17 12 17 17 12 17 15 17 7
++14 16 17 17 12 17 14 16 17 17 12 17 14 16 17 23 18 22 23 20 24 22 25 24
++26 30 28 22 25 24 23 18 22 14 16 17 17 12 17 15 17 7 14 16 17 22 25 24
++26 30 28 22 25 24 23 20 24 15 22 17 23 20 24 23 20 24 23 18 22 14 16 17
++14 16 17 13 4 7 7 12 13 13 4 7 7 12 13 17 12 17 17 12 17 23 18 22
++17 12 17 22 24 13 14 16 17 23 18 22 26 30 28 33 30 30 33 30 30 33 30 30
++36 35 37 42 41 42 42 41 42 42 41 42 51 49 42 55 55 48 65 55 54 65 63 61
++65 63 61 65 63 61 63 55 51 55 55 48 62 47 47 63 55 51 63 55 45 63 55 45
++60 49 42 60 49 42 55 55 48 60 49 42 60 49 42 51 49 42 55 39 37 47 44 42
++47 47 21 55 39 37 47 39 42 47 47 21 36 35 37 36 35 37 47 47 21 36 35 37
++33 30 30 32 39 24 52 30 35 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++23 20 24 33 30 30 33 30 30 33 30 32 33 30 32 33 30 36 36 35 37 42 38 42
++43 42 50 48 50 48 57 43 51 59 57 61 59 57 61 63 59 71 60 81 83 75 64 82
++75 81 90 77 90 100 77 90 100 95 95 116 95 95 116 95 95 116 111 119 127 95 108 128
++95 108 128 111 119 127 98 121 131 111 119 127 111 122 142 111 119 127 111 122 142 111 122 142
++119 117 138 122 134 144 111 122 142 122 134 144 111 122 142 122 134 144 111 122 142 122 134 144
++111 122 142 111 122 142 111 122 142 111 122 142 111 122 142 111 119 127 119 117 138 111 119 127
++111 119 127 119 117 138 95 108 128 111 119 127 95 95 116 95 108 128 95 95 116 95 95 116
++95 95 116 77 91 115 77 91 115 95 91 100 61 78 101 75 81 90 75 64 82 75 64 82
++60 81 83 75 64 82 59 69 70 63 59 71 63 59 71 63 59 71 65 63 61 65 57 61
++63 59 71 65 57 61 65 57 61 59 57 61 65 57 61 65 63 61 63 59 71 65 63 61
++63 59 71 75 64 82 75 72 67 75 64 82 75 64 82 75 72 67 75 64 82 88 83 74
++75 64 82 75 81 76 75 64 82 75 81 76 88 69 84 75 64 82 75 81 76 75 64 82
++75 81 76 75 64 82 75 81 76 75 72 67 75 64 82 75 72 67 75 59 67 75 72 67
++63 59 71 63 59 71 59 55 55 54 57 61 57 43 51 54 57 61 53 46 48 48 44 48
++48 44 48 42 41 42 42 38 42 36 35 37 33 30 36 33 30 32 26 24 32 26 30 28
++26 24 32 22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 23 20 24 12 18 20
++23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 12 18 20 23 20 24
++12 18 20 22 25 24 23 20 24 23 20 24 22 25 24 23 20 24 26 30 28 26 24 32
++30 30 34 33 30 32 33 30 32 36 35 37 36 35 37 42 41 42 47 44 42 48 44 48
++59 55 55 59 57 61 65 63 61 63 59 71 75 72 67 75 64 82 75 81 82 75 81 82
++75 81 82 88 83 88 75 81 90 88 83 88 88 83 88 75 81 90 88 83 88 75 81 90
++75 81 90 75 81 90 88 83 88 75 81 90 77 90 100 75 81 90 75 81 90 75 81 90
++75 81 90 75 81 90 75 81 90 75 64 82 60 81 83 75 81 76 60 63 87 75 81 82
++75 81 82 75 81 90 75 81 90 88 83 88 75 81 90 75 81 90 75 81 90 75 81 90
++60 63 87 75 81 82 60 81 83 60 63 87 60 63 87 59 69 70 63 59 71 46 59 71
++45 57 61 45 57 61 43 42 50 34 40 43 37 35 43 37 35 43 30 30 34 25 30 29
++23 20 24 12 18 30 23 18 22 12 18 20 12 18 20 23 18 22 15 22 17 23 18 22
++23 18 22 15 22 17 23 18 22 12 18 20 23 20 24 12 18 20 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24
++33 30 30 23 20 24 22 25 24 23 20 24 22 25 24 33 30 30 22 25 24 22 25 24
++22 25 24 23 20 24 26 30 28 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24
++23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24
++23 20 24 12 18 20 23 20 24 15 22 17 23 20 24 12 18 20 22 25 24 12 18 20
++23 20 24 15 22 17 23 18 22 23 18 22 14 16 17 23 18 22 14 16 17 23 18 22
++14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 23 18 22 17 12 17
++14 16 17 23 18 22 14 16 17 23 18 22 23 18 22 14 16 17 14 16 17 23 18 22
++14 16 17 23 18 22 14 16 17 14 16 17 23 18 22 14 16 17 14 16 17 23 18 22
++12 18 20 23 18 22 14 16 17 23 18 22 14 16 17 12 18 20 23 18 22 15 22 17
++23 20 24 23 20 24 22 25 24 22 25 24 26 24 32 26 30 28 26 24 32 26 30 28
++
++3 4 9 3 4 9 3 4 9 13 4 7 6 15 6 3 4 9 7 12 13 3 4 9
++13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 17 12 17
++7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 13 4 7
++7 12 13 7 12 13 13 4 7 7 10 17 13 4 7 7 12 13 13 4 7 3 4 9
++3 4 9 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 7 12 13
++17 12 17 7 12 13 17 12 17 14 16 17 22 24 13 15 22 17 22 25 24 26 25 15
++33 30 30 34 30 15 29 35 19 32 39 24 32 39 24 32 39 24 42 47 42 47 47 21
++32 39 24 47 47 21 50 61 48 49 74 23 43 55 48 49 74 23 50 61 48 49 74 23
++51 49 42 50 61 48 49 74 23 43 55 48 49 74 23 42 47 42 50 61 48 49 74 23
++42 47 42 49 74 23 35 46 43 32 39 24 49 74 23 23 31 15 32 39 24 32 39 24
++23 31 15 23 30 35 23 31 15 15 22 17 15 22 17 15 22 17 12 18 20 7 12 13
++14 16 17 7 12 13 14 16 17 7 10 17 17 12 17 7 10 17 13 4 7 7 12 13
++7 12 13 7 12 13 17 12 17 7 12 13 7 10 17 14 16 17 7 10 17 17 12 17
++7 10 17 17 12 17 7 10 17 17 12 17 14 16 17 17 12 17 17 12 17 17 12 17
++7 10 17 14 16 17 7 10 17 14 16 17 7 10 17 14 16 17 14 16 17 14 16 17
++14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 22 24 13 23 18 22 23 18 22
++26 25 15 26 25 15 28 13 18 34 30 15 23 20 24 34 30 15 33 30 30 34 30 15
++49 13 16 33 30 30 49 13 16 52 30 15 52 30 15 52 30 35 52 30 15 52 30 35
++52 30 15 53 35 17 52 30 35 52 30 15 52 30 15 52 30 35 52 30 15 52 30 15
++52 30 15 34 30 15 52 30 15 33 30 30 52 30 15 33 30 30 52 30 15 34 30 15
++33 30 30 33 30 30 49 13 16 33 30 30 34 30 15 26 24 32 34 30 15 23 20 24
++28 13 18 26 25 15 23 20 24 33 30 30 26 25 15 33 30 30 33 30 30 33 30 30
++32 39 24 36 35 37 32 39 24 52 30 35 32 39 24 53 35 37 36 35 37 47 44 42
++42 41 42 36 35 37 55 39 37 42 41 42 47 44 42 51 49 42 51 49 42 51 49 42
++63 55 45 50 61 48 63 55 45 50 61 48 63 55 45 63 55 45 63 55 45 63 55 45
++50 61 48 60 49 42 63 55 45 51 49 42 63 55 45 55 55 48 55 55 48 63 55 51
++63 55 51 65 63 61 65 63 61 75 72 67 75 72 67 75 81 76 88 69 84 75 81 76
++88 69 84 75 81 82 88 69 84 88 83 74 75 81 76 88 69 84 75 81 76 88 83 74
++75 81 76 88 66 70 75 81 76 88 83 74 88 66 70 75 81 76 88 69 84 88 83 74
++88 83 74 88 83 88 88 83 74 101 83 74 88 83 88 88 83 74 88 83 88 88 83 74
++88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 95 91 100 88 83 88 95 91 100
++88 83 88 95 91 100 88 69 84 95 91 100 95 91 100 112 96 108 95 91 100 88 69 84
++95 91 100 88 69 84 95 91 100 88 69 84 88 69 84 75 81 82 75 64 82 75 59 67
++75 59 67 65 55 54 65 55 54 57 43 51 62 47 47 57 43 51 62 47 47 57 43 51
++65 55 54 57 43 51 65 55 54 65 55 54 65 55 54 65 55 54 65 57 61 76 44 53
++57 43 64 65 55 54 65 55 54 57 43 51 59 55 55 57 43 51 57 43 64 53 46 48
++53 46 48 48 50 48 57 43 64 48 50 48 54 57 61 48 44 48 48 50 48 43 42 50
++48 50 48 43 42 50 34 40 43 36 35 37 28 35 38 33 30 36 26 24 32 22 23 31
++23 20 24 22 25 24 23 20 24 12 18 30 15 22 17 23 20 24 23 20 24 23 20 24
++12 18 20 12 18 20 7 12 13 7 10 17 14 16 17 14 16 17 14 16 17 23 20 24
++23 20 24 12 18 20 17 12 17 14 16 17 23 18 22 14 16 17 15 22 17 23 18 22
++23 20 24 23 20 24 23 20 24 23 18 22 14 16 17 14 16 17 14 16 17 14 16 17
++14 16 17 14 16 17 15 22 17 15 22 17 22 23 31 22 25 24 22 23 31 23 30 35
++28 30 35 28 35 38 34 40 43 37 35 43 32 40 58 48 50 48 43 42 50 45 57 61
++43 42 50 54 57 61 45 57 61 54 57 61 54 57 61 59 57 61 65 57 61 63 59 71
++75 72 67 63 59 71 75 81 76 75 64 82 75 81 82 88 83 88 88 69 84 75 81 90
++88 69 84 75 64 82 75 64 82 65 57 61 59 55 55 47 44 42 36 35 37 32 39 24
++36 35 37 32 39 24 33 30 30 26 25 15 22 25 24 26 25 15 23 18 22 22 24 13
++14 16 17 17 12 17 23 18 22 23 18 22 26 25 15 23 18 22 15 22 17 23 18 22
++23 18 22 22 25 24 23 20 24 23 18 22 14 16 17 17 12 17 15 17 7 17 12 17
++14 16 17 15 17 7 14 16 17 7 12 13 14 16 17 14 16 17 14 16 17 17 12 17
++13 4 7 15 17 7 14 16 17 15 17 7 14 16 17 14 16 17 22 25 24 22 25 24
++33 30 30 22 25 24 23 18 22 14 16 17 14 16 17 17 12 17 14 16 17 22 25 24
++26 30 28 22 25 24 26 30 28 26 30 28 22 25 24 22 24 13 15 22 17 17 12 17
++15 22 17 14 16 17 17 12 17 15 17 7 17 12 17 7 12 13 15 17 7 17 12 17
++14 16 17 17 12 17 17 12 17 23 18 22 22 25 24 23 20 24 22 25 24 26 30 28
++26 24 32 33 30 30 32 39 24 33 30 30 42 47 42 47 44 42 51 49 42 55 55 48
++63 55 51 65 63 61 75 73 58 75 63 62 65 55 54 55 55 48 60 49 42 60 49 42
++55 55 48 63 55 45 62 47 47 60 49 42 51 49 42 55 39 37 51 49 42 55 39 37
++42 41 42 42 38 42 36 35 37 53 35 37 36 35 37 53 35 37 36 35 37 36 35 37
++33 30 30 33 30 30 36 35 37 32 39 24 36 35 37 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 32 33 30 32 33 30 36 42 38 42 47 39 42
++48 44 48 57 43 51 57 43 64 59 57 61 63 59 71 59 69 70 75 64 82 75 81 90
++75 81 90 77 90 100 95 91 100 77 91 115 95 95 116 95 108 128 95 108 128 111 119 127
++95 108 128 111 119 127 111 122 142 111 119 127 111 122 142 111 122 142 119 117 138 122 134 144
++111 122 142 122 134 144 122 134 144 119 117 138 122 134 144 122 134 144 122 134 144 119 117 138
++122 134 144 119 117 138 111 122 142 119 117 138 111 122 142 111 122 142 111 119 127 119 117 138
++95 108 128 111 119 127 95 108 128 95 108 128 95 95 116 95 108 128 95 95 116 95 95 116
++95 91 100 95 91 100 88 69 84 75 64 82 75 81 90 75 64 82 75 81 90 75 64 82
++75 64 82 59 69 70 63 59 71 63 59 71 59 69 70 65 63 61 63 59 71 63 59 71
++65 63 61 59 57 61 59 57 61 65 57 61 63 59 71 65 57 61 63 59 71 75 59 67
++63 59 71 75 72 67 75 64 82 75 72 67 75 81 76 88 69 84 75 72 67 75 81 82
++88 69 84 75 81 82 88 69 84 75 81 76 75 81 76 75 64 82 75 81 76 75 64 82
++75 81 76 75 64 82 75 81 76 75 64 82 75 72 67 63 59 71 75 72 67 63 59 71
++75 59 67 59 57 61 59 57 61 59 57 61 59 55 55 57 43 64 53 46 48 48 44 48
++48 44 48 48 44 48 42 41 42 37 35 43 36 35 37 30 30 34 30 30 34 26 30 28
++23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 12 18 20 23 20 24 23 20 24
++12 18 20 22 25 24 12 18 20 23 20 24 15 22 17 23 20 24 23 20 24 15 22 17
++23 20 24 23 20 24 15 22 17 23 20 24 23 20 24 26 24 32 26 30 28 26 24 32
++33 30 30 30 30 34 33 30 32 36 35 37 36 35 37 42 41 42 47 44 42 48 50 48
++59 55 55 54 57 61 63 59 71 59 69 70 75 72 67 75 64 82 75 81 76 88 69 84
++75 81 82 75 81 82 88 83 88 75 81 82 75 81 90 88 83 88 75 81 90 75 81 82
++75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 88 83 88 75 81 90 75 81 90
++75 64 82 60 81 83 75 81 82 75 81 82 75 64 82 75 81 82 75 64 82 75 81 82
++75 64 82 75 81 82 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90
++60 81 83 60 63 87 75 64 82 60 81 83 59 69 70 63 59 71 46 59 71 54 57 61
++45 57 61 45 57 61 43 42 50 29 34 50 34 40 43 37 35 43 28 30 35 23 30 35
++22 23 31 23 20 24 12 18 20 23 18 22 14 16 17 14 16 17 14 16 17 23 18 22
++12 18 20 23 18 22 12 18 20 23 18 22 14 16 17 23 20 24 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 26 24 32 22 25 24 23 20 24
++22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24 33 30 30
++23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 22 23 31 22 25 24
++22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24
++12 18 20 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 15 22 17
++23 20 24 23 18 22 14 16 17 23 18 22 14 16 17 14 16 17 14 16 17 14 16 17
++23 18 22 14 16 17 14 16 17 12 18 20 14 16 17 14 16 17 14 16 17 14 16 17
++17 12 17 14 16 17 23 18 22 17 12 17 17 12 17 23 18 22 17 12 17 23 18 22
++14 16 17 23 18 22 14 16 17 23 18 22 14 16 17 14 16 17 14 16 17 23 18 22
++14 16 17 15 22 17 14 16 17 14 16 17 23 18 22 15 22 17 23 18 22 23 18 22
++23 20 24 22 25 24 23 20 24 26 24 32 26 30 28 26 24 32 26 30 28 26 24 32
++
++3 4 9 3 3 1 3 4 9 3 4 9 3 4 9 3 4 9 13 4 7 7 12 13
++3 4 9 13 4 7 7 12 13 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7
++7 12 13 17 12 17 7 12 13 13 4 7 7 12 13 7 12 13 17 12 17 7 10 17
++13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 3 4 9 7 12 13 13 4 7
++7 12 13 13 4 7 7 12 13 7 12 13 7 12 13 7 12 13 17 12 17 7 12 13
++7 12 13 15 17 7 14 16 17 17 12 17 22 24 13 22 25 24 26 25 15 29 35 19
++26 25 15 26 30 28 29 35 19 32 39 24 47 47 21 33 39 38 47 47 21 32 39 24
++35 46 43 49 74 23 47 47 21 47 49 42 49 74 23 50 61 48 50 61 48 49 74 23
++50 61 48 49 74 23 42 47 42 49 74 23 43 55 48 49 74 23 43 55 48 49 74 23
++42 47 42 35 46 43 49 74 23 35 46 43 32 39 24 32 39 24 32 39 24 32 39 24
++23 31 15 23 31 15 15 22 17 15 22 17 15 22 17 12 18 20 14 16 17 7 12 13
++14 16 17 7 10 17 7 10 17 17 12 17 7 10 17 7 10 17 7 12 13 7 12 13
++13 4 7 7 12 13 13 4 7 17 12 17 7 12 13 7 10 17 7 12 13 7 10 17
++7 12 13 7 10 17 7 12 13 7 10 17 7 12 13 7 10 17 7 10 17 7 10 17
++7 10 17 7 10 17 14 16 17 14 16 17 14 16 17 7 10 17 17 12 17 7 12 13
++15 17 7 14 16 17 17 12 17 17 12 17 17 12 17 14 16 17 22 24 13 22 24 13
++23 18 22 34 30 15 23 20 24 34 30 15 23 20 24 49 13 16 33 30 30 49 13 16
++33 30 30 34 30 15 34 30 15 34 30 15 52 30 35 34 30 15 52 30 35 52 30 15
++52 30 35 52 30 15 52 30 15 52 30 35 52 30 15 49 13 16 52 30 15 34 30 15
++52 30 35 49 13 16 34 30 15 49 13 16 34 30 15 52 30 15 33 30 30 49 13 16
++34 30 15 49 13 16 33 30 30 28 13 18 34 30 15 28 13 18 28 13 18 33 30 30
++26 25 15 22 25 24 23 20 24 26 25 15 22 25 24 26 30 28 26 25 15 33 30 30
++33 30 30 33 30 30 32 39 24 36 35 37 36 35 37 36 35 37 47 47 21 36 35 37
++36 35 37 47 47 21 42 41 42 47 47 21 47 44 42 51 49 42 60 49 42 49 74 23
++51 49 42 60 49 42 60 49 42 63 55 45 50 61 48 63 55 45 51 49 42 60 49 42
++60 49 42 55 55 48 60 49 42 55 55 48 51 49 42 60 49 42 55 55 48 63 55 51
++65 55 54 65 63 61 65 63 61 65 63 61 75 64 82 75 81 76 75 72 67 75 81 76
++75 81 76 88 83 88 75 81 76 88 69 84 88 83 74 75 81 76 88 66 70 88 83 74
++75 64 82 88 83 74 75 72 67 75 81 76 88 66 70 75 81 76 88 66 70 88 83 74
++88 66 70 88 83 74 88 83 74 88 83 74 88 69 84 88 69 84 88 83 74 88 69 84
++88 83 88 88 83 88 88 83 88 95 91 100 88 83 88 95 91 100 88 83 88 95 91 100
++88 69 84 95 91 100 99 93 84 88 83 88 95 91 100 88 69 84 95 91 100 95 91 100
++95 91 100 95 91 100 88 83 88 88 83 88 88 69 84 88 69 84 75 72 67 75 59 67
++75 59 67 65 57 61 65 55 54 65 55 54 65 55 54 57 43 51 65 55 54 57 43 51
++65 55 54 57 43 64 76 44 53 57 43 64 65 55 54 65 55 54 57 43 64 65 57 61
++65 57 61 59 57 61 57 43 51 59 55 55 57 43 51 54 57 61 53 46 48 53 46 48
++54 57 61 48 44 48 45 57 61 53 46 48 57 43 51 45 57 61 43 42 50 48 50 48
++43 42 50 43 42 50 34 40 43 37 35 43 33 30 36 28 30 35 22 23 31 22 23 31
++22 25 24 22 23 31 23 20 24 12 18 20 23 20 24 12 18 20 23 18 22 12 18 30
++22 25 24 25 30 29 25 30 29 31 35 35 33 30 32 36 35 37 42 41 42 59 55 55
++59 57 61 59 57 61 52 55 48 48 44 48 48 44 48 51 49 42 48 50 48 48 50 48
++48 44 48 48 44 48 48 50 48 47 44 42 42 41 42 31 35 35 33 30 30 22 25 24
++14 16 17 14 16 17 7 10 17 12 18 20 15 22 17 12 18 30 22 23 31 23 30 35
++24 30 43 28 35 38 37 35 43 35 47 50 43 42 50 43 42 50 45 57 61 43 42 50
++45 57 61 43 42 50 54 57 61 54 57 61 54 57 61 59 57 61 63 59 71 59 69 70
++75 64 82 63 59 71 75 64 82 75 81 82 75 64 82 75 81 90 88 83 88 88 83 88
++75 64 82 75 64 82 75 63 62 65 63 61 59 57 61 51 49 42 47 44 42 53 35 37
++32 39 24 33 30 30 26 25 15 26 25 15 22 25 24 23 20 24 22 24 13 23 18 22
++14 16 17 23 18 22 15 22 17 23 18 22 23 20 24 23 18 22 23 18 22 17 12 17
++22 24 13 23 18 22 14 16 17 23 18 22 14 16 17 17 12 17 17 12 17 14 16 17
++7 12 13 14 16 17 15 22 17 23 18 22 22 25 24 33 30 30 22 25 24 14 16 17
++14 16 17 14 16 17 17 12 17 7 12 13 17 12 17 15 22 17 23 18 22 26 30 28
++33 30 32 26 30 28 22 25 24 17 12 17 15 17 7 14 16 17 14 16 17 14 16 17
++23 18 22 22 25 24 33 30 32 33 30 32 26 30 28 23 18 22 22 24 13 23 18 22
++15 22 17 23 18 22 14 16 17 17 12 17 17 12 17 7 12 13 13 4 7 15 17 7
++17 12 17 14 16 17 17 12 17 22 24 13 23 18 22 23 20 24 23 20 24 26 24 32
++26 25 15 22 25 24 22 25 24 32 39 24 36 35 37 47 49 42 59 55 55 55 55 48
++55 55 48 63 55 45 65 63 61 65 63 61 75 73 58 65 63 61 65 55 54 63 55 45
++63 55 45 60 49 42 60 49 42 60 49 42 51 49 42 51 49 42 55 39 37 47 44 42
++47 39 42 47 47 21 53 35 37 32 39 24 53 35 37 32 39 24 53 35 37 33 30 32
++47 47 21 33 30 30 36 35 37 33 30 32 52 30 35 33 30 30 33 30 30 33 30 30
++26 25 15 33 30 30 33 30 30 33 30 32 33 30 36 42 38 42 42 38 42 47 39 42
++53 46 48 57 43 51 59 57 61 65 57 61 63 59 71 59 69 70 75 64 82 75 81 90
++75 81 90 77 90 100 77 90 100 95 95 116 95 95 116 95 108 128 95 108 128 95 108 128
++111 119 127 111 119 127 111 122 142 111 122 142 111 122 142 119 117 138 111 122 142 122 134 144
++122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144
++111 122 142 122 134 144 122 134 144 122 134 144 111 122 142 119 117 138 111 122 142 119 117 138
++111 119 127 119 117 138 111 119 127 95 108 128 95 108 128 95 95 116 95 95 116 95 95 116
++95 95 116 77 90 100 77 91 115 77 90 100 75 64 82 75 81 90 75 64 82 75 64 82
++63 59 71 63 59 71 59 69 70 63 59 71 63 59 71 63 59 71 59 57 61 65 63 61
++59 57 61 59 57 61 63 59 71 65 57 61 65 57 61 63 59 71 65 63 61 63 59 71
++75 72 67 63 59 71 75 72 67 75 64 82 75 64 82 75 81 76 75 64 82 75 64 82
++75 81 76 88 69 84 75 81 76 75 64 82 88 69 84 75 81 76 75 64 82 75 81 76
++75 64 82 75 81 76 75 64 82 75 81 76 75 64 82 75 72 67 63 59 71 75 64 82
++65 63 61 63 59 71 59 57 61 59 57 61 54 57 61 54 57 61 57 43 51 48 44 48
++48 44 48 42 47 42 42 41 42 37 35 43 36 35 37 33 30 36 25 30 29 26 24 32
++22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 15 22 17
++23 20 24 12 18 20 23 20 24 15 22 17 23 20 24 12 18 20 15 22 17 23 20 24
++12 18 20 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 26 24 32 26 30 28
++26 24 32 33 30 32 33 30 32 33 30 32 42 38 42 42 41 42 42 41 42 48 44 48
++59 55 55 59 57 61 59 57 61 65 63 61 59 69 70 75 64 82 75 81 76 75 64 82
++75 81 82 88 69 84 75 81 82 75 81 90 88 83 88 75 81 90 75 81 90 75 81 82
++75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90
++60 81 83 75 81 90 60 63 87 75 81 90 60 81 83 75 64 82 75 81 82 60 63 87
++75 81 82 60 63 87 75 81 82 75 64 82 75 81 90 75 81 90 60 81 83 75 81 90
++60 81 83 75 81 82 60 63 87 59 69 70 60 63 87 59 69 70 63 59 71 46 59 71
++45 57 61 43 42 50 43 42 50 37 35 43 37 35 43 37 35 43 28 35 38 25 30 29
++22 23 31 22 25 24 23 18 22 14 16 17 23 18 22 14 16 17 23 18 22 14 16 17
++14 16 17 23 18 22 14 16 17 23 18 22 15 22 17 23 18 22 15 22 17 23 20 24
++22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 22 25 24 23 20 24
++22 25 24 26 24 32 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24
++22 25 24 26 24 32 22 25 24 26 24 32 22 25 24 23 20 24 22 25 24 22 25 24
++22 25 24 22 23 31 23 20 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24
++23 20 24 23 20 24 23 20 24 15 22 17 23 20 24 15 22 17 23 20 24 23 20 24
++12 18 20 23 18 22 23 18 22 14 16 17 23 18 22 14 16 17 23 18 22 14 16 17
++14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++17 12 17 23 18 22 14 16 17 17 12 17 23 18 22 17 12 17 23 18 22 14 16 17
++23 18 22 23 18 22 14 16 17 14 16 17 23 18 22 17 12 17 14 16 17 12 18 20
++23 18 22 23 18 22 14 16 17 23 18 22 12 18 20 23 18 22 14 16 17 12 18 20
++23 20 24 23 20 24 23 20 24 26 30 28 22 25 24 26 30 28 26 24 32 26 30 28
++
++3 4 9 3 4 9 13 4 7 3 4 9 13 4 7 6 15 6 3 4 9 7 12 13
++13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 7 12 13 17 12 17
++7 10 17 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 13 4 7 7 10 17
++17 12 17 7 12 13 13 4 7 3 4 9 7 12 13 13 4 7 3 4 9 3 4 9
++3 4 9 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 17 12 17
++7 12 13 17 12 17 14 16 17 15 22 17 23 18 22 26 25 15 22 25 24 29 35 19
++33 30 30 32 39 24 29 35 19 32 39 24 32 39 24 47 47 21 35 46 43 47 49 42
++47 47 21 42 47 42 49 74 23 43 55 48 49 74 23 51 49 42 49 74 23 50 61 48
++47 49 42 49 74 23 43 55 48 42 47 42 47 47 21 43 55 48 42 47 42 43 55 48
++49 74 23 32 39 24 35 46 43 32 39 24 32 39 24 32 39 24 32 39 24 23 30 35
++23 31 15 23 31 15 15 22 17 15 22 17 7 12 13 14 16 17 7 12 13 17 12 17
++7 12 13 17 12 17 7 10 17 7 10 17 7 10 17 13 4 7 7 12 13 13 4 7
++7 12 13 13 4 7 7 12 13 13 4 7 7 10 17 13 4 7 7 12 13 13 4 7
++7 10 17 13 4 7 7 12 13 7 12 13 13 4 7 7 10 17 13 4 7 7 12 13
++13 4 7 7 12 13 7 10 17 17 12 17 7 10 17 7 10 17 7 12 13 13 4 7
++7 12 13 17 12 17 15 17 7 17 12 17 22 24 13 17 12 17 22 24 13 23 18 22
++22 24 13 28 13 18 26 25 15 28 13 18 34 30 15 33 30 30 28 13 18 33 30 30
++49 13 16 33 30 30 52 30 15 52 30 35 52 30 15 53 35 17 52 30 35 52 30 15
++52 30 15 52 30 35 52 30 15 52 30 15 52 30 15 52 30 35 52 30 15 34 30 15
++52 30 15 34 30 15 49 13 16 34 30 15 49 13 16 34 30 15 49 13 16 34 30 15
++33 30 30 34 30 15 33 30 30 28 13 18 28 13 18 26 25 15 23 18 22 22 24 13
++23 18 22 23 20 24 26 25 15 23 20 24 34 30 15 22 25 24 26 30 28 34 30 15
++33 30 30 32 39 24 33 30 30 32 39 24 53 35 37 33 39 38 36 35 37 42 41 42
++47 47 21 42 38 42 47 39 42 47 44 42 51 49 42 51 49 42 51 49 42 51 49 42
++60 49 42 51 49 42 63 55 45 55 55 48 60 49 42 63 55 45 63 55 45 51 49 42
++63 55 45 51 49 42 63 55 45 51 49 42 60 49 42 55 55 48 55 55 48 63 55 51
++65 63 61 65 63 61 65 63 61 75 72 67 75 72 67 75 64 82 75 81 76 88 69 84
++75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 88 69 84 75 81 76 88 69 84
++75 81 69 75 81 76 88 66 70 75 81 76 75 72 67 88 69 84 75 81 76 88 69 84
++75 81 76 88 83 74 88 66 70 88 69 84 88 83 74 88 83 74 88 69 84 88 83 88
++88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 95 91 100 88 83 88 95 91 100
++95 91 100 88 83 88 95 91 100 88 83 88 95 91 100 95 91 100 95 91 100 88 69 84
++95 91 100 88 69 84 88 69 84 88 83 88 88 69 84 88 69 84 75 64 82 75 63 62
++65 57 61 65 57 61 76 44 53 57 43 64 76 44 53 65 55 54 57 43 51 76 44 53
++65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54
++65 55 54 57 43 64 59 55 55 57 43 51 57 43 51 57 43 51 57 43 64 48 50 48
++57 43 64 48 50 48 48 44 48 57 43 64 43 42 50 48 44 48 48 50 48 43 42 50
++43 42 50 43 42 50 34 40 43 28 35 38 33 30 36 28 30 35 22 25 24 23 20 24
++23 20 24 12 18 30 15 22 17 23 20 24 12 18 20 23 20 24 22 23 31 26 24 32
++31 35 35 42 47 42 54 57 61 53 63 61 59 57 61 65 63 61 75 72 67 75 81 82
++88 83 88 90 98 89 88 83 88 75 72 67 65 63 61 75 72 67 75 72 67 75 72 67
++65 63 61 59 57 61 59 57 61 65 63 61 65 63 61 59 55 55 52 55 48 48 44 48
++42 41 42 33 30 32 22 25 24 15 22 17 12 18 20 23 20 24 22 25 24 26 24 32
++28 30 35 28 35 38 34 40 43 43 42 50 32 40 58 43 42 50 43 42 50 43 42 50
++45 57 61 57 43 64 45 57 61 54 57 61 57 43 64 59 57 61 59 57 61 63 59 71
++75 72 67 75 72 67 75 64 82 75 81 82 88 69 84 75 81 90 88 69 84 88 83 88
++88 69 84 75 81 76 75 59 67 65 63 61 65 63 61 59 55 55 47 44 42 32 39 24
++29 35 19 26 25 15 26 25 15 22 25 24 26 30 28 23 18 22 23 18 22 22 24 13
++23 18 22 17 12 17 17 12 17 23 18 22 22 25 24 22 25 24 23 18 22 14 16 17
++23 18 22 17 12 17 17 12 17 7 12 13 17 12 17 23 18 22 22 25 24 23 20 24
++15 22 17 15 22 17 22 25 24 33 30 30 36 35 37 36 35 37 33 30 30 23 20 24
++23 18 22 23 18 22 15 22 17 23 18 22 14 16 17 23 20 24 26 30 28 33 30 30
++33 30 32 33 30 32 22 25 24 14 16 17 14 16 17 7 12 13 15 17 7 7 12 13
++14 16 17 23 18 22 26 30 28 33 30 32 33 30 32 26 30 28 22 25 24 23 18 22
++22 25 24 22 25 24 23 20 24 14 16 17 17 12 17 15 17 7 17 12 17 7 12 13
++17 12 17 15 17 7 17 12 17 14 16 17 23 18 22 23 18 22 23 18 22 26 25 15
++23 20 24 26 24 32 26 25 15 22 25 24 36 35 37 52 55 48 65 63 61 65 63 61
++55 55 48 51 49 42 55 55 48 65 55 54 75 72 67 88 83 74 88 83 74 65 63 61
++63 55 45 60 49 42 53 46 48 60 49 42 47 44 42 55 39 37 51 49 42 47 47 21
++47 39 42 36 35 37 36 35 37 53 35 37 36 35 37 47 39 42 32 39 24 36 35 37
++33 30 30 33 30 30 33 30 30 32 39 24 33 30 32 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 36 52 30 35 42 38 42 47 39 42 48 44 48
++53 46 48 54 57 61 57 43 64 63 59 71 63 59 71 75 72 67 75 81 82 75 81 90
++75 81 90 95 91 100 77 91 115 95 91 100 94 105 108 95 108 128 95 108 128 111 119 127
++111 119 127 111 122 142 111 122 142 111 122 142 122 134 144 122 134 144 122 134 144 122 134 144
++122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 119 117 138 122 134 144 122 134 144
++122 134 144 122 134 144 119 117 138 111 122 142 111 122 142 111 122 142 111 119 127 111 122 142
++111 119 127 95 108 128 95 108 128 111 119 127 95 95 116 95 108 128 95 95 116 95 95 116
++95 91 100 77 90 100 88 69 84 75 81 90 75 64 82 75 64 82 60 63 87 59 69 70
++63 59 71 59 69 70 75 59 67 63 59 71 59 57 61 59 57 61 59 57 61 59 57 61
++59 57 61 59 57 61 59 57 61 59 57 61 65 63 61 65 57 61 63 59 71 65 63 61
++63 59 71 75 72 67 75 64 82 75 72 67 75 72 67 75 64 82 75 81 76 75 81 76
++88 69 84 75 81 76 75 64 82 75 81 82 88 69 84 75 81 76 75 64 82 75 72 67
++75 64 82 75 72 67 75 64 82 75 72 67 75 64 82 75 72 67 63 59 71 75 72 67
++63 59 71 65 63 61 59 57 61 59 57 61 59 57 61 57 43 64 53 46 48 48 44 48
++48 44 48 43 42 50 42 41 42 42 38 42 36 35 37 33 30 36 30 30 34 26 30 28
++26 24 32 22 25 24 22 25 24 23 20 24 22 25 24 12 18 20 23 18 22 23 20 24
++23 20 24 12 18 20 14 16 17 23 20 24 12 18 20 23 18 22 23 20 24 23 20 24
++15 22 17 23 20 24 23 20 24 15 22 17 23 20 24 23 20 24 26 24 32 22 25 24
++33 30 30 33 30 30 30 30 34 33 30 32 36 35 37 42 38 42 47 44 42 48 44 48
++48 50 48 54 57 61 59 57 61 65 57 61 63 59 71 75 72 67 75 64 82 75 81 76
++75 64 82 75 81 82 75 81 82 88 83 88 75 81 82 75 81 90 88 83 88 75 81 90
++75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 64 82 75 81 90 60 63 87
++75 81 90 75 81 82 75 81 82 75 64 82 75 64 82 60 81 83 75 64 82 75 81 76
++75 64 82 60 81 83 75 64 82 60 81 83 75 81 90 75 64 82 75 81 90 60 63 87
++75 81 82 60 63 87 59 69 70 60 63 87 59 69 70 46 59 71 46 59 71 54 57 61
++45 57 61 45 57 61 43 42 50 43 42 50 37 35 43 28 35 38 28 35 38 26 24 32
++22 23 31 23 20 24 23 20 24 15 22 17 14 16 17 14 16 17 14 16 17 23 18 22
++14 16 17 15 22 17 23 18 22 12 18 20 23 18 22 12 18 20 23 20 24 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 26 24 32 22 25 24 26 24 32
++22 25 24 22 25 24 33 30 30 23 20 24 22 25 24 23 20 24 23 20 24 26 30 28
++23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24 26 24 32 22 25 24
++23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 12 18 20 22 25 24 23 20 24
++23 20 24 12 18 20 23 20 24 23 20 24 23 20 24 23 20 24 15 22 17 23 20 24
++23 20 24 23 18 22 14 16 17 23 18 22 14 16 17 23 18 22 14 16 17 14 16 17
++23 18 22 14 16 17 14 16 17 12 18 20 14 16 17 14 16 17 14 16 17 14 16 17
++17 12 17 14 16 17 17 12 17 14 16 17 17 12 17 17 12 17 17 12 17 14 16 17
++14 16 17 14 16 17 23 18 22 14 16 17 14 16 17 14 16 17 23 18 22 14 16 17
++14 16 17 14 16 17 14 16 17 14 16 17 23 18 22 14 16 17 23 18 22 23 18 22
++15 22 17 23 20 24 22 25 24 23 20 24 26 24 32 22 25 24 22 25 24 26 24 32
++
++3 3 1 3 4 9 3 4 9 6 15 6 3 4 9 3 4 9 13 4 7 7 12 13
++3 4 9 7 12 13 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 7 12 13
++7 12 13 17 12 17 7 10 17 7 12 13 13 4 7 7 10 17 17 12 17 7 12 13
++7 10 17 13 4 7 7 10 17 3 4 9 13 4 7 7 10 17 13 4 7 7 10 17
++13 4 7 3 4 9 7 12 13 3 4 9 7 12 13 13 4 7 7 12 13 7 12 13
++14 16 17 14 16 17 14 16 17 15 22 17 22 25 24 26 30 28 29 35 19 22 25 24
++29 35 19 29 35 19 32 39 24 32 39 24 47 47 21 32 39 24 47 47 21 35 46 43
++49 74 23 42 47 42 49 74 23 47 49 42 49 74 23 50 61 48 50 61 48 49 74 23
++50 61 48 49 74 23 43 55 48 49 74 23 43 55 48 49 74 23 42 47 42 49 74 23
++35 46 43 49 74 23 32 39 24 49 74 23 32 39 24 32 39 24 32 39 24 23 31 15
++23 30 35 15 22 17 15 22 17 7 12 13 14 16 17 7 12 13 14 16 17 7 10 17
++7 10 17 7 12 13 17 12 17 7 10 17 13 4 7 7 12 13 3 4 9 7 10 17
++7 12 13 7 12 13 17 12 17 7 10 17 3 4 9 7 10 17 13 4 7 7 10 17
++13 4 7 7 12 13 7 10 17 13 4 7 7 10 17 3 4 9 7 12 13 3 4 9
++7 12 13 7 10 17 17 12 17 7 12 13 7 12 13 17 12 17 7 12 13 7 12 13
++13 4 7 7 12 13 15 17 7 17 12 17 17 12 17 26 12 13 22 24 13 26 12 13
++22 24 13 28 13 18 33 30 30 28 13 18 34 30 15 28 13 18 52 30 15 34 30 15
++33 30 30 34 30 15 52 30 15 34 30 15 52 30 35 52 30 15 34 30 15 52 30 35
++52 30 15 52 30 35 52 30 15 52 30 35 52 30 15 33 30 30 52 30 15 34 30 15
++49 13 16 34 30 15 52 30 35 34 30 15 33 30 30 34 30 15 28 13 18 34 30 15
++28 13 18 34 30 15 28 13 18 26 25 15 26 25 15 23 18 22 23 18 22 14 16 17
++23 18 22 22 25 24 22 25 24 22 25 24 22 25 24 33 30 30 22 25 24 26 30 28
++29 35 19 33 30 30 33 30 30 33 30 30 32 39 24 47 47 21 36 35 37 47 47 21
++36 35 37 36 35 37 47 47 21 47 44 42 55 39 37 51 49 42 60 49 42 51 49 42
++51 49 42 63 55 45 51 49 42 55 55 48 63 55 45 60 49 42 63 55 45 51 49 42
++63 55 45 51 49 42 51 49 42 51 49 42 51 49 42 55 55 48 55 55 48 55 55 48
++59 55 55 65 63 61 65 63 61 59 69 70 75 72 67 75 81 76 75 81 76 75 81 76
++75 81 76 88 69 84 75 81 76 88 69 84 75 81 76 75 81 76 75 81 76 75 81 76
++88 66 70 75 81 76 75 72 67 75 64 82 75 72 67 75 72 67 75 72 67 75 81 69
++88 66 70 75 72 67 75 81 69 75 72 67 88 69 84 75 81 82 88 83 74 88 69 84
++88 83 88 88 83 88 88 83 88 95 91 100 88 83 88 95 91 100 88 83 88 95 91 100
++88 83 88 95 91 100 88 83 88 95 91 100 88 83 88 95 91 100 95 91 100 95 91 100
++95 91 100 95 91 100 88 83 88 88 69 84 75 81 82 88 69 84 75 72 67 75 59 67
++75 59 67 65 57 61 65 55 54 65 55 54 59 55 55 76 44 53 65 55 54 57 43 51
++65 57 61 76 44 53 65 57 61 65 57 61 65 55 54 65 57 61 65 55 54 57 43 64
++65 55 54 59 55 55 59 55 55 53 46 48 54 57 61 53 46 48 54 57 61 53 46 48
++48 50 48 54 57 61 53 46 48 48 50 48 48 50 48 57 43 64 43 42 50 45 57 61
++43 42 50 43 42 50 34 40 43 37 35 43 28 30 35 26 24 32 22 23 31 12 18 20
++14 16 17 23 18 22 15 22 17 23 20 24 22 25 24 33 30 30 36 35 37 48 44 48
++48 50 48 55 55 48 65 63 61 65 63 61 63 55 51 59 57 61 65 63 61 65 63 61
++65 55 54 65 63 61 75 72 67 65 63 61 65 55 54 63 55 51 63 55 51 55 55 48
++51 49 42 55 39 37 47 39 42 51 49 42 55 55 48 63 55 51 65 55 54 65 63 61
++88 83 74 88 83 74 65 63 61 42 41 42 26 30 28 22 25 24 26 30 28 26 24 32
++28 30 35 36 35 37 29 34 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50
++48 44 48 54 57 61 48 50 48 59 55 55 54 57 61 59 57 61 59 57 61 65 63 61
++63 59 71 75 64 82 75 81 82 75 64 82 75 81 90 88 69 84 88 83 88 75 81 90
++88 83 88 75 81 82 75 64 82 75 72 67 65 57 61 51 49 42 33 30 30 33 30 30
++22 25 24 22 24 13 23 20 24 26 30 28 22 25 24 22 25 24 23 18 22 15 22 17
++14 16 17 23 18 22 15 22 17 23 18 22 22 25 24 23 18 22 23 18 22 17 12 17
++14 16 17 17 12 17 7 12 13 13 4 7 17 12 17 23 18 22 26 30 28 33 30 30
++23 20 24 23 18 22 23 20 24 26 30 28 22 25 24 22 25 24 23 20 24 23 20 24
++15 22 17 23 18 22 23 20 24 23 20 24 26 30 28 33 30 30 33 30 32 33 30 32
++33 30 32 33 30 30 22 25 24 14 16 17 7 12 13 13 4 7 7 12 13 17 12 17
++14 16 17 15 22 17 22 25 24 33 30 30 36 35 37 42 41 42 36 35 37 33 30 30
++33 30 32 33 30 30 22 25 24 23 18 22 17 12 17 23 18 22 14 16 17 23 10 10
++7 12 13 17 12 17 17 12 17 15 17 7 17 12 17 14 16 17 17 12 17 14 16 17
++23 18 22 14 16 17 23 18 22 23 20 24 33 30 30 36 35 37 52 55 48 65 63 61
++75 72 67 65 63 61 75 72 67 75 72 67 88 83 88 99 93 84 88 83 74 75 73 58
++63 55 51 60 49 42 60 49 42 51 49 42 55 39 37 51 49 42 55 39 37 55 39 37
++36 35 37 53 35 37 55 39 37 32 39 24 53 35 37 32 39 24 36 35 37 52 30 35
++32 39 24 52 30 35 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30 34 30 15
++33 30 30 33 30 30 33 30 30 33 30 32 36 35 37 47 39 42 48 44 48 48 44 48
++57 43 64 57 43 51 59 57 61 65 63 61 63 59 71 59 69 70 75 64 82 75 64 82
++75 81 90 77 90 100 95 91 100 77 91 115 95 95 116 94 105 108 95 108 128 95 108 128
++98 121 131 111 119 127 111 119 127 111 122 142 119 117 138 122 134 144 119 117 138 122 134 144
++122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144
++122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 111 122 142 111 122 142 111 119 127
++119 117 138 111 119 127 119 117 138 95 108 128 95 108 128 95 95 116 95 95 116 95 95 116
++95 91 100 77 91 115 75 81 90 75 81 90 75 81 90 60 63 87 75 72 67 63 59 71
++63 59 71 59 57 61 59 69 70 63 59 71 59 57 61 59 57 61 54 57 61 59 57 61
++59 57 61 59 57 61 59 57 61 59 57 61 59 57 61 59 57 61 65 57 61 63 59 71
++65 63 61 75 64 82 75 72 67 63 59 71 75 64 82 75 81 76 88 69 84 75 64 82
++75 81 82 75 64 82 75 81 76 88 69 84 75 81 76 75 64 82 75 81 76 75 64 82
++75 72 67 75 72 67 75 64 82 75 81 76 75 64 82 59 69 70 75 59 67 59 69 70
++63 59 71 63 59 71 59 57 61 54 57 61 59 55 55 54 57 61 54 57 61 48 44 48
++43 42 50 35 47 50 42 41 42 34 40 43 34 40 43 33 30 36 30 30 34 28 30 35
++26 24 32 26 24 32 22 23 31 22 25 24 23 20 24 23 18 22 15 22 17 15 22 17
++15 22 17 15 22 17 23 18 22 12 18 20 23 18 22 12 18 20 23 20 24 15 22 17
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 26 25 15
++26 24 32 26 30 28 33 30 32 33 30 32 36 35 37 36 35 37 42 41 42 48 50 48
++53 46 48 59 55 55 54 57 61 59 57 61 65 63 61 59 69 70 63 59 71 75 81 76
++75 64 82 75 81 76 75 64 82 75 81 82 75 81 82 75 81 90 75 81 90 75 81 90
++75 81 90 75 81 90 75 64 82 75 81 90 75 64 82 75 81 90 75 81 90 60 81 83
++75 81 82 60 81 83 75 81 82 60 81 83 59 69 70 75 81 76 59 69 70 60 81 83
++75 64 82 59 69 70 75 64 82 75 81 82 75 64 82 60 81 83 75 64 82 60 81 83
++75 64 82 60 81 83 60 63 87 59 69 70 63 59 71 63 59 71 54 57 61 45 57 61
++45 57 61 43 42 50 43 42 50 43 42 50 37 35 43 36 35 37 28 35 38 25 30 29
++22 23 31 22 25 24 12 18 20 23 18 22 23 18 22 23 20 24 14 16 17 23 18 22
++14 16 17 23 18 22 12 18 20 23 18 22 23 18 22 23 20 24 12 18 20 23 20 24
++15 22 17 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24
++26 24 32 22 25 24 23 20 24 26 30 28 26 24 32 26 30 28 22 25 24 23 20 24
++22 25 24 23 20 24 26 24 32 22 25 24 26 24 32 22 25 24 22 25 24 23 20 24
++22 25 24 22 25 24 23 20 24 23 20 24 15 22 17 23 20 24 23 20 24 23 20 24
++22 25 24 23 20 24 15 22 17 23 20 24 15 22 17 23 20 24 23 20 24 15 22 17
++23 20 24 12 18 20 23 20 24 14 16 17 23 18 22 12 18 20 23 18 22 14 16 17
++14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++23 18 22 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++17 12 17 14 16 17 23 18 22 14 16 17 14 16 17 23 18 22 15 22 17 12 18 20
++23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 26 24 32 22 25 24 22 25 24
++
++3 4 9 3 4 9 13 4 7 3 4 9 13 4 7 7 12 13 3 4 9 13 4 7
++7 12 13 13 4 7 7 12 13 7 12 13 7 12 13 7 12 13 7 12 13 13 4 7
++7 10 17 13 4 7 7 12 13 13 4 7 7 10 17 7 12 13 13 4 7 7 10 17
++13 4 7 3 4 9 7 12 13 3 4 9 7 10 17 3 4 9 3 4 9 7 10 17
++3 4 9 7 10 17 3 4 9 7 12 13 3 4 9 7 12 13 7 12 13 17 12 17
++14 16 17 15 17 7 14 16 17 23 18 22 26 25 15 22 25 24 26 30 28 29 35 19
++26 30 28 32 39 24 32 39 24 32 39 24 32 39 24 49 74 23 35 46 43 49 74 23
++47 47 21 49 74 23 43 55 48 49 74 23 50 61 48 49 74 23 50 61 48 50 61 48
++50 61 48 49 74 23 47 49 42 49 74 23 42 47 42 49 74 23 35 46 43 47 49 42
++49 74 23 35 46 43 35 46 43 32 39 24 32 39 24 32 39 24 32 39 24 23 31 15
++23 31 15 15 22 17 6 15 6 12 18 20 7 12 13 14 16 17 7 10 17 7 12 13
++17 12 17 7 10 17 7 12 13 7 12 13 3 4 9 7 10 17 13 4 7 7 12 13
++13 4 7 7 10 17 13 4 7 7 12 13 13 4 7 13 4 7 7 10 17 3 4 9
++7 10 17 3 4 9 13 4 7 7 10 17 3 4 9 13 4 7 7 12 13 13 4 7
++7 12 13 13 4 7 7 10 17 13 4 7 7 10 17 13 4 7 7 10 17 15 17 7
++7 12 13 15 17 7 17 12 17 17 12 17 22 24 13 22 24 13 26 12 13 28 13 18
++26 25 15 28 13 18 34 30 15 34 30 15 28 13 18 33 30 30 34 30 15 49 13 16
++34 30 15 52 30 15 33 30 30 52 30 15 52 30 15 52 30 35 49 13 16 52 30 15
++52 30 15 52 30 15 33 30 30 52 30 15 33 30 30 52 30 15 49 13 16 33 30 30
++52 30 15 33 30 30 49 13 16 34 30 15 28 13 18 34 30 15 28 13 18 33 30 30
++28 13 18 26 25 15 26 25 15 26 25 15 23 18 22 17 12 17 15 22 17 14 16 17
++15 22 17 23 18 22 15 22 17 22 25 24 23 20 24 26 25 15 22 25 24 33 30 30
++26 30 28 33 30 30 29 35 19 32 39 24 33 30 30 36 35 37 32 39 24 42 38 42
++36 35 37 55 39 37 42 41 42 47 44 42 47 47 21 47 49 42 51 49 42 51 49 42
++60 49 42 51 49 42 63 55 45 51 49 42 63 55 45 63 55 45 51 49 42 60 49 42
++51 49 42 51 49 42 51 49 42 51 49 42 55 55 48 60 49 42 55 55 48 63 55 51
++65 63 61 65 63 61 59 69 70 75 64 82 75 72 67 75 64 82 75 81 76 75 64 82
++75 81 76 75 64 82 75 81 76 75 72 67 75 81 76 75 64 82 75 72 67 88 69 84
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 81 76 88 66 70 75 81 69 75 81 76 88 69 84 75 81 76 88 83 88
++88 69 84 88 83 88 88 83 88 88 83 88 88 83 88 95 91 100 95 91 100 88 83 88
++95 91 100 88 69 84 95 91 100 95 91 100 88 83 88 95 91 100 88 69 84 95 91 100
++88 69 84 88 69 84 95 91 100 88 69 84 88 69 84 88 69 84 75 72 67 75 59 67
++75 63 62 76 44 53 65 57 61 76 44 53 65 55 54 57 43 64 76 44 53 65 55 54
++65 55 54 65 57 61 65 57 61 75 56 53 65 55 54 65 55 54 65 55 54 65 55 54
++57 43 51 57 43 51 53 46 48 59 55 55 53 46 48 53 46 48 57 43 64 48 50 48
++57 43 64 48 50 48 57 43 64 48 50 48 48 44 48 48 50 48 45 57 61 48 44 48
++43 42 50 34 40 43 29 34 50 28 35 38 28 30 35 25 30 29 22 25 24 23 20 24
++23 20 24 22 25 24 22 25 24 33 30 30 33 30 30 31 35 35 42 41 42 47 49 42
++48 50 48 47 49 42 42 47 42 42 47 42 42 41 42 51 49 42 47 44 42 47 47 21
++42 41 42 51 49 42 63 55 45 63 55 51 55 55 48 60 49 42 60 49 42 51 49 42
++60 49 42 47 44 42 51 49 42 51 49 42 51 49 42 51 49 42 63 55 51 75 72 67
++99 93 84 90 98 89 90 98 89 75 81 69 59 57 61 48 50 48 36 35 37 36 35 37
++33 30 36 33 30 36 37 35 43 43 42 50 43 42 50 43 42 50 43 42 50 45 57 61
++57 43 64 45 57 61 54 57 61 45 57 61 54 57 61 59 57 61 59 57 61 63 59 71
++59 69 70 75 64 82 75 64 82 75 81 82 75 81 90 88 69 84 75 81 90 88 83 88
++88 69 84 75 81 90 88 69 84 65 63 61 59 55 55 47 39 42 33 30 30 29 35 19
++26 25 15 22 25 24 26 30 28 33 30 30 22 25 24 26 30 28 23 20 24 23 18 22
++23 18 22 22 24 13 23 20 24 22 24 13 23 18 22 15 22 17 17 12 17 15 22 17
++17 12 17 14 16 17 17 12 17 17 12 17 14 16 17 23 18 22 26 30 28 26 30 28
++23 20 24 23 18 22 23 18 22 23 18 22 23 18 22 23 18 22 23 20 24 23 18 22
++23 20 24 23 18 22 22 25 24 22 25 24 33 30 30 33 30 30 33 30 32 33 30 32
++33 30 30 22 25 24 23 20 24 23 20 24 14 16 17 17 12 17 14 16 17 14 16 17
++23 18 22 17 12 17 23 18 22 26 30 28 47 44 42 48 50 48 42 41 42 48 50 48
++48 44 48 42 47 42 36 35 37 36 35 37 36 35 37 22 25 24 17 12 17 7 12 13
++13 4 7 14 16 17 13 4 7 7 12 13 17 12 17 15 17 7 23 18 22 14 16 17
++17 12 17 17 12 17 22 24 13 23 18 22 22 25 24 33 30 30 47 49 42 65 63 61
++75 81 76 75 81 76 75 72 67 75 72 67 75 72 67 75 72 67 75 63 62 65 55 54
++63 55 45 60 49 42 51 49 42 60 49 42 51 49 42 55 39 37 47 47 21 47 44 42
++55 39 37 42 41 42 32 39 24 47 39 42 36 35 37 55 39 37 36 35 37 32 39 24
++36 35 37 33 30 30 32 39 24 52 30 35 33 30 30 52 30 15 33 30 30 33 30 30
++52 30 35 34 30 15 33 30 30 52 30 35 42 38 42 47 39 42 53 46 48 53 46 48
++59 55 55 57 43 64 59 57 61 63 59 71 75 59 67 59 69 70 75 81 76 75 81 82
++75 81 90 95 91 100 77 90 100 94 105 108 94 105 108 95 95 116 111 119 127 111 119 127
++111 119 127 98 121 131 111 122 142 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144
++122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144
++122 134 144 122 134 144 122 134 144 122 134 144 119 117 138 122 134 144 119 117 138 111 119 127
++111 119 127 95 108 128 111 119 127 95 108 128 112 96 108 95 108 128 95 95 116 95 91 100
++77 90 100 88 69 84 75 81 90 75 81 90 75 64 82 63 59 71 75 64 82 59 69 70
++63 59 71 59 57 61 59 57 61 59 57 61 59 57 61 54 57 61 54 57 61 59 57 61
++59 57 61 59 57 61 59 57 61 59 57 61 65 63 61 59 57 61 63 59 71 65 63 61
++63 59 71 65 63 61 75 64 82 75 72 67 75 72 67 75 64 82 75 81 76 75 64 82
++75 81 76 88 69 84 75 81 76 75 64 82 75 81 76 75 81 76 75 64 82 75 72 67
++75 64 82 59 69 70 75 72 67 59 69 70 75 72 67 75 64 82 59 69 70 63 59 71
++65 63 61 63 59 71 59 57 61 54 57 61 54 57 61 57 43 64 59 55 55 43 42 50
++48 44 48 43 42 50 42 41 42 34 40 43 37 35 43 31 35 35 30 30 34 28 30 35
++30 30 34 26 30 28 22 25 24 23 20 24 15 22 17 22 24 13 15 22 17 23 20 24
++23 20 24 12 18 20 15 22 17 23 18 22 15 22 17 23 18 22 23 20 24 23 20 24
++15 22 17 23 20 24 15 22 17 23 20 24 23 20 24 23 20 24 23 20 24 26 24 32
++33 30 30 26 30 28 33 30 30 33 30 32 33 30 32 36 35 37 47 39 42 48 44 48
++48 50 48 48 44 48 54 57 61 59 57 61 59 57 61 63 59 71 75 72 67 75 64 82
++75 72 67 75 81 82 75 64 82 75 81 76 75 64 82 75 81 90 75 64 82 75 81 90
++75 64 82 75 81 90 75 64 82 75 81 90 60 81 83 75 81 90 75 64 82 60 81 83
++75 64 82 75 64 82 60 81 83 75 64 82 59 69 70 75 64 82 60 81 83 59 69 70
++75 64 82 60 81 83 75 64 82 60 81 83 75 64 82 75 81 90 75 81 82 75 64 82
++60 81 83 75 64 82 59 69 70 60 63 87 59 69 70 63 59 71 54 57 61 54 57 61
++48 50 48 48 50 48 35 47 50 37 35 43 37 35 43 31 35 35 28 30 35 23 30 35
++22 25 24 22 25 24 12 18 20 23 18 22 12 18 20 14 16 17 23 18 22 12 18 20
++23 18 22 14 16 17 23 18 22 15 22 17 23 20 24 23 18 22 23 20 24 23 20 24
++23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24
++22 25 24 23 20 24 22 25 24 26 24 32 22 25 24 23 20 24 23 20 24 22 25 24
++23 20 24 22 25 24 22 25 24 22 25 24 23 20 24 26 24 32 22 25 24 22 25 24
++23 20 24 23 20 24 23 20 24 12 18 20 23 20 24 23 20 24 15 22 17 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 15 22 17 23 20 24 23 20 24 23 20 24
++23 20 24 23 18 22 23 18 22 12 18 20 14 16 17 14 16 17 14 16 17 23 18 22
++14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 17 12 17
++14 16 17 23 18 22 14 16 17 17 12 17 23 18 22 14 16 17 23 18 22 14 16 17
++14 16 17 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17
++14 16 17 14 16 17 14 16 17 14 16 17 23 18 22 12 18 20 23 18 22 23 18 22
++15 22 17 23 20 24 15 22 17 23 20 24 23 20 24 22 25 24 23 20 24 26 24 32
++
++3 3 1 3 4 9 6 15 6 3 4 9 3 4 9 3 4 9 13 4 7 7 12 13
++7 12 13 3 4 9 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7
++7 12 13 7 10 17 7 12 13 7 10 17 13 4 7 7 10 17 3 4 9 7 10 17
++7 12 13 7 10 17 3 4 9 13 4 7 3 4 9 7 10 17 13 4 7 3 4 9
++13 4 7 7 12 13 3 4 9 13 4 7 3 4 9 13 4 7 7 12 13 17 12 17
++7 12 13 14 16 17 15 22 17 15 22 17 22 25 24 26 30 28 29 35 19 32 39 24
++32 39 24 32 39 24 32 39 24 32 39 24 47 47 21 35 46 43 32 39 24 49 74 23
++42 47 42 43 55 48 49 74 23 50 61 48 51 73 47 50 61 48 49 74 23 51 73 47
++49 74 23 50 61 48 43 55 48 49 74 23 43 55 48 35 46 43 49 74 23 35 46 43
++49 74 23 35 46 43 49 74 23 32 39 24 49 74 23 32 39 24 32 39 24 23 31 15
++15 22 17 15 22 17 15 22 17 7 12 13 7 12 13 7 10 17 14 16 17 17 12 17
++7 12 13 7 12 13 7 10 17 13 4 7 7 12 13 13 4 7 3 4 9 7 10 17
++3 4 9 13 4 7 7 10 17 13 4 7 7 12 13 7 10 17 3 4 9 7 10 17
++13 4 7 7 12 13 7 10 17 3 4 9 7 12 13 13 4 7 3 4 9 7 12 13
++13 4 7 7 10 17 7 10 17 17 12 17 7 12 13 7 10 17 17 12 17 7 12 13
++13 4 7 17 12 17 15 17 7 17 12 17 28 13 18 26 12 13 26 25 15 26 25 15
++28 13 18 34 30 15 28 13 18 33 30 30 34 30 15 49 13 16 33 30 30 34 30 15
++33 30 30 49 13 16 33 30 30 52 30 15 33 30 30 52 30 15 34 30 15 52 30 35
++33 30 30 52 30 15 52 30 35 49 13 16 52 30 15 33 30 30 49 13 16 34 30 15
++49 13 16 34 30 15 33 30 30 49 13 16 34 30 15 28 13 18 34 30 15 26 25 15
++26 25 15 28 13 18 23 18 22 22 24 13 26 12 13 14 16 17 14 16 17 23 18 22
++14 16 17 15 22 17 23 18 22 22 25 24 22 25 24 22 25 24 22 25 24 26 25 15
++26 30 28 29 35 19 33 30 30 32 39 24 36 35 37 32 39 24 36 35 37 47 47 21
++36 35 37 47 47 21 42 41 42 47 44 42 47 44 42 47 44 42 51 49 42 51 49 42
++51 49 42 51 49 42 51 49 42 55 55 48 60 49 42 51 49 42 60 49 42 60 49 42
++51 49 42 51 49 42 60 49 42 51 49 42 51 49 42 55 55 48 55 55 48 50 61 48
++59 57 61 65 63 61 75 72 67 59 69 70 75 72 67 75 81 76 75 72 67 75 81 76
++75 72 67 75 81 76 75 64 82 75 81 76 75 64 82 75 72 67 75 81 76 75 72 67
++75 81 76 75 72 67 75 64 82 75 72 67 75 59 67 75 72 67 75 59 67 75 59 67
++75 72 67 75 72 67 75 72 67 88 66 70 75 72 67 75 81 76 88 69 84 75 81 82
++88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 95 91 100 88 69 84 77 91 115
++88 69 84 77 91 115 95 91 100 88 83 88 95 95 116 88 69 84 95 95 116 88 69 84
++95 91 100 88 83 88 88 69 84 88 69 84 75 81 82 88 69 84 75 72 67 75 59 67
++65 57 61 75 59 67 65 55 54 65 57 61 76 44 53 65 55 54 65 57 61 76 44 53
++65 57 61 76 44 53 65 57 61 65 57 61 65 57 61 65 57 61 65 57 61 57 43 51
++65 55 54 59 55 55 59 55 55 53 46 48 57 43 51 54 57 61 48 50 48 57 43 64
++48 50 48 53 46 48 45 57 61 48 44 48 45 57 61 57 43 64 43 42 50 43 42 50
++43 42 50 34 40 43 37 35 43 28 35 38 33 30 36 25 30 29 26 24 32 26 30 28
++31 35 35 30 30 34 33 30 32 32 39 24 36 35 37 36 35 37 36 35 37 47 44 42
++47 49 42 47 44 42 33 30 30 32 39 24 53 35 37 32 39 24 47 39 42 32 39 24
++47 44 42 51 49 42 60 49 42 55 55 48 60 49 42 63 55 45 63 55 45 60 49 42
++63 55 45 63 55 51 63 55 45 63 55 45 63 55 45 63 55 51 65 55 54 75 72 67
++99 93 84 117 99 86 112 123 108 95 91 100 99 93 84 75 72 67 59 55 55 42 38 42
++36 35 37 33 30 36 37 35 43 29 34 50 43 42 50 43 42 50 43 42 50 43 42 50
++45 57 61 53 46 48 54 57 61 53 46 48 54 57 61 54 57 61 59 57 61 65 63 61
++63 59 71 75 72 67 75 64 82 75 64 82 75 81 90 88 69 84 75 81 90 88 83 88
++88 83 88 75 81 82 75 64 82 75 72 67 59 57 61 51 49 42 47 39 42 33 30 30
++33 30 30 36 35 37 33 30 30 26 24 32 33 30 30 26 30 28 22 25 24 22 25 24
++23 20 24 22 25 24 23 20 24 23 18 22 17 12 17 17 12 17 17 12 17 17 12 17
++23 18 22 14 16 17 17 12 17 14 16 17 14 16 17 23 18 22 23 18 22 23 20 24
++23 18 22 17 12 17 22 24 13 23 20 24 26 30 28 22 25 24 23 20 24 22 25 24
++23 20 24 26 25 15 23 20 24 23 20 24 23 18 22 26 24 32 26 30 28 33 30 32
++33 30 32 33 30 30 26 30 28 33 30 30 22 25 24 23 18 22 15 17 7 17 12 17
++14 16 17 15 17 7 23 20 24 33 30 30 42 41 42 48 44 48 42 47 42 59 55 55
++52 55 48 47 44 42 47 44 42 47 44 42 42 38 42 26 30 28 13 4 7 7 12 13
++13 4 7 15 17 7 14 16 17 17 12 17 17 12 17 14 16 17 23 18 22 23 18 22
++23 20 24 14 16 17 17 12 17 17 12 17 14 16 17 22 25 24 33 39 38 59 55 55
++75 72 67 75 81 76 75 72 67 59 55 55 55 55 48 62 47 47 63 55 45 60 49 42
++60 49 42 60 49 42 60 49 42 60 49 42 55 39 37 51 49 42 47 44 42 47 47 21
++47 44 42 53 35 37 53 35 37 32 39 24 42 41 42 32 39 24 53 35 37 33 30 30
++52 30 35 33 30 30 33 30 30 32 39 24 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 36 35 37 33 30 32 42 38 42 47 39 42 48 44 48 53 46 48
++57 43 51 59 55 55 65 57 61 65 63 61 63 59 71 75 64 82 75 81 82 75 64 82
++75 81 90 77 90 100 95 91 100 77 91 115 94 105 108 94 105 108 95 95 116 95 108 128
++111 119 127 111 119 127 111 122 142 111 119 127 111 122 142 122 134 144 122 134 144 119 117 138
++122 134 144 122 134 144 122 134 144 131 144 168 122 134 144 122 134 144 131 144 168 122 134 144
++131 144 168 122 134 144 122 134 144 122 134 144 122 134 144 111 122 142 111 122 142 111 122 142
++119 117 138 111 119 127 119 117 138 95 108 128 95 108 128 95 95 116 95 95 116 95 95 116
++77 90 100 77 90 100 75 81 90 75 81 90 75 64 82 59 69 70 59 69 70 63 59 71
++59 57 61 59 57 61 59 57 61 59 57 61 54 57 61 59 55 55 57 43 64 54 57 61
++59 57 61 59 57 61 59 57 61 59 57 61 59 57 61 65 57 61 65 57 61 65 63 61
++63 59 71 75 59 67 59 69 70 75 59 67 63 59 71 75 64 82 75 81 76 75 64 82
++75 72 67 75 64 82 75 81 76 88 69 84 75 81 76 75 64 82 75 72 67 75 64 82
++75 72 67 75 64 82 75 72 67 75 64 82 59 69 70 75 72 67 63 59 71 75 72 67
++59 69 70 59 57 61 59 57 61 54 57 61 59 55 55 54 57 61 54 57 61 48 44 48
++48 50 48 43 42 50 43 42 50 34 40 43 37 35 43 36 35 37 31 35 35 30 30 34
++30 30 34 26 24 32 22 25 24 22 25 24 23 20 24 15 22 17 23 18 22 12 18 20
++22 25 24 12 18 20 23 20 24 12 18 20 23 20 24 15 22 17 12 18 20 23 20 24
++23 20 24 15 22 17 23 20 24 15 22 17 23 20 24 23 20 24 23 20 24 22 25 24
++23 20 24 26 30 28 26 24 32 33 30 32 33 30 32 36 35 37 42 38 42 47 44 42
++48 44 48 45 57 61 57 43 51 54 57 61 59 57 61 65 63 61 63 59 71 59 69 70
++75 64 82 75 64 82 75 81 76 75 64 82 75 81 76 75 81 90 75 64 82 75 81 90
++75 81 90 75 81 90 60 63 87 75 81 82 60 63 87 75 64 82 60 81 83 75 64 82
++60 81 83 60 81 83 75 64 82 59 69 70 75 81 82 59 69 70 59 69 70 75 64 82
++59 69 70 60 63 87 59 69 70 75 64 82 60 81 83 60 63 87 60 63 87 75 81 82
++60 63 87 59 69 70 75 64 82 59 69 70 63 59 71 53 63 61 57 43 64 45 57 61
++45 57 61 43 42 50 34 40 43 33 39 38 37 35 43 31 35 35 23 30 35 25 30 29
++22 23 31 12 18 20 23 18 22 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++14 16 17 23 18 22 12 18 20 23 18 22 14 16 17 23 18 22 15 22 17 23 20 24
++15 22 17 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24
++22 25 24 23 20 24 26 24 32 22 25 24 26 30 28 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 26 24 32 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24
++22 25 24 22 25 24 23 20 24 23 20 24 23 20 24 15 22 17 23 20 24 23 20 24
++23 20 24 22 25 24 23 20 24 15 22 17 23 20 24 23 20 24 15 22 17 23 20 24
++15 22 17 23 18 22 15 22 17 23 18 22 23 18 22 14 16 17 23 18 22 12 18 20
++23 18 22 23 18 22 14 16 17 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17
++17 12 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++17 12 17 14 16 17 14 16 17 23 18 22 14 16 17 14 16 17 14 16 17 14 16 17
++14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 23 18 22 14 16 17 12 18 20
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 22 25 24
++
++3 4 9 3 4 9 13 4 7 3 4 9 13 4 7 6 15 6 7 12 13 3 4 9
++13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7
++7 10 17 13 4 7 7 10 17 13 4 7 7 10 17 7 12 13 13 4 7 7 10 17
++13 4 7 3 4 9 7 10 17 3 4 9 13 4 7 3 4 9 7 12 13 3 4 9
++7 12 13 3 4 9 13 4 7 7 12 13 13 4 7 7 12 13 6 15 6 13 4 7
++15 17 7 14 16 17 22 24 13 22 25 24 22 25 24 29 35 19 29 35 19 29 35 19
++32 39 24 32 39 24 47 47 21 49 74 23 35 46 43 49 74 23 43 55 48 49 74 23
++43 55 48 49 74 23 51 73 47 51 73 47 49 74 23 64 70 48 51 73 47 51 73 47
++50 61 48 51 73 47 49 74 23 43 55 48 50 61 48 49 74 23 43 55 48 43 55 48
++43 55 48 32 39 24 35 46 43 32 39 24 28 35 38 32 39 24 23 30 35 23 31 15
++15 22 17 6 15 6 6 15 6 14 16 17 7 12 13 17 12 17 7 10 17 7 10 17
++7 12 13 17 12 17 7 12 13 7 12 13 3 4 9 7 12 13 3 4 9 13 4 7
++7 10 17 3 4 9 7 10 17 13 4 7 3 4 9 3 4 9 13 4 7 3 4 9
++7 10 17 3 4 9 13 4 7 7 10 17 3 4 9 7 12 13 3 4 9 7 10 17
++7 12 13 13 4 7 7 12 13 13 4 7 7 10 17 17 12 17 13 4 7 7 12 13
++13 4 7 7 12 13 17 12 17 26 12 13 23 18 22 26 12 13 28 13 18 28 13 18
++26 25 15 28 13 18 34 30 15 28 13 18 34 30 15 33 30 30 49 13 16 52 30 35
++52 30 15 33 30 30 49 13 16 52 30 35 52 30 15 52 30 35 49 13 16 52 30 15
++52 30 35 52 30 15 33 30 30 52 30 15 33 30 30 49 13 16 34 30 15 33 30 30
++34 30 15 28 13 18 34 30 15 28 13 18 33 30 30 34 30 15 28 13 18 23 18 22
++23 18 22 23 18 22 22 24 13 17 12 17 14 16 17 15 17 7 14 16 17 14 16 17
++14 16 17 14 16 17 14 16 17 23 18 22 22 25 24 22 25 24 22 25 24 22 25 24
++26 30 28 23 20 24 33 30 30 33 30 30 33 30 30 36 35 37 36 35 37 36 35 37
++36 35 37 47 39 42 47 47 21 47 39 42 47 44 42 47 44 42 55 39 37 51 49 42
++51 49 42 60 49 42 51 49 42 63 55 45 51 49 42 60 49 42 47 47 21 60 49 42
++51 49 42 51 49 42 51 49 42 51 49 42 52 55 48 51 49 42 55 55 48 63 55 51
++65 63 61 65 63 61 65 63 61 75 59 67 59 69 70 75 72 67 75 64 82 75 72 67
++75 64 82 75 72 67 75 72 67 75 64 82 75 72 67 75 81 76 75 64 82 75 72 67
++75 64 82 75 72 67 75 72 67 75 72 67 63 59 71 63 59 71 75 72 67 63 59 71
++75 72 67 75 59 67 75 72 67 75 64 82 75 81 76 75 64 82 75 81 76 88 69 84
++75 81 90 88 69 84 75 81 90 88 83 88 77 90 100 88 83 88 77 91 115 88 83 88
++95 91 100 75 81 90 88 83 88 95 91 100 88 83 88 95 91 100 88 69 84 95 91 100
++88 69 84 88 69 84 75 81 90 88 69 84 88 69 84 75 64 82 75 64 82 75 63 62
++65 57 61 65 55 54 76 44 53 65 57 61 65 55 54 76 44 53 65 55 54 65 57 61
++65 57 61 75 59 67 65 57 61 65 57 61 76 44 53 65 57 61 65 55 54 65 55 54
++57 43 51 59 55 55 59 55 55 59 55 55 59 55 55 57 43 51 59 55 55 48 50 48
++54 57 61 48 44 48 48 44 48 48 44 48 57 43 64 48 50 48 48 50 48 43 42 50
++43 42 50 34 40 43 29 34 50 30 30 34 30 30 34 33 30 32 36 35 37 36 35 37
++36 35 37 36 35 37 31 35 35 36 35 37 42 47 42 42 47 42 51 49 42 51 49 42
++51 49 42 60 49 42 51 49 42 47 44 42 47 44 42 51 49 42 51 49 42 60 49 42
++60 49 42 60 49 42 63 55 45 63 55 45 75 56 53 75 73 36 75 56 53 63 55 45
++75 56 53 75 56 53 75 73 58 75 63 62 88 73 62 88 73 62 88 73 62 88 83 74
++117 99 86 138 102 108 112 123 108 117 99 86 117 99 86 88 83 74 75 73 58 51 49 42
++36 35 37 36 35 37 42 41 42 42 38 42 43 42 50 43 42 50 43 42 50 48 50 48
++48 44 48 54 57 61 48 50 48 54 57 61 54 57 61 59 57 61 59 57 61 63 59 71
++63 59 71 59 69 70 75 64 82 75 81 82 75 64 82 75 81 90 88 69 84 75 81 90
++88 69 84 88 83 88 88 83 88 75 81 76 75 72 67 54 57 61 47 44 42 42 41 42
++42 47 42 42 41 42 36 35 37 26 30 28 33 30 30 26 30 28 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 15 22 17 17 12 17 15 17 7 14 16 17 22 24 13
++23 18 22 23 18 22 15 22 17 23 18 22 23 18 22 15 22 17 23 18 22 22 24 13
++17 12 17 14 16 17 23 18 22 22 25 24 26 30 28 23 20 24 26 25 15 17 12 17
++23 18 22 23 20 24 23 18 22 14 16 17 17 12 17 26 25 15 23 20 24 33 30 30
++33 30 32 33 30 32 33 30 32 33 30 30 22 25 24 14 16 17 7 12 13 13 4 7
++7 12 13 14 16 17 22 25 24 33 30 32 36 35 37 36 35 37 36 35 37 48 44 48
++48 50 48 37 35 43 42 41 42 42 41 42 33 30 32 23 18 22 7 12 13 13 4 7
++3 4 9 7 12 13 17 12 17 14 16 17 17 12 17 23 18 22 22 25 24 23 20 24
++23 18 22 14 16 17 17 12 17 14 16 17 17 12 17 15 17 7 22 25 24 36 35 37
++65 63 61 75 81 76 75 81 69 65 63 61 55 55 48 53 46 48 51 49 42 55 55 48
++60 49 42 60 49 42 51 49 42 55 39 37 51 49 42 51 49 42 55 39 37 47 44 42
++53 35 37 36 35 37 55 39 37 36 35 37 47 47 21 36 35 37 36 35 37 32 39 24
++36 35 37 32 39 24 52 30 35 33 30 30 33 30 30 33 30 30 53 35 17 33 30 30
++33 30 30 53 35 17 36 35 37 36 35 37 47 39 42 47 39 42 53 46 48 53 46 48
++59 55 55 59 55 55 59 57 61 65 57 61 59 69 70 75 72 67 75 64 82 75 81 90
++88 83 88 77 90 100 95 91 100 77 90 100 94 105 108 95 108 128 95 108 128 111 119 127
++95 108 128 111 119 127 111 122 142 111 122 142 122 134 144 119 117 138 122 134 144 122 134 144
++122 134 144 131 144 168 119 117 138 122 134 144 122 134 144 131 144 168 119 117 138 129 144 153
++122 134 144 122 134 144 122 134 144 122 134 144 119 117 138 122 134 144 111 122 142 119 117 138
++98 121 131 95 108 128 95 108 128 95 108 128 95 95 116 95 95 116 95 95 116 77 90 100
++88 83 88 75 81 90 88 69 84 75 81 90 75 64 82 60 63 87 63 59 71 59 57 61
++54 57 61 54 57 61 54 57 61 57 43 64 48 50 48 48 50 48 48 50 48 54 57 61
++59 55 55 54 57 61 59 57 61 59 57 61 59 57 61 59 57 61 63 59 71 65 57 61
++63 59 71 75 72 67 63 59 71 75 72 67 63 59 71 75 72 67 75 64 82 75 72 67
++75 64 82 75 81 76 75 64 82 75 72 67 75 64 82 75 81 76 75 64 82 75 72 67
++75 64 82 59 69 70 63 59 71 75 72 67 63 59 71 63 59 71 75 72 67 63 59 71
++63 59 71 65 63 61 54 57 61 54 57 61 54 57 61 59 55 55 48 44 48 48 50 48
++43 42 50 43 42 50 43 42 50 42 41 42 37 35 43 36 35 37 28 35 38 30 30 34
++28 30 35 25 30 29 22 25 24 22 23 31 23 20 24 22 25 24 15 22 17 23 20 24
++12 18 20 22 25 24 12 18 20 23 20 24 15 22 17 23 20 24 23 20 24 23 20 24
++15 22 17 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 26 24 32
++33 30 30 26 24 32 33 30 30 33 30 30 30 30 34 36 35 37 37 35 43 42 41 42
++48 44 48 48 44 48 48 44 48 59 55 55 54 57 61 59 57 61 65 63 61 63 59 71
++75 72 67 59 69 70 75 72 67 75 72 67 75 81 76 75 64 82 75 81 76 75 64 82
++75 64 82 60 81 83 75 64 82 60 81 83 75 64 82 60 81 83 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 63 59 71 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 75 64 82 59 69 70 59 69 70
++75 64 82 59 69 70 60 63 87 59 69 70 63 59 71 46 59 71 54 57 61 45 57 61
++43 42 50 43 42 50 34 40 43 37 35 43 28 35 38 28 30 35 28 30 35 25 30 29
++22 25 24 22 25 24 12 18 20 23 18 22 14 16 17 17 12 17 23 18 22 14 16 17
++23 18 22 12 18 20 23 18 22 14 16 17 23 18 22 12 18 20 23 18 22 23 20 24
++23 20 24 15 22 17 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24
++23 20 24 22 25 24 22 25 24 26 24 32 23 20 24 26 30 28 23 20 24 26 30 28
++23 20 24 26 30 28 23 20 24 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 15 22 17 23 20 24 23 18 22 23 20 24 15 22 17
++23 20 24 12 18 20 23 20 24 23 18 22 12 18 20 23 18 22 12 18 20 23 20 24
++23 20 24 12 18 20 14 16 17 23 18 22 14 16 17 14 16 17 23 18 22 14 16 17
++14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++14 16 17 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17
++14 16 17 23 18 22 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++14 16 17 14 16 17 17 12 17 14 16 17 23 18 22 14 16 17 23 18 22 15 22 17
++23 18 22 23 20 24 15 22 17 23 20 24 15 22 17 23 20 24 23 20 24 22 25 24
++
++3 3 1 3 4 9 3 4 9 3 4 9 3 4 9 3 4 9 7 12 13 13 4 7
++7 12 13 3 4 9 7 12 13 3 4 9 7 12 13 7 12 13 13 4 7 7 12 13
++7 10 17 7 12 13 7 10 17 7 12 13 7 10 17 13 4 7 7 10 17 7 12 13
++7 10 17 3 4 9 13 4 7 7 12 13 3 4 9 7 10 17 3 4 9 7 12 13
++13 4 7 3 4 9 7 12 13 3 4 9 13 4 7 7 12 13 13 4 7 15 17 7
++7 12 13 14 16 17 15 22 17 22 25 24 26 30 28 29 35 19 32 39 24 32 39 24
++32 39 24 32 39 24 32 39 24 32 39 24 49 74 23 42 47 42 49 74 23 42 47 42
++49 74 23 51 73 47 51 73 47 64 70 48 64 70 48 51 73 47 64 70 48 51 73 47
++51 73 47 50 61 48 50 61 48 49 74 23 43 55 48 43 55 48 35 46 43 49 74 23
++35 46 43 49 74 23 32 39 24 49 74 23 32 39 24 23 30 35 32 39 24 15 22 17
++15 22 17 15 22 17 14 16 17 7 12 13 17 12 17 7 10 17 17 12 17 7 12 13
++7 10 17 7 12 13 7 12 13 13 4 7 7 12 13 13 4 7 7 10 17 3 4 9
++13 4 7 3 4 9 13 4 7 7 10 17 3 4 9 7 12 13 3 4 9 3 4 9
++13 4 7 3 4 9 3 4 9 3 4 9 3 4 9 13 4 7 3 4 9 13 4 7
++7 10 17 3 4 9 7 10 17 7 10 17 13 4 7 7 12 13 17 12 17 17 12 17
++7 12 13 17 12 17 23 18 22 17 12 17 28 13 18 26 25 15 28 13 18 34 30 15
++28 13 18 33 30 30 28 13 18 33 30 30 49 13 16 33 30 30 52 30 15 33 30 30
++49 13 16 33 30 30 52 30 15 33 30 30 52 30 15 33 30 30 52 30 15 33 30 30
++49 13 16 33 30 30 52 30 15 33 30 30 49 13 16 34 30 15 49 13 16 33 30 30
++49 13 16 33 30 30 28 13 18 34 30 15 28 13 18 26 25 15 28 13 18 26 25 15
++23 18 22 26 12 13 14 16 17 17 12 17 15 17 7 14 16 17 17 12 17 7 12 13
++14 16 17 14 16 17 14 16 17 14 16 17 15 22 17 15 22 17 23 20 24 22 25 24
++26 25 15 33 30 30 33 30 30 33 30 30 32 39 24 33 30 30 32 39 24 36 35 37
++32 39 24 53 35 37 36 35 37 42 41 42 47 44 42 47 47 21 51 49 42 47 47 21
++51 49 42 51 49 42 51 49 42 51 49 42 51 49 42 60 49 42 63 55 45 51 49 42
++51 49 42 51 49 42 51 49 42 51 49 42 51 49 42 55 55 48 55 55 48 64 70 48
++65 63 61 65 63 61 75 72 67 63 59 71 75 72 67 59 69 70 75 72 67 59 69 70
++75 64 82 59 69 70 75 64 82 59 69 70 75 72 67 75 72 67 63 59 71 75 72 67
++63 59 71 75 72 67 63 59 71 75 72 67 63 59 71 75 72 67 63 59 71 65 63 61
++75 72 67 63 59 71 75 72 67 75 72 67 75 64 82 75 81 76 75 81 76 75 81 82
++88 69 84 75 81 90 88 83 88 77 90 100 88 69 84 95 91 100 88 69 84 77 90 100
++88 69 84 77 91 115 88 69 84 77 91 115 88 69 84 77 91 115 88 69 84 77 91 115
++88 69 84 95 91 100 88 69 84 88 83 88 88 69 84 75 64 82 75 59 67 75 59 67
++65 57 61 65 55 54 65 57 61 76 44 53 65 55 54 57 43 64 76 44 53 65 57 61
++76 44 53 57 43 64 75 59 67 65 57 61 65 57 61 65 55 54 57 43 64 65 55 54
++65 55 54 57 43 51 59 55 55 57 43 51 59 55 55 54 57 61 48 50 48 57 43 64
++48 44 48 45 57 61 48 44 48 45 57 61 48 50 48 43 42 50 43 42 50 43 42 50
++34 40 43 37 35 43 28 35 38 28 35 38 33 39 38 42 41 42 42 47 42 36 35 37
++33 30 32 33 30 30 32 39 24 36 35 37 32 39 24 47 49 42 51 49 42 51 49 42
++51 49 42 51 49 42 51 49 42 51 49 42 47 47 21 47 44 42 51 49 42 63 55 51
++65 55 54 64 70 48 65 55 54 75 73 58 88 73 62 88 73 62 88 73 62 88 73 62
++88 73 62 75 73 58 88 73 62 88 73 62 88 83 74 88 83 74 101 83 74 99 93 84
++138 102 108 112 123 108 138 126 108 117 99 86 117 99 86 99 93 84 101 83 74 75 63 62
++55 55 48 47 47 21 36 35 37 42 41 42 42 41 42 37 35 43 43 42 50 43 42 50
++48 50 48 48 44 48 45 57 61 48 50 48 57 43 51 54 57 61 54 57 61 65 63 61
++63 59 71 63 59 71 75 72 67 60 63 87 75 64 82 75 64 82 75 81 90 88 69 84
++75 81 90 88 69 84 75 81 82 75 64 82 75 72 67 59 57 61 59 55 55 52 55 48
++51 49 42 47 44 42 36 35 37 33 30 30 26 30 28 22 25 24 22 25 24 23 18 22
++22 25 24 22 25 24 23 18 22 14 16 17 17 12 17 17 12 17 17 12 17 14 16 17
++23 18 22 23 18 22 23 18 22 23 18 22 14 16 17 17 12 17 17 12 17 17 12 17
++14 16 17 23 18 22 23 18 22 23 20 24 23 20 24 22 25 24 23 18 22 15 22 17
++23 18 22 14 16 17 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17 23 18 22
++22 25 24 26 30 28 26 30 28 23 20 24 15 22 17 17 12 17 14 16 17 7 12 13
++15 17 7 14 16 17 23 20 24 26 30 28 22 25 24 22 25 24 26 30 28 36 35 37
++42 41 42 36 35 37 36 35 37 36 35 37 26 30 28 23 18 22 15 17 7 7 12 13
++13 4 7 15 17 7 17 12 17 17 12 17 14 16 17 23 20 24 23 20 24 26 30 28
++22 25 24 14 16 17 17 12 17 15 17 7 17 12 17 14 16 17 23 18 22 26 30 28
++47 49 42 75 72 67 88 83 74 75 81 69 59 55 55 55 55 48 53 46 48 60 49 42
++55 55 48 55 39 37 51 49 42 55 39 37 51 49 42 47 47 21 47 44 42 47 47 21
++55 39 37 47 39 42 47 47 21 42 38 42 42 38 42 47 47 21 53 35 37 36 35 37
++52 30 35 36 35 37 32 39 24 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 36 35 37 42 38 42 47 44 42 48 44 48 53 46 48
++59 55 55 57 43 51 59 55 55 75 63 62 63 59 71 59 69 70 75 64 82 75 64 82
++75 81 90 95 91 100 77 90 100 94 105 108 77 91 115 94 105 108 95 95 116 95 108 128
++95 108 128 111 119 127 111 119 127 111 119 127 111 122 142 122 134 144 122 134 144 122 134 144
++122 134 144 122 134 144 122 134 144 131 144 168 122 134 144 119 117 138 129 144 153 122 134 144
++122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 119 117 138 111 122 142
++119 117 138 119 117 138 111 119 127 95 108 128 95 95 116 95 95 116 95 95 116 95 91 100
++77 91 115 75 81 90 75 81 90 75 64 82 63 59 71 63 59 71 59 69 70 59 57 61
++54 57 61 54 57 61 53 46 48 53 46 48 54 57 61 48 50 48 48 50 48 48 50 48
++57 43 64 59 55 55 54 57 61 59 55 55 59 57 61 59 57 61 59 57 61 65 57 61
++65 63 61 63 59 71 75 59 67 63 59 71 75 59 67 63 59 71 75 72 67 75 64 82
++75 81 76 75 64 82 75 81 76 75 64 82 75 81 76 75 64 82 75 72 67 75 64 82
++75 72 67 75 59 67 75 72 67 63 59 71 63 59 71 75 72 67 63 59 71 65 63 61
++63 59 71 59 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61
++48 50 48 43 42 50 43 42 50 42 41 42 34 40 43 37 35 43 31 35 35 30 30 34
++30 30 34 25 30 29 26 24 32 22 25 24 22 25 24 15 22 17 23 20 24 15 22 17
++22 25 24 12 18 30 22 25 24 23 20 24 23 20 24 23 20 24 23 18 22 12 18 20
++23 18 22 23 20 24 22 24 13 23 20 24 23 18 22 23 20 24 23 20 24 23 20 24
++22 25 24 26 24 32 26 30 28 26 24 32 33 30 32 33 30 36 36 35 37 42 38 42
++42 41 42 43 42 50 48 44 48 48 50 48 53 46 48 59 55 55 59 57 61 65 63 61
++63 59 71 63 59 71 63 59 71 59 69 70 75 72 67 59 69 70 59 69 70 60 81 83
++59 69 70 75 64 82 59 69 70 75 64 82 59 69 70 75 64 82 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 65 63 61 59 69 70 59 69 70 63 59 71 63 59 71
++59 69 70 63 59 71 59 69 70 75 64 82 59 69 70 59 69 70 60 63 87 59 69 70
++60 63 87 59 69 70 59 69 70 59 69 70 63 59 71 54 57 61 45 57 61 43 42 50
++43 55 48 43 42 50 34 40 43 33 39 38 28 35 38 28 30 35 23 30 35 22 23 31
++22 25 24 23 20 24 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++14 16 17 14 16 17 14 16 17 23 18 22 15 22 17 23 18 22 12 18 20 23 18 22
++12 18 20 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 22 25 24
++23 20 24 22 25 24 23 20 24 26 24 32 22 25 24 22 25 24 26 24 32 22 25 24
++26 24 32 23 20 24 22 25 24 22 25 24 23 20 24 23 20 24 22 25 24 22 25 24
++23 20 24 22 25 24 23 20 24 23 20 24 23 18 22 12 18 20 23 20 24 15 22 17
++23 20 24 23 20 24 23 20 24 12 18 20 23 18 22 15 22 17 23 18 22 15 22 17
++23 18 22 14 16 17 23 18 22 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++23 18 22 14 16 17 14 16 17 23 18 22 17 12 17 14 16 17 17 12 17 14 16 17
++17 12 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 17 12 17
++14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 23 18 22 17 12 17 14 16 17
++23 18 22 14 16 17 23 18 22 14 16 17 14 16 17 14 16 17 14 16 17 23 18 22
++15 22 17 23 20 24 23 20 24 15 22 17 23 20 24 23 20 24 23 20 24 23 20 24
++
++3 4 9 3 4 9 13 4 7 6 15 6 3 4 9 13 4 7 7 12 13 3 4 9
++7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 3 4 9 7 12 13 13 4 7
++7 12 13 13 4 7 7 10 17 13 4 7 7 10 17 7 12 13 13 4 7 7 10 17
++13 4 7 7 10 17 3 4 9 13 4 7 7 10 17 13 4 7 3 4 9 13 4 7
++7 12 13 3 4 9 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13
++15 17 7 14 16 17 22 24 13 22 25 24 29 35 19 32 39 24 32 39 24 32 39 24
++32 39 24 47 47 21 35 46 43 49 74 23 35 46 43 49 74 23 42 47 42 49 74 23
++50 61 48 51 73 47 51 73 47 51 73 47 51 73 47 64 70 48 57 86 47 49 74 23
++64 70 48 51 73 47 51 73 47 50 61 48 50 61 48 49 74 23 43 55 48 49 74 23
++43 55 48 35 46 43 35 46 43 32 39 24 32 39 24 32 39 24 23 31 15 15 22 17
++15 22 17 6 15 6 7 12 13 7 12 13 17 12 17 7 12 13 13 4 7 7 10 17
++7 12 13 7 10 17 7 12 13 7 12 13 13 4 7 3 4 9 7 12 13 3 4 9
++7 12 13 3 4 9 7 12 13 13 4 7 3 4 9 13 4 7 3 4 9 3 4 9
++3 4 9 7 12 13 3 4 9 13 4 7 3 4 9 7 10 17 3 4 9 7 12 13
++3 4 9 13 4 7 7 12 13 13 4 7 7 10 17 17 12 17 7 12 13 15 17 7
++13 4 7 17 12 17 17 12 17 26 12 13 28 13 18 28 13 18 26 25 15 28 13 18
++34 30 15 28 13 18 34 30 15 33 30 30 34 30 15 49 13 16 33 30 30 52 30 15
++33 30 30 49 13 16 33 30 30 49 13 16 52 30 35 49 13 16 52 30 35 34 30 15
++52 30 35 52 30 15 49 13 16 33 30 30 52 30 15 28 13 18 34 30 15 34 30 15
++33 30 30 28 13 18 34 30 15 28 13 18 34 30 15 28 13 18 26 25 15 23 18 22
++26 12 13 17 12 17 15 17 7 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17
++14 16 17 14 16 17 14 16 17 14 16 17 23 18 22 23 18 22 22 24 13 23 20 24
++26 30 28 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 53 35 37
++36 35 37 47 47 21 42 41 42 47 47 21 47 39 42 47 44 42 47 44 42 51 49 42
++51 49 42 51 49 42 51 49 42 60 49 42 51 49 42 60 49 42 51 49 42 60 49 42
++47 47 21 51 49 42 51 49 42 51 49 42 51 49 42 55 55 48 55 55 48 63 55 51
++65 63 61 65 63 61 65 63 61 59 69 70 75 72 67 63 59 71 75 72 67 59 69 70
++75 72 67 63 59 71 75 72 67 75 72 67 63 59 71 75 64 82 59 69 70 75 72 67
++63 59 71 75 72 67 65 63 61 65 63 61 63 59 71 65 63 61 63 59 71 75 63 62
++63 59 71 75 72 67 75 72 67 75 64 82 75 72 67 75 72 67 75 64 82 75 81 82
++75 81 82 75 81 90 88 69 84 77 90 100 88 83 88 77 91 115 88 83 88 77 91 115
++88 69 84 77 90 100 88 69 84 88 83 88 88 83 88 95 91 100 88 69 84 95 91 100
++88 69 84 88 69 84 75 81 90 88 69 84 88 69 84 75 64 82 75 72 67 65 57 61
++65 55 54 76 44 53 65 57 61 65 55 54 65 55 54 65 55 54 65 55 54 57 43 64
++75 56 53 65 57 61 76 44 53 65 57 61 57 43 64 65 55 54 65 55 54 65 55 54
++57 43 64 59 55 55 59 55 55 59 55 55 57 43 51 59 55 55 57 43 51 54 57 61
++48 50 48 57 43 51 43 42 50 53 46 48 43 42 50 45 57 61 43 42 50 43 42 50
++34 40 43 37 35 43 37 35 43 37 35 43 36 35 37 42 41 42 36 35 37 33 30 30
++26 30 28 33 30 30 33 30 30 32 39 24 36 35 37 47 44 42 47 49 42 47 44 42
++47 44 42 51 49 42 47 44 42 55 39 37 47 44 42 63 55 45 75 73 58 75 73 58
++88 73 62 88 73 62 88 73 62 101 83 74 117 99 86 117 114 76 117 99 86 117 114 76
++101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74
++117 99 86 138 102 108 117 114 76 117 99 86 117 99 86 99 93 84 99 93 84 99 93 84
++101 83 74 65 63 61 47 44 42 36 35 37 36 35 37 42 41 42 42 41 42 43 42 50
++43 42 50 45 57 61 53 46 48 45 57 61 54 57 61 54 57 61 59 55 55 59 57 61
++65 63 61 63 59 71 75 64 82 59 69 70 75 64 82 75 64 82 75 81 82 75 64 82
++75 81 90 75 81 82 88 69 84 75 81 76 75 72 67 63 59 71 65 63 61 65 63 61
++52 55 48 42 41 42 33 30 30 22 25 24 22 25 24 23 20 24 23 18 22 22 25 24
++22 25 24 23 18 22 15 22 17 17 12 17 15 17 7 17 12 17 14 16 17 23 18 22
++23 20 24 22 25 24 23 18 22 22 24 13 17 12 17 14 16 17 17 12 17 14 16 17
++23 18 22 23 18 22 22 24 13 23 20 24 23 20 24 23 20 24 23 18 22 23 18 22
++17 12 17 14 16 17 26 12 13 14 16 17 17 12 17 14 16 17 17 12 17 17 12 17
++14 16 17 23 18 22 22 25 24 22 25 24 22 25 24 23 18 22 14 16 17 17 12 17
++17 12 17 14 16 17 22 25 24 23 20 24 14 16 17 23 18 22 22 25 24 31 35 35
++31 35 35 33 30 30 36 35 37 42 38 42 36 35 37 26 30 28 23 18 22 23 20 24
++23 18 22 14 16 17 23 18 22 15 22 17 23 18 22 22 25 24 33 30 30 33 30 30
++23 20 24 23 18 22 17 12 17 15 17 7 17 12 17 15 17 7 23 18 22 26 25 15
++31 35 35 55 55 48 75 81 76 75 81 76 75 63 62 65 55 54 55 55 48 51 49 42
++51 49 42 55 39 37 60 49 42 51 49 42 55 39 37 51 49 42 47 44 42 47 44 42
++42 41 42 53 35 37 36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 32 39 24
++36 35 37 33 30 30 52 30 35 32 39 24 52 30 35 33 30 30 33 30 30 33 30 30
++52 30 35 32 39 24 36 35 37 52 30 35 42 38 42 47 44 42 48 44 48 53 46 48
++53 46 48 59 55 55 59 55 55 65 57 61 63 59 71 75 72 67 75 64 82 75 81 82
++75 81 90 88 83 88 77 90 100 77 90 100 95 91 100 95 95 116 95 108 128 95 108 128
++111 119 127 111 119 127 111 122 142 111 122 142 119 117 138 111 122 142 111 122 142 122 134 144
++119 117 138 122 134 144 122 134 144 122 134 144 122 134 144 129 144 153 122 134 144 122 134 144
++122 134 144 131 144 168 119 117 138 122 134 144 111 122 142 119 117 138 111 122 142 111 119 127
++95 108 128 95 108 128 95 108 128 95 95 116 95 95 116 95 95 116 77 91 115 95 91 100
++75 81 90 75 81 90 75 64 82 75 81 90 60 63 87 63 59 71 63 59 71 54 57 61
++54 57 61 43 42 50 57 43 64 48 50 48 43 42 50 48 50 48 48 50 48 45 57 61
++53 46 48 54 57 61 53 46 48 54 57 61 59 55 55 59 57 61 59 57 61 63 59 71
++63 59 71 65 63 61 63 59 71 65 63 61 63 59 71 65 63 61 75 64 82 75 72 67
++75 64 82 75 72 67 75 64 82 75 72 67 75 64 82 75 72 67 75 64 82 59 69 70
++75 64 82 59 69 70 75 59 67 63 59 71 59 69 70 63 59 71 59 69 70 75 72 67
++63 59 71 59 57 61 59 57 61 54 57 61 54 57 61 59 55 55 57 43 64 48 50 48
++43 42 50 43 42 50 43 42 50 42 41 42 34 40 43 36 35 37 36 35 37 28 30 35
++30 30 34 30 30 34 26 24 32 22 25 24 23 20 24 22 25 24 15 22 17 23 20 24
++12 18 20 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24 12 18 20 23 18 22
++23 20 24 22 25 24 22 25 24 23 20 24 23 20 24 23 18 22 23 20 24 22 25 24
++33 30 30 26 24 32 26 30 28 33 30 30 30 30 34 33 30 32 36 35 37 36 35 37
++42 41 42 42 41 42 48 44 48 48 44 48 48 50 48 54 57 61 59 57 61 59 57 61
++59 57 61 65 63 61 59 69 70 63 59 71 59 69 70 75 72 67 75 64 82 59 69 70
++75 64 82 59 69 70 59 69 70 59 69 70 63 59 71 59 69 70 63 59 71 59 69 70
++63 59 71 53 63 61 59 69 70 53 63 61 53 63 61 63 59 71 59 69 70 63 59 71
++59 69 70 63 59 71 53 63 61 59 69 70 59 69 70 59 69 70 63 59 71 59 69 70
++63 59 71 59 69 70 63 59 71 63 59 71 46 59 71 54 57 61 45 57 61 43 42 50
++43 42 50 35 47 50 34 40 43 37 35 43 28 35 38 28 30 35 25 30 29 22 23 31
++22 25 24 12 18 20 23 20 24 14 16 17 14 16 17 14 16 17 17 12 17 23 18 22
++14 16 17 23 18 22 14 16 17 23 18 22 12 18 20 23 18 22 15 22 17 23 18 22
++23 18 22 15 22 17 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24
++22 25 24 23 20 24 22 25 24 22 25 24 26 24 32 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 23 20 24 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 15 22 17 23 18 22 23 18 22 23 20 24 23 20 24
++15 22 17 23 20 24 15 22 17 23 18 22 23 18 22 23 18 22 12 18 20 23 18 22
++23 18 22 15 22 17 23 18 22 14 16 17 14 16 17 23 18 22 14 16 17 23 18 22
++14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++14 16 17 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17
++23 18 22 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 14 16 17
++14 16 17 14 16 17 14 16 17 23 18 22 14 16 17 23 18 22 14 16 17 23 18 22
++12 18 20 23 20 24 23 20 24 23 20 24 15 22 17 23 20 24 15 22 17 23 20 24
++
++3 3 1 3 4 9 3 4 9 13 4 7 3 4 9 3 4 9 13 4 7 7 12 13
++13 4 7 13 4 7 3 4 9 13 4 7 7 12 13 13 4 7 7 12 13 3 4 9
++7 10 17 7 10 17 13 4 7 7 12 13 3 4 9 7 10 17 13 4 7 7 10 17
++3 4 9 7 10 17 3 4 9 7 10 17 3 4 9 3 4 9 7 12 13 3 4 9
++3 4 9 3 4 9 7 12 13 13 4 7 3 4 9 13 4 7 6 15 6 15 17 7
++14 16 17 15 17 7 15 22 17 22 25 24 29 35 19 25 30 29 32 39 24 32 39 24
++32 39 24 35 46 43 32 39 24 35 46 43 47 47 21 42 47 42 49 74 23 50 61 48
++49 74 23 51 73 47 64 70 48 57 86 47 64 70 48 57 86 47 51 73 47 64 70 48
++51 73 47 51 73 47 50 61 48 49 74 23 43 55 48 43 55 48 49 74 23 43 55 48
++35 46 43 49 74 23 35 46 43 32 39 24 28 35 38 32 39 24 23 30 35 15 22 17
++15 22 17 15 22 17 7 12 13 17 12 17 7 10 17 7 12 13 7 10 17 7 12 13
++17 12 17 7 10 17 13 4 7 7 12 13 7 10 17 13 4 7 7 12 13 13 4 7
++3 4 9 13 4 7 3 4 9 13 4 7 3 4 9 3 4 9 3 4 9 7 10 17
++13 4 7 3 4 9 13 4 7 3 4 9 3 4 9 3 4 9 13 4 7 3 4 9
++13 4 7 7 12 13 7 12 13 13 4 7 7 12 13 7 12 13 17 12 17 7 12 13
++15 17 7 17 12 17 22 24 13 17 12 17 26 25 15 23 18 22 26 25 15 28 13 18
++28 13 18 49 13 16 33 30 30 49 13 16 34 30 15 33 30 30 49 13 16 34 30 15
++52 30 35 34 30 15 52 30 35 52 30 15 33 30 30 34 30 15 52 30 35 33 30 30
++52 30 15 34 30 15 33 30 30 34 30 15 49 13 16 34 30 15 28 13 18 34 30 15
++28 13 18 34 30 15 33 30 30 28 13 18 23 18 22 23 18 22 23 18 22 23 18 22
++28 13 18 23 10 10 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13
++7 12 13 17 12 17 14 16 17 14 16 17 15 22 17 15 22 17 23 18 22 23 20 24
++26 30 28 22 25 24 26 30 28 33 30 30 33 30 30 32 39 24 33 30 30 32 39 24
++36 35 37 36 35 37 36 35 37 42 38 42 47 44 42 47 47 21 47 44 42 51 49 42
++55 39 37 51 49 42 51 49 42 51 49 42 51 49 42 60 49 42 47 47 21 51 49 42
++60 49 42 51 49 42 47 47 21 51 49 42 51 49 42 55 55 48 55 55 48 64 70 48
++59 57 61 65 63 61 65 63 61 65 63 61 59 69 70 75 72 67 63 59 71 59 69 70
++63 59 71 75 72 67 59 69 70 75 64 82 59 69 70 75 72 67 63 59 71 75 72 67
++63 59 71 59 69 70 63 59 71 59 69 70 65 63 61 65 63 61 65 63 61 63 59 71
++75 72 67 63 59 71 63 59 71 75 72 67 59 69 70 75 72 67 75 64 82 75 81 82
++88 69 84 75 81 90 77 90 100 88 69 84 77 90 100 88 69 84 77 90 100 88 69 84
++95 91 100 77 90 100 88 83 88 75 81 90 77 90 100 88 69 84 95 91 100 75 81 90
++88 83 88 75 81 90 88 83 88 88 69 84 75 81 76 75 64 82 75 59 67 65 57 61
++65 57 61 65 55 54 57 43 64 76 44 53 57 43 64 65 55 54 76 44 53 65 55 54
++65 55 54 65 55 54 65 57 61 75 56 53 65 57 61 65 57 61 65 55 54 59 55 55
++63 55 51 57 43 51 53 46 48 59 55 55 53 46 48 54 57 61 53 46 48 54 57 61
++53 46 48 45 57 61 48 44 48 45 57 61 48 44 48 48 44 48 43 42 50 43 42 50
++42 41 42 37 35 43 34 40 43 42 41 42 42 41 42 33 30 30 26 25 15 29 35 19
++33 30 30 32 39 24 33 30 30 33 30 30 29 35 19 36 35 37 51 49 42 51 49 42
++47 44 42 55 39 37 32 39 24 47 47 21 63 55 45 75 73 58 88 83 74 88 73 62
++101 83 74 101 83 74 117 99 86 117 114 76 117 114 76 168 102 88 117 114 76 168 102 88
++168 102 88 138 126 108 168 102 88 168 102 88 168 102 88 117 114 76 101 83 74 117 112 45
++117 99 86 117 114 76 138 126 108 138 126 108 117 99 86 117 99 86 117 99 86 117 99 86
++117 99 86 99 93 84 75 63 62 55 39 37 36 35 37 42 41 42 36 35 37 42 47 42
++43 42 50 48 44 48 48 44 48 48 50 48 53 46 48 48 50 48 54 57 61 59 57 61
++59 57 61 63 59 71 59 69 70 75 64 82 59 69 70 75 72 67 75 64 82 75 81 76
++75 64 82 75 81 76 75 64 82 75 81 76 75 64 82 75 81 82 75 64 82 65 63 61
++52 55 48 36 35 37 33 30 30 22 25 24 23 18 22 22 24 13 23 18 22 22 25 24
++23 20 24 17 12 17 15 17 7 17 12 17 17 12 17 17 12 17 14 16 17 23 18 22
++26 25 15 23 18 22 23 18 22 23 18 22 17 12 17 22 24 13 17 12 17 14 16 17
++17 12 17 15 22 17 23 18 22 23 18 22 23 18 22 22 24 13 17 12 17 14 16 17
++17 12 17 14 16 17 14 16 17 17 12 17 22 24 13 14 16 17 17 12 17 15 17 7
++14 16 17 14 16 17 26 30 28 33 30 32 33 30 30 22 25 24 15 17 7 7 12 13
++23 18 22 22 25 24 26 30 28 22 25 24 23 18 22 15 22 17 26 30 28 33 30 32
++26 30 28 22 25 24 33 30 30 42 41 42 47 44 42 33 30 30 26 30 28 36 35 37
++33 30 30 23 18 22 14 16 17 23 18 22 23 20 24 23 20 24 33 30 30 36 35 37
++36 35 37 33 30 30 26 25 15 23 18 22 15 17 7 14 16 17 15 22 17 22 25 24
++33 30 32 48 50 48 65 63 61 75 81 69 75 72 67 65 63 61 55 55 48 60 49 42
++51 49 42 51 49 42 51 49 42 60 49 42 55 39 37 47 44 42 47 47 21 47 47 21
++42 41 42 47 47 21 47 39 42 32 39 24 47 39 42 47 47 21 36 35 37 53 35 37
++36 35 37 47 47 21 33 30 30 33 30 32 32 39 24 52 30 35 33 30 30 33 30 30
++33 30 30 36 35 37 33 30 30 36 35 37 42 38 42 47 44 42 48 44 48 53 46 48
++52 55 48 57 43 51 59 57 61 65 63 61 65 63 61 63 59 71 59 69 70 75 81 82
++88 69 84 75 81 90 77 90 100 77 90 100 77 91 115 94 105 108 95 95 116 95 108 128
++95 108 128 95 108 128 98 121 131 111 119 127 111 122 142 111 122 142 122 134 144 111 122 142
++122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 119 117 138 122 134 144 122 134 144
++119 117 138 122 134 144 111 122 142 122 134 144 119 117 138 111 122 142 111 122 142 111 122 142
++111 119 127 111 119 127 95 108 128 95 108 128 95 95 116 77 91 115 95 91 100 77 91 115
++77 90 100 75 81 90 75 81 90 60 63 87 75 64 82 63 59 71 59 57 61 54 57 61
++57 43 51 45 57 61 48 50 48 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50
++48 50 48 48 50 48 53 46 48 54 57 61 57 43 64 59 57 61 59 57 61 65 57 61
++65 63 61 63 59 71 59 69 70 63 59 71 65 63 61 63 59 71 59 69 70 75 72 67
++75 64 82 75 72 67 75 64 82 75 72 67 75 64 82 75 72 67 75 72 67 75 72 67
++75 59 67 75 72 67 63 59 71 75 63 62 63 59 71 65 63 61 63 59 71 63 59 71
++63 59 71 59 57 61 54 57 61 59 55 55 54 57 61 57 43 64 54 57 61 48 50 48
++43 42 50 48 50 48 43 42 50 43 42 50 37 35 43 36 35 37 37 35 43 31 35 35
++30 30 34 26 30 28 26 24 32 26 24 32 23 20 24 22 25 24 23 20 24 23 20 24
++23 20 24 23 20 24 22 25 24 23 20 24 12 18 20 22 25 24 23 20 24 15 22 17
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 22 25 24 26 24 32 26 24 32 26 24 32 33 30 32 36 35 37 36 35 37
++42 38 42 42 41 42 43 42 50 48 44 48 48 50 48 53 46 48 59 55 55 59 57 61
++59 57 61 63 59 71 65 63 61 65 63 61 63 59 71 59 69 70 59 69 70 63 59 71
++59 69 70 59 69 70 63 59 71 63 59 71 63 59 71 59 69 70 63 59 71 53 63 61
++53 63 61 54 57 61 54 57 61 63 59 71 53 63 61 54 57 61 54 57 61 53 63 61
++54 57 61 53 63 61 54 57 61 53 63 61 63 59 71 59 57 61 59 69 70 63 59 71
++53 63 61 63 59 71 59 69 70 46 59 71 54 57 61 45 57 61 57 43 64 45 57 61
++43 55 48 43 42 50 34 40 43 28 35 38 28 30 35 28 30 35 25 30 29 22 23 31
++22 25 24 23 20 24 12 18 20 23 18 22 14 16 17 17 12 17 14 16 17 14 16 17
++14 16 17 14 16 17 14 16 17 14 16 17 23 18 22 12 18 20 23 18 22 23 18 22
++12 18 20 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24
++26 24 32 22 25 24 23 20 24 23 20 24 22 25 24 26 24 32 23 20 24 26 24 32
++22 25 24 26 24 32 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24
++22 25 24 23 20 24 23 20 24 23 20 24 12 18 20 23 20 24 15 22 17 23 20 24
++23 20 24 23 18 22 23 18 22 12 18 20 23 18 22 15 22 17 23 18 22 14 16 17
++12 18 20 23 18 22 12 18 20 23 18 22 14 16 17 14 16 17 14 16 17 14 16 17
++23 18 22 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17
++17 12 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++14 16 17 14 16 17 23 18 22 15 22 17 17 12 17 14 16 17 14 16 17 23 18 22
++14 16 17 23 18 22 14 16 17 14 16 17 23 18 22 14 16 17 14 16 17 14 16 17
++23 18 22 12 18 20 23 18 22 15 22 17 23 20 24 23 20 24 23 20 24 23 20 24
++
++3 4 9 3 3 1 3 4 9 3 4 9 13 4 7 3 4 9 13 4 7 3 4 9
++3 4 9 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 3 4 9 13 4 7
++7 12 13 13 4 7 7 10 17 3 4 9 13 4 7 7 10 17 3 4 9 7 12 13
++13 4 7 3 4 9 3 4 9 13 4 7 3 4 9 13 4 7 3 4 9 13 4 7
++3 4 9 7 12 13 13 4 7 3 4 9 6 15 6 13 4 7 15 17 7 7 12 13
++15 17 7 14 16 17 15 22 17 23 31 15 26 30 28 32 39 24 32 39 24 35 46 43
++32 39 24 49 74 23 32 39 24 49 74 23 35 46 43 49 74 23 50 61 48 51 73 47
++51 73 47 64 70 48 57 86 47 51 73 47 57 86 47 64 70 48 57 86 47 64 70 48
++51 73 47 49 74 23 63 55 45 50 61 48 50 61 48 50 61 48 43 55 48 49 74 23
++35 46 43 32 39 24 32 39 24 35 46 43 23 31 15 23 31 15 23 31 15 15 22 17
++15 22 17 6 15 6 14 16 17 7 12 13 7 12 13 7 12 13 17 12 17 7 12 13
++7 10 17 3 4 9 7 10 17 7 10 17 3 4 9 3 4 9 3 4 9 3 4 9
++7 12 13 3 4 9 3 4 9 3 4 9 3 4 9 13 4 7 3 4 9 13 4 7
++3 4 9 3 4 9 7 12 13 3 4 9 13 4 7 7 12 13 3 4 9 7 12 13
++3 4 9 13 4 7 7 12 13 7 12 13 7 12 13 13 4 7 7 12 13 13 4 7
++15 17 7 17 12 17 17 12 17 26 12 13 26 12 13 28 13 18 28 13 18 26 25 15
++28 13 18 28 13 18 49 13 16 33 30 30 49 13 16 33 30 30 34 30 15 33 30 30
++49 13 16 34 30 15 49 13 16 33 30 30 52 30 35 49 13 16 33 30 30 49 13 16
++33 30 30 52 30 15 49 13 16 34 30 15 33 30 30 49 13 16 34 30 15 28 13 18
++34 30 15 28 13 18 28 13 18 34 30 15 23 20 24 28 13 18 26 25 15 26 12 13
++17 12 17 23 10 10 17 12 17 7 12 13 7 12 13 15 17 7 7 12 13 17 12 17
++14 16 17 14 16 17 14 16 17 14 16 17 23 18 22 22 24 13 23 18 22 26 25 15
++22 25 24 22 25 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37
++36 35 37 47 47 21 47 39 42 47 47 21 42 41 42 47 44 42 47 44 42 55 39 37
++47 49 42 55 39 37 51 49 42 51 49 42 51 49 42 60 49 42 60 49 42 51 49 42
++47 47 21 51 49 42 51 49 42 51 49 42 51 49 42 51 49 42 55 55 48 63 55 51
++59 55 55 65 63 61 65 63 61 59 69 70 63 59 71 59 69 70 63 59 71 75 72 67
++59 69 70 59 69 70 63 59 71 59 69 70 75 72 67 63 59 71 59 69 70 63 59 71
++75 72 67 59 69 70 65 63 61 65 63 61 63 59 71 65 63 61 63 59 71 65 63 61
++63 59 71 75 59 67 59 69 70 65 63 61 75 72 67 63 59 71 75 81 76 75 64 82
++75 81 90 75 64 82 75 81 90 75 81 90 88 83 88 75 81 90 77 90 100 88 69 84
++77 91 115 88 69 84 77 90 100 88 69 84 88 83 88 75 81 90 88 69 84 75 81 90
++88 69 84 88 69 84 88 69 84 75 64 82 75 64 82 75 59 67 75 59 67 65 57 61
++65 57 61 57 43 64 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54
++65 55 54 65 55 54 65 55 54 65 57 61 65 55 54 65 55 54 57 43 64 62 47 47
++59 55 55 57 43 51 55 55 48 53 46 48 59 55 55 57 43 51 53 46 48 53 46 48
++43 42 50 48 44 48 48 50 48 48 44 48 43 42 50 43 42 50 34 40 43 42 41 42
++34 40 43 34 40 43 43 42 50 48 50 48 42 41 42 33 30 30 22 25 24 33 30 30
++33 30 30 33 30 30 33 30 30 32 39 24 47 39 42 47 44 42 51 49 42 51 49 42
++51 49 42 47 47 21 47 44 42 60 49 42 64 70 48 88 73 62 88 83 74 98 106 55
++117 99 86 117 114 76 168 102 88 168 102 88 168 102 88 138 126 108 168 102 88 146 150 115
++177 171 115 168 102 88 177 171 115 138 126 108 146 150 115 168 102 88 168 146 127 168 102 88
++138 126 108 168 146 127 163 117 123 138 126 108 163 117 123 138 126 108 117 114 76 138 126 108
++138 126 108 138 126 108 99 93 84 75 72 67 51 49 42 33 30 30 33 30 32 36 35 37
++37 35 43 42 47 42 45 57 61 57 43 64 48 50 48 54 57 61 59 55 55 54 57 61
++59 57 61 59 57 61 63 59 71 63 59 71 59 69 70 75 64 82 59 69 70 75 64 82
++75 72 67 75 64 82 75 81 76 75 64 82 75 72 67 75 64 82 75 81 76 65 63 61
++48 50 48 36 35 37 33 30 30 26 25 15 23 20 24 23 20 24 22 25 24 22 25 24
++23 18 22 17 12 17 7 12 13 17 12 17 14 16 17 23 18 22 23 18 22 23 18 22
++23 18 22 15 22 17 17 12 17 14 16 17 14 16 17 17 12 17 23 18 22 14 16 17
++17 12 17 23 18 22 23 18 22 23 18 22 14 16 17 17 12 17 23 18 22 22 24 13
++17 12 17 17 12 17 17 12 17 14 16 17 17 12 17 17 12 17 14 16 17 17 12 17
++14 16 17 23 18 22 22 25 24 33 30 32 26 30 28 22 25 24 23 18 22 22 25 24
++33 30 30 36 35 37 31 35 35 23 20 24 14 16 17 14 16 17 22 25 24 22 25 24
++22 25 24 15 22 17 22 25 24 33 30 30 26 30 28 33 30 30 33 30 30 33 30 30
++26 25 15 17 12 17 17 12 17 23 20 24 22 25 24 23 20 24 33 30 32 48 50 48
++53 46 48 48 50 48 42 38 42 26 30 28 22 24 13 17 12 17 15 17 7 23 20 24
++36 35 37 52 55 48 65 63 61 75 72 67 75 72 67 55 55 48 55 55 48 51 49 42
++60 49 42 60 49 42 55 39 37 55 39 37 51 49 42 47 47 21 47 44 42 55 39 37
++47 47 21 47 39 42 47 39 42 47 39 42 36 35 37 53 35 37 36 35 37 55 39 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 30 30 33 30 30 52 30 35
++32 39 24 36 35 37 36 35 37 36 35 37 47 39 42 47 39 42 48 44 48 53 46 48
++53 46 48 59 55 55 59 57 61 59 57 61 59 57 61 59 69 70 75 64 82 75 64 82
++75 81 90 75 81 90 88 83 88 77 90 100 95 91 100 95 95 116 95 95 116 95 108 128
++111 119 127 95 108 128 111 119 127 111 122 142 111 119 127 111 122 142 111 122 142 119 117 138
++111 122 142 111 122 142 122 134 144 119 117 138 122 134 144 122 134 144 111 122 142 122 134 144
++122 134 144 122 134 144 119 117 138 122 134 144 111 122 142 111 122 142 111 119 127 111 119 127
++95 108 128 95 108 128 95 108 128 95 95 116 95 95 116 77 90 100 77 91 115 88 83 88
++75 81 90 88 69 84 75 64 82 75 64 82 59 69 70 60 63 87 54 57 61 57 43 64
++43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 48 44 48 43 42 50
++43 42 50 43 42 50 54 57 61 57 43 64 59 55 55 54 57 61 59 57 61 59 57 61
++59 57 61 65 63 61 63 59 71 65 63 61 63 59 71 65 63 61 63 59 71 63 59 71
++75 72 67 63 59 71 75 72 67 75 64 82 75 72 67 63 59 71 63 59 71 63 59 71
++63 59 71 63 59 71 75 72 67 63 59 71 65 63 61 63 59 71 65 63 61 65 63 61
++59 57 61 59 57 61 59 57 61 54 57 61 53 46 48 48 50 48 48 44 48 57 43 64
++48 50 48 43 42 50 43 42 50 43 42 50 42 38 42 37 35 43 36 35 37 31 35 35
++28 30 35 28 30 35 26 24 32 26 24 32 22 25 24 22 25 24 22 25 24 22 25 24
++23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 12 18 30 23 20 24 23 20 24 23 20 24 22 25 24 26 24 32
++23 20 24 33 30 30 23 20 24 22 25 24 26 24 32 33 30 30 33 30 30 33 30 32
++36 35 37 42 38 42 42 38 42 42 41 42 47 44 42 48 44 48 48 50 48 59 55 55
++54 57 61 59 57 61 59 57 61 65 63 61 65 63 61 63 59 71 63 59 71 59 69 70
++63 59 71 63 59 71 53 63 61 59 69 70 54 57 61 54 57 61 54 57 61 54 57 61
++54 57 61 45 57 61 54 57 61 45 57 61 45 57 61 54 57 61 54 57 61 54 57 61
++54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 53 63 61 54 57 61 53 63 61
++46 59 71 54 57 61 45 57 61 54 57 61 54 57 61 45 57 61 45 57 61 43 42 50
++42 41 42 34 40 43 28 35 38 36 35 37 28 30 35 28 30 35 25 30 29 22 23 31
++22 25 24 12 18 20 23 18 22 12 18 20 14 16 17 23 18 22 14 16 17 23 18 22
++23 18 22 23 18 22 23 18 22 14 16 17 23 18 22 14 16 17 23 20 24 15 22 17
++23 20 24 23 20 24 15 22 17 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 23 20 24 22 25 24
++23 20 24 23 20 24 15 22 17 23 20 24 23 20 24 23 20 24 23 20 24 15 22 17
++23 18 22 12 18 20 14 16 17 23 18 22 12 18 20 23 18 22 14 16 17 14 16 17
++14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 23 18 22 14 16 17 14 16 17
++14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 17 12 17 14 16 17 17 12 17
++14 16 17 14 16 17 14 16 17 14 16 17 23 18 22 14 16 17 14 16 17 14 16 17
++14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 23 18 22 14 16 17
++23 18 22 23 18 22 12 18 20 23 18 22 12 18 20 23 20 24 15 22 17 23 20 24
++
++3 4 9 3 4 9 13 4 7 3 4 9 13 4 7 3 4 9 7 12 13 13 4 7
++3 4 9 13 4 7 7 12 13 3 4 9 13 4 7 7 12 13 13 4 7 7 12 13
++7 10 17 3 4 9 7 10 17 13 4 7 7 10 17 7 12 13 3 4 9 13 4 7
++3 4 9 7 10 17 3 4 9 7 10 17 3 4 9 3 4 9 7 10 17 3 4 9
++13 4 7 3 4 9 3 4 9 3 4 9 13 4 7 7 12 13 7 12 13 7 12 13
++15 17 7 15 22 17 15 22 17 23 31 15 25 30 29 32 39 24 32 39 24 32 39 24
++32 39 24 35 46 43 32 39 24 35 46 43 49 74 23 47 49 42 51 73 47 64 70 48
++51 73 47 57 86 47 64 70 48 66 86 47 64 70 48 57 86 47 64 70 48 64 70 48
++51 73 47 64 70 48 51 73 47 51 73 47 49 74 23 43 55 48 49 74 23 35 46 43
++35 46 43 49 74 23 35 46 43 32 39 24 32 39 24 23 30 35 23 31 15 15 22 17
++15 22 17 14 16 17 15 17 7 7 12 13 7 10 17 13 4 7 3 4 9 7 12 13
++13 4 7 7 12 13 7 12 13 13 4 7 3 4 9 13 4 7 7 12 13 13 4 7
++3 4 9 13 4 7 3 4 9 13 4 7 6 15 6 3 4 9 13 4 7 3 4 9
++3 4 9 13 4 7 3 4 9 7 12 13 3 4 9 3 4 9 3 4 9 3 4 9
++13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13
++13 4 7 15 17 7 23 10 10 23 18 22 26 12 13 26 25 15 28 13 18 28 13 18
++34 30 15 28 13 18 33 30 30 28 13 18 34 30 15 49 13 16 33 30 30 49 13 16
++33 30 30 52 30 15 33 30 30 49 13 16 52 30 35 34 30 15 52 30 35 33 30 30
++49 13 16 33 30 30 33 30 30 49 13 16 34 30 15 34 30 15 28 13 18 34 30 15
++28 13 18 28 13 18 34 30 15 28 13 18 23 18 22 26 25 15 17 12 17 17 12 17
++17 12 17 17 12 17 17 12 17 7 12 13 17 12 17 7 10 17 17 12 17 7 10 17
++7 12 13 14 16 17 14 16 17 14 16 17 14 16 17 15 22 17 23 20 24 22 25 24
++23 20 24 22 25 24 26 25 15 33 30 30 33 30 30 32 39 24 33 30 30 32 39 24
++33 30 30 47 47 21 36 35 37 36 35 37 36 35 37 47 47 21 47 44 42 47 44 42
++47 47 21 47 49 42 55 39 37 47 44 42 51 49 42 47 47 21 55 39 37 47 47 21
++51 49 42 47 44 42 47 47 21 55 39 37 51 49 42 53 46 48 55 55 48 50 61 48
++59 55 55 65 63 61 59 57 61 65 63 61 65 63 61 63 59 71 59 69 70 63 59 71
++63 59 71 63 59 71 75 72 67 63 59 71 63 59 71 59 69 70 75 59 67 59 69 70
++63 59 71 63 59 71 63 59 71 59 57 61 59 57 61 65 63 61 59 57 61 65 63 61
++63 59 71 65 63 61 75 59 67 63 59 71 75 64 82 59 69 70 75 64 82 75 64 82
++75 81 90 75 81 90 75 81 90 88 69 84 77 91 115 88 69 84 77 90 100 88 69 84
++61 78 101 88 69 84 77 90 100 88 69 84 77 90 100 88 69 84 77 90 100 88 69 84
++75 81 90 75 81 90 75 81 90 75 72 67 75 64 82 75 59 67 75 59 67 65 57 61
++65 55 54 65 55 54 76 44 53 65 55 54 57 43 51 65 55 54 76 44 53 65 55 54
++62 47 47 65 55 54 65 55 54 65 55 54 65 57 61 65 55 54 65 55 54 65 55 54
++57 43 51 57 43 51 59 55 55 53 46 48 53 46 48 54 57 61 53 46 48 48 50 48
++48 50 48 43 42 50 43 42 50 43 42 50 43 42 50 37 35 43 37 35 43 37 35 43
++42 38 42 48 44 48 48 50 48 47 49 42 47 39 42 33 30 30 32 39 24 36 35 37
++47 47 21 42 38 42 47 47 21 36 35 37 47 44 42 47 49 42 60 49 42 55 55 48
++60 49 42 51 49 42 63 55 45 63 55 45 75 73 58 88 73 62 101 83 74 117 99 86
++117 127 86 163 117 123 138 126 108 177 171 115 168 102 88 168 146 127 201 146 124 157 148 53
++195 113 123 177 171 115 168 102 88 177 171 115 168 102 88 201 146 124 168 146 127 177 171 115
++168 146 127 201 146 124 177 171 115 201 146 124 177 171 115 168 146 127 168 146 127 163 117 123
++138 126 108 138 126 108 138 126 108 138 126 108 101 83 74 63 55 45 55 39 37 32 39 24
++36 35 37 42 38 42 48 44 48 48 50 48 48 50 48 48 50 48 52 55 48 54 57 61
++59 55 55 59 57 61 59 57 61 63 59 71 63 59 71 75 72 67 63 59 71 75 59 67
++59 69 70 75 72 67 75 64 82 75 72 67 59 69 70 75 72 67 59 69 70 65 63 61
++47 44 42 33 30 30 33 30 30 26 30 28 26 25 15 22 25 24 33 30 30 23 20 24
++14 16 17 13 4 7 15 17 7 23 18 22 22 25 24 23 20 24 22 24 13 23 18 22
++23 18 22 23 18 22 23 18 22 14 16 17 23 18 22 14 16 17 14 16 17 17 12 17
++22 24 13 23 18 22 23 18 22 22 24 13 14 16 17 17 12 17 14 16 17 17 12 17
++14 16 17 17 12 17 15 17 7 17 12 17 15 17 7 17 12 17 14 16 17 17 12 17
++14 16 17 14 16 17 23 18 22 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24
++26 30 28 26 30 28 22 25 24 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++22 25 24 22 25 24 23 18 22 14 16 17 23 18 22 26 25 15 26 30 28 23 20 24
++14 16 17 17 12 17 15 17 7 17 12 17 15 22 17 26 12 13 36 35 37 59 57 61
++75 72 67 65 63 61 63 55 51 47 44 42 26 30 28 23 18 22 14 16 17 22 24 13
++22 25 24 42 41 42 59 55 55 65 63 61 65 63 61 47 39 42 47 44 42 51 49 42
++63 55 45 60 49 42 51 49 42 51 49 42 55 39 37 47 44 42 55 39 37 47 44 42
++42 47 42 55 39 37 47 44 42 47 39 42 47 47 21 42 41 42 53 35 37 36 35 37
++47 47 21 52 30 35 36 35 37 53 35 17 36 35 37 53 35 37 36 35 37 33 30 30
++36 35 37 33 30 30 53 35 37 42 38 42 47 39 42 47 44 42 48 44 48 48 50 48
++55 55 48 53 46 48 59 55 55 59 55 55 59 57 61 65 63 61 75 72 67 75 72 67
++75 64 82 75 81 90 75 81 90 77 90 100 77 90 100 77 90 100 95 95 116 95 95 116
++95 95 116 95 108 128 95 108 128 95 108 128 98 121 131 111 119 127 111 122 142 111 122 142
++119 117 138 122 134 144 111 122 142 122 134 144 111 122 142 119 117 138 122 134 144 111 122 142
++119 117 138 111 122 142 111 122 142 111 122 142 111 119 127 111 122 142 119 117 138 95 108 128
++111 119 127 95 108 128 95 108 128 95 95 116 95 95 116 95 91 100 77 91 115 77 90 100
++75 81 90 61 78 101 75 81 90 75 64 82 60 63 87 63 59 71 54 57 61 45 57 61
++43 42 50 45 57 61 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 42 41 42
++43 42 50 43 42 50 48 44 48 48 44 48 54 57 61 59 55 55 59 57 61 59 57 61
++59 57 61 59 57 61 59 57 61 65 63 61 63 59 71 63 59 71 65 63 61 63 59 71
++65 63 61 63 59 71 63 59 71 75 72 67 63 59 71 65 63 61 75 63 62 65 63 61
++65 63 61 65 63 61 63 59 71 65 63 61 63 59 71 59 57 61 59 57 61 59 57 61
++59 57 61 54 57 61 48 50 48 57 43 64 48 50 48 43 42 50 48 44 48 43 42 50
++43 42 50 43 42 50 42 41 42 42 41 42 37 35 43 36 35 37 36 35 37 33 30 36
++30 30 34 26 24 32 22 25 24 26 24 32 26 24 32 26 24 32 22 25 24 22 23 31
++22 25 24 23 20 24 22 25 24 12 18 20 23 18 22 22 25 24 12 18 20 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24
++26 24 32 22 25 24 23 20 24 33 30 30 22 25 24 26 24 32 33 30 30 33 30 32
++36 35 37 36 35 37 36 35 37 42 38 42 42 41 42 47 44 42 48 44 48 48 50 48
++53 46 48 55 55 48 54 57 61 59 57 61 54 57 61 59 57 61 59 57 61 59 57 61
++59 57 61 59 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 48 50 48
++45 57 61 43 42 50 45 57 61 48 50 48 48 44 48 45 57 61 48 50 48 45 57 61
++45 57 61 45 57 61 45 57 61 54 57 61 45 57 61 45 57 61 54 57 61 54 57 61
++54 57 61 54 57 61 45 57 61 45 57 61 45 57 61 48 50 48 48 50 48 43 42 50
++34 40 43 34 40 43 31 35 35 28 35 38 28 30 35 25 30 29 22 23 31 22 25 24
++22 25 24 23 20 24 23 20 24 14 16 17 23 18 22 12 18 20 23 18 22 23 20 24
++14 16 17 14 16 17 12 18 20 23 18 22 15 22 17 23 18 22 12 18 20 23 20 24
++15 22 17 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24
++22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24
++23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 23 20 24
++22 25 24 23 20 24 23 20 24 22 25 24 23 20 24 15 22 17 23 18 22 12 18 20
++23 20 24 14 16 17 23 18 22 14 16 17 23 18 22 14 16 17 14 16 17 14 16 17
++17 12 17 14 16 17 23 18 22 14 16 17 14 16 17 14 16 17 23 18 22 14 16 17
++17 12 17 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17
++17 12 17 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 14 16 17
++14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 23 18 22 14 16 17 23 18 22
++14 16 17 23 18 22 14 16 17 23 18 22 14 16 17 23 18 22 14 16 17 14 16 17
++12 18 20 23 18 22 23 20 24 15 22 17 23 18 22 23 20 24 23 20 24 23 20 24
++
++3 3 1 3 4 9 3 4 9 13 4 7 3 4 9 7 12 13 13 4 7 3 4 9
++13 4 7 7 12 13 13 4 7 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7
++13 4 7 7 10 17 13 4 7 7 10 17 3 4 9 13 4 7 7 10 17 3 4 9
++7 10 17 3 4 9 13 4 7 3 4 9 3 4 9 13 4 7 3 4 9 3 4 9
++3 4 9 7 12 13 13 4 7 7 10 17 7 12 13 3 4 9 6 15 6 15 17 7
++7 12 13 15 17 7 15 22 17 22 25 24 29 35 19 32 39 24 32 39 24 32 39 24
++35 46 43 47 47 21 49 74 23 35 46 43 49 74 23 43 55 48 49 74 23 64 70 48
++51 73 47 66 86 47 59 79 61 66 86 47 59 79 61 59 79 61 66 86 47 64 70 48
++51 73 47 64 70 48 51 73 47 50 61 48 50 61 48 43 55 48 43 55 48 43 55 48
++49 74 23 28 35 38 32 39 24 23 31 15 32 39 24 23 31 15 15 22 17 15 22 17
++12 18 20 6 15 6 7 12 13 7 12 13 13 4 7 7 10 17 7 12 13 13 4 7
++7 12 13 7 12 13 3 4 9 7 12 13 3 4 9 7 12 13 3 4 9 3 4 9
++3 4 9 3 4 9 3 4 9 3 4 9 13 4 7 3 4 9 3 4 9 13 4 7
++3 4 9 3 4 9 13 4 7 3 4 9 13 4 7 13 4 7 13 4 7 7 12 13
++13 4 7 7 10 17 13 4 7 7 12 13 17 12 17 13 4 7 7 12 13 15 17 7
++17 12 17 23 10 10 26 12 13 26 12 13 23 18 22 26 12 13 26 25 15 28 13 18
++28 13 18 28 13 18 34 30 15 33 30 30 49 13 16 33 30 30 34 30 15 49 13 16
++33 30 30 49 13 16 33 30 30 52 30 15 33 30 30 49 13 16 33 30 30 52 30 15
++33 30 30 33 30 30 49 13 16 33 30 30 34 30 15 49 13 16 33 30 30 33 30 30
++34 30 15 33 30 30 28 13 18 26 25 15 26 25 15 17 12 17 23 18 22 14 16 17
++17 12 17 7 12 13 17 12 17 7 12 13 13 4 7 17 12 17 17 12 17 7 10 17
++17 12 17 7 10 17 14 16 17 23 18 22 14 16 17 23 20 24 23 20 24 23 20 24
++22 25 24 22 25 24 33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 52 30 35 32 39 24 47 47 21 53 35 37 36 35 37 55 39 37 47 47 21
++47 39 42 47 44 42 47 47 21 47 44 42 55 39 37 47 44 42 55 39 37 51 49 42
++55 39 37 47 47 21 47 44 42 47 44 42 51 49 42 51 49 42 55 55 48 59 55 55
++59 55 55 59 57 61 65 63 61 63 59 71 63 59 71 59 69 70 63 59 71 65 63 61
++59 69 70 63 59 71 59 69 70 63 59 71 65 63 61 63 59 71 63 59 71 63 59 71
++65 63 61 63 59 71 65 63 61 59 57 61 63 59 71 59 57 61 63 59 71 65 63 61
++63 59 71 63 59 71 63 59 71 75 72 67 75 64 82 75 64 82 75 81 76 75 64 82
++75 81 90 75 81 90 75 81 90 61 78 101 88 69 84 75 81 90 75 81 90 77 91 115
++88 69 84 77 90 100 88 69 84 77 90 100 88 69 84 61 78 101 88 69 84 75 81 90
++75 81 90 88 69 84 75 64 82 88 69 84 75 72 67 75 59 67 75 59 67 65 55 54
++65 55 54 57 43 51 65 55 54 57 43 51 65 55 54 65 55 54 65 55 54 65 55 54
++65 55 54 57 43 51 65 55 54 57 43 64 65 55 54 65 55 54 57 43 64 57 43 51
++59 55 55 57 43 51 53 46 48 53 46 48 53 46 48 48 44 48 53 46 48 43 42 50
++43 42 50 48 44 48 43 42 50 43 42 50 42 38 42 37 35 43 36 35 37 36 35 37
++42 41 42 48 50 48 59 55 55 47 44 42 36 35 37 47 47 21 51 49 42 51 49 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 49 42 51 49 42 55 55 48 63 55 45
++63 55 51 63 55 45 75 56 53 75 73 58 88 73 62 88 73 62 117 114 76 117 114 76
++168 102 88 146 150 115 168 102 88 177 171 115 201 146 124 157 148 53 201 146 124 168 102 88
++177 171 115 168 102 88 201 146 124 168 102 88 177 171 115 168 102 88 201 146 124 168 102 88
++201 146 124 201 146 124 201 146 124 201 146 124 201 146 124 201 146 124 177 171 115 168 146 127
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 117 99 86 99 93 84 88 73 62
++62 47 47 42 41 42 42 38 42 48 44 48 43 42 50 54 57 61 54 57 61 48 50 48
++54 57 61 59 55 55 59 57 61 65 63 61 63 59 71 63 59 71 59 69 70 75 72 67
++63 59 71 63 59 71 59 69 70 63 59 71 65 63 61 63 59 71 65 63 61 52 55 48
++42 41 42 32 39 24 33 30 30 34 30 15 22 25 24 33 30 30 23 20 24 23 18 22
++17 12 17 14 16 17 23 18 22 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24
++23 20 24 22 25 24 23 18 22 22 24 13 17 12 17 17 12 17 23 18 22 23 18 22
++23 20 24 23 18 22 17 12 17 17 12 17 14 16 17 23 18 22 14 16 17 23 18 22
++14 16 17 17 12 17 17 12 17 14 16 17 17 12 17 17 12 17 14 16 17 23 10 10
++14 16 17 17 12 17 23 18 22 15 22 17 22 24 13 23 18 22 15 22 17 23 18 22
++14 16 17 14 16 17 15 17 7 17 12 17 15 17 7 14 16 17 14 16 17 23 20 24
++22 25 24 26 25 15 17 12 17 17 12 17 23 18 22 22 25 24 26 24 32 23 18 22
++15 17 7 15 17 7 13 4 7 15 17 7 15 17 7 15 17 7 26 30 28 63 55 51
++75 72 67 75 81 69 59 57 61 51 49 42 36 35 37 26 30 28 22 25 24 23 20 24
++33 30 30 36 35 37 47 44 42 52 55 48 48 50 48 33 30 30 36 35 37 55 39 37
++63 55 45 55 55 48 51 49 42 55 39 37 51 49 42 51 49 42 47 47 21 47 44 42
++47 44 42 47 44 42 47 44 42 55 39 37 42 41 42 47 39 42 47 47 21 47 39 42
++42 38 42 36 35 37 53 35 37 36 35 37 42 41 42 36 35 37 33 30 30 36 35 37
++52 30 35 36 35 37 42 41 42 42 41 42 47 44 42 48 44 48 51 49 42 53 46 48
++53 46 48 53 46 48 59 55 55 59 55 55 59 57 61 65 63 61 63 59 71 75 64 82
++75 81 82 75 81 90 88 83 88 75 81 90 77 90 100 77 91 115 95 95 116 95 95 116
++95 95 116 95 108 128 95 108 128 95 108 128 111 119 127 111 122 142 111 122 142 111 119 127
++111 122 142 119 117 138 111 122 142 119 117 138 111 122 142 122 134 144 111 122 142 119 117 138
++122 134 144 111 122 142 119 117 138 111 122 142 111 122 142 111 119 127 111 119 127 95 108 128
++95 108 128 95 95 116 95 95 116 95 95 116 95 95 116 77 90 100 77 90 100 75 81 90
++75 81 90 75 64 82 60 63 87 60 63 87 59 69 70 63 59 71 45 57 61 48 50 48
++45 57 61 43 42 50 43 42 50 43 42 50 43 42 50 35 46 43 43 42 50 43 42 50
++43 42 50 43 42 50 43 42 50 48 44 48 48 50 48 57 43 64 54 57 61 57 43 64
++54 57 61 59 57 61 63 59 71 59 57 61 63 59 71 63 59 71 63 59 71 59 57 61
++63 59 71 65 63 61 65 63 61 63 59 71 65 63 61 65 57 61 59 57 61 65 57 61
++59 57 61 65 57 61 59 57 61 59 57 61 54 57 61 54 57 61 59 55 55 54 57 61
++57 43 51 54 57 61 53 46 48 48 50 48 48 44 48 43 42 50 43 42 50 43 42 50
++42 41 42 42 41 42 34 40 43 37 35 43 36 35 37 33 30 36 33 30 36 30 30 34
++26 30 28 30 30 34 26 24 32 26 24 32 22 25 24 22 25 24 26 24 32 22 25 24
++22 25 24 23 20 24 23 20 24 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24 26 24 32
++23 20 24 26 24 32 26 24 32 22 25 24 26 24 32 26 30 28 33 30 30 33 30 32
++36 35 37 36 35 37 36 35 37 42 38 42 42 38 42 42 41 42 47 44 42 48 44 48
++48 44 48 48 50 48 48 50 48 59 55 55 59 55 55 54 57 61 59 55 55 54 57 61
++54 57 61 59 55 55 54 57 61 54 57 61 45 57 61 43 42 50 45 57 61 43 42 50
++43 42 50 43 42 50 43 42 50 43 42 50 43 55 48 43 42 50 48 50 48 48 50 48
++48 50 48 48 50 48 45 57 61 48 50 48 45 57 61 48 50 48 45 57 61 54 57 61
++45 57 61 45 57 61 45 57 61 48 50 48 43 42 50 45 57 61 43 42 50 43 42 50
++35 46 43 37 35 43 31 35 35 36 35 37 28 30 35 26 24 32 25 30 29 22 25 24
++23 20 24 22 25 24 12 18 20 23 20 24 14 16 17 23 18 22 15 22 17 23 18 22
++23 20 24 23 18 22 23 20 24 12 18 20 23 18 22 23 18 22 23 18 22 12 18 20
++23 18 22 23 20 24 15 22 17 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24
++23 20 24 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24
++26 24 32 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 23 20 24 15 22 17 23 20 24 23 20 24 23 20 24 23 18 22
++12 18 20 23 20 24 23 18 22 15 22 17 23 18 22 14 16 17 23 18 22 14 16 17
++23 18 22 15 22 17 23 18 22 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++14 16 17 23 18 22 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 14 16 17
++14 16 17 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 14 16 17
++17 12 17 7 12 13 14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 23 18 22
++23 18 22 23 18 22 15 22 17 23 18 22 14 16 17 14 16 17 14 16 17 23 18 22
++14 16 17 23 18 22 12 18 20 23 18 22 23 18 22 15 22 17 23 20 24 23 20 24
++
++13 4 7 3 3 1 3 4 9 3 4 9 13 4 7 3 4 9 13 4 7 3 4 9
++7 12 13 13 4 7 3 4 9 7 12 13 13 4 7 3 4 9 13 4 7 3 4 9
++7 10 17 13 4 7 7 10 17 13 4 7 7 12 13 3 4 9 7 12 13 3 4 9
++13 4 7 3 4 9 3 4 9 13 4 7 3 4 9 3 4 9 3 4 9 7 10 17
++13 4 7 3 4 9 3 4 9 3 4 9 7 10 17 3 4 9 6 15 6 7 12 13
++15 17 7 14 16 17 15 22 17 22 25 24 29 35 19 29 35 19 35 46 43 32 39 24
++32 39 24 35 46 43 35 46 43 47 47 21 50 61 48 50 61 48 51 73 47 64 70 48
++66 86 47 59 79 61 66 86 47 59 79 61 59 79 61 66 86 47 59 79 61 64 70 48
++59 79 61 51 73 47 51 73 47 50 61 48 49 74 23 43 55 48 49 74 23 35 46 43
++35 46 43 32 39 24 35 46 43 32 39 24 23 31 15 23 30 35 23 31 15 15 22 17
++15 22 17 7 12 13 7 12 13 7 12 13 7 10 17 13 4 7 7 10 17 3 4 9
++7 12 13 13 4 7 7 12 13 13 4 7 3 4 9 13 4 7 3 4 9 13 4 7
++3 4 9 13 4 7 13 4 7 3 4 9 3 4 9 13 4 7 3 3 1 7 12 13
++3 4 9 13 4 7 3 4 9 13 4 7 3 4 9 3 4 9 3 4 9 3 4 9
++7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7
++15 17 7 17 12 17 17 12 17 26 12 13 26 12 13 26 25 15 28 13 18 28 13 18
++28 13 18 34 30 15 28 13 18 28 13 18 28 13 18 33 30 30 49 13 16 33 30 30
++34 30 15 49 13 16 34 30 15 49 13 16 33 30 30 52 30 15 33 30 30 52 30 15
++33 30 30 49 13 16 33 30 30 34 30 15 28 13 18 33 30 30 34 30 15 28 13 18
++33 30 30 28 13 18 26 25 15 28 13 18 17 12 17 15 17 7 14 16 17 17 12 17
++17 12 17 17 12 17 7 12 13 17 12 17 17 12 17 7 10 17 14 16 17 17 12 17
++7 10 17 17 12 17 14 16 17 12 18 20 14 16 17 14 16 17 15 22 17 23 20 24
++23 20 24 22 25 24 22 25 24 26 25 15 26 30 28 33 30 30 33 30 30 33 30 30
++32 39 24 33 30 30 32 39 24 36 35 37 36 35 37 47 47 21 36 35 37 42 41 42
++42 38 42 47 47 21 47 39 42 47 47 21 47 39 42 47 47 21 47 44 42 55 39 37
++47 47 21 47 44 42 47 39 42 47 47 21 55 39 37 51 49 42 55 55 48 55 55 48
++59 55 55 59 55 55 59 57 61 59 57 61 59 57 61 63 59 71 65 63 61 63 59 71
++59 57 61 59 57 61 63 59 71 59 57 61 63 59 71 59 57 61 65 63 61 59 57 61
++63 59 71 59 57 61 59 57 61 59 57 61 59 57 61 59 57 61 59 57 61 63 59 71
++65 63 61 65 63 61 75 72 67 63 59 71 63 59 71 75 64 82 60 81 83 75 64 82
++75 81 90 75 81 90 75 81 90 75 81 90 77 90 100 75 81 90 75 81 90 75 81 90
++88 69 84 77 90 100 75 81 90 75 81 90 75 81 90 88 83 88 75 81 90 75 81 90
++88 69 84 75 81 76 75 64 82 75 72 67 75 64 82 75 59 67 65 57 61 65 55 54
++65 55 54 65 55 54 62 47 47 65 55 54 65 55 54 65 55 54 65 55 54 57 43 51
++57 43 51 65 55 54 62 47 47 62 47 47 65 55 54 57 43 51 63 55 51 57 43 51
++57 43 51 57 43 51 53 46 48 53 46 48 53 46 48 48 44 48 48 44 48 48 44 48
++43 42 50 43 42 50 42 38 42 43 42 50 37 35 43 36 35 37 33 30 36 42 41 42
++59 55 55 59 55 55 48 44 48 47 44 42 51 49 42 55 55 48 63 55 51 51 49 42
++51 49 42 51 49 42 51 49 42 51 49 42 51 49 42 51 49 42 55 55 48 60 49 42
++63 55 51 65 55 54 75 73 58 88 73 62 101 83 74 117 99 86 117 99 86 117 114 76
++168 102 88 177 171 115 168 102 88 177 171 115 168 102 88 201 146 124 168 102 88 201 146 124
++168 102 88 177 171 115 168 102 88 177 171 115 168 102 88 201 146 124 157 148 53 201 146 124
++157 148 53 168 146 127 177 171 115 201 146 124 177 169 143 201 146 124 197 171 123 201 146 124
++197 171 123 177 169 143 217 168 156 177 169 143 217 168 156 189 165 168 177 169 143 146 151 137
++112 123 108 75 63 62 42 38 42 43 42 50 43 42 50 48 50 48 48 44 48 54 57 61
++48 50 48 52 55 48 54 57 61 59 57 61 59 57 61 59 57 61 65 63 61 63 59 71
++65 63 61 63 59 71 65 63 61 63 59 71 65 63 61 59 69 70 59 57 61 51 49 42
++47 39 42 36 35 37 33 30 30 26 30 28 23 20 24 26 25 15 23 18 22 14 16 17
++23 18 22 23 18 22 22 25 24 22 25 24 23 18 22 22 24 13 23 18 22 23 18 22
++22 25 24 23 20 24 22 25 24 23 18 22 17 12 17 14 16 17 22 24 13 23 20 24
++22 25 24 23 18 22 14 16 17 23 18 22 23 18 22 26 25 15 23 18 22 14 16 17
++23 18 22 14 16 17 17 12 17 17 12 17 14 16 17 14 16 17 17 12 17 14 16 17
++14 16 17 23 18 22 23 18 22 15 22 17 23 18 22 15 17 7 17 12 17 15 17 7
++17 12 17 14 16 17 26 25 15 22 25 24 23 20 24 23 18 22 23 20 24 22 25 24
++23 18 22 14 16 17 15 17 7 14 16 17 23 20 24 23 20 24 33 30 30 22 25 24
++23 18 22 14 16 17 17 12 17 7 12 13 15 17 7 13 4 7 22 24 13 36 35 37
++48 50 48 55 55 48 51 49 42 36 35 37 42 41 42 33 30 32 33 30 32 36 35 37
++47 49 42 48 50 48 42 41 42 36 35 37 32 39 24 33 30 30 53 35 17 36 35 37
++51 49 42 60 49 42 55 39 37 51 49 42 55 39 37 51 49 42 47 44 42 47 44 42
++55 39 37 47 44 42 55 39 37 42 41 42 47 44 42 47 44 42 42 41 42 53 35 37
++53 35 37 47 39 42 47 47 21 36 35 37 42 38 42 32 39 24 53 35 37 36 35 37
++32 39 24 36 35 37 36 35 37 42 38 42 47 44 42 48 44 48 53 46 48 48 50 48
++53 46 48 55 55 48 57 43 64 59 55 55 65 57 61 63 59 71 65 63 61 75 72 67
++75 64 82 75 64 82 75 64 82 77 90 100 75 81 90 77 90 100 94 105 108 77 91 115
++95 95 116 94 105 108 95 108 128 95 108 128 95 108 128 95 108 128 111 119 127 111 122 142
++111 119 127 111 122 142 119 117 138 111 122 142 111 122 142 119 117 138 111 122 142 111 122 142
++111 122 142 111 122 142 111 119 127 111 122 142 111 119 127 95 108 128 111 119 127 95 108 128
++95 108 128 95 108 128 95 108 128 95 95 116 77 91 115 95 91 100 77 91 115 75 81 90
++75 81 90 75 64 82 60 81 83 75 64 82 63 59 71 46 59 71 54 57 61 45 57 61
++57 43 64 48 44 48 43 42 50 43 42 50 42 41 42 43 42 50 42 41 42 34 40 43
++42 38 42 37 35 43 42 41 42 43 42 50 43 42 50 48 50 48 53 46 48 48 50 48
++53 46 48 54 57 61 54 57 61 59 57 61 54 57 61 59 57 61 59 57 61 59 57 61
++59 57 61 59 57 61 59 57 61 65 55 54 59 57 61 59 57 61 59 57 61 59 55 55
++57 43 64 59 55 55 54 57 61 57 43 51 54 57 61 53 46 48 48 44 48 48 50 48
++48 44 48 43 42 50 48 44 48 43 42 50 43 42 50 43 42 50 42 38 42 37 35 43
++37 35 43 36 35 37 36 35 37 36 35 37 31 35 35 33 30 36 33 30 32 30 30 34
++26 30 28 26 24 32 30 30 34 30 30 34 26 24 32 26 30 28 26 24 32 26 30 28
++26 24 32 22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24
++23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 22 25 24
++26 24 32 22 25 24 23 20 24 23 20 24 26 30 28 26 24 32 33 30 30 33 30 32
++33 30 32 33 30 32 36 35 37 36 35 37 36 35 37 42 38 42 42 41 42 42 41 42
++47 44 42 48 44 48 48 44 48 48 50 48 48 50 48 54 57 61 52 55 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 43 42 50 48 50 48 43 42 50 43 42 50
++34 40 43 34 40 43 34 40 43 34 40 43 43 42 50 35 46 43 35 46 43 43 42 50
++35 47 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 57 43 64
++43 42 50 48 50 48 43 42 50 45 57 61 43 42 50 43 42 50 43 42 50 43 42 50
++34 40 43 33 39 38 28 35 38 33 30 36 28 30 35 25 30 29 26 24 32 22 25 24
++22 25 24 22 25 24 23 20 24 23 18 22 23 20 24 23 20 24 23 18 22 12 18 20
++23 20 24 15 22 17 23 20 24 23 18 22 23 18 22 15 22 17 12 18 20 23 18 22
++23 20 24 15 22 17 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 26 24 32 22 25 24 22 25 24
++23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 15 22 17 23 20 24 23 20 24 23 20 24 15 22 17 23 20 24
++23 18 22 23 18 22 12 18 20 23 18 22 12 18 20 23 18 22 14 16 17 14 16 17
++14 16 17 14 16 17 14 16 17 23 18 22 14 16 17 14 16 17 14 16 17 14 16 17
++17 12 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 17 12 17
++14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 17 12 17 7 12 13
++14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 23 18 22 14 16 17 14 16 17
++12 18 20 23 18 22 14 16 17 14 16 17 14 16 17 23 18 22 14 16 17 23 18 22
++15 22 17 23 18 22 15 22 17 23 18 22 12 18 20 23 20 24 15 22 17 23 20 24
++
++3 4 9 3 4 9 13 4 7 3 4 9 13 4 7 7 12 13 3 4 9 13 4 7
++3 4 9 13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 7 12 13
++7 12 13 13 4 7 7 10 17 3 4 9 3 4 9 13 4 7 3 4 9 3 4 9
++7 12 13 3 4 9 3 4 9 7 10 17 3 4 9 13 4 7 3 4 9 3 4 9
++3 4 9 3 4 9 13 4 7 3 4 9 13 4 7 7 12 13 6 15 6 15 17 7
++7 12 13 15 17 7 15 22 17 23 31 15 26 30 28 32 39 24 32 39 24 32 39 24
++35 46 43 49 74 23 35 46 43 51 73 47 50 61 48 51 73 47 51 73 47 64 70 48
++59 79 61 70 96 55 75 77 62 70 96 55 75 81 69 59 79 61 59 79 61 59 79 61
++64 70 48 64 70 48 53 63 61 51 73 47 50 61 48 43 55 48 42 47 42 35 46 43
++35 46 43 35 46 43 23 31 15 23 30 35 23 31 15 23 31 15 15 22 17 12 18 20
++6 15 6 6 15 6 6 15 6 7 12 13 7 12 13 7 12 13 13 4 7 7 12 13
++7 12 13 7 12 13 7 12 13 7 12 13 3 4 9 7 12 13 3 4 9 6 15 6
++3 4 9 3 4 9 3 4 9 13 4 7 3 3 1 13 4 7 3 4 9 13 4 7
++3 4 9 3 4 9 13 4 7 3 4 9 3 4 9 13 4 7 7 12 13 13 4 7
++7 12 13 13 4 7 7 12 13 17 12 17 17 12 17 13 4 7 17 12 17 15 17 7
++17 12 17 23 10 10 26 12 13 17 12 17 26 12 13 28 13 18 26 25 15 28 13 18
++26 25 15 28 13 18 34 30 15 33 30 30 34 30 15 28 13 18 34 30 15 34 30 15
++28 13 18 33 30 30 34 30 15 33 30 30 49 13 16 33 30 30 34 30 15 33 30 30
++33 30 30 34 30 15 33 30 30 49 13 16 33 30 30 34 30 15 28 13 18 33 30 30
++34 30 15 26 25 15 28 13 18 26 25 15 22 24 13 17 12 17 17 12 17 17 12 17
++14 16 17 17 12 17 7 12 13 13 4 7 14 16 17 7 12 13 17 12 17 7 10 17
++14 16 17 7 10 17 14 16 17 17 12 17 14 16 17 23 18 22 14 16 17 23 18 22
++22 25 24 22 25 24 23 20 24 26 30 28 33 30 30 26 25 15 32 39 24 33 30 30
++33 30 30 33 30 30 52 30 35 32 39 24 36 35 37 36 35 37 47 47 21 36 35 37
++47 47 21 36 35 37 53 35 37 32 39 24 53 35 37 47 47 21 52 30 35 47 47 21
++42 38 42 53 35 37 47 47 21 42 38 42 47 44 42 47 44 42 53 46 48 52 55 48
++59 55 55 54 57 61 54 57 61 59 57 61 63 59 71 54 57 61 54 57 61 59 57 61
++53 63 61 63 59 71 53 63 61 59 57 61 59 57 61 59 57 61 54 57 61 59 57 61
++54 57 61 54 57 61 59 57 61 59 57 61 59 57 61 59 57 61 59 57 61 59 57 61
++63 59 71 63 59 71 63 59 71 63 59 71 75 64 82 59 69 70 75 64 82 75 81 90
++61 78 101 75 81 90 61 78 101 88 69 84 61 78 101 88 69 84 61 78 101 95 91 100
++61 78 101 88 69 84 77 91 115 88 69 84 77 90 100 88 69 84 61 78 101 88 69 84
++75 64 82 75 64 82 75 72 67 75 64 82 75 59 67 75 59 67 65 57 61 65 55 54
++62 47 47 57 43 51 62 47 47 62 47 47 65 55 54 57 43 51 59 55 55 62 47 47
++65 55 54 57 43 51 57 43 51 59 55 55 57 43 51 59 55 55 57 43 51 53 46 48
++53 46 48 53 46 48 48 44 48 48 44 48 48 44 48 48 44 48 48 44 48 47 39 42
++43 42 50 42 38 42 42 38 42 42 38 42 37 35 43 36 35 37 36 35 37 59 55 55
++65 63 61 59 55 55 52 55 48 53 46 48 63 55 51 65 63 61 65 63 61 63 55 51
++51 49 42 47 44 42 51 49 42 51 49 42 55 55 48 63 55 45 63 55 45 60 49 42
++65 55 54 75 73 58 88 73 62 88 73 62 101 83 74 101 83 74 117 114 76 138 102 108
++117 127 86 168 102 88 177 171 115 168 102 88 177 171 115 157 148 53 201 146 124 157 148 53
++201 146 124 168 102 88 177 171 115 168 102 88 201 146 124 157 148 53 195 113 123 201 146 124
++195 113 123 201 146 124 201 146 124 177 171 115 201 146 124 201 146 124 197 171 123 189 165 168
++197 171 123 217 168 156 217 168 156 177 169 143 217 168 156 208 215 180 217 168 156 208 215 180
++189 165 168 138 126 108 75 59 67 36 35 37 42 38 42 48 50 48 43 42 50 48 50 48
++53 46 48 53 46 48 54 57 61 53 46 48 59 57 61 59 57 61 59 57 61 59 57 61
++59 57 61 65 63 61 63 59 71 63 59 71 65 63 61 63 59 71 65 63 61 51 49 42
++36 35 37 32 39 24 34 30 15 26 30 28 26 25 15 23 18 22 14 16 17 23 18 22
++22 25 24 26 30 28 23 20 24 23 18 22 14 16 17 23 18 22 23 20 24 22 25 24
++23 20 24 23 18 22 23 18 22 15 22 17 17 12 17 23 18 22 23 20 24 23 20 24
++23 20 24 22 24 13 17 12 17 22 25 24 22 25 24 23 20 24 23 20 24 22 24 13
++17 12 17 14 16 17 17 12 17 15 17 7 17 12 17 17 12 17 15 17 7 17 12 17
++15 17 7 14 16 17 22 24 13 17 12 17 15 17 7 23 18 22 22 24 13 23 18 22
++26 25 15 22 25 24 33 30 30 36 35 37 33 30 30 26 25 15 26 25 15 22 24 13
++17 12 17 15 17 7 13 4 7 17 12 17 22 24 13 22 25 24 33 30 30 22 25 24
++26 25 15 14 16 17 15 17 7 15 17 7 13 4 7 15 17 7 15 17 7 17 12 17
++26 30 28 33 30 30 33 30 30 32 39 24 33 30 30 32 39 24 36 35 37 36 35 37
++52 55 48 48 50 48 42 41 42 36 35 37 33 30 30 33 30 30 34 30 15 33 30 30
++55 39 37 60 49 42 51 49 42 51 49 42 51 49 42 47 44 42 51 49 42 51 49 42
++47 44 42 47 44 42 47 44 42 47 44 42 55 39 37 47 44 42 47 39 42 55 39 37
++42 41 42 53 35 37 42 41 42 53 35 37 42 41 42 36 35 37 36 35 37 53 35 37
++36 35 37 55 39 37 42 41 42 47 44 42 47 39 42 47 44 42 51 49 42 53 46 48
++55 55 48 57 43 51 59 55 55 59 55 55 59 55 55 65 57 61 65 63 61 63 59 71
++75 72 67 75 81 82 75 81 90 75 81 90 75 81 90 77 90 100 77 91 115 95 95 116
++94 105 108 95 95 116 94 105 108 95 108 128 95 108 128 111 119 127 95 108 128 95 108 128
++111 119 127 111 119 127 111 119 127 111 119 127 111 122 142 111 119 127 111 122 142 111 119 127
++111 119 127 111 122 142 111 119 127 111 119 127 95 108 128 111 119 127 95 108 128 95 95 116
++95 95 116 95 95 116 95 95 116 94 105 108 77 90 100 77 90 100 75 81 90 75 81 90
++60 63 87 75 81 90 60 63 87 59 69 70 63 59 71 46 59 71 54 57 61 43 42 50
++43 42 50 45 57 61 43 42 50 43 42 50 37 35 43 34 40 43 34 40 43 37 35 43
++37 35 43 37 35 43 37 35 43 42 38 42 43 42 50 43 42 50 43 42 50 57 43 64
++48 50 48 57 43 64 54 57 61 54 57 61 57 43 64 54 57 61 57 43 64 59 55 55
++54 57 61 59 55 55 59 55 55 59 55 55 57 43 51 59 55 55 53 46 48 53 46 48
++48 50 48 53 46 48 48 44 48 48 44 48 48 44 48 43 42 50 43 42 50 43 42 50
++42 41 42 42 41 42 42 38 42 42 38 42 42 38 42 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 33 30 32 30 30 34 33 30 32 26 30 28 33 30 30
++26 30 28 33 30 30 33 30 30 26 24 32 26 30 28 33 30 30 23 20 24 26 24 32
++22 25 24 26 24 32 22 25 24 26 24 32 23 20 24 26 24 32 22 25 24 22 25 24
++22 25 24 22 25 24 22 25 24 26 24 32 22 25 24 22 25 24 23 20 24 26 24 32
++22 25 24 26 24 32 26 30 28 26 24 32 22 25 24 33 30 30 22 25 24 33 30 30
++33 30 32 33 30 32 33 30 32 33 30 32 36 35 37 36 35 37 42 38 42 42 38 42
++42 41 42 42 41 42 48 44 48 48 50 48 48 44 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 45 57 61 43 42 50 43 42 50 43 42 50 35 46 43
++34 40 43 33 39 38 36 35 37 34 40 43 34 40 43 33 39 38 34 40 43 42 41 42
++35 46 43 42 47 42 35 46 43 42 41 42 35 47 50 43 42 50 42 47 42 43 42 50
++43 42 50 35 47 50 43 42 50 35 46 43 43 42 50 43 42 50 34 40 43 34 40 43
++36 35 37 36 35 37 33 30 36 28 30 35 26 24 32 26 24 32 26 30 28 22 25 24
++23 20 24 23 20 24 23 20 24 23 18 22 22 25 24 22 25 24 15 22 17 23 20 24
++23 20 24 23 20 24 12 18 20 23 18 22 15 22 17 23 18 22 23 18 22 23 20 24
++15 22 17 23 20 24 12 18 20 23 20 24 23 20 24 15 22 17 23 20 24 23 20 24
++23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24
++22 25 24 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 15 22 17
++23 20 24 23 20 24 23 20 24 15 22 17 23 20 24 15 22 17 23 20 24 23 20 24
++15 22 17 23 20 24 23 20 24 15 22 17 23 18 22 23 18 22 15 22 17 23 18 22
++23 18 22 23 18 22 14 16 17 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17
++14 16 17 23 18 22 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17 23 18 22
++14 16 17 14 16 17 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 17 12 17
++14 16 17 14 16 17 14 16 17 14 16 17 23 18 22 14 16 17 14 16 17 23 18 22
++14 16 17 14 16 17 23 18 22 14 16 17 14 16 17 23 18 22 12 18 20 23 18 22
++23 18 22 12 18 20 23 18 22 23 18 22 15 22 17 23 20 24 23 20 24 23 20 24
++
++3 4 9 3 3 1 3 4 9 3 4 9 3 4 9 13 4 7 7 12 13 13 4 7
++3 4 9 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 10 17
++13 4 7 7 10 17 13 4 7 7 10 17 3 4 9 3 4 9 3 4 9 13 4 7
++3 4 9 3 4 9 13 4 7 3 4 9 3 4 9 3 4 9 13 4 7 3 4 9
++7 12 13 3 4 9 3 4 9 3 4 9 3 4 9 3 4 9 13 4 7 7 12 13
++14 16 17 15 17 7 15 22 17 22 25 24 23 31 15 32 39 24 32 39 24 32 39 24
++32 39 24 33 39 38 49 74 23 50 61 48 50 61 48 51 73 47 64 70 48 59 79 61
++59 79 61 60 82 70 70 96 55 75 81 69 59 79 61 70 96 55 75 77 62 59 79 61
++59 79 61 51 73 47 51 73 47 50 61 48 50 61 48 43 55 48 49 74 23 35 46 43
++49 74 23 35 46 43 23 30 35 32 39 24 23 31 15 23 30 35 15 22 17 15 22 17
++12 18 20 7 12 13 6 15 6 6 15 6 6 15 6 7 12 13 7 12 13 7 12 13
++13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 3 4 9 13 4 7 3 4 9
++3 4 9 13 4 7 3 3 1 3 4 9 3 4 9 3 4 9 3 4 9 13 4 7
++3 4 9 13 4 7 7 12 13 3 4 9 13 4 7 3 4 9 3 4 9 13 4 7
++7 12 13 13 4 7 7 12 13 13 4 7 17 12 17 17 12 17 17 12 17 23 10 10
++17 12 17 23 10 10 17 12 17 26 12 13 23 18 22 26 12 13 26 25 15 28 13 18
++26 25 15 28 13 18 28 13 18 28 13 18 28 13 18 33 30 30 28 13 18 33 30 30
++34 30 15 26 25 15 49 13 16 33 30 30 34 30 15 33 30 30 34 30 15 52 30 35
++34 30 15 49 13 16 33 30 30 34 30 15 49 13 16 33 30 30 34 30 15 23 20 24
++34 30 15 23 20 24 26 25 15 23 18 22 26 12 13 22 24 13 26 12 13 14 16 17
++17 12 17 17 12 17 17 12 17 7 12 13 7 12 13 17 12 17 7 10 17 7 12 13
++7 10 17 14 16 17 14 16 17 14 16 17 14 16 17 17 12 17 14 16 17 15 22 17
++23 18 22 23 20 24 26 25 15 23 20 24 26 25 15 26 30 28 26 30 28 34 30 15
++33 30 30 32 39 24 33 30 30 33 30 30 47 47 21 36 35 37 33 30 32 47 47 21
++36 35 37 33 30 30 47 47 21 36 35 37 47 47 21 36 35 37 36 35 37 52 30 35
++47 47 21 36 35 37 53 35 37 47 39 42 47 44 42 47 44 42 48 50 48 48 50 48
++59 55 55 59 55 55 54 57 61 59 57 61 54 57 61 59 57 61 54 57 61 63 59 71
++54 57 61 54 57 61 59 57 61 59 57 61 54 57 61 59 57 61 54 57 61 54 57 61
++59 55 55 59 55 55 54 57 61 57 43 64 54 57 61 57 43 64 59 57 61 59 57 61
++63 59 71 65 63 61 60 63 87 59 69 70 75 64 82 60 63 87 75 81 90 60 63 87
++88 69 84 61 78 101 88 69 84 77 91 115 75 81 90 77 91 115 88 69 84 61 78 101
++88 69 84 77 91 115 88 69 84 61 78 101 88 69 84 75 81 90 75 64 82 75 81 90
++75 64 82 75 81 82 75 64 82 75 72 67 75 59 67 75 59 67 65 55 54 65 55 54
++62 47 47 63 55 51 62 47 47 62 47 47 62 47 47 62 47 47 57 43 51 62 47 47
++59 55 55 62 47 47 63 55 51 57 43 51 59 55 55 57 43 51 53 46 48 53 46 48
++48 44 48 48 44 48 48 44 48 48 44 48 48 44 48 47 39 42 47 39 42 47 39 42
++42 38 42 42 38 42 42 38 42 42 38 42 36 35 37 42 38 42 47 44 42 75 63 62
++75 81 69 65 63 61 59 55 55 55 55 48 63 55 51 65 63 61 65 63 61 65 63 61
++55 55 48 51 49 42 51 49 42 51 49 42 55 55 48 63 55 51 64 70 48 65 63 61
++88 73 62 88 83 74 101 83 74 101 83 74 101 83 74 101 83 74 117 114 76 168 102 88
++138 126 108 168 102 88 163 117 123 157 148 53 201 146 124 168 102 88 168 146 127 195 113 123
++157 148 53 201 146 124 168 102 88 177 171 115 201 146 124 201 146 124 168 102 88 168 146 127
++157 148 53 168 102 88 177 171 115 168 102 88 201 146 124 201 146 124 197 171 123 201 146 124
++197 171 123 217 168 156 217 168 156 217 168 156 177 169 143 217 168 156 208 215 180 222 171 182
++208 215 180 189 165 168 112 96 108 48 44 48 36 35 37 43 42 50 43 42 50 48 44 48
++53 46 48 48 44 48 53 46 48 59 55 55 53 46 48 59 55 55 59 55 55 54 57 61
++59 57 61 54 57 61 59 57 61 59 57 61 63 59 71 65 63 61 59 55 55 47 44 42
++32 39 24 33 30 30 22 25 24 33 30 30 26 30 28 26 25 15 14 16 17 23 20 24
++23 20 24 33 30 30 23 20 24 23 18 22 14 16 17 23 18 22 23 20 24 23 20 24
++23 20 24 22 25 24 23 18 22 17 12 17 17 12 17 15 22 17 23 18 22 23 20 24
++23 18 22 23 18 22 23 18 22 23 18 22 23 18 22 23 18 22 23 18 22 17 12 17
++14 16 17 17 12 17 14 16 17 17 12 17 17 12 17 15 17 7 17 12 17 14 16 17
++17 12 17 15 17 7 23 18 22 26 25 15 33 30 30 36 35 37 33 30 30 33 30 30
++26 30 28 34 30 15 36 35 37 32 39 24 33 30 30 22 25 24 22 24 13 23 18 22
++26 25 15 22 24 13 14 16 17 17 12 17 26 12 13 23 18 22 26 30 28 33 30 30
++23 20 24 26 25 15 14 16 17 17 12 17 15 17 7 22 24 13 17 12 17 15 17 7
++17 12 17 22 24 13 22 25 24 34 30 15 22 25 24 26 25 15 26 30 28 33 30 30
++47 44 42 48 50 48 47 44 42 42 41 42 33 30 30 22 25 24 26 25 15 52 30 35
++51 49 42 60 49 42 53 46 48 60 49 42 51 49 42 51 49 42 47 44 42 51 49 42
++47 44 42 47 44 42 55 39 37 51 49 42 47 44 42 51 49 42 47 44 42 55 39 37
++47 44 42 55 39 37 42 41 42 47 47 21 47 44 42 47 39 42 47 47 21 36 35 37
++42 41 42 36 35 37 47 39 42 47 39 42 47 44 42 47 44 42 51 49 42 52 55 48
++53 46 48 48 50 48 57 43 51 59 55 55 59 55 55 65 57 61 65 63 61 59 69 70
++75 64 82 63 59 71 75 64 82 75 81 90 88 69 84 75 81 90 95 91 100 77 90 100
++77 91 115 77 91 115 95 95 116 94 105 108 95 108 128 95 95 116 95 108 128 111 119 127
++95 108 128 95 108 128 95 108 128 111 119 127 95 108 128 111 119 127 95 108 128 111 122 142
++111 119 127 95 108 128 111 119 127 95 108 128 111 119 127 95 108 128 95 108 128 95 108 128
++95 95 116 94 105 108 77 91 115 95 91 100 77 91 115 75 81 90 75 81 90 75 81 90
++75 81 82 60 63 87 59 69 70 59 69 70 46 59 71 54 57 61 45 57 61 45 57 61
++45 57 61 43 42 50 43 42 50 43 42 50 37 35 43 37 35 43 37 35 43 37 35 43
++36 35 37 37 35 43 37 35 43 37 35 43 37 35 43 42 38 42 42 38 42 43 42 50
++43 42 50 48 50 48 43 42 50 48 50 48 48 44 48 48 44 48 48 50 48 48 50 48
++53 46 48 48 50 48 57 43 51 59 55 55 53 46 48 53 46 48 48 44 48 48 44 48
++48 44 48 43 42 50 43 42 50 43 42 50 42 41 42 42 38 42 42 38 42 42 38 42
++42 38 42 36 35 37 36 35 37 33 30 32 36 35 37 33 30 32 36 35 37 33 30 32
++36 35 37 36 35 37 33 30 32 33 30 32 33 30 32 33 30 30 26 30 28 26 24 32
++33 30 30 26 24 32 33 30 30 26 30 28 33 30 30 23 20 24 26 30 28 23 20 24
++33 30 30 22 25 24 26 24 32 23 20 24 26 30 28 23 20 24 26 30 28 22 25 24
++26 30 28 26 24 32 23 20 24 22 25 24 26 24 32 22 25 24 22 25 24 22 25 24
++22 25 24 26 30 28 23 20 24 33 30 30 23 20 24 26 30 28 23 20 24 26 30 28
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 32 36 35 37 36 35 37 42 38 42
++42 41 42 42 41 42 42 47 42 43 42 50 42 47 42 48 44 48 48 50 48 48 50 48
++43 42 50 43 55 48 43 42 50 43 42 50 35 47 50 42 47 42 43 42 50 34 40 43
++34 40 43 37 35 43 33 39 38 28 35 38 33 39 38 33 39 38 31 35 35 33 39 38
++33 39 38 33 39 38 42 41 42 34 40 43 37 35 43 42 41 42 34 40 43 42 47 42
++43 42 50 42 41 42 42 41 42 37 35 43 42 41 42 34 40 43 42 41 42 37 35 43
++36 35 37 31 35 35 33 30 36 30 30 34 30 30 34 26 24 32 22 25 24 22 25 24
++23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24
++23 20 24 23 20 24 15 22 17 23 18 22 12 18 20 23 20 24 15 22 17 23 20 24
++12 18 20 23 20 24 23 20 24 23 20 24 15 22 17 23 20 24 23 20 24 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24
++23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24
++23 20 24 23 20 24 15 22 17 23 18 22 23 18 22 12 18 20 23 20 24 23 20 24
++23 20 24 15 22 17 23 20 24 23 18 22 23 18 22 12 18 20 23 18 22 23 18 22
++12 18 20 23 18 22 14 16 17 23 18 22 14 16 17 14 16 17 14 16 17 14 16 17
++23 18 22 12 18 20 23 18 22 14 16 17 23 18 22 14 16 17 14 16 17 14 16 17
++14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++17 12 17 14 16 17 14 16 17 14 16 17 14 16 17 23 18 22 14 16 17 14 16 17
++14 16 17 23 18 22 12 18 20 23 18 22 23 18 22 23 18 22 15 22 17 23 18 22
++15 22 17 23 18 22 23 18 22 12 18 20 23 18 22 23 20 24 15 22 17 23 20 24
++
++3 4 9 13 4 7 3 4 9 13 4 7 3 4 9 3 4 9 13 4 7 3 4 9
++13 4 7 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7
++7 10 17 3 4 9 3 4 9 13 4 7 7 10 17 13 4 7 3 4 9 3 4 9
++7 12 13 3 4 9 3 4 9 13 4 7 3 4 9 7 10 17 3 4 9 3 4 9
++13 4 7 3 4 9 13 4 7 7 10 17 3 4 9 13 4 7 6 15 6 15 17 7
++15 17 7 14 16 17 15 22 17 23 31 15 25 30 29 32 39 24 32 39 24 32 39 24
++35 46 43 47 47 21 43 55 48 50 61 48 51 73 47 51 73 47 59 79 61 59 79 61
++75 81 69 70 96 55 60 82 70 75 81 69 70 96 55 60 82 70 59 79 61 59 79 61
++64 70 48 53 63 61 64 70 48 50 61 48 50 61 48 43 55 48 43 55 48 35 46 43
++35 46 43 32 39 24 32 39 24 23 31 15 23 30 35 23 31 15 15 22 17 12 18 20
++7 12 13 6 15 6 7 12 13 7 12 13 7 12 13 7 12 13 13 4 7 7 12 13
++7 12 13 7 12 13 13 4 7 7 12 13 3 4 9 7 12 13 3 4 9 13 4 7
++7 12 13 3 4 9 13 4 7 3 4 9 13 4 7 13 4 7 3 4 9 3 4 9
++13 4 7 3 4 9 3 4 9 13 4 7 7 12 13 13 4 7 3 4 9 13 4 7
++7 12 13 7 12 13 13 4 7 17 12 17 7 12 13 17 12 17 17 12 17 13 4 7
++15 17 7 17 12 17 26 12 13 26 12 13 17 12 17 26 12 13 26 25 15 28 13 18
++26 25 15 28 13 18 34 30 15 28 13 18 34 30 15 28 13 18 34 30 15 49 13 16
++28 13 18 33 30 30 34 30 15 28 13 18 34 30 15 49 13 16 33 30 30 34 30 15
++33 30 30 34 30 15 34 30 15 33 30 30 34 30 15 28 13 18 33 30 30 34 30 15
++23 20 24 34 30 15 23 18 22 26 25 15 23 18 22 26 12 13 23 18 22 14 16 17
++17 12 17 7 12 13 7 12 13 17 12 17 7 12 13 14 16 17 7 12 13 17 12 17
++7 12 13 17 12 17 7 10 17 14 16 17 14 16 17 17 12 17 14 16 17 23 18 22
++15 22 17 23 20 24 22 25 24 22 25 24 22 25 24 34 30 15 22 25 24 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 32 39 24 33 30 30
++53 35 17 32 39 24 33 30 30 52 30 35 32 39 24 53 35 37 47 47 21 32 39 24
++52 30 35 47 47 21 36 35 37 47 47 21 42 38 42 47 44 42 48 44 48 48 50 48
++59 55 55 54 57 61 54 57 61 54 57 61 63 59 71 54 57 61 54 57 61 54 57 61
++54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 57 43 51
++45 57 61 57 43 64 48 50 48 54 57 61 54 57 61 54 57 61 59 57 61 63 59 71
++63 59 71 63 59 71 63 59 71 60 63 87 75 64 82 59 69 70 75 81 90 60 63 87
++75 81 90 75 81 90 61 78 101 88 69 84 61 78 101 88 69 84 77 91 115 88 69 84
++77 91 115 75 64 82 75 81 90 88 69 84 61 78 101 88 69 84 61 78 101 75 64 82
++75 64 82 75 64 82 75 72 67 75 64 82 75 59 67 65 63 61 65 57 61 65 55 54
++62 47 47 62 47 47 57 43 51 63 55 51 53 46 48 57 43 51 55 55 48 62 47 47
++53 46 48 62 47 47 53 46 48 59 55 55 53 46 48 53 46 48 53 46 48 53 46 48
++48 44 48 48 44 48 48 44 48 48 44 48 47 39 42 42 38 42 42 38 42 42 38 42
++42 38 42 37 35 43 37 35 43 42 38 42 33 30 32 47 39 42 65 55 54 88 83 74
++75 81 76 65 63 61 55 55 48 55 55 48 59 55 55 64 70 48 65 63 61 65 55 54
++63 55 51 55 55 48 55 55 48 63 55 51 63 55 51 75 73 58 75 72 67 88 73 62
++101 83 74 99 93 84 101 83 74 101 83 74 101 83 74 117 99 86 117 99 86 117 114 76
++168 102 88 157 148 53 138 126 108 168 102 88 168 102 88 157 148 53 201 146 124 157 148 53
++195 113 123 157 148 53 201 146 124 168 102 88 177 171 115 168 102 88 177 171 115 168 102 88
++201 146 124 168 102 88 157 148 53 201 146 124 168 146 127 201 146 124 197 171 123 201 146 124
++217 168 156 177 169 143 197 171 123 177 169 143 217 168 156 208 215 180 217 168 156 208 215 180
++222 171 182 208 215 180 166 156 164 88 83 88 42 38 42 28 30 35 43 42 50 48 44 48
++48 44 48 48 44 48 48 44 48 57 43 51 48 50 48 54 57 61 48 44 48 54 57 61
++57 43 51 54 57 61 59 55 55 54 57 61 59 55 55 59 55 55 48 50 48 42 41 42
++33 30 30 26 25 15 33 30 30 34 30 15 22 25 24 23 18 22 23 18 22 23 18 22
++23 20 24 23 20 24 23 20 24 14 16 17 23 18 22 23 18 22 26 25 15 23 20 24
++26 24 32 23 20 24 14 16 17 14 16 17 23 18 22 23 18 22 23 18 22 22 24 13
++23 18 22 23 20 24 22 25 24 23 18 22 14 16 17 15 17 7 17 12 17 14 16 17
++17 12 17 15 17 7 17 12 17 15 17 7 17 12 17 7 12 13 17 12 17 13 4 7
++15 17 7 23 18 22 26 30 28 36 35 37 47 44 42 47 49 42 36 35 37 32 39 24
++33 30 30 33 30 30 33 30 30 33 30 30 26 25 15 23 18 22 26 25 15 26 30 28
++33 30 30 22 25 24 26 25 15 23 18 22 34 30 15 33 30 32 42 38 42 33 30 30
++33 30 30 22 25 24 23 20 24 26 25 15 23 20 24 26 30 28 26 25 15 23 18 22
++15 17 7 17 12 17 22 24 13 23 18 22 22 24 13 23 18 22 23 18 22 26 25 15
++36 35 37 47 44 42 42 41 42 32 39 24 26 25 15 22 25 24 33 30 30 47 47 21
++47 44 42 60 49 42 53 46 48 53 46 48 55 39 37 47 44 42 51 49 42 47 44 42
++51 49 42 51 49 42 47 44 42 47 44 42 51 49 42 47 44 42 47 44 42 47 44 42
++47 39 42 42 41 42 55 39 37 42 41 42 47 39 42 36 35 37 42 38 42 42 38 42
++36 35 37 55 39 37 42 41 42 47 44 42 48 44 48 53 46 48 53 46 48 53 46 48
++53 46 48 53 46 48 54 57 61 59 55 55 59 55 55 59 55 55 65 57 61 65 63 61
++63 59 71 75 64 82 75 81 76 75 64 82 75 81 90 75 81 90 77 90 100 77 90 100
++95 95 116 77 90 100 95 95 116 95 95 116 94 105 108 95 95 116 95 108 128 94 105 108
++95 108 128 111 119 127 95 108 128 95 108 128 111 119 127 95 108 128 111 119 127 95 108 128
++95 108 128 111 119 127 95 108 128 95 108 128 95 95 116 95 108 128 94 105 108 95 95 116
++95 95 116 95 95 116 95 95 116 77 90 100 77 90 100 75 81 90 61 78 101 75 81 90
++60 63 87 60 81 83 63 59 71 60 63 87 59 69 70 46 59 71 54 57 61 43 42 50
++57 43 64 43 42 50 43 42 50 29 34 50 42 41 42 37 35 43 33 39 38 36 35 37
++28 35 38 36 35 37 36 35 37 36 35 37 37 35 43 36 35 37 37 35 43 37 35 43
++42 38 42 43 42 50 43 42 50 48 44 48 43 42 50 43 42 50 48 44 48 48 44 48
++48 50 48 48 50 48 48 44 48 48 44 48 48 44 48 48 44 48 43 42 50 47 39 42
++43 42 50 43 42 50 43 42 50 42 38 42 42 38 42 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 33 30 32 33 30 32 33 30 32 33 30 30 33 30 30 33 30 30
++33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 33 30 30 33 30 30 26 30 28
++33 30 30 26 30 28 33 30 30 26 24 32 33 30 30 33 30 30 23 20 24 33 30 30
++26 24 32 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30
++23 20 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 26 24 32 23 20 24
++26 24 32 26 30 28 26 24 32 26 30 28 23 20 24 33 30 30 23 20 24 33 30 30
++33 30 30 26 30 28 33 30 30 33 30 30 33 30 32 36 35 37 36 35 37 42 41 42
++42 41 42 42 41 42 47 44 42 47 44 42 48 44 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 43 42 50 43 55 48 43 42 50 43 42 50 35 46 43 34 40 43
++34 40 43 34 40 43 33 39 38 28 35 38 31 35 35 31 35 35 31 35 35 33 39 38
++33 39 38 36 35 37 33 39 38 36 35 37 36 35 37 33 39 38 37 35 43 37 35 43
++34 40 43 37 35 43 37 35 43 34 40 43 37 35 43 34 40 43 34 40 43 36 35 37
++36 35 37 31 35 35 33 30 36 30 30 34 26 24 32 26 30 28 26 30 28 23 20 24
++22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24
++15 22 17 23 20 24 23 18 22 12 18 20 23 18 22 23 20 24 23 20 24 12 18 20
++23 18 22 23 20 24 15 22 17 23 20 24 23 18 22 23 20 24 22 25 24 23 20 24
++15 22 17 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24
++22 25 24 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 15 22 17
++12 18 20 23 20 24 23 20 24 12 18 20 23 18 22 15 22 17 23 20 24 23 20 24
++15 22 17 23 20 24 23 20 24 12 18 20 23 18 22 23 18 22 15 22 17 23 18 22
++15 22 17 23 18 22 12 18 20 14 16 17 17 12 17 23 18 22 14 16 17 14 16 17
++14 16 17 23 18 22 14 16 17 14 16 17 14 16 17 14 16 17 17 12 17 14 16 17
++17 12 17 14 16 17 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 17 12 17
++14 16 17 14 16 17 17 12 17 14 16 17 23 18 22 14 16 17 14 16 17 23 18 22
++23 18 22 12 18 20 23 18 22 15 22 17 12 18 20 14 16 17 23 18 22 12 18 20
++23 18 22 12 18 20 23 18 22 15 22 17 23 18 22 15 22 17 23 20 24 23 20 24
++
++3 4 9 3 3 1 3 4 9 3 4 9 3 4 9 13 4 7 3 4 9 7 12 13
++3 4 9 3 4 9 3 4 9 3 4 9 3 4 9 3 4 9 3 4 9 3 4 9
++13 4 7 7 12 13 13 4 7 7 12 13 3 4 9 3 4 9 7 12 13 13 4 7
++3 4 9 13 4 7 7 12 13 3 4 9 3 4 9 3 4 9 13 4 7 3 4 9
++3 4 9 3 4 9 3 4 9 3 4 9 3 4 9 13 4 7 7 12 13 7 12 13
++14 16 17 7 12 13 15 22 17 22 25 24 23 31 15 29 35 19 35 46 43 32 39 24
++35 46 43 43 55 48 42 47 42 50 61 48 50 61 48 65 63 61 59 79 61 75 81 69
++59 79 61 75 81 69 60 82 70 75 81 69 60 82 70 75 81 69 75 77 62 65 63 61
++59 79 61 59 79 61 51 73 47 50 61 48 51 73 47 43 55 48 43 55 48 35 46 43
++32 39 24 35 46 43 23 30 35 23 30 35 23 31 15 15 22 17 15 22 17 15 22 17
++14 16 17 14 16 17 7 12 13 7 12 13 7 12 13 7 12 13 7 12 13 7 12 13
++13 4 7 7 12 13 7 12 13 3 4 9 13 4 7 3 4 9 3 4 9 3 4 9
++3 4 9 3 4 9 3 4 9 3 4 9 3 4 9 3 4 9 3 4 9 13 4 7
++3 4 9 7 12 13 13 4 7 3 4 9 13 4 7 7 12 13 13 4 7 7 12 13
++17 12 17 17 12 17 7 12 13 17 12 17 17 12 17 17 12 17 13 4 7 17 12 17
++7 12 13 17 12 17 15 22 17 26 12 13 17 12 17 22 24 13 17 12 17 26 12 13
++28 13 18 23 18 22 28 13 18 28 13 18 34 30 15 28 13 18 34 30 15 28 13 18
++34 30 15 28 13 18 34 30 15 52 30 35 34 30 15 33 30 30 33 30 30 49 13 16
++33 30 30 49 13 16 33 30 30 33 30 30 49 13 16 33 30 30 34 30 15 26 25 15
++23 18 22 26 25 15 23 18 22 23 18 22 15 22 17 23 18 22 14 16 17 14 16 17
++15 17 7 17 12 17 17 12 17 7 10 17 17 12 17 7 12 13 7 10 17 14 16 17
++7 10 17 7 12 13 7 12 13 7 10 17 14 16 17 17 12 17 14 16 17 14 16 17
++23 18 22 23 20 24 23 18 22 23 20 24 23 20 24 26 30 28 26 25 15 26 25 15
++34 30 15 33 30 30 53 35 17 33 30 30 33 30 30 32 39 24 52 30 35 36 35 37
++33 30 30 36 35 37 53 35 17 36 35 37 47 47 21 33 30 30 33 30 32 47 47 21
++36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 47 44 42 51 49 42 48 50 48
++48 50 48 48 44 48 54 57 61 57 43 64 54 57 61 54 57 61 46 59 71 54 57 61
++54 57 61 57 43 64 54 57 61 54 57 61 57 43 64 45 57 61 57 43 64 54 57 61
++48 50 48 54 57 61 57 43 64 48 50 48 57 43 64 54 57 61 57 43 64 54 57 61
++63 59 71 63 59 71 75 64 82 59 69 70 60 63 87 60 63 87 75 64 82 75 81 90
++75 64 82 77 91 115 88 69 84 61 78 101 88 83 88 61 78 101 88 69 84 61 78 101
++88 69 84 77 90 100 75 81 90 75 81 90 75 64 82 75 81 90 75 64 82 75 64 82
++75 64 82 59 69 70 75 72 67 63 59 71 75 59 67 65 57 61 65 55 54 57 43 51
++59 55 55 53 46 48 62 47 47 53 46 48 53 46 48 62 47 47 53 46 48 53 46 48
++53 46 48 62 47 47 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 48 44 48
++48 44 48 47 39 42 47 39 42 47 39 42 42 38 42 42 38 42 42 38 42 42 38 42
++37 35 43 36 35 37 36 35 37 36 35 37 33 30 30 48 44 48 75 72 67 88 83 74
++88 83 74 65 63 61 63 55 51 55 55 48 55 55 48 59 55 55 65 63 61 64 70 48
++63 55 45 63 55 51 63 55 45 63 55 51 75 73 58 88 73 62 99 93 84 101 83 74
++101 83 74 101 83 74 101 83 74 117 99 86 117 99 86 117 114 76 138 126 108 168 102 88
++117 114 76 138 126 108 168 102 88 177 171 115 168 102 88 146 150 115 168 102 88 168 102 88
++201 146 124 168 102 88 177 171 115 168 102 88 201 146 124 157 148 53 201 146 124 168 102 88
++157 148 53 168 146 127 168 102 88 168 102 88 157 148 53 201 146 124 201 146 124 217 168 156
++197 171 123 217 168 156 177 169 143 217 168 156 217 168 156 217 168 156 217 168 156 208 215 180
++222 171 182 208 215 180 189 165 168 138 126 108 59 57 61 26 24 32 43 42 50 43 42 50
++48 44 48 43 42 50 48 44 48 53 46 48 53 46 48 48 44 48 53 46 48 53 46 48
++57 43 64 48 50 48 48 50 48 53 46 48 48 50 48 59 55 55 53 46 48 47 39 42
++32 39 24 33 30 30 26 30 28 26 30 28 22 25 24 23 20 24 14 16 17 14 16 17
++23 18 22 23 18 22 23 18 22 14 16 17 15 22 17 23 20 24 22 25 24 22 25 24
++22 25 24 23 20 24 23 18 22 22 24 13 17 12 17 15 22 17 22 25 24 23 20 24
++23 18 22 22 24 13 17 12 17 15 17 7 17 12 17 7 12 13 17 12 17 15 17 7
++14 16 17 14 16 17 14 16 17 17 12 17 14 16 17 15 17 7 14 16 17 15 17 7
++14 16 17 22 24 13 33 30 30 32 39 24 53 35 37 32 39 24 33 30 30 33 30 30
++32 39 24 42 38 42 32 39 24 22 25 24 26 25 15 17 12 17 28 13 18 34 30 15
++34 30 15 52 30 35 32 39 24 52 30 35 51 49 42 63 55 51 63 55 45 60 49 42
++33 30 30 33 30 30 26 25 15 22 25 24 26 25 15 33 30 30 33 30 30 22 25 24
++22 24 13 14 16 17 22 24 13 23 18 22 15 22 17 26 25 15 22 25 24 26 30 28
++33 30 30 33 30 30 33 30 30 22 24 13 17 12 17 34 30 15 33 30 30 47 39 42
++51 49 42 53 46 48 51 49 42 51 49 42 51 49 42 51 49 42 51 49 42 51 49 42
++47 44 42 51 49 42 51 49 42 47 44 42 51 49 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 42 41 42 47 44 42 47 44 42 47 44 42 47 39 42 47 39 42
++42 41 42 42 41 42 47 44 42 48 44 48 47 44 42 48 44 48 48 44 48 53 46 48
++48 50 48 53 46 48 57 43 51 59 55 55 57 43 51 59 55 55 59 57 61 63 59 71
++75 72 67 59 69 70 75 64 82 75 64 82 75 81 90 75 81 90 75 81 90 75 81 90
++77 90 100 94 105 108 77 90 100 77 91 115 95 95 116 95 95 116 94 105 108 95 95 116
++95 108 128 95 95 116 95 108 128 95 108 128 95 108 128 95 108 128 95 95 116 111 119 127
++95 108 128 95 108 128 95 108 128 94 105 108 95 108 128 94 105 108 95 95 116 95 95 116
++95 95 116 77 91 115 77 90 100 95 91 100 77 91 115 75 81 90 75 81 90 75 64 82
++60 81 83 75 64 82 59 69 70 63 59 71 46 59 71 57 43 64 45 57 61 48 50 48
++45 57 61 43 42 50 43 42 50 43 42 50 34 40 43 37 35 43 28 35 38 36 35 37
++33 30 36 33 30 36 36 35 37 37 35 43 36 35 37 36 35 37 37 35 43 37 35 43
++42 38 42 42 41 42 43 42 50 43 42 50 48 44 48 43 42 50 43 42 50 43 42 50
++43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 47 39 42 42 38 42
++42 38 42 42 38 42 36 35 37 37 35 43 36 35 37 36 35 37 36 35 37 33 30 36
++33 30 36 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 23 20 24 33 30 30 33 30 30
++26 25 15 33 30 30 26 30 28 33 30 30 23 20 24 33 30 30 22 25 24 33 30 30
++22 25 24 33 30 30 22 25 24 22 25 24 23 20 24 26 24 32 22 25 24 23 20 24
++22 25 24 23 20 24 33 30 30 23 20 24 33 30 30 26 24 32 26 30 28 33 30 30
++26 24 32 33 30 30 26 24 32 30 30 34 33 30 32 33 30 36 36 35 37 42 38 42
++42 38 42 42 41 42 48 44 48 43 42 50 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 35 47 50 43 42 50 43 42 50 34 40 43
++34 40 43 33 39 38 37 35 43 28 35 38 30 30 34 31 35 35 31 35 35 31 35 35
++36 35 37 33 39 38 36 35 37 36 35 37 31 35 35 36 35 37 33 39 38 36 35 37
++36 35 37 33 39 38 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 31 35 35
++31 35 35 33 30 32 33 30 32 31 35 35 26 24 32 26 30 28 23 20 24 26 30 28
++22 25 24 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24
++23 18 22 15 22 17 23 18 22 23 18 22 15 22 17 23 18 22 14 16 17 23 18 22
++23 18 22 23 18 22 23 18 22 23 18 22 15 22 17 23 18 22 15 22 17 22 25 24
++23 20 24 15 22 17 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 15 22 17 23 20 24 15 22 17 22 25 24 23 20 24 23 20 24
++23 20 24 23 20 24 12 18 20 22 25 24 23 20 24 23 20 24 23 20 24 15 22 17
++23 20 24 23 18 22 23 18 22 23 18 22 23 18 22 23 18 22 23 18 22 15 22 17
++23 18 22 14 16 17 23 18 22 23 18 22 23 18 22 14 16 17 23 18 22 14 16 17
++23 18 22 14 16 17 23 18 22 14 16 17 23 18 22 14 16 17 23 18 22 14 16 17
++17 12 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 23 18 22 23 20 24 15 22 17
++14 16 17 14 16 17 23 18 22 12 18 20 23 18 22 23 18 22 12 18 20 15 22 17
++23 18 22 23 18 22 12 18 20 23 20 24 23 20 24 23 20 24 23 18 22 23 18 22
++
++3 4 9 3 3 1 13 4 7 3 4 9 13 4 7 3 4 9 13 4 7 3 4 9
++13 4 7 3 4 9 13 4 7 3 4 9 13 4 7 3 4 9 13 4 7 3 4 9
++13 4 7 3 4 9 7 12 13 3 4 9 13 4 7 7 12 13 3 4 9 3 4 9
++6 15 6 3 4 9 3 4 9 13 4 7 3 4 9 3 4 9 3 4 9 3 4 9
++13 4 7 3 4 9 3 4 9 13 4 7 3 4 9 7 12 13 7 12 13 15 17 7
++14 16 17 15 17 7 15 22 17 22 25 24 25 30 29 25 30 29 32 39 24 35 46 43
++35 46 43 43 55 48 47 49 42 51 73 47 50 61 48 59 79 61 59 69 70 75 81 69
++60 82 70 75 81 69 75 81 69 75 81 69 75 81 69 60 82 70 60 82 70 59 79 61
++65 63 61 53 63 61 53 63 61 51 73 47 50 61 48 43 55 48 43 55 48 43 55 48
++35 46 43 32 39 24 32 39 24 23 30 35 23 31 15 12 18 30 15 22 17 15 22 17
++7 12 13 14 16 17 14 16 17 17 12 17 7 12 13 7 10 17 7 10 17 13 4 7
++7 12 13 7 12 13 13 4 7 3 4 9 3 4 9 3 4 9 3 4 9 3 4 9
++3 4 9 13 4 7 3 4 9 3 4 9 13 4 7 3 4 9 13 4 7 3 4 9
++13 4 7 3 4 9 13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 17 12 17
++13 4 7 7 12 13 17 12 17 17 12 17 7 12 13 7 12 13 7 12 13 7 12 13
++17 12 17 17 12 17 26 12 13 14 16 17 26 12 13 26 12 13 23 18 22 17 12 17
++26 25 15 28 13 18 23 18 22 28 13 18 28 13 18 33 30 30 28 13 18 34 30 15
++33 30 30 34 30 15 33 30 30 34 30 15 33 30 30 52 30 15 34 30 15 33 30 30
++33 30 30 33 30 30 34 30 15 33 30 30 28 13 18 34 30 15 28 13 18 23 20 24
++34 30 15 23 18 22 22 24 13 23 18 22 23 18 22 15 22 17 14 16 17 17 12 17
++14 16 17 7 12 13 17 12 17 7 10 17 7 10 17 7 10 17 17 12 17 7 12 13
++17 12 17 7 12 13 7 10 17 17 12 17 17 12 17 12 18 20 17 12 17 12 18 20
++17 12 17 23 18 22 23 18 22 22 25 24 23 20 24 23 20 24 34 30 15 26 24 32
++26 25 15 33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 32 39 24
++33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 32 39 24 52 30 35 36 35 37
++36 35 37 47 47 21 36 35 37 47 47 21 36 35 37 47 44 42 47 44 42 48 50 48
++59 55 55 54 57 61 57 43 64 45 57 61 57 43 64 45 57 61 57 43 64 45 57 61
++57 43 64 45 57 61 54 57 61 45 57 61 48 50 48 45 57 61 54 57 61 43 42 50
++57 43 64 45 57 61 48 50 48 54 57 61 57 43 64 54 57 61 54 57 61 63 59 71
++63 59 71 63 59 71 60 63 87 63 59 71 75 64 82 60 63 87 75 64 82 60 63 87
++75 81 90 75 64 82 75 81 90 75 81 90 88 69 84 61 78 101 88 69 84 77 91 115
++88 69 84 61 78 101 88 69 84 75 81 90 75 64 82 75 81 90 75 64 82 75 64 82
++75 81 76 75 72 67 63 59 71 75 72 67 65 57 61 65 57 61 65 57 61 59 55 55
++57 43 51 53 46 48 53 46 48 51 49 42 60 49 42 53 46 48 51 49 42 53 46 48
++62 47 47 53 46 48 53 46 48 51 49 42 47 44 42 47 44 42 47 39 42 47 39 42
++47 39 42 47 39 42 42 41 42 42 41 42 42 38 42 42 38 42 42 38 42 36 35 37
++36 35 37 36 35 37 36 35 37 33 30 30 33 30 32 59 55 55 88 83 74 75 81 76
++65 63 61 63 55 51 55 55 48 55 55 48 55 55 48 59 55 55 65 63 61 63 55 51
++59 55 55 64 70 48 65 63 61 75 73 58 88 83 74 101 83 74 117 99 86 117 99 86
++117 99 86 117 99 86 117 114 76 117 99 86 117 99 86 168 102 88 117 114 76 117 114 76
++168 102 88 138 126 108 168 102 88 157 148 53 168 102 88 157 148 53 201 146 124 157 148 53
++168 146 127 168 102 88 157 148 53 168 102 88 201 146 124 168 102 88 201 146 124 157 148 53
++195 113 123 168 102 88 177 171 115 168 102 88 201 146 124 168 102 88 177 171 115 201 146 124
++217 168 156 197 171 123 217 168 156 197 171 123 177 169 143 208 215 180 217 168 156 208 215 180
++217 168 156 208 215 180 189 165 168 150 144 154 88 69 84 30 30 34 37 35 43 42 38 42
++43 42 50 48 50 48 48 44 48 48 44 48 43 42 50 48 44 48 48 44 48 57 43 51
++48 50 48 48 50 48 57 43 64 52 55 48 53 46 48 59 55 55 48 50 48 42 41 42
++36 35 37 33 30 30 26 25 15 23 20 24 26 25 15 23 18 22 23 18 22 14 16 17
++14 16 17 14 16 17 14 16 17 17 12 17 23 20 24 23 18 22 22 25 24 22 25 24
++23 20 24 23 20 24 23 20 24 23 18 22 23 18 22 15 22 17 23 20 24 23 18 22
++15 22 17 14 16 17 14 16 17 23 18 22 17 12 17 23 18 22 15 17 7 14 16 17
++17 12 17 22 24 13 23 18 22 15 22 17 23 18 22 14 16 17 14 16 17 14 16 17
++15 17 7 22 24 13 22 25 24 33 30 30 32 39 24 34 30 15 34 30 15 33 30 30
++53 35 37 36 35 37 26 25 15 17 12 17 17 12 17 26 12 13 23 18 22 23 20 24
++33 30 30 55 39 37 55 39 37 63 55 45 75 73 58 101 83 74 101 83 74 75 73 58
++60 49 42 52 30 35 33 30 30 33 30 30 26 30 28 33 30 30 32 39 24 22 25 24
++22 24 13 17 12 17 15 17 7 14 16 17 22 24 13 23 20 24 33 30 30 32 39 24
++33 30 30 26 25 15 22 24 13 15 17 7 22 24 13 33 30 30 47 39 42 51 49 42
++52 55 48 51 49 42 51 49 42 47 44 42 53 46 48 51 49 42 51 49 42 51 49 42
++53 46 48 51 49 42 53 46 48 51 49 42 47 44 42 47 44 42 51 49 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 39 42 42 41 42 42 38 42 47 44 42 42 41 42
++42 41 42 47 44 42 48 44 48 48 44 48 51 49 42 48 44 48 48 44 48 48 44 48
++53 46 48 57 43 51 54 57 61 53 46 48 59 55 55 55 55 48 59 55 55 59 57 61
++63 59 71 63 59 71 75 72 67 59 69 70 75 64 82 75 81 90 75 64 82 77 90 100
++75 81 90 77 90 100 77 90 100 95 91 100 77 90 100 77 91 115 95 95 116 95 95 116
++94 105 108 95 95 116 94 105 108 95 95 116 95 95 116 94 105 108 95 108 128 94 105 108
++95 95 116 95 95 116 95 95 116 95 95 116 94 105 108 95 95 116 95 95 116 95 95 116
++95 95 116 77 90 100 77 90 100 77 90 100 75 81 90 75 81 90 75 64 82 61 78 101
++75 64 82 59 69 70 60 63 87 63 59 71 63 59 71 45 57 61 45 57 61 43 42 50
++43 42 50 45 57 61 43 42 50 35 47 50 37 35 43 36 35 37 36 35 37 33 30 36
++36 35 37 33 30 36 33 30 36 33 30 36 36 35 37 37 35 43 37 35 43 37 35 43
++37 35 43 42 38 42 37 35 43 42 38 42 43 42 50 42 41 42 43 42 50 43 42 50
++47 39 42 43 42 50 42 38 42 37 35 43 42 38 42 42 38 42 42 38 42 42 38 42
++36 35 37 36 35 37 36 35 37 36 35 37 33 30 36 33 30 36 33 30 36 33 30 32
++33 30 32 33 30 30 26 30 28 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 34 30 15 33 30 30
++33 30 30 23 20 24 33 30 30 34 30 15 33 30 30 23 20 24 33 30 30 23 20 24
++33 30 30 23 20 24 22 25 24 22 25 24 23 20 24 22 23 31 23 20 24 26 24 32
++22 25 24 22 25 24 26 24 32 22 25 24 26 24 32 22 25 24 33 30 30 26 24 32
++33 30 30 30 30 34 26 30 28 33 30 30 30 30 34 33 30 36 36 35 37 42 38 42
++42 38 42 42 41 42 42 47 42 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++45 57 61 48 44 48 43 42 50 43 42 50 43 42 50 43 55 48 34 40 43 34 40 43
++34 40 43 34 40 43 33 39 38 33 39 38 31 35 35 33 30 36 33 30 36 30 30 34
++33 30 36 31 35 35 31 35 35 30 30 34 31 35 35 31 35 35 36 35 37 36 35 37
++36 35 37 36 35 37 31 35 35 36 35 37 31 35 35 31 35 35 31 35 35 33 30 30
++33 30 30 33 30 30 33 30 32 31 35 35 26 30 28 23 20 24 26 30 28 23 20 24
++26 30 28 26 30 28 26 30 28 23 20 24 22 25 24 22 25 24 23 18 22 23 18 22
++23 18 22 23 18 22 15 22 17 23 20 24 23 18 22 14 16 17 23 18 22 23 18 22
++15 22 17 23 18 22 15 22 17 23 18 22 22 25 24 23 20 24 23 20 24 15 22 17
++22 25 24 22 25 24 22 25 24 15 22 17 23 20 24 15 22 17 22 25 24 23 18 22
++15 22 17 22 24 13 23 20 24 15 22 17 23 20 24 22 25 24 15 22 17 12 18 20
++23 20 24 15 22 17 23 20 24 23 20 24 23 20 24 23 20 24 15 22 17 23 20 24
++23 18 22 12 18 20 23 20 24 23 18 22 23 18 22 23 18 22 23 18 22 22 24 13
++23 18 22 15 22 17 23 18 22 15 22 17 23 18 22 15 22 17 23 18 22 17 12 17
++14 16 17 23 18 22 17 12 17 14 16 17 17 12 17 17 12 17 17 12 17 12 18 20
++17 12 17 14 16 17 14 16 17 14 16 17 17 12 17 23 18 22 14 16 17 17 12 17
++14 16 17 14 16 17 14 16 17 23 18 22 14 16 17 15 22 17 12 18 20 23 18 22
++14 16 17 14 16 17 23 18 22 12 18 20 12 18 20 23 20 24 12 18 20 23 18 22
++23 18 22 15 22 17 23 18 22 23 20 24 15 22 17 23 18 22 23 20 24 23 20 24
++
++3 3 1 3 4 9 3 4 9 3 3 1 3 4 9 3 4 9 3 4 9 13 4 7
++3 4 9 13 4 7 3 4 9 13 4 7 3 4 9 3 4 9 13 4 7 3 4 9
++7 12 13 13 4 7 13 4 7 7 12 13 3 4 9 3 4 9 13 4 7 7 12 13
++13 4 7 3 4 9 13 4 7 3 4 9 3 4 9 6 15 6 3 4 9 7 12 13
++3 4 9 3 4 9 3 4 9 3 4 9 13 4 7 3 4 9 15 17 7 7 12 13
++7 12 13 14 16 17 15 22 17 22 25 24 22 25 24 32 39 24 32 39 24 35 46 43
++47 47 21 43 55 48 42 47 42 50 61 48 50 61 48 53 63 61 59 79 61 75 81 69
++60 82 70 75 81 69 60 82 70 75 99 72 75 81 76 75 81 69 75 77 62 59 79 61
++59 79 61 64 70 48 53 63 61 50 61 48 50 61 48 50 61 48 50 61 48 35 46 43
++32 39 24 35 46 43 23 30 35 23 31 15 23 30 35 23 31 15 15 22 17 12 18 20
++14 16 17 14 16 17 14 16 17 7 12 13 17 12 17 17 12 17 7 12 13 7 12 13
++7 12 13 13 4 7 7 12 13 7 10 17 13 4 7 3 4 9 3 4 9 13 4 7
++3 4 9 3 4 9 3 4 9 3 4 9 3 4 9 3 3 1 3 4 9 3 4 9
++3 4 9 13 4 7 3 4 9 3 4 9 13 4 7 7 12 13 13 4 7 7 12 13
++7 12 13 17 12 17 17 12 17 7 12 13 17 12 17 17 12 17 13 4 7 17 12 17
++15 17 7 17 12 17 14 16 17 26 12 13 17 12 17 15 22 17 26 12 13 23 18 22
++26 12 13 28 13 18 28 13 18 34 30 15 28 13 18 34 30 15 28 13 18 33 30 30
++49 13 16 28 13 18 34 30 15 33 30 30 49 13 16 33 30 30 33 30 30 34 30 15
++33 30 30 52 30 15 33 30 30 34 30 15 33 30 30 28 13 18 33 30 30 34 30 15
++23 18 22 26 25 15 23 18 22 23 18 22 23 18 22 23 18 22 14 16 17 14 16 17
++14 16 17 17 12 17 14 16 17 17 12 17 17 12 17 7 12 13 7 10 17 14 16 17
++7 10 17 17 12 17 7 12 13 7 12 13 7 10 17 7 10 17 17 12 17 12 18 20
++17 12 17 12 18 20 23 18 22 26 25 15 23 20 24 23 20 24 26 25 15 23 20 24
++34 30 15 23 20 24 34 30 15 33 30 30 34 30 15 33 30 30 33 30 30 34 30 15
++33 30 30 32 39 24 52 30 35 32 39 24 33 30 30 32 39 24 36 35 37 53 35 17
++36 35 37 33 30 30 36 35 37 33 30 30 47 39 42 47 44 42 48 44 48 48 50 48
++48 50 48 48 50 48 54 57 61 48 44 48 45 57 61 57 43 64 45 57 61 48 50 48
++45 57 61 53 46 48 45 57 61 57 43 64 45 57 61 48 44 48 45 57 61 57 43 64
++45 57 61 43 42 50 57 43 51 45 57 61 43 42 50 54 57 61 57 43 64 54 57 61
++63 59 71 63 59 71 63 59 71 60 63 87 59 69 70 75 64 82 60 63 87 75 64 82
++75 81 90 75 64 82 61 78 101 75 64 82 61 78 101 88 69 84 61 78 101 75 64 82
++77 90 100 88 69 84 75 81 90 75 64 82 75 81 90 75 64 82 75 81 90 75 64 82
++59 69 70 75 64 82 59 69 70 75 59 67 63 59 71 65 57 61 59 55 55 57 43 51
++53 46 48 53 46 48 53 46 48 55 39 37 47 39 42 51 49 42 55 39 37 53 46 48
++47 44 42 53 46 48 47 44 42 53 46 48 47 44 42 47 44 42 47 39 42 47 39 42
++47 39 42 47 39 42 42 38 42 42 38 42 42 38 42 42 38 42 42 38 42 36 35 37
++36 35 37 36 35 37 33 30 30 33 30 30 42 38 42 65 63 61 88 83 74 75 63 62
++55 55 48 55 55 48 55 55 48 59 55 55 63 55 51 65 63 61 65 63 61 63 55 51
++64 70 48 75 63 62 75 73 58 88 83 74 101 83 74 101 83 74 99 93 84 117 99 86
++117 114 76 117 99 86 117 99 86 138 102 108 117 114 76 117 99 86 117 114 76 168 102 88
++117 114 76 168 102 88 138 126 108 168 102 88 146 150 115 168 102 88 168 102 88 201 146 124
++168 102 88 157 148 53 195 113 123 157 148 53 168 102 88 177 171 115 168 102 88 201 146 124
++201 146 124 197 171 123 168 102 88 177 171 115 168 102 88 168 146 127 201 146 124 168 146 127
++197 171 123 217 168 156 177 169 143 217 168 156 197 171 123 217 168 156 177 169 143 217 168 156
++217 168 156 189 165 168 222 171 182 177 169 143 95 91 100 42 38 42 36 35 37 37 35 43
++43 42 50 43 42 50 43 42 50 48 44 48 43 42 50 48 44 48 48 44 48 48 44 48
++48 44 48 48 50 48 48 50 48 48 50 48 54 57 61 53 46 48 47 44 42 47 39 42
++32 39 24 33 30 30 22 25 24 23 18 22 22 25 24 23 18 22 14 16 17 23 18 22
++23 18 22 23 18 22 17 12 17 15 22 17 23 18 22 22 24 13 23 18 22 23 20 24
++23 20 24 23 20 24 26 25 15 23 18 22 23 18 22 23 18 22 23 18 22 15 22 17
++17 12 17 22 24 13 17 12 17 22 24 13 23 18 22 23 18 22 23 18 22 14 16 17
++15 22 17 14 16 17 23 18 22 23 18 22 26 25 15 23 18 22 22 24 13 15 22 17
++26 12 13 23 18 22 26 25 15 34 30 15 34 30 15 34 30 15 33 30 30 47 44 42
++42 41 42 33 30 30 26 25 15 15 17 7 22 24 13 28 13 18 28 13 18 34 30 15
++47 47 21 60 49 42 63 55 45 88 73 62 99 93 84 117 99 86 117 99 86 88 83 74
++63 55 45 51 49 42 55 39 37 36 35 37 34 30 15 33 30 30 33 30 30 22 25 24
++22 24 13 15 17 7 14 16 17 14 16 17 23 18 22 22 24 13 33 30 30 33 30 32
++26 25 15 14 16 17 17 12 17 15 17 7 28 13 18 32 39 24 47 44 42 55 55 48
++55 55 48 53 46 48 51 49 42 53 46 48 51 49 42 51 49 42 51 49 42 51 49 42
++51 49 42 51 49 42 51 49 42 47 44 42 51 49 42 47 44 42 48 44 48 48 44 48
++47 44 42 47 44 42 47 44 42 42 41 42 47 39 42 42 41 42 47 39 42 42 41 42
++42 41 42 47 44 42 47 44 42 48 44 48 48 44 48 47 44 42 48 44 48 48 44 48
++48 44 48 48 50 48 53 46 48 59 55 55 59 55 55 59 55 55 59 55 55 59 57 61
++63 59 71 63 59 71 59 69 70 75 64 82 59 69 70 75 64 82 61 78 101 75 64 82
++75 81 90 75 81 90 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100
++77 91 115 77 90 100 95 95 116 95 95 116 95 95 116 94 105 108 95 95 116 94 105 108
++95 95 116 95 95 116 94 105 108 95 95 116 94 105 108 77 91 115 95 91 100 77 91 115
++77 90 100 77 90 100 75 81 90 75 81 90 61 78 101 75 64 82 75 81 90 60 63 87
++75 64 82 59 69 70 63 59 71 46 59 71 54 57 61 46 59 71 48 44 48 45 57 61
++43 42 50 43 42 50 43 42 50 43 42 50 37 35 43 33 39 38 37 35 43 28 35 38
++37 35 43 33 30 36 31 35 35 33 30 36 36 35 37 36 35 37 37 35 43 37 35 43
++36 35 37 37 35 43 37 35 43 36 35 37 37 35 43 42 38 42 37 35 43 42 38 42
++42 38 42 42 38 42 37 35 43 37 35 43 37 35 43 36 35 37 37 35 43 36 35 37
++36 35 37 33 30 36 36 35 37 33 30 36 33 30 36 33 30 36 33 30 32 33 30 32
++33 30 32 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 26 24 32 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 26 25 15 33 30 30 33 30 30 33 30 30
++23 20 24 26 30 28 26 30 28 22 25 24 26 24 32 22 25 24 26 24 32 22 25 24
++26 24 32 23 20 24 22 25 24 23 20 24 33 30 30 26 24 32 26 24 32 33 30 30
++26 24 32 33 30 30 26 24 32 30 30 34 33 30 32 36 35 37 36 35 37 42 38 42
++42 38 42 47 44 42 43 42 50 48 44 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 43 55 48 43 42 50 43 42 50 35 46 43
++34 40 43 34 40 43 37 35 43 33 39 38 31 35 35 31 35 35 31 35 35 31 35 35
++30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 31 35 35 33 30 36 31 35 35
++33 30 36 31 35 35 31 35 35 31 35 35 33 30 32 31 35 35 33 30 30 31 35 35
++33 30 30 33 30 30 33 30 30 33 30 32 26 24 32 26 30 28 22 25 24 33 30 30
++22 25 24 23 20 24 22 25 24 26 30 28 23 20 24 22 25 24 22 25 24 22 25 24
++23 18 22 23 18 22 23 18 22 23 20 24 15 22 17 23 18 22 14 16 17 23 18 22
++23 18 22 23 18 22 23 18 22 23 18 22 22 25 24 23 18 22 22 25 24 23 20 24
++15 22 17 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 22 24 13 22 25 24 22 25 24 15 22 17 23 18 22 23 20 24
++15 22 17 23 20 24 12 18 20 23 20 24 15 22 17 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 18 22 15 22 17 23 18 22
++15 22 17 23 18 22 23 18 22 23 18 22 23 18 22 23 18 22 14 16 17 23 18 22
++17 12 17 14 16 17 23 18 22 14 16 17 17 12 17 14 16 17 23 18 22 17 12 17
++14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++14 16 17 23 18 22 14 16 17 14 16 17 23 18 22 12 18 20 23 18 22 12 18 20
++14 16 17 23 18 22 14 16 17 12 18 20 23 20 24 12 18 20 23 20 24 12 18 20
++23 18 22 12 18 20 23 20 24 15 22 17 23 20 24 23 18 22 23 20 24 23 20 24
++
++3 4 9 13 4 7 13 4 7 3 4 9 13 4 7 3 4 9 13 4 7 3 4 9
++3 4 9 7 12 13 13 4 7 3 4 9 13 4 7 3 4 9 7 12 13 13 4 7
++13 4 7 7 12 13 3 4 9 7 12 13 13 4 7 7 12 13 3 4 9 3 4 9
++3 4 9 7 12 13 3 4 9 6 15 6 3 4 9 13 4 7 3 4 9 3 4 9
++13 4 7 3 4 9 3 4 9 3 3 1 13 4 7 6 15 6 7 12 13 7 12 13
++14 16 17 14 16 17 15 22 17 22 25 24 25 30 29 28 35 38 28 35 38 35 46 43
++35 46 43 43 55 48 50 61 48 50 61 48 53 63 61 59 79 61 59 69 70 60 82 70
++75 81 69 60 82 70 75 81 69 75 81 76 60 82 70 60 82 70 59 69 70 65 63 61
++65 63 61 53 63 61 53 63 61 53 63 61 50 61 48 43 55 48 43 55 48 35 46 43
++35 46 43 35 46 43 32 39 24 23 30 35 23 31 15 15 22 17 12 18 30 15 22 17
++7 12 13 14 16 17 17 12 17 14 16 17 7 12 13 7 12 13 7 10 17 7 12 13
++7 12 13 3 4 9 7 12 13 13 4 7 3 4 9 7 12 13 3 4 9 3 4 9
++13 4 7 7 10 17 13 4 7 3 4 9 13 4 7 3 4 9 13 4 7 13 4 7
++7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 17 12 17 7 12 13
++17 12 17 7 12 13 14 16 17 17 12 17 17 12 17 17 12 17 17 12 17 17 12 17
++14 16 17 17 12 17 26 12 13 23 18 22 23 18 22 26 12 13 17 12 17 22 24 13
++26 12 13 23 18 22 28 13 18 26 25 15 26 25 15 33 30 30 34 30 15 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 34 30 15 23 20 24 26 25 15
++23 20 24 26 25 15 22 24 13 23 18 22 22 24 13 15 22 17 23 18 22 14 16 17
++17 12 17 14 16 17 17 12 17 14 16 17 7 10 17 17 12 17 7 12 13 7 12 13
++17 12 17 7 12 13 7 12 13 7 12 13 17 12 17 7 10 17 17 12 17 17 12 17
++12 18 20 17 12 17 23 18 22 23 20 24 23 20 24 26 25 15 28 13 18 26 25 15
++33 30 30 33 30 30 26 25 15 33 30 30 34 30 15 33 30 30 52 30 15 33 30 32
++52 30 35 33 30 30 34 30 15 33 30 30 53 35 17 36 35 37 52 30 35 32 39 24
++36 35 37 53 35 17 36 35 37 47 47 21 42 38 42 47 39 42 47 44 42 47 49 42
++48 50 48 53 46 48 57 43 64 48 50 48 45 57 61 43 42 50 45 57 61 57 43 64
++45 57 61 48 44 48 57 43 64 43 42 50 43 42 50 57 43 64 48 50 48 48 44 48
++48 50 48 57 43 64 45 57 61 43 42 50 57 43 64 54 57 61 54 57 61 63 59 71
++63 59 71 63 59 71 60 63 87 63 59 71 63 59 71 60 63 87 75 64 82 60 63 87
++75 64 82 60 63 87 75 64 82 75 64 82 75 81 90 75 64 82 75 64 82 75 81 90
++75 64 82 61 78 101 75 64 82 75 81 90 75 64 82 75 64 82 75 64 82 75 64 82
++75 64 82 75 72 67 63 59 71 65 63 61 65 57 61 65 57 61 63 55 51 53 46 48
++60 49 42 51 49 42 55 39 37 47 44 42 55 39 37 47 39 42 47 44 42 55 39 37
++47 39 42 47 39 42 55 39 37 47 39 42 47 39 42 47 39 42 47 39 42 47 39 42
++42 38 42 36 35 37 36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 33 30 30 33 30 30 47 44 42 65 55 54 65 63 61 55 55 48
++51 49 42 53 46 48 55 55 48 65 55 54 65 63 61 64 70 48 64 70 48 63 55 51
++75 73 58 88 73 62 88 73 62 88 83 74 88 83 74 117 99 86 117 99 86 117 99 86
++138 102 108 138 126 108 117 127 86 138 102 108 117 114 76 168 102 88 117 99 86 117 114 76
++138 126 108 157 148 53 168 102 88 138 126 108 168 102 88 157 148 53 168 146 127 157 148 53
++168 102 88 168 146 127 168 102 88 177 171 115 201 146 124 168 102 88 177 171 115 168 146 127
++201 146 124 177 171 115 201 146 124 197 171 123 197 171 123 201 146 124 201 146 124 201 146 124
++201 146 124 197 171 123 217 168 156 217 168 156 177 169 143 197 171 123 197 171 123 177 169 143
++177 171 115 217 168 156 208 215 180 188 180 202 138 126 108 48 50 48 33 30 36 37 35 43
++43 42 50 43 42 50 42 41 42 43 42 50 48 44 48 48 44 48 57 43 64 48 50 48
++48 44 48 57 43 64 43 42 50 59 55 55 59 55 55 59 55 55 48 44 48 36 35 37
++33 30 30 34 30 15 23 20 24 23 18 22 23 18 22 22 24 13 14 16 17 26 25 15
++22 24 13 23 10 10 23 10 10 22 24 13 14 16 17 22 24 13 23 18 22 26 25 15
++23 18 22 26 25 15 23 20 24 23 20 24 23 18 22 14 16 17 17 12 17 14 16 17
++26 12 13 22 24 13 23 18 22 17 12 17 23 18 22 14 16 17 15 22 17 17 12 17
++23 18 22 23 18 22 22 24 13 23 18 22 23 18 22 22 24 13 22 24 13 26 25 15
++26 25 15 33 30 30 34 30 15 33 30 30 34 30 15 33 30 30 60 49 42 60 49 42
++47 47 21 26 25 15 26 25 15 28 13 18 26 25 15 26 25 15 49 13 16 52 30 15
++60 49 42 75 56 53 88 73 62 117 99 86 117 99 86 117 99 86 117 99 86 101 83 74
++75 73 36 60 49 42 55 39 37 36 35 37 55 39 37 42 41 42 36 35 37 34 30 15
++23 20 24 22 24 13 23 18 22 22 24 13 23 18 22 22 25 24 22 25 24 26 25 15
++23 18 22 15 17 7 15 17 7 15 17 7 26 30 28 53 35 37 51 49 42 55 55 48
++55 55 48 53 46 48 51 49 42 53 46 48 53 46 48 53 46 48 51 49 42 53 46 48
++53 46 48 53 46 48 53 46 48 53 46 48 51 49 42 48 44 48 47 44 42 48 44 48
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 48 44 48 48 44 48 48 44 48 47 44 42 48 44 48 47 44 42 48 44 48
++48 44 48 48 44 48 53 46 48 48 50 48 59 55 55 48 50 48 59 55 55 54 57 61
++59 57 61 59 57 61 59 57 61 63 59 71 59 69 70 63 59 71 59 69 70 75 64 82
++60 63 87 75 81 90 75 81 90 75 81 90 75 81 90 77 90 100 77 90 100 77 90 100
++77 90 100 95 91 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100
++95 91 100 77 91 115 77 90 100 95 91 100 77 90 100 77 90 100 77 90 100 77 90 100
++88 83 88 77 90 100 75 64 82 75 81 90 75 64 82 75 81 90 60 63 87 59 69 70
++59 69 70 59 69 70 63 59 71 54 57 61 54 57 61 57 43 64 45 57 61 43 42 50
++43 42 50 43 42 50 35 47 50 34 40 43 34 40 43 37 35 43 36 35 37 36 35 37
++33 30 36 36 35 37 37 35 43 36 35 37 37 35 43 37 35 43 37 35 43 37 35 43
++33 30 36 36 35 37 36 35 37 36 35 37 37 35 43 37 35 43 37 35 43 36 35 37
++37 35 43 36 35 37 36 35 37 36 35 37 33 30 36 36 35 37 33 30 36 33 30 36
++33 30 36 33 30 32 33 30 32 33 30 32 33 30 32 26 24 32 33 30 30 26 24 32
++33 30 30 33 30 30 33 30 30 33 30 30 26 24 32 33 30 30 34 30 15 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 26 30 28 34 30 15 26 24 32 26 30 28 26 24 32 26 30 28
++26 24 32 26 30 28 26 24 32 26 30 28 23 20 24 33 30 30 26 30 28 33 30 30
++30 30 34 33 30 30 30 30 34 33 30 30 33 30 32 36 35 37 42 38 42 42 41 42
++42 41 42 48 44 48 47 44 42 48 50 48 48 44 48 48 50 48 48 50 48 48 50 48
++54 57 61 48 50 48 48 50 48 43 42 50 48 50 48 43 42 50 43 55 48 43 42 50
++35 47 50 43 42 50 34 40 43 34 40 43 37 35 43 31 35 35 36 35 37 30 30 34
++28 30 35 25 30 29 25 30 29 33 30 32 30 30 34 30 30 34 30 30 34 30 30 34
++30 30 34 30 30 34 30 30 34 30 30 34 26 30 28 33 30 30 26 30 28 26 30 28
++26 30 28 26 30 28 26 30 28 33 30 30 26 30 28 26 30 28 26 24 32 26 30 28
++26 24 32 33 30 30 23 20 24 33 30 30 23 20 24 22 25 24 23 20 24 22 25 24
++23 18 22 23 18 22 15 22 17 23 18 22 23 18 22 23 18 22 23 18 22 23 18 22
++22 24 13 23 18 22 22 25 24 23 18 22 22 25 24 22 25 24 22 25 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24
++22 25 24 23 20 24 22 25 24 23 20 24 26 25 15 23 18 22 22 25 24 23 20 24
++23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 26 25 15
++23 20 24 23 18 22 23 18 22 22 24 13 23 18 22 23 18 22 14 16 17 23 18 22
++23 18 22 14 16 17 17 12 17 23 18 22 17 12 17 17 12 17 12 18 20 17 12 17
++17 12 17 14 16 17 14 16 17 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17
++14 16 17 14 16 17 23 18 22 12 18 20 23 18 22 12 18 20 23 18 22 23 18 22
++12 18 20 12 18 20 23 20 24 23 18 22 12 18 20 23 20 24 23 18 22 23 18 22
++15 22 17 23 18 22 12 18 20 23 18 22 12 18 20 23 20 24 15 22 17 23 20 24
++
++13 4 7 3 3 1 3 4 9 13 4 7 3 4 9 13 4 7 3 4 9 3 4 9
++13 4 7 3 4 9 13 4 7 3 4 9 7 12 13 13 4 7 7 12 13 13 4 7
++7 12 13 13 4 7 13 4 7 7 12 13 7 12 13 13 4 7 6 15 6 13 4 7
++3 4 9 13 4 7 3 4 9 13 4 7 3 4 9 3 4 9 3 4 9 7 12 13
++3 4 9 3 4 9 13 4 7 6 15 6 3 4 9 3 4 9 7 12 13 7 12 13
++14 16 17 14 16 17 22 25 24 25 30 29 25 30 29 28 35 38 32 39 24 35 46 43
++35 46 43 43 55 48 43 55 48 51 73 47 53 63 61 65 63 61 59 79 61 75 72 67
++60 82 70 75 81 69 60 82 70 59 69 70 75 72 67 59 79 61 75 72 67 59 79 61
++59 79 61 53 63 61 51 73 47 53 63 61 50 61 48 43 55 48 43 55 48 35 46 43
++35 46 43 28 35 38 23 30 35 25 30 29 25 30 29 22 25 24 15 22 17 14 16 17
++14 16 17 7 12 13 17 12 17 7 12 13 14 16 17 7 12 13 7 10 17 7 12 13
++7 12 13 7 10 17 3 4 9 7 12 13 7 10 17 3 4 9 3 4 9 13 4 7
++3 4 9 3 4 9 3 4 9 13 4 7 3 4 9 13 4 7 3 4 9 3 4 9
++3 4 9 7 12 13 13 4 7 17 12 17 13 4 7 7 12 13 13 4 7 7 12 13
++17 12 17 14 16 17 14 16 17 17 12 17 17 12 17 17 12 17 17 12 17 17 12 17
++14 16 17 14 16 17 23 18 22 17 12 17 23 18 22 17 12 17 23 18 22 26 12 13
++17 12 17 28 13 18 26 25 15 28 13 18 28 13 18 28 13 18 33 30 30 28 13 18
++34 30 15 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 52 30 15
++33 30 30 34 30 15 33 30 30 34 30 15 33 30 30 26 25 15 33 30 30 26 25 15
++23 18 22 26 25 15 23 18 22 22 24 13 22 24 13 23 18 22 12 18 20 23 18 22
++17 12 17 14 16 17 7 10 17 17 12 17 17 12 17 7 12 13 17 12 17 7 12 13
++7 12 13 7 12 13 13 4 7 7 12 13 17 12 17 7 10 17 7 10 17 17 12 17
++17 12 17 12 18 20 14 16 17 14 16 17 23 18 22 23 20 24 23 20 24 26 25 15
++23 20 24 34 30 15 23 20 24 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 32 39 24 33 30 30 33 30 30 33 30 30 36 35 37 32 39 24 53 35 37
++32 39 24 33 30 30 32 39 24 36 35 37 36 35 37 42 41 42 47 44 42 48 50 48
++48 50 48 43 42 50 48 50 48 43 42 50 57 43 64 43 42 50 45 57 61 43 42 50
++48 50 48 43 42 50 43 42 50 43 42 50 45 57 61 43 42 50 43 42 50 57 43 64
++43 42 50 45 57 61 43 42 50 45 57 61 57 43 64 54 57 61 57 43 64 63 59 71
++46 59 71 63 59 71 63 59 71 60 63 87 63 59 71 63 59 71 63 59 71 60 63 87
++75 64 82 60 63 87 75 64 82 60 63 87 75 64 82 60 63 87 75 64 82 60 63 87
++75 64 82 75 64 82 75 64 82 75 81 90 75 64 82 60 63 87 75 81 82 75 64 82
++75 72 67 59 69 70 63 59 71 65 57 61 59 55 55 59 55 55 62 47 47 51 49 42
++47 44 42 55 39 37 47 44 42 55 39 37 47 39 42 47 39 42 53 35 37 47 39 42
++47 39 42 47 39 42 47 39 42 42 38 42 47 39 42 36 35 37 42 38 42 42 38 42
++36 35 37 53 35 37 36 35 37 36 35 37 32 39 24 53 35 37 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 51 49 42 65 63 61 65 63 61 51 49 42
++51 49 42 65 55 54 65 63 61 65 63 61 75 73 58 65 63 61 64 70 48 65 63 61
++75 77 62 88 83 74 88 83 74 101 83 74 98 113 84 117 99 86 117 99 86 117 99 86
++117 99 86 117 114 76 138 102 108 117 114 76 138 102 108 117 114 76 117 114 76 138 126 108
++168 102 88 138 126 108 168 102 88 177 171 115 168 102 88 201 146 124 168 146 127 168 102 88
++177 171 115 168 102 88 177 171 115 168 102 88 117 114 76 168 102 88 117 99 86 117 112 45
++168 102 88 138 126 108 201 146 124 197 171 123 197 171 123 201 146 124 177 171 115 201 146 124
++197 171 123 177 169 143 197 171 123 217 168 156 217 168 156 217 168 156 168 146 127 201 146 124
++168 146 127 217 168 156 225 222 201 225 222 201 150 144 154 75 81 82 33 30 36 28 30 35
++43 42 50 43 42 50 43 42 50 42 41 42 42 38 42 43 42 50 43 42 50 43 42 50
++48 50 48 43 42 50 48 44 48 48 50 48 48 50 48 59 55 55 51 49 42 36 35 37
++22 25 24 22 24 13 23 18 22 15 22 17 17 12 17 15 22 17 23 18 22 17 12 17
++15 17 7 23 18 22 26 25 15 33 30 30 26 30 28 22 25 24 23 20 24 26 25 15
++23 20 24 23 18 22 23 20 24 22 25 24 23 18 22 17 12 17 15 17 7 17 12 17
++14 16 17 26 12 13 17 12 17 23 18 22 14 16 17 23 18 22 14 16 17 23 18 22
++15 22 17 17 12 17 23 18 22 23 18 22 26 25 15 23 20 24 26 25 15 33 30 30
++33 30 30 47 44 42 55 39 37 33 30 30 34 30 15 53 35 17 51 49 42 55 39 37
++36 35 37 34 30 15 34 30 15 52 30 35 34 30 15 34 30 15 55 39 37 60 49 42
++88 73 62 101 83 74 117 114 76 168 102 88 138 126 108 168 102 88 117 114 76 117 99 86
++75 73 36 55 39 37 32 39 24 33 30 30 47 47 21 51 49 42 47 39 42 26 30 28
++23 20 24 26 25 15 23 18 22 22 25 24 22 25 24 26 25 15 23 18 22 15 22 17
++17 12 17 15 17 7 17 12 17 17 12 17 34 30 15 47 44 42 55 55 48 55 55 48
++55 55 48 55 55 48 51 49 42 53 46 48 51 49 42 51 49 42 53 46 48 51 49 42
++48 50 48 53 46 48 53 46 48 53 46 48 51 49 42 53 46 48 53 46 48 48 44 48
++53 46 48 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 39 42
++47 44 42 47 44 42 48 44 48 47 44 42 53 46 48 53 46 48 47 44 42 48 44 48
++47 44 42 48 44 48 53 46 48 53 46 48 48 50 48 53 46 48 48 50 48 53 46 48
++54 57 61 54 57 61 54 57 61 59 57 61 59 57 61 59 69 70 63 59 71 63 59 71
++60 81 83 60 63 87 60 81 83 61 78 101 75 81 90 75 81 90 75 81 90 75 81 90
++75 81 90 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100
++77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100
++75 81 90 61 78 101 75 81 90 60 81 83 60 63 87 75 64 82 60 63 87 63 59 71
++59 69 70 63 59 71 54 57 61 54 57 61 45 57 61 45 57 61 43 42 50 45 57 61
++43 42 50 35 47 50 42 41 42 34 40 43 37 35 43 34 40 43 37 35 43 28 35 38
++37 35 43 33 30 36 31 35 35 37 35 43 36 35 37 37 35 43 37 35 43 29 34 50
++37 35 43 33 30 36 28 35 38 36 35 37 33 30 36 33 30 36 33 30 36 36 35 37
++36 35 37 36 35 37 37 35 43 36 35 37 36 35 37 33 30 32 36 35 37 33 30 32
++33 30 32 33 30 36 33 30 32 30 30 34 33 30 32 26 24 32 26 30 28 33 30 30
++33 30 30 23 20 24 33 30 30 34 30 15 33 30 30 23 20 24 33 30 30 28 13 18
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 26 30 28 26 30 28 26 30 28 23 20 24 26 30 28
++22 25 24 33 30 30 23 20 24 26 24 32 26 30 28 26 24 32 26 24 32 33 30 30
++26 24 32 33 30 30 26 24 32 33 30 32 33 30 36 36 35 37 42 38 42 42 41 42
++42 41 42 48 44 48 47 44 42 47 49 42 48 50 48 48 50 48 54 57 61 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 45 57 61 48 50 48 48 50 48 35 47 50
++43 42 50 42 47 42 43 42 50 34 40 43 33 39 38 36 35 37 31 35 35 30 30 34
++25 30 29 25 30 29 25 30 29 30 30 34 33 30 30 26 30 28 25 30 29 25 30 29
++26 30 28 26 30 28 26 24 32 26 30 28 26 30 28 26 30 28 26 30 28 26 30 28
++26 30 28 26 30 28 26 30 28 26 30 28 26 30 28 26 24 32 26 30 28 26 24 32
++22 25 24 26 30 28 23 20 24 33 30 30 23 20 24 33 30 30 33 30 30 23 20 24
++22 25 24 23 18 22 23 18 22 23 18 22 15 22 17 23 18 22 23 18 22 15 22 17
++23 18 22 23 18 22 23 18 22 22 25 24 23 18 22 22 25 24 23 20 24 22 25 24
++22 25 24 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 23 20 24 22 25 24 23 18 22 23 20 24 15 22 17 23 20 24
++22 25 24 12 18 20 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 22 25 24
++22 23 31 22 23 31 26 24 32 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24
++26 25 15 23 18 22 22 25 24 23 20 24 23 18 22 23 18 22 23 18 22 14 16 17
++23 18 22 14 16 17 23 18 22 14 16 17 14 16 17 17 12 17 23 18 22 12 18 20
++17 12 17 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 17 12 17 14 16 17
++23 18 22 12 18 20 23 18 22 12 18 20 23 20 24 23 18 22 23 18 22 12 18 20
++23 20 24 23 20 24 15 22 17 12 18 20 23 18 22 12 18 20 23 18 22 12 18 20
++23 18 22 23 18 22 12 18 20 23 20 24 12 18 20 23 20 24 23 20 24 23 18 22
++
++3 4 9 13 4 7 13 4 7 3 4 9 3 4 9 7 12 13 13 4 7 7 12 13
++3 4 9 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13
++7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 7 12 13 3 4 9 3 4 9
++7 12 13 3 4 9 3 4 9 3 4 9 7 12 13 3 4 9 13 4 7 3 4 9
++13 4 7 3 4 9 3 4 9 3 4 9 13 4 7 7 12 13 15 17 7 14 16 17
++14 16 17 15 22 17 22 25 24 22 25 24 32 39 24 28 35 38 33 39 38 35 46 43
++35 46 43 50 61 48 50 61 48 53 63 61 53 63 61 53 63 61 59 69 70 60 82 70
++75 72 67 60 82 70 75 72 67 59 69 70 60 82 70 59 69 70 59 69 70 53 63 61
++53 63 61 53 63 61 53 63 61 45 57 61 50 61 48 43 55 48 43 55 48 35 46 43
++35 46 43 32 39 24 23 30 35 25 30 29 23 31 15 12 18 30 15 22 17 12 18 20
++14 16 17 7 12 13 7 10 17 14 16 17 7 10 17 14 16 17 7 10 17 7 10 17
++13 4 7 7 12 13 3 4 9 13 4 7 3 4 9 13 4 7 7 10 17 3 4 9
++7 12 13 13 4 7 7 10 17 3 4 9 13 4 7 7 12 13 13 4 7 7 12 13
++13 4 7 7 12 13 17 12 17 13 4 7 7 10 17 17 12 17 17 12 17 17 12 17
++17 12 17 14 16 17 17 12 17 17 12 17 17 12 17 17 12 17 17 12 17 22 24 13
++17 12 17 26 12 13 17 12 17 17 12 17 17 12 17 22 24 13 26 12 13 23 18 22
++26 12 13 23 18 22 28 13 18 26 25 15 26 25 15 33 30 30 34 30 15 33 30 30
++33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 52 30 15 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 28 13 18 26 30 28 28 13 18 22 25 24
++26 25 15 23 20 24 23 18 22 23 18 22 15 22 17 23 18 22 23 18 22 12 18 20
++12 18 20 17 12 17 17 12 17 17 12 17 7 10 17 7 10 17 7 12 13 13 4 7
++7 12 13 7 12 13 7 12 13 7 12 13 7 10 17 13 4 7 7 10 17 14 16 17
++14 16 17 17 12 17 14 16 17 17 12 17 23 18 22 23 18 22 26 25 15 23 20 24
++34 30 15 23 20 24 33 30 30 34 30 15 33 30 30 34 30 15 33 30 30 34 30 15
++33 30 30 53 35 17 33 30 30 53 35 17 33 30 30 32 39 24 52 30 35 32 39 24
++33 30 30 52 30 35 32 39 24 52 30 35 47 47 21 42 38 42 42 47 42 47 49 42
++48 44 48 48 50 48 43 42 50 48 50 48 43 42 50 45 57 61 43 42 50 43 42 50
++57 43 64 43 42 50 43 42 50 45 57 61 43 42 50 48 44 48 45 57 61 43 42 50
++43 42 50 57 43 64 43 42 50 45 57 61 43 42 50 54 57 61 54 57 61 54 57 61
++63 59 71 46 59 71 63 59 71 63 59 71 46 59 71 63 59 71 63 59 71 63 59 71
++63 59 71 60 63 87 75 64 82 60 63 87 75 64 82 75 64 82 60 63 87 75 64 82
++75 81 90 60 63 87 75 64 82 75 64 82 60 63 87 75 64 82 75 64 82 59 69 70
++63 59 71 63 59 71 65 63 61 59 57 61 57 43 51 57 43 64 53 46 48 47 44 42
++55 39 37 47 39 42 47 39 42 53 35 37 42 38 42 53 35 37 42 41 42 53 35 37
++36 35 37 53 35 37 36 35 37 53 35 37 36 35 37 36 35 37 52 30 35 36 35 37
++36 35 37 33 30 30 36 35 37 36 35 37 36 35 37 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 26 25 15 33 30 30 65 55 54 75 73 58 63 55 51 63 55 45
++55 55 48 65 63 61 75 73 58 75 72 67 65 63 61 75 73 58 65 63 61 75 77 62
++88 73 62 88 73 62 88 83 74 99 93 84 117 99 86 117 99 86 117 99 86 117 99 86
++117 99 86 138 102 108 117 114 76 117 114 76 168 102 88 138 126 108 168 102 88 117 127 86
++168 102 88 177 171 115 168 146 127 168 102 88 177 171 115 168 102 88 177 171 115 168 102 88
++177 171 115 168 102 88 168 102 88 117 112 45 117 112 45 101 74 26 102 33 26 88 73 31
++88 44 51 117 112 45 117 99 86 163 117 123 201 146 124 177 169 143 197 171 123 201 146 124
++177 169 143 217 168 156 217 168 156 217 168 156 208 215 180 217 168 156 197 171 123 177 169 143
++201 146 124 189 165 168 208 215 180 222 171 182 208 215 180 111 119 127 59 55 55 33 30 36
++37 35 43 37 35 43 43 42 50 42 41 42 37 35 43 37 35 43 42 41 42 48 44 48
++43 42 50 43 42 50 43 42 50 53 46 48 48 50 48 48 50 48 42 41 42 33 30 30
++22 24 13 17 12 17 14 16 17 17 12 17 17 12 17 26 25 15 23 18 22 15 17 7
++17 12 17 34 30 15 47 39 42 36 35 37 32 39 24 53 35 37 33 30 30 26 25 15
++23 18 22 26 25 15 23 18 22 22 24 13 14 16 17 14 16 17 17 12 17 17 12 17
++14 16 17 22 24 13 17 12 17 14 16 17 17 12 17 14 16 17 17 12 17 15 22 17
++14 16 17 22 24 13 26 12 13 26 25 15 26 25 15 34 30 15 33 30 30 55 39 37
++63 55 45 63 55 45 63 55 45 55 39 18 52 30 35 47 47 21 55 39 37 47 47 21
++52 30 35 55 39 37 51 49 42 55 39 37 47 47 21 60 49 42 88 73 62 101 83 74
++117 99 86 138 102 108 138 126 108 168 102 88 138 126 108 138 126 108 117 114 76 117 99 86
++88 73 31 55 39 37 34 30 15 33 30 30 55 39 37 47 44 42 32 39 24 34 30 15
++26 25 15 22 24 13 22 25 24 26 30 28 33 30 30 22 25 24 23 20 24 26 25 15
++14 16 17 15 17 7 15 17 7 15 17 7 33 30 30 51 49 42 63 55 51 55 55 48
++53 46 48 53 46 48 51 49 42 51 49 42 53 46 48 51 49 42 51 49 42 53 46 48
++53 46 48 52 55 48 53 46 48 48 50 48 53 46 48 48 50 48 53 46 48 48 44 48
++48 44 48 47 44 42 51 49 42 48 44 48 47 44 42 48 44 48 47 44 42 48 44 48
++47 44 42 48 44 48 48 44 48 47 44 42 53 46 48 48 44 48 48 44 48 47 44 42
++47 44 42 47 44 42 47 44 42 48 44 48 48 50 48 48 44 48 48 50 48 57 43 64
++48 50 48 54 57 61 48 50 48 54 57 61 54 57 61 59 57 61 63 59 71 63 59 71
++59 69 70 59 69 70 75 64 82 60 81 83 60 63 87 75 81 82 60 63 87 75 81 90
++61 78 101 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 77 90 100 75 81 90
++77 90 100 88 83 88 77 90 100 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90
++75 81 90 75 64 82 60 63 87 75 64 82 60 81 83 59 69 70 59 69 70 59 69 70
++63 59 71 53 63 61 45 57 61 45 57 61 57 43 64 43 42 50 45 57 61 43 42 50
++43 42 50 43 42 50 34 40 43 34 40 43 37 35 43 37 35 43 33 39 38 36 35 37
++37 35 43 36 35 37 37 35 43 37 35 43 36 35 37 33 30 36 37 35 43 33 30 36
++33 30 36 37 35 43 37 35 43 37 35 43 28 35 38 33 30 36 37 35 43 37 35 43
++36 35 37 37 35 43 33 30 36 36 35 37 33 30 36 33 30 36 33 30 32 33 30 32
++36 35 37 33 30 32 33 30 32 30 30 34 33 30 32 26 30 28 33 30 30 23 20 24
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 52 30 15 33 30 30 33 30 30 52 30 35 33 30 30 52 30 35
++33 30 30 52 30 35 33 30 30 52 30 35 33 30 30 33 30 30 52 30 35 33 30 30
++52 30 35 33 30 30 33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 26 30 28 33 30 30 26 24 32 26 30 28 26 24 32
++33 30 30 26 24 32 26 30 28 23 20 24 33 30 30 26 24 32 33 30 30 26 24 32
++33 30 30 30 30 34 33 30 32 33 30 36 36 35 37 36 35 37 42 38 42 42 41 42
++48 44 48 48 44 48 48 44 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++54 57 61 48 44 48 54 57 61 43 42 50 48 50 48 43 42 50 35 47 50 43 42 50
++35 47 50 34 40 43 34 40 43 34 40 43 33 39 38 36 35 37 31 35 35 30 30 34
++28 30 35 30 30 34 30 30 34 26 30 28 30 30 34 26 24 32 26 30 28 26 24 32
++26 30 28 26 24 32 26 30 28 26 24 32 33 30 30 26 30 28 26 30 28 33 30 30
++26 30 28 26 30 28 26 30 28 33 30 30 22 25 24 33 30 30 26 30 28 26 30 28
++26 30 28 23 20 24 33 30 30 23 20 24 26 24 32 23 20 24 22 25 24 22 25 24
++23 20 24 23 18 22 26 25 15 23 20 24 23 18 22 23 20 24 23 18 22 23 20 24
++23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 26 25 15 22 25 24 26 30 28
++23 20 24 22 25 24 22 25 24 26 30 28 26 30 28 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 22 24 13 23 20 24 22 25 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24 26 24 32
++23 20 24 26 24 32 22 25 24 26 24 32 23 20 24 26 30 28 23 20 24 26 25 15
++22 25 24 23 20 24 22 25 24 23 18 22 22 25 24 23 18 22 15 22 17 23 18 22
++23 18 22 23 18 22 14 16 17 23 18 22 14 16 17 17 12 17 17 12 17 12 18 20
++17 12 17 14 16 17 14 16 17 14 16 17 14 16 17 17 12 17 14 16 17 23 18 22
++14 16 17 14 16 17 23 18 22 12 18 20 23 18 22 12 18 20 23 18 22 23 20 24
++23 20 24 15 22 17 23 20 24 23 20 24 23 20 24 15 22 17 15 22 17 23 18 22
++23 20 24 15 22 17 23 20 24 23 20 24 23 20 24 12 18 20 15 22 17 12 18 20
++
++3 4 9 3 4 9 3 4 9 3 4 9 13 4 7 3 4 9 13 4 7 3 4 9
++13 4 7 13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 7 12 13 7 12 13
++13 4 7 7 12 13 13 4 7 3 4 9 7 12 13 3 4 9 7 12 13 13 4 7
++3 4 9 6 15 6 13 4 7 3 4 9 13 4 7 3 4 9 3 4 9 3 4 9
++6 15 6 3 3 1 13 4 7 3 3 1 13 4 7 7 12 13 14 16 17 14 16 17
++15 22 17 15 22 17 15 22 17 25 30 29 28 35 38 28 35 38 33 39 38 35 47 50
++43 55 48 45 57 61 45 57 61 53 63 61 53 63 61 59 69 70 59 69 70 59 69 70
++59 69 70 75 81 82 60 82 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70
++53 63 61 53 63 61 53 63 61 45 57 61 43 55 48 43 55 48 43 55 48 35 46 43
++35 46 43 28 35 38 25 30 29 23 30 35 23 30 35 22 25 24 12 18 20 12 18 20
++14 16 17 14 16 17 7 12 13 14 16 17 7 10 17 7 12 13 7 10 17 7 10 17
++7 12 13 3 4 9 7 10 17 3 4 9 7 10 17 3 4 9 7 12 13 13 4 7
++3 4 9 7 10 17 13 4 7 3 4 9 7 12 13 13 4 7 7 12 13 13 4 7
++7 12 13 17 12 17 7 12 13 7 12 13 17 12 17 13 4 7 7 12 13 7 12 13
++17 12 17 15 17 7 14 16 17 17 12 17 17 12 17 23 18 22 23 18 22 17 12 17
++23 10 10 23 18 22 17 12 17 23 18 22 26 12 13 17 12 17 23 18 22 22 24 13
++17 12 17 23 18 22 23 18 22 23 18 22 26 25 15 23 20 24 23 20 24 33 30 30
++28 13 18 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 34 30 15 33 30 30 26 25 15 26 30 28 22 25 24 22 25 24 33 30 30
++23 20 24 22 25 24 23 18 22 23 18 22 23 18 22 15 22 17 23 18 22 14 16 17
++23 18 22 14 16 17 14 16 17 17 12 17 7 12 13 7 12 13 17 12 17 7 12 13
++7 12 13 7 10 17 13 4 7 7 10 17 13 4 7 7 10 17 7 10 17 17 12 17
++14 16 17 14 16 17 14 16 17 17 12 17 14 16 17 23 18 22 26 25 15 26 25 15
++23 20 24 34 30 15 28 13 18 34 30 15 23 20 24 26 25 15 33 30 30 34 30 15
++33 30 30 33 30 30 33 30 30 33 30 30 32 39 24 52 30 35 32 39 24 52 30 35
++32 39 24 32 39 24 33 30 30 32 39 24 36 35 37 47 39 42 42 41 42 48 44 48
++48 44 48 48 50 48 43 42 50 45 57 61 43 42 50 43 42 50 57 43 64 43 42 50
++48 50 48 43 42 50 43 42 50 48 44 48 43 42 50 48 44 48 43 42 50 43 42 50
++48 50 48 35 47 50 57 43 64 43 42 50 57 43 64 45 57 61 57 43 64 63 59 71
++54 57 61 63 59 71 46 59 71 63 59 71 63 59 71 63 59 71 46 59 71 63 59 71
++63 59 71 63 59 71 59 69 70 63 59 71 59 69 70 59 69 70 75 64 82 60 63 87
++59 69 70 75 64 82 60 63 87 75 64 82 75 64 82 75 64 82 59 69 70 63 59 71
++63 59 71 65 57 61 65 57 61 59 57 61 53 46 48 53 46 48 48 44 48 53 35 37
++42 38 42 53 35 37 36 35 37 53 35 37 53 35 37 47 39 42 47 47 21 47 39 42
++55 39 37 36 35 37 53 35 37 36 35 37 52 30 35 36 35 37 33 30 32 52 30 35
++33 30 30 36 35 37 36 35 37 33 30 30 52 30 35 33 30 30 36 35 37 33 30 30
++33 30 30 26 24 32 34 30 15 42 38 42 75 72 67 88 83 74 64 70 48 55 55 48
++63 55 45 63 55 51 65 63 61 75 72 67 75 77 62 75 77 62 88 73 62 88 83 74
++75 73 58 75 73 58 88 73 62 117 99 86 117 99 86 117 114 76 138 102 108 117 127 86
++138 102 108 117 114 76 117 114 76 138 102 108 117 127 86 168 102 88 146 150 115 168 102 88
++177 171 115 201 146 124 177 171 115 201 146 124 177 171 115 201 146 124 177 171 115 168 102 88
++168 146 127 168 102 88 117 112 45 88 73 62 120 63 71 101 83 74 88 73 62 88 73 62
++75 56 53 76 46 20 88 44 51 75 73 36 117 99 86 163 117 123 201 146 124 177 169 143
++201 146 124 177 169 143 197 171 123 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156
++177 169 143 197 171 123 217 168 156 222 171 182 225 222 201 177 169 143 112 96 108 57 43 64
++28 30 35 43 42 50 43 42 50 43 42 50 37 35 43 42 38 42 43 42 50 43 42 50
++43 42 50 42 38 42 43 42 50 54 57 61 53 46 48 42 38 42 26 30 28 26 25 15
++15 17 7 17 12 17 22 24 13 14 16 17 17 12 17 22 24 13 17 12 17 23 10 10
++26 25 15 52 30 35 55 39 37 55 39 37 47 39 42 55 39 37 47 39 42 34 30 15
++28 13 18 17 12 17 23 18 22 15 22 17 14 16 17 17 12 17 17 12 17 22 24 13
++14 16 17 17 12 17 15 17 7 17 12 17 14 16 17 17 12 17 15 17 7 17 12 17
++22 24 13 26 12 13 34 30 15 33 30 30 55 39 18 60 49 42 88 73 31 88 73 62
++101 83 74 88 73 62 75 56 53 76 46 20 63 55 45 63 55 45 60 49 42 76 46 20
++63 55 45 88 73 62 75 73 36 63 55 45 88 73 31 88 73 62 117 99 86 138 126 108
++168 102 88 168 146 127 138 126 108 138 126 108 168 102 88 117 114 76 168 102 88 117 99 86
++75 63 62 55 39 37 34 30 15 34 30 15 47 39 42 47 47 21 52 30 35 33 30 30
++26 25 15 23 20 24 22 24 13 29 35 19 31 35 35 33 30 30 33 30 30 26 30 28
++26 25 15 17 12 17 15 17 7 23 10 10 33 30 30 53 46 48 55 55 48 51 49 42
++55 55 48 55 55 48 53 46 48 51 49 42 53 46 48 53 46 48 51 49 42 53 46 48
++55 55 48 53 46 48 53 46 48 51 49 42 48 50 48 48 50 48 48 50 48 48 44 48
++48 50 48 48 44 48 48 44 48 48 50 48 48 44 48 53 46 48 48 44 48 47 44 42
++48 44 48 47 44 42 48 44 48 53 46 48 48 44 48 48 44 48 47 44 42 47 44 42
++47 44 42 48 44 48 47 44 42 48 44 48 48 44 48 43 42 50 48 44 48 43 55 48
++57 43 64 48 44 48 54 57 61 48 50 48 54 57 61 54 57 61 54 57 61 59 57 61
++54 57 61 59 69 70 59 69 70 59 69 70 60 63 87 59 69 70 60 81 83 60 63 87
++60 81 83 75 64 82 60 63 87 75 81 90 75 64 82 75 81 90 75 64 82 75 81 90
++75 81 90 75 81 90 75 64 82 75 81 90 75 81 90 75 64 82 75 81 90 60 63 87
++75 64 82 60 63 87 60 81 83 59 69 70 59 69 70 63 59 71 59 69 70 63 59 71
++53 63 61 54 57 61 54 57 61 48 50 48 45 57 61 48 50 48 48 50 48 43 42 50
++43 42 50 43 42 50 29 34 50 34 40 43 37 35 43 33 39 38 37 35 43 37 35 43
++36 35 37 37 35 43 37 35 43 37 35 43 36 35 37 37 35 43 28 35 38 37 35 43
++37 35 43 37 35 43 28 35 38 37 35 43 33 30 36 36 35 37 33 30 36 36 35 37
++37 35 43 36 35 37 36 35 37 36 35 37 36 35 37 33 30 32 36 35 37 33 30 32
++33 30 36 36 35 37 33 30 36 33 30 32 33 30 32 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++52 30 15 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30 53 35 17
++36 35 37 53 35 37 36 35 37 52 30 35 36 35 37 52 30 35 33 30 30 52 30 35
++33 30 32 33 30 30 52 30 35 33 30 30 33 30 30 52 30 35 33 30 32 33 30 32
++33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 26 30 28 26 24 32 33 30 30
++26 30 28 26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 30 30 34 26 30 28
++30 30 34 33 30 32 33 30 36 36 35 37 36 35 37 37 35 43 42 41 42 43 42 50
++43 42 50 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 45 57 61 48 50 48 48 50 48 43 42 50 35 47 50
++35 46 43 34 40 43 42 41 42 34 40 43 33 39 38 31 35 35 31 35 35 30 30 34
++30 30 34 33 30 30 30 30 34 26 30 28 30 30 34 26 30 28 26 30 28 26 24 32
++26 30 28 26 24 32 26 30 28 25 30 29 26 30 28 33 30 30 26 30 28 26 30 28
++26 30 28 26 30 28 33 30 30 26 30 28 33 30 30 22 25 24 26 30 28 22 25 24
++26 30 28 33 30 30 22 25 24 33 30 30 22 25 24 26 24 32 23 20 24 33 30 30
++23 20 24 22 25 24 23 20 24 23 20 24 23 18 22 23 20 24 26 25 15 23 20 24
++23 18 22 23 20 24 23 20 24 23 20 24 22 25 24 26 24 32 22 25 24 23 20 24
++33 30 30 22 25 24 26 24 32 33 30 30 23 20 24 23 20 24 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 23 20 24 23 20 24
++22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 26 24 32
++23 20 24 33 30 30 22 25 24 26 24 32 23 20 24 33 30 30 22 25 24 33 30 30
++22 25 24 22 25 24 22 25 24 23 20 24 23 18 22 23 18 22 23 18 22 23 18 22
++14 16 17 23 18 22 23 18 22 14 16 17 14 16 17 14 16 17 12 18 20 17 12 17
++14 16 17 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 14 16 17
++23 18 22 14 16 17 23 18 22 23 20 24 14 16 17 23 18 22 15 22 17 22 25 24
++23 20 24 23 20 24 23 18 22 23 18 22 15 22 17 23 18 22 23 18 22 23 20 24
++15 22 17 23 20 24 23 20 24 12 18 20 23 18 22 15 22 17 12 18 20 15 22 17
++
++3 4 9 13 4 7 3 4 9 13 4 7 7 12 13 3 4 9 13 4 7 7 12 13
++13 4 7 7 12 13 3 4 9 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13
++7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13
++7 12 13 3 4 9 3 4 9 3 4 9 6 15 6 3 4 9 13 4 7 3 4 9
++3 4 9 3 4 9 6 15 6 3 4 9 6 15 6 7 12 13 15 17 7 14 16 17
++15 22 17 23 20 24 22 25 24 25 30 29 23 30 35 33 39 38 35 46 43 35 46 43
++35 47 50 45 57 61 43 55 48 53 63 61 53 63 61 53 63 61 59 69 70 59 69 70
++60 82 70 59 69 70 59 69 70 59 69 70 75 81 76 59 69 70 59 69 70 53 63 61
++53 63 61 45 57 61 45 57 61 43 55 48 43 55 48 43 55 48 35 46 43 35 46 43
++28 35 38 28 35 38 23 30 35 25 30 29 22 25 24 15 22 17 22 25 24 12 18 20
++7 10 17 14 16 17 7 10 17 14 16 17 7 10 17 7 10 17 7 10 17 7 12 13
++7 12 13 13 4 7 7 12 13 3 4 9 13 4 7 7 10 17 3 4 9 3 4 9
++7 10 17 13 4 7 7 10 17 13 4 7 7 12 13 13 4 7 7 12 13 7 12 13
++17 12 17 13 4 7 17 12 17 7 12 13 13 4 7 14 16 17 17 12 17 17 12 17
++7 12 13 17 12 17 14 16 17 17 12 17 23 18 22 17 12 17 26 12 13 17 12 17
++22 24 13 17 12 17 26 12 13 17 12 17 17 12 17 22 24 13 17 12 17 26 12 13
++23 18 22 26 12 13 23 18 22 26 25 15 23 18 22 34 30 15 26 24 32 33 30 30
++26 24 32 33 30 30 23 20 24 33 30 30 34 30 15 26 24 32 26 25 15 33 30 30
++26 25 15 33 30 30 23 20 24 33 30 30 26 25 15 33 30 30 23 20 24 23 20 24
++22 25 24 23 20 24 23 20 24 22 25 24 23 18 22 23 20 24 15 22 17 23 18 22
++14 16 17 23 18 22 14 16 17 7 12 13 17 12 17 7 12 13 7 12 13 7 12 13
++17 12 17 7 12 13 7 12 13 7 10 17 7 10 17 7 10 17 17 12 17 7 12 13
++17 12 17 7 12 13 17 12 17 14 16 17 23 18 22 14 16 17 26 25 15 23 20 24
++26 25 15 23 20 24 34 30 15 23 20 24 33 30 30 34 30 15 33 30 30 34 30 15
++33 30 30 53 35 17 33 30 30 34 30 15 33 30 30 33 30 30 47 47 21 33 30 30
++36 35 37 53 35 17 36 35 37 36 35 37 53 35 37 36 35 37 47 44 42 42 47 42
++43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50
++43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 48 50 48 57 43 64 48 50 48
++57 43 64 43 42 50 43 42 50 45 57 61 54 57 61 57 43 64 54 57 61 46 59 71
++63 59 71 57 43 64 63 59 71 46 59 71 57 43 64 46 59 71 63 59 71 63 59 71
++63 59 71 63 59 71 60 63 87 63 59 71 63 59 71 60 63 87 63 59 71 59 69 70
++75 64 82 59 69 70 63 59 71 59 69 70 60 63 87 59 69 70 63 59 71 63 59 71
++59 69 70 63 59 71 59 55 55 57 43 51 48 44 48 48 44 48 47 39 42 47 39 42
++53 35 37 36 35 37 53 35 37 36 35 37 55 39 37 42 41 42 53 35 37 36 35 37
++47 47 21 53 35 37 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37 33 30 32
++36 35 37 33 30 30 33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 34 30 15
++33 30 30 22 25 24 26 30 28 53 35 37 75 72 67 88 83 74 63 55 45 51 49 42
++51 49 42 55 55 48 88 83 74 99 93 84 75 81 69 88 73 62 75 72 67 75 73 58
++75 56 53 75 73 58 101 83 74 112 123 108 117 99 86 138 102 108 117 127 86 138 126 108
++117 99 86 117 114 76 138 102 108 117 114 76 168 102 88 146 150 115 146 150 115 177 171 115
++201 146 124 177 171 115 201 146 124 168 102 88 177 171 115 168 102 88 201 146 124 168 146 127
++168 102 88 138 126 108 138 126 108 163 117 123 168 146 127 168 146 127 168 146 127 163 117 123
++117 99 86 101 83 74 76 46 20 52 30 15 55 39 18 88 73 62 117 99 86 163 117 123
++201 146 124 168 146 127 201 146 124 177 169 143 217 168 156 214 214 134 189 165 168 197 171 123
++217 168 156 177 169 143 197 171 123 208 215 180 222 171 182 189 165 168 146 151 137 75 72 67
++29 34 50 37 35 43 43 42 50 43 42 50 43 42 50 43 42 50 42 38 42 43 42 50
++42 41 42 42 41 42 53 46 48 54 57 61 48 44 48 36 35 37 23 18 22 23 18 22
++22 24 13 14 16 17 23 18 22 23 18 22 23 18 22 15 17 7 17 12 17 26 25 15
++53 35 37 47 44 42 52 30 35 32 39 24 55 39 37 51 49 42 47 47 21 33 30 32
++26 25 15 17 12 17 14 16 17 15 17 7 17 12 17 15 22 17 23 18 22 17 12 17
++22 24 13 15 17 7 13 4 7 7 12 13 13 4 7 14 16 17 14 16 17 14 16 17
++22 24 13 34 30 15 55 39 37 75 56 53 88 73 62 117 99 86 117 99 86 138 102 108
++117 114 76 101 83 74 88 73 31 88 73 62 101 83 74 88 73 62 88 73 62 88 73 62
++88 73 62 101 83 74 88 73 62 88 73 62 117 99 86 138 102 108 138 126 108 138 126 108
++168 146 127 146 150 115 168 102 88 146 150 115 168 102 88 138 126 108 117 114 76 117 99 86
++76 44 53 52 30 15 34 30 15 52 30 35 51 49 42 55 39 37 47 44 42 51 49 42
++36 35 37 26 25 15 15 22 17 26 30 28 36 35 37 42 41 42 33 30 30 26 30 28
++23 18 22 15 17 7 14 16 17 22 24 13 33 30 32 55 55 48 63 55 51 55 55 48
++53 46 48 51 49 42 62 47 47 53 46 48 51 49 42 53 46 48 55 55 48 53 46 48
++53 46 48 51 49 42 48 50 48 52 55 48 48 50 48 53 46 48 48 50 48 48 44 48
++48 50 48 48 44 48 48 44 48 48 44 48 48 44 48 47 44 42 48 44 48 48 44 48
++48 44 48 47 44 42 48 44 48 53 46 48 53 46 48 48 44 48 47 44 42 48 44 48
++42 41 42 47 44 42 48 44 48 47 44 42 47 44 42 43 42 50 42 41 42 43 42 50
++48 44 48 48 50 48 48 44 48 48 50 48 45 57 61 48 44 48 54 57 61 54 57 61
++54 57 61 45 57 61 46 59 71 63 59 71 46 59 71 59 69 70 60 63 87 59 69 70
++59 69 70 60 63 87 60 81 83 75 64 82 60 63 87 60 81 83 75 64 82 75 81 90
++60 63 87 75 81 90 60 63 87 60 81 83 60 63 87 60 81 83 60 63 87 60 81 83
++59 69 70 60 81 83 63 59 71 60 63 87 59 69 70 59 69 70 63 59 71 54 57 61
++54 57 61 54 57 61 45 57 61 45 57 61 43 42 50 43 42 50 45 57 61 43 42 50
++43 42 50 35 47 50 37 35 43 34 40 43 34 40 43 37 35 43 37 35 43 36 35 37
++37 35 43 37 35 43 37 35 43 37 35 43 36 35 37 28 35 38 37 35 43 37 35 43
++37 35 43 28 35 38 37 35 43 37 35 43 28 35 38 37 35 43 37 35 43 36 35 37
++37 35 43 36 35 37 37 35 43 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32
++33 30 32 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 52 30 35 33 30 30 52 30 35 36 35 37 52 30 35 36 35 37
++52 30 35 32 39 24 52 30 35 36 35 37 52 30 35 36 35 37 36 35 37 36 35 37
++33 30 30 53 35 37 33 30 30 36 35 37 32 39 24 36 35 37 36 35 37 36 35 37
++33 30 30 36 35 37 33 30 32 33 30 32 30 30 34 30 30 34 26 30 28 26 24 32
++26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 33 30 30 26 24 32 33 30 32
++33 30 32 30 30 34 33 30 36 36 35 37 36 35 37 42 41 42 42 41 42 48 44 48
++48 44 48 48 44 48 48 50 48 48 44 48 48 50 48 48 50 48 54 57 61 48 50 48
++54 57 61 48 50 48 54 57 61 48 44 48 48 50 48 48 50 48 35 47 50 43 42 50
++35 46 43 34 40 43 34 40 43 33 39 38 33 39 38 33 39 38 31 35 35 28 30 35
++30 30 34 30 30 34 30 30 34 26 30 28 26 24 32 26 30 28 26 24 32 26 30 28
++26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 26 30 28 26 30 28 33 30 32
++26 30 28 33 30 32 26 30 28 33 30 30 26 24 32 26 30 28 33 30 30 26 30 28
++26 30 28 22 25 24 26 30 28 22 25 24 26 24 32 22 25 24 33 30 30 23 20 24
++23 20 24 22 25 24 23 20 24 26 25 15 23 18 22 23 18 22 23 20 24 23 20 24
++23 20 24 23 20 24 33 30 30 23 20 24 23 20 24 26 25 15 26 24 32 26 25 15
++26 24 32 23 20 24 33 30 30 26 24 32 33 30 30 23 20 24 22 25 24 33 30 30
++23 20 24 26 30 28 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24
++12 18 20 23 20 24 22 25 24 23 20 24 22 23 31 22 25 24 26 24 32 26 30 28
++23 20 24 26 24 32 26 24 32 33 30 30 26 24 32 26 30 28 33 30 30 26 25 15
++26 30 28 23 20 24 23 20 24 23 20 24 26 25 15 23 20 24 23 18 22 23 18 22
++23 20 24 23 18 22 12 18 20 23 18 22 14 16 17 17 12 17 17 12 17 14 16 17
++17 12 17 14 16 17 14 16 17 14 16 17 23 18 22 14 16 17 23 18 22 15 22 17
++14 16 17 23 18 22 15 22 17 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 23 20 24 23 18 22 23 18 22 15 22 17 23 18 22 12 18 20
++23 18 22 12 18 20 23 18 22 15 22 17 23 18 22 12 18 20 23 20 24 15 22 17
++
++3 3 1 3 4 9 13 4 7 3 4 9 13 4 7 7 12 13 13 4 7 3 4 9
++7 12 13 7 12 13 13 4 7 13 4 7 7 12 13 7 12 13 7 12 13 13 4 7
++17 12 17 7 12 13 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 7 12 13
++13 4 7 13 4 7 3 4 9 13 4 7 3 4 9 13 4 7 3 4 9 6 15 6
++3 3 1 13 4 7 3 4 9 6 15 6 13 4 7 7 12 13 14 16 17 14 16 17
++23 20 24 15 22 17 22 25 24 25 30 29 28 35 38 28 35 38 34 40 43 35 46 43
++35 47 50 45 57 61 45 57 61 45 57 61 45 57 61 59 69 70 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 53 63 61
++53 63 61 53 63 61 43 55 48 45 57 61 43 55 48 35 47 50 35 46 43 35 46 43
++28 35 38 32 39 24 23 30 35 25 30 29 22 25 24 12 18 30 12 18 20 12 18 20
++14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 17 12 17 7 10 17
++7 12 13 7 10 17 3 4 9 7 10 17 3 4 9 13 4 7 3 4 9 13 4 7
++3 4 9 3 4 9 3 4 9 7 12 13 13 4 7 7 10 17 7 12 13 13 4 7
++7 12 13 17 12 17 7 12 13 17 12 17 17 12 17 7 12 13 13 4 7 17 12 17
++17 12 17 15 17 7 23 10 10 14 16 17 26 12 13 17 12 17 17 12 17 23 18 22
++26 12 13 17 12 17 23 18 22 23 18 22 17 12 17 23 18 22 23 18 22 14 16 17
++23 18 22 14 16 17 23 18 22 23 18 22 23 18 22 23 18 22 23 18 22 23 20 24
++28 13 18 33 30 30 26 25 15 33 30 30 33 30 30 33 30 30 33 30 30 23 20 24
++34 30 15 23 20 24 34 30 15 33 30 30 26 30 28 26 30 28 26 25 15 33 30 30
++22 25 24 33 30 30 22 25 24 22 25 24 22 25 24 23 18 22 23 18 22 23 18 22
++23 18 22 14 16 17 17 12 17 17 12 17 7 12 13 17 12 17 7 12 13 13 4 7
++7 12 13 13 4 7 7 10 17 7 12 13 13 4 7 17 12 17 7 12 13 17 12 17
++7 12 13 14 16 17 17 12 17 17 12 17 23 18 22 14 16 17 23 18 22 26 25 15
++23 20 24 34 30 15 28 13 18 33 30 30 34 30 15 33 30 30 33 30 30 34 30 15
++33 30 30 33 30 30 33 30 30 33 30 32 53 35 17 33 30 30 33 30 32 53 35 17
++36 35 37 33 30 30 32 39 24 36 35 37 32 39 24 36 35 37 42 41 42 42 41 42
++42 41 42 42 41 42 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50
++43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50
++43 42 50 45 57 61 43 42 50 43 42 50 45 57 61 54 57 61 54 57 61 54 57 61
++63 59 71 46 59 71 57 43 64 54 57 61 63 59 71 54 57 61 57 43 64 54 57 61
++63 59 71 46 59 71 63 59 71 63 59 71 63 59 71 63 59 71 63 59 71 60 63 87
++63 59 71 75 64 82 63 59 71 75 64 82 63 59 71 63 59 71 63 59 71 63 59 71
++63 59 71 59 57 61 57 43 51 48 44 48 48 44 48 47 44 42 42 38 42 53 35 37
++36 35 37 53 35 37 36 35 37 53 35 37 42 41 42 53 35 37 42 41 42 53 35 37
++36 35 37 36 35 37 53 35 37 36 35 37 33 30 32 52 30 35 33 30 30 36 35 37
++33 30 30 52 30 35 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30 26 30 28
++33 30 30 22 25 24 26 25 15 36 35 37 65 63 61 75 73 58 51 49 42 47 49 42
++51 49 42 63 55 45 75 72 67 88 83 74 88 73 62 88 73 62 88 83 74 88 73 62
++88 73 62 88 83 74 117 99 86 138 102 108 117 127 86 117 99 86 117 99 86 117 114 76
++138 102 108 117 127 86 168 102 88 146 150 115 168 102 88 146 150 115 195 113 123 177 171 115
++201 146 124 168 146 127 201 146 124 177 171 115 201 146 124 177 171 115 168 102 88 146 150 115
++168 102 88 168 146 127 201 146 124 201 146 124 177 169 143 201 146 124 168 146 127 168 146 127
++168 146 127 138 102 108 101 83 74 60 49 42 52 30 15 76 18 19 88 73 31 101 83 74
++117 99 86 168 102 88 138 126 108 163 117 123 168 146 127 201 146 124 177 169 143 201 146 124
++168 146 127 168 146 127 168 146 127 138 126 108 146 150 115 138 126 108 112 123 108 75 64 82
++43 42 50 43 42 50 37 35 43 43 42 50 42 41 42 43 42 50 43 42 50 43 42 50
++43 42 50 43 42 50 48 50 48 53 46 48 36 35 37 26 30 28 15 22 17 23 18 22
++22 24 13 17 12 17 22 24 13 23 18 22 23 18 22 13 4 7 26 12 13 53 35 37
++60 49 42 63 55 45 55 39 37 63 55 45 75 56 53 60 49 42 53 35 37 52 30 35
++23 20 24 15 17 7 17 12 17 22 24 13 14 16 17 14 16 17 14 16 17 14 16 17
++14 16 17 17 12 17 7 12 13 7 12 13 15 17 7 17 12 17 22 24 13 26 25 15
++34 30 15 63 55 45 101 83 74 117 99 86 138 126 108 138 126 108 163 117 123 146 150 115
++138 126 108 168 102 88 117 99 86 117 114 76 117 114 76 168 102 88 117 114 76 117 99 86
++117 114 76 101 83 74 88 73 31 75 56 53 117 114 76 138 126 108 163 117 123 177 171 115
++168 102 88 168 146 127 177 171 115 168 102 88 168 146 127 138 126 108 168 102 88 88 73 62
++55 39 18 34 30 15 55 39 18 63 55 45 75 56 53 75 56 53 64 70 48 75 56 53
++51 49 42 34 30 15 15 17 7 26 25 15 32 39 24 47 44 42 36 35 37 26 25 15
++23 18 22 15 17 7 17 12 17 26 25 15 47 39 42 55 55 48 53 46 48 55 55 48
++53 46 48 55 55 48 53 46 48 55 55 48 53 46 48 48 50 48 53 46 48 48 50 48
++48 50 48 48 50 48 53 46 48 48 50 48 48 50 48 48 50 48 48 44 48 48 50 48
++48 44 48 48 50 48 48 44 48 48 50 48 48 44 48 48 44 48 48 50 48 48 44 48
++48 50 48 48 44 48 48 50 48 48 50 48 48 50 48 48 44 48 48 44 48 48 44 48
++48 44 48 48 44 48 47 44 42 48 44 48 42 41 42 42 41 42 43 42 50 42 41 42
++43 42 50 43 42 50 43 42 50 43 42 50 48 50 48 48 44 48 45 57 61 48 44 48
++54 57 61 45 57 61 54 57 61 54 57 61 63 59 71 46 59 71 63 59 71 59 69 70
++63 59 71 59 69 70 63 59 71 59 69 70 60 63 87 59 69 70 60 63 87 75 64 82
++59 69 70 60 63 87 59 69 70 75 64 82 60 63 87 63 59 71 59 69 70 63 59 71
++60 63 87 63 59 71 59 69 70 53 63 61 46 59 71 54 57 61 54 57 61 45 57 61
++54 57 61 45 57 61 48 50 48 43 42 50 48 50 48 48 50 48 43 42 50 43 42 50
++43 42 50 42 41 42 34 40 43 34 40 43 42 38 42 34 40 43 37 35 43 34 40 43
++37 35 43 37 35 43 36 35 37 37 35 43 36 35 37 37 35 43 37 35 43 29 34 50
++37 35 43 37 35 43 28 35 38 37 35 43 33 30 36 31 35 35 36 35 37 36 35 37
++36 35 37 36 35 37 37 35 43 36 35 37 37 35 43 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 33 30 36 36 35 37 33 30 32 33 30 32 33 30 32
++33 30 32 52 30 35 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35
++33 30 30 52 30 15 33 30 30 33 30 30 52 30 35 36 35 37 52 30 35 32 39 24
++36 35 37 52 30 35 33 30 30 53 35 37 36 35 37 42 38 42 53 35 17 52 30 35
++36 35 37 36 35 37 53 35 37 32 39 24 52 30 35 36 35 37 33 30 30 52 30 35
++36 35 37 33 30 30 31 35 35 33 30 32 33 30 32 33 30 30 33 30 30 26 30 28
++26 30 28 26 30 28 33 30 30 26 30 28 26 24 32 26 30 28 26 30 28 30 30 34
++30 30 34 33 30 32 36 35 37 36 35 37 36 35 37 42 41 42 42 41 42 43 42 50
++48 44 48 48 44 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 54 57 61
++53 46 48 45 57 61 48 44 48 48 50 48 45 57 61 48 50 48 48 50 48 42 47 42
++35 47 50 35 46 43 42 41 42 34 40 43 36 35 37 33 39 38 31 35 35 31 35 35
++30 30 34 30 30 34 25 30 29 30 30 34 25 30 29 25 30 29 25 30 29 26 24 32
++25 30 29 25 30 29 25 30 29 30 30 34 26 30 28 26 30 28 26 30 28 30 30 34
++26 30 28 33 30 30 26 30 28 33 30 30 26 30 28 26 30 28 26 30 28 26 30 28
++26 24 32 33 30 30 26 30 28 33 30 30 23 20 24 33 30 30 23 20 24 23 20 24
++26 30 28 23 20 24 23 20 24 23 20 24 22 25 24 23 18 22 22 25 24 23 18 22
++22 25 24 23 20 24 23 18 22 33 30 30 23 20 24 26 30 28 23 20 24 23 20 24
++26 25 15 26 30 28 23 20 24 26 30 28 22 25 24 33 30 30 26 30 28 26 30 28
++23 20 24 33 30 30 22 25 24 22 25 24 22 25 24 22 25 24 15 22 17 23 20 24
++23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 26 24 32 26 30 28 22 25 24
++26 24 32 22 25 24 26 24 32 26 25 15 26 24 32 33 30 30 23 20 24 26 30 28
++33 30 30 26 25 15 33 30 30 26 30 28 23 20 24 22 25 24 23 20 24 23 20 24
++15 22 17 23 20 24 23 18 22 14 16 17 14 16 17 12 18 20 12 18 20 12 18 20
++14 16 17 14 16 17 14 16 17 23 18 22 12 18 20 23 18 22 14 16 17 23 18 22
++23 18 22 23 18 22 23 18 22 23 20 24 23 20 24 23 18 22 22 25 24 26 25 15
++22 25 24 23 18 22 23 20 24 23 20 24 15 22 17 23 18 22 23 18 22 23 20 24
++23 20 24 23 18 22 12 18 20 23 18 22 12 18 20 23 20 24 12 18 20 12 18 20
++
++3 3 1 13 4 7 3 4 9 13 4 7 13 4 7 3 4 9 13 4 7 7 12 13
++13 4 7 7 12 13 13 4 7 7 12 13 17 12 17 13 4 7 17 12 17 7 12 13
++7 12 13 13 4 7 17 12 17 13 4 7 7 12 13 13 4 7 3 4 9 13 4 7
++7 12 13 3 4 9 3 4 9 13 4 7 3 4 9 3 4 9 13 4 7 3 4 9
++13 4 7 3 4 9 6 15 6 13 4 7 6 15 6 7 12 13 14 16 17 14 16 17
++15 22 17 22 25 24 22 25 24 22 25 24 23 30 35 33 39 38 33 39 38 35 46 43
++35 47 50 48 50 48 45 57 61 45 57 61 54 57 61 46 59 71 59 69 70 46 59 71
++59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 53 63 61 59 69 70 53 63 61
++45 57 61 45 57 61 45 57 61 43 55 48 43 55 48 35 46 43 35 46 43 31 35 35
++28 35 38 28 35 38 25 30 29 22 25 24 12 18 30 15 22 17 12 18 20 14 16 17
++14 16 17 14 16 17 7 10 17 12 18 20 7 10 17 14 16 17 7 10 17 7 10 17
++7 12 13 7 12 13 13 4 7 7 10 17 3 4 9 3 4 9 3 4 9 3 4 9
++3 4 9 13 4 7 3 4 9 7 12 13 7 10 17 13 4 7 7 10 17 7 12 13
++7 12 13 17 12 17 17 12 17 7 12 13 13 4 7 7 12 13 23 10 10 14 16 17
++15 17 7 23 10 10 15 17 7 17 12 17 23 18 22 17 12 17 26 12 13 14 16 17
++26 12 13 23 18 22 17 12 17 26 12 13 23 18 22 14 16 17 22 24 13 17 12 17
++15 22 17 17 12 17 23 18 22 15 22 17 23 18 22 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 33 30 30 22 25 24 26 30 28 26 25 15 26 30 28 33 30 30
++22 25 24 33 30 30 33 30 30 22 25 24 33 30 30 23 20 24 33 30 30 23 18 22
++26 25 15 22 25 24 33 30 30 23 20 24 23 20 24 23 18 22 15 22 17 23 18 22
++14 16 17 23 18 22 14 16 17 17 12 17 7 12 13 17 12 17 7 10 17 7 12 13
++7 10 17 7 12 13 7 12 13 7 10 17 7 10 17 7 10 17 17 12 17 7 12 13
++17 12 17 17 12 17 14 16 17 17 12 17 23 18 22 22 24 13 22 24 13 23 20 24
++26 25 15 33 30 30 26 25 15 33 30 30 28 13 18 33 30 30 34 30 15 33 30 30
++33 30 30 33 30 30 34 30 15 36 35 37 33 30 30 36 35 37 33 30 30 33 30 30
++32 39 24 52 30 35 32 39 24 36 35 37 36 35 37 42 38 42 36 35 37 42 41 42
++42 38 42 42 38 42 37 35 43 42 41 42 43 42 50 43 42 50 43 42 50 43 42 50
++43 42 50 43 42 50 42 41 42 43 42 50 43 42 50 43 42 50 48 44 48 43 42 50
++43 42 50 43 42 50 48 44 48 48 44 48 57 43 64 45 57 61 57 43 64 54 57 61
++54 57 61 63 59 71 54 57 61 63 59 71 57 43 64 46 59 71 54 57 61 46 59 71
++57 43 64 63 59 71 63 59 71 63 59 71 46 59 71 63 59 71 63 59 71 63 59 71
++63 59 71 59 69 70 63 59 71 59 69 70 63 59 71 59 69 70 65 63 61 59 57 61
++59 57 61 57 43 51 57 43 51 48 44 48 42 41 42 42 41 42 47 39 42 42 38 42
++53 35 37 36 35 37 53 35 37 47 39 42 53 35 37 36 35 37 42 38 42 36 35 37
++53 35 37 32 39 24 36 35 37 52 30 35 33 30 30 36 35 37 36 35 37 52 30 35
++32 39 24 33 30 32 32 39 24 33 30 32 36 35 37 33 30 30 33 30 30 26 30 28
++22 25 24 23 20 24 26 30 28 36 35 37 63 55 51 65 63 61 51 49 42 51 49 42
++55 55 48 63 55 45 65 55 54 75 73 58 101 83 74 101 83 74 101 83 74 99 93 84
++117 99 86 117 99 86 117 114 76 117 127 86 138 102 108 117 114 76 117 99 86 117 114 76
++138 126 108 117 114 76 138 126 108 138 126 108 146 150 115 201 146 124 177 171 115 201 146 124
++168 146 127 201 146 124 177 171 115 201 146 124 168 146 127 201 146 124 146 150 115 168 102 88
++177 171 115 168 146 127 201 146 124 168 146 127 168 146 127 163 117 123 163 117 123 163 117 123
++138 126 108 168 146 127 168 102 88 101 83 74 76 46 20 55 39 37 55 39 18 76 46 20
++76 46 20 88 73 62 120 63 71 117 114 76 168 102 88 168 146 127 168 146 127 168 146 127
++168 146 127 168 102 88 117 99 86 88 73 62 88 73 62 75 63 62 88 73 62 59 55 55
++43 42 50 37 35 43 42 41 42 43 42 50 34 40 43 43 42 50 43 42 50 43 42 50
++48 44 48 48 50 48 48 50 48 43 42 50 33 30 30 23 20 24 23 18 22 14 16 17
++14 16 17 14 16 17 17 12 17 17 12 17 23 10 10 13 4 7 34 30 15 75 56 53
++88 73 62 101 74 26 88 73 62 101 83 74 101 83 74 88 73 62 60 49 42 34 30 15
++34 30 15 26 12 13 15 17 7 15 22 17 23 18 22 14 16 17 15 17 7 7 12 13
++15 17 7 7 12 13 17 12 17 15 17 7 22 24 13 22 24 13 26 25 15 53 35 37
++64 70 48 101 83 74 138 126 108 168 146 127 201 146 124 168 146 127 177 171 115 201 146 124
++163 117 123 146 150 115 163 117 123 168 146 127 168 146 127 168 146 127 138 126 108 163 117 123
++117 114 76 101 83 74 75 73 36 75 56 53 88 73 62 117 99 86 138 126 108 138 126 108
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 138 126 108 117 114 76 88 73 31
++53 35 17 55 39 37 88 44 51 101 83 74 101 83 74 101 83 74 101 83 74 99 93 84
++75 73 58 52 30 35 22 24 13 26 25 15 42 38 42 47 44 42 36 35 37 34 30 15
++23 18 22 26 25 15 26 25 15 36 35 37 51 49 42 53 46 48 53 46 48 51 49 42
++53 46 48 53 46 48 55 55 48 53 46 48 53 46 48 48 50 48 53 46 48 48 50 48
++53 46 48 48 50 48 48 50 48 48 50 48 48 44 48 48 50 48 48 50 48 48 44 48
++43 42 50 48 50 48 43 42 50 43 42 50 43 42 50 47 49 42 48 44 48 48 44 48
++48 44 48 48 50 48 48 44 48 48 44 48 48 50 48 48 44 48 48 44 48 48 44 48
++48 44 48 48 44 48 43 42 50 47 44 42 42 47 42 47 44 42 42 41 42 42 41 42
++42 47 42 42 41 42 43 42 50 43 42 50 43 42 50 48 50 48 43 42 50 48 50 48
++45 57 61 43 42 50 54 57 61 45 57 61 54 57 61 54 57 61 54 57 61 46 59 71
++63 59 71 63 59 71 63 59 71 63 59 71 63 59 71 63 59 71 59 69 70 63 59 71
++59 69 70 63 59 71 63 59 71 59 69 70 59 69 70 63 59 71 59 69 70 63 59 71
++59 69 70 54 57 61 46 59 71 54 57 61 54 57 61 54 57 61 54 57 61 45 57 61
++48 50 48 48 50 48 48 50 48 43 42 50 48 50 48 43 42 50 43 42 50 42 41 42
++42 41 42 42 41 42 37 35 43 42 38 42 34 40 43 37 35 43 37 35 43 37 35 43
++37 35 43 34 40 43 37 35 43 34 40 43 36 35 37 37 35 43 37 35 43 37 35 43
++28 35 38 37 35 43 24 30 43 34 40 43 33 30 36 37 35 43 28 35 38 37 35 43
++33 39 38 37 35 43 36 35 37 37 35 43 37 35 43 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 33 30 32 31 35 35 33 30 32 33 30 32 33 30 32
++33 30 32 33 30 32 33 30 30 52 30 35 33 30 30 52 30 35 33 30 30 33 30 30
++33 30 30 33 30 30 52 30 35 33 30 30 52 30 35 32 39 24 52 30 35 36 35 37
++52 30 35 32 39 24 52 30 35 32 39 24 53 35 37 52 30 35 36 35 37 36 35 37
++53 35 17 36 35 37 36 35 37 36 35 37 32 39 24 52 30 35 36 35 37 32 39 24
++36 35 37 36 35 37 33 30 30 33 30 30 33 30 30 30 30 34 26 30 28 26 30 28
++26 24 32 26 30 28 22 25 24 26 24 32 26 30 28 33 30 30 30 30 34 30 30 34
++33 30 32 31 35 35 36 35 37 36 35 37 37 35 43 42 41 42 34 40 43 48 44 48
++43 42 50 48 50 48 43 42 50 45 57 61 57 43 51 54 57 61 59 55 55 48 50 48
++54 57 61 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 35 47 50
++42 47 42 43 42 50 34 40 43 34 40 43 33 39 38 33 39 38 31 35 35 31 35 35
++25 30 29 28 30 35 25 30 29 25 30 29 25 30 29 25 30 29 25 30 29 25 30 29
++26 24 32 25 30 29 25 30 29 25 30 29 26 30 28 26 24 32 26 30 28 33 30 30
++26 30 28 33 30 30 26 30 28 33 30 30 22 25 24 26 24 32 26 30 28 26 30 28
++26 30 28 26 30 28 26 30 28 26 30 28 33 30 30 23 20 24 26 30 28 23 20 24
++23 20 24 26 25 15 23 20 24 22 25 24 23 20 24 23 18 22 23 20 24 23 18 22
++22 25 24 23 20 24 26 30 28 23 20 24 22 25 24 33 30 30 23 18 22 26 25 15
++26 30 28 26 25 15 33 30 30 26 30 28 33 30 30 23 20 24 26 30 28 26 30 28
++22 25 24 26 30 28 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 23 18 22
++15 22 17 23 20 24 23 20 24 22 25 24 26 30 28 23 20 24 22 25 24 33 30 30
++23 20 24 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 26 25 15
++33 30 30 23 20 24 26 30 28 26 25 15 26 24 32 23 20 24 22 25 24 23 20 24
++23 20 24 23 20 24 12 18 20 14 16 17 23 18 22 14 16 17 23 18 22 17 12 17
++14 16 17 14 16 17 14 16 17 14 16 17 23 18 22 15 22 17 23 18 22 23 18 22
++15 22 17 23 18 22 23 18 22 23 20 24 23 20 24 22 24 13 22 25 24 23 18 22
++23 18 22 23 18 22 22 25 24 23 18 22 23 18 22 23 18 22 15 22 17 23 20 24
++12 18 20 23 18 22 12 18 20 23 18 22 12 18 20 23 20 24 12 18 30 23 20 24
++
++3 4 9 3 4 9 6 15 6 13 4 7 6 15 6 13 4 7 7 12 13 6 15 6
++7 12 13 13 4 7 14 16 17 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7
++17 12 17 17 12 17 7 12 13 7 12 13 13 4 7 7 12 13 3 4 9 7 12 13
++13 4 7 3 4 9 13 4 7 3 4 9 3 4 9 13 4 7 3 4 9 3 4 9
++6 15 6 3 3 1 3 4 9 6 15 6 13 4 7 15 17 7 14 16 17 14 16 17
++23 20 24 12 18 20 22 25 24 23 30 35 28 35 38 28 35 38 33 39 38 35 46 43
++35 47 50 48 50 48 45 57 61 45 57 61 46 59 71 54 57 61 59 69 70 53 63 61
++59 69 70 59 69 70 59 69 70 59 69 70 53 63 61 59 69 70 53 63 61 53 63 61
++54 57 61 45 57 61 43 55 48 43 55 48 35 47 50 35 46 43 33 39 38 33 39 38
++31 35 35 25 30 29 23 30 35 22 25 24 22 25 24 22 25 24 12 18 30 23 18 22
++14 16 17 12 18 20 12 18 20 14 16 17 14 16 17 14 16 17 17 12 17 7 10 17
++17 12 17 7 10 17 7 10 17 7 10 17 13 4 7 7 12 13 13 4 7 3 4 9
++13 4 7 3 4 9 7 12 13 13 4 7 7 12 13 7 10 17 13 4 7 7 12 13
++17 12 17 7 12 13 7 12 13 17 12 17 17 12 17 17 12 17 17 12 17 17 12 17
++17 12 17 15 17 7 17 12 17 22 24 13 26 12 13 17 12 17 23 18 22 17 12 17
++23 18 22 17 12 17 17 12 17 23 18 22 26 12 13 23 18 22 23 18 22 14 16 17
++23 18 22 17 12 17 14 16 17 23 18 22 22 24 13 23 18 22 23 18 22 23 20 24
++26 25 15 23 20 24 26 30 28 26 25 15 33 30 30 33 30 30 23 20 24 26 30 28
++34 30 15 26 30 28 26 25 15 33 30 30 26 30 28 33 30 30 26 25 15 33 30 30
++22 25 24 33 30 30 23 20 24 26 30 28 22 25 24 23 20 24 23 18 22 23 18 22
++23 18 22 14 16 17 17 12 17 17 12 17 7 12 13 17 12 17 17 12 17 17 12 17
++13 4 7 7 10 17 3 4 9 7 12 13 13 4 7 17 12 17 7 12 13 17 12 17
++7 12 13 7 12 13 17 12 17 14 16 17 23 18 22 17 12 17 22 24 13 23 20 24
++26 25 15 23 18 22 34 30 15 26 25 15 33 30 30 34 30 15 33 30 30 33 30 30
++34 30 15 33 30 30 33 30 30 33 30 30 53 35 17 33 30 30 32 39 24 52 30 35
++33 30 30 33 30 30 33 30 30 32 39 24 36 35 37 36 35 37 36 35 37 36 35 37
++34 40 43 37 35 43 42 41 42 37 35 43 34 40 43 42 41 42 35 46 43 43 42 50
++43 42 50 42 41 42 37 35 43 42 38 42 42 38 42 43 42 50 43 42 50 43 42 50
++43 42 50 48 44 48 43 42 50 43 42 50 48 50 48 57 43 64 54 57 61 54 57 61
++54 57 61 57 43 64 46 59 71 57 43 64 46 59 71 57 43 64 46 59 71 57 43 64
++63 59 71 54 57 61 57 43 64 63 59 71 59 57 61 63 59 71 63 59 71 63 59 71
++63 59 71 63 59 71 63 59 71 63 59 71 63 59 71 63 59 71 59 57 61 59 57 61
++59 55 55 57 43 64 48 44 48 47 44 42 47 39 42 42 38 42 42 38 42 53 35 37
++36 35 37 53 35 37 36 35 37 53 35 37 42 41 42 47 39 42 42 41 42 53 35 37
++32 39 24 53 35 37 47 39 42 32 39 24 53 35 37 33 30 30 36 35 37 33 30 32
++33 30 30 36 35 37 33 30 32 33 30 30 32 39 24 33 30 30 33 30 30 33 30 30
++26 30 28 23 20 24 22 25 24 47 44 42 75 81 69 75 81 76 63 55 51 55 55 48
++50 61 48 63 55 45 65 63 61 88 73 62 117 99 86 101 83 74 101 83 74 98 106 55
++101 83 74 117 99 86 117 99 86 117 114 76 138 102 108 117 114 76 117 99 86 117 114 76
++168 102 88 117 114 76 138 126 108 168 102 88 146 150 115 168 102 88 201 146 124 177 171 115
++201 146 124 177 171 115 168 146 127 201 146 124 197 171 123 168 102 88 177 171 115 201 146 124
++168 146 127 168 146 127 163 117 123 168 146 127 163 117 123 168 146 127 168 102 88 168 146 127
++168 146 127 168 146 127 138 126 108 117 99 86 88 73 62 76 46 20 76 44 53 76 46 20
++88 44 51 101 74 26 101 74 26 117 114 76 168 102 88 138 126 108 168 102 88 168 146 127
++163 117 123 117 99 86 88 73 62 76 46 20 75 56 53 75 73 58 75 63 62 48 50 48
++36 35 37 34 40 43 37 35 43 34 40 43 42 41 42 42 41 42 43 42 50 43 42 50
++43 42 50 48 44 48 43 42 50 36 35 37 33 30 30 22 25 24 23 18 22 23 18 22
++14 16 17 17 12 17 15 17 7 17 12 17 13 4 7 23 10 10 55 39 37 101 83 74
++117 99 86 117 99 86 120 63 71 117 99 86 138 126 108 101 83 74 75 56 53 52 30 35
++28 13 18 17 12 17 22 24 13 23 18 22 14 16 17 14 16 17 7 12 13 7 12 13
++14 16 17 17 12 17 14 16 17 22 24 13 23 18 22 26 25 15 32 39 24 63 55 45
++99 93 84 138 126 108 177 169 143 168 146 127 177 171 115 201 146 124 168 146 127 168 146 127
++201 146 124 177 171 115 201 146 124 177 171 115 201 146 124 168 146 127 177 171 115 163 117 123
++117 114 76 101 83 74 88 73 62 88 73 62 75 56 53 88 73 31 101 60 73 117 112 45
++138 126 108 168 102 88 168 146 127 168 146 127 177 171 115 168 102 88 117 99 86 88 44 51
++76 46 20 88 73 62 117 99 86 117 99 86 117 114 76 117 99 86 117 99 86 138 126 108
++99 93 84 63 55 45 34 30 15 29 35 19 51 49 42 51 49 42 53 35 37 23 20 24
++26 25 15 33 30 30 36 35 37 47 44 42 51 49 42 53 46 48 51 49 42 51 49 42
++51 49 42 53 46 48 53 46 48 53 46 48 48 50 48 48 44 48 48 50 48 48 44 48
++48 50 48 48 50 48 48 50 48 43 42 50 48 50 48 43 42 50 43 42 50 48 44 48
++42 47 42 43 42 50 43 42 50 42 47 42 48 44 48 43 42 50 48 50 48 43 42 50
++48 50 48 48 44 48 48 50 48 48 44 48 48 50 48 48 44 48 48 44 48 48 44 48
++48 44 48 48 44 48 47 44 42 43 42 50 48 44 48 42 47 42 48 44 48 42 41 42
++42 41 42 42 41 42 42 41 42 42 47 42 43 42 50 43 42 50 43 42 50 43 42 50
++43 42 50 45 57 61 43 42 50 57 43 64 45 57 61 43 42 50 45 57 61 54 57 61
++54 57 61 54 57 61 46 59 71 45 57 61 54 57 61 54 57 61 54 57 61 46 59 71
++59 57 61 46 59 71 54 57 61 54 57 61 46 59 71 59 57 61 46 59 71 54 57 61
++46 59 71 54 57 61 54 57 61 45 57 61 45 57 61 57 43 64 45 57 61 48 50 48
++45 57 61 48 50 48 45 57 61 43 42 50 43 42 50 43 42 50 42 41 42 43 42 50
++42 41 42 34 40 43 34 40 43 37 35 43 34 40 43 37 35 43 34 40 43 37 35 43
++34 40 43 37 35 43 34 40 43 37 35 43 34 40 43 37 35 43 43 42 50 29 34 50
++37 35 43 34 40 43 34 40 43 37 35 43 31 35 35 36 35 37 33 30 36 33 39 38
++36 35 37 33 39 38 37 35 43 37 35 43 37 35 43 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 31 35 35 33 30 32 33 30 32 33 30 32
++36 35 37 52 30 35 36 35 37 33 30 30 33 30 30 33 30 30 52 30 35 33 30 32
++52 30 15 33 30 30 33 30 30 53 35 17 36 35 37 52 30 35 33 30 30 52 30 35
++33 30 30 52 30 35 36 35 37 53 35 37 53 35 37 36 35 37 52 30 35 53 35 37
++36 35 37 42 38 42 53 35 17 36 35 37 53 35 37 32 39 24 36 35 37 52 30 35
++33 30 30 36 35 37 33 30 30 31 35 35 33 30 32 26 30 28 33 30 30 33 30 30
++26 30 28 26 30 28 26 24 32 33 30 30 26 30 28 26 24 32 26 30 28 30 30 34
++30 30 34 36 35 37 36 35 37 33 39 38 36 35 37 42 41 42 42 41 42 48 44 48
++48 50 48 48 50 48 48 50 48 48 44 48 45 57 61 48 50 48 48 50 48 54 57 61
++48 50 48 45 57 61 48 50 48 45 57 61 48 44 48 45 57 61 48 50 48 35 47 50
++48 50 48 35 46 43 42 41 42 42 41 42 33 39 38 34 40 43 31 35 35 31 35 35
++30 30 34 28 30 35 25 30 29 25 30 29 25 30 29 25 30 29 22 23 31 25 30 29
++22 25 24 25 30 29 25 30 29 25 30 29 26 30 28 26 30 28 26 30 28 26 30 28
++26 30 28 33 30 30 26 30 28 33 30 30 26 30 28 33 30 30 26 24 32 33 30 30
++22 25 24 33 30 30 23 20 24 33 30 30 23 20 24 26 30 28 33 30 30 22 25 24
++33 30 30 23 20 24 33 30 30 23 20 24 26 25 15 23 18 22 22 25 24 26 25 15
++23 20 24 26 30 28 23 20 24 33 30 30 23 20 24 33 30 30 22 25 24 26 30 28
++26 25 15 26 30 28 26 30 28 26 25 15 22 25 24 26 30 28 33 30 30 23 20 24
++33 30 30 23 20 24 33 30 30 22 25 24 22 25 24 22 25 24 22 25 24 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 26 30 28 23 20 24 33 30 30 23 20 24
++33 30 30 23 20 24 23 18 22 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30
++26 24 32 34 30 15 26 30 28 23 20 24 26 30 28 26 24 32 23 20 24 23 20 24
++22 25 24 23 20 24 23 20 24 23 18 22 12 18 20 14 16 17 14 16 17 12 18 20
++14 16 17 17 12 17 14 16 17 23 18 22 12 18 20 23 18 22 15 22 17 23 18 22
++23 18 22 23 18 22 23 18 22 23 20 24 22 25 24 23 20 24 22 25 24 26 25 15
++22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 12 18 30 22 25 24 12 18 30
++
++3 4 9 13 4 7 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 13 4 7
++7 12 13 15 17 7 17 12 17 15 17 7 17 12 17 17 12 17 14 16 17 17 12 17
++7 12 13 17 12 17 13 4 7 17 12 17 7 12 13 13 4 7 7 12 13 13 4 7
++7 12 13 3 4 9 13 4 7 3 4 9 13 4 7 3 4 9 13 4 7 3 4 9
++13 4 7 3 4 9 7 12 13 3 4 9 7 12 13 7 12 13 14 16 17 14 16 17
++12 18 20 22 25 24 22 25 24 23 30 35 28 35 38 28 35 38 35 46 43 34 40 43
++35 47 50 45 57 61 45 57 61 45 57 61 54 57 61 45 57 61 46 59 71 46 59 71
++63 59 71 53 63 61 46 59 71 53 63 61 46 59 71 53 63 61 46 59 71 45 57 61
++45 57 61 48 50 48 45 57 61 43 42 50 35 47 50 42 41 42 33 39 38 28 35 38
++25 30 29 25 30 29 22 25 24 22 23 31 22 23 31 22 25 24 12 18 20 12 18 20
++12 18 20 17 12 17 12 18 20 12 18 20 17 12 17 12 18 20 14 16 17 14 16 17
++7 10 17 7 12 13 17 12 17 3 4 9 7 10 17 3 4 9 3 4 9 6 15 6
++3 4 9 7 12 13 13 4 7 7 12 13 13 4 7 7 10 17 17 12 17 7 12 13
++17 12 17 7 12 13 17 12 17 17 12 17 14 16 17 17 12 17 15 17 7 17 12 17
++23 10 10 17 12 17 15 17 7 26 12 13 17 12 17 23 18 22 26 12 13 23 18 22
++26 12 13 23 18 22 22 24 13 28 13 18 15 22 17 23 18 22 15 22 17 23 18 22
++23 18 22 22 24 13 23 18 22 23 18 22 23 18 22 23 18 22 22 25 24 23 20 24
++26 24 32 22 25 24 33 30 30 26 30 28 23 20 24 33 30 30 33 30 30 33 30 30
++33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 26 30 28 26 30 28 22 25 24
++33 30 30 23 20 24 26 30 28 23 20 24 23 20 24 23 20 24 23 18 22 23 18 22
++14 16 17 14 16 17 17 12 17 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17
++7 10 17 7 12 13 7 12 13 7 10 17 7 10 17 7 10 17 17 12 17 7 12 13
++17 12 17 14 16 17 17 12 17 23 18 22 14 16 17 23 18 22 23 18 22 26 25 15
++22 25 24 34 30 15 23 20 24 33 30 30 26 25 15 33 30 30 34 30 15 33 30 30
++33 30 30 33 30 30 33 30 30 34 30 15 33 30 32 33 30 30 33 30 30 32 39 24
++33 30 30 32 39 24 33 30 30 33 30 30 36 35 37 36 35 37 42 38 42 36 35 37
++42 38 42 37 35 43 37 35 43 42 41 42 37 35 43 37 35 43 34 40 43 42 41 42
++42 41 42 37 35 43 37 35 43 42 38 42 43 42 50 42 41 42 43 42 50 43 42 50
++43 42 50 43 42 50 43 42 50 48 44 48 48 44 48 54 57 61 57 43 51 54 57 61
++57 43 64 54 57 61 57 43 64 54 57 61 57 43 64 54 57 61 54 57 61 54 57 61
++57 43 64 54 57 61 57 43 64 54 57 61 54 57 61 54 57 61 63 59 71 54 57 61
++63 59 71 63 59 71 59 57 61 59 57 61 59 57 61 54 57 61 54 57 61 57 43 51
++48 50 48 48 44 48 47 44 42 42 41 42 42 38 42 36 35 37 36 35 37 36 35 37
++52 30 35 36 35 37 36 35 37 47 39 42 36 35 37 53 35 37 36 35 37 53 35 37
++36 35 37 42 38 42 32 39 24 36 35 37 36 35 37 36 35 37 52 30 35 32 39 24
++36 35 37 33 30 30 33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 26 25 15
++22 25 24 23 18 22 26 30 28 47 44 42 88 83 74 88 83 74 65 63 61 55 55 48
++63 55 45 75 56 53 88 73 62 101 83 74 117 99 86 117 99 86 101 83 74 88 73 31
++101 83 74 101 83 74 117 99 86 117 114 76 138 126 108 117 114 76 138 102 108 138 126 108
++117 127 86 138 126 108 168 102 88 138 126 108 146 150 115 201 146 124 177 171 115 201 146 124
++201 146 124 201 146 124 201 146 124 177 171 115 168 146 127 201 146 124 168 146 127 168 146 127
++168 102 88 168 146 127 168 102 88 168 102 88 177 171 115 168 146 127 201 146 124 197 171 123
++201 146 124 168 146 127 163 117 123 168 102 88 101 83 74 88 44 51 76 46 20 76 46 20
++88 44 51 88 73 62 117 99 86 168 102 88 163 117 123 163 117 123 168 146 127 168 102 88
++117 127 86 117 99 86 101 74 26 88 44 51 117 99 86 138 126 108 101 83 74 65 55 54
++26 24 32 37 35 43 42 38 42 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50
++48 44 48 43 42 50 42 47 42 36 35 37 30 30 34 22 25 24 23 18 22 15 17 7
++15 17 7 14 16 17 17 12 17 13 4 7 13 4 7 13 4 7 75 56 53 138 126 108
++168 146 127 163 117 123 117 114 76 168 102 88 101 83 74 88 73 31 60 49 42 34 30 15
++28 13 18 26 25 15 22 25 24 23 20 24 23 18 22 14 16 17 17 12 17 17 12 17
++14 16 17 23 18 22 14 16 17 22 24 13 26 25 15 33 30 30 60 49 42 88 73 62
++138 102 108 168 146 127 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 197 171 123
++197 171 123 201 146 124 177 169 143 201 146 124 168 146 127 201 146 124 168 146 127 168 146 127
++138 126 108 117 114 76 117 99 86 117 99 86 101 83 74 88 73 31 76 44 53 75 56 53
++101 83 74 117 114 76 138 126 108 163 117 123 163 117 123 138 126 108 98 106 55 88 73 62
++120 63 71 117 114 76 117 99 86 168 102 88 138 126 108 138 126 108 138 102 108 117 127 86
++101 83 74 53 46 48 36 35 37 42 41 42 51 49 42 53 46 48 47 44 42 42 41 42
++36 35 37 53 35 37 51 49 42 51 49 42 53 46 48 51 49 42 53 46 48 51 49 42
++51 49 42 51 49 42 47 49 42 53 46 48 48 50 48 48 44 48 53 46 48 48 50 48
++48 44 48 48 50 48 48 44 48 48 50 48 43 42 50 48 50 48 48 50 48 43 42 50
++42 47 42 43 42 50 43 42 50 43 42 50 43 42 50 42 47 42 43 42 50 48 50 48
++43 42 50 48 50 48 43 42 50 48 50 48 48 44 48 48 44 48 48 44 48 48 44 48
++43 42 50 48 44 48 43 42 50 42 41 42 47 44 42 42 47 42 42 41 42 43 42 50
++42 41 42 42 41 42 43 42 50 34 40 43 43 42 50 42 47 42 43 42 50 43 42 50
++43 42 50 43 42 50 35 47 50 43 42 50 43 42 50 45 57 61 57 43 64 43 42 50
++45 57 61 45 57 61 57 43 64 45 57 61 45 57 61 54 57 61 45 57 61 54 57 61
++54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61
++45 57 61 57 43 64 45 57 61 48 50 48 48 50 48 45 57 61 43 42 50 48 50 48
++48 50 48 48 44 48 42 47 42 43 42 50 42 47 42 43 42 50 42 41 42 34 40 43
++42 38 42 37 35 43 42 38 42 36 35 37 37 35 43 33 39 38 42 38 42 34 40 43
++42 38 42 42 41 42 42 38 42 34 40 43 42 38 42 34 40 43 43 42 50 37 35 43
++37 35 43 34 40 43 28 35 38 37 35 43 28 35 38 37 35 43 31 35 35 37 35 43
++37 35 43 36 35 37 37 35 43 36 35 37 37 35 43 33 39 38 36 35 37 31 35 35
++36 35 37 36 35 37 36 35 37 36 35 37 33 30 32 33 30 32 33 30 32 33 30 32
++36 35 37 36 35 37 33 30 30 52 30 35 36 35 37 52 30 35 33 30 32 52 30 35
++33 30 30 52 30 35 33 30 30 36 35 37 52 30 35 33 30 30 53 35 37 32 39 24
++52 30 35 32 39 24 52 30 35 47 47 21 36 35 37 53 35 37 36 35 37 53 35 37
++36 35 37 52 30 35 36 35 37 53 35 37 32 39 24 53 35 37 36 35 37 36 35 37
++53 35 37 36 35 37 33 30 30 36 35 37 33 30 30 33 30 32 33 30 30 26 30 28
++26 30 28 26 30 28 26 30 28 26 24 32 26 30 28 26 30 28 33 30 32 30 30 34
++33 30 32 36 35 37 36 35 37 42 38 42 42 38 42 42 41 42 43 42 50 48 44 48
++48 50 48 48 44 48 45 57 61 48 44 48 48 50 48 54 57 61 53 46 48 54 57 61
++48 50 48 48 50 48 45 57 61 53 46 48 54 57 61 48 44 48 48 50 48 48 50 48
++43 42 50 42 47 42 42 41 42 34 40 43 34 40 43 36 35 37 36 35 37 31 35 35
++31 35 35 30 30 34 25 30 29 25 30 29 25 30 29 25 30 29 22 25 24 22 25 24
++25 30 29 22 23 31 25 30 29 25 30 29 26 24 32 26 30 28 33 30 30 26 24 32
++33 30 30 26 30 28 33 30 32 26 30 28 33 30 30 26 30 28 26 30 28 22 25 24
++33 30 30 26 30 28 26 30 28 33 30 30 26 30 28 33 30 30 23 20 24 33 30 30
++23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 26 24 32
++22 25 24 33 30 30 22 25 24 33 30 30 33 30 30 23 20 24 33 30 30 26 25 15
++26 30 28 26 30 28 33 30 30 26 30 28 33 30 30 22 25 24 26 30 28 34 30 15
++22 25 24 26 30 28 23 20 24 26 25 15 22 25 24 23 20 24 26 25 15 23 20 24
++23 20 24 22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 33 30 30 23 20 24
++22 25 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30
++23 20 24 33 30 30 23 20 24 34 30 15 26 24 32 22 25 24 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 15 22 17 23 18 22 12 18 20 17 12 17 12 18 20
++14 16 17 23 18 22 15 22 17 14 16 17 23 18 22 23 20 24 15 22 17 23 20 24
++23 18 22 22 24 13 22 25 24 23 20 24 23 20 24 26 25 15 22 25 24 23 20 24
++22 25 24 23 20 24 26 25 15 23 20 24 22 25 24 23 18 22 23 20 24 23 20 24
++12 18 20 23 20 24 12 18 20 22 25 24 23 20 24 23 20 24 12 18 20 23 20 24
++
++13 4 7 6 15 6 7 12 13 13 4 7 13 4 7 13 4 7 15 17 7 7 12 13
++13 4 7 17 12 17 13 4 7 23 10 10 17 12 17 17 12 17 7 12 13 17 12 17
++17 12 17 17 12 17 17 12 17 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13
++13 4 7 13 4 7 7 12 13 3 4 9 7 12 13 13 4 7 3 4 9 7 12 13
++3 4 9 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 12 18 20 12 18 20
++12 18 20 22 25 24 12 18 30 25 30 29 23 30 35 28 35 38 28 35 38 34 40 43
++35 47 50 35 47 50 43 42 50 45 57 61 43 42 50 45 57 61 54 57 61 46 59 71
++53 63 61 46 59 71 54 57 61 54 57 61 54 57 61 45 57 61 54 57 61 45 57 61
++45 57 61 35 47 50 43 42 50 43 42 50 34 40 43 33 39 38 28 30 35 23 30 35
++23 30 35 23 30 35 23 30 35 22 25 24 22 23 31 22 25 24 22 23 31 23 18 22
++12 18 20 12 18 20 17 12 17 12 18 20 23 18 22 12 18 20 17 12 17 12 18 20
++17 12 17 14 16 17 17 12 17 7 10 17 13 4 7 7 12 13 3 4 9 13 4 7
++3 4 9 13 4 7 7 12 13 13 4 7 7 12 13 7 10 17 17 12 17 7 12 13
++14 16 17 17 12 17 17 12 17 14 16 17 17 12 17 17 12 17 17 12 17 14 16 17
++17 12 17 22 24 13 26 12 13 22 24 13 23 18 22 23 18 22 23 18 22 28 13 18
++23 18 22 28 13 18 23 18 22 23 18 22 23 18 22 23 20 24 23 18 22 23 18 22
++23 18 22 23 18 22 22 24 13 23 18 22 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 33 30 30 22 25 24 23 20 24 33 30 30 33 30 32 30 30 34 30 30 34
++33 30 32 33 30 32 33 30 32 33 30 30 33 30 32 33 30 30 33 30 30 33 30 30
++26 25 15 33 30 30 26 24 32 33 30 30 22 25 24 22 25 24 22 25 24 23 20 24
++23 18 22 14 16 17 17 12 17 14 16 17 17 12 17 17 12 17 7 10 17 17 12 17
++7 10 17 7 10 17 13 4 7 7 12 13 7 10 17 13 4 7 7 12 13 17 12 17
++7 12 13 15 17 7 14 16 17 17 12 17 14 16 17 22 24 13 23 20 24 22 25 24
++26 25 15 23 20 24 28 13 18 34 30 15 33 30 30 28 13 18 33 30 30 33 30 30
++33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++34 30 15 33 30 30 33 30 30 33 30 30 33 30 32 33 30 36 36 35 37 36 35 37
++37 35 43 36 35 37 37 35 43 37 35 43 42 38 42 33 39 38 42 38 42 42 38 42
++37 35 43 42 38 42 37 35 43 42 38 42 42 38 42 43 42 50 42 41 42 43 42 50
++42 41 42 43 42 50 43 42 50 43 42 50 43 42 50 48 44 48 48 50 48 57 43 64
++48 50 48 59 55 55 48 44 48 54 57 61 48 50 48 54 57 61 57 43 64 48 50 48
++45 57 61 57 43 64 54 57 61 54 57 61 54 57 61 54 57 61 57 43 64 54 57 61
++54 57 61 59 57 61 54 57 61 59 57 61 54 57 61 59 55 55 57 43 51 48 44 48
++48 44 48 42 41 42 42 41 42 36 35 37 53 35 37 36 35 37 53 35 37 32 39 24
++32 39 24 53 35 37 36 35 37 53 35 37 42 41 42 53 35 37 36 35 37 53 35 37
++36 35 37 42 38 42 53 35 37 36 35 37 53 35 37 32 39 24 36 35 37 36 35 37
++52 30 35 33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 26 24 32 33 30 30
++22 25 24 22 24 13 26 30 28 47 44 42 75 81 76 75 81 76 64 70 48 51 49 42
++60 49 42 75 73 36 88 73 62 120 63 71 117 114 76 117 99 86 117 112 45 120 63 71
++88 73 62 98 106 55 101 83 74 117 99 86 117 114 76 138 102 108 117 114 76 117 114 76
++168 102 88 138 126 108 117 127 86 146 150 115 168 102 88 168 146 127 168 146 127 201 146 124
++177 171 115 201 146 124 177 171 115 201 146 124 201 146 124 201 146 124 177 171 115 201 146 124
++177 171 115 168 102 88 168 146 127 138 126 108 168 102 88 168 102 88 168 146 127 168 146 127
++201 146 124 168 146 127 168 102 88 117 99 86 117 112 45 88 44 51 76 46 20 88 73 31
++120 63 71 117 99 86 163 117 123 201 146 124 177 169 143 201 146 124 197 171 123 138 126 108
++120 63 71 88 73 62 122 49 24 117 114 76 138 126 108 168 146 127 138 102 108 65 55 54
++26 24 32 37 35 43 37 35 43 43 42 50 34 40 43 43 42 50 42 41 42 42 41 42
++43 42 50 43 42 50 34 40 43 42 38 42 36 35 37 26 30 28 14 16 17 14 16 17
++15 17 7 15 17 7 15 17 7 3 3 1 3 3 1 13 4 7 75 56 53 168 146 127
++177 169 143 197 171 123 168 102 88 101 83 74 88 73 31 76 46 20 52 30 35 52 30 15
++34 30 15 23 18 22 30 30 34 26 24 32 23 20 24 23 18 22 14 16 17 15 22 17
++23 18 22 22 25 24 23 18 22 23 18 22 34 30 15 55 39 37 75 56 53 101 83 74
++138 126 108 146 150 115 177 169 143 201 146 124 177 169 143 201 146 124 197 171 123 177 169 143
++201 146 124 177 169 143 197 171 123 168 146 127 201 146 124 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 163 117 123 138 126 108 138 102 108 117 99 86 88 73 62 88 44 51
++76 46 20 88 73 62 117 99 86 168 102 88 138 126 108 120 63 71 117 112 45 120 63 71
++117 114 76 138 126 108 168 102 88 138 126 108 138 126 108 138 126 108 117 127 86 101 83 74
++60 49 42 42 38 42 47 47 21 51 49 42 53 46 48 51 49 42 51 49 42 60 49 42
++51 49 42 51 49 42 53 46 48 51 49 42 53 46 48 51 49 42 51 49 42 51 49 42
++48 50 48 51 49 42 47 44 42 48 50 48 48 44 48 48 50 48 48 44 48 48 50 48
++48 44 48 48 50 48 48 44 48 48 50 48 48 50 48 48 50 48 48 50 48 43 42 50
++42 47 42 43 42 50 42 47 42 43 42 50 43 42 50 43 55 48 43 42 50 48 50 48
++43 42 50 43 42 50 48 50 48 43 42 50 48 50 48 43 42 50 48 44 48 43 42 50
++48 44 48 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 42 41 42 42 38 42
++42 41 42 43 42 50 42 41 42 43 42 50 43 42 50 34 40 43 43 42 50 35 46 43
++35 46 43 43 42 50 42 47 42 35 47 50 43 42 50 43 42 50 43 42 50 45 57 61
++48 50 48 48 50 48 48 50 48 43 42 50 45 57 61 43 42 50 57 43 64 48 50 48
++57 43 64 43 42 50 57 43 64 43 42 50 45 57 61 43 42 50 43 42 50 45 57 61
++43 42 50 43 42 50 48 50 48 43 42 50 43 42 50 43 42 50 48 50 48 48 50 48
++48 50 48 42 47 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 38 42 42 38 42 36 35 37 36 35 37 37 35 43 42 41 42 42 41 42 42 41 42
++42 41 42 34 40 43 42 41 42 42 41 42 42 41 42 43 42 50 37 35 43 37 35 43
++37 35 43 34 40 43 37 35 43 34 40 43 37 35 43 36 35 37 37 35 43 36 35 37
++33 39 38 34 40 43 37 35 43 42 38 42 37 35 43 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 31 35 35 31 35 35 33 30 32 33 30 32
++33 30 30 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37 33 30 32 52 30 35
++33 30 30 33 30 32 53 35 17 33 30 30 52 30 35 32 39 24 52 30 35 36 35 37
++52 30 35 36 35 37 52 30 35 42 38 42 53 35 37 53 35 37 47 39 42 47 47 21
++53 35 37 53 35 37 47 47 21 53 35 37 53 35 37 36 35 37 53 35 37 36 35 37
++42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 33 30 32 33 30 30 33 30 30
++26 30 28 33 30 30 33 30 30 26 30 28 33 30 30 26 24 32 26 30 28 30 30 34
++30 30 34 36 35 37 36 35 37 36 35 37 34 40 43 42 41 42 43 42 50 48 50 48
++48 44 48 48 50 48 48 50 48 53 46 48 54 57 61 48 50 48 59 55 55 54 57 61
++48 50 48 45 57 61 48 50 48 54 57 61 48 50 48 54 57 61 48 50 48 43 55 48
++48 50 48 42 47 42 43 42 50 42 41 42 42 38 42 42 38 42 36 35 37 36 35 37
++31 35 35 30 30 34 28 30 35 25 30 29 22 23 31 25 30 29 22 25 24 22 23 31
++25 30 29 25 30 29 26 24 32 25 30 29 26 30 28 26 30 28 26 30 28 26 30 28
++33 30 30 26 30 28 33 30 30 26 24 32 26 30 28 33 30 30 26 30 28 33 30 30
++26 24 32 26 30 28 33 30 30 26 30 28 33 30 30 26 24 32 33 30 30 33 30 30
++23 20 24 33 30 30 22 25 24 33 30 30 23 20 24 26 30 28 26 24 32 23 20 24
++33 30 30 23 20 24 33 30 30 33 30 30 26 30 28 33 30 30 26 30 28 33 30 30
++34 30 15 22 25 24 34 30 15 26 30 28 34 30 15 33 30 30 26 25 15 33 30 30
++23 20 24 33 30 30 26 25 15 33 30 30 26 30 28 22 25 24 23 20 24 22 25 24
++22 25 24 23 18 22 23 20 24 22 25 24 22 25 24 33 30 30 23 20 24 26 30 28
++33 30 30 26 30 28 23 20 24 33 30 30 33 30 30 33 30 30 23 20 24 33 30 30
++33 30 30 34 30 15 33 30 30 22 25 24 26 30 28 26 24 32 26 24 32 22 25 24
++22 25 24 22 25 24 23 20 24 23 20 24 23 20 24 23 18 22 12 18 30 23 20 24
++14 16 17 15 22 17 23 18 22 23 18 22 15 22 17 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 26 25 15
++33 30 30 22 25 24 26 24 32 22 25 24 22 25 24 15 22 17 23 20 24 22 25 24
++22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24
++
++3 4 9 13 4 7 7 12 13 13 4 7 14 16 17 13 4 7 7 12 13 17 12 17
++14 16 17 17 12 17 17 12 17 13 4 7 14 16 17 17 12 17 17 12 17 7 12 13
++17 12 17 14 16 17 17 12 17 17 12 17 15 17 7 17 12 17 7 12 13 13 4 7
++7 12 13 7 12 13 13 4 7 13 4 7 3 4 9 13 4 7 3 4 9 3 4 9
++13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 7 12 13 14 16 17 12 18 20
++12 18 20 12 18 30 22 25 24 25 30 29 23 30 35 28 35 38 28 35 38 34 40 43
++35 47 50 32 40 58 45 57 61 45 57 61 43 42 50 45 57 61 45 57 61 46 59 71
++54 57 61 54 57 61 45 57 61 45 57 61 45 57 61 45 57 61 45 57 61 43 42 50
++43 42 50 35 47 50 43 42 50 35 46 43 34 40 43 28 35 38 28 30 35 25 30 29
++26 24 32 23 30 35 22 23 31 25 30 29 22 23 31 22 23 31 23 20 24 12 18 30
++23 18 22 12 18 20 12 18 20 12 18 30 17 12 17 12 18 30 23 18 22 12 18 20
++14 16 17 14 16 17 7 10 17 17 12 17 7 12 13 7 12 13 13 4 7 6 15 6
++3 4 9 7 12 13 13 4 7 7 10 17 7 10 17 17 12 17 7 12 13 17 12 17
++14 16 17 14 16 17 14 16 17 17 12 17 14 16 17 17 12 17 26 12 13 23 18 22
++15 17 7 17 12 17 22 24 13 17 12 17 23 18 22 23 18 22 26 25 15 28 13 18
++23 20 24 28 13 18 23 20 24 23 18 22 23 20 24 26 30 28 22 25 24 23 18 22
++23 18 22 23 18 22 23 20 24 23 20 24 22 25 24 22 25 24 23 20 24 26 30 28
++33 30 30 23 20 24 33 30 30 33 30 30 33 30 30 26 24 32 33 30 32 33 30 32
++33 30 32 33 30 32 33 30 32 30 30 34 30 30 34 33 30 30 33 30 30 26 30 28
++33 30 30 33 30 30 26 30 28 23 20 24 33 30 30 23 18 22 26 25 15 23 20 24
++23 18 22 15 22 17 17 12 17 17 12 17 14 16 17 17 12 17 14 16 17 17 12 17
++14 16 17 7 10 17 7 12 13 7 10 17 17 12 17 7 10 17 17 12 17 7 12 13
++15 17 7 17 12 17 17 12 17 14 16 17 23 18 22 23 20 24 26 25 15 22 25 24
++26 25 15 33 30 30 26 25 15 33 30 30 26 25 15 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 52 30 15 33 30 30 33 30 30
++33 30 30 34 30 15 33 30 30 33 30 30 33 30 32 33 30 36 33 30 36 36 35 37
++36 35 37 36 35 37 33 30 36 36 35 37 37 35 43 33 39 38 37 35 43 34 40 43
++37 35 43 37 35 43 37 35 43 37 35 43 42 38 42 42 38 42 43 42 50 42 41 42
++42 41 42 42 38 42 43 42 50 48 44 48 48 44 48 57 43 64 43 42 50 48 50 48
++57 43 64 48 50 48 57 43 64 48 50 48 57 43 64 54 57 61 48 50 48 45 57 61
++48 44 48 57 43 64 45 57 61 57 43 64 54 57 61 54 57 61 54 57 61 57 43 64
++54 57 61 57 43 64 54 57 61 59 55 55 57 43 51 48 50 48 43 42 50 48 44 48
++48 44 48 42 41 42 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 47 47 21 42 38 42 36 35 37 53 35 37 36 35 37 53 35 37
++36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 30 30
++33 30 30 36 35 37 33 30 30 52 30 35 33 30 30 33 30 30 26 25 15 26 30 28
++23 20 24 23 20 24 26 30 28 51 49 42 75 72 67 75 72 67 55 55 48 51 49 42
++60 49 42 63 55 45 88 73 62 117 114 76 168 102 88 168 102 88 117 99 86 117 99 86
++117 114 76 117 99 86 117 99 86 117 112 45 101 83 74 117 114 76 117 99 86 138 102 108
++117 127 86 138 126 108 168 102 88 138 126 108 177 171 115 168 146 127 201 146 124 201 146 124
++168 146 127 201 146 124 168 146 127 201 146 124 177 171 115 201 146 124 168 146 127 201 146 124
++168 146 127 201 146 124 168 146 127 168 102 88 117 114 76 168 102 88 117 99 86 117 99 86
++117 99 86 120 63 71 117 112 45 120 63 71 101 74 26 120 63 71 120 63 71 101 83 74
++168 102 88 138 126 108 201 146 124 177 169 143 217 168 156 217 168 156 217 168 156 138 126 108
++101 74 26 101 74 26 117 99 86 163 117 123 168 146 127 138 126 108 117 99 86 63 55 51
++30 30 34 37 35 43 43 42 50 43 42 50 43 42 50 37 35 43 43 42 50 42 38 42
++43 42 50 42 41 42 48 50 48 43 42 50 36 35 37 22 25 24 23 18 22 15 17 7
++15 17 7 6 15 6 13 4 7 13 4 7 3 3 1 13 4 7 75 56 53 168 146 127
++217 168 156 217 168 156 168 146 127 117 114 76 88 44 51 88 73 31 76 44 53 55 39 37
++34 30 15 33 30 30 33 30 32 33 30 32 23 20 24 14 16 17 23 20 24 23 20 24
++23 18 22 22 25 24 22 25 24 23 18 22 32 39 24 60 49 42 88 73 62 117 99 86
++138 126 108 168 146 127 201 146 124 177 169 143 197 171 123 177 169 143 201 146 124 197 171 123
++189 165 168 201 146 124 201 146 124 168 146 127 168 146 127 201 146 124 168 146 127 168 146 127
++201 146 124 168 146 127 168 146 127 168 146 127 138 126 108 138 126 108 168 102 88 101 83 74
++88 73 62 88 73 31 120 63 71 101 83 74 117 99 86 101 83 74 120 63 71 117 114 76
++168 102 88 138 126 108 163 117 123 138 126 108 168 102 88 138 102 108 101 83 74 60 49 42
++53 35 17 33 30 30 47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 53 46 48
++51 49 42 53 46 48 51 49 42 51 49 42 51 49 42 53 46 48 51 49 42 48 50 48
++51 49 42 52 55 48 51 49 42 48 50 48 48 44 48 53 46 48 48 50 48 48 44 48
++53 46 48 48 50 48 48 44 48 48 50 48 43 42 50 48 50 48 43 42 50 48 50 48
++43 42 50 48 44 48 43 42 50 48 50 48 43 42 50 43 42 50 43 42 50 43 42 50
++48 50 48 43 42 50 48 50 48 43 42 50 48 50 48 43 42 50 48 50 48 48 44 48
++43 42 50 48 44 48 43 42 50 48 44 48 48 44 48 42 47 42 43 42 50 42 41 42
++43 42 50 43 42 50 43 42 50 42 41 42 42 41 42 43 42 50 35 46 43 42 41 42
++43 42 50 35 46 43 43 42 50 43 42 50 43 42 50 45 57 61 43 42 50 43 42 50
++43 42 50 45 57 61 43 42 50 43 42 50 43 42 50 43 42 50 45 57 61 35 47 50
++43 42 50 45 57 61 43 42 50 48 50 48 43 42 50 43 42 50 45 57 61 43 42 50
++43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 48 50 48
++43 42 50 42 47 42 42 47 42 42 41 42 42 41 42 42 41 42 42 41 42 34 40 43
++42 38 42 36 35 37 42 38 42 42 38 42 42 38 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 43 42 50 43 42 50 37 35 43
++34 40 43 37 35 43 34 40 43 28 35 38 37 35 43 28 35 38 37 35 43 34 40 43
++37 35 43 36 35 37 37 35 43 42 38 42 34 40 43 37 35 43 33 39 38 36 35 37
++36 35 37 36 35 37 31 35 35 36 35 37 33 30 30 31 35 35 33 30 32 36 35 37
++36 35 37 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30
++52 30 35 33 30 30 52 30 35 33 30 30 33 30 30 52 30 35 33 30 30 53 35 17
++36 35 37 52 30 35 36 35 37 53 35 37 36 35 37 55 39 37 47 39 42 53 35 37
++36 35 37 47 39 42 42 38 42 53 35 37 36 35 37 47 47 21 42 38 42 53 35 37
++36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 33 30 30 33 30 30 30 30 34
++33 30 30 30 30 34 30 30 34 30 30 34 26 30 28 30 30 34 33 30 30 30 30 34
++33 30 32 36 35 37 36 35 37 42 38 42 42 38 42 42 41 42 42 41 42 48 44 48
++43 42 50 48 50 48 48 50 48 54 57 61 53 46 48 54 57 61 54 57 61 53 46 48
++54 57 61 48 50 48 54 57 61 48 50 48 54 57 61 53 46 48 45 57 61 43 42 50
++43 42 50 48 50 48 43 42 50 42 41 42 34 40 43 42 41 42 33 39 38 36 35 37
++30 30 34 30 30 34 26 30 28 25 30 29 25 30 29 22 25 24 25 30 29 25 30 29
++22 25 24 25 30 29 25 30 29 25 30 29 26 24 32 26 30 28 33 30 30 26 24 32
++26 30 28 33 30 30 26 30 28 33 30 30 26 30 28 33 30 30 26 30 28 26 30 28
++33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 26 30 28
++26 24 32 26 30 28 23 20 24 22 25 24 23 20 24 33 30 30 23 20 24 33 30 30
++26 24 32 33 30 30 26 30 28 33 30 30 26 25 15 33 30 30 33 30 30 29 35 19
++26 30 28 33 30 30 26 30 28 33 30 30 33 30 30 26 30 28 33 30 30 33 30 30
++34 30 15 33 30 30 23 20 24 33 30 30 26 25 15 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 33 30 30 33 30 30
++26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 22 25 24 33 30 30 26 30 28 33 30 30 23 20 24 26 24 32 26 30 28
++23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 15 22 17 23 20 24
++12 18 20 23 18 22 15 22 17 23 20 24 23 20 24 22 25 24 22 25 24 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 33 30 30 22 25 24 26 30 28 33 30 30
++23 20 24 23 20 24 33 30 30 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24
++22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 12 18 30 23 20 24
++
++13 4 7 7 12 13 13 4 7 15 17 7 13 4 7 15 17 7 17 12 17 13 4 7
++15 17 7 17 12 17 15 17 7 15 17 7 17 12 17 15 17 7 14 16 17 14 16 17
++17 12 17 14 16 17 17 12 17 15 17 7 14 16 17 13 4 7 7 12 13 13 4 7
++7 12 13 13 4 7 7 12 13 7 12 13 7 12 13 13 4 7 3 4 9 13 4 7
++3 4 9 13 4 7 7 12 13 13 4 7 17 12 17 7 10 17 14 16 17 14 16 17
++23 20 24 12 18 20 12 18 30 22 25 24 23 30 35 28 35 38 28 35 38 28 35 38
++29 34 50 35 47 50 43 42 50 32 40 58 45 57 61 43 42 50 46 59 71 54 57 61
++46 59 71 45 57 61 57 43 64 45 57 61 54 57 61 43 42 50 45 57 61 43 42 50
++43 42 50 43 42 50 34 40 43 34 40 43 33 30 36 28 30 35 25 30 29 26 24 32
++26 24 32 25 30 29 25 30 29 22 23 31 22 23 31 22 23 31 12 18 30 23 18 22
++12 18 30 12 18 30 12 18 20 23 18 22 12 18 20 12 18 30 12 18 20 12 18 30
++12 18 20 17 12 17 14 16 17 7 12 13 17 12 17 3 4 9 7 12 13 3 4 9
++7 12 13 13 4 7 7 12 13 7 12 13 17 12 17 7 12 13 17 12 17 17 12 17
++14 16 17 17 12 17 14 16 17 23 18 22 17 12 17 14 16 17 17 12 17 17 12 17
++23 18 22 22 24 13 23 18 22 28 13 18 26 25 15 28 13 18 23 20 24 26 25 15
++23 20 24 34 30 15 23 20 24 26 25 15 33 30 30 23 20 24 33 30 30 22 25 24
++22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 33 30 30 26 30 28 26 24 32
++26 30 28 26 24 32 33 30 30 30 30 34 33 30 32 33 30 32 36 35 37 33 30 32
++31 35 35 33 30 32 33 30 32 33 30 32 33 30 32 33 30 30 33 30 30 33 30 30
++33 30 30 26 24 32 33 30 30 33 30 30 22 25 24 22 25 24 22 25 24 23 20 24
++23 18 22 23 18 22 14 16 17 17 12 17 17 12 17 14 16 17 17 12 17 7 10 17
++17 12 17 7 12 13 7 12 13 13 4 7 7 10 17 17 12 17 7 12 13 17 12 17
++17 12 17 14 16 17 17 12 17 23 18 22 14 16 17 23 18 22 23 20 24 23 20 24
++23 20 24 23 20 24 26 25 15 23 20 24 23 20 24 34 30 15 33 30 30 28 13 18
++33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 26 30 28 26 30 28 33 30 30 33 30 32 31 35 35 36 35 37 31 35 35
++30 30 34 33 30 36 28 35 38 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 42 38 42 42 38 42 42 38 42
++42 38 42 42 41 42 43 42 50 43 42 50 48 44 48 43 42 50 48 50 48 57 43 64
++48 44 48 48 50 48 48 44 48 48 50 48 57 43 64 48 50 48 57 43 64 57 43 51
++43 42 50 57 43 64 48 44 48 57 43 64 48 50 48 57 43 51 59 55 55 54 57 61
++59 55 55 54 57 61 53 46 48 54 57 61 53 46 48 48 44 48 48 44 48 47 39 42
++47 39 42 36 35 37 36 35 37 53 35 37 32 39 24 52 30 35 32 39 24 36 35 37
++53 35 17 36 35 37 47 39 42 36 35 37 53 35 37 42 38 42 47 47 21 36 35 37
++53 35 37 36 35 37 47 39 42 47 39 42 36 35 37 52 30 35 36 35 37 52 30 35
++36 35 37 33 30 30 32 39 24 33 30 30 33 30 30 23 20 24 33 30 30 23 20 24
++22 25 24 22 24 13 33 30 30 53 46 48 75 72 67 75 63 62 51 49 42 55 39 37
++75 73 36 101 83 74 168 102 88 168 102 88 146 150 115 168 102 88 201 146 124 195 113 123
++201 146 124 201 146 124 168 102 88 138 102 108 168 102 88 117 114 76 117 114 76 168 102 88
++117 114 76 138 126 108 117 127 86 168 102 88 168 146 127 168 102 88 177 171 115 168 102 88
++201 146 124 168 146 127 201 146 124 177 171 115 201 146 124 201 146 124 197 171 123 197 171 123
++201 146 124 197 171 123 201 146 124 146 150 115 168 102 88 117 99 86 117 99 86 101 74 26
++52 30 15 52 30 15 52 30 15 76 46 20 88 44 51 117 112 45 168 102 88 168 146 127
++168 146 127 201 146 124 168 146 127 201 146 124 217 168 156 177 169 143 217 168 156 168 102 88
++120 63 71 168 102 88 168 146 127 177 169 143 168 146 127 138 126 108 101 83 74 53 46 48
++30 30 34 37 35 43 34 40 43 37 35 43 35 47 50 34 40 43 43 42 50 37 35 43
++34 40 43 48 44 48 54 57 61 48 50 48 33 30 32 23 18 22 14 16 17 17 12 17
++7 12 13 13 4 7 6 15 6 3 3 1 13 4 7 13 4 7 60 49 42 138 126 108
++177 169 143 217 168 156 201 146 124 201 146 124 117 114 76 101 60 73 76 46 20 76 46 20
++52 30 35 52 30 15 55 39 37 33 30 30 26 25 15 23 18 22 22 24 13 23 20 24
++15 22 17 23 18 22 26 25 15 26 30 28 55 39 37 63 55 45 88 73 62 117 127 86
++163 117 123 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124
++197 171 123 168 146 127 168 146 127 201 146 124 168 146 127 168 146 127 168 146 127 168 146 127
++163 117 123 146 150 115 168 146 127 168 102 88 168 146 127 163 117 123 138 126 108 117 114 76
++120 63 71 101 83 74 88 73 62 88 73 62 101 74 26 120 63 71 117 114 76 117 114 76
++146 150 115 168 102 88 138 126 108 117 99 86 117 114 76 88 73 31 55 39 37 53 35 17
++36 35 37 60 49 42 51 49 42 51 49 42 47 44 42 47 44 42 51 49 42 53 46 48
++51 49 42 51 49 42 51 49 42 53 46 48 51 49 42 51 49 42 47 44 42 47 49 42
++51 49 42 51 49 42 48 50 48 53 46 48 48 50 48 48 50 48 48 44 48 48 50 48
++47 49 42 48 44 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 43 42 50 48 50 48 43 42 50 43 42 50 43 42 50 43 55 48 43 42 50
++43 55 48 43 42 50 43 42 50 45 57 61 43 42 50 48 50 48 43 42 50 48 50 48
++43 42 50 48 50 48 43 42 50 43 42 50 43 42 50 48 50 48 48 44 48 43 42 50
++43 42 50 42 41 42 42 41 42 42 41 42 42 47 42 42 41 42 43 42 50 43 42 50
++35 46 43 43 42 50 43 42 50 35 47 50 42 41 42 43 42 50 43 42 50 43 42 50
++43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 35 47 50 43 42 50 43 42 50
++43 42 50 43 42 50 43 42 50 43 42 50 35 47 50 43 42 50 43 42 50 43 42 50
++35 47 50 43 42 50 43 42 50 43 42 50 43 42 50 48 44 48 43 42 50 48 44 48
++42 47 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 38 42 36 35 37 42 38 42 42 41 42 42 41 42 42 41 42 43 42 50
++42 41 42 43 42 50 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 43 42 50
++34 40 43 34 40 43 34 40 43 37 35 43 33 39 38 37 35 43 28 35 38 33 39 38
++37 35 43 34 40 43 37 35 43 34 40 43 37 35 43 37 35 43 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 31 35 35 36 35 37 33 30 30 36 35 37 33 30 32
++33 30 30 36 35 37 32 39 24 52 30 35 33 30 30 36 35 37 33 30 30 33 30 30
++52 30 35 32 39 24 52 30 35 33 30 32 53 35 17 33 30 30 52 30 35 33 30 30
++52 30 35 36 35 37 53 35 17 36 35 37 53 35 37 47 47 21 55 39 37 36 35 37
++53 35 37 53 35 37 53 35 37 36 35 37 53 35 37 53 35 37 36 35 37 53 35 37
++47 39 42 32 39 24 53 35 37 33 30 30 36 35 37 33 30 32 33 30 30 33 30 30
++33 30 32 26 30 28 33 30 30 33 30 32 26 30 28 26 24 32 26 30 28 30 30 34
++30 30 34 36 35 37 36 35 37 36 35 37 34 40 43 42 41 42 42 47 42 43 42 50
++48 50 48 48 44 48 48 50 48 48 50 48 48 50 48 59 55 55 52 55 48 54 57 61
++52 55 48 54 57 61 48 50 48 59 55 55 48 50 48 59 55 55 52 55 48 48 50 48
++48 50 48 42 47 42 43 42 50 35 46 43 42 41 42 34 40 43 34 40 43 33 39 38
++31 35 35 28 30 35 25 30 29 25 30 29 22 23 31 25 30 29 22 25 24 22 25 24
++22 23 31 22 25 24 26 24 32 26 30 28 33 30 30 26 24 32 26 30 28 26 30 28
++33 30 30 26 30 28 26 30 28 33 30 30 26 24 32 33 30 30 26 30 28 33 30 30
++26 30 28 26 24 32 30 30 34 26 24 32 33 30 30 26 30 28 33 30 30 33 30 30
++26 30 28 33 30 30 23 20 24 33 30 30 33 30 30 22 25 24 26 30 28 26 24 32
++34 30 15 22 25 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 34 30 15 33 30 30 34 30 15 33 30 30 26 30 28 34 30 15 33 30 30
++33 30 30 33 30 30 33 30 30 22 25 24 23 20 24 33 30 30 22 25 24 23 20 24
++22 25 24 23 18 22 23 20 24 22 25 24 26 25 15 33 30 30 23 20 24 33 30 30
++23 20 24 33 30 30 26 24 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 26 25 15 26 30 28 23 20 24 33 30 30 22 25 24 26 24 32
++22 25 24 22 25 24 22 25 24 23 20 24 23 20 24 15 22 17 23 20 24 12 18 20
++23 18 22 23 18 22 23 18 22 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24
++22 25 24 22 25 24 23 20 24 26 30 28 23 20 24 33 30 30 22 25 24 26 25 15
++22 25 24 26 30 28 26 25 15 26 30 28 26 25 15 22 25 24 23 20 24 22 25 24
++23 20 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 23 20 24
++
++7 12 13 13 4 7 7 12 13 17 12 17 17 12 17 17 12 17 13 4 7 14 16 17
++17 12 17 17 12 17 17 12 17 23 10 10 14 16 17 17 12 17 14 16 17 15 17 7
++17 12 17 14 16 17 15 17 7 17 12 17 15 17 7 7 12 13 17 12 17 7 12 13
++13 4 7 7 12 13 13 4 7 3 4 9 13 4 7 3 4 9 6 15 6 13 4 7
++3 4 9 3 4 9 13 4 7 7 12 13 7 12 13 7 12 13 17 12 17 12 18 20
++12 18 20 23 20 24 12 18 20 22 23 31 23 30 35 23 30 35 23 30 35 28 35 38
++34 40 43 35 47 50 35 47 50 43 42 50 32 40 58 45 57 61 57 43 64 45 57 61
++54 57 61 45 57 61 45 57 61 43 42 50 43 42 50 32 40 58 43 42 50 32 40 58
++43 42 50 34 40 43 37 35 43 36 35 37 28 30 35 28 30 35 28 30 35 26 24 32
++25 30 29 26 24 32 26 24 32 22 23 31 22 23 31 22 23 31 22 23 31 12 18 30
++12 18 30 23 18 22 12 18 30 12 18 30 23 18 22 12 18 20 12 18 20 17 12 17
++12 18 20 17 12 17 12 18 20 7 10 17 7 12 13 3 4 9 13 4 7 7 12 13
++13 4 7 7 12 13 7 12 13 13 4 7 17 12 17 17 12 17 17 12 17 7 12 13
++14 16 17 14 16 17 17 12 17 14 16 17 17 12 17 23 18 22 17 12 17 26 25 15
++23 18 22 23 18 22 23 18 22 26 25 15 28 13 18 26 25 15 34 30 15 23 20 24
++34 30 15 23 20 24 33 30 30 28 13 18 33 30 30 33 30 30 23 20 24 33 30 30
++26 24 32 33 30 30 33 30 30 26 24 32 26 30 28 26 24 32 23 20 24 33 30 30
++26 30 28 30 30 34 33 30 32 31 35 35 33 30 36 36 35 37 33 30 32 33 30 32
++33 30 32 31 35 35 33 30 32 36 35 37 33 30 32 33 30 32 33 30 30 33 30 30
++33 30 30 33 30 30 22 25 24 23 20 24 33 30 30 23 20 24 22 25 24 23 20 24
++23 18 22 23 18 22 14 16 17 17 12 17 14 16 17 17 12 17 17 12 17 17 12 17
++7 10 17 7 12 13 7 12 13 7 12 13 17 12 17 7 10 17 17 12 17 7 12 13
++14 16 17 14 16 17 14 16 17 14 16 17 23 18 22 23 18 22 22 25 24 23 20 24
++26 25 15 23 20 24 33 30 30 28 13 18 33 30 30 23 20 24 33 30 30 33 30 30
++23 20 24 33 30 30 28 13 18 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++29 35 19 26 30 28 22 25 24 26 30 28 33 30 30 33 30 30 30 30 34 30 30 34
++30 30 34 30 30 34 33 30 36 33 30 36 28 35 38 36 35 37 37 35 43 33 39 38
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 42 38 42
++47 39 42 42 38 42 42 41 42 43 42 50 43 42 50 48 44 48 57 43 64 48 50 48
++43 42 50 57 43 64 48 44 48 57 43 64 53 46 48 48 50 48 48 50 48 43 42 50
++48 50 48 48 44 48 57 43 64 48 50 48 54 57 61 48 50 48 57 43 64 53 46 48
++57 43 64 53 46 48 53 46 48 53 46 48 48 44 48 48 44 48 43 42 50 42 38 42
++42 38 42 42 38 42 33 30 30 36 35 37 33 30 30 33 30 30 52 30 35 36 35 37
++36 35 37 33 30 30 52 30 35 32 39 24 36 35 37 47 47 21 42 38 42 42 38 42
++42 41 42 53 35 37 36 35 37 47 39 42 42 38 42 36 35 37 36 35 37 33 30 30
++36 35 37 33 30 30 33 30 30 33 30 30 26 30 28 26 25 15 33 30 30 26 30 28
++26 25 15 22 25 24 33 30 30 55 55 48 75 63 62 65 63 61 60 49 42 60 49 42
++88 73 62 138 102 108 168 102 88 117 99 86 176 103 41 168 102 88 168 102 88 177 171 115
++201 146 124 197 171 123 177 169 143 197 171 123 168 146 127 138 126 108 117 114 76 117 114 76
++138 126 108 168 102 88 117 127 86 168 102 88 146 150 115 201 146 124 201 146 124 177 171 115
++168 102 88 201 146 124 177 171 115 201 146 124 201 146 124 177 169 143 201 146 124 177 169 143
++217 168 156 197 171 123 201 146 124 201 146 124 163 117 123 138 126 108 117 99 86 120 63 71
++76 46 20 52 30 15 53 35 17 76 46 20 88 73 62 138 102 108 168 146 127 197 171 123
++168 146 127 168 146 127 201 146 124 201 146 124 201 146 124 197 171 123 217 168 156 168 146 127
++146 150 115 138 126 108 168 146 127 217 168 156 189 165 168 138 102 108 75 63 62 36 35 37
++33 30 32 33 39 38 34 40 43 34 40 43 34 40 43 43 42 50 43 42 50 37 35 43
++43 42 50 48 50 48 54 57 61 48 50 48 33 30 32 23 18 22 15 17 7 13 4 7
++6 15 6 15 17 7 7 12 13 13 4 7 13 4 7 3 3 1 53 35 17 117 99 86
++168 146 127 217 168 156 217 168 156 197 171 123 163 117 123 120 63 71 88 73 31 76 44 53
++75 56 53 63 55 45 60 49 42 34 30 15 26 25 15 23 18 22 23 20 24 22 24 13
++15 22 17 14 16 17 22 25 24 33 30 30 60 49 42 75 73 58 101 83 74 138 126 108
++168 146 127 177 171 115 201 146 124 177 169 143 201 146 124 217 168 156 197 171 123 177 169 143
++201 146 124 197 171 123 168 146 127 168 146 127 168 146 127 168 102 88 146 150 115 168 102 88
++146 150 115 168 102 88 168 146 127 138 126 108 168 146 127 168 102 88 138 126 108 168 102 88
++117 99 86 101 83 74 101 74 26 120 63 71 88 73 62 117 112 45 168 102 88 138 126 108
++168 102 88 117 127 86 117 99 86 120 63 71 75 73 36 60 49 42 60 49 42 63 55 45
++63 55 45 55 55 48 51 49 42 55 39 37 47 44 42 51 49 42 47 44 42 51 49 42
++53 46 48 51 49 42 48 44 48 51 49 42 47 49 42 48 44 48 47 49 42 47 44 42
++47 49 42 48 44 48 48 50 48 47 49 42 47 44 42 48 44 48 48 44 48 48 44 48
++47 49 42 51 49 42 48 50 48 48 44 48 48 44 48 48 44 48 48 50 48 48 44 48
++48 50 48 43 42 50 48 50 48 48 50 48 43 42 50 48 50 48 43 42 50 43 42 50
++43 42 50 43 55 48 43 42 50 48 50 48 43 42 50 48 50 48 43 42 50 48 50 48
++48 44 48 43 42 50 48 50 48 48 50 48 48 50 48 43 42 50 42 47 42 48 44 48
++42 41 42 42 38 42 34 40 43 42 41 42 34 40 43 42 41 42 43 42 50 42 41 42
++43 42 50 35 47 50 42 47 42 43 42 50 42 41 42 34 40 43 43 42 50 43 42 50
++43 42 50 43 42 50 43 42 50 43 42 50 42 41 42 34 40 43 34 40 43 43 42 50
++34 40 43 42 41 42 34 40 43 43 42 50 35 47 50 35 47 50 43 42 50 34 40 43
++43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 42 41 42 43 42 50 43 42 50
++42 41 42 42 41 42 42 41 42 47 44 42 47 39 42 42 41 42 42 41 42 42 38 42
++42 41 42 42 38 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++34 40 43 34 40 43 34 40 43 34 40 43 34 40 43 28 35 38 37 35 43 33 39 38
++37 35 43 28 35 38 34 40 43 37 35 43 37 35 43 34 40 43 37 35 43 33 39 38
++36 35 37 36 35 37 33 30 32 31 35 35 33 30 32 33 30 32 33 30 30 33 30 32
++33 30 32 33 30 32 33 30 32 33 30 30 33 30 30 52 30 35 33 30 30 36 35 37
++33 30 30 52 30 35 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30 53 35 37
++32 39 24 52 30 35 36 35 37 53 35 37 53 35 37 36 35 37 55 39 37 55 39 37
++55 39 37 42 41 42 47 47 21 47 39 42 53 35 37 42 41 42 47 47 21 47 39 42
++36 35 37 53 35 37 32 39 24 36 35 37 33 30 30 36 35 37 33 30 30 31 35 35
++26 30 28 33 30 30 30 30 34 26 30 28 26 24 32 33 30 30 30 30 34 30 30 34
++33 30 32 30 30 34 36 35 37 36 35 37 36 35 37 42 41 42 42 41 42 43 42 50
++48 44 48 43 42 50 48 50 48 43 42 50 54 57 61 48 44 48 59 55 55 52 55 48
++59 55 55 48 50 48 54 57 61 53 46 48 59 55 55 48 50 48 54 57 61 48 50 48
++45 57 61 48 44 48 48 50 48 42 47 42 34 40 43 42 41 42 34 40 43 31 35 35
++31 35 35 28 30 35 25 30 29 25 30 29 25 30 29 22 25 24 22 23 31 22 25 24
++26 24 32 25 30 29 25 30 29 26 24 32 26 30 28 26 24 32 33 30 30 26 24 32
++33 30 30 33 30 30 30 30 34 33 30 32 30 30 34 33 30 30 26 24 32 26 30 28
++33 30 30 26 30 28 30 30 34 26 30 28 33 30 30 26 30 28 33 30 30 26 30 28
++26 30 28 22 25 24 33 30 30 26 30 28 23 20 24 33 30 30 26 25 15 33 30 30
++26 30 28 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 32 39 24
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 26 30 28
++33 30 30 33 30 30 23 20 24 33 30 30 26 25 15 22 25 24 33 30 30 23 20 24
++22 25 24 22 25 24 22 25 24 22 25 24 33 30 30 23 20 24 33 30 30 22 25 24
++33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++34 30 15 33 30 30 33 30 30 26 30 28 33 30 30 22 25 24 33 30 30 22 25 24
++26 30 28 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 15 22 17 23 18 22
++12 18 20 23 18 22 15 22 17 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24
++22 25 24 22 25 24 33 30 30 23 20 24 33 30 30 23 20 24 26 30 28 33 30 30
++33 30 30 22 25 24 33 30 30 23 20 24 33 30 30 23 20 24 22 25 24 26 30 28
++22 25 24 26 30 28 22 23 31 25 30 29 22 23 31 22 25 24 22 23 31 22 23 31
++
++13 4 7 15 17 7 13 4 7 17 12 17 13 4 7 23 10 10 17 12 17 17 12 17
++14 16 17 17 12 17 15 17 7 17 12 17 15 17 7 14 16 17 14 16 17 23 18 22
++14 16 17 17 12 17 17 12 17 15 17 7 17 12 17 15 17 7 13 4 7 17 12 17
++7 12 13 13 4 7 7 12 13 13 4 7 3 4 9 13 4 7 13 4 7 3 4 9
++3 4 9 13 4 7 3 4 9 7 12 13 13 4 7 7 10 17 17 12 17 12 18 20
++23 18 22 12 18 20 12 18 30 15 22 17 12 18 30 25 30 29 24 30 43 28 35 38
++29 34 50 29 34 50 34 40 43 32 40 58 35 47 50 43 42 50 32 40 58 57 43 64
++45 57 61 57 43 64 43 42 50 45 57 61 32 40 58 43 42 50 43 42 50 43 42 50
++34 40 43 37 35 43 36 35 37 28 30 35 28 30 35 26 24 32 28 30 35 25 30 29
++26 24 32 26 24 32 22 23 31 22 23 31 12 18 30 22 23 31 12 18 30 22 23 31
++22 23 31 12 18 30 23 20 24 12 18 20 12 18 30 12 18 30 12 18 20 12 18 30
++12 18 20 12 18 20 17 12 17 17 12 17 7 12 13 7 12 13 7 12 13 7 12 13
++7 12 13 7 12 13 7 12 13 7 12 13 17 12 17 7 12 13 14 16 17 17 12 17
++17 12 17 14 16 17 23 18 22 14 16 17 23 18 22 17 12 17 23 18 22 23 18 22
++23 18 22 26 25 15 23 20 24 26 25 15 23 20 24 34 30 15 23 20 24 34 30 15
++23 20 24 34 30 15 33 30 30 33 30 30 33 30 30 23 20 24 33 30 30 33 30 30
++23 20 24 33 30 30 26 24 32 33 30 30 26 24 32 33 30 30 33 30 30 26 24 32
++30 30 34 33 30 32 30 30 34 31 35 35 31 35 35 33 30 32 33 30 32 31 35 35
++33 30 32 31 35 35 33 30 32 36 35 37 36 35 37 31 35 35 33 30 30 33 30 30
++26 30 28 33 30 30 33 30 30 33 30 30 22 25 24 22 25 24 22 25 24 23 20 24
++23 18 22 23 18 22 23 18 22 17 12 17 17 12 17 14 16 17 14 16 17 17 12 17
++17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 7 10 17 17 12 17 14 16 17
++17 12 17 14 16 17 17 12 17 14 16 17 23 18 22 23 20 24 23 18 22 23 18 22
++23 20 24 26 25 15 23 20 24 26 25 15 33 30 30 26 25 15 23 20 24 34 30 15
++23 20 24 33 30 30 33 30 30 26 30 28 33 30 30 34 30 15 33 30 30 33 30 30
++33 30 30 22 25 24 33 30 30 26 30 28 26 30 28 26 30 28 26 30 28 26 30 28
++30 30 34 30 30 34 30 30 34 30 30 34 33 30 36 33 30 36 31 35 35 36 35 37
++36 35 37 36 35 37 33 30 32 36 35 37 33 30 30 36 35 37 36 35 37 42 38 42
++42 38 42 37 35 43 42 38 42 42 41 42 43 42 50 48 44 48 43 55 48 57 43 64
++48 50 48 48 50 48 48 44 48 48 50 48 57 43 51 48 44 48 57 43 64 48 44 48
++57 43 64 48 44 48 48 44 48 57 43 64 48 44 48 48 44 48 48 50 48 53 46 48
++48 50 48 53 46 48 48 44 48 48 44 48 48 44 48 48 44 48 47 39 42 36 35 37
++53 35 37 33 30 30 36 35 37 33 30 32 53 35 17 36 35 37 33 30 30 32 39 24
++36 35 37 47 47 21 36 35 37 36 35 37 53 35 37 36 35 37 53 35 37 36 35 37
++47 47 21 42 41 42 47 44 42 36 35 37 53 35 37 36 35 37 53 35 37 33 30 30
++52 30 35 33 30 30 33 30 30 26 30 28 33 30 30 26 30 28 33 30 30 33 30 30
++22 25 24 22 25 24 33 30 30 51 49 42 65 57 61 65 55 54 62 47 47 64 70 48
++120 63 71 117 114 76 120 63 71 122 49 24 120 63 71 101 74 26 168 102 88 168 102 88
++201 146 124 217 168 156 217 168 156 217 168 156 197 171 123 168 146 127 138 126 108 168 102 88
++117 114 76 117 127 86 138 126 108 168 102 88 177 171 115 168 102 88 168 146 127 201 146 124
++177 171 115 201 146 124 201 146 124 177 171 115 201 146 124 197 171 123 197 171 123 201 146 124
++177 169 143 201 146 124 189 165 168 197 171 123 168 146 127 201 146 124 163 117 123 138 102 108
++117 99 86 101 83 74 101 83 74 120 63 71 117 114 76 138 126 108 168 102 88 201 146 124
++168 146 127 201 146 124 168 146 127 201 146 124 177 169 143 201 146 124 197 171 123 217 168 156
++197 171 123 168 102 88 138 126 108 163 117 123 168 146 127 117 99 86 60 49 42 33 30 30
++33 30 36 37 35 43 37 35 43 34 40 43 37 35 43 35 47 50 43 42 50 43 42 50
++43 42 50 52 55 48 54 57 61 48 44 48 33 30 30 23 18 22 14 16 17 14 16 17
++17 12 17 14 16 17 23 18 22 15 17 7 13 4 7 3 3 1 26 12 13 88 73 62
++163 117 123 197 171 123 217 168 156 217 168 156 197 171 123 168 102 88 117 99 86 101 83 74
++101 83 74 101 83 74 75 56 53 33 30 30 26 12 13 22 25 24 26 25 15 23 18 22
++14 16 17 23 18 22 29 35 19 53 35 37 63 55 45 101 83 74 117 114 76 168 146 127
++168 146 127 177 169 143 201 146 124 217 168 156 197 171 123 177 169 143 197 171 123 201 146 124
++177 169 143 201 146 124 168 146 127 177 171 115 168 102 88 138 126 108 168 102 88 138 126 108
++168 102 88 168 146 127 168 102 88 168 146 127 168 102 88 146 150 115 163 117 123 117 114 76
++101 83 74 120 63 71 88 73 62 98 106 55 120 63 71 117 99 86 117 99 86 117 99 86
++117 112 45 120 63 71 88 73 62 76 46 20 76 46 20 88 73 62 117 99 86 117 99 86
++75 77 62 47 44 42 55 39 37 47 44 42 47 44 42 47 44 42 47 44 42 51 49 42
++47 44 42 51 49 42 47 44 42 47 44 42 47 44 42 47 44 42 47 49 42 47 44 42
++47 49 42 47 49 42 48 44 48 47 44 42 47 44 42 48 44 48 47 44 42 48 44 48
++47 44 42 48 44 48 48 50 48 48 44 48 48 44 48 48 44 48 48 50 48 43 42 50
++48 50 48 48 50 48 43 42 50 48 50 48 45 57 61 43 42 50 45 57 61 48 50 48
++45 57 61 43 42 50 48 50 48 48 50 48 43 42 50 43 42 50 48 44 48 48 50 48
++43 42 50 48 50 48 43 42 50 43 42 50 42 47 42 43 42 50 42 41 42 43 42 50
++43 42 50 43 42 50 43 42 50 42 41 42 42 38 42 34 40 43 34 40 43 43 42 50
++42 47 42 43 42 50 42 41 42 34 40 43 34 40 43 42 41 42 42 41 42 43 42 50
++34 40 43 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 34 40 43
++43 42 50 43 42 50 34 40 43 35 47 50 43 42 50 34 40 43 43 42 50 34 40 43
++34 40 43 34 40 43 43 42 50 34 40 43 43 42 50 42 41 42 43 42 50 42 41 42
++42 47 42 42 41 42 42 41 42 47 44 42 47 44 42 47 39 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 43 42 50 47 39 42 42 41 42 42 41 42 42 41 42 42 41 42 43 42 50
++42 38 42 34 40 43 34 40 43 34 40 43 37 35 43 37 35 43 34 40 43 28 35 38
++37 35 43 33 39 38 37 35 43 34 40 43 37 35 43 42 41 42 34 40 43 37 35 43
++36 35 37 36 35 37 31 35 35 33 30 32 31 35 35 33 30 32 31 35 35 33 30 32
++33 30 32 33 30 30 36 35 37 33 30 30 36 35 37 32 39 24 33 30 30 33 30 30
++33 30 30 33 30 30 53 35 17 33 30 30 33 30 30 52 30 35 32 39 24 52 30 35
++33 30 30 52 30 35 33 30 30 53 35 37 32 39 24 53 35 37 47 47 21 42 41 42
++53 35 37 55 39 37 47 39 42 53 35 37 42 41 42 47 39 42 53 35 37 36 35 37
++53 35 37 36 35 37 36 35 37 33 30 30 36 35 37 32 39 24 33 30 30 33 30 30
++33 30 32 26 30 28 30 30 34 33 30 32 26 30 28 26 30 28 26 30 28 30 30 34
++30 30 34 31 35 35 30 30 34 36 35 37 36 35 37 37 35 43 42 41 42 42 41 42
++42 47 42 48 44 48 43 42 50 48 50 48 43 42 50 48 50 48 59 55 55 48 50 48
++59 55 55 59 55 55 52 55 48 59 55 55 59 55 55 59 55 55 53 46 48 54 57 61
++59 55 55 48 50 48 43 55 48 43 42 50 42 41 42 42 41 42 34 40 43 33 39 38
++31 35 35 31 35 35 30 30 34 28 30 35 25 30 29 25 30 29 26 24 32 26 30 28
++26 24 32 26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 25 30 29 33 30 30
++26 30 28 26 30 28 33 30 30 33 30 32 26 24 32 30 30 34 26 30 28 33 30 30
++26 30 28 33 30 32 26 30 28 30 30 34 26 30 28 33 30 30 26 30 28 26 24 32
++33 30 30 26 30 28 33 30 30 23 20 24 33 30 30 26 30 28 33 30 30 26 30 28
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 22 25 24 26 30 28 26 30 28 22 25 24 22 25 24
++26 25 15 23 20 24 23 20 24 22 25 24 22 25 24 23 20 24 33 30 30 23 20 24
++33 30 30 23 20 24 26 24 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 26 30 28 33 30 30 33 30 30 26 30 28
++26 24 32 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 23 20 24 12 18 20
++14 16 17 12 18 20 23 20 24 23 20 24 23 20 24 26 24 32 26 24 32 22 25 24
++26 30 28 23 20 24 33 30 30 22 25 24 22 25 24 33 30 30 26 25 15 26 30 28
++26 25 15 33 30 30 26 25 15 26 30 28 26 25 15 33 30 30 26 30 28 33 30 30
++26 30 28 26 30 28 25 30 29 25 30 29 25 30 29 26 24 32 26 24 32 25 30 29
++
++7 12 13 17 12 17 17 12 17 15 17 7 17 12 17 17 12 17 15 17 7 17 12 17
++17 12 17 26 12 13 14 16 17 17 12 17 17 12 17 17 12 17 26 12 13 14 16 17
++17 12 17 14 16 17 14 16 17 17 12 17 15 17 7 17 12 17 7 12 13 13 4 7
++7 12 13 13 4 7 3 4 9 13 4 7 7 12 13 13 4 7 7 12 13 3 4 9
++7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 17 12 17 17 12 17 14 16 17
++12 18 20 23 18 22 23 20 24 22 23 31 22 23 31 23 30 35 23 30 35 28 35 38
++28 35 38 29 34 50 29 34 50 35 47 50 32 40 58 43 42 50 45 57 61 32 40 58
++43 42 50 32 40 58 43 42 50 43 42 50 43 42 50 32 40 58 34 40 43 34 40 43
++29 34 50 28 35 38 33 30 36 28 30 35 28 30 35 26 24 32 28 30 35 26 24 32
++26 24 32 26 24 32 23 30 35 22 23 31 22 25 24 22 23 31 22 23 31 12 18 30
++22 23 31 12 18 30 12 18 30 12 18 30 22 23 31 12 18 30 12 18 30 17 12 17
++12 18 20 7 10 17 12 18 20 7 10 17 7 10 17 13 4 7 7 12 13 13 4 7
++7 12 13 17 12 17 13 4 7 7 12 13 15 17 7 17 12 17 14 16 17 17 12 17
++14 16 17 23 18 22 15 22 17 23 18 22 22 24 13 23 18 22 26 25 15 23 18 22
++26 25 15 23 18 22 34 30 15 33 30 30 26 25 15 34 30 15 23 20 24 34 30 15
++33 30 30 33 30 30 28 13 18 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30
++33 30 30 33 30 30 26 24 32 33 30 32 33 30 36 33 30 36 33 30 36 31 35 35
++33 30 36 31 35 35 30 30 34 33 30 32 30 30 34 31 35 35 36 35 37 36 35 37
++31 35 35 36 35 37 33 30 32 31 35 35 33 30 30 31 35 35 33 30 30 32 39 24
++33 30 30 26 30 28 22 25 24 23 20 24 26 24 32 23 20 24 23 20 24 23 20 24
++23 18 22 12 18 20 23 18 22 14 16 17 17 12 17 14 16 17 17 12 17 7 10 17
++14 16 17 7 10 17 7 12 13 7 10 17 17 12 17 7 10 17 17 12 17 14 16 17
++14 16 17 14 16 17 14 16 17 23 18 22 23 18 22 15 22 17 23 18 22 22 25 24
++23 20 24 23 20 24 23 20 24 33 30 30 23 20 24 23 20 24 22 25 24 33 30 30
++26 24 32 33 30 30 34 30 15 26 30 28 23 20 24 33 30 30 26 30 28 26 30 28
++23 20 24 33 30 30 22 25 24 26 24 32 26 30 28 26 24 32 26 24 32 33 30 30
++30 30 34 26 30 28 26 24 32 30 30 34 30 30 34 33 30 32 33 30 36 33 30 36
++33 30 32 36 35 37 33 30 32 33 30 32 33 30 30 36 35 37 33 30 32 36 35 37
++36 35 37 42 38 42 42 38 42 42 38 42 43 42 50 48 44 48 48 44 48 48 50 48
++43 42 50 57 43 64 54 57 61 57 43 51 43 42 50 54 57 61 48 44 48 48 50 48
++48 44 48 48 50 48 48 44 48 48 50 48 48 44 48 53 46 48 57 43 51 43 42 50
++48 44 48 48 44 48 48 44 48 47 44 42 47 44 42 47 39 42 42 41 42 42 38 42
++36 35 37 36 35 37 52 30 35 33 30 30 36 35 37 33 30 30 53 35 37 36 35 37
++52 30 35 33 30 30 53 35 37 47 47 21 36 35 37 42 38 42 42 38 42 47 39 42
++42 38 42 53 35 37 36 35 37 47 47 21 36 35 37 33 30 30 36 35 37 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 26 30 28 33 30 30 26 24 32
++22 25 24 26 24 32 33 30 30 47 44 42 65 55 54 63 55 51 51 49 42 75 56 53
++101 83 74 117 99 86 176 103 41 117 99 86 195 113 123 168 102 88 117 112 45 168 102 88
++168 146 127 201 146 124 197 171 123 197 171 123 197 171 123 197 171 123 168 146 127 138 126 108
++168 102 88 138 126 108 168 102 88 138 126 108 157 148 53 168 146 127 201 146 124 168 102 88
++201 146 124 177 171 115 201 146 124 201 146 124 201 146 124 197 171 123 201 146 124 177 169 143
++201 146 124 217 168 156 201 146 124 217 168 156 201 146 124 177 169 143 168 146 127 163 117 123
++163 117 123 168 102 88 138 126 108 168 102 88 163 117 123 168 102 88 168 146 127 168 146 127
++201 146 124 168 146 127 201 146 124 201 146 124 197 171 123 217 168 156 201 146 124 217 168 156
++197 171 123 163 117 123 101 83 74 88 73 62 101 83 74 88 83 74 51 49 42 36 35 37
++36 35 37 37 35 43 37 35 43 37 35 43 37 35 43 42 41 42 42 41 42 43 42 50
++48 50 48 55 55 48 51 49 42 36 35 37 36 35 37 22 25 24 23 18 22 22 24 13
++23 18 22 26 25 15 17 12 17 15 17 7 13 4 7 3 3 1 26 12 13 88 73 31
++138 102 108 197 171 123 177 169 143 217 168 156 208 215 180 217 168 156 168 146 127 117 114 76
++168 102 88 101 83 74 75 73 36 52 30 15 17 12 17 26 25 15 23 18 22 23 10 10
++22 24 13 26 25 15 33 30 30 55 39 37 88 73 62 117 99 86 168 146 127 168 146 127
++201 146 124 201 146 124 177 169 143 197 171 123 201 146 124 177 169 143 201 146 124 177 169 143
++201 146 124 197 171 123 168 146 127 168 146 127 168 102 88 117 127 86 117 99 86 117 114 76
++117 99 86 138 126 108 168 146 127 168 146 127 168 146 127 163 117 123 168 102 88 117 114 76
++120 63 71 101 74 26 88 73 62 120 63 71 101 74 26 117 99 86 120 63 71 101 74 26
++88 73 62 76 46 20 76 46 20 75 56 53 88 73 62 138 126 108 138 126 108 138 126 108
++75 63 62 52 30 35 32 39 24 47 44 42 47 44 42 47 44 42 55 39 37 51 49 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 48 44 48 47 44 42
++47 44 42 48 44 48 47 44 42 48 44 48 48 44 48 48 44 48 48 44 48 48 44 48
++47 44 42 48 44 48 47 44 42 48 44 48 43 42 50 48 44 48 48 44 48 48 44 48
++48 44 48 43 42 50 48 50 48 48 50 48 43 42 50 48 50 48 43 42 50 48 50 48
++43 42 50 48 50 48 45 57 61 43 42 50 48 50 48 43 42 50 48 50 48 43 42 50
++43 42 50 43 42 50 43 42 50 48 44 48 42 41 42 42 47 42 43 42 50 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 34 40 43 42 38 42 42 41 42 34 40 43
++42 41 42 35 46 43 42 41 42 42 41 42 42 41 42 42 41 42 34 40 43 43 42 50
++42 41 42 43 42 50 42 47 42 43 42 50 43 42 50 42 47 42 43 42 50 43 42 50
++34 40 43 34 40 43 34 40 43 43 42 50 34 40 43 35 47 50 34 40 43 43 42 50
++34 40 43 43 42 50 34 40 43 43 42 50 43 42 50 43 42 50 43 42 50 48 44 48
++42 41 42 47 44 42 47 44 42 47 39 42 47 39 42 47 44 42 42 41 42 42 38 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 47 39 42
++42 41 42 42 41 42 42 41 42 47 44 42 42 41 42 43 42 50 43 42 50 42 38 42
++34 40 43 34 40 43 34 40 43 34 40 43 34 40 43 28 35 38 33 39 38 34 40 43
++28 35 38 34 40 43 34 40 43 37 35 43 33 39 38 34 40 43 37 35 43 33 39 38
++36 35 37 36 35 37 36 35 37 31 35 35 33 30 32 33 30 32 33 30 32 33 30 32
++33 30 32 33 30 32 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 32 39 24
++52 30 35 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 32 39 24
++52 30 35 32 39 24 52 30 35 36 35 37 53 35 37 53 35 37 36 35 37 53 35 37
++47 47 21 53 35 37 47 39 42 36 35 37 55 39 37 47 39 42 36 35 37 53 35 37
++32 39 24 52 30 35 33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30
++31 35 35 26 30 28 30 30 34 25 30 29 26 24 32 33 30 30 30 30 34 33 30 30
++30 30 34 33 30 32 30 30 34 36 35 37 36 35 37 33 39 38 42 41 42 42 41 42
++43 42 50 42 47 42 43 42 50 48 50 48 48 50 48 48 50 48 48 50 48 54 57 61
++53 46 48 55 55 48 59 55 55 55 55 48 59 55 55 53 46 48 59 55 55 52 55 48
++48 50 48 48 50 48 48 50 48 48 50 48 43 42 50 42 47 42 34 40 43 42 38 42
++36 35 37 36 35 37 31 35 35 28 30 35 25 30 29 25 30 29 25 30 29 26 24 32
++22 25 24 26 24 32 25 30 29 26 24 32 26 30 28 26 24 32 26 30 28 26 24 32
++30 30 34 33 30 32 30 30 34 30 30 34 33 30 30 30 30 34 30 30 34 30 30 34
++30 30 34 30 30 34 30 30 34 26 30 28 26 24 32 30 30 34 26 24 32 33 30 30
++26 30 28 26 24 32 33 30 30 33 30 30 23 20 24 33 30 30 26 25 15 33 30 30
++33 30 30 34 30 15 33 30 30 33 30 30 34 30 15 33 30 30 53 35 17 33 30 30
++36 35 37 32 39 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 26 24 32 33 30 30 22 25 24 26 30 28 22 25 24 26 30 28 23 20 24
++22 25 24 22 25 24 23 20 24 22 25 24 33 30 30 23 20 24 34 30 15 26 24 32
++33 30 30 22 25 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30 33 30 30 26 24 32
++26 30 28 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 18 22
++14 16 17 23 20 24 23 20 24 22 25 24 22 25 24 26 30 28 26 30 28 33 30 30
++22 25 24 33 30 30 22 25 24 33 30 30 33 30 30 26 30 28 33 30 30 33 30 30
++33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 26 30 28
++33 30 30 30 30 34 30 30 34 30 30 34 28 30 35 28 30 35 23 30 35 26 24 32
++
++13 4 7 13 4 7 17 12 17 13 4 7 15 17 7 17 12 17 17 12 17 17 12 17
++26 12 13 14 16 17 26 12 13 14 16 17 26 12 13 14 16 17 23 18 22 17 12 17
++23 18 22 17 12 17 15 17 7 17 12 17 15 17 7 17 12 17 15 17 7 14 16 17
++13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13
++13 4 7 7 12 13 7 12 13 13 4 7 7 12 13 17 12 17 7 10 17 17 12 17
++17 12 17 12 18 20 12 18 20 22 25 24 12 18 30 22 23 31 23 30 35 28 35 38
++24 30 43 37 35 43 29 34 50 32 40 58 43 42 50 32 40 58 43 42 50 32 40 58
++43 42 50 32 40 58 35 47 50 32 40 58 43 42 50 37 35 43 34 40 43 37 35 43
++28 35 38 28 35 38 30 30 34 30 30 34 28 30 35 28 30 35 25 30 29 26 24 32
++28 30 35 26 24 32 22 23 31 22 23 31 22 23 31 22 23 31 12 18 30 22 23 31
++12 18 30 12 18 30 22 23 31 22 23 31 22 23 31 12 18 30 23 20 24 12 18 30
++12 18 20 12 18 20 14 16 17 17 12 17 7 12 13 7 12 13 7 12 13 7 12 13
++7 12 13 15 17 7 7 12 13 15 17 7 14 16 17 14 16 17 14 16 17 23 18 22
++14 16 17 23 18 22 22 24 13 23 18 22 22 25 24 23 18 22 26 25 15 23 20 24
++23 20 24 34 30 15 23 20 24 33 30 30 26 25 15 33 30 30 34 30 15 33 30 30
++49 13 16 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 32 33 30 36 33 30 36 33 30 36 33 30 36 31 35 35 31 35 35
++31 35 35 36 35 37 36 35 37 31 35 35 36 35 37 33 30 32 36 35 37 31 35 35
++36 35 37 33 30 32 36 35 37 33 30 32 31 35 35 33 30 32 33 30 30 33 30 30
++26 30 28 33 30 30 33 30 30 33 30 30 22 25 24 26 24 32 22 25 24 23 20 24
++23 20 24 23 18 22 14 16 17 23 18 22 17 12 17 17 12 17 12 18 20 17 12 17
++14 16 17 17 12 17 7 10 17 17 12 17 7 12 13 17 12 17 7 10 17 14 16 17
++17 12 17 14 16 17 14 16 17 23 18 22 23 18 22 23 18 22 23 20 24 23 20 24
++23 20 24 26 30 28 23 20 24 23 20 24 26 25 15 22 25 24 26 25 15 26 24 32
++26 25 15 26 24 32 26 30 28 33 30 30 26 30 28 33 30 30 26 25 15 33 30 30
++26 30 28 26 30 28 26 30 28 26 30 28 26 24 32 26 30 28 26 30 28 26 24 32
++26 30 28 30 30 34 26 30 28 30 30 34 33 30 32 30 30 34 33 30 32 33 30 32
++33 30 32 33 30 32 33 30 32 33 30 32 33 30 30 33 30 30 36 35 37 33 30 32
++36 35 37 36 35 37 42 38 42 42 38 42 43 42 50 43 42 50 43 42 50 48 44 48
++48 50 48 48 50 48 53 46 48 48 50 48 57 43 64 48 44 48 53 46 48 48 44 48
++57 43 64 48 44 48 43 42 50 43 42 50 48 44 48 48 44 48 48 44 48 48 44 48
++48 44 48 48 44 48 47 39 42 47 39 42 47 39 42 42 41 42 42 38 42 36 35 37
++52 30 35 33 30 30 33 30 30 33 30 30 32 39 24 36 35 37 33 30 30 47 47 21
++36 35 37 32 39 24 36 35 37 36 35 37 36 35 37 53 35 37 36 35 37 42 38 42
++47 47 21 36 35 37 47 44 42 36 35 37 52 30 35 32 39 24 52 30 35 36 35 37
++33 30 32 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 26 24 32
++33 30 30 26 24 32 33 30 32 42 47 42 65 63 61 63 55 45 55 39 37 63 55 45
++101 74 26 117 99 86 168 102 88 195 113 123 227 171 124 197 171 123 201 146 124 168 102 88
++168 102 88 168 102 88 163 117 123 201 146 124 201 146 124 197 171 123 168 146 127 168 102 88
++138 126 108 138 126 108 157 148 53 138 126 108 138 126 108 168 102 88 177 171 115 201 146 124
++177 171 115 201 146 124 201 146 124 168 146 127 197 171 123 201 146 124 177 169 143 197 171 123
++201 146 124 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 201 146 124 201 146 124
++201 146 124 168 146 127 168 146 127 163 117 123 168 146 127 168 146 127 201 146 124 168 146 127
++201 146 124 201 146 124 201 146 124 177 169 143 201 146 124 201 146 124 177 169 143 197 171 123
++177 169 143 201 146 124 138 126 108 101 83 74 99 93 84 99 93 84 65 55 54 42 41 42
++36 35 37 37 35 43 37 35 43 36 35 37 37 35 43 42 38 42 43 42 50 48 44 48
++48 50 48 47 44 42 51 49 42 47 49 42 42 38 42 33 30 30 23 20 24 26 25 15
++23 18 22 22 24 13 17 12 17 13 4 7 13 4 7 13 4 7 34 30 15 75 73 36
++138 102 108 168 146 127 217 168 156 217 168 156 217 168 156 208 215 180 217 168 156 168 102 88
++138 126 108 117 99 86 88 73 62 52 30 35 26 12 13 26 25 15 23 18 22 14 16 17
++17 12 17 26 25 15 47 47 21 63 55 45 117 99 86 138 126 108 168 146 127 177 171 115
++201 146 124 177 169 143 197 171 123 201 146 124 177 169 143 197 171 123 201 146 124 197 171 123
++201 146 124 168 146 127 201 146 124 177 171 115 168 146 127 168 146 127 168 102 88 120 63 71
++117 112 45 120 63 71 117 112 45 168 102 88 117 127 86 168 102 88 117 114 76 117 99 86
++88 73 62 101 74 26 88 73 62 101 74 26 120 63 71 88 73 62 88 73 31 76 44 53
++76 46 20 75 56 53 75 56 53 101 83 74 117 114 76 163 117 123 138 126 108 117 99 86
++65 55 54 47 47 21 42 41 42 55 39 37 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 49 42
++48 44 48 47 49 42 48 44 48 48 44 48 48 44 48 47 49 42 48 44 48 47 44 42
++42 41 42 47 44 42 42 41 42 48 44 48 48 44 48 48 44 48 48 44 48 48 44 48
++48 44 48 43 42 50 45 57 61 43 42 50 45 57 61 43 42 50 45 57 61 43 42 50
++45 57 61 43 42 50 48 44 48 48 44 48 45 57 61 43 42 50 48 50 48 48 44 48
++48 44 48 42 41 42 43 42 50 43 42 50 42 41 42 43 42 50 42 47 42 43 42 50
++42 47 42 43 42 50 42 41 42 34 40 43 42 41 42 34 40 43 42 41 42 42 41 42
++34 40 43 42 41 42 34 40 43 34 40 43 34 40 43 42 41 42 42 41 42 42 41 42
++34 40 43 42 41 42 43 42 50 43 42 50 43 42 50 43 42 50 42 41 42 43 42 50
++42 41 42 43 42 50 34 40 43 34 40 43 34 40 43 34 40 43 34 40 43 43 42 50
++34 40 43 34 40 43 43 42 50 35 47 50 43 42 50 42 47 42 43 42 50 48 44 48
++42 41 42 47 44 42 48 44 48 47 44 42 48 44 48 47 44 42 42 41 42 42 41 42
++42 41 42 42 41 42 47 47 21 42 41 42 42 41 42 42 41 42 47 44 42 42 41 42
++47 44 42 42 41 42 42 41 42 42 41 42 47 44 42 42 41 42 43 42 50 42 38 42
++42 38 42 34 40 43 34 40 43 34 40 43 34 40 43 34 40 43 34 40 43 28 35 38
++34 40 43 28 35 38 28 35 38 37 35 43 33 39 38 37 35 43 34 40 43 37 35 43
++36 35 37 36 35 37 31 35 35 36 35 37 31 35 35 31 35 35 33 30 30 33 30 32
++33 30 32 33 30 30 52 30 35 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30
++32 39 24 33 30 30 33 30 30 33 30 30 52 30 15 33 30 30 32 39 24 52 30 35
++33 30 30 52 30 35 36 35 37 53 35 17 33 30 30 47 47 21 53 35 37 32 39 24
++52 30 35 36 35 37 53 35 37 53 35 37 36 35 37 52 30 35 47 47 21 36 35 37
++52 30 35 36 35 37 36 35 37 36 35 37 33 30 30 33 30 30 33 30 30 26 30 28
++26 30 28 33 30 30 26 30 28 30 30 34 26 30 28 26 24 32 26 30 28 30 30 34
++33 30 32 31 35 35 33 30 36 31 35 35 36 35 37 36 35 37 34 40 43 42 41 42
++42 41 42 43 42 50 48 50 48 43 42 50 48 50 48 48 50 48 48 50 48 59 55 55
++59 55 55 63 55 51 53 46 48 59 55 55 55 55 48 59 55 55 59 55 55 59 55 55
++54 57 61 54 57 61 48 50 48 48 50 48 48 50 48 43 42 50 42 47 42 34 40 43
++34 40 43 36 35 37 31 35 35 31 35 35 25 30 29 25 30 29 26 30 28 22 25 24
++26 30 28 25 30 29 26 24 32 26 24 32 22 25 24 26 24 32 26 30 28 30 30 34
++26 30 28 30 30 34 30 30 34 26 30 28 30 30 34 33 30 30 30 30 34 33 30 30
++30 30 34 33 30 30 30 30 34 33 30 32 26 30 28 25 30 29 33 30 30 26 30 28
++33 30 30 22 25 24 33 30 30 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30
++34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37
++33 30 30 52 30 35 36 35 37 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 22 25 24 33 30 30 26 30 28 26 30 28 26 30 28 23 20 24 26 30 28
++23 20 24 22 25 24 23 20 24 22 25 24 23 18 22 33 30 30 23 20 24 33 30 30
++23 20 24 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++26 24 32 26 24 32 22 23 31 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24
++23 18 22 22 25 24 23 20 24 22 25 24 26 30 28 26 24 32 22 25 24 33 30 30
++33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 34 30 15
++26 30 28 34 30 15 33 30 30 29 35 19 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 32 30 30 34 31 35 35 33 30 36 28 35 38 28 30 35 28 30 35 28 30 35
++
++7 12 13 15 17 7 17 12 17 17 12 17 17 12 17 17 12 17 23 10 10 17 12 17
++17 12 17 22 24 13 17 12 17 15 17 7 17 12 17 15 17 7 23 18 22 17 12 17
++15 22 17 17 12 17 17 12 17 14 16 17 15 17 7 17 12 17 13 4 7 7 12 13
++17 12 17 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7
++3 4 9 7 10 17 13 4 7 7 12 13 17 12 17 7 12 13 17 12 17 17 12 17
++12 18 20 12 18 30 23 18 22 12 18 20 22 23 31 22 23 31 23 30 35 23 30 35
++24 30 43 24 30 43 28 35 38 29 34 50 34 40 43 32 40 58 43 42 50 32 40 58
++43 42 50 29 34 50 37 35 43 28 35 38 28 35 38 29 34 50 28 35 38 28 30 35
++28 30 35 28 30 35 28 30 35 26 24 32 25 30 29 26 24 32 26 24 32 28 30 35
++26 24 32 26 24 32 23 30 35 22 23 31 22 23 31 22 23 31 22 23 31 12 18 30
++22 23 31 22 23 31 22 23 31 22 23 31 22 23 31 22 23 31 12 18 30 23 20 24
++12 18 20 12 18 20 7 10 17 14 16 17 7 10 17 17 12 17 13 4 7 7 12 13
++13 4 7 7 12 13 17 12 17 17 12 17 14 16 17 23 18 22 15 22 17 23 18 22
++23 18 22 23 20 24 23 20 24 26 25 15 33 30 30 34 30 15 26 24 32 33 30 30
++33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 34 30 15 33 30 30 33 30 30
++33 30 30 33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 36 35 37 33 30 30
++33 30 32 36 35 37 36 35 37 33 30 36 36 35 37 36 35 37 37 35 43 36 35 37
++37 35 43 36 35 37 36 35 37 36 35 37 36 35 37 37 35 43 36 35 37 36 35 37
++31 35 35 33 30 32 31 35 35 33 30 32 31 35 35 33 30 30 33 30 30 33 30 30
++26 30 28 33 30 30 26 24 32 23 20 24 26 30 28 23 20 24 26 24 32 23 20 24
++23 20 24 23 18 22 23 18 22 14 16 17 17 12 17 14 16 17 17 12 17 12 18 20
++17 12 17 7 10 17 14 16 17 7 10 17 17 12 17 17 12 17 17 12 17 14 16 17
++14 16 17 14 16 17 17 12 17 23 18 22 23 20 24 23 20 24 23 18 22 22 25 24
++26 25 15 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 33 30 30 23 20 24
++33 30 30 22 25 24 33 30 30 26 25 15 33 30 30 22 25 24 33 30 30 22 25 24
++33 30 30 23 20 24 33 30 30 26 24 32 26 30 28 26 24 32 26 24 32 22 25 24
++33 30 30 26 24 32 33 30 32 30 30 34 26 30 28 33 30 32 33 30 32 30 30 34
++33 30 32 33 30 32 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 32
++33 30 32 36 35 37 36 35 37 42 38 42 42 38 42 43 42 50 48 44 48 43 42 50
++48 44 48 48 44 48 57 43 64 48 50 48 48 44 48 48 44 48 48 44 48 48 44 48
++48 44 48 43 42 50 48 44 48 43 42 50 48 44 48 47 39 42 48 44 48 42 38 42
++42 38 42 47 39 42 47 39 42 47 39 42 42 38 42 42 38 42 36 35 37 36 35 37
++36 35 37 33 30 30 52 30 35 33 30 30 52 30 35 33 30 30 53 35 37 36 35 37
++36 35 37 53 35 37 36 35 37 47 47 21 47 39 42 36 35 37 53 35 37 36 35 37
++47 39 42 47 39 42 47 47 21 36 35 37 36 35 37 33 30 30 36 35 37 33 30 30
++33 30 30 33 30 32 33 30 30 33 30 30 33 30 30 33 30 32 33 30 30 33 30 30
++33 30 30 26 30 28 33 30 30 36 35 37 55 55 48 55 55 48 53 35 37 55 39 37
++88 73 62 168 102 88 163 117 123 201 146 124 227 171 124 227 171 124 201 146 124 168 102 88
++157 148 53 168 102 88 168 102 88 177 171 115 168 146 127 197 171 123 168 146 127 138 126 108
++117 114 76 168 102 88 117 114 76 168 102 88 138 126 108 168 102 88 177 171 115 168 102 88
++201 146 124 168 146 127 201 146 124 197 171 123 201 146 124 168 146 127 201 146 124 197 171 123
++201 146 124 177 169 143 201 146 124 217 168 156 201 146 124 189 165 168 197 171 123 189 165 168
++201 146 124 168 146 127 201 146 124 201 146 124 201 146 124 201 146 124 201 146 124 197 171 123
++201 146 124 197 171 123 201 146 124 197 171 123 201 146 124 177 169 143 201 146 124 217 168 156
++197 171 123 217 168 156 217 168 156 168 146 127 138 126 108 88 83 74 59 55 55 42 41 42
++36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 42 41 42 48 50 48 48 50 48
++47 44 42 47 44 42 55 55 48 55 55 48 36 35 37 33 30 30 26 30 28 23 20 24
++23 18 22 15 17 7 13 4 7 6 15 6 13 4 7 13 4 7 52 30 15 88 73 62
++138 126 108 168 146 127 168 146 127 217 168 156 217 168 156 217 168 156 197 171 123 177 169 143
++168 146 127 138 102 108 88 73 62 55 39 18 22 24 13 23 18 22 23 18 22 22 24 13
++26 25 15 33 30 30 60 49 42 88 73 62 138 102 108 168 146 127 168 146 127 201 146 124
++177 169 143 201 146 124 217 168 156 177 169 143 201 146 124 201 146 124 177 169 143 201 146 124
++177 169 143 201 146 124 201 146 124 177 169 143 201 146 124 168 146 127 168 146 127 163 117 123
++117 99 86 88 73 62 76 46 20 55 39 18 88 44 51 88 73 31 88 73 62 120 63 71
++101 74 26 120 63 71 101 83 74 117 99 86 120 63 71 88 73 31 76 46 20 76 46 20
++75 56 53 88 73 62 117 99 86 163 117 123 146 150 115 138 126 108 117 99 86 75 56 53
++55 39 37 36 35 37 55 39 37 42 47 42 47 39 42 47 44 42 55 39 37 47 39 42
++47 44 42 47 44 42 47 39 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 42 47 42 47 44 42 47 44 42 48 44 48 48 44 48 42 41 42
++42 41 42 42 41 42 42 41 42 48 44 48 48 44 48 43 42 50 48 44 48 48 44 48
++48 44 48 43 42 50 48 44 48 48 44 48 48 44 48 43 42 50 43 42 50 48 50 48
++43 42 50 48 50 48 43 42 50 45 57 61 43 42 50 48 44 48 43 42 50 43 42 50
++43 42 50 42 41 42 42 41 42 42 41 42 43 42 50 42 41 42 43 42 50 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 34 40 43 42 38 42
++42 41 42 34 40 43 42 41 42 42 41 42 42 41 42 34 40 43 42 38 42 34 40 43
++43 42 50 34 40 43 42 41 42 43 42 50 42 47 42 43 42 50 35 47 50 42 41 42
++34 40 43 34 40 43 34 40 43 34 40 43 29 34 50 34 40 43 43 42 50 34 40 43
++34 40 43 43 42 50 43 42 50 35 46 43 43 42 50 43 42 50 43 42 50 42 41 42
++42 47 42 47 44 42 47 44 42 47 39 42 47 44 42 47 44 42 47 39 42 42 41 42
++42 38 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 47 44 42 42 41 42
++42 41 42 42 41 42 42 41 42 47 44 42 42 41 42 43 42 50 42 41 42 43 42 50
++42 38 42 34 40 43 42 41 42 37 35 43 33 39 38 28 35 38 31 35 35 28 35 38
++28 35 38 33 39 38 37 35 43 28 35 38 28 35 38 37 35 43 36 35 37 36 35 37
++36 35 37 31 35 35 36 35 37 33 30 32 33 30 32 33 30 32 33 30 30 33 30 32
++31 35 35 33 30 30 33 30 30 33 30 30 33 30 30 32 39 24 52 30 35 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 34 30 15
++33 30 30 36 35 37 53 35 17 36 35 37 52 30 35 36 35 37 53 35 37 53 35 37
++52 30 35 36 35 37 52 30 35 36 35 37 47 39 42 36 35 37 36 35 37 52 30 35
++32 39 24 33 30 30 36 35 37 53 35 17 31 35 35 33 30 30 33 30 30 33 30 30
++26 30 28 26 30 28 30 30 34 26 30 28 26 30 28 33 30 30 30 30 34 30 30 34
++33 30 32 30 30 34 36 35 37 36 35 37 36 35 37 36 35 37 37 35 43 42 41 42
++42 41 42 42 47 42 42 41 42 48 44 48 48 50 48 48 50 48 54 57 61 55 55 48
++55 55 48 55 55 48 55 55 48 59 55 55 59 55 55 59 55 55 59 55 55 48 50 48
++59 55 55 48 50 48 54 57 61 48 50 48 48 50 48 48 50 48 43 42 50 42 41 42
++42 41 42 33 39 38 36 35 37 31 35 35 28 30 35 28 30 35 26 30 28 26 24 32
++26 24 32 25 30 29 26 24 32 25 30 29 26 24 32 26 30 28 26 24 32 26 30 28
++26 24 32 26 30 28 30 30 34 26 30 28 30 30 34 30 30 34 26 30 28 30 30 34
++30 30 34 26 30 28 30 30 34 30 30 34 26 30 28 26 24 32 26 30 28 26 30 28
++26 30 28 26 30 28 33 30 30 23 20 24 33 30 30 26 25 15 33 30 30 23 20 24
++33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 53 35 17 36 35 37 36 35 37
++47 47 21 33 30 32 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 26 24 32 26 30 28 22 25 24 33 30 30 22 25 24 26 30 28
++23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 33 30 30 23 20 24
++33 30 30 23 20 24 33 30 30 33 30 30 33 30 32 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++26 24 32 33 30 30 23 20 24 22 25 24 26 24 32 25 30 29 22 25 24 22 25 24
++22 25 24 22 25 24 22 23 31 26 30 28 26 24 32 33 30 30 33 30 32 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 32 33 30 32 33 30 32 33 30 30 31 35 35 33 30 32
++36 35 37 36 35 37 36 35 37 36 35 37 37 35 43 31 35 35 28 35 38 36 35 37
++
++23 10 10 17 12 17 23 10 10 17 12 17 15 17 7 17 12 17 14 16 17 17 12 17
++22 24 13 17 12 17 17 12 17 22 24 13 17 12 17 23 18 22 17 12 17 22 24 13
++17 12 17 17 12 17 15 17 7 17 12 17 15 17 7 17 12 17 15 17 7 17 12 17
++7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 7 10 17
++7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 17 12 17 17 12 17 14 16 17
++17 12 17 17 12 17 23 18 22 12 18 30 22 25 24 12 18 30 22 23 31 23 30 35
++23 30 35 23 30 35 24 30 43 28 35 38 29 34 50 37 35 43 29 34 50 34 40 43
++29 34 50 34 40 43 24 30 43 28 35 38 30 30 34 28 30 35 28 30 35 23 30 35
++22 23 31 26 24 32 26 24 32 25 30 29 26 24 32 25 30 29 26 24 32 26 24 32
++26 24 32 28 30 35 26 24 32 23 30 35 22 23 31 22 23 31 23 30 35 22 23 31
++22 23 31 12 18 30 22 23 31 22 23 31 12 18 30 22 23 31 12 18 30 23 20 24
++12 18 30 12 18 20 12 18 30 12 18 20 17 12 17 7 12 13 17 12 17 7 12 13
++7 12 13 17 12 17 7 10 17 14 16 17 17 12 17 26 25 15 23 18 22 23 18 22
++26 25 15 33 30 30 26 25 15 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30
++33 30 30 34 30 15 33 30 30 33 30 30 52 30 35 33 30 30 52 30 35 53 35 17
++33 30 30 52 30 35 33 30 30 36 35 37 36 35 37 53 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 37 35 43 37 35 43 37 35 43 37 35 43 37 35 43 37 35 43
++37 35 43 37 35 43 37 35 43 42 38 42 34 40 43 42 38 42 37 35 43 36 35 37
++36 35 37 36 35 37 36 35 37 31 35 35 33 30 32 31 35 35 33 30 30 26 30 28
++33 30 30 33 30 30 33 30 30 33 30 30 23 20 24 33 30 30 23 20 24 23 20 24
++23 20 24 23 20 24 23 18 22 23 18 22 14 16 17 17 12 17 12 18 30 17 12 17
++14 16 17 7 10 17 14 16 17 7 10 17 17 12 17 7 10 17 14 16 17 14 16 17
++14 16 17 23 18 22 14 16 17 23 18 22 23 20 24 22 24 13 23 18 22 26 25 15
++23 20 24 23 20 24 23 20 24 23 20 24 33 30 30 23 20 24 23 20 24 26 24 32
++23 20 24 33 30 30 26 24 32 26 24 32 26 24 32 26 30 28 26 24 32 22 25 24
++26 24 32 26 24 32 26 24 32 26 24 32 26 24 32 26 24 32 22 25 24 26 24 32
++26 24 32 26 24 32 26 30 28 26 30 28 26 24 32 26 30 28 26 30 28 33 30 30
++26 30 28 33 30 30 26 30 28 26 30 28 26 30 28 26 30 28 30 30 34 33 30 32
++33 30 32 33 30 36 36 35 37 36 35 37 42 38 42 42 41 42 43 42 50 48 44 48
++43 42 50 48 50 48 48 44 48 48 44 48 48 44 48 48 44 48 48 44 48 48 44 48
++48 44 48 48 44 48 47 39 42 47 39 42 42 38 42 42 41 42 42 38 42 42 38 42
++42 38 42 36 35 37 42 38 42 36 35 37 42 38 42 36 35 37 53 35 37 36 35 37
++52 30 35 36 35 37 33 30 30 33 30 32 32 39 24 36 35 37 36 35 37 52 30 35
++36 35 37 52 30 35 36 35 37 36 35 37 53 35 37 32 39 24 53 35 37 36 35 37
++47 47 21 47 39 42 36 35 37 52 30 35 36 35 37 52 30 35 36 35 37 36 35 37
++52 30 35 36 35 37 33 30 30 33 30 30 33 30 32 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 36 35 37 53 46 48 47 44 42 26 25 15 52 30 15
++75 56 53 168 102 88 168 146 127 201 146 124 201 146 124 201 146 124 168 102 88 120 63 71
++101 74 26 120 63 71 157 148 53 168 146 127 201 146 124 201 146 124 168 146 127 138 126 108
++168 102 88 117 114 76 117 114 76 117 114 76 168 102 88 146 150 115 168 102 88 201 146 124
++177 171 115 168 102 88 177 171 115 201 146 124 201 146 124 197 171 123 201 146 124 177 169 143
++201 146 124 217 168 156 201 146 124 177 169 143 201 146 124 197 171 123 201 146 124 201 146 124
++163 117 123 168 146 127 195 113 123 168 146 127 201 146 124 197 171 123 217 168 156 201 146 124
++197 171 123 201 146 124 177 169 143 201 146 124 197 171 123 201 146 124 201 146 124 197 171 123
++197 171 123 217 168 156 208 215 180 222 171 182 145 140 145 88 83 74 47 39 42 30 30 34
++33 30 36 33 30 36 33 30 36 36 35 37 42 41 42 48 50 48 52 55 48 48 44 48
++48 50 48 52 55 48 63 55 51 48 50 48 36 35 37 22 25 24 23 18 22 23 18 22
++14 16 17 13 4 7 6 15 6 13 4 7 13 4 7 23 10 10 55 39 18 101 83 74
++117 127 86 168 102 88 163 117 123 177 171 115 177 169 143 197 171 123 217 168 156 177 169 143
++197 171 123 168 102 88 88 73 62 52 30 35 26 25 15 28 13 18 26 25 15 28 13 18
++33 30 30 55 39 18 88 73 62 117 114 76 138 126 108 168 102 88 168 146 127 201 146 124
++197 171 123 217 168 156 197 171 123 217 168 156 197 171 123 217 168 156 201 146 124 177 169 143
++201 146 124 197 171 123 177 169 143 217 168 156 197 171 123 168 146 127 201 146 124 177 171 115
++168 102 88 117 99 86 76 46 20 23 10 10 23 10 10 49 13 16 76 46 20 101 74 26
++117 99 86 117 114 76 168 102 88 138 126 108 168 102 88 88 73 62 76 44 53 88 73 31
++101 83 74 168 102 88 138 126 108 168 146 127 168 146 127 117 99 86 75 73 58 51 49 42
++33 30 30 42 38 42 47 47 21 36 35 37 47 39 42 47 47 21 42 41 42 47 39 42
++47 47 21 47 39 42 47 39 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 47 44 42 47 44 42 47 44 42 42 41 42 42 41 42
++47 44 42 42 41 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 48 44 48
++42 41 42 48 44 48 43 42 50 48 50 48 43 42 50 43 42 50 43 55 48 43 42 50
++43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 48 44 48 43 42 50
++43 42 50 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++43 42 50 42 41 42 42 41 42 42 41 42 42 41 42 42 38 42 42 38 42 42 38 42
++36 35 37 36 35 37 36 35 37 34 40 43 42 38 42 36 35 37 37 35 43 34 40 43
++42 41 42 42 41 42 34 40 43 35 46 43 34 40 43 42 41 42 34 40 43 34 40 43
++42 38 42 34 40 43 37 35 43 37 35 43 34 40 43 34 40 43 34 40 43 43 42 50
++34 40 43 34 40 43 34 40 43 42 41 42 34 40 43 43 42 50 42 41 42 43 42 50
++47 44 42 42 41 42 42 41 42 47 44 42 47 39 42 47 44 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 47 44 42 47 44 42 42 41 42 42 41 42
++47 44 42 42 41 42 47 44 42 42 41 42 42 41 42 47 44 42 43 42 50 42 41 42
++42 41 42 42 41 42 42 41 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++33 39 38 31 35 35 36 35 37 36 35 37 36 35 37 31 35 35 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 31 35 35 33 30 30 31 35 35 33 30 32 33 30 32
++33 30 32 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++52 30 35 33 30 30 52 30 15 33 30 30 52 30 35 33 30 30 33 30 30 33 30 30
++33 30 30 52 30 35 33 30 30 36 35 37 53 35 17 36 35 37 53 35 17 32 39 24
++52 30 35 32 39 24 52 30 35 36 35 37 53 35 17 33 30 30 52 30 35 33 30 30
++33 30 30 53 35 37 33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30
++26 30 28 33 30 30 26 30 28 33 30 32 26 30 28 26 24 32 26 30 28 30 30 34
++30 30 34 33 30 32 31 35 35 31 35 35 36 35 37 36 35 37 37 35 43 42 41 42
++42 41 42 42 41 42 42 47 42 48 44 48 48 50 48 53 46 48 53 46 48 59 55 55
++55 55 48 59 55 55 63 55 51 55 55 48 59 55 55 63 55 51 59 55 55 59 55 55
++59 55 55 54 57 61 53 46 48 54 57 61 48 50 48 48 50 48 48 50 48 42 41 42
++42 41 42 42 38 42 36 35 37 36 35 37 33 30 32 30 30 34 33 30 30 26 24 32
++26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 26 24 32
++26 30 28 26 30 28 26 24 32 33 30 30 26 30 28 30 30 34 26 30 28 30 30 34
++26 30 28 30 30 34 26 30 28 30 30 34 26 30 28 33 30 30 26 30 28 26 24 32
++33 30 30 26 30 28 23 20 24 33 30 30 33 30 30 23 20 24 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 32 39 24 52 30 35
++36 35 37 36 35 37 36 35 37 52 30 35 36 35 37 36 35 37 31 35 35 33 30 30
++33 30 30 26 30 28 33 30 30 33 30 30 26 30 28 26 30 28 33 30 30 22 25 24
++22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 33 30 30
++22 25 24 33 30 30 26 24 32 33 30 30 33 30 32 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 32 33 30 32 33 30 32 33 30 30
++33 30 30 33 30 30 33 30 30 26 24 32 26 30 28 26 24 32 26 30 28 22 23 31
++23 20 24 26 30 28 26 30 28 30 30 34 33 30 32 30 30 34 33 30 32 33 30 30
++36 35 37 32 39 24 36 35 37 33 30 30 31 35 35 33 30 30 31 35 35 33 30 30
++33 30 32 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++37 35 43 42 38 42 34 40 43 34 40 43 34 40 43 37 35 43 37 35 43 37 35 43
++
++17 12 17 7 12 13 17 12 17 17 12 17 17 12 17 17 12 17 23 10 10 14 16 17
++23 18 22 26 12 13 22 24 13 17 12 17 23 18 22 26 12 13 14 16 17 23 18 22
++17 12 17 26 12 13 14 16 17 17 12 17 14 16 17 15 17 7 17 12 17 7 12 13
++15 17 7 7 12 13 13 4 7 14 16 17 17 12 17 7 12 13 17 12 17 7 12 13
++13 4 7 7 12 13 17 12 17 7 12 13 17 12 17 7 10 17 17 12 17 14 16 17
++17 12 17 12 18 30 17 12 17 23 20 24 12 18 30 22 25 24 23 30 35 23 30 35
++23 30 35 23 30 35 24 30 43 23 30 35 24 30 43 29 34 50 37 35 43 29 34 50
++37 35 43 24 30 43 28 30 35 28 30 35 28 30 35 28 30 35 23 30 35 26 24 32
++22 23 31 22 23 31 22 25 24 26 24 32 22 23 31 25 30 29 26 24 32 28 30 35
++24 30 43 26 24 32 24 30 43 22 23 31 22 23 31 22 23 31 22 23 31 23 30 35
++22 23 31 23 30 35 22 23 31 22 23 31 22 23 31 12 18 30 22 23 31 22 23 31
++12 18 20 23 20 24 12 18 20 12 18 20 17 12 17 7 10 17 7 12 13 7 12 13
++17 12 17 7 10 17 17 12 17 17 12 17 23 18 22 26 25 15 23 20 24 26 25 15
++33 30 30 23 20 24 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 52 30 35 33 30 30 33 30 30 52 30 35 33 30 30 36 35 37
++52 30 35 32 39 24 36 35 37 52 30 35 33 30 30 36 35 37 52 30 35 36 35 37
++36 35 37 42 38 42 42 38 42 37 35 43 37 35 43 42 38 42 37 35 43 42 41 42
++42 38 42 42 38 42 37 35 43 42 38 42 37 35 43 42 38 42 34 40 43 42 38 42
++36 35 37 36 35 37 33 30 30 33 30 32 31 35 35 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 26 25 15 33 30 30 23 20 24 34 30 15 23 20 24 23 20 24
++22 25 24 23 20 24 23 20 24 23 18 22 17 12 17 17 12 17 17 12 17 12 18 20
++17 12 17 14 16 17 14 16 17 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17
++14 16 17 14 16 17 23 18 22 23 18 22 12 18 20 23 18 22 22 24 13 23 18 22
++23 18 22 26 25 15 23 20 24 22 25 24 23 20 24 23 20 24 26 30 28 26 24 32
++26 30 28 23 20 24 33 30 30 23 20 24 33 30 30 26 24 32 33 30 30 26 24 32
++26 24 32 22 25 24 26 24 32 26 24 32 26 24 32 26 24 32 26 24 32 22 25 24
++26 24 32 26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 26 30 28 33 30 30
++26 24 32 26 30 28 26 24 32 26 30 28 26 30 28 26 24 32 33 30 30 26 24 32
++33 30 32 33 30 32 36 35 37 37 35 43 42 38 42 43 42 50 43 42 50 42 41 42
++48 44 48 48 44 48 48 44 48 48 44 48 43 42 50 48 44 48 47 39 42 42 38 42
++42 38 42 42 41 42 42 38 42 42 38 42 42 38 42 42 38 42 36 35 37 42 38 42
++36 35 37 36 35 37 36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 33 30 30
++36 35 37 33 30 30 52 30 35 36 35 37 52 30 35 36 35 37 36 35 37 32 39 24
++36 35 37 36 35 37 47 47 21 42 38 42 36 35 37 55 39 37 36 35 37 47 44 42
++36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 33 30 30 52 30 35 33 30 30
++33 30 30 36 35 37 33 30 30 33 30 32 33 30 32 36 35 37 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 34 30 15 51 49 42 42 38 42 26 25 15 23 10 10
++76 46 20 168 102 88 168 146 127 201 146 124 201 146 124 201 146 124 168 102 88 157 148 53
++168 102 88 168 102 88 168 102 88 201 146 124 197 171 123 197 171 123 168 146 127 168 102 88
++117 114 76 117 112 45 120 63 71 117 114 76 117 112 45 168 102 88 138 126 108 168 102 88
++177 171 115 201 146 124 201 146 124 168 146 127 201 146 124 201 146 124 201 146 124 201 146 124
++201 146 124 201 146 124 217 168 156 217 168 156 217 168 156 177 169 143 201 146 124 168 146 127
++201 146 124 168 102 88 168 146 127 201 146 124 168 146 127 201 146 124 197 171 123 201 146 124
++177 169 143 201 146 124 201 146 124 201 146 124 201 146 124 177 169 143 201 146 124 217 168 156
++197 171 123 177 169 143 217 168 156 208 215 180 189 165 168 99 93 84 33 30 32 26 24 32
++36 35 37 33 30 36 31 35 35 36 35 37 42 47 42 48 50 48 53 46 48 55 55 48
++59 55 55 65 63 61 55 55 48 47 44 42 33 30 32 22 25 24 17 12 17 14 16 17
++13 4 7 3 4 9 7 12 13 13 4 7 13 4 7 23 10 10 60 49 42 101 83 74
++168 102 88 146 150 115 168 102 88 146 150 115 201 146 124 197 171 123 217 168 156 217 168 156
++177 169 143 138 126 108 101 83 74 76 46 20 52 30 35 33 30 30 34 30 15 34 30 15
++52 30 35 75 73 58 117 99 86 138 102 108 146 150 115 168 146 127 197 171 123 197 171 123
++168 146 127 197 171 123 217 168 156 197 171 123 217 168 156 177 169 143 197 171 123 217 168 156
++197 171 123 189 165 168 197 171 123 217 168 156 168 146 127 201 146 124 168 146 127 168 146 127
++163 117 123 138 126 108 101 83 74 63 55 45 55 39 18 76 46 20 88 66 70 117 99 86
++168 102 88 168 146 127 201 146 124 168 146 127 138 126 108 117 112 45 88 73 62 101 74 26
++88 73 62 101 83 74 117 114 76 117 99 86 117 99 86 88 73 62 76 46 20 33 30 30
++53 35 17 42 38 42 47 39 42 47 39 42 47 39 42 42 38 42 47 39 42 47 39 42
++42 41 42 36 35 37 47 47 21 42 41 42 42 41 42 42 41 42 47 44 42 42 41 42
++42 47 42 42 41 42 47 44 42 42 41 42 42 41 42 42 41 42 47 44 42 42 41 42
++42 41 42 42 41 42 43 42 50 42 41 42 48 44 48 43 42 50 42 41 42 42 41 42
++42 41 42 43 42 50 43 42 50 48 44 48 43 42 50 42 47 42 43 42 50 35 47 50
++35 47 50 42 47 42 43 42 50 43 42 50 42 47 42 42 41 42 43 42 50 42 41 42
++42 41 42 42 41 42 43 42 50 42 41 42 43 42 50 42 41 42 42 41 42 42 41 42
++42 41 42 42 38 42 42 41 42 42 38 42 42 41 42 42 38 42 37 35 43 36 35 37
++36 35 37 33 39 38 37 35 43 36 35 37 42 38 42 33 39 38 42 38 42 37 35 43
++42 41 42 34 40 43 43 42 50 34 40 43 42 41 42 34 40 43 34 40 43 37 35 43
++34 40 43 42 38 42 37 35 43 34 40 43 34 40 43 37 35 43 34 40 43 34 40 43
++29 34 50 34 40 43 34 40 43 43 42 50 34 40 43 43 42 50 42 41 42 43 42 50
++42 41 42 47 44 42 42 41 42 47 44 42 42 41 42 47 44 42 42 41 42 42 41 42
++42 41 42 47 39 42 42 41 42 47 44 42 42 41 42 47 44 42 42 41 42 47 44 42
++47 44 42 42 41 42 42 41 42 47 44 42 48 44 48 42 41 42 48 44 48 42 41 42
++42 41 42 42 41 42 34 40 43 36 35 37 33 39 38 36 35 37 31 35 35 33 39 38
++31 35 35 33 39 38 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 31 35 35
++36 35 37 36 35 37 31 35 35 36 35 37 33 30 30 33 30 30 33 30 30 33 30 32
++31 35 35 33 30 32 33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30
++32 39 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 15 33 30 30
++34 30 15 33 30 30 52 30 35 33 30 30 52 30 35 33 30 30 52 30 35 32 39 24
++52 30 35 36 35 37 53 35 17 33 30 32 36 35 37 52 30 35 32 39 24 33 30 30
++52 30 35 32 39 24 36 35 37 33 30 30 36 35 37 33 30 30 33 30 30 26 30 28
++33 30 30 26 30 28 26 30 28 30 30 34 26 24 32 26 30 28 33 30 32 30 30 34
++33 30 32 31 35 35 33 30 36 36 35 37 36 35 37 36 35 37 42 41 42 34 40 43
++42 41 42 42 41 42 42 41 42 48 44 48 48 50 48 53 46 48 55 55 48 55 55 48
++63 55 51 55 55 48 63 55 51 63 55 51 63 55 51 59 55 55 63 55 51 59 55 55
++59 55 55 59 55 55 48 50 48 54 57 61 53 46 48 48 50 48 43 42 50 43 42 50
++42 41 42 34 40 43 36 35 37 36 35 37 31 35 35 30 30 34 30 30 34 26 24 32
++33 30 30 22 25 24 26 30 28 26 30 28 26 24 32 26 30 28 26 30 28 26 24 32
++26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 26 24 32 33 30 30 26 24 32
++26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 26 30 28 26 30 28 26 30 28
++26 30 28 23 20 24 33 30 30 23 20 24 33 30 30 33 30 30 26 25 15 33 30 30
++33 30 30 29 35 19 33 30 30 36 35 37 52 30 35 36 35 37 53 35 37 36 35 37
++32 39 24 53 35 37 36 35 37 36 35 37 32 39 24 36 35 37 32 39 24 33 30 32
++33 30 32 33 30 32 33 30 30 26 30 28 33 30 30 26 24 32 22 25 24 22 25 24
++23 20 24 22 25 24 23 20 24 26 25 15 23 20 24 22 25 24 22 25 24 22 25 24
++33 30 30 23 20 24 33 30 30 33 30 30 33 30 30 33 30 32 33 30 30 52 30 35
++33 30 30 33 30 30 33 30 30 36 35 37 33 30 30 36 35 37 33 30 32 33 30 32
++33 30 32 26 24 32 26 24 32 26 30 28 22 25 24 26 24 32 26 30 28 26 24 32
++26 30 28 30 30 34 30 30 34 26 30 28 31 35 35 36 35 37 36 35 37 36 35 37
++32 39 24 36 35 37 36 35 37 32 39 24 36 35 37 33 30 30 36 35 37 32 39 24
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 37 35 43 37 35 43
++34 40 43 42 38 42 43 42 50 42 41 42 43 42 50 42 41 42 34 40 43 37 35 43
++
++17 12 17 23 10 10 15 17 7 17 12 17 15 17 7 17 12 17 15 22 17 28 13 18
++14 16 17 23 18 22 17 12 17 22 24 13 26 12 13 14 16 17 26 12 13 17 12 17
++22 24 13 17 12 17 15 17 7 17 12 17 15 17 7 17 12 17 14 16 17 13 4 7
++17 12 17 13 4 7 15 17 7 7 12 13 17 12 17 13 4 7 17 12 17 7 12 13
++17 12 17 13 4 7 7 12 13 17 12 17 7 12 13 17 12 17 7 10 17 17 12 17
++14 16 17 14 16 17 14 16 17 12 18 20 12 18 30 22 25 24 12 18 30 22 23 31
++22 23 31 22 23 31 23 30 35 23 30 35 28 30 35 28 35 38 29 34 50 33 30 36
++28 35 38 28 30 35 28 30 35 26 24 32 26 24 32 26 24 32 22 23 31 22 23 31
++22 25 24 22 25 24 23 20 24 22 25 24 25 30 29 26 24 32 26 24 32 26 24 32
++26 24 32 26 24 32 26 24 32 23 30 35 23 30 35 23 30 35 22 23 31 23 30 35
++12 18 30 22 23 31 22 23 31 12 18 30 22 23 31 22 23 31 22 23 31 22 23 31
++22 23 31 22 25 24 22 23 31 23 20 24 12 18 20 17 12 17 7 12 13 13 4 7
++7 12 13 17 12 17 14 16 17 14 16 17 23 18 22 23 20 24 23 18 22 33 30 30
++23 20 24 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 52 30 35 32 39 24
++52 30 35 36 35 37 47 47 21 33 30 30 52 30 35 47 47 21 52 30 35 52 30 35
++36 35 37 52 30 35 36 35 37 53 35 37 36 35 37 47 39 42 36 35 37 47 39 42
++42 38 42 42 38 42 42 38 42 42 38 42 42 38 42 43 42 50 43 42 50 43 42 50
++34 40 43 43 42 50 42 41 42 34 40 43 34 40 43 37 35 43 37 35 43 42 38 42
++36 35 37 36 35 37 33 39 38 33 30 32 33 30 30 30 30 34 33 30 30 33 30 30
++26 30 28 33 30 32 33 30 30 26 24 32 33 30 30 26 24 32 22 25 24 23 20 24
++23 20 24 23 20 24 23 20 24 23 18 22 14 16 17 23 20 24 17 12 17 12 18 20
++17 12 17 12 18 20 17 12 17 7 10 17 14 16 17 17 12 17 14 16 17 17 12 17
++14 16 17 14 16 17 12 18 20 23 18 22 23 20 24 23 20 24 23 20 24 22 25 24
++23 20 24 23 20 24 23 20 24 23 20 24 26 30 28 23 20 24 26 24 32 23 20 24
++33 30 30 26 24 32 26 24 32 33 30 30 23 20 24 33 30 30 26 24 32 33 30 30
++26 24 32 26 30 28 26 24 32 22 25 24 26 24 32 22 25 24 22 25 24 26 24 32
++22 25 24 26 30 28 26 24 32 22 25 24 26 24 32 26 30 28 23 20 24 26 30 28
++26 24 32 22 25 24 33 30 30 23 20 24 26 30 28 22 25 24 26 24 32 26 30 28
++26 24 32 33 30 32 36 35 37 36 35 37 42 38 42 42 41 42 42 41 42 42 41 42
++42 41 42 48 44 48 48 44 48 48 44 48 43 42 50 47 39 42 42 41 42 42 38 42
++42 38 42 42 38 42 42 38 42 42 38 42 36 35 37 42 38 42 36 35 37 36 35 37
++52 30 35 33 30 30 36 35 37 33 30 32 36 35 37 52 30 35 33 30 30 52 30 35
++33 30 30 33 30 30 33 30 30 36 35 37 32 39 24 52 30 35 36 35 37 53 35 37
++36 35 37 53 35 37 36 35 37 53 35 37 36 35 37 47 44 42 36 35 37 53 35 37
++36 35 37 42 38 42 47 47 21 36 35 37 53 35 37 36 35 37 32 39 24 52 30 35
++36 35 37 33 30 30 36 35 37 36 35 37 33 30 30 36 35 37 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 53 35 37 33 30 30 15 17 7
++76 46 20 138 102 108 168 102 88 201 146 124 201 146 124 201 146 124 201 146 124 201 146 124
++177 171 115 168 102 88 201 146 124 197 171 123 217 168 156 197 171 123 201 146 124 146 150 115
++168 102 88 117 99 86 117 112 45 120 63 71 117 114 76 117 114 76 168 102 88 146 150 115
++168 102 88 195 113 123 157 148 53 201 146 124 168 146 127 201 146 124 177 171 115 168 146 127
++201 146 124 168 146 127 201 146 124 201 146 124 217 168 156 197 171 123 217 168 156 201 146 124
++195 113 123 177 171 115 168 102 88 168 102 88 201 146 124 201 146 124 168 146 127 201 146 124
++201 146 124 201 146 124 168 146 127 177 169 143 201 146 124 217 168 156 197 171 123 217 168 156
++197 171 123 201 146 124 217 168 156 222 171 182 189 165 168 112 123 108 36 35 37 22 25 24
++37 35 43 33 30 36 36 35 37 36 35 37 42 41 42 48 44 48 52 55 48 59 55 55
++65 63 61 59 55 55 51 49 42 36 35 37 33 30 30 23 20 24 15 17 7 7 12 13
++6 15 6 13 4 7 6 15 6 13 4 7 13 4 7 26 12 13 76 46 20 117 114 76
++138 126 108 168 146 127 177 171 115 168 102 88 163 117 123 168 146 127 197 171 123 201 146 124
++168 146 127 168 102 88 101 83 74 75 56 53 60 49 42 63 55 45 53 35 37 53 35 17
++60 49 42 101 83 74 138 126 108 168 102 88 168 146 127 168 146 127 201 146 124 177 169 143
++201 146 124 197 171 123 201 146 124 177 169 143 201 146 124 197 171 123 201 146 124 197 171 123
++217 168 156 201 146 124 177 169 143 201 146 124 197 171 123 168 146 127 168 146 127 146 150 115
++168 102 88 138 126 108 117 99 86 117 99 86 120 63 71 117 99 86 117 114 76 163 117 123
++168 146 127 197 171 123 189 165 168 197 171 123 168 146 127 168 102 88 120 63 71 88 73 62
++76 46 20 88 73 31 101 83 74 117 99 86 117 99 86 75 56 53 53 35 17 33 30 30
++36 35 37 42 41 42 55 39 37 36 35 37 42 38 42 47 47 21 53 35 37 36 35 37
++47 47 21 42 41 42 42 38 42 47 39 42 36 35 37 42 41 42 42 41 42 47 44 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++43 42 50 42 41 42 47 44 42 43 42 50 42 41 42 42 41 42 47 44 42 43 42 50
++42 41 42 47 44 42 43 42 50 42 41 42 43 42 50 43 42 50 43 42 50 42 47 42
++43 42 50 43 42 50 42 47 42 43 42 50 42 41 42 43 42 50 42 41 42 42 38 42
++43 42 50 42 41 42 43 42 50 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 38 42 42 38 42 42 38 42 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 42 41 42 36 35 37 37 35 43 36 35 37 37 35 43
++34 40 43 42 38 42 34 40 43 42 41 42 35 47 50 37 35 43 34 40 43 34 40 43
++37 35 43 37 35 43 33 39 38 37 35 43 34 40 43 33 39 38 29 34 50 37 35 43
++34 40 43 37 35 43 37 35 43 34 40 43 34 40 43 42 41 42 42 38 42 42 38 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 47 44 42 42 41 42
++42 41 42 47 44 42 42 41 42 47 44 42 42 41 42 43 42 50 42 41 42 43 42 50
++42 41 42 42 41 42 42 38 42 42 38 42 36 35 37 36 35 37 36 35 37 31 35 35
++31 35 35 31 35 35 31 35 35 36 35 37 36 35 37 36 35 37 31 35 35 36 35 37
++36 35 37 36 35 37 36 35 37 31 35 35 32 39 24 31 35 35 33 30 30 33 30 32
++33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30
++33 30 32 52 30 15 33 30 30 33 30 30 53 35 17 33 30 30 32 39 24 52 30 35
++33 30 30 52 30 35 33 30 30 36 35 37 33 30 30 32 39 24 52 30 35 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 29 35 19 33 30 30
++26 30 28 33 30 30 26 30 28 33 30 30 33 30 30 26 30 28 26 30 28 30 30 34
++30 30 34 33 30 32 30 30 34 31 35 35 36 35 37 36 35 37 36 35 37 42 38 42
++34 40 43 42 41 42 42 41 42 42 47 42 47 49 42 53 46 48 53 46 48 55 55 48
++63 55 51 59 55 55 63 55 51 59 55 55 65 55 54 59 55 55 63 55 51 63 55 51
++59 55 55 59 55 55 59 55 55 54 57 61 48 50 48 48 50 48 48 50 48 48 44 48
++42 41 42 37 35 43 36 35 37 33 30 36 31 35 35 33 30 36 30 30 34 33 30 30
++33 30 30 26 24 32 26 30 28 26 24 32 26 30 28 26 30 28 26 24 32 26 30 28
++26 30 28 26 24 32 26 30 28 26 30 28 33 30 30 26 30 28 26 30 28 26 24 32
++26 30 28 26 30 28 26 24 32 26 30 28 26 30 28 26 24 32 33 30 30 23 20 24
++33 30 30 26 30 28 26 24 32 26 30 28 26 30 28 23 20 24 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 36 35 37 32 39 24 52 30 35 32 39 24 36 35 37
++53 35 37 36 35 37 36 35 37 36 35 37 52 30 35 33 30 30 36 35 37 36 35 37
++33 30 32 33 30 30 33 30 30 33 30 30 26 30 28 26 30 28 33 30 30 22 25 24
++33 30 30 23 20 24 22 25 24 23 20 24 22 25 24 23 18 22 33 30 30 23 20 24
++33 30 30 22 25 24 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 33 30 30
++33 30 30 33 30 30 52 30 35 33 30 30 33 30 32 36 35 37 33 30 32 33 30 32
++33 30 32 33 30 30 33 30 30 26 30 28 26 30 28 26 24 32 26 24 32 26 30 28
++28 30 35 30 30 34 28 30 35 28 30 35 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 34 40 43 42 38 42
++42 41 42 43 42 50 42 41 42 43 42 50 35 46 43 43 42 50 43 42 50 34 40 43
++
++15 17 7 17 12 17 15 17 7 17 12 17 26 12 13 14 16 17 26 12 13 22 24 13
++23 18 22 26 12 13 22 24 13 17 12 17 17 12 17 26 12 13 14 16 17 23 10 10
++17 12 17 17 12 17 17 12 17 15 17 7 14 16 17 15 17 7 15 17 7 17 12 17
++15 17 7 17 12 17 7 12 13 17 12 17 13 4 7 14 16 17 15 17 7 17 12 17
++7 12 13 17 12 17 7 12 13 7 12 13 17 12 17 7 12 13 14 16 17 14 16 17
++14 16 17 14 16 17 14 16 17 12 18 20 12 18 20 12 18 20 12 18 30 22 25 24
++22 23 31 22 25 24 22 23 31 26 24 32 26 24 32 26 24 32 30 30 34 26 24 32
++30 30 34 28 30 35 26 24 32 25 30 29 23 20 24 23 20 24 23 20 24 22 25 24
++23 20 24 23 20 24 22 23 31 23 20 24 22 23 31 22 23 31 25 30 29 26 24 32
++24 30 43 23 30 35 23 30 35 23 30 35 22 23 31 12 18 30 23 30 35 12 18 30
++22 23 31 22 23 31 22 23 31 22 23 31 22 23 31 22 23 31 22 23 31 22 23 31
++23 20 24 12 18 30 23 20 24 12 18 20 12 18 20 7 10 17 15 17 7 7 12 13
++13 4 7 14 16 17 14 16 17 26 25 15 23 18 22 26 25 15 22 25 24 26 25 15
++33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 53 35 37 52 30 35 53 35 37
++53 35 37 53 35 37 36 35 37 52 30 35 52 30 35 52 30 35 36 35 37 47 47 21
++52 30 35 53 35 37 42 38 42 53 35 37 42 41 42 47 39 42 47 44 42 47 39 42
++42 41 42 42 41 42 43 42 50 42 41 42 43 42 50 42 41 42 43 42 50 43 42 50
++43 42 50 35 46 43 43 42 50 35 46 43 34 40 43 42 38 42 34 40 43 34 40 43
++36 35 37 36 35 37 36 35 37 33 30 32 33 30 30 26 30 28 30 30 34 26 30 28
++33 30 32 30 30 34 26 24 32 26 30 28 26 24 32 22 25 24 23 20 24 22 25 24
++23 20 24 23 20 24 15 22 17 23 18 22 15 22 17 12 18 20 12 18 20 17 12 17
++7 10 17 17 12 17 14 16 17 17 12 17 14 16 17 17 12 17 12 18 20 17 12 17
++14 16 17 23 18 22 23 18 22 23 20 24 23 20 24 22 23 31 22 25 24 22 23 31
++23 20 24 22 25 24 23 20 24 33 30 30 23 20 24 33 30 30 26 24 32 22 25 24
++26 24 32 23 20 24 33 30 30 23 20 24 33 30 30 26 24 32 26 30 28 26 24 32
++26 30 28 26 24 32 26 30 28 22 25 24 26 30 28 23 20 24 26 24 32 22 25 24
++26 24 32 22 25 24 22 25 24 26 24 32 22 25 24 26 24 32 22 25 24 26 24 32
++22 25 24 26 30 28 26 24 32 22 25 24 26 24 32 23 20 24 33 30 30 26 30 28
++26 30 28 33 30 30 33 30 32 33 30 32 36 35 37 42 38 42 42 38 42 47 39 42
++42 41 42 47 39 42 42 41 42 42 38 42 42 38 42 42 38 42 36 35 37 36 35 37
++42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 30 30
++36 35 37 36 35 37 33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 52 30 35 33 30 30 36 35 37 36 35 37 33 30 30 36 35 37 52 30 35
++36 35 37 42 38 42 36 35 37 53 35 37 36 35 37 47 47 21 42 38 42 36 35 37
++47 44 42 36 35 37 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 52 30 35 36 35 37 36 35 37 36 35 37 32 39 24 33 30 32 36 35 37
++33 30 30 36 35 37 33 30 30 33 30 30 36 35 37 42 41 42 55 39 37 26 12 13
++55 39 18 117 99 86 168 146 127 201 146 124 201 146 124 201 146 124 217 168 156 227 171 124
++201 146 124 168 146 127 201 146 124 197 171 123 217 168 156 217 168 156 168 146 127 168 146 127
++168 102 88 117 114 76 117 99 86 117 99 86 168 102 88 117 114 76 168 102 88 157 148 53
++163 117 123 177 171 115 168 146 127 201 146 124 168 102 88 177 171 115 201 146 124 201 146 124
++168 146 127 201 146 124 201 146 124 168 146 127 201 146 124 197 171 123 201 146 124 197 171 123
++201 146 124 163 117 123 177 171 115 168 102 88 201 146 124 168 102 88 201 146 124 168 146 127
++168 102 88 168 146 127 195 113 123 201 146 124 201 146 124 168 146 127 201 146 124 168 146 127
++201 146 124 168 146 127 197 171 123 217 168 156 217 168 156 146 151 137 63 55 51 33 30 30
++26 24 32 36 35 37 37 35 43 33 39 38 42 38 42 42 47 42 48 50 48 59 55 55
++55 55 48 55 55 48 42 47 42 29 35 19 34 30 15 23 18 22 15 17 7 13 4 7
++6 15 6 7 12 13 15 17 7 13 4 7 15 17 7 26 25 15 63 55 45 101 83 74
++138 126 108 201 146 124 168 146 127 146 150 115 168 102 88 146 150 115 168 102 88 168 146 127
++168 102 88 138 126 108 117 114 76 117 99 86 101 83 74 101 83 74 75 56 53 63 55 45
++88 73 31 117 99 86 163 117 123 146 150 115 168 146 127 201 146 124 197 171 123 197 171 123
++197 171 123 201 146 124 197 171 123 217 168 156 197 171 123 177 169 143 217 168 156 177 169 143
++201 146 124 197 171 123 201 146 124 177 169 143 201 146 124 168 146 127 201 146 124 168 146 127
++168 102 88 117 127 86 168 102 88 117 112 45 138 102 108 168 102 88 168 146 127 201 146 124
++177 169 143 222 171 182 217 168 156 189 165 168 177 169 143 146 150 115 117 99 86 88 73 31
++88 44 51 88 73 62 138 126 108 168 146 127 99 93 84 63 55 45 32 39 24 42 38 42
++47 39 42 47 44 42 36 35 37 47 47 21 36 35 37 36 35 37 36 35 37 53 35 37
++36 35 37 36 35 37 47 47 21 36 35 37 47 39 42 36 35 37 47 39 42 42 41 42
++42 38 42 42 38 42 42 38 42 42 38 42 42 38 42 42 41 42 42 41 42 42 41 42
++42 41 42 43 42 50 43 42 50 42 41 42 42 41 42 42 41 42 43 42 50 48 44 48
++42 41 42 43 42 50 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 47 42 43 42 50 42 41 42 48 44 48 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 43 42 50 42 38 42 42 38 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 42 38 42 33 39 38 42 38 42 36 35 37 33 39 38
++36 35 37 42 38 42 34 40 43 42 41 42 42 41 42 34 40 43 43 42 50 34 40 43
++34 40 43 34 40 43 34 40 43 34 40 43 34 40 43 33 39 38 33 39 38 28 35 38
++36 35 37 37 35 43 33 39 38 42 38 42 37 35 43 34 40 43 37 35 43 42 38 42
++36 35 37 42 41 42 42 41 42 42 41 42 36 35 37 42 38 42 42 41 42 42 41 42
++42 41 42 47 44 42 42 41 42 47 44 42 42 41 42 48 44 48 42 41 42 42 41 42
++42 41 42 42 41 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 38 42 33 39 38 36 35 37 36 35 37 36 35 37 31 35 35 33 30 36
++31 35 35 33 30 36 36 35 37 31 35 35 31 35 35 33 30 36 31 35 35 31 35 35
++33 30 32 33 30 32 36 35 37 36 35 37 36 35 37 33 30 32 33 30 32 33 30 32
++33 30 32 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 33 30 30
++34 30 15 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30
++33 30 30 33 30 30 33 30 30 53 35 17 33 30 32 33 30 30 52 30 35 33 30 30
++53 35 17 33 30 30 33 30 30 53 35 17 33 30 32 33 30 30 33 30 30 32 39 24
++33 30 30 33 30 30 32 39 24 33 30 30 29 35 19 33 30 30 33 30 30 33 30 30
++26 30 28 34 30 15 26 24 32 33 30 30 26 30 28 26 24 32 33 30 32 30 30 34
++26 30 28 30 30 34 30 30 34 30 30 34 31 35 35 31 35 35 36 35 37 42 38 42
++42 38 42 42 38 42 42 41 42 42 41 42 47 44 42 51 49 42 51 49 42 62 47 47
++63 55 51 63 55 51 63 55 51 65 55 54 65 55 54 65 55 54 65 55 54 59 55 55
++63 55 51 59 55 55 55 55 48 55 55 48 53 46 48 48 50 48 48 44 48 42 41 42
++42 41 42 42 38 42 37 35 43 33 30 36 33 30 36 31 35 35 33 30 36 30 30 34
++28 30 35 26 24 32 33 30 30 26 30 28 26 24 32 26 30 28 26 30 28 26 24 32
++33 30 30 22 25 24 26 24 32 26 30 28 22 25 24 26 30 28 26 24 32 33 30 30
++26 30 28 26 24 32 26 30 28 33 30 30 26 24 32 22 25 24 26 30 28 26 24 32
++23 20 24 26 24 32 33 30 30 23 20 24 33 30 30 33 30 30 26 25 15 33 30 30
++33 30 30 33 30 30 33 30 30 52 30 35 36 35 37 52 30 35 36 35 37 53 35 37
++36 35 37 53 35 37 32 39 24 53 35 37 36 35 37 36 35 37 36 35 37 33 30 32
++33 30 30 33 30 30 33 30 30 26 25 15 33 30 30 26 25 15 26 24 32 23 20 24
++26 24 32 22 25 24 23 20 24 22 25 24 23 20 24 23 18 22 22 25 24 33 30 30
++23 20 24 33 30 30 26 24 32 26 30 28 33 30 30 33 30 30 33 30 30 33 30 32
++36 35 37 33 30 30 36 35 37 33 30 30 36 35 37 33 30 30 36 35 37 33 30 30
++33 30 32 33 30 30 26 30 28 33 30 30 30 30 34 30 30 34 30 30 34 28 30 35
++28 30 35 28 35 38 28 35 38 28 35 38 37 35 43 37 35 43 42 41 42 42 41 42
++42 38 42 36 35 37 42 38 42 52 30 35 32 39 24 53 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 33 39 38 42 41 42 42 41 42 42 41 42
++42 41 42 43 42 50 34 40 43 43 42 50 43 42 50 35 47 50 34 40 43 43 42 50
++
++17 12 17 15 17 7 23 10 10 17 12 17 22 24 13 17 12 17 23 18 22 23 18 22
++15 17 7 23 18 22 14 16 17 26 12 13 22 24 13 14 16 17 23 10 10 15 17 7
++17 12 17 15 17 7 14 16 17 17 12 17 15 17 7 17 12 17 17 12 17 15 17 7
++17 12 17 7 12 13 17 12 17 15 17 7 14 16 17 13 4 7 7 12 13 13 4 7
++17 12 17 7 12 13 13 4 7 17 12 17 7 12 13 17 12 17 7 12 13 14 16 17
++14 16 17 17 12 17 14 16 17 17 12 17 12 18 20 14 16 17 12 18 20 22 25 24
++12 18 20 22 25 24 22 23 31 22 25 24 23 20 24 22 23 31 23 20 24 22 23 31
++26 24 32 26 24 32 22 25 24 22 23 31 23 20 24 23 20 24 12 18 20 23 20 24
++15 22 17 23 20 24 23 20 24 23 20 24 22 25 24 22 23 31 25 30 29 26 24 32
++23 30 35 26 24 32 24 30 43 22 23 31 23 30 35 23 30 35 22 23 31 22 23 31
++22 23 31 22 23 31 22 23 31 22 23 31 23 20 24 22 23 31 22 23 31 23 20 24
++22 23 31 22 25 24 23 20 24 23 20 24 12 18 20 17 12 17 17 12 17 15 17 7
++14 16 17 15 17 7 23 18 22 26 25 15 22 25 24 22 25 24 26 25 15 33 30 30
++33 30 30 33 30 30 36 35 37 32 39 24 53 35 37 47 47 21 36 35 37 53 35 37
++36 35 37 55 39 37 36 35 37 53 35 37 47 47 21 53 35 37 53 35 37 47 39 42
++53 35 37 42 41 42 53 35 37 42 41 42 55 39 37 47 44 42 47 44 42 47 44 42
++47 44 42 47 39 42 47 39 42 43 42 50 43 42 50 43 42 50 43 42 50 35 47 50
++43 42 50 43 42 50 43 42 50 35 47 50 42 41 42 42 41 42 37 35 43 42 38 42
++36 35 37 36 35 37 31 35 35 31 35 35 30 30 34 33 30 30 26 30 28 26 24 32
++26 30 28 30 30 34 26 30 28 26 24 32 26 30 28 22 25 24 22 25 24 23 20 24
++22 25 24 23 20 24 23 20 24 12 18 20 23 18 22 23 18 22 12 18 20 17 12 17
++14 16 17 17 12 17 7 10 17 17 12 17 14 16 17 7 10 17 17 12 17 12 18 20
++12 18 20 23 18 22 12 18 20 23 20 24 23 20 24 23 20 24 22 25 24 26 24 32
++23 20 24 23 20 24 23 20 24 26 24 32 22 25 24 26 24 32 23 20 24 33 30 30
++22 25 24 26 24 32 23 20 24 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30
++22 25 24 22 25 24 23 20 24 26 24 32 22 25 24 26 24 32 22 25 24 22 25 24
++23 20 24 26 30 28 26 24 32 22 25 24 26 30 28 22 25 24 26 24 32 26 30 28
++22 25 24 26 24 32 22 25 24 26 24 32 22 25 24 22 25 24 26 24 32 26 30 28
++26 24 32 26 30 28 33 30 30 33 30 30 36 35 37 36 35 37 36 35 37 36 35 37
++47 39 42 36 35 37 42 38 42 36 35 37 42 38 42 36 35 37 42 41 42 36 35 37
++36 35 37 36 35 37 36 35 37 52 30 35 36 35 37 33 30 30 52 30 35 36 35 37
++36 35 37 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 52 30 35 36 35 37 36 35 37
++53 35 37 36 35 37 53 35 37 36 35 37 47 39 42 36 35 37 47 39 42 36 35 37
++53 35 37 36 35 37 42 38 42 47 47 21 36 35 37 53 35 37 36 35 37 53 35 37
++36 35 37 36 35 37 53 35 37 36 35 37 36 35 37 33 30 30 36 35 37 33 30 30
++33 30 32 33 30 30 33 30 30 33 30 30 33 30 32 42 41 42 51 49 42 34 30 15
++53 35 17 88 73 62 168 102 88 201 146 124 201 146 124 197 171 123 217 168 156 217 168 156
++197 171 123 195 113 123 168 146 127 197 171 123 217 168 156 197 171 123 201 146 124 168 146 127
++163 117 123 138 126 108 168 102 88 117 114 76 168 102 88 117 114 76 168 102 88 146 150 115
++168 102 88 168 146 127 168 102 88 201 146 124 177 171 115 201 146 124 168 102 88 177 171 115
++168 102 88 201 146 124 168 146 127 201 146 124 201 146 124 168 146 127 201 146 124 201 146 124
++201 146 124 201 146 124 168 102 88 177 171 115 195 113 123 177 171 115 195 113 123 201 146 124
++168 146 127 201 146 124 201 146 124 168 146 127 168 102 88 101 74 26 122 49 24 117 114 76
++168 102 88 138 126 108 163 117 123 146 150 115 217 168 156 166 156 164 99 93 84 42 38 42
++23 20 24 31 35 35 42 38 42 36 35 37 37 35 43 42 41 42 51 49 42 55 55 48
++55 55 48 51 49 42 42 47 42 33 30 30 22 24 13 13 4 7 15 17 7 13 4 7
++7 12 13 13 4 7 6 15 6 13 4 7 23 10 10 52 30 15 75 56 53 98 106 55
++168 102 88 138 126 108 168 146 127 201 146 124 177 171 115 146 150 115 168 102 88 138 126 108
++168 102 88 168 146 127 163 117 123 163 117 123 138 126 108 138 126 108 101 83 74 75 56 53
++120 63 71 138 126 108 168 146 127 201 146 124 197 171 123 168 146 127 197 171 123 201 146 124
++177 169 143 201 146 124 197 171 123 201 146 124 197 171 123 201 146 124 201 146 124 197 171 123
++201 146 124 168 146 127 201 146 124 168 146 127 168 146 127 201 146 124 168 146 127 168 146 127
++146 150 115 168 102 88 138 126 108 168 102 88 138 126 108 168 146 127 201 146 124 177 169 143
++217 168 156 208 215 180 217 168 156 208 215 180 222 171 182 168 146 127 168 102 88 101 83 74
++117 99 86 138 126 108 168 146 127 146 150 115 99 93 84 63 55 45 32 39 24 53 35 37
++36 35 37 36 35 37 47 39 42 36 35 37 53 35 37 36 35 37 47 47 21 36 35 37
++36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 47 47 21 36 35 37 47 39 42
++36 35 37 42 38 42 42 38 42 37 35 43 42 38 42 42 38 42 42 38 42 42 41 42
++42 41 42 43 42 50 43 42 50 42 41 42 42 38 42 42 41 42 42 41 42 48 44 48
++42 41 42 48 44 48 43 42 50 42 41 42 43 42 50 42 41 42 42 41 42 43 42 50
++42 41 42 43 42 50 42 41 42 42 41 42 48 44 48 42 41 42 42 41 42 34 40 43
++42 41 42 37 35 43 42 38 42 42 38 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 42 38 42 42 41 42 36 35 37 37 35 43 42 38 42
++34 40 43 42 41 42 42 41 42 43 42 50 43 42 50 43 42 50 34 40 43 34 40 43
++34 40 43 42 41 42 34 40 43 34 40 43 34 40 43 33 39 38 37 35 43 33 39 38
++37 35 43 33 39 38 37 35 43 34 40 43 37 35 43 37 35 43 37 35 43 36 35 37
++42 38 42 42 38 42 42 38 42 42 41 42 42 38 42 42 41 42 47 39 42 42 41 42
++42 41 42 42 41 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 37 35 43 36 35 37 36 35 37 36 35 37 31 35 35 31 35 35
++33 30 36 30 30 34 31 35 35 33 30 36 31 35 35 33 30 36 31 35 35 33 30 36
++36 35 37 33 30 32 33 30 32 33 30 32 31 35 35 31 35 35 33 30 30 36 35 37
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++52 30 35 33 30 30 33 30 30 34 30 15 33 30 30 28 13 18 33 30 30 34 30 15
++33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 52 30 35 33 30 30 33 30 30 32 39 24 33 30 30 32 39 24 52 30 35
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 29 35 19 33 30 30
++33 30 30 26 30 28 26 30 28 22 25 24 33 30 30 33 30 30 26 30 28 30 30 34
++26 30 28 30 30 34 30 30 34 31 35 35 33 30 36 31 35 35 36 35 37 36 35 37
++37 35 43 42 38 42 42 41 42 47 44 42 47 44 42 47 44 42 51 49 42 53 46 48
++53 46 48 59 55 55 63 55 51 65 55 54 65 55 54 65 55 54 65 63 61 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 52 55 48 48 50 48 48 50 48 43 42 50
++42 41 42 37 35 43 37 35 43 28 35 38 33 30 36 28 35 38 33 30 36 30 30 34
++30 30 34 26 24 32 26 30 28 26 30 28 26 24 32 33 30 30 26 24 32 26 30 28
++26 24 32 33 30 30 26 30 28 22 25 24 33 30 30 26 24 32 26 30 28 22 25 24
++26 24 32 26 30 28 26 30 28 26 24 32 22 25 24 26 24 32 22 25 24 26 24 32
++33 30 30 23 20 24 33 30 30 22 25 24 33 30 30 23 20 24 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 52 30 35 36 35 37 36 35 37
++36 35 37 36 35 37 52 30 35 36 35 37 33 30 30 36 35 37 36 35 37 42 38 42
++33 30 30 33 30 30 33 30 30 33 30 30 26 30 28 33 30 30 23 20 24 26 30 28
++23 20 24 33 30 30 26 25 15 23 20 24 23 20 24 26 25 15 23 20 24 33 30 30
++22 25 24 26 30 28 23 20 24 33 30 30 26 24 32 33 30 30 33 30 30 33 30 32
++33 30 30 36 35 37 33 30 30 36 35 37 32 39 24 36 35 37 33 30 30 33 30 32
++33 30 32 26 30 28 26 30 28 33 30 30 26 24 32 28 30 35 30 30 34 28 30 35
++28 30 35 28 35 38 28 35 38 37 35 43 34 40 43 42 38 42 43 42 50 34 40 43
++42 41 42 42 41 42 36 35 37 42 38 42 42 41 42 36 35 37 32 39 24 42 41 42
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 41 42 42 41 42 42 41 42
++43 42 50 43 42 50 43 42 50 35 47 50 43 42 50 43 42 50 43 42 50 34 40 43
++
++15 17 7 17 12 17 17 12 17 15 17 7 17 12 17 26 12 13 15 22 17 26 12 13
++23 18 22 26 12 13 22 24 13 17 12 17 17 12 17 26 12 13 14 16 17 17 12 17
++26 12 13 14 16 17 26 12 13 14 16 17 14 16 17 15 17 7 14 16 17 14 16 17
++15 17 7 17 12 17 15 17 7 17 12 17 7 12 13 17 12 17 17 12 17 17 12 17
++17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13
++14 16 17 14 16 17 14 16 17 7 10 17 14 16 17 17 12 17 12 18 20 12 18 20
++23 20 24 12 18 30 23 20 24 23 20 24 12 18 20 23 20 24 22 23 31 23 20 24
++22 23 31 22 25 24 22 23 31 23 20 24 23 20 24 23 20 24 12 18 20 23 18 22
++23 18 22 23 20 24 23 20 24 22 23 31 22 23 31 25 30 29 26 24 32 23 30 35
++23 30 35 23 30 35 26 24 32 23 30 35 12 18 30 23 30 35 12 18 30 23 30 35
++12 18 30 22 23 31 22 23 31 23 20 24 22 23 31 22 23 31 22 23 31 22 23 31
++22 25 24 23 20 24 12 18 30 12 18 20 17 12 17 14 16 17 7 12 13 17 12 17
++14 16 17 14 16 17 22 24 13 23 20 24 22 25 24 33 30 30 22 25 24 33 30 30
++33 30 30 53 35 37 36 35 37 55 39 37 42 38 42 53 35 37 53 35 37 55 39 37
++55 39 37 55 39 37 53 35 37 53 35 37 52 30 35 53 35 37 55 39 37 53 35 37
++47 39 42 55 39 37 47 39 42 47 39 42 47 39 42 47 44 42 47 44 42 47 44 42
++47 44 42 48 44 48 48 44 48 48 44 48 48 44 48 48 44 48 48 50 48 43 42 50
++48 50 48 43 42 50 43 55 48 43 42 50 43 42 50 42 41 42 37 35 43 37 35 43
++33 39 38 36 35 37 33 30 32 33 30 30 26 30 28 33 30 30 30 30 34 26 30 28
++30 30 34 26 24 32 33 30 30 26 30 28 26 24 32 26 24 32 22 25 24 22 25 24
++23 20 24 23 20 24 22 25 24 23 18 22 12 18 20 23 18 22 12 18 20 17 12 17
++12 18 20 17 12 17 14 16 17 12 18 20 17 12 17 17 12 17 12 18 20 23 18 22
++23 18 22 12 18 30 23 20 24 23 20 24 22 23 31 23 20 24 22 23 31 22 25 24
++26 24 32 22 25 24 22 25 24 26 30 28 23 20 24 33 30 30 26 30 28 26 24 32
++26 24 32 22 25 24 26 24 32 22 25 24 26 24 32 23 20 24 26 24 32 23 20 24
++22 25 24 23 20 24 22 25 24 22 25 24 26 24 32 22 25 24 26 24 32 22 25 24
++26 24 32 22 25 24 26 30 28 23 20 24 26 30 28 26 24 32 22 25 24 23 20 24
++26 30 28 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 26 30 28 26 24 32
++33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 36 35 37 36 35 37 53 35 37
++32 39 24 53 35 37 36 35 37 36 35 37 53 35 37 36 35 37 36 35 37 47 47 21
++36 35 37 33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++36 35 37 33 30 30 52 30 35 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30
++52 30 35 33 30 30 36 35 37 33 30 30 36 35 37 36 35 37 32 39 24 53 35 37
++36 35 37 36 35 37 47 39 42 47 47 21 42 38 42 42 38 42 42 41 42 47 47 21
++42 38 42 42 41 42 47 39 42 36 35 37 42 38 42 36 35 37 47 44 42 36 35 37
++47 44 42 36 35 37 42 41 42 36 35 37 36 35 37 33 30 30 36 35 37 33 30 30
++36 35 37 33 30 32 33 30 32 33 30 30 33 30 32 42 38 42 47 44 42 33 30 30
++53 35 17 88 44 51 138 126 108 201 146 124 168 146 127 201 146 124 217 168 156 227 171 124
++201 146 124 168 146 127 168 102 88 197 171 123 217 168 156 217 168 156 197 171 123 168 146 127
++146 150 115 168 102 88 146 150 115 163 117 123 138 126 108 168 102 88 146 150 115 168 102 88
++177 171 115 168 102 88 177 171 115 201 146 124 168 102 88 177 171 115 168 102 88 201 146 124
++157 148 53 201 146 124 168 102 88 168 146 127 168 102 88 201 146 124 168 146 127 168 146 127
++201 146 124 168 146 127 201 146 124 201 146 124 201 146 124 201 146 124 201 146 124 168 102 88
++168 102 88 177 171 115 168 102 88 117 99 86 88 30 18 49 13 16 52 30 15 102 33 26
++101 83 74 117 112 45 168 102 88 138 102 108 217 168 156 166 180 164 138 126 108 48 44 48
++14 16 17 33 30 36 36 35 37 36 35 37 33 39 38 42 38 42 47 44 42 51 49 42
++53 46 48 51 49 42 47 47 21 33 30 30 23 10 10 13 4 7 13 4 7 6 15 6
++13 4 7 6 15 6 13 4 7 15 17 7 23 10 10 52 30 15 75 73 36 101 83 74
++117 114 76 168 102 88 177 171 115 168 102 88 168 146 127 168 102 88 177 171 115 168 146 127
++177 171 115 168 146 127 177 171 115 201 146 124 168 146 127 168 146 127 117 99 86 101 83 74
++117 114 76 168 102 88 177 169 143 197 171 123 177 169 143 201 146 124 177 169 143 197 171 123
++201 146 124 168 146 127 201 146 124 177 169 143 201 146 124 177 169 143 197 171 123 168 146 127
++201 146 124 177 169 143 201 146 124 168 146 127 168 146 127 168 102 88 177 171 115 163 117 123
++201 146 124 146 150 115 168 102 88 177 171 115 168 146 127 201 146 124 177 169 143 217 168 156
++217 168 156 217 168 156 217 168 156 217 168 156 208 215 180 217 168 156 138 126 108 117 114 76
++117 99 86 117 99 86 163 117 123 138 126 108 99 93 84 60 49 42 34 30 15 36 35 37
++36 35 37 33 30 30 47 47 21 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42
++47 47 21 36 35 37 36 35 37 53 35 37 36 35 37 36 35 37 42 38 42 36 35 37
++47 39 42 36 35 37 36 35 37 42 41 42 42 38 42 37 35 43 42 41 42 42 41 42
++42 38 42 43 42 50 47 39 42 42 41 42 42 41 42 42 41 42 43 42 50 42 41 42
++43 42 50 42 41 42 47 44 42 47 39 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 48 44 48 42 41 42 43 42 50 42 41 42 42 38 42 42 38 42
++37 35 43 42 38 42 42 38 42 42 38 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 36 35 37 42 41 42 42 38 42 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 42 38 42 42 41 42 34 40 43
++42 41 42 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50
++43 42 50 35 47 50 34 40 43 34 40 43 34 40 43 34 40 43 34 40 43 34 40 43
++34 40 43 37 35 43 34 40 43 36 35 37 37 35 43 33 39 38 37 35 43 33 39 38
++42 38 42 36 35 37 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 47 44 42 42 41 42 42 41 42 42 38 42 42 38 42 33 39 38 42 41 42
++34 40 43 37 35 43 33 39 38 36 35 37 36 35 37 31 35 35 33 30 36 33 30 32
++30 30 34 33 30 32 30 30 34 31 35 35 33 30 32 31 35 35 31 35 35 30 30 34
++30 30 34 31 35 35 36 35 37 36 35 37 33 30 32 33 30 30 33 30 32 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30
++34 30 15 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 52 30 15 36 35 37 33 30 30
++52 30 35 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++26 30 28 26 30 28 33 30 30 33 30 30 26 24 32 26 30 28 30 30 34 25 30 29
++30 30 34 25 30 29 25 30 29 30 30 34 31 35 35 31 35 35 36 35 37 42 38 42
++42 38 42 42 38 42 42 41 42 47 44 42 42 47 42 47 44 42 51 49 42 60 49 42
++53 46 48 62 47 47 55 55 48 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51
++59 55 55 59 55 55 55 55 48 53 46 48 48 50 48 48 50 48 48 44 48 42 41 42
++42 41 42 34 40 43 36 35 37 37 35 43 31 35 35 33 30 36 30 30 34 30 30 34
++30 30 34 30 30 34 26 30 28 26 24 32 26 30 28 26 24 32 22 25 24 26 30 28
++26 24 32 26 30 28 26 24 32 26 30 28 22 25 24 26 30 28 26 24 32 22 25 24
++22 25 24 26 24 32 33 30 30 26 30 28 22 25 24 22 25 24 26 24 32 22 25 24
++26 24 32 26 30 28 23 20 24 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 53 35 37 33 30 30 36 35 37 52 30 35 36 35 37
++53 35 37 36 35 37 36 35 37 36 35 37 52 30 35 36 35 37 52 30 35 32 39 24
++36 35 37 33 30 30 33 30 30 33 30 30 26 30 28 26 30 28 33 30 30 23 20 24
++26 24 32 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 22 25 24
++33 30 30 23 20 24 33 30 30 26 30 28 26 30 28 33 30 30 33 30 30 33 30 32
++36 35 37 33 30 30 52 30 35 33 30 32 36 35 37 33 30 30 32 39 24 33 30 32
++33 30 32 30 30 34 33 30 32 30 30 34 30 30 34 33 30 36 33 30 36 31 35 35
++33 30 36 34 40 43 33 39 38 34 40 43 42 41 42 43 42 50 43 42 50 42 41 42
++43 42 50 42 41 42 42 41 42 47 44 42 36 35 37 47 44 42 42 41 42 36 35 37
++42 38 42 36 35 37 42 38 42 36 35 37 42 41 42 42 41 42 42 41 42 35 46 43
++43 42 50 43 42 50 48 50 48 43 42 50 48 50 48 35 47 50 43 42 50 43 42 50
++
++13 4 7 17 12 17 15 17 7 23 10 10 17 12 17 15 22 17 26 12 13 23 18 22
++15 17 7 23 18 22 17 12 17 22 24 13 17 12 17 22 24 13 17 12 17 22 24 13
++14 16 17 26 12 13 14 16 17 22 24 13 17 12 17 17 12 17 15 17 7 17 12 17
++14 16 17 14 16 17 17 12 17 15 17 7 17 12 17 17 12 17 15 17 7 7 12 13
++17 12 17 17 12 17 17 12 17 7 12 13 17 12 17 14 16 17 17 12 17 7 12 13
++17 12 17 17 12 17 7 10 17 17 12 17 12 18 20 17 12 17 12 18 20 14 16 17
++12 18 20 12 18 20 17 12 17 12 18 20 17 12 17 12 18 30 23 18 22 12 18 30
++23 18 22 23 18 22 23 20 24 23 20 24 17 12 17 12 18 20 23 18 22 14 16 17
++14 16 17 12 18 20 23 20 24 23 20 24 22 25 24 22 23 31 26 24 32 23 30 35
++26 24 32 26 24 32 24 30 43 23 30 35 24 30 43 12 18 30 23 30 35 22 23 31
++22 23 31 22 23 31 22 23 31 22 23 31 22 23 31 22 23 31 22 23 31 22 23 31
++22 23 31 22 25 24 23 20 24 23 20 24 23 20 24 17 12 17 14 16 17 14 16 17
++14 16 17 23 18 22 22 25 24 23 20 24 33 30 30 33 30 30 33 30 30 33 30 30
++36 35 37 36 35 37 42 41 42 47 39 42 55 39 37 47 44 42 55 39 37 55 39 37
++47 44 42 55 39 37 55 39 37 55 39 37 47 39 42 55 39 37 51 49 42 55 39 37
++55 39 37 55 39 37 51 49 42 55 39 37 53 46 48 51 49 42 53 46 48 53 46 48
++53 46 48 48 50 48 57 43 51 48 50 48 48 50 48 48 44 48 45 57 61 48 50 48
++45 57 61 48 50 48 43 42 50 43 42 50 43 42 50 42 41 42 42 38 42 37 35 43
++36 35 37 31 35 35 33 30 32 33 30 30 26 30 28 33 30 30 26 30 28 26 24 32
++33 30 30 26 30 28 30 30 34 26 24 32 33 30 30 22 25 24 26 24 32 22 25 24
++22 25 24 22 25 24 23 20 24 23 20 24 23 20 24 12 18 20 23 18 22 23 18 22
++12 18 20 14 16 17 12 18 20 17 12 17 12 18 20 23 18 22 23 18 22 12 18 30
++17 12 17 23 18 22 12 18 20 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24
++26 24 32 26 24 32 26 24 32 26 24 32 33 30 30 26 30 28 26 24 32 33 30 32
++26 24 32 26 30 28 26 24 32 26 30 28 22 25 24 22 23 31 22 25 24 26 24 32
++23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 22 25 24 22 25 24 22 25 24
++22 25 24 26 24 32 22 25 24 26 24 32 22 25 24 26 24 32 23 20 24 33 30 30
++22 25 24 22 25 24 26 30 28 22 25 24 22 25 24 33 30 30 23 20 24 26 25 15
++26 24 32 26 25 15 26 30 28 33 30 30 33 30 30 36 35 37 33 30 30 33 30 30
++36 35 37 33 30 30 36 35 37 36 35 37 33 30 30 36 35 37 36 35 37 33 30 32
++36 35 37 36 35 37 33 30 30 33 30 30 33 30 30 36 35 37 33 30 32 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 36 35 37 33 30 30 53 35 37 33 30 30 53 35 37 36 35 37
++36 35 37 53 35 37 36 35 37 42 38 42 42 41 42 53 35 37 42 41 42 42 38 42
++36 35 37 53 35 37 36 35 37 47 44 42 36 35 37 47 44 42 36 35 37 55 39 37
++36 35 37 47 44 42 36 35 37 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37
++33 30 32 33 30 36 33 30 32 33 30 30 33 30 30 33 30 30 53 35 37 33 30 30
++52 30 35 76 46 20 117 99 86 168 146 127 201 146 124 201 146 124 217 168 156 201 146 124
++197 171 123 201 146 124 201 146 124 201 146 124 197 171 123 197 171 123 177 171 115 201 146 124
++168 146 127 146 150 115 168 102 88 177 171 115 168 146 127 146 150 115 177 171 115 168 102 88
++168 146 127 168 146 127 201 146 124 168 102 88 177 171 115 195 113 123 177 171 115 201 146 124
++168 102 88 201 146 124 168 102 88 177 171 115 168 102 88 168 146 127 168 102 88 201 146 124
++168 102 88 201 146 124 201 146 124 201 146 124 168 146 127 201 146 124 197 171 123 197 171 123
++168 102 88 168 146 127 168 102 88 120 63 71 76 46 20 76 46 20 88 44 51 101 74 26
++88 44 51 101 74 26 120 63 71 138 126 108 222 171 182 208 215 180 138 102 108 53 46 48
++23 18 22 33 30 32 33 30 36 36 35 37 36 35 37 36 35 37 47 39 42 47 44 42
++51 49 42 47 44 42 42 41 42 22 25 24 15 17 7 13 4 7 13 4 7 15 17 7
++15 17 7 15 17 7 15 17 7 26 12 13 34 30 15 55 39 18 88 44 51 98 106 55
++168 102 88 146 150 115 168 102 88 177 171 115 201 146 124 177 171 115 201 146 124 177 171 115
++201 146 124 168 146 127 201 146 124 177 169 143 201 146 124 177 171 115 168 102 88 117 99 86
++117 114 76 168 146 127 177 169 143 201 146 124 177 169 143 197 171 123 201 146 124 201 146 124
++197 171 123 201 146 124 177 169 143 201 146 124 201 146 124 177 169 143 201 146 124 177 169 143
++168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 177 171 115 168 102 88 168 146 127
++168 146 127 201 146 124 168 146 127 168 146 127 201 146 124 168 146 127 197 171 123 197 171 123
++217 168 156 208 215 180 177 169 143 217 168 156 217 168 156 197 171 123 168 146 127 168 102 88
++168 102 88 117 114 76 168 146 127 138 126 108 101 83 74 60 49 42 34 30 15 33 30 30
++36 35 37 33 30 30 36 35 37 52 30 35 32 39 24 52 30 35 36 35 37 36 35 37
++36 35 37 36 35 37 42 41 42 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42
++36 35 37 42 38 42 36 35 37 42 38 42 42 38 42 42 38 42 42 38 42 42 38 42
++42 38 42 47 39 42 42 38 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 47 39 42 42 38 42 47 39 42 42 41 42 42 41 42 42 38 42 42 41 42
++43 42 50 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 38 42 42 38 42
++36 35 37 42 38 42 42 38 42 42 38 42 42 41 42 42 41 42 47 47 21 42 41 42
++42 41 42 42 41 42 42 41 42 42 38 42 42 38 42 36 35 37 37 35 43 36 35 37
++36 35 37 36 35 37 36 35 37 37 35 43 42 38 42 43 42 50 43 42 50 43 42 50
++48 50 48 48 50 48 54 57 61 45 57 61 48 50 48 45 57 61 48 50 48 45 57 61
++48 50 48 43 42 50 43 42 50 43 42 50 43 42 50 34 40 43 34 40 43 34 40 43
++34 40 43 34 40 43 34 40 43 37 35 43 28 35 38 37 35 43 34 40 43 37 35 43
++33 39 38 42 41 42 33 39 38 42 41 42 42 41 42 42 41 42 42 41 42 42 38 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 47 39 42 42 41 42
++42 41 42 47 44 42 42 41 42 42 41 42 42 41 42 36 35 37 37 35 43 42 41 42
++42 38 42 42 38 42 36 35 37 36 35 37 36 35 37 31 35 35 31 35 35 30 30 34
++33 30 30 33 30 30 33 30 32 33 30 32 30 30 34 30 30 34 33 30 32 31 35 35
++33 30 32 33 30 32 31 35 35 33 30 32 33 30 32 33 30 32 33 30 32 33 30 30
++33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 34 30 15 23 20 24 33 30 30 26 24 32 34 30 15 26 24 32
++34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 26 30 28 33 30 30 33 30 30 34 30 15 26 30 28
++26 30 28 33 30 30 22 25 24 26 24 32 33 30 30 26 24 32 26 30 28 30 30 34
++26 30 28 23 30 35 25 30 29 28 30 35 31 35 35 36 35 37 36 35 37 36 35 37
++37 35 43 36 35 37 42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 51 49 42
++53 46 48 51 49 42 53 46 48 53 46 48 62 47 47 55 55 48 63 55 51 55 55 48
++55 55 48 55 55 48 55 55 48 53 46 48 48 44 48 47 44 42 42 47 42 42 41 42
++42 38 42 37 35 43 37 35 43 28 35 38 33 30 36 28 35 38 33 30 36 33 30 36
++30 30 34 30 30 34 33 30 30 26 30 28 26 24 32 26 30 28 26 30 28 26 24 32
++26 30 28 26 24 32 26 30 28 26 30 28 22 25 24 23 20 24 22 25 24 22 25 24
++26 24 32 22 25 24 22 25 24 23 20 24 22 25 24 26 30 28 23 20 24 33 30 30
++23 20 24 26 30 28 26 24 32 23 20 24 26 30 28 23 20 24 33 30 30 33 30 30
++33 30 30 33 30 30 36 35 37 33 30 30 53 35 37 33 30 30 53 35 37 32 39 24
++36 35 37 53 35 37 36 35 37 52 30 35 36 35 37 32 39 24 36 35 37 36 35 37
++52 30 35 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 23 20 24 22 25 24
++26 24 32 22 25 24 33 30 30 23 20 24 23 20 24 22 25 24 23 20 24 33 30 30
++23 20 24 22 25 24 33 30 30 23 20 24 33 30 30 26 24 32 33 30 32 33 30 32
++33 30 36 33 30 32 33 30 32 31 35 35 33 30 30 36 35 37 33 30 32 33 30 30
++33 30 32 31 35 35 30 30 34 30 30 34 33 30 36 37 35 43 36 35 37 37 35 43
++34 40 43 34 40 43 34 40 43 34 40 43 43 42 50 43 42 50 43 42 50 43 42 50
++42 47 42 48 50 48 47 44 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 38 42 36 35 37 42 41 42 36 35 37 42 41 42 42 41 42 42 47 42
++43 42 50 48 50 48 43 42 50 45 57 61 43 42 50 45 57 61 43 42 50 43 42 50
++
++15 17 7 17 12 17 23 10 10 14 16 17 15 17 7 26 12 13 15 22 17 17 12 17
++22 24 13 17 12 17 22 24 13 17 12 17 26 12 13 14 16 17 26 12 13 17 12 17
++17 12 17 22 24 13 17 12 17 14 16 17 22 24 13 14 16 17 22 24 13 17 12 17
++22 24 13 17 12 17 14 16 17 14 16 17 17 12 17 15 17 7 17 12 17 17 12 17
++14 16 17 7 12 13 17 12 17 17 12 17 15 17 7 17 12 17 14 16 17 14 16 17
++17 12 17 14 16 17 17 12 17 7 10 17 14 16 17 7 10 17 7 10 17 17 12 17
++12 18 20 17 12 17 12 18 20 17 12 17 17 12 17 12 18 20 17 12 17 12 18 30
++17 12 17 12 18 20 12 18 20 23 18 22 12 18 20 17 12 17 14 16 17 14 16 17
++14 16 17 23 18 22 12 18 20 23 20 24 22 23 31 22 25 24 22 23 31 23 30 35
++22 23 31 23 30 35 22 23 31 24 30 43 12 18 30 23 30 35 12 18 30 23 30 35
++22 23 31 22 23 31 12 18 30 22 23 31 22 23 31 22 23 31 23 20 24 22 23 31
++22 25 24 23 20 24 23 20 24 23 20 24 12 18 20 23 20 24 14 16 17 23 18 22
++22 24 13 23 20 24 26 25 15 33 30 30 33 30 30 33 30 30 36 35 37 52 30 35
++36 35 37 55 39 37 47 44 42 55 39 37 47 44 42 60 49 42 57 43 51 60 49 42
++62 47 47 60 49 42 55 39 37 55 39 37 55 39 37 62 47 47 62 47 47 60 49 42
++60 49 42 62 47 47 62 47 47 53 46 48 62 47 47 53 46 48 53 46 48 53 46 48
++55 55 48 57 43 51 54 57 61 57 43 64 48 50 48 45 57 61 48 44 48 45 57 61
++43 42 50 48 50 48 43 42 50 43 55 48 43 42 50 43 42 50 42 38 42 36 35 37
++36 35 37 36 35 37 30 30 34 33 30 30 26 30 28 26 30 28 33 30 30 30 30 34
++26 30 28 30 30 34 30 30 34 26 30 28 26 30 28 26 24 32 22 25 24 22 25 24
++22 25 24 23 20 24 22 25 24 12 18 20 23 20 24 23 20 24 12 18 20 17 12 17
++12 18 20 17 12 17 23 18 22 14 16 17 23 18 22 17 12 17 14 16 17 17 12 17
++12 18 20 23 18 22 23 20 24 23 20 24 22 23 31 23 20 24 22 23 31 26 24 32
++33 30 30 30 30 34 33 30 30 26 30 28 30 30 34 33 30 32 33 30 36 33 30 36
++30 30 34 30 30 34 26 30 28 26 24 32 26 24 32 22 25 24 22 23 31 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 26 24 32 22 25 24
++23 20 24 22 25 24 26 24 32 22 25 24 22 25 24 22 25 24 26 24 32 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 33 30 30
++23 20 24 33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35
++33 30 30 33 30 30 36 35 37 33 30 30 36 35 37 36 35 37 33 30 30 33 30 32
++33 30 32 33 30 30 33 30 30 33 30 30 33 30 32 33 30 30 33 30 32 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30
++52 30 35 33 30 30 36 35 37 52 30 35 36 35 37 36 35 37 36 35 37 53 35 37
++36 35 37 36 35 37 53 35 37 42 38 42 36 35 37 47 44 42 36 35 37 47 39 42
++42 41 42 36 35 37 47 44 42 36 35 37 42 41 42 47 47 21 42 38 42 42 41 42
++36 35 37 47 39 42 42 41 42 36 35 37 36 35 37 36 35 37 36 35 37 33 30 36
++33 30 32 33 30 32 33 30 32 33 30 30 33 30 30 33 30 32 36 35 37 34 30 15
++34 30 15 55 39 37 120 63 71 168 102 88 201 146 124 197 171 123 201 146 124 217 168 156
++201 146 124 197 171 123 201 146 124 177 169 143 201 146 124 217 168 156 201 146 124 168 146 127
++168 102 88 146 150 115 168 146 127 168 102 88 157 148 53 163 117 123 168 102 88 177 171 115
++168 102 88 177 171 115 168 146 127 201 146 124 168 102 88 177 171 115 168 102 88 201 146 124
++168 102 88 177 171 115 168 102 88 201 146 124 157 148 53 201 146 124 168 102 88 177 171 115
++201 146 124 168 146 127 201 146 124 177 171 115 201 146 124 201 146 124 197 171 123 201 146 124
++168 146 127 168 102 88 157 148 53 163 117 123 168 102 88 138 126 108 138 126 108 168 102 88
++117 99 86 88 44 51 120 63 71 201 146 124 208 215 180 222 171 182 112 123 108 51 49 42
++23 18 22 33 30 30 33 30 36 36 35 37 36 35 37 42 38 42 47 44 42 51 49 42
++51 49 42 47 44 42 32 39 24 26 25 15 23 10 10 13 4 7 14 16 17 17 12 17
++22 24 13 23 20 24 26 25 15 34 30 15 55 39 18 75 56 53 101 83 74 101 83 74
++117 114 76 168 102 88 146 150 115 168 146 127 201 146 124 197 171 123 197 171 123 201 146 124
++168 146 127 177 171 115 201 146 124 177 169 143 177 169 143 168 146 127 168 146 127 168 102 88
++168 146 127 168 146 127 201 146 124 197 171 123 217 168 156 201 146 124 177 169 143 201 146 124
++177 169 143 201 146 124 197 171 123 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124
++201 146 124 177 169 143 201 146 124 168 146 127 201 146 124 168 146 127 168 146 127 168 146 127
++201 146 124 168 146 127 168 146 127 168 102 88 168 146 127 201 146 124 168 146 127 177 169 143
++197 171 123 197 171 123 217 168 156 177 169 143 177 169 143 217 168 156 168 146 127 168 146 127
++138 126 108 168 146 127 201 146 124 138 126 108 101 83 74 51 49 42 34 30 15 36 35 37
++36 35 37 52 30 35 32 39 24 36 35 37 36 35 37 36 35 37 33 30 30 52 30 35
++32 39 24 36 35 37 36 35 37 36 35 37 53 35 37 36 35 37 36 35 37 53 35 37
++36 35 37 36 35 37 42 38 42 42 38 42 36 35 37 42 38 42 36 35 37 42 38 42
++42 38 42 47 39 42 42 38 42 42 38 42 42 38 42 42 38 42 42 38 42 42 38 42
++42 38 42 42 38 42 47 39 42 42 38 42 42 38 42 42 38 42 42 38 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 38 42 42 38 42
++37 35 43 42 41 42 42 38 42 42 38 42 36 35 37 42 41 42 42 41 42 42 41 42
++42 41 42 47 47 21 42 38 42 36 35 37 36 35 37 42 38 42 36 35 37 36 35 37
++42 38 42 42 38 42 42 38 42 42 38 42 42 41 42 48 44 48 48 50 48 48 50 48
++48 50 48 57 43 64 45 57 61 57 43 64 54 57 61 54 57 61 54 57 61 48 50 48
++45 57 61 45 57 61 43 42 50 43 42 50 35 47 50 43 42 50 35 47 50 43 42 50
++34 40 43 43 42 50 29 34 50 34 40 43 37 35 43 37 35 43 37 35 43 33 39 38
++36 35 37 33 39 38 42 38 42 33 39 38 42 38 42 33 39 38 42 38 42 42 38 42
++42 38 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 38 42 36 35 37 42 41 42 42 41 42 33 39 38
++37 35 43 36 35 37 33 39 38 36 35 37 33 30 36 33 30 36 33 30 32 33 30 32
++26 30 28 33 30 30 30 30 34 31 35 35 30 30 34 33 30 32 30 30 34 30 30 34
++30 30 34 31 35 35 30 30 34 33 30 32 36 35 37 33 30 30 33 30 30 33 30 30
++33 30 32 33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30
++33 30 30 29 35 19 33 30 30 33 30 30 33 30 30 26 25 15 33 30 30 23 20 24
++33 30 30 23 20 24 33 30 30 26 25 15 33 30 30 23 20 24 33 30 30 34 30 15
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 26 30 28 26 30 28 34 30 15 33 30 30 23 20 24 33 30 30 26 24 32
++26 30 28 26 30 28 33 30 30 26 24 32 33 30 30 26 24 32 26 30 28 30 30 34
++25 30 29 25 30 29 25 30 29 31 35 35 31 35 35 31 35 35 36 35 37 42 38 42
++36 35 37 42 41 42 42 41 42 42 41 42 42 41 42 47 44 42 47 44 42 55 39 37
++47 44 42 55 39 37 53 46 48 51 49 42 53 46 48 62 47 47 53 46 48 55 55 48
++53 46 48 53 46 48 53 46 48 47 44 42 47 44 42 47 44 42 42 41 42 34 40 43
++42 38 42 34 40 43 37 35 43 36 35 37 28 35 38 33 30 36 33 30 36 33 30 36
++30 30 34 30 30 34 25 30 29 26 24 32 33 30 30 26 30 28 26 24 32 26 30 28
++26 24 32 26 30 28 26 30 28 23 20 24 26 30 28 23 20 24 26 30 28 23 20 24
++22 25 24 26 24 32 22 25 24 26 24 32 22 25 24 22 25 24 22 25 24 23 20 24
++26 24 32 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 36 35 37 52 30 35 36 35 37 36 35 37 52 30 35
++36 35 37 36 35 37 36 35 37 32 39 24 52 30 35 36 35 37 36 35 37 36 35 37
++33 30 30 33 30 30 33 30 30 33 30 30 26 30 28 26 30 28 33 30 30 23 20 24
++33 30 30 23 20 24 23 20 24 23 20 24 26 25 15 23 20 24 23 20 24 22 25 24
++33 30 30 23 20 24 33 30 30 26 30 28 33 30 30 33 30 30 26 24 32 33 30 32
++33 30 32 33 30 32 33 30 32 33 30 32 33 30 30 33 30 30 33 30 30 31 35 35
++33 30 30 31 35 35 33 30 32 31 35 35 33 30 36 36 35 37 37 35 43 34 40 43
++37 35 43 34 40 43 35 47 50 43 42 50 43 42 50 48 50 48 48 50 48 48 50 48
++48 50 48 48 44 48 48 44 48 47 44 42 42 41 42 47 44 42 42 41 42 42 41 42
++42 41 42 42 38 42 42 38 42 42 41 42 42 41 42 42 41 42 42 47 42 43 42 50
++43 55 48 45 57 61 48 50 48 45 57 61 48 50 48 45 57 61 43 42 50 43 42 50
++
++17 12 17 15 17 7 17 12 17 15 17 7 17 12 17 17 12 17 22 24 13 26 12 13
++23 18 22 17 12 17 26 12 13 17 12 17 22 24 13 17 12 17 22 24 13 22 24 13
++26 12 13 14 16 17 26 12 13 15 17 7 14 16 17 17 12 17 22 24 13 17 12 17
++14 16 17 14 16 17 14 16 17 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17
++17 12 17 17 12 17 17 12 17 7 12 13 17 12 17 14 16 17 17 12 17 17 12 17
++17 12 17 7 10 17 14 16 17 17 12 17 7 10 17 7 10 17 17 12 17 7 10 17
++7 10 17 7 10 17 17 12 17 12 18 20 7 10 17 17 12 17 17 12 17 17 12 17
++12 18 20 23 18 22 17 12 17 17 12 17 12 18 20 17 12 17 12 18 20 17 12 17
++14 16 17 14 16 17 12 18 20 23 20 24 23 20 24 22 25 24 22 23 31 22 23 31
++22 23 31 22 23 31 24 30 43 12 18 30 24 30 43 12 18 30 23 30 35 22 23 31
++12 18 30 22 23 31 22 23 31 22 23 31 23 20 24 22 23 31 22 23 31 22 25 24
++22 23 31 22 25 24 12 18 30 23 20 24 23 20 24 23 18 22 15 22 17 23 18 22
++22 25 24 22 25 24 22 25 24 33 30 30 33 30 30 36 35 37 33 30 30 36 35 37
++47 39 42 47 39 42 47 44 42 55 39 37 53 46 48 60 49 42 59 36 42 62 47 47
++62 47 47 62 47 47 62 47 47 62 47 47 62 47 47 62 47 47 62 47 47 62 47 47
++62 47 47 62 47 47 63 55 51 62 47 47 65 55 54 62 47 47 63 55 51 59 55 55
++59 55 55 59 55 55 59 55 55 48 50 48 48 50 48 48 44 48 45 57 61 48 44 48
++45 57 61 45 57 61 43 42 50 43 55 48 43 42 50 42 41 42 42 41 42 36 35 37
++36 35 37 33 30 32 30 30 34 26 30 28 33 30 30 33 30 30 33 30 30 30 30 34
++30 30 34 33 30 30 30 30 34 33 30 30 26 24 32 22 25 24 26 24 32 22 25 24
++26 24 32 22 25 24 23 20 24 22 25 24 23 18 22 23 18 22 12 18 30 23 20 24
++12 18 20 23 18 22 12 18 20 12 18 20 23 18 22 17 12 17 23 18 22 12 18 20
++23 20 24 12 18 20 23 20 24 22 23 31 26 24 32 26 24 32 28 30 35 33 30 36
++28 35 38 33 30 36 28 35 38 33 30 36 33 30 36 28 35 38 33 30 36 36 35 37
++33 30 36 30 30 34 33 30 32 26 30 28 26 30 28 26 24 32 22 23 31 22 23 31
++22 25 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 26 24 32
++23 20 24 22 25 24 22 25 24 26 24 32 23 20 24 22 25 24 22 25 24 22 25 24
++23 20 24 33 30 30 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 26 30 28
++23 20 24 26 30 28 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 52 30 35 33 30 30 36 35 37 33 30 30 52 30 35 33 30 30 33 30 30
++33 30 30 33 30 32 33 30 30 33 30 30 33 30 32 33 30 32 33 30 32 33 30 32
++33 30 32 33 30 30 33 30 30 52 30 35 36 35 37 33 30 30 33 30 30 36 35 37
++33 30 32 32 39 24 36 35 37 32 39 24 53 35 37 36 35 37 53 35 37 36 35 37
++36 35 37 47 47 21 36 35 37 36 35 37 55 39 37 36 35 37 42 38 42 47 47 21
++36 35 37 53 35 37 32 39 24 47 39 42 42 41 42 42 41 42 47 39 42 36 35 37
++47 39 42 47 39 42 36 35 37 47 39 42 36 35 37 36 35 37 36 35 37 36 35 37
++33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 36 35 37
++33 30 30 34 30 15 75 73 36 117 99 86 138 126 108 201 146 124 201 146 124 201 146 124
++217 168 156 201 146 124 217 168 156 201 146 124 217 168 156 197 171 123 217 168 156 201 146 124
++177 171 115 168 102 88 146 150 115 168 102 88 146 150 115 168 102 88 146 150 115 168 102 88
++177 171 115 168 102 88 177 171 115 168 102 88 177 171 115 168 102 88 177 171 115 168 102 88
++177 171 115 168 102 88 146 150 115 201 146 124 168 102 88 168 146 127 201 146 124 168 102 88
++177 171 115 168 102 88 201 146 124 168 146 127 201 146 124 197 171 123 217 168 156 201 146 124
++177 171 115 201 146 124 168 146 127 163 117 123 146 150 115 163 117 123 168 146 127 163 117 123
++138 126 108 168 102 88 138 126 108 217 168 156 208 215 180 189 165 168 112 96 108 53 46 48
++23 18 22 33 30 36 36 35 37 33 30 36 33 30 32 42 41 42 60 49 42 53 46 48
++51 49 42 47 39 42 33 30 30 23 18 22 17 12 17 17 12 17 23 18 22 26 25 15
++33 30 30 33 30 30 33 30 30 53 35 17 60 49 42 88 73 62 117 112 45 117 114 76
++168 102 88 157 148 53 168 102 88 168 146 127 177 171 115 201 146 124 177 169 143 197 171 123
++201 146 124 201 146 124 177 171 115 201 146 124 197 171 123 201 146 124 201 146 124 168 146 127
++168 146 127 201 146 124 201 146 124 177 169 143 201 146 124 197 171 123 177 169 143 201 146 124
++201 146 124 177 169 143 201 146 124 168 146 127 201 146 124 168 146 127 201 146 124 168 146 127
++201 146 124 168 146 127 168 146 127 168 146 127 168 146 127 201 146 124 168 102 88 168 146 127
++177 171 115 168 102 88 168 146 127 168 146 127 201 146 124 168 146 127 201 146 124 201 146 124
++189 165 168 201 146 124 177 169 143 217 168 156 197 171 123 168 146 127 201 146 124 168 146 127
++168 146 127 168 146 127 168 146 127 138 126 108 75 73 58 52 30 35 33 30 30 52 30 35
++36 35 37 36 35 37 36 35 37 33 30 30 32 39 24 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 37 35 43 42 41 42
++42 38 42 42 38 42 42 38 42 42 41 42 42 41 42 42 38 42 42 38 42 36 35 37
++36 35 37 42 38 42 42 38 42 42 38 42 42 38 42 42 41 42 42 38 42 42 38 42
++42 38 42 42 41 42 42 41 42 42 38 42 43 42 50 42 41 42 42 41 42 42 38 42
++42 41 42 36 35 37 42 38 42 42 41 42 42 41 42 47 47 21 42 41 42 47 44 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 38 42 42 38 42 42 38 42 36 35 37
++36 35 37 42 41 42 42 41 42 42 41 42 43 42 50 48 44 48 45 57 61 48 44 48
++45 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61
++45 57 61 57 43 64 45 57 61 45 57 61 45 57 61 43 42 50 35 47 50 43 42 50
++32 40 58 35 47 50 34 40 43 29 34 50 34 40 43 34 40 43 37 35 43 37 35 43
++37 35 43 33 39 38 37 35 43 37 35 43 42 38 42 42 38 42 42 38 42 42 41 42
++42 38 42 42 41 42 42 41 42 42 38 42 42 38 42 42 41 42 42 41 42 42 41 42
++42 41 42 47 44 42 42 41 42 42 41 42 42 38 42 36 35 37 36 35 37 42 38 42
++42 38 42 36 35 37 36 35 37 36 35 37 31 35 35 31 35 35 30 30 34 30 30 34
++33 30 30 30 30 34 33 30 30 30 30 34 33 30 32 30 30 34 30 30 34 33 30 32
++30 30 34 33 30 32 33 30 32 33 30 32 33 30 32 26 30 28 33 30 30 33 30 32
++33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 34 30 15 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30
++23 20 24 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 26 30 28 33 30 30
++23 20 24 33 30 30 26 25 15 33 30 30 34 30 15 33 30 30 34 30 15 33 30 30
++33 30 30 33 30 30 33 30 30 26 30 28 33 30 30 33 30 30 26 30 28 33 30 30
++26 30 28 33 30 30 26 24 32 26 30 28 26 30 28 26 24 32 25 30 29 25 30 29
++25 30 29 28 30 35 25 30 29 28 30 35 30 30 34 31 35 35 36 35 37 36 35 37
++42 38 42 42 41 42 42 41 42 47 47 21 47 39 42 47 44 42 47 44 42 47 44 42
++55 39 37 47 44 42 51 49 42 55 39 37 51 49 42 51 49 42 53 46 48 51 49 42
++51 49 42 51 49 42 47 44 42 47 44 42 42 41 42 42 41 42 42 38 42 42 38 42
++33 39 38 37 35 43 36 35 37 33 39 38 37 35 43 33 30 36 31 35 35 30 30 34
++30 30 34 30 30 34 26 24 32 30 30 34 26 30 28 26 24 32 26 30 28 33 30 30
++26 30 28 26 24 32 23 20 24 33 30 30 23 20 24 26 30 28 23 20 24 22 25 24
++26 24 32 22 25 24 22 25 24 23 20 24 26 30 28 23 20 24 26 30 28 26 24 32
++23 20 24 26 24 32 22 25 24 23 20 24 33 30 30 23 20 24 33 30 30 33 30 30
++33 30 30 33 30 30 36 35 37 32 39 24 52 30 35 36 35 37 52 30 35 42 41 42
++36 35 37 53 35 37 36 35 37 52 30 35 36 35 37 32 39 24 52 30 35 33 30 30
++36 35 37 33 30 30 33 30 30 33 30 30 26 25 15 33 30 30 22 25 24 26 24 32
++23 20 24 26 30 28 22 25 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24
++33 30 30 22 25 24 23 20 24 33 30 30 22 25 24 26 24 32 33 30 30 33 30 32
++33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 32 39 24 33 30 30 33 30 30
++31 35 35 33 30 32 31 35 35 36 35 37 36 35 37 37 35 43 34 40 43 42 38 42
++34 40 43 43 42 50 35 47 50 43 42 50 45 57 61 43 42 50 45 57 61 48 50 48
++45 57 61 48 50 48 48 50 48 48 50 48 48 44 48 48 44 48 47 44 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 47 42 43 42 50
++48 44 48 45 57 61 48 50 48 45 57 61 57 43 64 45 57 61 48 50 48 45 57 61
++
++15 17 7 17 12 17 15 17 7 17 12 17 17 12 17 22 24 13 17 12 17 23 18 22
++22 24 13 17 12 17 22 24 13 23 18 22 26 12 13 22 24 13 17 12 17 17 12 17
++22 24 13 23 18 22 15 22 17 22 24 13 22 24 13 14 16 17 15 22 17 22 24 13
++23 18 22 17 12 17 17 12 17 22 24 13 17 12 17 17 12 17 17 12 17 15 17 7
++17 12 17 7 12 13 17 12 17 17 12 17 17 12 17 7 12 13 17 12 17 17 12 17
++17 12 17 7 10 17 17 12 17 7 10 17 17 12 17 7 10 17 7 10 17 7 12 13
++7 10 17 7 10 17 7 10 17 17 12 17 7 10 17 17 12 17 7 10 17 14 16 17
++17 12 17 14 16 17 12 18 20 17 12 17 7 10 17 17 12 17 12 18 20 17 12 17
++12 18 20 17 12 17 12 18 20 23 18 22 12 18 20 22 23 31 22 25 24 22 23 31
++22 23 31 24 30 43 12 18 30 23 30 35 12 18 30 24 30 43 12 18 30 22 23 31
++12 18 30 22 23 31 12 18 30 22 23 31 22 23 31 23 20 24 22 23 31 22 23 31
++22 25 24 23 20 24 23 20 24 23 20 24 12 18 30 23 18 22 22 24 13 23 18 22
++22 25 24 26 30 28 33 30 30 33 30 32 33 30 32 36 35 37 53 35 37 42 38 42
++55 39 37 47 44 42 51 49 42 53 46 48 60 49 42 53 46 48 62 47 47 62 47 47
++62 47 47 62 47 47 62 47 47 65 55 54 76 44 53 65 55 54 75 56 53 65 55 54
++65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 63 55 51 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 48 50 48 57 43 64 48 50 48 45 57 61
++48 44 48 45 57 61 48 50 48 43 42 50 43 42 50 42 47 42 34 40 43 36 35 37
++36 35 37 30 30 34 33 30 30 33 30 30 33 30 30 30 30 34 30 30 34 26 30 28
++33 30 32 30 30 34 30 30 34 26 30 28 26 30 28 26 24 32 22 25 24 26 24 32
++22 25 24 22 25 24 22 25 24 23 20 24 23 18 22 15 22 17 23 18 22 12 18 20
++23 18 22 12 18 20 23 18 22 23 18 22 23 18 22 12 18 20 23 20 24 23 20 24
++22 25 24 22 23 31 26 24 32 26 24 32 30 30 34 33 30 36 36 35 37 37 35 43
++37 35 43 37 35 43 37 35 43 37 35 43 34 40 43 34 40 43 34 40 43 37 35 43
++37 35 43 36 35 37 31 35 35 33 30 32 30 30 34 25 30 29 26 24 32 26 24 32
++22 25 24 23 20 24 15 22 17 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24
++22 25 24 26 24 32 22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24
++26 24 32 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 26 30 28 23 20 24
++33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 32 33 30 30 33 30 32 52 30 35
++33 30 30 33 30 32 36 35 37 33 30 30 52 30 35 36 35 37 52 30 35 36 35 37
++52 30 35 36 35 37 53 35 37 36 35 37 53 35 37 36 35 37 53 35 37 32 39 24
++53 35 37 36 35 37 47 39 42 53 35 37 36 35 37 42 41 42 36 35 37 42 38 42
++42 38 42 36 35 37 47 39 42 36 35 37 47 47 21 42 38 42 42 38 42 47 39 42
++36 35 37 47 39 42 47 47 21 42 38 42 36 35 37 52 30 35 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 34 30 15 26 24 32 33 30 30 33 30 30 42 41 42
++36 35 37 52 30 15 52 30 35 88 44 51 120 63 71 168 102 88 168 146 127 201 146 124
++201 146 124 201 146 124 227 171 124 201 146 124 195 113 123 168 146 127 168 146 127 201 146 124
++168 146 127 177 171 115 168 102 88 146 150 115 168 102 88 168 146 127 168 102 88 146 150 115
++168 102 88 168 146 127 168 102 88 177 171 115 195 113 123 157 148 53 195 113 123 157 148 53
++168 146 127 201 146 124 168 102 88 177 171 115 201 146 124 168 146 127 168 102 88 177 171 115
++201 146 124 168 146 127 177 171 115 201 146 124 197 171 123 189 165 168 201 146 124 177 169 143
++201 146 124 168 146 127 168 146 127 168 146 127 168 102 88 146 150 115 168 102 88 146 150 115
++168 146 127 168 146 127 197 171 123 189 165 168 222 171 182 177 169 143 99 93 84 42 38 42
++23 20 24 37 35 43 36 35 37 36 35 37 37 35 43 48 44 48 55 55 48 63 55 45
++47 44 42 33 30 30 23 20 24 17 12 17 13 4 7 17 12 17 23 18 22 33 30 30
++33 30 30 52 30 15 53 35 17 63 55 45 88 73 62 101 83 74 117 99 86 168 102 88
++117 114 76 168 102 88 168 102 88 177 171 115 168 102 88 197 171 123 197 171 123 217 168 156
++197 171 123 177 169 143 201 146 124 197 171 123 201 146 124 177 169 143 201 146 124 177 171 115
++201 146 124 177 171 115 201 146 124 197 171 123 177 169 143 201 146 124 201 146 124 177 169 143
++201 146 124 201 146 124 177 169 143 201 146 124 177 169 143 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 163 117 123 201 146 124 168 146 127 177 171 115 168 146 127 201 146 124
++168 146 127 168 146 127 168 102 88 168 146 127 168 102 88 168 146 127 201 146 124 168 146 127
++201 146 124 217 168 156 217 168 156 217 168 156 189 165 168 201 146 124 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 117 99 86 60 49 42 34 30 15 33 30 30 36 35 37
++36 35 37 36 35 37 33 30 30 33 30 30 36 35 37 36 35 37 33 30 30 36 35 37
++36 35 37 33 30 30 36 35 37 33 30 30 36 35 37 36 35 37 52 30 35 36 35 37
++36 35 37 42 38 42 36 35 37 36 35 37 36 35 37 42 41 42 42 41 42 34 40 43
++42 38 42 42 41 42 42 38 42 42 41 42 42 38 42 42 38 42 37 35 43 36 35 37
++42 38 42 42 38 42 42 38 42 42 41 42 42 38 42 42 38 42 42 38 42 42 38 42
++42 38 42 42 41 42 42 41 42 42 41 42 42 41 42 47 44 42 42 38 42 42 38 42
++42 38 42 42 41 42 42 38 42 42 41 42 42 41 42 42 41 42 42 41 42 47 47 21
++42 41 42 42 41 42 47 47 21 42 38 42 36 35 37 36 35 37 42 38 42 42 38 42
++42 41 42 42 47 42 42 47 42 48 50 48 48 50 48 54 57 61 57 43 64 54 57 61
++54 57 61 54 57 61 57 43 64 59 57 61 63 59 71 63 59 71 46 59 71 63 59 71
++54 57 61 54 57 61 54 57 61 57 43 64 45 57 61 45 57 61 45 57 61 45 57 61
++43 42 50 35 47 50 32 40 58 35 47 50 34 40 43 34 40 43 34 40 43 37 35 43
++33 39 38 36 35 37 36 35 37 37 35 43 42 38 42 34 40 43 42 38 42 42 38 42
++42 38 42 42 41 42 42 41 42 42 38 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 38 42 42 38 42 37 35 43 36 35 37
++37 35 43 33 39 38 36 35 37 36 35 37 33 30 32 30 30 34 33 30 32 30 30 34
++30 30 34 26 30 28 30 30 34 33 30 30 30 30 34 33 30 32 30 30 34 30 30 34
++33 30 32 30 30 34 33 30 32 33 30 32 33 30 32 33 30 30 26 24 32 33 30 30
++33 30 32 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++34 30 15 33 30 30 33 30 30 26 30 28 33 30 30 23 20 24 33 30 30 26 30 28
++23 20 24 33 30 30 23 20 24 26 30 28 26 24 32 22 25 24 26 30 28 23 20 24
++33 30 30 26 24 32 33 30 30 26 30 28 26 30 28 26 30 28 33 30 30 26 24 32
++33 30 30 26 30 28 33 30 30 33 30 30 26 24 32 26 24 32 33 30 30 26 24 32
++26 24 32 26 30 28 26 24 32 26 30 28 33 30 30 25 30 29 25 30 29 25 30 29
++25 30 29 28 30 35 25 30 29 30 30 34 31 35 35 30 30 34 36 35 37 37 35 43
++36 35 37 33 39 38 36 35 37 42 41 42 36 35 37 55 39 37 47 44 42 55 39 37
++47 44 42 47 44 42 55 39 37 47 44 42 47 44 42 55 39 37 51 49 42 47 44 42
++47 44 42 47 44 42 47 39 42 47 39 42 42 38 42 42 38 42 36 35 37 42 38 42
++36 35 37 42 41 42 36 35 37 37 35 43 31 35 35 33 30 36 31 35 35 30 30 34
++30 30 34 30 30 34 30 30 34 30 30 34 26 24 32 33 30 30 26 24 32 26 30 28
++26 24 32 26 30 28 22 25 24 26 24 32 22 25 24 26 24 32 26 30 28 26 24 32
++22 25 24 26 24 32 26 30 28 26 24 32 23 20 24 26 30 28 23 20 24 23 20 24
++22 25 24 33 30 30 23 20 24 22 25 24 22 25 24 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 52 30 35 33 30 30 36 35 37 52 30 35 36 35 37 32 39 24
++53 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++33 30 30 33 30 30 33 30 30 33 30 30 26 30 28 26 30 28 33 30 30 23 20 24
++33 30 30 23 20 24 23 20 24 23 20 24 26 25 15 23 20 24 22 25 24 23 20 24
++23 20 24 26 30 28 33 30 30 26 24 32 33 30 30 33 30 30 26 24 32 33 30 30
++33 30 32 33 30 32 33 30 32 31 35 35 33 30 30 33 30 30 33 30 30 32 39 24
++33 30 32 31 35 35 36 35 37 36 35 37 37 35 43 37 35 43 37 35 43 43 42 50
++43 42 50 35 47 50 43 42 50 43 42 50 48 50 48 45 57 61 57 43 64 54 57 61
++53 46 48 45 57 61 48 44 48 45 57 61 48 44 48 48 44 48 48 44 48 48 44 48
++48 44 48 47 44 42 47 44 42 47 44 42 47 44 42 48 50 48 48 50 48 48 50 48
++54 57 61 53 46 48 54 57 61 54 57 61 48 50 48 54 57 61 45 57 61 43 42 50
++
++7 12 13 13 4 7 15 17 7 17 12 17 15 17 7 17 12 17 26 12 13 14 16 17
++26 12 13 17 12 17 17 12 17 17 12 17 22 24 13 17 12 17 22 24 13 26 12 13
++23 18 22 23 18 22 26 12 13 23 18 22 23 18 22 22 24 13 23 18 22 23 18 22
++22 24 13 23 18 22 14 16 17 17 12 17 14 16 17 14 16 17 17 12 17 17 12 17
++17 12 17 17 12 17 17 12 17 7 12 13 17 12 17 17 12 17 23 10 10 7 12 13
++17 12 17 17 12 17 17 12 17 7 10 17 7 10 17 13 4 7 7 10 17 13 4 7
++7 10 17 7 12 13 7 10 17 17 12 17 7 10 17 17 12 17 7 10 17 12 18 20
++17 12 17 7 10 17 17 12 17 7 10 17 17 12 17 7 10 17 17 12 17 7 10 17
++17 12 17 17 12 17 12 18 20 17 12 17 12 18 20 12 18 30 22 23 31 22 23 31
++22 23 31 22 23 31 22 23 31 22 23 31 23 30 35 12 18 30 22 23 31 12 18 30
++22 23 31 22 23 31 22 25 24 12 18 30 22 23 31 22 23 31 22 25 24 23 20 24
++22 25 24 22 23 31 23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 26 25 15
++22 25 24 26 30 28 33 30 32 33 30 32 36 35 37 36 35 37 42 38 42 47 39 42
++47 44 42 55 39 37 53 46 48 62 47 47 53 46 48 62 47 47 63 55 51 63 55 51
++75 56 53 65 55 54 65 55 54 75 56 53 65 55 54 75 56 53 65 55 54 76 44 53
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 65 55 54 65 55 54 65 55 54
++59 57 61 59 57 61 59 55 55 54 57 61 52 55 48 54 57 61 48 50 48 57 43 64
++45 57 61 48 50 48 43 42 50 43 55 48 43 42 50 42 41 42 42 38 42 36 35 37
++36 35 37 30 30 34 30 30 34 30 30 34 26 30 28 33 30 30 30 30 34 30 30 34
++30 30 34 33 30 30 30 30 34 33 30 32 26 30 28 26 24 32 26 30 28 22 25 24
++26 24 32 26 24 32 22 25 24 22 25 24 22 25 24 23 20 24 23 20 24 12 18 20
++23 18 22 12 18 30 17 12 17 12 18 20 23 18 22 23 20 24 23 20 24 22 23 31
++26 24 32 26 24 32 33 30 36 33 30 36 33 30 36 33 39 38 37 35 43 34 40 43
++34 40 43 43 42 50 34 40 43 43 42 50 34 40 43 43 42 50 34 40 43 42 41 42
++37 35 43 36 35 37 36 35 37 31 35 35 30 30 34 28 30 35 28 30 35 26 24 32
++23 20 24 15 22 17 23 20 24 12 18 20 23 18 22 23 18 22 22 25 24 23 20 24
++23 20 24 22 25 24 23 20 24 23 20 24 26 30 28 22 25 24 23 20 24 26 30 28
++23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 23 18 22 26 30 28 22 25 24
++26 30 28 26 25 15 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 32 33 30 32 33 30 32 33 30 30
++36 35 37 33 30 30 52 30 35 33 30 30 36 35 37 33 30 30 36 35 37 36 35 37
++33 30 30 36 35 37 47 47 21 36 35 37 36 35 37 52 30 35 42 41 42 36 35 37
++47 39 42 36 35 37 42 38 42 36 35 37 36 35 37 47 47 21 36 35 37 53 35 37
++36 35 37 36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 53 35 37 36 35 37
++47 39 42 42 38 42 36 35 37 53 35 37 32 39 24 36 35 37 36 35 37 33 30 30
++33 30 30 33 30 30 33 30 30 26 24 32 26 25 15 33 30 30 29 35 19 36 35 37
++42 38 42 34 30 15 55 39 37 76 46 20 101 74 26 117 112 45 168 102 88 168 102 88
++168 102 88 201 146 124 201 146 124 163 117 123 176 103 41 120 63 71 117 114 76 201 146 124
++177 171 115 168 102 88 138 126 108 168 102 88 157 148 53 168 102 88 146 150 115 168 102 88
++157 148 53 168 102 88 201 146 124 157 148 53 163 117 123 177 171 115 168 102 88 168 146 127
++168 102 88 157 148 53 168 102 88 168 146 127 168 102 88 201 146 124 177 171 115 168 102 88
++201 146 124 168 146 127 201 146 124 197 171 123 201 146 124 177 169 143 201 146 124 168 146 127
++201 146 124 168 146 127 201 146 124 163 117 123 146 150 115 163 117 123 138 126 108 168 146 127
++168 146 127 168 146 127 168 146 127 217 168 156 189 165 168 145 140 145 75 63 62 33 30 32
++26 24 32 36 35 37 37 35 43 36 35 37 42 41 42 48 44 48 53 46 48 47 44 42
++33 30 30 23 20 24 14 16 17 17 12 17 23 18 22 26 24 32 33 30 32 23 20 24
++26 25 15 23 20 24 52 30 35 75 56 53 117 99 86 117 99 86 117 112 45 117 114 76
++168 102 88 138 126 108 157 148 53 168 102 88 168 146 127 168 146 127 201 146 124 177 169 143
++197 171 123 201 146 124 197 171 123 168 146 127 197 171 123 197 171 123 201 146 124 197 171 123
++201 146 124 201 146 124 177 169 143 201 146 124 201 146 124 197 171 123 177 169 143 201 146 124
++201 146 124 177 169 143 201 146 124 197 171 123 201 146 124 201 146 124 168 146 127 168 146 127
++168 146 127 168 102 88 168 146 127 168 146 127 168 146 127 201 146 124 168 146 127 168 146 127
++168 102 88 177 171 115 168 102 88 168 146 127 168 102 88 168 102 88 163 117 123 201 146 124
++197 171 123 177 169 143 217 168 156 217 168 156 217 168 156 217 168 156 201 146 124 168 146 127
++201 146 124 168 146 127 138 126 108 101 83 74 53 35 17 33 30 30 33 30 32 33 30 30
++36 35 37 36 35 37 33 30 30 36 35 37 33 30 30 33 30 30 36 35 37 52 30 35
++36 35 37 36 35 37 33 30 32 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 37 35 43 42 38 42 34 40 43 36 35 37
++37 35 43 42 38 42 42 38 42 42 38 42 42 38 42 36 35 37 36 35 37 42 38 42
++36 35 37 37 35 43 42 38 42 37 35 43 42 38 42 42 41 42 42 38 42 42 38 42
++42 38 42 42 41 42 42 41 42 42 41 42 43 42 50 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 32 39 24 42 41 42 42 41 42
++47 44 42 42 41 42 42 41 42 36 35 37 42 38 42 42 41 42 42 38 42 42 41 42
++42 41 42 47 44 42 48 44 48 48 50 48 59 55 55 48 50 48 54 57 61 54 57 61
++54 57 61 54 57 61 63 59 71 54 57 61 63 59 71 53 63 61 63 59 71 54 57 61
++63 59 71 46 59 71 45 57 61 54 57 61 45 57 61 57 43 64 45 57 61 43 42 50
++45 57 61 35 47 50 43 42 50 35 47 50 34 40 43 29 34 50 37 35 43 37 35 43
++36 35 37 37 35 43 33 39 38 37 35 43 37 35 43 42 38 42 42 41 42 36 35 37
++36 35 37 42 41 42 36 35 37 42 38 42 42 38 42 42 38 42 42 41 42 42 41 42
++47 39 42 42 41 42 42 41 42 42 41 42 42 38 42 42 38 42 36 35 37 42 38 42
++36 35 37 36 35 37 36 35 37 36 35 37 31 35 35 30 30 34 33 30 32 26 30 28
++30 30 34 33 30 32 26 24 32 33 30 30 26 24 32 30 30 34 33 30 32 26 30 28
++30 30 34 33 30 32 33 30 32 33 30 32 26 30 28 33 30 30 33 30 30 33 30 32
++33 30 32 33 30 30 33 30 30 29 35 19 33 30 30 33 30 30 34 30 15 33 30 30
++33 30 30 33 30 30 26 25 15 33 30 30 23 20 24 33 30 30 23 20 24 23 20 24
++22 25 24 23 20 24 33 30 30 22 25 24 23 20 24 26 30 28 22 25 24 33 30 30
++22 25 24 33 30 30 23 20 24 33 30 30 22 25 24 33 30 30 23 20 24 33 30 30
++33 30 30 26 30 28 26 30 28 26 30 28 33 30 30 33 30 30 26 24 32 26 30 28
++33 30 30 26 24 32 26 30 28 26 24 32 30 30 34 26 24 32 25 30 29 28 30 35
++25 30 29 25 30 29 25 30 29 30 30 34 33 30 32 31 35 35 36 35 37 36 35 37
++36 35 37 33 39 38 36 35 37 36 35 37 47 44 42 36 35 37 47 44 42 47 44 42
++55 39 37 47 44 42 55 39 37 47 44 42 55 39 37 51 49 42 47 44 42 47 44 42
++55 39 37 47 44 42 47 44 42 47 39 42 42 38 42 42 38 42 42 41 42 36 35 37
++42 41 42 36 35 37 36 35 37 36 35 37 37 35 43 31 35 35 30 30 34 33 30 32
++30 30 34 30 30 34 30 30 34 28 30 35 26 30 28 26 24 32 26 30 28 33 30 30
++26 30 28 26 30 28 26 24 32 26 30 28 22 25 24 26 24 32 26 30 28 33 30 30
++26 24 32 26 30 28 23 20 24 33 30 30 22 25 24 23 20 24 22 25 24 33 30 30
++26 24 32 23 20 24 33 30 30 23 20 24 33 30 30 28 13 18 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 36 35 37 33 30 30 53 35 37 36 35 37 53 35 37
++36 35 37 36 35 37 52 30 35 36 35 37 53 35 37 33 30 30 32 39 24 52 30 35
++33 30 30 33 30 30 33 30 30 26 30 28 34 30 15 23 20 24 26 30 28 26 24 32
++23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 33 30 30 23 20 24 23 20 24
++23 20 24 23 20 24 33 30 30 23 20 24 33 30 30 26 30 28 33 30 30 26 24 32
++30 30 34 33 30 32 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 32 31 35 35 31 35 35 37 35 43 37 35 43 34 40 43 37 35 43
++43 42 50 35 47 50 43 42 50 45 57 61 45 57 61 45 57 61 43 42 50 54 57 61
++45 57 61 57 43 64 54 57 61 48 50 48 57 43 64 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 44 48 48 44 48 48 44 48 48 44 48 54 57 61 48 50 48
++54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 45 57 61 57 43 64 54 57 61
++
++7 12 13 7 12 13 15 17 7 17 12 17 17 12 17 23 18 22 15 22 17 22 24 13
++14 16 17 22 24 13 17 12 17 22 24 13 17 12 17 26 12 13 26 25 15 23 18 22
++26 25 15 22 24 13 26 25 15 23 18 22 22 24 13 23 18 22 26 25 15 23 18 22
++23 18 22 26 12 13 15 22 17 26 12 13 14 16 17 28 13 18 15 22 17 17 12 17
++17 12 17 14 16 17 17 12 17 17 12 17 15 17 7 17 12 17 7 12 13 17 12 17
++13 4 7 7 12 13 7 12 13 7 12 13 17 12 17 7 10 17 7 10 17 7 10 17
++7 12 13 13 4 7 7 10 17 7 10 17 17 12 17 7 10 17 17 12 17 7 10 17
++17 12 17 17 12 17 14 16 17 17 12 17 7 10 17 17 12 17 7 10 17 17 12 17
++17 12 17 7 10 17 14 16 17 12 18 20 12 18 20 23 20 24 22 23 31 22 23 31
++24 30 43 12 18 30 24 30 43 12 18 30 22 23 31 23 30 35 12 18 30 22 23 31
++22 23 31 12 18 30 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 12 18 30
++23 20 24 22 25 24 22 23 31 22 25 24 22 25 24 22 25 24 22 25 24 26 30 28
++33 30 30 33 30 32 33 30 32 36 35 37 36 35 37 42 41 42 47 39 42 47 44 42
++51 49 42 53 46 48 62 47 47 62 47 47 62 47 47 62 47 47 63 55 51 75 56 53
++76 44 53 75 56 53 75 56 53 75 56 53 76 44 53 75 56 53 75 63 62 75 56 53
++65 57 61 75 63 62 75 59 67 75 63 62 65 57 61 65 57 61 65 57 61 65 55 54
++65 57 61 65 55 54 59 55 55 59 55 55 59 55 55 48 50 48 48 50 48 45 57 61
++48 44 48 45 57 61 48 50 48 43 42 50 43 42 50 42 47 42 34 40 43 36 35 37
++33 39 38 31 35 35 30 30 34 33 30 32 33 30 32 33 30 32 30 30 34 26 30 28
++30 30 34 30 30 34 26 30 28 30 30 34 26 30 28 26 24 32 22 25 24 26 24 32
++22 25 24 22 25 24 26 24 32 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++12 18 20 12 18 20 12 18 20 12 18 30 23 20 24 23 20 24 22 23 31 23 30 35
++23 30 35 28 35 38 28 35 38 37 35 43 37 35 43 29 34 50 34 40 43 43 42 50
++43 42 50 32 40 58 43 42 50 32 40 58 43 42 50 32 40 58 43 42 50 43 42 50
++35 47 50 34 40 43 34 40 43 28 35 38 28 35 38 28 30 35 28 30 35 22 23 31
++22 23 31 22 25 24 12 18 20 23 20 24 12 18 20 12 18 20 12 18 20 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 22 25 24 23 20 24
++26 25 15 23 20 24 22 25 24 23 20 24 26 25 15 22 25 24 26 30 28 33 30 30
++26 24 32 33 30 30 26 30 28 33 30 30 33 30 30 36 35 37 33 30 30 36 35 37
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 34 30 15
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 36 35 37
++36 35 37 36 35 37 33 30 30 33 30 30 53 35 37 32 39 24 53 35 37 36 35 37
++53 35 37 32 39 24 52 30 35 36 35 37 47 47 21 36 35 37 47 47 21 47 39 42
++32 39 24 53 35 37 36 35 37 53 35 37 36 35 37 42 38 42 36 35 37 36 35 37
++53 35 37 36 35 37 36 35 37 47 39 42 36 35 37 53 35 37 36 35 37 47 39 42
++36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 26 24 32 23 20 24 34 30 15 33 30 30
++32 39 24 36 35 37 55 39 37 60 49 42 88 44 51 88 73 62 120 63 71 117 112 45
++168 102 88 168 102 88 117 114 76 168 102 88 88 73 31 101 74 26 168 102 88 168 102 88
++168 146 127 168 102 88 146 150 115 168 102 88 146 150 115 168 102 88 146 150 115 168 102 88
++138 126 108 168 102 88 146 150 115 195 113 123 168 146 127 168 102 88 146 150 115 168 102 88
++168 102 88 168 146 127 168 102 88 146 150 115 168 102 88 177 171 115 163 117 123 197 171 123
++168 146 127 201 146 124 197 171 123 177 169 143 201 146 124 177 169 143 168 146 127 201 146 124
++168 146 127 168 146 127 168 102 88 146 150 115 168 102 88 168 146 127 201 146 124 168 146 127
++201 146 124 201 146 124 197 171 123 217 168 156 189 165 168 138 126 108 53 35 37 28 13 18
++36 35 37 36 35 37 42 38 42 36 35 37 37 35 43 34 40 43 34 40 43 34 40 43
++28 35 38 24 30 43 29 34 50 46 59 71 75 81 90 95 91 100 77 90 100 75 64 82
++43 42 50 37 35 43 53 46 48 101 83 74 117 99 86 138 126 108 168 102 88 138 102 108
++117 127 86 168 102 88 146 150 115 168 146 127 157 148 53 168 146 127 177 171 115 201 146 124
++197 171 123 217 168 156 197 171 123 197 171 123 201 146 124 197 171 123 168 146 127 201 146 124
++177 171 115 201 146 124 177 171 115 201 146 124 168 146 127 201 146 124 201 146 124 177 169 143
++168 146 127 201 146 124 177 169 143 201 146 124 177 169 143 168 146 127 163 117 123 168 146 127
++168 102 88 177 171 115 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 201 146 124
++168 146 127 168 146 127 168 102 88 168 102 88 146 150 115 168 146 127 201 146 124 168 146 127
++201 146 124 189 165 168 217 168 156 217 168 156 208 215 180 189 165 168 177 169 143 168 146 127
++168 146 127 168 146 127 117 99 86 63 55 45 33 30 30 26 30 28 33 30 30 36 35 37
++33 30 30 36 35 37 36 35 37 33 30 30 36 35 37 36 35 37 36 35 37 33 30 32
++36 35 37 36 35 37 36 35 37 36 35 37 33 30 36 33 30 36 36 35 37 33 30 36
++36 35 37 33 30 36 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++42 41 42 33 39 38 42 38 42 33 39 38 36 35 37 36 35 37 33 39 38 36 35 37
++33 39 38 42 38 42 42 38 42 42 38 42 42 41 42 42 38 42 42 38 42 34 40 43
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 47 44 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 36 35 37 55 39 37 36 35 37 47 44 42
++42 41 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++48 44 48 48 44 48 48 50 48 54 57 61 48 50 48 54 57 61 54 57 61 59 55 55
++54 57 61 59 57 61 54 57 61 63 59 71 54 57 61 63 59 71 53 63 61 53 63 61
++63 59 71 54 57 61 46 59 71 57 43 64 46 59 71 45 57 61 45 57 61 45 57 61
++43 42 50 32 40 58 35 47 50 32 40 58 35 47 50 43 42 50 34 40 43 37 35 43
++33 39 38 36 35 37 36 35 37 36 35 37 37 35 43 37 35 43 36 35 37 42 38 42
++42 38 42 36 35 37 42 41 42 42 38 42 36 35 37 42 41 42 42 38 42 42 41 42
++42 41 42 42 41 42 42 38 42 42 38 42 42 38 42 42 38 42 36 35 37 36 35 37
++36 35 37 36 35 37 31 35 35 36 35 37 31 35 35 33 30 32 30 30 34 30 30 34
++26 30 28 26 30 28 26 30 28 26 30 28 26 30 28 26 24 32 26 30 28 26 24 32
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 32
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++26 24 32 23 20 24 26 24 32 23 20 24 33 30 30 23 20 24 23 20 24 26 30 28
++23 20 24 33 30 30 23 20 24 23 20 24 33 30 30 23 20 24 26 24 32 26 30 28
++26 24 32 26 30 28 26 30 28 22 25 24 26 30 28 26 24 32 26 30 28 26 24 32
++22 25 24 23 20 24 26 24 32 22 25 24 26 30 28 26 24 32 26 30 28 22 25 24
++23 20 24 26 30 28 26 24 32 22 25 24 26 30 28 25 30 29 25 30 29 30 30 34
++30 30 34 30 30 34 30 30 34 30 30 34 31 35 35 30 30 34 31 35 35 36 35 37
++36 35 37 36 35 37 42 41 42 36 35 37 47 44 42 47 47 21 47 39 42 47 44 42
++55 39 37 51 49 42 47 44 42 55 39 37 51 49 42 55 39 37 47 44 42 55 39 37
++47 44 42 47 44 42 47 44 42 47 39 42 42 41 42 47 39 42 42 38 42 42 38 42
++36 35 37 42 38 42 36 35 37 36 35 37 31 35 35 30 30 34 30 30 34 30 30 34
++30 30 34 28 30 35 28 30 35 25 30 29 30 30 34 26 30 28 33 30 30 26 24 32
++26 24 32 26 24 32 26 30 28 23 20 24 33 30 30 23 20 24 26 24 32 22 25 24
++26 30 28 33 30 30 26 24 32 26 30 28 23 20 24 22 25 24 22 25 24 23 20 24
++33 30 30 22 25 24 23 20 24 26 30 28 23 20 24 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 36 35 37 52 30 35 36 35 37 52 30 35 36 35 37 36 35 37
++53 35 37 36 35 37 47 47 21 36 35 37 36 35 37 33 30 30 36 35 37 33 30 30
++33 30 30 33 30 30 34 30 15 33 30 30 26 24 32 33 30 30 26 30 28 26 24 32
++23 20 24 26 30 28 23 20 24 26 24 32 23 20 24 23 20 24 23 20 24 22 25 24
++33 30 30 23 20 24 26 30 28 33 30 30 22 25 24 33 30 30 30 30 34 30 30 34
++30 30 34 33 30 32 33 30 32 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 32 33 30 36 31 35 35 36 35 37 37 35 43 43 42 50 35 47 50 43 42 50
++35 47 50 43 42 50 35 47 50 45 57 61 57 43 64 45 57 61 46 59 71 45 57 61
++54 57 61 45 57 61 54 57 61 54 57 61 54 57 61 54 57 61 53 46 48 57 43 64
++48 50 48 48 44 48 43 42 50 48 50 48 48 50 48 48 50 48 54 57 61 54 57 61
++54 57 61 54 57 61 54 57 61 59 57 61 54 57 61 54 57 61 54 57 61 45 57 61
++
++17 12 17 13 4 7 7 12 13 15 17 7 17 12 17 14 16 17 17 12 17 14 16 17
++23 18 22 17 12 17 22 24 13 23 18 22 26 12 13 22 24 13 23 18 22 22 24 13
++28 13 18 26 25 15 28 13 18 26 25 15 28 13 18 22 24 13 23 18 22 23 18 22
++22 24 13 17 12 17 22 24 13 17 12 17 22 24 13 14 16 17 28 13 18 15 22 17
++26 12 13 17 12 17 15 17 7 17 12 17 17 12 17 17 12 17 17 12 17 15 17 7
++14 16 17 17 12 17 7 12 13 13 4 7 7 10 17 13 4 7 7 10 17 13 4 7
++17 12 17 7 10 17 7 10 17 17 12 17 7 12 13 17 12 17 7 10 17 17 12 17
++12 18 20 17 12 17 7 10 17 17 12 17 7 10 17 17 12 17 7 10 17 17 12 17
++7 10 17 17 12 17 14 16 17 17 12 17 14 16 17 12 18 30 12 18 30 22 23 31
++22 23 31 22 23 31 22 23 31 22 23 31 22 23 31 22 23 31 22 23 31 22 23 31
++12 18 30 22 25 24 22 25 24 22 25 24 12 18 30 23 20 24 12 18 20 23 20 24
++23 20 24 22 23 31 22 25 24 22 25 24 22 25 24 22 23 31 23 20 24 26 30 28
++26 30 28 33 30 32 36 35 37 36 35 37 42 41 42 42 47 42 47 44 42 51 49 42
++51 49 42 62 47 47 63 55 51 65 55 54 75 56 53 65 55 54 75 56 53 75 56 53
++75 56 53 75 56 53 75 59 67 75 56 53 75 63 62 75 56 53 75 63 62 75 63 62
++75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 59 67 75 63 62
++65 63 61 65 63 61 65 63 61 59 55 55 59 55 55 52 55 48 59 55 55 59 55 55
++54 57 61 48 44 48 45 57 61 43 55 48 43 42 50 43 42 50 34 40 43 37 35 43
++36 35 37 36 35 37 30 30 34 33 30 32 30 30 34 33 30 32 26 30 28 30 30 34
++26 30 28 30 30 34 33 30 32 26 24 32 33 30 30 26 30 28 26 30 28 23 20 24
++26 30 28 26 24 32 22 25 24 22 23 31 23 20 24 23 20 24 22 25 24 23 20 24
++23 20 24 23 20 24 12 18 20 23 20 24 22 25 24 26 24 32 23 30 35 28 30 35
++28 35 38 28 35 38 37 35 43 29 34 50 43 42 50 35 47 50 43 42 50 35 47 50
++32 40 58 43 42 50 32 40 58 43 42 50 32 40 58 43 42 50 32 40 58 43 42 50
++32 40 58 34 40 43 29 34 50 28 35 38 24 30 43 28 30 35 23 30 35 23 30 35
++22 23 31 22 25 24 12 18 30 12 18 20 12 18 20 12 18 30 15 22 17 23 20 24
++23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24
++23 20 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24
++26 30 28 23 20 24 33 30 30 26 30 28 33 30 30 33 30 32 33 30 30 33 30 30
++52 30 35 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 32
++52 30 35 36 35 37 53 35 17 36 35 37 32 39 24 52 30 35 36 35 37 36 35 37
++32 39 24 53 35 37 33 30 30 36 35 37 36 35 37 36 35 37 47 39 42 36 35 37
++53 35 37 36 35 37 53 35 37 36 35 37 36 35 37 53 35 37 36 35 37 53 35 37
++36 35 37 32 39 24 53 35 37 36 35 37 53 35 37 36 35 37 42 41 42 53 35 37
++42 41 42 53 35 37 36 35 37 47 47 21 36 35 37 52 30 35 36 35 37 33 30 32
++33 30 30 33 30 30 33 30 30 28 13 18 33 30 30 33 30 30 23 20 24 26 25 15
++34 30 15 36 35 37 55 39 18 60 49 42 88 73 31 120 63 71 117 112 45 168 102 88
++117 114 76 168 102 88 168 102 88 117 114 76 120 63 71 117 114 76 168 102 88 146 150 115
++201 146 124 146 150 115 168 102 88 157 148 53 168 102 88 138 126 108 168 102 88 157 148 53
++168 102 88 177 171 115 168 102 88 168 146 127 157 148 53 163 117 123 157 148 53 163 117 123
++157 148 53 138 126 108 168 102 88 168 102 88 177 171 115 168 102 88 168 146 127 201 146 124
++201 146 124 197 171 123 177 169 143 201 146 124 177 169 143 201 146 124 168 146 127 168 146 127
++168 146 127 163 117 123 177 171 115 163 117 123 177 171 115 163 117 123 177 171 115 168 102 88
++163 117 123 163 117 123 168 146 127 201 146 124 177 169 143 117 99 86 33 30 30 28 13 18
++52 30 35 36 35 37 26 24 32 23 20 24 26 24 32 45 57 61 75 64 82 75 81 90
++77 90 100 95 108 128 111 122 142 148 160 159 166 176 200 194 199 226 185 202 202 166 176 200
++129 144 153 112 96 108 117 99 86 112 123 108 163 117 123 168 146 127 146 150 115 168 102 88
++138 126 108 168 102 88 177 171 115 201 146 124 197 171 123 197 171 123 201 146 124 197 171 123
++197 171 123 197 171 123 201 146 124 197 171 123 177 169 143 201 146 124 197 171 123 201 146 124
++177 171 115 201 146 124 168 146 127 201 146 124 201 146 124 177 169 143 197 171 123 201 146 124
++201 146 124 197 171 123 201 146 124 168 146 127 201 146 124 168 146 127 201 146 124 168 146 127
++168 146 127 168 146 127 168 102 88 177 171 115 168 102 88 177 171 115 168 102 88 168 146 127
++168 102 88 168 146 127 168 102 88 146 150 115 168 102 88 168 102 88 168 146 127 168 146 127
++201 146 124 168 146 127 217 168 156 189 165 168 217 168 156 217 168 156 217 168 156 177 169 143
++163 117 123 138 126 108 88 73 62 53 35 37 26 30 28 33 30 30 33 30 32 36 35 37
++33 30 30 33 30 30 36 35 37 36 35 37 36 35 37 33 30 32 33 30 32 36 35 37
++33 30 32 33 30 32 33 30 32 36 35 37 33 30 36 36 35 37 33 30 36 33 30 32
++36 35 37 33 30 36 36 35 37 33 30 36 36 35 37 31 35 35 36 35 37 33 39 38
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 42 38 42 36 35 37 42 38 42 37 35 43 42 38 42 42 41 42
++42 41 42 43 42 50 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 47 44 42
++42 41 42 42 41 42 42 41 42 42 47 42 55 39 37 36 35 37 42 41 42 42 41 42
++47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 43 42 50 42 47 42
++43 42 50 48 50 48 45 57 61 53 46 48 54 57 61 54 57 61 54 57 61 54 57 61
++59 57 61 54 57 61 63 59 71 54 57 61 63 59 71 53 63 61 63 59 71 46 59 71
++63 59 71 46 59 71 54 57 61 45 57 61 57 43 64 45 57 61 57 43 64 45 57 61
++43 42 50 45 57 61 35 47 50 35 47 50 32 40 58 34 40 43 34 40 43 36 35 37
++36 35 37 31 35 35 36 35 37 36 35 37 37 35 43 36 35 37 42 38 42 36 35 37
++36 35 37 42 38 42 36 35 37 42 38 42 42 38 42 42 38 42 36 35 37 42 38 42
++42 38 42 42 38 42 37 35 43 42 38 42 37 35 43 42 38 42 36 35 37 36 35 37
++33 30 36 36 35 37 33 30 36 31 35 35 33 30 32 30 30 34 33 30 32 26 30 28
++26 24 32 33 30 30 26 24 32 30 30 34 26 24 32 33 30 30 26 30 28 26 30 28
++26 24 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++26 24 32 33 30 30 26 24 32 33 30 30 23 20 24 33 30 30 26 24 32 33 30 30
++33 30 30 23 20 24 33 30 30 26 24 32 26 30 28 26 24 32 23 20 24 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 26 24 32
++22 25 24 22 25 24 26 24 32 22 25 24 26 24 32 23 20 24 26 30 28 22 25 24
++26 24 32 26 30 28 26 24 32 22 25 24 26 24 32 22 25 24 22 25 24 26 24 32
++22 25 24 26 30 28 22 25 24 26 24 32 26 30 28 26 24 32 26 30 28 26 24 32
++26 30 28 26 30 28 30 30 34 30 30 34 30 30 34 31 35 35 31 35 35 36 35 37
++36 35 37 33 39 38 32 39 24 42 41 42 42 41 42 42 41 42 47 39 42 47 44 42
++47 44 42 55 39 37 55 39 37 51 49 42 55 39 37 47 44 42 55 39 37 47 44 42
++55 39 37 55 39 37 47 44 42 47 44 42 47 39 42 47 39 42 42 41 42 47 39 42
++36 35 37 42 38 42 36 35 37 36 35 37 31 35 35 30 30 34 31 35 35 31 35 35
++31 35 35 28 30 35 23 30 35 28 30 35 26 24 32 33 30 30 26 24 32 33 30 30
++33 30 30 23 20 24 26 24 32 26 30 28 26 24 32 33 30 30 26 30 28 26 24 32
++26 24 32 23 20 24 26 24 32 23 20 24 26 30 28 22 25 24 26 24 32 26 25 15
++33 30 30 33 30 30 23 20 24 33 30 30 33 30 30 23 20 24 33 30 30 33 30 30
++33 30 30 33 30 30 36 35 37 33 30 30 36 35 37 33 30 30 52 30 35 32 39 24
++36 35 37 36 35 37 36 35 37 33 30 30 33 30 30 52 30 35 36 35 37 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 23 20 24 33 30 30 26 24 32
++23 20 24 23 20 24 26 24 32 23 20 24 23 20 24 23 20 24 26 30 28 23 20 24
++23 20 24 26 24 32 26 24 32 23 20 24 26 30 28 23 20 24 30 30 34 33 30 36
++30 30 34 33 30 30 33 30 32 33 30 32 36 35 37 33 30 30 33 30 30 33 30 32
++33 30 32 33 30 36 36 35 37 37 35 43 34 40 43 37 35 43 35 47 50 43 42 50
++35 47 50 43 42 50 45 57 61 45 57 61 45 57 61 46 59 71 54 57 61 45 57 61
++54 57 61 57 43 64 54 57 61 54 57 61 59 57 61 54 57 61 54 57 61 45 57 61
++54 57 61 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 53 46 48 54 57 61
++54 57 61 59 57 61 59 57 61 59 57 61 59 57 61 54 57 61 54 57 61 54 57 61
++
++14 16 17 14 16 17 7 12 13 17 12 17 17 12 17 14 16 17 22 24 13 22 24 13
++14 16 17 23 18 22 23 18 22 22 24 13 23 18 22 22 24 13 23 18 22 26 25 15
++23 18 22 26 25 15 23 18 22 26 25 15 23 18 22 26 25 15 23 18 22 26 25 15
++23 18 22 26 12 13 23 18 22 17 12 17 23 18 22 26 12 13 14 16 17 23 18 22
++17 12 17 17 12 17 17 12 17 17 12 17 15 17 7 17 12 17 7 12 13 13 4 7
++17 12 17 7 12 13 7 12 13 7 12 13 7 10 17 7 12 13 7 10 17 7 10 17
++7 12 13 13 4 7 7 10 17 7 12 13 17 12 17 7 10 17 17 12 17 14 16 17
++7 10 17 17 12 17 14 16 17 7 10 17 17 12 17 7 12 13 17 12 17 7 10 17
++17 12 17 14 16 17 7 10 17 12 18 20 14 16 17 12 18 20 22 23 31 22 23 31
++22 23 31 24 30 43 12 18 30 22 23 31 12 18 30 22 23 31 22 23 31 22 23 31
++22 23 31 22 23 31 22 25 24 22 23 31 15 22 17 23 20 24 23 20 24 23 20 24
++22 25 24 22 25 24 22 25 24 22 23 31 26 24 32 26 30 28 26 30 28 26 30 28
++33 30 30 33 30 32 36 35 37 42 38 42 47 44 42 47 44 42 47 44 42 53 46 48
++62 47 47 62 47 47 63 55 51 65 55 54 65 55 54 75 56 53 75 56 53 75 56 53
++75 59 67 88 66 70 75 63 62 88 66 70 75 59 67 88 66 70 75 63 62 88 66 70
++88 66 70 75 63 62 88 66 70 75 63 62 75 63 62 75 72 67 75 59 67 75 72 67
++75 59 67 65 63 61 65 63 61 65 63 61 59 57 61 59 55 55 54 57 61 54 57 61
++54 57 61 54 57 61 43 42 50 45 57 61 43 42 50 43 42 50 42 38 42 36 35 37
++33 39 38 31 35 35 33 30 32 30 30 34 33 30 32 33 30 32 26 30 28 26 24 32
++33 30 30 30 30 34 30 30 34 26 30 28 26 24 32 26 30 28 26 24 32 33 30 30
++22 25 24 26 24 32 22 25 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24
++22 25 24 12 18 30 22 25 24 22 23 31 22 23 31 28 30 35 28 30 35 28 35 38
++24 30 43 34 40 43 29 34 50 43 42 50 35 47 50 29 34 50 43 42 50 32 40 58
++43 42 50 43 42 50 32 40 58 43 42 50 32 40 58 43 42 50 35 47 50 43 42 50
++43 42 50 34 40 43 34 40 43 34 40 43 28 35 38 24 30 43 28 30 35 22 23 31
++25 30 29 22 25 24 22 25 24 12 18 30 15 22 17 23 18 22 12 18 20 23 20 24
++22 25 24 22 25 24 23 20 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24
++23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 33 30 30 26 30 28
++26 30 28 33 30 30 23 20 24 33 30 30 33 30 30 33 30 32 33 30 32 33 30 30
++33 30 30 33 30 30 32 39 24 33 30 30 33 30 30 33 30 30 26 30 28 33 30 30
++33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35
++33 30 32 33 30 32 36 35 37 33 30 30 52 30 35 32 39 24 53 35 37 32 39 24
++52 30 35 36 35 37 32 39 24 53 35 37 36 35 37 55 39 37 32 39 24 53 35 37
++36 35 37 47 47 21 36 35 37 36 35 37 53 35 37 36 35 37 36 35 37 36 35 37
++53 35 37 36 35 37 42 38 42 32 39 24 42 38 42 36 35 37 53 35 37 36 35 37
++42 41 42 32 39 24 53 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 30 30
++33 30 30 33 30 30 33 30 30 26 24 32 23 20 24 28 13 18 33 30 30 23 20 24
++33 30 30 33 30 30 53 35 37 55 39 37 75 56 53 101 74 26 117 99 86 167 63 71
++117 114 76 168 102 88 168 102 88 168 146 127 168 102 88 201 146 124 177 171 115 201 146 124
++168 146 127 168 102 88 146 150 115 168 102 88 138 126 108 168 102 88 157 148 53 163 117 123
++138 126 108 168 102 88 177 171 115 168 102 88 201 146 124 168 102 88 168 146 127 168 102 88
++138 126 108 168 102 88 146 150 115 168 102 88 177 171 115 163 117 123 177 171 115 201 146 124
++177 169 143 217 168 156 177 169 143 217 168 156 168 146 127 177 169 143 168 146 127 201 146 124
++177 171 115 168 146 127 168 146 127 201 146 124 168 146 127 168 102 88 168 102 88 117 114 76
++117 112 45 120 63 71 168 102 88 138 102 108 163 117 123 101 83 74 59 36 42 33 30 30
++33 30 32 23 20 24 22 23 31 34 40 43 75 81 82 111 119 127 148 160 159 150 168 183
++166 174 181 185 202 202 201 216 228 231 239 247 231 239 247 240 251 247 251 251 247 240 251 247
++226 221 247 185 202 202 188 180 202 189 165 168 189 165 168 189 165 168 177 169 143 177 169 143
++168 146 127 177 171 115 217 168 156 177 169 143 217 168 156 197 171 123 197 171 123 177 169 143
++168 146 127 201 146 124 177 171 115 201 146 124 197 171 123 197 171 123 201 146 124 177 171 115
++201 146 124 177 171 115 201 146 124 177 171 115 201 146 124 201 146 124 197 171 123 177 169 143
++201 146 124 177 169 143 197 171 123 201 146 124 168 146 127 168 146 127 168 146 127 168 146 127
++201 146 124 168 146 127 168 146 127 168 146 127 168 146 127 163 117 123 146 150 115 168 102 88
++177 171 115 168 102 88 146 150 115 168 102 88 201 146 124 197 171 123 201 146 124 201 146 124
++189 165 168 201 146 124 217 168 156 217 168 156 217 168 156 208 215 180 217 168 156 177 169 143
++138 126 108 101 83 74 60 49 42 26 25 15 33 30 30 33 30 30 31 35 35 31 35 35
++33 30 32 31 35 35 36 35 37 33 30 32 36 35 37 36 35 37 33 30 36 31 35 35
++33 30 32 33 30 36 33 30 36 33 30 36 33 30 36 36 35 37 33 30 36 33 30 36
++33 30 36 33 30 32 33 30 36 36 35 37 33 30 32 31 35 35 33 30 36 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 31 35 35
++36 35 37 36 35 37 37 35 43 42 38 42 42 38 42 42 38 42 42 41 42 42 41 42
++42 38 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 47 47 21 42 41 42 53 35 37 42 41 42
++42 41 42 47 44 42 42 41 42 42 47 42 42 41 42 42 47 42 42 41 42 48 44 48
++48 44 48 48 50 48 48 50 48 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61
++59 57 61 59 57 61 63 59 71 54 57 61 63 59 71 53 63 61 63 59 71 53 63 61
++63 59 71 46 59 71 54 57 61 45 57 61 46 59 71 45 57 61 45 57 61 45 57 61
++32 40 58 43 42 50 32 40 58 35 47 50 35 47 50 43 42 50 37 35 43 36 35 37
++33 39 38 36 35 37 36 35 37 36 35 37 33 30 36 37 35 43 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 37 35 43
++36 35 37 42 38 42 36 35 37 36 35 37 42 38 42 36 35 37 36 35 37 36 35 37
++36 35 37 31 35 35 31 35 35 33 30 32 33 30 36 31 35 35 30 30 34 30 30 34
++26 30 28 26 30 28 26 30 28 33 30 32 26 30 28 26 30 28 26 24 32 26 30 28
++33 30 30 33 30 30 33 30 30 33 30 30 26 24 32 33 30 30 33 30 30 33 30 30
++33 30 30 23 20 24 33 30 30 33 30 30 33 30 30 33 30 30 23 20 24 33 30 30
++26 24 32 33 30 30 23 20 24 26 24 32 22 25 24 33 30 30 23 20 24 26 24 32
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24
++22 25 24 22 25 24 22 25 24 26 24 32 22 25 24 22 25 24 26 24 32 22 25 24
++26 30 28 23 20 24 22 25 24 26 24 32 22 25 24 22 25 24 22 25 24 22 25 24
++26 24 32 22 25 24 22 25 24 22 25 24 26 30 28 26 30 28 26 24 32 26 30 28
++26 30 28 30 30 34 26 30 28 30 30 34 31 35 35 33 30 36 31 35 35 36 35 37
++36 35 37 33 39 38 42 38 42 42 41 42 36 35 37 47 44 42 55 39 37 47 44 42
++55 39 37 47 44 42 51 49 42 55 39 37 55 39 37 47 44 42 55 39 37 47 47 21
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 42 41 42
++42 38 42 42 38 42 42 38 42 36 35 37 31 35 35 33 30 32 31 35 35 33 30 36
++30 30 34 28 30 35 28 30 35 28 30 35 30 30 34 26 30 28 26 24 32 26 30 28
++26 24 32 33 30 30 23 20 24 33 30 30 26 24 32 26 30 28 26 24 32 22 25 24
++33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 22 25 24 33 30 30 23 20 24
++23 20 24 33 30 30 26 30 28 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 32 36 35 37 52 30 35 33 30 30 52 30 35 36 35 37 36 35 37
++36 35 37 52 30 35 33 30 30 52 30 35 33 30 30 32 39 24 36 35 37 33 30 30
++33 30 30 33 30 30 33 30 30 23 20 24 26 30 28 26 30 28 26 24 32 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 26 24 32
++23 20 24 23 20 24 22 25 24 33 30 30 23 20 24 33 30 30 26 24 32 30 30 34
++30 30 34 33 30 32 33 30 32 36 35 37 33 30 30 33 30 30 33 30 30 33 30 32
++33 30 32 36 35 37 36 35 37 37 35 43 37 35 43 43 42 50 43 42 50 43 42 50
++45 57 61 43 42 50 45 57 61 54 57 61 46 59 71 63 59 71 46 59 71 63 59 71
++46 59 71 54 57 61 63 59 71 54 57 61 54 57 61 57 43 64 59 55 55 59 55 55
++48 44 48 57 43 64 48 50 48 43 42 50 54 57 61 48 50 48 54 57 61 54 57 61
++54 57 61 59 57 61 54 57 61 54 57 61 63 59 71 54 57 61 54 57 61 54 57 61
++
++7 12 13 17 12 17 15 17 7 17 12 17 14 16 17 17 12 17 14 16 17 23 18 22
++22 24 13 23 18 22 26 25 15 23 18 22 26 25 15 23 18 22 26 25 15 23 18 22
++26 25 15 23 20 24 26 25 15 26 25 15 23 18 22 26 25 15 23 18 22 23 18 22
++23 18 22 15 22 17 26 12 13 22 24 13 23 18 22 15 22 17 26 12 13 17 12 17
++22 24 13 17 12 17 17 12 17 17 12 17 17 12 17 17 12 17 17 12 17 7 12 13
++17 12 17 7 12 13 17 12 17 7 12 13 13 4 7 17 12 17 7 12 13 13 4 7
++7 10 17 17 12 17 7 10 17 17 12 17 7 10 17 7 10 17 7 12 13 7 10 17
++17 12 17 7 10 17 7 10 17 17 12 17 7 10 17 7 10 17 7 12 13 17 12 17
++7 10 17 7 10 17 14 16 17 7 10 17 12 18 20 12 18 20 22 23 31 12 18 30
++22 23 31 12 18 30 22 23 31 22 23 31 22 23 31 22 23 31 12 18 30 22 23 31
++12 18 30 22 23 31 22 25 24 12 18 30 22 25 24 23 20 24 15 22 17 15 22 17
++22 25 24 22 25 24 23 20 24 26 30 28 22 25 24 33 30 30 33 30 30 33 30 30
++33 30 30 36 35 37 42 38 42 47 44 42 47 44 42 47 44 42 60 49 42 53 46 48
++62 47 47 63 55 51 63 55 51 75 56 53 75 56 53 75 56 53 75 56 53 88 66 70
++75 63 62 88 66 70 88 66 70 88 66 70 88 66 70 75 63 62 88 66 70 88 73 62
++88 66 70 88 66 70 75 72 67 88 66 70 88 66 70 75 72 67 75 64 82 75 72 67
++75 72 67 75 59 67 63 59 71 65 63 61 65 63 61 59 57 61 54 57 61 54 57 61
++54 57 61 54 57 61 45 57 61 48 50 48 48 50 48 43 42 50 42 41 42 37 35 43
++36 35 37 31 35 35 31 35 35 30 30 34 33 30 32 30 30 34 26 30 28 33 30 30
++26 30 28 30 30 34 33 30 30 30 30 34 33 30 30 26 30 28 26 24 32 26 30 28
++26 24 32 26 30 28 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 22 25 24
++22 23 31 22 25 24 22 23 31 23 30 35 23 30 35 28 35 38 28 35 38 29 34 50
++34 40 43 29 34 50 35 47 50 35 47 50 32 40 58 43 42 50 35 47 50 35 47 50
++43 42 50 32 40 58 43 42 50 43 42 50 43 42 50 32 40 58 43 42 50 32 40 58
++43 42 50 35 47 50 29 34 50 34 40 43 34 40 43 28 30 35 28 30 35 23 30 35
++23 30 35 22 23 31 22 25 24 22 25 24 15 22 17 12 18 30 15 22 17 23 20 24
++22 25 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 23 18 22 23 20 24 22 25 24 22 25 24
++22 25 24 23 20 24 26 30 28 23 20 24 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 33 30 32 33 30 30
++36 35 37 33 30 30 52 30 35 32 39 24 36 35 37 36 35 37 36 35 37 36 35 37
++32 39 24 52 30 35 36 35 37 36 35 37 47 47 21 36 35 37 53 35 37 36 35 37
++53 35 37 36 35 37 36 35 37 52 30 35 36 35 37 36 35 37 53 35 37 36 35 37
++36 35 37 53 35 37 36 35 37 52 30 35 36 35 37 53 35 37 36 35 37 53 35 37
++36 35 37 47 39 42 42 38 42 36 35 37 36 35 37 52 30 35 36 35 37 33 30 32
++33 30 30 33 30 30 33 30 30 26 24 32 33 30 30 23 20 24 23 20 24 33 30 30
++33 30 30 33 30 30 32 39 24 55 39 37 75 56 53 101 83 74 117 99 86 117 112 45
++168 102 88 168 102 88 177 171 115 197 171 123 197 171 123 197 171 123 168 146 127 201 146 124
++177 171 115 177 171 115 168 102 88 138 126 108 168 102 88 138 126 108 168 102 88 146 150 115
++168 102 88 157 148 53 168 102 88 177 171 115 168 102 88 177 171 115 163 117 123 157 148 53
++168 102 88 146 150 115 168 102 88 177 171 115 168 102 88 168 146 127 168 146 127 177 171 115
++201 146 124 177 169 143 201 146 124 168 146 127 177 169 143 201 146 124 177 169 143 201 146 124
++168 146 127 201 146 124 168 102 88 138 102 108 168 102 88 101 83 74 88 44 51 59 36 42
++88 30 18 76 46 20 102 33 26 101 60 73 120 63 71 101 83 74 76 44 53 33 30 32
++26 24 32 24 30 43 60 63 87 111 122 142 166 174 181 208 221 247 231 239 247 226 221 247
++231 239 247 231 239 247 231 239 247 231 239 247 240 251 247 231 239 247 240 251 247 231 239 247
++231 239 247 240 251 247 231 239 247 221 238 247 221 238 247 221 238 247 201 216 228 194 199 226
++185 202 202 194 199 226 185 202 202 225 222 201 208 215 180 208 215 180 208 215 180 197 171 123
++201 146 124 146 150 115 168 146 127 201 146 124 197 171 123 201 146 124 197 171 123 201 146 124
++177 171 115 201 146 124 168 146 127 201 146 124 201 146 124 177 169 143 201 146 124 197 171 123
++201 146 124 197 171 123 201 146 124 168 146 127 201 146 124 177 171 115 201 146 124 168 146 127
++168 146 127 168 146 127 168 146 127 163 117 123 177 171 115 168 102 88 168 146 127 168 102 88
++146 150 115 168 102 88 163 117 123 201 146 124 168 146 127 201 146 124 189 165 168 217 168 156
++201 146 124 189 165 168 177 169 143 217 168 156 177 169 143 217 168 156 177 169 143 168 146 127
++138 102 108 63 55 45 33 30 30 22 25 24 33 30 32 31 35 35 33 30 32 31 35 35
++33 30 32 31 35 35 33 30 32 33 30 36 30 30 34 31 35 35 31 35 35 33 30 36
++33 30 32 31 35 35 30 30 34 36 35 37 33 30 36 31 35 35 33 30 36 31 35 35
++31 35 35 31 35 35 36 35 37 31 35 35 31 35 35 33 30 36 31 35 35 31 35 35
++31 35 35 31 35 35 31 35 35 36 35 37 36 35 37 36 35 37 33 30 36 31 35 35
++36 35 37 36 35 37 34 40 43 37 35 43 33 39 38 37 35 43 42 38 42 42 38 42
++42 38 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 47 47 21 42 41 42 42 41 42 42 38 42 42 41 42 42 41 42 42 41 42
++42 38 42 42 38 42 42 41 42 42 41 42 42 41 42 47 44 42 43 42 50 48 50 48
++48 44 48 54 57 61 48 50 48 59 55 55 54 57 61 54 57 61 54 57 61 54 57 61
++54 57 61 63 59 71 54 57 61 63 59 71 54 57 61 63 59 71 53 63 61 63 59 71
++54 57 61 54 57 61 54 57 61 57 43 64 54 57 61 57 43 64 45 57 61 43 42 50
++45 57 61 35 47 50 35 47 50 35 47 50 32 40 58 34 40 43 34 40 43 37 35 43
++36 35 37 33 30 36 33 30 36 33 30 36 33 30 36 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 37 35 43 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++33 30 36 31 35 35 33 30 32 31 35 35 30 30 34 33 30 32 33 30 32 26 24 32
++33 30 30 26 24 32 30 30 34 26 30 28 26 24 32 26 30 28 26 24 32 33 30 30
++23 20 24 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30 33 30 30 23 20 24
++33 30 30 33 30 30 26 24 32 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30
++23 20 24 26 24 32 26 30 28 26 24 32 33 30 30 23 20 24 26 24 32 23 20 24
++23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++26 24 32 23 20 24 22 25 24 22 25 24 22 25 24 26 24 32 22 25 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 22 25 24 26 24 32 23 20 24 25 30 29 25 30 29 25 30 29
++26 24 32 26 30 28 30 30 34 30 30 34 30 30 34 31 35 35 31 35 35 31 35 35
++36 35 37 33 39 38 36 35 37 32 39 24 47 44 42 36 35 37 42 41 42 47 44 42
++55 39 37 47 44 42 47 47 21 55 39 37 47 44 42 55 39 37 55 39 37 47 44 42
++47 44 42 55 39 37 47 44 42 47 44 42 48 44 48 47 44 42 47 44 42 47 39 42
++36 35 37 47 39 42 36 35 37 36 35 37 36 35 37 36 35 37 31 35 35 31 35 35
++30 30 34 28 30 35 30 30 34 30 30 34 26 24 32 33 30 30 26 24 32 33 30 30
++26 24 32 26 30 28 26 24 32 23 20 24 33 30 30 26 24 32 33 30 30 26 24 32
++33 30 30 23 20 24 33 30 30 22 25 24 26 24 32 26 30 28 22 25 24 33 30 30
++22 25 24 33 30 30 23 20 24 26 30 28 33 30 30 33 30 30 33 30 30 33 30 32
++33 30 32 33 30 30 36 35 37 33 30 30 52 30 35 36 35 37 33 30 30 52 30 35
++33 30 30 36 35 37 36 35 37 33 30 30 36 35 37 33 30 30 33 30 30 52 30 35
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 26 25 15 26 30 28 26 24 32
++26 24 32 23 20 24 23 20 24 23 20 24 26 24 32 22 25 24 23 20 24 23 20 24
++23 20 24 23 20 24 23 20 24 26 30 28 26 24 32 26 30 28 30 30 34 30 30 34
++33 30 32 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37
++33 30 36 36 35 37 37 35 43 37 35 43 42 41 42 43 42 50 35 47 50 43 42 50
++43 42 50 45 57 61 46 59 71 57 43 64 46 59 71 46 59 71 46 59 71 46 59 71
++63 59 71 46 59 71 46 59 71 54 57 61 54 57 61 54 57 61 45 57 61 54 57 61
++45 57 61 48 50 48 45 57 61 48 50 48 48 50 48 57 43 64 54 57 61 54 57 61
++54 57 61 54 57 61 54 57 61 54 57 61 46 59 71 63 59 71 46 59 71 63 59 71
++
++7 12 13 15 17 7 7 12 13 17 12 17 14 16 17 17 12 17 22 24 13 23 18 22
++22 24 13 23 20 24 23 18 22 23 18 22 26 25 15 23 18 22 26 25 15 26 25 15
++23 20 24 34 30 15 23 20 24 23 18 22 26 25 15 23 18 22 26 25 15 23 18 22
++22 24 13 23 18 22 23 18 22 22 24 13 23 18 22 17 12 17 23 18 22 17 12 17
++17 12 17 17 12 17 15 17 7 17 12 17 17 12 17 17 12 17 15 17 7 13 4 7
++17 12 17 7 12 13 13 4 7 7 12 13 7 10 17 7 12 13 7 10 17 17 12 17
++7 12 13 7 10 17 7 10 17 17 12 17 7 10 17 17 12 17 13 4 7 7 10 17
++17 12 17 7 12 13 17 12 17 7 10 17 13 4 7 7 12 13 13 4 7 7 10 17
++7 12 13 17 12 17 7 12 13 14 16 17 12 18 20 12 18 20 23 20 24 12 18 30
++22 23 31 22 23 31 12 18 30 22 23 31 22 23 31 22 23 31 22 25 24 12 18 30
++22 25 24 22 25 24 12 18 30 15 22 17 23 20 24 15 22 17 23 20 24 23 20 24
++22 25 24 22 25 24 33 30 30 33 30 30 33 30 30 33 30 32 33 30 30 31 35 35
++36 35 37 47 44 42 47 44 42 47 44 42 51 49 42 51 49 42 62 47 47 55 55 48
++63 55 51 65 55 54 65 55 54 75 56 53 75 59 67 75 63 62 88 66 70 88 66 70
++88 66 70 88 73 62 88 66 70 88 66 70 88 73 62 88 66 70 88 66 70 88 66 70
++88 66 70 88 83 74 88 66 70 75 81 76 88 66 70 75 64 82 75 72 67 75 72 67
++75 64 82 65 63 61 75 72 67 63 59 71 59 69 70 65 63 61 59 57 61 54 57 61
++54 57 61 54 57 61 48 50 48 43 42 50 43 42 50 43 42 50 34 40 43 34 40 43
++36 35 37 36 35 37 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34
++30 30 34 30 30 34 26 30 28 30 30 34 26 30 28 26 24 32 26 30 28 26 24 32
++26 30 28 23 20 24 26 30 28 23 20 24 23 20 24 22 25 24 23 20 24 22 23 31
++22 23 31 22 23 31 23 30 35 23 30 35 28 35 38 34 40 43 34 40 43 34 40 43
++35 47 50 35 47 50 32 40 58 43 42 50 35 47 50 32 40 58 43 42 50 32 40 58
++43 42 50 43 42 50 32 40 58 43 42 50 32 40 58 45 57 61 43 42 50 43 42 50
++35 47 50 43 42 50 35 47 50 34 40 43 28 35 38 28 35 38 28 35 38 28 30 35
++25 30 29 22 23 31 22 23 31 12 18 30 23 20 24 12 18 20 23 20 24 15 22 17
++23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24
++26 25 15 22 25 24 22 25 24 23 20 24 26 25 15 23 20 24 22 25 24 22 25 24
++26 30 28 23 20 24 33 30 30 26 24 32 26 30 28 33 30 30 33 30 30 26 30 28
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35
++33 30 30 36 35 37 33 30 30 33 30 30 52 30 35 32 39 24 53 35 37 36 35 37
++52 30 35 32 39 24 36 35 37 52 30 35 36 35 37 47 39 42 47 47 21 36 35 37
++32 39 24 36 35 37 52 30 35 32 39 24 36 35 37 52 30 35 32 39 24 36 35 37
++52 30 35 32 39 24 36 35 37 36 35 37 36 35 37 53 35 37 36 35 37 42 41 42
++53 35 37 36 35 37 32 39 24 53 35 37 36 35 37 32 39 24 36 35 37 33 30 30
++33 30 30 33 30 30 23 20 24 33 30 30 23 18 22 23 20 24 33 30 30 33 30 30
++23 20 24 26 25 15 33 30 30 53 35 37 75 73 36 88 73 62 117 112 45 120 63 71
++117 114 76 138 126 108 201 146 124 197 171 123 217 168 156 177 169 143 201 146 124 177 171 115
++168 146 127 168 146 127 168 102 88 177 171 115 168 102 88 168 146 127 168 102 88 168 102 88
++146 150 115 168 102 88 138 126 108 157 148 53 168 102 88 146 150 115 168 102 88 146 150 115
++168 102 88 157 148 53 168 146 127 168 102 88 146 150 115 177 171 115 201 146 124 168 146 127
++201 146 124 177 169 143 168 146 127 197 171 123 168 146 127 168 146 127 168 146 127 163 117 123
++168 102 88 138 126 108 120 63 71 101 74 26 76 18 19 49 13 16 49 13 16 49 13 16
++49 13 16 76 18 19 88 30 18 88 44 51 120 63 71 101 83 74 52 30 35 28 13 18
++43 42 50 95 95 116 148 160 159 201 216 228 208 221 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 221 238 247 231 239 247 231 239 247 221 238 247 221 238 247 231 239 247
++231 239 247 240 251 247 231 239 247 231 239 247 226 221 247 221 238 247 232 215 228 226 221 247
++232 215 228 232 215 228 225 222 201 232 215 228 225 222 201 208 215 180 208 215 180 177 169 143
++197 171 123 177 171 115 168 102 88 177 171 115 168 146 127 201 146 124 197 171 123 201 146 124
++197 171 123 201 146 124 177 171 115 201 146 124 197 171 123 201 146 124 177 169 143 201 146 124
++177 169 143 201 146 124 177 169 143 201 146 124 168 146 127 201 146 124 168 146 127 168 102 88
++177 171 115 201 146 124 168 146 127 201 146 124 168 146 127 168 146 127 168 146 127 168 146 127
++168 102 88 168 146 127 168 146 127 163 117 123 201 146 124 163 117 123 168 102 88 138 102 108
++138 102 108 168 102 88 163 117 123 168 146 127 163 117 123 168 146 127 168 146 127 163 117 123
++88 73 62 52 30 15 33 30 30 33 30 32 36 35 37 30 30 34 30 30 34 31 35 35
++30 30 34 30 30 34 33 30 32 31 35 35 33 30 32 33 30 32 30 30 34 30 30 34
++30 30 34 33 30 32 30 30 34 33 30 32 31 35 35 33 30 36 36 35 37 31 35 35
++33 30 36 31 35 35 33 30 36 36 35 37 36 35 37 36 35 37 36 35 37 30 30 34
++33 30 32 31 35 35 36 35 37 36 35 37 36 35 37 31 35 35 30 30 34 33 30 32
++30 30 34 36 35 37 37 35 43 36 35 37 36 35 37 42 38 42 36 35 37 42 38 42
++42 38 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 47 44 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 47 39 42 36 35 37 53 35 37 33 39 38
++42 41 42 42 38 42 42 41 42 42 41 42 42 47 42 48 44 48 43 42 50 48 44 48
++48 50 48 48 50 48 53 46 48 54 57 61 54 57 61 57 43 64 54 57 61 59 57 61
++59 57 61 63 59 71 54 57 61 63 59 71 54 57 61 63 59 71 46 59 71 59 57 61
++46 59 71 54 57 61 46 59 71 54 57 61 45 57 61 45 57 61 45 57 61 45 57 61
++43 42 50 32 40 58 43 42 50 35 47 50 34 40 43 34 40 43 37 35 43 37 35 43
++28 35 38 33 30 36 33 30 36 33 30 32 33 30 32 33 30 36 36 35 37 36 35 37
++36 35 37 36 35 37 33 30 36 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 33 30 36 36 35 37 36 35 37 33 30 36
++33 30 36 33 30 32 30 30 34 30 30 34 30 30 34 26 30 28 30 30 34 26 30 28
++26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 26 24 32
++33 30 30 33 30 30 33 30 30 26 24 32 33 30 30 23 20 24 33 30 30 33 30 30
++33 30 30 23 20 24 33 30 30 26 24 32 23 20 24 33 30 30 23 20 24 33 30 30
++26 30 28 26 24 32 22 25 24 23 20 24 26 24 32 23 20 24 22 25 24 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24
++22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24
++22 25 24 22 25 24 23 20 24 22 25 24 22 23 31 26 30 28 22 23 31 22 25 24
++25 30 29 26 24 32 30 30 34 26 30 28 30 30 34 30 30 34 30 30 34 31 35 35
++36 35 37 36 35 37 33 39 38 42 38 42 36 35 37 47 47 21 47 39 42 55 39 37
++47 44 42 55 39 37 47 44 42 55 39 37 47 44 42 47 47 21 47 44 42 55 39 37
++47 44 42 47 44 42 47 44 42 47 44 42 47 39 42 47 44 42 47 39 42 42 41 42
++47 39 42 36 35 37 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 31 35 35
++30 30 34 30 30 34 30 30 34 25 30 29 30 30 34 26 30 28 33 30 30 26 24 32
++26 30 28 23 20 24 33 30 30 26 24 32 26 30 28 23 20 24 33 30 30 23 20 24
++33 30 30 26 24 32 26 24 32 33 30 30 23 20 24 33 30 30 26 30 28 33 30 30
++26 24 32 33 30 30 33 30 30 26 24 32 33 30 30 33 30 30 33 30 32 33 30 32
++33 30 32 36 35 37 33 30 32 36 35 37 33 30 30 52 30 35 33 30 30 36 35 37
++53 35 37 32 39 24 52 30 35 36 35 37 33 30 30 52 30 35 33 30 30 33 30 30
++33 30 30 34 30 15 33 30 30 23 20 24 26 25 15 26 24 32 26 30 28 26 24 32
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 26 24 32 33 30 30 26 24 32 33 30 30 26 30 28 30 30 34
++30 30 34 33 30 30 33 30 32 33 30 32 36 35 37 33 30 30 33 30 30 36 35 37
++33 30 36 37 35 43 36 35 37 42 38 42 43 42 50 43 42 50 43 42 50 45 57 61
++57 43 64 45 57 61 57 43 64 46 59 71 63 59 71 46 59 71 63 59 71 59 69 70
++46 59 71 63 59 71 63 59 71 63 59 71 54 57 61 54 57 61 54 57 61 57 43 51
++54 57 61 57 43 64 48 50 48 45 57 61 48 44 48 45 57 61 54 57 61 54 57 61
++54 57 61 46 59 71 54 57 61 63 59 71 53 63 61 54 57 61 63 59 71 46 59 71
++
++17 12 17 7 12 13 15 17 7 14 16 17 26 12 13 15 22 17 17 12 17 22 24 13
++23 18 22 23 20 24 26 25 15 23 20 24 26 25 15 23 18 22 34 30 15 23 20 24
++34 30 15 23 20 24 34 30 15 26 25 15 23 18 22 26 25 15 23 18 22 26 12 13
++23 18 22 22 24 13 23 18 22 23 18 22 23 18 22 17 12 17 22 24 13 17 12 17
++17 12 17 17 12 17 17 12 17 17 12 17 17 12 17 17 12 17 17 12 17 17 12 17
++7 12 13 17 12 17 7 12 13 7 12 13 13 4 7 7 10 17 13 4 7 7 10 17
++13 4 7 7 12 13 13 4 7 7 10 17 17 12 17 7 12 13 7 10 17 7 10 17
++17 12 17 7 10 17 7 12 13 17 12 17 7 10 17 7 10 17 7 12 13 7 10 17
++17 12 17 7 12 13 7 12 13 7 10 17 14 16 17 12 18 20 12 18 30 22 23 31
++22 23 31 12 18 30 22 23 31 22 25 24 12 18 30 23 20 24 12 18 20 23 20 24
++23 20 24 12 18 20 15 22 17 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24
++22 25 24 26 24 32 33 30 30 33 30 30 33 30 32 36 35 37 36 35 37 36 35 37
++47 39 42 47 39 42 51 49 42 51 49 42 53 46 48 62 47 47 63 55 51 65 55 54
++65 55 54 65 57 61 75 63 62 75 63 62 75 63 62 88 66 70 88 66 70 88 66 70
++88 66 70 88 66 70 88 66 70 88 66 70 88 66 70 88 66 70 88 66 70 88 83 74
++88 66 70 88 69 84 88 83 74 88 69 84 88 83 74 75 72 67 88 69 84 75 72 67
++75 72 67 63 59 71 63 59 71 65 63 61 65 63 61 63 59 71 53 63 61 54 57 61
++54 57 61 48 50 48 45 57 61 43 55 48 43 42 50 42 47 42 42 41 42 42 38 42
++33 39 38 31 35 35 31 35 35 30 30 34 30 30 34 30 30 34 30 30 34 26 30 28
++33 30 30 30 30 34 33 30 32 26 24 32 26 30 28 26 24 32 26 30 28 22 25 24
++26 30 28 26 24 32 26 30 28 26 24 32 22 25 24 23 20 24 23 20 24 22 25 24
++22 23 31 23 30 35 25 30 29 28 35 38 28 35 38 34 40 43 29 34 50 34 40 43
++29 34 50 35 47 50 43 42 50 32 40 58 32 40 58 45 57 61 35 47 50 32 40 58
++45 57 61 32 40 58 43 42 50 45 57 61 43 42 50 43 42 50 35 47 50 43 42 50
++32 40 58 43 42 50 43 42 50 37 35 43 28 35 38 28 35 38 28 35 38 28 30 35
++23 30 35 25 30 29 22 25 24 22 25 24 12 18 20 12 18 20 12 18 20 23 20 24
++12 18 20 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24
++23 20 24 23 20 24 22 25 24 23 20 24 15 22 17 23 20 24 22 25 24 22 25 24
++22 25 24 23 20 24 26 30 28 23 20 24 26 30 28 33 30 30 33 30 30 33 30 30
++33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 52 30 35 36 35 37 33 30 30 52 30 35 33 30 30 36 35 37
++33 30 30 33 30 30 52 30 35 32 39 24 33 30 30 36 35 37 53 35 37 32 39 24
++36 35 37 36 35 37 53 35 37 32 39 24 36 35 37 53 35 37 36 35 37 36 35 37
++52 30 35 36 35 37 31 35 35 52 30 35 36 35 37 36 35 37 52 30 35 33 30 30
++36 35 37 36 35 37 36 35 37 53 35 37 36 35 37 36 35 37 55 39 37 36 35 37
++36 35 37 53 35 37 36 35 37 36 35 37 33 30 30 52 30 35 36 35 37 33 30 32
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 23 20 24 33 30 30
++33 30 30 26 24 32 26 25 15 52 30 35 60 49 42 120 63 71 101 83 74 168 102 88
++117 112 45 168 102 88 138 126 108 201 146 124 177 171 115 201 146 124 168 146 127 201 146 124
++168 146 127 201 146 124 168 146 127 157 148 53 168 102 88 168 102 88 157 148 53 117 114 76
++168 102 88 157 148 53 168 102 88 168 102 88 138 126 108 168 102 88 146 150 115 168 102 88
++168 146 127 168 102 88 146 150 115 168 102 88 177 171 115 163 117 123 168 146 127 168 146 127
++197 171 123 177 169 143 201 146 124 168 146 127 168 146 127 138 126 108 168 102 88 138 126 108
++168 102 88 168 102 88 117 112 45 88 44 51 76 18 19 49 13 16 49 13 16 49 13 16
++49 13 16 76 18 19 88 30 18 120 63 71 101 83 74 76 44 53 52 30 35 65 57 61
++119 117 138 188 180 202 221 238 247 240 251 247 231 239 247 231 239 247 221 238 247 231 239 247
++221 238 247 231 239 247 231 239 247 221 238 247 231 239 247 231 239 247 231 239 247 231 239 247
++231 239 247 221 238 247 221 238 247 221 238 247 208 221 247 208 221 247 208 221 247 208 221 247
++221 238 247 201 216 228 221 238 247 201 216 228 226 221 247 232 215 228 225 222 201 208 215 180
++217 168 156 177 169 143 168 146 127 157 148 53 168 102 88 177 171 115 201 146 124 197 171 123
++201 146 124 177 171 115 201 146 124 201 146 124 168 146 127 201 146 124 197 171 123 201 146 124
++177 169 143 201 146 124 168 146 127 197 171 123 168 146 127 201 146 124 168 146 127 177 171 115
++201 146 124 168 146 127 201 146 124 177 171 115 201 146 124 168 146 127 201 146 124 168 146 127
++201 146 124 168 146 127 168 146 127 168 102 88 168 102 88 117 99 86 88 44 51 76 46 20
++76 46 20 120 63 71 117 99 86 138 102 108 168 102 88 138 102 108 138 102 108 101 83 74
++55 39 37 34 30 15 33 30 30 36 35 37 36 35 37 30 30 34 30 30 34 30 30 34
++30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 31 35 35
++30 30 34 30 30 34 30 30 34 33 30 36 31 35 35 31 35 35 31 35 35 33 30 36
++31 35 35 30 30 34 30 30 34 31 35 35 36 35 37 36 35 37 36 35 37 31 35 35
++31 35 35 36 35 37 31 35 35 36 35 37 31 35 35 36 35 37 33 30 32 31 35 35
++30 30 34 31 35 35 36 35 37 33 39 38 36 35 37 36 35 37 42 38 42 42 38 42
++42 38 42 42 41 42 42 41 42 47 39 42 42 41 42 47 39 42 42 41 42 42 41 42
++42 41 42 47 44 42 42 41 42 47 44 42 42 41 42 47 39 42 42 41 42 42 41 42
++42 38 42 42 38 42 42 41 42 42 41 42 48 44 48 42 47 42 48 50 48 43 42 50
++48 44 48 48 50 48 54 57 61 53 46 48 54 57 61 54 57 61 54 57 61 59 57 61
++53 63 61 59 57 61 63 59 71 54 57 61 63 59 71 53 63 61 63 59 71 53 63 61
++63 59 71 54 57 61 54 57 61 54 57 61 46 59 71 57 43 64 45 57 61 43 42 50
++45 57 61 35 47 50 35 47 50 32 40 58 34 40 43 35 47 50 37 35 43 34 40 43
++37 35 43 31 35 35 31 35 35 33 30 36 33 30 32 31 35 35 33 30 36 36 35 37
++36 35 37 33 30 36 36 35 37 33 30 32 36 35 37 33 30 36 36 35 37 33 30 36
++36 35 37 33 30 32 33 30 36 36 35 37 33 30 32 33 30 32 33 30 36 33 30 36
++33 30 36 31 35 35 30 30 34 30 30 34 33 30 32 26 30 28 30 30 34 26 30 28
++26 24 32 26 30 28 26 30 28 26 24 32 33 30 30 26 30 28 26 24 32 22 25 24
++26 24 32 33 30 30 28 13 18 33 30 30 26 24 32 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 23 20 24 33 30 30 28 13 18 33 30 30 23 20 24 33 30 30
++23 20 24 33 30 30 26 24 32 33 30 30 23 20 24 26 30 28 23 20 24 23 20 24
++22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24
++22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 26 24 32 22 25 24 23 20 24
++22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24 25 30 29 22 25 24
++25 30 29 26 30 28 26 30 28 30 30 34 30 30 34 30 30 34 30 30 34 36 35 37
++31 35 35 36 35 37 36 35 37 32 39 24 42 38 42 42 38 42 36 35 37 55 39 37
++47 44 42 55 39 37 47 44 42 55 39 37 47 44 42 55 39 37 55 39 37 51 49 42
++47 44 42 55 39 37 47 44 42 47 44 42 48 44 48 47 44 42 47 39 42 42 41 42
++53 35 37 36 35 37 36 35 37 36 35 37 33 39 38 36 35 37 36 35 37 31 35 35
++30 30 34 30 30 34 28 30 35 26 24 32 33 30 30 26 24 32 26 24 32 33 30 30
++26 24 32 26 30 28 26 24 32 23 20 24 33 30 30 26 30 28 26 24 32 33 30 30
++26 24 32 33 30 30 26 24 32 33 30 30 26 30 28 26 30 28 26 30 28 33 30 30
++22 25 24 33 30 30 23 20 24 26 30 28 26 30 28 33 30 30 33 30 30 33 30 32
++33 30 30 33 30 30 36 35 37 33 30 30 52 30 35 32 39 24 52 30 35 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37 33 30 30 33 30 30
++33 30 30 33 30 32 26 25 15 33 30 30 22 25 24 33 30 30 22 25 24 26 24 32
++22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++22 25 24 23 20 24 26 24 32 23 20 24 26 30 28 26 24 32 33 30 30 26 30 28
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 32 33 30 32
++36 35 37 36 35 37 37 35 43 34 40 43 42 41 42 43 42 50 45 57 61 43 42 50
++45 57 61 45 57 61 54 57 61 46 59 71 63 59 71 46 59 71 60 63 87 59 69 70
++60 63 87 63 59 71 59 69 70 46 59 71 63 59 71 54 57 61 54 57 61 45 57 61
++54 57 61 48 50 48 45 57 61 57 43 51 45 57 61 48 50 48 57 43 64 45 57 61
++54 57 61 54 57 61 54 57 61 54 57 61 46 59 71 63 59 71 46 59 71 63 59 71
++
++15 17 7 7 12 13 17 12 17 15 17 7 14 16 17 14 16 17 22 24 13 28 13 18
++26 25 15 26 25 15 23 18 22 26 25 15 26 25 15 33 30 30 28 13 18 33 30 30
++23 20 24 34 30 15 23 20 24 23 20 24 34 30 15 23 18 22 23 18 22 22 24 13
++23 18 22 23 18 22 22 24 13 23 18 22 22 24 13 17 12 17 17 12 17 26 12 13
++14 16 17 26 12 13 17 12 17 17 12 17 17 12 17 17 12 17 7 12 13 17 12 17
++7 12 13 17 12 17 7 12 13 13 4 7 7 10 17 17 12 17 7 10 17 7 10 17
++17 12 17 7 10 17 17 12 17 7 10 17 7 12 13 17 12 17 7 10 17 17 12 17
++7 12 13 13 4 7 7 10 17 7 12 13 13 4 7 7 10 17 13 4 7 7 10 17
++7 12 13 17 12 17 7 10 17 17 12 17 14 16 17 12 18 20 23 20 24 12 18 20
++22 23 31 23 20 24 12 18 30 23 20 24 15 22 17 23 18 22 12 18 20 23 20 24
++12 18 20 23 20 24 12 18 20 23 20 24 15 22 17 23 20 24 22 25 24 23 20 24
++33 30 30 26 30 28 33 30 30 33 30 30 36 35 37 36 35 37 53 35 17 42 41 42
++55 39 37 47 44 42 60 49 42 53 46 48 63 55 51 63 55 51 65 55 54 65 63 61
++75 63 62 75 63 62 75 63 62 75 63 62 88 66 70 88 66 70 88 66 70 88 66 70
++88 66 70 88 66 70 88 66 70 88 66 70 88 66 70 88 66 70 88 66 70 88 66 70
++88 83 74 88 66 70 75 81 76 88 66 70 88 69 84 88 66 70 75 72 67 75 72 67
++75 64 82 63 59 71 65 63 61 63 59 71 59 57 61 59 57 61 53 63 61 59 57 61
++53 63 61 54 57 61 48 50 48 43 42 50 42 47 42 35 46 43 34 40 43 34 40 43
++33 39 38 31 35 35 31 35 35 28 30 35 30 30 34 30 30 34 26 30 28 30 30 34
++30 30 34 26 30 28 33 30 32 30 30 34 26 30 28 26 30 28 26 24 32 26 30 28
++26 24 32 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 22 23 31 22 23 31
++22 23 31 23 30 35 28 30 35 28 35 38 37 35 43 32 40 58 34 40 43 35 47 50
++43 42 50 35 47 50 32 40 58 43 42 50 35 47 50 43 42 50 32 40 58 43 42 50
++35 47 50 43 42 50 45 57 61 32 40 58 35 47 50 32 40 58 43 42 50 35 47 50
++43 42 50 35 47 50 34 40 43 34 40 43 37 35 43 29 34 50 28 35 38 24 30 43
++28 30 35 25 30 29 22 23 31 12 18 30 22 25 24 12 18 30 15 22 17 22 25 24
++23 20 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24
++22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24
++23 20 24 22 25 24 33 30 30 23 20 24 33 30 30 33 30 30 26 30 28 33 30 30
++26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 32 39 24 33 30 32 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 33 30 30 36 35 37
++52 30 35 33 30 30 32 39 24 36 35 37 52 30 35 36 35 37 36 35 37 52 30 35
++36 35 37 32 39 24 36 35 37 53 35 37 36 35 37 36 35 37 53 35 37 32 39 24
++36 35 37 32 39 24 52 30 35 36 35 37 33 30 30 36 35 37 36 35 37 36 35 37
++52 30 35 33 30 30 52 30 35 32 39 24 36 35 37 36 35 37 36 35 37 55 39 37
++36 35 37 36 35 37 36 35 37 52 30 35 32 39 24 33 30 32 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 32 33 30 30 33 30 30 33 30 30
++23 20 24 33 30 30 28 13 18 33 30 32 55 39 37 88 73 62 101 83 74 117 112 45
++167 63 71 117 112 45 168 102 88 157 148 53 168 146 127 168 146 127 168 102 88 177 171 115
++168 102 88 146 150 115 168 102 88 168 102 88 117 127 86 168 102 88 168 102 88 117 114 76
++168 102 88 117 114 76 168 102 88 117 114 76 168 102 88 157 148 53 163 117 123 146 150 115
++168 102 88 146 150 115 168 102 88 177 171 115 138 126 108 201 146 124 177 171 115 168 146 127
++168 146 127 201 146 124 168 146 127 168 146 127 168 102 88 168 102 88 138 126 108 168 102 88
++168 146 127 168 102 88 168 102 88 168 102 88 117 99 86 120 63 71 102 33 26 88 44 51
++120 63 71 101 60 73 120 63 71 101 83 74 88 44 51 62 47 47 59 57 61 129 144 153
++201 216 228 240 251 247 240 251 247 231 239 247 231 239 247 231 239 247 235 238 247 231 239 247
++231 239 247 240 251 247 221 238 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247
++221 238 247 221 238 247 208 221 247 208 221 247 226 221 247 208 221 247 208 221 247 208 221 247
++208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 208 221 247
++201 216 228 188 180 202 189 165 168 168 146 127 146 150 115 168 146 127 201 146 124 177 171 115
++201 146 124 201 146 124 177 171 115 168 146 127 201 146 124 197 171 123 168 146 127 201 146 124
++197 171 123 168 146 127 201 146 124 177 169 143 201 146 124 168 146 127 201 146 124 168 146 127
++201 146 124 201 146 124 168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 168 102 88
++201 146 124 201 146 124 163 117 123 168 102 88 117 99 86 120 63 71 76 46 20 76 18 19
++52 30 15 88 44 51 88 73 62 120 63 71 101 83 74 101 83 74 88 73 62 60 49 42
++33 30 30 33 30 32 36 35 37 36 35 37 31 35 35 33 30 32 30 30 34 28 30 35
++28 30 35 30 30 34 28 30 35 28 30 35 31 35 35 28 30 35 33 30 36 30 30 34
++28 30 35 28 30 35 31 35 35 28 30 35 33 30 36 33 30 36 30 30 34 31 35 35
++30 30 34 33 30 32 30 30 34 33 30 36 36 35 37 31 35 35 36 35 37 33 30 36
++36 35 37 36 35 37 36 35 37 33 30 36 31 35 35 33 30 36 31 35 35 33 30 32
++31 35 35 33 30 36 36 35 37 36 35 37 37 35 43 42 38 42 42 38 42 42 38 42
++42 38 42 42 41 42 42 41 42 47 39 42 47 44 42 42 41 42 47 44 42 42 47 42
++42 41 42 47 39 42 47 39 42 42 41 42 47 39 42 47 47 21 42 38 42 36 35 37
++36 35 37 42 41 42 42 41 42 42 41 42 47 44 42 48 44 48 43 42 50 47 44 42
++48 50 48 48 50 48 48 50 48 54 57 61 54 57 61 54 57 61 59 57 61 54 57 61
++63 59 71 59 57 61 63 59 71 59 57 61 63 59 71 54 57 61 54 57 61 63 59 71
++46 59 71 54 57 61 45 57 61 54 57 61 45 57 61 45 57 61 45 57 61 43 42 50
++32 40 58 43 42 50 35 47 50 35 47 50 37 35 43 34 40 43 37 35 43 34 40 43
++31 35 35 28 35 38 30 30 34 30 30 34 30 30 34 30 30 34 31 35 35 33 30 36
++31 35 35 31 35 35 33 30 36 31 35 35 36 35 37 36 35 37 36 35 37 36 35 37
++31 35 35 31 35 35 33 30 36 31 35 35 30 30 34 30 30 34 31 35 35 31 35 35
++33 30 32 31 35 35 30 30 34 30 30 34 26 30 28 30 30 34 26 24 32 33 30 30
++26 30 28 26 24 32 26 24 32 33 30 30 26 24 32 26 24 32 26 30 28 26 24 32
++33 30 30 33 30 30 33 30 30 33 30 30 23 20 24 33 30 30 26 24 32 33 30 30
++26 24 32 33 30 30 26 24 32 22 25 24 33 30 30 23 20 24 33 30 30 23 20 24
++33 30 30 23 20 24 23 20 24 26 24 32 22 25 24 26 24 32 23 20 24 23 20 24
++23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 22 25 24
++23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24
++22 25 24 26 24 32 22 25 24 26 24 32 22 25 24 23 20 24 22 25 24 26 24 32
++22 25 24 22 25 24 22 23 31 22 25 24 22 23 31 22 25 24 25 30 29 22 23 31
++25 30 29 26 24 32 30 30 34 26 30 28 30 30 34 30 30 34 31 35 35 31 35 35
++36 35 37 31 35 35 36 35 37 42 38 42 36 35 37 47 39 42 47 47 21 47 39 42
++53 35 37 47 44 42 55 39 37 55 39 37 47 44 42 55 39 37 47 44 42 47 44 42
++47 44 42 47 44 42 51 49 42 47 44 42 47 44 42 47 44 42 42 41 42 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++31 35 35 30 30 34 30 30 34 25 30 29 26 24 32 33 30 30 26 30 28 26 24 32
++33 30 30 23 20 24 33 30 30 22 25 24 26 24 32 26 24 32 22 25 24 26 24 32
++33 30 30 26 24 32 33 30 30 26 24 32 33 30 30 26 24 32 26 24 32 26 30 28
++33 30 30 33 30 30 26 30 28 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 52 30 35 36 35 37 33 30 30 52 30 35 36 35 37 53 35 37
++36 35 37 53 35 37 36 35 37 52 30 35 33 30 30 33 30 30 33 30 30 36 35 37
++33 30 30 33 30 30 33 30 30 23 20 24 26 25 15 22 25 24 33 30 30 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24
++23 20 24 26 30 28 23 20 24 26 30 28 26 24 32 22 25 24 33 30 30 26 30 28
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 32 33 30 32 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 34 40 43 42 41 42 43 42 50 43 42 50 45 57 61
++57 43 64 45 57 61 46 59 71 63 59 71 59 69 70 60 63 87 59 69 70 60 63 87
++59 69 70 60 63 87 59 69 70 60 63 87 63 59 71 54 57 61 54 57 61 54 57 61
++54 57 61 45 57 61 48 44 48 45 57 61 48 50 48 45 57 61 45 57 61 54 57 61
++45 57 61 54 57 61 54 57 61 54 57 61 54 57 61 63 59 71 63 59 71 46 59 71
++
++13 4 7 17 12 17 15 17 7 17 12 17 22 24 13 23 18 22 22 24 13 23 18 22
++26 25 15 23 20 24 26 25 15 33 30 30 26 25 15 23 20 24 34 30 15 23 20 24
++34 30 15 23 20 24 34 30 15 23 20 24 26 25 15 23 18 22 26 25 15 23 18 22
++23 18 22 26 25 15 23 18 22 22 24 13 23 18 22 23 18 22 23 18 22 14 16 17
++26 12 13 17 12 17 17 12 17 17 12 17 17 12 17 17 12 17 14 16 17 13 4 7
++17 12 17 7 12 13 7 12 13 7 12 13 7 10 17 7 12 13 17 12 17 13 4 7
++7 12 13 7 10 17 7 12 13 7 10 17 13 4 7 7 10 17 7 12 13 13 4 7
++7 10 17 7 10 17 7 10 17 17 12 17 7 10 17 7 10 17 7 10 17 13 4 7
++7 10 17 7 12 13 7 12 13 7 10 17 14 16 17 12 18 20 12 18 20 12 18 20
++12 18 20 12 18 30 12 18 20 12 18 20 14 16 17 12 18 20 23 20 24 23 20 24
++12 18 30 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24
++26 30 28 33 30 32 33 30 30 33 30 30 53 35 37 36 35 37 47 39 42 47 44 42
++51 49 42 53 46 48 62 47 47 63 55 51 63 55 51 65 55 54 65 55 54 65 57 61
++75 63 62 75 63 62 75 72 67 88 66 70 88 66 70 88 66 70 88 73 62 88 66 70
++88 66 70 88 73 62 88 66 70 88 66 70 88 83 74 88 66 70 88 66 70 88 83 74
++88 66 70 88 83 74 88 69 84 88 83 74 88 83 74 75 81 76 88 66 70 75 72 67
++75 72 67 75 72 67 63 59 71 65 63 61 59 69 70 65 63 61 59 57 61 54 57 61
++54 57 61 54 57 61 45 57 61 48 50 48 43 55 48 43 42 50 42 41 42 33 39 38
++33 39 38 31 35 35 28 30 35 30 30 34 28 30 35 28 30 35 25 30 29 30 30 34
++26 30 28 30 30 34 26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 23 20 24
++26 30 28 23 20 24 22 25 24 23 20 24 22 25 24 22 23 31 22 23 31 25 30 29
++23 30 35 28 30 35 28 35 38 34 40 43 34 40 43 37 35 43 43 42 50 35 47 50
++32 40 58 43 42 50 35 47 50 45 57 61 32 40 58 35 47 50 45 57 61 35 47 50
++32 40 58 43 42 50 43 42 50 43 42 50 45 57 61 43 42 50 45 57 61 43 42 50
++32 40 58 43 42 50 43 42 50 37 35 43 34 40 43 37 35 43 24 30 43 28 30 35
++23 30 35 22 23 31 22 25 24 22 25 24 12 18 30 22 25 24 22 25 24 15 22 17
++22 25 24 22 25 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24
++22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 23 18 22 33 30 30 23 20 24
++26 30 28 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 32
++32 39 24 33 30 30 36 35 37 36 35 37 33 30 30 36 35 37 36 35 37 33 30 30
++33 30 30 33 30 30 36 35 37 33 30 30 33 30 30 36 35 37 33 30 30 36 35 37
++36 35 37 53 35 37 36 35 37 32 39 24 52 30 35 36 35 37 36 35 37 53 35 37
++32 39 24 52 30 35 36 35 37 36 35 37 36 35 37 53 35 37 36 35 37 47 47 21
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 32 39 24 36 35 37 36 35 37
++36 35 37 52 30 35 36 35 37 33 30 30 36 35 37 36 35 37 36 35 37 36 35 37
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 26 24 32 33 30 30 23 20 24
++33 30 30 33 30 30 33 30 30 33 30 30 55 39 18 75 56 53 117 112 45 120 63 71
++117 99 86 117 112 45 117 114 76 168 102 88 168 102 88 177 171 115 168 102 88 168 146 127
++157 148 53 163 117 123 157 148 53 138 126 108 176 103 41 117 99 86 117 112 45 168 102 88
++117 112 45 167 63 71 117 112 45 117 114 76 168 102 88 168 102 88 168 146 127 168 102 88
++177 171 115 168 102 88 146 150 115 168 102 88 168 146 127 146 150 115 168 102 88 168 146 127
++168 146 127 168 146 127 138 126 108 138 126 108 138 126 108 157 148 53 138 126 108 168 102 88
++168 102 88 168 102 88 168 102 88 163 117 123 195 113 123 168 146 127 195 113 123 168 146 127
++201 146 124 201 146 124 201 146 124 138 102 108 76 44 53 65 55 54 145 140 145 201 216 228
++240 251 247 240 251 247 235 238 247 240 251 247 231 239 247 240 251 247 240 251 247 240 251 247
++231 239 247 240 251 247 231 239 247 240 251 247 231 239 247 240 251 247 231 239 247 221 238 247
++221 238 247 208 221 247 221 238 247 208 221 247 208 221 247 208 221 247 208 221 247 208 221 247
++208 221 247 208 221 247 208 221 247 208 221 247 226 221 247 201 216 228 226 221 247 208 221 247
++232 215 228 232 215 228 208 215 180 197 171 123 168 146 127 168 102 88 168 102 88 201 146 124
++168 146 127 177 171 115 201 146 124 177 171 115 201 146 124 168 146 127 201 146 124 197 171 123
++201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 177 171 115 201 146 124 197 171 123
++177 169 143 201 146 124 177 171 115 201 146 124 168 146 127 201 146 124 168 146 127 197 171 123
++201 146 124 168 146 127 201 146 124 168 146 127 168 102 88 138 102 108 168 102 88 138 102 108
++117 99 86 120 63 71 88 44 51 88 73 62 101 83 74 101 83 74 63 55 51 52 30 35
++33 30 30 36 35 37 36 35 37 33 30 36 31 35 35 30 30 34 26 30 28 28 30 35
++25 30 29 28 30 35 28 30 35 28 30 35 23 30 35 30 30 34 30 30 34 30 30 34
++28 30 35 28 30 35 28 35 38 30 30 34 31 35 35 33 30 36 31 35 35 30 30 34
++31 35 35 30 30 34 31 35 35 30 30 34 33 30 32 31 35 35 30 30 34 30 30 34
++31 35 35 36 35 37 36 35 37 30 30 34 33 30 32 31 35 35 30 30 34 33 30 32
++31 35 35 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 42 38 42
++42 38 42 42 38 42 42 38 42 42 38 42 42 38 42 47 44 42 42 41 42 42 41 42
++36 35 37 42 41 42 42 41 42 42 41 42 42 38 42 42 38 42 36 35 37 42 38 42
++42 41 42 36 35 37 42 41 42 42 41 42 42 41 42 42 41 42 42 47 42 48 44 48
++43 42 50 48 50 48 48 44 48 54 57 61 53 46 48 54 57 61 54 57 61 54 57 61
++54 57 61 63 59 71 54 57 61 63 59 71 54 57 61 63 59 71 54 57 61 54 57 61
++54 57 61 54 57 61 54 57 61 45 57 61 46 59 71 43 42 50 45 57 61 43 42 50
++45 57 61 35 47 50 43 42 50 32 40 58 35 47 50 34 40 43 34 40 43 37 35 43
++28 35 38 31 35 35 28 35 38 30 30 34 30 30 34 30 30 34 33 30 32 31 35 35
++33 30 32 33 30 36 31 35 35 33 30 36 36 35 37 31 35 35 33 30 36 31 35 35
++36 35 37 33 30 32 31 35 35 30 30 34 33 30 32 30 30 34 33 30 32 30 30 34
++30 30 34 30 30 34 30 30 34 26 30 28 30 30 34 33 30 30 26 30 28 26 24 32
++33 30 30 26 30 28 33 30 30 26 24 32 26 30 28 33 30 30 26 24 32 33 30 30
++23 20 24 26 24 32 26 24 32 33 30 30 33 30 30 23 20 24 33 30 30 26 24 32
++33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 26 25 15 26 24 32 34 30 15
++26 24 32 23 20 24 23 20 24 26 30 28 23 20 24 23 20 24 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 26 24 32 23 20 24
++26 24 32 23 20 24 23 20 24 22 25 24 22 23 31 23 20 24 22 25 24 26 24 32
++22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 22 23 31 22 25 24 22 25 24
++25 30 29 26 30 28 26 30 28 26 30 28 30 30 34 30 30 34 33 30 36 31 35 35
++33 39 38 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 42 38 42
++47 47 21 53 35 37 47 39 42 55 39 37 47 39 42 55 39 37 47 44 42 55 39 37
++47 44 42 55 39 37 47 44 42 47 44 42 47 44 42 47 39 42 47 39 42 42 38 42
++42 41 42 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 30 30 34 28 30 35 28 30 35 33 30 30 26 24 32 26 30 28 26 24 32
++22 25 24 26 24 32 26 24 32 33 30 30 23 20 24 33 30 30 26 24 32 26 30 28
++23 20 24 33 30 30 26 24 32 33 30 30 23 20 24 26 30 28 26 30 28 33 30 30
++26 24 32 33 30 30 33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 36 35 37 36 35 37 36 35 37 52 30 35 36 35 37 52 30 35 36 35 37
++36 35 37 52 30 35 36 35 37 36 35 37 52 30 35 32 39 24 36 35 37 33 30 30
++33 30 30 33 30 30 33 30 30 26 30 28 33 30 30 26 25 15 23 20 24 26 24 32
++23 20 24 22 25 24 23 20 24 15 22 17 23 20 24 23 18 22 23 20 24 22 25 24
++26 24 32 23 20 24 23 20 24 26 24 32 23 20 24 33 30 30 26 30 28 33 30 30
++26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 33 30 32 33 30 32
++36 35 37 36 35 37 34 40 43 42 41 42 35 47 50 43 42 50 35 47 50 57 43 64
++45 57 61 45 57 61 54 57 61 46 59 71 46 59 71 59 69 70 60 63 87 46 59 71
++60 63 87 59 69 70 60 63 87 59 69 70 63 59 71 59 69 70 63 59 71 54 57 61
++57 43 64 45 57 61 48 44 48 45 57 61 48 50 48 45 57 61 53 46 48 45 57 61
++54 57 61 45 57 61 57 43 64 54 57 61 54 57 61 54 57 61 46 59 71 54 57 61
++
++14 16 17 15 17 7 14 16 17 22 24 13 17 12 17 22 24 13 23 18 22 26 25 15
++23 18 22 26 25 15 33 30 30 28 13 18 26 25 15 33 30 30 26 25 15 33 30 30
++23 20 24 34 30 15 23 20 24 33 30 30 26 25 15 23 20 24 23 20 24 26 25 15
++23 20 24 23 18 22 23 18 22 26 12 13 23 18 22 22 24 13 23 18 22 17 12 17
++17 12 17 17 12 17 23 10 10 17 12 17 17 12 17 17 12 17 7 12 13 17 12 17
++7 12 13 17 12 17 7 12 13 17 12 17 17 12 17 7 10 17 7 10 17 7 10 17
++17 12 17 7 12 13 13 4 7 7 10 17 7 12 13 17 12 17 7 10 17 7 10 17
++17 12 17 13 4 7 7 10 17 13 4 7 7 12 13 17 12 17 7 12 13 7 10 17
++17 12 17 13 4 7 7 10 17 7 12 13 17 12 17 12 18 20 14 16 17 12 18 20
++23 20 24 12 18 20 23 18 22 14 16 17 14 16 17 23 18 22 12 18 20 23 20 24
++23 20 24 22 25 24 22 25 24 15 22 17 23 18 22 22 25 24 22 25 24 33 30 30
++33 30 30 33 30 32 36 35 37 36 35 37 42 41 42 47 44 42 47 44 42 51 49 42
++51 49 42 62 47 47 59 55 55 63 55 51 59 55 55 65 63 61 65 63 61 75 63 62
++75 63 62 75 72 67 88 66 70 75 72 67 88 83 74 88 66 70 88 66 70 88 66 70
++88 66 70 88 66 70 88 66 70 88 66 70 88 66 70 88 66 70 88 83 74 88 66 70
++88 83 74 88 69 84 88 83 74 88 69 84 75 81 76 88 66 70 75 72 67 75 64 82
++75 72 67 63 59 71 75 72 67 65 63 61 59 57 61 53 63 61 54 57 61 53 63 61
++54 57 61 54 57 61 43 55 48 48 50 48 43 42 50 42 47 42 35 46 43 37 35 43
++33 39 38 31 35 35 30 30 34 26 30 28 30 30 34 26 30 28 26 24 32 26 30 28
++30 30 34 26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 26 24 32 26 30 28
++26 24 32 22 25 24 22 25 24 22 25 24 26 30 28 22 25 24 25 30 29 26 24 32
++28 30 35 28 35 38 28 35 38 37 35 43 29 34 50 43 42 50 32 40 58 43 42 50
++43 42 50 32 40 58 43 42 50 32 40 58 43 42 50 45 57 61 43 42 50 45 57 61
++43 42 50 45 57 61 32 40 58 45 57 61 43 42 50 32 40 58 35 47 50 43 42 50
++43 42 50 35 47 50 43 42 50 35 47 50 37 35 43 34 40 43 28 35 38 28 30 35
++23 30 35 23 30 35 25 30 29 22 23 31 22 25 24 22 25 24 12 18 30 22 25 24
++22 25 24 23 20 24 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 26 24 32
++22 25 24 26 24 32 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 33 30 30 23 20 24 33 30 30 23 20 24 22 25 24 33 30 30
++26 24 32 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 36 35 37 33 30 30 52 30 35 32 39 24 52 30 35 32 39 24 36 35 37
++52 30 35 33 30 30 33 30 30 36 35 37 33 30 30 52 30 35 32 39 24 52 30 35
++32 39 24 36 35 37 36 35 37 52 30 35 36 35 37 32 39 24 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 52 30 35 36 35 37 36 35 37 36 35 37 36 35 37
++53 35 37 36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 53 35 37 36 35 37
++47 47 21 36 35 37 33 30 30 53 35 37 33 30 30 52 30 35 32 39 24 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 26 25 15 33 30 30 33 30 30
++33 30 30 23 20 24 33 30 30 33 30 30 33 30 30 75 56 53 101 83 74 117 114 76
++176 103 41 120 63 71 168 102 88 157 148 53 168 102 88 168 102 88 157 148 53 168 102 88
++163 117 123 168 102 88 168 146 127 168 102 88 117 114 76 120 63 71 117 112 45 120 63 71
++117 112 45 117 99 86 167 63 71 117 114 76 168 102 88 117 127 86 168 102 88 146 150 115
++168 102 88 177 171 115 168 146 127 157 148 53 168 146 127 168 102 88 177 171 115 146 150 115
++168 102 88 146 150 115 168 102 88 168 102 88 138 126 108 168 102 88 168 102 88 117 114 76
++117 114 76 117 99 86 117 99 86 168 102 88 163 117 123 168 146 127 201 146 124 217 168 156
++222 171 182 222 171 182 166 156 164 138 102 108 88 73 62 111 119 127 225 222 201 246 237 247
++251 251 247 240 251 247 240 251 247 240 251 247 240 251 247 235 238 247 240 251 247 231 239 247
++240 251 247 240 251 247 240 251 247 240 251 247 231 239 247 221 238 247 221 238 247 208 221 247
++208 221 247 208 221 247 226 221 247 208 221 247 221 238 247 208 221 247 226 221 247 208 221 247
++226 221 247 201 216 228 226 221 247 208 221 247 201 216 228 221 238 247 208 221 247 232 215 228
++221 238 247 221 238 247 232 215 228 225 222 201 189 165 168 146 150 115 168 146 127 146 150 115
++201 146 124 168 146 127 201 146 124 201 146 124 177 171 115 201 146 124 197 171 123 177 169 143
++197 171 123 217 168 156 197 171 123 177 169 143 201 146 124 177 169 143 201 146 124 177 169 143
++201 146 124 177 169 143 201 146 124 168 146 127 168 146 127 201 146 124 168 146 127 201 146 124
++168 146 127 201 146 124 168 146 127 168 146 127 163 117 123 201 146 124 168 146 127 201 146 124
++163 117 123 138 126 108 117 99 86 117 99 86 117 99 86 88 66 70 53 35 17 33 30 30
++33 30 30 47 39 42 33 30 32 33 30 36 36 35 37 30 30 34 30 30 34 28 30 35
++26 24 32 25 30 29 23 30 35 25 30 29 23 30 35 30 30 34 30 30 34 28 30 35
++28 30 35 28 30 35 28 30 35 31 35 35 33 30 36 31 35 35 30 30 34 33 30 36
++31 35 35 36 35 37 33 30 36 30 30 34 30 30 34 30 30 34 33 30 32 33 30 32
++30 30 34 31 35 35 33 30 36 30 30 34 30 30 34 33 30 32 30 30 34 31 35 35
++33 30 36 36 35 37 31 35 35 36 35 37 36 35 37 36 35 37 42 38 42 42 38 42
++42 38 42 36 35 37 42 41 42 42 38 42 42 38 42 42 38 42 36 35 37 47 47 21
++42 38 42 42 41 42 53 35 37 36 35 37 36 35 37 36 35 37 53 35 37 36 35 37
++42 41 42 36 35 37 42 41 42 36 35 37 42 41 42 42 41 42 43 42 50 48 44 48
++48 50 48 48 50 48 48 50 48 54 57 61 54 57 61 54 57 61 54 57 61 59 57 61
++59 57 61 54 57 61 63 59 71 54 57 61 54 57 61 54 57 61 54 57 61 63 59 71
++54 57 61 63 59 71 46 59 71 54 57 61 45 57 61 57 43 64 45 57 61 32 40 58
++35 47 50 43 42 50 35 47 50 35 47 50 37 35 43 34 40 43 37 35 43 34 40 43
++28 35 38 33 30 36 28 30 35 30 30 34 28 30 35 28 30 35 30 30 34 30 30 34
++30 30 34 33 30 32 30 30 34 36 35 37 31 35 35 36 35 37 31 35 35 33 30 32
++30 30 34 30 30 34 33 30 32 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34
++30 30 34 26 30 28 30 30 34 26 30 28 30 30 34 26 30 28 26 24 32 33 30 30
++30 30 34 26 24 32 26 30 28 33 30 30 26 24 32 23 20 24 33 30 30 23 20 24
++33 30 30 33 30 30 33 30 30 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30
++26 24 32 33 30 30 33 30 30 26 30 28 26 24 32 33 30 30 23 20 24 26 24 32
++22 25 24 26 24 32 23 20 24 23 20 24 26 24 32 33 30 30 23 20 24 23 20 24
++23 20 24 23 20 24 26 24 32 23 20 24 22 25 24 23 20 24 26 30 28 23 20 24
++26 24 32 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 26 24 32 22 25 24
++26 24 32 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24
++23 20 24 22 25 24 22 25 24 12 18 20 22 25 24 22 25 24 22 25 24 23 30 35
++26 24 32 26 30 28 26 24 32 30 30 34 26 30 28 33 30 32 31 35 35 36 35 37
++36 35 37 36 35 37 33 39 38 36 35 37 47 47 21 42 38 42 53 35 37 42 38 42
++53 35 37 42 38 42 53 35 37 42 41 42 55 39 37 47 39 42 55 39 37 42 47 42
++47 44 42 47 44 42 47 44 42 55 39 37 47 44 42 42 41 42 47 44 42 36 35 37
++36 35 37 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 33 30 36 31 35 35 33 30 36 30 30 34 33 30 30 26 24 32 22 25 24
++33 30 30 26 24 32 26 30 28 26 24 32 26 30 28 23 20 24 33 30 30 23 20 24
++33 30 30 26 24 32 26 30 28 33 30 30 26 24 32 33 30 30 26 24 32 26 30 28
++33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 52 30 35
++33 30 30 36 35 37 47 47 21 36 35 37 52 30 35 32 39 24 52 30 35 33 30 30
++53 35 37 36 35 37 32 39 24 52 30 35 31 35 35 36 35 37 52 30 35 33 30 30
++33 30 30 33 30 30 34 30 15 33 30 30 22 25 24 26 30 28 22 25 24 23 20 24
++23 20 24 23 20 24 22 25 24 23 20 24 23 18 22 23 18 22 23 20 24 23 20 24
++23 20 24 22 25 24 26 24 32 22 25 24 33 30 30 26 24 32 26 30 28 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 33 30 30 33 30 32 36 35 37
++36 35 37 36 35 37 42 41 42 42 41 42 42 47 42 43 42 50 45 57 61 43 42 50
++45 57 61 54 57 61 45 57 61 63 59 71 59 69 70 60 63 87 59 69 70 60 63 87
++59 69 70 60 63 87 59 69 70 60 63 87 59 69 70 63 59 71 59 69 70 46 59 71
++54 57 61 54 57 61 54 57 61 48 50 48 45 57 61 48 50 48 45 57 61 57 43 64
++45 57 61 45 57 61 45 57 61 48 50 48 45 57 61 54 57 61 54 57 61 63 59 71
++
++15 17 7 17 12 17 22 24 13 17 12 17 22 24 13 23 18 22 26 25 15 23 20 24
++26 25 15 23 20 24 34 30 15 23 20 24 34 30 15 23 20 24 34 30 15 23 20 24
++34 30 15 23 20 24 26 25 15 23 20 24 26 25 15 23 20 24 34 30 15 23 20 24
++23 20 24 26 25 15 23 18 22 22 24 13 23 18 22 17 12 17 17 12 17 17 12 17
++15 17 7 17 12 17 14 16 17 17 12 17 17 12 17 17 12 17 17 12 17 7 12 13
++17 12 17 7 12 13 17 12 17 7 10 17 7 12 13 17 12 17 7 12 13 17 12 17
++7 12 13 7 10 17 7 10 17 17 12 17 7 10 17 13 4 7 7 12 13 13 4 7
++7 10 17 7 12 13 7 10 17 7 12 13 7 10 17 13 4 7 7 10 17 13 4 7
++7 12 13 7 10 17 7 10 17 17 12 17 7 10 17 17 12 17 14 16 17 12 18 20
++23 20 24 12 18 20 23 18 22 15 22 17 23 18 22 15 22 17 22 25 24 23 20 24
++22 25 24 22 25 24 23 18 22 23 20 24 23 20 24 23 20 24 23 20 24 26 30 28
++33 30 30 36 35 37 36 35 37 42 41 42 47 39 42 47 44 42 47 44 42 53 46 48
++55 55 48 55 55 48 59 55 55 65 55 54 65 55 54 65 63 61 75 63 62 75 72 67
++88 66 70 75 72 67 88 66 70 88 83 74 88 66 70 88 83 74 88 66 70 88 66 70
++88 66 70 88 66 70 88 66 70 101 60 73 88 66 70 88 66 70 88 66 70 88 83 74
++88 69 84 88 83 74 88 83 74 88 69 84 88 83 74 88 69 84 75 81 76 88 66 70
++75 72 67 75 72 67 63 59 71 65 63 61 53 63 61 59 57 61 54 57 61 53 63 61
++54 57 61 45 57 61 48 50 48 43 55 48 43 55 48 43 42 50 34 40 43 33 39 38
++36 35 37 31 35 35 33 30 30 30 30 34 26 24 32 26 30 28 30 30 34 30 30 34
++30 30 34 26 30 28 26 30 28 26 24 32 26 30 28 22 25 24 26 30 28 26 24 32
++22 25 24 26 30 28 26 24 32 26 30 28 22 25 24 25 30 29 23 30 35 28 30 35
++28 35 38 34 40 43 34 40 43 34 40 43 34 40 43 35 47 50 43 42 50 43 42 50
++32 40 58 43 42 50 43 42 50 43 42 50 43 42 50 45 57 61 32 40 58 43 42 50
++32 40 58 45 57 61 43 42 50 32 40 58 43 42 50 43 42 50 43 42 50 45 57 61
++43 42 50 32 40 58 43 42 50 43 42 50 34 40 43 29 34 50 28 35 38 28 30 35
++28 35 38 28 30 35 23 30 35 25 30 29 22 23 31 23 20 24 22 25 24 23 20 24
++23 20 24 22 25 24 22 25 24 23 20 24 23 20 24 26 24 32 33 30 30 26 24 32
++33 30 30 22 25 24 26 24 32 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24
++22 25 24 23 20 24 26 24 32 22 25 24 23 20 24 26 24 32 22 25 24 23 20 24
++33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 32 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 33 30 30
++36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 53 35 37 36 35 37 52 30 35
++36 35 37 53 35 37 36 35 37 32 39 24 53 35 37 32 39 24 53 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 53 35 37 36 35 37 36 35 37
++42 38 42 36 35 37 47 47 21 36 35 37 32 39 24 36 35 37 33 30 30 52 30 35
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 32 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 32 28 13 18 34 30 15 47 47 21 120 63 71 117 99 86
++117 99 86 117 112 45 168 102 88 168 102 88 157 148 53 168 102 88 138 126 108 168 102 88
++157 148 53 168 102 88 157 148 53 168 102 88 117 114 76 176 103 41 120 63 71 117 112 45
++120 63 71 168 102 88 117 112 45 168 102 88 117 112 45 117 114 76 168 102 88 157 148 53
++168 146 127 168 146 127 168 102 88 168 146 127 168 102 88 146 150 115 168 146 127 168 102 88
++177 171 115 138 126 108 138 126 108 157 148 53 138 126 108 168 102 88 117 114 76 168 102 88
++167 63 71 117 112 45 120 63 71 120 63 71 120 63 71 120 63 71 117 99 86 168 102 88
++163 117 123 168 146 127 163 117 123 117 99 86 145 140 145 188 180 202 246 237 247 251 251 247
++246 237 247 240 251 247 246 237 247 240 251 247 235 238 247 231 239 247 240 251 247 231 239 247
++240 251 247 240 251 247 240 251 247 221 238 247 221 238 247 221 238 247 208 221 247 221 238 247
++208 221 247 221 238 247 208 221 247 221 238 247 226 221 247 208 221 247 221 238 247 208 221 247
++221 238 247 226 221 247 226 221 247 221 238 247 221 238 247 226 221 247 221 238 247 221 238 247
++226 221 247 221 238 247 231 239 247 221 238 247 225 222 201 188 180 202 177 169 143 168 146 127
++168 146 127 168 102 88 168 146 127 168 146 127 201 146 124 168 146 127 201 146 124 217 168 156
++197 171 123 177 169 143 217 168 156 201 146 124 189 165 168 197 171 123 189 165 168 201 146 124
++177 169 143 201 146 124 201 146 124 201 146 124 168 146 127 201 146 124 201 146 124 168 146 127
++201 146 124 168 146 127 195 113 123 168 146 127 201 146 124 168 146 127 168 146 127 168 146 127
++201 146 124 168 146 127 168 146 127 138 102 108 101 83 74 62 47 47 33 30 30 33 30 32
++36 35 37 36 35 37 36 35 37 33 30 36 33 30 36 33 30 36 30 30 34 23 30 35
++28 30 35 23 30 35 28 30 35 23 30 35 25 30 29 28 30 35 23 30 35 28 30 35
++28 30 35 28 30 35 28 30 35 28 30 35 30 30 34 28 30 35 33 30 36 31 35 35
++30 30 34 33 30 36 33 30 36 33 30 36 30 30 34 31 35 35 30 30 34 31 35 35
++30 30 34 33 30 32 30 30 34 33 30 32 30 30 34 33 30 32 30 30 34 33 30 32
++31 35 35 31 35 35 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++47 39 42 36 35 37 47 39 42 36 35 37 42 38 42 36 35 37 42 38 42 42 38 42
++36 35 37 42 38 42 36 35 37 42 38 42 36 35 37 32 39 24 33 39 38 36 35 37
++36 35 37 42 38 42 36 35 37 33 39 38 42 41 42 42 41 42 42 41 42 43 42 50
++48 44 48 45 57 61 53 46 48 48 50 48 48 50 48 54 57 61 59 57 61 59 57 61
++53 63 61 63 59 71 53 63 61 63 59 71 63 59 71 54 57 61 63 59 71 54 57 61
++63 59 71 54 57 61 54 57 61 54 57 61 32 40 58 45 57 61 43 42 50 45 57 61
++45 57 61 35 47 50 43 42 50 43 42 50 35 47 50 43 42 50 43 42 50 34 40 43
++37 35 43 28 35 38 28 35 38 28 30 35 28 30 35 30 30 34 26 30 28 26 24 32
++26 30 28 26 30 28 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34
++33 30 32 30 30 34 30 30 34 30 30 34 30 30 34 33 30 32 30 30 34 33 30 32
++26 30 28 30 30 34 26 30 28 30 30 34 26 24 32 33 30 30 26 30 28 26 24 32
++26 30 28 26 30 28 33 30 30 26 24 32 33 30 30 26 24 32 33 30 30 26 24 32
++33 30 30 33 30 30 33 30 30 26 24 32 33 30 30 33 30 30 26 24 32 33 30 30
++33 30 30 26 24 32 33 30 30 22 25 24 33 30 30 23 20 24 22 25 24 33 30 30
++23 20 24 33 30 30 23 20 24 26 24 32 23 20 24 23 20 24 23 20 24 22 25 24
++23 20 24 23 20 24 23 20 24 23 20 24 26 30 28 23 20 24 26 24 32 22 25 24
++23 20 24 22 25 24 26 24 32 26 24 32 22 25 24 26 24 32 22 25 24 26 24 32
++22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24
++22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 25 30 29 25 30 29
++26 30 28 26 24 32 26 30 28 26 30 28 30 30 34 33 30 32 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 47 39 42 36 35 37 42 41 42 53 35 37
++47 39 42 47 39 42 47 47 21 53 35 37 42 41 42 55 39 37 47 44 42 55 39 37
++47 44 42 55 39 37 47 44 42 47 44 42 47 44 42 47 47 21 55 39 37 47 44 42
++47 39 42 42 41 42 42 41 42 36 35 37 36 35 37 36 35 37 36 35 37 37 35 43
++36 35 37 36 35 37 33 30 36 33 30 36 33 30 32 26 30 28 26 24 32 33 30 30
++23 20 24 33 30 30 26 24 32 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30
++23 20 24 26 30 28 26 24 32 33 30 30 26 24 32 26 30 28 26 30 28 33 30 30
++26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++52 30 35 33 30 30 33 30 30 52 30 35 32 39 24 53 35 37 33 30 30 36 35 37
++36 35 37 52 30 35 36 35 37 36 35 37 36 35 37 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 26 25 15 33 30 30 23 20 24 26 30 28
++23 20 24 22 25 24 23 20 24 23 20 24 12 18 20 23 18 22 23 20 24 23 20 24
++23 20 24 23 20 24 23 20 24 26 30 28 26 24 32 26 24 32 34 30 15 26 30 28
++33 30 30 32 39 24 33 30 30 33 30 30 32 39 24 33 30 30 33 30 30 33 30 30
++36 35 37 36 35 37 33 39 38 42 41 42 43 42 50 43 42 50 48 44 48 57 43 64
++43 42 50 54 57 61 54 57 61 46 59 71 63 59 71 59 69 70 59 69 70 60 63 87
++59 69 70 60 63 87 75 64 82 60 81 83 75 64 82 60 63 87 59 69 70 63 59 71
++63 59 71 59 57 61 54 57 61 54 57 61 48 50 48 45 57 61 48 50 48 48 50 48
++48 50 48 54 57 61 53 46 48 45 57 61 53 46 48 45 57 61 54 57 61 54 57 61
++
++14 16 17 15 17 7 22 24 13 22 24 13 23 18 22 22 24 13 23 18 22 26 25 15
++23 20 24 34 30 15 33 30 30 23 20 24 33 30 30 28 13 18 33 30 30 34 30 15
++26 24 32 34 30 15 26 24 32 26 25 15 22 25 24 26 25 15 23 20 24 28 13 18
++34 30 15 23 18 22 23 18 22 22 24 13 17 12 17 23 18 22 17 12 17 26 12 13
++14 16 17 17 12 17 17 12 17 17 12 17 17 12 17 7 10 17 17 12 17 7 10 17
++13 4 7 7 10 17 17 12 17 13 4 7 7 10 17 17 12 17 7 12 13 7 10 17
++7 12 13 17 12 17 7 12 13 13 4 7 7 10 17 7 12 13 7 10 17 7 12 13
++17 12 17 7 10 17 13 4 7 7 10 17 17 12 17 7 10 17 7 12 13 7 10 17
++7 10 17 13 4 7 7 10 17 17 12 17 7 10 17 14 16 17 17 12 17 12 18 20
++23 18 22 12 18 20 23 20 24 15 22 17 22 25 24 23 20 24 23 20 24 23 20 24
++22 25 24 23 20 24 23 20 24 15 22 17 23 20 24 22 25 24 33 30 30 26 24 32
++33 30 30 36 35 37 36 35 37 55 39 37 47 44 42 51 49 42 51 49 42 60 49 42
++55 55 48 65 55 54 65 55 54 65 63 61 65 63 61 75 63 62 75 72 67 75 63 62
++75 72 67 88 66 70 88 83 74 88 69 84 88 83 74 88 66 70 88 66 70 88 66 70
++88 66 70 101 60 73 88 66 70 88 66 70 88 66 70 88 83 74 88 66 70 88 69 84
++88 83 74 88 69 84 88 83 74 88 83 74 88 69 84 88 83 74 88 69 84 75 81 76
++75 64 82 75 72 67 75 63 62 65 63 61 53 63 61 59 57 61 53 63 61 54 57 61
++53 63 61 52 55 48 45 57 61 43 42 50 42 47 42 43 42 50 34 40 43 33 39 38
++36 35 37 31 35 35 31 35 35 26 30 28 25 30 29 26 24 32 26 30 28 30 30 34
++30 30 34 26 30 28 26 24 32 33 30 30 25 30 29 26 24 32 26 30 28 26 30 28
++26 24 32 26 30 28 22 25 24 26 30 28 26 30 28 26 30 28 28 30 35 28 30 35
++37 35 43 34 40 43 34 40 43 29 34 50 34 40 43 43 42 50 32 40 58 45 57 61
++43 42 50 32 40 58 45 57 61 32 40 58 43 42 50 32 40 58 57 43 64 45 57 61
++43 42 50 45 57 61 32 40 58 43 42 50 35 47 50 43 42 50 45 57 61 43 42 50
++43 42 50 43 42 50 43 42 50 35 47 50 43 42 50 34 40 43 37 35 43 28 35 38
++28 30 35 28 30 35 28 30 35 25 30 29 22 23 31 22 25 24 23 20 24 23 20 24
++22 25 24 26 24 32 26 24 32 33 30 30 26 24 32 22 25 24 26 24 32 33 30 30
++23 20 24 33 30 30 23 20 24 23 20 24 26 24 32 23 20 24 23 20 24 23 20 24
++23 20 24 22 25 24 26 24 32 23 20 24 26 30 28 23 20 24 33 30 30 23 20 24
++33 30 30 23 20 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++36 35 37 33 30 30 52 30 35 32 39 24 36 35 37 33 30 30 36 35 37 33 30 30
++33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 33 30 30
++36 35 37 36 35 37 32 39 24 53 35 37 36 35 37 36 35 37 36 35 37 32 39 24
++36 35 37 36 35 37 36 35 37 47 39 42 36 35 37 36 35 37 36 35 37 36 35 37
++53 35 37 32 39 24 53 35 37 36 35 37 52 30 35 36 35 37 36 35 37 53 35 37
++36 35 37 53 35 37 33 30 30 36 35 37 52 30 35 33 30 30 33 30 30 32 39 24
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 28 13 18 55 39 37 88 73 31 117 99 86
++168 102 88 117 99 86 176 103 41 117 99 86 168 102 88 168 102 88 157 148 53 168 102 88
++168 102 88 117 127 86 168 102 88 168 102 88 157 148 53 168 102 88 117 114 76 176 103 41
++117 114 76 168 102 88 117 114 76 168 102 88 117 112 45 168 102 88 117 114 76 168 102 88
++168 102 88 177 171 115 168 102 88 168 146 127 146 150 115 168 102 88 177 171 115 146 150 115
++168 146 127 168 102 88 146 150 115 168 102 88 138 126 108 168 102 88 146 150 115 168 102 88
++117 114 76 120 63 71 102 33 26 76 46 20 76 46 20 88 30 18 88 30 18 88 44 51
++120 63 71 120 63 71 138 126 108 166 156 164 225 222 201 235 238 247 251 251 247 251 251 247
++240 251 247 246 237 247 240 251 247 235 238 247 240 251 247 240 251 247 231 239 247 240 251 247
++240 251 247 231 239 247 221 238 247 226 221 247 208 221 247 208 221 247 226 221 247 221 238 247
++221 238 247 226 221 247 221 238 247 221 238 247 221 238 247 221 238 247 226 221 247 221 238 247
++221 238 247 231 239 247 231 239 247 231 239 247 221 238 247 231 239 247 221 238 247 221 238 247
++231 239 247 231 239 247 231 239 247 231 239 247 235 238 247 233 241 227 225 222 201 189 165 168
++201 146 124 168 146 127 138 126 108 201 146 124 168 146 127 177 171 115 201 146 124 177 169 143
++197 171 123 217 168 156 197 171 123 177 169 143 201 146 124 217 168 156 197 171 123 217 168 156
++197 171 123 217 168 156 177 169 143 201 146 124 201 146 124 177 169 143 201 146 124 177 169 143
++201 146 124 168 146 127 201 146 124 201 146 124 168 146 127 195 113 123 168 146 127 195 113 123
++168 146 127 168 146 127 168 146 127 117 99 86 75 56 53 53 35 37 33 30 30 36 35 37
++36 35 37 36 35 37 36 35 37 33 30 36 36 35 37 33 30 36 30 30 34 28 30 35
++26 24 32 25 30 29 23 30 35 25 30 29 23 30 35 28 30 35 25 30 29 28 30 35
++28 30 35 28 30 35 25 30 29 28 30 35 30 30 34 30 30 34 31 35 35 33 30 36
++30 30 34 31 35 35 33 30 36 30 30 34 33 30 36 30 30 34 31 35 35 33 30 32
++31 35 35 30 30 34 30 30 34 31 35 35 33 30 32 30 30 34 31 35 35 30 30 34
++33 30 36 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 53 35 37 42 38 42
++36 35 37 47 39 42 36 35 37 47 39 42 36 35 37 47 39 42 36 35 37 42 38 42
++36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 42 41 42 36 35 37 36 35 37
++42 38 42 36 35 37 42 41 42 36 35 37 42 41 42 42 41 42 42 41 42 43 42 50
++48 50 48 48 44 48 48 50 48 54 57 61 54 57 61 54 57 61 59 57 61 54 57 61
++63 59 71 59 57 61 63 59 71 59 57 61 53 63 61 63 59 71 54 57 61 63 59 71
++54 57 61 54 57 61 45 57 61 57 43 64 45 57 61 57 43 64 45 57 61 43 42 50
++45 57 61 43 42 50 43 42 50 35 47 50 43 42 50 34 40 43 43 42 50 34 40 43
++34 40 43 31 35 35 33 30 36 28 30 35 28 30 35 28 30 35 26 24 32 33 30 30
++26 30 28 33 30 32 30 30 34 26 30 28 30 30 34 26 30 28 30 30 34 33 30 30
++30 30 34 31 35 35 33 30 32 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34
++30 30 34 26 30 28 30 30 34 26 30 28 30 30 34 26 30 28 26 24 32 33 30 30
++26 30 28 30 30 34 26 24 32 33 30 30 33 30 30 33 30 30 26 24 32 33 30 30
++26 30 28 26 24 32 33 30 30 26 30 28 33 30 30 26 24 32 33 30 30 26 30 28
++33 30 30 22 25 24 33 30 30 33 30 30 22 25 24 33 30 30 33 30 30 23 20 24
++33 30 30 23 18 22 33 30 30 23 20 24 33 30 30 22 25 24 26 24 32 23 20 24
++26 30 28 23 20 24 26 30 28 23 20 24 26 24 32 23 20 24 33 30 30 23 20 24
++33 30 30 26 24 32 22 25 24 22 25 24 26 24 32 22 25 24 26 30 28 22 25 24
++26 24 32 22 25 24 26 24 32 22 25 24 26 24 32 22 25 24 26 24 32 22 25 24
++22 23 31 22 25 24 22 25 24 22 23 31 22 25 24 22 23 31 22 25 24 25 30 29
++25 30 29 26 24 32 26 30 28 30 30 34 30 30 34 36 35 37 36 35 37 36 35 37
++36 35 37 42 41 42 42 41 42 42 41 42 47 39 42 42 41 42 47 39 42 47 39 42
++53 35 37 47 39 42 47 39 42 53 35 37 47 39 42 55 39 37 42 41 42 47 44 42
++47 44 42 47 44 42 55 39 37 47 44 42 47 44 42 47 44 42 42 41 42 47 44 42
++42 41 42 36 35 37 42 41 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++37 35 43 31 35 35 33 30 36 33 30 36 30 30 34 33 30 32 26 24 32 26 30 28
++26 24 32 26 30 28 26 24 32 26 30 28 26 24 32 26 24 32 26 24 32 23 20 24
++33 30 30 26 24 32 33 30 30 23 20 24 33 30 30 26 30 28 23 20 24 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 32 39 24 52 30 35 36 35 37 36 35 37 52 30 35 32 39 24 53 35 37
++52 30 35 36 35 37 36 35 37 52 30 35 33 30 32 33 30 30 52 30 35 33 30 30
++33 30 30 33 30 30 26 25 15 33 30 30 22 25 24 26 30 28 23 20 24 23 20 24
++23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 26 24 32 26 30 28 23 20 24 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 32 33 30 30 31 35 35 31 35 35
++36 35 37 36 35 37 36 35 37 42 47 42 42 41 42 43 42 50 43 42 50 48 50 48
++45 57 61 54 57 61 45 57 61 59 57 61 59 69 70 60 63 87 59 69 70 60 63 87
++60 81 83 75 64 82 60 81 83 75 64 82 60 81 83 75 64 82 59 69 70 59 69 70
++63 59 71 63 59 71 59 57 61 54 57 61 54 57 61 45 57 61 48 50 48 45 57 61
++48 50 48 45 57 61 48 50 48 45 57 61 48 50 48 45 57 61 57 43 64 45 57 61
++
++17 12 17 22 24 13 23 18 22 23 18 22 26 25 15 22 25 24 26 25 15 23 20 24
++26 25 15 33 30 30 23 20 24 34 30 15 33 30 30 34 30 15 33 30 30 28 13 18
++33 30 30 23 20 24 34 30 15 26 25 15 23 20 24 34 30 15 23 20 24 26 25 15
++23 20 24 23 18 22 22 24 13 23 18 22 23 18 22 26 12 13 14 16 17 17 12 17
++17 12 17 15 17 7 17 12 17 17 12 17 13 4 7 17 12 17 7 12 13 17 12 17
++7 10 17 17 12 17 7 10 17 7 10 17 17 12 17 7 10 17 17 12 17 7 10 17
++17 12 17 7 10 17 7 12 13 7 10 17 7 12 13 17 12 17 7 10 17 13 4 7
++7 10 17 13 4 7 7 10 17 7 10 17 7 12 13 13 4 7 7 10 17 13 4 7
++17 12 17 7 12 13 7 10 17 17 12 17 7 10 17 17 12 17 7 10 17 17 12 17
++12 18 20 23 18 22 12 18 20 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 23 18 22 23 18 22 23 20 24 26 25 15 23 20 24 23 20 24 33 30 30
++33 30 32 36 35 37 42 41 42 47 44 42 51 49 42 53 46 48 55 55 48 55 55 48
++63 55 51 59 55 55 65 55 54 65 63 61 75 63 62 65 63 61 75 63 62 75 72 67
++75 72 67 75 72 67 88 66 70 88 83 74 88 66 70 88 83 74 88 66 70 88 66 70
++88 66 70 88 73 62 88 66 70 88 66 70 88 66 70 88 66 70 88 83 74 88 66 70
++88 83 74 88 83 74 88 69 84 88 83 74 88 69 84 88 83 74 75 81 76 88 66 70
++75 72 67 75 72 67 63 59 71 65 63 61 53 63 61 59 55 55 54 57 61 54 57 61
++54 57 61 54 57 61 48 50 48 48 50 48 43 42 50 42 47 42 42 41 42 36 35 37
++31 35 35 31 35 35 33 30 30 30 30 34 26 24 32 26 30 28 26 30 28 30 30 34
++26 30 28 26 24 32 25 30 29 26 30 28 26 24 32 26 30 28 26 24 32 26 30 28
++26 24 32 26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 28 30 35 28 35 38
++33 39 38 29 34 50 34 40 43 34 40 43 43 42 50 32 40 58 43 42 50 43 42 50
++45 57 61 43 42 50 43 42 50 45 57 61 43 42 50 45 57 61 43 42 50 45 57 61
++32 40 58 45 57 61 43 42 50 43 42 50 45 57 61 32 40 58 43 42 50 45 57 61
++45 57 61 43 42 50 43 42 50 43 42 50 43 42 50 34 40 43 37 35 43 33 30 36
++31 35 35 30 30 34 26 30 28 26 24 32 26 30 28 26 24 32 22 25 24 23 20 24
++26 24 32 26 30 28 26 30 28 26 24 32 33 30 30 26 24 32 33 30 30 26 24 32
++33 30 30 26 24 32 26 24 32 22 25 24 26 24 32 26 30 28 26 24 32 22 25 24
++23 20 24 23 20 24 23 20 24 26 24 32 23 20 24 23 20 24 23 20 24 22 25 24
++23 20 24 33 30 30 22 25 24 33 30 30 34 30 15 33 30 30 33 30 30 32 39 24
++52 30 35 33 30 30 33 30 30 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++32 39 24 52 30 35 36 35 37 36 35 37 36 35 37 53 35 37 36 35 37 36 35 37
++53 35 37 36 35 37 53 35 37 36 35 37 36 35 37 53 35 37 36 35 37 53 35 37
++36 35 37 36 35 37 36 35 37 47 39 42 36 35 37 47 39 42 36 35 37 36 35 37
++33 30 30 36 35 37 47 47 21 36 35 37 32 39 24 33 30 30 36 35 37 33 30 32
++53 35 17 33 30 30 33 30 30 33 30 30 33 30 32 33 30 30 33 30 30 33 30 30
++33 30 30 26 24 32 33 30 30 33 30 30 33 30 30 34 30 15 75 56 53 88 73 62
++168 102 88 117 114 76 117 99 86 176 103 41 168 102 88 138 126 108 168 102 88 168 102 88
++117 114 76 168 102 88 157 148 53 138 126 108 168 102 88 168 146 127 168 102 88 138 126 108
++168 102 88 117 114 76 168 102 88 117 114 76 168 102 88 117 112 45 117 99 86 157 148 53
++138 126 108 168 102 88 168 146 127 177 171 115 177 171 115 168 102 88 146 150 115 168 102 88
++168 146 127 168 146 127 157 148 53 163 117 123 157 148 53 138 126 108 163 117 123 138 126 108
++168 102 88 138 102 108 101 83 74 62 47 47 52 30 35 53 35 37 75 63 62 88 66 70
++117 99 86 145 140 145 189 165 168 232 215 228 235 238 247 251 251 247 240 251 247 240 251 247
++240 251 247 240 251 247 235 238 247 240 251 247 240 251 247 240 251 247 240 251 247 231 239 247
++221 238 247 226 221 247 221 238 247 208 221 247 221 238 247 221 238 247 221 238 247 221 238 247
++231 239 247 221 238 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 235 238 247
++235 238 247 235 238 247 235 238 247 235 238 247 240 251 247 240 251 247 235 238 247 240 251 247
++235 238 247 231 239 247 231 239 247 231 239 247 231 239 247 235 238 247 235 238 247 233 241 227
++225 222 201 189 165 168 168 146 127 146 150 115 163 117 123 168 146 127 168 146 127 201 146 124
++177 169 143 201 146 124 177 169 143 201 146 124 197 171 123 217 168 156 177 169 143 217 168 156
++177 169 143 217 168 156 201 146 124 177 169 143 177 169 143 201 146 124 168 146 127 201 146 124
++168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 201 146 124 163 117 123 163 117 123
++168 146 127 163 117 123 138 102 108 101 83 74 55 39 37 33 30 30 36 35 37 42 38 42
++36 35 37 36 35 37 33 30 36 36 35 37 33 30 36 33 30 36 30 30 34 28 30 35
++23 30 35 26 24 32 23 30 35 25 30 29 23 30 35 25 30 29 23 30 35 25 30 29
++23 30 35 25 30 29 28 30 35 28 30 35 30 30 34 30 30 34 30 30 34 30 30 34
++28 30 35 33 30 36 33 30 36 33 30 36 30 30 34 30 30 34 33 30 32 30 30 34
++30 30 34 30 30 34 33 30 32 33 30 32 30 30 34 30 30 34 30 30 34 33 30 32
++31 35 35 36 35 37 33 30 36 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 42 38 42 47 39 42 42 38 42 36 35 37 53 35 37 36 35 37
++42 38 42 36 35 37 36 35 37 53 35 37 36 35 37 36 35 37 47 47 21 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 42 41 42 42 41 42 42 41 42 42 41 42
++48 44 48 48 50 48 48 50 48 48 50 48 57 43 51 54 57 61 59 57 61 59 57 61
++63 59 71 59 57 61 59 69 70 59 57 61 59 57 61 63 59 71 54 57 61 54 57 61
++63 59 71 54 57 61 54 57 61 45 57 61 54 57 61 45 57 61 45 57 61 45 57 61
++43 42 50 45 57 61 43 42 50 45 57 61 35 47 50 43 42 50 43 42 50 34 40 43
++34 40 43 37 35 43 28 35 38 30 30 34 30 30 34 30 30 34 30 30 34 26 30 28
++30 30 34 26 24 32 26 30 28 30 30 34 26 30 28 33 30 32 26 30 28 30 30 34
++30 30 34 30 30 34 30 30 34 30 30 34 26 30 28 30 30 34 26 30 28 33 30 30
++30 30 34 30 30 34 26 30 28 30 30 34 26 24 32 33 30 30 26 30 28 30 30 34
++28 30 35 30 30 34 33 30 30 30 30 34 30 30 34 33 30 32 33 30 32 26 24 32
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++26 24 32 33 30 30 33 30 30 26 24 32 33 30 30 26 30 28 22 25 24 26 30 28
++26 24 32 26 24 32 23 20 24 26 24 32 23 20 24 26 24 32 23 20 24 26 24 32
++23 20 24 26 24 32 23 20 24 33 30 30 22 25 24 26 24 32 23 20 24 33 30 30
++23 20 24 26 30 28 26 24 32 33 30 30 26 30 28 33 30 30 22 25 24 26 24 32
++22 25 24 26 24 32 22 25 24 26 24 32 22 25 24 26 24 32 22 25 24 22 25 24
++22 25 24 22 23 31 22 25 24 22 25 24 22 25 24 25 30 29 25 30 29 25 30 29
++25 30 29 30 30 34 30 30 34 33 30 32 31 35 35 36 35 37 36 35 37 36 35 37
++42 41 42 36 35 37 42 41 42 42 41 42 42 41 42 42 41 42 55 39 37 47 44 42
++42 41 42 47 47 21 47 39 42 47 44 42 42 41 42 55 39 37 47 44 42 55 39 37
++47 39 42 47 47 21 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 42 41 42
++42 38 42 42 38 42 42 41 42 36 35 37 36 35 37 36 35 37 37 35 43 37 35 43
++37 35 43 36 35 37 33 30 36 33 30 36 33 30 36 33 30 30 33 30 30 26 24 32
++33 30 30 23 20 24 33 30 30 26 24 32 26 30 28 23 20 24 33 30 30 33 30 30
++23 20 24 26 30 28 26 24 32 33 30 30 26 24 32 33 30 30 33 30 30 26 24 32
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35
++33 30 30 36 35 37 33 30 30 36 35 37 53 35 17 36 35 37 52 30 35 36 35 37
++36 35 37 52 30 35 36 35 37 36 35 37 52 30 35 33 30 30 33 30 30 52 30 35
++33 30 30 33 30 30 33 30 30 23 20 24 33 30 30 26 25 15 33 30 30 23 20 24
++23 20 24 23 18 22 23 20 24 23 18 22 23 20 24 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 26 24 32 33 30 30 26 30 28 26 24 32 33 30 30 33 30 30
++33 30 32 33 30 30 33 30 30 33 30 32 33 30 30 31 35 35 33 30 30 33 30 30
++36 35 37 36 35 37 33 39 38 42 41 42 42 41 42 43 42 50 48 50 48 43 42 50
++57 43 64 48 50 48 45 57 61 54 57 61 46 59 71 59 69 70 60 63 87 59 69 70
++60 63 87 59 69 70 60 63 87 75 81 82 60 63 87 75 64 82 59 69 70 75 64 82
++59 69 70 63 59 71 63 59 71 54 57 61 48 50 48 54 57 61 48 50 48 48 50 48
++57 43 64 48 50 48 48 50 48 48 50 48 43 42 50 48 50 48 48 44 48 54 57 61
++
++15 22 17 23 18 22 22 24 13 26 25 15 23 18 22 26 25 15 23 20 24 34 30 15
++23 20 24 34 30 15 33 30 30 28 13 18 33 30 30 34 30 15 33 30 30 34 30 15
++33 30 30 26 25 15 23 20 24 33 30 30 28 13 18 23 20 24 26 25 15 23 20 24
++23 20 24 26 25 15 23 18 22 23 18 22 22 24 13 17 12 17 17 12 17 23 10 10
++17 12 17 17 12 17 17 12 17 17 12 17 17 12 17 7 10 17 13 4 7 7 10 17
++13 4 7 7 12 13 17 12 17 17 12 17 7 12 13 13 4 7 7 10 17 17 12 17
++7 12 13 17 12 17 7 12 13 7 10 17 7 12 13 13 4 7 7 10 17 7 10 17
++7 12 13 7 10 17 17 12 17 7 12 13 7 10 17 7 10 17 17 12 17 7 10 17
++7 10 17 13 4 7 7 10 17 7 10 17 17 12 17 7 10 17 17 12 17 14 16 17
++17 12 17 12 18 20 23 18 22 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++23 18 22 23 18 22 23 18 22 23 18 22 23 20 24 22 25 24 33 30 30 33 30 30
++33 30 32 36 35 37 42 41 42 47 44 42 53 46 48 55 55 48 53 46 48 63 55 51
++59 55 55 65 55 54 65 63 61 65 63 61 65 63 61 75 73 58 75 72 67 75 72 67
++88 66 70 88 66 70 75 81 76 88 83 74 88 69 84 88 83 74 88 66 70 88 66 70
++75 63 62 88 66 70 75 63 62 88 66 70 88 66 70 88 66 70 88 66 70 88 83 74
++88 66 70 88 83 74 88 69 84 75 81 82 88 83 74 88 69 84 75 72 67 88 66 70
++75 72 67 75 59 67 65 63 61 65 63 61 59 57 61 53 63 61 59 55 55 53 63 61
++52 55 48 48 50 48 48 50 48 48 50 48 43 42 50 42 41 42 42 38 42 33 39 38
++36 35 37 30 30 34 30 30 34 26 30 28 26 24 32 33 30 30 30 30 34 25 30 29
++26 24 32 26 30 28 26 24 32 25 30 29 26 24 32 26 30 28 22 25 24 26 30 28
++22 25 24 22 25 24 26 30 28 26 24 32 26 30 28 26 30 28 30 30 34 28 35 38
++34 40 43 34 40 43 34 40 43 32 40 58 34 40 43 43 42 50 43 42 50 45 57 61
++43 42 50 32 40 58 45 57 61 32 40 58 57 43 64 32 40 58 43 42 50 45 57 61
++43 42 50 32 40 58 45 57 61 43 42 50 43 42 50 45 57 61 43 42 50 43 42 50
++32 40 58 43 42 50 48 50 48 43 42 50 42 41 42 34 40 43 37 35 43 28 35 38
++30 30 34 30 30 34 26 30 28 26 24 32 26 30 28 26 24 32 22 25 24 26 24 32
++26 30 28 33 30 30 33 30 32 33 30 30 26 24 32 33 30 30 33 30 30 30 30 34
++33 30 30 26 24 32 33 30 30 26 24 32 33 30 30 23 20 24 23 20 24 26 24 32
++23 20 24 26 30 28 23 20 24 23 20 24 23 20 24 26 24 32 22 25 24 33 30 30
++22 25 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 32
++36 35 37 33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30
++33 30 32 36 35 37 36 35 37 36 35 37 47 47 21 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 47 47 21 36 35 37 36 35 37 36 35 37 47 47 21 36 35 37
++36 35 37 53 35 37 36 35 37 53 35 37 36 35 37 36 35 37 33 30 30 32 39 24
++52 30 35 33 30 30 33 30 30 36 35 37 36 35 37 33 30 30 36 35 37 33 30 30
++33 30 30 33 30 30 33 30 30 52 30 35 36 35 37 33 30 32 33 30 32 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 28 13 18 33 30 30 55 39 37 101 83 74
++117 114 76 167 63 71 117 114 76 168 102 88 117 114 76 176 103 41 168 102 88 157 148 53
++168 102 88 168 102 88 117 112 45 168 102 88 157 148 53 168 146 127 177 171 115 201 146 124
++146 150 115 168 102 88 157 148 53 138 102 108 168 102 88 117 114 76 168 102 88 168 102 88
++117 114 76 157 148 53 163 117 123 168 102 88 177 171 115 168 146 127 157 148 53 168 146 127
++168 102 88 146 150 115 163 117 123 146 150 115 168 102 88 168 146 127 168 102 88 168 146 127
++168 146 127 168 146 127 138 126 108 138 102 108 111 119 127 119 117 138 150 144 154 166 174 181
++188 180 202 185 202 202 235 238 247 246 237 247 251 251 247 240 251 247 240 251 247 246 237 247
++240 251 247 246 237 247 240 251 247 240 251 247 240 251 247 240 251 247 231 239 247 221 238 247
++226 221 247 221 238 247 208 221 247 221 238 247 231 239 247 231 239 247 231 239 247 235 238 247
++231 239 247 231 239 247 231 239 247 235 238 247 240 251 247 240 251 247 240 251 247 240 251 247
++240 251 247 251 251 247 240 251 247 240 251 247 240 251 247 235 238 247 240 251 247 231 239 247
++240 251 247 231 239 247 240 251 247 221 238 247 221 238 247 231 239 247 231 239 247 240 251 247
++235 238 247 233 241 227 225 222 201 189 165 168 177 169 143 163 117 123 168 146 127 168 146 127
++201 146 124 177 169 143 201 146 124 217 168 156 177 169 143 201 146 124 217 168 156 197 171 123
++217 168 156 197 171 123 189 165 168 201 146 124 201 146 124 168 146 127 168 146 127 201 146 124
++168 146 127 201 146 124 168 146 127 201 146 124 201 146 124 163 117 123 201 146 124 168 102 88
++168 146 127 163 117 123 117 99 86 75 56 53 52 30 35 33 30 30 42 41 42 37 35 43
++37 35 43 37 35 43 33 30 36 33 30 36 37 35 43 28 35 38 28 30 35 28 30 35
++23 30 35 23 30 35 26 24 32 23 30 35 25 30 29 23 30 35 25 30 29 23 30 35
++25 30 29 23 30 35 25 30 29 28 30 35 28 30 35 30 30 34 28 30 35 28 30 35
++30 30 34 30 30 34 33 30 36 31 35 35 33 30 36 30 30 34 31 35 35 30 30 34
++30 30 34 30 30 34 30 30 34 30 30 34 33 30 32 33 30 32 30 30 34 31 35 35
++33 30 36 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 33 30 30 53 35 37
++36 35 37 53 35 37 36 35 37 42 38 42 42 38 42 36 35 37 36 35 37 42 38 42
++36 35 37 36 35 37 47 39 42 36 35 37 36 35 37 53 35 37 36 35 37 42 38 42
++42 41 42 42 38 42 36 35 37 42 41 42 42 41 42 42 41 42 42 41 42 48 44 48
++48 44 48 48 50 48 48 50 48 54 57 61 54 57 61 54 57 61 54 57 61 59 57 61
++59 57 61 59 57 61 59 57 61 54 57 61 54 57 61 54 57 61 46 59 71 54 57 61
++54 57 61 54 57 61 57 43 64 54 57 61 54 57 61 57 43 64 45 57 61 57 43 64
++45 57 61 45 57 61 43 42 50 45 57 61 43 42 50 43 42 50 35 47 50 43 42 50
++37 35 43 28 35 38 28 35 38 33 30 36 28 30 35 30 30 34 30 30 34 26 30 28
++33 30 32 26 30 28 33 30 32 26 30 28 33 30 32 26 24 32 33 30 32 30 30 34
++26 30 28 33 30 30 26 30 28 26 30 28 33 30 30 26 24 32 26 30 28 30 30 34
++30 30 34 26 30 28 30 30 34 26 30 28 30 30 34 26 30 28 26 24 32 30 30 34
++28 30 35 30 30 34 30 30 34 33 30 32 33 30 32 30 30 34 33 30 32 33 30 36
++33 30 32 33 30 30 33 30 30 26 24 32 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 26 30 28 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 22 25 24
++26 24 32 26 24 32 26 24 32 33 30 30 22 25 24 33 30 30 23 20 24 26 30 28
++23 20 24 33 30 30 23 20 24 26 24 32 22 25 24 33 30 30 26 24 32 26 24 32
++26 30 28 26 24 32 33 30 30 22 25 24 26 24 32 22 25 24 26 24 32 22 25 24
++26 30 28 26 30 28 26 30 28 22 25 24 26 24 32 22 25 24 26 24 32 22 25 24
++26 24 32 22 25 24 22 25 24 22 23 31 22 25 24 22 23 31 25 30 29 23 30 35
++25 30 29 30 30 34 30 30 34 31 35 35 33 30 32 36 35 37 36 35 37 33 39 38
++42 41 42 42 41 42 42 47 42 42 41 42 42 47 42 47 44 42 47 44 42 55 39 37
++42 41 42 47 44 42 47 44 42 55 39 37 47 47 21 47 39 42 47 39 42 47 47 21
++42 41 42 47 39 42 42 41 42 47 44 42 47 44 42 47 44 42 53 35 37 36 35 37
++53 35 37 36 35 37 36 35 37 36 35 37 47 47 21 36 35 37 36 35 37 37 35 43
++36 35 37 36 35 37 28 30 35 33 30 36 33 30 36 30 30 34 26 24 32 26 30 28
++26 24 32 33 30 30 23 20 24 33 30 30 26 24 32 26 30 28 26 24 32 23 20 24
++33 30 30 26 24 32 23 20 24 26 24 32 33 30 30 26 30 28 33 30 30 33 30 30
++33 30 30 33 30 32 33 30 30 33 30 30 33 30 30 52 30 35 32 39 24 33 30 30
++32 39 24 52 30 35 32 39 24 52 30 35 36 35 37 52 30 35 36 35 37 52 30 35
++36 35 37 52 30 35 36 35 37 52 30 35 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 49 13 16 33 30 30 33 30 30 23 20 24 33 30 30 23 20 24 23 20 24
++23 20 24 23 18 22 12 18 20 23 18 22 23 20 24 23 20 24 23 20 24 22 25 24
++26 24 32 23 20 24 33 30 30 23 20 24 33 30 30 26 24 32 33 30 32 33 30 32
++33 30 32 33 30 32 33 30 32 33 30 32 33 30 30 33 30 30 32 39 24 33 30 32
++33 30 30 36 35 37 36 35 37 42 41 42 42 41 42 42 47 42 43 42 50 43 42 50
++45 57 61 43 42 50 45 57 61 46 59 71 54 57 61 46 59 71 63 59 71 59 69 70
++59 69 70 60 63 87 75 81 76 60 63 87 60 81 83 59 69 70 60 63 87 59 69 70
++63 59 71 63 59 71 63 59 71 54 57 61 54 57 61 57 43 64 48 50 48 48 50 48
++48 50 48 48 50 48 43 42 50 48 50 48 43 42 50 54 57 61 48 44 48 48 50 48
++
++22 24 13 22 24 13 23 20 24 26 25 15 22 25 24 26 25 15 23 20 24 34 30 15
++23 20 24 33 30 30 23 20 24 34 30 15 33 30 30 33 30 30 28 13 18 33 30 30
++34 30 15 33 30 30 34 30 15 23 20 24 34 30 15 26 25 15 23 20 24 23 20 24
++26 25 15 23 18 22 26 25 15 23 18 22 17 12 17 22 24 13 17 12 17 14 16 17
++17 12 17 15 17 7 17 12 17 7 10 17 17 12 17 17 12 17 7 10 17 17 12 17
++7 10 17 17 12 17 7 10 17 13 4 7 7 10 17 7 12 13 17 12 17 7 10 17
++13 4 7 7 10 17 7 10 17 13 4 7 7 10 17 7 10 17 7 10 17 13 4 7
++17 12 17 7 12 13 7 10 17 13 4 7 7 10 17 13 4 7 7 12 13 17 12 17
++7 10 17 7 12 13 7 10 17 17 12 17 7 10 17 17 12 17 7 10 17 7 10 17
++17 12 17 12 18 20 23 18 22 12 18 20 23 20 24 23 20 24 23 20 24 23 20 24
++23 18 22 23 18 22 22 24 13 23 18 22 23 20 24 23 20 24 22 25 24 33 30 30
++36 35 37 42 38 42 47 39 42 51 49 42 53 46 48 53 46 48 55 55 48 55 55 48
++63 55 51 65 55 54 65 55 54 65 63 61 65 63 61 65 63 61 75 63 62 75 72 67
++75 72 67 75 72 67 88 66 70 88 66 70 88 83 74 88 66 70 88 66 70 88 66 70
++88 66 70 75 63 62 88 66 70 88 66 70 88 66 70 88 66 70 88 66 70 88 66 70
++88 69 84 88 83 74 88 83 74 88 69 84 75 81 76 88 69 84 75 72 67 75 72 67
++75 64 82 75 72 67 75 59 67 65 63 61 53 63 61 59 55 55 54 57 61 54 57 61
++45 57 61 54 57 61 48 50 48 48 50 48 48 44 48 42 41 42 42 41 42 36 35 37
++36 35 37 31 35 35 30 30 34 26 30 28 26 24 32 26 30 28 30 30 34 26 30 28
++30 30 34 26 30 28 26 30 28 26 30 28 26 24 32 25 30 29 26 24 32 22 25 24
++26 24 32 22 25 24 26 24 32 26 30 28 26 24 32 25 30 29 28 30 35 31 35 35
++37 35 43 34 40 43 37 35 43 43 42 50 34 40 43 32 40 58 43 42 50 32 40 58
++43 42 50 45 57 61 43 42 50 43 42 50 45 57 61 43 42 50 45 57 61 32 40 58
++43 42 50 57 43 64 32 40 58 45 57 61 43 42 50 43 42 50 45 57 61 43 42 50
++45 57 61 43 42 50 43 42 50 43 42 50 43 42 50 37 35 43 36 35 37 33 30 36
++30 30 34 33 30 32 26 30 28 33 30 30 26 24 32 26 30 28 26 24 32 33 30 30
++33 30 32 33 30 32 30 30 34 33 30 32 33 30 32 26 24 32 33 30 30 26 24 32
++33 30 30 26 30 28 33 30 30 23 20 24 26 30 28 26 24 32 22 25 24 23 20 24
++26 24 32 23 20 24 33 30 30 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24
++33 30 30 23 20 24 33 30 30 26 25 15 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30 33 30 30
++33 30 32 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 32 32 39 24 52 30 35 36 35 37 42 38 42 36 35 37 55 39 37 36 35 37
++53 35 37 36 35 37 42 38 42 36 35 37 55 39 37 36 35 37 42 38 42 36 35 37
++42 41 42 36 35 37 36 35 37 36 35 37 53 35 37 32 39 24 52 30 35 36 35 37
++33 30 30 33 30 30 33 30 30 33 30 30 32 39 24 52 30 35 33 30 30 36 35 37
++33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 36 35 37 36 35 37 33 30 30
++33 30 30 26 24 32 33 30 30 33 30 30 33 30 30 26 25 15 52 30 35 88 73 31
++168 102 88 117 114 76 168 102 88 117 112 45 168 102 88 168 102 88 138 126 108 168 102 88
++157 148 53 168 102 88 168 102 88 117 114 76 168 102 88 146 150 115 168 102 88 201 146 124
++177 171 115 168 146 127 138 126 108 168 102 88 117 114 76 168 102 88 117 114 76 168 102 88
++117 114 76 168 102 88 157 148 53 168 102 88 146 150 115 168 102 88 138 126 108 168 102 88
++168 146 127 157 148 53 168 146 127 168 146 127 168 146 127 177 171 115 168 146 127 177 169 143
++177 169 143 189 165 168 222 171 182 185 202 202 232 215 228 235 238 247 246 237 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 240 251 247 246 237 247 240 251 247 240 251 247
++246 237 247 240 251 247 240 251 247 240 251 247 231 239 247 221 238 247 221 238 247 226 221 247
++221 238 247 221 238 247 231 239 247 231 239 247 231 239 247 240 251 247 231 239 247 240 251 247
++231 239 247 240 251 247 240 251 247 235 238 247 240 251 247 235 238 247 240 251 247 235 238 247
++240 251 247 240 251 247 246 237 247 240 251 247 240 251 247 235 238 247 231 239 247 231 239 247
++231 239 247 231 239 247 240 251 247 231 239 247 231 239 247 221 238 247 231 239 247 240 251 247
++246 237 247 251 251 247 246 237 247 233 241 227 222 171 182 177 169 143 168 146 127 168 146 127
++201 146 124 177 169 143 201 146 124 177 169 143 197 171 123 177 169 143 201 146 124 177 169 143
++217 168 156 177 169 143 201 146 124 201 146 124 177 169 143 201 146 124 168 146 127 201 146 124
++168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 168 102 88 146 150 115 168 102 88
++163 117 123 168 102 88 117 99 86 60 49 42 55 39 37 36 35 37 42 41 42 37 35 43
++37 35 43 33 30 36 37 35 43 33 30 36 31 35 35 31 35 35 28 30 35 28 30 35
++26 24 32 23 30 35 25 30 29 22 23 31 25 30 29 26 24 32 28 30 35 25 30 29
++23 30 35 25 30 29 28 30 35 28 30 35 28 30 35 30 30 34 30 30 34 30 30 34
++30 30 34 30 30 34 33 30 36 33 30 36 30 30 34 30 30 34 30 30 34 33 30 32
++30 30 34 26 30 28 33 30 30 30 30 34 33 30 32 30 30 34 30 30 34 33 30 32
++31 35 35 31 35 35 36 35 37 36 35 37 36 35 37 53 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 42 38 42 42 38 42 42 38 42 42 38 42 47 39 42
++36 35 37 53 35 37 36 35 37 36 35 37 53 35 37 36 35 37 36 35 37 42 38 42
++36 35 37 42 41 42 36 35 37 33 39 38 42 41 42 42 41 42 42 41 42 42 41 42
++48 50 48 43 42 50 48 44 48 48 50 48 48 50 48 57 43 64 54 57 61 59 57 61
++59 57 61 59 57 61 59 57 61 54 57 61 59 57 61 54 57 61 54 57 61 54 57 61
++54 57 61 54 57 61 54 57 61 54 57 61 46 59 71 54 57 61 45 57 61 45 57 61
++57 43 64 45 57 61 43 42 50 45 57 61 43 42 50 43 42 50 43 42 50 34 40 43
++34 40 43 37 35 43 28 35 38 33 30 36 31 35 35 30 30 34 30 30 34 30 30 34
++30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 26 30 28 30 30 34 30 30 34
++26 30 28 30 30 34 33 30 32 26 30 28 26 24 32 26 30 28 26 30 28 30 30 34
++33 30 30 30 30 34 26 30 28 30 30 34 26 24 32 33 30 30 26 30 28 25 30 29
++30 30 34 30 30 34 30 30 34 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32
++33 30 32 33 30 32 33 30 32 33 30 30 33 30 30 33 30 30 33 30 32 33 30 30
++33 30 30 33 30 30 26 30 28 33 30 30 26 30 28 26 30 28 26 30 28 26 30 28
++33 30 30 26 24 32 22 25 24 26 24 32 23 20 24 26 24 32 22 25 24 26 24 32
++23 20 24 22 25 24 26 24 32 23 20 24 33 30 30 23 20 24 26 30 28 23 20 24
++33 30 30 26 24 32 26 30 28 26 24 32 26 30 28 26 30 28 26 24 32 26 30 28
++26 24 32 23 20 24 33 30 30 23 20 24 26 30 28 22 25 24 26 24 32 22 25 24
++22 25 24 26 24 32 22 25 24 22 25 24 22 25 24 25 30 29 25 30 29 25 30 29
++26 30 28 26 30 28 30 30 34 31 35 35 30 30 34 36 35 37 36 35 37 42 38 42
++36 35 37 42 41 42 42 41 42 42 41 42 42 47 42 55 39 37 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 39 42 55 39 37 47 39 42 42 41 42
++55 39 37 42 41 42 47 39 42 47 39 42 47 47 21 42 41 42 42 41 42 47 47 21
++42 41 42 36 35 37 47 39 42 36 35 37 36 35 37 36 35 37 37 35 43 37 35 43
++37 35 43 33 30 36 31 35 35 33 30 36 33 30 36 33 30 32 33 30 30 33 30 30
++26 24 32 26 30 28 26 24 32 33 30 30 23 20 24 33 30 30 26 24 32 33 30 30
++23 20 24 26 30 28 26 24 32 33 30 30 22 25 24 33 30 30 26 24 32 33 30 30
++33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 32 39 24 52 30 35 36 35 37
++52 30 35 36 35 37 52 30 35 33 30 30 33 30 30 52 30 35 33 30 30 52 30 35
++33 30 30 33 30 30 33 30 30 28 13 18 33 30 30 26 25 15 26 30 28 26 24 32
++23 20 24 23 18 22 23 18 22 23 18 22 23 20 24 23 20 24 23 20 24 26 24 32
++22 25 24 26 24 32 22 25 24 26 24 32 26 24 32 33 30 30 33 30 32 33 30 32
++33 30 32 33 30 32 33 30 30 36 35 37 33 30 30 33 30 30 36 35 37 33 30 30
++36 35 37 32 39 24 36 35 37 42 41 42 42 41 42 42 41 42 43 42 50 43 42 50
++43 42 50 48 50 48 45 57 61 45 57 61 54 57 61 46 59 71 46 59 71 63 59 71
++59 69 70 60 63 87 59 69 70 75 64 82 59 69 70 75 64 82 59 69 70 75 64 82
++59 69 70 63 59 71 59 57 61 54 57 61 54 57 61 54 57 61 48 50 48 45 57 61
++48 50 48 45 57 61 48 50 48 43 42 50 48 44 48 48 44 48 45 57 61 48 50 48
++
++26 25 15 26 25 15 26 25 15 22 25 24 26 25 15 22 25 24 34 30 15 23 20 24
++34 30 15 33 30 30 34 30 15 26 24 32 26 25 15 33 30 30 34 30 15 26 24 32
++28 13 18 33 30 30 23 18 22 26 25 15 23 20 24 26 25 15 23 18 22 26 25 15
++23 18 22 23 18 22 17 12 17 22 24 13 17 12 17 17 12 17 15 17 7 17 12 17
++15 17 7 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13
++13 4 7 7 12 13 17 12 17 7 12 13 7 12 13 13 4 7 7 12 13 7 12 13
++7 12 13 17 12 17 7 12 13 7 10 17 17 12 17 13 4 7 7 10 17 7 12 13
++7 10 17 13 4 7 7 10 17 17 12 17 7 10 17 7 12 13 7 10 17 7 12 13
++13 4 7 7 10 17 7 12 13 7 10 17 13 4 7 7 12 13 7 12 13 17 12 17
++17 12 17 23 18 22 23 18 22 14 16 17 14 16 17 14 16 17 23 18 22 23 18 22
++23 18 22 23 18 22 23 18 22 23 18 22 26 25 15 33 30 30 33 30 30 33 30 30
++36 35 37 47 39 42 47 44 42 53 46 48 53 46 48 59 55 55 53 46 48 59 55 55
++59 55 55 65 57 61 65 63 61 75 56 53 65 63 61 65 63 61 75 63 62 75 72 67
++88 66 70 75 72 67 88 69 84 75 81 69 88 66 70 88 66 70 88 66 70 88 66 70
++75 63 62 88 66 70 88 66 70 88 73 62 88 66 70 88 66 70 88 73 62 75 72 67
++88 83 74 75 72 67 88 83 74 88 83 74 88 69 84 75 81 69 75 81 76 75 72 67
++75 72 67 65 63 61 65 63 61 65 63 61 59 57 61 59 55 55 54 57 61 59 55 55
++54 57 61 48 50 48 43 42 50 43 42 50 43 42 50 42 47 42 34 40 43 36 35 37
++31 35 35 33 30 32 26 30 28 33 30 30 26 30 28 26 30 28 26 24 32 26 30 28
++26 30 28 33 30 30 26 30 28 33 30 30 26 30 28 28 30 35 26 24 32 25 30 29
++26 24 32 25 30 29 22 23 31 22 25 24 25 30 29 28 30 35 28 30 35 31 35 35
++28 35 38 33 39 38 34 40 43 34 40 43 34 40 43 43 42 50 43 42 50 45 57 61
++43 42 50 45 57 61 43 42 50 45 57 61 43 42 50 45 57 61 43 42 50 43 42 50
++35 47 50 35 47 50 43 42 50 35 47 50 32 40 58 43 42 50 43 42 50 43 42 50
++43 42 50 43 42 50 43 42 50 42 41 42 34 40 43 37 35 43 36 35 37 33 30 36
++33 30 32 30 30 34 26 24 32 26 24 32 33 30 30 26 24 32 33 30 30 33 30 32
++30 30 34 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 30 30 34
++33 30 32 30 30 34 26 30 28 33 30 30 26 24 32 33 30 30 22 25 24 22 25 24
++22 25 24 26 24 32 22 25 24 26 24 32 22 25 24 26 24 32 22 25 24 26 30 28
++26 24 32 33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30
++36 35 37 52 30 35 33 30 30 36 35 37 52 30 35 36 35 37 36 35 37 36 35 37
++36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 53 35 37 36 35 37 53 35 37
++36 35 37 53 35 37 32 39 24 52 30 35 33 30 30 36 35 37 33 30 30 33 30 30
++33 30 30 36 35 37 52 30 35 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35
++32 39 24 36 35 37 33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 28 13 18 33 30 30 26 12 13 34 30 15 75 56 53
++117 99 86 168 102 88 168 102 88 168 102 88 157 148 53 168 102 88 157 148 53 168 102 88
++168 102 88 168 102 88 157 148 53 168 102 88 176 103 41 168 102 88 157 148 53 168 146 127
++177 171 115 168 102 88 177 171 115 157 148 53 138 126 108 117 114 76 168 102 88 117 114 76
++168 102 88 117 114 76 168 102 88 138 126 108 157 148 53 168 102 88 117 114 76 117 114 76
++168 102 88 138 126 108 168 146 127 168 102 88 177 171 115 168 146 127 177 169 143 189 165 168
++225 222 201 232 215 228 233 241 227 240 251 247 251 251 247 251 251 247 240 251 247 240 251 247
++240 251 247 235 238 247 240 251 247 235 238 247 240 251 247 240 251 247 246 237 247 240 251 247
++240 251 247 240 251 247 235 238 247 231 239 247 221 238 247 221 238 247 221 238 247 231 239 247
++231 239 247 231 239 247 240 251 247 231 239 247 240 251 247 231 239 247 231 239 247 240 251 247
++231 239 247 231 239 247 231 239 247 240 251 247 235 238 247 240 251 247 235 238 247 235 238 247
++235 238 247 235 238 247 240 251 247 240 251 247 246 237 247 240 251 247 235 238 247 240 251 247
++231 239 247 240 251 247 231 239 247 221 238 247 231 239 247 231 239 247 231 239 247 235 238 247
++240 251 247 251 251 247 251 251 247 251 251 247 246 237 247 225 222 201 189 165 168 177 169 143
++168 146 127 168 146 127 177 169 143 201 146 124 201 146 124 177 169 143 217 168 156 197 171 123
++201 146 124 201 146 124 177 169 143 201 146 124 168 146 127 201 146 124 177 169 143 201 146 124
++163 117 123 138 126 108 138 102 108 120 63 71 117 99 86 120 63 71 117 99 86 117 99 86
++117 114 76 138 102 108 88 83 74 60 49 42 36 35 37 36 35 37 42 41 42 37 35 43
++37 35 43 37 35 43 33 30 36 37 35 43 28 35 38 33 30 36 28 30 35 23 30 35
++23 30 35 23 30 35 25 30 29 22 25 24 23 30 35 25 30 29 22 23 31 26 24 32
++23 30 35 28 30 35 23 30 35 25 30 29 30 30 34 30 30 34 30 30 34 30 30 34
++31 35 35 33 30 32 33 30 32 33 30 30 33 30 32 33 30 32 33 30 30 33 30 30
++33 30 30 30 30 34 33 30 30 26 30 28 26 30 28 26 30 28 33 30 32 31 35 35
++33 30 32 33 30 32 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++53 35 37 36 35 37 55 39 37 42 41 42 42 38 42 36 35 37 55 39 37 36 35 37
++47 44 42 36 35 37 42 41 42 36 35 37 47 47 21 36 35 37 53 35 37 36 35 37
++47 39 42 36 35 37 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++48 44 48 48 50 48 48 50 48 54 57 61 53 46 48 45 57 61 59 55 55 54 57 61
++54 57 61 59 57 61 54 57 61 54 57 61 54 57 61 46 59 71 59 57 61 46 59 71
++54 57 61 54 57 61 46 59 71 57 43 64 54 57 61 45 57 61 57 43 64 45 57 61
++45 57 61 45 57 61 57 43 64 45 57 61 43 42 50 45 57 61 43 42 50 43 42 50
++34 40 43 34 40 43 36 35 37 31 35 35 36 35 37 36 35 37 30 30 34 30 30 34
++30 30 34 30 30 34 28 30 35 30 30 34 30 30 34 28 30 35 25 30 29 26 24 32
++30 30 34 26 24 32 28 30 35 28 30 35 30 30 34 30 30 34 30 30 34 28 30 35
++28 30 35 26 30 28 30 30 34 30 30 34 33 30 30 30 30 34 30 30 34 26 30 28
++25 30 29 25 30 29 26 30 28 33 30 30 33 30 32 33 30 32 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 26 30 28 33 30 30 26 30 28
++33 30 30 26 24 32 33 30 30 26 24 32 33 30 30 23 20 24 26 24 32 26 24 32
++23 20 24 26 24 32 22 25 24 26 24 32 26 30 28 23 20 24 26 24 32 22 25 24
++33 30 30 26 24 32 33 30 30 22 25 24 26 24 32 33 30 30 26 24 32 33 30 30
++26 24 32 33 30 30 26 24 32 33 30 30 26 24 32 26 30 28 33 30 30 26 24 32
++26 30 28 26 24 32 22 25 24 26 24 32 26 24 32 33 30 30 22 25 24 26 30 28
++26 30 28 22 25 24 25 30 29 22 23 31 25 30 29 22 25 24 26 30 28 26 30 28
++30 30 34 33 30 32 33 30 32 30 30 34 36 35 37 36 35 37 33 39 38 42 38 42
++42 38 42 42 38 42 47 39 42 47 44 42 47 44 42 47 44 42 47 44 42 55 39 37
++47 44 42 47 44 42 47 39 42 47 39 42 47 39 42 42 41 42 55 39 37 42 41 42
++47 44 42 47 44 42 55 39 37 42 47 42 42 38 42 36 35 37 47 47 21 37 35 43
++36 35 37 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 31 35 35 33 30 32 33 30 30 26 30 28 26 24 32
++33 30 30 26 24 32 33 30 30 22 25 24 33 30 30 23 20 24 26 30 28 23 20 24
++33 30 30 23 20 24 33 30 30 23 20 24 26 30 28 26 30 28 26 30 28 26 30 28
++26 24 32 33 30 30 33 30 30 33 30 30 33 30 30 53 35 17 33 30 30 52 30 35
++32 39 24 52 30 35 36 35 37 53 35 17 33 30 32 36 35 37 52 30 35 32 39 24
++52 30 35 47 47 21 36 35 37 52 30 35 33 30 30 33 30 30 34 30 15 33 30 30
++34 30 15 33 30 30 49 13 16 33 30 30 26 25 15 23 20 24 33 30 30 23 20 24
++23 20 24 22 25 24 23 18 22 23 18 22 23 20 24 22 25 24 23 20 24 23 20 24
++22 25 24 26 30 28 26 24 32 33 30 30 26 30 28 30 30 34 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 32 33 30 32 33 30 30 36 35 37
++36 35 37 36 35 37 36 35 37 42 41 42 42 38 42 42 41 42 42 47 42 43 42 50
++48 50 48 35 47 50 45 57 61 45 57 61 54 57 61 54 57 61 63 59 71 46 59 71
++60 63 87 59 69 70 75 64 82 60 81 83 75 64 82 59 69 70 63 59 71 63 59 71
++63 59 71 65 63 61 59 57 61 54 57 61 59 55 55 48 44 48 48 50 48 53 46 48
++48 44 48 48 50 48 48 44 48 48 50 48 43 42 50 48 50 48 48 44 48 48 44 48
++
++26 25 15 23 20 24 34 30 15 26 25 15 26 25 15 33 30 30 26 25 15 33 30 30
++26 25 15 33 30 30 26 25 15 33 30 30 28 13 18 34 30 15 23 20 24 34 30 15
++33 30 30 26 25 15 26 25 15 26 25 15 26 25 15 23 18 22 26 25 15 17 12 17
++22 24 13 14 16 17 22 24 13 14 16 17 15 17 7 14 16 17 15 17 7 17 12 17
++7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 7 12 13 13 4 7 7 12 13
++17 12 17 7 12 13 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7
++7 12 13 13 4 7 7 10 17 13 4 7 7 10 17 7 12 13 7 10 17 13 4 7
++7 12 13 7 10 17 17 12 17 7 12 13 17 12 17 7 10 17 13 4 7 7 10 17
++7 12 13 7 10 17 13 4 7 7 10 17 7 12 13 7 12 13 17 12 17 14 16 17
++14 16 17 23 18 22 23 18 22 23 18 22 22 24 13 17 12 17 22 24 13 23 18 22
++23 18 22 22 24 13 22 25 24 26 25 15 23 18 22 33 30 30 33 30 30 33 30 30
++36 35 37 47 39 42 53 46 48 53 46 48 53 46 48 53 46 48 59 55 55 59 55 55
++59 55 55 65 55 54 65 55 54 65 63 61 75 56 53 65 63 61 65 63 61 75 63 62
++75 72 67 75 72 67 88 66 70 88 66 70 88 83 74 88 66 70 88 66 70 75 63 62
++88 66 70 88 66 70 75 63 62 88 66 70 75 63 62 88 66 70 88 66 70 88 66 70
++88 66 70 88 66 70 88 83 74 88 69 84 88 83 74 88 69 84 75 81 76 75 64 82
++75 72 67 75 63 62 65 63 61 59 57 61 59 57 61 52 55 48 59 55 55 54 57 61
++53 46 48 45 57 61 48 50 48 43 55 48 48 50 48 42 41 42 42 41 42 36 35 37
++31 35 35 30 30 34 33 30 30 26 30 28 26 30 28 26 30 28 26 30 28 33 30 30
++26 30 28 26 24 32 33 30 30 26 30 28 30 30 34 28 30 35 30 30 34 28 30 35
++25 30 29 22 23 31 25 30 29 22 23 31 25 30 29 28 30 35 28 30 35 31 35 35
++28 35 38 37 35 43 37 35 43 34 40 43 43 42 50 43 42 50 43 42 50 43 42 50
++45 57 61 43 42 50 57 43 64 43 42 50 45 57 61 43 42 50 43 42 50 45 57 61
++32 40 58 43 42 50 35 47 50 35 47 50 43 42 50 45 57 61 43 42 50 45 57 61
++48 50 48 43 42 50 43 42 50 37 35 43 37 35 43 37 35 43 36 35 37 36 35 37
++33 30 32 33 30 30 33 30 32 33 30 30 33 30 30 33 30 30 33 30 32 33 30 32
++33 30 32 33 30 32 33 30 36 33 30 36 33 30 36 33 30 36 33 30 32 33 30 36
++31 35 35 33 30 32 26 24 32 33 30 30 26 24 32 26 30 28 26 24 32 22 25 24
++26 24 32 22 25 24 26 30 28 22 25 24 22 25 24 22 25 24 26 24 32 23 20 24
++26 30 28 23 20 24 33 30 30 26 24 32 34 30 15 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30
++33 30 30 33 30 30 36 35 37 53 35 37 33 30 30 52 30 35 32 39 24 53 35 37
++36 35 37 36 35 37 53 35 37 36 35 37 53 35 37 36 35 37 42 38 42 32 39 24
++52 30 35 36 35 37 52 30 35 36 35 37 36 35 37 33 30 30 33 30 30 33 30 30
++52 30 35 32 39 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 52 30 35 36 35 37 33 30 30 52 30 35 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 23 20 24 52 30 15 76 46 20
++101 83 74 138 126 108 157 148 53 168 102 88 117 114 76 168 102 88 168 102 88 168 102 88
++157 148 53 138 126 108 168 102 88 157 148 53 168 102 88 117 114 76 168 102 88 168 102 88
++168 146 127 177 171 115 197 171 123 168 146 127 168 146 127 168 102 88 117 112 45 120 63 71
++117 112 45 168 102 88 117 114 76 168 102 88 117 99 86 117 112 45 168 102 88 117 112 45
++117 99 86 157 148 53 168 102 88 146 150 115 168 146 127 168 146 127 188 180 202 232 215 228
++246 237 247 240 251 247 251 251 247 251 251 247 240 251 247 240 251 247 240 251 247 231 239 247
++231 239 247 231 239 247 235 238 247 240 251 247 246 237 247 240 251 247 240 251 247 246 237 247
++240 251 247 235 238 247 231 239 247 221 238 247 221 238 247 231 239 247 231 239 247 231 239 247
++240 251 247 240 251 247 231 239 247 240 251 247 231 239 247 240 251 247 231 239 247 235 238 247
++231 239 247 240 251 247 235 238 247 235 238 247 240 251 247 231 239 247 240 251 247 240 251 247
++235 238 247 240 251 247 246 237 247 240 251 247 251 251 247 240 251 247 240 251 247 240 251 247
++235 238 247 240 251 247 231 239 247 231 239 247 221 238 247 240 251 247 235 238 247 240 251 247
++235 238 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 232 215 228 188 180 202
++189 165 168 168 146 127 168 146 127 177 169 143 201 146 124 201 146 124 177 169 143 201 146 124
++217 168 156 168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 163 117 123 138 102 108
++101 60 73 88 44 51 52 30 35 52 30 15 52 30 15 52 30 15 76 46 20 88 30 18
++88 73 62 88 73 62 75 73 58 51 49 42 42 41 42 36 35 37 42 41 42 34 40 43
++37 35 43 37 35 43 37 35 43 37 35 43 33 30 36 31 35 35 30 30 34 28 30 35
++25 30 29 23 30 35 22 25 24 25 30 29 22 25 24 25 30 29 23 30 35 26 24 32
++23 30 35 25 30 29 28 30 35 25 30 29 30 30 34 30 30 34 26 30 28 30 30 34
++31 35 35 33 30 32 31 35 35 26 30 28 33 30 30 33 30 32 33 30 30 33 30 30
++33 30 32 33 30 30 33 30 32 33 30 30 26 30 28 33 30 30 33 30 32 31 35 35
++36 35 37 31 35 35 36 35 37 36 35 37 36 35 37 32 39 24 53 35 37 36 35 37
++32 39 24 36 35 37 36 35 37 36 35 37 36 35 37 47 44 42 36 35 37 47 44 42
++36 35 37 53 35 37 36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++47 47 21 47 39 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 47 39 42
++42 41 42 48 50 48 48 50 48 48 44 48 48 50 48 57 43 64 48 44 48 54 57 61
++63 59 71 54 57 61 63 59 71 54 57 61 54 57 61 54 57 61 54 57 61 59 57 61
++46 59 71 57 43 64 54 57 61 54 57 61 46 59 71 54 57 61 45 57 61 54 57 61
++45 57 61 54 57 61 45 57 61 45 57 61 45 57 61 43 42 50 35 47 50 43 42 50
++34 40 43 37 35 43 34 40 43 36 35 37 37 35 43 31 35 35 33 30 36 31 35 35
++30 30 34 28 30 35 28 30 35 28 30 35 30 30 34 28 30 35 28 30 35 25 30 29
++28 30 35 25 30 29 26 24 32 30 30 34 28 30 35 28 30 35 28 30 35 25 30 29
++30 30 34 30 30 34 30 30 34 26 30 28 30 30 34 30 30 34 30 30 34 25 30 29
++25 30 29 26 30 28 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 26 30 28 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 32 33 30 30 26 24 32 26 24 32 33 30 30 26 30 28
++26 24 32 22 25 24 26 24 32 26 30 28 22 25 24 23 20 24 26 30 28 23 20 24
++26 24 32 23 20 24 26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 33 30 30
++26 24 32 26 30 28 33 30 30 26 24 32 33 30 30 26 24 32 26 30 28 26 24 32
++33 30 30 23 20 24 33 30 30 23 20 24 26 30 28 23 20 24 33 30 30 23 20 24
++26 30 28 26 24 32 22 25 24 26 30 28 22 25 24 26 24 32 26 30 28 26 30 28
++33 30 32 33 30 32 33 30 32 30 30 34 31 35 35 36 35 37 42 38 42 36 35 37
++42 38 42 47 39 42 47 39 42 42 41 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 39 42 47 44 42 47 44 42 47 39 42 47 39 42 42 41 42 47 44 42
++55 39 37 47 44 42 47 44 42 47 39 42 47 47 21 42 41 42 36 35 37 36 35 37
++42 38 42 36 35 37 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++37 35 43 36 35 37 36 35 37 31 35 35 30 30 34 33 30 30 26 24 32 33 30 30
++26 30 28 33 30 30 26 24 32 33 30 30 23 20 24 33 30 30 26 30 28 33 30 30
++22 25 24 33 30 30 22 25 24 33 30 30 26 30 28 26 25 15 33 30 30 26 30 28
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 32 39 24 52 30 35 33 30 30 33 30 30 52 30 35 32 39 24 52 30 35
++36 35 37 36 35 37 52 30 35 32 39 24 52 30 35 33 30 30 52 30 35 33 30 30
++52 30 35 33 30 30 33 30 30 26 25 15 33 30 30 26 25 15 23 20 24 34 30 15
++23 20 24 23 18 22 26 25 15 23 20 24 26 25 15 23 20 24 26 25 15 23 20 24
++22 25 24 26 24 32 26 30 28 26 30 28 30 30 34 33 30 30 26 24 32 26 30 28
++26 24 32 33 30 30 33 30 30 33 30 32 33 30 32 33 30 32 33 30 32 33 30 30
++31 35 35 36 35 37 36 35 37 36 35 37 42 38 42 42 41 42 42 47 42 43 42 50
++43 42 50 48 50 48 43 42 50 43 42 50 45 57 61 45 57 61 63 59 71 46 59 71
++63 59 71 63 59 71 59 69 70 59 69 70 75 64 82 75 64 82 75 72 67 59 69 70
++65 63 61 63 59 71 59 57 61 54 57 61 48 50 48 54 57 61 48 50 48 48 50 48
++48 50 48 48 44 48 48 50 48 48 44 48 48 50 48 48 44 48 43 42 50 48 44 48
++
++26 25 15 34 30 15 26 30 28 23 20 24 34 30 15 23 20 24 34 30 15 22 25 24
++34 30 15 23 20 24 33 30 30 34 30 15 33 30 30 23 20 24 33 30 30 23 20 24
++33 30 30 26 25 15 26 24 32 26 25 15 22 25 24 22 24 13 22 24 13 23 18 22
++22 24 13 17 12 17 14 16 17 17 12 17 22 24 13 17 12 17 15 17 7 17 12 17
++15 17 7 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13
++7 12 13 13 4 7 7 12 13 3 4 9 7 12 13 13 4 7 7 12 13 7 12 13
++7 12 13 7 12 13 17 12 17 7 10 17 7 12 13 13 4 7 7 10 17 17 12 17
++7 10 17 13 4 7 7 10 17 7 10 17 17 12 17 7 12 13 7 10 17 7 12 13
++17 12 17 7 10 17 7 10 17 13 4 7 7 10 17 13 4 7 7 12 13 14 16 17
++17 12 17 14 16 17 23 18 22 15 22 17 17 12 17 14 16 17 23 18 22 23 18 22
++26 25 15 23 20 24 22 25 24 23 20 24 26 25 15 33 30 30 33 30 30 52 30 35
++42 41 42 55 39 37 47 44 42 53 46 48 53 46 48 59 55 55 63 55 51 59 55 55
++65 55 54 65 57 61 65 57 61 65 57 61 65 63 61 65 63 61 75 63 62 75 63 62
++75 72 67 88 66 70 75 72 67 88 66 70 88 66 70 88 66 70 88 66 70 88 66 70
++88 66 70 75 63 62 88 66 70 75 63 62 88 66 70 75 63 62 88 66 70 88 83 74
++88 83 74 75 81 76 88 83 74 75 81 76 88 66 70 75 81 76 75 72 67 75 72 67
++75 72 67 65 63 61 65 63 61 59 55 55 59 55 55 55 55 48 54 57 61 45 57 61
++54 57 61 48 44 48 48 50 48 43 42 50 43 42 50 43 42 50 34 40 43 36 35 37
++31 35 35 33 30 32 33 30 30 26 30 28 26 24 32 33 30 30 26 30 28 33 30 30
++26 30 28 33 30 30 33 30 30 26 30 28 30 30 34 30 30 34 33 30 36 30 30 34
++26 24 32 26 24 32 25 30 29 25 30 29 23 30 35 25 30 29 28 30 35 28 35 38
++28 35 38 28 35 38 34 40 43 43 42 50 35 47 50 43 42 50 45 57 61 45 57 61
++43 42 50 45 57 61 43 42 50 45 57 61 43 42 50 45 57 61 32 40 58 43 42 50
++43 42 50 35 47 50 43 42 50 43 42 50 35 47 50 43 42 50 45 57 61 48 44 48
++48 44 48 43 42 50 43 42 50 42 38 42 37 35 43 36 35 37 36 35 37 33 30 36
++30 30 34 33 30 32 30 30 34 33 30 32 30 30 34 33 30 32 30 30 34 30 30 34
++33 30 32 33 30 36 33 30 36 36 35 37 33 30 32 33 30 36 36 35 37 33 30 36
++31 35 35 30 30 34 33 30 32 26 24 32 33 30 30 26 24 32 26 30 28 23 20 24
++26 30 28 26 24 32 23 20 24 26 24 32 23 20 24 23 20 24 22 25 24 26 30 28
++22 25 24 26 30 28 23 20 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 52 30 35 36 35 37 33 30 30 53 35 37 36 35 37 52 30 35 36 35 37
++53 35 37 36 35 37 42 41 42 47 47 21 42 38 42 36 35 37 53 35 37 36 35 37
++53 35 37 36 35 37 36 35 37 33 30 30 52 30 35 36 35 37 52 30 35 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 36 35 37
++33 30 30 36 35 37 32 39 24 52 30 35 32 39 24 36 35 37 33 30 30 32 39 24
++26 30 28 33 30 30 33 30 30 34 30 15 33 30 30 34 30 15 34 30 15 76 46 20
++120 63 71 168 102 88 168 102 88 157 148 53 168 102 88 157 148 53 168 102 88 157 148 53
++168 102 88 168 102 88 177 171 115 168 102 88 157 148 53 168 102 88 117 114 76 157 148 53
++168 102 88 168 146 127 177 171 115 201 146 124 177 171 115 168 146 127 117 114 76 117 112 45
++120 63 71 117 112 45 168 102 88 117 114 76 168 102 88 117 114 76 117 112 45 120 63 71
++117 114 76 117 99 86 117 114 76 138 126 108 168 146 127 166 156 164 208 215 180 233 241 227
++246 237 247 251 251 247 235 238 247 240 251 247 231 239 247 231 239 247 221 238 247 231 239 247
++231 239 247 231 239 247 240 251 247 240 251 247 240 251 247 251 251 247 240 251 247 240 251 247
++240 251 247 235 238 247 231 239 247 231 239 247 235 238 247 240 251 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 235 238 247 240 251 247 231 239 247
++240 251 247 231 239 247 240 251 247 235 238 247 235 238 247 240 251 247 240 251 247 235 238 247
++240 251 247 240 251 247 251 251 247 240 251 247 251 251 247 251 251 247 246 237 247 240 251 247
++235 238 247 231 239 247 240 251 247 231 239 247 240 251 247 231 239 247 240 251 247 240 251 247
++240 251 247 240 251 247 240 251 247 235 238 247 240 251 247 251 251 247 251 251 247 233 241 227
++222 171 182 189 165 168 168 146 127 168 146 127 168 146 127 201 146 124 177 169 143 201 146 124
++177 169 143 201 146 124 168 146 127 168 146 127 163 117 123 168 102 88 138 102 108 120 63 71
++88 73 31 49 13 16 23 10 10 23 10 10 23 10 10 23 10 10 49 13 16 49 13 16
++59 36 42 75 56 53 63 55 45 55 39 37 42 41 42 42 41 42 42 41 42 42 41 42
++37 35 43 34 40 43 37 35 43 28 35 38 36 35 37 28 30 35 28 30 35 28 30 35
++25 30 29 25 30 29 25 30 29 22 25 24 25 30 29 22 23 31 26 24 32 25 30 29
++23 30 35 23 30 35 28 30 35 28 30 35 30 30 34 26 30 28 30 30 34 30 30 34
++31 35 35 33 30 32 33 30 30 33 30 30 33 30 30 33 30 32 33 30 32 33 30 32
++33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 30 30 34 31 35 35 36 35 37
++36 35 37 36 35 37 36 35 37 42 41 42 36 35 37 42 38 42 36 35 37 36 35 37
++53 35 37 42 41 42 55 39 37 36 35 37 55 39 37 36 35 37 47 44 42 36 35 37
++47 44 42 36 35 37 47 44 42 36 35 37 55 39 37 42 41 42 47 47 21 47 39 42
++42 38 42 42 41 42 42 41 42 42 38 42 36 35 37 42 41 42 42 41 42 42 41 42
++48 44 48 48 44 48 48 50 48 48 44 48 43 42 50 48 50 48 45 57 61 54 57 61
++54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61
++54 57 61 45 57 61 46 59 71 54 57 61 54 57 61 45 57 61 57 43 64 45 57 61
++54 57 61 54 57 61 54 57 61 45 57 61 43 42 50 43 42 50 43 42 50 43 42 50
++34 40 43 34 40 43 37 35 43 28 35 38 36 35 37 31 35 35 33 30 36 30 30 34
++30 30 34 28 30 35 28 30 35 28 30 35 30 30 34 30 30 34 28 30 35 26 24 32
++28 30 35 26 24 32 28 30 35 30 30 34 28 30 35 30 30 34 30 30 34 28 30 35
++30 30 34 26 30 28 30 30 34 30 30 34 30 30 34 33 30 32 30 30 34 30 30 34
++26 30 28 26 30 28 30 30 34 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 26 30 28 33 30 30
++26 24 32 33 30 32 30 30 34 33 30 32 26 30 28 26 24 32 26 30 28 23 20 24
++26 30 28 23 20 24 26 30 28 23 20 24 26 24 32 26 30 28 23 20 24 33 30 30
++23 20 24 33 30 30 26 24 32 23 20 24 33 30 30 23 20 24 33 30 30 26 24 32
++26 30 28 33 30 30 26 24 32 26 30 28 33 30 30 26 24 32 33 30 30 26 24 32
++33 30 30 26 24 32 26 24 32 26 30 28 26 24 32 26 24 32 26 24 32 26 30 28
++33 30 30 22 25 24 26 30 28 26 24 32 22 25 24 26 30 28 26 30 28 26 30 28
++33 30 32 33 30 32 30 30 34 33 30 32 31 35 35 36 35 37 33 39 38 42 41 42
++42 38 42 42 38 42 47 39 42 47 39 42 47 44 42 47 44 42 55 39 37 47 44 42
++47 44 42 47 44 42 47 39 42 47 39 42 47 44 42 55 39 37 42 41 42 47 47 21
++42 41 42 53 35 37 36 35 37 53 35 37 36 35 37 42 41 42 47 47 21 36 35 37
++42 38 42 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 33 39 38 36 35 37 31 35 35 33 30 32 33 30 30 26 30 28 33 30 30
++26 24 32 26 24 32 33 30 30 26 30 28 26 30 28 23 20 24 33 30 30 23 20 24
++33 30 30 23 20 24 33 30 30 23 20 24 26 30 28 26 30 28 22 25 24 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 53 35 17
++33 30 32 52 30 35 33 30 30 36 35 37 52 30 35 32 39 24 52 30 35 36 35 37
++53 35 17 36 35 37 52 30 35 52 30 35 33 30 30 52 30 15 33 30 30 33 30 30
++34 30 15 33 30 30 33 30 30 34 30 15 23 20 24 34 30 15 23 20 24 23 20 24
++33 30 30 23 18 22 26 25 15 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24
++26 24 32 22 25 24 26 24 32 33 30 30 26 24 32 26 30 28 33 30 30 33 30 30
++33 30 30 33 30 30 26 24 32 33 30 30 33 30 32 33 30 32 33 30 32 31 35 35
++33 30 30 36 35 37 36 35 37 42 38 42 36 35 37 42 41 42 33 39 38 42 47 42
++43 42 50 35 47 50 48 50 48 45 57 61 45 57 61 57 43 64 46 59 71 54 57 61
++63 59 71 59 69 70 63 59 71 63 59 71 59 69 70 63 59 71 59 69 70 63 59 71
++63 59 71 59 57 61 59 57 61 54 57 61 59 55 55 48 50 48 53 46 48 45 57 61
++48 44 48 48 50 48 48 44 48 43 42 50 48 50 48 43 42 50 47 49 42 48 44 48
++
++26 25 15 26 25 15 33 30 30 34 30 15 26 30 28 34 30 15 23 20 24 33 30 30
++33 30 30 33 30 30 34 30 15 33 30 30 23 20 24 34 30 15 23 20 24 34 30 15
++23 20 24 33 30 30 26 25 15 22 25 24 26 25 15 23 18 22 23 18 22 22 24 13
++17 12 17 22 24 13 17 12 17 17 12 17 17 12 17 17 12 17 7 12 13 17 12 17
++7 12 13 17 12 17 7 12 13 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7
++7 12 13 7 12 13 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 7 12 13
++13 4 7 7 12 13 7 12 13 13 4 7 7 10 17 17 12 17 7 10 17 7 12 13
++7 10 17 7 10 17 7 12 13 17 12 17 7 10 17 13 4 7 7 10 17 13 4 7
++7 10 17 7 12 13 13 4 7 7 10 17 7 12 13 7 12 13 7 12 13 7 12 13
++17 12 17 14 16 17 17 12 17 14 16 17 23 18 22 17 12 17 26 25 15 23 20 24
++23 20 24 22 25 24 26 25 15 33 30 30 23 20 24 33 30 30 33 30 30 36 35 37
++42 41 42 47 44 42 53 46 48 53 46 48 59 55 55 59 55 55 59 55 55 59 55 55
++65 55 54 65 57 61 65 63 61 65 55 54 75 63 62 65 63 61 75 63 62 75 63 62
++75 72 67 75 72 67 88 66 70 75 72 67 88 73 62 88 66 70 75 63 62 88 66 70
++75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 88 66 70 75 72 67 75 72 67
++88 66 70 88 69 84 88 66 70 88 69 84 75 81 82 75 81 76 75 64 82 75 72 67
++63 59 71 65 63 61 59 57 61 53 63 61 59 55 55 54 57 61 59 55 55 54 57 61
++53 46 48 45 57 61 43 42 50 43 55 48 48 44 48 42 41 42 42 41 42 36 35 37
++36 35 37 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 32
++33 30 32 33 30 32 33 30 32 33 30 32 30 30 34 31 35 35 30 30 34 31 35 35
++30 30 34 30 30 34 28 30 35 28 30 35 28 30 35 28 30 35 28 30 35 28 35 38
++37 35 43 37 35 43 34 40 43 34 40 43 43 42 50 45 57 61 43 42 50 43 42 50
++43 42 50 43 42 50 45 57 61 32 40 58 43 42 50 43 42 50 43 42 50 45 57 61
++35 47 50 43 42 50 45 57 61 43 42 50 45 57 61 43 42 50 43 42 50 45 57 61
++48 50 48 43 42 50 42 41 42 42 41 42 36 35 37 37 35 43 36 35 37 33 30 36
++30 30 34 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32
++31 35 35 33 30 36 36 35 37 36 35 37 36 35 37 36 35 37 31 35 35 36 35 37
++36 35 37 33 30 36 31 35 35 33 30 32 30 30 34 33 30 30 26 30 28 33 30 30
++26 24 32 26 30 28 22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 23 20 24
++26 30 28 23 20 24 33 30 30 26 25 15 33 30 30 34 30 15 33 30 30 33 30 30
++33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 28 13 18 33 30 30 34 30 15 33 30 30
++33 30 30 36 35 37 32 39 24 52 30 35 36 35 37 36 35 37 36 35 37 36 35 37
++42 38 42 47 47 21 36 35 37 53 35 37 33 30 30 52 30 35 36 35 37 36 35 37
++32 39 24 52 30 35 33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 36 35 37
++33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 33 30 32 53 35 17
++36 35 37 33 30 30 36 35 37 36 35 37 52 30 35 36 35 37 33 30 30 33 30 30
++34 30 15 33 30 30 33 30 30 33 30 32 34 30 15 26 12 13 34 30 15 76 46 20
++176 103 41 157 148 53 201 146 124 157 148 53 168 102 88 168 102 88 157 148 53 168 102 88
++168 102 88 157 148 53 176 103 41 201 146 124 163 117 123 157 148 53 168 102 88 168 102 88
++117 114 76 157 148 53 168 102 88 177 171 115 201 146 124 177 171 115 168 146 127 168 102 88
++101 83 74 101 74 26 120 63 71 117 114 76 117 114 76 168 102 88 168 102 88 168 102 88
++117 114 76 120 63 71 117 114 76 138 102 108 145 140 145 150 144 154 150 144 154 188 180 202
++221 238 247 235 238 247 240 251 247 240 251 247 231 239 247 231 239 247 231 239 247 233 241 227
++231 239 247 235 238 247 240 251 247 240 251 247 251 251 247 251 251 247 240 251 247 246 237 247
++235 238 247 235 238 247 235 238 247 240 251 247 240 251 247 235 238 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 235 238 247 231 239 247 240 251 247
++231 239 247 240 251 247 235 238 247 240 251 247 240 251 247 240 251 247 240 251 247 251 251 247
++240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 235 238 247
++231 239 247 231 239 247 231 239 247 240 251 247 240 251 247 240 251 247 235 238 247 240 251 247
++240 251 247 251 251 247 240 251 247 246 237 247 240 251 247 246 237 247 251 251 247 251 251 247
++251 251 247 194 199 226 189 165 168 168 146 127 168 146 127 177 169 143 201 146 124 177 169 143
++201 146 124 201 146 124 168 146 127 201 146 124 168 146 127 168 146 127 168 102 88 138 126 108
++168 102 88 101 83 74 88 44 51 76 18 19 49 13 16 23 10 10 49 13 16 59 36 42
++88 73 62 75 63 62 62 47 47 42 38 42 42 41 42 42 41 42 43 42 50 42 41 42
++37 35 43 37 35 43 37 35 43 37 35 43 28 35 38 36 35 37 30 30 34 30 30 34
++28 30 35 25 30 29 25 30 29 25 30 29 22 23 31 25 30 29 23 30 35 23 30 35
++25 30 29 28 30 35 28 30 35 30 30 34 33 30 32 33 30 32 31 35 35 31 35 35
++36 35 37 31 35 35 36 35 37 33 30 32 31 35 35 33 30 32 31 35 35 33 30 32
++33 30 32 33 30 32 33 30 32 36 35 37 33 30 32 33 30 32 33 30 32 36 35 37
++36 35 37 42 41 42 42 41 42 36 35 37 36 35 37 42 41 42 36 35 37 47 44 42
++42 41 42 42 41 42 42 41 42 47 39 42 47 44 42 47 44 42 42 38 42 47 47 21
++47 39 42 47 44 42 47 39 42 47 44 42 47 44 42 47 44 42 47 39 42 47 44 42
++42 41 42 47 39 42 42 38 42 42 38 42 42 38 42 42 41 42 42 41 42 42 41 42
++42 47 42 42 41 42 42 47 42 48 44 48 43 42 50 48 50 48 48 50 48 53 46 48
++54 57 61 54 57 61 54 57 61 54 57 61 59 57 61 46 59 71 54 57 61 54 57 61
++54 57 61 54 57 61 57 43 64 45 57 61 54 57 61 54 57 61 54 57 61 54 57 61
++54 57 61 54 57 61 54 57 61 57 43 64 54 57 61 45 57 61 48 50 48 48 50 48
++43 42 50 42 41 42 37 35 43 36 35 37 37 35 43 36 35 37 30 30 34 31 35 35
++30 30 34 30 30 34 30 30 34 30 30 34 28 30 35 28 30 35 28 30 35 28 30 35
++30 30 34 30 30 34 25 30 29 30 30 34 30 30 34 28 30 35 30 30 34 30 30 34
++30 30 34 30 30 34 26 30 28 30 30 34 33 30 30 30 30 34 33 30 32 26 30 28
++33 30 30 30 30 34 33 30 30 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 32 39 24 33 30 30 33 30 30 33 30 30 33 30 32
++33 30 30 33 30 30 33 30 30 26 24 32 33 30 30 33 30 30 26 24 32 33 30 30
++26 24 32 26 30 28 26 24 32 33 30 30 23 20 24 26 30 28 26 24 32 26 30 28
++26 24 32 23 20 24 26 30 28 26 24 32 33 30 30 26 24 32 33 30 30 33 30 30
++26 24 32 33 30 30 26 24 32 33 30 30 26 24 32 26 30 28 26 24 32 33 30 30
++26 24 32 26 30 28 33 30 30 23 20 24 33 30 30 22 25 24 33 30 30 22 25 24
++26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 26 24 32 25 30 29 30 30 34
++30 30 34 31 35 35 33 30 32 31 35 35 36 35 37 36 35 37 33 39 38 42 38 42
++42 38 42 42 38 42 42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 55 39 37 47 44 42 47 44 42 47 39 42 47 44 42 47 39 42 47 39 42
++36 35 37 55 39 37 36 35 37 47 39 42 36 35 37 42 38 42 36 35 37 42 38 42
++36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 30 32 33 30 30 26 24 32
++33 30 30 33 30 30 22 25 24 33 30 30 33 30 30 33 30 30 26 30 28 33 30 30
++26 30 28 33 30 30 26 30 28 33 30 30 26 30 28 33 30 30 23 20 24 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30 33 30 30
++52 30 35 33 30 30 36 35 37 53 35 17 33 30 30 52 30 35 33 30 30 53 35 37
++52 30 35 52 30 35 47 47 21 52 30 35 33 30 30 52 30 35 34 30 15 52 30 35
++33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 26 25 15 33 30 30 23 20 24
++33 30 30 23 20 24 26 30 28 26 25 15 22 25 24 22 25 24 22 25 24 23 20 24
++26 30 28 26 30 28 26 30 28 26 30 28 30 30 34 33 30 30 26 24 32 33 30 30
++26 24 32 33 30 30 33 30 30 33 30 32 33 30 32 33 30 32 33 30 32 33 30 30
++31 35 35 33 30 30 36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 42 41 42
++42 41 42 42 47 42 43 42 50 43 42 50 43 42 50 45 57 61 54 57 61 54 57 61
++53 63 61 46 59 71 63 59 71 59 69 70 63 59 71 63 59 71 75 72 67 63 59 71
++65 63 61 59 57 61 59 57 61 54 57 61 48 50 48 54 57 61 48 50 48 48 44 48
++48 50 48 43 42 50 48 50 48 48 44 48 48 44 48 47 44 42 43 42 50 42 41 42
++
++26 25 15 33 30 30 26 25 15 22 25 24 33 30 30 22 25 24 33 30 30 34 30 15
++23 20 24 34 30 15 26 24 32 34 30 15 33 30 30 33 30 30 26 25 15 33 30 30
++23 20 24 23 20 24 26 25 15 23 20 24 26 25 15 22 24 13 14 16 17 14 16 17
++17 12 17 14 16 17 17 12 17 14 16 17 17 12 17 7 12 13 17 12 17 13 4 7
++17 12 17 13 4 7 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 7 12 13
++17 12 17 13 4 7 7 12 13 7 12 13 7 12 13 13 4 7 7 12 13 7 12 13
++17 12 17 7 12 13 7 10 17 7 10 17 7 12 13 7 10 17 13 4 7 7 10 17
++13 4 7 17 12 17 7 10 17 7 12 13 17 12 17 7 10 17 7 12 13 7 10 17
++13 4 7 7 12 13 3 4 9 7 10 17 13 4 7 17 12 17 7 12 13 17 12 17
++17 12 17 17 12 17 23 18 22 14 16 17 23 18 22 23 20 24 23 20 24 23 20 24
++33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 36 35 37 53 35 37
++47 44 42 51 49 42 53 46 48 55 55 48 59 55 55 65 55 54 59 55 55 65 55 54
++65 57 61 65 57 61 75 63 62 65 57 61 75 63 62 65 63 61 75 73 58 75 63 62
++75 72 67 88 66 70 75 72 67 75 72 67 88 66 70 75 63 62 88 66 70 75 63 62
++75 63 62 75 63 62 88 66 70 75 63 62 75 63 62 88 73 62 88 66 70 88 66 70
++88 83 74 75 81 76 88 66 70 75 81 76 75 64 82 75 72 67 75 72 67 59 69 70
++63 59 71 65 63 61 59 57 61 59 55 55 59 55 55 54 57 61 54 57 61 48 50 48
++54 57 61 48 44 48 53 46 48 43 42 50 48 44 48 42 41 42 42 38 42 36 35 37
++36 35 37 31 35 35 33 30 32 30 30 34 33 30 30 30 30 34 33 30 32 31 35 35
++31 35 35 31 35 35 31 35 35 36 35 37 36 35 37 36 35 37 31 35 35 31 35 35
++33 30 36 28 30 35 30 30 34 30 30 34 33 30 36 30 30 34 28 30 35 28 35 38
++28 35 38 34 40 43 34 40 43 43 42 50 43 42 50 43 42 50 43 42 50 45 57 61
++43 42 50 45 57 61 43 42 50 57 43 64 45 57 61 43 42 50 45 57 61 43 42 50
++32 40 58 43 42 50 43 42 50 43 42 50 43 42 50 45 57 61 43 42 50 48 44 48
++43 42 50 43 42 50 42 41 42 34 40 43 36 35 37 36 35 37 33 30 36 36 35 37
++30 30 34 33 30 32 30 30 34 33 30 32 30 30 34 33 30 32 31 35 35 31 35 35
++31 35 35 36 35 37 36 35 37 33 30 36 36 35 37 36 35 37 36 35 37 31 35 35
++36 35 37 33 30 32 36 35 37 31 35 35 30 30 34 30 30 34 26 30 28 26 24 32
++26 30 28 23 20 24 26 24 32 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24
++26 25 15 22 25 24 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++52 30 15 33 30 32 52 30 35 36 35 37 36 35 37 52 30 35 36 35 37 53 35 37
++36 35 37 47 39 42 36 35 37 47 47 21 36 35 37 36 35 37 36 35 37 52 30 35
++36 35 37 36 35 37 36 35 37 33 30 30 33 30 30 36 35 37 33 30 30 52 30 35
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37
++36 35 37 36 35 37 53 35 37 36 35 37 36 35 37 52 30 35 32 39 24 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 34 30 15 34 30 15 55 39 18 117 112 45
++163 117 123 201 146 124 219 175 47 195 113 123 219 175 47 201 146 124 168 102 88 157 148 53
++168 102 88 168 102 88 168 102 88 177 171 115 201 146 124 201 146 124 157 148 53 168 102 88
++117 114 76 168 102 88 117 114 76 168 102 88 146 150 115 201 146 124 177 171 115 168 146 127
++168 146 127 117 114 76 117 112 45 120 63 71 117 112 45 168 102 88 138 126 108 138 126 108
++168 102 88 117 114 76 117 99 86 138 126 108 145 140 145 148 160 159 122 134 144 150 147 171
++201 216 228 251 251 247 251 251 247 240 251 247 231 239 247 231 239 247 231 239 247 231 239 247
++240 251 247 240 251 247 246 237 247 240 251 247 251 251 247 240 251 247 240 251 247 235 238 247
++235 238 247 240 251 247 240 251 247 235 238 247 235 238 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 240 251 247 231 239 247 240 251 247 240 251 247 240 251 247 235 238 247
++240 251 247 240 251 247 240 251 247 246 237 247 240 251 247 246 237 247 240 251 247 246 237 247
++240 251 247 240 251 247 235 238 247 240 251 247 235 238 247 235 238 247 235 238 247 240 251 247
++235 238 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247
++251 251 247 240 251 247 240 251 247 235 238 247 240 251 247 251 251 247 246 237 247 251 251 247
++251 251 247 246 237 247 225 222 201 189 165 168 168 146 127 201 146 124 201 146 124 201 146 124
++168 146 127 168 146 127 201 146 124 168 146 127 201 146 124 163 117 123 168 146 127 163 117 123
++168 102 88 138 126 108 163 117 123 138 126 108 117 99 86 120 63 71 101 83 74 138 102 108
++112 96 108 75 59 67 62 47 47 42 38 42 42 38 42 43 42 50 37 35 43 42 38 42
++37 35 43 36 35 37 37 35 43 36 35 37 36 35 37 28 35 38 33 30 36 30 30 34
++26 30 28 28 30 35 25 30 29 25 30 29 25 30 29 25 30 29 26 24 32 25 30 29
++28 30 35 28 35 38 23 30 35 30 30 34 33 30 32 31 35 35 36 35 37 31 35 35
++31 35 35 36 35 37 33 30 32 36 35 37 36 35 37 36 35 37 33 30 32 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 36 35 37
++42 41 42 42 41 42 42 41 42 47 44 42 47 44 42 42 41 42 47 44 42 47 44 42
++47 39 42 47 44 42 47 44 42 47 39 42 47 44 42 47 39 42 47 44 42 47 39 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 47 44 42 47 44 42
++47 39 42 36 35 37 47 44 42 42 41 42 36 35 37 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 47 42 43 42 50 48 44 48 48 50 48 45 57 61
++53 46 48 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61
++54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 53 63 61 54 57 61
++54 57 61 54 57 61 45 57 61 45 57 61 48 50 48 48 44 48 43 42 50 43 42 50
++43 42 50 42 41 42 34 40 43 36 35 37 33 30 36 33 30 36 31 35 35 30 30 34
++30 30 34 30 30 34 33 30 36 30 30 34 31 35 35 28 30 35 28 30 35 31 35 35
++28 30 35 30 30 34 30 30 34 30 30 34 28 30 35 30 30 34 30 30 34 28 30 35
++30 30 34 30 30 34 30 30 34 30 30 34 33 30 30 33 30 30 30 30 34 33 30 32
++33 30 32 31 35 35 33 30 30 33 30 32 33 30 30 33 30 30 32 39 24 33 30 30
++32 39 24 33 30 30 33 30 30 33 30 30 33 30 30 29 35 19 33 30 30 33 30 30
++33 30 32 26 30 28 33 30 30 26 30 28 33 30 30 23 20 24 33 30 30 26 24 32
++23 20 24 23 20 24 26 24 32 22 25 24 26 24 32 33 30 30 23 20 24 26 24 32
++26 30 28 33 30 30 23 20 24 33 30 30 26 24 32 33 30 30 26 24 32 33 30 30
++33 30 30 26 24 32 33 30 30 26 30 28 33 30 30 26 24 32 33 30 30 26 24 32
++33 30 30 23 20 24 33 30 30 26 24 32 26 24 32 33 30 30 26 24 32 26 24 32
++26 30 28 33 30 30 26 30 28 26 30 28 26 24 32 26 30 28 26 24 32 30 30 34
++31 35 35 30 30 34 33 30 36 36 35 37 31 35 35 36 35 37 37 35 43 42 41 42
++42 38 42 42 38 42 53 35 37 47 47 21 47 39 42 47 44 42 47 39 42 47 44 42
++47 44 42 47 44 42 47 44 42 55 39 37 47 44 42 47 44 42 47 39 42 47 39 42
++42 38 42 36 35 37 53 35 37 36 35 37 53 35 37 36 35 37 53 35 37 36 35 37
++42 41 42 36 35 37 36 35 37 42 41 42 36 35 37 33 39 38 36 35 37 36 35 37
++33 39 38 36 35 37 33 39 38 36 35 37 31 35 35 33 30 32 33 30 30 33 30 30
++33 30 30 26 30 28 33 30 30 33 30 30 26 30 28 33 30 30 26 30 28 33 30 30
++33 30 30 26 24 32 33 30 30 26 24 32 33 30 30 22 25 24 33 30 30 33 30 30
++33 30 30 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30
++36 35 37 52 30 35 33 30 30 52 30 35 52 30 35 36 35 37 52 30 35 53 35 37
++36 35 37 53 35 37 52 30 35 36 35 37 52 30 35 33 30 30 52 30 35 33 30 30
++52 30 15 33 30 30 52 30 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 22 25 24 22 25 24 22 25 24 23 20 24 33 30 30 23 20 24 22 25 24
++26 24 32 26 30 28 26 24 32 26 30 28 26 24 32 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32
++33 30 32 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 41 42 42 41 42
++42 41 42 35 46 43 43 42 50 43 42 50 43 42 50 45 57 61 43 42 50 45 57 61
++54 57 61 54 57 61 54 57 61 63 59 71 63 59 71 63 59 71 65 63 61 59 57 61
++59 57 61 59 57 61 59 57 61 59 55 55 54 57 61 53 46 48 48 50 48 54 57 61
++48 44 48 48 50 48 48 44 48 43 42 50 42 47 42 43 42 50 42 41 42 42 41 42
++
++33 30 30 34 30 15 34 30 15 33 30 30 26 25 15 33 30 30 26 25 15 33 30 30
++33 30 30 33 30 30 33 30 30 23 20 24 33 30 30 23 20 24 34 30 15 23 20 24
++26 25 15 33 30 30 23 20 24 26 25 15 23 18 22 22 24 13 17 12 17 15 17 7
++17 12 17 15 17 7 14 16 17 13 4 7 7 12 13 17 12 17 7 12 13 7 12 13
++7 12 13 17 12 17 7 12 13 7 12 13 17 12 17 7 12 13 7 12 13 13 4 7
++7 12 13 7 12 13 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 7 12 13
++7 12 13 13 4 7 7 12 13 17 12 17 7 10 17 13 4 7 7 10 17 17 12 17
++7 12 13 7 10 17 17 12 17 7 10 17 17 12 17 7 10 17 13 4 7 7 12 13
++7 10 17 7 10 17 7 12 13 17 12 17 7 12 13 7 12 13 7 12 13 17 12 17
++14 16 17 14 16 17 23 18 22 23 18 22 23 18 22 23 20 24 33 30 30 23 20 24
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 47 44 42
++47 44 42 53 46 48 53 46 48 59 55 55 63 55 51 59 57 61 65 55 54 59 55 55
++65 57 61 65 63 61 65 57 61 75 63 62 65 63 61 75 72 67 75 63 62 75 72 67
++75 63 62 75 72 67 75 63 62 88 66 70 75 63 62 75 63 62 75 63 62 75 63 62
++75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 72 67 75 72 67
++75 72 67 88 66 70 88 69 84 75 72 67 75 81 76 75 72 67 75 64 82 65 63 61
++65 63 61 59 57 61 59 55 55 54 57 61 59 55 55 55 55 48 54 57 61 57 43 51
++45 57 61 48 50 48 48 50 48 48 50 48 43 42 50 42 41 42 37 35 43 36 35 37
++36 35 37 31 35 35 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 31 35 35
++36 35 37 33 30 32 36 35 37 31 35 35 31 35 35 36 35 37 36 35 37 36 35 37
++31 35 35 33 30 36 30 30 34 31 35 35 31 35 35 28 35 38 28 35 38 33 30 36
++28 35 38 37 35 43 34 40 43 34 40 43 43 42 50 35 47 50 43 42 50 43 42 50
++45 57 61 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 32 40 58 43 42 50
++43 42 50 45 57 61 32 40 58 45 57 61 43 42 50 43 42 50 43 42 50 43 42 50
++43 42 50 42 41 42 42 38 42 36 35 37 36 35 37 33 30 36 36 35 37 33 30 36
++33 30 36 33 30 32 33 30 36 33 30 32 33 30 36 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 31 35 35 33 30 32 30 30 34 33 30 30 26 24 32 26 30 28
++26 24 32 26 30 28 22 25 24 26 24 32 22 25 24 23 20 24 22 25 24 23 20 24
++23 20 24 23 20 24 23 20 24 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 28 13 18 34 30 15 33 30 30 28 13 18 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 52 30 35 36 35 37 36 35 37 33 30 30 36 35 37
++53 35 37 32 39 24 52 30 35 36 35 37 36 35 37 53 35 37 36 35 37 33 30 30
++36 35 37 33 30 30 52 30 35 36 35 37 32 39 24 52 30 35 33 30 30 33 30 30
++33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 52 30 35
++33 30 30 52 30 35 33 30 30 52 30 35 33 30 30 52 30 35 33 30 30 52 30 35
++33 30 30 52 30 15 33 30 30 52 30 15 28 13 18 52 30 15 76 46 20 168 102 88
++201 146 124 219 175 47 201 146 124 219 175 47 168 102 88 219 175 47 201 146 124 219 175 47
++201 146 124 219 175 47 168 102 88 219 175 47 157 148 53 201 146 124 201 146 124 157 148 53
++168 102 88 176 103 41 117 112 45 176 103 41 117 114 76 168 102 88 168 146 127 177 171 115
++197 171 123 168 146 127 168 102 88 120 63 71 117 112 45 117 114 76 117 114 76 157 148 53
++163 117 123 117 114 76 138 102 108 146 162 145 189 165 168 166 176 200 148 160 159 188 180 202
++231 239 247 251 251 247 240 251 247 231 239 247 231 239 247 231 239 247 235 238 247 240 251 247
++235 238 247 240 251 247 240 251 247 251 251 247 251 251 247 251 251 247 240 251 247 240 251 247
++235 238 247 240 251 247 235 238 247 240 251 247 231 239 247 231 239 247 231 239 247 231 239 247
++231 239 247 240 251 247 231 239 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247
++240 251 247 246 237 247 240 251 247 240 251 247 235 238 247 240 251 247 235 238 247 240 251 247
++240 251 247 240 251 247 235 238 247 231 239 247 240 251 247 235 238 247 240 251 247 235 238 247
++240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 246 237 247 240 251 247 246 237 247
++240 251 247 246 237 247 251 251 247 240 251 247 246 237 247 251 251 247 240 251 247 251 251 247
++251 251 247 251 251 247 246 237 247 232 215 228 189 165 168 168 146 127 177 169 143 168 146 127
++201 146 124 168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 163 117 123 168 102 88
++138 102 108 138 102 108 163 117 123 201 146 124 168 146 127 168 146 127 150 144 154 168 146 127
++138 102 108 75 56 53 47 39 42 42 41 42 42 38 42 34 40 43 42 38 42 42 41 42
++37 35 43 36 35 37 36 35 37 37 35 43 36 35 37 31 35 35 30 30 34 30 30 34
++30 30 34 30 30 34 25 30 29 25 30 29 26 24 32 25 30 29 23 30 35 28 30 35
++28 30 35 28 30 35 31 35 35 31 35 35 33 30 36 36 35 37 31 35 35 31 35 35
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++33 30 32 36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 42 41 42 47 39 42
++36 35 37 42 41 42 42 41 42 42 47 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 47 44 42
++47 44 42 47 44 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 43 42 50 48 44 48 43 42 50
++48 50 48 48 50 48 48 50 48 48 44 48 54 57 61 54 57 61 54 57 61 54 57 61
++46 59 71 54 57 61 54 57 61 46 59 71 54 57 61 54 57 61 54 57 61 54 57 61
++54 57 61 54 57 61 54 57 61 54 57 61 43 42 50 48 50 48 43 42 50 48 50 48
++43 42 50 34 40 43 36 35 37 37 35 43 36 35 37 36 35 37 31 35 35 33 30 32
++31 35 35 28 35 38 31 35 35 28 35 38 31 35 35 28 30 35 31 35 35 30 30 34
++30 30 34 30 30 34 30 30 34 33 30 36 30 30 34 33 30 36 30 30 34 30 30 34
++30 30 34 30 30 34 26 30 28 30 30 34 30 30 34 33 30 30 31 35 35 33 30 32
++31 35 35 33 30 32 31 35 35 33 30 32 33 30 32 33 30 30 33 30 30 33 30 30
++33 30 32 33 30 32 31 35 35 33 30 30 33 30 30 33 30 30 33 30 32 33 30 32
++33 30 32 33 30 32 26 24 32 33 30 30 33 30 32 26 30 28 26 24 32 33 30 30
++23 20 24 26 30 28 26 24 32 33 30 30 23 20 24 26 30 28 26 24 32 33 30 30
++23 20 24 26 24 32 26 30 28 26 24 32 26 30 28 26 30 28 33 30 30 26 24 32
++26 24 32 33 30 32 26 24 32 33 30 30 26 24 32 33 30 30 26 30 28 22 25 24
++26 24 32 33 30 30 26 24 32 26 30 28 33 30 30 26 24 32 26 30 28 33 30 30
++26 24 32 33 30 30 26 24 32 26 24 32 26 30 28 26 24 32 26 30 28 26 30 28
++30 30 34 30 30 34 36 35 37 36 35 37 36 35 37 33 39 38 36 35 37 37 35 43
++36 35 37 42 38 42 36 35 37 42 41 42 47 39 42 47 44 42 47 44 42 47 39 42
++47 44 42 55 39 37 47 44 42 47 44 42 47 44 42 47 39 42 47 44 42 36 35 37
++53 35 37 42 38 42 36 35 37 47 47 21 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 41 42 36 35 37
++42 38 42 36 35 37 36 35 37 31 35 35 36 35 37 33 30 32 33 30 32 26 30 28
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++26 24 32 33 30 30 22 25 24 33 30 30 22 25 24 33 30 30 33 30 30 33 30 30
++33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35
++33 30 30 52 30 35 33 30 30 52 30 35 32 39 24 52 30 35 33 30 30 53 35 37
++53 35 17 53 35 37 53 35 37 53 35 37 52 30 35 53 35 17 33 30 30 52 30 35
++36 35 37 52 30 35 33 30 32 34 30 15 33 30 30 34 30 15 33 30 30 28 13 18
++33 30 30 33 30 30 33 30 30 34 30 15 23 20 24 33 30 30 23 20 24 26 30 28
++26 30 28 26 24 32 26 30 28 26 24 32 25 30 29 33 30 30 33 30 30 26 30 28
++33 30 30 33 30 30 33 30 32 33 30 32 33 30 32 36 35 37 33 30 32 33 30 32
++36 35 37 33 30 32 36 35 37 36 35 37 36 35 37 42 41 42 36 35 37 42 41 42
++42 41 42 42 41 42 35 46 43 43 42 50 48 50 48 43 42 50 48 44 48 45 57 61
++45 57 61 45 57 61 54 57 61 54 57 61 59 69 70 59 57 61 63 59 71 59 57 61
++59 57 61 59 57 61 54 57 61 54 57 61 48 50 48 54 57 61 48 50 48 48 44 48
++48 50 48 48 44 48 48 44 48 42 47 42 43 42 50 42 41 42 42 41 42 42 41 42
++
++34 30 15 33 30 30 34 30 15 33 30 30 29 35 19 33 30 30 33 30 30 34 30 15
++33 30 30 34 30 15 33 30 30 34 30 15 33 30 30 26 25 15 33 30 30 23 20 24
++34 30 15 23 18 22 23 18 22 23 18 22 14 16 17 17 12 17 17 12 17 14 16 17
++17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 13 4 7 7 12 13 13 4 7
++7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 17 12 17 7 12 13 7 12 13
++13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 7 12 13
++13 4 7 7 12 13 7 12 13 13 4 7 7 12 13 7 12 13 7 10 17 13 4 7
++7 10 17 17 12 17 7 10 17 17 12 17 7 12 13 7 10 17 17 12 17 7 10 17
++13 4 7 7 10 17 13 4 7 7 10 17 7 12 13 17 12 17 7 12 13 14 16 17
++14 16 17 23 18 22 23 18 22 22 25 24 22 25 24 22 25 24 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 32 53 35 37 42 41 42 53 35 37 47 44 42
++51 49 42 55 55 48 59 55 55 59 55 55 59 55 55 65 55 54 59 57 61 65 63 61
++65 57 61 65 63 61 65 63 61 75 63 62 75 63 62 75 72 67 75 72 67 75 72 67
++75 63 62 75 72 67 75 63 62 75 63 62 75 72 67 75 63 62 75 59 67 75 63 62
++75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 88 66 70 75 72 67 88 66 70
++75 81 69 75 72 67 75 81 76 75 64 82 75 72 67 75 64 82 59 69 70 65 63 61
++63 59 71 59 57 61 59 55 55 59 55 55 54 57 61 52 55 48 54 57 61 52 55 48
++54 57 61 48 44 48 48 44 48 43 42 50 42 47 42 42 41 42 42 38 42 36 35 37
++36 35 37 36 35 37 33 30 32 36 35 37 33 30 30 36 35 37 36 35 37 33 30 30
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 39 38 36 35 37 33 39 38
++37 35 43 31 35 35 33 39 38 28 35 38 31 35 35 28 30 35 28 35 38 37 35 43
++34 40 43 37 35 43 34 40 43 34 40 43 34 40 43 32 40 58 43 42 50 43 42 50
++43 42 50 43 42 50 45 57 61 35 47 50 45 57 61 32 40 58 57 43 64 32 40 58
++43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 42 41 42
++37 35 43 36 35 37 36 35 37 36 35 37 33 30 32 33 30 32 33 30 32 36 35 37
++33 30 32 33 30 36 33 30 36 33 30 36 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 37 35 43 36 35 37 36 35 37
++36 35 37 36 35 37 33 30 36 31 35 35 30 30 34 30 30 34 22 25 24 26 30 28
++26 24 32 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24
++23 20 24 26 30 28 22 25 24 34 30 15 26 24 32 33 30 30 33 30 30 33 30 30
++34 30 15 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 34 30 15 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 32 39 24 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 53 35 17 36 35 37 32 39 24 52 30 35
++32 39 24 52 30 35 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 33 30 30
++33 30 30 33 30 30 33 30 30 52 30 35 34 30 15 33 30 30 33 30 30 52 30 15
++33 30 30 53 35 17 52 30 35 52 30 15 52 30 35 52 30 15 52 30 15 52 30 35
++52 30 15 49 13 16 52 30 35 49 13 16 49 13 16 52 30 15 101 74 26 176 103 41
++219 175 47 219 175 47 176 103 41 219 175 47 219 175 47 176 103 41 219 175 47 219 175 47
++219 175 47 219 175 47 219 175 47 176 103 41 219 175 47 219 175 47 201 146 124 219 175 47
++201 146 124 157 148 53 168 102 88 176 103 41 117 114 76 176 103 41 117 114 76 168 102 88
++168 146 127 201 146 124 177 171 115 168 102 88 117 114 76 120 63 71 117 112 45 117 99 86
++117 99 86 138 102 108 146 151 137 185 202 202 208 221 247 201 216 228 201 216 228 208 221 247
++240 251 247 221 238 247 201 216 228 201 216 228 231 239 247 240 251 247 240 251 247 240 251 247
++240 251 247 251 251 247 251 251 247 251 251 247 240 251 247 240 251 247 240 251 247 240 251 247
++240 251 247 235 238 247 235 238 247 231 239 247 231 239 247 240 251 247 231 239 247 240 251 247
++240 251 247 231 239 247 240 251 247 240 251 247 246 237 247 240 251 247 246 237 247 240 251 247
++240 251 247 240 251 247 235 238 247 240 251 247 240 251 247 235 238 247 240 251 247 246 237 247
++240 251 247 235 238 247 235 238 247 231 239 247 240 251 247 240 251 247 240 251 247 240 251 247
++240 251 247 246 237 247 240 251 247 246 237 247 240 251 247 240 251 247 240 251 247 240 251 247
++240 251 247 246 237 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 251 251 247
++240 251 247 251 251 247 251 251 247 246 237 247 232 215 228 188 180 202 189 165 168 168 146 127
++168 146 127 168 146 127 168 146 127 201 146 124 168 146 127 163 117 123 168 102 88 138 126 108
++168 102 88 117 99 86 138 102 108 163 117 123 163 117 123 195 113 123 166 156 164 163 117 123
++88 83 74 53 46 48 42 41 42 48 44 48 43 42 50 42 41 42 42 38 42 43 42 50
++42 38 42 36 35 37 37 35 43 36 35 37 31 35 35 31 35 35 33 30 36 30 30 34
++30 30 34 28 30 35 28 30 35 23 30 35 23 30 35 25 30 29 25 30 29 28 30 35
++28 30 35 31 35 35 33 30 36 31 35 35 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 42 41 42 42 41 42 42 41 42 47 39 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 42 47 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 42 47 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 38 42 36 35 37 42 38 42 42 41 42 42 41 42 43 42 50 43 42 50
++48 44 48 43 42 50 45 57 61 53 46 48 45 57 61 54 57 61 48 50 48 54 57 61
++48 44 48 45 57 61 57 43 64 45 57 61 54 57 61 45 57 61 54 57 61 54 57 61
++54 57 61 54 57 61 48 50 48 48 44 48 48 50 48 43 42 50 48 44 48 43 42 50
++42 41 42 42 38 42 36 35 37 36 35 37 33 30 36 36 35 37 33 30 36 31 35 35
++31 35 35 33 30 36 28 35 38 31 35 35 33 30 36 31 35 35 31 35 35 31 35 35
++33 30 36 31 35 35 31 35 35 33 30 36 31 35 35 28 30 35 28 30 35 28 30 35
++30 30 34 30 30 34 30 30 34 30 30 34 33 30 32 31 35 35 33 30 32 31 35 35
++36 35 37 33 30 32 31 35 35 33 30 32 31 35 35 33 30 30 33 30 30 33 30 30
++31 35 35 36 35 37 33 30 30 33 30 32 36 35 37 33 30 30 33 30 32 33 30 32
++33 30 32 33 30 32 33 30 32 33 30 32 26 24 32 33 30 30 26 24 32 33 30 30
++26 24 32 33 30 30 23 20 24 33 30 30 26 24 32 26 30 28 26 24 32 26 30 28
++33 30 30 26 24 32 26 24 32 33 30 30 26 24 32 26 30 28 26 24 32 33 30 30
++33 30 32 33 30 32 33 30 32 26 24 32 33 30 30 26 24 32 26 24 32 33 30 30
++23 20 24 33 30 30 26 24 32 33 30 30 26 24 32 33 30 30 26 24 32 26 30 28
++26 30 28 30 30 34 26 30 28 26 30 28 26 30 28 26 30 28 26 24 32 30 30 34
++30 30 34 31 35 35 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 42 38 42
++42 38 42 42 38 42 42 41 42 42 41 42 47 44 42 47 39 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 39 42 47 39 42 47 39 42 47 39 42 36 35 37
++53 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42
++36 35 37 36 35 37 36 35 37 42 41 42 33 39 38 42 41 42 36 35 37 33 39 38
++42 38 42 33 39 38 33 39 38 36 35 37 36 35 37 36 35 37 33 30 32 33 30 32
++33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 33 30 32 33 30 32 33 30 30
++26 30 28 33 30 30 26 24 32 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30
++33 30 30 33 30 32 33 30 30 33 30 30 52 30 35 33 30 30 52 30 35 33 30 30
++53 35 17 33 30 32 52 30 35 36 35 37 52 30 35 52 30 35 47 47 21 52 30 35
++53 35 37 53 35 37 53 35 17 52 30 35 52 30 35 52 30 35 52 30 35 53 35 17
++52 30 35 32 39 24 52 30 35 33 30 30 52 30 15 33 30 30 34 30 15 33 30 30
++33 30 30 33 30 30 28 13 18 33 30 30 23 20 24 26 30 28 23 20 24 33 30 30
++26 24 32 26 30 28 26 24 32 33 30 30 30 30 34 26 24 32 26 30 28 33 30 30
++26 30 28 33 30 30 26 30 28 33 30 32 33 30 32 33 30 36 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 42 41 42 42 41 42
++42 41 42 42 41 42 43 42 50 43 42 50 43 42 50 48 50 48 45 57 61 43 42 50
++48 50 48 54 57 61 54 57 61 54 57 61 59 57 61 59 57 61 53 63 61 59 57 61
++53 63 61 59 57 61 59 55 55 59 55 55 54 57 61 53 46 48 48 50 48 48 50 48
++48 50 48 43 42 50 42 47 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42
++
++33 30 30 34 30 15 34 30 15 33 30 30 26 30 28 34 30 15 33 30 30 33 30 30
++34 30 15 33 30 30 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 22 25 24
++23 20 24 22 24 13 15 22 17 23 18 22 17 12 17 14 16 17 17 12 17 15 17 7
++13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7
++7 12 13 7 12 13 7 12 13 7 12 13 7 12 13 13 4 7 7 12 13 13 4 7
++7 12 13 3 4 9 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 7 12 13
++7 12 13 17 12 17 7 12 13 7 12 13 7 12 13 17 12 17 7 12 13 7 10 17
++13 4 7 7 12 13 7 10 17 13 4 7 7 10 17 13 4 7 7 12 13 13 4 7
++7 10 17 7 12 13 7 10 17 7 10 17 13 4 7 7 12 13 14 16 17 14 16 17
++23 18 22 23 20 24 23 20 24 22 25 24 23 20 24 33 30 30 33 30 30 33 30 30
++33 30 32 33 30 30 36 35 37 36 35 37 36 35 37 47 47 21 42 41 42 51 49 42
++53 46 48 59 55 55 59 55 55 59 55 55 65 55 54 65 63 61 65 55 54 65 63 61
++65 63 61 65 63 61 75 63 62 65 63 61 65 63 61 75 72 67 75 63 62 75 72 67
++88 66 70 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62
++75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 72 67
++88 66 70 75 72 67 75 64 82 75 72 67 63 59 71 75 72 67 59 69 70 65 63 61
++59 57 61 54 57 61 54 57 61 52 55 48 59 55 55 59 55 55 53 46 48 54 57 61
++48 50 48 48 50 48 48 50 48 43 42 50 48 44 48 42 41 42 42 38 42 36 35 37
++36 35 37 36 35 37 36 35 37 33 30 30 36 35 37 42 38 42 32 39 24 36 35 37
++36 35 37 33 39 38 36 35 37 36 35 37 42 38 42 37 35 43 36 35 37 36 35 37
++36 35 37 37 35 43 33 39 38 37 35 43 28 35 38 36 35 37 28 35 38 28 35 38
++37 35 43 28 35 38 33 39 38 37 35 43 43 42 50 37 35 43 35 47 50 43 42 50
++45 57 61 35 47 50 43 42 50 43 42 50 32 40 58 45 57 61 43 42 50 43 42 50
++32 40 58 43 42 50 32 40 58 35 47 50 43 42 50 43 42 50 42 38 42 37 35 43
++36 35 37 36 35 37 33 30 36 33 30 32 33 30 32 33 30 32 36 35 37 33 30 32
++33 30 36 33 30 36 36 35 37 36 35 37 36 35 37 36 35 37 33 30 36 36 35 37
++36 35 37 37 35 43 36 35 37 37 35 43 36 35 37 36 35 37 42 38 42 42 38 42
++36 35 37 36 35 37 36 35 37 33 30 32 33 30 32 30 30 34 26 30 28 26 24 32
++22 25 24 26 30 28 26 24 32 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24
++23 20 24 23 20 24 23 20 24 23 20 24 33 30 30 34 30 15 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 28 13 18 33 30 30 33 30 30 33 30 30 52 30 35
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35
++33 30 30 33 30 30 52 30 35 36 35 37 33 30 30 36 35 37 33 30 30 36 35 37
++33 30 32 36 35 37 33 30 30 52 30 35 32 39 24 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30
++33 30 30 52 30 35 55 39 37 59 36 42 59 36 42 59 36 42 59 36 42 59 36 42
++59 36 42 55 39 37 52 30 35 49 13 16 26 12 13 76 46 20 176 103 41 227 171 124
++227 171 124 219 175 47 176 103 41 219 175 47 176 103 41 219 175 47 219 175 47 176 103 41
++219 175 47 176 103 41 219 175 47 227 171 124 219 175 47 195 113 123 219 175 47 168 102 88
++219 175 47 201 146 124 201 146 124 146 150 115 168 102 88 168 102 88 117 114 76 168 102 88
++117 114 76 168 102 88 168 146 127 168 146 127 168 102 88 117 99 86 101 74 26 88 44 51
++88 73 31 138 126 108 188 180 202 232 215 228 201 216 228 194 199 226 221 238 247 231 239 247
++201 216 228 150 168 183 129 144 153 166 174 181 208 221 247 251 251 247 251 251 247 246 237 247
++251 251 247 240 251 247 251 251 247 251 251 247 240 251 247 251 251 247 240 251 247 246 237 247
++240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247
++231 239 247 240 251 247 235 238 247 235 238 247 240 251 247 240 251 247 240 251 247 246 237 247
++240 251 247 235 238 247 240 251 247 240 251 247 235 238 247 240 251 247 235 238 247 240 251 247
++235 238 247 240 251 247 231 239 247 240 251 247 231 239 247 240 251 247 240 251 247 246 237 247
++251 251 247 240 251 247 240 251 247 240 251 247 240 251 247 246 237 247 240 251 247 246 237 247
++240 251 247 240 251 247 240 251 247 246 237 247 251 251 247 251 251 247 240 251 247 240 251 247
++246 237 247 240 251 247 246 237 247 251 251 247 251 251 247 232 215 228 208 215 180 189 165 168
++163 117 123 168 146 127 163 117 123 168 146 127 168 102 88 168 146 127 163 117 123 168 102 88
++168 102 88 120 63 71 120 63 71 120 63 71 120 63 71 117 99 86 138 102 108 117 99 86
++75 63 62 47 39 42 42 38 42 43 42 50 48 44 48 43 42 50 43 42 50 43 42 50
++42 41 42 42 38 42 36 35 37 36 35 37 36 35 37 31 35 35 31 35 35 30 30 34
++30 30 34 25 30 29 23 30 35 25 30 29 23 30 35 25 30 29 23 30 35 28 30 35
++31 35 35 33 30 36 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++42 38 42 36 35 37 42 38 42 42 41 42 42 41 42 42 41 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 49 42 47 44 42 51 49 42 51 49 42
++51 49 42 53 46 48 47 44 42 53 46 48 47 44 42 51 49 42 51 49 42 47 44 42
++47 44 42 47 44 42 47 44 42 42 47 42 42 41 42 42 41 42 42 41 42 34 40 43
++42 41 42 36 35 37 42 38 42 36 35 37 37 35 43 42 41 42 42 47 42 42 41 42
++42 41 42 48 44 48 43 42 50 45 57 61 48 44 48 43 42 50 43 42 50 43 42 50
++45 57 61 43 42 50 45 57 61 48 50 48 48 50 48 48 50 48 45 57 61 48 50 48
++54 57 61 53 46 48 45 57 61 43 42 50 43 42 50 43 42 50 42 41 42 42 41 42
++42 41 42 36 35 37 36 35 37 36 35 37 36 35 37 33 30 36 31 35 35 30 30 34
++30 30 34 31 35 35 28 35 38 31 35 35 28 35 38 33 30 36 33 30 36 36 35 37
++28 35 38 33 30 36 33 30 36 28 35 38 33 30 36 31 35 35 33 30 36 28 30 35
++30 30 34 30 30 34 30 30 34 30 30 34 31 35 35 33 30 32 31 35 35 31 35 35
++33 30 32 31 35 35 33 30 32 31 35 35 33 30 32 33 30 30 33 30 30 31 35 35
++33 30 32 33 30 30 36 35 37 33 30 32 36 35 37 33 30 32 33 30 32 33 30 32
++33 30 36 33 30 32 30 30 34 33 30 32 33 30 32 26 24 32 26 30 28 26 24 32
++26 30 28 33 30 30 26 24 32 33 30 30 23 20 24 33 30 30 26 24 32 33 30 30
++23 20 24 33 30 30 26 30 28 26 24 32 26 30 28 33 30 30 30 30 34 33 30 32
++33 30 32 33 30 32 33 30 32 33 30 30 33 30 30 26 24 32 33 30 30 26 30 28
++26 24 32 26 30 28 33 30 30 26 24 32 26 30 28 26 24 32 33 30 30 26 24 32
++26 30 28 30 30 34 33 30 30 26 24 32 26 30 28 26 24 32 26 30 28 26 30 28
++30 30 34 33 30 32 31 35 35 31 35 35 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 42 38 42 42 41 42 53 35 37 42 41 42 47 44 42 47 39 42 47 39 42
++55 39 37 36 35 37 47 44 42 36 35 37 53 35 37 36 35 37 36 35 37 55 39 37
++36 35 37 42 41 42 53 35 37 36 35 37 53 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++42 41 42 36 35 37 33 39 38 36 35 37 36 35 37 36 35 37 31 35 35 33 30 32
++33 30 30 33 30 30 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 26 24 32 33 30 30 33 30 30
++33 30 32 33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35
++33 30 30 52 30 35 33 30 30 52 30 35 53 35 17 36 35 37 52 30 35 53 35 37
++52 30 35 53 35 37 52 30 35 53 35 17 52 30 35 52 30 35 47 47 21 53 35 37
++33 30 30 52 30 35 53 35 17 33 30 30 33 30 32 52 30 15 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 23 20 24 33 30 30 23 20 24
++26 30 28 26 24 32 26 30 28 26 30 28 26 30 28 33 30 30 26 24 32 26 30 28
++26 24 32 33 30 30 33 30 30 33 30 32 33 30 32 36 35 37 33 30 32 33 30 30
++36 35 37 36 35 37 36 35 37 36 35 37 42 41 42 36 35 37 42 38 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 47 42 43 42 50 48 44 48 48 44 48 43 42 50
++43 42 50 43 42 50 53 46 48 54 57 61 54 57 61 54 57 61 59 57 61 54 57 61
++59 57 61 59 57 61 54 57 61 54 57 61 59 55 55 54 57 61 54 57 61 48 50 48
++48 50 48 48 50 48 48 44 48 47 44 42 43 42 50 42 41 42 42 41 42 42 41 42
++
++34 30 15 33 30 30 33 30 30 34 30 15 33 30 30 34 30 15 33 30 30 34 30 15
++33 30 30 33 30 30 34 30 15 33 30 30 26 25 15 34 30 15 23 18 22 23 20 24
++23 20 24 23 18 22 14 16 17 17 12 17 14 16 17 17 12 17 7 12 13 17 12 17
++7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 17 12 17 7 12 13
++13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 7 12 13
++13 4 7 7 12 13 7 12 13 7 12 13 7 12 13 13 4 7 7 12 13 7 12 13
++13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 17 12 17
++7 12 13 13 4 7 7 12 13 7 12 13 7 12 13 7 12 13 7 10 17 7 10 17
++17 12 17 7 12 13 17 12 17 13 4 7 7 10 17 17 12 17 14 16 17 23 18 22
++23 20 24 22 25 24 26 24 32 33 30 30 33 30 30 33 30 30 33 30 32 36 35 37
++42 38 42 53 35 37 36 35 37 55 39 37 42 41 42 47 39 42 47 44 42 53 46 48
++59 55 55 59 55 55 65 57 61 65 57 61 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 75 63 62 63 59 71 75 72 67 75 63 62 65 63 61 75 72 67 75 72 67
++75 59 67 75 72 67 75 63 62 75 63 62 75 59 67 75 63 62 75 63 62 65 57 61
++75 56 53 65 57 61 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 72 67
++75 72 67 75 72 67 75 59 67 75 72 67 63 59 71 65 63 61 65 63 61 59 57 61
++59 57 61 59 55 55 59 55 55 59 55 55 54 57 61 52 55 48 54 57 61 48 44 48
++53 46 48 48 50 48 43 42 50 48 50 48 42 41 42 42 41 42 42 38 42 36 35 37
++36 35 37 36 35 37 36 35 37 53 35 37 36 35 37 47 39 42 36 35 37 42 47 42
++42 41 42 42 41 42 42 41 42 42 41 42 33 39 38 33 39 38 33 39 38 37 35 43
++33 39 38 36 35 37 37 35 43 31 35 35 36 35 37 28 35 38 36 35 37 34 40 43
++28 35 38 33 39 38 37 35 43 34 40 43 34 40 43 34 40 43 37 35 43 34 40 43
++43 42 50 43 42 50 43 42 50 45 57 61 43 42 50 43 42 50 32 40 58 43 42 50
++43 42 50 43 42 50 43 42 50 43 42 50 35 47 50 37 35 43 34 40 43 37 35 43
++36 35 37 33 30 36 33 30 32 33 30 36 33 30 32 33 30 32 33 30 30 36 35 37
++36 35 37 36 35 37 33 30 32 36 35 37 33 30 32 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 36 35 37 36 35 37 42 38 42
++36 35 37 36 35 37 36 35 37 30 30 34 31 35 35 30 30 34 25 30 29 25 30 29
++26 30 28 26 24 32 22 25 24 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 22 25 24 23 20 24 34 30 15 26 24 32 23 20 24 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 52 30 15
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 49 13 16 33 30 36 33 30 32
++33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 33 30 30 32 39 24 33 30 30
++52 30 35 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 34 30 15 52 30 35
++34 30 15 33 30 30 49 13 16 49 13 16 49 13 16 52 30 15 49 13 16 76 18 19
++76 46 20 88 44 51 88 30 18 88 44 51 122 49 24 88 44 51 120 63 71 122 49 24
++88 44 51 122 49 24 102 33 26 88 30 18 88 30 18 122 49 24 120 63 71 176 103 41
++168 102 88 195 113 123 219 175 47 176 103 41 195 113 123 176 103 41 219 175 47 195 113 123
++219 175 47 195 113 123 219 175 47 227 171 124 219 175 47 227 171 124 219 175 47 227 171 124
++219 175 47 176 103 41 219 175 47 201 146 124 219 175 47 201 146 124 157 148 53 176 103 41
++176 103 41 117 114 76 176 103 41 168 102 88 117 127 86 168 102 88 88 73 62 88 44 51
++88 73 62 145 140 145 185 202 202 185 202 202 201 216 228 226 221 247 221 238 247 201 216 228
++188 180 202 129 144 153 129 144 153 166 176 200 233 241 227 251 251 247 240 251 247 240 251 247
++240 251 247 251 251 247 251 251 247 240 251 247 251 251 247 240 251 247 246 237 247 240 251 247
++240 251 247 246 237 247 240 251 247 240 251 247 231 239 247 240 251 247 231 239 247 231 239 247
++235 238 247 235 238 247 235 238 247 240 251 247 246 237 247 240 251 247 235 238 247 240 251 247
++235 238 247 240 251 247 246 237 247 240 251 247 246 237 247 240 251 247 235 238 247 240 251 247
++235 238 247 235 238 247 240 251 247 235 238 247 240 251 247 240 251 247 240 251 247 240 251 247
++240 251 247 246 237 247 240 251 247 246 237 247 240 251 247 240 251 247 235 238 247 240 251 247
++246 237 247 240 251 247 246 237 247 240 251 247 240 251 247 251 251 247 246 237 247 240 251 247
++240 251 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 246 237 247 222 171 182
++177 169 143 168 146 127 163 117 123 163 117 123 168 146 127 168 102 88 168 102 88 138 126 108
++117 99 86 117 99 86 101 74 26 88 44 51 88 73 62 120 63 71 101 83 74 101 60 73
++60 49 42 55 39 37 47 39 42 48 44 48 48 44 48 48 44 48 42 41 42 42 41 42
++42 41 42 42 38 42 37 35 43 36 35 37 36 35 37 31 35 35 33 30 36 28 30 35
++30 30 34 28 30 35 23 30 35 23 30 35 28 30 35 25 30 29 28 30 35 30 30 34
++33 30 36 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 39 38
++42 38 42 33 39 38 42 38 42 36 35 37 36 35 37 42 41 42 33 39 38 42 41 42
++42 41 42 42 38 42 42 41 42 42 41 42 47 44 42 47 44 42 47 44 42 48 44 48
++48 50 48 47 44 42 47 49 42 47 49 42 47 44 42 47 44 42 47 49 42 47 44 42
++51 49 42 51 49 42 48 44 48 51 49 42 48 44 48 51 49 42 53 46 48 51 49 42
++53 46 48 51 49 42 53 46 48 51 49 42 51 49 42 51 49 42 47 44 42 47 44 42
++51 49 42 47 44 42 47 44 42 42 47 42 47 44 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 38 42 36 35 37 36 35 37 42 41 42 33 39 38 42 38 42 34 40 43
++42 41 42 42 41 42 43 42 50 42 41 42 43 42 50 43 42 50 43 42 50 43 42 50
++43 42 50 43 42 50 43 42 50 48 50 48 45 57 61 48 44 48 48 44 48 43 42 50
++45 57 61 48 44 48 43 42 50 43 42 50 42 47 42 42 41 42 42 41 42 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 33 30 36 31 35 35 31 35 35 33 30 32
++31 35 35 30 30 34 31 35 35 31 35 35 36 35 37 31 35 35 33 30 36 30 30 34
++28 30 35 31 35 35 28 30 35 31 35 35 31 35 35 31 35 35 33 30 36 28 30 35
++30 30 34 30 30 34 33 30 32 31 35 35 33 30 32 31 35 35 33 30 36 33 30 32
++33 30 32 33 30 32 31 35 35 33 30 32 33 30 32 31 35 35 33 30 30 33 30 30
++36 35 37 33 30 30 33 30 32 36 35 37 33 30 32 33 30 32 31 35 35 33 30 32
++33 30 32 33 30 32 33 30 32 30 30 34 33 30 30 26 30 28 33 30 30 26 24 32
++26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 23 20 24 26 30 28 26 24 32
++26 30 28 26 24 32 26 24 32 33 30 30 30 30 34 30 30 34 30 30 34 33 30 32
++26 24 32 33 30 32 26 24 32 33 30 30 26 24 32 33 30 30 26 30 28 26 24 32
++33 30 30 26 24 32 22 25 24 33 30 30 26 24 32 33 30 30 26 30 28 33 30 30
++26 24 32 26 30 28 26 24 32 26 30 28 26 30 28 26 30 28 26 24 32 30 30 34
++30 30 34 33 30 32 31 35 35 33 30 36 36 35 37 36 35 37 36 35 37 42 38 42
++42 38 42 42 38 42 42 41 42 42 41 42 42 38 42 47 39 42 47 44 42 47 39 42
++47 44 42 47 44 42 36 35 37 47 47 21 42 38 42 42 41 42 53 35 37 32 39 24
++47 39 42 36 35 37 32 39 24 42 38 42 32 39 24 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 42 41 42 36 35 37 36 35 37 42 41 42 36 35 37
++42 41 42 36 35 37 36 35 37 36 35 37 33 30 32 36 35 37 36 35 37 33 30 32
++36 35 37 33 30 30 36 35 37 36 35 37 33 30 30 36 35 37 33 30 30 33 30 32
++33 30 32 33 30 30 33 30 30 33 30 30 26 30 28 34 30 15 33 30 30 33 30 30
++33 30 30 52 30 35 33 30 30 33 30 30 52 30 35 34 30 15 52 30 35 33 30 30
++33 30 30 52 30 35 53 35 17 42 38 42 52 30 35 53 35 37 52 30 35 47 47 21
++52 30 35 52 30 35 52 30 35 53 35 37 53 35 37 53 35 37 53 35 37 52 30 35
++47 47 21 36 35 37 52 30 35 32 39 24 52 30 35 33 30 30 33 30 30 53 35 17
++33 30 32 33 30 30 33 30 30 34 30 15 23 20 24 33 30 30 23 20 24 33 30 30
++22 25 24 26 24 32 22 25 24 30 30 34 26 24 32 26 30 28 26 30 28 22 25 24
++26 30 28 33 30 30 33 30 30 33 30 32 33 30 32 36 35 37 33 30 32 36 35 37
++36 35 37 36 35 37 53 35 37 36 35 37 42 41 42 36 35 37 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50
++48 50 48 45 57 61 48 44 48 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61
++54 57 61 59 55 55 59 55 55 48 50 48 59 55 55 48 50 48 53 46 48 48 50 48
++48 44 48 48 44 48 42 47 42 47 44 42 42 47 42 42 41 42 42 41 42 42 41 42
++
++33 30 30 34 30 15 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 26 25 15
++33 30 30 34 30 15 26 24 32 34 30 15 26 24 32 26 25 15 23 20 24 23 18 22
++23 18 22 23 18 22 17 12 17 14 16 17 17 12 17 17 12 17 17 12 17 7 12 13
++13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 17 12 17 7 12 13 13 4 7
++7 12 13 17 12 17 13 4 7 7 12 13 7 12 13 7 12 13 13 4 7 7 12 13
++7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 7 12 13
++7 12 13 7 12 13 17 12 17 7 12 13 7 12 13 13 4 7 7 12 13 13 4 7
++7 12 13 7 12 13 7 12 13 13 4 7 7 12 13 13 4 7 17 12 17 7 12 13
++7 12 13 7 12 13 7 10 17 7 10 17 17 12 17 14 16 17 23 18 22 23 20 24
++26 30 28 26 24 32 33 30 30 33 30 30 33 30 32 36 35 37 36 35 37 36 35 37
++42 38 42 42 41 42 47 39 42 47 44 42 47 44 42 48 44 48 53 46 48 55 55 48
++59 55 55 59 57 61 65 55 54 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 75 59 67 75 72 67 63 59 71 75 59 67 75 72 67 63 59 71 75 59 67
++75 72 67 63 59 71 75 72 67 65 63 61 75 63 62 65 57 61 65 57 61 65 57 61
++65 55 54 75 56 53 65 55 54 75 56 53 65 57 61 75 63 62 75 59 67 63 59 71
++75 59 67 75 64 82 65 63 61 75 59 67 65 63 61 65 63 61 59 57 61 59 55 55
++59 55 55 54 57 61 52 55 48 59 55 55 59 55 55 59 55 55 52 55 48 53 46 48
++48 50 48 48 44 48 48 50 48 48 44 48 47 44 42 42 41 42 42 38 42 36 35 37
++42 38 42 42 38 42 42 38 42 36 35 37 42 41 42 36 35 37 47 44 42 36 35 37
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 36 35 37 33 39 38
++37 35 43 37 35 43 33 39 38 36 35 37 36 35 37 36 35 37 33 39 38 28 35 38
++36 35 37 33 39 38 33 39 38 33 39 38 34 40 43 34 40 43 34 40 43 37 35 43
++34 40 43 34 40 43 35 47 50 43 42 50 43 42 50 43 42 50 43 42 50 35 47 50
++43 42 50 42 41 42 34 40 43 37 35 43 37 35 43 37 35 43 31 35 35 31 35 35
++33 30 36 33 30 36 33 30 36 33 30 32 33 30 32 33 30 32 33 30 30 36 35 37
++33 30 32 36 35 37 33 30 32 36 35 37 33 30 32 36 35 37 36 35 37 36 35 37
++33 30 32 36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 42 38 42 36 35 37
++37 35 43 36 35 37 36 35 37 31 35 35 30 30 34 30 30 34 25 30 29 26 24 32
++25 30 29 25 30 29 25 30 29 22 25 24 22 25 24 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 33 30 30 33 30 30 26 25 15
++33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 52 30 35 33 30 30 34 30 15 33 30 30 33 30 32 33 30 32 33 30 32
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 52 30 15 33 30 30 32 39 24 33 30 30 33 30 30
++32 39 24 33 30 30 53 35 17 33 30 30 52 30 35 33 30 30 52 30 35 34 30 15
++34 30 15 49 13 16 52 30 35 52 30 15 52 30 35 76 18 19 88 30 18 88 44 51
++102 33 26 102 33 26 102 33 26 122 49 24 102 33 26 167 63 71 161 55 23 122 49 24
++167 63 71 122 49 24 122 49 24 122 49 24 167 63 71 161 55 23 167 63 71 161 55 23
++161 55 23 161 55 23 167 63 71 167 63 71 176 103 41 176 103 41 195 113 123 176 103 41
++176 103 41 219 175 47 195 113 123 176 103 41 219 175 47 176 103 41 219 175 47 219 175 47
++219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47
++201 146 124 157 148 53 168 102 88 176 103 41 117 112 45 168 102 88 117 114 76 101 83 74
++117 99 86 145 140 145 188 180 202 194 199 226 208 221 247 208 221 247 194 199 226 194 199 226
++166 176 200 166 176 200 188 180 202 226 221 247 240 251 247 251 251 247 251 251 247 240 251 247
++251 251 247 240 251 247 251 251 247 251 251 247 251 251 247 240 251 247 251 251 247 240 251 247
++240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 231 239 247 231 239 247 231 239 247
++240 251 247 235 238 247 240 251 247 235 238 247 240 251 247 246 237 247 240 251 247 240 251 247
++246 237 247 240 251 247 240 251 247 246 237 247 246 237 247 235 238 247 240 251 247 235 238 247
++240 251 247 240 251 247 246 237 247 240 251 247 240 251 247 246 237 247 240 251 247 246 237 247
++240 251 247 240 251 247 246 237 247 240 251 247 246 237 247 235 238 247 240 251 247 240 251 247
++240 251 247 235 238 247 240 251 247 240 251 247 251 251 247 240 251 247 240 251 247 240 251 247
++240 251 247 246 237 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 235 238 247
++232 215 228 189 165 168 168 146 127 146 150 115 168 102 88 138 126 108 138 126 108 168 102 88
++117 99 86 120 63 71 101 60 73 88 73 62 120 63 71 101 83 74 120 63 71 63 55 45
++52 30 35 53 35 37 47 39 42 48 44 48 47 44 42 43 42 50 42 41 42 42 38 42
++42 38 42 42 38 42 37 35 43 36 35 37 36 35 37 31 35 35 30 30 34 28 30 35
++28 30 35 28 30 35 23 30 35 25 30 29 23 30 35 28 30 35 30 30 34 33 30 36
++36 35 37 37 35 43 36 35 37 36 35 37 36 35 37 37 35 43 42 38 42 33 39 38
++33 39 38 42 41 42 36 35 37 42 41 42 42 41 42 42 41 42 42 41 42 42 47 42
++47 44 42 48 50 48 47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 48 50 48
++53 46 48 48 50 48 53 46 48 48 50 48 53 46 48 51 49 42 51 49 42 51 49 42
++51 49 42 51 49 42 51 49 42 53 46 48 51 49 42 51 49 42 51 49 42 51 49 42
++53 46 48 55 55 48 53 46 48 51 49 42 53 46 48 53 46 48 47 44 42 51 49 42
++47 44 42 47 44 42 47 44 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 39 38
++36 35 37 33 39 38 36 35 37 33 39 38 36 35 37 34 40 43 37 35 43 34 40 43
++34 40 43 43 42 50 43 42 50 43 42 50 43 42 50 48 50 48 43 42 50 48 44 48
++47 44 42 43 42 50 42 41 42 42 41 42 42 41 42 42 38 42 36 35 37 36 35 37
++37 35 43 36 35 37 36 35 37 36 35 37 36 35 37 33 30 36 33 30 32 31 35 35
++33 30 32 31 35 35 33 30 32 33 30 32 36 35 37 31 35 35 31 35 35 30 30 34
++30 30 34 28 30 35 30 30 34 31 35 35 28 30 35 31 35 35 30 30 34 30 30 34
++30 30 34 30 30 34 33 30 32 31 35 35 33 30 36 31 35 35 33 30 32 36 35 37
++33 30 32 31 35 35 33 30 32 31 35 35 33 30 30 36 35 37 32 39 24 36 35 37
++33 30 30 36 35 37 36 35 37 36 35 37 33 30 36 33 30 36 36 35 37 33 30 32
++33 30 32 31 35 35 33 30 32 33 30 32 26 30 28 33 30 30 26 30 28 26 30 28
++26 30 28 26 24 32 26 30 28 23 20 24 26 24 32 22 25 24 26 24 32 26 30 28
++26 24 32 26 30 28 26 24 32 26 24 32 26 24 32 30 30 34 33 30 30 30 30 34
++33 30 32 26 24 32 33 30 30 26 30 28 33 30 30 26 30 28 33 30 30 33 30 30
++26 30 28 33 30 30 26 30 28 33 30 30 22 25 24 33 30 30 26 24 32 26 30 28
++30 30 34 33 30 30 26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 26 30 28
++30 30 34 30 30 34 31 35 35 33 30 32 36 35 37 36 35 37 37 35 43 36 35 37
++42 38 42 42 38 42 42 38 42 42 38 42 42 38 42 47 44 42 47 39 42 47 39 42
++47 39 42 47 44 42 47 39 42 42 38 42 47 39 42 36 35 37 42 38 42 42 38 42
++47 47 21 36 35 37 53 35 37 36 35 37 53 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 42 41 42 36 35 37 42 41 42 36 35 37
++42 41 42 36 35 37 36 35 37 32 39 24 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 52 30 35 32 39 24 33 30 30 36 35 37 33 30 30 36 35 37
++33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 26 30 28 33 30 30
++33 30 30 33 30 30 53 35 17 33 30 30 33 30 30 33 30 30 33 30 30 34 30 15
++52 30 35 34 30 15 52 30 35 52 30 35 52 30 35 52 30 35 52 30 35 52 30 35
++52 30 35 53 35 37 52 30 35 55 39 37 55 39 37 53 35 37 47 47 21 53 35 37
++53 35 37 53 35 37 33 30 30 52 30 35 47 47 21 32 39 24 52 30 35 33 30 30
++52 30 35 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 23 20 24 26 30 28
++26 24 32 22 25 24 22 25 24 26 24 32 30 30 34 26 30 28 26 24 32 26 30 28
++33 30 30 26 30 28 33 30 30 31 35 35 33 30 30 36 35 37 33 30 30 36 35 37
++32 39 24 36 35 37 32 39 24 53 35 37 36 35 37 47 47 21 42 41 42 36 35 37
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 43 42 50 43 42 50
++43 42 50 43 42 50 43 42 50 43 42 50 48 44 48 48 50 48 53 46 48 54 57 61
++59 55 55 52 55 48 48 50 48 59 55 55 48 44 48 54 57 61 48 50 48 53 46 48
++48 44 48 47 44 42 47 44 42 47 44 42 42 41 42 42 41 42 36 35 37 42 41 42
++
++33 30 30 33 30 30 33 30 30 52 30 15 33 30 30 33 30 30 34 30 15 33 30 30
++33 30 30 26 25 15 33 30 30 28 13 18 26 25 15 23 20 24 23 20 24 23 20 24
++23 18 22 14 16 17 17 12 17 14 16 17 17 12 17 7 12 13 13 4 7 7 12 13
++13 4 7 7 12 13 13 4 7 7 10 17 7 12 13 7 12 13 13 4 7 7 12 13
++17 12 17 13 4 7 7 12 13 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7
++7 12 13 7 12 13 17 12 17 7 12 13 7 12 13 17 12 17 7 12 13 7 12 13
++13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 17 12 17 7 12 13 7 12 13
++7 12 13 13 4 7 7 12 13 7 12 13 7 12 13 7 12 13 7 12 13 3 4 9
++13 4 7 7 12 13 17 12 17 17 12 17 14 16 17 23 18 22 22 25 24 22 23 31
++33 30 30 30 30 34 36 35 37 36 35 37 36 35 37 36 35 37 47 39 42 47 39 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 53 46 48 55 55 48 59 55 55
++59 55 55 65 63 61 65 63 61 65 63 61 65 63 61 75 63 62 65 63 61 75 63 62
++75 72 67 63 59 71 75 72 67 75 59 67 75 72 67 65 63 61 75 72 67 75 59 67
++75 72 67 63 59 71 75 63 62 65 63 61 65 57 61 65 55 54 65 55 54 76 44 53
++59 55 55 62 47 47 65 55 54 65 57 61 65 57 61 75 63 62 75 59 67 75 72 67
++63 59 71 75 72 67 65 63 61 65 63 61 65 57 61 65 57 61 65 57 61 59 57 61
++59 55 55 59 55 55 59 55 55 48 50 48 54 57 61 53 46 48 59 55 55 48 50 48
++48 50 48 53 46 48 48 44 48 48 44 48 47 44 42 42 41 42 42 38 42 42 38 42
++42 38 42 42 38 42 42 38 42 36 35 37 42 41 42 47 44 42 42 41 42 42 47 42
++42 41 42 42 47 42 42 41 42 42 47 42 42 41 42 33 39 38 42 41 42 33 39 38
++42 38 42 33 39 38 42 38 42 33 39 38 36 35 37 37 35 43 33 39 38 28 35 38
++34 40 43 36 35 37 33 39 38 33 39 38 28 35 38 37 35 43 33 39 38 34 40 43
++37 35 43 37 35 43 37 35 43 34 40 43 35 47 50 37 35 43 34 40 43 43 42 50
++34 40 43 37 35 43 34 40 43 36 35 37 31 35 35 28 30 35 28 30 35 30 30 34
++31 35 35 36 35 37 33 30 32 33 30 32 33 30 32 33 30 32 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 36 35 37 36 35 37 42 38 42
++36 35 37 36 35 37 36 35 37 31 35 35 30 30 34 30 30 34 25 30 29 25 30 29
++25 30 29 22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 23 20 24 33 30 30 23 20 24 26 25 15 23 20 24 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30
++49 13 16 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 32 33 30 32
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 32 39 24
++33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 34 30 15 33 30 30
++49 13 16 36 35 37 55 39 37 76 44 53 88 44 51 88 44 51 120 63 71 122 49 24
++120 63 71 102 33 26 102 33 26 102 33 26 102 33 26 122 49 24 102 33 26 167 63 71
++102 33 26 102 33 26 122 49 24 167 63 71 102 33 26 167 63 71 161 55 23 161 55 23
++161 55 23 161 55 23 161 55 23 161 55 23 161 55 23 161 55 23 161 55 23 161 55 23
++161 55 23 161 55 23 176 103 41 176 103 41 176 103 41 219 175 47 176 103 41 219 175 47
++176 103 41 219 175 47 176 103 41 195 113 123 219 175 47 195 113 123 219 175 47 227 171 124
++219 175 47 201 146 124 201 146 124 168 102 88 168 102 88 117 114 76 117 99 86 117 99 86
++117 99 86 145 140 145 188 180 202 201 216 228 226 221 247 194 199 226 194 199 226 194 199 226
++201 216 228 201 216 228 201 216 228 231 239 247 240 251 247 251 251 247 240 251 247 246 237 247
++251 251 247 251 251 247 251 251 247 240 251 247 251 251 247 240 251 247 251 251 247 240 251 247
++246 237 247 240 251 247 235 238 247 231 239 247 231 239 247 231 239 247 231 239 247 240 251 247
++231 239 247 240 251 247 235 238 247 240 251 247 240 251 247 240 251 247 240 251 247 246 237 247
++240 251 247 240 251 247 246 237 247 240 251 247 240 251 247 240 251 247 240 251 247 235 238 247
++240 251 247 240 251 247 240 251 247 246 237 247 240 251 247 240 251 247 240 251 247 240 251 247
++240 251 247 246 237 247 240 251 247 240 251 247 240 251 247 240 251 247 235 238 247 240 251 247
++235 238 247 240 251 247 246 237 247 240 251 247 240 251 247 246 237 247 240 251 247 251 251 247
++240 251 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 225 222 201 189 165 168 168 146 127 163 117 123 138 126 108 168 102 88 120 63 71
++120 63 71 101 74 26 101 60 73 101 74 26 117 99 86 101 83 74 88 73 62 76 46 20
++55 39 37 47 39 42 47 39 42 47 39 42 43 42 50 47 44 42 43 42 50 42 41 42
++37 35 43 34 40 43 37 35 43 36 35 37 28 35 38 33 30 36 28 30 35 33 30 36
++30 30 34 28 30 35 28 30 35 23 30 35 28 30 35 28 30 35 30 30 34 33 30 36
++36 35 37 36 35 37 36 35 37 42 38 42 37 35 43 42 38 42 42 41 42 42 41 42
++33 39 38 36 35 37 42 41 42 42 41 42 42 41 42 42 47 42 42 47 42 48 44 48
++48 50 48 48 50 48 48 50 48 47 44 42 47 49 42 47 49 42 48 50 48 52 55 48
++55 55 48 52 55 48 48 50 48 48 50 48 53 46 48 53 46 48 51 49 42 53 46 48
++53 46 48 53 46 48 51 49 42 53 46 48 51 49 42 53 46 48 53 46 48 53 46 48
++51 49 42 53 46 48 51 49 42 53 46 48 51 49 42 51 49 42 47 44 42 47 44 42
++51 49 42 47 44 42 47 44 42 42 47 42 42 41 42 47 44 42 42 41 42 42 41 42
++42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++31 35 35 31 35 35 36 35 37 31 35 35 36 35 37 36 35 37 33 39 38 37 35 43
++37 35 43 34 40 43 43 42 50 42 41 42 43 42 50 43 42 50 43 42 50 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 38 42 42 38 42 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 31 35 35 31 35 35
++31 35 35 36 35 37 33 30 32 31 35 35 31 35 35 31 35 35 33 30 36 33 30 36
++30 30 34 31 35 35 31 35 35 28 30 35 28 30 35 30 30 34 30 30 34 30 30 34
++30 30 34 31 35 35 30 30 34 33 30 32 31 35 35 33 30 36 31 35 35 33 30 32
++33 30 32 36 35 37 33 30 32 36 35 37 31 35 35 33 30 32 36 35 37 33 30 30
++52 30 35 36 35 37 36 35 37 36 35 37 36 35 37 33 30 36 31 35 35 36 35 37
++33 30 32 31 35 35 33 30 32 31 35 35 33 30 32 30 30 34 33 30 30 33 30 30
++26 24 32 26 30 28 26 24 32 26 30 28 23 20 24 33 30 30 26 24 32 26 30 28
++26 30 28 23 20 24 26 24 32 26 30 28 33 30 30 26 30 28 30 30 34 30 30 34
++33 30 30 30 30 34 33 30 30 26 24 32 33 30 30 26 24 32 33 30 30 26 30 28
++33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 26 30 28 33 30 30 33 30 30
++26 24 32 26 30 28 30 30 34 26 30 28 26 30 28 26 30 28 26 24 32 30 30 34
++30 30 34 33 30 32 31 35 35 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42
++42 38 42 42 38 42 42 38 42 47 39 42 47 39 42 47 39 42 47 44 42 47 39 42
++47 44 42 42 41 42 42 41 42 36 35 37 47 39 42 47 47 21 42 38 42 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 41 42 36 35 37 42 41 42
++36 35 37 42 41 42 36 35 37 36 35 37 36 35 37 36 35 37 52 30 35 32 39 24
++36 35 37 36 35 37 32 39 24 36 35 37 52 30 35 32 39 24 52 30 35 36 35 37
++36 35 37 33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 52 30 15 33 30 30 52 30 35 52 30 35
++52 30 35 33 30 30 53 35 17 52 30 35 53 35 37 53 35 17 53 35 37 53 35 37
++36 35 37 55 39 37 55 39 37 55 39 18 55 39 37 55 39 37 55 39 37 53 35 37
++47 47 21 53 35 37 53 35 37 32 39 24 52 30 35 33 30 30 32 39 24 52 30 35
++32 39 24 52 30 35 29 35 19 33 30 30 33 30 30 26 30 28 33 30 30 26 24 32
++22 25 24 26 24 32 26 24 32 26 30 28 26 24 32 28 30 35 26 30 28 26 30 28
++26 24 32 26 30 28 33 30 30 33 30 30 31 35 35 36 35 37 36 35 37 36 35 37
++52 30 35 32 39 24 53 35 37 36 35 37 42 41 42 36 35 37 36 35 37 42 41 42
++36 35 37 42 41 42 42 38 42 42 38 42 42 38 42 42 38 42 43 42 50 43 42 50
++57 43 51 43 42 50 48 44 48 48 50 48 45 57 61 48 50 48 54 57 61 48 50 48
++48 50 48 53 46 48 48 50 48 48 44 48 48 50 48 48 44 48 53 46 48 48 44 48
++48 50 48 48 44 48 42 47 42 47 44 42 42 41 42 47 47 21 42 41 42 36 35 37
++
++33 30 30 52 30 15 33 30 30 33 30 32 34 30 15 33 30 30 33 30 30 34 30 15
++33 30 30 33 30 30 26 25 15 33 30 30 23 20 24 26 25 15 26 25 15 23 18 22
++17 12 17 14 16 17 17 12 17 17 12 17 17 12 17 7 12 13 7 12 13 13 4 7
++7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 17 12 17 7 12 13
++13 4 7 7 12 13 7 12 13 17 12 17 7 12 13 7 12 13 17 12 17 7 12 13
++13 4 7 7 12 13 7 12 13 14 16 17 13 4 7 7 12 13 13 4 7 7 12 13
++17 12 17 7 12 13 7 12 13 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7
++17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 13 4 7 7 12 13
++7 12 13 7 12 13 14 16 17 17 12 17 12 18 20 23 20 24 23 20 24 26 30 28
++30 30 34 33 30 36 36 35 37 36 35 37 36 35 37 42 38 42 42 41 42 47 44 42
++47 44 42 51 49 42 53 46 48 53 46 48 53 46 48 59 55 55 59 57 61 65 57 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 75 72 67 75 63 62 63 59 71 65 63 61 63 59 71 75 63 62 63 59 71
++65 63 61 75 63 62 65 63 61 65 63 61 65 57 61 65 55 54 65 55 54 59 55 55
++62 47 47 63 55 51 65 55 54 65 55 54 65 55 54 65 57 61 65 57 61 65 63 61
++65 63 61 65 63 61 65 57 61 65 57 61 59 57 61 59 57 61 59 55 55 59 57 61
++59 55 55 48 50 48 54 57 61 59 55 55 48 50 48 59 55 55 48 50 48 53 46 48
++53 46 48 48 50 48 48 50 48 48 44 48 47 44 42 42 41 42 36 35 37 42 38 42
++42 38 42 42 38 42 42 38 42 42 41 42 42 41 42 42 41 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 42 41 42 42 47 42 42 41 42 33 39 38 42 41 42
++42 38 42 34 40 43 42 41 42 37 35 43 36 35 37 33 39 38 37 35 43 33 39 38
++36 35 37 33 39 38 36 35 37 36 35 37 31 35 35 31 35 35 31 35 35 33 30 36
++31 35 35 31 35 35 28 35 38 37 35 43 33 30 36 34 40 43 37 35 43 28 35 38
++31 35 35 30 30 34 33 30 36 30 30 34 30 30 34 30 30 34 26 30 28 30 30 34
++33 30 32 33 30 32 33 30 30 33 30 32 33 30 30 33 30 32 33 30 30 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 42 38 42
++36 35 37 36 35 37 36 35 37 36 35 37 31 35 35 30 30 34 25 30 29 25 30 29
++25 30 29 25 30 29 22 25 24 12 18 30 22 25 24 23 20 24 15 22 17 23 20 24
++23 20 24 23 20 24 23 20 24 26 25 15 23 20 24 33 30 30 26 25 15 33 30 30
++34 30 15 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 52 30 35 33 30 30
++33 30 30 33 30 30 34 30 15 52 30 35 33 30 30 33 30 30 33 30 32 33 30 30
++52 30 35 33 30 30 34 30 15 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30 34 30 15 33 30 30
++33 30 30 33 30 32 53 35 17 34 30 15 34 30 15 49 13 16 49 13 16 76 46 20
++102 33 26 120 63 71 122 49 24 120 63 71 120 63 71 122 49 24 120 63 71 122 49 24
++102 33 26 161 55 23 102 33 26 161 55 23 102 33 26 161 55 23 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 122 49 24 122 49 24 161 55 23 167 63 71
++161 55 23 161 55 23 161 55 23 161 55 23 122 49 24 161 55 23 161 55 23 161 55 23
++161 55 23 161 55 23 161 55 23 161 55 23 161 55 23 161 55 23 176 103 41 167 63 71
++176 103 41 167 63 71 219 175 47 176 103 41 176 103 41 219 175 47 195 113 123 219 175 47
++195 113 123 219 175 47 227 171 124 219 175 47 197 171 123 168 102 88 163 117 123 168 146 127
++148 160 159 188 180 202 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226
++201 216 228 194 199 226 201 216 228 231 239 247 240 251 247 246 237 247 240 251 247 240 251 247
++251 251 247 240 251 247 251 251 247 240 251 247 251 251 247 240 251 247 246 237 247 240 251 247
++235 238 247 231 239 247 231 239 247 221 238 247 231 239 247 231 239 247 240 251 247 235 238 247
++240 251 247 235 238 247 240 251 247 235 238 247 240 251 247 246 237 247 240 251 247 240 251 247
++246 237 247 240 251 247 240 251 247 246 237 247 251 251 247 246 237 247 240 251 247 240 251 247
++240 251 247 246 237 247 240 251 247 240 251 247 240 251 247 246 237 247 240 251 247 246 237 247
++240 251 247 235 238 247 240 251 247 246 237 247 240 251 247 235 238 247 240 251 247 240 251 247
++246 237 247 240 251 247 240 251 247 246 237 247 251 251 247 240 251 247 240 251 247 246 237 247
++251 251 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 235 238 247 251 251 247
++251 251 247 246 237 247 222 171 182 168 146 127 138 126 108 168 102 88 138 102 108 117 114 76
++120 63 71 101 74 26 120 63 71 117 99 86 167 63 71 167 63 71 120 63 71 122 49 24
++120 63 71 88 44 51 88 44 51 88 44 51 59 36 42 59 36 42 53 35 37 53 35 37
++47 39 42 42 38 42 42 38 42 37 35 43 36 35 37 31 35 35 28 30 35 31 35 35
++28 30 35 28 30 35 28 35 38 25 30 29 28 30 35 28 30 35 33 30 36 36 35 37
++36 35 37 36 35 37 42 38 42 36 35 37 42 38 42 42 38 42 47 39 42 47 44 42
++47 39 42 47 39 42 47 44 42 47 44 42 47 44 42 47 44 42 47 49 42 51 49 42
++48 50 48 53 46 48 48 50 48 48 50 48 51 49 42 53 46 48 55 55 48 55 55 48
++59 55 55 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48
++55 55 48 51 49 42 53 46 48 51 49 42 53 46 48 51 49 42 53 46 48 55 55 48
++53 46 48 52 55 48 53 46 48 51 49 42 51 49 42 53 46 48 51 49 42 51 49 42
++47 44 42 47 44 42 47 44 42 47 44 42 42 41 42 42 41 42 42 41 42 36 35 37
++42 41 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 31 35 35
++36 35 37 31 35 35 33 30 32 30 30 34 30 30 34 33 30 32 30 30 34 33 30 32
++36 35 37 36 35 37 36 35 37 33 39 38 36 35 37 33 39 38 36 35 37 37 35 43
++36 35 37 42 38 42 36 35 37 37 35 43 36 35 37 42 38 42 37 35 43 36 35 37
++37 35 43 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 33 30 32 36 35 37 33 30 32 31 35 35 36 35 37 31 35 35 31 35 35
++31 35 35 30 30 34 31 35 35 31 35 35 28 30 35 28 30 35 30 30 34 31 35 35
++33 30 36 31 35 35 33 30 36 31 35 35 36 35 37 36 35 37 33 30 32 36 35 37
++33 30 32 33 30 30 36 35 37 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37
++33 30 30 36 35 37 52 30 35 33 30 30 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 33 30 32 33 30 32 33 30 30 33 30 30 33 30 30
++33 30 30 26 30 28 26 30 28 26 24 32 33 30 30 23 20 24 26 30 28 26 30 28
++26 30 28 26 24 32 26 30 28 26 24 32 25 30 29 30 30 34 30 30 34 30 30 34
++33 30 32 26 24 32 33 30 30 26 30 28 33 30 30 26 30 28 33 30 30 26 24 32
++33 30 30 33 30 30 26 30 28 33 30 30 33 30 30 26 24 32 33 30 30 26 30 28
++33 30 30 30 30 34 33 30 30 26 30 28 26 24 32 30 30 34 26 30 28 26 30 28
++30 30 34 30 30 34 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42
++42 38 42 42 41 42 42 38 42 47 39 42 48 44 48 47 44 42 47 39 42 47 44 42
++47 39 42 47 47 21 42 41 42 53 35 37 42 41 42 42 38 42 42 38 42 47 47 21
++53 35 37 36 35 37 55 39 37 36 35 37 53 35 37 36 35 37 33 30 30 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 42 41 42 36 35 37
++47 39 42 36 35 37 42 38 42 32 39 24 52 30 35 36 35 37 36 35 37 36 35 37
++36 35 37 52 30 35 36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++32 39 24 52 30 35 33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 33 30 30 52 30 15 33 30 30
++33 30 30 52 30 35 52 30 35 52 30 35 52 30 35 53 35 37 52 30 35 52 30 35
++53 35 37 55 39 37 55 39 37 59 36 42 55 39 37 55 39 37 55 39 37 55 39 37
++55 39 37 55 39 37 53 35 37 55 39 37 36 35 37 53 35 37 52 30 35 32 39 24
++52 30 35 33 30 30 33 30 30 34 30 15 33 30 30 26 25 15 33 30 30 33 30 30
++22 25 24 26 30 28 22 25 24 26 24 32 26 24 32 26 24 32 26 30 28 26 30 28
++26 30 28 33 30 30 33 30 30 33 30 32 32 39 24 36 35 37 32 39 24 36 35 37
++33 30 30 36 35 37 36 35 37 36 35 37 36 35 37 47 47 21 36 35 37 42 38 42
++47 47 21 36 35 37 33 39 38 42 38 42 42 38 42 42 38 42 37 35 43 43 42 50
++43 42 50 43 42 50 43 42 50 48 44 48 43 42 50 48 44 48 43 42 50 48 50 48
++48 44 48 48 50 48 48 44 48 48 50 48 48 44 48 48 44 48 48 44 48 48 44 48
++48 44 48 47 44 42 47 44 42 42 41 42 42 41 42 36 35 37 42 41 42 36 35 37
++
++33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 34 30 15 33 30 30
++34 30 15 23 20 24 33 30 30 23 18 22 26 25 15 28 13 18 23 18 22 22 24 13
++17 12 17 17 12 17 7 12 13 17 12 17 7 12 13 13 4 7 7 12 13 13 4 7
++3 4 9 7 12 13 13 4 7 7 10 17 13 4 7 7 12 13 7 12 13 13 4 7
++7 10 17 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 7 12 13
++7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 14 16 17 7 12 13
++7 12 13 13 4 7 17 12 17 7 12 13 7 12 13 13 4 7 7 12 13 7 12 13
++7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7
++7 12 13 17 12 17 17 12 17 23 18 22 23 20 24 22 25 24 26 24 32 26 30 28
++33 30 32 36 35 37 36 35 37 47 39 42 47 39 42 47 39 42 47 44 42 47 44 42
++53 46 48 48 50 48 55 55 48 55 55 48 59 57 61 59 57 61 65 57 61 63 59 71
++75 59 67 63 59 71 75 59 67 63 59 71 75 59 67 63 59 71 75 63 62 63 59 71
++75 63 62 63 59 71 65 63 61 75 72 67 65 63 61 75 72 67 65 63 61 65 63 61
++75 59 67 65 63 61 65 57 61 65 55 54 59 55 55 65 55 54 63 55 51 63 55 51
++62 47 47 59 55 55 63 55 51 65 55 54 65 55 54 65 55 54 65 57 61 65 57 61
++65 57 61 59 55 55 59 55 55 59 55 55 59 55 55 59 57 61 59 55 55 59 55 55
++59 55 55 59 55 55 53 46 48 59 55 55 59 55 55 48 50 48 53 46 48 59 55 55
++48 50 48 53 46 48 48 44 48 47 44 42 47 44 42 42 41 42 42 41 42 42 38 42
++42 41 42 42 41 42 47 44 42 47 39 42 42 41 42 47 44 42 42 41 42 47 49 42
++47 49 42 48 44 48 42 47 42 48 44 48 42 47 42 42 47 42 42 47 42 42 41 42
++42 41 42 42 41 42 34 40 43 42 38 42 33 39 38 37 35 43 37 35 43 37 35 43
++33 39 38 36 35 37 36 35 37 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34
++30 30 34 30 30 34 30 30 34 28 30 35 28 30 35 28 30 35 28 30 35 28 30 35
++26 24 32 33 30 30 26 24 32 26 30 28 26 30 28 26 30 28 33 30 30 26 24 32
++33 30 32 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 36 35 37
++42 38 42 36 35 37 36 35 37 47 39 42 42 38 42 36 35 37 42 38 42 36 35 37
++36 35 37 36 35 37 36 35 37 31 35 35 30 30 34 30 30 34 25 30 29 26 24 32
++22 23 31 25 30 29 22 25 24 22 25 24 23 20 24 15 22 17 23 20 24 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 33 30 30 23 20 24 33 30 30 33 30 30
++23 20 24 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30 34 30 15 33 30 30
++33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 52 30 15 33 30 30 34 30 15 33 30 30 52 30 35 33 30 30 33 30 30
++52 30 35 33 30 30 33 30 30 26 12 13 52 30 15 53 35 17 76 46 20 122 49 24
++120 63 71 167 63 71 161 55 23 122 49 24 161 55 23 161 55 23 122 49 24 161 55 23
++167 63 71 161 55 23 161 55 23 102 33 26 161 55 23 102 33 26 161 55 23 102 33 26
++122 49 24 102 33 26 102 33 26 122 49 24 161 55 23 102 33 26 167 63 71 161 55 23
++167 63 71 161 55 23 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++161 55 23 161 55 23 161 55 23 161 55 23 161 55 23 161 55 23 161 55 23 161 55 23
++161 55 23 167 63 71 161 55 23 167 63 71 176 103 41 167 63 71 176 103 41 161 55 23
++176 103 41 176 103 41 195 113 123 219 175 47 195 113 123 219 175 47 217 168 156 208 215 180
++194 199 226 194 199 226 185 202 202 131 144 168 131 144 168 185 202 202 201 216 228 201 216 228
++185 202 202 166 176 200 194 199 226 226 221 247 246 237 247 240 251 247 246 237 247 251 251 247
++251 251 247 240 251 247 246 237 247 240 251 247 246 237 247 240 251 247 235 238 247 231 239 247
++231 239 247 231 239 247 231 239 247 231 239 247 240 251 247 231 239 247 240 251 247 240 251 247
++235 238 247 240 251 247 240 251 247 240 251 247 246 237 247 240 251 247 251 251 247 240 251 247
++240 251 247 246 237 247 240 251 247 240 251 247 240 251 247 240 251 247 251 251 247 240 251 247
++251 251 247 240 251 247 251 251 247 246 237 247 240 251 247 240 251 247 240 251 247 235 238 247
++240 251 247 235 238 247 240 251 247 235 238 247 240 251 247 235 238 247 240 251 247 235 238 247
++240 251 247 240 251 247 240 251 247 240 251 247 235 238 247 240 251 247 240 251 247 240 251 247
++240 251 247 251 251 247 251 251 247 240 251 247 231 239 247 201 216 228 201 216 228 226 221 247
++240 251 247 246 237 247 185 202 202 168 146 127 138 126 108 138 126 108 168 102 88 117 99 86
++120 63 71 117 99 86 167 63 71 117 99 86 167 63 71 167 63 71 120 63 71 167 63 71
++161 55 23 167 63 71 122 49 24 88 44 51 102 33 26 88 44 51 59 36 42 59 36 42
++47 39 42 42 38 42 37 35 43 37 35 43 28 35 38 36 35 37 28 35 38 28 30 35
++28 35 38 28 30 35 28 30 35 31 35 35 28 35 38 31 35 35 33 30 36 36 35 37
++36 35 37 42 38 42 42 38 42 42 38 42 36 35 37 47 39 42 47 39 42 47 39 42
++53 35 37 42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 47 49 42 47 44 42
++53 46 48 53 46 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 59 55 55
++55 55 48 59 55 55 63 55 51 59 55 55 59 55 55 55 55 48 59 55 55 55 55 48
++53 46 48 55 55 48 55 55 48 55 55 48 53 46 48 53 46 48 53 46 48 53 46 48
++55 55 48 55 55 48 51 49 42 53 46 48 53 46 48 51 49 42 53 46 48 51 49 42
++47 44 42 47 44 42 47 44 42 42 47 42 42 41 42 42 41 42 36 35 37 42 41 42
++36 35 37 36 35 37 36 35 37 36 35 37 33 39 38 36 35 37 36 35 37 36 35 37
++36 35 37 31 35 35 31 35 35 33 30 32 31 35 35 33 30 30 33 30 30 33 30 32
++31 35 35 30 30 34 33 30 32 33 30 36 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 37 35 43 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 30 36 36 35 37
++36 35 37 33 30 36 31 35 35 31 35 35 28 30 35 31 35 35 33 30 36 31 35 35
++31 35 35 33 30 36 31 35 35 36 35 37 36 35 37 31 35 35 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 33 30 30 36 35 37 36 35 37 52 30 35 32 39 24
++53 35 37 36 35 37 36 35 37 36 35 37 52 30 35 32 39 24 53 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 32 39 24 36 35 37 33 30 30
++31 35 35 33 30 32 33 30 30 26 30 28 26 24 32 26 30 28 26 24 32 22 25 24
++33 30 30 26 30 28 26 24 32 26 30 28 26 24 32 30 30 34 30 30 34 33 30 32
++33 30 32 33 30 32 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 26 30 28
++33 30 30 26 30 28 30 30 34 30 30 34 26 30 28 26 24 32 30 30 34 30 30 34
++33 30 30 30 30 34 36 35 37 36 35 37 36 35 37 36 35 37 37 35 43 42 38 42
++42 38 42 42 41 42 42 41 42 48 44 48 47 39 42 48 44 48 47 44 42 47 44 42
++47 39 42 47 39 42 42 41 42 42 41 42 42 41 42 36 35 37 53 35 37 36 35 37
++36 35 37 32 39 24 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++33 30 30 36 35 37 36 35 37 53 35 37 36 35 37 42 41 42 42 38 42 42 41 42
++36 35 37 47 39 42 42 38 42 36 35 37 42 38 42 36 35 37 53 35 37 36 35 37
++36 35 37 47 47 21 36 35 37 36 35 37 36 35 37 53 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 52 30 35 36 35 37 36 35 37 32 39 24 36 35 37
++33 30 30 33 30 30 52 30 15 33 30 30 52 30 35 33 30 30 52 30 35 52 30 35
++52 30 35 52 30 35 33 30 30 53 35 17 52 30 35 52 30 35 53 35 37 55 39 18
++53 35 37 55 39 37 55 39 37 55 39 37 59 36 42 60 49 42 59 36 42 60 49 42
++55 39 37 55 39 37 47 47 21 47 39 42 47 39 42 47 47 21 36 35 37 53 35 37
++32 39 24 53 35 37 33 30 30 33 30 30 33 30 30 33 30 30 34 30 15 26 24 32
++26 30 28 23 20 24 26 24 32 22 25 24 26 24 32 26 30 28 26 24 32 26 30 28
++26 30 28 33 30 30 33 30 32 31 35 35 36 35 37 36 35 37 36 35 37 36 35 37
++53 35 37 36 35 37 47 47 21 36 35 37 53 35 37 36 35 37 42 41 42 36 35 37
++36 35 37 36 35 37 36 35 37 34 40 43 37 35 43 37 35 43 37 35 43 37 35 43
++42 38 42 43 42 50 43 42 50 43 42 50 43 42 50 48 50 48 43 42 50 48 50 48
++43 42 50 48 44 48 43 42 50 48 44 48 48 44 48 43 42 50 48 44 48 48 44 48
++42 47 42 42 41 42 42 41 42 42 41 42 36 35 37 36 35 37 36 35 37 42 41 42
++
++33 30 30 34 30 15 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30
++33 30 30 34 30 15 23 20 24 26 25 15 23 18 22 23 18 22 23 10 10 17 12 17
++7 12 13 17 12 17 7 10 17 17 12 17 7 10 17 7 10 17 13 4 7 7 12 13
++13 4 7 7 10 17 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13
++17 12 17 13 4 7 17 12 17 7 12 13 14 16 17 13 4 7 7 12 13 13 4 7
++7 12 13 13 4 7 7 12 13 17 12 17 7 12 13 7 12 13 7 12 13 7 12 13
++17 12 17 7 12 13 7 12 13 13 4 7 7 12 13 17 12 17 7 12 13 13 4 7
++7 12 13 7 12 13 7 12 13 17 12 17 7 12 13 13 4 7 7 12 13 7 12 13
++14 16 17 23 18 22 12 18 20 23 20 24 23 20 24 26 24 32 30 30 34 33 30 32
++36 35 37 42 38 42 42 38 42 42 41 42 47 44 42 47 44 42 48 44 48 53 46 48
++55 55 48 53 46 48 59 55 55 59 55 55 59 57 61 65 57 61 65 63 61 75 63 62
++63 59 71 75 72 67 63 59 71 75 72 67 63 59 71 75 72 67 65 63 61 75 63 62
++59 69 70 75 63 62 65 63 61 63 59 71 65 63 61 65 63 61 63 59 71 65 63 61
++65 63 61 65 63 61 65 57 61 59 55 55 59 55 55 63 55 51 59 55 55 62 47 47
++55 55 48 53 46 48 62 47 47 62 47 47 59 55 55 65 55 54 59 55 55 63 55 51
++59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 57 61 54 57 61
++59 55 55 53 46 48 48 50 48 48 50 48 48 44 48 54 57 61 48 50 48 53 46 48
++53 46 48 48 44 48 48 44 48 47 44 42 47 39 42 42 41 42 42 38 42 42 38 42
++42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 47 44 42 42 47 42 42 47 42
++43 42 50 42 41 42 42 41 42 42 41 42 36 35 37 33 39 38 37 35 43 34 40 43
++37 35 43 36 35 37 31 35 35 30 30 34 26 30 28 26 24 32 26 30 28 25 30 29
++26 30 28 22 25 24 26 24 32 26 24 32 25 30 29 26 24 32 26 24 32 26 24 32
++22 25 24 26 24 32 23 20 24 26 30 28 26 30 28 26 30 28 26 30 28 33 30 30
++33 30 32 33 30 30 26 30 28 33 30 30 33 30 30 36 35 37 32 39 24 36 35 37
++36 35 37 42 38 42 36 35 37 42 38 42 36 35 37 42 38 42 36 35 37 42 38 42
++36 35 37 42 38 42 36 35 37 42 41 42 36 35 37 42 38 42 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 30 30 34 33 30 32 26 24 32 26 30 28
++22 25 24 22 23 31 22 25 24 22 25 24 22 25 24 23 20 24 23 20 24 15 22 17
++23 20 24 23 20 24 23 20 24 33 30 30 23 20 24 33 30 30 34 30 15 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++52 30 15 33 30 30 33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 52 30 35 33 30 30 33 30 30 34 30 15 33 30 30 34 30 15 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30
++33 30 30 34 30 15 49 13 16 34 30 15 76 46 20 117 114 76 168 102 88 168 102 88
++117 112 45 167 63 71 120 63 71 122 49 24 102 33 26 161 55 23 102 33 26 161 55 23
++102 33 26 161 55 23 102 33 26 161 55 23 161 55 23 161 55 23 161 55 23 122 49 24
++161 55 23 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 161 55 23 161 55 23 161 55 23 161 55 23 102 33 26 161 55 23 102 33 26
++102 33 26 102 33 26 102 33 26 161 55 23 161 55 23 161 55 23 161 55 23 161 55 23
++161 55 23 161 55 23 161 55 23 161 55 23 161 55 23 161 55 23 161 55 23 161 55 23
++161 55 23 161 55 23 161 55 23 161 55 23 176 103 41 201 146 124 217 168 156 232 215 228
++232 215 228 166 174 181 98 121 131 77 91 115 111 122 142 166 176 200 194 199 226 194 199 226
++166 176 200 166 176 200 201 216 228 235 238 247 240 251 247 240 251 247 251 251 247 240 251 247
++251 251 247 240 251 247 240 251 247 240 251 247 240 251 247 235 238 247 231 239 247 221 238 247
++231 239 247 221 238 247 231 239 247 231 239 247 231 239 247 240 251 247 240 251 247 240 251 247
++240 251 247 240 251 247 246 237 247 240 251 247 251 251 247 240 251 247 240 251 247 251 251 247
++240 251 247 240 251 247 240 251 247 251 251 247 240 251 247 251 251 247 240 251 247 251 251 247
++240 251 247 246 237 247 240 251 247 240 251 247 246 237 247 240 251 247 235 238 247 240 251 247
++235 238 247 240 251 247 235 238 247 240 251 247 235 238 247 240 251 247 235 238 247 240 251 247
++240 251 247 246 237 247 240 251 247 235 238 247 240 251 247 246 237 247 240 251 247 251 251 247
++251 251 247 251 251 247 240 251 247 232 215 228 185 202 202 188 180 202 185 202 202 232 215 228
++235 238 247 246 237 247 189 165 168 163 117 123 138 126 108 168 102 88 117 114 76 168 102 88
++117 114 76 168 102 88 168 102 88 117 99 86 167 63 71 122 49 24 167 63 71 161 55 23
++120 63 71 167 63 71 120 63 71 167 63 71 120 63 71 120 63 71 88 66 70 76 44 53
++47 39 42 52 30 35 42 38 42 36 35 37 37 35 43 31 35 35 33 30 36 31 35 35
++31 35 35 28 35 38 31 35 35 31 35 35 31 35 35 31 35 35 36 35 37 33 30 36
++36 35 37 36 35 37 42 38 42 47 39 42 47 39 42 47 39 42 53 35 37 55 39 37
++36 35 37 53 35 37 36 35 37 47 39 42 42 47 42 55 39 37 47 44 42 51 49 42
++51 49 42 55 55 48 55 55 48 55 55 48 55 55 48 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 63 55 51 63 55 51 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 55 55 48 53 46 48 55 55 48 60 49 42 53 46 48 55 55 48 55 55 48
++55 55 48 53 46 48 55 55 48 51 49 42 51 49 42 53 46 48 53 46 48 51 49 42
++51 49 42 47 44 42 47 44 42 42 41 42 42 41 42 47 44 42 47 44 42 32 39 24
++42 41 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 31 35 35 33 30 30 31 35 35 33 30 32
++33 30 32 31 35 35 33 30 32 31 35 35 31 35 35 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 34 40 43 42 38 42 42 38 42 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 37 35 43
++34 40 43 37 35 43 36 35 37 31 35 35 31 35 35 31 35 35 28 35 38 36 35 37
++31 35 35 36 35 37 33 30 36 36 35 37 36 35 37 36 35 37 36 35 37 33 30 32
++36 35 37 33 30 30 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37 36 35 37
++36 35 37 52 30 35 36 35 37 47 47 21 36 35 37 36 35 37 36 35 37 36 35 37
++55 39 37 36 35 37 42 38 42 47 47 21 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 33 30 32 30 30 34 33 30 30 26 30 28 26 24 32 22 25 24 26 30 28
++33 30 30 26 30 28 33 30 30 26 24 32 26 30 28 25 30 29 30 30 34 30 30 34
++33 30 32 33 30 36 33 30 32 33 30 32 33 30 32 33 30 32 33 30 30 33 30 30
++33 30 32 33 30 32 33 30 32 33 30 32 30 30 34 33 30 30 33 30 32 33 30 32
++30 30 34 33 30 30 26 30 28 30 30 34 26 30 28 30 30 34 26 30 28 30 30 34
++30 30 34 31 35 35 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 42 38 42
++42 41 42 43 42 50 47 39 42 48 44 48 48 44 48 48 44 48 48 44 48 48 44 48
++47 44 42 47 44 42 47 44 42 36 35 37 53 35 37 42 41 42 42 38 42 47 47 21
++36 35 37 36 35 37 53 35 37 36 35 37 53 35 37 36 35 37 36 35 37 33 30 30
++36 35 37 33 30 30 33 30 30 36 35 37 36 35 37 36 35 37 42 41 42 42 41 42
++42 41 42 42 41 42 42 38 42 42 41 42 47 39 42 36 35 37 42 38 42 47 47 21
++42 38 42 42 38 42 47 39 42 36 35 37 47 39 42 32 39 24 42 41 42 53 35 37
++36 35 37 53 35 37 36 35 37 36 35 37 47 47 21 36 35 37 52 30 35 33 30 30
++52 30 35 33 30 32 33 30 30 52 30 35 33 30 30 52 30 35 33 30 30 52 30 35
++33 30 32 53 35 17 53 35 37 36 35 37 52 30 35 53 35 37 53 35 37 53 35 37
++55 39 37 55 39 37 59 36 42 59 36 42 60 49 42 59 36 42 60 49 42 59 36 42
++55 39 37 55 39 37 55 39 37 47 44 42 53 35 37 47 39 42 47 39 42 47 47 21
++53 35 37 36 35 37 47 47 21 33 30 30 33 30 30 34 30 15 33 30 30 22 25 24
++33 30 30 22 25 24 26 24 32 26 24 32 23 20 24 26 24 32 26 30 28 33 30 30
++26 30 28 33 30 30 31 35 35 33 30 32 36 35 37 32 39 24 36 35 37 36 35 37
++32 39 24 36 35 37 53 35 37 36 35 37 36 35 37 42 38 42 32 39 24 42 41 42
++36 35 37 36 35 37 36 35 37 36 35 37 37 35 43 36 35 37 36 35 37 36 35 37
++37 35 43 42 38 42 34 40 43 42 41 42 43 42 50 42 41 42 42 47 42 43 42 50
++48 44 48 43 42 50 48 44 48 43 42 50 48 44 48 48 44 48 48 44 48 47 44 42
++42 41 42 42 41 42 42 41 42 42 41 42 32 39 24 47 39 42 32 39 24 36 35 37
++
++34 30 15 33 30 30 49 13 16 33 30 30 33 30 30 34 30 15 33 30 30 28 13 18
++34 30 15 26 24 32 23 20 24 26 25 15 23 18 22 22 24 13 17 12 17 14 16 17
++17 12 17 7 12 13 17 12 17 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7
++7 12 13 7 12 13 7 12 13 13 4 7 7 10 17 17 12 17 7 12 13 17 12 17
++7 12 13 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13
++7 12 13 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13
++17 12 17 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 7 12 13 7 12 13
++17 12 17 13 4 7 7 12 13 7 12 13 17 12 17 7 12 13 17 12 17 14 16 17
++17 12 17 23 20 24 23 20 24 22 23 31 25 30 29 28 30 35 30 30 34 33 39 38
++42 38 42 42 41 42 43 42 50 48 44 48 48 44 48 48 44 48 53 46 48 59 55 55
++59 55 55 59 57 61 65 57 61 59 57 61 65 57 61 59 57 61 63 59 71 65 63 61
++75 72 67 63 59 71 75 72 67 63 59 71 63 59 71 63 59 71 63 59 71 65 63 61
++63 59 71 75 72 67 65 63 61 75 63 62 65 63 61 75 59 67 65 63 61 65 63 61
++65 57 61 65 57 61 59 55 55 59 55 55 59 55 55 53 46 48 53 46 48 53 46 48
++53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 62 47 47 55 55 48 57 43 51
++55 55 48 57 43 51 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55
++55 55 48 59 55 55 53 46 48 48 50 48 53 46 48 55 55 48 53 46 48 48 50 48
++48 50 48 48 50 48 47 44 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42
++47 44 42 47 44 42 48 50 48 47 44 42 42 47 42 48 44 48 47 49 42 48 50 48
++51 49 42 53 46 48 48 50 48 53 46 48 48 50 48 47 44 42 48 44 48 42 47 42
++42 41 42 43 42 50 42 47 42 34 40 43 42 38 42 33 39 38 42 38 42 42 38 42
++36 35 37 33 39 38 36 35 37 30 30 34 26 30 28 26 30 28 26 24 32 22 25 24
++23 20 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24 26 30 28
++26 24 32 23 20 24 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 26 30 28
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 52 30 35
++32 39 24 36 35 37 42 41 42 36 35 37 47 39 42 36 35 37 47 39 42 42 41 42
++36 35 37 42 38 42 36 35 37 47 39 42 36 35 37 42 41 42 36 35 37 36 35 37
++36 35 37 42 38 42 36 35 37 36 35 37 30 30 34 30 30 34 26 30 28 26 30 28
++22 23 31 22 25 24 22 25 24 22 25 24 12 18 30 23 18 22 23 18 22 12 18 20
++23 20 24 22 25 24 22 25 24 33 30 30 33 30 30 23 20 24 33 30 30 33 30 30
++33 30 30 52 30 35 33 30 30 33 30 30 34 30 15 33 30 30 52 30 35 33 30 30
++33 30 30 33 30 30 52 30 35 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++34 30 15 33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 52 30 15
++52 30 15 26 12 13 52 30 15 76 46 20 176 103 41 227 171 124 227 171 124 168 102 88
++176 103 41 176 103 41 167 63 71 167 63 71 161 55 23 122 49 24 161 55 23 102 33 26
++161 55 23 102 33 26 167 63 71 122 49 24 167 63 71 102 33 26 161 55 23 161 55 23
++102 33 26 161 55 23 122 49 24 122 49 24 122 49 24 161 55 23 102 33 26 161 55 23
++102 33 26 102 33 26 122 49 24 161 55 23 122 49 24 161 55 23 122 49 24 161 55 23
++122 49 24 161 55 23 102 33 26 161 55 23 102 33 26 161 55 23 161 55 23 161 55 23
++161 55 23 161 55 23 161 55 23 161 55 23 161 55 23 161 55 23 161 55 23 161 55 23
++161 55 23 122 49 24 122 49 24 102 33 26 122 49 24 168 146 127 222 171 182 208 221 247
++201 216 228 150 168 183 111 122 142 95 108 128 122 134 144 166 176 200 166 176 200 166 176 200
++166 176 200 201 216 228 226 221 247 235 238 247 240 251 247 251 251 247 251 251 247 251 251 247
++240 251 247 240 251 247 246 237 247 240 251 247 235 238 247 231 239 247 221 238 247 231 239 247
++231 239 247 231 239 247 231 239 247 231 239 247 240 251 247 235 238 247 240 251 247 246 237 247
++240 251 247 246 237 247 240 251 247 251 251 247 240 251 247 246 237 247 240 251 247 240 251 247
++251 251 247 251 251 247 251 251 247 240 251 247 246 237 247 240 251 247 251 251 247 246 237 247
++240 251 247 246 237 247 240 251 247 235 238 247 240 251 247 235 238 247 240 251 247 235 238 247
++240 251 247 235 238 247 240 251 247 240 251 247 235 238 247 240 251 247 235 238 247 240 251 247
++240 251 247 240 251 247 240 251 247 235 238 247 240 251 247 246 237 247 240 251 247 251 251 247
++251 251 247 240 251 247 226 221 247 201 216 228 188 180 202 188 180 202 185 202 202 232 215 228
++235 238 247 232 215 228 189 165 168 163 117 123 138 102 108 168 102 88 138 102 108 168 102 88
++168 102 88 168 102 88 167 63 71 167 63 71 161 55 23 167 63 71 167 63 71 167 63 71
++167 63 71 161 55 23 167 63 71 167 63 71 167 63 71 120 63 71 161 55 23 120 63 71
++102 33 26 88 44 51 76 18 19 52 30 35 52 30 35 33 30 30 36 35 37 33 30 36
++33 30 36 33 30 32 33 30 32 36 35 37 33 30 30 36 35 37 33 30 30 52 30 35
++52 30 35 52 30 35 76 46 20 76 44 53 88 30 18 88 44 51 76 46 20 88 44 51
++76 46 20 76 46 20 76 46 20 76 46 20 55 39 18 76 46 20 55 39 18 76 46 20
++55 39 18 63 55 45 63 55 45 65 55 54 59 55 55 65 55 54 64 70 48 65 63 61
++64 70 48 65 63 61 63 55 51 63 55 51 64 70 48 65 55 54 63 55 51 63 55 51
++55 55 48 55 55 48 55 55 48 62 47 47 55 55 48 55 55 48 55 55 48 59 55 55
++55 55 48 55 55 48 53 46 48 55 55 48 53 46 48 51 49 42 53 46 48 51 49 42
++47 44 42 47 44 42 47 44 42 42 41 42 42 41 42 42 41 42 47 39 42 42 41 42
++42 38 42 36 35 37 36 35 37 36 35 37 33 39 38 36 35 37 42 41 42 32 39 24
++36 35 37 36 35 37 33 30 32 36 35 37 31 35 35 33 30 32 33 30 30 31 35 35
++31 35 35 36 35 37 31 35 35 36 35 37 33 30 32 31 35 35 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 37 35 43 36 35 37 42 41 42 36 35 37 36 35 37
++36 35 37 36 35 37 42 47 42 36 35 37 42 41 42 42 41 42 34 40 43 42 38 42
++34 40 43 36 35 37 37 35 43 34 40 43 33 39 38 37 35 43 33 39 38 28 35 38
++36 35 37 31 35 35 33 30 36 36 35 37 31 35 35 31 35 35 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37 36 35 37 52 30 35
++36 35 37 36 35 37 53 35 37 42 38 42 47 39 42 53 35 37 36 35 37 55 39 37
++42 41 42 42 41 42 36 35 37 42 38 42 36 35 37 36 35 37 32 39 24 36 35 37
++33 30 32 31 35 35 33 30 32 33 30 30 26 24 32 33 30 30 22 25 24 33 30 30
++26 24 32 33 30 30 26 30 28 26 24 32 26 30 28 33 30 30 30 30 34 33 30 32
++33 30 32 36 35 37 36 35 37 33 30 32 36 35 37 33 30 32 33 30 32 36 35 37
++33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 30 30 34 33 30 32 33 30 32
++26 30 28 26 30 28 33 30 30 30 30 34 26 30 28 26 30 28 26 30 28 26 30 28
++30 30 34 33 30 36 36 35 37 36 35 37 42 38 42 36 35 37 42 41 42 42 38 42
++42 41 42 42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 39 42 47 39 42 42 41 42 42 41 42 42 41 42 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 42 41 42 32 39 24 36 35 37 36 35 37 36 35 37
++33 30 30 36 35 37 36 35 37 36 35 37 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 36 35 37 47 44 42 42 41 42 36 35 37
++42 41 42 36 35 37 47 44 42 47 47 21 42 38 42 47 39 42 36 35 37 47 44 42
++47 47 21 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37
++33 30 30 52 30 35 33 30 30 52 30 35 33 30 30 52 30 35 53 35 17 52 30 35
++52 30 35 52 30 35 52 30 35 52 30 35 52 30 35 53 35 37 52 30 35 55 39 37
++55 39 37 55 39 37 59 36 42 60 49 42 59 36 42 60 49 42 60 49 42 55 39 37
++60 49 42 55 39 37 55 39 37 55 39 37 47 47 21 53 35 37 47 47 21 42 38 42
++53 35 37 32 39 24 52 30 35 32 39 24 33 30 30 33 30 30 33 30 30 33 30 30
++22 25 24 26 30 28 22 25 24 26 24 32 22 23 31 22 25 24 26 30 28 26 30 28
++33 30 30 30 30 34 33 30 30 36 35 37 33 30 30 36 35 37 36 35 37 53 35 37
++36 35 37 36 35 37 36 35 37 47 47 21 36 35 37 53 35 37 36 35 37 36 35 37
++47 47 21 36 35 37 33 30 30 36 35 37 36 35 37 33 30 36 33 30 36 36 35 37
++36 35 37 42 38 42 34 40 43 42 38 42 34 40 43 42 41 42 42 41 42 42 41 42
++42 41 42 48 44 48 42 41 42 47 44 42 48 44 48 48 44 48 42 47 42 48 44 48
++42 41 42 42 41 42 36 35 37 42 41 42 36 35 37 36 35 37 36 35 37 36 35 37
++
++28 13 18 34 30 15 33 30 30 34 30 15 33 30 30 33 30 30 34 30 15 33 30 30
++26 25 15 23 20 24 26 25 15 23 18 22 23 18 22 17 12 17 17 12 17 15 17 7
++14 16 17 13 4 7 17 12 17 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13
++13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 13 4 7 7 12 13
++13 4 7 7 12 13 17 12 17 7 10 17 7 10 17 7 12 13 17 12 17 7 12 13
++17 12 17 17 12 17 7 12 13 7 10 17 13 4 7 7 10 17 7 10 17 13 4 7
++7 10 17 17 12 17 7 12 13 7 12 13 17 12 17 7 12 13 7 12 13 13 4 7
++7 12 13 7 12 13 17 12 17 13 4 7 7 12 13 7 12 13 14 16 17 14 16 17
++15 22 17 23 20 24 22 23 31 26 24 32 30 30 34 28 30 35 36 35 37 37 35 43
++42 41 42 43 42 50 48 44 48 48 50 48 48 44 48 48 50 48 53 46 48 59 55 55
++59 57 61 59 57 61 65 57 61 65 57 61 65 63 61 65 63 61 59 69 70 65 63 61
++63 59 71 65 63 61 63 59 71 75 72 67 63 59 71 75 72 67 75 59 67 59 69 70
++75 59 67 65 63 61 65 63 61 65 63 61 63 59 71 65 63 61 65 63 61 65 63 61
++65 57 61 59 57 61 59 55 55 59 55 55 55 55 48 53 46 48 47 44 42 53 46 48
++47 44 42 47 44 42 47 44 42 53 46 48 53 46 48 53 46 48 53 46 48 55 55 48
++53 46 48 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55
++53 46 48 59 55 55 53 46 48 52 55 48 52 55 48 48 50 48 48 50 48 48 50 48
++48 44 48 48 50 48 47 44 42 42 47 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 47 42 47 49 42 47 49 42 48 50 48 48 50 48 48 50 48 52 55 48 53 46 48
++52 55 48 52 55 48 53 46 48 59 55 55 48 50 48 48 50 48 48 50 48 48 44 48
++48 44 48 42 47 42 48 44 48 43 42 50 42 41 42 42 41 42 34 40 43 42 41 42
++37 35 43 36 35 37 31 35 35 33 30 32 26 24 32 26 30 28 26 24 32 22 25 24
++22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24
++23 20 24 26 24 32 23 20 24 33 30 30 23 20 24 22 25 24 26 24 32 26 25 15
++26 30 28 26 30 28 26 30 28 33 30 30 32 39 24 33 30 30 33 30 30 32 39 24
++47 39 42 36 35 37 47 44 42 36 35 37 42 41 42 42 38 42 42 41 42 47 39 42
++36 35 37 47 39 42 42 38 42 42 41 42 42 41 42 36 35 37 42 38 42 36 35 37
++36 35 37 37 35 43 36 35 37 36 35 37 33 30 32 33 30 32 26 30 28 26 24 32
++22 25 24 22 25 24 22 25 24 15 22 17 23 20 24 23 18 22 23 18 22 23 18 22
++22 25 24 23 20 24 33 30 30 23 20 24 34 30 15 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 33 30 30
++52 30 35 33 30 30 36 35 37 34 30 15 33 30 30 33 30 30 52 30 35 33 30 30
++52 30 35 33 30 30 33 30 30 33 30 30 33 30 30 23 20 24 34 30 15 23 20 24
++33 30 30 23 20 24 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 26 25 15
++23 10 10 23 10 10 101 74 26 176 103 41 227 171 124 227 171 124 219 175 47 176 103 41
++176 103 41 161 55 23 176 103 41 167 63 71 167 63 71 161 55 23 102 33 26 102 33 26
++161 55 23 102 33 26 161 55 23 161 55 23 102 33 26 161 55 23 167 63 71 102 33 26
++167 63 71 161 55 23 161 55 23 161 55 23 102 33 26 102 33 26 102 33 26 122 49 24
++102 33 26 161 55 23 102 33 26 102 33 26 122 49 24 122 49 24 167 63 71 122 49 24
++161 55 23 161 55 23 102 33 26 161 55 23 102 33 26 161 55 23 102 33 26 161 55 23
++102 33 26 161 55 23 102 33 26 161 55 23 102 33 26 161 55 23 102 33 26 102 33 26
++122 49 24 102 33 26 102 33 26 102 33 26 120 63 71 189 165 168 185 202 202 201 216 228
++201 216 228 188 180 202 166 176 200 166 176 200 166 176 200 194 199 226 194 199 226 194 199 226
++201 216 228 194 199 226 201 216 228 235 238 247 240 251 247 251 251 247 251 251 247 240 251 247
++240 251 247 246 237 247 240 251 247 235 238 247 231 239 247 231 239 247 221 238 247 231 239 247
++221 238 247 231 239 247 231 239 247 231 239 247 231 239 247 240 251 247 246 237 247 240 251 247
++251 251 247 240 251 247 246 237 247 240 251 247 246 237 247 240 251 247 240 251 247 246 237 247
++240 251 247 240 251 247 240 251 247 246 237 247 240 251 247 251 251 247 240 251 247 240 251 247
++235 238 247 240 251 247 246 237 247 240 251 247 240 251 247 240 251 247 235 238 247 240 251 247
++235 238 247 240 251 247 240 251 247 246 237 247 240 251 247 240 251 247 240 251 247 240 251 247
++235 238 247 240 251 247 240 251 247 240 251 247 246 237 247 240 251 247 240 251 247 251 251 247
++251 251 247 235 238 247 201 216 228 188 180 202 185 202 202 201 216 228 201 216 228 226 221 247
++232 215 228 188 180 202 150 144 154 138 102 108 168 102 88 138 102 108 168 102 88 168 102 88
++167 63 71 168 102 88 167 63 71 167 63 71 167 63 71 161 55 23 167 63 71 161 55 23
++167 63 71 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 122 49 24 167 63 71
++122 49 24 120 63 71 88 44 51 59 36 42 52 30 15 33 30 30 30 30 34 30 30 34
++30 30 34 30 30 34 31 35 35 33 30 30 33 30 30 33 30 30 52 30 35 53 35 37
++59 36 42 88 44 51 88 44 51 102 33 26 101 60 73 102 33 26 101 60 73 122 49 24
++120 63 71 120 63 71 168 102 88 117 112 45 117 99 86 117 114 76 117 112 45 101 83 74
++88 73 31 63 55 45 63 55 45 63 55 51 65 63 61 65 63 61 65 55 54 65 63 61
++75 56 53 65 63 61 64 70 48 65 55 54 63 55 51 65 63 61 63 55 51 63 55 51
++55 55 48 63 55 45 55 55 48 59 55 55 62 47 47 55 55 48 63 55 51 55 55 48
++55 55 48 62 47 47 53 46 48 60 49 42 53 46 48 51 49 42 53 46 48 51 49 42
++47 44 42 47 44 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 42 38 42
++47 44 42 33 39 38 42 41 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++33 30 32 31 35 35 36 35 37 36 35 37 36 35 37 36 35 37 33 30 32 31 35 35
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++33 39 38 36 35 37 33 39 38 36 35 37 42 38 42 33 39 38 36 35 37 36 35 37
++42 41 42 42 47 42 42 41 42 42 47 42 42 41 42 42 41 42 42 41 42 42 41 42
++34 40 43 42 38 42 34 40 43 42 38 42 37 35 43 34 40 43 34 40 43 34 40 43
++33 39 38 36 35 37 36 35 37 36 35 37 31 35 35 33 30 36 36 35 37 33 30 30
++36 35 37 33 30 30 36 35 37 36 35 37 36 35 37 42 38 42 32 39 24 47 39 42
++36 35 37 53 35 37 42 38 42 53 35 37 36 35 37 42 41 42 47 44 42 36 35 37
++55 39 37 36 35 37 53 35 37 36 35 37 47 39 42 36 35 37 36 35 37 36 35 37
++36 35 37 31 35 35 33 30 32 30 30 34 33 30 30 33 30 30 26 24 32 26 30 28
++26 24 32 26 30 28 26 24 32 33 30 30 26 30 28 26 30 28 33 30 30 31 35 35
++33 30 32 36 35 37 33 30 32 36 35 37 33 30 32 36 35 37 36 35 37 33 30 32
++36 35 37 33 30 32 31 35 35 33 30 32 33 30 32 33 30 36 33 30 36 33 30 32
++33 30 30 33 30 32 26 30 28 26 24 32 30 30 34 33 30 32 26 30 28 33 30 30
++31 35 35 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 42 41 42
++42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 53 46 48 47 44 42 47 44 42
++47 44 42 47 44 42 42 41 42 47 39 42 42 38 42 47 39 42 47 39 42 36 35 37
++52 30 35 36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 33 30 30 33 30 30
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 39 38 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 47 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 38 42 47 39 42 42 38 42 47 47 21 36 35 37
++42 38 42 42 38 42 47 47 21 53 35 37 36 35 37 52 30 35 36 35 37 52 30 35
++33 30 30 52 30 35 36 35 37 33 30 30 52 30 35 52 30 35 33 30 30 52 30 35
++33 30 30 52 30 35 52 30 35 52 30 35 53 35 17 52 30 35 52 30 35 53 35 37
++55 39 18 59 36 42 55 39 37 59 36 42 76 46 20 60 49 42 55 39 37 60 49 42
++55 39 37 59 36 42 60 49 42 55 39 37 55 39 37 53 35 37 42 38 42 53 35 37
++47 47 21 53 35 37 32 39 24 52 30 35 32 39 24 33 30 30 33 30 30 29 35 19
++33 30 30 22 25 24 26 24 32 22 25 24 26 24 32 26 24 32 26 30 28 26 30 28
++26 30 28 26 30 28 33 30 30 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++32 39 24 52 30 35 36 35 37 36 35 37 36 35 37 36 35 37 53 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 33 30 36 31 35 35 33 30 36 33 30 32
++31 35 35 36 35 37 36 35 37 36 35 37 36 35 37 34 40 43 42 41 42 34 40 43
++42 41 42 42 41 42 42 41 42 48 44 48 42 41 42 47 44 42 42 41 42 47 44 42
++42 41 42 42 38 42 47 47 21 42 41 42 47 47 21 36 35 37 53 35 17 36 35 37
++
++26 25 15 33 30 30 28 13 18 33 30 30 33 30 30 34 30 15 26 24 32 28 13 18
++26 25 15 23 18 22 28 13 18 22 24 13 26 12 13 15 17 7 23 10 10 17 12 17
++7 12 13 17 12 17 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7
++7 12 13 13 4 7 7 12 13 3 4 9 13 4 7 7 12 13 3 4 9 7 12 13
++3 4 9 7 12 13 13 4 7 7 12 13 13 4 7 7 10 17 17 12 17 7 12 13
++17 12 17 7 10 17 17 12 17 7 10 17 7 10 17 13 4 7 7 10 17 17 12 17
++7 10 17 7 12 13 13 4 7 7 12 13 7 12 13 7 12 13 17 12 17 7 12 13
++17 12 17 7 12 13 7 12 13 7 12 13 17 12 17 17 12 17 14 16 17 23 20 24
++23 20 24 25 30 29 26 24 32 26 24 32 30 30 34 33 30 36 33 39 38 42 38 42
++43 42 50 43 42 50 48 44 48 48 44 48 48 50 48 53 46 48 54 57 61 59 55 55
++59 57 61 65 57 61 63 59 71 75 59 67 75 72 67 63 59 71 75 59 67 59 69 70
++75 59 67 59 69 70 65 63 61 63 59 71 75 59 67 63 59 71 63 59 71 75 59 67
++63 59 71 65 63 61 63 59 71 65 63 61 65 57 61 65 63 61 65 57 61 59 57 61
++65 55 54 59 55 55 59 55 55 62 47 47 53 46 48 53 46 48 47 39 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 53 46 48 47 39 42 53 46 48 53 46 48
++53 46 48 55 55 48 59 55 55 59 55 55 65 55 54 59 55 55 53 46 48 55 55 48
++57 43 51 52 55 48 57 43 51 52 55 48 53 46 48 48 50 48 53 46 48 48 50 48
++48 50 48 47 44 42 47 44 42 47 44 42 42 41 42 47 44 42 42 41 42 42 41 42
++47 44 42 47 49 42 48 50 48 48 50 48 52 55 48 53 46 48 55 55 48 55 55 48
++55 55 48 59 55 55 59 55 55 59 55 55 52 55 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 44 48 43 42 50 42 47 42 43 42 50 42 41 42 42 41 42
++33 39 38 36 35 37 31 35 35 33 30 32 30 30 34 26 30 28 22 25 24 23 20 24
++23 20 24 23 20 24 15 22 17 23 18 22 15 22 17 23 20 24 22 25 24 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 33 30 30 23 20 24 33 30 30 26 30 28
++33 30 30 26 25 15 33 30 30 33 30 30 33 30 30 36 35 37 52 30 35 36 35 37
++36 35 37 47 44 42 36 35 37 55 39 37 42 41 42 47 39 42 36 35 37 47 39 42
++42 41 42 36 35 37 47 39 42 36 35 37 47 39 42 42 41 42 36 35 37 42 38 42
++42 38 42 36 35 37 36 35 37 36 35 37 31 35 35 30 30 34 30 30 34 26 30 28
++22 25 24 22 25 24 22 23 31 22 25 24 12 18 20 23 18 22 23 20 24 22 25 24
++22 25 24 22 25 24 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35
++33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30
++33 30 30 33 30 30 34 30 15 33 30 30 28 13 18 33 30 30 23 20 24 33 30 30
++26 25 15 33 30 30 23 20 24 33 30 30 34 30 15 34 30 15 34 30 15 49 13 16
++52 30 15 76 46 20 168 102 88 227 171 124 219 175 47 176 103 41 176 103 41 161 55 23
++161 55 23 122 49 24 122 49 24 161 55 23 122 49 24 102 33 26 161 55 23 102 33 26
++122 49 24 161 55 23 167 63 71 102 33 26 161 55 23 161 55 23 102 33 26 161 55 23
++122 49 24 102 33 26 167 63 71 102 33 26 161 55 23 102 33 26 161 55 23 102 33 26
++161 55 23 102 33 26 122 49 24 122 49 24 122 49 24 161 55 23 102 33 26 161 55 23
++167 63 71 102 33 26 161 55 23 102 33 26 161 55 23 102 33 26 102 33 26 122 49 24
++122 49 24 102 33 26 161 55 23 102 33 26 161 55 23 102 33 26 161 55 23 102 33 26
++122 49 24 102 33 26 102 33 26 122 49 24 163 117 123 222 171 182 232 215 228 201 216 228
++208 221 247 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 208 221 247 208 221 247
++185 202 202 166 176 200 185 202 202 235 238 247 251 251 247 251 251 247 240 251 247 251 251 247
++240 251 247 235 238 247 235 238 247 235 238 247 231 239 247 221 238 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 240 251 247 231 239 247 240 251 247 235 238 247 235 238 247
++240 251 247 246 237 247 240 251 247 235 238 247 240 251 247 240 251 247 246 237 247 240 251 247
++246 237 247 240 251 247 251 251 247 240 251 247 235 238 247 240 251 247 251 251 247 246 237 247
++240 251 247 246 237 247 240 251 247 240 251 247 240 251 247 235 238 247 240 251 247 240 251 247
++240 251 247 235 238 247 240 251 247 240 251 247 240 251 247 246 237 247 240 251 247 240 251 247
++240 251 247 240 251 247 240 251 247 251 251 247 240 251 247 246 237 247 251 251 247 251 251 247
++240 251 247 201 216 228 185 202 202 185 202 202 201 216 228 232 215 228 226 221 247 232 215 228
++188 180 202 166 156 164 138 102 108 138 102 108 138 102 108 167 63 71 120 63 71 120 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 161 55 23 167 63 71 122 49 24 167 63 71 102 33 26
++120 63 71 122 49 24 120 63 71 101 60 73 76 44 53 52 30 35 52 30 35 33 30 30
++52 30 35 33 30 30 52 30 35 52 30 35 53 35 37 52 30 35 55 39 37 76 44 53
++88 44 51 101 60 73 88 44 51 120 63 71 120 63 71 122 49 24 120 63 71 120 63 71
++168 102 88 168 102 88 201 146 124 201 146 124 227 171 124 227 171 124 227 171 124 177 171 115
++168 102 88 88 73 62 63 55 45 63 55 45 65 55 54 65 63 61 75 56 53 75 73 58
++65 63 61 75 63 62 65 63 61 65 63 61 65 63 61 63 55 51 64 70 48 65 55 54
++63 55 51 55 55 48 63 55 51 63 55 51 63 55 51 55 55 48 59 55 55 53 46 48
++55 55 48 55 55 48 55 55 48 53 46 48 55 55 48 53 46 48 51 49 42 51 49 42
++47 44 42 47 44 42 47 44 42 42 41 42 42 41 42 36 35 37 47 39 42 36 35 37
++47 39 42 42 41 42 36 35 37 33 39 38 42 41 42 36 35 37 31 35 35 36 35 37
++31 35 35 36 35 37 36 35 37 36 35 37 36 35 37 31 35 35 31 35 35 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 36 35 37 36 35 37
++42 41 42 42 41 42 36 35 37 36 35 37 36 35 37 42 41 42 36 35 37 42 47 42
++47 44 42 42 47 42 42 41 42 42 41 42 43 42 50 43 42 50 42 47 42 42 41 42
++43 42 50 42 41 42 43 42 50 42 41 42 34 40 43 42 41 42 34 40 43 34 40 43
++37 35 43 42 38 42 37 35 43 36 35 37 36 35 37 36 35 37 36 35 37 33 30 32
++33 30 32 36 35 37 33 30 30 36 35 37 53 35 37 36 35 37 42 41 42 53 35 37
++36 35 37 53 35 37 42 38 42 47 39 42 47 44 42 55 39 37 47 44 42 47 44 42
++47 44 42 42 41 42 42 41 42 36 35 37 47 47 21 36 35 37 36 35 37 36 35 37
++36 35 37 33 30 30 31 35 35 33 30 32 33 30 32 30 30 34 33 30 30 26 24 32
++22 25 24 23 20 24 26 24 32 33 30 30 33 30 30 33 30 30 33 30 32 33 30 32
++33 30 32 36 35 37 33 30 32 36 35 37 33 30 32 36 35 37 33 30 32 36 35 37
++36 35 37 33 30 30 33 30 32 33 30 32 36 35 37 33 30 36 33 30 36 33 30 32
++26 30 28 33 30 30 30 30 34 33 30 30 26 30 28 26 30 28 30 30 34 33 30 30
++31 35 35 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 42 38 42 42 41 42
++47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 48 44 48 51 49 42 48 44 48
++47 44 42 47 44 42 47 44 42 47 39 42 36 35 37 42 41 42 36 35 37 42 38 42
++36 35 37 42 41 42 36 35 37 36 35 37 36 35 37 33 30 30 31 35 35 33 30 32
++33 30 32 33 30 36 33 30 32 36 35 37 36 35 37 36 35 37 37 35 43 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 47 44 42 42 41 42
++47 44 42 47 44 42 47 44 42 55 39 37 42 41 42 36 35 37 47 39 42 36 35 37
++53 35 37 36 35 37 42 38 42 36 35 37 53 35 37 36 35 37 36 35 37 32 39 24
++52 30 35 36 35 37 33 30 30 52 30 35 33 30 30 52 30 35 33 30 30 52 30 35
++52 30 15 33 30 30 52 30 35 52 30 35 52 30 35 52 30 35 55 39 37 55 39 37
++55 39 37 59 36 42 55 39 37 59 36 42 59 36 42 60 49 42 55 39 37 60 49 42
++60 49 42 76 46 20 59 36 42 55 39 37 55 39 37 47 47 21 53 35 37 36 35 37
++53 35 37 32 39 24 36 35 37 32 39 24 36 35 37 32 39 24 33 30 30 33 30 30
++26 30 28 22 25 24 22 25 24 26 24 32 26 24 32 26 30 28 26 30 28 26 30 28
++26 30 28 33 30 30 33 30 32 31 35 35 36 35 37 32 39 24 47 39 42 36 35 37
++36 35 37 36 35 37 32 39 24 53 35 37 32 39 24 47 39 42 36 35 37 36 35 37
++52 30 35 33 30 30 33 30 30 33 30 30 36 35 37 33 30 32 30 30 34 30 30 34
++30 30 34 30 30 34 36 35 37 36 35 37 36 35 37 42 38 42 34 40 43 42 38 42
++42 38 42 42 38 42 42 38 42 42 41 42 42 41 42 42 41 42 42 41 42 48 44 48
++42 41 42 42 41 42 42 41 42 42 41 42 42 38 42 36 35 37 42 38 42 36 35 37
++
++34 30 15 28 13 18 33 30 30 34 30 15 33 30 30 34 30 15 33 30 30 26 25 15
++23 18 22 26 25 15 23 18 22 17 12 17 14 16 17 14 16 17 15 17 7 13 4 7
++7 12 13 7 12 13 7 12 13 7 12 13 3 4 9 7 12 13 3 4 9 7 12 13
++7 12 13 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 7 12 13 13 4 7
++7 12 13 13 4 7 7 12 13 7 10 17 7 12 13 7 10 17 7 12 13 17 12 17
++7 10 17 17 12 17 7 12 13 7 10 17 13 4 7 7 12 13 7 12 13 7 12 13
++17 12 17 7 10 17 17 12 17 7 12 13 13 4 7 17 12 17 7 12 13 17 12 17
++7 12 13 17 12 17 7 12 13 17 12 17 14 16 17 14 16 17 23 18 22 23 20 24
++22 25 24 26 24 32 25 30 29 30 30 34 33 30 36 33 39 38 34 40 43 43 42 50
++43 42 50 43 42 50 43 42 50 45 57 61 53 46 48 45 57 61 57 43 51 59 57 61
++63 59 71 63 59 71 63 59 71 59 69 70 63 59 71 75 72 67 59 69 70 63 59 71
++65 63 61 63 59 71 63 59 71 59 69 70 63 59 71 65 63 61 75 59 67 59 69 70
++75 59 67 63 59 71 65 63 61 65 57 61 59 57 61 59 57 61 59 55 55 59 57 61
++59 55 55 59 55 55 59 55 55 53 46 48 53 46 48 53 46 48 48 44 48 59 36 42
++47 39 42 53 46 48 47 39 42 59 36 42 47 39 42 53 46 48 53 46 48 60 49 42
++53 46 48 62 47 47 62 47 47 59 55 55 65 55 54 59 55 55 59 55 55 55 55 48
++62 47 47 59 55 55 57 43 51 53 46 48 48 50 48 53 46 48 53 46 48 53 46 48
++47 44 42 48 44 48 47 49 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 49 42 51 49 42 55 55 48 55 55 48 62 47 47 55 55 48 55 55 48 55 55 48
++55 55 48 52 55 48 59 55 55 52 55 48 59 55 55 55 55 48 52 55 48 53 46 48
++48 50 48 48 50 48 47 49 42 47 44 42 42 41 42 42 47 42 35 46 43 42 41 42
++34 40 43 36 35 37 36 35 37 30 30 34 30 30 34 26 30 28 23 20 24 22 25 24
++22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 22 25 24
++23 20 24 33 30 30 23 20 24 33 30 30 22 25 24 23 20 24 33 30 30 23 20 24
++33 30 30 26 24 32 33 30 30 33 30 30 33 30 30 33 30 30 32 39 24 53 35 37
++36 35 37 47 47 21 36 35 37 42 41 42 42 41 42 42 41 42 47 44 42 36 35 37
++53 35 37 36 35 37 42 41 42 47 39 42 47 39 42 42 38 42 42 38 42 47 39 42
++36 35 37 42 38 42 36 35 37 36 35 37 36 35 37 33 30 32 30 30 34 25 30 29
++22 23 31 22 25 24 23 20 24 22 25 24 23 20 24 15 22 17 23 20 24 23 20 24
++26 30 28 23 20 24 33 30 30 23 20 24 34 30 15 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 52 30 35 33 30 30 32 39 24 52 30 35 33 30 30 52 30 35
++33 30 30 33 30 30 32 39 24 52 30 35 32 39 24 33 30 30 32 39 24 52 30 35
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 23 20 24 33 30 30 23 20 24
++33 30 30 23 20 24 33 30 30 33 30 30 34 30 15 26 12 13 49 13 16 76 46 20
++120 63 71 219 175 47 227 171 124 227 171 124 195 113 123 167 63 71 161 55 23 161 55 23
++161 55 23 122 49 24 161 55 23 102 33 26 161 55 23 161 55 23 161 55 23 161 55 23
++161 55 23 102 33 26 161 55 23 167 63 71 102 33 26 161 55 23 161 55 23 122 49 24
++161 55 23 161 55 23 161 55 23 161 55 23 102 33 26 161 55 23 122 49 24 102 33 26
++102 33 26 167 63 71 122 49 24 161 55 23 102 33 26 102 33 26 122 49 24 102 33 26
++102 33 26 161 55 23 167 63 71 102 33 26 161 55 23 122 49 24 122 49 24 122 49 24
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 112 96 108 189 165 168 194 199 226 226 221 247 208 221 247
++201 216 228 194 199 226 166 176 200 166 176 200 194 199 226 221 238 247 221 238 247 194 199 226
++150 147 171 166 174 181 201 216 228 235 238 247 251 251 247 251 251 247 240 251 247 235 238 247
++240 251 247 235 238 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 231 239 247 235 238 247 235 238 247 240 251 247 246 237 247
++240 251 247 235 238 247 240 251 247 235 238 247 240 251 247 246 237 247 240 251 247 240 251 247
++240 251 247 240 251 247 240 251 247 246 237 247 240 251 247 251 251 247 240 251 247 240 251 247
++240 251 247 240 251 247 251 251 247 251 251 247 251 251 247 240 251 247 240 251 247 240 251 247
++240 251 247 240 251 247 246 237 247 240 251 247 246 237 247 240 251 247 240 251 247 240 251 247
++240 251 247 246 237 247 240 251 247 240 251 247 240 251 247 251 251 247 240 251 247 240 251 247
++232 215 228 201 216 228 188 180 202 188 180 202 201 216 228 201 216 228 232 215 228 188 180 202
++217 168 156 163 117 123 167 63 71 167 63 71 167 63 71 161 55 23 167 63 71 161 55 23
++167 63 71 167 63 71 161 55 23 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 122 49 24 161 55 23
++122 49 24 167 63 71 122 49 24 161 55 23 120 63 71 102 33 26 102 33 26 76 18 19
++88 44 51 76 18 19 88 30 18 88 30 18 88 44 51 102 33 26 88 44 51 102 33 26
++120 63 71 122 49 24 122 49 24 102 33 26 122 49 24 122 49 24 120 63 71 161 55 23
++120 63 71 161 55 23 168 102 88 227 171 124 227 171 124 227 171 124 227 171 124 227 171 124
++227 171 124 176 103 41 101 74 26 76 46 20 75 73 36 75 73 58 75 73 58 75 63 62
++64 70 48 75 56 53 75 73 58 75 73 58 75 63 62 64 70 48 65 63 61 65 55 54
++64 70 48 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51
++63 55 51 63 55 51 63 55 51 55 55 48 55 55 48 51 49 42 53 46 48 51 49 42
++51 49 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 42 41 42 47 44 42
++36 35 37 42 41 42 42 41 42 36 35 37 42 38 42 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 33 30 36 36 35 37 36 35 37 36 35 37 33 30 32 33 30 32
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 42 38 42 36 35 37 36 35 37 36 35 37 42 38 42 42 41 42
++47 44 42 42 41 42 42 41 42 36 35 37 42 41 42 36 35 37 42 41 42 42 41 42
++47 44 42 42 41 42 42 41 42 42 41 42 47 49 42 48 50 48 42 41 42 42 47 42
++43 42 50 42 47 42 42 41 42 42 41 42 42 41 42 42 41 42 42 38 42 42 38 42
++42 41 42 37 35 43 33 39 38 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37
++33 30 30 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++42 41 42 53 35 37 47 39 42 53 35 37 47 39 42 47 39 42 47 44 42 47 39 42
++47 44 42 53 35 37 47 44 42 47 39 42 42 38 42 36 35 37 47 47 21 36 35 37
++36 35 37 36 35 37 33 30 36 33 30 32 33 30 30 33 30 30 26 30 28 33 30 30
++22 25 24 33 30 30 26 30 28 26 24 32 33 30 30 26 30 28 33 30 30 36 35 37
++33 30 32 36 35 37 36 35 37 36 35 37 36 35 37 33 30 32 36 35 37 36 35 37
++36 35 37 33 30 32 31 35 35 33 30 32 33 30 32 33 30 32 31 35 35 33 30 32
++33 30 32 26 30 28 26 30 28 26 30 28 33 30 30 26 30 28 33 30 30 31 35 35
++33 30 32 33 30 32 33 30 32 36 35 37 36 35 37 36 35 37 42 38 42 42 41 42
++47 39 42 47 44 42 47 44 42 47 44 42 51 49 42 53 46 48 51 49 42 53 46 48
++51 49 42 47 44 42 47 44 42 47 44 42 47 44 42 47 39 42 42 38 42 42 41 42
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 31 35 35 33 30 32 31 35 35
++36 35 37 33 30 36 31 35 35 36 35 37 36 35 37 36 35 37 36 35 37 33 39 38
++42 41 42 42 41 42 42 41 42 42 41 42 42 47 42 42 41 42 47 44 42 42 41 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 39 42 47 47 21
++42 41 42 47 39 42 47 47 21 36 35 37 36 35 37 47 47 21 36 35 37 53 35 37
++36 35 37 52 30 35 33 30 30 33 30 30 52 30 35 52 30 15 52 30 35 33 30 30
++52 30 35 33 30 30 53 35 17 52 30 35 52 30 35 52 30 35 53 35 17 52 30 35
++52 30 35 55 39 37 55 39 37 60 49 42 55 39 37 60 49 42 59 36 42 60 49 42
++55 39 37 60 49 42 55 39 37 55 39 37 55 39 37 53 35 37 47 47 21 53 35 37
++47 47 21 53 35 37 32 39 24 53 35 17 32 39 24 33 30 30 33 30 30 26 30 28
++33 30 30 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 26 24 32 26 30 28
++26 30 28 26 30 28 33 30 30 33 30 30 36 35 37 36 35 37 32 39 24 36 35 37
++53 35 37 36 35 37 53 35 37 36 35 37 53 35 37 36 35 37 47 47 21 36 35 37
++36 35 37 32 39 24 52 30 35 33 30 30 33 30 30 33 30 30 33 30 30 26 30 28
++33 30 30 30 30 34 33 30 32 33 30 32 31 35 35 31 35 35 36 35 37 36 35 37
++42 38 42 36 35 37 42 38 42 36 35 37 42 41 42 42 41 42 42 41 42 42 41 42
++47 44 42 47 39 42 47 39 42 42 41 42 53 35 37 42 38 42 47 47 21 36 35 37
++
++23 18 22 34 30 15 33 30 30 28 13 18 33 30 30 28 13 18 26 25 15 26 25 15
++28 13 18 26 25 15 17 12 17 22 24 13 17 12 17 15 17 7 15 17 7 7 12 13
++17 12 17 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 3 4 9 7 12 13
++13 4 7 3 4 9 7 12 13 3 4 9 7 12 13 7 12 13 13 4 7 7 12 13
++13 4 7 7 10 17 13 4 7 7 10 17 13 4 7 7 10 17 17 12 17 7 10 17
++17 12 17 7 12 13 7 10 17 13 4 7 7 10 17 7 10 17 17 12 17 7 10 17
++13 4 7 7 10 17 7 12 13 17 12 17 7 12 13 7 12 13 7 12 13 17 12 17
++14 16 17 14 16 17 7 12 13 14 16 17 14 16 17 14 16 17 23 20 24 22 25 24
++26 30 28 26 24 32 30 30 34 36 35 37 34 40 43 37 35 43 34 40 43 43 42 50
++43 42 50 48 50 48 45 57 61 57 43 51 48 50 48 57 43 64 54 57 61 59 57 61
++63 59 71 65 63 61 75 72 67 75 64 82 59 69 70 75 64 82 63 59 71 75 72 67
++59 69 70 75 59 67 59 69 70 75 59 67 65 63 61 63 59 71 63 59 71 65 63 61
++63 59 71 65 63 61 63 59 71 59 57 61 59 57 61 63 55 51 59 55 55 59 55 55
++59 55 55 53 46 48 55 55 48 53 46 48 53 46 48 47 39 42 59 36 42 47 39 42
++47 39 42 47 39 42 48 44 48 48 44 48 53 46 48 48 44 48 55 39 37 53 46 48
++60 49 42 53 46 48 59 55 55 62 47 47 59 55 55 57 43 51 53 46 48 53 46 48
++59 55 55 53 46 48 62 47 47 53 46 48 53 46 48 51 49 42 48 50 48 53 46 48
++48 44 48 51 49 42 47 44 42 47 49 42 47 44 42 47 44 42 51 49 42 51 49 42
++51 49 42 52 55 48 55 55 48 59 55 55 63 55 51 59 55 55 55 55 48 59 55 55
++55 55 48 59 55 55 59 55 55 55 55 48 55 55 48 59 55 55 55 55 48 52 55 48
++48 50 48 48 50 48 48 50 48 47 44 42 47 44 42 42 47 42 42 41 42 34 40 43
++42 41 42 36 35 37 31 35 35 30 30 34 26 30 28 26 24 32 26 30 28 22 25 24
++23 18 22 15 22 17 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 26 24 32
++23 20 24 23 20 24 23 20 24 23 20 24 33 30 30 23 20 24 33 30 30 33 30 30
++23 20 24 33 30 30 33 30 30 33 30 30 33 30 30 53 35 37 32 39 24 36 35 37
++53 35 37 42 38 42 47 39 42 47 39 42 42 41 42 47 39 42 42 41 42 42 41 42
++36 35 37 47 39 42 47 39 42 42 41 42 42 41 42 47 39 42 36 35 37 42 38 42
++36 35 37 52 30 35 36 35 37 36 35 37 31 35 35 31 35 35 30 30 34 25 30 29
++22 25 24 22 25 24 22 25 24 23 20 24 23 20 24 23 20 24 22 25 24 22 25 24
++22 25 24 33 30 30 33 30 30 28 13 18 33 30 30 33 30 30 33 30 30 33 30 30
++36 35 37 33 30 30 33 30 30 33 30 30 36 35 37 33 30 30 33 30 30 36 35 37
++52 30 35 33 30 30 33 30 30 33 30 30 52 30 35 32 39 24 36 35 37 33 30 30
++33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 23 20 24 33 30 30 23 20 24
++22 25 24 33 30 30 23 20 24 33 30 30 28 13 18 23 10 10 52 30 15 117 112 45
++219 175 47 227 171 124 227 171 124 176 103 41 161 55 23 161 55 23 122 49 24 102 33 26
++161 55 23 122 49 24 161 55 23 161 55 23 161 55 23 102 33 26 167 63 71 122 49 24
++167 63 71 161 55 23 122 49 24 161 55 23 161 55 23 167 63 71 102 33 26 161 55 23
++102 33 26 167 63 71 102 33 26 167 63 71 122 49 24 161 55 23 102 33 26 102 33 26
++102 33 26 102 33 26 161 55 23 122 49 24 161 55 23 122 49 24 102 33 26 161 55 23
++102 33 26 161 55 23 122 49 24 167 63 71 167 63 71 102 33 26 161 55 23 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 120 63 71 189 165 168 194 199 226 226 221 247 226 221 247 194 199 226
++194 199 226 194 199 226 166 176 200 95 108 128 111 122 142 166 176 200 166 176 200 150 168 183
++131 144 168 185 202 202 231 239 247 240 251 247 251 251 247 240 251 247 240 251 247 240 251 247
++235 238 247 231 239 247 221 238 247 231 239 247 231 239 247 240 251 247 231 239 247 240 251 247
++231 239 247 240 251 247 235 238 247 240 251 247 240 251 247 235 238 247 240 251 247 240 251 247
++240 251 247 235 238 247 240 251 247 246 237 247 240 251 247 240 251 247 235 238 247 240 251 247
++235 238 247 235 238 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 240 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 246 237 247 240 251 247
++240 251 247 240 251 247 240 251 247 246 237 247 240 251 247 251 251 247 251 251 247 221 238 247
++194 199 226 166 174 181 188 180 202 185 202 202 185 202 202 232 215 228 185 202 202 222 171 182
++163 117 123 168 102 88 120 63 71 167 63 71 161 55 23 120 63 71 167 63 71 167 63 71
++167 63 71 161 55 23 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 161 55 23 161 55 23 167 63 71 122 49 24
++167 63 71 102 33 26 161 55 23 120 63 71 122 49 24 122 49 24 120 63 71 120 63 71
++88 44 51 120 63 71 88 44 51 88 44 51 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 122 49 24 102 33 26 122 49 24
++122 49 24 161 55 23 161 55 23 176 103 41 227 171 124 219 175 47 227 171 124 219 175 47
++214 214 134 219 175 47 117 114 76 88 73 31 75 56 53 75 73 58 75 63 62 75 73 58
++75 63 62 75 73 58 75 73 58 65 63 61 64 70 48 75 63 62 65 63 61 64 70 48
++65 55 54 64 70 48 63 55 51 63 55 51 63 55 51 63 55 51 59 55 55 63 55 51
++55 55 48 55 55 48 62 47 47 55 55 48 53 46 48 53 46 48 52 55 48 53 46 48
++51 49 42 47 44 42 47 44 42 42 47 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 36 35 37 42 41 42 42 41 42 33 39 38 36 35 37 42 38 42 33 39 38
++36 35 37 36 35 37 36 35 37 37 35 43 33 30 36 36 35 37 31 35 35 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 32 39 24 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42
++42 41 42 42 38 42 42 38 42 36 35 37 47 44 42 42 47 42 47 44 42 42 41 42
++47 44 42 42 41 42 42 41 42 48 44 48 42 47 42 42 47 42 42 47 42 43 42 50
++48 44 48 43 42 50 42 47 42 42 41 42 33 39 38 42 41 42 34 40 43 42 41 42
++34 40 43 36 35 37 42 38 42 37 35 43 42 38 42 36 35 37 36 35 37 36 35 37
++36 35 37 47 47 21 36 35 37 53 35 37 36 35 37 55 39 37 36 35 37 55 39 37
++36 35 37 53 35 37 42 41 42 47 44 42 47 39 42 47 44 42 47 39 42 47 44 42
++47 44 42 47 44 42 42 41 42 47 39 42 42 41 42 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 33 30 36 33 30 32 33 30 32 33 30 30 26 24 32 33 30 30
++26 30 28 33 30 30 23 20 24 33 30 30 26 30 28 33 30 30 33 30 32 33 30 32
++36 35 37 33 30 32 36 35 37 33 30 32 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 33 30 32 33 30 32 36 35 37 36 35 37 33 30 32 33 30 32 33 30 32
++33 30 30 26 30 28 33 30 30 26 30 28 33 30 30 26 30 28 33 30 30 30 30 34
++33 30 32 31 35 35 33 30 32 36 35 37 36 35 37 36 35 37 42 41 42 42 41 42
++47 44 42 48 44 48 51 49 42 53 46 48 51 49 42 53 46 48 53 46 48 53 46 48
++51 49 42 47 44 42 47 44 42 47 44 42 47 39 42 47 39 42 42 41 42 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 30 32 31 35 35 33 30 32
++30 30 34 31 35 35 33 30 36 36 35 37 36 35 37 33 39 38 36 35 37 42 38 42
++42 41 42 33 39 38 42 41 42 42 41 42 42 41 42 47 44 42 42 41 42 47 44 42
++42 47 42 47 44 42 47 44 42 47 44 42 51 49 42 47 44 42 47 44 42 47 44 42
++47 39 42 36 35 37 53 35 37 36 35 37 53 35 37 36 35 37 36 35 37 52 30 35
++33 30 30 52 30 35 33 30 30 53 35 17 33 30 32 52 30 35 33 30 30 52 30 15
++52 30 35 52 30 35 33 30 32 52 30 35 52 30 35 52 30 35 52 30 35 55 39 37
++55 39 37 55 39 37 55 39 37 59 36 42 60 49 42 59 36 42 76 46 20 59 36 42
++60 49 42 55 39 37 47 47 21 60 49 42 55 39 18 55 39 37 47 39 42 36 35 37
++53 35 37 32 39 24 33 30 30 53 35 17 33 30 32 33 30 30 33 30 30 33 30 30
++26 25 15 22 25 24 26 25 15 22 25 24 22 25 24 22 25 24 26 30 28 26 30 28
++26 30 28 33 30 30 33 30 32 31 35 35 33 30 30 36 35 37 36 35 37 47 39 42
++36 35 37 42 41 42 36 35 37 32 39 24 36 35 37 36 35 37 47 39 42 36 35 37
++36 35 37 36 35 37 32 39 24 33 30 30 33 30 30 23 20 24 33 30 30 26 30 28
++26 30 28 26 30 28 26 30 28 30 30 34 33 30 32 30 30 34 36 35 37 36 35 37
++36 35 37 42 41 42 36 35 37 36 35 37 42 41 42 36 35 37 42 41 42 36 35 37
++47 39 42 42 41 42 47 47 21 42 41 42 47 44 42 36 35 37 52 30 35 36 35 37
++
++34 30 15 28 13 18 34 30 15 33 30 30 26 25 15 23 20 24 34 30 15 23 18 22
++26 25 15 23 18 22 23 18 22 26 12 13 17 12 17 17 12 17 14 16 17 13 4 7
++7 12 13 7 12 13 7 12 13 7 12 13 3 4 9 7 12 13 3 4 9 13 4 7
++7 12 13 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7
++7 12 13 13 4 7 7 12 13 17 12 17 7 10 17 13 4 7 7 10 17 7 12 13
++17 12 17 7 10 17 13 4 7 7 10 17 17 12 17 7 10 17 13 4 7 7 10 17
++17 12 17 7 12 13 17 12 17 7 12 13 7 12 13 14 16 17 17 12 17 7 12 13
++14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 23 18 22 23 20 24 26 30 28
++30 30 34 30 30 34 33 30 36 37 35 43 34 40 43 43 42 50 43 42 50 43 42 50
++45 57 61 48 50 48 57 43 64 48 44 48 54 57 61 54 57 61 54 57 61 59 57 61
++63 59 71 63 59 71 63 59 71 59 69 70 75 64 82 75 72 67 75 64 82 59 69 70
++75 59 67 59 69 70 63 59 71 59 69 70 63 59 71 65 63 61 65 63 61 63 59 71
++65 57 61 59 57 61 65 57 61 65 57 61 59 55 55 59 55 55 59 55 55 59 55 55
++52 55 48 59 55 55 53 46 48 48 44 48 48 44 48 47 39 42 53 46 48 47 39 42
++47 39 42 47 39 42 55 39 37 47 39 42 53 46 48 47 39 42 53 46 48 53 46 48
++53 46 48 62 47 47 63 55 51 59 55 55 57 43 51 63 55 51 53 46 48 59 55 55
++53 46 48 62 47 47 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48
++53 46 48 51 49 42 47 44 42 47 44 42 51 49 42 47 44 42 51 49 42 53 46 48
++55 55 48 55 55 48 59 55 55 59 55 55 59 55 55 63 55 51 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 55 55 48 59 55 55
++52 55 48 53 46 48 48 50 48 48 50 48 47 49 42 42 41 42 35 46 43 42 41 42
++34 40 43 37 35 43 31 35 35 30 30 34 30 30 34 25 30 29 22 25 24 22 25 24
++23 20 24 23 18 22 23 18 22 23 18 22 23 20 24 23 20 24 22 25 24 22 25 24
++23 20 24 23 20 24 23 20 24 33 30 30 23 20 24 26 30 28 23 20 24 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 32 39 24 52 30 35 36 35 37
++36 35 37 36 35 37 42 41 42 47 39 42 47 44 42 47 39 42 42 41 42 47 39 42
++47 39 42 42 41 42 42 41 42 42 41 42 47 39 42 42 41 42 47 39 42 42 38 42
++42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 33 30 36 30 30 34 26 30 28
++26 24 32 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 23 20 24 22 25 24
++23 20 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++52 30 35 33 30 30 52 30 35 33 30 30 52 30 35 33 30 30 52 30 35 33 30 30
++33 30 30 52 30 35 33 30 30 53 35 17 36 35 37 33 30 30 36 35 37 53 35 17
++33 30 30 33 30 30 33 30 30 26 25 15 33 30 30 33 30 30 23 20 24 26 30 28
++23 20 24 33 30 30 28 13 18 34 30 15 26 12 13 52 30 15 101 74 26 195 113 123
++227 171 124 168 102 88 161 55 23 161 55 23 122 49 24 102 33 26 122 49 24 122 49 24
++102 33 26 161 55 23 102 33 26 102 33 26 102 33 26 167 63 71 161 55 23 161 55 23
++102 33 26 161 55 23 167 63 71 122 49 24 161 55 23 102 33 26 161 55 23 167 63 71
++161 55 23 122 49 24 161 55 23 102 33 26 161 55 23 122 49 24 102 33 26 161 55 23
++102 33 26 102 33 26 102 33 26 102 33 26 167 63 71 161 55 23 161 55 23 102 33 26
++102 33 26 161 55 23 102 33 26 161 55 23 102 33 26 161 55 23 167 63 71 167 63 71
++161 55 23 102 33 26 102 33 26 102 33 26 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 120 63 71 195 113 123 232 215 228 226 221 247 232 215 228 194 199 226 194 199 226
++208 221 247 194 199 226 150 168 183 77 91 115 61 78 101 95 108 128 122 134 144 166 174 181
++194 199 226 226 221 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 235 238 247
++231 239 247 226 221 247 221 238 247 240 251 247 231 239 247 240 251 247 231 239 247 240 251 247
++231 239 247 235 238 247 240 251 247 235 238 247 240 251 247 240 251 247 240 251 247 246 237 247
++240 251 247 246 237 247 240 251 247 240 251 247 246 237 247 240 251 247 240 251 247 235 238 247
++240 251 247 235 238 247 240 251 247 235 238 247 235 238 247 235 238 247 235 238 247 235 238 247
++221 238 247 232 215 228 201 216 228 201 216 228 201 216 228 226 221 247 231 239 247 235 238 247
++240 251 247 251 251 247 251 251 247 251 251 247 240 251 247 235 238 247 240 251 247 240 251 247
++251 251 247 240 251 247 240 251 247 240 251 247 240 251 247 251 251 247 240 251 247 232 215 228
++166 174 181 166 174 181 166 174 181 166 174 181 188 180 202 188 180 202 188 180 202 166 156 164
++138 102 108 120 63 71 167 63 71 167 63 71 167 63 71 161 55 23 167 63 71 167 63 71
++161 55 23 167 63 71 161 55 23 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 161 55 23 167 63 71 167 63 71 122 49 24 167 63 71
++161 55 23 167 63 71 102 33 26 161 55 23 102 33 26 122 49 24 120 63 71 122 49 24
++120 63 71 167 63 71 120 63 71 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++76 18 19 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 122 49 24 161 55 23 219 175 47 219 175 47 214 214 134 219 175 47
++227 171 124 227 171 124 168 102 88 101 74 26 75 73 36 75 56 53 88 73 62 75 72 67
++75 73 58 75 63 62 75 73 58 75 63 62 75 73 58 75 63 62 75 73 58 65 63 61
++75 73 58 65 55 54 65 63 61 64 70 48 63 55 51 63 55 51 59 55 55 63 55 51
++59 55 55 62 47 47 55 55 48 55 55 48 55 55 48 55 55 48 51 49 42 53 46 48
++51 49 42 47 44 42 47 44 42 42 41 42 47 44 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 36 35 37 42 41 42 42 38 42 42 41 42 36 35 37 37 35 43
++36 35 37 36 35 37 37 35 43 36 35 37 36 35 37 36 35 37 33 30 32 31 35 35
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 42 41 42 36 35 37 42 38 42 36 35 37 36 35 37
++42 38 42 42 41 42 36 35 37 42 41 42 42 41 42 47 44 42 42 38 42 42 38 42
++36 35 37 42 38 42 42 38 42 42 41 42 42 41 42 47 44 42 47 44 42 48 50 48
++47 44 42 48 44 48 47 44 42 42 47 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 36 35 37 42 38 42 42 38 42 36 35 37 53 35 37 36 35 37
++42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 47 47 21 36 35 37 36 35 37
++42 41 42 53 35 37 47 39 42 53 35 37 47 44 42 47 44 42 47 44 42 47 39 42
++47 44 42 47 44 42 47 44 42 47 44 42 36 35 37 47 39 42 47 47 21 36 35 37
++42 38 42 36 35 37 36 35 37 33 30 32 33 30 30 33 30 30 33 30 30 26 30 28
++33 30 30 26 24 32 26 30 28 33 30 30 33 30 30 33 30 30 33 30 32 33 30 32
++33 30 32 36 35 37 36 35 37 33 30 32 36 35 37 36 35 37 36 35 37 33 30 32
++36 35 37 36 35 37 33 30 32 33 30 32 33 30 32 36 35 37 31 35 35 33 30 32
++26 30 28 33 30 30 26 30 28 33 30 30 26 30 28 33 30 30 26 30 28 33 30 30
++33 30 30 36 35 37 33 30 32 36 35 37 42 38 42 36 35 37 42 38 42 42 41 42
++47 44 42 47 44 42 47 44 42 51 49 42 51 49 42 53 46 48 48 50 48 53 46 48
++53 46 48 48 44 48 47 44 42 47 44 42 47 44 42 47 39 42 42 41 42 42 41 42
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 31 35 35 33 30 32 30 30 34
++31 35 35 33 30 32 31 35 35 36 35 37 36 35 37 36 35 37 36 35 37 33 39 38
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 47 44 42 42 47 42 47 44 42
++47 44 42 47 44 42 47 49 42 51 49 42 53 46 48 53 46 48 51 49 42 51 49 42
++47 44 42 47 47 21 47 39 42 47 44 42 36 35 37 47 47 21 36 35 37 52 30 35
++36 35 37 52 30 35 33 30 30 52 30 35 33 30 30 52 30 35 52 30 35 33 30 30
++52 30 35 33 30 30 52 30 35 53 35 17 52 30 35 52 30 35 53 35 37 55 39 18
++52 30 35 59 36 42 76 46 20 59 36 42 60 49 42 59 36 42 60 49 42 60 49 42
++55 39 37 60 49 42 60 49 42 60 49 42 55 39 37 55 39 37 53 35 37 47 47 21
++53 35 37 53 35 37 36 35 37 47 47 21 33 30 30 32 39 24 33 30 30 33 30 30
++33 30 30 33 30 30 22 25 24 22 25 24 22 25 24 22 25 24 26 30 28 26 30 28
++26 30 28 26 30 28 31 35 35 33 30 30 36 35 37 36 35 37 36 35 37 42 41 42
++47 47 21 47 39 42 36 35 37 53 35 37 36 35 37 53 35 37 36 35 37 53 35 37
++36 35 37 53 35 37 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 26 24 32
++26 30 28 33 30 30 26 30 28 30 30 34 33 30 32 30 30 34 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 41 42 36 35 37 55 39 37
++36 35 37 47 39 42 47 39 42 42 41 42 55 39 37 42 38 42 47 47 21 36 35 37
++
++28 13 18 34 30 15 28 13 18 26 25 15 28 13 18 26 25 15 23 20 24 26 25 15
++28 13 18 22 24 13 17 12 17 15 17 7 17 12 17 15 17 7 13 4 7 6 15 6
++13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 3 4 9 13 4 7 6 15 6
++3 4 9 7 12 13 7 12 13 7 12 13 3 4 9 7 12 13 13 4 7 7 12 13
++7 12 13 7 12 13 17 12 17 7 10 17 7 12 13 17 12 17 7 10 17 17 12 17
++7 10 17 17 12 17 7 10 17 7 10 17 7 12 13 17 12 17 7 10 17 17 12 17
++7 10 17 17 12 17 7 12 13 17 12 17 17 12 17 15 17 7 14 16 17 17 12 17
++14 16 17 14 16 17 14 16 17 23 18 22 23 18 22 22 25 24 22 25 24 30 30 34
++33 30 32 31 35 35 37 35 43 37 35 43 42 38 42 43 42 50 43 42 50 48 50 48
++48 44 48 57 43 64 45 57 61 54 57 61 57 43 51 54 57 61 54 57 61 59 57 61
++63 59 71 75 72 67 59 69 70 75 64 82 75 72 67 75 64 82 60 81 83 75 64 82
++59 69 70 63 59 71 75 72 67 63 59 71 65 63 61 63 59 71 65 63 61 65 57 61
++59 57 61 59 57 61 59 57 61 59 57 61 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 48 44 48 53 46 48 48 44 48 47 44 42 53 46 48 47 39 42 53 46 48
++47 39 42 53 46 48 48 44 48 53 46 48 59 36 42 53 46 48 53 46 48 55 39 37
++53 46 48 62 47 47 53 46 48 63 55 51 62 47 47 59 55 55 53 46 48 62 47 47
++53 46 48 62 47 47 53 46 48 53 46 48 53 46 48 53 46 48 51 49 42 51 49 42
++53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 55 55 48
++63 55 51 63 55 51 63 55 51 65 55 54 65 63 61 63 55 51 63 55 51 63 55 51
++64 70 48 65 55 54 65 63 61 63 55 51 63 55 51 59 55 55 63 55 51 55 55 48
++55 55 48 55 55 48 52 55 48 48 44 48 47 49 42 47 44 42 42 47 42 42 41 42
++42 41 42 34 40 43 36 35 37 31 35 35 28 30 35 22 25 24 22 23 31 22 25 24
++23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++26 24 32 23 20 24 33 30 30 23 18 22 23 20 24 33 30 30 23 20 24 33 30 30
++23 20 24 33 30 30 34 30 15 33 30 30 36 35 37 52 30 35 36 35 37 47 47 21
++47 39 42 47 44 42 47 39 42 47 44 42 42 41 42 47 44 42 47 39 42 42 41 42
++42 41 42 42 41 42 47 39 42 42 41 42 42 41 42 53 35 37 36 35 37 36 35 37
++36 35 37 42 38 42 36 35 37 36 35 37 33 30 36 33 30 32 33 30 32 25 30 29
++26 24 32 22 25 24 26 24 32 22 25 24 23 20 24 23 20 24 23 20 24 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30
++33 30 30 36 35 37 36 35 37 52 30 35 36 35 37 36 35 37 52 30 35 33 30 30
++52 30 35 33 30 30 36 35 37 33 30 30 52 30 35 32 39 24 36 35 37 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 26 24 32 26 25 15 23 20 24 34 30 15
++23 20 24 26 25 15 34 30 15 26 12 13 52 30 15 101 74 26 201 146 124 201 146 124
++176 103 41 161 55 23 102 33 26 102 33 26 102 33 26 122 49 24 167 63 71 120 63 71
++167 63 71 120 63 71 120 63 71 167 63 71 102 33 26 102 33 26 167 63 71 161 55 23
++167 63 71 161 55 23 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 102 33 26
++161 55 23 161 55 23 167 63 71 102 33 26 161 55 23 102 33 26 161 55 23 102 33 26
++102 33 26 122 49 24 102 33 26 161 55 23 102 33 26 167 63 71 102 33 26 161 55 23
++122 49 24 102 33 26 161 55 23 102 33 26 167 63 71 102 33 26 167 63 71 102 33 26
++161 55 23 102 33 26 122 49 24 102 33 26 88 30 18 76 18 19 76 18 19 88 30 18
++120 63 71 189 165 168 226 221 247 226 221 247 208 221 247 194 199 226 185 202 202 194 199 226
++208 221 247 208 221 247 194 199 226 111 122 142 77 91 115 111 122 142 166 176 200 201 216 228
++221 238 247 221 238 247 231 239 247 240 251 247 251 251 247 235 238 247 240 251 247 231 239 247
++221 238 247 221 238 247 231 239 247 235 238 247 240 251 247 231 239 247 240 251 247 231 239 247
++240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 251 251 247 251 251 247 240 251 247
++251 251 247 240 251 247 251 251 247 240 251 247 251 251 247 240 251 247 251 251 247 240 251 247
++240 251 247 240 251 247 231 239 247 226 221 247 208 221 247 221 238 247 231 239 247 231 239 247
++201 216 228 166 174 181 129 144 153 129 144 153 150 147 171 166 174 181 166 176 200 201 216 228
++235 238 247 251 251 247 251 251 247 251 251 247 251 251 247 240 251 247 240 251 247 251 251 247
++240 251 247 251 251 247 235 238 247 251 251 247 251 251 247 251 251 247 231 239 247 194 199 226
++166 174 181 166 174 181 166 174 181 166 174 181 188 180 202 188 180 202 222 171 182 163 117 123
++167 63 71 167 63 71 167 63 71 122 49 24 161 55 23 167 63 71 167 63 71 167 63 71
++167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 161 55 23 167 63 71 161 55 23
++102 33 26 167 63 71 161 55 23 167 63 71 102 33 26 167 63 71 102 33 26 161 55 23
++102 33 26 122 49 24 167 63 71 122 49 24 167 63 71 122 49 24 167 63 71 122 49 24
++161 55 23 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 76 18 19 88 30 18
++88 30 18 102 33 26 102 33 26 122 49 24 167 63 71 219 175 47 227 171 124 219 175 47
++227 171 124 219 175 47 219 175 47 117 112 45 88 44 51 75 73 36 75 63 62 75 73 58
++75 63 62 75 73 58 75 73 58 64 70 48 75 63 62 75 73 58 75 56 53 64 70 48
++75 56 53 64 70 48 75 56 53 65 63 61 65 55 54 63 55 51 63 55 51 59 55 55
++63 55 51 55 55 48 62 47 47 62 47 47 55 55 48 55 55 48 55 55 48 53 46 48
++53 46 48 51 49 42 47 44 42 47 44 42 42 47 42 42 41 42 47 44 42 42 41 42
++42 47 42 42 41 42 42 41 42 42 41 42 42 41 42 34 40 43 42 41 42 42 38 42
++36 35 37 33 39 38 36 35 37 31 35 35 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42
++36 35 37 36 35 37 42 41 42 36 35 37 36 35 37 36 35 37 42 41 42 42 38 42
++42 41 42 42 41 42 36 35 37 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37
++52 30 35 53 35 37 36 35 37 52 30 35 36 35 37 47 44 42 47 44 42 47 39 42
++42 41 42 42 38 42 42 38 42 42 38 42 42 38 42 42 41 42 42 38 42 42 38 42
++42 38 42 33 39 38 36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 36 35 37
++36 35 37 36 35 37 53 35 37 36 35 37 53 35 37 36 35 37 36 35 37 55 39 37
++42 41 42 53 35 37 42 41 42 47 39 42 47 44 42 47 44 42 55 39 37 47 44 42
++47 44 42 47 39 42 47 44 42 47 39 42 47 44 42 36 35 37 47 39 42 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 33 30 32 33 30 30 33 30 30 33 30 30
++26 24 32 33 30 30 33 30 30 33 30 30 33 30 32 33 30 32 36 35 37 33 30 32
++36 35 37 36 35 37 36 35 37 36 35 37 33 30 32 36 35 37 36 35 37 36 35 37
++36 35 37 33 30 32 36 35 37 36 35 37 36 35 37 33 30 32 33 30 32 33 30 32
++26 30 28 26 30 28 26 24 32 26 30 28 26 30 28 26 30 28 33 30 30 26 30 28
++33 30 32 33 30 32 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 42 41 42
++47 44 42 48 44 48 47 44 42 53 46 48 51 49 42 53 46 48 53 46 48 51 49 42
++48 50 48 47 44 42 47 44 42 47 44 42 47 44 42 47 39 42 42 41 42 47 39 42
++42 38 42 42 38 42 36 35 37 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 37 35 43 42 38 42 37 35 43
++36 35 37 42 41 42 42 41 42 42 47 42 47 44 42 47 44 42 47 44 42 47 49 42
++47 49 42 48 50 48 48 50 48 48 50 48 53 46 48 53 46 48 53 46 48 51 49 42
++47 44 42 47 39 42 47 44 42 55 39 37 42 41 42 47 39 42 42 41 42 53 35 37
++36 35 37 52 30 35 36 35 37 52 30 35 52 30 35 33 30 30 52 30 35 52 30 35
++52 30 15 52 30 35 52 30 35 53 35 37 52 30 35 53 35 37 55 39 37 53 35 37
++55 39 37 59 36 42 59 36 42 60 49 42 59 36 42 60 49 42 60 49 42 60 49 42
++60 49 42 76 46 20 60 49 42 55 39 37 60 49 42 55 39 37 55 39 37 55 39 37
++55 39 37 42 41 42 47 47 21 42 38 42 36 35 37 52 30 35 33 30 30 33 30 30
++33 30 30 33 30 30 26 30 28 33 30 30 22 25 24 22 25 24 33 30 30 33 30 30
++33 30 30 33 30 32 33 30 32 36 35 37 36 35 37 32 39 24 36 35 37 42 38 42
++42 38 42 42 38 42 42 41 42 42 41 42 47 44 42 36 35 37 47 44 42 42 41 42
++47 44 42 36 35 37 53 35 37 33 30 30 33 30 32 33 30 30 33 30 30 26 30 28
++26 30 28 26 24 32 26 30 28 33 30 30 30 30 34 31 35 35 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 47 39 42 36 35 37 42 41 42 36 35 37 36 35 37
++47 44 42 47 44 42 47 47 21 42 38 42 42 41 42 53 35 37 36 35 37 47 39 42
++
++34 30 15 28 13 18 33 30 30 34 30 15 23 20 24 26 25 15 23 18 22 26 25 15
++28 13 18 22 24 13 17 12 17 26 12 13 15 17 7 7 12 13 15 17 7 7 12 13
++13 4 7 7 12 13 7 12 13 7 12 13 3 4 9 6 15 6 3 4 9 13 4 7
++13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 7 12 13
++13 4 7 7 12 13 17 12 17 7 10 17 17 12 17 7 10 17 17 12 17 7 10 17
++17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 7 10 17 7 12 13 17 12 17
++7 12 13 17 12 17 7 12 13 14 16 17 7 12 13 17 12 17 15 17 7 14 16 17
++14 16 17 23 18 22 14 16 17 15 22 17 23 20 24 22 25 24 25 30 29 30 30 34
++33 30 32 36 35 37 37 35 43 42 38 42 43 42 50 43 42 50 43 42 50 48 44 48
++45 57 61 48 50 48 48 50 48 53 46 48 54 57 61 54 57 61 54 57 61 65 63 61
++63 59 71 63 59 71 75 64 82 75 72 67 60 81 83 75 64 82 75 72 67 75 64 82
++75 72 67 59 69 70 63 59 71 63 59 71 59 69 70 63 59 71 65 57 61 59 57 61
++59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 57 61 59 55 55 59 55 55
++59 55 55 53 46 48 53 46 48 53 46 48 47 39 42 47 39 42 53 46 48 59 36 42
++47 39 42 47 39 42 47 39 42 53 46 48 48 44 48 59 36 42 53 46 48 53 46 48
++53 46 48 55 55 48 57 43 51 62 47 47 59 55 55 53 46 48 62 47 47 53 46 48
++62 47 47 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 51 49 42
++53 46 48 51 49 42 53 46 48 51 49 42 53 46 48 51 49 42 55 55 48 63 55 51
++55 55 48 59 55 55 63 55 51 65 63 61 65 55 54 65 55 54 64 70 48 63 55 51
++65 55 54 65 63 61 65 55 54 65 63 61 65 63 61 63 55 51 63 55 51 59 55 55
++55 55 48 55 55 48 52 55 48 53 46 48 48 50 48 47 44 42 42 47 42 42 41 42
++42 41 42 37 35 43 37 35 43 33 30 36 25 30 29 25 30 29 22 25 24 23 20 24
++23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 33 30 30
++23 20 24 23 20 24 23 18 22 33 30 30 23 20 24 26 30 28 23 20 24 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 32 39 24 36 35 37 36 35 37
++47 39 42 36 35 37 42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 39 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 47 39 42 52 30 35
++42 38 42 36 35 37 42 38 42 42 38 42 36 35 37 33 30 36 33 30 32 26 24 32
++26 30 28 26 24 32 22 25 24 22 25 24 22 25 24 23 20 24 23 20 24 33 30 30
++28 13 18 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++52 30 35 33 30 30 52 30 35 36 35 37 33 30 30 52 30 35 33 30 30 52 30 35
++33 30 30 36 35 37 53 35 17 53 35 37 32 39 24 52 30 35 36 35 37 33 30 30
++52 30 35 33 30 30 28 13 18 33 30 30 33 30 30 33 30 30 33 30 30 22 25 24
++22 25 24 22 25 24 28 13 18 23 10 10 122 49 24 157 148 53 195 113 123 176 103 41
++122 49 24 102 33 26 102 33 26 167 63 71 167 63 71 195 113 123 222 171 182 222 171 182
++222 171 182 222 171 182 195 113 123 195 113 123 167 63 71 102 33 26 167 63 71 102 33 26
++161 55 23 161 55 23 167 63 71 102 33 26 161 55 23 102 33 26 161 55 23 161 55 23
++167 63 71 102 33 26 161 55 23 122 49 24 167 63 71 102 33 26 161 55 23 102 33 26
++122 49 24 102 33 26 102 33 26 102 33 26 102 33 26 122 49 24 122 49 24 167 63 71
++161 55 23 161 55 23 102 33 26 161 55 23 122 49 24 161 55 23 102 33 26 167 63 71
++102 33 26 161 55 23 122 49 24 122 49 24 122 49 24 120 63 71 167 63 71 163 117 123
++189 165 168 232 215 228 251 251 247 226 221 247 185 202 202 194 199 226 208 221 247 208 221 247
++208 221 247 208 221 247 166 176 200 166 176 200 188 180 202 201 216 228 221 238 247 231 239 247
++221 238 247 231 239 247 231 239 247 251 251 247 240 251 247 240 251 247 235 238 247 231 239 247
++231 239 247 235 238 247 235 238 247 240 251 247 240 251 247 231 239 247 240 251 247 240 251 247
++251 251 247 240 251 247 246 237 247 240 251 247 246 237 247 240 251 247 251 251 247 246 237 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++240 251 247 235 238 247 201 216 228 201 216 228 201 216 228 226 221 247 221 238 247 231 239 247
++226 221 247 194 199 226 166 176 200 166 174 181 188 180 202 185 202 202 194 199 226 201 216 228
++226 221 247 221 238 247 232 215 228 231 239 247 251 251 247 251 251 247 251 251 247 246 237 247
++240 251 247 240 251 247 240 251 247 251 251 247 251 251 247 251 251 247 201 216 228 166 174 181
++150 147 171 166 156 164 166 176 200 166 174 181 188 180 202 188 180 202 188 180 202 163 117 123
++120 63 71 120 63 71 167 63 71 102 33 26 167 63 71 161 55 23 161 55 23 167 63 71
++161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 161 55 23
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 122 49 24 161 55 23
++102 33 26 161 55 23 102 33 26 167 63 71 102 33 26 161 55 23 167 63 71 167 63 71
++167 63 71 122 49 24 167 63 71 161 55 23 102 33 26 102 33 26 102 33 26 102 33 26
++88 30 18 88 30 18 88 30 18 102 33 26 161 55 23 219 175 47 219 175 47 227 171 124
++219 175 47 227 171 124 219 175 47 176 103 41 88 73 31 75 56 53 75 56 53 75 73 58
++75 63 62 64 70 48 65 63 61 75 73 58 65 63 61 75 73 58 75 56 53 65 63 61
++64 70 48 63 55 51 64 70 48 63 55 51 65 55 54 65 55 54 59 55 55 59 55 55
++59 55 55 62 47 47 55 55 48 53 46 48 55 55 48 53 46 48 55 55 48 52 55 48
++53 46 48 51 49 42 47 44 42 42 47 42 47 44 42 47 44 42 42 47 42 47 44 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 33 39 38 42 41 42
++37 35 43 36 35 37 36 35 37 36 35 37 31 35 35 36 35 37 36 35 37 36 35 37
++36 35 37 37 35 43 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42
++36 35 37 36 35 37 42 41 42 36 35 37 36 35 37 42 41 42 36 35 37 42 41 42
++42 41 42 42 41 42 42 41 42 33 30 32 33 30 30 33 30 30 51 49 42 75 63 62
++75 72 67 88 83 74 75 72 67 65 55 54 51 49 42 47 39 42 36 35 37 36 35 37
++36 35 37 36 35 37 33 30 32 33 30 30 33 30 30 33 30 30 33 30 32 33 30 32
++33 30 32 33 30 30 31 35 35 33 30 32 33 30 32 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 36 35 37 32 39 24
++47 39 42 47 39 42 55 39 37 47 39 42 47 39 42 47 44 42 47 44 42 53 46 48
++47 39 42 47 44 42 47 44 42 42 41 42 47 39 42 36 35 37 53 35 37 36 35 37
++42 38 42 36 35 37 36 35 37 36 35 37 33 30 32 33 30 32 33 30 30 26 30 28
++33 30 30 33 30 30 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 36 35 37
++33 30 32 33 30 32 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 30 32 33 30 30
++26 30 28 26 30 28 26 30 28 26 30 28 26 24 32 26 30 28 26 30 28 33 30 30
++33 30 32 33 30 32 33 30 32 36 35 37 36 35 37 36 35 37 42 38 42 42 41 42
++47 39 42 47 44 42 51 49 42 51 49 42 51 49 42 53 46 48 48 50 48 53 46 48
++51 49 42 47 49 42 47 44 42 47 44 42 47 44 42 42 41 42 47 39 42 42 41 42
++47 39 42 36 35 37 42 38 42 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37
++31 35 35 36 35 37 36 35 37 42 38 42 42 38 42 33 39 38 42 41 42 36 35 37
++42 41 42 42 41 42 47 44 42 42 47 42 47 44 42 47 49 42 47 44 42 48 50 48
++47 44 42 48 50 48 48 50 48 48 50 48 53 46 48 55 55 48 53 46 48 51 49 42
++51 49 42 47 44 42 47 44 42 47 44 42 47 47 21 47 39 42 32 39 24 53 35 37
++53 35 37 53 35 37 52 30 35 36 35 37 52 30 35 36 35 37 53 35 17 52 30 35
++52 30 35 52 30 35 53 35 37 52 30 35 53 35 37 55 39 37 55 39 37 55 39 37
++55 39 37 60 49 42 59 36 42 60 49 42 62 47 47 62 47 47 76 46 20 76 44 53
++62 47 47 60 49 42 60 49 42 60 49 42 60 49 42 60 49 42 60 49 42 51 49 42
++55 39 37 55 39 37 42 38 42 47 47 21 55 39 37 32 39 24 53 35 37 36 35 37
++31 35 35 33 30 30 33 30 30 33 30 30 26 30 28 33 30 30 26 30 28 30 30 34
++33 30 30 31 35 35 33 30 30 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++53 35 37 36 35 37 55 39 37 36 35 37 47 39 42 47 44 42 47 47 21 47 39 42
++47 39 42 42 41 42 42 41 42 36 35 37 36 35 37 36 35 37 33 30 32 33 30 30
++33 30 30 33 30 30 30 30 34 28 30 35 33 30 30 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 41 42 36 35 37 55 39 37
++36 35 37 42 38 42 42 38 42 47 44 42 47 39 42 42 41 42 47 47 21 42 38 42
++
++23 18 22 34 30 15 28 13 18 26 25 15 28 13 18 26 25 15 28 13 18 22 24 13
++17 12 17 23 18 22 17 12 17 17 12 17 15 17 7 7 12 13 13 4 7 7 12 13
++13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 3 4 9 13 4 7 6 15 6
++7 12 13 13 4 7 7 12 13 7 12 13 7 12 13 13 4 7 17 12 17 7 12 13
++7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 7 12 13
++7 12 13 17 12 17 7 10 17 13 4 7 7 10 17 17 12 17 7 12 13 17 12 17
++7 10 17 17 12 17 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17 14 16 17
++17 12 17 23 18 22 23 18 22 23 20 24 23 20 24 22 25 24 26 24 32 33 30 32
++36 35 37 36 35 37 42 38 42 43 42 50 48 44 48 43 42 50 48 44 48 48 44 48
++48 44 48 57 43 64 54 57 61 54 57 61 57 43 64 54 57 61 59 57 61 63 59 71
++63 59 71 59 69 70 59 69 70 75 64 82 75 81 76 75 64 82 75 81 76 59 69 70
++75 64 82 63 59 71 65 63 61 75 59 67 65 63 61 65 57 61 59 57 61 59 55 55
++59 55 55 65 57 61 59 55 55 59 57 61 59 55 55 59 55 55 59 55 55 59 55 55
++53 46 48 52 55 48 53 46 48 53 46 48 47 44 42 53 46 48 48 44 48 48 44 48
++47 39 42 53 46 48 59 36 42 53 46 48 53 46 48 47 39 42 53 46 48 59 36 42
++53 46 48 53 46 48 62 47 47 62 47 47 62 47 47 62 47 47 53 46 48 59 55 55
++53 46 48 53 46 48 62 47 47 47 44 42 55 39 37 53 46 48 51 49 42 51 49 42
++51 49 42 53 46 48 53 46 48 53 46 48 51 49 42 53 46 48 53 46 48 55 55 48
++63 55 51 63 55 51 65 55 54 63 55 51 65 63 61 63 55 51 65 63 61 63 55 51
++65 63 61 64 70 48 65 63 61 65 55 54 65 63 61 64 70 48 59 55 55 63 55 51
++59 55 55 55 55 48 52 55 48 48 50 48 51 49 42 47 44 42 42 47 42 43 42 50
++42 41 42 33 39 38 36 35 37 31 35 35 25 30 29 25 30 29 22 25 24 26 30 28
++22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 33 30 30 23 20 24 33 30 30 26 25 15
++33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 36 35 37 52 30 35 36 35 37
++55 39 37 36 35 37 55 39 37 42 41 42 47 39 42 47 44 42 47 39 42 47 44 42
++47 44 42 42 41 42 42 41 42 42 41 42 47 39 42 42 38 42 36 35 37 42 38 42
++36 35 37 42 38 42 36 35 37 36 35 37 36 35 37 33 30 32 33 30 32 26 30 28
++26 24 32 22 25 24 26 24 32 22 25 24 23 20 24 33 30 30 26 24 32 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 52 30 15 33 30 32 52 30 35 33 30 30
++33 30 30 33 30 30 52 30 35 33 30 30 52 30 35 32 39 24 52 30 35 33 30 30
++52 30 35 33 30 30 36 35 37 33 30 30 52 30 35 32 39 24 36 35 37 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 23 20 24 23 20 24 23 20 24 26 25 15
++22 25 24 26 25 15 34 30 15 26 12 13 88 73 62 195 113 123 176 103 41 102 33 26
++102 33 26 161 55 23 168 102 88 201 146 124 222 171 182 232 215 228 232 215 228 222 171 182
++195 113 123 166 156 164 222 171 182 222 171 182 195 113 123 167 63 71 102 33 26 167 63 71
++102 33 26 167 63 71 122 49 24 161 55 23 167 63 71 161 55 23 167 63 71 122 49 24
++167 63 71 161 55 23 161 55 23 102 33 26 161 55 23 122 49 24 122 49 24 102 33 26
++161 55 23 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 161 55 23 102 33 26
++167 63 71 102 33 26 161 55 23 102 33 26 167 63 71 102 33 26 102 33 26 102 33 26
++102 33 26 167 63 71 120 63 71 167 63 71 168 102 88 195 113 123 177 171 115 189 165 168
++225 222 201 246 237 247 251 251 247 226 221 247 201 216 228 201 216 228 208 221 247 201 216 228
++194 199 226 166 176 200 194 199 226 208 221 247 240 251 247 251 251 247 251 251 247 231 239 247
++221 238 247 231 239 247 240 251 247 240 251 247 240 251 247 235 238 247 231 239 247 231 239 247
++231 239 247 240 251 247 240 251 247 231 239 247 231 239 247 240 251 247 240 251 247 240 251 247
++251 251 247 240 251 247 240 251 247 240 251 247 240 251 247 246 237 247 251 251 247 251 251 247
++251 251 247 240 251 247 251 251 247 240 251 247 251 251 247 251 251 247 240 251 247 240 251 247
++201 216 228 188 180 202 166 174 181 185 202 202 226 221 247 221 238 247 221 238 247 221 238 247
++231 239 247 201 216 228 166 176 200 188 180 202 201 216 228 221 238 247 231 239 247 226 221 247
++221 238 247 201 216 228 188 180 202 150 171 159 166 176 200 201 216 228 251 251 247 251 251 247
++240 251 247 251 251 247 240 251 247 251 251 247 251 251 247 235 238 247 188 180 202 148 160 159
++131 144 168 150 147 171 166 174 181 166 176 200 188 180 202 188 180 202 188 180 202 189 165 168
++195 113 123 167 63 71 167 63 71 120 63 71 120 63 71 120 63 71 167 63 71 102 33 26
++161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71
++167 63 71 161 55 23 161 55 23 167 63 71 167 63 71 167 63 71 161 55 23 167 63 71
++167 63 71 161 55 23 167 63 71 167 63 71 161 55 23 167 63 71 167 63 71 102 33 26
++167 63 71 102 33 26 161 55 23 102 33 26 167 63 71 102 33 26 167 63 71 102 33 26
++167 63 71 167 63 71 102 33 26 167 63 71 122 49 24 167 63 71 122 49 24 161 55 23
++102 33 26 102 33 26 102 33 26 102 33 26 161 55 23 161 55 23 219 175 47 227 171 124
++219 175 47 227 171 124 219 175 47 168 102 88 101 74 26 88 73 62 75 73 36 88 73 62
++88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 75 73 58
++88 73 62 75 73 58 75 56 53 75 73 58 75 73 58 75 56 53 75 73 58 75 56 53
++75 56 53 63 55 45 63 55 45 60 49 42 60 49 42 55 39 37 47 44 42 47 47 21
++47 39 42 55 39 37 47 44 42 47 44 42 47 44 42 47 44 42 42 41 42 47 44 42
++42 41 42 42 47 42 42 41 42 42 41 42 42 41 42 42 41 42 42 38 42 33 39 38
++36 35 37 34 40 43 36 35 37 31 35 35 36 35 37 36 35 37 36 35 37 36 35 37
++37 35 43 36 35 37 33 30 36 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 42 47 42 36 35 37 42 41 42 36 35 37 33 30 30
++33 30 30 33 30 30 33 30 30 53 35 37 60 49 42 88 73 62 117 99 86 138 126 108
++168 146 127 141 116 139 163 117 123 138 126 108 117 99 86 99 93 84 88 73 62 88 73 62
++88 66 70 88 73 62 88 66 70 75 63 62 75 56 53 75 63 62 65 55 54 75 56 53
++63 55 45 60 49 42 51 49 42 55 39 37 55 39 37 36 35 37 52 30 15 34 30 15
++34 30 15 34 30 15 34 30 15 52 30 35 55 39 37 60 49 42 60 49 42 55 39 37
++53 35 37 47 44 42 47 44 42 47 39 42 47 44 42 47 44 42 53 46 48 47 44 42
++47 44 42 47 44 42 47 39 42 53 35 37 36 35 37 47 44 42 36 35 37 42 41 42
++36 35 37 36 35 37 33 30 30 36 35 37 33 30 32 33 30 32 26 30 28 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 32 33 30 32 36 35 37 33 30 32 36 35 37
++33 30 32 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 33 30 32 36 35 37 33 30 30 33 30 30
++26 30 28 33 30 30 26 24 32 26 30 28 26 30 28 33 30 30 26 30 28 33 30 30
++33 30 32 31 35 35 33 30 32 36 35 37 36 35 37 42 38 42 42 41 42 42 41 42
++47 44 42 47 44 42 48 44 48 47 44 42 51 49 42 53 46 48 51 49 42 48 44 48
++47 44 42 47 44 42 47 44 42 47 44 42 42 41 42 47 39 42 47 44 42 42 41 42
++42 38 42 42 41 42 42 38 42 42 38 42 42 38 42 36 35 37 36 35 37 42 41 42
++36 35 37 37 35 43 37 35 43 42 41 42 34 40 43 42 41 42 42 38 42 42 41 42
++34 40 43 42 47 42 48 44 48 48 44 48 47 44 42 48 44 48 51 49 42 53 46 48
++48 50 48 48 50 48 53 46 48 55 55 48 53 46 48 55 55 48 53 46 48 51 49 42
++53 46 48 51 49 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 39 42
++55 39 37 47 39 42 53 35 37 47 47 21 53 35 37 52 30 35 53 35 37 52 30 35
++53 35 17 52 30 35 53 35 37 53 35 37 53 35 37 53 35 37 55 39 37 55 39 37
++59 36 42 60 49 42 62 47 47 60 49 42 76 44 53 60 49 42 62 47 47 63 55 45
++63 55 45 75 56 53 60 49 42 60 49 42 60 49 42 60 49 42 60 49 42 60 49 42
++60 49 42 47 44 42 47 44 42 47 39 42 47 39 42 47 44 42 36 35 37 36 35 37
++36 35 37 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 32 31 35 35 36 35 37 36 35 37 36 35 37 36 35 37 42 41 42 36 35 37
++42 41 42 47 47 21 42 38 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 39 42 36 35 37 55 39 37 42 38 42 36 35 37 36 35 37 36 35 37
++33 30 30 33 30 30 30 30 34 33 30 32 30 30 34 33 30 32 36 35 37 33 39 38
++36 35 37 36 35 37 42 41 42 36 35 37 42 41 42 36 35 37 47 44 42 42 41 42
++47 44 42 47 39 42 47 44 42 42 41 42 42 41 42 47 39 42 42 38 42 42 38 42
++
++26 25 15 23 18 22 26 25 15 23 18 22 26 25 15 28 13 18 22 24 13 17 12 17
++26 12 13 15 17 7 17 12 17 15 17 7 17 12 17 17 12 17 7 12 13 13 4 7
++7 12 13 13 4 7 7 12 13 13 4 7 3 4 9 7 12 13 13 4 7 3 4 9
++13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 17 12 17
++7 12 13 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 17 12 17
++7 12 13 17 12 17 7 10 17 7 12 13 7 12 13 17 12 17 7 12 13 14 16 17
++17 12 17 7 12 13 17 12 17 15 17 7 17 12 17 17 12 17 14 16 17 23 18 22
++15 22 17 23 18 22 14 16 17 23 18 22 23 20 24 23 20 24 26 30 28 33 30 32
++36 35 37 36 35 37 42 38 42 43 42 50 48 44 48 43 42 50 48 50 48 57 43 64
++48 50 48 45 57 61 57 43 64 54 57 61 48 50 48 54 57 61 59 57 61 65 63 61
++59 69 70 63 59 71 75 72 67 75 64 82 75 81 76 75 64 82 75 81 76 75 64 82
++59 69 70 75 72 67 63 59 71 65 63 61 63 59 71 65 57 61 65 55 54 65 55 54
++59 55 55 65 55 54 59 55 55 65 55 54 59 55 55 59 55 55 53 46 48 59 55 55
++53 46 48 53 46 48 53 46 48 47 44 42 53 46 48 47 44 42 55 39 37 53 46 48
++55 39 37 47 39 42 47 44 42 47 39 42 55 39 37 53 46 48 47 39 42 53 46 48
++53 46 48 62 47 47 53 46 48 53 46 48 53 46 48 53 46 48 62 47 47 53 46 48
++57 43 51 53 46 48 53 46 48 53 46 48 51 49 42 51 49 42 53 46 48 51 49 42
++47 44 42 51 49 42 53 46 48 60 49 42 53 46 48 60 49 42 55 55 48 55 55 48
++63 55 45 65 63 61 65 55 54 64 70 48 65 55 54 65 55 54 64 70 48 65 55 54
++65 63 61 75 56 53 65 63 61 65 63 61 65 63 61 65 55 54 65 63 61 65 63 61
++59 55 55 62 47 47 55 55 48 53 46 48 48 50 48 48 50 48 47 44 42 42 41 42
++42 41 42 33 39 38 31 35 35 31 35 35 26 30 28 26 30 28 26 30 28 22 25 24
++22 25 24 22 25 24 22 25 24 15 22 17 22 25 24 22 25 24 22 25 24 22 25 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 33 30 30 23 20 24
++23 18 22 33 30 30 34 30 15 33 30 30 32 39 24 36 35 37 47 47 21 47 39 42
++47 47 21 47 44 42 36 35 37 55 39 37 47 39 42 55 39 37 47 39 42 47 44 42
++47 44 42 42 41 42 47 39 42 36 35 37 42 41 42 42 38 42 42 38 42 36 35 37
++36 35 37 36 35 37 36 35 37 52 30 35 36 35 37 33 30 32 33 30 30 23 20 24
++33 30 30 26 25 15 23 20 24 23 20 24 23 20 24 33 30 30 28 13 18 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35
++32 39 24 52 30 35 33 30 30 53 35 17 33 30 30 52 30 35 33 30 30 52 30 35
++33 30 30 52 30 35 33 30 30 47 47 21 36 35 37 52 30 35 33 30 30 52 30 35
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 26 24 32 33 30 30 23 20 24
++33 30 30 26 25 15 28 13 18 52 30 15 102 33 26 120 63 71 88 44 51 102 33 26
++138 102 108 141 116 139 189 165 168 194 199 226 246 237 247 232 215 228 166 176 200 95 95 116
++29 34 50 29 34 50 95 95 116 166 176 200 226 221 247 222 171 182 138 102 108 102 33 26
++161 55 23 102 33 26 167 63 71 102 33 26 161 55 23 102 33 26 161 55 23 161 55 23
++161 55 23 102 33 26 167 63 71 161 55 23 167 63 71 161 55 23 161 55 23 161 55 23
++102 33 26 122 49 24 102 33 26 102 33 26 88 30 18 102 33 26 161 55 23 102 33 26
++167 63 71 102 33 26 161 55 23 102 33 26 102 33 26 102 33 26 161 55 23 122 49 24
++167 63 71 167 63 71 168 102 88 201 146 124 217 168 156 197 171 123 177 169 143 222 171 182
++232 215 228 251 251 247 246 237 247 231 239 247 208 221 247 201 216 228 194 199 226 188 180 202
++185 202 202 185 202 202 221 238 247 240 251 247 240 251 247 240 251 247 231 239 247 221 238 247
++221 238 247 231 239 247 240 251 247 240 251 247 240 251 247 235 238 247 240 251 247 231 239 247
++231 239 247 240 251 247 235 238 247 240 251 247 240 251 247 240 251 247 251 251 247 240 251 247
++246 237 247 240 251 247 235 238 247 235 238 247 246 237 247 240 251 247 240 251 247 240 251 247
++240 251 247 240 251 247 240 251 247 251 251 247 240 251 247 251 251 247 240 251 247 235 238 247
++166 176 200 111 122 142 129 144 153 188 180 202 231 239 247 235 238 247 221 238 247 226 221 247
++194 199 226 150 168 183 95 108 128 111 122 142 150 168 183 194 199 226 226 221 247 221 238 247
++235 238 247 221 238 247 188 180 202 122 134 144 95 95 116 145 140 145 194 199 226 240 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 240 251 247 201 216 228 166 174 181 129 144 153
++150 144 154 148 160 159 166 156 164 166 174 181 188 180 202 185 202 202 194 199 226 232 215 228
++188 180 202 188 180 202 150 147 171 163 117 123 163 117 123 120 63 71 167 63 71 167 63 71
++120 63 71 167 63 71 102 33 26 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71
++167 63 71 161 55 23 167 63 71 161 55 23 161 55 23 167 63 71 167 63 71 161 55 23
++167 63 71 167 63 71 161 55 23 167 63 71 102 33 26 167 63 71 161 55 23 167 63 71
++167 63 71 167 63 71 167 63 71 161 55 23 102 33 26 167 63 71 122 49 24 167 63 71
++122 49 24 102 33 26 161 55 23 102 33 26 167 63 71 102 33 26 167 63 71 122 49 24
++167 63 71 161 55 23 161 55 23 102 33 26 122 49 24 161 55 23 219 175 47 227 171 124
++219 175 47 219 175 47 227 171 124 157 148 53 176 103 41 117 112 45 117 99 86 117 99 86
++117 99 86 117 114 76 117 114 76 138 126 108 117 114 76 117 114 76 117 114 76 117 114 76
++117 99 86 117 114 76 117 99 86 117 114 76 117 99 86 101 83 74 117 99 86 117 99 86
++101 83 74 101 83 74 88 73 62 88 73 62 75 73 36 63 55 45 60 49 42 51 49 42
++47 47 21 53 35 37 47 47 21 47 39 42 47 47 21 42 41 42 33 39 38 42 38 42
++42 41 42 42 41 42 42 47 42 42 41 42 36 35 37 33 39 38 42 41 42 42 41 42
++42 41 42 36 35 37 33 39 38 42 41 42 36 35 37 31 35 35 36 35 37 36 35 37
++36 35 37 37 35 43 33 30 36 36 35 37 36 35 37 37 35 43 36 35 37 36 35 37
++42 38 42 36 35 37 36 35 37 47 47 21 36 35 37 33 30 30 33 30 30 34 30 15
++33 30 30 47 44 42 75 56 53 88 73 62 117 99 86 163 117 123 177 169 143 217 168 156
++189 165 168 217 168 156 189 165 168 217 168 156 189 165 168 177 169 143 168 146 127 168 146 127
++163 117 123 168 146 127 168 146 127 163 117 123 146 150 115 163 117 123 138 126 108 138 126 108
++138 102 108 117 99 86 117 99 86 117 99 86 101 83 74 101 83 74 88 66 70 75 56 53
++76 44 53 62 47 47 76 44 53 88 66 70 99 93 84 117 99 86 88 83 74 55 39 37
++32 39 24 36 35 37 47 44 42 47 44 42 55 39 37 47 44 42 51 49 42 47 44 42
++42 41 42 55 39 37 42 41 42 47 39 42 47 44 42 36 35 37 42 41 42 53 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 31 35 35 33 30 32 33 30 30 33 30 30
++33 30 30 26 30 28 33 30 30 33 30 32 33 30 32 33 30 32 33 30 32 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 53 35 37 32 39 24 36 35 37
++36 35 37 33 30 30 36 35 37 36 35 37 33 30 32 36 35 37 33 30 32 30 30 34
++33 30 30 26 30 28 26 30 28 22 25 24 26 30 28 22 25 24 33 30 30 26 30 28
++33 30 30 33 30 30 31 35 35 33 30 30 36 35 37 42 38 42 42 41 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 53 46 48 51 49 42 53 46 48
++47 44 42 47 44 42 47 44 42 47 39 42 42 41 42 47 39 42 42 41 42 55 39 37
++36 35 37 47 39 42 42 41 42 42 38 42 42 38 42 36 35 37 42 41 42 33 39 38
++42 38 42 36 35 37 42 41 42 34 40 43 33 39 38 34 40 43 34 40 43 42 41 42
++43 42 50 43 42 50 48 50 48 48 50 48 48 44 48 51 49 42 53 46 48 53 46 48
++52 55 48 55 55 48 55 55 48 53 46 48 55 55 48 55 55 48 55 55 48 55 55 48
++55 55 48 60 49 42 51 49 42 51 49 42 47 44 42 47 44 42 47 44 42 55 39 37
++47 44 42 55 39 37 47 39 42 47 39 42 42 41 42 53 35 37 36 35 37 52 30 35
++42 38 42 53 35 37 53 35 37 53 35 37 55 39 37 55 39 37 55 39 37 60 49 42
++55 39 37 60 49 42 59 36 42 60 49 42 60 49 42 62 47 47 62 47 47 63 55 45
++76 44 53 60 49 42 75 56 53 63 55 45 63 55 45 60 49 42 60 49 42 60 49 42
++60 49 42 60 49 42 55 39 37 55 39 37 47 44 42 47 47 21 47 44 42 53 35 37
++42 47 42 36 35 37 31 35 35 33 30 30 31 35 35 33 30 30 33 30 30 33 30 30
++31 35 35 33 30 30 36 35 37 42 41 42 36 35 37 47 44 42 36 35 37 36 35 37
++42 38 42 42 38 42 36 35 37 47 44 42 47 44 42 47 44 42 47 44 42 42 41 42
++42 47 42 55 39 37 47 44 42 47 44 42 42 41 42 55 39 37 36 35 37 36 35 37
++36 35 37 33 30 32 31 35 35 31 35 35 31 35 35 36 35 37 33 39 38 36 35 37
++42 41 42 36 35 37 36 35 37 36 35 37 36 35 37 42 41 42 42 41 42 42 41 42
++42 41 42 47 44 42 42 41 42 42 47 42 47 44 42 42 41 42 47 39 42 47 39 42
++
++26 25 15 26 25 15 26 25 15 26 25 15 28 13 18 22 24 13 17 12 17 17 12 17
++15 17 7 17 12 17 17 12 17 17 12 17 13 4 7 13 4 7 7 12 13 13 4 7
++7 12 13 13 4 7 3 4 9 13 4 7 3 4 9 13 4 7 3 4 9 7 12 13
++13 4 7 7 12 13 13 4 7 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13
++13 4 7 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 7 12 13
++17 12 17 7 10 17 13 4 7 17 12 17 7 12 13 17 12 17 14 16 17 17 12 17
++14 16 17 14 16 17 17 12 17 7 12 13 17 12 17 14 16 17 23 18 22 23 18 22
++23 18 22 23 18 22 23 18 22 23 18 22 23 20 24 26 24 32 33 30 30 33 30 32
++36 35 37 36 35 37 42 41 42 42 41 42 43 42 50 54 57 61 48 50 48 45 57 61
++48 44 48 57 43 64 45 57 61 59 55 55 57 43 64 54 57 61 59 57 61 63 59 71
++63 59 71 75 72 67 75 81 82 59 69 70 75 64 82 75 81 76 75 64 82 75 72 67
++75 72 67 63 59 71 75 72 67 63 59 71 65 63 61 65 57 61 65 57 61 59 55 55
++65 55 54 65 57 61 59 55 55 59 55 55 59 55 55 62 47 47 55 55 48 57 43 51
++53 46 48 53 46 48 53 46 48 47 44 42 47 44 42 47 39 42 47 39 42 47 39 42
++47 39 42 47 39 42 47 39 42 55 39 37 48 44 48 47 39 42 55 39 37 53 46 48
++60 49 42 53 46 48 53 46 48 62 47 47 53 46 48 62 47 47 53 46 48 53 46 48
++53 46 48 57 43 51 59 36 42 51 49 42 60 49 42 53 46 48 55 39 37 51 49 42
++47 44 42 51 49 42 55 39 37 53 46 48 51 49 42 55 55 48 62 47 47 63 55 51
++63 55 51 63 55 51 65 63 61 75 63 62 65 55 54 64 70 48 65 55 54 65 63 61
++65 63 61 65 63 61 65 63 61 65 55 54 65 63 61 65 63 61 64 70 48 65 55 54
++59 55 55 55 55 48 55 55 48 55 55 48 52 55 48 48 50 48 47 44 42 42 41 42
++42 41 42 31 35 35 31 35 35 30 30 34 26 30 28 26 30 28 26 30 28 26 30 28
++23 20 24 22 24 13 23 20 24 22 25 24 23 18 22 22 25 24 23 20 24 22 25 24
++22 25 24 23 20 24 26 25 15 23 20 24 22 25 24 22 25 24 23 20 24 34 30 15
++33 30 30 23 20 24 33 30 30 34 30 15 52 30 35 33 30 30 53 35 37 47 39 42
++42 38 42 47 39 42 47 47 21 47 39 42 47 39 42 47 39 42 42 41 42 47 39 42
++47 44 42 42 41 42 42 38 42 36 35 37 42 41 42 36 35 37 36 35 37 36 35 37
++53 35 37 36 35 37 36 35 37 33 30 32 33 30 32 33 30 32 33 30 30 33 30 30
++23 20 24 23 20 24 22 25 24 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30
++34 30 15 33 30 30 33 30 30 34 30 15 33 30 30 52 30 35 32 39 24 33 30 30
++36 35 37 33 30 30 36 35 37 33 30 30 52 30 35 33 30 30 36 35 37 53 35 17
++36 35 37 52 30 35 33 30 30 52 30 35 33 30 30 36 35 37 33 30 30 33 30 30
++33 30 30 33 30 30 34 30 15 33 30 30 28 13 18 26 24 32 28 13 18 33 30 30
++28 13 18 26 25 15 34 30 15 52 30 35 88 44 51 122 49 24 120 63 71 168 102 88
++189 165 168 195 113 123 150 147 171 188 180 202 226 221 247 232 215 228 166 176 200 95 95 116
++75 64 82 34 42 77 75 64 82 119 117 138 194 199 226 246 237 247 222 171 182 167 63 71
++102 33 26 122 49 24 161 55 23 161 55 23 122 49 24 167 63 71 102 33 26 167 63 71
++122 49 24 161 55 23 161 55 23 167 63 71 102 33 26 167 63 71 102 33 26 102 33 26
++102 33 26 122 49 24 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 161 55 23
++102 33 26 161 55 23 102 33 26 122 49 24 167 63 71 167 63 71 168 102 88 195 113 123
++201 146 124 217 168 156 201 146 124 217 168 156 177 169 143 201 146 124 189 165 168 208 215 180
++233 241 227 251 251 247 251 251 247 226 221 247 185 202 202 188 180 202 185 202 202 201 216 228
++208 221 247 235 238 247 240 251 247 240 251 247 240 251 247 231 239 247 231 239 247 226 221 247
++226 221 247 231 239 247 240 251 247 240 251 247 235 238 247 235 238 247 231 239 247 240 251 247
++231 239 247 240 251 247 240 251 247 240 251 247 240 251 247 246 237 247 240 251 247 240 251 247
++240 251 247 235 238 247 240 251 247 240 251 247 240 251 247 240 251 247 246 237 247 251 251 247
++240 251 247 251 251 247 240 251 247 251 251 247 240 251 247 251 251 247 240 251 247 231 239 247
++188 180 202 150 147 171 150 168 183 194 199 226 221 238 247 240 251 247 240 251 247 208 221 247
++166 174 181 95 108 128 60 63 87 32 40 58 75 81 90 111 122 142 166 176 200 221 238 247
++231 239 247 235 238 247 221 238 247 188 180 202 131 144 168 111 119 127 150 144 154 201 216 228
++251 251 247 251 251 247 251 251 247 251 251 247 231 239 247 185 202 202 166 156 164 148 160 159
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 188 180 202 194 199 226 232 215 228
++232 215 228 232 215 228 232 215 228 232 215 228 222 171 182 222 171 182 222 171 182 195 113 123
++195 113 123 167 63 71 167 63 71 167 63 71 122 49 24 161 55 23 167 63 71 161 55 23
++167 63 71 161 55 23 161 55 23 167 63 71 161 55 23 161 55 23 167 63 71 167 63 71
++161 55 23 167 63 71 167 63 71 167 63 71 161 55 23 167 63 71 102 33 26 167 63 71
++122 49 24 161 55 23 102 33 26 167 63 71 102 33 26 161 55 23 102 33 26 161 55 23
++102 33 26 167 63 71 102 33 26 161 55 23 102 33 26 161 55 23 102 33 26 167 63 71
++102 33 26 161 55 23 102 33 26 102 33 26 102 33 26 161 55 23 219 175 47 227 171 124
++219 175 47 219 175 47 219 175 47 227 171 124 201 146 124 168 146 127 201 146 124 168 146 127
++168 146 127 201 146 124 177 169 143 201 146 124 168 146 127 177 169 143 168 146 127 201 146 124
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 163 117 123 138 126 108 138 126 108 117 99 86 99 93 84
++88 83 74 75 73 58 63 55 51 47 49 42 42 38 42 36 35 37 42 41 42 42 41 42
++42 41 42 42 41 42 43 42 50 42 47 42 42 41 42 42 41 42 42 41 42 42 47 42
++42 41 42 33 39 38 42 41 42 42 41 42 42 41 42 33 39 38 36 35 37 31 35 35
++36 35 37 36 35 37 37 35 43 36 35 37 37 35 43 42 38 42 37 35 43 36 35 37
++36 35 37 36 35 37 36 35 37 33 30 30 33 30 30 33 30 30 42 38 42 59 55 55
++88 83 74 112 96 108 146 150 115 177 169 143 189 165 168 189 165 168 217 168 156 177 169 143
++217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 189 165 168 217 168 156 222 171 182
++189 165 168 217 168 156 189 165 168 222 171 182 217 168 156 189 165 168 217 168 156 189 165 168
++189 165 168 177 169 143 189 165 168 177 169 143 177 169 143 166 156 164 177 169 143 168 146 127
++145 140 145 138 126 108 163 117 123 168 146 127 189 165 168 189 165 168 138 126 108 75 56 53
++33 30 30 33 30 30 47 39 42 47 44 42 47 44 42 47 44 42 47 39 42 47 44 42
++47 44 42 42 41 42 47 39 42 47 47 21 47 39 42 47 39 42 42 41 42 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 33 30 32 31 35 35 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 32 33 30 32 33 30 32 31 35 35 36 35 37 36 35 37
++36 35 37 36 35 37 52 30 35 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++47 47 21 36 35 37 36 35 37 36 35 37 33 30 32 36 35 37 33 30 32 33 30 30
++26 30 28 26 30 28 26 30 28 25 30 29 26 30 28 26 30 28 26 30 28 33 30 30
++26 30 28 33 30 32 33 30 32 36 35 37 36 35 37 42 41 42 47 44 42 47 44 42
++43 42 50 42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 48 44 48 51 49 42
++47 44 42 47 44 42 47 44 42 47 39 42 47 39 42 47 44 42 47 44 42 42 41 42
++47 44 42 47 39 42 47 39 42 42 38 42 36 35 37 42 41 42 42 41 42 42 41 42
++42 41 42 34 40 43 42 38 42 33 39 38 42 41 42 34 40 43 42 41 42 42 41 42
++43 42 50 42 47 42 48 44 48 48 50 48 53 46 48 53 46 48 55 55 48 55 55 48
++59 55 55 55 55 48 59 55 55 55 55 48 62 47 47 55 55 48 55 55 48 55 55 48
++55 55 48 53 46 48 51 49 42 53 46 48 51 49 42 48 44 48 51 49 42 47 44 42
++55 39 37 47 44 42 55 39 37 47 39 42 53 35 37 53 35 37 53 35 37 53 35 37
++52 30 35 53 35 37 53 35 37 55 39 37 55 39 37 55 39 37 59 36 42 60 49 42
++62 47 47 60 49 42 60 49 42 60 49 42 62 47 47 62 47 47 75 56 53 63 55 45
++75 56 53 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45
++60 49 42 60 49 42 51 49 42 51 49 42 51 49 42 47 44 42 47 44 42 36 35 37
++36 35 37 32 39 24 36 35 37 31 35 35 33 30 32 31 35 35 33 30 30 33 30 30
++33 30 30 31 35 35 36 35 37 36 35 37 42 41 42 36 35 37 42 41 42 53 35 37
++42 41 42 36 35 37 55 39 37 47 44 42 47 44 42 51 49 42 47 49 42 47 44 42
++47 44 42 47 49 42 51 49 42 47 44 42 47 44 42 47 39 42 36 35 37 55 39 37
++32 39 24 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 39 38 36 35 37
++36 35 37 36 35 37 42 41 42 42 47 42 42 41 42 42 41 42 42 41 42 47 44 42
++47 44 42 42 47 42 47 44 42 42 41 42 42 41 42 47 44 42 47 44 42 47 44 42
++
++23 18 22 26 25 15 28 13 18 23 18 22 26 12 13 26 12 13 22 24 13 26 12 13
++17 12 17 17 12 17 15 17 7 17 12 17 15 17 7 14 16 17 13 4 7 7 12 13
++13 4 7 3 4 9 13 4 7 7 12 13 13 4 7 3 4 9 13 4 7 7 12 13
++13 4 7 7 12 13 13 4 7 3 4 9 13 4 7 17 12 17 13 4 7 7 12 13
++14 16 17 17 12 17 7 12 13 15 17 7 7 12 13 17 12 17 7 12 13 17 12 17
++7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 14 16 17
++14 16 17 17 12 17 15 17 7 17 12 17 17 12 17 14 16 17 14 16 17 23 18 22
++15 22 17 23 18 22 23 18 22 22 25 24 23 20 24 22 25 24 33 30 30 36 35 37
++36 35 37 42 38 42 42 38 42 43 42 50 43 42 50 48 50 48 57 43 64 48 44 48
++54 57 61 48 50 48 54 57 61 54 57 61 54 57 61 54 57 61 59 57 61 63 59 71
++59 69 70 75 64 82 59 69 70 75 64 82 75 81 76 75 64 82 75 81 76 59 69 70
++75 64 82 75 64 82 75 72 67 63 59 71 65 57 61 65 63 61 65 57 61 65 63 61
++59 57 61 59 55 55 65 55 54 57 43 51 59 55 55 59 55 55 53 46 48 55 55 48
++53 46 48 53 46 48 47 44 42 47 44 42 47 44 42 55 39 37 47 39 42 47 39 42
++53 35 37 47 39 42 47 39 42 47 39 42 47 39 42 47 39 42 48 44 48 55 39 37
++53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 62 47 47 53 46 48
++55 39 37 53 46 48 53 46 48 53 46 48 53 46 48 51 49 42 53 46 48 51 49 42
++47 44 42 47 44 42 51 49 42 60 49 42 53 46 48 55 55 48 55 55 48 55 55 48
++63 55 51 65 55 54 64 70 48 65 63 61 65 63 61 75 56 53 65 63 61 65 63 61
++75 56 53 65 63 61 75 73 58 65 63 61 75 63 62 65 63 61 65 63 61 65 63 61
++59 55 55 59 55 55 55 55 48 59 55 55 52 55 48 53 46 48 48 44 48 42 41 42
++36 35 37 33 39 38 31 35 35 26 30 28 33 30 30 26 30 28 33 30 30 22 25 24
++22 25 24 22 25 24 22 25 24 23 20 24 15 22 17 22 25 24 22 25 24 22 25 24
++23 20 24 26 25 15 22 25 24 23 18 22 33 30 30 26 25 15 33 30 30 23 20 24
++26 24 32 34 30 15 33 30 30 33 30 30 33 30 30 47 47 21 36 35 37 42 38 42
++47 47 21 47 39 42 42 41 42 47 39 42 47 39 42 47 47 21 55 39 37 36 35 37
++47 39 42 42 41 42 42 41 42 36 35 37 36 35 37 42 38 42 36 35 37 36 35 37
++36 35 37 36 35 37 33 30 32 36 35 37 33 30 32 33 30 30 33 30 30 23 20 24
++33 30 30 23 20 24 33 30 30 23 20 24 23 20 24 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 32 39 24 52 30 35 32 39 24
++52 30 35 52 30 35 32 39 24 52 30 35 36 35 37 53 35 17 36 35 37 52 30 35
++36 35 37 52 30 35 32 39 24 52 30 35 32 39 24 52 30 35 36 35 37 36 35 37
++52 30 35 33 30 30 33 30 30 33 30 30 26 24 32 33 30 30 33 30 30 23 20 24
++26 30 28 28 13 18 49 13 16 55 39 37 75 56 53 101 60 73 138 102 108 168 146 127
++141 116 139 150 144 154 166 174 181 232 215 228 235 238 247 226 221 247 188 180 202 166 176 200
++188 180 202 166 174 181 150 147 171 166 156 164 232 215 228 246 237 247 222 171 182 195 113 123
++102 33 26 122 49 24 102 33 26 161 55 23 122 49 24 161 55 23 161 55 23 102 33 26
++161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 161 55 23 161 55 23 161 55 23
++122 49 24 122 49 24 102 33 26 122 49 24 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 120 63 71 167 63 71 167 63 71 168 102 88 195 113 123 201 146 124 201 146 124
++217 168 156 197 171 123 217 168 156 217 168 156 197 171 123 177 169 143 217 168 156 225 222 201
++251 251 247 251 251 247 231 239 247 201 216 228 185 202 202 194 199 226 201 216 228 231 239 247
++240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 231 239 247 231 239 247 201 216 228
++221 238 247 231 239 247 235 238 247 235 238 247 240 251 247 231 239 247 240 251 247 231 239 247
++231 239 247 235 238 247 240 251 247 240 251 247 240 251 247 240 251 247 235 238 247 235 238 247
++235 238 247 240 251 247 246 237 247 240 251 247 246 237 247 240 251 247 246 237 247 240 251 247
++246 237 247 240 251 247 251 251 247 240 251 247 240 251 247 251 251 247 240 251 247 235 238 247
++233 241 227 201 216 228 194 199 226 166 176 200 188 180 202 208 221 247 235 238 247 231 239 247
++194 199 226 150 147 171 122 134 144 119 117 138 122 134 144 129 144 153 166 174 181 226 221 247
++231 239 247 251 251 247 251 251 247 251 251 247 232 215 228 166 174 181 166 174 181 201 216 228
++240 251 247 251 251 247 251 251 247 240 251 247 232 215 228 185 202 202 166 176 200 188 180 202
++194 199 226 194 199 226 194 199 226 185 202 202 188 180 202 188 180 202 188 180 202 194 199 226
++232 215 228 246 237 247 232 215 228 246 237 247 246 237 247 226 221 247 232 215 228 226 221 247
++222 171 182 232 215 228 222 171 182 195 113 123 195 113 123 138 102 108 167 63 71 167 63 71
++167 63 71 167 63 71 120 63 71 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++167 63 71 102 33 26 122 49 24 102 33 26 102 33 26 102 33 26 161 55 23 102 33 26
++102 33 26 167 63 71 122 49 24 120 63 71 161 55 23 120 63 71 167 63 71 120 63 71
++167 63 71 167 63 71 167 63 71 120 63 71 167 63 71 167 63 71 167 63 71 120 63 71
++167 63 71 120 63 71 167 63 71 122 49 24 122 49 24 161 55 23 176 103 41 227 171 124
++219 175 47 227 171 124 227 171 124 219 175 47 201 146 124 197 171 123 201 146 124 197 171 123
++217 168 156 197 171 123 177 169 143 197 171 123 177 169 143 197 171 123 217 168 156 177 169 143
++217 168 156 197 171 123 197 171 123 197 171 123 177 169 143 197 171 123 177 169 143 197 171 123
++177 169 143 197 171 123 177 169 143 177 169 143 197 171 123 177 169 143 168 146 127 168 146 127
++163 117 123 138 126 108 117 114 76 101 83 74 88 73 62 75 73 58 63 55 45 60 49 42
++47 39 42 47 47 21 53 35 37 36 35 37 36 35 37 36 35 37 42 41 42 42 41 42
++42 47 42 42 41 42 42 47 42 42 41 42 34 40 43 42 41 42 37 35 43 31 35 35
++36 35 37 36 35 37 37 35 43 37 35 43 37 35 43 37 35 43 42 38 42 42 38 42
++33 30 30 33 30 30 26 25 15 26 25 15 47 47 21 75 63 62 99 93 84 138 126 108
++168 146 127 177 169 143 189 165 168 189 165 168 217 168 156 177 169 143 217 168 156 177 169 143
++217 168 156 177 169 143 217 168 156 189 165 168 217 168 156 217 168 156 217 168 156 208 215 180
++217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 208 215 180
++217 168 156 217 168 156 217 168 156 222 171 182 217 168 156 222 171 182 222 171 182 222 171 182
++217 168 156 217 168 156 189 165 168 217 168 156 189 165 168 222 171 182 168 146 127 101 83 74
++75 56 53 53 35 17 52 30 35 53 35 17 32 39 24 53 35 37 55 39 37 36 35 37
++55 39 37 47 44 42 47 39 42 42 38 42 53 35 37 36 35 37 47 39 42 42 41 42
++47 39 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 30 32 33 30 30
++33 30 30 33 30 30 33 30 32 33 30 30 36 35 37 33 30 32 36 35 37 36 35 37
++36 35 37 33 30 30 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 33 30 30 36 35 37 36 35 37 36 35 37 33 30 32 33 30 32
++33 30 30 33 30 30 26 30 28 26 30 28 26 30 28 22 25 24 26 30 28 26 30 28
++26 30 28 33 30 30 31 35 35 33 30 30 36 35 37 42 38 42 42 41 42 42 41 42
++47 44 42 42 41 42 47 44 42 47 44 42 47 44 42 51 49 42 47 44 42 48 44 48
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 42 41 42 47 44 42 47 39 42
++47 44 42 47 44 42 47 44 42 47 39 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 35 46 43 34 40 43 42 41 42 34 40 43 43 42 50
++43 42 50 43 42 50 48 50 48 48 50 48 48 50 48 52 55 48 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 55 55 48 63 55 51 55 55 48
++62 47 47 55 55 48 53 46 48 51 49 42 53 46 48 53 46 48 53 46 48 53 46 48
++53 46 48 47 44 42 55 39 37 47 44 42 55 39 37 42 41 42 53 35 37 47 39 42
++53 35 37 55 39 37 55 39 37 55 39 37 55 39 37 59 36 42 53 46 48 55 39 37
++62 47 47 62 47 47 62 47 47 60 49 42 76 44 53 63 55 45 62 47 47 63 55 45
++75 56 53 63 55 45 75 56 53 75 56 53 63 55 45 63 55 45 63 55 45 63 55 51
++63 55 45 60 49 42 51 49 42 60 49 42 51 49 42 51 49 42 47 44 42 47 44 42
++42 47 42 42 41 42 36 35 37 31 35 35 36 35 37 36 35 37 33 30 32 31 35 35
++32 39 24 36 35 37 36 35 37 42 41 42 36 35 37 42 41 42 42 41 42 36 35 37
++42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 51 49 42 51 49 42
++51 49 42 51 49 42 51 49 42 51 49 42 47 44 42 47 44 42 42 41 42 42 41 42
++42 41 42 42 41 42 36 35 37 36 35 37 36 35 37 33 39 38 36 35 37 33 39 38
++42 41 42 36 35 37 36 35 37 42 41 42 36 35 37 42 41 42 42 41 42 42 41 42
++42 41 42 47 44 42 42 41 42 42 41 42 47 44 42 47 44 42 48 44 48 48 44 48
++
++26 25 15 26 12 13 26 25 15 22 24 13 17 12 17 15 17 7 17 12 17 17 12 17
++15 17 7 17 12 17 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7
++13 4 7 7 12 13 13 4 7 3 4 9 3 4 9 7 12 13 13 4 7 7 12 13
++13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 7 10 17 17 12 17
++7 12 13 14 16 17 17 12 17 7 12 13 17 12 17 14 16 17 7 12 13 17 12 17
++7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 14 16 17 17 12 17
++14 16 17 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17 23 18 22 23 18 22
++23 18 22 23 18 22 23 18 22 22 25 24 26 30 28 33 30 30 33 30 32 36 35 37
++36 35 37 42 38 42 42 38 42 42 41 42 43 42 50 48 50 48 45 57 61 53 46 48
++57 43 64 48 50 48 54 57 61 57 43 64 59 57 61 59 57 61 63 59 71 63 59 71
++75 72 67 75 72 67 75 64 82 75 72 67 75 64 82 75 72 67 75 64 82 75 72 67
++75 64 82 59 69 70 63 59 71 75 72 67 65 63 61 65 63 61 65 63 61 65 57 61
++59 57 61 65 55 54 59 55 55 59 55 55 59 55 55 52 55 48 59 55 55 53 46 48
++53 46 48 47 44 42 47 44 42 47 39 42 47 39 42 47 39 42 47 39 42 47 39 42
++47 39 42 53 35 37 36 35 37 53 35 37 53 35 37 47 39 42 53 35 37 47 39 42
++53 46 48 55 39 37 53 46 48 55 39 37 53 46 48 53 46 48 53 46 48 53 46 48
++53 46 48 55 39 37 53 46 48 55 39 37 53 46 48 51 49 42 53 46 48 47 44 42
++51 49 42 47 44 42 51 49 42 53 46 48 51 49 42 55 55 48 62 47 47 63 55 51
++63 55 51 64 70 48 65 57 61 75 56 53 65 63 61 65 63 61 75 73 58 75 63 62
++75 73 58 75 63 62 75 63 62 75 73 58 65 63 61 65 63 61 75 63 62 65 63 61
++63 55 51 59 55 55 55 55 48 59 55 55 48 50 48 48 50 48 47 44 42 42 41 42
++42 38 42 36 35 37 36 35 37 33 30 32 26 30 28 26 30 28 26 24 32 26 30 28
++23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 23 18 22
++22 25 24 26 25 15 23 20 24 26 25 15 22 25 24 22 25 24 26 25 15 33 30 30
++34 30 15 26 24 32 33 30 30 33 30 30 33 30 30 36 35 37 53 35 37 36 35 37
++47 39 42 47 39 42 47 47 21 42 38 42 36 35 37 47 39 42 36 35 37 47 47 21
++42 38 42 36 35 37 42 41 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++52 30 35 36 35 37 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30 34 30 15
++23 20 24 33 30 30 23 20 24 33 30 30 33 30 30 23 20 24 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 33 30 30 36 35 37
++47 47 21 36 35 37 52 30 35 36 35 37 52 30 35 36 35 37 52 30 35 32 39 24
++52 30 35 33 30 30 52 30 35 36 35 37 52 30 35 33 30 30 36 35 37 33 30 30
++33 30 30 33 30 30 33 30 30 23 20 24 33 30 30 23 20 24 26 25 15 23 20 24
++26 25 15 28 13 18 52 30 35 59 36 42 101 83 74 138 102 108 141 116 139 141 116 139
++95 95 116 166 174 181 251 251 247 240 251 247 221 238 247 185 202 202 201 216 228 240 251 247
++251 251 247 251 251 247 231 239 247 166 176 200 166 176 200 232 215 228 232 215 228 195 113 123
++102 33 26 161 55 23 167 63 71 122 49 24 167 63 71 161 55 23 161 55 23 167 63 71
++161 55 23 161 55 23 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 102 33 26
++102 33 26 122 49 24 102 33 26 122 49 24 102 33 26 122 49 24 102 33 26 161 55 23
++167 63 71 168 102 88 195 113 123 201 146 124 217 168 156 217 168 156 217 168 156 197 171 123
++201 146 124 197 171 123 197 171 123 197 171 123 189 165 168 177 169 143 208 215 180 232 215 228
++251 251 247 240 251 247 221 238 247 201 216 228 201 216 228 235 238 247 240 251 247 251 251 247
++240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 235 238 247 231 239 247 221 238 247
++226 221 247 221 238 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 240 251 247
++240 251 247 240 251 247 240 251 247 240 251 247 235 238 247 231 239 247 235 238 247 235 238 247
++246 237 247 235 238 247 240 251 247 240 251 247 240 251 247 240 251 247 246 237 247 240 251 247
++240 251 247 240 251 247 246 237 247 240 251 247 246 237 247 240 251 247 246 237 247 251 251 247
++251 251 247 251 251 247 231 239 247 188 180 202 148 160 159 131 144 168 166 174 181 194 199 226
++201 216 228 231 239 247 221 238 247 233 241 227 232 215 228 201 216 228 232 215 228 221 238 247
++231 239 247 240 251 247 240 251 247 240 251 247 235 238 247 201 216 228 232 215 228 235 238 247
++251 251 247 251 251 247 251 251 247 240 251 247 208 221 247 194 199 226 194 199 226 201 216 228
++226 221 247 231 239 247 246 237 247 235 238 247 232 215 228 185 202 202 194 199 226 194 199 226
++201 216 228 194 199 226 232 215 228 226 221 247 226 221 247 246 237 247 246 237 247 246 237 247
++246 237 247 246 237 247 246 237 247 226 221 247 232 215 228 194 199 226 222 171 182 189 165 168
++141 116 139 163 117 123 167 63 71 167 63 71 167 63 71 120 63 71 167 63 71 122 49 24
++120 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 138 102 108 167 63 71 163 117 123 168 102 88 163 117 123 168 102 88
++163 117 123 163 117 123 195 113 123 195 113 123 163 117 123 163 117 123 195 113 123 168 102 88
++168 102 88 168 102 88 168 102 88 167 63 71 167 63 71 176 103 41 201 146 124 227 171 124
++227 171 124 219 175 47 227 171 124 227 171 124 227 171 124 201 146 124 197 171 123 217 168 156
++197 171 123 177 169 143 201 146 124 217 168 156 197 171 123 217 168 156 197 171 123 197 171 123
++197 171 123 177 169 143 201 146 124 197 171 123 201 146 124 201 146 124 197 171 123 201 146 124
++201 146 124 197 171 123 201 146 124 197 171 123 217 168 156 197 171 123 217 168 156 197 171 123
++197 171 123 177 169 143 197 171 123 168 146 127 168 146 127 138 126 108 117 114 76 117 99 86
++101 83 74 75 73 58 75 56 53 60 49 42 55 39 37 47 44 42 42 41 42 36 35 37
++47 44 42 42 41 42 34 40 43 37 35 43 34 40 43 42 41 42 34 40 43 42 38 42
++37 35 43 37 35 43 34 40 43 36 35 37 36 35 37 36 35 37 33 30 32 33 30 32
++33 30 30 33 30 30 55 39 37 75 63 62 117 99 86 146 150 115 177 169 143 189 165 168
++217 168 156 208 215 180 217 168 156 217 168 156 217 168 156 217 168 156 177 169 143 217 168 156
++217 168 156 217 168 156 217 168 156 197 171 123 217 168 156 217 168 156 217 168 156 217 168 156
++197 171 123 217 168 156 217 168 156 197 171 123 217 168 156 177 169 143 217 168 156 197 171 123
++189 165 168 197 171 123 189 165 168 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156
++217 168 156 217 168 156 177 169 143 201 146 124 201 146 124 177 169 143 201 146 124 168 146 127
++138 102 108 117 99 86 101 83 74 75 63 62 62 47 47 55 39 37 47 44 42 55 39 37
++47 44 42 55 39 37 47 44 42 47 39 42 47 39 42 47 39 42 47 39 42 36 35 37
++42 41 42 36 35 37 36 35 37 36 35 37 36 35 37 33 30 32 36 35 37 31 35 35
++33 30 32 31 35 35 33 30 30 31 35 35 33 30 30 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37 33 30 32 33 30 32
++26 30 28 26 30 28 26 30 28 26 30 28 26 30 28 26 24 32 26 30 28 26 24 32
++26 30 28 26 30 28 33 30 30 31 35 35 36 35 37 42 38 42 42 41 42 42 41 42
++42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 48 44 48 47 44 42 53 46 48
++51 49 42 53 46 48 51 49 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 42 47 42 42 41 42 42 47 42
++43 42 50 42 47 42 43 42 50 42 47 42 43 42 50 42 47 42 43 42 50 48 50 48
++43 42 50 48 50 48 48 44 48 48 50 48 54 57 61 53 46 48 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 55 55 48 59 55 55 55 55 48 63 55 51
++55 55 48 55 55 48 53 46 48 51 49 42 53 46 48 53 46 48 53 46 48 51 49 42
++47 44 42 53 46 48 47 44 42 53 46 48 47 44 42 47 44 42 47 39 42 55 39 37
++47 39 42 55 39 37 47 39 42 53 46 48 55 39 37 60 49 42 59 36 42 53 46 48
++53 46 48 62 47 47 62 47 47 62 47 47 63 55 45 62 47 47 63 55 51 65 55 54
++63 55 45 75 56 53 63 55 45 63 55 45 63 55 45 75 56 53 63 55 51 63 55 51
++63 55 51 63 55 51 55 55 48 51 49 42 51 49 42 51 49 42 47 44 42 47 44 42
++42 41 42 36 35 37 36 35 37 36 35 37 36 35 37 31 35 35 33 30 30 31 35 35
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 41 42 42 41 42 47 44 42
++47 44 42 47 44 42 47 44 42 51 49 42 51 49 42 53 46 48 51 49 42 48 50 48
++51 49 42 53 46 48 53 46 48 51 49 42 47 44 42 51 49 42 47 44 42 47 44 42
++42 41 42 42 41 42 42 41 42 42 41 42 36 35 37 42 41 42 36 35 37 42 41 42
++36 35 37 36 35 37 42 47 42 36 35 37 42 47 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 47 44 42 47 44 42 48 44 48 48 44 48 47 44 42
++
++26 12 13 23 18 22 22 24 13 26 12 13 22 24 13 26 12 13 15 17 7 17 12 17
++17 12 17 15 17 7 17 12 17 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13
++13 4 7 13 4 7 13 4 7 3 4 9 13 4 7 7 12 13 13 4 7 7 12 13
++13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 17 12 17 7 12 13
++14 16 17 17 12 17 7 12 13 17 12 17 14 16 17 17 12 17 7 12 13 14 16 17
++17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 14 16 17 14 16 17 14 16 17
++14 16 17 14 16 17 17 12 17 14 16 17 23 18 22 17 12 17 22 24 13 14 16 17
++15 22 17 23 18 22 23 20 24 23 20 24 23 20 24 26 24 32 33 30 30 36 35 37
++36 35 37 42 38 42 42 38 42 43 42 50 43 42 50 48 50 48 57 43 64 48 50 48
++45 57 61 53 46 48 54 57 61 54 57 61 59 57 61 59 57 61 65 63 61 63 59 71
++63 59 71 59 69 70 75 72 67 59 69 70 75 81 76 59 69 70 75 64 82 59 69 70
++75 72 67 63 59 71 75 72 67 63 59 71 65 63 61 63 59 71 65 63 61 65 63 61
++65 57 61 59 57 61 59 55 55 59 55 55 59 55 55 52 55 48 48 50 48 53 46 48
++53 46 48 47 44 42 47 39 42 47 39 42 47 39 42 47 39 42 47 39 42 53 35 37
++36 35 37 53 35 37 36 35 37 53 35 37 42 38 42 53 35 37 47 39 42 47 39 42
++55 39 37 53 46 48 53 46 48 47 39 42 53 46 48 55 39 37 53 46 48 55 39 37
++53 46 48 47 39 42 53 46 48 47 44 42 60 49 42 51 49 42 53 46 48 51 49 42
++55 39 37 51 49 42 47 44 42 51 49 42 53 46 48 55 55 48 55 55 48 55 55 48
++63 55 51 63 55 51 65 63 61 65 63 61 64 70 48 75 63 62 65 63 61 65 63 61
++75 73 58 65 63 61 75 72 67 75 63 62 65 63 61 75 73 58 65 63 61 65 63 61
++53 63 61 59 55 55 59 55 55 55 55 48 52 55 48 48 44 48 47 44 42 42 41 42
++42 41 42 36 35 37 33 30 32 30 30 34 33 30 30 26 30 28 26 30 28 26 24 32
++22 25 24 22 25 24 23 20 24 22 25 24 23 18 22 22 25 24 23 20 24 22 25 24
++26 25 15 23 20 24 22 25 24 26 24 32 34 30 15 23 20 24 33 30 30 23 20 24
++26 24 32 34 30 15 33 30 30 29 35 19 52 30 35 32 39 24 53 35 37 36 35 37
++47 47 21 42 38 42 36 35 37 53 35 37 47 39 42 47 47 21 42 41 42 47 39 42
++36 35 37 42 41 42 36 35 37 36 35 37 42 38 42 36 35 37 36 35 37 36 35 37
++36 35 37 33 30 30 36 35 37 33 30 32 33 30 30 33 30 30 33 30 30 23 20 24
++33 30 30 26 25 15 26 24 32 34 30 15 23 20 24 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 32 39 24 52 30 35 33 30 30 47 47 21 36 35 37
++52 30 35 36 35 37 47 47 21 33 30 30 36 35 37 53 35 17 36 35 37 52 30 35
++36 35 37 53 35 37 33 30 30 36 35 37 32 39 24 52 30 35 36 35 37 52 30 35
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 26 24 32 34 30 15
++23 20 24 23 20 24 52 30 15 62 47 47 112 96 108 166 156 164 141 116 139 112 96 108
++141 116 139 201 216 228 240 251 247 185 202 202 166 174 181 188 180 202 208 221 247 240 251 247
++240 251 247 251 251 247 185 202 202 95 95 116 95 95 116 189 165 168 222 171 182 195 113 123
++167 63 71 161 55 23 102 33 26 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71
++161 55 23 167 63 71 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23
++122 49 24 102 33 26 102 33 26 122 49 24 102 33 26 161 55 23 167 63 71 195 113 123
++195 113 123 217 168 156 217 168 156 217 168 156 197 171 123 201 146 124 197 171 123 201 146 124
++197 171 123 217 168 156 177 169 143 217 168 156 197 171 123 217 168 156 225 222 201 233 241 227
++233 241 227 235 238 247 235 238 247 235 238 247 240 251 247 240 251 247 240 251 247 240 251 247
++240 251 247 235 238 247 240 251 247 235 238 247 240 251 247 240 251 247 221 238 247 232 215 228
++221 238 247 221 238 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 240 251 247
++240 251 247 240 251 247 235 238 247 231 239 247 231 239 247 240 251 247 235 238 247 240 251 247
++235 238 247 240 251 247 235 238 247 246 237 247 240 251 247 246 237 247 240 251 247 240 251 247
++246 237 247 240 251 247 240 251 247 240 251 247 240 251 247 251 251 247 240 251 247 240 251 247
++240 251 247 251 251 247 251 251 247 201 216 228 150 168 183 95 108 128 77 90 100 122 134 144
++194 199 226 240 251 247 240 251 247 251 251 247 240 251 247 251 251 247 240 251 247 231 239 247
++226 221 247 201 216 228 185 202 202 166 174 181 166 174 181 188 180 202 201 216 228 251 251 247
++251 251 247 251 251 247 251 251 247 231 239 247 232 215 228 201 216 228 226 221 247 231 239 247
++231 239 247 240 251 247 251 251 247 251 251 247 240 251 247 235 238 247 201 216 228 232 215 228
++201 216 228 232 215 228 194 199 226 201 216 228 201 216 228 226 221 247 235 238 247 246 237 247
++246 237 247 246 237 247 246 237 247 246 237 247 246 237 247 246 237 247 246 237 247 246 237 247
++232 215 228 232 215 228 222 171 182 189 165 168 217 168 156 195 113 123 195 113 123 195 113 123
++195 113 123 167 63 71 168 102 88 167 63 71 168 102 88 195 113 123 195 113 123 195 113 123
++201 146 124 217 168 156 217 168 156 217 168 156 217 168 156 222 171 182 217 168 156 222 171 182
++217 168 156 217 168 156 222 171 182 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156
++222 171 182 222 171 182 217 168 156 217 168 156 227 171 124 227 171 124 227 171 124 227 171 124
++227 171 124 219 175 47 227 171 124 219 175 47 227 171 124 227 171 124 197 171 123 201 146 124
++197 171 123 217 168 156 197 171 123 217 168 156 197 171 123 197 171 123 201 146 124 177 169 143
++197 171 123 201 146 124 197 171 123 217 168 156 177 169 143 197 171 123 177 169 143 197 171 123
++197 171 123 177 169 143 197 171 123 201 146 124 197 171 123 197 171 123 197 171 123 177 169 143
++197 171 123 217 168 156 177 169 143 197 171 123 177 169 143 201 146 124 177 169 143 177 169 143
++168 146 127 138 126 108 112 123 108 99 93 84 88 83 74 75 72 67 63 55 51 51 49 42
++48 50 48 48 50 48 42 41 42 42 41 42 37 35 43 33 39 38 42 41 42 37 35 43
++33 39 38 37 35 43 36 35 37 31 35 35 36 35 37 36 35 37 33 30 32 42 38 42
++60 49 42 88 73 62 112 123 108 168 146 127 166 180 164 222 171 182 217 168 156 189 165 168
++217 168 156 177 169 143 177 169 143 197 171 123 177 169 143 217 168 156 217 168 156 177 169 143
++217 168 156 197 171 123 217 168 156 177 169 143 217 168 156 197 171 123 177 169 143 201 146 124
++168 146 127 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 201 146 124 177 169 143
++201 146 124 168 146 127 201 146 124 177 169 143 197 171 123 177 169 143 217 168 156 177 169 143
++217 168 156 177 169 143 201 146 124 201 146 124 168 146 127 201 146 124 168 146 127 201 146 124
++177 169 143 189 165 168 166 156 164 163 117 123 99 93 84 60 49 42 53 35 37 51 49 42
++53 46 48 47 44 42 47 44 42 55 39 37 47 44 42 53 35 37 42 41 42 55 39 37
++47 39 42 36 35 37 47 39 42 36 35 37 36 35 37 36 35 37 36 35 37 33 30 32
++36 35 37 33 30 30 36 35 37 33 30 30 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 30 30
++36 35 37 36 35 37 52 30 35 36 35 37 36 35 37 36 35 37 33 30 32 33 30 32
++33 30 30 33 30 30 26 30 28 26 30 28 26 30 28 26 30 28 26 30 28 26 30 28
++33 30 30 26 30 28 33 30 30 36 35 37 36 35 37 36 35 37 42 41 42 42 41 42
++42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 47 44 42
++53 46 48 53 46 48 53 46 48 53 46 48 47 44 42 51 49 42 47 44 42 51 49 42
++47 44 42 51 49 42 53 46 48 48 44 48 48 44 48 47 44 42 48 44 48 48 50 48
++48 44 48 48 50 48 43 42 50 48 50 48 48 50 48 43 55 48 43 42 50 48 50 48
++43 42 50 48 50 48 48 50 48 48 50 48 53 46 48 48 50 48 48 50 48 54 57 61
++52 55 48 59 55 55 59 55 55 59 55 55 59 55 55 55 55 48 59 55 55 55 55 48
++63 55 51 55 55 48 53 46 48 55 55 48 53 46 48 53 46 48 53 46 48 53 46 48
++53 46 48 47 44 42 53 46 48 55 39 37 47 44 42 55 39 37 47 39 42 47 39 42
++55 39 37 47 39 42 59 36 42 55 39 37 59 36 42 60 49 42 53 46 48 60 49 42
++62 47 47 62 47 47 62 47 47 76 44 53 62 47 47 65 55 54 63 55 45 65 55 54
++63 55 45 75 56 53 75 56 53 75 56 53 63 55 45 63 55 45 63 55 51 65 55 54
++63 55 51 63 55 45 55 55 48 55 55 48 51 49 42 53 46 48 51 49 42 47 44 42
++47 44 42 42 47 42 36 35 37 36 35 37 36 35 37 36 35 37 31 35 35 33 30 32
++33 30 30 36 35 37 33 39 38 36 35 37 42 41 42 36 35 37 42 41 42 47 39 42
++47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 53 46 48 48 50 48 51 49 42
++52 55 48 55 55 48 53 46 48 51 49 42 51 49 42 47 44 42 47 44 42 47 44 42
++47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 36 35 37 33 39 38 36 35 37
++42 41 42 36 35 37 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 47 39 42
++42 41 42 42 41 42 42 41 42 42 41 42 47 44 42 47 44 42 48 44 48 48 44 48
++
++22 24 13 26 12 13 22 24 13 26 12 13 17 12 17 23 10 10 17 12 17 15 17 7
++23 10 10 17 12 17 15 17 7 13 4 7 14 16 17 7 12 13 13 4 7 7 12 13
++13 4 7 3 4 9 3 4 9 13 4 7 7 12 13 3 4 9 13 4 7 7 12 13
++3 4 9 7 12 13 7 12 13 13 4 7 17 12 17 17 12 17 17 12 17 7 12 13
++17 12 17 7 12 13 17 12 17 17 12 17 14 16 17 17 12 17 14 16 17 7 12 13
++17 12 17 14 16 17 7 12 13 17 12 17 14 16 17 17 12 17 14 16 17 17 12 17
++14 16 17 14 16 17 23 18 22 14 16 17 23 18 22 15 22 17 17 12 17 23 18 22
++23 18 22 22 24 13 23 20 24 26 25 15 26 30 28 33 30 30 33 30 30 33 30 30
++36 35 37 42 38 42 42 38 42 43 42 50 48 44 48 48 50 48 54 57 61 48 50 48
++57 43 64 45 57 61 54 57 61 54 57 61 59 57 61 59 57 61 63 59 71 63 59 71
++59 69 70 75 64 82 59 69 70 75 64 82 75 72 67 75 64 82 75 72 67 75 64 82
++63 59 71 75 72 67 63 59 71 75 59 67 65 63 61 65 63 61 65 57 61 59 57 61
++59 55 55 59 55 55 59 55 55 59 55 55 53 46 48 48 50 48 53 46 48 48 44 48
++47 44 42 47 39 42 47 39 42 42 41 42 36 35 37 53 35 37 36 35 37 36 35 37
++52 30 35 36 35 37 53 35 37 36 35 37 53 35 37 36 35 37 53 35 37 47 39 42
++47 39 42 55 39 37 47 44 42 55 39 37 53 46 48 55 39 37 47 39 42 47 39 42
++55 39 37 47 39 42 55 39 37 47 39 42 47 44 42 55 39 37 53 46 48 47 44 42
++47 44 42 51 49 42 51 49 42 51 49 42 53 46 48 60 49 42 55 55 48 63 55 51
++63 55 51 63 55 51 65 55 54 65 63 61 75 56 53 65 63 61 75 73 58 75 63 62
++75 73 58 75 72 67 75 63 62 75 72 67 65 63 61 65 63 61 65 63 61 65 63 61
++63 55 51 63 55 51 52 55 48 52 55 48 53 46 48 47 44 42 42 41 42 42 41 42
++36 35 37 36 35 37 36 35 37 33 30 30 33 30 30 26 24 32 26 30 28 26 30 28
++26 24 32 23 20 24 23 20 24 23 18 22 22 25 24 22 24 13 23 18 22 22 25 24
++22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 33 30 30 26 25 15 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 36 35 37 53 35 37
++36 35 37 53 35 37 42 41 42 36 35 37 36 35 37 47 39 42 36 35 37 36 35 37
++47 47 21 36 35 37 47 39 42 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37
++33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 23 20 24 23 20 24 33 30 30
++23 20 24 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 52 30 35 33 30 30 36 35 37 33 30 30 53 35 37 36 35 37
++36 35 37 53 35 37 36 35 37 52 30 35 53 35 37 36 35 37 52 30 35 32 39 24
++52 30 35 36 35 37 53 35 17 52 30 35 36 35 37 36 35 37 32 39 24 33 30 30
++33 30 30 33 30 30 34 30 15 26 24 32 28 13 18 33 30 30 23 18 22 26 30 28
++23 20 24 28 13 18 33 30 30 88 66 70 150 144 154 225 222 201 194 199 226 188 180 202
++148 160 159 145 140 145 95 108 128 75 81 90 94 105 108 188 180 202 221 238 247 240 251 247
++208 221 247 150 168 183 75 81 90 26 24 32 138 102 108 222 171 182 222 171 182 167 63 71
++102 33 26 167 63 71 161 55 23 161 55 23 102 33 26 167 63 71 161 55 23 167 63 71
++161 55 23 167 63 71 161 55 23 167 63 71 167 63 71 167 63 71 161 55 23 102 33 26
++102 33 26 102 33 26 122 49 24 161 55 23 167 63 71 195 113 123 201 146 124 201 146 124
++217 168 156 197 171 123 197 171 123 201 146 124 177 169 143 217 168 156 197 171 123 197 171 123
++201 146 124 197 171 123 197 171 123 217 168 156 177 169 143 217 168 156 225 222 201 232 215 228
++233 241 227 226 221 247 233 241 227 231 239 247 240 251 247 240 251 247 251 251 247 240 251 247
++240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 231 239 247 221 238 247 221 238 247
++208 221 247 226 221 247 221 238 247 231 239 247 231 239 247 240 251 247 240 251 247 240 251 247
++231 239 247 231 239 247 231 239 247 240 251 247 231 239 247 231 239 247 240 251 247 235 238 247
++235 238 247 240 251 247 235 238 247 240 251 247 235 238 247 240 251 247 246 237 247 240 251 247
++246 237 247 240 251 247 246 237 247 240 251 247 246 237 247 240 251 247 251 251 247 246 237 247
++240 251 247 246 237 247 251 251 247 251 251 247 226 221 247 188 180 202 148 160 159 166 174 181
++194 199 226 231 239 247 221 238 247 231 239 247 240 251 247 240 251 247 251 251 247 231 239 247
++201 216 228 166 174 181 112 96 108 75 81 90 75 81 90 111 119 127 188 180 202 251 251 247
++251 251 247 251 251 247 240 251 247 226 221 247 201 216 228 208 221 247 221 238 247 231 239 247
++231 239 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 240 251 247 235 238 247
++235 238 247 226 221 247 226 221 247 201 216 228 232 215 228 201 216 228 226 221 247 221 238 247
++235 238 247 246 237 247 246 237 247 251 251 247 246 237 247 251 251 247 246 237 247 251 251 247
++251 251 247 246 237 247 246 237 247 232 215 228 222 171 182 222 171 182 222 171 182 217 168 156
++217 168 156 222 171 182 222 171 182 217 168 156 222 171 182 217 168 156 217 168 156 222 171 182
++222 171 182 217 168 156 222 171 182 222 171 182 222 171 182 217 168 156 222 171 182 214 214 134
++222 171 182 208 215 180 214 214 134 222 171 182 208 215 180 222 171 182 222 171 182 214 214 134
++222 171 182 217 168 156 222 171 182 217 168 156 222 171 182 217 168 156 227 171 124 227 171 124
++227 171 124 227 171 124 227 171 124 217 168 156 217 168 156 197 171 123 217 168 156 217 168 156
++217 168 156 177 169 143 197 171 123 217 168 156 177 169 143 217 168 156 197 171 123 217 168 156
++197 171 123 217 168 156 177 169 143 197 171 123 217 168 156 217 168 156 197 171 123 217 168 156
++217 168 156 197 171 123 217 168 156 177 169 143 201 146 124 177 169 143 197 171 123 217 168 156
++177 169 143 201 146 124 197 171 123 177 169 143 197 171 123 177 169 143 177 169 143 201 146 124
++189 165 168 177 169 143 201 146 124 168 146 127 168 146 127 138 126 108 138 102 108 117 99 86
++88 73 62 88 73 62 63 55 51 51 49 42 47 39 42 36 35 37 33 30 30 26 30 28
++33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 53 35 37 75 56 53 117 99 86
++138 126 108 168 146 127 189 165 168 189 165 168 217 168 156 189 165 168 214 214 134 189 165 168
++177 169 143 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 197 171 123 217 168 156
++197 171 123 189 165 168 201 146 124 201 146 124 168 146 127 163 117 123 163 117 123 168 102 88
++138 126 108 163 117 123 168 102 88 168 146 127 163 117 123 168 146 127 163 117 123 163 117 123
++138 126 108 168 102 88 138 126 108 163 117 123 168 146 127 201 146 124 177 169 143 201 146 124
++197 171 123 201 146 124 201 146 124 166 156 164 201 146 124 195 113 123 168 146 127 168 146 127
++168 146 127 201 146 124 189 165 168 168 146 127 117 99 86 63 55 51 36 35 37 55 39 37
++53 46 48 53 46 48 53 46 48 47 39 42 47 39 42 47 39 42 55 39 37 42 41 42
++36 35 37 42 41 42 36 35 37 36 35 37 42 38 42 36 35 37 36 35 37 36 35 37
++33 30 32 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++33 30 30 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 30 32 33 30 32
++33 30 32 33 30 32 26 24 32 33 30 30 26 30 28 33 30 30 26 24 32 30 30 34
++33 30 30 33 30 32 31 35 35 36 35 37 36 35 37 42 38 42 42 38 42 42 41 42
++42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 48 44 48 47 44 42
++53 46 48 51 49 42 53 46 48 48 50 48 53 46 48 48 50 48 53 46 48 53 46 48
++53 46 48 53 46 48 53 46 48 53 46 48 52 55 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 45 57 61 48 50 48 45 57 61 48 50 48 48 50 48
++48 50 48 48 50 48 54 57 61 48 44 48 48 50 48 54 57 61 53 46 48 59 55 55
++59 55 55 54 57 61 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55
++63 55 51 55 55 48 53 46 48 53 46 48 53 46 48 53 46 48 55 55 48 53 46 48
++51 49 42 53 46 48 48 44 48 48 44 48 47 44 42 47 39 42 48 44 48 47 39 42
++47 39 42 47 39 42 47 39 42 53 46 48 47 44 42 53 46 48 59 36 42 53 46 48
++53 46 48 62 47 47 62 47 47 63 55 51 63 55 51 62 47 47 63 55 51 63 55 51
++75 56 53 63 55 51 65 55 54 64 70 48 75 56 53 63 55 51 75 56 53 63 55 51
++63 55 51 55 55 48 55 55 48 51 49 42 60 49 42 51 49 42 51 49 42 47 44 42
++42 41 42 36 35 37 32 39 24 36 35 37 33 30 30 31 35 35 33 30 32 36 35 37
++31 35 35 36 35 37 36 35 37 42 47 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 47 44 42 47 44 42 47 44 42 51 49 42 51 49 42 51 49 42 53 46 48
++53 46 48 55 55 48 53 46 48 53 46 48 51 49 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 42 41 42 36 35 37 36 35 37 33 39 38 42 41 42 42 41 42
++33 39 38 42 41 42 42 41 42 33 39 38 42 41 42 42 41 42 42 47 42 42 41 42
++42 41 42 47 44 42 42 47 42 47 44 42 42 41 42 47 44 42 47 44 42 47 44 42
++
++26 12 13 22 24 13 26 12 13 22 24 13 26 12 13 15 17 7 23 10 10 17 12 17
++15 17 7 7 12 13 17 12 17 17 12 17 7 12 13 13 4 7 6 15 6 13 4 7
++7 12 13 3 4 9 7 12 13 13 4 7 3 4 9 13 4 7 7 12 13 13 4 7
++13 4 7 17 12 17 13 4 7 7 12 13 7 12 13 17 12 17 7 12 13 17 12 17
++7 12 13 14 16 17 17 12 17 7 12 13 17 12 17 7 12 13 15 17 7 17 12 17
++7 12 13 14 16 17 17 12 17 7 12 13 14 16 17 14 16 17 14 16 17 14 16 17
++14 16 17 17 12 17 14 16 17 22 24 13 14 16 17 23 18 22 23 18 22 23 18 22
++22 24 13 23 18 22 22 25 24 23 20 24 26 30 28 26 25 15 33 30 30 33 30 30
++36 35 37 37 35 43 42 38 42 43 42 50 43 42 50 57 43 64 48 50 48 53 46 48
++45 57 61 53 46 48 54 57 61 54 57 61 59 57 61 54 57 61 59 57 61 65 63 61
++63 59 71 75 72 67 63 59 71 75 72 67 63 59 71 63 59 71 75 72 67 63 59 71
++75 72 67 65 63 61 75 59 67 65 63 61 63 59 71 65 63 61 59 57 61 59 57 61
++59 57 61 59 55 55 59 55 55 59 55 55 53 46 48 53 46 48 47 44 42 47 44 42
++47 39 42 47 44 42 36 35 37 53 35 37 42 38 42 53 35 37 36 35 37 53 35 37
++32 39 24 52 30 35 32 39 24 52 30 35 36 35 37 52 30 35 36 35 37 53 35 37
++55 39 37 47 39 42 55 39 37 47 39 42 47 39 42 47 39 42 47 39 42 55 39 37
++47 39 42 47 39 42 47 39 42 47 39 42 55 39 37 51 49 42 47 44 42 51 49 42
++51 49 42 47 44 42 55 39 37 51 49 42 51 49 42 53 46 48 55 55 48 55 55 48
++55 55 48 63 55 51 63 55 51 64 70 48 65 63 61 65 63 61 75 73 58 65 63 61
++75 63 62 75 63 62 75 72 67 65 63 61 75 73 58 65 63 61 65 63 61 65 63 61
++65 55 54 59 55 55 55 55 48 48 50 48 47 49 42 47 44 42 42 41 42 42 41 42
++42 41 42 36 35 37 33 30 32 33 30 30 33 30 30 22 25 24 33 30 30 26 30 28
++33 30 30 22 25 24 22 25 24 23 18 22 23 20 24 23 20 24 23 18 22 22 25 24
++23 20 24 22 25 24 23 20 24 33 30 30 23 20 24 26 24 32 22 25 24 23 18 22
++33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 36 35 37 47 47 21 36 35 37
++42 38 42 47 47 21 36 35 37 55 39 37 36 35 37 53 35 37 36 35 37 47 39 42
++42 38 42 36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 30 30
++36 35 37 33 30 30 36 35 37 33 30 30 23 20 24 33 30 30 33 30 30 23 20 24
++33 30 30 23 20 24 33 30 30 23 20 24 26 24 32 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 47 47 21 36 35 37 42 38 42
++47 47 21 36 35 37 53 35 37 42 38 42 52 30 35 36 35 37 53 35 37 52 30 35
++36 35 37 52 30 35 36 35 37 52 30 35 32 39 24 52 30 35 36 35 37 52 30 35
++33 30 30 33 30 30 28 13 18 33 30 30 22 25 24 33 30 30 23 20 24 26 25 15
++22 25 24 22 24 13 42 38 42 112 96 108 188 180 202 226 221 247 251 251 247 226 221 247
++129 144 153 45 57 61 3 4 9 3 4 9 75 81 90 166 174 181 226 221 247 221 238 247
++188 180 202 95 95 116 63 59 71 95 91 100 166 156 164 222 171 182 138 102 108 167 63 71
++102 33 26 161 55 23 122 49 24 161 55 23 167 63 71 161 55 23 161 55 23 161 55 23
++167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 167 63 71
++167 63 71 161 55 23 168 102 88 195 113 123 197 171 123 217 168 156 177 169 143 217 168 156
++197 171 123 197 171 123 201 146 124 197 171 123 197 171 123 197 171 123 217 168 156 197 171 123
++217 168 156 197 171 123 217 168 156 197 171 123 217 168 156 189 165 168 189 165 168 208 215 180
++185 202 202 185 202 202 201 216 228 201 216 228 221 238 247 231 239 247 240 251 247 240 251 247
++240 251 247 240 251 247 251 251 247 240 251 247 235 238 247 221 238 247 226 221 247 226 221 247
++201 216 228 208 221 247 221 238 247 221 238 247 231 239 247 231 239 247 240 251 247 231 239 247
++240 251 247 231 239 247 231 239 247 231 239 247 231 239 247 240 251 247 231 239 247 235 238 247
++240 251 247 235 238 247 240 251 247 231 239 247 240 251 247 235 238 247 240 251 247 246 237 247
++240 251 247 240 251 247 240 251 247 251 251 247 240 251 247 240 251 247 240 251 247 251 251 247
++246 237 247 251 251 247 240 251 247 251 251 247 251 251 247 251 251 247 231 239 247 232 215 228
++233 241 227 226 221 247 201 216 228 201 216 228 226 221 247 221 238 247 231 239 247 221 238 247
++226 221 247 166 176 200 122 134 144 77 91 115 94 105 108 150 144 154 201 216 228 240 251 247
++251 251 247 251 251 247 221 238 247 201 216 228 194 199 226 201 216 228 201 216 228 221 238 247
++231 239 247 235 238 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 235 238 247 231 239 247 221 238 247 226 221 247 231 239 247 201 216 228 226 221 247
++231 239 247 231 239 247 240 251 247 235 238 247 240 251 247 240 251 247 246 237 247 251 251 247
++251 251 247 251 251 247 251 251 247 233 241 227 233 241 227 233 241 227 225 222 201 225 222 201
++225 222 201 225 222 201 222 171 182 225 222 201 208 215 180 217 168 156 208 215 180 222 171 182
++214 214 134 222 171 182 214 214 134 217 168 156 214 214 134 222 171 182 214 214 134 222 171 182
++214 214 134 217 168 156 222 171 182 214 214 134 222 171 182 214 214 134 217 168 156 222 171 182
++214 214 134 217 168 156 208 215 180 217 168 156 214 214 134 217 168 156 217 168 156 217 168 156
++217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156
++217 168 156 217 168 156 217 168 156 197 171 123 217 168 156 197 171 123 217 168 156 177 169 143
++217 168 156 197 171 123 217 168 156 197 171 123 217 168 156 177 169 143 217 168 156 197 171 123
++217 168 156 177 169 143 217 168 156 197 171 123 217 168 156 197 171 123 189 165 168 197 171 123
++217 168 156 197 171 123 217 168 156 177 169 143 201 146 124 217 168 156 177 169 143 217 168 156
++197 171 123 197 171 123 217 168 156 177 169 143 217 168 156 197 171 123 177 171 115 168 146 127
++168 146 127 138 126 108 138 126 108 117 99 86 101 83 74 75 72 67 63 55 51 55 39 37
++47 44 42 60 49 42 65 55 54 75 63 62 88 83 74 117 99 86 138 126 108 177 169 143
++189 165 168 222 171 182 214 214 134 217 168 156 217 168 156 177 169 143 177 169 143 217 168 156
++217 168 156 177 169 143 217 168 156 217 168 156 217 168 156 177 169 143 217 168 156 177 169 143
++201 146 124 201 146 124 163 117 123 138 102 108 168 102 88 117 112 45 117 99 86 117 112 45
++120 63 71 101 74 26 101 60 73 101 74 26 117 99 86 120 63 71 117 114 76 101 83 74
++120 63 71 88 73 31 120 63 71 117 112 45 117 99 86 168 102 88 138 126 108 168 102 88
++163 117 123 163 117 123 201 146 124 201 146 124 201 146 124 168 146 127 201 146 124 201 146 124
++163 117 123 138 102 108 117 99 86 117 99 86 88 73 62 60 49 42 53 35 37 55 39 37
++57 43 51 53 46 48 53 46 48 53 46 48 55 39 37 47 44 42 47 39 42 47 39 42
++47 44 42 32 39 24 47 44 42 36 35 37 42 38 42 36 35 37 36 35 37 36 35 37
++33 30 32 36 35 37 33 30 30 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++53 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 30 32
++33 30 32 33 30 32 33 30 30 26 30 28 33 30 30 26 30 28 26 30 28 33 30 30
++31 35 35 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42
++42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++48 50 48 53 46 48 55 55 48 53 46 48 52 55 48 48 50 48 48 50 48 55 55 48
++53 46 48 55 55 48 48 50 48 59 55 55 53 46 48 59 55 55 48 50 48 54 57 61
++48 50 48 54 57 61 59 55 55 54 57 61 48 50 48 54 57 61 53 46 48 45 57 61
++48 44 48 54 57 61 48 44 48 54 57 61 48 50 48 48 50 48 54 57 61 52 55 48
++54 57 61 59 55 55 59 55 55 54 57 61 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 62 47 47 55 55 48 53 46 48 52 55 48 53 46 48 53 46 48 53 46 48
++53 46 48 47 44 42 48 44 48 51 49 42 48 44 48 48 44 48 47 39 42 47 39 42
++47 39 42 47 39 42 55 39 37 47 39 42 47 39 42 47 44 42 53 46 48 60 49 42
++53 46 48 62 47 47 63 55 51 62 47 47 62 47 47 63 55 51 63 55 45 63 55 51
++63 55 45 63 55 51 75 56 53 65 55 54 75 56 53 63 55 51 64 70 48 63 55 51
++63 55 51 63 55 45 55 55 48 55 55 48 51 49 42 53 46 48 47 44 42 47 44 42
++42 41 42 47 44 42 36 35 37 36 35 37 33 39 38 33 30 30 36 35 37 31 35 35
++36 35 37 33 30 30 42 41 42 36 35 37 42 41 42 36 35 37 42 41 42 42 41 42
++42 41 42 47 44 42 47 44 42 47 44 42 51 49 42 53 46 48 51 49 42 53 46 48
++55 55 48 53 46 48 51 49 42 53 46 48 53 46 48 53 46 48 47 44 42 51 49 42
++47 44 42 47 44 42 42 47 42 42 41 42 36 35 37 42 41 42 36 35 37 33 39 38
++42 41 42 42 41 42 33 39 38 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++47 44 42 47 44 42 43 42 50 42 47 42 42 41 42 42 41 42 43 42 50 42 41 42
++
++22 24 13 17 12 17 26 12 13 15 17 7 23 10 10 23 10 10 17 12 17 15 17 7
++17 12 17 13 4 7 14 16 17 13 4 7 15 17 7 7 12 13 3 4 9 7 12 13
++13 4 7 3 4 9 13 4 7 3 4 9 7 12 13 13 4 7 7 12 13 3 4 9
++3 4 9 7 12 13 7 12 13 13 4 7 17 12 17 7 10 17 17 12 17 7 12 13
++17 12 17 17 12 17 14 16 17 17 12 17 17 12 17 14 16 17 17 12 17 14 16 17
++17 12 17 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 14 16 17
++23 18 22 14 16 17 23 18 22 17 12 17 23 18 22 23 18 22 15 22 17 23 18 22
++23 18 22 23 18 22 26 25 15 22 25 24 26 25 15 26 30 28 33 30 30 33 30 30
++36 35 37 42 38 42 42 38 42 43 42 50 48 44 48 48 50 48 48 50 48 54 57 61
++57 43 64 45 57 61 59 55 55 54 57 61 54 57 61 54 57 61 59 57 61 63 59 71
++59 57 61 63 59 71 65 63 61 63 59 71 65 63 61 63 59 71 63 59 71 75 59 67
++63 59 71 65 63 61 63 59 71 65 63 61 63 59 71 65 63 61 65 63 61 59 57 61
++59 55 55 59 55 55 59 55 55 53 46 48 48 50 48 47 44 42 47 44 42 47 39 42
++42 41 42 53 35 37 36 35 37 42 41 42 36 35 37 36 35 37 52 30 35 33 30 30
++36 35 37 52 30 35 32 39 24 52 30 35 36 35 37 52 30 35 36 35 37 53 35 37
++36 35 37 53 35 37 47 39 42 47 39 42 53 35 37 53 35 37 53 35 37 47 39 42
++53 35 37 47 39 42 53 35 37 47 44 42 55 39 37 47 44 42 55 39 37 51 49 42
++47 44 42 51 49 42 51 49 42 53 46 48 60 49 42 55 55 48 53 46 48 62 47 47
++63 55 45 63 55 51 63 55 51 65 55 54 65 63 61 75 63 62 65 63 61 75 73 58
++75 63 62 75 72 67 75 72 67 75 63 62 65 63 61 65 63 61 65 63 61 65 63 61
++59 55 55 63 55 51 55 55 48 53 46 48 51 49 42 47 44 42 42 41 42 42 38 42
++36 35 37 36 35 37 36 35 37 33 30 30 33 30 30 26 24 32 33 30 30 23 20 24
++23 20 24 22 25 24 23 20 24 26 25 15 23 20 24 22 25 24 23 18 22 22 25 24
++22 25 24 22 25 24 22 25 24 23 20 24 26 25 15 22 25 24 33 30 30 34 30 15
++26 24 32 33 30 30 33 30 30 34 30 15 52 30 35 36 35 37 36 35 37 53 35 37
++36 35 37 47 39 42 36 35 37 53 35 37 36 35 37 36 35 37 53 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37 33 30 32
++36 35 37 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 28 13 18 33 30 30
++33 30 30 23 20 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 32 33 30 32
++33 30 30 36 35 37 52 30 35 32 39 24 52 30 35 36 35 37 53 35 37 36 35 37
++53 35 37 36 35 37 47 47 21 52 30 35 36 35 37 53 35 37 36 35 37 53 35 37
++47 47 21 36 35 37 52 30 35 32 39 24 52 30 35 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 23 20 24 33 30 30 23 20 24 26 30 28 23 20 24
++22 24 13 23 18 22 59 55 55 141 116 139 185 202 202 233 241 227 251 251 247 194 199 226
++95 91 100 12 18 30 3 4 9 43 42 50 111 119 127 166 174 181 201 216 228 226 221 247
++166 174 181 145 140 145 150 144 154 222 171 182 189 165 168 163 117 123 120 63 71 102 33 26
++167 63 71 161 55 23 167 63 71 161 55 23 161 55 23 167 63 71 161 55 23 167 63 71
++161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 167 63 71 167 63 71
++168 102 88 195 113 123 201 146 124 201 146 124 197 171 123 201 146 124 197 171 123 201 146 124
++177 169 143 201 146 124 197 171 123 217 168 156 177 169 143 217 168 156 197 171 123 217 168 156
++197 171 123 197 171 123 217 168 156 197 171 123 217 168 156 208 215 180 177 169 143 166 156 164
++166 156 164 166 180 164 188 180 202 185 202 202 201 216 228 201 216 228 221 238 247 226 221 247
++231 239 247 240 251 247 240 251 247 240 251 247 235 238 247 231 239 247 208 221 247 201 216 228
++201 216 228 201 216 228 226 221 247 221 238 247 231 239 247 240 251 247 231 239 247 231 239 247
++231 239 247 240 251 247 231 239 247 231 239 247 240 251 247 235 238 247 240 251 247 235 238 247
++240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 246 237 247 240 251 247
++251 251 247 251 251 247 251 251 247 240 251 247 251 251 247 251 251 247 240 251 247 251 251 247
++240 251 247 251 251 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++240 251 247 235 238 247 221 238 247 201 216 228 201 216 228 232 215 228 221 238 247 226 221 247
++231 239 247 231 239 247 226 221 247 194 199 226 201 216 228 235 238 247 251 251 247 251 251 247
++251 251 247 231 239 247 201 216 228 188 180 202 185 202 202 201 216 228 208 221 247 226 221 247
++221 238 247 231 239 247 240 251 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++240 251 247 226 221 247 232 215 228 221 238 247 221 238 247 231 239 247 231 239 247 221 238 247
++226 221 247 221 238 247 235 238 247 240 251 247 240 251 247 246 237 247 251 251 247 246 237 247
++251 251 247 251 251 247 246 237 247 233 241 227 233 241 227 225 222 201 225 222 201 222 171 182
++208 215 180 222 171 182 208 215 180 217 168 156 217 168 156 208 215 180 217 168 156 217 168 156
++217 168 156 208 215 180 217 168 156 222 171 182 222 171 182 214 214 134 222 171 182 222 171 182
++208 215 180 217 168 156 214 214 134 222 171 182 217 168 156 222 171 182 214 214 134 222 171 182
++217 168 156 208 215 180 217 168 156 222 171 182 217 168 156 208 215 180 217 168 156 214 214 134
++217 168 156 214 214 134 217 168 156 214 214 134 217 168 156 208 215 180 217 168 156 214 214 134
++217 168 156 214 214 134 189 165 168 217 168 156 217 168 156 217 168 156 197 171 123 217 168 156
++197 171 123 217 168 156 197 171 123 217 168 156 197 171 123 217 168 156 217 168 156 177 169 143
++217 168 156 197 171 123 217 168 156 177 169 143 217 168 156 177 169 143 217 168 156 217 168 156
++217 168 156 217 168 156 177 169 143 217 168 156 217 168 156 197 171 123 217 168 156 217 168 156
++177 169 143 217 168 156 197 171 123 217 168 156 177 169 143 217 168 156 189 165 168 217 168 156
++189 165 168 189 165 168 189 165 168 166 180 164 150 144 154 138 126 108 112 123 108 117 99 86
++112 96 108 112 96 108 138 126 108 121 143 132 168 146 127 166 180 164 189 165 168 217 168 156
++217 168 156 189 165 168 177 169 143 217 168 156 177 169 143 217 168 156 217 168 156 177 169 143
++217 168 156 217 168 156 177 169 143 217 168 156 177 169 143 201 146 124 201 146 124 168 146 127
++168 146 127 138 126 108 120 63 71 101 74 26 76 46 20 88 44 51 102 33 26 76 46 20
++76 46 20 76 46 20 55 39 18 76 46 20 76 46 20 76 46 20 76 46 20 76 46 20
++76 46 20 76 46 20 76 46 20 88 44 51 122 49 24 88 73 31 88 44 51 101 74 26
++101 83 74 168 102 88 138 102 108 163 117 123 163 117 123 168 146 127 168 146 127 168 146 127
++163 117 123 120 63 71 75 56 53 76 46 20 53 35 37 55 39 37 55 39 37 51 49 42
++47 39 42 47 39 42 57 43 51 53 46 48 53 46 48 47 39 42 55 39 37 47 39 42
++47 44 42 42 41 42 36 35 37 42 41 42 36 35 37 42 38 42 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 42 38 42 42 38 42
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 41 42 36 35 37 42 38 42
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 33 30 36 33 30 32
++33 30 32 33 30 32 33 30 30 33 30 30 26 30 28 33 30 32 31 35 35 31 35 35
++31 35 35 33 30 32 33 30 30 33 30 30 36 35 37 36 35 37 42 38 42 36 35 37
++42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 48 44 48 53 46 48 47 44 42
++53 46 48 55 55 48 53 46 48 55 55 48 52 55 48 53 46 48 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 54 57 61 59 55 55 59 55 55
++54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61
++57 43 64 48 50 48 54 57 61 53 46 48 54 57 61 59 55 55 54 57 61 54 57 61
++59 55 55 54 57 61 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 55 55 48 53 46 48 53 46 48 53 46 48 48 50 48 53 46 48 48 44 48
++47 44 42 47 44 42 53 46 48 48 44 48 48 44 48 47 39 42 53 46 48 47 39 42
++53 46 48 47 39 42 47 44 42 47 39 42 53 46 48 55 39 37 53 46 48 51 49 42
++53 46 48 62 47 47 62 47 47 62 47 47 65 55 54 63 55 45 65 55 54 65 55 54
++75 56 53 65 55 54 64 70 48 63 55 51 64 70 48 63 55 45 65 55 54 63 55 51
++63 55 51 55 55 48 55 55 48 60 49 42 51 49 42 51 49 42 51 49 42 47 44 42
++42 41 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 30 30 31 35 35
++33 30 32 36 35 37 36 35 37 33 39 38 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 47 42 47 44 42 47 44 42 51 49 42 51 49 42 53 46 48 55 55 48
++53 46 48 55 55 48 53 46 48 51 49 42 53 46 48 51 49 42 47 44 42 48 44 48
++47 44 42 42 47 42 42 41 42 36 35 37 42 41 42 36 35 37 42 41 42 42 41 42
++33 39 38 42 41 42 42 41 42 42 41 42 42 41 42 42 47 42 42 41 42 42 41 42
++48 44 48 47 44 42 42 47 42 42 47 42 42 41 42 42 41 42 47 44 42 42 41 42
++
++23 10 10 26 12 13 22 24 13 17 12 17 15 17 7 17 12 17 15 17 7 17 12 17
++17 12 17 7 12 13 7 12 13 17 12 17 7 12 13 7 12 13 13 4 7 7 12 13
++7 10 17 13 4 7 7 12 13 13 4 7 3 4 9 7 10 17 13 4 7 7 12 13
++17 12 17 7 10 17 13 4 7 7 12 13 7 10 17 7 12 13 17 12 17 7 12 13
++17 12 17 7 12 13 14 16 17 17 12 17 14 16 17 17 12 17 17 12 17 23 18 22
++14 16 17 17 12 17 14 16 17 14 16 17 17 12 17 14 16 17 17 12 17 23 18 22
++14 16 17 23 18 22 15 22 17 17 12 17 14 16 17 23 18 22 23 20 24 23 20 24
++26 25 15 23 20 24 23 20 24 23 20 24 23 20 24 26 30 28 33 30 30 33 30 32
++36 35 37 36 35 37 42 38 42 42 41 42 48 44 48 48 50 48 43 42 50 54 57 61
++48 50 48 54 57 61 48 50 48 54 57 61 53 46 48 54 57 61 54 57 61 59 57 61
++65 63 61 59 57 61 59 57 61 59 57 61 65 63 61 65 57 61 65 63 61 65 63 61
++65 63 61 65 63 61 75 59 67 65 63 61 65 63 61 65 57 61 65 57 61 59 57 61
++59 55 55 59 55 55 59 55 55 55 55 48 48 44 48 47 44 42 42 41 42 47 44 42
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 32 39 24 52 30 35
++36 35 37 33 30 30 36 35 37 53 35 37 33 30 30 53 35 37 36 35 37 52 30 35
++32 39 24 52 30 35 36 35 37 53 35 37 36 35 37 53 35 37 36 35 37 53 35 37
++36 35 37 53 35 37 47 39 42 55 39 37 47 44 42 55 39 37 53 46 48 47 44 42
++55 39 37 51 49 42 53 46 48 60 49 42 53 46 48 60 49 42 53 46 48 60 49 42
++55 55 48 63 55 51 64 70 48 65 55 54 65 63 61 75 73 58 75 56 53 75 73 58
++65 63 61 75 73 58 75 63 62 75 73 58 75 63 62 64 70 48 65 63 61 65 63 61
++59 55 55 59 55 55 55 55 48 48 50 48 48 50 48 42 41 42 47 44 42 36 35 37
++36 35 37 36 35 37 33 30 32 33 30 30 26 30 28 33 30 30 23 20 24 33 30 30
++23 20 24 33 30 30 23 20 24 23 20 24 23 20 24 23 20 24 26 25 15 22 25 24
++26 25 15 23 20 24 26 25 15 22 25 24 33 30 30 23 20 24 23 20 24 23 20 24
++34 30 15 33 30 30 33 30 30 36 35 37 32 39 24 52 30 35 36 35 37 36 35 37
++36 35 37 47 47 21 36 35 37 36 35 37 47 47 21 55 39 37 36 35 37 32 39 24
++36 35 37 33 30 30 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 30 32
++33 30 32 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 26 25 15 33 30 30 26 25 15 33 30 30 33 30 30 33 30 30 52 30 35
++32 39 24 52 30 35 32 39 24 36 35 37 36 35 37 36 35 37 53 35 37 32 39 24
++53 35 37 47 39 42 53 35 37 42 38 42 53 35 37 36 35 37 53 35 37 36 35 37
++42 38 42 36 35 37 47 47 21 36 35 37 32 39 24 52 30 35 33 30 30 33 30 30
++33 30 30 33 30 30 23 20 24 33 30 30 23 20 24 26 25 15 23 20 24 23 20 24
++14 16 17 25 30 29 75 64 82 148 160 159 201 216 228 221 238 247 208 221 247 148 160 159
++75 81 90 29 34 50 75 64 82 150 168 183 232 215 228 246 237 247 246 237 247 232 215 228
++222 171 182 222 171 182 217 168 156 222 171 182 167 63 71 167 63 71 102 33 26 161 55 23
++102 33 26 161 55 23 122 49 24 167 63 71 102 33 26 161 55 23 167 63 71 161 55 23
++167 63 71 161 55 23 167 63 71 122 49 24 167 63 71 167 63 71 195 113 123 201 146 124
++217 168 156 197 171 123 217 168 156 201 146 124 197 171 123 201 146 124 197 171 123 197 171 123
++201 146 124 197 171 123 197 171 123 197 171 123 197 171 123 217 168 156 197 171 123 217 168 156
++197 171 123 217 168 156 177 169 143 217 168 156 197 171 123 177 169 143 177 169 143 177 169 143
++146 151 137 166 156 164 188 180 202 185 202 202 201 216 228 194 199 226 185 202 202 201 216 228
++201 216 228 201 216 228 208 221 247 221 238 247 231 239 247 221 238 247 226 221 247 226 221 247
++201 216 228 201 216 228 201 216 228 221 238 247 231 239 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 240 251 247 235 238 247 240 251 247 235 238 247 240 251 247 240 251 247
++240 251 247 240 251 247 251 251 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 246 237 247 240 251 247
++251 251 247 240 251 247 240 251 247 246 237 247 240 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 240 251 247 246 237 247 251 251 247 240 251 247 240 251 247 240 251 247 240 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 240 251 247
++221 238 247 201 216 228 188 180 202 185 202 202 194 199 226 201 216 228 201 216 228 226 221 247
++221 238 247 231 239 247 235 238 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 221 238 247 233 241 227 232 215 228 226 221 247 231 239 247 231 239 247 231 239 247
++221 238 247 233 241 227 231 239 247 235 238 247 246 237 247 240 251 247 251 251 247 240 251 247
++240 251 247 246 237 247 251 251 247 251 251 247 233 241 227 233 241 227 225 222 201 225 222 201
++222 171 182 225 222 201 214 214 134 222 171 182 208 215 180 217 168 156 214 214 134 222 171 182
++214 214 134 217 168 156 222 171 182 214 214 134 217 168 156 208 215 180 222 171 182 214 214 134
++217 168 156 208 215 180 222 171 182 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156
++208 215 180 217 168 156 217 168 156 208 215 180 217 168 156 214 214 134 217 168 156 217 168 156
++222 171 182 217 168 156 208 215 180 217 168 156 217 168 156 214 214 134 217 168 156 189 165 168
++217 168 156 189 165 168 214 214 134 189 165 168 214 214 134 217 168 156 177 169 143 217 168 156
++177 169 143 217 168 156 189 165 168 217 168 156 217 168 156 197 171 123 217 168 156 217 168 156
++177 169 143 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 189 165 168 214 214 134
++189 165 168 214 214 134 217 168 156 217 168 156 208 215 180 217 168 156 217 168 156 217 168 156
++217 168 156 217 168 156 217 168 156 208 215 180 217 168 156 217 168 156 214 214 134 217 168 156
++208 215 180 208 215 180 222 171 182 208 215 180 217 168 156 222 171 182 217 168 156 189 165 168
++177 169 143 217 168 156 189 165 168 217 168 156 217 168 156 217 168 156 217 168 156 189 165 168
++214 214 134 217 168 156 217 168 156 177 169 143 217 168 156 177 169 143 217 168 156 217 168 156
++217 168 156 217 168 156 197 171 123 168 146 127 201 146 124 168 146 127 168 146 127 168 102 88
++168 102 88 101 83 74 76 46 20 49 13 16 49 13 16 52 30 15 34 30 15 52 30 15
++52 30 35 33 30 30 52 30 35 33 30 30 52 30 35 53 35 37 55 39 37 53 35 37
++53 35 37 47 39 42 53 35 37 53 35 37 47 39 42 53 35 37 55 39 37 55 39 37
++55 39 37 62 47 47 88 73 31 88 73 62 101 83 74 101 83 74 120 63 71 117 99 86
++88 73 62 63 55 45 55 39 37 52 30 35 47 39 42 55 39 37 53 46 48 51 49 42
++47 44 42 55 39 37 53 46 48 51 49 42 47 44 42 47 39 42 51 49 42 55 39 37
++47 44 42 47 44 42 47 44 42 55 39 37 36 35 37 53 35 37 36 35 37 47 47 21
++36 35 37 55 39 37 36 35 37 53 35 37 36 35 37 42 41 42 36 35 37 42 41 42
++36 35 37 55 39 37 33 30 30 36 35 37 47 47 21 42 41 42 55 39 37 36 35 37
++47 39 42 33 30 30 36 35 37 36 35 37 36 35 37 36 35 37 33 30 32 33 30 30
++33 30 30 33 30 30 26 24 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 32
++33 30 32 36 35 37 31 35 35 33 30 32 36 35 37 36 35 37 42 38 42 42 41 42
++42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 53 46 48 53 46 48
++53 46 48 53 46 48 55 55 48 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 59 57 61 59 57 61 59 57 61 59 57 61 59 57 61 59 57 61
++65 63 61 59 57 61 65 63 61 53 63 61 59 57 61 54 57 61 54 57 61 54 57 61
++54 57 61 54 57 61 54 57 61 45 57 61 48 44 48 54 57 61 59 55 55 54 57 61
++59 55 55 59 55 55 54 57 61 59 55 55 54 57 61 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 53 46 48 53 46 48 51 49 42 48 44 48 47 49 42 48 44 48
++53 46 48 48 44 48 48 44 48 53 46 48 48 44 48 48 44 48 48 44 48 47 39 42
++47 39 42 47 44 42 55 39 37 47 44 42 53 46 48 53 46 48 55 39 37 53 46 48
++53 46 48 53 46 48 62 47 47 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51
++65 55 54 63 55 45 65 55 54 75 56 53 63 55 45 63 55 51 63 55 51 59 55 55
++55 55 48 59 55 55 55 55 48 52 55 48 48 50 48 48 50 48 51 49 42 47 44 42
++47 44 42 42 47 42 42 41 42 36 35 37 36 35 37 36 35 37 31 35 35 36 35 37
++31 35 35 36 35 37 36 35 37 36 35 37 36 35 37 33 39 38 36 35 37 42 41 42
++42 41 42 47 44 42 47 49 42 47 44 42 47 44 42 51 49 42 51 49 42 53 46 48
++51 49 42 55 55 48 53 46 48 55 55 48 53 46 48 53 46 48 53 46 48 47 49 42
++47 44 42 47 44 42 42 41 42 42 41 42 36 35 37 42 41 42 42 41 42 42 41 42
++42 41 42 33 39 38 42 41 42 33 39 38 42 41 42 47 44 42 47 44 42 47 44 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 47 44 42 42 41 42 47 39 42
++
++15 17 7 17 12 17 26 12 13 14 16 17 23 10 10 17 12 17 17 12 17 7 12 13
++13 4 7 17 12 17 13 4 7 7 12 13 17 12 17 7 12 13 7 12 13 17 12 17
++3 4 9 7 12 13 3 4 9 7 10 17 7 12 13 13 4 7 7 10 17 7 10 17
++13 4 7 7 12 13 7 10 17 17 12 17 7 10 17 17 12 17 17 12 17 7 10 17
++17 12 17 17 12 17 14 16 17 17 12 17 17 12 17 14 16 17 17 12 17 23 18 22
++14 16 17 17 12 17 17 12 17 17 12 17 17 12 17 23 18 22 23 18 22 14 16 17
++23 18 22 23 18 22 17 12 17 23 18 22 14 16 17 23 18 22 23 18 22 23 20 24
++23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 33 30 30 33 30 30
++33 30 32 36 35 37 42 38 42 42 41 42 47 44 42 47 44 42 48 50 48 48 44 48
++54 57 61 48 50 48 57 43 64 45 57 61 54 57 61 54 57 61 54 57 61 54 57 61
++54 57 61 54 57 61 59 55 55 59 55 55 63 55 51 65 55 54 65 55 54 65 57 61
++65 57 61 65 63 61 65 57 61 65 57 61 65 57 61 65 57 61 65 57 61 59 55 55
++59 55 55 57 43 51 53 46 48 48 44 48 47 44 42 42 41 42 42 41 42 36 35 37
++36 35 37 47 47 21 36 35 37 52 30 35 32 39 24 36 35 37 33 30 32 36 35 37
++33 30 30 36 35 37 36 35 37 33 30 30 53 35 37 36 35 37 52 30 35 32 39 24
++53 35 37 36 35 37 52 30 35 47 47 21 52 30 35 36 35 37 53 35 17 52 30 35
++42 38 42 55 39 37 42 41 42 53 35 37 42 41 42 55 39 37 47 39 42 55 39 37
++55 39 37 53 46 48 55 39 37 53 46 48 51 49 42 53 46 48 51 49 42 60 49 42
++60 49 42 55 55 48 63 55 51 65 55 54 75 56 53 65 63 61 64 70 48 75 56 53
++75 73 58 65 63 61 75 73 58 65 63 61 75 73 58 65 63 61 65 55 54 64 70 48
++59 55 55 55 55 48 55 55 48 51 49 42 47 49 42 47 44 42 42 41 42 36 35 37
++36 35 37 33 30 30 33 30 32 33 30 30 23 20 24 26 30 28 26 30 28 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 26 25 15 23 20 24 22 25 24
++22 25 24 26 25 15 23 20 24 22 25 24 26 25 15 22 25 24 33 30 30 28 13 18
++33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 36 35 37 33 30 30 53 35 37
++33 30 30 53 35 37 36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 32 39 24 52 30 35 36 35 37 33 30 30 36 35 37 33 30 30 33 30 32
++33 30 32 33 30 32 33 30 32 33 30 30 33 30 30 33 30 30 23 20 24 33 30 30
++23 20 24 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++36 35 37 36 35 37 36 35 37 53 35 17 36 35 37 52 30 35 47 47 21 52 30 35
++47 39 42 36 35 37 53 35 37 53 35 37 36 35 37 55 39 37 36 35 37 47 47 21
++42 38 42 36 35 37 36 35 37 53 35 37 36 35 37 32 39 24 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 23 20 24 33 30 30 23 20 24 23 20 24 22 25 24
++12 18 20 34 40 43 94 105 108 166 174 181 226 221 247 221 238 247 201 216 228 188 180 202
++150 168 183 129 144 153 166 174 181 231 239 247 251 251 247 251 251 247 232 215 228 166 156 164
++141 116 139 163 117 123 168 102 88 167 63 71 120 63 71 122 49 24 161 55 23 167 63 71
++161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 161 55 23
++122 49 24 167 63 71 161 55 23 167 63 71 195 113 123 195 113 123 227 171 124 201 146 124
++197 171 123 217 168 156 197 171 123 197 171 123 201 146 124 177 171 115 201 146 124 197 171 123
++197 171 123 217 168 156 197 171 123 217 168 156 197 171 123 217 168 156 197 171 123 177 169 143
++217 168 156 197 171 123 217 168 156 197 171 123 177 169 143 197 171 123 177 169 143 166 156 164
++177 169 143 166 156 164 166 156 164 188 180 202 194 199 226 201 216 228 194 199 226 185 202 202
++185 202 202 188 180 202 185 202 202 185 202 202 194 199 226 208 221 247 208 221 247 201 216 228
++201 216 228 232 215 228 208 221 247 231 239 247 231 239 247 231 239 247 231 239 247 240 251 247
++240 251 247 231 239 247 240 251 247 240 251 247 246 237 247 240 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 240 251 247
++251 251 247 246 237 247 251 251 247 240 251 247 251 251 247 251 251 247 251 251 247 240 251 247
++240 251 247 251 251 247 240 251 247 251 251 247 246 237 247 251 251 247 246 237 247 251 251 247
++240 251 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 240 251 247 231 239 247 201 216 228
++201 216 228 194 199 226 194 199 226 194 199 226 201 216 228 226 221 247 226 221 247 221 238 247
++221 238 247 231 239 247 231 239 247 235 238 247 240 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 246 237 247 226 221 247 233 241 227 221 238 247 231 239 247 231 239 247 231 239 247
++231 239 247 221 238 247 231 239 247 231 239 247 235 238 247 240 251 247 246 237 247 240 251 247
++251 251 247 251 251 247 251 251 247 246 237 247 251 251 247 233 241 227 233 241 227 225 222 201
++225 222 201 214 214 134 225 222 201 222 171 182 214 214 134 217 168 156 217 168 156 217 168 156
++208 215 180 217 168 156 214 214 134 222 171 182 217 168 156 208 215 180 217 168 156 222 171 182
++217 168 156 214 214 134 217 168 156 208 215 180 217 168 156 217 168 156 208 215 180 217 168 156
++214 214 134 222 171 182 214 214 134 222 171 182 217 168 156 217 168 156 208 215 180 217 168 156
++214 214 134 217 168 156 217 168 156 217 168 156 208 215 180 217 168 156 189 165 168 214 214 134
++222 171 182 217 168 156 217 168 156 208 215 180 217 168 156 189 165 168 214 214 134 217 168 156
++217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 189 165 168 217 168 156 197 171 123
++217 168 156 217 168 156 214 214 134 189 165 168 214 214 134 189 165 168 214 214 134 189 165 168
++217 168 156 222 171 182 208 215 180 197 171 123 217 168 156 189 165 168 214 214 134 217 168 156
++208 215 180 217 168 156 214 214 134 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156
++217 168 156 217 168 156 217 168 156 217 168 156 208 215 180 217 168 156 208 215 180 222 171 182
++208 215 180 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 217 168 156 217 168 156
++189 165 168 217 168 156 214 214 134 217 168 156 217 168 156 217 168 156 214 214 134 189 165 168
++177 169 143 217 168 156 177 169 143 201 146 124 168 146 127 168 102 88 138 126 108 168 102 88
++101 83 74 88 73 62 88 44 51 55 39 37 60 49 42 55 39 18 55 39 37 53 35 37
++52 30 35 36 35 37 55 39 37 47 39 42 47 39 42 42 38 42 42 41 42 42 41 42
++47 44 42 48 44 48 42 41 42 33 39 38 36 35 37 32 39 24 52 30 35 34 30 15
++52 30 35 53 35 17 53 35 37 55 39 37 76 46 20 62 47 47 60 49 42 59 36 42
++55 39 37 55 39 18 55 39 37 55 39 37 51 49 42 51 49 42 53 46 48 60 49 42
++53 46 48 53 46 48 53 46 48 60 49 42 53 46 48 62 47 47 60 49 42 53 46 48
++51 49 42 51 49 42 47 44 42 47 44 42 47 44 42 42 41 42 33 30 30 33 30 30
++33 30 30 36 35 37 47 47 21 42 41 42 47 47 21 42 41 42 42 41 42 47 47 21
++47 39 42 36 35 37 47 47 21 47 39 42 47 39 42 47 39 42 36 35 37 36 35 37
++32 39 24 42 38 42 32 39 24 47 39 42 36 35 37 36 35 37 36 35 37 33 30 30
++33 30 30 31 35 35 33 30 30 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 41 42 42 41 42
++42 41 42 47 44 42 47 39 42 47 44 42 47 44 42 53 46 48 53 46 48 53 46 48
++55 55 48 55 55 48 59 55 55 59 55 55 59 55 55 59 55 55 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 59 69 70 75 72 67 65 63 61
++59 69 70 75 72 67 59 69 70 63 59 71 59 69 70 59 69 70 59 69 70 63 59 71
++59 69 70 63 59 71 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 59 55 55
++52 55 48 54 57 61 55 55 48 59 55 55 59 55 55 59 55 55 52 55 48 59 55 55
++55 55 48 55 55 48 55 55 48 53 46 48 51 49 42 47 49 42 47 49 42 53 46 48
++53 46 48 48 44 48 53 46 48 48 44 48 48 44 48 48 44 48 48 44 48 47 44 42
++47 39 42 47 44 42 47 44 42 53 46 48 55 39 37 47 44 42 53 46 48 53 46 48
++53 46 48 53 46 48 62 47 47 55 55 48 62 47 47 63 55 51 63 55 51 65 55 54
++63 55 51 64 70 48 75 56 53 64 70 48 63 55 51 64 70 48 63 55 51 53 63 61
++50 61 48 63 55 51 55 55 48 52 55 48 52 55 48 48 50 48 48 50 48 47 49 42
++47 44 42 42 41 42 36 35 37 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37
++33 30 30 33 39 38 32 39 24 42 47 42 36 35 37 42 47 42 42 47 42 42 41 42
++47 44 42 47 44 42 42 47 42 47 49 42 47 49 42 48 50 48 53 46 48 51 49 42
++53 46 48 55 55 48 53 46 48 55 55 48 53 46 48 53 46 48 48 50 48 48 44 48
++47 44 42 47 44 42 47 44 42 42 41 42 47 44 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 47 42 48 44 48 42 41 42
++47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 47 39 42 42 38 42
++
++26 12 13 15 17 7 23 10 10 15 17 7 17 12 17 15 17 7 13 4 7 15 17 7
++17 12 17 7 12 13 7 12 13 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13
++13 4 7 3 4 9 7 10 17 13 4 7 7 10 17 7 10 17 13 4 7 7 12 13
++7 10 17 13 4 7 7 10 17 3 4 9 17 12 17 7 10 17 17 12 17 14 16 17
++17 12 17 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17 23 18 22 14 16 17
++23 18 22 23 18 22 23 18 22 14 16 17 23 18 22 14 16 17 23 18 22 14 16 17
++23 18 22 14 16 17 23 18 22 23 18 22 23 18 22 15 22 17 23 18 22 23 18 22
++23 18 22 23 20 24 23 20 24 23 20 24 23 20 24 26 30 28 22 25 24 33 30 30
++33 30 32 33 30 32 36 35 37 42 38 42 42 41 42 43 42 50 48 44 48 48 50 48
++43 42 50 45 57 61 48 50 48 48 50 48 48 44 48 48 44 48 54 57 61 57 43 51
++54 57 61 52 55 48 59 55 55 53 46 48 55 55 48 59 55 55 59 55 55 59 55 55
++65 57 61 59 57 61 65 57 61 59 57 61 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 53 46 48 53 46 48 47 44 42 42 41 42 42 41 42 36 35 37 53 35 37
++36 35 37 36 35 37 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30
++52 30 35 33 30 30 52 30 35 36 35 37 33 30 30 52 30 35 33 30 30 52 30 35
++33 30 30 52 30 35 36 35 37 33 30 30 52 30 35 36 35 37 52 30 35 33 30 30
++53 35 37 32 39 24 53 35 37 36 35 37 47 47 21 42 41 42 55 39 37 47 44 42
++47 39 42 55 39 37 47 44 42 51 49 42 47 44 42 55 39 37 51 49 42 53 46 48
++60 49 42 63 55 45 63 55 51 65 55 54 64 70 48 65 55 54 75 56 53 64 70 48
++75 56 53 75 73 58 75 63 62 75 73 58 65 55 54 64 70 48 65 55 54 59 55 55
++59 55 55 55 55 48 52 55 48 51 49 42 47 44 42 42 41 42 42 38 42 36 35 37
++33 30 32 33 30 32 33 30 30 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30
++22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 26 25 15 22 25 24
++26 25 15 26 24 32 26 25 15 23 20 24 26 25 15 23 20 24 26 25 15 33 30 30
++28 13 18 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 36 35 37
++47 47 21 36 35 37 32 39 24 42 38 42 32 39 24 53 35 37 36 35 37 32 39 24
++52 30 35 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37 33 30 32 33 30 32
++33 30 36 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 23 20 24
++33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30
++36 35 37 47 47 21 36 35 37 36 35 37 33 30 30 52 30 35 36 35 37 53 35 37
++36 35 37 53 35 37 55 39 37 36 35 37 53 35 37 47 47 21 42 38 42 53 35 37
++32 39 24 53 35 37 36 35 37 47 47 21 36 35 37 33 30 30 52 30 35 33 30 30
++23 20 24 33 30 30 23 20 24 26 30 28 33 30 30 22 25 24 22 25 24 23 20 24
++7 10 17 59 57 61 122 134 144 166 174 181 201 216 228 226 221 247 240 251 247 231 239 247
++231 239 247 232 215 228 226 221 247 251 251 247 246 237 247 232 215 228 150 144 154 120 63 71
++88 44 51 102 33 26 120 63 71 102 33 26 102 33 26 161 55 23 167 63 71 161 55 23
++167 63 71 161 55 23 167 63 71 161 55 23 161 55 23 161 55 23 161 55 23 167 63 71
++161 55 23 167 63 71 167 63 71 195 113 123 201 146 124 217 168 156 201 146 124 217 168 156
++197 171 123 201 146 124 197 171 123 201 146 124 197 171 123 201 146 124 197 171 123 197 171 123
++197 171 123 197 171 123 217 168 156 197 171 123 217 168 156 177 169 143 214 214 134 217 168 156
++197 171 123 217 168 156 214 214 134 217 168 156 177 169 143 201 146 124 177 169 143 168 146 127
++166 156 164 145 140 145 111 119 127 122 134 144 188 180 202 201 216 228 232 215 228 194 199 226
++185 202 202 188 180 202 166 176 200 166 174 181 166 176 200 185 202 202 194 199 226 201 216 228
++208 221 247 201 216 228 226 221 247 221 238 247 231 239 247 221 238 247 231 239 247 231 239 247
++231 239 247 235 238 247 240 251 247 246 237 247 240 251 247 251 251 247 246 237 247 240 251 247
++251 251 247 240 251 247 251 251 247 233 241 227 246 237 247 233 241 227 246 237 247 233 241 227
++246 237 247 240 251 247 233 241 227 246 237 247 246 237 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 240 251 247 251 251 247 246 237 247 240 251 247 251 251 247
++246 237 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 251 251 247
++240 251 247 251 251 247 251 251 247 251 251 247 231 239 247 232 215 228 201 216 228 185 202 202
++194 199 226 194 199 226 201 216 228 208 221 247 221 238 247 226 221 247 221 238 247 221 238 247
++231 239 247 235 238 247 240 251 247 240 251 247 240 251 247 240 251 247 251 251 247 251 251 247
++251 251 247 240 251 247 231 239 247 232 215 228 221 238 247 221 238 247 231 239 247 221 238 247
++231 239 247 231 239 247 231 239 247 235 238 247 235 238 247 235 238 247 235 238 247 240 251 247
++246 237 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 233 241 227 225 222 201
++225 222 201 225 222 201 222 171 182 208 215 180 189 165 168 217 168 156 177 169 143 217 168 156
++217 168 156 217 168 156 217 168 156 217 168 156 214 214 134 217 168 156 208 215 180 217 168 156
++208 215 180 217 168 156 222 171 182 214 214 134 217 168 156 208 215 180 217 168 156 217 168 156
++208 215 180 217 168 156 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 217 168 156
++217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 217 168 156 208 215 180 217 168 156
++177 169 143 208 215 180 217 168 156 189 165 168 214 214 134 217 168 156 189 165 168 217 168 156
++189 165 168 214 214 134 217 168 156 197 171 123 189 165 168 214 214 134 217 168 156 208 215 180
++217 168 156 208 215 180 189 165 168 217 168 156 189 165 168 217 168 156 217 168 156 217 168 156
++208 215 180 217 168 156 217 168 156 189 165 168 214 214 134 217 168 156 189 165 168 217 168 156
++217 168 156 217 168 156 217 168 156 217 168 156 214 214 134 217 168 156 208 215 180 217 168 156
++214 214 134 217 168 156 208 215 180 217 168 156 217 168 156 217 168 156 214 214 134 217 168 156
++217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 189 165 168 214 214 134 189 165 168
++214 214 134 217 168 156 189 165 168 217 168 156 177 169 143 217 168 156 189 165 168 217 168 156
++217 168 156 197 171 123 217 168 156 217 168 156 197 171 123 201 146 124 168 146 127 163 117 123
++138 126 108 168 102 88 138 126 108 138 102 108 138 126 108 117 99 86 117 99 86 101 83 74
++75 56 53 55 39 37 55 39 37 51 49 42 53 46 48 47 44 42 53 46 48 47 44 42
++48 44 48 47 44 42 47 44 42 42 41 42 47 39 42 47 39 42 47 44 42 55 39 37
++32 39 24 52 30 35 52 30 35 53 35 17 53 35 37 52 30 35 52 30 15 52 30 35
++53 35 17 53 35 37 55 39 37 55 39 37 55 39 37 51 49 42 62 47 47 53 46 48
++63 55 45 63 55 51 62 47 47 62 47 47 55 55 48 62 47 47 62 47 47 62 47 47
++60 49 42 51 49 42 55 39 37 47 44 42 53 35 37 47 47 21 55 39 37 55 39 37
++51 49 42 53 35 37 53 35 37 36 35 37 52 30 35 32 39 24 36 35 37 36 35 37
++47 47 21 36 35 37 36 35 37 47 39 42 36 35 37 53 35 37 32 39 24 36 35 37
++52 30 35 36 35 37 42 38 42 33 30 30 36 35 37 36 35 37 42 41 42 36 35 37
++33 30 30 36 35 37 36 35 37 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32
++36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 42 38 42 42 41 42
++42 41 42 42 41 42 47 44 42 51 49 42 53 46 48 53 46 48 53 46 48 55 55 48
++57 43 51 59 55 55 59 55 55 59 55 55 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 75 64 82 75 72 67 75 72 67 75 72 67 75 72 67
++59 69 70 75 64 82 75 81 76 75 72 67 59 69 70 75 72 67 59 69 70 59 69 70
++63 59 71 59 69 70 59 69 70 63 59 71 63 59 71 59 57 61 54 57 61 54 57 61
++59 55 55 52 55 48 54 57 61 59 55 55 54 57 61 59 55 55 59 55 55 52 55 48
++59 55 55 57 43 51 55 55 48 53 46 48 48 50 48 48 50 48 48 50 48 53 46 48
++53 46 48 48 44 48 57 43 64 48 44 48 53 46 48 48 44 48 48 44 48 48 44 48
++47 44 42 47 39 42 47 39 42 47 44 42 47 39 42 53 46 48 53 46 48 47 39 42
++51 49 42 53 46 48 62 47 47 53 46 48 62 47 47 55 55 48 63 55 51 63 55 51
++63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 59 55 55 64 70 48
++59 55 55 59 55 55 59 55 55 55 55 48 53 46 48 52 55 48 53 46 48 47 49 42
++47 44 42 42 47 42 36 35 37 42 41 42 36 35 37 42 41 42 36 35 37 36 35 37
++36 35 37 36 35 37 42 41 42 36 35 37 42 41 42 42 41 42 36 35 37 42 41 42
++47 44 42 42 41 42 47 44 42 47 49 42 48 50 48 53 46 48 51 49 42 53 46 48
++55 55 48 53 46 48 60 49 42 53 46 48 52 55 48 53 46 48 53 46 48 48 50 48
++48 50 48 48 50 48 47 44 42 47 44 42 47 44 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 47 42 42 41 42 42 41 42 47 44 42 42 41 42
++42 41 42 47 44 42 42 41 42 42 41 42 42 38 42 42 38 42 42 38 42 42 38 42
++
++17 12 17 17 12 17 17 12 17 23 10 10 17 12 17 15 17 7 17 12 17 7 12 13
++13 4 7 7 12 13 17 12 17 13 4 7 7 12 13 7 12 13 7 12 13 13 4 7
++7 10 17 3 4 9 13 4 7 7 10 17 7 12 13 13 4 7 7 10 17 7 10 17
++17 12 17 7 10 17 7 12 13 13 4 7 7 10 17 17 12 17 7 10 17 14 16 17
++17 12 17 14 16 17 14 16 17 17 12 17 14 16 17 23 18 22 14 16 17 23 18 22
++23 18 22 14 16 17 23 18 22 14 16 17 23 18 22 23 18 22 23 18 22 23 18 22
++23 18 22 23 18 22 23 18 22 22 24 13 23 20 24 23 20 24 23 20 24 23 18 22
++22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 33 30 30 23 20 24 33 30 30
++33 30 30 33 30 32 36 35 37 36 35 37 42 41 42 42 41 42 43 42 50 43 42 50
++43 42 50 48 44 48 43 42 50 43 42 50 43 42 50 43 42 50 48 44 48 43 42 50
++48 50 48 48 50 48 48 50 48 57 43 51 59 55 55 53 46 48 59 55 55 59 55 55
++59 55 55 53 46 48 59 55 55 53 46 48 59 55 55 59 55 55 57 43 51 53 46 48
++53 46 48 48 44 48 47 39 42 42 38 42 42 41 42 32 39 24 36 35 37 32 39 24
++36 35 37 33 30 30 33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 32 39 24 33 30 30 52 30 35
++33 30 30 52 30 35 32 39 24 52 30 35 32 39 24 33 30 30 36 35 37 32 39 24
++36 35 37 36 35 37 52 30 35 36 35 37 36 35 37 52 30 35 36 35 37 55 39 37
++47 39 42 55 39 37 47 39 42 55 39 37 47 44 42 55 39 37 51 49 42 60 49 42
++55 55 48 62 47 47 63 55 51 63 55 51 65 55 54 65 63 61 75 56 53 64 70 48
++75 56 53 65 63 61 75 73 58 65 55 54 65 63 61 65 55 54 65 55 54 63 55 51
++63 55 51 55 55 48 53 46 48 47 44 42 47 44 42 42 41 42 36 35 37 36 35 37
++33 30 32 33 30 32 26 30 28 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24
++23 20 24 23 20 24 26 25 15 23 20 24 23 20 24 22 25 24 22 25 24 26 30 28
++23 20 24 26 25 15 22 25 24 33 30 30 22 25 24 26 30 28 23 20 24 26 25 15
++33 30 30 33 30 30 33 30 30 52 30 35 36 35 37 52 30 35 36 35 37 52 30 35
++36 35 37 32 39 24 53 35 37 36 35 37 52 30 35 32 39 24 36 35 37 36 35 37
++33 30 30 36 35 37 36 35 37 33 30 30 36 35 37 33 30 30 33 30 32 33 30 32
++36 35 37 33 30 32 33 30 32 33 30 30 26 24 32 33 30 30 23 20 24 33 30 30
++33 30 30 26 25 15 33 30 30 26 24 32 33 30 30 33 30 30 33 30 30 52 30 35
++32 39 24 36 35 37 36 35 37 53 35 37 32 39 24 53 35 37 36 35 37 52 30 35
++47 47 21 52 30 35 36 35 37 55 39 37 36 35 37 53 35 37 36 35 37 36 35 37
++53 35 37 36 35 37 53 35 37 36 35 37 36 35 37 33 30 30 36 35 37 33 30 30
++33 30 30 23 20 24 26 24 32 23 20 24 22 25 24 22 25 24 23 20 24 23 20 24
++23 20 24 95 91 100 166 174 181 150 144 154 166 156 164 201 216 228 251 251 247 246 237 247
++185 202 202 188 180 202 232 215 228 232 215 228 222 171 182 168 102 88 120 63 71 102 33 26
++122 49 24 102 33 26 161 55 23 161 55 23 167 63 71 161 55 23 102 33 26 161 55 23
++122 49 24 161 55 23 122 49 24 161 55 23 102 33 26 167 63 71 102 33 26 167 63 71
++167 63 71 168 102 88 201 146 124 217 168 156 201 146 124 201 146 124 197 171 123 197 171 123
++197 171 123 197 171 123 197 171 123 197 171 123 197 171 123 197 171 123 217 168 156 197 171 123
++217 168 156 177 169 143 197 171 123 217 168 156 197 171 123 217 168 156 197 171 123 217 168 156
++177 169 143 217 168 156 177 169 143 197 171 123 217 168 156 177 169 143 168 146 127 168 146 127
++168 146 127 112 96 108 59 69 70 54 57 61 95 108 128 188 180 202 208 221 247 221 238 247
++201 216 228 194 199 226 185 202 202 188 180 202 166 176 200 188 180 202 166 176 200 185 202 202
++194 199 226 201 216 228 221 238 247 231 239 247 231 239 247 231 239 247 231 239 247 240 251 247
++231 239 247 240 251 247 240 251 247 240 251 247 251 251 247 246 237 247 233 241 227 233 241 227
++225 222 201 225 222 201 208 215 180 208 215 180 208 215 180 208 215 180 225 222 201 225 222 201
++225 222 201 225 222 201 225 222 201 225 222 201 225 222 201 233 241 227 233 241 227 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 240 251 247 246 237 247 251 251 247
++240 251 247 251 251 247 246 237 247 240 251 247 251 251 247 246 237 247 240 251 247 251 251 247
++251 251 247 240 251 247 240 251 247 235 238 247 226 221 247 201 216 228 194 199 226 194 199 226
++201 216 228 226 221 247 221 238 247 231 239 247 231 239 247 221 238 247 226 221 247 221 238 247
++231 239 247 240 251 247 240 251 247 240 251 247 235 238 247 231 239 247 235 238 247 251 251 247
++251 251 247 251 251 247 231 239 247 221 238 247 221 238 247 226 221 247 221 238 247 231 239 247
++231 239 247 231 239 247 231 239 247 235 238 247 240 251 247 235 238 247 246 237 247 240 251 247
++240 251 247 240 251 247 246 237 247 240 251 247 251 251 247 251 251 247 251 251 247 233 241 227
++225 222 201 222 171 182 208 215 180 217 168 156 197 171 123 177 169 143 177 169 143 177 169 143
++217 168 156 177 169 143 208 215 180 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156
++208 215 180 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 208 215 180 217 168 156
++217 168 156 208 215 180 217 168 156 217 168 156 208 215 180 217 168 156 217 168 156 208 215 180
++189 165 168 217 168 156 208 215 180 217 168 156 189 165 168 214 214 134 217 168 156 217 168 156
++208 215 180 217 168 156 217 168 156 214 214 134 189 165 168 217 168 156 217 168 156 177 169 143
++214 214 134 189 165 168 217 168 156 217 168 156 217 168 156 189 165 168 217 168 156 177 169 143
++217 168 156 197 171 123 217 168 156 214 214 134 189 165 168 214 214 134 189 165 168 217 168 156
++177 169 143 217 168 156 177 169 143 217 168 156 217 168 156 189 165 168 214 214 134 217 168 156
++214 214 134 189 165 168 214 214 134 189 165 168 217 168 156 217 168 156 217 168 156 217 168 156
++208 215 180 217 168 156 217 168 156 217 168 156 214 214 134 189 165 168 217 168 156 217 168 156
++217 168 156 177 169 143 217 168 156 177 169 143 217 168 156 217 168 156 217 168 156 217 168 156
++189 165 168 217 168 156 217 168 156 208 215 180 217 168 156 217 168 156 217 168 156 177 169 143
++217 168 156 177 169 143 217 168 156 189 165 168 217 168 156 217 168 156 197 171 123 217 168 156
++217 168 156 217 168 156 177 169 143 217 168 156 177 169 143 217 168 156 168 146 127 168 146 127
++117 99 86 88 73 62 55 39 37 51 49 42 55 39 37 53 46 48 53 46 48 53 46 48
++48 44 48 48 44 48 42 47 42 42 41 42 42 38 42 42 41 42 47 44 42 42 41 42
++47 44 42 42 41 42 36 35 37 47 39 42 55 39 37 55 39 37 47 39 42 53 35 37
++47 39 42 55 39 37 47 39 42 51 49 42 60 49 42 62 47 47 62 47 47 60 49 42
++62 47 47 62 47 47 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 62 47 47
++60 49 42 62 47 47 60 49 42 60 49 42 60 49 42 62 47 47 88 73 62 101 83 74
++101 83 74 75 56 53 55 39 37 55 39 18 52 30 35 32 39 24 53 35 17 52 30 35
++36 35 37 53 35 37 47 47 21 36 35 37 47 47 21 36 35 37 53 35 37 32 39 24
++47 39 42 47 47 21 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 42 41 42 42 41 42 42 41 42
++42 41 42 47 44 42 47 44 42 51 49 42 53 46 48 53 46 48 55 55 48 59 55 55
++59 55 55 59 55 55 65 55 54 65 57 61 65 63 61 65 63 61 65 63 61 75 63 62
++75 72 67 75 72 67 75 72 67 75 72 67 75 64 82 60 81 83 75 64 82 75 81 76
++75 64 82 75 81 76 59 69 70 75 64 82 75 81 82 75 64 82 75 81 76 59 69 70
++59 69 70 59 69 70 63 59 71 53 63 61 59 69 70 59 57 61 59 57 61 59 55 55
++54 57 61 54 57 61 59 57 61 59 57 61 54 57 61 59 55 55 52 55 48 54 57 61
++48 50 48 59 55 55 48 50 48 53 46 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 43 42 50 48 50 48 43 42 50 57 43 64 48 44 48 48 44 48 43 42 50
++48 44 48 47 39 42 48 44 48 48 44 48 48 44 48 47 44 42 47 44 42 53 46 48
++47 44 42 53 46 48 53 46 48 55 55 48 55 55 48 59 55 55 55 55 48 63 55 51
++63 55 51 65 55 54 65 63 61 63 55 51 65 63 61 63 55 51 59 55 55 59 55 55
++59 55 55 59 55 55 50 61 48 59 55 55 55 55 48 52 55 48 51 49 42 47 44 42
++47 44 42 42 41 42 42 41 42 42 38 42 36 35 37 42 38 42 36 35 37 33 39 38
++36 35 37 33 39 38 42 41 42 42 41 42 33 39 38 42 41 42 42 47 42 47 44 42
++42 41 42 47 44 42 47 44 42 48 50 48 48 50 48 53 46 48 60 49 42 53 46 48
++60 49 42 55 55 48 55 55 48 53 46 48 55 55 48 53 46 48 55 55 48 48 50 48
++48 50 48 48 44 48 47 44 42 48 44 48 42 41 42 42 47 42 42 47 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 47 42 42 41 42 42 41 42 42 41 42
++47 44 42 42 41 42 42 41 42 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37
++
++23 10 10 23 10 10 15 17 7 17 12 17 15 17 7 17 12 17 13 4 7 7 12 13
++13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13
++3 4 9 7 10 17 13 4 7 7 12 13 3 4 9 7 12 13 7 10 17 17 12 17
++7 10 17 13 4 7 7 10 17 17 12 17 7 10 17 17 12 17 14 16 17 17 12 17
++7 10 17 17 12 17 14 16 17 23 18 22 14 16 17 23 18 22 14 16 17 23 18 22
++23 18 22 23 20 24 23 18 22 23 18 22 23 18 22 12 18 20 23 18 22 23 18 22
++12 18 20 23 18 22 23 18 22 23 20 24 23 18 22 22 25 24 23 18 22 23 18 22
++23 18 22 23 20 24 23 18 22 33 30 30 22 25 24 23 20 24 22 25 24 26 24 32
++33 30 30 33 30 32 33 30 32 33 30 32 36 35 37 36 35 37 42 38 42 42 41 42
++43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50
++43 42 50 43 42 50 48 50 48 48 44 48 53 46 48 53 46 48 53 46 48 53 46 48
++53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48
++48 44 48 47 39 42 47 39 42 36 35 37 47 39 42 36 35 37 36 35 37 52 30 35
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30
++53 35 17 33 30 30 33 30 30 52 30 35 33 30 30 52 30 35 33 30 30 36 35 37
++53 35 17 36 35 37 32 39 24 52 30 35 32 39 24 36 35 37 47 47 21 47 39 42
++55 39 37 42 41 42 55 39 37 47 44 42 55 39 37 47 44 42 60 49 42 53 46 48
++60 49 42 63 55 45 63 55 51 63 55 51 65 55 54 75 56 53 64 70 48 75 56 53
++75 56 53 64 70 48 75 56 53 75 73 58 63 55 51 64 70 48 65 63 61 63 55 51
++55 55 48 53 46 48 51 49 42 47 44 42 55 39 37 42 38 42 36 35 37 33 30 32
++33 30 32 33 30 30 26 30 28 26 30 28 23 20 24 26 30 28 23 20 24 33 30 30
++22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 26 25 15 26 25 15
++26 30 28 23 20 24 26 30 28 26 25 15 23 20 24 26 25 15 33 30 30 26 24 32
++34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 33 30 30
++32 39 24 36 35 37 36 35 37 47 47 21 36 35 37 47 39 42 33 30 30 52 30 35
++33 30 30 36 35 37 33 30 30 52 30 35 33 30 32 36 35 37 33 30 32 33 30 32
++33 30 32 33 30 32 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 23 20 24
++33 30 30 23 20 24 33 30 30 33 30 30 34 30 15 33 30 30 32 39 24 36 35 37
++33 30 30 52 30 35 32 39 24 36 35 37 36 35 37 52 30 35 53 35 37 36 35 37
++53 35 37 36 35 37 53 35 37 36 35 37 53 35 37 36 35 37 53 35 37 42 38 42
++47 47 21 36 35 37 32 39 24 53 35 37 33 30 30 52 30 35 33 30 32 33 30 30
++26 24 32 23 20 24 23 20 24 33 30 30 22 25 24 23 20 24 14 16 17 22 25 24
++42 41 42 119 117 138 166 174 181 77 91 115 94 105 108 188 180 202 201 216 228 166 156 164
++95 91 100 112 96 108 166 156 164 189 165 168 163 117 123 120 63 71 167 63 71 102 33 26
++167 63 71 161 55 23 167 63 71 161 55 23 161 55 23 122 49 24 161 55 23 161 55 23
++161 55 23 161 55 23 161 55 23 167 63 71 161 55 23 161 55 23 167 63 71 168 102 88
++195 113 123 201 146 124 201 146 124 201 146 124 197 171 123 197 171 123 201 146 124 197 171 123
++217 168 156 201 146 124 197 171 123 201 146 124 217 168 156 197 171 123 197 171 123 197 171 123
++217 168 156 197 171 123 217 168 156 197 171 123 217 168 156 177 169 143 217 168 156 197 171 123
++217 168 156 197 171 123 217 168 156 201 146 124 177 169 143 201 146 124 168 146 127 168 146 127
++138 126 108 95 91 100 63 59 71 32 40 58 46 59 71 111 119 127 185 202 202 226 221 247
++208 221 247 201 216 228 201 216 228 194 199 226 194 199 226 185 202 202 185 202 202 188 180 202
++188 180 202 201 216 228 208 221 247 226 221 247 231 239 247 231 239 247 240 251 247 231 239 247
++240 251 247 235 238 247 240 251 247 240 251 247 235 238 247 233 241 227 225 222 201 225 222 201
++208 215 180 217 168 156 177 169 143 217 168 156 177 169 143 217 168 156 214 214 134 222 171 182
++214 214 134 225 222 201 208 215 180 225 222 201 225 222 201 225 222 201 225 222 201 233 241 227
++233 241 227 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++246 237 247 251 251 247 251 251 247 251 251 247 240 251 247 240 251 247 251 251 247 240 251 247
++246 237 247 251 251 247 251 251 247 240 251 247 235 238 247 201 216 228 201 216 228 226 221 247
++226 221 247 221 238 247 231 239 247 235 238 247 240 251 247 240 251 247 231 239 247 231 239 247
++231 239 247 231 239 247 240 251 247 240 251 247 221 238 247 226 221 247 240 251 247 251 251 247
++251 251 247 240 251 247 221 238 247 232 215 228 221 238 247 226 221 247 221 238 247 226 221 247
++231 239 247 231 239 247 231 239 247 235 238 247 235 238 247 235 238 247 235 238 247 235 238 247
++240 251 247 235 238 247 240 251 247 240 251 247 246 237 247 251 251 247 251 251 247 246 237 247
++225 222 201 208 215 180 208 215 180 217 168 156 217 168 156 177 169 143 197 171 123 177 169 143
++197 171 123 177 169 143 217 168 156 177 169 143 217 168 156 177 169 143 208 215 180 177 169 143
++217 168 156 189 165 168 217 168 156 177 169 143 208 215 180 217 168 156 189 165 168 214 214 134
++217 168 156 217 168 156 208 215 180 217 168 156 217 168 156 208 215 180 177 169 143 217 168 156
++214 214 134 189 165 168 217 168 156 217 168 156 208 215 180 217 168 156 208 215 180 189 165 168
++217 168 156 217 168 156 208 215 180 217 168 156 217 168 156 177 169 143 208 215 180 217 168 156
++217 168 156 177 169 143 217 168 156 189 165 168 214 214 134 177 169 143 217 168 156 217 168 156
++214 214 134 189 165 168 217 168 156 189 165 168 217 168 156 189 165 168 217 168 156 177 169 143
++217 168 156 177 169 143 217 168 156 217 168 156 177 169 143 217 168 156 217 168 156 177 169 143
++217 168 156 177 169 143 217 168 156 217 168 156 217 168 156 217 168 156 208 215 180 217 168 156
++217 168 156 217 168 156 214 214 134 217 168 156 217 168 156 217 168 156 217 168 156 189 165 168
++214 214 134 217 168 156 217 168 156 214 214 134 217 168 156 177 169 143 208 215 180 217 168 156
++189 165 168 214 214 134 217 168 156 217 168 156 189 165 168 214 214 134 217 168 156 217 168 156
++177 169 143 217 168 156 217 168 156 217 168 156 189 165 168 217 168 156 189 165 168 217 168 156
++217 168 156 217 168 156 208 215 180 217 168 156 217 168 156 217 168 156 217 168 156 189 165 168
++168 146 127 117 99 86 75 73 58 51 49 42 47 44 42 42 38 42 42 38 42 42 38 42
++42 41 42 42 41 42 43 42 50 42 41 42 42 41 42 42 38 42 42 41 42 42 41 42
++36 35 37 42 41 42 42 41 42 42 38 42 47 39 42 36 35 37 52 30 35 36 35 37
++53 35 37 42 38 42 52 30 35 47 39 42 53 35 37 53 46 48 53 46 48 60 49 42
++55 55 48 63 55 51 65 63 61 75 56 53 75 63 62 75 56 53 65 55 54 75 56 53
++75 56 53 75 63 62 88 66 70 101 83 74 101 83 74 117 99 86 138 126 108 145 140 145
++138 126 108 117 99 86 75 73 58 75 56 53 75 56 53 65 55 54 63 55 51 63 55 51
++60 49 42 51 49 42 51 49 42 55 39 37 42 38 42 47 47 21 36 35 37 55 39 37
++42 38 42 33 30 30 36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 33 30 30 36 35 37 36 35 37 33 30 32 33 30 32 33 30 32 33 30 32
++33 30 32 36 35 37 36 35 37 36 35 37 42 38 42 42 38 42 42 41 42 47 44 42
++42 41 42 47 44 42 47 44 42 53 46 48 52 55 48 53 46 48 55 55 48 59 55 55
++63 55 51 65 57 61 65 55 54 65 63 61 65 63 61 65 63 61 65 63 61 75 59 67
++75 72 67 75 72 67 75 64 82 75 81 82 75 81 76 75 64 82 75 81 76 75 81 82
++75 81 76 75 81 82 75 81 82 75 81 82 75 64 82 60 81 83 75 81 82 75 81 82
++75 64 82 75 72 67 59 69 70 59 69 70 65 63 61 63 59 71 59 57 61 54 57 61
++54 57 61 59 55 55 54 57 61 59 57 61 59 57 61 54 57 61 52 55 48 59 55 55
++52 55 48 53 46 48 48 50 48 59 55 55 48 50 48 52 55 48 48 50 48 48 50 48
++48 50 48 48 50 48 43 42 50 48 44 48 43 42 50 48 44 48 53 46 48 43 42 50
++47 39 42 48 44 48 47 39 42 47 44 42 47 44 42 48 44 48 53 46 48 47 44 42
++47 44 42 48 44 48 53 46 48 53 46 48 53 46 48 55 55 48 63 55 51 55 55 48
++63 55 51 63 55 51 63 55 51 63 55 51 50 61 48 63 55 51 59 55 55 63 55 51
++63 55 51 59 55 55 59 55 55 55 55 48 55 55 48 53 46 48 51 49 42 47 49 42
++42 47 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 33 39 38 42 41 42
++36 35 37 42 41 42 33 39 38 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++47 44 42 42 47 42 47 44 42 47 44 42 48 50 48 53 46 48 55 55 48 60 49 42
++53 46 48 53 46 48 55 55 48 55 55 48 55 55 48 53 46 48 55 55 48 53 46 48
++52 55 48 48 50 48 48 44 48 48 44 48 47 44 42 47 44 42 47 44 42 47 44 42
++42 47 42 42 41 42 42 41 42 42 47 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 38 42 42 41 42 36 35 37 53 35 37 36 35 37 36 35 37
++
++17 12 17 15 17 7 17 12 17 13 4 7 15 17 7 17 12 17 15 17 7 7 12 13
++13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 7 12 13 13 4 7 3 4 9
++7 12 13 13 4 7 7 10 17 7 10 17 13 4 7 7 10 17 13 4 7 7 10 17
++17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 7 10 17 14 16 17 17 12 17
++14 16 17 14 16 17 12 18 20 17 12 17 23 18 22 14 16 17 23 18 22 14 16 17
++23 20 24 23 18 22 23 18 22 23 20 24 23 20 24 23 20 24 23 20 24 23 18 22
++23 20 24 23 18 22 15 22 17 22 25 24 26 25 15 23 20 24 23 20 24 26 25 15
++23 20 24 22 25 24 26 25 15 23 20 24 23 20 24 22 25 24 33 30 30 22 25 24
++33 30 30 33 30 30 33 30 32 33 30 32 36 35 37 36 35 37 37 35 43 37 35 43
++34 40 43 34 40 43 42 41 42 43 42 50 34 40 43 43 42 50 42 41 42 43 42 50
++43 42 50 48 44 48 48 44 48 48 44 48 53 46 48 53 46 48 53 46 48 53 46 48
++53 46 48 48 44 48 48 44 48 47 44 42 48 44 48 48 44 48 47 44 42 47 44 42
++47 44 42 47 39 42 42 38 42 42 38 42 32 39 24 36 35 37 32 39 24 36 35 37
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 52 30 35 32 39 24 33 30 30 32 39 24 52 30 35 33 30 30
++33 30 30 33 30 30 33 30 30 32 39 24 33 30 30 52 30 35 36 35 37 53 35 37
++36 35 37 55 39 37 47 44 42 51 49 42 51 49 42 51 49 42 53 46 48 62 47 47
++55 55 48 63 55 45 63 55 51 63 55 51 64 70 48 65 55 54 75 56 53 64 70 48
++75 56 53 75 63 62 75 56 53 65 63 61 63 55 51 63 55 51 63 55 51 63 55 51
++55 55 48 62 47 47 51 49 42 47 44 42 42 38 42 36 35 37 36 35 37 33 30 32
++33 30 32 33 30 30 26 30 28 23 20 24 23 20 24 23 20 24 26 25 15 23 20 24
++23 20 24 22 25 24 23 20 24 26 25 15 23 20 24 22 25 24 33 30 30 22 25 24
++33 30 30 26 25 15 33 30 30 22 25 24 33 30 30 22 25 24 33 30 30 26 25 15
++33 30 30 33 30 30 33 30 30 33 30 30 53 35 37 33 30 30 36 35 37 52 30 35
++32 39 24 52 30 35 32 39 24 36 35 37 36 35 37 53 35 37 32 39 24 33 30 32
++36 35 37 33 30 30 36 35 37 36 35 37 33 30 30 36 35 37 33 30 30 33 30 32
++33 30 32 33 30 32 33 30 32 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30
++23 20 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35
++32 39 24 36 35 37 52 30 35 36 35 37 55 39 18 42 38 42 36 35 37 52 30 35
++36 35 37 53 35 37 47 47 21 53 35 37 36 35 37 47 47 21 47 39 42 36 35 37
++42 38 42 36 35 37 53 35 37 32 39 24 33 30 30 33 30 32 33 30 32 33 30 30
++26 24 32 22 25 24 23 20 24 23 20 24 23 20 24 22 25 24 7 12 13 23 18 22
++59 69 70 145 140 145 166 174 181 112 96 108 111 119 127 189 165 168 150 144 154 101 83 74
++59 36 42 101 60 73 138 102 108 168 102 88 120 63 71 102 33 26 102 33 26 161 55 23
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 161 55 23 102 33 26 122 49 24
++161 55 23 167 63 71 167 63 71 167 63 71 167 63 71 168 102 88 168 102 88 195 113 123
++201 146 124 197 171 123 201 146 124 197 171 123 201 146 124 197 171 123 217 168 156 197 171 123
++197 171 123 197 171 123 197 171 123 197 171 123 197 171 123 197 171 123 217 168 156 217 168 156
++197 171 123 217 168 156 177 169 143 217 168 156 197 171 123 217 168 156 197 171 123 177 169 143
++197 171 123 177 169 143 197 171 123 177 169 143 168 146 127 168 146 127 168 146 127 138 126 108
++138 126 108 95 91 100 59 69 70 43 42 50 32 40 58 60 63 87 129 144 153 201 216 228
++201 216 228 226 221 247 201 216 228 201 216 228 201 216 228 201 216 228 194 199 226 185 202 202
++185 202 202 194 199 226 201 216 228 221 238 247 231 239 247 240 251 247 240 251 247 240 251 247
++235 238 247 240 251 247 246 237 247 235 238 247 225 222 201 208 215 180 189 165 168 189 165 168
++177 169 143 189 165 168 197 171 123 177 169 143 177 169 143 217 168 156 177 169 143 217 168 156
++208 215 180 217 168 156 214 214 134 208 215 180 208 215 180 225 222 201 225 222 201 225 222 201
++225 222 201 233 241 227 233 241 227 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 240 251 247 251 251 247 240 251 247 251 251 247 246 237 247 240 251 247 251 251 247
++251 251 247 240 251 247 251 251 247 251 251 247 235 238 247 231 239 247 226 221 247 221 238 247
++221 238 247 221 238 247 231 239 247 235 238 247 240 251 247 240 251 247 240 251 247 231 239 247
++231 239 247 231 239 247 240 251 247 240 251 247 232 215 228 185 202 202 185 202 202 201 216 228
++235 238 247 226 221 247 233 241 227 208 221 247 221 238 247 226 221 247 208 221 247 221 238 247
++226 221 247 221 238 247 231 239 247 231 239 247 231 239 247 235 238 247 235 238 247 235 238 247
++235 238 247 235 238 247 240 251 247 246 237 247 240 251 247 240 251 247 251 251 247 251 251 247
++233 241 227 222 171 182 208 215 180 177 169 143 177 169 143 177 169 143 197 171 123 189 165 168
++197 171 123 189 165 168 197 171 123 177 169 143 177 169 143 217 168 156 197 171 123 217 168 156
++177 169 143 214 214 134 189 165 168 217 168 156 177 169 143 197 171 123 217 168 156 189 165 168
++177 169 143 217 168 156 177 169 143 217 168 156 177 169 143 217 168 156 217 168 156 189 165 168
++217 168 156 208 215 180 177 169 143 217 168 156 189 165 168 217 168 156 217 168 156 217 168 156
++214 214 134 189 165 168 177 169 143 217 168 156 189 165 168 217 168 156 177 169 143 217 168 156
++177 169 143 217 168 156 214 214 134 189 165 168 217 168 156 217 168 156 177 169 143 217 168 156
++189 165 168 197 171 123 189 165 168 197 171 123 177 169 143 197 171 123 177 169 143 217 168 156
++177 169 143 197 171 123 189 165 168 197 171 123 217 168 156 177 169 143 197 171 123 189 165 168
++197 171 123 217 168 156 177 169 143 214 214 134 177 169 143 217 168 156 177 169 143 217 168 156
++177 169 143 217 168 156 217 168 156 189 165 168 214 214 134 217 168 156 217 168 156 217 168 156
++217 168 156 217 168 156 208 215 180 217 168 156 217 168 156 208 215 180 217 168 156 217 168 156
++208 215 180 217 168 156 189 165 168 217 168 156 217 168 156 189 165 168 217 168 156 177 169 143
++217 168 156 177 169 143 197 171 123 177 169 143 197 171 123 177 169 143 217 168 156 217 168 156
++189 165 168 177 169 143 189 165 168 177 169 143 177 169 143 201 146 124 177 169 143 177 169 143
++168 146 127 168 146 127 138 102 108 101 83 74 88 73 62 75 63 62 65 55 54 63 55 51
++53 46 48 42 41 42 42 41 42 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37
++32 39 24 52 30 35 36 35 37 53 35 37 53 35 17 36 35 37 53 35 17 33 30 30
++55 39 37 55 39 37 60 49 42 63 55 45 75 56 53 75 56 53 75 63 62 88 73 62
++101 83 74 101 83 74 117 99 86 117 99 86 101 83 74 117 99 86 101 83 74 117 99 86
++117 99 86 138 102 108 138 126 108 163 117 123 163 117 123 168 146 127 177 169 143 201 146 124
++166 156 164 138 126 108 138 102 108 117 99 86 138 126 108 138 102 108 138 126 108 117 99 86
++117 99 86 117 99 86 101 83 74 88 73 62 88 73 62 88 73 62 88 83 74 88 83 74
++88 73 62 63 55 51 47 44 42 32 39 24 36 35 37 53 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 30 32 36 35 37
++36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 42 41 42 42 41 42 47 44 42
++48 44 48 48 44 48 51 49 42 51 49 42 53 46 48 55 55 48 59 55 55 59 55 55
++59 55 55 65 57 61 65 63 61 65 63 61 75 63 62 75 72 67 75 72 67 75 72 67
++75 81 76 75 81 76 75 81 76 75 64 82 75 81 82 75 81 82 75 81 82 75 81 82
++75 81 82 75 81 82 75 81 82 75 81 82 75 81 82 75 81 82 75 64 82 60 81 83
++75 81 76 59 69 70 59 69 70 59 69 70 63 59 71 59 69 70 63 59 71 59 57 61
++54 57 61 54 57 61 54 57 61 59 55 55 54 57 61 54 57 61 59 55 55 48 50 48
++54 57 61 53 46 48 54 57 61 53 46 48 48 50 48 54 57 61 53 46 48 54 57 61
++43 42 50 57 43 64 43 42 50 48 50 48 43 42 50 48 44 48 48 44 48 43 42 50
++48 44 48 42 41 42 43 42 50 47 44 42 48 44 48 48 44 48 48 50 48 48 44 48
++47 44 42 48 44 48 53 46 48 53 46 48 55 55 48 55 55 48 55 55 48 59 55 55
++59 55 55 59 55 55 63 55 51 59 55 55 63 55 51 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 55 55 48 55 55 48 52 55 48 48 50 48 48 50 48 48 44 48
++47 44 42 43 42 50 43 42 50 42 41 42 34 40 43 42 41 42 34 40 43 42 38 42
++34 40 43 42 38 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 47 44 42
++42 41 42 47 44 42 47 44 42 47 44 42 48 50 48 53 46 48 53 46 48 53 46 48
++55 55 48 55 55 48 53 46 48 55 55 48 53 46 48 59 55 55 53 46 48 55 55 48
++52 55 48 48 50 48 48 50 48 48 44 48 48 44 48 47 44 42 47 49 42 42 47 42
++42 41 42 47 44 42 42 41 42 42 41 42 47 44 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 38 42 42 38 42 36 35 37 36 35 37 36 35 37
++
++17 12 17 23 10 10 17 12 17 15 17 7 17 12 17 13 4 7 7 12 13 13 4 7
++7 12 13 13 4 7 7 12 13 17 12 17 13 4 7 7 12 13 7 12 13 13 4 7
++7 10 17 3 4 9 7 10 17 13 4 7 7 10 17 7 12 13 7 10 17 17 12 17
++7 12 13 17 12 17 7 12 13 7 12 13 7 10 17 17 12 17 7 10 17 14 16 17
++14 16 17 23 18 22 14 16 17 23 18 22 14 16 17 23 18 22 14 16 17 23 18 22
++23 18 22 23 18 22 23 18 22 15 22 17 23 18 22 23 18 22 23 18 22 23 20 24
++23 18 22 23 18 22 23 18 22 26 25 15 26 25 15 23 20 24 22 25 24 23 20 24
++26 25 15 23 18 22 23 20 24 23 20 24 33 30 30 23 20 24 23 20 24 26 25 15
++26 30 28 33 30 30 33 30 32 33 30 30 33 30 32 36 35 37 36 35 37 36 35 37
++37 35 43 37 35 43 37 35 43 37 35 43 42 38 42 37 35 43 37 35 43 42 38 42
++42 41 42 47 44 42 48 44 48 48 44 48 48 50 48 48 44 48 51 49 42 48 44 48
++47 44 42 47 44 42 47 39 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 42 41 42 42 38 42 53 35 37 36 35 37 36 35 37 36 35 37 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30
++33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 32 39 24 33 30 30
++33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 32 39 24 33 30 30 36 35 37
++47 47 21 42 41 42 47 44 42 51 49 42 53 46 48 51 49 42 53 46 48 62 47 47
++62 47 47 63 55 51 63 55 51 65 55 54 65 55 54 75 63 62 65 55 54 75 56 53
++64 70 48 75 56 53 64 70 48 75 56 53 65 63 61 65 55 54 63 55 51 63 55 51
++62 47 47 53 46 48 53 46 48 55 39 37 36 35 37 53 35 37 36 35 37 33 30 32
++33 30 32 33 30 30 26 24 32 22 25 24 23 20 24 26 25 15 23 18 22 22 25 24
++23 20 24 26 25 15 23 20 24 23 20 24 23 20 24 26 25 15 23 20 24 34 30 15
++23 20 24 33 30 30 33 30 30 26 25 15 33 30 30 22 25 24 33 30 30 33 30 30
++28 13 18 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 33 30 30 36 35 37
++33 30 30 36 35 37 33 30 30 36 35 37 36 35 37 36 35 37 36 35 37 32 39 24
++36 35 37 33 30 30 36 35 37 32 39 24 36 35 37 33 30 30 33 30 30 33 30 30
++33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 33 30 30 23 20 24 22 25 24
++23 20 24 33 30 30 26 25 15 33 30 30 33 30 30 33 30 30 36 35 37 32 39 24
++33 30 30 53 35 37 32 39 24 53 35 37 36 35 37 53 35 37 36 35 37 47 47 21
++52 30 35 36 35 37 53 35 37 36 35 37 47 39 42 53 35 37 36 35 37 47 47 21
++53 35 37 32 39 24 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30 26 24 32
++26 30 28 26 24 32 23 20 24 22 25 24 23 20 24 26 24 32 7 12 13 23 18 22
++65 63 61 145 140 145 188 180 202 188 180 202 189 165 168 222 171 182 138 102 108 101 60 73
++122 49 24 167 63 71 122 49 24 161 55 23 102 33 26 161 55 23 122 49 24 102 33 26
++122 49 24 122 49 24 102 33 26 122 49 24 102 33 26 102 33 26 161 55 23 161 55 23
++167 63 71 176 103 41 168 102 88 168 102 88 201 146 124 168 102 88 201 146 124 177 171 115
++201 146 124 197 171 123 201 146 124 197 171 123 217 168 156 197 171 123 197 171 123 197 171 123
++197 171 123 197 171 123 201 146 124 197 171 123 197 171 123 217 168 156 197 171 123 197 171 123
++217 168 156 214 214 134 217 168 156 177 169 143 214 214 134 217 168 156 197 171 123 217 168 156
++197 171 123 177 169 143 197 171 123 168 146 127 168 146 127 168 146 127 146 150 115 138 126 108
++112 96 108 75 81 90 60 63 87 46 59 71 32 40 58 32 40 58 95 95 116 166 174 181
++201 216 228 226 221 247 221 238 247 226 221 247 201 216 228 226 221 247 201 216 228 201 216 228
++194 199 226 194 199 226 201 216 228 221 238 247 231 239 247 240 251 247 246 237 247 246 237 247
++233 241 227 233 241 227 232 215 228 208 215 180 222 171 182 217 168 156 177 169 143 197 171 123
++197 171 123 197 171 123 177 169 143 197 171 123 214 214 134 177 169 143 217 168 156 197 171 123
++177 169 143 214 214 134 217 168 156 217 168 156 217 168 156 214 214 134 225 222 201 225 222 201
++225 222 201 225 222 201 225 222 201 233 241 227 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 240 251 247 251 251 247 246 237 247
++240 251 247 251 251 247 251 251 247 240 251 247 235 238 247 221 238 247 208 221 247 208 221 247
++221 238 247 226 221 247 221 238 247 221 238 247 231 239 247 231 239 247 231 239 247 221 238 247
++221 238 247 231 239 247 231 239 247 240 251 247 201 216 228 150 147 171 119 117 138 129 144 153
++188 180 202 201 216 228 208 221 247 226 221 247 226 221 247 221 238 247 226 221 247 226 221 247
++221 238 247 226 221 247 226 221 247 226 221 247 221 238 247 226 221 247 221 238 247 231 239 247
++231 239 247 235 238 247 235 238 247 240 251 247 235 238 247 246 237 247 240 251 247 251 251 247
++251 251 247 225 222 201 222 171 182 177 169 143 177 169 143 201 146 124 177 169 143 197 171 123
++189 165 168 197 171 123 177 169 143 189 165 168 197 171 123 189 165 168 177 169 143 217 168 156
++177 169 143 217 168 156 177 169 143 197 171 123 189 165 168 217 168 156 177 169 143 217 168 156
++217 168 156 177 169 143 217 168 156 217 168 156 177 169 143 217 168 156 177 169 143 214 214 134
++177 169 143 217 168 156 217 168 156 189 165 168 214 214 134 189 165 168 214 214 134 189 165 168
++177 169 143 217 168 156 217 168 156 189 165 168 214 214 134 217 168 156 177 169 143 217 168 156
++177 169 143 217 168 156 177 169 143 217 168 156 177 169 143 217 168 156 189 165 168 197 171 123
++189 165 168 197 171 123 177 169 143 217 168 156 177 169 143 217 168 156 177 169 143 197 171 123
++177 169 143 177 169 143 197 171 123 177 169 143 177 169 143 197 171 123 189 165 168 197 171 123
++189 165 168 197 171 123 177 169 143 189 165 168 197 171 123 189 165 168 197 171 123 177 169 143
++217 168 156 177 169 143 177 169 143 217 168 156 217 168 156 189 165 168 214 214 134 217 168 156
++208 215 180 217 168 156 217 168 156 208 215 180 217 168 156 217 168 156 217 168 156 217 168 156
++217 168 156 217 168 156 217 168 156 177 169 143 217 168 156 197 171 123 217 168 156 197 171 123
++177 169 143 201 146 124 189 165 168 201 146 124 177 169 143 201 146 124 177 169 143 177 171 115
++168 146 127 168 146 127 201 146 124 163 117 123 168 146 127 168 146 127 168 146 127 163 117 123
++163 117 123 163 117 123 168 146 127 138 126 108 138 126 108 138 126 108 117 99 86 99 93 84
++88 73 62 75 56 53 60 49 42 55 39 37 60 49 42 60 49 42 60 49 42 60 49 42
++60 49 42 60 49 42 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45
++75 56 53 88 73 62 101 83 74 117 99 86 117 99 86 117 99 86 117 99 86 168 102 88
++138 126 108 163 117 123 138 126 108 163 117 123 138 126 108 168 102 88 138 126 108 163 117 123
++168 146 127 201 146 124 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 168 146 127
++195 113 123 168 146 127 163 117 123 168 146 127 201 146 124 168 146 127 168 146 127 201 146 124
++168 146 127 168 146 127 163 117 123 138 126 108 138 126 108 138 126 108 138 126 108 163 117 123
++138 126 108 117 99 86 63 55 45 33 30 30 53 35 17 36 35 37 42 38 42 42 38 42
++42 38 42 33 30 30 36 35 37 36 35 37 33 30 32 33 30 30 36 35 37 33 30 32
++33 30 30 36 35 37 36 35 37 36 35 37 42 38 42 42 41 42 42 41 42 47 44 42
++48 44 48 53 46 48 51 49 42 53 46 48 55 55 48 59 55 55 63 55 51 65 55 54
++59 55 55 65 57 61 65 63 61 75 63 62 75 72 67 75 72 67 75 72 67 75 81 76
++75 81 76 88 69 84 75 81 82 88 83 88 75 81 82 75 81 82 75 81 82 75 81 90
++75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90
++75 81 82 75 64 82 60 81 83 75 64 82 59 69 70 63 59 71 59 69 70 59 69 70
++54 57 61 54 57 61 54 57 61 54 57 61 59 55 55 54 57 61 54 57 61 53 46 48
++54 57 61 53 46 48 45 57 61 53 46 48 54 57 61 48 44 48 54 57 61 48 44 48
++48 50 48 43 42 50 48 50 48 48 44 48 48 44 48 43 42 50 48 44 48 43 42 50
++43 42 50 43 42 50 42 41 42 43 42 50 43 42 50 48 44 48 48 44 48 47 44 42
++47 44 42 48 44 48 48 50 48 48 50 48 53 46 48 55 55 48 55 55 48 55 55 48
++59 55 55 50 61 48 59 55 55 59 55 55 63 55 51 65 63 61 63 55 51 50 61 48
++59 55 55 55 55 48 59 55 55 55 55 48 55 55 48 48 50 48 48 50 48 48 50 48
++43 42 50 42 41 42 43 42 50 42 38 42 43 42 50 42 38 42 34 40 43 34 40 43
++34 40 43 34 40 43 34 40 43 42 41 42 42 41 42 42 41 42 42 47 42 47 44 42
++42 47 42 47 44 42 48 44 48 48 50 48 48 50 48 48 50 48 52 55 48 48 50 48
++52 55 48 53 46 48 55 55 48 55 55 48 59 55 55 55 55 48 52 55 48 52 55 48
++48 50 48 48 50 48 48 50 48 48 44 48 48 50 48 48 44 48 48 50 48 47 44 42
++47 44 42 42 47 42 48 44 48 42 47 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 47 44 42 42 41 42 42 41 42 42 41 42 42 38 42 36 35 37 36 35 37
++
++15 17 7 17 12 17 15 17 7 13 4 7 15 17 7 13 4 7 15 17 7 17 12 17
++13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 3 4 9 7 12 13
++13 4 7 7 10 17 3 4 9 7 10 17 13 4 7 7 10 17 13 4 7 7 10 17
++17 12 17 7 12 13 13 4 7 7 12 13 17 12 17 7 12 13 17 12 17 14 16 17
++14 16 17 14 16 17 23 18 22 23 18 22 23 18 22 23 20 24 23 20 24 23 18 22
++22 25 24 23 18 22 12 18 20 23 18 22 23 18 22 15 22 17 23 18 22 23 18 22
++23 20 24 23 18 22 22 24 13 23 18 22 26 25 15 23 20 24 23 20 24 22 25 24
++22 25 24 22 25 24 26 25 15 23 20 24 23 20 24 22 25 24 26 30 28 22 25 24
++33 30 30 26 30 28 33 30 30 33 30 30 33 30 32 33 30 32 33 30 32 33 30 36
++36 35 37 36 35 37 36 35 37 36 35 37 33 30 36 36 35 37 36 35 37 42 38 42
++42 38 42 42 41 42 42 41 42 42 41 42 47 44 42 47 44 42 47 39 42 47 44 42
++47 44 42 47 44 42 47 39 42 42 41 42 47 39 42 47 39 42 42 41 42 36 35 37
++53 35 37 36 35 37 36 35 37 36 35 37 36 35 37 32 39 24 33 30 30 33 30 30
++33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30
++34 30 15 33 30 30 33 30 30 53 35 17 33 30 30 33 30 30 34 30 15 33 30 30
++34 30 15 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 52 30 35 32 39 24
++36 35 37 47 39 42 47 44 42 51 49 42 51 49 42 53 46 48 62 47 47 55 55 48
++62 47 47 62 47 47 63 55 51 63 55 51 65 55 54 64 70 48 75 56 53 75 73 58
++75 56 53 75 56 53 65 63 61 75 56 53 65 55 54 65 55 54 62 47 47 53 46 48
++51 49 42 51 49 42 47 44 42 47 39 42 42 38 42 33 30 30 36 35 37 33 30 30
++33 30 32 26 24 32 26 24 32 23 20 24 26 25 15 22 25 24 22 25 24 23 20 24
++22 25 24 23 20 24 23 20 24 23 20 24 33 30 30 22 25 24 33 30 30 26 30 28
++33 30 30 33 30 30 33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 32 39 24 33 30 30 33 30 30 33 30 30
++36 35 37 32 39 24 36 35 37 52 30 35 32 39 24 36 35 37 33 30 30 36 35 37
++33 30 30 32 39 24 33 30 30 33 30 32 33 30 30 36 35 37 33 30 30 33 30 30
++33 30 32 33 30 32 33 30 30 33 30 30 26 24 32 26 30 28 23 20 24 33 30 30
++22 25 24 33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 36 35 37 36 35 37
++36 35 37 32 39 24 53 35 37 36 35 37 52 30 35 32 39 24 53 35 37 42 38 42
++36 35 37 53 35 37 32 39 24 53 35 37 36 35 37 53 35 37 36 35 37 53 35 37
++36 35 37 36 35 37 52 30 35 32 39 24 33 30 30 33 30 30 33 30 30 26 30 28
++26 24 32 22 25 24 22 25 24 23 20 24 22 23 31 23 20 24 14 16 17 23 20 24
++34 40 43 111 119 127 208 215 180 232 215 228 188 180 202 163 117 123 117 99 86 120 63 71
++120 63 71 122 49 24 122 49 24 102 33 26 161 55 23 102 33 26 122 49 24 102 33 26
++102 33 26 102 33 26 122 49 24 161 55 23 161 55 23 167 63 71 176 103 41 176 103 41
++176 103 41 201 146 124 219 175 47 195 113 123 219 175 47 201 146 124 177 171 115 201 146 124
++177 171 115 201 146 124 197 171 123 197 171 123 197 171 123 197 171 123 201 146 124 197 171 123
++201 146 124 197 171 123 217 168 156 197 171 123 217 168 156 197 171 123 217 168 156 177 169 143
++217 168 156 177 169 143 217 168 156 197 171 123 217 168 156 177 169 143 217 168 156 177 169 143
++197 171 123 201 146 124 168 146 127 201 146 124 168 146 127 138 126 108 138 126 108 138 102 108
++94 105 108 75 64 82 46 59 71 46 59 71 32 40 58 32 40 58 61 78 101 150 144 154
++194 199 226 201 216 228 201 216 228 201 216 228 226 221 247 201 216 228 226 221 247 201 216 228
++201 216 228 201 216 228 201 216 228 226 221 247 231 239 247 235 238 247 231 239 247 201 216 228
++225 222 201 188 180 202 208 215 180 189 165 168 189 165 168 177 169 143 197 171 123 177 169 143
++201 146 124 217 168 156 197 171 123 217 168 156 177 169 143 217 168 156 197 171 123 217 168 156
++214 214 134 217 168 156 208 215 180 214 214 134 222 171 182 214 214 134 217 168 156 214 214 134
++225 222 201 225 222 201 233 241 227 233 241 227 233 241 227 251 251 247 251 251 247 240 251 247
++251 251 247 251 251 247 251 251 247 240 251 247 251 251 247 240 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 235 238 247 221 238 247 201 216 228 201 216 228 232 215 228
++201 216 228 208 221 247 221 238 247 226 221 247 221 238 247 221 238 247 221 238 247 221 238 247
++221 238 247 231 239 247 240 251 247 240 251 247 208 221 247 148 160 159 60 63 87 75 81 90
++148 160 159 201 216 228 235 238 247 201 216 228 208 221 247 208 221 247 208 221 247 208 221 247
++201 216 228 208 221 247 208 221 247 221 238 247 226 221 247 221 238 247 226 221 247 231 239 247
++226 221 247 231 239 247 231 239 247 235 238 247 235 238 247 235 238 247 235 238 247 251 251 247
++233 241 227 233 241 227 208 215 180 177 169 143 177 169 143 168 146 127 177 169 143 201 146 124
++177 169 143 217 168 156 177 169 143 197 171 123 177 169 143 217 168 156 177 169 143 177 169 143
++217 168 156 177 169 143 217 168 156 177 169 143 197 171 123 177 169 143 217 168 156 177 169 143
++177 169 143 217 168 156 177 169 143 177 169 143 197 171 123 177 169 143 217 168 156 177 169 143
++217 168 156 177 169 143 217 168 156 177 169 143 217 168 156 189 165 168 177 169 143 217 168 156
++177 169 143 217 168 156 177 169 143 177 169 143 217 168 156 177 169 143 217 168 156 177 169 143
++177 169 143 217 168 156 177 169 143 217 168 156 177 169 143 197 171 123 177 169 143 177 169 143
++197 171 123 177 169 143 177 169 143 197 171 123 177 169 143 177 169 143 168 146 127 177 169 143
++201 146 124 177 169 143 168 146 127 168 146 127 201 146 124 168 146 127 177 169 143 201 146 124
++177 169 143 201 146 124 177 169 143 201 146 124 168 146 127 177 169 143 197 171 123 177 169 143
++197 171 123 177 169 143 197 171 123 177 169 143 217 168 156 177 169 143 217 168 156 177 169 143
++217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 208 215 180 217 168 156 208 215 180
++189 165 168 217 168 156 208 215 180 217 168 156 217 168 156 177 169 143 177 169 143 201 146 124
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 163 117 123 138 126 108 117 99 86
++117 99 86 117 99 86 117 112 45 120 63 71 117 114 76 168 102 88 117 99 86 117 114 76
++168 102 88 138 126 108 138 126 108 163 117 123 146 150 115 168 146 127 168 146 127 146 151 137
++138 126 108 112 123 108 99 93 84 99 93 84 99 93 84 99 93 84 117 99 86 117 99 86
++99 93 84 117 99 86 117 99 86 138 102 108 112 123 108 117 99 86 138 102 108 112 123 108
++138 126 108 138 126 108 138 126 108 163 117 123 168 146 127 163 117 123 146 150 115 168 146 127
++168 146 127 201 146 124 168 146 127 168 146 127 168 102 88 168 146 127 168 146 127 201 146 124
++197 171 123 177 169 143 217 168 156 217 168 156 177 169 143 201 146 124 177 169 143 201 146 124
++168 146 127 168 102 88 168 146 127 201 146 124 168 146 127 168 146 127 201 146 124 177 169 143
++201 146 124 168 146 127 168 146 127 168 146 127 163 117 123 168 146 127 168 146 127 177 169 143
++168 146 127 138 126 108 65 63 61 33 30 30 33 30 30 53 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 33 30 30 36 35 37 33 30 32 33 30 32 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 42 41 42 42 41 42 48 44 48
++48 50 48 48 50 48 53 46 48 51 49 42 55 55 48 63 55 51 59 55 55 63 55 51
++59 55 55 65 63 61 65 63 61 75 72 67 75 72 67 75 72 67 75 64 82 75 81 76
++75 81 76 75 81 76 88 69 84 75 81 82 75 81 82 88 83 88 75 81 82 88 83 88
++75 81 90 78 98 90 75 81 90 75 81 90 77 90 100 75 81 90 75 81 90 75 81 90
++75 81 82 75 81 82 75 81 82 59 69 70 59 69 70 63 59 71 59 69 70 63 59 71
++59 57 61 53 63 61 54 57 61 59 55 55 54 57 61 54 57 61 57 43 64 48 50 48
++57 43 64 48 50 48 53 46 48 45 57 61 48 44 48 48 44 48 48 44 48 57 43 64
++48 50 48 48 44 48 48 44 48 45 57 61 48 44 48 43 42 50 48 44 48 43 42 50
++47 39 42 42 47 42 42 41 42 42 41 42 43 42 50 43 42 50 42 41 42 48 44 48
++42 41 42 48 44 48 48 44 48 48 50 48 48 50 48 53 46 48 52 55 48 52 55 48
++55 55 48 55 55 48 55 55 48 59 55 55 63 55 51 55 55 48 59 55 55 59 55 55
++55 55 48 55 55 48 55 55 48 55 55 48 53 46 48 48 50 48 48 50 48 48 44 48
++42 47 42 43 42 50 34 40 43 43 42 50 42 38 42 42 38 42 34 40 43 42 41 42
++34 40 43 42 41 42 43 42 50 42 41 42 42 41 42 43 42 50 42 41 42 43 42 50
++47 44 42 48 44 48 48 50 48 48 50 48 48 50 48 53 46 48 48 50 48 53 46 48
++52 55 48 52 55 48 55 55 48 53 46 48 52 55 48 59 55 55 48 50 48 48 50 48
++53 46 48 48 50 48 48 50 48 48 44 48 48 50 48 48 50 48 47 49 42 48 50 48
++48 50 48 48 44 48 42 47 42 48 44 48 47 44 42 42 47 42 47 44 42 42 41 42
++42 41 42 42 41 42 42 47 42 42 41 42 36 35 37 42 38 42 53 35 37 36 35 37
++
++13 4 7 17 12 17 15 17 7 17 12 17 13 4 7 23 10 10 7 12 13 13 4 7
++7 12 13 17 12 17 7 12 13 7 12 13 13 4 7 3 4 9 7 12 13 13 4 7
++7 10 17 13 4 7 3 4 9 13 4 7 7 10 17 13 4 7 7 12 13 17 12 17
++13 4 7 7 12 13 7 12 13 13 4 7 7 12 13 17 12 17 17 12 17 17 12 17
++14 16 17 23 18 22 14 16 17 14 16 17 23 20 24 23 20 24 22 25 24 22 25 24
++23 20 24 23 20 24 23 18 22 23 18 22 23 18 22 23 18 22 15 22 17 23 20 24
++22 25 24 22 25 24 23 18 22 22 24 13 23 18 22 22 25 24 23 20 24 22 25 24
++23 20 24 26 25 15 23 20 24 23 20 24 23 20 24 26 25 15 23 20 24 26 25 15
++26 30 28 23 20 24 26 30 28 26 24 32 33 30 32 30 30 34 30 30 34 33 30 32
++30 30 34 33 30 36 33 30 36 30 30 34 30 30 34 30 30 34 33 30 36 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 42 38 42 42 38 42 42 38 42
++42 38 42 42 38 42 42 38 42 42 38 42 42 41 42 36 35 37 36 35 37 53 35 37
++32 39 24 36 35 37 36 35 37 36 35 37 36 35 37 33 30 30 33 30 30 33 30 30
++23 20 24 33 30 30 23 20 24 33 30 30 23 20 24 23 20 24 23 20 24 33 30 30
++23 20 24 33 30 30 26 25 15 33 30 30 33 30 30 33 30 30 33 30 30 34 30 15
++33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 23 20 24 33 30 30
++33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 32 39 24 33 30 30 36 35 37
++53 35 37 36 35 37 47 44 42 47 44 42 51 49 42 51 49 42 62 47 47 62 47 47
++55 55 48 62 47 47 63 55 51 65 55 54 75 56 53 65 55 54 75 56 53 75 56 53
++64 70 48 75 56 53 75 56 53 65 55 54 63 55 51 63 55 51 62 47 47 53 46 48
++55 39 37 51 49 42 55 39 37 42 38 42 36 35 37 52 30 35 33 30 30 33 30 30
++33 30 30 26 30 28 26 24 32 22 25 24 23 20 24 26 25 15 23 20 24 26 25 15
++23 18 22 23 20 24 26 25 15 26 24 32 26 25 15 33 30 30 26 30 28 33 30 30
++23 20 24 33 30 30 26 25 15 33 30 30 33 30 30 26 30 28 33 30 30 33 30 30
++33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++36 35 37 36 35 37 33 30 30 33 30 30 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 33 30 32 36 35 37 33 30 30 36 35 37 33 30 30 33 30 30 33 30 32
++33 30 32 33 30 32 26 24 32 33 30 32 23 20 24 26 30 28 26 24 32 33 30 30
++23 20 24 26 30 28 23 20 24 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30
++36 35 37 36 35 37 36 35 37 47 47 21 36 35 37 36 35 37 53 35 37 36 35 37
++55 39 37 36 35 37 53 35 37 33 30 30 53 35 37 32 39 24 53 35 37 36 35 37
++36 35 37 47 47 21 33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 26 24 32
++26 30 28 26 24 32 22 25 24 23 20 24 23 20 24 23 20 24 23 18 22 28 13 18
++33 30 30 101 60 73 150 144 154 201 146 124 163 117 123 120 63 71 120 63 71 122 49 24
++102 33 26 167 63 71 161 55 23 167 63 71 122 49 24 161 55 23 122 49 24 161 55 23
++161 55 23 161 55 23 176 103 41 195 113 123 195 113 123 219 175 47 195 113 123 176 103 41
++195 113 123 176 103 41 201 146 124 168 102 88 201 146 124 168 102 88 177 171 115 201 146 124
++201 146 124 197 171 123 217 168 156 197 171 123 201 146 124 197 171 123 217 168 156 197 171 123
++197 171 123 197 171 123 197 171 123 217 168 156 197 171 123 217 168 156 214 214 134 217 168 156
++197 171 123 217 168 156 197 171 123 217 168 156 197 171 123 217 168 156 197 171 123 177 169 143
++197 171 123 168 146 127 168 146 127 168 146 127 163 117 123 138 126 108 138 126 108 112 96 108
++95 91 100 60 81 83 57 43 64 34 42 77 32 40 58 32 40 58 46 59 71 111 119 127
++185 202 202 226 221 247 201 216 228 201 216 228 201 216 228 208 221 247 201 216 228 226 221 247
++201 216 228 201 216 228 232 215 228 221 238 247 226 221 247 225 222 201 185 202 202 189 165 168
++189 165 168 177 169 143 189 165 168 177 169 143 197 171 123 177 169 143 197 171 123 217 168 156
++177 169 143 201 146 124 177 169 143 197 171 123 217 168 156 177 169 143 214 214 134 189 165 168
++217 168 156 217 168 156 217 168 156 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156
++197 171 123 227 171 124 208 215 180 225 222 201 233 241 227 233 241 227 233 241 227 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 240 251 247 246 237 247 240 251 247
++251 251 247 251 251 247 240 251 247 231 239 247 226 221 247 232 215 228 201 216 228 201 216 228
++226 221 247 221 238 247 201 216 228 208 221 247 233 241 227 226 221 247 221 238 247 231 239 247
++231 239 247 231 239 247 240 251 247 240 251 247 221 238 247 188 180 202 111 119 127 122 134 144
++185 202 202 231 239 247 235 238 247 208 221 247 232 215 228 201 216 228 201 216 228 201 216 228
++201 216 228 201 216 228 201 216 228 208 221 247 226 221 247 208 221 247 226 221 247 208 221 247
++226 221 247 221 238 247 226 221 247 231 239 247 231 239 247 231 239 247 235 238 247 240 251 247
++251 251 247 232 215 228 208 215 180 189 165 168 217 168 156 177 169 143 201 146 124 168 146 127
++177 169 143 177 169 143 217 168 156 177 169 143 217 168 156 177 169 143 197 171 123 189 165 168
++197 171 123 177 169 143 177 169 143 177 169 143 217 168 156 177 169 143 177 169 143 197 171 123
++177 169 143 197 171 123 177 169 143 197 171 123 177 169 143 177 169 143 177 169 143 177 169 143
++189 165 168 197 171 123 177 169 143 177 169 143 177 169 143 177 169 143 197 171 123 177 169 143
++177 169 143 197 171 123 189 165 168 197 171 123 177 169 143 177 169 143 177 169 143 177 169 143
++197 171 123 177 169 143 177 169 143 177 169 143 197 171 123 177 169 143 177 169 143 201 146 124
++177 169 143 201 146 124 177 169 143 168 146 127 201 146 124 168 146 127 168 146 127 163 117 123
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 163 117 123 146 150 115 163 117 123 163 117 123 168 146 127
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 146 150 115 163 117 123
++168 146 127 168 146 127 168 146 127 197 171 123 177 169 143 197 171 123 177 169 143 217 168 156
++197 171 123 177 169 143 217 168 156 177 169 143 177 169 143 177 169 143 201 146 124 168 146 127
++138 126 108 168 102 88 117 99 86 168 102 88 120 63 71 117 112 45 120 63 71 117 99 86
++176 103 41 120 63 71 117 99 86 120 63 71 117 112 45 120 63 71 101 74 26 101 74 26
++101 74 26 120 63 71 117 99 86 117 114 76 138 102 108 168 146 127 168 146 127 189 165 168
++177 169 143 168 146 127 168 146 127 168 146 127 163 117 123 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 168 146 127 177 169 143 168 146 127 168 146 127 168 146 127
++168 146 127 201 146 124 177 169 143 168 146 127 168 146 127 168 146 127 201 146 124 168 146 127
++201 146 124 168 146 127 201 146 124 168 146 127 168 146 127 201 146 124 168 146 127 201 146 124
++177 169 143 201 146 124 201 146 124 201 146 124 177 169 143 201 146 124 201 146 124 168 146 127
++168 146 127 201 146 124 168 102 88 168 146 127 163 117 123 168 146 127 163 117 123 168 146 127
++163 117 123 163 117 123 138 126 108 168 102 88 138 126 108 138 126 108 163 117 123 168 146 127
++145 140 145 117 99 86 63 55 45 52 30 35 32 39 24 47 39 42 36 35 37 42 41 42
++36 35 37 36 35 37 31 35 35 52 30 35 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 42 38 42 36 35 37 42 41 42 42 41 42 42 41 42 48 44 48
++48 44 48 48 50 48 48 50 48 55 55 48 55 55 48 59 55 55 63 55 51 59 55 55
++65 63 61 65 63 61 65 63 61 65 63 61 75 64 82 75 72 67 75 81 76 75 81 76
++75 81 76 88 83 88 75 81 82 75 81 82 88 83 88 75 81 82 75 81 90 88 83 88
++78 98 90 88 83 88 77 90 100 90 98 89 77 90 100 88 83 88 78 98 90 75 81 90
++75 81 90 75 81 90 60 81 83 75 64 82 75 81 76 59 69 70 59 69 70 59 69 70
++53 63 61 54 57 61 54 57 61 54 57 61 54 57 61 59 55 55 45 57 61 54 57 61
++48 50 48 45 57 61 43 42 50 43 42 50 43 42 50 45 57 61 43 42 50 43 42 50
++43 42 50 45 57 61 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50
++43 42 50 43 42 50 43 42 50 43 42 50 42 41 42 42 41 42 42 41 42 42 41 42
++47 44 42 47 49 42 48 44 48 48 44 48 48 50 48 48 50 48 48 50 48 53 46 48
++48 50 48 52 55 48 55 55 48 55 55 48 55 55 48 59 55 55 55 55 48 59 55 55
++55 55 48 55 55 48 52 55 48 48 50 48 48 50 48 48 50 48 48 50 48 43 42 50
++43 42 50 42 41 42 43 42 50 42 38 42 43 42 50 42 41 42 43 42 50 35 46 43
++43 42 50 42 41 42 42 41 42 43 42 50 35 46 43 42 41 42 42 41 42 42 41 42
++42 47 42 48 44 48 48 50 48 48 50 48 48 50 48 48 50 48 53 46 48 48 50 48
++52 55 48 53 46 48 55 55 48 55 55 48 55 55 48 59 55 55 55 55 48 48 50 48
++48 50 48 48 50 48 53 46 48 48 44 48 53 46 48 48 44 48 48 50 48 48 50 48
++48 44 48 48 50 48 48 44 48 48 44 48 42 47 42 48 44 48 48 44 48 47 44 42
++47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 36 35 37 36 35 37 36 35 37
++
++15 17 7 17 12 17 23 10 10 15 17 7 13 4 7 15 17 7 13 4 7 14 16 17
++17 12 17 7 12 13 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 7 12 13
++7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 7 12 13
++17 12 17 7 12 13 13 4 7 17 12 17 17 12 17 7 12 13 14 16 17 17 12 17
++23 18 22 23 18 22 23 18 22 23 18 22 23 20 24 22 25 24 23 18 22 23 20 24
++22 25 24 23 20 24 23 20 24 23 18 22 22 25 24 23 20 24 23 20 24 22 25 24
++23 20 24 22 25 24 23 18 22 22 24 13 23 18 22 26 25 15 23 20 24 26 25 15
++23 20 24 22 25 24 26 25 15 23 20 24 26 25 15 22 25 24 33 30 30 23 20 24
++26 25 15 26 24 32 26 30 28 26 24 32 26 30 28 26 24 32 33 30 30 26 24 32
++33 30 32 33 30 32 33 30 32 30 30 34 33 30 30 26 24 32 33 30 32 33 30 32
++33 30 36 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 53 35 37 36 35 37
++36 35 37 36 35 37 53 35 37 36 35 37 36 35 37 53 35 37 32 39 24 36 35 37
++36 35 37 33 30 30 52 30 35 32 39 24 33 30 32 33 30 30 33 30 30 33 30 30
++33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 33 30 30 23 20 24 33 30 30
++33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 23 20 24
++33 30 30 23 20 24 33 30 30 28 13 18 33 30 30 33 30 30 33 30 30 34 30 15
++23 20 24 33 30 30 28 13 18 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37
++32 39 24 47 39 42 47 44 42 47 44 42 51 49 42 53 46 48 62 47 47 62 47 47
++63 55 51 63 55 51 65 55 54 65 55 54 65 55 54 75 56 53 65 55 54 75 56 53
++75 56 53 75 56 53 75 56 53 75 56 53 63 55 51 62 47 47 60 49 42 53 46 48
++55 39 37 55 39 37 47 39 42 36 35 37 36 35 37 33 30 30 33 30 30 34 30 15
++28 13 18 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 26 25 15 26 24 32 33 30 30 23 20 24 33 30 30 34 30 15 33 30 30
++26 25 15 33 30 30 33 30 30 33 30 30 26 25 15 33 30 30 33 30 30 26 25 15
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 36 35 37 36 35 37 36 35 37 33 30 32 36 35 37 33 30 30 33 30 30
++36 35 37 33 30 30 36 35 37 33 30 30 31 35 35 33 30 30 33 30 32 36 35 37
++33 30 32 33 30 32 33 30 32 26 24 32 26 24 32 26 24 32 33 30 30 23 20 24
++33 30 30 22 25 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37
++52 30 35 33 30 30 36 35 37 33 30 30 52 30 35 32 39 24 36 35 37 47 47 21
++36 35 37 36 35 37 47 47 21 42 38 42 36 35 37 47 39 42 32 39 24 53 35 37
++33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 33 30 30 26 30 28 26 24 32
++26 24 32 23 20 24 26 24 32 23 20 24 23 20 24 26 24 32 23 18 22 26 12 13
++49 13 16 88 44 51 120 63 71 120 63 71 122 49 24 102 33 26 161 55 23 122 49 24
++167 63 71 102 33 26 161 55 23 102 33 26 161 55 23 161 55 23 161 55 23 161 55 23
++176 103 41 195 113 123 219 175 47 195 113 123 176 103 41 176 103 41 161 55 23 168 102 88
++219 175 47 201 146 124 168 102 88 177 171 115 157 148 53 201 146 124 201 146 124 177 171 115
++197 171 123 197 171 123 197 171 123 197 171 123 197 171 123 201 146 124 197 171 123 197 171 123
++217 168 156 197 171 123 217 168 156 197 171 123 217 168 156 197 171 123 189 165 168 197 171 123
++217 168 156 177 169 143 217 168 156 177 169 143 197 171 123 177 169 143 197 171 123 201 146 124
++177 169 143 168 146 127 201 146 124 146 150 115 138 126 108 138 126 108 117 99 86 99 93 84
++75 81 82 46 59 71 46 59 71 57 43 64 45 57 61 34 42 77 45 57 61 95 95 116
++166 176 200 208 221 247 232 215 228 201 216 228 201 216 228 226 221 247 201 216 228 208 221 247
++201 216 228 201 216 228 201 216 228 233 241 227 201 216 228 189 165 168 189 165 168 189 165 168
++189 165 168 217 168 156 177 169 143 197 171 123 217 168 156 197 171 123 177 169 143 201 146 124
++197 171 123 177 169 143 197 171 123 201 146 124 197 171 123 217 168 156 197 171 123 217 168 156
++214 214 134 217 168 156 214 214 134 217 168 156 208 215 180 222 171 182 208 215 180 217 168 156
++177 169 143 168 146 127 168 146 127 217 168 156 208 215 180 225 222 201 233 241 227 233 241 227
++233 241 227 251 251 247 251 251 247 251 251 247 251 251 247 246 237 247 251 251 247 240 251 247
++246 237 247 240 251 247 240 251 247 235 238 247 221 238 247 226 221 247 221 238 247 226 221 247
++233 241 227 231 239 247 235 238 247 231 239 247 231 239 247 231 239 247 231 239 247 235 238 247
++240 251 247 240 251 247 231 239 247 235 238 247 231 239 247 221 238 247 201 216 228 233 241 227
++240 251 247 251 251 247 231 239 247 201 216 228 201 216 228 194 199 226 194 199 226 194 199 226
++194 199 226 194 199 226 201 216 228 201 216 228 201 216 228 208 221 247 201 216 228 208 221 247
++201 216 228 226 221 247 208 221 247 226 221 247 221 238 247 221 238 247 221 238 247 235 238 247
++246 237 247 233 241 227 225 222 201 189 165 168 177 169 143 217 168 156 177 169 143 217 168 156
++197 171 123 217 168 156 177 169 143 217 168 156 217 168 156 177 169 143 217 168 156 177 169 143
++217 168 156 177 169 143 217 168 156 177 169 143 177 169 143 217 168 156 177 169 143 217 168 156
++177 169 143 201 146 124 189 165 168 177 169 143 201 146 124 177 169 143 201 146 124 177 169 143
++201 146 124 177 169 143 201 146 124 177 169 143 197 171 123 177 169 143 201 146 124 177 169 143
++201 146 124 177 169 143 177 169 143 177 169 143 201 146 124 177 169 143 201 146 124 177 169 143
++168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 168 146 127 201 146 124 168 146 127
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 163 117 123 146 150 115
++168 102 88 146 150 115 168 102 88 146 150 115 138 126 108 138 126 108 168 102 88 138 126 108
++163 117 123 138 126 108 163 117 123 138 126 108 168 102 88 138 126 108 138 126 108 117 114 76
++138 126 108 138 126 108 163 117 123 138 126 108 168 102 88 117 99 86 117 112 45 120 63 71
++117 112 45 117 99 86 168 102 88 138 126 108 168 146 127 201 146 124 168 146 127 201 146 124
++177 169 143 201 146 124 168 146 127 168 146 127 168 146 127 163 117 123 138 126 108 117 99 86
++117 99 86 101 83 74 101 74 26 88 73 31 88 73 31 120 63 71 168 102 88 168 102 88
++138 126 108 168 102 88 168 102 88 138 126 108 168 102 88 117 114 76 120 63 71 101 74 26
++101 83 74 117 112 45 120 63 71 117 112 45 168 102 88 163 117 123 201 146 124 201 146 124
++197 171 123 201 146 124 168 146 127 201 146 124 177 169 143 168 146 127 201 146 124 168 146 127
++168 146 127 201 146 124 168 146 127 201 146 124 201 146 124 177 169 143 201 146 124 177 169 143
++201 146 124 168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 201 146 124 168 146 127
++201 146 124 168 146 127 168 102 88 201 146 124 168 102 88 177 171 115 195 113 123 168 146 127
++195 113 123 168 146 127 168 146 127 201 146 124 201 146 124 217 168 156 201 146 124 201 146 124
++201 146 124 168 146 127 201 146 124 201 146 124 168 146 127 201 146 124 168 102 88 168 146 127
++168 102 88 117 114 76 120 63 71 101 83 74 120 63 71 117 99 86 101 83 74 117 99 86
++101 83 74 75 63 62 51 49 42 47 47 21 47 39 42 47 39 42 47 47 21 36 35 37
++47 47 21 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37 36 35 37 36 35 37
++36 35 37 42 38 42 36 35 37 42 38 42 47 39 42 47 44 42 47 44 42 48 50 48
++53 46 48 48 50 48 55 55 48 55 55 48 59 55 55 59 55 55 59 55 55 59 55 55
++59 57 61 65 63 61 65 63 61 75 72 67 75 72 67 75 72 67 75 81 82 88 69 84
++75 81 82 88 83 88 88 83 88 88 83 88 88 83 88 75 81 90 88 83 88 78 98 90
++88 83 88 77 90 100 88 83 88 77 90 100 95 91 100 77 90 100 95 91 100 77 90 100
++88 83 88 75 81 90 75 81 90 75 81 82 59 69 70 59 69 70 59 69 70 59 69 70
++53 63 61 54 57 61 45 57 61 54 57 61 45 57 61 48 44 48 45 57 61 43 42 50
++45 57 61 43 42 50 43 42 50 45 57 61 43 42 50 43 42 50 43 42 50 45 57 61
++32 40 58 43 42 50 43 42 50 45 57 61 43 42 50 32 40 58 43 42 50 32 40 58
++43 42 50 35 47 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 42 47 42
++42 41 42 48 44 48 48 44 48 48 50 48 48 44 48 48 50 48 53 46 48 52 55 48
++52 55 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48
++55 55 48 52 55 48 48 50 48 51 49 42 48 50 48 48 50 48 48 44 48 48 44 48
++43 42 50 43 42 50 42 41 42 34 40 43 43 42 50 43 42 50 34 40 43 42 41 42
++42 41 42 43 42 50 42 41 42 42 41 42 42 41 42 42 41 42 42 47 42 42 41 42
++48 44 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 51 49 42 51 49 42
++52 55 48 53 46 48 59 55 55 52 55 48 57 43 51 55 55 48 53 46 48 53 46 48
++48 50 48 48 50 48 53 46 48 51 49 42 53 46 48 48 50 48 53 46 48 48 50 48
++53 46 48 48 44 48 48 50 48 48 44 48 48 50 48 42 47 42 42 47 42 48 44 48
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 38 42 36 35 37 36 35 37
++
++17 12 17 15 17 7 17 12 17 17 12 17 15 17 7 13 4 7 17 12 17 15 17 7
++17 12 17 13 4 7 7 12 13 7 12 13 13 4 7 7 12 13 7 12 13 7 12 13
++13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 7 12 13 17 12 17
++7 12 13 17 12 17 17 12 17 7 12 13 17 12 17 17 12 17 17 12 17 14 16 17
++23 18 22 23 18 22 14 16 17 22 24 13 23 20 24 23 20 24 23 20 24 26 25 15
++22 25 24 23 18 22 22 25 24 22 25 24 23 18 22 23 20 24 22 25 24 23 20 24
++22 25 24 22 25 24 22 25 24 23 18 22 23 18 22 26 25 15 22 25 24 23 20 24
++26 25 15 23 20 24 22 25 24 26 25 15 23 20 24 23 20 24 26 25 15 26 30 28
++23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 22 25 24 26 24 32 22 25 24
++26 24 32 22 25 24 26 24 32 33 30 30 26 24 32 33 30 30 26 24 32 30 30 34
++33 30 32 36 35 37 33 30 30 36 35 37 36 35 37 36 35 37 36 35 37 32 39 24
++53 35 37 36 35 37 36 35 37 32 39 24 36 35 37 33 30 30 36 35 37 33 30 32
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 32 33 30 30 33 30 30 33 30 30
++23 20 24 33 30 30 23 20 24 23 20 24 34 30 15 23 20 24 33 30 30 23 20 24
++23 20 24 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 33 30 30 23 20 24
++28 13 18 33 30 30 28 13 18 33 30 30 23 20 24 34 30 15 23 20 24 33 30 30
++33 30 30 23 20 24 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 52 30 35
++36 35 37 47 39 42 47 44 42 47 44 42 51 49 42 51 49 42 53 46 48 63 55 51
++62 47 47 63 55 51 63 55 51 65 55 54 65 63 61 65 55 54 75 56 53 63 55 51
++75 56 53 65 55 54 75 56 53 65 55 54 62 47 47 60 49 42 53 46 48 55 39 37
++47 44 42 47 39 42 55 39 37 33 30 30 52 30 35 33 30 30 52 30 35 28 13 18
++33 30 30 22 25 24 22 25 24 23 18 22 23 20 24 26 25 15 23 20 24 26 25 15
++23 20 24 33 30 30 23 20 24 23 20 24 33 30 30 33 30 30 26 24 32 33 30 30
++23 20 24 33 30 30 23 20 24 33 30 30 33 30 30 23 20 24 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++36 35 37 36 35 37 33 30 32 33 30 36 33 30 36 36 35 37 33 30 36 33 30 30
++36 35 37 31 35 35 33 30 32 31 35 35 33 30 32 33 30 32 33 30 32 33 30 32
++33 30 36 33 30 32 30 30 34 30 30 34 26 24 32 26 24 32 23 20 24 26 30 28
++26 24 32 23 20 24 33 30 30 22 25 24 33 30 30 33 30 30 33 30 30 33 30 30
++32 39 24 36 35 37 52 30 35 32 39 24 36 35 37 36 35 37 53 35 37 36 35 37
++53 35 37 36 35 37 42 38 42 47 39 42 47 47 21 36 35 37 53 35 37 36 35 37
++32 39 24 52 30 35 33 30 30 36 35 37 33 30 30 33 30 30 26 24 32 33 30 30
++26 24 32 26 24 32 23 20 24 23 20 24 23 20 24 22 25 24 23 18 22 28 13 18
++52 30 15 59 36 42 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 167 63 71
++122 49 24 167 63 71 161 55 23 122 49 24 161 55 23 161 55 23 176 103 41 195 113 123
++227 171 124 219 175 47 161 55 23 161 55 23 122 49 24 176 103 41 176 103 41 201 146 124
++195 113 123 201 146 124 157 148 53 201 146 124 201 146 124 177 171 115 201 146 124 197 171 123
++201 146 124 197 171 123 197 171 123 197 171 123 201 146 124 197 171 123 197 171 123 217 168 156
++197 171 123 217 168 156 197 171 123 217 168 156 214 214 134 217 168 156 197 171 123 217 168 156
++197 171 123 197 171 123 197 171 123 177 169 143 197 171 123 177 169 143 201 146 124 168 146 127
++201 146 124 168 146 127 168 146 127 138 126 108 168 102 88 138 126 108 138 102 108 95 91 100
++59 69 70 57 43 64 34 42 77 45 57 61 34 42 77 45 57 61 32 40 58 77 90 100
++166 174 181 208 221 247 221 238 247 208 221 247 201 216 228 201 216 228 201 216 228 226 221 247
++201 216 228 201 216 228 201 216 228 232 215 228 208 215 180 188 180 202 189 165 168 208 215 180
++217 168 156 208 215 180 217 168 156 217 168 156 177 169 143 217 168 156 197 171 123 177 169 143
++217 168 156 197 171 123 177 169 143 217 168 156 177 169 143 197 171 123 217 168 156 177 169 143
++217 168 156 189 165 168 217 168 156 222 171 182 214 214 134 217 168 156 208 215 180 208 215 180
++217 168 156 168 146 127 138 126 108 138 126 108 168 146 127 217 168 156 225 222 201 225 222 201
++233 241 227 233 241 227 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 235 238 247 240 251 247 235 238 247 231 239 247 231 239 247 235 238 247 240 251 247
++240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247
++240 251 247 240 251 247 235 238 247 240 251 247 240 251 247 240 251 247 240 251 247 251 251 247
++240 251 247 251 251 247 240 251 247 226 221 247 194 199 226 188 180 202 188 180 202 188 180 202
++188 180 202 194 199 226 188 180 202 194 199 226 194 199 226 194 199 226 194 199 226 201 216 228
++201 216 228 201 216 228 201 216 228 208 221 247 201 216 228 226 221 247 201 216 228 221 238 247
++232 215 228 225 222 201 188 180 202 217 168 156 177 169 143 177 169 143 217 168 156 177 169 143
++217 168 156 189 165 168 217 168 156 208 215 180 217 168 156 217 168 156 177 169 143 217 168 156
++177 169 143 217 168 156 177 169 143 201 146 124 217 168 156 177 169 143 201 146 124 177 169 143
++201 146 124 177 169 143 177 169 143 201 146 124 177 169 143 168 146 127 177 169 143 201 146 124
++177 169 143 168 146 127 177 169 143 201 146 124 177 169 143 168 146 127 177 169 143 201 146 124
++177 169 143 168 146 127 168 146 127 168 146 127 177 169 143 168 146 127 168 146 127 201 146 124
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 163 117 123
++168 146 127 163 117 123 138 126 108 163 117 123 138 126 108 168 102 88 146 150 115 168 102 88
++146 150 115 168 102 88 138 126 108 138 126 108 168 102 88 138 126 108 138 126 108 168 102 88
++138 126 108 138 102 108 157 148 53 138 126 108 138 126 108 168 102 88 117 114 76 117 99 86
++101 83 74 120 63 71 117 112 45 101 83 74 88 73 62 88 44 51 88 73 31 88 44 51
++88 73 31 88 44 51 101 74 26 120 63 71 117 99 86 117 99 86 138 126 108 138 126 108
++168 102 88 138 126 108 117 114 76 168 102 88 117 99 86 101 83 74 101 74 26 88 44 51
++76 46 20 55 39 18 76 46 20 76 46 20 120 63 71 117 127 86 168 102 88 177 171 115
++146 150 115 163 117 123 157 148 53 168 146 127 168 146 127 146 150 115 168 102 88 138 126 108
++168 102 88 138 126 108 168 102 88 168 102 88 146 150 115 168 146 127 168 146 127 201 146 124
++168 146 127 177 169 143 201 146 124 168 146 127 197 171 123 201 146 124 177 169 143 168 146 127
++197 171 123 168 146 127 197 171 123 168 146 127 177 169 143 201 146 124 177 169 143 201 146 124
++201 146 124 168 146 127 168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 201 146 124
++168 102 88 168 146 127 201 146 124 177 171 115 168 146 127 201 146 124 168 146 127 168 102 88
++146 150 115 195 113 123 168 146 127 168 146 127 201 146 124 177 169 143 201 146 124 177 169 143
++201 146 124 168 146 127 201 146 124 168 146 127 201 146 124 201 146 124 168 146 127 168 146 127
++163 117 123 168 102 88 120 63 71 88 73 31 76 46 20 76 46 20 76 46 20 76 46 20
++60 49 42 55 39 37 47 47 21 53 35 37 47 39 42 42 41 42 53 35 37 36 35 37
++36 35 37 47 47 21 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 42 38 42 42 41 42 42 41 42 47 44 42 53 46 48 48 50 48
++48 50 48 59 55 55 55 55 48 55 55 48 59 55 55 59 55 55 65 57 61 65 63 61
++65 63 61 65 63 61 59 69 70 75 72 67 75 64 82 75 81 76 75 81 82 75 81 82
++88 83 88 75 81 82 88 83 88 88 83 88 78 98 90 88 83 88 90 98 89 77 90 100
++95 91 100 95 91 100 90 98 89 95 91 100 95 91 100 77 90 100 95 91 100 88 83 88
++77 90 100 75 81 90 75 81 90 75 81 90 75 81 82 60 81 83 59 69 70 59 69 70
++45 57 61 54 57 61 54 57 61 54 57 61 45 57 61 57 43 64 45 57 61 48 50 48
++43 42 50 43 42 50 45 57 61 43 42 50 43 42 50 45 57 61 43 42 50 43 42 50
++43 42 50 32 40 58 43 42 50 32 40 58 43 42 50 43 42 50 32 40 58 43 42 50
++43 42 50 43 42 50 35 47 50 42 41 42 35 47 50 42 41 42 43 42 50 47 44 42
++42 47 42 43 42 50 42 47 42 43 42 50 48 44 48 48 50 48 51 49 42 48 44 48
++51 49 42 52 55 48 53 46 48 55 55 48 53 46 48 59 55 55 55 55 48 52 55 48
++53 46 48 52 55 48 48 50 48 47 49 42 47 49 42 48 44 48 48 50 48 48 50 48
++48 44 48 35 47 50 43 42 50 42 41 42 43 42 50 42 41 42 43 42 50 43 42 50
++43 42 50 42 47 42 43 42 50 42 47 42 42 41 42 42 41 42 42 41 42 43 42 50
++42 47 42 43 42 50 48 44 48 47 49 42 53 46 48 48 50 48 51 49 42 48 50 48
++53 46 48 52 55 48 52 55 48 55 55 48 59 55 55 55 55 48 59 55 55 55 55 48
++48 50 48 48 50 48 53 46 48 51 49 42 53 46 48 48 50 48 51 49 42 48 50 48
++48 50 48 51 49 42 48 44 48 48 44 48 48 44 48 48 44 48 47 44 42 48 44 48
++42 41 42 47 44 42 42 41 42 42 47 42 36 35 37 42 38 42 36 35 37 36 35 37
++
++15 17 7 17 12 17 15 17 7 17 12 17 13 4 7 15 17 7 7 12 13 7 12 13
++17 12 17 7 12 13 17 12 17 7 12 13 7 12 13 7 12 13 17 12 17 7 12 13
++17 12 17 7 12 13 7 12 13 17 12 17 13 4 7 17 12 17 7 12 13 13 4 7
++7 12 13 17 12 17 17 12 17 17 12 17 17 12 17 17 12 17 17 12 17 23 18 22
++15 22 17 23 18 22 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24
++23 18 22 23 18 22 22 24 13 23 18 22 15 22 17 23 20 24 23 18 22 26 25 15
++23 20 24 26 25 15 23 20 24 23 20 24 22 25 24 26 25 15 23 20 24 26 25 15
++23 20 24 26 25 15 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++22 25 24 23 20 24 23 20 24 33 30 30 26 24 32 33 30 30 33 30 30 30 30 34
++33 30 36 33 30 32 36 35 37 33 30 30 33 30 30 52 30 35 32 39 24 33 30 32
++33 30 30 32 39 24 33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++23 20 24 34 30 15 23 20 24 28 13 18 26 24 32 23 20 24 34 30 15 23 20 24
++33 30 30 23 20 24 33 30 30 23 18 22 23 20 24 33 30 30 23 18 22 23 20 24
++26 25 15 23 20 24 23 20 24 23 20 24 33 30 30 23 20 24 23 20 24 26 25 15
++23 20 24 23 20 24 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30 36 35 37
++36 35 37 55 39 37 42 41 42 47 44 42 47 44 42 60 49 42 53 46 48 62 47 47
++55 55 48 62 47 47 62 47 47 63 55 51 65 55 54 65 55 54 63 55 45 63 55 45
++75 56 53 63 55 51 65 55 54 62 47 47 62 47 47 60 49 42 55 39 37 51 49 42
++55 39 37 53 35 37 36 35 37 32 39 24 33 30 30 33 30 30 33 30 30 23 20 24
++23 20 24 28 13 18 23 20 24 26 25 15 23 20 24 23 20 24 23 20 24 33 30 30
++23 20 24 23 20 24 33 30 30 33 30 30 33 30 30 23 20 24 33 30 30 34 30 15
++33 30 30 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32
++33 30 32 33 30 32 33 30 32 31 35 35 33 30 32 31 35 35 33 30 30 30 30 34
++33 30 32 26 24 32 26 24 32 26 24 32 26 30 28 26 24 32 26 24 32 33 30 30
++26 24 32 26 30 28 26 30 28 33 30 30 33 30 30 33 30 30 33 30 32 33 30 32
++33 30 30 36 35 37 33 30 30 52 30 35 32 39 24 36 35 37 32 39 24 53 35 37
++36 35 37 47 47 21 36 35 37 53 35 37 36 35 37 47 39 42 36 35 37 32 39 24
++52 30 35 32 39 24 33 30 30 32 39 24 33 30 30 33 30 30 33 30 30 22 25 24
++22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 18 22 28 13 18
++28 13 18 52 30 15 76 18 19 76 18 19 102 33 26 161 55 23 167 63 71 102 33 26
++161 55 23 122 49 24 102 33 26 161 55 23 161 55 23 167 63 71 227 171 124 227 171 124
++176 103 41 161 55 23 76 18 19 88 30 18 122 49 24 168 102 88 168 102 88 177 171 115
++157 148 53 201 146 124 201 146 124 177 171 115 201 146 124 201 146 124 197 171 123 201 146 124
++197 171 123 201 146 124 197 171 123 201 146 124 217 168 156 197 171 123 217 168 156 197 171 123
++217 168 156 217 168 156 214 214 134 217 168 156 197 171 123 217 168 156 177 169 143 197 171 123
++189 165 168 217 168 156 197 171 123 197 171 123 201 146 124 168 146 127 168 146 127 168 146 127
++146 150 115 168 102 88 138 126 108 168 102 88 117 127 86 138 126 108 146 150 115 150 144 154
++95 108 128 60 63 87 32 40 58 32 40 58 45 57 61 34 42 77 46 59 71 95 95 116
++166 176 200 221 238 247 221 238 247 208 221 247 201 216 228 201 216 228 201 216 228 201 216 228
++201 216 228 232 215 228 201 216 228 225 222 201 188 180 202 208 215 180 222 171 182 208 215 180
++208 215 180 222 171 182 214 214 134 217 168 156 217 168 156 197 171 123 177 169 143 197 171 123
++197 171 123 217 168 156 197 171 123 197 171 123 217 168 156 197 171 123 217 168 156 197 171 123
++217 168 156 214 214 134 217 168 156 214 214 134 217 168 156 208 215 180 222 171 182 225 222 201
++208 215 180 197 171 123 168 146 127 138 126 108 138 126 108 146 151 137 189 165 168 208 215 180
++232 215 228 233 241 227 233 241 227 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 235 238 247 221 238 247 226 221 247 221 238 247 235 238 247 240 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 240 251 247
++251 251 247 240 251 247 240 251 247 251 251 247 240 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 231 239 247 194 199 226 166 176 200 188 180 202 188 180 202
++194 199 226 194 199 226 194 199 226 194 199 226 201 216 228 201 216 228 226 221 247 194 199 226
++201 216 228 194 199 226 194 199 226 194 199 226 201 216 228 194 199 226 201 216 228 225 222 201
++201 216 228 208 215 180 189 165 168 177 169 143 177 169 143 177 169 143 217 168 156 177 169 143
++217 168 156 177 169 143 214 214 134 189 165 168 177 169 143 214 214 134 189 165 168 217 168 156
++177 169 143 217 168 156 177 169 143 189 165 168 177 169 143 217 168 156 177 169 143 189 165 168
++177 169 143 217 168 156 177 169 143 177 169 143 201 146 124 177 169 143 201 146 124 177 169 143
++168 146 127 201 146 124 168 146 127 177 169 143 168 146 127 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 138 126 108 146 150 115
++168 102 88 146 150 115 168 102 88 146 150 115 138 126 108 138 126 108 138 126 108 138 126 108
++138 126 108 138 126 108 138 126 108 117 114 76 117 114 76 138 102 108 117 114 76 117 114 76
++117 99 86 117 114 76 101 83 74 101 83 74 98 106 55 101 83 74 101 74 26 88 73 62
++88 73 31 76 46 20 75 56 53 76 46 20 76 46 20 76 46 20 76 46 20 75 73 36
++76 46 20 76 46 20 76 46 20 88 73 31 101 74 26 120 63 71 101 74 26 101 83 74
++88 73 62 88 73 62 88 73 62 88 73 31 76 46 20 76 46 20 52 30 35 76 46 20
++53 35 17 76 46 20 88 73 31 120 63 71 168 102 88 146 150 115 168 102 88 146 150 115
++168 102 88 168 146 127 168 102 88 168 146 127 168 102 88 177 171 115 168 146 127 201 146 124
++177 171 115 201 146 124 177 171 115 201 146 124 201 146 124 201 146 124 177 171 115 168 146 127
++201 146 124 201 146 124 168 146 127 201 146 124 168 146 127 197 171 123 201 146 124 201 146 124
++168 146 127 201 146 124 168 146 127 201 146 124 201 146 124 168 146 127 201 146 124 177 169 143
++201 146 124 168 146 127 201 146 124 168 146 127 177 171 115 168 146 127 201 146 124 146 150 115
++201 146 124 168 146 127 168 102 88 201 146 124 168 102 88 201 146 124 168 102 88 177 171 115
++195 113 123 168 146 127 168 102 88 201 146 124 201 146 124 201 146 124 177 169 143 201 146 124
++201 146 124 201 146 124 168 146 127 201 146 124 168 146 127 168 146 127 195 113 123 168 146 127
++168 102 88 168 146 127 138 126 108 101 83 74 88 44 51 55 39 37 53 35 17 52 30 35
++53 35 37 47 47 21 36 35 37 36 35 37 53 35 37 36 35 37 36 35 37 36 35 37
++32 39 24 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++47 39 42 36 35 37 47 44 42 42 41 42 47 44 42 48 50 48 48 50 48 59 55 55
++59 55 55 48 50 48 59 55 55 59 55 55 59 57 61 65 63 61 59 57 61 65 63 61
++65 63 61 75 72 67 75 72 67 75 64 82 75 81 76 75 81 76 88 69 84 88 83 88
++88 83 88 88 83 88 88 83 88 90 98 89 95 91 100 90 98 89 77 90 100 95 91 100
++90 98 89 94 105 108 95 91 100 77 90 100 94 105 108 78 98 90 95 91 100 77 90 100
++90 98 89 75 81 90 75 81 90 75 81 82 75 81 82 59 69 70 75 64 82 59 69 70
++53 63 61 54 57 61 54 57 61 54 57 61 53 46 48 45 57 61 48 50 48 45 57 61
++48 50 48 45 57 61 48 44 48 43 42 50 45 57 61 43 42 50 43 42 50 45 57 61
++43 42 50 43 42 50 43 42 50 43 42 50 32 40 58 43 42 50 43 42 50 32 40 58
++43 42 50 35 47 50 43 42 50 34 40 43 43 42 50 43 42 50 42 41 42 43 42 50
++43 42 50 42 41 42 43 42 50 48 44 48 43 42 50 47 49 42 48 44 48 48 50 48
++53 46 48 53 46 48 55 55 48 53 46 48 55 55 48 55 55 48 53 46 48 48 50 48
++53 46 48 48 50 48 53 46 48 48 50 48 48 50 48 48 44 48 48 44 48 48 44 48
++43 42 50 42 47 42 42 41 42 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50
++43 42 50 42 47 42 43 42 50 42 47 42 43 42 50 47 44 42 42 47 42 47 44 42
++48 44 48 48 44 48 48 50 48 48 50 48 48 50 48 48 50 48 53 46 48 53 46 48
++53 46 48 53 46 48 59 55 55 53 46 48 55 55 48 57 43 51 55 55 48 53 46 48
++53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 55 55 48
++53 46 48 53 46 48 48 50 48 48 44 48 47 44 42 47 44 42 47 44 42 42 41 42
++47 44 42 48 44 48 42 41 42 42 41 42 42 41 42 36 35 37 36 35 37 36 35 37
++
++17 12 17 23 10 10 17 12 17 15 17 7 13 4 7 15 17 7 13 4 7 15 17 7
++17 12 17 17 12 17 7 10 17 17 12 17 7 12 13 13 4 7 7 12 13 17 12 17
++7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17
++7 12 13 17 12 17 14 16 17 14 16 17 17 12 17 17 12 17 23 18 22 23 18 22
++23 18 22 23 20 24 26 25 15 22 25 24 26 25 15 26 30 28 23 20 24 26 24 32
++26 30 28 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 23 18 22
++23 20 24 22 25 24 23 20 24 22 24 13 23 18 22 22 24 13 23 18 22 22 24 13
++23 18 22 23 18 22 26 25 15 23 20 24 23 20 24 23 20 24 23 20 24 23 18 22
++23 18 22 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 33 30 30 26 24 32 26 24 32 30 30 34
++33 30 32 33 30 32 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 23 20 24 33 30 30 23 20 24
++23 20 24 23 20 24 23 18 22 33 30 30 28 13 18 23 20 24 23 20 24 23 20 24
++26 25 15 23 20 24 28 13 18 33 30 30 23 20 24 26 24 32 23 20 24 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24
++23 20 24 23 20 24 23 20 24 26 24 32 33 30 32 33 30 32 33 30 30 36 35 37
++53 35 37 36 35 37 47 44 42 55 39 37 51 49 42 53 46 48 53 46 48 55 55 48
++60 49 42 60 49 42 62 47 47 62 47 47 75 56 53 62 47 47 63 55 45 63 55 45
++63 55 45 75 56 53 65 55 54 62 47 47 60 49 42 62 47 47 55 39 37 55 39 37
++47 39 42 53 35 37 32 39 24 52 30 35 33 30 30 33 30 30 33 30 30 28 13 18
++33 30 30 23 20 24 23 20 24 28 13 18 23 20 24 23 20 24 26 25 15 23 20 24
++23 20 24 33 30 30 26 25 15 23 20 24 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 32 33 30 32 33 30 32 33 30 36 33 30 36 33 30 32 30 30 34 33 30 32
++33 30 36 33 30 32 31 35 35 30 30 34 33 30 32 33 30 32 26 30 28 26 24 32
++26 24 32 26 24 32 33 30 30 26 24 32 26 24 32 22 25 24 26 24 32 33 30 30
++26 24 32 26 30 28 26 24 32 23 20 24 33 30 30 33 30 32 33 30 32 33 30 30
++33 30 30 33 30 30 36 35 37 32 39 24 52 30 35 32 39 24 52 30 35 36 35 37
++33 30 30 36 35 37 36 35 37 33 30 30 36 35 37 47 47 21 36 35 37 53 35 37
++33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 33 30 30 26 25 15 26 30 28
++22 25 24 23 20 24 22 23 31 23 20 24 23 18 22 23 20 24 23 20 24 28 13 18
++28 13 18 49 13 16 88 44 51 102 33 26 102 33 26 102 33 26 102 33 26 161 55 23
++122 49 24 161 55 23 161 55 23 161 55 23 176 103 41 219 175 47 227 171 124 176 103 41
++88 30 18 49 13 16 88 30 18 101 74 26 168 102 88 157 148 53 177 171 115 168 102 88
++177 171 115 195 113 123 157 148 53 201 146 124 201 146 124 197 171 123 197 171 123 197 171 123
++197 171 123 201 146 124 197 171 123 217 168 156 177 169 143 197 171 123 217 168 156 197 171 123
++217 168 156 197 171 123 217 168 156 217 168 156 177 169 143 217 168 156 197 171 123 217 168 156
++197 171 123 197 171 123 177 169 143 201 146 124 168 146 127 168 146 127 168 146 127 168 102 88
++168 146 127 138 126 108 138 126 108 138 102 108 117 99 86 138 102 108 166 174 181 201 216 228
++166 176 200 98 121 131 46 59 71 32 40 58 34 42 77 32 40 58 46 59 71 98 121 131
++188 180 202 226 221 247 221 238 247 208 221 247 226 221 247 208 221 247 201 216 228 194 199 226
++201 216 228 201 216 228 225 222 201 188 180 202 208 215 180 222 171 182 208 215 180 222 171 182
++217 168 156 208 215 180 217 168 156 217 168 156 177 169 143 217 168 156 197 171 123 217 168 156
++177 169 143 197 171 123 177 169 143 217 168 156 197 171 123 197 171 123 217 168 156 197 171 123
++197 171 123 217 168 156 197 171 123 217 168 156 217 168 156 222 171 182 214 214 134 217 168 156
++225 222 201 208 215 180 177 169 143 146 150 115 141 116 139 146 151 137 189 165 168 166 174 181
++222 171 182 225 222 201 225 222 201 233 241 227 233 241 227 251 251 247 233 241 227 251 251 247
++251 251 247 251 251 247 235 238 247 201 216 228 185 202 202 201 216 228 221 238 247 235 238 247
++240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 240 251 247 231 239 247 194 199 226 166 176 200 194 199 226 194 199 226
++194 199 226 194 199 226 201 216 228 201 216 228 201 216 228 194 199 226 194 199 226 188 180 202
++188 180 202 188 180 202 188 180 202 188 180 202 194 199 226 201 216 228 201 216 228 201 216 228
++188 180 202 189 165 168 166 156 164 201 146 124 177 169 143 189 165 168 197 171 123 177 169 143
++177 169 143 217 168 156 189 165 168 217 168 156 177 169 143 217 168 156 189 165 168 197 171 123
++189 165 168 197 171 123 177 169 143 197 171 123 217 168 156 177 169 143 217 168 156 177 169 143
++217 168 156 177 169 143 201 146 124 189 165 168 201 146 124 177 169 143 177 169 143 168 146 127
++177 169 143 177 169 143 177 169 143 168 146 127 201 146 124 168 146 127 177 169 143 168 146 127
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 168 146 127 163 117 123 138 126 108 168 146 127 168 102 88
++138 126 108 138 126 108 138 126 108 138 126 108 168 102 88 138 126 108 168 102 88 117 114 76
++168 102 88 117 99 86 117 99 86 117 99 86 117 99 86 101 83 74 101 83 74 88 73 62
++88 73 31 75 56 53 88 73 31 88 44 51 88 73 31 75 56 53 75 56 53 76 46 20
++88 73 31 75 56 53 88 73 31 88 73 62 88 73 31 88 73 62 101 83 74 101 83 74
++88 73 62 75 56 53 75 56 53 75 56 53 75 56 53 88 73 31 88 73 62 88 44 51
++88 73 31 76 46 20 76 44 53 76 46 20 59 36 42 60 49 42 76 46 20 88 44 51
++101 74 26 101 83 74 168 102 88 168 146 127 157 148 53 138 126 108 168 102 88 157 148 53
++168 102 88 138 126 108 168 102 88 157 148 53 168 102 88 168 102 88 146 150 115 168 102 88
++168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 168 146 127 201 146 124 201 146 124
++201 146 124 177 169 143 201 146 124 168 146 127 201 146 124 201 146 124 177 169 143 201 146 124
++177 169 143 197 171 123 201 146 124 168 146 127 197 171 123 201 146 124 197 171 123 201 146 124
++177 171 115 201 146 124 177 171 115 168 102 88 168 146 127 201 146 124 168 102 88 168 146 127
++201 146 124 177 171 115 201 146 124 177 171 115 201 146 124 168 146 127 177 171 115 195 113 123
++177 171 115 168 102 88 168 146 127 168 146 127 163 117 123 168 146 127 201 146 124 201 146 124
++201 146 124 168 146 127 201 146 124 201 146 124 201 146 124 168 102 88 177 171 115 168 102 88
++138 126 108 201 146 124 168 146 127 168 146 127 117 99 86 101 83 74 60 49 42 52 30 35
++33 30 30 42 41 42 55 39 37 36 35 37 42 41 42 32 39 24 53 35 37 32 39 24
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 42 41 42 42 41 42 47 44 42 48 44 48 48 50 48 48 50 48 48 50 48
++59 55 55 59 55 55 54 57 61 59 55 55 59 57 61 59 57 61 65 63 61 65 63 61
++65 63 61 59 69 70 75 81 82 75 81 76 75 64 82 75 81 82 88 83 88 78 98 90
++88 83 88 78 98 90 88 83 88 95 91 100 95 91 100 95 91 100 95 91 100 95 91 100
++94 105 108 95 91 100 94 105 108 94 105 108 78 98 90 94 105 108 95 91 100 95 91 100
++77 90 100 78 98 90 88 83 88 75 81 82 75 81 82 75 81 82 59 69 70 59 69 70
++63 59 71 53 63 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 48 50 48
++54 57 61 48 50 48 57 43 64 43 42 50 48 50 48 43 42 50 48 50 48 43 42 50
++43 42 50 43 42 50 45 57 61 32 40 58 43 42 50 43 42 50 32 40 58 43 42 50
++35 47 50 43 42 50 35 47 50 43 42 50 34 40 43 42 41 42 42 41 42 43 42 50
++42 41 42 43 42 50 43 42 50 43 42 50 43 42 50 48 44 48 48 44 48 48 44 48
++48 50 48 53 46 48 53 46 48 53 46 48 55 55 48 53 46 48 59 55 55 53 46 48
++52 55 48 53 46 48 48 50 48 48 50 48 53 46 48 48 50 48 48 50 48 48 44 48
++48 44 48 42 47 42 43 42 50 43 42 50 42 47 42 43 42 50 43 42 50 48 50 48
++43 42 50 48 44 48 48 44 48 48 44 48 42 41 42 42 47 42 47 44 42 43 42 50
++48 44 48 48 44 48 48 44 48 48 50 48 53 46 48 48 44 48 53 46 48 53 46 48
++55 55 48 53 46 48 53 46 48 59 55 55 53 46 48 59 55 55 59 55 55 53 46 48
++55 55 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 52 55 48 53 46 48
++52 55 48 53 46 48 53 46 48 53 46 48 53 46 48 47 39 42 48 44 48 47 44 42
++48 44 48 47 44 42 42 41 42 42 41 42 42 38 42 47 39 42 36 35 37 36 35 37
++
++17 12 17 15 17 7 17 12 17 17 12 17 17 12 17 13 4 7 14 16 17 13 4 7
++14 16 17 7 12 13 17 12 17 7 10 17 7 12 13 7 12 13 7 12 13 7 12 13
++17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 17 12 17
++17 12 17 17 12 17 17 12 17 17 12 17 17 12 17 17 12 17 17 12 17 23 18 22
++23 18 22 23 20 24 23 18 22 23 18 22 26 25 15 23 20 24 23 20 24 22 25 24
++23 20 24 26 25 15 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 18 22
++15 22 17 23 18 22 22 25 24 22 25 24 23 18 22 22 25 24 23 18 22 23 18 22
++22 24 13 23 18 22 22 25 24 23 18 22 22 25 24 23 18 22 26 25 15 23 18 22
++22 24 13 23 18 22 23 18 22 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24
++23 20 24 23 20 24 22 25 24 23 18 22 23 18 22 23 20 24 23 20 24 26 24 32
++22 25 24 33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 34 30 15
++33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 33 30 30 23 20 24 26 25 15
++23 20 24 23 20 24 28 13 18 23 20 24 23 20 24 26 25 15 23 20 24 23 20 24
++23 20 24 23 20 24 26 25 15 23 20 24 23 20 24 33 30 30 23 18 22 23 20 24
++26 25 15 23 18 22 23 18 22 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24
++23 20 24 26 25 15 33 30 30 23 20 24 33 30 30 33 30 32 36 35 37 52 30 35
++36 35 37 55 39 37 47 44 42 47 44 42 55 39 37 51 49 42 53 46 48 60 49 42
++53 46 48 60 49 42 62 47 47 63 55 51 62 47 47 65 55 54 62 47 47 63 55 45
++62 47 47 63 55 45 76 44 53 62 47 47 60 49 42 55 39 37 55 39 37 47 39 42
++53 35 37 36 35 37 52 30 35 29 35 19 33 30 30 33 30 30 23 20 24 33 30 30
++28 13 18 23 20 24 28 13 18 26 30 28 23 18 22 26 25 15 23 20 24 33 30 30
++33 30 30 23 18 22 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30
++33 30 30 33 30 32 33 30 30 33 30 32 33 30 32 30 30 34 33 30 32 33 30 32
++33 30 32 30 30 34 30 30 34 30 30 34 26 30 28 26 24 32 26 30 28 26 24 32
++33 30 30 30 30 34 26 24 32 26 24 32 22 25 24 26 24 32 26 24 32 26 24 32
++33 30 32 26 24 32 26 30 28 26 30 28 33 30 32 33 30 32 33 30 32 33 30 32
++33 30 30 52 30 35 33 30 30 33 30 30 36 35 37 36 35 37 33 30 30 47 47 21
++36 35 37 52 30 35 32 39 24 52 30 35 36 35 37 52 30 35 36 35 37 32 39 24
++52 30 35 32 39 24 33 30 30 33 30 30 32 39 24 33 30 30 26 30 28 26 30 28
++23 18 22 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 18 22 28 13 18
++28 13 18 49 13 16 88 44 51 102 33 26 120 63 71 161 55 23 167 63 71 102 33 26
++161 55 23 102 33 26 161 55 23 176 103 41 227 171 124 227 171 124 161 55 23 102 33 26
++76 18 19 88 30 18 120 63 71 168 102 88 168 102 88 168 102 88 201 146 124 157 148 53
++201 146 124 157 148 53 201 146 124 197 171 123 201 146 124 197 171 123 201 146 124 197 171 123
++201 146 124 197 171 123 197 171 123 197 171 123 217 168 156 197 171 123 217 168 156 197 171 123
++217 168 156 214 214 134 217 168 156 197 171 123 217 168 156 197 171 123 189 165 168 197 171 123
++217 168 156 177 169 143 197 171 123 168 146 127 168 146 127 168 146 127 168 102 88 146 150 115
++168 102 88 138 126 108 117 114 76 117 112 45 138 102 108 138 126 108 185 202 202 246 237 247
++231 239 247 150 168 183 61 78 101 46 59 71 32 40 58 34 42 77 60 63 87 119 117 138
++185 202 202 208 221 247 221 238 247 201 216 228 221 238 247 208 221 247 208 221 247 201 216 228
++201 216 228 194 199 226 188 180 202 189 165 168 189 165 168 208 215 180 217 168 156 208 215 180
++217 168 156 197 171 123 217 168 156 214 214 134 217 168 156 197 171 123 217 168 156 177 169 143
++217 168 156 197 171 123 217 168 156 197 171 123 197 171 123 217 168 156 197 171 123 197 171 123
++217 168 156 197 171 123 208 215 180 217 168 156 214 214 134 217 168 156 208 215 180 222 171 182
++225 222 201 222 171 182 208 215 180 189 165 168 166 156 164 166 156 164 166 180 164 189 165 168
++166 180 164 189 165 168 208 215 180 225 222 201 225 222 201 233 241 227 233 241 227 233 241 227
++233 241 227 233 241 227 201 216 228 185 202 202 188 180 202 188 180 202 194 199 226 201 216 228
++232 215 228 221 238 247 233 241 227 235 238 247 235 238 247 240 251 247 251 251 247 240 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 240 251 247
++246 237 247 246 237 247 231 239 247 226 221 247 194 199 226 194 199 226 194 199 226 201 216 228
++208 221 247 201 216 228 208 221 247 194 199 226 194 199 226 166 174 181 166 174 181 150 168 183
++150 168 183 166 176 200 188 180 202 194 199 226 194 199 226 232 215 228 194 199 226 188 180 202
++177 169 143 166 156 164 168 146 127 168 146 127 177 169 143 168 146 127 177 169 143 201 146 124
++177 169 143 177 169 143 197 171 123 177 169 143 217 168 156 177 169 143 177 169 143 217 168 156
++177 169 143 217 168 156 177 169 143 189 165 168 177 169 143 177 169 143 177 169 143 201 146 124
++177 169 143 177 169 143 189 165 168 177 169 143 177 169 143 201 146 124 177 169 143 201 146 124
++177 169 143 168 146 127 168 146 127 177 169 143 168 146 127 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127
++146 150 115 163 117 123 146 150 115 168 102 88 146 150 115 138 126 108 168 102 88 138 126 108
++117 114 76 168 102 88 117 114 76 117 99 86 117 99 86 117 99 86 101 83 74 101 83 74
++101 83 74 88 73 62 101 74 26 88 44 51 75 73 36 76 46 20 75 56 53 76 46 20
++63 55 45 76 46 20 75 56 53 75 73 58 88 73 62 101 83 74 101 83 74 101 83 74
++101 83 74 101 83 74 117 114 76 117 99 86 138 102 108 138 126 108 138 126 108 168 102 88
++117 114 76 117 99 86 117 99 86 101 83 74 117 99 86 117 99 86 101 83 74 88 73 62
++88 73 62 75 56 53 88 73 62 88 73 62 88 73 62 101 83 74 101 83 74 117 99 86
++138 126 108 138 126 108 146 150 115 168 102 88 168 146 127 168 102 88 138 126 108 168 102 88
++168 102 88 157 148 53 117 99 86 168 102 88 117 114 76 168 102 88 168 102 88 157 148 53
++138 126 108 168 102 88 138 126 108 168 146 127 201 146 124 168 146 127 168 146 127 168 146 127
++201 146 124 168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 201 146 124 197 171 123
++201 146 124 201 146 124 177 169 143 201 146 124 201 146 124 168 146 127 197 171 123 201 146 124
++201 146 124 168 146 127 201 146 124 177 171 115 201 146 124 168 146 127 177 171 115 201 146 124
++201 146 124 168 146 127 201 146 124 168 146 127 201 146 124 168 102 88 201 146 124 168 102 88
++168 146 127 168 102 88 201 146 124 168 102 88 163 117 123 201 146 124 168 146 127 201 146 124
++168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 201 146 124 163 117 123 168 102 88
++168 146 127 168 102 88 168 146 127 168 146 127 168 146 127 163 117 123 117 99 86 63 55 51
++55 39 37 47 47 21 42 41 42 36 35 37 47 47 21 36 35 37 47 39 42 36 35 37
++47 47 21 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 47 39 42 36 35 37
++47 44 42 42 41 42 47 44 42 47 44 42 48 50 48 48 50 48 48 50 48 59 55 55
++54 57 61 59 57 61 59 57 61 65 63 61 53 63 61 65 63 61 65 63 61 65 63 61
++59 69 70 75 72 67 75 64 82 75 81 82 75 81 82 75 81 82 88 83 88 88 83 88
++88 83 88 95 91 100 95 91 100 90 98 89 95 91 100 94 105 108 90 98 89 94 105 108
++94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 95 91 100
++95 91 100 95 91 100 78 98 90 75 81 90 75 81 82 75 64 82 75 81 76 63 59 71
++59 69 70 65 63 61 63 59 71 59 57 61 54 57 61 54 57 61 48 50 48 54 57 61
++45 57 61 57 43 51 45 57 61 48 50 48 45 57 61 43 42 50 45 57 61 43 42 50
++45 57 61 43 42 50 43 42 50 57 43 64 32 40 58 43 42 50 43 42 50 32 40 58
++43 42 50 35 47 50 43 42 50 34 40 43 43 42 50 34 40 43 43 42 50 43 42 50
++42 41 42 43 42 50 42 41 42 43 42 50 42 41 42 48 44 48 47 49 42 48 44 48
++48 50 48 53 46 48 48 50 48 53 46 48 55 55 48 53 46 48 52 55 48 48 50 48
++59 55 55 48 50 48 53 46 48 53 46 48 48 50 48 53 46 48 48 50 48 43 42 50
++42 47 42 43 42 50 42 41 42 43 42 50 48 50 48 43 42 50 48 50 48 43 42 50
++48 44 48 43 42 50 42 47 42 48 44 48 42 47 42 43 42 50 47 44 42 48 44 48
++48 44 48 48 44 48 48 50 48 48 44 48 53 46 48 48 50 48 53 46 48 53 46 48
++53 46 48 53 46 48 59 55 55 53 46 48 59 55 55 62 47 47 53 46 48 53 46 48
++53 46 48 53 46 48 51 49 42 53 46 48 53 46 48 53 46 48 53 46 48 55 55 48
++53 46 48 53 46 48 48 50 48 53 46 48 53 46 48 48 44 48 47 44 42 48 44 48
++47 44 42 47 44 42 42 41 42 42 41 42 42 38 42 36 35 37 36 35 37 36 35 37
++
++17 12 17 17 12 17 17 12 17 7 12 13 17 12 17 17 12 17 7 12 13 17 12 17
++7 12 13 17 12 17 17 12 17 13 4 7 17 12 17 13 4 7 17 12 17 7 12 13
++17 12 17 13 4 7 7 12 13 13 4 7 7 12 13 17 12 17 17 12 17 17 12 17
++7 12 13 17 12 17 14 16 17 14 16 17 17 12 17 14 16 17 23 18 22 23 18 22
++15 22 17 26 25 15 23 18 22 26 25 15 23 20 24 23 20 24 23 20 24 26 25 15
++33 30 30 23 20 24 23 20 24 26 25 15 23 20 24 23 20 24 26 25 15 23 18 22
++23 18 22 22 24 13 23 18 22 22 24 13 23 18 22 22 24 13 15 22 17 22 24 13
++23 18 22 22 24 13 22 24 13 22 24 13 23 18 22 22 24 13 23 18 22 15 22 17
++23 18 22 23 18 22 22 24 13 23 18 22 23 20 24 23 20 24 23 18 22 23 20 24
++23 20 24 23 18 22 23 18 22 23 18 22 23 18 22 23 18 22 23 20 24 23 20 24
++26 24 32 23 20 24 33 30 30 26 30 28 33 30 30 26 25 15 33 30 30 22 25 24
++33 30 30 33 30 30 33 30 30 26 25 15 33 30 30 22 25 24 33 30 30 23 20 24
++33 30 30 22 25 24 33 30 30 22 25 24 33 30 30 22 25 24 22 25 24 26 24 32
++23 20 24 22 25 24 23 20 24 23 20 24 23 18 22 23 18 22 23 18 22 23 18 22
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 18 22 23 18 22
++15 22 17 23 18 22 15 22 17 23 18 22 23 18 22 23 18 22 23 18 22 22 24 13
++23 18 22 23 20 24 23 20 24 22 25 24 33 30 30 33 30 30 33 30 30 33 30 30
++36 35 37 36 35 37 47 47 21 47 44 42 47 44 42 47 39 42 51 49 42 53 46 48
++51 49 42 60 49 42 62 47 47 62 47 47 62 47 47 62 47 47 62 47 47 60 49 42
++62 47 47 62 47 47 62 47 47 60 49 42 60 49 42 47 44 42 55 39 37 55 39 37
++36 35 37 52 30 35 34 30 15 33 30 30 33 30 30 34 30 15 33 30 30 26 25 15
++23 20 24 33 30 30 23 20 24 26 25 15 23 20 24 23 20 24 23 20 24 33 30 30
++23 18 22 33 30 30 28 13 18 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 32 33 30 30 33 30 30 33 30 32 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 30 30 34 30 30 34 33 30 32 33 30 32 33 30 32
++30 30 34 30 30 34 30 30 34 26 24 32 30 30 34 26 24 32 22 25 24 26 24 32
++26 24 32 26 24 32 25 30 29 26 24 32 26 24 32 22 25 24 23 20 24 26 24 32
++26 24 32 26 24 32 26 24 32 26 24 32 26 24 32 33 30 30 33 30 32 33 30 30
++33 30 30 32 39 24 33 30 30 33 30 30 52 30 35 36 35 37 52 30 35 36 35 37
++33 30 30 36 35 37 33 30 30 36 35 37 36 35 37 32 39 24 52 30 35 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 33 30 32 33 30 30 33 30 30 22 25 24
++22 25 24 22 25 24 23 20 24 15 22 17 23 20 24 23 20 24 23 20 24 28 13 18
++28 13 18 49 13 16 88 44 51 102 33 26 102 33 26 102 33 26 161 55 23 102 33 26
++161 55 23 161 55 23 176 103 41 227 171 124 227 171 124 176 103 41 102 33 26 76 18 19
++122 49 24 120 63 71 117 112 45 168 102 88 157 148 53 168 102 88 157 148 53 201 146 124
++168 102 88 201 146 124 201 146 124 197 171 123 201 146 124 197 171 123 201 146 124 197 171 123
++197 171 123 197 171 123 217 168 156 197 171 123 217 168 156 197 171 123 217 168 156 197 171 123
++217 168 156 177 169 143 217 168 156 217 168 156 197 171 123 217 168 156 197 171 123 217 168 156
++177 169 143 197 171 123 201 146 124 168 146 127 177 171 115 168 102 88 138 126 108 138 126 108
++117 127 86 168 102 88 138 102 108 117 99 86 117 99 86 166 156 164 194 199 226 231 239 247
++231 239 247 166 176 200 95 95 116 46 59 71 32 40 58 32 40 58 60 63 87 122 134 144
++185 202 202 226 221 247 208 221 247 221 238 247 226 221 247 208 221 247 232 215 228 208 221 247
++225 222 201 188 180 202 185 202 202 189 165 168 189 165 168 189 165 168 177 169 143 217 168 156
++177 169 143 217 168 156 189 165 168 217 168 156 177 169 143 217 168 156 197 171 123 217 168 156
++197 171 123 217 168 156 197 171 123 217 168 156 197 171 123 197 171 123 217 168 156 197 171 123
++217 168 156 197 171 123 217 168 156 197 171 123 217 168 156 217 168 156 214 214 134 222 171 182
++214 214 134 225 222 201 208 215 180 189 165 168 177 169 143 166 156 164 189 165 168 166 174 181
++166 174 181 166 176 200 189 165 168 188 180 202 225 222 201 225 222 201 233 241 227 233 241 227
++233 241 227 225 222 201 189 165 168 166 174 181 148 160 159 150 168 183 166 174 181 166 176 200
++166 176 200 188 180 202 188 180 202 185 202 202 194 199 226 194 199 226 194 199 226 201 216 228
++201 216 228 201 216 228 226 221 247 208 221 247 226 221 247 221 238 247 221 238 247 226 221 247
++221 238 247 201 216 228 232 215 228 221 238 247 201 216 228 201 216 228 226 221 247 226 221 247
++201 216 228 194 199 226 188 180 202 166 174 181 150 147 171 150 147 171 150 147 171 166 174 181
++188 180 202 194 199 226 201 216 228 185 202 202 188 180 202 185 202 202 189 165 168 177 169 143
++146 151 137 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 201 146 124 168 146 127
++168 146 127 197 171 123 177 169 143 177 169 143 177 169 143 197 171 123 177 169 143 177 169 143
++177 169 143 197 171 123 177 169 143 197 171 123 177 169 143 201 146 124 177 169 143 189 165 168
++201 146 124 177 169 143 201 146 124 168 146 127 201 146 124 177 169 143 168 146 127 166 156 164
++201 146 124 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127
++168 146 127 163 117 123 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 138 126 108
++168 146 127 138 126 108 138 126 108 138 126 108 168 102 88 117 127 86 138 102 108 117 114 76
++117 99 86 117 99 86 117 99 86 101 83 74 88 73 62 75 73 58 75 73 36 76 46 20
++60 49 42 76 46 20 63 55 45 76 46 20 60 49 42 76 46 20 88 73 31 101 83 74
++101 83 74 117 99 86 117 114 76 117 114 76 138 126 108 117 127 86 168 102 88 117 127 86
++168 102 88 138 126 108 168 102 88 117 127 86 168 102 88 117 114 76 168 102 88 117 114 76
++138 102 108 117 114 76 168 102 88 117 114 76 168 102 88 117 114 76 168 102 88 117 114 76
++117 99 86 117 114 76 117 99 86 117 114 76 168 102 88 117 114 76 168 102 88 138 126 108
++168 102 88 138 126 108 168 102 88 138 126 108 138 126 108 157 148 53 138 126 108 168 102 88
++117 127 86 138 102 108 168 102 88 117 114 76 117 99 86 117 114 76 98 106 55 120 63 71
++117 99 86 117 99 86 117 112 45 168 102 88 138 126 108 168 102 88 201 146 124 168 146 127
++168 146 127 201 146 124 177 171 115 168 146 127 168 146 127 168 146 127 201 146 124 168 146 127
++201 146 124 168 146 127 201 146 124 168 146 127 201 146 124 201 146 124 177 169 143 201 146 124
++177 171 115 201 146 124 168 146 127 201 146 124 168 146 127 201 146 124 201 146 124 197 171 123
++168 146 127 201 146 124 177 171 115 168 102 88 168 146 127 177 171 115 168 102 88 168 146 127
++168 102 88 168 146 127 168 102 88 146 150 115 168 102 88 168 102 88 168 102 88 168 146 127
++195 113 123 168 146 127 195 113 123 168 146 127 201 146 124 168 146 127 201 146 124 177 171 115
++168 102 88 146 150 115 168 102 88 168 146 127 201 146 124 177 169 143 163 117 123 117 99 86
++75 63 62 55 39 37 32 39 24 52 30 35 42 38 42 42 38 42 47 39 42 42 38 42
++36 35 37 52 30 35 32 39 24 52 30 35 33 30 30 36 35 37 42 41 42 36 35 37
++42 41 42 42 41 42 47 44 42 48 44 48 48 50 48 48 50 48 52 55 48 54 57 61
++59 55 55 59 57 61 59 57 61 65 63 61 65 63 61 59 69 70 65 63 61 59 69 70
++75 72 67 75 72 67 75 81 76 75 81 76 75 81 82 75 81 82 88 83 88 77 90 100
++88 83 88 78 98 90 95 91 100 94 105 108 95 91 100 94 105 108 94 105 108 94 105 108
++95 91 100 94 105 108 94 105 108 94 105 108 94 105 108 95 91 100 94 105 108 94 105 108
++95 91 100 95 91 100 95 91 100 88 83 88 75 81 82 75 81 76 75 64 82 75 72 67
++65 63 61 59 69 70 59 57 61 54 57 61 59 55 55 54 57 61 52 55 48 48 50 48
++52 55 48 48 50 48 57 43 64 48 50 48 57 43 64 48 50 48 48 50 48 48 50 48
++48 44 48 45 57 61 43 42 50 48 50 48 43 42 50 43 42 50 43 42 50 43 42 50
++43 42 50 37 35 43 34 40 43 43 42 50 37 35 43 43 42 50 43 42 50 42 38 42
++43 42 50 42 38 42 43 42 50 42 41 42 43 42 50 42 41 42 47 44 42 47 44 42
++47 44 42 48 50 48 53 46 48 48 50 48 51 49 42 52 55 48 53 46 48 48 50 48
++53 46 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 47 44 42
++47 44 42 42 47 42 42 47 42 47 44 42 48 44 48 47 44 42 48 50 48 47 44 42
++48 50 48 47 44 42 48 44 48 48 44 48 47 44 42 47 44 42 42 41 42 42 41 42
++48 44 48 53 46 48 53 46 48 48 50 48 53 46 48 53 46 48 51 49 42 51 49 42
++55 55 48 53 46 48 55 55 48 55 55 48 62 47 47 63 55 51 62 47 47 55 55 48
++60 49 42 53 46 48 53 46 48 60 49 42 53 46 48 52 55 48 51 49 42 53 46 48
++55 55 48 62 47 47 53 46 48 53 46 48 53 46 48 51 49 42 47 44 42 47 44 42
++53 46 48 47 44 42 47 44 42 42 41 42 55 39 37 36 35 37 52 30 35 36 35 37
++
++17 12 17 7 12 13 17 12 17 17 12 17 7 12 13 17 12 17 17 12 17 7 12 13
++17 12 17 7 12 13 7 12 13 17 12 17 7 12 13 7 12 13 17 12 17 7 12 13
++17 12 17 7 12 13 13 4 7 17 12 17 7 12 13 17 12 17 14 16 17 17 12 17
++17 12 17 17 12 17 14 16 17 17 12 17 14 16 17 23 18 22 23 18 22 26 25 15
++23 20 24 23 20 24 23 18 22 23 20 24 26 25 15 23 18 22 26 25 15 23 20 24
++23 20 24 34 30 15 23 20 24 26 25 15 23 20 24 26 25 15 23 18 22 23 18 22
++26 25 15 23 18 22 23 18 22 23 18 22 22 24 13 23 18 22 23 18 22 23 18 22
++22 24 13 23 18 22 23 18 22 22 24 13 28 13 18 22 24 13 23 18 22 22 24 13
++23 20 24 22 24 13 23 20 24 22 24 13 23 18 22 22 24 13 23 18 22 15 22 17
++23 18 22 15 22 17 17 12 17 23 18 22 14 16 17 23 18 22 23 18 22 23 20 24
++22 25 24 26 24 32 26 30 28 23 20 24 26 30 28 23 20 24 26 30 28 26 25 15
++26 24 32 23 20 24 26 30 28 22 25 24 26 30 28 26 25 15 26 30 28 26 25 15
++26 30 28 26 30 28 22 25 24 26 30 28 23 20 24 22 25 24 22 25 24 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 18 22 23 18 22 23 18 22 23 20 24
++23 18 22 23 20 24 23 20 24 23 20 24 22 25 24 22 24 13 23 18 22 15 22 17
++23 18 22 15 22 17 23 18 22 14 16 17 15 22 17 15 22 17 15 22 17 23 18 22
++23 18 22 22 25 24 23 20 24 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30
++52 30 35 36 35 37 47 39 42 47 39 42 47 44 42 47 44 42 55 39 37 53 46 48
++60 49 42 53 46 48 62 47 47 60 49 42 62 47 47 62 47 47 60 49 42 62 47 47
++60 49 42 62 47 47 60 49 42 59 36 42 60 49 42 55 39 37 55 39 37 53 35 37
++52 30 35 33 30 30 52 30 35 34 30 15 33 30 30 28 13 18 34 30 15 23 20 24
++23 20 24 26 25 15 23 20 24 23 20 24 33 30 30 28 13 18 33 30 30 28 13 18
++33 30 30 23 20 24 33 30 30 33 30 30 49 13 16 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 34 30 15 52 30 35 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 26 24 32 33 30 30
++22 25 24 26 30 28 26 24 32 26 30 28 26 24 32 33 30 30 26 24 32 30 30 34
++26 30 28 26 24 32 26 24 32 26 30 28 26 24 32 26 24 32 26 24 32 26 24 32
++26 24 32 26 24 32 26 24 32 22 25 24 22 23 31 22 23 31 26 24 32 23 20 24
++26 24 32 26 30 28 26 24 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 32 36 35 37 36 35 37 33 30 30 36 35 37 32 39 24 36 35 37
++53 35 37 36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++52 30 35 32 39 24 33 30 32 33 30 30 33 30 32 30 30 34 26 30 28 26 24 32
++22 25 24 15 22 17 14 16 17 15 22 17 23 20 24 23 20 24 23 20 24 26 25 15
++28 13 18 76 18 19 76 18 19 102 33 26 120 63 71 102 33 26 122 49 24 161 55 23
++161 55 23 176 103 41 227 171 124 227 171 124 176 103 41 161 55 23 52 30 15 76 18 19
++117 112 45 168 102 88 168 102 88 157 148 53 168 102 88 177 171 115 168 102 88 157 148 53
++201 146 124 177 171 115 201 146 124 197 171 123 201 146 124 197 171 123 197 171 123 197 171 123
++217 168 156 197 171 123 197 171 123 217 168 156 197 171 123 217 168 156 197 171 123 217 168 156
++214 214 134 217 168 156 197 171 123 177 169 143 217 168 156 177 169 143 197 171 123 197 171 123
++197 171 123 201 146 124 168 146 127 168 146 127 168 102 88 146 150 115 168 102 88 138 126 108
++168 102 88 117 114 76 117 114 76 101 83 74 138 102 108 166 180 164 232 215 228 221 238 247
++221 238 247 166 176 200 111 122 142 42 60 86 29 34 50 32 40 58 61 78 101 131 144 168
++194 199 226 221 238 247 208 221 247 221 238 247 201 216 228 226 221 247 201 216 228 226 221 247
++201 216 228 188 180 202 189 165 168 177 169 143 177 169 143 217 168 156 189 165 168 214 214 134
++189 165 168 214 214 134 177 169 143 217 168 156 217 168 156 214 214 134 189 165 168 217 168 156
++197 171 123 217 168 156 177 169 143 197 171 123 197 171 123 217 168 156 197 171 123 197 171 123
++197 171 123 217 168 156 214 214 134 217 168 156 217 168 156 217 168 156 217 168 156 208 215 180
++222 171 182 225 222 201 222 171 182 208 215 180 189 165 168 166 156 164 166 174 181 166 174 181
++188 180 202 189 165 168 166 174 181 189 165 168 188 180 202 208 215 180 225 222 201 225 222 201
++225 222 201 185 202 202 166 180 164 150 144 154 150 147 171 150 147 171 148 160 159 150 147 171
++150 171 159 150 147 171 150 168 183 166 156 164 166 174 181 166 174 181 188 180 202 166 176 200
++188 180 202 188 180 202 185 202 202 185 202 202 194 199 226 185 202 202 201 216 228 201 216 228
++232 215 228 221 238 247 221 238 247 235 238 247 231 239 247 201 216 228 201 216 228 194 199 226
++166 176 200 150 147 171 150 147 171 131 144 168 150 168 183 166 176 200 188 180 202 194 199 226
++194 199 226 194 199 226 185 202 202 166 174 181 166 156 164 150 144 154 168 146 127 145 140 145
++138 126 108 163 117 123 146 150 115 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127
++201 146 124 177 169 143 168 146 127 197 171 123 168 146 127 177 169 143 177 169 143 168 146 127
++168 146 127 168 146 127 201 146 124 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 201 146 124 168 146 127
++168 146 127 163 117 123 168 146 127 138 126 108 138 126 108 163 117 123 138 126 108 168 146 127
++146 150 115 168 146 127 168 146 127 138 126 108 163 117 123 138 126 108 163 117 123 138 126 108
++168 102 88 138 126 108 117 114 76 168 102 88 117 99 86 117 99 86 101 83 74 101 83 74
++88 73 62 88 73 31 75 56 53 88 73 31 63 55 45 76 46 20 75 56 53 75 56 53
++75 73 36 88 73 62 88 73 62 98 106 55 101 83 74 117 99 86 117 99 86 138 126 108
++138 126 108 138 126 108 138 126 108 168 102 88 138 126 108 168 102 88 138 126 108 117 114 76
++168 102 88 117 114 76 117 114 76 168 102 88 117 114 76 117 114 76 117 99 86 117 112 45
++117 99 86 117 99 86 117 114 76 117 99 86 117 99 86 117 114 76 120 63 71 117 112 45
++120 63 71 117 112 45 120 63 71 117 114 76 117 99 86 117 99 86 117 112 45 117 99 86
++117 112 45 117 99 86 117 114 76 168 102 88 117 114 76 138 102 108 168 102 88 117 114 76
++168 102 88 117 114 76 168 102 88 117 114 76 120 63 71 101 74 26 120 63 71 101 74 26
++101 74 26 120 63 71 117 112 45 117 99 86 168 102 88 146 150 115 168 102 88 177 171 115
++168 146 127 201 146 124 168 146 127 168 146 127 168 102 88 177 171 115 201 146 124 168 146 127
++168 146 127 168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 201 146 124 201 146 124
++168 146 127 201 146 124 177 171 115 201 146 124 168 146 127 201 146 124 168 146 127 201 146 124
++201 146 124 168 146 127 168 146 127 168 146 127 168 102 88 201 146 124 163 117 123 168 102 88
++168 146 127 168 102 88 168 102 88 168 102 88 138 126 108 168 102 88 138 126 108 168 102 88
++168 102 88 163 117 123 168 146 127 201 146 124 201 146 124 168 146 127 201 146 124 168 146 127
++201 146 124 163 117 123 168 102 88 146 150 115 163 117 123 168 146 127 168 146 127 168 146 127
++138 102 108 88 73 62 60 49 42 53 35 37 33 30 30 36 35 37 36 35 37 53 35 37
++32 39 24 36 35 37 33 30 30 36 35 37 47 47 21 36 35 37 42 41 42 42 41 42
++47 44 42 47 44 42 47 44 42 48 50 48 48 50 48 52 55 48 54 57 61 59 57 61
++59 57 61 65 63 61 65 63 61 65 63 61 65 63 61 59 69 70 75 72 67 75 64 82
++59 69 70 75 81 76 75 72 67 75 81 82 75 81 82 88 83 88 88 83 88 78 98 90
++90 98 89 95 91 100 95 91 100 95 91 100 94 105 108 94 105 108 94 105 108 94 105 108
++94 105 108 94 105 108 94 105 108 95 95 116 94 105 108 94 105 108 94 105 108 94 105 108
++95 91 100 95 91 100 90 98 89 88 83 88 88 83 88 75 81 82 75 81 76 59 69 70
++59 69 70 65 63 61 65 63 61 53 63 61 59 55 55 48 50 48 52 55 48 52 55 48
++59 55 55 48 50 48 54 57 61 54 57 61 48 50 48 45 57 61 48 44 48 54 57 61
++57 43 64 48 50 48 45 57 61 48 50 48 45 57 61 43 42 50 43 42 50 43 42 50
++43 42 50 43 42 50 42 41 42 43 42 50 37 35 43 43 42 50 37 35 43 43 42 50
++42 38 42 43 42 50 42 41 42 43 42 50 42 41 42 47 44 42 48 44 48 42 47 42
++48 44 48 47 49 42 48 50 48 51 49 42 48 50 48 48 50 48 48 50 48 52 55 48
++48 50 48 52 55 48 53 46 48 51 49 42 51 49 42 51 49 42 47 49 42 47 44 42
++47 44 42 48 44 48 47 44 42 48 50 48 48 50 48 48 50 48 47 49 42 48 50 48
++47 44 42 48 44 48 48 44 48 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++48 44 48 53 46 48 53 46 48 48 50 48 53 46 48 51 49 42 53 46 48 60 49 42
++55 55 48 60 49 42 53 46 48 55 55 48 62 47 47 62 47 47 55 55 48 53 46 48
++60 49 42 51 49 42 53 46 48 53 46 48 60 49 42 51 49 42 51 49 42 51 49 42
++53 46 48 60 49 42 53 46 48 51 49 42 51 49 42 51 49 42 51 49 42 55 39 37
++51 49 42 55 39 37 47 44 42 47 44 42 36 35 37 47 47 21 36 35 37 36 35 37
++
++7 12 13 17 12 17 7 12 13 17 12 17 7 10 17 17 12 17 7 12 13 17 12 17
++13 4 7 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 13 4 7 17 12 17
++7 12 13 13 4 7 7 12 13 17 12 17 17 12 17 7 12 13 17 12 17 7 10 17
++17 12 17 14 16 17 17 12 17 17 12 17 17 12 17 14 16 17 23 18 22 22 25 24
++23 20 24 26 25 15 23 18 22 26 25 15 23 20 24 26 25 15 23 20 24 23 20 24
++34 30 15 23 20 24 23 20 24 26 25 15 23 18 22 23 18 22 26 25 15 23 18 22
++26 12 13 23 18 22 22 24 13 15 22 17 23 18 22 22 24 13 23 18 22 22 24 13
++23 18 22 22 24 13 22 24 13 23 18 22 22 24 13 23 18 22 26 25 15 23 20 24
++26 25 15 23 20 24 26 25 15 23 18 22 23 18 22 23 18 22 23 18 22 14 16 17
++23 18 22 23 18 22 14 16 17 14 16 17 23 18 22 14 16 17 23 18 22 23 20 24
++23 20 24 23 20 24 33 30 30 23 20 24 26 30 28 26 25 15 22 25 24 33 30 30
++22 25 24 33 30 30 22 25 24 33 30 30 26 25 15 33 30 30 22 25 24 33 30 30
++22 25 24 33 30 30 22 25 24 33 30 30 22 25 24 26 30 28 23 20 24 26 30 28
++23 20 24 23 20 24 23 20 24 23 20 24 23 18 22 23 20 24 23 20 24 23 18 22
++23 18 22 23 18 22 23 18 22 14 16 17 23 18 22 15 22 17 23 18 22 15 22 17
++23 18 22 14 16 17 23 18 22 23 18 22 23 18 22 23 18 22 23 18 22 15 22 17
++23 18 22 23 20 24 23 20 24 23 20 24 33 30 30 33 30 30 33 30 30 36 35 37
++33 30 30 36 35 37 42 38 42 47 47 21 47 39 42 47 39 42 51 49 42 55 39 37
++53 46 48 55 39 37 60 49 42 62 47 47 62 47 47 62 47 47 60 49 42 60 49 42
++60 49 42 62 47 47 60 49 42 60 49 42 55 39 37 55 39 37 47 39 42 53 35 37
++33 30 30 52 30 35 33 30 30 34 30 15 33 30 30 34 30 15 33 30 30 23 20 24
++28 13 18 33 30 30 23 20 24 23 20 24 28 13 18 33 30 30 23 20 24 33 30 30
++28 13 18 33 30 30 28 13 18 33 30 30 33 30 32 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 32 39 24 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 26 30 28 33 30 30 26 24 32 33 30 30 26 24 32 26 30 28 26 24 32
++26 30 28 22 25 24 26 24 32 26 24 32 26 30 28 26 24 32 22 25 24 22 23 31
++22 25 24 26 24 32 26 24 32 22 23 31 22 25 24 22 25 24 22 25 24 26 24 32
++26 24 32 26 24 32 26 24 32 26 24 32 23 20 24 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 53 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 47 47 21 36 35 37 36 35 37 52 30 35 32 39 24
++36 35 37 36 35 37 31 35 35 30 30 34 33 30 30 33 30 30 26 24 32 26 30 28
++22 25 24 15 22 17 23 18 22 14 16 17 23 18 22 23 20 24 23 20 24 28 13 18
++28 13 18 52 30 35 88 44 51 102 33 26 102 33 26 161 55 23 102 33 26 161 55 23
++161 55 23 176 103 41 227 171 124 227 171 124 176 103 41 88 30 18 49 13 16 88 30 18
++117 114 76 168 102 88 168 102 88 157 148 53 168 102 88 168 102 88 157 148 53 195 113 123
++177 171 115 201 146 124 197 171 123 227 171 124 197 171 123 197 171 123 217 168 156 201 146 124
++197 171 123 197 171 123 217 168 156 197 171 123 217 168 156 197 171 123 217 168 156 197 171 123
++217 168 156 177 169 143 217 168 156 197 171 123 197 171 123 197 171 123 177 169 143 201 146 124
++168 146 127 168 146 127 177 171 115 168 102 88 146 150 115 168 102 88 117 127 86 168 102 88
++117 114 76 117 99 86 117 99 86 117 99 86 138 126 108 166 174 181 232 215 228 226 221 247
++221 238 247 188 180 202 95 108 128 42 60 86 29 34 50 34 42 77 75 81 90 150 147 171
++194 199 226 208 221 247 233 241 227 208 221 247 226 221 247 208 221 247 208 221 247 201 216 228
++232 215 228 185 202 202 166 156 164 166 156 164 177 169 143 177 169 143 177 169 143 217 168 156
++177 169 143 217 168 156 217 168 156 214 214 134 189 165 168 217 168 156 197 171 123 217 168 156
++217 168 156 217 168 156 197 171 123 217 168 156 177 169 143 197 171 123 217 168 156 197 171 123
++217 168 156 177 169 143 197 171 123 214 214 134 217 168 156 208 215 180 217 168 156 214 214 134
++222 171 182 208 215 180 208 215 180 222 171 182 166 180 164 166 156 164 166 174 181 189 165 168
++166 180 164 188 180 202 166 174 181 185 202 202 189 165 168 189 165 168 189 165 168 185 202 202
++222 171 182 208 215 180 166 174 181 166 156 164 150 168 183 150 147 171 150 168 183 150 168 183
++150 168 183 150 168 183 150 168 183 166 174 181 166 176 200 166 176 200 188 180 202 188 180 202
++185 202 202 185 202 202 194 199 226 194 199 226 194 199 226 185 202 202 201 216 228 201 216 228
++221 238 247 240 251 247 251 251 247 251 251 247 235 238 247 201 216 228 166 176 200 150 147 171
++150 144 154 131 144 168 148 160 159 188 180 202 194 199 226 232 215 228 208 221 247 232 215 228
++188 180 202 166 174 181 150 144 154 122 134 144 141 116 139 112 123 108 112 96 108 138 126 108
++138 126 108 138 126 108 163 117 123 138 126 108 138 126 108 138 102 108 138 126 108 168 146 127
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127
++163 117 123 168 146 127 146 150 115 163 117 123 168 146 127 163 117 123 138 126 108 163 117 123
++168 146 127 163 117 123 163 117 123 168 146 127 163 117 123 163 117 123 138 126 108 163 117 123
++138 126 108 138 126 108 138 126 108 168 102 88 138 126 108 138 126 108 146 150 115 138 126 108
++163 117 123 138 126 108 163 117 123 146 150 115 138 126 108 138 126 108 138 126 108 138 126 108
++117 114 76 117 114 76 117 114 76 101 83 74 101 83 74 88 73 62 88 73 62 88 73 31
++75 56 53 75 56 53 75 73 36 75 56 53 88 73 62 88 73 62 101 83 74 117 99 86
++117 99 86 138 126 108 138 126 108 138 126 108 138 126 108 146 150 115 163 117 123 138 126 108
++138 126 108 168 102 88 117 114 76 117 114 76 117 114 76 101 83 74 117 112 45 101 83 74
++101 83 74 117 112 45 117 99 86 101 83 74 98 106 55 120 63 71 101 74 26 101 83 74
++120 63 71 101 74 26 120 63 71 101 74 26 88 44 51 101 74 26 88 73 31 88 73 62
++88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 73 31 88 44 51 88 44 51
++101 74 26 88 73 62 101 74 26 88 73 62 101 74 26 120 63 71 98 106 55 101 83 74
++117 112 45 101 83 74 117 112 45 120 63 71 88 73 62 88 73 31 88 73 31 88 73 62
++88 44 51 88 73 31 120 63 71 117 112 45 117 114 76 168 102 88 146 150 115 168 102 88
++168 146 127 168 146 127 168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 168 102 88
++168 146 127 168 146 127 168 102 88 168 146 127 168 146 127 168 146 127 201 146 124 168 146 127
++201 146 124 201 146 124 168 146 127 201 146 124 177 171 115 201 146 124 177 171 115 168 146 127
++168 146 127 201 146 124 168 102 88 177 171 115 168 102 88 163 117 123 157 148 53 168 102 88
++168 102 88 117 114 76 117 114 76 117 114 76 167 63 71 117 112 45 117 99 86 168 102 88
++117 112 45 117 114 76 168 102 88 168 102 88 168 102 88 163 117 123 168 102 88 168 146 127
++163 117 123 201 146 124 168 146 127 168 102 88 138 126 108 168 102 88 168 146 127 168 146 127
++163 117 123 138 126 108 99 93 84 63 55 45 47 44 42 52 30 35 36 35 37 36 35 37
++47 39 42 42 38 42 47 47 21 36 35 37 36 35 37 36 35 37 42 41 42 42 41 42
++42 41 42 47 44 42 42 47 42 48 50 48 48 50 48 52 55 48 59 55 55 53 63 61
++65 63 61 53 63 61 65 63 61 65 63 61 59 69 70 63 59 71 59 69 70 75 72 67
++75 72 67 75 81 76 75 64 82 75 81 76 75 81 82 78 98 90 75 81 90 88 83 88
++95 91 100 90 98 89 95 91 100 94 105 108 95 91 100 94 105 108 94 105 108 94 105 108
++94 105 108 112 96 108 94 105 108 94 105 108 94 105 108 95 95 116 94 105 108 95 91 100
++94 105 108 95 91 100 77 90 100 88 83 88 88 83 88 75 81 82 75 81 82 75 72 67
++75 72 67 59 69 70 65 63 61 65 63 61 59 55 55 54 57 61 52 55 48 54 57 61
++52 55 48 59 55 55 53 46 48 59 55 55 54 57 61 48 50 48 54 57 61 43 42 50
++48 50 48 57 43 64 48 50 48 57 43 64 48 50 48 48 50 48 57 43 64 48 50 48
++43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 42 38 42 43 42 50
++42 38 42 42 38 42 43 42 50 42 41 42 43 42 50 43 42 50 47 44 42 48 44 48
++48 44 48 47 49 42 53 46 48 48 50 48 51 49 42 53 46 48 48 50 48 53 46 48
++55 55 48 53 46 48 48 50 48 51 49 42 48 50 48 48 50 48 51 49 42 51 49 42
++48 50 48 47 49 42 48 50 48 51 49 42 48 50 48 53 46 48 48 50 48 47 44 42
++48 50 48 47 49 42 48 44 48 47 44 42 47 44 42 42 47 42 47 44 42 47 44 42
++47 44 42 48 50 48 53 46 48 53 46 48 53 46 48 55 55 48 51 49 42 53 46 48
++55 55 48 53 46 48 55 55 48 62 47 47 53 46 48 63 55 51 62 47 47 60 49 42
++53 46 48 60 49 42 51 49 42 60 49 42 53 46 48 53 46 48 55 55 48 51 49 42
++51 49 42 53 46 48 51 49 42 53 46 48 51 49 42 47 44 42 55 39 37 53 46 48
++47 44 42 51 49 42 47 44 42 55 39 37 47 39 42 42 41 42 53 35 37 47 39 42
++
++17 12 17 17 12 17 17 12 17 17 12 17 17 12 17 17 12 17 17 12 17 17 12 17
++14 16 17 17 12 17 13 4 7 17 12 17 7 12 13 13 4 7 14 16 17 7 12 13
++17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 17 12 17
++14 16 17 17 12 17 7 12 13 17 12 17 14 16 17 23 18 22 23 18 22 22 24 13
++23 18 22 22 25 24 22 24 13 23 18 22 23 20 24 26 25 15 23 20 24 26 25 15
++23 20 24 23 20 24 34 30 15 23 20 24 26 25 15 23 20 24 23 18 22 26 25 15
++23 18 22 23 18 22 22 24 13 23 18 22 15 22 17 23 18 22 15 22 17 23 18 22
++23 18 22 23 18 22 22 24 13 23 18 22 23 18 22 22 24 13 23 18 22 23 20 24
++23 18 22 22 25 24 22 24 13 23 18 22 15 22 17 14 16 17 17 12 17 23 18 22
++14 16 17 17 12 17 17 12 17 17 12 17 14 16 17 17 12 17 23 18 22 23 18 22
++23 18 22 23 20 24 23 18 22 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++26 25 15 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 26 24 32 23 20 24 26 24 32 23 20 24 23 20 24 23 20 24 23 18 22
++23 20 24 23 18 22 23 18 22 23 18 22 12 18 20 23 18 22 23 20 24 23 20 24
++23 20 24 23 18 22 23 18 22 23 18 22 14 16 17 23 18 22 14 16 17 23 18 22
++15 22 17 23 18 22 14 16 17 14 16 17 14 16 17 14 16 17 23 18 22 14 16 17
++23 18 22 23 18 22 22 25 24 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35
++36 35 37 53 35 37 36 35 37 47 39 42 47 39 42 53 35 37 47 44 42 55 39 37
++51 49 42 55 39 37 53 46 48 55 39 37 62 47 47 60 49 42 62 47 47 60 49 42
++60 49 42 59 36 42 62 47 47 59 36 42 55 39 37 47 44 42 53 35 37 32 39 24
++52 30 35 33 30 30 34 30 15 33 30 30 28 13 18 28 13 18 23 20 24 28 13 18
++26 25 15 23 18 22 23 20 24 34 30 15 23 20 24 23 20 24 33 30 30 33 30 30
++22 25 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 32 33 30 32 33 30 32 33 30 32 33 30 30 33 30 30
++33 30 32 33 30 32 26 24 32 33 30 30 26 24 32 26 24 32 23 20 24 26 24 32
++26 24 32 26 24 32 26 24 32 22 25 24 22 23 31 22 25 24 22 23 31 22 23 31
++22 23 31 22 23 31 22 23 31 22 25 24 23 20 24 22 23 31 23 20 24 22 23 31
++22 25 24 22 25 24 26 30 28 26 24 32 33 30 30 26 24 32 33 30 30 33 30 30
++33 30 30 33 30 30 36 35 37 36 35 37 32 39 24 36 35 37 36 35 37 36 35 37
++53 35 37 32 39 24 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37 36 35 37
++52 30 35 33 30 30 33 30 30 33 30 30 33 30 32 30 30 34 26 30 28 23 20 24
++22 25 24 22 25 24 22 24 13 23 20 24 23 20 24 23 20 24 28 13 18 34 30 15
++28 13 18 52 30 35 102 33 26 88 44 51 102 33 26 102 33 26 102 33 26 161 55 23
++161 55 23 219 175 47 227 171 124 219 175 47 122 49 24 49 13 16 23 10 10 76 18 19
++120 63 71 157 148 53 201 146 124 201 146 124 157 148 53 201 146 124 168 102 88 177 171 115
++201 146 124 197 171 123 197 171 123 201 146 124 197 171 123 217 168 156 197 171 123 217 168 156
++197 171 123 217 168 156 197 171 123 217 168 156 197 171 123 217 168 156 214 214 134 189 165 168
++197 171 123 217 168 156 197 171 123 177 169 143 201 146 124 177 169 143 201 146 124 177 169 143
++201 146 124 168 146 127 168 102 88 146 150 115 168 102 88 117 127 86 117 114 76 117 114 76
++168 102 88 117 114 76 117 99 86 101 83 74 141 116 139 185 202 202 231 239 247 221 238 247
++231 239 247 194 199 226 95 108 128 60 63 87 29 34 50 34 42 77 77 91 115 150 168 183
++201 216 228 221 238 247 208 221 247 208 221 247 201 216 228 208 221 247 232 215 228 201 216 228
++201 216 228 185 202 202 166 156 164 146 151 137 177 169 143 177 169 143 189 165 168 217 168 156
++189 165 168 214 214 134 189 165 168 217 168 156 217 168 156 214 214 134 189 165 168 214 214 134
++217 168 156 197 171 123 217 168 156 197 171 123 217 168 156 197 171 123 197 171 123 217 168 156
++197 171 123 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 208 215 180
++222 171 182 225 222 201 208 215 180 222 171 182 208 215 180 189 165 168 166 174 181 189 165 168
++188 180 202 166 174 181 189 165 168 188 180 202 166 180 164 146 162 145 146 151 137 145 140 145
++166 174 181 188 180 202 188 180 202 185 202 202 188 180 202 185 202 202 185 202 202 194 199 226
++185 202 202 201 216 228 201 216 228 201 216 228 232 215 228 208 221 247 208 221 247 221 238 247
++226 221 247 221 238 247 235 238 247 231 239 247 233 241 227 226 221 247 235 238 247 235 238 247
++246 237 247 240 251 247 251 251 247 251 251 247 235 238 247 185 202 202 150 144 154 129 144 153
++150 147 171 166 176 200 194 199 226 201 216 228 201 216 228 188 180 202 166 174 181 166 156 164
++146 151 137 138 126 108 112 96 108 138 102 108 117 99 86 117 99 86 117 99 86 117 99 86
++117 99 86 138 102 108 117 114 76 138 102 108 117 114 76 168 102 88 138 126 108 163 117 123
++168 146 127 163 117 123 146 150 115 138 126 108 163 117 123 138 126 108 138 126 108 138 126 108
++138 126 108 117 114 76 138 102 108 117 114 76 117 99 86 117 114 76 138 102 108 117 114 76
++138 102 108 117 114 76 117 99 86 117 99 86 117 99 86 117 114 76 117 99 86 117 99 86
++117 99 86 138 102 108 117 114 76 138 126 108 138 126 108 138 126 108 168 102 88 138 126 108
++138 126 108 138 126 108 138 126 108 117 114 76 168 102 88 117 114 76 117 99 86 101 83 74
++101 83 74 88 73 62 88 73 62 88 73 31 75 56 53 88 73 31 75 56 53 88 73 62
++101 83 74 101 83 74 117 99 86 117 99 86 117 114 76 138 126 108 138 126 108 138 126 108
++138 126 108 163 117 123 138 126 108 138 126 108 138 126 108 117 114 76 117 114 76 117 99 86
++101 74 26 101 83 74 88 73 62 88 73 31 88 73 62 88 73 31 88 73 62 88 73 31
++88 73 62 88 73 62 101 74 26 101 60 73 88 73 62 101 83 74 88 73 62 101 74 26
++88 73 62 88 73 62 88 73 31 75 56 53 88 73 31 75 56 53 76 44 53 60 49 42
++76 46 20 55 39 37 47 47 21 60 49 42 60 49 42 60 49 42 75 56 53 63 55 45
++63 55 45 76 44 53 60 49 42 60 49 42 60 49 42 63 55 45 76 46 20 75 56 53
++75 56 53 75 56 53 75 56 53 75 73 36 75 56 53 75 56 53 75 56 53 75 73 36
++75 56 53 75 56 53 88 73 31 88 44 51 101 83 74 98 106 55 117 99 86 117 114 76
++168 102 88 146 150 115 168 146 127 201 146 124 168 146 127 168 146 127 201 146 124 168 146 127
++168 102 88 177 171 115 168 146 127 168 146 127 201 146 124 168 146 127 168 146 127 168 146 127
++168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 168 146 127 168 102 88 201 146 124
++168 102 88 146 150 115 168 102 88 168 102 88 138 126 108 117 114 76 168 102 88 101 83 74
++101 74 26 88 44 51 88 44 51 88 73 62 88 73 62 101 60 73 101 74 26 88 44 51
++88 73 62 120 63 71 101 83 74 117 114 76 117 99 86 168 102 88 138 126 108 168 102 88
++168 102 88 146 150 115 168 102 88 168 146 127 168 102 88 117 114 76 168 102 88 138 126 108
++168 146 127 168 146 127 138 126 108 138 102 108 88 73 62 63 55 45 55 39 37 36 35 37
++36 35 37 47 39 42 42 38 42 47 39 42 47 47 21 42 38 42 47 44 42 47 44 42
++47 49 42 48 50 48 48 50 48 48 50 48 59 55 55 54 57 61 54 57 61 59 57 61
++59 69 70 65 63 61 59 69 70 59 69 70 75 72 67 75 72 67 75 64 82 75 81 76
++75 81 82 75 81 82 75 81 76 75 81 82 88 83 88 88 83 88 88 83 88 78 98 90
++90 98 89 95 91 100 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 112 96 108
++95 108 128 111 119 127 94 105 108 112 96 108 94 105 108 94 105 108 94 105 108 112 96 108
++94 105 108 95 91 100 90 98 89 95 91 100 88 83 88 88 83 88 88 83 74 75 64 82
++75 72 67 65 63 61 65 63 61 65 63 61 59 57 61 59 55 55 55 55 48 55 55 48
++52 55 48 55 55 48 59 55 55 52 55 48 53 46 48 48 50 48 59 55 55 53 46 48
++54 57 61 48 44 48 48 50 48 48 50 48 48 44 48 57 43 64 48 50 48 43 42 50
++48 44 48 48 44 48 42 41 42 48 44 48 42 38 42 42 38 42 42 38 42 42 38 42
++43 42 50 42 38 42 42 41 42 47 39 42 42 41 42 47 39 42 47 44 42 47 44 42
++47 44 42 53 46 48 51 49 42 53 46 48 52 55 48 55 55 48 53 46 48 55 55 48
++53 46 48 55 55 48 51 49 42 51 49 42 51 49 42 60 49 42 53 46 48 51 49 42
++51 49 42 47 44 42 51 49 42 51 49 42 51 49 42 51 49 42 51 49 42 51 49 42
++47 44 42 51 49 42 47 44 42 51 49 42 47 44 42 47 44 42 47 44 42 55 39 37
++47 44 42 53 46 48 53 46 48 60 49 42 53 46 48 53 46 48 62 47 47 60 49 42
++62 47 47 63 55 45 60 49 42 60 49 42 63 55 51 62 47 47 62 47 47 53 46 48
++60 49 42 55 39 37 53 46 48 60 49 42 53 46 48 60 49 42 51 49 42 53 46 48
++60 49 42 53 46 48 55 39 37 55 39 37 55 39 37 51 49 42 55 39 37 55 39 37
++55 39 37 55 39 37 55 39 37 47 47 21 36 35 37 55 39 37 36 35 37 47 47 21
++
++7 12 13 14 16 17 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13
++17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 7 10 17 13 4 7 7 12 13
++13 4 7 17 12 17 7 12 13 17 12 17 13 4 7 17 12 17 7 10 17 17 12 17
++7 10 17 17 12 17 17 12 17 17 12 17 17 12 17 14 16 17 14 16 17 23 18 22
++22 24 13 23 18 22 23 20 24 26 25 15 23 20 24 34 30 15 23 20 24 23 20 24
++34 30 15 23 20 24 23 20 24 26 25 15 23 18 22 23 18 22 26 25 15 23 18 22
++26 25 15 23 18 22 23 18 22 22 24 13 23 18 22 22 24 13 23 18 22 22 24 13
++23 18 22 22 24 13 23 20 24 22 24 13 23 18 22 23 18 22 23 20 24 22 24 13
++22 25 24 26 25 15 23 20 24 23 18 22 22 24 13 23 18 22 14 16 17 22 24 13
++17 12 17 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17
++14 16 17 23 18 22 23 18 22 23 18 22 23 18 22 23 20 24 23 18 22 23 20 24
++23 18 22 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 22 25 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 23 18 22 15 22 17 23 18 22 23 18 22 23 18 22 23 20 24 23 20 24
++23 18 22 23 20 24 15 22 17 23 18 22 23 20 24 12 18 20 23 18 22 14 16 17
++23 18 22 15 22 17 14 16 17 14 16 17 14 16 17 23 18 22 14 16 17 23 18 22
++23 18 22 23 20 24 23 20 24 23 18 22 33 30 30 33 30 30 33 30 30 33 30 30
++36 35 37 36 35 37 47 39 42 47 47 21 36 35 37 55 39 37 47 39 42 55 39 37
++47 44 42 55 39 37 51 49 42 53 46 48 60 49 42 59 36 42 60 49 42 59 36 42
++62 47 47 60 49 42 62 47 47 55 39 37 55 39 37 47 44 42 52 30 35 52 30 35
++33 30 30 52 30 35 33 30 30 33 30 30 34 30 15 33 30 30 34 30 15 28 13 18
++23 20 24 28 13 18 26 24 32 28 13 18 26 24 32 33 30 30 33 30 30 23 20 24
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30
++33 30 30 53 35 17 33 30 30 33 30 30 53 35 17 33 30 30 32 39 24 52 30 35
++33 30 30 36 35 37 33 30 32 33 30 32 33 30 32 33 30 32 33 30 30 33 30 30
++33 30 36 33 30 32 30 30 34 33 30 32 26 24 32 26 30 28 22 23 31 23 20 24
++23 20 24 22 25 24 26 24 32 23 20 24 23 20 24 22 23 31 22 25 24 23 20 24
++22 23 31 22 23 31 22 23 31 22 23 31 22 25 24 23 20 24 22 23 31 23 20 24
++26 24 32 22 25 24 26 30 28 26 24 32 26 30 28 26 30 28 33 30 30 33 30 30
++33 30 30 32 39 24 36 35 37 36 35 37 33 30 30 52 30 35 36 35 37 36 35 37
++36 35 37 36 35 37 53 35 37 36 35 37 36 35 37 52 30 35 32 39 24 36 35 37
++33 30 30 36 35 37 33 30 30 33 30 30 33 30 30 26 30 28 26 24 32 26 24 32
++23 20 24 22 24 13 22 25 24 22 25 24 23 20 24 23 20 24 23 20 24 28 13 18
++28 13 18 76 18 19 88 44 51 102 33 26 122 49 24 122 49 24 122 49 24 161 55 23
++176 103 41 227 171 124 219 175 47 195 113 123 122 49 24 23 10 10 13 4 7 49 13 16
++88 73 62 168 102 88 177 171 115 168 102 88 201 146 124 168 102 88 177 171 115 201 146 124
++197 171 123 197 171 123 197 171 123 197 171 123 217 168 156 197 171 123 197 171 123 217 168 156
++197 171 123 217 168 156 217 168 156 197 171 123 217 168 156 217 168 156 197 171 123 217 168 156
++197 171 123 177 169 143 201 146 124 177 169 143 197 171 123 201 146 124 168 146 127 201 146 124
++168 146 127 138 126 108 138 126 108 168 102 88 117 127 86 168 102 88 138 102 108 168 102 88
++117 114 76 101 83 74 88 73 62 117 99 86 145 140 145 225 222 201 221 238 247 226 221 247
++208 221 247 194 199 226 111 122 142 42 60 86 29 34 50 34 42 77 95 95 116 166 174 181
++208 221 247 221 238 247 221 238 247 208 221 247 233 241 227 208 221 247 208 221 247 232 215 228
++201 216 228 201 216 228 189 165 168 166 156 164 168 146 127 177 169 143 177 169 143 214 214 134
++189 165 168 217 168 156 208 215 180 177 169 143 217 168 156 189 165 168 217 168 156 217 168 156
++217 168 156 197 171 123 217 168 156 197 171 123 217 168 156 197 171 123 217 168 156 197 171 123
++217 168 156 197 171 123 214 214 134 217 168 156 214 214 134 222 171 182 214 214 134 222 171 182
++214 214 134 222 171 182 225 222 201 208 215 180 189 165 168 166 180 164 189 165 168 166 174 181
++166 174 181 166 174 181 166 174 181 166 180 164 146 151 137 112 96 108 112 96 108 145 140 145
++166 174 181 185 202 202 201 216 228 208 221 247 208 221 247 221 238 247 231 239 247 231 239 247
++246 237 247 235 238 247 235 238 247 235 238 247 235 238 247 235 238 247 240 251 247 231 239 247
++240 251 247 235 238 247 240 251 247 246 237 247 240 251 247 240 251 247 240 251 247 240 251 247
++246 237 247 240 251 247 251 251 247 251 251 247 251 251 247 194 199 226 166 174 181 166 174 181
++166 174 181 188 180 202 188 180 202 166 156 164 150 144 154 145 140 145 111 119 127 112 96 108
++99 93 84 95 91 100 88 83 74 88 83 74 88 66 70 88 73 62 101 83 74 101 83 74
++101 83 74 120 63 71 98 106 55 120 63 71 101 83 74 117 99 86 117 114 76 117 99 86
++117 114 76 117 99 86 117 114 76 168 102 88 117 114 76 117 99 86 117 112 45 120 63 71
++117 114 76 120 63 71 117 112 45 101 83 74 101 83 74 101 83 74 101 83 74 117 99 86
++101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 88 73 62 88 73 62 88 73 62
++101 83 74 101 83 74 117 99 86 117 99 86 117 99 86 117 99 86 117 99 86 117 99 86
++117 114 76 101 83 74 88 73 62 101 83 74 88 73 62 88 73 62 88 73 62 88 73 31
++75 73 36 75 73 36 75 56 53 75 56 53 88 73 62 88 73 62 88 73 62 101 83 74
++117 99 86 117 99 86 117 114 76 168 102 88 117 99 86 117 114 76 117 114 76 168 102 88
++117 114 76 117 114 76 117 112 45 120 63 71 98 106 55 120 63 71 101 74 26 88 73 62
++88 73 31 88 73 62 88 73 31 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62
++88 73 62 88 73 31 88 73 62 88 73 62 88 73 31 88 73 31 88 73 62 88 73 31
++63 55 45 75 73 36 60 49 42 60 49 42 60 49 42 55 39 18 60 49 42 55 39 18
++55 39 37 55 39 18 55 39 37 55 39 18 55 39 37 55 39 18 55 39 37 55 39 18
++55 39 37 55 39 18 55 39 18 55 39 18 53 35 17 53 35 17 53 35 17 53 35 17
++53 35 17 55 39 18 55 39 18 55 39 18 55 39 18 55 39 18 55 39 18 60 49 42
++63 55 45 76 46 20 60 49 42 60 49 42 76 46 20 76 46 20 88 44 51 88 73 31
++101 74 26 120 63 71 117 114 76 168 102 88 168 102 88 177 171 115 168 102 88 177 171 115
++168 146 127 201 146 124 168 102 88 168 146 127 168 102 88 201 146 124 168 146 127 201 146 124
++168 146 127 201 146 124 168 146 127 177 171 115 168 102 88 201 146 124 177 171 115 168 102 88
++177 171 115 168 102 88 138 126 108 168 102 88 101 74 26 120 63 71 101 74 26 88 44 51
++88 44 51 76 46 20 88 73 31 88 44 51 76 46 20 88 44 51 75 56 53 76 46 20
++88 44 51 76 46 20 88 73 31 88 44 51 101 74 26 120 63 71 117 112 45 120 63 71
++117 112 45 168 102 88 168 102 88 177 171 115 168 102 88 117 114 76 120 63 71 120 63 71
++168 102 88 163 117 123 177 169 143 168 146 127 168 146 127 99 93 84 63 55 51 32 39 24
++32 39 24 42 41 42 47 44 42 42 41 42 47 39 42 42 41 42 47 44 42 47 44 42
++48 50 48 48 50 48 48 50 48 59 55 55 52 55 48 59 55 55 59 57 61 65 63 61
++63 59 71 59 69 70 75 72 67 59 69 70 75 72 67 59 69 70 75 81 76 75 64 82
++75 81 82 75 81 82 75 81 82 88 83 88 88 83 88 77 90 100 95 91 100 90 98 89
++95 91 100 90 98 89 95 91 100 94 105 108 94 105 108 112 96 108 94 105 108 95 108 128
++112 123 108 112 96 108 95 108 128 112 123 108 95 108 128 112 96 108 94 105 108 94 105 108
++95 91 100 95 91 100 95 91 100 90 98 89 88 83 88 88 83 88 75 81 82 75 81 76
++75 72 67 75 72 67 63 59 71 65 63 61 59 55 55 59 55 55 59 55 55 55 55 48
++52 55 48 53 46 48 53 46 48 53 46 48 51 49 42 48 50 48 48 50 48 53 46 48
++53 46 48 48 44 48 53 46 48 43 42 50 48 50 48 48 44 48 48 44 48 43 42 50
++48 44 48 47 39 42 42 38 42 42 38 42 42 38 42 47 39 42 43 42 50 42 38 42
++42 38 42 42 38 42 42 38 42 42 38 42 47 39 42 42 41 42 47 39 42 47 44 42
++47 44 42 47 44 42 51 49 42 51 49 42 51 49 42 51 49 42 51 49 42 51 49 42
++53 46 48 51 49 42 51 49 42 51 49 42 51 49 42 51 49 42 53 46 48 51 49 42
++51 49 42 51 49 42 47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 51 49 42
++51 49 42 47 44 42 60 49 42 55 39 37 47 44 42 55 39 37 47 44 42 47 44 42
++53 46 48 51 49 42 53 46 48 60 49 42 53 46 48 60 49 42 60 49 42 62 47 47
++55 55 48 60 49 42 62 47 47 55 55 48 62 47 47 62 47 47 60 49 42 53 46 48
++60 49 42 51 49 42 55 39 37 53 46 48 60 49 42 53 46 48 51 49 42 53 46 48
++55 39 37 51 49 42 55 39 37 51 49 42 47 44 42 55 39 37 47 44 42 53 35 37
++53 35 37 36 35 37 47 47 21 36 35 37 55 39 37 32 39 24 53 35 37 42 38 42
++
++17 12 17 17 12 17 17 12 17 14 16 17 17 12 17 17 12 17 17 12 17 17 12 17
++17 12 17 7 12 13 17 12 17 13 4 7 17 12 17 7 12 13 17 12 17 13 4 7
++7 10 17 17 12 17 13 4 7 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13
++17 12 17 17 12 17 7 12 13 17 12 17 14 16 17 23 18 22 23 18 22 23 18 22
++22 24 13 23 20 24 23 20 24 23 20 24 26 25 15 23 20 24 23 20 24 34 30 15
++23 18 22 23 20 24 26 25 15 23 20 24 26 25 15 23 20 24 23 18 22 23 18 22
++23 18 22 22 24 13 23 18 22 15 22 17 23 18 22 15 22 17 23 18 22 23 18 22
++22 24 13 23 20 24 23 18 22 22 25 24 23 18 22 26 25 15 22 25 24 23 20 24
++22 25 24 23 18 22 26 25 15 22 24 13 23 18 22 23 18 22 14 16 17 23 18 22
++14 16 17 26 12 13 15 22 17 17 12 17 17 12 17 17 12 17 14 16 17 23 18 22
++23 18 22 14 16 17 23 18 22 23 18 22 23 18 22 22 24 13 23 18 22 23 18 22
++23 18 22 22 25 24 23 18 22 26 25 15 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 22 25 24
++23 20 24 23 18 22 23 18 22 23 18 22 23 18 22 15 22 17 23 20 24 12 18 20
++23 18 22 23 18 22 23 18 22 23 20 24 23 20 24 23 18 22 12 18 20 14 16 17
++14 16 17 17 12 17 17 12 17 14 16 17 14 16 17 23 18 22 14 16 17 23 18 22
++14 16 17 23 20 24 22 25 24 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30
++52 30 35 32 39 24 53 35 37 42 41 42 55 39 37 47 39 42 55 39 37 47 44 42
++55 39 37 51 49 42 55 39 37 51 49 42 59 36 42 62 47 47 60 49 42 60 49 42
++59 36 42 59 36 42 59 36 42 55 39 37 55 39 37 53 35 37 32 39 24 52 30 35
++33 30 30 34 30 15 33 30 30 28 13 18 28 13 18 28 13 18 28 13 18 28 13 18
++26 25 15 23 20 24 34 30 15 33 30 30 23 20 24 33 30 30 28 13 18 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 32 33 30 32 33 30 30 33 30 30 52 30 35
++33 30 30 36 35 37 36 35 37 33 30 30 36 35 37 36 35 37 36 35 37 33 30 30
++36 35 37 33 30 30 52 30 35 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32
++33 30 32 33 30 32 33 30 32 30 30 34 26 24 32 26 24 32 23 20 24 23 20 24
++23 20 24 22 23 31 26 24 32 23 20 24 22 23 31 23 20 24 22 23 31 22 23 31
++22 23 31 22 23 31 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 22 25 24
++26 24 32 26 30 28 26 24 32 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 32 36 35 37 52 30 35 36 35 37 32 39 24 36 35 37 53 35 37
++36 35 37 36 35 37 36 35 37 53 35 37 36 35 37 33 30 30 36 35 37 52 30 35
++32 39 24 33 30 32 33 30 30 33 30 30 33 30 30 26 24 32 26 30 28 23 20 24
++22 25 24 22 25 24 23 18 22 15 22 17 23 20 24 23 18 22 23 18 22 28 13 18
++28 13 18 52 30 35 88 44 51 102 33 26 102 33 26 102 33 26 122 49 24 161 55 23
++176 103 41 219 175 47 195 113 123 176 103 41 102 33 26 49 13 16 23 10 10 52 30 15
++101 74 26 168 102 88 201 146 124 177 171 115 157 148 53 201 146 124 177 171 115 201 146 124
++197 171 123 227 171 124 197 171 123 217 168 156 197 171 123 197 171 123 217 168 156 197 171 123
++217 168 156 197 171 123 217 168 156 217 168 156 214 214 134 177 169 143 217 168 156 197 171 123
++168 146 127 201 146 124 197 171 123 201 146 124 177 169 143 168 146 127 168 146 127 168 102 88
++138 126 108 168 102 88 157 148 53 138 126 108 117 114 76 168 102 88 117 114 76 117 114 76
++117 99 86 101 83 74 88 73 62 117 99 86 166 156 164 201 216 228 226 221 247 226 221 247
++231 239 247 188 180 202 111 122 142 42 60 86 34 42 77 34 42 77 95 108 128 166 176 200
++208 221 247 231 239 247 226 221 247 208 221 247 208 221 247 201 216 228 201 216 228 201 216 228
++201 216 228 201 216 228 185 202 202 189 165 168 146 151 137 168 146 127 177 169 143 189 165 168
++217 168 156 177 169 143 217 168 156 217 168 156 214 214 134 189 165 168 214 214 134 217 168 156
++177 169 143 217 168 156 197 171 123 217 168 156 197 171 123 217 168 156 177 169 143 217 168 156
++217 168 156 217 168 156 177 169 143 217 168 156 217 168 156 208 215 180 217 168 156 208 215 180
++222 171 182 225 222 201 208 215 180 222 171 182 208 215 180 189 165 168 166 156 164 166 156 164
++166 156 164 189 165 168 166 156 164 150 144 154 112 123 108 95 91 100 112 123 108 166 156 164
++185 202 202 201 216 228 226 221 247 226 221 247 231 239 247 231 239 247 240 251 247 240 251 247
++251 251 247 240 251 247 251 251 247 240 251 247 251 251 247 240 251 247 240 251 247 240 251 247
++235 238 247 235 238 247 240 251 247 235 238 247 240 251 247 246 237 247 240 251 247 240 251 247
++251 251 247 240 251 247 251 251 247 251 251 247 251 251 247 232 215 228 188 180 202 150 147 171
++150 147 171 145 140 145 111 119 127 94 105 108 95 91 100 88 83 88 88 83 74 88 83 74
++75 72 67 88 66 70 75 63 62 75 56 53 75 63 62 88 73 62 88 73 62 88 73 31
++88 73 62 101 74 26 88 73 62 88 73 31 88 73 62 101 83 74 120 63 71 101 83 74
++120 63 71 101 83 74 101 83 74 101 83 74 88 73 62 88 73 62 88 73 62 88 73 62
++101 74 26 88 73 62 88 73 62 88 73 62 101 74 26 101 83 74 101 74 26 88 73 62
++88 73 62 88 73 31 88 73 62 88 73 31 88 44 51 75 73 36 88 44 51 88 73 31
++75 56 53 88 73 31 88 73 62 75 56 53 88 73 62 75 73 36 88 73 62 75 56 53
++88 73 31 75 56 53 76 46 20 63 55 45 76 46 20 60 49 42 76 46 20 60 49 42
++62 47 47 60 49 42 75 56 53 75 73 36 75 56 53 88 73 62 88 73 62 88 73 62
++101 74 26 101 83 74 88 73 62 101 83 74 88 73 62 88 73 62 88 73 31 75 56 53
++75 73 36 88 44 51 63 55 45 75 73 36 76 46 20 75 56 53 75 56 53 88 73 31
++88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 120 63 71 88 73 62 88 73 31
++88 73 62 88 44 51 75 73 36 76 44 53 75 56 53 63 55 45 60 49 42 60 49 42
++55 39 18 55 39 37 55 39 18 55 39 18 47 47 21 55 39 37 55 39 18 55 39 37
++47 47 21 53 35 37 47 47 21 52 30 35 47 47 21 55 39 37 47 47 21 55 39 37
++55 39 37 55 39 37 55 39 37 55 39 37 53 35 37 32 39 24 52 30 35 32 39 24
++53 35 17 33 30 30 53 35 17 33 30 30 53 35 17 36 35 37 53 35 17 53 35 17
++53 35 37 55 39 37 53 35 17 53 35 17 52 30 15 53 35 17 53 35 17 55 39 18
++76 46 20 76 46 20 88 73 31 88 73 62 117 114 76 168 102 88 163 117 123 168 146 127
++201 146 124 168 146 127 177 171 115 168 146 127 201 146 124 168 146 127 201 146 124 168 146 127
++201 146 124 168 146 127 201 146 124 168 102 88 168 146 127 146 150 115 168 102 88 168 146 127
++168 102 88 138 126 108 168 102 88 117 114 76 120 63 71 101 74 26 88 44 51 88 73 31
++76 46 20 88 44 51 88 44 51 75 56 53 88 44 51 75 56 53 88 44 51 75 56 53
++88 73 31 76 44 53 76 46 20 76 46 20 76 44 53 76 46 20 76 46 20 76 46 20
++88 44 51 88 73 62 168 102 88 168 146 127 168 146 127 168 102 88 117 112 45 120 63 71
++101 74 26 138 102 108 168 146 127 168 146 127 177 169 143 138 102 108 63 55 51 36 35 37
++33 30 30 47 44 42 47 44 42 47 39 42 42 41 42 47 44 42 47 44 42 47 49 42
++48 50 48 59 55 55 48 50 48 54 57 61 59 57 61 59 57 61 65 63 61 59 69 70
++59 69 70 75 72 67 63 59 71 75 81 76 75 64 82 75 81 76 75 81 82 75 81 82
++75 81 82 88 83 88 88 83 88 75 81 90 90 98 89 95 91 100 90 98 89 95 91 100
++95 91 100 94 105 108 94 105 108 112 96 108 95 119 107 112 123 108 94 105 108 112 123 108
++94 105 108 111 119 127 94 105 108 112 96 108 94 105 108 94 105 108 94 105 108 112 96 108
++95 91 100 94 105 108 90 98 89 95 91 100 88 83 88 88 83 74 88 83 74 75 64 82
++75 72 67 75 72 67 65 63 61 65 63 61 65 57 61 63 55 51 55 55 48 55 55 48
++53 46 48 53 46 48 51 49 42 51 49 42 53 46 48 51 49 42 48 44 48 53 46 48
++48 44 48 48 44 48 48 44 48 48 44 48 48 44 48 48 44 48 48 44 48 47 39 42
++47 39 42 42 38 42 42 38 42 42 38 42 42 38 42 42 38 42 47 39 42 42 38 42
++42 38 42 42 38 42 42 38 42 42 38 42 42 38 42 42 38 42 42 38 42 42 41 42
++47 39 42 47 44 42 47 44 42 51 49 42 51 49 42 51 49 42 51 49 42 51 49 42
++60 49 42 51 49 42 60 49 42 51 49 42 51 49 42 51 49 42 51 49 42 60 49 42
++51 49 42 55 39 37 51 49 42 55 39 37 51 49 42 51 49 42 51 49 42 51 49 42
++51 49 42 60 49 42 55 39 37 51 49 42 47 44 42 47 44 42 47 44 42 55 39 37
++51 49 42 60 49 42 51 49 42 51 49 42 60 49 42 53 46 48 60 49 42 62 47 47
++63 55 51 60 49 42 55 55 48 62 47 47 62 47 47 60 49 42 60 49 42 60 49 42
++55 39 37 60 49 42 60 49 42 60 49 42 53 46 48 60 49 42 55 39 37 60 49 42
++60 49 42 59 36 42 60 49 42 55 39 37 55 39 37 55 39 37 55 39 37 47 47 21
++53 35 37 52 30 35 47 47 21 52 30 35 47 47 21 52 30 35 36 35 37 53 35 17
++
++14 16 17 17 12 17 15 17 7 17 12 17 14 16 17 17 12 17 15 17 7 17 12 17
++15 17 7 17 12 17 7 12 13 17 12 17 7 12 13 13 4 7 7 12 13 17 12 17
++7 12 13 17 12 17 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 17 12 17
++7 12 13 17 12 17 15 17 7 14 16 17 17 12 17 14 16 17 14 16 17 22 24 13
++23 18 22 26 25 15 26 25 15 26 25 15 23 20 24 23 20 24 26 25 15 23 20 24
++23 20 24 26 25 15 23 20 24 23 20 24 26 25 15 23 18 22 26 25 15 23 18 22
++26 25 15 23 18 22 23 18 22 22 24 13 23 18 22 22 24 13 23 18 22 22 24 13
++23 18 22 23 18 22 22 24 13 23 18 22 26 25 15 23 18 22 26 25 15 22 25 24
++26 25 15 22 25 24 22 25 24 23 20 24 23 18 22 23 18 22 23 18 22 23 18 22
++17 12 17 14 16 17 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17 14 16 17
++14 16 17 14 16 17 12 18 20 23 18 22 12 18 20 23 18 22 23 18 22 15 22 17
++23 18 22 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 23 18 22 23 18 22 12 18 20 23 18 22 12 18 20 23 18 22 23 18 22
++14 16 17 23 18 22 14 16 17 17 12 17 17 12 17 14 16 17 23 18 22 12 18 20
++23 18 22 23 20 24 23 20 24 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30
++36 35 37 36 35 37 36 35 37 53 35 37 42 38 42 55 39 37 47 44 42 55 39 37
++53 46 48 55 39 37 53 46 48 60 49 42 53 46 48 60 49 42 59 36 42 59 36 42
++60 49 42 55 39 37 60 49 42 55 39 37 47 39 42 53 35 37 52 30 35 33 30 30
++52 30 35 33 30 32 49 13 16 33 30 30 28 13 18 34 30 15 23 20 24 23 20 24
++23 20 24 28 13 18 23 18 22 33 30 30 28 13 18 33 30 30 23 20 24 33 30 30
++33 30 30 33 30 32 33 30 30 33 30 32 33 30 30 33 30 32 33 30 30 33 30 30
++36 35 37 33 30 30 36 35 37 32 39 24 52 30 35 33 30 30 32 39 24 52 30 35
++33 30 30 36 35 37 36 35 37 36 35 37 33 30 32 33 30 32 33 30 30 33 30 32
++33 30 32 33 30 32 26 24 32 33 30 32 26 30 28 26 24 32 26 24 32 26 24 32
++23 20 24 22 23 31 23 20 24 22 23 31 22 23 31 22 23 31 23 20 24 12 18 30
++23 20 24 12 18 30 22 23 31 23 20 24 12 18 30 23 20 24 23 20 24 22 23 31
++23 20 24 26 30 28 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++36 35 37 33 30 30 33 30 30 36 35 37 33 30 30 47 39 42 36 35 37 47 47 21
++36 35 37 55 39 37 36 35 37 36 35 37 47 47 21 36 35 37 33 30 30 33 30 30
++36 35 37 33 30 32 33 30 32 33 30 30 26 30 28 33 30 30 23 20 24 26 24 32
++22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 26 25 15 23 20 24
++28 13 18 52 30 35 76 18 19 120 63 71 122 49 24 122 49 24 102 33 26 161 55 23
++176 103 41 219 175 47 227 171 124 168 102 88 102 33 26 23 10 10 49 13 16 88 30 18
++117 99 86 168 102 88 177 171 115 168 102 88 201 146 124 201 146 124 197 171 123 227 171 124
++197 171 123 201 146 124 197 171 123 217 168 156 177 169 143 201 146 124 197 171 123 217 168 156
++197 171 123 217 168 156 217 168 156 197 171 123 217 168 156 217 168 156 197 171 123 168 146 127
++201 146 124 177 169 143 201 146 124 168 146 127 168 146 127 201 146 124 168 146 127 146 150 115
++168 102 88 117 114 76 138 102 108 168 102 88 117 114 76 138 102 108 117 99 86 117 99 86
++101 83 74 88 73 62 88 73 62 117 99 86 166 156 164 232 215 228 235 238 247 221 238 247
++221 238 247 166 176 200 111 122 142 60 63 87 32 40 58 46 59 71 95 108 128 188 180 202
++208 221 247 221 238 247 226 221 247 221 238 247 221 238 247 226 221 247 208 221 247 201 216 228
++201 216 228 232 215 228 185 202 202 188 180 202 166 156 164 168 146 127 177 169 143 177 169 143
++177 169 143 208 215 180 217 168 156 208 215 180 217 168 156 217 168 156 189 165 168 217 168 156
++217 168 156 217 168 156 217 168 156 177 169 143 217 168 156 197 171 123 217 168 156 217 168 156
++214 214 134 217 168 156 214 214 134 217 168 156 214 214 134 217 168 156 217 168 156 222 171 182
++214 214 134 217 168 156 225 222 201 208 215 180 189 165 168 189 165 168 146 162 145 166 156 164
++166 180 164 166 156 164 148 160 159 119 117 138 112 96 108 111 119 127 145 140 145 188 180 202
++194 199 226 194 199 226 201 216 228 201 216 228 226 221 247 221 238 247 231 239 247 235 238 247
++240 251 247 240 251 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++240 251 247 251 251 247 240 251 247 251 251 247 240 251 247 251 251 247 246 237 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 201 216 228 145 140 145 95 91 100
++88 69 84 75 72 67 75 72 67 88 73 62 88 73 62 75 56 53 76 44 53 63 55 45
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 63 55 45 75 56 53 75 56 53
++75 56 53 75 56 53 88 44 51 88 73 31 88 73 62 88 73 62 88 73 31 88 73 62
++88 73 31 75 56 53 88 73 31 88 73 31 75 56 53 88 73 31 88 44 51 75 56 53
++75 56 53 88 73 62 75 56 53 88 73 62 75 56 53 75 56 53 75 56 53 75 56 53
++75 56 53 75 56 53 62 47 47 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45
++63 55 45 76 44 53 63 55 45 63 55 45 63 55 45 63 55 45 60 49 42 60 49 42
++60 49 42 51 49 42 55 39 37 47 47 21 53 35 37 47 47 21 55 39 37 55 39 37
++55 39 18 60 49 42 55 39 37 55 39 37 60 49 42 60 49 42 60 49 42 60 49 42
++60 49 42 55 39 37 55 39 18 60 49 42 55 39 18 55 39 37 55 39 37 55 39 37
++52 30 35 47 47 21 55 39 18 55 39 37 60 49 42 60 49 42 60 49 42 62 47 47
++60 49 42 63 55 45 63 55 45 75 56 53 75 56 53 75 73 36 63 55 45 75 56 53
++63 55 45 60 49 42 60 49 42 60 49 42 60 49 42 60 49 42 55 39 37 55 39 37
++47 44 42 55 39 37 47 44 42 36 35 37 47 39 42 32 39 24 47 44 42 36 35 37
++42 38 42 47 39 42 42 41 42 36 35 37 47 39 42 36 35 37 42 41 42 47 44 42
++36 35 37 47 47 21 42 47 42 47 44 42 47 39 42 47 47 21 47 44 42 47 44 42
++47 44 42 47 44 42 47 39 42 47 39 42 47 39 42 47 39 42 47 44 42 47 39 42
++42 38 42 47 47 21 47 39 42 47 39 42 36 35 37 52 30 35 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 55 39 18 60 49 42 75 73 36 117 99 86 117 114 76
++138 126 108 163 117 123 201 146 124 168 146 127 201 146 124 168 146 127 197 171 123 201 146 124
++168 146 127 201 146 124 168 146 127 168 146 127 168 146 127 168 102 88 163 117 123 168 102 88
++177 171 115 168 102 88 168 146 127 168 102 88 168 102 88 168 102 88 117 114 76 120 63 71
++101 83 74 101 83 74 101 83 74 88 73 62 101 83 74 88 73 62 101 83 74 88 73 62
++101 83 74 88 73 62 88 73 62 75 56 53 75 56 53 75 56 53 62 47 47 55 39 37
++55 39 18 76 46 20 88 73 62 168 102 88 168 146 127 168 146 127 168 102 88 88 73 62
++88 44 51 101 74 26 117 99 86 138 126 108 138 126 108 99 93 84 60 49 42 53 35 37
++36 35 37 47 44 42 48 44 48 42 41 42 43 42 50 47 44 42 48 50 48 48 50 48
++53 46 48 45 57 61 59 55 55 54 57 61 59 57 61 59 57 61 59 69 70 63 59 71
++75 72 67 59 69 70 75 64 82 75 81 76 75 64 82 75 81 82 88 83 88 75 81 82
++88 83 88 75 81 90 88 83 88 88 83 88 95 91 100 77 90 100 95 91 100 95 91 100
++94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 112 96 108 94 105 108 111 119 127
++112 96 108 94 105 108 111 119 127 94 105 108 112 123 108 94 105 108 112 96 108 94 105 108
++95 91 100 95 91 100 99 93 84 99 93 84 88 83 88 88 83 88 88 83 74 88 66 70
++75 72 67 75 63 62 75 63 62 75 63 62 65 63 61 65 55 54 65 55 54 62 47 47
++55 55 48 60 49 42 53 46 48 53 46 48 51 49 42 53 46 48 51 49 42 53 46 48
++53 46 48 53 46 48 47 44 42 47 39 42 53 46 48 48 44 48 47 39 42 48 44 48
++47 44 42 47 39 42 47 39 42 47 39 42 47 39 42 47 39 42 42 38 42 47 39 42
++42 38 42 42 38 42 47 39 42 52 30 35 36 35 37 47 39 42 47 39 42 47 39 42
++47 39 42 55 39 37 47 44 42 55 39 37 51 49 42 55 39 37 60 49 42 60 49 42
++60 49 42 60 49 42 60 49 42 60 49 42 60 49 42 60 49 42 60 49 42 60 49 42
++60 49 42 55 39 37 60 49 42 51 49 42 55 39 37 60 49 42 55 39 37 60 49 42
++51 49 42 55 39 37 51 49 42 55 39 37 55 39 37 55 39 37 55 39 37 51 49 42
++55 39 37 51 49 42 60 49 42 60 49 42 60 49 42 60 49 42 62 47 47 62 47 47
++63 55 45 62 47 47 63 55 45 62 47 47 60 49 42 62 47 47 60 49 42 60 49 42
++60 49 42 60 49 42 60 49 42 59 36 42 60 49 42 60 49 42 60 49 42 60 49 42
++60 49 42 60 49 42 55 39 37 60 49 42 55 39 37 55 39 37 55 39 37 55 39 37
++53 35 37 53 35 37 52 30 35 47 47 21 36 35 37 52 30 35 53 35 37 52 30 35
++
++17 12 17 15 17 7 17 12 17 14 16 17 17 12 17 17 12 17 14 16 17 7 12 13
++17 12 17 13 4 7 17 12 17 7 12 13 17 12 17 17 12 17 7 12 13 13 4 7
++17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 13 4 7 17 12 17 7 10 17
++17 12 17 7 12 13 17 12 17 13 4 7 14 16 17 17 12 17 23 18 22 14 16 17
++22 24 13 23 18 22 23 20 24 23 20 24 26 25 15 23 20 24 34 30 15 23 20 24
++26 25 15 23 20 24 34 30 15 23 18 22 23 18 22 23 18 22 26 25 15 23 18 22
++23 18 22 26 25 15 23 18 22 22 24 13 23 18 22 15 22 17 23 18 22 23 18 22
++22 24 13 23 18 22 26 25 15 23 20 24 23 18 22 23 20 24 23 20 24 26 25 15
++23 20 24 22 25 24 26 25 15 22 25 24 26 25 15 23 20 24 23 18 22 15 22 17
++23 18 22 17 12 17 23 18 22 14 16 17 17 12 17 14 16 17 14 16 17 14 16 17
++14 16 17 17 12 17 12 18 20 23 18 22 17 12 17 23 18 22 14 16 17 23 18 22
++14 16 17 23 18 22 23 18 22 23 18 22 23 20 24 22 25 24 23 20 24 23 20 24
++26 24 32 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 12 18 20 14 16 17 23 18 22 12 18 20 23 18 22 14 16 17 14 16 17
++14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 12 18 20 12 18 20 23 18 22
++17 12 17 23 20 24 23 20 24 23 20 24 33 30 30 33 30 30 33 30 30 33 30 30
++36 35 37 53 35 37 36 35 37 47 47 21 47 39 42 53 35 37 47 44 42 55 39 37
++47 44 42 60 49 42 53 46 48 55 39 37 60 49 42 62 47 47 60 49 42 59 36 42
++60 49 42 59 36 42 55 39 37 47 39 42 53 35 37 36 35 37 52 30 35 33 30 30
++33 30 30 33 30 30 33 30 30 28 13 18 28 13 18 23 20 24 28 13 18 28 13 18
++23 20 24 34 30 15 26 24 32 28 13 18 33 30 30 34 30 15 33 30 30 33 30 30
++33 30 30 33 30 32 52 30 35 33 30 32 52 30 35 33 30 32 52 30 35 36 35 37
++33 30 30 47 47 21 33 30 32 52 30 35 32 39 24 36 35 37 36 35 37 36 35 37
++36 35 37 32 39 24 36 35 37 33 30 30 36 35 37 33 30 30 33 30 32 33 30 32
++33 30 32 33 30 32 33 30 32 26 24 32 26 24 32 26 24 32 22 25 24 22 23 31
++23 20 24 22 23 31 23 20 24 23 20 24 22 23 31 23 20 24 22 23 31 22 23 31
++22 23 31 22 23 31 23 20 24 12 18 20 23 20 24 22 25 24 22 23 31 23 20 24
++22 23 31 26 30 28 26 30 28 26 30 28 33 30 30 33 30 30 33 30 30 36 35 37
++32 39 24 36 35 37 36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 42 38 42
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 32 33 30 30 26 24 32 23 20 24 33 30 30 28 13 18
++23 20 24 22 25 24 15 22 17 23 18 22 15 22 17 23 18 22 23 18 22 28 13 18
++28 13 18 52 30 35 88 44 51 102 33 26 120 63 71 102 33 26 122 49 24 161 55 23
++176 103 41 195 113 123 219 175 47 168 102 88 102 33 26 49 13 16 49 13 16 101 74 26
++168 102 88 168 102 88 177 171 115 201 146 124 177 171 115 201 146 124 197 171 123 197 171 123
++217 168 156 197 171 123 217 168 156 197 171 123 201 146 124 197 171 123 217 168 156 197 171 123
++217 168 156 214 214 134 217 168 156 177 169 143 217 168 156 177 171 115 201 146 124 168 146 127
++168 146 127 201 146 124 168 146 127 168 146 127 168 102 88 146 150 115 168 102 88 168 102 88
++117 127 86 168 102 88 117 114 76 168 102 88 117 114 76 168 102 88 101 83 74 101 83 74
++101 74 26 101 83 74 75 56 53 117 99 86 166 174 181 232 215 228 231 239 247 221 238 247
++231 239 247 194 199 226 111 122 142 61 78 101 34 42 77 42 60 86 98 121 131 188 180 202
++208 221 247 231 239 247 221 238 247 232 215 228 201 216 228 201 216 228 201 216 228 201 216 228
++201 216 228 201 216 228 201 216 228 185 202 202 189 165 168 168 146 127 168 146 127 177 169 143
++217 168 156 217 168 156 166 180 164 217 168 156 208 215 180 214 214 134 217 168 156 214 214 134
++189 165 168 214 214 134 217 168 156 217 168 156 214 214 134 217 168 156 217 168 156 197 171 123
++217 168 156 217 168 156 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 208 215 180
++222 171 182 225 222 201 214 214 134 222 171 182 208 215 180 177 169 143 166 156 164 146 162 145
++166 156 164 166 156 164 145 140 145 119 117 138 112 123 108 145 140 145 166 174 181 166 174 181
++185 202 202 188 180 202 185 202 202 194 199 226 194 199 226 194 199 226 194 199 226 201 216 228
++226 221 247 226 221 247 231 239 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 188 180 202 88 83 74 43 42 50
++47 44 42 63 55 51 63 55 51 62 47 47 63 55 45 75 56 53 63 55 45 75 56 53
++63 55 45 75 56 53 75 56 53 88 73 31 76 44 53 88 73 31 75 56 53 75 73 36
++75 56 53 88 73 31 75 56 53 75 56 53 88 73 31 88 44 51 75 56 53 88 73 31
++76 44 53 76 46 20 75 56 53 63 55 45 76 46 20 75 56 53 63 55 45 63 55 45
++63 55 45 63 55 45 75 56 53 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45
++75 56 53 63 55 45 63 55 45 63 55 45 63 55 45 63 55 51 63 55 45 63 55 45
++65 55 54 65 55 54 75 56 53 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45
++60 49 42 60 49 42 51 49 42 51 49 42 55 39 37 55 39 37 47 44 42 55 39 37
++51 49 42 55 39 37 47 47 21 55 39 37 55 39 18 47 47 21 55 39 18 55 39 37
++47 47 21 47 47 21 53 35 37 47 47 21 55 39 37 47 47 21 47 47 21 53 35 37
++47 47 21 52 30 35 36 35 37 47 47 21 55 39 37 47 47 21 55 39 37 55 39 37
++55 39 18 55 39 37 55 39 18 60 49 42 55 39 18 55 39 37 60 49 42 47 47 21
++60 49 42 47 47 21 55 39 37 47 47 21 60 49 42 55 39 37 47 47 21 60 49 42
++51 49 42 51 49 42 51 49 42 51 49 42 51 49 42 51 49 42 51 49 42 51 49 42
++51 49 42 55 39 37 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 55 39 37 51 49 42 47 44 42 47 44 42 47 49 42
++47 44 42 47 44 42 55 39 37 47 49 42 51 49 42 51 49 42 51 49 42 51 49 42
++51 49 42 47 44 42 51 49 42 51 49 42 51 49 42 47 39 42 53 35 37 53 35 37
++52 30 35 34 30 15 53 35 17 52 30 35 52 30 15 55 39 18 76 46 20 88 73 62
++120 63 71 157 148 53 163 117 123 168 146 127 201 146 124 168 146 127 201 146 124 168 146 127
++201 146 124 168 146 127 168 146 127 168 102 88 201 146 124 168 102 88 157 148 53 163 117 123
++168 102 88 168 146 127 168 146 127 168 146 127 168 146 127 163 117 123 163 117 123 146 150 115
++168 102 88 138 126 108 138 102 108 168 102 88 138 126 108 138 102 108 168 102 88 138 126 108
++138 102 108 138 102 108 117 99 86 117 99 86 117 99 86 101 83 74 88 73 62 76 46 20
++53 35 17 53 35 17 76 46 20 120 63 71 168 102 88 168 146 127 163 117 123 117 114 76
++76 46 20 76 46 20 88 44 51 88 73 62 101 83 74 75 63 62 55 39 37 47 39 42
++47 44 42 47 44 42 47 44 42 43 42 50 48 50 48 48 50 48 48 50 48 48 50 48
++52 55 48 54 57 61 59 55 55 54 57 61 59 57 61 63 59 71 59 69 70 63 59 71
++75 72 67 75 64 82 75 81 76 75 64 82 75 81 82 75 81 82 75 81 90 88 83 88
++75 81 90 78 98 90 88 83 88 77 90 100 95 91 100 95 91 100 94 105 108 95 91 100
++94 105 108 112 96 108 94 105 108 112 123 108 112 96 108 95 119 107 112 123 108 94 105 108
++112 123 108 111 119 127 94 105 108 112 96 108 94 105 108 112 96 108 94 105 108 94 105 108
++99 93 84 95 91 100 90 98 89 95 91 100 88 83 88 88 83 74 88 83 74 75 81 76
++75 72 67 75 63 62 75 63 62 75 63 62 65 63 61 65 55 54 65 55 54 63 55 51
++62 47 47 62 47 47 55 55 48 53 46 48 51 49 42 53 46 48 51 49 42 53 46 48
++53 46 48 53 46 48 59 36 42 53 46 48 55 39 37 53 46 48 53 46 48 53 46 48
++47 44 42 47 44 42 47 39 42 47 39 42 47 39 42 47 39 42 42 38 42 42 38 42
++42 38 42 36 35 37 42 38 42 52 30 35 42 38 42 53 35 37 42 41 42 55 39 37
++47 44 42 55 39 37 51 49 42 51 49 42 60 49 42 60 49 42 60 49 42 60 49 42
++60 49 42 60 49 42 60 49 42 60 49 42 63 55 45 55 55 48 63 55 51 63 55 45
++63 55 45 60 49 42 60 49 42 60 49 42 60 49 42 60 49 42 51 49 42 51 49 42
++60 49 42 51 49 42 55 39 37 51 49 42 51 49 42 47 47 21 51 49 42 55 39 37
++51 49 42 60 49 42 60 49 42 51 49 42 60 49 42 60 49 42 63 55 45 63 55 51
++63 55 51 63 55 45 62 47 47 62 47 47 62 47 47 76 44 53 60 49 42 60 49 42
++59 36 42 60 49 42 60 49 42 60 49 42 62 47 47 62 47 47 60 49 42 60 49 42
++59 36 42 60 49 42 59 36 42 60 49 42 55 39 37 55 39 37 55 39 37 55 39 37
++55 39 37 47 47 21 53 35 37 53 35 37 52 30 35 47 47 21 53 35 37 52 30 35
++
++7 12 13 15 17 7 17 12 17 17 12 17 14 16 17 17 12 17 14 16 17 13 4 7
++17 12 17 7 12 13 7 12 13 17 12 17 17 12 17 13 4 7 7 10 17 14 16 17
++13 4 7 7 12 13 17 12 17 13 4 7 7 12 13 17 12 17 7 12 13 17 12 17
++17 12 17 17 12 17 15 17 7 17 12 17 14 16 17 23 18 22 14 16 17 23 18 22
++22 24 13 26 25 15 26 25 15 26 25 15 23 20 24 28 13 18 23 20 24 23 20 24
++23 20 24 26 25 15 23 18 22 23 18 22 26 25 15 28 13 18 23 18 22 26 25 15
++23 18 22 23 18 22 22 24 13 23 18 22 15 22 17 23 18 22 22 24 13 23 18 22
++22 24 13 23 18 22 22 25 24 23 20 24 26 25 15 26 25 15 26 25 15 22 25 24
++26 25 15 23 20 24 26 25 15 23 18 22 26 25 15 23 20 24 26 25 15 23 18 22
++15 22 17 17 12 17 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17 17 12 17
++14 16 17 17 12 17 17 12 17 12 18 20 17 12 17 14 16 17 17 12 17 14 16 17
++23 18 22 14 16 17 12 18 20 23 18 22 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 26 24 32 23 20 24 22 25 24 23 20 24 26 25 15 23 20 24
++26 24 32 23 20 24 23 20 24 23 20 24 33 30 30 23 20 24 23 20 24 23 20 24
++23 18 22 23 18 22 17 12 17 12 18 20 23 18 22 17 12 17 12 18 20 23 18 22
++14 16 17 17 12 17 12 18 20 17 12 17 14 16 17 17 12 17 17 12 17 14 16 17
++23 20 24 23 20 24 23 20 24 33 30 30 23 20 24 33 30 30 33 30 30 36 35 37
++33 30 30 36 35 37 42 41 42 47 39 42 47 39 42 47 39 42 47 39 42 47 44 42
++55 39 37 53 46 48 55 39 37 53 46 48 60 49 42 53 46 48 55 39 37 60 49 42
++55 39 37 47 44 42 55 39 37 53 35 37 36 35 37 52 30 35 33 30 30 52 30 35
++33 30 30 34 30 15 33 30 30 26 25 15 28 13 18 23 20 24 28 13 18 33 30 30
++28 13 18 33 30 30 23 20 24 34 30 15 33 30 30 26 24 32 33 30 30 33 30 30
++33 30 30 33 30 32 33 30 32 33 30 32 33 30 32 36 35 37 32 39 24 52 30 35
++33 30 30 36 35 37 33 30 30 36 35 37 32 39 24 52 30 35 33 30 30 53 35 37
++33 30 30 52 30 35 36 35 37 33 30 32 52 30 35 33 30 32 33 30 30 33 30 30
++33 30 32 30 30 34 33 30 32 33 30 32 26 30 28 33 30 30 26 24 32 22 25 24
++22 23 31 23 20 24 23 20 24 22 23 31 23 20 24 22 23 31 12 18 30 23 20 24
++12 18 30 23 20 24 12 18 30 23 20 24 22 25 24 23 20 24 23 20 24 26 24 32
++26 24 32 26 30 28 26 30 28 33 30 30 33 30 30 33 30 32 32 39 24 36 35 37
++36 35 37 53 35 37 36 35 37 36 35 37 53 35 37 32 39 24 53 35 37 36 35 37
++36 35 37 55 39 37 36 35 37 53 35 37 36 35 37 53 35 37 33 30 30 52 30 35
++36 35 37 33 30 32 33 30 30 26 30 28 33 30 30 33 30 30 23 20 24 23 20 24
++22 25 24 23 20 24 23 18 22 15 22 17 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 49 13 16 76 18 19 120 63 71 122 49 24 102 33 26 88 30 18 161 55 23
++161 55 23 219 175 47 227 171 124 168 102 88 102 33 26 49 13 16 76 18 19 101 74 26
++168 102 88 157 148 53 168 102 88 201 146 124 197 171 123 227 171 124 197 171 123 217 168 156
++197 171 123 197 171 123 217 168 156 197 171 123 197 171 123 177 169 143 217 168 156 197 171 123
++217 168 156 177 169 143 217 168 156 197 171 123 197 171 123 201 146 124 168 146 127 201 146 124
++168 146 127 177 171 115 168 102 88 168 146 127 146 150 115 168 102 88 138 126 108 117 114 76
++168 102 88 117 114 76 117 114 76 117 114 76 138 102 108 117 99 86 117 112 45 101 83 74
++88 73 62 88 73 62 75 56 53 112 123 108 166 174 181 221 238 247 231 239 247 226 221 247
++221 238 247 194 199 226 111 122 142 42 60 86 32 40 58 42 60 86 111 122 142 185 202 202
++226 221 247 221 238 247 221 238 247 208 221 247 221 238 247 201 216 228 201 216 228 201 216 228
++201 216 228 201 216 228 201 216 228 225 222 201 166 174 181 166 156 164 168 146 127 177 169 143
++177 169 143 166 180 164 217 168 156 214 214 134 217 168 156 189 165 168 208 215 180 217 168 156
++217 168 156 189 165 168 214 214 134 217 168 156 189 165 168 214 214 134 217 168 156 217 168 156
++214 214 134 189 165 168 214 214 134 217 168 156 217 168 156 217 168 156 214 214 134 217 168 156
++214 214 134 217 168 156 225 222 201 208 215 180 217 168 156 189 165 168 166 156 164 166 156 164
++166 156 164 166 156 164 145 140 145 121 143 132 150 144 154 166 174 181 188 180 202 166 176 200
++166 176 200 185 202 202 166 176 200 185 202 202 185 202 202 185 202 202 185 202 202 194 199 226
++185 202 202 194 199 226 201 216 228 201 216 228 201 216 228 226 221 247 221 238 247 231 239 247
++240 251 247 240 251 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 232 215 228 145 140 145 48 50 48 22 23 31
++42 38 42 47 39 42 51 49 42 47 44 42 55 39 37 60 49 42 60 49 42 76 44 53
++60 49 42 63 55 45 60 49 42 60 49 42 75 56 53 62 47 47 75 56 53 75 56 53
++63 55 45 75 56 53 63 55 45 75 56 53 75 56 53 63 55 45 63 55 45 60 49 42
++63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 75 56 53
++76 46 20 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 62 47 47 63 55 45
++63 55 45 63 55 51 75 56 53 65 55 54 65 55 54 63 55 45 63 55 51 65 55 54
++64 70 48 75 56 53 65 63 61 65 55 54 75 56 53 65 55 54 63 55 51 63 55 51
++63 55 51 63 55 45 63 55 45 63 55 45 55 55 48 63 55 45 63 55 45 60 49 42
++60 49 42 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 55 55 48 63 55 45
++62 47 47 63 55 51 63 55 45 63 55 51 63 55 51 65 55 54 63 55 51 63 55 51
++63 55 51 63 55 51 63 55 51 63 55 45 63 55 45 63 55 45 63 55 45 63 55 51
++63 55 45 63 55 45 63 55 45 63 55 45 60 49 42 63 55 45 63 55 45 63 55 45
++63 55 45 63 55 45 63 55 51 63 55 51 63 55 45 63 55 51 63 55 45 63 55 51
++63 55 51 63 55 51 63 55 51 63 55 51 63 55 45 55 55 48 62 47 47 55 55 48
++53 46 48 51 49 42 51 49 42 51 49 42 47 44 42 51 49 42 51 49 42 51 49 42
++47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 51 49 42 51 49 42 47 44 42
++47 44 42 51 49 42 51 49 42 51 49 42 53 46 48 51 49 42 53 46 48 51 49 42
++51 49 42 51 49 42 53 46 48 53 46 48 60 49 42 47 44 42 47 44 42 42 41 42
++55 39 37 36 35 37 52 30 35 36 35 37 53 35 17 52 30 35 52 30 35 76 46 20
++88 73 31 101 83 74 138 126 108 168 102 88 138 126 108 163 117 123 163 117 123 168 146 127
++168 146 127 168 146 127 201 146 124 177 171 115 168 102 88 168 146 127 163 117 123 146 150 115
++168 102 88 168 146 127 168 102 88 201 146 124 168 102 88 168 146 127 168 146 127 201 146 124
++168 146 127 168 146 127 168 146 127 168 146 127 163 117 123 146 150 115 138 126 108 163 117 123
++168 146 127 168 146 127 168 146 127 163 117 123 168 146 127 138 126 108 138 102 108 101 83 74
++76 44 53 52 30 35 55 39 18 76 46 20 117 114 76 168 102 88 168 146 127 117 99 86
++88 44 51 55 39 18 55 39 18 76 46 20 60 49 42 55 39 37 53 35 37 47 44 42
++47 44 42 48 44 48 48 44 48 48 44 48 48 50 48 48 44 48 48 50 48 48 50 48
++48 50 48 54 57 61 54 57 61 59 57 61 63 59 71 59 69 70 63 59 71 59 69 70
++75 81 82 59 69 70 75 81 76 75 81 82 75 81 82 88 83 88 75 81 90 88 83 88
++88 83 88 77 90 100 95 91 100 90 98 89 95 91 100 90 98 89 94 105 108 94 105 108
++94 105 108 94 105 108 94 105 108 112 96 108 94 105 108 95 119 107 112 96 108 111 119 127
++94 105 108 112 96 108 112 123 108 94 105 108 112 123 108 94 105 108 112 96 108 94 105 108
++112 96 108 95 91 100 90 98 89 99 93 84 88 83 88 88 83 74 88 83 74 88 66 70
++88 73 62 75 72 67 75 63 62 75 63 62 75 56 53 65 55 54 65 55 54 63 55 51
++55 55 48 62 47 47 60 49 42 53 46 48 60 49 42 51 49 42 51 49 42 55 39 37
++57 43 51 60 49 42 53 46 48 51 49 42 53 46 48 47 44 42 53 46 48 53 46 48
++47 44 42 47 44 42 47 44 42 47 39 42 47 39 42 47 39 42 52 30 35 42 38 42
++52 30 35 42 38 42 53 35 37 42 38 42 53 35 37 36 35 37 42 41 42 55 39 37
++47 44 42 60 49 42 60 49 42 60 49 42 51 49 42 60 49 42 63 55 45 60 49 42
++63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45
++63 55 45 63 55 45 60 49 42 60 49 42 60 49 42 60 49 42 55 39 37 60 49 42
++60 49 42 55 39 37 60 49 42 55 39 37 55 39 37 60 49 42 51 49 42 55 39 37
++60 49 42 55 39 37 60 49 42 60 49 42 60 49 42 63 55 45 62 47 47 63 55 45
++62 47 47 63 55 45 63 55 45 60 49 42 76 44 53 63 55 45 60 49 42 60 49 42
++60 49 42 60 49 42 60 49 42 63 55 45 60 49 42 63 55 45 60 49 42 60 49 42
++60 49 42 60 49 42 60 49 42 55 39 37 60 49 42 55 39 37 60 49 42 55 39 37
++53 35 37 53 35 37 55 39 37 47 47 21 55 39 37 55 39 37 53 35 37 55 39 37
++
++15 17 7 17 12 17 15 17 7 17 12 17 17 12 17 14 16 17 15 17 7 17 12 17
++7 12 13 17 12 17 7 10 17 17 12 17 7 10 17 7 10 17 17 12 17 7 10 17
++17 12 17 7 10 17 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 17 12 17
++7 12 13 17 12 17 7 12 13 17 12 17 15 17 7 17 12 17 23 18 22 22 24 13
++23 18 22 23 18 22 23 18 22 23 18 22 26 25 15 23 20 24 34 30 15 23 20 24
++26 25 15 23 20 24 26 25 15 28 13 18 23 18 22 22 24 13 23 18 22 23 18 22
++26 25 15 23 18 22 23 18 22 15 22 17 22 24 13 23 18 22 15 22 17 23 20 24
++22 25 24 26 25 15 23 20 24 26 25 15 23 20 24 26 25 15 23 20 24 26 25 15
++26 25 15 26 25 15 23 20 24 26 25 15 23 20 24 26 25 15 26 25 15 23 18 22
++23 18 22 17 12 17 15 17 7 14 16 17 15 17 7 7 12 13 17 12 17 14 16 17
++17 12 17 14 16 17 17 12 17 12 18 20 17 12 17 17 12 17 12 18 20 23 18 22
++14 16 17 23 18 22 23 18 22 23 18 22 23 20 24 23 20 24 23 18 22 23 18 22
++26 25 15 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24
++22 25 24 22 25 24 23 20 24 23 20 24 26 25 15 23 20 24 23 20 24 23 20 24
++23 20 24 23 18 22 14 16 17 23 18 22 12 18 20 17 12 17 12 18 30 14 16 17
++12 18 20 14 16 17 17 12 17 12 18 20 17 12 17 14 16 17 14 16 17 14 16 17
++23 18 22 23 20 24 22 25 24 26 24 32 33 30 30 26 30 28 33 30 30 36 35 37
++36 35 37 53 35 37 42 41 42 47 39 42 42 41 42 47 47 21 47 39 42 55 39 37
++53 46 48 51 49 42 53 46 48 60 49 42 59 36 42 53 46 48 60 49 42 53 46 48
++55 39 37 47 39 42 53 35 37 42 38 42 53 35 17 33 30 32 33 30 30 33 30 30
++33 30 30 49 13 16 26 24 32 28 13 18 23 20 24 23 18 22 23 20 24 33 30 30
++28 13 18 33 30 30 28 13 18 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++52 30 35 33 30 30 33 30 32 52 30 35 36 35 37 36 35 37 33 30 30 36 35 37
++32 39 24 52 30 35 32 39 24 36 35 37 36 35 37 36 35 37 47 47 21 36 35 37
++36 35 37 36 35 37 33 30 30 36 35 37 33 30 30 33 30 30 52 30 35 33 30 30
++33 30 32 33 30 32 30 30 34 30 30 34 30 30 34 26 30 28 26 24 32 23 20 24
++22 23 31 23 20 24 22 23 31 23 20 24 22 23 31 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 12 18 20 23 20 24 12 18 20 22 25 24 22 25 24 26 24 32
++26 30 28 26 30 28 33 30 30 26 30 28 33 30 30 33 30 30 36 35 37 52 30 35
++32 39 24 36 35 37 47 47 21 36 35 37 36 35 37 42 38 42 36 35 37 36 35 37
++53 35 37 33 39 38 36 35 37 47 47 21 36 35 37 36 35 37 33 30 30 32 39 24
++33 30 30 33 30 30 33 30 30 33 30 30 23 20 24 22 25 24 23 20 24 23 20 24
++22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 33 30 30
++28 13 18 52 30 35 76 44 53 88 44 51 122 49 24 102 33 26 102 33 26 102 33 26
++161 55 23 176 103 41 227 171 124 176 103 41 122 49 24 49 13 16 76 18 19 117 112 45
++168 102 88 168 146 127 201 146 124 197 171 123 197 171 123 197 171 123 217 168 156 197 171 123
++201 146 124 217 168 156 197 171 123 217 168 156 201 146 124 217 168 156 197 171 123 177 169 143
++217 168 156 197 171 123 201 146 124 168 146 127 168 146 127 168 146 127 168 102 88 177 171 115
++163 117 123 168 146 127 168 102 88 146 150 115 168 102 88 138 126 108 168 102 88 117 114 76
++117 114 76 117 99 86 168 102 88 117 99 86 117 99 86 117 99 86 101 60 73 88 73 31
++88 73 62 75 56 53 63 55 45 138 102 108 188 180 202 232 215 228 221 238 247 221 238 247
++231 239 247 194 199 226 111 122 142 60 63 87 29 34 50 42 60 86 111 122 142 194 199 226
++208 221 247 231 239 247 221 238 247 208 221 247 201 216 228 208 221 247 201 216 228 201 216 228
++201 216 228 201 216 228 232 215 228 194 199 226 188 180 202 166 156 164 146 151 137 168 146 127
++177 169 143 217 168 156 189 165 168 217 168 156 189 165 168 214 214 134 217 168 156 217 168 156
++208 215 180 217 168 156 217 168 156 217 168 156 214 214 134 217 168 156 217 168 156 214 214 134
++217 168 156 217 168 156 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 222 171 182
++217 168 156 208 215 180 222 171 182 208 215 180 222 171 182 208 215 180 166 180 164 166 174 181
++166 174 181 166 180 164 145 140 145 145 140 145 166 174 181 188 180 202 185 202 202 188 180 202
++185 202 202 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226
++194 199 226 201 216 228 185 202 202 194 199 226 194 199 226 194 199 226 201 216 228 201 216 228
++208 221 247 226 221 247 231 239 247 235 238 247 251 251 247 251 251 247 251 251 247 240 251 247
++240 251 247 240 251 247 251 251 247 251 251 247 185 202 202 95 95 116 28 35 38 22 23 31
++34 40 43 34 40 43 42 38 42 42 41 42 47 44 42 47 44 42 53 46 48 55 39 37
++60 49 42 60 49 42 60 49 42 62 47 47 63 55 45 63 55 51 62 47 47 63 55 45
++62 47 47 63 55 45 60 49 42 63 55 45 60 49 42 63 55 45 63 55 45 63 55 45
++63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 63 55 51
++64 70 48 63 55 45 63 55 45 63 55 45 65 55 54 63 55 51 63 55 51 63 55 51
++63 55 51 65 63 61 65 63 61 63 55 51 63 55 51 63 55 51 65 55 54 65 63 61
++65 57 61 65 63 61 65 63 61 65 55 54 65 63 61 63 55 51 65 63 61 63 55 51
++65 55 54 63 55 51 63 55 51 63 55 51 59 55 55 63 55 51 59 55 55 64 70 48
++63 55 51 65 63 61 65 63 61 75 63 62 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 88 66 70 75 81 76 88 83 74 75 72 67 88 83 74 75 81 76
++75 64 82 75 81 76 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 81 76
++88 83 74 75 72 67 75 81 69 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 59 67 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 59 57 61 59 57 61 59 55 55 59 55 55 59 55 55 55 55 48 53 46 48
++59 55 55 53 46 48 53 46 48 48 44 48 53 46 48 48 44 48 53 46 48 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 48 44 48 53 46 48 53 46 48
++53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48
++53 46 48 53 46 48 53 46 48 53 46 48 51 49 42 47 39 42 47 44 42 47 39 42
++36 35 37 42 47 42 32 39 24 42 41 42 36 35 37 53 35 37 33 30 30 53 35 37
++62 47 47 88 73 62 88 73 62 117 99 86 117 114 76 117 99 86 168 102 88 117 114 76
++168 102 88 138 126 108 168 102 88 163 117 123 168 146 127 168 102 88 168 146 127 168 102 88
++168 146 127 168 102 88 168 146 127 168 102 88 146 150 115 168 102 88 168 102 88 168 146 127
++168 102 88 168 146 127 168 102 88 168 146 127 168 102 88 168 102 88 168 102 88 168 146 127
++168 102 88 168 146 127 201 146 124 177 169 143 177 169 143 189 165 168 177 169 143 138 102 108
++75 73 58 60 49 42 53 35 17 76 46 20 101 60 73 138 126 108 163 117 123 138 126 108
++88 73 31 55 39 37 36 35 37 47 44 42 55 39 37 47 44 42 48 44 48 47 49 42
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 54 57 61 48 50 48 54 57 61
++59 57 61 54 57 61 59 57 61 59 69 70 59 69 70 75 72 67 59 69 70 75 64 82
++75 81 76 75 81 90 75 81 82 75 81 90 75 81 82 75 81 90 88 83 88 78 98 90
++90 98 89 95 91 100 90 98 89 95 91 100 94 105 108 95 91 100 94 105 108 94 105 108
++112 96 108 94 105 108 95 119 107 94 105 108 94 105 108 111 119 127 94 105 108 112 123 108
++111 119 127 112 123 108 112 96 108 94 105 108 112 96 108 94 105 108 117 99 86 94 105 108
++117 99 86 90 98 89 99 93 84 95 91 100 88 83 74 88 83 74 88 83 74 75 72 67
++75 72 67 88 73 62 75 63 62 75 63 62 75 56 53 65 55 54 65 55 54 65 55 54
++62 47 47 62 47 47 60 49 42 60 49 42 55 39 37 51 49 42 55 39 37 51 49 42
++60 49 42 55 39 37 53 46 48 60 49 42 53 46 48 55 39 37 47 44 42 55 39 37
++55 39 37 47 44 42 55 39 37 47 39 42 47 39 42 53 35 37 47 39 42 53 35 37
++53 35 37 52 30 35 47 39 42 53 35 37 53 35 37 53 35 37 53 35 37 55 39 37
++53 46 48 59 36 42 60 49 42 55 39 37 60 49 42 63 55 45 60 49 42 63 55 45
++63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 75 73 36 63 55 45
++63 55 45 60 49 42 63 55 45 60 49 42 60 49 42 60 49 42 60 49 42 60 49 42
++60 49 42 60 49 42 60 49 42 55 39 18 60 49 42 60 49 42 60 49 42 55 39 37
++60 49 42 60 49 42 60 49 42 60 49 42 63 55 45 60 49 42 63 55 45 75 56 53
++63 55 45 63 55 45 75 56 53 63 55 45 76 46 20 75 56 53 75 56 53 76 46 20
++75 56 53 76 46 20 75 56 53 63 55 45 76 46 20 75 56 53 60 49 42 76 46 20
++60 49 42 76 46 20 60 49 42 76 46 20 55 39 37 60 49 42 55 39 37 55 39 37
++55 39 18 55 39 37 55 39 37 55 39 37 55 39 37 55 39 18 55 39 37 47 47 21
++
++13 4 7 7 12 13 15 17 7 17 12 17 15 17 7 17 12 17 17 12 17 7 12 13
++23 10 10 7 10 17 17 12 17 17 12 17 7 12 13 17 12 17 17 12 17 7 12 13
++17 12 17 7 12 13 17 12 17 13 4 7 17 12 17 7 12 13 17 12 17 7 12 13
++17 12 17 17 12 17 15 17 7 17 12 17 17 12 17 23 18 22 14 16 17 23 18 22
++22 24 13 26 25 15 26 25 15 23 18 22 33 30 30 26 25 15 23 18 22 23 20 24
++26 25 15 28 13 18 26 25 15 23 18 22 22 24 13 23 18 22 26 12 13 22 24 13
++23 18 22 23 18 22 22 24 13 23 18 22 15 22 17 23 18 22 26 25 15 22 25 24
++26 25 15 23 20 24 22 25 24 22 25 24 26 25 15 22 25 24 26 25 15 23 20 24
++26 25 15 26 24 32 34 30 15 23 20 24 26 25 15 23 20 24 26 25 15 23 18 22
++22 24 13 23 18 22 14 16 17 17 12 17 14 16 17 17 12 17 7 10 17 17 12 17
++7 10 17 17 12 17 14 16 17 17 12 17 12 18 20 14 16 17 23 18 22 17 12 17
++14 16 17 23 18 22 12 18 20 23 20 24 12 18 20 23 18 22 23 18 22 14 16 17
++23 18 22 23 20 24 23 20 24 26 25 15 23 20 24 23 20 24 22 25 24 23 20 24
++23 20 24 26 25 15 23 20 24 33 30 30 23 20 24 23 20 24 23 20 24 23 20 24
++23 18 22 23 18 22 17 12 17 17 12 17 17 12 17 12 18 30 17 12 17 14 16 17
++14 16 17 14 16 17 12 18 20 17 12 17 17 12 17 14 16 17 14 16 17 14 16 17
++23 18 22 23 20 24 26 24 32 23 20 24 33 30 30 33 30 30 33 30 30 36 35 37
++36 35 37 36 35 37 47 47 21 47 44 42 47 39 42 47 44 42 47 39 42 51 49 42
++55 39 37 53 46 48 55 39 37 53 46 48 47 39 42 55 39 37 55 39 37 60 49 42
++47 44 42 55 39 37 47 39 42 52 30 35 36 35 37 52 30 35 33 30 30 52 30 15
++33 30 30 33 30 30 33 30 30 23 20 24 23 20 24 26 25 15 28 13 18 28 13 18
++33 30 30 26 25 15 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 36 35 37 33 30 30 52 30 35 36 35 37 53 35 37 32 39 24
++52 30 35 36 35 37 36 35 37 36 35 37 53 35 17 36 35 37 42 38 42 36 35 37
++53 35 37 36 35 37 52 30 35 33 30 30 36 35 37 33 30 30 33 30 30 33 30 30
++33 30 32 26 24 32 33 30 30 30 30 34 26 30 28 26 30 28 26 24 32 26 24 32
++22 25 24 26 24 32 26 24 32 22 23 31 22 25 24 22 23 31 22 25 24 12 18 30
++23 20 24 12 18 30 23 20 24 22 25 24 15 22 17 22 25 24 26 24 32 26 24 32
++33 30 30 26 24 32 29 35 19 33 30 30 36 35 37 33 30 30 36 35 37 36 35 37
++36 35 37 42 38 42 42 38 42 47 39 42 36 35 37 53 35 37 36 35 37 55 39 37
++33 39 38 53 35 37 36 35 37 42 38 42 36 35 37 36 35 37 52 30 35 33 30 30
++36 35 37 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 22 25 24 23 20 24
++22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 23 20 24 23 20 24
++28 13 18 52 30 35 76 18 19 120 63 71 120 63 71 102 33 26 88 30 18 122 49 24
++161 55 23 176 103 41 219 175 47 201 146 124 120 63 71 49 13 16 88 30 18 117 112 45
++163 117 123 168 102 88 157 148 53 201 146 124 197 171 123 201 146 124 197 171 123 201 146 124
++197 171 123 197 171 123 217 168 156 197 171 123 197 171 123 177 169 143 197 171 123 201 146 124
++168 146 127 201 146 124 168 146 127 168 146 127 201 146 124 168 146 127 201 146 124 163 117 123
++177 171 115 168 102 88 146 150 115 168 102 88 138 126 108 168 102 88 117 114 76 117 114 76
++168 102 88 117 99 86 117 99 86 117 99 86 117 112 45 120 63 71 88 73 62 88 73 31
++75 56 53 63 55 45 59 36 42 112 123 108 185 202 202 221 238 247 231 239 247 226 221 247
++231 239 247 194 199 226 111 122 142 42 60 86 29 34 50 46 59 71 111 122 142 194 199 226
++208 221 247 231 239 247 201 216 228 221 238 247 226 221 247 201 216 228 201 216 228 201 216 228
++201 216 228 194 199 226 201 216 228 232 215 228 185 202 202 189 165 168 146 151 137 146 150 115
++168 146 127 177 169 143 177 169 143 217 168 156 208 215 180 189 165 168 217 168 156 208 215 180
++217 168 156 217 168 156 208 215 180 217 168 156 217 168 156 217 168 156 208 215 180 217 168 156
++217 168 156 214 214 134 217 168 156 217 168 156 208 215 180 217 168 156 214 214 134 222 171 182
++214 214 134 222 171 182 214 214 134 222 171 182 208 215 180 208 215 180 188 180 202 208 215 180
++188 180 202 148 160 159 145 140 145 148 160 159 166 176 200 185 202 202 194 199 226 194 199 226
++194 199 226 201 216 228 208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 221 238 247
++221 238 247 221 238 247 221 238 247 208 221 247 232 215 228 201 216 228 201 216 228 201 216 228
++201 216 228 201 216 228 208 221 247 226 221 247 231 239 247 231 239 247 231 239 247 226 221 247
++221 238 247 226 221 247 231 239 247 226 221 247 148 160 159 75 64 82 37 35 43 24 30 43
++35 47 50 42 41 42 42 41 42 47 44 42 47 44 42 51 49 42 53 46 48 47 44 42
++47 44 42 55 39 37 47 44 42 60 49 42 53 46 48 53 46 48 60 49 42 53 46 48
++60 49 42 60 49 42 60 49 42 60 49 42 60 49 42 60 49 42 63 55 45 63 55 45
++50 61 48 63 55 51 63 55 45 63 55 45 63 55 45 63 55 45 63 55 51 63 55 51
++63 55 51 63 55 45 64 70 48 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51
++63 55 51 64 70 48 65 55 54 59 55 55 59 55 55 63 55 51 63 55 51 65 55 54
++65 55 54 75 56 53 65 57 61 64 70 48 63 55 51 65 63 61 63 55 51 63 55 51
++65 63 61 59 55 55 64 70 48 63 55 51 64 70 48 59 55 55 63 55 51 59 55 55
++64 70 48 63 55 51 65 63 61 64 70 48 75 63 62 75 72 67 75 73 58 75 72 67
++88 66 70 75 72 67 88 83 74 88 66 70 75 72 67 88 66 70 75 72 67 88 66 70
++75 81 76 88 69 84 75 72 67 88 83 74 75 72 67 88 83 74 75 72 67 88 83 74
++75 72 67 88 83 74 88 66 70 88 83 74 88 83 74 88 66 70 75 72 67 75 72 67
++75 72 67 75 72 67 75 63 62 65 63 61 65 63 61 65 63 61 65 63 61 59 55 55
++59 55 55 59 57 61 59 55 55 59 55 55 59 55 55 53 46 48 59 55 55 53 46 48
++55 55 48 53 46 48 48 50 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48
++51 49 42 47 44 42 51 49 42 47 44 42 51 49 42 48 44 48 53 46 48 53 46 48
++53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 51 49 42 53 46 48
++51 49 42 53 46 48 51 49 42 53 46 48 53 46 48 47 44 42 47 44 42 47 39 42
++47 44 42 36 35 37 42 41 42 36 35 37 47 47 21 36 35 37 47 47 21 53 35 37
++55 39 18 62 47 47 75 73 36 88 44 51 101 74 26 101 60 73 117 112 45 120 63 71
++117 99 86 117 114 76 168 102 88 117 114 76 138 126 108 168 102 88 168 146 127 168 102 88
++168 146 127 168 102 88 168 146 127 168 102 88 168 102 88 138 126 108 168 102 88 168 102 88
++168 146 127 168 102 88 138 126 108 168 102 88 138 126 108 168 102 88 157 148 53 168 102 88
++138 126 108 163 117 123 168 146 127 168 146 127 217 168 156 189 165 168 189 165 168 146 151 137
++101 83 74 75 56 53 55 39 37 88 44 51 101 74 26 117 114 76 138 126 108 168 102 88
++101 83 74 63 55 45 55 39 37 51 49 42 53 46 48 53 46 48 53 46 48 53 46 48
++48 50 48 59 55 55 48 50 48 54 57 61 48 50 48 59 55 55 54 57 61 54 57 61
++59 57 61 59 57 61 63 59 71 59 69 70 75 64 82 59 69 70 75 81 82 75 81 76
++75 81 82 75 81 82 75 81 82 75 81 82 75 81 90 78 98 90 88 83 88 77 90 100
++95 91 100 77 90 100 95 91 100 90 98 89 95 91 100 94 105 108 112 96 108 94 105 108
++95 119 107 112 96 108 94 105 108 112 123 108 94 105 108 94 105 108 111 119 127 94 105 108
++112 96 108 95 119 107 112 96 108 112 123 108 95 119 107 112 96 108 94 105 108 112 96 108
++94 105 108 95 91 100 90 98 89 99 93 84 88 83 88 88 83 74 88 66 70 88 83 74
++88 73 62 75 72 67 75 63 62 75 63 62 75 56 53 65 55 54 65 55 54 65 55 54
++63 55 51 60 49 42 60 49 42 51 49 42 51 49 42 51 49 42 60 49 42 53 46 48
++53 46 48 60 49 42 53 46 48 51 49 42 51 49 42 53 46 48 60 49 42 47 44 42
++53 46 48 47 44 42 51 49 42 47 39 42 57 43 51 47 39 42 53 35 37 47 39 42
++42 38 42 53 35 37 47 39 42 53 35 37 47 39 42 53 35 37 47 39 42 55 39 37
++60 49 42 60 49 42 60 49 42 60 49 42 63 55 45 63 55 45 63 55 45 60 49 42
++63 55 45 63 55 45 63 55 45 75 56 53 75 73 36 75 56 53 62 47 47 75 73 36
++63 55 45 76 46 20 63 55 45 63 55 45 63 55 45 60 49 42 60 49 42 76 46 20
++60 49 42 60 49 42 60 49 42 60 49 42 60 49 42 55 39 37 60 49 42 60 49 42
++60 49 42 60 49 42 60 49 42 63 55 45 63 55 45 63 55 45 63 55 45 75 56 53
++63 55 45 75 56 53 63 55 45 75 56 53 75 56 53 63 55 45 75 56 53 75 56 53
++63 55 45 75 56 53 63 55 45 88 44 51 63 55 45 63 55 45 76 44 53 63 55 45
++63 55 45 76 46 20 60 49 42 60 49 42 60 49 42 55 39 37 55 39 37 55 39 37
++55 39 37 55 39 37 55 39 37 55 39 37 60 49 42 60 49 42 60 49 42 60 49 42
++
++15 17 7 13 4 7 14 16 17 17 12 17 14 16 17 17 12 17 15 17 7 17 12 17
++7 12 13 17 12 17 17 12 17 7 12 13 17 12 17 17 12 17 7 12 13 13 4 7
++17 12 17 7 10 17 17 12 17 14 16 17 7 12 13 17 12 17 17 12 17 17 12 17
++7 12 13 17 12 17 17 12 17 14 16 17 14 16 17 17 12 17 23 18 22 23 18 22
++22 24 13 23 20 24 23 20 24 26 25 15 23 20 24 23 20 24 26 25 15 23 20 24
++26 25 15 23 20 24 23 18 22 26 25 15 23 18 22 17 12 17 22 24 13 23 18 22
++23 18 22 26 25 15 23 18 22 15 22 17 23 18 22 22 24 13 23 20 24 22 25 24
++22 25 24 22 25 24 26 25 15 26 25 15 23 20 24 34 30 15 23 20 24 34 30 15
++34 30 15 23 20 24 34 30 15 23 20 24 34 30 15 23 20 24 26 25 15 23 20 24
++23 18 22 23 18 22 17 12 17 14 16 17 14 16 17 15 17 7 14 16 17 17 12 17
++14 16 17 17 12 17 14 16 17 17 12 17 17 12 17 17 12 17 12 18 20 17 12 17
++23 18 22 23 18 22 23 18 22 23 18 22 23 18 22 14 16 17 23 18 22 23 18 22
++23 18 22 22 25 24 23 20 24 22 25 24 23 20 24 26 25 15 23 20 24 33 30 30
++23 20 24 23 20 24 33 30 30 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24
++23 18 22 12 18 20 23 18 22 14 16 17 23 20 24 17 12 17 12 18 20 17 12 17
++12 18 20 17 12 17 17 12 17 12 18 20 17 12 17 12 18 20 23 18 22 23 18 22
++23 18 22 23 20 24 26 30 28 26 24 32 33 30 30 33 30 30 33 30 32 36 35 37
++36 35 37 47 39 42 42 38 42 42 38 42 47 39 42 47 44 42 55 39 37 53 46 48
++51 49 42 53 46 48 60 49 42 55 39 37 55 39 37 53 46 48 53 46 48 55 39 37
++53 46 48 55 39 37 36 35 37 52 30 35 36 35 37 33 30 30 33 30 30 33 30 30
++33 30 30 28 13 18 28 13 18 33 30 30 26 25 15 23 20 24 23 20 24 33 30 30
++28 13 18 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 52 30 35
++33 30 32 52 30 35 36 35 37 36 35 37 36 35 37 36 35 37 47 47 21 36 35 37
++53 35 37 36 35 37 55 39 37 36 35 37 47 39 42 36 35 37 53 35 37 36 35 37
++52 30 35 32 39 24 36 35 37 36 35 37 52 30 35 33 30 30 33 30 30 33 30 32
++33 30 32 33 30 32 33 30 32 26 24 32 33 30 30 26 24 32 26 30 28 26 24 32
++22 23 31 26 24 32 22 25 24 26 24 32 22 23 31 23 20 24 22 23 31 23 20 24
++22 23 31 23 20 24 22 23 31 12 18 30 22 25 24 22 23 31 26 30 28 26 24 32
++33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 32 39 24 52 30 35
++32 39 24 53 35 37 36 35 37 47 44 42 36 35 37 47 44 42 36 35 37 36 35 37
++42 41 42 32 39 24 47 39 42 36 35 37 53 35 37 32 39 24 36 35 37 33 30 30
++33 30 30 36 35 37 33 30 30 33 30 30 23 20 24 22 25 24 23 20 24 22 25 24
++26 24 32 22 25 24 22 23 31 22 25 24 22 23 31 22 25 24 22 25 24 23 20 24
++23 18 22 28 13 18 59 36 42 88 44 51 102 33 26 102 33 26 102 33 26 102 33 26
++122 49 24 176 103 41 195 113 123 201 146 124 161 55 23 88 30 18 88 30 18 176 103 41
++168 102 88 146 150 115 168 102 88 168 102 88 177 171 115 201 146 124 201 146 124 177 169 143
++201 146 124 201 146 124 201 146 124 177 169 143 201 146 124 201 146 124 168 146 127 201 146 124
++168 146 127 168 146 127 163 117 123 201 146 124 168 102 88 146 150 115 168 102 88 177 171 115
++168 102 88 146 150 115 168 102 88 138 126 108 157 148 53 117 99 86 117 114 76 117 99 86
++117 99 86 117 112 45 117 99 86 120 63 71 88 44 51 75 56 53 75 56 53 75 56 53
++60 49 42 53 35 17 53 35 37 141 116 139 225 222 201 226 221 247 221 238 247 221 238 247
++231 239 247 194 199 226 111 122 142 42 60 86 29 34 50 34 42 77 122 134 144 194 199 226
++226 221 247 221 238 247 221 238 247 201 216 228 201 216 228 201 216 228 201 216 228 201 216 228
++201 216 228 201 216 228 201 216 228 194 199 226 201 216 228 188 180 202 166 180 164 168 146 127
++146 151 137 168 146 127 177 169 143 214 214 134 189 165 168 208 215 180 217 168 156 217 168 156
++214 214 134 189 165 168 214 214 134 217 168 156 208 215 180 217 168 156 217 168 156 214 214 134
++189 165 168 208 215 180 217 168 156 214 214 134 217 168 156 217 168 156 208 215 180 217 168 156
++208 215 180 222 171 182 222 171 182 208 215 180 222 171 182 189 165 168 146 151 137 141 116 139
++117 99 86 94 105 108 112 123 108 166 156 164 194 199 226 194 199 226 194 199 226 201 216 228
++208 221 247 221 238 247 221 238 247 221 238 247 221 238 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 240 251 247 231 239 247 231 239 247 231 239 247 231 239 247
++226 221 247 231 239 247 221 238 247 233 241 227 208 221 247 232 215 228 201 216 228 232 215 228
++201 216 228 201 216 228 185 202 202 188 180 202 111 119 127 53 63 61 31 35 35 31 35 35
++42 41 42 42 41 42 42 47 42 47 44 42 48 44 48 53 46 48 53 46 48 51 49 42
++51 49 42 47 44 42 47 44 42 51 49 42 51 49 42 51 49 42 47 44 42 51 49 42
++51 49 42 51 49 42 51 49 42 51 49 42 55 55 48 55 55 48 55 55 48 63 55 51
++63 55 51 63 55 51 64 70 48 63 55 51 63 55 51 64 70 48 59 55 55 64 70 48
++63 55 51 63 55 51 65 55 54 65 55 54 65 63 61 63 55 51 59 55 55 50 61 48
++63 55 51 59 55 55 59 55 55 65 63 61 63 55 51 63 55 51 59 55 55 65 63 61
++65 63 61 65 63 61 65 55 54 65 55 54 65 55 54 65 63 61 63 55 51 65 63 61
++63 55 45 63 55 51 55 55 48 59 55 55 55 55 48 55 55 48 63 55 51 59 55 55
++63 55 51 65 63 61 65 63 61 65 63 61 65 63 61 75 63 62 75 63 62 75 63 62
++75 73 58 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 81 76 88 66 70 75 81 76 88 66 70 75 81 76 88 69 84
++75 81 76 88 83 74 75 81 76 88 66 70 75 81 76 75 72 67 88 66 70 75 72 67
++75 72 67 75 63 62 65 63 61 65 57 61 65 57 61 65 55 54 59 55 55 65 55 54
++59 57 61 59 55 55 59 55 55 59 55 55 55 55 48 55 55 48 53 46 48 59 55 55
++53 46 48 59 55 55 53 46 48 53 46 48 52 55 48 53 46 48 53 46 48 48 44 48
++48 44 48 47 44 42 53 46 48 47 44 42 51 49 42 53 46 48 53 46 48 53 46 48
++53 46 48 59 55 55 53 46 48 59 55 55 53 46 48 53 46 48 53 46 48 53 46 48
++53 46 48 53 46 48 53 46 48 53 46 48 47 44 42 47 44 42 47 39 42 47 44 42
++42 41 42 47 47 21 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 55 39 37 53 35 37 55 39 37 60 49 42 60 49 42 75 56 53 88 73 31
++88 73 62 101 74 26 88 73 62 120 63 71 98 106 55 101 83 74 117 114 76 168 102 88
++138 102 108 168 102 88 117 114 76 117 114 76 120 63 71 117 112 45 117 99 86 117 114 76
++117 99 86 117 114 76 168 102 88 117 114 76 117 112 45 117 99 86 117 99 86 117 99 86
++117 114 76 168 102 88 138 126 108 168 146 127 177 169 143 177 169 143 189 165 168 138 126 108
++101 83 74 75 56 53 60 49 42 88 44 51 88 73 62 120 63 71 138 102 108 117 114 76
++117 99 86 75 56 53 60 49 42 60 49 42 53 46 48 55 55 48 59 55 55 52 55 48
++52 55 48 48 50 48 59 55 55 54 57 61 59 55 55 54 57 61 54 57 61 59 57 61
++63 59 71 59 69 70 63 59 71 75 72 67 75 81 76 75 81 82 75 64 82 75 81 82
++75 81 90 88 83 88 75 81 90 88 83 88 88 83 88 77 90 100 95 91 100 95 91 100
++90 98 89 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 112 96 108
++94 105 108 94 105 108 94 105 108 112 96 108 94 105 108 112 123 108 94 105 108 94 105 108
++112 123 108 112 96 108 94 105 108 112 96 108 94 105 108 112 96 108 98 113 84 112 96 108
++99 93 84 99 93 84 99 93 84 99 93 84 88 83 74 88 83 74 88 83 74 88 73 62
++75 72 67 88 73 62 88 73 62 75 56 53 75 56 53 75 56 53 75 56 53 65 55 54
++63 55 45 62 47 47 60 49 42 60 49 42 59 36 42 60 49 42 60 49 42 62 47 47
++60 49 42 62 47 47 60 49 42 60 49 42 60 49 42 62 47 47 59 36 42 60 49 42
++59 36 42 55 39 37 60 49 42 55 39 37 55 39 37 59 36 42 59 36 42 59 36 42
++53 35 37 53 35 37 59 36 42 53 35 37 53 35 37 53 35 37 55 39 37 60 49 42
++62 47 47 62 47 47 60 49 42 60 49 42 63 55 45 63 55 45 63 55 45 76 46 20
++75 56 53 75 73 36 75 56 53 75 73 36 75 56 53 75 73 36 88 44 51 75 73 36
++75 56 53 75 73 36 75 56 53 76 46 20 63 55 45 76 46 20 63 55 45 60 49 42
++60 49 42 76 46 20 60 49 42 76 46 20 60 49 42 76 46 20 63 55 45 76 46 20
++60 49 42 60 49 42 76 46 20 63 55 45 75 56 53 76 46 20 75 56 53 63 55 45
++88 73 31 76 44 53 75 73 36 75 56 53 88 44 51 75 73 36 88 44 51 63 55 45
++88 44 51 75 73 36 88 44 51 75 73 36 76 44 53 76 46 20 75 56 53 76 46 20
++63 55 45 60 49 42 76 46 20 60 49 42 76 46 20 55 39 37 76 46 20 55 39 37
++76 46 20 60 49 42 55 39 18 60 49 42 55 39 18 60 49 42 76 46 20 60 49 42
++
++7 12 13 14 16 17 15 17 7 15 17 7 17 12 17 14 16 17 17 12 17 17 12 17
++17 12 17 14 16 17 17 12 17 17 12 17 14 16 17 17 12 17 17 12 17 17 12 17
++17 12 17 17 12 17 7 12 13 17 12 17 17 12 17 17 12 17 7 12 13 15 17 7
++17 12 17 17 12 17 14 16 17 17 12 17 14 16 17 23 18 22 23 20 24 23 18 22
++26 25 15 23 20 24 26 25 15 23 20 24 26 25 15 23 20 24 26 25 15 23 18 22
++23 18 22 26 25 15 23 18 22 26 12 13 23 18 22 22 24 13 17 12 17 26 12 13
++22 24 13 23 18 22 23 18 22 22 24 13 23 18 22 22 25 24 22 25 24 26 25 15
++23 20 24 26 25 15 23 20 24 28 13 18 33 30 30 28 13 18 33 30 30 28 13 18
++34 30 15 23 20 24 33 30 30 26 25 15 23 20 24 26 25 15 33 30 30 23 20 24
++23 18 22 23 18 22 23 18 22 14 16 17 14 16 17 14 16 17 14 16 17 17 12 17
++7 10 17 17 12 17 12 18 20 17 12 17 12 18 20 12 18 20 17 12 17 17 12 17
++14 16 17 12 18 20 23 18 22 14 16 17 23 18 22 14 16 17 23 18 22 22 24 13
++23 18 22 23 20 24 23 20 24 33 30 30 22 25 24 33 30 30 26 25 15 22 25 24
++23 20 24 33 30 30 22 25 24 23 20 24 33 30 30 26 24 32 22 25 24 23 20 24
++23 20 24 23 20 24 14 16 17 23 18 22 12 18 30 23 18 22 12 18 20 12 18 20
++23 18 22 12 18 30 12 18 20 23 18 22 12 18 20 23 18 22 23 20 24 22 25 24
++23 20 24 26 24 32 26 30 28 33 30 30 33 30 30 33 30 30 36 35 37 36 35 37
++36 35 37 53 35 37 36 35 37 42 41 42 47 39 42 47 44 42 47 44 42 53 46 48
++55 39 37 60 49 42 53 46 48 47 39 42 53 46 48 55 39 37 55 39 37 47 44 42
++55 39 37 47 39 42 53 35 37 53 35 37 32 39 24 52 30 35 33 30 30 52 30 35
++33 30 30 33 30 30 26 25 15 33 30 30 28 13 18 33 30 30 28 13 18 33 30 30
++33 30 30 28 13 18 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 36 35 37
++36 35 37 36 35 37 53 35 37 36 35 37 53 35 37 36 35 37 42 38 42 36 35 37
++55 39 37 36 35 37 53 35 37 47 47 21 47 39 42 47 47 21 36 35 37 47 47 21
++53 35 37 36 35 37 52 30 35 36 35 37 33 30 30 36 35 37 36 35 37 33 30 32
++33 30 32 30 30 34 33 30 32 33 30 30 26 24 32 26 30 28 26 24 32 26 24 32
++22 23 31 22 25 24 22 23 31 23 20 24 22 23 31 22 23 31 26 24 32 22 23 31
++22 23 31 22 23 31 22 23 31 22 25 24 22 23 31 22 25 24 26 24 32 30 30 34
++30 30 34 33 30 30 33 30 30 36 35 37 33 30 30 36 35 37 36 35 37 42 41 42
++36 35 37 36 35 37 42 41 42 42 38 42 47 47 21 42 41 42 42 38 42 47 47 21
++47 39 42 36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 33 30 30 33 30 30
++52 30 35 33 30 30 33 30 30 33 30 30 33 30 30 26 24 32 33 30 30 22 25 24
++26 24 32 22 25 24 26 24 32 26 30 28 22 25 24 26 24 32 22 25 24 22 25 24
++28 13 18 26 24 32 49 13 16 76 44 53 88 44 51 102 33 26 102 33 26 88 30 18
++88 30 18 161 55 23 176 103 41 219 175 47 176 103 41 122 49 24 122 49 24 101 74 26
++195 113 123 157 148 53 168 102 88 177 171 115 168 102 88 168 146 127 168 146 127 201 146 124
++168 146 127 201 146 124 168 146 127 201 146 124 201 146 124 168 146 127 201 146 124 168 146 127
++168 146 127 168 102 88 177 171 115 168 102 88 168 146 127 168 146 127 168 146 127 163 117 123
++138 126 108 168 102 88 117 127 86 168 102 88 117 99 86 168 102 88 117 114 76 120 63 71
++117 99 86 120 63 71 101 83 74 88 73 62 75 73 36 88 44 51 75 56 53 63 55 45
++49 13 16 28 13 18 47 39 42 145 140 145 226 221 247 221 238 247 226 221 247 221 238 247
++231 239 247 194 199 226 111 122 142 42 60 86 32 40 58 42 60 86 122 134 144 194 199 226
++226 221 247 221 238 247 221 238 247 226 221 247 201 216 228 201 216 228 201 216 228 194 199 226
++201 216 228 194 199 226 194 199 226 201 216 228 194 199 226 185 202 202 189 165 168 150 144 154
++146 151 137 168 146 127 177 169 143 177 169 143 217 168 156 208 215 180 217 168 156 208 215 180
++217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 214 214 134 217 168 156 208 215 180
++217 168 156 217 168 156 222 171 182 217 168 156 208 215 180 217 168 156 222 171 182 214 214 134
++217 168 156 214 214 134 217 168 156 208 215 180 217 168 156 168 146 127 101 83 74 51 49 42
++22 24 13 42 41 42 95 91 100 166 156 164 201 216 228 201 216 228 201 216 228 201 216 228
++226 221 247 208 221 247 226 221 247 221 238 247 226 221 247 221 238 247 221 238 247 221 238 247
++231 239 247 231 239 247 231 239 247 231 239 247 240 251 247 240 251 247 240 251 247 231 239 247
++240 251 247 235 238 247 231 239 247 226 221 247 233 241 227 208 221 247 201 216 228 221 238 247
++233 241 227 194 199 226 166 180 164 126 147 144 98 113 84 65 63 61 42 47 42 42 47 42
++47 49 42 42 47 42 42 41 42 42 47 42 48 44 48 48 50 48 48 50 48 53 46 48
++51 49 42 51 49 42 53 46 48 53 46 48 48 44 48 47 49 42 48 44 48 48 50 48
++48 50 48 53 46 48 55 55 48 53 46 48 52 55 48 55 55 48 55 55 48 63 55 51
++59 55 55 59 55 55 63 55 51 63 55 51 63 55 51 59 55 55 65 55 54 65 55 54
++65 57 61 64 70 48 65 63 61 63 55 51 65 63 61 63 55 51 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 63 55 51 59 55 55 63 55 51 63 55 51 65 55 54
++65 55 54 65 55 54 65 63 61 65 63 61 65 55 54 63 55 51 65 63 61 59 55 55
++63 55 51 55 55 48 63 55 51 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48
++63 55 51 63 55 51 65 63 61 65 55 54 65 57 61 65 55 54 63 55 51 65 63 61
++65 63 61 75 63 62 75 59 67 75 72 67 75 59 67 75 72 67 75 64 82 75 72 67
++75 72 67 75 64 82 75 72 67 75 72 67 75 72 67 75 64 82 75 72 67 75 81 76
++88 66 70 75 81 76 88 66 70 75 81 76 88 66 70 88 69 84 75 72 67 75 72 67
++75 72 67 75 63 62 65 63 61 65 57 61 59 55 55 65 63 61 65 63 61 65 63 61
++59 57 61 59 55 55 59 55 55 52 55 48 54 57 61 48 50 48 59 55 55 48 50 48
++59 55 55 53 46 48 53 46 48 54 57 61 53 46 48 53 46 48 48 50 48 53 46 48
++53 46 48 51 49 42 48 44 48 51 49 42 53 46 48 51 49 42 53 46 48 53 46 48
++55 55 48 57 43 51 59 55 55 59 55 55 55 55 48 53 46 48 53 46 48 53 46 48
++53 46 48 53 46 48 51 49 42 53 46 48 47 44 42 47 44 42 47 44 42 47 39 42
++47 44 42 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++53 35 37 32 39 24 36 35 37 32 39 24 53 35 37 55 39 18 55 39 37 59 36 42
++60 49 42 62 47 47 63 55 45 76 46 20 60 49 42 76 46 20 88 44 51 88 73 31
++88 73 62 88 73 62 120 63 71 101 60 73 101 74 26 101 83 74 120 63 71 101 74 26
++120 63 71 88 44 51 88 73 62 88 73 31 120 63 71 101 60 73 88 73 31 120 63 71
++101 74 26 120 63 71 117 99 86 138 126 108 163 117 123 168 146 127 163 117 123 138 102 108
++88 73 62 75 56 53 75 56 53 75 56 53 75 56 53 101 74 26 101 83 74 138 102 108
++117 99 86 75 56 53 60 49 42 53 46 48 55 55 48 59 55 55 59 55 55 59 55 55
++59 55 55 55 55 48 52 55 48 53 46 48 54 57 61 54 57 61 59 57 61 53 63 61
++63 59 71 65 63 61 59 69 70 75 64 82 59 69 70 75 81 82 75 81 82 75 81 82
++75 81 90 88 83 88 88 83 88 78 98 90 95 91 100 90 98 89 95 91 100 94 105 108
++94 105 108 94 105 108 94 105 108 94 105 108 112 96 108 94 105 108 94 105 108 112 123 108
++112 96 108 112 123 108 94 105 108 111 119 127 112 96 108 94 105 108 94 105 108 112 96 108
++94 105 108 94 105 108 112 123 108 94 105 108 98 113 84 112 96 108 98 113 84 94 105 108
++117 99 86 95 91 100 99 93 84 99 93 84 88 83 74 88 83 74 88 83 74 88 66 70
++88 73 62 88 73 62 88 73 62 75 56 53 75 63 62 75 56 53 75 56 53 75 56 53
++76 44 53 63 55 45 60 49 42 60 49 42 60 49 42 60 49 42 60 49 42 62 47 47
++62 47 47 62 47 47 62 47 47 60 49 42 60 49 42 62 47 47 62 47 47 62 47 47
++62 47 47 60 49 42 55 39 37 60 49 42 62 47 47 55 39 37 53 46 48 59 36 42
++59 36 42 55 39 37 59 36 42 59 36 42 59 36 42 55 39 37 59 36 42 60 49 42
++76 44 53 60 49 42 60 49 42 75 56 53 76 46 20 75 56 53 75 56 53 63 55 45
++75 56 53 76 44 53 88 73 31 75 56 53 75 56 53 88 73 31 75 56 53 75 73 36
++88 44 51 75 73 36 75 56 53 75 73 36 75 56 53 75 56 53 76 46 20 63 55 45
++76 46 20 63 55 45 63 55 45 76 46 20 63 55 45 63 55 45 63 55 45 63 55 45
++75 56 53 76 46 20 75 56 53 63 55 45 76 46 20 75 56 53 75 56 53 76 46 20
++75 56 53 75 56 53 76 46 20 75 56 53 75 73 36 88 44 51 88 73 31 75 56 53
++88 73 31 75 56 53 76 46 20 88 44 51 75 56 53 76 46 20 75 56 53 76 46 20
++76 44 53 76 46 20 76 44 53 60 49 42 76 46 20 60 49 42 76 46 20 60 49 42
++59 36 42 55 39 37 76 46 20 60 49 42 76 46 20 55 39 37 76 46 20 60 49 42
++
++15 17 7 17 12 17 15 17 7 17 12 17 14 16 17 23 18 22 14 16 17 22 24 13
++14 16 17 23 18 22 23 18 22 23 18 22 14 16 17 17 12 17 14 16 17 14 16 17
++17 12 17 14 16 17 17 12 17 17 12 17 14 16 17 17 12 17 17 12 17 17 12 17
++17 12 17 14 16 17 17 12 17 22 24 13 23 18 22 23 18 22 23 20 24 23 20 24
++23 18 22 22 25 24 22 25 24 33 30 30 28 13 18 23 20 24 26 25 15 23 20 24
++26 25 15 23 18 22 23 18 22 22 24 13 17 12 17 23 18 22 17 12 17 22 24 13
++17 12 17 23 18 22 22 24 13 22 25 24 22 25 24 26 25 15 23 20 24 22 25 24
++22 25 24 23 20 24 33 30 30 34 30 15 28 13 18 34 30 15 34 30 15 33 30 30
++28 13 18 33 30 30 26 25 15 33 30 30 23 20 24 34 30 15 23 20 24 33 30 30
++23 18 22 23 18 22 23 18 22 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17
++17 12 17 14 16 17 17 12 17 12 18 20 17 12 17 17 12 17 12 18 20 23 18 22
++14 16 17 23 18 22 17 12 17 23 18 22 12 18 20 23 18 22 23 18 22 23 20 24
++22 25 24 23 20 24 22 25 24 22 25 24 33 30 30 23 20 24 26 30 28 33 30 30
++23 20 24 26 30 28 23 20 24 23 20 24 26 25 15 23 20 24 26 24 32 23 20 24
++23 20 24 23 20 24 23 18 22 23 18 22 12 18 20 23 18 22 12 18 20 17 12 17
++23 20 24 12 18 20 23 18 22 23 18 22 23 20 24 23 20 24 22 25 24 22 25 24
++26 24 32 26 30 28 33 30 32 33 30 32 33 30 32 33 30 32 36 35 37 52 30 35
++36 35 37 36 35 37 47 44 42 47 44 42 47 44 42 47 44 42 53 46 48 55 39 37
++53 46 48 53 46 48 55 39 37 53 46 48 55 39 37 53 46 48 55 39 37 47 44 42
++55 39 37 47 39 42 53 35 37 33 30 30 52 30 35 33 30 30 34 30 15 33 30 30
++28 13 18 33 30 30 28 13 18 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 53 35 37
++36 35 37 53 35 37 36 35 37 42 38 42 53 35 37 47 47 21 47 39 42 47 44 42
++47 44 42 55 39 37 42 41 42 53 35 37 42 38 42 47 39 42 47 39 42 53 35 37
++36 35 37 53 35 37 36 35 37 36 35 37 52 30 35 33 30 30 52 30 35 33 30 32
++33 30 32 33 30 32 33 30 32 26 24 32 26 30 28 23 20 24 26 24 32 26 24 32
++22 25 24 23 20 24 26 24 32 22 23 31 22 23 31 22 23 31 26 24 32 26 24 32
++26 24 32 22 23 31 22 23 31 25 30 29 22 23 31 22 23 31 26 24 32 30 30 34
++33 30 36 33 30 32 31 35 35 32 39 24 36 35 37 53 35 37 36 35 37 47 47 21
++42 38 42 47 47 21 42 38 42 42 38 42 42 38 42 36 35 37 47 39 42 36 35 37
++36 35 37 36 35 37 36 35 37 47 47 21 36 35 37 52 30 35 36 35 37 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 32 33 30 30 33 30 30 23 20 24 26 24 32
++22 25 24 26 24 32 26 30 28 26 24 32 22 25 24 26 24 32 23 20 24 22 25 24
++33 30 30 28 13 18 49 13 16 49 13 16 76 18 19 102 33 26 102 33 26 102 33 26
++76 18 19 88 30 18 161 55 23 168 102 88 219 175 47 161 55 23 101 74 26 117 112 45
++168 102 88 168 102 88 177 171 115 168 102 88 177 171 115 168 102 88 201 146 124 168 146 127
++201 146 124 168 146 127 201 146 124 168 146 127 168 146 127 201 146 124 168 146 127 168 102 88
++168 146 127 168 102 88 168 146 127 201 146 124 168 146 127 168 102 88 168 146 127 168 102 88
++168 102 88 117 127 86 168 102 88 117 114 76 117 99 86 120 63 71 117 112 45 117 99 86
++101 83 74 88 73 62 88 73 31 88 44 51 75 56 53 75 56 53 76 46 20 52 30 15
++13 4 7 23 10 10 65 63 61 166 156 164 235 238 247 221 238 247 226 221 247 221 238 247
++231 239 247 194 199 226 111 122 142 60 63 87 32 40 58 60 63 87 131 144 168 201 216 228
++226 221 247 221 238 247 208 221 247 201 216 228 201 216 228 201 216 228 201 216 228 201 216 228
++194 199 226 201 216 228 185 202 202 194 199 226 185 202 202 188 180 202 166 174 181 177 169 143
++146 151 137 168 146 127 168 146 127 177 169 143 189 165 168 217 168 156 214 214 134 189 165 168
++217 168 156 217 168 156 208 215 180 217 168 156 217 168 156 208 215 180 217 168 156 217 168 156
++214 214 134 222 171 182 214 214 134 222 171 182 217 168 156 214 214 134 222 171 182 217 168 156
++222 171 182 214 214 134 222 171 182 225 222 201 217 168 156 189 165 168 117 99 86 33 30 30
++3 3 1 15 17 7 75 81 82 166 156 164 232 215 228 232 215 228 208 221 247 226 221 247
++208 221 247 221 238 247 221 238 247 221 238 247 221 238 247 221 238 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 221 238 247 221 238 247 226 221 247 221 238 247 235 238 247 240 251 247
++251 251 247 232 215 228 166 174 181 111 119 127 90 98 89 59 69 70 65 63 61 65 63 61
++55 55 48 48 50 48 47 49 42 47 49 42 48 44 48 48 44 48 48 50 48 48 44 48
++47 49 42 48 50 48 53 46 48 55 55 48 53 46 48 53 46 48 48 50 48 52 55 48
++55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 59 55 55 63 55 51
++59 55 55 64 70 48 59 55 55 63 55 51 64 70 48 65 55 54 65 63 61 63 55 51
++65 63 61 59 55 55 65 63 61 63 55 51 65 63 61 59 55 55 59 55 55 50 61 48
++63 55 51 59 55 55 63 55 51 59 55 55 65 63 61 63 55 51 59 55 55 64 70 48
++65 63 61 65 63 61 65 55 54 75 56 53 65 63 61 65 55 54 63 55 51 63 55 51
++63 55 51 59 55 55 55 55 48 55 55 48 55 55 48 62 47 47 55 55 48 55 55 48
++55 55 48 55 55 48 63 55 51 59 55 55 65 57 61 65 63 61 63 55 51 64 70 48
++75 63 62 75 63 62 75 63 62 75 72 67 75 72 67 75 64 82 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 88 69 84
++75 81 76 75 72 67 75 81 76 88 66 70 75 81 76 75 72 67 75 72 67 75 72 67
++75 63 62 65 63 61 65 63 61 65 63 61 65 63 61 65 55 54 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 48 50 48 48 50 48 48 50 48 53 46 48 59 55 55
++53 46 48 59 55 55 53 46 48 59 55 55 57 43 51 59 55 55 53 46 48 52 55 48
++53 46 48 53 46 48 51 49 42 53 46 48 53 46 48 55 55 48 53 46 48 63 55 51
++59 55 55 59 55 55 53 46 48 59 55 55 53 46 48 55 55 48 53 46 48 53 46 48
++53 46 48 53 46 48 53 46 48 47 44 42 53 46 48 47 39 42 47 39 42 42 41 42
++42 41 42 36 35 37 32 39 24 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42
++36 35 37 36 35 37 52 30 35 32 39 24 52 30 35 32 39 24 53 35 17 52 30 35
++53 35 17 55 39 18 55 39 37 55 39 18 53 35 17 53 35 17 53 35 17 53 35 17
++76 46 20 76 46 20 76 46 20 76 46 20 60 49 42 76 46 20 76 46 20 63 55 45
++76 46 20 76 46 20 88 44 51 76 46 20 76 46 20 76 46 20 76 46 20 76 46 20
++63 55 45 88 73 31 88 73 62 120 63 71 117 99 86 117 99 86 117 99 86 88 83 74
++75 56 53 75 56 53 75 56 53 63 55 45 76 46 20 60 49 42 88 73 62 101 83 74
++101 83 74 88 73 31 62 47 47 63 55 51 65 55 54 59 55 55 59 57 61 59 55 55
++50 61 48 59 55 55 59 57 61 59 57 61 59 57 61 59 57 61 63 59 71 63 59 71
++59 69 70 63 59 71 75 81 76 75 81 76 75 81 82 75 81 82 75 81 82 75 81 90
++88 83 88 77 90 100 90 98 89 95 91 100 77 90 100 95 91 100 94 105 108 94 105 108
++95 91 100 112 96 108 94 105 108 112 123 108 94 105 108 112 123 108 112 96 108 95 108 128
++112 123 108 95 108 128 112 96 108 95 119 107 94 105 108 112 123 108 94 105 108 94 105 108
++94 105 108 112 96 108 112 96 108 94 105 108 112 96 108 94 105 108 117 99 86 95 91 100
++90 98 89 99 93 84 99 93 84 88 83 88 101 83 74 88 83 74 88 66 70 88 73 62
++88 73 62 88 66 70 88 73 62 75 56 53 75 73 58 75 56 53 75 56 53 75 56 53
++63 55 45 62 47 47 63 55 45 60 49 42 60 49 42 60 49 42 60 49 42 62 47 47
++62 47 47 62 47 47 60 49 42 62 47 47 60 49 42 62 47 47 62 47 47 62 47 47
++62 47 47 60 49 42 59 36 42 60 49 42 59 36 42 62 47 47 60 49 42 59 36 42
++55 39 37 59 36 42 59 36 42 55 39 37 59 36 42 60 49 42 60 49 42 62 47 47
++63 55 45 76 44 53 63 55 45 75 56 53 63 55 45 75 56 53 88 73 31 75 56 53
++75 73 36 75 56 53 75 73 36 88 44 51 75 73 36 88 44 51 75 56 53 88 73 31
++75 56 53 88 73 31 75 56 53 75 56 53 76 46 20 75 56 53 75 73 36 63 55 45
++63 55 45 76 46 20 75 56 53 63 55 45 75 56 53 76 46 20 75 73 36 76 44 53
++76 46 20 75 56 53 63 55 45 88 73 31 75 56 53 75 73 36 75 56 53 75 56 53
++75 73 36 75 56 53 75 56 53 88 73 31 88 44 51 75 56 53 75 56 53 88 44 51
++75 56 53 88 73 31 75 56 53 75 56 53 76 46 20 75 56 53 76 46 20 75 56 53
++76 46 20 75 56 53 76 46 20 63 55 45 76 46 20 60 49 42 60 49 42 76 46 20
++60 49 42 76 46 20 55 39 37 76 46 20 55 39 37 60 49 42 76 46 20 60 49 42
++
++17 12 17 15 17 7 17 12 17 14 16 17 23 18 22 23 18 22 23 18 22 23 18 22
++23 18 22 23 18 22 23 20 24 23 18 22 23 18 22 23 18 22 14 16 17 23 18 22
++23 18 22 14 16 17 17 12 17 15 17 7 17 12 17 14 16 17 17 12 17 7 12 13
++17 12 17 17 12 17 14 16 17 23 18 22 14 16 17 15 22 17 23 18 22 23 18 22
++26 25 15 26 25 15 23 20 24 26 25 15 22 25 24 26 25 15 23 20 24 23 20 24
++23 20 24 23 18 22 23 18 22 23 18 22 23 18 22 22 24 13 14 16 17 23 18 22
++23 18 22 23 18 22 23 18 22 23 20 24 26 25 15 23 20 24 23 20 24 26 25 15
++33 30 30 26 25 15 26 25 15 26 24 32 26 25 15 33 30 30 28 13 18 26 25 15
++33 30 30 34 30 15 34 30 15 23 20 24 34 30 15 33 30 30 33 30 30 23 20 24
++26 25 15 23 18 22 23 18 22 22 24 13 17 12 17 14 16 17 17 12 17 17 12 17
++7 10 17 17 12 17 12 18 20 17 12 17 17 12 17 12 18 20 17 12 17 17 12 17
++14 16 17 14 16 17 15 22 17 14 16 17 23 18 22 23 18 22 23 20 24 26 25 15
++23 20 24 26 25 15 33 30 30 22 25 24 34 30 15 26 30 28 26 25 15 23 20 24
++33 30 30 23 20 24 33 30 30 23 20 24 33 30 30 22 25 24 26 24 32 22 25 24
++23 20 24 23 20 24 23 18 22 12 18 20 23 20 24 23 20 24 23 20 24 12 18 20
++23 20 24 23 20 24 23 20 24 12 18 30 23 20 24 23 20 24 22 25 24 26 30 28
++26 24 32 33 30 32 33 30 32 33 30 32 33 30 32 36 35 37 36 35 37 33 39 38
++36 35 37 53 35 37 36 35 37 47 39 42 47 44 42 47 39 42 47 44 42 53 46 48
++55 39 37 51 49 42 53 46 48 60 49 42 53 46 48 55 39 37 51 49 42 55 39 37
++47 44 42 53 35 37 42 41 42 52 30 35 32 39 24 52 30 35 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 28 13 18 33 30 30 26 25 15 33 30 30 33 30 30
++28 13 18 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 36 35 37 52 30 35
++36 35 37 47 47 21 36 35 37 53 35 37 42 41 42 47 39 42 47 39 42 55 39 37
++53 35 37 55 39 37 47 39 42 53 35 37 47 39 42 55 39 37 36 35 37 47 39 42
++55 39 37 36 35 37 53 35 37 36 35 37 33 30 30 36 35 37 33 30 32 33 30 32
++33 30 32 33 30 32 33 30 30 26 30 28 26 24 32 33 30 30 22 25 24 26 24 32
++26 24 32 26 24 32 22 25 24 26 24 32 26 24 32 22 23 31 22 23 31 22 23 31
++22 23 31 22 23 31 22 25 24 22 23 31 22 25 24 25 30 29 26 30 28 30 30 34
++31 35 35 33 30 30 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42
++36 35 37 42 38 42 55 39 37 36 35 37 47 39 42 47 39 42 36 35 37 53 35 37
++36 35 37 55 39 37 36 35 37 42 38 42 36 35 37 36 35 37 32 39 24 33 30 30
++33 30 30 36 35 37 33 30 32 33 30 32 33 30 30 33 30 30 23 20 24 33 30 30
++23 20 24 26 30 28 23 20 24 26 30 28 23 20 24 23 20 24 26 30 28 23 20 24
++26 30 28 23 20 24 23 18 22 28 13 18 52 30 35 59 36 42 76 18 19 88 30 18
++88 30 18 76 18 19 88 30 18 176 103 41 168 102 88 168 102 88 176 103 41 161 55 23
++157 148 53 168 102 88 146 150 115 168 102 88 201 146 124 168 146 127 201 146 124 168 146 127
++201 146 124 168 146 127 177 171 115 201 146 124 201 146 124 177 171 115 201 146 124 177 171 115
++168 146 127 201 146 124 177 171 115 168 102 88 168 146 127 177 171 115 168 102 88 138 126 108
++117 114 76 168 102 88 117 114 76 120 63 71 117 112 45 101 83 74 101 83 74 120 63 71
++88 73 62 88 73 31 75 56 53 75 56 53 63 55 45 55 39 37 28 13 18 13 4 7
++3 3 1 23 18 22 88 83 88 188 180 202 235 238 247 221 238 247 208 221 247 221 238 247
++231 239 247 194 199 226 122 134 144 60 63 87 34 42 77 77 90 100 150 147 171 208 221 247
++226 221 247 221 238 247 201 216 228 201 216 228 201 216 228 194 199 226 194 199 226 201 216 228
++194 199 226 201 216 228 194 199 226 185 202 202 188 180 202 185 202 202 166 174 181 166 156 164
++150 144 154 145 140 145 168 146 127 177 169 143 177 169 143 177 169 143 189 165 168 208 215 180
++217 168 156 208 215 180 217 168 156 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156
++208 215 180 217 168 156 208 215 180 217 168 156 214 214 134 222 171 182 214 214 134 222 171 182
++214 214 134 222 171 182 214 214 134 217 168 156 208 215 180 222 171 182 168 146 127 88 83 74
++22 25 24 15 17 7 59 57 61 146 151 137 201 216 228 201 216 228 221 238 247 226 221 247
++231 239 247 231 239 247 221 238 247 231 239 247 221 238 247 231 239 247 231 239 247 231 239 247
++231 239 247 221 238 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 221 238 247
++221 238 247 221 238 247 226 221 247 231 239 247 231 239 247 240 251 247 251 251 247 240 251 247
++240 251 247 221 238 247 201 216 228 188 180 202 112 123 108 88 83 74 87 99 72 81 96 56
++75 73 58 75 73 36 64 70 48 64 70 48 63 55 45 55 55 48 60 49 42 51 49 42
++51 49 42 55 55 48 55 55 48 51 49 42 51 49 42 52 55 48 53 46 48 55 55 48
++53 46 48 55 55 48 63 55 51 55 55 48 63 55 51 55 55 48 59 55 55 63 55 51
++63 55 51 65 55 54 63 55 51 65 63 61 65 55 54 65 55 54 63 55 51 65 63 61
++65 55 54 64 70 48 65 55 54 65 63 61 59 55 55 63 55 51 63 55 51 63 55 51
++59 55 55 64 70 48 59 55 55 63 55 51 63 55 51 63 55 51 63 55 51 65 55 54
++65 63 61 65 55 54 65 63 61 65 63 61 65 55 54 65 63 61 65 55 54 63 55 51
++59 55 55 63 55 45 55 55 48 55 55 48 59 55 55 53 46 48 59 55 55 53 46 48
++55 55 48 59 55 55 55 55 48 59 55 55 63 55 51 65 63 61 65 55 54 65 63 61
++65 63 61 65 63 61 65 63 61 75 59 67 75 72 67 75 63 62 75 72 67 75 59 67
++75 72 67 75 59 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++88 66 70 75 72 67 75 72 67 75 72 67 88 66 70 75 72 67 75 59 67 75 72 67
++75 72 67 75 72 67 75 63 62 65 63 61 65 57 61 65 63 61 59 57 61 65 63 61
++59 57 61 59 55 55 59 55 55 54 57 61 53 46 48 48 50 48 59 55 55 53 46 48
++48 50 48 53 46 48 59 55 55 48 50 48 59 55 55 52 55 48 59 55 55 53 46 48
++51 49 42 53 46 48 51 49 42 53 46 48 55 55 48 53 46 48 55 55 48 62 47 47
++53 46 48 62 47 47 63 55 51 53 46 48 62 47 47 53 46 48 53 46 48 51 49 42
++53 46 48 53 46 48 51 49 42 53 46 48 47 44 42 47 39 42 42 41 42 47 39 42
++42 41 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++42 41 42 36 35 37 36 35 37 53 35 37 36 35 37 47 39 42 36 35 37 42 41 42
++36 35 37 53 35 37 36 35 37 55 39 37 36 35 37 52 30 35 34 30 15 52 30 35
++36 35 37 55 39 37 55 39 37 55 39 37 60 49 42 62 47 47 60 49 42 75 56 53
++65 55 54 63 55 51 60 49 42 62 47 47 59 36 42 55 39 37 53 35 37 53 35 37
++55 39 18 62 47 47 75 73 58 88 73 62 88 73 62 75 72 67 75 63 62 75 56 53
++65 55 54 65 55 54 75 56 53 75 56 53 60 49 42 60 49 42 75 56 53 88 73 62
++75 63 62 65 55 54 63 55 51 59 55 55 59 55 55 65 63 61 59 57 61 65 63 61
++65 63 61 65 63 61 65 63 61 59 57 61 65 63 61 59 69 70 65 63 61 59 69 70
++75 72 67 75 64 82 75 81 76 75 81 90 75 81 82 75 81 90 88 83 88 88 83 88
++77 90 100 90 98 89 95 91 100 95 91 100 94 105 108 94 105 108 95 91 100 94 105 108
++94 105 108 94 105 108 94 105 108 112 123 108 112 96 108 95 108 128 112 123 108 94 105 108
++112 123 108 94 105 108 112 123 108 111 119 127 94 105 108 112 96 108 94 105 108 112 96 108
++95 91 100 94 105 108 95 91 100 98 113 84 95 91 100 98 113 84 95 91 100 117 99 86
++95 91 100 99 93 84 99 93 84 101 83 74 88 83 74 88 83 74 88 83 74 88 73 62
++88 73 62 88 73 62 88 73 62 88 73 62 75 56 53 75 56 53 75 56 53 75 56 53
++75 56 53 63 55 45 76 44 53 76 46 20 60 49 42 76 44 53 76 46 20 60 49 42
++76 44 53 76 46 20 76 44 53 60 49 42 60 49 42 76 44 53 60 49 42 76 44 53
++62 47 47 60 49 42 60 49 42 60 49 42 59 36 42 60 49 42 59 36 42 59 36 42
++59 36 42 60 49 42 59 36 42 59 36 42 59 36 42 59 36 42 60 49 42 76 44 53
++75 56 53 76 46 20 75 56 53 76 46 20 88 44 51 75 73 36 88 44 51 75 56 53
++88 44 51 88 73 31 88 44 51 88 73 62 75 56 53 88 73 31 88 73 31 75 56 53
++88 73 31 88 44 51 88 73 31 88 73 31 75 73 36 76 46 20 88 44 51 76 46 20
++75 56 53 76 46 20 75 56 53 76 46 20 88 73 31 75 56 53 76 46 20 76 46 20
++75 56 53 75 56 53 76 46 20 75 56 53 76 46 20 88 44 51 88 73 31 75 56 53
++76 46 20 88 44 51 88 73 31 75 56 53 88 73 31 88 44 51 88 73 31 88 73 31
++88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 76 46 20 75 56 53 76 46 20
++76 44 53 76 46 20 75 56 53 76 46 20 76 44 53 76 46 20 76 46 20 76 44 53
++76 46 20 60 49 42 76 46 20 60 49 42 76 46 20 76 46 20 63 55 45 76 46 20
++
++15 17 7 17 12 17 15 22 17 23 18 22 23 18 22 23 18 22 22 24 13 23 20 24
++23 20 24 22 25 24 23 20 24 23 18 22 15 22 17 23 18 22 23 18 22 23 18 22
++12 18 20 23 18 22 14 16 17 17 12 17 17 12 17 15 17 7 17 12 17 17 12 17
++17 12 17 14 16 17 17 12 17 23 18 22 14 16 17 23 18 22 23 18 22 26 25 15
++22 25 24 26 25 15 23 20 24 26 25 15 23 20 24 23 18 22 23 18 22 23 20 24
++23 18 22 23 18 22 23 18 22 17 12 17 14 16 17 17 12 17 17 12 17 26 12 13
++15 22 17 23 18 22 22 24 13 23 18 22 22 25 24 26 25 15 23 20 24 33 30 30
++28 13 18 26 25 15 23 20 24 34 30 15 23 20 24 33 30 30 26 25 15 33 30 30
++26 25 15 33 30 30 23 20 24 34 30 15 33 30 30 23 20 24 34 30 15 23 18 22
++23 18 22 26 25 15 23 18 22 23 18 22 14 16 17 17 12 17 14 16 17 17 12 17
++17 12 17 14 16 17 17 12 17 12 18 20 17 12 17 17 12 17 14 16 17 14 16 17
++14 16 17 23 18 22 14 16 17 23 18 22 23 18 22 22 24 13 22 25 24 22 25 24
++22 25 24 33 30 30 26 30 28 33 30 30 26 30 28 34 30 15 33 30 30 33 30 30
++33 30 30 33 30 30 23 20 24 33 30 30 23 20 24 26 24 32 23 20 24 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 22 23 31 22 25 24 26 24 32 26 30 28
++33 30 30 33 30 32 33 30 36 36 35 37 36 35 37 36 35 37 36 35 37 42 41 42
++42 38 42 42 41 42 47 44 42 47 39 42 47 44 42 47 44 42 53 46 48 47 44 42
++51 49 42 53 46 48 55 39 37 53 46 48 55 39 37 53 46 48 47 44 42 47 39 42
++55 39 37 36 35 37 47 47 21 36 35 37 33 30 30 33 30 30 33 30 30 52 30 15
++33 30 30 28 13 18 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 36 35 37 52 30 35 36 35 37
++53 35 37 42 38 42 53 35 37 47 47 21 47 39 42 55 39 37 55 39 37 47 39 42
++47 39 42 55 39 37 47 44 42 55 39 37 47 44 42 55 39 37 55 39 37 47 44 42
++53 35 37 42 41 42 36 35 37 53 35 37 36 35 37 36 35 37 52 30 35 36 35 37
++33 30 30 33 30 30 33 30 30 26 24 32 26 30 28 26 24 32 26 24 32 26 24 32
++22 25 24 26 24 32 22 23 31 26 24 32 26 30 28 22 25 24 26 24 32 22 25 24
++22 23 31 22 23 31 26 24 32 26 30 28 26 24 32 30 30 34 30 30 34 33 30 32
++33 30 32 31 35 35 36 35 37 36 35 37 36 35 37 36 35 37 42 41 42 47 47 21
++42 38 42 36 35 37 42 41 42 42 41 42 47 47 21 42 38 42 36 35 37 42 41 42
++36 35 37 36 35 37 36 35 37 53 35 37 33 30 30 36 35 37 52 30 35 33 30 30
++36 35 37 33 30 30 33 30 30 33 30 32 33 30 30 26 24 32 33 30 30 23 20 24
++33 30 30 23 20 24 33 30 30 23 20 24 26 24 32 23 20 24 26 24 32 26 25 15
++26 24 32 26 25 15 23 20 24 28 13 18 33 30 30 49 13 16 59 36 42 76 18 19
++76 18 19 76 18 19 76 18 19 88 30 18 176 103 41 157 148 53 176 103 41 120 63 71
++176 103 41 168 102 88 157 148 53 201 146 124 146 150 115 201 146 124 168 146 127 201 146 124
++201 146 124 201 146 124 201 146 124 197 171 123 201 146 124 197 171 123 168 146 127 201 146 124
++168 146 127 168 146 127 168 102 88 168 146 127 168 102 88 138 126 108 168 102 88 117 114 76
++168 102 88 117 99 86 117 112 45 101 83 74 101 74 26 88 73 62 101 74 26 88 73 62
++75 56 53 75 56 53 76 46 20 60 49 42 53 35 17 49 13 16 23 10 10 13 4 7
++3 3 1 26 24 32 111 119 127 185 202 202 235 238 247 221 238 247 208 221 247 221 238 247
++235 238 247 194 199 226 111 122 142 60 63 87 34 42 77 77 91 115 150 168 183 226 221 247
++221 238 247 226 221 247 201 216 228 194 199 226 185 202 202 201 216 228 194 199 226 194 199 226
++225 222 201 188 180 202 194 199 226 185 202 202 188 180 202 166 176 200 166 174 181 166 180 164
++148 160 159 146 151 137 168 146 127 168 146 127 168 146 127 177 169 143 217 168 156 217 168 156
++208 215 180 217 168 156 214 214 134 217 168 156 217 168 156 208 215 180 217 168 156 217 168 156
++208 215 180 217 168 156 217 168 156 208 215 180 217 168 156 217 168 156 208 215 180 217 168 156
++222 171 182 214 214 134 222 171 182 225 222 201 217 168 156 225 222 201 217 168 156 146 151 137
++88 73 62 26 30 28 33 39 38 112 123 108 185 202 202 233 241 227 235 238 247 221 238 247
++221 238 247 226 221 247 221 238 247 221 238 247 231 239 247 231 239 247 231 239 247 231 239 247
++231 239 247 240 251 247 231 239 247 231 239 247 240 251 247 231 239 247 240 251 247 231 239 247
++221 238 247 233 241 227 221 238 247 235 238 247 240 251 247 251 251 247 251 251 247 240 251 247
++221 238 247 221 238 247 233 241 227 233 241 227 166 180 164 117 99 86 117 114 76 98 106 55
++87 99 72 98 106 55 88 73 62 75 77 62 75 73 58 75 73 58 64 70 48 63 55 45
++63 55 45 55 55 48 51 49 42 51 49 42 51 49 42 53 46 48 53 46 48 59 55 55
++59 55 55 59 55 55 55 55 48 59 55 55 63 55 51 59 55 55 63 55 51 65 55 54
++65 63 61 65 55 54 65 63 61 65 55 54 65 63 61 65 63 61 75 56 53 65 63 61
++65 55 54 65 63 61 65 63 61 65 55 54 65 63 61 59 55 55 59 55 55 63 55 51
++63 55 51 59 55 55 63 55 51 63 55 51 64 70 48 59 55 55 63 55 51 65 55 54
++65 55 54 65 63 61 64 70 48 65 55 54 65 63 61 63 55 51 65 63 61 63 55 51
++63 55 51 63 55 51 55 55 48 62 47 47 55 55 48 59 55 55 53 46 48 59 55 55
++53 46 48 55 55 48 59 55 55 59 55 55 59 55 55 63 55 51 65 55 54 65 63 61
++65 55 54 75 63 62 65 57 61 75 63 62 75 63 62 75 63 62 75 72 67 75 63 62
++75 72 67 75 63 62 75 72 67 75 63 62 75 72 67 75 63 62 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 63 62 75 72 67 65 63 61 65 63 61 65 63 61 65 57 61 59 57 61 59 55 55
++59 57 61 59 55 55 59 55 55 53 46 48 59 55 55 48 50 48 53 46 48 59 55 55
++53 46 48 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 53 46 48 55 55 48
++53 46 48 51 49 42 53 46 48 51 49 42 53 46 48 60 49 42 53 46 48 55 55 48
++62 47 47 55 55 48 53 46 48 63 55 45 55 55 48 55 55 48 60 49 42 53 46 48
++53 46 48 53 46 48 53 46 48 47 44 42 47 44 42 47 44 42 47 39 42 42 38 42
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42
++36 35 37 36 35 37 36 35 37 36 35 37 47 39 42 42 41 42 42 41 42 42 41 42
++42 47 42 42 41 42 42 47 42 47 44 42 51 49 42 47 49 42 47 49 42 51 49 42
++51 49 42 51 49 42 51 49 42 55 55 48 63 55 45 63 55 51 65 57 61 75 63 62
++65 63 61 65 63 61 65 63 61 65 63 61 65 55 54 59 55 55 63 55 51 62 47 47
++63 55 51 65 55 54 75 56 53 65 63 61 65 63 61 65 55 54 65 63 61 65 63 61
++75 63 62 65 55 54 65 55 54 65 55 54 65 55 54 75 56 53 63 55 45 63 55 45
++65 55 54 63 55 51 65 55 54 65 57 61 65 63 61 65 63 61 65 63 61 63 59 71
++59 69 70 65 63 61 59 69 70 63 59 71 59 69 70 63 59 71 75 72 67 75 72 67
++75 81 76 75 81 82 75 81 82 88 83 88 88 83 88 88 83 88 90 98 89 77 90 100
++95 91 100 95 91 100 94 105 108 94 105 108 94 105 108 94 105 108 98 113 84 112 96 108
++95 119 107 112 96 108 112 123 108 94 105 108 111 119 127 112 123 108 112 96 108 111 119 127
++112 123 108 112 96 108 111 119 127 94 105 108 112 96 108 95 119 107 94 105 108 112 96 108
++98 113 84 112 96 108 90 98 89 112 96 108 99 93 84 112 96 108 99 93 84 95 91 100
++99 93 84 99 93 84 88 83 74 88 83 74 88 83 74 88 73 62 88 73 62 88 66 70
++88 73 62 88 73 62 75 56 53 88 73 62 75 56 53 75 56 53 75 56 53 75 73 36
++76 44 53 76 46 20 63 55 45 63 55 45 62 47 47 76 46 20 63 55 45 76 44 53
++60 49 42 62 47 47 63 55 45 76 46 20 76 44 53 63 55 45 76 46 20 62 47 47
++60 49 42 76 46 20 62 47 47 59 36 42 76 46 20 59 36 42 76 46 20 59 36 42
++59 36 42 76 46 20 59 36 42 59 36 42 76 46 20 59 36 42 76 44 53 76 46 20
++76 44 53 75 56 53 75 56 53 75 56 53 75 73 36 88 44 51 88 73 31 75 56 53
++88 73 31 88 44 51 88 73 62 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31
++88 73 31 88 73 31 88 44 51 88 73 31 88 44 51 75 73 36 88 73 31 76 46 20
++88 73 31 76 46 20 75 56 53 88 44 51 76 46 20 75 56 53 88 73 31 75 56 53
++76 46 20 88 73 31 88 44 51 88 73 31 75 56 53 76 46 20 75 56 53 88 44 51
++88 73 31 75 56 53 76 46 20 88 44 51 88 73 31 75 56 53 88 44 51 88 73 31
++88 44 51 88 73 31 88 44 51 76 46 20 88 73 31 88 44 51 76 46 20 75 56 53
++76 46 20 75 56 53 76 46 20 76 44 53 76 46 20 63 55 45 76 46 20 76 44 53
++76 46 20 76 44 53 76 46 20 60 49 42 76 46 20 63 55 45 76 46 20 88 73 31
++
++14 16 17 17 12 17 14 16 17 23 18 22 23 18 22 22 25 24 22 25 24 22 25 24
++22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 23 18 22 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17 17 12 17
++14 16 17 17 12 17 14 16 17 22 24 13 23 18 22 23 20 24 22 25 24 23 20 24
++26 25 15 23 20 24 26 25 15 23 18 22 26 25 15 23 18 22 23 18 22 23 18 22
++23 18 22 23 18 22 17 12 17 14 16 17 17 12 17 17 12 17 14 16 17 17 12 17
++23 18 22 23 18 22 23 18 22 22 24 13 26 25 15 23 20 24 23 20 24 26 25 15
++33 30 30 26 25 15 33 30 30 28 13 18 33 30 30 34 30 15 33 30 30 34 30 15
++33 30 30 33 30 30 34 30 15 33 30 30 26 25 15 33 30 30 26 25 15 23 20 24
++26 25 15 23 18 22 22 24 13 23 18 22 17 12 17 23 18 22 17 12 17 14 16 17
++17 12 17 17 12 17 7 10 17 17 12 17 12 18 20 17 12 17 14 16 17 17 12 17
++14 16 17 14 16 17 23 18 22 23 18 22 23 18 22 23 18 22 23 20 24 26 25 15
++33 30 30 26 25 15 33 30 30 26 25 15 26 30 28 33 30 30 26 25 15 33 30 30
++23 20 24 33 30 30 33 30 30 26 30 28 33 30 30 22 25 24 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 23 20 24 22 23 31 23 20 24 23 20 24 22 25 24
++22 25 24 23 20 24 22 25 24 26 24 32 26 24 32 22 25 24 26 24 32 26 30 28
++26 24 32 33 30 32 36 35 37 33 30 32 36 35 37 36 35 37 42 38 42 36 35 37
++42 41 42 36 35 37 47 44 42 47 44 42 47 44 42 47 44 42 53 46 48 47 44 42
++55 39 37 47 44 42 51 49 42 55 39 37 53 46 48 47 44 42 55 39 37 55 39 37
++36 35 37 53 35 37 36 35 37 52 30 35 33 30 30 52 30 35 52 30 35 33 30 32
++33 30 30 33 30 30 52 30 35 33 30 30 52 30 15 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 32 39 24 33 30 30 36 35 37 53 35 37 47 39 42 47 47 21
++36 35 37 53 35 37 47 39 42 47 39 42 47 44 42 47 44 42 47 44 42 55 39 37
++55 39 37 55 39 37 60 49 42 51 49 42 55 39 37 51 49 42 51 49 42 47 44 42
++47 39 42 53 35 37 47 39 42 36 35 37 53 35 37 36 35 37 36 35 37 33 30 32
++33 30 32 26 30 28 33 30 30 33 30 30 33 30 32 33 30 30 26 30 28 26 24 32
++26 24 32 26 24 32 22 25 24 26 24 32 26 24 32 26 24 32 25 30 29 25 30 29
++26 30 28 26 30 28 26 24 32 22 25 24 26 30 28 26 30 28 33 30 32 31 35 35
++36 35 37 36 35 37 36 35 37 36 35 37 32 39 24 47 44 42 42 41 42 36 35 37
++42 38 42 47 47 21 53 35 37 36 35 37 42 38 42 42 38 42 42 38 42 47 47 21
++36 35 37 53 35 37 36 35 37 32 39 24 36 35 37 36 35 37 36 35 37 36 35 37
++33 30 30 36 35 37 33 30 32 33 30 32 33 30 30 33 30 30 33 30 30 26 24 32
++33 30 30 22 25 24 33 30 30 26 24 32 26 30 28 33 30 30 26 30 28 22 25 24
++22 25 24 22 25 24 23 18 22 33 30 30 28 13 18 49 13 16 49 13 16 49 13 16
++49 13 16 52 30 15 76 18 19 76 18 19 122 49 24 168 102 88 117 112 45 176 103 41
++101 74 26 117 112 45 168 102 88 168 102 88 168 146 127 168 102 88 201 146 124 201 146 124
++177 171 115 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 201 146 124 177 171 115
++168 102 88 201 146 124 168 146 127 163 117 123 117 114 76 168 102 88 117 99 86 117 114 76
++101 83 74 101 83 74 120 63 71 101 74 26 101 60 73 88 73 31 88 44 51 75 56 53
++76 46 20 60 49 42 62 47 47 52 30 15 26 12 13 23 10 10 13 4 7 13 4 7
++3 3 1 36 35 37 141 116 139 201 216 228 235 238 247 226 221 247 221 238 247 221 238 247
++221 238 247 188 180 202 111 122 142 42 60 86 60 63 87 95 108 128 166 176 200 221 238 247
++221 238 247 221 238 247 201 216 228 194 199 226 194 199 226 194 199 226 201 216 228 185 202 202
++194 199 226 194 199 226 188 180 202 185 202 202 166 176 200 166 174 181 150 168 183 166 156 164
++166 180 164 166 156 164 145 140 145 146 151 137 168 146 127 177 169 143 177 169 143 189 165 168
++197 171 123 189 165 168 208 215 180 217 168 156 208 215 180 217 168 156 222 171 182 214 214 134
++217 168 156 222 171 182 214 214 134 217 168 156 222 171 182 214 214 134 222 171 182 214 214 134
++217 168 156 225 222 201 227 171 124 222 171 182 214 214 134 222 171 182 208 215 180 189 165 168
++138 126 108 63 55 51 33 30 30 75 81 82 166 156 164 221 238 247 251 251 247 231 239 247
++231 239 247 221 238 247 221 238 247 231 239 247 221 238 247 221 238 247 231 239 247 231 239 247
++231 239 247 221 238 247 240 251 247 231 239 247 240 251 247 235 238 247 240 251 247 240 251 247
++240 251 247 235 238 247 240 251 247 251 251 247 240 251 247 240 251 247 240 251 247 221 238 247
++232 215 228 201 216 228 231 239 247 251 251 247 185 202 202 146 150 115 117 127 86 117 114 76
++117 127 86 117 114 76 117 114 76 117 114 76 101 83 74 81 96 56 88 83 74 75 73 58
++65 63 61 64 70 48 63 55 45 60 49 42 60 49 42 55 55 48 53 46 48 59 55 55
++55 55 48 63 55 51 55 55 48 55 55 48 55 55 48 63 55 51 65 63 61 65 63 61
++65 55 54 65 63 61 65 55 54 65 63 61 65 55 54 65 63 61 65 63 61 75 63 62
++65 63 61 65 63 61 65 55 54 65 63 61 59 55 55 63 55 51 63 55 51 59 55 55
++63 55 51 63 55 51 63 55 51 65 63 61 59 55 55 65 55 54 59 55 55 63 55 51
++65 55 54 65 63 61 65 63 61 65 63 61 65 55 54 65 55 54 63 55 51 65 63 61
++59 55 55 63 55 51 63 55 45 55 55 48 59 55 55 48 50 48 59 55 55 53 46 48
++55 55 48 55 55 48 57 43 51 59 55 55 59 55 55 59 55 55 63 55 51 59 55 55
++65 55 54 65 57 61 65 63 61 65 63 61 75 63 62 65 63 61 75 63 62 75 63 62
++75 63 62 75 63 62 75 72 67 75 63 62 75 72 67 75 63 62 75 72 67 88 66 70
++75 72 67 75 72 67 75 72 67 75 72 67 75 59 67 75 72 67 75 63 62 75 72 67
++75 63 62 75 72 67 75 63 62 75 63 62 65 63 61 65 63 61 65 57 61 59 57 61
++59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 48 50 48 59 55 55 48 50 48
++59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 55 55 48
++53 46 48 55 55 48 53 46 48 55 55 48 53 46 48 51 49 42 53 46 48 62 47 47
++55 55 48 62 47 47 63 55 51 62 47 47 55 55 48 62 47 47 55 55 48 55 55 48
++53 46 48 53 46 48 51 49 42 53 46 48 47 39 42 47 44 42 47 44 42 36 35 37
++47 39 42 36 35 37 32 39 24 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++33 30 30 36 35 37 42 38 42 36 35 37 47 39 42 32 39 24 42 41 42 36 35 37
++42 41 42 47 47 21 42 41 42 47 44 42 51 49 42 51 49 42 51 49 42 60 49 42
++55 55 48 55 55 48 55 55 48 63 55 51 65 55 54 65 57 61 65 63 61 65 63 61
++75 63 62 65 63 61 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62
++75 63 62 65 63 61 65 55 54 65 55 54 65 55 54 65 63 61 75 56 53 65 57 61
++75 63 62 65 63 61 65 55 54 65 57 61 75 63 62 65 63 61 65 55 54 65 55 54
++65 55 54 65 55 54 65 63 61 65 63 61 65 63 61 75 63 62 63 59 71 75 63 62
++59 69 70 65 63 61 63 59 71 65 63 61 75 72 67 59 69 70 75 81 76 75 64 82
++75 81 82 75 64 82 75 81 82 75 81 90 88 83 88 78 98 90 95 91 100 95 91 100
++90 98 89 94 105 108 95 91 100 94 105 108 94 105 108 112 96 108 112 123 108 94 105 108
++112 123 108 112 123 108 112 96 108 112 123 108 94 105 108 112 123 108 111 119 127 112 123 108
++111 119 127 95 119 107 112 96 108 112 123 108 94 105 108 94 105 108 112 96 108 94 105 108
++94 105 108 95 91 100 99 93 84 94 105 108 99 93 84 95 91 100 99 93 84 99 93 84
++99 93 84 88 83 88 101 83 74 88 83 74 88 83 74 88 66 70 88 73 62 88 73 62
++88 73 62 88 73 62 88 44 51 88 73 62 75 63 62 88 73 31 75 56 53 88 44 51
++63 55 45 75 56 53 75 56 53 76 46 20 76 44 53 63 55 45 60 49 42 76 44 53
++63 55 45 76 44 53 76 44 53 63 55 45 76 44 53 63 55 45 75 56 53 76 44 53
++60 49 42 76 44 53 60 49 42 76 44 53 60 49 42 76 44 53 62 47 47 59 36 42
++60 49 42 59 36 42 59 36 42 76 44 53 59 36 42 76 44 53 60 49 42 62 47 47
++75 56 53 76 46 20 76 44 53 88 73 31 88 44 51 75 56 53 88 73 62 88 44 51
++88 73 62 88 44 51 88 73 31 88 44 51 88 73 62 88 73 31 88 73 62 88 73 31
++88 44 51 101 74 26 88 73 62 88 73 31 88 73 31 88 44 51 75 56 53 76 46 20
++75 56 53 88 44 51 76 46 20 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31
++88 44 51 88 73 31 88 44 51 75 73 36 88 44 51 88 73 31 88 44 51 88 73 31
++88 44 51 88 73 31 75 56 53 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31
++88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 76 46 20 75 56 53 76 46 20
++76 44 53 76 46 20 88 44 51 75 73 36 76 46 20 75 56 53 76 46 20 76 46 20
++63 55 45 76 46 20 76 46 20 63 55 45 76 46 20 76 46 20 75 56 53 76 46 20
++
++17 12 17 14 16 17 23 18 22 23 18 22 22 25 24 23 20 24 22 25 24 33 30 30
++23 20 24 33 30 30 22 25 24 23 20 24 26 30 28 23 20 24 22 25 24 23 20 24
++23 20 24 23 18 22 14 16 17 23 18 22 23 18 22 23 18 22 14 16 17 17 12 17
++14 16 17 15 17 7 23 18 22 23 18 22 26 25 15 23 20 24 26 25 15 23 18 22
++26 25 15 23 18 22 22 25 24 23 20 24 26 25 15 23 18 22 22 24 13 23 18 22
++14 16 17 23 18 22 23 18 22 17 12 17 14 16 17 17 12 17 14 16 17 17 12 17
++23 18 22 23 18 22 22 24 13 23 20 24 26 25 15 23 20 24 26 25 15 33 30 30
++23 20 24 33 30 30 26 25 15 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30
++34 30 15 33 30 30 28 13 18 33 30 30 34 30 15 23 20 24 26 25 15 23 20 24
++26 25 15 28 13 18 23 18 22 23 18 22 14 16 17 14 16 17 23 18 22 14 16 17
++23 18 22 14 16 17 17 12 17 17 12 17 12 18 20 17 12 17 12 18 20 17 12 17
++14 16 17 23 18 22 23 18 22 15 22 17 23 18 22 22 24 13 22 25 24 22 25 24
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 26 30 28 33 30 30 33 30 30
++33 30 30 33 30 30 34 30 15 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30
++22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24
++23 20 24 23 20 24 26 24 32 26 30 28 33 30 30 26 24 32 26 30 28 33 30 30
++33 30 32 33 30 32 36 35 37 36 35 37 42 38 42 42 38 42 36 35 37 42 41 42
++42 38 42 42 41 42 42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 55 39 37 47 44 42 47 39 42 42 41 42
++47 47 21 42 38 42 52 30 35 32 39 24 53 35 37 32 39 24 36 35 37 33 30 30
++52 30 35 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 52 30 35
++52 30 35 32 39 24 52 30 35 52 30 35 36 35 37 53 35 37 36 35 37 55 39 37
++55 39 37 47 47 21 47 44 42 55 39 37 55 39 37 55 39 37 60 49 42 51 49 42
++60 49 42 53 46 48 62 47 47 62 47 47 60 49 42 55 39 37 53 46 48 55 39 37
++47 44 42 55 39 37 42 41 42 53 35 37 32 39 24 52 30 35 33 30 32 33 30 30
++33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 26 24 32 33 30 32 26 30 28
++26 30 28 26 30 28 26 24 32 26 24 32 26 30 28 26 30 28 26 24 32 33 30 30
++26 24 32 26 30 28 26 30 28 26 30 28 33 30 30 33 30 32 33 30 32 31 35 35
++36 35 37 32 39 24 36 35 37 36 35 37 47 44 42 42 41 42 36 35 37 55 39 37
++42 41 42 36 35 37 42 41 42 47 44 42 36 35 37 53 35 37 36 35 37 42 38 42
++42 38 42 36 35 37 36 35 37 53 35 37 36 35 37 36 35 37 47 47 21 36 35 37
++52 30 35 33 30 30 33 30 30 33 30 32 33 30 30 26 24 32 33 30 30 26 24 32
++23 20 24 33 30 30 22 25 24 33 30 30 23 20 24 33 30 30 23 20 24 33 30 30
++33 30 30 26 30 28 33 30 30 23 20 24 23 20 24 33 30 30 34 30 15 34 30 15
++49 13 16 52 30 15 52 30 15 52 30 15 76 18 19 101 74 26 167 63 71 117 114 76
++122 49 24 117 114 76 168 102 88 157 148 53 163 117 123 177 171 115 163 117 123 177 171 115
++201 146 124 201 146 124 201 146 124 201 146 124 201 146 124 177 169 143 201 146 124 168 146 127
++168 146 127 168 102 88 168 102 88 117 114 76 168 102 88 117 114 76 120 63 71 117 112 45
++120 63 71 101 83 74 88 73 31 88 73 62 75 56 53 75 56 53 75 56 53 63 55 45
++75 56 53 55 39 37 52 30 15 26 12 13 13 4 7 13 4 7 13 4 7 13 4 7
++3 3 1 48 44 48 148 160 159 232 215 228 231 239 247 221 238 247 231 239 247 221 238 247
++208 221 247 150 168 183 77 91 115 42 60 86 60 63 87 111 122 142 194 199 226 235 238 247
++221 238 247 226 221 247 201 216 228 194 199 226 185 202 202 201 216 228 194 199 226 194 199 226
++185 202 202 185 202 202 185 202 202 188 180 202 166 176 200 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 166 156 164 166 156 164 146 151 137 168 146 127 177 169 143 177 169 143
++177 169 143 217 168 156 177 169 143 217 168 156 208 215 180 217 168 156 208 215 180 222 171 182
++214 214 134 222 171 182 214 214 134 222 171 182 214 214 134 217 168 156 217 168 156 222 171 182
++214 214 134 222 171 182 217 168 156 225 222 201 217 168 156 225 222 201 222 171 182 222 171 182
++177 169 143 99 93 84 55 39 37 55 55 48 138 126 108 225 222 201 251 251 247 240 251 247
++246 237 247 235 238 247 235 238 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247
++221 238 247 231 239 247 221 238 247 231 239 247 231 239 247 240 251 247 240 251 247 240 251 247
++240 251 247 251 251 247 240 251 247 240 251 247 235 238 247 231 239 247 231 239 247 221 238 247
++201 216 228 201 216 228 233 241 227 251 251 247 225 222 201 168 146 127 117 127 86 117 127 86
++157 148 53 117 114 76 117 114 76 117 112 45 117 114 76 117 112 45 98 106 55 98 106 55
++88 73 62 80 96 46 75 73 58 64 70 48 63 55 45 55 55 48 63 55 45 55 55 48
++59 55 55 59 55 55 55 55 48 59 55 55 63 55 51 65 55 54 65 55 54 65 55 54
++75 56 53 65 55 54 65 63 61 64 70 48 65 63 61 75 63 62 75 56 53 75 63 62
++65 63 61 75 63 62 65 63 61 75 56 53 65 63 61 63 55 51 65 55 54 65 55 54
++65 55 54 65 55 54 65 63 61 65 55 54 65 63 61 65 63 61 64 70 48 65 63 61
++65 63 61 65 63 61 65 63 61 65 55 54 65 63 61 65 63 61 63 55 51 63 55 51
++63 55 51 59 55 55 55 55 48 55 55 48 53 46 48 52 55 48 53 46 48 52 55 48
++53 46 48 52 55 48 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55
++65 57 61 65 63 61 65 57 61 65 63 61 75 63 62 65 63 61 75 63 62 65 63 61
++75 63 62 65 63 61 75 63 62 75 63 62 75 63 62 75 63 62 75 72 67 75 63 62
++75 72 67 75 72 67 75 59 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 55 54
++59 55 55 59 55 55 59 55 55 53 46 48 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 55 55 48 59 55 55 59 55 55 59 55 55 59 55 55 55 55 48
++55 55 48 62 47 47 55 55 48 62 47 47 53 46 48 55 55 48 62 47 47 62 47 47
++62 47 47 62 47 47 55 55 48 62 47 47 55 55 48 62 47 47 53 46 48 62 47 47
++53 46 48 53 46 48 53 46 48 47 44 42 47 44 42 47 44 42 42 38 42 47 39 42
++36 35 37 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 47 39 42 42 41 42 42 41 42
++42 41 42 42 41 42 47 44 42 47 44 42 51 49 42 51 49 42 55 55 48 55 55 48
++55 55 48 63 55 45 59 55 55 63 55 51 63 55 51 65 63 61 65 55 54 65 63 61
++65 55 54 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 55 54 65 63 61 65 63 61 65 63 61 65 55 54 65 63 61 65 63 61
++65 55 54 65 63 61 65 55 54 65 63 61 65 63 61 65 63 61 75 63 62 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 63 59 71 75 72 67 65 63 61
++59 69 70 75 72 67 59 69 70 75 72 67 59 69 70 75 72 67 75 64 82 75 81 76
++75 81 82 75 81 82 88 83 88 88 83 88 77 90 100 95 91 100 90 98 89 94 105 108
++95 91 100 94 105 108 94 105 108 112 96 108 95 119 107 112 123 108 95 108 128 111 119 127
++112 123 108 111 119 127 112 123 108 111 119 127 112 123 108 111 119 127 112 96 108 112 123 108
++94 105 108 112 123 108 111 119 127 94 105 108 112 96 108 95 119 107 112 96 108 94 105 108
++99 93 84 95 91 100 99 93 84 117 99 86 99 93 84 99 93 84 99 93 84 99 93 84
++88 83 88 101 83 74 88 83 74 88 66 70 88 73 62 88 73 62 88 73 62 88 73 62
++88 73 62 75 56 53 88 73 62 88 44 51 88 73 62 88 44 51 75 56 53 76 46 20
++75 56 53 76 46 20 88 44 51 63 55 45 76 46 20 88 44 51 76 46 20 75 56 53
++76 46 20 76 46 20 75 56 53 76 46 20 75 56 53 76 46 20 76 44 53 76 46 20
++76 44 53 76 46 20 76 46 20 59 36 42 76 46 20 76 44 53 76 46 20 76 44 53
++76 46 20 76 44 53 76 46 20 59 36 42 76 46 20 76 44 53 76 46 20 76 44 53
++88 44 51 75 56 53 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31
++88 73 31 88 44 51 88 73 31 88 73 62 101 74 26 88 44 51 101 74 26 88 44 51
++101 74 26 88 73 62 101 74 26 88 44 51 88 73 31 88 73 31 88 73 31 76 46 20
++88 73 31 76 46 20 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51
++88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51
++88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 73 31
++88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 76 46 20 88 44 51 76 46 20
++76 46 20 75 56 53 76 46 20 76 46 20 88 44 51 76 46 20 76 46 20 75 56 53
++76 46 20 76 46 20 63 55 45 76 46 20 88 44 51 76 46 20 88 73 31 76 46 20
++
++17 12 17 22 24 13 23 18 22 23 18 22 22 25 24 23 20 24 22 25 24 23 20 24
++33 30 30 22 25 24 33 30 30 23 20 24 26 30 28 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 23 18 22 14 16 17 23 18 22 14 16 17 23 18 22 14 16 17
++17 12 17 23 18 22 22 24 13 22 25 24 26 25 15 23 20 24 22 25 24 22 24 13
++23 18 22 26 25 15 26 25 15 22 25 24 22 25 24 26 25 15 23 18 22 23 18 22
++23 18 22 12 18 20 23 18 22 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17
++14 16 17 23 18 22 23 18 22 22 24 13 23 18 22 26 25 15 23 20 24 23 18 22
++33 30 30 26 25 15 33 30 30 28 13 18 33 30 30 49 13 16 33 30 30 34 30 15
++33 30 30 33 30 30 34 30 15 33 30 30 28 13 18 33 30 30 23 20 24 34 30 15
++23 20 24 26 25 15 23 18 22 23 18 22 14 16 17 23 18 22 14 16 17 17 12 17
++17 12 17 14 16 17 17 12 17 12 18 20 17 12 17 12 18 20 17 12 17 14 16 17
++12 18 20 15 22 17 23 18 22 23 20 24 23 18 22 23 20 24 26 25 15 26 25 15
++26 30 28 34 30 15 33 30 30 34 30 15 33 30 30 29 35 19 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 22 25 24 26 24 32
++22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 26 24 32 26 24 32
++26 24 32 22 25 24 26 24 32 33 30 30 26 24 32 33 30 30 33 30 30 30 30 34
++33 30 32 33 30 36 36 35 37 36 35 37 42 41 42 36 35 37 42 38 42 42 41 42
++36 35 37 42 41 42 42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 55 39 37 47 44 42 47 44 42 42 41 42
++42 41 42 53 35 37 36 35 37 52 30 35 36 35 37 36 35 37 36 35 37 52 30 35
++33 30 30 52 30 35 34 30 15 52 30 35 33 30 30 33 30 30 52 30 35 33 30 30
++36 35 37 52 30 35 33 30 30 33 30 32 55 39 18 36 35 37 53 35 37 55 39 37
++47 44 42 55 39 37 51 49 42 55 39 37 53 46 48 60 49 42 51 49 42 60 49 42
++62 47 47 62 47 47 62 47 47 62 47 47 53 46 48 60 49 42 53 46 48 60 49 42
++47 44 42 55 39 37 55 39 37 42 41 42 53 35 37 36 35 37 33 30 30 36 35 37
++33 30 32 36 35 37 33 30 32 33 30 32 33 30 32 33 30 32 33 30 30 26 24 32
++26 30 28 26 24 32 26 24 32 30 30 34 26 24 32 30 30 34 26 30 28 26 30 28
++26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 33 30 30 31 35 35 33 30 32
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 41 42 47 44 42 33 39 38
++55 39 37 36 35 37 47 44 42 47 39 42 42 41 42 42 41 42 36 35 37 47 39 42
++36 35 37 53 35 37 32 39 24 36 35 37 36 35 37 52 30 35 36 35 37 36 35 37
++33 30 30 33 30 32 33 30 30 30 30 34 33 30 30 33 30 30 22 25 24 33 30 30
++33 30 30 26 30 28 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30 23 20 24
++33 30 30 23 20 24 22 25 24 26 24 32 26 25 15 22 25 24 22 25 24 26 24 32
++23 20 24 33 30 30 49 13 16 52 30 15 49 13 16 49 13 16 122 49 24 117 112 45
++168 102 88 122 49 24 117 112 45 117 114 76 168 102 88 168 102 88 168 146 127 168 146 127
++201 146 124 201 146 124 168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 177 171 115
++168 102 88 138 126 108 117 114 76 168 102 88 117 114 76 117 99 86 117 99 86 120 63 71
++101 74 26 88 73 62 75 56 53 75 56 53 88 44 51 75 73 36 75 56 53 60 49 42
++55 39 18 49 13 16 23 10 10 13 4 7 13 4 7 13 4 7 13 4 7 3 3 1
++3 3 1 59 57 61 150 171 159 226 221 247 231 239 247 231 239 247 235 238 247 221 238 247
++194 199 226 111 122 142 60 63 87 42 60 86 77 91 115 150 168 183 208 221 247 235 238 247
++221 238 247 226 221 247 201 216 228 201 216 228 194 199 226 201 216 228 185 202 202 194 199 226
++194 199 226 185 202 202 188 180 202 166 176 200 166 176 200 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 185 202 202 189 165 168 166 156 164 146 151 137 168 146 127 177 169 143
++197 171 123 189 165 168 214 214 134 217 168 156 217 168 156 208 215 180 217 168 156 217 168 156
++222 171 182 217 168 156 208 215 180 217 168 156 217 168 156 214 214 134 222 171 182 214 214 134
++222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 217 168 156 225 222 201 208 215 180
++189 165 168 138 126 108 75 63 62 36 35 37 88 83 74 166 174 181 240 251 247 251 251 247
++251 251 247 240 251 247 240 251 247 235 238 247 231 239 247 235 238 247 231 239 247 231 239 247
++231 239 247 221 238 247 221 238 247 221 238 247 221 238 247 231 239 247 231 239 247 235 238 247
++235 238 247 240 251 247 235 238 247 235 238 247 231 239 247 231 239 247 231 239 247 226 221 247
++225 222 201 201 216 228 235 238 247 251 251 247 225 222 201 177 169 143 146 150 115 157 148 53
++146 150 115 157 148 53 157 148 53 117 127 86 157 148 53 117 114 76 117 114 76 117 114 76
++117 114 76 98 106 55 88 83 74 88 73 62 75 73 58 63 55 51 55 55 48 63 55 51
++59 55 55 55 55 48 59 55 55 63 55 51 59 55 55 65 55 54 65 55 54 65 63 61
++65 55 54 65 63 61 65 55 54 65 63 61 75 63 62 65 63 61 65 63 61 75 63 62
++75 63 62 65 63 61 75 56 53 65 63 61 65 55 54 65 55 54 65 55 54 65 55 54
++65 55 54 65 55 54 65 55 54 65 63 61 65 55 54 65 55 54 65 63 61 65 55 54
++65 63 61 65 63 61 75 63 62 65 63 61 65 63 61 65 55 54 65 63 61 65 63 61
++59 55 55 63 55 51 55 55 48 55 55 48 59 55 55 52 55 48 52 55 48 48 50 48
++48 50 48 48 50 48 59 55 55 53 46 48 55 55 48 57 43 51 59 55 55 59 55 55
++59 55 55 65 55 54 65 57 61 65 57 61 65 63 61 75 63 62 75 63 62 65 63 61
++65 63 61 75 72 67 75 63 62 65 63 61 75 63 62 75 63 62 75 63 62 75 72 67
++75 59 67 75 72 67 75 63 62 75 72 67 75 63 62 75 59 67 75 72 67 75 63 62
++75 72 67 75 72 67 75 63 62 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++59 57 61 59 55 55 59 55 55 48 50 48 59 55 55 53 46 48 59 55 55 59 55 55
++59 55 55 59 55 55 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 55 55 48
++63 55 51 55 55 48 55 55 48 62 47 47 55 55 48 62 47 47 62 47 47 63 55 51
++62 47 47 55 55 48 62 47 47 62 47 47 53 46 48 60 49 42 60 49 42 53 46 48
++62 47 47 53 46 48 47 44 42 55 39 37 47 44 42 47 44 42 47 39 42 47 39 42
++36 35 37 42 38 42 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37 36 35 37
++33 30 30 36 35 37 36 35 37 36 35 37 42 41 42 36 35 37 47 39 42 32 39 24
++42 41 42 42 41 42 42 47 42 47 44 42 51 49 42 51 49 42 53 46 48 53 46 48
++62 47 47 55 55 48 55 55 48 55 55 48 59 55 55 63 55 51 65 63 61 63 55 51
++65 63 61 59 55 55 65 55 54 65 57 61 65 57 61 65 63 61 65 63 61 63 55 51
++65 63 61 65 55 54 65 63 61 65 55 54 65 55 54 65 63 61 65 63 61 65 55 54
++65 63 61 65 55 54 65 63 61 75 56 53 65 63 61 75 63 62 65 63 61 75 63 62
++75 63 62 65 63 61 65 63 61 65 63 61 75 72 67 75 72 67 65 63 61 75 72 67
++59 69 70 75 72 67 59 69 70 75 72 67 75 64 82 75 81 76 75 81 76 75 81 82
++75 81 82 75 81 90 75 81 90 78 98 90 95 91 100 90 98 89 95 91 100 94 105 108
++94 105 108 112 96 108 94 105 108 112 123 108 112 96 108 111 119 127 112 123 108 111 119 127
++112 96 108 111 119 127 112 123 108 111 119 127 112 96 108 112 123 108 111 119 127 112 123 108
++111 119 127 112 96 108 112 123 108 112 96 108 112 123 108 94 105 108 94 105 108 112 96 108
++94 105 108 112 96 108 99 93 84 95 91 100 99 93 84 99 93 84 99 93 84 88 83 88
++101 83 74 88 83 74 88 83 74 88 73 62 88 83 74 88 73 62 88 66 70 88 73 62
++88 73 62 88 73 62 88 44 51 88 73 62 88 44 51 88 73 31 88 44 51 75 73 36
++88 44 51 75 56 53 76 46 20 88 44 51 75 56 53 76 46 20 75 56 53 76 46 20
++88 44 51 75 56 53 76 46 20 75 56 53 76 46 20 75 56 53 76 46 20 75 56 53
++76 46 20 76 44 53 76 44 53 76 46 20 76 44 53 76 44 53 76 46 20 59 36 42
++76 44 53 76 46 20 76 44 53 76 44 53 76 44 53 76 44 53 76 44 53 75 56 53
++76 44 53 88 73 31 88 44 51 88 73 31 88 44 51 88 73 62 88 73 31 88 44 51
++101 74 26 88 73 62 88 73 31 88 44 51 88 73 31 101 60 73 101 74 26 88 73 62
++88 73 62 101 74 26 88 73 62 101 74 26 88 44 51 88 73 31 88 44 51 88 73 31
++88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 73 31 88 44 51
++88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 73 31 88 44 51 88 73 31
++88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 101 74 26
++88 44 51 88 73 31 88 73 31 88 73 31 88 44 51 76 46 20 88 73 31 76 46 20
++88 44 51 76 46 20 88 44 51 88 73 31 76 46 20 75 73 36 76 46 20 76 46 20
++88 44 51 76 46 20 88 44 51 76 46 20 76 46 20 75 73 36 76 46 20 88 44 51
++
++14 16 17 23 18 22 23 18 22 22 25 24 23 20 24 33 30 30 22 25 24 33 30 30
++23 20 24 33 30 30 22 25 24 33 30 30 23 20 24 33 30 30 23 20 24 22 25 24
++22 25 24 23 20 24 23 20 24 23 18 22 23 18 22 22 24 13 23 18 22 14 16 17
++23 18 22 23 18 22 23 18 22 22 25 24 23 20 24 26 25 15 23 20 24 22 25 24
++26 25 15 23 20 24 22 25 24 23 20 24 26 25 15 23 20 24 23 18 22 15 22 17
++23 18 22 23 18 22 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17 17 12 17
++14 16 17 23 18 22 15 22 17 22 24 13 23 18 22 26 25 15 23 20 24 33 30 30
++26 25 15 33 30 30 26 25 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++34 30 15 33 30 30 34 30 15 33 30 30 33 30 30 34 30 15 23 20 24 34 30 15
++23 18 22 28 13 18 23 18 22 22 24 13 17 12 17 23 18 22 14 16 17 17 12 17
++14 16 17 14 16 17 17 12 17 17 12 17 12 18 20 17 12 17 17 12 17 12 18 20
++23 18 22 23 20 24 23 20 24 23 18 22 23 18 22 22 25 24 22 25 24 33 30 30
++34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 34 30 15
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 23 20 24 33 30 30 22 25 24
++33 30 30 26 30 28 23 20 24 26 24 32 26 30 28 26 24 32 26 30 28 23 20 24
++26 30 28 26 24 32 33 30 30 33 30 30 33 30 32 33 30 32 30 30 34 33 30 32
++33 30 36 36 35 37 36 35 37 36 35 37 42 38 42 42 41 42 42 38 42 36 35 37
++47 44 42 42 41 42 42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 51 49 42 55 39 37 47 44 42 47 44 42 47 39 42 42 41 42
++47 47 21 42 38 42 53 35 37 47 47 21 42 38 42 47 47 21 53 35 37 36 35 37
++47 47 21 36 35 37 52 30 35 33 30 30 53 35 37 52 30 35 36 35 37 53 35 37
++52 30 35 32 39 24 53 35 37 36 35 37 53 35 37 53 35 37 53 35 37 47 44 42
++55 39 37 51 49 42 55 39 37 53 46 48 60 49 42 53 46 48 60 49 42 60 49 42
++62 47 47 62 47 47 62 47 47 62 47 47 60 49 42 60 49 42 53 46 48 55 39 37
++55 39 37 47 39 42 42 41 42 47 47 21 36 35 37 52 30 35 33 30 30 52 30 35
++36 35 37 33 30 32 36 35 37 33 30 32 33 30 32 33 30 32 26 24 32 33 30 30
++26 24 32 33 30 30 30 30 34 30 30 34 26 30 28 30 30 34 33 30 30 26 24 32
++33 30 32 26 30 28 26 24 32 26 30 28 26 30 28 33 30 30 33 30 30 36 35 37
++36 35 37 36 35 37 32 39 24 42 41 42 36 35 37 47 44 42 36 35 37 47 44 42
++47 47 21 42 41 42 47 39 42 47 47 21 42 38 42 36 35 37 55 39 37 36 35 37
++47 44 42 36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 30 30
++36 35 37 36 35 37 33 30 30 33 30 32 33 30 32 33 30 30 26 30 28 26 24 32
++22 25 24 33 30 30 26 24 32 33 30 30 26 25 15 26 24 32 23 20 24 33 30 30
++23 20 24 33 30 30 23 20 24 33 30 30 26 24 32 22 25 24 26 25 15 26 30 28
++33 30 30 49 13 16 33 30 30 49 13 16 49 13 16 49 13 16 49 13 16 88 30 18
++101 74 26 120 63 71 122 49 24 117 112 45 117 99 86 168 102 88 138 126 108 201 146 124
++168 146 127 201 146 124 201 146 124 168 146 127 168 146 127 163 117 123 168 102 88 168 102 88
++138 126 108 168 102 88 117 114 76 117 99 86 168 102 88 120 63 71 101 74 26 88 73 62
++88 73 62 88 44 51 76 46 20 63 55 45 60 49 42 60 49 42 53 35 17 52 30 15
++26 12 13 13 4 7 13 4 7 13 4 7 13 4 7 23 10 10 13 4 7 13 4 7
++3 3 1 75 64 82 188 180 202 221 238 247 231 239 247 231 239 247 221 238 247 194 199 226
++131 144 168 77 91 115 42 60 86 61 78 101 131 144 168 194 199 226 226 221 247 221 238 247
++226 221 247 208 221 247 201 216 228 201 216 228 194 199 226 194 199 226 201 216 228 194 199 226
++185 202 202 188 180 202 166 176 200 185 202 202 166 174 181 166 176 200 166 176 200 166 176 200
++185 202 202 185 202 202 201 216 228 185 202 202 189 165 168 177 169 143 150 144 154 168 146 127
++177 169 143 177 169 143 189 165 168 217 168 156 214 214 134 217 168 156 217 168 156 208 215 180
++214 214 134 222 171 182 214 214 134 222 171 182 217 168 156 222 171 182 214 214 134 222 171 182
++214 214 134 222 171 182 214 214 134 222 171 182 222 171 182 214 214 134 222 171 182 225 222 201
++222 171 182 168 146 127 99 93 84 53 35 37 60 49 42 121 143 132 225 222 201 251 251 247
++251 251 247 251 251 247 251 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247
++231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 221 238 247 231 239 247 221 238 247
++231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 240 251 247 221 238 247
++201 216 228 232 215 228 235 238 247 251 251 247 240 251 247 208 215 180 177 171 115 177 171 115
++146 150 115 157 148 53 146 150 115 157 148 53 146 150 115 157 148 53 138 126 108 117 127 86
++117 114 76 117 114 76 117 114 76 101 83 74 81 96 56 88 73 62 64 70 48 63 55 51
++63 55 51 63 55 51 59 55 55 63 55 51 59 55 55 64 70 48 65 55 54 75 56 53
++65 63 61 75 63 62 65 63 61 75 63 62 65 63 61 75 63 62 75 63 62 65 63 61
++75 63 62 75 63 62 65 63 61 75 63 62 65 55 54 65 63 61 65 55 54 65 63 61
++65 55 54 65 63 61 65 55 54 65 63 61 75 56 53 65 63 61 65 63 61 65 55 54
++65 63 61 75 63 62 65 63 61 65 55 54 65 63 61 64 70 48 65 55 54 63 55 51
++63 55 51 63 55 51 55 55 48 55 55 48 53 46 48 52 55 48 53 46 48 48 50 48
++53 46 48 48 50 48 48 50 48 53 46 48 53 46 48 53 46 48 55 55 48 59 55 55
++63 55 51 59 55 55 65 57 61 65 55 54 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62
++75 63 62 75 63 62 75 72 67 75 63 62 75 72 67 75 72 67 75 63 62 75 72 67
++75 72 67 75 63 62 65 63 61 75 63 62 65 63 61 65 63 61 65 57 61 65 55 54
++59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 63 55 51 59 55 55 59 55 55 59 55 55 63 55 51 63 55 51
++63 55 51 63 55 51 63 55 51 62 47 47 55 55 48 63 55 51 63 55 51 63 55 51
++62 47 47 62 47 47 62 47 47 51 49 42 60 49 42 53 46 48 55 55 48 53 46 48
++53 46 48 53 46 48 51 49 42 47 44 42 47 44 42 47 39 42 42 41 42 36 35 37
++36 35 37 36 35 37 33 30 30 36 35 37 33 30 30 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 42 41 42 42 41 42 42 41 42
++47 44 42 47 44 42 47 44 42 48 44 48 53 46 48 53 46 48 55 55 48 55 55 48
++59 55 55 63 55 51 63 55 51 63 55 51 63 55 51 59 55 55 65 63 61 65 55 54
++63 55 51 65 63 61 63 55 51 65 63 61 65 57 61 65 57 61 65 55 54 63 55 51
++59 55 55 65 63 61 63 55 51 65 63 61 65 63 61 65 55 54 65 63 61 65 55 54
++65 63 61 65 55 54 65 63 61 65 63 61 75 73 58 75 63 62 75 72 67 75 72 67
++75 63 62 75 72 67 75 72 67 75 72 67 59 69 70 75 72 67 75 64 82 59 69 70
++75 72 67 75 72 67 75 81 76 75 64 82 75 81 76 75 81 82 75 81 82 88 83 88
++88 83 88 88 83 88 90 98 89 88 83 88 95 91 100 94 105 108 94 105 108 94 105 108
++94 105 108 112 123 108 111 119 127 111 119 127 111 119 127 112 123 108 111 119 127 111 119 127
++112 123 108 111 119 127 111 119 127 112 123 108 111 119 127 111 119 127 112 123 108 111 119 127
++112 123 108 112 123 108 95 108 128 112 123 108 94 105 108 112 96 108 112 96 108 98 113 84
++95 91 100 99 93 84 90 98 89 99 93 84 99 93 84 99 93 84 88 83 88 101 83 74
++88 83 74 88 83 74 88 83 74 88 66 70 88 73 62 88 73 62 88 73 62 88 73 62
++88 44 51 88 73 62 75 56 53 88 73 31 88 44 51 75 56 53 88 44 51 75 56 53
++76 46 20 88 44 51 75 73 36 88 44 51 76 46 20 75 56 53 88 73 31 88 44 51
++75 73 36 88 44 51 88 73 31 88 44 51 75 56 53 76 46 20 88 44 51 63 55 45
++88 44 51 76 46 20 76 44 53 76 46 20 76 44 53 76 46 20 76 44 53 88 44 51
++76 46 20 76 44 53 76 44 53 76 46 20 76 44 53 76 46 20 88 44 51 76 46 20
++88 44 51 75 56 53 88 44 51 88 73 31 88 73 62 101 74 26 88 44 51 88 73 62
++88 44 51 101 74 26 88 44 51 101 74 26 88 73 62 101 74 26 101 60 73 101 74 26
++101 74 26 101 60 73 101 74 26 88 44 51 101 74 26 101 74 26 88 44 51 101 74 26
++88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51
++101 74 26 88 44 51 88 73 31 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31
++88 44 51 88 73 31 75 56 53 88 73 31 88 44 51 101 74 26 88 44 51 88 73 31
++88 73 31 88 44 51 101 74 26 88 44 51 88 73 31 88 44 51 76 46 20 88 44 51
++76 46 20 75 56 53 76 46 20 88 44 51 76 46 20 76 46 20 75 56 53 76 46 20
++76 46 20 75 73 36 76 46 20 75 56 53 76 46 20 88 44 51 76 46 20 88 73 31
++
++14 16 17 23 18 22 22 25 24 23 20 24 33 30 30 23 20 24 33 30 30 26 30 28
++33 30 30 26 24 32 33 30 30 33 30 30 26 30 28 33 30 30 22 25 24 33 30 30
++26 24 32 22 25 24 23 20 24 22 25 24 23 18 22 23 20 24 23 18 22 23 18 22
++23 18 22 22 24 13 23 20 24 26 25 15 22 25 24 22 25 24 22 25 24 26 25 15
++22 25 24 22 25 24 26 25 15 26 25 15 22 25 24 26 25 15 23 18 22 23 18 22
++17 12 17 12 18 20 23 18 22 14 16 17 17 12 17 14 16 17 17 12 17 17 12 17
++14 16 17 17 12 17 14 16 17 23 18 22 26 25 15 23 20 24 34 30 15 23 20 24
++33 30 30 26 25 15 33 30 30 34 30 15 33 30 30 34 30 15 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 32 52 30 15 33 30 30 33 30 30 26 25 15 33 30 30
++23 20 24 23 20 24 26 25 15 23 18 22 23 18 22 23 18 22 14 16 17 17 12 17
++23 18 22 12 18 20 17 12 17 12 18 20 17 12 17 12 18 20 17 12 17 23 18 22
++14 16 17 23 18 22 23 20 24 22 25 24 23 20 24 33 30 30 22 25 24 34 30 15
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 26 25 15 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30
++22 25 24 33 30 30 33 30 32 33 30 32 33 30 32 33 30 36 33 30 32 33 30 36
++36 35 37 36 35 37 42 38 42 42 38 42 42 38 42 42 41 42 42 38 42 42 41 42
++47 39 42 47 39 42 47 39 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 39 42
++42 41 42 53 35 37 42 38 42 42 38 42 53 35 37 47 39 42 36 35 37 47 39 42
++47 39 42 52 30 35 36 35 37 53 35 37 32 39 24 53 35 37 36 35 37 53 35 37
++42 38 42 53 35 37 36 35 37 53 35 37 53 35 37 47 39 42 47 39 42 55 39 37
++55 39 37 60 49 42 55 39 37 60 49 42 62 47 47 60 49 42 62 47 47 60 49 42
++62 47 47 60 49 42 62 47 47 62 47 47 62 47 47 60 49 42 62 47 47 60 49 42
++47 44 42 55 39 37 53 35 37 53 35 37 47 39 42 47 47 21 36 35 37 52 30 35
++33 30 30 36 35 37 33 30 30 52 30 35 33 30 32 33 30 32 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 26 24 32 33 30 30 30 30 34 33 30 32
++33 30 32 26 24 32 33 30 30 26 30 28 33 30 30 33 30 30 31 35 35 36 35 37
++36 35 37 36 35 37 42 41 42 36 35 37 42 41 42 42 41 42 47 44 42 42 41 42
++42 41 42 47 39 42 47 39 42 47 39 42 47 39 42 47 44 42 36 35 37 53 35 37
++32 39 24 36 35 37 36 35 37 36 35 37 47 47 21 36 35 37 53 35 37 32 39 24
++52 30 35 36 35 37 33 30 32 33 30 32 33 30 30 26 30 28 33 30 30 26 30 28
++33 30 30 33 30 30 33 30 30 26 24 32 33 30 30 33 30 30 33 30 30 26 30 28
++26 30 28 23 20 24 33 30 30 26 24 32 26 30 28 33 30 30 26 24 32 23 20 24
++26 24 32 26 24 32 26 24 32 34 30 15 34 30 15 49 13 16 49 13 16 49 13 16
++76 46 20 101 74 26 120 63 71 101 74 26 122 49 24 117 114 76 168 102 88 168 102 88
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 102 88 146 150 115 138 126 108
++168 102 88 117 114 76 168 102 88 117 99 86 117 99 86 101 83 74 88 73 62 88 44 51
++63 55 45 63 55 45 63 55 45 55 39 37 53 35 17 28 13 18 23 10 10 13 4 7
++3 3 1 13 4 7 13 4 7 13 4 7 13 4 7 13 4 7 3 3 1 3 3 1
++14 16 17 88 83 88 185 202 202 235 238 247 235 238 247 221 238 247 194 199 226 131 144 168
++77 91 115 61 78 101 77 91 115 111 122 142 188 180 202 208 221 247 231 239 247 208 221 247
++221 238 247 208 221 247 232 215 228 201 216 228 201 216 228 185 202 202 194 199 226 185 202 202
++194 199 226 185 202 202 185 202 202 188 180 202 166 176 200 185 202 202 188 180 202 185 202 202
++185 202 202 201 216 228 201 216 228 232 215 228 194 199 226 166 174 181 166 180 164 150 144 154
++177 169 143 177 169 143 177 169 143 177 169 143 189 165 168 189 165 168 214 214 134 217 168 156
++222 171 182 222 171 182 208 215 180 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182
++222 171 182 214 214 134 222 171 182 225 222 201 222 171 182 214 214 134 222 171 182 217 168 156
++225 222 201 177 169 143 138 102 108 60 49 42 47 47 21 112 96 108 185 202 202 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 240 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 240 251 247 240 251 247 235 238 247 235 238 247 233 241 227
++231 239 247 231 239 247 235 238 247 235 238 247 240 251 247 240 251 247 251 251 247 235 238 247
++225 222 201 232 215 228 251 251 247 251 251 247 251 251 247 233 241 227 177 169 143 177 171 115
++177 171 115 177 171 115 157 148 53 177 171 115 157 148 53 146 150 115 157 148 53 157 148 53
++157 148 53 157 148 53 117 114 76 117 112 45 101 83 74 98 106 55 75 73 58 75 73 58
++64 70 48 63 55 51 64 70 48 63 55 51 65 63 61 65 55 54 65 63 61 65 63 61
++75 56 53 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 65 63 61 75 63 62
++75 63 62 65 63 61 75 63 62 75 63 62 65 63 61 75 56 53 65 63 61 65 55 54
++65 55 54 65 63 61 65 55 54 65 63 61 65 55 54 65 63 61 65 63 61 75 63 62
++65 63 61 65 63 61 65 63 61 65 55 54 65 63 61 65 63 61 65 55 54 65 63 61
++65 55 54 63 55 51 55 55 48 55 55 48 55 55 48 59 55 55 48 50 48 48 50 48
++48 50 48 53 46 48 48 50 48 53 46 48 52 55 48 53 46 48 53 46 48 53 46 48
++59 55 55 59 55 55 65 55 54 65 63 61 65 55 54 75 56 53 65 55 54 65 55 54
++75 63 62 65 63 61 75 63 62 65 63 61 65 63 61 75 63 62 65 63 61 75 63 62
++65 63 61 75 63 62 75 63 62 75 63 62 75 63 62 75 72 67 75 72 67 75 72 67
++75 59 67 75 72 67 75 72 67 75 72 67 75 63 62 65 63 61 65 57 61 65 63 61
++59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 65 55 54 65 55 54 63 55 51 63 55 51
++59 55 55 63 55 51 59 55 55 62 47 47 62 47 47 63 55 51 62 47 47 62 47 47
++55 55 48 62 47 47 55 55 48 62 47 47 60 49 42 60 49 42 53 46 48 60 49 42
++53 46 48 53 46 48 47 44 42 42 41 42 55 39 37 42 41 42 53 35 37 36 35 37
++33 30 30 33 30 30 33 30 32 33 30 30 36 35 37 33 30 30 33 30 30 36 35 37
++36 35 37 36 35 37 42 38 42 36 35 37 42 41 42 47 44 42 42 41 42 42 41 42
++47 44 42 47 44 42 48 44 48 51 49 42 53 46 48 53 46 48 55 55 48 62 47 47
++55 55 48 59 55 55 63 55 51 63 55 51 65 55 54 65 55 54 63 55 51 65 63 61
++65 55 54 63 55 51 65 63 61 65 55 54 75 56 53 65 55 54 65 55 54 65 55 54
++65 55 54 63 55 51 65 63 61 65 55 54 63 55 51 65 63 61 65 55 54 65 63 61
++65 55 54 65 63 61 65 63 61 75 63 62 65 63 61 75 72 67 75 59 67 75 72 67
++75 72 67 75 64 82 75 72 67 75 72 67 75 64 82 75 72 67 75 72 67 75 72 67
++75 72 67 75 64 82 75 81 82 75 81 82 75 81 82 75 81 90 88 83 88 88 83 88
++77 90 100 90 98 89 77 90 100 95 91 100 94 105 108 94 105 108 94 105 108 94 105 108
++112 96 108 95 108 128 112 123 108 94 105 108 111 119 127 112 96 108 111 119 127 111 119 127
++111 119 127 112 123 108 111 119 127 111 119 127 112 123 108 111 119 127 111 119 127 112 123 108
++111 119 127 112 96 108 112 123 108 112 96 108 112 123 108 112 96 108 95 119 107 112 96 108
++94 105 108 95 91 100 117 99 86 95 91 100 99 93 84 99 93 84 101 83 74 88 83 74
++101 83 74 101 83 74 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 44 51
++88 73 62 88 44 51 88 73 62 88 44 51 88 44 51 88 73 31 88 44 51 88 73 31
++75 56 53 76 46 20 88 44 51 76 46 20 88 73 31 88 44 51 88 73 31 88 44 51
++76 46 20 88 44 51 76 46 20 88 44 51 88 73 31 88 44 51 76 46 20 88 44 51
++76 46 20 88 44 51 76 46 20 75 56 53 76 46 20 88 44 51 88 44 51 76 46 20
++76 44 53 76 46 20 76 46 20 88 44 51 76 46 20 75 56 53 88 44 51 75 56 53
++88 44 51 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 101 60 73 101 74 26
++101 74 26 101 60 73 101 74 26 88 73 62 101 74 26 120 63 71 101 74 26 120 63 71
++101 74 26 88 73 62 101 74 26 101 74 26 101 60 73 101 74 26 101 74 26 88 44 51
++101 74 26 101 74 26 88 44 51 101 74 26 88 73 31 101 74 26 88 44 51 88 73 31
++101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 88 73 62 101 74 26 88 44 51
++88 73 31 88 73 31 102 33 26 88 73 31 88 44 51 101 74 26 88 44 51 101 74 26
++88 44 51 101 74 26 88 73 31 102 33 26 88 73 31 102 33 26 88 73 31 76 46 20
++88 73 31 88 44 51 76 46 20 88 73 31 88 44 51 88 73 31 76 46 20 88 73 31
++76 46 20 88 44 51 76 46 20 76 46 20 76 46 20 88 73 31 88 44 51 88 73 31
++
++23 18 22 23 18 22 23 18 22 22 25 24 22 25 24 33 30 30 26 30 28 26 24 32
++33 30 30 33 30 30 33 30 30 26 24 32 26 30 28 22 25 24 33 30 30 23 20 24
++26 30 28 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 23 18 22 23 18 22
++15 22 17 23 18 22 22 24 13 23 20 24 22 25 24 22 25 24 33 30 30 22 25 24
++34 30 15 22 25 24 26 30 28 26 25 15 22 25 24 26 25 15 23 18 22 15 22 17
++23 18 22 23 18 22 12 18 30 17 12 17 17 12 17 14 16 17 15 17 7 17 12 17
++17 12 17 15 17 7 22 24 13 23 18 22 23 20 24 23 20 24 33 30 30 28 13 18
++33 30 30 33 30 30 26 25 15 33 30 30 33 30 30 33 30 30 33 30 30 52 30 15
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 28 13 18
++26 30 28 26 25 15 23 18 22 23 18 22 22 24 13 17 12 17 23 18 22 14 16 17
++23 18 22 17 12 17 12 18 20 17 12 17 17 12 17 17 12 17 23 18 22 12 18 20
++23 18 22 23 20 24 23 20 24 23 20 24 23 20 24 33 30 30 34 30 15 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 53 35 17 33 30 30 33 30 30 52 30 35
++33 30 30 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 22 25 24 33 30 30
++26 30 28 33 30 30 33 30 32 33 30 32 33 30 36 33 30 36 33 30 36 36 35 37
++36 35 37 36 35 37 37 35 43 42 41 42 42 41 42 42 41 42 42 41 42 47 39 42
++47 44 42 42 41 42 47 39 42 47 39 42 47 39 42 47 39 42 47 44 42 47 44 42
++47 39 42 47 44 42 47 39 42 47 44 42 47 39 42 47 44 42 47 47 21 42 38 42
++47 39 42 47 47 21 47 39 42 55 39 37 36 35 37 47 47 21 47 39 42 53 35 37
++36 35 37 47 47 21 42 38 42 36 35 37 53 35 37 36 35 37 55 39 37 47 39 42
++53 35 37 36 35 37 55 39 37 53 35 37 36 35 37 53 35 37 55 39 37 55 39 37
++51 49 42 59 36 42 60 49 42 57 43 51 62 47 47 62 47 47 60 49 42 62 47 47
++60 49 42 62 47 47 62 47 47 62 47 47 62 47 47 62 47 47 60 49 42 53 46 48
++55 39 37 51 49 42 55 39 37 47 44 42 53 35 37 42 38 42 53 35 37 32 39 24
++36 35 37 52 30 35 33 30 30 36 35 37 33 30 32 52 30 35 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 32 33 30 30 33 30 32 30 30 34 33 30 30 30 30 34
++33 30 32 33 30 32 33 30 32 33 30 30 30 30 34 33 30 32 36 35 37 36 35 37
++42 38 42 42 41 42 32 39 24 42 41 42 42 41 42 42 41 42 42 41 42 47 44 42
++47 47 21 42 38 42 47 44 42 47 39 42 47 39 42 47 39 42 36 35 37 42 41 42
++36 35 37 53 35 37 36 35 37 47 39 42 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 33 30 30 33 30 32 33 30 32 33 30 30 26 30 28 34 30 15
++33 30 30 26 30 28 33 30 30 26 30 28 33 30 30 26 24 32 26 30 28 33 30 30
++26 30 28 33 30 30 23 20 24 33 30 30 26 24 32 26 24 32 26 30 28 33 30 30
++30 30 34 26 24 32 26 24 32 28 13 18 28 13 18 34 30 15 49 13 16 49 13 16
++49 13 16 76 46 20 101 74 26 122 49 24 88 73 31 120 63 71 117 112 45 168 102 88
++168 102 88 168 102 88 168 102 88 168 102 88 168 102 88 138 126 108 168 102 88 168 102 88
++117 112 45 117 99 86 120 63 71 117 112 45 101 60 73 88 73 31 75 56 53 76 46 20
++60 49 42 55 39 37 53 35 17 26 25 15 23 10 10 13 4 7 3 3 1 13 4 7
++3 3 1 13 4 7 3 3 1 13 4 7 13 4 7 13 4 7 13 4 7 3 3 1
++33 30 30 111 119 127 201 216 228 235 238 247 194 199 226 166 176 200 111 122 142 77 91 115
++61 78 101 77 91 115 131 144 168 166 176 200 221 238 247 221 238 247 221 238 247 208 221 247
++208 221 247 226 221 247 208 221 247 201 216 228 194 199 226 194 199 226 194 199 226 194 199 226
++194 199 226 194 199 226 194 199 226 185 202 202 194 199 226 185 202 202 194 199 226 194 199 226
++194 199 226 201 216 228 201 216 228 201 216 228 225 222 201 194 199 226 189 165 168 166 180 164
++177 169 143 177 169 143 177 169 143 217 168 156 177 169 143 217 168 156 217 168 156 208 215 180
++217 168 156 214 214 134 222 171 182 214 214 134 222 171 182 222 171 182 214 214 134 222 171 182
++214 214 134 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 225 222 201 217 168 156
++225 222 201 222 171 182 168 146 127 75 72 67 33 30 30 88 83 74 166 180 164 246 237 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 246 237 247 240 251 247 240 251 247
++251 251 247 240 251 247 251 251 247 251 251 247 251 251 247 240 251 247 240 251 247 240 251 247
++240 251 247 231 239 247 235 238 247 240 251 247 240 251 247 251 251 247 251 251 247 235 238 247
++232 215 228 221 238 247 233 241 227 251 251 247 251 251 247 233 241 227 208 215 180 197 171 123
++177 171 115 219 175 47 177 171 115 177 171 115 177 171 115 157 148 53 177 171 115 146 150 115
++157 148 53 138 126 108 117 127 86 138 126 108 117 114 76 117 114 76 101 83 74 80 96 46
++75 73 58 65 63 61 65 63 61 65 63 61 64 70 48 65 57 61 75 56 53 75 63 62
++75 63 62 75 63 62 75 63 62 75 73 58 75 63 62 65 63 61 75 56 53 65 63 61
++75 63 62 75 63 62 75 63 62 75 63 62 75 56 53 65 63 61 75 56 53 65 63 61
++75 56 53 65 63 61 65 63 61 64 70 48 65 55 54 65 63 61 75 56 53 65 63 61
++64 70 48 65 63 61 65 55 54 65 63 61 65 55 54 65 63 61 75 56 53 65 63 61
++65 55 54 63 55 51 55 55 48 63 55 45 55 55 48 52 55 48 53 46 48 48 50 48
++53 46 48 47 49 42 47 44 42 48 44 48 53 46 48 53 46 48 55 55 48 62 47 47
++59 55 55 63 55 51 59 55 55 65 55 54 65 55 54 65 63 61 65 55 54 65 63 61
++65 55 54 65 63 61 75 56 53 65 63 61 75 63 62 65 63 61 75 63 62 65 63 61
++75 63 62 65 63 61 75 63 62 75 63 62 75 72 67 75 72 67 88 66 70 75 72 67
++88 66 70 75 72 67 75 59 67 75 72 67 75 59 67 65 63 61 65 63 61 65 57 61
++59 55 55 59 55 55 59 55 55 59 55 55 63 55 51 55 55 48 59 55 55 59 55 55
++59 55 55 59 55 55 65 55 54 65 55 54 65 55 54 63 55 51 63 55 51 63 55 51
++63 55 51 59 55 55 62 47 47 63 55 51 53 46 48 62 47 47 59 55 55 62 47 47
++63 55 51 62 47 47 63 55 45 60 49 42 55 55 48 51 49 42 53 46 48 53 46 48
++53 46 48 55 39 37 53 46 48 47 39 42 47 44 42 42 41 42 36 35 37 36 35 37
++33 30 30 36 35 37 33 30 32 36 35 37 33 30 30 33 30 32 33 30 32 33 30 32
++36 35 37 47 39 42 36 35 37 42 38 42 42 41 42 36 35 37 47 44 42 47 44 42
++47 44 42 47 44 42 53 46 48 53 46 48 55 55 48 53 46 48 59 55 55 59 55 55
++59 55 55 63 55 51 63 55 51 65 55 54 65 55 54 65 55 54 65 63 61 65 55 54
++65 55 54 65 63 61 65 55 54 65 63 61 75 56 53 65 63 61 65 55 54 65 55 54
++65 63 61 63 55 51 65 63 61 63 55 51 65 63 61 65 55 54 75 56 53 65 63 61
++65 63 61 65 63 61 75 63 62 75 73 58 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 81 76 75 64 82 75 72 67 75 72 67 75 64 82 75 81 76
++75 81 76 75 81 76 75 81 82 88 83 88 75 81 90 88 83 88 88 83 88 90 98 89
++95 91 100 95 91 100 95 91 100 94 105 108 94 105 108 94 105 108 112 96 108 112 123 108
++94 105 108 112 123 108 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127
++111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 112 123 108 111 119 127
++112 123 108 111 119 127 112 96 108 112 123 108 112 96 108 112 123 108 112 96 108 98 113 84
++112 96 108 98 113 84 95 91 100 99 93 84 99 93 84 99 93 84 88 83 74 88 83 88
++101 83 74 88 83 74 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62
++88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 44 51 76 46 20 88 44 51
++76 46 20 88 44 51 75 56 53 88 44 51 76 46 20 88 44 51 76 46 20 88 73 31
++88 44 51 88 73 31 88 44 51 76 46 20 88 44 51 76 46 20 75 56 53 88 44 51
++88 73 31 76 44 53 76 46 20 88 44 51 76 46 20 75 56 53 76 46 20 88 44 51
++76 46 20 88 44 51 88 44 51 88 44 51 88 44 51 76 46 20 88 44 51 88 73 31
++88 44 51 88 73 31 88 44 51 101 74 26 101 60 73 101 74 26 88 44 51 101 74 26
++120 63 71 101 74 26 101 60 73 101 74 26 88 44 51 101 74 26 120 63 71 101 74 26
++120 63 71 101 74 26 120 63 71 101 74 26 101 74 26 120 63 71 101 74 26 101 74 26
++88 44 51 101 74 26 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 88 44 51
++101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 88 73 62
++88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 101 74 26 88 44 51 101 74 26
++101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 88 44 51 88 73 31 88 44 51
++76 46 20 88 73 31 88 44 51 88 73 31 76 46 20 88 73 31 88 44 51 76 46 20
++88 44 51 88 73 31 76 46 20 88 73 31 76 46 20 102 33 26 88 73 31 102 33 26
++
++22 24 13 23 20 24 26 25 15 23 20 24 23 20 24 33 30 30 33 30 30 33 30 30
++33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 23 20 24 33 30 30
++26 30 28 26 24 32 22 25 24 23 20 24 23 20 24 23 20 24 26 25 15 22 25 24
++23 20 24 22 24 13 23 18 22 26 25 15 23 20 24 26 25 15 26 30 28 26 25 15
++26 30 28 23 20 24 34 30 15 22 25 24 26 25 15 22 25 24 23 18 22 23 18 22
++12 18 20 23 18 22 17 12 17 14 16 17 17 12 17 17 12 17 17 12 17 17 12 17
++14 16 17 17 12 17 14 16 17 22 24 13 23 18 22 26 25 15 28 13 18 33 30 30
++23 20 24 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 34 30 15 52 30 35 33 30 30 33 30 30 26 25 15 33 30 30
++34 30 15 23 20 24 23 18 22 23 18 22 23 18 22 17 12 17 23 18 22 23 18 22
++17 12 17 14 16 17 17 12 17 12 18 20 17 12 17 12 18 20 14 16 17 23 18 22
++23 20 24 23 20 24 23 20 24 23 20 24 33 30 30 23 18 22 33 30 30 33 30 30
++33 30 30 33 30 30 52 30 35 33 30 32 33 30 30 52 30 35 32 39 24 33 30 30
++33 30 30 53 35 17 33 30 30 52 30 35 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++26 24 32 33 30 30 33 30 32 33 30 36 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 42 38 42 42 41 42 42 38 42 42 41 42 42 41 42 47 39 42 42 41 42
++42 38 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 47 39 42 47 44 42
++42 41 42 55 39 37 42 41 42 47 44 42 42 41 42 47 39 42 42 38 42 42 41 42
++42 41 42 47 39 42 47 39 42 47 44 42 47 39 42 47 39 42 42 41 42 55 39 37
++47 39 42 52 30 35 47 47 21 53 35 37 53 35 37 47 47 21 53 35 37 47 39 42
++55 39 37 55 39 37 36 35 37 47 39 42 55 39 37 55 39 37 47 44 42 55 39 37
++55 39 37 55 39 37 60 49 42 59 36 42 60 49 42 60 49 42 62 47 47 60 49 42
++60 49 42 62 47 47 60 49 42 62 47 47 62 47 47 60 49 42 62 47 47 62 47 47
++62 47 47 62 47 47 51 49 42 55 39 37 55 39 37 53 35 37 36 35 37 52 30 35
++36 35 37 36 35 37 52 30 35 33 30 32 36 35 37 33 30 32 33 30 32 33 30 30
++33 30 30 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32
++33 30 32 33 30 32 33 30 32 33 30 30 33 30 30 33 30 32 36 35 37 36 35 37
++36 35 37 36 35 37 47 39 42 36 35 37 42 38 42 47 44 42 47 44 42 47 39 42
++47 44 42 47 39 42 47 39 42 47 39 42 42 41 42 47 39 42 47 47 21 36 35 37
++53 35 37 36 35 37 36 35 37 36 35 37 36 35 37 53 35 37 36 35 37 52 30 35
++36 35 37 33 30 30 36 35 37 33 30 32 33 30 30 33 30 30 33 30 30 26 30 28
++26 24 32 33 30 30 26 24 32 33 30 30 26 30 28 33 30 30 33 30 30 22 25 24
++33 30 30 26 24 32 33 30 30 33 30 30 23 20 24 26 30 28 22 25 24 26 24 32
++26 24 32 33 30 30 26 24 32 33 30 30 33 30 30 33 30 30 34 30 15 34 30 15
++34 30 15 49 13 16 52 30 15 76 46 20 88 44 51 101 74 26 120 63 71 117 99 86
++117 112 45 101 83 74 98 106 55 101 83 74 117 99 86 117 99 86 117 112 45 101 83 74
++120 63 71 101 74 26 88 73 62 88 73 31 88 44 51 60 49 42 55 39 37 52 30 35
++52 30 15 26 12 13 23 10 10 13 4 7 3 3 1 3 3 1 13 4 7 13 4 7
++3 3 1 13 4 7 13 4 7 13 4 7 13 4 7 13 4 7 3 3 1 3 3 1
++42 38 42 145 140 145 226 221 247 194 199 226 131 144 168 98 121 131 77 91 115 77 91 115
++95 108 128 131 144 168 194 199 226 221 238 247 221 238 247 221 238 247 226 221 247 208 221 247
++221 238 247 201 216 228 208 221 247 201 216 228 201 216 228 194 199 226 185 202 202 185 202 202
++201 216 228 201 216 228 208 221 247 201 216 228 201 216 228 201 216 228 201 216 228 201 216 228
++185 202 202 194 199 226 201 216 228 232 215 228 201 216 228 194 199 226 185 202 202 188 180 202
++166 156 164 166 156 164 177 169 143 177 169 143 189 165 168 214 214 134 189 165 168 197 171 123
++217 168 156 217 168 156 217 168 156 222 171 182 214 214 134 222 171 182 217 168 156 225 222 201
++217 168 156 225 222 201 222 171 182 225 222 201 222 171 182 225 222 201 227 171 124 225 222 201
++222 171 182 208 215 180 189 165 168 117 99 86 51 49 42 75 63 62 146 162 145 231 239 247
++251 251 247 240 251 247 251 251 247 240 251 247 251 251 247 240 251 247 246 237 247 235 238 247
++231 239 247 235 238 247 240 251 247 235 238 247 240 251 247 251 251 247 240 251 247 240 251 247
++240 251 247 240 251 247 235 238 247 240 251 247 235 238 247 240 251 247 240 251 247 231 239 247
++233 241 227 226 221 247 233 241 227 233 241 227 251 251 247 233 241 227 208 215 180 214 214 134
++177 171 115 177 171 115 219 175 47 177 171 115 219 175 47 177 171 115 177 171 115 177 171 115
++157 148 53 177 171 115 157 148 53 138 126 108 157 148 53 117 114 76 117 114 76 98 106 55
++88 73 62 75 73 58 64 70 48 65 63 61 65 55 54 65 63 61 65 63 61 65 63 61
++75 63 62 75 63 62 75 72 67 75 63 62 75 73 58 75 63 62 65 63 61 75 63 62
++65 63 61 75 63 62 75 63 62 75 63 62 65 63 61 75 56 53 65 63 61 65 63 61
++65 55 54 65 63 61 75 56 53 65 57 61 65 63 61 64 70 48 65 63 61 75 63 62
++65 63 61 75 56 53 65 63 61 65 55 54 65 63 61 65 63 61 65 55 54 65 63 61
++65 55 54 65 55 54 55 55 48 59 55 55 55 55 48 59 55 55 53 46 48 48 50 48
++51 49 42 48 44 48 47 44 42 51 49 42 47 44 42 53 46 48 53 46 48 53 46 48
++53 46 48 59 55 55 59 55 55 59 55 55 65 55 54 65 55 54 65 55 54 65 55 54
++65 63 61 65 55 54 65 63 61 65 55 54 65 57 61 65 63 61 75 63 62 65 63 61
++75 63 62 65 63 61 75 63 62 75 59 67 75 72 67 75 72 67 75 72 67 75 64 82
++75 72 67 75 81 76 75 64 82 75 72 67 75 72 67 75 63 62 65 63 61 65 63 61
++65 63 61 65 57 61 59 55 55 59 55 55 59 55 55 57 43 51 59 55 55 59 55 55
++59 55 55 65 55 54 59 57 61 59 55 55 59 55 55 65 55 54 63 55 51 59 55 55
++62 47 47 63 55 51 59 55 55 62 47 47 63 55 51 62 47 47 62 47 47 62 47 47
++55 55 48 62 47 47 62 47 47 55 55 48 60 49 42 60 49 42 62 47 47 51 49 42
++53 46 48 55 39 37 47 44 42 47 39 42 42 41 42 53 35 37 42 38 42 47 39 42
++33 30 32 36 35 37 33 30 32 33 30 30 33 30 32 33 30 32 33 30 30 36 35 37
++33 30 30 36 35 37 36 35 37 36 35 37 42 41 42 47 39 42 42 47 42 47 44 42
++47 44 42 53 46 48 53 46 48 53 46 48 63 55 51 59 55 55 63 55 51 63 55 51
++65 55 54 65 55 54 65 55 54 65 55 54 65 63 61 75 56 53 65 55 54 65 55 54
++65 63 61 75 56 53 65 63 61 75 56 53 65 63 61 65 55 54 75 63 62 65 55 54
++65 63 61 65 55 54 65 63 61 65 55 54 65 63 61 65 55 54 65 63 61 65 55 54
++65 63 61 75 63 62 65 63 61 75 72 67 75 63 62 75 72 67 75 72 67 75 64 82
++75 72 67 75 64 82 75 72 67 75 72 67 75 64 82 75 72 67 75 81 69 75 64 82
++75 81 76 88 83 88 75 81 90 88 83 88 88 83 88 88 83 88 78 98 90 95 91 100
++90 98 89 95 91 100 90 98 89 94 105 108 112 96 108 94 105 108 111 119 127 94 105 108
++111 119 127 112 96 108 111 119 127 111 119 127 138 126 108 111 119 127 111 119 127 138 126 108
++111 119 127 138 126 108 111 119 127 138 126 108 111 119 127 112 123 108 111 119 127 112 123 108
++111 119 127 112 123 108 112 123 108 111 119 127 112 123 108 94 105 108 112 123 108 112 96 108
++94 105 108 117 99 86 112 96 108 90 98 89 99 93 84 88 83 88 101 83 74 101 83 74
++88 83 74 101 83 74 88 83 74 88 73 62 88 73 62 88 44 51 88 66 70 88 73 31
++88 44 51 88 73 62 88 44 51 88 44 51 88 44 51 88 73 31 88 44 51 88 73 31
++88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 76 46 20 88 44 51
++88 73 31 88 44 51 76 46 20 88 44 51 88 73 31 88 44 51 76 46 20 88 44 51
++76 46 20 88 44 51 88 73 31 88 44 51 88 44 51 76 46 20 88 44 51 76 46 20
++88 44 51 76 46 20 88 44 51 76 46 20 88 44 51 76 46 20 88 44 51 76 46 20
++88 44 51 88 44 51 101 74 26 88 44 51 88 73 31 120 63 71 101 74 26 101 60 73
++101 74 26 101 60 73 101 74 26 88 73 62 101 74 26 120 63 71 101 74 26 88 73 62
++101 74 26 88 73 62 101 74 26 101 74 26 120 63 71 101 74 26 101 74 26 88 73 62
++101 74 26 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 101 74 26 88 44 51
++101 74 26 101 74 26 88 44 51 101 74 26 120 63 71 101 74 26 101 60 73 101 74 26
++101 74 26 88 44 51 88 73 31 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26
++88 44 51 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26
++88 44 51 88 73 31 102 33 26 88 73 31 88 44 51 76 46 20 101 74 26 88 44 51
++88 73 31 76 46 20 88 73 31 102 33 26 76 46 20 88 73 31 88 73 31 88 73 31
++
++23 18 22 23 18 22 22 25 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 23 20 24
++26 25 15 22 25 24 26 25 15 22 25 24 26 25 15 22 25 24 23 18 22 26 25 15
++22 25 24 26 25 15 22 25 24 26 25 15 26 30 28 33 30 30 23 20 24 33 30 30
++34 30 15 26 30 28 26 25 15 33 30 30 23 20 24 26 25 15 23 20 24 22 24 13
++23 18 22 23 18 22 14 16 17 17 12 17 14 16 17 7 12 13 17 12 17 14 16 17
++17 12 17 14 16 17 23 18 22 23 18 22 23 18 22 23 18 22 22 25 24 34 30 15
++33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 52 30 35 33 30 30 33 30 30
++34 30 15 52 30 35 33 30 30 34 30 15 33 30 30 26 25 15 33 30 30 23 18 22
++23 20 24 33 30 30 26 25 15 23 18 22 22 24 13 14 16 17 23 18 22 14 16 17
++17 12 17 14 16 17 14 16 17 17 12 17 14 16 17 17 12 17 12 18 20 23 18 22
++23 18 22 23 20 24 33 30 30 33 30 30 28 13 18 33 30 30 34 30 15 33 30 30
++33 30 30 52 30 35 33 30 30 52 30 35 32 39 24 36 35 37 52 30 35 33 30 30
++52 30 35 33 30 32 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 32 33 30 32 33 30 30
++33 30 30 33 30 32 33 30 32 36 35 37 52 30 35 36 35 37 36 35 37 36 35 37
++42 38 42 42 38 42 42 41 42 42 38 42 42 38 42 42 41 42 42 41 42 42 41 42
++36 35 37 42 41 42 42 41 42 36 35 37 47 44 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 47 42 42 41 42 47 44 42 42 47 42 42 41 42 42 41 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 55 39 37 47 44 42
++53 35 37 47 39 42 53 35 37 47 39 42 53 35 37 47 39 42 53 35 37 36 35 37
++53 35 37 55 39 37 53 35 37 55 39 37 55 39 37 55 39 37 55 39 37 55 39 37
++51 49 42 55 39 37 62 47 47 60 49 42 62 47 47 59 36 42 60 49 42 62 47 47
++59 36 42 60 49 42 62 47 47 60 49 42 62 47 47 62 47 47 62 47 47 62 47 47
++62 47 47 62 47 47 59 36 42 55 39 37 47 44 42 53 35 37 53 35 37 53 35 37
++32 39 24 53 35 37 32 39 24 33 30 30 52 30 35 33 30 30 36 35 37 33 30 30
++36 35 37 33 30 30 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32
++33 30 32 33 30 32 33 30 30 33 30 30 33 30 32 36 35 37 53 35 37 36 35 37
++53 35 37 36 35 37 47 47 21 42 38 42 47 39 42 47 44 42 47 44 42 47 44 42
++47 39 42 47 44 42 47 39 42 42 41 42 47 47 21 42 38 42 42 38 42 36 35 37
++47 47 21 36 35 37 47 47 21 36 35 37 33 30 30 36 35 37 32 39 24 36 35 37
++32 39 24 53 35 37 33 30 30 33 30 32 33 30 30 26 30 28 33 30 30 33 30 30
++33 30 30 26 30 28 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 26 24 32 33 30 30 26 24 32 26 24 32 23 20 24 33 30 30 23 20 24
++33 30 30 23 20 24 23 20 24 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30
++49 13 16 34 30 15 49 13 16 52 30 35 76 46 20 88 44 51 120 63 71 117 114 76
++120 63 71 101 74 26 88 44 51 76 46 20 88 44 51 101 74 26 88 44 51 75 56 53
++76 46 20 62 47 47 59 36 42 59 36 42 55 39 18 52 30 15 34 30 15 23 10 10
++13 4 7 3 3 1 13 4 7 3 3 1 3 3 1 13 4 7 3 3 1 13 4 7
++13 4 7 13 4 7 13 4 7 13 4 7 13 4 7 13 4 7 3 3 1 3 3 1
++63 59 71 166 156 164 208 221 247 166 174 181 95 95 116 77 91 115 77 91 115 111 122 142
++150 168 183 194 199 226 221 238 247 231 239 247 221 238 247 208 221 247 208 221 247 221 238 247
++226 221 247 208 221 247 201 216 228 201 216 228 201 216 228 194 199 226 194 199 226 185 202 202
++194 199 226 194 199 226 201 216 228 201 216 228 194 199 226 194 199 226 185 202 202 194 199 226
++194 199 226 201 216 228 201 216 228 208 221 247 201 216 228 201 216 228 185 202 202 185 202 202
++188 180 202 166 180 164 189 165 168 177 169 143 189 165 168 189 165 168 217 168 156 177 169 143
++217 168 156 214 214 134 222 171 182 214 214 134 222 171 182 222 171 182 214 214 134 222 171 182
++214 214 134 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 225 222 201 217 168 156
++225 222 201 222 171 182 208 215 180 138 126 108 88 73 62 75 81 76 150 144 154 233 241 227
++231 239 247 231 239 247 235 238 247 240 251 247 251 251 247 251 251 247 240 251 247 251 251 247
++231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 235 238 247 235 238 247 235 238 247
++240 251 247 240 251 247 235 238 247 240 251 247 235 238 247 235 238 247 251 251 247 235 238 247
++233 241 227 226 221 247 201 216 228 208 215 180 233 241 227 251 251 247 225 222 201 214 214 134
++214 214 134 214 214 134 177 171 115 219 175 47 177 171 115 219 175 47 177 171 115 219 175 47
++177 171 115 157 148 53 177 171 115 157 148 53 146 150 115 157 148 53 117 114 76 117 114 76
++98 106 55 75 73 58 75 73 58 64 70 48 75 56 53 75 73 58 65 63 61 75 63 62
++75 63 62 75 72 67 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62
++75 73 58 75 63 62 65 63 61 75 63 62 65 63 61 75 63 62 65 63 61 75 56 53
++65 63 61 75 56 53 65 63 61 65 63 61 75 56 53 65 63 61 75 56 53 65 63 61
++75 56 53 65 63 61 65 63 61 65 55 54 65 63 61 63 55 51 65 55 54 65 55 54
++65 63 61 63 55 51 59 55 55 55 55 48 53 46 48 59 55 55 53 46 48 53 46 48
++53 46 48 47 44 42 48 44 48 48 44 48 47 44 42 47 44 42 47 44 42 53 46 48
++55 55 48 59 55 55 59 55 55 59 55 55 63 55 51 59 55 55 63 55 51 65 55 54
++65 55 54 65 63 61 65 55 54 65 63 61 65 63 61 65 57 61 75 63 62 65 63 61
++75 63 62 65 63 61 75 72 67 75 72 67 75 59 67 88 69 84 88 66 70 75 81 76
++88 83 74 88 66 70 75 81 76 75 81 76 75 64 82 75 72 67 75 63 62 65 63 61
++65 57 61 65 57 61 65 57 61 59 57 61 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 65 55 54 65 57 61 65 55 54 65 55 54 65 55 54
++63 55 51 63 55 51 63 55 51 62 47 47 59 55 55 62 47 47 55 55 48 60 49 42
++62 47 47 55 55 48 62 47 47 62 47 47 53 46 48 62 47 47 53 46 48 60 49 42
++47 44 42 53 46 48 47 44 42 53 35 37 32 39 24 42 38 42 36 35 37 36 35 37
++36 35 37 33 30 32 33 30 32 33 30 32 33 30 32 36 35 37 33 30 32 33 30 30
++36 35 37 36 35 37 32 39 24 47 39 42 42 41 42 47 47 21 42 41 42 47 44 42
++51 49 42 51 49 42 55 55 48 55 55 48 63 55 51 59 55 55 63 55 51 63 55 51
++65 55 54 65 63 61 75 56 53 75 56 53 64 70 48 65 63 61 75 56 53 65 63 61
++75 56 53 65 63 61 75 56 53 64 70 48 75 56 53 65 63 61 75 73 58 65 55 54
++75 63 62 65 63 61 75 56 53 65 63 61 75 56 53 65 63 61 75 63 62 65 63 61
++75 63 62 75 73 58 75 72 67 75 72 67 75 72 67 75 72 67 75 81 76 75 72 67
++75 81 76 75 72 67 75 81 69 75 72 67 59 69 70 75 81 82 75 64 82 75 81 76
++75 81 82 75 81 82 88 83 88 88 83 88 88 83 88 78 98 90 95 91 100 90 98 89
++95 91 100 94 105 108 94 105 108 94 105 108 94 105 108 112 123 108 94 105 108 112 123 108
++111 119 127 112 123 108 111 119 127 112 123 108 111 119 127 111 119 127 121 143 132 119 117 138
++121 143 132 111 119 127 117 142 111 111 119 127 111 119 127 138 126 108 111 119 127 112 123 108
++111 119 127 112 123 108 112 96 108 112 123 108 112 96 108 112 123 108 112 96 108 98 113 84
++112 96 108 90 98 89 99 93 84 99 93 84 99 93 84 99 93 84 101 83 74 88 83 88
++101 83 74 88 66 70 88 73 62 88 73 62 88 73 62 88 73 62 88 44 51 88 73 62
++88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 44 51 88 73 31 88 44 51
++102 33 26 76 46 20 88 44 51 76 46 20 88 73 31 88 44 51 88 73 31 102 33 26
++88 44 51 76 46 20 88 73 31 88 44 51 76 46 20 88 44 51 88 73 31 88 44 51
++76 46 20 88 44 51 76 46 20 88 44 51 88 73 31 88 44 51 76 46 20 88 44 51
++76 46 20 88 44 51 76 46 20 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51
++88 73 31 88 44 51 88 44 51 122 49 24 88 44 51 101 74 26 101 74 26 101 74 26
++101 74 26 101 74 26 120 63 71 101 74 26 101 74 26 101 74 26 120 63 71 101 74 26
++101 74 26 120 63 71 101 74 26 120 63 71 101 74 26 101 74 26 120 63 71 101 74 26
++101 74 26 120 63 71 101 74 26 101 74 26 101 74 26 120 63 71 101 74 26 101 74 26
++101 60 73 101 74 26 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 88 44 51
++101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 102 33 26 101 74 26 88 44 51
++101 74 26 101 74 26 101 74 26 88 44 51 101 74 26 102 33 26 88 73 31 102 33 26
++88 73 31 102 33 26 88 73 31 76 46 20 101 74 26 88 44 51 101 74 26 76 46 20
++88 73 31 102 33 26 88 73 31 76 46 20 101 74 26 102 33 26 88 73 31 102 33 26
++
++26 25 15 23 20 24 34 30 15 23 20 24 34 30 15 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30
++26 30 28 33 30 30 26 30 28 33 30 30 22 25 24 26 25 15 26 30 28 26 30 28
++26 30 28 33 30 30 26 25 15 33 30 30 22 25 24 33 30 30 26 30 28 33 30 30
++33 30 30 33 30 30 33 30 30 26 25 15 33 30 30 22 25 24 22 25 24 23 18 22
++23 18 22 23 18 22 14 16 17 17 12 17 17 12 17 17 12 17 17 12 17 14 16 17
++14 16 17 23 18 22 14 16 17 14 16 17 23 18 22 26 25 15 23 18 22 33 30 30
++23 20 24 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 53 35 17 33 30 30
++33 30 30 33 30 30 33 30 30 23 20 24 33 30 30 34 30 15 23 20 24 34 30 15
++33 30 30 23 20 24 22 25 24 23 20 24 22 24 13 23 18 22 22 24 13 14 16 17
++17 12 17 17 12 17 15 17 7 14 16 17 14 16 17 14 16 17 14 16 17 23 18 22
++23 20 24 26 25 15 23 20 24 28 13 18 33 30 30 33 30 30 33 30 30 34 30 15
++33 30 30 33 30 30 53 35 17 36 35 37 33 30 30 52 30 35 32 39 24 52 30 35
++32 39 24 52 30 35 33 30 30 52 30 35 32 39 24 33 30 30 33 30 30 52 30 35
++33 30 30 36 35 37 33 30 30 33 30 32 33 30 32 52 30 35 33 30 32 33 30 32
++33 30 32 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 36 35 37
++42 38 42 42 38 42 47 39 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 47 39 42 42 41 42 42 41 42 42 41 42 42 41 42 36 35 37
++42 41 42 42 41 42 42 41 42 47 44 42 42 47 42 47 44 42 47 44 42 42 41 42
++42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 55 39 37
++47 39 42 47 39 42 53 35 37 47 44 42 53 35 37 53 35 37 53 35 37 53 35 37
++47 44 42 53 35 37 47 44 42 47 44 42 55 39 37 60 49 42 55 39 37 55 39 37
++55 39 37 55 39 37 60 49 42 59 36 42 62 47 47 60 49 42 60 49 42 76 44 53
++60 49 42 60 49 42 60 49 42 76 44 53 62 47 47 62 47 47 76 44 53 62 47 47
++62 47 47 62 47 47 60 49 42 55 39 37 55 39 37 53 35 37 47 39 42 53 35 37
++36 35 37 32 39 24 53 35 37 33 30 30 32 39 24 33 30 30 32 39 24 52 30 35
++33 30 30 36 35 37 36 35 37 33 30 32 33 30 32 31 35 35 33 30 32 33 30 32
++36 35 37 33 30 32 33 30 32 33 30 30 36 35 37 32 39 24 36 35 37 36 35 37
++42 41 42 36 35 37 42 38 42 36 35 37 42 41 42 47 44 42 47 39 42 47 44 42
++47 39 42 55 39 37 36 35 37 47 39 42 42 38 42 42 41 42 55 39 37 36 35 37
++47 39 42 36 35 37 53 35 37 33 30 30 53 35 37 36 35 37 36 35 37 52 30 35
++36 35 37 33 30 32 33 30 32 30 30 34 33 30 30 33 30 30 33 30 30 33 30 30
++26 24 32 33 30 30 26 30 28 33 30 30 33 30 30 26 24 32 26 30 28 26 24 32
++33 30 30 33 30 30 33 30 32 33 30 30 26 30 28 33 30 30 23 20 24 33 30 30
++22 25 24 23 20 24 33 30 30 23 20 24 26 30 28 22 25 24 26 30 28 33 30 30
++36 35 37 33 30 30 33 30 30 53 35 17 76 18 19 76 46 20 76 46 20 122 49 24
++101 83 74 88 44 51 76 46 20 52 30 15 76 46 20 59 36 42 55 39 18 76 46 20
++55 39 37 53 35 17 52 30 15 49 13 16 23 10 10 13 4 7 13 4 7 3 3 1
++3 3 1 13 4 7 13 4 7 13 4 7 3 3 1 13 4 7 3 3 1 13 4 7
++3 3 1 13 4 7 13 4 7 13 4 7 13 4 7 13 4 7 3 3 1 13 4 7
++94 105 108 188 180 202 194 199 226 150 147 171 77 91 115 77 91 115 95 108 128 131 144 168
++194 199 226 240 251 247 240 251 247 231 239 247 221 238 247 221 238 247 226 221 247 208 221 247
++208 221 247 208 221 247 201 216 228 194 199 226 201 216 228 201 216 228 201 216 228 194 199 226
++188 180 202 194 199 226 194 199 226 201 216 228 201 216 228 201 216 228 194 199 226 185 202 202
++185 202 202 194 199 226 201 216 228 201 216 228 232 215 228 194 199 226 185 202 202 194 199 226
++185 202 202 185 202 202 189 165 168 177 169 143 189 165 168 177 169 143 217 168 156 177 169 143
++177 169 143 217 168 156 217 168 156 217 168 156 222 171 182 222 171 182 214 214 134 222 171 182
++222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 225 222 201 222 171 182 214 214 134
++225 222 201 222 171 182 225 222 201 177 169 143 112 123 108 99 93 84 148 160 159 232 215 228
++226 221 247 233 241 227 226 221 247 231 239 247 235 238 247 251 251 247 251 251 247 251 251 247
++240 251 247 240 251 247 235 238 247 231 239 247 231 239 247 231 239 247 221 238 247 231 239 247
++231 239 247 235 238 247 240 251 247 235 238 247 235 238 247 240 251 247 251 251 247 240 251 247
++226 221 247 233 241 227 185 202 202 188 180 202 233 241 227 233 241 227 225 222 201 214 214 134
++177 171 115 214 214 134 219 175 47 214 214 134 214 214 134 214 214 134 219 175 47 177 171 115
++177 171 115 177 171 115 157 148 53 177 171 115 157 148 53 138 126 108 138 126 108 117 114 76
++117 114 76 87 99 72 88 73 62 75 73 58 75 73 58 65 63 61 75 63 62 75 63 62
++75 63 62 75 63 62 75 72 67 75 72 67 75 72 67 75 63 62 75 63 62 75 63 62
++75 63 62 75 72 67 75 63 62 75 63 62 75 63 62 65 63 61 75 63 62 65 63 61
++75 63 62 65 63 61 65 63 61 75 56 53 65 63 61 65 55 54 75 63 62 64 70 48
++65 63 61 65 63 61 75 56 53 65 63 61 63 55 51 65 63 61 65 63 61 65 63 61
++63 55 51 63 55 51 59 55 55 63 55 51 59 55 55 53 46 48 59 55 55 53 46 48
++51 49 42 47 44 42 47 44 42 47 44 42 47 39 42 47 44 42 47 44 42 51 49 42
++53 46 48 53 46 48 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55
++65 55 54 65 55 54 65 63 61 65 57 61 65 57 61 65 63 61 75 59 67 75 59 67
++75 63 62 75 59 67 75 72 67 75 59 67 75 81 76 88 66 70 75 81 76 88 66 70
++75 81 76 88 69 84 75 81 76 88 69 84 75 72 67 75 72 67 75 59 67 75 72 67
++75 63 62 63 59 71 65 57 61 59 57 61 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 65 55 54 65 63 61 65 55 54 65 55 54
++63 55 51 63 55 51 59 55 55 62 47 47 55 55 48 62 47 47 62 47 47 55 55 48
++63 55 45 62 47 47 62 47 47 55 55 48 62 47 47 62 47 47 60 49 42 53 46 48
++55 39 37 47 44 42 55 39 37 47 44 42 42 41 42 53 35 37 42 38 42 36 35 37
++36 35 37 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 36 35 37 33 30 32
++32 39 24 33 30 30 42 41 42 36 35 37 42 41 42 47 44 42 47 44 42 51 49 42
++51 49 42 55 55 48 55 55 48 59 55 55 63 55 51 63 55 51 63 55 51 63 55 51
++65 55 54 75 56 53 64 70 48 75 56 53 75 56 53 75 63 62 75 63 62 75 63 62
++75 73 58 75 63 62 75 56 53 65 63 61 65 63 61 75 56 53 65 63 61 75 63 62
++65 63 61 65 55 54 65 63 61 65 63 61 65 55 54 65 63 61 65 63 61 75 63 62
++65 63 61 75 63 62 75 72 67 75 72 67 75 72 67 88 66 70 75 81 76 88 69 84
++75 81 76 75 72 67 75 81 76 75 72 67 75 81 76 75 81 76 75 81 76 75 81 82
++75 81 82 88 83 88 88 83 88 90 98 89 88 83 88 88 83 88 90 98 89 95 91 100
++94 105 108 90 98 89 94 105 108 112 96 108 95 119 107 112 96 108 112 123 108 111 119 127
++112 123 108 111 119 127 112 123 108 111 119 127 119 117 138 138 126 108 111 119 127 138 126 108
++111 119 127 138 126 108 111 119 127 138 126 108 111 119 127 111 119 127 111 119 127 112 123 108
++111 119 127 112 123 108 111 119 127 112 123 108 112 123 108 112 123 108 95 119 107 112 96 108
++98 113 84 94 105 108 112 96 108 99 93 84 99 93 84 88 83 88 101 83 74 101 83 74
++101 83 74 101 83 74 88 73 62 88 66 70 88 73 62 88 73 62 88 73 62 88 44 51
++88 73 31 75 56 53 88 44 51 88 44 51 88 73 31 88 44 51 102 33 26 88 44 51
++88 73 31 88 44 51 101 74 26 88 44 51 88 73 31 102 33 26 76 46 20 88 73 31
++88 44 51 88 73 31 88 44 51 102 33 26 88 73 31 88 44 51 76 46 20 88 44 51
++88 73 31 102 33 26 88 73 31 76 46 20 88 44 51 102 33 26 88 44 51 76 46 20
++88 44 51 76 46 20 88 44 51 88 44 51 88 44 51 76 46 20 88 44 51 102 33 26
++88 44 51 101 74 26 88 44 51 88 73 31 101 60 73 101 74 26 120 63 71 88 44 51
++120 63 71 101 74 26 101 74 26 120 63 71 101 74 26 120 63 71 101 74 26 101 74 26
++120 63 71 101 74 26 101 74 26 101 74 26 120 63 71 101 74 26 101 74 26 101 74 26
++88 44 51 101 74 26 101 74 26 120 63 71 101 74 26 101 74 26 88 73 31 120 63 71
++101 74 26 88 44 51 101 74 26 120 63 71 101 74 26 101 74 26 120 63 71 101 74 26
++88 44 51 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 101 60 73 101 74 26
++101 74 26 101 60 73 88 73 31 122 49 24 88 73 31 101 74 26 88 44 51 88 73 31
++76 46 20 88 73 31 88 44 51 101 74 26 76 46 20 101 74 26 88 44 51 101 74 26
++88 73 31 76 46 20 88 73 31 102 33 26 88 73 31 88 44 51 101 74 26 88 73 31
++
++23 18 22 23 20 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++26 25 15 33 30 30 26 25 15 33 30 30 26 25 15 33 30 30 22 25 24 33 30 30
++33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 29 35 19 33 30 30 34 30 15 33 30 30 26 25 15 23 20 24 26 25 15
++23 18 22 15 22 17 26 12 13 14 16 17 14 16 17 17 12 17 17 12 17 14 16 17
++17 12 17 14 16 17 23 18 22 14 16 17 23 18 22 23 18 22 23 20 24 26 25 15
++33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 33 30 30
++53 35 17 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30
++23 20 24 33 30 30 34 30 15 23 20 24 22 25 24 23 18 22 23 20 24 23 18 22
++15 22 17 17 12 17 14 16 17 14 16 17 17 12 17 14 16 17 23 18 22 15 22 17
++23 18 22 26 25 15 33 30 30 23 20 24 33 30 30 28 13 18 33 30 30 33 30 30
++52 30 35 33 30 30 36 35 37 52 30 35 32 39 24 52 30 35 33 30 30 36 35 37
++52 30 35 32 39 24 33 30 30 33 30 30 33 30 30 52 30 35 36 35 37 33 30 30
++36 35 37 52 30 35 33 30 30 42 38 42 36 35 37 33 30 32 36 35 37 33 30 32
++36 35 37 33 30 30 52 30 35 36 35 37 47 39 42 36 35 37 36 35 37 53 35 37
++36 35 37 47 44 42 47 39 42 42 41 42 47 44 42 42 41 42 47 44 42 42 41 42
++47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 36 35 37 47 39 42
++42 41 42 42 41 42 47 44 42 42 41 42 47 44 42 42 47 42 47 44 42 47 44 42
++42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 55 39 37 47 44 42 55 39 37
++47 44 42 55 39 37 55 39 37 47 44 42 55 39 37 47 44 42 53 35 37 47 39 42
++55 39 37 47 44 42 55 39 37 55 39 37 55 39 37 55 39 37 60 49 42 55 39 37
++60 49 42 55 39 37 59 36 42 60 49 42 62 47 47 60 49 42 60 49 42 60 49 42
++76 44 53 60 49 42 76 44 53 60 49 42 60 49 42 76 44 53 60 49 42 76 44 53
++60 49 42 62 47 47 60 49 42 53 46 48 55 39 37 47 39 42 53 35 37 53 35 37
++36 35 37 36 35 37 32 39 24 52 30 35 33 30 30 52 30 35 36 35 37 33 30 30
++36 35 37 33 30 30 33 30 30 33 30 32 36 35 37 33 30 32 33 30 32 33 30 32
++33 30 32 36 35 37 33 30 32 36 35 37 33 30 30 53 35 37 36 35 37 53 35 37
++36 35 37 55 39 37 42 41 42 55 39 37 42 41 42 47 44 42 47 39 42 47 39 42
++42 41 42 42 41 42 47 44 42 47 39 42 42 41 42 36 35 37 42 41 42 47 47 21
++42 38 42 36 35 37 36 35 37 36 35 37 32 39 24 42 38 42 36 35 37 36 35 37
++36 35 37 36 35 37 33 30 30 33 30 30 33 30 30 30 30 34 33 30 30 33 30 30
++26 30 28 33 30 30 26 24 32 33 30 30 33 30 30 26 30 28 33 30 30 33 30 30
++33 30 30 33 30 30 30 30 34 33 30 30 26 24 32 33 30 30 26 30 28 23 20 24
++33 30 30 23 20 24 22 25 24 33 30 30 22 25 24 33 30 30 33 30 30 33 30 30
++33 30 30 52 30 35 53 35 17 52 30 35 52 30 15 52 30 15 76 18 19 76 46 20
++88 44 51 76 46 20 55 39 18 76 18 19 52 30 15 53 35 17 55 39 37 53 35 17
++52 30 15 49 13 16 26 12 13 23 10 10 13 4 7 13 4 7 13 4 7 13 4 7
++13 4 7 23 10 10 13 4 7 23 10 10 13 4 7 13 4 7 13 4 7 13 4 7
++13 4 7 13 4 7 13 4 7 13 4 7 13 4 7 13 4 7 3 3 1 17 12 17
++119 117 138 194 199 226 188 180 202 129 144 153 77 91 115 61 78 101 61 78 101 111 122 142
++194 199 226 240 251 247 231 239 247 231 239 247 221 238 247 226 221 247 208 221 247 201 216 228
++226 221 247 208 221 247 201 216 228 201 216 228 194 199 226 201 216 228 194 199 226 194 199 226
++185 202 202 185 202 202 194 199 226 194 199 226 201 216 228 194 199 226 185 202 202 194 199 226
++185 202 202 194 199 226 232 215 228 208 221 247 201 216 228 185 202 202 188 180 202 194 199 226
++225 222 201 194 199 226 185 202 202 189 165 168 166 180 164 177 169 143 217 168 156 177 169 143
++217 168 156 177 169 143 217 168 156 214 214 134 222 171 182 214 214 134 222 171 182 225 222 201
++227 171 124 225 222 201 222 171 182 225 222 201 217 168 156 214 214 134 225 222 201 222 171 182
++225 222 201 214 214 134 225 222 201 217 168 156 145 140 145 138 126 108 166 174 181 233 241 227
++226 221 247 201 216 228 208 221 247 208 221 247 231 239 247 231 239 247 240 251 247 251 251 247
++240 251 247 251 251 247 240 251 247 240 251 247 240 251 247 235 238 247 235 238 247 231 239 247
++235 238 247 240 251 247 235 238 247 240 251 247 240 251 247 251 251 247 251 251 247 240 251 247
++233 241 227 201 216 228 225 222 201 188 180 202 225 222 201 251 251 247 225 222 201 214 214 134
++214 214 134 219 175 47 214 214 134 177 171 115 219 175 47 177 171 115 214 214 134 219 175 47
++177 171 115 219 175 47 177 171 115 177 171 115 157 148 53 177 171 115 157 148 53 117 127 86
++117 127 86 117 114 76 101 83 74 75 73 58 75 73 58 64 70 48 75 63 62 65 63 61
++75 63 62 75 72 67 75 63 62 75 72 67 75 63 62 75 72 67 75 63 62 75 72 67
++75 63 62 75 63 62 75 72 67 65 63 61 75 63 62 75 63 62 75 63 62 65 63 61
++75 63 62 65 63 61 75 63 62 65 63 61 65 63 61 75 56 53 65 63 61 75 56 53
++65 63 61 75 56 53 65 63 61 65 63 61 65 63 61 65 55 54 65 63 61 63 55 51
++63 55 51 59 55 55 59 55 55 59 55 55 59 55 55 52 55 48 53 46 48 48 50 48
++48 50 48 47 44 42 47 44 42 48 44 48 42 41 42 42 41 42 47 44 42 47 44 42
++48 44 48 48 50 48 53 46 48 59 55 55 59 55 55 59 55 55 59 55 55 65 63 61
++65 63 61 65 55 54 65 63 61 65 63 61 65 63 61 75 63 62 75 72 67 63 59 71
++75 72 67 75 72 67 75 64 82 75 81 76 88 69 84 75 81 76 88 69 84 88 83 74
++75 81 82 88 83 74 88 69 84 75 81 76 88 66 70 75 81 76 75 72 67 75 72 67
++63 59 71 75 59 67 65 63 61 65 57 61 59 57 61 59 57 61 59 55 55 59 55 55
++59 55 55 59 55 55 65 55 54 59 55 55 65 63 61 65 55 54 65 55 54 65 55 54
++63 55 51 63 55 51 63 55 51 63 55 51 62 47 47 63 55 51 60 49 42 60 49 42
++62 47 47 55 55 48 62 47 47 62 47 47 53 46 48 60 49 42 53 46 48 53 46 48
++51 49 42 47 44 42 47 44 42 36 35 37 47 47 21 36 35 37 36 35 37 42 38 42
++33 30 32 33 30 36 33 30 32 30 30 34 33 30 32 33 30 36 36 35 37 33 30 32
++36 35 37 36 35 37 36 35 37 47 44 42 42 41 42 47 44 42 47 49 42 51 49 42
++53 46 48 55 55 48 63 55 51 63 55 51 65 55 54 65 63 61 65 63 61 63 55 51
++65 63 61 75 56 53 75 63 62 75 63 62 75 73 58 75 63 62 64 70 48 75 63 62
++75 56 53 65 63 61 75 73 58 75 63 62 75 73 58 75 63 62 65 63 61 75 56 53
++65 63 61 75 63 62 75 56 53 65 63 61 75 63 62 65 63 61 75 56 53 75 63 62
++75 72 67 75 72 67 75 72 67 75 72 67 75 81 76 75 72 67 88 83 74 75 72 67
++88 66 70 75 81 76 75 81 76 75 64 82 88 83 74 88 69 84 88 83 88 88 83 88
++88 83 88 88 83 88 88 83 88 88 83 88 90 98 89 95 91 100 94 105 108 95 91 100
++94 105 108 94 105 108 94 105 108 112 123 108 94 105 108 111 119 127 111 119 127 112 123 108
++111 119 127 111 119 127 111 119 127 138 126 108 111 119 127 121 143 132 111 119 127 121 143 132
++111 119 127 121 143 132 111 119 127 117 142 111 111 119 127 138 126 108 111 119 127 138 126 108
++111 119 127 112 123 108 112 123 108 111 119 127 112 96 108 112 123 108 112 96 108 95 119 107
++112 96 108 117 99 86 90 98 89 99 93 84 99 93 84 99 93 84 101 83 74 88 83 74
++88 66 70 88 73 62 88 73 62 88 73 62 88 73 62 88 44 51 88 73 62 88 44 51
++88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 44 51 88 73 31 88 44 51
++76 46 20 88 44 51 76 46 20 88 44 51 76 46 20 88 44 51 88 73 31 88 44 51
++76 46 20 88 44 51 88 73 31 88 44 51 76 46 20 88 44 51 102 33 26 88 73 31
++88 44 51 76 46 20 88 44 51 102 33 26 88 73 31 88 44 51 76 46 20 88 44 51
++88 73 31 102 33 26 88 73 31 88 44 51 102 33 26 88 44 51 88 73 31 88 44 51
++88 44 51 102 33 26 88 73 31 88 44 51 101 74 26 88 44 51 101 74 26 101 74 26
++101 74 26 120 63 71 101 74 26 101 74 26 120 63 71 101 74 26 101 74 26 120 63 71
++101 74 26 101 74 26 120 63 71 101 74 26 101 74 26 120 63 71 101 74 26 120 63 71
++101 74 26 101 74 26 101 74 26 101 74 26 88 44 51 101 74 26 120 63 71 101 74 26
++88 44 51 101 74 26 120 63 71 88 73 31 88 44 51 101 74 26 120 63 71 101 74 26
++101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 101 74 26 88 44 51 101 74 26
++88 44 51 101 74 26 122 49 24 88 73 62 101 74 26 88 44 51 101 74 26 102 33 26
++88 73 31 102 33 26 88 73 31 102 33 26 88 73 31 88 44 51 101 74 26 102 33 26
++88 73 31 88 44 51 101 74 26 76 46 20 101 74 26 76 46 20 101 74 26 88 44 51
++
++33 30 30 26 25 15 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30 33 30 30
++52 30 35 33 30 30 36 35 37 33 30 32 33 30 32 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 32 39 24 52 30 35 32 39 24
++36 35 37 33 30 30 33 30 30 33 30 30 33 30 30 34 30 15 26 30 28 22 25 24
++26 25 15 22 25 24 23 18 22 23 18 22 14 16 17 14 16 17 14 16 17 14 16 17
++14 16 17 23 18 22 23 18 22 23 18 22 23 18 22 26 25 15 22 25 24 26 30 28
++33 30 30 23 20 24 33 30 30 33 30 30 33 30 30 33 30 30 47 47 21 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 26 30 28 26 25 15 22 25 24 23 20 24
++23 20 24 23 20 24 23 18 22 23 18 22 23 18 22 14 16 17 15 22 17 22 25 24
++23 20 24 22 25 24 23 20 24 33 30 30 34 30 15 33 30 30 33 30 30 32 39 24
++33 30 30 32 39 24 52 30 35 32 39 24 52 30 35 36 35 37 52 30 35 47 47 21
++33 30 30 52 30 35 36 35 37 53 35 37 36 35 37 32 39 24 53 35 37 36 35 37
++53 35 37 33 39 38 53 35 37 36 35 37 42 38 42 42 38 42 36 35 37 52 30 35
++36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 47 39 42 42 38 42 42 41 42
++47 39 42 42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 42 41 42 42 41 42
++42 41 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 38 42
++42 41 42 42 41 42 42 41 42 42 47 42 42 41 42 42 47 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 47 44 42 51 49 42 55 39 37
++51 49 42 55 39 37 51 49 42 55 39 37 47 44 42 55 39 37 47 44 42 55 39 37
++47 39 42 55 39 37 51 49 42 55 39 37 60 49 42 60 49 42 59 36 42 60 49 42
++59 36 42 62 47 47 60 49 42 76 44 53 60 49 42 76 44 53 76 46 20 76 44 53
++63 55 45 76 44 53 63 55 45 76 44 53 60 49 42 76 44 53 62 47 47 62 47 47
++76 44 53 59 36 42 62 47 47 60 49 42 55 39 37 55 39 37 47 39 42 55 39 37
++47 39 42 47 47 21 47 39 42 36 35 37 53 35 37 32 39 24 36 35 37 36 35 37
++36 35 37 53 35 37 33 30 30 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 52 30 35 36 35 37 42 41 42 36 35 37 42 41 42
++42 41 42 42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 42 41 42
++47 39 42 47 47 21 42 41 42 47 39 42 42 41 42 55 39 37 42 38 42 47 39 42
++36 35 37 42 41 42 53 35 37 36 35 37 53 35 37 36 35 37 36 35 37 52 30 35
++32 39 24 36 35 37 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32
++33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 32 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 26 30 28 33 30 30 23 20 24 33 30 30 26 30 28 33 30 30 33 30 32
++33 30 32 33 30 30 36 35 37 36 35 37 53 35 37 76 18 19 49 13 16 52 30 35
++88 30 18 52 30 35 76 18 19 49 13 16 52 30 35 76 18 19 52 30 15 49 13 16
++49 13 16 49 13 16 23 10 10 23 10 10 23 10 10 23 10 10 23 10 10 23 10 10
++23 10 10 23 10 10 23 10 10 23 10 10 23 10 10 23 10 10 23 10 10 23 10 10
++13 4 7 13 4 7 13 4 7 13 4 7 13 4 7 3 3 1 3 3 1 28 30 35
++146 151 137 194 199 226 131 144 168 95 95 116 60 63 87 46 59 71 32 40 58 60 63 87
++148 160 159 208 221 247 231 239 247 231 239 247 221 238 247 221 238 247 201 216 228 208 221 247
++201 216 228 221 238 247 226 221 247 201 216 228 194 199 226 194 199 226 201 216 228 201 216 228
++194 199 226 185 202 202 188 180 202 185 202 202 194 199 226 201 216 228 201 216 228 185 202 202
++194 199 226 201 216 228 208 221 247 226 221 247 194 199 226 194 199 226 185 202 202 188 180 202
++194 199 226 226 221 247 185 202 202 146 151 137 146 151 137 168 146 127 177 169 143 177 169 143
++177 169 143 177 169 143 217 168 156 217 168 156 217 168 156 222 171 182 217 168 156 222 171 182
++214 214 134 222 171 182 217 168 156 217 168 156 225 222 201 222 171 182 214 214 134 222 171 182
++222 171 182 225 222 201 222 171 182 208 215 180 189 165 168 177 169 143 185 202 202 232 215 228
++221 238 247 208 221 247 226 221 247 201 216 228 208 221 247 226 221 247 221 238 247 231 239 247
++240 251 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++240 251 247 240 251 247 240 251 247 240 251 247 251 251 247 251 251 247 251 251 247 240 251 247
++232 215 228 201 216 228 201 216 228 201 216 228 225 222 201 233 241 227 233 241 227 214 214 134
++214 214 134 214 214 134 214 214 134 219 175 47 214 214 134 214 214 134 219 175 47 214 214 134
++177 171 115 214 214 134 177 171 115 219 175 47 177 171 115 177 171 115 157 148 53 146 150 115
++157 148 53 117 114 76 117 114 76 98 106 55 88 73 62 75 73 58 75 63 62 75 73 58
++75 63 62 75 63 62 75 72 67 75 72 67 75 72 67 75 72 67 75 63 62 75 72 67
++75 72 67 75 72 67 75 72 67 75 63 62 75 72 67 75 63 62 75 72 67 75 63 62
++75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 65 63 61
++75 63 62 65 63 61 75 63 62 65 55 54 75 73 58 65 63 61 65 63 61 65 55 54
++65 63 61 65 55 54 65 55 54 59 57 61 59 55 55 54 57 61 54 57 61 48 50 48
++48 50 48 48 50 48 48 44 48 48 50 48 48 44 48 48 44 48 48 44 48 42 47 42
++48 44 48 48 50 48 59 55 55 54 57 61 59 55 55 59 55 55 53 63 61 63 55 51
++65 63 61 65 63 61 65 63 61 75 59 67 75 72 67 75 72 67 75 72 67 75 59 67
++75 72 67 75 64 82 75 81 76 88 69 84 75 81 76 88 69 84 88 83 88 88 83 88
++88 83 88 88 83 88 88 83 88 88 83 88 88 69 84 75 81 76 88 69 84 75 64 82
++75 72 67 75 72 67 63 59 71 65 63 61 65 57 61 65 57 61 65 57 61 65 57 61
++65 57 61 65 57 61 65 57 61 65 55 54 65 63 61 65 55 54 65 63 61 65 63 61
++65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 63 55 51 63 55 51 55 55 48
++63 55 45 62 47 47 63 55 51 62 47 47 55 55 48 60 49 42 53 46 48 60 49 42
++53 46 48 55 39 37 47 44 42 47 39 42 42 38 42 42 38 42 42 38 42 36 35 37
++36 35 37 33 30 32 33 30 32 33 30 32 33 30 36 33 30 32 36 35 37 36 35 37
++36 35 37 32 39 24 36 35 37 47 44 42 47 44 42 47 44 42 47 44 42 52 55 48
++62 47 47 63 55 51 65 55 54 65 55 54 65 63 61 75 56 53 65 63 61 75 56 53
++75 73 58 65 63 61 75 73 58 75 73 58 75 63 62 75 73 58 75 63 62 75 73 58
++75 72 67 75 73 58 75 72 67 75 63 62 75 73 58 75 63 62 75 73 58 65 55 54
++75 63 62 65 55 54 65 63 61 65 63 61 75 63 62 65 63 61 65 63 61 75 63 62
++75 72 67 75 72 67 75 72 67 75 72 67 88 66 70 75 81 76 88 66 70 75 81 76
++88 69 84 75 81 76 88 69 84 88 83 74 88 83 88 75 81 82 88 83 88 88 83 88
++88 83 88 90 98 89 95 91 100 90 98 89 95 91 100 95 91 100 90 98 89 94 105 108
++94 105 108 112 96 108 95 119 107 112 96 108 112 123 108 112 123 108 111 119 127 111 119 127
++111 119 127 111 119 127 111 119 127 121 143 132 111 119 127 111 119 127 138 126 108 119 117 138
++138 126 108 111 119 127 138 126 108 119 117 138 138 126 108 111 119 127 138 126 108 111 119 127
++138 126 108 111 119 127 138 102 108 112 123 108 112 123 108 112 96 108 112 123 108 112 96 108
++98 113 84 94 105 108 112 96 108 99 93 84 99 93 84 101 83 74 99 93 84 101 83 74
++88 66 70 101 83 74 88 73 62 88 73 62 88 73 62 88 44 51 88 73 62 88 73 31
++75 56 53 88 44 51 88 44 51 88 44 51 88 44 51 88 73 31 88 44 51 88 44 51
++88 73 31 88 44 51 102 33 26 88 73 31 88 44 51 76 46 20 88 44 51 102 33 26
++88 73 31 88 44 51 76 46 20 88 44 51 101 74 26 88 44 51 88 73 31 88 44 51
++102 33 26 88 44 51 88 73 31 76 46 20 88 44 51 76 46 20 88 73 31 102 33 26
++76 46 20 88 44 51 76 46 20 88 44 51 88 73 31 88 44 51 88 44 51 88 73 31
++88 44 51 88 73 31 88 44 51 101 74 26 88 44 51 101 74 26 122 49 24 88 73 62
++122 49 24 88 73 62 101 74 26 120 63 71 88 73 62 101 74 26 120 63 71 101 74 26
++101 74 26 120 63 71 117 112 45 101 74 26 120 63 71 101 74 26 101 74 26 101 74 26
++101 74 26 120 63 71 101 74 26 120 63 71 101 74 26 120 63 71 101 74 26 101 74 26
++120 63 71 101 74 26 88 44 51 101 74 26 101 74 26 101 60 73 101 74 26 88 73 31
++120 63 71 88 73 31 122 49 24 101 74 26 101 74 26 88 44 51 101 74 26 101 74 26
++122 49 24 88 73 62 101 74 26 88 44 51 101 74 26 101 74 26 88 44 51 101 74 26
++88 73 31 88 73 31 88 44 51 88 73 31 88 73 31 102 33 26 88 73 31 88 73 31
++88 73 31 102 33 26 101 74 26 88 73 31 102 33 26 88 73 31 102 33 26 101 74 26
++
++23 20 24 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 33 30 30 36 35 37
++33 30 30 36 35 37 53 35 37 33 30 30 36 35 37 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30
++33 30 30 36 35 37 33 30 30 33 30 30 52 30 35 36 35 37 33 30 30 36 35 37
++32 39 24 36 35 37 36 35 37 32 39 24 33 30 30 33 30 30 34 30 15 22 25 24
++22 25 24 22 25 24 23 20 24 23 18 22 23 18 22 14 16 17 23 18 22 14 16 17
++23 20 24 23 20 24 15 22 17 23 18 22 23 18 22 22 25 24 26 30 28 34 30 15
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 36 35 37
++53 35 17 33 30 30 52 30 35 32 39 24 52 30 35 36 35 37 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 34 30 15 26 30 28 33 30 30 26 30 28 22 25 24
++22 25 24 23 20 24 22 25 24 15 22 17 23 20 24 23 20 24 22 25 24 23 20 24
++26 25 15 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 34 30 15 52 30 35
++33 30 30 53 35 37 33 30 30 52 30 35 36 35 37 47 47 21 36 35 37 52 30 35
++36 35 37 36 35 37 47 47 21 36 35 37 53 35 37 42 38 42 42 38 42 36 35 37
++42 41 42 36 35 37 42 41 42 36 35 37 55 39 37 42 38 42 36 35 37 42 38 42
++36 35 37 47 39 42 42 38 42 42 38 42 53 35 37 42 41 42 42 41 42 47 39 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 42 41 42 47 44 42 42 41 42 42 41 42 47 44 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 47 44 42 48 44 48 42 47 42 47 44 42 47 49 42
++47 49 42 53 46 48 51 49 42 47 44 42 51 49 42 51 49 42 51 49 42 62 47 47
++53 46 48 53 46 48 55 39 37 53 46 48 60 49 42 53 46 48 53 46 48 53 46 48
++55 39 37 51 49 42 60 49 42 53 46 48 60 49 42 62 47 47 62 47 47 60 49 42
++60 49 42 62 47 47 76 44 53 60 49 42 76 44 53 60 49 42 62 47 47 63 55 45
++76 44 53 63 55 45 76 44 53 60 49 42 76 44 53 60 49 42 76 44 53 76 44 53
++62 47 47 62 47 47 62 47 47 62 47 47 55 39 37 47 44 42 55 39 37 47 39 42
++47 44 42 42 41 42 47 47 21 42 38 42 36 35 37 53 35 37 36 35 37 55 39 37
++36 35 37 42 41 42 36 35 37 53 35 37 36 35 37 53 35 37 36 35 37 53 35 37
++36 35 37 53 35 37 36 35 37 42 41 42 36 35 37 55 39 37 47 44 42 47 44 42
++55 39 37 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 42 38 42 47 39 42 47 44 42 47 44 42 42 41 42 47 44 42 42 41 42
++53 35 37 42 41 42 42 41 42 47 47 21 36 35 37 36 35 37 53 35 37 32 39 24
++42 38 42 33 30 30 36 35 37 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32
++33 30 32 33 30 32 33 30 32 33 30 32 33 30 32 36 35 37 33 30 32 36 35 37
++36 35 37 33 30 32 36 35 37 33 30 32 33 30 32 33 30 32 33 30 32 33 30 32
++33 30 30 33 30 30 33 30 32 33 30 32 33 30 30 33 30 30 33 30 32 36 35 37
++36 35 37 36 35 37 36 35 37 52 30 35 55 39 37 59 36 42 76 18 19 52 30 15
++49 13 16 49 13 16 49 13 16 49 13 16 52 30 15 49 13 16 49 13 16 26 12 13
++23 10 10 23 10 10 49 13 16 23 10 10 49 13 16 23 10 10 49 13 16 23 10 10
++49 13 16 23 10 10 23 10 10 23 10 10 23 10 10 23 10 10 23 10 10 23 10 10
++13 4 7 23 10 10 13 4 7 13 4 7 23 10 10 3 3 1 23 10 10 53 46 48
++150 144 154 150 168 183 95 95 116 46 59 71 29 34 50 24 30 43 24 30 43 32 40 58
++77 90 100 148 160 159 208 221 247 221 238 247 221 238 247 208 221 247 208 221 247 201 216 228
++208 221 247 208 221 247 226 221 247 208 221 247 201 216 228 185 202 202 194 199 226 185 202 202
++194 199 226 185 202 202 194 199 226 194 199 226 225 222 201 194 199 226 201 216 228 194 199 226
++201 216 228 201 216 228 208 221 247 208 221 247 201 216 228 194 199 226 194 199 226 194 199 226
++201 216 228 201 216 228 166 156 164 95 91 100 75 72 67 117 99 86 168 146 127 177 169 143
++197 171 123 217 168 156 177 169 143 208 215 180 217 168 156 214 214 134 222 171 182 214 214 134
++222 171 182 217 168 156 214 214 134 222 171 182 217 168 156 222 171 182 222 171 182 214 214 134
++222 171 182 222 171 182 225 222 201 222 171 182 208 215 180 189 165 168 225 222 201 235 238 247
++226 221 247 221 238 247 208 221 247 208 221 247 201 216 228 208 221 247 208 221 247 226 221 247
++221 238 247 235 238 247 240 251 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 231 239 247
++201 216 228 185 202 202 232 215 228 233 241 227 233 241 227 225 222 201 225 222 201 214 214 134
++214 214 134 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 219 175 47 177 171 115 177 171 115 177 171 115 177 171 115 177 171 115
++138 126 108 117 127 86 117 127 86 117 99 86 101 83 74 88 73 62 75 77 62 75 73 58
++75 63 62 75 63 62 75 72 67 88 66 70 75 72 67 88 66 70 75 72 67 75 72 67
++88 66 70 75 72 67 75 63 62 75 72 67 75 63 62 75 72 67 75 63 62 75 72 67
++75 63 62 75 63 62 75 63 62 75 63 62 65 63 61 75 63 62 65 63 61 75 63 62
++75 63 62 65 55 54 75 63 62 65 63 61 75 63 62 65 63 61 75 63 62 65 63 61
++65 63 61 63 55 51 65 63 61 59 57 61 59 57 61 59 57 61 59 55 55 54 57 61
++53 46 48 48 50 48 48 50 48 48 50 48 43 42 50 48 50 48 42 47 42 48 44 48
++48 50 48 48 50 48 54 57 61 59 55 55 59 57 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 75 72 67 75 72 67 75 72 67 75 64 82 75 81 76 75 72 67
++75 81 82 88 69 84 88 69 84 88 83 88 88 83 88 88 83 88 88 83 74 88 83 88
++88 83 88 88 83 88 88 83 74 75 81 82 88 83 74 88 69 84 88 83 74 75 81 76
++88 69 84 75 72 67 75 72 67 63 59 71 65 63 61 63 59 71 65 63 61 65 57 61
++65 57 61 65 57 61 65 57 61 65 63 61 65 57 61 75 63 62 65 63 61 75 56 53
++65 63 61 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 63 55 51 63 55 45
++63 55 51 63 55 51 63 55 51 62 47 47 63 55 51 55 55 48 62 47 47 53 46 48
++51 49 42 53 46 48 55 39 37 42 47 42 47 47 21 42 38 42 42 38 42 36 35 37
++36 35 37 33 30 36 33 30 32 30 30 34 36 35 37 33 30 36 36 35 37 36 35 37
++36 35 37 47 39 42 47 44 42 47 44 42 47 49 42 47 49 42 51 49 42 55 55 48
++63 55 51 65 55 54 65 55 54 65 63 61 75 63 62 65 63 61 75 63 62 75 63 62
++75 63 62 75 73 58 75 63 62 75 73 58 75 72 67 75 73 58 75 73 58 75 63 62
++75 73 58 75 72 67 75 72 67 75 72 67 75 73 58 75 63 62 75 63 62 65 63 61
++65 63 61 75 63 62 65 63 61 75 56 53 65 63 61 75 63 62 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 81 69 75 72 67 75 81 76 88 66 70
++75 81 76 88 83 74 75 81 76 88 83 74 75 81 82 88 83 88 88 83 88 88 83 88
++90 98 89 95 91 100 95 91 100 95 91 100 94 105 108 94 105 108 94 105 108 112 96 108
++112 123 108 95 119 107 112 123 108 111 119 127 111 119 127 111 119 127 112 123 108 119 117 138
++138 126 108 119 117 138 138 126 108 111 119 127 138 126 108 121 143 132 119 117 138 121 143 132
++111 119 127 121 143 132 111 119 127 117 142 111 119 117 138 121 143 132 111 119 127 138 126 108
++111 119 127 112 123 108 112 123 108 111 119 127 112 123 108 112 123 108 112 96 108 98 113 84
++112 96 108 99 93 84 99 93 84 99 93 84 99 93 84 88 83 88 101 83 74 88 83 74
++101 83 74 88 66 70 88 73 62 88 73 62 88 73 62 88 44 51 88 73 62 88 44 51
++88 73 62 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 44 51 101 74 26
++88 44 51 76 46 20 88 44 51 88 44 51 76 46 20 88 44 51 88 73 31 76 46 20
++88 44 51 76 46 20 88 44 51 76 46 20 88 44 51 76 46 20 102 33 26 88 73 31
++88 44 51 76 46 20 102 33 26 88 44 51 88 73 31 102 33 26 88 44 51 76 46 20
++88 44 51 88 44 51 102 33 26 88 44 51 76 46 20 88 44 51 102 33 26 88 44 51
++102 33 26 88 73 31 102 33 26 88 73 31 88 44 51 101 74 26 88 73 62 101 74 26
++120 63 71 101 74 26 120 63 71 101 74 26 101 74 26 120 63 71 101 74 26 120 63 71
++101 74 26 101 74 26 120 63 71 101 74 26 101 74 26 120 63 71 101 74 26 120 63 71
++101 74 26 101 74 26 101 74 26 101 74 26 101 74 26 101 74 26 101 60 73 101 74 26
++101 74 26 101 60 73 101 74 26 101 60 73 101 74 26 88 44 51 101 74 26 88 44 51
++101 74 26 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 120 63 71 101 74 26
++88 73 62 101 74 26 122 49 24 101 74 26 88 44 51 101 74 26 101 74 26 88 44 51
++102 33 26 88 73 31 102 33 26 88 73 31 102 33 26 88 73 31 101 74 26 88 44 51
++101 74 26 88 73 31 88 44 51 101 74 26 88 73 31 102 33 26 88 73 31 88 73 31
++
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 32 39 24
++53 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 32 39 24
++52 30 35 33 30 30 32 39 24 52 30 35 32 39 24 53 35 37 32 39 24 36 35 37
++52 30 35 32 39 24 52 30 35 32 39 24 36 35 37 32 39 24 53 35 37 32 39 24
++52 30 35 47 47 21 32 39 24 52 30 35 33 30 30 33 30 30 26 30 28 33 30 30
++26 30 28 34 30 15 22 25 24 22 25 24 15 22 17 23 18 22 12 18 20 23 18 22
++23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 34 30 15 26 24 32
++33 30 30 33 30 30 33 30 30 52 30 35 33 30 30 32 39 24 52 30 35 36 35 37
++33 30 30 36 35 37 32 39 24 36 35 37 52 30 35 36 35 37 36 35 37 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 32 33 30 30 26 30 28 33 30 30 26 24 32
++33 30 30 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24 26 30 28
++26 30 28 33 30 30 26 25 15 33 30 30 33 30 30 33 30 30 33 30 30 32 39 24
++53 35 37 36 35 37 53 35 37 32 39 24 53 35 37 47 39 42 53 35 37 36 35 37
++53 35 37 52 30 35 47 39 42 36 35 37 47 47 21 36 35 37 53 35 37 47 39 42
++55 39 37 36 35 37 55 39 37 47 44 42 42 41 42 47 39 42 47 44 42 36 35 37
++47 39 42 42 38 42 47 39 42 42 41 42 42 41 42 47 44 42 47 44 42 47 44 42
++47 44 42 48 44 48 48 44 48 47 44 42 47 49 42 48 44 48 42 47 42 48 44 48
++47 44 42 48 44 48 42 41 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 47 44 42 47 44 42 47 44 42 48 44 48 48 44 48 48 50 48 47 49 42
++48 50 48 48 50 48 53 46 48 53 46 48 53 46 48 51 49 42 53 46 48 62 47 47
++60 49 42 53 46 48 60 49 42 53 46 48 60 49 42 53 46 48 60 49 42 53 46 48
++62 47 47 62 47 47 60 49 42 62 47 47 59 36 42 62 47 47 62 47 47 62 47 47
++62 47 47 62 47 47 62 47 47 60 49 42 76 44 53 63 55 45 76 44 53 63 55 45
++76 44 53 63 55 45 63 55 45 76 44 53 60 49 42 76 44 53 63 55 45 62 47 47
++75 56 53 76 44 53 62 47 47 62 47 47 62 47 47 53 46 48 55 39 37 47 44 42
++55 39 37 47 39 42 47 44 42 47 39 42 47 39 42 32 39 24 55 39 37 36 35 37
++42 41 42 47 39 42 47 39 42 42 41 42 42 38 42 42 41 42 42 38 42 42 41 42
++42 38 42 42 41 42 42 38 42 42 41 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 53 46 48 51 49 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 39 42 47 44 42 47 39 42 47 44 42
++42 41 42 47 44 42 47 39 42 42 41 42 47 39 42 42 41 42 42 38 42 36 35 37
++47 39 42 36 35 37 36 35 37 33 30 32 36 35 37 36 35 37 36 35 37 36 35 37
++33 30 32 33 30 32 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 33 30 32 36 35 37 33 30 32 36 35 37
++33 30 32 36 35 37 36 35 37 36 35 37 33 30 32 36 35 37 36 35 37 36 35 37
++42 38 42 36 35 37 36 35 37 36 35 37 55 39 37 55 39 37 59 36 42 49 13 16
++49 13 16 49 13 16 49 13 16 49 13 16 49 13 16 49 13 16 49 13 16 49 13 16
++49 13 16 49 13 16 49 13 16 49 13 16 49 13 16 49 13 16 49 13 16 49 13 16
++49 13 16 49 13 16 49 13 16 23 10 10 49 13 16 23 10 10 49 13 16 23 10 10
++23 10 10 23 10 10 23 10 10 23 10 10 23 10 10 3 3 1 26 24 32 75 81 82
++95 108 128 95 95 116 32 40 58 24 30 43 24 30 43 24 30 43 24 30 43 29 34 50
++32 40 58 95 108 128 188 180 202 208 221 247 221 238 247 201 216 228 221 238 247 226 221 247
++201 216 228 221 238 247 201 216 228 226 221 247 201 216 228 194 199 226 188 180 202 185 202 202
++194 199 226 188 180 202 185 202 202 194 199 226 194 199 226 201 216 228 201 216 228 201 216 228
++194 199 226 201 216 228 201 216 228 226 221 247 201 216 228 201 216 228 194 199 226 201 216 228
++194 199 226 188 180 202 95 95 116 22 25 24 23 18 22 63 55 45 117 99 86 168 146 127
++189 165 168 177 169 143 217 168 156 217 168 156 217 168 156 222 171 182 217 168 156 217 168 156
++217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 214 214 134 217 168 156 222 171 182
++214 214 134 217 168 156 217 168 156 217 168 156 217 168 156 222 171 182 225 222 201 233 241 227
++246 237 247 226 221 247 233 241 227 226 221 247 226 221 247 201 216 228 232 215 228 201 216 228
++201 216 228 208 221 247 226 221 247 221 238 247 231 239 247 240 251 247 240 251 247 240 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 240 251 247 240 251 247 232 215 228
++185 202 202 185 202 202 232 215 228 240 251 247 251 251 247 225 222 201 233 241 227 214 214 134
++214 214 134 219 175 47 214 214 134 214 214 134 214 214 134 219 175 47 214 214 134 157 148 53
++214 214 134 219 175 47 177 171 115 214 214 134 177 171 115 219 175 47 177 171 115 157 148 53
++177 171 115 157 148 53 146 150 115 117 114 76 117 114 76 98 106 55 88 73 62 88 73 62
++75 73 58 75 72 67 88 66 70 75 81 76 88 66 70 75 81 76 75 72 67 88 66 70
++75 72 67 88 66 70 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 63 62
++75 72 67 75 72 67 75 72 67 75 63 62 75 63 62 75 73 58 75 63 62 75 63 62
++75 63 62 75 63 62 65 63 61 75 72 67 75 63 62 75 72 67 65 63 61 75 63 62
++65 63 61 65 63 61 65 63 61 65 63 61 65 57 61 59 57 61 59 57 61 59 55 55
++54 57 61 48 50 48 48 50 48 48 50 48 48 50 48 48 44 48 48 50 48 48 50 48
++48 50 48 59 55 55 59 55 55 59 57 61 65 63 61 59 57 61 65 63 61 65 63 61
++65 63 61 75 72 67 63 59 71 75 72 67 75 64 82 75 81 76 88 69 84 75 81 82
++88 69 84 75 81 82 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88
++99 93 84 88 83 88 88 83 88 88 83 88 88 69 84 75 81 82 88 69 84 75 81 76
++88 69 84 75 72 67 75 64 82 75 72 67 75 59 67 75 72 67 75 59 67 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 75 63 62 65 63 61
++75 63 62 65 63 61 75 63 62 65 57 61 65 55 54 65 55 54 65 55 54 63 55 51
++63 55 51 62 47 47 63 55 51 59 55 55 62 47 47 55 55 48 62 47 47 60 49 42
++53 46 48 51 49 42 47 44 42 47 39 42 47 39 42 47 39 42 42 38 42 47 39 42
++36 35 37 36 35 37 36 35 37 33 30 36 36 35 37 36 35 37 36 35 37 36 35 37
++42 41 42 42 41 42 47 44 42 47 49 42 48 50 48 48 50 48 53 46 48 59 55 55
++63 55 51 65 55 54 75 56 53 65 63 61 75 63 62 75 63 62 75 63 62 75 63 62
++75 63 62 75 72 67 88 73 62 75 72 67 88 73 62 75 63 62 88 73 62 75 63 62
++75 72 67 75 72 67 75 72 67 75 63 62 75 73 58 75 63 62 75 63 62 75 63 62
++75 63 62 65 63 61 75 63 62 75 63 62 75 72 67 65 63 61 75 63 62 75 72 67
++75 72 67 75 72 67 75 81 69 88 66 70 75 72 67 88 69 84 75 72 67 88 83 74
++75 81 76 88 83 74 88 69 84 88 83 74 75 81 82 88 83 88 88 83 88 95 91 100
++90 98 89 95 91 100 94 105 108 95 91 100 94 105 108 95 91 100 112 123 108 94 105 108
++112 123 108 112 96 108 111 119 127 112 123 108 111 119 127 138 126 108 111 119 127 121 143 132
++111 119 127 111 119 127 121 143 132 111 119 127 121 143 132 119 117 138 121 143 132 138 126 108
++111 119 127 138 126 108 138 126 108 111 119 127 138 126 108 111 119 127 138 126 108 111 119 127
++138 126 108 111 119 127 138 126 108 112 123 108 112 123 108 112 96 108 112 123 108 112 96 108
++112 96 108 98 113 84 112 96 108 95 91 100 99 93 84 99 93 84 101 83 74 88 83 74
++101 83 74 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 44 51 75 56 53
++88 44 51 88 73 31 88 44 51 88 44 51 88 44 51 88 44 51 88 44 51 76 46 20
++88 44 51 88 44 51 76 46 20 88 44 51 76 46 20 88 44 51 76 46 20 88 44 51
++76 46 20 88 44 51 76 46 20 102 33 26 76 46 20 88 44 51 76 46 20 88 44 51
++76 46 20 88 44 51 88 73 31 76 46 20 102 33 26 88 73 31 88 44 51 76 46 20
++88 44 51 76 46 20 88 73 31 88 44 51 101 74 26 88 44 51 88 73 31 88 44 51
++88 73 31 88 44 51 101 74 26 88 44 51 88 73 31 122 49 24 88 44 51 101 74 26
++101 74 26 101 74 26 101 74 26 120 63 71 101 74 26 101 74 26 120 63 71 101 74 26
++101 74 26 120 63 71 101 74 26 101 74 26 120 63 71 101 74 26 101 74 26 101 74 26
++101 74 26 120 63 71 101 74 26 101 60 73 101 74 26 120 63 71 101 74 26 101 74 26
++88 44 51 101 74 26 101 74 26 101 74 26 88 44 51 101 74 26 101 74 26 120 63 71
++101 74 26 88 44 51 101 74 26 101 74 26 88 44 51 101 74 26 88 73 31 122 49 24
++101 74 26 88 44 51 101 74 26 88 73 62 101 74 26 102 33 26 88 73 31 101 74 26
++101 74 26 88 44 51 101 74 26 88 73 31 88 73 31 101 74 26 88 44 51 101 74 26
++88 44 51 101 74 26 101 74 26 102 33 26 88 73 31 88 73 31 102 33 26 101 74 26
++
++33 30 30 33 30 30 52 30 35 36 35 37 36 35 37 53 35 37 36 35 37 36 35 37
++36 35 37 53 35 37 36 35 37 53 35 37 32 39 24 52 30 35 36 35 37 36 35 37
++32 39 24 36 35 37 53 35 37 36 35 37 53 35 37 42 41 42 36 35 37 53 35 37
++32 39 24 36 35 37 32 39 24 53 35 37 33 30 30 53 35 37 32 39 24 47 47 21
++32 39 24 47 47 21 33 30 32 33 30 30 32 39 24 33 30 30 33 30 30 34 30 15
++26 30 28 33 30 30 33 30 30 22 25 24 26 25 15 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 22 25 24 22 25 24 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 33 30 30 33 30 30 32 39 24 52 30 35 36 35 37 32 39 24 53 35 37
++36 35 37 52 30 35 52 30 35 52 30 35 32 39 24 36 35 37 52 30 35 36 35 37
++36 35 37 52 30 35 33 30 30 36 35 37 33 30 32 33 30 30 26 30 28 33 30 30
++26 24 32 22 25 24 26 30 28 22 25 24 22 25 24 26 30 28 33 30 30 22 25 24
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 52 30 35 36 35 37
++53 35 37 32 39 24 53 35 37 47 39 42 53 35 37 36 35 37 55 39 37 47 44 42
++47 47 21 42 38 42 47 39 42 47 39 42 47 39 42 47 44 42 47 39 42 42 41 42
++47 44 42 47 47 21 42 41 42 47 44 42 47 39 42 48 44 48 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 39 42 47 44 42 47 44 42 48 44 48 48 44 48
++48 44 48 53 46 48 53 46 48 48 50 48 48 50 48 48 50 48 47 44 42 48 44 48
++47 44 42 48 44 48 42 47 42 47 44 42 42 47 42 42 41 42 47 44 42 42 41 42
++47 44 42 48 44 48 48 44 48 48 44 48 48 44 48 48 44 48 48 50 48 53 46 48
++48 50 48 53 46 48 53 46 48 55 55 48 55 55 48 53 46 48 60 49 42 53 46 48
++62 47 47 53 46 48 60 49 42 62 47 47 53 46 48 60 49 42 62 47 47 62 47 47
++62 47 47 62 47 47 62 47 47 62 47 47 62 47 47 62 47 47 62 47 47 75 56 53
++76 44 53 63 55 45 76 44 53 76 44 53 63 55 45 75 56 53 75 56 53 63 55 45
++76 44 53 63 55 45 76 44 53 63 55 45 63 55 45 63 55 45 76 44 53 75 56 53
++62 47 47 65 55 54 62 47 47 62 47 47 62 47 47 60 49 42 55 39 37 55 39 37
++47 49 42 47 44 42 47 44 42 55 39 37 42 41 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 42 41 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 47 44 42
++51 49 42 47 44 42 47 44 42 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48
++51 49 42 48 44 48 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 42 41 42 42 41 42 36 35 37 42 41 42
++36 35 37 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 37 35 43 36 35 37
++36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 42 38 42 36 35 37 42 38 42
++36 35 37 36 35 37 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 42 41 42
++42 38 42 42 41 42 42 47 42 47 44 42 47 44 42 60 49 42 55 39 37 52 30 35
++49 13 16 23 10 10 49 13 16 49 13 16 76 18 19 76 18 19 49 13 16 49 13 16
++49 13 16 49 13 16 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 76 18 19
++49 13 16 49 13 16 49 13 16 49 13 16 49 13 16 49 13 16 49 13 16 23 10 10
++49 13 16 13 4 7 23 10 10 13 4 7 13 4 7 13 4 7 57 43 51 111 119 127
++94 105 108 60 63 87 34 42 77 61 78 101 77 91 115 61 78 101 42 60 86 29 34 50
++12 18 30 61 78 101 150 168 183 194 199 226 221 238 247 208 221 247 232 215 228 208 221 247
++221 238 247 201 216 228 208 221 247 221 238 247 201 216 228 201 216 228 185 202 202 188 180 202
++185 202 202 185 202 202 194 199 226 194 199 226 201 216 228 201 216 228 194 199 226 201 216 228
++201 216 228 226 221 247 208 221 247 201 216 228 201 216 228 201 216 228 194 199 226 208 221 247
++185 202 202 122 134 144 43 42 50 3 3 1 3 3 1 23 10 10 63 55 45 117 99 86
++168 146 127 177 169 143 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 222 171 182
++214 214 134 222 171 182 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156
++217 168 156 217 168 156 217 168 156 217 168 156 208 215 180 222 171 182 208 215 180 232 215 228
++225 222 201 232 215 228 232 215 228 231 239 247 221 238 247 226 221 247 208 221 247 208 221 247
++208 221 247 201 216 228 208 221 247 208 221 247 226 221 247 221 238 247 231 239 247 235 238 247
++240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 235 238 247 231 239 247 201 216 228
++188 180 202 201 216 228 235 238 247 251 251 247 233 241 227 225 222 201 225 222 201 214 214 134
++214 214 134 214 214 134 214 214 134 219 175 47 214 214 134 214 214 134 219 175 47 214 214 134
++214 214 134 214 214 134 219 175 47 214 214 134 219 175 47 177 171 115 177 171 115 177 171 115
++177 171 115 177 171 115 157 148 53 138 126 108 117 127 86 117 114 76 101 83 74 88 83 74
++88 73 62 75 72 67 88 73 62 75 81 69 88 66 70 88 66 70 88 66 70 75 81 76
++75 72 67 75 72 67 88 69 84 75 72 67 75 72 67 75 72 67 75 72 67 88 66 70
++75 72 67 75 59 67 75 72 67 75 72 67 75 63 62 75 72 67 75 63 62 75 72 67
++75 63 62 75 73 58 75 63 62 75 72 67 75 63 62 75 72 67 75 59 67 75 72 67
++65 63 61 75 59 67 65 63 61 65 63 61 63 59 71 63 59 71 59 57 61 59 57 61
++59 55 55 48 50 48 57 43 64 48 50 48 57 43 64 48 50 48 54 57 61 57 43 64
++54 57 61 54 57 61 59 57 61 59 57 61 59 57 61 65 63 61 65 63 61 63 59 71
++75 72 67 75 64 82 75 72 67 75 64 82 75 81 76 88 69 84 75 81 82 88 69 84
++75 81 82 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88
++99 93 84 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 74 88 69 84
++75 81 76 88 69 84 75 72 67 75 72 67 59 69 70 75 72 67 75 72 67 63 59 71
++75 72 67 65 63 61 65 63 61 65 63 61 75 63 62 75 63 62 75 63 62 75 63 62
++75 63 62 75 63 62 65 63 61 75 56 53 75 63 62 65 55 54 65 55 54 65 55 54
++63 55 51 65 55 54 63 55 51 63 55 51 63 55 51 63 55 51 62 47 47 62 47 47
++53 46 48 60 49 42 51 49 42 47 44 42 47 44 42 47 39 42 47 39 42 42 38 42
++37 35 43 36 35 37 36 35 37 36 35 37 37 35 43 36 35 37 37 35 43 42 41 42
++42 41 42 47 44 42 47 44 42 48 50 48 53 46 48 55 55 48 55 55 48 63 55 51
++59 55 55 65 63 61 65 63 61 75 63 62 75 63 62 75 73 58 75 63 62 88 73 62
++88 73 62 88 66 70 75 72 67 88 73 62 88 66 70 88 73 62 75 72 67 88 73 62
++75 72 67 88 73 62 75 72 67 88 73 62 75 63 62 75 63 62 65 63 61 75 63 62
++75 63 62 75 63 62 65 63 61 75 63 62 65 63 61 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 88 66 70 75 81 69 75 72 67 75 81 69 88 83 74 88 69 84
++88 83 74 88 83 88 88 83 74 88 83 88 88 83 88 88 83 88 95 91 100 95 91 100
++95 91 100 95 91 100 94 105 108 112 96 108 94 105 108 112 96 108 95 119 107 112 96 108
++111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 138 126 108
++111 119 127 121 143 132 138 126 108 111 119 127 138 126 108 121 143 132 138 126 108 119 117 138
++138 126 108 111 119 127 121 143 132 138 126 108 111 119 127 138 126 108 121 143 132 111 119 127
++138 126 108 111 119 127 111 119 127 112 123 108 112 123 108 112 123 108 112 96 108 112 123 108
++117 99 86 94 105 108 99 93 84 99 93 84 99 93 84 99 93 84 88 83 88 101 83 74
++88 66 70 88 66 70 88 73 62 88 73 62 88 44 51 88 73 62 88 44 51 88 73 62
++88 44 51 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 101 74 26 88 44 51
++88 44 51 88 73 31 88 44 51 76 46 20 88 44 51 76 46 20 88 44 51 76 46 20
++88 44 51 76 46 20 88 44 51 76 46 20 88 44 51 76 46 20 88 44 51 102 33 26
++88 73 31 76 46 20 88 44 51 76 46 20 88 44 51 76 46 20 102 33 26 88 73 31
++102 33 26 88 44 51 76 46 20 88 44 51 102 33 26 88 73 31 88 44 51 102 33 26
++88 73 31 102 33 26 88 44 51 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26
++120 63 71 101 74 26 88 44 51 101 74 26 120 63 71 101 74 26 101 74 26 120 63 71
++101 74 26 101 74 26 120 63 71 101 74 26 117 112 45 101 74 26 120 63 71 101 74 26
++120 63 71 101 74 26 101 74 26 101 74 26 120 63 71 101 74 26 101 74 26 101 60 73
++101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 88 44 51
++101 74 26 101 74 26 88 44 51 101 74 26 120 63 71 101 74 26 88 44 51 101 74 26
++88 44 51 101 74 26 101 74 26 101 74 26 88 44 51 101 74 26 88 73 31 102 33 26
++88 73 31 101 74 26 88 44 51 102 33 26 88 73 31 88 44 51 101 74 26 101 74 26
++101 74 26 88 44 51 101 74 26 88 73 31 101 74 26 102 33 26 88 73 31 101 74 26
++
++33 30 30 36 35 37 32 39 24 53 35 37 36 35 37 36 35 37 36 35 37 53 35 37
++36 35 37 36 35 37 42 41 42 36 35 37 47 39 42 36 35 37 36 35 37 36 35 37
++53 35 37 36 35 37 36 35 37 47 47 21 36 35 37 55 39 37 36 35 37 47 47 21
++36 35 37 53 35 37 36 35 37 36 35 37 32 39 24 53 35 37 36 35 37 53 35 37
++32 39 24 52 30 35 32 39 24 53 35 37 33 30 30 33 30 30 33 30 30 33 30 30
++34 30 15 33 30 30 26 25 15 26 30 28 22 25 24 22 25 24 22 25 24 22 25 24
++23 20 24 26 24 32 23 20 24 26 30 28 23 20 24 23 20 24 33 30 30 33 30 30
++33 30 30 33 30 30 36 35 37 36 35 37 36 35 37 36 35 37 53 35 37 36 35 37
++47 47 21 42 38 42 47 47 21 36 35 37 53 35 37 53 35 37 36 35 37 36 35 37
++36 35 37 32 39 24 36 35 37 33 30 32 31 35 35 33 30 32 33 30 32 26 24 32
++26 30 28 33 30 30 26 30 28 33 30 30 33 30 30 22 25 24 33 30 30 26 30 28
++33 30 30 33 30 30 33 30 32 33 30 32 52 30 35 36 35 37 36 35 37 32 39 24
++42 41 42 53 35 37 42 38 42 47 47 21 47 39 42 55 39 37 53 35 37 47 39 42
++47 39 42 55 39 37 47 39 42 47 47 21 47 44 42 47 39 42 47 39 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 48 44 48 48 44 48 48 44 48 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 48 44 48 53 46 48 53 46 48 53 46 48
++53 46 48 53 46 48 53 46 48 48 50 48 53 46 48 48 50 48 48 44 48 47 44 42
++48 44 48 48 44 48 48 44 48 48 44 48 42 47 42 47 44 42 42 47 42 42 41 42
++47 44 42 48 44 48 48 50 48 48 50 48 48 50 48 53 46 48 48 50 48 48 50 48
++48 50 48 55 55 48 53 46 48 53 46 48 55 55 48 55 55 48 55 55 48 62 47 47
++55 55 48 62 47 47 62 47 47 62 47 47 62 47 47 62 47 47 62 47 47 62 47 47
++63 55 51 63 55 51 62 47 47 62 47 47 62 47 47 75 56 53 62 47 47 62 47 47
++63 55 45 76 44 53 63 55 45 75 56 53 75 56 53 63 55 45 88 44 51 63 55 45
++75 56 53 63 55 45 75 56 53 75 56 53 76 44 53 75 56 53 63 55 45 75 56 53
++62 47 47 75 56 53 65 55 54 63 55 51 62 47 47 62 47 47 53 46 48 53 46 48
++51 49 42 51 49 42 51 49 42 47 44 42 51 49 42 55 39 37 47 44 42 47 44 42
++47 44 42 47 39 42 47 44 42 47 44 42 47 44 42 47 44 42 48 44 48 47 44 42
++48 44 48 47 44 42 47 44 42 47 44 42 51 49 42 51 49 42 53 46 48 53 46 48
++53 46 48 53 46 48 48 44 48 53 46 48 48 50 48 53 46 48 55 55 48 53 46 48
++53 46 48 53 46 48 51 49 42 53 46 48 51 49 42 51 49 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 42 41 42
++42 38 42 42 41 42 42 38 42 36 35 37 42 38 42 36 35 37 42 38 42 36 35 37
++42 38 42 36 35 37 36 35 37 42 38 42 42 38 42 42 38 42 42 38 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 38 42 42 38 42 42 38 42 42 38 42
++36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 42 38 42 42 38 42 42 38 42
++42 41 42 42 41 42 47 44 42 47 44 42 47 39 42 53 46 48 62 47 47 52 30 35
++49 13 16 49 13 16 49 13 16 49 13 16 49 13 16 76 18 19 76 18 19 49 13 16
++49 13 16 49 13 16 76 18 19 76 18 19 49 13 16 49 13 16 49 13 16 49 13 16
++76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 49 13 16 49 13 16 49 13 16
++23 10 10 23 10 10 23 10 10 23 10 10 13 4 7 13 4 7 75 72 67 150 144 154
++122 134 144 95 95 116 98 121 131 150 168 183 185 202 202 150 168 183 77 91 115 34 42 77
++24 30 43 63 59 71 122 134 144 185 202 202 221 238 247 201 216 228 201 216 228 208 221 247
++208 221 247 221 238 247 201 216 228 226 221 247 201 216 228 194 199 226 194 199 226 188 180 202
++185 202 202 188 180 202 185 202 202 194 199 226 194 199 226 194 199 226 201 216 228 201 216 228
++201 216 228 201 216 228 208 221 247 201 216 228 201 216 228 201 216 228 201 216 228 226 221 247
++166 176 200 77 91 115 12 18 30 3 3 1 13 4 7 15 17 7 26 12 13 63 55 45
++138 126 108 177 169 143 217 168 156 217 168 156 222 171 182 214 214 134 222 171 182 208 215 180
++217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156
++217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 222 171 182 222 171 182
++222 171 182 225 222 201 201 216 228 232 215 228 231 239 247 231 239 247 231 239 247 226 221 247
++221 238 247 208 221 247 208 221 247 232 215 228 201 216 228 201 216 228 226 221 247 221 238 247
++231 239 247 235 238 247 235 238 247 235 238 247 235 238 247 231 239 247 226 221 247 185 202 202
++185 202 202 185 202 202 231 239 247 251 251 247 233 241 227 233 241 227 214 214 134 225 222 201
++214 214 134 214 214 134 219 175 47 214 214 134 214 214 134 219 175 47 214 214 134 219 175 47
++214 214 134 219 175 47 214 214 134 177 171 115 214 214 134 219 175 47 214 214 134 177 171 115
++177 171 115 177 171 115 177 171 115 157 148 53 138 126 108 117 114 76 117 114 76 101 83 74
++88 83 74 88 83 74 88 66 70 75 81 69 88 66 70 75 81 76 88 83 74 88 66 70
++88 83 74 88 66 70 75 81 69 88 66 70 75 72 67 88 83 74 75 72 67 75 72 67
++88 66 70 75 72 67 88 66 70 75 72 67 75 72 67 75 72 67 75 63 62 75 72 67
++75 72 67 75 59 67 75 72 67 65 63 61 75 72 67 75 59 67 75 72 67 63 59 71
++75 63 62 59 69 70 75 59 67 65 63 61 65 63 61 63 59 71 59 57 61 59 57 61
++54 57 61 54 57 61 48 50 48 54 57 61 45 57 61 53 46 48 54 57 61 54 57 61
++54 57 61 59 57 61 59 57 61 59 57 61 59 57 61 65 63 61 63 59 71 75 72 67
++63 59 71 75 72 67 75 81 76 75 81 76 88 69 84 75 81 82 88 69 84 75 81 82
++88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 95 91 100 88 83 88 88 83 88
++88 83 88 95 91 100 88 83 88 88 83 88 88 83 88 88 69 84 88 83 88 88 83 88
++75 81 76 75 64 82 75 81 76 75 64 82 75 72 67 63 59 71 75 72 67 75 72 67
++75 72 67 75 59 67 75 72 67 75 63 62 65 63 61 75 63 62 75 63 62 75 72 67
++75 73 58 75 63 62 75 63 62 75 63 62 75 63 62 75 56 53 65 63 61 75 56 53
++65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 63 55 51 63 55 51
++63 55 51 62 47 47 53 46 48 51 49 42 51 49 42 47 44 42 48 44 48 47 39 42
++42 38 42 42 38 42 42 38 42 36 35 37 37 35 43 42 38 42 42 38 42 42 41 42
++47 44 42 42 47 42 51 49 42 48 50 48 52 55 48 55 55 48 59 55 55 65 55 54
++65 63 61 65 55 54 75 63 62 75 63 62 75 63 62 75 63 62 88 66 70 75 63 62
++75 72 67 88 73 62 75 72 67 88 73 62 75 72 67 88 73 62 75 72 67 88 73 62
++75 72 67 75 63 62 75 72 67 75 63 62 75 63 62 75 73 58 75 63 62 75 73 58
++75 63 62 65 63 61 75 63 62 75 63 62 65 63 61 75 72 67 75 63 62 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 88 66 70 75 72 67 75 81 76
++88 83 74 88 83 88 88 83 88 99 93 84 88 83 88 90 98 89 95 91 100 95 91 100
++95 91 100 94 105 108 112 96 108 98 113 84 112 96 108 94 105 108 111 119 127 112 123 108
++112 123 108 111 119 127 112 123 108 111 119 127 112 123 108 111 119 127 121 143 132 111 122 142
++138 126 108 119 117 138 111 119 127 121 143 132 121 143 132 119 117 138 122 134 144 138 126 108
++121 143 132 111 119 127 138 126 108 111 119 127 121 143 132 138 126 108 111 119 127 138 126 108
++121 143 132 112 123 108 138 126 108 111 119 127 112 123 108 112 96 108 112 123 108 117 99 86
++94 105 108 112 96 108 117 99 86 95 91 100 99 93 84 88 83 88 101 83 74 88 66 70
++101 83 74 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 44 51 88 73 31
++75 56 53 88 73 31 88 44 51 88 44 51 88 44 51 88 44 51 88 44 51 88 73 31
++88 44 51 76 46 20 88 44 51 88 44 51 76 46 20 88 44 51 76 46 20 88 44 51
++76 46 20 88 44 51 76 46 20 76 46 20 88 73 31 102 33 26 76 46 20 88 44 51
++76 46 20 88 44 51 76 46 20 102 33 26 88 73 31 88 44 51 76 46 20 88 44 51
++76 46 20 88 73 31 102 33 26 88 44 51 88 73 31 102 33 26 88 44 51 88 73 31
++88 44 51 88 73 31 88 44 51 102 33 26 101 74 26 88 44 51 101 74 26 101 74 26
++88 44 51 101 74 26 120 63 71 101 74 26 101 74 26 88 44 51 101 74 26 101 74 26
++120 63 71 101 74 26 101 74 26 120 63 71 101 74 26 120 63 71 101 74 26 101 74 26
++101 74 26 101 74 26 120 63 71 88 44 51 101 74 26 101 74 26 88 73 62 122 49 24
++101 74 26 101 74 26 88 44 51 122 49 24 101 74 26 88 44 51 101 74 26 88 44 51
++101 74 26 88 44 51 101 74 26 101 74 26 88 44 51 101 74 26 101 74 26 88 44 51
++101 74 26 101 74 26 101 60 73 101 74 26 101 74 26 88 44 51 101 74 26 88 73 31
++101 74 26 88 44 51 101 74 26 88 73 31 101 74 26 101 74 26 88 44 51 101 74 26
++102 33 26 101 74 26 88 73 31 102 33 26 101 74 26 88 73 31 101 74 26 101 74 26
++
++36 35 37 36 35 37 36 35 37 36 35 37 47 39 42 36 35 37 55 39 37 32 39 24
++47 39 42 47 47 21 42 38 42 47 44 42 36 35 37 55 39 37 42 41 42 47 47 21
++42 38 42 42 41 42 53 35 37 42 41 42 47 47 21 42 41 42 47 47 21 42 38 42
++53 35 37 32 39 24 47 47 21 53 35 37 47 39 42 53 35 37 47 47 21 42 41 42
++47 47 21 36 35 37 32 39 24 36 35 37 32 39 24 33 30 30 32 39 24 32 39 24
++33 30 30 29 35 19 33 30 30 26 30 28 26 25 15 26 30 28 23 20 24 26 24 32
++23 20 24 26 24 32 22 25 24 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++33 30 30 52 30 35 32 39 24 52 30 35 36 35 37 47 47 21 36 35 37 47 39 42
++42 38 42 53 35 37 42 38 42 53 35 37 36 35 37 36 35 37 47 44 42 36 35 37
++53 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 30 32 33 30 32 33 30 32
++33 30 32 26 24 32 33 30 30 30 30 34 33 30 32 33 30 32 33 30 32 33 30 30
++33 30 30 33 30 32 36 35 37 36 35 37 36 35 37 36 35 37 52 30 35 42 38 42
++53 35 37 42 41 42 53 35 37 42 41 42 47 39 42 36 35 37 47 44 42 47 39 42
++47 44 42 47 39 42 47 44 42 47 39 42 47 39 42 47 44 42 55 39 37 51 49 42
++53 46 48 51 49 42 53 46 48 47 44 42 47 44 42 53 46 48 47 44 42 51 49 42
++47 44 42 47 44 42 53 46 48 48 44 48 51 49 42 53 46 48 48 50 48 53 46 48
++48 50 48 53 46 48 52 55 48 53 46 48 52 55 48 48 50 48 48 50 48 48 44 48
++48 50 48 42 47 42 42 47 42 48 50 48 48 44 48 42 47 42 42 47 42 42 41 42
++48 50 48 48 44 48 48 50 48 48 50 48 52 55 48 53 46 48 55 55 48 53 46 48
++55 55 48 62 47 47 55 55 48 63 55 51 62 47 47 62 47 47 63 55 51 62 47 47
++63 55 45 63 55 51 55 55 48 62 47 47 63 55 51 63 55 45 63 55 51 63 55 51
++62 47 47 63 55 51 63 55 51 63 55 45 65 55 54 62 47 47 76 44 53 63 55 45
++76 44 53 63 55 45 75 56 53 75 56 53 76 44 53 63 55 45 75 56 53 63 55 45
++75 56 53 62 47 47 75 56 53 75 56 53 63 55 45 75 56 53 75 56 53 65 55 54
++75 56 53 65 55 54 65 55 54 75 56 53 62 47 47 62 47 47 62 47 47 60 49 42
++53 46 48 51 49 42 51 49 42 51 49 42 51 49 42 51 49 42 47 49 42 47 44 42
++47 44 42 47 44 42 48 44 48 48 44 48 48 44 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 44 48 51 49 42 48 50 48 53 46 48 48 50 48 52 55 48
++48 50 48 48 50 48 51 49 42 48 50 48 55 55 48 55 55 48 55 55 48 55 55 48
++53 46 48 55 55 48 48 50 48 48 50 48 48 50 48 53 46 48 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 48 44 48 47 44 42 47 44 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 38 42 36 35 37 42 41 42 42 38 42 42 38 42 42 38 42
++42 38 42 36 35 37 42 38 42 42 38 42 42 38 42 42 38 42 42 41 42 42 41 42
++42 41 42 47 44 42 42 41 42 42 41 42 42 38 42 42 38 42 36 35 37 42 38 42
++42 38 42 42 38 42 36 35 37 42 38 42 37 35 43 36 35 37 42 41 42 42 41 42
++42 41 42 48 44 48 43 42 50 42 47 42 48 44 48 48 44 48 53 46 48 59 36 42
++55 39 37 52 30 35 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16
++76 18 19 76 18 19 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16 76 18 19
++49 13 16 49 13 16 49 13 16 23 10 10 23 10 10 23 10 10 88 83 88 166 174 181
++188 180 202 188 180 202 185 202 202 226 221 247 221 238 247 221 238 247 166 174 181 77 91 115
++29 34 50 32 40 58 95 108 128 166 176 200 226 221 247 201 216 228 201 216 228 208 221 247
++201 216 228 226 221 247 221 238 247 201 216 228 208 221 247 201 216 228 185 202 202 188 180 202
++185 202 202 194 199 226 188 180 202 185 202 202 194 199 226 201 216 228 201 216 228 201 216 228
++226 221 247 208 221 247 208 221 247 201 216 228 201 216 228 194 199 226 208 221 247 208 221 247
++166 174 181 63 59 71 7 10 17 3 4 9 7 12 13 13 4 7 22 24 13 55 39 37
++101 83 74 168 146 127 177 169 143 217 168 156 217 168 156 222 171 182 225 222 201 217 168 156
++222 171 182 214 214 134 217 168 156 217 168 156 217 168 156 197 171 123 217 168 156 217 168 156
++217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 208 215 180 217 168 156 217 168 156
++189 165 168 217 168 156 222 171 182 208 215 180 232 215 228 232 215 228 235 238 247 235 238 247
++231 239 247 233 241 227 221 238 247 221 238 247 221 238 247 231 239 247 221 238 247 231 239 247
++231 239 247 231 239 247 231 239 247 221 238 247 231 239 247 221 238 247 201 216 228 185 202 202
++188 180 202 185 202 202 232 215 228 251 251 247 251 251 247 225 222 201 225 222 201 225 222 201
++214 214 134 214 214 134 214 214 134 219 175 47 214 214 134 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 177 171 115 219 175 47
++177 171 115 177 171 115 177 171 115 177 171 115 157 148 53 117 127 86 117 114 76 117 114 76
++101 83 74 88 83 74 88 83 74 88 66 70 88 83 74 88 69 84 88 83 74 75 81 76
++88 66 70 75 81 76 88 66 70 75 81 76 88 66 70 88 69 84 75 72 67 88 69 84
++75 72 67 88 83 74 75 72 67 75 72 67 88 66 70 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 59 67 75 72 67 63 59 71 75 72 67 75 59 67
++75 72 67 75 59 67 75 72 67 63 59 71 75 72 67 63 59 71 65 63 61 59 57 61
++54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61
++54 57 61 59 57 61 59 57 61 63 59 71 63 59 71 65 63 61 59 69 70 63 59 71
++75 81 76 75 64 82 75 81 76 75 81 82 75 81 82 88 83 88 75 81 82 88 83 88
++88 83 88 88 83 88 88 83 88 95 91 100 95 91 100 88 83 88 95 91 100 99 93 84
++95 91 100 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88
++88 69 84 88 83 74 75 81 82 75 72 67 75 81 76 75 72 67 75 64 82 75 72 67
++63 59 71 75 72 67 75 72 67 75 72 67 65 63 61 75 72 67 75 72 67 75 72 67
++75 63 62 65 63 61 75 63 62 65 63 61 75 63 62 65 63 61 65 55 54 75 56 53
++65 63 61 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54
++59 55 55 59 55 55 55 55 48 53 46 48 51 49 42 53 46 48 48 44 48 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 43 42 50 43 42 50
++48 44 48 48 44 48 48 50 48 53 46 48 55 55 48 59 55 55 59 55 55 65 55 54
++65 63 61 75 63 62 65 63 61 75 63 62 75 72 67 75 72 67 75 72 67 88 66 70
++88 73 62 88 66 70 88 73 62 88 73 62 88 83 74 75 72 67 88 83 74 88 73 62
++75 72 67 88 73 62 75 63 62 75 73 58 75 63 62 75 63 62 75 63 62 75 63 62
++75 73 58 75 63 62 75 63 62 75 73 58 75 63 62 75 72 67 75 72 67 75 72 67
++75 72 67 88 66 70 75 81 76 75 72 67 75 72 67 75 81 76 88 83 74 88 83 74
++88 83 88 88 83 88 90 98 89 88 83 88 90 98 89 95 91 100 99 93 84 94 105 108
++94 105 108 112 96 108 94 105 108 112 123 108 94 105 108 112 123 108 112 123 108 111 119 127
++111 119 127 112 123 108 111 119 127 112 123 108 111 119 127 138 126 108 111 119 127 138 126 108
++122 134 144 111 119 127 138 126 108 121 143 132 138 126 108 111 119 127 138 126 108 119 117 138
++138 126 108 121 143 132 138 126 108 119 117 138 138 126 108 111 119 127 138 126 108 111 119 127
++138 126 108 111 119 127 138 126 108 112 123 108 112 123 108 112 123 108 112 96 108 112 123 108
++112 96 108 98 113 84 99 93 84 99 93 84 99 93 84 101 83 74 101 83 74 88 83 74
++88 66 70 88 73 62 88 66 70 88 73 62 88 44 51 88 73 62 88 44 51 88 73 62
++88 44 51 88 44 51 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 102 33 26
++88 44 51 88 73 31 102 33 26 88 44 51 76 46 20 88 44 51 76 46 20 88 44 51
++76 46 20 88 44 51 76 46 20 88 44 51 76 46 20 88 44 51 76 46 20 76 46 20
++88 44 51 101 74 26 76 46 20 88 44 51 76 46 20 102 33 26 88 73 31 102 33 26
++88 73 31 88 44 51 76 46 20 88 44 51 102 33 26 88 73 31 88 44 51 102 33 26
++88 73 31 102 33 26 88 73 31 88 44 51 88 73 31 102 33 26 88 73 31 88 44 51
++101 74 26 122 49 24 88 73 31 101 74 26 88 44 51 101 74 26 120 63 71 101 74 26
++101 74 26 101 74 26 120 63 71 101 74 26 101 74 26 101 74 26 120 63 71 101 74 26
++101 60 73 101 74 26 101 74 26 101 74 26 120 63 71 101 74 26 101 74 26 88 44 51
++101 74 26 88 44 51 101 74 26 88 73 31 88 44 51 101 74 26 88 44 51 101 74 26
++88 44 51 101 74 26 122 49 24 88 73 62 101 74 26 122 49 24 88 44 51 101 74 26
++122 49 24 88 44 51 101 74 26 122 49 24 88 73 62 101 74 26 122 49 24 88 73 31
++88 44 51 101 74 26 102 33 26 88 73 31 102 33 26 101 74 26 101 74 26 101 74 26
++88 44 51 101 74 26 101 74 26 101 74 26 102 33 26 101 74 26 102 33 26 88 73 31
++
++33 30 30 53 35 37 36 35 37 53 35 37 36 35 37 47 44 42 36 35 37 47 39 42
++36 35 37 42 38 42 47 39 42 47 39 42 47 44 42 42 41 42 47 44 42 47 39 42
++47 39 42 42 41 42 42 41 42 47 47 21 42 41 42 47 39 42 36 35 37 53 35 37
++32 39 24 53 35 37 42 41 42 36 35 37 47 47 21 55 39 37 47 44 42 47 44 42
++42 47 42 42 47 42 53 35 37 32 39 24 53 35 37 33 30 30 32 39 24 33 30 30
++29 35 19 33 30 30 33 30 30 33 30 30 33 30 30 22 25 24 22 25 24 26 24 32
++22 25 24 26 30 28 22 25 24 23 20 24 23 20 24 33 30 30 33 30 30 33 30 30
++33 30 30 36 35 37 33 30 30 36 35 37 36 35 37 52 30 35 42 38 42 47 47 21
++36 35 37 47 39 42 47 39 42 42 38 42 53 35 37 42 41 42 47 44 42 47 39 42
++36 35 37 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 33 30 32 30 30 34
++33 30 32 30 30 34 30 30 34 30 30 34 33 30 32 33 30 32 30 30 34 33 30 32
++33 30 32 33 30 32 33 30 30 36 35 37 47 39 42 36 35 37 36 35 37 36 35 37
++36 35 37 42 41 42 47 47 21 47 39 42 47 44 42 47 39 42 47 44 42 47 39 42
++47 39 42 47 44 42 47 39 42 47 44 42 47 44 42 47 44 42 47 44 42 53 46 48
++53 46 48 53 46 48 53 46 48 53 46 48 51 49 42 53 46 48 53 46 48 48 44 48
++53 46 48 48 44 48 53 46 48 51 49 42 53 46 48 53 46 48 53 46 48 53 46 48
++55 55 48 53 46 48 53 46 48 55 55 48 53 46 48 52 55 48 53 46 48 48 50 48
++48 44 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 43 42 50 42 47 42
++48 50 48 48 50 48 48 50 48 48 50 48 53 46 48 59 55 55 59 55 55 55 55 48
++59 55 55 62 47 47 63 55 51 53 46 48 63 55 51 63 55 51 55 55 48 63 55 45
++55 55 48 63 55 45 63 55 51 62 47 47 63 55 51 63 55 51 62 47 47 63 55 45
++63 55 51 63 55 45 75 56 53 65 55 54 75 56 53 63 55 45 75 56 53 76 44 53
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 63 55 45
++76 44 53 63 55 51 75 56 53 65 55 54 75 56 53 65 55 54 75 56 53 75 56 53
++75 59 67 75 56 53 75 56 53 75 56 53 75 56 53 65 55 54 63 55 51 63 55 51
++62 47 47 55 55 48 53 46 48 51 49 42 53 46 48 51 49 42 51 49 42 48 50 48
++47 49 42 47 49 42 53 46 48 53 46 48 48 44 48 48 50 48 53 46 48 48 44 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 53 46 48 52 55 48
++55 55 48 53 46 48 52 55 48 53 46 48 59 55 55 57 43 51 59 55 55 55 55 48
++59 55 55 53 46 48 55 55 48 55 55 48 48 50 48 48 50 48 48 50 48 47 49 42
++47 44 42 48 44 48 48 44 48 47 44 42 43 42 50 48 44 48 43 42 50 42 41 42
++43 42 50 42 41 42 34 40 43 42 41 42 34 40 43 42 38 42 42 38 42 42 38 42
++42 38 42 42 41 42 42 38 42 37 35 43 43 42 50 43 42 50 42 41 42 43 42 50
++42 41 42 43 42 50 42 41 42 42 41 42 34 40 43 42 41 42 42 41 42 34 40 43
++42 41 42 42 41 42 42 41 42 37 35 43 34 40 43 37 35 43 42 38 42 42 41 42
++43 42 50 42 41 42 42 47 42 48 44 48 48 50 48 53 46 48 53 46 48 62 47 47
++62 47 47 76 46 20 59 36 42 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++49 13 16 76 18 19 76 18 19 76 18 19 49 13 16 76 18 19 76 18 19 76 18 19
++76 18 19 49 13 16 76 18 19 76 18 19 49 13 16 76 18 19 76 18 19 49 13 16
++76 18 19 49 13 16 49 13 16 49 13 16 23 10 10 49 13 16 117 99 86 188 180 202
++201 216 228 221 238 247 221 238 247 221 238 247 231 239 247 240 251 247 194 199 226 122 134 144
++42 60 86 29 34 50 60 63 87 148 160 159 201 216 228 201 216 228 226 221 247 201 216 228
++201 216 228 208 221 247 208 221 247 226 221 247 201 216 228 201 216 228 194 199 226 194 199 226
++166 176 200 188 180 202 194 199 226 185 202 202 194 199 226 201 216 228 201 216 228 208 221 247
++208 221 247 226 221 247 208 221 247 208 221 247 201 216 228 201 216 228 226 221 247 201 216 228
++150 147 171 46 59 71 7 10 17 14 16 17 7 12 13 17 12 17 26 25 15 52 30 35
++88 73 62 138 126 108 177 169 143 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156
++217 168 156 222 171 182 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156
++197 171 123 217 168 156 217 168 156 208 215 180 217 168 156 217 168 156 222 171 182 217 168 156
++217 168 156 189 165 168 217 168 156 222 171 182 225 222 201 232 215 228 246 237 247 240 251 247
++235 238 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 221 238 247 226 221 247 221 238 247 226 221 247 185 202 202
++188 180 202 188 180 202 201 216 228 251 251 247 251 251 247 225 222 201 233 241 227 214 214 134
++214 214 134 214 214 134 214 214 134 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134
++214 214 134 219 175 47 214 214 134 214 214 134 214 214 134 214 214 134 219 175 47 214 214 134
++214 214 134 219 175 47 177 171 115 146 150 115 177 171 115 146 150 115 117 127 86 117 114 76
++117 99 86 99 93 84 101 83 74 88 83 74 88 69 84 88 83 74 88 66 70 88 83 74
++88 69 84 88 83 74 88 83 74 88 66 70 88 83 74 75 81 76 88 66 70 75 81 76
++88 66 70 88 69 84 88 83 74 75 81 76 75 72 67 75 77 62 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 64 82 75 72 67 75 72 67 75 72 67 75 64 82
++75 72 67 75 64 82 75 72 67 75 64 82 75 72 67 63 59 71 75 59 67 63 59 71
++53 63 61 54 57 61 54 57 61 59 57 61 59 57 61 59 57 61 54 57 61 59 57 61
++54 57 61 63 59 71 59 57 61 59 57 61 63 59 71 59 69 70 63 59 71 75 72 67
++75 64 82 75 81 82 88 69 84 75 81 76 88 83 88 88 83 88 88 83 88 88 83 88
++95 91 100 88 83 88 95 91 100 95 91 100 95 91 100 95 91 100 112 96 108 95 91 100
++95 91 100 95 91 100 95 91 100 95 91 100 95 91 100 88 83 88 88 83 88 88 83 88
++88 83 88 88 83 88 88 69 84 88 83 88 75 64 82 75 81 76 75 72 67 75 72 67
++75 64 82 75 72 67 63 59 71 75 72 67 75 59 67 75 72 67 75 59 67 75 72 67
++75 72 67 75 72 67 75 63 62 75 63 62 65 63 61 65 63 61 75 56 53 64 70 48
++75 56 53 65 63 61 65 55 54 65 63 61 65 55 54 65 63 61 65 55 54 65 63 61
++59 55 55 63 55 51 63 55 51 55 55 48 55 55 48 53 46 48 48 50 48 47 44 42
++42 47 42 42 41 42 42 47 42 42 41 42 43 42 50 34 40 43 43 42 50 42 47 42
++43 42 50 48 50 48 48 50 48 53 46 48 55 55 48 59 55 55 63 55 51 63 55 51
++65 63 61 75 56 53 75 63 62 75 63 62 75 63 62 88 66 70 75 72 67 88 73 62
++88 66 70 75 72 67 88 66 70 75 81 69 88 66 70 88 73 62 75 72 67 88 73 62
++75 72 67 75 72 67 88 73 62 75 63 62 75 73 58 75 63 62 75 73 58 75 73 58
++75 63 62 65 63 61 75 63 62 75 73 58 75 63 62 75 72 67 75 72 67 75 72 67
++75 72 67 75 81 76 88 66 70 75 72 67 75 72 67 88 83 74 75 81 76 75 81 76
++88 83 74 88 83 88 99 93 84 90 98 89 99 93 84 95 91 100 99 93 84 94 105 108
++117 99 86 94 105 108 112 123 108 112 96 108 112 123 108 112 96 108 111 119 127 112 123 108
++111 119 127 111 119 127 112 123 108 111 119 127 111 119 127 111 119 127 121 143 132 119 117 138
++122 134 144 138 126 108 122 134 144 138 126 108 111 119 127 121 143 132 138 126 108 121 143 132
++119 117 138 138 126 108 111 119 127 121 143 132 138 126 108 121 143 132 138 126 108 111 119 127
++138 126 108 111 119 127 138 126 108 111 119 127 138 102 108 112 123 108 117 99 86 112 123 108
++112 96 108 117 99 86 95 91 100 99 93 84 101 83 74 88 83 88 88 66 70 101 83 74
++101 83 74 101 60 73 88 73 62 88 73 62 88 73 62 88 44 51 88 73 62 88 44 51
++88 73 31 88 44 51 88 73 31 88 44 51 88 44 51 88 44 51 88 73 31 88 44 51
++76 46 20 88 44 51 88 44 51 88 73 31 88 44 51 76 46 20 88 44 51 76 46 20
++88 44 51 76 46 20 88 44 51 76 46 20 88 44 51 76 46 20 76 46 20 88 44 51
++76 46 20 76 46 20 102 33 26 88 73 31 76 46 20 88 44 51 76 46 20 75 56 53
++102 33 26 88 73 31 102 33 26 88 73 31 88 44 51 88 73 31 76 46 20 88 73 31
++88 44 51 76 46 20 88 44 51 101 74 26 88 44 51 88 73 31 122 49 24 88 44 51
++101 74 26 88 44 51 101 74 26 120 63 71 101 74 26 101 74 26 101 74 26 101 74 26
++101 74 26 120 63 71 101 74 26 101 74 26 120 63 71 101 74 26 101 74 26 101 60 73
++101 74 26 101 74 26 120 63 71 88 44 51 101 74 26 101 74 26 88 44 51 101 74 26
++120 63 71 101 74 26 101 74 26 88 44 51 122 49 24 101 74 26 88 44 51 101 74 26
++122 49 24 88 73 62 101 74 26 101 74 26 88 44 51 88 73 31 101 74 26 88 44 51
++88 73 31 101 74 26 88 44 51 88 73 31 122 49 24 101 74 26 88 44 51 101 74 26
++101 74 26 101 74 26 88 73 31 101 74 26 88 73 31 101 74 26 88 44 51 101 74 26
++101 74 26 101 74 26 102 33 26 101 74 26 88 73 31 101 74 26 101 74 26 101 74 26
++
++36 35 37 36 35 37 42 41 42 47 47 21 42 38 42 47 44 42 47 39 42 47 47 21
++42 41 42 47 39 42 47 44 42 47 44 42 47 44 42 47 39 42 47 44 42 47 44 42
++47 44 42 47 47 21 47 44 42 47 39 42 47 39 42 47 47 21 47 39 42 47 47 21
++47 39 42 47 44 42 47 47 21 47 44 42 47 44 42 55 39 37 51 49 42 55 39 37
++42 47 42 47 47 21 42 41 42 47 39 42 32 39 24 52 30 35 32 39 24 33 30 30
++34 30 15 33 30 30 33 30 30 33 30 30 29 35 19 26 30 28 22 25 24 33 30 30
++26 30 28 23 20 24 33 30 30 23 20 24 33 30 30 33 30 30 33 30 30 36 35 37
++33 30 30 36 35 37 36 35 37 52 30 35 36 35 37 36 35 37 53 35 37 36 35 37
++55 39 37 47 44 42 53 35 37 47 39 42 47 44 42 47 44 42 47 39 42 42 41 42
++42 38 42 36 35 37 36 35 37 42 38 42 36 35 37 36 35 37 36 35 37 33 30 36
++33 30 32 30 30 34 30 30 34 33 30 36 33 30 36 33 30 36 33 30 36 33 30 32
++31 35 35 36 35 37 36 35 37 36 35 37 36 35 37 53 35 37 36 35 37 47 47 21
++47 39 42 47 44 42 47 39 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 39 42 47 44 42 53 46 48 55 39 37 53 46 48
++51 49 42 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 51 49 42 53 46 48
++51 49 42 53 46 48 53 46 48 53 46 48 52 55 48 53 46 48 55 55 48 53 46 48
++55 55 48 59 55 55 55 55 48 59 55 55 55 55 48 52 55 48 53 46 48 48 50 48
++53 46 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 52 55 48 54 57 61 53 46 48 59 55 55 55 55 48
++59 55 55 62 47 47 59 55 55 63 55 51 63 55 51 63 55 51 63 55 51 62 47 47
++63 55 51 62 47 47 63 55 51 63 55 51 62 47 47 63 55 51 63 55 51 65 55 54
++65 55 54 65 55 54 75 56 53 63 55 45 75 56 53 75 56 53 76 44 53 63 55 45
++75 56 53 62 47 47 75 56 53 63 55 45 75 56 53 63 55 51 65 55 54 75 56 53
++63 55 51 75 56 53 75 56 53 75 56 53 75 56 53 75 63 62 75 63 62 75 63 62
++75 59 67 75 63 62 75 63 62 75 63 62 75 63 62 65 57 61 65 55 54 65 55 54
++63 55 51 55 55 48 55 55 48 62 47 47 55 55 48 53 46 48 53 46 48 48 50 48
++48 50 48 53 46 48 53 46 48 48 50 48 53 46 48 48 50 48 53 46 48 52 55 48
++53 46 48 48 50 48 53 46 48 52 55 48 55 55 48 55 55 48 59 55 55 59 55 55
++59 55 55 55 55 48 59 55 55 59 55 55 55 55 48 59 55 55 59 55 55 59 55 55
++55 55 48 59 55 55 55 55 48 53 46 48 55 55 48 53 46 48 48 50 48 48 50 48
++48 50 48 48 44 48 48 44 48 48 44 48 47 44 42 43 42 50 47 44 42 43 42 50
++42 41 42 47 39 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 43 42 50 47 44 42 48 44 48 47 44 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 38 42
++34 40 43 42 38 42 34 40 43 42 38 42 37 35 43 42 41 42 42 41 42 42 41 42
++42 47 42 43 42 50 43 42 50 48 44 48 48 50 48 53 46 48 57 43 51 62 47 47
++62 47 47 76 44 53 88 44 51 88 44 51 88 30 18 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16 76 18 19
++49 13 16 76 18 19 49 13 16 49 13 16 49 13 16 23 10 10 88 69 84 166 174 181
++232 215 228 231 239 247 221 238 247 208 221 247 208 221 247 231 239 247 208 221 247 150 147 171
++61 78 101 24 30 43 42 60 86 122 134 144 194 199 226 221 238 247 201 216 228 201 216 228
++208 221 247 201 216 228 221 238 247 201 216 228 208 221 247 201 216 228 194 199 226 185 202 202
++194 199 226 185 202 202 188 180 202 194 199 226 185 202 202 201 216 228 208 221 247 201 216 228
++226 221 247 201 216 228 208 221 247 201 216 228 201 216 228 201 216 228 208 221 247 201 216 228
++150 147 171 46 59 71 12 18 30 22 23 31 23 18 22 17 12 17 26 12 13 34 30 15
++75 56 53 138 102 108 168 146 127 197 171 123 189 165 168 217 168 156 217 168 156 217 168 156
++217 168 156 214 214 134 217 168 156 217 168 156 214 214 134 217 168 156 217 168 156 217 168 156
++217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 208 215 180 217 168 156 222 171 182
++217 168 156 217 168 156 217 168 156 189 165 168 225 222 201 232 215 228 246 237 247 240 251 247
++251 251 247 240 251 247 240 251 247 240 251 247 231 239 247 240 251 247 231 239 247 231 239 247
++231 239 247 240 251 247 231 239 247 221 238 247 221 238 247 232 215 228 201 216 228 185 202 202
++185 202 202 188 180 202 225 222 201 240 251 247 251 251 247 233 241 227 225 222 201 225 222 201
++214 214 134 214 214 134 219 175 47 214 214 134 214 214 134 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 177 171 115
++177 171 115 177 171 115 177 171 115 177 171 115 157 148 53 177 171 115 157 148 53 138 126 108
++117 114 76 117 99 86 99 93 84 101 83 74 88 83 74 88 83 74 88 69 84 88 83 74
++88 83 74 88 83 74 88 66 70 88 69 84 75 81 76 88 66 70 88 83 74 88 69 84
++75 81 76 75 72 67 75 72 67 88 66 70 75 81 69 88 66 70 75 72 67 75 72 67
++75 72 67 88 69 84 75 72 67 75 81 76 75 64 82 75 81 76 75 64 82 75 81 76
++75 64 82 75 72 67 75 64 82 75 72 67 75 64 82 75 72 67 75 64 82 59 69 70
++65 63 61 59 69 70 59 57 61 59 57 61 54 57 61 59 57 61 59 57 61 59 57 61
++59 57 61 63 59 71 63 59 71 63 59 71 59 69 70 63 59 71 59 69 70 75 64 82
++75 81 82 75 81 82 75 81 82 88 83 88 88 83 88 88 83 88 95 91 100 95 91 100
++95 91 100 95 91 100 95 91 100 95 91 100 95 91 100 112 96 108 112 96 108 94 105 108
++112 96 108 112 96 108 95 91 100 95 91 100 95 91 100 99 93 84 95 91 100 95 91 100
++88 83 88 88 83 88 88 83 88 88 83 88 75 81 76 75 81 76 75 64 82 75 72 67
++75 72 67 75 64 82 75 72 67 75 72 67 63 59 71 75 72 67 75 72 67 75 72 67
++75 63 62 65 63 61 75 73 58 65 63 61 75 63 62 75 56 53 65 63 61 75 63 62
++65 55 54 65 63 61 75 63 62 65 55 54 75 63 62 65 55 54 65 63 61 65 63 61
++63 55 51 65 55 54 59 55 55 55 55 48 62 47 47 52 55 48 48 50 48 48 44 48
++47 44 42 48 44 48 42 41 42 42 41 42 43 42 50 43 42 50 43 42 50 48 50 48
++48 50 48 48 44 48 48 50 48 53 46 48 59 55 55 55 55 48 63 55 51 65 63 61
++65 63 61 75 56 53 65 63 61 75 63 62 75 72 67 75 72 67 88 66 70 75 72 67
++88 66 70 88 83 74 88 73 62 88 66 70 88 83 74 88 73 62 88 83 74 88 66 70
++75 72 67 88 73 62 75 72 67 75 72 67 88 73 62 75 63 62 75 63 62 75 63 62
++75 73 58 75 63 62 75 73 58 75 63 62 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 88 83 74 75 81 76 75 81 76 88 66 70 75 81 76 88 83 74 88 83 88
++90 98 89 88 83 88 90 98 89 95 91 100 95 91 100 94 105 108 117 99 86 94 105 108
++94 105 108 112 123 108 112 96 108 111 119 127 112 123 108 111 119 127 112 123 108 111 119 127
++138 126 108 111 119 127 121 143 132 138 126 108 121 143 132 138 126 108 121 143 132 138 126 108
++121 143 132 119 117 138 121 143 132 111 119 127 138 126 108 119 117 138 121 143 132 138 126 108
++111 119 127 121 143 132 138 126 108 111 119 127 138 126 108 111 119 127 138 126 108 111 119 127
++117 142 111 138 126 108 111 119 127 112 123 108 112 123 108 112 123 108 112 96 108 112 123 108
++117 99 86 95 91 100 99 93 84 99 93 84 99 93 84 88 83 74 101 83 74 88 66 70
++88 83 74 88 73 62 88 73 62 101 60 73 88 73 62 88 73 62 88 44 51 88 73 62
++88 44 51 88 73 62 88 44 51 101 74 26 88 44 51 88 44 51 102 33 26 88 73 31
++88 44 51 88 73 31 88 44 51 76 46 20 88 44 51 88 44 51 102 33 26 88 44 51
++76 46 20 88 44 51 76 46 20 88 44 51 76 46 20 102 33 26 88 44 51 88 73 31
++102 33 26 88 73 31 88 44 51 76 46 20 88 44 51 102 33 26 88 73 31 102 33 26
++88 73 31 88 44 51 76 46 20 88 44 51 76 46 20 102 33 26 88 73 31 102 33 26
++88 73 31 102 33 26 88 73 31 102 33 26 88 73 31 88 44 51 88 73 31 101 74 26
++88 44 51 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26
++88 44 51 101 74 26 101 74 26 120 63 71 101 74 26 88 44 51 101 74 26 101 74 26
++88 44 51 101 74 26 101 74 26 101 74 26 88 44 51 101 74 26 120 63 71 101 74 26
++101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 88 44 51
++101 74 26 101 74 26 120 63 71 101 74 26 101 74 26 101 74 26 88 44 51 101 74 26
++122 49 24 88 73 31 101 74 26 88 44 51 101 74 26 88 73 31 101 74 26 122 49 24
++88 44 51 101 74 26 88 44 51 122 49 24 88 44 51 101 74 26 101 74 26 88 44 51
++101 74 26 88 44 51 101 74 26 101 74 26 122 49 24 88 73 31 122 49 24 88 73 31
++
++32 39 24 36 35 37 36 35 37 42 41 42 47 39 42 47 39 42 47 44 42 47 39 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 42 41 42 47 47 21 53 35 37 42 41 42 55 39 37
++47 44 42 55 39 37 55 39 37 55 39 37 55 39 37 60 49 42 55 39 37 51 49 42
++55 39 37 55 39 37 55 39 37 55 39 37 55 39 37 36 35 37 53 35 37 32 39 24
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 26 30 28 22 25 24
++33 30 30 22 25 24 33 30 30 23 20 24 26 30 28 33 30 30 33 30 30 36 35 37
++33 30 30 52 30 35 32 39 24 36 35 37 32 39 24 53 35 37 36 35 37 42 38 42
++47 47 21 47 44 42 47 39 42 47 39 42 55 39 37 47 44 42 47 44 42 47 44 42
++47 39 42 47 39 42 42 38 42 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37
++33 30 36 33 30 36 31 35 35 36 35 37 36 35 37 36 35 37 33 30 32 36 35 37
++33 30 32 36 35 37 36 35 37 36 35 37 42 41 42 36 35 37 42 38 42 42 38 42
++47 39 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 48 44 48 53 46 48
++53 46 48 53 46 48 53 46 48 51 49 42 53 46 48 55 55 48 53 46 48 55 55 48
++55 55 48 53 46 48 55 55 48 53 46 48 55 55 48 53 46 48 55 55 48 55 55 48
++57 43 51 59 55 55 59 55 55 59 55 55 52 55 48 59 55 55 48 50 48 59 55 55
++48 50 48 59 55 55 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 54 57 61 53 46 48 59 55 55 55 55 48 55 55 48
++59 55 55 55 55 48 55 55 48 55 55 48 59 55 55 63 55 51 63 55 51 63 55 51
++63 55 51 55 55 48 63 55 51 63 55 51 65 55 54 65 55 54 63 55 45 65 55 54
++75 56 53 75 56 53 65 55 54 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53
++63 55 45 75 56 53 62 47 47 75 56 53 65 55 54 75 56 53 63 55 51 65 55 54
++75 56 53 75 56 53 75 63 62 75 63 62 75 63 62 75 63 62 88 66 70 75 63 62
++75 72 67 88 66 70 75 72 67 75 63 62 75 63 62 75 63 62 75 56 53 65 63 61
++65 55 54 59 55 55 65 55 54 59 55 55 63 55 51 55 55 48 55 55 48 53 46 48
++53 46 48 55 55 48 53 46 48 59 55 55 53 46 48 48 50 48 59 55 55 59 55 55
++59 55 55 59 55 55 52 55 48 59 55 55 52 55 48 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 59 57 61 59 55 55 59 55 55 59 55 55
++59 55 55 52 55 48 59 55 55 59 55 55 55 55 48 59 55 55 55 55 48 53 46 48
++53 46 48 48 50 48 48 50 48 48 44 48 48 44 48 43 42 50 48 44 48 48 44 48
++42 41 42 43 42 50 42 41 42 42 41 42 42 41 42 43 42 50 42 41 42 43 42 50
++42 41 42 43 42 50 42 41 42 48 44 48 43 42 50 48 44 48 42 41 42 43 42 50
++48 44 48 48 44 48 43 42 50 42 41 42 43 42 50 42 41 42 42 41 42 42 38 42
++42 41 42 42 38 42 42 38 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++43 42 50 42 47 42 48 50 48 48 44 48 53 46 48 52 55 48 53 46 48 53 46 48
++55 55 48 62 47 47 60 49 42 76 44 53 76 44 53 76 18 19 88 30 18 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 76 18 19 49 13 16
++76 18 19 76 18 19 76 18 19 49 13 16 49 13 16 13 4 7 65 55 54 166 156 164
++226 221 247 235 238 247 233 241 227 208 221 247 226 221 247 221 238 247 208 221 247 150 168 183
++77 91 115 29 34 50 34 42 77 95 95 116 166 174 181 201 216 228 221 238 247 221 238 247
++201 216 228 208 221 247 201 216 228 226 221 247 201 216 228 201 216 228 201 216 228 194 199 226
++188 180 202 194 199 226 185 202 202 194 199 226 194 199 226 201 216 228 201 216 228 221 238 247
++208 221 247 208 221 247 208 221 247 208 221 247 194 199 226 201 216 228 226 221 247 201 216 228
++131 144 168 54 57 61 12 18 30 28 30 35 25 30 29 22 24 13 15 22 17 28 13 18
++75 56 53 117 99 86 168 146 127 189 165 168 197 171 123 217 168 156 201 146 124 197 171 123
++197 171 123 201 146 124 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156
++214 214 134 217 168 156 217 168 156 214 214 134 222 171 182 217 168 156 208 215 180 217 168 156
++217 168 156 217 168 156 217 168 156 222 171 182 222 171 182 225 222 201 246 237 247 251 251 247
++251 251 247 251 251 247 240 251 247 240 251 247 231 239 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 226 221 247 221 238 247 208 221 247 185 202 202 194 199 226
++225 222 201 185 202 202 185 202 202 233 241 227 246 237 247 233 241 227 225 222 201 225 222 201
++214 214 134 214 214 134 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47
++214 214 134 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 214 214 134 219 175 47
++214 214 134 219 175 47 214 214 134 219 175 47 177 171 115 177 171 115 146 150 115 146 150 115
++138 126 108 117 114 76 117 114 76 101 83 74 88 83 74 88 83 74 88 83 74 88 83 74
++88 69 84 88 83 74 88 69 84 88 83 74 88 83 74 88 69 84 75 81 76 88 83 74
++88 83 74 88 69 84 88 83 74 75 81 76 88 83 74 75 72 67 88 83 74 88 66 70
++75 81 76 75 81 69 88 69 84 75 81 76 75 81 76 88 69 84 75 81 76 75 64 82
++75 81 76 75 64 82 75 81 76 75 64 82 75 81 76 63 59 71 75 72 67 63 59 71
++59 69 70 59 69 70 63 59 71 59 69 70 59 69 70 63 59 71 59 69 70 63 59 71
++59 69 70 63 59 71 63 59 71 59 69 70 59 69 70 75 64 82 75 81 82 75 81 90
++75 81 90 88 83 88 77 90 100 88 83 88 77 90 100 95 91 100 95 91 100 94 105 108
++95 91 100 94 105 108 112 96 108 94 105 108 112 96 108 94 105 108 112 96 108 94 105 108
++112 96 108 94 105 108 112 96 108 94 105 108 112 96 108 94 105 108 95 91 100 95 91 100
++95 91 100 95 91 100 88 83 88 88 83 88 88 83 88 75 81 82 88 69 84 75 81 76
++75 64 82 75 72 67 75 72 67 75 63 62 75 72 67 75 72 67 75 59 67 75 72 67
++75 72 67 75 72 67 75 63 62 75 63 62 75 63 62 65 63 61 75 73 58 75 56 53
++75 63 62 75 63 62 75 63 62 75 63 62 65 63 61 75 63 62 75 63 62 65 63 61
++65 63 61 65 55 54 59 55 55 63 55 51 55 55 48 55 55 48 53 46 48 53 46 48
++48 44 48 48 44 48 47 44 42 43 42 50 42 47 42 43 42 50 43 42 50 42 47 42
++48 50 48 48 50 48 48 50 48 53 46 48 59 55 55 63 55 51 65 63 61 65 55 54
++65 63 61 65 63 61 75 63 62 75 63 62 75 72 67 88 66 70 75 72 67 88 73 62
++88 66 70 88 73 62 75 72 67 88 83 74 88 73 62 75 81 76 88 73 62 75 72 67
++88 73 62 88 73 62 75 72 67 88 73 62 75 73 58 75 63 62 75 73 58 75 63 62
++75 63 62 75 72 67 75 63 62 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 81 76 88 66 70 75 72 67 88 83 74 75 81 76 88 83 74 88 83 88 88 83 74
++99 93 84 90 98 89 99 93 84 95 91 100 99 93 84 112 96 108 112 123 108 112 96 108
++112 123 108 112 96 108 112 123 108 112 123 108 112 123 108 111 119 127 138 126 108 111 119 127
++111 119 127 138 126 108 111 119 127 121 143 132 111 119 127 121 143 132 141 116 139 121 143 132
++119 117 138 138 126 108 121 143 132 138 126 108 121 143 132 138 126 108 119 117 138 138 126 108
++121 143 132 138 126 108 121 143 132 138 126 108 111 119 127 121 143 132 138 126 108 111 119 127
++138 126 108 112 123 108 112 123 108 138 126 108 112 96 108 112 123 108 112 123 108 112 96 108
++98 113 84 112 96 108 99 93 84 99 93 84 88 83 88 88 83 74 88 83 74 101 83 74
++88 73 62 101 60 73 88 73 62 88 73 62 88 44 51 88 73 31 101 60 73 88 73 31
++88 44 51 88 73 31 101 60 73 88 44 51 88 44 51 101 74 26 88 44 51 88 44 51
++88 73 31 88 44 51 102 33 26 88 44 51 88 73 31 88 44 51 76 46 20 88 44 51
++88 44 51 76 46 20 88 44 51 76 46 20 88 44 51 76 46 20 88 44 51 76 46 20
++88 44 51 76 46 20 88 73 31 102 33 26 101 74 26 88 44 51 76 46 20 88 44 51
++102 33 26 88 73 31 102 33 26 101 74 26 88 44 51 101 74 26 88 44 51 76 46 20
++88 44 51 88 73 31 88 44 51 88 73 31 102 33 26 88 73 31 122 49 24 88 44 51
++88 73 31 122 49 24 101 74 26 88 73 31 122 49 24 101 74 26 88 44 51 88 73 31
++122 49 24 101 74 26 88 44 51 101 74 26 101 74 26 101 74 26 101 74 26 120 63 71
++101 74 26 88 44 51 101 74 26 101 60 73 101 74 26 122 49 24 101 74 26 88 44 51
++101 74 26 88 44 51 101 74 26 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26
++101 60 73 101 74 26 88 73 62 122 49 24 88 73 62 122 49 24 101 74 26 88 44 51
++88 73 31 88 44 51 122 49 24 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26
++88 73 31 122 49 24 101 74 26 88 73 31 101 74 26 88 44 51 101 74 26 101 74 26
++122 49 24 101 74 26 101 74 26 101 74 26 88 73 62 101 74 26 101 74 26 101 74 26
++
++36 35 37 36 35 37 47 44 42 42 41 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 39 42
++47 44 42 47 44 42 55 39 37 47 44 42 36 35 37 47 44 42 47 47 21 47 44 42
++51 49 42 55 39 37 51 49 42 60 49 42 60 49 42 60 49 42 60 49 42 60 49 42
++55 39 37 60 49 42 60 49 42 51 49 42 55 39 37 55 39 37 47 47 21 53 35 37
++53 35 37 36 35 37 47 47 21 33 30 32 33 30 30 33 30 30 29 35 19 33 30 32
++26 24 32 33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 33 30 32 36 35 37
++33 30 30 32 39 24 52 30 35 53 35 37 53 35 37 47 39 42 47 47 21 47 39 42
++47 44 42 47 39 42 55 39 37 47 39 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 42 41 42 42 38 42 42 38 42 36 35 37 36 35 37
++36 35 37 31 35 35 36 35 37 31 35 35 36 35 37 36 35 37 33 30 36 33 30 32
++36 35 37 36 35 37 36 35 37 52 30 35 36 35 37 47 39 42 36 35 37 47 44 42
++47 44 42 55 39 37 47 44 42 51 49 42 53 46 48 53 46 48 53 46 48 53 46 48
++53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 51 49 42 53 46 48
++51 49 42 53 46 48 53 46 48 53 46 48 53 46 48 55 55 48 59 55 55 53 46 48
++59 55 55 55 55 48 55 55 48 59 55 55 53 46 48 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 55 55 48 59 55 55 48 50 48 59 55 55
++53 46 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 52 55 48 59 55 55 53 46 48 59 55 55 62 47 47
++55 55 48 59 55 55 55 55 48 59 55 55 63 55 51 63 55 51 63 55 51 63 55 51
++63 55 51 63 55 51 63 55 51 65 55 54 65 55 54 75 56 53 63 55 51 75 56 53
++75 56 53 65 55 54 75 56 53 75 56 53 65 55 54 75 56 53 75 56 53 75 56 53
++76 44 53 75 56 53 63 55 45 75 56 53 63 55 51 65 55 54 75 56 53 75 63 62
++75 63 62 75 63 62 75 63 62 88 66 70 88 66 70 88 66 70 75 72 67 88 66 70
++75 72 67 75 72 67 88 66 70 75 72 67 75 72 67 75 63 62 75 63 62 65 63 61
++65 63 61 65 63 61 65 63 61 65 55 54 65 55 54 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 54 57 61 59 55 55
++54 57 61 59 55 55 54 57 61 59 55 55 59 55 55 59 57 61 59 57 61 65 63 61
++59 57 61 65 63 61 65 63 61 65 63 61 53 63 61 65 63 61 64 70 48 59 57 61
++59 55 55 54 57 61 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 55 55 48
++55 55 48 53 46 48 48 50 48 48 44 48 48 50 48 48 44 48 48 50 48 48 44 48
++42 41 42 48 44 48 43 42 50 48 44 48 48 44 48 48 44 48 48 44 48 48 44 48
++48 44 48 48 44 48 48 44 48 48 44 48 47 44 42 48 44 48 43 42 50 47 44 42
++48 44 48 48 44 48 47 44 42 48 44 48 42 41 42 43 42 50 42 41 42 42 41 42
++42 41 42 43 42 50 34 40 43 42 41 42 36 35 37 42 41 42 34 40 43 43 42 50
++42 47 42 43 42 50 48 44 48 48 44 48 48 50 48 53 46 48 57 43 51 59 55 55
++53 46 48 55 55 48 62 47 47 88 44 51 88 30 18 88 44 51 88 30 18 102 33 26
++88 30 18 102 33 26 102 33 26 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 49 13 16 76 18 19 76 18 19 76 18 19
++76 18 19 49 13 16 52 30 15 49 13 16 49 13 16 3 3 1 55 39 37 145 140 145
++201 216 228 240 251 247 221 238 247 226 221 247 221 238 247 208 221 247 201 216 228 188 180 202
++95 108 128 34 42 77 32 40 58 77 90 100 150 168 183 201 216 228 226 221 247 208 221 247
++221 238 247 201 216 228 221 238 247 201 216 228 208 221 247 201 216 228 201 216 228 194 199 226
++185 202 202 188 180 202 194 199 226 185 202 202 194 199 226 232 215 228 208 221 247 208 221 247
++201 216 228 208 221 247 201 216 228 201 216 228 194 199 226 194 199 226 201 216 228 194 199 226
++150 144 154 45 57 61 12 18 30 22 25 24 26 30 28 22 25 24 23 18 22 26 25 15
++60 49 42 117 99 86 163 117 123 197 171 123 217 168 156 217 168 156 217 168 156 201 146 124
++201 146 124 189 165 168 201 146 124 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156
++217 168 156 217 168 156 217 168 156 222 171 182 222 171 182 217 168 156 222 171 182 217 168 156
++217 168 156 217 168 156 217 168 156 222 171 182 208 215 180 225 222 201 232 215 228 246 237 247
++251 251 247 251 251 247 240 251 247 235 238 247 221 238 247 226 221 247 221 238 247 221 238 247
++231 239 247 221 238 247 221 238 247 221 238 247 221 238 247 201 216 228 188 180 202 185 202 202
++232 215 228 201 216 228 232 215 228 225 222 201 235 238 247 233 241 227 208 215 180 214 214 134
++225 222 201 214 214 134 219 175 47 214 214 134 214 214 134 219 175 47 214 214 134 214 214 134
++219 175 47 214 214 134 219 175 47 214 214 134 214 214 134 219 175 47 214 214 134 214 214 134
++219 175 47 214 214 134 177 171 115 177 171 115 177 171 115 177 171 115 157 148 53 177 171 115
++157 148 53 117 127 86 117 99 86 117 99 86 99 93 84 88 83 74 88 83 74 88 69 84
++88 83 74 88 69 84 88 83 74 88 83 74 88 69 84 88 83 74 88 83 74 75 81 76
++75 72 67 88 83 74 88 66 70 88 83 74 88 66 70 88 83 74 88 83 74 88 83 74
++88 83 74 88 69 84 75 81 76 75 81 76 88 69 84 75 81 76 75 81 82 75 64 82
++75 81 82 75 81 76 75 64 82 75 81 76 75 64 82 59 69 70 75 64 82 59 69 70
++59 69 70 65 63 61 59 69 70 63 59 71 59 69 70 59 69 70 59 69 70 59 69 70
++59 69 70 75 64 82 59 69 70 75 64 82 75 81 82 60 81 83 75 64 82 75 81 90
++75 81 90 77 90 100 95 91 100 95 91 100 95 95 116 95 91 100 94 105 108 95 95 116
++112 96 108 112 96 108 94 105 108 112 96 108 111 119 127 95 95 116 112 123 108 112 96 108
++111 119 127 112 96 108 111 119 127 112 96 108 95 108 128 112 96 108 94 105 108 94 105 108
++95 91 100 95 91 100 88 83 88 77 90 100 88 83 88 88 83 88 88 83 88 75 81 82
++88 69 84 75 81 76 75 72 67 75 72 67 75 59 67 75 72 67 75 72 67 75 72 67
++75 63 62 75 72 67 75 72 67 65 63 61 75 63 62 75 63 62 75 63 62 75 73 58
++75 63 62 65 63 61 75 63 62 75 63 62 75 63 62 75 63 62 65 63 61 75 63 62
++65 63 61 65 63 61 65 55 54 65 55 54 63 55 51 55 55 48 59 55 55 53 46 48
++48 50 48 48 44 48 48 44 48 47 44 42 43 42 50 43 42 50 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 59 55 55 59 55 55 59 55 55 63 55 51 65 63 61
++75 63 62 75 63 62 75 63 62 75 73 58 75 72 67 75 72 67 88 66 70 88 66 70
++75 72 67 88 66 70 88 83 74 88 73 62 88 66 70 88 83 74 88 73 62 88 83 74
++75 72 67 75 72 67 88 73 62 75 72 67 75 72 67 75 73 58 75 63 62 75 73 58
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 88 66 70 75 72 67
++75 72 67 75 81 76 88 83 74 88 69 84 88 83 74 88 83 88 88 83 88 99 93 84
++88 83 88 95 91 100 94 105 108 117 99 86 94 105 108 112 96 108 112 123 108 112 96 108
++112 123 108 111 119 127 112 123 108 111 119 127 112 96 108 112 123 108 111 119 127 111 119 127
++117 142 111 119 117 138 121 143 132 138 126 108 141 116 139 138 126 108 121 143 132 138 126 108
++121 143 132 141 116 139 112 123 108 121 143 132 111 119 127 121 143 132 138 126 108 122 134 144
++138 126 108 119 117 138 121 143 132 138 126 108 119 117 138 138 126 108 111 119 127 138 126 108
++111 119 127 138 126 108 112 123 108 112 123 108 112 123 108 112 96 108 112 123 108 117 99 86
++94 105 108 99 93 84 99 93 84 99 93 84 88 83 88 101 83 74 88 66 70 88 66 70
++88 73 62 88 73 62 88 73 62 88 73 62 101 60 73 88 73 62 88 44 51 88 44 51
++88 73 62 88 44 51 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 88 44 51
++88 44 51 101 74 26 88 44 51 88 73 31 88 44 51 88 44 51 88 73 31 88 44 51
++76 46 20 88 44 51 88 73 31 102 33 26 88 73 31 88 44 51 88 73 31 88 44 51
++76 46 20 88 44 51 102 33 26 88 73 31 88 44 51 102 33 26 88 73 31 102 33 26
++88 73 31 88 44 51 76 46 20 88 44 51 101 74 26 102 33 26 88 73 31 102 33 26
++88 73 31 102 33 26 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 101 74 26
++88 44 51 88 73 31 88 44 51 101 74 26 88 44 51 101 74 26 102 33 26 101 74 26
++88 44 51 101 74 26 101 74 26 88 44 51 122 49 24 88 44 51 101 74 26 101 74 26
++88 44 51 101 74 26 122 49 24 88 73 31 101 74 26 88 44 51 101 74 26 120 63 71
++101 74 26 101 74 26 88 44 51 122 49 24 88 73 31 101 74 26 88 44 51 101 74 26
++88 44 51 101 74 26 122 49 24 88 73 62 101 74 26 101 74 26 88 44 51 101 74 26
++122 49 24 88 73 31 88 73 31 102 33 26 101 74 26 122 49 24 101 74 26 120 63 71
++101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 101 74 26 88 44 51 101 74 26
++120 63 71 101 74 26 120 63 71 101 74 26 101 74 26 122 49 24 88 73 62 101 74 26
++
++36 35 37 36 35 37 42 41 42 47 39 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 51 49 42 47 44 42 47 44 42 47 44 42 47 44 42 47 39 42
++47 47 21 47 39 42 42 47 42 53 35 37 47 47 21 47 44 42 55 39 37 60 49 42
++60 49 42 60 49 42 60 49 42 60 49 42 63 55 45 60 49 42 63 55 45 60 49 42
++60 49 42 63 55 45 63 55 45 60 49 42 60 49 42 60 49 42 47 44 42 47 44 42
++47 47 21 53 35 37 36 35 37 36 35 37 32 39 24 33 30 30 26 30 28 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 33 30 30
++52 30 35 33 30 30 36 35 37 32 39 24 42 41 42 47 39 42 47 39 42 47 39 42
++51 49 42 47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 53 46 48 47 44 42
++48 44 48 47 44 42 47 39 42 47 44 42 36 35 37 42 38 42 36 35 37 36 35 37
++33 30 36 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 33 30 30 36 35 37 36 35 37 36 35 37 36 35 37 55 39 37 36 35 37
++47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 53 46 48 51 49 42 53 46 48
++51 49 42 53 46 48 47 44 42 53 46 48 51 49 42 53 46 48 53 46 48 53 46 48
++53 46 48 53 46 48 53 46 48 55 55 48 53 46 48 55 55 48 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 53 46 48 55 55 48 59 55 55 59 55 55 59 55 55
++59 55 55 65 57 61 59 55 55 59 55 55 59 55 55 48 50 48 59 55 55 53 46 48
++54 57 61 48 50 48 48 50 48 54 57 61 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 54 57 61 53 46 48 48 50 48 59 55 55 55 55 48 55 55 48
++55 55 48 59 55 55 55 55 48 55 55 48 55 55 48 63 55 51 63 55 51 63 55 51
++65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 75 56 53
++65 55 54 75 56 53 63 55 51 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53
++63 55 45 75 56 53 75 56 53 75 56 53 75 56 53 75 63 62 75 63 62 75 73 58
++75 72 67 88 66 70 88 66 70 75 72 67 88 83 74 88 66 70 88 83 74 88 83 74
++88 83 74 88 83 74 88 83 74 88 83 74 88 66 70 75 72 67 75 72 67 75 63 62
++75 63 62 75 63 62 75 63 62 65 63 61 65 63 61 65 55 54 63 55 51 59 55 55
++55 55 48 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 59 57 61 59 57 61 59 57 61 59 57 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 59 57 61 65 63 61
++59 57 61 59 55 55 59 55 55 54 57 61 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 48 50 48 48 50 48 48 50 48 53 46 48 48 50 48 48 44 48
++48 44 48 47 44 42 48 44 48 48 44 48 48 44 48 48 44 48 48 44 48 48 44 48
++48 44 48 48 44 48 48 44 48 48 44 48 48 44 48 48 44 48 48 44 48 43 42 50
++48 44 48 48 44 48 43 42 50 43 42 50 48 44 48 47 44 42 43 42 50 43 42 50
++42 41 42 37 35 43 42 38 42 42 41 42 42 41 42 42 41 42 42 41 42 43 42 50
++48 44 48 48 50 48 43 42 50 48 50 48 48 44 48 48 50 48 48 50 48 53 46 48
++53 46 48 63 55 51 62 47 47 76 44 53 76 44 53 88 44 51 102 33 26 102 33 26
++88 44 51 102 33 26 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 76 18 19 49 13 16 76 18 19
++76 18 19 76 18 19 49 13 16 49 13 16 23 10 10 3 3 1 47 39 42 138 126 108
++201 216 228 246 237 247 221 238 247 233 241 227 208 221 247 221 238 247 208 221 247 194 199 226
++111 119 127 34 42 77 34 42 77 61 78 101 131 144 168 201 216 228 221 238 247 226 221 247
++201 216 228 221 238 247 208 221 247 208 221 247 232 215 228 208 221 247 194 199 226 194 199 226
++166 176 200 194 199 226 185 202 202 194 199 226 194 199 226 201 216 228 201 216 228 221 238 247
++232 215 228 208 221 247 201 216 228 201 216 228 185 202 202 185 202 202 185 202 202 185 202 202
++131 144 168 63 59 71 12 18 30 12 18 20 22 25 24 22 25 24 22 25 24 28 13 18
++60 49 42 101 83 74 163 117 123 189 165 168 217 168 156 217 168 156 217 168 156 177 169 143
++201 146 124 201 146 124 201 146 124 177 169 143 197 171 123 217 168 156 217 168 156 197 171 123
++217 168 156 217 168 156 217 168 156 214 214 134 222 171 182 214 214 134 217 168 156 217 168 156
++217 168 156 217 168 156 217 168 156 217 168 156 222 171 182 225 222 201 232 215 228 246 237 247
++246 237 247 251 251 247 240 251 247 235 238 247 221 238 247 221 238 247 232 215 228 221 238 247
++226 221 247 231 239 247 231 239 247 235 238 247 231 239 247 185 202 202 145 140 145 150 168 183
++232 215 228 235 238 247 232 215 228 185 202 202 225 222 201 232 215 228 214 214 134 225 222 201
++214 214 134 214 214 134 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47
++214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47
++214 214 134 214 214 134 177 171 115 214 214 134 219 175 47 177 171 115 177 171 115 177 171 115
++146 150 115 138 126 108 138 126 108 117 127 86 99 93 84 101 83 74 88 83 74 88 83 74
++88 83 88 88 83 74 88 83 74 88 69 84 88 83 74 88 83 74 88 83 74 88 69 84
++88 83 74 88 69 84 88 83 74 75 81 82 88 83 74 88 69 84 75 81 76 88 69 84
++88 83 74 75 81 82 88 83 74 88 69 84 75 81 82 88 83 88 75 81 82 75 81 82
++88 69 84 75 81 82 75 81 82 75 81 82 75 81 82 75 81 82 75 81 82 75 64 82
++75 81 82 59 69 70 75 81 76 59 69 70 75 64 82 60 81 83 75 64 82 59 69 70
++75 64 82 60 81 83 75 64 82 60 81 83 75 64 82 75 81 90 75 81 90 75 81 90
++95 91 100 95 95 116 95 91 100 95 95 116 94 105 108 112 96 108 94 105 108 112 96 108
++111 119 127 111 119 127 111 119 127 111 119 127 112 96 108 111 119 127 111 119 127 111 119 127
++111 119 127 111 119 127 112 96 108 111 119 127 112 96 108 111 119 127 112 96 108 94 105 108
++112 96 108 94 105 108 95 91 100 95 91 100 95 91 100 88 83 88 88 83 88 88 83 88
++75 81 76 75 64 82 75 72 67 75 72 67 75 72 67 75 64 82 75 72 67 75 72 67
++75 72 67 75 72 67 65 63 61 75 72 67 75 73 58 75 63 62 75 63 62 75 63 62
++75 73 58 75 63 62 75 73 58 75 63 62 75 73 58 75 63 62 75 63 62 75 63 62
++75 63 62 65 63 61 65 63 61 65 55 54 59 55 55 59 55 55 59 55 55 55 55 48
++53 46 48 48 50 48 48 50 48 48 44 48 48 50 48 48 50 48 43 42 50 48 50 48
++48 50 48 48 50 48 48 50 48 53 46 48 59 55 55 63 55 51 63 55 51 65 63 61
++65 55 54 65 63 61 65 63 61 75 63 62 75 72 67 88 66 70 75 72 67 88 73 62
++88 66 70 88 83 74 88 66 70 88 83 74 88 83 74 88 66 70 88 83 74 75 72 67
++88 73 62 88 73 62 75 72 67 88 73 62 88 73 62 75 63 62 75 72 67 75 72 67
++75 63 62 75 72 67 88 66 70 75 72 67 88 66 70 75 72 67 75 72 67 75 72 67
++75 81 76 88 66 70 75 81 76 88 83 74 88 83 74 88 83 88 99 93 84 99 93 84
++99 93 84 90 98 89 117 99 86 94 105 108 112 96 108 112 123 108 112 96 108 112 123 108
++112 123 108 111 119 127 112 123 108 111 119 127 138 126 108 111 119 127 138 126 108 111 119 127
++138 126 108 121 143 132 138 126 108 111 119 127 121 143 132 121 143 132 141 116 139 122 134 144
++138 126 108 121 143 132 138 126 108 121 143 132 138 126 108 119 117 138 138 126 108 111 119 127
++121 143 132 138 126 108 119 117 138 138 126 108 121 143 132 138 126 108 111 119 127 138 126 108
++112 123 108 111 119 127 112 123 108 138 102 108 112 123 108 112 123 108 112 96 108 98 113 84
++112 96 108 95 91 100 99 93 84 99 93 84 88 83 74 88 83 74 88 83 74 88 66 70
++101 83 74 88 73 62 88 73 62 88 44 51 88 73 62 88 44 51 88 73 62 101 60 73
++88 73 31 88 44 51 88 73 62 88 44 51 101 60 73 88 44 51 88 44 51 88 44 51
++101 74 26 88 44 51 88 44 51 88 44 51 88 73 31 88 44 51 88 44 51 88 73 31
++88 44 51 76 46 20 88 44 51 88 44 51 76 46 20 88 44 51 88 73 31 102 33 26
++88 44 51 76 46 20 88 73 31 76 46 20 88 44 51 88 73 31 102 33 26 75 56 53
++102 33 26 88 73 31 102 33 26 88 73 31 76 46 20 88 44 51 88 73 31 88 44 51
++76 46 20 88 44 51 88 73 31 102 33 26 88 73 31 102 33 26 88 73 31 102 33 26
++101 74 26 88 44 51 101 74 26 102 33 26 101 74 26 88 44 51 101 74 26 88 44 51
++101 74 26 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 101 74 26 88 44 51
++101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 120 63 71 101 74 26 101 74 26
++120 63 71 101 74 26 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 88 44 51
++101 74 26 101 74 26 88 73 62 122 49 24 101 74 26 122 49 24 101 74 26 88 44 51
++101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 101 74 26
++101 74 26 101 74 26 101 74 26 101 74 26 101 74 26 101 74 26 120 63 71 101 74 26
++101 74 26 101 74 26 101 74 26 101 74 26 120 63 71 101 74 26 101 74 26 101 74 26
++
++36 35 37 47 44 42 42 41 42 47 39 42 47 44 42 47 44 42 53 46 48 48 44 48
++48 44 48 47 44 42 48 44 48 48 44 48 47 44 42 47 44 42 42 41 42 42 41 42
++47 44 42 42 41 42 47 47 21 42 41 42 55 39 37 55 39 37 51 49 42 60 49 42
++60 49 42 63 55 45 63 55 45 63 55 45 75 56 53 63 55 45 75 56 53 63 55 45
++75 56 53 63 55 45 63 55 45 63 55 45 60 49 42 60 49 42 55 39 37 51 49 42
++47 44 42 47 44 42 36 35 37 32 39 24 36 35 37 32 39 24 33 30 30 33 30 30
++26 30 28 33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37
++36 35 37 36 35 37 36 35 37 55 39 37 47 44 42 47 44 42 47 44 42 47 44 42
++51 49 42 47 44 42 53 46 48 53 46 48 53 46 48 48 50 48 48 50 48 48 44 48
++48 44 48 43 42 50 42 41 42 42 41 42 42 38 42 42 38 42 36 35 37 42 38 42
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 42 38 42 36 35 37 47 44 42 47 39 42 42 41 42 47 44 42
++47 44 42 47 44 42 51 49 42 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48
++53 46 48 53 46 48 53 46 48 51 49 42 51 49 42 53 46 48 53 46 48 53 46 48
++53 46 48 53 46 48 53 46 48 55 55 48 55 55 48 59 55 55 59 55 55 59 55 55
++55 55 48 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55
++65 63 61 65 55 54 59 57 61 59 55 55 55 55 48 52 55 48 59 55 55 48 50 48
++52 55 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 44 48
++48 50 48 48 50 48 48 50 48 53 46 48 59 55 55 48 44 48 55 55 48 55 55 48
++52 55 48 55 55 48 55 55 48 59 55 55 62 47 47 55 55 48 63 55 51 63 55 51
++65 55 54 65 55 54 75 56 53 63 55 51 75 56 53 62 47 47 75 56 53 75 56 53
++65 55 54 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 63 55 51 75 56 53
++75 56 53 75 56 53 75 63 62 75 63 62 75 63 62 75 72 67 88 66 70 88 66 70
++88 83 74 88 83 74 88 83 74 88 83 74 88 69 84 88 83 74 88 83 74 88 69 84
++88 83 74 88 69 84 88 83 74 88 69 84 88 83 74 88 66 70 75 72 67 75 72 67
++75 72 67 75 63 62 75 63 62 65 63 61 65 63 61 65 63 61 65 55 54 59 55 55
++65 55 54 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 57 61 59 57 61
++59 57 61 59 57 61 65 63 61 65 63 61 65 63 61 59 57 61 65 63 61 65 63 61
++65 63 61 65 63 61 59 69 70 65 63 61 59 69 70 65 63 61 65 63 61 65 63 61
++53 63 61 59 55 55 59 57 61 59 55 55 59 57 61 59 55 55 59 55 55 52 55 48
++59 55 55 48 50 48 59 55 55 53 46 48 54 57 61 48 44 48 48 50 48 48 50 48
++48 44 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 44 48
++48 50 48 48 44 48 48 50 48 48 44 48 53 46 48 53 46 48 48 50 48 48 44 48
++48 44 48 43 42 50 48 44 48 48 44 48 43 42 50 43 42 50 43 42 50 43 42 50
++42 41 42 43 42 50 42 41 42 42 41 42 42 38 42 42 41 42 43 42 50 43 42 50
++43 42 50 48 44 48 47 44 42 48 50 48 48 50 48 45 57 61 53 46 48 54 57 61
++59 55 55 59 55 55 63 55 51 62 47 47 76 44 53 88 44 51 88 30 18 88 44 51
++120 63 71 122 49 24 102 33 26 76 18 19 76 18 19 49 13 16 76 18 19 76 18 19
++76 18 19 49 13 16 76 18 19 76 18 19 76 18 19 49 13 16 76 18 19 76 18 19
++52 30 15 49 13 16 49 13 16 23 10 10 23 10 10 3 3 1 52 30 35 138 102 108
++188 180 202 251 251 247 235 238 247 221 238 247 221 238 247 221 238 247 221 238 247 194 199 226
++98 121 131 42 60 86 46 59 71 61 78 101 131 144 168 201 216 228 221 238 247 208 221 247
++208 221 247 221 238 247 232 215 228 221 238 247 201 216 228 201 216 228 201 216 228 185 202 202
++194 199 226 185 202 202 194 199 226 194 199 226 201 216 228 201 216 228 226 221 247 208 221 247
++208 221 247 201 216 228 201 216 228 194 199 226 188 180 202 166 176 200 188 180 202 194 199 226
++150 147 171 60 81 83 22 23 31 12 18 20 23 20 24 22 25 24 26 30 28 26 25 15
++55 39 37 101 83 74 138 126 108 201 146 124 197 171 123 217 168 156 217 168 156 201 146 124
++177 169 143 201 146 124 201 146 124 217 168 156 201 146 124 217 168 156 197 171 123 217 168 156
++177 169 143 217 168 156 217 168 156 222 171 182 222 171 182 217 168 156 217 168 156 217 168 156
++217 168 156 217 168 156 217 168 156 208 215 180 222 171 182 225 222 201 232 215 228 233 241 227
++246 237 247 251 251 247 240 251 247 240 251 247 235 238 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 240 251 247 226 221 247 166 174 181 111 119 127 145 140 145
++201 216 228 251 251 247 235 238 247 185 202 202 185 202 202 208 215 180 189 165 168 214 214 134
++214 214 134 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 214 214 134 219 175 47
++214 214 134 219 175 47 214 214 134 219 175 47 177 171 115 177 171 115 177 171 115 157 148 53
++177 171 115 146 150 115 157 148 53 117 127 86 117 99 86 117 99 86 101 83 74 101 83 74
++88 83 88 88 83 88 88 69 84 88 83 74 88 83 74 88 69 84 88 83 74 88 83 74
++88 69 84 88 83 74 88 83 88 88 69 84 88 83 88 88 83 74 88 69 84 75 81 82
++88 83 88 88 69 84 88 83 88 88 83 88 88 83 88 75 81 82 88 83 88 75 81 90
++75 81 82 75 81 90 88 69 84 75 81 90 88 83 88 75 81 90 88 69 84 75 81 82
++75 81 82 75 64 82 75 81 82 75 64 82 75 81 82 75 64 82 60 81 83 75 64 82
++60 81 83 75 64 82 75 81 82 75 64 82 75 81 90 75 81 90 77 90 100 95 91 100
++77 91 115 95 91 100 95 95 116 94 105 108 111 119 127 95 108 128 111 119 127 111 119 127
++111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 119 117 138 111 119 127 111 119 127
++111 119 127 111 119 127 111 119 127 111 119 127 112 96 108 111 119 127 111 119 127 112 96 108
++94 105 108 112 96 108 95 91 100 95 91 100 95 91 100 90 98 89 88 83 88 88 83 88
++75 81 82 75 81 82 75 81 76 75 64 82 75 72 67 75 72 67 75 72 67 75 72 67
++65 63 61 75 72 67 75 72 67 75 63 62 65 63 61 75 72 67 75 73 58 75 63 62
++75 72 67 75 63 62 75 72 67 75 63 62 75 63 62 75 63 62 75 73 58 75 63 62
++65 63 61 75 63 62 65 63 61 65 55 54 65 55 54 59 55 55 59 55 55 53 46 48
++55 55 48 48 50 48 51 49 42 48 44 48 48 44 48 43 42 50 48 50 48 48 50 48
++48 50 48 48 50 48 53 46 48 54 57 61 59 55 55 59 55 55 65 63 61 65 63 61
++65 63 61 75 63 62 75 63 62 75 63 62 75 72 67 75 72 67 88 66 70 75 72 67
++88 83 74 88 66 70 75 72 67 88 83 74 88 66 70 88 83 74 75 72 67 88 73 62
++75 72 67 75 72 67 88 73 62 75 72 67 75 72 67 88 73 62 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 88 83 74 75 72 67
++88 83 74 75 81 76 88 83 74 88 83 74 88 83 88 99 93 84 88 83 88 99 93 84
++95 91 100 112 96 108 94 105 108 117 99 86 95 119 107 112 96 108 112 123 108 111 119 127
++112 96 108 138 126 108 111 119 127 138 126 108 111 119 127 121 143 132 111 119 127 121 143 132
++111 119 127 138 126 108 119 117 138 121 143 132 138 126 108 119 117 138 138 126 108 121 143 132
++119 117 138 138 126 108 122 134 144 138 126 108 121 143 132 138 126 108 121 143 132 138 126 108
++119 117 138 138 126 108 121 143 132 138 126 108 119 117 138 138 126 108 111 119 127 138 126 108
++111 119 127 138 126 108 112 123 108 112 123 108 112 123 108 112 96 108 112 123 108 112 96 108
++98 113 84 117 99 86 99 93 84 99 93 84 88 83 88 101 83 74 88 66 70 101 83 74
++88 66 70 88 73 62 88 66 70 88 73 62 88 73 62 88 44 51 88 73 31 88 44 51
++88 44 51 88 73 62 102 33 26 88 73 62 101 74 26 88 44 51 101 74 26 88 44 51
++88 44 51 88 73 31 88 44 51 102 33 26 88 44 51 88 73 31 102 33 26 88 44 51
++76 46 20 88 44 51 88 73 31 88 44 51 101 74 26 88 44 51 102 33 26 88 73 31
++88 44 51 88 73 31 88 44 51 101 74 26 88 44 51 88 73 31 88 44 51 88 73 31
++76 46 20 88 44 51 76 46 20 88 44 51 101 74 26 102 33 26 76 46 20 102 33 26
++88 73 31 102 33 26 88 73 31 88 44 51 101 74 26 88 44 51 101 74 26 88 44 51
++101 74 26 102 33 26 88 73 31 88 44 51 101 74 26 88 44 51 101 74 26 102 33 26
++88 73 31 88 44 51 101 74 26 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26
++122 49 24 88 73 31 88 44 51 101 74 26 102 33 26 101 74 26 101 74 26 88 44 51
++101 74 26 102 33 26 101 74 26 88 44 51 101 74 26 122 49 24 88 44 51 101 74 26
++122 49 24 88 44 51 101 74 26 101 74 26 101 60 73 101 74 26 88 44 51 101 74 26
++122 49 24 88 73 31 102 33 26 101 74 26 101 74 26 122 49 24 101 74 26 120 63 71
++101 74 26 88 44 51 122 49 24 101 60 73 101 74 26 101 74 26 101 74 26 101 74 26
++120 63 71 101 74 26 101 74 26 101 74 26 101 74 26 101 74 26 120 63 71 101 74 26
++
++36 35 37 32 39 24 42 41 42 47 44 42 47 39 42 53 46 48 48 44 48 47 49 42
++48 44 48 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 47 21 47 44 42
++36 35 37 55 39 37 36 35 37 42 41 42 47 47 21 55 39 37 51 49 42 60 49 42
++60 49 42 63 55 45 63 55 45 75 56 53 75 56 53 75 56 53 88 73 31 75 56 53
++75 73 36 75 56 53 75 56 53 63 55 45 75 56 53 63 55 45 63 55 45 60 49 42
++51 49 42 47 44 42 55 39 37 36 35 37 33 30 30 32 39 24 33 30 30 33 30 30
++33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 36 35 37 33 30 30
++36 35 37 36 35 37 47 39 42 36 35 37 47 44 42 47 44 42 51 49 42 51 49 42
++51 49 42 53 46 48 53 46 48 52 55 48 53 46 48 48 50 48 53 46 48 48 50 48
++48 44 48 48 44 48 48 44 48 42 41 42 42 38 42 36 35 37 42 38 42 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 47 39 42 36 35 37 47 39 42 47 44 42
++47 44 42 47 44 42 51 49 42 53 46 48 53 46 48 55 55 48 53 46 48 48 50 48
++53 46 48 53 46 48 51 49 42 47 44 42 51 49 42 53 46 48 53 46 48 53 46 48
++53 46 48 53 46 48 55 55 48 59 55 55 52 55 48 59 55 55 55 55 48 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 52 55 48 59 55 55 48 50 48 54 57 61
++48 50 48 48 50 48 54 57 61 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 53 46 48 48 50 48 48 50 48 53 46 48 48 50 48 53 46 48 52 55 48
++53 46 48 55 55 48 55 55 48 59 55 55 55 55 48 63 55 51 62 47 47 63 55 51
++62 47 47 65 55 54 65 55 54 75 56 53 63 55 45 65 55 54 65 55 54 65 55 54
++75 56 53 63 55 45 75 56 53 63 55 45 63 55 45 75 56 53 75 56 53 75 56 53
++75 63 62 75 63 62 75 63 62 75 72 67 88 66 70 88 66 70 88 83 74 88 83 74
++88 69 84 88 83 74 88 69 84 88 83 74 88 83 88 101 83 74 88 83 88 101 83 74
++88 83 88 101 83 74 88 83 74 88 83 74 88 83 74 75 81 76 88 66 70 88 66 70
++75 72 67 75 63 62 75 73 58 75 63 62 75 63 62 65 63 61 65 63 61 65 63 61
++65 63 61 59 55 55 65 63 61 59 55 55 59 57 61 59 55 55 65 63 61 65 63 61
++65 63 61 59 57 61 59 57 61 65 63 61 59 69 70 65 63 61 75 72 67 63 59 71
++65 63 61 59 69 70 65 63 61 75 72 67 59 69 70 75 72 67 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 59 57 61 59 57 61 54 57 61
++59 55 55 54 57 61 48 50 48 59 55 55 48 50 48 57 43 51 54 57 61 53 46 48
++48 50 48 48 44 48 48 50 48 48 50 48 48 50 48 48 50 48 53 46 48 48 50 48
++48 50 48 48 50 48 48 50 48 53 46 48 53 46 48 53 46 48 48 44 48 48 50 48
++47 44 42 43 42 50 42 41 42 43 42 50 48 44 48 43 42 50 42 41 42 43 42 50
++43 42 50 42 41 42 43 42 50 43 42 50 42 41 42 43 42 50 42 41 42 43 42 50
++43 42 50 42 47 42 47 44 42 43 42 50 48 44 48 48 44 48 48 50 48 52 55 48
++53 46 48 59 55 55 59 55 55 63 55 45 75 56 53 88 44 51 102 33 26 102 33 26
++120 63 71 102 33 26 76 18 19 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19
++49 13 16 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 49 13 16 23 10 10 23 10 10 23 10 10 13 4 7 33 30 30 88 73 62
++166 156 164 235 238 247 235 238 247 231 239 247 221 238 247 221 238 247 221 238 247 194 199 226
++111 122 142 42 60 86 34 42 77 60 63 87 122 134 144 194 199 226 221 238 247 221 238 247
++221 238 247 201 216 228 221 238 247 208 221 247 226 221 247 208 221 247 194 199 226 194 199 226
++185 202 202 194 199 226 185 202 202 194 199 226 194 199 226 201 216 228 201 216 228 208 221 247
++226 221 247 201 216 228 194 199 226 185 202 202 185 202 202 166 176 200 166 176 200 185 202 202
++150 168 183 77 90 100 24 30 43 12 18 20 22 23 31 25 30 29 26 30 28 22 24 13
++55 39 37 101 83 74 138 126 108 168 146 127 201 146 124 217 168 156 177 169 143 201 146 124
++201 146 124 177 169 143 201 146 124 201 146 124 177 169 143 201 146 124 201 146 124 201 146 124
++201 146 124 217 168 156 217 168 156 217 168 156 217 168 156 214 214 134 217 168 156 217 168 156
++197 171 123 217 168 156 217 168 156 217 168 156 222 171 182 225 222 201 232 215 228 246 237 247
++246 237 247 240 251 247 251 251 247 251 251 247 240 251 247 240 251 247 231 239 247 231 239 247
++231 239 247 235 238 247 235 238 247 231 239 247 201 216 228 166 174 181 119 117 138 145 140 145
++185 202 202 251 251 247 246 237 247 189 165 168 188 180 202 185 202 202 177 169 143 225 222 201
++214 214 134 214 214 134 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47
++214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 177 171 115 214 214 134 177 171 115 214 214 134 177 171 115 177 171 115
++177 171 115 177 171 115 138 126 108 138 126 108 117 127 86 117 99 86 99 93 84 99 93 84
++88 83 88 88 83 88 88 83 74 88 69 84 88 83 88 88 83 88 88 83 88 88 83 88
++88 83 74 88 83 88 88 83 88 88 83 88 75 81 82 88 83 88 88 83 74 88 83 88
++88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88
++88 83 88 88 83 88 88 83 88 88 83 88 75 81 90 88 83 88 75 81 90 75 81 90
++75 81 82 75 81 90 75 81 82 75 81 90 60 81 83 75 81 90 75 81 90 75 81 90
++75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 77 90 100 95 91 100
++95 95 116 95 95 116 95 108 128 111 119 127 112 96 108 111 119 127 111 119 127 119 117 138
++111 119 127 119 117 138 111 119 127 119 117 138 111 119 127 119 117 138 111 119 127 119 117 138
++119 117 138 111 119 127 119 117 138 111 119 127 111 119 127 112 96 108 111 119 127 111 119 127
++94 105 108 112 96 108 94 105 108 94 105 108 95 91 100 95 91 100 90 98 89 88 83 88
++88 83 88 75 81 82 88 69 84 75 81 76 75 81 82 75 72 67 75 72 67 75 63 62
++75 72 67 65 63 61 65 63 61 65 63 61 75 63 62 75 72 67 75 63 62 75 73 58
++75 72 67 75 63 62 75 72 67 75 72 67 75 72 67 75 63 62 75 72 67 75 63 62
++75 63 62 75 63 62 65 63 61 65 63 61 65 55 54 59 55 55 59 55 55 55 55 48
++55 55 48 53 46 48 48 50 48 48 50 48 48 50 48 43 42 50 43 42 50 48 50 48
++48 44 48 48 50 48 48 50 48 53 46 48 52 55 48 59 55 55 63 55 51 64 70 48
++65 55 54 65 63 61 75 63 62 75 63 62 75 72 67 88 66 70 75 81 69 88 66 70
++75 72 67 88 66 70 88 83 74 88 66 70 88 83 74 88 73 62 88 66 70 88 83 74
++88 73 62 75 72 67 88 73 62 75 72 67 88 66 70 75 72 67 88 73 62 75 72 67
++88 73 62 88 66 70 75 72 67 88 66 70 88 66 70 75 72 67 75 72 67 88 66 70
++75 81 76 88 66 70 88 83 74 88 83 88 88 83 74 88 83 88 90 98 89 99 93 84
++95 91 100 98 113 84 95 91 100 112 123 108 112 96 108 112 123 108 112 96 108 112 123 108
++111 119 127 111 119 127 138 126 108 111 119 127 138 126 108 112 123 108 138 126 108 121 143 132
++138 126 108 122 134 144 138 126 108 122 134 144 138 126 108 121 143 132 138 126 108 121 143 132
++138 126 108 122 134 144 138 126 108 121 143 132 111 119 127 122 134 144 138 126 108 122 134 144
++138 126 108 121 143 132 111 119 127 138 126 108 111 119 127 138 126 108 111 119 127 138 126 108
++112 123 108 111 119 127 112 123 108 138 102 108 112 123 108 112 123 108 112 96 108 98 113 84
++112 96 108 99 93 84 95 91 100 99 93 84 88 83 74 88 83 74 101 83 74 88 73 62
++101 60 73 88 73 62 88 73 62 88 73 62 88 44 51 88 73 62 88 44 51 101 60 73
++88 73 31 88 44 51 88 73 62 88 44 51 88 44 51 101 74 26 88 44 51 88 44 51
++101 74 26 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51
++88 73 31 102 33 26 88 44 51 76 46 20 88 44 51 102 33 26 88 73 31 88 44 51
++76 46 20 102 33 26 88 73 31 88 44 51 76 46 20 102 33 26 101 74 26 76 46 20
++88 44 51 76 46 20 101 74 26 76 46 20 88 44 51 88 73 31 102 33 26 88 73 31
++76 46 20 75 56 53 102 33 26 88 73 31 102 33 26 88 73 31 102 33 26 76 46 20
++101 74 26 88 44 51 88 73 31 102 33 26 101 74 26 76 46 20 88 44 51 88 73 31
++102 33 26 88 73 31 122 49 24 88 44 51 101 74 26 88 44 51 122 49 24 101 74 26
++88 44 51 101 74 26 101 74 26 88 44 51 88 73 31 101 74 26 88 44 51 101 74 26
++122 49 24 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26
++88 44 51 101 74 26 122 49 24 88 44 51 88 73 31 122 49 24 101 74 26 88 44 51
++101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 88 73 31
++122 49 24 101 74 26 101 74 26 101 74 26 122 49 24 101 74 26 120 63 71 101 74 26
++101 74 26 101 74 26 88 44 51 101 74 26 88 73 62 101 74 26 101 74 26 101 74 26
++
++36 35 37 42 38 42 47 44 42 47 39 42 47 44 42 48 44 48 48 44 48 48 44 48
++48 44 48 48 44 48 47 44 42 48 44 48 47 44 42 42 47 42 42 41 42 42 41 42
++47 47 21 42 41 42 47 47 21 47 39 42 47 47 21 55 39 37 60 49 42 60 49 42
++63 55 45 75 56 53 75 56 53 75 73 36 88 44 51 75 73 58 88 44 51 88 73 62
++75 56 53 88 73 31 75 56 53 75 56 53 75 56 53 75 56 53 63 55 45 63 55 45
++60 49 42 51 49 42 47 44 42 47 47 21 36 35 37 36 35 37 32 39 24 33 30 30
++33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 52 30 35 36 35 37
++55 39 37 42 41 42 47 47 21 47 39 42 47 44 42 55 39 37 51 49 42 53 46 48
++55 55 48 53 46 48 55 55 48 53 46 48 55 55 48 53 46 48 53 46 48 53 46 48
++48 44 48 48 50 48 48 44 48 47 44 42 42 38 42 42 38 42 42 38 42 42 38 42
++52 30 35 36 35 37 36 35 37 52 30 35 36 35 37 36 35 37 36 35 37 33 30 30
++36 35 37 36 35 37 36 35 37 53 35 37 36 35 37 47 44 42 47 39 42 47 44 42
++47 44 42 53 46 48 53 46 48 53 46 48 55 55 48 53 46 48 59 55 55 53 46 48
++52 55 48 53 46 48 53 46 48 51 49 42 48 44 48 48 44 48 53 46 48 53 46 48
++53 46 48 55 55 48 55 55 48 53 46 48 59 55 55 52 55 48 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 63 55 51 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 52 55 48 59 55 55 48 50 48
++53 46 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 44 48 48 50 48
++48 50 48 48 50 48 48 50 48 53 46 48 54 57 61 53 46 48 52 55 48 52 55 48
++55 55 48 59 55 55 55 55 48 59 55 55 63 55 51 55 55 48 63 55 51 62 47 47
++63 55 51 65 55 54 65 55 54 62 47 47 65 55 54 62 47 47 76 44 53 63 55 51
++65 55 54 75 56 53 63 55 51 75 56 53 75 56 53 75 56 53 75 56 53 75 63 62
++75 63 62 75 63 62 88 66 70 88 66 70 88 83 74 88 83 74 88 83 74 88 69 84
++88 83 74 99 93 84 99 93 84 99 93 84 99 93 84 99 93 84 99 93 84 99 93 84
++95 91 100 99 93 84 88 83 88 101 83 74 88 69 84 88 83 74 88 83 74 88 83 74
++75 72 67 75 72 67 75 72 67 75 72 67 75 63 62 75 73 58 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 75 72 67 59 69 70 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 59 69 70 75 72 67 75 72 67 59 69 70 75 72 67
++65 63 61 65 63 61 65 63 61 65 63 61 59 57 61 65 63 61 59 57 61 59 57 61
++59 55 55 59 55 55 59 55 55 48 50 48 54 57 61 52 55 48 53 46 48 54 57 61
++53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 52 55 48 53 46 48
++59 55 55 53 46 48 54 57 61 53 46 48 54 57 61 53 46 48 53 46 48 48 44 48
++48 44 48 48 44 48 43 42 50 48 44 48 43 42 50 42 41 42 43 42 50 42 41 42
++42 41 42 43 42 50 43 42 50 42 41 42 43 42 50 42 41 42 43 42 50 43 42 50
++48 44 48 43 42 50 48 44 48 48 50 48 48 50 48 48 50 48 48 50 48 57 43 64
++52 55 48 54 57 61 55 55 48 59 55 55 62 47 47 76 44 53 88 44 51 101 60 73
++102 33 26 88 44 51 76 18 19 76 18 19 76 18 19 49 13 16 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16
++49 13 16 23 10 10 23 10 10 49 13 16 49 13 16 49 13 16 49 13 16 59 36 42
++138 126 108 194 199 226 233 241 227 235 238 247 231 239 247 221 238 247 221 238 247 194 199 226
++111 122 142 42 60 86 34 42 77 46 59 71 122 134 144 194 199 226 221 238 247 231 239 247
++226 221 247 221 238 247 208 221 247 221 238 247 221 238 247 201 216 228 201 216 228 185 202 202
++194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 201 216 228 226 221 247 221 238 247
++201 216 228 201 216 228 194 199 226 188 180 202 166 176 200 166 174 181 185 202 202 194 199 226
++166 174 181 95 95 116 29 34 50 12 18 20 26 24 32 26 30 28 23 20 24 22 24 13
++53 35 37 88 73 62 138 102 108 168 146 127 201 146 124 168 146 127 201 146 124 201 146 124
++168 146 127 201 146 124 217 168 156 217 168 156 201 146 124 217 168 156 168 146 127 201 146 124
++177 169 143 201 146 124 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 197 171 123
++201 146 124 189 165 168 197 171 123 217 168 156 225 222 201 225 222 201 232 215 228 233 241 227
++251 251 247 251 251 247 251 251 247 251 251 247 240 251 247 235 238 247 235 238 247 240 251 247
++231 239 247 240 251 247 240 251 247 226 221 247 201 216 228 185 202 202 185 202 202 194 199 226
++232 215 228 251 251 247 233 241 227 166 156 164 150 171 159 177 169 143 177 169 143 214 214 134
++214 214 134 214 214 134 219 175 47 214 214 134 219 175 47 219 175 47 219 175 47 214 214 134
++219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134
++214 214 134 219 175 47 214 214 134 219 175 47 177 171 115 219 175 47 177 171 115 177 171 115
++177 171 115 157 148 53 168 146 127 146 150 115 117 114 76 117 127 86 117 99 86 99 93 84
++99 93 84 99 93 84 88 83 88 88 83 74 88 83 88 99 93 84 88 83 88 101 83 74
++88 83 88 99 93 84 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88
++88 83 88 88 83 88 88 83 88 90 98 89 88 83 88 88 83 88 88 83 88 77 90 100
++88 83 88 88 83 88 75 81 90 88 83 88 88 83 88 88 83 88 75 81 90 75 81 82
++75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90
++75 81 90 75 81 90 75 81 90 77 90 100 77 90 100 95 91 100 95 91 100 95 95 116
++95 95 116 111 119 127 111 119 127 111 119 127 111 119 127 119 117 138 119 117 138 119 117 138
++119 117 138 119 117 138 119 117 138 119 117 138 141 116 139 111 119 127 141 116 139 119 117 138
++138 126 108 119 117 138 119 117 138 119 117 138 119 117 138 111 119 127 111 119 127 112 96 108
++111 119 127 112 96 108 94 105 108 112 96 108 94 105 108 95 91 100 95 91 100 88 83 88
++88 83 88 75 81 82 75 81 82 75 81 82 75 64 82 75 72 67 63 59 71 75 72 67
++65 63 61 65 63 61 65 63 61 75 63 62 75 72 67 75 63 62 75 73 58 75 63 62
++75 72 67 75 72 67 75 63 62 75 72 67 75 72 67 75 72 67 75 63 62 75 63 62
++75 63 62 65 63 61 65 63 61 65 55 54 65 55 54 65 55 54 59 55 55 59 55 55
++53 46 48 48 50 48 48 50 48 48 44 48 48 44 48 48 50 48 43 42 50 48 50 48
++45 57 61 48 44 48 48 50 48 54 57 61 59 55 55 55 55 48 59 55 55 65 63 61
++65 63 61 75 63 62 75 63 62 75 63 62 75 72 67 75 72 67 88 66 70 75 72 67
++88 73 62 75 72 67 88 66 70 88 83 74 88 83 74 88 66 70 88 83 74 88 66 70
++75 72 67 88 73 62 75 72 67 88 83 74 75 72 67 88 83 74 75 72 67 88 83 74
++75 72 67 88 83 74 75 72 67 75 72 67 88 83 74 75 81 76 88 83 74 75 81 76
++88 83 74 88 83 74 75 81 76 88 83 88 99 93 84 99 93 84 90 98 89 99 93 84
++112 96 108 90 98 89 112 96 108 112 123 108 112 96 108 112 123 108 111 119 127 138 126 108
++111 119 127 138 126 108 111 119 127 111 119 127 121 143 132 119 117 138 138 126 108 111 119 127
++121 143 132 138 126 108 119 117 138 138 126 108 121 143 132 119 117 138 138 126 108 122 134 144
++138 126 108 121 143 132 119 117 138 138 126 108 121 143 132 138 126 108 119 117 138 138 126 108
++121 143 132 138 126 108 119 117 138 117 142 111 138 126 108 111 119 127 138 126 108 111 119 127
++112 123 108 138 126 108 112 123 108 112 123 108 112 96 108 112 123 108 112 96 108 94 105 108
++99 93 84 95 91 100 99 93 84 99 93 84 88 83 88 101 83 74 88 83 74 88 66 70
++88 73 62 88 73 62 88 73 62 88 44 51 88 73 62 88 44 51 88 73 62 88 44 51
++88 44 51 88 44 51 101 74 26 88 44 51 88 44 51 88 44 51 101 74 26 88 44 51
++88 44 51 88 44 51 101 74 26 88 44 51 88 44 51 88 73 31 88 44 51 76 46 20
++88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 76 46 20
++88 73 31 88 44 51 76 46 20 101 74 26 88 44 51 88 73 31 88 44 51 76 46 20
++101 74 26 88 44 51 76 46 20 88 44 51 101 74 26 76 46 20 88 44 51 76 46 20
++102 33 26 88 73 31 76 46 20 88 44 51 88 73 31 88 44 51 88 73 31 102 33 26
++88 73 31 102 33 26 88 73 31 88 44 51 88 73 31 102 33 26 88 73 31 102 33 26
++88 73 31 88 44 51 88 73 31 102 33 26 88 73 31 88 73 31 88 44 51 101 74 26
++102 33 26 88 73 31 102 33 26 101 74 26 88 44 51 101 74 26 101 74 26 88 44 51
++101 74 26 88 44 51 101 74 26 101 74 26 102 33 26 101 74 26 101 74 26 88 44 51
++101 74 26 88 44 51 101 74 26 101 74 26 122 49 24 88 44 51 101 74 26 122 49 24
++88 73 31 102 33 26 101 74 26 102 33 26 101 74 26 88 44 51 101 74 26 122 49 24
++88 73 62 101 74 26 88 44 51 101 74 26 88 73 62 101 74 26 101 74 26 88 44 51
++101 74 26 120 63 71 101 74 26 101 74 26 122 49 24 101 74 26 120 63 71 101 74 26
++
++42 41 42 36 35 37 42 41 42 42 41 42 42 41 42 48 44 48 48 44 48 48 44 48
++48 44 48 48 44 48 43 42 50 48 44 48 42 41 42 42 41 42 42 41 42 36 35 37
++36 35 37 36 35 37 42 38 42 47 47 21 55 39 37 55 39 37 60 49 42 60 49 42
++76 44 53 75 73 36 75 56 53 75 56 53 88 73 62 88 73 31 88 73 62 88 73 62
++88 73 62 88 44 51 88 73 62 88 73 62 75 73 58 75 56 53 75 56 53 63 55 45
++63 55 45 60 49 42 51 49 42 47 44 42 42 47 42 55 39 37 36 35 37 36 35 37
++33 30 30 33 30 30 36 35 37 33 30 30 33 30 30 36 35 37 33 30 30 33 30 32
++47 47 21 36 35 37 42 41 42 55 39 37 47 44 42 53 46 48 51 49 42 53 46 48
++62 47 47 55 55 48 57 43 51 55 55 48 57 43 51 55 55 48 53 46 48 53 46 48
++53 46 48 53 46 48 48 44 48 47 44 42 47 44 42 47 39 42 42 38 42 42 38 42
++42 38 42 33 30 36 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37 36 35 37
++33 30 30 53 35 37 36 35 37 36 35 37 42 41 42 47 44 42 47 44 42 47 44 42
++53 46 48 48 50 48 53 46 48 48 50 48 59 55 55 53 46 48 55 55 48 53 46 48
++53 46 48 53 46 48 48 50 48 48 50 48 48 50 48 48 50 48 53 46 48 53 46 48
++52 55 48 53 46 48 48 50 48 59 55 55 53 46 48 63 55 51 59 55 55 63 55 51
++59 57 61 65 55 54 65 63 61 59 57 61 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 55 55 48 59 55 55 48 50 48 59 55 55 48 50 48
++59 55 55 48 50 48 54 57 61 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 44 48 48 50 48 48 50 48 53 46 48
++52 55 48 53 46 48 55 55 48 55 55 48 53 46 48 55 55 48 63 55 51 63 55 51
++63 55 51 62 47 47 65 55 54 65 55 54 65 55 54 65 55 54 63 55 45 62 47 47
++63 55 45 63 55 51 63 55 51 63 55 51 65 55 54 75 56 53 75 63 62 75 63 62
++75 72 67 75 72 67 88 66 70 88 83 74 88 69 84 101 83 74 88 83 88 101 83 74
++99 93 84 99 93 84 99 93 84 99 93 84 112 96 108 99 93 84 112 96 108 95 91 100
++117 99 86 99 93 84 99 93 84 99 93 84 99 93 84 88 83 74 88 83 88 88 66 70
++88 83 74 88 66 70 75 72 67 75 72 67 75 72 67 75 63 62 75 72 67 75 73 58
++75 63 62 65 63 61 75 63 62 65 63 61 65 63 61 65 63 61 65 63 61 75 63 62
++63 59 71 75 72 67 63 59 71 75 72 67 63 59 71 75 81 76 75 64 82 75 64 82
++59 69 70 75 64 82 75 81 76 75 72 67 75 81 76 59 69 70 75 64 82 59 69 70
++75 72 67 59 69 70 59 69 70 65 63 61 59 57 61 65 63 61 65 63 61 59 57 61
++59 55 55 54 57 61 55 55 48 59 55 55 52 55 48 59 55 55 52 55 48 59 55 55
++53 46 48 59 55 55 55 55 48 55 55 48 55 55 48 59 55 55 53 46 48 55 55 48
++53 46 48 48 50 48 48 50 48 53 46 48 48 50 48 57 43 64 48 50 48 48 50 48
++48 44 48 48 44 48 48 50 48 48 44 48 48 44 48 43 42 50 43 42 50 42 41 42
++43 42 50 43 42 50 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 48 44 48
++42 47 42 48 44 48 43 42 50 48 44 48 43 42 50 57 43 51 48 50 48 48 50 48
++43 55 48 48 50 48 54 57 61 52 55 48 59 55 55 65 55 54 75 56 53 76 44 53
++88 44 51 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16 49 13 16
++23 10 10 23 10 10 23 10 10 49 13 16 49 13 16 76 18 19 76 18 19 76 18 19
++112 96 108 222 171 182 226 221 247 240 251 247 221 238 247 231 239 247 221 238 247 194 199 226
++111 122 142 42 60 86 32 40 58 42 60 86 111 122 142 201 216 228 226 221 247 221 238 247
++221 238 247 221 238 247 232 215 228 221 238 247 208 221 247 232 215 228 194 199 226 194 199 226
++194 199 226 201 216 228 201 216 228 185 202 202 194 199 226 201 216 228 208 221 247 232 215 228
++208 221 247 194 199 226 185 202 202 185 202 202 166 176 200 166 176 200 166 176 200 201 216 228
++188 180 202 95 108 128 43 42 50 12 18 20 25 30 29 22 25 24 15 22 17 14 16 17
++53 35 17 75 56 53 117 99 86 168 102 88 163 117 123 201 146 124 168 146 127 168 146 127
++201 146 124 217 168 156 177 169 143 217 168 156 217 168 156 197 171 123 217 168 156 201 146 124
++201 146 124 197 171 123 201 146 124 197 171 123 201 146 124 201 146 124 201 146 124 168 146 127
++201 146 124 201 146 124 201 146 124 217 168 156 222 171 182 222 171 182 232 215 228 246 237 247
++246 237 247 251 251 247 251 251 247 251 251 247 251 251 247 235 238 247 235 238 247 231 239 247
++240 251 247 251 251 247 235 238 247 232 215 228 185 202 202 232 215 228 251 251 247 251 251 247
++251 251 247 251 251 247 232 215 228 150 171 159 145 140 145 145 140 145 146 150 115 177 171 115
++214 214 134 214 214 134 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47
++214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 214 214 134
++219 175 47 214 214 134 219 175 47 214 214 134 177 171 115 214 214 134 177 171 115 219 175 47
++177 171 115 177 171 115 177 171 115 157 148 53 138 126 108 138 126 108 117 127 86 117 99 86
++99 93 84 99 93 84 99 93 84 99 93 84 88 83 88 99 93 84 88 83 88 99 93 84
++88 83 88 99 93 84 88 83 88 99 93 84 88 83 88 88 83 88 99 93 84 95 91 100
++90 98 89 88 83 88 95 91 100 90 98 89 95 91 100 90 98 89 88 83 88 95 91 100
++88 83 88 77 90 100 88 83 88 88 83 88 77 90 100 88 83 88 75 81 90 88 83 88
++75 81 90 88 83 88 75 81 90 88 69 84 77 90 100 77 90 100 75 81 90 77 90 100
++77 90 100 77 90 100 95 91 100 77 90 100 95 91 100 77 91 115 94 105 108 95 95 116
++95 108 128 95 108 128 111 119 127 111 119 127 119 117 138 119 117 138 111 119 127 122 134 144
++119 117 138 122 134 144 121 143 132 122 134 144 121 143 132 141 116 139 119 117 138 122 134 144
++119 117 138 122 134 144 141 116 139 119 117 138 138 126 108 119 117 138 111 119 127 111 119 127
++111 119 127 112 96 108 111 119 127 94 105 108 94 105 108 94 105 108 95 91 100 77 90 100
++88 83 88 88 83 88 88 83 88 75 81 76 75 72 67 59 69 70 75 72 67 75 72 67
++65 63 61 75 63 62 65 63 61 65 63 61 75 72 67 75 63 62 75 72 67 75 72 67
++75 63 62 75 72 67 75 72 67 75 72 67 75 63 62 75 72 67 75 72 67 75 63 62
++75 63 62 65 63 61 75 56 53 65 63 61 65 63 61 65 55 54 65 55 54 63 55 51
++55 55 48 55 55 48 51 49 42 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 44 48 48 50 48 53 46 48 48 50 48 59 55 55 59 55 55 63 55 51 65 63 61
++75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 72 67 75 72 67 75 72 67
++88 66 70 75 72 67 88 83 74 75 72 67 88 66 70 88 83 74 75 72 67 88 83 74
++88 83 74 75 72 67 88 73 62 75 72 67 88 66 70 75 72 67 88 83 74 75 72 67
++88 83 74 88 66 70 75 81 76 88 83 74 75 81 76 88 66 70 75 81 76 88 83 74
++75 81 76 88 83 74 88 83 74 99 93 84 88 83 88 90 98 89 99 93 84 95 91 100
++98 113 84 112 96 108 98 113 84 112 96 108 112 123 108 112 96 108 112 123 108 112 123 108
++111 119 127 117 142 111 119 117 138 138 126 108 111 119 127 138 126 108 121 143 132 138 126 108
++119 117 138 138 126 108 121 143 132 119 117 138 138 126 108 121 143 132 138 126 108 121 143 132
++138 126 108 121 143 132 138 126 108 122 134 144 138 126 108 121 143 132 138 126 108 121 143 132
++119 117 138 138 126 108 111 119 127 138 126 108 111 119 127 138 126 108 111 119 127 112 123 108
++138 126 108 111 119 127 112 123 108 138 102 108 112 123 108 112 96 108 94 105 108 117 99 86
++95 91 100 99 93 84 99 93 84 99 93 84 101 83 74 88 83 74 88 83 74 101 83 74
++88 73 62 88 66 70 88 73 62 88 73 62 88 73 62 88 73 31 88 44 51 75 56 53
++88 73 31 88 73 62 88 44 51 88 44 51 101 74 26 88 73 62 88 44 51 101 74 26
++88 44 51 101 74 26 88 44 51 88 44 51 88 73 31 88 44 51 88 44 51 88 73 31
++88 44 51 88 44 51 88 73 31 88 44 51 76 46 20 88 44 51 88 73 31 88 44 51
++88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 102 33 26 88 73 31 88 44 51
++76 46 20 88 44 51 101 74 26 76 46 20 88 44 51 88 73 31 102 33 26 88 73 31
++76 46 20 88 73 31 102 33 26 88 73 31 102 33 26 88 73 31 102 33 26 88 73 31
++88 44 51 88 73 31 102 33 26 101 74 26 76 46 20 88 44 51 88 73 31 88 44 51
++101 74 26 76 46 20 88 44 51 101 74 26 88 44 51 88 73 31 102 33 26 88 73 31
++102 33 26 88 73 31 88 44 51 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26
++88 44 51 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26
++102 33 26 101 74 26 122 49 24 88 44 51 101 74 26 101 74 26 88 44 51 88 73 31
++102 33 26 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 122 49 24 101 74 26
++88 44 51 122 49 24 101 74 26 120 63 71 101 74 26 122 49 24 101 74 26 120 63 71
++101 74 26 101 74 26 101 74 26 120 63 71 101 74 26 88 73 62 101 74 26 101 74 26
++
++36 35 37 42 41 42 47 44 42 47 44 42 43 42 50 48 44 48 42 41 42 48 44 48
++42 47 42 48 44 48 42 41 42 43 42 50 42 41 42 36 35 37 47 47 21 36 35 37
++42 41 42 47 47 21 47 39 42 36 35 37 47 47 21 60 49 42 60 49 42 60 49 42
++75 56 53 75 56 53 88 73 31 88 73 62 88 44 51 88 73 62 88 73 62 88 73 31
++88 73 62 88 73 62 88 73 62 88 73 62 75 56 53 88 73 62 63 55 45 63 55 45
++63 55 45 60 49 42 51 49 42 51 49 42 47 39 42 47 47 21 36 35 37 53 35 17
++33 30 30 32 39 24 52 30 35 32 39 24 52 30 35 32 39 24 52 30 35 53 35 37
++36 35 37 55 39 37 47 44 42 47 44 42 51 49 42 60 49 42 53 46 48 55 55 48
++55 55 48 53 46 48 55 55 48 59 55 55 53 46 48 55 55 48 53 46 48 53 46 48
++48 50 48 53 46 48 53 46 48 53 46 48 47 44 42 47 44 42 47 39 42 42 38 42
++36 35 37 42 38 42 36 35 37 36 35 37 33 30 32 36 35 37 33 30 32 36 35 37
++36 35 37 36 35 37 36 35 37 47 39 42 47 44 42 47 44 42 47 44 42 48 44 48
++53 46 48 53 46 48 59 55 55 59 55 55 53 46 48 52 55 48 53 46 48 52 55 48
++53 46 48 53 46 48 48 50 48 48 50 48 48 44 48 48 50 48 53 46 48 53 46 48
++53 46 48 48 50 48 48 50 48 53 46 48 59 55 55 59 55 55 59 55 55 59 55 55
++59 57 61 65 63 61 59 55 55 59 55 55 59 55 55 65 63 61 59 55 55 65 55 54
++59 57 61 65 55 54 59 55 55 59 55 55 52 55 48 52 55 48 48 50 48 54 57 61
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 44 48
++48 50 48 53 46 48 48 50 48 53 46 48 48 50 48 53 46 48 52 55 48 52 55 48
++53 46 48 55 55 48 53 46 48 59 55 55 55 55 48 55 55 48 62 47 47 59 55 55
++63 55 51 63 55 51 62 47 47 63 55 51 65 55 54 63 55 45 75 56 53 62 47 47
++75 56 53 63 55 51 75 56 53 65 55 54 75 56 53 75 63 62 88 73 62 88 66 70
++75 72 67 88 66 70 88 83 74 101 83 74 88 83 88 101 83 74 99 93 84 95 91 100
++99 93 84 112 96 108 112 96 108 112 96 108 99 93 84 112 96 108 117 99 86 112 96 108
++117 99 86 112 96 108 99 93 84 95 91 100 99 93 84 101 83 74 88 83 88 88 83 74
++88 83 74 88 83 74 88 66 70 75 81 76 75 72 67 75 72 67 75 72 67 75 72 67
++75 63 62 75 72 67 65 63 61 75 63 62 65 63 61 75 72 67 75 63 62 75 72 67
++75 72 67 75 64 82 75 72 67 75 64 82 75 81 76 75 81 76 75 81 76 75 81 82
++75 81 82 75 81 76 75 64 82 75 81 76 75 64 82 75 72 67 75 72 67 59 69 70
++75 64 82 75 72 67 65 63 61 65 63 61 59 69 70 65 63 61 59 57 61 53 63 61
++59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 52 55 48 59 55 55
++59 55 55 53 46 48 55 55 48 53 46 48 55 55 48 59 55 55 59 55 55 53 46 48
++54 57 61 59 55 55 59 55 55 54 57 61 48 50 48 52 55 48 53 46 48 53 46 48
++43 42 50 48 50 48 48 44 48 48 44 48 48 44 48 43 42 50 42 41 42 43 42 50
++42 41 42 43 42 50 43 42 50 42 41 42 42 41 42 42 41 42 42 47 42 42 41 42
++48 44 48 43 42 50 43 42 50 48 50 48 43 42 50 48 50 48 48 44 48 54 57 61
++48 50 48 45 57 61 52 55 48 52 55 48 59 55 55 65 55 54 75 56 53 88 44 51
++76 18 19 49 13 16 76 18 19 76 18 19 49 13 16 76 18 19 76 18 19 76 18 19
++102 33 26 102 33 26 88 30 18 88 30 18 88 30 18 76 18 19 23 10 10 23 10 10
++23 10 10 23 10 10 49 13 16 49 13 16 76 18 19 88 30 18 49 13 16 52 30 35
++138 102 108 188 180 202 233 241 227 235 238 247 221 238 247 221 238 247 231 239 247 201 216 228
++111 122 142 42 60 86 34 42 77 60 63 87 129 144 153 194 199 226 231 239 247 231 239 247
++226 221 247 221 238 247 221 238 247 208 221 247 232 215 228 201 216 228 194 199 226 185 202 202
++201 216 228 201 216 228 201 216 228 194 199 226 194 199 226 232 215 228 208 221 247 201 216 228
++201 216 228 201 216 228 185 202 202 166 176 200 166 176 200 185 202 202 185 202 202 201 216 228
++185 202 202 111 119 127 43 42 50 12 18 20 23 20 24 23 20 24 14 16 17 15 17 7
++34 30 15 55 39 37 88 73 62 117 99 86 168 102 88 138 102 108 168 102 88 163 117 123
++201 146 124 177 169 143 217 168 156 217 168 156 217 168 156 217 168 156 177 169 143 201 146 124
++217 168 156 201 146 124 177 169 143 201 146 124 168 146 127 163 117 123 163 117 123 163 117 123
++168 146 127 168 146 127 201 146 124 217 168 156 217 168 156 208 215 180 225 222 201 232 215 228
++246 237 247 246 237 247 240 251 247 246 237 247 240 251 247 246 237 247 233 241 227 235 238 247
++240 251 247 240 251 247 240 251 247 231 239 247 185 202 202 185 202 202 232 215 228 235 238 247
++251 251 247 251 251 247 240 251 247 201 216 228 166 174 181 146 151 137 146 151 137 177 171 115
++214 214 134 219 175 47 214 214 134 219 175 47 219 175 47 214 214 134 219 175 47 219 175 47
++214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47
++214 214 134 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 177 171 115 177 171 115
++177 171 115 177 171 115 177 171 115 168 146 127 146 150 115 138 126 108 138 126 108 117 114 76
++117 99 86 99 93 84 99 93 84 99 93 84 99 93 84 99 93 84 99 93 84 88 83 88
++99 93 84 99 93 84 99 93 84 95 91 100 95 91 100 99 93 84 95 91 100 95 91 100
++95 91 100 95 91 100 90 98 89 95 91 100 90 98 89 95 91 100 95 91 100 90 98 89
++95 91 100 90 98 89 95 91 100 90 98 89 95 91 100 77 90 100 88 83 88 88 83 88
++88 83 88 77 90 100 95 91 100 77 91 115 95 91 100 77 91 115 95 91 100 95 91 100
++77 90 100 95 95 116 77 90 100 95 95 116 95 95 116 95 95 116 94 105 108 95 108 128
++111 119 127 111 119 127 119 117 138 119 117 138 111 122 142 119 117 138 122 134 144 141 116 139
++121 143 132 122 134 144 119 117 138 122 134 144 141 116 139 122 134 144 121 143 132 141 116 139
++122 134 144 141 116 139 121 143 132 119 117 138 119 117 138 119 117 138 138 126 108 111 119 127
++112 96 108 111 119 127 112 96 108 94 105 108 112 96 108 95 91 100 90 98 89 95 91 100
++90 98 89 88 83 88 75 81 82 75 81 82 75 64 82 75 72 67 75 72 67 63 59 71
++75 63 62 65 63 61 65 63 61 75 63 62 65 63 61 75 63 62 75 73 58 75 63 62
++75 73 58 75 72 67 75 63 62 88 73 62 75 72 67 75 63 62 75 63 62 75 63 62
++65 63 61 75 63 62 65 63 61 75 63 62 65 55 54 65 63 61 65 55 54 65 55 54
++63 55 51 55 55 48 55 55 48 52 55 48 53 46 48 54 57 61 53 46 48 45 57 61
++53 46 48 45 57 61 53 46 48 59 55 55 59 55 55 59 55 55 59 55 55 65 63 61
++65 63 61 75 63 62 75 63 62 75 63 62 75 72 67 75 72 67 75 72 67 75 72 67
++88 73 62 75 72 67 88 66 70 75 72 67 88 83 74 88 66 70 88 69 84 88 73 62
++75 72 67 88 73 62 75 72 67 88 83 74 88 83 74 88 83 74 88 66 70 88 83 74
++75 81 76 88 83 74 88 83 74 75 72 67 88 83 74 75 81 76 88 83 74 88 83 74
++88 69 84 88 83 74 88 83 88 88 83 88 99 93 84 99 93 84 95 91 100 90 98 89
++112 96 108 98 113 84 112 96 108 112 123 108 112 123 108 111 119 127 138 126 108 111 119 127
++138 126 108 119 117 138 138 126 108 121 143 132 119 117 138 138 126 108 119 117 138 121 143 132
++121 143 132 138 126 108 121 143 132 138 126 108 121 143 132 119 117 138 138 126 108 122 134 144
++111 119 127 138 126 108 121 143 132 138 126 108 122 134 144 138 126 108 119 117 138 138 126 108
++121 143 132 138 126 108 111 119 127 138 126 108 111 119 127 138 126 108 111 119 127 138 126 108
++111 119 127 138 102 108 112 123 108 112 96 108 112 123 108 112 96 108 98 113 84 112 96 108
++90 98 89 99 93 84 99 93 84 88 83 88 88 83 88 101 83 74 88 66 70 101 83 74
++88 66 70 88 73 62 88 73 62 88 44 51 88 73 62 88 44 51 75 56 53 88 44 51
++88 44 51 88 44 51 88 73 31 88 44 51 88 44 51 88 44 51 101 74 26 101 60 73
++88 44 51 88 73 31 88 44 51 101 74 26 88 44 51 88 73 31 88 44 51 88 44 51
++88 73 31 102 33 26 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 102 33 26
++88 73 31 88 44 51 76 46 20 88 44 51 88 73 31 88 44 51 88 73 31 102 33 26
++88 73 31 88 44 51 76 46 20 101 74 26 88 44 51 76 46 20 88 73 31 88 44 51
++102 33 26 88 73 31 88 44 51 76 46 20 76 46 20 88 44 51 88 73 31 102 33 26
++88 73 31 88 44 51 88 73 31 76 46 20 101 74 26 102 33 26 88 73 31 102 33 26
++88 73 31 102 33 26 88 73 31 102 33 26 88 73 31 102 33 26 88 73 31 102 33 26
++88 73 31 102 33 26 88 73 31 102 33 26 101 74 26 88 44 51 101 74 26 122 49 24
++88 73 31 88 44 51 101 74 26 101 74 26 88 44 51 101 74 26 88 44 51 122 49 24
++88 73 31 88 44 51 101 74 26 101 74 26 122 49 24 88 44 51 122 49 24 88 73 31
++88 44 51 101 74 26 102 33 26 101 74 26 88 44 51 101 74 26 101 60 73 101 74 26
++101 74 26 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 120 63 71 101 74 26
++101 74 26 120 63 71 101 74 26 101 74 26 101 74 26 120 63 71 101 74 26 120 63 71
++
++36 35 37 42 41 42 42 41 42 42 41 42 42 41 42 43 42 50 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 38 42 42 41 42 36 35 37 36 35 37 47 47 21
++36 35 37 47 39 42 47 44 42 55 39 37 55 39 37 60 49 42 60 49 42 76 44 53
++75 73 36 75 56 53 75 56 53 88 44 51 88 73 62 101 74 26 88 73 62 88 73 62
++120 63 71 88 73 62 101 74 26 88 73 62 88 73 62 88 73 31 75 56 53 75 56 53
++63 55 45 63 55 45 60 49 42 60 49 42 47 44 42 55 39 37 36 35 37 36 35 37
++52 30 35 33 30 30 52 30 35 32 39 24 52 30 35 33 30 30 52 30 35 36 35 37
++53 35 37 47 39 42 47 44 42 55 39 37 60 49 42 53 46 48 62 47 47 62 47 47
++63 55 51 63 55 51 59 55 55 62 47 47 63 55 51 59 55 55 62 47 47 55 55 48
++53 46 48 53 46 48 53 46 48 53 46 48 48 44 48 48 44 48 47 39 42 47 39 42
++42 38 42 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++52 30 35 36 35 37 36 35 37 42 38 42 47 39 42 47 39 42 47 44 42 48 44 48
++53 46 48 52 55 48 53 46 48 48 50 48 59 55 55 53 46 48 54 57 61 53 46 48
++52 55 48 53 46 48 48 50 48 48 50 48 48 50 48 53 46 48 53 46 48 53 46 48
++48 50 48 53 46 48 54 57 61 53 46 48 55 55 48 62 47 47 59 55 55 59 55 55
++63 55 51 59 55 55 59 55 55 65 63 61 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 55 55 48 59 55 55 48 50 48 59 55 55 48 50 48
++59 55 55 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 53 46 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 53 46 48 53 46 48 48 50 48 51 49 42
++53 46 48 53 46 48 53 46 48 62 47 47 53 46 48 53 46 48 62 47 47 63 55 51
++62 47 47 62 47 47 63 55 51 62 47 47 63 55 51 63 55 51 62 47 47 63 55 51
++63 55 51 65 55 54 65 55 54 75 56 53 75 63 62 88 66 70 75 81 69 88 66 70
++88 83 74 88 69 84 88 83 74 88 83 88 101 83 74 95 91 100 99 93 84 95 91 100
++117 99 86 112 96 108 117 99 86 117 99 86 112 96 108 112 96 108 117 99 86 112 96 108
++112 96 108 117 99 86 112 96 108 99 93 84 99 93 84 95 91 100 101 83 74 88 83 88
++88 83 74 88 69 84 88 83 74 88 83 74 88 83 74 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 64 82 75 72 67 59 69 70 75 72 67
++75 64 82 75 72 67 75 64 82 75 81 76 75 81 76 75 81 82 75 64 82 75 81 82
++75 64 82 75 81 82 75 81 82 75 81 82 75 81 76 75 64 82 75 81 76 75 64 82
++75 72 67 59 69 70 75 72 67 63 59 71 65 63 61 65 63 61 59 57 61 65 63 61
++59 57 61 65 63 61 65 63 61 59 57 61 59 57 61 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 63 55 51 63 55 51 63 55 51 59 55 55 63 55 51
++55 55 48 59 55 55 59 55 55 53 46 48 59 55 55 59 55 55 53 46 48 54 57 61
++48 50 48 48 44 48 48 50 48 48 50 48 48 50 48 43 42 50 43 42 50 42 41 42
++43 42 50 42 41 42 43 42 50 42 41 42 42 41 42 42 41 42 43 42 50 42 41 42
++43 42 50 43 42 50 48 44 48 43 42 50 43 42 50 48 44 48 48 44 48 48 50 48
++48 50 48 52 55 48 52 55 48 48 50 48 59 55 55 65 63 61 65 55 54 65 55 54
++75 56 53 59 36 42 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 49 13 16 49 13 16 49 13 16 23 10 10
++49 13 16 49 13 16 49 13 16 76 18 19 76 18 19 76 18 19 76 18 19 76 44 53
++145 140 145 232 215 228 226 221 247 221 238 247 226 221 247 221 238 247 231 239 247 201 216 228
++111 122 142 46 59 71 32 40 58 60 63 87 131 144 168 201 216 228 231 239 247 231 239 247
++221 238 247 208 221 247 226 221 247 221 238 247 208 221 247 201 216 228 194 199 226 194 199 226
++201 216 228 226 221 247 201 216 228 185 202 202 194 199 226 208 221 247 231 239 247 221 238 247
++226 221 247 194 199 226 194 199 226 185 202 202 185 202 202 185 202 202 194 199 226 232 215 228
++188 180 202 95 95 116 28 35 38 3 4 9 7 12 13 14 16 17 7 12 13 15 17 7
++28 13 18 55 39 37 75 73 36 120 63 71 101 83 74 120 63 71 117 114 76 168 102 88
++168 146 127 201 146 124 217 168 156 217 168 156 217 168 156 197 171 123 217 168 156 201 146 124
++177 169 143 217 168 156 201 146 124 201 146 124 168 146 127 201 146 124 168 146 127 168 102 88
++168 102 88 168 146 127 201 146 124 177 169 143 217 168 156 217 168 156 222 171 182 225 222 201
++232 215 228 231 239 247 246 237 247 251 251 247 240 251 247 240 251 247 240 251 247 235 238 247
++240 251 247 246 237 247 240 251 247 251 251 247 232 215 228 185 202 202 185 202 202 166 174 181
++188 180 202 185 202 202 232 215 228 251 251 247 235 238 247 225 222 201 225 222 201 214 214 134
++214 214 134 214 214 134 214 214 134 219 175 47 214 214 134 219 175 47 219 175 47 214 214 134
++219 175 47 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47
++214 214 134 219 175 47 214 214 134 214 214 134 214 214 134 157 148 53 214 214 134 219 175 47
++197 171 123 177 171 115 177 171 115 157 148 53 177 171 115 157 148 53 138 126 108 138 126 108
++117 127 86 98 113 84 117 99 86 95 91 100 99 93 84 95 91 100 99 93 84 99 93 84
++99 93 84 99 93 84 95 91 100 99 93 84 95 91 100 95 91 100 95 91 100 95 91 100
++112 96 108 95 91 100 112 96 108 95 91 100 95 91 100 94 105 108 95 91 100 95 91 100
++95 91 100 95 91 100 77 90 100 95 91 100 88 83 88 95 91 100 95 91 100 77 90 100
++95 91 100 95 91 100 77 90 100 95 91 100 77 91 115 95 91 100 95 95 116 77 91 115
++95 95 116 95 95 116 95 95 116 94 105 108 95 95 116 94 105 108 95 108 128 95 108 128
++95 108 128 119 117 138 111 119 127 119 117 138 121 143 132 119 117 138 122 134 144 122 134 144
++141 116 139 122 134 144 122 134 144 145 140 145 122 134 144 145 140 145 122 134 144 141 116 139
++122 134 144 122 134 144 119 117 138 119 117 138 121 143 132 119 117 138 111 119 127 111 119 127
++111 119 127 111 119 127 111 119 127 112 96 108 94 105 108 94 105 108 95 91 100 95 91 100
++95 91 100 88 83 88 88 83 88 88 83 88 75 81 76 75 81 82 75 72 67 75 72 67
++75 72 67 75 63 62 65 63 61 75 63 62 65 63 61 75 73 58 75 63 62 75 72 67
++75 63 62 88 73 62 75 72 67 75 63 62 75 72 67 75 63 62 75 72 67 75 63 62
++75 72 67 75 63 62 75 63 62 65 63 61 75 63 62 65 63 61 65 63 61 65 63 61
++59 55 55 59 55 55 59 55 55 48 50 48 59 55 55 45 57 61 59 55 55 54 57 61
++48 50 48 53 46 48 54 57 61 48 50 48 59 55 55 59 55 55 64 70 48 63 55 51
++65 55 54 65 63 61 65 63 61 65 63 61 75 63 62 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 81 76 88 66 70 88 83 74 75 72 67 75 72 67 88 83 74
++75 72 67 88 66 70 88 83 74 88 73 62 75 72 67 88 73 62 75 81 69 88 83 74
++88 73 62 75 81 76 75 81 76 88 66 70 75 81 76 88 83 74 88 83 74 88 83 74
++88 83 88 88 83 74 88 83 88 99 93 84 99 93 84 90 98 89 117 99 86 90 98 89
++112 96 108 112 123 108 112 96 108 112 123 108 112 123 108 138 102 108 111 119 127 112 123 108
++111 119 127 117 142 111 119 117 138 138 126 108 121 143 132 138 126 108 121 143 132 138 126 108
++121 143 132 141 116 139 121 143 132 119 117 138 138 126 108 121 143 132 138 126 108 121 143 132
++138 126 108 122 134 144 138 126 108 119 117 138 121 143 132 138 126 108 121 143 132 111 119 127
++138 126 108 111 119 127 138 126 108 111 119 127 138 126 108 111 119 127 138 126 108 112 123 108
++112 123 108 112 123 108 112 96 108 112 123 108 117 99 86 112 123 108 112 96 108 98 113 84
++99 93 84 95 91 100 99 93 84 99 93 84 88 83 74 101 83 74 88 83 74 88 83 74
++88 73 62 88 66 70 88 73 62 88 73 62 88 73 62 88 44 51 88 73 62 88 73 31
++88 44 51 88 73 62 88 44 51 88 44 51 101 74 26 88 73 62 88 44 51 88 44 51
++88 73 31 101 60 73 101 74 26 88 44 51 88 73 62 88 44 51 88 44 51 88 73 31
++88 44 51 88 44 51 88 73 31 88 44 51 88 44 51 88 73 31 88 44 51 88 73 31
++88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31
++88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 102 33 26 88 73 31
++88 73 31 76 46 20 88 44 51 101 74 26 76 46 20 88 73 31 76 46 20 88 44 51
++88 73 31 102 33 26 101 74 26 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51
++76 46 20 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 102 33 26 88 73 31
++88 44 51 88 73 31 102 33 26 88 73 31 88 44 51 101 74 26 88 44 51 88 73 31
++88 44 51 122 49 24 101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 101 74 26
++88 44 51 101 74 26 120 63 71 101 74 26 88 44 51 101 74 26 101 74 26 88 44 51
++101 74 26 101 74 26 101 74 26 88 44 51 101 74 26 101 74 26 122 49 24 101 74 26
++120 63 71 101 74 26 120 63 71 101 74 26 101 74 26 120 63 71 101 74 26 101 74 26
++88 44 51 101 74 26 101 74 26 101 74 26 120 63 71 101 74 26 101 74 26 101 74 26
++
++36 35 37 47 44 42 42 41 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 42 41 42
++47 39 42 55 39 37 55 39 37 51 49 42 60 49 42 60 49 42 63 55 45 75 56 53
++75 56 53 88 73 31 88 73 62 88 73 31 88 73 62 88 44 51 88 73 62 101 74 26
++88 73 62 88 73 62 120 63 71 88 73 62 101 60 73 88 73 62 75 56 53 75 73 36
++76 44 53 75 56 53 60 49 42 60 49 42 51 49 42 55 39 37 53 35 37 52 30 35
++32 39 24 33 30 30 52 30 35 33 30 30 52 30 35 53 35 37 52 30 35 53 35 37
++55 39 37 47 39 42 55 39 37 53 46 48 62 47 47 62 47 47 63 55 51 59 55 55
++65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 57 43 51 63 55 51 57 43 51
++59 55 55 57 43 51 59 55 55 53 46 48 53 46 48 53 46 48 48 44 48 42 41 42
++42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 52 30 35 36 35 37 36 35 37
++36 35 37 42 41 42 53 35 37 42 41 42 47 39 42 42 41 42 47 44 42 48 44 48
++53 46 48 53 46 48 59 55 55 59 55 55 48 50 48 52 55 48 48 50 48 48 50 48
++52 55 48 48 50 48 53 46 48 53 46 48 48 50 48 53 46 48 48 50 48 53 46 48
++48 50 48 53 46 48 48 50 48 53 46 48 53 46 48 59 55 55 55 55 48 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 63 55 51 59 57 61
++59 55 55 59 55 55 59 55 55 59 55 55 52 55 48 52 55 48 48 50 48 59 55 55
++48 50 48 48 50 48 43 55 48 43 42 50 43 42 50 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 44 48 48 44 48 51 49 42 51 49 42
++51 49 42 53 46 48 62 47 47 53 46 48 60 49 42 55 55 48 62 47 47 55 55 48
++62 47 47 60 49 42 62 47 47 62 47 47 62 47 47 62 47 47 63 55 51 63 55 51
++65 55 54 75 63 62 65 63 61 75 63 62 75 63 62 75 72 67 88 83 74 88 69 84
++88 83 74 88 83 74 88 83 88 99 93 84 95 91 100 117 99 86 112 96 108 117 99 86
++112 96 108 112 96 108 112 123 108 112 96 108 112 123 108 117 99 86 112 123 108 112 96 108
++117 99 86 94 105 108 117 99 86 112 96 108 99 93 84 99 93 84 88 83 88 99 93 84
++88 83 88 88 83 74 88 83 88 88 83 74 75 81 82 88 69 84 75 81 76 75 64 82
++75 81 76 75 64 82 75 72 67 75 72 67 75 72 67 75 64 82 75 72 67 75 64 82
++75 81 76 75 81 82 75 81 82 75 64 82 75 81 82 75 64 82 75 81 82 75 81 82
++75 81 76 88 69 84 75 81 82 75 64 82 75 81 82 75 81 76 75 64 82 59 69 70
++75 64 82 75 72 67 75 64 82 59 69 70 63 59 71 63 59 71 65 63 61 59 57 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 55 54 65 57 61 65 57 61 63 55 51
++63 55 51 59 55 55 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 65 55 54
++65 55 54 59 55 55 63 55 51 59 55 55 59 55 55 53 46 48 52 55 48 53 46 48
++48 44 48 48 50 48 54 57 61 48 44 48 48 50 48 43 42 50 43 42 50 43 42 50
++42 41 42 42 41 42 42 41 42 43 42 50 34 40 43 42 38 42 43 42 50 43 42 50
++43 42 50 42 41 42 43 42 50 48 44 48 43 42 50 48 50 48 43 42 50 48 50 48
++48 50 48 54 57 61 48 50 48 54 57 61 59 55 55 59 55 55 59 57 61 65 63 61
++65 63 61 75 56 53 76 44 53 88 44 51 76 18 19 88 30 18 102 33 26 102 33 26
++122 49 24 120 63 71 102 33 26 76 18 19 49 13 16 23 10 10 13 4 7 23 10 10
++49 13 16 76 18 19 88 30 18 102 33 26 76 18 19 76 18 19 76 18 19 101 60 73
++189 165 168 235 238 247 221 238 247 221 238 247 226 221 247 221 238 247 231 239 247 194 199 226
++111 122 142 42 60 86 34 42 77 61 78 101 129 144 153 208 221 247 231 239 247 221 238 247
++226 221 247 221 238 247 226 221 247 221 238 247 201 216 228 201 216 228 194 199 226 194 199 226
++201 216 228 208 221 247 194 199 226 194 199 226 201 216 228 226 221 247 226 221 247 201 216 228
++188 180 202 166 174 181 150 147 171 150 144 154 150 144 154 129 144 153 145 140 145 129 144 153
++111 119 127 54 57 61 17 12 17 3 3 1 7 12 13 7 12 13 17 12 17 17 12 17
++23 20 24 55 39 37 75 56 53 88 73 62 101 83 74 117 112 45 120 63 71 138 126 108
++163 117 123 201 146 124 177 169 143 217 168 156 177 169 143 217 168 156 201 146 124 217 168 156
++217 168 156 217 168 156 189 165 168 197 171 123 201 146 124 163 117 123 168 102 88 177 171 115
++163 117 123 201 146 124 201 146 124 201 146 124 217 168 156 189 165 168 208 215 180 225 222 201
++232 215 228 232 215 228 231 239 247 240 251 247 240 251 247 246 237 247 240 251 247 235 238 247
++240 251 247 240 251 247 240 251 247 251 251 247 251 251 247 232 215 228 225 222 201 188 180 202
++166 180 164 166 156 164 188 180 202 233 241 227 233 241 227 251 251 247 251 251 247 233 241 227
++214 214 134 214 214 134 219 175 47 214 214 134 219 175 47 219 175 47 214 214 134 219 175 47
++219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 177 171 115 177 171 115
++214 214 134 219 175 47 177 171 115 177 171 115 146 150 115 168 146 127 146 150 115 117 114 76
++138 126 108 117 99 86 117 99 86 90 98 89 99 93 84 99 93 84 99 93 84 99 93 84
++99 93 84 95 91 100 99 93 84 95 91 100 112 96 108 99 93 84 112 96 108 94 105 108
++112 96 108 94 105 108 94 105 108 94 105 108 112 96 108 94 105 108 95 91 100 95 95 116
++95 91 100 95 91 100 95 91 100 95 91 100 95 91 100 95 91 100 95 91 100 95 91 100
++77 90 100 95 95 116 95 91 100 77 91 115 95 91 100 95 95 116 94 105 108 94 105 108
++94 105 108 94 105 108 77 91 115 94 105 108 95 108 128 95 108 128 95 108 128 111 119 127
++119 117 138 111 119 127 119 117 138 122 134 144 119 117 138 122 134 144 122 134 144 145 140 145
++122 134 144 145 140 145 122 134 144 145 140 145 122 134 144 145 140 145 122 134 144 145 140 145
++145 140 145 122 134 144 141 116 139 121 143 132 141 116 139 111 119 127 141 116 139 111 119 127
++111 119 127 112 96 108 111 119 127 94 105 108 112 96 108 94 105 108 94 105 108 95 91 100
++90 98 89 88 83 88 88 83 88 75 81 82 75 81 76 75 72 67 75 64 82 75 72 67
++65 63 61 65 63 61 65 63 61 65 63 61 75 63 62 65 63 61 75 73 58 75 73 58
++75 72 67 75 72 67 75 73 58 75 72 67 75 63 62 75 63 62 75 72 67 75 63 62
++75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 65 63 61 65 63 61 65 63 61
++63 55 51 59 55 55 55 55 48 59 55 55 54 57 61 59 55 55 59 55 55 48 50 48
++59 55 55 48 50 48 59 55 55 52 55 48 54 57 61 59 55 55 59 55 55 65 55 54
++65 63 61 64 70 48 65 63 61 75 63 62 75 72 67 75 72 67 75 63 62 75 72 67
++75 72 67 75 72 67 88 66 70 75 81 69 88 66 70 88 83 74 88 66 70 75 72 67
++88 73 62 88 83 74 75 72 67 88 83 74 75 72 67 88 83 74 75 72 67 88 83 74
++75 81 76 88 83 74 75 81 76 88 83 74 75 81 76 88 83 74 75 81 76 88 83 88
++88 83 74 88 83 88 88 83 74 99 93 84 90 98 89 95 91 100 95 91 100 112 96 108
++98 113 84 112 96 108 112 123 108 112 123 108 111 119 127 111 119 127 138 126 108 111 119 127
++138 126 108 111 119 127 121 143 132 111 119 127 141 116 139 111 119 127 138 126 108 121 143 132
++138 126 108 121 143 132 138 126 108 121 143 132 121 143 132 138 126 108 121 143 132 138 126 108
++121 143 132 138 126 108 121 143 132 138 126 108 121 143 132 119 117 138 138 126 108 138 126 108
++121 143 132 111 119 127 117 142 111 111 119 127 138 126 108 111 119 127 112 123 108 111 119 127
++138 102 108 112 123 108 112 123 108 112 96 108 112 123 108 112 96 108 117 99 86 95 91 100
++112 96 108 99 93 84 99 93 84 88 83 74 99 93 84 88 83 74 88 83 74 88 69 84
++88 66 70 88 73 62 88 73 62 88 66 70 75 56 53 88 73 62 88 44 51 88 44 51
++88 73 62 88 44 51 88 73 31 88 44 51 88 44 51 88 44 51 101 74 26 88 44 51
++88 44 51 88 73 31 88 44 51 88 73 62 101 74 26 88 44 51 101 74 26 88 44 51
++88 73 31 88 44 51 75 56 53 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31
++88 44 51 88 44 51 101 74 26 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51
++88 73 31 76 46 20 101 74 26 88 44 51 101 74 26 88 44 51 88 73 31 88 44 51
++88 44 51 101 74 26 88 44 51 88 73 31 88 44 51 76 46 20 101 74 26 88 44 51
++88 73 31 88 44 51 88 73 31 88 44 51 76 46 20 101 74 26 88 44 51 88 73 31
++88 44 51 88 73 31 76 46 20 88 73 31 102 33 26 88 73 31 88 44 51 88 73 31
++102 33 26 88 73 31 88 44 51 76 46 20 101 74 26 88 44 51 101 74 26 88 44 51
++101 74 26 88 73 62 88 44 51 101 74 26 120 63 71 101 74 26 88 44 51 120 63 71
++101 74 26 101 74 26 88 44 51 101 74 26 120 63 71 101 74 26 120 63 71 101 74 26
++120 63 71 101 74 26 120 63 71 101 74 26 120 63 71 101 74 26 101 60 73 101 74 26
++101 74 26 120 63 71 101 74 26 120 63 71 101 74 26 101 74 26 120 63 71 101 74 26
++120 63 71 101 74 26 120 63 71 101 74 26 101 74 26 120 63 71 101 74 26 120 63 71
++
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 43 42 50 42 41 42 34 40 43
++42 41 42 42 41 42 42 38 42 42 38 42 32 39 24 36 35 37 32 39 24 42 41 42
++47 47 21 47 44 42 51 49 42 47 47 21 60 49 42 63 55 45 75 56 53 75 56 53
++88 73 62 88 44 51 88 73 62 88 44 51 88 73 62 101 74 26 88 73 62 120 63 71
++101 74 26 101 83 74 101 83 74 101 74 26 101 60 73 101 74 26 88 73 62 75 56 53
++75 56 53 75 56 53 75 56 53 63 55 45 60 49 42 51 49 42 55 39 37 47 44 42
++52 30 35 52 30 35 47 47 21 52 30 35 36 35 37 53 35 17 36 35 37 53 35 37
++53 35 37 47 44 42 55 39 37 53 46 48 62 47 47 62 47 47 62 47 47 65 55 54
++65 55 54 65 55 54 65 55 54 57 43 51 65 55 54 63 55 51 59 55 55 62 47 47
++57 43 51 59 55 55 57 43 51 53 46 48 53 46 48 53 46 48 48 44 48 47 39 42
++42 38 42 42 38 42 36 35 37 52 30 35 36 35 37 36 35 37 36 35 37 53 35 37
++36 35 37 42 38 42 42 41 42 47 39 42 42 38 42 47 39 42 47 39 42 47 44 42
++48 44 48 48 50 48 53 46 48 53 46 48 59 55 55 48 50 48 59 55 55 48 50 48
++53 46 48 48 50 48 48 50 48 53 46 48 48 50 48 53 46 48 48 50 48 53 46 48
++53 46 48 48 50 48 48 50 48 53 46 48 55 55 48 53 46 48 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 63 55 51
++65 63 61 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 48 50 48 54 57 61
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 44 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 53 46 48 48 44 48 48 50 48 51 49 42
++51 49 42 53 46 48 53 46 48 53 46 48 53 46 48 60 49 42 55 55 48 62 47 47
++60 49 42 53 46 48 53 46 48 60 49 42 53 46 48 62 47 47 62 47 47 65 55 54
++65 55 54 65 63 61 75 63 62 75 63 62 75 72 67 88 66 70 88 69 84 88 83 74
++101 83 74 88 83 88 99 93 84 95 91 100 112 96 108 117 99 86 112 96 108 112 96 108
++112 96 108 112 123 108 112 96 108 112 96 108 112 123 108 112 96 108 112 96 108 112 123 108
++112 96 108 117 99 86 112 96 108 112 96 108 99 93 84 112 96 108 99 93 84 99 93 84
++88 83 88 99 93 84 88 83 88 88 83 88 88 83 88 88 83 74 75 81 76 88 69 84
++75 81 76 88 83 74 75 81 76 75 64 82 75 81 76 75 81 76 75 64 82 75 81 76
++75 64 82 75 81 76 75 64 82 75 81 82 75 81 82 75 81 82 88 69 84 75 81 82
++75 64 82 75 81 82 75 81 76 75 81 82 75 81 82 75 64 82 75 81 76 75 72 67
++75 64 82 59 69 70 75 72 67 75 72 67 63 59 71 65 63 61 63 59 71 65 63 61
++63 59 71 65 63 61 65 63 61 65 63 61 65 63 61 65 55 54 65 63 61 65 55 54
++59 55 55 59 55 55 65 55 54 63 55 51 65 55 54 65 55 54 65 55 54 65 55 54
++63 55 51 59 55 55 63 55 51 59 55 55 59 55 55 59 55 55 53 46 48 54 57 61
++48 50 48 53 46 48 48 50 48 48 50 48 48 44 48 43 42 50 43 42 50 43 42 50
++43 42 50 42 38 42 43 42 50 42 41 42 42 38 42 43 42 50 42 41 42 42 41 42
++43 42 50 43 42 50 43 42 50 48 44 48 43 42 50 48 50 48 43 42 50 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 55 55 48 59 55 55 65 57 61
++65 57 61 75 63 62 88 44 51 88 44 51 102 33 26 102 33 26 102 33 26 102 33 26
++120 63 71 102 33 26 76 18 19 49 13 16 23 10 10 49 13 16 23 10 10 49 13 16
++76 18 19 76 18 19 76 18 19 102 33 26 76 18 19 76 18 19 59 36 42 138 102 108
++188 180 202 246 237 247 231 239 247 226 221 247 221 238 247 221 238 247 221 238 247 194 199 226
++111 122 142 42 60 86 34 42 77 77 90 100 148 160 159 208 221 247 235 238 247 221 238 247
++221 238 247 221 238 247 201 216 228 226 221 247 201 216 228 201 216 228 201 216 228 201 216 228
++226 221 247 201 216 228 194 199 226 201 216 228 194 199 226 188 180 202 166 156 164 129 144 153
++111 119 127 95 91 100 59 69 70 46 59 71 57 43 64 43 42 50 29 34 50 26 24 32
++17 12 17 7 10 17 3 4 9 3 4 9 7 12 13 14 16 17 15 22 17 23 18 22
++23 20 24 47 47 21 75 56 53 88 73 62 120 63 71 120 63 71 117 99 86 168 102 88
++138 126 108 201 146 124 177 169 143 217 168 156 201 146 124 189 165 168 201 146 124 177 169 143
++197 171 123 217 168 156 217 168 156 177 169 143 201 146 124 168 146 127 168 146 127 168 102 88
++168 146 127 201 146 124 177 169 143 217 168 156 217 168 156 222 171 182 222 171 182 188 180 202
++232 215 228 231 239 247 235 238 247 246 237 247 240 251 247 240 251 247 235 238 247 240 251 247
++240 251 247 240 251 247 235 238 247 240 251 247 240 251 247 251 251 247 251 251 247 240 251 247
++232 215 228 208 215 180 166 180 164 188 180 202 185 202 202 208 215 180 208 215 180 225 222 201
++214 214 134 214 214 134 214 214 134 219 175 47 214 214 134 219 175 47 219 175 47 219 175 47
++214 214 134 219 175 47 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134
++214 214 134 219 175 47 214 214 134 177 171 115 214 214 134 219 175 47 214 214 134 219 175 47
++177 171 115 177 171 115 177 171 115 177 171 115 177 171 115 177 171 115 157 148 53 146 150 115
++138 126 108 117 127 86 112 123 108 117 99 86 95 91 100 99 93 84 95 91 100 99 93 84
++99 93 84 99 93 84 95 91 100 99 93 84 95 91 100 94 105 108 94 105 108 112 96 108
++94 105 108 112 96 108 112 96 108 112 96 108 94 105 108 112 96 108 94 105 108 95 91 100
++94 105 108 95 91 100 94 105 108 95 91 100 95 91 100 95 91 100 77 90 100 95 91 100
++95 91 100 77 90 100 95 95 116 95 95 116 95 95 116 94 105 108 95 95 116 94 105 108
++95 95 116 95 108 128 94 105 108 95 108 128 95 108 128 111 119 127 95 108 128 111 119 127
++111 119 127 122 134 144 119 117 138 122 134 144 122 134 144 145 140 145 122 134 144 145 140 145
++129 144 153 145 140 145 129 144 153 145 140 145 129 144 153 145 140 145 145 140 145 145 140 145
++122 134 144 145 140 145 145 140 145 122 134 144 141 116 139 121 143 132 119 117 138 138 126 108
++111 119 127 111 119 127 111 119 127 111 119 127 112 123 108 94 105 108 112 96 108 94 105 108
++95 91 100 90 98 89 88 83 88 75 81 82 88 69 84 75 81 76 75 72 67 75 72 67
++75 72 67 75 63 62 65 63 61 75 73 58 65 63 61 75 63 62 75 63 62 75 63 62
++75 73 58 75 63 62 75 72 67 75 63 62 75 72 67 75 63 62 75 63 62 75 63 62
++75 63 62 75 63 62 65 63 61 75 63 62 65 63 61 75 63 62 65 63 61 65 63 61
++65 63 61 65 63 61 59 55 55 55 55 48 59 55 55 54 57 61 59 55 55 54 57 61
++48 50 48 54 57 61 52 55 48 54 57 61 55 55 48 59 55 55 63 55 51 65 63 61
++65 55 54 65 63 61 65 63 61 65 63 61 65 63 61 75 63 62 75 63 62 75 72 67
++75 72 67 75 72 67 75 72 67 88 66 70 75 81 76 88 66 70 75 81 76 88 66 70
++75 72 67 88 83 74 88 73 62 88 73 62 88 83 74 88 73 62 75 81 69 88 66 70
++75 81 69 88 66 70 75 81 76 75 81 76 88 66 70 75 81 76 88 83 74 88 83 74
++88 83 74 88 83 88 99 93 84 95 91 100 99 93 84 99 93 84 99 93 84 98 113 84
++112 96 108 112 123 108 112 96 108 112 123 108 138 102 108 111 119 127 112 123 108 111 119 127
++111 119 127 138 126 108 111 119 127 138 126 108 121 143 132 138 126 108 122 134 144 138 126 108
++119 117 138 117 142 111 141 116 139 121 143 132 138 126 108 122 134 144 138 126 108 121 143 132
++119 117 138 138 126 108 121 143 132 141 116 139 121 143 132 138 126 108 121 143 132 111 119 127
++138 126 108 121 143 132 138 126 108 111 119 127 138 126 108 111 119 127 138 126 108 112 123 108
++112 123 108 112 123 108 117 99 86 112 123 108 112 96 108 112 96 108 98 113 84 112 96 108
++99 93 84 99 93 84 99 93 84 99 93 84 88 83 74 101 83 74 88 83 74 101 83 74
++88 83 74 88 66 70 88 73 62 88 73 62 88 73 62 88 44 51 88 73 62 88 73 62
++88 44 51 88 73 31 88 44 51 101 60 73 101 74 26 88 73 62 88 44 51 101 74 26
++88 44 51 88 73 62 88 44 51 101 74 26 88 44 51 88 73 62 88 44 51 88 73 62
++88 44 51 88 44 51 88 73 31 88 44 51 88 44 51 88 73 31 88 44 51 88 44 51
++88 73 31 88 44 51 88 73 31 88 44 51 88 44 51 88 73 31 88 44 51 88 73 31
++88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 101 74 26 88 44 51 88 73 31
++101 74 26 88 44 51 101 74 26 88 44 51 101 74 26 88 44 51 88 73 31 88 44 51
++101 74 26 88 44 51 101 74 26 88 44 51 88 73 31 88 44 51 102 33 26 88 73 31
++102 33 26 88 73 31 88 44 51 76 46 20 88 44 51 88 73 31 102 33 26 88 73 31
++88 73 31 102 33 26 88 73 31 88 73 31 102 33 26 101 74 26 88 44 51 101 74 26
++120 63 71 101 74 26 101 74 26 88 44 51 101 74 26 88 73 62 101 74 26 120 63 71
++101 74 26 120 63 71 101 74 26 120 63 71 101 74 26 120 63 71 101 74 26 120 63 71
++101 74 26 101 74 26 101 60 73 101 74 26 101 74 26 120 63 71 101 74 26 120 63 71
++120 63 71 101 74 26 120 63 71 101 74 26 120 63 71 88 73 62 101 74 26 120 63 71
++101 74 26 101 74 26 101 74 26 120 63 71 101 74 26 101 74 26 120 63 71 101 74 26
++
++42 38 42 42 41 42 42 47 42 42 41 42 42 38 42 42 38 42 42 41 42 34 40 43
++37 35 43 36 35 37 36 35 37 36 35 37 36 35 37 33 30 30 55 39 37 47 39 42
++47 44 42 53 35 37 55 39 37 60 49 42 63 55 45 63 55 45 75 56 53 88 73 31
++88 44 51 88 73 62 88 73 31 120 63 71 101 74 26 101 83 74 120 63 71 98 106 55
++120 63 71 101 83 74 101 74 26 101 83 74 101 83 74 88 73 62 88 73 62 88 73 62
++88 73 31 75 56 53 75 56 53 75 56 53 60 49 42 60 49 42 55 39 37 55 39 37
++55 39 37 52 30 35 52 30 35 36 35 37 53 35 17 47 39 42 53 35 37 55 39 37
++55 39 37 55 39 37 60 49 42 62 47 47 62 47 47 62 47 47 65 55 54 65 55 54
++62 47 47 65 55 54 65 55 54 75 56 53 65 55 54 65 55 54 62 47 47 63 55 51
++63 55 51 62 47 47 55 55 48 53 46 48 53 46 48 53 46 48 53 46 48 47 39 42
++47 39 42 36 35 37 36 35 37 36 35 37 36 35 37 53 35 37 36 35 37 36 35 37
++47 39 42 36 35 37 47 44 42 47 39 42 47 39 42 47 39 42 47 44 42 47 44 42
++53 46 48 53 46 48 53 46 48 53 46 48 48 50 48 59 55 55 48 50 48 55 55 48
++53 46 48 55 55 48 53 46 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++54 57 61 53 46 48 48 50 48 59 55 55 48 50 48 59 55 55 52 55 48 55 55 48
++59 55 55 59 55 55 59 55 55 59 55 55 55 55 48 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 52 55 48 52 55 48 59 55 55 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 42 47 42 48 50 48 48 50 48 48 44 48
++48 50 48 48 50 48 48 44 48 42 47 42 48 44 48 51 49 42 51 49 42 53 46 48
++51 49 42 53 46 48 51 49 42 53 46 48 51 49 42 53 46 48 51 49 42 53 46 48
++51 49 42 51 49 42 51 49 42 53 46 48 55 55 48 55 55 48 63 55 51 65 55 54
++65 63 61 75 63 62 75 63 62 75 72 67 75 72 67 88 66 70 88 83 74 88 83 88
++88 83 88 99 93 84 99 93 84 112 96 108 117 99 86 94 105 108 112 123 108 112 123 108
++138 102 108 112 123 108 138 102 108 112 123 108 138 102 108 112 123 108 138 102 108 112 123 108
++112 96 108 112 123 108 117 99 86 112 96 108 117 99 86 95 91 100 99 93 84 99 93 84
++99 93 84 99 93 84 88 83 88 88 83 74 88 83 88 88 83 74 88 83 88 88 83 74
++88 69 84 75 81 76 88 69 84 75 81 76 75 81 76 75 64 82 75 81 69 75 64 82
++75 81 76 75 81 82 75 81 82 75 81 82 88 83 88 88 83 88 75 81 82 75 81 82
++75 81 82 88 69 84 75 81 82 88 69 84 75 81 82 75 81 82 75 64 82 75 72 67
++59 69 70 75 64 82 75 72 67 63 59 71 59 69 70 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 57 61 65 57 61 65 63 61 65 55 54 65 55 54 65 63 61
++65 63 61 75 56 53 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 63 55 51
++65 55 54 63 55 51 63 55 51 55 55 48 55 55 48 63 55 51 59 55 55 55 55 48
++59 55 55 53 46 48 54 57 61 48 44 48 48 44 48 48 44 48 47 44 42 43 42 50
++42 41 42 42 41 42 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50
++42 41 42 48 44 48 48 44 48 48 50 48 48 44 48 48 44 48 57 43 64 48 44 48
++53 46 48 59 55 55 48 50 48 54 57 61 48 50 48 59 55 55 54 57 61 59 57 61
++65 63 61 75 63 62 75 63 62 88 66 70 88 44 51 88 44 51 120 63 71 122 49 24
++102 33 26 102 33 26 76 18 19 23 10 10 49 13 16 49 13 16 76 18 19 76 18 19
++88 30 18 88 30 18 102 33 26 76 18 19 76 18 19 76 18 19 76 18 19 138 102 108
++188 180 202 251 251 247 231 239 247 221 238 247 221 238 247 221 238 247 221 238 247 194 199 226
++111 122 142 60 63 87 42 60 86 95 95 116 150 168 183 208 221 247 231 239 247 221 238 247
++226 221 247 221 238 247 226 221 247 201 216 228 201 216 228 201 216 228 232 215 228 208 221 247
++201 216 228 201 216 228 232 215 228 194 199 226 166 156 164 94 105 108 60 63 87 43 42 50
++33 30 36 12 18 30 7 10 17 7 10 17 7 10 17 3 4 9 3 4 9 3 4 9
++3 4 9 7 10 17 17 12 17 14 16 17 17 12 17 23 18 22 23 18 22 23 20 24
++23 20 24 33 30 30 53 35 37 63 55 45 88 73 62 101 83 74 117 99 86 168 102 88
++138 126 108 168 146 127 201 146 124 201 146 124 177 169 143 201 146 124 201 146 124 201 146 124
++217 168 156 201 146 124 217 168 156 201 146 124 168 146 127 168 102 88 138 126 108 163 117 123
++168 146 127 201 146 124 217 168 156 217 168 156 217 168 156 208 215 180 225 222 201 225 222 201
++232 215 228 233 241 227 235 238 247 240 251 247 235 238 247 235 238 247 240 251 247 246 237 247
++240 251 247 235 238 247 235 238 247 240 251 247 235 238 247 240 251 247 246 237 247 251 251 247
++240 251 247 246 237 247 232 215 228 208 215 180 188 180 202 189 165 168 208 215 180 214 214 134
++214 214 134 214 214 134 219 175 47 219 175 47 219 175 47 219 175 47 214 214 134 219 175 47
++219 175 47 219 175 47 214 214 134 219 175 47 219 175 47 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 177 171 115 214 214 134
++177 171 115 177 171 115 219 175 47 177 171 115 177 171 115 177 171 115 146 150 115 146 150 115
++138 126 108 138 126 108 117 114 76 117 99 86 99 93 84 99 93 84 99 93 84 95 91 100
++99 93 84 95 91 100 99 93 84 112 96 108 99 93 84 112 96 108 117 99 86 112 123 108
++112 96 108 112 96 108 94 105 108 112 96 108 94 105 108 95 91 100 95 95 116 112 96 108
++95 95 116 95 91 100 95 91 100 94 105 108 95 91 100 94 105 108 95 91 100 95 91 100
++94 105 108 95 95 116 94 105 108 95 95 116 94 105 108 95 108 128 94 105 108 95 108 128
++95 108 128 95 108 128 95 108 128 111 119 127 95 108 128 111 119 127 111 119 127 111 119 127
++119 117 138 119 117 138 122 134 144 122 134 144 122 134 144 145 140 145 122 134 144 145 140 145
++129 144 153 150 144 154 131 144 168 150 144 154 131 144 168 145 140 145 131 144 168 145 140 145
++129 144 153 145 140 145 122 134 144 122 134 144 122 134 144 141 116 139 122 134 144 119 117 138
++119 117 138 111 119 127 138 126 108 111 119 127 112 96 108 95 108 128 94 105 108 95 91 100
++95 91 100 95 91 100 88 83 88 88 83 88 75 81 82 75 81 76 75 64 82 59 69 70
++75 72 67 65 63 61 65 63 61 75 63 62 65 63 61 75 72 67 75 73 58 75 72 67
++75 72 67 75 72 67 75 72 67 75 73 58 75 72 67 75 63 62 75 72 67 65 63 61
++75 72 67 75 63 62 75 72 67 65 63 61 75 63 62 65 63 61 65 63 61 75 63 62
++65 63 61 59 55 55 59 57 61 59 57 61 54 57 61 59 55 55 54 57 61 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 59 57 61 59 55 55 59 55 55 59 55 55
++65 63 61 65 55 54 65 63 61 65 63 61 75 63 62 75 72 67 75 63 62 75 72 67
++75 63 62 75 72 67 88 73 62 75 72 67 75 72 67 88 73 62 75 72 67 88 73 62
++75 72 67 88 73 62 75 72 67 88 83 74 75 72 67 88 83 74 75 72 67 75 72 67
++88 83 74 75 72 67 88 83 74 75 72 67 75 81 76 88 83 74 75 81 76 88 83 88
++88 83 74 88 83 88 88 83 88 99 93 84 90 98 89 112 96 108 94 105 108 112 96 108
++112 96 108 112 123 108 112 123 108 112 123 108 111 119 127 138 126 108 111 119 127 138 126 108
++121 143 132 111 119 127 138 126 108 121 143 132 119 117 138 138 126 108 121 143 132 138 126 108
++121 143 132 141 116 139 117 142 111 138 126 108 122 134 144 138 126 108 122 134 144 138 126 108
++121 143 132 138 126 108 121 143 132 138 126 108 111 119 127 138 126 108 119 117 138 138 126 108
++111 119 127 138 126 108 111 119 127 138 126 108 111 119 127 138 126 108 111 119 127 138 102 108
++112 123 108 112 96 108 112 123 108 112 96 108 112 123 108 117 99 86 94 105 108 117 99 86
++90 98 89 95 91 100 99 93 84 99 93 84 88 83 88 101 83 74 88 83 88 88 83 74
++88 66 70 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 44 51 88 73 62
++75 56 53 88 44 51 88 73 62 88 44 51 88 44 51 88 44 51 88 73 31 101 60 73
++88 73 31 88 44 51 88 73 62 88 44 51 88 73 62 101 74 26 88 44 51 88 73 31
++88 44 51 88 73 31 88 44 51 88 73 62 88 73 31 88 44 51 88 73 62 88 73 31
++88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31
++88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 73 31 88 44 51
++101 74 26 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51
++88 73 31 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 73 31 88 44 51
++88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51
++88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 73 31 88 73 31 101 74 26
++88 44 51 101 74 26 120 63 71 101 74 26 88 73 62 101 74 26 120 63 71 101 74 26
++120 63 71 101 74 26 117 112 45 120 63 71 101 74 26 120 63 71 101 74 26 101 74 26
++88 73 62 101 74 26 120 63 71 101 74 26 120 63 71 101 74 26 98 106 55 101 74 26
++101 74 26 120 63 71 101 74 26 101 74 26 101 74 26 101 74 26 120 63 71 101 74 26
++101 74 26 101 60 73 101 74 26 101 74 26 120 63 71 101 74 26 101 74 26 101 74 26
++
++36 35 37 42 41 42 42 41 42 42 41 42 42 38 42 42 38 42 42 41 42 42 41 42
++42 41 42 36 35 37 36 35 37 33 30 30 36 35 37 36 35 37 47 47 21 42 41 42
++47 44 42 55 39 37 51 49 42 60 49 42 63 55 45 63 55 45 75 56 53 88 73 62
++88 44 51 88 73 62 88 73 62 101 74 26 101 83 74 120 63 71 101 74 26 101 83 74
++120 63 71 117 112 45 101 83 74 120 63 71 101 83 74 120 63 71 101 83 74 101 60 73
++88 73 62 88 73 62 75 56 53 75 56 53 75 56 53 63 55 45 60 49 42 59 36 42
++55 39 37 53 35 37 47 47 21 52 30 35 53 35 37 52 30 35 53 35 37 55 39 37
++55 39 37 53 46 48 55 39 37 62 47 47 62 47 47 65 55 54 62 47 47 65 55 54
++65 55 54 76 44 53 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 59 55 55
++62 47 47 63 55 51 62 47 47 55 55 48 55 55 48 53 46 48 53 46 48 48 44 48
++47 39 42 53 35 37 47 44 42 36 35 37 53 35 37 36 35 37 53 35 37 36 35 37
++55 39 37 36 35 37 42 41 42 47 39 42 47 39 42 47 44 42 47 44 42 47 39 42
++51 49 42 53 46 48 53 46 48 53 46 48 48 50 48 48 50 48 53 46 48 59 55 55
++59 55 55 59 55 55 52 55 48 48 50 48 48 50 48 48 44 48 48 50 48 48 50 48
++48 50 48 54 57 61 48 50 48 48 50 48 59 55 55 48 50 48 59 55 55 59 55 55
++55 55 48 52 55 48 59 55 55 55 55 48 59 55 55 59 55 55 55 55 48 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 54 57 61 59 55 55 59 55 55 52 55 48
++48 50 48 48 50 48 48 44 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++42 47 42 47 49 42 48 50 48 47 49 42 48 44 48 53 46 48 51 49 42 53 46 48
++51 49 42 53 46 48 51 49 42 51 49 42 51 49 42 51 49 42 51 49 42 47 44 42
++51 49 42 48 44 48 51 49 42 60 49 42 53 46 48 63 55 51 63 55 51 65 55 54
++65 63 61 75 63 62 75 63 62 75 72 67 88 66 70 88 83 74 88 83 88 101 83 74
++99 93 84 99 93 84 95 91 100 117 99 86 112 96 108 112 123 108 112 96 108 112 123 108
++112 96 108 112 123 108 138 102 108 112 123 108 138 102 108 112 123 108 138 102 108 112 123 108
++117 99 86 112 96 108 112 123 108 112 96 108 112 96 108 117 99 86 112 96 108 99 93 84
++95 91 100 99 93 84 99 93 84 88 83 88 99 93 84 88 83 88 88 83 74 88 83 88
++88 83 74 88 83 74 75 81 82 75 81 76 75 64 82 88 83 74 75 81 76 75 81 76
++75 64 82 75 81 82 88 69 84 75 81 82 88 83 88 75 81 90 88 83 88 88 69 84
++75 81 82 75 81 82 75 81 82 75 81 82 75 81 82 75 64 82 75 81 76 75 64 82
++75 64 82 75 72 67 59 69 70 63 59 71 65 63 61 63 59 71 65 63 61 65 63 61
++65 63 61 65 63 61 65 57 61 65 63 61 75 56 53 65 63 61 75 56 53 65 63 61
++75 56 53 65 63 61 65 55 54 65 63 61 65 55 54 65 63 61 65 55 54 63 55 51
++65 63 61 59 55 55 55 55 48 63 55 51 55 55 48 59 55 55 55 55 48 59 55 55
++59 55 55 52 55 48 53 46 48 48 50 48 48 44 48 48 44 48 43 42 50 47 44 42
++42 41 42 43 42 50 47 44 42 43 42 50 43 42 50 43 42 50 43 42 50 42 41 42
++43 42 50 43 42 50 48 44 48 48 44 48 48 50 48 48 44 48 48 44 48 57 43 51
++48 50 48 57 43 51 53 46 48 59 55 55 48 50 48 52 55 48 59 55 55 59 57 61
++65 63 61 65 63 61 75 63 62 88 66 70 88 44 51 88 44 51 102 33 26 88 44 51
++102 33 26 76 18 19 49 13 16 23 10 10 49 13 16 49 13 16 76 18 19 88 30 18
++88 44 51 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16 76 44 53 138 102 108
++185 202 202 251 251 247 240 251 247 221 238 247 226 221 247 221 238 247 221 238 247 201 216 228
++111 122 142 42 60 86 60 63 87 95 108 128 166 176 200 221 238 247 231 239 247 221 238 247
++221 238 247 208 221 247 221 238 247 208 221 247 201 216 228 208 221 247 201 216 228 201 216 228
++201 216 228 208 221 247 185 202 202 150 147 171 75 81 90 23 30 35 23 20 24 7 12 13
++7 10 17 3 4 9 3 4 9 3 4 9 3 4 9 3 4 9 3 3 1 3 4 9
++7 10 17 17 12 17 14 16 17 14 16 17 14 16 17 15 22 17 23 20 24 22 23 31
++22 25 24 22 25 24 29 35 19 53 35 17 55 39 37 88 73 31 88 73 62 117 99 86
++138 126 108 195 113 123 168 146 127 168 146 127 201 146 124 168 146 127 201 146 124 177 169 143
++201 146 124 177 169 143 201 146 124 168 146 127 168 146 127 168 102 88 138 126 108 168 102 88
++163 117 123 197 171 123 177 169 143 217 168 156 217 168 156 222 171 182 222 171 182 225 222 201
++232 215 228 235 238 247 235 238 247 246 237 247 240 251 247 235 238 247 240 251 247 240 251 247
++246 237 247 240 251 247 235 238 247 235 238 247 235 238 247 235 238 247 231 239 247 235 238 247
++251 251 247 251 251 247 240 251 247 233 241 227 225 222 201 225 222 201 233 241 227 225 222 201
++214 214 134 214 214 134 214 214 134 219 175 47 214 214 134 219 175 47 219 175 47 219 175 47
++219 175 47 214 214 134 219 175 47 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47
++214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 214 214 134 219 175 47 177 171 115
++219 175 47 177 171 115 177 171 115 177 171 115 177 171 115 157 148 53 177 171 115 168 146 127
++157 148 53 138 126 108 138 126 108 112 123 108 98 113 84 112 96 108 99 93 84 95 91 100
++117 99 86 95 91 100 99 93 84 95 91 100 117 99 86 94 105 108 112 96 108 112 96 108
++94 105 108 112 96 108 112 96 108 112 96 108 94 105 108 112 96 108 95 95 116 94 105 108
++95 95 116 94 105 108 95 95 116 95 95 116 77 90 100 95 91 100 77 90 100 94 105 108
++95 91 100 95 95 116 94 105 108 95 95 116 94 105 108 95 108 128 95 108 128 95 108 128
++94 105 108 111 119 127 111 119 127 95 108 128 111 119 127 111 119 127 111 119 127 111 119 127
++119 117 138 122 134 144 122 134 144 122 134 144 141 116 139 122 134 144 145 140 145 129 144 153
++150 144 154 129 144 153 150 144 154 131 144 168 150 144 154 150 144 154 150 144 154 129 144 153
++150 144 154 129 144 153 145 140 145 145 140 145 122 134 144 122 134 144 122 134 144 119 117 138
++119 117 138 119 117 138 119 117 138 111 119 127 111 119 127 112 96 108 94 105 108 94 105 108
++95 91 100 95 91 100 78 98 90 88 83 88 75 81 82 75 81 82 75 72 67 75 72 67
++59 69 70 65 63 61 75 63 62 65 63 61 75 72 67 75 63 62 75 72 67 75 63 62
++75 72 67 75 63 62 75 72 67 75 63 62 75 72 67 75 72 67 75 72 67 75 72 67
++75 63 62 75 72 67 75 72 67 75 63 62 75 72 67 75 63 62 75 63 62 65 63 61
++65 63 61 65 63 61 65 63 61 59 57 61 59 57 61 54 57 61 59 55 55 59 55 55
++54 57 61 59 55 55 59 55 55 59 57 61 59 55 55 59 55 55 59 55 55 59 55 55
++63 55 51 65 63 61 65 55 54 65 63 61 75 63 62 65 63 61 75 72 67 75 63 62
++75 63 62 75 72 67 75 72 67 75 72 67 88 73 62 75 72 67 88 66 70 75 72 67
++88 73 62 75 72 67 88 73 62 75 72 67 88 66 70 75 81 76 88 73 62 75 72 67
++75 72 67 75 72 67 75 72 67 75 81 69 88 66 70 75 81 76 88 69 84 88 83 74
++88 83 74 88 83 74 99 93 84 90 98 89 99 93 84 98 113 84 95 91 100 98 113 84
++112 96 108 112 123 108 112 96 108 112 123 108 112 123 108 138 126 108 111 119 127 138 126 108
++111 119 127 138 126 108 122 134 144 138 126 108 121 143 132 138 126 108 121 143 132 119 117 138
++138 126 108 121 143 132 138 126 108 122 134 144 138 126 108 121 143 132 138 126 108 122 134 144
++138 126 108 121 143 132 111 119 127 121 143 132 138 126 108 121 143 132 111 119 127 138 126 108
++111 119 127 112 123 108 111 119 127 112 123 108 111 119 127 112 123 108 112 123 108 112 123 108
++111 119 127 112 123 108 112 123 108 112 123 108 112 96 108 112 123 108 94 105 108 117 99 86
++95 91 100 117 99 86 99 93 84 99 93 84 99 93 84 88 83 88 88 83 74 88 83 74
++101 83 74 88 83 74 88 66 70 88 73 62 75 56 53 88 73 62 75 56 53 88 73 62
++88 44 51 88 73 62 88 44 51 88 73 62 88 73 31 101 60 73 88 73 31 88 44 51
++88 73 62 88 44 51 88 73 62 101 74 26 88 44 51 88 73 62 88 73 62 88 44 51
++88 73 62 88 44 51 88 73 62 88 44 51 88 44 51 88 73 62 88 44 51 88 44 51
++88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51
++88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 73 31 88 44 51 88 73 31
++88 44 51 88 73 31 88 44 51 88 73 31 88 73 31 88 44 51 101 74 26 88 44 51
++88 73 31 88 44 51 88 73 31 88 73 31 88 44 51 88 73 31 88 44 51 76 46 20
++88 44 51 88 73 31 76 46 20 88 73 31 102 33 26 88 73 31 88 44 51 76 46 20
++88 73 31 76 46 20 88 44 51 101 74 26 88 44 51 88 73 31 88 44 51 101 74 26
++88 73 62 101 74 26 88 73 62 101 74 26 120 63 71 101 74 26 88 73 62 101 74 26
++117 112 45 120 63 71 101 74 26 120 63 71 117 112 45 101 74 26 117 112 45 120 63 71
++101 74 26 120 63 71 101 74 26 101 83 74 101 74 26 120 63 71 101 74 26 120 63 71
++101 83 74 101 74 26 117 112 45 120 63 71 101 83 74 120 63 71 101 74 26 101 74 26
++88 44 51 101 74 26 101 74 26 120 63 71 101 74 26 101 74 26 120 63 71 101 74 26
++
++42 41 42 42 41 42 42 41 42 42 41 42 42 38 42 42 38 42 34 40 43 42 41 42
++33 39 38 36 35 37 36 35 37 42 38 42 36 35 37 32 39 24 47 39 42 47 39 42
++55 39 37 51 49 42 60 49 42 63 55 45 63 55 45 75 56 53 75 56 53 88 73 31
++88 73 62 88 73 62 120 63 71 88 73 62 120 63 71 117 112 45 120 63 71 117 112 45
++120 63 71 101 83 74 117 112 45 120 63 71 117 112 45 101 83 74 101 83 74 101 74 26
++120 63 71 88 73 31 88 73 62 88 44 51 63 55 45 76 44 53 60 49 42 62 47 47
++59 36 42 52 30 35 52 30 35 52 30 35 47 47 21 52 30 35 55 39 37 55 39 37
++55 39 37 62 47 47 60 49 42 62 47 47 62 47 47 62 47 47 75 56 53 62 47 47
++65 55 54 65 55 54 65 55 54 75 56 53 65 55 54 65 55 54 65 55 54 62 47 47
++63 55 51 62 47 47 59 55 55 62 47 47 53 46 48 53 46 48 53 46 48 53 46 48
++47 39 42 47 39 42 42 41 42 36 35 37 53 35 37 36 35 37 53 35 37 47 39 42
++42 41 42 42 41 42 53 35 37 42 41 42 47 44 42 47 39 42 47 44 42 47 44 42
++53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 54 57 61 48 50 48 59 55 55
++53 46 48 53 46 48 59 55 55 48 50 48 48 50 48 48 50 48 53 46 48 48 50 48
++48 50 48 53 46 48 48 50 48 59 55 55 48 50 48 54 57 61 53 46 48 59 55 55
++55 55 48 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 54 57 61 55 55 48
++53 63 61 59 55 55 59 55 55 53 63 61 59 55 55 59 55 55 52 55 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 53 46 48 48 50 48 48 44 48
++48 50 48 48 50 48 48 50 48 48 44 48 51 49 42 53 46 48 51 49 42 51 49 42
++47 44 42 53 46 48 51 49 42 47 39 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 51 49 42 53 46 48 55 55 48 63 55 51 63 55 51 65 55 54
++75 63 62 75 63 62 75 72 67 75 72 67 88 66 70 88 83 74 88 69 84 99 93 84
++99 93 84 95 91 100 117 99 86 112 96 108 112 123 108 112 96 108 112 123 108 138 102 108
++112 123 108 138 102 108 112 123 108 138 102 108 112 123 108 111 119 127 138 102 108 112 123 108
++112 96 108 112 96 108 117 99 86 112 96 108 117 99 86 95 91 100 117 99 86 95 91 100
++117 99 86 95 91 100 99 93 84 99 93 84 88 83 88 99 93 84 88 83 88 88 83 74
++88 83 88 75 81 82 88 69 84 75 81 76 75 81 76 75 81 76 75 64 82 75 81 76
++75 81 82 88 69 84 75 81 82 75 81 90 88 83 88 75 81 82 88 83 88 75 81 82
++75 81 82 88 69 84 75 81 82 88 69 84 75 81 82 88 69 84 75 81 82 75 72 67
++59 69 70 63 59 71 75 72 67 63 59 71 75 72 67 65 63 61 63 59 71 65 63 61
++65 63 61 75 63 62 65 63 61 65 57 61 75 63 62 75 63 62 65 63 61 75 63 62
++65 57 61 65 55 54 65 55 54 65 55 54 65 55 54 65 63 61 65 55 54 65 55 54
++63 55 51 63 55 51 63 55 51 59 55 55 63 55 51 63 55 51 59 55 55 59 55 55
++53 46 48 59 55 55 53 46 48 53 46 48 48 50 48 53 46 48 48 44 48 48 44 48
++48 44 48 47 44 42 48 44 48 43 42 50 43 42 50 42 41 42 43 42 50 47 39 42
++43 42 50 48 44 48 48 44 48 43 42 50 57 43 64 48 44 48 53 46 48 43 42 50
++53 46 48 54 57 61 53 46 48 54 57 61 59 55 55 54 57 61 59 55 55 54 57 61
++59 57 61 65 63 61 65 57 61 75 63 62 101 60 73 88 44 51 102 33 26 76 18 19
++76 18 19 49 13 16 23 10 10 23 10 10 49 13 16 76 18 19 88 30 18 88 30 18
++76 18 19 76 18 19 76 18 19 76 18 19 49 13 16 49 13 16 76 18 19 112 96 108
++194 199 226 251 251 247 235 238 247 231 239 247 221 238 247 221 238 247 221 238 247 194 199 226
++122 134 144 60 63 87 42 60 86 111 122 142 185 202 202 221 238 247 231 239 247 221 238 247
++226 221 247 221 238 247 201 216 228 226 221 247 208 221 247 208 221 247 201 216 228 201 216 228
++226 221 247 194 199 226 150 147 171 75 64 82 23 30 35 12 18 30 26 24 32 30 30 34
++33 30 36 26 24 32 23 20 24 23 20 24 14 16 17 14 16 17 7 12 13 7 12 13
++17 12 17 17 12 17 14 16 17 17 12 17 14 16 17 23 20 24 23 20 24 22 23 31
++22 25 24 33 30 30 26 25 15 26 25 15 34 30 15 52 30 35 88 44 51 120 63 71
++117 114 76 163 117 123 168 146 127 195 113 123 168 146 127 201 146 124 168 146 127 201 146 124
++201 146 124 201 146 124 168 146 127 168 102 88 138 126 108 168 146 127 146 150 115 168 146 127
++168 146 127 168 146 127 217 168 156 177 169 143 217 168 156 208 215 180 222 171 182 225 222 201
++232 215 228 233 241 227 235 238 247 240 251 247 246 237 247 240 251 247 235 238 247 240 251 247
++240 251 247 235 238 247 240 251 247 231 239 247 235 238 247 235 238 247 235 238 247 240 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 233 241 227 225 222 201
++214 214 134 214 214 134 219 175 47 219 175 47 219 175 47 219 175 47 214 214 134 219 175 47
++219 175 47 219 175 47 219 175 47 214 214 134 219 175 47 219 175 47 214 214 134 219 175 47
++214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 214 214 134
++177 171 115 214 214 134 177 171 115 177 171 115 177 171 115 177 171 115 177 171 115 146 150 115
++146 150 115 146 150 115 117 127 86 138 102 108 117 99 86 99 93 84 99 93 84 99 93 84
++95 91 100 99 93 84 112 96 108 99 93 84 112 96 108 112 96 108 98 113 84 112 96 108
++112 123 108 112 96 108 112 123 108 94 105 108 112 96 108 94 105 108 112 96 108 94 105 108
++95 95 116 94 105 108 95 91 100 95 91 100 94 105 108 95 91 100 94 105 108 95 91 100
++94 105 108 94 105 108 95 95 116 95 108 128 111 119 127 95 108 128 112 123 108 95 108 128
++111 119 127 111 119 127 95 108 128 111 119 127 111 119 127 111 119 127 111 119 127 111 122 142
++122 134 144 119 117 138 122 134 144 141 116 139 129 144 153 129 144 153 141 116 139 131 144 168
++145 140 145 131 144 168 150 144 154 150 144 154 131 144 168 150 144 154 131 144 168 150 144 154
++150 144 154 129 144 153 141 116 139 129 144 153 141 116 139 122 134 144 141 116 139 121 143 132
++111 119 127 138 126 108 119 117 138 111 119 127 111 119 127 94 105 108 112 96 108 94 105 108
++95 91 100 78 98 90 88 83 88 75 81 90 75 81 82 75 81 82 75 64 82 75 72 67
++75 72 67 65 63 61 75 72 67 65 63 61 75 72 67 75 63 62 75 72 67 75 73 58
++75 63 62 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 63 62 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 63 62 75 72 67 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 59 57 61 59 57 61 59 57 61 59 57 61
++59 55 55 59 57 61 59 55 55 59 55 55 59 57 61 59 55 55 59 55 55 59 55 55
++59 55 55 65 55 54 65 63 61 65 63 61 65 63 61 75 72 67 65 63 61 75 63 62
++75 72 67 75 72 67 75 63 62 75 72 67 75 72 67 88 73 62 75 72 67 88 66 70
++75 72 67 88 73 62 75 72 67 75 72 67 88 73 62 75 72 67 88 83 74 75 72 67
++75 72 67 88 66 70 75 81 69 75 72 67 75 81 76 88 83 74 75 81 76 88 83 74
++88 69 84 88 83 88 88 83 88 99 93 84 95 91 100 95 91 100 117 99 86 94 105 108
++112 123 108 112 96 108 112 123 108 112 123 108 111 119 127 138 126 108 111 119 127 138 126 108
++111 119 127 121 143 132 138 126 108 111 119 127 138 126 108 119 117 138 138 126 108 121 143 132
++141 116 139 121 143 132 138 126 108 122 134 144 138 126 108 122 134 144 121 143 132 138 126 108
++122 134 144 138 126 108 138 126 108 119 117 138 121 143 132 138 126 108 111 119 127 138 126 108
++111 119 127 138 126 108 112 123 108 138 126 108 111 119 127 138 102 108 112 123 108 112 96 108
++138 102 108 112 123 108 112 96 108 112 96 108 98 113 84 112 96 108 98 113 84 117 99 86
++95 91 100 99 93 84 99 93 84 95 91 100 101 83 74 88 83 88 101 83 74 88 69 84
++88 83 74 88 66 70 88 73 62 88 73 62 88 73 62 88 66 70 88 44 51 88 73 62
++88 73 31 88 73 62 88 44 51 101 74 26 88 44 51 88 73 62 88 44 51 88 73 62
++101 74 26 88 73 62 88 44 51 88 73 62 88 73 62 88 73 31 88 44 51 88 73 31
++88 44 51 88 73 31 88 44 51 88 73 31 88 73 62 88 44 51 88 73 31 88 44 51
++88 73 62 88 44 51 88 73 31 88 44 51 88 73 62 88 44 51 88 73 31 88 44 51
++88 73 31 88 44 51 88 73 31 88 73 31 88 44 51 101 74 26 88 73 62 101 74 26
++88 73 62 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31
++88 44 51 88 73 31 88 44 51 88 73 31 88 73 31 88 44 51 88 73 31 88 44 51
++88 73 31 76 46 20 88 44 51 88 73 31 88 44 51 88 73 31 76 46 20 88 73 31
++88 44 51 88 73 31 88 73 31 88 44 51 101 74 26 88 44 51 101 74 26 88 44 51
++101 74 26 120 63 71 101 74 26 101 83 74 117 112 45 120 63 71 117 112 45 120 63 71
++101 74 26 101 83 74 117 112 45 120 63 71 117 112 45 120 63 71 101 83 74 101 74 26
++117 112 45 101 83 74 117 112 45 120 63 71 117 112 45 101 83 74 117 112 45 120 63 71
++117 112 45 120 63 71 101 74 26 117 112 45 101 74 26 101 74 26 88 73 62 120 63 71
++101 74 26 120 63 71 101 74 26 101 74 26 120 63 71 117 112 45 101 74 26 120 63 71
++
++36 35 37 42 41 42 42 41 42 42 41 42 42 38 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 36 35 37 53 35 37 36 35 37 47 39 42 36 35 37 55 39 37
++51 49 42 55 39 37 63 55 45 75 56 53 75 56 53 88 73 31 88 73 62 88 73 62
++88 73 62 120 63 71 101 74 26 120 63 71 117 112 45 120 63 71 117 114 76 120 63 71
++117 99 86 117 112 45 120 63 71 117 99 86 120 63 71 117 112 45 120 63 71 101 83 74
++101 83 74 88 73 62 88 44 51 88 73 31 75 56 53 75 56 53 76 46 20 76 44 53
++59 36 42 53 35 37 55 39 18 52 30 35 52 30 35 53 35 37 55 39 37 55 39 37
++59 36 42 59 36 42 62 47 47 62 47 47 62 47 47 76 44 53 65 55 54 76 44 53
++75 56 53 76 44 53 75 56 53 65 55 54 75 56 53 76 44 53 65 55 54 65 55 54
++65 55 54 62 47 47 65 55 54 63 55 51 59 55 55 62 47 47 62 47 47 53 46 48
++53 46 48 47 44 42 55 39 37 47 39 42 47 39 42 53 35 37 53 35 37 53 35 37
++47 39 42 53 35 37 47 39 42 55 39 37 47 39 42 55 39 37 47 44 42 55 39 37
++53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48
++59 55 55 59 55 55 53 46 48 55 55 48 53 46 48 53 46 48 59 55 55 53 46 48
++59 55 55 48 50 48 59 55 55 52 55 48 57 43 51 55 55 48 59 55 55 59 55 55
++59 55 55 55 55 48 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55
++55 55 48 52 55 48 48 50 48 53 46 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 47 44 42 48 50 48 47 44 42 48 50 48 53 46 48 47 44 42 51 49 42
++47 44 42 51 49 42 47 44 42 47 44 42 47 44 42 55 39 37 47 39 42 47 44 42
++47 44 42 47 44 42 51 49 42 55 55 48 53 46 48 63 55 51 63 55 51 65 55 54
++65 63 61 75 63 62 75 72 67 75 72 67 88 83 74 88 69 84 101 83 74 99 93 84
++95 91 100 117 99 86 95 91 100 112 123 108 112 96 108 138 102 108 112 123 108 112 123 108
++138 102 108 111 119 127 138 126 108 111 119 127 112 123 108 138 102 108 112 123 108 138 102 108
++112 123 108 138 102 108 112 123 108 112 96 108 112 123 108 117 99 86 112 96 108 117 99 86
++95 91 100 99 93 84 95 91 100 99 93 84 99 93 84 99 93 84 88 83 88 88 83 88
++88 83 74 75 81 82 88 83 74 88 69 84 75 81 76 88 69 84 75 81 76 88 83 74
++75 81 82 75 81 82 88 83 88 75 81 82 88 83 88 88 83 88 88 83 88 88 83 88
++88 83 88 75 81 82 88 69 84 75 81 82 88 69 84 75 81 76 75 81 76 75 64 82
++75 72 67 75 64 82 75 72 67 75 72 67 63 59 71 65 63 61 65 63 61 75 59 67
++65 63 61 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62
++75 56 53 65 63 61 75 56 53 65 63 61 65 55 54 75 56 53 65 55 54 65 55 54
++65 63 61 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54
++63 55 51 59 55 55 59 55 55 59 55 55 53 46 48 53 46 48 53 46 48 47 44 42
++48 44 48 48 44 48 48 44 48 47 44 42 47 44 42 47 44 42 47 44 42 42 41 42
++43 42 50 43 42 50 43 42 50 48 44 48 48 50 48 48 44 48 48 44 48 48 50 48
++48 44 48 48 50 48 57 43 51 52 55 48 54 57 61 59 57 61 59 57 61 59 55 55
++59 57 61 59 57 61 65 57 61 75 63 62 75 56 53 75 56 53 76 44 53 49 13 16
++23 10 10 23 10 10 23 10 10 23 10 10 49 13 16 76 18 19 76 18 19 88 44 51
++88 30 18 76 18 19 76 18 19 49 13 16 49 13 16 23 10 10 52 30 35 138 126 108
++194 199 226 251 251 247 231 239 247 231 239 247 221 238 247 231 239 247 221 238 247 194 199 226
++111 122 142 42 60 86 60 63 87 111 122 142 194 199 226 221 238 247 231 239 247 221 238 247
++208 221 247 208 221 247 208 221 247 221 238 247 208 221 247 201 216 228 201 216 228 226 221 247
++201 216 228 148 160 159 75 64 82 28 30 35 12 18 30 26 24 32 22 25 24 30 30 34
++36 35 37 31 35 35 26 24 32 22 25 24 23 18 22 23 18 22 14 16 17 17 12 17
++12 18 20 23 18 22 23 18 22 15 22 17 23 20 24 23 20 24 23 20 24 23 20 24
++22 25 24 22 25 24 26 30 28 23 20 24 33 30 30 33 30 30 60 49 42 88 73 62
++117 99 86 117 114 76 168 102 88 168 146 127 168 102 88 168 102 88 168 146 127 195 113 123
++168 146 127 201 146 124 163 117 123 146 150 115 168 146 127 217 168 156 208 215 180 217 168 156
++189 165 168 189 165 168 197 171 123 217 168 156 189 165 168 217 168 156 217 168 156 222 171 182
++208 215 180 232 215 228 246 237 247 246 237 247 240 251 247 235 238 247 240 251 247 235 238 247
++240 251 247 240 251 247 235 238 247 235 238 247 231 239 247 240 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 225 222 201 225 222 201
++219 175 47 214 214 134 219 175 47 219 175 47 214 214 134 219 175 47 219 175 47 219 175 47
++219 175 47 214 214 134 219 175 47 219 175 47 219 175 47 214 214 134 219 175 47 219 175 47
++214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 219 175 47 177 171 115 219 175 47 177 171 115 177 171 115 177 171 115
++157 148 53 146 150 115 138 126 108 138 126 108 98 113 84 117 99 86 99 93 84 99 93 84
++117 99 86 95 91 100 99 93 84 112 96 108 117 99 86 94 105 108 112 96 108 112 123 108
++112 96 108 94 105 108 112 96 108 112 96 108 94 105 108 112 96 108 95 95 116 94 105 108
++112 96 108 95 91 100 95 95 116 95 91 100 95 91 100 77 91 115 95 91 100 94 105 108
++95 95 116 95 95 116 94 105 108 95 95 116 111 119 127 95 95 116 111 119 127 95 108 128
++111 119 127 95 108 128 111 119 127 111 119 127 111 119 127 111 119 127 119 117 138 111 119 127
++122 134 144 141 116 139 122 134 144 129 144 153 141 116 139 129 144 153 150 144 154 129 144 153
++150 144 154 150 144 154 129 144 153 150 147 171 150 144 154 150 147 171 150 144 154 150 147 171
++150 144 154 150 144 154 129 144 153 145 140 145 122 134 144 122 134 144 122 134 144 119 117 138
++119 117 138 119 117 138 119 117 138 111 119 127 112 96 108 111 119 127 94 105 108 94 105 108
++95 91 100 95 91 100 75 81 90 88 83 88 75 81 82 75 81 76 75 81 82 59 69 70
++75 72 67 59 69 70 75 72 67 59 69 70 75 72 67 75 72 67 75 63 62 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 63 62 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 59 69 70 65 63 61 59 57 61 65 63 61 59 55 55 65 63 61 59 57 61
++59 57 61 59 57 61 59 57 61 59 55 55 59 55 55 59 55 55 55 55 48 59 55 55
++63 55 51 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 75 63 62 75 72 67 75 63 62 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 88 66 70 75 72 67 75 72 67 75 72 67 75 81 76
++88 83 74 88 83 74 99 93 84 90 98 89 90 98 89 95 91 100 98 113 84 112 96 108
++112 96 108 112 123 108 112 123 108 138 102 108 112 123 108 111 119 127 138 126 108 121 143 132
++111 119 127 138 126 108 119 117 138 138 126 108 121 143 132 138 126 108 122 134 144 138 126 108
++121 143 132 138 126 108 122 134 144 138 126 108 121 143 132 138 126 108 141 116 139 121 143 132
++138 126 108 119 117 138 121 143 132 138 126 108 111 119 127 138 126 108 111 119 127 138 126 108
++112 123 108 111 119 127 138 126 108 111 119 127 112 123 108 112 123 108 112 123 108 112 123 108
++112 123 108 112 96 108 112 123 108 112 123 108 112 123 108 112 96 108 117 99 86 94 105 108
++117 99 86 95 91 100 99 93 84 99 93 84 99 93 84 101 83 74 88 83 74 88 83 74
++88 83 74 88 83 74 88 73 62 88 66 70 88 73 62 88 73 62 88 73 62 75 56 53
++88 73 62 75 56 53 88 73 62 88 73 62 88 73 62 88 44 51 88 73 62 88 44 51
++88 73 62 88 44 51 88 73 62 101 74 26 88 73 62 88 44 51 88 73 62 88 73 62
++88 73 62 88 44 51 88 73 62 88 73 62 88 44 51 88 73 31 88 44 51 88 73 62
++88 73 31 88 44 51 88 73 62 88 73 31 88 44 51 88 73 31 88 73 62 88 44 51
++88 73 62 88 73 31 88 73 62 88 44 51 88 73 62 88 44 51 88 73 62 88 44 51
++88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51
++88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 76 46 20
++88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 88 44 51
++88 73 31 88 44 51 88 44 51 88 73 31 88 44 51 88 73 31 101 74 26 88 73 62
++101 74 26 101 83 74 101 74 26 88 73 62 101 74 26 98 106 55 120 63 71 98 106 55
++120 63 71 117 112 45 120 63 71 117 112 45 120 63 71 117 112 45 117 112 45 120 63 71
++117 112 45 101 74 26 120 63 71 117 112 45 120 63 71 117 112 45 120 63 71 117 112 45
++101 74 26 120 63 71 98 106 55 120 63 71 101 83 74 120 63 71 101 74 26 101 74 26
++120 63 71 101 74 26 88 73 62 101 74 26 120 63 71 101 74 26 101 83 74 101 74 26
++
++42 41 42 42 41 42 47 44 42 42 41 42 42 38 42 42 41 42 42 41 42 34 40 43
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 47 39 42 47 44 42 51 49 42
++51 49 42 60 49 42 63 55 45 63 55 45 75 56 53 75 56 53 88 73 62 88 44 51
++101 74 26 101 83 74 120 63 71 117 112 45 120 63 71 120 63 71 117 112 45 117 99 86
++120 63 71 117 99 86 117 112 45 120 63 71 117 114 76 120 63 71 117 114 76 120 63 71
++88 73 62 120 63 71 88 73 62 88 73 62 88 44 51 75 56 53 76 44 53 60 49 42
++55 39 37 55 39 37 52 30 35 55 39 18 53 35 37 52 30 35 55 39 37 55 39 37
++59 36 42 62 47 47 62 47 47 76 44 53 76 44 53 76 44 53 76 44 53 63 55 51
++76 44 53 75 56 53 65 55 54 75 56 53 75 56 53 65 55 54 65 55 54 75 56 53
++65 55 54 75 56 53 65 55 54 62 47 47 65 55 54 59 55 55 62 47 47 53 46 48
++55 39 37 53 46 48 47 39 42 47 39 42 53 35 37 53 35 37 47 39 42 55 39 37
++42 41 42 55 39 37 47 44 42 47 44 42 55 39 37 47 44 42 48 44 48 53 46 48
++53 46 48 60 49 42 53 46 48 62 47 47 55 55 48 55 55 48 55 55 48 55 55 48
++57 43 51 55 55 48 53 46 48 55 55 48 55 55 48 55 55 48 55 55 48 59 55 55
++59 55 55 55 55 48 53 46 48 59 55 55 59 55 55 59 55 55 52 55 48 59 55 55
++52 55 48 59 55 55 59 55 55 59 55 55 59 55 55 53 63 61 59 55 55 59 55 55
++59 55 55 59 55 55 65 63 61 59 55 55 59 57 61 59 55 55 59 55 55 52 55 48
++59 55 55 48 50 48 52 55 48 48 50 48 48 50 48 53 46 48 48 50 48 53 46 48
++48 50 48 48 50 48 47 49 42 48 50 48 48 44 48 51 49 42 51 49 42 55 39 37
++47 44 42 47 44 42 47 44 42 55 39 37 47 44 42 47 44 42 47 39 42 47 39 42
++55 39 37 47 44 42 51 49 42 62 47 47 55 55 48 65 55 54 65 55 54 65 63 61
++75 63 62 75 72 67 75 72 67 88 66 70 88 83 74 88 83 74 88 83 88 99 93 84
++99 93 84 112 96 108 117 99 86 112 96 108 112 123 108 112 123 108 138 102 108 111 119 127
++112 123 108 138 102 108 138 126 108 138 102 108 111 119 127 138 126 108 111 119 127 138 102 108
++112 123 108 112 96 108 112 123 108 112 96 108 117 99 86 112 96 108 95 91 100 117 99 86
++112 96 108 117 99 86 99 93 84 95 91 100 99 93 84 95 91 100 99 93 84 88 83 88
++88 83 88 88 83 88 88 83 74 75 81 76 75 81 76 75 81 76 75 64 82 75 81 82
++88 83 88 75 81 82 88 83 88 75 81 82 88 83 88 88 83 88 75 81 90 88 83 88
++88 83 88 88 83 88 75 81 76 88 83 88 75 81 76 88 69 84 75 72 67 75 64 82
++75 81 76 75 72 67 75 64 82 75 63 62 75 72 67 65 63 61 75 63 62 65 63 61
++75 63 62 75 59 67 75 72 67 75 63 62 75 63 62 75 63 62 75 63 62 65 63 61
++65 57 61 65 55 54 65 63 61 65 55 54 65 55 54 65 63 61 75 56 53 65 55 54
++65 55 54 65 55 54 65 55 54 65 55 54 65 57 61 65 55 54 65 55 54 65 55 54
++59 55 55 62 47 47 59 55 55 62 47 47 59 55 55 53 46 48 53 46 48 53 46 48
++47 44 42 53 46 48 48 44 48 47 44 42 47 44 42 47 44 42 47 44 42 48 44 48
++48 44 48 48 50 48 48 44 48 48 44 48 48 44 48 45 57 61 48 44 48 48 44 48
++48 50 48 48 50 48 54 57 61 59 55 55 54 57 61 59 57 61 59 55 55 59 57 61
++65 63 61 65 63 61 65 63 61 65 63 61 75 63 62 75 63 62 57 43 51 28 13 18
++23 10 10 23 10 10 13 4 7 23 10 10 26 12 13 76 18 19 102 33 26 102 33 26
++76 18 19 76 18 19 49 13 16 49 13 16 49 13 16 23 10 10 76 44 53 145 140 145
++201 216 228 251 251 247 235 238 247 231 239 247 240 251 247 240 251 247 208 221 247 150 168 183
++77 91 115 60 63 87 77 91 115 150 168 183 208 221 247 221 238 247 221 238 247 221 238 247
++226 221 247 208 221 247 221 238 247 201 216 228 201 216 228 201 216 228 231 239 247 201 216 228
++150 144 154 59 69 70 12 18 30 12 18 30 22 23 31 26 24 32 22 25 24 26 30 28
++30 30 34 33 30 32 31 35 35 33 30 36 26 30 28 23 20 24 15 22 17 23 18 22
++23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24
++26 24 32 26 30 28 26 30 28 33 30 30 33 30 30 36 35 37 62 47 47 75 63 62
++120 63 71 117 99 86 117 99 86 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88
++201 146 124 163 117 123 168 102 88 168 146 127 177 169 143 225 222 201 232 215 228 232 215 228
++208 215 180 189 165 168 217 168 156 177 169 143 217 168 156 177 169 143 217 168 156 217 168 156
++222 171 182 225 222 201 233 241 227 246 237 247 240 251 247 240 251 247 235 238 247 240 251 247
++240 251 247 235 238 247 235 238 247 240 251 247 240 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 233 241 227 225 222 201 214 214 134
++214 214 134 219 175 47 219 175 47 214 214 134 219 175 47 219 175 47 219 175 47 219 175 47
++219 175 47 219 175 47 219 175 47 214 214 134 219 175 47 219 175 47 219 175 47 214 214 134
++219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 177 171 115 214 214 134
++177 171 115 214 214 134 177 171 115 214 214 134 177 171 115 177 171 115 177 171 115 177 171 115
++177 171 115 146 150 115 146 150 115 138 126 108 117 127 86 112 96 108 117 99 86 95 91 100
++99 93 84 95 91 100 117 99 86 94 105 108 112 96 108 94 105 108 112 123 108 112 96 108
++112 123 108 112 96 108 111 119 127 94 105 108 112 96 108 94 105 108 94 105 108 112 96 108
++94 105 108 94 105 108 94 105 108 95 91 100 94 105 108 95 95 116 94 105 108 95 95 116
++94 105 108 94 105 108 111 119 127 94 105 108 111 119 127 111 119 127 111 119 127 111 119 127
++111 119 127 111 119 127 119 117 138 111 119 127 111 119 127 119 117 138 111 119 127 122 134 144
++122 134 144 122 134 144 145 140 145 122 134 144 145 140 145 145 140 145 129 144 153 150 144 154
++150 144 154 131 144 168 148 160 159 150 147 171 148 160 159 150 147 171 148 160 159 150 144 154
++150 147 171 131 144 168 145 140 145 129 144 153 145 140 145 122 134 144 145 140 145 122 134 144
++122 134 144 119 117 138 119 117 138 111 119 127 111 119 127 112 96 108 94 105 108 112 96 108
++94 105 108 77 90 100 88 83 88 75 81 82 88 83 88 75 81 82 75 81 82 75 64 82
++75 81 76 75 72 67 75 72 67 75 72 67 75 64 82 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 64 82 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 64 82 75 72 67
++63 59 71 75 72 67 65 63 61 65 63 61 65 63 61 65 63 61 59 57 61 59 57 61
++65 63 61 59 55 55 59 57 61 59 55 55 52 55 48 52 55 48 55 55 48 59 55 55
++55 55 48 63 55 51 63 55 51 65 55 54 64 70 48 65 63 61 65 63 61 75 73 58
++65 63 61 75 63 62 75 63 62 75 63 62 75 72 67 75 63 62 88 66 70 75 72 67
++75 72 67 75 73 58 75 72 67 75 72 67 75 72 67 75 72 67 75 63 62 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 81 76 75 81 76 88 83 74
++75 81 76 88 83 88 88 83 88 99 93 84 90 98 89 99 93 84 94 105 108 117 99 86
++94 105 108 112 123 108 112 96 108 112 123 108 111 119 127 138 126 108 111 119 127 138 126 108
++111 119 127 138 126 108 121 143 132 119 117 138 138 126 108 119 117 138 138 126 108 121 143 132
++141 116 139 138 126 108 121 143 132 141 116 139 121 143 132 138 126 108 121 143 132 138 126 108
++121 143 132 121 143 132 138 126 108 111 119 127 121 143 132 138 126 108 111 119 127 138 126 108
++111 119 127 138 126 108 111 119 127 112 123 108 138 102 108 111 119 127 138 102 108 112 123 108
++112 123 108 112 123 108 138 102 108 112 96 108 117 99 86 112 123 108 98 113 84 112 96 108
++99 93 84 99 93 84 99 93 84 95 91 100 99 93 84 88 83 88 101 83 74 88 83 88
++101 83 74 88 83 74 88 66 70 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62
++75 56 53 88 73 62 88 44 51 88 73 62 88 73 62 88 73 62 88 73 31 88 73 62
++88 73 62 88 73 31 101 60 73 75 56 53 88 73 62 88 73 62 88 73 31 88 44 51
++88 73 62 101 74 26 88 44 51 88 73 31 88 73 62 88 73 62 88 44 51 88 73 31
++88 44 51 88 73 62 88 73 31 88 44 51 88 73 62 88 44 51 88 73 62 101 74 26
++88 44 51 88 73 62 88 44 51 101 74 26 88 73 62 101 74 26 88 44 51 88 73 31
++88 73 62 88 44 51 88 73 31 88 73 62 88 73 31 88 73 62 88 44 51 88 73 62
++88 44 51 88 73 31 88 73 62 88 44 51 88 73 31 88 44 51 88 44 51 88 73 31
++88 73 31 88 44 51 76 46 20 88 73 31 88 44 51 76 46 20 88 73 31 76 46 20
++88 44 51 88 73 31 88 73 31 88 44 51 88 73 31 88 44 51 88 73 62 101 74 26
++101 60 73 101 74 26 101 83 74 117 112 45 120 63 71 98 106 55 120 63 71 98 106 55
++101 83 74 117 112 45 101 83 74 117 112 45 101 83 74 117 99 86 120 63 71 117 112 45
++101 83 74 117 112 45 101 83 74 117 112 45 101 83 74 117 112 45 101 83 74 98 106 55
++120 63 71 117 112 45 101 74 26 120 63 71 101 74 26 98 106 55 120 63 71 101 74 26
++88 73 62 101 74 26 120 63 71 101 74 26 88 73 62 101 74 26 120 63 71 117 112 45
++
++42 41 42 42 41 42 47 44 42 42 41 42 42 41 42 43 42 50 42 41 42 43 42 50
++42 41 42 42 41 42 47 44 42 42 41 42 42 41 42 47 47 21 47 44 42 51 49 42
++60 49 42 60 49 42 63 55 45 75 56 53 75 56 53 88 73 62 101 74 26 88 73 62
++120 63 71 117 112 45 120 63 71 117 99 86 120 63 71 117 114 76 120 63 71 168 102 88
++117 112 45 120 63 71 168 102 88 117 99 86 117 99 86 117 99 86 120 63 71 117 112 45
++101 83 74 101 74 26 101 60 73 88 73 62 88 73 31 88 44 51 63 55 45 88 44 51
++59 36 42 76 46 20 55 39 37 52 30 35 55 39 37 55 39 37 55 39 37 59 36 42
++59 36 42 76 44 53 59 36 42 59 36 42 62 47 47 62 47 47 76 44 53 76 44 53
++75 56 53 75 56 53 76 44 53 75 56 53 75 56 53 75 56 53 76 44 53 65 55 54
++75 56 53 65 55 54 65 55 54 65 55 54 65 55 54 59 55 55 62 47 47 62 47 47
++53 46 48 47 39 42 53 46 48 47 39 42 47 39 42 53 35 37 53 35 37 55 39 37
++47 39 42 55 39 37 53 46 48 55 39 37 48 44 48 55 39 37 53 46 48 55 39 37
++53 46 48 53 46 48 62 47 47 53 46 48 53 46 48 53 46 48 53 46 48 63 55 51
++59 55 55 59 55 55 59 55 55 55 55 48 62 47 47 59 55 55 59 55 55 55 55 48
++59 55 55 55 55 48 59 55 55 55 55 48 59 55 55 59 55 55 55 55 48 59 55 55
++55 55 48 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 65 55 54 59 55 55 65 63 61 59 55 55 59 57 61 59 55 55 59 55 55
++59 55 55 55 55 48 53 46 48 52 55 48 53 46 48 52 55 48 55 55 48 48 50 48
++51 49 42 48 50 48 48 50 48 48 44 48 51 49 42 53 46 48 47 44 42 51 49 42
++51 49 42 51 49 42 47 44 42 47 44 42 47 44 42 42 41 42 55 39 37 47 44 42
++47 44 42 47 44 42 51 49 42 55 55 48 59 55 55 65 55 54 65 55 54 65 63 61
++75 63 62 75 72 67 88 66 70 75 81 69 88 69 84 101 83 74 88 83 88 99 93 84
++95 91 100 99 93 84 112 96 108 112 123 108 112 96 108 138 102 108 112 123 108 112 123 108
++138 126 108 111 119 127 138 126 108 111 119 127 138 126 108 112 123 108 138 102 108 112 123 108
++138 102 108 112 123 108 117 99 86 112 96 108 112 123 108 112 96 108 117 99 86 94 105 108
++117 99 86 95 91 100 112 96 108 99 93 84 95 91 100 99 93 84 88 83 88 88 83 74
++88 83 88 88 83 74 88 83 88 75 81 82 88 66 70 75 81 76 88 83 74 75 81 76
++88 83 88 75 81 82 88 83 88 88 83 88 78 98 90 88 83 88 88 83 88 88 83 88
++75 81 82 88 83 88 88 83 88 88 69 84 88 83 74 75 64 82 75 81 76 75 64 82
++75 81 76 75 64 82 75 72 67 75 72 67 59 69 70 75 59 67 75 72 67 75 59 67
++65 63 61 75 72 67 75 59 67 75 72 67 75 63 62 75 63 62 75 63 62 75 63 62
++75 56 53 65 63 61 75 56 53 75 56 53 65 55 54 75 56 53 65 55 54 75 56 53
++65 55 54 65 55 54 65 57 61 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54
++65 55 54 65 57 61 65 55 54 63 55 51 53 46 48 53 46 48 51 49 42 53 46 48
++53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 48 50 48 48 50 48
++48 50 48 48 50 48 57 43 64 48 50 48 48 50 48 57 43 64 48 50 48 48 50 48
++57 43 64 53 46 48 48 44 48 59 55 55 59 57 61 59 55 55 59 57 61 59 57 61
++59 57 61 65 63 61 65 63 61 65 63 61 75 63 62 75 63 62 75 56 53 49 13 16
++13 4 7 23 10 10 23 10 10 23 10 10 26 12 13 76 18 19 102 33 26 88 44 51
++76 18 19 76 18 19 49 13 16 49 13 16 49 13 16 49 13 16 99 93 84 189 165 168
++235 238 247 251 251 247 240 251 247 231 239 247 221 238 247 208 221 247 166 176 200 111 122 142
++61 78 101 61 78 101 122 134 144 194 199 226 231 239 247 221 238 247 221 238 247 221 238 247
++208 221 247 221 238 247 208 221 247 208 221 247 226 221 247 221 238 247 208 221 247 150 147 171
++60 63 87 22 23 31 7 10 17 23 30 35 30 30 34 26 24 32 26 24 32 33 30 30
++26 30 28 30 30 34 33 30 36 36 35 37 36 35 37 26 30 28 22 25 24 23 20 24
++23 20 24 23 18 22 23 20 24 22 25 24 26 24 32 26 30 28 26 24 32 33 30 30
++26 30 28 33 30 30 26 30 28 26 30 28 26 30 28 47 39 42 63 55 51 88 73 62
++101 83 74 117 99 86 168 102 88 117 99 86 117 114 76 168 102 88 117 114 76 168 102 88
++138 126 108 168 102 88 138 126 108 177 169 143 208 215 180 232 215 228 233 241 227 232 215 228
++188 180 202 217 168 156 189 165 168 217 168 156 201 146 124 189 165 168 197 171 123 189 165 168
++222 171 182 225 222 201 232 215 228 235 238 247 240 251 247 246 237 247 240 251 247 240 251 247
++235 238 247 240 251 247 240 251 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 233 241 227 214 214 134 214 214 134
++219 175 47 214 214 134 219 175 47 219 175 47 219 175 47 219 175 47 214 214 134 219 175 47
++219 175 47 214 214 134 219 175 47 219 175 47 219 175 47 214 214 134 219 175 47 219 175 47
++214 214 134 219 175 47 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 219 175 47 177 171 115 177 171 115 219 175 47 177 171 115 177 171 115
++177 171 115 177 171 115 146 150 115 138 126 108 138 126 108 112 123 108 117 99 86 99 93 84
++99 93 84 112 96 108 99 93 84 112 96 108 98 113 84 112 96 108 112 96 108 112 123 108
++112 96 108 111 119 127 112 96 108 112 123 108 112 96 108 111 119 127 112 96 108 94 105 108
++95 95 116 94 105 108 95 95 116 94 105 108 95 95 116 94 105 108 95 95 116 94 105 108
++95 108 128 112 96 108 111 119 127 95 108 128 111 119 127 111 119 127 111 119 127 111 119 127
++111 119 127 111 119 127 111 119 127 119 117 138 111 119 127 122 134 144 111 119 127 122 134 144
++141 116 139 122 134 144 141 116 139 145 140 145 145 140 145 129 144 153 145 140 145 150 144 154
++150 144 154 148 160 159 150 144 154 150 144 154 148 160 159 150 144 154 150 147 171 150 147 171
++150 144 154 150 144 154 150 144 154 129 144 153 145 140 145 129 144 153 141 116 139 122 134 144
++141 116 139 121 143 132 119 117 138 111 119 127 111 119 127 111 119 127 111 119 127 94 105 108
++95 91 100 95 91 100 78 98 90 88 83 88 75 81 90 88 83 88 75 81 82 75 81 82
++75 81 76 75 81 76 75 64 82 75 81 76 75 72 67 75 64 82 75 81 76 75 72 67
++88 66 70 75 72 67 75 81 76 88 66 70 75 81 76 88 66 70 75 72 67 75 72 67
++75 81 76 88 66 70 75 81 76 88 66 70 75 81 76 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 63 59 71 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 59 57 61 59 57 61 59 57 61 48 50 48 59 55 55 52 55 48 52 55 48
++52 55 48 59 55 55 55 55 48 59 55 55 63 55 51 63 55 51 65 63 61 65 63 61
++65 63 61 75 63 62 65 63 61 75 63 62 75 63 62 75 72 67 75 72 67 75 72 67
++75 63 62 75 72 67 75 63 62 75 63 62 75 63 62 75 63 62 75 72 67 75 63 62
++75 63 62 75 63 62 75 63 62 75 72 67 75 72 67 75 72 67 75 72 67 75 81 76
++88 83 74 88 83 74 88 83 88 90 98 89 99 93 84 95 91 100 90 98 89 112 96 108
++112 123 108 112 96 108 112 123 108 112 123 108 112 123 108 111 119 127 138 126 108 111 119 127
++138 126 108 111 119 127 121 143 132 138 126 108 121 143 132 121 143 132 138 126 108 121 143 132
++138 126 108 122 134 144 138 126 108 121 143 132 138 126 108 121 143 132 141 116 139 121 143 132
++119 117 138 138 126 108 121 143 132 111 119 127 138 126 108 111 119 127 138 126 108 112 123 108
++111 119 127 112 123 108 112 123 108 111 119 127 138 126 108 112 123 108 112 123 108 112 96 108
++112 123 108 112 96 108 112 123 108 112 123 108 112 123 108 94 105 108 117 99 86 112 96 108
++98 113 84 112 96 108 99 93 84 99 93 84 99 93 84 99 93 84 88 83 88 88 83 74
++88 83 74 88 83 74 88 83 74 88 73 62 88 66 70 88 73 62 88 44 51 88 73 62
++88 73 62 88 73 31 88 73 62 88 73 62 88 73 62 88 73 62 101 60 73 88 73 62
++88 44 51 88 73 62 88 73 62 88 73 62 101 74 26 88 73 62 88 73 62 88 73 62
++88 44 51 88 73 62 88 73 62 88 73 62 88 44 51 101 74 26 88 73 62 101 60 73
++88 73 31 88 73 62 88 44 51 88 73 31 88 73 62 88 73 31 88 44 51 88 66 70
++88 73 31 88 73 62 88 73 31 88 73 62 88 44 51 88 73 62 88 73 31 88 73 62
++88 44 51 88 73 31 88 73 62 88 44 51 88 73 62 88 44 51 101 74 26 88 73 62
++88 73 31 88 73 62 88 44 51 88 73 31 88 44 51 88 73 31 75 56 53 76 46 20
++88 44 51 88 73 31 75 56 53 76 46 20 88 44 51 88 73 31 88 44 51 88 44 51
++88 73 31 88 44 51 88 73 31 88 44 51 88 73 31 88 73 62 101 74 26 88 73 62
++101 74 26 88 73 62 120 63 71 98 106 55 120 63 71 117 112 45 101 83 74 117 112 45
++120 63 71 117 112 45 120 63 71 117 112 45 117 99 86 117 112 45 117 114 76 117 112 45
++120 63 71 117 112 45 117 99 86 117 112 45 120 63 71 117 112 45 120 63 71 117 112 45
++101 83 74 98 106 55 120 63 71 117 112 45 101 83 74 101 74 26 120 63 71 101 74 26
++120 63 71 88 73 62 101 74 26 120 63 71 101 74 26 101 83 74 101 74 26 120 63 71
++
++42 41 42 47 44 42 48 44 48 42 47 42 43 42 50 42 41 42 42 47 42 42 41 42
++43 42 50 42 47 42 47 39 42 42 41 42 47 39 42 47 44 42 47 44 42 53 46 48
++60 49 42 62 47 47 63 55 45 75 73 36 75 56 53 88 73 31 88 66 70 88 73 62
++120 63 71 101 74 26 117 99 86 117 112 45 120 63 71 168 102 88 117 114 76 117 99 86
++117 99 86 168 102 88 117 112 45 117 99 86 167 63 71 117 114 76 117 99 86 120 63 71
++120 63 71 101 83 74 101 74 26 101 60 73 88 44 51 88 73 31 88 44 51 76 46 20
++76 44 53 59 36 42 76 18 19 55 39 37 76 46 20 59 36 42 76 18 19 62 47 47
++76 46 20 59 36 42 76 46 20 76 44 53 76 44 53 76 44 53 76 44 53 75 56 53
++76 44 53 76 44 53 75 56 53 75 56 53 75 59 67 75 56 53 75 56 53 75 56 53
++76 44 53 75 56 53 75 56 53 65 55 54 65 55 54 62 47 47 62 47 47 57 43 51
++62 47 47 59 36 42 55 39 37 55 39 37 59 36 42 55 39 37 59 36 42 55 39 37
++55 39 37 60 49 42 59 36 42 53 46 48 59 36 42 55 39 37 53 46 48 55 39 37
++53 46 48 62 47 47 57 43 51 62 47 47 60 49 42 62 47 47 63 55 45 62 47 47
++63 55 51 63 55 51 62 47 47 55 55 48 59 55 55 63 55 51 59 55 55 59 55 55
++55 55 48 55 55 48 52 55 48 59 55 55 55 55 48 63 55 51 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 65 55 54 59 55 55 65 63 61
++59 55 55 65 63 61 63 55 51 59 55 55 65 55 54 65 63 61 59 55 55 59 55 55
++59 55 55 59 55 55 52 55 48 52 55 48 48 50 48 53 46 48 55 55 48 53 46 48
++48 50 48 48 50 48 51 49 42 53 46 48 53 46 48 53 46 48 51 49 42 53 46 48
++51 49 42 53 46 48 55 39 37 47 44 42 55 39 37 42 41 42 42 41 42 47 47 21
++47 39 42 51 49 42 53 46 48 62 47 47 59 55 55 65 63 61 65 63 61 75 63 62
++75 63 62 75 72 67 75 72 67 88 83 74 88 83 74 88 69 84 99 93 84 99 93 84
++112 96 108 117 99 86 112 96 108 112 96 108 112 123 108 112 123 108 138 102 108 111 119 127
++138 102 108 138 126 108 111 119 127 138 102 108 111 119 127 138 102 108 112 123 108 111 119 127
++138 102 108 112 96 108 112 123 108 112 96 108 117 99 86 112 96 108 112 123 108 112 96 108
++117 99 86 94 105 108 99 93 84 117 99 86 95 91 100 99 93 84 99 93 84 88 83 88
++88 83 88 88 83 74 88 83 74 88 83 74 75 81 76 88 69 84 75 81 76 88 69 84
++88 83 88 75 81 82 88 83 88 88 83 88 88 83 88 88 83 88 90 98 89 88 83 88
++88 83 88 88 83 88 75 81 76 88 83 88 75 81 76 88 69 84 88 66 70 75 81 76
++88 66 70 75 81 76 75 72 67 75 59 67 75 72 67 75 59 67 75 72 67 75 59 67
++75 63 62 75 59 67 75 72 67 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62
++65 57 61 75 56 53 75 56 53 65 55 54 75 56 53 75 56 53 75 63 62 65 55 54
++75 56 53 65 55 54 65 55 54 75 56 53 65 57 61 65 55 54 65 55 54 65 55 54
++65 55 54 65 55 54 65 55 54 62 47 47 62 47 47 63 55 51 62 47 47 62 47 47
++53 46 48 62 47 47 59 55 55 55 55 48 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 54 57 61 48 50 48 54 57 61 53 46 48 45 57 61 48 44 48 54 57 61
++48 50 48 54 57 61 53 46 48 54 57 61 59 55 55 59 57 61 59 57 61 65 63 61
++65 63 61 65 63 61 65 63 61 75 59 67 75 63 62 75 72 67 75 63 62 47 39 42
++23 10 10 23 10 10 13 4 7 23 10 10 49 13 16 88 30 18 88 44 51 102 33 26
++76 18 19 76 18 19 49 13 16 49 13 16 49 13 16 76 18 19 138 102 108 194 199 226
++232 215 228 231 239 247 208 221 247 194 199 226 166 176 200 129 144 153 95 108 128 61 78 101
++60 63 87 95 108 128 166 176 200 221 238 247 231 239 247 221 238 247 226 221 247 221 238 247
++221 238 247 201 216 228 221 238 247 221 238 247 231 239 247 226 221 247 166 156 164 75 81 90
++25 30 29 12 18 20 26 24 32 26 24 32 30 30 34 30 30 34 33 30 32 33 30 32
++33 30 32 26 24 32 26 30 28 33 30 30 30 30 34 33 30 36 30 30 34 26 24 32
++22 25 24 12 18 20 23 18 22 23 20 24 26 24 32 30 30 34 33 30 30 30 30 34
++30 30 34 28 30 35 28 30 35 26 30 28 33 30 32 36 35 37 62 47 47 75 63 62
++117 99 86 117 99 86 138 102 108 117 99 86 117 99 86 120 63 71 117 112 45 120 63 71
++117 112 45 117 99 86 163 117 123 189 165 168 232 215 228 233 241 227 232 215 228 225 222 201
++188 180 202 222 171 182 189 165 168 177 169 143 217 168 156 201 146 124 201 146 124 217 168 156
++189 165 168 225 222 201 232 215 228 246 237 247 246 237 247 235 238 247 240 251 247 235 238 247
++240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 225 222 201 214 214 134 214 214 134 214 214 134
++219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47
++219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 214 214 134
++219 175 47 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47
++214 214 134 177 171 115 214 214 134 219 175 47 214 214 134 177 171 115 197 171 123 177 171 115
++157 148 53 177 171 115 157 148 53 146 150 115 117 127 86 117 127 86 117 99 86 95 91 100
++99 93 84 117 99 86 94 105 108 112 96 108 112 96 108 112 123 108 112 96 108 111 119 127
++112 96 108 112 123 108 112 96 108 111 119 127 94 105 108 112 96 108 95 108 128 112 96 108
++112 96 108 94 105 108 95 95 116 94 105 108 95 95 116 94 105 108 95 95 116 112 96 108
++94 105 108 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127
++111 119 127 119 117 138 111 119 127 119 117 138 111 119 127 119 117 138 121 143 132 119 117 138
++121 143 132 145 140 145 122 134 144 145 140 145 145 140 145 145 140 145 145 140 145 145 140 145
++150 144 154 150 144 154 150 144 154 148 160 159 150 144 154 150 144 154 148 160 159 150 144 154
++150 144 154 150 144 154 150 144 154 145 140 145 145 140 145 145 140 145 122 134 144 145 140 145
++122 134 144 119 117 138 121 143 132 119 117 138 112 123 108 111 119 127 112 96 108 94 105 108
++94 105 108 95 91 100 77 90 100 88 83 88 77 90 100 88 83 88 75 81 90 88 83 88
++75 81 82 75 81 82 75 81 82 75 81 76 75 64 82 75 81 76 75 72 67 75 81 82
++75 64 82 75 81 76 88 69 84 75 81 76 75 81 76 88 83 74 75 81 76 88 83 74
++88 66 70 75 81 76 88 83 74 75 72 67 75 72 67 75 72 67 75 64 82 75 72 67
++75 72 67 75 72 67 63 59 71 75 72 67 65 63 61 65 63 61 59 57 61 65 63 61
++63 59 71 65 63 61 59 57 61 59 55 55 59 55 55 52 55 48 48 50 48 54 57 61
++48 50 48 52 55 48 52 55 48 55 55 48 59 55 55 59 55 55 65 63 61 65 55 54
++65 63 61 65 63 61 65 63 61 75 63 62 75 63 62 75 72 67 75 63 62 75 72 67
++75 72 67 75 73 58 65 63 61 75 72 67 65 63 61 65 63 61 75 63 62 65 63 61
++75 72 67 65 63 61 59 69 70 75 63 62 75 72 67 75 72 67 75 81 76 75 72 67
++75 81 82 88 83 88 88 83 88 90 98 89 90 98 89 99 93 84 94 105 108 117 99 86
++94 105 108 112 123 108 112 123 108 112 96 108 138 126 108 111 119 127 112 123 108 111 119 127
++138 126 108 121 143 132 138 126 108 119 117 138 138 126 108 121 143 132 141 116 139 138 126 108
++121 143 132 138 126 108 122 134 144 138 126 108 122 134 144 138 126 108 121 143 132 138 126 108
++138 126 108 121 143 132 138 126 108 111 119 127 138 126 108 111 119 127 111 119 127 138 126 108
++111 119 127 138 126 108 112 123 108 138 102 108 111 119 127 112 123 108 111 119 127 112 123 108
++138 102 108 112 123 108 112 96 108 112 123 108 112 96 108 112 96 108 112 123 108 99 93 84
++112 96 108 90 98 89 99 93 84 95 91 100 99 93 84 99 93 84 88 83 74 99 93 84
++88 83 88 88 83 74 88 83 74 88 66 70 75 72 67 88 73 62 88 73 62 88 73 62
++88 73 62 88 66 70 88 73 62 88 73 62 88 73 62 101 60 73 88 73 31 88 73 62
++88 73 62 88 73 62 88 73 62 88 44 51 88 73 62 101 60 73 88 73 62 88 73 62
++88 73 62 88 73 62 88 44 51 88 73 31 88 73 62 88 44 51 88 73 62 88 73 31
++88 44 51 88 73 62 88 73 31 88 66 70 88 44 51 88 73 62 88 73 62 88 73 31
++88 66 70 88 44 51 88 73 62 88 73 62 88 73 62 88 44 51 88 73 62 88 44 51
++88 73 62 88 73 62 88 73 31 88 73 62 88 73 31 88 73 62 88 73 62 88 44 51
++88 73 62 88 44 51 75 73 36 75 56 53 88 73 62 88 44 51 88 73 31 88 44 51
++75 73 36 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 75 73 36 76 46 20
++75 56 53 88 73 31 88 44 51 88 73 31 88 44 51 101 74 26 101 60 73 88 73 62
++101 83 74 101 74 26 101 83 74 98 106 55 101 83 74 101 83 74 101 83 74 101 83 74
++117 114 76 101 83 74 117 114 76 117 99 86 117 112 45 120 63 71 117 114 76 117 99 86
++117 112 45 117 99 86 120 63 71 117 114 76 117 112 45 101 83 74 117 112 45 101 83 74
++117 112 45 120 63 71 98 106 55 120 63 71 101 83 74 101 74 26 101 83 74 88 73 62
++101 74 26 120 63 71 88 73 62 101 74 26 120 63 71 98 106 55 120 63 71 98 106 55
++
++42 41 42 47 44 42 42 47 42 43 42 50 42 47 42 48 44 48 43 42 50 43 42 50
++42 47 42 48 44 48 47 44 42 47 39 42 47 44 42 47 44 42 51 49 42 53 46 48
++62 47 47 60 49 42 75 56 53 75 56 53 75 56 53 75 56 53 88 73 31 120 63 71
++98 106 55 120 63 71 117 112 45 167 63 71 117 112 45 117 99 86 117 114 76 167 63 71
++117 112 45 117 99 86 168 102 88 117 99 86 117 114 76 167 63 71 117 112 45 117 99 86
++117 112 45 101 83 74 120 63 71 88 73 62 88 73 31 88 44 51 75 56 53 76 44 53
++76 46 20 59 36 42 76 46 20 59 36 42 76 18 19 59 36 42 59 36 42 59 36 42
++59 36 42 59 36 42 76 44 53 59 36 42 76 44 53 76 46 20 76 44 53 76 44 53
++76 44 53 75 56 53 76 44 53 75 56 53 76 44 53 75 56 53 75 56 53 75 56 53
++65 57 61 75 56 53 65 55 54 76 44 53 65 55 54 65 55 54 65 55 54 62 47 47
++57 43 51 53 46 48 59 36 42 47 39 42 59 36 42 59 36 42 57 43 51 59 36 42
++62 47 47 59 36 42 57 43 51 53 46 48 59 36 42 53 46 48 55 39 37 53 46 48
++59 36 42 53 46 48 53 46 48 62 47 47 53 46 48 53 46 48 62 47 47 59 55 55
++63 55 51 63 55 51 55 55 48 63 55 51 63 55 51 59 55 55 63 55 51 59 55 55
++59 55 55 59 55 55 55 55 48 55 55 48 63 55 51 55 55 48 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 65 55 54 59 55 55 59 55 55 65 55 54 59 55 55
++65 55 54 59 55 55 59 55 55 65 55 54 65 63 61 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 53 46 48 55 55 48 53 46 48 55 55 48
++53 46 48 48 50 48 53 46 48 51 49 42 48 50 48 51 49 42 53 46 48 51 49 42
++53 46 48 51 49 42 51 49 42 55 39 37 47 44 42 47 44 42 47 44 42 47 39 42
++55 39 37 51 49 42 53 46 48 55 55 48 63 55 51 65 63 61 65 63 61 65 63 61
++75 72 67 75 72 67 75 72 67 75 81 76 88 83 74 101 83 74 88 83 88 99 93 84
++99 93 84 94 105 108 117 99 86 112 123 108 138 102 108 112 96 108 111 119 127 138 126 108
++111 119 127 112 123 108 138 102 108 111 119 127 138 126 108 138 126 108 112 123 108 138 102 108
++112 123 108 112 123 108 112 96 108 112 123 108 112 96 108 117 99 86 112 96 108 117 99 86
++112 96 108 112 96 108 117 99 86 95 91 100 99 93 84 95 91 100 99 93 84 88 83 88
++88 83 74 88 83 88 88 83 74 88 69 84 75 72 67 75 81 69 88 69 84 75 81 82
++88 83 88 75 81 82 88 83 88 88 83 88 88 83 88 90 98 89 88 83 88 88 83 88
++88 83 88 88 83 88 88 83 88 88 83 74 88 69 84 88 83 74 75 81 76 88 69 84
++75 81 82 75 72 67 75 64 82 75 72 67 75 59 67 75 72 67 63 59 71 75 72 67
++75 59 67 75 72 67 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62
++75 56 53 65 63 61 75 56 53 65 55 54 75 56 53 65 55 54 75 56 53 75 56 53
++65 55 54 65 55 54 65 57 61 75 56 53 65 57 61 76 44 53 65 55 54 65 55 54
++65 57 61 65 55 54 65 55 54 65 55 54 63 55 51 63 55 51 63 55 51 65 55 54
++65 55 54 65 55 54 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 54 57 61
++59 55 55 59 55 55 57 43 51 54 57 61 52 55 48 57 43 64 54 57 61 48 44 48
++59 55 55 48 50 48 59 55 55 59 55 55 59 55 55 59 57 61 59 57 61 65 63 61
++65 63 61 65 63 61 65 63 61 75 63 62 65 63 61 75 72 67 75 63 62 55 39 37
++26 12 13 23 10 10 23 10 10 23 10 10 49 13 16 88 44 51 102 33 26 88 30 18
++76 18 19 49 13 16 49 13 16 49 13 16 76 18 19 88 30 18 138 102 108 166 156 164
++188 180 202 150 147 171 119 117 138 95 108 128 77 91 115 61 78 101 61 78 101 61 78 101
++77 91 115 150 168 183 208 221 247 221 238 247 221 238 247 221 238 247 208 221 247 221 238 247
++226 221 247 221 238 247 208 221 247 231 239 247 208 221 247 166 174 181 77 90 100 23 30 35
++22 23 31 26 24 32 30 30 34 26 24 32 30 30 34 33 30 36 33 30 36 30 30 34
++33 30 30 22 25 24 17 12 17 23 18 22 23 18 22 22 23 31 30 30 34 31 35 35
++33 30 32 26 24 32 23 20 24 23 20 24 22 25 24 26 24 32 30 30 34 30 30 34
++31 35 35 31 35 35 25 30 29 30 30 34 36 35 37 36 35 37 53 46 48 75 56 53
++117 99 86 117 99 86 138 126 108 168 102 88 168 102 88 167 63 71 117 99 86 120 63 71
++120 63 71 138 102 108 168 146 127 225 222 201 226 221 247 233 241 227 232 215 228 194 199 226
++208 215 180 189 165 168 189 165 168 177 169 143 201 146 124 189 165 168 201 146 124 189 165 168
++217 168 156 222 171 182 232 215 228 246 237 247 246 237 247 235 238 247 240 251 247 251 251 247
++240 251 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 233 241 227 217 168 156 197 171 123 214 214 134 219 175 47
++214 214 134 219 175 47 219 175 47 214 214 134 219 175 47 219 175 47 219 175 47 219 175 47
++219 175 47 219 175 47 219 175 47 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47
++219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 214 214 134 219 175 47
++214 214 134 219 175 47 214 214 134 177 171 115 177 171 115 214 214 134 219 175 47 197 171 123
++177 171 115 177 171 115 168 146 127 146 150 115 138 126 108 138 126 108 117 99 86 117 99 86
++95 91 100 117 99 86 94 105 108 117 99 86 95 91 100 112 123 108 112 96 108 112 123 108
++111 119 127 112 96 108 95 108 128 112 123 108 112 96 108 111 119 127 112 96 108 111 119 127
++95 95 116 95 108 128 112 96 108 94 105 108 95 95 116 112 96 108 94 105 108 95 108 128
++111 119 127 112 96 108 111 119 127 111 119 127 111 119 127 111 119 127 119 117 138 111 119 127
++111 119 127 119 117 138 111 119 127 121 143 132 119 117 138 121 143 132 119 117 138 122 134 144
++122 134 144 141 116 139 122 134 144 145 140 145 122 134 144 145 140 145 145 140 145 150 144 154
++150 144 154 150 144 154 150 144 154 148 160 159 150 144 154 150 147 171 150 144 154 150 144 154
++148 160 159 150 144 154 131 144 168 150 144 154 129 144 153 145 140 145 126 147 144 141 116 139
++122 134 144 122 134 144 141 116 139 111 119 127 111 119 127 111 119 127 111 119 127 94 105 108
++94 105 108 95 91 100 95 91 100 77 90 100 90 98 89 88 83 88 75 81 90 88 83 88
++75 81 82 88 83 88 75 81 82 75 81 82 75 81 82 75 81 76 88 69 84 75 81 76
++88 83 74 75 81 76 88 69 84 88 83 74 88 69 84 75 81 76 88 66 70 88 83 74
++88 83 74 75 81 76 88 83 74 75 81 76 88 66 70 75 72 67 75 72 67 75 72 67
++75 64 82 75 72 67 75 63 62 75 72 67 65 63 61 63 59 71 65 63 61 59 57 61
++65 63 61 59 57 61 59 57 61 54 57 61 59 55 55 54 57 61 48 50 48 48 50 48
++53 46 48 52 55 48 53 46 48 52 55 48 52 55 48 55 55 48 55 55 48 63 55 51
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 75 63 62 65 63 61
++75 72 67 65 63 61 75 73 58 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 75 72 67 65 63 61 75 72 67 59 69 70 75 64 82 75 72 67 75 81 76
++75 81 76 88 83 74 88 83 88 99 93 84 90 98 89 99 93 84 95 91 100 98 113 84
++112 96 108 112 96 108 112 123 108 111 119 127 112 123 108 111 119 127 138 126 108 119 117 138
++117 142 111 119 117 138 138 126 108 121 143 132 138 126 108 121 143 132 138 126 108 122 134 144
++138 126 108 122 134 144 138 126 108 122 134 144 138 126 108 121 143 132 141 116 139 121 143 132
++122 134 144 138 126 108 119 117 138 138 126 108 111 119 127 138 126 108 111 119 127 138 126 108
++112 123 108 112 123 108 111 119 127 112 123 108 112 123 108 112 123 108 138 126 108 112 96 108
++112 123 108 112 123 108 112 96 108 112 123 108 117 99 86 112 123 108 112 96 108 98 113 84
++112 96 108 98 113 84 117 99 86 99 93 84 99 93 84 99 93 84 88 83 88 101 83 74
++88 83 74 88 83 74 88 66 70 88 83 74 88 73 62 88 73 62 88 66 70 88 73 62
++88 73 62 88 73 62 88 73 62 88 66 70 88 73 62 88 73 62 88 73 62 88 73 62
++88 73 62 120 63 71 88 73 62 88 73 62 88 73 62 88 73 62 88 73 31 101 60 73
++101 74 26 88 73 62 88 73 62 88 44 51 88 73 31 88 73 62 88 44 51 88 73 62
++88 73 62 88 73 31 88 73 62 88 73 62 88 73 31 88 73 62 88 44 51 88 66 70
++88 73 31 88 73 62 88 73 62 88 44 51 88 73 31 88 73 62 88 73 31 88 73 62
++88 73 31 88 73 62 88 73 62 88 44 51 88 73 62 88 44 51 88 73 31 88 73 62
++88 73 31 88 73 62 75 56 53 88 73 31 75 56 53 88 73 31 75 56 53 88 44 51
++88 73 31 75 56 53 75 73 36 88 44 51 75 56 53 76 46 20 88 44 51 75 56 53
++88 44 51 88 73 31 88 44 51 88 73 62 88 73 31 88 73 62 101 74 26 101 83 74
++101 74 26 101 83 74 98 106 55 120 63 71 117 112 45 120 63 71 117 112 45 101 83 74
++117 114 76 120 63 71 117 112 45 117 99 86 117 99 86 117 114 76 117 99 86 117 112 45
++117 99 86 117 112 45 117 114 76 117 112 45 117 99 86 117 99 86 117 114 76 120 63 71
++117 112 45 101 83 74 117 112 45 120 63 71 98 106 55 120 63 71 101 74 26 120 63 71
++88 73 62 120 63 71 101 74 26 101 83 74 101 74 26 120 63 71 101 74 26 120 63 71
++
++42 41 42 47 44 42 48 44 48 47 44 42 42 41 42 48 44 48 42 47 42 42 47 42
++48 44 48 47 44 42 48 44 48 51 49 42 47 44 42 51 49 42 51 49 42 60 49 42
++63 55 45 63 55 45 75 56 53 75 73 36 75 56 53 88 73 62 88 73 62 120 63 71
++101 83 74 117 112 45 120 63 71 117 99 86 117 99 86 167 63 71 117 114 76 168 102 88
++117 99 86 168 102 88 117 99 86 168 102 88 117 99 86 117 114 76 117 99 86 120 63 71
++120 63 71 120 63 71 101 74 26 101 60 73 88 44 51 88 44 51 88 44 51 76 46 20
++76 44 53 59 36 42 76 46 20 52 30 35 59 36 42 76 18 19 59 36 42 76 46 20
++76 44 53 76 46 20 59 36 42 88 44 51 60 49 42 76 44 53 76 44 53 75 56 53
++76 44 53 76 44 53 75 56 53 76 44 53 75 56 53 75 56 53 75 56 53 75 56 53
++76 44 53 75 56 53 76 44 53 65 55 54 65 55 54 62 47 47 62 47 47 62 47 47
++62 47 47 59 36 42 55 39 37 59 36 42 55 39 37 59 36 42 59 36 42 60 49 42
++59 36 42 62 47 47 59 36 42 59 36 42 60 49 42 59 36 42 55 39 37 62 47 47
++57 43 51 62 47 47 62 47 47 57 43 51 60 49 42 62 47 47 62 47 47 62 47 47
++63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 65 55 54 63 55 51
++59 55 55 59 55 55 59 55 55 59 55 55 63 55 51 63 55 51 63 55 51 59 55 55
++59 55 55 65 55 54 59 55 55 65 55 54 59 55 55 65 55 54 59 55 55 65 55 54
++59 55 55 59 55 55 65 55 54 59 55 55 59 55 55 65 55 54 59 55 55 59 55 55
++59 55 55 55 55 48 59 55 55 52 55 48 59 55 55 55 55 48 55 55 48 53 46 48
++52 55 48 48 50 48 53 46 48 51 49 42 53 46 48 53 46 48 51 49 42 53 46 48
++51 49 42 53 46 48 53 46 48 51 49 42 47 44 42 55 39 37 47 44 42 55 39 37
++51 49 42 53 46 48 62 47 47 63 55 51 65 55 54 65 63 61 75 56 53 75 63 62
++75 72 67 75 72 67 88 66 70 88 83 74 88 69 84 88 83 88 99 93 84 95 91 100
++99 93 84 112 96 108 112 96 108 112 123 108 112 96 108 112 123 108 112 123 108 138 102 108
++112 123 108 138 102 108 111 119 127 138 126 108 111 119 127 138 102 108 111 119 127 138 102 108
++112 123 108 138 102 108 112 96 108 117 99 86 112 96 108 112 123 108 112 96 108 98 113 84
++112 96 108 98 113 84 112 96 108 99 93 84 99 93 84 99 93 84 99 93 84 88 83 88
++88 83 88 88 83 74 75 81 76 88 83 74 75 81 76 88 66 70 75 81 76 88 83 88
++88 83 74 88 83 88 88 83 74 88 83 88 88 83 88 88 83 88 90 98 89 88 83 88
++90 98 89 88 83 88 88 83 88 88 83 88 88 83 74 88 69 84 75 81 76 88 83 74
++88 66 70 75 81 76 75 72 67 75 59 67 75 72 67 75 59 67 75 72 67 75 59 67
++75 72 67 75 59 67 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62
++75 63 62 75 56 53 65 55 54 75 56 53 65 55 54 75 56 53 75 56 53 75 56 53
++75 56 53 65 55 54 65 55 54 65 55 54 75 56 53 65 55 54 65 55 54 65 55 54
++65 55 54 65 57 61 65 55 54 75 56 53 65 55 54 65 55 54 65 55 54 65 57 61
++65 57 61 65 57 61 65 57 61 65 57 61 59 55 55 59 57 61 59 57 61 59 55 55
++59 55 55 54 57 61 59 55 55 54 57 61 59 55 55 54 57 61 59 55 55 54 57 61
++59 55 55 53 46 48 54 57 61 59 55 55 59 55 55 59 57 61 65 63 61 65 63 61
++65 63 61 65 63 61 59 69 70 75 63 62 65 63 61 75 72 67 75 72 67 62 47 47
++28 13 18 23 10 10 13 4 7 49 13 16 76 18 19 102 33 26 88 44 51 76 18 19
++49 13 16 49 13 16 49 13 16 76 18 19 88 44 51 88 44 51 112 96 108 145 140 145
++166 156 164 129 144 153 61 78 101 46 59 71 34 42 77 60 63 87 42 60 86 77 91 115
++122 134 144 194 199 226 221 238 247 221 238 247 226 221 247 208 221 247 221 238 247 208 221 247
++221 238 247 221 238 247 231 239 247 221 238 247 166 174 181 77 90 100 24 30 43 17 12 17
++28 30 35 30 30 34 22 25 24 26 24 32 23 20 24 26 24 32 26 24 32 22 25 24
++23 18 22 23 18 22 14 16 17 14 16 17 14 16 17 17 12 17 23 18 22 23 20 24
++30 30 34 36 35 37 30 30 34 26 24 32 22 25 24 22 25 24 22 25 24 26 30 28
++33 30 36 34 40 43 33 39 38 33 39 38 33 39 38 36 35 37 47 39 42 62 47 47
++75 63 62 101 83 74 117 99 86 138 102 108 117 114 76 117 99 86 117 114 76 120 63 71
++117 112 45 146 150 115 189 165 168 232 215 228 235 238 247 232 215 228 232 215 228 185 202 202
++222 171 182 188 180 202 189 165 168 189 165 168 201 146 124 168 146 127 201 146 124 177 169 143
++189 165 168 208 215 180 232 215 228 232 215 228 246 237 247 240 251 247 251 251 247 240 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 246 237 247 225 222 201 168 146 127 176 103 41 157 148 53 219 175 47
++214 214 134 219 175 47 219 175 47 219 175 47 219 175 47 157 148 53 219 175 47 157 148 53
++219 175 47 157 148 53 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47
++214 214 134 219 175 47 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134
++214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 177 171 115 177 171 115 177 171 115
++177 171 115 177 171 115 157 148 53 146 150 115 138 126 108 117 127 86 112 123 108 117 99 86
++99 93 84 112 96 108 98 113 84 112 96 108 112 123 108 112 96 108 112 123 108 112 96 108
++112 123 108 112 96 108 111 119 127 112 96 108 111 119 127 94 105 108 111 119 127 112 96 108
++111 119 127 94 105 108 112 96 108 95 108 128 111 119 127 94 105 108 111 119 127 94 105 108
++111 119 127 95 108 128 111 119 127 111 119 127 111 119 127 119 117 138 111 119 127 111 119 127
++121 143 132 111 119 127 119 117 138 111 119 127 111 119 127 119 117 138 138 126 108 122 134 144
++138 126 108 145 140 145 145 140 145 138 126 108 141 116 139 141 116 139 145 140 145 168 146 127
++145 140 145 168 146 127 168 146 127 166 156 164 168 146 127 166 156 164 146 151 137 150 144 154
++145 140 145 145 140 145 145 140 145 145 140 145 145 140 145 141 116 139 145 140 145 121 143 132
++138 126 108 141 116 139 112 123 108 111 119 127 112 96 108 112 123 108 112 96 108 94 105 108
++94 105 108 94 105 108 95 91 100 77 90 100 95 91 100 95 91 100 78 98 90 88 83 88
++88 83 88 88 83 88 75 81 82 88 83 88 75 81 82 75 81 82 75 81 82 88 69 84
++88 83 88 88 69 84 88 83 74 75 81 82 88 83 74 88 83 74 75 81 82 88 83 74
++88 69 84 88 83 74 88 66 70 75 81 76 88 66 70 75 81 69 88 66 70 75 72 67
++75 72 67 75 72 67 75 72 67 65 63 61 75 72 67 65 63 61 65 63 61 63 59 71
++53 63 61 65 63 61 54 57 61 59 55 55 52 55 48 48 50 48 54 57 61 48 50 48
++48 50 48 53 46 48 48 50 48 48 50 48 52 55 48 52 55 48 55 55 48 59 55 55
++63 55 51 65 55 54 65 63 61 65 63 61 65 63 61 65 63 61 75 63 62 65 63 61
++75 63 62 65 63 61 75 63 62 65 63 61 75 63 62 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 75 72 67 75 72 67 75 72 67 75 81 76
++75 64 82 88 83 74 88 83 88 90 98 89 90 98 89 90 98 89 95 91 100 112 96 108
++112 123 108 112 96 108 112 123 108 112 96 108 112 123 108 138 126 108 112 123 108 138 126 108
++111 119 127 138 126 108 121 143 132 111 119 127 138 126 108 122 134 144 138 126 108 121 143 132
++138 126 108 122 134 144 138 126 108 145 140 145 138 126 108 121 143 132 138 126 108 138 126 108
++111 119 127 138 126 108 121 143 132 138 126 108 111 119 127 138 126 108 111 119 127 112 123 108
++111 119 127 138 102 108 112 123 108 138 126 108 112 96 108 111 119 127 112 123 108 112 123 108
++112 96 108 112 123 108 112 123 108 112 96 108 112 123 108 112 96 108 98 113 84 112 96 108
++98 113 84 112 96 108 90 98 89 99 93 84 99 93 84 88 83 88 99 93 84 99 93 84
++88 83 88 88 83 74 88 83 74 88 83 74 88 66 70 75 72 67 88 73 62 75 63 62
++88 73 62 75 56 53 88 73 62 88 73 62 88 73 62 101 60 73 88 73 62 88 73 62
++88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 44 51
++88 73 62 88 73 62 88 44 51 88 73 62 88 73 62 75 56 53 88 73 31 88 73 62
++88 44 51 88 73 62 88 44 51 88 73 31 88 66 70 88 73 62 88 73 62 88 73 31
++88 66 70 75 56 53 88 73 62 88 73 62 88 44 51 88 73 62 88 73 62 88 44 51
++88 73 62 88 73 62 88 73 31 88 73 62 88 73 62 88 73 62 88 73 62 88 44 51
++88 73 62 75 56 53 88 73 31 75 56 53 75 56 53 88 44 51 75 56 53 88 73 31
++76 44 53 75 56 53 76 46 20 75 56 53 88 73 31 75 56 53 75 73 36 88 44 51
++88 73 31 75 56 53 88 73 62 88 44 51 88 73 31 88 44 51 88 73 62 88 73 62
++101 83 74 101 83 74 101 83 74 98 106 55 101 83 74 117 114 76 101 83 74 117 114 76
++101 83 74 117 112 45 117 99 86 117 99 86 117 112 45 117 99 86 117 114 76 117 99 86
++117 114 76 117 99 86 117 99 86 117 99 86 117 112 45 101 83 74 117 112 45 117 99 86
++101 83 74 117 99 86 120 63 71 98 106 55 101 74 26 101 83 74 88 73 62 101 74 26
++88 73 62 101 74 26 101 60 73 101 74 26 101 83 74 101 83 74 101 83 74 101 74 26
++
++42 41 42 47 44 42 47 49 42 42 47 42 48 44 48 42 47 42 48 44 48 42 47 42
++48 44 48 47 49 42 48 50 48 48 50 48 48 50 48 51 49 42 51 49 42 60 49 42
++63 55 45 63 55 45 63 55 45 75 56 53 88 73 62 101 74 26 120 63 71 98 106 55
++120 63 71 117 99 86 120 63 71 117 112 45 120 63 71 117 114 76 167 63 71 117 99 86
++117 112 45 168 102 88 117 99 86 117 114 76 167 63 71 117 114 76 167 63 71 117 99 86
++117 112 45 120 63 71 88 73 62 120 63 71 88 44 51 88 73 31 88 44 51 76 46 20
++76 44 53 88 30 18 59 36 42 76 18 19 59 36 42 59 36 42 76 18 19 59 36 42
++76 18 19 76 44 53 76 46 20 59 36 42 88 44 51 60 49 42 76 44 53 76 44 53
++75 56 53 76 44 53 76 44 53 75 56 53 75 56 53 76 44 53 75 56 53 76 44 53
++75 56 53 65 55 54 75 56 53 62 47 47 65 55 54 76 44 53 65 55 54 62 47 47
++62 47 47 59 36 42 55 39 37 59 36 42 59 36 42 59 36 42 62 47 47 59 36 42
++62 47 47 59 36 42 62 47 47 62 47 47 59 36 42 59 36 42 62 47 47 59 36 42
++62 47 47 57 43 51 62 47 47 62 47 47 53 46 48 62 47 47 53 46 48 62 47 47
++63 55 51 62 47 47 65 55 54 63 55 51 65 55 54 63 55 51 65 55 54 63 55 51
++65 55 54 63 55 51 63 55 51 63 55 51 59 55 55 63 55 51 59 55 55 65 55 54
++65 63 61 65 63 61 65 63 61 59 55 55 63 55 51 59 55 55 59 55 55 59 55 55
++63 55 51 59 55 55 63 55 51 63 55 51 65 63 61 59 55 55 65 63 61 59 55 55
++55 55 48 59 55 55 59 55 55 55 55 48 59 55 55 55 55 48 59 55 55 55 55 48
++51 49 42 53 46 48 51 49 42 53 46 48 48 50 48 60 49 42 53 46 48 62 47 47
++53 46 48 60 49 42 62 47 47 53 46 48 60 49 42 53 46 48 60 49 42 53 46 48
++62 47 47 62 47 47 65 55 54 65 55 54 65 57 61 65 63 61 75 63 62 75 63 62
++75 72 67 75 72 67 88 66 70 88 83 74 88 83 88 99 93 84 99 93 84 99 93 84
++99 93 84 112 96 108 117 99 86 112 123 108 112 96 108 112 123 108 138 102 108 112 123 108
++111 119 127 138 126 108 138 126 108 111 119 127 138 126 108 112 123 108 138 102 108 112 123 108
++138 102 108 112 96 108 112 123 108 112 96 108 112 123 108 117 99 86 112 96 108 112 96 108
++117 99 86 112 96 108 95 91 100 117 99 86 95 91 100 99 93 84 99 93 84 88 83 88
++88 83 74 88 69 84 88 83 74 88 66 70 75 81 76 88 83 74 88 66 70 75 81 76
++88 83 74 75 81 76 88 83 74 75 81 82 88 83 74 88 83 88 88 83 88 99 93 84
++88 83 88 88 83 88 75 81 76 88 83 88 75 81 82 88 83 74 75 81 76 88 69 84
++75 81 76 75 72 67 88 69 84 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++88 66 70 88 66 70 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62
++75 56 53 75 63 62 75 56 53 75 56 53 65 55 54 75 56 53 75 56 53 75 56 53
++75 56 53 75 56 53 65 55 54 76 44 53 65 55 54 76 44 53 75 56 53 75 59 67
++75 56 53 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62
++75 63 62 75 63 62 75 63 62 65 63 61 65 57 61 65 57 61 65 57 61 65 57 61
++59 57 61 59 57 61 59 55 55 59 57 61 59 55 55 65 57 61 59 55 55 59 55 55
++59 55 55 59 55 55 55 55 48 59 55 55 59 55 55 59 55 55 65 55 54 65 63 61
++75 63 62 65 63 61 65 63 61 65 63 61 75 72 67 75 72 67 75 63 62 65 57 61
++52 30 15 23 10 10 23 10 10 49 13 16 76 46 20 88 44 51 76 18 19 49 13 16
++49 13 16 76 18 19 76 18 19 88 30 18 88 44 51 88 44 51 112 96 108 150 144 154
++150 168 183 131 144 168 61 78 101 42 60 86 42 60 86 60 63 87 77 91 115 111 122 142
++194 199 226 221 238 247 221 238 247 221 238 247 208 221 247 221 238 247 208 221 247 221 238 247
++226 221 247 235 238 247 208 221 247 166 174 181 75 81 90 12 18 30 23 20 24 26 24 32
++26 30 28 26 30 28 23 18 22 14 16 17 17 12 17 14 16 17 23 18 22 17 12 17
++17 12 17 12 18 20 23 18 22 23 18 22 14 16 17 14 16 17 14 16 17 14 16 17
++23 18 22 30 30 34 36 35 37 36 35 37 33 30 36 26 30 28 26 24 32 26 24 32
++28 35 38 34 40 43 34 40 43 37 35 43 37 35 43 28 35 38 37 35 43 34 40 43
++48 44 48 65 55 54 75 63 62 101 83 74 101 83 74 117 99 86 101 83 74 101 83 74
++138 126 108 189 165 168 225 222 201 231 239 247 221 238 247 226 221 247 201 216 228 232 215 228
++185 202 202 188 180 202 189 165 168 189 165 168 189 165 168 166 156 164 168 146 127 168 146 127
++168 146 127 189 165 168 225 222 201 232 215 228 246 237 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 232 215 228 222 171 182 195 113 123 117 99 86 201 146 124 219 175 47
++214 214 134 219 175 47 219 175 47 177 171 115 219 175 47 219 175 47 177 171 115 219 175 47
++219 175 47 219 175 47 219 175 47 177 171 115 219 175 47 214 214 134 219 175 47 214 214 134
++219 175 47 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 219 175 47 214 214 134
++219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 177 171 115
++219 175 47 177 171 115 177 171 115 177 171 115 146 150 115 138 126 108 117 99 86 98 113 84
++117 99 86 98 113 84 112 96 108 112 96 108 95 91 100 112 123 108 112 96 108 111 119 127
++112 96 108 111 119 127 112 96 108 112 123 108 112 96 108 112 123 108 112 96 108 111 119 127
++112 96 108 111 119 127 111 119 127 94 105 108 111 119 127 112 96 108 95 108 128 112 96 108
++94 105 108 112 123 108 111 119 127 111 119 127 111 119 127 111 119 127 117 142 111 119 117 138
++119 117 138 138 126 108 111 119 127 138 126 108 121 143 132 138 126 108 145 140 145 138 126 108
++141 116 139 138 126 108 138 126 108 163 117 123 146 150 115 168 102 88 146 150 115 163 117 123
++168 146 127 168 146 127 168 146 127 201 146 124 168 146 127 197 171 123 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 163 117 123 168 146 127 138 126 108 146 150 115 163 117 123
++138 126 108 145 140 145 138 126 108 141 116 139 138 126 108 111 119 127 112 123 108 112 96 108
++94 105 108 95 91 100 94 105 108 94 105 108 94 105 108 95 91 100 95 91 100 95 91 100
++95 91 100 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 69 84 88 83 88
++75 81 76 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 74 88 83 88
++88 83 74 88 83 74 88 83 74 88 83 74 88 66 70 75 72 67 88 83 74 75 72 67
++75 72 67 75 63 62 75 72 67 75 63 62 75 72 67 65 63 61 65 63 61 65 63 61
++59 57 61 59 57 61 59 55 55 54 57 61 54 57 61 54 57 61 48 50 48 48 50 48
++48 44 48 48 50 48 53 46 48 48 50 48 53 46 48 59 55 55 53 46 48 59 55 55
++59 55 55 55 55 48 63 55 51 63 55 51 65 55 54 65 55 54 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 63 59 71 65 63 61 59 69 70 75 72 67 75 72 67
++75 81 82 75 81 82 88 83 74 88 83 88 90 98 89 99 93 84 99 93 84 94 105 108
++98 113 84 112 96 108 112 123 108 138 102 108 112 123 108 111 119 127 112 123 108 111 119 127
++138 126 108 111 119 127 138 126 108 141 116 139 138 126 108 121 143 132 138 126 108 122 134 144
++138 126 108 121 143 132 138 126 108 121 143 132 138 126 108 122 134 144 138 126 108 121 143 132
++138 126 108 111 119 127 138 126 108 111 119 127 112 123 108 111 119 127 138 126 108 111 119 127
++138 126 108 112 123 108 112 123 108 111 119 127 112 123 108 138 102 108 112 123 108 138 102 108
++112 123 108 112 123 108 138 102 108 112 123 108 117 99 86 112 96 108 112 123 108 112 96 108
++112 96 108 98 113 84 112 96 108 95 91 100 99 93 84 99 93 84 88 83 88 99 93 84
++88 83 74 88 83 88 88 83 74 88 83 74 75 72 67 88 73 62 75 63 62 88 73 62
++88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 101 83 74
++88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62
++88 73 62 88 73 62 88 73 62 75 73 36 88 73 62 75 56 53 75 56 53 88 73 62
++75 56 53 75 73 36 88 73 62 75 56 53 88 73 62 75 56 53 88 73 62 75 63 62
++88 73 62 88 73 62 88 44 51 88 73 62 88 73 62 75 73 36 88 73 62 75 73 36
++88 73 62 88 44 51 88 73 62 88 73 62 88 73 62 88 73 31 88 73 62 88 73 62
++88 73 31 75 56 53 88 73 62 75 56 53 75 56 53 88 73 31 75 56 53 76 44 53
++75 73 36 75 56 53 75 56 53 75 56 53 76 44 53 75 56 53 88 44 51 75 73 36
++75 56 53 88 44 51 88 73 31 88 44 51 88 73 62 88 73 31 88 73 62 88 73 62
++101 74 26 101 83 74 101 74 26 101 83 74 101 83 74 101 83 74 101 83 74 117 112 45
++117 99 86 117 114 76 101 83 74 117 114 76 117 99 86 117 114 76 117 99 86 117 114 76
++117 99 86 117 114 76 117 99 86 117 112 45 117 99 86 117 112 45 117 99 86 117 99 86
++117 112 45 101 83 74 98 106 55 101 83 74 101 83 74 101 74 26 120 63 71 101 74 26
++120 63 71 88 73 62 88 73 31 120 63 71 88 73 62 101 74 26 120 63 71 101 83 74
++
++47 44 42 47 44 42 47 44 42 48 44 48 42 47 42 48 44 48 48 44 48 48 44 48
++42 47 42 48 50 48 53 46 48 52 55 48 52 55 48 51 49 42 51 49 42 63 55 45
++63 55 45 63 55 45 75 56 53 75 73 36 88 73 62 88 73 62 88 73 62 120 63 71
++117 112 45 120 63 71 117 112 45 168 102 88 120 63 71 117 114 76 120 63 71 117 114 76
++168 102 88 117 99 86 168 102 88 117 112 45 117 99 86 117 99 86 117 114 76 120 63 71
++120 63 71 117 112 45 120 63 71 101 74 26 88 44 51 88 44 51 88 44 51 88 44 51
++76 46 20 59 36 42 76 18 19 59 36 42 76 18 19 59 36 42 59 36 42 59 36 42
++59 36 42 59 36 42 76 44 53 59 36 42 76 46 20 76 44 53 76 44 53 76 46 20
++76 44 53 76 44 53 75 56 53 76 44 53 75 56 53 76 44 53 65 57 61 76 44 53
++65 55 54 76 44 53 65 55 54 75 56 53 62 47 47 65 55 54 62 47 47 62 47 47
++62 47 47 60 49 42 59 36 42 59 36 42 55 39 37 59 36 42 59 36 42 59 36 42
++59 36 42 60 49 42 59 36 42 59 36 42 59 36 42 62 47 47 62 47 47 62 47 47
++59 36 42 62 47 47 57 43 51 62 47 47 62 47 47 62 47 47 62 47 47 63 55 51
++62 47 47 65 55 54 62 47 47 63 55 51 63 55 51 63 55 51 63 55 51 65 55 54
++65 55 54 63 55 51 65 55 54 65 55 54 63 55 51 63 55 51 59 55 55 65 63 61
++65 55 54 65 63 61 63 55 51 65 63 61 59 55 55 63 55 51 65 63 61 63 55 51
++59 55 55 59 55 55 63 55 51 59 55 55 63 55 51 65 55 54 59 55 55 50 61 48
++59 55 55 59 55 55 55 55 48 59 55 55 55 55 48 62 47 47 55 55 48 53 46 48
++53 46 48 55 55 48 53 46 48 51 49 42 55 55 48 53 46 48 55 55 48 62 47 47
++55 55 48 62 47 47 53 46 48 62 47 47 62 47 47 62 47 47 62 47 47 63 55 51
++63 55 51 65 55 54 65 55 54 75 63 62 75 63 62 75 63 62 75 63 62 75 72 67
++88 66 70 75 72 67 88 83 74 88 69 84 88 83 74 88 83 88 99 93 84 95 91 100
++99 93 84 112 96 108 95 119 107 112 96 108 112 123 108 112 96 108 112 123 108 138 102 108
++112 123 108 138 102 108 111 119 127 138 126 108 138 102 108 111 119 127 112 123 108 138 102 108
++112 123 108 112 96 108 138 102 108 112 123 108 112 96 108 112 96 108 112 123 108 117 99 86
++112 96 108 99 93 84 112 96 108 99 93 84 95 91 100 99 93 84 88 83 88 88 83 88
++88 83 74 88 83 74 88 83 74 88 69 84 88 83 74 75 81 76 88 83 74 88 83 74
++75 64 82 88 83 74 75 81 82 88 83 88 90 98 89 88 83 88 90 98 89 88 83 88
++95 91 100 88 83 88 88 83 88 75 81 82 88 83 88 75 81 82 88 83 74 88 69 84
++88 83 74 88 69 84 75 72 67 88 66 70 75 81 76 88 66 70 75 72 67 88 66 70
++75 72 67 88 66 70 88 66 70 75 63 62 88 66 70 75 63 62 88 66 70 75 63 62
++75 63 62 75 56 53 75 59 67 75 56 53 75 63 62 75 56 53 75 56 53 75 56 53
++65 57 61 75 56 53 65 55 54 75 56 53 65 55 54 75 56 53 75 59 67 75 63 62
++75 59 67 88 66 70 75 63 62 88 66 70 88 66 70 75 72 67 88 66 70 75 63 62
++75 63 62 75 63 62 65 63 61 75 63 62 75 63 62 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 57 61 65 63 61 65 57 61 65 57 61 65 57 61 59 57 61
++59 55 55 59 55 55 59 55 55 59 55 55 59 57 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 75 72 67 75 72 67 75 59 67 75 63 62
++52 30 35 13 4 7 23 10 10 49 13 16 102 33 26 76 18 19 49 13 16 49 13 16
++76 18 19 76 18 19 102 33 26 102 33 26 88 44 51 101 60 73 138 102 108 150 144 154
++131 144 168 95 108 128 60 63 87 42 60 86 60 63 87 77 91 115 131 144 168 185 202 202
++208 221 247 221 238 247 221 238 247 208 221 247 208 221 247 208 221 247 208 221 247 221 238 247
++221 238 247 226 221 247 150 168 183 77 90 100 22 23 31 14 16 17 23 20 24 25 30 29
++22 25 24 23 20 24 15 22 17 23 18 22 14 16 17 17 12 17 14 16 17 23 20 24
++23 20 24 23 20 24 22 25 24 22 25 24 26 24 32 22 25 24 23 20 24 14 16 17
++14 16 17 14 16 17 26 30 28 31 35 35 36 35 37 36 35 37 36 35 37 28 30 35
++26 24 32 28 30 35 29 34 50 28 35 38 23 30 35 26 24 32 26 24 32 26 24 32
++33 30 30 33 30 30 52 30 35 62 47 47 75 56 53 75 56 53 88 73 31 117 99 86
++168 146 127 185 202 202 232 215 228 226 221 247 208 221 247 201 216 228 201 216 228 225 222 201
++188 180 202 225 222 201 222 171 182 188 180 202 217 168 156 189 165 168 168 146 127 163 117 123
++163 117 123 177 169 143 222 171 182 225 222 201 235 238 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++246 237 247 246 237 247 232 215 228 225 222 201 195 113 123 168 102 88 157 148 53 227 171 124
++219 175 47 214 214 134 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 157 148 53
++219 175 47 157 148 53 219 175 47 219 175 47 157 148 53 219 175 47 219 175 47 219 175 47
++214 214 134 219 175 47 219 175 47 214 214 134 219 175 47 214 214 134 214 214 134 219 175 47
++214 214 134 214 214 134 219 175 47 214 214 134 177 171 115 219 175 47 214 214 134 177 171 115
++177 171 115 177 171 115 157 148 53 177 171 115 138 126 108 146 150 115 117 127 86 117 99 86
++117 99 86 95 91 100 117 99 86 94 105 108 117 99 86 112 96 108 112 123 108 112 96 108
++112 123 108 111 119 127 112 123 108 111 119 127 112 96 108 111 119 127 112 96 108 111 119 127
++112 96 108 95 108 128 112 96 108 111 119 127 94 105 108 111 119 127 111 119 127 94 105 108
++111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 119 117 138
++138 126 108 119 117 138 111 119 127 119 117 138 141 116 139 121 143 132 145 140 145 138 126 108
++138 126 108 138 126 108 138 126 108 138 126 108 163 117 123 146 150 115 163 117 123 201 146 124
++168 146 127 168 146 127 201 146 124 168 146 127 168 146 127 177 169 143 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 145 140 145 168 146 127 145 140 145 145 140 145 146 151 137
++168 146 127 146 151 137 166 156 164 177 169 143 148 160 159 145 140 145 111 119 127 94 105 108
++94 105 108 94 105 108 94 105 108 95 91 100 95 91 100 95 95 116 95 91 100 94 105 108
++95 91 100 90 98 89 77 90 100 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88
++88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 74 88 83 88 88 83 74
++88 83 88 88 69 84 88 83 74 75 72 67 75 81 76 88 66 70 75 72 67 88 66 70
++75 72 67 75 72 67 75 72 67 75 63 62 65 63 61 75 63 62 63 59 71 65 63 61
++59 57 61 65 63 61 54 57 61 59 55 55 59 55 55 48 50 48 54 57 61 48 44 48
++48 50 48 48 44 48 48 50 48 53 46 48 48 50 48 48 50 48 53 46 48 59 55 55
++53 46 48 59 55 55 55 55 48 59 55 55 59 55 55 65 63 61 65 55 54 65 63 61
++65 55 54 65 63 61 75 63 62 65 63 61 75 56 53 65 63 61 65 63 61 65 55 54
++65 63 61 65 63 61 65 63 61 63 59 71 65 63 61 75 72 67 75 72 67 75 81 76
++75 81 82 75 81 82 88 83 88 90 98 89 99 93 84 90 98 89 95 91 100 98 113 84
++112 96 108 112 123 108 112 96 108 112 123 108 112 123 108 138 102 108 112 123 108 138 126 108
++111 119 127 138 126 108 121 143 132 138 126 108 121 143 132 138 126 108 122 134 144 138 126 108
++121 143 132 138 126 108 141 116 139 117 142 111 141 116 139 138 126 108 121 143 132 138 126 108
++111 119 127 138 126 108 121 143 132 138 126 108 111 119 127 138 126 108 112 123 108 112 123 108
++111 119 127 138 102 108 112 123 108 138 102 108 112 123 108 111 119 127 138 126 108 111 119 127
++112 123 108 138 102 108 112 123 108 112 96 108 112 123 108 112 96 108 98 113 84 112 96 108
++98 113 84 112 96 108 98 113 84 112 96 108 99 93 84 95 91 100 99 93 84 99 93 84
++88 83 88 88 83 74 88 83 74 88 66 70 88 73 62 75 63 62 88 73 62 75 63 62
++88 73 62 75 63 62 88 73 62 88 66 70 88 73 62 88 73 62 101 83 74 88 73 62
++88 73 62 101 83 74 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62
++88 73 62 75 56 53 88 73 62 88 73 62 75 56 53 88 73 31 88 73 62 75 56 53
++88 73 31 75 63 62 88 73 31 75 56 53 75 73 58 88 73 62 75 56 53 88 73 62
++88 44 51 88 73 62 75 73 58 88 73 62 75 56 53 88 73 62 75 56 53 88 73 62
++88 73 31 88 73 62 88 73 62 88 73 31 75 56 53 88 73 62 88 73 62 75 56 53
++88 73 62 75 56 53 88 73 31 75 56 53 75 73 36 75 56 53 75 56 53 75 56 53
++75 56 53 76 46 20 75 56 53 76 46 20 75 56 53 88 73 31 63 55 45 88 44 51
++88 73 31 75 56 53 88 73 62 88 73 31 75 56 53 88 73 62 88 73 62 88 73 62
++101 83 74 101 83 74 101 83 74 117 112 45 101 83 74 117 112 45 101 83 74 117 99 86
++101 83 74 117 114 76 117 114 76 117 114 76 117 99 86 117 114 76 117 99 86 117 114 76
++117 114 76 117 114 76 117 114 76 117 99 86 117 99 86 117 112 45 117 99 86 101 83 74
++117 99 86 101 83 74 120 63 71 117 112 45 101 60 73 101 83 74 88 73 62 88 73 62
++101 74 26 88 73 62 120 63 71 88 73 31 88 73 62 101 83 74 101 74 26 101 83 74
++
++47 44 42 48 44 48 47 49 42 48 44 48 47 44 42 48 44 48 42 47 42 47 49 42
++48 44 48 48 50 48 52 55 48 55 55 48 53 46 48 55 55 48 55 55 48 63 55 45
++63 55 45 75 56 53 75 73 36 75 56 53 88 73 62 101 74 26 101 83 74 101 74 26
++101 83 74 120 63 71 117 99 86 120 63 71 117 99 86 117 112 45 167 63 71 117 114 76
++167 63 71 117 112 45 117 99 86 117 99 86 168 102 88 117 114 76 167 63 71 117 99 86
++117 112 45 120 63 71 120 63 71 120 63 71 101 74 26 88 44 51 88 44 51 76 46 20
++76 44 53 88 30 18 59 36 42 76 46 20 59 36 42 76 18 19 76 18 19 59 36 42
++88 30 18 59 36 42 88 30 18 59 36 42 76 44 53 76 44 53 76 44 53 76 44 53
++76 44 53 75 56 53 76 44 53 76 44 53 76 44 53 75 56 53 76 44 53 75 56 53
++76 44 53 75 56 53 76 44 53 62 47 47 75 56 53 62 47 47 76 44 53 62 47 47
++62 47 47 59 36 42 59 36 42 55 39 37 59 36 42 59 36 42 60 49 42 59 36 42
++76 44 53 59 36 42 59 36 42 59 36 42 76 44 53 59 36 42 62 47 47 59 36 42
++62 47 47 59 36 42 62 47 47 62 47 47 62 47 47 62 47 47 62 47 47 62 47 47
++62 47 47 62 47 47 63 55 51 63 55 51 63 55 51 62 47 47 63 55 51 63 55 51
++65 55 54 65 55 54 65 55 54 63 55 51 65 55 54 65 55 54 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 55 54 65 55 54 59 55 55 63 55 51 59 55 55
++63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 65 63 61 65 55 54 59 55 55
++63 55 51 63 55 51 55 55 48 62 47 47 59 55 55 55 55 48 62 47 47 55 55 48
++53 46 48 51 49 42 55 55 48 62 47 47 55 55 48 62 47 47 63 55 51 63 55 51
++62 47 47 63 55 51 63 55 51 63 55 51 65 55 54 63 55 51 65 55 54 65 55 54
++65 57 61 75 63 62 75 63 62 75 63 62 75 63 62 75 72 67 75 72 67 88 66 70
++75 81 76 88 69 84 88 66 70 88 83 74 88 83 88 101 83 74 88 83 88 99 93 84
++99 93 84 112 96 108 117 99 86 112 123 108 112 96 108 138 102 108 112 123 108 111 119 127
++138 102 108 111 119 127 138 126 108 112 123 108 141 116 139 112 123 108 138 102 108 112 123 108
++138 102 108 112 123 108 112 96 108 112 123 108 117 99 86 112 96 108 117 99 86 112 96 108
++112 96 108 117 99 86 95 91 100 117 99 86 99 93 84 88 83 88 101 83 74 88 83 88
++88 83 74 88 69 84 88 83 74 75 81 69 88 66 70 75 81 76 88 66 70 75 81 76
++88 83 74 75 81 76 88 83 74 88 83 74 88 83 74 88 83 88 88 83 88 99 93 84
++88 83 88 88 83 88 88 83 74 88 83 88 88 83 74 88 83 88 88 69 84 88 83 74
++88 83 74 75 81 76 88 83 74 88 69 84 75 72 67 88 66 70 75 81 76 88 66 70
++88 83 74 88 66 70 88 66 70 88 66 70 88 66 70 75 63 62 88 66 70 75 56 53
++75 63 62 75 56 53 75 56 53 75 63 62 75 56 53 75 56 53 75 63 62 75 56 53
++75 56 53 75 56 53 75 56 53 76 44 53 75 59 67 75 56 53 75 63 62 75 63 62
++88 66 70 88 66 70 88 66 70 88 66 70 88 83 74 88 66 70 88 66 70 75 59 67
++75 72 67 75 63 62 75 59 67 75 63 62 75 63 62 75 63 62 75 59 67 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 57 61 65 57 61 59 55 55
++65 63 61 59 55 55 59 55 55 65 55 54 65 63 61 65 63 61 65 63 61 65 63 61
++75 73 58 65 63 61 75 72 67 65 63 61 75 72 67 75 72 67 75 72 67 75 72 67
++60 49 42 49 13 16 23 10 10 49 13 16 76 44 53 49 13 16 49 13 16 49 13 16
++76 18 19 102 33 26 88 44 51 76 18 19 76 44 53 101 60 73 145 140 145 150 147 171
++119 117 138 60 63 87 42 60 86 61 78 101 111 122 142 166 176 200 201 216 228 221 238 247
++221 238 247 221 238 247 208 221 247 221 238 247 208 221 247 201 216 228 208 221 247 208 221 247
++226 221 247 150 168 183 75 81 90 24 30 43 3 4 9 12 18 20 23 18 22 22 25 24
++23 20 24 22 25 24 22 25 24 23 20 24 14 16 17 14 16 17 12 18 20 23 20 24
++22 25 24 23 20 24 23 20 24 26 30 28 30 30 34 33 30 32 30 30 34 22 25 24
++23 18 22 14 16 17 14 16 17 23 20 24 26 24 32 31 35 35 31 35 35 30 30 34
++22 23 31 12 18 30 22 23 31 22 23 31 23 30 35 24 30 43 37 35 43 32 40 58
++37 35 43 33 30 36 26 24 32 33 30 30 33 30 30 33 30 30 75 63 62 138 126 108
++188 180 202 246 237 247 246 237 247 231 239 247 232 215 228 231 239 247 232 215 228 235 238 247
++232 215 228 232 215 228 232 215 228 232 215 228 225 222 201 225 222 201 189 165 168 168 146 127
++141 116 139 145 140 145 189 165 168 188 180 202 235 238 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 231 239 247
++233 241 227 246 237 247 232 215 228 222 171 182 195 113 123 168 102 88 168 102 88 227 171 124
++219 175 47 214 214 134 219 175 47 219 175 47 177 171 115 219 175 47 157 148 53 219 175 47
++219 175 47 219 175 47 219 175 47 177 171 115 219 175 47 219 175 47 214 214 134 219 175 47
++219 175 47 214 214 134 219 175 47 219 175 47 214 214 134 219 175 47 219 175 47 219 175 47
++214 214 134 219 175 47 214 214 134 214 214 134 219 175 47 214 214 134 177 171 115 214 214 134
++219 175 47 177 171 115 177 171 115 177 171 115 146 150 115 157 148 53 138 126 108 117 99 86
++98 113 84 117 99 86 98 113 84 112 96 108 112 96 108 112 123 108 112 96 108 112 123 108
++111 119 127 112 96 108 111 119 127 112 96 108 111 119 127 111 119 127 111 119 127 112 123 108
++111 119 127 111 119 127 94 105 108 111 119 127 112 96 108 95 108 128 112 96 108 111 119 127
++111 119 127 112 96 108 112 123 108 111 119 127 138 126 108 111 119 127 138 126 108 121 143 132
++138 126 108 145 140 145 146 151 137 168 146 127 177 169 143 168 146 127 168 146 127 138 126 108
++138 126 108 168 102 88 146 150 115 168 102 88 168 146 127 168 102 88 177 171 115 168 102 88
++177 171 115 201 146 124 168 146 127 197 171 123 168 146 127 201 146 124 168 146 127 201 146 124
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 177 169 143 177 169 143 189 165 168 189 165 168 177 169 143 141 116 139
++112 123 108 112 96 108 94 105 108 94 105 108 94 105 108 95 91 100 94 105 108 95 91 100
++95 91 100 95 91 100 95 91 100 90 98 89 88 83 88 88 83 88 88 83 88 88 83 88
++88 83 88 88 83 88 88 83 88 88 83 88 99 93 84 88 83 88 99 93 84 88 83 88
++88 83 74 88 83 74 88 83 74 88 83 74 88 66 70 75 72 67 88 83 74 75 72 67
++75 72 67 75 72 67 75 63 62 75 72 67 75 72 67 65 63 61 65 63 61 59 57 61
++53 63 61 59 57 61 59 57 61 54 57 61 48 50 48 54 57 61 48 50 48 48 50 48
++48 44 48 42 41 42 48 44 48 48 44 48 53 46 48 48 50 48 53 46 48 53 46 48
++53 46 48 53 46 48 55 55 48 55 55 48 59 55 55 63 55 51 65 55 54 65 55 54
++65 63 61 63 55 51 65 63 61 65 55 54 65 63 61 65 55 54 65 63 61 65 55 54
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 59 69 70 75 72 67 75 72 67
++75 81 82 88 83 74 88 83 88 88 83 88 90 98 89 90 98 89 117 99 86 94 105 108
++117 99 86 94 105 108 112 123 108 112 96 108 112 123 108 112 123 108 111 119 127 112 123 108
++138 126 108 111 119 127 138 126 108 111 119 127 138 126 108 121 143 132 138 126 108 141 116 139
++138 126 108 121 143 132 138 126 108 121 143 132 138 126 108 121 143 132 138 126 108 119 117 138
++138 126 108 111 119 127 138 126 108 111 119 127 138 126 108 112 123 108 111 119 127 138 126 108
++112 123 108 112 123 108 112 123 108 111 119 127 138 102 108 112 123 108 112 123 108 138 102 108
++112 123 108 112 96 108 112 123 108 112 123 108 112 123 108 112 96 108 112 123 108 112 96 108
++94 105 108 117 99 86 112 96 108 98 113 84 112 96 108 99 93 84 90 98 89 99 93 84
++88 83 88 88 83 74 88 83 74 88 83 74 75 72 67 88 73 62 75 72 67 88 73 62
++75 63 62 88 73 62 75 72 67 88 73 62 88 66 70 88 73 62 88 73 62 88 83 74
++88 73 62 88 73 62 101 83 74 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62
++88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 75 63 62 75 56 53 88 73 62
++75 56 53 88 73 62 75 56 53 88 73 62 75 56 53 88 73 62 75 56 53 75 73 58
++88 73 62 75 56 53 88 73 62 75 56 53 88 73 62 75 56 53 88 73 62 75 73 58
++75 63 62 88 73 62 75 73 58 88 73 62 88 73 62 75 56 53 88 73 62 88 73 62
++75 73 58 88 73 62 75 73 58 88 73 62 75 56 53 75 56 53 75 56 53 88 73 31
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53
++75 56 53 88 73 31 75 56 53 75 56 53 75 56 53 88 73 31 88 73 62 101 74 26
++101 83 74 98 106 55 101 83 74 101 83 74 101 83 74 101 83 74 117 99 86 98 106 55
++117 99 86 98 106 55 117 99 86 117 99 86 117 114 76 117 99 86 117 114 76 117 99 86
++117 114 76 117 99 86 117 99 86 117 112 45 117 99 86 117 99 86 117 99 86 117 112 45
++117 99 86 117 112 45 101 83 74 101 83 74 101 74 26 101 83 74 101 74 26 88 73 62
++120 63 71 88 73 62 88 73 62 88 73 31 120 63 71 88 73 62 88 73 62 88 73 62
++
++47 44 42 53 46 48 53 46 48 48 44 48 48 44 48 48 44 48 42 47 42 47 44 42
++48 50 48 48 50 48 55 55 48 57 43 51 55 55 48 55 55 48 63 55 45 63 55 45
++75 56 53 63 55 45 75 56 53 88 73 62 88 73 62 88 73 62 120 63 71 101 83 74
++120 63 71 117 112 45 120 63 71 117 112 45 168 102 88 120 63 71 117 114 76 120 63 71
++117 114 76 168 102 88 117 99 86 167 63 71 117 114 76 167 63 71 117 114 76 117 112 45
++120 63 71 120 63 71 101 74 26 101 60 73 88 44 51 88 73 62 102 33 26 88 44 51
++76 46 20 76 18 19 59 36 42 76 18 19 52 30 35 76 18 19 59 36 42 88 30 18
++59 36 42 88 30 18 76 44 53 76 44 53 76 46 20 76 44 53 76 46 20 76 44 53
++76 44 53 76 44 53 76 44 53 75 56 53 76 44 53 76 44 53 63 55 45 76 44 53
++62 47 47 76 44 53 62 47 47 76 44 53 63 55 45 76 44 53 60 49 42 59 36 42
++76 44 53 55 39 37 76 46 20 59 36 42 76 46 20 59 36 42 76 46 20 59 36 42
++76 46 20 76 44 53 59 36 42 88 44 51 59 36 42 76 44 53 59 36 42 76 44 53
++59 36 42 62 47 47 62 47 47 62 47 47 62 47 47 62 47 47 62 47 47 62 47 47
++65 55 54 62 47 47 65 55 54 62 47 47 62 47 47 63 55 51 63 55 51 63 55 51
++65 55 54 63 55 51 65 55 54 65 55 54 65 63 61 65 63 61 65 63 61 65 55 54
++65 63 61 65 55 54 65 63 61 75 56 53 65 55 54 65 63 61 63 55 51 65 63 61
++65 55 54 65 55 54 65 63 61 63 55 51 59 55 55 63 55 51 63 55 51 63 55 51
++63 55 51 63 55 51 55 55 48 55 55 48 62 47 47 55 55 48 62 47 47 55 55 48
++62 47 47 55 55 48 53 46 48 55 55 48 62 47 47 63 55 51 63 55 51 65 55 54
++65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 57 61 75 63 62
++75 63 62 75 59 67 75 72 67 75 72 67 75 72 67 75 72 67 88 66 70 75 81 76
++88 69 84 88 83 74 88 83 74 88 69 84 101 83 74 88 83 88 99 93 84 99 93 84
++95 91 100 117 99 86 112 96 108 112 96 108 117 99 86 112 123 108 112 96 108 112 123 108
++112 123 108 138 102 108 111 119 127 138 102 108 138 126 108 112 123 108 138 102 108 112 123 108
++112 96 108 112 123 108 138 102 108 112 96 108 112 96 108 117 99 86 112 123 108 112 96 108
++117 99 86 95 91 100 117 99 86 95 91 100 99 93 84 101 83 74 88 83 88 88 83 74
++88 66 70 88 83 74 88 66 70 88 66 70 88 83 74 75 72 67 88 83 74 88 66 70
++75 81 76 88 66 70 75 81 82 88 83 74 88 83 88 88 83 74 88 83 88 88 83 88
++88 83 74 88 83 88 88 83 74 88 83 74 88 83 88 88 83 74 88 83 74 88 69 84
++88 66 70 88 83 74 88 66 70 75 81 69 88 66 70 88 83 74 88 66 70 88 66 70
++88 83 74 88 66 70 88 66 70 88 73 62 88 66 70 75 63 62 75 56 53 88 66 70
++88 44 51 75 63 62 88 44 51 75 56 53 88 44 51 88 66 70 75 56 53 88 44 51
++75 59 67 75 56 53 75 59 67 88 66 70 88 44 51 88 66 70 88 66 70 88 66 70
++88 73 62 88 66 70 88 83 74 88 66 70 88 66 70 75 72 67 88 66 70 75 72 67
++75 63 62 75 72 67 75 63 62 75 72 67 75 63 62 75 63 62 75 63 62 65 63 61
++75 59 67 65 57 61 65 63 61 65 57 61 65 63 61 65 63 61 65 57 61 65 55 54
++65 63 61 63 55 51 65 63 61 65 63 61 65 63 61 65 63 61 75 63 62 65 63 61
++65 63 61 75 63 62 75 72 67 65 63 61 75 63 62 63 59 71 75 72 67 75 81 76
++75 56 53 52 30 35 23 10 10 23 10 10 55 39 18 49 13 16 49 13 16 49 13 16
++76 18 19 102 33 26 102 33 26 76 18 19 59 36 42 112 96 108 150 147 171 131 144 168
++61 78 101 42 60 86 77 90 100 131 144 168 194 199 226 221 238 247 240 251 247 221 238 247
++208 221 247 208 221 247 208 221 247 208 221 247 201 216 228 194 199 226 208 221 247 226 221 247
++166 176 200 95 91 100 12 18 30 12 18 20 14 16 17 15 22 17 22 25 24 22 25 24
++26 25 15 22 25 24 22 25 24 22 25 24 23 20 24 23 20 24 23 18 22 22 25 24
++26 24 32 22 25 24 26 24 32 26 30 28 30 30 34 33 30 32 33 30 32 30 30 34
++26 30 28 23 20 24 14 16 17 14 16 17 23 18 22 23 20 24 23 20 24 22 25 24
++36 35 37 54 57 61 60 81 83 75 81 90 77 91 115 95 95 116 95 108 128 119 117 138
++111 119 127 95 108 128 95 95 116 75 81 90 75 64 82 63 59 71 112 123 108 188 180 202
++233 241 227 251 251 247 251 251 247 240 251 247 235 238 247 240 251 247 240 251 247 251 251 247
++240 251 247 240 251 247 231 239 247 240 251 247 246 237 247 235 238 247 226 221 247 185 202 202
++189 165 168 166 156 164 166 174 181 225 222 201 235 238 247 251 251 247 251 251 247 251 251 247
++240 251 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 231 239 247 221 238 247
++232 215 228 251 251 247 232 215 228 201 146 124 168 102 88 168 102 88 168 102 88 168 102 88
++219 175 47 227 171 124 219 175 47 214 214 134 219 175 47 219 175 47 219 175 47 219 175 47
++157 148 53 219 175 47 157 148 53 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47
++219 175 47 219 175 47 214 214 134 219 175 47 219 175 47 214 214 134 214 214 134 219 175 47
++214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47
++177 171 115 177 171 115 177 171 115 157 148 53 177 171 115 138 126 108 117 127 86 117 127 86
++117 99 86 117 99 86 112 96 108 117 99 86 112 123 108 112 96 108 112 123 108 112 96 108
++138 102 108 112 123 108 112 96 108 111 119 127 112 123 108 112 96 108 111 119 127 112 96 108
++111 119 127 112 96 108 111 119 127 112 96 108 111 119 127 112 123 108 95 108 128 94 105 108
++112 96 108 95 119 107 112 96 108 112 123 108 138 126 108 141 116 139 146 151 137 168 146 127
++150 144 154 177 169 143 189 165 168 189 165 168 189 165 168 177 169 143 163 117 123 138 126 108
++168 102 88 138 126 108 168 146 127 201 146 124 177 171 115 201 146 124 168 146 127 201 146 124
++177 171 115 201 146 124 177 171 115 201 146 124 201 146 124 177 171 115 201 146 124 168 146 127
++201 146 124 168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 201 146 124 201 146 124
++201 146 124 201 146 124 168 146 127 201 146 124 189 165 168 208 215 180 222 171 182 166 180 164
++168 146 127 112 96 108 94 105 108 95 91 100 94 105 108 112 96 108 95 91 100 94 105 108
++95 91 100 95 91 100 90 98 89 95 91 100 88 83 88 78 98 90 88 83 88 88 83 88
++88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 99 93 84 88 83 74 99 93 84
++88 83 88 88 83 74 88 69 84 75 81 69 88 83 74 75 72 67 88 66 70 75 72 67
++75 72 67 75 72 67 75 72 67 65 63 61 75 63 62 65 63 61 59 57 61 59 55 55
++59 55 55 59 55 55 59 55 55 53 46 48 53 46 48 48 50 48 43 42 50 48 50 48
++43 42 50 47 44 42 42 41 42 48 44 48 48 44 48 48 44 48 48 50 48 53 46 48
++55 55 48 53 46 48 55 55 48 55 55 48 63 55 51 59 55 55 63 55 51 65 63 61
++64 70 48 65 55 54 65 63 61 63 55 51 65 63 61 63 55 51 63 55 51 59 55 55
++65 63 61 65 55 54 65 57 61 65 63 61 65 63 61 75 63 62 75 72 67 75 72 67
++75 81 82 75 81 82 88 83 88 90 98 89 88 83 88 90 98 89 95 91 100 94 105 108
++112 123 108 112 96 108 98 113 84 112 123 108 138 102 108 111 119 127 138 102 108 112 123 108
++138 126 108 111 119 127 138 126 108 121 143 132 138 126 108 119 117 138 138 126 108 121 143 132
++138 126 108 119 117 138 138 126 108 121 143 132 138 126 108 111 119 127 138 126 108 111 119 127
++138 126 108 121 143 132 111 119 127 138 126 108 111 119 127 111 119 127 138 126 108 111 119 127
++112 123 108 138 102 108 111 119 127 138 126 108 112 123 108 111 119 127 138 102 108 112 123 108
++112 123 108 112 123 108 112 96 108 112 123 108 112 96 108 112 123 108 98 113 84 112 96 108
++112 123 108 95 91 100 98 113 84 112 96 108 90 98 89 117 99 86 95 91 100 99 93 84
++88 83 88 88 83 74 88 83 74 75 72 67 75 72 67 88 73 62 75 72 67 88 73 62
++75 72 67 88 73 62 75 72 67 88 73 62 88 73 62 88 83 74 88 83 74 88 73 62
++88 83 74 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62
++88 73 62 75 63 62 88 73 62 75 56 53 88 73 62 75 73 58 88 73 62 75 56 53
++75 73 58 75 56 53 75 73 58 75 56 53 75 73 58 75 56 53 88 73 62 75 63 62
++75 73 58 75 73 58 88 73 62 75 73 58 88 73 62 75 73 58 75 73 58 75 56 53
++88 73 62 75 73 58 88 73 62 75 63 62 88 73 62 75 73 58 88 73 62 75 73 58
++88 73 62 75 56 53 75 73 58 75 56 53 75 73 58 75 56 53 75 56 53 75 56 53
++75 56 53 75 56 53 75 73 36 75 56 53 63 55 45 75 56 53 76 46 20 75 56 53
++75 56 53 75 56 53 88 73 62 88 73 31 88 73 62 75 73 58 88 73 62 88 73 62
++101 83 74 101 83 74 101 83 74 98 106 55 101 83 74 117 114 76 101 83 74 117 99 86
++99 93 84 117 114 76 117 99 86 117 114 76 117 99 86 117 114 76 138 102 108 117 114 76
++117 114 76 117 114 76 117 99 86 117 99 86 117 114 76 117 99 86 117 114 76 117 99 86
++101 83 74 117 99 86 117 99 86 101 83 74 101 83 74 101 83 74 101 83 74 88 73 62
++101 74 26 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62
++
++53 46 48 53 46 48 53 46 48 48 50 48 48 50 48 48 44 48 47 49 42 48 44 48
++47 49 42 53 46 48 55 55 48 59 55 55 63 55 51 55 55 48 55 55 48 63 55 45
++75 56 53 75 73 36 75 56 53 88 73 62 88 73 31 101 83 74 88 73 62 120 63 71
++117 112 45 120 63 71 117 114 76 120 63 71 117 114 76 120 63 71 117 112 45 117 114 76
++167 63 71 117 99 86 117 112 45 168 102 88 117 99 86 117 99 86 117 114 76 120 63 71
++120 63 71 117 112 45 120 63 71 120 63 71 101 74 26 88 44 51 76 46 20 76 44 53
++88 30 18 59 36 42 76 18 19 59 36 42 76 18 19 59 36 42 76 18 19 59 36 42
++76 18 19 59 36 42 59 36 42 88 30 18 59 36 42 76 44 53 76 44 53 76 44 53
++75 56 53 76 46 20 76 44 53 76 46 20 76 44 53 76 46 20 76 44 53 88 44 51
++76 44 53 63 55 45 88 44 51 60 49 42 88 44 51 60 49 42 76 44 53 76 46 20
++55 39 37 76 44 53 59 36 42 59 36 42 59 36 42 59 36 42 59 36 42 76 44 53
++59 36 42 76 44 53 76 46 20 59 36 42 76 44 53 59 36 42 76 46 20 59 36 42
++76 44 53 59 36 42 62 47 47 59 36 42 76 44 53 62 47 47 76 44 53 62 47 47
++62 47 47 62 47 47 62 47 47 62 47 47 63 55 45 63 55 51 62 47 47 63 55 51
++65 55 54 63 55 51 75 56 53 65 63 61 75 56 53 65 63 61 75 56 53 65 63 61
++65 63 61 65 63 61 75 63 62 65 55 54 65 63 61 63 55 51 65 63 61 63 55 51
++65 55 54 65 55 54 65 63 61 63 55 51 59 55 55 63 55 51 63 55 51 63 55 51
++63 55 51 63 55 51 63 55 51 55 55 48 55 55 48 62 47 47 63 55 51 62 47 47
++55 55 48 55 55 48 55 55 48 63 55 51 63 55 51 63 55 51 65 55 54 65 55 54
++65 55 54 65 55 54 65 57 61 65 55 54 65 57 61 75 56 53 65 63 61 75 63 62
++75 59 67 75 63 62 75 59 67 75 72 67 75 72 67 88 66 70 75 72 67 88 69 84
++88 83 74 88 83 74 88 69 84 88 83 74 88 83 88 101 83 74 88 83 88 99 93 84
++95 91 100 117 99 86 94 105 108 117 99 86 112 123 108 112 96 108 112 123 108 138 102 108
++111 119 127 138 102 108 112 123 108 138 126 108 111 119 127 138 102 108 111 119 127 138 102 108
++112 123 108 112 96 108 117 99 86 112 123 108 117 99 86 112 96 108 117 99 86 95 91 100
++117 99 86 95 91 100 99 93 84 99 93 84 88 83 88 88 83 74 88 69 84 88 83 74
++88 66 70 75 72 67 88 83 74 75 72 67 75 72 67 88 66 70 75 72 67 75 72 67
++75 72 67 75 81 76 88 83 74 75 81 76 88 83 74 88 83 88 88 83 74 88 83 88
++88 83 88 88 83 74 88 83 88 88 83 74 88 69 84 88 83 74 88 69 84 88 83 74
++75 81 76 88 66 70 75 81 76 88 66 70 88 83 74 88 66 70 88 83 74 88 66 70
++88 66 70 88 83 74 88 66 70 88 66 70 88 66 70 88 73 62 88 66 70 75 56 53
++75 56 53 88 44 51 75 56 53 75 56 53 75 63 62 88 44 51 75 56 53 88 66 70
++75 56 53 88 66 70 88 44 51 88 66 70 88 66 70 88 66 70 88 66 70 88 66 70
++88 66 70 88 83 74 88 66 70 88 66 70 88 66 70 88 66 70 75 72 67 88 66 70
++88 66 70 75 72 67 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62
++65 57 61 65 63 61 65 63 61 75 63 62 65 63 61 75 63 62 65 63 61 65 63 61
++65 55 54 65 63 61 65 63 61 65 55 54 65 63 61 75 56 53 65 63 61 75 63 62
++65 63 61 75 72 67 65 63 61 75 63 62 75 72 67 65 63 61 75 63 62 75 72 67
++75 63 62 63 55 45 26 12 13 49 13 16 49 13 16 49 13 16 49 13 16 49 13 16
++102 33 26 101 60 73 76 18 19 49 13 16 57 43 64 112 96 108 141 116 139 95 108 128
++61 78 101 95 95 116 150 168 183 201 216 228 240 251 247 231 239 247 221 238 247 221 238 247
++208 221 247 221 238 247 221 238 247 208 221 247 201 216 228 201 216 228 221 238 247 185 202 202
++95 95 116 29 34 50 7 10 17 12 18 20 22 25 24 22 25 24 26 30 28 22 25 24
++22 25 24 26 25 15 22 25 24 23 20 24 23 18 22 14 16 17 14 16 17 23 20 24
++22 25 24 26 30 28 26 30 28 33 30 30 26 24 32 26 24 32 33 30 32 26 24 32
++30 30 34 30 30 34 22 25 24 23 20 24 14 16 17 7 12 13 14 16 17 37 35 43
++90 98 89 150 144 154 188 180 202 194 199 226 201 216 228 201 216 228 201 216 228 221 238 247
++226 221 247 232 215 228 201 216 228 185 202 202 166 174 181 166 156 164 185 202 202 235 238 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 246 237 247
++232 215 228 232 215 228 232 215 228 232 215 228 235 238 247 251 251 247 240 251 247 240 251 247
++240 251 247 235 238 247 251 251 247 251 251 247 240 251 247 231 239 247 221 238 247 232 215 228
++235 238 247 251 251 247 232 215 228 195 113 123 120 63 71 167 63 71 167 63 71 176 103 41
++176 103 41 219 175 47 219 175 47 214 214 134 219 175 47 157 148 53 219 175 47 177 171 115
++219 175 47 219 175 47 219 175 47 219 175 47 157 148 53 219 175 47 214 214 134 219 175 47
++214 214 134 219 175 47 219 175 47 219 175 47 214 214 134 219 175 47 219 175 47 214 214 134
++219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 177 171 115 214 214 134
++214 214 134 219 175 47 177 171 115 177 171 115 177 171 115 157 148 53 138 126 108 138 126 108
++117 114 76 94 105 108 117 99 86 94 105 108 112 96 108 117 99 86 112 96 108 112 123 108
++112 96 108 112 123 108 111 119 127 138 102 108 111 119 127 111 119 127 111 119 127 111 119 127
++112 96 108 111 119 127 111 119 127 112 123 108 111 119 127 95 95 116 112 123 108 112 96 108
++95 119 107 112 96 108 111 119 127 145 140 145 150 144 154 166 180 164 189 165 168 189 165 168
++208 215 180 222 171 182 208 215 180 189 165 168 177 171 115 168 146 127 138 126 108 168 102 88
++146 150 115 168 102 88 146 150 115 168 102 88 201 146 124 168 146 127 201 146 124 177 171 115
++201 146 124 168 146 127 201 146 124 177 171 115 201 146 124 168 146 127 201 146 124 177 171 115
++201 146 124 177 171 115 201 146 124 201 146 124 177 171 115 201 146 124 201 146 124 197 171 123
++217 168 156 197 171 123 177 169 143 201 146 124 177 169 143 177 169 143 222 171 182 208 215 180
++189 165 168 121 143 132 112 123 108 112 96 108 94 105 108 94 105 108 95 91 100 95 91 100
++95 91 100 95 91 100 90 98 89 88 83 88 88 83 88 88 83 88 88 83 88 88 83 74
++88 83 88 88 83 88 99 93 84 88 83 88 99 93 84 88 83 88 99 93 84 88 83 88
++101 83 74 88 83 88 88 83 74 88 83 74 88 66 70 75 72 67 75 72 67 75 72 67
++75 63 62 75 72 67 75 63 62 75 72 67 65 63 61 65 63 61 59 55 55 59 55 55
++54 57 61 52 55 48 54 57 61 48 50 48 48 50 48 43 42 50 48 44 48 43 42 50
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 47 44 42 48 50 48 53 46 48
++53 46 48 53 46 48 53 46 48 53 46 48 55 55 48 59 55 55 63 55 51 63 55 51
++65 55 54 65 63 61 63 55 51 59 55 55 63 55 51 59 55 55 59 55 55 59 55 55
++63 55 51 59 55 55 59 55 55 65 57 61 59 57 61 75 72 67 63 59 71 75 72 67
++75 81 76 75 81 82 88 83 74 88 83 88 90 98 89 99 93 84 90 98 89 99 93 84
++112 96 108 98 113 84 112 96 108 112 96 108 112 123 108 112 123 108 112 123 108 112 123 108
++138 126 108 111 119 127 138 126 108 111 119 127 121 143 132 138 126 108 121 143 132 138 126 108
++121 143 132 138 126 108 121 143 132 138 126 108 111 119 127 121 143 132 138 126 108 111 119 127
++138 126 108 111 119 127 138 126 108 111 119 127 138 126 108 112 123 108 112 123 108 112 123 108
++111 119 127 112 123 108 112 123 108 112 96 108 112 123 108 138 102 108 112 123 108 112 123 108
++112 96 108 138 126 108 112 123 108 112 96 108 112 123 108 112 96 108 112 123 108 112 96 108
++98 113 84 112 96 108 112 96 108 98 113 84 112 96 108 98 113 84 95 91 100 99 93 84
++99 93 84 88 83 88 88 83 74 88 83 74 88 83 74 88 73 62 75 72 67 88 73 62
++75 72 67 75 72 67 88 73 62 75 72 67 88 66 70 88 83 74 88 73 62 88 83 74
++88 83 74 88 66 70 88 83 74 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62
++75 63 62 88 73 62 75 73 58 88 73 62 75 56 53 75 73 58 75 56 53 75 73 58
++75 56 53 75 73 58 75 56 53 75 73 58 75 56 53 88 73 62 75 73 58 75 56 53
++75 73 58 75 56 53 75 73 58 75 56 53 88 73 62 75 56 53 88 73 62 75 73 58
++88 73 62 75 63 62 75 73 58 88 73 62 75 73 58 88 73 62 88 73 62 75 63 62
++88 73 62 75 73 58 75 63 62 75 73 58 75 73 58 75 56 53 88 73 62 75 56 53
++75 56 53 63 55 45 76 44 53 63 55 45 75 56 53 75 56 53 75 56 53 75 56 53
++75 56 53 88 73 62 75 56 53 75 56 53 75 56 53 75 73 36 88 73 62 88 73 62
++88 73 62 101 83 74 98 106 55 101 83 74 101 83 74 101 83 74 98 106 55 99 93 84
++117 114 76 99 93 84 98 113 84 117 99 86 117 114 76 117 99 86 117 114 76 138 126 108
++117 114 76 138 102 108 117 114 76 117 114 76 117 99 86 117 114 76 117 99 86 117 99 86
++117 114 76 101 83 74 117 99 86 101 83 74 101 83 74 98 106 55 120 63 71 88 73 62
++88 73 62 88 73 62 88 73 62 88 73 62 101 74 26 88 73 62 88 73 62 88 73 62
++
++47 44 42 51 49 42 53 46 48 53 46 48 48 44 48 48 44 48 48 44 48 47 49 42
++48 44 48 48 50 48 59 55 55 55 55 48 53 46 48 55 55 48 63 55 45 63 55 45
++63 55 45 75 56 53 88 73 62 88 73 62 88 73 62 101 83 74 101 74 26 101 83 74
++101 83 74 120 63 71 117 112 45 120 63 71 117 112 45 167 63 71 117 99 86 120 63 71
++117 114 76 168 102 88 120 63 71 117 114 76 167 63 71 117 112 45 167 63 71 117 112 45
++120 63 71 120 63 71 101 74 26 120 63 71 101 74 26 88 44 51 88 44 51 102 33 26
++76 46 20 76 18 19 76 46 20 76 18 19 59 36 42 76 18 19 76 18 19 59 36 42
++88 30 18 59 36 42 88 30 18 76 44 53 76 44 53 76 46 20 76 44 53 76 46 20
++76 44 53 76 44 53 75 56 53 76 44 53 75 56 53 76 44 53 75 56 53 76 46 20
++76 44 53 76 44 53 62 47 47 76 44 53 76 46 20 76 44 53 59 36 42 59 36 42
++76 44 53 76 46 20 59 36 42 76 46 20 76 44 53 76 46 20 76 44 53 76 44 53
++76 44 53 59 36 42 76 44 53 76 44 53 76 46 20 76 44 53 59 36 42 76 44 53
++59 36 42 76 44 53 59 36 42 76 44 53 60 49 42 76 44 53 60 49 42 76 44 53
++62 47 47 75 56 53 62 47 47 63 55 45 62 47 47 62 47 47 65 55 54 63 55 51
++65 55 54 65 55 54 65 55 54 65 55 54 65 63 61 75 56 53 65 63 61 65 63 61
++65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54
++65 63 61 75 56 53 65 55 54 65 55 54 63 55 51 63 55 51 63 55 51 65 55 54
++63 55 51 63 55 51 55 55 48 62 47 47 63 55 45 55 55 48 62 47 47 55 55 48
++62 47 47 62 47 47 62 47 47 63 55 51 63 55 51 65 55 54 65 55 54 65 55 54
++65 55 54 65 63 61 75 56 53 65 57 61 65 55 54 65 63 61 75 63 62 75 63 62
++75 72 67 75 72 67 75 72 67 88 66 70 75 72 67 88 66 70 75 81 76 88 69 84
++88 83 74 88 66 70 88 83 74 101 83 74 88 83 88 99 93 84 99 93 84 99 93 84
++112 96 108 99 93 84 112 96 108 117 99 86 112 96 108 117 99 86 112 123 108 112 123 108
++138 102 108 112 123 108 138 126 108 111 119 127 138 102 108 112 123 108 138 102 108 112 123 108
++112 96 108 112 96 108 112 123 108 117 99 86 112 96 108 117 99 86 112 96 108 117 99 86
++99 93 84 99 93 84 99 93 84 99 93 84 88 69 84 101 83 74 88 83 74 88 66 70
++75 72 67 88 66 70 75 72 67 88 66 70 75 72 67 75 72 67 75 72 67 88 66 70
++75 72 67 88 83 74 88 66 70 75 81 76 88 83 74 88 83 74 88 83 88 99 93 84
++88 83 74 88 83 88 88 83 74 88 83 74 88 83 74 88 69 84 88 83 74 88 66 70
++88 69 84 75 72 67 88 66 70 88 66 70 88 83 74 88 66 70 88 73 62 88 66 70
++88 73 62 88 66 70 88 66 70 88 73 62 88 66 70 75 56 53 88 44 51 75 56 53
++75 56 53 75 56 53 88 44 51 88 44 51 75 56 53 88 44 51 88 73 62 88 44 51
++88 66 70 88 44 51 88 73 62 75 56 53 88 66 70 88 66 70 88 66 70 88 66 70
++88 66 70 101 83 74 88 69 84 88 66 70 88 83 74 88 66 70 88 66 70 88 66 70
++75 72 67 88 66 70 75 63 62 75 72 67 75 63 62 75 63 62 75 63 62 75 63 62
++75 63 62 75 63 62 65 63 61 75 63 62 75 63 62 75 63 62 65 63 61 75 63 62
++65 63 61 65 63 61 65 55 54 65 63 61 75 63 62 65 63 61 64 70 48 75 56 53
++65 63 61 75 63 62 75 63 62 75 73 58 65 63 61 75 72 67 75 63 62 75 72 67
++75 73 58 75 63 62 55 39 37 49 13 16 49 13 16 49 13 16 76 18 19 76 18 19
++88 44 51 102 33 26 76 18 19 76 18 19 75 64 82 141 116 139 150 168 183 150 147 171
++150 147 171 166 176 200 226 221 247 240 251 247 235 238 247 231 239 247 221 238 247 226 221 247
++221 238 247 226 221 247 208 221 247 201 216 228 201 216 228 208 221 247 194 199 226 122 134 144
++32 40 58 7 10 17 12 18 30 23 20 24 22 23 31 22 25 24 23 20 24 23 18 22
++14 16 17 14 16 17 14 16 17 23 20 24 12 18 20 23 18 22 14 16 17 14 16 17
++23 20 24 26 24 32 26 30 28 26 24 32 22 25 24 26 30 28 33 30 32 33 30 32
++31 35 35 30 30 34 31 35 35 26 30 28 14 16 17 23 18 22 52 55 48 121 143 132
++185 202 202 233 241 227 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 240 251 247
++240 251 247 240 251 247 246 237 247 240 251 247 246 237 247 240 251 247 240 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 240 251 247 251 251 247 251 251 247 246 237 247 251 251 247 240 251 247
++246 237 247 240 251 247 251 251 247 240 251 247 235 238 247 232 215 228 201 216 228 235 238 247
++251 251 247 251 251 247 222 171 182 168 102 88 167 63 71 161 55 23 167 63 71 167 63 71
++167 63 71 176 103 41 157 148 53 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47
++219 175 47 157 148 53 214 214 134 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47
++219 175 47 219 175 47 214 214 134 219 175 47 219 175 47 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 219 175 47 214 214 134 214 214 134 219 175 47 214 214 134 219 175 47
++177 171 115 177 171 115 219 175 47 177 171 115 177 171 115 146 150 115 157 148 53 117 127 86
++117 99 86 117 99 86 98 113 84 117 99 86 112 96 108 112 123 108 112 96 108 112 123 108
++112 96 108 112 123 108 138 102 108 112 123 108 111 119 127 138 102 108 112 123 108 111 119 127
++112 123 108 111 119 127 112 96 108 111 119 127 112 96 108 94 105 108 112 96 108 112 123 108
++112 123 108 145 140 145 177 169 143 189 165 168 208 215 180 217 168 156 208 215 180 208 215 180
++217 168 156 177 169 143 168 146 127 168 146 127 168 102 88 138 126 108 168 102 88 177 171 115
++163 117 123 177 171 115 168 102 88 177 171 115 201 146 124 177 171 115 201 146 124 201 146 124
++177 171 115 201 146 124 177 171 115 201 146 124 177 171 115 201 146 124 201 146 124 168 146 127
++201 146 124 177 171 115 201 146 124 168 146 127 201 146 124 197 171 123 197 171 123 177 169 143
++201 146 124 189 165 168 201 146 124 177 169 143 201 146 124 177 169 143 217 168 156 189 165 168
++189 165 168 177 169 143 138 126 108 112 123 108 95 91 100 95 91 100 95 91 100 90 98 89
++95 91 100 90 98 89 88 83 88 88 83 88 88 83 88 75 81 82 88 83 88 88 83 88
++88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 74 88 83 88
++99 93 84 88 83 74 88 83 74 75 72 67 75 72 67 75 72 67 88 66 70 75 72 67
++75 72 67 75 63 62 75 72 67 65 63 61 65 63 61 65 57 61 59 55 55 55 55 48
++52 55 48 53 46 48 48 50 48 48 44 48 48 44 48 43 42 50 42 47 42 42 41 42
++42 47 42 42 41 42 42 41 42 42 41 42 42 41 42 47 44 42 48 50 48 48 50 48
++48 50 48 53 46 48 55 55 48 55 55 48 55 55 48 63 55 51 59 55 55 65 55 54
++65 55 54 63 55 51 65 63 61 63 55 51 59 55 55 63 55 51 59 55 55 59 55 55
++59 55 55 59 55 55 65 63 61 65 63 61 59 57 61 65 63 61 75 72 67 75 72 67
++75 81 82 75 81 82 75 81 82 88 83 88 90 98 89 90 98 89 95 91 100 98 113 84
++94 105 108 112 96 108 112 123 108 112 123 108 112 96 108 112 123 108 138 102 108 111 119 127
++112 123 108 138 126 108 111 119 127 138 126 108 138 126 108 119 117 138 138 126 108 111 119 127
++138 126 108 119 117 138 138 126 108 111 119 127 138 126 108 112 123 108 111 119 127 112 123 108
++112 123 108 111 119 127 112 123 108 112 96 108 111 119 127 112 123 108 111 119 127 112 123 108
++112 123 108 112 123 108 138 102 108 111 119 127 112 123 108 111 119 127 112 123 108 138 102 108
++112 123 108 111 119 127 112 123 108 112 123 108 112 96 108 112 123 108 112 96 108 98 113 84
++112 96 108 95 119 107 117 99 86 94 105 108 112 96 108 95 91 100 117 99 86 90 98 89
++99 93 84 88 83 74 88 83 74 75 81 76 88 83 74 88 66 70 88 83 74 75 72 67
++88 83 74 75 72 67 88 73 62 88 83 74 88 83 74 88 83 74 88 83 74 88 73 62
++88 83 74 88 73 62 88 83 74 88 73 62 88 83 74 88 73 62 88 73 62 88 73 62
++75 63 62 88 73 62 75 63 62 75 73 58 75 63 62 88 73 62 75 63 62 75 73 58
++75 63 62 75 73 58 75 56 53 75 73 58 75 63 62 75 56 53 75 73 58 75 63 62
++75 73 58 75 63 62 88 73 62 75 73 58 75 63 62 75 73 58 75 73 58 75 63 62
++75 73 58 88 73 62 88 73 62 75 73 58 88 73 62 75 73 58 88 73 62 75 72 67
++75 63 62 75 63 62 88 73 62 75 56 53 75 56 53 75 73 58 75 56 53 75 56 53
++75 56 53 75 56 53 63 55 45 75 56 53 63 55 45 75 56 53 75 73 36 75 56 53
++75 56 53 75 73 36 75 56 53 88 73 62 75 73 58 88 73 62 88 73 62 88 73 62
++81 96 56 101 83 74 88 83 74 101 83 74 87 99 72 101 83 74 99 93 84 99 93 84
++117 114 76 99 93 84 117 114 76 117 99 86 98 113 84 117 99 86 117 127 86 117 99 86
++117 127 86 117 99 86 117 127 86 117 99 86 117 99 86 117 114 76 117 99 86 117 114 76
++99 93 84 117 99 86 98 106 55 101 83 74 101 83 74 88 73 62 88 73 62 88 73 62
++88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62
++
++51 49 42 53 46 48 55 55 48 53 46 48 48 50 48 53 46 48 48 50 48 48 44 48
++48 50 48 48 50 48 52 55 48 59 55 55 55 55 48 63 55 51 63 55 51 63 55 45
++75 56 53 75 56 53 75 56 53 88 73 62 101 74 26 101 83 74 101 83 74 101 74 26
++120 63 71 117 112 45 120 63 71 117 114 76 120 63 71 117 99 86 117 112 45 168 102 88
++120 63 71 117 114 76 117 114 76 167 63 71 117 99 86 117 114 76 120 63 71 117 112 45
++167 63 71 117 112 45 120 63 71 120 63 71 122 49 24 88 44 51 102 33 26 88 44 51
++88 30 18 59 36 42 76 18 19 59 36 42 76 18 19 76 18 19 59 36 42 76 18 19
++59 36 42 76 46 20 88 44 51 59 36 42 76 18 19 76 44 53 76 46 20 76 44 53
++63 55 45 76 44 53 76 46 20 76 44 53 75 56 53 76 44 53 76 44 53 76 44 53
++76 44 53 63 55 45 88 44 51 60 49 42 76 44 53 76 46 20 76 44 53 76 46 20
++59 36 42 59 36 42 59 36 42 76 44 53 59 36 42 59 36 42 76 44 53 76 46 20
++76 44 53 76 46 20 88 44 51 59 36 42 88 44 51 59 36 42 76 44 53 76 46 20
++76 44 53 76 46 20 76 44 53 76 44 53 76 46 20 76 44 53 60 49 42 76 44 53
++60 49 42 76 44 53 62 47 47 75 56 53 62 47 47 75 56 53 62 47 47 65 55 54
++65 55 54 65 55 54 75 56 53 65 63 61 75 56 53 65 63 61 75 56 53 65 63 61
++65 55 54 75 56 53 65 63 61 65 55 54 65 63 61 65 55 54 65 63 61 65 55 54
++65 55 54 65 63 61 65 55 54 65 63 61 63 55 51 65 55 54 63 55 51 65 55 54
++63 55 51 55 55 48 63 55 45 55 55 48 62 47 47 63 55 51 55 55 48 63 55 51
++63 55 51 62 47 47 63 55 51 65 55 54 65 55 54 65 55 54 65 63 61 65 55 54
++65 63 61 65 55 54 65 63 61 75 56 53 65 63 61 75 63 62 75 63 62 75 63 62
++75 63 62 75 63 62 88 66 70 75 72 67 75 72 67 88 69 84 88 66 70 88 83 74
++88 69 84 88 83 74 88 83 74 101 83 74 88 83 88 101 83 74 95 91 100 99 93 84
++99 93 84 117 99 86 95 91 100 117 99 86 112 96 108 112 123 108 112 96 108 112 123 108
++138 102 108 111 119 127 138 102 108 112 123 108 138 102 108 112 123 108 112 123 108 138 102 108
++112 123 108 117 99 86 112 96 108 117 99 86 112 96 108 117 99 86 99 93 84 117 99 86
++95 91 100 99 93 84 99 93 84 88 69 84 101 83 74 88 69 84 88 83 74 88 66 70
++88 66 70 75 72 67 88 66 70 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 81 69 88 66 70 75 81 76 88 83 74 88 83 88 88 83 74 88 83 74
++88 83 88 88 83 74 88 83 74 88 83 74 88 69 84 88 83 74 88 66 70 88 83 74
++88 83 74 88 66 70 75 81 69 88 66 70 88 66 70 88 83 74 88 66 70 88 73 62
++88 66 70 88 73 62 88 66 70 88 66 70 88 44 51 88 73 62 88 73 62 88 44 51
++75 56 53 88 44 51 75 56 53 75 56 53 88 44 51 88 73 62 88 44 51 88 73 62
++88 44 51 88 73 62 88 66 70 101 60 73 88 44 51 88 73 62 101 60 73 88 66 70
++101 83 74 101 60 73 101 83 74 88 83 74 88 66 70 88 66 70 75 72 67 88 66 70
++88 66 70 75 72 67 88 66 70 75 63 62 75 59 67 75 72 67 75 63 62 75 72 67
++75 63 62 75 63 62 75 63 62 65 63 61 75 63 62 75 63 62 75 63 62 75 63 62
++75 63 62 75 63 62 75 73 58 75 63 62 65 63 61 75 56 53 65 63 61 75 63 62
++64 70 48 75 63 62 75 63 62 75 63 62 65 63 61 75 63 62 75 73 58 65 63 61
++75 63 62 75 73 58 65 55 54 55 39 37 49 13 16 49 13 16 76 18 19 102 33 26
++88 44 51 76 18 19 49 13 16 88 44 51 141 116 139 188 180 202 201 216 228 201 216 228
++221 238 247 231 239 247 240 251 247 231 239 247 221 238 247 231 239 247 231 239 247 221 238 247
++226 221 247 208 221 247 201 216 228 201 216 228 201 216 228 221 238 247 150 147 171 59 69 70
++22 23 31 12 18 20 22 23 31 23 20 24 23 18 22 14 16 17 14 16 17 7 12 13
++7 12 13 14 16 17 17 12 17 12 18 20 23 20 24 23 18 22 14 16 17 17 12 17
++15 22 17 23 20 24 23 20 24 33 30 30 22 25 24 26 30 28 33 30 32 30 30 34
++30 30 34 25 30 29 33 30 30 33 30 30 14 16 17 55 55 48 112 123 108 225 222 201
++251 251 247 251 251 247 251 251 247 251 251 247 240 251 247 231 239 247 221 238 247 231 239 247
++221 238 247 231 239 247 235 238 247 240 251 247 240 251 247 251 251 247 251 251 247 251 251 247
++240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++240 251 247 240 251 247 240 251 247 231 239 247 232 215 228 201 216 228 231 239 247 251 251 247
++251 251 247 246 237 247 222 171 182 167 63 71 167 63 71 122 49 24 167 63 71 167 63 71
++161 55 23 167 63 71 168 102 88 157 148 53 219 175 47 214 214 134 219 175 47 219 175 47
++157 148 53 219 175 47 219 175 47 219 175 47 177 171 115 219 175 47 157 148 53 219 175 47
++214 214 134 219 175 47 219 175 47 219 175 47 214 214 134 219 175 47 219 175 47 219 175 47
++214 214 134 219 175 47 214 214 134 219 175 47 219 175 47 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 177 171 115 177 171 115 177 171 115 157 148 53 146 150 115 138 126 108
++117 127 86 117 99 86 117 99 86 112 96 108 117 99 86 112 96 108 117 99 86 112 96 108
++112 123 108 112 96 108 111 119 127 112 123 108 112 96 108 112 123 108 111 119 127 112 96 108
++111 119 127 112 96 108 112 96 108 94 105 108 112 96 108 112 123 108 112 123 108 146 151 137
++189 165 168 189 165 168 208 215 180 222 171 182 208 215 180 189 165 168 217 168 156 177 169 143
++168 146 127 168 146 127 168 102 88 138 126 108 168 102 88 138 126 108 168 102 88 177 171 115
++168 102 88 168 146 127 168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 197 171 123
++201 146 124 177 171 115 201 146 124 177 171 115 201 146 124 201 146 124 177 171 115 201 146 124
++177 171 115 201 146 124 201 146 124 177 171 115 201 146 124 197 171 123 201 146 124 217 168 156
++197 171 123 217 168 156 197 171 123 217 168 156 177 169 143 201 146 124 197 171 123 177 169 143
++217 168 156 189 165 168 168 146 127 112 123 108 99 93 84 94 105 108 95 91 100 95 91 100
++90 98 89 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 75 81 82 88 83 74
++75 81 82 88 83 74 88 83 88 88 83 88 88 83 88 99 93 84 88 83 88 88 83 88
++88 83 74 88 83 88 88 83 74 88 83 74 75 72 67 75 72 67 75 72 67 75 63 62
++75 63 62 65 63 61 65 63 61 75 63 62 65 63 61 59 55 55 59 55 55 59 55 55
++53 46 48 54 57 61 48 50 48 48 50 48 43 42 50 42 41 42 43 42 50 42 41 42
++42 41 42 42 41 42 42 41 42 36 35 37 42 41 42 42 41 42 47 44 42 47 44 42
++48 50 48 51 49 42 53 46 48 53 46 48 55 55 48 55 55 48 63 55 51 59 55 55
++59 55 55 63 55 51 63 55 51 63 55 51 59 55 55 59 55 55 59 55 55 50 61 48
++59 55 55 50 61 48 59 55 55 59 55 55 65 63 61 65 63 61 59 69 70 75 72 67
++75 64 82 88 83 74 75 81 82 88 83 74 88 83 74 90 98 89 99 93 84 95 91 100
++98 113 84 112 96 108 98 113 84 112 96 108 112 123 108 138 102 108 112 123 108 112 123 108
++138 126 108 112 123 108 138 126 108 111 119 127 111 119 127 138 126 108 111 119 127 138 126 108
++112 123 108 112 123 108 111 119 127 138 126 108 111 119 127 138 126 108 111 119 127 138 126 108
++111 119 127 138 102 108 112 123 108 111 119 127 112 123 108 111 119 127 112 96 108 112 123 108
++112 96 108 112 96 108 112 123 108 112 123 108 112 123 108 138 102 108 112 123 108 111 119 127
++112 123 108 112 96 108 112 123 108 117 99 86 112 123 108 112 123 108 98 113 84 112 96 108
++112 123 108 94 105 108 112 96 108 98 113 84 112 96 108 98 113 84 95 91 100 95 91 100
++90 98 89 99 93 84 88 83 88 88 83 74 88 83 74 88 83 74 75 72 67 88 83 74
++75 72 67 88 83 74 75 81 69 88 73 62 88 83 74 88 73 62 88 83 74 88 83 74
++88 83 74 88 73 62 88 83 74 88 73 62 88 73 62 75 77 62 88 73 62 75 72 67
++88 73 62 75 63 62 75 63 62 75 73 58 75 63 62 75 63 62 75 56 53 75 63 62
++75 56 53 75 63 62 75 73 58 75 56 53 75 63 62 75 73 58 75 56 53 75 73 58
++75 56 53 75 73 58 75 63 62 88 73 62 75 73 58 88 73 62 75 63 62 75 73 58
++75 63 62 75 73 58 88 73 62 75 63 62 75 72 67 88 73 62 75 72 67 88 66 70
++75 72 67 88 73 62 75 63 62 75 73 58 75 73 58 75 63 62 75 56 53 75 73 58
++75 56 53 75 56 53 75 73 36 75 56 53 63 55 45 63 55 45 63 55 45 75 56 53
++75 56 53 88 73 62 75 56 53 75 73 58 75 56 53 75 63 62 75 73 58 88 73 62
++88 83 74 88 73 62 101 83 74 87 99 72 101 83 74 98 106 55 101 83 74 87 99 72
++99 93 84 117 99 86 98 113 84 117 99 86 117 99 86 112 123 108 117 99 86 117 127 86
++117 99 86 112 123 108 117 99 86 117 127 86 117 99 86 98 113 84 117 99 86 98 113 84
++117 99 86 99 93 84 117 99 86 117 99 86 98 106 55 101 83 74 101 83 74 88 73 62
++88 73 62 88 73 62 75 56 53 88 73 62 88 73 62 88 73 62 101 83 74 88 73 62
++
++55 55 48 55 55 48 55 55 48 53 46 48 53 46 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 53 46 48 55 55 48 53 46 48 63 55 51 63 55 51 63 55 51
++64 70 48 75 73 58 88 73 62 88 73 62 88 73 62 101 83 74 120 63 71 101 83 74
++117 112 45 120 63 71 117 112 45 120 63 71 117 112 45 167 63 71 117 99 86 117 114 76
++168 102 88 117 112 45 167 63 71 117 114 76 117 99 86 167 63 71 117 112 45 167 63 71
++117 112 45 120 63 71 120 63 71 101 74 26 120 63 71 101 74 26 88 44 51 76 46 20
++88 44 51 76 18 19 76 18 19 76 18 19 76 46 20 76 18 19 59 36 42 88 30 18
++59 36 42 88 30 18 59 36 42 76 46 20 88 44 51 76 44 53 76 44 53 76 44 53
++76 46 20 75 56 53 76 44 53 75 56 53 76 46 20 76 44 53 63 55 45 76 44 53
++63 55 45 88 44 51 62 47 47 88 44 51 76 46 20 62 47 47 76 44 53 59 36 42
++88 44 51 76 46 20 76 44 53 76 46 20 59 36 42 88 44 51 59 36 42 59 36 42
++76 44 53 76 44 53 76 44 53 88 44 51 76 44 53 76 44 53 76 44 53 59 36 42
++76 44 53 76 44 53 76 44 53 59 36 42 76 44 53 62 47 47 76 44 53 63 55 45
++76 44 53 60 49 42 63 55 45 62 47 47 63 55 45 62 47 47 65 55 54 75 56 53
++65 55 54 65 55 54 65 55 54 65 63 61 65 57 61 75 56 53 65 57 61 65 55 54
++65 55 54 65 63 61 75 56 53 65 57 61 75 56 53 65 63 61 65 55 54 65 63 61
++65 55 54 65 55 54 65 55 54 65 55 54 65 63 61 65 55 54 65 55 54 63 55 51
++63 55 51 63 55 45 62 47 47 63 55 45 55 55 48 63 55 51 63 55 51 63 55 51
++63 55 51 63 55 51 65 55 54 65 55 54 65 55 54 65 57 61 65 63 61 65 63 61
++75 56 53 65 63 61 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 72 67
++75 63 62 75 72 67 75 72 67 88 83 74 88 66 70 88 83 74 88 83 74 88 69 84
++88 83 74 88 83 74 88 69 84 88 83 74 101 83 74 95 91 100 101 83 74 95 91 100
++99 93 84 95 91 100 117 99 86 112 96 108 112 96 108 117 99 86 112 123 108 117 99 86
++112 123 108 138 102 108 112 123 108 138 102 108 112 123 108 138 102 108 112 123 108 112 96 108
++112 96 108 117 99 86 112 96 108 117 99 86 117 99 86 95 91 100 117 99 86 99 93 84
++99 93 84 101 83 74 88 69 84 101 83 74 88 66 70 88 66 70 88 66 70 75 72 67
++88 66 70 75 72 67 75 72 67 75 63 62 88 66 70 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 88 83 74 75 72 67 88 83 74 88 83 74 88 69 84
++88 83 74 88 69 84 88 83 74 88 66 70 88 83 74 88 66 70 88 83 74 88 66 70
++88 69 84 75 72 67 88 66 70 88 66 70 88 73 62 88 66 70 88 73 62 88 66 70
++88 73 62 88 66 70 88 66 70 88 73 62 88 66 70 88 73 62 88 44 51 88 73 62
++88 44 51 88 73 62 88 44 51 88 73 62 88 44 51 88 44 51 88 73 62 101 60 73
++88 73 62 88 44 51 88 73 62 88 44 51 88 73 62 101 60 73 88 66 70 101 83 74
++101 60 73 88 69 84 101 83 74 88 66 70 88 66 70 88 83 74 88 66 70 88 66 70
++88 83 74 88 66 70 88 66 70 75 72 67 88 66 70 75 72 67 75 72 67 75 63 62
++75 72 67 75 72 67 75 63 62 75 72 67 75 72 67 75 72 67 75 63 62 75 72 67
++75 63 62 75 63 62 75 63 62 75 63 62 65 63 61 75 63 62 75 56 53 65 63 61
++75 63 62 75 63 62 75 63 62 75 73 58 75 63 62 65 63 61 75 73 58 75 63 62
++75 73 58 75 72 67 75 63 62 75 63 62 76 44 53 88 30 18 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 112 96 108 222 171 182 232 215 228 246 237 247 251 251 247
++240 251 247 240 251 247 231 239 247 221 238 247 231 239 247 231 239 247 221 238 247 221 238 247
++201 216 228 194 199 226 194 199 226 201 216 228 226 221 247 194 199 226 94 105 108 12 18 30
++12 18 20 12 18 20 12 18 20 14 16 17 7 12 13 13 4 7 7 12 13 13 4 7
++7 12 13 7 12 13 14 16 17 23 18 22 23 20 24 12 18 20 23 18 22 15 22 17
++17 12 17 23 18 22 23 20 24 23 20 24 23 20 24 22 25 24 22 25 24 23 20 24
++23 18 22 22 25 24 22 25 24 33 30 30 36 35 37 112 123 108 185 202 202 246 237 247
++251 251 247 251 251 247 240 251 247 235 238 247 231 239 247 231 239 247 231 239 247 231 239 247
++235 238 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 240 251 247 240 251 247
++240 251 247 246 237 247 231 239 247 226 221 247 233 241 227 221 238 247 240 251 247 251 251 247
++246 237 247 232 215 228 195 113 123 168 102 88 167 63 71 167 63 71 167 63 71 161 55 23
++167 63 71 161 55 23 161 55 23 176 103 41 157 148 53 219 175 47 214 214 134 219 175 47
++219 175 47 219 175 47 157 148 53 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47
++219 175 47 219 175 47 214 214 134 219 175 47 219 175 47 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 219 175 47 214 214 134 214 214 134 219 175 47 214 214 134 219 175 47
++214 214 134 219 175 47 177 171 115 219 175 47 146 150 115 177 171 115 157 148 53 138 126 108
++117 127 86 117 99 86 98 113 84 95 91 100 117 99 86 112 123 108 112 96 108 112 123 108
++112 96 108 112 123 108 138 102 108 112 123 108 112 96 108 111 119 127 112 96 108 111 119 127
++112 96 108 112 123 108 112 96 108 111 119 127 112 123 108 145 140 145 166 156 164 208 215 180
++225 222 201 225 222 201 208 215 180 177 169 143 168 146 127 168 146 127 146 150 115 163 117 123
++168 102 88 138 126 108 168 102 88 138 126 108 168 102 88 146 150 115 168 102 88 168 146 127
++168 146 127 177 171 115 168 102 88 177 171 115 201 146 124 177 171 115 201 146 124 197 171 123
++177 169 143 201 146 124 197 171 123 201 146 124 197 171 123 197 171 123 201 146 124 197 171 123
++201 146 124 177 171 115 201 146 124 197 171 123 201 146 124 197 171 123 177 169 143 197 171 123
++201 146 124 177 169 143 201 146 124 201 146 124 201 146 124 177 169 143 217 168 156 177 169 143
++217 168 156 189 165 168 166 180 164 138 126 108 112 96 108 95 91 100 95 91 100 90 98 89
++88 83 88 88 83 88 88 83 88 90 98 89 88 83 88 75 81 82 88 83 88 75 81 82
++88 83 88 88 83 88 88 83 88 88 83 74 88 83 88 88 83 88 99 93 84 88 83 88
++88 83 74 88 83 88 88 83 74 75 72 67 75 72 67 75 72 67 75 63 62 65 63 61
++65 63 61 75 63 62 65 63 61 65 63 61 65 57 61 59 55 55 59 55 55 52 55 48
++59 55 55 48 44 48 48 44 48 43 42 50 42 47 42 43 42 50 42 41 42 42 41 42
++34 40 43 42 38 42 33 39 38 42 38 42 42 41 42 34 40 43 42 41 42 47 44 42
++47 44 42 48 50 48 51 49 42 51 49 42 53 46 48 55 55 48 55 55 48 55 55 48
++63 55 51 55 55 48 59 55 55 59 55 55 63 55 51 59 55 55 63 55 51 59 55 55
++55 55 48 59 55 55 59 55 55 65 63 61 65 63 61 65 63 61 75 63 62 75 72 67
++75 72 67 75 81 76 75 81 82 88 83 88 88 83 88 90 98 89 88 83 88 90 98 89
++112 96 108 90 98 89 112 96 108 112 96 108 112 123 108 112 96 108 112 123 108 138 102 108
++111 119 127 112 123 108 138 102 108 112 123 108 112 123 108 112 123 108 112 123 108 111 119 127
++138 126 108 121 143 132 145 140 145 146 151 137 145 140 145 150 144 154 166 156 164 166 174 181
++166 180 164 145 140 145 150 144 154 145 140 145 145 140 145 145 140 145 126 147 144 122 134 144
++138 126 108 111 119 127 112 123 108 138 102 108 112 123 108 112 123 108 112 96 108 112 123 108
++112 96 108 112 123 108 112 123 108 112 96 108 112 123 108 112 96 108 112 123 108 112 96 108
++98 113 84 112 123 108 112 96 108 94 105 108 117 99 86 94 105 108 117 99 86 90 98 89
++99 93 84 99 93 84 99 93 84 88 83 74 88 83 74 75 81 76 88 83 74 88 83 74
++88 73 62 75 81 69 88 83 74 88 66 70 88 83 74 88 83 74 88 73 62 88 83 74
++88 83 74 88 83 74 88 73 62 75 72 67 88 73 62 75 72 67 88 73 62 75 72 67
++75 63 62 75 73 58 75 63 62 75 63 62 75 56 53 75 73 58 75 63 62 75 73 58
++75 63 62 75 73 58 75 63 62 75 63 62 75 73 58 75 63 62 75 56 53 75 73 58
++75 63 62 75 73 58 75 73 58 75 63 62 88 73 62 75 63 62 75 73 58 88 73 62
++75 73 58 88 73 62 75 63 62 88 73 62 75 72 67 75 73 58 75 72 67 75 73 58
++75 72 67 88 73 62 75 72 67 75 72 67 88 73 62 75 63 62 75 73 58 75 63 62
++75 56 53 75 56 53 75 56 53 63 55 45 75 56 53 63 55 45 75 56 53 75 56 53
++64 70 48 75 56 53 75 73 58 88 73 62 75 73 58 88 73 62 75 73 58 88 73 62
++88 83 74 81 96 56 101 83 74 88 83 74 101 83 74 87 99 72 101 83 74 87 99 72
++99 93 84 117 114 76 99 93 84 117 114 76 117 99 86 117 99 86 117 127 86 112 123 108
++117 99 86 117 127 86 112 123 108 117 99 86 117 127 86 117 99 86 117 114 76 117 99 86
++98 113 84 117 99 86 101 83 74 101 83 74 101 83 74 101 83 74 88 73 62 88 73 62
++88 73 62 88 73 62 88 73 62 75 56 53 88 73 62 88 73 62 88 73 62 88 73 62
++
++53 46 48 53 46 48 59 55 55 59 55 55 55 55 48 53 46 48 53 46 48 48 50 48
++48 50 48 53 46 48 53 46 48 57 43 51 55 55 48 55 55 48 63 55 45 63 55 51
++75 56 53 75 56 53 75 73 58 88 73 62 88 73 62 101 74 26 88 73 62 98 106 55
++120 63 71 101 83 74 120 63 71 117 112 45 120 63 71 117 114 76 167 63 71 117 112 45
++120 63 71 117 99 86 117 114 76 167 63 71 117 112 45 168 102 88 120 63 71 117 112 45
++167 63 71 120 63 71 176 103 41 120 63 71 101 74 26 88 44 51 102 33 26 88 44 51
++88 30 18 76 18 19 76 46 20 76 18 19 59 36 42 76 18 19 88 30 18 59 36 42
++88 30 18 59 36 42 88 44 51 76 44 53 76 46 20 76 44 53 76 46 20 76 44 53
++76 44 53 88 44 51 76 44 53 76 44 53 76 44 53 63 55 45 88 44 51 63 55 45
++76 44 53 62 47 47 76 44 53 59 36 42 76 44 53 76 44 53 59 36 42 76 44 53
++59 36 42 59 36 42 59 36 42 76 44 53 59 36 42 59 36 42 88 44 51 59 36 42
++88 44 51 59 36 42 76 44 53 76 46 20 88 44 51 76 44 53 76 46 20 76 44 53
++76 44 53 76 44 53 76 44 53 88 44 51 63 55 45 76 44 53 76 46 20 76 44 53
++63 55 45 76 44 53 76 44 53 76 44 53 62 47 47 75 56 53 65 55 54 63 55 45
++65 55 54 65 55 54 65 55 54 75 56 53 65 55 54 65 63 61 65 55 54 65 63 61
++65 57 61 65 57 61 65 57 61 65 63 61 75 56 53 65 63 61 65 55 54 65 55 54
++75 56 53 65 57 61 75 56 53 65 55 54 63 55 51 65 55 54 65 55 54 63 55 51
++63 55 51 63 55 51 55 55 48 63 55 51 63 55 51 62 47 47 63 55 51 63 55 51
++65 55 54 65 55 54 65 55 54 65 63 61 75 56 53 65 57 61 75 56 53 75 63 62
++65 63 61 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 72 67 88 66 70
++75 72 67 88 66 70 88 83 74 88 66 70 88 83 88 88 83 74 88 69 84 101 83 74
++88 69 84 88 83 74 101 83 74 88 83 88 101 83 74 88 83 88 99 93 84 99 93 84
++117 99 86 95 91 100 117 99 86 112 123 108 117 99 86 112 123 108 112 96 108 138 102 108
++112 123 108 138 102 108 112 123 108 138 102 108 112 123 108 138 102 108 112 123 108 138 102 108
++112 123 108 112 96 108 117 99 86 99 93 84 112 96 108 117 99 86 99 93 84 95 91 100
++101 83 74 88 83 88 88 83 74 88 83 74 88 66 70 88 83 74 88 66 70 88 66 70
++88 66 70 75 63 62 88 66 70 88 66 70 75 72 67 75 63 62 75 72 67 75 63 62
++75 72 67 75 72 67 88 66 70 75 72 67 88 69 84 88 83 74 88 69 84 88 83 74
++88 83 74 88 83 74 88 66 70 88 83 74 88 66 70 88 83 74 88 66 70 88 66 70
++88 83 74 88 66 70 88 83 74 88 73 62 88 66 70 88 66 70 88 73 62 88 66 70
++88 73 62 88 66 70 88 73 62 101 60 73 88 73 62 88 44 51 88 73 62 88 44 51
++88 73 62 88 44 51 88 73 62 88 44 51 88 73 62 88 44 51 88 73 62 88 44 51
++88 73 62 101 60 73 88 73 62 101 60 73 101 83 74 101 60 73 101 60 73 101 83 74
++101 60 73 101 83 74 101 60 73 101 83 74 88 69 84 88 66 70 88 66 70 88 83 74
++88 66 70 88 66 70 88 83 74 88 66 70 88 66 70 88 66 70 88 66 70 88 66 70
++88 66 70 88 66 70 75 72 67 88 66 70 75 72 67 75 63 62 75 72 67 75 63 62
++75 72 67 75 63 62 75 72 67 75 63 62 75 63 62 65 63 61 75 73 58 75 63 62
++75 73 58 75 63 62 75 73 58 75 63 62 75 63 62 75 63 62 65 63 61 75 63 62
++75 63 62 75 63 62 75 72 67 75 63 62 88 66 70 88 44 51 59 36 42 76 18 19
++52 30 35 76 18 19 59 36 42 138 102 108 201 216 228 235 238 247 240 251 247 240 251 247
++240 251 247 240 251 247 231 239 247 231 239 247 231 239 247 221 238 247 208 221 247 194 199 226
++185 202 202 188 180 202 194 199 226 194 199 226 185 202 202 148 160 159 60 63 87 3 4 9
++3 4 9 7 10 17 7 12 13 7 12 13 3 4 9 7 12 13 13 4 7 7 12 13
++7 12 13 14 16 17 17 12 17 14 16 17 17 12 17 17 12 17 14 16 17 14 16 17
++14 16 17 17 12 17 23 20 24 23 20 24 22 25 24 23 18 22 17 12 17 6 15 6
++7 12 13 22 25 24 22 24 13 42 47 42 99 93 84 166 174 181 251 251 247 251 251 247
++240 251 247 235 238 247 240 251 247 240 251 247 240 251 247 251 251 247 240 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 240 251 247 240 251 247 240 251 247 240 251 247 231 239 247 231 239 247 235 238 247
++235 238 247 231 239 247 221 238 247 232 215 228 221 238 247 246 237 247 251 251 247 251 251 247
++232 215 228 217 168 156 195 113 123 168 102 88 167 63 71 167 63 71 167 63 71 167 63 71
++161 55 23 167 63 71 161 55 23 167 63 71 168 102 88 219 175 47 214 214 134 219 175 47
++177 171 115 219 175 47 177 171 115 219 175 47 157 148 53 219 175 47 177 171 115 219 175 47
++214 214 134 219 175 47 219 175 47 214 214 134 219 175 47 219 175 47 214 214 134 219 175 47
++214 214 134 219 175 47 214 214 134 219 175 47 219 175 47 214 214 134 219 175 47 214 214 134
++214 214 134 219 175 47 177 171 115 177 171 115 177 171 115 157 148 53 146 150 115 138 126 108
++138 126 108 117 127 86 112 96 108 117 99 86 117 99 86 98 113 84 112 96 108 117 99 86
++112 123 108 112 96 108 111 119 127 112 96 108 112 123 108 112 96 108 112 96 108 112 123 108
++111 119 127 119 117 138 145 140 145 146 151 137 189 165 168 208 215 180 222 171 182 225 222 201
++189 165 168 217 168 156 168 146 127 168 146 127 138 126 108 168 102 88 138 126 108 168 102 88
++117 127 86 168 102 88 138 126 108 157 148 53 168 102 88 146 150 115 168 102 88 177 171 115
++168 102 88 168 146 127 201 146 124 168 146 127 201 146 124 201 146 124 177 169 143 197 171 123
++201 146 124 177 169 143 197 171 123 197 171 123 177 169 143 201 146 124 197 171 123 177 171 115
++201 146 124 197 171 123 201 146 124 197 171 123 177 169 143 201 146 124 197 171 123 217 168 156
++201 146 124 197 171 123 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 217 168 156
++177 169 143 208 215 180 217 168 156 168 146 127 112 123 108 90 98 89 90 98 89 95 91 100
++90 98 89 88 83 88 75 81 82 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88
++88 83 74 88 83 88 88 83 74 88 83 88 88 83 88 88 83 74 88 83 88 88 83 74
++88 83 88 88 69 84 88 83 74 88 83 74 75 72 67 75 72 67 75 72 67 75 63 62
++75 63 62 65 63 61 65 63 61 65 63 61 65 55 54 59 55 55 59 55 55 59 55 55
++59 55 55 48 50 48 48 50 48 48 50 48 43 42 50 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 38 42 42 41 42 36 35 37 42 41 42 42 41 42 42 41 42
++47 44 42 48 44 48 48 44 48 53 46 48 53 46 48 53 46 48 59 55 55 59 55 55
++55 55 48 63 55 51 63 55 51 55 55 48 59 55 55 63 55 51 59 55 55 59 55 55
++59 55 55 59 55 55 53 63 61 59 57 61 65 63 61 65 63 61 75 72 67 59 69 70
++75 72 67 75 81 76 75 81 82 88 83 74 88 83 74 88 83 88 99 93 84 99 93 84
++99 93 84 98 113 84 112 96 108 98 113 84 112 96 108 112 123 108 112 96 108 112 123 108
++112 96 108 112 123 108 112 96 108 112 123 108 119 117 138 121 143 132 145 140 145 150 144 154
++148 160 159 166 180 164 166 174 181 185 202 202 185 202 202 185 202 202 225 222 201 232 215 228
++201 216 228 185 202 202 185 202 202 185 202 202 185 202 202 188 180 202 185 202 202 166 174 181
++166 174 181 166 180 164 148 160 159 119 117 138 111 119 127 111 119 127 112 123 108 112 96 108
++112 123 108 112 96 108 112 123 108 112 123 108 112 123 108 112 123 108 112 123 108 112 123 108
++112 96 108 94 105 108 117 99 86 112 123 108 94 105 108 117 99 86 94 105 108 99 93 84
++99 93 84 90 98 89 99 93 84 88 83 88 88 83 88 88 83 74 88 83 74 75 81 76
++88 83 74 88 83 74 75 72 67 88 83 74 75 81 69 88 83 74 88 83 74 88 83 74
++88 83 74 88 73 62 88 83 74 88 83 74 75 72 67 75 77 62 75 72 67 75 72 67
++88 73 62 75 63 62 75 73 58 75 73 58 75 73 58 65 63 61 75 63 62 75 56 53
++75 73 58 75 63 62 75 73 58 75 63 62 75 73 58 75 63 62 75 73 58 75 63 62
++75 73 58 75 63 62 75 63 62 75 73 58 75 63 62 75 73 58 75 63 62 75 73 58
++75 63 62 75 72 67 75 72 67 88 73 62 75 72 67 88 73 62 88 66 70 75 72 67
++88 66 70 75 72 67 75 72 67 88 73 62 75 72 67 88 73 62 75 72 67 75 73 58
++75 73 58 75 73 58 64 70 48 75 56 53 75 56 53 63 55 45 75 56 53 63 55 45
++75 56 53 75 56 53 75 56 53 75 73 58 75 56 53 75 63 62 88 73 62 88 73 62
++88 73 62 101 83 74 88 83 74 88 83 74 87 99 72 101 83 74 87 99 72 99 93 84
++99 93 84 98 113 84 117 99 86 98 113 84 98 113 84 112 123 108 117 99 86 112 123 108
++117 127 86 112 123 108 117 99 86 117 127 86 117 99 86 112 123 108 117 99 86 98 113 84
++117 99 86 99 93 84 98 113 84 117 99 86 99 93 84 87 99 72 101 83 74 88 73 62
++88 73 62 75 63 62 75 73 36 75 73 58 75 73 58 88 73 62 88 73 62 88 73 62
++
++55 55 48 55 55 48 59 55 55 53 46 48 59 55 55 53 46 48 52 55 48 48 50 48
++48 50 48 53 46 48 53 46 48 55 55 48 53 46 48 63 55 51 63 55 51 64 70 48
++65 55 54 75 73 58 88 73 62 75 56 53 88 73 62 101 83 74 101 83 74 120 63 71
++98 106 55 101 74 26 120 63 71 117 112 45 120 63 71 117 112 45 117 99 86 117 99 86
++176 103 41 117 99 86 120 63 71 117 112 45 168 102 88 117 112 45 167 63 71 117 114 76
++120 63 71 117 112 45 120 63 71 122 49 24 120 63 71 122 49 24 88 44 51 102 33 26
++88 44 51 88 30 18 76 18 19 59 36 42 88 30 18 59 36 42 76 18 19 88 44 51
++76 18 19 76 44 53 88 30 18 76 44 53 76 44 53 88 44 51 76 44 53 76 46 20
++76 44 53 76 46 20 75 56 53 76 44 53 75 56 53 63 55 45 75 56 53 62 47 47
++76 44 53 62 47 47 76 44 53 76 44 53 60 49 42 76 44 53 76 46 20 76 44 53
++59 36 42 88 44 51 59 36 42 76 46 20 59 36 42 88 44 51 55 39 37 76 46 20
++59 36 42 88 44 51 88 44 51 76 44 53 88 44 51 76 44 53 76 44 53 76 44 53
++76 46 20 76 44 53 76 44 53 76 44 53 76 44 53 63 55 45 76 44 53 62 47 47
++76 44 53 63 55 45 62 47 47 63 55 45 62 47 47 63 55 45 62 47 47 75 56 53
++63 55 51 65 55 54 65 55 54 65 55 54 65 55 54 75 56 53 65 57 61 65 57 61
++75 56 53 65 57 61 75 56 53 65 63 61 65 57 61 75 56 53 65 55 54 65 63 61
++65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 63 55 51 63 55 51
++62 47 47 63 55 51 63 55 45 63 55 45 63 55 51 63 55 51 63 55 51 65 55 54
++65 55 54 65 55 54 65 55 54 75 56 53 65 63 61 75 63 62 75 63 62 75 63 62
++75 63 62 75 63 62 75 59 67 75 72 67 75 72 67 75 72 67 75 72 67 88 66 70
++75 81 76 88 66 70 88 83 74 88 69 84 88 83 74 88 83 88 101 83 74 88 83 88
++88 83 88 101 83 74 88 83 88 99 93 84 88 83 88 99 93 84 101 83 74 95 91 100
++99 93 84 117 99 86 95 91 100 117 99 86 112 96 108 117 99 86 112 123 108 117 99 86
++112 123 108 112 96 108 112 123 108 138 102 108 112 123 108 112 96 108 117 99 86 112 96 108
++117 99 86 117 99 86 112 96 108 117 99 86 99 93 84 99 93 84 99 93 84 101 83 74
++99 93 84 88 69 84 101 83 74 88 66 70 88 66 70 88 66 70 75 72 67 88 66 70
++75 63 62 75 63 62 88 66 70 75 63 62 75 63 62 75 72 67 88 66 70 75 72 67
++75 63 62 75 72 67 75 72 67 88 83 74 75 72 67 88 83 74 88 83 74 88 69 84
++88 83 74 88 66 70 88 69 84 75 72 67 88 66 70 88 83 74 88 66 70 88 83 74
++88 66 70 88 73 62 88 66 70 88 73 62 88 66 70 88 73 62 88 66 70 88 73 62
++88 66 70 88 73 62 88 66 70 88 73 62 88 73 62 101 60 73 88 73 62 88 44 51
++88 73 62 88 44 51 88 73 62 88 44 51 101 60 73 88 73 62 120 63 71 88 73 62
++101 60 73 88 73 62 101 60 73 88 73 62 101 60 73 101 83 74 101 60 73 101 83 74
++101 60 73 88 69 84 101 83 74 88 66 70 88 66 70 101 83 74 88 69 84 101 83 74
++88 69 84 88 83 74 88 66 70 88 83 74 88 83 74 88 83 74 88 83 74 88 83 74
++88 83 74 75 81 76 88 66 70 88 83 74 88 66 70 75 72 67 88 66 70 75 72 67
++75 72 67 75 72 67 75 63 62 75 72 67 75 63 62 75 63 62 75 73 58 75 63 62
++75 73 58 75 63 62 75 73 58 65 63 61 75 63 62 75 63 62 75 63 62 75 72 67
++75 72 67 75 72 67 75 63 62 88 66 70 88 66 70 88 44 51 88 44 51 76 18 19
++49 13 16 76 18 19 59 36 42 163 117 123 235 238 247 240 251 247 240 251 247 221 238 247
++208 221 247 201 216 228 201 216 228 208 221 247 201 216 228 201 216 228 185 202 202 166 176 200
++166 176 200 166 176 200 185 202 202 166 176 200 131 144 168 111 122 142 59 69 70 22 23 31
++7 10 17 3 4 9 3 3 1 3 4 9 3 3 1 13 4 7 3 4 9 7 12 13
++13 4 7 3 4 9 3 4 9 7 12 13 13 4 7 14 16 17 7 12 13 15 17 7
++14 16 17 14 16 17 17 12 17 17 12 17 15 17 7 13 4 7 3 3 1 15 17 7
++23 18 22 22 25 24 33 30 30 75 81 69 146 162 145 233 241 227 251 251 247 251 251 247
++240 251 247 240 251 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 240 251 247 240 251 247 246 237 247 231 239 247 231 239 247 233 241 227
++226 221 247 233 241 227 226 221 247 231 239 247 235 238 247 231 239 247 221 238 247 226 221 247
++231 239 247 235 238 247 240 251 247 240 251 247 240 251 247 240 251 247 235 238 247 240 251 247
++231 239 247 231 239 247 231 239 247 231 239 247 221 238 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 221 238 247 233 241 227 231 239 247 251 251 247 251 251 247 246 237 247
++232 215 228 195 113 123 167 63 71 168 102 88 195 113 123 167 63 71 167 63 71 167 63 71
++167 63 71 161 55 23 167 63 71 161 55 23 161 55 23 168 102 88 219 175 47 177 171 115
++219 175 47 219 175 47 219 175 47 157 148 53 219 175 47 157 148 53 219 175 47 219 175 47
++219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 214 214 134
++219 175 47 214 214 134 219 175 47 214 214 134 214 214 134 219 175 47 214 214 134 219 175 47
++214 214 134 219 175 47 214 214 134 157 148 53 177 171 115 177 171 115 157 148 53 146 150 115
++117 114 76 117 127 86 117 99 86 117 99 86 94 105 108 117 99 86 112 96 108 98 113 84
++112 96 108 117 99 86 112 96 108 111 119 127 119 117 138 150 144 154 148 160 159 166 174 181
++189 165 168 166 174 181 208 215 180 188 180 202 225 222 201 225 222 201 208 215 180 189 165 168
++168 146 127 168 146 127 138 126 108 168 102 88 138 126 108 157 148 53 168 102 88 138 126 108
++168 102 88 146 150 115 168 102 88 138 126 108 168 102 88 146 150 115 168 146 127 168 102 88
++177 171 115 168 146 127 201 146 124 177 171 115 168 146 127 197 171 123 201 146 124 177 169 143
++217 168 156 201 146 124 197 171 123 217 168 156 197 171 123 197 171 123 177 169 143 201 146 124
++197 171 123 197 171 123 177 169 143 201 146 124 217 168 156 197 171 123 217 168 156 168 146 127
++197 171 123 177 169 143 201 146 124 177 169 143 201 146 124 201 146 124 177 169 143 201 146 124
++177 169 143 217 168 156 189 165 168 189 165 168 146 150 115 95 91 100 88 83 88 95 91 100
++88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 74
++88 83 88 88 83 88 88 83 88 87 99 72 88 83 88 88 83 74 88 83 88 88 83 88
++88 83 88 88 83 74 88 83 74 75 72 67 75 72 67 75 72 67 75 72 67 75 63 62
++65 63 61 75 63 62 65 63 61 65 63 61 65 55 54 59 57 61 59 55 55 59 55 55
++48 50 48 48 50 48 48 50 48 48 44 48 43 42 50 42 47 42 43 42 50 42 47 42
++42 41 42 42 41 42 34 40 43 42 38 42 33 39 38 42 38 42 42 41 42 42 41 42
++47 44 42 48 44 48 51 49 42 53 46 48 48 50 48 55 55 48 53 46 48 55 55 48
++63 55 51 55 55 48 63 55 51 59 55 55 55 55 48 59 55 55 55 55 48 63 55 51
++63 55 51 59 55 55 59 55 55 65 63 61 65 63 61 59 69 70 65 63 61 75 72 67
++75 81 76 75 72 67 75 81 82 88 83 74 78 98 90 88 83 88 99 93 84 95 91 100
++99 93 84 112 96 108 98 113 84 112 96 108 112 123 108 112 96 108 112 123 108 112 96 108
++112 123 108 112 123 108 111 119 127 145 140 145 150 144 154 189 165 168 166 174 181 185 202 202
++185 202 202 185 202 202 232 215 228 225 222 201 201 216 228 225 222 201 201 216 228 221 238 247
++233 241 227 201 216 228 232 215 228 201 216 228 233 241 227 201 216 228 201 216 228 201 216 228
++201 216 228 166 174 181 166 180 164 148 160 159 148 160 159 166 156 164 148 160 159 146 151 137
++111 119 127 112 123 108 112 96 108 112 96 108 112 96 108 112 123 108 112 96 108 112 123 108
++112 123 108 112 123 108 112 96 108 94 105 108 117 99 86 94 105 108 117 99 86 95 91 100
++99 93 84 99 93 84 99 93 84 99 93 84 88 83 74 88 83 88 88 83 74 88 83 74
++88 83 74 75 81 76 88 83 74 88 83 74 88 83 74 88 83 74 88 83 74 88 83 74
++75 81 69 88 83 74 75 81 76 88 73 62 75 72 67 75 81 69 75 72 67 88 73 62
++75 63 62 75 73 58 75 63 62 75 63 62 75 73 58 75 56 53 75 73 58 65 63 61
++75 63 62 64 70 48 65 63 61 64 70 48 75 63 62 75 56 53 75 73 58 75 63 62
++75 73 58 75 73 58 75 63 62 75 63 62 75 73 58 75 63 62 75 73 58 75 73 58
++88 73 62 75 72 67 88 73 62 75 72 67 88 66 70 88 83 74 75 72 67 88 66 70
++75 81 69 88 66 70 88 73 62 75 72 67 88 66 70 75 72 67 75 72 67 88 73 62
++75 63 62 75 63 62 75 56 53 75 56 53 64 70 48 75 56 53 64 70 48 75 56 53
++64 70 48 75 73 58 75 73 58 75 63 62 75 73 58 75 73 58 75 73 58 88 73 62
++88 83 74 88 83 74 88 83 74 87 99 72 101 83 74 88 83 74 101 83 74 99 93 84
++99 93 84 98 113 84 99 93 84 98 113 84 117 99 86 112 123 108 117 99 86 112 123 108
++117 99 86 112 123 108 117 127 86 112 96 108 117 127 86 117 99 86 98 113 84 117 99 86
++98 113 84 117 99 86 99 93 84 99 93 84 101 83 74 101 83 74 87 99 72 88 73 62
++88 73 62 75 73 58 75 73 58 75 56 53 88 73 62 88 73 62 75 63 62 88 73 62
++
++53 46 48 55 55 48 63 55 51 59 55 55 53 46 48 59 55 55 48 50 48 48 50 48
++48 50 48 48 50 48 53 46 48 53 46 48 55 55 48 55 55 48 63 55 51 63 55 51
++75 56 53 75 56 53 88 73 62 88 73 31 88 73 62 88 73 62 101 83 74 101 74 26
++101 83 74 120 63 71 117 112 45 120 63 71 117 99 86 120 63 71 117 112 45 120 63 71
++117 99 86 167 63 71 117 112 45 168 102 88 120 63 71 117 99 86 176 103 41 120 63 71
++176 103 41 167 63 71 117 112 45 120 63 71 120 63 71 88 44 51 101 74 26 88 44 51
++102 33 26 59 36 42 88 30 18 88 30 18 76 18 19 88 30 18 59 36 42 88 30 18
++59 36 42 76 46 20 76 44 53 88 30 18 59 36 42 76 46 20 76 44 53 88 44 51
++75 56 53 76 44 53 76 44 53 76 46 20 76 44 53 76 44 53 62 47 47 76 44 53
++63 55 45 76 44 53 76 44 53 76 46 20 76 44 53 76 44 53 76 44 53 59 36 42
++76 46 20 76 44 53 59 36 42 76 44 53 59 36 42 76 46 20 76 44 53 59 36 42
++88 44 51 59 36 42 76 44 53 76 46 20 88 44 51 76 44 53 88 44 51 76 44 53
++76 44 53 75 56 53 88 44 51 63 55 45 88 44 51 63 55 45 76 44 53 60 49 42
++76 44 53 76 44 53 76 44 53 62 47 47 75 56 53 62 47 47 75 56 53 63 55 51
++65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 57 61 75 56 53
++65 57 61 65 63 61 65 57 61 75 56 53 65 63 61 65 55 54 65 57 61 65 55 54
++75 56 53 65 57 61 75 56 53 65 55 54 65 55 54 65 55 54 63 55 51 65 55 54
++63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 65 55 54 65 55 54 65 55 54
++65 55 54 65 57 61 75 56 53 65 63 61 75 63 62 75 63 62 75 63 62 75 63 62
++75 63 62 75 72 67 75 72 67 75 59 67 75 72 67 88 66 70 75 72 67 88 66 70
++88 83 74 88 69 84 88 83 74 88 83 88 101 83 74 88 83 88 99 93 84 88 83 88
++99 93 84 99 93 84 101 83 74 88 83 88 101 83 74 88 83 88 99 93 84 99 93 84
++117 99 86 95 91 100 117 99 86 112 96 108 117 99 86 112 123 108 112 96 108 138 102 108
++112 123 108 138 102 108 112 123 108 112 96 108 112 96 108 117 99 86 112 96 108 117 99 86
++112 96 108 117 99 86 99 93 84 99 93 84 95 91 100 101 83 74 117 99 86 88 69 84
++101 83 74 88 83 74 88 66 70 88 66 70 88 66 70 88 66 70 88 66 70 75 63 62
++75 63 62 75 63 62 88 66 70 75 63 62 88 66 70 75 63 62 75 63 62 75 63 62
++75 63 62 75 72 67 75 72 67 88 66 70 75 81 76 88 66 70 88 66 70 75 72 67
++88 66 70 75 72 67 88 66 70 88 83 74 88 66 70 88 66 70 88 73 62 88 66 70
++88 73 62 88 66 70 88 73 62 88 66 70 88 66 70 88 66 70 88 73 62 101 60 73
++88 73 62 88 66 70 88 73 62 101 60 73 88 73 62 88 44 51 88 73 62 101 60 73
++88 73 62 88 44 51 101 60 73 88 73 62 120 63 71 88 73 62 101 60 73 88 73 62
++101 60 73 101 60 73 88 73 62 101 60 73 101 83 74 101 60 73 101 83 74 101 60 73
++101 83 74 101 60 73 101 83 74 88 69 84 101 83 74 88 69 84 101 83 74 88 69 84
++101 83 74 101 83 74 101 83 74 88 83 88 101 83 74 88 69 84 88 83 74 88 69 84
++88 83 74 88 69 84 88 83 74 88 83 74 88 83 74 88 66 70 88 83 74 88 66 70
++88 66 70 88 66 70 75 72 67 88 66 70 75 72 67 75 63 62 75 72 67 75 63 62
++75 73 58 75 63 62 75 63 62 75 73 58 65 63 61 75 63 62 75 72 67 75 72 67
++75 72 67 88 66 70 75 72 67 75 72 67 75 63 62 88 66 70 88 44 51 88 44 51
++76 18 19 49 13 16 88 44 51 166 156 164 246 237 247 246 237 247 221 238 247 201 216 228
++185 202 202 166 176 200 185 202 202 185 202 202 194 199 226 185 202 202 166 174 181 150 168 183
++166 176 200 166 176 200 185 202 202 150 147 171 111 119 127 98 121 131 77 90 100 60 63 87
++43 42 50 7 10 17 3 3 1 3 3 1 3 4 9 3 3 1 3 4 9 3 3 1
++3 4 9 3 3 1 3 3 1 3 4 9 7 12 13 13 4 7 7 12 13 14 16 17
++17 12 17 14 16 17 13 4 7 3 4 9 3 3 1 3 3 1 7 12 13 22 25 24
++25 30 29 25 30 29 75 81 69 145 140 145 225 222 201 251 251 247 240 251 247 231 239 247
++226 221 247 231 239 247 221 238 247 221 238 247 231 239 247 231 239 247 231 239 247 233 241 227
++226 221 247 221 238 247 232 215 228 201 216 228 232 215 228 201 216 228 194 199 226 185 202 202
++185 202 202 185 202 202 185 202 202 185 202 202 201 216 228 185 202 202 194 199 226 185 202 202
++201 216 228 201 216 228 226 221 247 226 221 247 231 239 247 231 239 247 231 239 247 226 221 247
++221 238 247 226 221 247 221 238 247 226 221 247 231 239 247 231 239 247 231 239 247 240 251 247
++231 239 247 233 241 227 231 239 247 235 238 247 240 251 247 251 251 247 251 251 247 232 215 228
++189 165 168 195 113 123 168 102 88 167 63 71 167 63 71 195 113 123 195 113 123 167 63 71
++167 63 71 167 63 71 161 55 23 167 63 71 122 49 24 176 103 41 157 148 53 214 214 134
++219 175 47 177 171 115 219 175 47 177 171 115 219 175 47 219 175 47 177 171 115 219 175 47
++219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134
++219 175 47 219 175 47 214 214 134 219 175 47 219 175 47 214 214 134 219 175 47 214 214 134
++219 175 47 177 171 115 214 214 134 219 175 47 177 171 115 177 171 115 146 150 115 157 148 53
++138 126 108 117 127 86 112 123 108 117 99 86 99 93 84 112 96 108 98 113 84 112 96 108
++112 96 108 111 119 127 121 143 132 166 156 164 188 180 202 185 202 202 225 222 201 201 216 228
++225 222 201 232 215 228 232 215 228 225 222 201 208 215 180 189 165 168 168 146 127 168 146 127
++138 126 108 146 150 115 168 102 88 146 150 115 168 102 88 138 126 108 168 102 88 146 150 115
++168 102 88 146 150 115 168 102 88 177 171 115 168 102 88 168 146 127 168 102 88 177 171 115
++168 102 88 168 146 127 168 102 88 168 146 127 201 146 124 177 169 143 201 146 124 197 171 123
++201 146 124 197 171 123 177 169 143 201 146 124 177 169 143 201 146 124 217 168 156 201 146 124
++177 169 143 197 171 123 201 146 124 197 171 123 197 171 123 177 169 143 197 171 123 197 171 123
++201 146 124 177 169 143 201 146 124 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124
++197 171 123 189 165 168 214 214 134 189 165 168 168 146 127 112 96 108 99 93 84 88 83 88
++90 98 89 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88
++88 83 88 88 83 74 88 83 88 88 83 88 88 83 74 88 83 88 99 93 84 88 83 74
++88 83 88 88 83 88 88 83 74 88 83 74 88 73 62 75 72 67 75 63 62 75 63 62
++65 63 61 75 63 62 65 63 61 65 55 54 59 57 61 59 55 55 59 55 55 59 55 55
++54 57 61 53 46 48 48 50 48 43 42 50 48 44 48 42 41 42 42 41 42 43 42 50
++42 41 42 42 41 42 42 41 42 36 35 37 42 41 42 36 35 37 36 35 37 42 41 42
++47 44 42 48 50 48 47 44 42 53 46 48 53 46 48 53 46 48 55 55 48 53 46 48
++63 55 51 55 55 48 55 55 48 55 55 48 63 55 51 55 55 48 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 65 63 61 65 63 61 75 63 62 59 69 70 75 72 67
++75 72 67 75 81 76 75 81 76 75 81 82 88 83 74 88 83 74 88 83 88 99 93 84
++95 91 100 99 93 84 95 91 100 99 93 84 112 96 108 98 113 84 112 96 108 94 105 108
++138 126 108 145 140 145 166 180 164 189 165 168 185 202 202 225 222 201 201 216 228 225 222 201
++232 215 228 201 216 228 225 222 201 201 216 228 201 216 228 201 216 228 233 241 227 201 216 228
++232 215 228 201 216 228 233 241 227 201 216 228 221 238 247 201 216 228 233 241 227 201 216 228
++185 202 202 166 174 181 166 174 181 166 174 181 185 202 202 194 199 226 225 222 201 185 202 202
++189 165 168 150 144 154 112 123 108 112 123 108 112 123 108 112 96 108 94 105 108 112 96 108
++112 123 108 112 96 108 95 119 107 117 99 86 112 123 108 94 105 108 98 113 84 112 96 108
++98 113 84 95 91 100 99 93 84 90 98 89 99 93 84 88 83 88 88 83 88 88 83 74
++88 83 88 88 83 74 88 83 74 88 83 74 88 83 74 88 83 74 88 83 74 88 83 74
++88 83 74 88 83 74 88 66 70 75 81 76 88 73 62 75 72 67 75 73 58 75 72 67
++75 63 62 75 73 58 75 63 62 75 73 58 65 63 61 75 73 58 75 63 62 75 63 62
++75 73 58 65 63 61 75 73 58 75 56 53 65 63 61 75 73 58 75 63 62 75 73 58
++75 63 62 75 63 62 75 73 58 75 56 53 75 63 62 75 63 62 75 73 58 75 63 62
++75 72 67 88 73 62 75 72 67 88 66 70 75 81 69 88 66 70 88 83 74 75 72 67
++88 83 74 75 72 67 88 83 74 75 72 67 88 83 74 75 72 67 88 83 74 75 72 67
++75 72 67 75 63 62 75 73 58 75 63 62 75 63 62 75 56 53 75 56 53 75 56 53
++75 56 53 75 63 62 75 56 53 75 73 58 75 56 53 75 63 62 88 73 62 75 77 62
++88 73 62 88 83 74 88 73 62 88 83 74 88 83 74 87 99 72 88 83 74 87 99 72
++99 93 84 99 93 84 98 113 84 112 96 108 98 113 84 117 99 86 117 127 86 112 123 108
++117 127 86 112 123 108 117 127 86 112 123 108 117 99 86 112 123 108 117 99 86 98 113 84
++117 99 86 99 93 84 99 93 84 99 93 84 99 93 84 88 83 74 88 83 74 88 83 74
++75 77 62 88 73 62 75 73 58 75 73 58 75 56 53 88 73 62 75 63 62 88 73 62
++
++55 55 48 63 55 51 63 55 51 59 55 55 52 55 48 53 46 48 54 57 61 48 50 48
++59 55 55 48 50 48 53 46 48 55 55 48 59 55 55 63 55 51 63 55 51 65 55 54
++75 56 53 75 73 58 75 73 58 88 73 62 88 73 62 101 83 74 101 74 26 101 83 74
++120 63 71 117 112 45 120 63 71 101 74 26 120 63 71 176 103 41 120 63 71 117 112 45
++167 63 71 117 112 45 120 63 71 176 103 41 120 63 71 176 103 41 120 63 71 117 112 45
++120 63 71 120 63 71 161 55 23 120 63 71 122 49 24 122 49 24 102 33 26 102 33 26
++102 33 26 88 30 18 76 44 53 76 18 19 76 44 53 88 30 18 76 18 19 76 44 53
++88 30 18 76 44 53 76 18 19 76 44 53 88 44 51 76 44 53 76 46 20 88 44 51
++88 44 51 75 56 53 88 44 51 75 56 53 76 44 53 76 46 20 76 44 53 76 44 53
++76 44 53 76 44 53 62 47 47 76 44 53 62 47 47 76 44 53 60 49 42 76 44 53
++59 36 42 59 36 42 76 46 20 59 36 42 76 44 53 59 36 42 88 44 51 59 36 42
++88 44 51 76 44 53 88 44 51 76 44 53 88 44 51 88 44 51 75 56 53 88 44 51
++75 56 53 88 44 51 76 44 53 88 44 51 75 56 53 76 46 20 76 44 53 76 44 53
++63 55 45 76 44 53 63 55 45 76 44 53 63 55 45 65 55 54 65 55 54 62 47 47
++75 56 53 63 55 51 63 55 51 63 55 51 65 55 54 65 55 54 65 55 54 65 55 54
++65 57 61 75 56 53 65 55 54 65 55 54 65 55 54 75 56 53 65 55 54 65 55 54
++65 57 61 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54
++62 47 47 65 55 54 63 55 51 65 55 54 65 55 54 65 55 54 65 63 61 75 56 53
++65 63 61 75 56 53 65 63 61 75 63 62 75 63 62 75 63 62 75 63 62 75 72 67
++75 63 62 75 72 67 88 66 70 75 72 67 88 66 70 75 72 67 88 69 84 88 83 74
++88 83 74 88 83 74 88 83 88 101 83 74 88 83 88 99 93 84 88 83 88 99 93 84
++99 93 84 88 83 88 99 93 84 99 93 84 99 93 84 99 93 84 99 93 84 95 91 100
++99 93 84 117 99 86 112 96 108 117 99 86 112 96 108 117 99 86 117 99 86 112 123 108
++117 99 86 112 96 108 117 99 86 117 99 86 117 99 86 112 96 108 99 93 84 117 99 86
++99 93 84 99 93 84 99 93 84 101 83 74 101 83 74 101 83 74 88 69 84 101 83 74
++88 69 84 88 66 70 88 66 70 75 72 67 88 73 62 75 63 62 88 66 70 75 63 62
++75 63 62 88 73 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62
++75 72 67 88 66 70 75 72 67 75 72 67 88 66 70 75 72 67 88 83 74 88 66 70
++75 72 67 88 66 70 75 72 67 88 66 70 75 72 67 88 73 62 75 72 67 88 73 62
++88 73 62 88 73 62 88 66 70 88 73 62 88 73 62 88 66 70 88 73 62 88 44 51
++88 73 62 88 44 51 88 73 62 101 60 73 88 73 62 88 73 62 101 60 73 88 44 51
++120 63 71 88 73 62 120 63 71 88 73 31 101 60 73 101 60 73 101 74 26 101 60 73
++101 60 73 88 73 62 120 63 71 101 60 73 101 83 74 101 60 73 101 83 74 101 83 74
++101 83 74 101 83 74 101 60 73 101 83 74 101 83 74 88 69 84 101 83 74 101 83 74
++88 69 84 101 83 74 88 83 88 101 83 74 88 69 84 101 83 74 88 83 88 101 83 74
++88 69 84 101 83 74 88 83 74 88 69 84 88 83 74 88 69 84 88 83 74 88 83 74
++75 81 76 88 66 70 88 83 74 75 72 67 88 66 70 75 72 67 75 63 62 75 72 67
++75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 73 58 75 63 62 75 63 62
++75 72 67 75 63 62 75 63 62 75 72 67 88 73 62 88 66 70 101 60 73 88 44 51
++49 13 16 53 35 17 117 99 86 222 171 182 251 251 247 235 238 247 201 216 228 185 202 202
++166 176 200 188 180 202 194 199 226 201 216 228 194 199 226 166 176 200 150 147 171 131 144 168
++166 174 181 166 176 200 166 176 200 129 144 153 98 121 131 111 119 127 111 119 127 94 105 108
++75 64 82 23 30 35 3 3 1 3 3 1 3 4 9 3 4 9 3 3 1 3 4 9
++3 4 9 7 12 13 14 16 17 17 12 17 14 16 17 14 16 17 17 12 17 14 16 17
++6 15 6 13 4 7 3 3 1 3 3 1 3 4 9 14 16 17 22 25 24 22 24 13
++26 30 28 43 42 50 111 119 127 185 202 202 235 238 247 235 238 247 226 221 247 201 216 228
++201 216 228 194 199 226 185 202 202 194 199 226 185 202 202 194 199 226 185 202 202 188 180 202
++185 202 202 185 202 202 185 202 202 194 199 226 201 216 228 201 216 228 225 222 201 194 199 226
++194 199 226 201 216 228 194 199 226 194 199 226 185 202 202 185 202 202 194 199 226 194 199 226
++194 199 226 201 216 228 201 216 228 221 238 247 221 238 247 221 238 247 221 238 247 201 216 228
++233 241 227 208 221 247 221 238 247 233 241 227 231 239 247 231 239 247 240 251 247 231 239 247
++231 239 247 221 238 247 235 238 247 251 251 247 251 251 247 251 251 247 246 237 247 222 171 182
++195 113 123 167 63 71 167 63 71 167 63 71 195 113 123 167 63 71 167 63 71 195 113 123
++167 63 71 167 63 71 167 63 71 167 63 71 161 55 23 167 63 71 176 103 41 219 175 47
++214 214 134 219 175 47 219 175 47 219 175 47 177 171 115 219 175 47 219 175 47 219 175 47
++214 214 134 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 214 214 134 219 175 47
++214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47
++214 214 134 219 175 47 177 171 115 177 171 115 177 171 115 157 148 53 177 171 115 157 148 53
++138 126 108 117 114 76 117 99 86 117 99 86 94 105 108 99 93 84 95 91 100 111 119 127
++145 140 145 166 156 164 194 199 226 232 215 228 233 241 227 232 215 228 194 199 226 225 222 201
++225 222 201 225 222 201 225 222 201 217 168 156 189 165 168 168 146 127 163 117 123 168 146 127
++168 102 88 168 146 127 138 126 108 168 102 88 146 150 115 168 102 88 138 126 108 157 148 53
++138 126 108 168 102 88 168 146 127 168 102 88 146 150 115 168 102 88 177 171 115 163 117 123
++168 146 127 177 171 115 168 146 127 168 146 127 168 146 127 201 146 124 168 146 127 197 171 123
++177 169 143 201 146 124 201 146 124 197 171 123 217 168 156 197 171 123 177 169 143 197 171 123
++217 168 156 201 146 124 189 165 168 197 171 123 217 168 156 201 146 124 217 168 156 168 146 127
++201 146 124 201 146 124 177 169 143 201 146 124 201 146 124 168 146 127 201 146 124 177 169 143
++201 146 124 201 146 124 177 169 143 217 168 156 177 169 143 146 150 115 95 91 100 99 93 84
++88 83 88 88 83 88 90 98 89 88 83 88 88 83 88 75 81 82 88 83 88 75 81 76
++88 83 88 88 83 88 88 83 88 88 83 88 90 98 89 88 83 74 99 93 84 88 83 88
++88 83 74 88 83 88 88 83 74 75 81 76 75 72 67 75 72 67 75 72 67 75 63 62
++75 63 62 65 63 61 75 56 53 65 63 61 63 55 51 59 55 55 59 55 55 59 55 55
++48 50 48 54 57 61 48 50 48 48 44 48 42 47 42 43 42 50 42 47 42 42 41 42
++34 40 43 42 41 42 36 35 37 42 41 42 36 35 37 42 41 42 42 41 42 42 41 42
++47 44 42 47 44 42 47 44 42 51 49 42 53 46 48 53 46 48 53 46 48 53 46 48
++55 55 48 55 55 48 62 47 47 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48
++59 55 55 65 63 61 65 63 61 59 57 61 65 63 61 59 69 70 75 72 67 75 72 67
++75 72 67 75 72 67 75 81 76 88 83 74 75 81 76 88 83 88 88 83 74 88 83 88
++99 93 84 90 98 89 95 91 100 90 98 89 90 98 89 95 91 100 112 123 108 121 143 132
++166 156 164 185 202 202 185 202 202 201 216 228 225 222 201 201 216 228 201 216 228 225 222 201
++201 216 228 233 241 227 201 216 228 233 241 227 233 241 227 233 241 227 201 216 228 233 241 227
++201 216 228 233 241 227 201 216 228 201 216 228 201 216 228 185 202 202 201 216 228 185 202 202
++185 202 202 166 174 181 166 174 181 185 202 202 166 174 181 185 202 202 201 216 228 233 241 227
++201 216 228 185 202 202 166 156 164 148 160 159 122 134 144 112 123 108 112 96 108 112 123 108
++112 96 108 112 123 108 112 96 108 112 123 108 112 96 108 117 99 86 94 105 108 117 99 86
++98 113 84 95 91 100 90 98 89 99 93 84 90 98 89 88 83 88 88 83 74 90 98 89
++88 83 74 88 83 88 88 83 88 88 83 88 88 83 74 88 83 88 88 83 74 88 83 88
++88 83 74 75 81 76 88 83 74 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++88 66 70 75 63 62 75 63 62 65 63 61 75 63 62 65 63 61 65 63 61 65 63 61
++65 63 61 75 63 62 65 63 61 65 63 61 75 73 58 65 63 61 75 63 62 65 63 61
++75 56 53 75 73 58 65 63 61 75 63 62 65 63 61 75 73 58 75 63 62 75 72 67
++75 72 67 75 72 67 75 72 67 88 83 74 75 81 76 88 83 74 75 72 67 88 69 84
++88 83 74 88 66 70 75 72 67 88 83 74 75 72 67 88 83 74 88 66 70 88 83 74
++88 73 62 75 72 67 75 72 67 75 73 58 75 63 62 75 73 58 65 63 61 64 70 48
++75 63 62 75 73 58 75 73 58 75 63 62 88 73 62 75 73 58 75 63 62 88 73 62
++88 83 74 88 73 62 88 83 74 88 83 74 88 83 74 88 83 74 87 99 72 99 93 84
++99 93 84 98 113 84 98 113 84 98 113 84 117 99 86 94 105 108 117 99 86 112 123 108
++117 99 86 112 123 108 117 99 86 112 123 108 117 127 86 117 99 86 98 113 84 98 113 84
++117 99 86 98 113 84 99 93 84 87 99 72 87 99 72 99 93 84 88 83 74 88 73 62
++88 73 62 75 73 58 75 63 62 75 56 53 75 73 58 75 63 62 88 73 62 75 63 62
++
++63 55 51 63 55 51 59 55 55 59 55 55 57 43 51 59 55 55 52 55 48 59 55 55
++48 50 48 48 50 48 52 55 48 53 46 48 55 55 48 59 55 55 63 55 51 75 56 53
++64 70 48 75 63 62 75 56 53 88 73 62 88 73 62 88 73 62 101 83 74 101 83 74
++101 74 26 120 63 71 120 63 71 117 112 45 120 63 71 117 112 45 120 63 71 117 112 45
++120 63 71 117 114 76 167 63 71 117 114 76 167 63 71 117 112 45 120 63 71 167 63 71
++117 112 45 161 55 23 120 63 71 122 49 24 101 74 26 88 44 51 122 49 24 88 44 51
++88 30 18 88 44 51 88 30 18 88 30 18 88 44 51 76 18 19 88 44 51 76 18 19
++88 44 51 76 18 19 88 44 51 59 36 42 76 18 19 76 44 53 88 44 51 76 44 53
++76 46 20 88 44 51 76 44 53 76 46 20 76 44 53 76 44 53 75 56 53 76 44 53
++76 44 53 60 49 42 76 44 53 76 44 53 60 49 42 88 44 51 59 36 42 76 44 53
++76 46 20 76 44 53 59 36 42 76 44 53 59 36 42 76 44 53 76 18 19 88 44 51
++59 36 42 76 46 20 76 44 53 76 44 53 88 44 51 76 44 53 88 44 51 88 44 51
++88 44 51 75 56 53 88 44 51 75 56 53 76 44 53 63 55 45 76 44 53 63 55 45
++88 44 51 63 55 45 76 44 53 62 47 47 62 47 47 62 47 47 76 44 53 65 55 54
++63 55 51 63 55 51 62 47 47 63 55 51 65 55 54 65 55 54 65 55 54 65 55 54
++65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 63 61 65 55 54
++65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54
++76 44 53 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 75 56 53 65 57 61
++75 63 62 65 63 61 75 63 62 75 63 62 75 63 62 75 63 62 75 72 67 75 72 67
++88 66 70 75 72 67 88 66 70 75 81 76 88 66 70 75 81 76 88 66 70 88 83 74
++88 69 84 88 83 74 88 69 84 99 93 84 88 83 88 99 93 84 99 93 84 101 83 74
++95 91 100 101 83 74 99 93 84 88 83 88 101 83 74 95 91 100 99 93 84 99 93 84
++117 99 86 95 91 100 117 99 86 112 96 108 117 99 86 112 123 108 112 96 108 117 99 86
++112 96 108 117 99 86 112 96 108 112 96 108 117 99 86 99 93 84 99 93 84 99 93 84
++112 96 108 101 83 74 95 91 100 101 83 74 88 83 88 101 83 74 101 83 74 88 66 70
++88 66 70 88 73 62 88 73 62 88 66 70 75 63 62 88 66 70 88 73 62 75 56 53
++88 66 70 75 56 53 75 63 62 75 63 62 75 63 62 75 63 62 88 73 62 75 63 62
++75 63 62 75 63 62 75 72 67 75 63 62 75 72 67 88 66 70 75 63 62 75 63 62
++75 63 62 75 63 62 88 73 62 75 63 62 75 63 62 75 63 62 88 73 62 75 63 62
++75 63 62 88 66 70 88 73 62 88 66 70 88 44 51 88 66 70 88 73 62 88 44 51
++88 73 62 101 60 73 88 73 62 101 60 73 88 73 62 88 44 51 120 63 71 88 73 62
++88 73 62 120 63 71 88 44 51 120 63 71 88 73 62 120 63 71 101 60 73 88 73 62
++120 63 71 88 73 62 101 60 73 101 83 74 101 60 73 101 83 74 120 63 71 95 91 100
++120 63 71 88 69 84 101 83 74 101 83 74 88 69 84 101 83 74 101 83 74 95 91 100
++101 83 74 99 93 84 101 83 74 95 91 100 101 83 74 95 91 100 101 83 74 99 93 84
++101 83 74 99 93 84 88 83 88 101 83 74 88 83 74 88 83 74 88 69 84 88 83 74
++88 66 70 75 81 76 88 66 70 88 66 70 75 72 67 75 72 67 88 73 62 75 63 62
++88 73 62 75 63 62 75 63 62 75 73 58 75 63 62 75 63 62 75 63 62 75 63 62
++75 63 62 75 63 62 75 63 62 75 72 67 75 63 62 88 73 62 101 60 73 88 44 51
++76 18 19 59 36 42 163 117 123 232 215 228 251 251 247 226 221 247 185 202 202 166 176 200
++185 202 202 194 199 226 201 216 228 201 216 228 166 176 200 148 160 159 129 144 153 148 160 159
++166 176 200 166 176 200 148 160 159 129 144 153 111 119 127 111 119 127 111 119 127 95 108 128
++75 81 90 23 30 35 3 3 1 3 3 1 3 4 9 3 4 9 3 3 1 13 4 7
++7 12 13 17 12 17 14 16 17 14 16 17 14 16 17 7 12 13 13 4 7 3 3 1
++3 3 1 3 3 1 3 3 1 7 12 13 15 22 17 22 25 24 22 25 24 3 4 9
++26 30 28 95 91 100 166 174 181 233 241 227 201 216 228 201 216 228 188 180 202 166 176 200
++166 174 181 166 174 181 166 176 200 166 174 181 166 176 200 166 176 200 185 202 202 194 199 226
++194 199 226 201 216 228 201 216 228 226 221 247 233 241 227 231 239 247 221 238 247 221 238 247
++233 241 227 208 221 247 232 215 228 201 216 228 194 199 226 194 199 226 201 216 228 201 216 228
++201 216 228 201 216 228 201 216 228 208 221 247 221 238 247 221 238 247 221 238 247 221 238 247
++221 238 247 221 238 247 231 239 247 231 239 247 235 238 247 240 251 247 231 239 247 233 241 227
++231 239 247 235 238 247 240 251 247 251 251 247 251 251 247 246 237 247 246 237 247 222 171 182
++163 117 123 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 195 113 123
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 161 55 23 167 63 71 157 148 53
++219 175 47 214 214 134 219 175 47 177 171 115 219 175 47 219 175 47 219 175 47 214 214 134
++219 175 47 219 175 47 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 219 175 47
++214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47
++214 214 134 219 175 47 214 214 134 177 171 115 219 175 47 177 171 115 157 148 53 146 150 115
++157 148 53 138 126 108 117 99 86 117 99 86 99 93 84 112 96 108 145 140 145 166 174 181
++194 199 226 235 238 247 246 237 247 226 221 247 185 202 202 189 165 168 225 222 201 222 171 182
++208 215 180 222 171 182 189 165 168 177 171 115 163 117 123 146 150 115 168 102 88 146 150 115
++168 102 88 146 150 115 168 102 88 177 171 115 168 102 88 146 150 115 168 102 88 163 117 123
++168 102 88 146 150 115 168 102 88 146 150 115 168 102 88 168 146 127 168 102 88 177 171 115
++168 102 88 168 102 88 168 146 127 168 102 88 163 117 123 201 146 124 168 146 127 201 146 124
++201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 177 169 143 217 168 156 201 146 124
++197 171 123 177 169 143 197 171 123 217 168 156 197 171 123 177 169 143 197 171 123 201 146 124
++177 169 143 201 146 124 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 201 146 124
++177 169 143 201 146 124 177 169 143 177 169 143 189 165 168 168 146 127 112 123 108 88 83 88
++90 98 89 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 74 88 83 88
++88 83 88 88 83 88 87 99 72 88 83 88 88 83 74 88 83 88 88 83 74 99 93 84
++88 83 88 88 83 88 88 83 74 88 83 74 75 72 67 75 72 67 75 72 67 75 63 62
++75 63 62 75 63 62 65 63 61 65 55 54 59 55 55 53 63 61 59 55 55 54 57 61
++59 55 55 48 50 48 48 50 48 43 42 50 43 42 50 42 47 42 43 42 50 42 41 42
++42 41 42 36 35 37 42 41 42 36 35 37 42 41 42 33 39 38 42 41 42 42 41 42
++47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 53 46 48 52 55 48 53 46 48
++51 49 42 60 49 42 53 46 48 53 46 48 55 55 48 59 55 55 55 55 48 55 55 48
++59 55 55 55 55 48 65 63 61 65 63 61 65 63 61 65 63 61 63 59 71 75 72 67
++59 69 70 75 72 67 75 72 67 75 81 76 88 83 74 88 83 88 88 83 74 88 83 88
++88 83 88 88 83 74 88 83 88 112 96 108 112 123 108 121 143 132 145 140 145 148 160 159
++188 180 202 185 202 202 185 202 202 185 202 202 185 202 202 185 202 202 201 216 228 201 216 228
++233 241 227 201 216 228 221 238 247 221 238 247 201 216 228 201 216 228 201 216 228 185 202 202
++185 202 202 166 180 164 188 180 202 166 174 181 166 180 164 188 180 202 166 174 181 201 216 228
++185 202 202 201 216 228 225 222 201 201 216 228 201 216 228 225 222 201 201 216 228 232 215 228
++233 241 227 232 215 228 233 241 227 232 215 228 225 222 201 166 174 181 145 140 145 112 123 108
++112 96 108 90 98 89 112 96 108 117 99 86 112 123 108 112 96 108 98 113 84 98 113 84
++112 96 108 98 113 84 99 93 84 95 91 100 90 98 89 99 93 84 90 98 89 88 83 88
++88 83 88 90 98 89 88 83 74 88 83 88 99 93 84 88 83 88 88 83 74 75 81 76
++88 83 74 88 83 74 75 72 67 75 81 69 88 66 70 75 72 67 75 72 67 75 72 67
++75 72 67 75 63 62 75 72 67 75 63 62 65 63 61 75 73 58 75 63 62 65 63 61
++75 63 62 65 63 61 75 63 62 65 63 61 65 63 61 65 63 61 65 63 61 75 73 58
++65 63 61 65 63 61 75 63 62 65 63 61 75 63 62 65 63 61 75 63 62 75 73 58
++75 72 67 75 72 67 75 72 67 75 72 67 88 83 74 75 72 67 88 83 74 88 83 74
++75 72 67 88 83 74 75 81 76 88 66 70 75 81 76 88 66 70 88 83 74 75 72 67
++88 83 74 88 66 70 88 73 62 75 72 67 75 63 62 75 73 58 75 56 53 75 63 62
++75 63 62 75 63 62 88 73 62 75 72 67 75 73 58 75 72 67 75 73 58 75 72 67
++88 73 62 88 73 62 88 83 74 88 83 74 88 83 74 88 83 74 88 83 74 87 99 72
++90 98 89 99 93 84 99 93 84 99 93 84 98 113 84 98 113 84 112 123 108 117 99 86
++112 123 108 117 127 86 112 123 108 117 127 86 112 123 108 98 113 84 117 99 86 94 105 108
++98 113 84 99 93 84 99 93 84 99 93 84 99 93 84 88 83 74 88 83 74 88 83 74
++88 73 62 75 63 62 75 73 58 75 73 58 75 63 62 75 73 58 75 63 62 75 63 62
++
++55 55 48 55 55 48 63 55 51 59 55 55 59 55 55 59 55 55 48 50 48 59 55 55
++48 50 48 55 55 48 53 46 48 59 55 55 63 55 51 63 55 51 65 55 54 65 63 61
++75 56 53 75 73 58 88 73 62 88 73 62 101 74 26 101 83 74 101 74 26 120 63 71
++98 106 55 120 63 71 117 112 45 120 63 71 101 74 26 120 63 71 117 112 45 167 63 71
++117 112 45 167 63 71 117 112 45 167 63 71 117 112 45 167 63 71 117 112 45 161 55 23
++120 63 71 120 63 71 161 55 23 120 63 71 122 49 24 122 49 24 88 44 51 122 49 24
++102 33 26 88 30 18 88 44 51 88 30 18 59 36 42 88 30 18 76 44 53 88 30 18
++76 44 53 88 30 18 76 44 53 88 30 18 88 44 51 76 46 20 88 44 51 76 44 53
++88 44 51 63 55 45 88 44 51 76 44 53 63 55 45 76 44 53 76 46 20 76 44 53
++62 47 47 88 44 51 60 49 42 76 44 53 76 44 53 60 49 42 76 44 53 76 46 20
++59 36 42 76 44 53 59 36 42 76 44 53 76 46 20 76 44 53 59 36 42 76 44 53
++88 44 51 76 44 53 76 44 53 88 44 51 76 44 53 88 44 51 75 56 53 88 44 51
++75 56 53 88 44 51 75 56 53 88 44 51 76 44 53 76 44 53 75 56 53 76 46 20
++76 44 53 76 44 53 63 55 45 75 56 53 62 47 47 75 56 53 63 55 51 63 55 51
++65 55 54 63 55 51 63 55 51 63 55 51 63 55 51 65 55 54 65 55 54 65 55 54
++65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54
++65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 62 47 47
++65 55 54 62 47 47 65 55 54 65 55 54 65 55 54 75 56 53 65 63 61 75 56 53
++75 63 62 75 56 53 75 63 62 75 63 62 75 63 62 75 72 67 75 72 67 88 66 70
++75 72 67 75 72 67 88 66 70 88 83 74 88 66 70 88 83 74 88 83 74 88 69 84
++88 83 74 88 83 74 88 83 88 101 83 74 88 83 88 101 83 74 95 91 100 99 93 84
++99 93 84 99 93 84 88 83 88 99 93 84 95 91 100 117 99 86 95 91 100 99 93 84
++99 93 84 117 99 86 112 96 108 117 99 86 112 96 108 117 99 86 117 99 86 112 96 108
++117 99 86 117 99 86 117 99 86 99 93 84 99 93 84 99 93 84 99 93 84 101 83 74
++101 83 74 101 83 74 101 83 74 101 83 74 88 69 84 101 83 74 88 66 70 88 66 70
++88 73 62 88 66 70 75 63 62 75 63 62 88 73 62 75 63 62 75 63 62 75 63 62
++75 56 53 75 63 62 88 73 62 75 56 53 88 73 62 75 63 62 75 63 62 75 63 62
++75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62
++75 63 62 75 63 62 75 63 62 75 63 62 88 73 62 75 56 53 88 73 62 75 63 62
++88 73 62 75 63 62 88 73 62 88 73 62 88 73 62 88 73 62 88 44 51 88 73 62
++88 73 62 88 44 51 88 73 62 101 60 73 101 74 26 101 60 73 88 73 62 101 60 73
++101 74 26 101 60 73 88 73 62 120 63 71 88 73 62 101 60 73 101 60 73 120 63 71
++88 73 62 120 63 71 101 83 74 101 60 73 101 83 74 120 63 71 101 83 74 101 83 74
++120 63 71 95 91 100 120 63 71 112 96 108 101 83 74 95 91 100 101 83 74 101 83 74
++112 96 108 120 63 71 112 96 108 101 83 74 112 96 108 101 83 74 95 91 100 101 83 74
++95 91 100 101 83 74 99 93 84 88 83 88 99 93 84 88 83 88 101 83 74 88 83 74
++88 83 74 88 83 74 88 66 70 75 81 69 88 66 70 75 72 67 75 63 62 88 73 62
++75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 73 58 75 72 67 75 63 62
++75 72 67 75 63 62 75 63 62 88 73 62 75 63 62 88 73 62 88 44 51 88 44 51
++76 46 20 88 44 51 168 146 127 232 215 228 235 238 247 201 216 228 188 180 202 166 176 200
++185 202 202 201 216 228 201 216 228 185 202 202 150 168 183 150 168 183 131 144 168 150 168 183
++166 174 181 150 168 183 129 144 153 122 134 144 122 134 144 122 134 144 129 144 153 119 117 138
++75 81 82 22 23 31 3 3 1 3 4 9 3 4 9 13 4 7 3 4 9 3 4 9
++7 12 13 17 12 17 14 16 17 7 12 13 3 4 9 3 3 1 3 4 9 3 3 1
++3 4 9 13 4 7 15 22 17 23 20 24 26 30 28 15 22 17 7 12 13 15 22 17
++59 69 70 145 140 145 188 180 202 185 202 202 188 180 202 166 174 181 166 176 200 166 176 200
++166 176 200 188 180 202 185 202 202 185 202 202 194 199 226 232 215 228 208 221 247 233 241 227
++231 239 247 235 238 247 251 251 247 251 251 247 235 238 247 231 239 247 226 221 247 221 238 247
++221 238 247 208 221 247 201 216 228 201 216 228 201 216 228 208 221 247 232 215 228 208 221 247
++221 238 247 226 221 247 221 238 247 221 238 247 221 238 247 231 239 247 231 239 247 221 238 247
++231 239 247 231 239 247 240 251 247 240 251 247 235 238 247 240 251 247 231 239 247 231 239 247
++231 239 247 240 251 247 240 251 247 246 237 247 251 251 247 246 237 247 232 215 228 217 168 156
++168 102 88 167 63 71 167 63 71 161 55 23 167 63 71 167 63 71 176 103 41 195 113 123
++167 63 71 195 113 123 167 63 71 167 63 71 167 63 71 161 55 23 161 55 23 176 103 41
++157 148 53 219 175 47 214 214 134 219 175 47 177 171 115 219 175 47 177 171 115 219 175 47
++219 175 47 214 214 134 219 175 47 219 175 47 219 175 47 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 219 175 47 177 171 115 177 171 115 177 171 115 177 171 115 146 150 115
++138 126 108 117 114 76 117 127 86 112 96 108 145 140 145 166 156 164 185 202 202 246 237 247
++251 251 247 235 238 247 185 202 202 189 165 168 166 156 164 189 165 168 185 202 202 208 215 180
++222 171 182 177 169 143 168 146 127 168 146 127 138 126 108 168 146 127 168 146 127 168 146 127
++157 148 53 168 146 127 168 102 88 146 150 115 168 102 88 177 171 115 168 102 88 146 150 115
++168 102 88 146 150 115 168 102 88 146 150 115 168 102 88 146 150 115 146 150 115 168 102 88
++146 150 115 168 146 127 168 102 88 177 171 115 146 150 115 168 146 127 201 146 124 168 146 127
++201 146 124 177 171 115 201 146 124 177 169 143 197 171 123 217 168 156 197 171 123 177 169 143
++201 146 124 177 169 143 197 171 123 197 171 123 217 168 156 217 168 156 197 171 123 177 169 143
++201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 168 146 127 197 171 123 177 169 143
++201 146 124 168 146 127 201 146 124 177 169 143 177 169 143 177 169 143 138 126 108 99 93 84
++99 93 84 88 83 74 75 81 82 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88
++88 83 74 88 83 88 88 83 88 88 83 88 88 83 88 87 99 72 88 83 88 88 83 88
++88 83 74 88 83 88 88 83 74 75 81 76 88 66 70 75 72 67 75 72 67 75 63 62
++65 63 61 65 63 61 65 55 54 65 55 54 59 55 55 59 55 55 59 55 55 55 55 48
++52 55 48 52 55 48 48 50 48 48 50 48 43 42 50 42 47 42 42 41 42 42 41 42
++42 41 42 33 39 38 42 41 42 36 35 37 42 41 42 36 35 37 42 41 42 42 41 42
++47 44 42 47 44 42 47 44 42 47 44 42 48 44 48 51 49 42 53 46 48 53 46 48
++53 46 48 55 55 48 53 46 48 55 55 48 55 55 48 53 46 48 55 55 48 59 55 55
++59 55 55 59 57 61 65 63 61 65 63 61 65 63 61 65 63 61 75 72 67 59 69 70
++75 72 67 75 72 67 75 81 76 75 81 76 75 81 76 88 83 74 75 81 76 75 72 67
++75 81 82 95 91 100 112 123 108 150 144 154 166 156 164 166 174 181 188 180 202 166 180 164
++166 180 164 166 180 164 189 165 168 166 180 164 166 180 164 189 165 168 166 180 164 185 202 202
++188 180 202 185 202 202 208 215 180 185 202 202 188 180 202 189 165 168 166 180 164 189 165 168
++166 180 164 166 180 164 166 180 164 150 171 159 166 156 164 166 174 181 185 202 202 201 216 228
++233 241 227 231 239 247 233 241 227 201 216 228 233 241 227 201 216 228 233 241 227 201 216 228
++201 216 228 233 241 227 231 239 247 251 251 247 251 251 247 240 251 247 185 202 202 150 144 154
++111 119 127 112 123 108 112 96 108 112 123 108 112 96 108 112 123 108 112 96 108 94 105 108
++98 113 84 112 96 108 90 98 89 90 98 89 99 93 84 95 91 100 90 98 89 99 93 84
++88 83 74 88 83 88 99 93 84 88 83 88 88 83 74 88 83 88 88 83 74 88 83 74
++75 81 76 75 81 76 88 83 74 88 66 70 75 81 69 75 72 67 75 72 67 75 72 67
++75 63 62 75 63 62 75 72 67 65 63 61 75 63 62 65 63 61 75 63 62 65 63 61
++75 73 58 65 63 61 65 63 61 65 63 61 75 56 53 65 63 61 75 63 62 65 63 61
++64 70 48 75 63 62 65 63 61 75 73 58 65 63 61 75 73 58 75 73 58 75 72 67
++75 72 67 75 72 67 88 83 74 75 72 67 75 81 76 88 83 74 88 66 70 75 81 76
++88 69 84 75 81 69 88 83 74 75 81 76 88 83 74 88 83 74 75 81 82 88 83 74
++88 83 74 75 72 67 88 83 74 75 72 67 75 72 67 75 72 67 75 73 58 75 63 62
++75 73 58 75 73 58 75 72 67 75 63 62 88 73 62 75 63 62 75 73 58 75 72 67
++88 73 62 88 83 74 88 73 62 88 83 74 88 83 74 87 99 72 88 83 74 88 83 74
++99 93 84 90 98 89 98 113 84 98 113 84 112 96 108 117 99 86 98 113 84 112 123 108
++117 99 86 112 123 108 117 99 86 112 123 108 117 99 86 117 127 86 98 113 84 98 113 84
++99 93 84 99 93 84 98 113 84 87 99 72 99 93 84 88 83 74 88 83 74 88 83 74
++88 73 62 75 73 58 75 63 62 75 56 53 64 70 48 75 63 62 75 63 62 75 73 58
++
++52 55 48 55 55 48 55 55 48 59 55 55 52 55 48 52 55 48 59 55 55 52 55 48
++59 55 55 59 55 55 55 55 48 53 46 48 63 55 51 65 55 54 65 55 54 75 63 62
++75 56 53 88 73 62 88 44 51 88 73 62 88 73 62 88 73 62 120 63 71 98 106 55
++120 63 71 120 63 71 101 74 26 120 63 71 117 112 45 120 63 71 167 63 71 117 112 45
++120 63 71 117 112 45 167 63 71 117 112 45 167 63 71 120 63 71 161 55 23 120 63 71
++117 112 45 161 55 23 101 74 26 122 49 24 120 63 71 122 49 24 122 49 24 102 33 26
++88 44 51 102 33 26 88 30 18 88 30 18 88 30 18 88 44 51 76 18 19 88 44 51
++88 30 18 76 44 53 88 30 18 88 44 51 76 46 20 88 44 51 76 46 20 88 44 51
++76 46 20 76 44 53 76 46 20 76 44 53 76 46 20 76 44 53 62 47 47 76 44 53
++62 47 47 76 46 20 76 44 53 76 44 53 76 46 20 88 44 51 62 47 47 76 44 53
++62 47 47 59 36 42 76 44 53 59 36 42 59 36 42 59 36 42 88 44 51 59 36 42
++76 46 20 76 44 53 88 44 51 76 46 20 88 44 51 75 56 53 88 44 51 88 44 51
++75 56 53 88 44 51 76 44 53 88 44 51 75 56 53 76 46 20 75 56 53 76 44 53
++76 44 53 63 55 45 62 47 47 75 56 53 65 55 54 65 55 54 65 55 54 65 55 54
++65 55 54 62 47 47 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51
++63 55 51 63 55 51 65 55 54 59 55 55 65 55 54 65 55 54 65 55 54 65 55 54
++65 55 54 65 63 61 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 75 56 53
++63 55 51 75 56 53 65 55 54 63 55 51 75 56 53 75 63 62 75 63 62 75 56 53
++75 63 62 65 63 61 75 63 62 75 72 67 75 73 58 88 66 70 75 72 67 75 72 67
++75 72 67 88 66 70 75 81 69 88 69 84 88 83 74 88 83 74 88 69 84 88 83 74
++88 83 74 88 83 88 88 83 74 99 93 84 101 83 74 95 91 100 101 83 74 99 93 84
++88 69 84 99 93 84 99 93 84 101 83 74 99 93 84 101 83 74 99 93 84 117 99 86
++99 93 84 99 93 84 99 93 84 117 99 86 99 93 84 117 99 86 99 93 84 117 99 86
++99 93 84 99 93 84 95 91 100 99 93 84 101 83 74 99 93 84 101 83 74 99 93 84
++101 83 74 88 69 84 101 83 74 88 66 70 101 83 74 88 66 70 88 73 62 88 66 70
++88 66 70 88 73 62 75 63 62 75 63 62 75 56 53 75 63 62 75 56 53 88 73 62
++75 63 62 75 56 53 75 56 53 75 63 62 75 56 53 75 56 53 75 56 53 75 63 62
++75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62
++75 63 62 75 56 53 75 56 53 75 56 53 75 56 53 75 63 62 75 56 53 88 73 62
++75 56 53 88 73 62 75 56 53 88 73 62 88 44 51 88 73 62 88 73 62 88 73 62
++88 44 51 88 73 62 88 73 62 88 44 51 88 73 62 101 60 73 88 73 62 101 60 73
++101 60 73 120 63 71 88 73 62 101 60 73 88 73 62 120 63 71 101 83 74 101 60 73
++101 83 74 101 60 73 101 83 74 120 63 71 101 83 74 101 60 73 95 91 100 120 63 71
++95 91 100 101 83 74 99 93 84 101 60 73 112 96 108 120 63 71 117 99 86 95 91 100
++117 99 86 95 91 100 101 83 74 112 96 108 101 83 74 112 96 108 101 83 74 112 96 108
++101 83 74 95 91 100 99 93 84 99 93 84 99 93 84 101 83 74 88 83 88 88 69 84
++88 83 74 88 66 70 88 83 74 88 83 74 75 72 67 88 73 62 75 73 58 75 73 58
++75 63 62 75 73 58 75 73 58 75 56 53 75 73 58 75 63 62 75 63 62 75 63 62
++75 63 62 75 63 62 75 73 58 75 63 62 88 73 62 88 44 51 120 63 71 88 44 51
++76 18 19 101 60 73 201 146 124 232 215 228 235 238 247 185 202 202 166 176 200 185 202 202
++194 199 226 185 202 202 166 176 200 150 168 183 166 174 181 166 174 181 166 176 200 150 168 183
++166 174 181 150 168 183 131 144 168 131 144 168 150 147 171 166 176 200 185 202 202 166 174 181
++77 90 100 22 23 31 3 3 1 3 4 9 17 12 17 7 12 13 13 4 7 13 4 7
++17 12 17 7 12 13 3 3 1 3 3 1 3 4 9 13 4 7 7 12 13 7 12 13
++14 16 17 26 25 15 26 30 28 26 25 15 6 15 6 3 4 9 22 23 31 59 69 70
++122 134 144 148 160 159 166 174 181 166 174 181 185 202 202 201 216 228 201 216 228 232 215 228
++201 216 228 233 241 227 231 239 247 246 237 247 240 251 247 240 251 247 240 251 247 240 251 247
++251 251 247 251 251 247 240 251 247 221 238 247 194 199 226 185 202 202 185 202 202 194 199 226
++185 202 202 194 199 226 194 199 226 201 216 228 221 238 247 221 238 247 221 238 247 231 239 247
++231 239 247 231 239 247 233 241 227 231 239 247 231 239 247 235 238 247 235 238 247 235 238 247
++240 251 247 231 239 247 231 239 247 231 239 247 240 251 247 240 251 247 231 239 247 231 239 247
++231 239 247 231 239 247 235 238 247 235 238 247 246 237 247 246 237 247 232 215 228 195 113 123
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 195 113 123
++176 103 41 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 161 55 23
++168 102 88 219 175 47 214 214 134 219 175 47 219 175 47 214 214 134 219 175 47 219 175 47
++219 175 47 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 219 175 47 214 214 134
++219 175 47 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47
++214 214 134 219 175 47 214 214 134 177 171 115 219 175 47 177 171 115 146 150 115 157 148 53
++117 127 86 138 126 108 138 126 108 150 144 154 185 202 202 231 239 247 251 251 247 235 238 247
++225 222 201 189 165 168 141 116 139 138 126 108 168 146 127 208 215 180 217 168 156 189 165 168
++168 146 127 168 146 127 163 117 123 168 146 127 168 146 127 168 102 88 177 171 115 168 102 88
++163 117 123 146 150 115 168 146 127 168 102 88 146 150 115 168 102 88 146 150 115 168 102 88
++146 150 115 168 102 88 146 150 115 168 102 88 146 150 115 168 102 88 146 150 115 168 102 88
++138 126 108 168 102 88 157 148 53 138 126 108 195 113 123 157 148 53 168 146 127 168 146 127
++168 146 127 201 146 124 168 146 127 201 146 124 201 146 124 177 169 143 201 146 124 168 146 127
++177 171 115 201 146 124 217 168 156 177 169 143 217 168 156 177 169 143 217 168 156 197 171 123
++177 169 143 201 146 124 177 171 115 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124
++201 146 124 168 146 127 201 146 124 177 169 143 217 168 156 177 169 143 145 140 145 117 99 86
++88 83 88 88 83 74 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 74
++88 83 88 88 83 88 88 83 88 88 83 74 88 83 88 88 83 88 88 83 88 99 93 84
++88 83 88 88 83 88 88 83 74 88 83 74 75 81 76 75 72 67 75 72 67 75 63 62
++65 63 61 75 63 62 65 63 61 65 55 54 59 55 55 63 55 51 59 55 55 59 55 55
++52 55 48 59 55 55 48 50 48 48 50 48 47 44 42 43 42 50 42 41 42 42 41 42
++33 39 38 42 41 42 36 35 37 42 41 42 33 39 38 36 35 37 42 41 42 42 41 42
++42 41 42 42 41 42 47 44 42 47 44 42 48 44 48 53 46 48 53 46 48 48 50 48
++53 46 48 52 55 48 53 46 48 53 46 48 53 46 48 59 55 55 59 55 55 59 55 55
++59 55 55 65 55 54 63 55 51 65 63 61 65 63 61 59 69 70 75 72 67 65 63 61
++75 72 67 75 72 67 75 72 67 75 81 76 75 72 67 75 72 67 75 72 67 99 93 84
++111 119 127 166 156 164 185 202 202 201 216 228 201 216 228 225 222 201 201 216 228 185 202 202
++148 160 159 145 140 145 145 140 145 168 146 127 177 169 143 166 156 164 177 169 143 168 146 127
++168 146 127 146 162 145 166 156 164 177 169 143 168 146 127 177 169 143 177 169 143 177 169 143
++189 165 168 189 165 168 166 180 164 148 160 159 148 160 159 166 174 181 201 216 228 233 241 227
++233 241 227 201 216 228 221 238 247 233 241 227 208 221 247 233 241 227 201 216 228 221 238 247
++233 241 227 221 238 247 221 238 247 231 239 247 240 251 247 251 251 247 246 237 247 185 202 202
++166 180 164 145 140 145 111 119 127 95 119 107 112 96 108 98 113 84 112 123 108 112 96 108
++117 99 86 94 105 108 98 113 84 112 96 108 90 98 89 99 93 84 90 98 89 90 98 89
++88 83 88 87 99 72 88 83 88 88 83 88 90 98 89 88 83 74 88 83 88 75 81 82
++75 81 76 88 66 70 75 81 76 75 81 76 75 72 67 75 72 67 75 72 67 75 63 62
++75 72 67 75 73 58 65 63 61 75 72 67 75 73 58 65 63 61 75 73 58 65 63 61
++65 63 61 65 63 61 65 63 61 75 63 62 65 63 61 75 63 62 65 55 54 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 75 63 62 75 63 62
++75 72 67 75 72 67 75 72 67 88 83 74 75 72 67 75 81 76 75 81 76 75 72 67
++88 83 74 75 81 76 75 81 76 88 83 74 88 83 88 88 83 74 88 83 88 88 83 74
++88 69 84 88 83 74 75 81 76 88 66 70 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 88 73 62 75 73 58 75 72 67 75 73 58 75 72 67 75 73 58
++75 77 62 75 77 62 75 81 69 75 77 62 88 83 74 88 83 74 88 83 74 87 99 72
++88 83 74 87 99 72 99 93 84 99 93 84 90 98 89 98 113 84 117 99 86 98 113 84
++98 113 84 98 113 84 117 127 86 98 113 84 112 123 108 98 113 84 99 93 84 99 93 84
++98 113 84 99 93 84 99 93 84 99 93 84 87 99 72 88 83 74 88 83 74 88 83 74
++75 72 67 75 73 58 75 73 58 64 70 48 75 56 53 75 56 53 75 63 62 75 63 62
++
++52 55 48 52 55 48 55 55 48 52 55 48 59 55 55 52 55 48 59 55 55 52 55 48
++59 55 55 52 55 48 62 47 47 59 55 55 63 55 51 65 55 54 65 55 54 75 63 62
++75 63 62 88 73 62 88 73 62 88 73 62 101 74 26 120 63 71 88 73 62 120 63 71
++101 74 26 101 83 74 120 63 71 101 74 26 120 63 71 122 49 24 117 112 45 120 63 71
++161 55 23 120 63 71 117 112 45 167 63 71 117 112 45 161 55 23 117 99 86 161 55 23
++120 63 71 120 63 71 161 55 23 120 63 71 122 49 24 122 49 24 88 44 51 122 49 24
++102 33 26 102 33 26 88 44 51 88 30 18 76 44 53 88 30 18 88 44 51 88 30 18
++76 44 53 88 30 18 88 44 51 88 30 18 88 44 51 88 44 51 76 46 20 88 44 51
++76 44 53 76 44 53 76 46 20 76 44 53 62 47 47 62 47 47 76 46 20 62 47 47
++76 44 53 62 47 47 76 44 53 60 49 42 76 44 53 76 44 53 60 49 42 59 36 42
++76 44 53 59 36 42 76 44 53 59 36 42 76 44 53 76 46 20 76 44 53 59 36 42
++88 44 51 76 44 53 76 44 53 88 44 51 88 44 51 88 44 51 75 56 53 88 44 51
++88 44 51 75 56 53 88 44 51 75 56 53 88 44 51 75 56 53 76 44 53 76 46 20
++75 56 53 63 55 45 76 44 53 75 56 53 63 55 51 65 55 54 63 55 51 65 55 54
++65 55 54 63 55 51 62 47 47 65 55 54 63 55 51 59 55 55 65 55 54 65 55 54
++63 55 51 59 55 55 65 55 54 59 55 55 65 55 54 63 55 51 65 55 54 65 55 54
++65 55 54 75 56 53 65 57 61 65 55 54 65 55 54 65 55 54 75 56 53 62 47 47
++65 55 54 63 55 51 63 55 51 75 56 53 65 63 61 75 63 62 75 56 53 75 63 62
++65 63 61 75 73 58 75 63 62 75 72 67 75 72 67 75 72 67 88 66 70 75 81 76
++88 66 70 88 83 74 88 83 74 88 66 70 88 83 74 88 69 84 88 83 74 88 83 74
++88 69 84 88 83 74 101 83 74 88 83 88 99 93 84 99 93 84 99 93 84 95 91 100
++101 83 74 99 93 84 88 83 88 99 93 84 99 93 84 95 91 100 99 93 84 99 93 84
++99 93 84 99 93 84 117 99 86 95 91 100 117 99 86 99 93 84 99 93 84 99 93 84
++99 93 84 99 93 84 99 93 84 101 83 74 99 93 84 101 83 74 101 83 74 101 83 74
++101 83 74 101 83 74 88 66 70 101 83 74 88 66 70 88 73 62 88 66 70 88 73 62
++75 63 62 75 56 53 88 66 70 75 56 53 75 56 53 75 63 62 75 56 53 75 63 62
++75 56 53 75 63 62 75 56 53 75 56 53 75 63 62 75 56 53 75 63 62 75 63 62
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 88 73 62 75 56 53
++88 73 62 75 56 53 88 73 62 88 73 62 88 73 62 75 63 62 88 73 62 88 73 62
++88 73 62 101 60 73 88 73 31 101 60 73 88 73 62 88 44 51 120 63 71 88 73 62
++120 63 71 88 73 62 120 63 71 88 73 62 120 63 71 88 73 62 120 63 71 101 60 73
++120 63 71 101 83 74 120 63 71 101 83 74 101 83 74 120 63 71 101 83 74 117 99 86
++120 63 71 95 91 100 120 63 71 112 96 108 101 83 74 112 96 108 99 93 84 112 96 108
++120 63 71 112 96 108 117 99 86 99 93 84 117 99 86 99 93 84 101 83 74 99 93 84
++112 96 108 101 83 74 95 91 100 99 93 84 99 93 84 88 83 88 99 93 84 101 83 74
++88 83 88 88 83 74 88 66 70 88 83 74 88 66 70 75 72 67 75 63 62 75 73 58
++75 63 62 75 73 58 75 63 62 75 73 58 75 56 53 75 73 58 75 72 67 75 63 62
++75 63 62 75 72 67 75 63 62 75 73 58 75 73 58 88 73 62 88 44 51 102 33 26
++59 36 42 120 63 71 168 146 127 232 215 228 232 215 228 185 202 202 188 180 202 194 199 226
++185 202 202 166 176 200 150 168 183 166 174 181 185 202 202 185 202 202 185 202 202 185 202 202
++166 176 200 166 174 181 166 174 181 166 176 200 201 216 228 226 221 247 235 238 247 194 199 226
++94 105 108 22 23 31 3 3 1 7 10 17 17 12 17 17 12 17 15 17 7 3 4 9
++3 3 1 3 3 1 3 3 1 3 4 9 17 12 17 22 23 31 22 25 24 22 25 24
++22 25 24 22 25 24 22 24 13 13 4 7 3 3 1 33 39 38 95 91 100 148 160 159
++166 174 181 166 174 181 166 174 181 188 180 202 201 216 228 240 251 247 251 251 247 240 251 247
++251 251 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 240 251 247 201 216 228 185 202 202 188 180 202 166 176 200 166 176 200 194 199 226
++194 199 226 201 216 228 201 216 228 208 221 247 221 238 247 221 238 247 240 251 247 231 239 247
++240 251 247 231 239 247 231 239 247 231 239 247 231 239 247 240 251 247 235 238 247 240 251 247
++231 239 247 231 239 247 240 251 247 231 239 247 240 251 247 231 239 247 231 239 247 231 239 247
++240 251 247 231 239 247 235 238 247 226 221 247 246 237 247 246 237 247 222 171 182 163 117 123
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 195 113 123 167 63 71
++167 63 71 195 113 123 167 63 71 195 113 123 167 63 71 167 63 71 167 63 71 161 55 23
++176 103 41 168 102 88 219 175 47 214 214 134 219 175 47 219 175 47 214 214 134 219 175 47
++214 214 134 219 175 47 219 175 47 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47
++214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47
++214 214 134 219 175 47 177 171 115 219 175 47 177 171 115 157 148 53 177 171 115 146 150 115
++138 126 108 177 169 143 188 180 202 225 222 201 246 237 247 251 251 247 231 239 247 188 180 202
++141 116 139 112 96 108 138 126 108 145 140 145 189 165 168 217 168 156 177 169 143 168 146 127
++168 146 127 138 126 108 168 146 127 168 102 88 177 171 115 168 146 127 168 146 127 168 146 127
++168 146 127 168 102 88 146 150 115 168 102 88 146 150 115 168 102 88 146 150 115 168 146 127
++157 148 53 163 117 123 157 148 53 163 117 123 138 126 108 138 126 108 168 102 88 146 150 115
++168 102 88 138 126 108 138 126 108 168 102 88 146 150 115 168 146 127 168 102 88 177 171 115
++168 102 88 177 171 115 168 146 127 177 171 115 168 146 127 201 146 124 168 146 127 197 171 123
++201 146 124 177 169 143 197 171 123 197 171 123 217 168 156 197 171 123 217 168 156 177 169 143
++197 171 123 177 169 143 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 177 169 143
++201 146 124 177 169 143 168 146 127 201 146 124 177 169 143 189 165 168 168 146 127 112 96 108
++99 93 84 88 83 74 88 83 88 88 83 88 88 83 88 88 83 88 90 98 89 88 83 88
++88 83 88 88 83 74 99 93 84 88 83 88 99 93 84 88 83 88 99 93 84 88 83 88
++88 83 74 88 83 88 88 83 74 88 69 84 75 81 69 75 72 67 75 72 67 75 63 62
++65 63 61 75 73 58 65 63 61 65 63 61 63 55 51 65 55 54 59 55 55 59 55 55
++59 55 55 48 50 48 48 50 48 48 44 48 48 44 48 42 41 42 42 41 42 34 40 43
++42 38 42 36 35 37 36 35 37 36 35 37 42 41 42 36 35 37 42 41 42 42 41 42
++42 38 42 42 41 42 47 44 42 47 44 42 53 46 48 51 49 42 53 46 48 53 46 48
++52 55 48 53 46 48 53 46 48 52 55 48 55 55 48 59 55 55 55 55 48 59 55 55
++59 55 55 65 63 61 65 63 61 65 63 61 75 63 62 75 72 67 65 63 61 65 63 61
++75 72 67 75 72 67 75 81 76 75 72 67 65 63 61 65 63 61 90 98 89 150 144 154
++232 215 228 233 241 227 240 251 247 233 241 227 201 216 228 233 241 227 201 216 228 185 202 202
++150 144 154 126 147 144 146 162 145 189 165 168 177 169 143 166 180 164 177 169 143 166 156 164
++166 180 164 166 156 164 166 156 164 166 156 164 177 169 143 177 169 143 177 169 143 177 169 143
++189 165 168 189 165 168 150 171 159 145 140 145 148 160 159 201 216 228 233 241 227 226 221 247
++201 216 228 233 241 227 201 216 228 233 241 227 201 216 228 233 241 227 221 238 247 232 215 228
++201 216 228 233 241 227 201 216 228 233 241 227 221 238 247 235 238 247 233 241 227 232 215 228
++185 202 202 225 222 201 166 174 181 138 126 108 94 105 108 112 96 108 94 105 108 112 123 108
++95 91 100 112 96 108 98 113 84 95 91 100 90 98 89 90 98 89 99 93 84 90 98 89
++88 83 88 88 83 88 90 98 89 88 83 88 88 83 74 75 81 82 75 81 76 75 81 76
++88 83 74 75 81 76 88 66 70 75 81 76 75 72 67 75 72 67 75 63 62 65 63 61
++75 72 67 65 63 61 75 72 67 65 63 61 75 63 62 65 63 61 65 63 61 65 63 61
++75 73 58 65 63 61 64 70 48 65 63 61 75 56 53 65 63 61 75 56 53 65 63 61
++65 55 54 65 63 61 75 56 53 65 63 61 65 55 54 65 63 61 65 63 61 75 72 67
++75 72 67 75 72 67 88 83 74 75 81 76 75 81 76 88 66 70 75 81 76 75 81 76
++75 81 76 88 83 74 88 83 74 75 81 82 88 83 74 88 83 88 88 83 88 88 83 74
++88 83 88 88 83 74 88 83 74 75 81 76 88 83 74 75 72 67 88 66 70 75 72 67
++88 73 62 75 72 67 75 63 62 75 72 67 75 73 58 88 73 62 75 73 58 75 73 58
++75 72 67 88 73 62 75 77 62 88 83 74 75 81 69 88 83 74 88 83 74 88 83 74
++88 83 88 87 99 72 99 93 84 90 98 89 98 113 84 99 93 84 98 113 84 90 98 89
++98 113 84 112 96 108 98 113 84 117 99 86 98 113 84 117 99 86 98 113 84 99 93 84
++90 98 89 99 93 84 87 99 72 99 93 84 88 83 74 88 83 74 88 83 74 75 77 62
++75 77 62 75 73 58 75 63 62 63 55 51 64 70 48 75 56 53 75 73 58 75 56 53
++
++55 55 48 55 55 48 55 55 48 55 55 48 52 55 48 59 55 55 53 46 48 59 55 55
++59 55 55 53 46 48 63 55 51 62 47 47 63 55 51 65 55 54 75 56 53 75 56 53
++88 73 62 88 44 51 88 73 62 88 73 62 88 73 62 101 83 74 101 74 26 120 63 71
++117 112 45 120 63 71 101 74 26 120 63 71 117 112 45 120 63 71 120 63 71 122 49 24
++117 112 45 176 103 41 120 63 71 161 55 23 120 63 71 176 103 41 120 63 71 161 55 23
++117 112 45 161 55 23 120 63 71 122 49 24 122 49 24 122 49 24 122 49 24 102 33 26
++102 33 26 88 30 18 102 33 26 88 30 18 88 30 18 76 18 19 88 44 51 88 30 18
++88 44 51 102 33 26 76 44 53 88 30 18 88 44 51 88 30 18 88 44 51 76 46 20
++88 44 51 76 46 20 76 44 53 76 44 53 76 46 20 76 44 53 76 44 53 59 36 42
++62 47 47 76 46 20 76 44 53 60 49 42 76 44 53 62 47 47 76 44 53 76 46 20
++59 36 42 62 47 47 76 46 20 59 36 42 76 44 53 59 36 42 76 44 53 62 47 47
++76 44 53 76 46 20 88 44 51 75 56 53 88 44 51 75 56 53 88 44 51 88 73 31
++75 56 53 88 44 51 75 56 53 88 44 51 75 56 53 75 56 53 76 44 53 75 56 53
++76 44 53 76 44 53 63 55 45 75 56 53 75 56 53 65 55 54 65 55 54 65 55 54
++65 55 54 65 55 54 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51
++63 55 51 63 55 51 63 55 51 63 55 51 59 55 55 63 55 51 65 55 54 65 55 54
++65 55 54 65 57 61 65 55 54 65 55 54 75 56 53 65 55 54 65 55 54 65 55 54
++75 56 53 63 55 51 65 55 54 65 55 54 75 56 53 75 63 62 75 63 62 75 63 62
++75 63 62 75 63 62 75 72 67 88 66 70 88 73 62 88 83 74 88 66 70 88 83 74
++75 81 76 88 66 70 88 83 74 88 69 84 88 83 74 88 83 74 88 69 84 88 83 74
++88 83 74 88 83 74 88 83 88 101 83 74 99 93 84 88 69 84 99 93 84 101 83 74
++95 91 100 101 83 74 99 93 84 101 83 74 99 93 84 101 83 74 112 96 108 101 83 74
++99 93 84 99 93 84 99 93 84 99 93 84 99 93 84 99 93 84 101 83 74 101 83 74
++101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 88 69 84 101 83 74 88 69 84
++101 83 74 88 66 70 88 66 70 88 66 70 88 73 62 88 66 70 88 73 62 88 66 70
++75 56 53 88 66 70 75 56 53 75 56 53 88 66 70 75 56 53 75 63 62 88 44 51
++75 63 62 75 56 53 75 56 53 75 63 62 75 56 53 75 63 62 75 56 53 75 63 62
++75 56 53 75 63 62 75 63 62 75 56 53 75 63 62 75 56 53 75 56 53 75 56 53
++75 56 53 63 55 45 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 88 73 62
++75 56 53 88 73 62 88 44 51 88 73 62 75 56 53 88 73 62 88 73 62 88 44 51
++88 73 62 88 73 62 88 44 51 88 73 62 101 60 73 88 73 62 88 73 62 88 73 62
++120 63 71 88 73 62 120 63 71 101 83 74 120 63 71 88 73 62 120 63 71 101 83 74
++101 60 73 101 83 74 101 83 74 101 60 73 101 83 74 120 63 71 112 96 108 101 60 73
++112 96 108 101 83 74 101 83 74 117 99 86 101 83 74 112 96 108 101 83 74 112 96 108
++117 99 86 112 96 108 101 83 74 112 96 108 117 99 86 112 96 108 99 93 84 112 96 108
++101 83 74 95 91 100 117 99 86 99 93 84 95 91 100 99 93 84 99 93 84 88 83 88
++101 83 74 88 83 74 88 83 74 88 83 74 88 66 70 75 72 67 88 73 62 75 63 62
++75 73 58 75 63 62 75 56 53 75 73 58 75 63 62 75 63 62 75 63 62 75 63 62
++75 63 62 75 72 67 75 63 62 88 73 62 75 56 53 101 60 73 120 63 71 88 44 51
++76 18 19 120 63 71 189 165 168 222 171 182 201 216 228 188 180 202 185 202 202 201 216 228
++166 176 200 150 168 183 148 160 159 166 176 200 194 199 226 201 216 228 201 216 228 201 216 228
++201 216 228 188 180 202 166 174 181 150 168 183 166 156 164 166 174 181 166 174 181 122 134 144
++59 69 70 23 20 24 3 4 9 14 16 17 23 18 22 14 16 17 17 12 17 7 12 13
++13 4 7 3 4 9 7 12 13 12 18 20 22 23 31 26 24 32 26 30 28 23 18 22
++14 16 17 7 12 13 3 3 1 3 3 1 43 55 48 111 119 127 166 174 181 201 216 228
++201 216 228 185 202 202 194 199 226 226 221 247 240 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 240 251 247 251 251 247 240 251 247 251 251 247 251 251 247
++231 239 247 201 216 228 185 202 202 188 180 202 185 202 202 185 202 202 201 216 228 201 216 228
++201 216 228 221 238 247 231 239 247 231 239 247 231 239 247 231 239 247 221 238 247 231 239 247
++231 239 247 240 251 247 240 251 247 235 238 247 235 238 247 235 238 247 240 251 247 235 238 247
++240 251 247 240 251 247 231 239 247 240 251 247 240 251 247 231 239 247 231 239 247 240 251 247
++240 251 247 235 238 247 233 241 227 235 238 247 251 251 247 232 215 228 195 113 123 138 102 108
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++195 113 123 167 63 71 195 113 123 195 113 123 176 103 41 167 63 71 167 63 71 161 55 23
++167 63 71 157 148 53 219 175 47 214 214 134 214 214 134 219 175 47 214 214 134 219 175 47
++219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 219 175 47 214 214 134 219 175 47
++214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47
++214 214 134 219 175 47 214 214 134 177 171 115 177 171 115 177 171 115 146 150 115 177 171 115
++177 169 143 208 215 180 233 241 227 251 251 247 240 251 247 232 215 228 166 174 181 138 126 108
++117 99 86 117 99 86 138 126 108 168 146 127 177 169 143 177 169 143 168 146 127 168 146 127
++168 102 88 168 146 127 168 146 127 168 146 127 168 146 127 168 102 88 168 146 127 163 117 123
++157 148 53 168 146 127 168 146 127 146 150 115 168 102 88 168 146 127 146 150 115 168 102 88
++163 117 123 146 150 115 168 102 88 146 150 115 168 102 88 157 148 53 117 127 86 168 102 88
++138 126 108 157 148 53 168 102 88 138 126 108 157 148 53 168 102 88 146 150 115 168 102 88
++168 146 127 168 146 127 168 146 127 168 146 127 201 146 124 177 171 115 201 146 124 168 146 127
++201 146 124 168 146 127 217 168 156 197 171 123 217 168 156 177 169 143 217 168 156 197 171 123
++217 168 156 197 171 123 217 168 156 197 171 123 177 169 143 201 146 124 177 169 143 201 146 124
++201 146 124 168 146 127 201 146 124 168 146 127 197 171 123 189 165 168 168 146 127 138 126 108
++99 93 84 99 93 84 88 83 88 99 93 84 95 91 100 99 93 84 88 83 88 88 83 74
++99 93 84 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88
++88 83 88 88 83 88 88 83 74 88 83 74 88 83 74 75 72 67 75 72 67 75 72 67
++75 63 62 65 63 61 65 63 61 65 63 61 65 63 61 59 55 55 65 63 61 59 55 55
++52 55 48 59 55 55 52 55 48 48 50 48 48 44 48 42 47 42 42 41 42 42 41 42
++42 41 42 33 39 38 42 41 42 36 35 37 36 35 37 42 41 42 36 35 37 42 41 42
++42 41 42 47 44 42 47 44 42 51 49 42 53 46 48 53 46 48 53 46 48 52 55 48
++53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 55 55 48 59 55 55 59 55 55
++65 63 61 65 55 54 65 63 61 65 63 61 65 63 61 75 63 62 59 69 70 75 72 67
++65 63 61 75 72 67 75 72 67 65 63 61 65 63 61 95 91 100 166 156 164 233 241 227
++251 251 247 251 251 247 231 239 247 232 215 228 201 216 228 201 216 228 201 216 228 185 202 202
++148 160 159 145 140 145 177 169 143 189 165 168 189 165 168 177 169 143 217 168 156 197 171 123
++217 168 156 197 171 123 217 168 156 197 171 123 217 168 156 197 171 123 217 168 156 189 165 168
++217 168 156 166 180 164 138 126 108 146 151 137 166 174 181 233 241 227 233 241 227 201 216 228
++233 241 227 201 216 228 221 238 247 233 241 227 208 221 247 233 241 227 201 216 228 233 241 227
++201 216 228 221 238 247 232 215 228 221 238 247 201 216 228 233 241 227 201 216 228 201 216 228
++194 199 226 225 222 201 194 199 226 166 156 164 112 123 108 95 91 100 98 113 84 112 96 108
++98 113 84 94 105 108 117 99 86 94 105 108 117 99 86 95 91 100 90 98 89 88 83 88
++90 98 89 90 98 89 88 83 74 78 98 90 88 83 88 88 83 88 88 83 74 75 81 82
++75 72 67 75 81 76 75 64 82 75 81 76 75 72 67 75 72 67 75 72 67 65 63 61
++75 72 67 65 63 61 65 63 61 65 63 61 75 73 58 65 63 61 75 63 62 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 55 54 65 63 61 63 55 51
++65 63 61 65 63 61 65 63 61 63 55 51 65 63 61 65 63 61 65 63 61 75 63 62
++75 72 67 75 72 67 75 81 76 75 72 67 88 83 74 75 81 76 75 72 67 75 81 76
++88 83 74 75 81 76 88 83 88 88 83 74 88 83 88 88 83 88 88 83 74 88 83 88
++88 83 74 88 83 88 88 83 74 88 69 84 75 81 76 88 83 74 75 81 69 88 73 62
++75 72 67 88 73 62 75 72 67 88 73 62 75 72 67 75 77 62 75 72 67 75 77 62
++75 72 67 75 73 58 75 77 62 75 77 62 75 77 62 88 83 74 75 81 76 88 83 74
++88 83 74 88 83 74 88 83 74 87 99 72 99 93 84 99 93 84 99 93 84 98 113 84
++99 93 84 98 113 84 99 93 84 98 113 84 99 93 84 90 98 89 99 93 84 87 99 72
++99 93 84 99 93 84 99 93 84 88 83 74 88 83 74 88 83 74 75 77 62 88 73 62
++75 73 58 75 73 58 75 56 53 64 70 48 63 55 51 65 55 54 65 55 54 75 63 62
++
++55 55 48 55 55 48 63 55 51 55 55 48 55 55 48 55 55 48 55 55 48 59 55 55
++62 47 47 62 47 47 62 47 47 63 55 45 75 56 53 75 56 53 75 56 53 88 73 62
++75 56 53 88 73 62 101 74 26 101 60 73 101 74 26 120 63 71 101 74 26 120 63 71
++101 74 26 120 63 71 122 49 24 120 63 71 122 49 24 161 55 23 117 112 45 167 63 71
++122 49 24 120 63 71 176 103 41 120 63 71 176 103 41 120 63 71 161 55 23 117 112 45
++120 63 71 161 55 23 101 74 26 120 63 71 122 49 24 122 49 24 88 44 51 122 49 24
++102 33 26 102 33 26 102 33 26 88 44 51 102 33 26 88 44 51 88 30 18 88 30 18
++88 44 51 88 30 18 88 44 51 102 33 26 88 44 51 102 33 26 88 44 51 88 44 51
++76 46 20 88 44 51 88 44 51 76 46 20 76 44 53 59 36 42 76 46 20 62 47 47
++60 49 42 76 44 53 60 49 42 60 49 42 60 49 42 60 49 42 62 47 47 59 36 42
++76 44 53 59 36 42 59 36 42 76 44 53 59 36 42 76 46 20 76 44 53 59 36 42
++88 44 51 60 49 42 88 44 51 76 44 53 88 44 51 75 56 53 88 44 51 75 56 53
++88 44 51 75 56 53 88 44 51 75 56 53 76 46 20 88 44 51 75 56 53 76 44 53
++63 55 45 75 56 53 75 56 53 75 56 53 65 55 54 65 55 54 65 55 54 65 55 54
++65 55 54 62 47 47 63 55 51 62 47 47 59 55 55 63 55 51 63 55 51 59 55 55
++63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 65 55 54 65 55 54 65 55 54
++65 55 54 65 55 54 75 56 53 65 57 61 65 55 54 65 55 54 75 56 53 65 55 54
++63 55 45 65 55 54 75 56 53 75 63 62 75 63 62 75 63 62 75 63 62 75 73 58
++75 72 67 88 73 62 75 72 67 88 83 74 88 83 74 88 66 70 88 83 74 88 83 74
++88 83 88 88 83 74 88 83 74 88 83 74 88 83 74 88 83 74 88 83 74 88 69 84
++101 83 74 88 83 88 101 83 74 88 83 88 101 83 74 99 93 84 99 93 84 99 93 84
++101 83 74 95 91 100 101 83 74 95 91 100 101 83 74 99 93 84 101 83 74 99 93 84
++101 83 74 99 93 84 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74
++101 83 74 88 69 84 101 83 74 88 83 74 101 83 74 88 66 70 101 83 74 88 66 70
++88 66 70 88 73 62 88 73 62 88 73 62 75 63 62 75 56 53 75 63 62 75 56 53
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 63 62
++75 56 53 75 56 53 75 63 62 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 63 55 51 63 55 51
++63 55 51 75 56 53 63 55 45 75 56 53 75 73 36 75 56 53 75 56 53 75 56 53
++75 56 53 88 73 62 88 73 62 88 73 62 88 73 62 88 66 70 88 73 62 88 73 62
++101 60 73 88 73 62 101 60 73 88 73 62 88 73 62 120 63 71 88 73 62 120 63 71
++88 73 62 101 83 74 101 83 74 88 73 62 120 63 71 101 83 74 120 63 71 88 73 62
++120 63 71 101 83 74 120 63 71 101 83 74 120 63 71 95 91 100 120 63 71 117 99 86
++101 83 74 112 96 108 120 63 71 112 96 108 117 99 86 117 99 86 112 96 108 117 99 86
++99 93 84 117 99 86 112 96 108 101 83 74 112 96 108 117 99 86 112 96 108 101 83 74
++112 96 108 117 99 86 88 83 88 117 99 86 88 83 88 101 83 74 95 91 100 101 83 74
++88 83 88 88 83 88 88 83 74 88 69 84 88 73 62 75 72 67 75 63 62 75 63 62
++75 63 62 88 73 62 75 63 62 75 63 62 75 63 62 75 73 58 75 63 62 75 63 62
++75 73 58 75 63 62 88 73 62 75 63 62 88 73 62 120 63 71 122 49 24 88 44 51
++76 18 19 101 60 73 195 113 123 232 215 228 185 202 202 188 180 202 185 202 202 188 180 202
++150 168 183 145 140 145 129 144 153 166 174 181 188 180 202 166 174 181 166 174 181 166 156 164
++166 156 164 129 144 153 111 119 127 88 83 88 54 57 61 48 50 48 42 41 42 30 30 34
++23 18 22 7 12 13 7 12 13 17 12 17 15 17 7 17 12 17 15 17 7 7 12 13
++14 16 17 14 16 17 17 12 17 23 20 24 22 23 31 23 20 24 23 20 24 14 16 17
++13 4 7 3 3 1 3 4 9 48 50 48 122 134 144 201 216 228 251 251 247 240 251 247
++235 238 247 231 239 247 235 238 247 240 251 247 240 251 247 251 251 247 251 251 247 240 251 247
++240 251 247 235 238 247 231 239 247 221 238 247 231 239 247 240 251 247 240 251 247 231 239 247
++201 216 228 185 202 202 194 199 226 201 216 228 233 241 227 226 221 247 231 239 247 233 241 227
++231 239 247 235 238 247 240 251 247 231 239 247 240 251 247 231 239 247 231 239 247 231 239 247
++240 251 247 240 251 247 231 239 247 240 251 247 240 251 247 246 237 247 240 251 247 246 237 247
++240 251 247 240 251 247 240 251 247 240 251 247 235 238 247 231 239 247 231 239 247 240 251 247
++240 251 247 231 239 247 226 221 247 251 251 247 246 237 247 217 168 156 138 102 108 102 33 26
++120 63 71 167 63 71 122 49 24 167 63 71 161 55 23 161 55 23 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 195 113 123 167 63 71 167 63 71 167 63 71
++176 103 41 167 63 71 219 175 47 227 171 124 219 175 47 214 214 134 219 175 47 214 214 134
++219 175 47 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47
++214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47
++214 214 134 157 148 53 214 214 134 157 148 53 177 171 115 177 171 115 177 171 115 185 202 202
++201 216 228 251 251 247 251 251 247 240 251 247 194 199 226 168 146 127 112 96 108 117 99 86
++138 126 108 138 126 108 163 117 123 138 126 108 168 146 127 168 146 127 168 146 127 168 146 127
++146 150 115 168 146 127 168 102 88 177 171 115 201 146 124 177 171 115 168 146 127 168 102 88
++168 146 127 168 102 88 146 150 115 168 102 88 177 171 115 168 102 88 146 150 115 146 150 115
++168 102 88 138 126 108 168 102 88 138 126 108 138 126 108 138 126 108 168 102 88 138 126 108
++168 102 88 138 126 108 117 114 76 168 102 88 117 114 76 168 102 88 138 126 108 168 102 88
++146 150 115 168 102 88 177 171 115 201 146 124 168 146 127 201 146 124 168 146 127 201 146 124
++177 171 115 201 146 124 197 171 123 177 169 143 217 168 156 197 171 123 197 171 123 189 165 168
++197 171 123 177 169 143 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 168 146 127
++177 169 143 201 146 124 168 146 127 201 146 124 177 169 143 197 171 123 189 165 168 168 146 127
++117 99 86 99 93 84 88 83 88 99 93 84 88 83 88 88 83 88 88 83 88 88 83 88
++88 83 88 88 83 88 99 93 84 88 83 88 99 93 84 99 93 84 88 83 88 99 93 84
++88 83 88 88 83 88 88 83 74 88 69 84 75 81 76 88 66 70 75 72 67 75 63 62
++65 63 61 65 63 61 65 63 61 65 55 54 65 63 61 64 70 48 59 55 55 59 55 55
++55 55 48 55 55 48 52 55 48 48 50 48 48 50 48 43 42 50 42 41 42 34 40 43
++42 38 42 36 35 37 36 35 37 33 39 38 42 38 42 36 35 37 42 41 42 42 41 42
++47 44 42 47 44 42 48 44 48 53 46 48 53 46 48 51 49 42 55 55 48 53 46 48
++55 55 48 53 46 48 55 55 48 53 46 48 55 55 48 59 55 55 59 55 55 59 55 55
++59 55 55 65 63 61 65 63 61 65 63 61 75 63 62 75 72 67 75 63 62 75 72 67
++65 63 61 75 63 62 59 57 61 65 63 61 94 105 108 166 180 164 246 237 247 251 251 247
++240 251 247 221 238 247 201 216 228 201 216 228 225 222 201 221 238 247 225 222 201 201 216 228
++166 180 164 111 119 127 146 151 137 217 168 156 197 171 123 227 171 124 227 171 124 227 171 124
++227 171 124 227 171 124 227 171 124 227 171 124 227 171 124 227 171 124 227 171 124 208 215 180
++189 165 168 146 151 137 112 96 108 148 160 159 201 216 228 233 241 227 221 238 247 233 241 227
++201 216 228 233 241 227 201 216 228 233 241 227 201 216 228 233 241 227 208 221 247 233 241 227
++221 238 247 201 216 228 233 241 227 201 216 228 233 241 227 221 238 247 201 216 228 225 222 201
++201 216 228 201 216 228 185 202 202 185 202 202 148 160 159 111 119 127 112 123 108 94 105 108
++112 96 108 98 113 84 94 105 108 99 93 84 90 98 89 95 91 100 90 98 89 99 93 84
++88 83 88 88 83 74 88 83 88 88 83 88 88 83 88 75 81 76 75 81 76 75 81 76
++75 81 76 75 72 67 75 81 76 75 72 67 75 81 76 75 72 67 75 72 67 75 72 67
++65 63 61 75 72 67 65 63 61 75 73 58 65 63 61 65 63 61 65 63 61 65 63 61
++75 56 53 64 70 48 65 55 54 65 55 54 65 55 54 65 55 54 63 55 51 65 55 54
++64 70 48 65 55 54 63 55 51 65 55 54 64 70 48 65 55 54 65 63 61 75 72 67
++75 72 67 75 72 67 75 72 67 75 81 76 75 72 67 75 81 76 88 83 74 75 81 76
++88 83 74 75 81 82 88 83 74 88 83 88 88 83 88 88 83 74 99 93 84 88 83 88
++99 93 84 88 83 88 88 83 74 88 83 74 88 83 74 88 66 70 88 83 74 88 66 70
++75 81 69 75 72 67 88 73 62 75 72 67 75 72 67 88 73 62 75 72 67 75 72 67
++75 73 58 75 63 62 75 73 58 75 73 58 75 77 62 75 81 69 88 83 74 75 81 69
++88 83 74 87 99 72 88 83 74 88 83 74 88 83 74 99 93 84 99 93 84 99 93 84
++99 93 84 99 93 84 99 93 84 87 99 72 99 93 84 87 99 72 87 99 72 99 93 84
++87 99 72 88 83 74 99 93 84 88 83 74 88 83 74 75 81 69 75 77 62 75 72 67
++75 73 58 65 55 54 64 70 48 63 55 51 63 55 45 65 55 54 64 70 48 65 63 61
++
++53 46 48 55 55 48 55 55 48 55 55 48 55 55 48 53 46 48 55 55 48 57 43 51
++63 55 51 62 47 47 75 56 53 62 47 47 75 56 53 75 56 53 88 73 62 88 44 51
++88 73 62 88 44 51 88 73 62 101 60 73 101 74 26 101 60 73 101 74 26 120 63 71
++101 74 26 120 63 71 101 74 26 120 63 71 101 74 26 120 63 71 122 49 24 120 63 71
++161 55 23 117 112 45 161 55 23 120 63 71 161 55 23 117 112 45 161 55 23 120 63 71
++161 55 23 120 63 71 161 55 23 122 49 24 120 63 71 122 49 24 122 49 24 102 33 26
++102 33 26 102 33 26 88 30 18 88 30 18 102 33 26 88 30 18 88 30 18 88 44 51
++88 30 18 88 44 51 102 33 26 88 44 51 102 33 26 88 44 51 102 33 26 88 73 31
++88 44 51 88 44 51 88 44 51 88 44 51 76 44 53 76 44 53 62 47 47 76 44 53
++76 46 20 62 47 47 76 46 20 76 44 53 59 36 42 76 44 53 59 36 42 62 47 47
++62 47 47 76 46 20 59 36 42 59 36 42 59 36 42 76 44 53 59 36 42 88 44 51
++60 49 42 76 44 53 76 46 20 88 44 51 75 56 53 88 44 51 88 44 51 88 73 62
++88 44 51 75 56 53 88 44 51 75 56 53 88 44 51 75 56 53 75 56 53 76 46 20
++76 44 53 76 44 53 63 55 45 75 56 53 75 56 53 65 55 54 75 56 53 65 55 54
++65 55 54 63 55 51 59 55 55 62 47 47 63 55 51 62 47 47 63 55 51 63 55 51
++63 55 51 63 55 51 63 55 51 59 55 55 63 55 51 63 55 51 65 55 54 65 55 54
++65 55 54 65 63 61 65 55 54 65 55 54 75 56 53 65 55 54 65 55 54 65 55 54
++75 56 53 63 55 51 65 55 54 75 56 53 75 63 62 75 73 58 88 66 70 88 73 62
++75 72 67 88 83 74 88 66 70 88 83 74 88 83 74 88 83 74 88 83 88 88 83 74
++88 83 88 88 83 74 88 83 88 88 69 84 88 83 74 88 69 84 88 83 74 88 83 74
++88 83 88 101 83 74 88 83 88 101 83 74 101 83 74 88 83 88 101 83 74 88 83 88
++99 93 84 101 83 74 88 83 88 101 83 74 101 83 74 95 91 100 101 83 74 99 93 84
++99 93 84 101 83 74 101 83 74 88 69 84 101 83 74 88 66 70 88 83 74 88 66 70
++88 83 74 88 73 62 88 83 74 88 66 70 88 66 70 88 73 62 88 66 70 88 73 62
++88 66 70 88 73 62 88 66 70 75 56 53 88 73 62 75 56 53 75 56 53 75 56 53
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53
++75 56 53 75 56 53 75 56 53 75 56 53 75 63 62 75 56 53 75 63 62 75 56 53
++65 55 54 65 55 54 75 56 53 75 56 53 75 56 53 65 55 54 75 56 53 63 55 45
++75 56 53 63 55 45 75 56 53 75 56 53 75 56 53 75 56 53 88 73 62 75 56 53
++75 56 53 88 73 62 75 63 62 88 73 62 75 56 53 88 73 62 88 73 62 88 73 62
++88 73 62 88 73 62 88 73 62 88 73 62 120 63 71 88 73 62 88 73 62 101 83 74
++120 63 71 88 73 62 120 63 71 101 83 74 101 60 73 101 83 74 101 83 74 120 63 71
++101 83 74 120 63 71 99 93 84 120 63 71 99 93 84 120 63 71 112 96 108 117 99 86
++112 96 108 117 99 86 112 96 108 112 96 108 101 83 74 112 96 108 120 63 71 112 96 108
++117 99 86 112 96 108 101 83 74 112 96 108 117 99 86 112 96 108 101 83 74 112 96 108
++99 93 84 117 99 86 95 91 100 99 93 84 95 91 100 99 93 84 99 93 84 99 93 84
++101 83 74 88 69 84 88 83 74 88 83 74 75 72 67 88 66 70 75 73 58 75 63 62
++75 73 58 75 63 62 75 73 58 75 56 53 75 63 62 75 63 62 75 73 58 75 63 62
++75 63 62 75 63 62 88 73 62 75 56 53 88 73 62 101 60 73 120 63 71 88 44 51
++76 18 19 88 44 51 163 117 123 222 171 182 194 199 226 185 202 202 185 202 202 166 176 200
++150 144 154 122 134 144 129 144 153 122 134 144 95 108 128 75 81 82 45 57 61 45 57 61
++43 42 50 42 38 42 26 24 32 12 18 20 3 4 9 7 10 17 3 4 9 7 12 13
++3 4 9 17 12 17 14 16 17 15 17 7 17 12 17 7 12 13 13 4 7 17 12 17
++17 12 17 14 16 17 14 16 17 14 16 17 12 18 20 14 16 17 14 16 17 7 12 13
++3 4 9 3 3 1 36 35 37 112 123 108 201 216 228 251 251 247 240 251 247 251 251 247
++240 251 247 240 251 247 251 251 247 240 251 247 240 251 247 240 251 247 235 238 247 231 239 247
++226 221 247 201 216 228 201 216 228 194 199 226 201 216 228 231 239 247 235 238 247 201 216 228
++201 216 228 201 216 228 231 239 247 251 251 247 240 251 247 240 251 247 240 251 247 240 251 247
++240 251 247 240 251 247 235 238 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 235 238 247 240 251 247 240 251 247 246 237 247 240 251 247 240 251 247
++246 237 247 251 251 247 240 251 247 235 238 247 231 239 247 235 238 247 240 251 247 235 238 247
++221 238 247 231 239 247 246 237 247 251 251 247 222 171 182 138 102 108 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 161 55 23 161 55 23 167 63 71 167 63 71 168 102 88 167 63 71 176 103 41
++167 63 71 161 55 23 168 102 88 219 175 47 214 214 134 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 157 148 53 214 214 134 177 171 115 177 171 115 208 215 180 225 222 201
++240 251 247 251 251 247 246 237 247 185 202 202 145 140 145 112 96 108 117 99 86 138 126 108
++163 117 123 168 146 127 146 150 115 168 102 88 146 150 115 168 102 88 146 150 115 168 102 88
++168 146 127 201 146 124 168 146 127 168 146 127 168 146 127 163 117 123 177 171 115 168 146 127
++146 150 115 177 171 115 168 102 88 168 146 127 146 150 115 168 102 88 146 150 115 168 102 88
++117 127 86 168 102 88 117 127 86 168 102 88 117 114 76 168 102 88 117 127 86 168 102 88
++117 127 86 168 102 88 168 102 88 117 127 86 168 102 88 117 127 86 168 102 88 168 146 127
++157 148 53 168 146 127 168 146 127 168 102 88 201 146 124 168 146 127 201 146 124 168 146 127
++201 146 124 168 146 127 201 146 124 197 171 123 217 168 156 177 169 143 217 168 156 201 146 124
++177 169 143 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 168 146 127 201 146 124
++201 146 124 177 171 115 201 146 124 168 146 127 201 146 124 197 171 123 189 165 168 177 169 143
++138 126 108 99 93 84 88 83 74 88 83 88 88 83 88 99 93 84 88 83 88 99 93 84
++88 83 88 99 93 84 88 83 88 88 83 74 88 83 88 88 83 88 88 83 88 99 93 84
++88 83 88 88 83 74 88 83 88 88 69 84 75 72 67 75 72 67 75 72 67 75 63 62
++65 63 61 65 63 61 75 63 62 65 63 61 59 55 55 59 55 55 65 63 61 59 55 55
++59 55 55 55 55 48 48 50 48 48 44 48 48 50 48 43 42 50 42 41 42 42 38 42
++33 39 38 42 41 42 36 35 37 42 38 42 36 35 37 42 41 42 33 39 38 42 41 42
++47 44 42 47 44 42 51 49 42 53 46 48 53 46 48 51 49 42 51 49 42 55 55 48
++53 46 48 53 46 48 53 46 48 53 46 48 53 46 48 55 55 48 59 55 55 59 55 55
++59 55 55 65 63 61 65 63 61 75 63 62 65 63 61 63 59 71 65 63 61 65 63 61
++65 63 61 59 55 55 65 63 61 90 98 89 189 165 168 251 251 247 251 251 247 251 251 247
++233 241 227 201 216 228 208 215 180 201 216 228 201 216 228 233 241 227 208 221 247 233 241 227
++166 174 181 112 123 108 146 150 115 189 165 168 217 168 156 227 171 124 227 171 124 227 171 124
++227 171 124 227 171 124 214 214 134 227 171 124 227 171 124 227 171 124 227 171 124 225 222 201
++189 165 168 145 140 145 112 123 108 148 160 159 225 222 201 201 216 228 233 241 227 201 216 228
++233 241 227 221 238 247 233 241 227 201 216 228 233 241 227 201 216 228 233 241 227 201 216 228
++233 241 227 201 216 228 233 241 227 221 238 247 201 216 228 233 241 227 221 238 247 233 241 227
++201 216 228 201 216 228 185 202 202 185 202 202 185 202 202 166 156 164 121 143 132 94 105 108
++117 99 86 94 105 108 117 99 86 98 113 84 90 98 89 95 91 100 90 98 89 90 98 89
++90 98 89 88 83 88 90 98 89 88 83 88 88 83 88 75 81 82 88 69 84 75 81 76
++75 72 67 75 81 76 75 64 82 75 72 67 75 64 82 75 81 76 75 72 67 75 72 67
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 75 56 53 65 63 61
++65 63 61 65 55 54 65 55 54 64 70 48 65 55 54 65 55 54 63 55 51 65 55 54
++63 55 51 63 55 51 63 55 51 59 55 55 63 55 51 65 63 61 65 55 54 65 63 61
++65 63 61 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 81 76
++75 81 76 88 83 74 88 83 88 88 83 74 99 93 84 88 83 88 88 83 88 88 83 74
++88 83 88 99 93 84 88 83 88 88 83 88 88 83 88 88 83 74 88 83 74 88 83 74
++88 83 74 88 66 70 75 72 67 75 72 67 75 72 67 75 72 67 75 77 62 75 72 67
++75 73 58 75 63 62 64 70 48 65 63 61 75 73 58 75 73 58 75 77 62 75 81 69
++75 81 69 75 77 62 75 77 62 75 81 69 88 83 74 75 81 69 88 83 74 87 99 72
++88 83 74 87 99 72 88 83 74 87 99 72 88 83 74 88 83 74 88 83 74 88 83 74
++88 83 74 88 83 74 88 83 74 88 83 74 75 77 62 75 77 62 75 73 58 75 73 58
++75 63 62 64 70 48 63 55 51 63 55 45 63 55 45 63 55 51 65 55 54 63 55 51
++
++55 55 48 55 55 48 63 55 51 62 47 47 62 47 47 62 47 47 62 47 47 63 55 51
++62 47 47 65 55 54 76 44 53 75 56 53 75 56 53 75 56 53 88 44 51 88 73 62
++101 60 73 88 73 62 122 49 24 88 73 62 120 63 71 101 74 26 120 63 71 101 74 26
++120 63 71 101 74 26 120 63 71 122 49 24 120 63 71 101 74 26 122 49 24 117 112 45
++122 49 24 167 63 71 117 112 45 161 55 23 117 112 45 167 63 71 120 63 71 161 55 23
++117 112 45 161 55 23 120 63 71 122 49 24 122 49 24 122 49 24 120 63 71 102 33 26
++102 33 26 102 33 26 88 44 51 88 30 18 88 44 51 88 30 18 102 33 26 102 33 26
++102 33 26 88 44 51 102 33 26 102 33 26 88 73 31 102 33 26 88 44 51 122 49 24
++88 44 51 88 73 31 88 44 51 76 46 20 76 46 20 76 44 53 59 36 42 60 49 42
++62 47 47 62 47 47 62 47 47 60 49 42 60 49 42 60 49 42 60 49 42 59 36 42
++62 47 47 59 36 42 59 36 42 76 44 53 76 46 20 59 36 42 59 36 42 76 46 20
++76 44 53 76 44 53 76 44 53 76 44 53 88 44 51 75 56 53 88 44 51 75 56 53
++88 44 51 88 73 31 76 44 53 75 56 53 75 56 53 88 44 51 75 56 53 76 44 53
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 65 57 61 65 57 61 65 55 54
++65 55 54 65 55 54 62 47 47 55 55 48 57 43 51 59 55 55 53 46 48 62 47 47
++59 55 55 57 43 51 63 55 51 63 55 51 63 55 51 63 55 51 65 55 54 65 55 54
++65 57 61 75 56 53 65 55 54 65 55 54 65 55 54 65 55 54 75 56 53 65 55 54
++63 55 45 75 56 53 75 56 53 75 63 62 75 63 62 75 63 62 88 66 70 88 83 74
++88 66 70 75 81 69 88 83 74 88 83 74 88 83 74 88 83 88 88 83 74 88 83 88
++101 83 74 88 83 88 88 83 74 88 83 74 88 83 88 101 83 74 88 83 88 101 83 74
++88 83 74 88 83 88 101 83 74 88 83 88 101 83 74 88 83 88 101 83 74 95 91 100
++101 83 74 88 69 84 101 83 74 88 83 88 101 83 74 101 83 74 101 83 74 88 83 88
++101 83 74 101 83 74 88 69 84 101 83 74 88 83 74 88 66 70 101 83 74 88 73 62
++88 66 70 88 73 62 88 66 70 88 73 62 88 83 74 88 66 70 88 73 62 88 73 62
++75 63 62 75 63 62 75 63 62 75 63 62 75 56 53 75 56 53 75 56 53 75 56 53
++75 56 53 75 56 53 75 56 53 75 56 53 76 44 53 75 56 53 75 56 53 75 56 53
++75 56 53 75 56 53 75 63 62 75 63 62 75 56 53 75 56 53 75 56 53 65 55 54
++75 56 53 65 55 54 75 56 53 65 55 54 75 56 53 63 55 51 75 56 53 62 47 47
++63 55 45 75 56 53 63 55 45 75 56 53 75 56 53 75 56 53 75 56 53 88 73 62
++75 56 53 88 73 62 75 56 53 88 73 62 88 73 62 88 66 70 88 73 62 88 66 70
++88 73 62 101 60 73 88 73 62 120 63 71 88 73 62 101 83 74 120 63 71 101 83 74
++101 83 74 101 83 74 101 60 73 101 83 74 101 83 74 120 63 71 101 83 74 101 83 74
++101 83 74 101 83 74 120 63 71 99 93 84 117 99 86 120 63 71 117 99 86 120 63 71
++112 96 108 120 63 71 112 96 108 120 63 71 112 96 108 117 99 86 112 96 108 117 99 86
++112 96 108 101 83 74 112 96 108 117 99 86 95 91 100 117 99 86 112 96 108 117 99 86
++95 91 100 117 99 86 99 93 84 99 93 84 99 93 84 99 93 84 88 83 88 99 93 84
++88 83 88 101 83 74 88 83 88 88 66 70 88 66 70 75 72 67 75 63 62 75 56 53
++88 73 62 75 63 62 75 56 53 75 63 62 75 73 58 75 63 62 75 63 62 75 63 62
++75 73 58 75 63 62 75 63 62 88 73 62 88 44 51 120 63 71 122 49 24 88 44 51
++102 33 26 88 44 51 163 117 123 189 165 168 185 202 202 194 199 226 188 180 202 166 174 181
++126 147 144 119 117 138 122 134 144 95 91 100 45 57 61 22 23 31 7 10 17 14 16 17
++23 18 22 12 18 20 7 10 17 3 4 9 3 4 9 7 12 13 7 12 13 7 10 17
++7 12 13 14 16 17 23 18 22 14 16 17 17 12 17 17 12 17 7 12 13 14 16 17
++23 18 22 23 20 24 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 7 12 13
++17 12 17 3 3 1 53 46 48 145 140 145 233 241 227 251 251 247 251 251 247 251 251 247
++251 251 247 240 251 247 231 239 247 221 238 247 208 221 247 201 216 228 201 216 228 201 216 228
++194 199 226 201 216 228 194 199 226 232 215 228 221 238 247 231 239 247 226 221 247 201 216 228
++233 241 227 233 241 227 246 237 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++240 251 247 240 251 247 240 251 247 235 238 247 240 251 247 235 238 247 231 239 247 231 239 247
++231 239 247 240 251 247 240 251 247 235 238 247 240 251 247 240 251 247 246 237 247 240 251 247
++240 251 247 240 251 247 240 251 247 235 238 247 235 238 247 240 251 247 231 239 247 231 239 247
++221 238 247 235 238 247 251 251 247 232 215 228 163 117 123 88 44 51 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++88 30 18 88 30 18 102 33 26 102 33 26 161 55 23 161 55 23 167 63 71 167 63 71
++168 102 88 176 103 41 176 103 41 219 175 47 227 171 124 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 219 175 47 214 214 134 214 214 134 219 175 47 214 214 134 214 214 134
++214 214 134 177 171 115 214 214 134 166 180 164 208 215 180 208 215 180 233 241 227 240 251 247
++251 251 247 235 238 247 188 180 202 168 146 127 112 96 108 117 99 86 138 126 108 163 117 123
++146 150 115 168 102 88 168 146 127 168 102 88 146 150 115 168 146 127 168 146 127 177 171 115
++168 146 127 138 126 108 201 146 124 168 146 127 201 146 124 168 146 127 168 146 127 168 102 88
++168 146 127 168 102 88 146 150 115 168 146 127 168 102 88 146 150 115 168 102 88 146 150 115
++168 102 88 117 127 86 168 102 88 117 114 76 168 102 88 138 126 108 117 114 76 168 102 88
++117 127 86 168 102 88 117 127 86 168 102 88 117 127 86 168 102 88 138 126 108 168 102 88
++138 126 108 168 102 88 146 150 115 168 146 127 157 148 53 201 146 124 146 150 115 201 146 124
++177 171 115 201 146 124 177 171 115 201 146 124 197 171 123 217 168 156 197 171 123 177 169 143
++197 171 123 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124
++177 169 143 201 146 124 168 146 127 197 171 123 168 146 127 177 169 143 217 168 156 177 169 143
++163 117 123 117 99 86 88 83 74 99 93 84 99 93 84 88 83 88 88 83 88 88 83 88
++99 93 84 88 83 88 88 83 88 99 93 84 88 83 88 88 83 88 99 93 84 88 83 88
++88 83 88 88 83 88 88 83 74 75 81 76 75 72 67 75 72 67 65 63 61 75 63 62
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 59 55 55 55 55 48 59 55 55
++55 55 48 52 55 48 48 50 48 48 50 48 48 44 48 42 41 42 34 40 43 42 38 42
++42 41 42 36 35 37 42 41 42 36 35 37 42 41 42 36 35 37 42 41 42 42 41 42
++47 44 42 47 44 42 48 44 48 53 46 48 48 50 48 51 49 42 53 46 48 53 46 48
++51 49 42 53 46 48 55 55 48 53 46 48 59 55 55 59 55 55 59 55 55 63 55 51
++59 55 55 65 63 61 65 63 61 65 63 61 65 63 61 75 63 62 65 63 61 65 63 61
++65 63 61 59 55 55 95 91 100 166 180 164 235 238 247 251 251 247 240 251 247 231 239 247
++201 216 228 232 215 228 201 216 228 201 216 228 225 222 201 221 238 247 233 241 227 201 216 228
++150 171 159 138 126 108 168 146 127 217 168 156 214 214 134 217 168 156 227 171 124 227 171 124
++214 214 134 217 168 156 214 214 134 227 171 124 227 171 124 227 171 124 227 171 124 225 222 201
++227 171 124 177 169 143 145 140 145 146 151 137 166 174 181 201 216 228 225 222 201 221 238 247
++232 215 228 201 216 228 233 241 227 221 238 247 201 216 228 233 241 227 208 221 247 233 241 227
++201 216 228 221 238 247 221 238 247 201 216 228 233 241 227 201 216 228 233 241 227 201 216 228
++233 241 227 201 216 228 225 222 201 201 216 228 232 215 228 225 222 201 188 180 202 121 143 132
++112 96 108 90 98 89 94 105 108 95 91 100 95 91 100 99 93 84 90 98 89 88 83 88
++88 83 74 88 83 88 88 83 74 75 81 82 88 83 74 75 81 76 75 81 76 75 81 76
++75 72 67 75 64 82 75 72 67 75 72 67 75 72 67 75 72 67 59 69 70 65 63 61
++75 72 67 65 63 61 65 63 61 75 73 58 65 63 61 65 63 61 65 63 61 64 70 48
++65 55 54 64 70 48 59 55 55 65 55 54 65 55 54 63 55 51 63 55 51 63 55 51
++59 55 55 63 55 51 55 55 48 63 55 51 55 55 48 63 55 51 65 63 61 65 55 54
++65 63 61 75 73 58 75 72 67 75 72 67 75 72 67 75 72 67 75 81 76 88 66 70
++75 81 76 75 81 76 88 83 74 75 81 82 88 83 88 88 83 74 88 83 88 99 93 84
++88 83 88 88 83 74 99 93 84 88 83 74 88 83 74 88 83 74 88 69 84 75 72 67
++88 66 70 75 81 69 88 73 62 75 72 67 75 72 67 88 73 62 75 72 67 75 73 58
++75 63 62 65 63 61 65 55 54 64 70 48 65 63 61 75 63 62 65 63 61 75 73 58
++75 73 58 75 73 58 75 77 62 75 77 62 88 83 74 75 77 62 88 83 74 75 77 62
++88 83 74 75 81 69 88 83 74 88 83 74 88 83 74 88 83 74 88 83 74 88 83 74
++88 83 74 88 83 74 75 81 69 75 81 69 88 73 62 75 73 58 65 63 61 65 63 61
++64 70 48 65 55 54 63 55 51 63 55 45 55 55 48 63 55 45 63 55 51 63 55 51
++
++53 46 48 62 47 47 59 55 55 55 55 48 57 43 51 59 55 55 62 47 47 62 47 47
++65 55 54 62 47 47 75 56 53 75 56 53 75 56 53 88 44 51 101 60 73 88 44 51
++101 74 26 88 44 51 101 60 73 88 44 51 101 74 26 101 60 73 101 74 26 120 63 71
++122 49 24 122 49 24 120 63 71 122 49 24 101 74 26 161 55 23 120 63 71 122 49 24
++167 63 71 101 74 26 161 55 23 120 63 71 167 63 71 122 49 24 176 103 41 120 63 71
++161 55 23 120 63 71 161 55 23 122 49 24 120 63 71 122 49 24 122 49 24 122 49 24
++102 33 26 102 33 26 88 30 18 102 33 26 76 18 19 88 44 51 88 30 18 88 44 51
++102 33 26 102 33 26 102 33 26 88 44 51 122 49 24 88 44 51 122 49 24 88 44 51
++122 49 24 88 44 51 88 44 51 88 44 51 76 44 53 76 44 53 76 46 20 59 36 42
++59 36 42 76 46 20 59 36 42 60 49 42 59 36 42 76 46 20 62 47 47 59 36 42
++60 49 42 59 36 42 59 36 42 59 36 42 59 36 42 59 36 42 62 47 47 76 44 53
++60 49 42 76 44 53 76 44 53 76 46 20 88 44 51 75 56 53 88 44 51 75 73 36
++88 44 51 76 44 53 88 44 51 76 46 20 75 56 53 75 56 53 76 46 20 75 56 53
++63 55 45 75 56 53 75 56 53 75 56 53 75 63 62 65 57 61 75 56 53 65 55 54
++65 55 54 65 55 54 63 55 51 62 47 47 63 55 51 53 46 48 62 47 47 59 55 55
++62 47 47 59 55 55 63 55 51 62 47 47 62 47 47 63 55 51 65 55 54 65 55 54
++65 55 54 65 55 54 65 57 61 65 55 54 75 56 53 65 55 54 65 55 54 65 55 54
++75 56 53 65 55 54 75 56 53 75 63 62 75 63 62 88 66 70 88 73 62 88 66 70
++88 83 74 88 66 70 88 83 74 88 83 74 88 83 74 101 83 74 88 83 88 101 83 74
++88 83 88 88 83 88 101 83 74 88 83 88 88 83 74 88 83 88 88 83 74 88 83 88
++101 83 74 88 83 88 101 83 74 88 83 88 101 83 74 88 83 88 101 83 74 101 83 74
++88 83 88 101 83 74 101 83 74 101 83 74 88 69 84 88 83 88 101 83 74 101 83 74
++88 69 84 101 83 74 101 83 74 101 83 74 88 66 70 88 73 62 88 73 62 88 73 62
++88 73 62 88 66 70 88 73 62 88 73 62 75 63 62 75 73 58 75 63 62 75 63 62
++75 63 62 88 73 62 75 63 62 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53
++75 56 53 65 55 54 75 56 53 76 44 53 75 56 53 75 56 53 76 44 53 75 56 53
++75 56 53 75 56 53 75 56 53 75 56 53 75 63 62 75 56 53 65 55 54 75 56 53
++63 55 45 63 55 51 63 55 51 75 56 53 63 55 51 75 56 53 63 55 51 75 56 53
++62 47 47 75 56 53 63 55 45 75 56 53 75 56 53 75 73 58 75 56 53 75 56 53
++88 73 62 75 56 53 88 73 62 88 66 70 88 73 62 88 73 62 88 73 62 88 73 62
++88 73 62 101 60 73 101 83 74 88 73 62 101 83 74 88 73 62 101 83 74 101 60 73
++101 83 74 120 63 71 101 83 74 101 83 74 101 60 73 101 83 74 101 83 74 120 63 71
++101 83 74 120 63 71 101 83 74 101 83 74 120 63 71 112 96 108 99 93 84 112 96 108
++117 99 86 112 96 108 117 99 86 112 96 108 117 99 86 112 96 108 117 99 86 112 96 108
++117 99 86 112 96 108 117 99 86 112 96 108 117 99 86 112 96 108 99 93 84 112 96 108
++117 99 86 95 91 100 101 83 74 112 96 108 101 83 74 95 91 100 99 93 84 88 83 88
++101 83 74 88 83 88 88 83 74 88 83 74 75 72 67 75 73 58 75 63 62 75 73 58
++75 56 53 75 63 62 75 63 62 75 56 53 75 63 62 75 63 62 75 73 58 75 63 62
++75 63 62 75 73 58 75 63 62 88 73 62 88 73 31 120 63 71 120 63 71 88 44 51
++102 33 26 88 44 51 163 117 123 188 180 202 188 180 202 185 202 202 188 180 202 148 160 159
++111 119 127 94 105 108 94 105 108 54 57 61 12 18 20 14 16 17 14 16 17 23 20 24
++23 20 24 22 23 31 23 18 22 23 18 22 14 16 17 23 18 22 23 18 22 17 12 17
++17 12 17 14 16 17 22 25 24 23 18 22 14 16 17 14 16 17 17 12 17 17 12 17
++14 16 17 15 22 17 23 18 22 7 12 13 14 16 17 14 16 17 23 18 22 23 18 22
++17 12 17 3 4 9 36 35 37 112 96 108 166 156 164 201 216 228 201 216 228 201 216 228
++221 238 247 226 221 247 201 216 228 201 216 228 194 199 226 194 199 226 194 199 226 185 202 202
++194 199 226 201 216 228 233 241 227 231 239 247 231 239 247 221 238 247 233 241 227 233 241 227
++235 238 247 240 251 247 240 251 247 251 251 247 240 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 240 251 247 240 251 247 240 251 247 240 251 247
++231 239 247 235 238 247 240 251 247 240 251 247 246 237 247 240 251 247 240 251 247 251 251 247
++240 251 247 240 251 247 235 238 247 240 251 247 231 239 247 231 239 247 221 238 247 233 241 227
++221 238 247 251 251 247 246 237 247 222 171 182 167 63 71 102 33 26 102 33 26 102 33 26
++161 55 23 161 55 23 161 55 23 161 55 23 161 55 23 122 49 24 161 55 23 102 33 26
++102 33 26 88 30 18 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26 161 55 23
++167 63 71 167 63 71 167 63 71 168 102 88 219 175 47 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134
++214 214 134 208 215 180 201 216 228 208 215 180 221 238 247 221 238 247 240 251 247 240 251 247
++232 215 228 189 165 168 138 126 108 138 102 108 117 114 76 163 117 123 168 146 127 146 150 115
++168 102 88 146 150 115 168 102 88 146 150 115 168 146 127 168 102 88 168 146 127 168 146 127
++168 102 88 177 171 115 138 126 108 177 171 115 168 146 127 168 146 127 201 146 124 177 171 115
++168 146 127 177 171 115 168 102 88 146 150 115 168 102 88 146 150 115 168 102 88 117 127 86
++168 102 88 117 114 76 168 102 88 117 114 76 138 126 108 117 127 86 168 102 88 117 114 76
++168 102 88 117 127 86 168 102 88 117 114 76 168 102 88 117 114 76 157 148 53 168 102 88
++138 126 108 157 148 53 168 102 88 168 102 88 168 146 127 168 102 88 177 171 115 168 102 88
++168 146 127 168 146 127 201 146 124 177 169 143 201 146 124 177 169 143 197 171 123 201 146 124
++189 165 168 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 177 169 143 168 146 127
++201 146 124 177 169 143 197 171 123 201 146 124 201 146 124 168 146 127 201 146 124 189 165 168
++177 169 143 138 126 108 99 93 84 99 93 84 88 83 88 99 93 84 88 83 88 99 93 84
++88 83 88 99 93 84 88 83 88 88 83 88 101 83 74 88 83 88 88 83 88 88 83 88
++88 83 74 88 83 88 88 83 74 75 72 67 75 72 67 75 72 67 75 63 62 65 63 61
++65 63 61 65 63 61 65 55 54 65 63 61 63 55 51 59 55 55 59 55 55 59 55 55
++52 55 48 52 55 48 48 50 48 48 44 48 42 41 42 42 41 42 34 40 43 42 41 42
++36 35 37 42 41 42 36 35 37 33 39 38 36 35 37 42 41 42 36 35 37 42 41 42
++47 44 42 47 44 42 47 44 42 51 49 42 53 46 48 53 46 48 51 49 42 51 49 42
++51 49 42 55 55 48 51 49 42 55 55 48 53 46 48 55 55 48 55 55 48 59 55 55
++59 55 55 65 55 54 65 55 54 65 63 61 65 63 61 65 63 61 65 63 61 59 55 55
++59 55 55 88 83 88 166 156 164 233 241 227 251 251 247 240 251 247 221 238 247 225 222 201
++201 216 228 225 222 201 201 216 228 233 241 227 201 216 228 233 241 227 185 202 202 166 174 181
++146 162 145 146 151 137 177 169 143 217 168 156 217 168 156 227 171 124 227 171 124 227 171 124
++214 214 134 227 171 124 225 222 201 227 171 124 227 171 124 227 171 124 227 171 124 227 171 124
++217 168 156 217 168 156 177 169 143 146 162 145 166 156 164 166 180 164 185 202 202 201 216 228
++233 241 227 221 238 247 233 241 227 201 216 228 233 241 227 201 216 228 233 241 227 201 216 228
++221 238 247 233 241 227 201 216 228 233 241 227 221 238 247 233 241 227 201 216 228 221 238 247
++233 241 227 201 216 228 232 215 228 221 238 247 240 251 247 251 251 247 233 241 227 166 174 181
++121 143 132 94 105 108 95 91 100 94 105 108 95 91 100 90 98 89 90 98 89 90 98 89
++88 83 88 88 83 74 78 98 90 88 83 74 75 81 76 88 83 74 75 81 76 75 81 76
++75 72 67 75 72 67 75 72 67 59 69 70 75 72 67 65 63 61 75 72 67 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 55 54 65 55 54
++59 55 55 65 55 54 59 55 55 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51
++55 55 48 63 55 51 55 55 48 55 55 48 55 55 48 55 55 48 63 55 51 65 55 54
++65 63 61 65 63 61 75 63 62 65 63 61 75 72 67 75 72 67 75 72 67 75 81 76
++75 81 76 88 83 74 75 81 82 88 83 74 90 98 89 88 83 74 88 83 88 88 83 74
++88 83 88 99 93 84 88 83 88 88 83 88 88 83 88 88 83 74 88 83 74 88 83 74
++75 81 69 88 66 70 75 72 67 75 63 62 75 72 67 75 72 67 75 63 62 75 63 62
++65 63 61 64 70 48 65 55 54 65 55 54 63 55 45 64 70 48 65 55 54 64 70 48
++65 63 61 75 63 62 75 73 58 75 73 58 75 77 62 88 73 62 75 77 62 75 77 62
++75 77 62 75 77 62 75 77 62 88 73 62 75 77 62 75 77 62 75 81 69 88 73 62
++75 81 69 75 81 69 88 73 62 75 72 67 75 73 58 65 63 61 75 56 53 65 63 61
++65 55 54 63 55 51 63 55 51 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48
++
++53 46 48 55 55 48 55 55 48 62 47 47 57 43 51 63 55 51 62 47 47 62 47 47
++63 55 51 76 44 53 75 56 53 88 44 51 75 56 53 88 44 51 88 73 62 88 44 51
++101 60 73 101 74 26 88 44 51 101 74 26 120 63 71 88 44 51 122 49 24 120 63 71
++101 74 26 120 63 71 101 74 26 122 49 24 120 63 71 101 74 26 122 49 24 117 112 45
++122 49 24 161 55 23 117 112 45 161 55 23 117 112 45 161 55 23 120 63 71 161 55 23
++120 63 71 161 55 23 101 74 26 122 49 24 122 49 24 122 49 24 122 49 24 88 44 51
++102 33 26 102 33 26 102 33 26 76 18 19 102 33 26 88 30 18 102 33 26 88 44 51
++102 33 26 88 44 51 122 49 24 102 33 26 88 44 51 122 49 24 120 63 71 122 49 24
++88 44 51 88 44 51 101 74 26 88 44 51 88 44 51 60 49 42 76 44 53 60 49 42
++59 36 42 55 39 37 55 39 37 60 49 42 59 36 42 60 49 42 59 36 42 60 49 42
++59 36 42 59 36 42 59 36 42 59 36 42 60 49 42 59 36 42 76 44 53 59 36 42
++76 46 20 76 44 53 76 44 53 76 44 53 76 44 53 76 46 20 88 44 51 76 44 53
++88 44 51 63 55 45 88 44 51 75 56 53 76 44 53 75 56 53 75 56 53 76 44 53
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 65 57 61 65 55 54 65 55 54
++65 55 54 63 55 51 62 47 47 59 55 55 57 43 51 55 55 48 57 43 51 63 55 51
++53 46 48 63 55 51 62 47 47 53 46 48 63 55 51 63 55 51 63 55 51 65 55 54
++65 55 54 65 57 61 65 55 54 65 55 54 65 55 54 65 55 54 75 56 53 75 56 53
++65 55 54 75 56 53 75 56 53 75 63 62 75 63 62 75 73 58 88 66 70 75 72 67
++88 83 74 88 83 74 88 66 70 88 83 74 88 83 88 88 83 74 88 83 88 88 83 74
++88 83 88 101 83 74 88 83 88 88 83 88 101 83 74 88 83 88 101 83 74 88 83 88
++88 83 74 101 83 74 88 83 88 101 83 74 88 83 88 101 83 74 88 83 88 88 69 84
++101 83 74 88 69 84 88 83 74 88 69 84 101 83 74 101 83 74 88 69 84 101 83 74
++101 83 74 88 83 74 88 66 70 88 73 62 88 66 70 88 73 62 88 66 70 88 73 62
++88 66 70 75 77 62 88 66 70 75 72 67 88 73 62 75 63 62 88 73 62 75 63 62
++88 73 62 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53
++75 56 53 62 47 47 75 56 53 62 47 47 62 47 47 75 56 53 75 56 53 75 56 53
++75 56 53 75 56 53 75 56 53 75 63 62 75 56 53 75 56 53 75 56 53 63 55 51
++65 55 54 75 56 53 62 47 47 75 56 53 63 55 51 65 55 54 75 56 53 63 55 45
++75 56 53 63 55 45 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 88 73 62
++88 73 31 88 73 62 75 56 53 88 73 62 88 73 62 88 73 62 88 73 62 101 60 73
++88 73 62 101 83 74 101 60 73 101 83 74 101 83 74 120 63 71 101 83 74 88 73 62
++101 83 74 101 83 74 101 83 74 120 63 71 101 83 74 101 83 74 101 60 73 101 83 74
++101 83 74 101 83 74 101 83 74 112 96 108 120 63 71 117 99 86 120 63 71 112 96 108
++117 99 86 112 96 108 117 99 86 112 96 108 117 99 86 99 93 84 112 96 108 117 99 86
++112 96 108 101 83 74 112 96 108 101 83 74 112 96 108 101 83 74 112 96 108 101 83 74
++112 96 108 101 83 74 95 91 100 101 83 74 95 91 100 101 83 74 95 91 100 101 83 74
++88 83 88 88 83 74 88 69 84 88 83 74 75 72 67 75 63 62 75 63 62 75 63 62
++75 63 62 75 63 62 75 56 53 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62
++88 73 62 75 63 62 88 73 62 88 73 62 88 66 70 88 44 51 122 49 24 102 33 26
++102 33 26 101 60 73 168 146 127 222 171 182 188 180 202 185 202 202 148 160 159 122 134 144
++77 90 100 59 69 70 34 40 43 22 23 31 12 18 20 22 25 24 22 25 24 22 25 24
++22 23 31 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 18 22 15 22 17
++23 18 22 23 20 24 23 20 24 15 22 17 23 18 22 23 18 22 17 12 17 7 12 13
++7 12 13 17 12 17 14 16 17 17 12 17 14 16 17 23 18 22 23 20 24 23 20 24
++12 18 20 7 10 17 17 12 17 30 30 34 59 69 70 112 96 108 94 105 108 145 140 145
++166 174 181 166 176 200 185 202 202 185 202 202 194 199 226 201 216 228 201 216 228 232 215 228
++221 238 247 235 238 247 240 251 247 231 239 247 221 238 247 231 239 247 235 238 247 240 251 247
++251 251 247 251 251 247 240 251 247 251 251 247 251 251 247 240 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 240 251 247 246 237 247 240 251 247
++231 239 247 240 251 247 246 237 247 240 251 247 251 251 247 251 251 247 251 251 247 240 251 247
++240 251 247 240 251 247 240 251 247 231 239 247 231 239 247 231 239 247 231 239 247 221 238 247
++235 238 247 251 251 247 246 237 247 188 180 202 138 102 108 120 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 122 49 24 167 63 71 161 55 23 167 63 71
++122 49 24 122 49 24 102 33 26 102 33 26 88 30 18 76 18 19 76 18 19 102 33 26
++161 55 23 167 63 71 161 55 23 176 103 41 227 171 124 214 214 134 214 214 134 219 175 47
++214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47
++214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 214 214 134 214 214 134 214 214 134
++214 214 134 225 222 201 225 222 201 233 241 227 221 238 247 240 251 247 240 251 247 232 215 228
++166 156 164 111 119 127 99 93 84 138 102 108 163 117 123 168 146 127 138 126 108 168 102 88
++146 150 115 168 102 88 138 126 108 168 102 88 168 146 127 177 171 115 168 146 127 201 146 124
++168 146 127 168 146 127 168 146 127 201 146 124 146 150 115 201 146 124 138 126 108 168 146 127
++168 102 88 138 126 108 168 146 127 168 102 88 146 150 115 168 102 88 146 150 115 168 102 88
++117 127 86 168 102 88 117 127 86 168 102 88 117 114 76 168 102 88 117 114 76 117 114 76
++168 102 88 117 114 76 168 102 88 117 114 76 117 114 76 168 102 88 117 99 86 117 114 76
++168 102 88 138 126 108 117 114 76 168 102 88 138 126 108 168 102 88 168 146 127 157 148 53
++201 146 124 177 171 115 201 146 124 197 171 123 217 168 156 197 171 123 201 146 124 177 169 143
++197 171 123 217 168 156 197 171 123 177 169 143 201 146 124 177 169 143 201 146 124 197 171 123
++168 146 127 201 146 124 177 169 143 201 146 124 168 146 127 168 146 127 177 169 143 217 168 156
++177 169 143 168 146 127 138 126 108 99 93 84 88 83 74 88 83 88 99 93 84 88 83 88
++90 98 89 88 83 88 88 83 88 99 93 84 88 83 88 88 83 88 88 83 74 88 83 88
++88 83 74 88 83 74 88 69 84 75 72 67 75 72 67 75 63 62 65 63 61 65 63 61
++65 63 61 65 55 54 65 63 61 63 55 51 50 61 48 59 55 55 55 55 48 52 55 48
++53 46 48 48 50 48 48 50 48 48 44 48 42 47 42 42 41 42 42 38 42 34 40 43
++36 35 37 33 39 38 42 38 42 36 35 37 42 41 42 36 35 37 42 41 42 42 41 42
++42 41 42 47 44 42 47 44 42 53 46 48 53 46 48 51 49 42 53 46 48 53 46 48
++51 49 42 55 55 48 53 46 48 55 55 48 59 55 55 59 55 55 59 55 55 63 55 51
++59 55 55 65 63 61 65 63 61 65 55 54 65 63 61 65 63 61 63 55 51 52 55 48
++75 72 67 145 140 145 225 222 201 251 251 247 240 251 247 232 215 228 201 216 228 201 216 228
++225 222 201 201 216 228 233 241 227 201 216 228 201 216 228 185 202 202 166 180 164 148 160 159
++177 169 143 189 165 168 217 168 156 214 214 134 197 171 123 227 171 124 227 171 124 227 171 124
++225 222 201 227 171 124 227 171 124 227 171 124 227 171 124 227 171 124 227 171 124 217 168 156
++217 168 156 208 215 180 189 165 168 166 180 164 166 180 164 166 156 164 166 174 181 185 202 202
++201 216 228 233 241 227 208 221 247 233 241 227 201 216 228 233 241 227 208 221 247 233 241 227
++201 216 228 233 241 227 201 216 228 221 238 247 201 216 228 201 216 228 233 241 227 221 238 247
++233 241 227 221 238 247 233 241 227 221 238 247 235 238 247 251 251 247 251 251 247 201 216 228
++166 156 164 119 117 138 90 98 89 90 98 89 90 98 89 99 93 84 95 91 100 88 83 88
++88 83 74 88 83 74 75 81 76 88 83 74 75 81 76 75 81 76 75 72 67 75 72 67
++59 69 70 75 72 67 59 69 70 75 72 67 65 63 61 59 69 70 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 75 63 62 65 63 61 65 55 54 65 63 61 65 55 54
++65 63 61 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 55 55 48 55 55 48
++55 55 48 55 55 48 53 46 48 62 47 47 55 55 48 55 55 48 59 55 55 63 55 51
++65 63 61 65 63 61 75 63 62 65 63 61 75 72 67 75 72 67 75 72 67 75 81 69
++75 72 67 88 83 74 75 81 82 88 83 74 88 83 88 88 83 74 88 83 88 99 93 84
++88 83 88 99 93 84 88 83 88 99 93 84 88 83 74 88 83 88 88 83 74 88 66 70
++88 66 70 75 81 76 75 72 67 88 66 70 75 72 67 75 63 62 75 73 58 75 63 62
++65 63 61 65 55 54 63 55 51 64 70 48 63 55 45 63 55 51 63 55 51 63 55 51
++63 55 45 64 70 48 75 63 62 75 73 58 75 73 58 75 73 58 75 73 58 75 73 58
++75 73 58 75 73 58 75 73 58 75 73 58 75 77 62 88 73 62 75 77 62 88 73 62
++75 81 69 88 73 62 75 72 67 75 73 58 75 63 62 75 73 58 64 70 48 65 55 54
++65 55 54 63 55 51 63 55 51 55 55 48 60 49 42 60 49 42 55 55 48 60 49 42
++
++51 49 42 51 49 42 60 49 42 53 46 48 62 47 47 62 47 47 60 49 42 62 47 47
++76 44 53 75 56 53 88 44 51 75 56 53 88 44 51 88 44 51 88 44 51 101 74 26
++88 44 51 88 44 51 88 44 51 120 63 71 88 44 51 122 49 24 101 60 73 122 49 24
++88 44 51 122 49 24 122 49 24 101 74 26 122 49 24 120 63 71 122 49 24 161 55 23
++122 49 24 120 63 71 161 55 23 120 63 71 161 55 23 167 63 71 117 112 45 161 55 23
++117 112 45 122 49 24 161 55 23 120 63 71 122 49 24 120 63 71 102 33 26 122 49 24
++102 33 26 102 33 26 76 18 19 102 33 26 88 30 18 102 33 26 102 33 26 102 33 26
++102 33 26 122 49 24 88 44 51 122 49 24 122 49 24 122 49 24 122 49 24 101 60 73
++122 49 24 88 44 51 122 49 24 88 44 51 76 46 20 88 44 51 76 46 20 59 36 42
++76 46 20 60 49 42 59 36 42 55 39 37 59 36 42 55 39 37 59 36 42 55 39 37
++59 36 42 55 39 37 60 49 42 59 36 42 59 36 42 60 49 42 59 36 42 62 47 47
++62 47 47 62 47 47 62 47 47 60 49 42 76 44 53 76 44 53 63 55 45 88 44 51
++63 55 45 88 44 51 63 55 45 75 56 53 88 44 51 63 55 45 88 44 51 75 56 53
++75 56 53 75 56 53 75 56 53 75 56 53 65 55 54 75 56 53 65 55 54 65 55 54
++65 55 54 55 55 48 55 55 48 53 46 48 59 55 55 53 46 48 55 55 48 57 43 51
++55 55 48 57 43 51 55 55 48 53 46 48 53 46 48 55 55 48 63 55 51 63 55 51
++65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54
++75 56 53 75 63 62 75 56 53 75 73 58 75 63 62 75 63 62 88 66 70 88 73 62
++88 83 74 88 66 70 88 83 74 88 83 74 88 83 74 101 83 74 88 83 74 101 83 74
++88 83 88 88 83 74 88 83 88 101 83 74 88 83 88 101 83 74 88 83 74 88 83 88
++101 83 74 88 83 88 101 83 74 88 83 74 88 83 88 101 83 74 88 69 84 101 83 74
++88 83 74 88 83 74 101 83 74 88 83 74 101 83 74 88 66 70 101 83 74 88 83 74
++101 83 74 88 66 70 101 83 74 88 73 62 88 73 62 88 73 62 75 73 58 88 73 62
++75 73 58 88 73 62 75 63 62 75 73 58 75 63 62 75 63 62 75 56 53 75 63 62
++75 56 53 75 56 53 75 56 53 64 70 48 75 56 53 75 56 53 75 56 53 63 55 45
++75 56 53 75 56 53 63 55 45 62 47 47 63 55 45 76 44 53 75 56 53 75 56 53
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 63 55 45
++75 56 53 62 47 47 63 55 45 75 56 53 63 55 45 75 56 53 63 55 45 75 56 53
++63 55 45 75 56 53 63 55 45 75 56 53 75 56 53 75 56 53 88 73 62 75 63 62
++88 66 70 88 66 70 88 73 62 88 73 62 88 66 70 88 73 62 101 83 74 88 73 62
++101 83 74 88 73 62 101 83 74 101 83 74 101 83 74 88 73 62 101 83 74 101 83 74
++120 63 71 101 83 74 88 73 62 101 83 74 88 73 62 101 83 74 101 83 74 101 83 74
++120 63 71 95 91 100 120 63 71 101 83 74 120 63 71 112 96 108 117 99 86 112 96 108
++117 99 86 112 96 108 117 99 86 112 96 108 117 99 86 112 96 108 117 99 86 112 96 108
++117 99 86 112 96 108 117 99 86 112 96 108 117 99 86 95 91 100 117 99 86 99 93 84
++117 99 86 95 91 100 99 93 84 99 93 84 88 83 88 99 93 84 99 93 84 101 83 74
++88 83 88 88 83 74 88 83 74 88 66 70 75 72 67 75 63 62 75 63 62 75 73 58
++75 56 53 75 63 62 75 73 58 75 56 53 75 63 62 75 56 53 75 73 58 75 63 62
++75 63 62 88 73 62 75 63 62 75 56 53 75 63 62 120 63 71 88 44 51 76 44 53
++76 18 19 101 60 73 168 146 127 166 156 164 111 119 127 111 119 127 75 81 90 59 57 61
++42 41 42 12 18 20 7 12 13 7 12 13 12 18 20 23 20 24 22 25 24 22 25 24
++22 23 31 22 25 24 25 30 29 22 23 31 22 25 24 15 22 17 23 20 24 12 18 20
++23 18 22 15 22 17 23 18 22 15 22 17 23 20 24 12 18 20 14 16 17 7 12 13
++13 4 7 7 12 13 15 22 17 23 18 22 23 18 22 15 22 17 12 18 20 23 18 22
++14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 14 16 17 15 22 17 34 40 43
++59 69 70 88 83 88 111 119 127 188 180 202 235 238 247 251 251 247 246 237 247 240 251 247
++251 251 247 251 251 247 231 239 247 232 215 228 232 215 228 235 238 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++240 251 247 240 251 247 240 251 247 251 251 247 251 251 247 240 251 247 251 251 247 246 237 247
++240 251 247 240 251 247 235 238 247 240 251 247 231 239 247 233 241 227 231 239 247 235 238 247
++251 251 247 251 251 247 233 241 227 222 171 182 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 161 55 23 122 49 24 102 33 26
++102 33 26 122 49 24 122 49 24 176 103 41 176 103 41 219 175 47 214 214 134 214 214 134
++219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 214 214 134 214 214 134 214 214 134 214 214 134 214 214 134 233 241 227
++233 241 227 221 238 247 233 241 227 221 238 247 231 239 247 246 237 247 194 199 226 145 140 145
++117 99 86 88 73 62 117 99 86 138 126 108 146 150 115 168 146 127 168 146 127 146 150 115
++138 126 108 168 102 88 146 150 115 146 150 115 168 102 88 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 177 171 115 168 102 88 146 150 115 201 146 124 138 126 108
++177 171 115 168 102 88 138 126 108 157 148 53 138 126 108 168 102 88 138 126 108 157 148 53
++138 126 108 168 102 88 117 127 86 168 102 88 117 127 86 168 102 88 117 114 76 168 102 88
++117 114 76 168 102 88 117 114 76 168 102 88 117 99 86 117 112 45 120 63 71 117 112 45
++117 114 76 168 102 88 117 114 76 168 102 88 157 148 53 168 102 88 146 150 115 168 102 88
++168 146 127 201 146 124 177 171 115 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124
++177 169 143 201 146 124 177 169 143 201 146 124 177 169 143 217 168 156 197 171 123 177 169 143
++201 146 124 177 169 143 201 146 124 197 171 123 168 146 127 201 146 124 168 146 127 177 169 143
++217 168 156 189 165 168 138 126 108 117 99 86 99 93 84 88 83 74 88 83 88 99 93 84
++88 83 88 99 93 84 88 83 88 88 83 88 88 83 88 88 83 74 88 83 88 88 83 74
++88 83 74 88 69 84 75 81 69 75 72 67 75 72 67 75 72 67 75 63 62 64 70 48
++63 55 51 64 70 48 63 55 51 59 55 55 59 55 55 55 55 48 59 55 55 52 55 48
++48 50 48 48 50 48 47 49 42 48 44 48 42 41 42 42 41 42 34 40 43 42 38 42
++36 35 37 36 35 37 36 35 37 42 41 42 36 35 37 42 41 42 42 41 42 42 41 42
++42 41 42 47 44 42 47 44 42 47 49 42 48 50 48 53 46 48 51 49 42 51 49 42
++53 46 48 51 49 42 53 46 48 55 55 48 53 46 48 55 55 48 59 55 55 63 55 51
++55 55 48 63 55 51 65 55 54 65 63 61 65 63 61 59 55 55 55 55 48 65 63 61
++112 123 108 166 174 181 233 241 227 221 238 247 233 241 227 201 216 228 185 202 202 225 222 201
++201 216 228 201 216 228 201 216 228 225 222 201 185 202 202 166 180 164 166 156 164 177 169 143
++177 169 143 189 165 168 208 215 180 217 168 156 217 168 156 214 214 134 222 171 182 227 171 124
++227 171 124 227 171 124 227 171 124 227 171 124 208 215 180 225 222 201 222 171 182 208 215 180
++208 215 180 222 171 182 208 215 180 208 215 180 189 165 168 166 174 181 166 180 164 166 174 181
++185 202 202 201 216 228 201 216 228 233 241 227 201 216 228 233 241 227 201 216 228 233 241 227
++201 216 228 221 238 247 233 241 227 201 216 228 233 241 227 201 216 228 233 241 227 201 216 228
++221 238 247 221 238 247 233 241 227 208 221 247 233 241 227 221 238 247 240 251 247 233 241 227
++201 216 228 148 160 159 94 105 108 95 91 100 88 83 88 90 98 89 88 83 88 90 98 89
++88 83 88 75 81 82 75 81 76 75 81 82 75 81 82 75 72 67 75 81 76 59 69 70
++75 72 67 59 69 70 75 72 67 75 72 67 65 63 61 75 63 62 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 55 54 65 63 61 65 55 54 64 70 48
++59 55 55 63 55 51 59 55 55 59 55 55 63 55 51 62 47 47 59 55 55 62 47 47
++55 55 48 62 47 47 55 55 48 53 46 48 51 49 42 53 46 48 55 55 48 55 55 48
++63 55 51 65 55 54 65 63 61 65 63 61 59 69 70 75 72 67 75 72 67 75 81 76
++88 83 74 75 81 82 88 83 74 75 81 82 88 83 74 88 83 88 88 83 74 88 83 88
++88 83 88 88 83 88 99 93 84 88 83 88 88 83 88 88 83 74 88 83 74 88 83 74
++88 83 74 88 73 62 75 72 67 75 72 67 75 63 62 75 73 58 75 63 62 65 63 61
++75 56 53 65 63 61 65 55 54 63 55 45 60 49 42 55 55 48 63 55 45 63 55 45
++63 55 51 63 55 51 65 55 54 65 63 61 65 63 61 75 63 62 75 63 62 75 73 58
++75 63 62 75 73 58 75 63 62 75 73 58 75 63 62 75 73 58 75 73 58 88 73 62
++75 73 58 75 63 62 75 73 58 75 63 62 64 70 48 65 63 61 65 55 54 65 55 54
++63 55 51 63 55 45 55 55 48 55 55 48 62 47 47 55 55 48 53 46 48 60 49 42
++
++55 39 37 51 49 42 51 49 42 60 49 42 53 46 48 62 47 47 62 47 47 62 47 47
++76 44 53 76 44 53 75 56 53 88 44 51 88 44 51 88 73 31 88 44 51 88 44 51
++120 63 71 122 49 24 101 74 26 88 44 51 101 74 26 122 49 24 88 44 51 122 49 24
++122 49 24 88 44 51 122 49 24 88 44 51 122 49 24 122 49 24 122 49 24 120 63 71
++101 74 26 161 55 23 120 63 71 161 55 23 117 112 45 122 49 24 161 55 23 120 63 71
++161 55 23 122 49 24 120 63 71 122 49 24 122 49 24 122 49 24 122 49 24 102 33 26
++102 33 26 102 33 26 102 33 26 88 30 18 102 33 26 88 30 18 102 33 26 102 33 26
++102 33 26 122 49 24 122 49 24 122 49 24 88 44 51 122 49 24 88 44 51 122 49 24
++122 49 24 101 60 73 101 74 26 88 44 51 88 44 51 88 44 51 76 46 20 59 36 42
++59 36 42 59 36 42 59 36 42 59 36 42 55 39 37 59 36 42 53 35 37 53 35 37
++55 39 37 59 36 42 55 39 37 59 36 42 60 49 42 59 36 42 59 36 42 60 49 42
++76 44 53 60 49 42 76 44 53 76 44 53 63 55 45 76 44 53 76 44 53 76 46 20
++75 56 53 76 44 53 76 44 53 76 46 20 75 56 53 75 56 53 75 56 53 63 55 45
++75 56 53 63 55 45 75 56 53 63 55 45 65 63 61 65 55 54 65 55 54 65 55 54
++63 55 51 55 55 48 62 47 47 55 55 48 53 46 48 53 46 48 53 46 48 59 55 55
++53 46 48 53 46 48 53 46 48 55 55 48 55 55 48 62 47 47 55 55 48 63 55 51
++63 55 51 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54
++75 63 62 75 56 53 75 63 62 75 56 53 75 73 58 88 73 62 88 73 62 88 66 70
++88 73 62 88 83 74 88 66 70 88 83 74 88 69 84 88 83 88 88 83 74 88 83 88
++88 83 74 99 93 84 101 83 74 88 83 88 101 83 74 88 83 88 88 83 88 101 83 74
++88 83 88 88 83 74 88 83 88 101 83 74 88 83 74 88 83 74 101 83 74 88 69 84
++88 83 74 88 66 70 101 83 74 88 66 70 101 83 74 88 66 70 101 83 74 88 66 70
++88 73 62 88 73 62 88 73 62 88 66 70 88 73 62 75 63 62 88 73 62 75 56 53
++75 63 62 75 73 58 75 56 53 75 56 53 75 73 58 75 56 53 75 73 58 75 56 53
++75 63 62 75 56 53 64 70 48 75 56 53 65 55 54 75 56 53 75 56 53 65 55 54
++75 56 53 62 47 47 63 55 45 75 56 53 62 47 47 75 56 53 75 56 53 75 56 53
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 65 55 54 75 56 53
++63 55 45 75 56 53 63 55 45 62 47 47 63 55 45 63 55 45 75 56 53 63 55 45
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 88 73 62 75 56 53 88 73 62
++88 66 70 75 63 62 88 73 62 88 66 70 88 73 62 88 73 62 88 66 70 101 83 74
++101 83 74 101 83 74 101 83 74 88 73 62 101 83 74 101 83 74 101 83 74 88 73 62
++101 83 74 101 83 74 101 83 74 101 60 73 101 83 74 101 60 73 101 83 74 101 83 74
++101 83 74 101 83 74 101 83 74 112 96 108 101 83 74 117 99 86 120 63 71 112 96 108
++138 102 108 117 99 86 112 96 108 117 99 86 112 96 108 117 99 86 112 96 108 117 99 86
++112 96 108 117 99 86 112 96 108 101 83 74 112 96 108 99 93 84 117 99 86 95 91 100
++101 83 74 95 91 100 99 93 84 99 93 84 99 93 84 88 83 88 88 83 88 88 83 88
++88 83 74 88 66 70 75 81 76 88 66 70 75 72 67 75 63 62 75 73 58 75 63 62
++75 63 62 75 73 58 75 56 53 75 73 58 75 63 62 75 56 53 75 56 53 75 63 62
++75 63 62 75 63 62 75 63 62 75 63 62 88 73 62 88 66 70 88 44 51 88 30 18
++52 30 35 76 44 53 99 93 84 99 93 84 75 59 67 47 44 42 25 30 29 15 22 17
++7 12 13 3 4 9 17 12 17 23 18 22 22 25 24 25 30 29 25 30 29 25 30 29
++25 30 29 26 24 32 22 25 24 22 25 24 22 25 24 22 25 24 12 18 20 23 18 22
++15 22 17 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 14 16 17 14 16 17
++14 16 17 14 16 17 23 20 24 22 25 24 22 25 24 14 16 17 23 20 24 14 16 17
++14 16 17 23 18 22 22 25 24 22 25 24 14 16 17 3 4 9 3 4 9 7 12 13
++23 18 22 22 25 24 55 55 48 94 105 108 166 180 164 232 215 228 251 251 247 251 251 247
++251 251 247 240 251 247 208 221 247 201 216 228 233 241 227 235 238 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 240 251 247
++240 251 247 235 238 247 231 239 247 231 239 247 231 239 247 231 239 247 240 251 247 240 251 247
++251 251 247 251 251 247 232 215 228 217 168 156 168 102 88 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 122 49 24 167 63 71 102 33 26
++102 33 26 122 49 24 102 33 26 167 63 71 167 63 71 227 171 124 214 214 134 214 214 134
++219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134
++214 214 134 214 214 134 219 175 47 214 214 134 219 175 47 146 150 115 177 169 143 233 241 227
++221 238 247 221 238 247 221 238 247 221 238 247 221 238 247 201 216 228 145 140 145 88 83 74
++88 66 70 101 83 74 168 102 88 138 126 108 168 102 88 168 146 127 168 102 88 146 150 115
++168 102 88 146 150 115 168 146 127 168 102 88 177 171 115 163 117 123 177 171 115 163 117 123
++177 171 115 168 146 127 168 102 88 168 146 127 168 146 127 168 146 127 168 102 88 177 171 115
++138 126 108 146 150 115 168 102 88 146 150 115 168 102 88 146 150 115 168 102 88 138 126 108
++168 102 88 117 127 86 168 102 88 117 127 86 168 102 88 117 114 76 168 102 88 117 114 76
++117 114 76 117 114 76 117 114 76 117 112 45 168 102 88 120 63 71 117 112 45 120 63 71
++117 112 45 117 99 86 168 102 88 117 114 76 117 99 86 168 102 88 157 148 53 168 102 88
++177 171 115 168 146 127 201 146 124 168 146 127 201 146 124 201 146 124 201 146 124 197 171 123
++201 146 124 177 169 143 201 146 124 197 171 123 217 168 156 197 171 123 177 169 143 201 146 124
++177 169 143 201 146 124 177 169 143 201 146 124 168 146 127 168 146 127 168 146 127 201 146 124
++217 168 156 189 165 168 177 169 143 138 102 108 99 93 84 88 83 88 99 93 84 88 83 88
++99 93 84 88 83 88 88 83 88 99 93 84 88 83 74 88 83 88 88 83 74 75 81 76
++75 81 76 75 81 76 75 72 67 75 72 67 75 72 67 75 73 58 65 63 61 65 63 61
++63 55 51 59 55 55 59 55 55 59 55 55 55 55 48 59 55 55 48 50 48 52 55 48
++48 50 48 48 44 48 48 50 48 47 44 42 42 47 42 42 41 42 42 41 42 33 39 38
++36 35 37 36 35 37 33 39 38 36 35 37 42 41 42 36 35 37 42 41 42 42 38 42
++42 41 42 42 41 42 47 44 42 42 47 42 48 44 48 51 49 42 51 49 42 55 55 48
++51 49 42 53 46 48 51 49 42 53 46 48 55 55 48 63 55 51 63 55 51 59 55 55
++59 55 55 55 55 48 63 55 51 65 63 61 55 55 48 55 55 48 55 55 48 95 91 100
++146 162 145 185 202 202 232 215 228 201 216 228 201 216 228 208 215 180 201 216 228 201 216 228
++233 241 227 221 238 247 201 216 228 185 202 202 166 180 164 166 156 164 177 169 143 189 165 168
++208 215 180 217 168 156 217 168 156 208 215 180 222 171 182 225 222 201 227 171 124 214 214 134
++227 171 124 227 171 124 227 171 124 225 222 201 214 214 134 222 171 182 208 215 180 217 168 156
++189 165 168 189 165 168 166 180 164 188 180 202 208 215 180 166 174 181 166 174 181 166 180 164
++166 180 164 185 202 202 225 222 201 201 216 228 221 238 247 232 215 228 221 238 247 201 216 228
++233 241 227 201 216 228 221 238 247 233 241 227 201 216 228 233 241 227 201 216 228 233 241 227
++233 241 227 221 238 247 221 238 247 232 215 228 201 216 228 185 202 202 201 216 228 235 238 247
++232 215 228 185 202 202 122 134 144 95 91 100 75 81 90 88 83 88 88 83 88 75 81 82
++88 83 74 75 81 69 75 81 76 75 81 76 75 81 76 59 69 70 75 81 76 59 69 70
++59 69 70 75 72 67 75 72 67 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 55 54 65 63 61 63 55 51 59 55 55
++65 55 54 59 55 55 63 55 51 59 55 55 63 55 51 63 55 51 55 55 48 55 55 48
++53 46 48 55 55 48 53 46 48 60 49 42 51 49 42 53 46 48 51 49 42 55 55 48
++59 55 55 59 55 55 65 63 61 65 63 61 75 73 58 59 69 70 75 72 67 75 72 67
++75 81 82 88 83 74 75 81 82 88 83 74 88 83 88 88 83 88 78 98 90 88 83 88
++99 93 84 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 74 88 66 70
++75 81 76 75 72 67 88 73 62 75 72 67 75 73 58 75 63 62 75 73 58 75 63 62
++65 63 61 65 55 54 65 55 54 63 55 45 60 49 42 60 49 42 60 49 42 51 49 42
++55 55 48 55 55 48 59 55 55 63 55 51 65 55 54 65 63 61 65 55 54 65 63 61
++75 56 53 64 70 48 75 63 62 75 63 62 75 73 58 75 63 62 75 56 53 75 73 58
++65 55 54 64 70 48 75 56 53 65 55 54 65 55 54 63 55 45 63 55 51 63 55 51
++63 55 45 63 55 51 62 47 47 62 47 47 53 46 48 53 46 48 62 47 47 53 46 48
++
++47 44 42 60 49 42 51 49 42 55 39 37 60 49 42 59 36 42 60 49 42 62 47 47
++63 55 45 76 44 53 76 46 20 88 44 51 88 44 51 88 44 51 88 44 51 101 74 26
++88 44 51 88 44 51 88 44 51 122 49 24 101 60 73 122 49 24 88 44 51 122 49 24
++88 44 51 122 49 24 88 44 51 122 49 24 122 49 24 122 49 24 101 74 26 122 49 24
++120 63 71 161 55 23 101 74 26 122 49 24 122 49 24 167 63 71 122 49 24 161 55 23
++120 63 71 122 49 24 161 55 23 122 49 24 120 63 71 122 49 24 102 33 26 102 33 26
++102 33 26 88 30 18 102 33 26 88 30 18 102 33 26 102 33 26 88 44 51 122 49 24
++102 33 26 122 49 24 88 44 51 122 49 24 122 49 24 120 63 71 122 49 24 122 49 24
++88 44 51 122 49 24 88 44 51 122 49 24 88 73 31 88 44 51 76 44 53 76 46 20
++59 36 42 55 39 37 55 39 37 55 39 37 55 39 37 53 35 37 55 39 37 53 35 37
++53 35 37 55 39 37 59 36 42 55 39 37 55 39 37 55 39 37 59 36 42 60 49 42
++59 36 42 62 47 47 62 47 47 60 49 42 76 44 53 76 44 53 63 55 45 76 44 53
++63 55 45 76 44 53 75 56 53 75 56 53 88 44 51 63 55 45 88 44 51 75 56 53
++76 44 53 75 56 53 75 56 53 75 56 53 75 56 53 65 55 54 65 55 54 65 55 54
++63 55 51 55 55 48 59 55 55 53 46 48 59 55 55 52 55 48 53 46 48 53 46 48
++55 55 48 53 46 48 55 55 48 57 43 51 53 46 48 55 55 48 63 55 51 59 55 55
++63 55 51 63 55 51 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54
++65 55 54 75 56 53 75 73 58 75 56 53 75 63 62 75 63 62 88 73 62 88 73 62
++88 66 70 88 73 62 88 83 74 88 83 74 88 83 74 88 83 74 88 83 88 88 83 74
++101 83 74 88 83 88 88 83 88 99 93 84 88 83 88 101 83 74 88 83 88 101 83 74
++88 83 88 101 83 74 88 83 88 101 83 74 88 83 88 88 83 74 88 83 88 101 83 74
++88 66 70 88 83 74 88 83 74 88 83 74 88 66 70 101 83 74 88 83 74 88 73 62
++88 83 74 88 66 70 88 73 62 88 73 62 88 73 62 75 73 58 75 56 53 88 73 62
++75 56 53 88 73 62 75 56 53 75 73 58 75 56 53 75 56 53 75 63 62 75 56 53
++75 73 58 75 56 53 75 56 53 75 56 53 63 55 51 75 56 53 65 55 54 75 56 53
++63 55 51 63 55 51 75 56 53 62 47 47 75 56 53 76 44 53 75 56 53 75 56 53
++75 56 53 75 56 53 75 56 53 75 63 62 75 56 53 75 56 53 65 55 54 75 56 53
++75 56 53 62 47 47 62 47 47 63 55 45 75 56 53 62 47 47 63 55 51 63 55 51
++75 56 53 63 55 51 75 56 53 75 56 53 75 56 53 75 56 53 75 63 62 75 63 62
++75 63 62 88 73 62 88 66 70 88 73 62 88 73 62 88 66 70 88 73 62 101 83 74
++101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74
++101 83 74 101 83 74 101 83 74 88 73 62 101 83 74 101 83 74 101 83 74 101 83 74
++120 63 71 99 93 84 120 63 71 101 83 74 120 63 71 112 96 108 117 99 86 112 96 108
++117 99 86 117 99 86 112 96 108 138 102 108 112 96 108 117 99 86 112 96 108 117 99 86
++112 96 108 117 99 86 112 96 108 117 99 86 95 91 100 117 99 86 95 91 100 117 99 86
++95 91 100 117 99 86 99 93 84 95 91 100 101 83 74 88 83 88 99 93 84 88 83 74
++88 83 74 88 83 74 88 66 70 75 72 67 75 72 67 75 63 62 75 63 62 75 63 62
++65 63 61 75 56 53 65 63 61 75 56 53 75 63 62 75 73 58 63 55 51 65 55 54
++75 56 53 65 55 54 75 56 53 75 56 53 75 56 53 88 73 62 88 44 51 76 44 53
++76 18 19 55 39 37 52 30 35 36 35 37 22 23 31 23 20 24 14 16 17 7 12 13
++7 12 13 22 25 24 30 30 34 36 35 37 31 35 35 28 30 35 28 30 35 25 30 29
++26 24 32 22 25 24 22 25 24 22 25 24 22 25 24 12 18 20 23 20 24 23 20 24
++22 25 24 22 23 31 22 25 24 22 23 31 22 25 24 25 30 29 23 20 24 22 25 24
++22 25 24 22 25 24 26 24 32 25 30 29 26 24 32 26 24 32 25 30 29 22 25 24
++22 25 24 22 25 24 25 30 29 22 23 31 22 23 31 22 25 24 22 25 24 23 20 24
++22 23 31 23 20 24 17 12 17 22 25 24 59 57 61 111 119 127 185 202 202 235 238 247
++251 251 247 251 251 247 226 221 247 233 241 227 246 237 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 240 251 247 251 251 247 246 237 247 251 251 247
++240 251 247 235 238 247 240 251 247 235 238 247 240 251 247 240 251 247 240 251 247 240 251 247
++251 251 247 251 251 247 232 215 228 150 144 154 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 161 55 23 102 33 26 102 33 26
++167 63 71 161 55 23 102 33 26 102 33 26 122 49 24 219 175 47 219 175 47 214 214 134
++214 214 134 219 175 47 214 214 134 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134
++219 175 47 214 214 134 214 214 134 157 148 53 117 112 45 117 127 86 177 169 143 232 215 228
++233 241 227 221 238 247 231 239 247 235 238 247 201 216 228 166 156 164 88 83 88 88 73 62
++101 83 74 138 126 108 138 126 108 163 117 123 138 126 108 168 146 127 146 150 115 163 117 123
++177 171 115 168 102 88 177 171 115 168 146 127 168 146 127 168 146 127 168 102 88 168 146 127
++201 146 124 168 146 127 177 171 115 168 146 127 168 146 127 146 150 115 168 146 127 168 146 127
++168 102 88 146 150 115 163 117 123 146 150 115 168 102 88 146 150 115 138 126 108 157 148 53
++138 126 108 138 126 108 168 102 88 138 126 108 168 102 88 117 114 76 117 114 76 168 102 88
++117 114 76 167 63 71 117 112 45 120 63 71 117 112 45 101 83 74 101 74 26 120 63 71
++117 112 45 120 63 71 117 112 45 117 99 86 176 103 41 117 114 76 138 126 108 168 102 88
++146 150 115 168 102 88 168 146 127 168 146 127 177 171 115 168 146 127 168 146 127 201 146 124
++168 146 127 201 146 124 177 169 143 197 171 123 177 169 143 201 146 124 177 169 143 201 146 124
++197 171 123 177 169 143 201 146 124 177 169 143 201 146 124 168 146 127 201 146 124 177 169 143
++177 169 143 217 168 156 189 165 168 138 126 108 117 99 86 88 83 88 88 83 74 90 98 89
++88 83 88 88 83 88 88 83 88 88 83 74 88 83 88 88 83 74 75 81 76 88 83 74
++75 72 67 88 66 70 75 72 67 75 72 67 75 63 62 65 63 61 75 63 62 64 70 48
++63 55 51 64 70 48 59 55 55 55 55 48 59 55 55 55 55 48 55 55 48 48 50 48
++48 50 48 47 44 42 47 44 42 42 47 42 42 41 42 42 41 42 37 35 43 37 35 43
++36 35 37 42 38 42 36 35 37 33 39 38 36 35 37 42 41 42 42 41 42 42 38 42
++42 41 42 42 41 42 42 47 42 47 44 42 47 44 42 51 49 42 51 49 42 51 49 42
++51 49 42 53 46 48 51 49 42 53 46 48 55 55 48 55 55 48 55 55 48 55 55 48
++63 55 51 59 55 55 55 55 48 63 55 51 52 55 48 55 55 48 75 81 69 141 116 139
++208 215 180 201 216 228 225 222 201 185 202 202 225 222 201 201 216 228 201 216 228 233 241 227
++201 216 228 225 222 201 185 202 202 166 174 181 166 180 164 166 180 164 166 174 181 208 215 180
++189 165 168 217 168 156 177 169 143 177 169 143 227 171 124 222 171 182 214 214 134 222 171 182
++217 168 156 227 171 124 214 214 134 217 168 156 208 215 180 217 168 156 138 126 108 146 151 137
++168 146 127 166 180 164 177 169 143 189 165 168 166 180 164 166 174 181 166 156 164 148 160 159
++150 144 154 150 168 183 185 202 202 225 222 201 201 216 228 201 216 228 233 241 227 201 216 228
++221 238 247 201 216 228 233 241 227 201 216 228 233 241 227 201 216 228 233 241 227 201 216 228
++221 238 247 233 241 227 221 238 247 201 216 228 185 202 202 185 202 202 201 216 228 221 238 247
++233 241 227 201 216 228 166 174 181 111 119 127 95 91 100 75 81 82 78 98 90 88 83 88
++75 81 76 75 81 76 75 72 67 75 81 76 75 81 76 75 72 67 75 72 67 59 69 70
++75 72 67 59 69 70 65 63 61 65 63 61 75 72 67 65 63 61 75 73 58 65 63 61
++64 70 48 65 63 61 63 55 51 65 63 61 59 55 55 63 55 51 65 63 61 65 55 54
++59 55 55 63 55 51 59 55 55 55 55 48 55 55 48 53 46 48 62 47 47 55 55 48
++53 46 48 53 46 48 51 49 42 53 46 48 51 49 42 51 49 42 53 46 48 55 55 48
++59 55 55 63 55 51 63 55 51 65 63 61 65 63 61 65 63 61 75 72 67 75 81 76
++75 72 67 88 69 84 75 81 76 75 81 76 75 81 82 88 83 74 88 83 74 88 83 88
++88 83 74 88 83 88 99 93 84 88 83 74 88 83 88 88 83 74 88 83 74 88 83 74
++88 83 74 75 72 67 75 72 67 75 63 62 75 72 67 75 72 67 75 63 62 75 63 62
++75 63 62 65 63 61 63 55 51 62 47 47 60 49 42 53 46 48 51 49 42 60 49 42
++51 49 42 60 49 42 55 55 48 55 55 48 63 55 45 63 55 51 63 55 45 63 55 45
++65 55 54 65 55 54 65 55 54 64 70 48 65 55 54 65 55 54 64 70 48 63 55 51
++63 55 51 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45
++55 55 48 63 55 45 55 55 48 51 49 42 60 49 42 51 49 42 53 46 48 60 49 42
++
++55 39 37 55 39 37 62 47 47 55 39 37 60 49 42 59 36 42 76 44 53 76 46 20
++76 44 53 88 44 51 88 44 51 88 44 51 88 44 51 102 33 26 88 44 51 88 44 51
++122 49 24 88 44 51 122 49 24 88 44 51 122 49 24 88 44 51 122 49 24 88 44 51
++122 49 24 122 49 24 122 49 24 88 44 51 122 49 24 88 44 51 122 49 24 122 49 24
++122 49 24 122 49 24 120 63 71 161 55 23 120 63 71 122 49 24 122 49 24 122 49 24
++161 55 23 122 49 24 122 49 24 122 49 24 122 49 24 122 49 24 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 76 18 19 102 33 26 102 33 26 102 33 26 102 33 26
++122 49 24 122 49 24 122 49 24 102 33 26 122 49 24 122 49 24 122 49 24 88 44 51
++122 49 24 120 63 71 122 49 24 88 44 51 88 44 51 102 33 26 76 46 20 76 44 53
++59 36 42 55 39 18 59 36 42 55 39 37 55 39 37 53 35 37 55 39 37 53 35 37
++55 39 37 53 35 37 55 39 37 55 39 37 55 39 37 59 36 42 55 39 37 60 49 42
++59 36 42 62 47 47 62 47 47 60 49 42 62 47 47 63 55 45 63 55 45 76 44 53
++63 55 45 88 44 51 63 55 45 76 44 53 63 55 45 75 56 53 63 55 45 75 56 53
++63 55 45 75 56 53 63 55 45 63 55 45 65 55 54 65 55 54 65 55 54 65 55 54
++63 55 51 55 55 48 55 55 48 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48
++53 46 48 55 55 48 57 43 51 55 55 48 53 46 48 55 55 48 55 55 48 63 55 51
++59 55 55 63 55 51 63 55 51 65 55 54 63 55 51 65 55 54 65 55 54 75 63 62
++75 63 62 75 63 62 75 56 53 75 73 58 75 56 53 88 73 62 75 63 62 88 73 62
++75 72 67 88 73 62 88 66 70 88 83 74 88 66 70 88 83 74 101 83 74 88 83 88
++88 83 74 88 83 74 101 83 74 88 83 88 101 83 74 88 83 88 101 83 74 88 83 88
++101 83 74 88 83 88 88 83 74 88 83 74 88 83 88 101 83 74 88 83 74 88 66 70
++88 83 74 88 66 70 88 73 62 88 83 74 88 73 62 88 66 70 88 73 62 88 66 70
++88 73 62 88 73 62 88 73 62 88 66 70 75 63 62 88 73 62 75 56 53 75 73 58
++75 56 53 75 73 58 75 56 53 75 56 53 75 73 58 75 56 53 75 56 53 75 56 53
++75 56 53 64 70 48 75 56 53 64 70 48 75 56 53 63 55 51 75 56 53 63 55 51
++63 55 45 65 55 54 63 55 45 65 55 54 75 56 53 65 55 54 75 56 53 75 56 53
++75 56 53 75 59 67 75 56 53 75 56 53 75 56 53 65 57 61 75 56 53 63 55 51
++63 55 51 65 55 54 75 56 53 62 47 47 62 47 47 65 55 54 75 56 53 65 55 54
++75 56 53 65 55 54 75 73 58 75 63 62 75 63 62 88 73 62 75 63 62 88 73 62
++75 63 62 88 73 62 75 63 62 88 73 62 88 66 70 101 83 74 88 83 74 101 83 74
++88 66 70 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74
++101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74
++101 83 74 101 83 74 99 93 84 112 96 108 117 99 86 117 99 86 112 96 108 117 99 86
++112 96 108 138 102 108 117 99 86 112 96 108 117 99 86 112 96 108 117 99 86 112 96 108
++117 99 86 112 96 108 117 99 86 112 96 108 117 99 86 112 96 108 99 93 84 99 93 84
++99 93 84 99 93 84 88 83 88 99 93 84 88 83 88 101 83 74 88 83 88 88 69 84
++88 83 74 75 72 67 75 72 67 88 66 70 75 72 67 75 63 62 75 73 58 75 63 62
++75 56 53 65 55 54 75 56 53 64 70 48 75 56 53 65 55 54 75 56 53 75 63 62
++65 63 61 65 55 54 65 63 61 65 63 61 75 63 62 75 63 62 75 56 53 55 55 48
++47 44 42 33 30 30 33 30 30 33 30 30 23 18 22 12 18 20 14 16 17 23 20 24
++26 30 28 31 35 35 36 35 37 31 35 35 30 30 34 25 30 29 25 30 29 22 25 24
++22 25 24 22 25 24 22 25 24 22 23 31 22 25 24 25 30 29 22 25 24 22 23 31
++26 30 28 26 24 32 26 30 28 25 30 29 26 24 32 26 30 28 26 24 32 30 30 34
++30 30 34 31 35 35 36 35 37 36 35 37 37 35 43 42 41 42 34 40 43 34 40 43
++34 40 43 28 30 35 23 20 24 23 20 24 22 25 24 12 18 20 23 20 24 25 30 29
++28 30 35 25 30 29 22 25 24 14 16 17 7 12 13 23 18 22 65 57 61 121 143 132
++232 215 228 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++240 251 247 251 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 246 237 247
++240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 251 251 247 246 237 247 251 251 247
++251 251 247 251 251 247 232 215 228 195 113 123 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 195 113 123 167 63 71 167 63 71 167 63 71 161 55 23 102 33 26 102 33 26
++102 33 26 167 63 71 102 33 26 122 49 24 102 33 26 176 103 41 227 171 124 214 214 134
++214 214 134 214 214 134 219 175 47 214 214 134 214 214 134 214 214 134 214 214 134 214 214 134
++214 214 134 214 214 134 157 148 53 168 102 88 138 102 108 189 165 168 232 215 228 221 238 247
++231 239 247 231 239 247 221 238 247 232 215 228 166 156 164 112 96 108 101 83 74 101 83 74
++168 102 88 168 146 127 168 146 127 168 146 127 177 171 115 168 102 88 177 171 115 163 117 123
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 177 171 115 168 146 127
++168 102 88 168 146 127 168 146 127 168 102 88 168 146 127 168 146 127 168 102 88 177 171 115
++168 146 127 168 102 88 146 150 115 168 102 88 146 150 115 168 102 88 168 146 127 138 126 108
++168 102 88 138 126 108 157 148 53 138 126 108 117 114 76 168 102 88 117 114 76 117 112 45
++117 99 86 117 112 45 120 63 71 117 112 45 120 63 71 101 74 26 101 83 74 101 74 26
++120 63 71 101 83 74 117 112 45 120 63 71 117 114 76 168 102 88 117 114 76 168 102 88
++157 148 53 163 117 123 157 148 53 201 146 124 163 117 123 177 171 115 168 146 127 168 146 127
++197 171 123 168 146 127 201 146 124 177 169 143 201 146 124 177 169 143 197 171 123 177 169 143
++201 146 124 177 169 143 201 146 124 168 146 127 201 146 124 168 146 127 168 146 127 201 146 124
++177 169 143 217 168 156 177 169 143 168 146 127 112 123 108 101 83 74 101 83 74 88 83 74
++88 83 88 88 83 88 88 83 74 75 81 82 88 83 74 75 81 76 88 66 70 75 72 67
++75 72 67 75 72 67 75 72 67 75 63 62 65 63 61 65 63 61 64 70 48 65 55 54
++65 63 61 59 55 55 55 55 48 59 55 55 52 55 48 59 55 55 48 50 48 48 50 48
++47 49 42 47 44 42 48 44 48 42 41 42 42 41 42 42 41 42 33 39 38 36 35 37
++33 39 38 36 35 37 42 38 42 42 41 42 36 35 37 42 41 42 36 35 37 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 47 44 42 47 44 42 47 44 42 51 49 42
++53 46 48 51 49 42 53 46 48 53 46 48 53 46 48 55 55 48 59 55 55 55 55 48
++59 55 55 55 55 48 59 55 55 59 55 55 48 50 48 65 63 61 112 123 108 166 180 164
++185 202 202 201 216 228 225 222 201 201 216 228 201 216 228 225 222 201 201 216 228 201 216 228
++201 216 228 185 202 202 150 171 159 148 160 159 166 174 181 166 174 181 166 156 164 148 160 159
++126 147 144 121 143 132 138 126 108 111 119 127 146 151 137 177 169 143 225 222 201 217 168 156
++214 214 134 222 171 182 225 222 201 222 171 182 177 169 143 112 123 108 112 96 108 146 162 145
++148 160 159 166 174 181 148 160 159 166 180 164 166 174 181 150 171 159 148 160 159 148 160 159
++148 160 159 166 180 164 166 174 181 166 176 200 201 216 228 225 222 201 221 238 247 201 216 228
++233 241 227 221 238 247 201 216 228 233 241 227 201 216 228 233 241 227 201 216 228 233 241 227
++221 238 247 221 238 247 233 241 227 185 202 202 185 202 202 188 180 202 225 222 201 240 251 247
++235 238 247 233 241 227 185 202 202 148 160 159 94 105 108 75 81 90 75 81 82 75 81 82
++75 81 82 75 81 76 75 72 67 75 81 76 75 72 67 59 69 70 59 69 70 59 69 70
++65 63 61 65 63 61 59 69 70 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 59 55 55 65 63 61 63 55 51 63 55 51 63 55 51 63 55 51 59 55 55
++63 55 51 59 55 55 55 55 48 62 47 47 62 47 47 62 47 47 53 46 48 53 46 48
++51 49 42 51 49 42 53 46 48 51 49 42 51 49 42 47 44 42 47 44 42 53 46 48
++55 55 48 59 55 55 59 55 55 63 55 51 65 63 61 65 63 61 75 72 67 75 72 67
++75 72 67 75 81 76 75 81 76 88 83 74 75 81 76 88 83 88 88 83 74 88 83 88
++88 83 88 88 83 88 88 83 88 88 83 88 88 83 74 88 83 88 88 83 74 88 66 70
++75 72 67 88 66 70 75 72 67 75 72 67 75 63 62 75 63 62 75 63 62 75 63 62
++65 63 61 65 55 54 63 55 51 53 46 48 53 46 48 51 49 42 53 46 48 51 49 42
++55 39 37 53 46 48 62 47 47 62 47 47 63 55 51 63 55 51 63 55 51 63 55 45
++63 55 45 63 55 51 63 55 51 65 55 54 63 55 51 65 55 54 63 55 51 63 55 45
++63 55 45 63 55 45 63 55 51 63 55 45 55 55 48 63 55 45 55 55 48 62 47 47
++62 47 47 53 46 48 51 49 42 53 46 48 51 49 42 53 46 48 60 49 42 51 49 42
++
++55 39 37 55 39 37 59 36 42 55 39 37 55 39 37 59 36 42 59 36 42 88 30 18
++59 36 42 76 46 20 88 44 51 76 46 20 88 44 51 88 44 51 122 49 24 88 44 51
++88 44 51 122 49 24 88 44 51 122 49 24 88 44 51 122 49 24 102 33 26 122 49 24
++102 33 26 102 33 26 102 33 26 122 49 24 102 33 26 122 49 24 122 49 24 122 49 24
++122 49 24 122 49 24 122 49 24 122 49 24 122 49 24 161 55 23 120 63 71 122 49 24
++122 49 24 122 49 24 167 63 71 122 49 24 122 49 24 122 49 24 102 33 26 102 33 26
++102 33 26 76 18 19 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 120 63 71
++102 33 26 102 33 26 122 49 24 120 63 71 102 33 26 122 49 24 120 63 71 122 49 24
++122 49 24 122 49 24 88 44 51 102 33 26 101 74 26 88 44 51 88 44 51 76 46 20
++59 36 42 59 36 42 55 39 37 55 39 18 55 39 37 55 39 18 52 30 35 53 35 37
++53 35 37 55 39 37 55 39 37 55 39 37 55 39 37 55 39 37 60 49 42 59 36 42
++62 47 47 59 36 42 62 47 47 62 47 47 63 55 45 76 44 53 60 49 42 63 55 45
++63 55 45 63 55 45 76 44 53 63 55 45 75 56 53 75 56 53 75 56 53 75 56 53
++63 55 45 76 44 53 63 55 45 75 56 53 65 55 54 65 55 54 65 55 54 63 55 51
++62 47 47 55 55 48 60 49 42 53 46 48 53 46 48 48 50 48 53 46 48 55 55 48
++53 46 48 53 46 48 53 46 48 53 46 48 55 55 48 53 46 48 63 55 51 55 55 48
++62 47 47 63 55 51 63 55 51 63 55 51 63 55 51 65 55 54 65 55 54 65 55 54
++75 63 62 75 56 53 75 56 53 75 73 58 75 63 62 88 73 62 75 63 62 88 73 62
++88 73 62 75 77 62 88 73 62 88 66 70 88 83 74 88 69 84 88 83 74 88 69 84
++101 83 74 88 83 88 88 83 74 88 83 88 99 93 84 88 83 88 101 83 74 88 83 88
++88 83 88 88 83 74 88 83 88 88 83 74 88 83 74 88 83 74 88 69 84 88 83 74
++88 66 70 88 83 74 88 73 62 88 66 70 88 83 74 88 66 70 88 83 74 88 73 62
++88 66 70 88 73 62 88 73 62 88 73 62 75 56 53 88 73 62 75 56 53 75 73 58
++75 56 53 75 73 58 75 56 53 75 73 58 75 56 53 75 73 58 75 56 53 64 70 48
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 63 55 51 75 56 53
++65 55 54 63 55 45 65 55 54 63 55 51 65 55 54 75 56 53 75 56 53 75 56 53
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 63 55 51 65 55 54
++75 56 53 62 47 47 62 47 47 65 55 54 62 47 47 63 55 51 65 55 54 65 55 54
++75 56 53 75 56 53 75 63 62 75 63 62 75 63 62 88 66 70 75 63 62 88 66 70
++75 72 67 75 72 67 88 73 62 88 66 70 88 73 62 88 73 62 101 83 74 88 83 74
++101 83 74 99 93 84 101 83 74 99 93 84 99 93 84 88 83 88 99 93 84 101 83 74
++88 69 84 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 101 60 73 101 83 74
++101 83 74 99 93 84 120 63 71 101 83 74 112 96 108 120 63 71 117 99 86 117 99 86
++117 99 86 112 96 108 117 99 86 112 96 108 117 99 86 112 96 108 138 102 108 117 99 86
++112 96 108 112 96 108 117 99 86 112 96 108 117 99 86 112 96 108 117 99 86 99 93 84
++95 91 100 101 83 74 99 93 84 88 83 88 101 83 74 88 83 88 88 83 74 88 83 74
++75 72 67 88 66 70 88 73 62 75 72 67 75 73 58 75 63 62 75 63 62 75 63 62
++65 55 54 64 70 48 75 56 53 65 55 54 75 56 53 65 63 61 75 63 62 75 63 62
++65 55 54 75 56 53 65 55 54 75 63 62 75 63 62 65 63 61 55 55 48 51 49 42
++42 41 42 32 39 24 33 30 30 26 24 32 22 25 24 23 18 22 22 25 24 30 30 34
++36 35 37 36 35 37 36 35 37 33 30 32 30 30 34 26 24 32 25 30 29 25 30 29
++22 23 31 22 25 24 25 30 29 25 30 29 25 30 29 25 30 29 26 24 32 26 30 28
++22 25 24 25 30 29 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 26 30 28
++30 30 34 36 35 37 37 35 43 42 41 42 42 41 42 43 42 50 43 42 50 34 40 43
++36 35 37 12 18 20 14 16 17 23 20 24 30 30 34 25 30 29 23 20 24 23 18 22
++22 25 24 30 30 34 33 30 32 26 30 28 15 22 17 3 3 1 17 12 17 59 55 55
++112 123 108 188 180 202 235 238 247 251 251 247 251 251 247 251 251 247 235 238 247 235 238 247
++231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 235 238 247 240 251 247 240 251 247
++240 251 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++240 251 247 246 237 247 251 251 247 251 251 247 251 251 247 240 251 247 251 251 247 251 251 247
++251 251 247 246 237 247 222 171 182 138 102 108 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 161 55 23 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 195 113 123 167 63 71 161 55 23 102 33 26
++76 18 19 102 33 26 167 63 71 161 55 23 102 33 26 161 55 23 219 175 47 214 214 134
++214 214 134 214 214 134 214 214 134 219 175 47 214 214 134 219 175 47 214 214 134 214 214 134
++197 171 123 168 102 88 101 74 26 138 102 108 189 165 168 232 215 228 235 238 247 235 238 247
++235 238 247 226 221 247 201 216 228 188 180 202 141 116 139 117 99 86 117 99 86 138 126 108
++168 146 127 168 146 127 168 146 127 168 146 127 201 146 124 168 146 127 168 146 127 168 146 127
++177 171 115 201 146 124 168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 177 171 115 163 117 123 177 171 115 168 146 127 168 146 127
++163 117 123 177 171 115 146 150 115 168 102 88 146 150 115 168 102 88 146 150 115 168 102 88
++146 150 115 168 102 88 138 126 108 168 102 88 168 102 88 117 114 76 168 102 88 117 99 86
++117 112 45 120 63 71 117 114 76 120 63 71 117 112 45 120 63 71 101 74 26 101 83 74
++101 74 26 101 83 74 120 63 71 117 112 45 117 99 86 117 112 45 117 114 76 168 102 88
++138 126 108 168 102 88 163 117 123 168 146 127 168 102 88 201 146 124 168 146 127 201 146 124
++168 146 127 201 146 124 197 171 123 201 146 124 177 169 143 197 171 123 201 146 124 168 146 127
++201 146 124 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 201 146 124 177 169 143
++197 171 123 177 169 143 217 168 156 177 169 143 138 126 108 101 83 74 88 83 74 88 83 74
++88 83 88 88 83 74 88 83 88 75 81 82 88 66 70 75 81 76 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 65 63 61 65 63 61 65 63 61 65 57 61 64 70 48
++63 55 51 59 55 55 59 55 55 55 55 48 55 55 48 52 55 48 52 55 48 48 50 48
++48 50 48 47 44 42 42 47 42 42 41 42 42 41 42 34 40 43 42 38 42 33 39 38
++36 35 37 37 35 43 36 35 37 33 39 38 42 41 42 36 35 37 42 41 42 36 35 37
++42 38 42 42 41 42 42 41 42 42 41 42 42 47 42 42 47 42 47 44 42 47 44 42
++51 49 42 47 44 42 51 49 42 53 46 48 55 55 48 53 46 48 53 46 48 48 50 48
++59 55 55 59 55 55 59 55 55 53 46 48 55 55 48 75 81 76 145 140 145 188 180 202
++201 216 228 225 222 201 201 216 228 185 202 202 225 222 201 201 216 228 201 216 228 208 215 180
++185 202 202 166 174 181 148 160 159 148 160 159 150 171 159 148 160 159 148 160 159 148 160 159
++166 156 164 166 174 181 148 160 159 145 140 145 121 143 132 168 146 127 217 168 156 217 168 156
++208 215 180 217 168 156 225 222 201 189 165 168 138 126 108 122 134 144 148 160 159 185 202 202
++201 216 228 185 202 202 194 199 226 185 202 202 185 202 202 185 202 202 185 202 202 166 176 200
++185 202 202 185 202 202 166 174 181 185 202 202 185 202 202 185 202 202 201 216 228 201 216 228
++201 216 228 201 216 228 233 241 227 208 221 247 233 241 227 221 238 247 233 241 227 221 238 247
++233 241 227 201 216 228 201 216 228 188 180 202 166 180 164 185 202 202 231 239 247 251 251 247
++240 251 247 240 251 247 231 239 247 201 216 228 129 144 153 88 83 88 75 81 90 75 81 82
++75 81 82 75 72 67 75 81 76 75 72 67 59 69 70 75 72 67 75 72 67 59 69 70
++65 63 61 59 69 70 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 59 55 55 65 63 61 59 55 55 63 55 51 59 55 55
++63 55 51 55 55 48 55 55 48 53 46 48 55 55 48 53 46 48 60 49 42 53 46 48
++51 49 42 53 46 48 51 49 42 51 49 42 47 44 42 47 44 42 47 44 42 55 55 48
++53 46 48 55 55 48 55 55 48 55 55 48 65 63 61 65 63 61 59 69 70 75 72 67
++75 72 67 75 72 67 75 81 76 75 72 67 88 83 74 75 81 76 88 83 88 88 83 74
++88 83 88 88 83 74 88 83 88 88 83 74 88 83 88 88 69 84 88 83 74 88 83 74
++75 81 76 88 66 70 75 72 67 75 59 67 75 72 67 75 63 62 75 72 67 75 63 62
++65 63 61 65 55 54 63 55 51 59 55 55 62 47 47 53 46 48 51 49 42 53 46 48
++62 47 47 51 49 42 60 49 42 53 46 48 62 47 47 62 47 47 62 47 47 63 55 51
++60 49 42 63 55 45 62 47 47 63 55 51 63 55 51 63 55 51 63 55 45 63 55 51
++55 55 48 63 55 45 55 55 48 60 49 42 60 49 42 62 47 47 55 55 48 60 49 42
++53 46 48 51 49 42 55 39 37 51 49 42 55 39 37 55 39 37 53 46 48 51 49 42
++
++55 39 37 55 39 37 59 36 42 55 39 37 55 39 37 76 46 20 59 36 42 76 44 53
++88 30 18 88 44 51 88 30 18 88 44 51 88 44 51 102 33 26 88 44 51 102 33 26
++88 44 51 88 44 51 102 33 26 88 44 51 122 49 24 88 44 51 122 49 24 88 44 51
++102 33 26 102 33 26 102 33 26 76 46 20 102 33 26 102 33 26 122 49 24 88 44 51
++122 49 24 122 49 24 122 49 24 122 49 24 120 63 71 122 49 24 122 49 24 122 49 24
++122 49 24 122 49 24 122 49 24 102 33 26 122 49 24 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 122 49 24
++102 33 26 122 49 24 122 49 24 102 33 26 122 49 24 122 49 24 122 49 24 122 49 24
++101 60 73 122 49 24 122 49 24 101 60 73 102 33 26 88 44 51 76 46 20 76 44 53
++76 46 20 59 36 42 53 35 37 53 35 37 53 35 37 53 35 37 52 30 35 47 47 21
++52 30 35 53 35 37 55 39 37 55 39 37 55 39 37 59 36 42 55 39 37 60 49 42
++60 49 42 62 47 47 60 49 42 62 47 47 63 55 45 60 49 42 63 55 45 76 44 53
++76 46 20 75 56 53 63 55 45 76 44 53 75 56 53 63 55 45 75 56 53 75 56 53
++75 56 53 63 55 45 63 55 45 62 47 47 63 55 51 63 55 51 62 47 47 63 55 51
++53 46 48 51 49 42 53 46 48 51 49 42 53 46 48 48 50 48 53 46 48 53 46 48
++53 46 48 55 55 48 53 46 48 53 46 48 53 46 48 55 55 48 63 55 51 55 55 48
++63 55 51 55 55 48 63 55 51 63 55 51 63 55 51 65 55 54 65 63 61 75 56 53
++75 63 62 75 56 53 75 73 58 75 56 53 88 73 62 75 56 53 88 73 62 75 63 62
++88 73 62 88 73 62 75 72 67 88 83 74 88 66 70 88 83 74 88 83 74 88 83 74
++88 83 88 88 83 74 88 69 84 101 83 74 88 83 74 88 83 88 88 83 74 88 83 88
++101 83 74 88 69 84 88 83 74 88 83 74 88 66 70 88 83 74 88 66 70 88 83 74
++88 66 70 88 83 74 88 73 62 88 66 70 88 73 62 88 83 74 88 73 62 88 66 70
++88 73 62 88 73 62 88 66 70 88 73 62 88 73 62 75 56 53 88 73 62 75 56 53
++88 73 62 75 56 53 75 63 62 75 56 53 75 56 53 75 56 53 75 73 58 75 56 53
++75 56 53 65 55 54 75 56 53 63 55 45 63 55 51 65 55 54 65 55 54 63 55 45
++63 55 51 63 55 51 63 55 51 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53
++75 56 53 75 63 62 75 63 62 75 56 53 75 56 53 65 55 54 75 56 53 63 55 51
++62 47 47 65 55 54 62 47 47 62 47 47 62 47 47 63 55 51 65 55 54 75 56 53
++65 57 61 75 63 62 75 63 62 75 73 58 75 63 62 75 63 62 75 72 67 75 72 67
++75 63 62 88 66 70 88 73 62 88 83 74 88 83 74 88 83 74 88 83 74 101 83 74
++101 83 74 88 83 88 99 93 84 101 83 74 99 93 84 101 83 74 101 83 74 99 93 84
++101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74
++101 83 74 101 83 74 99 93 84 117 99 86 99 93 84 112 96 108 117 99 86 112 96 108
++117 99 86 112 96 108 117 99 86 112 96 108 117 99 86 112 96 108 117 99 86 112 96 108
++117 99 86 112 96 108 117 99 86 112 96 108 117 99 86 95 91 100 117 99 86 99 93 84
++101 83 74 88 83 88 101 83 74 88 83 88 101 83 74 88 69 84 88 83 74 88 66 70
++75 72 67 75 81 76 75 72 67 88 66 70 75 72 67 75 63 62 75 63 62 65 55 54
++75 56 53 65 55 54 65 55 54 75 56 53 63 55 51 75 56 53 65 63 61 63 55 45
++65 55 54 65 55 54 65 63 61 65 63 61 63 55 51 51 49 42 42 41 42 42 38 42
++36 35 37 33 30 30 33 30 30 22 25 24 22 25 24 22 25 24 22 23 31 31 35 35
++36 35 37 36 35 37 30 30 34 33 30 32 30 30 34 26 30 28 25 30 29 25 30 29
++30 30 34 25 30 29 25 30 29 26 24 32 25 30 29 25 30 29 26 24 32 26 30 28
++23 20 24 22 25 24 22 25 24 23 20 24 12 18 20 23 18 22 23 20 24 22 25 24
++25 30 29 36 35 37 48 44 48 48 50 48 48 44 48 48 44 48 43 42 50 35 46 43
++28 35 38 12 18 20 23 20 24 28 35 38 43 42 50 42 41 42 28 30 35 25 30 29
++22 23 31 25 30 29 25 30 29 26 30 28 31 35 35 26 30 28 23 20 24 14 16 17
++36 35 37 75 72 67 145 140 145 185 202 202 232 215 228 240 251 247 235 238 247 231 239 247
++226 221 247 233 241 227 226 221 247 231 239 247 235 238 247 235 238 247 235 238 247 235 238 247
++235 238 247 240 251 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 240 251 247 246 237 247
++251 251 247 251 251 247 251 251 247 251 251 247 240 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 246 237 247 222 171 182 195 113 123 167 63 71 167 63 71 167 63 71 167 63 71
++161 55 23 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++195 113 123 167 63 71 195 113 123 167 63 71 195 113 123 167 63 71 195 113 123 161 55 23
++88 30 18 88 30 18 102 33 26 161 55 23 122 49 24 122 49 24 176 103 41 219 175 47
++214 214 134 214 214 134 219 175 47 214 214 134 214 214 134 214 214 134 214 214 134 214 214 134
++214 214 134 117 114 76 138 126 108 217 168 156 246 237 247 246 237 247 235 238 247 231 239 247
++226 221 247 226 221 247 194 199 226 166 156 164 138 126 108 138 102 108 138 126 108 168 146 127
++201 146 124 168 146 127 177 171 115 168 146 127 168 146 127 168 146 127 201 146 124 168 146 127
++168 146 127 168 146 127 177 171 115 168 146 127 146 150 115 201 146 124 168 146 127 168 146 127
++168 146 127 168 102 88 177 171 115 168 146 127 168 146 127 201 146 124 168 146 127 146 150 115
++168 102 88 168 146 127 168 102 88 146 150 115 138 126 108 157 148 53 138 126 108 138 126 108
++157 148 53 138 126 108 138 126 108 117 114 76 117 114 76 168 102 88 117 114 76 168 102 88
++117 99 86 117 112 45 117 99 86 117 114 76 117 99 86 120 63 71 117 112 45 120 63 71
++98 106 55 120 63 71 117 112 45 120 63 71 120 63 71 117 114 76 168 102 88 117 112 45
++168 102 88 146 150 115 157 148 53 168 146 127 177 171 115 168 146 127 168 146 127 177 171 115
++201 146 124 177 171 115 177 169 143 201 146 124 168 146 127 201 146 124 177 169 143 168 146 127
++168 146 127 168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 201 146 124 197 171 123
++177 169 143 197 171 123 189 165 168 177 169 143 163 117 123 117 99 86 88 83 74 88 83 74
++88 69 84 75 81 76 75 81 76 75 72 67 75 72 67 75 72 67 75 72 67 75 63 62
++65 63 61 65 63 61 65 63 61 65 63 61 64 70 48 65 55 54 63 55 51 65 55 54
++63 55 51 59 55 55 50 61 48 63 55 51 52 55 48 53 46 48 52 55 48 53 46 48
++48 50 48 47 44 42 47 44 42 42 41 42 42 41 42 42 41 42 33 39 38 36 35 37
++42 41 42 42 41 42 36 35 37 42 41 42 36 35 37 42 41 42 36 35 37 42 41 42
++36 35 37 42 41 42 42 41 42 42 41 42 42 41 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 51 49 42 48 44 48 53 46 48 48 50 48 48 50 48 48 50 48
++55 55 48 52 55 48 53 46 48 51 49 42 65 63 61 112 123 108 166 180 164 225 222 201
++201 216 228 201 216 228 225 222 201 201 216 228 201 216 228 225 222 201 201 216 228 185 202 202
++166 180 164 166 180 164 166 174 181 166 174 181 166 174 181 166 174 181 185 202 202 185 202 202
++201 216 228 201 216 228 225 222 201 166 176 200 146 151 137 146 151 137 189 165 168 208 215 180
++222 171 182 208 215 180 217 168 156 177 169 143 121 143 132 166 180 164 232 215 228 231 239 247
++231 239 247 233 241 227 235 238 247 233 241 227 221 238 247 201 216 228 201 216 228 233 241 227
++201 216 228 201 216 228 185 202 202 225 222 201 201 216 228 185 202 202 185 202 202 185 202 202
++185 202 202 185 202 202 185 202 202 185 202 202 201 216 228 201 216 228 201 216 228 233 241 227
++201 216 228 233 241 227 185 202 202 166 180 164 166 174 181 233 241 227 251 251 247 251 251 247
++251 251 247 240 251 247 240 251 247 231 239 247 166 174 181 111 119 127 75 81 82 75 72 67
++75 81 76 75 72 67 59 69 70 75 72 67 75 72 67 59 69 70 65 63 61 59 69 70
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++63 55 51 53 63 61 63 55 51 65 63 61 63 55 51 65 63 61 63 55 51 59 55 55
++55 55 48 55 55 48 53 46 48 51 49 42 60 49 42 53 46 48 51 49 42 51 49 42
++51 49 42 51 49 42 47 44 42 55 39 37 51 49 42 47 44 42 51 49 42 53 46 48
++55 55 48 55 55 48 63 55 51 59 55 55 59 55 55 65 63 61 65 63 61 75 72 67
++75 81 76 75 64 82 75 72 67 75 81 76 75 64 82 88 83 74 88 83 74 88 83 88
++88 83 88 88 83 88 88 83 88 88 83 88 88 83 74 75 81 82 88 83 74 88 66 70
++75 72 67 75 72 67 75 72 67 75 72 67 75 63 62 75 72 67 75 63 62 75 63 62
++65 63 61 65 55 54 63 55 51 59 55 55 62 47 47 53 46 48 60 49 42 53 46 48
++60 49 42 55 39 37 53 46 48 55 39 37 60 49 42 55 55 48 62 47 47 55 55 48
++62 47 47 55 55 48 62 47 47 62 47 47 62 47 47 63 55 45 55 55 48 60 49 42
++62 47 47 55 55 48 60 49 42 53 46 48 55 55 48 51 49 42 60 49 42 53 46 48
++51 49 42 55 39 37 51 49 42 47 44 42 47 44 42 51 49 42 51 49 42 55 39 37
++
++55 39 37 55 39 37 59 36 42 76 46 20 59 36 42 59 36 42 76 46 20 76 18 19
++76 44 53 88 30 18 88 44 51 102 33 26 102 33 26 88 44 51 102 33 26 88 44 51
++102 33 26 88 44 51 122 49 24 102 33 26 102 33 26 122 49 24 88 44 51 102 33 26
++102 33 26 102 33 26 88 44 51 122 49 24 102 33 26 102 33 26 88 44 51 122 49 24
++122 49 24 88 44 51 122 49 24 122 49 24 122 49 24 122 49 24 122 49 24 122 49 24
++122 49 24 120 63 71 122 49 24 122 49 24 88 44 51 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 76 18 19 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++122 49 24 102 33 26 122 49 24 122 49 24 122 49 24 122 49 24 120 63 71 122 49 24
++122 49 24 122 49 24 101 74 26 102 33 26 122 49 24 88 44 51 88 44 51 76 46 20
++59 36 42 55 39 37 55 39 37 53 35 37 53 35 37 52 30 35 52 30 35 52 30 35
++52 30 35 53 35 37 55 39 37 55 39 37 55 39 37 59 36 42 60 49 42 59 36 42
++60 49 42 62 47 47 62 47 47 62 47 47 60 49 42 76 44 53 60 49 42 63 55 45
++63 55 45 63 55 45 76 44 53 63 55 45 75 56 53 75 56 53 76 46 20 75 56 53
++63 55 45 76 44 53 75 56 53 63 55 45 65 55 54 62 47 47 63 55 51 62 47 47
++53 46 48 53 46 48 51 49 42 48 44 48 53 46 48 53 46 48 53 46 48 53 46 48
++55 55 48 53 46 48 53 46 48 52 55 48 53 46 48 53 46 48 59 55 55 55 55 48
++62 47 47 62 47 47 55 55 48 63 55 51 65 55 54 65 55 54 75 56 53 65 55 54
++75 56 53 75 56 53 75 63 62 75 63 62 75 73 58 88 73 62 75 63 62 75 63 62
++75 63 62 88 73 62 88 66 70 88 66 70 88 83 74 88 66 70 88 66 70 88 83 74
++88 69 84 88 83 74 88 83 74 88 83 88 88 83 74 101 83 74 88 83 74 101 83 74
++88 83 88 88 83 74 88 83 74 88 66 70 88 83 74 75 81 69 88 66 70 75 72 67
++88 73 62 88 73 62 88 73 62 88 83 74 88 66 70 88 73 62 88 66 70 88 83 74
++88 73 62 88 73 62 88 73 62 75 63 62 88 73 62 88 73 62 75 56 53 75 73 58
++75 56 53 88 73 62 75 56 53 75 73 58 75 56 53 75 73 58 75 56 53 75 56 53
++65 63 61 75 56 53 64 70 48 63 55 51 75 56 53 63 55 51 75 56 53 65 55 54
++63 55 51 63 55 51 63 55 51 63 55 45 65 55 54 65 55 54 75 56 53 65 55 54
++75 56 53 75 56 53 75 56 53 75 63 62 75 56 53 65 55 54 65 55 54 63 55 51
++63 55 51 63 55 45 63 55 45 62 47 47 63 55 45 62 47 47 63 55 51 65 55 54
++65 63 61 75 56 53 75 63 62 75 63 62 75 63 62 75 63 62 88 66 70 75 72 67
++88 73 62 75 72 67 75 72 67 75 72 67 88 66 70 88 83 74 101 83 74 88 83 88
++99 93 84 99 93 84 101 83 74 95 91 100 99 93 84 101 83 74 99 93 84 99 93 84
++101 83 74 99 93 84 88 83 88 101 83 74 88 83 74 101 83 74 88 83 88 101 83 74
++101 60 73 95 91 100 101 83 74 101 83 74 112 96 108 120 63 71 95 91 100 117 99 86
++117 99 86 112 96 108 117 99 86 117 99 86 112 96 108 117 99 86 112 96 108 117 99 86
++112 96 108 117 99 86 112 96 108 117 99 86 112 96 108 117 99 86 99 93 84 95 91 100
++99 93 84 88 83 88 99 93 84 88 69 84 88 83 74 88 83 74 88 66 70 75 81 76
++88 66 70 75 72 67 88 66 70 75 72 67 75 72 67 75 63 62 64 70 48 75 63 62
++65 55 54 64 70 48 63 55 51 65 55 54 63 55 51 64 70 48 65 55 54 63 55 51
++63 55 51 63 55 51 59 55 55 52 55 48 42 47 42 36 35 37 31 35 35 36 35 37
++36 35 37 33 30 32 26 30 28 26 30 28 26 24 32 26 30 28 30 30 34 30 30 34
++31 35 35 30 30 34 33 30 30 31 35 35 33 30 32 26 30 28 26 30 28 26 30 28
++33 30 30 30 30 34 30 30 34 26 30 28 22 23 31 22 25 24 22 25 24 25 30 29
++22 23 31 22 25 24 22 25 24 12 18 20 23 20 24 22 25 24 23 20 24 22 25 24
++26 24 32 31 35 35 43 42 50 48 50 48 54 57 61 52 55 48 45 57 61 43 42 50
++37 35 43 33 39 38 34 40 43 43 42 50 43 55 48 43 42 50 42 47 42 43 42 50
++34 40 43 36 35 37 25 30 29 22 23 31 28 30 35 31 35 35 28 35 38 22 23 31
++14 16 17 7 12 13 36 35 37 88 83 88 145 140 145 194 199 226 251 251 247 240 251 247
++240 251 247 246 237 247 240 251 247 251 251 247 246 237 247 251 251 247 240 251 247 240 251 247
++246 237 247 240 251 247 246 237 247 240 251 247 240 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 246 237 247 222 171 182 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 176 103 41 167 63 71 167 63 71 195 113 123 167 63 71 167 63 71
++161 55 23 102 33 26 102 33 26 102 33 26 167 63 71 122 49 24 161 55 23 201 146 124
++214 214 134 214 214 134 214 214 134 214 214 134 214 214 134 225 222 201 233 241 227 251 251 247
++232 215 228 188 180 202 185 202 202 201 216 228 246 237 247 235 238 247 231 239 247 226 221 247
++231 239 247 201 216 228 189 165 168 145 140 145 138 126 108 163 117 123 168 146 127 168 146 127
++168 146 127 168 146 127 201 146 124 168 146 127 201 146 124 177 171 115 168 146 127 168 146 127
++197 171 123 168 146 127 201 146 124 168 146 127 168 146 127 168 146 127 168 146 127 177 171 115
++168 146 127 177 171 115 168 146 127 201 146 124 168 146 127 177 171 115 163 117 123 177 171 115
++168 146 127 146 150 115 177 171 115 146 150 115 168 102 88 138 126 108 168 102 88 146 150 115
++168 102 88 138 126 108 168 102 88 168 102 88 117 114 76 168 102 88 117 114 76 168 102 88
++117 114 76 168 102 88 168 102 88 117 112 45 168 102 88 117 114 76 117 99 86 117 112 45
++120 63 71 98 106 55 120 63 71 101 83 74 117 112 45 120 63 71 117 114 76 168 102 88
++117 114 76 168 102 88 138 126 108 168 102 88 168 102 88 177 171 115 168 102 88 168 146 127
++168 146 127 168 146 127 201 146 124 177 171 115 201 146 124 177 171 115 201 146 124 177 171 115
++201 146 124 177 171 115 168 102 88 168 146 127 177 171 115 201 146 124 168 146 127 201 146 124
++201 146 124 177 169 143 197 171 123 189 165 168 168 146 127 117 127 86 101 83 74 88 73 62
++75 81 69 88 69 84 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 63 55 51 65 63 61 59 57 61
++64 70 48 63 55 51 59 55 55 55 55 48 55 55 48 55 55 48 53 46 48 48 50 48
++47 49 42 47 44 42 42 47 42 42 41 42 42 41 42 36 35 37 37 35 43 36 35 37
++33 39 38 36 35 37 33 39 38 42 41 42 33 39 38 42 41 42 33 39 38 36 35 37
++42 41 42 36 35 37 36 35 37 42 41 42 42 41 42 42 41 42 47 39 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 48 44 48 48 44 48 53 46 48 48 50 48
++48 44 48 48 50 48 48 50 48 48 44 48 75 81 82 145 140 145 185 202 202 201 216 228
++225 222 201 185 202 202 208 215 180 201 216 228 225 222 201 201 216 228 185 202 202 185 202 202
++185 202 202 185 202 202 185 202 202 201 216 228 201 216 228 221 238 247 233 241 227 201 216 228
++233 241 227 221 238 247 233 241 227 201 216 228 166 174 181 166 156 164 166 180 164 185 202 202
++225 222 201 225 222 201 166 180 164 146 162 145 166 156 164 185 202 202 221 238 247 233 241 227
++231 239 247 231 239 247 240 251 247 231 239 247 233 241 227 233 241 227 233 241 227 221 238 247
++233 241 227 233 241 227 221 238 247 233 241 227 201 216 228 201 216 228 166 176 200 166 180 164
++166 180 164 166 180 164 166 180 164 166 174 181 166 180 164 208 215 180 185 202 202 185 202 202
++225 222 201 201 216 228 185 202 202 150 171 159 189 165 168 235 238 247 251 251 247 251 251 247
++251 251 247 240 251 247 231 239 247 233 241 227 185 202 202 129 144 153 77 90 100 60 63 87
++59 69 70 75 72 67 63 59 71 75 72 67 59 69 70 65 63 61 59 69 70 65 63 61
++65 63 61 65 63 61 65 63 61 59 57 61 65 63 61 65 63 61 64 70 48 65 63 61
++65 63 61 65 63 61 64 70 48 65 63 61 59 55 55 63 55 51 55 55 48 59 55 55
++55 55 48 55 55 48 55 55 48 51 49 42 53 46 48 60 49 42 53 46 48 51 49 42
++51 49 42 53 46 48 51 49 42 47 44 42 47 44 42 47 44 42 47 44 42 51 49 42
++53 46 48 55 55 48 55 55 48 55 55 48 65 63 61 65 63 61 65 63 61 63 59 71
++75 72 67 75 72 67 75 81 76 75 64 82 75 81 76 88 83 74 75 81 76 88 83 88
++88 83 74 90 98 89 88 83 74 88 83 88 88 83 88 88 69 84 88 83 74 75 81 76
++88 83 74 75 72 67 75 72 67 75 72 67 75 63 62 75 72 67 65 63 61 75 63 62
++65 57 61 65 55 54 63 55 51 63 55 51 63 55 51 60 49 42 53 46 48 55 39 37
++53 46 48 55 39 37 51 49 42 55 39 37 53 46 48 60 49 42 62 47 47 62 47 47
++62 47 47 63 55 51 62 47 47 63 55 45 53 46 48 62 47 47 51 49 42 53 46 48
++55 55 48 62 47 47 53 46 48 51 49 42 53 46 48 51 49 42 47 44 42 55 39 37
++51 49 42 47 44 42 47 44 42 47 44 42 55 39 37 47 44 42 51 49 42 47 44 42
++
++55 39 37 55 39 37 55 39 37 55 39 37 59 36 42 76 46 20 59 36 42 88 44 51
++76 18 19 88 44 51 88 30 18 88 44 51 88 30 18 88 44 51 102 33 26 88 44 51
++102 33 26 102 33 26 88 44 51 102 33 26 88 44 51 122 49 24 102 33 26 122 49 24
++88 44 51 102 33 26 102 33 26 88 30 18 102 33 26 102 33 26 122 49 24 102 33 26
++88 44 51 122 49 24 122 49 24 88 44 51 122 49 24 120 63 71 122 49 24 122 49 24
++102 33 26 122 49 24 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 76 18 19
++102 33 26 76 18 19 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 122 49 24
++122 49 24 102 33 26 122 49 24 122 49 24 122 49 24 122 49 24 102 33 26 122 49 24
++120 63 71 102 33 26 120 63 71 122 49 24 88 44 51 88 73 31 102 33 26 76 44 53
++76 46 20 59 36 42 52 30 35 55 39 37 52 30 35 55 39 18 36 35 37 52 30 35
++53 35 37 55 39 37 55 39 37 55 39 37 55 39 37 59 36 42 59 36 42 62 47 47
++60 49 42 62 47 47 62 47 47 63 55 45 62 47 47 63 55 45 63 55 45 76 44 53
++63 55 45 75 56 53 76 46 20 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53
++75 56 53 63 55 45 63 55 45 63 55 45 76 44 53 62 47 47 62 47 47 53 46 48
++55 55 48 53 46 48 47 44 42 48 44 48 53 46 48 48 44 48 48 50 48 48 44 48
++53 46 48 55 55 48 55 55 48 53 46 48 55 55 48 53 46 48 53 46 48 53 46 48
++55 55 48 63 55 51 63 55 51 63 55 51 65 55 54 65 55 54 75 56 53 75 56 53
++75 63 62 75 63 62 75 73 58 88 73 62 75 63 62 75 63 62 75 56 53 88 73 62
++75 56 53 75 63 62 75 63 62 88 66 70 75 72 67 88 66 70 88 83 74 88 66 70
++88 83 74 88 83 74 88 69 84 101 83 74 88 83 74 88 83 74 88 83 74 88 83 74
++88 83 74 88 66 70 88 83 74 88 66 70 75 72 67 88 66 70 88 73 62 75 72 67
++88 66 70 88 73 62 88 73 62 88 73 62 88 73 62 88 66 70 88 73 62 88 73 62
++88 73 62 88 66 70 88 73 62 88 73 62 75 63 62 75 63 62 88 73 62 75 56 53
++75 73 58 75 56 53 75 56 53 75 73 58 75 56 53 75 56 53 75 56 53 64 70 48
++75 56 53 63 55 51 75 56 53 65 55 54 63 55 45 75 56 53 63 55 51 63 55 45
++65 55 54 63 55 51 65 55 54 65 55 54 75 56 53 75 56 53 75 56 53 75 56 53
++75 63 62 75 56 53 75 56 53 75 56 53 65 55 54 65 55 54 65 55 54 63 55 45
++63 55 51 62 47 47 62 47 47 60 49 42 62 47 47 63 55 45 65 55 54 75 56 53
++65 55 54 65 55 54 75 73 58 75 63 62 75 72 67 75 72 67 75 63 62 75 72 67
++88 66 70 75 72 67 88 66 70 88 83 74 88 83 74 88 83 74 88 83 88 101 83 74
++99 93 84 101 83 74 95 91 100 101 83 74 99 93 84 99 93 84 88 83 88 101 83 74
++99 93 84 99 93 84 101 83 74 101 83 74 101 83 74 88 83 74 101 83 74 101 83 74
++99 93 84 101 83 74 101 83 74 112 96 108 101 83 74 117 99 86 117 99 86 112 96 108
++117 99 86 117 99 86 112 96 108 117 99 86 117 99 86 112 96 108 117 99 86 112 96 108
++117 99 86 112 96 108 99 93 84 99 93 84 99 93 84 101 83 74 95 91 100 120 63 71
++99 93 84 101 83 74 88 69 84 88 83 74 88 83 74 88 66 70 88 83 74 88 66 70
++88 83 74 75 72 67 88 66 70 75 72 67 75 63 62 75 63 62 75 63 62 75 56 53
++65 63 61 65 55 54 65 55 54 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51
++63 55 51 59 55 55 42 47 42 33 39 38 36 35 37 36 35 37 31 35 35 28 30 35
++28 30 35 26 30 28 26 24 32 26 30 28 30 30 34 33 30 36 31 35 35 30 30 34
++30 30 34 26 30 28 26 30 28 31 35 35 33 30 30 26 30 28 26 30 28 26 30 28
++26 30 28 30 30 34 26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 26 24 32
++26 30 28 25 30 29 22 23 31 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24
++25 30 29 30 30 34 36 35 37 43 42 50 48 50 48 48 50 48 48 50 48 34 40 43
++34 40 43 34 40 43 34 40 43 33 39 38 28 35 38 33 39 38 34 40 43 43 42 50
++45 57 61 48 50 48 34 40 43 23 20 24 22 23 31 23 30 35 28 30 35 23 30 35
++22 25 24 23 20 24 14 16 17 22 25 24 42 41 42 145 140 145 232 215 228 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++240 251 247 240 251 247 251 251 247 240 251 247 240 251 247 240 251 247 240 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 232 215 228 201 146 124 168 102 88 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 195 113 123 167 63 71
++167 63 71 161 55 23 161 55 23 167 63 71 122 49 24 122 49 24 161 55 23 176 103 41
++227 171 124 214 214 134 214 214 134 214 214 134 233 241 227 233 241 227 233 241 227 251 251 247
++233 241 227 233 241 227 235 238 247 235 238 247 235 238 247 231 239 247 221 238 247 226 221 247
++201 216 228 188 180 202 166 156 164 168 146 127 163 117 123 146 150 115 168 146 127 177 171 115
++168 146 127 177 171 115 168 146 127 177 171 115 168 146 127 168 146 127 168 146 127 201 146 124
++168 146 127 177 171 115 168 146 127 168 146 127 201 146 124 146 150 115 201 146 124 163 117 123
++201 146 124 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 102 88
++168 146 127 168 102 88 168 146 127 168 102 88 146 150 115 168 102 88 146 150 115 168 102 88
++146 150 115 168 102 88 117 127 86 157 148 53 138 102 108 117 114 76 168 102 88 138 126 108
++168 102 88 117 127 86 168 102 88 138 126 108 168 102 88 117 114 76 168 102 88 117 99 86
++117 112 45 120 63 71 117 112 45 120 63 71 117 112 45 117 99 86 176 103 41 117 114 76
++168 102 88 117 114 76 168 102 88 177 171 115 168 146 127 177 171 115 168 102 88 177 171 115
++201 146 124 177 171 115 168 146 127 201 146 124 168 146 127 177 169 143 168 146 127 168 146 127
++168 146 127 177 171 115 177 171 115 201 146 124 168 146 127 201 146 124 177 171 115 168 146 127
++168 146 127 201 146 124 177 169 143 217 168 156 177 169 143 138 126 108 101 83 74 75 72 67
++75 72 67 75 72 67 75 72 67 75 59 67 65 63 61 75 72 67 65 63 61 65 63 61
++65 63 61 64 70 48 65 63 61 65 63 61 65 55 54 65 63 61 64 70 48 65 55 54
++59 55 55 59 55 55 55 55 48 55 55 48 53 46 48 53 46 48 51 49 42 51 49 42
++47 44 42 47 44 42 42 41 42 42 41 42 42 41 42 42 38 42 33 39 38 36 35 37
++36 35 37 33 39 38 42 41 42 36 35 37 32 39 24 42 41 42 32 39 24 42 41 42
++32 39 24 42 41 42 36 35 37 42 41 42 36 35 37 47 44 42 42 41 42 42 41 42
++42 41 42 47 47 21 42 41 42 47 44 42 48 44 48 42 47 42 48 44 48 51 49 42
++48 50 48 47 44 42 47 44 42 53 46 48 95 91 100 166 156 164 208 215 180 232 215 228
++201 216 228 225 222 201 185 202 202 185 202 202 185 202 202 185 202 202 185 202 202 225 222 201
++201 216 228 201 216 228 233 241 227 233 241 227 233 241 227 233 241 227 221 238 247 233 241 227
++201 216 228 233 241 227 208 221 247 201 216 228 185 202 202 166 180 164 189 165 168 185 202 202
++208 215 180 188 180 202 166 156 164 166 180 164 185 202 202 233 241 227 231 239 247 221 238 247
++233 241 227 221 238 247 233 241 227 231 239 247 221 238 247 231 239 247 240 251 247 240 251 247
++231 239 247 221 238 247 221 238 247 221 238 247 201 216 228 225 222 201 185 202 202 185 202 202
++150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 150 171 159 166 180 164
++166 174 181 150 171 159 145 140 145 145 140 145 166 174 181 233 241 227 246 237 247 240 251 247
++246 237 247 240 251 247 231 239 247 221 238 247 201 216 228 166 156 164 94 105 108 75 81 76
++59 69 70 59 69 70 75 72 67 65 63 61 65 63 61 65 63 61 65 63 61 63 59 71
++65 63 61 59 57 61 65 63 61 65 63 61 59 55 55 59 55 55 59 55 55 65 63 61
++59 55 55 59 55 55 59 55 55 59 55 55 64 70 48 59 55 55 59 55 55 55 55 48
++53 46 48 51 49 42 51 49 42 53 46 48 53 46 48 53 46 48 51 49 42 47 44 42
++51 49 42 55 39 37 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++51 49 42 53 46 48 55 55 48 59 55 55 59 55 55 64 70 48 65 63 61 59 69 70
++75 72 67 75 64 82 75 72 67 75 81 76 75 81 76 88 69 84 88 83 74 88 83 88
++88 83 74 88 83 88 88 83 88 88 83 88 88 83 74 75 81 82 88 83 74 75 72 67
++88 66 70 75 72 67 75 72 67 75 59 67 75 72 67 65 63 61 65 63 61 65 63 61
++75 56 53 65 55 54 65 55 54 63 55 51 53 46 48 62 47 47 53 46 48 51 49 42
++55 39 37 47 44 42 60 49 42 53 46 48 60 49 42 53 46 48 62 47 47 53 46 48
++55 55 48 62 47 47 53 46 48 62 47 47 53 46 48 51 49 42 51 49 42 51 49 42
++60 49 42 53 46 48 60 49 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++55 39 37 47 39 42 55 39 37 47 44 42 47 44 42 47 44 42 47 44 42 51 49 42
++
++52 30 35 52 30 35 55 39 37 55 39 37 76 18 19 59 36 42 76 18 19 76 46 20
++76 18 19 76 46 20 88 30 18 102 33 26 102 33 26 88 44 51 102 33 26 102 33 26
++102 33 26 88 44 51 102 33 26 102 33 26 122 49 24 88 44 51 102 33 26 88 44 51
++102 33 26 102 33 26 88 30 18 102 33 26 102 33 26 88 44 51 102 33 26 122 49 24
++102 33 26 102 33 26 122 49 24 102 33 26 122 49 24 102 33 26 102 33 26 102 33 26
++122 49 24 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 76 18 19
++102 33 26 76 18 19 102 33 26 76 18 19 102 33 26 102 33 26 102 33 26 122 49 24
++102 33 26 122 49 24 122 49 24 102 33 26 122 49 24 122 49 24 122 49 24 122 49 24
++122 49 24 120 63 71 122 49 24 88 44 51 122 49 24 88 44 51 88 44 51 76 46 20
++88 44 51 59 36 42 55 39 18 55 39 37 53 35 37 53 35 37 52 30 35 36 35 37
++52 30 35 53 35 37 55 39 37 55 39 37 55 39 37 55 39 37 59 36 42 59 36 42
++60 49 42 62 47 47 60 49 42 76 44 53 63 55 45 76 44 53 63 55 45 63 55 45
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53
++75 56 53 63 55 45 76 44 53 63 55 45 62 47 47 62 47 47 62 47 47 53 46 48
++53 46 48 48 44 48 47 44 42 47 44 42 48 44 48 47 44 42 47 44 42 47 44 42
++53 46 48 53 46 48 53 46 48 55 55 48 55 55 48 53 46 48 55 55 48 53 46 48
++62 47 47 53 46 48 63 55 51 63 55 51 65 55 54 65 55 54 65 55 54 75 63 62
++75 56 53 75 63 62 75 63 62 75 56 53 88 73 62 75 56 53 88 73 62 75 56 53
++75 63 62 75 63 62 75 63 62 75 63 62 88 66 70 75 72 67 88 66 70 75 72 67
++88 66 70 88 66 70 88 83 74 88 83 74 88 66 70 88 83 74 88 69 84 88 83 74
++88 66 70 88 66 70 75 72 67 75 72 67 88 73 62 75 72 67 88 66 70 75 72 67
++88 73 62 75 72 67 88 73 62 88 66 70 88 73 62 88 66 70 88 73 62 75 63 62
++88 73 62 75 63 62 88 73 62 75 56 53 88 73 62 88 73 62 75 56 53 88 73 62
++75 56 53 75 73 58 75 56 53 75 56 53 75 56 53 75 56 53 63 55 51 75 56 53
++63 55 51 65 55 54 63 55 45 75 56 53 65 55 54 65 55 54 65 55 54 63 55 51
++63 55 51 75 56 53 63 55 45 65 55 54 65 55 54 65 55 54 75 56 53 75 56 53
++75 56 53 75 56 53 65 63 61 75 56 53 75 56 53 75 56 53 63 55 51 65 55 54
++63 55 51 62 47 47 60 49 42 62 47 47 62 47 47 62 47 47 63 55 51 63 55 51
++65 55 54 63 55 45 65 63 61 75 63 62 75 72 67 75 63 62 75 72 67 75 72 67
++75 72 67 75 72 67 88 83 74 88 66 70 88 83 74 88 83 74 101 83 74 88 83 88
++99 93 84 99 93 84 101 83 74 99 93 84 99 93 84 101 83 74 117 99 86 99 93 84
++99 93 84 101 83 74 101 83 74 88 83 88 101 83 74 88 83 88 101 83 74 101 83 74
++101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 88 83 88 117 99 86 99 93 84
++112 96 108 117 99 86 112 96 108 117 99 86 112 96 108 117 99 86 99 93 84 117 99 86
++99 93 84 101 83 74 112 96 108 101 83 74 99 93 84 99 93 84 101 83 74 88 83 88
++101 83 74 88 83 88 88 83 74 88 69 84 88 83 74 75 81 76 88 66 70 88 83 74
++75 72 67 88 83 74 75 72 67 88 66 70 75 72 67 75 63 62 75 63 62 65 63 61
++75 56 53 63 55 51 65 55 54 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51
++55 55 48 47 44 42 31 35 35 26 30 28 31 35 35 31 35 35 28 30 35 22 25 24
++26 24 32 30 30 34 26 30 28 30 30 34 36 35 37 36 35 37 36 35 37 33 30 32
++30 30 34 30 30 34 26 30 28 30 30 34 26 30 28 26 30 28 22 25 24 26 24 32
++26 30 28 26 24 32 30 30 34 30 30 34 30 30 34 33 30 30 26 24 32 26 30 28
++26 24 32 25 30 29 25 30 29 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24
++26 24 32 25 30 29 25 30 29 28 30 35 33 30 36 28 35 38 28 30 35 28 30 35
++28 30 35 31 35 35 28 30 35 25 30 29 22 23 31 22 23 31 25 30 29 28 30 35
++34 40 43 43 42 50 34 40 43 28 30 35 25 30 29 22 25 24 22 23 31 25 30 29
++31 35 35 31 35 35 26 30 28 17 12 17 7 12 13 43 42 50 112 123 108 188 180 202
++235 238 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 246 237 247 251 251 247 240 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 240 251 247 251 251 247 246 237 247 231 239 247 246 237 247
++246 237 247 232 215 228 195 113 123 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 161 55 23 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 195 113 123 167 63 71 195 113 123 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 120 63 71 102 33 26 120 63 71 120 63 71
++201 146 124 214 214 134 225 222 201 225 222 201 233 241 227 233 241 227 233 241 227 233 241 227
++235 238 247 246 237 247 240 251 247 235 238 247 235 238 247 221 238 247 226 221 247 201 216 228
++194 199 226 189 165 168 145 140 145 138 126 108 163 117 123 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 168 146 127
++197 171 123 168 146 127 201 146 124 177 171 115 168 146 127 146 150 115 168 102 88 146 150 115
++168 146 127 168 146 127 177 171 115 201 146 124 177 171 115 168 146 127 138 126 108 177 171 115
++168 102 88 146 150 115 146 150 115 138 126 108 168 146 127 146 150 115 168 102 88 146 150 115
++168 102 88 117 127 86 168 102 88 138 102 108 157 148 53 168 102 88 138 126 108 157 148 53
++117 127 86 168 102 88 117 127 86 168 102 88 138 126 108 168 102 88 117 114 76 168 102 88
++117 99 86 117 99 86 117 99 86 117 114 76 167 63 71 117 114 76 120 63 71 117 114 76
++117 114 76 168 102 88 157 148 53 168 102 88 168 102 88 177 171 115 168 102 88 146 150 115
++168 102 88 168 146 127 201 146 124 168 146 127 177 171 115 201 146 124 201 146 124 177 171 115
++168 102 88 168 146 127 201 146 124 168 146 127 197 171 123 197 171 123 168 146 127 201 146 124
++168 146 127 197 171 123 177 169 143 217 168 156 177 169 143 168 146 127 99 93 84 75 73 58
++75 63 62 75 72 67 75 72 67 65 63 61 65 63 61 65 63 61 65 63 61 59 55 55
++65 63 61 65 63 61 65 63 61 64 70 48 65 63 61 65 63 61 65 55 54 65 63 61
++63 55 51 55 55 48 59 55 55 55 55 48 55 55 48 55 55 48 53 46 48 48 50 48
++42 47 42 47 44 42 47 44 42 42 41 42 42 41 42 33 39 38 42 38 42 36 35 37
++33 39 38 36 35 37 33 39 38 33 39 38 33 39 38 33 39 38 42 41 42 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 47 47 21 36 35 37 36 35 37 36 35 37
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 47 44 42 47 44 42 47 49 42
++47 44 42 42 41 42 51 49 42 59 69 70 138 126 108 166 174 181 201 216 228 225 222 201
++201 216 228 185 202 202 166 174 181 166 180 164 166 180 164 166 180 164 225 222 201 201 216 228
++201 216 228 233 241 227 233 241 227 221 238 247 221 238 247 221 238 247 233 241 227 201 216 228
++221 238 247 201 216 228 233 241 227 221 238 247 233 241 227 185 202 202 166 180 164 166 174 181
++185 202 202 189 165 168 150 171 159 188 180 202 233 241 227 221 238 247 233 241 227 201 216 228
++208 221 247 233 241 227 231 239 247 233 241 227 240 251 247 240 251 247 251 251 247 240 251 247
++240 251 247 240 251 247 233 241 227 221 238 247 233 241 227 221 238 247 201 216 228 201 216 228
++166 174 181 166 174 181 148 160 159 148 160 159 166 156 164 146 162 145 166 156 164 150 171 159
++166 156 164 121 143 132 112 123 108 146 151 137 189 165 168 225 222 201 225 222 201 225 222 201
++185 202 202 233 241 227 221 238 247 233 241 227 201 216 228 185 202 202 119 117 138 75 81 90
++59 57 61 59 69 70 75 72 67 59 69 70 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 59 57 61 64 70 48 65 63 61 59 55 55
++64 70 48 65 63 61 63 55 51 65 63 61 59 55 55 59 55 55 63 55 51 55 55 48
++55 55 48 53 46 48 51 49 42 51 49 42 53 46 48 60 49 42 53 46 48 51 49 42
++47 44 42 47 44 42 47 44 42 47 44 42 53 35 37 47 39 42 42 41 42 47 39 42
++47 44 42 51 49 42 53 46 48 55 55 48 55 55 48 59 57 61 65 57 61 75 72 67
++63 59 71 75 72 67 75 81 76 75 81 76 75 64 82 75 81 76 75 72 67 75 81 76
++88 83 88 88 83 88 88 83 74 88 83 88 88 83 88 75 81 76 88 69 84 75 72 67
++75 81 76 75 72 67 75 72 67 75 72 67 65 63 61 75 63 62 65 63 61 65 63 61
++65 55 54 65 63 61 63 55 51 63 55 51 55 55 48 60 49 42 53 46 48 60 49 42
++47 44 42 60 49 42 53 46 48 62 47 47 60 49 42 62 47 47 62 47 47 62 47 47
++62 47 47 62 47 47 60 49 42 53 46 48 60 49 42 51 49 42 51 49 42 51 49 42
++53 46 48 51 49 42 47 44 42 47 44 42 47 44 42 47 44 42 55 39 37 47 39 42
++47 39 42 47 39 42 47 44 42 36 35 37 47 44 42 55 39 37 47 44 42 51 49 42
++
++52 30 35 55 39 18 59 36 42 76 18 19 59 36 42 76 18 19 59 36 42 88 30 18
++76 44 53 88 30 18 88 44 51 102 33 26 88 44 51 102 33 26 102 33 26 88 44 51
++102 33 26 102 33 26 88 44 51 102 33 26 88 44 51 102 33 26 102 33 26 102 33 26
++102 33 26 88 44 51 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 122 49 24 102 33 26 102 33 26
++102 33 26 88 44 51 102 33 26 102 33 26 102 33 26 102 33 26 76 18 19 102 33 26
++76 18 19 88 44 51 76 18 19 102 33 26 76 18 19 102 33 26 102 33 26 102 33 26
++122 49 24 122 49 24 122 49 24 167 63 71 102 33 26 120 63 71 122 49 24 120 63 71
++122 49 24 122 49 24 120 63 71 120 63 71 122 49 24 88 44 51 88 44 51 88 44 51
++76 46 20 59 36 42 76 18 19 53 35 37 52 30 35 52 30 35 52 30 35 52 30 35
++52 30 35 53 35 37 47 47 21 53 35 37 55 39 37 55 39 37 60 49 42 60 49 42
++60 49 42 60 49 42 63 55 45 62 47 47 76 44 53 63 55 45 75 56 53 76 46 20
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 73 58 75 56 53 75 56 53
++75 56 53 63 55 45 60 49 42 60 49 42 62 47 47 62 47 47 53 46 48 53 46 48
++53 46 48 48 44 48 47 44 42 47 44 42 47 44 42 48 44 48 47 44 42 48 44 48
++48 44 48 53 46 48 53 46 48 53 46 48 53 46 48 55 55 48 51 49 42 53 46 48
++55 55 48 62 47 47 63 55 51 63 55 51 65 55 54 65 63 61 75 56 53 75 56 53
++75 63 62 75 63 62 75 56 53 88 73 62 75 63 62 75 63 62 88 73 62 75 56 53
++75 73 58 75 56 53 88 73 62 75 63 62 75 63 62 75 63 62 88 73 62 75 72 67
++75 72 67 88 73 62 88 66 70 75 72 67 88 66 70 88 83 74 88 73 62 75 72 67
++75 72 67 75 72 67 88 73 62 75 72 67 75 63 62 75 72 67 88 73 62 75 63 62
++88 73 62 88 73 62 88 66 70 88 73 62 88 73 62 75 63 62 88 73 62 75 63 62
++88 73 62 88 73 62 88 73 62 75 63 62 88 73 62 75 56 53 75 73 58 75 56 53
++75 56 53 75 56 53 75 63 62 64 70 48 65 55 54 64 70 48 63 55 51 65 55 54
++65 55 54 75 56 53 65 55 54 64 70 48 65 55 54 65 55 54 65 55 54 65 55 54
++65 55 54 63 55 51 63 55 51 75 56 53 75 56 53 75 56 53 65 55 54 75 63 62
++65 55 54 75 56 53 75 56 53 75 56 53 65 55 54 63 55 51 63 55 51 63 55 51
++65 55 54 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51
++65 55 54 65 55 54 75 73 58 75 63 62 75 63 62 75 72 67 75 63 62 75 63 62
++75 72 67 75 72 67 75 72 67 88 83 74 88 83 74 88 83 74 99 93 84 99 93 84
++99 93 84 88 83 88 99 93 84 99 93 84 99 93 84 95 91 100 101 83 74 99 93 84
++101 83 74 95 91 100 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 88 69 84
++101 83 74 99 93 84 101 83 74 117 99 86 101 83 74 112 96 108 117 99 86 117 99 86
++99 93 84 117 99 86 112 96 108 117 99 86 117 99 86 95 91 100 117 99 86 88 83 88
++99 93 84 101 83 74 101 83 74 95 91 100 101 83 74 88 83 88 101 83 74 101 83 74
++101 83 74 88 69 84 88 83 74 88 73 62 88 83 74 88 66 70 88 83 74 88 69 84
++88 66 70 75 72 67 88 66 70 75 72 67 75 63 62 75 63 62 75 63 62 65 55 54
++65 55 54 65 55 54 75 56 53 63 55 51 63 55 51 59 55 55 65 63 61 52 55 48
++42 47 42 31 35 35 32 39 24 28 30 35 23 30 35 22 23 31 22 23 31 22 23 31
++25 30 29 30 30 34 30 30 34 30 30 34 31 35 35 36 35 37 31 35 35 31 35 35
++30 30 34 26 30 28 30 30 34 26 30 28 26 24 32 30 30 34 26 24 32 26 30 28
++30 30 34 26 30 28 26 30 28 30 30 34 26 30 28 33 30 32 30 30 34 30 30 34
++26 30 28 26 24 32 26 30 28 26 24 32 22 25 24 22 25 24 22 25 24 28 30 35
++30 30 34 30 30 34 22 23 31 22 25 24 22 25 24 12 18 30 23 20 24 22 25 24
++22 23 31 28 30 35 28 35 38 28 30 35 28 30 35 28 30 35 25 30 29 22 25 24
++12 18 20 25 30 29 34 40 43 34 40 43 28 30 35 22 23 31 22 25 24 22 23 31
++22 23 31 22 25 24 42 41 42 43 42 50 26 30 28 7 12 13 22 25 24 75 81 76
++166 156 164 231 239 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++240 251 247 231 239 247 221 238 247 231 239 247 231 239 247 233 241 227 232 215 228 233 241 227
++246 237 247 222 171 182 168 102 88 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 195 113 123 163 117 123 138 102 108 138 102 108 138 102 108 138 102 108 163 117 123
++189 165 168 233 241 227 251 251 247 251 251 247 251 251 247 233 241 227 240 251 247 235 238 247
++231 239 247 240 251 247 231 239 247 231 239 247 221 238 247 208 221 247 208 221 247 232 215 228
++166 174 181 168 146 127 138 126 108 163 117 123 168 146 127 168 146 127 168 146 127 201 146 124
++168 146 127 168 146 127 201 146 124 177 171 115 168 146 127 168 146 127 177 171 115 201 146 124
++168 146 127 168 146 127 168 146 127 168 146 127 163 117 123 168 146 127 146 150 115 168 146 127
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 102 88 168 146 127 138 126 108
++146 150 115 168 102 88 157 148 53 168 146 127 168 102 88 177 171 115 138 126 108 157 148 53
++163 117 123 157 148 53 138 126 108 117 114 76 168 102 88 117 127 86 168 102 88 168 102 88
++138 126 108 168 102 88 117 114 76 157 148 53 117 114 76 168 102 88 117 127 86 168 102 88
++117 114 76 168 102 88 117 112 45 117 99 86 117 114 76 120 63 71 117 112 45 168 102 88
++117 112 45 117 99 86 168 102 88 117 127 86 168 102 88 146 150 115 157 148 53 201 146 124
++168 102 88 177 171 115 168 146 127 201 146 124 168 146 127 197 171 123 168 146 127 201 146 124
++168 146 127 146 150 115 168 146 127 177 171 115 201 146 124 197 171 123 201 146 124 168 146 127
++201 146 124 201 146 124 197 171 123 217 168 156 189 165 168 177 169 143 117 99 86 88 73 62
++75 73 58 75 63 62 75 72 67 65 63 61 65 63 61 53 63 61 64 70 48 59 57 61
++64 70 48 59 55 55 59 55 55 59 55 55 63 55 51 59 55 55 65 63 61 63 55 51
++59 55 55 59 55 55 55 55 48 55 55 48 52 55 48 53 46 48 48 50 48 48 50 48
++47 44 42 47 44 42 43 42 50 42 41 42 34 40 43 42 38 42 34 40 43 37 35 43
++42 41 42 33 39 38 33 39 38 36 35 37 33 39 38 36 35 37 33 39 38 36 35 37
++33 39 38 36 35 37 42 41 42 36 35 37 36 35 37 42 41 42 42 41 42 36 35 37
++42 38 42 36 35 37 42 38 42 42 41 42 43 42 50 42 41 42 42 41 42 42 47 42
++42 41 42 36 35 37 55 55 48 90 98 89 150 144 154 185 202 202 208 215 180 185 202 202
++166 174 181 166 180 164 150 171 159 148 160 159 166 174 181 201 216 228 225 222 201 233 241 227
++233 241 227 221 238 247 232 215 228 233 241 227 201 216 228 233 241 227 221 238 247 233 241 227
++221 238 247 233 241 227 221 238 247 221 238 247 233 241 227 185 202 202 166 174 181 166 174 181
++148 160 159 150 171 159 166 174 181 185 202 202 233 241 227 208 221 247 225 222 201 201 216 228
++233 241 227 231 239 247 233 241 227 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 240 251 247 221 238 247 221 238 247 233 241 227 201 216 228
++185 202 202 166 174 181 166 180 164 166 156 164 166 180 164 189 165 168 189 165 168 177 169 143
++177 169 143 145 140 145 168 146 127 166 180 164 208 215 180 188 180 202 189 165 168 188 180 202
++189 165 168 225 222 201 221 238 247 231 239 247 231 239 247 185 202 202 129 144 153 77 90 100
++53 63 61 59 69 70 63 59 71 65 63 61 65 63 61 59 57 61 65 63 61 59 57 61
++65 63 61 59 57 61 59 55 55 65 63 61 63 55 51 59 55 55 65 55 54 65 63 61
++65 55 54 59 55 55 65 63 61 63 55 51 63 55 51 59 55 55 59 55 55 55 55 48
++53 46 48 55 55 48 51 49 42 53 46 48 60 49 42 51 49 42 55 39 37 47 44 42
++51 49 42 47 44 42 47 44 42 53 35 37 33 39 38 47 47 21 36 35 37 47 39 42
++47 39 42 47 44 42 48 44 48 48 50 48 55 55 48 59 55 55 65 63 61 65 63 61
++75 72 67 75 72 67 75 64 82 88 66 70 75 81 76 88 66 70 75 81 76 88 69 84
++75 81 76 88 83 74 88 83 88 75 81 82 88 83 74 88 69 84 75 81 69 75 72 67
++75 72 67 75 72 67 75 72 67 75 63 62 65 63 61 65 63 61 65 63 61 65 55 54
++65 55 54 65 63 61 65 55 54 63 55 51 62 47 47 53 46 48 60 49 42 51 49 42
++53 46 48 60 49 42 53 46 48 60 49 42 62 47 47 62 47 47 62 47 47 62 47 47
++62 47 47 62 47 47 53 46 48 60 49 42 53 46 48 60 49 42 55 39 37 47 44 42
++47 44 42 47 44 42 55 39 37 47 44 42 47 39 42 47 39 42 36 35 37 47 47 21
++36 35 37 47 47 21 42 38 42 53 35 37 42 41 42 47 44 42 47 44 42 47 44 42
++
++76 18 19 52 30 35 55 39 37 59 36 42 55 39 18 76 44 53 76 18 19 76 46 20
++76 18 19 102 33 26 88 30 18 102 33 26 102 33 26 102 33 26 88 44 51 102 33 26
++88 44 51 102 33 26 102 33 26 102 33 26 102 33 26 88 44 51 102 33 26 88 44 51
++102 33 26 76 18 19 102 33 26 88 30 18 88 44 51 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 122 49 24 88 44 51 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 76 18 19 102 33 26 76 18 19 102 33 26
++76 18 19 76 18 19 76 18 19 76 18 19 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 122 49 24 102 33 26 102 33 26 122 49 24 122 49 24 122 49 24 161 55 23
++120 63 71 167 63 71 122 49 24 120 63 71 120 63 71 120 63 71 88 44 51 76 46 20
++88 44 51 59 36 42 55 39 37 55 39 37 52 30 35 52 30 35 52 30 35 53 35 17
++52 30 35 52 30 35 53 35 37 55 39 37 55 39 37 55 39 37 55 39 37 60 49 42
++60 49 42 62 47 47 63 55 45 76 44 53 63 55 45 75 56 53 63 55 45 75 56 53
++75 56 53 75 56 53 75 56 53 75 56 53 88 73 62 75 56 53 75 73 58 75 56 53
++75 56 53 75 56 53 63 55 45 62 47 47 62 47 47 60 49 42 53 46 48 53 46 48
++48 44 48 47 44 42 47 44 42 47 39 42 47 44 42 47 39 42 47 44 42 47 44 42
++47 44 42 48 44 48 51 49 42 52 55 48 53 46 48 53 46 48 53 46 48 53 46 48
++62 47 47 55 55 48 63 55 51 63 55 51 65 55 54 65 55 54 75 56 53 75 63 62
++75 56 53 88 73 62 75 63 62 75 63 62 75 56 53 88 73 62 75 56 53 75 63 62
++75 63 62 75 63 62 75 56 53 75 56 53 75 63 62 75 63 62 75 63 62 75 63 62
++75 63 62 75 63 62 75 72 67 88 73 62 75 72 67 75 63 62 75 63 62 75 63 62
++75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62
++75 63 62 75 63 62 75 73 58 75 63 62 88 73 62 88 73 62 75 63 62 88 73 62
++75 63 62 88 73 62 75 56 53 88 73 62 75 56 53 75 73 58 75 56 53 75 56 53
++75 73 58 75 56 53 75 56 53 75 56 53 75 56 53 63 55 51 75 56 53 63 55 51
++65 55 54 63 55 51 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54
++63 55 51 63 55 51 63 55 51 65 55 54 75 56 53 65 55 54 75 56 53 75 56 53
++75 56 53 65 63 61 75 56 53 65 55 54 75 56 53 65 55 54 63 55 51 63 55 51
++65 55 54 62 47 47 63 55 51 62 47 47 63 55 51 62 47 47 63 55 51 63 55 51
++63 55 51 63 55 51 65 63 61 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62
++75 72 67 88 73 62 75 72 67 88 83 74 88 69 84 88 83 74 88 83 88 99 93 84
++88 83 88 99 93 84 99 93 84 99 93 84 101 83 74 99 93 84 99 93 84 99 93 84
++88 83 88 101 83 74 101 83 74 99 93 84 88 83 88 101 83 74 88 83 88 101 83 74
++101 83 74 101 83 74 101 83 74 99 93 84 120 63 71 117 99 86 101 83 74 99 93 84
++117 99 86 112 96 108 117 99 86 117 99 86 112 96 108 101 83 74 95 91 100 101 83 74
++101 83 74 99 93 84 101 83 74 88 69 84 101 83 74 88 83 88 101 83 74 88 69 84
++101 83 74 88 83 74 88 83 74 88 66 70 88 83 74 88 83 74 88 66 70 88 83 74
++75 81 76 88 66 70 75 72 67 75 72 67 75 63 62 75 63 62 75 63 62 65 63 61
++75 56 53 65 55 54 65 55 54 63 55 51 65 63 61 63 55 51 51 49 42 42 41 42
++33 30 30 26 30 28 25 30 29 22 25 24 22 25 24 22 23 31 25 30 29 28 30 35
++31 35 35 30 30 34 26 30 28 30 30 34 30 30 34 30 30 34 31 35 35 31 35 35
++30 30 34 26 30 28 30 30 34 26 30 28 30 30 34 25 30 29 26 30 28 30 30 34
++26 30 28 30 30 34 26 24 32 26 30 28 30 30 34 30 30 34 30 30 34 26 30 28
++26 24 32 26 30 28 30 30 34 26 30 28 22 23 31 23 20 24 25 30 29 30 30 34
++36 35 37 31 35 35 30 30 34 23 30 35 22 23 31 25 30 29 23 30 35 28 30 35
++33 39 38 34 40 43 42 41 42 35 47 50 42 47 42 43 42 50 43 42 50 34 40 43
++22 23 31 22 23 31 28 30 35 33 39 38 25 30 29 23 30 35 31 35 35 28 35 38
++22 25 24 23 20 24 31 35 35 47 44 42 42 41 42 26 24 32 14 16 17 3 4 9
++53 63 61 150 144 154 231 239 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 240 251 247 240 251 247 231 239 247
++233 241 227 201 216 228 201 216 228 232 215 228 233 241 227 226 221 247 231 239 247 246 237 247
++246 237 247 222 171 182 120 63 71 167 63 71 167 63 71 161 55 23 167 63 71 167 63 71
++161 55 23 167 63 71 167 63 71 161 55 23 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 176 103 41 195 113 123 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++195 113 123 222 171 182 222 171 182 222 171 182 222 171 182 222 171 182 222 171 182 232 215 228
++232 215 228 233 241 227 251 251 247 233 241 227 231 239 247 233 241 227 231 239 247 235 238 247
++240 251 247 240 251 247 240 251 247 221 238 247 226 221 247 201 216 228 201 216 228 194 199 226
++166 180 164 141 116 139 138 126 108 168 146 127 146 150 115 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 197 171 123 168 146 127 201 146 124 168 146 127 168 146 127
++177 169 143 201 146 124 168 146 127 177 171 115 168 102 88 146 150 115 168 102 88 146 150 115
++168 102 88 177 171 115 168 102 88 168 146 127 168 146 127 177 171 115 138 126 108 163 117 123
++157 148 53 138 126 108 168 146 127 163 117 123 146 150 115 168 146 127 168 102 88 146 150 115
++168 102 88 138 126 108 168 102 88 168 102 88 138 126 108 168 102 88 138 126 108 157 148 53
++117 114 76 168 102 88 117 114 76 168 102 88 117 127 86 168 102 88 157 148 53 138 126 108
++168 102 88 138 126 108 168 102 88 117 112 45 168 102 88 117 114 76 167 63 71 117 112 45
++117 99 86 168 102 88 117 114 76 138 102 108 157 148 53 168 102 88 168 102 88 146 150 115
++168 102 88 177 171 115 168 102 88 177 171 115 168 146 127 201 146 124 197 171 123 197 171 123
++168 102 88 177 171 115 168 102 88 168 146 127 168 146 127 201 146 124 177 171 115 201 146 124
++168 146 127 197 171 123 189 165 168 197 171 123 217 168 156 189 165 168 146 150 115 99 93 84
++75 73 58 65 63 61 65 63 61 65 63 61 59 55 55 50 61 48 59 55 55 59 55 55
++53 63 61 59 55 55 64 70 48 59 55 55 50 61 48 59 55 55 63 55 51 59 55 55
++63 55 51 59 55 55 55 55 48 59 55 55 55 55 48 55 55 48 48 50 48 48 50 48
++47 44 42 42 47 42 42 47 42 42 41 42 42 41 42 42 38 42 42 41 42 36 35 37
++34 40 43 34 40 43 33 39 38 33 39 38 33 39 38 33 39 38 33 39 38 36 35 37
++47 47 21 36 35 37 33 39 38 36 35 37 36 35 37 36 35 37 36 35 37 42 41 42
++36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 42 38 42 42 41 42 42 41 42
++36 35 37 42 41 42 75 72 67 111 119 127 177 169 143 166 174 181 166 174 181 166 180 164
++146 162 145 150 144 154 148 160 159 166 180 164 185 202 202 225 222 201 201 216 228 233 241 227
++221 238 247 233 241 227 240 251 247 221 238 247 233 241 227 201 216 228 233 241 227 221 238 247
++233 241 227 221 238 247 240 251 247 240 251 247 240 251 247 233 241 227 166 174 181 150 171 159
++148 160 159 166 156 164 166 180 164 201 216 228 221 238 247 233 241 227 208 221 247 233 241 227
++235 238 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 240 251 247 231 239 247 221 238 247 201 216 228 221 238 247
++201 216 228 185 202 202 166 174 181 166 180 164 166 180 164 189 165 168 208 215 180 189 165 168
++189 165 168 189 165 168 189 165 168 185 202 202 222 171 182 208 215 180 208 215 180 208 215 180
++166 180 164 185 202 202 201 216 228 231 239 247 231 239 247 201 216 228 166 174 181 95 108 128
++59 69 70 63 59 71 59 69 70 65 63 61 65 63 61 59 57 61 65 63 61 59 57 61
++53 63 61 65 63 61 59 55 55 65 63 61 63 55 51 65 63 61 63 55 51 65 63 61
++65 55 54 65 63 61 59 55 55 64 70 48 65 63 61 63 55 51 59 55 55 63 55 51
++55 55 48 55 55 48 55 55 48 53 46 48 51 49 42 53 46 48 51 49 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 39 42 42 38 42 47 47 21 36 35 37
++42 41 42 47 39 42 47 44 42 51 49 42 48 50 48 59 55 55 65 63 61 63 59 71
++75 59 67 75 72 67 75 81 76 75 81 76 75 64 82 75 81 76 75 72 67 75 81 76
++88 69 84 75 81 82 88 83 74 88 69 84 75 81 82 88 83 74 75 81 76 88 83 74
++75 72 67 75 72 67 75 72 67 65 63 61 75 63 62 65 55 54 65 63 61 65 55 54
++65 55 54 65 55 54 65 55 54 63 55 51 55 55 48 62 47 47 60 49 42 53 46 48
++51 49 42 53 46 48 60 49 42 62 47 47 62 47 47 62 47 47 62 47 47 62 47 47
++62 47 47 62 47 47 60 49 42 53 46 48 55 39 37 53 46 48 51 49 42 55 39 37
++47 44 42 47 44 42 47 44 42 47 39 42 36 35 37 47 47 21 36 35 37 47 39 42
++36 35 37 36 35 37 36 35 37 47 47 21 36 35 37 55 39 37 47 44 42 47 44 42
++
++53 35 37 59 36 42 76 18 19 76 46 20 76 18 19 59 36 42 88 30 18 88 30 18
++88 44 51 88 30 18 88 44 51 102 33 26 88 44 51 102 33 26 102 33 26 102 33 26
++102 33 26 120 63 71 102 33 26 88 44 51 102 33 26 102 33 26 102 33 26 102 33 26
++76 18 19 88 44 51 102 33 26 76 18 19 102 33 26 88 30 18 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 88 44 51 102 33 26
++102 33 26 102 33 26 102 33 26 76 18 19 102 33 26 76 18 19 76 18 19 76 18 19
++76 18 19 102 33 26 76 18 19 76 18 19 76 18 19 102 33 26 102 33 26 102 33 26
++102 33 26 161 55 23 102 33 26 161 55 23 102 33 26 167 63 71 122 49 24 120 63 71
++122 49 24 120 63 71 120 63 71 167 63 71 101 74 26 120 63 71 88 44 51 88 44 51
++88 44 51 76 18 19 59 36 42 53 35 37 52 30 35 52 30 35 52 30 35 36 35 37
++52 30 35 53 35 17 53 35 37 53 35 37 55 39 37 60 49 42 55 39 37 60 49 42
++60 49 42 76 44 53 60 49 42 63 55 45 63 55 45 76 44 53 75 56 53 75 56 53
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 88 73 62 75 56 53 75 56 53
++75 56 53 75 56 53 63 55 45 63 55 45 62 47 47 62 47 47 53 46 48 55 39 37
++47 39 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 47 44 42 47 44 42
++48 44 48 48 44 48 47 44 42 48 44 48 51 49 42 51 49 42 51 49 42 55 55 48
++53 46 48 59 55 55 62 47 47 63 55 51 65 55 54 65 63 61 75 56 53 75 63 62
++75 63 62 75 56 53 75 63 62 88 73 62 75 56 53 75 63 62 75 63 62 88 73 62
++75 56 53 75 56 53 75 56 53 75 63 62 75 56 53 75 56 53 75 63 62 75 56 53
++75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62
++75 56 53 75 56 53 65 55 54 75 56 53 75 56 53 75 56 53 75 56 53 75 63 62
++75 56 53 88 73 62 75 63 62 88 73 62 75 63 62 88 73 62 75 63 62 88 73 62
++75 63 62 88 73 62 75 63 62 75 63 62 75 56 53 88 73 62 75 56 53 75 56 53
++75 56 53 64 70 48 75 56 53 63 55 45 65 55 54 63 55 45 63 55 51 63 55 45
++75 56 53 63 55 51 63 55 51 75 56 53 63 55 51 65 55 54 65 55 54 65 55 54
++63 55 51 63 55 51 63 55 51 75 56 53 65 63 61 75 56 53 65 63 61 75 56 53
++65 55 54 75 56 53 65 55 54 75 56 53 65 55 54 63 55 51 63 55 45 63 55 51
++63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51
++63 55 51 65 55 54 65 63 61 75 73 58 65 63 61 75 63 62 65 63 61 75 73 58
++75 72 67 75 72 67 75 72 67 88 83 74 75 81 76 88 83 74 101 83 74 88 83 88
++99 93 84 99 93 84 99 93 84 99 93 84 99 93 84 99 93 84 99 93 84 101 83 74
++99 93 84 99 93 84 88 83 88 101 83 74 101 83 74 88 83 88 101 83 74 101 83 74
++88 69 84 101 83 74 101 83 74 101 83 74 95 91 100 101 83 74 112 96 108 101 83 74
++117 99 86 101 83 74 95 91 100 101 83 74 101 83 74 99 93 84 101 83 74 101 83 74
++88 83 88 101 83 74 99 93 84 101 83 74 88 69 84 101 83 74 88 69 84 101 83 74
++88 66 70 88 83 74 88 66 70 88 83 74 88 66 70 88 83 74 75 81 76 88 66 70
++75 72 67 75 72 67 88 66 70 75 63 62 75 63 62 75 63 62 65 55 54 65 63 61
++65 55 54 65 55 54 65 55 54 65 55 54 65 63 61 55 55 48 42 47 42 36 35 37
++26 30 28 25 30 29 22 25 24 22 23 31 22 25 24 23 30 35 34 40 43 34 40 43
++33 39 38 25 30 29 25 30 29 26 24 32 30 30 34 26 30 28 30 30 34 30 30 34
++30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34
++30 30 34 26 30 28 30 30 34 26 30 28 33 30 32 30 30 34 31 35 35 30 30 34
++30 30 34 30 30 34 30 30 34 26 30 28 22 25 24 22 25 24 26 24 32 31 35 35
++36 35 37 36 35 37 36 35 37 33 39 38 34 40 43 34 40 43 34 40 43 43 42 50
++43 42 50 48 50 48 48 50 48 48 50 48 45 57 61 54 57 61 54 57 61 48 50 48
++33 39 38 28 30 35 25 30 29 22 23 31 22 25 24 23 30 35 34 40 43 34 40 43
++28 30 35 22 23 31 25 30 29 31 35 35 33 39 38 35 46 43 31 35 35 7 12 13
++7 12 13 54 57 61 150 144 154 233 241 227 251 251 247 251 251 247 240 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 235 238 247 231 239 247 232 215 228
++201 216 228 201 216 228 233 241 227 221 238 247 235 238 247 246 237 247 251 251 247 246 237 247
++232 215 228 163 117 123 120 63 71 167 63 71 167 63 71 167 63 71 161 55 23 161 55 23
++161 55 23 161 55 23 161 55 23 167 63 71 161 55 23 161 55 23 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 161 55 23 167 63 71 195 113 123 217 168 156
++222 171 182 232 215 228 226 221 247 246 237 247 246 237 247 251 251 247 251 251 247 251 251 247
++246 237 247 251 251 247 246 237 247 231 239 247 233 241 227 231 239 247 231 239 247 240 251 247
++240 251 247 235 238 247 240 251 247 208 221 247 201 216 228 226 221 247 232 215 228 188 180 202
++166 156 164 138 126 108 168 146 127 163 117 123 168 146 127 168 146 127 168 146 127 168 146 127
++157 148 53 168 146 127 201 146 124 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 102 88 146 150 115
++163 117 123 146 150 115 168 146 127 168 102 88 146 150 115 168 102 88 146 150 115 168 102 88
++138 126 108 168 102 88 146 150 115 168 102 88 157 148 53 168 102 88 146 150 115 168 102 88
++138 126 108 157 148 53 138 102 108 117 114 76 157 148 53 138 126 108 168 102 88 138 126 108
++168 102 88 117 127 86 168 102 88 117 114 76 168 102 88 117 127 86 168 102 88 138 126 108
++157 148 53 168 102 88 117 114 76 168 102 88 117 99 86 117 99 86 117 114 76 117 99 86
++167 63 71 117 112 45 117 114 76 168 102 88 117 114 76 168 102 88 146 150 115 157 148 53
++168 146 127 168 146 127 168 102 88 177 171 115 168 102 88 197 171 123 168 146 127 201 146 124
++177 171 115 201 146 124 177 171 115 201 146 124 168 146 127 168 146 127 201 146 124 177 169 143
++197 171 123 177 169 143 177 169 143 217 168 156 189 165 168 208 215 180 177 169 143 138 126 108
++75 72 67 75 63 62 59 55 55 59 55 55 59 55 55 59 55 55 64 70 48 59 55 55
++59 55 55 50 61 48 59 55 55 55 55 48 59 55 55 59 55 55 50 61 48 59 55 55
++50 61 48 59 55 55 55 55 48 52 55 48 48 50 48 48 50 48 48 50 48 47 49 42
++42 47 42 48 50 48 42 41 42 42 41 42 34 40 43 34 40 43 34 40 43 34 40 43
++42 38 42 34 40 43 37 35 43 36 35 37 36 35 37 36 35 37 36 35 37 33 39 38
++36 35 37 33 39 38 36 35 37 33 39 38 36 35 37 42 38 42 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 51 49 42 88 83 74 138 126 108 145 140 145 146 151 137 146 151 137 150 144 154
++148 160 159 148 160 159 150 171 159 166 174 181 201 216 228 233 241 227 201 216 228 233 241 227
++240 251 247 240 251 247 240 251 247 231 239 247 231 239 247 233 241 227 221 238 247 221 238 247
++233 241 227 221 238 247 240 251 247 240 251 247 240 251 247 208 221 247 185 202 202 166 174 181
++148 160 159 166 180 164 185 202 202 201 216 228 233 241 227 221 238 247 233 241 227 221 238 247
++231 239 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 240 251 247 240 251 247 221 238 247 233 241 227 221 238 247 201 216 228
++201 216 228 185 202 202 166 174 181 166 156 164 166 156 164 166 180 164 189 165 168 189 165 168
++208 215 180 189 165 168 208 215 180 208 215 180 208 215 180 185 202 202 208 215 180 188 180 202
++208 215 180 188 180 202 208 215 180 221 238 247 233 241 227 201 216 228 185 202 202 121 143 132
++75 81 76 54 57 61 53 63 61 59 57 61 59 69 70 59 57 61 53 63 61 59 57 61
++59 57 61 63 55 51 64 70 48 59 55 55 65 63 61 63 55 51 65 63 61 63 55 51
++65 55 54 65 55 54 65 63 61 65 55 54 65 55 54 63 55 51 63 55 51 59 55 55
++63 55 51 53 46 48 60 49 42 51 49 42 60 49 42 55 39 37 51 49 42 47 44 42
++47 44 42 55 39 37 42 41 42 47 47 21 42 38 42 36 35 37 36 35 37 53 35 37
++36 35 37 47 39 42 47 44 42 48 44 48 48 50 48 55 55 48 59 55 55 65 63 61
++65 63 61 75 72 67 75 64 82 75 72 67 75 72 67 75 81 76 75 64 82 88 83 74
++75 81 76 75 81 76 88 69 84 75 81 76 88 83 74 88 69 84 75 81 76 75 72 67
++75 72 67 75 72 67 75 59 67 65 63 61 65 63 61 65 63 61 65 55 54 65 55 54
++65 55 54 63 55 51 63 55 51 63 55 51 55 55 48 62 47 47 53 46 48 60 49 42
++53 46 48 60 49 42 53 46 48 60 49 42 62 47 47 62 47 47 62 47 47 62 47 47
++62 47 47 60 49 42 53 46 48 60 49 42 55 39 37 51 49 42 55 39 37 51 49 42
++47 44 42 47 39 42 47 39 42 47 47 21 42 38 42 36 35 37 52 30 35 36 35 37
++33 30 30 52 30 35 33 30 30 36 35 37 53 35 37 42 41 42 55 39 37 47 44 42
++
++52 30 35 76 46 20 55 39 37 59 36 42 59 36 42 88 30 18 76 18 19 88 44 51
++76 18 19 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 88 44 51
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 88 44 51 102 33 26 88 44 51
++102 33 26 76 18 19 102 33 26 88 44 51 88 30 18 102 33 26 102 33 26 88 30 18
++88 44 51 102 33 26 102 33 26 102 33 26 88 44 51 102 33 26 102 33 26 102 33 26
++88 44 51 102 33 26 88 44 51 76 18 19 102 33 26 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 120 63 71 122 49 24 120 63 71 161 55 23 120 63 71
++167 63 71 120 63 71 167 63 71 120 63 71 120 63 71 120 63 71 120 63 71 88 44 51
++88 44 51 76 44 53 59 36 42 52 30 35 53 35 37 53 35 17 52 30 35 52 30 35
++33 30 30 52 30 35 36 35 37 55 39 37 55 39 37 55 39 37 55 39 37 59 36 42
++60 49 42 60 49 42 63 55 45 76 46 20 75 56 53 63 55 45 75 56 53 75 73 36
++75 56 53 75 56 53 88 73 62 75 56 53 88 73 62 75 56 53 75 56 53 75 63 62
++75 56 53 75 56 53 75 56 53 63 55 51 62 47 47 60 49 42 53 46 48 53 46 48
++48 44 48 47 39 42 42 41 42 42 38 42 42 41 42 42 41 42 47 44 42 48 44 48
++48 44 48 48 44 48 53 46 48 51 49 42 53 46 48 53 46 48 53 46 48 51 49 42
++53 46 48 59 55 55 59 55 55 63 55 51 63 55 51 65 55 54 75 56 53 75 63 62
++75 56 53 88 73 62 75 56 53 75 63 62 75 63 62 88 73 62 75 56 53 75 63 62
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 65 63 61
++75 56 53 75 63 62 75 63 62 75 63 62 75 56 53 75 56 53 65 55 54 75 56 53
++65 63 61 75 56 53 65 63 61 65 55 54 65 55 54 64 70 48 75 56 53 75 56 53
++75 56 53 75 56 53 88 73 62 75 56 53 88 73 62 75 63 62 75 56 53 88 73 62
++75 63 62 75 63 62 75 56 53 75 73 58 75 56 53 75 56 53 75 56 53 64 70 48
++75 56 53 75 56 53 63 55 45 75 56 53 65 55 54 63 55 45 75 56 53 62 47 47
++63 55 51 63 55 45 63 55 51 63 55 45 63 55 45 63 55 51 63 55 51 65 55 54
++63 55 51 63 55 51 65 55 54 65 55 54 75 63 62 75 56 53 75 63 62 65 55 54
++65 55 54 75 56 53 65 63 61 65 55 54 65 55 54 64 70 48 63 55 51 63 55 51
++63 55 51 63 55 51 63 55 51 62 47 47 63 55 51 63 55 51 59 55 55 59 55 55
++59 55 55 65 63 61 65 63 61 65 63 61 75 63 62 75 72 67 65 63 61 75 63 62
++75 72 67 75 72 67 75 81 76 75 72 67 88 83 74 88 83 88 88 83 88 99 93 84
++88 83 88 99 93 84 99 93 84 99 93 84 95 91 100 99 93 84 99 93 84 99 93 84
++88 83 88 99 93 84 101 83 74 88 83 88 99 93 84 101 83 74 88 83 74 101 83 74
++101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74
++99 93 84 95 91 100 120 63 71 112 96 108 101 83 74 99 93 84 101 83 74 99 93 84
++101 83 74 101 83 74 88 69 84 101 83 74 101 83 74 88 69 84 101 83 74 88 83 74
++88 69 84 88 83 74 75 72 67 88 83 74 88 83 74 88 83 74 88 66 70 88 83 74
++88 66 70 75 72 67 75 72 67 75 72 67 75 63 62 75 63 62 75 63 62 65 55 54
++65 55 54 65 55 54 65 55 54 59 55 55 59 55 55 48 50 48 37 35 43 31 35 35
++23 30 35 22 23 31 22 23 31 25 30 29 23 30 35 34 40 43 48 50 48 34 40 43
++28 35 38 25 30 29 23 30 35 25 30 29 30 30 34 30 30 34 26 30 28 30 30 34
++30 30 34 31 35 35 30 30 34 31 35 35 33 30 32 30 30 34 30 30 34 30 30 34
++30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 31 35 35 31 35 35 33 30 32
++30 30 34 30 30 34 26 30 28 26 24 32 23 20 24 22 25 24 26 30 28 37 35 43
++42 41 42 34 40 43 42 41 42 42 41 42 48 44 48 42 47 42 43 42 50 35 47 50
++48 50 48 45 57 61 48 50 48 45 57 61 48 50 48 54 57 61 54 57 61 45 57 61
++43 42 50 34 40 43 23 30 35 22 25 24 12 18 30 28 30 35 43 42 50 43 55 48
++43 42 50 31 35 35 23 30 35 22 23 31 25 30 29 33 39 38 42 41 42 34 40 43
++7 10 17 7 12 13 54 57 61 150 144 154 231 239 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 235 238 247 235 238 247 221 238 247 226 221 247
++221 238 247 226 221 247 235 238 247 235 238 247 235 238 247 231 239 247 221 238 247 221 238 247
++232 215 228 233 241 227 235 238 247 235 238 247 251 251 247 251 251 247 251 251 247 246 237 247
++222 171 182 120 63 71 102 33 26 102 33 26 122 49 24 102 33 26 161 55 23 102 33 26
++161 55 23 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++161 55 23 167 63 71 167 63 71 167 63 71 168 102 88 189 165 168 222 171 182 246 237 247
++246 237 247 246 237 247 251 251 247 246 237 247 251 251 247 246 237 247 235 238 247 246 237 247
++240 251 247 231 239 247 231 239 247 231 239 247 221 238 247 240 251 247 240 251 247 240 251 247
++240 251 247 231 239 247 221 238 247 208 221 247 201 216 228 208 221 247 232 215 228 188 180 202
++168 146 127 138 126 108 163 117 123 146 150 115 168 146 127 168 102 88 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 201 146 124 177 171 115 168 146 127 168 146 127 201 146 124
++168 146 127 168 146 127 201 146 124 168 146 127 168 146 127 168 146 127 146 150 115 163 117 123
++157 148 53 163 117 123 157 148 53 168 146 127 146 150 115 168 146 127 146 150 115 138 126 108
++138 126 108 138 126 108 157 148 53 138 126 108 168 102 88 117 127 86 168 102 88 138 126 108
++168 102 88 117 114 76 168 102 88 138 126 108 168 102 88 138 126 108 168 102 88 117 127 86
++168 102 88 157 148 53 138 126 108 157 148 53 168 102 88 117 127 86 168 102 88 117 114 76
++138 102 108 138 126 108 168 102 88 117 114 76 168 102 88 117 99 86 117 112 45 168 102 88
++117 114 76 168 102 88 117 112 45 168 102 88 117 99 86 157 148 53 168 102 88 168 102 88
++195 113 123 157 148 53 201 146 124 146 150 115 201 146 124 168 146 127 197 171 123 197 171 123
++168 146 127 201 146 124 177 169 143 197 171 123 197 171 123 197 171 123 168 146 127 168 146 127
++163 117 123 138 126 108 138 126 108 138 126 108 146 150 115 168 146 127 166 156 164 138 126 108
++88 83 74 65 63 61 63 55 51 50 61 48 63 55 51 53 63 61 59 55 55 50 61 48
++53 63 61 59 55 55 59 55 55 50 61 48 59 55 55 50 61 48 59 55 55 59 55 55
++65 63 61 50 61 48 55 55 48 52 55 48 52 55 48 43 55 48 48 50 48 42 47 42
++48 50 48 42 47 42 42 47 42 35 46 43 43 42 50 34 40 43 42 38 42 34 40 43
++34 40 43 42 38 42 34 40 43 36 35 37 33 39 38 36 35 37 36 35 37 36 35 37
++37 35 43 36 35 37 33 39 38 31 35 35 33 39 38 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 32 39 24 36 35 37 42 41 42 36 35 37 36 35 37
++33 30 30 63 55 45 99 93 84 138 126 108 168 146 127 145 140 145 146 151 137 148 160 159
++177 169 143 166 156 164 166 180 164 185 202 202 225 222 201 201 216 228 233 241 227 240 251 247
++251 251 247 251 251 247 240 251 247 240 251 247 240 251 247 201 216 228 233 241 227 221 238 247
++233 241 227 221 238 247 240 251 247 221 238 247 221 238 247 233 241 227 185 202 202 166 174 181
++166 174 181 185 202 202 185 202 202 221 238 247 233 241 227 233 241 227 201 216 228 233 241 227
++231 239 247 240 251 247 251 251 247 251 251 247 251 251 247 240 251 247 240 251 247 251 251 247
++240 251 247 240 251 247 235 238 247 221 238 247 233 241 227 221 238 247 233 241 227 201 216 228
++233 241 227 201 216 228 185 202 202 166 174 181 146 162 145 166 156 164 177 169 143 189 165 168
++197 171 123 217 168 156 217 168 156 222 171 182 225 222 201 185 202 202 225 222 201 185 202 202
++185 202 202 166 174 181 185 202 202 185 202 202 201 216 228 201 216 228 185 202 202 145 140 145
++77 90 100 59 69 70 45 57 61 53 63 61 59 69 70 59 57 61 53 63 61 65 63 61
++53 63 61 59 57 61 59 55 55 65 55 54 59 55 55 64 70 48 65 55 54 65 55 54
++65 55 54 65 55 54 65 55 54 65 63 61 65 55 54 65 55 54 63 55 51 63 55 51
++63 55 51 63 55 51 62 47 47 53 46 48 51 49 42 53 46 48 51 49 42 55 39 37
++47 44 42 47 44 42 47 39 42 36 35 37 53 35 37 42 41 42 53 35 37 36 35 37
++32 39 24 42 38 42 47 44 42 48 44 48 52 55 48 55 55 48 59 57 61 65 63 61
++75 63 62 63 59 71 75 72 67 75 72 67 75 64 82 75 72 67 75 72 67 75 72 67
++75 81 76 88 69 84 75 81 69 88 69 84 75 81 76 75 81 76 75 81 76 75 72 67
++75 72 67 75 72 67 65 63 61 65 63 61 65 57 61 63 55 51 59 55 55 59 55 55
++63 55 51 59 55 55 63 55 51 63 55 51 62 47 47 55 55 48 53 46 48 53 46 48
++51 49 42 53 46 48 60 49 42 53 46 48 60 49 42 62 47 47 62 47 47 60 49 42
++53 46 48 62 47 47 55 39 37 60 49 42 53 46 48 55 39 37 47 44 42 47 44 42
++55 39 37 47 39 42 47 44 42 36 35 37 52 30 35 36 35 37 32 39 24 52 30 35
++36 35 37 36 35 37 47 47 21 36 35 37 36 35 37 47 47 21 42 41 42 47 44 42
++
++52 30 35 76 18 19 59 36 42 88 30 18 76 18 19 76 44 53 88 30 18 88 30 18
++88 30 18 88 44 51 102 33 26 102 33 26 102 33 26 88 44 51 102 33 26 102 33 26
++102 33 26 88 44 51 102 33 26 88 44 51 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 88 44 51 102 33 26 76 18 19 102 33 26 102 33 26 76 18 19 102 33 26
++102 33 26 88 30 18 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 76 18 19 88 30 18 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26 102 33 26
++102 33 26 161 55 23 102 33 26 161 55 23 102 33 26 167 63 71 122 49 24 167 63 71
++120 63 71 167 63 71 120 63 71 120 63 71 120 63 71 120 63 71 101 74 26 120 63 71
++88 44 51 76 46 20 59 36 42 59 36 42 52 30 35 53 35 37 52 30 35 52 30 35
++53 35 17 53 35 37 53 35 37 55 39 37 53 35 37 55 39 37 55 39 37 60 49 42
++60 49 42 60 49 42 60 49 42 62 47 47 63 55 45 75 56 53 75 56 53 75 56 53
++75 56 53 88 73 62 75 56 53 88 73 62 75 56 53 88 73 62 75 56 53 88 73 62
++75 56 53 75 56 53 75 56 53 63 55 45 62 47 47 53 46 48 53 46 48 59 36 42
++47 39 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 48 44 48 47 44 42
++48 44 48 47 44 42 48 44 48 51 49 42 53 46 48 51 49 42 51 49 42 53 46 48
++55 55 48 57 43 51 63 55 51 63 55 51 63 55 51 75 56 53 75 63 62 75 56 53
++75 63 62 75 63 62 75 63 62 88 73 62 75 56 53 75 63 62 88 66 70 75 56 53
++75 56 53 75 73 58 75 56 53 64 70 48 75 56 53 75 56 53 65 63 61 75 56 53
++65 63 61 75 56 53 65 63 61 75 56 53 65 63 61 65 55 54 65 55 54 63 55 51
++65 55 54 63 55 51 63 55 45 75 56 53 63 55 51 65 55 54 75 56 53 75 56 53
++75 56 53 75 56 53 75 56 53 88 73 62 75 56 53 75 56 53 75 56 53 75 63 62
++75 56 53 75 56 53 75 73 58 75 56 53 75 56 53 64 70 48 75 56 53 75 56 53
++63 55 45 75 56 53 63 55 45 75 56 53 63 55 45 63 55 45 62 47 47 63 55 45
++62 47 47 63 55 51 62 47 47 62 47 47 62 47 47 63 55 51 62 47 47 63 55 51
++63 55 51 75 56 53 65 55 54 75 56 53 75 63 62 65 63 61 75 56 53 75 56 53
++65 63 61 65 55 54 75 56 53 65 55 54 65 55 54 65 55 54 63 55 51 63 55 51
++63 55 51 63 55 51 55 55 48 63 55 51 59 55 55 63 55 51 65 55 54 65 63 61
++65 63 61 65 63 61 65 63 61 75 63 62 65 63 61 75 63 62 65 63 61 75 72 67
++75 72 67 75 72 67 88 66 70 75 81 76 88 83 74 88 83 74 99 93 84 88 83 88
++99 93 84 99 93 84 99 93 84 99 93 84 99 93 84 99 93 84 99 93 84 88 83 88
++99 93 84 101 83 74 88 83 88 101 83 74 88 83 74 101 83 74 101 83 74 88 69 84
++101 83 74 88 66 70 101 83 74 88 69 84 101 83 74 101 83 74 95 91 100 101 83 74
++99 93 84 101 83 74 99 93 84 101 83 74 101 83 74 95 91 100 101 83 74 101 83 74
++88 83 88 101 83 74 88 69 84 101 83 74 88 83 88 101 83 74 88 69 84 88 66 70
++101 83 74 88 66 70 88 83 74 88 66 70 75 81 76 88 66 70 75 81 76 88 66 70
++75 72 67 75 72 67 75 63 62 75 63 62 75 63 62 65 63 61 65 55 54 65 55 54
++65 55 54 63 55 51 65 55 54 59 55 55 48 50 48 34 40 43 31 35 35 28 30 35
++22 23 31 25 30 29 25 30 29 31 35 35 33 39 38 43 42 50 35 46 43 28 35 38
++22 23 31 23 30 35 25 30 29 26 24 32 30 30 34 26 30 28 30 30 34 30 30 34
++33 30 32 30 30 34 31 35 35 30 30 34 30 30 34 30 30 34 26 30 28 26 30 28
++30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 31 35 35
++30 30 34 30 30 34 26 30 28 22 25 24 23 20 24 22 25 24 30 30 34 42 41 42
++43 42 50 48 50 48 43 42 50 48 44 48 43 42 50 42 47 42 34 40 43 34 40 43
++43 42 50 48 50 48 54 57 61 48 50 48 43 42 50 54 57 61 54 57 61 54 57 61
++48 50 48 34 40 43 23 30 35 12 18 20 25 30 29 28 30 35 34 40 43 45 57 61
++54 57 61 43 55 48 28 35 38 22 25 24 22 23 31 25 30 29 28 35 38 34 40 43
++28 30 35 23 20 24 3 4 9 63 59 71 148 160 159 232 215 228 251 251 247 251 251 247
++235 238 247 226 221 247 232 215 228 201 216 228 232 215 228 201 216 228 232 215 228 221 238 247
++232 215 228 221 238 247 231 239 247 235 238 247 235 238 247 235 238 247 240 251 247 240 251 247
++240 251 247 240 251 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 232 215 228
++138 102 108 88 44 51 76 18 19 102 33 26 167 63 71 167 63 71 102 33 26 167 63 71
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++120 63 71 120 63 71 167 63 71 195 113 123 222 171 182 246 237 247 246 237 247 251 251 247
++251 251 247 251 251 247 246 237 247 246 237 247 231 239 247 235 238 247 246 237 247 240 251 247
++231 239 247 231 239 247 221 238 247 231 239 247 240 251 247 240 251 247 240 251 247 240 251 247
++231 239 247 221 238 247 208 221 247 208 221 247 208 221 247 235 238 247 201 216 228 189 165 168
++145 140 145 163 117 123 146 150 115 163 117 123 168 102 88 177 171 115 168 146 127 163 117 123
++168 146 127 168 146 127 177 171 115 168 146 127 168 146 127 168 146 127 177 171 115 168 146 127
++168 146 127 168 146 127 168 146 127 146 150 115 168 102 88 168 146 127 168 102 88 146 150 115
++163 117 123 146 150 115 163 117 123 168 146 127 168 102 88 138 126 108 168 102 88 157 148 53
++138 126 108 117 114 76 138 102 108 117 114 76 117 114 76 168 102 88 117 114 76 117 114 76
++168 102 88 117 114 76 168 102 88 117 114 76 168 102 88 157 148 53 138 126 108 168 102 88
++138 126 108 168 102 88 138 126 108 168 102 88 117 127 86 168 102 88 117 127 86 168 102 88
++117 114 76 168 102 88 117 127 86 168 102 88 117 114 76 117 99 86 120 63 71 117 114 76
++117 99 86 168 102 88 117 114 76 117 114 76 168 102 88 117 114 76 168 102 88 157 148 53
++146 150 115 168 102 88 168 146 127 157 148 53 168 146 127 201 146 124 177 171 115 201 146 124
++168 146 127 177 171 115 201 146 124 177 169 143 168 146 127 138 126 108 168 102 88 117 114 76
++88 73 62 88 73 31 76 46 20 60 49 42 75 56 53 88 73 62 99 93 84 101 83 74
++75 72 67 65 55 54 59 55 55 59 55 55 59 55 55 59 55 55 50 61 48 59 55 55
++59 55 55 50 61 48 59 55 55 59 55 55 50 61 48 63 55 51 50 61 48 59 55 55
++59 55 55 50 61 48 59 55 55 52 55 48 48 50 48 48 50 48 48 50 48 43 55 48
++48 50 48 42 47 42 43 42 50 42 41 42 34 40 43 34 40 43 34 40 43 34 40 43
++37 35 43 37 35 43 33 39 38 37 35 43 36 35 37 36 35 37 31 35 35 31 35 35
++36 35 37 28 35 38 31 35 35 31 35 35 31 35 35 36 35 37 33 39 38 31 35 35
++36 35 37 31 35 35 36 35 37 36 35 37 36 35 37 32 39 24 36 35 37 33 30 30
++36 35 37 75 56 53 117 99 86 150 144 154 177 169 143 166 156 164 177 169 143 166 156 164
++146 162 145 166 156 164 166 180 164 225 222 201 201 216 228 233 241 227 231 239 247 240 251 247
++251 251 247 251 251 247 240 251 247 240 251 247 221 238 247 233 241 227 201 216 228 233 241 227
++201 216 228 233 241 227 221 238 247 233 241 227 221 238 247 201 216 228 201 216 228 185 202 202
++185 202 202 185 202 202 201 216 228 233 241 227 201 216 228 201 216 228 233 241 227 201 216 228
++233 241 227 221 238 247 235 238 247 240 251 247 240 251 247 231 239 247 233 241 227 221 238 247
++235 238 247 240 251 247 231 239 247 233 241 227 208 221 247 233 241 227 208 221 247 233 241 227
++201 216 228 221 238 247 233 241 227 185 202 202 166 156 164 146 151 137 177 169 143 189 165 168
++189 165 168 217 168 156 208 215 180 208 215 180 188 180 202 208 215 180 185 202 202 208 215 180
++185 202 202 188 180 202 166 180 164 166 174 181 185 202 202 225 222 201 185 202 202 166 156 164
++94 105 108 59 69 70 54 57 61 53 63 61 54 57 61 54 57 61 59 57 61 59 55 55
++59 55 55 59 55 55 63 55 51 59 55 55 65 63 61 65 55 54 65 55 54 65 55 54
++75 56 53 65 63 61 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54
++63 55 51 55 55 48 62 47 47 60 49 42 53 46 48 60 49 42 51 49 42 47 44 42
++51 49 42 55 39 37 42 41 42 47 47 21 42 38 42 47 47 21 36 35 37 36 35 37
++53 35 37 36 35 37 47 44 42 47 49 42 48 50 48 59 55 55 59 55 55 59 55 55
++65 63 61 65 63 61 75 72 67 75 72 67 75 72 67 75 72 67 75 64 82 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 64 82 75 72 67 75 72 67 75 72 67
++63 59 71 65 63 61 65 63 61 65 57 61 63 55 51 59 55 55 59 55 55 55 55 48
++55 55 48 63 55 51 59 55 55 53 46 48 62 47 47 53 46 48 60 49 42 53 46 48
++60 49 42 53 46 48 55 39 37 60 49 42 59 36 42 60 49 42 53 46 48 60 49 42
++59 36 42 60 49 42 53 46 48 53 46 48 55 39 37 51 49 42 55 39 37 51 49 42
++47 44 42 47 44 42 55 39 37 42 41 42 47 47 21 36 35 37 52 30 35 36 35 37
++36 35 37 33 30 30 52 30 35 36 35 37 53 35 37 42 41 42 55 39 37 47 44 42
++
++76 18 19 76 46 20 59 36 42 76 46 20 59 36 42 88 30 18 76 18 19 76 44 53
++102 33 26 88 30 18 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 88 44 51 102 33 26 88 44 51
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 88 44 51
++102 33 26 76 18 19 102 33 26 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26
++102 33 26 102 33 26 102 33 26 120 63 71 161 55 23 120 63 71 167 63 71 120 63 71
++167 63 71 120 63 71 120 63 71 176 103 41 120 63 71 120 63 71 120 63 71 101 60 73
++88 44 51 88 44 51 88 44 51 59 36 42 53 35 37 53 35 17 52 30 35 36 35 37
++52 30 35 52 30 35 47 47 21 55 39 37 55 39 37 55 39 37 55 39 37 55 39 37
++60 49 42 60 49 42 76 44 53 63 55 45 75 56 53 75 56 53 75 56 53 75 56 53
++75 56 53 88 73 62 75 56 53 88 73 62 75 56 53 75 56 53 88 73 62 75 56 53
++75 56 53 75 56 53 65 55 54 63 55 51 63 55 45 62 47 47 60 49 42 55 39 37
++47 44 42 47 44 42 47 39 42 47 39 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 48 44 48 48 50 48 48 44 48 48 50 48 51 49 42 53 46 48 51 49 42
++53 46 48 62 47 47 59 55 55 63 55 45 65 55 54 64 70 48 65 55 54 75 56 53
++75 63 62 75 56 53 75 56 53 75 63 62 75 63 62 75 56 53 75 56 53 75 63 62
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 63 55 45 75 56 53 63 55 51
++75 56 53 64 70 48 75 56 53 75 56 53 63 55 51 75 56 53 63 55 51 64 70 48
++75 56 53 65 55 54 63 55 51 63 55 45 75 56 53 63 55 45 75 56 53 75 56 53
++75 73 58 75 56 53 75 56 53 75 56 53 88 73 62 75 56 53 75 73 58 75 56 53
++75 56 53 75 56 53 75 56 53 75 56 53 63 55 45 75 56 53 63 55 45 75 56 53
++63 55 45 63 55 51 63 55 45 63 55 45 63 55 45 63 55 45 62 47 47 62 47 47
++63 55 45 62 47 47 60 49 42 55 55 48 55 55 48 62 47 47 63 55 51 62 47 47
++63 55 51 63 55 51 65 55 54 65 55 54 65 63 61 75 56 53 65 63 61 65 63 61
++65 55 54 75 56 53 65 55 54 65 55 54 65 55 54 63 55 51 63 55 51 63 55 51
++63 55 51 63 55 51 63 55 51 55 55 48 63 55 51 59 55 55 65 55 54 63 55 51
++65 55 54 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 75 72 67 65 63 61
++75 72 67 75 81 76 75 72 67 75 81 76 88 83 74 75 81 76 88 83 88 99 93 84
++88 83 88 99 93 84 99 93 84 88 83 88 99 93 84 99 93 84 99 93 84 99 93 84
++99 93 84 99 93 84 99 93 84 99 93 84 88 83 88 101 83 74 88 83 74 101 83 74
++88 83 74 88 83 74 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 99 93 84
++101 83 74 101 83 74 101 83 74 88 83 88 101 83 74 101 83 74 101 83 74 101 83 74
++88 69 84 101 83 74 88 83 74 101 83 74 88 66 70 88 83 74 88 83 74 88 66 70
++88 83 74 88 66 70 88 83 74 75 72 67 88 83 74 88 66 70 75 81 69 88 73 62
++75 72 67 75 73 58 75 63 62 65 63 61 75 56 53 65 55 54 65 55 54 75 56 53
++65 55 54 65 55 54 65 55 54 55 55 48 42 41 42 31 35 35 28 30 35 31 35 35
++28 35 38 34 40 43 34 40 43 31 35 35 30 30 34 31 35 35 33 30 36 25 30 29
++26 30 28 26 24 32 22 25 24 22 25 24 26 30 28 26 30 28 33 30 30 30 30 34
++30 30 34 31 35 35 30 30 34 30 30 34 26 30 28 30 30 34 30 30 34 30 30 34
++30 30 34 26 30 28 30 30 34 26 30 28 30 30 34 31 35 35 30 30 34 30 30 34
++33 30 32 25 30 29 22 25 24 22 25 24 22 25 24 22 25 24 30 30 34 42 38 42
++42 47 42 43 42 50 48 50 48 48 50 48 48 50 48 48 44 48 34 40 43 37 35 43
++35 46 43 43 42 50 43 42 50 45 57 61 48 50 48 45 57 61 54 57 61 54 57 61
++45 57 61 34 40 43 25 30 29 22 23 31 23 30 35 28 35 38 42 38 42 45 57 61
++54 57 61 45 57 61 28 35 38 22 23 31 28 35 38 28 30 35 25 30 29 28 30 35
++34 40 43 42 41 42 14 16 17 26 24 32 75 81 76 148 160 159 201 216 228 232 215 228
++232 215 228 201 216 228 233 241 227 232 215 228 233 241 227 233 241 227 231 239 247 231 239 247
++240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 188 180 202
++95 95 116 76 44 53 101 60 73 112 96 108 120 63 71 138 102 108 163 117 123 141 116 139
++195 113 123 163 117 123 195 113 123 195 113 123 141 116 139 195 113 123 189 165 168 195 113 123
++189 165 168 189 165 168 222 171 182 246 237 247 246 237 247 251 251 247 251 251 247 251 251 247
++246 237 247 235 238 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 235 238 247 240 251 247 240 251 247 240 251 247 240 251 247
++231 239 247 226 221 247 208 221 247 201 216 228 208 221 247 221 238 247 232 215 228 166 156 164
++168 146 127 163 117 123 138 126 108 168 146 127 146 150 115 163 117 123 177 171 115 168 102 88
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 201 146 124 168 146 127
++168 146 127 168 146 127 146 150 115 168 102 88 168 146 127 146 150 115 168 146 127 146 150 115
++168 102 88 168 146 127 168 102 88 146 150 115 146 150 115 168 102 88 138 126 108 138 126 108
++168 102 88 117 114 76 168 102 88 117 114 76 117 99 86 117 112 45 168 102 88 117 114 76
++168 102 88 117 127 86 168 102 88 117 114 76 138 126 108 117 114 76 138 126 108 157 148 53
++138 126 108 157 148 53 168 102 88 117 114 76 138 102 108 157 148 53 117 114 76 168 102 88
++117 114 76 168 102 88 117 114 76 117 114 76 168 102 88 117 99 86 117 112 45 167 63 71
++117 112 45 117 99 86 117 112 45 168 102 88 117 112 45 168 102 88 117 127 86 168 102 88
++163 117 123 157 148 53 168 146 127 168 102 88 168 146 127 168 146 127 201 146 124 177 169 143
++177 171 115 163 117 123 138 126 108 117 127 86 101 83 74 88 73 62 55 55 48 53 35 17
++34 30 15 34 30 15 26 25 15 34 30 15 52 30 15 32 39 24 53 35 37 47 44 42
++51 49 42 55 55 48 65 63 61 59 55 55 65 63 61 50 61 48 59 55 55 59 55 55
++50 61 48 59 55 55 55 55 48 53 63 61 59 55 55 59 55 55 59 55 55 50 61 48
++59 55 55 55 55 48 55 55 48 52 55 48 52 55 48 48 50 48 48 50 48 42 47 42
++48 50 48 42 47 42 42 47 42 43 42 50 35 46 43 42 47 42 34 40 43 34 40 43
++34 40 43 34 40 43 34 40 43 34 40 43 33 39 38 33 39 38 28 35 38 33 39 38
++28 35 38 33 39 38 36 35 37 37 35 43 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 31 35 35 33 30 30 33 39 38 36 35 37 36 35 37 36 35 37 32 39 24
++53 35 37 75 56 53 138 126 108 168 146 127 177 169 143 189 165 168 177 169 143 177 169 143
++177 169 143 166 174 181 208 215 180 201 216 228 201 216 228 201 216 228 240 251 247 240 251 247
++251 251 247 251 251 247 240 251 247 240 251 247 233 241 227 201 216 228 233 241 227 201 216 228
++221 238 247 233 241 227 221 238 247 233 241 227 221 238 247 233 241 227 233 241 227 185 202 202
++201 216 228 225 222 201 221 238 247 233 241 227 201 216 228 233 241 227 201 216 228 233 241 227
++221 238 247 233 241 227 221 238 247 233 241 227 221 238 247 233 241 227 201 216 228 226 221 247
++233 241 227 231 239 247 221 238 247 221 238 247 221 238 247 233 241 227 221 238 247 201 216 228
++233 241 227 221 238 247 232 215 228 201 216 228 188 180 202 166 156 164 145 140 145 166 180 164
++189 165 168 225 222 201 185 202 202 189 165 168 166 180 164 166 174 181 188 180 202 188 180 202
++185 202 202 188 180 202 166 180 164 166 180 164 189 165 168 185 202 202 185 202 202 166 174 181
++111 119 127 60 81 83 43 55 48 54 57 61 54 57 61 59 55 55 53 63 61 59 57 61
++53 63 61 63 55 51 63 55 51 63 55 51 63 55 51 65 55 54 64 70 48 65 63 61
++65 55 54 65 55 54 63 55 51 64 70 48 63 55 51 63 55 51 63 55 51 63 55 51
++63 55 51 62 47 47 55 55 48 53 46 48 53 46 48 51 49 42 55 39 37 47 44 42
++47 39 42 47 47 21 36 35 37 42 38 42 42 38 42 36 35 37 47 39 42 36 35 37
++33 30 30 36 35 37 42 41 42 47 44 42 53 46 48 52 55 48 52 55 48 59 55 55
++59 57 61 65 63 61 65 63 61 65 63 61 63 59 71 65 63 61 65 63 61 65 63 61
++63 59 71 75 72 67 63 59 71 75 72 67 75 72 67 75 72 67 75 72 67 59 69 70
++75 72 67 65 63 61 59 57 61 59 55 55 59 55 55 55 55 48 53 46 48 55 55 48
++53 46 48 55 55 48 55 55 48 55 55 48 53 46 48 51 49 42 53 46 48 51 49 42
++51 49 42 51 49 42 53 46 48 51 49 42 53 46 48 53 46 48 60 49 42 53 46 48
++60 49 42 53 46 48 55 39 37 60 49 42 55 39 37 51 49 42 55 39 37 47 44 42
++55 39 37 47 44 42 36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 32 39 24
++52 30 35 36 35 37 33 30 30 36 35 37 32 39 24 47 44 42 47 44 42 47 44 42
++
++52 30 35 76 18 19 59 36 42 76 18 19 76 46 20 88 44 51 88 30 18 88 30 18
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 120 63 71
++102 33 26 102 33 26 102 33 26 88 44 51 102 33 26 102 33 26 102 33 26 102 33 26
++88 44 51 102 33 26 102 33 26 88 44 51 102 33 26 102 33 26 102 33 26 102 33 26
++88 30 18 102 33 26 102 33 26 88 30 18 102 33 26 76 18 19 102 33 26 76 18 19
++88 30 18 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26
++76 18 19 102 33 26 102 33 26 122 49 24 167 63 71 120 63 71 161 55 23 120 63 71
++120 63 71 176 103 41 120 63 71 120 63 71 120 63 71 120 63 71 120 63 71 101 74 26
++101 60 73 88 44 51 88 44 51 62 47 47 59 36 42 52 30 35 52 30 35 52 30 35
++53 35 37 52 30 35 53 35 37 55 39 37 55 39 37 55 39 37 55 39 37 60 49 42
++59 36 42 60 49 42 76 44 53 63 55 45 75 56 53 75 56 53 75 56 53 88 73 31
++75 63 62 88 73 62 75 56 53 88 73 62 75 56 53 88 73 62 75 56 53 75 56 53
++88 73 62 75 56 53 75 56 53 63 55 51 62 47 47 62 47 47 53 46 48 51 49 42
++55 39 37 55 39 37 47 44 42 55 39 37 47 44 42 51 49 42 47 44 42 47 49 42
++47 44 42 48 44 48 48 44 48 48 50 48 48 44 48 47 49 42 47 44 42 51 49 42
++62 47 47 55 55 48 62 47 47 63 55 51 63 55 51 65 55 54 75 56 53 65 63 61
++75 63 62 75 63 62 75 56 53 75 63 62 75 63 62 75 63 62 75 56 53 75 63 62
++75 56 53 75 63 62 75 56 53 63 55 51 75 56 53 63 55 45 75 56 53 63 55 45
++75 56 53 63 55 45 63 55 51 63 55 45 75 56 53 63 55 45 65 55 54 75 56 53
++63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 75 56 53 63 55 45 75 56 53
++75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53
++75 56 53 75 56 53 64 70 48 75 56 53 75 56 53 63 55 45 63 55 45 63 55 45
++63 55 45 63 55 45 63 55 45 62 47 47 63 55 45 60 49 42 60 49 42 55 55 48
++62 47 47 53 46 48 55 55 48 51 49 42 62 47 47 62 47 47 60 49 42 62 47 47
++63 55 51 63 55 51 65 55 54 65 55 54 75 56 53 65 63 61 75 56 53 65 55 54
++65 55 54 65 63 61 65 55 54 65 55 54 65 55 54 63 55 51 63 55 51 63 55 51
++62 47 47 63 55 51 65 55 54 63 55 51 55 55 48 63 55 51 59 55 55 64 70 48
++65 63 61 65 63 61 75 63 62 65 63 61 65 63 61 65 63 61 75 72 67 65 63 61
++75 72 67 75 72 67 75 72 67 75 81 76 75 81 76 88 83 74 88 83 88 88 83 88
++90 98 89 99 93 84 95 91 100 99 93 84 99 93 84 95 91 100 99 93 84 99 93 84
++88 83 88 99 93 84 88 83 74 101 83 74 101 83 74 88 83 74 88 83 74 88 83 74
++88 83 74 101 83 74 88 66 70 101 83 74 88 69 84 101 83 74 101 83 74 101 83 74
++88 69 84 99 93 84 101 83 74 101 83 74 88 69 84 101 83 74 88 83 88 101 83 74
++101 83 74 88 69 84 88 83 74 88 69 84 101 83 74 88 83 74 101 83 74 88 66 70
++88 83 74 88 66 70 88 83 74 88 66 70 75 72 67 88 73 62 75 72 67 75 72 67
++88 73 62 75 63 62 75 63 62 75 73 58 75 63 62 65 55 54 64 70 48 65 55 54
++65 57 61 65 55 54 59 55 55 48 44 48 36 35 37 31 35 35 33 39 38 35 46 43
++35 47 50 35 46 43 33 39 38 25 30 29 26 24 32 22 25 24 25 30 29 26 24 32
++26 30 28 23 20 24 23 20 24 22 25 24 22 25 24 33 30 30 30 30 34 30 30 34
++33 30 32 31 35 35 30 30 34 30 30 34 26 30 28 30 30 34 26 30 28 30 30 34
++30 30 34 26 30 28 26 30 28 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34
++30 30 34 25 30 29 22 25 24 12 18 20 23 20 24 22 25 24 26 24 32 30 30 34
++31 35 35 37 35 43 42 47 42 48 50 48 54 57 61 48 50 48 43 42 50 34 40 43
++34 40 43 35 47 50 43 42 50 48 50 48 45 57 61 48 50 48 59 57 61 63 59 71
++54 57 61 43 42 50 28 35 38 23 30 35 25 30 29 28 30 35 34 40 43 54 57 61
++54 57 61 45 57 61 28 35 38 22 23 31 28 35 38 33 39 38 26 24 32 22 25 24
++31 35 35 43 42 50 33 30 36 23 20 24 23 20 24 65 57 61 145 140 145 232 215 228
++240 251 247 233 241 227 235 238 247 240 251 247 240 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 201 216 228
++166 156 164 166 156 164 189 165 168 188 180 202 188 180 202 222 171 182 194 199 226 222 171 182
++226 221 247 194 199 226 232 215 228 226 221 247 226 221 247 246 237 247 226 221 247 246 237 247
++246 237 247 246 237 247 246 237 247 251 251 247 251 251 247 251 251 247 251 251 247 240 251 247
++235 238 247 231 239 247 226 221 247 231 239 247 231 239 247 231 239 247 231 239 247 221 238 247
++231 239 247 231 239 247 240 251 247 240 251 247 240 251 247 240 251 247 235 238 247 231 239 247
++231 239 247 221 238 247 208 221 247 208 221 247 226 221 247 221 238 247 194 199 226 177 169 143
++146 151 137 138 126 108 168 146 127 168 102 88 146 150 115 163 117 123 168 146 127 146 150 115
++168 102 88 177 171 115 163 117 123 177 171 115 201 146 124 168 146 127 168 146 127 168 146 127
++168 146 127 168 102 88 146 150 115 168 146 127 138 126 108 168 146 127 168 102 88 146 150 115
++146 150 115 138 126 108 168 146 127 168 102 88 138 126 108 157 148 53 138 126 108 117 114 76
++168 102 88 117 114 76 117 114 76 117 99 86 117 112 45 168 102 88 117 99 86 117 114 76
++168 102 88 117 114 76 117 114 76 168 102 88 117 114 76 168 102 88 168 102 88 138 126 108
++168 102 88 138 126 108 138 126 108 168 102 88 117 114 76 168 102 88 117 114 76 117 114 76
++168 102 88 117 112 45 117 114 76 168 102 88 117 112 45 117 99 86 117 112 45 117 99 86
++117 99 86 167 63 71 117 114 76 120 63 71 117 114 76 168 102 88 117 114 76 168 102 88
++157 148 53 163 117 123 146 150 115 168 146 127 157 148 53 163 117 123 138 126 108 138 126 108
++117 99 86 88 73 62 63 55 45 55 39 37 52 30 35 34 30 15 17 12 17 7 12 13
++17 12 17 17 12 17 23 18 22 23 20 24 23 20 24 23 18 22 22 24 13 26 30 28
++33 39 38 48 50 48 59 57 61 65 63 61 59 55 55 50 61 48 63 55 51 50 61 48
++59 55 55 55 55 48 50 61 48 59 55 55 50 61 48 59 55 55 50 61 48 59 57 61
++55 55 48 52 55 48 52 55 48 52 55 48 48 50 48 54 57 61 48 50 48 48 50 48
++35 47 50 42 47 42 35 47 50 42 47 42 35 46 43 42 41 42 35 46 43 34 40 43
++34 40 43 33 39 38 37 35 43 33 39 38 28 35 38 34 40 43 28 35 38 37 35 43
++33 39 38 37 35 43 31 35 35 36 35 37 28 35 38 37 35 43 28 35 38 36 35 37
++36 35 37 31 35 35 33 39 38 36 35 37 36 35 37 36 35 37 33 30 30 33 30 30
++36 35 37 88 73 62 138 126 108 201 146 124 217 168 156 189 165 168 197 171 123 168 146 127
++166 156 164 185 202 202 225 222 201 201 216 228 233 241 227 233 241 227 233 241 227 240 251 247
++240 251 247 240 251 247 240 251 247 221 238 247 221 238 247 201 216 228 233 241 227 201 216 228
++233 241 227 201 216 228 221 238 247 233 241 227 221 238 247 201 216 228 201 216 228 201 216 228
++233 241 227 201 216 228 233 241 227 201 216 228 233 241 227 201 216 228 201 216 228 233 241 227
++201 216 228 233 241 227 201 216 228 201 216 228 201 216 228 232 215 228 201 216 228 233 241 227
++208 221 247 233 241 227 221 238 247 233 241 227 221 238 247 233 241 227 221 238 247 233 241 227
++221 238 247 221 238 247 201 216 228 225 222 201 185 202 202 148 160 159 122 134 144 166 156 164
++185 202 202 225 222 201 185 202 202 166 174 181 150 171 159 146 151 137 146 151 137 146 162 145
++189 165 168 208 215 180 166 180 164 166 156 164 166 180 164 166 174 181 185 202 202 166 174 181
++121 143 132 75 81 76 43 42 50 45 57 61 52 55 48 54 57 61 55 55 48 59 55 55
++59 55 55 63 55 51 63 55 51 63 55 51 64 70 48 59 55 55 63 55 51 63 55 51
++65 63 61 63 55 51 59 55 55 59 55 55 59 55 55 63 55 51 63 55 51 63 55 51
++63 55 51 55 55 48 62 47 47 53 46 48 51 49 42 53 46 48 47 44 42 47 44 42
++47 39 42 36 35 37 55 39 37 36 35 37 55 39 37 36 35 37 33 30 30 36 35 37
++32 39 24 36 35 37 42 38 42 47 44 42 48 50 48 48 50 48 48 50 48 52 55 48
++59 55 55 59 57 61 65 63 61 65 63 61 65 63 61 75 72 67 65 63 61 65 63 61
++65 63 61 65 63 61 75 72 67 59 69 70 65 63 61 59 69 70 75 72 67 59 69 70
++63 59 71 65 63 61 59 57 61 59 55 55 59 55 55 52 55 48 48 50 48 53 46 48
++53 46 48 59 55 55 53 46 48 55 55 48 53 46 48 51 49 42 51 49 42 47 44 42
++47 44 42 51 49 42 51 49 42 53 46 48 60 49 42 53 46 48 60 49 42 53 46 48
++60 49 42 53 46 48 60 49 42 53 46 48 51 49 42 55 39 37 47 44 42 47 44 42
++47 44 42 36 35 37 47 47 21 36 35 37 36 35 37 53 35 17 33 30 30 33 30 30
++33 30 30 32 39 24 52 30 35 32 39 24 53 35 37 47 39 42 47 44 42 47 44 42
++
++76 18 19 59 36 42 88 30 18 59 36 42 76 18 19 76 18 19 88 44 51 88 30 18
++88 44 51 88 30 18 102 33 26 102 33 26 102 33 26 120 63 71 102 33 26 102 33 26
++102 33 26 120 63 71 102 33 26 102 33 26 120 63 71 102 33 26 102 33 26 120 63 71
++102 33 26 88 44 51 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 88 30 18 102 33 26 88 30 18 102 33 26
++76 18 19 88 30 18 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 49 13 16 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++102 33 26 102 33 26 102 33 26 122 49 24 120 63 71 122 49 24 167 63 71 120 63 71
++167 63 71 120 63 71 167 63 71 120 63 71 161 55 23 120 63 71 120 63 71 120 63 71
++120 63 71 88 73 62 88 44 51 76 44 53 59 36 42 52 30 35 52 30 35 53 35 37
++53 35 37 55 39 37 55 39 37 55 39 37 55 39 37 55 39 37 55 39 37 60 49 42
++60 49 42 60 49 42 75 56 53 76 46 20 75 56 53 75 56 53 75 56 53 75 56 53
++88 73 62 75 56 53 88 73 62 88 73 62 75 56 53 88 73 62 75 56 53 75 73 58
++75 56 53 75 56 53 75 56 53 65 55 54 63 55 51 63 55 51 62 47 47 60 49 42
++51 49 42 47 44 42 55 39 37 47 44 42 51 49 42 47 44 42 51 49 42 47 49 42
++47 49 42 48 44 48 48 50 48 43 42 50 48 50 48 47 44 42 51 49 42 51 49 42
++53 46 48 53 46 48 63 55 51 63 55 45 63 55 51 64 70 48 65 55 54 75 56 53
++75 56 53 75 63 62 75 63 62 75 63 62 88 73 62 75 56 53 75 63 62 75 56 53
++75 56 53 75 56 53 75 56 53 75 56 53 63 55 45 75 56 53 65 55 54 75 56 53
++63 55 51 63 55 45 75 56 53 63 55 45 63 55 45 63 55 51 63 55 51 63 55 45
++65 55 54 63 55 45 65 55 54 63 55 45 62 47 47 60 49 42 76 44 53 60 49 42
++75 56 53 63 55 45 63 55 45 75 56 53 63 55 45 75 56 53 75 56 53 75 56 53
++75 56 53 63 55 45 75 56 53 63 55 45 63 55 45 75 56 53 63 55 45 75 56 53
++63 55 45 62 47 47 60 49 42 60 49 42 60 49 42 60 49 42 60 49 42 53 46 48
++51 49 42 60 49 42 51 49 42 53 46 48 55 55 48 53 46 48 60 49 42 53 46 48
++62 47 47 63 55 51 63 55 51 65 55 54 65 55 54 65 55 54 65 55 54 75 63 62
++65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 63 55 51 63 55 51 63 55 51
++63 55 51 63 55 51 63 55 51 59 55 55 63 55 51 63 55 51 59 55 55 63 55 51
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 75 72 67 65 63 61 75 72 67
++75 72 67 75 72 67 75 72 67 75 81 76 88 83 74 75 81 76 88 83 74 99 93 84
++88 83 88 99 93 84 90 98 89 99 93 84 99 93 84 99 93 84 90 98 89 99 93 84
++99 93 84 99 93 84 99 93 84 88 83 74 88 83 74 101 83 74 88 69 84 101 83 74
++88 83 74 88 83 74 88 69 84 101 83 74 101 83 74 88 69 84 101 83 74 101 83 74
++101 83 74 101 83 74 88 83 88 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74
++88 83 74 88 66 70 101 83 74 88 83 74 88 83 74 88 66 70 88 83 74 88 66 70
++88 83 74 88 66 70 75 81 76 88 66 70 88 83 74 75 72 67 88 73 62 75 72 67
++75 63 62 75 73 58 75 63 62 75 63 62 75 73 58 75 63 62 65 63 61 75 56 53
++65 55 54 65 57 61 55 55 48 42 38 42 36 35 37 31 35 35 35 46 43 45 57 61
++42 47 42 23 30 35 22 25 24 22 25 24 26 30 28 26 24 32 26 30 28 26 24 32
++22 25 24 22 25 24 22 25 24 26 24 32 26 30 28 26 30 28 30 30 34 26 30 28
++30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 26 30 28 30 30 34 30 30 34
++30 30 34 30 30 34 26 30 28 30 30 34 26 30 28 30 30 34 30 30 34 26 30 28
++22 25 24 22 23 31 15 22 17 23 20 24 12 18 20 14 16 17 14 16 17 15 22 17
++23 20 24 25 30 29 36 35 37 42 41 42 43 42 50 48 50 48 43 55 48 43 42 50
++34 40 43 34 40 43 35 47 50 48 50 48 43 42 50 45 57 61 53 63 61 53 63 61
++54 57 61 48 50 48 34 40 43 28 30 35 25 30 29 28 35 38 43 42 50 45 57 61
++54 57 61 35 47 50 23 30 35 25 30 29 34 40 43 42 41 42 33 39 38 22 23 31
++26 24 32 30 30 34 37 35 43 30 30 34 23 20 24 3 4 9 75 81 82 185 202 202
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 246 237 247
++246 237 247 246 237 247 246 237 247 246 237 247 246 237 247 246 237 247 246 237 247 246 237 247
++246 237 247 251 251 247 246 237 247 251 251 247 251 251 247 246 237 247 251 251 247 246 237 247
++246 237 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 235 238 247 231 239 247
++231 239 247 231 239 247 231 239 247 231 239 247 240 251 247 240 251 247 231 239 247 231 239 247
++231 239 247 231 239 247 240 251 247 240 251 247 251 251 247 240 251 247 235 238 247 231 239 247
++231 239 247 208 221 247 226 221 247 201 216 228 208 221 247 226 221 247 225 222 201 166 156 164
++168 146 127 138 126 108 163 117 123 146 150 115 163 117 123 168 146 127 168 102 88 177 171 115
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 201 146 124 177 171 115 168 146 127
++168 146 127 168 146 127 138 126 108 177 171 115 168 102 88 146 150 115 168 146 127 146 150 115
++168 102 88 163 117 123 157 148 53 138 126 108 138 126 108 138 126 108 168 102 88 138 126 108
++168 102 88 117 114 76 117 99 86 117 114 76 117 99 86 168 102 88 117 114 76 168 102 88
++117 114 76 168 102 88 117 114 76 168 102 88 117 114 76 117 114 76 168 102 88 117 114 76
++117 114 76 168 102 88 117 114 76 117 114 76 117 114 76 117 112 45 168 102 88 117 114 76
++117 112 45 120 63 71 117 112 45 120 63 71 117 112 45 168 102 88 120 63 71 168 102 88
++117 112 45 117 99 86 117 112 45 168 102 88 117 114 76 168 102 88 157 148 53 138 126 108
++138 126 108 168 102 88 138 126 108 168 102 88 138 102 108 117 112 45 88 73 62 76 46 20
++52 30 15 34 30 15 23 10 10 23 10 10 15 17 7 26 12 13 26 25 15 26 25 15
++22 25 24 22 25 24 26 25 15 26 30 28 33 30 30 33 30 30 33 30 30 32 39 24
++36 35 37 48 50 48 55 55 48 59 57 61 64 70 48 59 55 55 59 55 55 55 55 48
++55 55 48 59 55 55 50 61 48 59 55 55 59 55 55 55 55 48 54 57 61 52 55 48
++59 55 55 52 55 48 52 55 48 59 55 55 48 50 48 48 50 48 48 50 48 48 50 48
++42 47 42 42 47 42 43 42 50 42 47 42 43 42 50 35 46 43 34 40 43 33 39 38
++34 40 43 34 40 43 34 40 43 33 39 38 34 40 43 28 35 38 28 35 38 33 39 38
++28 35 38 33 39 38 28 35 38 37 35 43 36 35 37 36 35 37 37 35 43 36 35 37
++31 35 35 32 39 24 36 35 37 31 35 35 36 35 37 36 35 37 33 30 30 33 30 30
++55 39 18 88 73 62 163 117 123 168 146 127 177 169 143 177 169 143 177 169 143 168 146 127
++166 156 164 208 215 180 201 216 228 233 241 227 225 222 201 201 216 228 233 241 227 221 238 247
++240 251 247 231 239 247 221 238 247 233 241 227 233 241 227 201 216 228 201 216 228 233 241 227
++201 216 228 233 241 227 221 238 247 233 241 227 221 238 247 233 241 227 233 241 227 201 216 228
++201 216 228 185 202 202 201 216 228 233 241 227 201 216 228 201 216 228 233 241 227 201 216 228
++201 216 228 201 216 228 233 241 227 201 216 228 233 241 227 201 216 228 233 241 227 201 216 228
++201 216 228 221 238 247 221 238 247 201 216 228 233 241 227 201 216 228 221 238 247 231 239 247
++221 238 247 225 222 201 201 216 228 201 216 228 166 174 181 145 140 145 111 119 127 166 156 164
++185 202 202 225 222 201 208 215 180 166 174 181 150 144 154 112 123 108 94 105 108 126 147 144
++166 180 164 188 180 202 166 174 181 189 165 168 166 180 164 189 165 168 185 202 202 166 174 181
++126 147 144 75 81 90 43 55 48 52 55 48 54 57 61 59 55 55 54 57 61 59 55 55
++59 55 55 59 55 55 63 55 51 55 55 48 63 55 51 63 55 51 64 70 48 63 55 51
++65 63 61 63 55 51 65 63 61 63 55 51 59 55 55 63 55 51 63 55 51 63 55 51
++63 55 51 62 47 47 55 55 48 60 49 42 60 49 42 47 44 42 55 39 37 47 39 42
++47 47 21 36 35 37 42 38 42 47 47 21 36 35 37 32 39 24 53 35 37 33 30 30
++36 35 37 36 35 37 36 35 37 42 41 42 51 49 42 48 50 48 53 46 48 52 55 48
++55 55 48 59 55 55 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 75 72 67 65 63 61 65 63 61 59 69 70
++65 63 61 59 57 61 59 55 55 59 55 55 55 55 48 52 55 48 48 50 48 53 46 48
++55 55 48 53 46 48 55 55 48 53 46 48 55 55 48 53 46 48 51 49 42 53 46 48
++51 49 42 51 49 42 53 46 48 51 49 42 55 55 48 62 47 47 53 46 48 60 49 42
++55 39 37 53 46 48 60 49 42 53 46 48 55 39 37 47 44 42 55 39 37 47 39 42
++55 39 37 47 44 42 42 38 42 55 39 37 36 35 37 36 35 37 36 35 37 53 35 17
++33 30 30 33 30 30 33 30 30 36 35 37 36 35 37 53 35 37 47 44 42 47 44 42
++
++52 30 35 76 18 19 59 36 42 88 30 18 76 44 53 88 30 18 88 30 18 102 33 26
++88 30 18 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 122 49 24
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 120 63 71 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 88 30 18 102 33 26 88 30 18 102 33 26 76 18 19
++88 30 18 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16
++76 18 19 76 18 19 76 18 19 49 13 16 76 18 19 76 18 19 76 18 19 102 33 26
++76 18 19 102 33 26 102 33 26 167 63 71 122 49 24 120 63 71 120 63 71 167 63 71
++120 63 71 120 63 71 120 63 71 120 63 71 120 63 71 120 63 71 120 63 71 120 63 71
++88 44 51 101 60 73 88 44 51 76 44 53 76 46 20 53 35 37 55 39 37 55 39 18
++55 39 37 55 39 37 55 39 37 55 39 37 55 39 37 55 39 37 62 47 47 59 36 42
++76 46 20 62 47 47 75 56 53 75 56 53 75 56 53 75 56 53 88 73 62 75 56 53
++88 73 62 75 56 53 88 73 62 75 56 53 88 73 62 75 73 58 75 56 53 88 73 62
++75 56 53 75 63 62 65 55 54 65 55 54 65 55 54 62 47 47 62 47 47 53 46 48
++60 49 42 53 46 48 51 49 42 51 49 42 51 49 42 60 49 42 53 46 48 51 49 42
++53 46 48 53 46 48 48 50 48 48 50 48 48 50 48 48 44 48 48 50 48 53 46 48
++51 49 42 62 47 47 53 46 48 63 55 45 63 55 51 65 55 54 65 63 61 75 56 53
++75 63 62 75 63 62 75 56 53 75 63 62 75 63 62 75 56 53 75 63 62 75 56 53
++65 55 54 75 56 53 65 55 54 65 55 54 75 56 53 75 56 53 63 55 45 75 56 53
++63 55 45 63 55 45 62 47 47 63 55 45 63 55 51 63 55 51 63 55 51 63 55 45
++63 55 45 63 55 45 63 55 45 62 47 47 63 55 45 62 47 47 63 55 45 62 47 47
++63 55 45 76 44 53 63 55 45 63 55 45 75 56 53 63 55 45 75 56 53 63 55 45
++63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 63 55 45 60 49 42
++60 49 42 62 47 47 60 49 42 55 55 48 51 49 42 51 49 42 51 49 42 51 49 42
++51 49 42 53 46 48 51 49 42 51 49 42 51 49 42 53 46 48 62 47 47 62 47 47
++55 55 48 63 55 51 63 55 51 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54
++65 55 54 65 55 54 65 55 54 65 55 54 63 55 51 63 55 51 63 55 51 63 55 51
++63 55 51 63 55 51 65 55 54 63 55 51 59 55 55 63 55 51 59 55 55 65 63 61
++65 55 54 65 63 61 75 73 58 65 63 61 75 72 67 65 63 61 75 72 67 75 72 67
++59 69 70 75 81 76 75 81 76 75 81 76 88 69 84 75 81 76 88 83 88 88 83 88
++90 98 89 88 83 88 99 93 84 90 98 89 88 83 88 99 93 84 90 98 89 99 93 84
++88 83 88 99 93 84 88 83 74 99 93 84 88 83 74 88 83 74 88 83 74 88 83 74
++88 66 70 88 83 74 88 83 74 88 83 74 88 83 74 101 83 74 101 83 74 88 83 88
++101 83 74 101 83 74 101 83 74 88 69 84 101 83 74 88 69 84 101 83 74 88 69 84
++101 83 74 88 83 74 88 66 70 88 83 74 88 66 70 88 83 74 88 66 70 88 83 74
++88 66 70 75 72 67 88 83 74 75 72 67 75 72 67 75 72 67 75 72 67 88 73 62
++75 63 62 75 63 62 75 63 62 75 56 53 75 63 62 65 63 61 75 56 53 65 63 61
++59 57 61 59 55 55 48 44 48 36 35 37 31 35 35 42 41 42 43 42 50 33 39 38
++31 35 35 25 30 29 25 30 29 22 25 24 25 30 29 25 30 29 26 24 32 22 25 24
++23 20 24 23 20 24 22 25 24 26 24 32 33 30 30 30 30 34 33 30 32 30 30 34
++30 30 34 26 30 28 30 30 34 31 35 35 31 35 35 30 30 34 30 30 34 30 30 34
++30 30 34 30 30 34 30 30 34 26 30 28 30 30 34 30 30 34 26 30 28 22 25 24
++23 20 24 23 18 22 14 16 17 14 16 17 14 16 17 7 12 13 7 12 13 13 4 7
++14 16 17 14 16 17 23 20 24 25 30 29 36 35 37 43 42 50 45 57 61 48 50 48
++42 47 42 35 47 50 43 42 50 45 57 61 35 47 50 48 50 48 45 57 61 53 63 61
++53 63 61 45 57 61 34 40 43 23 30 35 28 35 38 33 39 38 43 55 48 54 57 61
++45 57 61 43 42 50 23 30 35 28 35 38 35 47 50 48 50 48 43 42 50 35 46 43
++28 30 35 22 23 31 31 35 35 33 39 38 31 35 35 7 10 17 42 41 42 111 119 127
++232 215 228 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 240 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 235 238 247 231 239 247 221 238 247
++221 238 247 231 239 247 240 251 247 240 251 247 231 239 247 231 239 247 221 238 247 231 239 247
++240 251 247 240 251 247 251 251 247 240 251 247 240 251 247 240 251 247 231 239 247 221 238 247
++226 221 247 221 238 247 208 221 247 208 221 247 208 221 247 231 239 247 194 199 226 189 165 168
++168 146 127 138 126 108 168 146 127 168 146 127 168 102 88 177 171 115 168 146 127 168 146 127
++168 102 88 146 150 115 168 146 127 168 146 127 177 171 115 168 146 127 168 146 127 168 146 127
++168 102 88 146 150 115 168 146 127 163 117 123 177 171 115 163 117 123 146 150 115 168 102 88
++146 150 115 138 126 108 138 126 108 168 102 88 138 126 108 117 114 76 138 126 108 117 114 76
++117 114 76 168 102 88 117 114 76 168 102 88 117 114 76 168 102 88 117 114 76 168 102 88
++117 114 76 117 114 76 117 114 76 117 114 76 117 114 76 168 102 88 117 114 76 117 114 76
++168 102 88 117 112 45 117 99 86 117 112 45 117 99 86 117 99 86 117 112 45 120 63 71
++88 73 62 101 74 26 101 83 74 101 83 74 117 99 86 117 112 45 117 99 86 117 112 45
++117 99 86 167 63 71 117 114 76 117 114 76 168 102 88 138 126 108 138 126 108 138 126 108
++138 126 108 117 114 76 101 83 74 75 73 58 63 55 45 53 35 17 26 25 15 26 25 15
++26 12 13 22 24 13 22 24 13 22 24 13 22 24 13 22 25 24 23 20 24 23 20 24
++22 25 24 23 20 24 22 25 24 33 30 30 33 30 30 33 30 30 33 30 30 31 35 35
++36 35 37 47 44 42 52 55 48 59 57 61 53 63 61 59 55 55 50 61 48 54 57 61
++59 55 55 53 63 61 59 55 55 50 61 48 54 57 61 50 61 48 55 55 48 52 55 48
++54 57 61 52 55 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 42 47 42
++43 42 50 42 47 42 35 46 43 35 46 43 35 46 43 42 41 42 34 40 43 34 40 43
++34 40 43 33 39 38 33 39 38 28 35 38 37 35 43 33 39 38 34 40 43 31 35 35
++28 35 38 36 35 37 36 35 37 28 35 38 36 35 37 28 35 38 36 35 37 36 35 37
++31 35 35 33 30 36 31 35 35 33 30 30 31 35 35 33 30 30 33 30 30 32 39 24
++47 39 42 101 83 74 168 146 127 168 146 127 217 168 156 177 169 143 168 146 127 166 156 164
++166 180 164 185 202 202 225 222 201 201 216 228 201 216 228 233 241 227 201 216 228 225 222 201
++221 238 247 233 241 227 233 241 227 201 216 228 201 216 228 233 241 227 201 216 228 201 216 228
++233 241 227 201 216 228 201 216 228 233 241 227 201 216 228 201 216 228 201 216 228 185 202 202
++166 180 164 185 202 202 201 216 228 201 216 228 201 216 228 225 222 201 201 216 228 201 216 228
++225 222 201 201 216 228 201 216 228 201 216 228 201 216 228 201 216 228 201 216 228 225 222 201
++201 216 228 201 216 228 225 222 201 201 216 228 201 216 228 201 216 228 233 241 227 221 238 247
++201 216 228 201 216 228 201 216 228 185 202 202 148 160 159 112 123 108 138 126 108 189 165 168
++189 165 168 208 215 180 222 171 182 166 174 181 146 162 145 112 123 108 112 123 108 146 151 137
++189 165 168 208 215 180 189 165 168 166 180 164 189 165 168 166 180 164 166 174 181 166 180 164
++145 140 145 75 81 82 45 57 61 45 57 61 59 55 55 52 55 48 52 55 48 55 55 48
++59 55 55 55 55 48 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 65 55 54
++65 63 61 63 55 51 65 63 61 64 70 48 63 55 51 65 55 54 65 55 54 65 55 54
++63 55 51 63 55 51 62 47 47 53 46 48 53 46 48 51 49 42 47 44 42 47 44 42
++47 39 42 36 35 37 53 35 37 33 30 30 36 35 37 53 35 37 36 35 37 32 39 24
++36 35 37 32 39 24 36 35 37 36 35 37 47 44 42 47 44 42 52 55 48 52 55 48
++59 55 55 59 55 55 59 57 61 59 57 61 59 55 55 59 57 61 65 63 61 59 57 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 59 57 61
++65 63 61 59 57 61 59 55 55 48 50 48 53 46 48 48 50 48 51 49 42 51 49 42
++53 46 48 51 49 42 53 46 48 51 49 42 53 46 48 51 49 42 51 49 42 47 44 42
++51 49 42 53 46 48 51 49 42 53 46 48 60 49 42 55 55 48 62 47 47 55 55 48
++53 46 48 60 49 42 60 49 42 60 49 42 53 46 48 51 49 42 55 39 37 47 44 42
++47 44 42 47 39 42 36 35 37 47 47 21 36 35 37 52 30 35 32 39 24 36 35 37
++33 30 30 53 35 17 36 35 37 33 30 30 47 47 21 42 41 42 47 44 42 55 39 37
++
++76 18 19 59 36 42 88 30 18 59 36 42 76 18 19 88 30 18 59 36 42 102 33 26
++88 44 51 102 33 26 102 33 26 102 33 26 122 49 24 102 33 26 122 49 24 102 33 26
++120 63 71 102 33 26 120 63 71 102 33 26 167 63 71 102 33 26 102 33 26 120 63 71
++102 33 26 122 49 24 120 63 71 102 33 26 120 63 71 102 33 26 102 33 26 102 33 26
++102 33 26 88 30 18 102 33 26 102 33 26 76 18 19 102 33 26 76 18 19 102 33 26
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16 76 18 19
++76 18 19 49 13 16 76 18 19 76 18 19 49 13 16 76 18 19 76 18 19 76 18 19
++102 33 26 102 33 26 102 33 26 102 33 26 120 63 71 167 63 71 120 63 71 101 74 26
++167 63 71 120 63 71 167 63 71 120 63 71 120 63 71 120 63 71 120 63 71 120 63 71
++120 63 71 101 60 73 88 44 51 88 44 51 59 36 42 53 35 37 53 35 37 53 35 37
++53 35 37 53 35 37 55 39 37 55 39 37 60 49 42 59 36 42 59 36 42 60 49 42
++62 47 47 60 49 42 63 55 45 63 55 45 75 56 53 75 56 53 75 56 53 88 73 62
++75 56 53 88 73 62 88 73 62 88 73 62 75 56 53 88 73 62 88 73 62 75 56 53
++75 63 62 75 63 62 75 56 53 75 56 53 65 55 54 63 55 51 63 55 51 62 47 47
++62 47 47 53 46 48 62 47 47 53 46 48 51 49 42 53 46 48 55 55 48 53 46 48
++53 46 48 48 50 48 53 46 48 48 50 48 53 46 48 51 49 42 48 50 48 51 49 42
++53 46 48 53 46 48 55 55 48 63 55 45 63 55 51 63 55 51 65 55 54 75 56 53
++65 63 61 75 56 53 75 63 62 75 63 62 75 63 62 75 63 62 75 63 62 75 56 53
++75 56 53 65 55 54 75 56 53 65 55 54 75 56 53 65 55 54 75 56 53 63 55 51
++63 55 45 63 55 51 63 55 45 62 47 47 55 55 48 63 55 51 62 47 47 55 55 48
++62 47 47 55 55 48 60 49 42 62 47 47 60 49 42 62 47 47 60 49 42 62 47 47
++60 49 42 60 49 42 60 49 42 63 55 45 62 47 47 63 55 45 63 55 45 63 55 45
++63 55 45 63 55 45 63 55 45 62 47 47 60 49 42 60 49 42 60 49 42 60 49 42
++60 49 42 60 49 42 60 49 42 60 49 42 51 49 42 51 49 42 51 49 42 47 44 42
++51 49 42 47 44 42 51 49 42 51 49 42 51 49 42 53 46 48 51 49 42 62 47 47
++62 47 47 62 47 47 63 55 51 65 55 54 65 55 54 65 63 61 65 55 54 65 55 54
++65 63 61 65 55 54 65 55 54 65 55 54 65 55 54 63 55 51 63 55 51 63 55 51
++63 55 51 65 55 54 63 55 51 59 55 55 63 55 51 63 55 51 65 63 61 63 55 51
++65 63 61 65 63 61 65 63 61 75 72 67 65 63 61 75 72 67 59 69 70 75 81 76
++75 72 67 75 72 67 75 72 67 75 81 76 75 81 76 75 81 76 88 83 74 88 83 74
++88 83 88 99 93 84 88 83 88 99 93 84 90 98 89 99 93 84 95 91 100 99 93 84
++99 93 84 90 98 89 88 83 74 99 93 84 88 83 74 88 83 74 88 83 74 88 83 74
++88 83 74 88 83 74 88 83 74 88 83 88 101 83 74 88 83 88 101 83 74 99 93 84
++101 83 74 99 93 84 88 83 88 101 83 74 101 83 74 101 83 74 88 83 74 101 83 74
++88 83 74 88 66 70 88 83 74 88 66 70 88 83 74 88 83 74 88 66 70 75 72 67
++75 72 67 88 66 70 75 72 67 88 66 70 75 72 67 75 73 58 75 63 62 75 73 58
++75 63 62 75 63 62 75 73 58 65 63 61 75 56 53 65 55 54 65 63 61 65 63 61
++59 57 61 48 50 48 36 35 37 31 35 35 42 41 42 35 46 43 33 39 38 25 30 29
++25 30 29 28 30 35 25 30 29 22 23 31 25 30 29 26 30 28 26 24 32 22 25 24
++23 20 24 22 25 24 26 24 32 26 30 28 30 30 34 31 35 35 30 30 34 26 30 28
++30 30 34 26 30 28 30 30 34 30 30 34 31 35 35 30 30 34 30 30 34 31 35 35
++30 30 34 30 30 34 26 30 28 26 24 32 26 30 28 26 30 28 22 23 31 23 20 24
++14 16 17 14 16 17 14 16 17 7 12 13 3 4 9 13 4 7 3 4 9 3 4 9
++3 4 9 3 4 9 7 12 13 7 12 13 14 16 17 33 30 30 34 40 43 43 55 48
++48 50 48 45 57 61 48 50 48 54 57 61 43 55 48 43 55 48 54 57 61 59 69 70
++59 69 70 45 57 61 35 46 43 31 35 35 33 39 38 35 47 50 45 57 61 53 63 61
++45 57 61 43 42 50 34 40 43 48 50 48 53 63 61 53 63 61 54 57 61 54 57 61
++34 40 43 22 25 24 22 23 31 31 35 35 34 40 43 28 35 38 25 30 29 36 35 37
++94 105 108 188 180 202 235 238 247 240 251 247 232 215 228 221 238 247 231 239 247 251 251 247
++251 251 247 240 251 247 235 238 247 231 239 247 231 239 247 235 238 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 240 251 247 235 238 247
++240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 251 251 247 240 251 247 251 251 247
++240 251 247 251 251 247 251 251 247 240 251 247 246 237 247 240 251 247 251 251 247 251 251 247
++251 251 247 240 251 247 251 251 247 240 251 247 240 251 247 231 239 247 231 239 247 231 239 247
++231 239 247 240 251 247 235 238 247 231 239 247 231 239 247 231 239 247 221 238 247 231 239 247
++235 238 247 240 251 247 251 251 247 251 251 247 240 251 247 235 238 247 226 221 247 221 238 247
++231 239 247 231 239 247 208 221 247 201 216 228 208 221 247 235 238 247 201 216 228 189 165 168
++168 146 127 138 126 108 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127
++146 150 115 201 146 124 168 146 127 168 146 127 201 146 124 168 146 127 201 146 124 146 150 115
++168 146 127 146 150 115 168 102 88 168 146 127 138 126 108 177 171 115 168 102 88 146 150 115
++138 126 108 168 102 88 138 126 108 138 126 108 168 102 88 117 114 76 168 102 88 138 126 108
++168 102 88 117 127 86 168 102 88 117 114 76 168 102 88 117 114 76 117 127 86 168 102 88
++117 114 76 117 99 86 168 102 88 117 114 76 120 63 71 117 112 45 120 63 71 117 112 45
++120 63 71 117 112 45 120 63 71 117 112 45 120 63 71 117 112 45 120 63 71 88 73 62
++101 74 26 88 73 62 101 74 26 120 63 71 117 112 45 120 63 71 117 112 45 120 63 71
++117 112 45 117 99 86 117 112 45 168 102 88 117 114 76 117 114 76 117 114 76 117 114 76
++88 73 62 60 49 42 47 47 21 34 30 15 22 24 13 17 12 17 7 12 13 7 12 13
++14 16 17 15 22 17 23 18 22 15 22 17 23 18 22 23 20 24 22 25 24 22 25 24
++23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 26 30 28 33 30 30 33 30 30
++33 30 32 36 35 37 48 50 48 59 55 55 59 55 55 53 63 61 59 55 55 54 57 61
++50 61 48 59 55 55 54 57 61 52 55 48 50 61 48 52 55 48 54 57 61 59 55 55
++52 55 48 52 55 48 52 55 48 48 50 48 48 50 48 48 50 48 47 49 42 43 42 50
++42 47 42 42 47 42 43 42 50 35 46 43 42 41 42 35 46 43 34 40 43 34 40 43
++33 39 38 34 40 43 28 35 38 34 40 43 33 39 38 28 35 38 36 35 37 28 35 38
++36 35 37 28 35 38 36 35 37 28 35 38 36 35 37 33 30 36 36 35 37 33 30 36
++31 35 35 30 30 34 31 35 35 33 30 30 31 35 35 33 30 32 33 30 30 29 35 19
++47 44 42 117 99 86 163 117 123 168 146 127 177 169 143 177 169 143 168 146 127 146 162 145
++189 165 168 185 202 202 201 216 228 225 222 201 201 216 228 225 222 201 201 216 228 201 216 228
++225 222 201 201 216 228 201 216 228 201 216 228 233 241 227 201 216 228 201 216 228 233 241 227
++201 216 228 201 216 228 225 222 201 201 216 228 233 241 227 201 216 228 225 222 201 166 174 181
++166 174 181 166 180 164 185 202 202 201 216 228 225 222 201 201 216 228 201 216 228 225 222 201
++201 216 228 201 216 228 225 222 201 201 216 228 225 222 201 201 216 228 225 222 201 201 216 228
++201 216 228 185 202 202 201 216 228 185 202 202 233 241 227 201 216 228 233 241 227 201 216 228
++201 216 228 225 222 201 201 216 228 166 174 181 138 126 108 111 119 127 148 160 159 189 165 168
++177 169 143 217 168 156 189 165 168 166 180 164 150 144 154 112 123 108 145 140 145 166 174 181
++208 215 180 188 180 202 208 215 180 189 165 168 166 180 164 150 171 159 166 156 164 148 160 159
++111 119 127 75 81 82 43 55 48 48 50 48 48 50 48 54 57 61 52 55 48 59 55 55
++55 55 48 59 55 55 55 55 48 59 55 55 55 55 48 55 55 48 63 55 51 63 55 51
++65 63 61 65 55 54 65 63 61 65 55 54 65 63 61 65 55 54 65 55 54 65 55 54
++63 55 51 63 55 51 62 47 47 60 49 42 53 46 48 55 39 37 47 44 42 55 39 37
++36 35 37 53 35 37 32 39 24 52 30 35 36 35 37 32 39 24 53 35 37 36 35 37
++36 35 37 53 35 17 36 35 37 32 39 24 36 35 37 42 41 42 48 44 48 48 50 48
++48 50 48 52 55 48 59 55 55 50 61 48 59 55 55 59 55 55 59 55 55 59 55 55
++59 57 61 59 55 55 59 57 61 59 57 61 59 55 55 59 57 61 59 57 61 59 55 55
++54 57 61 59 55 55 52 55 48 48 50 48 51 49 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 47 44 42 55 39 37 51 49 42
++47 44 42 51 49 42 51 49 42 60 49 42 53 46 48 62 47 47 55 55 48 62 47 47
++62 47 47 55 55 48 53 46 48 62 47 47 60 49 42 53 46 48 51 49 42 55 39 37
++47 44 42 55 39 37 47 44 42 42 41 42 53 35 37 36 35 37 33 30 30 52 30 35
++33 30 30 33 30 32 32 39 24 52 30 35 36 35 37 53 35 37 42 41 42 47 44 42
++
++53 35 17 76 18 19 59 36 42 88 30 18 76 46 20 88 30 18 88 44 51 88 30 18
++102 33 26 102 33 26 102 33 26 88 44 51 122 49 24 102 33 26 120 63 71 102 33 26
++122 49 24 102 33 26 122 49 24 102 33 26 102 33 26 102 33 26 122 49 24 102 33 26
++167 63 71 102 33 26 102 33 26 122 49 24 102 33 26 122 49 24 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 76 18 19 102 33 26 102 33 26 88 30 18 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 49 13 16 76 18 19 76 18 19 49 13 16
++76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 102 33 26 102 33 26 120 63 71 102 33 26 120 63 71 122 49 24 167 63 71
++120 63 71 120 63 71 120 63 71 120 63 71 120 63 71 122 49 24 120 63 71 120 63 71
++120 63 71 88 44 51 88 73 62 88 44 51 76 44 53 55 39 18 52 30 35 52 30 35
++55 39 18 53 35 37 53 35 37 55 39 37 55 39 37 59 36 42 62 47 47 60 49 42
++76 46 20 76 44 53 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 88 73 62
++75 56 53 88 73 62 75 56 53 88 73 62 75 73 58 88 73 62 75 56 53 88 73 62
++75 63 62 75 56 53 75 63 62 65 55 54 75 56 53 65 55 54 65 55 54 63 55 51
++63 55 51 55 55 48 53 46 48 60 49 42 53 46 48 55 55 48 53 46 48 55 55 48
++53 46 48 48 50 48 48 50 48 53 46 48 48 50 48 48 50 48 48 44 48 48 50 48
++51 49 42 53 46 48 62 47 47 55 55 48 63 55 45 63 55 51 65 55 54 75 56 53
++65 63 61 75 56 53 64 70 48 75 63 62 75 56 53 75 63 62 75 56 53 75 56 53
++65 55 54 65 55 54 65 55 54 75 56 53 65 55 54 75 56 53 63 55 51 75 56 53
++63 55 51 63 55 51 63 55 51 63 55 45 62 47 47 53 46 48 55 55 48 60 49 42
++55 55 48 60 49 42 53 46 48 60 49 42 60 49 42 60 49 42 60 49 42 62 47 47
++60 49 42 60 49 42 60 49 42 60 49 42 62 47 47 63 55 45 62 47 47 60 49 42
++60 49 42 60 49 42 60 49 42 62 47 47 60 49 42 60 49 42 60 49 42 60 49 42
++60 49 42 53 46 48 60 49 42 47 44 42 47 44 42 55 39 37 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 51 49 42 51 49 42 53 46 48 51 49 42 53 46 48
++62 47 47 55 55 48 63 55 51 63 55 51 65 55 54 65 55 54 65 55 54 65 55 54
++63 55 51 65 55 54 65 55 54 65 55 54 63 55 51 63 55 51 63 55 51 63 55 51
++63 55 51 63 55 51 65 55 54 63 55 51 63 55 51 59 55 55 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 59 69 70 75 72 67 75 72 67 75 72 67
++59 69 70 75 81 76 75 81 76 75 81 76 75 81 76 88 83 74 88 83 88 78 98 90
++88 83 74 88 83 88 99 93 84 95 91 100 99 93 84 90 98 89 99 93 84 90 98 89
++88 83 88 99 93 84 99 93 84 88 83 74 99 93 84 88 83 74 88 83 88 88 83 74
++88 83 74 88 83 74 88 83 88 88 83 74 99 93 84 101 83 74 99 93 84 99 93 84
++88 83 88 101 83 74 101 83 74 88 83 88 101 83 74 101 83 74 101 83 74 88 83 74
++88 69 84 101 83 74 88 83 74 88 66 70 88 73 62 88 66 70 75 81 69 88 66 70
++75 72 67 75 72 67 75 72 67 75 63 62 75 63 62 75 73 58 75 63 62 75 63 62
++75 56 53 65 63 61 75 56 53 65 63 61 64 70 48 75 63 62 65 63 61 63 55 51
++52 55 48 42 41 42 36 35 37 34 40 43 34 40 43 31 35 35 22 25 24 25 30 29
++30 30 34 31 35 35 25 30 29 25 30 29 25 30 29 26 24 32 22 25 24 22 25 24
++22 23 31 26 30 28 25 30 29 30 30 34 26 30 28 33 30 32 30 30 34 30 30 34
++26 30 28 30 30 34 30 30 34 26 30 28 30 30 34 31 35 35 30 30 34 30 30 34
++26 30 28 25 30 29 26 24 32 26 30 28 23 20 24 22 25 24 23 20 24 14 16 17
++14 16 17 14 16 17 7 12 13 13 4 7 7 12 13 3 4 9 3 3 1 3 4 9
++3 3 1 3 3 1 3 4 9 3 3 1 3 4 9 14 16 17 22 25 24 28 30 35
++34 40 43 42 41 42 43 42 50 48 50 48 43 42 50 45 57 61 52 55 48 53 63 61
++53 63 61 54 57 61 43 55 48 43 55 48 35 46 43 43 55 48 54 57 61 54 57 61
++45 57 61 48 50 48 48 50 48 45 57 61 65 63 61 53 63 61 53 63 61 59 69 70
++43 42 50 23 30 35 22 25 24 22 23 31 33 39 38 43 42 50 33 39 38 12 18 20
++22 25 24 88 83 88 166 180 164 201 216 228 232 215 228 185 202 202 201 216 228 232 215 228
++231 239 247 240 251 247 235 238 247 231 239 247 233 241 227 231 239 247 235 238 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 240 251 247 240 251 247 251 251 247
++240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++240 251 247 251 251 247 240 251 247 235 238 247 240 251 247 235 238 247 240 251 247 240 251 247
++240 251 247 235 238 247 240 251 247 235 238 247 231 239 247 221 238 247 231 239 247 231 239 247
++240 251 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247
++240 251 247 240 251 247 251 251 247 240 251 247 240 251 247 231 239 247 226 221 247 221 238 247
++221 238 247 226 221 247 208 221 247 208 221 247 208 221 247 235 238 247 201 216 228 189 165 168
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 102 88
++177 171 115 163 117 123 177 171 115 168 146 127 177 171 115 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 146 150 115 168 102 88 168 146 127 138 126 108 168 102 88
++157 148 53 138 126 108 138 126 108 157 148 53 138 126 108 138 126 108 168 102 88 117 127 86
++138 126 108 138 126 108 168 102 88 138 126 108 138 126 108 168 102 88 117 114 76 117 114 76
++168 102 88 117 114 76 117 112 45 120 63 71 117 112 45 101 83 74 117 112 45 120 63 71
++98 106 55 120 63 71 101 74 26 101 83 74 120 63 71 98 106 55 101 74 26 88 73 31
++88 73 31 88 44 51 88 73 31 88 73 62 101 74 26 101 83 74 120 63 71 98 106 55
++120 63 71 117 112 45 120 63 71 101 83 74 117 99 86 120 63 71 88 73 31 76 46 20
++52 30 15 15 17 7 23 10 10 13 4 7 15 17 7 26 12 13 14 16 17 22 24 13
++14 16 17 23 18 22 26 25 15 23 18 22 15 22 17 23 18 22 23 20 24 22 25 24
++23 18 22 22 25 24 23 20 24 26 30 28 33 30 30 22 25 24 33 30 30 33 30 30
++31 35 35 36 35 37 47 44 42 48 50 48 54 57 61 59 55 55 59 55 55 54 57 61
++59 55 55 54 57 61 52 55 48 52 55 48 54 57 61 52 55 48 52 55 48 54 57 61
++52 55 48 48 50 48 48 50 48 48 50 48 48 50 48 47 49 42 42 47 42 42 47 42
++43 42 50 42 47 42 42 47 42 34 40 43 35 46 43 34 40 43 34 40 43 33 39 38
++33 39 38 34 40 43 34 40 43 33 39 38 37 35 43 28 35 38 28 35 38 28 35 38
++31 35 35 28 35 38 36 35 37 36 35 37 28 35 38 36 35 37 33 30 36 36 35 37
++31 35 35 31 35 35 31 35 35 31 35 35 36 35 37 31 35 35 33 30 30 33 30 30
++51 49 42 117 99 86 163 117 123 201 146 124 168 146 127 177 169 143 168 146 127 168 146 127
++166 180 164 185 202 202 225 222 201 185 202 202 201 216 228 185 202 202 225 222 201 201 216 228
++201 216 228 225 222 201 201 216 228 225 222 201 201 216 228 201 216 228 225 222 201 201 216 228
++201 216 228 225 222 201 201 216 228 201 216 228 201 216 228 201 216 228 185 202 202 166 174 181
++166 180 164 166 174 181 166 174 181 185 202 202 201 216 228 233 241 227 201 216 228 201 216 228
++225 222 201 201 216 228 201 216 228 201 216 228 201 216 228 201 216 228 201 216 228 201 216 228
++208 215 180 201 216 228 185 202 202 201 216 228 201 216 228 201 216 228 201 216 228 185 202 202
++201 216 228 201 216 228 185 202 202 121 143 132 111 119 127 150 144 154 177 169 143 189 165 168
++177 169 143 177 169 143 189 165 168 166 180 164 177 169 143 146 151 137 166 156 164 189 165 168
++208 215 180 189 165 168 177 169 143 146 151 137 138 126 108 145 140 145 148 160 159 150 144 154
++111 119 127 60 81 83 48 50 48 45 57 61 48 50 48 59 55 55 48 50 48 52 55 48
++52 55 48 59 55 55 55 55 48 55 55 48 63 55 51 59 55 55 63 55 51 63 55 51
++65 63 61 65 55 54 65 63 61 63 55 51 65 63 61 63 55 51 65 55 54 65 55 54
++63 55 51 62 47 47 55 55 48 53 46 48 51 49 42 55 39 37 47 44 42 47 39 42
++42 41 42 32 39 24 36 35 37 33 30 30 36 35 37 36 35 37 32 39 24 36 35 37
++33 30 30 33 30 30 36 35 37 36 35 37 47 47 21 36 35 37 47 44 42 47 49 42
++48 50 48 48 50 48 55 55 48 59 55 55 55 55 48 55 55 48 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 55 55 48 55 55 48 55 55 48 52 55 48 52 55 48
++48 50 48 48 50 48 48 44 48 48 44 48 47 44 42 47 44 42 42 41 42 42 41 42
++47 39 42 47 39 42 47 39 42 47 44 42 47 44 42 47 44 42 51 49 42 47 44 42
++60 49 42 51 49 42 53 46 48 55 55 48 62 47 47 55 55 48 62 47 47 55 55 48
++62 47 47 55 55 48 62 47 47 62 47 47 62 47 47 62 47 47 55 55 48 51 49 42
++51 49 42 47 44 42 47 44 42 47 39 42 32 39 24 36 35 37 47 47 21 36 35 37
++33 30 30 52 30 35 33 30 30 42 41 42 36 35 37 55 39 37 42 41 42 55 39 37
++
++76 18 19 55 39 37 88 30 18 59 36 42 76 18 19 88 44 51 88 30 18 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 122 49 24 102 33 26 122 49 24
++102 33 26 167 63 71 102 33 26 102 33 26 167 63 71 102 33 26 120 63 71 122 49 24
++102 33 26 102 33 26 120 63 71 122 49 24 122 49 24 102 33 26 122 49 24 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 88 30 18 102 33 26 76 18 19 102 33 26
++88 30 18 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16 76 18 19 76 18 19
++49 13 16 76 18 19 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 76 18 19
++76 18 19 88 44 51 102 33 26 102 33 26 120 63 71 122 49 24 120 63 71 120 63 71
++120 63 71 120 63 71 120 63 71 167 63 71 120 63 71 120 63 71 120 63 71 120 63 71
++120 63 71 120 63 71 88 44 51 88 44 51 76 44 53 59 36 42 59 36 42 53 35 37
++52 30 35 53 35 37 55 39 18 55 39 37 59 36 42 60 49 42 59 36 42 62 47 47
++62 47 47 63 55 45 76 46 20 75 56 53 75 56 53 75 56 53 88 73 31 75 56 53
++75 56 53 75 73 58 75 56 53 88 73 62 75 56 53 88 73 62 88 73 62 75 63 62
++88 73 62 75 63 62 75 73 58 75 56 53 65 63 61 65 55 54 65 55 54 65 55 54
++63 55 51 63 55 51 62 47 47 53 46 48 55 55 48 60 49 42 53 46 48 53 46 48
++53 46 48 53 46 48 48 44 48 48 50 48 48 44 48 51 49 42 51 49 42 51 49 42
++53 46 48 51 49 42 53 46 48 51 49 42 55 55 48 63 55 45 63 55 45 65 55 54
++65 55 54 75 56 53 65 63 61 75 56 53 65 63 61 75 56 53 64 70 48 75 56 53
++65 55 54 65 55 54 63 55 45 63 55 51 75 56 53 75 56 53 65 55 54 65 55 54
++75 56 53 65 55 54 65 55 54 62 47 47 55 55 48 51 49 42 53 46 48 51 49 42
++53 46 48 53 46 48 60 49 42 53 46 48 60 49 42 59 36 42 59 36 42 60 49 42
++59 36 42 60 49 42 60 49 42 60 49 42 62 47 47 62 47 47 63 55 45 62 47 47
++63 55 45 62 47 47 60 49 42 60 49 42 60 49 42 51 49 42 60 49 42 51 49 42
++60 49 42 53 46 48 60 49 42 51 49 42 47 44 42 47 44 42 47 44 42 42 41 42
++42 41 42 42 41 42 42 41 42 47 44 42 47 44 42 51 49 42 51 49 42 51 49 42
++51 49 42 62 47 47 55 55 48 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51
++63 55 51 65 55 54 63 55 51 63 55 51 63 55 51 59 55 55 63 55 51 59 55 55
++63 55 51 59 55 55 65 55 54 59 55 55 65 63 61 65 55 54 65 63 61 65 55 54
++65 63 61 65 63 61 65 63 61 65 63 61 75 72 67 59 69 70 75 72 67 59 69 70
++75 72 67 59 69 70 75 81 76 88 69 84 75 81 82 75 81 82 88 83 88 88 83 74
++88 83 88 90 98 89 88 83 88 90 98 89 88 83 88 99 93 84 90 98 89 88 83 88
++99 93 84 90 98 89 88 83 88 99 93 84 88 83 74 88 83 88 88 83 74 88 83 88
++88 83 88 88 83 74 88 83 88 99 93 84 88 83 88 88 83 88 95 91 100 101 83 74
++99 93 84 99 93 84 99 93 84 101 83 74 88 83 88 101 83 74 88 83 88 101 83 74
++88 83 74 88 83 74 88 83 74 88 83 74 88 66 70 75 72 67 88 66 70 75 72 67
++75 72 67 75 72 67 75 72 67 75 63 62 75 72 67 75 63 62 75 63 62 65 63 61
++65 63 61 65 63 61 75 56 53 65 63 61 75 63 62 75 73 58 65 63 61 59 55 55
++42 47 42 34 40 43 34 40 43 42 41 42 36 35 37 28 30 35 26 24 32 30 30 34
++30 30 34 30 30 34 25 30 29 25 30 29 22 23 31 25 30 29 22 25 24 25 30 29
++25 30 29 28 30 35 31 35 35 28 30 35 28 30 35 31 35 35 28 30 35 30 30 34
++30 30 34 30 30 34 30 30 34 30 30 34 33 30 32 26 30 28 30 30 34 26 30 28
++26 30 28 26 24 32 22 25 24 22 25 24 23 20 24 14 16 17 14 16 17 14 16 17
++14 16 17 17 12 17 7 12 13 7 12 13 7 12 13 3 4 9 7 12 13 13 4 7
++3 4 9 3 4 9 3 4 9 3 4 9 3 4 9 3 3 1 3 3 1 7 12 13
++14 16 17 23 20 24 22 25 24 25 30 29 30 30 34 33 39 38 42 41 42 42 41 42
++42 47 42 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 45 57 61 54 57 61
++48 50 48 45 57 61 45 57 61 45 57 61 43 42 50 54 57 61 53 63 61 54 57 61
++48 50 48 34 40 43 22 23 31 22 25 24 23 30 35 28 35 38 35 46 43 34 40 43
++7 12 13 15 22 17 88 83 88 166 174 181 221 238 247 225 222 201 185 202 202 185 202 202
++221 238 247 235 238 247 240 251 247 235 238 247 235 238 247 235 238 247 240 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 251 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247
++235 238 247 231 239 247 231 239 247 231 239 247 240 251 247 240 251 247 240 251 247 240 251 247
++240 251 247 240 251 247 235 238 247 231 239 247 231 239 247 231 239 247 231 239 247 240 251 247
++231 239 247 231 239 247 221 238 247 231 239 247 231 239 247 231 239 247 235 238 247 240 251 247
++240 251 247 240 251 247 251 251 247 240 251 247 235 238 247 208 221 247 226 221 247 221 238 247
++221 238 247 208 221 247 208 221 247 201 216 228 208 221 247 226 221 247 232 215 228 188 180 202
++168 146 127 146 150 115 168 146 127 201 146 124 177 171 115 201 146 124 177 171 115 201 146 124
++168 146 127 177 171 115 168 146 127 168 146 127 168 146 127 201 146 124 168 146 127 168 146 127
++168 146 127 177 171 115 168 102 88 168 146 127 146 150 115 168 102 88 146 150 115 138 126 108
++138 126 108 138 126 108 168 102 88 138 102 108 117 114 76 168 102 88 138 126 108 146 150 115
++168 102 88 138 126 108 138 126 108 157 148 53 138 126 108 168 102 88 117 127 86 168 102 88
++117 114 76 168 102 88 117 99 86 117 99 86 117 112 45 120 63 71 101 83 74 101 83 74
++88 73 62 88 73 62 88 73 62 88 73 62 75 73 36 88 73 62 75 56 53 63 55 45
++60 49 42 60 49 42 88 73 31 88 73 62 88 73 62 88 73 62 101 74 26 98 106 55
++101 83 74 117 99 86 101 83 74 101 83 74 75 73 36 55 39 37 34 30 15 17 12 17
++13 4 7 15 17 7 13 4 7 15 17 7 14 16 17 15 22 17 23 20 24 23 20 24
++22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 22 24 13 22 25 24
++22 25 24 22 25 24 26 25 15 23 20 24 23 18 22 26 30 28 26 30 28 26 30 28
++33 30 32 31 35 35 42 41 42 48 50 48 59 55 55 59 57 61 53 63 61 59 55 55
++54 57 61 45 57 61 52 55 48 45 57 61 52 55 48 45 57 61 54 57 61 52 55 48
++48 50 48 52 55 48 48 50 48 48 50 48 48 44 48 42 47 42 43 42 50 42 47 42
++43 42 50 42 47 42 42 41 42 35 46 43 35 46 43 42 41 42 34 40 43 33 39 38
++33 39 38 33 39 38 33 39 38 28 35 38 33 39 38 28 35 38 33 39 38 31 35 35
++31 35 35 33 30 36 28 35 38 33 30 36 33 30 36 36 35 37 28 35 38 33 30 36
++31 35 35 28 35 38 33 30 36 33 39 38 31 35 35 33 39 38 30 30 34 33 30 30
++60 49 42 101 83 74 168 146 127 168 146 127 177 169 143 201 146 124 168 146 127 168 146 127
++146 151 137 166 180 164 185 202 202 225 222 201 185 202 202 225 222 201 185 202 202 201 216 228
++225 222 201 201 216 228 201 216 228 201 216 228 201 216 228 225 222 201 201 216 228 201 216 228
++225 222 201 201 216 228 233 241 227 201 216 228 233 241 227 185 202 202 185 202 202 150 171 159
++148 160 159 148 160 159 166 180 164 185 202 202 225 222 201 185 202 202 201 216 228 225 222 201
++201 216 228 201 216 228 208 215 180 201 216 228 185 202 202 201 216 228 208 215 180 185 202 202
++201 216 228 201 216 228 201 216 228 233 241 227 201 216 228 225 222 201 185 202 202 201 216 228
++225 222 201 185 202 202 146 162 145 122 134 144 145 140 145 177 169 143 177 169 143 168 146 127
++177 169 143 177 169 143 189 165 168 208 215 180 189 165 168 189 165 168 189 165 168 189 165 168
++189 165 168 146 151 137 94 105 108 95 91 100 111 119 127 145 140 145 166 174 181 166 174 181
++126 147 144 75 81 90 43 55 48 43 42 50 48 50 48 48 50 48 48 50 48 52 55 48
++53 46 48 55 55 48 55 55 48 59 55 55 55 55 48 55 55 48 59 55 55 63 55 51
++63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 65 55 54 65 55 54 63 55 51
++63 55 51 63 55 51 53 46 48 60 49 42 53 46 48 47 39 42 42 41 42 53 35 37
++42 38 42 53 35 37 36 35 37 52 30 35 32 39 24 52 30 35 33 30 30 52 30 35
++32 39 24 33 30 30 32 39 24 33 30 30 36 35 37 36 35 37 42 41 42 47 44 42
++47 44 42 53 46 48 48 50 48 59 55 55 52 55 48 59 55 55 50 61 48 59 55 55
++55 55 48 55 55 48 52 55 48 52 55 48 59 55 55 52 55 48 53 46 48 48 50 48
++48 50 48 48 44 48 48 44 48 47 44 42 47 44 42 36 35 37 47 44 42 36 35 37
++42 38 42 47 47 21 47 39 42 36 35 37 47 39 42 47 44 42 55 39 37 47 44 42
++51 49 42 51 49 42 51 49 42 53 46 48 55 55 48 63 55 51 55 55 48 63 55 51
++55 55 48 62 47 47 63 55 51 63 55 51 62 47 47 55 55 48 62 47 47 62 47 47
++55 39 37 51 49 42 47 44 42 47 44 42 53 35 37 36 35 37 52 30 35 33 30 30
++36 35 37 32 39 24 53 35 37 36 35 37 47 47 21 47 44 42 47 44 42 47 44 42
++
++55 39 18 76 18 19 76 46 20 76 18 19 88 30 18 88 30 18 88 30 18 102 33 26
++102 33 26 102 33 26 102 33 26 122 49 24 102 33 26 120 63 71 102 33 26 122 49 24
++102 33 26 102 33 26 122 49 24 102 33 26 102 33 26 122 49 24 102 33 26 122 49 24
++122 49 24 122 49 24 122 49 24 102 33 26 120 63 71 102 33 26 122 49 24 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 76 18 19 102 33 26 76 18 19
++88 30 18 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16 76 18 19
++49 13 16 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 88 44 51 102 33 26 120 63 71 120 63 71 102 33 26 167 63 71
++122 49 24 120 63 71 167 63 71 120 63 71 120 63 71 120 63 71 120 63 71 120 63 71
++101 60 73 88 73 62 88 44 51 88 73 62 76 46 20 59 36 42 55 39 37 55 39 18
++53 35 37 55 39 37 55 39 37 55 39 37 60 49 42 59 36 42 60 49 42 76 46 20
++62 47 47 75 56 53 75 56 53 63 55 45 75 56 53 75 56 53 75 56 53 88 73 62
++75 56 53 88 73 62 75 56 53 75 73 58 88 73 62 75 56 53 88 73 62 75 63 62
++88 73 62 75 63 62 75 63 62 75 63 62 75 56 53 75 63 62 65 55 54 65 55 54
++65 55 54 59 55 55 63 55 51 55 55 48 53 46 48 55 55 48 53 46 48 52 55 48
++53 46 48 48 50 48 48 44 48 48 44 48 47 44 42 47 49 42 48 44 48 47 49 42
++51 49 42 53 46 48 60 49 42 51 49 42 60 49 42 62 47 47 63 55 51 63 55 51
++75 56 53 64 70 48 65 55 54 64 70 48 65 55 54 75 56 53 75 56 53 63 55 51
++65 55 54 63 55 45 75 56 53 65 55 54 75 56 53 65 55 54 75 56 53 64 70 48
++65 55 54 65 55 54 65 55 54 63 55 51 53 46 48 60 49 42 51 49 42 53 46 48
++51 49 42 60 49 42 53 46 48 55 39 37 55 39 37 59 36 42 60 49 42 59 36 42
++60 49 42 60 49 42 55 39 37 60 49 42 62 47 47 62 47 47 62 47 47 62 47 47
++60 49 42 60 49 42 60 49 42 55 55 48 60 49 42 60 49 42 55 39 37 53 46 48
++51 49 42 51 49 42 53 46 48 55 39 37 47 49 42 47 44 42 47 47 21 36 35 37
++47 47 21 42 38 42 42 41 42 47 44 42 47 44 42 47 44 42 53 46 48 51 49 42
++53 46 48 55 55 48 55 55 48 63 55 51 59 55 55 63 55 51 59 55 55 63 55 51
++59 55 55 64 70 48 59 55 55 65 55 54 59 55 55 63 55 51 59 55 55 63 55 51
++59 55 55 65 55 54 65 63 61 63 55 51 65 63 61 59 55 55 65 63 61 65 63 61
++65 63 61 65 63 61 59 69 70 65 63 61 59 69 70 65 63 61 75 72 67 59 69 70
++59 69 70 75 81 76 75 81 76 75 81 76 75 81 82 75 81 82 88 83 74 75 81 82
++88 83 88 88 83 88 90 98 89 99 93 84 88 83 88 90 98 89 99 93 84 88 83 88
++90 98 89 88 83 88 88 83 74 88 83 74 88 83 88 88 83 74 99 93 84 88 83 74
++99 93 84 90 98 89 99 93 84 88 83 88 99 93 84 99 93 84 99 93 84 88 83 88
++95 91 100 101 83 74 99 93 84 99 93 84 99 93 84 101 83 74 99 93 84 101 83 74
++88 83 88 101 83 74 88 66 70 88 83 74 88 66 70 88 73 62 75 72 67 75 72 67
++75 63 62 75 72 67 75 63 62 75 63 62 75 63 62 75 63 62 65 63 61 75 56 53
++65 55 54 75 56 53 65 63 61 75 63 62 65 63 61 75 72 67 65 63 61 48 50 48
++31 35 35 34 40 43 34 40 43 34 40 43 28 30 35 26 24 32 30 30 34 31 35 35
++30 30 34 22 25 24 22 25 24 25 30 29 22 25 24 25 30 29 22 23 31 25 30 29
++28 30 35 31 35 35 31 35 35 31 35 35 28 30 35 23 30 35 28 30 35 25 30 29
++31 35 35 25 30 29 30 30 34 26 30 28 30 30 34 30 30 34 26 30 28 26 24 32
++23 20 24 23 20 24 22 25 24 23 20 24 12 18 20 14 16 17 14 16 17 17 12 17
++14 16 17 17 12 17 7 12 13 13 4 7 7 12 13 7 12 13 17 12 17 7 12 13
++7 12 13 17 12 17 15 17 7 17 12 17 7 12 13 7 12 13 3 4 9 3 3 1
++3 3 1 3 3 1 3 4 9 13 4 7 7 12 13 17 12 17 14 16 17 14 16 17
++15 22 17 22 25 24 26 30 28 31 35 35 31 35 35 33 39 38 34 40 43 42 47 42
++48 50 48 35 47 50 35 46 43 35 46 43 35 47 50 48 50 48 54 57 61 54 57 61
++45 57 61 48 50 48 34 40 43 23 30 35 22 25 24 23 30 35 35 47 50 45 57 61
++33 39 38 12 18 30 12 18 20 94 105 108 185 202 202 235 238 247 235 238 247 201 216 228
++201 216 228 226 221 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 251 251 247 240 251 247 251 251 247 240 251 247 251 251 247 240 251 247 251 251 247
++240 251 247 240 251 247 240 251 247 240 251 247 231 239 247 231 239 247 231 239 247 221 238 247
++221 238 247 231 239 247 231 239 247 240 251 247 231 239 247 240 251 247 240 251 247 235 238 247
++240 251 247 235 238 247 231 239 247 231 239 247 231 239 247 240 251 247 240 251 247 231 239 247
++221 238 247 221 238 247 231 239 247 231 239 247 231 239 247 240 251 247 240 251 247 251 251 247
++251 251 247 251 251 247 240 251 247 235 238 247 221 238 247 226 221 247 221 238 247 221 238 247
++226 221 247 208 221 247 208 221 247 201 216 228 226 221 247 221 238 247 232 215 228 166 180 164
++168 146 127 168 146 127 168 146 127 168 146 127 197 171 123 168 146 127 201 146 124 168 146 127
++201 146 124 168 146 127 201 146 124 177 171 115 168 146 127 168 146 127 168 146 127 168 146 127
++168 102 88 146 150 115 168 146 127 168 146 127 146 150 115 138 126 108 168 102 88 146 150 115
++168 102 88 138 126 108 138 126 108 157 148 53 138 126 108 138 126 108 138 126 108 168 102 88
++146 150 115 138 126 108 138 126 108 163 117 123 138 126 108 138 126 108 168 102 88 117 114 76
++117 114 76 117 114 76 117 112 45 120 63 71 117 112 45 88 73 62 101 74 26 88 73 62
++88 73 31 88 73 31 75 73 36 63 55 45 75 73 36 60 49 42 76 46 20 55 39 37
++55 39 18 76 46 20 63 55 45 88 73 31 88 44 51 88 73 31 88 73 62 101 83 74
++101 83 74 101 74 26 75 73 58 55 39 18 34 30 15 26 12 13 23 10 10 13 4 7
++6 15 6 14 16 17 23 18 22 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24
++23 20 24 23 18 22 15 22 17 26 25 15 22 25 24 23 20 24 22 25 24 15 22 17
++23 20 24 22 25 24 22 25 24 23 20 24 33 30 30 23 20 24 33 30 30 33 30 30
++31 35 35 33 30 36 37 35 43 47 44 42 54 57 61 54 57 61 59 57 61 59 57 61
++54 57 61 52 55 48 54 57 61 45 57 61 52 55 48 54 57 61 52 55 48 45 57 61
++48 50 48 52 55 48 48 50 48 48 50 48 42 47 42 48 44 48 42 47 42 42 47 42
++42 47 42 35 46 43 35 46 43 35 46 43 42 41 42 35 46 43 35 46 43 33 39 38
++34 40 43 28 35 38 34 40 43 28 35 38 34 40 43 28 35 38 33 39 38 31 35 35
++31 35 35 31 35 35 33 30 36 31 35 35 28 35 38 33 30 36 33 30 36 28 35 38
++37 35 43 33 39 38 34 40 43 28 35 38 34 40 43 36 35 37 30 30 34 31 35 35
++51 49 42 101 83 74 163 117 123 201 146 124 201 146 124 168 146 127 168 146 127 138 126 108
++146 151 137 166 156 164 185 202 202 185 202 202 225 222 201 185 202 202 201 216 228 208 215 180
++201 216 228 201 216 228 208 215 180 201 216 228 201 216 228 185 202 202 201 216 228 225 222 201
++201 216 228 201 216 228 225 222 201 201 216 228 225 222 201 185 202 202 166 174 181 148 160 159
++129 144 153 129 144 153 148 160 159 166 174 181 185 202 202 185 202 202 225 222 201 185 202 202
++185 202 202 201 216 228 201 216 228 185 202 202 201 216 228 185 202 202 201 216 228 201 216 228
++225 222 201 201 216 228 225 222 201 185 202 202 201 216 228 185 202 202 201 216 228 201 216 228
++185 202 202 150 171 159 122 134 144 145 140 145 146 162 145 189 165 168 177 169 143 177 169 143
++189 165 168 217 168 156 189 165 168 217 168 156 208 215 180 177 169 143 177 169 143 177 169 143
++168 146 127 138 126 108 112 96 108 121 143 132 148 160 159 185 202 202 185 202 202 185 202 202
++148 160 159 90 98 89 45 57 61 43 42 50 48 44 48 48 50 48 48 50 48 48 50 48
++55 55 48 55 55 48 63 55 51 55 55 48 63 55 51 63 55 51 59 55 55 64 70 48
++59 55 55 63 55 51 59 55 55 63 55 51 59 55 55 63 55 51 65 63 61 63 55 51
++63 55 51 62 47 47 60 49 42 53 46 48 47 44 42 55 39 37 47 39 42 36 35 37
++36 35 37 36 35 37 33 30 30 53 35 37 36 35 37 33 30 30 32 39 24 36 35 37
++33 30 30 36 35 37 36 35 37 36 35 37 32 39 24 36 35 37 36 35 37 42 41 42
++47 44 42 47 49 42 48 50 48 48 50 48 52 55 48 59 55 55 52 55 48 52 55 48
++52 55 48 48 50 48 48 50 48 48 50 48 53 46 48 48 50 48 48 50 48 48 50 48
++48 44 48 47 44 42 42 41 42 42 41 42 42 41 42 36 35 37 47 47 21 36 35 37
++47 39 42 42 38 42 36 35 37 55 39 37 42 41 42 47 44 42 47 44 42 51 49 42
++51 49 42 53 46 48 52 55 48 55 55 48 55 55 48 63 55 51 55 55 48 62 47 47
++63 55 51 63 55 51 63 55 51 63 55 51 62 47 47 55 55 48 53 46 48 51 49 42
++53 46 48 51 49 42 47 44 42 55 39 37 36 35 37 47 47 21 36 35 37 36 35 37
++52 30 35 32 39 24 36 35 37 53 35 37 42 41 42 47 39 42 55 39 37 47 44 42
++
++76 18 19 55 39 18 59 36 42 76 18 19 76 44 53 88 30 18 88 44 51 88 30 18
++88 44 51 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 122 49 24 102 33 26
++167 63 71 102 33 26 120 63 71 122 49 24 120 63 71 122 49 24 102 33 26 167 63 71
++102 33 26 120 63 71 102 33 26 161 55 23 102 33 26 122 49 24 102 33 26 122 49 24
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 76 18 19
++102 33 26 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16
++76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 76 18 19
++76 18 19 102 33 26 102 33 26 120 63 71 102 33 26 102 33 26 120 63 71 120 63 71
++120 63 71 120 63 71 120 63 71 120 63 71 120 63 71 120 63 71 120 63 71 120 63 71
++120 63 71 120 63 71 101 60 73 88 44 51 88 44 51 76 46 20 59 36 42 59 36 42
++52 30 35 55 39 37 55 39 37 55 39 37 55 39 37 60 49 42 59 36 42 60 49 42
++76 44 53 60 49 42 60 49 42 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53
++75 56 53 88 73 62 75 56 53 88 73 62 75 56 53 88 73 62 75 63 62 88 73 62
++75 56 53 88 73 62 75 63 62 75 73 58 75 63 62 75 63 62 75 56 53 65 55 54
++65 55 54 63 55 51 63 55 51 62 47 47 55 55 48 53 46 48 55 55 48 53 46 48
++53 46 48 51 49 42 48 44 48 48 50 48 48 44 48 47 44 42 47 44 42 47 44 42
++51 49 42 53 46 48 53 46 48 53 46 48 55 55 48 55 55 48 62 47 47 63 55 45
++63 55 51 65 55 54 65 55 54 65 55 54 65 55 54 64 70 48 65 55 54 63 55 51
++65 55 54 65 55 54 63 55 51 75 56 53 65 63 61 75 56 53 65 55 54 65 55 54
++65 55 54 63 55 51 63 55 51 63 55 45 55 55 48 53 46 48 51 49 42 51 49 42
++47 44 42 51 49 42 55 39 37 47 44 42 51 49 42 55 39 37 60 49 42 59 36 42
++60 49 42 55 39 37 60 49 42 60 49 42 60 49 42 60 49 42 53 46 48 60 49 42
++60 49 42 53 46 48 60 49 42 60 49 42 53 46 48 51 49 42 51 49 42 51 49 42
++55 39 37 51 49 42 55 39 37 47 44 42 47 44 42 47 39 42 42 38 42 42 41 42
++42 41 42 42 41 42 36 35 37 42 41 42 42 41 42 47 44 42 47 44 42 51 49 42
++53 46 48 55 55 48 53 46 48 55 55 48 59 55 55 63 55 51 59 55 55 63 55 51
++63 55 51 59 55 55 63 55 51 63 55 51 59 55 55 63 55 51 59 55 55 63 55 51
++59 55 55 63 55 51 65 63 61 59 55 55 63 55 51 65 63 61 59 55 55 59 55 55
++65 63 61 59 57 61 65 63 61 65 63 61 65 63 61 59 69 70 59 69 70 75 81 76
++59 69 70 75 81 76 59 69 70 75 81 76 75 81 82 75 81 82 75 81 82 88 83 74
++88 83 88 88 83 74 88 83 88 88 83 88 88 83 88 99 93 84 88 83 88 90 98 89
++88 83 88 99 93 84 88 83 88 88 83 74 88 83 74 99 93 84 88 83 88 88 83 88
++99 93 84 88 83 88 99 93 84 99 93 84 99 93 84 88 83 88 99 93 84 99 93 84
++101 83 74 95 91 100 99 93 84 99 93 84 101 83 74 99 93 84 88 83 88 101 83 74
++88 83 74 88 83 88 88 83 74 88 66 70 88 83 74 88 66 70 75 72 67 88 66 70
++75 72 67 75 72 67 75 63 62 75 63 62 65 63 61 65 63 61 65 55 54 65 63 61
++65 55 54 75 56 53 65 63 61 75 63 62 65 63 61 65 63 61 59 55 55 42 47 42
++31 35 35 31 35 35 28 35 38 31 35 35 22 23 31 25 30 29 30 30 34 31 35 35
++30 30 34 22 23 31 22 25 24 22 25 24 22 23 31 25 30 29 25 30 29 25 30 29
++28 30 35 28 30 35 31 35 35 28 30 35 25 30 29 31 35 35 28 30 35 28 30 35
++25 30 29 25 30 29 26 30 28 30 30 34 26 30 28 26 24 32 22 25 24 22 25 24
++22 25 24 23 20 24 23 20 24 14 16 17 17 12 17 7 12 13 14 16 17 14 16 17
++14 16 17 14 16 17 17 12 17 7 12 13 17 12 17 17 12 17 14 16 17 14 16 17
++17 12 17 14 16 17 14 16 17 14 16 17 14 16 17 17 12 17 7 12 13 7 12 13
++3 4 9 3 4 9 3 4 9 3 4 9 3 3 1 3 3 1 3 4 9 3 4 9
++13 4 7 7 12 13 7 12 13 14 16 17 14 16 17 22 25 24 22 25 24 33 39 38
++42 41 42 35 46 43 34 40 43 34 40 43 43 42 50 48 50 48 45 57 61 48 50 48
++45 57 61 48 50 48 43 42 50 33 39 38 23 30 35 22 25 24 25 30 29 35 47 50
++48 50 48 34 40 43 7 12 13 42 38 42 111 119 127 232 215 228 251 251 247 231 239 247
++232 215 228 221 238 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++240 251 247 240 251 247 235 238 247 235 238 247 235 238 247 235 238 247 235 238 247 235 238 247
++235 238 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247
++235 238 247 231 239 247 240 251 247 240 251 247 240 251 247 240 251 247 235 238 247 240 251 247
++231 239 247 240 251 247 231 239 247 240 251 247 240 251 247 231 239 247 240 251 247 231 239 247
++221 238 247 231 239 247 221 238 247 231 239 247 235 238 247 240 251 247 251 251 247 240 251 247
++251 251 247 251 251 247 235 238 247 231 239 247 226 221 247 208 221 247 226 221 247 208 221 247
++221 238 247 208 221 247 208 221 247 208 221 247 208 221 247 221 238 247 232 215 228 188 180 202
++150 144 154 168 146 127 168 146 127 197 171 123 189 165 168 197 171 123 177 169 143 177 169 143
++177 169 143 197 171 123 168 146 127 177 169 143 197 171 123 168 146 127 168 146 127 146 150 115
++177 171 115 168 146 127 168 146 127 168 146 127 168 146 127 138 126 108 146 150 115 168 102 88
++146 150 115 168 146 127 138 126 108 163 117 123 146 150 115 168 102 88 146 150 115 138 126 108
++157 148 53 163 117 123 157 148 53 168 146 127 138 126 108 157 148 53 117 127 86 168 102 88
++117 114 76 167 63 71 117 99 86 117 112 45 120 63 71 88 73 62 88 73 62 88 73 31
++75 56 53 63 55 45 60 49 42 55 39 37 55 39 18 55 39 37 55 39 37 55 39 18
++47 47 21 55 39 37 63 55 45 75 56 53 75 73 36 75 56 53 88 73 62 75 56 53
++88 73 31 60 49 42 52 30 15 23 10 10 23 10 10 13 4 7 15 17 7 17 12 17
++22 24 13 23 18 22 22 25 24 26 30 28 22 25 24 22 25 24 22 25 24 23 20 24
++23 20 24 23 20 24 15 22 17 22 25 24 22 25 24 22 25 24 15 22 17 23 20 24
++22 25 24 23 20 24 26 30 28 23 20 24 26 30 28 33 30 30 33 30 30 33 30 32
++36 35 37 31 35 35 36 35 37 34 40 43 48 50 48 59 57 61 59 57 61 54 57 61
++54 57 61 54 57 61 52 55 48 48 50 48 54 57 61 45 57 61 52 55 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 42 47 42 48 50 48 43 42 50
++42 47 42 43 42 50 34 40 43 42 41 42 35 46 43 34 40 43 42 41 42 34 40 43
++34 40 43 33 39 38 37 35 43 33 39 38 36 35 37 28 35 38 31 35 35 28 35 38
++28 35 38 31 35 35 28 35 38 36 35 37 28 35 38 31 35 35 28 35 38 31 35 35
++33 39 38 28 35 38 31 35 35 37 35 43 28 35 38 33 39 38 30 30 34 32 39 24
++51 49 42 120 63 71 146 150 115 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127
++138 126 108 146 151 137 177 169 143 185 202 202 201 216 228 208 215 180 185 202 202 201 216 228
++208 215 180 185 202 202 201 216 228 201 216 228 208 215 180 201 216 228 225 222 201 185 202 202
++201 216 228 208 215 180 201 216 228 201 216 228 201 216 228 185 202 202 148 160 159 146 162 145
++145 140 145 146 162 145 145 140 145 150 171 159 166 174 181 185 202 202 185 202 202 201 216 228
++208 215 180 201 216 228 208 215 180 201 216 228 225 222 201 201 216 228 208 215 180 201 216 228
++185 202 202 201 216 228 185 202 202 201 216 228 185 202 202 201 216 228 225 222 201 185 202 202
++166 174 181 148 160 159 121 143 132 145 140 145 166 156 164 177 169 143 166 156 164 168 146 127
++145 140 145 146 150 115 146 150 115 146 151 137 177 169 143 177 169 143 177 169 143 168 146 127
++168 146 127 138 126 108 146 151 137 166 174 181 194 199 226 225 222 201 201 216 228 185 202 202
++148 160 159 77 90 100 35 47 50 42 41 42 43 42 50 47 49 42 48 50 48 51 49 42
++52 55 48 55 55 48 55 55 48 59 55 55 63 55 51 55 55 48 59 55 55 63 55 51
++63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51
++55 55 48 53 46 48 60 49 42 51 49 42 51 49 42 47 44 42 47 39 42 55 39 37
++32 39 24 52 30 35 36 35 37 31 35 35 52 30 35 36 35 37 33 30 30 36 35 37
++32 39 24 52 30 35 32 39 24 36 35 37 36 35 37 47 47 21 36 35 37 36 35 37
++42 41 42 47 44 42 48 50 48 53 46 48 53 46 48 52 55 48 53 46 48 48 50 48
++53 46 48 53 46 48 53 46 48 53 46 48 48 50 48 48 50 48 47 49 42 47 44 42
++47 44 42 42 41 42 47 44 42 42 41 42 42 41 42 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 42 41 42 47 47 21 47 44 42 47 44 42 47 44 42 51 49 42
++51 49 42 51 49 42 60 49 42 55 55 48 62 47 47 55 55 48 63 55 51 63 55 51
++63 55 51 63 55 51 63 55 51 63 55 51 62 47 47 62 47 47 60 49 42 60 49 42
++53 46 48 51 49 42 51 49 42 47 44 42 47 39 42 47 39 42 36 35 37 47 39 42
++32 39 24 52 30 35 36 35 37 42 38 42 47 47 21 47 39 42 42 41 42 47 44 42
++
++53 35 17 52 30 35 88 30 18 76 46 20 76 18 19 102 33 26 88 30 18 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 122 49 24 122 49 24 102 33 26 122 49 24
++102 33 26 102 33 26 122 49 24 102 33 26 102 33 26 122 49 24 102 33 26 122 49 24
++102 33 26 161 55 23 102 33 26 102 33 26 122 49 24 122 49 24 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 88 30 18 88 30 18 88 30 18 102 33 26
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16 76 18 19 76 18 19
++49 13 16 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19
++76 18 19 76 18 19 88 44 51 102 33 26 120 63 71 120 63 71 122 49 24 120 63 71
++122 49 24 120 63 71 122 49 24 167 63 71 120 63 71 122 49 24 120 63 71 120 63 71
++101 74 26 120 63 71 88 44 51 88 44 51 88 44 51 76 44 53 59 36 42 76 18 19
++55 39 37 55 39 18 55 39 37 55 39 37 55 39 37 55 39 37 60 49 42 59 36 42
++60 49 42 60 49 42 75 56 53 63 55 45 75 56 53 75 56 53 75 56 53 75 73 58
++88 73 62 75 56 53 75 73 58 75 56 53 88 73 62 75 56 53 75 73 58 75 63 62
++88 73 62 75 63 62 75 63 62 75 56 53 75 63 62 64 70 48 75 63 62 65 55 54
++65 55 54 63 55 51 55 55 48 55 55 48 63 55 51 55 55 48 53 46 48 51 49 42
++51 49 42 53 46 48 51 49 42 53 46 48 51 49 42 47 44 42 51 49 42 47 44 42
++53 46 48 53 46 48 52 55 48 51 49 42 51 49 42 55 55 48 51 49 42 62 47 47
++63 55 51 63 55 51 63 55 51 65 55 54 63 55 51 63 55 45 63 55 45 63 55 45
++65 55 54 63 55 51 65 55 54 63 55 45 75 56 53 64 70 48 75 56 53 65 55 54
++65 55 54 63 55 51 63 55 45 51 49 42 55 55 48 51 49 42 51 49 42 51 49 42
++51 49 42 55 39 37 51 49 42 55 39 37 55 39 37 51 49 42 51 49 42 53 46 48
++51 49 42 53 46 48 51 49 42 53 46 48 51 49 42 53 46 48 60 49 42 53 46 48
++51 49 42 51 49 42 55 39 37 53 46 48 55 39 37 51 49 42 51 49 42 60 49 42
++51 49 42 47 44 42 47 44 42 47 44 42 47 44 42 36 35 37 42 41 42 36 35 37
++42 41 42 42 41 42 42 47 42 36 35 37 42 47 42 47 44 42 51 49 42 51 49 42
++53 46 48 60 49 42 55 55 48 55 55 48 63 55 51 59 55 55 63 55 51 65 63 61
++59 55 55 65 55 54 65 55 54 65 63 61 63 55 51 65 63 61 63 55 51 59 55 55
++59 55 55 65 63 61 63 55 51 65 63 61 53 63 61 55 55 48 59 55 55 59 55 55
++53 63 61 65 63 61 53 63 61 65 63 61 59 69 70 59 69 70 75 72 67 59 69 70
++75 81 76 59 69 70 75 81 76 75 64 82 75 81 76 75 81 82 75 81 82 75 81 82
++75 81 82 88 83 88 75 81 82 78 98 90 88 83 88 88 83 88 90 98 89 88 83 74
++88 83 74 75 81 76 88 83 74 88 83 88 88 83 88 88 83 88 99 93 84 88 83 74
++88 83 88 99 93 84 99 93 84 95 91 100 99 93 84 99 93 84 95 91 100 88 83 88
++99 93 84 101 83 74 88 83 88 101 83 74 95 91 100 101 83 74 99 93 84 88 83 88
++101 83 74 88 69 84 88 83 74 88 83 74 88 83 74 88 83 74 75 81 76 75 72 67
++75 72 67 75 63 62 75 73 58 65 63 61 75 56 53 63 55 51 65 63 61 63 55 45
++65 55 54 65 63 61 75 63 62 65 63 61 75 73 58 65 63 61 43 55 48 42 41 42
++28 30 35 28 30 35 28 30 35 25 30 29 23 20 24 22 25 24 30 30 34 31 35 35
++26 30 28 22 25 24 26 24 32 25 30 29 25 30 29 26 24 32 30 30 34 30 30 34
++31 35 35 28 30 35 28 30 35 25 30 29 28 30 35 25 30 29 28 30 35 25 30 29
++25 30 29 25 30 29 25 30 29 25 30 29 25 30 29 22 25 24 23 18 22 15 22 17
++23 20 24 12 18 20 14 16 17 14 16 17 7 12 13 17 12 17 14 16 17 14 16 17
++17 12 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 17 12 17 14 16 17
++14 16 17 14 16 17 17 12 17 14 16 17 23 18 22 14 16 17 23 18 22 14 16 17
++14 16 17 14 16 17 14 16 17 14 16 17 7 12 13 7 12 13 7 12 13 7 12 13
++7 12 13 7 12 13 7 12 13 7 12 13 14 16 17 14 16 17 23 20 24 31 35 35
++43 42 50 43 42 50 42 41 42 33 39 38 42 47 42 48 50 48 48 50 48 43 42 50
++42 47 42 34 40 43 33 39 38 34 40 43 42 41 42 25 30 29 22 25 24 25 30 29
++34 40 43 43 42 50 33 39 38 7 10 17 34 40 43 145 140 145 233 241 227 251 251 247
++251 251 247 240 251 247 251 251 247 240 251 247 251 251 247 251 251 247 240 251 247 240 251 247
++246 237 247 231 239 247 231 239 247 221 238 247 221 238 247 221 238 247 221 238 247 231 239 247
++221 238 247 231 239 247 231 239 247 235 238 247 235 238 247 240 251 247 240 251 247 240 251 247
++240 251 247 240 251 247 240 251 247 231 239 247 231 239 247 240 251 247 235 238 247 240 251 247
++235 238 247 231 239 247 240 251 247 231 239 247 240 251 247 231 239 247 231 239 247 221 238 247
++231 239 247 221 238 247 231 239 247 231 239 247 240 251 247 240 251 247 251 251 247 251 251 247
++240 251 247 240 251 247 235 238 247 221 238 247 208 221 247 221 238 247 226 221 247 208 221 247
++226 221 247 208 221 247 208 221 247 201 216 228 226 221 247 221 238 247 232 215 228 185 202 202
++177 169 143 168 146 127 177 169 143 201 146 124 177 169 143 217 168 156 201 146 124 177 169 143
++201 146 124 177 169 143 177 169 143 201 146 124 177 169 143 168 146 127 168 146 127 168 146 127
++168 146 127 177 171 115 168 146 127 146 150 115 168 102 88 146 150 115 168 102 88 146 150 115
++168 146 127 168 102 88 146 150 115 168 102 88 146 150 115 168 102 88 146 150 115 168 102 88
++138 126 108 138 126 108 163 117 123 168 102 88 138 126 108 168 102 88 117 127 86 138 126 108
++117 114 76 117 112 45 101 83 74 120 63 71 80 96 46 88 73 31 75 56 53 63 55 45
++76 46 20 55 39 37 47 47 21 47 47 21 32 39 24 47 47 21 32 39 24 53 35 37
++55 39 37 60 49 42 63 55 45 60 49 42 55 39 18 55 39 37 60 49 42 55 39 37
++32 39 24 26 12 13 6 15 6 13 4 7 6 15 6 15 17 7 14 16 17 22 25 24
++23 20 24 22 25 24 26 24 32 22 25 24 23 20 24 26 25 15 23 20 24 22 23 31
++22 23 31 22 25 24 22 25 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24
++22 25 24 22 25 24 22 25 24 33 30 30 26 30 28 33 30 30 26 30 28 30 30 34
++31 35 35 31 35 35 28 30 35 31 35 35 42 41 42 48 50 48 54 57 61 59 57 61
++59 55 55 48 50 48 45 57 61 48 50 48 54 57 61 52 55 48 48 50 48 45 57 61
++48 50 48 48 50 48 43 42 50 35 47 50 43 42 50 43 55 48 43 42 50 42 47 42
++35 46 43 42 41 42 35 46 43 42 41 42 34 40 43 42 41 42 34 40 43 33 39 38
++37 35 43 34 40 43 33 39 38 33 39 38 28 35 38 36 35 37 28 35 38 31 35 35
++28 30 35 28 35 38 28 30 35 28 35 38 31 35 35 28 35 38 33 30 36 28 35 38
++31 35 35 33 39 38 31 35 35 33 39 38 28 35 38 37 35 43 30 30 34 33 30 30
++55 39 37 101 83 74 168 146 127 168 146 127 201 146 124 168 102 88 168 146 127 168 102 88
++168 146 127 146 150 115 145 140 145 166 180 164 185 202 202 185 202 202 208 215 180 185 202 202
++201 216 228 185 202 202 208 215 180 201 216 228 185 202 202 201 216 228 185 202 202 201 216 228
++225 222 201 201 216 228 201 216 228 208 215 180 185 202 202 166 180 164 126 147 144 146 162 145
++148 160 159 148 160 159 146 151 137 146 151 137 166 180 164 185 202 202 225 222 201 201 216 228
++201 216 228 201 216 228 201 216 228 201 216 228 185 202 202 201 216 228 201 216 228 185 202 202
++185 202 202 201 216 228 208 215 180 201 216 228 185 202 202 201 216 228 185 202 202 185 202 202
++146 162 145 126 147 144 145 140 145 126 147 144 129 144 153 145 140 145 122 134 144 111 119 127
++112 123 108 95 91 100 95 91 100 112 123 108 145 140 145 150 144 154 177 169 143 168 146 127
++145 140 145 150 144 154 166 180 164 225 222 201 201 216 228 185 202 202 185 202 202 188 180 202
++146 151 137 88 83 88 43 42 50 42 41 42 47 44 42 48 50 48 47 49 42 51 49 42
++52 55 48 52 55 48 55 55 48 63 55 51 55 55 48 63 55 51 63 55 51 55 55 48
++63 55 51 59 55 55 63 55 51 59 55 55 63 55 51 59 55 55 55 55 48 55 55 48
++53 46 48 51 49 42 51 49 42 53 46 48 51 49 42 55 39 37 42 41 42 42 41 42
++36 35 37 36 35 37 32 39 24 52 30 35 32 39 24 33 30 30 52 30 35 33 30 30
++36 35 37 36 35 37 36 35 37 53 35 37 36 35 37 42 38 42 36 35 37 55 39 37
++42 41 42 47 39 42 47 44 42 53 46 48 53 46 48 53 46 48 53 46 48 53 46 48
++52 55 48 53 46 48 48 50 48 51 49 42 48 44 48 47 44 42 47 44 42 42 47 42
++42 41 42 42 41 42 42 41 42 42 41 42 36 35 37 36 35 37 42 38 42 36 35 37
++36 35 37 36 35 37 47 39 42 42 41 42 47 44 42 47 44 42 47 44 42 47 44 42
++51 49 42 51 49 42 55 55 48 55 55 48 63 55 45 55 55 48 55 55 48 63 55 51
++63 55 51 65 55 54 65 55 54 63 55 51 63 55 51 55 55 48 53 46 48 53 46 48
++51 49 42 53 46 48 51 49 42 47 44 42 47 39 42 47 47 21 36 35 37 36 35 37
++53 35 37 36 35 37 47 47 21 42 38 42 47 39 42 47 44 42 47 44 42 47 44 42
++
++76 18 19 52 30 15 55 39 37 76 18 19 59 36 42 88 30 18 88 44 51 76 18 19
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 122 49 24 102 33 26
++102 33 26 167 63 71 102 33 26 122 49 24 122 49 24 102 33 26 120 63 71 122 49 24
++122 49 24 102 33 26 102 33 26 167 63 71 122 49 24 102 33 26 161 55 23 102 33 26
++122 49 24 102 33 26 102 33 26 102 33 26 88 30 18 102 33 26 102 33 26 76 18 19
++88 30 18 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16
++76 18 19 49 13 16 76 18 19 49 13 16 49 13 16 76 18 19 49 13 16 76 18 19
++76 18 19 76 18 19 102 33 26 102 33 26 120 63 71 102 33 26 120 63 71 122 49 24
++120 63 71 167 63 71 120 63 71 120 63 71 120 63 71 120 63 71 120 63 71 120 63 71
++120 63 71 88 44 51 101 60 73 88 44 51 88 44 51 76 44 53 76 46 20 59 36 42
++59 36 42 55 39 37 55 39 37 55 39 37 60 49 42 55 39 37 60 49 42 60 49 42
++60 49 42 76 44 53 63 55 45 75 56 53 75 56 53 75 56 53 75 73 58 75 56 53
++75 56 53 88 73 62 75 56 53 88 73 62 75 73 58 75 56 53 88 73 62 75 63 62
++88 73 62 75 73 58 75 63 62 75 73 58 75 56 53 75 63 62 65 63 61 75 56 53
++65 63 61 63 55 51 63 55 51 63 55 51 55 55 48 62 47 47 55 55 48 53 46 48
++51 49 42 51 49 42 47 44 42 48 44 48 53 46 48 47 44 42 47 44 42 47 44 42
++51 49 42 51 49 42 53 46 48 51 49 42 53 46 48 51 49 42 60 49 42 53 46 48
++62 47 47 63 55 51 63 55 51 63 55 51 63 55 51 63 55 45 63 55 45 63 55 45
++63 55 45 63 55 45 75 56 53 63 55 45 75 56 53 65 55 54 65 63 61 75 56 53
++64 70 48 63 55 51 63 55 45 55 55 48 60 49 42 51 49 42 51 49 42 51 49 42
++51 49 42 47 49 42 55 39 37 51 49 42 55 39 37 51 49 42 55 39 37 60 49 42
++55 39 37 51 49 42 55 39 37 53 46 48 60 49 42 51 49 42 53 46 48 51 49 42
++55 39 37 51 49 42 53 46 48 60 49 42 53 46 48 55 39 37 51 49 42 51 49 42
++51 49 42 51 49 42 47 44 42 47 39 42 47 47 21 53 35 37 36 35 37 42 41 42
++36 35 37 42 41 42 36 35 37 36 35 37 42 41 42 47 44 42 47 39 42 51 49 42
++47 44 42 51 49 42 53 46 48 55 55 48 59 55 55 59 55 55 59 55 55 63 55 51
++65 63 61 63 55 51 65 63 61 59 55 55 63 55 51 65 63 61 63 55 51 65 63 61
++65 55 54 63 55 51 59 55 55 64 70 48 59 55 55 64 70 48 63 55 51 50 61 48
++59 57 61 59 55 55 65 63 61 63 59 71 65 63 61 63 59 71 59 69 70 75 72 67
++59 69 70 75 81 76 59 69 70 75 81 76 75 81 76 75 81 76 75 81 76 75 81 82
++88 83 74 78 98 90 88 83 74 88 83 88 88 83 74 88 83 88 88 83 88 88 83 74
++88 83 88 88 83 74 75 81 76 88 83 74 88 83 74 88 83 88 88 83 74 88 83 88
++99 93 84 88 83 88 99 93 84 99 93 84 99 93 84 88 83 88 99 93 84 99 93 84
++88 83 88 95 91 100 99 93 84 101 83 74 99 93 84 88 83 88 101 83 74 88 83 88
++101 83 74 88 83 88 88 83 74 88 69 84 88 83 74 88 69 84 88 83 74 75 72 67
++88 66 70 75 73 58 75 63 62 75 63 62 65 63 61 64 70 48 65 55 54 64 70 48
++75 56 53 64 70 48 65 63 61 75 63 62 65 63 61 65 63 61 52 55 48 34 40 43
++25 30 29 23 30 35 23 30 35 22 23 31 22 25 24 26 30 28 31 35 35 30 30 34
++26 24 32 26 30 28 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34
++28 30 35 28 30 35 23 30 35 25 30 29 25 30 29 25 30 29 25 30 29 25 30 29
++25 30 29 25 30 29 25 30 29 25 30 29 22 25 24 22 25 24 23 18 22 12 18 20
++23 18 22 14 16 17 14 16 17 14 16 17 7 12 13 7 12 13 7 12 13 7 12 13
++14 16 17 14 16 17 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 14 16 17
++17 12 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 12 18 20
++23 18 22 23 18 22 23 18 22 14 16 17 14 16 17 14 16 17 23 18 22 14 16 17
++23 18 22 14 16 17 14 16 17 23 18 22 23 20 24 23 20 24 25 30 29 33 39 38
++43 42 50 48 50 48 35 46 43 42 41 42 43 42 50 45 57 61 48 50 48 34 40 43
++25 30 29 22 25 24 22 25 24 33 39 38 35 46 43 34 40 43 23 30 35 25 30 29
++31 35 35 34 40 43 43 42 50 25 30 29 26 24 32 45 57 61 150 147 171 251 251 247
++251 251 247 251 251 247 251 251 247 240 251 247 240 251 247 235 238 247 246 237 247 235 238 247
++240 251 247 235 238 247 221 238 247 221 238 247 226 221 247 221 238 247 226 221 247 221 238 247
++231 239 247 235 238 247 240 251 247 246 237 247 240 251 247 240 251 247 240 251 247 240 251 247
++240 251 247 235 238 247 235 238 247 240 251 247 240 251 247 240 251 247 240 251 247 235 238 247
++240 251 247 231 239 247 240 251 247 231 239 247 231 239 247 221 238 247 221 238 247 231 239 247
++231 239 247 231 239 247 240 251 247 231 239 247 240 251 247 251 251 247 240 251 247 251 251 247
++251 251 247 231 239 247 231 239 247 201 216 228 226 221 247 226 221 247 221 238 247 208 221 247
++208 221 247 226 221 247 208 221 247 208 221 247 208 221 247 221 238 247 232 215 228 208 215 180
++189 165 168 168 146 127 217 168 156 189 165 168 197 171 123 177 169 143 177 169 143 177 169 143
++197 171 123 177 169 143 197 171 123 177 169 143 177 169 143 201 146 124 168 146 127 177 171 115
++168 146 127 201 146 124 168 146 127 177 171 115 168 146 127 146 150 115 177 171 115 168 102 88
++168 146 127 138 126 108 177 171 115 138 126 108 146 150 115 138 126 108 168 102 88 117 127 86
++138 126 108 168 102 88 146 150 115 138 126 108 117 114 76 117 114 76 168 102 88 117 114 76
++117 99 86 117 99 86 101 74 26 88 73 62 88 73 31 75 56 53 60 49 42 55 39 18
++55 39 37 47 47 21 47 47 21 33 30 30 53 35 17 33 30 30 34 30 15 34 30 15
++47 47 21 60 49 42 47 47 21 53 35 17 34 30 15 47 47 21 53 35 17 34 30 15
++23 10 10 23 10 10 15 17 7 15 17 7 15 22 17 15 22 17 22 25 24 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 22 24 13 23 20 24 22 25 24 26 24 32
++26 24 32 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24 23 20 24
++22 25 24 23 20 24 26 30 28 22 25 24 22 25 24 26 24 32 26 30 28 33 30 32
++30 30 34 30 30 34 25 30 29 28 30 35 33 39 38 42 41 42 48 50 48 59 55 55
++54 57 61 54 57 61 59 55 55 45 57 61 48 50 48 45 57 61 43 42 50 48 50 48
++48 50 48 48 50 48 43 55 48 43 42 50 42 47 42 42 47 42 43 42 50 35 46 43
++42 41 42 34 40 43 42 41 42 34 40 43 42 41 42 34 40 43 34 40 43 33 39 38
++34 40 43 33 39 38 37 35 43 33 39 38 37 35 43 28 35 38 28 35 38 31 35 35
++28 35 38 30 30 34 28 35 38 31 35 35 28 30 35 28 35 38 31 35 35 28 35 38
++31 35 35 31 35 35 33 39 38 28 35 38 28 35 38 31 35 35 30 30 34 33 30 30
++47 47 21 87 99 72 163 117 123 168 146 127 177 171 115 201 146 124 177 171 115 168 146 127
++168 146 127 146 151 137 146 151 137 177 169 143 185 202 202 185 202 202 201 216 228 208 215 180
++185 202 202 208 215 180 201 216 228 185 202 202 201 216 228 185 202 202 201 216 228 185 202 202
++201 216 228 185 202 202 185 202 202 185 202 202 166 174 181 148 160 159 146 162 145 166 156 164
++166 180 164 166 156 164 145 140 145 146 151 137 166 180 164 185 202 202 201 216 228 185 202 202
++225 222 201 185 202 202 208 215 180 185 202 202 225 222 201 185 202 202 185 202 202 201 216 228
++208 215 180 201 216 228 201 216 228 185 202 202 225 222 201 185 202 202 185 202 202 148 160 159
++145 140 145 126 147 144 126 147 144 122 134 144 121 143 132 112 123 108 111 119 127 112 123 108
++111 119 127 121 143 132 141 116 139 121 143 132 138 126 108 168 146 127 166 156 164 168 146 127
++168 146 127 177 169 143 189 165 168 185 202 202 185 202 202 208 215 180 185 202 202 185 202 202
++129 144 153 75 81 82 43 42 50 42 41 42 43 42 50 47 44 42 47 49 42 47 49 42
++48 50 48 55 55 48 53 46 48 55 55 48 63 55 51 55 55 48 55 55 48 59 55 55
++63 55 51 55 55 48 63 55 51 63 55 51 55 55 48 55 55 48 55 55 48 53 46 48
++60 49 42 47 44 42 47 44 42 51 49 42 47 44 42 47 44 42 47 39 42 47 39 42
++36 35 37 52 30 35 36 35 37 32 39 24 36 35 37 33 30 30 36 35 37 33 30 30
++36 35 37 52 30 35 33 30 30 36 35 37 36 35 37 36 35 37 47 39 42 36 35 37
++42 38 42 42 41 42 47 44 42 51 49 42 53 46 48 48 50 48 53 46 48 48 50 48
++53 46 48 53 46 48 51 49 42 53 46 48 47 44 42 47 44 42 47 44 42 42 41 42
++47 47 21 36 35 37 42 41 42 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37
++36 35 37 36 35 37 36 35 37 42 41 42 47 47 21 47 44 42 47 44 42 51 49 42
++51 49 42 60 49 42 55 55 48 62 47 47 55 55 48 63 55 45 63 55 51 63 55 51
++65 55 54 63 55 51 65 55 54 63 55 51 63 55 51 63 55 51 62 47 47 60 49 42
++53 46 48 51 49 42 51 49 42 47 44 42 47 39 42 42 38 42 42 38 42 47 47 21
++36 35 37 36 35 37 47 39 42 36 35 37 47 44 42 47 44 42 47 44 42 47 44 42
++
++52 30 15 76 18 19 55 39 18 88 30 18 88 30 18 88 30 18 88 30 18 102 33 26
++88 30 18 102 33 26 102 33 26 102 33 26 122 49 24 102 33 26 122 49 24 122 49 24
++102 33 26 102 33 26 122 49 24 102 33 26 120 63 71 122 49 24 122 49 24 102 33 26
++167 63 71 102 33 26 122 49 24 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 88 30 18 102 33 26 88 30 18 102 33 26
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16 76 18 19 49 13 16
++76 18 19 49 13 16 49 13 16 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19
++76 18 19 76 18 19 88 44 51 102 33 26 102 33 26 120 63 71 120 63 71 120 63 71
++122 49 24 120 63 71 120 63 71 122 49 24 120 63 71 120 63 71 120 63 71 120 63 71
++120 63 71 120 63 71 122 49 24 88 44 51 88 44 51 76 46 20 76 44 53 59 36 42
++76 46 20 59 36 42 55 39 37 60 49 42 55 39 37 60 49 42 60 49 42 60 49 42
++60 49 42 63 55 45 75 56 53 75 56 53 75 56 53 75 56 53 75 56 53 88 73 62
++75 73 58 75 56 53 88 73 62 75 63 62 75 63 62 88 73 62 75 63 62 75 73 58
++75 63 62 88 73 62 75 56 53 75 63 62 75 73 58 75 56 53 75 63 62 65 63 61
++65 55 54 63 55 51 63 55 45 55 55 48 59 55 55 52 55 48 53 46 48 53 46 48
++48 50 48 48 44 48 48 44 48 51 49 42 53 46 48 47 44 42 51 49 42 47 44 42
++48 44 48 48 44 48 48 44 48 51 49 42 51 49 42 48 50 48 51 49 42 53 46 48
++52 55 48 53 46 48 55 55 48 53 46 48 51 49 42 60 49 42 53 46 48 63 55 45
++63 55 51 63 55 51 63 55 51 63 55 51 63 55 51 65 55 54 75 56 53 65 63 61
++65 55 54 63 55 51 55 55 48 51 49 42 51 49 42 51 49 42 51 49 42 51 49 42
++51 49 42 55 39 37 47 49 42 55 39 37 47 49 42 55 39 37 51 49 42 55 39 37
++53 46 48 51 49 42 51 49 42 51 49 42 47 44 42 53 46 48 55 39 37 51 49 42
++47 44 42 51 49 42 55 39 37 51 49 42 51 49 42 51 49 42 51 49 42 51 49 42
++60 49 42 47 44 42 55 39 37 47 44 42 42 41 42 36 35 37 36 35 37 36 35 37
++42 41 42 36 35 37 47 47 21 42 41 42 42 41 42 47 44 42 47 44 42 51 49 42
++47 44 42 53 46 48 51 49 42 55 55 48 63 55 51 59 55 55 65 55 54 65 63 61
++63 55 51 59 55 55 63 55 51 65 63 61 65 55 54 65 63 61 63 55 51 59 55 55
++65 63 61 59 55 55 59 55 55 59 55 55 53 63 61 59 55 55 53 63 61 59 55 55
++65 63 61 53 63 61 59 57 61 53 63 61 59 69 70 59 69 70 75 72 67 59 69 70
++59 69 70 59 69 70 75 81 76 59 69 70 75 81 82 75 81 76 75 81 76 75 81 82
++75 81 82 75 81 82 75 81 82 75 81 82 88 83 88 75 81 76 75 81 82 75 81 76
++75 81 76 75 81 76 88 83 74 75 81 76 88 83 74 88 83 88 88 83 74 88 83 88
++88 83 74 88 83 88 99 93 84 88 83 88 88 83 88 99 93 84 88 83 88 99 93 84
++88 83 88 99 93 84 88 83 88 99 93 84 88 83 88 101 83 74 99 93 84 99 93 84
++88 83 88 101 83 74 88 83 88 88 83 74 88 83 74 88 83 74 88 83 74 75 72 67
++75 72 67 75 72 67 75 63 62 75 73 58 65 63 61 75 63 62 65 55 54 65 63 61
++65 63 61 75 63 62 75 63 62 65 63 61 75 72 67 59 69 70 54 57 61 33 39 38
++25 30 29 25 30 29 22 25 24 12 18 20 22 25 24 30 30 34 31 35 35 30 30 34
++26 30 28 26 24 32 33 30 32 36 35 37 31 35 35 31 35 35 30 30 34 30 30 34
++30 30 34 25 30 29 25 30 29 26 24 32 25 30 29 25 30 29 25 30 29 25 30 29
++23 30 35 25 30 29 25 30 29 22 23 31 22 25 24 12 18 20 12 18 20 23 18 22
++14 16 17 14 16 17 7 12 13 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13
++17 12 17 14 16 17 23 18 22 14 16 17 14 16 17 14 16 17 17 12 17 14 16 17
++14 16 17 14 16 17 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 23 18 22
++12 18 20 12 18 20 23 18 22 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24 26 24 32 42 38 42
++48 50 48 48 50 48 43 42 50 35 46 43 42 41 42 34 40 43 31 35 35 28 30 35
++22 25 24 22 25 24 22 25 24 31 35 35 43 42 50 42 47 42 34 40 43 31 35 35
++23 30 35 31 35 35 34 40 43 43 42 50 31 35 35 12 18 20 75 81 76 166 156 164
++232 215 228 240 251 247 240 251 247 246 237 247 240 251 247 235 238 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 235 238 247 240 251 247 240 251 247
++240 251 247 251 251 247 240 251 247 251 251 247 240 251 247 251 251 247 240 251 247 235 238 247
++231 239 247 235 238 247 240 251 247 240 251 247 235 238 247 240 251 247 235 238 247 240 251 247
++231 239 247 240 251 247 235 238 247 231 239 247 221 238 247 221 238 247 231 239 247 231 239 247
++231 239 247 240 251 247 231 239 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247
++235 238 247 231 239 247 226 221 247 208 221 247 221 238 247 208 221 247 208 221 247 226 221 247
++208 221 247 208 221 247 201 216 228 208 221 247 226 221 247 231 239 247 226 221 247 185 202 202
++189 165 168 177 169 143 197 171 123 189 165 168 197 171 123 217 168 156 177 169 143 217 168 156
++177 169 143 217 168 156 177 169 143 217 168 156 177 169 143 177 169 143 197 171 123 168 146 127
++197 171 123 177 169 143 168 146 127 168 146 127 168 146 127 168 146 127 138 126 108 146 150 115
++168 146 127 146 150 115 168 102 88 138 126 108 168 102 88 157 148 53 117 127 86 168 102 88
++138 126 108 157 148 53 138 126 108 168 102 88 117 114 76 117 114 76 101 83 74 117 112 45
++120 63 71 101 74 26 88 73 62 88 73 31 60 49 42 76 46 20 47 47 21 47 47 21
++47 47 21 52 30 35 32 39 24 32 39 24 33 30 30 47 44 42 63 55 51 75 72 67
++65 63 61 51 49 42 47 44 42 34 30 15 26 25 15 23 20 24 26 25 15 15 17 7
++15 17 7 15 17 7 23 18 22 23 18 22 22 25 24 22 25 24 22 25 24 22 25 24
++23 20 24 23 20 24 23 18 22 22 25 24 22 25 24 22 25 24 22 25 24 26 24 32
++22 25 24 26 24 32 22 25 24 26 30 28 22 25 24 33 30 30 22 25 24 22 25 24
++22 25 24 22 25 24 22 25 24 26 30 28 23 20 24 26 30 28 26 30 28 26 24 32
++26 30 28 30 30 34 25 30 29 25 30 29 30 30 34 36 35 37 42 41 42 45 57 61
++59 55 55 54 57 61 48 50 48 48 50 48 48 50 48 48 50 48 43 42 50 43 55 48
++43 42 50 48 50 48 43 42 50 42 47 42 43 42 50 35 46 43 42 41 42 42 41 42
++35 46 43 42 41 42 34 40 43 34 40 43 34 40 43 33 39 38 42 41 42 34 40 43
++34 40 43 37 35 43 34 40 43 33 39 38 31 35 35 28 35 38 36 35 37 28 35 38
++30 30 34 28 35 38 31 35 35 28 30 35 31 35 35 28 35 38 31 35 35 28 35 38
++31 35 35 31 35 35 31 35 35 36 35 37 36 35 37 31 35 35 30 30 34 33 30 30
++33 30 30 88 73 62 138 126 108 168 146 127 168 146 127 168 146 127 138 126 108 168 146 127
++146 150 115 145 140 145 145 140 145 126 147 144 166 180 164 185 202 202 185 202 202 185 202 202
++185 202 202 201 216 228 185 202 202 208 215 180 201 216 228 208 215 180 201 216 228 208 215 180
++185 202 202 201 216 228 208 215 180 185 202 202 150 171 159 146 151 137 146 151 137 166 180 164
++177 169 143 177 169 143 146 151 137 145 140 145 146 151 137 166 180 164 225 222 201 201 216 228
++225 222 201 201 216 228 201 216 228 201 216 228 201 216 228 185 202 202 225 222 201 185 202 202
++185 202 202 185 202 202 185 202 202 185 202 202 185 202 202 166 174 181 166 180 164 146 162 145
++148 160 159 148 160 159 150 144 154 146 151 137 150 144 154 148 160 159 148 160 159 148 160 159
++166 174 181 166 174 181 166 180 164 150 144 154 145 140 145 138 126 108 146 151 137 145 140 145
++145 140 145 146 162 145 166 174 181 185 202 202 185 202 202 185 202 202 185 202 202 166 174 181
++121 143 132 75 81 76 37 35 43 42 41 42 43 42 50 47 49 42 47 49 42 51 49 42
++48 50 48 52 55 48 55 55 48 62 47 47 55 55 48 55 55 48 63 55 51 63 55 51
++55 55 48 63 55 51 55 55 48 59 55 55 63 55 51 55 55 48 60 49 42 53 46 48
++51 49 42 51 49 42 47 44 42 47 44 42 47 44 42 47 44 42 36 35 37 47 47 21
++36 35 37 36 35 37 33 30 30 36 35 37 52 30 35 32 39 24 36 35 37 33 30 30
++36 35 37 36 35 37 36 35 37 53 35 37 32 39 24 53 35 37 36 35 37 47 44 42
++36 35 37 47 39 42 47 44 42 47 44 42 47 44 42 48 44 48 51 49 42 48 44 48
++51 49 42 48 44 48 48 44 48 47 44 42 47 44 42 47 44 42 47 44 42 36 35 37
++42 41 42 36 35 37 36 35 37 47 47 21 36 35 37 36 35 37 36 35 37 33 30 32
++36 35 37 36 35 37 47 39 42 47 47 21 42 41 42 47 44 42 47 44 42 51 49 42
++51 49 42 55 55 48 60 49 42 55 55 48 63 55 51 63 55 51 63 55 51 63 55 51
++65 55 54 65 55 54 65 55 54 63 55 51 63 55 51 55 55 48 62 47 47 55 55 48
++51 49 42 53 46 48 51 49 42 47 44 42 47 44 42 47 39 42 36 35 37 47 39 42
++42 41 42 47 47 21 42 38 42 47 39 42 47 44 42 55 39 37 47 44 42 47 44 42
++
++52 30 15 52 30 35 76 18 19 52 30 35 76 18 19 76 44 53 76 18 19 88 30 18
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 122 49 24 102 33 26 102 33 26
++102 33 26 167 63 71 102 33 26 122 49 24 122 49 24 102 33 26 122 49 24 122 49 24
++102 33 26 122 49 24 102 33 26 161 55 23 102 33 26 161 55 23 102 33 26 122 49 24
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 88 30 18 102 33 26 76 18 19
++88 30 18 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16 76 18 19
++49 13 16 76 18 19 76 18 19 49 13 16 49 13 16 76 18 19 49 13 16 76 18 19
++76 18 19 76 18 19 76 18 19 102 33 26 88 44 51 102 33 26 102 33 26 102 33 26
++120 63 71 167 63 71 120 63 71 120 63 71 167 63 71 120 63 71 120 63 71 120 63 71
++122 49 24 120 63 71 88 44 51 88 44 51 88 44 51 88 30 18 76 44 53 76 18 19
++59 36 42 59 36 42 55 39 18 55 39 37 60 49 42 55 39 37 59 36 42 60 49 42
++63 55 45 75 56 53 75 56 53 63 55 45 75 56 53 75 56 53 75 73 58 75 56 53
++75 63 62 88 73 62 75 63 62 88 73 62 75 56 53 75 73 58 75 63 62 88 73 62
++75 73 58 75 63 62 75 73 58 75 56 53 75 73 58 65 63 61 75 73 58 75 63 62
++64 70 48 63 55 51 63 55 51 63 55 51 55 55 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 44 48 48 44 48 48 50 48 48 50 48 48 44 48 48 44 48
++47 49 42 48 44 48 48 50 48 48 44 48 48 50 48 47 44 42 47 49 42 47 44 42
++48 50 48 51 49 42 51 49 42 51 49 42 53 46 48 51 49 42 51 49 42 53 46 48
++55 55 48 55 55 48 63 55 51 63 55 51 65 55 54 65 55 54 65 63 61 65 55 54
++65 55 54 63 55 51 63 55 51 55 55 48 51 49 42 48 50 48 51 49 42 53 46 48
++51 49 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 51 49 42
++55 39 37 47 44 42 47 44 42 51 49 42 55 39 37 47 44 42 47 44 42 47 44 42
++55 39 37 47 44 42 51 49 42 47 44 42 47 39 42 51 49 42 47 44 42 53 46 48
++51 49 42 53 46 48 55 39 37 47 39 42 42 41 42 32 39 24 36 35 37 32 39 24
++36 35 37 42 41 42 36 35 37 36 35 37 36 35 37 47 44 42 47 44 42 47 44 42
++51 49 42 51 49 42 53 46 48 55 55 48 59 55 55 63 55 51 59 55 55 63 55 51
++65 63 61 63 55 51 65 63 61 63 55 51 59 55 55 63 55 51 65 63 61 59 55 55
++59 55 55 64 70 48 59 55 55 59 55 55 59 55 55 59 55 55 59 57 61 59 55 55
++53 63 61 59 57 61 53 63 61 59 57 61 65 63 61 63 59 71 63 59 71 59 69 70
++75 64 82 59 69 70 63 59 71 60 81 83 59 69 70 75 64 82 60 81 83 75 81 76
++75 81 76 75 81 82 75 81 82 75 81 82 75 81 76 75 81 82 88 83 74 75 81 76
++75 81 82 75 72 67 75 81 76 88 83 74 75 81 82 88 83 74 88 83 88 88 83 88
++88 83 74 90 98 89 88 83 88 90 98 89 88 83 88 99 93 84 88 83 88 99 93 84
++88 83 88 99 93 84 101 83 74 88 83 88 99 93 84 99 93 84 88 83 88 99 93 84
++88 83 88 88 83 88 88 83 74 88 83 88 88 83 74 75 81 76 88 69 84 75 81 76
++75 72 67 75 72 67 65 63 61 75 72 67 75 63 62 65 63 61 75 56 53 65 57 61
++65 63 61 65 63 61 65 63 61 65 63 61 75 81 76 65 63 61 48 50 48 31 35 35
++25 30 29 25 30 29 23 18 22 14 16 17 22 25 24 33 30 36 31 35 35 26 24 32
++22 25 24 26 30 28 30 30 34 31 35 35 30 30 34 33 30 32 25 30 29 33 30 30
++26 30 28 30 30 34 26 24 32 25 30 29 25 30 29 25 30 29 25 30 29 25 30 29
++25 30 29 22 25 24 22 25 24 23 20 24 23 18 22 14 16 17 23 18 22 14 16 17
++14 16 17 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 17 12 17
++7 12 13 14 16 17 23 18 22 23 18 22 23 18 22 14 16 17 14 16 17 14 16 17
++14 16 17 17 12 17 14 16 17 14 16 17 23 20 24 23 20 24 23 18 22 14 16 17
++23 18 22 15 22 17 12 18 20 23 20 24 12 18 20 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 23 20 24 26 30 28 34 40 43
++48 50 48 35 47 50 42 47 42 33 39 38 31 35 35 25 30 29 25 30 29 22 25 24
++25 30 29 25 30 29 25 30 29 31 35 35 34 40 43 42 41 42 33 39 38 42 41 42
++33 39 38 31 35 35 31 35 35 43 42 50 48 44 48 28 30 35 26 24 32 75 81 76
++166 174 181 231 239 247 235 238 247 235 238 247 235 238 247 231 239 247 226 221 247 233 241 227
++221 238 247 231 239 247 235 238 247 240 251 247 251 251 247 251 251 247 251 251 247 251 251 247
++251 251 247 240 251 247 240 251 247 246 237 247 240 251 247 235 238 247 235 238 247 231 239 247
++235 238 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 231 239 247 240 251 247
++240 251 247 240 251 247 231 239 247 231 239 247 231 239 247 221 238 247 231 239 247 221 238 247
++240 251 247 231 239 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247
++231 239 247 221 238 247 221 238 247 226 221 247 201 216 228 208 221 247 208 221 247 208 221 247
++208 221 247 208 221 247 201 216 228 208 221 247 208 221 247 231 239 247 226 221 247 225 222 201
++217 168 156 177 169 143 177 169 143 217 168 156 177 169 143 177 169 143 197 171 123 217 168 156
++177 169 143 217 168 156 177 169 143 217 168 156 177 169 143 197 171 123 177 169 143 197 171 123
++177 169 143 177 169 143 201 146 124 177 171 115 168 146 127 146 150 115 168 146 127 168 102 88
++146 150 115 168 102 88 177 171 115 138 126 108 138 126 108 138 126 108 138 126 108 117 114 76
++138 126 108 117 127 86 168 102 88 117 114 76 117 99 86 117 112 45 101 83 74 88 73 62
++88 73 62 88 73 62 63 55 45 55 39 37 47 47 21 53 35 37 32 39 24 52 30 35
++32 39 24 52 30 35 32 39 24 53 35 37 47 44 42 75 81 76 112 123 108 111 119 127
++94 105 108 65 63 61 54 57 61 42 38 42 22 25 24 14 16 17 14 16 17 17 12 17
++14 16 17 23 20 24 23 20 24 22 25 24 22 25 24 22 25 24 26 24 32 22 25 24
++22 25 24 23 18 22 22 25 24 23 20 24 26 30 28 26 30 28 26 24 32 26 30 28
++26 24 32 26 30 28 22 25 24 33 30 30 23 20 24 26 30 28 22 25 24 22 25 24
++26 24 32 26 30 28 26 24 32 23 20 24 26 30 28 23 20 24 22 25 24 26 30 28
++30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 31 35 35 42 38 42 48 50 48
++54 57 61 54 57 61 54 57 61 48 50 48 45 57 61 43 55 48 43 42 50 48 50 48
++48 50 48 48 50 48 43 42 50 48 44 48 35 46 43 43 42 50 35 46 43 43 42 50
++42 47 42 43 42 50 42 41 42 35 46 43 42 41 42 42 41 42 42 41 42 34 40 43
++42 41 42 42 41 42 37 35 43 37 35 43 33 39 38 28 35 38 31 35 35 28 35 38
++31 35 35 28 30 35 28 35 38 28 35 38 28 35 38 36 35 37 28 35 38 28 35 38
++31 35 35 31 35 35 33 39 38 31 35 35 36 35 37 36 35 37 31 35 35 33 30 30
++33 30 30 75 72 67 138 102 108 145 140 145 145 140 145 112 123 108 117 99 86 112 96 108
++112 123 108 111 119 127 138 126 108 121 143 132 146 151 137 150 171 159 185 202 202 185 202 202
++208 215 180 185 202 202 208 215 180 185 202 202 201 216 228 201 216 228 185 202 202 185 202 202
++201 216 228 225 222 201 201 216 228 166 174 181 145 140 145 121 143 132 168 146 127 168 146 127
++166 156 164 168 146 127 168 146 127 138 126 108 146 151 137 166 156 164 166 180 164 185 202 202
++185 202 202 185 202 202 185 202 202 185 202 202 185 202 202 185 202 202 166 174 181 185 202 202
++166 174 181 166 174 181 166 180 164 166 174 181 166 180 164 166 174 181 166 174 181 166 174 181
++166 174 181 166 180 164 166 174 181 166 174 181 185 202 202 185 202 202 185 202 202 185 202 202
++185 202 202 185 202 202 188 180 202 150 171 159 145 140 145 121 143 132 145 140 145 138 126 108
++146 151 137 150 171 159 166 180 164 188 180 202 208 215 180 185 202 202 185 202 202 166 174 181
++119 117 138 59 69 70 34 40 43 42 41 42 43 42 50 48 44 48 47 49 42 47 49 42
++51 49 42 48 50 48 53 46 48 55 55 48 59 55 55 62 47 47 55 55 48 59 55 55
++55 55 48 59 55 55 55 55 48 55 55 48 59 55 55 55 55 48 55 55 48 55 55 48
++53 46 48 51 49 42 51 49 42 47 44 42 47 44 42 47 39 42 47 39 42 36 35 37
++47 39 42 32 39 24 53 35 37 36 35 37 33 30 30 36 35 37 36 35 37 32 39 24
++52 30 35 36 35 37 47 47 21 36 35 37 36 35 37 36 35 37 47 39 42 42 41 42
++55 39 37 42 41 42 47 39 42 47 44 42 47 44 42 48 44 48 48 44 48 53 46 48
++47 44 42 51 49 42 53 46 48 47 44 42 47 44 42 47 44 42 47 39 42 47 39 42
++47 47 21 42 41 42 36 35 37 42 38 42 36 35 37 36 35 37 33 30 30 36 35 37
++36 35 37 36 35 37 36 35 37 42 41 42 36 35 37 47 44 42 47 44 42 51 49 42
++55 55 48 53 46 48 55 55 48 63 55 51 63 55 51 59 55 55 63 55 51 65 55 54
++65 55 54 65 55 54 65 55 54 63 55 51 63 55 51 63 55 51 55 55 48 55 55 48
++53 46 48 51 49 42 51 49 42 47 49 42 55 39 37 47 44 42 42 38 42 47 47 21
++47 39 42 42 38 42 47 39 42 47 47 21 47 44 42 47 49 42 47 44 42 47 44 42
++
++52 30 15 76 18 19 53 35 17 76 18 19 76 46 20 76 18 19 88 30 18 88 30 18
++88 30 18 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 122 49 24 122 49 24
++102 33 26 102 33 26 102 33 26 122 49 24 102 33 26 161 55 23 102 33 26 122 49 24
++122 49 24 102 33 26 161 55 23 102 33 26 102 33 26 102 33 26 122 49 24 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 88 30 18 88 30 18 102 33 26
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16 76 18 19 76 18 19
++49 13 16 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19
++49 13 16 76 18 19 76 18 19 88 44 51 102 33 26 120 63 71 120 63 71 120 63 71
++102 33 26 120 63 71 120 63 71 167 63 71 102 33 26 120 63 71 120 63 71 120 63 71
++120 63 71 88 44 51 120 63 71 102 33 26 88 44 51 76 44 53 88 30 18 59 36 42
++76 46 20 55 39 37 55 39 37 60 49 42 55 39 37 60 49 42 60 49 42 62 47 47
++63 55 45 75 56 53 75 56 53 75 73 36 75 56 53 75 73 58 75 56 53 75 73 58
++88 73 62 75 56 53 88 73 62 75 56 53 75 73 58 88 73 62 75 63 62 75 63 62
++75 63 62 88 73 62 75 63 62 75 73 58 75 73 58 75 63 62 75 63 62 65 63 61
++65 55 54 63 55 51 63 55 51 55 55 48 55 55 48 55 55 48 53 46 48 59 55 55
++48 50 48 48 44 48 48 44 48 48 50 48 53 46 48 48 50 48 42 47 42 48 44 48
++48 44 48 47 44 42 48 44 48 47 44 42 47 44 42 47 44 42 47 44 42 47 49 42
++51 49 42 51 49 42 51 49 42 47 44 42 47 44 42 51 49 42 47 44 42 51 49 42
++53 46 48 55 55 48 55 55 48 63 55 51 65 55 54 65 55 54 65 55 54 65 55 54
++65 55 54 63 55 51 59 55 55 53 46 48 55 55 48 51 49 42 48 50 48 51 49 42
++51 49 42 47 44 42 51 49 42 47 44 42 55 39 37 51 49 42 55 39 37 47 44 42
++47 44 42 51 49 42 55 39 37 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 55 39 37 51 49 42 47 44 42 55 39 37 47 44 42
++47 44 42 55 39 37 47 39 42 42 41 42 32 39 24 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 42 41 42 47 47 21 47 39 42 47 44 42 51 49 42
++47 44 42 53 46 48 60 49 42 55 55 48 63 55 51 59 55 55 63 55 51 65 55 54
++65 55 54 63 55 51 63 55 51 65 63 61 63 55 51 59 55 55 63 55 51 59 55 55
++65 63 61 59 55 55 53 63 61 59 55 55 59 55 55 53 63 61 53 63 61 59 55 55
++53 63 61 59 57 61 53 63 61 59 57 61 59 69 70 53 63 61 59 69 70 59 69 70
++59 69 70 59 69 70 75 81 76 59 69 70 75 81 76 59 69 70 75 81 76 60 82 70
++75 81 76 75 81 76 75 81 76 75 64 82 75 81 76 75 81 76 75 81 76 75 64 82
++75 72 67 75 64 82 75 81 69 75 81 76 88 83 74 75 81 82 88 83 74 75 81 82
++88 83 74 88 83 88 88 83 74 99 93 84 88 83 88 88 83 88 88 83 88 99 93 84
++88 83 88 88 83 88 99 93 84 88 83 88 101 83 74 88 83 88 99 93 84 88 83 88
++88 83 74 99 93 84 88 83 88 88 83 74 88 83 88 88 83 74 88 83 74 75 81 76
++88 66 70 75 72 67 75 72 67 75 72 67 75 59 67 75 63 62 75 59 67 65 63 61
++65 57 61 65 63 61 75 63 62 59 69 70 65 63 61 48 50 48 28 30 35 25 30 29
++26 24 32 22 25 24 14 16 17 23 18 22 28 30 35 36 35 37 31 35 35 25 30 29
++23 20 24 22 25 24 22 25 24 26 24 32 26 30 28 25 30 29 26 24 32 25 30 29
++26 30 28 26 30 28 30 30 34 30 30 34 28 30 35 25 30 29 25 30 29 25 30 29
++22 23 31 22 25 24 12 18 20 14 16 17 14 16 17 12 18 20 14 16 17 14 16 17
++14 16 17 14 16 17 17 12 17 14 16 17 17 12 17 14 16 17 14 16 17 14 16 17
++23 18 22 23 20 24 15 22 17 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24
++14 16 17 14 16 17 17 12 17 23 20 24 22 25 24 22 25 24 23 20 24 12 18 20
++23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24
++23 20 24 22 25 24 22 23 31 22 25 24 22 23 31 22 25 24 26 24 32 42 38 42
++48 50 48 48 50 48 43 42 50 28 30 35 22 25 24 25 30 29 31 35 35 28 35 38
++23 30 35 25 30 29 31 35 35 33 39 38 34 40 43 31 35 35 31 35 35 42 47 42
++42 41 42 34 40 43 28 30 35 34 40 43 48 50 48 43 42 50 26 24 32 28 35 38
++119 117 138 185 202 202 235 238 247 232 215 228 201 216 228 201 216 228 201 216 228 201 216 228
++232 215 228 231 239 247 240 251 247 251 251 247 251 251 247 240 251 247 251 251 247 240 251 247
++235 238 247 240 251 247 246 237 247 240 251 247 235 238 247 235 238 247 240 251 247 240 251 247
++240 251 247 240 251 247 240 251 247 246 237 247 240 251 247 235 238 247 231 239 247 240 251 247
++231 239 247 231 239 247 231 239 247 231 239 247 221 238 247 231 239 247 240 251 247 231 239 247
++231 239 247 240 251 247 240 251 247 240 251 247 235 238 247 240 251 247 246 237 247 235 238 247
++231 239 247 226 221 247 221 238 247 208 221 247 201 216 228 208 221 247 201 216 228 208 221 247
++201 216 228 201 216 228 208 221 247 208 221 247 226 221 247 231 239 247 226 221 247 185 202 202
++189 165 168 177 169 143 201 146 124 177 169 143 217 168 156 177 169 143 217 168 156 177 169 143
++197 171 123 177 169 143 197 171 123 177 169 143 177 169 143 197 171 123 177 169 143 177 169 143
++201 146 124 177 169 143 168 146 127 168 146 127 168 146 127 168 102 88 146 150 115 177 171 115
++146 150 115 146 150 115 168 102 88 138 126 108 168 102 88 117 127 86 168 102 88 117 114 76
++117 114 76 168 102 88 117 114 76 117 114 76 117 99 86 120 63 71 101 74 26 88 73 62
++88 73 31 60 49 42 55 39 18 55 39 18 34 30 15 34 30 15 53 35 17 32 39 24
++53 35 17 32 39 24 52 30 35 63 55 45 90 98 89 145 140 145 166 156 164 166 156 164
++112 123 108 75 72 67 75 72 67 52 55 48 33 30 30 15 17 7 17 12 17 23 18 22
++22 25 24 23 20 24 15 22 17 23 20 24 22 25 24 26 24 32 22 25 24 22 25 24
++22 25 24 22 25 24 22 25 24 26 30 28 26 30 28 33 30 30 22 25 24 33 30 30
++26 24 32 26 30 28 26 30 28 22 25 24 33 30 30 22 25 24 22 25 24 23 20 24
++26 30 28 23 20 24 26 30 28 22 25 24 22 25 24 26 30 28 23 20 24 26 24 32
++26 30 28 30 30 34 30 30 34 30 30 34 30 30 34 31 35 35 36 35 37 42 47 42
++45 57 61 54 57 61 54 57 61 43 55 48 48 50 48 43 42 50 43 55 48 43 42 50
++48 50 48 43 42 50 48 50 48 43 42 50 42 47 42 43 42 50 48 50 48 43 42 50
++43 55 48 43 42 50 42 47 42 43 42 50 42 47 42 35 47 50 42 47 42 42 41 42
++42 41 42 34 40 43 42 41 42 34 40 43 34 40 43 33 39 38 31 35 35 33 39 38
++28 35 38 31 35 35 33 39 38 36 35 37 33 39 38 34 40 43 31 35 35 37 35 43
++33 39 38 33 39 38 31 35 35 36 35 37 36 35 37 36 35 37 33 30 32 33 30 30
++36 35 37 75 77 62 112 123 108 146 151 137 138 126 108 112 96 108 75 72 67 75 72 67
++90 98 89 94 105 108 112 123 108 119 117 138 146 151 137 146 151 137 166 180 164 185 202 202
++185 202 202 185 202 202 185 202 202 185 202 202 208 215 180 185 202 202 185 202 202 185 202 202
++208 215 180 201 216 228 185 202 202 150 171 159 112 123 108 138 126 108 146 151 137 168 146 127
++168 146 127 177 169 143 168 146 127 146 151 137 138 126 108 121 143 132 145 140 145 146 162 145
++146 162 145 146 151 137 146 151 137 146 151 137 146 151 137 126 147 144 146 162 145 126 147 144
++146 162 145 148 160 159 145 140 145 146 162 145 148 160 159 166 174 181 185 202 202 185 202 202
++185 202 202 185 202 202 185 202 202 185 202 202 185 202 202 185 202 202 185 202 202 185 202 202
++185 202 202 185 202 202 185 202 202 166 180 164 145 140 145 138 126 108 111 119 127 121 143 132
++145 140 145 146 162 145 188 180 202 185 202 202 166 174 181 185 202 202 185 202 202 166 180 164
++112 123 108 63 59 71 33 39 38 42 41 42 48 44 48 42 47 42 47 49 42 47 49 42
++48 50 48 51 49 42 53 46 48 53 46 48 55 55 48 55 55 48 63 55 51 53 46 48
++55 55 48 62 47 47 55 55 48 62 47 47 55 55 48 62 47 47 55 55 48 53 46 48
++53 46 48 51 49 42 47 44 42 47 44 42 47 44 42 42 41 42 36 35 37 53 35 37
++36 35 37 36 35 37 33 30 30 33 30 30 36 35 37 52 30 35 33 30 30 36 35 37
++36 35 37 36 35 37 36 35 37 47 39 42 36 35 37 53 35 37 36 35 37 47 47 21
++42 38 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 48 44 48 48 44 48
++53 46 48 48 44 48 51 49 42 47 44 42 47 44 42 47 44 42 42 41 42 36 35 37
++47 39 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 47 39 42 47 47 21 42 41 42 47 44 42 47 44 42 51 49 42
++55 55 48 60 49 42 59 55 55 63 55 51 59 55 55 63 55 51 63 55 51 63 55 51
++65 55 54 65 55 54 63 55 51 63 55 51 62 47 47 55 55 48 62 47 47 55 55 48
++53 46 48 48 50 48 51 49 42 51 49 42 47 44 42 47 44 42 47 39 42 42 41 42
++47 39 42 47 44 42 47 39 42 47 39 42 47 44 42 47 44 42 47 44 42 51 49 42
++
++49 13 16 52 30 15 52 30 35 76 18 19 59 36 42 76 18 19 88 30 18 88 30 18
++88 30 18 102 33 26 102 33 26 102 33 26 102 33 26 122 49 24 102 33 26 102 33 26
++102 33 26 161 55 23 102 33 26 122 49 24 102 33 26 102 33 26 102 33 26 102 33 26
++161 55 23 102 33 26 102 33 26 122 49 24 102 33 26 161 55 23 102 33 26 122 49 24
++102 33 26 102 33 26 102 33 26 102 33 26 88 30 18 102 33 26 88 30 18 88 30 18
++88 30 18 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16
++76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 49 13 16
++76 18 19 76 18 19 76 18 19 76 18 19 102 33 26 102 33 26 102 33 26 102 33 26
++120 63 71 167 63 71 122 49 24 120 63 71 167 63 71 120 63 71 122 49 24 120 63 71
++122 49 24 120 63 71 102 33 26 88 44 51 88 44 51 88 44 51 76 46 20 76 44 53
++59 36 42 59 36 42 55 39 37 60 49 42 59 36 42 60 49 42 62 47 47 62 47 47
++63 55 45 63 55 45 75 56 53 75 56 53 75 73 58 75 56 53 75 73 58 75 63 62
++75 63 62 75 73 58 75 63 62 75 63 62 75 73 58 75 63 62 75 73 58 75 73 58
++88 73 62 75 73 58 75 63 62 75 73 58 75 63 62 75 73 58 75 63 62 64 70 48
++65 63 61 63 55 51 55 55 48 55 55 48 55 55 48 48 50 48 59 55 55 48 50 48
++48 50 48 48 50 48 48 50 48 48 44 48 48 50 48 48 50 48 48 44 48 48 50 48
++48 50 48 48 44 48 48 44 48 47 49 42 48 44 48 42 47 42 48 44 48 47 44 42
++48 50 48 48 44 48 51 49 42 47 49 42 47 44 42 47 44 42 47 39 42 51 49 42
++51 49 42 60 49 42 55 55 48 55 55 48 63 55 51 65 63 61 63 55 51 63 55 51
++63 55 51 55 55 48 63 55 51 55 55 48 55 55 48 48 50 48 55 55 48 48 50 48
++51 49 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 51 49 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 55 39 37 47 44 42 47 39 42
++47 39 42 47 44 42 47 44 42 47 44 42 51 49 42 47 44 42 51 49 42 47 44 42
++55 39 37 42 41 42 53 35 37 42 41 42 53 35 37 32 39 24 36 35 37 36 35 37
++36 35 37 36 35 37 32 39 24 36 35 37 42 38 42 47 44 42 47 39 42 47 44 42
++51 49 42 51 49 42 53 46 48 55 55 48 63 55 51 59 55 55 63 55 51 59 55 55
++59 55 55 63 55 51 65 63 61 63 55 51 63 55 51 65 63 61 59 55 55 65 63 61
++59 55 55 63 55 51 59 55 55 55 55 48 59 55 55 65 63 61 59 57 61 53 63 61
++55 55 48 54 57 61 53 63 61 53 63 61 53 63 61 59 57 61 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 60 81 83
++59 69 70 75 64 82 59 69 70 75 81 76 75 72 67 75 81 76 63 59 71 75 81 76
++75 81 76 75 81 76 75 72 67 75 81 76 75 81 76 88 83 88 75 81 82 88 83 74
++75 81 82 88 83 88 88 83 88 88 83 88 99 93 84 88 83 88 99 93 84 88 83 88
++88 83 88 99 93 84 88 83 88 88 83 88 88 83 88 99 93 84 88 83 88 99 93 84
++88 83 88 99 93 84 88 83 88 88 83 88 88 83 74 88 83 88 88 69 84 75 81 76
++75 81 76 75 72 67 63 59 71 75 72 67 75 72 67 75 72 67 75 63 62 65 63 61
++65 57 61 65 63 61 65 63 61 65 63 61 59 57 61 42 47 42 28 30 35 25 30 29
++22 25 24 12 18 20 14 16 17 23 20 24 36 35 37 34 40 43 36 35 37 26 24 32
++25 30 29 26 24 32 30 30 34 30 30 34 25 30 29 25 30 29 30 30 34 26 24 32
++26 24 32 25 30 29 28 30 35 26 30 28 30 30 34 30 30 34 26 24 32 25 30 29
++22 25 24 23 20 24 14 16 17 23 18 22 14 16 17 17 12 17 14 16 17 14 16 17
++17 12 17 14 16 17 14 16 17 14 16 17 14 16 17 15 22 17 23 20 24 23 20 24
++23 20 24 12 18 20 23 18 22 22 25 24 23 20 24 26 30 28 26 24 32 22 25 24
++23 18 22 14 16 17 14 16 17 14 16 17 23 20 24 25 30 29 22 25 24 22 25 24
++12 18 20 22 25 24 23 20 24 12 18 20 23 18 22 12 18 20 23 20 24 22 25 24
++22 23 31 22 25 24 22 25 24 26 24 32 22 25 24 22 25 24 26 30 28 34 40 43
++48 50 48 54 57 61 43 55 48 33 39 38 28 30 35 34 40 43 34 40 43 33 39 38
++28 30 35 23 30 35 33 39 38 42 41 42 42 41 42 31 35 35 25 30 29 33 39 38
++35 46 43 43 42 50 31 35 35 28 30 35 34 40 43 48 50 48 33 39 38 33 30 36
++75 72 67 145 140 145 201 216 228 201 216 228 225 222 201 201 216 228 232 215 228 221 238 247
++231 239 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247
++246 237 247 240 251 247 240 251 247 235 238 247 235 238 247 240 251 247 240 251 247 240 251 247
++251 251 247 251 251 247 240 251 247 231 239 247 240 251 247 231 239 247 240 251 247 231 239 247
++231 239 247 221 238 247 221 238 247 231 239 247 231 239 247 231 239 247 221 238 247 240 251 247
++231 239 247 240 251 247 240 251 247 235 238 247 235 238 247 240 251 247 240 251 247 235 238 247
++231 239 247 221 238 247 226 221 247 226 221 247 226 221 247 208 221 247 226 221 247 201 216 228
++208 221 247 201 216 228 201 216 228 208 221 247 221 238 247 231 239 247 232 215 228 185 202 202
++189 165 168 177 169 143 217 168 156 189 165 168 197 171 123 177 169 143 197 171 123 177 169 143
++217 168 156 177 169 143 217 168 156 177 169 143 201 146 124 177 169 143 177 169 143 201 146 124
++177 169 143 177 171 115 168 146 127 201 146 124 146 150 115 168 146 127 146 150 115 168 146 127
++168 102 88 146 150 115 138 126 108 146 150 115 117 127 86 168 102 88 117 114 76 120 63 71
++117 112 45 117 99 86 117 112 45 117 99 86 101 74 26 88 73 62 88 73 62 88 73 31
++63 55 45 60 49 42 55 39 37 52 30 15 32 39 24 34 30 15 32 39 24 33 30 30
++36 35 37 51 49 42 75 72 67 90 98 89 145 140 145 166 180 164 188 180 202 166 156 164
++111 119 127 75 81 76 75 81 90 59 69 70 36 35 37 17 12 17 7 12 13 23 18 22
++22 25 24 23 20 24 14 16 17 23 18 22 22 25 24 22 25 24 26 30 28 23 20 24
++22 25 24 26 24 32 22 25 24 26 30 28 22 25 24 26 30 28 26 24 32 26 30 28
++22 25 24 33 30 30 23 20 24 26 30 28 26 30 28 23 20 24 33 30 30 22 25 24
++23 20 24 26 30 28 22 25 24 23 20 24 33 30 30 26 24 32 26 30 28 26 30 28
++26 24 32 25 30 29 25 30 29 26 30 28 31 35 35 30 30 34 31 35 35 42 41 42
++52 55 48 59 57 61 54 57 61 48 50 48 43 55 48 48 50 48 35 47 50 48 50 48
++35 47 50 48 50 48 42 47 42 48 50 48 48 50 48 48 50 48 48 50 48 43 55 48
++48 50 48 48 50 48 43 55 48 48 50 48 43 42 50 48 50 48 35 47 50 42 47 42
++35 47 50 43 42 50 34 40 43 34 40 43 34 40 43 33 39 38 37 35 43 33 39 38
++36 35 37 33 39 38 33 39 38 33 39 38 33 39 38 37 35 43 33 39 38 34 40 43
++36 35 37 33 39 38 37 35 43 33 39 38 37 35 43 37 35 43 36 35 37 36 35 37
++42 41 42 75 72 67 112 96 108 145 140 145 145 140 145 112 123 108 112 123 108 138 126 108
++121 143 132 145 140 145 126 147 144 146 151 137 126 147 144 148 160 159 150 171 159 150 171 159
++166 180 164 166 180 164 166 180 164 166 180 164 150 171 159 146 162 145 146 162 145 146 162 145
++126 147 144 146 151 137 112 123 108 90 98 89 90 98 89 138 126 108 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 168 146 127 138 126 108 112 96 108 90 98 89 99 93 84
++112 96 108 112 123 108 112 123 108 112 123 108 111 119 127 121 143 132 121 143 132 121 143 132
++122 134 144 121 143 132 126 147 144 148 160 159 166 174 181 185 202 202 185 202 202 185 202 202
++185 202 202 185 202 202 185 202 202 208 215 180 185 202 202 185 202 202 166 180 164 185 202 202
++166 174 181 188 180 202 166 174 181 166 174 181 148 160 159 126 147 144 111 119 127 138 126 108
++121 143 132 166 180 164 166 180 164 166 174 181 208 215 180 185 202 202 166 174 181 150 144 154
++94 105 108 45 57 61 37 35 43 42 47 42 43 42 50 48 44 48 47 44 42 47 44 42
++47 49 42 51 49 42 51 49 42 53 46 48 55 55 48 53 46 48 55 55 48 59 55 55
++59 55 55 53 46 48 55 55 48 52 55 48 53 46 48 55 55 48 53 46 48 53 46 48
++51 49 42 47 44 42 47 44 42 47 39 42 42 41 42 55 39 37 36 35 37 42 41 42
++36 35 37 36 35 37 36 35 37 36 35 37 33 30 30 36 35 37 36 35 37 32 39 24
++52 30 35 36 35 37 36 35 37 42 38 42 32 39 24 36 35 37 36 35 37 42 38 42
++47 39 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 48 44 48 48 44 48
++51 49 42 51 49 42 53 46 48 47 44 42 47 44 42 47 44 42 47 39 42 42 41 42
++47 47 21 42 41 42 42 38 42 47 47 21 36 35 37 36 35 37 36 35 37 32 39 24
++36 35 37 42 41 42 36 35 37 42 41 42 42 41 42 42 47 42 51 49 42 51 49 42
++53 46 48 55 55 48 55 55 48 63 55 51 65 55 54 63 55 51 63 55 51 65 55 54
++65 55 54 63 55 51 63 55 51 55 55 48 55 55 48 55 55 48 55 55 48 51 49 42
++55 55 48 53 46 48 51 49 42 51 49 42 47 44 42 47 44 42 42 41 42 55 39 37
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++
++52 30 15 76 18 19 52 30 15 76 18 19 76 18 19 88 30 18 76 18 19 88 44 51
++76 18 19 88 30 18 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 122 49 24
++102 33 26 102 33 26 102 33 26 122 49 24 102 33 26 161 55 23 102 33 26 102 33 26
++102 33 26 102 33 26 161 55 23 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 88 30 18 88 30 18 88 30 18 102 33 26
++76 18 19 76 18 19 76 18 19 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19
++49 13 16 76 18 19 49 13 16 49 13 16 76 18 19 49 13 16 76 18 19 49 13 16
++76 18 19 76 18 19 76 18 19 76 18 19 88 44 51 102 33 26 88 44 51 167 63 71
++102 33 26 120 63 71 120 63 71 120 63 71 120 63 71 122 49 24 120 63 71 120 63 71
++120 63 71 122 49 24 88 44 51 102 33 26 88 44 51 88 44 51 76 44 53 76 46 20
++59 36 42 76 46 20 62 47 47 55 39 37 60 49 42 59 36 42 60 49 42 63 55 45
++75 56 53 75 56 53 75 56 53 75 63 62 75 56 53 75 73 58 75 63 62 75 73 58
++88 73 62 75 63 62 75 73 58 75 63 62 75 73 58 75 63 62 75 73 58 75 63 62
++75 63 62 75 72 67 75 73 58 75 63 62 75 73 58 75 56 53 65 63 61 65 63 61
++63 55 51 63 55 51 55 55 48 55 55 48 55 55 48 48 50 48 53 46 48 48 50 48
++48 50 48 48 44 48 48 50 48 48 44 48 48 50 48 48 44 48 48 50 48 48 44 48
++47 44 42 47 44 42 47 44 42 42 47 42 48 44 48 42 47 42 48 44 48 42 47 42
++48 44 48 48 50 48 47 44 42 48 50 48 47 44 42 47 44 42 47 44 42 47 44 42
++51 49 42 53 46 48 55 55 48 55 55 48 59 55 55 63 55 51 59 55 55 63 55 51
++63 55 51 59 55 55 55 55 48 62 47 47 52 55 48 48 50 48 51 49 42 51 49 42
++47 49 42 47 44 42 47 44 42 47 49 42 47 44 42 47 44 42 47 44 42 47 39 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 47 21
++42 41 42 47 39 42 47 44 42 55 39 37 47 44 42 51 49 42 55 39 37 47 44 42
++47 47 21 42 38 42 36 35 37 36 35 37 36 35 37 52 30 35 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 42 41 42 47 44 42 47 44 42
++51 49 42 48 50 48 52 55 48 53 46 48 63 55 51 59 55 55 59 55 55 59 55 55
++63 55 51 65 63 61 63 55 51 59 55 55 59 55 55 59 55 55 59 55 55 63 55 51
++63 55 51 63 55 51 59 55 55 55 55 48 59 55 55 53 63 61 59 55 55 53 63 61
++54 57 61 53 63 61 53 63 61 53 63 61 53 63 61 59 69 70 53 63 61 59 69 70
++59 69 70 59 69 70 59 69 70 60 81 83 75 64 82 59 69 70 75 81 76 59 69 70
++75 81 82 59 69 70 59 69 70 75 64 82 59 69 70 59 69 70 75 64 82 59 69 70
++75 64 82 75 81 76 75 64 82 75 81 76 75 81 76 75 81 82 88 83 74 75 81 82
++88 83 88 88 83 88 88 83 88 88 83 88 88 83 74 88 83 88 88 83 88 99 93 84
++88 83 88 99 93 84 88 83 88 99 93 84 88 83 88 88 83 88 99 93 84 88 83 88
++99 93 84 88 83 74 88 83 88 99 93 84 88 83 74 88 83 88 88 83 74 75 81 82
++88 66 70 75 72 67 75 72 67 75 72 67 75 64 82 75 72 67 63 59 71 75 63 62
++65 63 61 65 63 61 75 63 62 59 69 70 59 55 55 42 41 42 31 35 35 25 30 29
++12 18 20 7 12 13 14 16 17 22 25 24 36 35 37 42 38 42 31 35 35 30 30 34
++30 30 34 31 35 35 33 39 38 31 35 35 28 30 35 28 30 35 28 30 35 26 24 32
++25 30 29 25 30 29 25 30 29 30 30 34 30 30 34 30 30 34 26 30 28 22 25 24
++23 20 24 12 18 20 14 16 17 14 16 17 14 16 17 23 18 22 14 16 17 17 12 17
++14 16 17 14 16 17 23 18 22 14 16 17 23 20 24 23 20 24 23 20 24 15 22 17
++14 16 17 23 18 22 14 16 17 14 16 17 23 20 24 26 30 28 30 30 34 30 30 34
++23 20 24 23 18 22 14 16 17 23 18 22 23 20 24 25 30 29 25 30 29 22 23 31
++22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 15 22 17 23 20 24
++22 25 24 26 24 32 22 25 24 26 30 28 26 24 32 22 25 24 25 30 29 36 35 37
++48 50 48 45 57 61 48 50 48 35 46 43 42 41 42 43 42 50 48 50 48 34 40 43
++25 30 29 25 30 29 33 39 38 43 42 50 35 47 50 34 40 43 31 35 35 30 30 34
++34 40 43 42 47 42 33 39 38 31 35 35 31 35 35 34 40 43 42 41 42 43 42 50
++28 30 35 94 105 108 185 202 202 233 241 227 235 238 247 235 238 247 240 251 247 231 239 247
++231 239 247 240 251 247 240 251 247 240 251 247 235 238 247 240 251 247 235 238 247 240 251 247
++235 238 247 240 251 247 235 238 247 240 251 247 240 251 247 240 251 247 251 251 247 251 251 247
++240 251 247 246 237 247 240 251 247 240 251 247 240 251 247 231 239 247 231 239 247 221 238 247
++221 238 247 221 238 247 231 239 247 231 239 247 231 239 247 240 251 247 231 239 247 231 239 247
++240 251 247 240 251 247 231 239 247 240 251 247 231 239 247 235 238 247 240 251 247 231 239 247
++231 239 247 226 221 247 221 238 247 208 221 247 208 221 247 201 216 228 208 221 247 201 216 228
++208 221 247 194 199 226 194 199 226 201 216 228 208 221 247 221 238 247 208 221 247 185 202 202
++189 165 168 177 169 143 177 169 143 197 171 123 189 165 168 197 171 123 189 165 168 197 171 123
++177 169 143 197 171 123 217 168 156 177 169 143 197 171 123 177 169 143 201 146 124 177 169 143
++177 169 143 201 146 124 168 146 127 146 150 115 168 102 88 146 150 115 168 102 88 146 150 115
++168 146 127 168 102 88 146 150 115 168 102 88 138 126 108 117 114 76 117 114 76 117 112 45
++120 63 71 101 83 74 120 63 71 101 83 74 101 83 74 88 73 31 88 73 62 75 56 53
++63 55 45 60 49 42 47 47 21 29 35 19 33 30 30 32 39 24 53 35 17 33 30 30
++60 49 42 75 72 67 95 91 100 145 140 145 148 160 159 188 180 202 166 174 181 148 160 159
++95 95 116 75 81 76 75 81 90 75 81 69 48 50 48 22 25 24 15 17 7 17 12 17
++23 18 22 23 20 24 23 18 22 15 22 17 22 25 24 22 25 24 22 25 24 26 30 28
++26 24 32 22 25 24 33 30 30 22 25 24 26 30 28 26 30 28 22 25 24 22 25 24
++22 25 24 26 30 28 26 30 28 23 20 24 33 30 30 22 25 24 23 18 22 23 20 24
++22 25 24 22 25 24 33 30 30 26 30 28 22 25 24 26 30 28 22 25 24 26 24 32
++26 30 28 26 24 32 25 30 29 30 30 34 30 30 34 31 35 35 33 30 36 33 39 38
++43 42 50 54 57 61 54 57 61 43 55 48 45 57 61 43 42 50 43 55 48 43 42 50
++42 47 42 48 50 48 48 50 48 48 50 48 48 50 48 43 55 48 48 50 48 48 50 48
++43 55 48 48 50 48 45 57 61 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++43 42 50 35 47 50 43 42 50 35 46 43 42 47 42 34 40 43 34 40 43 33 39 38
++34 40 43 33 39 38 33 39 38 34 40 43 33 39 38 33 39 38 34 40 43 34 40 43
++37 35 43 36 35 37 36 35 37 42 41 42 42 38 42 42 41 42 33 39 38 31 35 35
++36 35 37 65 63 61 98 113 84 145 140 145 121 143 132 145 140 145 148 160 159 166 180 164
++166 174 181 166 180 164 166 180 164 166 174 181 166 180 164 166 174 181 166 174 181 150 171 159
++148 160 159 126 147 144 126 147 144 126 147 144 121 143 132 112 123 108 112 123 108 95 119 107
++95 119 107 95 91 100 75 81 76 75 81 76 112 96 108 146 151 137 177 169 143 168 146 127
++138 126 108 168 102 88 168 146 127 177 169 143 146 151 137 138 126 108 112 123 108 112 96 108
++112 123 108 138 126 108 121 143 132 145 140 145 146 150 115 145 140 145 145 140 145 121 143 132
++112 123 108 121 143 132 150 144 154 166 180 164 185 202 202 185 202 202 208 215 180 185 202 202
++185 202 202 185 202 202 185 202 202 188 180 202 166 180 164 185 202 202 166 174 181 166 174 181
++166 180 164 185 202 202 166 180 164 166 174 181 166 180 164 126 147 144 111 119 127 111 119 127
++121 143 132 166 156 164 185 202 202 185 202 202 185 202 202 166 180 164 166 174 181 126 147 144
++75 81 82 43 55 48 33 39 38 43 42 50 47 44 42 42 41 42 42 47 42 48 44 48
++47 49 42 48 50 48 51 49 42 48 50 48 55 55 48 52 55 48 53 46 48 55 55 48
++53 46 48 53 46 48 52 55 48 48 50 48 51 49 42 51 49 42 51 49 42 47 44 42
++47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 36 35 37 36 35 37 47 47 21
++36 35 37 36 35 37 52 30 35 33 30 30 36 35 37 36 35 37 52 30 35 36 35 37
++36 35 37 36 35 37 53 35 37 36 35 37 42 41 42 36 35 37 47 39 42 47 39 42
++47 44 42 47 44 42 47 44 42 51 49 42 47 44 42 53 46 48 48 44 48 53 46 48
++51 49 42 53 46 48 51 49 42 51 49 42 51 49 42 47 44 42 42 41 42 36 35 37
++42 41 42 36 35 37 42 41 42 36 35 37 36 35 37 32 39 24 36 35 37 36 35 37
++53 35 37 36 35 37 42 47 42 42 47 42 47 47 21 47 44 42 47 49 42 51 49 42
++52 55 48 52 55 48 55 55 48 63 55 51 63 55 51 63 55 51 65 55 54 65 55 54
++65 55 54 63 55 51 63 55 51 55 55 48 55 55 48 62 47 47 55 55 48 62 47 47
++53 46 48 55 55 48 53 46 48 51 49 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 47 44 42
++
++49 13 16 52 30 15 76 18 19 52 30 35 76 18 19 76 18 19 88 30 18 76 18 19
++88 30 18 76 18 19 102 33 26 102 33 26 102 33 26 102 33 26 122 49 24 102 33 26
++102 33 26 122 49 24 102 33 26 122 49 24 102 33 26 102 33 26 102 33 26 102 33 26
++161 55 23 102 33 26 102 33 26 102 33 26 161 55 23 102 33 26 122 49 24 122 49 24
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 88 30 18 102 33 26 76 18 19
++88 30 18 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16
++76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 49 13 16
++76 18 19 49 13 16 76 18 19 76 18 19 76 18 19 102 33 26 102 33 26 102 33 26
++120 63 71 122 49 24 120 63 71 161 55 23 120 63 71 167 63 71 120 63 71 122 49 24
++120 63 71 122 49 24 120 63 71 88 44 51 102 33 26 88 44 51 88 30 18 76 44 53
++76 44 53 62 47 47 60 49 42 60 49 42 55 39 37 60 49 42 60 49 42 62 47 47
++63 55 45 63 55 45 75 56 53 75 56 53 75 63 62 75 56 53 75 73 58 75 63 62
++75 73 58 75 63 62 75 73 58 75 63 62 88 73 62 75 73 58 88 73 62 75 73 58
++88 73 62 75 63 62 75 73 58 75 63 62 75 73 58 75 63 62 64 70 48 65 63 61
++63 55 51 63 55 51 63 55 45 59 55 55 55 55 48 54 57 61 48 50 48 48 50 48
++48 50 48 48 50 48 53 46 48 48 44 48 48 50 48 47 44 42 47 44 42 42 47 42
++48 44 48 47 44 42 48 44 48 48 44 48 42 47 42 47 44 42 42 41 42 42 47 42
++48 44 48 47 49 42 48 44 48 48 50 48 47 44 42 47 44 42 47 39 42 47 44 42
++51 49 42 51 49 42 55 55 48 59 55 55 63 55 51 59 55 55 63 55 51 59 55 55
++63 55 51 63 55 51 59 55 55 55 55 48 55 55 48 53 46 48 51 49 42 47 49 42
++47 44 42 47 49 42 47 49 42 47 44 42 47 49 42 47 44 42 47 44 42 47 44 42
++47 39 42 47 44 42 47 44 42 55 39 37 47 44 42 47 44 42 47 44 42 47 44 42
++42 38 42 47 47 21 42 41 42 53 35 37 47 44 42 47 39 42 47 47 21 42 41 42
++47 39 42 42 41 42 53 35 37 36 35 37 47 39 42 36 35 37 36 35 37 42 38 42
++33 30 30 36 35 37 32 39 24 36 35 37 36 35 37 42 41 42 47 44 42 47 44 42
++47 44 42 47 49 42 51 49 42 55 55 48 63 55 51 55 55 48 59 55 55 63 55 51
++65 63 61 59 55 55 59 55 55 63 55 51 65 63 61 65 55 54 59 55 55 65 63 61
++59 55 55 59 55 55 55 55 48 59 55 55 59 55 55 59 55 55 54 57 61 54 57 61
++50 61 48 54 57 61 45 57 61 54 57 61 53 63 61 54 57 61 53 63 61 53 63 61
++46 59 71 59 69 70 59 69 70 59 69 70 59 69 70 60 81 83 59 69 70 59 69 70
++59 69 70 75 72 67 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70
++75 81 76 59 69 70 75 81 76 75 72 67 75 81 76 75 81 76 75 81 82 75 81 82
++75 81 82 88 83 74 75 81 82 88 83 74 88 83 88 88 83 74 88 83 88 88 83 88
++99 93 84 88 83 88 99 93 84 88 83 88 88 83 88 88 83 74 88 83 88 99 93 84
++88 83 88 99 93 84 88 83 88 88 83 74 88 83 88 88 83 74 88 83 88 88 69 84
++75 81 82 75 81 76 75 64 82 59 69 70 65 63 61 75 59 67 75 72 67 63 59 71
++75 63 62 65 63 61 65 63 61 65 63 61 52 55 48 42 38 42 28 30 35 15 22 17
++14 16 17 7 12 13 23 18 22 30 30 34 33 39 38 36 35 37 30 30 34 30 30 34
++31 35 35 36 35 37 33 39 38 28 35 38 31 35 35 31 35 35 28 30 35 28 30 35
++25 30 29 23 30 35 25 30 29 25 30 29 26 30 28 26 24 32 22 25 24 23 20 24
++12 18 20 23 18 22 23 18 22 14 16 17 23 18 22 14 16 17 14 16 17 14 16 17
++23 18 22 23 18 22 23 20 24 23 20 24 23 20 24 23 20 24 12 18 20 23 18 22
++14 16 17 14 16 17 14 16 17 14 16 17 23 18 22 22 25 24 33 30 32 36 35 37
++30 30 34 25 30 29 23 20 24 14 16 17 15 22 17 30 30 34 31 35 35 28 30 35
++22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24
++23 20 24 22 25 24 22 25 24 26 24 32 26 30 28 22 23 31 25 30 29 33 39 38
++43 42 50 52 55 48 45 57 61 48 50 48 45 57 61 43 55 48 43 42 50 28 35 38
++25 30 29 28 30 35 34 40 43 43 42 50 43 42 50 42 47 42 34 40 43 33 39 38
++33 39 38 34 40 43 43 42 50 42 47 42 34 40 43 30 30 34 33 39 38 34 40 43
++23 18 22 88 83 88 188 180 202 246 237 247 251 251 247 240 251 247 231 239 247 231 239 247
++231 239 247 240 251 247 235 238 247 235 238 247 235 238 247 235 238 247 235 238 247 240 251 247
++235 238 247 240 251 247 235 238 247 246 237 247 240 251 247 251 251 247 240 251 247 246 237 247
++240 251 247 240 251 247 240 251 247 231 239 247 240 251 247 231 239 247 231 239 247 231 239 247
++221 238 247 231 239 247 221 238 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247
++240 251 247 240 251 247 235 238 247 240 251 247 231 239 247 240 251 247 231 239 247 231 239 247
++221 238 247 221 238 247 226 221 247 208 221 247 226 221 247 208 221 247 208 221 247 208 221 247
++201 216 228 194 199 226 194 199 226 194 199 226 194 199 226 201 216 228 201 216 228 225 222 201
++189 165 168 177 169 143 217 168 156 177 169 143 217 168 156 177 169 143 197 171 123 217 168 156
++177 169 143 217 168 156 177 169 143 217 168 156 177 169 143 217 168 156 177 169 143 177 169 143
++197 171 123 168 146 127 168 146 127 177 171 115 168 146 127 146 150 115 146 150 115 168 102 88
++138 126 108 146 150 115 168 102 88 117 127 86 168 102 88 117 99 86 117 112 45 120 63 71
++117 112 45 120 63 71 117 112 45 101 83 74 101 74 26 75 56 53 75 73 36 75 73 36
++60 49 42 55 39 18 32 39 24 33 30 30 53 35 17 32 39 24 47 44 42 55 55 48
++88 83 74 112 123 108 138 126 108 145 140 145 166 156 164 166 174 181 166 176 200 150 144 154
++94 105 108 59 69 70 75 81 82 75 81 82 65 63 61 33 30 30 17 12 17 14 16 17
++23 18 22 23 20 24 22 25 24 23 20 24 23 20 24 26 30 28 33 30 30 23 20 24
++26 30 28 22 25 24 26 24 32 26 30 28 33 30 30 22 25 24 22 25 24 26 30 28
++23 20 24 33 30 30 23 20 24 26 30 28 22 25 24 22 25 24 26 25 15 23 20 24
++22 25 24 33 30 30 23 20 24 26 30 28 22 25 24 23 20 24 22 25 24 26 24 32
++22 25 24 22 25 24 26 24 32 26 30 28 30 30 34 30 30 34 31 35 35 30 30 34
++36 35 37 42 41 42 48 44 48 45 57 61 48 50 48 43 55 48 48 50 48 35 47 50
++48 50 48 43 55 48 48 50 48 48 50 48 48 50 48 54 57 61 52 55 48 45 57 61
++48 50 48 45 57 61 48 50 48 48 50 48 45 57 61 48 50 48 45 57 61 43 55 48
++48 50 48 43 55 48 43 42 50 43 42 50 35 46 43 42 47 42 35 46 43 42 41 42
++34 40 43 34 40 43 33 39 38 33 39 38 34 40 43 34 40 43 34 40 43 42 41 42
++42 38 42 34 40 43 37 35 43 33 39 38 42 38 42 33 39 38 42 41 42 36 35 37
++31 35 35 48 50 48 88 83 88 138 126 108 145 140 145 146 150 115 166 156 164 166 180 164
++185 202 202 166 174 181 185 202 202 166 174 181 166 174 181 185 202 202 185 202 202 166 174 181
++150 171 159 126 147 144 121 143 132 112 123 108 111 119 127 117 142 111 121 143 132 111 119 127
++112 123 108 112 123 108 112 123 108 138 126 108 146 151 137 177 169 143 197 171 123 168 146 127
++168 102 88 138 126 108 163 117 123 177 169 143 177 169 143 189 165 168 146 162 145 177 169 143
++168 146 127 166 156 164 168 146 127 146 151 137 146 162 145 145 140 145 138 126 108 121 143 132
++111 119 127 145 140 145 166 180 164 185 202 202 185 202 202 185 202 202 188 180 202 185 202 202
++185 202 202 189 165 168 185 202 202 166 180 164 185 202 202 166 180 164 185 202 202 166 174 181
++185 202 202 166 174 181 185 202 202 166 174 181 166 174 181 145 140 145 121 143 132 112 123 108
++145 140 145 166 180 164 185 202 202 166 174 181 166 180 164 185 202 202 166 180 164 121 143 132
++59 69 70 35 47 50 33 39 38 42 41 42 43 42 50 42 41 42 47 44 42 47 44 42
++48 50 48 51 49 42 48 50 48 51 49 42 48 50 48 51 49 42 48 50 48 53 46 48
++55 55 48 53 46 48 53 46 48 48 50 48 51 49 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 42 41 42 47 47 21 42 41 42 55 39 37 36 35 37 36 35 37
++36 35 37 32 39 24 36 35 37 36 35 37 52 30 35 36 35 37 32 39 24 36 35 37
++36 35 37 42 38 42 36 35 37 42 41 42 36 35 37 42 41 42 47 47 21 42 41 42
++47 44 42 47 44 42 47 44 42 51 49 42 53 46 48 53 46 48 51 49 42 53 46 48
++51 49 42 51 49 42 53 46 48 51 49 42 51 49 42 51 49 42 47 44 42 42 41 42
++47 47 21 42 41 42 36 35 37 36 35 37 53 35 37 36 35 37 47 47 21 36 35 37
++32 39 24 47 44 42 36 35 37 42 47 42 42 47 42 47 49 42 51 49 42 51 49 42
++51 49 42 53 46 48 55 55 48 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51
++63 55 51 63 55 51 55 55 48 63 55 51 55 55 48 63 55 51 55 55 48 55 55 48
++53 46 48 51 49 42 53 46 48 51 49 42 51 49 42 51 49 42 51 49 42 47 44 42
++51 49 42 51 49 42 51 49 42 51 49 42 51 49 42 47 44 42 51 49 42 51 49 42
++
++49 13 16 49 13 16 52 30 15 76 18 19 76 18 19 59 36 42 76 18 19 88 30 18
++88 30 18 88 30 18 88 30 18 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 122 49 24 102 33 26 122 49 24
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 88 30 18 102 33 26 88 30 18 88 30 18 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19
++49 13 16 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19
++49 13 16 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26 102 33 26
++102 33 26 120 63 71 122 49 24 120 63 71 122 49 24 120 63 71 122 49 24 120 63 71
++122 49 24 120 63 71 102 33 26 88 44 51 101 74 26 88 44 51 88 44 51 76 44 53
++76 46 20 59 36 42 55 39 37 55 39 37 60 49 42 60 49 42 62 47 47 62 47 47
++63 55 45 75 56 53 65 63 61 75 56 53 75 73 58 75 63 62 75 73 58 88 73 62
++75 73 58 88 73 62 75 72 67 88 73 62 75 72 67 88 73 62 75 63 62 75 72 67
++75 63 62 75 73 58 75 63 62 75 72 67 75 63 62 65 63 61 65 55 54 65 55 54
++64 70 48 55 55 48 59 55 55 55 55 48 55 55 48 53 46 48 53 46 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 44 48 42 47 42 48 44 48
++42 47 42 48 44 48 42 47 42 48 44 48 48 44 48 42 47 42 43 42 50 47 44 42
++48 44 48 42 47 42 48 44 48 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 49 42 48 50 48 55 55 48 55 55 48 59 55 55 63 55 51 59 55 55 63 55 51
++59 55 55 55 55 48 55 55 48 53 46 48 55 55 48 51 49 42 51 49 42 51 49 42
++47 44 42 47 44 42 47 49 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 42 41 42 42 47 42 47 47 21 47 44 42 47 44 42 42 41 42
++47 39 42 42 41 42 53 35 37 32 39 24 47 44 42 47 44 42 47 44 42 47 39 42
++47 47 21 36 35 37 36 35 37 36 35 37 32 39 24 36 35 37 36 35 37 36 35 37
++36 35 37 52 30 35 36 35 37 53 35 37 42 41 42 47 44 42 47 44 42 47 44 42
++51 49 42 53 46 48 53 46 48 55 55 48 55 55 48 63 55 51 59 55 55 63 55 51
++59 55 55 63 55 51 59 55 55 63 55 51 59 55 55 63 55 51 59 55 55 63 55 51
++59 55 55 63 55 51 59 57 61 59 55 55 53 63 61 55 55 48 53 63 61 55 55 48
++54 57 61 45 57 61 53 63 61 53 63 61 53 63 61 53 63 61 59 69 70 53 63 61
++59 69 70 53 63 61 63 59 71 59 69 70 59 69 70 63 59 71 59 69 70 75 64 82
++59 69 70 63 59 71 59 69 70 63 59 71 59 69 70 59 69 70 59 69 70 59 69 70
++75 64 82 59 69 70 75 81 76 75 64 82 75 81 76 75 64 82 75 81 82 75 81 82
++88 69 84 75 81 76 88 83 88 75 81 82 88 83 88 88 83 88 88 83 88 88 83 74
++88 83 88 88 83 88 88 83 88 88 83 88 99 93 84 88 83 88 99 93 84 88 83 88
++88 83 88 88 83 88 99 93 84 88 83 88 88 83 88 88 83 88 75 81 82 88 83 74
++75 81 82 75 72 67 75 72 67 75 72 67 75 72 67 63 59 71 75 72 67 65 63 61
++65 63 61 59 57 61 65 63 61 63 59 71 48 50 48 33 30 36 22 25 24 14 16 17
++7 12 13 7 12 13 22 25 24 36 35 37 34 40 43 33 39 38 31 35 35 28 35 38
++28 35 38 31 35 35 28 35 38 28 35 38 28 35 38 28 35 38 31 35 35 28 30 35
++28 30 35 25 30 29 23 30 35 25 30 29 26 24 32 25 30 29 22 25 24 23 20 24
++23 20 24 15 22 17 23 18 22 15 22 17 23 18 22 14 16 17 23 18 22 23 18 22
++14 16 17 23 18 22 15 22 17 23 18 22 12 18 20 23 18 22 14 16 17 23 18 22
++14 16 17 14 16 17 23 18 22 14 16 17 14 16 17 14 16 17 26 24 32 33 30 32
++36 35 37 31 35 35 22 25 24 14 16 17 17 12 17 22 25 24 33 39 38 33 39 38
++28 30 35 22 25 24 12 18 20 22 25 24 23 20 24 12 18 20 22 25 24 22 25 24
++22 25 24 23 20 24 22 25 24 22 25 24 26 30 28 22 23 31 26 24 32 28 35 38
++43 42 50 43 55 48 48 50 48 48 50 48 45 57 61 59 55 55 43 42 50 33 39 38
++23 30 35 28 30 35 43 42 50 43 55 48 43 42 50 34 40 43 42 41 42 48 50 48
++43 42 50 48 50 48 43 42 50 45 57 61 54 57 61 31 35 35 28 30 35 37 35 43
++12 18 20 48 50 48 119 117 138 225 222 201 251 251 247 240 251 247 235 238 247 240 251 247
++231 239 247 231 239 247 231 239 247 240 251 247 235 238 247 240 251 247 240 251 247 235 238 247
++240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247
++235 238 247 240 251 247 235 238 247 231 239 247 231 239 247 221 238 247 221 238 247 221 238 247
++231 239 247 231 239 247 231 239 247 240 251 247 221 238 247 231 239 247 231 239 247 231 239 247
++240 251 247 240 251 247 240 251 247 231 239 247 240 251 247 231 239 247 231 239 247 231 239 247
++221 238 247 221 238 247 226 221 247 221 238 247 208 221 247 201 216 228 226 221 247 194 199 226
++201 216 228 194 199 226 166 176 200 166 176 200 166 176 200 188 180 202 201 216 228 232 215 228
++185 202 202 189 165 168 177 169 143 189 165 168 197 171 123 177 169 143 201 146 124 177 169 143
++197 171 123 217 168 156 177 169 143 217 168 156 197 171 123 177 169 143 217 168 156 197 171 123
++177 169 143 177 169 143 168 146 127 163 117 123 157 148 53 163 117 123 138 126 108 157 148 53
++138 126 108 168 102 88 138 126 108 157 148 53 117 114 76 117 99 86 117 99 86 101 83 74
++101 83 74 98 106 55 88 73 62 88 73 31 88 73 62 75 56 53 63 55 45 55 39 37
++47 47 21 47 47 21 33 30 30 33 30 30 33 30 30 47 44 42 65 63 61 95 91 100
++119 117 138 145 140 145 129 144 153 150 144 154 166 156 164 188 180 202 166 174 181 150 144 154
++95 91 100 59 69 70 75 81 82 75 81 82 59 69 70 30 30 34 17 12 17 15 22 17
++23 20 24 22 25 24 22 25 24 26 24 32 26 30 28 23 20 24 26 30 28 26 24 32
++22 25 24 26 24 32 22 25 24 22 25 24 23 20 24 22 25 24 33 30 30 23 20 24
++22 25 24 22 25 24 26 30 28 26 24 32 22 25 24 26 30 28 23 20 24 26 30 28
++22 25 24 26 30 28 22 25 24 33 30 30 23 20 24 23 20 24 26 30 28 25 30 29
++25 30 29 22 25 24 22 25 24 22 25 24 22 25 24 26 24 32 26 30 28 26 24 32
++26 30 28 30 30 34 33 39 38 48 50 48 45 57 61 48 50 48 48 50 48 43 55 48
++48 50 48 45 57 61 52 55 48 45 57 61 54 57 61 52 55 48 52 55 48 45 57 61
++52 55 48 52 55 48 54 57 61 54 57 61 54 57 61 48 50 48 45 57 61 48 50 48
++45 57 61 48 50 48 48 50 48 43 55 48 43 42 50 35 46 43 34 40 43 42 41 42
++42 41 42 42 41 42 34 40 43 34 40 43 42 41 42 34 40 43 42 41 42 34 40 43
++34 40 43 42 38 42 42 38 42 34 40 43 42 41 42 42 41 42 42 41 42 42 41 42
++36 35 37 42 47 42 75 72 67 112 123 108 121 143 132 121 143 132 146 162 145 166 180 164
++166 180 164 166 180 164 166 180 164 185 202 202 166 180 164 185 202 202 166 180 164 185 202 202
++166 180 164 148 160 159 126 147 144 111 119 127 121 143 132 121 143 132 168 146 127 146 150 115
++163 117 123 168 146 127 168 146 127 168 146 127 197 171 123 201 146 124 201 146 124 157 148 53
++168 102 88 157 148 53 168 102 88 177 171 115 201 146 124 201 146 124 177 171 115 201 146 124
++168 146 127 168 146 127 146 150 115 168 146 127 150 144 154 145 140 145 111 119 127 112 123 108
++122 134 144 166 180 164 185 202 202 185 202 202 185 202 202 185 202 202 185 202 202 166 180 164
++185 202 202 166 180 164 166 174 181 166 174 181 185 202 202 166 180 164 166 174 181 166 180 164
++185 202 202 166 180 164 166 174 181 166 180 164 166 180 164 148 160 159 121 143 132 122 134 144
++148 160 159 166 180 164 166 174 181 166 180 164 185 202 202 166 180 164 150 171 159 95 119 107
++54 57 61 33 39 38 33 39 38 42 41 42 42 41 42 42 41 42 42 47 42 42 41 42
++47 44 42 48 44 48 48 50 48 48 50 48 53 46 48 48 50 48 48 50 48 51 49 42
++53 46 48 53 46 48 51 49 42 51 49 42 47 44 42 47 44 42 47 44 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 38 42 36 35 37 36 35 37 42 41 42
++36 35 37 42 38 42 36 35 37 36 35 37 33 30 30 36 35 37 42 38 42 36 35 37
++47 39 42 36 35 37 42 41 42 36 35 37 47 44 42 36 35 37 42 41 42 47 44 42
++47 39 42 47 44 42 51 49 42 51 49 42 53 46 48 51 49 42 53 46 48 52 55 48
++53 46 48 55 55 48 51 49 42 51 49 42 51 49 42 47 44 42 47 44 42 42 47 42
++42 41 42 42 41 42 36 35 37 32 39 24 42 41 42 36 35 37 42 38 42 36 35 37
++42 41 42 42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 48 50 48 51 49 42
++48 50 48 55 55 48 55 55 48 59 55 55 63 55 51 63 55 51 63 55 51 63 55 51
++63 55 51 63 55 51 55 55 48 63 55 51 55 55 48 55 55 48 55 55 48 55 55 48
++51 49 42 53 46 48 52 55 48 53 46 48 51 49 42 51 49 42 47 44 42 47 44 42
++51 49 42 47 44 42 47 44 42 51 49 42 47 44 42 51 49 42 53 46 48 51 49 42
++
++49 13 16 49 13 16 49 13 16 49 13 16 76 18 19 76 18 19 76 18 19 76 18 19
++88 30 18 76 18 19 88 30 18 88 30 18 76 18 19 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 88 30 18 88 30 18 88 30 18 88 30 18
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 49 13 16
++76 18 19 49 13 16 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26 102 33 26
++102 33 26 102 33 26 120 63 71 122 49 24 167 63 71 122 49 24 120 63 71 122 49 24
++120 63 71 122 49 24 120 63 71 122 49 24 88 44 51 88 44 51 88 44 51 76 46 20
++76 44 53 60 49 42 55 39 37 60 49 42 55 39 37 60 49 42 62 47 47 62 47 47
++63 55 51 63 55 45 75 56 53 75 73 58 75 56 53 75 63 62 75 63 62 75 73 58
++88 73 62 75 72 67 75 72 67 75 72 67 75 77 62 75 72 67 88 73 62 75 73 58
++88 73 62 75 63 62 75 73 58 75 73 58 75 63 62 75 73 58 65 63 61 65 63 61
++63 55 51 63 55 51 63 55 51 55 55 48 59 55 55 48 50 48 48 50 48 53 46 48
++48 50 48 48 44 48 48 50 48 48 44 48 48 50 48 48 44 48 47 44 42 48 44 48
++48 44 48 42 47 42 48 44 48 42 47 42 48 44 48 47 44 42 47 44 42 42 47 42
++42 47 42 48 44 48 47 44 42 43 42 50 42 47 42 47 44 42 42 47 42 47 44 42
++51 49 42 53 46 48 55 55 48 55 55 48 59 55 55 59 55 55 64 70 48 59 55 55
++63 55 51 63 55 51 55 55 48 55 55 48 55 55 48 53 46 48 51 49 42 51 49 42
++47 44 42 47 49 42 47 44 42 48 50 48 47 44 42 42 47 42 47 44 42 47 49 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 39 42 42 41 42 53 35 37 36 35 37
++47 47 21 42 41 42 47 47 21 42 41 42 53 35 37 47 39 42 47 47 21 42 41 42
++42 38 42 47 39 42 33 30 30 36 35 37 52 30 35 32 39 24 52 30 35 36 35 37
++47 47 21 36 35 37 36 35 37 36 35 37 36 35 37 47 39 42 47 44 42 51 49 42
++48 44 48 51 49 42 55 55 48 53 46 48 63 55 51 59 55 55 63 55 51 59 55 55
++63 55 51 59 55 55 55 55 48 65 63 61 59 55 55 63 55 51 65 63 61 59 55 55
++63 55 51 65 63 61 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 54 57 61
++54 57 61 50 61 48 54 57 61 53 63 61 53 63 61 46 59 71 53 63 61 59 69 70
++54 57 61 59 69 70 53 63 61 65 63 61 59 69 70 63 59 71 59 69 70 59 57 61
++59 69 70 59 57 61 59 69 70 59 69 70 59 69 70 59 69 70 63 59 71 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 75 81 76 75 64 82 75 81 82
++75 81 76 75 81 76 75 81 76 88 69 84 75 81 82 88 83 74 75 81 82 88 83 74
++88 83 88 88 83 74 88 83 74 88 83 88 99 93 84 88 83 88 88 83 88 88 83 88
++99 93 84 88 83 88 90 98 89 88 83 88 88 83 88 88 83 74 88 83 88 75 81 82
++75 64 82 75 81 82 75 72 67 59 69 70 75 72 67 75 64 82 75 72 67 63 59 71
++65 63 61 65 63 61 59 57 61 54 57 61 42 41 42 26 24 32 17 12 17 7 12 13
++14 16 17 23 18 22 33 30 32 34 40 43 42 41 42 34 40 43 37 35 43 31 35 35
++28 35 38 33 39 38 31 35 35 28 35 38 31 35 35 28 35 38 31 35 35 28 30 35
++28 30 35 25 30 29 22 23 31 25 30 29 26 24 32 26 24 32 22 25 24 22 25 24
++23 18 22 12 18 20 23 18 22 12 18 20 23 20 24 15 22 17 23 18 22 12 18 20
++23 18 22 23 18 22 23 18 22 14 16 17 23 18 22 12 18 20 23 18 22 14 16 17
++17 12 17 14 16 17 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 26 30 28
++36 35 37 37 35 43 33 30 30 14 16 17 14 16 17 23 20 24 28 30 35 33 39 38
++34 40 43 31 35 35 22 25 24 23 20 24 12 18 20 23 20 24 22 25 24 23 20 24
++23 20 24 22 25 24 26 24 32 22 25 24 26 24 32 22 25 24 22 23 31 28 35 38
++43 42 50 43 42 50 45 57 61 48 50 48 54 57 61 45 57 61 48 50 48 34 40 43
++28 30 35 33 39 38 45 57 61 54 57 61 43 42 50 31 35 35 34 40 43 35 47 50
++48 50 48 54 57 61 48 50 48 45 57 61 43 55 48 34 40 43 31 35 35 30 30 34
++22 23 31 36 35 37 60 82 70 188 180 202 251 251 247 231 239 247 231 239 247 221 238 247
++231 239 247 231 239 247 231 239 247 240 251 247 235 238 247 240 251 247 240 251 247 240 251 247
++235 238 247 240 251 247 235 238 247 240 251 247 240 251 247 246 237 247 240 251 247 235 238 247
++240 251 247 235 238 247 231 239 247 231 239 247 221 238 247 226 221 247 221 238 247 221 238 247
++221 238 247 231 239 247 231 239 247 231 239 247 221 238 247 231 239 247 231 239 247 240 251 247
++240 251 247 240 251 247 231 239 247 240 251 247 231 239 247 240 251 247 231 239 247 231 239 247
++231 239 247 221 238 247 221 238 247 221 238 247 208 221 247 208 221 247 201 216 228 201 216 228
++194 199 226 194 199 226 194 199 226 185 202 202 166 176 200 188 180 202 194 199 226 201 216 228
++225 222 201 222 171 182 189 165 168 177 169 143 217 168 156 177 169 143 168 146 127 177 169 143
++177 169 143 197 171 123 177 169 143 197 171 123 189 165 168 197 171 123 177 169 143 177 169 143
++177 169 143 201 146 124 168 146 127 146 150 115 168 102 88 146 150 115 168 102 88 138 126 108
++157 148 53 138 126 108 117 114 76 138 102 108 117 114 76 168 102 88 117 112 45 120 63 71
++117 112 45 101 83 74 88 73 62 88 44 51 75 73 36 63 55 45 60 49 42 55 39 37
++47 47 21 36 35 37 34 30 15 32 39 24 47 44 42 75 73 58 94 105 108 145 140 145
++150 171 159 166 156 164 150 144 154 148 160 159 150 171 159 188 180 202 166 174 181 129 144 153
++95 91 100 59 69 70 75 81 76 75 81 82 59 69 70 36 35 37 14 16 17 23 20 24
++23 20 24 22 25 24 23 20 24 26 30 28 22 25 24 26 24 32 26 30 28 26 24 32
++22 25 24 22 25 24 26 24 32 22 25 24 26 30 28 22 25 24 22 25 24 23 20 24
++26 30 28 23 20 24 26 30 28 23 20 24 22 25 24 23 20 24 22 25 24 26 30 28
++22 25 24 26 25 15 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24
++23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 22 25 24 26 24 32 26 30 28
++30 30 34 33 30 32 34 40 43 42 47 42 45 57 61 48 50 48 45 57 61 48 50 48
++45 57 61 48 50 48 54 57 61 52 55 48 54 57 61 50 61 48 54 57 61 50 61 48
++54 57 61 54 57 61 54 57 61 52 55 48 54 57 61 54 57 61 52 55 48 54 57 61
++48 50 48 45 57 61 43 55 48 43 42 50 43 55 48 43 42 50 42 47 42 42 47 42
++35 46 43 42 47 42 42 41 42 35 46 43 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 43 42 50 42 41 42 42 41 42 42 41 42 42 41 42 42 47 42
++42 41 42 33 39 38 59 57 61 95 91 100 111 119 127 121 143 132 145 140 145 166 180 164
++166 180 164 166 174 181 166 180 164 166 180 164 166 180 164 166 174 181 166 180 164 166 174 181
++166 174 181 166 174 181 148 160 159 145 140 145 121 143 132 138 126 108 145 140 145 146 150 115
++168 146 127 168 102 88 177 171 115 168 102 88 201 146 124 201 146 124 157 148 53 201 146 124
++168 102 88 168 102 88 157 148 53 168 102 88 157 148 53 195 113 123 157 148 53 168 102 88
++176 103 41 168 102 88 168 146 127 168 146 127 138 126 108 112 96 108 94 105 108 121 143 132
++166 180 164 166 174 181 185 202 202 166 180 164 185 202 202 166 180 164 166 180 164 185 202 202
++166 174 181 166 180 164 185 202 202 166 174 181 166 180 164 166 180 164 185 202 202 166 174 181
++166 180 164 166 174 181 166 174 181 166 174 181 166 180 164 148 160 159 126 147 144 126 147 144
++150 171 159 166 174 181 185 202 202 166 174 181 166 174 181 166 180 164 129 144 153 88 83 88
++35 46 43 35 46 43 42 41 42 42 47 42 42 47 42 42 41 42 42 41 42 42 41 42
++48 44 48 42 47 42 47 44 42 48 44 48 51 49 42 48 44 48 51 49 42 48 44 48
++51 49 42 48 44 48 47 44 42 47 44 42 47 44 42 47 44 42 42 47 42 47 44 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 36 35 37 42 38 42 36 35 37
++42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 42 38 42 36 35 37 42 41 42 36 35 37 42 41 42 42 41 42 47 44 42
++47 44 42 47 44 42 47 44 42 53 46 48 51 49 42 51 49 42 53 46 48 51 49 42
++51 49 42 51 49 42 51 49 42 51 49 42 51 49 42 51 49 42 47 44 42 42 47 42
++42 47 42 36 35 37 42 41 42 47 44 42 36 35 37 42 41 42 42 41 42 36 35 37
++42 41 42 36 35 37 47 44 42 47 39 42 47 44 42 51 49 42 47 49 42 48 50 48
++52 55 48 52 55 48 55 55 48 63 55 51 63 55 51 63 55 51 63 55 51 63 55 51
++62 47 47 63 55 51 63 55 51 55 55 48 63 55 51 55 55 48 55 55 48 52 55 48
++55 55 48 55 55 48 53 46 48 52 55 48 53 46 48 53 46 48 51 49 42 47 44 42
++51 49 42 47 44 42 51 49 42 47 44 42 53 46 48 51 49 42 47 44 42 51 49 42
++
++49 13 16 49 13 16 52 30 15 49 13 16 76 18 19 49 13 16 88 30 18 76 18 19
++88 30 18 88 30 18 88 30 18 76 18 19 102 33 26 88 30 18 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 88 30 18 88 30 18 88 30 18 88 30 18 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19
++49 13 16 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19
++49 13 16 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26
++102 33 26 102 33 26 161 55 23 102 33 26 120 63 71 122 49 24 120 63 71 122 49 24
++120 63 71 122 49 24 120 63 71 88 44 51 122 49 24 88 73 62 88 44 51 88 44 51
++63 55 45 76 46 20 55 39 37 60 49 42 55 39 37 60 49 42 62 47 47 62 47 47
++63 55 45 65 55 54 65 55 54 75 56 53 75 73 58 75 63 62 75 73 58 75 72 67
++75 72 67 88 73 62 75 72 67 88 73 62 75 72 67 88 73 62 75 72 67 75 72 67
++75 63 62 75 72 67 75 72 67 75 63 62 75 73 58 75 63 62 65 63 61 64 70 48
++65 55 54 55 55 48 59 55 55 55 55 48 55 55 48 53 46 48 48 50 48 54 57 61
++48 50 48 48 50 48 48 44 48 48 50 48 48 50 48 48 44 48 42 47 42 48 50 48
++48 44 48 48 50 48 48 50 48 48 44 48 42 47 42 48 44 48 42 47 42 43 42 50
++42 41 42 42 47 42 47 44 42 42 47 42 42 41 42 47 44 42 47 44 42 47 49 42
++48 50 48 52 55 48 55 55 48 59 55 55 63 55 51 55 55 48 59 55 55 59 55 55
++55 55 48 55 55 48 55 55 48 53 46 48 55 55 48 51 49 42 53 46 48 51 49 42
++51 49 42 47 49 42 48 50 48 47 44 42 42 47 42 47 44 42 47 44 42 47 44 42
++47 49 42 47 44 42 42 47 42 42 41 42 47 47 21 42 38 42 36 35 37 47 47 21
++42 38 42 36 35 37 42 41 42 42 41 42 47 47 21 42 41 42 42 41 42 42 41 42
++36 35 37 36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 53 35 37 36 35 37 47 47 21 42 38 42 47 39 42 47 44 42 47 44 42
++51 49 42 53 46 48 53 46 48 55 55 48 63 55 51 59 55 55 63 55 51 59 55 55
++59 55 55 63 55 51 59 55 55 63 55 51 65 63 61 63 55 51 59 55 55 63 55 51
++55 55 48 63 55 51 59 55 55 53 63 61 59 57 61 53 63 61 59 55 55 53 63 61
++54 57 61 53 63 61 54 57 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61
++59 69 70 54 57 61 53 63 61 63 59 71 53 63 61 65 63 61 53 63 61 63 59 71
++53 63 61 54 57 61 53 63 61 54 57 61 54 57 61 53 63 61 53 63 61 63 59 71
++59 69 70 63 59 71 59 69 70 75 72 67 63 59 71 59 69 70 75 72 67 75 64 82
++75 72 67 75 81 76 88 69 84 75 81 76 75 64 82 75 81 76 88 69 84 75 81 76
++88 83 74 75 81 82 88 83 74 88 83 88 88 83 88 88 83 74 88 83 88 88 83 88
++88 83 74 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 75 81 82 75 81 82
++88 83 74 75 72 67 75 64 82 59 69 70 75 72 67 63 59 71 75 59 67 59 69 70
++65 63 61 65 63 61 59 57 61 43 42 50 33 30 36 12 18 20 7 12 13 7 12 13
++14 16 17 22 25 24 36 35 37 42 41 42 34 40 43 34 40 43 33 39 38 28 35 38
++33 30 36 33 39 38 28 35 38 28 35 38 28 35 38 31 35 35 28 30 35 28 30 35
++23 30 35 25 30 29 22 23 31 22 23 31 25 30 29 22 23 31 22 25 24 23 20 24
++23 18 22 14 16 17 23 18 22 23 18 22 12 18 20 23 18 22 23 18 22 12 18 20
++23 18 22 14 16 17 23 18 22 12 18 20 23 18 22 14 16 17 23 18 22 14 16 17
++14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 14 16 17 23 18 22
++31 35 35 42 38 42 30 30 34 14 16 17 14 16 17 23 18 22 15 22 17 28 30 35
++34 40 43 42 41 42 30 30 34 22 25 24 15 22 17 23 20 24 12 18 20 22 25 24
++22 25 24 23 20 24 22 25 24 22 25 24 26 24 32 22 25 24 26 24 32 28 35 38
++43 42 50 48 50 48 45 57 61 48 50 48 54 57 61 54 57 61 48 50 48 34 40 43
++34 40 43 43 42 50 54 57 61 48 50 48 35 46 43 28 30 35 28 30 35 33 39 38
++43 42 50 54 57 61 45 57 61 43 42 50 37 35 43 35 46 43 34 40 43 33 30 36
++30 30 34 28 30 35 48 50 48 148 160 159 231 239 247 221 238 247 226 221 247 221 238 247
++231 239 247 235 238 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247
++240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 235 238 247
++235 238 247 235 238 247 231 239 247 221 238 247 221 238 247 221 238 247 221 238 247 231 239 247
++231 239 247 240 251 247 231 239 247 231 239 247 231 239 247 231 239 247 235 238 247 240 251 247
++235 238 247 240 251 247 235 238 247 240 251 247 231 239 247 231 239 247 231 239 247 231 239 247
++221 238 247 226 221 247 231 239 247 226 221 247 201 216 228 201 216 228 201 216 228 194 199 226
++201 216 228 194 199 226 194 199 226 194 199 226 166 176 200 185 202 202 194 199 226 194 199 226
++232 215 228 185 202 202 189 165 168 177 169 143 168 146 127 201 146 124 177 169 143 201 146 124
++177 169 143 177 169 143 217 168 156 177 169 143 197 171 123 189 165 168 201 146 124 177 169 143
++201 146 124 146 150 115 138 126 108 168 102 88 117 127 86 138 126 108 168 102 88 117 127 86
++138 102 108 117 114 76 117 114 76 168 102 88 117 114 76 117 99 86 120 63 71 117 114 76
++120 63 71 98 106 55 88 73 62 88 73 31 75 56 53 60 49 42 47 47 21 47 47 21
++53 35 37 32 39 24 53 35 37 55 55 48 88 83 74 112 123 108 145 140 145 166 174 181
++166 174 181 166 156 164 148 160 159 150 144 154 166 174 181 188 180 202 166 174 181 129 144 153
++95 91 100 53 63 61 75 81 76 75 81 82 75 72 67 43 42 50 23 20 24 23 20 24
++22 25 24 22 25 24 22 25 24 23 20 24 26 24 32 26 30 28 22 25 24 26 30 28
++23 20 24 26 24 32 22 25 24 26 30 28 23 20 24 26 30 28 23 20 24 26 30 28
++23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 22 25 24 26 30 28 23 20 24
++26 25 15 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 22 25 24 26 30 28 33 30 30 26 24 32 33 30 30 30 30 34
++36 35 37 42 41 42 42 41 42 43 55 48 48 50 48 54 57 61 48 50 48 45 57 61
++52 55 48 54 57 61 50 61 48 54 57 61 54 57 61 50 61 48 53 63 61 59 57 61
++53 63 61 53 63 61 53 63 61 59 57 61 53 63 61 53 63 61 54 57 61 50 61 48
++54 57 61 54 57 61 45 57 61 48 50 48 43 55 48 43 42 50 43 55 48 43 42 50
++48 50 48 43 42 50 42 47 42 43 42 50 42 47 42 42 41 42 42 41 42 42 41 42
++43 42 50 43 42 50 43 42 50 42 47 42 43 42 50 48 50 48 48 50 48 48 44 48
++48 50 48 42 41 42 52 55 48 75 81 76 112 96 108 117 142 111 146 151 137 166 156 164
++166 180 164 166 180 164 166 180 164 150 171 159 166 180 164 166 180 164 166 174 181 166 180 164
++185 202 202 166 180 164 166 174 181 148 160 159 121 143 132 112 123 108 138 126 108 138 126 108
++146 150 115 146 150 115 168 102 88 157 148 53 168 102 88 157 148 53 168 102 88 219 175 47
++168 102 88 177 171 115 168 102 88 168 102 88 168 102 88 157 148 53 168 102 88 168 102 88
++177 171 115 168 146 127 168 146 127 138 126 108 98 113 84 95 91 100 121 143 132 166 156 164
++185 202 202 185 202 202 166 180 164 185 202 202 166 180 164 185 202 202 166 174 181 166 174 181
++185 202 202 166 180 164 166 180 164 166 174 181 166 180 164 166 174 181 166 180 164 166 180 164
++166 174 181 166 174 181 166 180 164 166 180 164 150 171 159 148 160 159 146 151 137 148 160 159
++166 174 181 166 180 164 166 174 181 166 180 164 166 174 181 150 171 159 112 123 108 60 82 70
++34 40 43 35 46 43 42 47 42 48 50 48 42 41 42 42 41 42 42 47 42 47 44 42
++42 47 42 43 42 50 42 47 42 48 44 48 42 47 42 47 44 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 42 41 42
++42 41 42 42 41 42 32 39 24 42 41 42 42 38 42 36 35 37 42 41 42 36 35 37
++42 38 42 36 35 37 47 39 42 36 35 37 36 35 37 42 38 42 42 38 42 36 35 37
++42 38 42 36 35 37 47 44 42 36 35 37 47 44 42 36 35 37 47 44 42 47 44 42
++47 44 42 51 49 42 51 49 42 51 49 42 53 46 48 53 46 48 51 49 42 53 46 48
++51 49 42 55 55 48 53 46 48 51 49 42 51 49 42 51 49 42 42 47 42 47 44 42
++47 47 21 42 41 42 47 44 42 42 41 42 47 44 42 36 35 37 47 47 21 42 41 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 51 49 42 47 49 42 48 50 48
++51 49 42 52 55 48 55 55 48 63 55 51 63 55 51 63 55 51 63 55 51 55 55 48
++63 55 51 63 55 51 55 55 48 63 55 51 55 55 48 55 55 48 55 55 48 53 46 48
++55 55 48 53 46 48 53 46 48 55 55 48 51 49 42 51 49 42 53 46 48 51 49 42
++47 44 42 47 44 42 47 44 42 51 49 42 53 46 48 47 44 42 51 49 42 53 46 48
++
++49 13 16 49 13 16 76 18 19 49 13 16 49 13 16 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 102 33 26 76 18 19 76 18 19 102 33 26
++76 18 19 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26
++102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 102 33 26 88 30 18
++102 33 26 88 30 18 88 30 18 88 30 18 102 33 26 88 30 18 88 30 18 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16
++76 18 19 76 18 19 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 49 13 16
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26 76 18 19 102 33 26
++102 33 26 122 49 24 102 33 26 120 63 71 122 49 24 122 49 24 120 63 71 161 55 23
++120 63 71 122 49 24 120 63 71 122 49 24 120 63 71 88 44 51 101 74 26 88 44 51
++88 44 51 60 49 42 60 49 42 55 39 37 60 49 42 62 47 47 60 49 42 60 49 42
++63 55 51 63 55 51 65 55 54 65 63 61 75 63 62 75 63 62 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 81 69 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 65 63 61 65 63 61 65 63 61
++59 55 55 59 55 55 55 55 48 59 55 55 52 55 48 59 55 55 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 44 48 48 50 48
++42 47 42 48 44 48 42 47 42 48 50 48 42 47 42 48 44 48 42 47 42 42 47 42
++42 47 42 43 42 50 42 47 42 42 41 42 42 47 42 48 50 48 47 44 42 48 50 48
++51 49 42 48 50 48 52 55 48 55 55 48 55 55 48 59 55 55 55 55 48 55 55 48
++59 55 55 55 55 48 55 55 48 55 55 48 53 46 48 52 55 48 52 55 48 52 55 48
++48 50 48 48 50 48 47 49 42 48 50 48 42 47 42 48 50 48 42 47 42 48 44 48
++42 47 42 47 44 42 42 47 42 42 41 42 42 41 42 42 41 42 36 35 37 42 41 42
++36 35 37 36 35 37 47 47 21 36 35 37 36 35 37 36 35 37 42 38 42 47 47 21
++53 35 37 36 35 37 36 35 37 47 47 21 36 35 37 36 35 37 53 35 37 36 35 37
++55 39 37 36 35 37 42 41 42 42 38 42 47 39 42 47 44 42 47 44 42 53 46 48
++51 49 42 53 46 48 55 55 48 55 55 48 59 55 55 63 55 51 59 55 55 63 55 51
++59 55 55 63 55 51 65 63 61 63 55 51 59 55 55 65 63 61 63 55 51 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 53 63 61 59 55 55
++53 63 61 53 63 61 45 57 61 54 57 61 53 63 61 53 63 61 46 59 71 53 63 61
++54 57 61 46 59 71 53 63 61 54 57 61 59 69 70 53 63 61 53 63 61 53 63 61
++53 63 61 53 63 61 54 57 61 53 63 61 53 63 61 54 57 61 53 63 61 53 63 61
++53 63 61 59 69 70 59 69 70 59 69 70 59 69 70 75 64 82 59 69 70 59 69 70
++59 69 70 75 64 82 75 81 76 75 72 67 75 81 76 75 81 76 75 81 76 75 81 76
++75 81 76 88 69 84 75 81 82 88 83 74 88 83 88 88 83 88 88 83 74 88 83 88
++88 83 88 88 83 88 90 98 89 88 83 74 88 83 88 75 81 76 88 83 88 75 81 82
++75 64 82 75 81 82 75 72 67 75 64 82 75 72 67 63 59 71 75 72 67 63 59 71
++65 63 61 59 69 70 54 57 61 33 39 38 22 23 31 14 16 17 14 16 17 12 18 20
++22 25 24 25 30 29 33 39 38 42 41 42 34 40 43 33 39 38 28 35 38 30 30 34
++28 35 38 28 35 38 37 35 43 33 39 38 36 35 37 28 35 38 28 30 35 28 30 35
++25 30 29 22 23 31 22 25 24 22 25 24 22 23 31 22 23 31 22 25 24 23 20 24
++15 22 17 23 20 24 12 18 20 23 18 22 23 18 22 15 22 17 12 18 20 23 18 22
++14 16 17 23 18 22 15 22 17 23 18 22 15 22 17 23 18 22 12 18 20 23 18 22
++14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 23 20 24
++26 30 28 36 35 37 33 30 32 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++22 25 24 36 35 37 36 35 37 33 30 36 22 25 24 12 18 20 15 22 17 23 20 24
++22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 26 24 32 25 30 29 37 35 43
++43 42 50 48 50 48 48 50 48 54 57 61 45 57 61 54 57 61 45 57 61 43 42 50
++34 40 43 42 41 42 45 57 61 48 50 48 34 40 43 31 35 35 23 30 35 28 30 35
++43 42 50 45 57 61 43 42 50 33 39 38 28 35 38 34 40 43 34 40 43 34 40 43
++33 39 38 28 30 35 43 42 50 111 119 127 201 216 228 231 239 247 231 239 247 231 239 247
++235 238 247 240 251 247 240 251 247 240 251 247 251 251 247 240 251 247 246 237 247 240 251 247
++246 237 247 240 251 247 240 251 247 246 237 247 240 251 247 235 238 247 240 251 247 235 238 247
++235 238 247 231 239 247 231 239 247 231 239 247 231 239 247 235 238 247 235 238 247 240 251 247
++240 251 247 240 251 247 240 251 247 240 251 247 231 239 247 235 238 247 240 251 247 240 251 247
++240 251 247 231 239 247 240 251 247 231 239 247 231 239 247 231 239 247 221 238 247 231 239 247
++221 238 247 221 238 247 208 221 247 221 238 247 208 221 247 201 216 228 208 221 247 194 199 226
++208 221 247 201 216 228 194 199 226 194 199 226 194 199 226 166 176 200 188 180 202 194 199 226
++201 216 228 232 215 228 189 165 168 189 165 168 166 156 164 177 169 143 177 169 143 201 146 124
++177 169 143 201 146 124 197 171 123 217 168 156 177 169 143 197 171 123 177 171 115 168 146 127
++168 146 127 168 146 127 146 150 115 138 126 108 168 102 88 138 126 108 117 114 76 168 102 88
++117 114 76 168 102 88 117 112 45 117 99 86 117 112 45 117 99 86 117 112 45 101 83 74
++98 106 55 101 83 74 88 73 62 75 56 53 63 55 45 60 49 42 47 47 21 52 30 35
++32 39 24 36 35 37 55 55 48 88 83 88 111 119 127 150 144 154 166 174 181 188 180 202
++188 180 202 150 147 171 150 147 171 148 160 159 166 174 181 188 180 202 166 174 181 122 134 144
++88 83 88 59 69 70 59 69 70 75 81 82 75 81 82 54 57 61 25 30 29 12 18 20
++23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 26 24 32 26 24 32
++23 20 24 33 30 30 23 20 24 23 20 24 33 30 30 23 20 24 22 25 24 22 25 24
++22 25 24 23 20 24 22 25 24 23 20 24 26 25 15 23 20 24 23 20 24 22 25 24
++23 20 24 23 20 24 26 25 15 23 20 24 22 25 24 23 20 24 23 20 24 22 23 31
++25 30 29 26 24 32 33 30 30 26 30 28 30 30 34 30 30 34 30 30 34 36 35 37
++33 39 38 42 41 42 43 42 50 54 57 61 54 57 61 53 63 61 54 57 61 54 57 61
++54 57 61 52 55 48 54 57 61 54 57 61 54 57 61 53 63 61 65 63 61 53 63 61
++59 69 70 65 63 61 65 63 61 53 63 61 65 63 61 53 63 61 53 63 61 54 57 61
++50 61 48 54 57 61 45 57 61 48 50 48 45 57 61 43 55 48 48 50 48 48 50 48
++43 55 48 43 42 50 43 55 48 43 42 50 42 47 42 43 42 50 43 42 50 42 47 42
++43 42 50 43 55 48 43 42 50 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 42 47 42 48 50 48 59 69 70 99 93 84 121 143 132 145 140 145 150 171 159
++166 180 164 150 171 159 150 144 154 126 147 144 148 160 159 150 171 159 166 180 164 166 174 181
++166 180 164 166 174 181 166 174 181 150 171 159 146 162 145 111 119 127 112 123 108 112 123 108
++138 126 108 146 150 115 146 150 115 168 146 127 168 102 88 168 102 88 201 146 124 168 102 88
++201 146 124 201 146 124 157 148 53 168 102 88 157 148 53 168 102 88 168 102 88 146 150 115
++168 146 127 146 150 115 138 126 108 90 98 89 88 83 88 117 142 111 150 171 159 185 202 202
++185 202 202 166 180 164 185 202 202 166 180 164 166 174 181 166 180 164 166 180 164 185 202 202
++166 174 181 166 174 181 166 180 164 166 174 181 166 174 181 166 180 164 166 174 181 166 174 181
++166 174 181 166 180 164 166 174 181 166 180 164 166 174 181 150 171 159 148 160 159 150 171 159
++166 180 164 166 174 181 166 180 164 166 174 181 166 180 164 126 147 144 90 98 89 53 63 61
++35 46 43 35 46 43 42 47 42 48 50 48 42 47 42 42 47 42 48 44 48 42 47 42
++48 44 48 42 47 42 42 41 42 42 47 42 42 47 42 48 44 48 42 47 42 47 44 42
++48 44 48 47 44 42 47 44 42 47 44 42 42 41 42 47 44 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 38 42 42 38 42 36 35 37 36 35 37 42 38 42 42 41 42
++47 39 42 36 35 37 42 41 42 47 39 42 36 35 37 42 41 42 36 35 37 42 41 42
++47 39 42 42 41 42 42 41 42 42 41 42 42 41 42 42 47 42 47 44 42 47 44 42
++47 44 42 53 46 48 51 49 42 53 46 48 55 55 48 55 55 48 53 46 48 55 55 48
++53 46 48 55 55 48 55 55 48 53 46 48 51 49 42 51 49 42 47 44 42 42 47 42
++47 44 42 42 41 42 47 44 42 42 41 42 42 47 42 42 41 42 42 41 42 47 44 42
++42 47 42 47 44 42 47 44 42 51 49 42 48 50 48 51 49 42 48 50 48 48 50 48
++52 55 48 55 55 48 55 55 48 59 55 55 63 55 51 55 55 48 62 47 47 63 55 51
++63 55 51 62 47 47 63 55 51 55 55 48 62 47 47 55 55 48 55 55 48 55 55 48
++62 47 47 55 55 48 62 47 47 53 46 48 55 55 48 53 46 48 51 49 42 53 46 48
++51 49 42 51 49 42 53 46 48 51 49 42 51 49 42 51 49 42 47 44 42 51 49 42
++
++49 13 16 52 30 15 49 13 16 49 13 16 49 13 16 76 18 19 52 30 15 76 18 19
++76 18 19 76 18 19 76 18 19 88 30 18 76 18 19 88 30 18 76 18 19 102 33 26
++76 18 19 102 33 26 76 18 19 76 18 19 102 33 26 76 18 19 102 33 26 76 18 19
++102 33 26 76 18 19 76 18 19 76 18 19 102 33 26 102 33 26 88 30 18 102 33 26
++76 18 19 102 33 26 88 30 18 76 18 19 88 30 18 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 76 18 19 49 13 16 76 18 19
++76 18 19 76 18 19 52 30 35 88 30 18 88 30 18 76 18 19 102 33 26 102 33 26
++102 33 26 102 33 26 122 49 24 122 49 24 167 63 71 122 49 24 120 63 71 122 49 24
++120 63 71 122 49 24 120 63 71 101 74 26 120 63 71 122 49 24 88 44 51 88 44 51
++76 46 20 76 44 53 55 39 37 55 39 37 60 49 42 55 39 37 53 46 48 53 46 48
++55 55 48 63 55 51 65 63 61 63 55 51 65 63 61 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 88 66 70 75 81 76 88 66 70 75 81 76 75 72 67 75 81 69
++75 72 67 75 72 67 75 72 67 75 63 62 75 72 67 65 63 61 65 63 61 65 63 61
++59 55 55 55 55 48 55 55 48 52 55 48 55 55 48 53 46 48 52 55 48 48 50 48
++48 50 48 48 50 48 48 50 48 47 49 42 48 50 48 42 47 42 42 47 42 48 50 48
++42 47 42 48 50 48 42 47 42 48 44 48 48 50 48 42 47 42 48 50 48 47 44 42
++42 47 42 42 47 42 42 47 42 43 42 50 47 44 42 47 44 42 48 44 48 47 49 42
++48 50 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48
++55 55 48 55 55 48 55 55 48 52 55 48 48 50 48 48 50 48 48 50 48 48 50 48
++59 55 55 48 50 48 48 50 48 47 49 42 47 49 42 48 44 48 42 47 42 42 47 42
++42 47 42 42 47 42 42 41 42 42 41 42 36 35 37 42 47 42 36 35 37 42 47 42
++32 39 24 42 41 42 36 35 37 36 35 37 47 44 42 36 35 37 53 35 37 36 35 37
++42 38 42 52 30 35 36 35 37 36 35 37 36 35 37 52 30 35 32 39 24 42 41 42
++42 41 42 36 35 37 47 47 21 42 38 42 47 39 42 47 44 42 47 44 42 51 49 42
++53 46 48 62 47 47 55 55 48 62 47 47 59 55 55 59 55 55 63 55 51 59 55 55
++65 63 61 63 55 51 59 55 55 65 63 61 63 55 51 59 55 55 59 55 55 63 55 51
++59 55 55 63 55 51 59 55 55 50 61 48 59 55 55 59 55 55 53 63 61 59 57 61
++53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 54 57 61 53 63 61 54 57 61
++53 63 61 54 57 61 53 63 61 45 57 61 53 63 61 53 63 61 46 59 71 53 63 61
++53 63 61 45 57 61 54 57 61 45 57 61 45 57 61 45 57 61 45 57 61 54 57 61
++54 57 61 54 57 61 54 57 61 63 59 71 59 69 70 59 69 70 59 69 70 75 72 67
++75 64 82 59 69 70 75 81 76 75 64 82 75 81 76 75 64 82 75 81 76 88 69 84
++75 81 76 75 81 76 75 81 76 88 83 88 75 81 82 88 83 88 75 81 82 88 83 88
++88 83 88 90 98 89 88 83 88 88 83 88 88 83 88 88 83 88 75 81 76 75 81 82
++75 81 82 75 64 82 59 69 70 75 64 82 59 69 70 75 64 82 59 69 70 65 63 61
++63 59 71 59 57 61 42 47 42 22 23 31 12 18 20 12 18 20 14 16 17 22 25 24
++25 30 29 28 30 35 33 39 38 34 40 43 34 40 43 31 35 35 28 30 35 31 35 35
++28 35 38 33 39 38 33 39 38 28 35 38 28 35 38 31 35 35 28 30 35 28 30 35
++25 30 29 22 23 31 22 23 31 25 30 29 22 23 31 22 23 31 22 25 24 23 20 24
++23 20 24 23 18 22 12 18 20 23 20 24 23 20 24 14 16 17 23 18 22 14 16 17
++23 18 22 12 18 20 23 20 24 23 18 22 12 18 20 23 20 24 23 20 24 23 18 22
++14 16 17 14 16 17 17 12 17 17 12 17 14 16 17 14 16 17 14 16 17 14 16 17
++23 18 22 30 30 34 36 35 37 23 20 24 14 16 17 14 16 17 17 12 17 7 12 13
++17 12 17 23 20 24 30 30 34 42 41 42 25 30 29 23 20 24 12 18 20 15 22 17
++23 20 24 22 25 24 23 20 24 22 23 31 22 25 24 26 24 32 26 24 32 31 35 35
++43 42 50 54 57 61 54 57 61 54 57 61 48 44 48 54 57 61 54 57 61 43 42 50
++48 50 48 45 57 61 48 50 48 43 42 50 34 40 43 28 35 38 28 30 35 31 35 35
++43 42 50 45 57 61 34 40 43 43 42 50 43 42 50 35 47 50 48 44 48 43 42 50
++34 40 43 22 23 31 28 35 38 111 119 127 185 202 202 235 238 247 240 251 247 235 238 247
++240 251 247 240 251 247 240 251 247 246 237 247 240 251 247 246 237 247 240 251 247 240 251 247
++240 251 247 240 251 247 240 251 247 240 251 247 235 238 247 240 251 247 235 238 247 235 238 247
++240 251 247 235 238 247 235 238 247 231 239 247 240 251 247 240 251 247 240 251 247 240 251 247
++240 251 247 240 251 247 231 239 247 231 239 247 240 251 247 240 251 247 240 251 247 235 238 247
++231 239 247 235 238 247 231 239 247 240 251 247 231 239 247 231 239 247 221 238 247 221 238 247
++226 221 247 221 238 247 226 221 247 208 221 247 208 221 247 208 221 247 201 216 228 201 216 228
++194 199 226 194 199 226 208 221 247 194 199 226 185 202 202 194 199 226 166 176 200 194 199 226
++201 216 228 201 216 228 201 216 228 189 165 168 168 146 127 177 169 143 201 146 124 177 169 143
++201 146 124 177 169 143 168 146 127 177 169 143 201 146 124 168 146 127 168 146 127 168 146 127
++168 146 127 168 102 88 138 126 108 157 148 53 117 114 76 168 102 88 117 114 76 117 114 76
++117 114 76 117 99 86 117 99 86 120 63 71 117 114 76 120 63 71 117 99 86 101 83 74
++101 74 26 88 73 62 88 73 31 75 56 53 63 55 45 55 39 37 32 39 24 33 30 30
++47 47 21 62 47 47 99 93 84 111 119 127 150 144 154 166 174 181 166 174 181 185 202 202
++188 180 202 148 160 159 150 144 154 150 147 171 166 174 181 166 176 200 166 174 181 119 117 138
++75 81 90 59 69 70 75 81 76 75 81 90 75 81 90 59 57 61 31 35 35 12 18 20
++14 16 17 23 20 24 23 20 24 23 20 24 26 24 32 22 25 24 26 24 32 26 24 32
++22 25 24 23 20 24 26 24 32 23 20 24 26 25 15 26 24 32 26 25 15 22 25 24
++22 25 24 23 20 24 23 18 22 23 18 22 15 22 17 23 18 22 22 24 13 23 20 24
++23 20 24 22 25 24 26 30 28 22 25 24 22 25 24 22 25 24 26 30 28 25 30 29
++30 30 34 33 30 30 30 30 34 30 30 34 33 30 32 26 30 28 30 30 34 31 35 35
++37 35 43 36 35 37 35 46 43 43 55 48 53 63 61 59 69 70 54 57 61 54 57 61
++53 63 61 54 57 61 50 61 48 54 57 61 53 63 61 65 63 61 53 63 61 65 63 61
++59 69 70 65 63 61 59 69 70 65 63 61 53 63 61 65 63 61 53 63 61 53 63 61
++53 63 61 53 63 61 53 63 61 54 57 61 48 50 48 48 50 48 45 57 61 48 50 48
++43 42 50 48 50 48 43 42 50 43 55 48 43 42 50 48 50 48 48 50 48 43 42 50
++43 55 48 43 42 50 45 57 61 48 50 48 48 50 48 45 57 61 53 46 48 54 57 61
++53 46 48 48 50 48 48 50 48 52 55 48 75 81 82 112 123 108 145 140 145 146 162 145
++166 156 164 166 180 164 146 162 145 121 143 132 111 119 127 121 143 132 148 160 159 166 180 164
++166 180 164 166 174 181 166 180 164 166 180 164 166 180 164 126 147 144 111 119 127 112 96 108
++117 99 86 138 102 108 138 126 108 168 146 127 157 148 53 201 146 124 157 148 53 219 175 47
++201 146 124 157 148 53 195 113 123 157 148 53 168 102 88 157 148 53 168 146 127 177 171 115
++168 146 127 138 126 108 75 77 62 75 81 76 112 123 108 166 180 164 188 180 202 166 180 164
++185 202 202 166 180 164 166 180 164 166 180 164 166 174 181 166 180 164 185 202 202 166 180 164
++166 180 164 166 174 181 166 174 181 166 180 164 166 174 181 166 180 164 166 174 181 166 180 164
++166 180 164 166 174 181 166 180 164 150 168 183 150 171 159 148 160 159 148 160 159 148 160 159
++150 171 159 150 171 159 166 174 181 166 180 164 148 160 159 111 119 127 75 81 69 43 55 48
++35 46 43 42 47 42 48 50 48 48 50 48 48 50 48 48 44 48 42 47 42 48 50 48
++42 47 42 42 47 42 42 41 42 42 47 42 42 41 42 42 47 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 36 35 37 36 35 37 36 35 37 42 41 42 42 38 42 42 41 42 36 35 37
++42 41 42 42 41 42 42 41 42 36 35 37 42 41 42 47 39 42 42 41 42 42 38 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 47 44 42 47 44 42
++47 44 42 53 46 48 51 49 42 53 46 48 53 46 48 55 55 48 53 46 48 55 55 48
++55 55 48 55 55 48 60 49 42 51 49 42 51 49 42 51 49 42 51 49 42 47 44 42
++47 44 42 42 41 42 47 44 42 42 41 42 47 44 42 47 44 42 47 49 42 47 44 42
++47 49 42 48 44 48 51 49 42 48 50 48 51 49 42 48 50 48 53 46 48 55 55 48
++55 55 48 55 55 48 63 55 51 63 55 51 62 47 47 63 55 51 62 47 47 55 55 48
++62 47 47 63 55 51 55 55 48 55 55 48 59 55 55 55 55 48 53 46 48 55 55 48
++55 55 48 63 55 51 62 47 47 55 55 48 53 46 48 55 55 48 53 46 48 51 49 42
++47 44 42 51 49 42 47 44 42 53 46 48 51 49 42 47 44 42 53 46 48 51 49 42
++
++52 30 15 49 13 16 49 13 16 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26 76 18 19
++102 33 26 76 18 19 76 18 19 102 33 26 76 18 19 76 18 19 102 33 26 76 18 19
++76 18 19 102 33 26 76 18 19 102 33 26 76 18 19 76 18 19 102 33 26 88 30 18
++88 30 18 88 30 18 76 18 19 88 30 18 88 30 18 88 30 18 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16
++76 18 19 76 18 19 49 13 16 76 18 19 76 18 19 49 13 16 76 18 19 76 18 19
++76 18 19 59 36 42 88 30 18 76 18 19 76 44 53 102 33 26 88 44 51 102 33 26
++88 44 51 122 49 24 122 49 24 120 63 71 122 49 24 120 63 71 161 55 23 120 63 71
++161 55 23 120 63 71 122 49 24 120 63 71 101 74 26 120 63 71 88 73 62 88 44 51
++75 56 53 76 46 20 60 49 42 60 49 42 55 39 37 53 46 48 53 46 48 60 49 42
++55 55 48 55 55 48 63 55 51 65 55 54 65 63 61 65 63 61 65 63 61 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 81 69 75 72 67 75 81 76 88 66 70
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 65 63 61 65 63 61
++64 70 48 59 55 55 59 55 55 52 55 48 59 55 55 48 50 48 59 55 55 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 43 42 50 42 47 42 48 44 48
++48 50 48 43 42 50 48 50 48 42 47 42 43 42 50 48 50 48 42 47 42 43 42 50
++42 47 42 43 42 50 42 47 42 42 47 42 48 50 48 48 50 48 48 50 48 48 50 48
++52 55 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 59 55 55 55 55 48
++55 55 48 59 55 55 55 55 48 53 46 48 48 50 48 48 50 48 53 46 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 42 47 42 42 47 42 48 44 48 42 41 42
++42 47 42 42 41 42 42 47 42 42 41 42 42 47 42 36 35 37 47 44 42 36 35 37
++36 35 37 42 41 42 36 35 37 36 35 37 47 47 21 36 35 37 36 35 37 47 47 21
++42 41 42 36 35 37 36 35 37 52 30 35 36 35 37 36 35 37 42 38 42 42 38 42
++47 47 21 47 39 42 47 39 42 36 35 37 47 44 42 47 44 42 47 44 42 51 49 42
++53 46 48 55 55 48 55 55 48 59 55 55 55 55 48 63 55 51 59 55 55 59 55 55
++55 55 48 65 63 61 63 55 51 65 63 61 63 55 51 59 55 55 63 55 51 55 55 48
++59 55 55 63 55 51 59 55 55 59 57 61 59 55 55 59 55 55 59 55 55 53 63 61
++54 57 61 53 63 61 53 63 61 53 63 61 53 63 61 54 57 61 54 57 61 54 57 61
++53 63 61 46 59 71 53 63 61 54 57 61 53 63 61 53 63 61 53 63 61 53 63 61
++54 57 61 45 57 61 54 57 61 45 57 61 54 57 61 45 57 61 45 57 61 45 57 61
++45 57 61 54 57 61 54 57 61 53 63 61 59 69 70 53 63 61 63 59 71 59 69 70
++59 69 70 59 69 70 75 72 67 75 64 82 75 72 67 75 81 76 75 81 76 75 81 76
++75 81 76 88 69 84 75 81 76 88 83 88 88 83 74 88 83 88 88 83 74 88 83 88
++88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 75 81 82 88 83 88 75 81 82
++75 81 82 75 81 76 75 64 82 59 69 70 75 72 67 59 69 70 63 59 71 59 69 70
++59 57 61 43 42 50 25 30 29 12 18 20 12 18 20 12 18 20 22 25 24 22 25 24
++26 24 32 31 35 35 34 40 43 42 41 42 33 39 38 31 35 35 28 30 35 28 30 35
++28 30 35 36 35 37 28 35 38 36 35 37 31 35 35 28 30 35 28 30 35 25 30 29
++25 30 29 25 30 29 22 23 31 22 25 24 22 23 31 22 25 24 23 20 24 23 20 24
++23 18 22 12 18 20 23 18 22 15 22 17 23 20 24 23 18 22 14 16 17 14 16 17
++15 22 17 23 18 22 15 22 17 23 20 24 23 18 22 23 20 24 23 20 24 23 18 22
++14 16 17 14 16 17 14 16 17 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13
++14 16 17 25 30 29 36 35 37 31 35 35 23 20 24 14 16 17 14 16 17 17 12 17
++3 4 9 3 4 9 23 20 24 31 35 35 31 35 35 25 30 29 23 20 24 12 18 20
++23 20 24 23 20 24 22 25 24 22 25 24 26 30 28 22 25 24 26 24 32 31 35 35
++43 42 50 45 57 61 54 57 61 54 57 61 43 42 50 45 57 61 54 57 61 54 57 61
++54 57 61 45 57 61 52 55 48 43 42 50 33 39 38 28 30 35 31 35 35 35 47 50
++48 50 48 45 57 61 42 41 42 35 47 50 48 50 48 45 57 61 54 57 61 45 57 61
++37 35 43 22 23 31 37 35 43 112 123 108 201 216 228 240 251 247 251 251 247 235 238 247
++240 251 247 235 238 247 240 251 247 235 238 247 240 251 247 235 238 247 240 251 247 235 238 247
++240 251 247 235 238 247 240 251 247 235 238 247 240 251 247 240 251 247 235 238 247 240 251 247
++231 239 247 240 251 247 235 238 247 240 251 247 235 238 247 240 251 247 240 251 247 240 251 247
++235 238 247 231 239 247 221 238 247 221 238 247 231 239 247 240 251 247 240 251 247 240 251 247
++231 239 247 240 251 247 231 239 247 231 239 247 231 239 247 231 239 247 226 221 247 221 238 247
++208 221 247 226 221 247 221 238 247 221 238 247 221 238 247 201 216 228 208 221 247 194 199 226
++208 221 247 194 199 226 201 216 228 194 199 226 194 199 226 166 176 200 185 202 202 194 199 226
++194 199 226 232 215 228 232 215 228 188 180 202 189 165 168 177 169 143 177 169 143 168 146 127
++177 169 143 168 146 127 201 146 124 168 146 127 168 146 127 168 146 127 146 150 115 168 102 88
++138 126 108 138 126 108 168 102 88 138 102 108 117 114 76 117 114 76 168 102 88 117 114 76
++117 99 86 168 102 88 117 112 45 117 99 86 117 112 45 120 63 71 98 106 55 101 83 74
++88 73 62 88 73 62 63 55 45 63 55 45 51 49 42 53 35 37 47 47 21 33 30 30
++53 46 48 88 83 74 111 119 127 166 156 164 150 171 159 188 180 202 188 180 202 185 202 202
++166 174 181 150 144 154 131 144 168 148 160 159 166 174 181 188 180 202 166 174 181 111 119 127
++75 81 82 59 69 70 75 81 76 78 98 90 88 83 88 59 69 70 34 40 43 15 22 17
++14 16 17 23 20 24 26 24 32 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24
++26 24 32 22 25 24 23 20 24 26 30 28 23 20 24 23 20 24 23 20 24 22 25 24
++23 18 22 23 20 24 15 22 17 22 25 24 23 20 24 23 18 22 23 20 24 23 20 24
++22 25 24 26 24 32 33 30 30 33 30 30 26 30 28 33 30 30 26 30 28 26 24 32
++26 30 28 30 30 34 30 30 34 33 30 32 26 30 28 26 24 32 26 30 28 30 30 34
++31 35 35 31 35 35 36 35 37 43 42 50 54 57 61 59 57 61 54 57 61 53 63 61
++59 55 55 53 63 61 53 63 61 59 57 61 53 63 61 65 63 61 65 63 61 59 69 70
++65 63 61 59 69 70 65 63 61 59 69 70 65 63 61 53 63 61 53 63 61 53 63 61
++54 57 61 53 63 61 50 61 48 45 57 61 54 57 61 45 57 61 48 50 48 45 57 61
++48 50 48 35 47 50 48 50 48 48 50 48 48 50 48 43 42 50 48 50 48 48 50 48
++45 57 61 48 50 48 48 50 48 48 50 48 54 57 61 48 50 48 54 57 61 52 55 48
++54 57 61 52 55 48 43 55 48 48 50 48 75 77 62 94 105 108 121 143 132 148 160 159
++150 171 159 150 171 159 148 160 159 121 143 132 112 123 108 112 123 108 121 143 132 150 144 154
++150 171 159 166 180 164 166 180 164 166 174 181 166 180 164 166 180 164 146 151 137 121 143 132
++98 113 84 117 99 86 117 114 76 163 117 123 201 146 124 157 148 53 168 102 88 168 102 88
++168 102 88 157 148 53 168 102 88 168 102 88 117 112 45 168 102 88 168 102 88 168 146 127
++138 126 108 117 99 86 75 77 62 112 96 108 150 171 159 166 180 164 185 202 202 166 174 181
++166 180 164 166 180 164 166 180 164 166 174 181 166 180 164 166 174 181 150 171 159 166 180 164
++150 171 159 166 180 164 166 174 181 166 180 164 150 171 159 166 174 181 166 180 164 150 168 183
++166 180 164 150 168 183 150 171 159 150 171 159 148 160 159 146 162 145 126 147 144 148 160 159
++148 160 159 150 171 159 150 171 159 150 171 159 126 147 144 90 98 89 53 63 61 35 46 43
++35 46 43 43 55 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++42 47 42 43 42 50 42 47 42 43 42 50 42 41 42 42 41 42 42 41 42 42 41 42
++42 47 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 36 35 37 36 35 37 36 35 37 42 38 42 36 35 37 42 38 42
++42 41 42 42 41 42 42 41 42 47 44 42 36 35 37 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 47 42 42 41 42 47 44 42 47 44 42
++47 44 42 51 49 42 51 49 42 53 46 48 55 55 48 55 55 48 53 46 48 51 49 42
++55 55 48 53 46 48 52 55 48 52 55 48 53 46 48 51 49 42 51 49 42 47 44 42
++42 47 42 47 44 42 47 44 42 42 41 42 47 44 42 47 44 42 48 50 48 48 50 48
++53 46 48 48 50 48 48 50 48 52 55 48 53 46 48 52 55 48 52 55 48 55 55 48
++55 55 48 55 55 48 55 55 48 59 55 55 63 55 51 55 55 48 62 47 47 55 55 48
++63 55 51 55 55 48 63 55 51 63 55 51 55 55 48 55 55 48 55 55 48 55 55 48
++55 55 48 63 55 51 63 55 51 55 55 48 55 55 48 53 46 48 51 49 42 53 46 48
++51 49 42 47 44 42 51 49 42 47 44 42 51 49 42 47 44 42 51 49 42 51 49 42
++
++49 13 16 76 18 19 52 30 15 49 13 16 76 18 19 49 13 16 76 18 19 52 30 15
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26
++76 18 19 102 33 26 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26
++76 18 19 76 18 19 76 18 19 102 33 26 76 18 19 102 33 26 76 18 19 76 18 19
++102 33 26 76 18 19 88 30 18 76 18 19 76 18 19 88 30 18 76 18 19 102 33 26
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 52 30 35
++76 18 19 59 36 42 88 30 18 76 44 53 88 30 18 88 44 51 102 33 26 88 44 51
++122 49 24 88 44 51 122 49 24 120 63 71 122 49 24 120 63 71 122 49 24 120 63 71
++117 112 45 120 63 71 120 63 71 120 63 71 122 49 24 88 73 62 122 49 24 88 73 62
++88 44 51 75 56 53 60 49 42 55 39 37 55 39 37 51 49 42 55 39 37 51 49 42
++55 55 48 63 55 51 63 55 51 63 55 51 65 63 61 65 63 61 65 63 61 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 81 69
++75 72 67 75 72 67 75 72 67 75 72 67 75 63 62 75 72 67 65 63 61 65 63 61
++59 57 61 59 55 55 63 55 51 55 55 48 59 55 55 48 50 48 48 50 48 48 50 48
++59 55 55 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 43 42 50
++48 50 48 35 47 50 48 50 48 43 42 50 43 55 48 43 42 50 42 47 42 42 47 42
++42 47 42 48 50 48 42 47 42 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 52 55 48 54 57 61 59 55 55 59 55 55 59 55 55 52 55 48 55 55 48
++55 55 48 55 55 48 59 55 55 52 55 48 55 55 48 52 55 48 52 55 48 59 55 55
++48 50 48 48 50 48 48 50 48 43 42 50 42 47 42 43 42 50 42 41 42 43 42 50
++42 41 42 42 47 42 42 41 42 42 41 42 42 41 42 36 35 37 36 35 37 32 39 24
++42 41 42 32 39 24 42 41 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 47 47 21 36 35 37 42 41 42 36 35 37 47 49 42 42 41 42 42 41 42
++42 41 42 42 41 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 49 42
++48 50 48 51 49 42 55 55 48 55 55 48 63 55 51 59 55 55 63 55 51 59 55 55
++59 55 55 59 55 55 59 55 55 50 61 48 63 55 51 64 70 48 55 55 48 50 61 48
++63 55 51 50 61 48 65 63 61 53 63 61 59 57 61 53 63 61 59 57 61 59 55 55
++53 63 61 53 63 61 53 63 61 54 57 61 54 57 61 53 63 61 54 57 61 53 63 61
++53 63 61 54 57 61 53 63 61 54 57 61 46 59 71 54 57 61 54 57 61 45 57 61
++54 57 61 45 57 61 45 57 61 45 57 61 43 55 48 45 57 61 43 55 48 45 57 61
++45 57 61 45 57 61 45 57 61 54 57 61 53 63 61 54 57 61 53 63 61 63 59 71
++63 59 71 75 72 67 75 64 82 59 69 70 75 64 82 75 81 76 75 64 82 75 81 76
++75 64 82 75 81 82 75 81 82 75 81 82 75 81 82 75 81 82 88 83 88 75 81 82
++90 98 89 88 83 74 78 98 90 88 83 88 75 81 82 88 83 88 75 81 82 75 81 82
++75 64 82 75 81 76 75 72 67 59 69 70 63 59 71 59 69 70 75 72 67 59 69 70
++48 50 48 28 35 38 12 18 20 23 20 24 22 23 31 25 30 29 23 30 35 22 23 31
++23 30 35 31 35 35 34 40 43 34 40 43 31 35 35 25 30 29 31 35 35 28 30 35
++31 35 35 31 35 35 31 35 35 31 35 35 31 35 35 30 30 34 25 30 29 26 24 32
++22 25 24 26 24 32 26 30 28 22 25 24 22 25 24 23 20 24 23 20 24 12 18 20
++23 18 22 15 22 17 23 18 22 12 18 20 14 16 17 14 16 17 23 18 22 14 16 17
++23 18 22 12 18 20 23 18 22 12 18 20 23 20 24 15 22 17 12 18 20 23 18 22
++15 22 17 23 18 22 14 16 17 14 16 17 14 16 17 7 12 13 7 12 13 7 12 13
++7 12 13 23 18 22 30 30 34 42 41 42 31 35 35 23 20 24 14 16 17 14 16 17
++7 12 13 3 4 9 7 12 13 14 16 17 31 35 35 28 35 38 22 25 24 15 22 17
++23 18 22 23 20 24 22 25 24 26 24 32 22 25 24 22 25 24 22 23 31 31 35 35
++43 42 50 54 57 61 54 57 61 45 57 61 43 42 50 48 50 48 54 57 61 53 63 61
++54 57 61 54 57 61 52 55 48 43 42 50 31 35 35 25 30 29 33 39 38 43 42 50
++54 57 61 48 50 48 37 35 43 28 35 38 34 40 43 45 57 61 59 57 61 54 57 61
++36 35 37 22 23 31 34 40 43 111 119 127 225 222 201 246 237 247 251 251 247 240 251 247
++235 238 247 235 238 247 235 238 247 240 251 247 235 238 247 240 251 247 240 251 247 240 251 247
++240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 235 238 247 240 251 247 231 239 247
++231 239 247 231 239 247 231 239 247 221 238 247 231 239 247 221 238 247 221 238 247 221 238 247
++226 221 247 226 221 247 221 238 247 231 239 247 235 238 247 240 251 247 231 239 247 240 251 247
++240 251 247 231 239 247 231 239 247 231 239 247 221 238 247 221 238 247 221 238 247 208 221 247
++221 238 247 221 238 247 208 221 247 221 238 247 208 221 247 208 221 247 201 216 228 201 216 228
++194 199 226 208 221 247 194 199 226 194 199 226 194 199 226 194 199 226 166 176 200 194 199 226
++194 199 226 201 216 228 208 221 247 225 222 201 189 165 168 166 156 164 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 168 146 127 146 150 115 168 102 88 138 126 108 157 148 53
++138 126 108 138 126 108 117 114 76 117 114 76 168 102 88 117 114 76 117 99 86 117 112 45
++120 63 71 117 114 76 117 99 86 120 63 71 101 83 74 101 74 26 88 73 62 88 73 62
++88 73 31 75 73 36 63 55 45 60 49 42 47 47 21 47 44 42 32 39 24 51 49 42
++75 81 76 111 119 127 150 144 154 166 174 181 166 174 181 188 180 202 185 202 202 194 199 226
++166 174 181 129 144 153 150 144 154 150 168 183 166 174 181 166 174 181 166 156 164 111 119 127
++75 81 82 59 69 70 75 81 82 75 81 90 75 81 82 60 82 70 43 42 50 15 22 17
++12 18 20 23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24
++23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 23 18 22 15 22 17 23 18 22
++22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24
++26 24 32 26 30 28 26 24 32 26 30 28 26 24 32 26 24 32 26 30 28 26 24 32
++26 30 28 26 24 32 33 30 32 30 30 34 30 30 34 26 30 28 33 30 30 26 24 32
++33 30 30 30 30 34 36 35 37 37 35 43 48 50 48 54 57 61 54 57 61 53 63 61
++53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 59 69 70 59 69 70 65 63 61
++59 69 70 59 69 70 65 63 61 59 69 70 65 63 61 65 63 61 53 63 61 53 63 61
++53 63 61 53 63 61 53 63 61 53 63 61 50 61 48 45 57 61 52 55 48 52 55 48
++48 50 48 48 50 48 48 50 48 43 55 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 52 55 48 52 55 48 59 55 55 52 55 48 59 55 55
++52 55 48 52 55 48 52 55 48 48 50 48 53 63 61 88 83 74 112 123 108 146 151 137
++146 162 145 148 160 159 148 160 159 146 151 137 111 119 127 90 98 89 90 98 89 95 119 107
++121 143 132 146 162 145 150 171 159 150 171 159 150 171 159 150 171 159 166 180 164 148 160 159
++121 143 132 90 98 89 90 98 89 138 126 108 138 126 108 201 146 124 176 103 41 168 102 88
++157 148 53 168 102 88 176 103 41 117 112 45 167 63 71 117 112 45 138 126 108 163 117 123
++138 126 108 117 99 86 90 98 89 117 142 111 148 160 159 166 174 181 166 180 164 166 180 164
++166 180 164 166 174 181 166 180 164 166 180 164 166 180 164 166 180 164 150 171 159 148 160 159
++150 171 159 150 168 183 150 171 159 150 171 159 150 171 159 150 171 159 150 168 183 150 171 159
++150 171 159 150 171 159 150 171 159 150 171 159 129 144 153 121 143 132 111 119 127 126 147 144
++148 160 159 150 171 159 148 160 159 146 162 145 95 119 107 75 81 76 43 55 48 35 46 43
++43 55 48 43 55 48 48 50 48 45 57 61 48 50 48 48 50 48 43 42 50 43 42 50
++42 47 42 43 42 50 35 46 43 42 41 42 34 40 43 42 41 42 42 41 42 34 40 43
++42 41 42 42 41 42 34 40 43 42 41 42 34 40 43 42 41 42 42 41 42 33 39 38
++33 39 38 42 41 42 42 41 42 42 41 42 42 41 42 42 38 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 47 42 42 41 42 47 49 42 47 44 42
++51 49 42 48 44 48 48 50 48 52 55 48 53 46 48 55 55 48 55 55 48 53 46 48
++55 55 48 52 55 48 51 49 42 51 49 42 51 49 42 48 50 48 47 44 42 42 47 42
++47 44 42 42 47 42 47 44 42 47 49 42 47 44 42 48 50 48 48 50 48 52 55 48
++52 55 48 55 55 48 55 55 48 52 55 48 52 55 48 53 46 48 55 55 48 55 55 48
++55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48
++55 55 48 55 55 48 63 55 51 55 55 48 63 55 51 55 55 48 55 55 48 53 46 48
++55 55 48 55 55 48 53 46 48 55 55 48 55 55 48 53 46 48 55 55 48 53 46 48
++51 49 42 53 46 48 47 44 42 48 44 48 47 44 42 53 46 48 48 44 48 48 44 48
++
++52 30 15 76 18 19 52 30 15 76 18 19 49 13 16 76 18 19 76 18 19 76 18 19
++49 13 16 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++102 33 26 76 18 19 76 18 19 102 33 26 76 18 19 76 18 19 102 33 26 76 18 19
++76 18 19 102 33 26 76 18 19 76 18 19 76 18 19 102 33 26 76 18 19 102 33 26
++76 18 19 76 18 19 76 18 19 102 33 26 76 18 19 102 33 26 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16
++76 18 19 76 18 19 76 18 19 49 13 16 76 18 19 49 13 16 76 18 19 88 30 18
++59 36 42 76 18 19 76 44 53 88 30 18 88 44 51 88 44 51 88 44 51 88 44 51
++122 49 24 120 63 71 122 49 24 120 63 71 161 55 23 120 63 71 176 103 41 122 49 24
++167 63 71 122 49 24 167 63 71 101 74 26 120 63 71 120 63 71 101 60 73 101 74 26
++88 44 51 75 56 53 76 46 20 60 49 42 55 39 37 47 44 42 55 39 37 51 49 42
++53 46 48 55 55 48 55 55 48 63 55 51 64 70 48 65 63 61 65 63 61 65 63 61
++65 63 61 75 72 67 75 72 67 75 72 67 75 72 67 88 66 70 75 72 67 75 72 67
++88 66 70 75 81 76 75 72 67 75 72 67 75 72 67 75 63 62 75 72 67 65 63 61
++65 63 61 63 55 51 59 55 55 59 55 55 59 55 55 52 55 48 53 46 48 54 57 61
++48 50 48 59 55 55 48 50 48 48 50 48 48 50 48 48 50 48 43 42 50 48 50 48
++43 42 50 48 50 48 35 47 50 48 50 48 43 42 50 42 47 42 43 42 50 42 47 42
++48 50 48 43 42 50 48 50 48 43 55 48 43 42 50 48 50 48 48 50 48 48 50 48
++52 55 48 48 50 48 52 55 48 55 55 48 54 57 61 52 55 48 59 55 55 55 55 48
++52 55 48 59 55 55 52 55 48 59 55 55 52 55 48 59 55 55 48 50 48 54 57 61
++52 55 48 48 50 48 48 50 48 42 47 42 42 47 42 42 47 42 42 47 42 43 42 50
++42 47 42 42 41 42 42 47 42 42 47 42 42 41 42 42 41 42 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 42 41 42 36 35 37 47 47 21 36 35 37
++36 35 37 36 35 37 42 41 42 36 35 37 42 41 42 47 44 42 47 44 42 47 44 42
++42 41 42 42 41 42 47 44 42 47 44 42 47 49 42 47 49 42 48 44 48 48 50 48
++51 49 42 48 50 48 55 55 48 59 55 55 63 55 51 59 55 55 59 55 55 64 70 48
++59 55 55 64 70 48 59 55 55 59 55 55 59 55 55 55 55 48 59 55 55 64 70 48
++63 55 51 50 61 48 59 55 55 59 57 61 65 63 61 65 63 61 53 63 61 65 63 61
++65 63 61 59 57 61 53 63 61 53 63 61 63 59 71 54 57 61 54 57 61 53 63 61
++45 57 61 53 63 61 53 63 61 53 63 61 54 57 61 45 57 61 45 57 61 54 57 61
++45 57 61 45 57 61 43 55 48 43 42 50 45 57 61 43 55 48 43 42 50 45 57 61
++43 42 50 48 50 48 45 57 61 45 57 61 54 57 61 46 59 71 54 57 61 53 63 61
++63 59 71 59 69 70 75 72 67 59 69 70 75 64 82 59 69 70 75 81 76 75 64 82
++75 81 82 75 81 82 75 81 76 75 81 82 88 83 88 75 81 76 88 83 88 75 81 82
++88 83 88 75 81 82 88 83 88 75 81 82 88 83 88 75 81 90 75 81 82 75 81 82
++75 81 82 75 64 82 59 69 70 75 64 82 59 69 70 59 69 70 63 59 71 54 57 61
++34 40 43 23 30 35 22 23 31 22 25 24 23 30 35 28 30 35 31 35 35 25 30 29
++28 30 35 31 35 35 34 40 43 34 40 43 28 30 35 25 30 29 31 35 35 25 30 29
++31 35 35 31 35 35 31 35 35 31 35 35 28 30 35 30 30 34 26 30 28 22 25 24
++25 30 29 26 24 32 26 30 28 26 24 32 23 20 24 22 25 24 23 20 24 23 20 24
++12 18 20 23 18 22 23 18 22 14 16 17 23 18 22 23 18 22 12 18 20 23 18 22
++12 18 20 23 18 22 12 18 20 23 20 24 15 22 17 23 18 22 14 16 17 23 20 24
++23 20 24 25 30 29 25 30 29 23 20 24 17 12 17 7 12 13 7 12 13 13 4 7
++7 12 13 14 16 17 22 25 24 34 40 43 42 41 42 31 35 35 26 24 32 15 22 17
++17 12 17 7 12 13 13 4 7 7 12 13 15 22 17 28 30 35 28 30 35 22 25 24
++12 18 20 22 25 24 23 20 24 22 25 24 26 30 28 22 23 31 22 25 24 28 35 38
++43 42 50 45 57 61 54 57 61 48 50 48 45 57 61 48 50 48 45 57 61 54 57 61
++54 57 61 54 57 61 54 57 61 42 47 42 33 39 38 30 30 34 34 40 43 48 50 48
++54 57 61 48 50 48 34 40 43 28 30 35 37 35 43 45 57 61 59 57 61 59 57 61
++42 41 42 22 23 31 42 38 42 111 119 127 194 199 226 251 251 247 251 251 247 240 251 247
++231 239 247 240 251 247 235 238 247 235 238 247 240 251 247 246 237 247 240 251 247 240 251 247
++240 251 247 240 251 247 240 251 247 240 251 247 235 238 247 231 239 247 231 239 247 231 239 247
++221 238 247 221 238 247 221 238 247 221 238 247 221 238 247 221 238 247 221 238 247 221 238 247
++221 238 247 226 221 247 221 238 247 235 238 247 240 251 247 240 251 247 240 251 247 231 239 247
++240 251 247 231 239 247 240 251 247 231 239 247 221 238 247 221 238 247 208 221 247 221 238 247
++226 221 247 221 238 247 221 238 247 226 221 247 221 238 247 208 221 247 208 221 247 194 199 226
++208 221 247 194 199 226 208 221 247 194 199 226 194 199 226 166 176 200 194 199 226 166 176 200
++194 199 226 194 199 226 194 199 226 232 215 228 185 202 202 166 156 164 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 146 150 115 157 148 53 138 126 108 168 102 88 138 126 108
++117 127 86 168 102 88 117 114 76 117 99 86 117 114 76 117 114 76 117 99 86 117 99 86
++117 99 86 117 114 76 120 63 71 117 112 45 98 106 55 101 83 74 88 73 62 75 73 36
++75 73 36 63 55 45 60 49 42 55 39 37 47 44 42 55 39 37 60 49 42 75 81 76
++112 123 108 166 156 164 166 174 181 166 176 200 166 176 200 188 180 202 185 202 202 188 180 202
++166 174 181 129 144 153 150 144 154 148 160 159 166 174 181 166 176 200 148 160 159 95 95 116
++60 81 83 59 69 70 75 81 76 78 98 90 75 81 90 75 81 82 43 55 48 22 25 24
++14 16 17 23 20 24 23 20 24 23 18 22 12 18 20 23 20 24 15 22 17 23 20 24
++22 25 24 22 25 24 23 20 24 23 20 24 23 20 24 12 18 20 23 18 22 23 20 24
++23 20 24 26 24 32 22 25 24 22 25 24 22 25 24 26 24 32 23 20 24 23 20 24
++22 25 24 22 25 24 22 25 24 26 24 32 26 30 28 26 30 28 26 24 32 22 25 24
++26 30 28 30 30 34 33 30 30 30 30 34 26 30 28 30 30 34 26 24 32 26 30 28
++26 24 32 31 35 35 36 35 37 37 35 43 43 42 50 48 50 48 59 57 61 59 57 61
++53 63 61 53 63 61 53 63 61 53 63 61 59 69 70 65 63 61 65 63 61 59 69 70
++65 63 61 59 69 70 59 79 61 65 63 61 59 69 70 59 79 61 53 63 61 65 63 61
++53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 54 57 61 45 57 61
++52 55 48 45 57 61 48 50 48 45 57 61 48 50 48 45 57 61 48 50 48 45 57 61
++43 55 48 52 55 48 52 55 48 54 57 61 55 55 48 54 57 61 52 55 48 59 55 55
++54 57 61 59 55 55 45 57 61 52 55 48 52 55 48 59 79 61 94 105 108 121 143 132
++146 151 137 146 162 145 146 162 145 146 162 145 121 143 132 94 105 108 75 81 69 65 63 61
++90 98 89 112 123 108 146 151 137 146 162 145 146 162 145 150 171 159 166 156 164 150 171 159
++146 151 137 94 105 108 90 98 89 99 93 84 138 126 108 168 102 88 168 102 88 176 103 41
++168 102 88 176 103 41 168 102 88 176 103 41 117 112 45 120 63 71 117 112 45 117 114 76
++117 99 86 112 123 108 94 105 108 112 123 108 146 151 137 150 171 159 166 174 181 166 180 164
++166 180 164 150 171 159 150 171 159 166 174 181 150 171 159 148 160 159 150 171 159 150 171 159
++150 171 159 150 171 159 150 171 159 150 171 159 148 160 159 148 160 159 150 171 159 150 171 159
++150 171 159 148 160 159 148 160 159 150 144 154 121 143 132 94 105 108 112 123 108 121 143 132
++148 160 159 148 160 159 126 147 144 121 143 132 75 81 82 45 57 61 43 55 48 42 47 42
++43 55 48 43 55 48 45 57 61 48 50 48 45 57 61 43 55 48 48 50 48 43 55 48
++43 42 50 35 47 50 43 42 50 43 42 50 42 41 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 34 40 43 42 41 42 33 39 38 42 41 42 33 39 38
++42 41 42 42 41 42 34 40 43 42 41 42 42 41 42 42 41 42 36 35 37 42 41 42
++42 41 42 42 41 42 42 41 42 47 44 42 47 44 42 42 47 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 47 42 42 47 42 47 44 42 47 49 42
++47 49 42 51 49 42 51 49 42 52 55 48 55 55 48 55 55 48 53 46 48 55 55 48
++52 55 48 53 46 48 48 50 48 51 49 42 48 50 48 48 50 48 47 49 42 42 47 42
++42 47 42 47 44 42 47 44 42 48 50 48 47 44 42 48 50 48 52 55 48 53 46 48
++55 55 48 59 55 55 59 55 55 59 55 55 48 50 48 52 55 48 52 55 48 59 55 55
++55 55 48 55 55 48 55 55 48 63 55 51 55 55 48 55 55 48 55 55 48 55 55 48
++53 46 48 55 55 48 63 55 51 59 55 55 55 55 48 55 55 48 55 55 48 55 55 48
++63 55 51 55 55 48 55 55 48 55 55 48 60 49 42 55 55 48 51 49 42 53 46 48
++60 49 42 47 44 42 51 49 42 47 44 42 47 44 42 47 44 42 47 44 42 51 49 42
++
++76 18 19 52 30 15 76 18 19 52 30 35 76 18 19 76 18 19 52 30 15 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26 76 18 19
++76 18 19 102 33 26 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++102 33 26 76 18 19 76 18 19 76 18 19 102 33 26 76 18 19 76 18 19 76 18 19
++102 33 26 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 88 30 18
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 49 13 16 76 18 19 76 18 19 49 13 16 76 18 19 76 18 19 59 36 42
++76 18 19 76 44 53 59 36 42 88 44 51 88 44 51 88 73 31 122 49 24 101 74 26
++120 63 71 122 49 24 120 63 71 161 55 23 101 83 74 161 55 23 120 63 71 120 63 71
++117 112 45 120 63 71 117 112 45 120 63 71 122 49 24 101 74 26 120 63 71 88 44 51
++88 73 62 88 44 51 63 55 45 60 49 42 51 49 42 47 44 42 47 44 42 47 44 42
++60 49 42 55 55 48 55 55 48 59 55 55 65 55 54 65 63 61 65 63 61 65 63 61
++75 77 62 65 63 61 75 72 67 75 72 67 75 72 67 75 72 67 75 81 76 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 65 63 61 75 72 67 65 63 61
++65 63 61 65 55 54 65 55 54 59 55 55 59 55 55 55 55 48 55 55 48 59 55 55
++52 55 48 59 55 55 52 55 48 48 50 48 48 50 48 48 50 48 48 44 48 48 50 48
++42 47 42 43 42 50 42 47 42 43 42 50 43 55 48 43 42 50 42 47 42 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 52 55 48 59 55 55
++59 55 55 52 55 48 59 55 55 52 55 48 59 55 55 52 55 48 52 55 48 48 50 48
++48 50 48 54 57 61 48 50 48 48 50 48 42 47 42 43 42 50 48 44 48 42 41 42
++42 41 42 42 47 42 42 41 42 42 41 42 36 35 37 36 35 37 36 35 37 32 39 24
++36 35 37 36 35 37 32 39 24 47 39 42 32 39 24 42 38 42 36 35 37 36 35 37
++47 44 42 36 35 37 47 44 42 42 47 42 47 44 42 47 44 42 42 47 42 47 44 42
++47 44 42 47 44 42 47 44 42 47 49 42 51 49 42 48 44 48 51 49 42 48 50 48
++48 50 48 55 55 48 55 55 48 55 55 48 63 55 51 64 70 48 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 64 70 48 59 55 55 63 55 51 59 55 55 59 55 55
++50 61 48 65 63 61 59 55 55 65 63 61 59 57 61 65 63 61 65 63 61 59 57 61
++65 63 61 53 63 61 65 63 61 53 63 61 53 63 61 53 63 61 54 57 61 53 63 61
++45 57 61 45 57 61 54 57 61 45 57 61 45 57 61 52 55 48 45 57 61 45 57 61
++45 57 61 48 50 48 43 42 50 45 57 61 35 47 50 35 47 50 35 47 50 43 42 50
++45 57 61 35 47 50 45 57 61 48 50 48 45 57 61 54 57 61 54 57 61 54 57 61
++63 59 71 59 69 70 59 69 70 75 64 82 59 69 70 75 81 76 75 64 82 75 81 76
++75 81 82 75 64 82 75 81 82 88 69 84 75 81 76 75 81 82 88 83 88 88 83 74
++75 81 82 88 83 88 75 81 82 88 83 88 88 83 88 75 81 82 75 81 82 75 81 82
++75 81 82 75 81 76 59 69 70 75 72 67 59 69 70 75 72 67 54 57 61 34 40 43
++25 30 29 25 30 29 23 30 35 28 30 35 23 30 35 28 30 35 28 35 38 26 24 32
++23 30 35 31 35 35 37 35 43 33 39 38 28 30 35 25 30 29 25 30 29 23 30 35
++31 35 35 31 35 35 33 39 38 33 39 38 28 30 35 30 30 34 26 30 28 26 24 32
++25 30 29 26 30 28 26 24 32 22 25 24 22 25 24 23 20 24 23 20 24 22 25 24
++23 18 22 12 18 20 23 20 24 14 16 17 23 18 22 12 18 20 23 20 24 15 22 17
++23 20 24 23 20 24 23 20 24 12 18 20 23 20 24 12 18 20 23 18 22 15 22 17
++23 20 24 25 30 29 30 30 34 25 30 29 22 25 24 14 16 17 17 12 17 7 12 13
++7 12 13 7 12 13 17 12 17 30 30 34 42 41 42 42 41 42 33 39 38 26 30 28
++14 16 17 14 16 17 7 12 13 7 12 13 7 12 13 23 20 24 28 30 35 30 30 34
++22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24 22 23 31 33 39 38
++48 50 48 54 57 61 45 57 61 48 50 48 45 57 61 43 42 50 45 57 61 54 57 61
++54 57 61 54 57 61 43 55 48 48 50 48 34 40 43 31 35 35 33 39 38 45 57 61
++54 57 61 45 57 61 37 35 43 28 35 38 34 40 43 54 57 61 54 57 61 54 57 61
++43 42 50 23 30 35 26 24 32 94 105 108 185 202 202 251 251 247 251 251 247 251 251 247
++240 251 247 235 238 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247
++240 251 247 240 251 247 235 238 247 235 238 247 231 239 247 221 238 247 221 238 247 221 238 247
++221 238 247 221 238 247 221 238 247 221 238 247 208 221 247 221 238 247 226 221 247 221 238 247
++231 239 247 221 238 247 235 238 247 240 251 247 240 251 247 240 251 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 221 238 247 221 238 247 226 221 247 221 238 247 208 221 247
++221 238 247 208 221 247 221 238 247 221 238 247 226 221 247 221 238 247 208 221 247 208 221 247
++194 199 226 194 199 226 201 216 228 194 199 226 194 199 226 194 199 226 166 176 200 194 199 226
++166 176 200 194 199 226 185 202 202 201 216 228 232 215 228 189 165 168 166 156 164 168 146 127
++168 146 127 146 150 115 163 117 123 138 126 108 138 126 108 138 126 108 117 114 76 117 114 76
++168 102 88 117 114 76 117 114 76 117 99 86 117 112 45 120 63 71 117 112 45 120 63 71
++117 112 45 120 63 71 98 106 55 120 63 71 88 73 62 101 74 26 88 73 62 75 56 53
++63 55 45 63 55 45 47 47 21 47 47 21 47 44 42 55 55 48 88 83 74 111 119 127
++150 144 154 166 174 181 166 174 181 166 174 181 188 180 202 185 202 202 194 199 226 185 202 202
++150 168 183 129 144 153 129 144 153 150 168 183 166 174 181 188 180 202 148 160 159 95 95 116
++75 81 82 59 69 70 75 81 82 75 81 82 75 81 90 75 81 82 53 63 61 22 23 31
++14 16 17 14 16 17 14 16 17 14 16 17 23 18 22 23 20 24 23 20 24 15 22 17
++23 20 24 15 22 17 23 20 24 15 22 17 22 25 24 23 20 24 22 25 24 22 25 24
++22 25 24 26 30 28 23 20 24 26 30 28 23 20 24 23 20 24 22 25 24 26 24 32
++22 25 24 33 30 30 23 20 24 26 30 28 23 20 24 26 30 28 23 20 24 26 24 32
++26 24 32 26 30 28 26 30 28 30 30 34 26 30 28 33 30 32 26 30 28 26 24 32
++33 30 30 33 30 32 36 35 37 36 35 37 42 38 42 48 50 48 59 57 61 53 63 61
++65 63 61 53 63 61 53 63 61 65 63 61 53 63 61 59 69 70 59 69 70 59 69 70
++75 72 67 59 69 70 75 72 67 65 63 61 75 72 67 65 63 61 65 63 61 53 63 61
++59 57 61 53 63 61 53 63 61 53 63 61 53 63 61 50 61 48 53 63 61 52 55 48
++54 57 61 48 50 48 52 55 48 59 55 55 52 55 48 54 57 61 48 50 48 59 55 55
++48 50 48 54 57 61 50 61 48 59 55 55 59 55 55 54 57 61 59 55 55 53 63 61
++59 55 55 53 63 61 52 55 48 52 55 48 43 55 48 54 57 61 75 81 76 112 123 108
++145 140 145 146 151 137 148 160 159 146 162 145 146 151 137 112 123 108 78 98 90 75 81 76
++75 81 82 90 98 89 94 105 108 117 142 111 150 144 154 150 171 159 146 162 145 150 171 159
++121 143 132 112 96 108 87 99 72 99 93 84 117 114 76 117 114 76 117 112 45 117 112 45
++168 102 88 138 126 108 146 150 115 168 102 88 168 102 88 101 83 74 120 63 71 117 99 86
++138 102 108 117 127 86 117 99 86 95 91 100 112 123 108 121 143 132 148 160 159 150 171 159
++150 171 159 150 171 159 150 171 159 150 171 159 150 171 159 150 171 159 166 174 181 150 171 159
++166 156 164 150 171 159 150 171 159 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153
++148 160 159 148 160 159 146 162 145 121 143 132 94 105 108 78 98 90 94 105 108 121 143 132
++146 151 137 146 162 145 121 143 132 95 91 100 59 79 61 48 50 48 48 50 48 43 55 48
++45 57 61 48 50 48 52 55 48 54 57 61 48 50 48 48 50 48 48 50 48 48 50 48
++42 47 42 43 42 50 35 46 43 42 41 42 34 40 43 42 41 42 34 40 43 42 38 42
++34 40 43 42 38 42 34 40 43 42 38 42 36 35 37 42 41 42 33 39 38 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 47 42 42 41 42 42 47 42
++42 41 42 42 41 42 42 47 42 47 44 42 42 47 42 47 44 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 47 42 42 47 42 47 44 42 47 49 42 48 50 48
++51 49 42 48 50 48 52 55 48 55 55 48 55 55 48 53 46 48 55 55 48 55 55 48
++55 55 48 52 55 48 55 55 48 48 50 48 53 46 48 51 49 42 48 50 48 47 44 42
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 52 55 48 59 55 55
++59 55 55 59 55 55 52 55 48 54 57 61 59 55 55 52 55 48 53 46 48 55 55 48
++59 55 55 55 55 48 62 47 47 55 55 48 55 55 48 62 47 47 55 55 48 55 55 48
++55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 63 55 51 53 46 48 55 55 48
++53 46 48 55 55 48 62 47 47 55 55 48 55 55 48 51 49 42 53 46 48 51 49 42
++51 49 42 53 46 48 48 44 48 47 44 42 47 44 42 47 44 42 53 46 48 47 44 42
++
++52 30 35 76 18 19 76 46 20 76 18 19 52 30 15 76 18 19 76 18 19 76 18 19
++76 18 19 49 13 16 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 102 33 26 76 18 19 102 33 26 76 18 19 102 33 26 76 18 19
++76 18 19 76 18 19 102 33 26 76 18 19 76 18 19 76 18 19 102 33 26 76 18 19
++76 18 19 88 30 18 76 18 19 76 18 19 102 33 26 76 18 19 102 33 26 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16
++76 18 19 76 18 19 76 18 19 49 13 16 76 18 19 76 18 19 76 18 19 59 36 42
++76 46 20 76 44 53 76 46 20 88 44 51 88 44 51 88 44 51 88 44 51 88 73 62
++120 63 71 120 63 71 117 112 45 120 63 71 120 63 71 117 112 45 120 63 71 176 103 41
++167 63 71 117 112 45 167 63 71 120 63 71 117 112 45 120 63 71 88 73 62 101 74 26
++88 44 51 75 73 36 63 55 45 60 49 42 55 39 37 47 44 42 47 39 42 51 49 42
++53 46 48 51 49 42 53 46 48 55 55 48 59 55 55 64 70 48 65 63 61 65 63 61
++65 63 61 75 72 67 59 69 70 75 72 67 75 72 67 75 72 67 75 72 67 88 66 70
++75 81 76 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 65 63 61 75 63 62
++65 63 61 65 63 61 65 63 61 59 55 55 63 55 51 59 55 55 59 55 55 55 55 48
++52 55 48 59 55 55 52 55 48 59 55 55 48 50 48 48 50 48 48 50 48 42 47 42
++48 50 48 42 47 42 48 50 48 48 50 48 43 42 50 48 50 48 48 50 48 48 50 48
++48 50 48 52 55 48 48 50 48 52 55 48 48 50 48 53 46 48 52 55 48 59 55 55
++48 50 48 52 55 48 52 55 48 52 55 48 59 55 55 59 55 55 59 57 61 50 61 48
++59 55 55 55 55 48 59 55 55 54 57 61 52 55 48 54 57 61 52 55 48 59 55 55
++52 55 48 48 50 48 48 50 48 43 42 50 42 47 42 43 42 50 42 47 42 43 42 50
++42 41 42 42 47 42 42 41 42 42 41 42 42 47 42 36 35 37 42 41 42 36 35 37
++36 35 37 36 35 37 36 35 37 36 35 37 33 30 30 47 39 42 32 39 24 53 35 37
++36 35 37 47 44 42 42 41 42 42 41 42 47 44 42 47 44 42 47 44 42 47 49 42
++47 49 42 47 49 42 47 49 42 48 50 48 51 49 42 48 50 48 48 50 48 48 50 48
++53 46 48 55 55 48 55 55 48 63 55 51 59 55 55 65 63 61 65 63 61 65 63 61
++59 55 55 64 70 48 65 63 61 65 55 54 59 55 55 65 63 61 50 61 48 65 63 61
++59 55 55 63 55 51 59 57 61 64 70 48 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 59 57 61 59 69 70 63 59 71 53 63 61 53 63 61 54 57 61
++53 63 61 53 63 61 45 57 61 54 57 61 45 57 61 45 57 61 48 50 48 45 57 61
++48 50 48 45 57 61 43 55 48 35 47 50 35 47 50 43 42 50 35 47 50 35 47 50
++43 42 50 35 47 50 43 42 50 45 57 61 48 50 48 45 57 61 45 57 61 54 57 61
++53 63 61 63 59 71 59 69 70 59 69 70 75 81 76 63 59 71 60 81 83 75 64 82
++75 81 82 75 81 82 75 81 82 75 81 82 75 81 82 88 83 88 75 81 82 75 81 90
++88 83 88 75 81 90 88 83 88 75 81 82 75 81 82 75 81 82 75 81 82 75 81 82
++75 64 82 75 81 76 75 64 82 59 69 70 75 64 82 53 63 61 43 42 50 28 30 35
++22 23 31 28 30 35 31 35 35 28 35 38 31 35 35 28 30 35 23 30 35 25 30 29
++23 30 35 28 30 35 33 39 38 33 39 38 28 30 35 25 30 29 25 30 29 25 30 29
++30 30 34 31 35 35 33 39 38 31 35 35 25 30 29 30 30 34 26 24 32 26 30 28
++30 30 34 26 24 32 26 30 28 22 23 31 23 20 24 22 25 24 22 25 24 23 20 24
++12 18 20 23 20 24 15 22 17 22 25 24 23 20 24 15 22 17 23 20 24 23 20 24
++12 18 20 23 20 24 15 22 17 23 18 22 12 18 20 22 25 24 23 20 24 22 25 24
++23 20 24 23 20 24 22 25 24 26 24 32 25 30 29 22 25 24 23 20 24 14 16 17
++17 12 17 7 12 13 3 4 9 14 16 17 36 35 37 48 50 48 42 41 42 33 30 36
++22 25 24 17 12 17 7 12 13 7 12 13 3 4 9 7 12 13 22 25 24 30 30 34
++30 30 34 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 26 24 32 37 35 43
++48 50 48 54 57 61 45 57 61 48 50 48 45 57 61 48 50 48 48 50 48 54 57 61
++54 57 61 54 57 61 45 57 61 48 50 48 35 46 43 28 35 38 37 35 43 48 50 48
++54 57 61 43 42 50 34 40 43 43 42 50 43 42 50 54 57 61 54 57 61 48 50 48
++43 42 50 22 23 31 12 18 20 95 91 100 188 180 202 251 251 247 251 251 247 251 251 247
++240 251 247 240 251 247 246 237 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247
++235 238 247 235 238 247 231 239 247 221 238 247 221 238 247 221 238 247 226 221 247 208 221 247
++221 238 247 208 221 247 221 238 247 208 221 247 226 221 247 221 238 247 221 238 247 226 221 247
++221 238 247 231 239 247 240 251 247 240 251 247 240 251 247 231 239 247 231 239 247 221 238 247
++231 239 247 231 239 247 221 238 247 221 238 247 221 238 247 208 221 247 208 221 247 208 221 247
++226 221 247 221 238 247 208 221 247 226 221 247 221 238 247 208 221 247 208 221 247 201 216 228
++208 221 247 194 199 226 208 221 247 194 199 226 194 199 226 194 199 226 194 199 226 166 176 200
++194 199 226 166 176 200 194 199 226 194 199 226 194 199 226 201 216 228 166 174 181 146 151 137
++168 146 127 138 126 108 138 126 108 138 126 108 168 102 88 117 127 86 168 102 88 117 114 76
++117 114 76 117 99 86 117 114 76 120 63 71 117 99 86 101 83 74 117 99 86 101 83 74
++101 83 74 98 106 55 88 73 62 88 73 62 88 73 62 88 73 62 75 56 53 75 73 36
++63 55 45 60 49 42 60 49 42 60 49 42 63 55 51 99 93 84 111 119 127 150 144 154
++166 174 181 166 174 181 166 176 200 188 180 202 188 180 202 194 199 226 194 199 226 188 180 202
++150 147 171 145 140 145 129 144 153 166 156 164 166 174 181 166 174 181 131 144 168 95 91 100
++60 63 87 59 69 70 75 81 76 75 81 90 88 83 88 77 90 100 59 69 70 23 30 35
++14 16 17 7 10 17 14 16 17 17 12 17 23 18 22 23 20 24 23 20 24 14 16 17
++14 16 17 14 16 17 22 25 24 22 25 24 22 25 24 22 25 24 26 30 28 26 24 32
++26 30 28 26 24 32 26 30 28 23 20 24 23 20 24 22 25 24 26 24 32 22 25 24
++26 24 32 26 30 28 26 24 32 22 25 24 26 24 32 26 30 28 26 24 32 26 24 32
++33 30 30 26 24 32 26 30 28 26 24 32 30 30 34 26 30 28 30 30 34 33 30 32
++26 30 28 33 30 32 33 30 32 36 35 37 36 35 37 48 44 48 54 57 61 65 63 61
++59 69 70 65 63 61 53 63 61 65 63 61 59 69 70 59 69 70 75 72 67 59 69 70
++75 72 67 59 69 70 75 72 67 59 69 70 75 72 67 59 79 61 65 63 61 65 63 61
++65 63 61 59 69 70 59 57 61 65 63 61 53 63 61 59 57 61 53 63 61 54 57 61
++52 55 48 54 57 61 59 55 55 54 57 61 52 55 48 59 55 55 54 57 61 59 55 55
++53 63 61 55 55 48 53 63 61 59 55 55 53 63 61 59 55 55 53 63 61 59 55 55
++59 55 55 53 63 61 54 57 61 45 57 61 52 55 48 55 55 48 53 63 61 88 83 88
++112 123 108 121 143 132 146 151 137 146 151 137 146 151 137 121 143 132 112 123 108 95 119 107
++75 81 82 50 61 48 75 77 62 95 119 107 121 143 132 148 160 159 146 162 145 146 151 137
++121 143 132 90 98 89 88 83 74 101 83 74 117 99 86 117 99 86 168 102 88 117 99 86
++117 114 76 138 126 108 138 126 108 138 126 108 117 99 86 117 114 76 117 99 86 117 114 76
++117 99 86 117 99 86 117 99 86 90 98 89 90 98 89 112 96 108 121 143 132 146 162 145
++148 160 159 148 160 159 146 162 145 148 160 159 148 160 159 150 171 159 148 160 159 148 160 159
++150 171 159 148 160 159 148 160 159 148 160 159 148 160 159 126 147 144 126 147 144 146 162 145
++146 162 145 146 162 145 121 143 132 94 105 108 75 99 72 75 81 82 95 119 107 138 126 108
++122 134 144 117 142 111 94 105 108 75 81 69 54 57 61 48 50 48 48 50 48 59 55 55
++45 57 61 52 55 48 54 57 61 48 50 48 57 43 64 48 50 48 48 50 48 48 50 48
++48 50 48 42 47 42 43 42 50 35 46 43 42 41 42 42 41 42 33 39 38 36 35 37
++37 35 43 36 35 37 42 38 42 36 35 37 37 35 43 33 39 38 42 38 42 42 41 42
++42 41 42 34 40 43 42 41 42 42 47 42 42 41 42 42 47 42 47 44 42 47 44 42
++47 44 42 47 44 42 47 44 42 48 44 48 47 49 42 47 44 42 42 47 42 47 44 42
++42 47 42 47 44 42 42 47 42 47 44 42 47 49 42 47 49 42 53 46 48 52 55 48
++53 46 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48
++53 46 48 52 55 48 53 46 48 55 55 48 51 49 42 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 52 55 48 59 55 55 55 55 48 59 55 55 55 55 48 54 57 61
++59 55 55 54 57 61 59 55 55 59 55 55 59 55 55 59 55 55 55 55 48 55 55 48
++63 55 51 55 55 48 63 55 45 55 55 48 63 55 51 55 55 48 55 55 48 55 55 48
++51 49 42 60 49 42 53 46 48 55 55 48 53 46 48 51 49 42 55 55 48 55 55 48
++53 46 48 55 55 48 55 55 48 53 46 48 55 55 48 53 46 48 51 49 42 51 49 42
++51 49 42 47 44 42 51 49 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++
++76 46 20 76 18 19 59 36 42 88 30 18 76 18 19 76 18 19 53 35 17 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++102 33 26 76 18 19 76 18 19 76 18 19 102 33 26 76 18 19 76 18 19 102 33 26
++76 18 19 76 18 19 88 30 18 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++88 30 18 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 49 13 16 76 18 19 76 18 19 76 18 19 52 30 35 76 18 19 59 36 42
++88 30 18 76 44 53 76 44 53 88 44 51 88 73 31 101 60 73 101 74 26 120 63 71
++101 74 26 120 63 71 167 63 71 117 112 45 167 63 71 167 63 71 117 112 45 120 63 71
++120 63 71 176 103 41 120 63 71 117 112 45 167 63 71 101 74 26 120 63 71 88 73 62
++88 73 62 88 44 51 75 56 53 63 55 45 51 49 42 47 44 42 47 44 42 47 44 42
++47 44 42 51 49 42 51 49 42 55 55 48 59 55 55 59 55 55 65 63 61 65 63 61
++59 79 61 65 63 61 75 72 67 75 72 67 75 72 67 75 72 67 75 81 76 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 59 67 65 63 61 65 63 61
++65 63 61 63 55 51 65 55 54 59 55 55 59 55 55 59 55 55 59 55 55 55 55 48
++59 55 55 55 55 48 59 55 55 48 50 48 48 50 48 48 50 48 47 49 42 48 50 48
++48 50 48 48 50 48 43 55 48 43 42 50 43 55 48 48 50 48 48 50 48 52 55 48
++52 55 48 52 55 48 52 55 48 59 55 55 52 55 48 52 55 48 53 46 48 55 55 48
++59 55 55 48 50 48 54 57 61 59 55 55 59 55 55 59 55 55 50 61 48 59 55 55
++55 55 48 54 57 61 59 57 61 59 55 55 59 55 55 52 55 48 52 55 48 54 57 61
++48 50 48 52 55 48 48 50 48 43 55 48 48 50 48 42 47 42 43 42 50 48 44 48
++42 47 42 42 41 42 42 41 42 33 39 38 36 35 37 36 35 37 36 35 37 32 39 24
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 53 35 37 36 35 37
++47 49 42 42 41 42 47 44 42 47 44 42 47 44 42 47 49 42 47 49 42 51 49 42
++51 49 42 51 49 42 48 50 48 51 49 42 48 50 48 55 55 48 55 55 48 55 55 48
++55 55 48 55 55 48 59 55 55 63 55 51 65 63 61 63 55 51 65 63 61 63 55 51
++65 63 61 59 55 55 63 55 51 65 63 61 64 70 48 59 55 55 65 63 61 63 55 51
++64 70 48 59 55 55 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++59 79 61 53 63 61 65 63 61 53 63 61 65 63 61 53 63 61 53 63 61 53 63 61
++45 57 61 50 61 48 45 57 61 45 57 61 45 57 61 52 55 48 45 57 61 43 55 48
++45 57 61 43 42 50 35 47 50 43 42 50 43 55 48 35 47 50 43 42 50 35 47 50
++35 47 50 35 47 50 35 47 50 43 55 48 45 57 61 48 50 48 54 57 61 45 57 61
++54 57 61 59 69 70 63 59 71 59 69 70 75 64 82 59 69 70 75 81 76 75 64 82
++75 81 82 75 81 82 75 81 82 75 81 82 75 81 82 75 81 82 88 83 88 75 81 82
++88 83 88 75 81 82 75 81 82 88 83 88 75 81 82 75 81 82 75 64 82 75 81 76
++75 64 82 59 69 70 75 81 76 59 69 70 59 69 70 48 50 48 33 39 38 28 30 35
++28 30 35 31 35 35 28 35 38 28 30 35 28 30 35 23 30 35 23 30 35 25 30 29
++23 30 35 31 35 35 34 40 43 34 40 43 31 35 35 25 30 29 25 30 29 25 30 29
++31 35 35 31 35 35 31 35 35 31 35 35 28 30 35 30 30 34 30 30 34 30 30 34
++30 30 34 26 30 28 22 25 24 22 25 24 26 24 32 22 25 24 23 20 24 22 25 24
++23 20 24 15 22 17 23 20 24 23 20 24 12 18 20 23 20 24 23 20 24 15 22 17
++23 20 24 15 22 17 23 20 24 12 18 20 23 18 22 23 20 24 22 25 24 22 25 24
++23 20 24 12 18 20 14 16 17 23 20 24 25 30 29 30 30 34 25 30 29 22 25 24
++23 20 24 14 16 17 7 12 13 7 12 13 26 24 32 43 42 50 42 47 42 42 41 42
++30 30 34 23 18 22 7 12 13 13 4 7 7 12 13 7 12 13 17 12 17 25 30 29
++31 35 35 30 30 34 25 30 29 12 18 20 22 23 31 22 25 24 22 23 31 33 39 38
++48 50 48 54 57 61 45 57 61 43 42 50 43 42 50 35 47 50 43 42 50 45 57 61
++45 57 61 54 57 61 54 57 61 48 50 48 35 46 43 34 40 43 43 42 50 54 57 61
++43 42 50 34 40 43 34 40 43 43 42 50 45 57 61 54 57 61 43 42 50 35 47 50
++34 40 43 23 20 24 14 16 17 88 83 88 185 202 202 246 237 247 251 251 247 251 251 247
++251 251 247 240 251 247 240 251 247 240 251 247 246 237 247 240 251 247 235 238 247 235 238 247
++231 239 247 231 239 247 221 238 247 226 221 247 221 238 247 208 221 247 221 238 247 221 238 247
++221 238 247 208 221 247 221 238 247 221 238 247 221 238 247 221 238 247 221 238 247 231 239 247
++231 239 247 231 239 247 240 251 247 240 251 247 240 251 247 231 239 247 231 239 247 231 239 247
++231 239 247 221 238 247 221 238 247 208 221 247 208 221 247 201 216 228 226 221 247 221 238 247
++208 221 247 221 238 247 226 221 247 208 221 247 221 238 247 208 221 247 226 221 247 208 221 247
++208 221 247 208 221 247 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226
++166 176 200 194 199 226 185 202 202 166 176 200 185 202 202 194 199 226 188 180 202 189 165 168
++138 126 108 138 126 108 168 102 88 146 150 115 138 126 108 168 102 88 117 127 86 117 114 76
++117 99 86 117 112 45 117 99 86 117 114 76 117 99 86 120 63 71 117 112 45 101 83 74
++120 63 71 88 73 62 101 74 26 88 73 62 88 73 31 88 73 62 75 73 36 63 55 45
++60 49 42 60 49 42 60 49 42 64 70 48 88 83 88 111 119 127 148 160 159 166 174 181
++188 180 202 166 174 181 188 180 202 185 202 202 194 199 226 194 199 226 194 199 226 166 176 200
++150 147 171 129 144 153 131 144 168 166 156 164 166 174 181 166 176 200 145 140 145 77 90 100
++59 69 70 75 81 82 60 81 83 75 81 82 75 81 90 90 98 89 60 81 83 36 35 37
++12 18 20 7 12 13 17 12 17 23 18 22 23 20 24 14 16 17 14 16 17 14 16 17
++23 20 24 22 25 24 26 30 28 22 25 24 26 30 28 22 25 24 22 25 24 22 25 24
++22 25 24 26 24 32 22 25 24 26 24 32 26 30 28 22 25 24 22 25 24 26 30 28
++26 24 32 22 25 24 22 25 24 26 24 32 22 25 24 26 24 32 26 30 28 26 24 32
++26 24 32 26 30 28 26 24 32 33 30 30 26 30 28 33 30 32 30 30 34 33 30 30
++33 30 30 30 30 34 31 35 35 36 35 37 36 35 37 42 47 42 48 50 48 59 57 61
++59 69 70 65 63 61 59 69 70 65 63 61 59 69 70 75 72 67 60 82 70 75 72 67
++75 72 67 59 69 70 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 65 63 61
++65 63 61 59 69 70 65 63 61 53 63 61 53 63 61 65 63 61 53 63 61 59 57 61
++53 63 61 59 55 55 53 63 61 59 55 55 59 57 61 59 57 61 59 55 55 54 57 61
++59 55 55 53 63 61 53 63 61 59 55 55 53 63 61 65 63 61 59 55 55 53 63 61
++65 63 61 53 63 61 59 55 55 50 61 48 59 55 55 50 61 48 59 55 55 59 79 61
++90 98 89 112 123 108 121 143 132 146 151 137 146 151 137 121 143 132 121 143 132 95 91 100
++75 81 76 53 63 61 75 81 76 112 123 108 126 147 144 146 151 137 126 147 144 126 147 144
++112 123 108 90 98 89 88 83 74 101 83 74 98 106 55 120 63 71 117 112 45 168 102 88
++117 114 76 101 83 74 88 73 62 75 56 53 88 73 62 101 83 74 117 99 86 117 99 86
++117 99 86 117 99 86 99 93 84 88 83 74 75 81 76 90 98 89 112 96 108 117 142 111
++145 140 145 146 151 137 146 162 145 146 162 145 146 162 145 129 144 153 146 162 145 126 147 144
++146 162 145 129 144 153 146 162 145 126 147 144 126 147 144 126 147 144 146 151 137 148 160 159
++148 160 159 126 147 144 112 123 108 75 81 82 60 82 70 78 98 90 112 123 108 111 119 127
++112 123 108 94 105 108 75 77 62 50 61 48 52 55 48 54 57 61 54 57 61 52 55 48
++54 57 61 54 57 61 52 55 48 48 50 48 54 57 61 52 55 48 48 50 48 48 50 48
++43 42 50 42 47 42 43 42 50 42 41 42 33 39 38 33 39 38 42 41 42 36 35 37
++42 41 42 33 39 38 36 35 37 33 39 38 42 38 42 42 38 42 33 39 38 42 41 42
++34 40 43 42 41 42 43 42 50 42 41 42 48 44 48 42 47 42 48 44 48 42 47 42
++47 44 42 47 49 42 48 50 48 47 49 42 48 50 48 47 44 42 47 44 42 42 47 42
++47 44 42 47 44 42 47 49 42 47 49 42 51 49 42 52 55 48 55 55 48 55 55 48
++55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 59 55 55 55 55 48 59 55 55
++55 55 48 52 55 48 52 55 48 48 50 48 53 46 48 52 55 48 52 55 48 53 46 48
++52 55 48 55 55 48 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 57 61
++59 55 55 65 63 61 59 55 55 53 63 61 59 55 55 52 55 48 59 55 55 59 55 55
++55 55 48 62 47 47 55 55 48 63 55 45 55 55 48 55 55 48 55 55 48 60 49 42
++51 49 42 55 55 48 51 49 42 55 55 48 51 49 42 55 55 48 53 46 48 51 49 42
++55 55 48 53 46 48 55 55 48 53 46 48 55 55 48 51 49 42 51 49 42 53 46 48
++47 44 42 47 44 42 47 44 42 47 39 42 47 44 42 47 44 42 53 46 48 47 44 42
++
++59 36 42 76 46 20 88 30 18 76 46 20 76 18 19 76 46 20 76 18 19 76 18 19
++49 13 16 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 102 33 26 76 18 19 102 33 26 76 18 19 76 18 19 102 33 26 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26 76 18 19 76 18 19
++76 18 19 88 30 18 76 18 19 76 18 19 102 33 26 76 18 19 102 33 26 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 59 36 42 88 30 18 76 44 53
++76 44 53 76 46 20 75 56 53 88 44 51 88 44 51 88 73 62 101 60 73 101 74 26
++120 63 71 120 63 71 117 112 45 167 63 71 120 63 71 117 112 45 167 63 71 117 112 45
++167 63 71 117 112 45 167 63 71 117 112 45 120 63 71 120 63 71 101 74 26 120 63 71
++88 73 62 88 73 31 75 56 53 63 55 45 51 49 42 55 39 37 47 39 42 47 44 42
++47 44 42 47 44 42 51 49 42 53 46 48 63 55 51 65 63 61 59 55 55 65 63 61
++65 63 61 65 63 61 75 72 67 59 69 70 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 81 76 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 63 62
++65 63 61 65 63 61 65 63 61 65 63 61 59 55 55 63 55 51 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 55 55 48 52 55 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 59 55 55
++55 55 48 54 57 61 59 55 55 52 55 48 55 55 48 52 55 48 55 55 48 55 55 48
++52 55 48 55 55 48 55 55 48 55 55 48 59 55 55 59 55 55 55 55 48 59 55 55
++59 55 55 59 55 55 65 63 61 59 55 55 54 57 61 52 55 48 59 55 55 52 55 48
++54 57 61 45 57 61 48 50 48 48 50 48 48 50 48 43 42 50 42 47 42 43 42 50
++42 47 42 42 41 42 42 41 42 36 35 37 42 41 42 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 47 47 21 36 35 37 55 39 37 42 38 42 47 47 21 47 44 42
++47 47 21 47 44 42 47 44 42 47 44 42 47 49 42 47 49 42 48 44 48 51 49 42
++48 50 48 48 50 48 53 46 48 52 55 48 53 46 48 55 55 48 55 55 48 55 55 48
++55 55 48 55 55 48 63 55 51 59 55 55 65 55 54 64 70 48 59 55 55 63 55 51
++65 63 61 63 55 51 65 63 61 65 55 54 59 55 55 59 55 55 64 70 48 59 55 55
++59 55 55 59 55 55 65 63 61 65 63 61 65 63 61 65 63 61 64 70 48 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 59 69 70 59 57 61 54 57 61 54 57 61
++53 63 61 54 57 61 53 63 61 54 57 61 45 57 61 45 57 61 48 50 48 45 57 61
++43 42 50 45 57 61 48 50 48 35 47 50 35 47 50 35 47 50 35 47 50 35 47 50
++34 40 43 43 42 50 35 47 50 43 42 50 43 42 50 45 57 61 48 50 48 45 57 61
++54 57 61 59 57 61 59 69 70 59 69 70 75 81 76 59 69 70 75 64 82 60 81 83
++75 64 82 75 81 82 88 69 84 75 81 90 88 83 88 75 81 82 88 83 88 75 81 82
++88 83 88 75 81 90 88 83 88 75 81 82 75 81 82 75 81 82 75 81 82 75 72 67
++75 81 76 75 72 67 59 69 70 65 63 61 48 50 48 28 35 38 28 30 35 28 30 35
++31 35 35 28 35 38 31 35 35 31 35 35 28 30 35 28 30 35 25 30 29 25 30 29
++26 24 32 28 30 35 33 39 38 34 40 43 28 35 38 25 30 29 25 30 29 25 30 29
++28 30 35 31 35 35 31 35 35 31 35 35 28 30 35 26 30 28 30 30 34 30 30 34
++30 30 34 26 30 28 26 24 32 22 25 24 22 25 24 26 24 32 22 25 24 22 25 24
++22 25 24 23 20 24 12 18 20 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24
++23 20 24 23 20 24 23 20 24 23 18 22 12 18 20 12 18 20 23 20 24 22 25 24
++22 25 24 22 25 24 23 20 24 23 20 24 23 20 24 30 30 34 30 30 34 30 30 34
++25 30 29 22 25 24 17 12 17 7 12 13 23 20 24 33 39 38 43 42 50 42 41 42
++30 30 34 22 25 24 14 16 17 7 12 13 7 12 13 13 4 7 7 12 13 14 16 17
++26 24 32 31 35 35 30 30 34 22 25 24 22 25 24 22 25 24 22 23 31 37 35 43
++43 42 50 54 57 61 54 57 61 48 50 48 35 47 50 43 42 50 48 50 48 48 50 48
++48 50 48 54 57 61 53 63 61 45 57 61 43 42 50 35 46 43 45 57 61 53 63 61
++45 57 61 37 35 43 34 40 43 43 42 50 48 50 48 43 42 50 28 35 38 23 30 35
++26 24 32 12 18 20 12 18 20 90 98 89 188 180 202 251 251 247 251 251 247 251 251 247
++240 251 247 240 251 247 240 251 247 240 251 247 235 238 247 231 239 247 231 239 247 231 239 247
++231 239 247 221 238 247 221 238 247 221 238 247 208 221 247 221 238 247 208 221 247 221 238 247
++208 221 247 221 238 247 208 221 247 221 238 247 221 238 247 231 239 247 231 239 247 231 239 247
++231 239 247 240 251 247 240 251 247 231 239 247 231 239 247 231 239 247 221 238 247 221 238 247
++231 239 247 221 238 247 221 238 247 226 221 247 208 221 247 208 221 247 208 221 247 226 221 247
++221 238 247 208 221 247 221 238 247 208 221 247 208 221 247 208 221 247 208 221 247 208 221 247
++208 221 247 208 221 247 208 221 247 201 216 228 194 199 226 194 199 226 194 199 226 194 199 226
++194 199 226 166 176 200 166 176 200 194 199 226 188 180 202 188 180 202 185 202 202 189 165 168
++166 156 164 138 126 108 138 126 108 117 114 76 138 126 108 117 114 76 168 102 88 117 114 76
++117 99 86 120 63 71 117 99 86 117 99 86 117 114 76 117 99 86 101 83 74 117 99 86
++98 106 55 88 73 62 88 73 62 75 73 58 75 56 53 63 55 45 63 55 45 63 55 45
++60 49 42 63 55 45 65 63 61 90 98 89 138 126 108 150 144 154 166 174 181 166 174 181
++166 174 181 166 176 200 188 180 202 185 202 202 185 202 202 201 216 228 194 199 226 166 174 181
++150 147 171 129 144 153 150 144 154 150 168 183 166 174 181 166 174 181 122 134 144 75 81 90
++59 69 70 75 81 76 75 81 82 75 81 90 78 98 90 95 91 100 75 81 82 43 42 50
++23 20 24 7 10 17 14 16 17 23 18 22 23 18 22 14 16 17 15 22 17 22 25 24
++22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 26 30 28 22 25 24 26 24 32
++22 25 24 22 25 24 23 20 24 26 30 28 23 20 24 26 30 28 26 24 32 23 20 24
++26 30 28 26 24 32 26 30 28 22 25 24 26 24 32 22 25 24 26 24 32 26 30 28
++26 24 32 26 30 28 26 24 32 26 30 28 30 30 34 26 30 28 30 30 34 33 30 30
++26 30 28 26 30 28 33 30 30 36 35 37 36 35 37 42 38 42 48 50 48 59 57 61
++65 63 61 65 63 61 59 69 70 75 72 67 59 69 70 75 72 67 75 72 67 59 69 70
++75 72 67 75 81 76 75 72 67 60 82 70 75 72 67 75 72 67 59 69 70 75 77 62
++59 69 70 65 63 61 59 79 61 65 63 61 65 63 61 53 63 61 65 63 61 59 57 61
++65 63 61 53 63 61 65 63 61 65 63 61 53 63 61 59 55 55 65 63 61 59 55 55
++53 63 61 65 63 61 65 63 61 65 63 61 65 63 61 59 57 61 64 70 48 65 63 61
++65 63 61 53 63 61 65 63 61 53 63 61 65 63 61 53 63 61 59 55 55 59 55 55
++65 63 61 88 83 88 112 96 108 121 143 132 146 151 137 146 151 137 121 143 132 94 105 108
++78 98 90 90 98 89 112 123 108 121 143 132 126 147 144 146 151 137 121 143 132 146 151 137
++112 123 108 90 98 89 88 83 74 88 83 74 101 83 74 99 93 84 99 93 84 101 83 74
++75 73 58 63 55 45 51 49 42 63 55 45 75 73 58 75 73 58 75 73 58 75 77 62
++88 73 62 75 81 69 75 81 69 75 81 69 75 81 69 75 73 58 75 81 76 94 105 108
++112 123 108 126 147 144 126 147 144 126 147 144 126 147 144 121 143 132 126 147 144 121 143 132
++126 147 144 121 143 132 126 147 144 126 147 144 126 147 144 146 162 145 148 160 159 146 162 145
++126 147 144 112 123 108 75 81 76 59 79 61 50 61 48 75 81 69 90 98 89 112 123 108
++90 98 89 75 72 67 50 61 48 50 61 48 59 55 55 54 57 61 52 55 48 53 63 61
++59 55 55 53 63 61 59 55 55 45 57 61 59 55 55 48 50 48 45 57 61 48 50 48
++48 50 48 35 47 50 43 42 50 35 46 43 42 41 42 42 38 42 33 39 38 42 41 42
++42 38 42 42 38 42 42 38 42 36 35 37 36 35 37 34 40 43 42 41 42 42 41 42
++42 41 42 42 47 42 43 42 50 42 41 42 42 47 42 47 44 42 48 50 48 47 49 42
++48 50 48 47 49 42 47 49 42 48 50 48 48 50 48 48 50 48 48 50 48 47 49 42
++47 49 42 47 49 42 48 50 48 48 50 48 52 55 48 55 55 48 55 55 48 59 55 55
++59 55 55 59 55 55 55 55 48 59 55 55 59 55 55 55 55 48 59 55 55 55 55 48
++55 55 48 52 55 48 53 46 48 52 55 48 51 49 42 53 46 48 52 55 48 52 55 48
++59 55 55 52 55 48 59 55 55 54 57 61 59 55 55 53 63 61 53 63 61 65 63 61
++65 63 61 53 63 61 65 63 61 65 63 61 59 55 55 59 57 61 55 55 48 59 55 55
++55 55 48 55 55 48 59 55 55 55 55 48 55 55 48 62 47 47 55 55 48 55 55 48
++55 55 48 51 49 42 55 55 48 53 46 48 55 55 48 53 46 48 55 55 48 55 55 48
++55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 53 46 48 51 49 42 47 44 42
++51 49 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++
++88 30 18 76 46 20 88 44 51 76 46 20 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26 76 18 19
++102 33 26 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++102 33 26 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26
++76 18 19 76 18 19 88 30 18 76 18 19 76 18 19 88 30 18 76 18 19 76 18 19
++88 30 18 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 49 13 16
++76 18 19 76 18 19 76 18 19 52 30 35 76 18 19 76 18 19 59 36 42 76 46 20
++76 44 53 88 44 51 76 44 53 75 56 53 88 73 62 88 44 51 88 73 62 101 83 74
++101 74 26 117 99 86 120 63 71 117 112 45 168 102 88 167 63 71 117 112 45 167 63 71
++117 112 45 167 63 71 117 112 45 167 63 71 117 112 45 120 63 71 117 112 45 120 63 71
++88 73 31 88 66 70 75 56 53 63 55 45 60 49 42 47 44 42 42 41 42 42 41 42
++42 47 42 47 44 42 47 49 42 53 46 48 55 55 48 59 55 55 59 55 55 65 63 61
++65 63 61 75 72 67 59 69 70 75 72 67 75 72 67 75 72 67 75 81 76 75 72 67
++88 66 70 75 72 67 75 72 67 75 72 67 59 69 70 75 72 67 65 63 61 65 63 61
++65 63 61 65 63 61 63 55 51 65 63 61 63 55 51 59 55 55 59 55 55 63 55 51
++53 63 61 63 55 51 52 55 48 52 55 48 52 55 48 52 55 48 52 55 48 52 55 48
++52 55 48 52 55 48 52 55 48 48 50 48 48 50 48 45 57 61 52 55 48 59 55 55
++52 55 48 59 55 55 52 55 48 52 55 48 59 55 55 48 50 48 55 55 48 55 55 48
++59 55 55 55 55 48 59 55 55 55 55 48 59 55 55 50 61 48 59 55 55 59 55 55
++59 55 55 65 63 61 53 63 61 59 55 55 53 63 61 55 55 48 54 57 61 52 55 48
++52 55 48 48 50 48 48 50 48 48 50 48 35 47 50 48 50 48 43 42 50 43 55 48
++42 47 42 42 41 42 35 46 43 36 35 37 36 35 37 36 35 37 42 41 42 32 39 24
++42 41 42 36 35 37 33 39 38 42 41 42 42 41 42 42 41 42 47 47 21 42 38 42
++47 44 42 47 44 42 47 44 42 47 49 42 47 44 42 51 49 42 51 49 42 51 49 42
++52 55 48 51 49 42 52 55 48 51 49 42 55 55 48 55 55 48 55 55 48 59 55 55
++59 55 55 63 55 51 65 63 61 63 55 51 65 63 61 65 55 54 65 55 54 65 63 61
++63 55 51 65 63 61 63 55 51 65 63 61 65 63 61 63 55 51 65 63 61 63 55 51
++65 63 61 64 70 48 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++59 79 61 65 63 61 65 63 61 59 69 70 65 63 61 53 63 61 53 63 61 54 57 61
++54 57 61 54 57 61 54 57 61 45 57 61 52 55 48 45 57 61 45 57 61 43 55 48
++45 57 61 35 47 50 45 57 61 43 42 50 35 47 50 43 42 50 34 40 43 35 47 50
++34 40 43 34 40 43 35 47 50 35 47 50 45 57 61 48 50 48 45 57 61 48 50 48
++54 57 61 53 63 61 63 59 71 59 69 70 75 64 82 59 69 70 75 81 76 75 64 82
++75 81 76 75 81 82 75 81 82 75 81 90 88 83 88 75 81 82 75 81 90 88 83 88
++75 81 90 88 83 88 75 81 82 88 83 88 75 81 82 88 69 84 75 81 76 75 64 82
++75 81 76 59 69 70 65 63 61 48 50 48 31 35 35 23 30 35 28 30 35 31 35 35
++28 35 38 31 35 35 31 35 35 31 35 35 31 35 35 28 30 35 25 30 29 25 30 29
++25 30 29 28 30 35 33 39 38 37 35 43 31 35 35 25 30 29 25 30 29 25 30 29
++28 30 35 31 35 35 31 35 35 25 30 29 25 30 29 30 30 34 30 30 34 31 35 35
++30 30 34 26 30 28 26 30 28 23 20 24 22 25 24 26 24 32 22 25 24 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 12 18 20 23 20 24 22 25 24 23 20 24
++12 18 20 22 25 24 12 18 20 23 18 22 12 18 20 14 16 17 23 18 22 22 25 24
++22 23 31 25 30 29 22 25 24 22 25 24 22 25 24 25 30 29 30 30 34 30 30 34
++30 30 34 31 35 35 25 30 29 23 20 24 22 25 24 33 30 36 48 44 48 48 44 48
++36 35 37 22 25 24 12 18 20 14 16 17 14 16 17 7 12 13 3 4 9 3 4 9
++14 16 17 30 30 34 31 35 35 30 30 34 23 20 24 12 18 20 26 24 32 42 38 42
++48 50 48 43 42 50 48 50 48 48 50 48 35 47 50 42 41 42 35 47 50 43 42 50
++45 57 61 54 57 61 54 57 61 45 57 61 35 47 50 35 47 50 45 57 61 53 63 61
++45 57 61 42 47 42 34 40 43 48 50 48 45 57 61 37 35 43 12 18 30 12 18 20
++12 18 20 12 18 20 26 24 32 111 119 127 185 202 202 251 251 247 251 251 247 240 251 247
++240 251 247 240 251 247 235 238 247 235 238 247 231 239 247 231 239 247 221 238 247 221 238 247
++221 238 247 221 238 247 208 221 247 208 221 247 208 221 247 221 238 247 208 221 247 221 238 247
++208 221 247 208 221 247 221 238 247 221 238 247 231 239 247 231 239 247 240 251 247 240 251 247
++240 251 247 240 251 247 231 239 247 231 239 247 221 238 247 221 238 247 221 238 247 231 239 247
++221 238 247 221 238 247 208 221 247 208 221 247 201 216 228 208 221 247 221 238 247 208 221 247
++226 221 247 208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 201 216 228 208 221 247
++201 216 228 201 216 228 201 216 228 194 199 226 194 199 226 166 176 200 194 199 226 166 176 200
++185 202 202 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 185 202 202 185 202 202
++188 180 202 146 151 137 138 102 108 138 102 108 117 114 76 138 102 108 117 114 76 117 99 86
++117 99 86 117 114 76 117 99 86 117 112 45 120 63 71 117 99 86 101 83 74 101 83 74
++101 83 74 88 73 62 88 73 62 75 73 36 75 56 53 75 73 36 63 55 45 63 55 45
++63 55 45 63 55 45 88 83 88 111 119 127 150 144 154 166 174 181 166 174 181 188 180 202
++188 180 202 185 202 202 188 180 202 194 199 226 194 199 226 194 199 226 185 202 202 166 176 200
++150 144 154 129 144 153 150 144 154 166 174 181 166 174 181 150 168 183 111 119 127 75 81 90
++46 59 71 75 81 76 60 81 83 75 81 82 75 81 90 90 98 89 75 81 90 53 63 61
++28 30 35 7 12 13 17 12 17 14 16 17 14 16 17 22 25 24 22 25 24 22 25 24
++26 30 28 22 25 24 22 25 24 23 20 24 26 30 28 23 20 24 26 24 32 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 26 24 32 26 30 28 23 20 24 26 30 28
++23 20 24 22 25 24 26 24 32 22 25 24 26 30 28 26 24 32 26 30 28 26 30 28
++26 24 32 26 30 28 26 24 32 26 30 28 33 30 32 30 30 34 30 30 34 26 30 28
++26 30 28 26 30 28 33 30 32 36 35 37 36 35 37 34 40 43 48 50 48 54 57 61
++65 63 61 59 69 70 65 63 61 59 69 70 75 72 67 59 69 70 75 72 67 75 72 67
++75 81 69 75 72 67 75 81 76 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++59 69 70 75 77 62 65 63 61 65 63 61 59 79 61 65 63 61 64 70 48 65 63 61
++65 63 61 65 63 61 65 63 61 53 63 61 65 63 61 65 63 61 64 70 48 65 63 61
++65 63 61 64 70 48 59 57 61 65 63 61 65 63 61 65 63 61 53 63 61 65 63 61
++53 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 53 63 61 53 63 61
++53 63 61 59 79 61 88 83 88 95 119 107 117 142 111 145 140 145 121 143 132 112 123 108
++98 113 84 112 123 108 121 143 132 146 151 137 146 151 137 126 147 144 146 151 137 121 143 132
++111 119 127 95 119 107 75 81 76 75 73 58 59 79 61 75 81 69 75 77 62 64 70 48
++47 49 42 43 55 48 59 79 61 75 99 72 88 83 74 75 81 69 59 79 61 75 72 67
++75 77 62 75 72 67 59 79 61 65 63 61 59 69 70 53 63 61 65 63 61 88 83 74
++95 119 107 117 142 111 121 143 132 121 143 132 121 143 132 146 151 137 121 143 132 121 143 132
++138 126 108 121 143 132 121 143 132 121 143 132 146 151 137 126 147 144 121 143 132 112 123 108
++99 93 84 75 72 67 43 55 48 47 49 42 47 49 42 50 61 48 75 81 69 75 81 76
++75 72 67 53 63 61 52 55 48 54 57 61 59 55 55 53 63 61 65 63 61 59 55 55
++59 55 55 59 55 55 52 55 48 59 55 55 52 55 48 45 57 61 48 50 48 43 55 48
++48 50 48 43 42 50 42 47 42 43 42 50 34 40 43 42 38 42 42 38 42 42 41 42
++34 40 43 42 38 42 33 39 38 37 35 43 42 41 42 34 40 43 42 41 42 34 40 43
++43 42 50 43 42 50 42 47 42 42 47 42 47 44 42 48 44 48 47 49 42 48 50 48
++51 49 42 48 50 48 51 49 42 48 50 48 51 49 42 48 50 48 51 49 42 51 49 42
++48 50 48 52 55 48 51 49 42 55 55 48 55 55 48 55 55 48 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 55 55 48 59 55 55
++55 55 48 55 55 48 55 55 48 52 55 48 48 50 48 52 55 48 52 55 48 55 55 48
++59 55 55 59 55 55 59 57 61 65 63 61 53 63 61 53 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 53 63 61 64 70 48 59 55 55 59 55 55 59 55 55
++55 55 48 55 55 48 55 55 48 55 55 48 59 55 55 55 55 48 55 55 48 55 55 48
++53 46 48 52 55 48 53 46 48 55 55 48 51 49 42 55 55 48 55 55 48 55 55 48
++53 46 48 55 55 48 55 55 48 53 46 48 51 49 42 51 49 42 51 49 42 51 49 42
++47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 53 46 48 47 44 42
++
++76 46 20 88 44 51 88 30 18 76 46 20 88 30 18 76 46 20 76 18 19 76 46 20
++76 18 19 76 18 19 76 18 19 76 18 19 102 33 26 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 102 33 26 76 18 19 102 33 26 76 18 19
++76 18 19 76 18 19 88 30 18 76 18 19 102 33 26 76 18 19 76 18 19 102 33 26
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 59 36 42 88 30 18 59 36 42 88 44 51
++76 46 20 75 56 53 88 44 51 88 44 51 88 73 31 120 63 71 88 73 62 120 63 71
++120 63 71 117 112 45 120 63 71 168 102 88 120 63 71 117 112 45 168 102 88 117 112 45
++168 102 88 117 112 45 167 63 71 117 112 45 120 63 71 117 112 45 120 63 71 120 63 71
++88 73 62 88 73 62 75 56 53 63 55 45 60 49 42 47 44 42 53 35 37 42 41 42
++47 44 42 47 44 42 48 50 48 53 46 48 55 55 48 59 55 55 59 55 55 65 63 61
++65 63 61 65 63 61 75 72 67 65 63 61 75 72 67 75 72 67 75 72 67 75 72 67
++75 81 76 75 72 67 75 72 67 75 72 67 75 72 67 75 63 62 75 72 67 75 73 58
++65 63 61 65 55 54 64 70 48 65 63 61 63 55 51 65 63 61 59 55 55 64 70 48
++59 55 55 55 55 48 59 55 55 52 55 48 52 55 48 52 55 48 52 55 48 52 55 48
++52 55 48 48 50 48 52 55 48 54 57 61 48 50 48 54 57 61 52 55 48 59 55 55
++54 57 61 55 55 48 59 55 55 59 55 55 55 55 48 55 55 48 59 55 55 55 55 48
++55 55 48 59 55 55 55 55 48 59 55 55 59 55 55 59 55 55 59 55 55 64 70 48
++59 55 55 65 63 61 59 55 55 65 63 61 59 55 55 59 55 55 52 55 48 54 57 61
++52 55 48 45 57 61 48 50 48 48 50 48 48 50 48 43 42 50 42 47 42 43 42 50
++35 46 43 42 41 42 42 41 42 42 41 42 33 39 38 36 35 37 33 39 38 36 35 37
++33 39 38 36 35 37 42 41 42 36 35 37 47 39 42 47 44 42 47 39 42 47 44 42
++47 44 42 47 44 42 47 49 42 51 49 42 51 49 42 48 50 48 51 49 42 52 55 48
++53 46 48 55 55 48 55 55 48 55 55 48 55 55 48 59 55 55 55 55 48 59 55 55
++63 55 51 63 55 51 65 63 61 65 55 54 65 63 61 65 55 54 65 63 61 63 55 51
++63 55 51 63 55 51 65 55 54 65 55 54 64 70 48 65 63 61 65 55 54 65 63 61
++65 55 54 65 63 61 65 63 61 75 73 58 65 63 61 75 77 62 65 63 61 75 72 67
++65 63 61 65 63 61 65 63 61 65 63 61 59 69 70 59 57 61 59 57 61 53 63 61
++53 63 61 53 63 61 54 57 61 54 57 61 45 57 61 45 57 61 48 50 48 45 57 61
++43 55 48 43 55 48 43 42 50 43 55 48 35 47 50 35 47 50 34 40 43 34 40 43
++35 47 50 34 40 43 35 47 50 35 47 50 43 42 50 45 57 61 48 50 48 45 57 61
++54 57 61 53 63 61 63 59 71 59 69 70 59 69 70 75 64 82 59 69 70 60 81 83
++75 64 82 75 81 82 75 81 82 75 81 82 88 83 88 75 81 90 88 83 88 75 81 90
++88 83 88 88 83 88 88 83 88 88 83 88 75 81 82 75 81 76 75 81 76 75 81 76
++75 64 82 75 72 67 52 55 48 33 30 32 25 30 29 28 30 35 28 30 35 28 30 35
++31 35 35 28 35 38 33 39 38 33 39 38 31 35 35 31 35 35 28 30 35 25 30 29
++25 30 29 28 30 35 31 35 35 34 40 43 33 39 38 31 35 35 25 30 29 25 30 29
++30 30 34 31 35 35 31 35 35 25 30 29 25 30 29 30 30 34 31 35 35 31 35 35
++30 30 34 26 30 28 26 24 32 22 25 24 26 24 32 22 25 24 22 25 24 22 25 24
++23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24
++23 20 24 23 20 24 23 20 24 15 22 17 23 20 24 12 18 20 23 20 24 22 25 24
++22 25 24 26 24 32 30 30 34 30 30 34 30 30 34 26 24 32 26 30 28 30 30 34
++31 35 35 36 35 37 31 35 35 26 24 32 25 30 29 31 35 35 42 41 42 48 50 48
++37 35 43 25 30 29 12 18 20 14 16 17 7 12 13 17 12 17 3 4 9 3 4 9
++7 12 13 15 22 17 30 30 34 30 30 34 22 25 24 23 20 24 25 30 29 34 40 43
++43 42 50 43 42 50 35 47 50 48 50 48 43 42 50 35 46 43 43 42 50 43 42 50
++48 50 48 45 57 61 54 57 61 45 57 61 45 57 61 52 55 48 45 57 61 53 63 61
++54 57 61 45 57 61 43 42 50 48 50 48 43 42 50 28 30 35 12 18 20 7 12 13
++7 10 17 22 23 31 43 42 50 145 140 145 226 221 247 251 251 247 251 251 247 240 251 247
++240 251 247 231 239 247 240 251 247 231 239 247 231 239 247 231 239 247 221 238 247 221 238 247
++208 221 247 221 238 247 208 221 247 221 238 247 208 221 247 221 238 247 208 221 247 208 221 247
++221 238 247 226 221 247 221 238 247 231 239 247 231 239 247 240 251 247 240 251 247 240 251 247
++231 239 247 240 251 247 231 239 247 231 239 247 221 238 247 221 238 247 231 239 247 231 239 247
++221 238 247 208 221 247 208 221 247 201 216 228 208 221 247 208 221 247 226 221 247 208 221 247
++221 238 247 208 221 247 208 221 247 208 221 247 201 216 228 201 216 228 201 216 228 201 216 228
++194 199 226 194 199 226 201 216 228 194 199 226 194 199 226 194 199 226 166 176 200 166 176 200
++194 199 226 166 176 200 150 168 183 166 176 200 185 202 202 194 199 226 194 199 226 194 199 226
++201 216 228 189 165 168 138 126 108 117 99 86 117 99 86 117 114 76 168 102 88 117 99 86
++117 114 76 168 102 88 117 99 86 117 99 86 101 83 74 101 83 74 98 106 55 101 83 74
++101 83 74 88 73 62 75 73 36 88 73 62 75 73 58 75 56 53 75 73 58 63 55 45
++75 56 53 75 77 62 112 96 108 145 140 145 166 180 164 166 174 181 166 176 200 166 176 200
++188 180 202 185 202 202 188 180 202 194 199 226 185 202 202 194 199 226 194 199 226 166 174 181
++150 144 154 129 144 153 150 147 171 166 174 181 166 174 181 150 144 154 95 108 128 75 81 82
++63 59 71 59 69 70 75 81 82 75 81 82 75 81 90 90 98 89 77 90 100 59 69 70
++28 30 35 3 4 9 14 16 17 14 16 17 23 20 24 22 25 24 26 30 28 26 30 28
++22 25 24 22 25 24 26 30 28 22 25 24 23 20 24 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 26 30 28 23 20 24 23 20 24 22 25 24 26 24 32 22 25 24
++26 24 32 22 25 24 23 20 24 33 30 30 22 25 24 26 24 32 26 30 28 26 24 32
++26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 30 30 34 26 30 28 33 30 30
++26 30 28 26 30 28 30 30 34 36 35 37 36 35 37 42 41 42 43 42 50 54 57 61
++53 63 61 65 63 61 59 69 70 75 72 67 59 69 70 75 72 67 75 72 67 59 69 70
++75 72 67 75 72 67 75 81 76 75 72 67 75 81 76 75 72 67 59 69 70 75 72 67
++75 72 67 59 69 70 65 63 61 59 79 61 65 63 61 65 63 61 65 63 61 59 69 70
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 53 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 53 63 61 65 63 61 53 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 59 57 61 59 79 61 88 83 74 95 119 107 138 126 108 121 143 132 111 119 127
++112 123 108 112 123 108 121 143 132 126 147 144 146 151 137 146 151 137 126 147 144 145 140 145
++117 142 111 112 123 108 75 81 76 59 55 55 55 55 48 52 55 48 47 47 21 42 47 42
++64 70 48 87 99 72 94 105 108 112 123 108 112 123 108 94 105 108 90 98 89 90 98 89
++90 98 89 88 83 88 75 81 69 59 79 61 65 63 61 59 55 55 59 79 61 75 81 69
++88 83 74 94 105 108 112 123 108 111 119 127 138 126 108 111 119 127 117 142 111 121 143 132
++111 119 127 121 143 132 138 126 108 121 143 132 112 123 108 112 123 108 95 91 100 88 83 74
++50 61 48 43 55 48 47 49 42 47 49 42 47 49 42 50 61 48 53 63 61 64 70 48
++59 55 55 53 63 61 53 63 61 55 55 48 53 63 61 65 63 61 65 63 61 53 63 61
++50 61 48 54 57 61 52 55 48 54 57 61 48 50 48 54 57 61 52 55 48 45 57 61
++43 55 48 48 50 48 35 47 50 43 42 50 42 41 42 34 40 43 42 41 42 34 40 43
++42 38 42 42 38 42 42 38 42 33 39 38 42 41 42 37 35 43 42 41 42 42 41 42
++42 47 42 43 42 50 48 44 48 48 44 48 48 44 48 47 49 42 48 50 48 48 50 48
++51 49 42 48 50 48 52 55 48 48 50 48 52 55 48 51 49 42 52 55 48 52 55 48
++52 55 48 52 55 48 52 55 48 55 55 48 59 55 55 59 55 55 59 55 55 65 63 61
++59 55 55 64 70 48 53 63 61 59 55 55 50 61 48 59 55 55 59 55 55 55 55 48
++59 55 55 55 55 48 55 55 48 53 46 48 55 55 48 52 55 48 59 55 55 55 55 48
++59 55 55 59 55 55 53 63 61 65 55 54 53 63 61 65 63 61 59 79 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 59 55 55 59 55 55
++59 55 55 55 55 48 59 55 55 55 55 48 55 55 48 63 55 51 55 55 48 55 55 48
++55 55 48 55 55 48 55 55 48 60 49 42 55 55 48 53 46 48 55 55 48 55 55 48
++53 46 48 55 55 48 60 49 42 55 55 48 55 55 48 51 49 42 51 49 42 53 46 48
++47 44 42 51 49 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++
++88 30 18 76 46 20 88 44 51 88 30 18 88 44 51 76 18 19 76 46 20 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26 76 18 19
++76 18 19 102 33 26 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++102 33 26 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++102 33 26 76 18 19 76 18 19 88 30 18 76 18 19 76 18 19 102 33 26 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 59 36 42 88 44 51 59 36 42 88 44 51
++76 44 53 76 44 53 75 56 53 88 73 62 88 66 70 88 73 62 88 73 62 101 83 74
++117 99 86 120 63 71 117 114 76 117 99 86 168 102 88 120 63 71 168 102 88 117 99 86
++167 63 71 117 114 76 117 99 86 167 63 71 117 114 76 120 63 71 117 112 45 88 73 62
++88 73 62 88 73 31 75 56 53 63 55 45 60 49 42 47 39 42 42 41 42 42 41 42
++42 41 42 47 44 42 47 44 42 48 44 48 48 50 48 54 57 61 52 55 48 53 63 61
++65 63 61 59 69 70 59 69 70 65 63 61 75 72 67 65 63 61 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 63 55 51 65 63 61 63 55 51 59 55 55 59 55 55
++59 55 55 50 61 48 55 55 48 55 55 48 55 55 48 52 55 48 52 55 48 52 55 48
++52 55 48 54 57 61 59 55 55 45 57 61 59 55 55 45 57 61 59 55 55 54 57 61
++55 55 48 59 55 55 50 61 48 59 55 55 59 55 55 59 55 55 59 55 55 55 55 48
++59 55 55 59 55 55 59 55 55 63 55 51 63 55 51 50 61 48 59 55 55 59 55 55
++59 55 55 65 63 61 53 63 61 65 63 61 59 55 55 50 61 48 59 55 55 52 55 48
++54 57 61 52 55 48 52 55 48 48 50 48 48 50 48 48 50 48 43 42 50 42 47 42
++43 42 50 42 41 42 33 39 38 33 39 38 42 41 42 42 41 42 42 41 42 36 35 37
++42 41 42 36 35 37 42 47 42 47 44 42 47 44 42 47 47 21 42 47 42 47 47 21
++47 44 42 47 49 42 51 49 42 51 49 42 52 55 48 55 55 48 55 55 48 55 55 48
++55 55 48 55 55 48 55 55 48 55 55 48 63 55 51 63 55 51 63 55 51 63 55 51
++59 55 55 65 63 61 63 55 51 65 63 61 64 70 48 65 63 61 65 55 54 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 55 54 65 63 61 65 55 54 65 63 61
++65 63 61 65 63 61 75 73 58 65 63 61 65 63 61 59 79 61 75 72 67 59 69 70
++65 63 61 75 72 67 65 63 61 65 63 61 65 63 61 53 63 61 65 63 61 59 57 61
++53 63 61 54 57 61 53 63 61 43 55 48 45 57 61 48 50 48 45 57 61 43 55 48
++43 42 50 45 57 61 35 47 50 43 42 50 35 47 50 34 40 43 34 40 43 34 40 43
++34 40 43 35 47 50 34 40 43 42 41 42 35 47 50 43 42 50 48 50 48 45 57 61
++54 57 61 59 57 61 53 63 61 63 59 71 59 69 70 59 69 70 75 81 76 75 64 82
++75 81 76 75 81 82 75 81 82 88 69 84 75 81 82 88 83 88 78 98 90 88 83 88
++88 83 88 75 81 82 88 83 88 75 81 82 75 81 76 75 72 67 75 64 82 75 81 76
++75 81 76 54 57 61 34 40 43 28 30 35 25 30 29 28 30 35 28 30 35 28 30 35
++33 39 38 28 35 38 37 35 43 33 39 38 31 35 35 28 30 35 28 30 35 28 30 35
++31 35 35 31 35 35 34 40 43 34 40 43 33 39 38 30 30 34 25 30 29 22 23 31
++30 30 34 31 35 35 31 35 35 28 30 35 25 30 29 28 30 35 31 35 35 33 30 36
++30 30 34 25 30 29 26 24 32 22 25 24 26 24 32 23 20 24 22 25 24 23 20 24
++22 25 24 22 25 24 23 20 24 12 18 20 23 20 24 23 20 24 12 18 20 23 18 22
++15 22 17 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24
++23 20 24 25 30 29 30 30 34 26 30 28 30 30 34 26 30 28 26 24 32 26 30 28
++30 30 34 30 30 34 30 30 34 31 35 35 30 30 34 31 35 35 42 41 42 35 46 43
++34 40 43 25 30 29 14 16 17 14 16 17 14 16 17 14 16 17 7 12 13 13 4 7
++3 4 9 13 4 7 23 20 24 28 30 35 30 30 34 25 30 29 23 20 24 36 35 37
++42 41 42 34 40 43 43 42 50 43 42 50 48 50 48 43 42 50 43 42 50 43 55 48
++48 50 48 43 42 50 45 57 61 52 55 48 54 57 61 54 57 61 54 57 61 54 57 61
++45 57 61 45 57 61 45 57 61 54 57 61 48 50 48 28 30 35 12 18 20 23 20 24
++7 10 17 25 30 29 59 69 70 166 174 181 251 251 247 251 251 247 251 251 247 235 238 247
++231 239 247 231 239 247 240 251 247 231 239 247 231 239 247 221 238 247 221 238 247 221 238 247
++221 238 247 208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 208 221 247
++208 221 247 221 238 247 231 239 247 231 239 247 231 239 247 240 251 247 240 251 247 240 251 247
++231 239 247 221 238 247 221 238 247 221 238 247 221 238 247 221 238 247 231 239 247 221 238 247
++208 221 247 208 221 247 201 216 228 208 221 247 208 221 247 208 221 247 208 221 247 208 221 247
++208 221 247 208 221 247 208 221 247 201 216 228 201 216 228 194 199 226 194 199 226 194 199 226
++194 199 226 194 199 226 194 199 226 194 199 226 166 176 200 185 202 202 166 176 200 166 176 200
++166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 201 216 228 201 216 228 185 202 202
++185 202 202 188 180 202 166 156 164 112 123 108 117 99 86 117 99 86 117 99 86 117 114 76
++117 99 86 117 99 86 117 114 76 117 99 86 117 112 45 120 63 71 101 83 74 101 83 74
++88 73 62 88 73 62 88 73 62 88 73 62 75 73 58 88 73 62 75 73 58 75 73 58
++88 83 74 112 96 108 126 147 144 166 156 164 166 176 200 188 180 202 166 176 200 185 202 202
++185 202 202 194 199 226 194 199 226 185 202 202 194 199 226 194 199 226 185 202 202 166 174 181
++150 147 171 131 144 168 148 160 159 166 174 181 166 176 200 126 147 144 95 91 100 60 81 83
++59 69 70 75 81 82 75 81 82 75 81 82 75 81 90 78 98 90 94 105 108 75 81 82
++28 35 38 3 4 9 14 16 17 23 18 22 22 25 24 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 22 25 24 22 25 24 26 30 28 23 20 24 23 20 24 22 25 24
++23 20 24 26 30 28 23 20 24 22 25 24 23 20 24 26 30 28 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 26 30 28 26 24 32 26 30 28 26 24 32
++26 30 28 26 30 28 23 20 24 33 30 30 26 24 32 33 30 30 26 24 32 26 30 28
++26 24 32 33 30 30 30 30 34 31 35 35 36 35 37 42 41 42 42 41 42 48 50 48
++59 55 55 65 63 61 59 69 70 75 72 67 75 72 67 75 72 67 59 69 70 75 81 69
++75 72 67 75 72 67 75 81 76 75 72 67 75 81 76 75 72 67 75 72 67 75 72 67
++59 69 70 75 77 62 65 63 61 75 72 67 65 63 61 59 79 61 65 63 61 75 72 67
++65 63 61 65 63 61 65 63 61 59 79 61 65 63 61 65 63 61 75 72 67 65 63 61
++65 63 61 65 63 61 64 70 48 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 59 69 70
++65 63 61 53 63 61 65 63 61 59 79 61 75 81 76 94 105 108 112 123 108 138 126 108
++121 143 132 117 142 111 121 143 132 121 143 132 121 143 132 121 143 132 121 143 132 121 143 132
++111 119 127 112 123 108 75 81 76 50 61 48 47 49 42 35 46 43 50 61 48 59 79 61
++88 83 88 98 113 84 94 105 108 112 123 108 98 113 84 112 123 108 95 119 107 112 123 108
++98 113 84 90 98 89 90 98 89 88 83 74 75 81 76 75 99 72 75 72 67 60 82 70
++75 81 69 75 99 72 90 98 89 98 113 84 94 105 108 112 123 108 94 105 108 112 123 108
++95 119 107 112 123 108 94 105 108 90 98 89 88 83 88 75 81 69 64 70 48 42 47 42
++47 47 21 42 47 42 51 49 42 51 49 42 50 61 48 63 55 45 55 55 48 55 55 48
++65 63 61 64 70 48 65 63 61 65 63 61 59 55 55 65 63 61 53 63 61 65 63 61
++59 55 55 50 61 48 52 55 48 52 55 48 54 57 61 48 50 48 45 57 61 52 55 48
++45 57 61 43 42 50 43 42 50 42 47 42 43 42 50 42 41 42 42 41 42 33 39 38
++33 39 38 33 39 38 33 39 38 42 41 42 33 39 38 42 41 42 33 39 38 42 41 42
++42 41 42 42 47 42 47 49 42 47 49 42 47 49 42 47 49 42 48 50 48 51 49 42
++52 55 48 52 55 48 48 50 48 52 55 48 51 49 42 52 55 48 52 55 48 53 46 48
++52 55 48 55 55 48 55 55 48 59 55 55 53 63 61 64 70 48 59 55 55 59 55 55
++65 63 61 59 57 61 65 63 61 64 70 48 59 57 61 59 55 55 55 55 48 55 55 48
++55 55 48 55 55 48 59 55 55 55 55 48 55 55 48 55 55 48 59 55 55 50 61 48
++65 63 61 53 63 61 64 70 48 65 63 61 65 63 61 65 63 61 53 63 61 65 63 61
++59 69 70 65 63 61 65 63 61 64 70 48 59 57 61 59 55 55 64 70 48 59 55 55
++55 55 48 59 55 55 55 55 48 59 55 55 55 55 48 55 55 48 62 47 47 55 55 48
++55 55 48 55 55 48 55 55 48 53 46 48 52 55 48 55 55 48 52 55 48 53 46 48
++52 55 48 51 49 42 52 55 48 51 49 42 53 46 48 51 49 42 51 49 42 51 49 42
++47 44 42 47 44 42 47 44 42 47 39 42 42 41 42 42 41 42 42 41 42 42 41 42
++
++88 44 51 102 33 26 88 44 51 76 46 20 88 30 18 88 30 18 76 46 20 76 18 19
++88 30 18 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 102 33 26 76 18 19 76 18 19 102 33 26 76 18 19
++76 18 19 102 33 26 76 18 19 76 18 19 102 33 26 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 59 36 42 88 30 18 76 18 19 88 44 51 76 46 20
++76 44 53 75 56 53 75 56 53 88 44 51 75 56 53 88 73 62 120 63 71 101 83 74
++120 63 71 117 114 76 167 63 71 117 99 86 168 102 88 117 112 45 168 102 88 117 112 45
++168 102 88 117 99 86 176 103 41 117 114 76 167 63 71 117 112 45 120 63 71 120 63 71
++120 63 71 88 73 62 75 56 53 63 55 45 60 49 42 55 39 37 47 39 42 47 47 21
++42 41 42 42 41 42 42 47 42 43 42 50 48 50 48 48 50 48 54 57 61 54 57 61
++59 69 70 65 63 61 65 63 61 59 69 70 75 72 67 59 69 70 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 73 58 75 72 67 65 63 61 75 73 58
++65 63 61 64 70 48 65 63 61 64 70 48 63 55 51 53 63 61 59 55 55 64 70 48
++59 55 55 55 55 48 59 55 55 55 55 48 59 55 55 48 50 48 59 55 55 52 55 48
++54 57 61 59 55 55 54 57 61 52 55 48 54 57 61 59 55 55 54 57 61 59 55 55
++54 57 61 59 55 55 59 55 55 63 55 51 53 63 61 59 55 55 59 55 55 59 55 55
++59 55 55 55 55 48 55 55 48 59 55 55 63 55 51 63 55 51 59 55 55 59 55 55
++59 55 55 59 55 55 65 63 61 59 55 55 59 55 55 59 55 55 54 57 61 52 55 48
++59 55 55 54 57 61 48 50 48 48 50 48 48 44 48 48 50 48 42 47 42 43 42 50
++42 47 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 35 46 43 47 47 21
++42 41 42 47 44 42 42 41 42 47 44 42 42 41 42 47 49 42 47 44 42 42 47 42
++47 44 42 51 49 42 51 49 42 55 55 48 55 55 48 55 55 48 55 55 48 59 55 55
++63 55 51 63 55 51 63 55 51 55 55 48 63 55 51 63 55 51 63 55 51 64 70 48
++63 55 51 63 55 51 65 63 61 65 55 54 65 63 61 65 63 61 65 63 61 75 56 53
++65 63 61 65 55 54 65 63 61 65 55 54 65 63 61 65 55 54 65 63 61 65 63 61
++64 70 48 65 63 61 65 63 61 65 63 61 65 63 61 75 72 67 59 69 70 75 72 67
++75 72 67 59 69 70 65 63 61 65 63 61 59 69 70 65 63 61 59 57 61 59 57 61
++53 63 61 54 57 61 54 57 61 54 57 61 50 61 48 43 55 48 45 57 61 43 55 48
++45 57 61 43 55 48 48 50 48 35 47 50 35 47 50 35 47 50 34 40 43 34 40 43
++34 40 43 34 40 43 34 40 43 34 40 43 34 40 43 35 47 50 43 42 50 48 50 48
++54 57 61 53 63 61 53 63 61 53 63 61 63 59 71 75 64 82 75 72 67 75 81 76
++75 81 76 75 64 82 75 81 82 75 81 82 75 81 82 75 81 90 75 81 82 75 81 90
++88 83 74 88 83 88 75 81 82 88 83 74 75 64 82 75 81 76 75 64 82 75 81 82
++59 69 70 43 42 50 23 30 35 28 30 35 28 35 38 28 35 38 28 30 35 31 35 35
++34 40 43 34 40 43 34 40 43 28 35 38 28 30 35 28 30 35 23 30 35 28 30 35
++31 35 35 31 35 35 33 39 38 34 40 43 36 35 37 30 30 34 22 25 24 26 30 28
++30 30 34 33 30 36 31 35 35 28 30 35 25 30 29 30 30 34 33 30 36 31 35 35
++26 30 28 26 24 32 22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24
++22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 15 22 17
++23 20 24 23 20 24 15 22 17 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24
++23 20 24 22 25 24 26 30 28 30 30 34 30 30 34 30 30 34 26 30 28 22 25 24
++30 30 34 26 30 28 26 30 28 30 30 34 30 30 34 30 30 34 33 39 38 42 41 42
++33 39 38 30 30 34 23 18 22 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++3 4 9 3 4 9 7 12 13 23 20 24 31 35 35 36 35 37 28 30 35 36 35 37
++34 40 43 37 35 43 37 35 43 34 40 43 43 42 50 43 42 50 42 47 42 43 42 50
++43 42 50 42 41 42 35 47 50 48 50 48 54 57 61 53 63 61 54 57 61 54 57 61
++54 57 61 45 57 61 45 57 61 45 57 61 48 50 48 28 30 35 23 20 24 26 24 32
++12 18 20 26 24 32 59 57 61 126 147 144 232 215 228 240 251 247 251 251 247 240 251 247
++231 239 247 231 239 247 231 239 247 231 239 247 221 238 247 231 239 247 221 238 247 221 238 247
++208 221 247 221 238 247 208 221 247 221 238 247 208 221 247 208 221 247 208 221 247 208 221 247
++221 238 247 221 238 247 231 239 247 231 239 247 240 251 247 231 239 247 240 251 247 231 239 247
++231 239 247 221 238 247 221 238 247 208 221 247 226 221 247 221 238 247 221 238 247 208 221 247
++201 216 228 208 221 247 201 216 228 201 216 228 208 221 247 201 216 228 208 221 247 208 221 247
++201 216 228 208 221 247 201 216 228 208 221 247 194 199 226 208 221 247 194 199 226 194 199 226
++194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 166 176 200
++166 176 200 166 176 200 194 199 226 166 176 200 166 176 200 185 202 202 194 199 226 194 199 226
++166 176 200 185 202 202 185 202 202 166 156 164 138 126 108 117 99 86 117 99 86 138 102 108
++168 102 88 117 114 76 168 102 88 138 102 108 117 99 86 117 114 76 117 99 86 101 83 74
++101 83 74 88 73 62 88 73 62 75 73 58 88 73 62 75 73 58 88 73 62 88 83 74
++112 96 108 145 140 145 166 174 181 166 174 181 188 180 202 166 176 200 185 202 202 166 176 200
++188 180 202 185 202 202 188 180 202 194 199 226 194 199 226 201 216 228 188 180 202 150 168 183
++150 144 154 150 147 171 150 168 183 166 174 181 166 174 181 122 134 144 75 81 90 59 69 70
++59 69 70 60 81 83 75 81 82 75 81 82 77 90 100 78 98 90 95 91 100 78 98 90
++35 47 50 12 18 20 12 18 20 23 18 22 26 30 28 23 20 24 26 25 15 22 25 24
++22 25 24 22 25 24 26 30 28 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24
++22 25 24 22 25 24 26 24 32 23 20 24 26 24 32 22 25 24 23 20 24 26 30 28
++23 20 24 22 25 24 23 20 24 22 25 24 26 24 32 33 30 30 22 25 24 26 30 28
++22 25 24 26 24 32 33 30 30 26 30 28 26 30 28 30 30 34 26 30 28 26 30 28
++30 30 34 26 30 28 30 30 34 31 35 35 37 35 43 36 35 37 42 41 42 48 44 48
++59 55 55 65 63 61 75 77 62 59 69 70 75 72 67 75 72 67 75 72 67 75 72 67
++75 81 69 75 72 67 75 72 67 75 81 76 75 72 67 75 81 76 75 81 69 75 72 67
++75 77 62 59 69 70 75 77 62 59 69 70 75 72 67 65 63 61 75 72 67 65 63 61
++59 79 61 65 63 61 65 63 61 65 63 61 65 63 61 75 72 67 65 63 61 75 73 58
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 59 69 70 65 63 61 65 63 61
++59 79 61 65 63 61 53 63 61 65 63 61 75 73 58 87 99 72 90 98 89 112 123 108
++112 123 108 121 143 132 138 126 108 117 142 111 138 126 108 121 143 132 121 143 132 117 142 111
++112 123 108 94 105 108 75 81 76 51 73 47 50 61 48 51 73 47 59 79 61 87 99 72
++90 98 89 90 98 89 90 98 89 87 99 72 90 98 89 90 98 89 90 98 89 90 98 89
++78 98 90 90 98 89 90 98 89 90 98 89 87 99 72 88 83 88 78 98 90 75 81 76
++75 81 69 75 81 69 75 81 69 75 81 69 75 72 67 60 82 70 75 81 69 75 72 67
++75 81 69 60 82 70 75 77 62 53 63 61 47 49 42 47 49 42 32 39 24 32 39 24
++47 44 42 47 47 21 51 49 42 64 70 48 63 55 45 64 70 48 50 61 48 64 70 48
++65 63 61 65 63 61 65 63 61 64 70 48 65 63 61 65 63 61 65 63 61 64 70 48
++53 63 61 53 63 61 52 55 48 45 57 61 52 55 48 45 57 61 52 55 48 45 57 61
++48 50 48 43 55 48 43 42 50 35 47 50 43 42 50 35 47 50 34 40 43 34 40 43
++42 41 42 36 35 37 33 39 38 36 35 37 42 41 42 36 35 37 42 41 42 42 41 42
++42 47 42 47 49 42 47 49 42 48 50 48 47 44 42 48 50 48 51 49 42 51 49 42
++52 55 48 53 46 48 55 55 48 53 46 48 52 55 48 53 46 48 55 55 48 55 55 48
++55 55 48 55 55 48 59 55 55 59 55 55 59 55 55 65 63 61 53 63 61 65 63 61
++53 63 61 64 70 48 65 63 61 59 55 55 59 55 55 50 61 48 59 55 55 55 55 48
++59 55 55 55 55 48 55 55 48 55 55 48 55 55 48 53 63 61 59 55 55 65 63 61
++50 61 48 65 63 61 53 63 61 65 63 61 65 63 61 59 69 70 65 63 61 59 69 70
++65 63 61 59 79 61 59 69 70 65 63 61 64 70 48 65 63 61 59 55 55 59 55 55
++59 55 55 59 55 55 55 55 48 59 55 55 55 55 48 59 55 55 55 55 48 59 55 55
++55 55 48 53 46 48 55 55 48 55 55 48 52 55 48 53 46 48 52 55 48 51 49 42
++52 55 48 51 49 42 51 49 42 51 49 42 51 49 42 51 49 42 48 50 48 51 49 42
++47 49 42 47 44 42 42 41 42 47 47 21 36 35 37 47 47 21 42 41 42 42 41 42
++
++101 74 26 88 44 51 101 74 26 102 33 26 88 44 51 88 30 18 76 18 19 76 46 20
++76 18 19 88 30 18 76 18 19 88 30 18 76 18 19 88 44 51 76 18 19 76 18 19
++88 44 51 76 18 19 76 18 19 102 33 26 76 18 19 76 18 19 102 33 26 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 102 33 26 76 18 19 76 18 19 76 18 19 102 33 26
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 44 53 76 44 53 76 44 53 59 36 42
++88 44 51 76 44 53 75 56 53 75 56 53 88 73 62 101 60 73 101 83 74 101 83 74
++101 83 74 101 83 74 117 114 76 117 99 86 117 112 45 168 102 88 117 99 86 168 102 88
++168 102 88 117 112 45 168 102 88 117 99 86 117 114 76 117 99 86 120 63 71 117 112 45
++88 73 62 88 73 62 75 56 53 75 56 53 60 49 42 51 49 42 47 44 42 42 38 42
++36 35 37 47 44 42 42 41 42 48 44 48 48 50 48 54 57 61 54 57 61 54 57 61
++59 57 61 65 63 61 59 69 70 65 63 61 65 63 61 75 72 67 75 72 67 59 69 70
++75 72 67 75 72 67 75 72 67 65 63 61 65 63 61 75 72 67 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 59 55 55 63 55 51 59 55 55 50 61 48
++59 55 55 53 63 61 55 55 48 59 55 55 59 55 55 50 61 48 54 57 61 52 55 48
++59 55 55 54 57 61 59 55 55 54 57 61 50 61 48 54 57 61 59 55 55 59 57 61
++59 55 55 53 63 61 55 55 48 50 61 48 63 55 51 59 55 55 59 55 55 59 55 55
++50 61 48 63 55 51 59 55 55 64 70 48 59 55 55 63 55 51 64 70 48 59 55 55
++64 70 48 59 57 61 59 55 55 59 55 55 59 55 55 59 55 55 52 55 48 59 55 55
++52 55 48 53 46 48 48 50 48 48 50 48 48 50 48 48 44 48 48 44 48 42 41 42
++42 41 42 42 41 42 33 39 38 42 41 42 33 39 38 42 47 42 42 41 42 42 41 42
++42 41 42 42 47 42 47 44 42 47 44 42 47 44 42 47 49 42 47 49 42 47 49 42
++47 49 42 51 49 42 52 55 48 55 55 48 59 55 55 55 55 48 59 55 55 63 55 51
++55 55 48 55 55 48 55 55 48 63 55 51 63 55 51 63 55 51 63 55 51 59 55 55
++65 63 61 65 55 54 65 63 61 65 55 54 75 63 62 65 63 61 75 56 53 65 63 61
++75 63 62 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++75 63 62 65 63 61 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++59 69 70 75 72 67 75 72 67 65 63 61 59 69 70 65 63 61 59 69 70 59 57 61
++53 63 61 59 57 61 53 63 61 50 61 48 45 57 61 54 57 61 43 55 48 43 55 48
++43 55 48 43 42 50 45 57 61 43 42 50 35 47 50 35 46 43 34 40 43 34 40 43
++34 40 43 37 35 43 34 40 43 34 40 43 34 40 43 35 47 50 43 42 50 43 55 48
++48 50 48 54 57 61 59 57 61 59 69 70 63 59 71 59 69 70 75 81 76 75 64 82
++75 81 76 75 81 76 75 81 82 88 69 84 75 81 82 88 83 88 75 81 82 88 83 88
++75 81 76 75 81 76 88 83 74 75 81 82 75 81 76 75 72 67 75 81 76 75 64 82
++59 57 61 34 40 43 28 30 35 34 40 43 34 40 43 31 35 35 23 30 35 31 35 35
++34 40 43 42 41 42 34 40 43 33 39 38 28 30 35 25 30 29 28 30 35 28 30 35
++31 35 35 31 35 35 33 39 38 33 39 38 31 35 35 25 30 29 22 25 24 26 24 32
++30 30 34 31 35 35 31 35 35 28 30 35 28 30 35 31 35 35 36 35 37 31 35 35
++33 30 32 25 30 29 23 20 24 22 25 24 26 24 32 22 25 24 26 24 32 22 25 24
++23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 23 20 24
++23 20 24 12 18 20 23 18 22 23 18 22 23 20 24 22 25 24 22 23 31 22 25 24
++23 20 24 22 25 24 22 23 31 26 30 28 30 30 34 30 30 34 30 30 34 30 30 34
++26 30 28 30 30 34 30 30 34 30 30 34 31 35 35 31 35 35 33 39 38 35 46 43
++42 41 42 31 35 35 22 25 24 14 16 17 7 12 13 17 12 17 14 16 17 17 12 17
++14 16 17 7 12 13 3 3 1 7 12 13 23 20 24 31 35 35 37 35 43 34 40 43
++43 42 50 42 41 42 31 35 35 30 30 34 37 35 43 42 47 42 43 42 50 35 47 50
++35 46 43 34 40 43 28 35 38 43 42 50 45 57 61 59 57 61 59 69 70 63 59 71
++54 57 61 45 57 61 45 57 61 48 50 48 43 42 50 28 30 35 22 23 31 22 25 24
++23 20 24 23 20 24 22 25 24 54 57 61 111 119 127 166 174 181 231 239 247 251 251 247
++240 251 247 240 251 247 231 239 247 231 239 247 231 239 247 221 238 247 221 238 247 221 238 247
++208 221 247 221 238 247 208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 208 221 247
++231 239 247 231 239 247 231 239 247 231 239 247 240 251 247 231 239 247 240 251 247 221 238 247
++221 238 247 221 238 247 208 221 247 208 221 247 221 238 247 221 238 247 226 221 247 208 221 247
++201 216 228 194 199 226 201 216 228 208 221 247 201 216 228 208 221 247 201 216 228 194 199 226
++201 216 228 194 199 226 194 199 226 201 216 228 194 199 226 194 199 226 194 199 226 194 199 226
++194 199 226 194 199 226 194 199 226 194 199 226 166 176 200 194 199 226 166 176 200 194 199 226
++194 199 226 194 199 226 185 202 202 166 176 200 150 168 183 166 176 200 166 176 200 194 199 226
++185 202 202 166 176 200 185 202 202 194 199 226 189 165 168 138 126 108 138 126 108 117 99 86
++138 126 108 138 102 108 117 114 76 117 99 86 117 114 76 117 99 86 117 99 86 101 83 74
++117 99 86 101 83 74 81 96 56 101 83 74 88 73 62 88 73 62 88 83 74 112 96 108
++146 151 137 148 160 159 166 174 181 188 180 202 185 202 202 185 202 202 188 180 202 185 202 202
++194 199 226 194 199 226 194 199 226 194 199 226 185 202 202 194 199 226 188 180 202 150 168 183
++150 144 154 150 147 171 150 168 183 166 174 181 148 160 159 111 119 127 60 81 83 59 69 70
++59 69 70 75 81 76 75 81 82 75 81 90 78 98 90 77 90 100 94 105 108 94 105 108
++75 81 82 35 46 43 12 18 20 14 16 17 23 20 24 23 20 24 26 25 15 23 20 24
++26 30 28 22 25 24 26 30 28 23 20 24 26 24 32 22 25 24 22 25 24 23 20 24
++23 20 24 23 20 24 22 25 24 26 24 32 23 20 24 22 25 24 26 24 32 22 25 24
++23 20 24 22 25 24 26 24 32 22 25 24 26 30 28 26 24 32 33 30 30 26 24 32
++22 25 24 33 30 30 26 24 32 26 30 28 26 24 32 26 30 28 33 30 32 26 24 32
++33 30 30 30 30 34 33 30 30 31 35 35 36 35 37 36 35 37 42 41 42 42 47 42
++59 55 55 65 63 61 65 63 61 75 72 67 75 81 69 75 72 67 75 81 69 75 81 69
++75 72 67 75 81 69 75 81 76 75 81 76 75 81 76 75 81 76 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 59 69 70 65 63 61 75 72 67
++65 63 61 65 63 61 59 79 61 65 63 61 75 72 67 65 63 61 75 72 67 65 63 61
++65 63 61 59 79 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 59 69 70
++65 63 61 59 69 70 65 63 61 59 79 61 59 79 61 75 72 67 75 81 69 75 99 72
++94 105 108 112 123 108 112 123 108 121 143 132 111 119 127 112 123 108 112 123 108 112 96 108
++90 98 89 75 99 72 59 79 61 59 79 61 75 81 69 75 81 76 87 99 72 75 81 82
++75 81 69 59 79 61 59 79 61 59 79 61 75 77 62 59 79 61 59 79 61 75 77 62
++59 79 61 75 77 62 75 81 69 75 81 69 75 81 76 75 99 72 75 81 76 75 99 72
++75 81 76 59 79 61 53 63 61 43 55 48 35 46 43 33 39 38 33 39 38 33 39 38
++33 39 38 33 39 38 32 39 24 32 39 24 26 30 28 32 39 24 32 39 24 47 44 42
++47 47 21 51 49 42 63 55 45 64 70 48 64 70 48 64 70 48 65 55 54 65 63 61
++59 55 55 59 79 61 65 63 61 59 79 61 65 63 61 65 63 61 65 63 61 53 63 61
++65 63 61 50 61 48 59 55 55 50 61 48 45 57 61 52 55 48 45 57 61 48 50 48
++48 50 48 43 42 50 35 47 50 43 42 50 42 47 42 43 42 50 35 46 43 42 41 42
++33 39 38 42 41 42 33 39 38 42 41 42 42 47 42 36 35 37 42 41 42 42 41 42
++47 44 42 47 49 42 47 49 42 48 50 48 51 49 42 48 50 48 48 50 48 51 49 42
++55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 59 55 55 55 55 48
++59 55 55 59 55 55 59 55 55 65 63 61 64 70 48 59 57 61 64 70 48 65 63 61
++65 63 61 65 63 61 59 57 61 64 70 48 59 57 61 59 55 55 59 55 55 55 55 48
++55 55 48 59 55 55 59 55 55 55 55 48 59 55 55 59 55 55 64 70 48 53 63 61
++64 70 48 65 63 61 65 63 61 65 63 61 59 79 61 65 63 61 59 69 70 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 59 57 61 65 63 61 50 61 48
++59 55 55 59 55 55 59 55 55 55 55 48 59 55 55 55 55 48 55 55 48 52 55 48
++55 55 48 55 55 48 55 55 48 55 55 48 53 46 48 52 55 48 52 55 48 52 55 48
++51 49 42 52 55 48 51 49 42 52 55 48 51 49 42 48 50 48 51 49 42 51 49 42
++47 44 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 36 35 37 47 47 21
++
++88 44 51 102 33 26 101 74 26 88 44 51 102 33 26 76 46 20 76 46 20 88 30 18
++88 30 18 76 18 19 88 30 18 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26 76 18 19 76 18 19
++102 33 26 76 18 19 102 33 26 76 18 19 76 18 19 102 33 26 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 88 30 18 76 18 19 76 44 53 88 30 18 88 44 51 76 46 20
++76 44 53 75 56 53 75 56 53 75 56 53 88 66 70 88 73 62 88 73 62 101 83 74
++101 83 74 117 99 86 120 63 71 117 99 86 117 99 86 117 99 86 168 102 88 117 114 76
++168 102 88 117 99 86 168 102 88 117 114 76 168 102 88 117 99 86 117 112 45 120 63 71
++88 73 62 88 73 62 75 56 53 63 55 51 62 47 47 51 49 42 42 41 42 42 41 42
++36 35 37 42 41 42 42 47 42 43 42 50 48 50 48 48 50 48 48 50 48 54 57 61
++53 63 61 65 63 61 65 63 61 59 69 70 65 63 61 65 63 61 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 77 62 65 63 61 75 72 67 65 63 61 75 72 67
++65 63 61 64 70 48 63 55 51 64 70 48 65 63 61 64 70 48 59 55 55 64 70 48
++59 55 55 64 70 48 59 55 55 50 61 48 59 55 55 55 55 48 59 55 55 55 55 48
++53 63 61 59 55 55 53 63 61 59 55 55 53 63 61 50 61 48 65 63 61 53 63 61
++59 57 61 59 55 55 59 55 55 59 55 55 55 55 48 59 55 55 50 61 48 59 55 55
++63 55 51 59 55 55 59 55 55 59 55 55 63 55 51 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 52 55 48 52 55 48 59 55 55 48 50 48
++54 57 61 48 50 48 48 50 48 48 50 48 48 44 48 42 47 42 42 47 42 42 41 42
++35 46 43 42 41 42 42 41 42 42 47 42 42 41 42 42 47 42 42 41 42 42 47 42
++47 44 42 47 44 42 47 44 42 47 49 42 48 50 48 47 49 42 47 49 42 51 49 42
++51 49 42 52 55 48 52 55 48 55 55 48 59 55 55 55 55 48 55 55 48 59 55 55
++59 55 55 59 55 55 63 55 51 63 55 51 64 70 48 63 55 51 64 70 48 63 55 45
++65 55 54 64 70 48 65 63 61 65 63 61 65 63 61 75 73 58 65 63 61 75 63 62
++65 63 61 65 63 61 75 63 62 65 63 61 75 73 58 75 63 62 65 63 61 75 73 58
++65 63 61 75 73 58 75 72 67 65 63 61 75 72 67 75 72 67 59 69 70 75 81 76
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 63 59 71 65 63 61 59 69 70
++59 57 61 59 57 61 54 57 61 53 63 61 52 55 48 53 63 61 54 57 61 54 57 61
++45 57 61 45 57 61 43 42 50 43 55 48 43 42 50 43 42 50 34 40 43 34 40 43
++34 40 43 34 40 43 34 40 43 34 40 43 34 40 43 34 40 43 34 40 43 43 42 50
++48 50 48 48 50 48 54 57 61 54 57 61 59 57 61 65 63 61 59 69 70 75 72 67
++75 72 67 88 69 84 75 81 82 75 81 82 75 81 82 88 83 74 75 81 82 88 83 74
++88 69 84 75 81 76 88 69 84 88 83 74 75 72 67 75 72 67 75 72 67 65 63 61
++43 42 50 42 41 42 43 42 50 48 50 48 34 40 43 28 30 35 28 30 35 33 39 38
++42 41 42 35 47 50 43 42 50 31 35 35 28 30 35 25 30 29 23 30 35 31 35 35
++28 35 38 28 30 35 28 35 38 30 30 34 26 30 28 26 24 32 22 25 24 26 30 28
++30 30 34 31 35 35 30 30 34 30 30 34 31 35 35 36 35 37 33 39 38 33 30 36
++30 30 34 22 25 24 22 25 24 23 20 24 26 30 28 22 25 24 22 25 24 22 25 24
++26 24 32 22 25 24 23 20 24 22 25 24 22 25 24 26 24 32 22 25 24 22 25 24
++22 25 24 23 20 24 23 20 24 12 18 20 23 20 24 26 24 32 22 25 24 22 25 24
++22 25 24 23 20 24 22 25 24 26 24 32 26 30 28 30 30 34 30 30 34 31 35 35
++30 30 34 30 30 34 31 35 35 36 35 37 37 35 43 42 41 42 42 41 42 35 46 43
++43 42 50 35 46 43 28 30 35 14 16 17 17 12 17 7 12 13 17 12 17 17 12 17
++14 16 17 17 12 17 3 4 9 3 3 1 3 4 9 12 18 20 36 35 37 48 44 48
++54 57 61 48 50 48 37 35 43 30 30 34 31 35 35 34 40 43 43 42 50 43 42 50
++34 40 43 28 35 38 28 30 35 34 40 43 43 55 48 59 57 61 59 69 70 59 69 70
++54 57 61 54 57 61 57 43 64 45 57 61 34 40 43 28 30 35 22 25 24 22 23 31
++15 22 17 14 16 17 7 12 13 7 12 13 28 35 38 75 72 67 148 160 159 226 221 247
++240 251 247 240 251 247 231 239 247 231 239 247 231 239 247 221 238 247 208 221 247 221 238 247
++208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 201 216 228 208 221 247 221 238 247
++231 239 247 221 238 247 231 239 247 221 238 247 240 251 247 221 238 247 231 239 247 221 238 247
++208 221 247 208 221 247 208 221 247 208 221 247 226 221 247 221 238 247 208 221 247 208 221 247
++194 199 226 208 221 247 194 199 226 194 199 226 208 221 247 194 199 226 208 221 247 194 199 226
++194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226
++194 199 226 166 176 200 194 199 226 194 199 226 208 221 247 201 216 228 208 221 247 194 199 226
++194 199 226 166 176 200 166 176 200 166 176 200 150 168 183 150 168 183 166 176 200 185 202 202
++194 199 226 185 202 202 188 180 202 194 199 226 201 216 228 188 180 202 145 140 145 112 123 108
++138 126 108 117 99 86 138 126 108 138 102 108 117 99 86 117 99 86 117 99 86 117 99 86
++101 83 74 99 93 84 99 93 84 99 93 84 88 83 74 90 98 89 112 96 108 122 134 144
++166 174 181 166 176 200 185 202 202 166 176 200 185 202 202 166 176 200 194 199 226 185 202 202
++194 199 226 194 199 226 185 202 202 194 199 226 194 199 226 185 202 202 166 176 200 150 147 171
++150 147 171 150 147 171 150 168 183 166 156 164 131 144 168 94 105 108 59 69 70 59 69 70
++59 69 70 60 81 83 75 81 90 60 81 83 77 90 100 78 98 90 94 105 108 94 105 108
++94 105 108 59 69 70 23 30 35 12 18 20 12 18 20 15 22 17 22 25 24 22 25 24
++23 20 24 22 25 24 23 20 24 26 30 28 22 25 24 22 25 24 22 25 24 26 24 32
++22 25 24 26 24 32 22 25 24 23 20 24 23 20 24 23 20 24 22 25 24 22 25 24
++26 24 32 22 25 24 23 20 24 23 20 24 23 20 24 26 24 32 23 20 24 26 30 28
++26 24 32 26 30 28 26 24 32 26 24 32 26 24 32 26 30 28 30 30 34 33 30 30
++26 30 28 26 30 28 30 30 34 33 30 32 36 35 37 36 35 37 42 41 42 48 44 48
++52 55 48 53 63 61 75 72 67 75 72 67 75 72 67 75 81 76 75 72 67 75 81 76
++75 81 69 75 81 76 88 83 74 75 81 76 88 83 74 75 81 76 75 81 76 75 81 76
++75 81 76 75 81 69 75 72 67 60 82 70 75 72 67 75 72 67 75 72 67 59 69 70
++75 72 67 75 72 67 75 72 67 65 63 61 75 72 67 59 69 70 75 72 67 59 69 70
++75 73 58 65 63 61 65 63 61 75 73 58 65 63 61 75 73 58 65 63 61 75 63 62
++75 63 62 65 63 61 65 63 61 65 63 61 59 69 70 59 79 61 65 63 61 59 69 70
++65 63 61 59 79 61 59 69 70 65 63 61 59 69 70 59 69 70 59 69 70 75 72 67
++75 81 69 88 83 74 90 98 89 94 105 108 98 113 84 99 93 84 78 98 90 75 81 69
++59 79 61 54 57 61 64 70 48 75 77 62 75 81 76 75 99 72 75 81 69 59 79 61
++59 79 61 53 63 61 64 70 48 53 63 61 51 73 47 50 61 48 64 70 48 53 63 61
++51 73 47 53 63 61 64 70 48 59 79 61 65 63 61 59 79 61 64 70 48 59 79 61
++75 77 62 59 79 61 50 61 48 42 47 42 32 39 24 29 35 19 29 35 19 32 39 24
++32 39 24 29 35 19 34 30 15 32 39 24 32 39 24 36 35 37 47 47 21 47 47 21
++51 49 42 51 49 42 63 55 45 64 70 48 63 55 51 63 55 51 59 55 55 64 70 48
++65 63 61 65 63 61 75 72 67 75 72 67 65 63 61 59 79 61 65 63 61 65 63 61
++65 63 61 59 57 61 50 61 48 59 55 55 54 57 61 48 50 48 54 57 61 48 50 48
++45 57 61 43 55 48 43 55 48 35 47 50 43 42 50 42 47 42 42 41 42 35 46 43
++42 41 42 33 39 38 42 41 42 32 39 24 42 41 42 42 47 42 42 41 42 47 44 42
++47 49 42 47 49 42 48 50 48 52 55 48 53 46 48 52 55 48 53 46 48 52 55 48
++55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 59 55 55 63 55 51
++59 55 55 59 55 55 64 70 48 53 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++59 57 61 64 70 48 65 63 61 53 63 61 59 55 55 59 55 55 50 61 48 59 55 55
++55 55 48 55 55 48 55 55 48 53 63 61 63 55 51 53 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 59 69 70 65 63 61 59 79 61
++59 69 70 59 79 61 65 63 61 59 79 61 65 63 61 65 63 61 59 55 55 65 63 61
++59 55 55 64 70 48 59 55 55 59 55 55 59 55 55 55 55 48 59 55 55 53 46 48
++55 55 48 55 55 48 53 46 48 55 55 48 52 55 48 53 46 48 55 55 48 53 46 48
++52 55 48 51 49 42 52 55 48 48 50 48 48 50 48 51 49 42 51 49 42 47 49 42
++47 49 42 47 44 42 47 44 42 36 35 37 42 41 42 36 35 37 42 41 42 42 38 42
++
++101 74 26 120 63 71 88 44 51 102 33 26 76 46 20 88 44 51 88 30 18 76 44 53
++76 18 19 88 30 18 76 18 19 88 44 51 76 18 19 76 18 19 102 33 26 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++102 33 26 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 102 33 26 76 18 19 76 18 19 102 33 26 76 18 19
++102 33 26 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 88 44 51 88 30 18 76 44 53 88 44 51 76 44 53 76 44 53
++76 44 53 76 44 53 75 56 53 75 56 53 88 66 70 88 73 62 88 73 62 101 83 74
++101 83 74 101 83 74 117 114 76 117 99 86 168 102 88 117 112 45 168 102 88 117 114 76
++168 102 88 117 114 76 168 102 88 117 99 86 117 112 45 120 63 71 117 99 86 101 83 74
++120 63 71 88 73 31 88 73 62 75 56 53 60 49 42 47 44 42 42 41 42 32 39 24
++42 41 42 42 41 42 47 44 42 43 42 50 48 50 48 48 50 48 45 57 61 54 57 61
++54 57 61 59 57 61 65 63 61 65 63 61 65 63 61 59 79 61 65 63 61 75 72 67
++75 72 67 75 72 67 59 69 70 75 72 67 65 63 61 75 77 62 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 63 55 51 65 63 61 59 55 55 59 55 55
++64 70 48 59 55 55 59 55 55 53 63 61 63 55 51 53 63 61 50 61 48 59 55 55
++59 55 55 59 55 55 59 55 55 50 61 48 59 55 55 53 63 61 59 55 55 65 63 61
++59 55 55 64 70 48 59 55 55 50 61 48 59 55 55 59 55 55 65 63 61 59 55 55
++64 70 48 59 55 55 64 70 48 59 55 55 63 55 51 64 70 48 59 57 61 59 55 55
++59 55 55 64 70 48 59 55 55 63 55 51 59 55 55 52 55 48 48 50 48 48 50 48
++48 50 48 53 46 48 48 50 48 48 50 48 42 47 42 42 41 42 42 41 42 42 47 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 47 42 42 47 42 47 44 42 48 44 48
++48 44 48 42 47 42 48 50 48 47 44 42 48 50 48 47 49 42 47 49 42 48 50 48
++52 55 48 52 55 48 55 55 48 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55
++64 70 48 59 55 55 64 70 48 59 55 55 63 55 51 63 55 51 63 55 45 64 70 48
++65 55 54 65 63 61 75 63 62 65 63 61 75 63 62 65 63 61 65 63 61 65 63 61
++75 63 62 65 63 61 75 73 58 65 63 61 75 63 62 65 63 61 75 63 62 65 63 61
++75 63 62 75 72 67 65 63 61 75 77 62 75 77 62 75 72 67 75 72 67 75 72 67
++75 72 67 59 69 70 75 72 67 75 72 67 59 69 70 75 72 67 59 69 70 63 59 71
++65 63 61 59 57 61 53 63 61 53 63 61 53 63 61 54 57 61 54 57 61 54 57 61
++54 57 61 45 57 61 48 50 48 45 57 61 43 42 50 35 47 50 34 40 43 34 40 43
++34 40 43 37 35 43 34 40 43 29 34 50 37 35 43 34 40 43 43 42 50 43 42 50
++43 42 50 48 50 48 54 57 61 48 50 48 59 57 61 59 57 61 65 63 61 59 69 70
++75 72 67 75 81 69 75 64 82 75 81 82 75 81 82 75 81 76 75 81 76 75 81 76
++88 83 74 88 66 70 75 81 76 75 72 67 75 72 67 75 72 67 65 63 61 54 57 61
++48 50 48 54 57 61 43 55 48 43 42 50 28 35 38 28 30 35 28 30 35 33 39 38
++34 40 43 43 42 50 34 40 43 28 35 38 28 30 35 23 30 35 31 35 35 31 35 35
++34 40 43 28 35 38 28 30 35 26 24 32 26 24 32 22 25 24 26 30 28 26 24 32
++31 35 35 36 35 37 30 30 34 30 30 34 30 30 34 36 35 37 36 35 37 30 30 34
++25 30 29 22 25 24 22 23 31 22 25 24 26 24 32 26 30 28 26 24 32 26 30 28
++22 25 24 22 25 24 26 24 32 22 25 24 23 20 24 22 25 24 22 25 24 22 23 31
++23 20 24 23 20 24 22 25 24 23 18 22 22 25 24 22 25 24 26 30 28 26 24 32
++22 25 24 23 20 24 22 25 24 25 30 29 30 30 34 30 30 34 31 35 35 30 30 34
++30 30 34 31 35 35 36 35 37 37 35 43 42 41 42 42 41 42 35 46 43 48 50 48
++43 55 48 43 42 50 31 35 35 23 20 24 7 12 13 17 12 17 14 16 17 17 12 17
++17 12 17 17 12 17 7 12 13 7 12 13 3 4 9 7 12 13 23 20 24 31 35 35
++43 42 50 48 50 48 48 50 48 43 42 50 33 39 38 34 40 43 43 42 50 35 46 43
++34 40 43 28 35 38 28 30 35 28 35 38 43 42 50 59 69 70 59 69 70 59 69 70
++63 59 71 54 57 61 54 57 61 48 50 48 34 40 43 23 30 35 25 30 29 26 24 32
++22 25 24 14 16 17 7 12 13 7 12 13 12 18 20 22 23 31 75 64 82 129 144 153
++201 216 228 240 251 247 231 239 247 231 239 247 221 238 247 221 238 247 221 238 247 208 221 247
++208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 221 238 247 221 238 247
++231 239 247 221 238 247 221 238 247 221 238 247 221 238 247 240 251 247 221 238 247 208 221 247
++208 221 247 201 216 228 208 221 247 221 238 247 221 238 247 208 221 247 208 221 247 201 216 228
++194 199 226 194 199 226 194 199 226 208 221 247 194 199 226 194 199 226 194 199 226 194 199 226
++194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 166 176 200 194 199 226
++194 199 226 194 199 226 208 221 247 208 221 247 208 221 247 208 221 247 201 216 228 194 199 226
++185 202 202 166 176 200 166 176 200 166 176 200 166 176 200 150 168 183 150 168 183 150 168 183
++166 176 200 166 176 200 185 202 202 185 202 202 194 199 226 225 222 201 188 180 202 145 140 145
++138 126 108 138 102 108 117 114 76 138 102 108 117 114 76 138 102 108 117 99 86 117 99 86
++117 99 86 117 99 86 99 93 84 117 99 86 99 93 84 112 123 108 145 140 145 166 156 164
++188 180 202 188 180 202 188 180 202 185 202 202 194 199 226 185 202 202 194 199 226 194 199 226
++185 202 202 194 199 226 194 199 226 194 199 226 194 199 226 188 180 202 166 174 181 150 147 171
++148 160 159 150 147 171 166 174 181 148 160 159 122 134 144 77 90 100 53 63 61 59 69 70
++60 81 83 60 81 83 75 81 82 78 98 90 75 81 90 78 98 90 77 91 115 95 119 107
++94 105 108 75 81 90 28 35 38 12 18 20 12 18 20 12 18 20 22 25 24 23 20 24
++22 25 24 22 25 24 22 25 24 26 30 28 22 25 24 22 25 24 23 20 24 22 25 24
++26 24 32 23 20 24 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 33 30 30
++22 25 24 23 20 24 26 30 28 23 20 24 26 30 28 23 20 24 33 30 30 26 24 32
++26 30 28 26 24 32 26 24 32 30 30 34 26 30 28 26 24 32 26 30 28 30 30 34
++33 30 30 26 30 28 33 30 30 30 30 34 31 35 35 36 35 37 42 41 42 42 41 42
++48 50 48 59 55 55 59 79 61 75 72 67 75 81 76 75 81 76 75 81 76 88 83 74
++75 81 69 88 83 74 75 81 76 88 83 74 75 81 76 75 81 76 75 81 76 75 81 69
++75 72 67 75 81 76 75 81 76 75 72 67 75 72 67 59 69 70 75 72 67 75 72 67
++59 69 70 75 72 67 65 63 61 75 72 67 65 63 61 75 72 67 75 72 67 65 63 61
++75 72 67 65 63 61 75 77 62 65 63 61 65 63 61 65 63 61 65 63 61 75 72 67
++65 63 61 65 63 61 75 72 67 65 63 61 65 63 61 65 63 61 59 69 70 75 72 67
++59 69 70 65 63 61 59 69 70 60 82 70 59 69 70 65 63 61 60 82 70 59 69 70
++59 79 61 75 73 58 75 77 62 75 77 62 59 79 61 64 70 48 52 55 48 47 49 42
++35 46 43 42 47 42 50 61 48 59 79 61 75 81 69 75 81 69 59 79 61 64 70 48
++51 73 47 51 73 47 50 61 48 51 73 47 50 61 48 50 61 48 50 61 48 50 61 48
++50 61 48 50 61 48 50 61 48 64 70 48 50 61 48 50 61 48 50 61 48 50 61 48
++51 73 47 50 61 48 50 61 48 47 49 42 32 39 24 29 35 19 29 35 19 33 30 30
++33 30 30 34 30 15 32 39 24 52 30 35 47 47 21 47 47 21 55 39 37 51 49 42
++51 49 42 63 55 45 63 55 45 63 55 45 63 55 51 64 70 48 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 75 72 67 65 63 61 65 63 61 59 79 61
++59 55 55 53 63 61 59 55 55 59 55 55 54 57 61 54 57 61 48 50 48 48 50 48
++48 50 48 43 42 50 35 47 50 43 55 48 48 50 48 35 47 50 42 47 42 42 41 42
++34 40 43 42 47 42 42 41 42 42 41 42 42 47 42 42 41 42 47 44 42 47 44 42
++47 49 42 48 50 48 48 50 48 52 55 48 52 55 48 52 55 48 55 55 48 55 55 48
++55 55 48 59 55 55 55 55 48 59 55 55 55 55 48 63 55 51 65 55 54 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 64 70 48 65 63 61 53 63 61
++65 63 61 65 63 61 59 55 55 59 55 55 64 70 48 59 55 55 59 55 55 55 55 48
++59 55 55 59 55 55 59 55 55 59 55 55 64 70 48 59 57 61 64 70 48 65 63 61
++65 63 61 59 79 61 75 73 58 65 63 61 75 72 67 59 69 70 75 72 67 59 69 70
++65 63 61 59 69 70 65 63 61 59 79 61 65 63 61 65 63 61 65 63 61 64 70 48
++59 57 61 59 55 55 59 55 55 55 55 48 59 55 55 55 55 48 52 55 48 55 55 48
++55 55 48 55 55 48 55 55 48 55 55 48 52 55 48 52 55 48 52 55 48 52 55 48
++53 46 48 52 55 48 53 46 48 51 49 42 51 49 42 47 49 42 47 44 42 47 44 42
++47 44 42 47 44 42 42 41 42 42 41 42 36 35 37 36 35 37 42 38 42 36 35 37
++
++101 60 73 122 49 24 101 74 26 101 74 26 102 33 26 88 44 51 76 46 20 88 30 18
++88 30 18 88 44 51 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 102 33 26 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26 76 18 19
++76 18 19 102 33 26 76 18 19 76 18 19 102 33 26 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 88 30 18 59 36 42 88 30 18 88 44 51 76 18 19 88 44 51 76 46 20
++76 44 53 76 44 53 75 56 53 75 56 53 88 73 62 88 66 70 88 73 62 101 83 74
++101 83 74 101 83 74 117 99 86 120 63 71 117 99 86 117 99 86 117 114 76 168 102 88
++117 99 86 168 102 88 117 112 45 117 99 86 168 102 88 117 114 76 120 63 71 117 112 45
++101 83 74 88 73 62 75 56 53 63 55 51 63 55 45 51 49 42 47 39 42 36 35 37
++36 35 37 42 41 42 42 47 42 43 42 50 48 44 48 54 57 61 48 50 48 52 55 48
++54 57 61 53 63 61 59 57 61 53 63 61 65 63 61 75 72 67 65 63 61 75 72 67
++75 72 67 75 72 67 75 72 67 65 63 61 75 72 67 65 63 61 75 77 62 65 63 61
++75 73 58 64 70 48 65 63 61 64 70 48 65 63 61 64 70 48 59 55 55 64 70 48
++59 55 55 59 55 55 64 70 48 63 55 51 65 63 61 50 61 48 59 55 55 64 70 48
++53 63 61 59 55 55 53 63 61 59 57 61 50 61 48 53 63 61 64 70 48 59 55 55
++59 57 61 59 55 55 53 63 61 59 55 55 59 55 55 59 55 55 59 55 55 65 63 61
++59 55 55 59 55 55 59 55 55 63 55 51 59 55 55 59 55 55 59 55 55 64 70 48
++59 55 55 59 55 55 59 55 55 59 55 55 52 55 48 59 55 55 48 50 48 59 55 55
++48 50 48 48 50 48 48 50 48 42 47 42 43 42 50 42 47 42 42 47 42 42 41 42
++42 41 42 42 41 42 35 46 43 42 41 42 42 41 42 48 44 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 51 49 42 48 50 48
++52 55 48 55 55 48 55 55 48 55 55 48 59 55 55 55 55 48 64 70 48 63 55 51
++59 55 55 59 55 55 63 55 51 63 55 51 64 70 48 63 55 51 64 70 48 63 55 51
++65 55 54 64 70 48 65 55 54 65 63 61 65 63 61 75 73 58 65 63 61 75 63 62
++64 70 48 65 63 61 75 63 62 65 63 61 75 63 62 65 63 61 75 63 62 65 63 61
++75 73 58 65 63 61 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 59 69 70 75 72 67 75 72 67 63 59 71 75 72 67 65 63 61
++59 69 70 59 69 70 65 63 61 59 69 70 65 63 61 53 63 61 53 63 61 53 63 61
++54 57 61 54 57 61 54 57 61 45 57 61 48 50 48 48 50 48 43 42 50 34 40 43
++34 40 43 34 40 43 34 40 43 37 35 43 34 40 43 37 35 43 34 40 43 35 47 50
++43 42 50 43 42 50 48 50 48 48 50 48 59 55 55 54 57 61 59 57 61 65 63 61
++65 63 61 59 69 70 75 72 67 75 72 67 75 72 67 75 72 67 75 81 76 75 72 67
++75 72 67 75 81 76 75 72 67 75 72 67 75 72 67 65 63 61 52 55 48 52 55 48
++59 57 61 59 57 61 48 50 48 28 30 35 25 30 29 28 30 35 28 30 35 34 40 43
++42 41 42 34 40 43 33 39 38 28 30 35 25 30 29 28 30 35 33 39 38 34 40 43
++34 40 43 31 35 35 26 24 32 22 23 31 22 25 24 22 25 24 30 30 34 31 35 35
++36 35 37 36 35 37 30 30 34 26 30 28 30 30 34 31 35 35 31 35 35 30 30 34
++30 30 34 22 25 24 22 25 24 26 30 28 26 30 28 26 24 32 26 30 28 26 24 32
++26 30 28 26 24 32 22 25 24 23 20 24 22 25 24 26 24 32 22 25 24 22 25 24
++22 25 24 22 25 24 23 20 24 22 25 24 26 30 28 26 24 32 22 25 24 26 24 32
++26 30 28 26 24 32 25 30 29 26 24 32 26 30 28 30 30 34 30 30 34 30 30 34
++30 30 34 31 35 35 36 35 37 33 39 38 36 35 37 34 40 43 42 41 42 35 47 50
++42 47 42 35 46 43 31 35 35 22 25 24 17 12 17 7 12 13 14 16 17 23 18 22
++14 16 17 23 18 22 14 16 17 13 4 7 7 12 13 3 4 9 3 4 9 14 16 17
++26 24 32 42 41 42 48 50 48 54 57 61 48 50 48 43 42 50 43 55 48 43 42 50
++34 40 43 31 35 35 28 30 35 28 35 38 43 55 48 63 59 71 75 72 67 59 69 70
++54 57 61 45 57 61 54 57 61 43 42 50 28 35 38 25 30 29 28 30 35 36 35 37
++42 41 42 33 39 38 25 30 29 22 25 24 22 23 31 23 30 35 22 23 31 59 69 70
++148 160 159 221 238 247 240 251 247 231 239 247 221 238 247 221 238 247 208 221 247 208 221 247
++208 221 247 208 221 247 208 221 247 201 216 228 208 221 247 208 221 247 221 238 247 221 238 247
++221 238 247 221 238 247 221 238 247 221 238 247 221 238 247 221 238 247 208 221 247 201 216 228
++201 216 228 201 216 228 208 221 247 221 238 247 208 221 247 208 221 247 201 216 228 201 216 228
++194 199 226 194 199 226 201 216 228 194 199 226 194 199 226 201 216 228 194 199 226 201 216 228
++194 199 226 201 216 228 194 199 226 194 199 226 194 199 226 166 176 200 194 199 226 194 199 226
++194 199 226 208 221 247 221 238 247 208 221 247 208 221 247 201 216 228 194 199 226 194 199 226
++194 199 226 185 202 202 194 199 226 166 176 200 166 176 200 150 168 183 131 144 168 131 144 168
++150 168 183 166 176 200 166 176 200 166 176 200 185 202 202 194 199 226 225 222 201 188 180 202
++150 144 154 138 126 108 138 102 108 138 126 108 117 99 86 138 102 108 117 127 86 117 99 86
++98 113 84 117 99 86 117 99 86 112 96 108 111 119 127 145 140 145 166 156 164 166 176 200
++185 202 202 194 199 226 185 202 202 194 199 226 166 176 200 194 199 226 185 202 202 194 199 226
++194 199 226 185 202 202 194 199 226 185 202 202 194 199 226 188 180 202 166 174 181 150 147 171
++148 160 159 150 147 171 150 168 183 129 144 153 111 119 127 75 81 82 46 59 71 59 69 70
++59 69 70 75 81 82 60 81 83 78 98 90 77 90 100 78 98 90 77 90 100 94 105 108
++98 121 131 78 98 90 35 47 50 12 18 20 7 12 13 14 16 17 22 25 24 22 25 24
++23 18 22 33 30 30 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 26 24 32
++22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 26 30 28
++23 20 24 22 25 24 22 25 24 26 24 32 22 25 24 26 24 32 26 30 28 26 30 28
++26 24 32 26 30 28 26 24 32 26 24 32 26 24 32 26 30 28 30 30 34 33 30 30
++30 30 34 33 30 30 26 30 28 30 30 34 36 35 37 36 35 37 36 35 37 42 41 42
++48 50 48 59 55 55 65 63 61 75 81 76 75 72 67 88 83 74 75 81 76 88 83 74
++75 81 76 88 83 74 75 81 82 88 83 74 88 83 88 75 81 76 88 83 74 75 81 76
++75 81 76 75 81 76 75 81 76 75 81 76 75 81 69 75 81 69 75 72 67 75 72 67
++75 72 67 75 72 67 59 69 70 65 63 61 75 72 67 75 72 67 59 69 70 75 72 67
++65 63 61 75 72 67 59 69 70 75 77 62 65 63 61 75 73 58 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 75 72 67 65 63 61 59 79 61 65 63 61 59 69 70
++65 63 61 59 69 70 59 69 70 75 72 67 59 69 70 75 72 67 59 69 70 75 72 67
++59 79 61 65 63 61 53 63 61 50 61 48 47 49 42 42 47 42 42 47 42 42 47 42
++35 46 43 32 39 24 42 47 42 50 61 48 64 70 48 59 79 61 51 73 47 64 70 48
++50 61 48 50 61 48 50 61 48 50 61 48 50 61 48 50 61 48 50 61 48 50 61 48
++50 61 48 50 61 48 50 61 48 52 55 48 50 61 48 50 61 48 50 61 48 47 49 42
++50 61 48 50 61 48 50 61 48 47 49 42 33 39 38 29 35 19 26 25 15 29 35 19
++29 35 19 53 35 37 32 39 24 32 39 24 32 39 24 47 44 42 47 47 21 60 49 42
++50 61 48 63 55 45 55 55 48 64 70 48 63 55 51 65 63 61 65 63 61 75 73 58
++65 63 61 75 77 62 65 63 61 75 77 62 59 69 70 75 72 67 65 63 61 65 63 61
++65 63 61 64 70 48 59 55 55 55 55 48 54 57 61 52 55 48 45 57 61 48 50 48
++45 57 61 48 50 48 45 57 61 48 50 48 43 42 50 42 47 42 43 42 50 42 47 42
++33 39 38 42 41 42 33 39 38 42 41 42 42 41 42 42 47 42 47 44 42 47 49 42
++48 44 48 48 50 48 48 50 48 53 46 48 55 55 48 55 55 48 55 55 48 55 55 48
++59 55 55 59 55 55 59 55 55 55 55 48 59 55 55 63 55 51 59 55 55 64 70 48
++65 63 61 65 63 61 75 73 58 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++59 57 61 64 70 48 53 63 61 59 55 55 59 55 55 53 63 61 59 55 55 53 63 61
++50 61 48 59 55 55 55 55 48 53 63 61 59 55 55 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 59 69 70 59 79 61 75 72 67 59 69 70
++75 72 67 59 69 70 75 72 67 65 63 61 75 73 58 65 63 61 65 63 61 59 57 61
++65 63 61 53 63 61 59 55 55 59 55 55 59 55 55 52 55 48 59 55 55 55 55 48
++53 46 48 52 55 48 55 55 48 53 46 48 52 55 48 53 46 48 52 55 48 53 46 48
++52 55 48 53 46 48 52 55 48 48 50 48 48 50 48 47 49 42 47 44 42 47 49 42
++47 44 42 47 44 42 47 44 42 32 39 24 42 41 42 36 35 37 42 38 42 36 35 37
++
++101 74 26 120 63 71 120 63 71 88 44 51 101 74 26 102 33 26 88 44 51 88 30 18
++88 30 18 76 18 19 88 30 18 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 102 33 26 76 18 19 76 18 19 102 33 26 76 18 19
++76 18 19 102 33 26 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 88 30 18
++102 33 26 76 18 19 102 33 26 76 44 53 88 44 51 88 44 51 76 44 53 76 44 53
++76 44 53 75 56 53 75 56 53 75 56 53 75 59 67 88 66 70 88 66 70 101 83 74
++101 83 74 101 83 74 117 99 86 117 114 76 117 99 86 117 99 86 168 102 88 117 114 76
++168 102 88 117 114 76 168 102 88 117 99 86 117 112 45 120 63 71 117 114 76 120 63 71
++88 73 62 88 73 62 75 56 53 75 73 58 63 55 45 51 49 42 47 39 42 32 39 24
++36 35 37 36 35 37 42 41 42 35 46 43 48 50 48 48 50 48 45 57 61 54 57 61
++54 57 61 59 55 55 53 63 61 59 55 55 65 63 61 65 63 61 75 72 67 59 69 70
++75 72 67 75 72 67 59 69 70 75 77 62 65 63 61 75 77 62 65 63 61 75 73 58
++65 63 61 65 63 61 64 70 48 65 63 61 64 70 48 59 55 55 64 70 48 59 55 55
++65 63 61 64 70 48 59 57 61 59 57 61 64 70 48 59 55 55 53 63 61 55 55 48
++59 55 55 53 63 61 55 55 48 53 63 61 59 55 55 59 55 55 53 63 61 59 57 61
++59 55 55 53 63 61 65 55 54 53 63 61 65 63 61 65 63 61 53 63 61 63 55 51
++53 63 61 63 55 51 53 63 61 63 55 51 63 55 51 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 55 55 48 55 55 48 55 55 48 48 50 48 52 55 48 48 50 48
++48 50 48 48 50 48 48 50 48 42 47 42 35 46 43 42 41 42 42 41 42 42 47 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 47 42 42 47 42 48 50 48 48 50 48
++52 55 48 48 50 48 53 46 48 52 55 48 53 46 48 52 55 48 52 55 48 52 55 48
++52 55 48 55 55 48 55 55 48 55 55 48 55 55 48 59 55 55 59 55 55 63 55 51
++64 70 48 65 55 54 64 70 48 65 55 54 65 63 61 63 55 51 64 70 48 65 55 54
++65 63 61 65 55 54 65 63 61 64 70 48 75 63 62 65 63 61 75 56 53 65 63 61
++75 63 62 75 63 62 75 73 58 65 63 61 75 73 58 65 63 61 75 73 58 65 63 61
++75 63 62 75 72 67 65 63 61 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 63 59 71 75 72 67 63 59 71 75 72 67
++59 69 70 75 63 62 59 69 70 63 59 71 53 63 61 65 63 61 53 63 61 53 63 61
++59 57 61 53 63 61 54 57 61 48 50 48 45 57 61 43 42 50 35 47 50 42 41 42
++34 40 43 34 40 43 37 35 43 34 40 43 37 35 43 34 40 43 42 41 42 43 42 50
++43 42 50 48 50 48 48 50 48 54 57 61 52 55 48 59 55 55 59 55 55 59 57 61
++65 63 61 65 63 61 65 63 61 75 59 67 65 63 61 75 59 67 75 63 62 75 72 67
++75 72 67 75 59 67 75 72 67 75 72 67 75 72 67 65 63 61 48 50 48 48 44 48
++54 57 61 54 57 61 35 47 50 25 30 29 22 25 24 26 24 32 31 35 35 36 35 37
++34 40 43 42 38 42 31 35 35 28 30 35 23 30 35 28 30 35 34 40 43 43 42 50
++42 41 42 28 35 38 26 24 32 23 20 24 22 25 24 26 24 32 30 30 34 36 35 37
++33 39 38 36 35 37 30 30 34 30 30 34 30 30 34 31 35 35 33 30 36 30 30 34
++25 30 29 22 25 24 22 23 31 26 24 32 26 30 28 30 30 34 26 30 28 26 24 32
++26 30 28 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24
++22 23 31 22 25 24 22 25 24 25 30 29 26 24 32 22 25 24 26 30 28 30 30 34
++30 30 34 26 30 28 26 24 32 26 30 28 25 30 29 30 30 34 30 30 34 31 35 35
++36 35 37 36 35 37 31 35 35 31 35 35 31 35 35 31 35 35 33 39 38 34 40 43
++33 39 38 34 40 43 28 30 35 22 25 24 17 12 17 17 12 17 17 12 17 14 16 17
++23 18 22 15 22 17 14 16 17 14 16 17 14 16 17 7 12 13 7 12 13 3 4 9
++7 12 13 23 18 22 36 35 37 48 50 48 54 57 61 48 50 48 48 50 48 48 50 48
++34 40 43 31 35 35 28 30 35 33 39 38 45 57 61 59 69 70 59 69 70 65 63 61
++54 57 61 54 57 61 45 57 61 34 40 43 28 30 35 25 30 29 33 39 38 48 50 48
++54 57 61 54 57 61 43 42 50 34 40 43 28 35 38 28 35 38 12 18 30 45 57 61
++150 144 154 208 221 247 240 251 247 231 239 247 221 238 247 221 238 247 208 221 247 208 221 247
++208 221 247 201 216 228 208 221 247 201 216 228 208 221 247 221 238 247 221 238 247 221 238 247
++221 238 247 208 221 247 221 238 247 221 238 247 221 238 247 208 221 247 208 221 247 201 216 228
++201 216 228 208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 194 199 226 194 199 226
++194 199 226 194 199 226 194 199 226 208 221 247 194 199 226 194 199 226 194 199 226 194 199 226
++201 216 228 194 199 226 194 199 226 194 199 226 185 202 202 194 199 226 194 199 226 201 216 228
++208 221 247 208 221 247 201 216 228 194 199 226 194 199 226 185 202 202 166 176 200 194 199 226
++194 199 226 194 199 226 194 199 226 166 176 200 166 176 200 166 176 200 150 168 183 131 144 168
++131 144 168 150 147 171 150 168 183 166 176 200 166 176 200 185 202 202 194 199 226 201 216 228
++188 180 202 166 156 164 111 119 127 112 96 108 112 123 108 138 126 108 138 102 108 138 102 108
++117 99 86 112 123 108 112 96 108 111 119 127 145 140 145 166 174 181 188 180 202 185 202 202
++194 199 226 188 180 202 194 199 226 194 199 226 194 199 226 185 202 202 194 199 226 194 199 226
++185 202 202 194 199 226 194 199 226 194 199 226 185 202 202 166 176 200 150 168 183 150 147 171
++150 147 171 150 147 171 166 174 181 122 134 144 77 90 100 59 69 70 59 69 70 59 69 70
++60 81 83 60 81 83 75 81 82 77 90 100 77 90 100 94 105 108 94 105 108 77 91 115
++95 119 107 77 91 115 59 69 70 23 30 35 7 12 13 15 22 17 23 20 24 23 18 22
++26 25 15 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 33 30 30 23 20 24
++22 25 24 23 20 24 23 20 24 22 25 24 26 30 28 23 20 24 26 30 28 26 24 32
++26 30 28 33 30 30 26 30 28 26 30 28 26 24 32 26 24 32 26 24 32 30 30 34
++26 30 28 30 30 34 26 30 28 33 30 32 31 35 35 36 35 37 36 35 37 42 41 42
++48 44 48 59 55 55 65 63 61 75 81 76 75 72 67 75 81 76 88 83 74 75 81 76
++88 83 74 75 81 76 88 83 74 88 83 88 88 83 74 88 83 74 75 81 76 88 83 74
++75 81 76 88 83 74 75 81 76 75 72 67 75 81 76 75 72 67 75 72 67 75 72 67
++75 72 67 59 69 70 75 73 58 75 72 67 75 72 67 75 72 67 75 72 67 65 63 61
++75 72 67 65 63 61 75 77 62 65 63 61 65 63 61 65 63 61 65 63 61 75 72 67
++65 63 61 75 72 67 65 63 61 59 69 70 65 63 61 59 69 70 75 72 67 59 69 70
++59 79 61 75 72 67 59 69 70 59 69 70 60 82 70 59 69 70 59 69 70 59 69 70
++75 81 76 75 72 67 59 69 70 75 73 58 65 63 61 65 63 61 64 70 48 64 70 48
++47 47 21 32 39 24 32 39 24 42 47 42 51 73 47 50 61 48 50 61 48 50 61 48
++50 61 48 50 61 48 50 61 48 50 61 48 50 61 48 47 49 42 49 74 23 43 55 48
++47 49 42 50 61 48 47 49 42 47 49 42 47 47 21 43 55 48 49 74 23 43 55 48
++43 55 48 47 49 42 43 55 48 49 74 23 42 47 42 32 39 24 23 31 15 22 25 24
++32 39 24 32 39 24 53 35 37 47 47 21 47 44 42 51 49 42 51 49 42 50 61 48
++55 55 48 55 55 48 50 61 48 59 55 55 65 63 61 65 63 61 65 63 61 65 63 61
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 65 63 61 75 77 62 65 63 61
++65 63 61 65 63 61 53 63 61 59 55 55 59 55 55 52 55 48 48 50 48 45 57 61
++48 44 48 43 42 50 43 42 50 45 57 61 48 50 48 48 50 48 43 42 50 42 47 42
++42 41 42 33 39 38 42 47 42 42 41 42 42 47 42 47 44 42 47 49 42 48 50 48
++51 49 42 48 50 48 55 55 48 55 55 48 55 55 48 59 55 55 55 55 48 59 55 55
++59 55 55 50 61 48 63 55 51 59 55 55 59 55 55 64 70 48 65 63 61 65 63 61
++65 63 61 65 63 61 75 72 67 65 63 61 75 73 58 65 63 61 65 63 61 64 70 48
++65 63 61 59 57 61 65 63 61 50 61 48 65 63 61 55 55 48 63 55 51 59 55 55
++59 55 55 50 61 48 65 63 61 63 55 51 65 63 61 64 70 48 65 63 61 65 63 61
++75 73 58 65 63 61 75 72 67 59 69 70 75 73 58 59 69 70 59 69 70 59 79 61
++75 72 67 59 69 70 59 79 61 59 69 70 65 63 61 59 79 61 65 63 61 65 63 61
++65 63 61 63 55 51 64 70 48 59 55 55 52 55 48 55 55 48 52 55 48 55 55 48
++55 55 48 55 55 48 55 55 48 55 55 48 52 55 48 53 46 48 52 55 48 52 55 48
++52 55 48 51 49 42 48 50 48 51 49 42 51 49 42 47 49 42 47 44 42 47 44 42
++47 49 42 47 44 42 42 41 42 42 41 42 36 35 37 36 35 37 42 41 42 36 35 37
++
++120 63 71 101 74 26 120 63 71 122 49 24 88 44 51 88 44 51 102 33 26 76 46 20
++88 30 18 76 44 53 88 30 18 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26
++76 18 19 76 18 19 76 18 19 76 18 19 102 33 26 76 18 19 76 18 19 102 33 26
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 102 33 26 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26
++76 18 19 76 18 19 102 33 26 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 88 44 51 76 18 19 88 30 18 76 44 53 88 30 18 76 44 53
++76 44 53 76 44 53 75 56 53 75 56 53 75 63 62 88 66 70 88 73 62 88 73 62
++101 83 74 101 83 74 101 83 74 117 99 86 120 63 71 117 99 86 117 99 86 117 114 76
++117 99 86 117 99 86 168 102 88 117 99 86 168 102 88 117 114 76 117 99 86 101 83 74
++101 83 74 88 73 62 88 73 62 63 55 45 63 55 45 60 49 42 42 41 42 53 35 37
++32 39 24 36 35 37 33 39 38 34 40 43 43 42 50 43 55 48 48 50 48 43 55 48
++54 57 61 50 61 48 54 57 61 53 63 61 65 63 61 59 79 61 65 63 61 75 72 67
++75 72 67 75 72 67 75 72 67 65 63 61 75 72 67 65 63 61 75 73 58 64 70 48
++65 63 61 64 70 48 65 63 61 64 70 48 59 55 55 64 70 48 65 63 61 64 70 48
++63 55 51 59 57 61 64 70 48 59 55 55 54 57 61 64 70 48 63 55 51 50 61 48
++53 63 61 59 55 55 59 55 55 59 55 55 50 61 48 53 63 61 53 63 61 63 55 51
++53 63 61 59 55 55 59 55 55 65 63 61 59 57 61 63 55 51 65 63 61 59 57 61
++64 70 48 59 55 55 63 55 51 59 55 55 59 55 55 59 55 55 63 55 51 50 61 48
++59 55 55 55 55 48 59 55 55 52 55 48 59 55 55 52 55 48 48 50 48 48 50 48
++48 50 48 48 50 48 43 42 50 42 41 42 35 46 43 42 41 42 42 41 42 34 40 43
++42 41 42 42 47 42 42 47 42 42 47 42 42 47 42 48 50 48 48 50 48 48 50 48
++53 46 48 52 55 48 52 55 48 53 46 48 52 55 48 52 55 48 52 55 48 51 49 42
++55 55 48 55 55 48 55 55 48 63 55 51 55 55 48 64 70 48 59 55 55 64 70 48
++65 55 54 65 55 54 64 70 48 63 55 51 64 70 48 65 55 54 65 55 54 64 70 48
++65 55 54 64 70 48 65 55 54 65 63 61 75 56 53 65 63 61 75 73 58 65 63 61
++75 73 58 65 63 61 75 63 62 65 63 61 75 63 62 75 73 58 75 63 62 75 73 58
++75 63 62 75 63 62 75 72 67 65 63 61 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 64 82 75 72 67 75 72 67 75 72 67 75 72 67 59 69 70
++75 72 67 59 69 70 75 72 67 59 69 70 59 69 70 59 69 70 65 63 61 59 69 70
++53 63 61 54 57 61 54 57 61 45 57 61 48 50 48 43 55 48 43 42 50 43 42 50
++35 47 50 43 42 50 34 40 43 34 40 43 34 40 43 42 38 42 34 40 43 42 41 42
++42 47 42 43 42 50 48 44 48 48 50 48 48 50 48 54 57 61 55 55 48 59 55 55
++59 55 55 59 57 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 75 63 62
++75 63 62 75 72 67 65 63 61 75 72 67 75 72 67 65 63 61 47 49 42 36 35 37
++42 41 42 42 41 42 34 40 43 26 24 32 22 25 24 26 30 28 33 30 32 34 40 43
++42 41 42 34 40 43 33 30 36 28 30 35 28 30 35 37 35 43 42 41 42 34 40 43
++33 39 38 30 30 34 22 23 31 23 20 24 22 25 24 25 30 29 31 35 35 36 35 37
++36 35 37 31 35 35 30 30 34 30 30 34 31 35 35 36 35 37 30 30 34 26 30 28
++22 25 24 26 24 32 26 30 28 26 30 28 26 24 32 26 30 28 26 24 32 26 30 28
++26 24 32 26 30 28 26 24 32 22 25 24 26 24 32 22 25 24 22 23 31 22 25 24
++22 25 24 22 23 31 22 25 24 26 24 32 26 30 28 26 24 32 26 30 28 30 30 34
++26 30 28 30 30 34 26 30 28 30 30 34 30 30 34 30 30 34 30 30 34 36 35 37
++36 35 37 36 35 37 36 35 37 30 30 34 30 30 34 30 30 34 31 35 35 33 39 38
++31 35 35 33 39 38 28 30 35 23 20 24 14 16 17 17 12 17 17 12 17 14 16 17
++14 16 17 14 16 17 23 18 22 14 16 17 14 16 17 14 16 17 17 12 17 7 12 13
++3 4 9 3 4 9 14 16 17 26 24 32 36 35 37 48 50 48 54 57 61 45 57 61
++48 50 48 42 41 42 28 35 38 37 35 43 59 55 55 59 69 70 75 81 76 59 69 70
++59 57 61 45 57 61 43 42 50 28 35 38 22 23 31 22 23 31 34 40 43 54 57 61
++54 57 61 45 57 61 48 50 48 42 47 42 33 30 36 12 18 30 12 18 30 60 81 83
++166 176 200 231 239 247 240 251 247 221 238 247 208 221 247 208 221 247 208 221 247 208 221 247
++208 221 247 208 221 247 194 199 226 208 221 247 208 221 247 221 238 247 221 238 247 221 238 247
++208 221 247 208 221 247 208 221 247 221 238 247 208 221 247 208 221 247 194 199 226 194 199 226
++194 199 226 208 221 247 208 221 247 208 221 247 208 221 247 194 199 226 194 199 226 194 199 226
++194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 201 216 228 194 199 226
++194 199 226 194 199 226 194 199 226 194 199 226 201 216 228 208 221 247 208 221 247 208 221 247
++194 199 226 194 199 226 185 202 202 166 176 200 166 176 200 166 176 200 194 199 226 166 176 200
++194 199 226 166 176 200 194 199 226 194 199 226 194 199 226 166 176 200 166 176 200 166 176 200
++166 176 200 150 168 183 150 168 183 150 168 183 150 168 183 166 176 200 194 199 226 194 199 226
++201 216 228 188 180 202 166 156 164 138 126 108 117 99 86 112 96 108 138 126 108 112 123 108
++117 99 86 112 96 108 138 126 108 145 140 145 166 174 181 188 180 202 188 180 202 194 199 226
++194 199 226 194 199 226 194 199 226 185 202 202 194 199 226 194 199 226 185 202 202 194 199 226
++194 199 226 194 199 226 188 180 202 185 202 202 188 180 202 166 174 181 150 147 171 150 147 171
++166 156 164 150 168 183 150 147 171 111 119 127 75 81 90 59 69 70 46 59 71 60 81 83
++59 69 70 60 81 83 60 81 83 78 98 90 78 98 90 77 90 100 77 91 115 95 119 107
++95 108 128 95 119 107 60 81 83 35 46 43 7 12 13 14 16 17 14 16 17 15 22 17
++23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 26 24 32 23 20 24
++26 30 28 23 20 24 26 30 28 23 20 24 26 24 32 26 25 15 23 20 24 22 25 24
++26 24 32 22 25 24 22 25 24 23 20 24 22 25 24 26 24 32 22 25 24 26 24 32
++22 25 24 26 24 32 26 24 32 26 30 28 26 24 32 26 30 28 26 24 32 30 30 34
++30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 31 35 35 42 38 42 34 40 43
++42 41 42 52 55 48 65 63 61 75 72 67 75 81 76 88 83 74 75 81 76 88 83 74
++75 81 76 88 83 74 88 83 74 88 83 88 75 81 82 88 83 88 88 83 74 75 81 82
++88 83 74 75 81 76 75 81 76 75 81 76 75 72 67 75 81 69 75 72 67 75 72 67
++75 77 62 65 63 61 75 72 67 75 72 67 59 69 70 75 72 67 75 72 67 65 63 61
++75 73 58 59 69 70 75 72 67 65 63 61 75 72 67 59 79 61 65 63 61 75 72 67
++65 63 61 65 63 61 75 72 67 65 63 61 65 63 61 59 69 70 65 63 61 59 69 70
++65 63 61 59 69 70 75 72 67 59 69 70 59 69 70 60 82 70 59 69 70 75 81 76
++59 69 70 59 69 70 75 72 67 65 63 61 75 72 67 75 81 69 75 81 69 75 73 58
++50 61 48 47 47 21 32 39 24 32 39 24 47 47 21 50 61 48 50 61 48 51 73 47
++50 61 48 43 55 48 47 49 42 42 47 42 49 74 23 43 55 48 47 49 42 43 55 48
++49 74 23 42 47 42 49 74 23 35 46 43 49 74 23 42 47 42 42 47 42 47 49 42
++42 47 42 49 74 23 42 47 42 35 46 43 33 39 38 29 35 19 23 31 15 29 35 19
++33 30 30 47 47 21 32 39 24 42 47 42 51 49 42 51 49 42 52 55 48 55 55 48
++50 61 48 59 55 55 64 70 48 59 57 61 64 70 48 65 55 54 65 63 61 75 73 58
++65 63 61 75 72 67 65 63 61 75 72 67 65 63 61 75 72 67 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 50 61 48 59 55 55 54 57 61 52 55 48 48 50 48
++45 57 61 48 50 48 45 57 61 48 50 48 48 50 48 43 42 50 43 55 48 42 47 42
++42 41 42 35 46 43 42 41 42 42 41 42 42 47 42 42 47 42 47 44 42 47 44 42
++48 50 48 52 55 48 53 46 48 55 55 48 55 55 48 55 55 48 59 55 55 50 61 48
++59 55 55 59 55 55 59 55 55 64 70 48 59 55 55 64 70 48 65 63 61 65 63 61
++75 73 58 65 63 61 75 72 67 65 63 61 65 63 61 59 79 61 65 63 61 59 57 61
++65 63 61 59 55 55 64 70 48 59 55 55 59 57 61 64 70 48 53 63 61 59 55 55
++50 61 48 59 55 55 59 55 55 64 70 48 53 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 59 79 61 65 63 61 75 72 67 65 63 61 60 82 70 59 69 70 75 72 67
++59 69 70 75 72 67 75 72 67 75 77 62 65 63 61 75 72 67 65 63 61 65 63 61
++65 63 61 65 63 61 53 63 61 52 55 48 59 55 55 55 55 48 55 55 48 55 55 48
++53 46 48 55 55 48 55 55 48 59 55 55 55 55 48 55 55 48 53 46 48 52 55 48
++53 46 48 55 55 48 48 50 48 51 49 42 48 50 48 47 49 42 48 50 48 47 49 42
++47 44 42 42 41 42 42 47 42 36 35 37 47 39 42 36 35 37 42 38 42 36 35 37
++
++120 63 71 120 63 71 117 112 45 88 44 51 101 74 26 88 44 51 102 33 26 88 44 51
++88 30 18 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 102 33 26 76 18 19 102 33 26 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26 76 18 19
++102 33 26 88 44 51 76 18 19 88 44 51 88 44 51 88 44 51 76 44 53 76 44 53
++76 44 53 76 44 53 75 56 53 65 57 61 75 63 62 75 63 62 88 66 70 88 83 74
++101 83 74 101 83 74 101 83 74 101 83 74 117 114 76 117 114 76 168 102 88 117 99 86
++168 102 88 117 114 76 117 99 86 168 102 88 101 83 74 117 112 45 120 63 71 117 112 45
++120 63 71 88 73 62 75 56 53 75 56 53 63 55 45 51 49 42 47 44 42 36 35 37
++36 35 37 31 35 35 36 35 37 33 39 38 42 41 42 35 47 50 48 50 48 48 50 48
++45 57 61 52 55 48 54 57 61 53 63 61 65 63 61 65 63 61 65 63 61 59 79 61
++65 63 61 59 69 70 75 72 67 75 72 67 59 79 61 65 63 61 75 73 58 65 63 61
++65 63 61 64 70 48 65 55 54 65 63 61 64 70 48 65 63 61 63 55 51 65 63 61
++64 70 48 65 63 61 59 55 55 65 63 61 63 55 51 53 63 61 50 61 48 59 55 55
++59 55 55 53 63 61 50 61 48 59 55 55 53 63 61 59 55 55 59 55 55 59 55 55
++59 55 55 53 63 61 59 55 55 65 63 61 59 55 55 65 63 61 59 55 55 59 55 55
++59 55 55 59 55 55 64 70 48 59 55 55 65 55 54 59 55 55 55 55 48 59 55 55
++55 55 48 55 55 48 55 55 48 55 55 48 48 50 48 48 50 48 53 46 48 48 50 48
++48 50 48 48 50 48 42 47 42 42 47 42 35 46 43 42 41 42 42 41 42 42 47 42
++42 41 42 42 47 42 48 44 48 42 47 42 48 44 48 48 50 48 48 44 48 48 50 48
++48 50 48 48 50 48 59 55 55 52 55 48 55 55 48 52 55 48 52 55 48 55 55 48
++55 55 48 63 55 51 64 70 48 59 55 55 64 70 48 55 55 48 63 55 51 65 63 61
++63 55 51 64 70 48 65 55 54 65 63 61 63 55 51 64 70 48 65 55 54 65 63 61
++65 55 54 65 63 61 65 55 54 64 70 48 65 55 54 65 63 61 65 63 61 75 63 62
++65 63 61 75 73 58 65 63 61 75 73 58 75 63 62 65 63 61 75 63 62 65 63 61
++75 72 67 65 63 61 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 81 76
++75 72 67 75 72 67 75 81 76 59 69 70 75 72 67 75 64 82 59 69 70 75 72 67
++75 72 67 59 69 70 75 72 67 59 69 70 75 72 67 59 69 70 59 69 70 65 63 61
++53 63 61 59 57 61 54 57 61 54 57 61 48 50 48 45 57 61 43 42 50 35 47 50
++43 42 50 43 42 50 35 46 43 43 42 50 34 40 43 43 42 50 42 38 42 34 40 43
++43 42 50 43 42 50 48 44 48 48 50 48 48 50 48 48 50 48 59 55 55 52 55 48
++59 55 55 59 55 55 59 57 61 65 55 54 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 75 63 62 75 63 62 59 69 70 75 72 67 65 63 61 47 49 42 33 30 32
++31 35 35 33 39 38 28 35 38 25 30 29 22 23 31 26 30 28 33 30 36 34 40 43
++42 41 42 34 40 43 33 39 38 33 39 38 34 40 43 43 42 50 35 47 50 33 39 38
++23 30 35 26 24 32 22 25 24 22 23 31 25 30 29 30 30 34 31 35 35 36 35 37
++36 35 37 30 30 34 30 30 34 30 30 34 31 35 35 31 35 35 30 30 34 25 30 29
++22 25 24 22 25 24 26 24 32 26 30 28 26 30 28 26 30 28 26 30 28 26 24 32
++26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 22 25 24 22 25 24 26 24 32
++25 30 29 26 30 28 26 24 32 26 30 28 26 30 28 26 24 32 26 30 28 30 30 34
++26 30 28 30 30 34 30 30 34 31 35 35 31 35 35 30 30 34 31 35 35 36 35 37
++33 39 38 36 35 37 31 35 35 30 30 34 31 35 35 30 30 34 31 35 35 28 35 38
++31 35 35 31 35 35 25 30 29 22 25 24 14 16 17 14 16 17 17 12 17 14 16 17
++23 18 22 14 16 17 23 18 22 12 18 20 23 18 22 23 20 24 23 18 22 14 16 17
++7 12 13 3 4 9 3 4 9 14 16 17 23 20 24 36 35 37 48 44 48 48 50 48
++48 50 48 43 42 50 35 46 43 42 41 42 54 57 61 59 69 70 75 81 76 59 69 70
++59 69 70 54 57 61 43 42 50 23 30 35 15 22 17 23 30 35 42 47 42 48 50 48
++34 40 43 31 35 35 31 35 35 22 23 31 12 18 30 12 18 30 63 59 71 129 144 153
++201 216 228 240 251 247 221 238 247 221 238 247 208 221 247 208 221 247 208 221 247 208 221 247
++194 199 226 194 199 226 208 221 247 208 221 247 208 221 247 221 238 247 221 238 247 208 221 247
++208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 201 216 228 194 199 226 194 199 226
++194 199 226 208 221 247 208 221 247 208 221 247 201 216 228 194 199 226 194 199 226 194 199 226
++194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226
++194 199 226 201 216 228 208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 201 216 228
++194 199 226 166 176 200 166 176 200 194 199 226 194 199 226 194 199 226 185 202 202 194 199 226
++194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226
++185 202 202 188 180 202 166 176 200 166 176 200 150 168 183 150 168 183 166 174 181 188 180 202
++194 199 226 201 216 228 185 202 202 166 156 164 122 134 144 112 96 108 112 123 108 138 102 108
++111 119 127 145 140 145 150 144 154 166 174 181 188 180 202 185 202 202 194 199 226 185 202 202
++194 199 226 185 202 202 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 185 202 202
++188 180 202 185 202 202 194 199 226 188 180 202 166 176 200 150 168 183 150 147 171 150 168 183
++150 168 183 166 156 164 129 144 153 94 105 108 46 59 71 59 69 70 59 69 70 59 69 70
++60 81 83 75 81 76 75 81 82 75 81 90 77 90 100 78 98 90 94 105 108 77 91 115
++95 119 107 95 108 128 77 90 100 45 57 61 12 18 20 12 18 20 14 16 17 23 18 22
++23 20 24 23 20 24 23 20 24 33 30 30 26 30 28 22 25 24 22 25 24 22 25 24
++26 24 32 22 25 24 22 25 24 22 25 24 23 20 24 23 20 24 22 25 24 33 30 30
++23 20 24 22 25 24 26 24 32 22 25 24 22 25 24 22 25 24 26 24 32 22 25 24
++26 30 28 26 30 28 26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 26 30 28
++26 30 28 33 30 32 26 30 28 26 30 28 33 30 32 36 35 37 37 35 43 42 41 42
++42 41 42 48 50 48 59 55 55 75 72 67 75 81 76 88 83 74 75 81 76 88 83 74
++88 83 74 75 81 76 88 83 74 88 83 74 88 83 88 88 83 74 88 83 88 88 83 74
++75 81 76 88 83 74 75 72 67 75 72 67 75 72 67 75 72 67 59 69 70 75 72 67
++65 63 61 75 72 67 59 79 61 75 72 67 75 72 67 65 63 61 75 72 67 65 63 61
++65 63 61 75 73 58 65 63 61 75 77 62 65 63 61 65 63 61 75 72 67 65 63 61
++75 72 67 59 69 70 65 63 61 59 69 70 75 72 67 65 63 61 59 79 61 65 63 61
++59 69 70 75 72 67 59 69 70 59 69 70 75 81 76 75 72 67 59 69 70 59 69 70
++75 72 67 59 69 70 59 69 70 59 69 70 75 72 67 75 72 67 75 72 67 75 81 69
++64 70 48 64 70 48 43 55 48 42 47 42 42 47 42 43 55 48 50 61 48 47 49 42
++49 74 23 47 49 42 49 74 23 42 47 42 42 47 42 42 47 42 49 74 23 35 46 43
++42 47 42 42 47 42 35 46 43 32 39 24 42 47 42 35 46 43 49 74 23 35 46 43
++42 47 42 35 46 43 32 39 24 32 39 24 32 39 24 32 39 24 26 30 28 32 39 24
++33 39 38 42 41 42 47 44 42 47 49 42 51 49 42 52 55 48 52 55 48 52 55 48
++55 55 48 59 55 55 53 63 61 59 55 55 65 63 61 65 63 61 65 63 61 75 63 62
++75 72 67 75 72 67 75 72 67 75 72 67 65 63 61 75 72 67 65 63 61 75 77 62
++53 63 61 65 63 61 53 63 61 59 55 55 59 55 55 48 50 48 54 57 61 48 50 48
++45 57 61 48 44 48 43 42 50 43 55 48 48 50 48 48 50 48 43 42 50 42 47 42
++42 47 42 35 46 43 42 47 42 42 41 42 42 47 42 42 41 42 47 44 42 48 50 48
++48 50 48 51 49 42 52 55 48 55 55 48 59 55 55 55 55 48 55 55 48 59 55 55
++59 55 55 64 70 48 59 57 61 59 57 61 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 75 72 67 65 63 61 75 77 62 65 63 61 65 63 61 65 63 61 64 70 48
++59 57 61 53 63 61 59 55 55 53 63 61 64 70 48 59 57 61 59 55 55 64 70 48
++59 55 55 53 63 61 65 63 61 53 63 61 65 63 61 65 63 61 65 63 61 64 70 48
++65 63 61 65 63 61 65 63 61 59 79 61 75 72 67 60 82 70 75 72 67 60 82 70
++75 81 76 59 69 70 75 81 69 59 69 70 75 72 67 59 69 70 65 63 61 59 69 70
++65 63 61 59 55 55 59 55 55 55 55 48 55 55 48 52 55 48 55 55 48 55 55 48
++59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 55 55 48 55 55 48
++55 55 48 52 55 48 53 46 48 48 50 48 51 49 42 47 49 42 47 44 42 48 50 48
++42 41 42 42 41 42 42 41 42 42 41 42 36 35 37 42 41 42 36 35 37 42 41 42
++
++117 112 45 120 63 71 101 74 26 120 63 71 88 44 51 101 74 26 88 44 51 76 46 20
++88 30 18 88 44 51 76 18 19 88 44 51 76 18 19 76 18 19 76 18 19 76 18 19
++88 44 51 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 102 33 26
++76 18 19 76 18 19 102 33 26 76 18 19 76 18 19 76 18 19 102 33 26 76 18 19
++76 18 19 102 33 26 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 102 33 26 76 18 19 102 33 26 76 18 19 76 18 19 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 88 44 51 76 18 19 76 44 53 88 30 18 76 44 53
++76 44 53 76 44 53 65 55 54 75 56 53 75 63 62 75 72 67 75 72 67 88 73 62
++88 73 62 101 83 74 101 83 74 101 83 74 117 99 86 120 63 71 117 114 76 117 99 86
++117 114 76 168 102 88 117 99 86 117 114 76 168 102 88 120 63 71 117 99 86 101 83 74
++101 83 74 88 73 62 75 73 58 75 56 53 63 55 45 51 49 42 55 39 37 36 35 37
++32 39 24 31 35 35 31 35 35 33 39 38 35 46 43 43 42 50 48 50 48 48 50 48
++48 50 48 52 55 48 59 55 55 53 63 61 65 63 61 59 79 61 65 63 61 65 63 61
++65 63 61 75 72 67 59 79 61 65 63 61 75 72 67 65 63 61 75 73 58 65 63 61
++64 70 48 65 63 61 64 70 48 64 70 48 65 63 61 65 55 54 64 70 48 65 55 54
++64 70 48 65 63 61 64 70 48 59 55 55 64 70 48 59 55 55 64 70 48 59 55 55
++50 61 48 59 55 55 59 55 55 59 55 55 53 63 61 59 55 55 53 63 61 59 55 55
++59 55 55 65 63 61 59 55 55 59 55 55 59 55 55 53 63 61 59 55 55 65 63 61
++59 57 61 59 55 55 59 57 61 59 55 55 59 55 55 59 55 55 55 55 48 55 55 48
++55 55 48 55 55 48 59 55 55 55 55 48 52 55 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 44 48 42 47 42 43 42 50 42 41 42 35 46 43 42 41 42 35 46 43
++42 41 42 42 47 42 42 47 42 48 50 48 48 50 48 42 47 42 48 50 48 48 50 48
++52 55 48 52 55 48 52 55 48 55 55 48 59 55 55 55 55 48 55 55 48 59 55 55
++55 55 48 55 55 48 59 55 55 64 70 48 63 55 51 55 55 48 50 61 48 63 55 51
++65 63 61 65 57 61 64 70 48 63 55 51 65 63 61 65 55 54 65 63 61 65 55 54
++64 70 48 65 63 61 65 55 54 65 55 54 64 70 48 63 55 51 65 63 61 64 70 48
++75 73 58 65 63 61 75 63 62 65 63 61 65 63 61 75 63 62 75 73 58 65 63 61
++75 72 67 65 63 61 75 72 67 75 63 62 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 59 69 70
++75 72 67 75 72 67 59 69 70 75 72 67 63 59 71 75 72 67 63 59 71 59 69 70
++59 57 61 53 63 61 54 57 61 54 57 61 45 57 61 48 50 48 43 42 50 48 50 48
++43 42 50 35 47 50 43 42 50 34 40 43 34 40 43 42 41 42 42 41 42 42 41 42
++42 41 42 42 47 42 43 42 50 48 44 48 48 50 48 48 50 48 48 50 48 52 55 48
++53 63 61 59 55 55 63 55 51 59 57 61 65 55 54 63 55 51 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 75 77 62 65 63 61 47 44 42 26 30 28
++26 30 28 36 35 37 28 35 38 25 30 29 26 24 32 26 30 28 33 30 32 31 35 35
++33 39 38 31 35 35 33 39 38 43 42 50 45 57 61 43 55 48 42 41 42 28 30 35
++25 30 29 22 25 24 22 25 24 22 25 24 26 24 32 30 30 34 31 35 35 36 35 37
++31 35 35 31 35 35 30 30 34 30 30 34 30 30 34 30 30 34 26 30 28 26 24 32
++26 30 28 26 24 32 26 30 28 30 30 34 30 30 34 26 24 32 26 30 28 26 24 32
++26 30 28 22 25 24 26 24 32 26 30 28 26 30 28 26 24 32 26 24 32 26 30 28
++26 24 32 26 24 32 26 30 28 26 30 28 26 24 32 26 30 28 30 30 34 26 30 28
++30 30 34 26 30 28 30 30 34 30 30 34 33 30 36 31 35 35 31 35 35 31 35 35
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 31 35 35 31 35 35 31 35 35
++31 35 35 31 35 35 25 30 29 12 18 20 7 12 13 14 16 17 14 16 17 14 16 17
++14 16 17 12 18 20 23 18 22 23 18 22 15 22 17 23 20 24 22 25 24 23 18 22
++17 12 17 7 12 13 7 12 13 7 12 13 14 16 17 23 18 22 26 24 32 33 39 38
++35 47 50 48 50 48 42 47 42 35 47 50 48 50 48 63 59 71 75 81 76 75 72 67
++59 69 70 63 59 71 43 42 50 25 30 29 15 22 17 31 35 35 33 39 38 26 30 28
++14 16 17 7 12 13 7 12 13 3 4 9 23 30 35 75 81 90 131 144 168 194 199 226
++221 238 247 221 238 247 208 221 247 208 221 247 208 221 247 201 216 228 208 221 247 201 216 228
++194 199 226 194 199 226 208 221 247 208 221 247 221 238 247 221 238 247 208 221 247 208 221 247
++208 221 247 208 221 247 194 199 226 201 216 228 194 199 226 194 199 226 194 199 226 194 199 226
++194 199 226 208 221 247 208 221 247 208 221 247 194 199 226 194 199 226 194 199 226 194 199 226
++194 199 226 194 199 226 185 202 202 194 199 226 166 176 200 185 202 202 194 199 226 194 199 226
++208 221 247 208 221 247 221 238 247 221 238 247 208 221 247 208 221 247 201 216 228 194 199 226
++194 199 226 208 221 247 208 221 247 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226
++194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 185 202 202 194 199 226
++194 199 226 194 199 226 194 199 226 166 176 200 150 168 183 150 147 171 150 168 183 166 176 200
++185 202 202 194 199 226 232 215 228 201 216 228 166 174 181 119 117 138 111 119 127 111 119 127
++145 140 145 148 160 159 166 176 200 188 180 202 185 202 202 194 199 226 194 199 226 194 199 226
++194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 185 202 202
++194 199 226 188 180 202 185 202 202 188 180 202 166 174 181 150 168 183 150 147 171 148 160 159
++166 156 164 150 168 183 111 119 127 75 81 82 46 59 71 59 69 70 60 81 83 59 69 70
++59 69 70 60 81 83 60 81 83 75 81 90 78 98 90 77 90 100 94 105 108 77 91 115
++94 105 108 95 108 128 95 119 107 59 69 70 23 30 35 12 18 20 14 16 17 22 25 24
++23 20 24 23 20 24 23 20 24 26 30 28 26 24 32 26 24 32 23 20 24 22 25 24
++22 25 24 26 24 32 22 25 24 26 24 32 22 25 24 26 30 28 23 20 24 22 25 24
++26 24 32 22 25 24 22 25 24 26 24 32 23 20 24 26 24 32 22 25 24 22 25 24
++23 20 24 26 24 32 26 30 28 26 24 32 26 30 28 26 24 32 22 25 24 26 24 32
++26 30 28 33 30 30 30 30 34 30 30 34 30 30 34 33 30 36 36 35 37 42 38 42
++42 41 42 42 47 42 59 55 55 75 72 67 75 72 67 88 83 88 88 83 74 75 81 76
++88 83 74 88 83 74 88 83 88 87 99 72 88 83 74 90 98 89 88 83 74 75 81 82
++88 83 74 75 81 76 75 81 76 75 81 76 75 72 67 75 72 67 75 72 67 75 72 67
++65 63 61 65 63 61 75 72 67 65 63 61 65 63 61 75 72 67 65 63 61 75 72 67
++65 63 61 75 72 67 65 63 61 75 72 67 65 63 61 75 72 67 65 63 61 75 72 67
++65 63 61 75 73 58 59 69 70 65 63 61 65 63 61 59 69 70 65 63 61 59 79 61
++65 63 61 59 69 70 75 72 67 59 69 70 75 72 67 59 69 70 75 81 76 59 69 70
++59 69 70 75 81 76 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70
++75 72 67 59 79 61 75 77 62 64 70 48 64 70 48 50 61 48 50 61 48 50 61 48
++52 55 48 43 55 48 42 47 42 42 47 42 49 74 23 47 47 21 42 47 42 35 46 43
++49 74 23 43 55 48 47 47 21 43 55 48 49 74 23 47 47 21 35 46 43 35 46 43
++47 47 21 35 46 43 32 39 24 32 39 24 32 39 24 32 39 24 33 39 38 42 47 42
++42 47 42 47 49 42 47 49 42 47 49 42 47 49 42 51 49 42 52 55 48 55 55 48
++55 55 48 50 61 48 63 55 51 59 55 55 65 63 61 64 70 48 65 63 61 65 63 61
++65 63 61 75 73 58 59 69 70 75 72 67 75 72 67 65 63 61 75 77 62 65 63 61
++65 63 61 65 63 61 50 61 48 59 55 55 52 55 48 54 57 61 52 55 48 54 57 61
++48 50 48 48 50 48 43 55 48 48 50 48 35 47 50 48 50 48 43 55 48 35 47 50
++42 47 42 42 41 42 42 47 42 42 47 42 48 44 48 47 44 42 47 49 42 53 46 48
++48 50 48 53 46 48 55 55 48 55 55 48 55 55 48 59 55 55 59 55 55 50 61 48
++59 55 55 53 63 61 63 55 51 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++75 77 62 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++59 55 55 64 70 48 65 63 61 59 55 55 59 55 55 65 63 61 53 63 61 59 55 55
++53 63 61 59 55 55 64 70 48 65 63 61 65 63 61 65 63 61 59 79 61 65 63 61
++65 63 61 59 79 61 65 63 61 75 72 67 59 69 70 60 82 70 75 72 67 60 82 70
++75 72 67 75 81 76 75 72 67 60 82 70 75 72 67 59 69 70 75 72 67 75 72 67
++65 63 61 65 63 61 64 70 48 53 63 61 59 55 55 59 55 55 52 55 48 59 55 55
++55 55 48 59 55 55 55 55 48 59 55 55 59 55 55 55 55 48 59 55 55 55 55 48
++59 55 55 52 55 48 52 55 48 48 50 48 48 50 48 47 44 42 47 44 42 42 47 42
++47 44 42 47 44 42 42 47 42 42 41 42 42 47 42 36 35 37 42 41 42 36 35 37
++
++120 63 71 117 112 45 120 63 71 101 74 26 122 49 24 88 44 51 88 44 51 102 33 26
++76 44 53 88 30 18 76 18 19 88 44 51 76 18 19 88 44 51 76 18 19 88 44 51
++76 18 19 88 44 51 102 33 26 88 44 51 76 18 19 88 44 51 76 18 19 88 44 51
++76 18 19 102 33 26 76 18 19 102 33 26 102 33 26 76 18 19 102 33 26 76 18 19
++102 33 26 76 18 19 102 33 26 76 18 19 102 33 26 102 33 26 102 33 26 102 33 26
++76 18 19 102 33 26 76 18 19 102 33 26 76 18 19 102 33 26 76 18 19 102 33 26
++76 18 19 88 44 51 102 33 26 76 18 19 88 44 51 88 44 51 76 44 53 76 44 53
++76 44 53 76 44 53 65 55 54 65 57 61 75 56 53 75 63 62 88 66 70 75 72 67
++88 73 62 88 83 74 101 83 74 101 83 74 101 83 74 117 114 76 117 99 86 168 102 88
++117 99 86 168 102 88 117 112 45 168 102 88 101 83 74 117 114 76 120 63 71 117 112 45
++101 83 74 88 73 62 88 73 31 75 56 53 63 55 45 60 49 42 47 44 42 36 35 37
++33 39 38 31 35 35 31 35 35 33 39 38 42 41 42 42 47 42 43 42 50 43 55 48
++45 57 61 48 50 48 54 57 61 59 57 61 53 63 61 65 63 61 59 79 61 65 63 61
++75 72 67 59 69 70 75 63 62 75 72 67 65 63 61 75 73 58 65 63 61 75 73 58
++65 63 61 64 70 48 65 63 61 65 63 61 75 56 53 64 70 48 65 63 61 65 63 61
++64 70 48 63 55 51 65 63 61 65 63 61 59 55 55 64 70 48 59 55 55 59 55 55
++53 63 61 59 55 55 53 63 61 59 55 55 53 63 61 63 55 51 59 55 55 59 55 55
++50 61 48 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 53 63 61
++63 55 51 59 57 61 59 55 55 59 55 55 59 55 55 59 55 55 55 55 48 59 55 55
++55 55 48 55 55 48 55 55 48 52 55 48 53 46 48 48 50 48 47 44 42 48 50 48
++48 50 48 42 47 42 43 42 50 42 47 42 42 47 42 42 41 42 35 46 43 42 41 42
++42 47 42 43 42 50 42 47 42 48 44 48 48 50 48 48 50 48 48 50 48 48 50 48
++52 55 48 52 55 48 55 55 48 59 55 55 55 55 48 59 55 55 55 55 48 59 55 55
++64 70 48 55 55 48 64 70 48 59 55 55 64 70 48 59 55 55 63 55 51 64 70 48
++65 55 54 63 55 51 65 63 61 63 55 51 64 70 48 65 55 54 64 70 48 65 55 54
++65 55 54 65 55 54 65 63 61 63 55 51 65 55 54 65 63 61 64 70 48 65 63 61
++65 63 61 75 56 53 75 73 58 65 63 61 75 73 58 65 63 61 75 73 58 65 63 61
++65 63 61 75 72 67 65 63 61 75 72 67 75 72 67 75 63 62 75 72 67 75 81 76
++75 72 67 75 72 67 75 72 67 75 72 67 59 69 70 75 72 67 75 72 67 75 81 76
++75 81 76 59 69 70 75 72 67 75 72 67 59 69 70 75 72 67 59 69 70 65 63 61
++59 69 70 59 57 61 54 57 61 54 57 61 54 57 61 45 57 61 48 50 48 48 50 48
++35 47 50 48 44 48 43 42 50 42 47 42 35 47 50 42 41 42 42 41 42 42 41 42
++43 42 50 42 47 42 43 42 50 47 44 42 48 50 48 48 44 48 48 50 48 54 57 61
++52 55 48 59 55 55 59 55 55 59 55 55 65 63 61 65 55 54 65 63 61 63 55 51
++65 63 61 75 63 62 65 63 61 64 70 48 65 63 61 65 63 61 47 49 42 26 30 28
++23 20 24 28 30 35 28 35 38 25 30 29 22 23 31 33 30 30 33 30 36 31 35 35
++31 35 35 31 35 35 34 40 43 43 42 50 48 50 48 43 42 50 28 35 38 28 30 35
++22 23 31 22 25 24 23 20 24 25 30 29 26 30 28 30 30 34 31 35 35 36 35 37
++31 35 35 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 26 30 28 26 24 32
++26 30 28 30 30 34 30 30 34 26 30 28 26 30 28 26 24 32 26 30 28 26 30 28
++26 24 32 26 30 28 26 30 28 26 24 32 25 30 29 26 30 28 26 30 28 26 24 32
++26 30 28 26 30 28 26 24 32 26 30 28 26 30 28 30 30 34 26 30 28 30 30 34
++26 24 32 26 30 28 30 30 34 31 35 35 31 35 35 36 35 37 33 30 36 31 35 35
++36 35 37 33 39 38 36 35 37 33 39 38 36 35 37 36 35 37 31 35 35 28 30 35
++28 30 35 28 30 35 22 25 24 14 16 17 7 12 13 14 16 17 14 16 17 23 18 22
++14 16 17 23 18 22 14 16 17 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++23 20 24 14 16 17 14 16 17 17 12 17 17 12 17 17 12 17 14 16 17 23 20 24
++28 30 35 33 39 38 34 40 43 42 41 42 43 55 48 53 63 61 59 69 70 59 69 70
++59 69 70 59 57 61 48 50 48 23 30 35 22 25 24 33 39 38 25 30 29 7 12 13
++13 4 7 3 3 1 3 3 1 24 30 43 95 108 128 166 176 200 208 221 247 221 238 247
++208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 194 199 226 194 199 226
++194 199 226 208 221 247 208 221 247 208 221 247 221 238 247 221 238 247 208 221 247 208 221 247
++201 216 228 194 199 226 194 199 226 194 199 226 194 199 226 166 176 200 166 176 200 194 199 226
++194 199 226 208 221 247 201 216 228 194 199 226 194 199 226 166 176 200 194 199 226 166 176 200
++194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 201 216 228 201 216 228 208 221 247
++208 221 247 201 216 228 201 216 228 201 216 228 201 216 228 208 221 247 208 221 247 208 221 247
++208 221 247 208 221 247 208 221 247 201 216 228 201 216 228 194 199 226 194 199 226 201 216 228
++194 199 226 201 216 228 194 199 226 194 199 226 194 199 226 166 176 200 194 199 226 166 176 200
++185 202 202 166 176 200 194 199 226 194 199 226 166 176 200 166 174 181 150 168 183 148 160 159
++166 176 200 188 180 202 194 199 226 208 221 247 201 216 228 166 174 181 145 140 145 145 140 145
++166 156 164 166 176 200 185 202 202 194 199 226 194 199 226 194 199 226 194 199 226 201 216 228
++194 199 226 194 199 226 194 199 226 185 202 202 194 199 226 185 202 202 188 180 202 194 199 226
++166 176 200 194 199 226 166 176 200 188 180 202 166 174 181 150 147 171 148 160 159 150 168 183
++150 147 171 129 144 153 77 90 100 59 69 70 46 59 71 59 69 70 59 69 70 75 64 82
++60 82 70 75 81 82 75 81 82 78 98 90 75 81 90 78 98 90 77 90 100 94 105 108
++77 91 115 95 119 107 95 108 128 60 81 83 35 47 50 12 18 20 14 16 17 23 18 22
++23 18 22 22 24 13 23 18 22 22 25 24 22 25 24 23 20 24 22 25 24 26 24 32
++22 25 24 22 25 24 22 25 24 26 24 32 22 25 24 23 20 24 22 25 24 22 25 24
++22 25 24 22 25 24 23 20 24 26 24 32 23 20 24 22 25 24 23 20 24 23 20 24
++22 25 24 26 24 32 26 30 28 26 30 28 26 24 32 26 30 28 23 20 24 26 30 28
++33 30 30 33 30 30 33 30 32 33 30 32 30 30 34 31 35 35 36 35 37 42 38 42
++42 41 42 42 41 42 52 55 48 65 63 61 75 81 76 88 83 74 88 83 88 88 83 74
++88 83 88 87 99 72 88 83 88 88 83 74 88 83 88 88 83 74 75 81 82 88 83 74
++75 81 76 88 83 74 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 65 63 61
++75 72 67 65 63 61 75 72 67 65 63 61 75 72 67 65 63 61 75 73 58 65 63 61
++75 72 67 65 63 61 75 72 67 65 63 61 59 79 61 65 63 61 75 72 67 65 63 61
++75 72 67 65 63 61 59 69 70 65 63 61 65 63 61 59 69 70 75 72 67 59 69 70
++59 69 70 59 79 61 65 63 61 60 82 70 75 72 67 59 69 70 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 75 72 67 75 72 67 59 69 70 75 77 62
++59 69 70 75 81 69 75 77 62 59 79 61 65 63 61 64 70 48 64 70 48 50 61 48
++50 61 48 50 61 48 47 49 42 50 61 48 42 47 42 43 55 48 49 74 23 42 47 42
++42 47 42 49 74 23 35 46 43 49 74 23 35 46 43 35 46 43 47 47 21 35 46 43
++32 39 24 35 46 43 32 39 24 35 46 43 35 46 43 47 49 42 42 47 42 42 47 42
++42 47 42 42 47 42 47 49 42 48 50 48 47 49 42 48 50 48 53 46 48 55 55 48
++55 55 48 59 55 55 59 55 55 64 70 48 53 63 61 65 63 61 65 63 61 65 63 61
++75 73 58 65 63 61 75 72 67 75 72 67 65 63 61 75 72 67 65 63 61 65 63 61
++59 79 61 53 63 61 63 55 51 53 63 61 59 55 55 54 57 61 59 55 55 52 55 48
++45 57 61 48 50 48 45 57 61 48 50 48 48 50 48 43 55 48 43 42 50 48 50 48
++35 46 43 42 47 42 35 47 50 42 47 42 48 44 48 47 49 42 48 44 48 48 50 48
++52 55 48 48 50 48 55 55 48 59 55 55 55 55 48 59 55 55 59 55 55 59 55 55
++53 63 61 64 70 48 65 63 61 65 63 61 65 63 61 65 63 61 75 77 62 65 63 61
++59 69 70 65 63 61 75 77 62 65 63 61 65 63 61 65 63 61 65 63 61 53 63 61
++53 63 61 59 55 55 53 63 61 59 55 55 64 70 48 59 57 61 64 70 48 65 63 61
++65 63 61 65 63 61 53 63 61 65 63 61 65 63 61 65 63 61 65 63 61 59 79 61
++65 63 61 65 63 61 75 72 67 59 69 70 75 77 62 60 82 70 60 82 70 75 72 67
++60 82 70 75 81 76 75 81 76 75 72 67 75 72 67 59 69 70 75 72 67 59 69 70
++65 63 61 65 63 61 53 63 61 59 55 55 50 61 48 59 55 55 59 55 55 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 55 55 48 59 55 55 59 55 55 55 55 48
++59 55 55 48 50 48 48 50 48 53 46 48 47 49 42 48 44 48 47 44 42 47 44 42
++42 47 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 36 35 37 42 41 42
++
++117 112 45 120 63 71 120 63 71 88 73 62 101 60 73 101 74 26 88 44 51 88 44 51
++76 46 20 88 44 51 88 44 51 88 44 51 88 44 51 88 44 51 88 44 51 76 18 19
++88 44 51 88 44 51 88 44 51 88 44 51 88 44 51 88 44 51 88 44 51 88 44 51
++88 44 51 88 44 51 88 44 51 88 44 51 88 44 51 88 44 51 88 44 51 88 44 51
++88 44 51 88 44 51 88 44 51 88 44 51 88 44 51 88 44 51 76 18 19 88 44 51
++102 33 26 88 44 51 102 33 26 88 44 51 76 18 19 88 44 51 76 18 19 88 44 51
++88 44 51 76 18 19 88 44 51 76 44 53 76 18 19 88 44 51 59 36 42 76 44 53
++76 44 53 76 44 53 65 55 54 75 56 53 65 57 61 75 63 62 75 63 62 75 72 67
++75 81 69 88 73 62 101 83 74 101 83 74 101 83 74 101 83 74 117 99 86 117 99 86
++117 114 76 117 99 86 117 99 86 117 99 86 168 102 88 117 99 86 117 114 76 120 63 71
++101 83 74 88 73 62 88 73 62 75 56 53 63 55 51 60 49 42 51 49 42 36 35 37
++32 39 24 33 30 30 31 35 35 33 39 38 34 40 43 35 46 43 43 42 50 43 42 50
++48 50 48 45 57 61 52 55 48 54 57 61 64 70 48 53 63 61 65 63 61 65 63 61
++75 72 67 65 63 61 75 77 62 65 63 61 75 77 62 65 63 61 75 73 58 65 63 61
++75 73 58 75 73 58 65 63 61 64 70 48 64 70 48 65 63 61 65 55 54 64 70 48
++65 63 61 64 70 48 64 70 48 59 55 55 64 70 48 59 55 55 59 55 55 50 61 48
++59 55 55 63 55 51 50 61 48 59 55 55 63 55 51 53 63 61 59 55 55 65 63 61
++59 55 55 59 55 55 55 55 48 53 63 61 63 55 51 53 63 61 59 55 55 59 55 55
++59 55 55 50 61 48 59 55 55 59 55 55 59 55 55 59 55 55 55 55 48 55 55 48
++55 55 48 55 55 48 53 46 48 55 55 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 42 47 42 42 47 42 35 46 43 42 47 42 35 46 43 35 46 43
++42 47 42 42 47 42 42 47 42 48 50 48 42 47 42 43 42 50 48 50 48 52 55 48
++52 55 48 52 55 48 59 55 55 52 55 48 59 55 55 50 61 48 59 55 55 53 63 61
++59 55 55 59 55 55 63 55 51 59 55 55 65 63 61 63 55 51 65 63 61 65 63 61
++65 63 61 64 70 48 65 63 61 65 55 54 65 63 61 65 55 54 65 63 61 65 55 54
++64 70 48 65 63 61 63 55 45 65 63 61 63 55 51 65 55 54 65 55 54 65 63 61
++65 63 61 65 63 61 65 63 61 65 55 54 65 63 61 75 63 62 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 75 72 67 65 63 61 75 72 67 75 72 67 75 72 67
++75 72 67 75 81 76 75 72 67 75 81 76 75 72 67 75 81 76 75 72 67 75 81 76
++75 72 67 75 81 76 75 64 82 75 72 67 75 72 67 75 72 67 59 69 70 59 69 70
++65 63 61 65 63 61 53 63 61 59 55 55 54 57 61 52 55 48 45 57 61 48 50 48
++48 50 48 43 55 48 43 42 50 43 42 50 42 47 42 43 42 50 42 41 42 43 42 50
++42 41 42 42 41 42 43 42 50 42 47 42 48 44 48 48 44 48 48 50 48 48 50 48
++52 55 48 52 55 48 55 55 48 59 55 55 59 55 55 59 55 55 63 55 51 64 70 48
++65 55 54 65 55 54 65 55 54 59 57 61 75 73 58 65 63 61 48 50 48 26 30 28
++23 18 22 25 30 29 31 35 35 22 25 24 22 25 24 25 30 29 30 30 34 31 35 35
++28 35 38 31 35 35 34 40 43 35 47 50 34 40 43 28 35 38 25 30 29 22 23 31
++25 30 29 22 25 24 22 25 24 22 25 24 26 30 28 30 30 34 33 30 36 36 35 37
++31 35 35 30 30 34 30 30 34 31 35 35 30 30 34 26 30 28 30 30 34 26 30 28
++26 24 32 26 30 28 30 30 34 26 30 28 26 24 32 26 30 28 26 30 28 30 30 34
++26 30 28 30 30 34 30 30 34 26 30 28 30 30 34 30 30 34 30 30 34 30 30 34
++26 30 28 30 30 34 26 30 28 30 30 34 30 30 34 30 30 34 30 30 34 33 30 32
++30 30 34 30 30 34 30 30 34 33 30 36 36 35 37 31 35 35 31 35 35 31 35 35
++36 35 37 36 35 37 34 40 43 42 41 42 37 35 43 33 39 38 31 35 35 31 35 35
++31 35 35 28 30 35 22 25 24 14 16 17 7 12 13 17 12 17 12 18 20 23 18 22
++14 16 17 23 18 22 12 18 20 23 18 22 15 22 17 23 20 24 23 20 24 15 22 17
++23 20 24 23 20 24 12 18 20 14 16 17 14 16 17 14 16 17 14 16 17 12 18 20
++22 25 24 25 30 29 31 35 35 33 39 38 43 42 50 54 57 61 65 63 61 53 63 61
++59 57 61 54 57 61 43 42 50 23 30 35 25 30 29 33 39 38 22 25 24 3 4 9
++3 3 1 3 3 1 12 18 20 94 105 108 185 202 202 226 221 247 221 238 247 208 221 247
++201 216 228 201 216 228 208 221 247 208 221 247 194 199 226 208 221 247 194 199 226 194 199 226
++194 199 226 208 221 247 208 221 247 221 238 247 221 238 247 221 238 247 208 221 247 208 221 247
++201 216 228 194 199 226 201 216 228 166 176 200 194 199 226 166 176 200 166 176 200 194 199 226
++194 199 226 208 221 247 194 199 226 194 199 226 194 199 226 166 176 200 194 199 226 166 176 200
++166 176 200 194 199 226 194 199 226 208 221 247 201 216 228 208 221 247 194 199 226 185 202 202
++166 176 200 166 176 200 166 176 200 166 176 200 185 202 202 194 199 226 194 199 226 201 216 228
++208 221 247 201 216 228 208 221 247 194 199 226 208 221 247 201 216 228 208 221 247 194 199 226
++208 221 247 194 199 226 208 221 247 201 216 228 194 199 226 194 199 226 194 199 226 185 202 202
++194 199 226 166 176 200 166 176 200 185 202 202 194 199 226 166 176 200 150 168 183 150 147 171
++150 168 183 150 168 183 185 202 202 194 199 226 232 215 228 201 216 228 188 180 202 166 176 200
++188 180 202 185 202 202 194 199 226 194 199 226 201 216 228 201 216 228 201 216 228 194 199 226
++194 199 226 185 202 202 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 188 180 202
++185 202 202 188 180 202 166 176 200 166 176 200 150 168 183 150 168 183 166 156 164 150 168 183
++150 144 154 111 119 127 60 81 83 53 63 61 59 69 70 59 69 70 59 69 70 59 69 70
++59 69 70 60 81 83 60 81 83 75 81 90 60 81 83 78 98 90 77 91 115 78 98 90
++77 90 100 94 105 108 98 121 131 77 90 100 46 59 71 12 18 30 7 12 13 15 22 17
++15 22 17 23 18 22 23 18 22 23 20 24 23 20 24 22 25 24 23 20 24 26 30 28
++22 25 24 26 24 32 22 25 24 23 20 24 26 30 28 23 20 24 26 24 32 23 20 24
++26 24 32 23 20 24 26 30 28 23 20 24 22 25 24 26 24 32 22 25 24 23 20 24
++26 30 28 23 20 24 26 30 28 23 20 24 26 30 28 26 24 32 26 30 28 22 25 24
++26 30 28 33 30 32 31 35 35 30 30 34 33 30 32 30 30 34 33 30 32 42 38 42
++42 41 42 42 41 42 47 49 42 59 57 61 75 72 67 88 83 74 75 81 82 87 99 72
++88 83 74 88 83 74 88 83 74 88 83 88 87 99 72 88 83 88 88 83 74 88 83 88
++88 83 74 75 81 76 75 81 76 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++65 63 61 75 77 62 65 63 61 65 63 61 75 73 58 65 63 61 65 63 61 65 63 61
++65 63 61 75 73 58 65 63 61 75 72 67 65 63 61 75 73 58 65 63 61 59 69 70
++65 63 61 75 72 67 65 63 61 59 79 61 65 63 61 65 63 61 59 69 70 65 63 61
++65 63 61 59 69 70 75 72 67 59 69 70 59 69 70 75 72 67 59 69 70 75 72 67
++59 69 70 59 69 70 59 69 70 59 69 70 75 81 76 59 69 70 59 69 70 59 69 70
++75 72 67 60 82 70 75 72 67 65 63 61 65 63 61 59 79 61 65 63 61 65 63 61
++64 70 48 50 61 48 50 61 48 50 61 48 51 73 47 50 61 48 50 61 48 50 61 48
++43 55 48 43 55 48 43 55 48 42 47 42 42 47 42 49 74 23 42 47 42 35 46 43
++35 46 43 49 74 23 35 46 43 42 47 42 42 47 42 42 47 42 42 47 42 42 41 42
++34 40 43 42 47 42 42 47 42 47 49 42 48 50 48 48 50 48 52 55 48 52 55 48
++55 55 48 59 55 55 50 61 48 59 55 55 65 55 54 65 63 61 64 70 48 65 63 61
++65 63 61 65 63 61 75 73 58 65 63 61 75 72 67 75 72 67 75 72 67 75 73 58
++65 63 61 53 63 61 64 70 48 59 55 55 53 63 61 59 55 55 54 57 61 54 57 61
++52 55 48 45 57 61 48 50 48 45 57 61 43 55 48 43 42 50 43 55 48 42 47 42
++43 42 50 42 47 42 42 47 42 48 50 48 42 47 42 47 44 42 53 46 48 48 50 48
++53 46 48 55 55 48 55 55 48 55 55 48 59 55 55 59 55 55 63 55 51 59 55 55
++63 55 51 59 55 55 65 63 61 65 55 54 65 63 61 65 63 61 59 79 61 65 63 61
++65 63 61 75 73 58 59 69 70 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++64 70 48 59 57 61 64 70 48 65 63 61 53 63 61 59 57 61 65 63 61 53 63 61
++64 70 48 59 55 55 65 63 61 65 63 61 65 63 61 59 69 70 75 73 58 65 63 61
++65 63 61 59 79 61 59 69 70 75 77 62 59 69 70 75 81 69 59 69 70 75 81 76
++75 81 76 75 81 76 75 81 76 75 81 76 75 81 69 59 69 70 75 72 67 65 63 61
++59 79 61 65 63 61 65 63 61 65 63 61 53 63 61 59 55 55 53 63 61 59 55 55
++59 55 55 55 55 48 59 55 55 50 61 48 59 55 55 59 55 55 59 55 55 59 55 55
++52 55 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 47 49 42 47 49 42
++47 44 42 42 47 42 47 44 42 36 35 37 42 47 42 36 35 37 42 41 42 42 41 42
++
++120 63 71 117 112 45 101 74 26 120 63 71 88 73 31 88 44 51 88 73 62 88 44 51
++88 44 51 88 44 51 88 44 51 88 44 51 88 44 51 88 44 51 88 44 51 88 44 51
++88 44 51 88 44 51 88 44 51 88 44 51 101 60 73 88 44 51 101 60 73 101 60 73
++101 60 73 101 60 73 101 60 73 88 44 51 101 60 73 101 60 73 101 60 73 101 60 73
++88 44 51 101 60 73 101 60 73 88 44 51 101 60 73 88 44 51 101 60 73 88 44 51
++88 44 51 88 44 51 88 44 51 88 44 51 88 44 51 88 44 51 88 44 51 88 44 51
++88 44 51 88 44 51 88 44 51 88 44 51 76 44 53 76 44 53 88 44 51 76 44 53
++62 47 47 62 47 47 63 55 51 65 55 54 75 63 62 75 63 62 75 72 67 75 72 67
++75 72 67 75 72 67 88 83 74 101 83 74 101 83 74 101 83 74 117 99 86 120 63 71
++168 102 88 117 99 86 168 102 88 117 114 76 120 63 71 117 112 45 120 63 71 117 99 86
++101 83 74 88 73 62 88 73 62 75 56 53 64 70 48 51 49 42 47 44 42 36 35 37
++32 39 24 33 30 30 30 30 34 31 35 35 34 40 43 42 41 42 42 47 42 48 50 48
++48 50 48 48 50 48 54 57 61 54 57 61 54 57 61 59 55 55 59 79 61 65 63 61
++59 69 70 75 72 67 59 69 70 75 73 58 75 72 67 75 77 62 75 72 67 75 77 62
++65 63 61 64 70 48 64 70 48 65 63 61 75 73 58 64 70 48 64 70 48 65 63 61
++64 70 48 65 55 54 65 63 61 64 70 48 65 63 61 64 70 48 59 55 55 65 63 61
++59 55 55 59 55 55 65 63 61 63 55 51 53 63 61 63 55 45 59 57 61 65 55 54
++59 57 61 59 55 55 65 63 61 59 55 55 59 55 55 59 55 55 59 55 55 53 63 61
++59 55 55 59 55 55 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 53 46 48
++55 55 48 55 55 48 52 55 48 53 46 48 48 50 48 48 50 48 48 44 48 48 50 48
++48 50 48 48 50 48 48 50 48 43 42 50 42 47 42 42 47 42 35 46 43 42 47 42
++35 46 43 43 42 50 42 47 42 48 50 48 48 50 48 43 55 48 48 50 48 54 57 61
++55 55 48 54 57 61 52 55 48 52 55 48 50 61 48 59 55 55 53 63 61 64 70 48
++59 55 55 65 63 61 64 70 48 59 57 61 64 70 48 65 63 61 65 63 61 63 55 51
++65 63 61 65 55 54 65 63 61 63 55 51 65 63 61 65 55 54 65 63 61 65 55 54
++65 55 54 63 55 51 63 55 51 63 55 51 65 55 54 63 55 51 65 63 61 65 55 54
++75 56 53 65 63 61 65 63 61 65 63 61 65 55 54 65 63 61 65 63 61 75 73 58
++65 63 61 75 73 58 75 72 67 65 63 61 75 72 67 75 72 67 75 59 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 81 76 75 72 67 75 64 82 75 81 76
++75 72 67 75 81 76 75 72 67 75 81 76 59 69 70 75 72 67 65 63 61 65 63 61
++65 63 61 59 69 70 65 63 61 59 57 61 54 57 61 59 55 55 52 55 48 53 46 48
++48 50 48 48 50 48 43 42 50 43 55 48 43 42 50 43 42 50 42 47 42 43 42 50
++42 47 42 42 41 42 42 41 42 42 41 42 48 44 48 48 50 48 48 44 48 48 50 48
++48 50 48 59 55 55 53 46 48 59 55 55 59 55 55 63 55 51 65 63 61 63 55 51
++65 63 61 65 55 54 65 63 61 64 70 48 65 63 61 65 63 61 55 55 48 33 30 32
++14 16 17 25 30 29 31 35 35 22 25 24 22 23 31 25 30 29 30 30 34 31 35 35
++33 39 38 31 35 35 34 40 43 34 40 43 28 35 38 23 30 35 22 23 31 25 30 29
++22 23 31 22 25 24 22 25 24 22 25 24 26 24 32 33 30 32 31 35 35 36 35 37
++31 35 35 30 30 34 30 30 34 33 30 32 31 35 35 31 35 35 30 30 34 26 30 28
++26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 26 30 28 26 24 32 30 30 34
++26 30 28 30 30 34 26 30 28 30 30 34 26 30 28 30 30 34 26 30 28 30 30 34
++30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 33 30 32 31 35 35 30 30 34
++33 30 32 30 30 34 31 35 35 33 30 32 31 35 35 36 35 37 37 35 43 36 35 37
++36 35 37 36 35 37 42 38 42 34 40 43 36 35 37 33 39 38 36 35 37 28 35 38
++31 35 35 28 30 35 22 25 24 14 16 17 7 12 13 14 16 17 23 18 22 12 18 20
++14 16 17 15 22 17 23 18 22 12 18 20 23 18 22 12 18 20 23 18 22 23 18 22
++23 20 24 22 25 24 23 20 24 23 18 22 23 20 24 23 20 24 15 22 17 22 25 24
++22 25 24 22 23 31 22 25 24 28 30 35 33 39 38 43 55 48 54 57 61 53 63 61
++59 57 61 45 57 61 37 35 43 23 30 35 25 30 29 28 30 35 15 22 17 3 4 9
++3 3 1 3 4 9 28 30 35 129 144 153 201 216 228 208 221 247 201 216 228 194 199 226
++194 199 226 208 221 247 201 216 228 208 221 247 208 221 247 194 199 226 194 199 226 208 221 247
++208 221 247 208 221 247 208 221 247 208 221 247 221 238 247 208 221 247 208 221 247 201 216 228
++194 199 226 194 199 226 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 194 199 226
++208 221 247 194 199 226 194 199 226 194 199 226 166 176 200 194 199 226 166 176 200 194 199 226
++194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 166 176 200 150 168 183 150 168 183
++150 168 183 131 144 168 150 168 183 150 168 183 150 168 183 166 176 200 166 176 200 185 202 202
++194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 201 216 228 208 221 247
++194 199 226 208 221 247 194 199 226 208 221 247 194 199 226 208 221 247 194 199 226 194 199 226
++194 199 226 194 199 226 185 202 202 166 176 200 194 199 226 194 199 226 185 202 202 166 176 200
++150 168 183 150 168 183 166 174 181 166 176 200 194 199 226 201 216 228 208 221 247 201 216 228
++201 216 228 201 216 228 201 216 228 201 216 228 194 199 226 194 199 226 194 199 226 194 199 226
++201 216 228 194 199 226 185 202 202 194 199 226 185 202 202 188 180 202 185 202 202 188 180 202
++185 202 202 166 176 200 166 176 200 166 174 181 150 168 183 166 156 164 150 168 183 148 160 159
++111 119 127 60 81 83 54 57 61 53 63 61 59 69 70 59 69 70 59 69 70 59 69 70
++59 69 70 60 82 70 75 81 76 60 81 83 78 98 90 77 90 100 78 98 90 78 98 90
++77 91 115 95 119 107 94 105 108 94 105 108 75 81 90 23 30 35 7 12 13 12 18 20
++15 22 17 23 18 22 23 18 22 23 18 22 26 25 15 23 20 24 33 30 30 23 20 24
++22 25 24 23 20 24 26 24 32 22 25 24 23 20 24 26 24 32 23 20 24 26 30 28
++23 20 24 26 30 28 23 20 24 22 25 24 26 24 32 22 25 24 22 25 24 26 24 32
++23 20 24 26 30 28 26 24 32 26 30 28 26 24 32 22 25 24 26 24 32 26 24 32
++33 30 30 30 30 34 33 30 32 30 30 34 33 30 32 30 30 34 33 30 32 36 35 37
++42 41 42 42 41 42 47 44 42 55 55 48 75 72 67 75 81 76 88 83 74 88 83 74
++75 81 82 88 83 74 87 99 72 88 83 74 88 83 74 88 83 74 88 83 88 88 83 74
++88 83 74 75 81 76 88 83 74 75 72 67 75 81 69 75 72 67 75 72 67 75 72 67
++75 72 67 65 63 61 65 63 61 59 69 70 65 63 61 65 63 61 59 79 61 65 63 61
++75 73 58 65 63 61 59 79 61 65 63 61 65 63 61 75 72 67 65 63 61 75 73 58
++59 69 70 65 63 61 59 69 70 65 63 61 65 63 61 59 79 61 65 63 61 59 69 70
++59 69 70 65 63 61 59 69 70 59 69 70 59 69 70 60 82 70 59 69 70 75 72 67
++59 69 70 59 69 70 75 81 76 59 69 70 59 69 70 59 69 70 75 72 67 59 69 70
++59 79 61 75 72 67 59 69 70 75 72 67 65 63 61 65 63 61 64 70 48 53 63 61
++64 70 48 59 55 55 63 55 51 50 61 48 59 55 55 50 61 48 52 55 48 52 55 48
++52 55 48 51 49 42 47 49 42 43 55 48 47 49 42 42 47 42 42 47 42 42 47 42
++42 47 42 35 46 43 35 46 43 42 47 42 33 39 38 33 39 38 33 39 38 33 39 38
++42 41 42 42 47 42 48 50 48 48 50 48 48 50 48 48 50 48 53 46 48 52 55 48
++59 55 55 55 55 48 59 55 55 65 63 61 65 63 61 65 63 61 65 63 61 64 70 48
++65 63 61 75 73 58 75 63 62 75 73 58 75 72 67 65 63 61 75 72 67 59 69 70
++59 79 61 65 63 61 65 63 61 65 63 61 65 63 61 53 63 61 53 63 61 59 57 61
++54 57 61 52 55 48 54 57 61 48 50 48 48 50 48 45 57 61 48 50 48 48 50 48
++42 47 42 42 47 42 42 47 42 42 47 42 47 44 42 47 44 42 48 50 48 51 49 42
++48 50 48 55 55 48 55 55 48 59 55 55 63 55 51 59 55 55 63 55 51 59 55 55
++59 55 55 65 55 54 65 63 61 63 55 51 65 63 61 65 63 61 65 63 61 65 63 61
++59 79 61 65 63 61 65 63 61 65 63 61 59 79 61 65 63 61 65 63 61 53 63 61
++65 63 61 59 55 55 53 63 61 59 55 55 65 63 61 64 70 48 65 63 61 65 63 61
++65 63 61 53 63 61 65 63 61 64 70 48 65 63 61 65 63 61 59 79 61 75 72 67
++65 63 61 75 72 67 65 63 61 59 79 61 75 72 67 60 82 70 75 72 67 75 81 69
++75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 75 72 67 59 69 70 75 72 67
++65 63 61 65 63 61 53 63 61 59 57 61 59 55 55 53 63 61 63 55 51 53 63 61
++59 55 55 59 55 55 50 61 48 59 55 55 50 61 48 59 57 61 53 63 61 55 55 48
++59 55 55 48 50 48 48 50 48 51 49 42 48 44 48 47 49 42 47 44 42 47 49 42
++47 44 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 36 35 37
++
++101 83 74 120 63 71 120 63 71 88 73 62 88 44 51 120 63 71 88 44 51 88 73 62
++88 44 51 101 60 73 88 44 51 101 60 73 101 60 73 101 60 73 101 60 73 101 60 73
++101 60 73 101 60 73 120 63 71 101 60 73 120 63 71 101 60 73 120 63 71 120 63 71
++101 60 73 120 63 71 101 60 73 120 63 71 120 63 71 120 63 71 120 63 71 120 63 71
++120 63 71 120 63 71 120 63 71 120 63 71 120 63 71 120 63 71 120 63 71 120 63 71
++120 63 71 120 63 71 120 63 71 120 63 71 120 63 71 120 63 71 120 63 71 101 60 73
++101 60 73 101 60 73 88 44 51 101 60 73 88 44 51 88 44 51 88 44 51 76 44 53
++75 56 53 76 44 53 62 47 47 65 55 54 65 55 54 75 63 62 65 63 61 75 63 62
++75 72 67 75 72 67 88 73 62 88 73 62 101 83 74 98 106 55 120 63 71 117 114 76
++117 99 86 117 112 45 117 99 86 117 99 86 168 102 88 117 99 86 117 99 86 117 112 45
++120 63 71 88 73 62 88 73 62 64 70 48 75 56 53 51 49 42 47 49 42 36 35 37
++31 35 35 26 30 28 30 30 34 31 35 35 33 39 38 35 46 43 43 42 50 35 47 50
++48 50 48 48 50 48 48 50 48 54 57 61 50 61 48 53 63 61 65 63 61 65 63 61
++75 77 62 65 63 61 75 73 58 59 69 70 75 73 58 59 69 70 75 72 67 65 63 61
++75 73 58 75 73 58 65 63 61 75 73 58 64 70 48 65 63 61 65 55 54 64 70 48
++65 63 61 64 70 48 65 55 54 64 70 48 65 63 61 59 55 55 64 70 48 59 55 55
++64 70 48 59 55 55 50 61 48 59 55 55 55 55 48 65 63 61 59 55 55 65 63 61
++59 55 55 65 63 61 59 55 55 59 55 55 59 55 55 53 63 61 59 55 55 55 55 48
++59 55 55 52 55 48 59 55 55 52 55 48 59 55 55 59 55 55 52 55 48 52 55 48
++53 46 48 52 55 48 53 46 48 52 55 48 48 50 48 48 50 48 47 49 42 48 50 48
++48 50 48 48 50 48 48 50 48 42 47 42 43 42 50 42 47 42 42 47 42 35 47 50
++42 47 42 42 47 42 48 50 48 43 42 50 48 50 48 48 50 48 48 50 48 52 55 48
++59 55 55 52 55 48 59 55 55 52 55 48 55 55 48 59 55 55 59 55 55 59 57 61
++59 55 55 55 55 48 65 63 61 59 55 55 65 63 61 65 63 61 65 63 61 65 63 61
++63 55 51 65 63 61 65 55 54 65 63 61 64 70 48 65 63 61 65 55 54 65 63 61
++65 55 54 63 55 51 64 70 48 63 55 51 65 63 61 65 55 54 65 55 54 64 70 48
++65 63 61 65 63 61 65 55 54 65 63 61 64 70 48 75 63 62 65 55 54 65 63 61
++65 63 61 65 63 61 65 63 61 75 72 67 65 63 61 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 81 76 75 72 67
++75 81 76 75 72 67 75 81 76 75 72 67 75 81 76 75 72 67 75 72 67 59 69 70
++65 63 61 65 63 61 65 63 61 65 63 61 54 57 61 59 55 55 54 57 61 48 50 48
++54 57 61 45 57 61 48 50 48 43 42 50 42 47 42 43 42 50 42 47 42 42 41 42
++42 41 42 43 42 50 42 47 42 48 44 48 42 47 42 48 44 48 48 50 48 48 50 48
++48 50 48 48 50 48 55 55 48 59 55 55 65 63 61 59 55 55 63 55 51 65 63 61
++63 55 51 65 63 61 65 55 54 65 63 61 65 63 61 65 63 61 59 57 61 36 35 37
++14 16 17 22 25 24 28 35 38 22 25 24 22 25 24 26 30 28 30 30 34 33 39 38
++34 40 43 34 40 43 31 35 35 28 35 38 28 35 38 28 30 35 25 30 29 22 23 31
++25 30 29 22 25 24 22 25 24 26 30 28 26 30 28 30 30 34 31 35 35 31 35 35
++36 35 37 30 30 34 26 30 28 30 30 34 36 35 37 36 35 37 30 30 34 26 30 28
++26 24 32 26 30 28 26 30 28 26 30 28 26 30 28 26 24 32 26 30 28 26 30 28
++30 30 34 26 30 28 30 30 34 26 30 28 30 30 34 30 30 34 30 30 34 30 30 34
++30 30 34 30 30 34 30 30 34 26 30 28 30 30 34 31 35 35 30 30 34 30 30 34
++31 35 35 30 30 34 30 30 34 30 30 34 36 35 37 36 35 37 34 40 43 42 41 42
++37 35 43 36 35 37 33 39 38 42 41 42 36 35 37 36 35 37 33 39 38 33 39 38
++31 35 35 23 30 35 22 25 24 14 16 17 14 16 17 14 16 17 12 18 20 23 18 22
++14 16 17 14 16 17 23 18 22 14 16 17 23 20 24 15 22 17 23 18 22 12 18 20
++23 20 24 22 25 24 22 25 24 12 18 20 22 25 24 22 25 24 23 20 24 15 22 17
++12 18 20 22 25 24 12 18 20 22 25 24 30 30 34 34 40 43 54 57 61 53 63 61
++59 69 70 43 42 50 34 40 43 28 30 35 25 30 29 25 30 29 14 16 17 3 4 9
++3 3 1 3 4 9 12 18 20 112 96 108 166 176 200 194 199 226 194 199 226 194 199 226
++194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226
++201 216 228 208 221 247 221 238 247 221 238 247 208 221 247 208 221 247 201 216 228 194 199 226
++185 202 202 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 194 199 226
++194 199 226 194 199 226 194 199 226 166 176 200 194 199 226 166 176 200 166 176 200 194 199 226
++194 199 226 201 216 228 194 199 226 166 176 200 131 144 168 129 144 153 131 144 168 131 144 168
++131 144 168 148 160 159 131 144 168 129 144 153 131 144 168 129 144 153 131 144 168 150 168 183
++150 168 183 166 176 200 166 176 200 185 202 202 166 176 200 194 199 226 194 199 226 194 199 226
++194 199 226 194 199 226 208 221 247 194 199 226 208 221 247 208 221 247 208 221 247 208 221 247
++201 216 228 194 199 226 194 199 226 185 202 202 194 199 226 194 199 226 201 216 228 201 216 228
++188 180 202 150 168 183 150 168 183 150 168 183 166 176 200 185 202 202 194 199 226 201 216 228
++226 221 247 208 221 247 208 221 247 201 216 228 201 216 228 201 216 228 201 216 228 201 216 228
++185 202 202 194 199 226 194 199 226 185 202 202 194 199 226 188 180 202 185 202 202 166 176 200
++166 176 200 188 180 202 166 176 200 166 176 200 166 174 181 166 176 200 166 174 181 122 134 144
++75 81 90 54 57 61 46 59 71 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 60 81 83 60 81 83 78 98 90 78 98 90 77 91 115
++78 98 90 94 105 108 77 91 115 95 108 128 77 90 100 45 57 61 15 22 17 7 12 13
++14 16 17 23 18 22 26 25 15 23 20 24 23 20 24 23 20 24 23 20 24 26 24 32
++22 25 24 26 24 32 22 25 24 23 20 24 26 30 28 23 20 24 26 24 32 23 20 24
++22 25 24 23 20 24 22 25 24 26 24 32 22 25 24 22 25 24 26 24 32 22 25 24
++22 25 24 26 24 32 26 30 28 26 24 32 22 25 24 26 30 28 26 30 28 26 30 28
++26 24 32 26 30 28 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 36 35 37
++42 38 42 47 44 42 42 41 42 52 55 48 65 63 61 75 72 67 75 81 76 75 81 76
++88 83 74 75 81 76 88 83 88 88 83 74 88 83 88 88 83 74 88 83 74 88 83 88
++88 83 74 88 83 74 75 81 76 75 81 76 75 72 67 59 69 70 75 72 67 59 69 70
++75 72 67 65 63 61 75 73 58 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 75 77 62 65 63 61 59 69 70 65 63 61
++65 63 61 75 72 67 59 79 61 59 69 70 53 63 61 65 63 61 53 63 61 65 63 61
++65 63 61 59 69 70 65 63 61 59 79 61 59 69 70 75 72 67 59 69 70 59 69 70
++75 72 67 59 69 70 59 69 70 59 69 70 75 72 67 59 69 70 59 69 70 59 69 70
++59 69 70 75 72 67 59 69 70 75 77 62 65 63 61 59 69 70 64 70 48 53 63 61
++50 61 48 52 55 48 50 61 48 52 55 48 52 55 48 43 55 48 47 49 42 47 49 42
++47 49 42 47 49 42 42 47 42 47 47 21 42 47 42 33 39 38 42 47 42 32 39 24
++42 47 42 42 47 42 42 47 42 33 39 38 42 47 42 33 39 38 42 41 42 42 41 42
++35 46 43 48 50 48 48 50 48 48 50 48 48 50 48 52 55 48 52 55 48 52 55 48
++59 55 55 50 61 48 59 55 55 59 55 55 59 55 55 64 70 48 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 75 72 67 65 63 61 75 72 67 75 77 62 65 63 61
++75 72 67 59 79 61 65 63 61 59 69 70 65 63 61 65 63 61 65 63 61 53 63 61
++54 57 61 53 63 61 52 55 48 45 57 61 54 57 61 48 50 48 43 55 48 48 50 48
++42 47 42 43 42 50 42 47 42 42 47 42 47 44 42 47 49 42 48 44 48 48 50 48
++53 46 48 52 55 48 55 55 48 55 55 48 59 55 55 63 55 51 55 55 48 63 55 51
++59 55 55 59 55 55 63 55 51 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 59 79 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++64 70 48 59 57 61 64 70 48 65 63 61 59 55 55 53 63 61 65 63 61 53 63 61
++65 63 61 65 63 61 53 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++75 73 58 59 69 70 75 77 62 59 69 70 75 72 67 75 81 69 75 81 76 59 69 70
++75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 75 72 67 75 72 67 59 69 70
++65 63 61 65 63 61 65 63 61 53 63 61 63 55 51 53 63 61 59 55 55 59 55 55
++50 61 48 59 55 55 59 55 55 55 55 48 55 55 48 59 55 55 59 55 55 59 55 55
++52 55 48 55 55 48 48 50 48 48 50 48 47 49 42 48 44 48 47 49 42 47 49 42
++47 49 42 47 44 42 42 47 42 47 44 42 42 41 42 42 41 42 42 41 42 42 41 42
++
++101 83 74 101 83 74 101 83 74 101 74 26 101 60 73 88 73 62 88 73 62 88 73 62
++101 60 73 88 66 70 101 60 73 88 69 84 101 60 73 88 69 84 112 96 108 101 60 73
++112 96 108 112 96 108 112 96 108 112 96 108 112 96 108 112 96 108 112 96 108 112 96 108
++112 96 108 112 96 108 112 96 108 112 96 108 112 96 108 112 96 108 112 96 108 112 96 108
++112 96 108 112 96 108 112 96 108 112 96 108 112 96 108 112 96 108 112 96 108 112 96 108
++112 96 108 112 96 108 120 63 71 112 96 108 120 63 71 101 60 73 101 60 73 101 60 73
++101 60 73 101 60 73 101 60 73 101 60 73 88 66 70 88 66 70 75 59 67 75 59 67
++75 56 53 65 55 54 65 55 54 65 55 54 65 55 54 65 57 61 65 63 61 75 63 62
++75 63 62 75 72 67 88 66 70 88 73 62 101 83 74 101 83 74 101 83 74 117 99 86
++120 63 71 168 102 88 117 99 86 117 112 45 117 99 86 120 63 71 117 99 86 120 63 71
++101 83 74 98 106 55 88 44 51 88 73 62 63 55 45 63 55 45 47 44 42 32 39 24
++36 35 37 32 39 24 25 30 29 31 35 35 33 39 38 34 40 43 42 47 42 43 42 50
++48 50 48 43 42 50 45 57 61 55 55 48 59 55 55 53 63 61 64 70 48 65 63 61
++59 69 70 75 72 67 65 63 61 75 77 62 75 73 58 75 73 58 65 63 61 75 73 58
++75 73 58 59 79 61 75 73 58 65 63 61 75 73 58 64 70 48 64 70 48 65 63 61
++64 70 48 63 55 51 64 70 48 65 63 61 64 70 48 64 70 48 65 55 54 65 63 61
++59 55 55 65 63 61 63 55 51 65 63 61 63 55 51 64 70 48 59 55 55 59 55 55
++63 55 51 59 55 55 59 55 55 64 70 48 59 55 55 63 55 51 59 55 55 55 55 48
++55 55 48 52 55 48 52 55 48 59 55 55 48 50 48 52 55 48 48 50 48 52 55 48
++52 55 48 48 50 48 48 50 48 51 49 42 48 50 48 47 49 42 48 50 48 48 44 48
++42 47 42 48 50 48 48 50 48 42 47 42 42 47 42 43 42 50 42 47 42 42 47 42
++42 47 42 35 47 50 42 47 42 43 55 48 43 55 48 48 50 48 45 57 61 52 55 48
++52 55 48 54 57 61 48 50 48 59 55 55 54 57 61 50 61 48 59 55 55 53 63 61
++55 55 48 59 55 55 65 63 61 59 55 55 65 63 61 65 63 61 75 73 58 65 63 61
++65 63 61 63 55 51 65 63 61 63 55 51 65 55 54 59 55 55 63 55 51 65 63 61
++63 55 51 65 63 61 59 55 55 65 55 54 63 55 51 59 55 55 65 63 61 65 55 54
++65 55 54 64 70 48 65 63 61 65 55 54 65 63 61 65 55 54 64 70 48 65 63 61
++65 63 61 65 63 61 75 63 62 65 63 61 75 72 67 65 63 61 75 72 67 75 72 67
++75 72 67 75 81 76 59 69 70 75 81 76 75 72 67 75 81 76 75 81 76 75 81 76
++75 81 76 75 81 76 75 72 67 75 81 76 75 72 67 75 81 76 75 72 67 59 69 70
++65 63 61 65 63 61 65 63 61 53 63 61 59 57 61 54 57 61 52 55 48 54 57 61
++53 46 48 48 50 48 48 50 48 35 47 50 43 42 50 42 47 42 43 42 50 43 42 50
++42 47 42 43 42 50 42 47 42 48 44 48 48 44 48 48 50 48 48 44 48 48 50 48
++48 50 48 53 46 48 59 55 55 59 55 55 55 55 48 55 55 48 59 55 55 64 70 48
++59 55 55 65 63 61 65 55 54 65 63 61 65 55 54 65 63 61 65 55 54 42 47 42
++17 12 17 26 30 28 30 30 34 25 30 29 23 20 24 26 24 32 30 30 34 37 35 43
++42 41 42 37 35 43 28 35 38 33 30 36 31 35 35 31 35 35 30 30 34 28 30 35
++22 23 31 22 25 24 26 24 32 26 30 28 26 24 32 30 30 34 31 35 35 31 35 35
++31 35 35 31 35 35 30 30 34 31 35 35 31 35 35 31 35 35 31 35 35 25 30 29
++25 30 29 22 23 31 25 30 29 26 24 32 26 30 28 26 30 28 26 24 32 28 30 35
++25 30 29 25 30 29 30 30 34 30 30 34 30 30 34 31 35 35 31 35 35 33 30 32
++31 35 35 33 30 32 31 35 35 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34
++30 30 34 30 30 34 31 35 35 31 35 35 33 39 38 33 39 38 34 40 43 33 39 38
++34 40 43 42 41 42 34 40 43 34 40 43 34 40 43 33 39 38 36 35 37 36 35 37
++31 35 35 26 30 28 23 20 24 14 16 17 14 16 17 14 16 17 23 18 22 14 16 17
++14 16 17 14 16 17 14 16 17 23 18 22 23 20 24 23 20 24 12 18 20 23 18 22
++22 25 24 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 12 18 20 14 16 17
++14 16 17 14 16 17 14 16 17 12 18 20 23 20 24 30 30 34 48 50 48 54 57 61
++54 57 61 48 50 48 34 40 43 31 35 35 31 35 35 28 30 35 15 22 17 3 4 9
++3 4 9 3 3 1 3 4 9 43 42 50 119 117 138 185 202 202 194 199 226 194 199 226
++185 202 202 194 199 226 166 176 200 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226
++208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 201 216 228 194 199 226 194 199 226
++166 176 200 166 176 200 150 168 183 150 168 183 150 168 183 150 168 183 166 176 200 194 199 226
++194 199 226 166 176 200 166 176 200 166 176 200 166 176 200 194 199 226 208 221 247 194 199 226
++194 199 226 166 176 200 150 168 183 131 144 168 131 144 168 131 144 168 148 160 159 150 168 183
++150 168 183 150 147 171 150 168 183 150 147 171 131 144 168 148 160 159 131 144 168 131 144 168
++150 168 183 150 168 183 150 168 183 166 176 200 185 202 202 166 176 200 194 199 226 194 199 226
++194 199 226 194 199 226 201 216 228 208 221 247 194 199 226 208 221 247 208 221 247 201 216 228
++208 221 247 194 199 226 194 199 226 194 199 226 194 199 226 208 221 247 208 221 247 208 221 247
++208 221 247 194 199 226 150 168 183 150 147 171 150 168 183 150 168 183 166 176 200 188 180 202
++194 199 226 201 216 228 208 221 247 208 221 247 208 221 247 201 216 228 194 199 226 194 199 226
++194 199 226 185 202 202 185 202 202 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200
++188 180 202 166 176 200 185 202 202 188 180 202 194 199 226 188 180 202 129 144 153 95 91 100
++46 59 71 53 63 61 53 63 61 59 69 70 53 63 61 53 63 61 53 63 61 53 63 61
++59 69 70 60 82 70 60 81 83 75 81 82 60 81 83 75 81 90 78 98 90 78 98 90
++77 91 115 78 98 90 78 98 90 95 119 107 94 105 108 60 81 83 23 30 35 7 12 13
++14 16 17 23 18 22 23 20 24 23 20 24 23 20 24 26 25 15 23 20 24 22 25 24
++22 25 24 22 25 24 22 25 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 23 20 24
++23 20 24 22 25 24 22 25 24 33 30 30 26 30 28 26 30 28 23 20 24 33 30 30
++26 30 28 26 30 28 26 30 28 33 30 30 26 30 28 33 30 30 33 30 32 36 35 37
++36 35 37 42 47 42 42 47 42 48 50 48 59 55 55 75 72 67 75 81 69 88 83 74
++88 83 74 88 83 74 88 83 74 78 98 90 88 83 74 88 83 88 90 98 89 88 83 74
++88 83 88 75 81 82 88 83 74 75 81 76 75 81 69 75 81 69 75 72 67 75 72 67
++65 63 61 75 72 67 59 79 61 65 63 61 65 63 61 64 70 48 65 63 61 65 63 61
++59 79 61 75 73 58 65 63 61 75 77 62 65 63 61 65 63 61 75 73 58 65 63 61
++59 79 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 59 79 61
++65 63 61 65 63 61 59 69 70 65 63 61 59 69 70 59 69 70 75 72 67 59 69 70
++59 69 70 59 69 70 75 72 67 59 69 70 59 69 70 75 72 67 59 69 70 75 77 62
++75 72 67 59 69 70 75 72 67 65 63 61 59 69 70 65 63 61 65 63 61 65 63 61
++55 55 48 59 55 55 52 55 48 52 55 48 48 50 48 48 50 48 47 49 42 47 44 42
++42 47 42 47 44 42 42 47 42 42 47 42 42 47 42 42 47 42 42 47 42 42 47 42
++42 47 42 42 47 42 42 47 42 42 47 42 42 47 42 42 41 42 42 47 42 42 47 42
++42 47 42 48 44 48 48 50 48 48 50 48 48 44 48 48 50 48 52 55 48 59 55 55
++59 55 55 59 57 61 65 63 61 64 70 48 59 57 61 65 63 61 63 55 51 65 63 61
++65 63 61 75 73 58 75 73 58 65 63 61 75 77 62 59 69 70 75 72 67 75 72 67
++59 69 70 75 72 67 75 72 67 59 69 70 65 63 61 59 69 70 59 69 70 53 63 61
++65 63 61 53 63 61 54 57 61 50 61 48 45 57 61 45 57 61 43 55 48 48 50 48
++43 42 50 42 47 42 42 47 42 42 47 42 43 42 50 42 47 42 48 50 48 48 50 48
++48 50 48 52 55 48 52 55 48 55 55 48 55 55 48 55 55 48 63 55 51 55 55 48
++59 55 55 64 70 48 59 55 55 64 70 48 65 63 61 64 70 48 65 63 61 65 63 61
++75 77 62 65 63 61 65 63 61 65 63 61 59 79 61 65 63 61 65 63 61 53 63 61
++59 57 61 53 63 61 59 55 55 53 63 61 64 70 48 65 63 61 65 63 61 65 63 61
++64 70 48 59 57 61 65 63 61 53 63 61 65 63 61 59 79 61 65 63 61 59 79 61
++65 63 61 65 63 61 75 72 67 75 72 67 60 82 70 75 81 69 75 81 69 75 81 76
++75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 59 69 70 59 69 70 65 63 61
++65 63 61 53 63 61 53 63 61 59 55 55 53 63 61 59 55 55 53 63 61 50 61 48
++59 55 55 52 55 48 52 55 48 59 55 55 52 55 48 59 55 55 52 55 48 59 55 55
++52 55 48 52 55 48 48 50 48 48 50 48 47 49 42 47 44 42 42 47 42 47 44 42
++42 47 42 47 44 42 42 41 42 42 41 42 36 35 37 42 47 42 36 35 37 42 47 42
++
++88 73 62 101 83 74 120 63 71 101 83 74 88 73 62 101 60 73 101 83 74 101 60 73
++101 83 74 88 69 84 112 96 108 112 96 108 112 96 108 112 96 108 112 96 108 112 96 108
++112 96 108 112 96 108 112 96 108 112 96 108 138 102 108 112 96 108 141 116 139 138 102 108
++112 96 108 141 116 139 112 96 108 141 116 139 141 116 139 138 102 108 141 116 139 141 116 139
++138 102 108 141 116 139 112 96 108 141 116 139 138 102 108 138 102 108 138 102 108 138 102 108
++138 102 108 138 102 108 141 116 139 112 96 108 138 102 108 112 96 108 112 96 108 112 96 108
++120 63 71 95 91 100 101 60 73 88 69 84 88 66 70 101 60 73 88 66 70 88 66 70
++75 59 67 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54 65 55 54
++75 63 62 75 63 62 75 72 67 88 73 62 88 73 62 101 83 74 120 63 71 117 112 45
++117 99 86 117 114 76 120 63 71 168 102 88 117 99 86 168 102 88 117 112 45 117 114 76
++120 63 71 101 83 74 88 73 62 75 56 53 75 56 53 63 55 45 55 39 37 42 47 42
++33 39 38 26 30 28 25 30 29 30 30 34 31 35 35 34 40 43 34 40 43 42 47 42
++35 47 50 48 50 48 48 50 48 53 63 61 59 55 55 64 70 48 53 63 61 65 63 61
++65 63 61 59 79 61 75 77 62 65 63 61 59 79 61 65 63 61 75 73 58 75 73 58
++65 63 61 75 73 58 75 73 58 64 70 48 75 73 58 65 63 61 64 70 48 65 55 54
++64 70 48 65 63 61 64 70 48 63 55 51 64 70 48 65 55 54 64 70 48 65 63 61
++64 70 48 65 63 61 65 63 61 63 55 51 65 63 61 65 55 54 65 63 61 50 61 48
++65 63 61 50 61 48 59 55 55 59 55 55 59 55 55 59 55 55 59 55 55 55 55 48
++55 55 48 55 55 48 59 55 55 52 55 48 53 46 48 52 55 48 53 46 48 52 55 48
++48 50 48 48 50 48 51 49 42 47 49 42 48 50 48 48 50 48 42 47 42 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 42 47 42 42 47 42 35 47 50
++42 47 42 42 47 42 42 47 42 48 50 48 48 50 48 48 50 48 48 50 48 52 55 48
++43 55 48 52 55 48 45 57 61 52 55 48 59 55 55 59 55 55 53 63 61 55 55 48
++53 63 61 59 55 55 64 70 48 53 63 61 63 55 51 65 63 61 65 63 61 65 63 61
++63 55 51 65 63 61 64 70 48 65 55 54 59 55 55 64 70 48 59 55 55 55 55 48
++59 55 55 59 55 55 63 55 51 59 55 55 65 63 61 63 55 51 63 55 51 65 63 61
++59 55 55 65 55 54 65 55 54 65 63 61 65 55 54 64 70 48 65 55 54 65 63 61
++65 55 54 65 63 61 65 63 61 65 63 61 63 59 71 75 72 67 75 72 67 59 69 70
++75 72 67 75 64 82 75 72 67 75 72 67 75 81 76 75 64 82 75 72 67 75 81 76
++75 64 82 75 81 76 75 72 67 75 81 76 75 72 67 75 81 76 75 72 67 75 72 67
++59 69 70 65 63 61 59 69 70 65 63 61 65 63 61 59 57 61 59 55 55 54 57 61
++54 57 61 54 57 61 48 50 48 48 50 48 48 50 48 48 44 48 42 47 42 48 44 48
++42 41 42 42 41 42 43 42 50 43 42 50 48 50 48 43 42 50 48 44 48 48 50 48
++48 50 48 48 50 48 53 46 48 55 55 48 59 55 55 59 55 55 55 55 48 59 55 55
++65 63 61 63 55 51 65 63 61 65 63 61 63 55 51 63 55 51 65 63 61 47 44 42
++22 25 24 23 20 24 22 25 24 26 30 28 22 23 31 23 20 24 25 30 29 34 40 43
++43 42 50 42 41 42 36 35 37 30 30 34 30 30 34 33 30 36 31 35 35 26 24 32
++22 25 24 22 23 31 26 24 32 26 24 32 25 30 29 25 30 29 28 30 35 31 35 35
++31 35 35 28 30 35 31 35 35 31 35 35 31 35 35 33 39 38 31 35 35 28 30 35
++25 30 29 25 30 29 25 30 29 25 30 29 30 30 34 26 24 32 25 30 29 25 30 29
++23 30 35 25 30 29 30 30 34 33 30 30 33 30 32 30 30 34 31 35 35 31 35 35
++31 35 35 31 35 35 33 30 36 31 35 35 31 35 35 30 30 34 31 35 35 25 30 29
++28 30 35 31 35 35 28 35 38 33 39 38 33 39 38 33 39 38 36 35 37 34 40 43
++34 40 43 42 41 42 42 41 42 34 40 43 34 40 43 33 39 38 36 35 37 36 35 37
++33 30 36 26 30 28 23 20 24 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++14 16 17 17 12 17 12 18 20 23 18 22 15 22 17 23 20 24 23 20 24 23 20 24
++23 18 22 22 25 24 23 20 24 23 20 24 23 20 24 12 18 20 14 16 17 17 12 17
++14 16 17 7 12 13 14 16 17 12 18 20 23 20 24 25 30 29 34 40 43 48 50 48
++48 50 48 35 47 50 43 42 50 34 40 43 34 40 43 25 30 29 22 25 24 23 18 22
++7 10 17 3 4 9 3 3 1 7 10 17 59 69 70 148 160 159 166 176 200 194 199 226
++166 176 200 166 176 200 194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 208 221 247
++208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 194 199 226 194 199 226 166 176 200
++150 168 183 150 168 183 131 144 168 131 144 168 150 168 183 166 176 200 166 176 200 194 199 226
++166 176 200 166 176 200 166 176 200 194 199 226 194 199 226 194 199 226 194 199 226 166 176 200
++150 168 183 150 168 183 131 144 168 131 144 168 150 168 183 150 168 183 166 176 200 166 176 200
++150 168 183 166 174 181 150 168 183 150 168 183 150 168 183 150 168 183 148 160 159 131 144 168
++131 144 168 150 168 183 150 168 183 166 176 200 166 176 200 185 202 202 166 176 200 166 176 200
++194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 194 199 226 194 199 226 194 199 226
++194 199 226 194 199 226 201 216 228 208 221 247 208 221 247 208 221 247 221 238 247 208 221 247
++208 221 247 201 216 228 194 199 226 166 176 200 131 144 168 129 144 153 131 144 168 150 168 183
++166 174 181 188 180 202 201 216 228 201 216 228 208 221 247 208 221 247 201 216 228 194 199 226
++185 202 202 194 199 226 166 176 200 194 199 226 188 180 202 185 202 202 166 176 200 185 202 202
++194 199 226 194 199 226 201 216 228 194 199 226 185 202 202 129 144 153 94 105 108 59 69 70
++45 57 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 59 79 61 53 63 61
++59 69 70 59 69 70 60 82 70 60 81 83 60 81 83 75 81 90 60 81 83 77 90 100
++78 98 90 94 105 108 77 90 100 77 91 115 77 90 100 78 98 90 45 57 61 12 18 20
++14 16 17 14 16 17 23 20 24 23 18 22 23 18 22 23 20 24 23 20 24 23 20 24
++22 25 24 23 20 24 22 25 24 22 25 24 23 18 22 22 25 24 26 25 15 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 23 18 22 22 25 24
++23 20 24 26 25 15 22 25 24 26 30 28 22 25 24 33 30 30 26 30 28 26 30 28
++22 25 24 22 25 24 26 30 28 26 30 28 33 30 30 26 30 28 33 30 32 33 30 32
++36 35 37 42 41 42 42 47 42 51 49 42 50 61 48 65 63 61 88 83 74 75 81 76
++75 81 76 75 81 76 88 83 88 88 83 74 90 98 89 88 83 74 88 83 88 88 83 74
++90 98 89 88 83 74 88 83 88 75 81 76 75 81 76 75 81 76 75 81 69 75 72 67
++75 77 62 65 63 61 65 63 61 65 63 61 65 63 61 53 63 61 64 70 48 65 63 61
++65 63 61 65 63 61 65 63 61 59 69 70 65 63 61 65 63 61 59 79 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 53 63 61 64 70 48 65 63 61 65 63 61
++65 63 61 53 63 61 65 63 61 59 79 61 65 63 61 75 72 67 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 75 72 67 59 69 70 59 69 70 75 72 67 59 69 70
++59 79 61 65 63 61 75 72 67 65 63 61 75 72 67 65 63 61 65 63 61 65 63 61
++59 57 61 59 55 55 59 55 55 52 55 48 48 50 48 48 50 48 48 50 48 47 44 42
++47 44 42 47 44 42 42 47 42 42 47 42 42 47 42 42 47 42 42 47 42 42 47 42
++42 47 42 42 47 42 42 47 42 42 47 42 42 47 42 42 41 42 35 46 43 42 47 42
++43 42 50 42 47 42 42 47 42 48 50 48 48 50 48 51 49 42 52 55 48 59 55 55
++59 55 55 53 63 61 59 55 55 65 63 61 63 55 51 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 75 77 62 65 63 61 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 59 69 70 75 72 67 59 69 70 59 79 61
++53 63 61 53 63 61 53 63 61 45 57 61 52 55 48 45 57 61 48 50 48 43 55 48
++42 47 42 35 46 43 42 41 42 35 46 43 42 47 42 42 47 42 51 49 42 48 50 48
++52 55 48 48 50 48 52 55 48 55 55 48 63 55 51 55 55 48 59 55 55 50 61 48
++55 55 48 59 55 55 64 70 48 59 55 55 63 55 51 53 63 61 65 63 61 65 63 61
++65 63 61 75 63 62 59 79 61 65 63 61 65 63 61 53 63 61 65 63 61 59 57 61
++64 70 48 59 57 61 64 70 48 53 63 61 59 57 61 50 61 48 65 63 61 53 63 61
++65 63 61 53 63 61 65 63 61 64 70 48 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 59 69 70 75 72 67 75 81 76 75 72 67 60 82 70 75 81 76
++75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 75 81 69 75 72 67 59 69 70
++59 79 61 65 63 61 53 63 61 65 63 61 53 63 61 50 61 48 53 63 61 55 55 48
++45 57 61 52 55 48 54 57 61 52 55 48 59 55 55 52 55 48 59 55 55 52 55 48
++55 55 48 52 55 48 52 55 48 51 49 42 48 50 48 47 49 42 47 44 42 42 47 42
++47 44 42 42 47 42 42 41 42 42 47 42 42 41 42 47 47 21 47 44 42 42 47 42
++
++101 83 74 120 63 71 88 73 62 101 83 74 101 83 74 101 83 74 101 83 74 99 93 84
++112 96 108 112 96 108 112 96 108 112 96 108 138 102 108 138 102 108 141 116 139 138 102 108
++141 116 139 141 116 139 141 116 139 141 116 139 141 116 139 141 116 139 141 116 139 141 116 139
++141 116 139 141 116 139 141 116 139 141 116 139 141 116 139 141 116 139 141 116 139 141 116 139
++141 116 139 141 116 139 141 116 139 138 102 108 141 116 139 141 116 139 141 116 139 141 116 139
++141 116 139 141 116 139 138 102 108 141 116 139 112 96 108 138 102 108 138 102 108 138 102 108
++112 96 108 138 102 108 112 96 108 120 63 71 95 91 100 88 69 84 101 60 73 88 66 70
++88 66 70 75 59 67 65 57 61 65 55 54 59 55 55 63 55 51 63 55 51 65 55 54
++65 63 61 75 63 62 75 63 62 75 63 62 88 73 62 88 73 62 101 83 74 101 83 74
++120 63 71 117 114 76 117 99 86 117 112 45 120 63 71 117 114 76 120 63 71 117 99 86
++101 83 74 101 83 74 88 73 31 88 73 62 75 56 53 60 49 42 51 49 42 47 47 21
++31 35 35 32 39 24 31 35 35 31 35 35 31 35 35 33 39 38 42 41 42 43 42 50
++42 47 42 48 50 48 48 50 48 52 55 48 53 63 61 59 55 55 53 63 61 64 70 48
++65 63 61 75 72 67 65 63 61 75 73 58 75 73 58 75 73 58 65 63 61 64 70 48
++75 73 58 75 73 58 65 63 61 75 73 58 59 79 61 64 70 48 65 63 61 64 70 48
++65 63 61 64 70 48 63 55 51 64 70 48 65 63 61 64 70 48 65 55 54 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 63 55 51 65 63 61
++63 55 51 59 55 55 59 55 55 64 70 48 59 55 55 63 55 51 59 55 55 55 55 48
++59 55 55 55 55 48 52 55 48 53 46 48 59 55 55 52 55 48 52 55 48 48 50 48
++51 49 42 48 50 48 51 49 42 47 49 42 48 50 48 47 49 42 47 49 42 42 47 42
++48 44 48 48 50 48 42 47 42 48 50 48 43 42 50 42 47 42 35 46 43 42 47 42
++42 47 42 43 42 50 43 55 48 35 47 50 48 50 48 45 57 61 48 50 48 52 55 48
++48 50 48 48 50 48 52 55 48 54 57 61 52 55 48 54 57 61 55 55 48 59 55 55
++59 55 55 53 63 61 59 55 55 59 55 55 65 63 61 59 55 55 65 63 61 64 70 48
++65 63 61 65 55 54 65 63 61 59 55 55 65 63 61 59 55 55 59 55 55 59 55 55
++63 55 51 59 55 55 59 55 55 63 55 51 59 55 55 63 55 51 59 55 55 55 55 48
++63 55 51 59 55 55 63 55 51 65 55 54 65 55 54 65 55 54 63 55 51 64 70 48
++65 63 61 65 63 61 65 63 61 65 63 61 75 72 67 59 69 70 75 72 67 75 72 67
++75 72 67 75 81 76 75 72 67 75 81 76 75 72 67 75 81 76 75 81 76 75 81 76
++75 81 76 75 72 67 75 81 76 75 72 67 75 64 82 75 81 69 75 72 67 59 69 70
++75 72 67 59 69 70 75 72 67 65 63 61 59 69 70 65 63 61 54 57 61 59 55 55
++52 55 48 48 50 48 45 57 61 43 42 50 35 47 50 48 50 48 48 44 48 43 42 50
++42 47 42 43 42 50 42 47 42 48 44 48 48 44 48 43 42 50 48 50 48 48 44 48
++48 50 48 48 50 48 53 46 48 53 46 48 55 55 48 55 55 48 55 55 48 59 55 55
++63 55 51 65 63 61 65 55 54 63 55 51 64 70 48 59 55 55 59 55 55 48 50 48
++42 38 42 33 30 30 33 30 30 26 30 28 23 20 24 23 20 24 26 24 32 36 35 37
++42 41 42 34 40 43 37 35 43 28 30 35 30 30 34 30 30 34 30 30 34 26 24 32
++22 23 31 25 30 29 26 24 32 25 30 29 25 30 29 25 30 29 25 30 29 28 30 35
++31 35 35 28 30 35 31 35 35 31 35 35 31 35 35 33 39 38 33 39 38 31 35 35
++31 35 35 28 30 35 25 30 29 28 30 35 26 30 28 26 30 28 26 24 32 25 30 29
++23 30 35 28 30 35 26 30 28 30 30 34 30 30 34 30 30 34 31 35 35 36 35 37
++31 35 35 36 35 37 31 35 35 36 35 37 31 35 35 31 35 35 31 35 35 31 35 35
++31 35 35 31 35 35 33 39 38 33 39 38 33 39 38 33 39 38 34 40 43 33 39 38
++42 41 42 34 40 43 34 40 43 34 40 43 34 40 43 33 39 38 36 35 37 31 35 35
++30 30 34 26 24 32 23 20 24 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17
++14 16 17 23 18 22 23 18 22 23 20 24 15 22 17 23 20 24 22 25 24 23 20 24
++15 22 17 23 20 24 15 22 17 12 18 20 14 16 17 12 18 20 14 16 17 14 16 17
++14 16 17 14 16 17 14 16 17 12 18 20 22 23 31 28 30 35 33 39 38 35 46 43
++34 40 43 43 42 50 35 47 50 48 50 48 34 40 43 25 30 29 26 24 32 28 30 35
++23 20 24 7 12 13 7 12 13 3 3 1 29 34 50 95 108 128 150 168 183 166 176 200
++166 176 200 166 176 200 166 176 200 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226
++208 221 247 208 221 247 208 221 247 208 221 247 201 216 228 194 199 226 166 176 200 150 168 183
++131 144 168 131 144 168 131 144 168 131 144 168 150 168 183 166 176 200 194 199 226 166 176 200
++166 176 200 194 199 226 194 199 226 201 216 228 194 199 226 166 176 200 150 168 183 150 168 183
++131 144 168 150 168 183 150 168 183 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200
++166 174 181 150 168 183 150 168 183 166 174 181 150 168 183 150 147 171 150 147 171 150 168 183
++131 144 168 148 160 159 150 168 183 150 168 183 150 168 183 150 168 183 166 176 200 166 176 200
++166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 194 199 226 194 199 226
++194 199 226 194 199 226 208 221 247 201 216 228 208 221 247 208 221 247 201 216 228 201 216 228
++194 199 226 208 221 247 194 199 226 194 199 226 150 168 183 122 134 144 122 134 144 122 134 144
++131 144 168 148 160 159 150 168 183 166 176 200 185 202 202 208 221 247 201 216 228 201 216 228
++194 199 226 185 202 202 194 199 226 185 202 202 194 199 226 194 199 226 194 199 226 194 199 226
++201 216 228 201 216 228 201 216 228 166 176 200 122 134 144 77 90 100 45 57 61 53 63 61
++53 63 61 53 63 61 59 69 70 53 63 61 53 63 61 53 63 61 53 63 61 59 69 70
++59 79 61 59 69 70 60 81 83 75 81 82 60 81 83 75 81 82 78 98 90 78 98 90
++77 90 100 78 98 90 77 91 115 95 119 107 77 90 100 94 105 108 59 69 70 23 30 35
++12 18 20 7 12 13 23 18 22 23 18 22 23 18 22 23 18 22 26 25 15 22 25 24
++22 25 24 22 25 24 22 25 24 23 20 24 26 25 15 23 18 22 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24
++22 25 24 22 25 24 26 30 28 23 20 24 33 30 30 26 30 28 23 20 24 33 30 30
++26 25 15 33 30 30 26 30 28 33 30 30 26 30 28 33 30 30 33 30 32 33 30 32
++36 35 37 33 39 38 47 44 42 47 49 42 55 55 48 75 73 58 75 81 76 88 83 74
++88 83 74 88 83 74 88 83 74 88 83 88 88 83 88 90 98 89 99 93 84 88 83 88
++88 83 88 88 83 88 87 99 72 88 83 88 75 81 76 75 81 76 75 81 69 75 81 76
++59 69 70 75 72 67 65 63 61 59 79 61 65 63 61 65 63 61 65 63 61 53 63 61
++64 70 48 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++59 79 61 65 63 61 65 63 61 65 63 61 65 63 61 53 63 61 65 63 61 53 63 61
++64 70 48 53 63 61 65 63 61 65 63 61 59 69 70 59 69 70 59 69 70 75 72 67
++59 69 70 65 63 61 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 75 72 67
++75 72 67 59 69 70 75 72 67 65 63 61 65 63 61 65 63 61 65 63 61 53 63 61
++59 55 55 59 55 55 52 55 48 52 55 48 53 46 48 48 50 48 47 44 42 47 49 42
++42 47 42 47 44 42 42 47 42 47 44 42 42 47 42 47 44 42 48 44 48 42 47 42
++43 42 50 42 47 42 43 42 50 42 47 42 35 46 43 42 41 42 35 46 43 42 47 42
++42 47 42 43 42 50 48 50 48 48 44 48 48 50 48 52 55 48 55 55 48 59 55 55
++53 63 61 59 55 55 59 57 61 64 70 48 59 55 55 65 63 61 65 63 61 65 63 61
++75 73 58 65 63 61 75 73 58 75 63 62 75 72 67 59 69 70 75 72 67 75 72 67
++59 69 70 75 72 67 59 69 70 75 72 67 59 69 70 59 69 70 59 69 70 59 69 70
++59 69 70 65 63 61 53 63 61 53 63 61 54 57 61 43 55 48 45 57 61 48 50 48
++43 42 50 42 47 42 42 47 42 43 42 50 42 47 42 48 44 48 48 50 48 48 50 48
++48 50 48 52 55 48 52 55 48 55 55 48 59 55 55 55 55 48 55 55 48 59 55 55
++59 55 55 59 55 55 55 55 48 59 55 55 64 70 48 65 63 61 65 63 61 64 70 48
++65 63 61 65 63 61 65 63 61 65 63 61 53 63 61 64 70 48 53 63 61 64 70 48
++59 57 61 53 63 61 59 55 55 53 63 61 63 55 51 53 63 61 65 63 61 63 55 51
++64 70 48 59 57 61 65 63 61 53 63 61 65 63 61 59 55 55 64 70 48 53 63 61
++64 70 48 65 63 61 75 72 67 75 72 67 59 69 70 75 81 76 75 81 76 75 81 76
++75 81 76 75 81 76 75 81 76 75 81 76 59 69 70 75 72 67 59 69 70 65 63 61
++53 63 61 65 63 61 59 79 61 59 55 55 53 63 61 65 63 61 59 55 55 50 61 48
++52 55 48 52 55 48 52 55 48 52 55 48 54 57 61 52 55 48 52 55 48 59 55 55
++48 50 48 52 55 48 48 50 48 48 50 48 51 49 42 47 49 42 47 49 42 47 44 42
++42 47 42 47 44 42 42 41 42 36 35 37 42 47 42 42 41 42 42 47 42 36 35 37
++
++88 73 62 101 83 74 101 83 74 101 83 74 101 60 73 101 83 74 99 93 84 112 96 108
++112 96 108 112 96 108 112 96 108 141 116 139 119 117 138 119 117 138 141 116 139 119 117 138
++141 116 139 141 116 139 141 116 139 141 116 139 141 116 139 141 116 139 141 116 139 141 116 139
++141 116 139 141 116 139 141 116 139 141 116 139 141 116 139 141 116 139 141 116 139 141 116 139
++141 116 139 141 116 139 141 116 139 141 116 139 141 116 139 141 116 139 141 116 139 141 116 139
++141 116 139 141 116 139 141 116 139 141 116 139 141 116 139 141 116 139 141 116 139 141 116 139
++141 116 139 112 96 108 112 96 108 112 96 108 112 96 108 95 91 100 88 83 88 88 83 88
++75 64 82 75 64 82 75 59 67 65 57 61 65 57 61 59 55 55 63 55 51 59 55 55
++63 55 51 63 55 51 75 63 62 75 63 62 88 73 62 88 73 62 101 83 74 101 83 74
++117 99 86 117 112 45 120 63 71 117 99 86 168 102 88 117 99 86 117 99 86 117 112 45
++120 63 71 101 83 74 88 73 62 88 73 62 75 56 53 63 55 45 55 39 37 42 41 42
++33 39 38 33 30 30 25 30 29 28 30 35 28 35 38 33 39 38 34 40 43 42 41 42
++35 47 50 48 50 48 48 50 48 50 61 48 59 55 55 50 61 48 59 55 55 65 63 61
++59 79 61 65 63 61 59 79 61 65 63 61 75 73 58 65 63 61 75 73 58 75 73 58
++65 63 61 75 73 58 75 73 58 75 73 58 75 73 58 75 73 58 64 70 48 64 70 48
++64 70 48 63 55 51 64 70 48 75 56 53 64 70 48 65 63 61 64 70 48 75 56 53
++65 63 61 65 63 61 75 63 62 64 70 48 65 63 61 64 70 48 65 63 61 65 55 54
++65 63 61 64 70 48 59 55 55 59 55 55 55 55 48 59 55 55 63 55 51 59 55 55
++55 55 48 55 55 48 55 55 48 52 55 48 48 50 48 48 50 48 51 49 42 52 55 48
++48 50 48 47 49 42 47 49 42 47 49 42 47 49 42 48 44 48 42 47 42 48 44 48
++42 47 42 48 50 48 48 50 48 43 42 50 42 47 42 42 47 42 43 42 50 35 46 43
++35 46 43 42 47 42 42 47 42 48 50 48 48 50 48 43 55 48 48 50 48 45 57 61
++48 50 48 48 50 48 52 55 48 48 50 48 52 55 48 59 55 55 52 55 48 55 55 48
++53 63 61 63 55 51 50 61 48 65 63 61 50 61 48 59 55 55 65 63 61 59 55 55
++65 63 61 65 63 61 63 55 51 65 63 61 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 55 55 48 59 55 55 55 55 48 59 55 55 63 55 51 55 55 48 59 55 55
++55 55 48 59 55 55 63 55 51 59 55 55 59 55 55 64 70 48 59 55 55 59 55 55
++65 55 54 65 57 61 65 63 61 65 63 61 65 63 61 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 81 76 75 72 67 75 81 76 75 64 82 75 81 76 75 72 67
++75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 59 69 70 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 59 69 70 65 63 61 65 63 61 59 57 61 54 57 61
++54 57 61 54 57 61 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 47 44 42
++48 50 48 48 44 48 48 50 48 43 42 50 48 50 48 48 44 48 48 50 48 43 42 50
++48 44 48 48 50 48 48 50 48 59 55 55 59 55 55 55 55 48 55 55 48 59 55 55
++59 55 55 59 55 55 65 55 54 65 63 61 65 55 54 59 55 55 55 55 48 65 63 61
++65 63 61 59 57 61 43 42 50 31 35 35 23 20 24 12 18 20 22 25 24 28 30 35
++37 35 43 37 35 43 36 35 37 31 35 35 30 30 34 30 30 34 30 30 34 25 30 29
++25 30 29 25 30 29 28 30 35 28 30 35 28 30 35 25 30 29 23 30 35 25 30 29
++28 30 35 28 30 35 28 30 35 30 30 34 33 39 38 34 40 43 34 40 43 34 40 43
++31 35 35 28 30 35 25 30 29 26 30 28 26 24 32 30 30 34 33 30 32 30 30 34
++30 30 34 30 30 34 30 30 34 26 30 28 30 30 34 31 35 35 33 30 36 31 35 35
++36 35 37 31 35 35 36 35 37 31 35 35 36 35 37 36 35 37 36 35 37 33 39 38
++33 39 38 33 39 38 31 35 35 31 35 35 33 39 38 36 35 37 34 40 43 33 39 38
++33 39 38 34 40 43 36 35 37 36 35 37 33 39 38 36 35 37 31 35 35 30 30 34
++30 30 34 22 25 24 23 18 22 14 16 17 14 16 17 14 16 17 14 16 17 17 12 17
++14 16 17 14 16 17 14 16 17 12 18 20 23 20 24 23 20 24 23 20 24 15 22 17
++23 20 24 23 18 22 14 16 17 23 18 22 15 22 17 23 18 22 23 20 24 14 16 17
++23 18 22 14 16 17 17 12 17 23 18 22 22 25 24 33 30 32 33 39 38 42 41 42
++42 41 42 35 47 50 48 50 48 48 50 48 33 39 38 22 25 24 22 25 24 36 35 37
++33 30 36 26 24 32 12 18 20 3 4 9 22 23 31 59 69 70 131 144 168 166 176 200
++150 168 183 166 176 200 194 199 226 166 176 200 166 176 200 194 199 226 201 216 228 208 221 247
++208 221 247 208 221 247 208 221 247 208 221 247 194 199 226 166 176 200 150 168 183 131 144 168
++131 144 168 131 144 168 131 144 168 150 168 183 166 176 200 166 176 200 166 176 200 166 176 200
++194 199 226 194 199 226 201 216 228 166 176 200 166 176 200 150 168 183 150 168 183 150 168 183
++150 168 183 150 168 183 166 176 200 166 176 200 166 176 200 166 176 200 150 168 183 150 168 183
++150 168 183 150 147 171 150 147 171 150 168 183 150 147 171 150 168 183 150 168 183 131 144 168
++150 168 183 150 147 171 131 144 168 131 144 168 150 168 183 150 168 183 150 168 183 150 168 183
++166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 194 199 226 166 176 200 166 176 200
++185 202 202 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226
++194 199 226 194 199 226 201 216 228 194 199 226 185 202 202 150 147 171 122 134 144 98 121 131
++95 108 128 98 121 131 121 143 132 126 147 144 150 168 183 166 174 181 194 199 226 185 202 202
++201 216 228 201 216 228 201 216 228 201 216 228 201 216 228 201 216 228 201 216 228 201 216 228
++201 216 228 166 176 200 129 144 153 94 105 108 75 81 82 53 63 61 53 63 61 59 69 70
++59 69 70 53 63 61 59 79 61 59 69 70 59 79 61 53 63 61 53 63 61 59 69 70
++59 69 70 60 82 70 59 69 70 60 81 83 75 81 82 60 81 83 60 81 83 78 98 90
++77 90 100 78 98 90 78 98 90 78 98 90 77 90 100 95 119 107 60 81 83 35 47 50
++22 25 24 7 10 17 14 16 17 23 18 22 22 25 24 15 22 17 23 18 22 23 20 24
++23 20 24 23 20 24 23 20 24 23 20 24 23 18 22 22 25 24 23 20 24 26 25 15
++23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 26 25 15 23 20 24
++23 20 24 23 20 24 23 20 24 26 30 28 26 30 28 26 24 32 26 30 28 22 25 24
++23 20 24 26 30 28 23 20 24 26 30 28 33 30 30 30 30 34 30 30 34 30 30 34
++36 35 37 36 35 37 42 41 42 42 47 42 47 49 42 65 63 61 88 83 74 75 81 82
++88 83 74 75 81 82 88 83 74 88 83 88 99 93 84 90 98 89 88 83 88 90 98 89
++90 98 89 88 83 88 78 98 90 88 83 88 75 81 82 75 81 76 75 81 76 75 81 76
++75 72 67 75 72 67 75 72 67 65 63 61 53 63 61 64 70 48 53 63 61 53 63 61
++59 57 61 64 70 48 53 63 61 64 70 48 53 63 61 65 63 61 64 70 48 65 63 61
++65 63 61 65 63 61 53 63 61 64 70 48 59 55 55 65 63 61 64 70 48 65 63 61
++53 63 61 64 70 48 53 63 61 65 63 61 65 63 61 75 72 67 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 65 63 61 59 69 70 75 72 67 59 69 70 59 79 61
++59 69 70 75 77 62 65 63 61 75 72 67 59 69 70 65 63 61 65 63 61 65 63 61
++59 57 61 59 55 55 54 57 61 59 55 55 52 55 48 48 50 48 47 49 42 48 44 48
++42 47 42 47 44 42 42 47 42 48 44 48 42 47 42 48 50 48 42 47 42 48 50 48
++42 47 42 43 42 50 42 47 42 42 47 42 42 47 42 42 47 42 48 44 48 42 47 42
++43 42 50 42 47 42 48 50 48 48 50 48 52 55 48 55 55 48 50 61 48 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 64 70 48 59 55 55 64 70 48 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 75 72 67 75 72 67 75 81 69 75 72 67
++75 72 67 75 81 69 75 72 67 60 82 70 75 72 67 75 72 67 75 81 69 59 69 70
++65 63 61 59 69 70 53 63 61 53 63 61 53 63 61 45 57 61 43 55 48 48 50 48
++42 47 42 48 50 48 35 46 43 42 47 42 42 47 42 42 47 42 47 44 42 51 49 42
++48 50 48 51 49 42 48 50 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48
++55 55 48 50 61 48 59 55 55 50 61 48 59 55 55 65 63 61 50 61 48 65 63 61
++53 63 61 65 63 61 65 63 61 64 70 48 65 63 61 53 63 61 59 55 55 65 63 61
++63 55 51 53 63 61 59 55 55 64 70 48 53 63 61 59 55 55 63 55 51 53 63 61
++59 57 61 64 70 48 59 57 61 64 70 48 59 55 55 65 63 61 53 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 60 82 70 75 72 67 75 81 69 75 72 67 75 81 76
++75 81 76 75 81 76 75 81 76 75 81 76 60 82 70 75 81 69 59 69 70 59 69 70
++65 63 61 59 69 70 65 63 61 53 63 61 59 57 61 53 63 61 53 63 61 54 57 61
++45 57 61 52 55 48 54 57 61 55 55 48 48 50 48 52 55 48 59 55 55 48 50 48
++52 55 48 48 50 48 51 49 42 48 50 48 48 50 48 42 47 42 42 47 42 47 44 42
++47 44 42 42 47 42 47 47 21 36 35 37 42 41 42 36 35 37 42 47 42 42 41 42
++
++101 83 74 101 83 74 101 83 74 117 99 86 101 83 74 95 91 100 112 96 108 112 96 108
++112 96 108 141 116 139 141 116 139 119 117 138 141 116 139 141 116 139 141 116 139 141 116 139
++131 144 168 141 116 139 131 144 168 141 116 139 150 147 171 131 144 168 150 147 171 150 147 171
++150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 131 144 168
++131 144 168 150 147 171 131 144 168 150 147 171 150 147 171 141 116 139 150 147 171 141 116 139
++150 147 171 141 116 139 141 116 139 141 116 139 141 116 139 141 116 139 141 116 139 141 116 139
++141 116 139 141 116 139 119 117 138 112 96 108 112 96 108 112 96 108 112 96 108 88 83 88
++88 83 88 75 64 82 75 72 67 63 59 71 65 57 61 59 55 55 59 55 55 55 55 48
++55 55 48 59 55 55 65 55 54 75 63 62 75 73 58 88 73 62 88 73 62 101 83 74
++117 112 45 120 63 71 117 114 76 117 99 86 117 112 45 117 99 86 167 63 71 117 99 86
++101 83 74 101 83 74 88 73 62 88 73 62 75 56 53 63 55 45 60 49 42 47 47 21
++33 39 38 32 39 24 30 30 34 28 30 35 28 35 38 33 39 38 34 40 43 43 42 50
++43 42 50 48 50 48 45 57 61 52 55 48 53 63 61 59 55 55 64 70 48 53 63 61
++65 63 61 75 73 58 64 70 48 75 73 58 64 70 48 75 73 58 65 63 61 75 73 58
++75 73 58 59 79 61 75 73 58 64 70 48 75 73 58 64 70 48 65 63 61 64 70 48
++64 70 48 64 70 48 75 56 53 64 70 48 75 56 53 75 73 58 65 63 61 75 73 58
++65 63 61 75 63 62 65 63 61 75 63 62 75 73 58 75 63 62 75 73 58 75 63 62
++65 63 61 65 63 61 65 55 54 64 70 48 59 55 55 59 55 55 59 55 55 63 55 51
++55 55 48 55 55 48 55 55 48 53 46 48 52 55 48 48 50 48 48 50 48 47 49 42
++51 49 42 48 50 48 47 49 42 47 49 42 48 50 48 42 47 42 42 47 42 42 47 42
++48 44 48 42 47 42 48 50 48 42 47 42 48 50 48 42 47 42 42 47 42 35 46 43
++42 47 42 43 42 50 35 46 43 43 55 48 43 42 50 43 55 48 48 50 48 48 50 48
++48 50 48 45 57 61 48 50 48 45 57 61 52 55 48 45 57 61 52 55 48 59 55 55
++55 55 48 59 55 55 50 61 48 59 55 55 59 55 55 53 63 61 64 70 48 59 55 55
++65 63 61 59 55 55 65 63 61 64 70 48 59 55 55 65 63 61 59 55 55 65 63 61
++55 55 48 59 55 55 55 55 48 63 55 51 59 55 55 55 55 48 55 55 48 55 55 48
++55 55 48 55 55 48 59 55 55 63 55 51 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 65 63 61 65 63 61 65 63 61 65 63 61 75 72 67 59 69 70 75 72 67
++75 64 82 75 72 67 75 72 67 75 81 76 75 72 67 75 81 76 75 81 76 75 81 76
++75 81 76 75 81 76 75 81 76 75 72 67 75 72 67 75 81 76 75 72 67 75 81 76
++59 69 70 75 72 67 59 69 70 75 72 67 59 69 70 65 63 61 65 63 61 59 57 61
++54 57 61 54 57 61 54 57 61 52 55 48 45 57 61 48 50 48 52 55 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 44 48 43 42 50 48 50 48 43 42 50 48 50 48
++48 50 48 48 50 48 59 55 55 48 50 48 59 55 55 55 55 48 55 55 48 59 55 55
++63 55 51 59 55 55 59 55 55 63 55 51 59 55 55 65 63 61 75 72 67 75 81 82
++75 81 76 75 72 67 54 57 61 42 41 42 22 23 31 23 20 24 23 20 24 26 24 32
++33 39 38 31 35 35 37 35 43 36 35 37 28 30 35 30 30 34 30 30 34 26 30 28
++30 30 34 28 30 35 28 35 38 28 35 38 33 39 38 28 35 38 30 30 34 28 30 35
++28 30 35 28 35 38 28 30 35 31 35 35 33 39 38 34 40 43 43 42 50 33 39 38
++31 35 35 28 30 35 25 30 29 25 30 29 26 30 28 30 30 34 33 30 30 30 30 34
++33 30 32 31 35 35 28 30 35 31 35 35 31 35 35 31 35 35 31 35 35 31 35 35
++31 35 35 31 35 35 36 35 37 36 35 37 36 35 37 36 35 37 34 40 43 33 39 38
++33 39 38 33 39 38 34 40 43 33 39 38 34 40 43 33 39 38 34 40 43 34 40 43
++33 39 38 36 35 37 31 35 35 31 35 35 36 35 37 33 30 36 31 35 35 33 30 32
++26 30 28 23 20 24 23 18 22 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17
++17 12 17 23 18 22 14 16 17 23 18 22 15 22 17 23 20 24 15 22 17 23 20 24
++23 20 24 22 25 24 23 20 24 23 18 22 23 20 24 12 18 20 23 18 22 15 22 17
++15 22 17 23 18 22 23 18 22 23 18 22 22 25 24 33 30 32 37 35 43 42 38 42
++34 40 43 43 42 50 43 42 50 34 40 43 23 30 35 25 30 29 25 30 29 26 24 32
++28 30 35 30 30 34 28 35 38 12 18 20 22 25 24 45 57 61 111 122 142 150 168 183
++150 168 183 150 168 183 166 176 200 194 199 226 194 199 226 194 199 226 201 216 228 208 221 247
++208 221 247 208 221 247 201 216 228 208 221 247 166 176 200 166 176 200 131 144 168 131 144 168
++111 122 142 131 144 168 131 144 168 150 168 183 166 176 200 166 176 200 166 176 200 194 199 226
++194 199 226 194 199 226 166 176 200 166 176 200 150 168 183 150 168 183 150 168 183 150 168 183
++150 168 183 150 168 183 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 150 168 183
++150 168 183 150 168 183 166 176 200 150 168 183 150 168 183 150 168 183 150 168 183 166 174 181
++150 168 183 150 168 183 150 168 183 150 168 183 150 168 183 150 168 183 150 168 183 150 168 183
++166 176 200 166 176 200 166 176 200 194 199 226 166 176 200 166 176 200 185 202 202 194 199 226
++166 176 200 194 199 226 185 202 202 166 176 200 194 199 226 185 202 202 185 202 202 166 176 200
++194 199 226 194 199 226 194 199 226 194 199 226 185 202 202 166 176 200 150 168 183 119 117 138
++111 119 127 94 105 108 94 105 108 94 105 108 111 119 127 122 134 144 129 144 153 148 160 159
++150 168 183 150 168 183 166 176 200 185 202 202 166 176 200 166 176 200 166 174 181 166 174 181
++122 134 144 94 105 108 75 81 76 54 57 61 45 57 61 53 63 61 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 59 79 61 53 63 61 59 69 70 59 69 70 59 69 70
++59 69 70 59 69 70 75 81 82 60 81 83 75 81 76 60 81 83 75 81 90 60 81 83
++78 98 90 77 90 100 77 90 100 77 90 100 78 98 90 77 91 115 78 98 90 60 81 83
++28 30 35 14 16 17 23 18 22 23 20 24 15 22 17 23 18 22 23 18 22 22 25 24
++22 25 24 22 25 24 22 25 24 23 20 24 15 22 17 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 26 25 15 23 20 24 22 25 24 22 25 24 23 20 24 23 20 24
++22 25 24 22 25 24 33 30 30 23 20 24 26 30 28 22 25 24 26 24 32 22 25 24
++26 30 28 22 25 24 26 30 28 33 30 30 26 30 28 30 30 34 30 30 34 30 30 34
++31 35 35 42 41 42 33 39 38 42 41 42 47 44 42 65 63 61 75 81 76 88 83 88
++90 98 89 90 98 89 90 98 89 90 98 89 88 83 88 90 98 89 90 98 89 90 98 89
++88 83 88 78 98 90 88 83 88 78 98 90 75 81 76 75 81 82 75 81 76 75 81 76
++75 81 76 60 82 70 75 72 67 65 63 61 65 63 61 53 63 61 59 55 55 50 61 48
++59 55 55 59 55 55 53 63 61 65 63 61 59 57 61 65 63 61 53 63 61 65 63 61
++64 70 48 59 57 61 59 55 55 53 63 61 59 55 55 53 63 61 59 55 55 53 63 61
++65 63 61 53 63 61 65 63 61 59 79 61 59 69 70 59 69 70 59 69 70 65 63 61
++59 69 70 65 63 61 59 69 70 59 69 70 75 72 67 59 69 70 65 63 61 75 72 67
++59 79 61 75 72 67 59 69 70 75 72 67 65 63 61 65 63 61 65 63 61 53 63 61
++59 55 55 59 57 61 52 55 48 48 50 48 52 55 48 48 50 48 48 44 48 47 49 42
++48 50 48 48 44 48 48 50 48 48 50 48 48 50 48 48 44 48 48 50 48 48 50 48
++48 50 48 42 47 42 48 50 48 48 50 48 48 50 48 47 49 42 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 54 57 61 55 55 48 59 55 55 59 55 55
++64 70 48 53 63 61 65 63 61 64 70 48 59 55 55 63 55 51 65 63 61 65 63 61
++65 63 61 75 73 58 65 63 61 75 73 58 59 79 61 75 72 67 75 72 67 75 81 69
++75 81 76 75 72 67 75 81 76 75 81 76 75 72 67 60 82 70 75 72 67 59 69 70
++75 72 67 59 69 70 59 79 61 53 63 61 53 63 61 52 55 48 52 55 48 43 55 48
++48 50 48 35 47 50 42 47 42 43 42 50 42 47 42 48 44 48 42 47 42 47 44 42
++47 49 42 48 50 48 52 55 48 52 55 48 52 55 48 53 46 48 55 55 48 55 55 48
++55 55 48 59 55 55 59 55 55 59 55 55 53 63 61 55 55 48 64 70 48 59 55 55
++64 70 48 53 63 61 59 55 55 53 63 61 59 55 55 64 70 48 59 57 61 65 63 61
++53 63 61 63 55 51 53 63 61 59 55 55 59 55 55 64 70 48 59 55 55 50 61 48
++59 55 55 59 55 55 53 63 61 59 57 61 53 63 61 64 70 48 59 57 61 64 70 48
++53 63 61 65 63 61 59 79 61 75 72 67 75 72 67 75 81 76 75 81 76 75 81 76
++75 81 76 75 81 76 75 81 76 75 72 67 59 69 70 75 72 67 59 69 70 75 72 67
++59 69 70 65 63 61 59 69 70 53 63 61 53 63 61 59 57 61 54 57 61 52 55 48
++52 55 48 54 57 61 48 50 48 52 55 48 52 55 48 52 55 48 48 50 48 52 55 48
++48 50 48 53 46 48 48 50 48 48 50 48 47 49 42 42 47 42 47 44 42 47 44 42
++47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++
++101 83 74 101 83 74 117 99 86 101 83 74 95 91 100 117 99 86 112 96 108 112 96 108
++138 102 108 119 117 138 119 117 138 141 116 139 150 144 154 141 116 139 150 147 171 150 147 171
++141 116 139 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171
++150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171
++150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171
++150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 141 116 139 150 144 154 141 116 139
++141 116 139 141 116 139 141 116 139 141 116 139 119 117 138 112 96 108 112 96 108 95 91 100
++88 83 88 75 64 82 75 64 82 63 59 71 65 57 61 59 55 55 53 46 48 53 46 48
++55 55 48 63 55 51 63 55 51 75 56 53 75 56 53 88 73 62 88 73 62 101 83 74
++120 63 71 117 114 76 120 63 71 117 99 86 167 63 71 117 99 86 117 99 86 117 99 86
++117 112 45 120 63 71 88 73 62 88 73 62 75 56 53 63 55 45 60 49 42 47 44 42
++33 39 38 33 30 30 30 30 34 28 30 35 28 35 38 37 35 43 34 40 43 35 46 43
++35 47 50 48 50 48 48 50 48 52 55 48 52 55 48 53 63 61 50 61 48 65 63 61
++64 70 48 65 63 61 65 63 61 65 63 61 75 73 58 59 79 61 75 73 58 65 63 61
++75 73 58 65 63 61 75 73 58 75 73 58 64 70 48 75 73 58 64 70 48 75 63 62
++64 70 48 64 70 48 65 55 54 75 73 58 75 56 53 75 73 58 64 70 48 65 63 61
++75 63 62 75 73 58 75 63 62 75 73 58 65 63 61 75 73 58 75 63 62 75 63 62
++65 63 61 65 63 61 65 63 61 65 55 54 59 55 55 63 55 51 63 55 51 59 55 55
++59 55 55 59 55 55 55 55 48 48 50 48 53 46 48 48 50 48 47 49 42 47 49 42
++47 49 42 47 49 42 47 44 42 47 49 42 42 41 42 42 47 42 42 47 42 43 42 50
++42 47 42 48 50 48 42 47 42 43 42 50 35 46 43 43 42 50 35 46 43 42 47 42
++35 46 43 42 47 42 42 47 42 42 47 42 42 47 42 43 42 50 43 55 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 52 55 48 52 55 48 54 57 61
++55 55 48 53 63 61 55 55 48 59 55 55 50 61 48 59 55 55 59 55 55 65 63 61
++59 55 55 65 63 61 59 55 55 59 57 61 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 55 55 48 55 55 48 59 55 55 55 55 48 55 55 48 53 46 48 52 55 48
++52 55 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 50 61 48 59 55 55
++59 55 55 59 55 55 59 57 61 65 63 61 65 63 61 65 63 61 59 69 70 75 72 67
++75 72 67 75 81 76 75 81 76 75 72 67 75 64 82 75 81 76 88 69 84 75 81 76
++75 72 67 88 83 74 75 81 76 75 81 76 75 64 82 75 81 76 75 72 67 75 72 67
++75 64 82 75 81 76 75 72 67 63 59 71 75 72 67 65 63 61 59 69 70 65 63 61
++59 57 61 59 57 61 54 57 61 54 57 61 54 57 61 59 55 55 55 55 48 52 55 48
++54 57 61 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 43 42 50
++48 50 48 48 50 48 48 50 48 54 57 61 59 55 55 59 55 55 55 55 48 59 55 55
++59 55 55 63 55 51 59 55 55 55 55 48 65 63 61 88 83 74 90 98 89 88 83 88
++59 69 70 63 59 71 59 57 61 48 50 48 28 30 35 23 20 24 22 25 24 22 23 31
++28 30 35 33 30 36 28 35 38 36 35 37 30 30 34 25 30 29 30 30 34 26 30 28
++30 30 34 28 30 35 28 30 35 31 35 35 34 40 43 34 40 43 34 40 43 28 35 38
++28 35 38 28 35 38 31 35 35 31 35 35 33 39 38 34 40 43 42 41 42 34 40 43
++33 39 38 31 35 35 31 35 35 30 30 34 26 30 28 26 24 32 26 30 28 25 30 29
++30 30 34 30 30 34 31 35 35 31 35 35 31 35 35 36 35 37 36 35 37 36 35 37
++36 35 37 33 39 38 36 35 37 33 39 38 36 35 37 33 39 38 42 38 42 42 41 42
++34 40 43 34 40 43 42 41 42 43 42 50 42 41 42 42 47 42 42 41 42 42 41 42
++34 40 43 33 39 38 36 35 37 31 35 35 30 30 34 30 30 34 31 35 35 30 30 34
++22 25 24 23 20 24 14 16 17 14 16 17 14 16 17 14 16 17 17 12 17 14 16 17
++14 16 17 14 16 17 23 18 22 14 16 17 23 18 22 12 18 20 23 20 24 22 25 24
++22 23 31 22 25 24 22 25 24 22 25 24 23 18 22 14 16 17 14 16 17 14 16 17
++23 18 22 15 22 17 23 20 24 23 20 24 23 20 24 30 30 34 36 35 37 36 35 37
++42 41 42 35 46 43 43 42 50 33 39 38 31 35 35 31 35 35 28 30 35 12 18 20
++23 18 22 26 24 32 33 39 38 28 35 38 35 47 50 60 81 83 98 121 131 150 168 183
++150 168 183 150 168 183 166 176 200 166 176 200 194 199 226 194 199 226 208 221 247 208 221 247
++208 221 247 208 221 247 194 199 226 208 221 247 166 176 200 131 144 168 131 144 168 131 144 168
++131 144 168 150 168 183 150 168 183 166 176 200 166 176 200 194 199 226 194 199 226 201 216 228
++166 176 200 166 176 200 150 168 183 150 168 183 150 168 183 150 168 183 150 168 183 150 168 183
++150 168 183 150 168 183 150 168 183 166 176 200 185 202 202 166 176 200 185 202 202 166 176 200
++185 202 202 166 176 200 188 180 202 166 176 200 188 180 202 166 176 200 166 176 200 166 176 200
++166 176 200 166 174 181 166 174 181 150 168 183 150 147 171 150 168 183 150 168 183 150 168 183
++150 168 183 166 176 200 150 168 183 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200
++166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 194 199 226 166 176 200 194 199 226
++185 202 202 166 176 200 166 176 200 166 176 200 166 176 200 185 202 202 166 176 200 166 174 181
++129 144 153 122 134 144 95 119 107 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108
++95 119 107 98 121 131 121 143 132 122 134 144 126 147 144 98 121 131 94 105 108 75 81 90
++59 69 70 53 63 61 53 63 61 53 63 61 59 69 70 59 69 70 75 72 67 59 69 70
++65 63 61 59 69 70 75 72 67 59 69 70 59 79 61 59 69 70 53 63 61 59 69 70
++59 69 70 60 82 70 59 69 70 59 69 70 60 81 83 60 81 83 75 81 82 78 98 90
++60 81 83 60 81 83 78 98 90 77 90 100 78 98 90 78 98 90 94 105 108 78 98 90
++35 47 50 23 20 24 7 10 17 14 16 17 14 16 17 14 16 17 15 22 17 23 20 24
++23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 15 22 17 23 18 22 22 25 24
++23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 26 30 28 23 20 24 23 20 24
++22 25 24 23 20 24 22 25 24 22 25 24 26 24 32 22 25 24 22 25 24 22 25 24
++22 25 24 26 24 32 33 30 30 26 30 28 33 30 30 33 30 32 30 30 34 30 30 34
++31 35 35 36 35 37 36 35 37 42 47 42 42 47 42 59 55 55 75 81 69 75 81 76
++90 98 89 88 83 74 88 83 88 90 98 89 90 98 89 90 98 89 90 98 89 88 83 88
++90 98 89 90 98 89 88 83 88 90 98 89 75 81 82 88 83 88 75 81 76 75 81 76
++75 81 76 75 81 76 75 72 67 59 79 61 65 63 61 65 63 61 53 63 61 59 57 61
++50 61 48 50 61 48 59 55 55 50 61 48 59 55 55 50 61 48 59 55 55 59 55 55
++59 57 61 64 70 48 53 63 61 59 55 55 50 61 48 63 55 51 53 63 61 59 55 55
++53 63 61 64 70 48 65 63 61 53 63 61 65 63 61 65 63 61 59 69 70 65 63 61
++59 69 70 59 69 70 59 69 70 75 72 67 59 69 70 59 69 70 59 69 70 59 69 70
++65 63 61 75 72 67 65 63 61 65 63 61 75 72 67 65 63 61 65 63 61 65 63 61
++59 57 61 59 55 55 54 57 61 59 55 55 52 55 48 48 50 48 48 50 48 48 50 48
++47 49 42 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 42 47 42 48 50 48 48 50 48 48 50 48 43 55 48
++48 50 48 48 50 48 48 50 48 48 50 48 52 55 48 59 55 55 50 61 48 59 55 55
++65 63 61 65 63 61 65 63 61 59 55 55 64 70 48 65 63 61 64 70 48 65 63 61
++65 63 61 65 63 61 75 77 62 65 63 61 75 72 67 75 72 67 75 72 67 75 72 67
++75 81 76 75 81 76 75 72 67 75 81 76 75 81 76 75 81 76 75 81 76 75 81 76
++75 72 67 59 69 70 59 69 70 65 63 61 53 63 61 53 63 61 43 55 48 45 57 61
++48 50 48 42 47 42 42 47 42 42 47 42 42 47 42 42 47 42 47 44 42 48 44 48
++47 49 42 48 50 48 52 55 48 53 46 48 52 55 48 53 46 48 52 55 48 52 55 48
++55 55 48 55 55 48 50 61 48 59 55 55 55 55 48 53 63 61 55 55 48 53 63 61
++55 55 48 59 55 55 55 55 48 53 63 61 59 55 55 53 63 61 59 55 55 55 55 48
++65 63 61 50 61 48 59 55 55 50 61 48 55 55 48 52 55 48 59 55 55 55 55 48
++59 55 55 50 61 48 63 55 51 50 61 48 59 55 55 59 55 55 59 55 55 59 57 61
++64 70 48 65 63 61 65 63 61 59 69 70 75 72 67 59 69 70 75 72 67 75 81 76
++75 81 76 75 81 76 75 81 76 75 81 76 59 69 70 75 72 67 59 69 70 59 69 70
++59 69 70 59 79 61 53 63 61 65 63 61 59 57 61 53 63 61 54 57 61 59 55 55
++45 57 61 52 55 48 48 50 48 54 57 61 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 47 49 42 42 47 42 42 41 42 42 47 42
++47 44 42 42 41 42 42 41 42 42 47 42 36 35 37 42 41 42 42 47 42 47 44 42
++
++88 83 74 101 83 74 95 91 100 112 96 108 112 96 108 112 96 108 111 119 127 111 119 127
++119 117 138 119 117 138 145 140 145 145 140 145 131 144 168 150 147 171 150 147 171 150 147 171
++150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171
++150 147 171 150 147 171 166 176 200 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171
++150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171
++150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171
++131 144 168 141 116 139 141 116 139 141 116 139 119 117 138 119 117 138 112 96 108 95 95 116
++95 91 100 75 81 90 75 64 82 75 72 67 63 59 71 54 57 61 53 46 48 48 50 48
++48 50 48 53 46 48 55 55 48 65 55 54 75 73 58 75 56 53 88 73 31 101 83 74
++101 83 74 120 63 71 117 112 45 117 99 86 117 112 45 117 99 86 120 63 71 117 112 45
++120 63 71 117 99 86 101 83 74 88 73 62 88 73 31 75 56 53 60 49 42 55 39 37
++32 39 24 36 35 37 32 39 24 31 35 35 31 35 35 33 39 38 42 41 42 42 41 42
++42 47 42 42 47 42 48 50 48 50 61 48 52 55 48 50 61 48 63 55 51 53 63 61
++64 70 48 65 63 61 64 70 48 64 70 48 65 63 61 75 73 58 75 73 58 75 73 58
++64 70 48 75 73 58 64 70 48 75 73 58 75 73 58 75 73 58 64 70 48 64 70 48
++64 70 48 75 56 53 64 70 48 64 70 48 65 63 61 75 73 58 75 56 53 75 73 58
++75 63 62 75 73 58 75 63 62 75 73 58 75 63 62 75 73 58 75 63 62 75 73 58
++75 63 62 75 63 62 65 63 61 65 55 54 65 63 61 63 55 51 65 63 61 63 55 51
++59 55 55 55 55 48 55 55 48 53 46 48 51 49 42 47 49 42 47 49 42 47 49 42
++47 49 42 47 44 42 47 49 42 47 44 42 42 47 42 42 47 42 42 41 42 42 47 42
++42 47 42 48 44 48 42 47 42 42 47 42 42 47 42 42 47 42 42 47 42 42 41 42
++35 46 43 42 47 42 42 47 42 42 47 42 42 47 42 43 55 48 43 42 50 48 50 48
++43 55 48 43 42 50 48 50 48 45 57 61 48 50 48 45 57 61 52 55 48 52 55 48
++54 57 61 55 55 48 59 55 55 53 63 61 59 55 55 53 63 61 59 55 55 59 55 55
++53 63 61 59 55 55 53 63 61 59 55 55 59 55 55 59 55 55 59 55 55 55 55 48
++50 61 48 52 55 48 50 61 48 52 55 48 59 55 55 48 50 48 52 55 48 48 50 48
++48 50 48 55 55 48 48 50 48 59 55 55 59 55 55 52 55 48 59 55 55 59 55 55
++59 55 55 59 55 55 65 63 61 65 63 61 65 63 61 65 63 61 75 72 67 75 72 67
++75 72 67 75 81 76 75 72 67 75 72 67 75 81 76 75 72 67 75 81 76 75 81 76
++75 81 76 75 81 76 88 69 84 75 81 76 75 81 76 75 72 67 75 81 76 75 81 76
++75 81 76 75 81 76 75 64 82 75 72 67 59 69 70 75 72 67 65 63 61 65 63 61
++65 63 61 65 63 61 59 57 61 59 57 61 59 57 61 54 57 61 59 55 55 54 57 61
++59 55 55 48 50 48 54 57 61 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 45 57 61 48 50 48 59 55 55 52 55 48 59 55 55 55 55 48 59 55 55
++52 55 48 52 55 48 55 55 48 59 55 55 75 81 76 95 91 100 95 91 100 75 81 76
++59 57 61 59 69 70 59 69 70 54 57 61 34 40 43 26 24 32 22 23 31 23 20 24
++25 30 29 26 24 32 30 30 34 33 30 36 28 35 38 28 30 35 26 24 32 28 30 35
++30 30 34 30 30 34 30 30 34 33 30 36 34 40 43 34 40 43 36 35 37 28 35 38
++37 35 43 28 35 38 31 35 35 33 39 38 34 40 43 34 40 43 43 42 50 43 42 50
++34 40 43 34 40 43 34 40 43 36 35 37 31 35 35 33 30 32 30 30 34 30 30 34
++30 30 34 31 35 35 31 35 35 31 35 35 36 35 37 33 39 38 42 41 42 42 41 42
++42 41 42 33 39 38 37 35 43 36 35 37 36 35 37 37 35 43 42 41 42 35 46 43
++42 41 42 42 41 42 34 40 43 35 46 43 42 41 42 35 46 43 34 40 43 42 47 42
++42 41 42 42 41 42 33 39 38 36 35 37 31 35 35 30 30 34 31 35 35 31 35 35
++26 30 28 23 20 24 23 18 22 14 16 17 14 16 17 7 12 13 14 16 17 14 16 17
++23 18 22 14 16 17 14 16 17 23 20 24 12 18 20 23 18 22 23 20 24 22 25 24
++22 25 24 23 20 24 12 18 20 14 16 17 14 16 17 14 16 17 14 16 17 23 18 22
++23 20 24 23 20 24 23 20 24 23 18 22 22 25 24 22 25 24 30 30 34 33 30 36
++36 35 37 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 28 30 35 17 12 17
++7 10 17 14 16 17 22 23 31 35 47 50 75 81 90 111 122 142 129 144 153 129 144 153
++131 144 168 150 168 183 166 176 200 185 202 202 194 199 226 194 199 226 201 216 228 208 221 247
++208 221 247 208 221 247 194 199 226 194 199 226 150 168 183 131 144 168 131 144 168 131 144 168
++131 144 168 150 168 183 166 176 200 194 199 226 194 199 226 194 199 226 166 176 200 166 176 200
++150 168 183 150 168 183 131 144 168 150 168 183 131 144 168 131 144 168 131 144 168 150 168 183
++150 168 183 150 168 183 166 176 200 150 168 183 166 176 200 166 176 200 166 176 200 185 202 202
++166 176 200 166 176 200 185 202 202 166 176 200 166 176 200 166 176 200 166 176 200 166 174 181
++150 168 183 150 168 183 150 168 183 166 174 181 150 168 183 150 147 171 131 144 168 131 144 168
++148 160 159 131 144 168 150 168 183 131 144 168 150 168 183 150 168 183 150 168 183 150 168 183
++150 168 183 150 168 183 166 176 200 166 176 200 166 176 200 166 174 181 166 176 200 166 176 200
++150 168 183 166 176 200 166 174 181 166 176 200 185 202 202 166 176 200 185 202 202 166 176 200
++166 174 181 148 160 159 122 134 144 111 119 127 94 105 108 94 105 108 78 98 90 77 90 100
++94 105 108 78 98 90 77 90 100 90 98 89 75 81 90 59 69 70 53 63 61 45 57 61
++53 63 61 53 63 61 59 69 70 75 72 67 59 69 70 75 72 67 59 69 70 60 82 70
++75 72 67 59 69 70 59 69 70 59 79 61 65 63 61 59 69 70 59 79 61 59 69 70
++59 69 70 59 69 70 75 72 67 60 82 70 75 81 76 75 81 76 60 81 83 60 81 83
++75 81 82 78 98 90 60 81 83 77 90 100 77 90 100 78 98 90 77 90 100 78 98 90
++60 81 83 33 39 38 12 18 20 7 12 13 14 16 17 23 18 22 14 16 17 23 18 22
++15 22 17 23 20 24 22 25 24 15 22 17 23 20 24 23 20 24 22 25 24 23 18 22
++22 25 24 26 25 15 23 20 24 22 25 24 26 25 15 23 20 24 22 25 24 26 25 15
++26 24 32 26 25 15 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 26 24 32
++22 25 24 26 30 28 26 24 32 26 30 28 26 30 28 26 30 28 30 30 34 30 30 34
++33 30 30 36 35 37 42 47 42 42 41 42 42 47 42 52 55 48 75 72 67 75 81 76
++90 98 89 90 98 89 90 98 89 90 98 89 90 98 89 95 91 100 90 98 89 90 98 89
++77 90 100 90 98 89 77 90 100 88 83 88 78 98 90 75 81 76 75 81 82 75 81 76
++75 81 76 75 72 67 59 69 70 65 63 61 65 63 61 53 63 61 53 63 61 59 55 55
++53 63 61 59 55 55 50 61 48 59 57 61 53 63 61 59 55 55 53 63 61 55 55 48
++59 55 55 54 57 61 55 55 48 59 55 55 53 63 61 59 55 55 59 55 55 50 61 48
++65 63 61 53 63 61 53 63 61 65 63 61 59 79 61 59 69 70 59 69 70 65 63 61
++59 69 70 75 72 67 59 69 70 59 69 70 75 72 67 59 69 70 75 72 67 59 69 70
++59 79 61 75 72 67 59 69 70 75 72 67 59 69 70 65 63 61 65 63 61 65 63 61
++59 55 55 54 57 61 55 55 48 55 55 48 55 55 48 52 55 48 53 46 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 53 46 48 48 50 48 52 55 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 52 55 48 55 55 48 59 55 55 53 63 61
++63 55 51 53 63 61 63 55 51 64 70 48 65 63 61 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 75 72 67 65 63 61 75 72 67 75 72 67 75 81 76 75 81 69
++75 81 76 75 81 69 75 81 76 75 81 76 75 81 76 59 69 70 75 81 76 59 69 70
++75 81 76 59 69 70 59 69 70 59 69 70 53 63 61 54 57 61 45 57 61 43 55 48
++43 55 48 43 42 50 42 47 42 43 42 50 42 47 42 47 44 42 42 47 42 47 44 42
++47 44 42 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 52 55 48 52 55 48
++52 55 48 52 55 48 59 55 55 50 61 48 59 55 55 59 55 55 59 55 55 50 61 48
++59 55 55 50 61 48 52 55 48 59 55 55 53 63 61 59 55 55 50 61 48 59 55 55
++50 61 48 59 55 55 55 55 48 52 55 48 52 55 48 52 55 48 52 55 48 52 55 48
++52 55 48 52 55 48 59 55 55 55 55 48 55 55 48 50 61 48 53 63 61 64 70 48
++53 63 61 65 63 61 59 79 61 75 72 67 75 72 67 60 82 70 75 72 67 75 81 76
++75 72 67 75 81 76 75 81 76 75 72 67 75 81 76 59 69 70 59 69 70 75 72 67
++59 69 70 65 63 61 53 63 61 53 63 61 53 63 61 54 57 61 54 57 61 48 50 48
++48 50 48 45 57 61 59 55 55 48 50 48 48 50 48 48 50 48 48 50 48 54 57 61
++48 50 48 48 50 48 48 50 48 48 50 48 42 47 42 42 47 42 42 41 42 42 41 42
++42 47 42 42 41 42 42 47 42 33 39 38 42 47 42 47 44 42 47 49 42 48 50 48
++
++88 69 84 99 93 84 99 93 84 117 99 86 112 96 108 112 96 108 111 119 127 119 117 138
++141 116 139 122 134 144 145 140 145 150 144 154 150 147 171 150 147 171 150 147 171 150 147 171
++150 147 171 150 147 171 166 176 200 150 147 171 166 176 200 150 147 171 188 180 202 150 147 171
++166 176 200 166 176 200 150 147 171 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200
++166 176 200 166 156 164 166 176 200 150 147 171 166 176 200 189 165 168 166 176 200 166 156 164
++166 176 200 166 156 164 166 176 200 150 147 171 166 156 164 150 147 171 150 147 171 150 147 171
++150 147 171 150 147 171 131 144 168 141 116 139 141 116 139 119 117 138 119 117 138 112 96 108
++95 95 116 88 83 88 75 81 82 75 64 82 63 59 71 59 57 61 54 57 61 48 44 48
++48 44 48 47 49 42 53 46 48 55 55 48 63 55 45 75 56 53 88 73 62 88 73 31
++101 83 74 98 106 55 120 63 71 117 99 86 120 63 71 117 112 45 117 99 86 117 99 86
++117 99 86 101 83 74 101 83 74 88 73 62 88 73 62 75 56 53 60 49 42 51 49 42
++47 44 42 33 39 38 30 30 34 31 35 35 30 30 34 33 39 38 34 40 43 35 46 43
++43 42 50 43 55 48 48 50 48 52 55 48 55 55 48 50 61 48 50 61 48 64 70 48
++65 63 61 65 63 61 65 63 61 59 79 61 75 73 58 65 63 61 75 73 58 65 63 61
++75 73 58 75 73 58 75 73 58 64 70 48 75 73 58 64 70 48 75 73 58 75 73 58
++64 70 48 75 73 58 64 70 48 75 63 62 64 70 48 75 63 62 75 73 58 75 73 58
++75 63 62 75 73 58 75 63 62 75 72 67 88 73 62 75 73 58 75 63 62 75 63 62
++75 63 62 75 63 62 75 63 62 75 63 62 65 55 54 65 63 61 65 55 54 63 55 51
++59 55 55 55 55 48 55 55 48 51 49 42 48 50 48 51 49 42 47 49 42 47 49 42
++47 49 42 47 44 42 42 47 42 47 44 42 42 47 42 42 41 42 42 47 42 42 41 42
++42 47 42 42 47 42 43 42 50 42 47 42 42 41 42 35 46 43 42 41 42 35 46 43
++42 47 42 42 47 42 35 46 43 42 47 42 43 42 50 42 47 42 35 47 50 48 50 48
++43 42 50 48 50 48 48 50 48 48 50 48 43 55 48 48 50 48 48 50 48 54 57 61
++52 55 48 52 55 48 50 61 48 59 55 55 55 55 48 59 55 55 59 55 55 53 63 61
++59 55 55 59 55 55 59 55 55 50 61 48 59 55 55 59 55 55 55 55 48 52 55 48
++52 55 48 52 55 48 52 55 48 48 50 48 54 57 61 48 50 48 48 50 48 52 55 48
++48 50 48 53 46 48 48 50 48 52 55 48 52 55 48 48 50 48 52 55 48 52 55 48
++59 55 55 65 55 54 59 57 61 65 63 61 65 63 61 65 63 61 75 72 67 59 69 70
++75 72 67 75 72 67 75 64 82 75 81 76 75 81 76 75 81 76 75 72 67 75 81 76
++88 83 74 75 81 76 88 83 74 75 81 76 88 69 84 75 81 76 75 81 76 75 72 67
++75 81 76 75 64 82 75 72 67 75 81 76 75 72 67 75 72 67 59 69 70 65 63 61
++59 57 61 65 63 61 59 57 61 65 63 61 59 57 61 59 57 61 54 57 61 59 55 55
++54 57 61 54 57 61 48 50 48 54 57 61 53 46 48 54 57 61 48 50 48 48 50 48
++45 57 61 48 50 48 52 55 48 59 55 55 54 57 61 52 55 48 59 55 55 59 55 55
++59 55 55 48 50 48 59 55 55 75 72 67 90 98 89 95 91 100 90 98 89 75 81 76
++59 69 70 75 64 82 59 69 70 53 63 61 43 42 50 30 30 34 22 23 31 23 20 24
++22 23 31 26 24 32 28 30 35 28 30 35 33 30 36 28 30 35 25 30 29 28 30 35
++30 30 34 31 35 35 33 30 36 30 30 34 28 30 35 28 35 38 28 35 38 37 35 43
++28 35 38 33 30 36 34 40 43 28 35 38 34 40 43 34 40 43 34 40 43 35 47 50
++43 42 50 43 42 50 42 41 42 34 40 43 42 38 42 36 35 37 31 35 35 31 35 35
++36 35 37 36 35 37 36 35 37 36 35 37 42 38 42 33 39 38 42 41 42 34 40 43
++33 39 38 36 35 37 31 35 35 30 30 34 25 30 29 30 30 34 25 30 29 25 30 29
++25 30 29 25 30 29 22 25 24 25 30 29 22 23 31 25 30 29 25 30 29 25 30 29
++28 30 35 33 39 38 33 39 38 42 41 42 34 40 43 42 38 42 42 41 42 37 35 43
++30 30 34 25 30 29 23 20 24 14 16 17 17 12 17 7 12 13 7 12 13 14 16 17
++17 12 17 14 16 17 14 16 17 14 16 17 23 18 22 12 18 20 23 18 22 14 16 17
++14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 23 20 24 23 20 24
++22 25 24 22 25 24 15 22 17 14 16 17 23 18 22 23 18 22 22 25 24 30 30 34
++36 35 37 42 41 42 48 44 48 54 57 61 48 50 48 48 44 48 26 24 32 7 10 17
++7 12 13 14 16 17 22 23 31 54 57 61 94 105 108 129 144 153 150 168 183 131 144 168
++150 168 183 150 168 183 166 176 200 166 176 200 194 199 226 201 216 228 194 199 226 208 221 247
++201 216 228 208 221 247 194 199 226 166 176 200 131 144 168 131 144 168 131 144 168 150 168 183
++166 176 200 166 176 200 194 199 226 185 202 202 194 199 226 166 176 200 150 168 183 150 168 183
++131 144 168 131 144 168 131 144 168 150 168 183 131 144 168 150 168 183 131 144 168 150 168 183
++150 168 183 150 168 183 150 168 183 150 168 183 150 168 183 166 176 200 166 176 200 166 176 200
++166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200
++166 176 200 166 174 181 150 168 183 150 168 183 150 168 183 148 160 159 150 168 183 150 171 159
++131 144 168 131 144 168 129 144 153 129 144 153 148 160 159 131 144 168 150 168 183 150 168 183
++150 171 159 150 168 183 150 168 183 131 144 168 148 160 159 148 160 159 150 171 159 150 168 183
++150 168 183 148 160 159 150 168 183 150 171 159 150 168 183 166 174 181 166 174 181 166 180 164
++150 168 183 129 144 153 121 143 132 111 119 127 95 119 107 94 105 108 94 105 108 94 105 108
++90 98 89 88 83 88 75 81 76 59 69 70 59 69 70 53 63 61 53 63 61 65 63 61
++59 69 70 59 69 70 75 72 67 59 69 70 75 72 67 59 69 70 75 72 67 59 69 70
++75 72 67 59 69 70 65 63 61 59 69 70 59 79 61 59 69 70 59 79 61 59 69 70
++59 79 61 75 72 67 60 82 70 59 69 70 60 82 70 60 81 83 75 81 76 60 81 83
++60 81 83 60 81 83 77 90 100 60 81 83 75 81 90 78 98 90 77 90 100 78 98 90
++77 90 100 54 57 61 22 25 24 7 12 13 14 16 17 15 22 17 17 12 17 15 22 17
++23 18 22 23 20 24 15 22 17 22 25 24 23 20 24 22 24 13 23 18 22 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 26 25 15 26 30 28 23 20 24
++26 30 28 22 25 24 22 25 24 26 25 15 22 25 24 23 20 24 22 25 24 22 25 24
++26 24 32 23 20 24 26 30 28 26 24 32 26 30 28 33 30 30 33 30 30 30 30 34
++33 30 32 32 39 24 36 35 37 47 44 42 42 47 42 52 55 48 65 63 61 75 81 76
++88 83 88 90 98 89 88 83 88 90 98 89 95 91 100 90 98 89 90 98 89 95 91 100
++90 98 89 88 83 88 90 98 89 90 98 89 75 81 82 88 83 88 75 81 82 75 81 82
++75 81 76 75 81 76 75 81 69 59 69 70 65 63 61 53 63 61 59 55 55 53 63 61
++50 61 48 54 57 61 50 61 48 59 55 55 55 55 48 59 55 55 55 55 48 53 63 61
++59 55 55 55 55 48 53 63 61 55 55 48 55 55 48 55 55 48 53 63 61 59 55 55
++54 57 61 64 70 48 65 63 61 53 63 61 65 63 61 59 69 70 65 63 61 59 69 70
++65 63 61 59 69 70 59 69 70 75 72 67 59 69 70 59 69 70 59 69 70 75 72 67
++59 69 70 75 72 67 65 63 61 65 63 61 75 72 67 59 69 70 65 63 61 65 63 61
++59 57 61 59 57 61 59 55 55 59 55 55 59 55 55 55 55 48 52 55 48 52 55 48
++55 55 48 48 50 48 55 55 48 53 46 48 48 50 48 53 46 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 44 48 48 50 48 48 50 48 54 57 61 52 55 48 52 55 48
++52 55 48 48 50 48 52 55 48 48 50 48 59 55 55 55 55 48 59 55 55 59 55 55
++59 55 55 64 70 48 53 63 61 59 55 55 65 63 61 64 70 48 65 63 61 65 63 61
++75 73 58 65 63 61 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 81 76
++75 81 69 75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 75 81 76
++75 81 76 59 69 70 59 79 61 59 69 70 53 63 61 53 63 61 54 57 61 45 57 61
++43 55 48 48 50 48 43 42 50 42 47 42 42 41 42 47 44 42 47 44 42 42 41 42
++47 44 42 47 49 42 53 46 48 48 50 48 53 46 48 48 50 48 53 46 48 48 50 48
++52 55 48 52 55 48 48 50 48 52 55 48 52 55 48 54 57 61 55 55 48 54 57 61
++52 55 48 48 50 48 50 61 48 52 55 48 54 57 61 54 57 61 59 55 55 55 55 48
++59 55 55 55 55 48 52 55 48 52 55 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 52 55 48 52 55 48 52 55 48 55 55 48 55 55 48 59 55 55 50 61 48
++65 63 61 65 63 61 65 63 61 65 63 61 59 69 70 75 72 67 75 72 67 75 81 76
++59 69 70 75 81 76 59 69 70 75 81 76 59 69 70 75 72 67 65 63 61 59 69 70
++65 63 61 59 69 70 59 69 70 59 57 61 54 57 61 54 57 61 52 55 48 45 57 61
++48 50 48 48 50 48 45 57 61 53 46 48 45 57 61 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 44 48 48 50 48 43 42 50 42 47 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 47 42 42 47 42 48 50 48 48 50 48 48 50 48
++
++88 83 74 99 93 84 95 91 100 112 96 108 112 96 108 111 119 127 141 116 139 122 134 144
++145 140 145 129 144 153 150 147 171 150 147 171 150 147 171 150 147 171 166 174 181 166 176 200
++166 176 200 166 174 181 166 156 164 166 176 200 189 165 168 166 176 200 166 176 200 166 176 200
++189 165 168 166 176 200 166 176 200 166 156 164 166 176 200 166 156 164 166 176 200 189 165 168
++166 176 200 166 176 200 166 176 200 189 165 168 166 176 200 166 176 200 150 147 171 188 180 202
++166 176 200 166 156 164 166 176 200 189 165 168 166 176 200 150 147 171 166 156 164 150 147 171
++150 147 171 150 147 171 150 144 154 150 144 154 141 116 139 119 117 138 119 117 138 112 96 108
++95 95 116 95 91 100 75 81 90 75 64 82 63 59 71 59 57 61 48 44 48 43 42 50
++42 41 42 42 41 42 47 44 42 51 49 42 63 55 45 63 55 45 75 56 53 88 73 62
++88 73 62 120 63 71 117 114 76 120 63 71 117 114 76 117 99 86 120 63 71 117 99 86
++120 63 71 117 112 45 101 83 74 88 73 62 88 73 62 75 56 53 63 55 45 51 49 42
++42 41 42 36 35 37 32 39 24 31 35 35 31 35 35 33 39 38 36 35 37 42 41 42
++42 47 42 47 49 42 48 50 48 52 55 48 50 61 48 59 55 55 53 63 61 63 55 51
++65 63 61 64 70 48 75 73 58 64 70 48 65 63 61 64 70 48 75 73 58 75 73 58
++75 73 58 64 70 48 75 73 58 75 73 58 64 70 48 75 73 58 75 73 58 64 70 48
++75 73 58 64 70 48 75 73 58 75 56 53 75 73 58 75 56 53 75 73 58 75 63 62
++75 73 58 75 63 62 88 73 62 75 73 58 75 63 62 75 63 62 75 73 58 75 63 62
++75 63 62 75 63 62 65 63 61 65 63 61 65 63 61 65 55 54 65 55 54 55 55 48
++59 55 55 55 55 48 53 46 48 48 50 48 51 49 42 48 50 48 47 44 42 47 49 42
++42 47 42 47 44 42 42 47 42 42 41 42 42 47 42 42 41 42 42 41 42 42 47 42
++42 41 42 42 47 42 42 47 42 42 47 42 35 46 43 42 41 42 35 46 43 35 46 43
++42 41 42 35 46 43 42 47 42 42 47 42 43 55 48 42 47 42 48 50 48 35 47 50
++48 50 48 43 55 48 43 55 48 48 50 48 48 50 48 45 57 61 48 50 48 48 50 48
++52 55 48 52 55 48 54 57 61 52 55 48 52 55 48 54 57 61 55 55 48 59 55 55
++59 55 55 50 61 48 59 55 55 59 55 55 52 55 48 59 55 55 52 55 48 52 55 48
++48 50 48 52 55 48 48 50 48 52 55 48 53 46 48 48 50 48 59 55 55 53 46 48
++48 50 48 48 50 48 52 55 48 48 50 48 48 50 48 48 50 48 59 55 55 48 50 48
++59 55 55 59 55 55 59 55 55 65 63 61 65 63 61 65 63 61 59 69 70 75 72 67
++75 72 67 75 81 76 75 81 76 75 72 67 75 64 82 75 81 76 88 69 84 75 81 76
++75 81 76 88 83 74 75 81 82 75 81 76 75 81 76 75 81 76 88 69 84 75 81 76
++75 81 76 75 81 76 75 81 76 75 64 82 75 72 67 75 72 67 59 69 70 65 63 61
++65 63 61 65 63 61 59 69 70 59 57 61 65 63 61 65 63 61 59 57 61 59 57 61
++59 55 55 59 55 55 54 57 61 53 46 48 54 57 61 53 46 48 45 57 61 48 50 48
++52 55 48 54 57 61 52 55 48 59 55 55 48 50 48 59 55 55 54 57 61 55 55 48
++48 50 48 52 55 48 65 63 61 75 81 82 88 83 88 88 83 88 75 81 76 59 69 70
++59 69 70 59 69 70 59 69 70 63 59 71 48 50 48 31 35 35 25 30 29 22 23 31
++22 25 24 26 24 32 25 30 29 28 30 35 28 30 35 28 30 35 26 24 32 25 30 29
++30 30 34 31 35 35 33 30 36 31 35 35 28 30 35 30 30 34 28 30 35 28 30 35
++30 30 34 28 30 35 31 35 35 31 35 35 31 35 35 36 35 37 36 35 37 34 40 43
++33 39 38 33 39 38 33 39 38 34 40 43 36 35 37 36 35 37 31 35 35 30 30 34
++30 30 34 25 30 29 30 30 34 25 30 29 25 30 29 26 30 28 22 25 24 22 25 24
++23 20 24 23 20 24 23 20 24 12 18 20 14 16 17 14 16 17 7 12 13 7 12 13
++7 12 13 7 12 13 7 12 13 3 4 9 7 12 13 3 4 9 7 12 13 7 12 13
++14 16 17 15 22 17 26 30 28 26 30 28 31 35 35 36 35 37 33 39 38 36 35 37
++31 35 35 36 35 37 30 30 34 26 30 28 22 25 24 23 18 22 23 18 22 12 18 20
++23 18 22 23 18 22 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 7 12 13
++7 12 13 17 12 17 7 12 13 17 12 17 12 18 20 23 20 24 22 25 24 22 25 24
++23 20 24 23 20 24 23 18 22 14 16 17 14 16 17 14 16 17 23 20 24 25 30 29
++34 40 43 48 50 48 48 50 48 48 50 48 48 50 48 34 40 43 22 25 24 3 4 9
++3 3 1 3 4 9 12 18 20 34 40 43 59 69 70 95 108 128 129 144 153 150 168 183
++166 176 200 166 176 200 166 176 200 201 216 228 201 216 228 201 216 228 201 216 228 208 221 247
++208 221 247 194 199 226 166 176 200 150 168 183 150 168 183 150 168 183 166 176 200 166 176 200
++194 199 226 194 199 226 166 176 200 166 176 200 166 176 200 131 144 168 131 144 168 131 144 168
++131 144 168 131 144 168 131 144 168 131 144 168 150 168 183 150 168 183 150 168 183 150 168 183
++131 144 168 150 168 183 150 168 183 131 144 168 150 168 183 150 168 183 150 168 183 166 176 200
++166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 174 181 166 176 200 166 174 181
++150 168 183 150 168 183 150 147 171 150 147 171 150 147 171 150 147 171 131 144 168 131 144 168
++129 144 153 126 147 144 126 147 144 126 147 144 126 147 144 126 147 144 122 134 144 126 147 144
++129 144 153 129 144 153 126 147 144 122 134 144 122 134 144 122 134 144 122 134 144 126 147 144
++145 140 145 126 147 144 122 134 144 145 140 145 122 134 144 126 147 144 122 134 144 122 134 144
++121 143 132 111 119 127 111 119 127 95 119 107 94 105 108 94 105 108 94 105 108 90 98 89
++78 98 90 75 81 82 59 69 70 59 69 70 59 69 70 59 79 61 59 69 70 60 82 70
++75 72 67 75 81 69 59 69 70 75 81 69 59 69 70 75 77 62 60 82 70 75 72 67
++75 81 76 59 69 70 75 81 69 59 69 70 65 63 61 59 69 70 59 79 61 65 63 61
++59 69 70 59 79 61 59 69 70 75 81 69 75 81 76 75 81 76 60 81 83 75 81 76
++60 81 83 75 81 82 60 81 83 78 98 90 75 81 90 78 98 90 77 90 100 78 98 90
++95 91 100 60 81 83 42 41 42 15 22 17 7 12 13 14 16 17 14 16 17 23 18 22
++15 22 17 23 18 22 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24
++23 20 24 23 20 24 23 18 22 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24
++26 30 28 23 20 24 22 25 24 22 25 24 22 25 24 33 30 30 23 20 24 22 25 24
++22 25 24 23 20 24 23 20 24 22 25 24 26 30 28 33 30 30 30 30 34 33 30 32
++33 30 30 33 30 32 36 35 37 42 47 42 47 49 42 48 50 48 65 63 61 75 81 76
++90 98 89 90 98 89 90 98 89 90 98 89 90 98 89 95 91 100 90 98 89 90 98 89
++95 91 100 78 98 90 90 98 89 75 81 90 88 83 88 75 81 82 75 81 82 75 81 76
++75 81 76 59 69 70 75 81 76 59 69 70 65 63 61 53 63 61 53 63 61 59 55 55
++55 55 48 50 61 48 54 57 61 52 55 48 59 55 55 52 55 48 59 55 55 52 55 48
++59 55 55 50 61 48 59 55 55 52 55 48 54 57 61 55 55 48 59 55 55 53 63 61
++50 61 48 53 63 61 53 63 61 65 63 61 65 63 61 59 79 61 65 63 61 59 69 70
++65 63 61 59 69 70 65 63 61 59 69 70 75 72 67 59 69 70 75 72 67 59 69 70
++65 63 61 59 69 70 75 72 67 65 63 61 75 72 67 65 63 61 65 63 61 53 63 61
++65 63 61 59 55 55 53 63 61 55 55 48 52 55 48 55 55 48 55 55 48 59 55 55
++59 55 55 52 55 48 52 55 48 48 50 48 55 55 48 48 50 48 52 55 48 48 50 48
++52 55 48 48 50 48 51 49 42 48 50 48 48 50 48 55 55 48 52 55 48 59 55 55
++48 50 48 52 55 48 52 55 48 52 55 48 52 55 48 55 55 48 53 63 61 64 70 48
++59 55 55 59 57 61 63 55 51 65 63 61 64 70 48 59 57 61 65 63 61 65 63 61
++75 72 67 75 72 67 75 72 67 75 72 67 75 81 69 75 81 76 75 81 76 75 81 76
++75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 60 81 83 75 72 67
++59 69 70 75 81 76 59 69 70 59 69 70 53 63 61 53 63 61 45 57 61 48 50 48
++48 50 48 48 50 48 35 47 50 42 47 42 42 41 42 42 41 42 42 41 42 42 41 42
++42 47 42 47 44 42 42 47 42 48 50 48 48 50 48 48 50 48 48 50 48 52 55 48
++48 50 48 52 55 48 48 50 48 52 55 48 48 50 48 52 55 48 52 55 48 52 55 48
++48 50 48 52 55 48 52 55 48 52 55 48 45 57 61 52 55 48 52 55 48 52 55 48
++52 55 48 52 55 48 52 55 48 48 50 48 48 50 48 48 50 48 47 49 42 47 49 42
++47 49 42 48 50 48 48 50 48 52 55 48 52 55 48 59 55 55 55 55 48 53 63 61
++65 63 61 65 63 61 65 63 61 75 73 58 59 69 70 75 77 62 59 69 70 75 72 67
++75 81 76 75 72 67 75 81 69 59 69 70 75 72 67 59 69 70 59 69 70 59 69 70
++65 63 61 53 63 61 65 63 61 53 63 61 54 57 61 54 57 61 48 50 48 54 57 61
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++43 42 50 48 50 48 43 42 50 48 50 48 42 47 42 42 47 42 42 41 42 43 42 50
++42 41 42 42 47 42 42 47 42 43 42 50 48 50 48 48 50 48 48 50 48 52 55 48
++
++88 83 74 99 93 84 112 96 108 112 96 108 112 123 108 111 119 127 119 117 138 122 134 144
++145 140 145 131 144 168 150 147 171 150 147 171 150 147 171 166 176 200 150 147 171 166 176 200
++166 156 164 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200
++166 176 200 166 176 200 188 180 202 166 176 200 166 176 200 188 180 202 166 176 200 166 176 200
++166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 188 180 202
++150 147 171 188 180 202 166 176 200 166 176 200 166 156 164 166 176 200 150 168 183 166 176 200
++166 156 164 150 147 171 150 147 171 131 144 168 131 144 168 129 144 153 119 117 138 119 117 138
++111 119 127 95 95 116 77 90 100 75 81 90 63 59 71 54 57 61 48 50 48 42 41 42
++36 35 37 36 35 37 47 44 42 47 44 42 51 49 42 63 55 45 75 56 53 88 73 62
++88 73 62 98 106 55 120 63 71 117 99 86 101 83 74 168 102 88 117 99 86 117 99 86
++117 99 86 120 63 71 101 83 74 88 73 62 88 73 62 75 56 53 63 55 51 51 49 42
++47 47 21 42 41 42 31 35 35 33 30 32 31 35 35 36 35 37 33 39 38 42 41 42
++42 47 42 48 50 48 48 50 48 52 55 48 59 55 55 50 61 48 64 70 48 53 63 61
++64 70 48 65 63 61 65 63 61 75 73 58 59 79 61 75 73 58 65 63 61 75 73 58
++64 70 48 75 73 58 64 70 48 75 73 58 64 70 48 75 73 58 75 73 58 64 70 48
++75 73 58 75 73 58 64 70 48 75 73 58 75 73 58 75 73 58 64 70 48 75 56 53
++75 73 58 75 63 62 75 73 58 75 63 62 75 73 58 88 73 62 75 73 58 75 63 62
++75 73 58 75 63 62 75 73 58 65 63 61 65 55 54 65 63 61 63 55 51 59 55 55
++55 55 48 55 55 48 55 55 48 55 55 48 48 50 48 51 49 42 47 49 42 42 47 42
++42 47 42 42 47 42 42 41 42 42 41 42 42 41 42 42 47 42 42 41 42 42 41 42
++43 42 50 42 41 42 35 46 43 35 46 43 35 46 43 35 46 43 35 46 43 33 39 38
++34 40 43 42 47 42 43 42 50 42 47 42 42 47 42 35 47 50 42 47 42 43 42 50
++43 55 48 43 42 50 48 50 48 48 50 48 45 57 61 43 55 48 48 50 48 45 57 61
++48 50 48 48 50 48 48 50 48 48 50 48 52 55 48 52 55 48 52 55 48 52 55 48
++54 57 61 59 55 55 52 55 48 52 55 48 52 55 48 52 55 48 54 57 61 59 55 55
++54 57 61 48 50 48 54 57 61 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 53 46 48 48 50 48 48 50 48 53 46 48 45 57 61 48 50 48 54 57 61
++52 55 48 55 55 48 54 57 61 65 63 61 59 69 70 65 63 61 75 63 62 59 69 70
++75 72 67 75 64 82 75 72 67 75 81 76 75 72 67 75 81 76 75 81 76 88 69 84
++75 81 76 88 69 84 75 81 76 88 69 84 88 83 74 75 81 76 75 81 76 75 81 76
++88 66 70 75 81 76 75 72 67 75 81 76 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 65 63 61 65 63 61 65 63 61 63 59 71 65 63 61 65 63 61 59 55 55
++59 57 61 59 55 55 59 57 61 59 55 55 55 55 48 53 46 48 59 55 55 53 46 48
++59 55 55 53 46 48 48 50 48 52 55 48 59 55 55 53 63 61 59 55 55 55 55 48
++54 57 61 59 57 61 75 72 67 75 81 76 75 81 76 75 81 76 59 69 70 63 59 71
++54 57 61 54 57 61 54 57 61 53 63 61 43 42 50 31 35 35 30 30 34 33 30 32
++26 30 28 26 30 28 26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 30 30 34
++30 30 34 31 35 35 36 35 37 36 35 37 31 35 35 32 39 24 26 30 28 33 30 30
++33 30 30 26 30 28 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30 33 30 30
++32 39 24 26 30 28 26 30 28 26 30 28 31 35 35 33 30 32 30 30 34 25 30 29
++22 25 24 15 22 17 23 20 24 23 18 22 14 16 17 17 12 17 7 12 13 13 4 7
++7 12 13 7 12 13 7 12 13 7 10 17 7 12 13 7 12 13 7 12 13 7 10 17
++7 10 17 7 12 13 7 12 13 7 12 13 3 4 9 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 13 4 7 7 12 13 17 12 17 14 16 17 23 18 22 26 24 32
++25 30 29 30 30 34 31 35 35 36 35 37 31 35 35 30 30 34 30 30 34 26 30 28
++22 25 24 26 24 32 22 25 24 23 20 24 23 18 22 14 16 17 14 16 17 14 16 17
++17 12 17 14 16 17 17 12 17 14 16 17 23 20 24 23 20 24 22 25 24 23 18 22
++14 16 17 14 16 17 14 16 17 12 18 20 14 16 17 12 18 20 22 25 24 28 30 35
++43 42 50 48 50 48 43 42 50 35 46 43 34 40 43 31 35 35 23 18 22 7 10 17
++3 4 9 3 4 9 7 10 17 3 4 9 12 18 20 43 42 50 77 90 100 129 144 153
++150 168 183 166 176 200 166 176 200 194 199 226 194 199 226 201 216 228 201 216 228 201 216 228
++194 199 226 194 199 226 166 176 200 131 144 168 150 168 183 194 199 226 194 199 226 201 216 228
++166 176 200 166 176 200 166 176 200 150 168 183 131 144 168 129 144 153 126 147 144 111 122 142
++126 147 144 126 147 144 131 144 168 131 144 168 131 144 168 150 147 171 131 144 168 150 147 171
++150 168 183 150 168 183 131 144 168 150 168 183 131 144 168 150 168 183 131 144 168 150 168 183
++150 168 183 150 168 183 150 168 183 166 174 181 150 168 183 166 174 181 150 147 171 150 168 183
++150 147 171 150 147 171 148 160 159 148 160 159 129 144 153 126 147 144 126 147 144 126 147 144
++121 143 132 121 143 132 121 143 132 98 121 131 111 119 127 111 119 127 95 119 107 111 119 127
++94 105 108 112 123 108 111 119 127 112 123 108 111 119 127 112 123 108 94 105 108 112 123 108
++94 105 108 112 123 108 112 123 108 94 105 108 112 123 108 94 105 108 94 105 108 94 105 108
++94 105 108 94 105 108 94 105 108 90 98 89 90 98 89 88 83 88 75 81 76 75 81 69
++59 69 70 65 63 61 59 79 61 65 63 61 75 72 67 59 69 70 75 72 67 59 79 61
++75 72 67 59 69 70 75 72 67 75 72 67 75 77 62 59 69 70 75 72 67 59 69 70
++75 81 69 59 69 70 75 72 67 59 79 61 59 79 61 59 79 61 75 72 67 59 69 70
++59 79 61 59 69 70 75 72 67 60 82 70 59 69 70 60 81 83 60 82 70 60 82 70
++60 81 83 60 81 83 75 81 82 60 81 83 75 81 90 60 81 83 75 81 90 77 90 100
++78 98 90 78 98 90 59 69 70 28 35 38 7 12 13 14 16 17 14 16 17 14 16 17
++23 18 22 23 18 22 15 22 17 23 18 22 23 20 24 15 22 17 23 20 24 23 20 24
++23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24 23 20 24
++23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 23 18 22 33 30 30 26 30 28
++22 25 24 22 25 24 22 25 24 23 20 24 26 30 28 26 30 28 33 30 30 33 30 30
++26 30 28 33 30 30 36 35 37 42 41 42 48 50 48 48 50 48 59 55 55 75 81 76
++90 98 89 90 98 89 95 91 100 95 91 100 95 91 100 90 98 89 95 91 100 90 98 89
++95 91 100 90 98 89 88 83 88 90 98 89 88 83 88 78 98 90 75 81 82 75 81 76
++75 81 76 75 81 76 75 81 76 59 69 70 65 63 61 53 63 61 59 55 55 53 63 61
++54 57 61 45 57 61 52 55 48 52 55 48 48 50 48 50 61 48 52 55 48 54 57 61
++50 61 48 54 57 61 52 55 48 59 55 55 52 55 48 59 55 55 53 63 61 63 55 51
++53 63 61 59 55 55 50 61 48 53 63 61 65 63 61 59 69 70 65 63 61 59 69 70
++65 63 61 59 69 70 75 72 67 59 79 61 59 69 70 75 72 67 59 69 70 59 69 70
++75 72 67 59 69 70 59 69 70 75 72 67 59 69 70 75 72 67 65 63 61 65 63 61
++65 63 61 65 63 61 59 55 55 55 55 48 59 55 55 55 55 48 55 55 48 52 55 48
++55 55 48 55 55 48 52 55 48 52 55 48 52 55 48 48 50 48 52 55 48 48 50 48
++52 55 48 48 50 48 52 55 48 48 50 48 52 55 48 52 55 48 52 55 48 59 55 55
++52 55 48 52 55 48 52 55 48 52 55 48 55 55 48 50 61 48 59 55 55 59 55 55
++53 63 61 64 70 48 65 63 61 65 63 61 65 63 61 65 63 61 75 72 67 75 72 67
++75 72 67 75 72 67 75 81 69 75 81 76 75 81 76 75 81 82 75 81 76 75 81 76
++75 81 76 75 81 82 75 81 76 75 81 82 75 81 76 75 81 76 75 81 76 75 81 82
++75 81 76 59 69 70 75 72 67 59 69 70 59 69 70 53 63 61 54 57 61 45 57 61
++45 57 61 45 57 61 48 50 48 35 46 43 35 46 43 34 40 43 35 46 43 34 40 43
++35 46 43 42 41 42 42 47 42 48 44 48 48 50 48 48 50 48 48 50 48 48 50 48
++59 55 55 48 50 48 52 55 48 48 50 48 45 57 61 48 50 48 48 50 48 48 50 48
++52 55 48 48 50 48 45 57 61 52 55 48 52 55 48 52 55 48 52 55 48 43 55 48
++48 50 48 43 55 48 48 50 48 43 55 48 47 49 42 48 50 48 47 44 42 47 44 42
++47 44 42 47 44 42 48 50 48 48 50 48 59 55 55 50 61 48 59 55 55 59 55 55
++64 70 48 65 63 61 64 70 48 65 63 61 65 63 61 75 72 67 75 72 67 75 72 67
++59 69 70 75 72 67 59 69 70 75 72 67 59 79 61 59 69 70 65 63 61 65 63 61
++59 69 70 65 63 61 53 63 61 59 57 61 54 57 61 45 57 61 54 57 61 48 50 48
++54 57 61 48 50 48 43 42 50 43 42 50 43 42 50 45 57 61 43 42 50 43 55 48
++43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 35 47 50 42 41 42 42 41 42
++42 41 42 43 42 50 42 47 42 48 50 48 48 50 48 48 50 48 53 46 48 48 50 48
++
++88 83 74 88 83 88 98 113 84 112 96 108 111 119 127 119 117 138 122 134 144 145 140 145
++131 144 168 150 147 171 150 147 171 150 168 183 166 174 181 166 174 181 166 176 200 166 176 200
++188 180 202 166 176 200 188 180 202 166 176 200 166 176 200 188 180 202 166 176 200 188 180 202
++166 176 200 188 180 202 166 176 200 188 180 202 166 176 200 188 180 202 166 176 200 188 180 202
++188 180 202 166 176 200 188 180 202 166 176 200 188 180 202 188 180 202 166 176 200 188 180 202
++166 176 200 188 180 202 166 176 200 166 176 200 166 176 200 166 174 181 166 174 181 166 174 181
++150 147 171 150 168 183 150 147 171 150 147 171 150 144 154 141 116 139 131 144 168 119 117 138
++119 117 138 95 95 116 95 91 100 75 81 90 75 64 82 59 57 61 43 42 50 42 41 42
++36 35 37 33 30 30 36 35 37 55 39 37 47 44 42 60 49 42 63 55 45 88 73 62
++88 73 62 120 63 71 117 114 76 120 63 71 117 114 76 117 99 86 120 63 71 117 112 45
++117 99 86 117 99 86 101 83 74 101 83 74 88 73 62 75 56 53 75 56 53 55 55 48
++47 49 42 33 39 38 32 39 24 31 35 35 31 35 35 31 35 35 36 35 37 42 41 42
++42 47 42 48 50 48 52 55 48 52 55 48 52 55 48 54 57 61 55 55 48 53 63 61
++65 63 61 65 63 61 64 70 48 75 73 58 65 63 61 64 70 48 75 73 58 59 79 61
++75 73 58 64 70 48 64 70 48 75 73 58 64 70 48 75 73 58 75 73 58 75 73 58
++75 73 36 75 56 53 75 73 58 75 56 53 75 73 36 75 56 53 75 73 58 75 73 58
++75 73 58 75 56 53 88 73 62 75 73 58 75 63 62 75 73 58 75 63 62 75 72 67
++75 63 62 75 63 62 65 63 61 65 63 61 64 70 48 65 63 61 65 55 54 63 55 51
++59 55 55 55 55 48 55 55 48 53 46 48 51 49 42 47 49 42 47 44 42 42 47 42
++47 44 42 42 47 42 47 44 42 42 41 42 42 47 42 42 41 42 42 47 42 42 41 42
++33 39 38 42 47 42 34 40 43 33 39 38 35 46 43 35 46 43 35 46 43 35 46 43
++35 46 43 42 47 42 42 47 42 43 55 48 43 42 50 48 50 48 43 55 48 48 50 48
++43 55 48 43 42 50 43 55 48 43 55 48 43 42 50 48 50 48 43 55 48 43 42 50
++48 50 48 53 46 48 48 50 48 48 50 48 52 55 48 52 55 48 52 55 48 54 57 61
++48 50 48 52 55 48 52 55 48 52 55 48 52 55 48 48 50 48 52 55 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 59 55 55 48 50 48 53 46 48 53 46 48
++48 50 48 48 50 48 53 46 48 48 50 48 48 50 48 48 44 48 48 50 48 48 50 48
++59 55 55 54 57 61 59 57 61 65 63 61 65 63 61 65 63 61 59 69 70 75 72 67
++75 72 67 75 72 67 75 81 76 75 64 82 75 81 76 75 64 82 75 81 82 75 81 76
++88 83 88 75 81 76 88 83 74 75 81 76 75 81 76 88 83 74 75 81 76 88 69 84
++75 81 76 75 81 76 75 81 76 75 72 67 75 81 76 75 72 67 75 72 67 59 69 70
++65 63 61 59 69 70 65 63 61 63 59 71 75 72 67 65 63 61 65 63 61 59 57 61
++59 57 61 59 57 61 59 57 61 59 55 55 59 55 55 59 55 55 59 55 55 48 50 48
++59 55 55 48 50 48 59 55 55 59 55 55 59 55 55 55 55 48 48 50 48 59 55 55
++59 69 70 75 81 76 75 81 82 75 72 67 59 69 70 59 69 70 59 69 70 48 50 48
++43 42 50 43 55 48 45 57 61 48 50 48 35 47 50 33 39 38 36 35 37 33 30 32
++33 30 36 30 30 34 26 30 28 33 30 30 26 30 28 33 30 32 30 30 34 30 30 34
++33 30 32 31 35 35 33 30 36 31 35 35 26 30 28 25 30 29 31 35 35 26 30 28
++25 30 29 25 30 29 26 30 28 26 30 28 31 35 35 32 39 24 26 30 28 26 30 28
++22 25 24 26 30 28 25 30 29 25 30 29 25 30 29 28 30 35 31 35 35 26 30 28
++22 25 24 15 22 17 23 18 22 14 16 17 14 16 17 17 12 17 15 17 7 14 16 17
++17 12 17 17 12 17 17 12 17 23 18 22 23 20 24 23 20 24 26 24 32 26 24 32
++33 30 32 30 30 34 26 30 28 23 20 24 23 18 22 14 16 17 13 4 7 3 4 9
++3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 7 12 13
++14 16 17 14 16 17 14 16 17 23 20 24 22 25 24 22 25 24 22 25 24 26 24 32
++30 30 34 30 30 34 31 35 35 31 35 35 31 35 35 30 30 34 30 30 34 26 30 28
++26 24 32 22 25 24 22 25 24 23 20 24 23 20 24 14 16 17 14 16 17 7 12 13
++7 12 13 7 12 13 14 16 17 14 16 17 14 16 17 12 18 20 22 23 31 31 35 35
++34 40 43 35 46 43 43 42 50 42 47 42 35 46 43 31 35 35 28 30 35 22 25 24
++23 18 22 23 20 24 25 30 29 26 24 32 22 23 31 22 23 31 29 34 50 60 81 83
++129 144 153 166 176 200 201 216 228 194 199 226 201 216 228 201 216 228 201 216 228 201 216 228
++194 199 226 166 176 200 166 176 200 150 168 183 166 176 200 194 199 226 194 199 226 166 176 200
++166 176 200 150 168 183 150 168 183 129 144 153 98 121 131 98 121 131 98 121 131 111 122 142
++122 134 144 131 144 168 131 144 168 150 171 159 131 144 168 131 144 168 131 144 168 150 147 171
++131 144 168 150 147 171 131 144 168 150 147 171 131 144 168 131 144 168 131 144 168 131 144 168
++131 144 168 150 147 171 150 147 171 131 144 168 150 147 171 131 144 168 129 144 153 150 144 154
++129 144 153 129 144 153 129 144 153 122 134 144 122 134 144 122 134 144 111 119 127 111 119 127
++98 121 131 95 119 107 95 108 128 95 119 107 94 105 108 95 119 107 94 105 108 94 105 108
++94 105 108 94 105 108 95 91 100 94 105 108 94 105 108 78 98 90 95 91 100 90 98 89
++94 105 108 78 98 90 95 91 100 90 98 89 90 98 89 94 105 108 98 113 84 94 105 108
++90 98 89 90 98 89 75 81 76 75 81 76 60 82 70 59 69 70 53 63 61 53 63 61
++59 79 61 59 79 61 65 63 61 59 69 70 59 79 61 75 72 67 59 69 70 75 72 67
++75 81 69 75 72 67 60 82 70 75 72 67 60 82 70 75 77 62 75 81 69 75 81 69
++75 72 67 60 82 70 75 72 67 59 69 70 75 72 67 59 69 70 59 79 61 59 69 70
++75 77 62 59 69 70 59 79 61 75 81 69 60 82 70 75 81 76 75 81 76 60 82 70
++75 81 82 60 81 83 75 81 82 60 81 83 75 81 90 78 98 90 60 81 83 77 90 100
++78 98 90 88 83 88 78 98 90 45 57 61 22 25 24 7 12 13 14 16 17 14 16 17
++14 16 17 23 18 22 23 20 24 12 18 20 23 20 24 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 23 20 24
++26 25 15 23 20 24 26 30 28 23 20 24 33 30 30 23 20 24 22 25 24 23 20 24
++26 24 32 22 25 24 22 25 24 26 30 28 22 25 24 33 30 30 26 30 28 33 30 30
++33 30 30 26 30 28 33 30 30 42 41 42 47 49 42 47 44 42 55 55 48 75 72 67
++88 83 88 95 91 100 90 98 89 90 98 89 94 105 108 90 98 89 95 91 100 90 98 89
++90 98 89 77 90 100 90 98 89 78 98 90 88 83 88 75 81 82 75 81 82 75 81 82
++75 81 76 75 81 76 59 69 70 75 72 67 59 69 70 53 63 61 53 63 61 52 55 48
++52 55 48 52 55 48 45 57 61 52 55 48 45 57 61 52 55 48 45 57 61 52 55 48
++52 55 48 52 55 48 52 55 48 54 57 61 52 55 48 59 55 55 59 55 55 53 63 61
++59 55 55 64 70 48 53 63 61 65 63 61 59 79 61 65 63 61 59 79 61 59 69 70
++59 79 61 65 63 61 59 69 70 75 72 67 59 69 70 59 69 70 75 72 67 59 69 70
++60 82 70 75 72 67 59 69 70 75 72 67 59 69 70 65 63 61 65 63 61 53 63 61
++64 70 48 53 63 61 65 63 61 55 55 48 55 55 48 52 55 48 52 55 48 55 55 48
++55 55 48 53 46 48 52 55 48 48 50 48 48 50 48 52 55 48 52 55 48 48 50 48
++52 55 48 48 50 48 52 55 48 52 55 48 52 55 48 55 55 48 59 55 55 52 55 48
++52 55 48 52 55 48 52 55 48 52 55 48 52 55 48 55 55 48 53 63 61 64 70 48
++65 63 61 65 63 61 65 63 61 65 63 61 75 63 62 75 72 67 75 72 67 75 81 69
++75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 75 81 82 88 83 88 75 81 82
++88 83 74 75 81 82 75 81 76 75 81 82 75 81 76 75 81 76 60 81 83 75 81 76
++59 69 70 75 81 76 59 69 70 59 69 70 59 69 70 53 63 61 54 57 61 54 57 61
++48 50 48 48 50 48 43 42 50 35 46 43 42 41 42 34 40 43 42 41 42 42 41 42
++42 41 42 35 46 43 42 47 42 48 50 48 48 50 48 48 44 48 48 50 48 48 44 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 52 55 48 48 50 48 52 55 48 45 57 61 48 50 48 48 50 48
++52 55 48 43 55 48 48 50 48 47 49 42 42 47 42 48 44 48 47 44 42 47 44 42
++42 47 42 48 50 48 48 50 48 48 50 48 48 50 48 59 55 55 55 55 48 64 70 48
++65 63 61 65 63 61 64 70 48 65 63 61 59 79 61 75 72 67 59 69 70 75 72 67
++60 82 70 75 72 67 59 69 70 75 72 67 59 69 70 65 63 61 59 69 70 65 63 61
++59 69 70 65 63 61 53 63 61 59 57 61 53 63 61 54 57 61 48 50 48 48 50 48
++48 44 48 48 50 48 43 42 50 43 55 48 43 42 50 43 42 50 35 47 50 43 42 50
++43 42 50 43 55 48 43 42 50 43 55 48 43 42 50 42 47 42 42 41 42 43 42 50
++42 47 42 48 44 48 48 50 48 48 50 48 48 50 48 48 50 48 54 57 61 48 50 48
++
++88 83 88 99 93 84 112 96 108 112 96 108 111 119 127 119 117 138 141 116 139 129 144 153
++150 144 154 150 147 171 150 147 171 150 147 171 150 168 183 166 174 181 166 176 200 166 176 200
++188 180 202 166 176 200 188 180 202 166 176 200 188 180 202 166 176 200 188 180 202 188 180 202
++188 180 202 188 180 202 166 176 200 188 180 202 188 180 202 166 176 200 188 180 202 188 180 202
++166 176 200 188 180 202 188 180 202 188 180 202 166 176 200 188 180 202 188 180 202 166 176 200
++188 180 202 188 180 202 188 180 202 166 176 200 189 165 168 166 176 200 166 176 200 166 176 200
++166 176 200 166 174 181 166 174 181 150 147 171 150 147 171 131 144 168 129 144 153 119 117 138
++119 117 138 95 95 116 95 95 116 75 81 90 75 64 82 63 59 71 48 50 48 34 40 43
++33 30 32 32 39 24 33 30 30 32 39 24 55 39 37 60 49 42 63 55 45 75 56 53
++88 73 62 98 106 55 120 63 71 117 114 76 120 63 71 117 99 86 117 99 86 117 99 86
++120 63 71 117 112 45 120 63 71 88 73 62 88 73 62 75 73 58 75 56 53 60 49 42
++47 49 42 47 44 42 36 35 37 36 35 37 31 35 35 36 35 37 33 39 38 42 41 42
++42 47 42 48 50 48 48 50 48 54 57 61 55 55 48 50 61 48 50 61 48 59 55 55
++64 70 48 59 79 61 65 63 61 75 73 58 75 73 58 65 63 61 64 70 48 75 73 58
++75 73 58 75 73 58 64 70 48 75 73 58 75 73 58 75 73 58 64 70 48 75 73 58
++75 73 58 75 73 58 75 73 58 75 73 58 75 73 58 75 73 58 75 73 58 75 73 58
++75 56 53 75 73 58 75 73 58 75 56 53 75 73 58 75 63 62 88 73 62 75 72 67
++75 63 62 75 73 58 75 56 53 65 63 61 75 63 62 65 63 61 65 55 54 65 63 61
++65 63 61 59 55 55 55 55 48 52 55 48 51 49 42 47 49 42 47 44 42 42 47 42
++42 47 42 47 44 42 47 44 42 42 41 42 42 47 42 42 47 42 42 47 42 42 41 42
++35 46 43 33 39 38 33 39 38 33 39 38 35 46 43 33 39 38 35 46 43 34 40 43
++35 46 43 42 47 42 35 47 50 42 47 42 43 55 48 42 47 42 43 42 50 43 55 48
++43 42 50 43 55 48 48 50 48 43 42 50 43 42 50 43 55 48 43 42 50 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 45 57 61 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 45 57 61 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++53 46 48 45 57 61 48 50 48 48 50 48 43 42 50 48 50 48 48 50 48 54 57 61
++52 55 48 59 55 55 59 69 70 65 63 61 59 69 70 59 69 70 75 72 67 63 59 71
++75 81 76 59 69 70 75 81 76 75 72 67 75 81 76 88 83 74 75 81 76 88 69 84
++75 81 82 88 83 74 75 81 82 88 83 88 88 83 74 75 81 82 88 83 74 75 81 76
++88 83 74 75 81 76 88 69 84 75 81 76 75 81 76 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 63 59 71 75 72 67 75 72 67 63 59 71 65 63 61 65 63 61
++65 63 61 59 57 61 65 63 61 59 57 61 59 55 55 59 55 55 59 55 55 59 55 55
++59 55 55 48 50 48 59 55 55 52 55 48 52 55 48 59 55 55 54 57 61 75 72 67
++75 81 76 75 81 82 75 81 82 59 69 70 75 72 67 59 69 70 54 57 61 43 42 50
++35 47 50 43 42 50 48 50 48 48 50 48 43 42 50 33 39 38 36 35 37 36 35 37
++31 35 35 36 35 37 30 30 34 30 30 34 26 24 32 30 30 34 30 30 34 30 30 34
++31 35 35 31 35 35 31 35 35 33 30 32 26 30 28 29 35 19 34 30 15 22 24 13
++34 30 15 34 30 15 34 30 15 34 30 15 52 30 15 52 30 15 53 35 17 76 46 20
++55 39 18 53 35 17 34 30 15 34 30 15 34 30 15 34 30 15 32 39 24 31 35 35
++30 30 34 22 23 31 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24
++22 23 31 26 24 32 28 30 35 28 30 35 28 35 38 36 35 37 37 35 43 42 41 42
++43 42 50 43 42 50 42 41 42 34 40 43 31 35 35 26 30 28 15 22 17 7 12 13
++7 12 13 13 4 7 3 4 9 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 4 9 3 3 1 3 4 9 7 12 13 7 12 13 14 16 17
++14 16 17 23 18 22 23 20 24 22 25 24 22 25 24 25 30 29 26 30 28 30 30 34
++30 30 34 30 30 34 30 30 34 31 35 35 31 35 35 25 30 29 23 20 24 12 18 20
++22 25 24 23 20 24 25 30 29 28 30 35 30 30 34 31 35 35 34 40 43 43 42 50
++48 50 48 48 50 48 48 50 48 54 57 61 48 50 48 42 41 42 42 41 42 42 41 42
++43 42 50 42 41 42 34 40 43 34 40 43 34 40 43 28 35 38 12 18 20 32 40 58
++111 122 142 166 176 200 201 216 228 201 216 228 201 216 228 201 216 228 201 216 228 194 199 226
++194 199 226 166 176 200 131 144 168 150 168 183 166 176 200 194 199 226 166 176 200 166 176 200
++150 168 183 131 144 168 111 122 142 98 121 131 98 121 131 98 121 131 98 121 131 98 121 131
++111 122 142 126 147 144 129 144 153 131 144 168 131 144 168 131 144 168 131 144 168 131 144 168
++131 144 168 131 144 168 131 144 168 150 168 183 131 144 168 131 144 168 131 144 168 129 144 153
++129 144 153 129 144 153 122 134 144 122 134 144 122 134 144 122 134 144 111 119 127 111 119 127
++111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 94 105 108 95 119 107 94 105 108
++94 105 108 95 91 100 94 105 108 90 98 89 94 105 108 90 98 89 90 98 89 90 98 89
++90 98 89 90 98 89 78 98 90 90 98 89 78 98 90 90 98 89 78 98 90 78 98 90
++78 98 90 90 98 89 90 98 89 90 98 89 94 105 108 90 98 89 90 98 89 78 98 90
++75 81 76 60 82 70 59 69 70 59 79 61 53 63 61 53 63 61 53 63 61 53 63 61
++65 63 61 59 69 70 59 79 61 59 69 70 75 72 67 59 69 70 75 72 67 60 82 70
++75 72 67 60 82 70 75 72 67 75 81 69 75 72 67 59 69 70 75 72 67 59 69 70
++75 81 69 75 81 69 75 72 67 60 82 70 75 72 67 59 79 61 75 72 67 59 79 61
++59 69 70 59 79 61 75 72 67 59 69 70 75 81 69 59 69 70 60 81 83 60 82 70
++60 81 83 75 81 76 60 81 83 60 81 83 60 81 83 60 81 83 75 81 90 78 98 90
++75 81 90 78 98 90 78 98 90 75 81 76 43 55 48 12 18 20 7 12 13 17 12 17
++14 16 17 12 18 20 23 20 24 23 18 22 15 22 17 22 25 24 23 20 24 23 20 24
++22 25 24 23 20 24 23 20 24 22 25 24 26 24 32 22 25 24 22 25 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 33 30 30 22 25 24
++26 30 28 26 24 32 23 20 24 26 30 28 23 20 24 26 30 28 26 30 28 33 30 30
++33 30 30 33 30 30 31 35 35 42 41 42 47 44 42 48 50 48 52 55 48 65 63 61
++88 83 88 90 98 89 95 91 100 90 98 89 95 91 100 90 98 89 95 91 100 90 98 89
++95 91 100 90 98 89 90 98 89 90 98 89 88 83 88 78 98 90 88 83 88 75 81 82
++75 81 82 75 81 76 75 81 76 75 72 67 59 69 70 65 63 61 53 63 61 53 63 61
++52 55 48 45 57 61 52 55 48 52 55 48 52 55 48 52 55 48 52 55 48 53 63 61
++52 55 48 54 57 61 52 55 48 52 55 48 59 55 55 55 55 48 53 63 61 59 55 55
++53 63 61 53 63 61 65 63 61 53 63 61 65 63 61 65 63 61 59 69 70 65 63 61
++65 63 61 60 82 70 75 72 67 59 69 70 75 72 67 59 69 70 59 69 70 75 72 67
++59 69 70 75 72 67 59 69 70 75 72 67 75 72 67 65 63 61 59 79 61 65 63 61
++59 57 61 65 63 61 63 55 51 53 63 61 59 55 55 55 55 48 55 55 48 55 55 48
++53 46 48 52 55 48 52 55 48 52 55 48 52 55 48 52 55 48 52 55 48 52 55 48
++52 55 48 52 55 48 52 55 48 52 55 48 52 55 48 59 55 55 50 61 48 59 55 55
++54 57 61 59 55 55 55 55 48 59 55 55 50 61 48 59 55 55 55 55 48 65 63 61
++53 63 61 65 63 61 65 63 61 65 63 61 75 72 67 75 72 67 75 81 76 75 81 76
++75 81 82 88 83 74 88 83 88 88 83 74 88 83 88 78 98 90 88 83 74 88 83 88
++78 98 90 88 83 88 75 81 82 75 81 82 75 81 82 75 81 82 75 81 76 75 81 76
++75 81 82 59 69 70 75 81 76 59 69 70 59 69 70 59 69 70 53 63 61 45 57 61
++54 57 61 45 57 61 48 50 48 35 46 43 35 46 43 35 46 43 34 40 43 35 46 43
++34 40 43 42 47 42 43 42 50 42 47 42 48 50 48 42 47 42 48 50 48 48 50 48
++48 50 48 54 57 61 48 50 48 54 57 61 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 54 57 61 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 47 49 42 47 49 42 47 44 42 42 47 42
++47 44 42 47 44 42 48 50 48 48 50 48 48 50 48 52 55 48 50 61 48 59 55 55
++59 55 55 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 59 69 70 75 72 67
++59 69 70 75 72 67 59 69 70 75 72 67 59 69 70 65 63 61 65 63 61 59 69 70
++65 63 61 59 69 70 65 63 61 59 57 61 54 57 61 54 57 61 54 57 61 45 57 61
++48 50 48 43 42 50 48 50 48 43 42 50 48 50 48 35 47 50 43 42 50 43 55 48
++35 47 50 43 42 50 43 42 50 35 47 50 43 42 50 35 46 43 35 46 43 42 41 42
++42 47 42 43 42 50 48 50 48 48 50 48 52 55 48 48 50 48 59 55 55 52 55 48
++
++88 83 88 90 98 89 94 105 108 112 123 108 119 117 138 119 117 138 129 144 153 131 144 168
++150 147 171 150 147 171 150 168 183 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200
++188 180 202 188 180 202 188 180 202 188 180 202 188 180 202 188 180 202 166 176 200 194 199 226
++166 176 200 194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 166 176 200 194 199 226
++166 176 200 194 199 226 166 176 200 188 180 202 194 199 226 166 176 200 194 199 226 188 180 202
++188 180 202 166 176 200 188 180 202 166 176 200 166 176 200 188 180 202 166 176 200 166 174 181
++166 176 200 166 156 164 150 168 183 150 147 171 150 147 171 150 147 171 129 144 153 141 116 139
++111 122 142 111 119 127 95 95 116 77 90 100 75 81 82 63 59 71 45 57 61 37 35 43
++31 35 35 26 30 28 33 30 30 36 35 37 47 44 42 51 49 42 63 55 45 75 56 53
++88 73 62 88 73 62 101 83 74 117 112 45 117 99 86 117 99 86 117 99 86 120 63 71
++117 99 86 117 99 86 101 83 74 101 83 74 88 73 62 88 73 62 75 56 53 63 55 45
++51 49 42 47 44 42 32 39 24 36 35 37 31 35 35 36 35 37 33 39 38 42 47 42
++42 47 42 48 50 48 52 55 48 52 55 48 50 61 48 59 55 55 53 63 61 64 70 48
++53 63 61 65 63 61 64 70 48 75 73 58 65 63 61 75 73 58 75 73 58 59 79 61
++75 73 58 75 73 58 75 73 58 75 73 58 75 73 36 75 73 58 75 73 58 75 73 58
++75 73 58 64 70 48 75 73 58 75 73 58 75 73 58 64 70 48 75 73 58 75 56 53
++75 73 58 75 56 53 75 63 62 75 73 58 75 56 53 75 73 58 75 63 62 75 63 62
++75 63 62 75 63 62 75 73 58 65 63 61 75 63 62 65 63 61 75 63 62 65 63 61
++63 55 51 65 63 61 59 55 55 55 55 48 59 55 55 52 55 48 51 49 42 47 49 42
++47 49 42 47 49 42 47 44 42 42 47 42 47 44 42 42 47 42 42 41 42 42 41 42
++33 39 38 33 39 38 33 39 38 35 46 43 33 39 38 35 46 43 42 41 42 42 47 42
++42 47 42 42 47 42 48 50 48 48 50 48 43 55 48 48 50 48 43 55 48 48 50 48
++45 57 61 48 50 48 35 47 50 43 42 50 43 55 48 43 42 50 43 55 48 43 42 50
++35 47 50 48 50 48 43 42 50 48 50 48 48 50 48 48 50 48 45 57 61 48 50 48
++48 50 48 45 57 61 48 50 48 43 55 48 43 42 50 48 50 48 43 42 50 48 50 48
++48 50 48 45 57 61 48 44 48 57 43 64 48 44 48 57 43 64 43 42 50 48 50 48
++43 42 50 48 50 48 43 42 50 43 42 50 43 55 48 43 42 50 45 57 61 48 50 48
++54 57 61 59 57 61 63 59 71 59 69 70 59 69 70 75 72 67 59 69 70 75 72 67
++75 64 82 75 81 76 75 64 82 75 81 76 75 64 82 75 81 76 75 81 82 75 81 76
++88 83 74 75 81 82 88 83 74 88 83 88 75 81 82 88 83 88 88 83 88 75 81 76
++88 83 88 75 81 76 88 83 74 75 81 76 75 81 76 75 81 76 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 63 59 71 75 72 67 59 69 70 75 63 62 63 59 71
++65 63 61 59 57 61 65 63 61 59 57 61 59 57 61 59 55 55 54 57 61 59 55 55
++48 50 48 54 57 61 59 55 55 52 55 48 59 55 55 54 57 61 75 72 67 75 72 67
++65 63 61 75 72 67 75 81 76 63 59 71 59 69 70 59 69 70 59 57 61 45 57 61
++52 55 48 45 57 61 45 57 61 43 42 50 35 47 50 36 35 37 36 35 37 31 35 35
++33 30 36 31 35 35 31 35 35 30 30 34 25 30 29 30 30 34 30 30 34 33 30 36
++33 30 36 31 35 35 30 30 34 33 30 30 26 30 28 34 30 15 34 30 15 55 39 18
++55 39 18 76 46 20 76 46 20 76 46 20 101 74 26 101 74 26 101 74 26 117 112 45
++117 112 45 101 74 26 76 46 20 55 39 18 52 30 15 34 30 15 33 30 30 36 35 37
++33 39 38 36 35 37 30 30 34 28 30 35 28 30 35 25 30 29 23 30 35 25 30 29
++31 35 35 33 30 36 36 35 37 33 39 38 37 35 43 34 40 43 34 40 43 42 41 42
++35 47 50 42 47 42 43 42 50 35 46 43 42 41 42 37 35 43 22 23 31 14 16 17
++7 12 13 7 12 13 7 12 13 3 4 9 3 4 9 3 4 9 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 4 9 3 3 1 3 4 9 3 4 9 7 12 13 17 12 17 14 16 17 14 16 17
++22 25 24 22 25 24 28 30 35 34 40 43 42 41 42 33 39 38 31 35 35 31 35 35
++33 39 38 34 40 43 34 40 43 35 46 43 48 50 48 45 57 61 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 43 42 50 42 41 42 34 40 43 34 40 43 35 47 50
++43 42 50 34 40 43 37 35 43 36 35 37 42 38 42 42 41 42 25 30 29 35 47 50
++94 105 108 150 168 183 208 221 247 208 221 247 208 221 247 194 199 226 201 216 228 194 199 226
++166 176 200 131 144 168 131 144 168 150 168 183 166 176 200 150 168 183 150 168 183 150 168 183
++111 122 142 98 121 131 98 121 131 77 91 115 95 119 107 95 108 128 98 121 131 98 121 131
++111 122 142 122 134 144 129 144 153 129 144 153 122 134 144 122 134 144 111 122 142 122 134 144
++131 144 168 131 144 168 131 144 168 131 144 168 129 144 153 129 144 153 129 144 153 122 134 144
++111 122 142 111 122 142 111 122 142 111 119 127 111 119 127 95 119 107 94 105 108 94 105 108
++90 98 89 77 90 100 90 98 89 78 98 90 90 98 89 95 91 100 90 98 89 77 90 100
++90 98 89 78 98 90 90 98 89 90 98 89 90 98 89 78 98 90 90 98 89 78 98 90
++90 98 89 78 98 90 90 98 89 90 98 89 90 98 89 90 98 89 90 98 89 90 98 89
++94 105 108 90 98 89 94 105 108 90 98 89 78 98 90 75 81 76 59 69 70 53 63 61
++59 55 55 53 63 61 53 63 61 53 63 61 53 63 61 59 79 61 53 63 61 59 69 70
++59 69 70 59 69 70 75 72 67 59 69 70 59 69 70 75 77 62 59 69 70 75 77 62
++75 81 69 75 72 67 75 81 76 60 82 70 75 81 76 75 81 76 75 81 76 75 81 69
++75 81 76 75 81 69 60 82 70 75 72 67 60 82 70 75 72 67 59 69 70 75 72 67
++59 79 61 59 69 70 75 72 67 60 82 70 59 69 70 75 81 76 75 81 76 75 81 76
++60 82 70 75 81 76 60 81 83 75 81 76 60 81 83 75 81 76 60 81 83 75 81 82
++75 81 82 75 81 82 88 83 88 78 98 90 59 69 70 36 35 37 14 16 17 7 12 13
++17 12 17 14 16 17 23 18 22 15 22 17 23 20 24 23 20 24 15 22 17 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24
++22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 33 30 30
++23 20 24 22 25 24 33 30 30 22 25 24 26 30 28 22 25 24 33 30 30 33 30 30
++26 30 28 31 35 35 33 30 32 36 35 37 42 47 42 48 44 48 52 55 48 54 57 61
++75 81 76 90 98 89 90 98 89 90 98 89 90 98 89 94 105 108 99 93 84 90 98 89
++95 91 100 90 98 89 95 91 100 78 98 90 78 98 90 88 83 88 75 81 82 75 81 82
++75 81 82 75 81 76 75 81 76 59 69 70 59 69 70 65 63 61 53 63 61 54 57 61
++52 55 48 48 50 48 52 55 48 43 55 48 43 55 48 48 50 48 54 57 61 52 55 48
++52 55 48 52 55 48 54 57 61 52 55 48 54 57 61 55 55 48 59 55 55 53 63 61
++65 63 61 53 63 61 65 63 61 64 70 48 59 79 61 75 72 67 59 69 70 75 72 67
++59 69 70 75 72 67 59 69 70 75 72 67 59 69 70 75 72 67 59 69 70 59 69 70
++75 72 67 59 69 70 75 72 67 59 69 70 75 72 67 65 63 61 65 63 61 65 63 61
++64 70 48 59 57 61 64 70 48 59 57 61 50 61 48 59 55 55 55 55 48 55 55 48
++55 55 48 55 55 48 52 55 48 52 55 48 52 55 48 52 55 48 52 55 48 52 55 48
++52 55 48 52 55 48 52 55 48 55 55 48 59 55 55 54 57 61 59 55 55 53 63 61
++59 55 55 50 61 48 59 55 55 59 55 55 59 55 55 53 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 75 72 67 75 72 67 75 72 67 75 72 67 75 81 76 75 81 82
++88 83 88 88 83 88 75 81 82 88 83 88 90 98 89 88 83 88 78 98 90 88 83 88
++88 83 88 75 81 82 90 98 89 75 81 82 75 81 82 75 81 82 75 81 82 60 81 83
++75 81 76 60 81 83 59 69 70 59 69 70 59 69 70 59 69 70 54 57 61 54 57 61
++54 57 61 45 57 61 43 42 50 42 47 42 34 40 43 42 41 42 34 40 43 42 41 42
++34 40 43 42 41 42 35 46 43 42 47 42 48 44 48 42 47 42 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 52 55 48 48 50 48 48 50 48
++48 50 48 47 49 42 42 47 42 47 44 42 42 47 42 47 44 42 42 47 42 42 41 42
++42 41 42 47 44 42 47 49 42 48 50 48 53 46 48 59 55 55 52 55 48 59 55 55
++64 70 48 59 55 55 59 55 55 64 70 48 65 63 61 65 63 61 65 63 61 75 72 67
++65 63 61 75 72 67 59 69 70 65 63 61 65 63 61 59 69 70 65 63 61 65 63 61
++65 63 61 59 69 70 53 63 61 53 63 61 54 57 61 52 55 48 48 50 48 48 50 48
++43 42 50 43 55 48 43 42 50 35 47 50 43 42 50 35 47 50 35 47 50 35 47 50
++43 42 50 42 47 42 35 47 50 42 47 42 42 47 42 35 46 43 43 42 50 48 44 48
++43 42 50 48 50 48 48 50 48 48 50 48 54 57 61 55 55 48 59 55 55 52 55 48
++
++75 81 76 88 83 88 112 96 108 112 96 108 111 119 127 141 116 139 129 144 153 148 160 159
++150 147 171 150 147 171 150 168 183 166 174 181 166 174 181 166 176 200 166 176 200 188 180 202
++166 176 200 194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 166 176 200 194 199 226
++166 176 200 194 199 226 166 176 200 194 199 226 188 180 202 194 199 226 166 176 200 194 199 226
++188 180 202 194 199 226 166 176 200 194 199 226 188 180 202 194 199 226 188 180 202 194 199 226
++166 176 200 194 199 226 188 180 202 188 180 202 166 176 200 188 180 202 166 176 200 188 180 202
++166 176 200 166 176 200 166 176 200 150 168 183 150 147 171 150 147 171 131 144 168 131 144 168
++119 117 138 111 119 127 95 95 116 77 90 100 75 81 90 63 59 71 45 57 61 33 39 38
++31 35 35 33 30 30 33 30 30 33 30 30 47 47 21 60 49 42 63 55 45 75 56 53
++88 73 31 101 83 74 120 63 71 117 99 86 120 63 71 117 112 45 168 102 88 117 99 86
++117 99 86 117 112 45 101 83 74 101 83 74 88 73 62 88 73 62 75 56 53 63 55 45
++51 49 42 47 44 42 42 41 42 36 35 37 36 35 37 33 39 38 42 41 42 35 46 43
++42 47 42 48 50 48 43 55 48 52 55 48 59 55 55 50 61 48 59 55 55 53 63 61
++64 70 48 65 63 61 64 70 48 65 63 61 75 73 58 59 79 61 75 73 58 75 73 58
++75 73 58 75 73 58 75 73 58 75 73 58 75 73 58 75 77 62 75 73 58 75 73 58
++75 73 58 75 73 58 75 73 58 75 73 58 75 73 58 75 73 58 75 73 58 64 70 48
++75 73 58 75 73 58 75 73 58 75 56 53 75 73 58 75 56 53 75 63 62 75 63 62
++75 63 62 75 73 58 65 63 61 75 63 62 75 73 58 75 63 62 75 63 62 75 63 62
++65 63 61 64 70 48 65 63 61 59 55 55 59 55 55 55 55 48 52 55 48 52 55 48
++48 50 48 51 49 42 48 50 48 47 44 42 42 41 42 42 47 42 42 41 42 42 47 42
++33 39 38 35 46 43 33 39 38 33 39 38 35 46 43 35 46 43 42 47 42 35 46 43
++42 47 42 35 47 50 48 50 48 43 55 48 48 50 48 43 55 48 48 50 48 48 50 48
++45 57 61 48 50 48 48 50 48 45 57 61 48 50 48 48 50 48 43 55 48 48 50 48
++43 55 48 43 42 50 43 55 48 43 42 50 48 50 48 35 47 50 42 47 42 43 42 50
++43 42 50 43 42 50 43 42 50 35 47 50 42 47 42 43 42 50 42 47 42 43 42 50
++43 42 50 48 50 48 43 42 50 48 50 48 43 42 50 43 42 50 48 44 48 43 42 50
++43 42 50 43 42 50 43 55 48 43 42 50 43 42 50 43 42 50 43 42 50 54 57 61
++54 57 61 54 57 61 59 57 61 65 63 61 59 69 70 59 69 70 75 64 82 59 69 70
++75 64 82 75 81 76 75 72 67 75 81 76 75 81 76 75 81 76 88 69 84 75 81 82
++75 81 76 88 83 88 75 81 76 88 83 88 88 83 74 88 83 88 88 83 88 88 83 74
++88 83 88 88 83 74 75 81 82 88 83 74 88 69 84 75 81 76 75 64 82 75 81 76
++75 72 67 75 72 67 59 69 70 75 64 82 75 72 67 75 59 67 59 69 70 75 72 67
++65 63 61 65 63 61 65 63 61 65 63 61 59 57 61 59 57 61 59 57 61 59 55 55
++59 57 61 59 55 55 59 55 55 59 55 55 59 55 55 65 63 61 65 63 61 59 55 55
++34 40 43 59 57 61 75 81 76 65 63 61 63 59 71 75 81 76 75 81 76 59 69 70
++59 69 70 54 57 61 48 50 48 43 42 50 34 40 43 36 35 37 30 30 34 30 30 34
++30 30 34 33 30 36 31 35 35 30 30 34 26 24 32 26 24 32 30 30 34 33 30 36
++33 30 36 31 35 35 33 30 30 26 30 28 33 30 30 34 30 15 55 39 18 98 106 55
++117 127 86 157 148 53 117 114 76 157 148 53 157 148 53 157 148 53 177 171 115 219 175 47
++197 171 123 157 148 53 157 148 53 98 106 55 76 46 20 55 39 18 32 39 24 33 39 38
++42 41 42 42 41 42 34 40 43 37 35 43 31 35 35 33 39 38 31 35 35 31 35 35
++31 35 35 33 30 36 36 35 37 37 35 43 42 41 42 42 41 42 34 40 43 42 41 42
++34 40 43 34 40 43 35 47 50 42 41 42 43 42 50 34 40 43 30 30 34 14 16 17
++17 12 17 7 12 13 17 12 17 7 12 13 13 4 7 3 4 9 3 4 9 3 4 9
++3 4 9 3 4 9 3 4 9 3 4 9 3 4 9 3 3 1 3 4 9 3 4 9
++3 4 9 3 3 1 3 4 9 3 4 9 13 4 7 7 12 13 7 12 13 14 16 17
++14 16 17 12 18 20 22 25 24 31 35 35 28 35 38 31 35 35 33 39 38 31 35 35
++31 35 35 31 35 35 28 30 35 31 35 35 33 39 38 34 40 43 34 40 43 28 30 35
++22 23 31 15 22 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 22 25 24
++25 30 29 25 30 29 26 30 28 25 30 29 26 30 28 30 30 34 30 30 34 37 35 43
++46 59 71 77 91 115 131 144 168 185 202 202 208 221 247 208 221 247 201 216 228 166 176 200
++150 168 183 150 168 183 150 168 183 166 176 200 166 176 200 150 168 183 131 144 168 98 121 131
++98 121 131 77 91 115 77 90 100 78 98 90 77 90 100 77 90 100 95 119 107 98 121 131
++111 122 142 111 122 142 122 134 144 111 122 142 122 134 144 122 134 144 122 134 144 122 134 144
++122 134 144 122 134 144 122 134 144 129 144 153 122 134 144 122 134 144 111 122 142 98 121 131
++111 119 127 98 121 131 94 105 108 95 108 128 94 105 108 94 105 108 94 105 108 90 98 89
++94 105 108 95 91 100 90 98 89 88 83 88 78 98 90 77 90 100 78 98 90 95 91 100
++90 98 89 90 98 89 94 105 108 90 98 89 94 105 108 90 98 89 90 98 89 90 98 89
++90 98 89 94 105 108 90 98 89 94 105 108 90 98 89 94 105 108 94 105 108 90 98 89
++90 98 89 78 98 90 75 81 76 59 79 61 53 63 61 50 61 48 52 55 48 43 55 48
++50 61 48 50 61 48 53 63 61 59 79 61 53 63 61 53 63 61 59 79 61 65 63 61
++59 69 70 59 69 70 59 69 70 75 72 67 75 72 67 59 69 70 75 81 69 75 72 67
++60 82 70 75 81 76 75 81 69 75 81 76 75 72 67 75 81 76 75 81 76 75 81 76
++75 81 76 75 81 76 75 72 67 60 82 70 75 72 67 59 69 70 75 72 67 59 79 61
++75 72 67 59 79 61 59 69 70 75 72 67 60 82 70 60 82 70 59 69 70 60 82 70
++59 69 70 60 82 70 59 69 70 60 81 83 60 82 70 60 81 83 75 81 76 60 81 83
++60 81 83 75 81 82 75 81 82 78 98 90 75 81 82 65 63 61 31 35 35 17 12 17
++14 16 17 17 12 17 12 18 20 23 18 22 23 20 24 12 18 20 23 20 24 23 20 24
++22 25 24 23 20 24 23 20 24 23 20 24 22 25 24 26 24 32 22 25 24 22 25 24
++22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 33 30 30 23 20 24 26 30 28
++22 25 24 26 30 28 23 20 24 33 30 30 23 20 24 26 30 28 26 30 28 33 30 30
++33 30 32 33 30 30 31 35 35 36 35 37 42 41 42 48 44 48 48 50 48 59 55 55
++75 81 76 90 98 89 95 91 100 98 113 84 95 91 100 98 113 84 95 91 100 90 98 89
++95 91 100 90 98 89 90 98 89 90 98 89 88 83 88 78 98 90 78 98 90 75 81 82
++75 81 82 75 81 76 75 81 76 75 81 76 75 72 67 59 69 70 53 63 61 52 55 48
++45 57 61 48 50 48 43 55 48 48 50 48 52 55 48 48 50 48 43 55 48 52 55 48
++52 55 48 54 57 61 52 55 48 52 55 48 59 55 55 50 61 48 59 55 55 53 63 61
++59 55 55 53 63 61 65 63 61 59 69 70 65 63 61 59 69 70 75 72 67 59 69 70
++75 72 67 60 82 70 75 72 67 75 81 69 59 69 70 75 72 67 75 72 67 75 81 76
++59 69 70 75 72 67 59 69 70 75 73 58 75 72 67 59 69 70 75 77 62 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 64 70 48 53 63 61 59 55 55 59 55 55
++59 55 55 59 55 55 55 55 48 59 55 55 55 55 48 59 55 55 59 55 55 59 55 55
++55 55 48 59 55 55 50 61 48 59 55 55 59 57 61 64 70 48 59 57 61 64 70 48
++59 55 55 65 63 61 59 57 61 64 70 48 59 57 61 64 70 48 65 63 61 65 63 61
++75 72 67 75 72 67 59 69 70 75 72 67 75 81 76 75 81 76 75 81 82 75 81 82
++88 83 88 88 83 88 90 98 89 90 98 89 88 83 88 90 98 89 90 98 89 90 98 89
++90 98 89 90 98 89 88 83 88 78 98 90 88 83 88 75 81 90 75 81 82 75 81 82
++75 81 82 75 81 76 75 81 76 60 81 83 75 64 82 59 69 70 59 69 70 54 57 61
++45 57 61 54 57 61 43 55 48 43 42 50 42 47 42 34 40 43 35 46 43 34 40 43
++42 41 42 34 40 43 42 41 42 42 47 42 42 47 42 48 44 48 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 44 48 48 50 48 48 50 48 48 50 48 48 50 48 48 44 48 48 50 48 47 44 42
++47 49 42 48 44 48 47 44 42 47 44 42 42 47 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 47 44 42 48 50 48 48 50 48 52 55 48 52 55 48 55 55 48
++53 63 61 59 55 55 59 55 55 59 55 55 65 63 61 65 63 61 65 63 61 65 63 61
++59 69 70 75 72 67 59 69 70 75 72 67 65 63 61 65 63 61 65 63 61 59 69 70
++65 63 61 65 63 61 53 63 61 53 63 61 54 57 61 54 57 61 48 50 48 45 57 61
++48 50 48 48 50 48 43 42 50 43 42 50 43 42 50 35 46 43 35 46 43 35 46 43
++35 46 43 43 42 50 42 41 42 43 42 50 35 46 43 42 41 42 35 46 43 48 44 48
++48 50 48 48 50 48 48 50 48 54 57 61 52 55 48 59 55 55 54 57 61 59 55 55
++
++75 81 82 90 98 89 94 105 108 112 123 108 119 117 138 122 134 144 129 144 153 150 147 171
++148 160 159 150 168 183 166 174 181 166 176 200 166 176 200 188 180 202 166 176 200 194 199 226
++188 180 202 194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 194 199 226 166 176 200
++194 199 226 194 199 226 188 180 202 194 199 226 194 199 226 166 176 200 194 199 226 194 199 226
++166 176 200 194 199 226 194 199 226 185 202 202 194 199 226 166 176 200 194 199 226 185 202 202
++194 199 226 166 176 200 194 199 226 166 176 200 188 180 202 188 180 202 166 176 200 188 180 202
++166 176 200 166 174 181 166 176 200 166 174 181 150 168 183 150 147 171 131 144 168 145 140 145
++122 134 144 119 117 138 95 108 128 95 95 116 75 81 90 60 63 87 45 57 61 34 40 43
++31 35 35 26 30 28 33 30 30 33 30 30 36 35 37 55 39 37 63 55 45 75 56 53
++88 73 62 88 73 62 101 83 74 117 99 86 117 99 86 117 99 86 117 99 86 120 63 71
++117 99 86 120 63 71 117 99 86 101 83 74 101 83 74 88 73 62 75 56 53 65 55 54
++55 55 48 51 49 42 42 41 42 36 35 37 33 39 38 33 39 38 33 39 38 42 41 42
++42 47 42 48 50 48 43 55 48 54 57 61 50 61 48 55 55 48 53 63 61 64 70 48
++65 63 61 59 79 61 65 63 61 75 73 58 75 77 62 75 73 58 75 73 58 75 77 62
++75 77 62 75 77 62 81 96 56 88 73 62 75 77 62 88 73 62 81 96 56 75 73 58
++75 77 62 88 73 62 75 73 58 75 73 58 88 73 62 75 73 58 75 73 58 75 56 53
++75 73 58 75 56 53 75 56 53 75 73 58 75 56 53 75 73 58 75 56 53 75 63 62
++75 63 62 75 63 62 75 72 67 75 73 58 75 72 67 75 63 62 75 72 67 65 63 61
++75 73 58 65 63 61 65 63 61 65 63 61 65 63 61 59 57 61 59 55 55 55 55 48
++52 55 48 48 50 48 48 50 48 42 47 42 42 47 42 42 41 42 33 39 38 35 46 43
++33 39 38 33 39 38 33 39 38 35 46 43 33 39 38 42 47 42 42 47 42 42 47 42
++42 47 42 43 55 48 48 50 48 43 55 48 48 50 48 48 50 48 43 55 48 45 57 61
++48 50 48 45 57 61 45 57 61 48 50 48 45 57 61 43 42 50 35 47 50 35 47 50
++43 42 50 43 55 48 43 42 50 43 55 48 35 47 50 35 47 50 43 42 50 35 47 50
++43 55 48 43 42 50 42 47 42 35 47 50 43 42 50 43 42 50 35 47 50 43 42 50
++35 47 50 43 42 50 42 47 42 35 47 50 43 42 50 43 42 50 42 47 42 42 41 42
++42 47 42 43 42 50 43 42 50 35 46 43 43 42 50 43 55 48 48 50 48 54 57 61
++54 57 61 54 57 61 63 59 71 59 69 70 63 59 71 75 72 67 60 81 83 75 81 76
++75 81 76 59 69 70 75 81 82 75 64 82 75 81 76 75 81 82 75 81 76 88 83 74
++75 81 82 88 83 74 75 81 82 88 83 88 88 83 88 90 98 89 88 83 88 88 83 88
++88 83 88 88 83 74 88 83 88 88 83 74 75 81 76 75 81 76 75 81 76 75 72 67
++75 72 67 75 81 76 75 72 67 75 72 67 59 69 70 65 63 61 75 72 67 63 59 71
++65 63 61 65 63 61 65 63 61 63 59 71 65 63 61 65 63 61 59 57 61 59 57 61
++59 57 61 59 55 55 59 55 55 59 55 55 65 63 61 75 72 67 59 55 55 31 35 35
++26 30 28 52 55 48 75 81 76 54 57 61 59 69 70 75 81 82 75 64 82 75 81 76
++63 59 71 45 57 61 34 40 43 34 40 43 36 35 37 36 35 37 30 30 34 30 30 34
++30 30 34 31 35 35 30 30 34 26 30 28 25 30 29 30 30 34 33 30 36 31 35 35
++31 35 35 31 35 35 33 30 32 29 35 19 34 30 15 53 35 17 101 74 26 168 102 88
++219 175 47 227 171 124 219 175 47 227 171 124 227 171 124 219 175 47 227 171 124 219 175 47
++227 171 124 219 175 47 227 171 124 157 148 53 157 148 53 101 74 26 52 30 15 34 30 15
++47 47 21 48 44 48 48 50 48 43 42 50 34 40 43 34 40 43 34 40 43 33 39 38
++28 35 38 31 35 35 28 35 38 37 35 43 34 40 43 34 40 43 43 42 50 35 46 43
++34 40 43 42 41 42 34 40 43 42 41 42 35 47 50 42 41 42 31 35 35 22 25 24
++14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 7 12 13 7 12 13
++7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 7 12 13 7 12 13 13 4 7
++7 12 13 17 12 17 14 16 17 14 16 17 14 16 17 23 18 22 23 20 24 23 20 24
++23 20 24 22 25 24 22 23 31 22 25 24 22 25 24 23 20 24 12 18 20 14 16 17
++14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 7 12 13
++7 12 13 7 12 13 3 4 9 7 12 13 7 12 13 17 12 17 14 16 17 12 18 20
++7 10 17 17 12 17 14 16 17 14 16 17 14 16 17 15 22 17 22 25 24 30 30 34
++23 30 35 24 30 43 42 60 86 111 122 142 166 176 200 208 221 247 201 216 228 166 176 200
++150 168 183 150 168 183 166 176 200 166 176 200 150 168 183 111 122 142 98 121 131 61 78 101
++78 98 90 60 81 83 78 98 90 60 81 83 78 98 90 77 90 100 95 119 107 98 121 131
++98 121 131 98 121 131 98 121 131 111 122 142 122 134 144 111 122 142 122 134 144 111 122 142
++111 122 142 111 119 127 98 121 131 111 119 127 98 121 131 95 119 107 94 105 108 94 105 108
++94 105 108 94 105 108 94 105 108 94 105 108 90 98 89 95 91 100 78 98 90 77 90 100
++78 98 90 78 98 90 78 98 90 78 98 90 90 98 89 90 98 89 90 98 89 94 105 108
++78 98 90 94 105 108 90 98 89 94 105 108 90 98 89 94 105 108 94 105 108 94 105 108
++95 119 107 94 105 108 98 113 84 94 105 108 90 98 89 90 98 89 88 83 74 75 81 76
++59 69 70 50 61 48 43 55 48 43 55 48 42 47 42 35 46 43 43 55 48 43 55 48
++52 55 48 50 61 48 53 63 61 50 61 48 53 63 61 65 63 61 59 69 70 65 63 61
++59 79 61 59 69 70 59 79 61 59 69 70 75 72 67 60 82 70 75 72 67 60 82 70
++75 72 67 75 81 76 75 81 69 75 81 76 75 81 76 75 81 76 75 81 76 75 81 76
++75 72 67 75 81 76 75 81 69 75 72 67 75 81 69 75 81 69 59 69 70 75 72 67
++59 69 70 75 77 62 59 69 70 75 81 69 59 69 70 75 72 67 59 69 70 75 81 69
++60 82 70 75 81 76 60 81 83 75 72 67 60 81 83 75 81 76 60 82 70 59 69 70
++75 81 76 60 81 83 75 81 76 75 81 76 75 81 82 75 81 82 65 63 61 31 35 35
++14 16 17 7 12 13 15 22 17 14 16 17 23 20 24 23 20 24 23 20 24 22 25 24
++23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24
++23 20 24 26 30 28 23 20 24 22 25 24 22 25 24 23 20 24 26 30 28 22 25 24
++33 30 30 23 20 24 33 30 30 26 30 28 22 25 24 26 24 32 26 30 28 33 30 32
++33 30 32 33 30 30 33 30 30 31 35 35 33 39 38 42 47 42 48 50 48 48 50 48
++75 72 67 90 98 89 95 91 100 94 105 108 99 93 84 90 98 89 95 91 100 98 113 84
++95 91 100 90 98 89 95 91 100 78 98 90 88 83 88 75 81 82 88 83 88 75 81 82
++75 81 82 75 81 82 75 81 76 59 69 70 59 69 70 59 69 70 53 63 61 54 57 61
++50 61 48 48 50 48 43 55 48 48 50 48 43 55 48 43 55 48 52 55 48 54 57 61
++52 55 48 52 55 48 59 55 55 52 55 48 54 57 61 59 55 55 59 55 55 53 63 61
++64 70 48 65 63 61 65 63 61 65 63 61 75 73 58 59 69 70 75 73 58 59 69 70
++75 72 67 75 72 67 59 69 70 75 81 76 75 72 67 75 81 76 59 69 70 75 72 67
++59 69 70 75 81 69 59 69 70 75 72 67 65 63 61 75 72 67 59 69 70 65 63 61
++65 63 61 65 63 61 53 63 61 65 63 61 59 55 55 64 70 48 53 63 61 63 55 51
++65 63 61 59 55 55 64 70 48 53 63 61 59 55 55 53 63 61 59 55 55 50 61 48
++59 55 55 53 63 61 63 55 51 53 63 61 64 70 48 59 57 61 53 63 61 65 63 61
++53 63 61 63 55 51 53 63 61 59 55 55 65 63 61 65 63 61 65 63 61 75 72 67
++59 69 70 75 72 67 75 81 76 75 81 76 75 81 82 75 81 82 88 83 88 88 83 88
++90 98 89 90 98 89 90 98 89 95 91 100 90 98 89 95 91 100 95 91 100 90 98 89
++77 90 100 88 83 88 78 98 90 88 83 88 78 98 90 75 81 82 78 98 90 75 81 90
++75 81 82 75 81 82 60 81 83 75 72 67 59 69 70 59 69 70 53 63 61 54 57 61
++54 57 61 45 57 61 48 50 48 43 55 48 35 46 43 34 40 43 34 40 43 34 40 43
++35 46 43 42 41 42 42 47 42 42 41 42 48 44 48 42 47 42 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++47 49 42 48 50 48 48 44 48 48 50 48 48 50 48 47 49 42 48 44 48 47 49 42
++48 44 48 42 47 42 42 47 42 47 44 42 42 47 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 47 44 42 47 49 42 53 46 48 53 46 48 52 55 48 55 55 48
++63 55 51 63 55 51 59 55 55 64 70 48 65 63 61 65 63 61 75 73 58 65 63 61
++65 63 61 75 72 67 65 63 61 65 63 61 65 63 61 65 63 61 59 69 70 65 63 61
++65 63 61 53 63 61 53 63 61 59 55 55 52 55 48 48 50 48 48 50 48 48 50 48
++48 50 48 35 47 50 48 50 48 35 47 50 42 41 42 34 40 43 34 40 43 43 42 50
++35 46 43 43 42 50 34 40 43 34 40 43 35 46 43 35 46 43 43 42 50 42 47 42
++48 50 48 54 57 61 59 55 55 54 57 61 59 55 55 54 57 61 59 55 55 59 57 61
++
++75 81 82 88 83 88 95 91 100 111 119 127 119 117 138 122 134 144 129 144 153 131 144 168
++150 168 183 150 168 183 150 168 183 166 176 200 166 176 200 188 180 202 166 176 200 194 199 226
++166 176 200 194 199 226 166 176 200 194 199 226 194 199 226 166 176 200 194 199 226 194 199 226
++166 176 200 194 199 226 194 199 226 166 176 200 194 199 226 194 199 226 194 199 226 194 199 226
++194 199 226 194 199 226 166 176 200 194 199 226 185 202 202 194 199 226 194 199 226 166 176 200
++185 202 202 194 199 226 185 202 202 185 202 202 185 202 202 188 180 202 185 202 202 166 176 200
++188 180 202 166 176 200 166 176 200 166 174 181 150 168 183 150 147 171 150 147 171 131 144 168
++122 134 144 119 117 138 95 108 128 95 95 116 77 90 100 75 64 82 45 57 61 35 47 50
++28 30 35 26 30 28 26 30 28 32 39 24 36 35 37 47 47 21 60 49 42 75 73 36
++88 73 62 101 60 73 117 112 45 120 63 71 117 112 45 120 63 71 117 99 86 117 114 76
++117 99 86 117 99 86 117 112 45 101 83 74 88 73 62 88 73 62 75 73 58 75 56 53
++55 55 48 51 49 42 42 41 42 42 41 42 36 35 37 33 39 38 34 40 43 35 46 43
++42 47 42 43 55 48 48 50 48 52 55 48 52 55 48 50 61 48 59 55 55 59 55 55
++65 63 61 64 70 48 65 63 61 59 79 61 75 73 58 75 77 62 75 77 62 75 77 62
++75 77 62 88 73 62 88 73 62 75 77 62 81 96 56 75 77 62 75 77 62 75 73 58
++81 96 56 75 73 58 88 73 62 88 73 62 75 73 58 75 73 58 75 73 58 75 73 58
++75 56 53 75 73 58 75 73 58 75 56 53 64 70 48 75 56 53 75 63 62 65 63 61
++75 63 62 75 73 58 75 63 62 75 72 67 75 72 67 75 72 67 75 72 67 75 77 62
++65 63 61 75 73 58 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 50 61 48
++59 55 55 52 55 48 48 50 48 47 49 42 42 47 42 42 47 42 42 47 42 35 46 43
++35 46 43 35 46 43 33 39 38 33 39 38 34 40 43 35 46 43 42 47 42 35 46 43
++35 47 50 42 47 42 35 47 50 43 55 48 48 50 48 43 55 48 48 50 48 43 55 48
++43 55 48 43 55 48 48 50 48 45 57 61 43 42 50 45 57 61 35 47 50 48 50 48
++35 47 50 35 47 50 35 47 50 35 47 50 43 42 50 35 46 43 35 47 50 42 41 42
++35 47 50 43 42 50 35 47 50 43 42 50 35 46 43 43 42 50 43 42 50 43 42 50
++35 46 43 35 46 43 35 47 50 35 46 43 34 40 43 34 40 43 42 41 42 34 40 43
++42 41 42 34 40 43 42 41 42 42 41 42 42 41 42 43 42 50 45 57 61 54 57 61
++54 57 61 46 59 71 54 57 61 63 59 71 59 69 70 59 69 70 75 64 82 59 69 70
++75 81 76 75 64 82 75 81 76 75 81 76 75 81 76 88 69 84 75 81 82 75 81 82
++88 83 74 75 81 82 88 83 74 99 93 84 88 83 88 99 93 84 88 83 88 90 98 89
++88 83 88 75 81 82 88 83 88 75 81 82 88 83 74 88 83 74 75 81 76 88 66 70
++75 81 76 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 59 69 70 75 63 62
++59 69 70 63 59 71 65 63 61 65 63 61 65 63 61 63 59 71 65 63 61 59 55 55
++59 57 61 59 55 55 59 55 55 59 55 55 59 69 70 75 72 67 36 35 37 14 16 17
++22 25 24 48 44 48 63 59 71 54 57 61 54 57 61 59 69 70 59 69 70 54 57 61
++43 42 50 34 40 43 37 35 43 28 35 38 28 35 38 36 35 37 31 35 35 31 35 35
++31 35 35 30 30 34 26 30 28 26 24 32 26 30 28 30 30 34 30 30 34 36 35 37
++33 30 32 30 30 34 33 30 32 34 30 15 26 25 15 55 39 18 117 112 45 219 175 47
++219 175 47 227 171 124 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47
++219 175 47 219 175 47 219 175 47 227 171 124 219 175 47 176 103 41 76 46 20 34 30 15
++34 30 15 42 41 42 48 50 48 48 50 48 43 42 50 34 40 43 37 35 43 34 40 43
++37 35 43 28 35 38 33 39 38 33 39 38 33 39 38 42 41 42 34 40 43 35 46 43
++43 42 50 35 46 43 43 42 50 42 41 42 42 41 42 34 40 43 31 35 35 23 30 35
++22 25 24 12 18 30 23 20 24 12 18 20 23 18 22 14 16 17 14 16 17 17 12 17
++14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17
++23 18 22 23 18 22 23 20 24 26 30 28 26 24 32 26 30 28 33 30 32 33 30 32
++33 30 32 26 24 32 26 30 28 14 16 17 17 12 17 3 4 9 3 4 9 13 4 7
++3 4 9 3 3 1 3 4 9 3 3 1 3 4 9 3 3 1 3 4 9 3 4 9
++13 4 7 17 12 17 7 12 13 17 12 17 14 16 17 14 16 17 17 12 17 7 10 17
++7 10 17 7 12 13 3 3 1 7 12 13 7 12 13 17 12 17 22 25 24 26 30 28
++23 30 35 15 22 17 22 25 24 45 57 61 98 121 131 166 176 200 194 199 226 166 176 200
++150 168 183 150 168 183 150 168 183 131 144 168 98 121 131 77 91 115 78 98 90 60 81 83
++78 98 90 78 98 90 75 81 82 60 81 83 78 98 90 78 98 90 94 105 108 94 105 108
++94 105 108 95 108 128 95 119 107 98 121 131 98 121 131 98 121 131 111 119 127 98 121 131
++95 119 107 94 105 108 94 105 108 77 90 100 95 91 100 94 105 108 77 90 100 94 105 108
++90 98 89 77 90 100 78 98 90 77 90 100 78 98 90 77 90 100 78 98 90 90 98 89
++90 98 89 78 98 90 90 98 89 78 98 90 78 98 90 90 98 89 78 98 90 90 98 89
++90 98 89 94 105 108 90 98 89 94 105 108 94 105 108 90 98 89 94 105 108 90 98 89
++90 98 89 90 98 89 78 98 90 75 81 76 59 79 61 59 69 70 45 57 61 43 55 48
++42 47 42 35 46 43 35 46 43 42 47 42 42 47 42 43 55 48 52 55 48 52 55 48
++54 57 61 50 61 48 50 61 48 53 63 61 53 63 61 65 63 61 59 79 61 65 63 61
++59 69 70 65 63 61 59 69 70 75 72 67 60 82 70 75 72 67 75 81 69 75 81 69
++75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 88 83 74 75 81 76 88 83 74
++75 81 76 75 81 76 75 81 76 75 81 69 60 82 70 75 72 67 75 81 69 59 69 70
++75 77 62 59 69 70 75 72 67 59 79 61 75 72 67 65 63 61 59 79 61 59 69 70
++75 72 67 59 69 70 59 69 70 59 69 70 75 81 76 59 69 70 75 81 76 60 82 70
++59 69 70 75 81 76 60 81 83 75 81 76 75 81 76 75 81 82 75 81 76 54 57 61
++25 30 29 7 12 13 14 16 17 14 16 17 15 22 17 23 20 24 15 22 17 23 20 24
++23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 26 30 28 23 20 24 26 30 28
++26 25 15 23 20 24 26 30 28 26 25 15 33 30 30 23 20 24 26 30 28 23 20 24
++26 30 28 26 24 32 22 25 24 33 30 30 22 25 24 22 25 24 26 24 32 25 30 29
++31 35 35 33 30 30 33 30 30 36 35 37 33 39 38 43 42 50 48 50 48 48 50 48
++65 63 61 90 98 89 99 93 84 94 105 108 99 93 84 94 105 108 90 98 89 90 98 89
++94 105 108 90 98 89 95 91 100 90 98 89 90 98 89 88 83 88 87 99 72 88 83 88
++75 81 82 75 81 76 60 81 83 75 81 76 75 81 76 59 69 70 53 63 61 45 57 61
++52 55 48 48 50 48 43 55 48 48 50 48 52 55 48 48 50 48 43 55 48 52 55 48
++52 55 48 59 55 55 52 55 48 59 55 55 55 55 48 55 55 48 50 61 48 59 55 55
++59 55 55 53 63 61 65 63 61 59 79 61 65 63 61 75 77 62 59 69 70 75 77 62
++59 69 70 59 69 70 75 72 67 75 81 76 59 69 70 75 72 67 75 81 76 75 72 67
++60 82 70 75 72 67 75 72 67 59 69 70 75 72 67 59 69 70 75 72 67 75 72 67
++59 79 61 65 63 61 65 63 61 64 70 48 65 63 61 53 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 59 55 55 65 63 61 63 55 51 65 63 61 64 70 48 65 63 61
++63 55 51 53 63 61 64 70 48 59 55 55 59 55 55 65 63 61 64 70 48 53 63 61
++65 63 61 53 63 61 64 70 48 65 63 61 65 63 61 59 69 70 75 72 67 59 69 70
++75 72 67 75 81 76 75 81 76 75 81 82 75 81 82 75 81 82 88 83 88 95 91 100
++88 83 88 90 98 89 95 91 100 78 98 90 95 91 100 90 98 89 90 98 89 95 91 100
++95 91 100 90 98 89 88 83 88 78 98 90 88 83 88 78 98 90 75 81 82 78 98 90
++75 81 82 75 81 82 75 81 82 75 81 76 60 81 83 59 69 70 59 69 70 53 63 61
++54 57 61 54 57 61 45 57 61 43 42 50 42 47 42 34 40 43 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 43 42 50 42 47 42 43 42 50 42 47 42 42 47 42
++43 42 50 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++48 50 48 47 44 42 47 44 42 47 44 42 48 50 48 47 44 42 47 44 42 47 44 42
++47 44 42 42 41 42 42 41 42 42 47 42 42 41 42 42 41 42 42 41 42 36 35 37
++47 47 21 42 41 42 47 44 42 51 49 42 53 46 48 53 46 48 53 46 48 52 55 48
++55 55 48 59 55 55 65 55 54 59 55 55 59 55 55 65 63 61 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++53 63 61 59 57 61 53 63 61 59 55 55 45 57 61 48 50 48 48 50 48 43 55 48
++43 42 50 43 55 48 43 42 50 43 42 50 43 42 50 34 40 43 34 40 43 34 40 43
++34 40 43 34 40 43 34 40 43 34 40 43 42 41 42 35 46 43 42 47 42 43 42 50
++45 57 61 48 50 48 48 50 48 59 55 55 54 57 61 59 57 61 59 57 61 59 57 61
++
++88 83 88 90 98 89 112 96 108 111 119 127 111 119 127 122 134 144 150 144 154 150 147 171
++150 147 171 150 168 183 166 176 200 166 176 200 166 176 200 188 180 202 166 176 200 194 199 226
++166 176 200 194 199 226 194 199 226 166 176 200 194 199 226 194 199 226 194 199 226 194 199 226
++194 199 226 194 199 226 166 176 200 194 199 226 194 199 226 166 176 200 194 199 226 166 176 200
++194 199 226 185 202 202 194 199 226 194 199 226 185 202 202 194 199 226 185 202 202 194 199 226
++194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 166 176 200 185 202 202 188 180 202
++166 176 200 188 180 202 166 176 200 166 174 181 150 168 183 166 174 181 150 147 171 131 144 168
++131 144 168 119 117 138 111 119 127 95 95 116 75 81 90 60 81 83 45 57 61 34 40 43
++28 30 35 25 30 29 22 25 24 33 30 30 32 39 24 55 39 37 60 49 42 75 56 53
++75 73 58 88 73 62 101 83 74 117 99 86 117 99 86 117 99 86 168 102 88 120 63 71
++117 114 76 120 63 71 117 99 86 101 83 74 101 83 74 101 83 74 88 73 62 75 56 53
++55 55 48 52 55 48 47 44 42 33 39 38 36 35 37 33 39 38 42 41 42 42 47 42
++42 47 42 48 50 48 43 55 48 48 50 48 52 55 48 50 61 48 53 63 61 50 61 48
++65 63 61 65 63 61 64 70 48 75 73 58 65 63 61 75 77 62 75 77 62 75 77 62
++75 81 69 81 96 56 88 83 74 75 77 62 88 73 62 75 81 69 81 96 56 88 73 62
++75 77 62 88 73 62 75 73 58 88 73 62 75 73 58 88 73 62 75 73 58 75 73 58
++75 73 58 75 73 58 75 56 53 75 73 58 75 63 62 75 63 62 75 73 58 75 63 62
++75 63 62 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 77 62 75 72 67 75 72 67 65 63 61 65 63 61 53 63 61 65 63 61
++59 55 55 50 61 48 52 55 48 48 50 48 42 47 42 42 47 42 42 47 42 35 46 43
++35 46 43 33 39 38 35 46 43 42 41 42 33 39 38 42 47 42 34 40 43 42 47 42
++42 47 42 35 46 43 42 47 42 35 47 50 48 50 48 45 57 61 48 50 48 43 55 48
++45 57 61 43 42 50 43 55 48 35 47 50 43 55 48 43 42 50 35 47 50 43 42 50
++35 47 50 43 42 50 35 47 50 35 47 50 35 46 43 35 47 50 42 41 42 35 47 50
++34 40 43 34 40 43 34 40 43 34 40 43 34 40 43 34 40 43 43 42 50 34 40 43
++34 40 43 34 40 43 33 39 38 34 40 43 37 35 43 42 41 42 42 41 42 34 40 43
++42 41 42 42 41 42 34 40 43 43 42 50 43 42 50 43 42 50 48 50 48 54 57 61
++54 57 61 63 59 71 63 59 71 59 69 70 59 69 70 75 64 82 75 81 76 75 81 76
++75 64 82 60 82 70 75 81 76 59 69 70 75 81 82 75 81 76 75 81 82 88 83 88
++88 83 88 88 83 88 88 83 88 88 83 88 90 98 89 88 83 88 90 98 89 88 83 74
++90 98 89 88 83 88 88 83 88 88 83 74 88 83 88 75 81 76 88 83 74 75 81 76
++88 66 70 75 81 76 75 72 67 75 72 67 75 72 67 75 72 67 75 59 67 59 69 70
++75 63 62 65 63 61 65 63 61 63 59 71 59 69 70 65 63 61 65 63 61 59 57 61
++59 57 61 59 55 55 53 63 61 65 63 61 65 63 61 59 55 55 22 25 24 3 3 1
++7 12 13 36 35 37 54 57 61 43 55 48 48 50 48 43 42 50 43 42 50 34 40 43
++28 35 38 28 35 38 33 30 36 28 35 38 33 30 36 36 35 37 37 35 43 36 35 37
++31 35 35 30 30 34 26 30 28 26 24 32 26 30 28 26 30 28 30 30 34 30 30 34
++30 30 34 26 30 28 26 30 28 33 30 30 52 30 15 101 74 26 157 148 53 201 146 124
++227 171 124 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 176 103 41
++219 175 47 219 175 47 219 175 47 219 175 47 227 171 124 157 148 53 117 112 45 55 39 18
++34 30 15 33 30 30 42 41 42 43 42 50 43 42 50 34 40 43 37 35 43 34 40 43
++33 39 38 34 40 43 37 35 43 33 39 38 33 39 38 34 40 43 34 40 43 43 42 50
++35 46 43 43 42 50 35 46 43 42 41 42 34 40 43 34 40 43 34 40 43 33 39 38
++30 30 34 25 30 29 22 23 31 22 25 24 22 23 31 22 23 31 23 20 24 23 20 24
++15 22 17 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 26 24 32 26 24 32
++26 30 28 26 24 32 33 30 30 33 30 30 30 30 34 30 30 34 30 30 34 26 30 28
++22 25 24 23 18 22 14 16 17 7 12 13 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 4 9 3 4 9 7 12 13 7 12 13 17 12 17
++15 22 17 23 18 22 14 16 17 23 18 22 12 18 20 23 18 22 14 16 17 23 18 22
++14 16 17 23 18 22 15 22 17 23 20 24 22 25 24 22 25 24 22 25 24 26 30 28
++25 30 29 28 30 35 23 30 35 12 18 30 45 57 61 95 108 128 131 144 168 150 168 183
++150 168 183 150 168 183 131 144 168 98 121 131 77 91 115 78 98 90 60 81 83 60 81 83
++60 81 83 60 81 83 75 99 72 75 81 82 75 81 90 78 98 90 77 90 100 77 90 100
++77 90 100 77 90 100 77 91 115 94 105 108 94 105 108 94 105 108 94 105 108 77 90 100
++77 90 100 78 98 90 75 81 90 75 81 90 75 81 90 78 98 90 78 98 90 75 81 90
++77 90 100 78 98 90 75 81 90 88 83 88 78 98 90 78 98 90 90 98 89 77 90 100
++90 98 89 77 90 100 90 98 89 78 98 90 90 98 89 78 98 90 94 105 108 90 98 89
++94 105 108 90 98 89 90 98 89 94 105 108 90 98 89 90 98 89 78 98 90 75 81 82
++75 81 76 59 69 70 50 61 48 43 55 48 42 47 42 35 46 43 35 46 43 35 46 43
++35 46 43 42 47 42 35 47 50 42 47 42 43 55 48 43 55 48 43 55 48 52 55 48
++50 61 48 53 63 61 53 63 61 50 61 48 53 63 61 65 63 61 53 63 61 59 69 70
++59 79 61 59 69 70 75 77 62 59 69 70 75 77 62 60 82 70 75 72 67 75 81 76
++75 81 69 75 81 76 75 81 76 88 83 74 75 81 76 75 81 76 75 81 76 75 81 76
++88 83 74 75 81 76 75 81 69 75 72 67 75 72 67 75 72 67 59 69 70 75 72 67
++75 72 67 59 79 61 75 72 67 59 69 70 75 77 62 59 69 70 65 63 61 59 79 61
++59 69 70 59 69 70 59 69 70 75 72 67 59 69 70 59 69 70 59 69 70 59 69 70
++60 82 70 59 69 70 75 81 76 60 82 70 75 81 76 75 81 69 75 81 76 75 81 76
++48 50 48 26 30 28 14 16 17 14 16 17 14 16 17 14 16 17 23 18 22 23 20 24
++22 25 24 22 25 24 22 25 24 23 20 24 22 23 31 22 25 24 23 20 24 22 25 24
++23 20 24 26 30 28 23 20 24 22 25 24 22 25 24 22 25 24 26 30 28 26 30 28
++26 24 32 22 25 24 26 30 28 23 20 24 22 25 24 26 30 28 23 20 24 26 24 32
++33 30 30 31 35 35 32 39 24 33 30 32 31 35 35 42 41 42 42 47 42 48 50 48
++59 57 61 75 81 76 90 98 89 112 96 108 98 113 84 95 91 100 90 98 89 90 98 89
++90 98 89 95 91 100 90 98 89 90 98 89 78 98 90 88 83 88 78 98 90 88 83 88
++75 81 82 75 81 76 75 81 76 59 69 70 59 69 70 59 69 70 59 69 70 53 63 61
++48 50 48 43 55 48 48 50 48 43 55 48 48 50 48 43 55 48 52 55 48 45 57 61
++52 55 48 52 55 48 48 50 48 59 55 55 52 55 48 52 55 48 59 55 55 53 63 61
++63 55 51 65 63 61 64 70 48 65 63 61 75 72 67 59 69 70 75 77 62 59 69 70
++75 81 69 75 72 67 59 69 70 75 72 67 75 72 67 75 81 76 75 72 67 59 69 70
++75 72 67 75 81 76 59 69 70 75 72 67 75 72 67 75 72 67 59 69 70 65 63 61
++75 72 67 65 63 61 65 63 61 65 63 61 65 63 61 64 70 48 65 63 61 65 63 61
++64 70 48 59 57 61 64 70 48 59 57 61 64 70 48 59 57 61 65 63 61 53 63 61
++64 70 48 65 63 61 53 63 61 64 70 48 53 63 61 65 63 61 53 63 61 65 63 61
++59 79 61 65 63 61 65 63 61 65 63 61 59 79 61 75 72 67 75 72 67 75 81 76
++75 81 82 75 81 82 75 81 82 75 81 82 90 98 89 90 98 89 90 98 89 95 91 100
++95 91 100 95 91 100 94 105 108 95 91 100 94 105 108 90 98 89 94 105 108 95 91 100
++90 98 89 95 91 100 90 98 89 95 91 100 78 98 90 88 83 88 75 81 82 75 81 82
++75 81 82 75 81 82 60 81 83 75 64 82 59 69 70 59 69 70 59 69 70 54 57 61
++45 57 61 45 57 61 48 50 48 42 47 42 35 47 50 43 42 50 35 46 43 42 41 42
++34 40 43 42 41 42 42 41 42 42 41 42 42 47 42 42 47 42 42 47 42 43 42 50
++42 47 42 48 50 48 48 50 48 54 57 61 48 50 48 48 50 48 48 50 48 48 50 48
++47 44 42 42 47 42 47 44 42 47 44 42 42 47 42 47 44 42 47 44 42 47 44 42
++42 41 42 42 47 42 42 41 42 47 47 21 42 41 42 36 35 37 42 41 42 36 35 37
++42 41 42 42 41 42 47 44 42 47 44 42 51 49 42 53 46 48 51 49 42 51 49 42
++55 55 48 55 55 48 65 55 54 65 63 61 59 55 55 65 63 61 65 63 61 65 63 61
++59 79 61 65 63 61 65 63 61 59 79 61 65 63 61 65 63 61 53 63 61 59 57 61
++54 57 61 53 63 61 59 55 55 50 61 48 52 55 48 45 57 61 48 50 48 43 42 50
++35 47 50 42 47 42 35 47 50 42 41 42 35 46 43 34 40 43 34 40 43 34 40 43
++34 40 43 34 40 43 34 40 43 35 46 43 42 47 42 43 42 50 43 55 48 43 42 50
++48 50 48 48 50 48 45 57 61 54 57 61 59 55 55 59 57 61 65 63 61 59 57 61
++
++75 81 82 90 98 89 94 105 108 112 123 108 119 117 138 122 134 144 129 144 153 148 160 159
++150 168 183 150 168 183 166 176 200 166 176 200 185 202 202 166 176 200 194 199 226 166 176 200
++194 199 226 194 199 226 166 176 200 194 199 226 194 199 226 194 199 226 166 176 200 194 199 226
++166 176 200 194 199 226 194 199 226 185 202 202 194 199 226 194 199 226 194 199 226 194 199 226
++194 199 226 194 199 226 185 202 202 194 199 226 194 199 226 185 202 202 194 199 226 185 202 202
++194 199 226 185 202 202 185 202 202 188 180 202 185 202 202 188 180 202 185 202 202 166 176 200
++185 202 202 166 176 200 166 176 200 166 176 200 150 168 183 150 168 183 150 147 171 150 147 171
++129 144 153 111 122 142 98 121 131 95 95 116 77 90 100 75 81 90 46 59 71 43 42 50
++28 30 35 26 24 32 22 25 24 33 30 30 36 35 37 47 47 21 51 49 42 75 56 53
++88 73 31 88 73 62 101 83 74 117 99 86 120 63 71 117 112 45 117 99 86 117 114 76
++117 99 86 117 99 86 101 83 74 117 99 86 101 83 74 88 73 62 88 73 62 75 73 58
++63 55 45 51 49 42 47 44 42 42 47 42 36 35 37 33 39 38 35 46 43 35 46 43
++42 47 42 43 55 48 43 55 48 43 55 48 52 55 48 50 61 48 59 55 55 59 55 55
++64 70 48 65 63 61 65 63 61 75 73 58 75 77 62 75 77 62 75 77 62 75 77 62
++75 81 69 88 73 62 75 81 69 88 83 74 75 81 69 88 83 74 88 83 74 81 96 56
++88 73 62 75 77 62 88 73 62 75 77 62 88 73 62 75 73 58 75 73 58 75 73 58
++88 73 62 75 63 62 88 73 62 75 56 53 75 73 58 75 56 53 75 63 62 75 72 67
++75 73 58 75 72 67 88 73 62 75 72 67 88 83 74 75 72 67 75 72 67 75 72 67
++75 81 69 75 72 67 75 72 67 59 69 70 75 72 67 65 63 61 65 63 61 65 63 61
++65 63 61 54 57 61 52 55 48 48 50 48 43 55 48 43 55 48 42 47 42 35 46 43
++35 46 43 35 46 43 34 40 43 35 46 43 42 41 42 35 46 43 42 47 42 35 46 43
++42 47 42 35 47 50 42 47 42 35 47 50 48 50 48 48 50 48 45 57 61 43 42 50
++48 50 48 43 55 48 45 57 61 43 42 50 43 42 50 43 55 48 43 42 50 43 55 48
++43 42 50 35 47 50 35 46 43 43 42 50 35 47 50 34 40 43 35 47 50 34 40 43
++43 42 50 34 40 43 43 42 50 34 40 43 34 40 43 34 40 43 37 35 43 34 40 43
++34 40 43 34 40 43 33 39 38 34 40 43 34 40 43 34 40 43 34 40 43 42 41 42
++42 41 42 34 40 43 42 38 42 43 42 50 43 42 50 48 50 48 45 57 61 54 57 61
++54 57 61 54 57 61 63 59 71 59 69 70 75 72 67 59 69 70 59 69 70 75 64 82
++60 81 83 75 81 82 75 64 82 75 81 76 75 64 82 75 81 76 88 83 88 75 81 76
++75 81 82 88 83 88 90 98 89 88 83 88 88 83 88 90 98 89 88 83 88 90 98 89
++88 83 88 90 98 89 88 83 88 88 83 88 88 83 74 88 83 74 75 81 76 88 83 74
++75 81 76 88 66 70 75 81 76 75 72 67 75 72 67 75 72 67 75 72 67 65 63 61
++75 72 67 65 63 61 59 69 70 65 63 61 65 63 61 63 59 71 65 63 61 65 63 61
++53 63 61 59 55 55 59 57 61 75 72 67 59 69 70 42 47 42 15 22 17 3 3 1
++7 12 13 28 35 38 48 50 48 43 42 50 34 40 43 34 40 43 31 35 35 28 30 35
++28 30 35 28 30 35 28 30 35 30 30 34 31 35 35 30 30 34 31 35 35 36 35 37
++30 30 34 26 24 32 22 25 24 26 30 28 30 30 34 30 30 34 25 30 29 25 30 29
++26 30 28 23 20 24 34 30 15 55 39 18 101 74 26 157 148 53 201 146 124 219 175 47
++219 175 47 219 175 47 176 103 41 176 103 41 219 175 47 219 175 47 219 175 47 219 175 47
++176 103 41 176 103 41 219 175 47 219 175 47 219 175 47 219 175 47 176 103 41 101 74 26
++52 30 15 34 30 15 42 47 42 48 50 48 48 50 48 42 41 42 33 39 38 31 35 35
++31 35 35 31 35 35 33 39 38 33 39 38 33 39 38 42 41 42 35 46 43 42 41 42
++34 40 43 35 46 43 35 46 43 42 47 42 43 42 50 42 47 42 43 42 50 35 46 43
++34 40 43 33 39 38 31 35 35 31 35 35 31 35 35 30 30 34 28 30 35 25 30 29
++25 30 29 28 30 35 25 30 29 28 30 35 30 30 34 28 30 35 30 30 34 33 30 32
++33 30 32 36 35 37 30 30 34 26 30 28 22 25 24 23 20 24 23 18 22 17 12 17
++17 12 17 3 4 9 3 4 9 3 3 1 3 4 9 3 4 9 3 3 1 3 3 1
++3 3 1 3 4 9 3 4 9 7 12 13 14 16 17 23 18 22 23 20 24 22 25 24
++22 25 24 22 23 31 25 30 29 30 30 34 31 35 35 36 35 37 34 40 43 34 40 43
++42 41 42 34 40 43 34 40 43 33 39 38 36 35 37 33 39 38 31 35 35 31 35 35
++25 30 29 25 30 29 23 30 35 12 18 20 12 18 30 35 47 50 60 81 83 98 121 131
++98 121 131 98 121 131 77 91 115 60 81 83 60 81 83 60 81 83 60 81 83 75 99 72
++60 82 70 75 81 76 75 81 82 60 81 83 75 99 72 75 81 90 75 81 82 75 81 90
++78 98 90 78 98 90 78 98 90 78 98 90 78 98 90 75 81 90 78 98 90 75 81 82
++75 81 82 75 81 76 75 81 76 75 99 72 75 81 82 75 81 82 75 81 76 78 98 90
++75 81 82 75 81 82 75 81 82 78 98 90 75 81 82 75 81 82 75 81 82 88 83 88
++78 98 90 88 83 88 78 98 90 90 98 89 78 98 90 90 98 89 90 98 89 78 98 90
++90 98 89 78 98 90 78 98 90 75 81 76 75 81 69 59 69 70 59 69 70 50 61 48
++43 55 48 35 46 43 42 47 42 35 46 43 35 46 43 42 47 42 35 46 43 42 47 42
++42 47 42 43 55 48 42 47 42 43 55 48 42 47 42 48 50 48 43 55 48 50 61 48
++53 63 61 50 61 48 53 63 61 53 63 61 53 63 61 53 63 61 65 63 61 59 69 70
++65 63 61 59 69 70 75 72 67 60 82 70 75 72 67 75 72 67 75 81 69 75 81 69
++75 81 76 75 81 76 75 81 76 88 83 74 75 81 76 88 83 74 75 81 76 88 83 74
++75 81 76 75 81 76 75 81 76 75 81 76 75 81 69 75 81 69 75 72 67 60 82 70
++75 72 67 75 72 67 59 69 70 75 77 62 59 69 70 59 79 61 65 63 61 59 79 61
++53 63 61 59 79 61 59 69 70 59 69 70 59 69 70 59 79 61 59 79 61 59 79 61
++59 69 70 75 81 76 59 69 70 75 81 76 59 69 70 75 72 67 75 81 76 75 81 76
++59 69 70 48 50 48 22 25 24 15 17 7 14 16 17 14 16 17 14 16 17 15 22 17
++23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 22 25 24 22 25 24
++22 25 24 23 20 24 26 30 28 23 20 24 33 30 30 22 25 24 26 25 15 23 20 24
++22 25 24 22 25 24 23 20 24 26 30 28 23 20 24 33 30 30 22 25 24 26 30 28
++33 30 30 36 35 37 31 35 35 33 30 32 33 30 32 33 39 38 47 44 42 42 47 42
++52 55 48 75 73 58 88 83 88 90 98 89 95 91 100 98 113 84 94 105 108 90 98 89
++90 98 89 90 98 89 95 91 100 90 98 89 90 98 89 78 98 90 88 83 88 78 98 90
++75 81 82 75 81 82 60 81 83 75 81 76 75 81 76 59 69 70 59 69 70 53 63 61
++54 57 61 43 55 48 48 50 48 45 57 61 48 50 48 43 55 48 48 50 48 48 50 48
++52 55 48 48 50 48 52 55 48 48 50 48 52 55 48 52 55 48 50 61 48 63 55 51
++50 61 48 53 63 61 65 63 61 59 79 61 65 63 61 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 59 69 70 75 81 69 59 69 70 75 72 67 75 81 76 75 81 76
++59 69 70 75 72 67 75 72 67 75 81 76 75 72 67 59 69 70 75 72 67 75 72 67
++65 63 61 59 79 61 65 63 61 65 63 61 65 63 61 75 72 67 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 53 63 61 65 63 61 64 70 48 65 63 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 75 73 58 59 69 70
++75 72 67 75 72 67 75 81 76 59 69 70 75 72 67 75 81 76 75 81 76 75 81 82
++75 81 90 88 83 88 78 98 90 88 83 88 78 98 90 95 91 100 77 90 100 95 91 100
++94 105 108 90 98 89 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108
++94 105 108 94 105 108 94 105 108 77 90 100 90 98 89 78 98 90 78 98 90 75 81 82
++75 81 82 75 81 82 60 81 83 75 81 76 60 81 83 59 69 70 59 69 70 53 63 61
++54 57 61 45 57 61 45 57 61 43 55 48 42 47 42 42 47 42 42 41 42 34 40 43
++42 41 42 34 40 43 42 41 42 42 41 42 42 41 42 42 47 42 48 44 48 42 47 42
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 52 55 48 48 50 48 48 50 48
++47 49 42 47 49 42 47 44 42 42 47 42 47 44 42 47 44 42 42 47 42 47 44 42
++42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 47 42 42 41 42 47 47 21
++42 41 42 42 41 42 42 41 42 47 44 42 47 44 42 47 44 42 47 49 42 51 49 42
++48 50 48 55 55 48 59 55 55 63 55 51 59 55 55 59 55 55 59 55 55 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 59 55 55
++54 57 61 50 61 48 53 63 61 48 50 48 45 57 61 48 50 48 43 42 50 43 55 48
++43 42 50 42 47 42 43 42 50 34 40 43 42 41 42 34 40 43 34 40 43 34 40 43
++34 40 43 34 40 43 34 40 43 34 40 43 35 46 43 42 47 42 35 47 50 43 42 50
++48 50 48 48 50 48 48 50 48 59 55 55 54 57 61 59 57 61 53 63 61 59 57 61
++
++75 81 82 88 83 88 94 105 108 111 119 127 119 117 138 122 134 144 150 144 154 131 144 168
++150 168 183 166 174 181 166 176 200 166 176 200 166 176 200 194 199 226 166 176 200 194 199 226
++166 176 200 194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 194 199 226 194 199 226
++194 199 226 166 176 200 194 199 226 194 199 226 166 176 200 194 199 226 185 202 202 194 199 226
++166 176 200 194 199 226 194 199 226 166 176 200 194 199 226 194 199 226 185 202 202 194 199 226
++166 176 200 194 199 226 185 202 202 185 202 202 166 176 200 185 202 202 166 176 200 185 202 202
++166 176 200 185 202 202 166 176 200 166 176 200 166 174 181 150 168 183 150 168 183 150 147 171
++129 144 153 122 134 144 119 117 138 95 108 128 77 91 115 75 81 90 54 57 61 43 42 50
++28 30 35 22 25 24 26 30 28 33 30 30 33 30 30 47 44 42 60 49 42 63 55 45
++88 73 62 88 73 62 120 63 71 117 112 45 117 99 86 117 99 86 117 99 86 168 102 88
++117 99 86 117 99 86 117 99 86 120 63 71 117 114 76 88 73 62 88 73 62 75 73 58
++75 56 53 63 55 45 47 44 42 42 41 42 36 35 37 42 47 42 33 39 38 42 47 42
++43 42 50 43 55 48 43 55 48 43 55 48 48 50 48 50 61 48 59 55 55 65 63 61
++53 63 61 65 63 61 64 70 48 75 72 67 75 77 62 75 77 62 75 72 67 75 77 62
++88 83 74 75 81 69 88 83 74 88 83 74 88 83 74 88 73 62 75 81 69 88 83 74
++88 73 62 88 83 74 75 77 62 75 81 69 88 73 62 75 77 62 88 73 62 88 73 62
++75 73 58 75 73 58 75 73 58 75 63 62 75 73 58 75 73 58 88 73 62 75 72 67
++88 66 70 88 73 62 88 83 74 88 83 74 88 83 74 88 83 74 88 83 74 75 72 67
++75 81 76 75 81 76 75 72 67 75 72 67 75 72 67 65 63 61 65 63 61 65 63 61
++53 63 61 59 57 61 52 55 48 54 57 61 43 55 48 43 55 48 43 55 48 42 47 42
++42 47 42 35 46 43 42 47 42 42 47 42 35 46 43 35 46 43 42 41 42 42 47 42
++35 46 43 42 47 42 42 47 42 43 55 48 48 50 48 43 55 48 48 50 48 43 55 48
++45 57 61 48 50 48 48 50 48 45 57 61 43 42 50 35 47 50 48 50 48 35 47 50
++35 47 50 35 47 50 43 42 50 35 47 50 35 46 43 35 47 50 34 40 43 34 40 43
++34 40 43 34 40 43 34 40 43 34 40 43 34 40 43 34 40 43 37 35 43 34 40 43
++28 35 38 34 40 43 28 35 38 34 40 43 37 35 43 37 35 43 42 38 42 34 40 43
++42 41 42 43 42 50 34 40 43 43 42 50 48 50 48 43 55 48 45 57 61 54 57 61
++54 57 61 59 57 61 59 69 70 63 59 71 59 69 70 75 81 76 75 81 82 75 81 76
++75 81 82 75 64 82 75 81 76 60 81 83 75 81 76 75 81 76 88 69 84 75 81 82
++88 83 88 88 83 88 90 98 89 88 83 88 90 98 89 88 83 88 90 98 89 88 83 88
++88 83 88 88 83 74 88 83 88 99 93 84 88 83 74 88 83 88 88 83 74 88 69 84
++75 81 76 75 72 67 88 83 74 75 72 67 75 72 67 75 72 67 75 63 62 75 72 67
++65 63 61 59 69 70 75 72 67 65 63 61 59 69 70 65 63 61 59 57 61 53 63 61
++59 55 55 52 55 48 52 55 48 59 69 70 65 63 61 42 41 42 15 22 17 7 12 13
++12 18 20 28 35 38 43 42 50 34 40 43 34 40 43 28 35 38 36 35 37 28 30 35
++28 30 35 26 24 32 26 30 28 26 24 32 22 25 24 22 23 31 25 30 29 30 30 34
++26 30 28 26 30 28 26 24 32 26 30 28 30 30 34 25 30 29 25 30 29 23 30 35
++22 25 24 22 25 24 34 30 15 76 46 20 117 112 45 219 175 47 227 171 124 197 171 123
++176 103 41 101 74 26 101 74 26 176 103 41 219 175 47 219 175 47 219 175 47 219 175 47
++219 175 47 176 103 41 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 101 74 26
++76 46 20 34 30 15 32 39 24 47 49 42 48 50 48 43 42 50 33 39 38 31 35 35
++28 30 35 31 35 35 33 39 38 33 39 38 33 39 38 33 39 38 34 40 43 34 40 43
++34 40 43 42 41 42 35 47 50 48 50 48 43 55 48 43 55 48 48 50 48 43 55 48
++43 42 50 43 55 48 35 46 43 35 46 43 34 40 43 35 46 43 33 39 38 34 40 43
++33 39 38 33 39 38 33 39 38 33 39 38 33 39 38 31 35 35 33 39 38 36 35 37
++31 35 35 30 30 34 22 25 24 23 18 22 14 16 17 7 12 13 3 4 9 3 4 9
++3 3 1 3 3 1 3 3 1 3 4 9 3 4 9 7 12 13 3 4 9 7 12 13
++13 4 7 14 16 17 23 18 22 22 25 24 26 24 32 26 30 28 30 30 34 30 30 34
++30 30 34 30 30 34 30 30 34 31 35 35 33 39 38 33 39 38 34 40 43 34 40 43
++34 40 43 34 40 43 36 35 37 31 35 35 33 39 38 34 40 43 34 40 43 34 40 43
++33 39 38 31 35 35 31 35 35 25 30 29 15 22 17 12 18 20 23 30 35 42 60 86
++95 119 107 61 78 101 60 82 70 60 81 83 60 82 70 60 82 70 60 82 70 60 82 70
++75 81 76 60 81 83 75 81 76 75 81 76 75 81 82 60 81 83 75 81 82 60 81 83
++75 81 82 60 81 83 75 81 82 60 81 83 75 81 76 60 82 70 60 82 70 60 82 70
++75 81 69 60 82 70 75 81 76 75 81 76 75 81 76 75 81 69 75 81 76 75 81 69
++75 81 76 75 81 76 75 81 82 75 81 76 75 99 72 75 81 82 75 99 72 75 81 82
++75 99 72 88 83 88 75 99 72 75 81 82 78 98 90 88 83 74 75 81 82 75 81 76
++75 81 76 60 82 70 59 69 70 53 63 61 43 55 48 43 55 48 42 47 42 42 47 42
++42 47 42 35 46 43 42 47 42 42 47 42 42 47 42 42 47 42 43 55 48 43 55 48
++42 47 42 48 50 48 42 47 42 43 55 48 43 55 48 43 55 48 43 55 48 54 57 61
++50 61 48 53 63 61 53 63 61 53 63 61 65 63 61 65 63 61 65 63 61 59 79 61
++75 72 67 59 69 70 75 72 67 59 69 70 75 81 69 60 82 70 75 72 67 75 81 76
++75 81 76 88 83 74 75 81 76 88 83 74 75 81 76 75 81 76 88 83 74 75 81 76
++88 83 74 75 81 76 75 81 76 75 81 76 75 72 67 59 69 70 75 72 67 75 72 67
++75 72 67 59 79 61 75 72 67 59 69 70 75 77 62 59 69 70 65 63 61 59 79 61
++65 63 61 53 63 61 59 69 70 59 69 70 59 69 70 59 79 61 53 63 61 59 69 70
++59 69 70 59 69 70 75 72 67 59 69 70 75 81 76 59 69 70 75 81 76 75 72 67
++75 81 76 65 63 61 43 55 48 22 25 24 7 12 13 14 16 17 14 16 17 14 16 17
++23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24
++22 25 24 26 30 28 23 20 24 26 24 32 22 25 24 26 25 15 26 24 32 26 30 28
++22 25 24 22 25 24 26 30 28 22 25 24 26 30 28 22 25 24 33 30 30 23 20 24
++33 30 30 33 30 32 31 35 35 33 30 32 36 35 37 33 39 38 42 41 42 42 41 42
++48 50 48 53 63 61 75 81 76 90 98 89 112 96 108 90 98 89 94 105 108 99 93 84
++94 105 108 90 98 89 90 98 89 90 98 89 78 98 90 88 83 88 75 81 82 78 98 90
++75 81 82 75 81 82 75 81 76 59 69 70 60 82 70 59 69 70 59 69 70 53 63 61
++53 63 61 50 61 48 45 57 61 48 50 48 48 50 48 43 55 48 48 50 48 43 55 48
++43 55 48 52 55 48 52 55 48 52 55 48 52 55 48 52 55 48 50 61 48 53 63 61
++63 55 51 65 63 61 65 63 61 65 63 61 65 63 61 59 79 61 75 72 67 75 72 67
++59 69 70 75 81 69 75 72 67 75 81 69 75 81 76 75 81 76 75 81 76 75 72 67
++75 81 76 75 81 76 59 69 70 75 81 76 75 72 67 75 72 67 59 69 70 75 72 67
++59 69 70 75 72 67 65 63 61 59 79 61 65 63 61 65 63 61 75 73 58 65 63 61
++65 63 61 65 63 61 64 70 48 65 63 61 64 70 48 65 63 61 65 63 61 65 63 61
++64 70 48 65 63 61 59 79 61 65 63 61 65 63 61 59 79 61 75 72 67 75 72 67
++60 82 70 75 81 69 75 81 76 75 81 76 75 81 82 75 81 90 75 81 82 88 83 88
++78 98 90 77 90 100 95 91 100 77 90 100 95 91 100 95 91 100 94 105 108 94 105 108
++94 105 108 94 105 108 94 105 108 95 119 107 94 105 108 94 105 108 94 105 108 94 105 108
++94 105 108 94 105 108 94 105 108 94 105 108 90 98 89 77 90 100 88 83 88 75 81 82
++75 81 82 75 81 82 75 81 76 59 69 70 75 81 76 59 69 70 59 69 70 53 63 61
++53 63 61 45 57 61 43 55 48 48 50 48 43 42 50 42 47 42 35 46 43 34 40 43
++42 41 42 33 39 38 42 41 42 42 41 42 42 41 42 42 47 42 42 47 42 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 52 55 48 48 50 48 48 50 48 51 49 42
++48 50 48 47 49 42 47 49 42 47 44 42 42 47 42 47 44 42 42 47 42 47 44 42
++42 41 42 47 47 21 42 41 42 36 35 37 47 47 21 42 38 42 47 44 42 47 44 42
++42 41 42 47 47 21 42 41 42 42 41 42 42 41 42 47 44 42 47 49 42 51 49 42
++51 49 42 55 55 48 55 55 48 59 55 55 59 55 55 64 70 48 59 57 61 65 63 61
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 59 79 61 59 57 61 53 63 61
++59 55 55 53 63 61 54 57 61 52 55 48 43 55 48 48 50 48 35 47 50 43 55 48
++42 47 42 35 47 50 35 46 43 34 40 43 34 40 43 34 40 43 34 40 43 34 40 43
++34 40 43 37 35 43 34 40 43 34 40 43 42 41 42 35 46 43 43 42 50 43 55 48
++45 57 61 48 50 48 54 57 61 54 57 61 54 57 61 59 55 55 59 57 61 54 57 61
++
++75 81 90 90 98 89 112 96 108 112 123 108 119 117 138 122 134 144 129 144 153 148 160 159
++150 147 171 150 168 183 166 176 200 166 176 200 166 176 200 166 176 200 185 202 202 166 176 200
++194 199 226 166 176 200 194 199 226 185 202 202 194 199 226 194 199 226 194 199 226 166 176 200
++185 202 202 194 199 226 185 202 202 194 199 226 194 199 226 166 176 200 194 199 226 194 199 226
++194 199 226 185 202 202 194 199 226 194 199 226 194 199 226 194 199 226 166 176 200 185 202 202
++194 199 226 185 202 202 166 176 200 194 199 226 185 202 202 188 180 202 194 199 226 166 176 200
++185 202 202 166 176 200 166 176 200 166 176 200 166 176 200 166 174 181 150 147 171 150 147 171
++131 144 168 122 134 144 111 122 142 95 108 128 95 95 116 75 81 90 46 59 71 35 47 50
++30 30 34 26 24 32 23 20 24 34 30 15 36 35 37 47 47 21 60 49 42 63 55 45
++88 73 31 88 73 62 101 83 74 120 63 71 117 99 86 120 63 71 117 99 86 117 99 86
++117 99 86 168 102 88 117 99 86 117 114 76 101 83 74 101 83 74 88 73 62 88 73 62
++75 63 62 63 55 45 51 49 42 47 49 42 42 41 42 33 39 38 42 41 42 35 46 43
++42 47 42 43 42 50 43 55 48 43 55 48 52 55 48 52 55 48 64 70 48 53 63 61
++64 70 48 65 63 61 65 63 61 75 73 58 75 72 67 75 81 69 75 77 62 75 81 69
++75 81 69 88 83 74 75 81 69 88 83 74 81 96 56 88 83 74 88 83 74 75 81 69
++88 83 74 75 77 62 88 83 74 88 73 62 88 83 74 88 83 74 75 81 69 88 73 62
++88 73 62 88 73 62 75 73 58 88 73 62 75 63 62 88 73 62 75 72 67 88 66 70
++88 83 74 88 83 74 75 81 76 88 83 74 88 83 74 88 83 74 88 83 88 88 83 74
++75 81 76 88 83 74 75 81 76 75 81 69 75 72 67 75 72 67 75 72 67 59 69 70
++65 63 61 53 63 61 54 57 61 54 57 61 54 57 61 43 55 48 45 57 61 43 55 48
++43 55 48 42 47 42 42 47 42 35 46 43 42 47 42 42 47 42 42 47 42 35 46 43
++42 47 42 42 47 42 35 47 50 42 47 42 35 47 50 43 42 50 48 50 48 45 57 61
++48 50 48 48 50 48 45 57 61 48 50 48 43 42 50 43 55 48 43 42 50 43 42 50
++35 47 50 43 42 50 35 46 43 35 47 50 34 40 43 35 47 50 34 40 43 43 42 50
++34 40 43 34 40 43 34 40 43 34 40 43 37 35 43 34 40 43 28 35 38 34 40 43
++33 39 38 28 35 38 28 35 38 33 39 38 33 39 38 34 40 43 37 35 43 34 40 43
++34 40 43 34 40 43 43 42 50 43 42 50 43 42 50 48 44 48 45 57 61 54 57 61
++54 57 61 53 63 61 63 59 71 59 69 70 59 69 70 75 64 82 60 81 83 75 64 82
++75 81 76 60 81 83 75 81 82 75 81 76 88 69 84 75 81 82 75 81 82 88 83 88
++88 83 88 88 83 88 90 98 89 88 83 88 90 98 89 88 83 88 90 98 89 88 83 88
++90 98 89 90 98 89 88 83 88 88 83 88 88 83 88 88 83 74 88 83 74 75 81 76
++88 83 74 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++65 63 61 75 72 67 65 63 61 65 63 61 65 63 61 59 57 61 59 57 61 65 63 61
++54 57 61 54 57 61 59 57 61 75 72 67 54 57 61 33 39 38 22 25 24 23 20 24
++26 24 32 28 35 38 34 40 43 28 35 38 31 35 35 31 35 35 30 30 34 26 24 32
++22 23 31 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 26 30 28
++26 24 32 26 30 28 22 25 24 26 24 32 25 30 29 30 30 34 31 35 35 31 35 35
++26 30 28 26 25 15 26 30 28 76 46 20 157 148 53 219 175 47 214 214 134 219 175 47
++101 74 26 88 30 18 101 74 26 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47
++219 175 47 219 175 47 219 175 47 176 103 41 219 175 47 219 175 47 227 171 124 157 148 53
++101 74 26 55 39 18 32 39 24 33 39 38 48 50 48 48 50 48 34 40 43 31 35 35
++31 35 35 31 35 35 34 40 43 33 39 38 42 41 42 33 39 38 42 38 42 35 47 50
++43 42 50 35 47 50 48 50 48 43 55 48 48 50 48 45 57 61 48 50 48 45 57 61
++52 55 48 45 57 61 48 50 48 48 50 48 43 55 48 43 42 50 42 47 42 42 41 42
++42 41 42 34 40 43 33 39 38 31 35 35 31 35 35 31 35 35 28 30 35 25 30 29
++23 20 24 14 16 17 7 12 13 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 4 9 17 12 17 14 16 17 23 18 22 23 20 24
++23 20 24 22 25 24 22 25 24 26 24 32 26 30 28 25 30 29 22 25 24 26 24 32
++25 30 29 26 24 32 22 23 31 23 20 24 15 22 17 14 16 17 12 18 20 12 18 20
++23 20 24 15 22 17 15 22 17 12 18 20 22 25 24 22 25 24 28 30 35 31 35 35
++33 39 38 33 39 38 35 46 43 33 39 38 23 30 35 12 18 30 28 35 38 60 82 70
++98 121 131 95 119 107 60 81 83 60 82 70 60 82 70 60 82 70 60 82 70 75 81 76
++60 82 70 75 81 69 75 81 76 60 82 70 60 82 70 60 81 83 75 81 76 60 81 83
++60 81 83 75 81 76 60 81 83 60 82 70 59 69 70 75 81 76 59 69 70 75 72 67
++60 82 70 75 81 69 60 82 70 75 81 69 59 69 70 60 82 70 60 82 70 75 81 69
++60 82 70 75 81 76 75 81 76 75 81 82 75 81 76 75 81 76 75 81 76 75 81 76
++75 81 76 75 81 76 75 81 76 75 81 69 75 81 69 60 82 70 59 79 61 53 63 61
++50 61 48 43 55 48 43 55 48 43 55 48 35 46 43 35 46 43 43 55 48 43 55 48
++43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 42 47 42 43 55 48
++42 47 42 48 50 48 42 47 42 43 55 48 48 50 48 43 55 48 43 55 48 52 55 48
++50 61 48 53 63 61 51 73 47 53 63 61 53 63 61 53 63 61 59 69 70 65 63 61
++59 69 70 75 72 67 60 82 70 75 72 67 75 72 67 75 72 67 75 81 76 75 81 69
++75 81 76 75 81 76 88 83 74 75 81 82 88 83 74 75 81 76 88 83 74 75 81 82
++88 83 74 75 81 76 75 81 76 75 81 69 75 81 69 75 77 62 75 72 67 75 81 69
++59 69 70 75 72 67 59 69 70 75 72 67 59 79 61 65 63 61 59 79 61 65 63 61
++53 63 61 59 79 61 53 63 61 59 69 70 53 63 61 59 79 61 53 63 61 59 79 61
++59 79 61 59 69 70 59 69 70 59 69 70 59 69 70 75 72 67 59 69 70 59 69 70
++75 81 69 75 81 76 65 63 61 42 47 42 22 25 24 14 16 17 14 16 17 23 18 22
++12 18 20 23 18 22 15 22 17 23 20 24 23 20 24 22 25 24 23 20 24 33 30 30
++23 20 24 22 25 24 23 20 24 26 30 28 22 25 24 22 25 24 26 25 15 23 20 24
++26 30 28 23 20 24 33 30 30 23 20 24 33 30 30 23 20 24 26 30 28 26 24 32
++26 30 28 33 30 30 31 35 35 33 30 30 36 35 37 36 35 37 32 39 24 36 35 37
++47 49 42 65 55 54 88 83 74 99 93 84 94 105 108 90 98 89 90 98 89 90 98 89
++90 98 89 90 98 89 90 98 89 88 83 88 90 98 89 78 98 90 88 83 88 78 98 90
++75 81 82 75 81 82 75 81 76 60 81 83 75 81 76 59 69 70 59 69 70 53 63 61
++53 63 61 45 57 61 48 50 48 43 55 48 43 55 48 48 50 48 43 55 48 48 50 48
++48 50 48 52 55 48 52 55 48 48 50 48 52 55 48 52 55 48 50 61 48 63 55 51
++53 63 61 64 70 48 65 63 61 59 79 61 75 72 67 75 72 67 75 72 67 75 72 67
++75 81 69 75 72 67 60 82 70 75 72 67 75 81 76 75 72 67 75 81 76 75 81 76
++59 69 70 75 81 76 75 72 67 75 81 76 59 69 70 75 72 67 75 72 67 59 69 70
++75 72 67 75 72 67 75 72 67 65 63 61 75 72 67 75 72 67 65 63 61 75 72 67
++75 72 67 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++75 72 67 65 63 61 65 63 61 65 63 61 75 72 67 75 72 67 75 72 67 60 82 70
++75 72 67 75 81 76 75 81 76 75 81 82 75 81 90 75 81 82 78 98 90 77 90 100
++90 98 89 90 98 89 94 105 108 90 98 89 94 105 108 94 105 108 94 105 108 94 105 108
++94 105 108 94 105 108 94 105 108 94 105 108 112 123 108 94 105 108 112 123 108 94 105 108
++94 105 108 94 105 108 94 105 108 95 91 100 94 105 108 90 98 89 78 98 90 78 98 90
++75 81 82 60 81 83 75 81 82 75 81 76 60 81 83 59 69 70 59 69 70 53 63 61
++45 57 61 54 57 61 43 55 48 43 55 48 42 47 42 42 47 42 43 42 50 34 40 43
++42 41 42 33 39 38 42 41 42 33 39 38 42 41 42 42 47 42 48 44 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 52 55 48 51 49 42 52 55 48
++48 50 48 47 49 42 47 49 42 42 47 42 47 49 42 47 44 42 42 47 42 47 44 42
++47 44 42 42 41 42 42 41 42 42 41 42 42 41 42 47 44 42 36 35 37 42 41 42
++42 41 42 42 41 42 36 35 37 42 41 42 42 41 42 47 44 42 47 44 42 47 44 42
++51 49 42 53 46 48 53 46 48 55 55 48 55 55 48 55 55 48 59 55 55 64 70 48
++65 63 61 65 63 61 65 63 61 65 63 61 64 70 48 59 57 61 59 57 61 59 57 61
++52 55 48 54 57 61 52 55 48 45 57 61 48 50 48 43 55 48 43 42 50 42 47 42
++43 42 50 42 47 42 43 42 50 34 40 43 34 40 43 34 40 43 33 39 38 37 35 43
++34 40 43 34 40 43 34 40 43 34 40 43 35 46 43 42 47 42 43 42 50 43 42 50
++48 44 48 45 57 61 48 50 48 52 55 48 54 57 61 59 57 61 59 57 61 59 57 61
++
++88 83 88 88 83 88 94 105 108 111 119 127 119 117 138 145 140 145 129 144 153 150 147 171
++150 168 183 150 168 183 166 174 181 166 176 200 185 202 202 166 176 200 194 199 226 166 176 200
++194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 194 199 226
++194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 194 199 226 185 202 202 166 176 200
++194 199 226 194 199 226 166 176 200 194 199 226 185 202 202 194 199 226 185 202 202 194 199 226
++185 202 202 188 180 202 185 202 202 188 180 202 185 202 202 166 176 200 185 202 202 166 176 200
++188 180 202 166 176 200 188 180 202 166 174 181 150 168 183 150 168 183 150 168 183 150 147 171
++131 144 168 122 134 144 119 117 138 95 108 128 95 95 116 61 78 101 63 59 71 43 42 50
++28 35 38 22 25 24 22 25 24 33 30 30 33 30 30 47 39 42 51 49 42 63 55 45
++75 56 53 88 73 62 101 83 74 117 112 45 117 99 86 117 114 76 168 102 88 117 99 86
++117 99 86 117 112 45 117 99 86 120 63 71 117 114 76 101 83 74 101 83 74 88 73 62
++75 56 53 75 56 53 55 55 48 51 49 42 42 41 42 33 39 38 42 47 42 42 47 42
++42 47 42 43 55 48 48 50 48 48 50 48 52 55 48 52 55 48 53 63 61 59 55 55
++65 63 61 59 79 61 65 63 61 59 79 61 75 81 69 75 81 69 75 81 69 75 81 69
++88 83 74 75 81 69 88 83 74 75 81 69 88 83 74 75 81 69 88 83 74 88 83 74
++81 96 56 88 83 74 88 83 74 75 81 69 88 83 74 88 73 62 88 83 74 88 83 74
++75 72 67 88 83 74 88 73 62 75 72 67 88 73 62 88 73 62 75 72 67 88 83 74
++88 66 70 88 83 74 88 69 84 88 83 74 88 69 84 88 83 74 88 83 74 88 83 88
++88 83 74 75 81 76 75 81 76 75 72 67 75 72 67 75 81 76 75 72 67 59 69 70
++75 72 67 63 59 71 53 63 61 59 57 61 53 63 61 53 63 61 43 55 48 45 57 61
++43 55 48 43 55 48 35 47 50 42 47 42 43 42 50 42 47 42 48 50 48 43 42 50
++42 47 42 43 42 50 42 47 42 48 50 48 43 42 50 43 55 48 43 42 50 48 50 48
++45 57 61 48 50 48 48 50 48 43 42 50 43 55 48 43 42 50 43 42 50 43 55 48
++43 42 50 43 42 50 43 42 50 42 41 42 34 40 43 34 40 43 34 40 43 34 40 43
++34 40 43 34 40 43 34 40 43 34 40 43 28 35 38 28 35 38 28 35 38 28 35 38
++28 35 38 28 35 38 33 39 38 28 35 38 34 40 43 33 39 38 34 40 43 37 35 43
++34 40 43 42 41 42 43 42 50 35 47 50 45 57 61 45 57 61 54 57 61 54 57 61
++54 57 61 63 59 71 59 69 70 59 69 70 75 64 82 59 69 70 75 81 82 60 81 83
++75 81 82 75 81 82 75 81 82 75 81 90 75 81 82 75 81 82 88 83 88 88 83 88
++88 83 88 90 98 89 88 83 88 95 91 100 88 83 88 90 98 89 88 83 88 90 98 89
++88 83 88 88 83 88 88 83 88 88 83 74 88 83 88 75 81 82 88 69 84 75 81 76
++88 66 70 75 81 76 88 66 70 75 72 67 75 72 67 75 72 67 75 59 67 75 72 67
++65 63 61 59 69 70 75 63 62 59 69 70 59 57 61 59 57 61 59 69 70 59 69 70
++75 81 82 77 90 100 95 91 100 75 81 90 45 57 61 24 30 43 23 30 35 24 30 43
++28 30 35 33 30 36 30 30 34 26 24 32 25 30 29 26 24 32 22 25 24 22 25 24
++22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24 22 23 31 26 30 28
++26 24 32 22 25 24 22 25 24 26 30 28 30 30 34 31 35 35 31 35 35 30 30 34
++30 30 34 26 30 28 34 30 15 55 39 18 101 74 26 177 171 115 219 175 47 176 103 41
++76 46 20 101 74 26 176 103 41 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47
++219 175 47 219 175 47 219 175 47 219 175 47 176 103 41 219 175 47 219 175 47 219 175 47
++157 148 53 117 112 45 55 39 18 34 30 15 47 49 42 48 50 48 43 42 50 34 40 43
++33 39 38 33 39 38 42 41 42 42 47 42 42 41 42 42 41 42 42 41 42 43 42 50
++48 50 48 45 57 61 48 50 48 45 57 61 48 50 48 54 57 61 54 57 61 54 57 61
++54 57 61 59 55 55 54 57 61 48 50 48 43 55 48 42 47 42 35 46 43 34 40 43
++34 40 43 42 41 42 36 35 37 30 30 34 25 30 29 23 20 24 14 16 17 7 12 13
++7 12 13 13 4 7 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 4 9 3 4 9 3 4 9 7 12 13 14 16 17 23 20 24 26 30 28 26 30 28
++22 25 24 22 25 24 22 25 24 23 20 24 23 20 24 14 16 17 14 16 17 14 16 17
++7 12 13 7 10 17 3 4 9 3 4 9 3 4 9 3 4 9 3 4 9 7 12 13
++3 4 9 7 12 13 7 12 13 7 12 13 7 12 13 7 12 13 7 12 13 14 16 17
++23 20 24 25 30 29 33 39 38 42 47 42 28 35 38 31 35 35 45 57 61 111 119 127
++166 174 181 148 160 159 94 105 108 60 82 70 59 69 70 60 82 70 75 81 76 59 69 70
++59 69 70 60 82 70 75 81 69 60 82 70 75 81 76 59 69 70 60 82 70 75 81 69
++60 82 70 60 82 70 60 82 70 75 81 69 60 82 70 59 69 70 75 81 69 60 82 70
++75 72 67 59 69 70 75 77 62 59 69 70 59 79 61 65 63 61 75 77 62 59 69 70
++75 81 69 60 82 70 75 81 76 75 81 69 75 81 76 75 99 72 75 81 69 60 82 70
++60 82 70 65 63 61 53 63 61 53 63 61 50 61 48 43 55 48 43 55 48 42 47 42
++43 55 48 43 55 48 42 47 42 43 55 48 43 55 48 43 55 48 43 55 48 42 47 42
++43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 43 55 48
++48 50 48 43 55 48 48 50 48 43 55 48 43 55 48 43 55 48 52 55 48 45 57 61
++53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 59 79 61 65 63 61 59 69 70
++65 63 61 59 69 70 75 72 67 75 72 67 75 81 69 75 81 76 75 81 69 75 81 76
++75 81 76 88 83 74 75 81 82 87 99 72 88 83 88 88 83 74 78 98 90 88 83 74
++75 81 82 88 83 74 75 81 76 75 81 69 75 72 67 75 81 69 75 72 67 75 72 67
++75 72 67 75 77 62 75 72 67 59 79 61 75 72 67 65 63 61 65 63 61 59 79 61
++53 63 61 65 63 61 53 63 61 64 70 48 53 63 61 59 69 70 53 63 61 53 63 61
++53 63 61 65 63 61 65 63 61 59 69 70 75 72 67 59 69 70 75 72 67 59 69 70
++75 72 67 75 81 76 75 72 67 53 63 61 33 30 30 15 22 17 14 16 17 15 22 17
++23 18 22 12 18 20 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 33 30 30 23 20 24 26 30 28 26 24 32 22 25 24 22 25 24
++23 20 24 22 25 24 26 30 28 22 25 24 26 30 28 33 30 30 33 30 30 26 30 28
++33 30 30 33 30 30 33 30 30 33 30 30 52 30 15 52 30 15 53 35 17 55 39 18
++76 46 20 60 49 42 75 73 58 99 93 84 99 93 84 112 96 108 90 98 89 90 98 89
++95 91 100 90 98 89 95 91 100 90 98 89 78 98 90 88 83 88 78 98 90 75 81 76
++75 81 82 75 81 76 60 81 83 59 69 70 59 69 70 59 69 70 59 69 70 53 63 61
++53 63 61 50 61 48 43 55 48 48 50 48 42 47 42 48 50 48 43 55 48 52 55 48
++45 57 61 52 55 48 52 55 48 52 55 48 52 55 48 59 55 55 59 55 55 53 63 61
++64 70 48 65 63 61 65 63 61 75 73 58 75 72 67 59 69 70 75 81 69 75 72 67
++75 81 76 75 72 67 75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 75 72 67
++75 81 76 75 72 67 75 81 76 75 72 67 75 81 76 75 72 67 75 72 67 75 72 67
++75 72 67 59 69 70 75 73 58 75 72 67 59 69 70 75 77 62 75 72 67 65 63 61
++65 63 61 75 73 58 65 63 61 75 73 58 65 63 61 75 77 62 59 69 70 75 73 58
++59 69 70 75 77 62 59 69 70 75 72 67 59 69 70 75 72 67 59 69 70 75 81 76
++75 81 76 75 81 76 75 81 82 75 81 90 78 98 90 88 83 88 77 90 100 90 98 89
++77 90 100 95 91 100 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108
++94 105 108 95 119 107 94 105 108 111 119 127 94 105 108 95 108 128 94 105 108 95 119 107
++94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 77 90 100 78 98 90 75 81 90
++78 98 90 75 81 82 75 81 82 60 81 83 75 81 76 59 69 70 59 69 70 53 63 61
++53 63 61 45 57 61 48 50 48 48 50 48 35 47 50 43 42 50 35 46 43 42 41 42
++34 40 43 42 41 42 42 41 42 42 41 42 42 47 42 42 47 42 48 44 48 42 47 42
++48 44 48 48 50 48 48 50 48 48 50 48 48 50 48 51 49 42 48 50 48 51 49 42
++51 49 42 51 49 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++42 41 42 47 44 42 42 41 42 47 47 21 42 38 42 36 35 37 47 47 21 42 41 42
++32 39 24 42 38 42 47 47 21 42 41 42 47 44 42 47 44 42 47 44 42 47 44 42
++47 44 42 51 49 42 53 46 48 53 46 48 55 55 48 55 55 48 59 55 55 59 55 55
++53 63 61 65 63 61 64 70 48 59 57 61 59 57 61 59 55 55 53 63 61 59 55 55
++55 55 48 54 57 61 52 55 48 48 50 48 48 50 48 43 42 50 42 47 42 43 42 50
++42 47 42 43 42 50 34 40 43 42 38 42 37 35 43 31 35 35 28 35 38 36 35 37
++28 35 38 33 39 38 34 40 43 34 40 43 35 46 43 35 46 43 43 42 50 43 55 48
++43 42 50 48 50 48 48 50 48 54 57 61 59 55 55 54 57 61 65 63 61 65 63 61
++
++75 81 82 90 98 89 112 96 108 111 119 127 119 117 138 122 134 144 131 144 168 148 160 159
++150 147 171 150 168 183 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 194 199 226
++166 176 200 194 199 226 194 199 226 166 176 200 194 199 226 185 202 202 194 199 226 166 176 200
++194 199 226 194 199 226 185 202 202 194 199 226 194 199 226 166 176 200 194 199 226 194 199 226
++194 199 226 185 202 202 194 199 226 185 202 202 194 199 226 185 202 202 194 199 226 185 202 202
++188 180 202 185 202 202 185 202 202 185 202 202 188 180 202 185 202 202 188 180 202 185 202 202
++166 176 200 185 202 202 166 176 200 166 176 200 166 174 181 166 174 181 150 147 171 150 147 171
++131 144 168 129 144 153 122 134 144 95 108 128 95 95 116 77 90 100 60 63 87 35 47 50
++31 35 35 22 25 24 22 25 24 26 30 28 33 30 30 47 47 21 55 39 37 75 56 53
++75 56 53 88 73 31 101 83 74 120 63 71 117 114 76 120 63 71 117 99 86 117 114 76
++168 102 88 117 99 86 168 102 88 117 99 86 117 114 76 101 83 74 101 83 74 88 73 62
++88 73 62 75 63 62 63 55 45 51 49 42 42 47 42 42 47 42 33 39 38 35 46 43
++42 47 42 42 47 42 48 50 48 43 55 48 52 55 48 52 55 48 53 63 61 64 70 48
++53 63 61 53 63 61 75 77 62 59 79 61 75 81 69 75 81 69 75 81 69 75 81 69
++88 83 74 75 81 69 87 99 72 88 83 74 75 81 69 88 83 74 87 99 72 88 83 74
++88 83 74 75 81 69 88 83 74 88 83 74 88 83 74 88 83 74 88 73 62 88 83 74
++88 83 74 88 83 74 88 83 74 88 83 74 88 83 74 88 83 74 88 83 74 88 83 74
++88 83 74 88 83 74 88 83 74 88 83 88 99 93 84 88 83 88 88 83 88 88 83 88
++88 83 74 75 81 82 88 83 74 75 81 76 75 81 76 75 72 67 59 69 70 75 72 67
++63 59 71 59 69 70 65 63 61 53 63 61 53 63 61 53 63 61 45 57 61 54 57 61
++43 55 48 43 55 48 48 50 48 43 55 48 42 47 42 35 47 50 48 50 48 42 47 42
++42 47 42 42 47 42 42 47 42 48 50 48 43 42 50 43 42 50 43 55 48 43 42 50
++43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 55 48 43 42 50 35 47 50
++43 42 50 43 42 50 35 47 50 43 42 50 35 47 50 42 41 42 34 40 43 34 40 43
++34 40 43 34 40 43 28 35 38 28 35 38 34 40 43 28 35 38 28 35 38 28 35 38
++28 35 38 28 35 38 28 35 38 34 40 43 28 35 38 37 35 43 33 39 38 37 35 43
++34 40 43 34 40 43 43 42 50 43 42 50 48 50 48 45 57 61 45 57 61 54 57 61
++46 59 71 63 59 71 59 69 70 63 59 71 75 81 76 75 64 82 60 81 83 75 64 82
++60 81 83 75 81 90 75 81 90 75 81 90 75 81 82 75 81 82 88 83 88 75 81 90
++88 83 88 88 83 88 88 83 88 90 98 89 88 83 88 95 91 100 90 98 89 88 83 88
++88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 88 83 74 75 81 76 88 83 74
++75 81 76 75 81 76 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 65 63 61 65 63 61 65 63 61 75 81 76 75 81 76 75 81 76 88 83 88
++145 140 145 166 174 181 166 176 200 122 134 144 63 59 71 22 23 31 22 23 31 24 30 43
++33 30 36 30 30 34 26 30 28 26 24 32 22 25 24 22 25 24 23 20 24 23 20 24
++23 18 22 14 16 17 14 16 17 22 25 24 22 25 24 23 20 24 23 20 24 22 25 24
++26 24 32 22 25 24 22 25 24 26 24 32 30 30 34 30 30 34 30 30 34 30 30 34
++33 30 30 33 30 32 26 25 15 76 46 20 117 112 45 176 103 41 157 148 53 176 103 41
++101 74 26 176 103 41 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47
++219 175 47 219 175 47 219 175 47 176 103 41 176 103 41 219 175 47 219 175 47 227 171 124
++219 175 47 117 112 45 55 39 18 34 30 15 42 41 42 48 50 48 45 57 61 43 42 50
++43 42 50 42 47 42 43 42 50 48 44 48 42 47 42 48 50 48 48 50 48 54 57 61
++48 50 48 48 50 48 43 55 48 43 42 50 35 47 50 42 41 42 43 55 48 48 50 48
++48 50 48 48 50 48 48 50 48 48 50 48 42 47 42 42 41 42 34 40 43 33 39 38
++33 39 38 30 30 34 22 25 24 14 16 17 7 12 13 3 4 9 3 4 9 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 4 9 3 4 9
++14 16 17 17 12 17 14 16 17 23 18 22 14 16 17 23 18 22 23 20 24 23 18 22
++14 16 17 14 16 17 17 12 17 7 12 13 3 4 9 3 4 9 3 4 9 3 3 1
++3 4 9 3 3 1 3 4 9 3 4 9 3 4 9 7 12 13 14 16 17 14 16 17
++17 12 17 14 16 17 23 18 22 23 20 24 23 18 22 14 16 17 23 18 22 14 16 17
++23 20 24 23 20 24 25 30 29 31 35 35 33 39 38 35 46 43 50 61 48 94 105 108
++166 174 181 150 171 159 95 119 107 59 69 70 53 63 61 60 82 70 59 69 70 60 82 70
++75 72 67 59 69 70 75 81 69 59 69 70 59 69 70 75 81 69 59 69 70 59 69 70
++75 72 67 59 69 70 59 79 61 59 69 70 75 72 67 60 82 70 59 69 70 75 72 67
++60 82 70 59 69 70 59 79 61 75 72 67 59 79 61 75 72 67 60 82 70 75 81 69
++60 82 70 75 81 69 59 79 61 60 82 70 64 70 48 53 63 61 53 63 61 50 61 48
++50 61 48 43 55 48 43 55 48 35 46 43 42 47 42 42 47 42 42 47 42 35 46 43
++42 47 42 47 49 42 43 55 48 43 55 48 43 55 48 47 49 42 43 55 48 43 55 48
++43 55 48 43 55 48 43 55 48 48 50 48 43 55 48 48 50 48 43 55 48 43 55 48
++48 50 48 48 50 48 48 50 48 43 55 48 48 50 48 45 57 61 43 55 48 50 61 48
++50 61 48 53 63 61 50 61 48 53 63 61 53 63 61 53 63 61 53 63 61 65 63 61
++59 69 70 75 72 67 75 72 67 59 69 70 75 72 67 75 72 67 75 81 69 75 81 76
++75 81 76 88 83 74 75 81 82 88 83 74 75 81 82 75 81 76 88 83 74 88 83 88
++88 83 74 88 83 74 75 81 76 75 72 67 75 81 76 75 72 67 75 81 69 75 72 67
++60 82 70 75 72 67 59 69 70 75 72 67 65 63 61 75 77 62 65 63 61 65 63 61
++65 63 61 51 73 47 53 63 61 53 63 61 64 70 48 53 63 61 53 63 61 64 70 48
++53 63 61 59 57 61 59 79 61 65 63 61 65 63 61 59 69 70 59 69 70 75 72 67
++59 69 70 75 72 67 59 69 70 75 72 67 52 55 48 33 30 30 15 22 17 14 16 17
++14 16 17 23 18 22 12 18 20 22 25 24 22 25 24 23 20 24 22 25 24 26 25 15
++22 25 24 23 20 24 23 20 24 26 25 15 26 24 32 22 25 24 26 24 32 23 20 24
++22 25 24 23 20 24 33 30 30 23 20 24 26 30 28 26 30 28 26 24 32 26 30 28
++26 24 32 26 30 28 26 30 28 34 30 15 34 30 15 75 56 53 101 83 74 101 83 74
++75 56 53 76 46 20 75 56 53 88 83 74 99 93 84 90 98 89 90 98 89 95 91 100
++90 98 89 90 98 89 90 98 89 90 98 89 88 83 88 90 98 89 75 81 82 78 98 90
++75 81 82 75 81 76 75 81 76 75 81 76 59 69 70 59 69 70 59 69 70 53 63 61
++53 63 61 45 57 61 48 50 48 43 55 48 42 47 42 42 47 42 48 50 48 48 50 48
++52 55 48 52 55 48 52 55 48 59 55 55 52 55 48 59 55 55 53 63 61 65 63 61
++65 63 61 65 63 61 75 77 62 65 63 61 75 77 62 75 72 67 75 81 69 75 81 76
++75 72 67 75 81 76 75 81 76 75 81 76 75 81 76 88 69 84 75 81 76 75 81 82
++75 72 67 75 81 76 75 81 76 75 72 67 75 81 76 75 72 67 75 81 69 59 69 70
++75 72 67 75 77 62 59 69 70 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 65 63 61 75 72 67 59 69 70 75 72 67 65 63 61 75 73 58 59 69 70
++75 72 67 65 63 61 75 72 67 75 72 67 75 72 67 75 72 67 75 81 76 75 81 76
++75 81 82 75 81 90 75 81 82 77 90 100 90 98 89 77 90 100 78 98 90 94 105 108
++95 91 100 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 95 108 128
++94 105 108 95 108 128 95 119 107 94 105 108 111 119 127 94 105 108 112 123 108 95 108 128
++112 123 108 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 78 98 90 78 98 90
++78 98 90 75 81 90 75 81 82 75 81 76 60 81 83 59 69 70 59 69 70 53 63 61
++54 57 61 45 57 61 45 57 61 43 55 48 42 47 42 43 42 50 35 47 50 43 42 50
++42 47 42 42 41 42 42 47 42 42 41 42 42 47 42 48 44 48 42 47 42 48 44 48
++48 44 48 48 50 48 48 50 48 48 50 48 53 46 48 52 55 48 53 46 48 48 50 48
++51 49 42 48 50 48 51 49 42 47 44 42 47 44 42 47 44 42 47 44 42 42 47 42
++47 47 21 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42 42 41 42
++47 39 42 36 35 37 36 35 37 36 35 37 42 41 42 47 47 21 47 44 42 47 44 42
++47 44 42 47 44 42 51 49 42 51 49 42 53 46 48 52 55 48 59 55 55 59 55 55
++64 70 48 63 55 51 53 63 61 59 57 61 64 70 48 65 63 61 59 55 55 55 55 48
++59 55 55 52 55 48 54 57 61 48 50 48 48 50 48 48 50 48 43 42 50 42 41 42
++34 40 43 42 38 42 34 40 43 37 35 43 36 35 37 33 30 36 33 30 36 31 35 35
++37 35 43 28 35 38 34 40 43 34 40 43 42 41 42 35 46 43 43 42 50 48 50 48
++43 42 50 45 57 61 48 50 48 48 50 48 52 55 48 59 57 61 63 59 71 65 63 61
++
++75 81 82 95 91 100 94 105 108 111 119 127 119 117 138 122 134 144 150 144 154 150 147 171
++150 168 183 150 168 183 166 176 200 166 176 200 166 176 200 194 199 226 166 176 200 166 176 200
++194 199 226 166 176 200 194 199 226 185 202 202 194 199 226 166 176 200 194 199 226 185 202 202
++194 199 226 166 176 200 194 199 226 185 202 202 194 199 226 185 202 202 194 199 226 166 176 200
++185 202 202 194 199 226 166 176 200 194 199 226 185 202 202 194 199 226 188 180 202 185 202 202
++185 202 202 185 202 202 188 180 202 185 202 202 166 176 200 185 202 202 166 176 200 185 202 202
++188 180 202 166 176 200 166 176 200 166 176 200 166 174 181 150 168 183 150 168 183 150 147 171
++150 147 171 122 134 144 111 122 142 119 117 138 95 95 116 77 90 100 60 63 87 35 47 50
++28 35 38 25 30 29 26 30 28 26 30 28 33 30 30 42 41 42 51 49 42 63 55 45
++75 56 53 88 73 62 101 83 74 101 83 74 117 114 76 168 102 88 117 99 86 168 102 88
++117 99 86 117 99 86 117 114 76 117 99 86 120 63 71 117 114 76 101 83 74 101 83 74
++88 73 62 75 56 53 63 55 51 51 49 42 47 49 42 42 41 42 42 47 42 33 39 38
++42 47 42 42 47 42 43 55 48 48 50 48 52 55 48 52 55 48 59 55 55 53 63 61
++65 63 61 65 63 61 59 79 61 75 72 67 75 81 69 75 81 69 75 81 76 88 83 74
++88 83 74 88 83 74 75 81 69 88 83 74 88 83 74 87 99 72 75 81 76 88 83 74
++88 83 74 87 99 72 88 83 74 88 83 74 87 99 72 88 83 74 88 83 74 88 83 74
++88 83 74 88 83 74 88 83 74 88 83 74 88 83 74 88 83 74 88 83 74 88 83 88
++101 83 74 88 83 88 99 93 84 99 93 84 88 83 88 99 93 84 99 93 84 88 83 74
++88 83 88 88 83 74 75 81 76 75 72 67 75 64 82 75 72 67 75 81 76 59 69 70
++63 59 71 59 69 70 63 59 71 53 63 61 54 57 61 53 63 61 45 57 61 50 61 48
++45 57 61 45 57 61 43 55 48 48 50 48 43 55 48 43 42 50 42 47 42 43 42 50
++42 47 42 43 42 50 42 47 42 48 50 48 35 47 50 48 50 48 43 42 50 35 47 50
++42 47 42 35 47 50 43 55 48 43 42 50 35 47 50 43 42 50 43 42 50 42 47 42
++43 42 50 35 46 43 34 40 43 34 40 43 34 40 43 34 40 43 34 40 43 34 40 43
++34 40 43 34 40 43 28 35 38 34 40 43 28 35 38 28 35 38 28 35 38 28 35 38
++28 35 38 28 35 38 28 35 38 28 35 38 34 40 43 28 35 38 34 40 43 28 35 38
++34 40 43 43 42 50 35 47 50 43 42 50 45 57 61 45 57 61 54 57 61 54 57 61
++53 63 61 63 59 71 59 69 70 59 69 70 75 64 82 60 81 83 75 81 82 75 81 82
++75 81 90 75 81 82 75 81 90 75 81 82 75 81 90 75 81 90 88 83 88 88 83 88
++88 83 88 77 90 100 88 83 88 95 91 100 88 83 88 88 83 88 88 83 88 90 98 89
++88 83 88 88 83 88 75 81 82 88 83 74 75 81 82 88 69 84 75 81 76 75 64 82
++75 72 67 88 66 70 75 72 67 75 72 67 75 72 67 75 72 67 63 59 71 75 72 67
++65 63 61 59 69 70 75 81 69 94 105 108 112 96 108 75 81 90 54 57 61 53 63 61
++111 119 127 194 199 226 235 238 247 201 216 228 122 134 144 46 59 71 24 30 43 12 18 30
++26 24 32 28 30 35 30 30 34 30 30 34 25 30 29 26 24 32 22 25 24 23 20 24
++12 18 20 15 22 17 15 22 17 14 16 17 14 16 17 14 16 17 14 16 17 23 20 24
++22 25 24 23 20 24 22 25 24 26 30 28 26 30 28 30 30 34 30 30 34 25 30 29
++30 30 34 33 30 30 33 30 30 55 39 18 117 112 45 176 103 41 157 148 53 176 103 41
++176 103 41 157 148 53 219 175 47 214 214 134 219 175 47 219 175 47 176 103 41 219 175 47
++219 175 47 219 175 47 219 175 47 161 55 23 161 55 23 176 103 41 219 175 47 201 146 124
++176 103 41 101 74 26 55 39 18 23 31 15 32 39 24 42 41 42 43 42 50 48 50 48
++35 46 43 42 41 42 35 46 43 33 39 38 36 35 37 37 35 43 37 35 43 37 35 43
++36 35 37 33 30 36 23 30 35 25 30 29 22 25 24 22 23 31 25 30 29 28 30 35
++33 30 36 37 35 43 33 39 38 31 35 35 28 35 38 25 30 29 30 30 34 25 30 29
++23 20 24 14 16 17 7 12 13 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1
++3 4 9 3 3 1 3 3 1 3 4 9 3 4 9 7 12 13 17 12 17 14 16 17
++14 16 17 14 16 17 23 18 22 14 16 17 14 16 17 7 12 13 3 4 9 3 4 9
++3 4 9 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9
++3 4 9 13 4 7 7 12 13 14 16 17 23 18 22 22 25 24 22 25 24 33 30 30
++26 30 28 30 30 34 28 30 35 31 35 35 33 39 38 37 35 43 33 39 38 36 35 37
++31 35 35 25 30 29 23 20 24 22 25 24 31 35 35 48 50 48 35 47 50 75 81 76
++111 119 127 148 160 159 119 117 138 53 63 61 43 55 48 59 69 70 75 81 69 59 69 70
++59 69 70 60 82 70 59 69 70 60 82 70 59 69 70 59 79 61 59 69 70 60 82 70
++59 69 70 60 82 70 75 81 69 60 82 70 60 82 70 75 72 67 60 82 70 75 81 69
++60 82 70 75 81 69 75 81 69 60 82 70 75 81 76 59 69 70 59 79 61 65 63 61
++53 63 61 65 63 61 53 63 61 52 55 48 50 61 48 43 55 48 47 49 42 42 47 42
++42 47 42 42 47 42 42 47 42 35 46 43 43 55 48 42 47 42 43 55 48 42 47 42
++43 55 48 43 55 48 47 49 42 43 55 48 43 55 48 43 55 48 43 55 48 42 47 42
++43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 48 50 48
++43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 48 50 48 45 57 61 52 55 48
++54 57 61 50 61 48 53 63 61 53 63 61 59 79 61 65 63 61 59 79 61 59 69 70
++75 77 62 59 69 70 75 72 67 75 81 69 75 81 76 75 81 76 75 81 69 75 81 76
++75 81 76 75 81 76 87 99 72 75 81 82 87 99 72 88 83 88 75 81 76 88 83 74
++75 81 76 75 81 76 75 81 76 75 81 76 75 72 67 75 72 67 75 81 69 75 72 67
++75 72 67 75 72 67 65 63 61 75 77 62 59 69 70 75 73 58 59 69 70 53 63 61
++53 63 61 65 63 61 53 63 61 53 63 61 53 63 61 53 63 61 51 73 47 53 63 61
++53 63 61 53 63 61 53 63 61 65 63 61 59 79 61 59 69 70 65 63 61 59 79 61
++75 72 67 59 69 70 75 72 67 75 81 69 59 69 70 48 50 48 26 30 28 14 16 17
++23 18 22 14 16 17 23 18 22 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 33 30 30 26 24 32 26 30 28 22 25 24 22 25 24 23 20 24
++22 25 24 26 30 28 23 20 24 26 30 28 26 24 32 26 30 28 26 24 32 22 25 24
++22 25 24 26 30 28 23 20 24 34 30 15 52 30 15 88 73 62 163 117 123 168 146 127
++117 112 45 88 44 51 88 73 31 101 83 74 99 93 84 117 99 86 95 91 100 90 98 89
++90 98 89 95 91 100 90 98 89 90 98 89 77 90 100 88 83 88 78 98 90 75 81 82
++75 81 82 75 81 76 60 82 70 59 69 70 59 69 70 59 69 70 53 63 61 53 63 61
++53 63 61 43 55 48 48 50 48 43 55 48 48 50 48 43 55 48 48 50 48 52 55 48
++54 57 61 52 55 48 52 55 48 52 55 48 59 55 55 53 63 61 65 63 61 65 63 61
++65 63 61 75 72 67 59 69 70 75 77 62 75 72 67 75 81 76 75 81 76 75 81 76
++75 81 76 75 81 76 88 83 74 75 81 76 88 83 74 75 81 76 75 81 76 75 81 76
++75 81 76 75 72 67 75 81 76 75 81 76 75 72 67 75 81 76 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 73 58 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 60 82 70 75 72 67 75 81 76 75 81 76 75 81 76 75 81 76 75 81 82
++75 81 90 78 98 90 90 98 89 77 90 100 95 91 100 94 105 108 95 91 100 94 105 108
++94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 95 108 128 95 119 107 111 119 127
++95 119 107 111 119 127 95 108 128 95 119 107 95 108 128 112 123 108 95 108 128 112 123 108
++95 108 128 112 123 108 94 105 108 95 119 107 94 105 108 94 105 108 78 98 90 78 98 90
++75 81 90 75 81 82 60 81 83 75 81 82 60 81 83 59 69 70 59 69 70 53 63 61
++54 57 61 45 57 61 48 50 48 43 42 50 35 47 50 42 47 42 43 42 50 35 46 43
++42 41 42 42 41 42 42 47 42 42 41 42 42 47 42 42 47 42 48 44 48 47 49 42
++48 50 48 47 44 42 48 50 48 51 49 42 48 50 48 51 49 42 48 50 48 52 55 48
++51 49 42 53 46 48 51 49 42 47 44 42 47 44 42 47 44 42 47 44 42 47 44 42
++42 41 42 42 41 42 42 41 42 42 41 42 32 39 24 47 39 42 42 41 42 47 47 21
++36 35 37 42 41 42 47 47 21 36 35 37 36 35 37 42 38 42 42 38 42 47 47 21
++47 39 42 47 44 42 47 44 42 51 49 42 48 50 48 55 55 48 59 55 55 59 55 55
++53 63 61 59 55 55 65 63 61 63 55 51 53 63 61 59 55 55 59 55 55 59 55 55
++52 55 48 52 55 48 52 55 48 48 50 48 48 50 48 42 41 42 42 41 42 42 41 42
++33 39 38 36 35 37 36 35 37 31 35 35 30 30 34 28 30 35 28 30 35 31 35 35
++31 35 35 34 40 43 28 35 38 34 40 43 34 40 43 35 46 43 43 42 50 43 55 48
++45 57 61 48 50 48 54 57 61 48 50 48 54 57 61 59 57 61 59 57 61 59 69 70
++
++75 81 82 88 83 88 112 96 108 112 123 108 119 117 138 122 134 144 131 144 168 148 160 159
++150 147 171 150 168 183 166 174 181 166 176 200 166 176 200 166 176 200 166 176 200 194 199 226
++166 176 200 194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 194 199 226 166 176 200
++194 199 226 194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 185 202 202 194 199 226
++194 199 226 185 202 202 194 199 226 185 202 202 194 199 226 185 202 202 194 199 226 185 202 202
++194 199 226 185 202 202 166 176 200 185 202 202 188 180 202 185 202 202 166 176 200 185 202 202
++166 176 200 185 202 202 166 176 200 166 174 181 150 168 183 166 174 181 150 168 183 150 147 171
++131 144 168 131 144 168 111 122 142 111 122 142 77 91 115 77 90 100 60 63 87 45 57 61
++34 40 43 25 30 29 22 25 24 26 30 28 33 30 30 47 47 21 55 39 37 63 55 45
++75 73 36 88 73 62 120 63 71 117 112 45 120 63 71 117 99 86 168 102 88 117 99 86
++117 114 76 168 102 88 117 99 86 168 102 88 117 114 76 117 99 86 101 83 74 88 73 62
++88 73 62 75 73 58 64 70 48 55 55 48 47 49 42 42 47 42 42 47 42 42 47 42
++42 47 42 48 50 48 48 50 48 48 50 48 52 55 48 50 61 48 53 63 61 59 55 55
++64 70 48 65 63 61 75 72 67 75 72 67 75 81 69 75 81 76 75 81 76 75 81 76
++88 83 74 75 81 76 88 83 74 88 83 74 88 83 74 75 81 76 88 83 74 87 99 72
++88 83 74 88 83 74 88 83 74 99 93 84 88 83 74 88 83 74 99 93 84 88 83 74
++99 93 84 88 83 74 88 83 74 99 93 84 88 83 74 88 83 88 101 83 74 99 93 84
++88 83 88 99 93 84 88 83 88 90 98 89 99 93 84 90 98 89 88 83 88 75 81 82
++88 83 88 88 83 88 88 83 88 75 81 76 75 81 76 75 81 76 75 64 82 59 69 70
++59 69 70 59 69 70 53 63 61 53 63 61 53 63 61 45 57 61 54 57 61 54 57 61
++45 57 61 54 57 61 45 57 61 43 55 48 43 55 48 43 55 48 48 50 48 35 46 43
++42 47 42 48 50 48 48 50 48 42 47 42 43 42 50 35 47 50 42 47 42 43 42 50
++42 47 42 43 42 50 42 47 42 43 42 50 43 42 50 48 50 48 35 47 50 48 50 48
++43 42 50 35 46 43 43 42 50 34 40 43 43 42 50 34 40 43 34 40 43 34 40 43
++34 40 43 28 35 38 34 40 43 28 35 38 28 35 38 28 35 38 28 35 38 28 35 38
++28 35 38 28 35 38 28 35 38 28 35 38 28 35 38 28 35 38 28 35 38 34 40 43
++34 40 43 35 47 50 43 42 50 45 57 61 48 50 48 45 57 61 54 57 61 54 57 61
++46 59 71 59 69 70 59 69 70 60 63 87 59 69 70 60 81 83 75 64 82 60 81 83
++75 64 82 75 81 82 75 81 82 75 81 90 75 81 82 75 81 90 75 81 90 88 83 88
++77 90 100 88 83 88 95 91 100 77 90 100 90 98 89 88 83 88 77 90 100 88 83 88
++88 83 88 88 83 88 88 83 88 88 83 88 75 81 76 75 81 82 88 83 74 75 72 67
++75 81 76 75 72 67 75 81 76 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++65 63 61 75 72 67 99 93 84 145 140 145 121 143 132 59 57 61 7 10 17 7 12 13
++26 30 28 111 119 127 185 202 202 235 238 247 208 221 247 150 144 154 60 63 87 12 18 30
++12 18 30 22 23 31 31 35 35 31 35 35 31 35 35 23 30 35 25 30 29 25 30 29
++22 23 31 22 25 24 22 25 24 22 25 24 14 16 17 14 16 17 23 20 24 22 25 24
++23 20 24 22 25 24 26 30 28 26 30 28 33 30 30 26 30 28 25 30 29 25 30 29
++26 30 28 33 30 30 26 30 28 52 30 35 101 74 26 157 148 53 168 102 88 219 175 47
++219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 176 103 41 219 175 47
++219 175 47 219 175 47 176 103 41 101 74 26 101 74 26 117 112 45 219 175 47 157 148 53
++117 112 45 76 46 20 52 30 15 26 25 15 26 30 28 31 35 35 34 40 43 34 40 43
++36 35 37 26 24 32 22 25 24 22 25 24 23 20 24 14 16 17 14 16 17 17 12 17
++7 12 13 7 12 13 3 4 9 3 4 9 3 4 9 3 3 1 3 4 9 3 4 9
++7 12 13 7 12 13 14 16 17 14 16 17 14 16 17 14 16 17 17 12 17 7 12 13
++7 12 13 3 3 1 3 4 9 3 3 1 3 4 9 3 3 1 3 4 9 3 4 9
++3 3 1 3 3 1 3 3 1 3 3 1 7 12 13 17 12 17 7 12 13 17 12 17
++7 12 13 7 12 13 7 12 13 7 12 13 3 4 9 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 7 12 13 17 12 17
++14 16 17 15 22 17 23 20 24 22 25 24 22 25 24 26 30 28 30 30 34 30 30 34
++30 30 34 30 30 34 28 30 35 36 35 37 35 46 43 43 42 50 43 55 48 43 42 50
++43 55 48 35 47 50 34 40 43 28 35 38 28 35 38 35 47 50 43 42 50 46 59 71
++88 83 88 122 134 144 121 143 132 45 57 61 43 55 48 59 69 70 59 69 70 75 81 76
++60 82 70 75 72 67 60 82 70 59 69 70 75 81 76 60 82 70 75 81 76 60 82 70
++75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 75 81 76
++75 81 69 60 82 70 75 81 76 59 69 70 59 69 70 53 63 61 50 61 48 43 55 48
++43 55 48 43 55 48 42 47 42 35 46 43 42 47 42 35 46 43 35 46 43 42 47 42
++42 47 42 43 55 48 42 47 42 43 55 48 35 46 43 43 55 48 42 47 42 43 55 48
++43 55 48 43 55 48 43 55 48 43 55 48 48 50 48 43 55 48 43 55 48 43 55 48
++43 55 48 43 55 48 43 55 48 52 55 48 43 55 48 43 55 48 43 55 48 43 55 48
++43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 50 61 48 50 61 48
++53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 59 69 70 65 63 61 59 69 70
++59 79 61 59 69 70 60 82 70 75 81 69 59 69 70 75 81 69 75 81 69 75 81 76
++88 83 74 75 81 76 75 81 82 88 83 88 75 81 76 87 99 72 88 83 88 75 99 72
++88 83 74 75 81 76 88 83 74 75 81 69 75 81 76 75 81 69 75 81 69 75 72 67
++60 82 70 75 77 62 75 77 62 65 63 61 75 77 62 65 63 61 65 63 61 59 79 61
++53 63 61 53 63 61 64 70 48 53 63 61 64 70 48 53 63 61 53 63 61 50 61 48
++53 63 61 53 63 61 53 63 61 53 63 61 59 69 70 59 79 61 65 63 61 59 79 61
++59 69 70 59 79 61 59 69 70 59 69 70 75 72 67 65 63 61 34 40 43 22 25 24
++14 16 17 12 18 20 23 20 24 23 20 24 23 20 24 22 25 24 23 18 22 22 25 24
++23 20 24 26 24 32 22 25 24 33 30 30 22 25 24 33 30 30 22 25 24 22 25 24
++23 20 24 23 20 24 22 25 24 22 25 24 26 24 32 26 30 28 22 25 24 23 20 24
++23 20 24 26 30 28 34 30 15 26 25 15 52 30 15 122 49 24 157 148 53 227 171 124
++168 102 88 122 49 24 117 112 45 168 102 88 117 99 86 99 93 84 99 93 84 90 98 89
++95 91 100 90 98 89 88 83 88 90 98 89 88 83 88 90 98 89 75 81 82 78 98 90
++75 81 82 75 81 76 59 69 70 75 72 67 59 69 70 59 69 70 53 63 61 53 63 61
++54 57 61 50 61 48 48 50 48 43 55 48 48 50 48 43 55 48 52 55 48 52 55 48
++52 55 48 52 55 48 59 55 55 50 61 48 59 55 55 64 70 48 65 63 61 75 73 58
++65 63 61 75 72 67 75 72 67 75 72 67 75 81 76 75 81 76 88 83 74 75 81 76
++88 83 74 75 81 76 75 81 76 75 81 76 88 83 74 75 81 76 88 83 74 75 81 76
++88 83 74 75 81 76 75 81 76 75 81 76 75 81 76 75 72 67 75 81 76 75 81 69
++59 69 70 75 72 67 75 72 67 59 69 70 75 72 67 75 72 67 59 69 70 75 72 67
++75 72 67 75 72 67 59 69 70 75 72 67 59 69 70 75 72 67 75 72 67 60 82 70
++75 72 67 75 72 67 75 81 76 75 81 76 75 81 82 75 81 82 75 81 90 78 98 90
++78 98 90 90 98 89 77 90 100 95 91 100 77 90 100 94 105 108 94 105 108 94 105 108
++94 105 108 95 108 128 94 105 108 95 108 128 94 105 108 111 119 127 95 119 107 95 108 128
++111 119 127 95 108 128 112 123 108 95 108 128 111 119 127 94 105 108 111 119 127 95 108 128
++95 119 107 111 119 127 95 108 128 111 119 127 94 105 108 90 98 89 95 91 100 77 90 100
++78 98 90 75 81 90 75 81 82 75 81 82 59 69 70 59 69 70 53 63 61 53 63 61
++45 57 61 45 57 61 48 50 48 43 55 48 42 47 42 43 42 50 43 42 50 43 42 50
++35 46 43 42 41 42 42 47 42 48 44 48 47 44 42 48 50 48 47 49 42 47 44 42
++47 49 42 51 49 42 48 50 48 51 49 42 48 50 48 51 49 42 51 49 42 51 49 42
++53 46 48 55 55 48 51 49 42 51 49 42 47 44 42 47 47 21 47 44 42 47 44 42
++47 44 42 47 44 42 47 47 21 53 35 37 42 38 42 47 47 21 42 41 42 42 38 42
++47 47 21 36 35 37 36 35 37 53 35 37 36 35 37 47 47 21 36 35 37 42 38 42
++42 41 42 42 41 42 42 41 42 47 44 42 48 50 48 52 55 48 55 55 48 55 55 48
++59 55 55 59 55 55 55 55 48 53 63 61 63 55 51 59 55 55 53 63 61 54 57 61
++54 57 61 48 50 48 52 55 48 48 50 48 48 50 48 42 47 42 42 41 42 33 39 38
++36 35 37 31 35 35 31 35 35 31 35 35 26 30 28 26 30 28 26 30 28 30 30 34
++31 35 35 31 35 35 33 39 38 33 39 38 42 47 42 43 42 50 42 47 42 43 42 50
++43 42 50 45 57 61 48 44 48 45 57 61 54 57 61 54 57 61 53 63 61 59 57 61
++
++88 83 88 90 98 89 94 105 108 111 119 127 119 117 138 129 144 153 129 144 153 150 147 171
++150 168 183 150 168 183 166 176 200 166 176 200 166 176 200 185 202 202 166 176 200 194 199 226
++166 176 200 194 199 226 166 176 200 194 199 226 185 202 202 194 199 226 166 176 200 194 199 226
++185 202 202 194 199 226 194 199 226 185 202 202 194 199 226 166 176 200 194 199 226 166 176 200
++194 199 226 185 202 202 194 199 226 188 180 202 194 199 226 185 202 202 185 202 202 188 180 202
++185 202 202 188 180 202 185 202 202 166 176 200 185 202 202 166 176 200 185 202 202 188 180 202
++166 176 200 166 176 200 166 174 181 166 176 200 166 174 181 150 168 183 150 147 171 150 147 171
++131 144 168 129 144 153 119 117 138 111 122 142 95 95 116 77 91 115 60 81 83 45 57 61
++28 35 38 26 24 32 26 30 28 26 30 28 33 30 30 42 41 42 55 39 37 63 55 45
++75 56 53 88 73 62 101 83 74 120 63 71 117 114 76 117 114 76 117 99 86 168 102 88
++117 99 86 168 102 88 117 114 76 117 99 86 120 63 71 117 114 76 120 63 71 98 106 55
++88 73 62 75 73 58 65 55 54 63 55 51 52 55 48 47 44 42 33 39 38 42 47 42
++43 42 50 43 55 48 48 50 48 45 57 61 48 50 48 55 55 48 53 63 61 64 70 48
++53 63 61 65 63 61 59 79 61 75 72 67 75 81 69 88 83 74 88 83 74 88 83 74
++75 81 82 88 83 74 78 98 90 88 83 74 75 81 82 88 83 74 88 83 74 88 83 74
++90 98 89 88 83 74 99 93 84 88 83 74 99 93 84 87 99 72 88 83 74 87 99 72
++88 83 88 99 93 84 88 83 74 99 93 84 99 93 84 88 83 74 99 93 84 88 83 88
++99 93 84 99 93 84 99 93 84 90 98 89 99 93 84 90 98 89 99 93 84 88 83 88
++90 98 89 88 83 74 75 81 82 88 83 74 75 81 76 75 64 82 59 69 70 59 69 70
++63 59 71 59 69 70 53 63 61 54 57 61 53 63 61 53 63 61 54 57 61 45 57 61
++45 57 61 54 57 61 45 57 61 48 50 48 45 57 61 52 55 48 43 55 48 43 42 50
++43 55 48 48 44 48 42 47 42 42 47 42 42 41 42 42 47 42 43 42 50 42 47 42
++43 42 50 42 47 42 43 42 50 43 55 48 43 42 50 35 47 50 43 42 50 43 42 50
++42 47 42 35 47 50 42 41 42 34 40 43 34 40 43 34 40 43 34 40 43 34 40 43
++34 40 43 34 40 43 28 35 38 28 35 38 28 35 38 28 35 38 28 35 38 23 30 35
++28 35 38 28 30 35 28 35 38 28 35 38 34 40 43 28 35 38 34 40 43 34 40 43
++34 40 43 35 47 50 48 50 48 45 57 61 54 57 61 45 57 61 54 57 61 46 59 71
++63 59 71 59 69 70 60 63 87 59 69 70 60 81 83 75 81 82 60 81 83 75 81 90
++75 81 82 75 81 90 75 81 82 75 81 90 75 81 82 88 83 88 75 81 90 88 83 88
++95 91 100 88 83 88 77 90 100 88 83 88 95 91 100 88 83 88 88 83 88 95 91 100
++88 83 88 78 98 90 75 81 82 75 81 82 75 81 76 88 69 84 75 81 76 75 64 82
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 65 63 61
++65 63 61 75 81 69 95 91 100 90 98 89 65 57 61 17 12 17 3 3 1 3 3 1
++3 3 1 12 18 30 77 90 100 166 174 181 226 221 247 221 238 247 166 176 200 77 90 100
++34 40 43 12 18 30 26 24 32 31 35 35 31 35 35 28 35 38 28 30 35 23 30 35
++23 30 35 28 30 35 25 30 29 25 30 29 22 25 24 23 20 24 22 25 24 22 23 31
++25 30 29 23 20 24 26 30 28 26 30 28 33 30 30 30 30 34 28 30 35 25 30 29
++25 30 29 26 30 28 34 30 15 52 30 15 55 39 18 117 112 45 219 175 47 201 146 124
++219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47
++219 175 47 227 171 124 101 74 26 76 46 20 101 74 26 157 148 53 197 171 123 157 148 53
++101 74 26 76 46 20 34 30 15 23 31 15 26 30 28 22 25 24 25 30 29 30 30 34
++26 30 28 23 20 24 14 16 17 23 18 22 12 18 20 17 12 17 14 16 17 7 12 13
++3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 4 9 3 3 1 3 4 9 3 4 9 7 12 13 13 4 7 3 4 9
++3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 4 9 3 4 9 7 12 13 17 12 17 14 16 17 23 20 24
++22 25 24 22 25 24 22 25 24 26 30 28 26 30 28 33 30 30 30 30 34 33 30 32
++33 30 32 28 30 35 25 30 29 28 35 38 34 40 43 43 42 50 45 57 61 45 57 61
++45 57 61 45 57 61 45 57 61 48 50 48 43 42 50 43 42 50 35 47 50 43 42 50
++54 57 61 88 83 88 78 98 90 43 42 50 35 47 50 59 69 70 75 81 76 75 81 90
++75 81 90 75 81 82 75 81 82 75 81 76 60 81 83 78 98 90 75 81 82 78 98 90
++75 81 82 78 98 90 75 99 72 75 81 76 75 99 72 60 82 70 60 82 70 59 69 70
++53 63 61 53 63 61 50 61 48 54 57 61 43 55 48 43 55 48 35 46 43 35 46 43
++35 46 43 35 46 43 35 46 43 35 46 43 35 46 43 35 46 43 42 47 42 48 50 48
++43 55 48 48 50 48 35 47 50 42 47 42 43 55 48 35 47 50 43 55 48 35 47 50
++43 55 48 43 55 48 48 50 48 43 55 48 43 55 48 45 57 61 43 55 48 45 57 61
++43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 43 55 48
++43 55 48 50 61 48 43 55 48 45 57 61 43 55 48 50 61 48 54 57 61 53 63 61
++53 63 61 53 63 61 51 73 47 53 63 61 53 63 61 59 69 70 59 69 70 59 79 61
++75 72 67 60 82 70 75 72 67 75 81 69 75 81 69 75 81 76 75 72 67 75 81 76
++75 81 76 75 81 82 88 83 74 78 98 90 88 83 74 88 83 74 88 83 74 75 81 82
++87 99 72 75 81 82 88 83 74 75 81 76 75 81 69 75 81 76 75 72 67 75 81 76
++75 72 67 75 72 67 59 79 61 75 72 67 59 69 70 75 77 62 59 79 61 53 63 61
++64 70 48 53 63 61 53 63 61 65 63 61 53 63 61 53 63 61 50 61 48 53 63 61
++53 63 61 53 63 61 53 63 61 65 63 61 59 79 61 53 63 61 59 69 70 59 79 61
++65 63 61 65 63 61 75 73 58 59 79 61 75 72 67 59 69 70 52 55 48 28 30 35
++23 18 22 23 18 22 23 20 24 15 22 17 14 16 17 23 18 22 23 18 22 22 25 24
++22 25 24 22 25 24 26 24 32 26 30 28 26 24 32 22 25 24 23 20 24 23 20 24
++22 25 24 26 24 32 22 25 24 26 24 32 26 30 28 26 24 32 26 30 28 23 20 24
++26 30 28 22 25 24 26 30 28 34 30 15 49 13 16 76 46 20 168 102 88 201 146 124
++176 103 41 176 103 41 168 102 88 138 126 108 138 126 108 117 114 76 88 83 74 90 98 89
++95 91 100 90 98 89 95 91 100 78 98 90 88 83 88 78 98 90 88 83 88 75 81 82
++75 81 76 60 82 70 60 82 70 59 69 70 59 69 70 65 63 61 53 63 61 53 63 61
++50 61 48 43 55 48 43 55 48 52 55 48 45 57 61 52 55 48 52 55 48 52 55 48
++54 57 61 50 61 48 59 55 55 53 63 61 65 63 61 65 63 61 65 63 61 65 63 61
++75 77 62 75 72 67 75 81 69 75 81 76 75 81 76 75 81 76 75 81 76 88 83 74
++75 81 82 88 83 74 88 83 74 75 81 82 88 83 88 88 83 74 88 83 88 75 81 76
++88 83 74 75 81 76 88 83 74 75 81 76 75 81 76 75 81 76 75 81 76 75 72 67
++75 81 69 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 75 72 67 75 77 62 75 81 69 75 72 67 75 81 69
++75 72 67 75 81 76 60 81 83 75 81 82 75 81 82 75 81 90 78 98 90 78 98 90
++88 83 88 77 90 100 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108
++95 108 128 112 123 108 95 108 128 112 123 108 95 119 107 95 108 128 111 119 127 95 119 107
++111 119 127 98 121 131 111 119 127 95 119 107 111 119 127 95 119 107 111 119 127 95 119 107
++111 119 127 95 119 107 111 119 127 94 105 108 94 105 108 94 105 108 77 90 100 78 98 90
++75 81 90 75 81 82 75 81 82 60 81 83 59 69 70 59 69 70 59 69 70 54 57 61
++45 57 61 48 50 48 43 55 48 43 42 50 43 55 48 48 50 48 35 47 50 43 42 50
++42 41 42 42 47 42 42 47 42 48 50 48 48 50 48 47 44 42 48 50 48 47 49 42
++48 50 48 51 49 42 51 49 42 48 50 48 51 49 42 48 50 48 53 46 48 52 55 48
++55 55 48 55 55 48 53 46 48 51 49 42 51 49 42 51 49 42 47 44 42 51 49 42
++47 44 42 47 44 42 42 41 42 36 35 37 42 41 42 36 35 37 53 35 37 36 35 37
++36 35 37 32 39 24 53 35 37 36 35 37 36 35 37 52 30 35 42 38 42 47 47 21
++36 35 37 47 39 42 42 47 42 47 44 42 51 49 42 52 55 48 52 55 48 55 55 48
++59 55 55 53 63 61 59 55 55 55 55 48 64 70 48 54 57 61 55 55 48 54 57 61
++55 55 48 52 55 48 52 55 48 48 50 48 48 50 48 43 42 50 42 41 42 33 39 38
++36 35 37 31 35 35 33 30 32 26 30 28 33 30 30 26 30 28 25 30 29 25 30 29
++31 35 35 31 35 35 33 39 38 34 40 43 42 47 42 42 47 42 43 42 50 43 55 48
++43 42 50 48 50 48 45 57 61 53 46 48 45 57 61 54 57 61 63 59 71 59 69 70
++
++75 81 90 90 98 89 112 96 108 111 119 127 119 117 138 122 134 144 129 144 153 148 160 159
++150 147 171 150 168 183 166 174 181 166 176 200 166 176 200 166 176 200 166 176 200 194 199 226
++166 176 200 194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 194 199 226 166 176 200
++194 199 226 185 202 202 166 176 200 194 199 226 166 176 200 194 199 226 194 199 226 194 199 226
++188 180 202 194 199 226 185 202 202 194 199 226 166 176 200 194 199 226 185 202 202 194 199 226
++185 202 202 185 202 202 188 180 202 185 202 202 188 180 202 185 202 202 166 176 200 188 180 202
++185 202 202 185 202 202 166 176 200 166 174 181 150 168 183 166 174 181 150 168 183 150 147 171
++150 147 171 131 144 168 122 134 144 98 121 131 95 108 128 77 90 100 60 63 87 45 57 61
++34 40 43 26 30 28 22 25 24 33 30 30 33 30 30 47 47 21 55 39 37 63 55 45
++75 56 53 88 73 31 120 63 71 98 106 55 117 99 86 167 63 71 117 114 76 168 102 88
++117 114 76 168 102 88 117 99 86 168 102 88 117 112 45 117 99 86 101 83 74 101 83 74
++88 73 62 88 73 62 64 70 48 63 55 51 55 55 48 47 49 42 42 47 42 35 46 43
++42 47 42 48 50 48 48 50 48 48 50 48 52 55 48 50 61 48 55 55 48 53 63 61
++65 63 61 65 63 61 75 72 67 75 81 69 75 81 76 75 81 76 88 83 74 75 81 82
++87 99 72 88 83 88 88 83 74 88 83 74 90 98 89 88 83 74 75 81 76 88 83 88
++88 83 74 88 83 88 99 93 84 90 98 89 88 83 88 99 93 84 99 93 84 99 93 84
++88 83 74 90 98 89 99 93 84 88 83 74 90 98 89 99 93 84 99 93 84 99 93 84
++95 91 100 99 93 84 95 91 100 90 98 89 95 91 100 88 83 88 90 98 89 90 98 89
++88 83 88 88 83 88 75 81 82 75 81 76 75 81 76 75 81 76 75 81 76 75 81 76
++75 81 76 59 69 70 59 69 70 59 69 70 53 63 61 59 69 70 59 69 70 53 63 61
++48 50 48 45 57 61 43 55 48 45 57 61 43 55 48 45 57 61 45 57 61 48 50 48
++43 55 48 48 50 48 42 47 42 35 47 50 42 41 42 35 47 50 42 47 42 43 42 50
++42 47 42 35 47 50 48 50 48 43 42 50 48 50 48 43 42 50 42 47 42 35 47 50
++43 42 50 34 40 43 35 47 50 43 42 50 35 47 50 34 40 43 29 34 50 34 40 43
++34 40 43 28 35 38 28 35 38 28 35 38 28 35 38 23 30 35 28 35 38 28 35 38
++23 30 35 28 35 38 28 35 38 28 35 38 28 35 38 28 35 38 34 40 43 34 40 43
++35 47 50 43 42 50 43 42 50 45 57 61 57 43 64 45 57 61 54 57 61 54 57 61
++59 69 70 59 69 70 59 69 70 60 81 83 60 63 87 75 81 82 60 63 87 75 81 82
++60 63 87 75 81 82 75 81 90 75 81 90 75 81 90 88 83 88 75 81 90 88 83 88
++77 90 100 88 83 88 95 91 100 90 98 89 88 83 88 95 91 100 77 90 100 88 83 88
++88 83 88 88 83 88 88 83 88 75 81 76 88 69 84 75 81 76 88 66 70 75 81 76
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 59 69 70 75 72 67 75 72 67
++65 63 61 75 72 67 75 81 76 59 57 61 22 25 24 3 4 9 3 3 1 3 3 1
++3 3 1 3 3 1 7 10 17 60 63 87 150 144 154 201 216 228 201 216 228 188 180 202
++95 108 128 35 47 50 12 18 20 22 23 31 28 30 35 31 35 35 25 30 29 30 30 34
++30 30 34 26 30 28 22 25 24 15 22 17 15 22 17 22 25 24 33 30 30 26 30 28
++26 30 28 22 25 24 22 25 24 26 30 28 26 30 28 26 30 28 30 30 34 28 30 35
++30 30 34 26 30 28 33 30 30 33 30 30 52 30 15 76 46 20 168 102 88 219 175 47
++219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47
++219 175 47 219 175 47 101 74 26 101 74 26 176 103 41 227 171 124 227 171 124 219 175 47
++117 112 45 55 39 18 34 30 15 29 35 19 33 30 30 22 25 24 22 25 24 25 30 29
++31 35 35 30 30 34 22 25 24 26 30 28 33 30 32 31 35 35 33 30 36 26 30 28
++17 12 17 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 4 9 3 3 1 3 4 9 3 3 1 3 4 9 3 3 1 3 3 1
++3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1
++3 4 9 7 12 13 17 12 17 14 16 17 23 18 22 23 20 24 26 24 32 22 25 24
++22 25 24 22 25 24 22 25 24 26 30 28 26 30 28 26 30 28 26 30 28 30 30 34
++30 30 34 25 30 29 25 30 29 28 30 35 34 40 43 35 46 43 43 42 50 48 50 48
++52 55 48 45 57 61 54 57 61 45 57 61 45 57 61 43 55 48 43 42 50 43 42 50
++35 47 50 45 57 61 54 57 61 35 47 50 34 40 43 43 55 48 75 81 82 94 105 108
++90 98 89 78 98 90 78 98 90 78 98 90 78 98 90 78 98 90 78 98 90 75 81 90
++78 98 90 75 81 76 75 81 76 60 82 70 59 69 70 53 63 61 53 63 61 50 61 48
++43 55 48 43 55 48 43 55 48 42 47 42 35 46 43 35 46 43 35 46 43 42 47 42
++35 46 43 35 46 43 42 47 42 35 46 43 42 47 42 35 46 43 42 47 42 43 55 48
++35 47 50 48 50 48 43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 43 55 48
++48 50 48 43 55 48 45 57 61 43 55 48 45 57 61 48 50 48 43 55 48 52 55 48
++45 57 61 43 55 48 45 57 61 52 55 48 45 57 61 50 61 48 50 61 48 50 61 48
++52 55 48 45 57 61 50 61 48 52 55 48 45 57 61 50 61 48 53 63 61 53 63 61
++65 63 61 53 63 61 53 63 61 53 63 61 59 79 61 65 63 61 59 69 70 59 69 70
++59 69 70 75 77 62 59 69 70 75 81 69 59 69 70 75 81 69 75 81 76 75 81 76
++75 81 76 87 99 72 75 81 82 88 83 74 75 81 82 87 99 72 88 83 88 87 99 72
++75 81 82 88 83 74 75 81 76 88 83 74 75 81 69 75 81 69 75 81 69 75 81 69
++75 72 67 75 72 67 75 72 67 75 72 67 75 77 62 65 63 61 65 63 61 59 79 61
++53 63 61 65 63 61 53 63 61 64 70 48 53 63 61 53 63 61 51 73 47 53 63 61
++53 63 61 53 63 61 53 63 61 53 63 61 59 69 70 59 79 61 59 69 70 65 63 61
++59 69 70 59 79 61 59 69 70 59 69 70 65 63 61 59 69 70 59 69 70 42 47 42
++22 25 24 14 16 17 14 16 17 14 16 17 23 18 22 15 22 17 22 25 24 23 20 24
++23 20 24 22 25 24 22 25 24 26 30 28 23 20 24 33 30 30 23 20 24 22 25 24
++22 25 24 22 25 24 26 24 32 22 25 24 22 25 24 22 25 24 23 20 24 26 30 28
++26 24 32 34 30 15 26 25 15 26 25 15 49 13 16 101 74 26 176 103 41 168 102 88
++219 175 47 201 146 124 157 148 53 201 146 124 168 102 88 117 114 76 101 83 74 99 93 84
++90 98 89 90 98 89 88 83 88 90 98 89 90 98 89 75 81 82 78 98 90 75 81 82
++75 81 76 75 81 76 75 72 67 59 69 70 65 63 61 59 69 70 53 63 61 50 61 48
++52 55 48 43 55 48 48 50 48 43 55 48 52 55 48 52 55 48 54 57 61 52 55 48
++50 61 48 53 63 61 65 63 61 64 70 48 65 63 61 65 63 61 75 77 62 75 72 67
++75 81 69 75 81 76 75 72 67 75 81 76 75 81 76 88 83 74 75 81 82 88 83 74
++88 83 88 75 81 82 88 83 88 88 83 88 88 83 74 88 83 88 88 83 88 88 83 88
++75 81 82 75 81 82 75 81 76 88 83 74 75 81 76 88 83 74 75 81 76 75 81 76
++75 81 76 75 72 67 60 82 70 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 81 69 75 72 67 75 72 67 75 81 76 75 72 67 75 81 69
++75 81 76 75 81 76 75 81 76 75 81 82 75 81 82 88 83 88 78 98 90 77 90 100
++78 98 90 94 105 108 95 91 100 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108
++95 119 107 95 108 128 95 119 107 95 108 128 111 119 127 95 119 107 98 121 131 111 119 127
++98 121 131 95 119 107 111 119 127 98 121 131 95 108 128 111 119 127 98 121 131 111 119 127
++95 119 107 95 108 128 95 119 107 94 105 108 94 105 108 94 105 108 90 98 89 77 90 100
++78 98 90 75 81 90 75 81 82 59 69 70 59 69 70 59 69 70 59 69 70 54 57 61
++45 57 61 45 57 61 43 55 48 48 50 48 43 55 48 48 50 48 43 42 50 43 42 50
++42 47 42 42 41 42 48 44 48 48 50 48 48 50 48 48 50 48 47 49 42 48 50 48
++51 49 42 48 50 48 51 49 42 53 46 48 48 50 48 55 55 48 52 55 48 55 55 48
++55 55 48 55 55 48 55 55 48 55 55 48 51 49 42 51 49 42 51 49 42 51 49 42
++47 44 42 47 44 42 47 44 42 47 39 42 47 47 21 47 39 42 42 41 42 47 47 21
++36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++47 39 42 32 39 24 47 44 42 47 44 42 47 49 42 53 46 48 55 55 48 52 55 48
++59 55 55 55 55 48 59 55 55 59 57 61 52 55 48 59 55 55 54 57 61 59 55 55
++54 57 61 52 55 48 48 50 48 48 50 48 48 50 48 42 41 42 42 41 42 33 39 38
++36 35 37 31 35 35 31 35 35 26 30 28 26 30 28 30 30 34 31 35 35 30 30 34
++30 30 34 31 35 35 37 35 43 34 40 43 42 41 42 35 47 50 48 50 48 43 42 50
++48 50 48 43 42 50 45 57 61 48 50 48 45 57 61 54 57 61 59 57 61 59 69 70
++
++88 83 88 90 98 89 94 105 108 111 119 127 119 117 138 145 140 145 129 144 153 150 147 171
++150 168 183 150 168 183 166 174 181 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200
++194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 194 199 226
++166 176 200 194 199 226 194 199 226 166 176 200 194 199 226 185 202 202 185 202 202 194 199 226
++185 202 202 194 199 226 188 180 202 194 199 226 185 202 202 194 199 226 188 180 202 185 202 202
++166 176 200 185 202 202 166 176 200 185 202 202 166 176 200 185 202 202 188 180 202 185 202 202
++166 176 200 166 176 200 166 174 181 166 176 200 166 174 181 150 168 183 150 147 171 150 147 171
++131 144 168 131 144 168 111 122 142 119 117 138 95 108 128 77 90 100 60 63 87 45 57 61
++37 35 43 25 30 29 26 30 28 33 30 30 32 39 24 47 39 42 55 39 37 63 55 45
++75 73 36 88 73 62 88 73 62 120 63 71 117 114 76 117 99 86 117 99 86 168 102 88
++117 99 86 117 114 76 168 102 88 117 99 86 117 99 86 120 63 71 117 114 76 101 83 74
++88 73 62 88 73 62 75 56 53 63 55 45 55 55 48 47 49 42 42 47 42 42 47 42
++43 42 50 48 50 48 45 57 61 48 50 48 48 50 48 54 57 61 53 63 61 59 55 55
++64 70 48 53 63 61 75 72 67 75 81 69 75 81 76 75 81 76 75 81 82 88 83 74
++88 83 88 88 83 74 90 98 89 78 98 90 88 83 74 75 81 82 87 99 72 88 83 88
++87 99 72 88 83 88 99 93 84 88 83 88 99 93 84 90 98 89 88 83 88 90 98 89
++99 93 84 99 93 84 99 93 84 99 93 84 90 98 89 95 91 100 90 98 89 95 91 100
++99 93 84 95 91 100 90 98 89 95 91 100 99 93 84 90 98 89 90 98 89 88 83 88
++78 98 90 88 83 74 75 81 82 75 81 82 90 98 89 95 91 100 90 98 89 94 105 108
++95 119 107 94 105 108 94 105 108 95 91 100 94 105 108 90 98 89 95 91 100 78 98 90
++75 81 82 59 69 70 45 57 61 45 57 61 35 47 50 43 55 48 43 55 48 48 50 48
++45 57 61 43 42 50 43 42 50 43 42 50 42 41 42 43 42 50 42 41 42 43 42 50
++42 47 42 43 42 50 43 42 50 43 42 50 43 42 50 42 47 42 35 47 50 42 47 42
++35 46 43 43 42 50 35 47 50 34 40 43 34 40 43 43 42 50 29 34 50 34 40 43
++29 34 50 24 30 43 28 35 38 23 30 35 23 30 35 23 30 35 28 35 38 23 30 35
++28 35 38 28 35 38 28 35 38 28 35 38 33 39 38 28 35 38 28 35 38 29 34 50
++35 47 50 35 47 50 45 57 61 43 42 50 45 57 61 45 57 61 46 59 71 63 59 71
++46 59 71 60 63 87 59 69 70 75 64 82 60 81 83 75 81 90 75 81 82 75 81 90
++75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 88 83 88 77 90 100 88 83 88
++77 90 100 88 83 88 75 81 90 77 90 100 95 91 100 88 83 88 90 98 89 88 83 88
++75 81 90 88 83 88 75 81 82 88 83 74 75 81 76 75 81 76 75 72 67 75 81 76
++75 72 67 75 64 82 75 72 67 75 72 67 75 72 67 65 63 61 75 72 67 59 69 70
++75 72 67 65 63 61 65 63 61 59 55 55 47 44 42 33 30 32 14 16 17 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 34 40 43 112 96 108 185 202 202 235 238 247
++194 199 226 119 117 138 45 57 61 22 23 31 22 23 31 28 30 35 26 24 32 26 24 32
++26 25 15 22 24 13 22 24 13 29 35 19 51 49 42 60 49 42 42 38 42 33 30 30
++23 20 24 23 20 24 22 25 24 22 25 24 33 30 30 26 30 28 33 30 32 26 30 28
++30 30 34 33 30 30 30 30 34 33 30 30 26 25 15 53 35 17 75 73 36 117 112 45
++219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47
++219 175 47 176 103 41 176 103 41 176 103 41 219 175 47 227 171 124 227 171 124 146 150 115
++101 74 26 34 30 15 34 30 15 26 30 28 33 30 30 26 30 28 26 30 28 33 30 30
++36 35 37 42 41 42 34 40 43 42 38 42 34 40 43 48 44 48 48 44 48 36 35 37
++23 20 24 3 4 9 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9
++3 3 1 3 4 9 3 4 9 3 3 1 3 4 9 3 3 1 3 3 1 3 4 9
++3 3 1 3 3 1 3 3 1 3 4 9 3 4 9 3 4 9 7 12 13 7 10 17
++17 12 17 23 18 22 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24 26 24 32
++22 25 24 26 30 28 26 24 32 26 30 28 26 30 28 33 30 30 31 35 35 25 30 29
++31 35 35 28 30 35 28 30 35 31 35 35 33 39 38 42 41 42 48 50 48 45 57 61
++54 57 61 45 57 61 45 57 61 48 50 48 48 50 48 45 57 61 45 57 61 43 55 48
++35 47 50 43 42 50 35 47 50 35 47 50 33 39 38 35 47 50 59 69 70 90 98 89
++94 105 108 77 90 100 78 98 90 75 81 82 75 81 82 75 81 82 60 81 83 60 82 70
++59 69 70 53 63 61 53 63 61 45 57 61 53 63 61 45 57 61 43 55 48 45 57 61
++43 55 48 35 47 50 43 55 48 42 47 42 35 47 50 42 47 42 35 47 50 42 47 42
++35 47 50 42 47 42 35 46 43 35 46 43 35 46 43 42 47 42 35 46 43 43 55 48
++35 47 50 43 55 48 43 42 50 43 55 48 43 42 50 43 55 48 48 50 48 43 55 48
++45 57 61 43 55 48 48 50 48 43 55 48 52 55 48 45 57 61 52 55 48 45 57 61
++52 55 48 45 57 61 52 55 48 45 57 61 52 55 48 54 57 61 50 61 48 45 57 61
++52 55 48 54 57 61 52 55 48 50 61 48 50 61 48 54 57 61 53 63 61 65 63 61
++59 69 70 53 63 61 59 79 61 65 63 61 59 69 70 59 69 70 59 79 61 59 79 61
++59 69 70 60 82 70 59 69 70 75 81 69 60 82 70 75 81 76 75 81 76 75 81 76
++75 81 76 75 81 82 88 83 74 78 98 90 88 83 74 88 83 88 87 99 72 88 83 88
++88 83 74 87 99 72 88 83 74 75 81 76 75 81 76 75 81 69 75 72 67 75 72 67
++75 72 67 75 77 62 75 72 67 59 69 70 75 77 62 59 69 70 75 72 67 65 63 61
++53 63 61 59 79 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61
++53 63 61 53 63 61 53 63 61 53 63 61 59 69 70 59 69 70 59 69 70 59 79 61
++59 69 70 65 63 61 59 69 70 59 79 61 59 69 70 59 69 70 59 69 70 54 57 61
++31 35 35 22 25 24 14 16 17 15 22 17 15 22 17 23 18 22 23 20 24 23 20 24
++22 25 24 23 20 24 22 25 24 23 20 24 26 24 32 23 20 24 33 30 30 26 24 32
++26 24 32 22 25 24 22 25 24 26 24 32 22 25 24 26 24 32 22 25 24 26 30 28
++22 25 24 23 18 22 26 12 13 52 30 15 76 46 20 101 74 26 168 102 88 219 175 47
++168 102 88 219 175 47 195 113 123 219 175 47 201 146 124 168 102 88 98 106 55 99 93 84
++99 93 84 90 98 89 90 98 89 88 83 88 88 83 88 75 81 82 75 81 76 75 81 76
++75 81 76 59 69 70 59 69 70 65 63 61 53 63 61 53 63 61 55 55 48 54 57 61
++43 55 48 52 55 48 45 57 61 52 55 48 45 57 61 52 55 48 54 57 61 50 61 48
++53 63 61 65 63 61 53 63 61 65 63 61 59 79 61 75 72 67 75 81 69 75 81 76
++75 81 76 75 81 76 75 81 76 75 81 82 88 83 88 88 83 88 78 98 90 88 83 88
++75 81 82 90 98 89 88 83 88 78 98 90 88 83 88 88 83 88 87 99 72 88 83 88
++75 81 82 88 83 88 88 83 74 75 81 82 88 83 74 75 81 82 88 83 74 75 81 76
++75 72 67 75 81 76 75 72 67 75 72 67 75 72 67 75 81 69 75 72 67 75 81 69
++75 72 67 75 81 76 75 72 67 75 81 69 75 81 76 75 72 67 75 81 76 75 81 76
++75 81 69 75 81 76 75 81 76 75 81 82 90 98 89 77 90 100 90 98 89 77 90 100
++90 98 89 94 105 108 94 105 108 94 105 108 94 105 108 95 108 128 95 119 107 98 121 131
++95 108 128 111 119 127 95 108 128 111 119 127 95 108 128 111 119 127 111 119 127 98 121 131
++111 119 127 98 121 131 98 121 131 111 119 127 98 121 131 95 119 107 111 119 127 98 121 131
++95 108 128 95 119 107 95 108 128 95 119 107 94 105 108 94 105 108 77 90 100 90 98 89
++75 81 90 75 81 82 60 81 83 75 81 76 59 69 70 59 69 70 53 63 61 53 63 61
++45 57 61 48 50 48 43 42 50 43 55 48 43 42 50 43 42 50 43 55 48 42 47 42
++43 42 50 42 47 42 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 48 50 48
++51 49 42 52 55 48 52 55 48 52 55 48 55 55 48 55 55 48 55 55 48 55 55 48
++63 55 51 55 55 48 55 55 48 62 47 47 55 55 48 51 49 42 51 49 42 51 49 42
++47 44 42 47 44 42 47 47 21 42 41 42 42 38 42 42 41 42 36 35 37 47 39 42
++42 38 42 36 35 37 36 35 37 47 47 21 36 35 37 53 35 37 36 35 37 36 35 37
++36 35 37 47 39 42 42 41 42 42 41 42 51 49 42 53 46 48 53 46 48 55 55 48
++59 55 55 59 55 55 54 57 61 59 55 55 55 55 48 54 57 61 59 55 55 54 57 61
++48 50 48 48 50 48 48 50 48 48 50 48 43 42 50 42 41 42 36 35 37 33 39 38
++36 35 37 36 35 37 33 30 30 26 30 28 33 30 30 25 30 29 30 30 34 30 30 34
++31 35 35 36 35 37 36 35 37 42 41 42 35 47 50 43 42 50 43 42 50 43 55 48
++43 42 50 45 57 61 45 57 61 45 57 61 54 57 61 54 57 61 53 63 61 59 69 70
++
++75 81 82 88 83 88 112 96 108 112 123 108 119 117 138 122 134 144 129 144 153 148 160 159
++150 147 171 150 168 183 166 174 181 166 176 200 166 176 200 166 176 200 166 176 200 185 202 202
++166 176 200 194 199 226 166 176 200 185 202 202 166 176 200 185 202 202 194 199 226 166 176 200
++194 199 226 166 176 200 185 202 202 194 199 226 166 176 200 194 199 226 194 199 226 166 176 200
++194 199 226 185 202 202 194 199 226 185 202 202 194 199 226 185 202 202 185 202 202 194 199 226
++185 202 202 188 180 202 185 202 202 166 176 200 185 202 202 166 176 200 185 202 202 166 176 200
++188 180 202 166 176 200 166 176 200 166 174 181 150 168 183 166 174 181 150 168 183 150 147 171
++131 144 168 131 144 168 122 134 144 111 122 142 95 95 116 77 91 115 59 69 70 45 57 61
++34 40 43 25 30 29 26 30 28 33 30 30 32 39 24 47 44 42 47 47 21 60 49 42
++75 56 53 88 73 62 120 63 71 98 106 55 120 63 71 117 99 86 168 102 88 117 114 76
++117 99 86 168 102 88 117 114 76 168 102 88 117 99 86 117 114 76 120 63 71 101 83 74
++88 73 62 88 73 62 75 73 58 64 70 48 59 55 55 52 55 48 47 49 42 42 47 42
++42 47 42 48 50 48 48 50 48 48 50 48 43 55 48 52 55 48 50 61 48 53 63 61
++65 63 61 65 63 61 59 69 70 75 81 69 75 81 76 75 81 76 88 83 74 88 83 88
++75 81 82 90 98 89 88 83 74 90 98 89 88 83 88 87 99 72 88 83 88 88 83 88
++90 98 89 88 83 88 99 93 84 95 91 100 99 93 84 90 98 89 99 93 84 88 83 88
++99 93 84 99 93 84 99 93 84 99 93 84 90 98 89 99 93 84 95 91 100 99 93 84
++94 105 108 90 98 89 95 91 100 99 93 84 90 98 89 95 91 100 90 98 89 90 98 89
++88 83 88 90 98 89 98 113 84 94 105 108 111 119 127 146 151 137 126 147 144 145 140 145
++146 151 137 126 147 144 145 140 145 146 162 145 150 144 154 148 160 159 126 147 144 145 140 145
++121 143 132 111 119 127 77 90 100 59 69 70 46 59 71 45 57 61 35 47 50 43 42 50
++48 50 48 43 42 50 48 50 48 48 50 48 48 50 48 43 42 50 34 40 43 42 47 42
++35 47 50 42 47 42 43 42 50 48 50 48 43 42 50 42 47 42 43 42 50 42 47 42
++43 42 50 34 40 43 43 42 50 34 40 43 34 40 43 34 40 43 29 34 50 34 40 43
++29 34 50 29 34 50 28 35 38 28 35 38 23 30 35 28 35 38 25 30 29 28 35 38
++23 30 35 28 35 38 28 35 38 28 35 38 28 35 38 28 35 38 34 40 43 34 40 43
++43 42 50 35 47 50 43 42 50 45 57 61 45 57 61 54 57 61 46 59 71 63 59 71
++59 69 70 59 69 70 60 63 87 60 81 83 60 81 83 75 64 82 60 81 83 75 81 90
++75 81 90 75 81 90 75 81 90 88 83 88 75 81 90 75 81 90 88 83 88 77 90 100
++88 83 88 77 90 100 88 83 88 88 83 88 77 90 100 88 83 88 77 90 100 88 83 88
++88 83 88 75 81 82 75 81 82 75 81 82 88 66 70 75 81 76 88 66 70 75 72 67
++75 72 67 75 72 67 75 72 67 65 63 61 75 72 67 59 69 70 75 72 67 65 63 61
++65 63 61 75 63 62 59 69 70 75 72 67 65 63 61 59 55 55 36 35 37 14 16 17
++3 4 9 3 3 1 3 3 1 3 3 1 7 12 13 54 57 61 122 134 144 201 216 228
++231 239 247 194 199 226 111 122 142 32 40 58 7 10 17 23 20 24 26 24 32 23 20 24
++23 18 22 15 17 7 42 41 42 75 81 82 138 126 108 112 123 108 63 55 45 23 20 24
++15 22 17 23 20 24 26 30 28 26 30 28 26 30 28 26 30 28 30 30 34 26 30 28
++26 30 28 26 30 28 30 30 34 33 30 30 34 30 15 26 25 15 52 30 15 76 46 20
++176 103 41 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47
++219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47 176 103 41 101 74 26
++76 46 20 34 30 15 29 35 19 26 30 28 33 30 30 32 39 24 33 30 30 33 30 30
++31 35 35 34 40 43 48 50 48 43 42 50 42 41 42 34 40 43 42 41 42 31 35 35
++23 18 22 7 12 13 3 3 1 3 4 9 3 3 1 3 4 9 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 4 9 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 4 9
++3 4 9 7 12 13 13 4 7 3 4 9 3 4 9 3 4 9 3 3 1 3 4 9
++3 4 9 3 3 1 3 4 9 3 4 9 13 4 7 14 16 17 17 12 17 23 18 22
++23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 26 24 32 23 20 24 22 25 24
++26 24 32 22 25 24 22 25 24 26 30 28 26 30 28 26 30 28 25 30 29 31 35 35
++28 30 35 31 35 35 28 30 35 28 30 35 33 39 38 43 42 50 43 42 50 45 57 61
++54 57 61 54 57 61 45 57 61 54 57 61 45 57 61 43 42 50 48 50 48 48 50 48
++45 57 61 45 57 61 48 50 48 45 57 61 35 46 43 34 40 43 43 55 48 59 69 70
++75 81 82 75 81 76 60 82 70 59 69 70 59 79 61 53 63 61 53 63 61 53 63 61
++45 57 61 45 57 61 50 61 48 43 55 48 43 55 48 45 57 61 45 57 61 43 55 48
++43 55 48 48 50 48 35 47 50 43 55 48 42 47 42 35 47 50 42 47 42 35 47 50
++42 47 42 42 47 42 35 46 43 42 47 42 35 46 43 42 47 42 35 47 50 43 55 48
++48 50 48 35 47 50 43 55 48 42 47 42 43 55 48 43 55 48 45 57 61 43 55 48
++43 55 48 43 55 48 45 57 61 45 57 61 50 61 48 45 57 61 50 61 48 53 63 61
++53 63 61 50 61 48 53 63 61 53 63 61 53 63 61 50 61 48 54 57 61 50 61 48
++54 57 61 50 61 48 53 63 61 54 57 61 53 63 61 53 63 61 53 63 61 65 63 61
++59 69 70 65 63 61 59 69 70 65 63 61 59 69 70 59 79 61 59 69 70 75 72 67
++59 79 61 75 72 67 75 81 69 59 69 70 75 81 76 75 81 76 75 81 76 75 81 76
++75 81 76 87 99 72 75 81 82 88 83 74 88 83 88 87 99 72 88 83 74 90 98 89
++88 83 74 75 81 82 88 83 74 75 81 76 88 83 74 75 81 76 75 81 69 75 81 69
++75 81 69 75 72 67 75 72 67 75 77 62 75 72 67 75 73 58 65 63 61 59 79 61
++65 63 61 53 63 61 65 63 61 53 63 61 64 70 48 53 63 61 53 63 61 53 63 61
++50 61 48 53 63 61 53 63 61 59 69 70 53 63 61 59 79 61 59 69 70 65 63 61
++59 69 70 53 63 61 59 69 70 59 69 70 59 69 70 59 79 61 65 63 61 59 69 70
++48 50 48 25 30 29 15 17 7 23 18 22 15 22 17 23 20 24 15 22 17 23 20 24
++23 18 22 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 26 24 32 23 20 24
++22 25 24 22 25 24 26 24 32 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24
++23 20 24 26 25 15 15 17 7 52 30 15 101 74 26 176 103 41 195 113 123 219 175 47
++176 103 41 176 103 41 219 175 47 219 175 47 201 146 124 157 148 53 117 99 86 101 83 74
++88 83 88 90 98 89 88 83 88 90 98 89 78 98 90 88 83 74 75 81 76 75 81 76
++75 81 76 75 72 67 59 79 61 53 63 61 65 63 61 53 63 61 53 63 61 52 55 48
++52 55 48 54 57 61 52 55 48 54 57 61 54 57 61 59 55 55 53 63 61 53 63 61
++65 63 61 64 70 48 59 69 70 75 73 58 59 69 70 75 81 69 75 81 76 75 81 76
++75 81 76 75 81 82 88 83 88 90 98 89 75 81 82 90 98 89 88 83 88 78 98 90
++88 83 88 90 98 89 90 98 89 90 98 89 90 98 89 90 98 89 88 83 88 90 98 89
++88 83 74 78 98 90 88 83 88 88 83 74 75 81 82 88 83 74 75 81 76 75 81 76
++88 83 74 75 81 76 75 81 69 75 81 69 75 72 67 75 72 67 75 72 67 75 72 67
++75 81 76 75 72 67 75 81 76 75 72 67 75 72 67 75 81 76 88 83 74 75 81 76
++88 83 74 75 81 76 75 81 82 88 83 88 90 98 89 94 105 108 77 90 100 94 105 108
++94 105 108 94 105 108 94 105 108 95 108 128 95 108 128 95 119 107 95 108 128 111 119 127
++111 119 127 95 108 128 111 119 127 98 121 131 111 119 127 111 119 127 98 121 131 111 119 127
++98 121 131 111 119 127 98 121 131 111 119 127 98 121 131 111 119 127 98 121 131 95 119 107
++111 119 127 95 119 107 111 119 127 94 105 108 94 105 108 94 105 108 95 91 100 78 98 90
++77 90 100 75 81 82 75 81 82 59 69 70 59 69 70 59 69 70 46 59 71 54 57 61
++48 50 48 45 57 61 45 57 61 43 42 50 43 55 48 35 47 50 48 50 48 43 42 50
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 53 46 48 52 55 48 52 55 48
++52 55 48 52 55 48 53 46 48 55 55 48 55 55 48 55 55 48 55 55 48 59 55 55
++55 55 48 63 55 51 63 55 51 55 55 48 55 55 48 60 49 42 51 49 42 51 49 42
++51 49 42 47 44 42 47 44 42 47 44 42 42 38 42 47 47 21 55 39 37 36 35 37
++42 41 42 36 35 37 52 30 35 36 35 37 36 35 37 36 35 37 32 39 24 36 35 37
++53 35 37 36 35 37 42 41 42 42 41 42 47 44 42 53 46 48 48 50 48 59 55 55
++52 55 48 59 55 55 55 55 48 54 57 61 59 55 55 59 55 55 54 57 61 52 55 48
++54 57 61 48 50 48 48 50 48 48 50 48 48 50 48 42 41 42 42 38 42 36 35 37
++33 39 38 31 35 35 31 35 35 30 30 34 26 30 28 26 30 28 26 30 28 30 30 34
++30 30 34 36 35 37 33 39 38 34 40 43 43 42 50 48 50 48 35 47 50 43 42 50
++48 50 48 48 50 48 48 50 48 45 57 61 54 57 61 54 57 61 59 69 70 59 69 70
++
++75 81 82 90 98 89 94 105 108 111 119 127 119 117 138 122 134 144 129 144 153 148 160 159
++150 147 171 150 168 183 150 168 183 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200
++194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 185 202 202 166 176 200 194 199 226
++166 176 200 194 199 226 194 199 226 166 176 200 194 199 226 185 202 202 166 176 200 194 199 226
++194 199 226 188 180 202 194 199 226 166 176 200 194 199 226 194 199 226 166 176 200 185 202 202
++188 180 202 185 202 202 166 176 200 188 180 202 166 176 200 185 202 202 166 176 200 185 202 202
++166 176 200 166 174 181 166 176 200 166 176 200 166 174 181 150 168 183 150 147 171 150 147 171
++150 147 171 129 144 153 122 134 144 111 122 142 95 108 128 77 90 100 60 63 87 45 57 61
++37 35 43 25 30 29 26 30 28 33 30 30 36 35 37 55 39 37 51 49 42 63 55 45
++75 56 53 88 73 31 88 73 62 101 83 74 117 114 76 117 99 86 117 99 86 168 102 88
++117 99 86 117 114 76 117 99 86 117 99 86 168 102 88 117 112 45 117 99 86 101 83 74
++88 73 62 88 73 62 75 73 58 75 56 53 65 55 54 55 55 48 48 50 48 42 47 42
++48 50 48 43 55 48 48 50 48 45 57 61 48 50 48 50 61 48 53 63 61 53 63 61
++65 63 61 59 79 61 75 72 67 75 81 69 75 81 76 75 81 82 90 98 89 75 81 82
++90 98 89 88 83 88 90 98 89 88 83 88 90 98 89 88 83 88 90 98 89 88 83 74
++88 83 88 90 98 89 88 83 88 90 98 89 95 91 100 90 98 89 90 98 89 90 98 89
++99 93 84 95 91 100 95 91 100 90 98 89 95 91 100 90 98 89 95 91 100 90 98 89
++99 93 84 95 91 100 90 98 89 94 105 108 112 96 108 112 123 108 112 123 108 111 119 127
++112 123 108 121 143 132 145 140 145 146 162 145 166 180 164 166 174 181 166 180 164 166 174 181
++166 180 164 166 174 181 166 174 181 166 174 181 185 202 202 166 180 164 166 174 181 166 174 181
++166 180 164 148 160 159 129 144 153 111 119 127 94 105 108 60 81 83 43 42 50 35 47 50
++43 42 50 45 57 61 48 50 48 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50
++43 42 50 43 42 50 43 42 50 42 47 42 43 42 50 43 42 50 35 47 50 43 42 50
++35 46 43 43 42 50 34 40 43 34 40 43 34 40 43 37 35 43 29 34 50 34 40 43
++29 34 50 28 35 38 29 34 50 24 30 43 23 30 35 23 30 35 28 35 38 23 30 35
++28 35 38 28 35 38 28 35 38 28 35 38 28 35 38 24 30 43 34 40 43 29 34 50
++35 47 50 43 42 50 45 57 61 45 57 61 54 57 61 46 59 71 63 59 71 46 59 71
++60 63 87 59 69 70 60 63 87 59 69 70 60 63 87 60 81 83 75 64 82 60 63 87
++75 81 82 75 64 82 75 81 90 75 81 90 75 81 90 75 81 90 77 90 100 88 83 88
++77 90 100 88 83 88 77 90 100 90 98 89 88 83 88 88 83 88 90 98 89 88 83 88
++75 81 90 88 83 88 75 81 76 75 64 82 75 81 76 75 81 76 75 72 67 75 64 82
++75 72 67 75 72 67 65 63 61 59 69 70 75 63 62 65 63 61 65 63 61 75 72 67
++59 69 70 65 63 61 65 63 61 75 72 67 59 69 70 65 63 61 59 57 61 42 47 42
++26 30 28 14 16 17 23 18 22 42 38 42 75 72 67 99 93 84 145 140 145 189 165 168
++201 216 228 233 241 227 188 180 202 111 119 127 43 42 50 7 10 17 13 4 7 26 12 13
++55 39 37 75 73 58 138 126 108 177 169 143 189 165 168 138 126 108 53 46 48 14 16 17
++23 18 22 22 25 24 26 30 28 22 25 24 25 30 29 26 30 28 25 30 29 26 24 32
++30 30 34 33 30 32 33 30 30 26 30 28 33 30 30 34 30 15 34 30 15 53 35 17
++88 73 31 117 112 45 176 103 41 219 175 47 219 175 47 219 175 47 219 175 47 219 175 47
++227 171 124 219 175 47 227 171 124 227 171 124 177 171 115 117 112 45 76 46 20 47 47 21
++34 30 15 34 30 15 29 35 19 30 30 34 31 35 35 31 35 35 31 35 35 31 35 35
++31 35 35 34 40 43 42 47 42 42 47 42 42 41 42 36 35 37 31 35 35 26 30 28
++14 16 17 7 12 13 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 4 9 3 3 1 3 4 9 3 3 1 3 4 9 3 4 9 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 7 12 13 7 12 13
++17 12 17 7 12 13 17 12 17 7 12 13 7 12 13 13 4 7 7 12 13 7 12 13
++7 12 13 7 12 13 17 12 17 14 16 17 14 16 17 23 20 24 22 25 24 22 25 24
++23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24
++26 30 28 22 25 24 33 30 30 23 20 24 26 30 28 26 30 28 26 30 28 28 30 35
++25 30 29 28 30 35 28 30 35 23 30 35 31 35 35 34 40 43 43 42 50 54 57 61
++45 57 61 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 45 57 61 45 57 61
++48 50 48 43 55 48 43 42 50 45 57 61 42 47 42 35 46 43 33 39 38 35 46 43
++43 55 48 45 57 61 53 63 61 53 63 61 46 59 71 53 63 61 45 57 61 45 57 61
++45 57 61 50 61 48 45 57 61 45 57 61 45 57 61 43 55 48 45 57 61 43 55 48
++43 42 50 43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 42 47 42 35 47 50
++42 47 42 35 46 43 35 46 43 35 46 43 43 55 48 35 46 43 43 55 48 43 42 50
++43 55 48 43 55 48 43 55 48 35 47 50 43 55 48 43 42 50 43 55 48 52 55 48
++45 57 61 50 61 48 45 57 61 50 61 48 45 57 61 52 55 48 45 57 61 53 63 61
++54 57 61 53 63 61 54 57 61 50 61 48 54 57 61 53 63 61 53 63 61 53 63 61
++59 55 55 53 63 61 55 55 48 53 63 61 50 61 48 53 63 61 65 63 61 59 69 70
++59 69 70 59 79 61 59 69 70 59 79 61 59 69 70 75 72 67 59 69 70 59 69 70
++75 81 69 59 69 70 60 82 70 75 81 69 75 81 76 75 81 76 75 81 69 75 81 76
++88 83 74 75 81 82 90 98 89 88 83 88 87 99 72 88 83 88 88 83 88 88 83 74
++90 98 89 88 83 74 88 83 74 88 83 74 75 81 69 75 81 76 88 83 74 75 72 67
++75 81 69 75 72 67 75 81 69 75 72 67 59 69 70 75 72 67 59 69 70 65 63 61
++59 79 61 65 63 61 53 63 61 53 63 61 59 69 70 53 63 61 50 61 48 53 63 61
++53 63 61 53 63 61 53 63 61 59 79 61 53 63 61 59 69 70 59 69 70 59 69 70
++59 69 70 53 63 61 59 79 61 53 63 61 59 69 70 59 69 70 59 69 70 59 69 70
++53 63 61 33 39 38 15 22 17 14 16 17 15 22 17 22 25 24 23 20 24 23 18 22
++15 22 17 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 33 30 30 23 20 24
++23 20 24 26 24 32 22 25 24 22 25 24 26 24 32 22 25 24 22 25 24 23 20 24
++23 18 22 22 24 13 23 10 10 52 30 15 88 73 31 168 102 88 201 146 124 176 103 41
++176 103 41 176 103 41 195 113 123 227 171 124 227 171 124 168 102 88 117 114 76 101 83 74
++88 83 74 90 98 89 88 83 88 88 83 88 88 83 74 75 81 82 75 81 76 75 81 76
++75 72 67 59 69 70 65 63 61 65 63 61 53 63 61 50 61 48 59 55 55 53 63 61
++54 57 61 53 63 61 53 63 61 53 63 61 53 63 61 65 63 61 53 63 61 65 63 61
++59 79 61 59 69 70 75 72 67 59 69 70 75 81 69 75 81 76 75 81 76 75 81 82
++90 98 89 88 83 88 90 98 89 78 98 90 90 98 89 90 98 89 90 98 89 90 98 89
++90 98 89 90 98 89 90 98 89 90 98 89 95 91 100 90 98 89 90 98 89 90 98 89
++88 83 88 78 98 90 88 83 74 75 81 82 88 83 74 75 81 82 75 81 76 75 81 76
++75 81 76 75 81 76 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 81 76 75 72 67 75 81 76 75 72 67 75 81 76 75 81 76 75 81 76 88 83 74
++75 81 82 75 81 82 88 83 88 78 98 90 77 90 100 90 98 89 94 105 108 94 105 108
++94 105 108 95 108 128 95 119 107 111 119 127 95 119 107 111 119 127 111 119 127 98 121 131
++111 119 127 98 121 131 111 119 127 98 121 131 111 119 127 98 121 131 111 119 127 98 121 131
++111 119 127 111 119 127 98 121 131 111 119 127 98 121 131 111 119 127 98 121 131 111 119 127
++98 121 131 95 119 107 95 108 128 95 119 107 95 108 128 77 90 100 78 98 90 77 90 100
++75 81 82 75 81 82 60 81 83 59 69 70 59 69 70 53 63 61 53 63 61 45 57 61
++45 57 61 48 50 48 43 55 48 48 50 48 48 50 48 48 50 48 48 50 48 43 55 48
++48 50 48 48 50 48 48 50 48 48 50 48 48 50 48 52 55 48 52 55 48 52 55 48
++55 55 48 55 55 48 55 55 48 59 55 55 59 55 55 55 55 48 59 55 55 59 55 55
++63 55 51 59 55 55 59 55 55 55 55 48 55 55 48 51 49 42 55 55 48 51 49 42
++51 49 42 51 49 42 47 44 42 42 41 42 47 47 21 42 38 42 42 41 42 47 44 42
++36 35 37 47 47 21 36 35 37 36 35 37 36 35 37 52 30 35 36 35 37 53 35 37
++36 35 37 42 47 42 42 41 42 47 44 42 47 49 42 48 50 48 55 55 48 52 55 48
++59 55 55 54 57 61 59 55 55 59 55 55 55 55 48 54 57 61 52 55 48 54 57 61
++48 50 48 48 50 48 48 50 48 43 42 50 48 50 48 42 41 42 33 39 38 33 39 38
++36 35 37 36 35 37 33 30 30 26 30 28 33 30 30 26 30 28 33 30 32 30 30 34
++31 35 35 36 35 37 36 35 37 42 41 42 35 46 43 43 42 50 48 50 48 35 47 50
++43 42 50 45 57 61 45 57 61 48 50 48 54 57 61 53 63 61 59 69 70 59 69 70
++
++75 81 82 88 83 88 112 96 108 112 123 108 119 117 138 122 134 144 129 144 153 131 144 168
++150 147 171 150 168 183 150 168 183 166 174 181 166 176 200 166 176 200 185 202 202 166 176 200
++166 176 200 166 176 200 185 202 202 166 176 200 194 199 226 166 176 200 194 199 226 166 176 200
++194 199 226 185 202 202 166 176 200 194 199 226 185 202 202 194 199 226 194 199 226 188 180 202
++194 199 226 185 202 202 194 199 226 194 199 226 185 202 202 194 199 226 185 202 202 194 199 226
++185 202 202 188 180 202 185 202 202 166 176 200 185 202 202 166 176 200 188 180 202 166 176 200
++185 202 202 166 176 200 166 176 200 166 176 200 150 168 183 166 174 181 150 168 183 150 147 171
++131 144 168 131 144 168 122 134 144 119 117 138 95 108 128 77 91 115 60 63 87 45 57 61
++34 40 43 25 30 29 26 30 28 36 35 37 32 39 24 47 44 42 47 47 21 60 49 42
++75 56 53 88 73 62 101 83 74 120 63 71 117 112 45 167 63 71 117 114 76 168 102 88
++117 99 86 168 102 88 168 102 88 117 112 45 117 99 86 117 99 86 120 63 71 101 83 74
++101 83 74 88 73 62 75 73 58 75 73 58 65 55 54 55 55 48 43 55 48 42 47 42
++43 42 50 43 55 48 48 50 48 48 50 48 43 55 48 50 61 48 50 61 48 50 61 48
++65 63 61 59 69 70 75 72 67 75 81 76 75 81 76 88 83 88 75 81 76 90 98 89
++88 83 88 87 99 72 90 98 89 90 98 89 88 83 88 90 98 89 88 83 88 90 98 89
++90 98 89 88 83 88 95 91 100 90 98 89 95 91 100 90 98 89 88 83 88 90 98 89
++95 91 100 88 83 88 90 98 89 95 91 100 99 93 84 95 91 100 95 91 100 94 105 108
++112 96 108 112 123 108 111 119 127 121 143 132 145 140 145 146 151 137 150 144 154 150 171 159
++166 156 164 166 180 164 166 180 164 185 202 202 185 202 202 185 202 202 208 215 180 185 202 202
++208 215 180 185 202 202 208 215 180 185 202 202 208 215 180 185 202 202 225 222 201 185 202 202
++185 202 202 185 202 202 185 202 202 166 176 200 148 160 159 111 119 127 75 81 90 46 59 71
++45 57 61 43 42 50 43 55 48 43 42 50 45 57 61 43 42 50 43 55 48 43 42 50
++35 47 50 43 42 50 35 47 50 43 42 50 35 47 50 42 47 42 43 42 50 42 41 42
++43 42 50 35 47 50 34 40 43 43 42 50 34 40 43 34 40 43 34 40 43 29 34 50
++34 40 43 29 34 50 29 34 50 28 35 38 24 30 43 28 35 38 23 30 35 24 30 43
++28 35 38 28 35 38 28 35 38 29 34 50 28 35 38 28 35 38 29 34 50 35 47 50
++35 47 50 43 42 50 32 40 58 45 57 61 46 59 71 54 57 61 46 59 71 46 59 71
++63 59 71 46 59 71 63 59 71 59 69 70 60 63 87 75 81 82 60 63 87 75 81 90
++75 64 82 60 81 83 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90
++75 81 90 77 90 100 77 90 100 95 91 100 77 90 100 88 83 88 88 83 88 75 81 90
++88 83 88 75 81 82 75 81 76 75 81 76 75 81 76 75 64 82 75 72 67 75 72 67
++75 72 67 65 63 61 75 72 67 75 72 67 65 63 61 75 72 67 63 59 71 65 63 61
++65 63 61 59 69 70 65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 59 55 55
++47 49 42 51 49 42 88 73 62 112 123 108 166 156 164 177 169 143 177 169 143 177 169 143
++189 165 168 225 222 201 225 222 201 188 180 202 94 105 108 42 38 42 53 35 17 75 56 53
++117 99 86 168 146 127 222 171 182 225 222 201 166 180 164 117 99 86 36 35 37 23 10 10
++22 25 24 22 25 24 22 23 31 25 30 29 25 30 29 25 30 29 22 23 31 25 30 29
++33 30 30 30 30 34 33 30 30 26 24 32 26 30 28 26 30 28 32 39 24 29 35 19
++53 35 37 88 73 31 101 83 74 117 114 76 176 103 41 201 146 124 176 103 41 201 146 124
++219 175 47 201 146 124 177 171 115 176 103 41 101 83 74 76 46 20 34 30 15 34 30 15
++29 35 19 33 30 32 31 35 35 36 35 37 37 35 43 36 35 37 31 35 35 33 39 38
++33 39 38 36 35 37 34 40 43 42 41 42 33 39 38 31 35 35 26 30 28 23 18 22
++14 16 17 13 4 7 3 4 9 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1
++3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 7 12 13 17 12 17
++14 16 17 17 12 17 14 16 17 17 12 17 7 12 13 14 16 17 17 12 17 14 16 17
++17 12 17 17 12 17 14 16 17 23 18 22 22 25 24 23 20 24 22 25 24 22 25 24
++22 25 24 23 18 22 15 22 17 23 20 24 26 24 32 22 25 24 26 24 32 23 20 24
++22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 26 30 28 26 30 28 25 30 29
++25 30 29 25 30 29 25 30 29 25 30 29 23 30 35 31 35 35 35 47 50 48 50 48
++48 50 48 48 50 48 45 57 61 54 57 61 54 57 61 63 59 71 54 57 61 45 57 61
++45 57 61 43 42 50 43 55 48 35 47 50 48 50 48 42 47 42 34 40 43 28 35 38
++28 35 38 35 47 50 45 57 61 46 59 71 59 69 70 53 63 61 53 63 61 53 63 61
++53 63 61 45 57 61 53 63 61 53 63 61 45 57 61 45 57 61 43 55 48 43 55 48
++45 57 61 43 55 48 35 47 50 43 55 48 35 47 50 43 55 48 43 55 48 43 55 48
++35 47 50 42 47 42 43 55 48 42 47 42 35 47 50 43 55 48 43 55 48 43 55 48
++43 55 48 48 50 48 43 55 48 48 50 48 43 55 48 43 55 48 43 55 48 45 57 61
++52 55 48 45 57 61 50 61 48 54 57 61 50 61 48 54 57 61 50 61 48 53 63 61
++53 63 61 50 61 48 53 63 61 65 63 61 53 63 61 53 63 61 59 55 55 53 63 61
++53 63 61 59 55 55 53 63 61 50 61 48 53 63 61 53 63 61 59 79 61 65 63 61
++75 72 67 59 69 70 75 72 67 59 69 70 75 72 67 60 82 70 75 72 67 60 82 70
++75 81 69 60 82 70 75 72 67 75 81 76 75 72 67 75 81 69 75 81 76 75 81 76
++75 99 72 75 81 82 88 83 74 90 98 89 88 83 74 90 98 89 88 83 74 90 98 89
++88 83 74 90 98 89 75 81 82 88 83 74 75 81 69 88 83 74 75 81 76 75 81 69
++75 81 69 75 72 67 75 72 67 75 81 69 75 72 67 75 73 58 59 79 61 65 63 61
++53 63 61 65 63 61 53 63 61 65 63 61 53 63 61 53 63 61 53 63 61 53 63 61
++53 63 61 53 63 61 53 63 61 53 63 61 59 69 70 59 69 70 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 59 79 61 59 69 70 59 69 70 59 69 70
++59 69 70 48 50 48 30 30 34 15 22 17 14 16 17 15 22 17 12 18 20 23 20 24
++12 18 20 23 18 22 15 22 17 23 20 24 23 20 24 22 25 24 23 18 22 22 25 24
++23 20 24 22 25 24 22 25 24 26 24 32 23 20 24 26 30 28 22 25 24 22 25 24
++23 18 22 26 25 15 23 10 10 49 13 16 101 74 26 176 103 41 168 102 88 176 103 41
++176 103 41 176 103 41 176 103 41 201 146 124 219 175 47 168 102 88 117 114 76 101 83 74
++88 83 74 87 99 72 88 83 88 87 99 72 88 83 74 75 81 76 75 81 76 75 81 76
++75 72 67 59 79 61 65 63 61 53 63 61 65 63 61 53 63 61 53 63 61 59 55 55
++53 63 61 53 63 61 65 63 61 53 63 61 65 63 61 59 69 70 75 72 67 59 69 70
++60 82 70 75 81 76 60 81 83 75 81 76 75 81 76 75 81 76 78 98 90 78 98 90
++90 98 89 90 98 89 90 98 89 90 98 89 94 105 108 90 98 89 95 91 100 90 98 89
++95 91 100 94 105 108 95 91 100 95 91 100 90 98 89 95 91 100 90 98 89 90 98 89
++90 98 89 88 83 88 90 98 89 88 83 88 88 83 74 75 81 76 75 81 76 75 81 76
++88 83 74 75 81 76 75 81 76 75 81 76 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 81 76 75 81 76 75 81 76 75 81 76 88 83 74 75 81 82
++88 83 88 75 81 82 78 98 90 77 90 100 90 98 89 77 90 100 94 105 108 94 105 108
++94 105 108 94 105 108 95 108 128 95 108 128 95 108 128 111 119 127 98 121 131 111 119 127
++98 121 131 111 119 127 98 121 131 111 119 127 98 121 131 111 119 127 98 121 131 121 143 132
++98 121 131 121 143 132 98 121 131 111 119 127 98 121 131 111 119 127 98 121 131 98 121 131
++98 121 131 98 121 131 95 119 107 95 108 128 94 105 108 94 105 108 78 98 90 78 98 90
++60 81 83 75 81 82 59 69 70 59 69 70 53 63 61 53 63 61 53 63 61 45 57 61
++45 57 61 45 57 61 48 50 48 43 55 48 43 42 50 43 55 48 43 42 50 48 50 48
++48 50 48 48 50 48 52 55 48 59 55 55 52 55 48 59 55 55 55 55 48 55 55 48
++55 55 48 59 55 55 63 55 51 59 55 55 63 55 51 59 55 55 55 55 48 55 55 48
++59 55 55 63 55 51 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 51 49 42
++51 49 42 51 49 42 47 44 42 47 44 42 42 41 42 42 41 42 55 39 37 36 35 37
++47 39 42 36 35 37 53 35 37 36 35 37 36 35 37 36 35 37 47 44 42 36 35 37
++42 41 42 36 35 37 42 41 42 47 44 42 47 44 42 48 50 48 53 46 48 52 55 48
++52 55 48 59 55 55 50 61 48 59 55 55 59 55 55 55 55 48 54 57 61 52 55 48
++54 57 61 48 50 48 48 50 48 48 50 48 48 50 48 42 47 42 42 41 42 33 39 38
++36 35 37 31 35 35 33 30 30 33 30 30 26 30 28 33 30 30 26 30 28 33 30 30
++33 30 30 36 35 37 33 39 38 42 41 42 43 42 50 42 47 42 43 42 50 43 55 48
++43 42 50 48 50 48 48 50 48 54 57 61 54 57 61 54 57 61 59 69 70 59 69 70
++
++75 81 82 88 83 88 94 105 108 112 96 108 111 119 127 122 134 144 129 144 153 150 144 154
++148 160 159 150 168 183 150 168 183 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200
++194 199 226 166 176 200 194 199 226 166 176 200 185 202 202 194 199 226 166 176 200 194 199 226
++166 176 200 194 199 226 185 202 202 194 199 226 166 176 200 194 199 226 185 202 202 194 199 226
++166 176 200 194 199 226 194 199 226 185 202 202 194 199 226 166 176 200 194 199 226 166 176 200
++185 202 202 166 176 200 185 202 202 188 180 202 166 176 200 185 202 202 166 176 200 185 202 202
++166 176 200 166 176 200 166 174 181 166 174 181 150 168 183 150 168 183 150 147 171 150 147 171
++131 144 168 129 144 153 122 134 144 111 122 142 95 108 128 77 90 100 60 81 83 48 50 48
++34 40 43 28 30 35 26 30 28 33 30 30 36 35 37 55 39 37 55 39 37 63 55 45
++75 73 36 88 44 51 88 73 62 101 83 74 120 63 71 117 114 76 117 99 86 117 114 76
++168 102 88 117 114 76 117 99 86 168 102 88 117 99 86 120 63 71 117 112 45 101 83 74
++101 83 74 88 73 62 88 73 62 75 56 53 64 70 48 55 55 48 48 50 48 43 55 48
++47 49 42 43 55 48 43 42 50 43 55 48 43 55 48 43 55 48 53 63 61 53 63 61
++64 70 48 59 69 70 59 79 61 75 81 69 75 81 76 75 81 76 90 98 89 75 81 82
++90 98 89 88 83 88 90 98 89 90 98 89 90 98 89 88 83 88 90 98 89 88 83 88
++90 98 89 88 83 88 90 98 89 88 83 88 90 98 89 88 83 88 90 98 89 90 98 89
++95 91 100 99 93 84 95 91 100 95 91 100 94 105 108 95 91 100 112 123 108 111 119 127
++122 134 144 150 144 154 166 156 164 166 180 164 166 174 181 166 174 181 166 174 181 185 202 202
++166 180 164 185 202 202 189 165 168 185 202 202 208 215 180 185 202 202 185 202 202 188 180 202
++185 202 202 208 215 180 188 180 202 185 202 202 185 202 202 185 202 202 185 202 202 225 222 201
++194 199 226 225 222 201 194 199 226 185 202 202 194 199 226 166 174 181 122 134 144 95 91 100
++54 57 61 43 42 50 35 47 50 43 42 50 43 42 50 48 50 48 43 42 50 43 42 50
++48 50 48 43 42 50 48 50 48 35 47 50 42 41 42 43 42 50 43 42 50 43 42 50
++43 42 50 35 46 43 43 42 50 34 40 43 34 40 43 34 40 43 29 34 50 35 47 50
++24 30 43 28 35 38 29 34 50 28 35 38 24 30 43 28 35 38 23 30 35 28 35 38
++23 30 35 23 30 35 23 30 35 23 30 35 28 35 38 23 30 35 28 35 38 28 35 38
++29 34 50 32 40 58 43 42 50 43 42 50 45 57 61 43 42 50 45 57 61 45 57 61
++46 59 71 46 59 71 60 63 87 75 81 90 77 90 100 77 90 100 95 95 116 95 95 116
++95 95 116 95 95 116 77 90 100 77 90 100 77 90 100 75 81 90 75 81 90 75 81 90
++75 81 90 75 81 90 75 81 90 75 81 90 88 83 88 88 83 88 75 81 90 88 83 88
++75 81 82 88 83 88 75 81 76 75 64 82 75 72 67 75 72 67 75 72 67 75 72 67
++63 59 71 75 72 67 65 63 61 65 63 61 65 63 61 65 63 61 59 69 70 75 63 62
++65 63 61 65 63 61 65 63 61 59 57 61 59 57 61 65 63 61 59 55 55 55 55 48
++47 49 42 88 83 74 145 140 145 189 165 168 189 165 168 189 165 168 177 169 143 166 156 164
++148 160 159 188 180 202 225 222 201 185 202 202 166 156 164 95 91 100 117 99 86 146 150 115
++189 165 168 208 215 180 208 215 180 208 215 180 168 146 127 75 59 67 26 30 28 15 17 7
++26 30 28 26 24 32 26 30 28 22 25 24 22 23 31 25 30 29 25 30 29 25 30 29
++26 24 32 33 30 30 26 24 32 26 30 28 23 20 24 22 25 24 33 30 30 32 39 24
++34 30 15 52 30 15 55 39 18 76 46 20 101 74 26 101 74 26 101 74 26 176 103 41
++117 112 45 161 55 23 101 74 26 76 46 20 76 46 20 55 39 18 53 35 17 29 35 19
++33 30 30 36 35 37 42 41 42 42 41 42 34 40 43 31 35 35 31 35 35 31 35 35
++30 30 34 26 30 28 26 30 28 31 35 35 36 35 37 33 30 30 26 30 28 23 20 24
++7 12 13 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1
++3 3 1 3 3 1 3 4 9 3 3 1 3 4 9 3 4 9 13 4 7 14 16 17
++14 16 17 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 14 16 17
++23 18 22 15 22 17 23 20 24 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24
++23 20 24 23 20 24 23 20 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24
++22 25 24 26 30 28 26 30 28 26 30 28 33 30 30 26 30 28 22 25 24 22 25 24
++23 20 24 12 18 30 22 25 24 22 23 31 25 30 29 28 30 35 34 40 43 43 42 50
++43 42 50 43 42 50 48 50 48 54 57 61 54 57 61 53 63 61 54 57 61 45 57 61
++45 57 61 45 57 61 43 55 48 43 42 50 35 47 50 43 42 50 43 55 48 35 46 43
++34 40 43 28 35 38 35 47 50 45 57 61 59 69 70 46 59 71 59 69 70 53 63 61
++59 69 70 46 59 71 53 63 61 53 63 61 45 57 61 43 55 48 45 57 61 45 57 61
++48 50 48 45 57 61 43 55 48 43 55 48 43 55 48 43 55 48 48 50 48 43 55 48
++43 55 48 43 55 48 42 47 42 35 47 50 43 55 48 43 55 48 43 55 48 48 50 48
++43 55 48 43 55 48 45 57 61 43 55 48 43 55 48 45 57 61 48 50 48 45 57 61
++50 61 48 45 57 61 52 55 48 45 57 61 54 57 61 53 63 61 53 63 61 53 63 61
++53 63 61 53 63 61 59 57 61 53 63 61 65 63 61 53 63 61 65 63 61 53 63 61
++65 63 61 53 63 61 65 63 61 53 63 61 64 70 48 53 63 61 65 63 61 59 69 70
++59 69 70 75 72 67 59 69 70 75 72 67 59 69 70 75 81 69 59 69 70 75 72 67
++60 82 70 75 81 69 75 81 69 75 81 76 75 81 76 75 81 76 75 81 76 75 81 76
++75 81 82 87 99 72 88 83 88 75 81 82 90 98 89 88 83 74 90 98 89 88 83 74
++90 98 89 88 83 74 88 83 74 88 83 74 75 81 76 75 81 76 75 81 69 75 72 67
++75 81 69 75 72 67 75 81 69 75 72 67 59 69 70 75 72 67 65 63 61 59 79 61
++65 63 61 53 63 61 65 63 61 53 63 61 65 63 61 53 63 61 53 63 61 53 63 61
++53 63 61 53 63 61 53 63 61 59 69 70 53 63 61 59 69 70 59 69 70 59 69 70
++59 69 70 53 63 61 59 79 61 53 63 61 59 69 70 59 69 70 59 69 70 65 63 61
++59 69 70 53 63 61 33 39 38 22 25 24 14 16 17 14 16 17 15 22 17 23 18 22
++12 18 20 23 20 24 23 20 24 23 20 24 22 25 24 22 25 24 23 18 22 23 20 24
++23 20 24 23 20 24 23 20 24 22 25 24 22 25 24 23 20 24 23 20 24 22 25 24
++26 25 15 26 12 13 23 10 10 55 39 18 120 63 71 117 112 45 161 55 23 122 49 24
++176 103 41 176 103 41 227 171 124 219 175 47 195 113 123 176 103 41 117 114 76 101 83 74
++88 83 74 90 98 89 88 83 74 75 81 82 75 81 76 75 81 76 75 81 76 75 81 76
++59 69 70 75 72 67 53 63 61 64 70 48 53 63 61 65 63 61 53 63 61 53 63 61
++65 63 61 65 63 61 59 69 70 65 63 61 59 69 70 59 69 70 60 82 70 75 81 76
++75 81 76 75 81 76 75 81 82 75 81 82 78 98 90 78 98 90 90 98 89 90 98 89
++95 91 100 95 91 100 94 105 108 95 91 100 94 105 108 94 105 108 94 105 108 95 91 100
++90 98 89 94 105 108 90 98 89 94 105 108 90 98 89 95 91 100 90 98 89 90 98 89
++88 83 88 78 98 90 88 83 74 75 81 82 88 83 74 75 81 82 75 81 76 75 81 76
++75 81 76 75 81 76 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 81 76 75 72 67 88 83 74 75 81 76 75 81 76 75 81 82 88 83 88
++88 83 88 88 83 88 88 83 88 78 98 90 95 91 100 94 105 108 94 105 108 94 105 108
++94 105 108 95 108 128 111 119 127 95 119 107 111 119 127 98 121 131 111 119 127 111 119 127
++98 121 131 111 119 127 121 143 132 98 121 131 121 143 132 111 122 142 111 122 142 98 121 131
++111 122 142 98 121 131 121 143 132 98 121 131 121 143 132 98 121 131 111 119 127 98 121 131
++95 119 107 95 108 128 95 108 128 94 105 108 94 105 108 77 90 100 77 90 100 78 98 90
++75 81 90 60 81 83 59 69 70 59 69 70 53 63 61 46 59 71 53 63 61 45 57 61
++48 50 48 48 50 48 48 50 48 43 42 50 43 55 48 48 50 48 48 50 48 45 57 61
++48 50 48 54 57 61 48 50 48 54 57 61 52 55 48 59 55 55 52 55 48 59 55 55
++52 55 48 55 55 48 59 55 55 63 55 51 55 55 48 59 55 55 55 55 48 59 55 55
++63 55 51 59 55 55 63 55 51 55 55 48 55 55 48 55 55 48 51 49 42 53 46 48
++51 49 42 51 49 42 47 44 42 42 47 42 42 41 42 47 39 42 42 41 42 47 47 21
++42 38 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 47 47 21
++47 39 42 42 41 42 42 41 42 47 44 42 47 44 42 48 50 48 48 50 48 52 55 48
++52 55 48 59 55 55 59 55 55 52 55 48 59 55 55 59 55 55 54 57 61 59 55 55
++52 55 48 48 50 48 48 50 48 48 50 48 48 50 48 42 41 42 33 39 38 42 41 42
++31 35 35 36 35 37 33 30 30 33 30 30 26 30 28 33 30 30 26 30 28 30 30 34
++31 35 35 36 35 37 36 35 37 42 41 42 35 46 43 43 42 50 43 55 48 43 42 50
++43 42 50 45 57 61 54 57 61 45 57 61 54 57 61 53 63 61 59 69 70 59 69 70
++
++75 81 82 88 83 88 95 91 100 111 119 127 119 117 138 122 134 144 129 144 153 131 144 168
++150 147 171 150 147 171 150 168 183 150 168 183 150 168 183 166 176 200 166 176 200 166 176 200
++166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 185 202 202 166 176 200 185 202 202
++194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 185 202 202
++194 199 226 185 202 202 194 199 226 166 176 200 194 199 226 194 199 226 185 202 202 194 199 226
++185 202 202 188 180 202 185 202 202 166 176 200 188 180 202 166 176 200 185 202 202 166 176 200
++166 176 200 166 176 200 166 176 200 166 176 200 150 168 183 166 174 181 150 168 183 150 147 171
++131 144 168 131 144 168 122 134 144 119 117 138 95 108 128 77 90 100 60 63 87 45 57 61
++34 40 43 30 30 34 33 30 30 32 39 24 36 35 37 47 47 21 51 49 42 63 55 45
++75 56 53 88 73 62 101 74 26 120 63 71 117 112 45 117 99 86 117 99 86 168 102 88
++117 99 86 117 99 86 168 102 88 117 99 86 117 99 86 117 114 76 120 63 71 101 83 74
++101 83 74 88 73 62 88 73 62 75 73 58 65 55 54 63 55 51 55 55 48 52 55 48
++48 50 48 48 50 48 48 50 48 48 50 48 43 55 48 43 55 48 50 61 48 53 63 61
++53 63 61 65 63 61 59 69 70 75 81 76 75 81 76 75 81 76 78 98 90 75 81 82
++88 83 88 78 98 90 90 98 89 88 83 88 95 91 100 90 98 89 88 83 88 90 98 89
++90 98 89 90 98 89 95 91 100 94 105 108 95 91 100 94 105 108 94 105 108 112 96 108
++94 105 108 112 96 108 112 123 108 112 123 108 111 119 127 138 126 108 119 117 138 146 151 137
++166 156 164 166 180 164 185 202 202 166 174 181 188 180 202 166 180 164 185 202 202 189 165 168
++188 180 202 166 180 164 185 202 202 185 202 202 188 180 202 208 215 180 166 174 181 208 215 180
++166 180 164 188 180 202 185 202 202 185 202 202 208 215 180 185 202 202 225 222 201 185 202 202
++201 216 228 201 216 228 232 215 228 233 241 227 225 222 201 201 216 228 185 202 202 148 160 159
++77 90 100 35 47 50 35 47 50 35 47 50 43 55 48 43 42 50 43 55 48 43 42 50
++43 42 50 43 55 48 43 42 50 43 42 50 43 42 50 35 47 50 43 42 50 42 47 42
++43 42 50 35 47 50 34 40 43 34 40 43 34 40 43 34 40 43 29 34 50 34 40 43
++29 34 50 29 34 50 28 35 38 29 34 50 28 35 38 23 30 35 23 30 35 23 30 35
++12 18 30 23 30 35 12 18 30 12 18 30 12 18 30 12 18 30 24 30 43 24 30 43
++24 30 43 29 34 50 32 40 58 32 40 58 32 40 58 46 59 71 60 63 87 77 90 100
++95 95 116 119 117 138 129 144 153 150 144 154 150 168 183 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 150 168 183 150 147 171 150 147 171 129 144 153 111 122 142 111 119 127
++94 105 108 95 95 116 75 81 90 75 81 90 75 81 82 75 81 90 75 81 82 75 81 82
++75 81 82 75 81 82 75 64 82 75 81 76 59 69 70 75 72 67 63 59 71 75 59 67
++65 63 61 65 63 61 65 63 61 65 63 61 65 63 61 63 59 71 65 63 61 63 59 71
++65 63 61 59 57 61 59 55 55 65 63 61 59 57 61 59 57 61 52 55 48 55 55 48
++65 63 61 138 126 108 189 165 168 208 215 180 208 215 180 189 165 168 177 169 143 177 169 143
++168 146 127 177 169 143 189 165 168 189 165 168 177 169 143 177 169 143 189 165 168 217 168 156
++222 171 182 225 222 201 225 222 201 222 171 182 112 96 108 36 35 37 26 25 15 23 18 22
++26 24 32 26 30 28 26 24 32 25 30 29 25 30 29 25 30 29 26 30 28 26 30 28
++26 30 28 26 24 32 30 30 34 33 30 30 22 25 24 22 25 24 22 25 24 33 30 30
++29 35 19 26 25 15 34 30 15 34 30 15 34 30 15 53 35 17 55 39 18 76 46 20
++88 73 31 88 73 31 55 39 18 52 30 15 34 30 15 34 30 15 34 30 15 26 30 28
++26 30 28 36 35 37 34 40 43 36 35 37 30 30 34 28 30 35 22 25 24 22 25 24
++26 30 28 25 30 29 26 30 28 31 35 35 31 35 35 30 30 34 22 25 24 14 16 17
++3 4 9 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 7 12 13 14 16 17
++14 16 17 23 18 22 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 23 18 22
++12 18 20 23 18 22 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24
++23 20 24 23 20 24 15 22 17 23 18 22 23 20 24 22 25 24 26 24 32 22 25 24
++26 24 32 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 22 25 24 25 30 29 25 30 29 31 35 35 36 35 37 34 40 43
++34 40 43 35 47 50 43 42 50 45 57 61 54 57 61 45 57 61 53 63 61 59 57 61
++54 57 61 54 57 61 54 57 61 45 57 61 48 50 48 35 47 50 43 42 50 43 42 50
++43 42 50 37 35 43 37 35 43 43 55 48 53 63 61 59 69 70 59 69 70 59 69 70
++53 63 61 59 69 70 53 63 61 45 57 61 54 57 61 45 57 61 52 55 48 45 57 61
++43 55 48 45 57 61 43 55 48 43 55 48 48 50 48 43 55 48 43 55 48 48 50 48
++43 55 48 43 42 50 43 55 48 43 55 48 43 55 48 43 55 48 48 50 48 43 55 48
++45 57 61 48 50 48 43 55 48 43 55 48 48 50 48 45 57 61 50 61 48 53 63 61
++52 55 48 53 63 61 54 57 61 50 61 48 53 63 61 53 63 61 53 63 61 53 63 61
++53 63 61 59 69 70 65 63 61 53 63 61 65 63 61 59 79 61 65 63 61 65 63 61
++65 63 61 59 79 61 65 63 61 53 63 61 53 63 61 65 63 61 59 79 61 59 69 70
++75 72 67 75 81 69 60 82 70 75 81 76 75 81 76 60 82 70 75 81 76 75 81 76
++60 82 70 75 81 76 60 82 70 75 72 67 75 81 69 75 81 76 75 81 76 75 81 76
++88 83 74 75 81 82 88 83 74 90 98 89 88 83 74 90 98 89 88 83 74 90 98 89
++88 83 74 88 83 88 87 99 72 88 83 88 88 83 74 88 83 74 75 81 69 75 81 69
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 59 79 61 65 63 61 65 63 61
++65 63 61 59 79 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61
++53 63 61 53 63 61 53 63 61 53 63 61 59 69 70 59 69 70 53 63 61 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 79 61 59 69 70 53 63 61
++59 69 70 59 69 70 52 55 48 28 30 35 14 16 17 14 16 17 12 18 20 15 22 17
++23 20 24 23 18 22 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 18 22
++22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 23 20 24 26 25 15
++23 10 10 23 10 10 49 13 16 88 73 31 168 102 88 101 74 26 52 30 15 52 30 15
++117 112 45 168 102 88 201 146 124 168 102 88 201 146 124 168 102 88 117 114 76 101 83 74
++75 81 69 88 83 74 88 83 74 88 83 74 88 83 74 75 81 76 75 81 69 75 72 67
++75 72 67 59 69 70 65 63 61 65 63 61 59 69 70 65 63 61 65 63 61 65 63 61
++53 63 61 59 69 70 59 69 70 59 69 70 59 69 70 75 81 76 75 81 76 75 81 82
++75 81 82 75 81 82 75 81 90 78 98 90 77 90 100 90 98 89 90 98 89 94 105 108
++94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 90 98 89 94 105 108 94 105 108
++94 105 108 94 105 108 94 105 108 90 98 89 94 105 108 90 98 89 95 91 100 90 98 89
++90 98 89 88 83 88 78 98 90 88 83 74 88 83 88 88 83 74 75 81 76 88 83 74
++75 81 76 88 83 74 75 81 76 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 81 76 75 72 67 75 81 76 75 81 76 88 83 74 75 81 76 88 83 88
++75 81 82 78 98 90 78 98 90 77 90 100 78 98 90 77 90 100 94 105 108 94 105 108
++94 105 108 95 108 128 95 119 107 95 108 128 98 121 131 98 121 131 111 119 127 98 121 131
++121 143 132 98 121 131 111 122 142 111 122 142 98 121 131 121 143 132 111 122 142 121 143 132
++111 122 142 121 143 132 111 122 142 111 122 142 98 121 131 98 121 131 98 121 131 111 119 127
++98 121 131 95 119 107 95 108 128 95 119 107 94 105 108 77 90 100 78 98 90 75 81 90
++60 81 83 75 81 82 59 69 70 59 69 70 53 63 61 53 63 61 45 57 61 45 57 61
++45 57 61 43 55 48 45 57 61 48 50 48 45 57 61 43 55 48 43 42 50 48 50 48
++48 50 48 52 55 48 52 55 48 59 55 55 52 55 48 59 55 55 59 55 55 55 55 48
++59 55 55 55 55 48 59 55 55 55 55 48 59 55 55 55 55 48 59 55 55 50 61 48
++63 55 51 55 55 48 63 55 51 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48
++51 49 42 51 49 42 42 47 42 47 44 42 42 41 42 47 47 21 36 35 37 42 41 42
++36 35 37 42 41 42 47 39 42 32 39 24 52 30 35 36 35 37 36 35 37 42 38 42
++36 35 37 36 35 37 42 41 42 42 41 42 42 47 42 48 50 48 48 50 48 53 46 48
++48 50 48 52 55 48 52 55 48 54 57 61 52 55 48 54 57 61 52 55 48 54 57 61
++48 50 48 54 57 61 48 50 48 48 50 48 43 42 50 42 41 42 42 41 42 33 39 38
++36 35 37 31 35 35 31 35 35 33 30 30 33 30 30 33 30 30 26 30 28 33 30 30
++33 30 30 31 35 35 36 35 37 34 40 43 42 47 42 42 47 42 42 47 42 35 47 50
++48 50 48 48 50 48 54 57 61 54 57 61 53 63 61 63 59 71 59 69 70 59 69 70
++
++75 81 82 88 83 88 94 105 108 112 96 108 111 119 127 122 134 144 122 134 144 150 144 154
++150 168 183 150 168 183 150 168 183 166 174 181 166 176 200 166 176 200 166 176 200 166 176 200
++185 202 202 166 176 200 194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 166 176 200
++185 202 202 166 176 200 185 202 202 194 199 226 166 176 200 194 199 226 185 202 202 194 199 226
++188 180 202 194 199 226 194 199 226 185 202 202 194 199 226 166 176 200 185 202 202 166 176 200
++188 180 202 166 176 200 185 202 202 166 176 200 185 202 202 166 176 200 188 180 202 166 176 200
++185 202 202 166 176 200 166 174 181 166 176 200 150 168 183 150 168 183 150 168 183 150 147 171
++131 144 168 129 144 153 122 134 144 111 122 142 95 108 128 77 90 100 59 69 70 45 57 61
++37 35 43 30 30 34 33 30 30 33 30 30 42 41 42 47 44 42 51 49 42 63 55 45
++75 56 53 75 56 53 88 73 62 101 83 74 101 83 74 120 63 71 117 114 76 168 102 88
++117 114 76 168 102 88 117 114 76 117 99 86 117 112 45 120 63 71 117 99 86 117 112 45
++88 73 62 88 73 62 88 73 62 75 56 53 64 70 48 63 55 51 63 55 51 52 55 48
++48 50 48 43 55 48 48 50 48 48 50 48 43 55 48 48 50 48 50 61 48 53 63 61
++65 63 61 53 63 61 75 72 67 60 82 70 75 81 76 75 81 82 75 81 82 75 81 82
++90 98 89 90 98 89 90 98 89 95 91 100 94 105 108 95 91 100 94 105 108 94 105 108
++94 105 108 112 123 108 94 105 108 112 123 108 112 96 108 112 123 108 94 105 108 112 123 108
++111 119 127 111 119 127 111 119 127 121 143 132 121 143 132 122 134 144 146 151 137 166 156 164
++166 180 164 188 180 202 166 180 164 166 180 164 166 180 164 189 165 168 166 180 164 185 202 202
++166 180 164 208 215 180 188 180 202 166 180 164 166 180 164 166 174 181 166 156 164 166 180 164
++166 174 181 166 180 164 166 180 164 189 165 168 185 202 202 188 180 202 185 202 202 208 215 180
++185 202 202 225 222 201 233 241 227 201 216 228 221 238 247 235 238 247 233 241 227 166 174 181
++95 108 128 54 57 61 32 40 58 35 47 50 45 57 61 43 42 50 43 42 50 43 55 48
++43 42 50 48 50 48 43 42 50 35 47 50 43 42 50 48 50 48 35 47 50 43 42 50
++35 47 50 35 47 50 34 40 43 35 47 50 29 34 50 35 47 50 28 35 38 29 34 50
++24 30 43 23 30 35 23 30 35 12 18 30 12 18 30 12 18 30 12 18 30 12 18 30
++24 30 43 24 30 43 32 40 58 34 42 77 46 59 71 46 59 71 60 63 87 61 78 101
++75 81 90 77 90 100 77 91 115 95 95 116 95 108 128 119 117 138 129 144 153 150 168 183
++188 180 202 185 202 202 201 216 228 201 216 228 231 239 247 226 221 247 231 239 247 221 238 247
++226 221 247 221 238 247 208 221 247 201 216 228 201 216 228 194 199 226 188 180 202 166 176 200
++150 168 183 131 144 168 122 134 144 111 119 127 95 108 128 95 91 100 88 83 88 88 83 88
++75 81 82 75 81 82 75 64 82 59 69 70 75 64 82 63 59 71 75 72 67 63 59 71
++65 63 61 65 57 61 65 63 61 53 63 61 65 63 61 65 63 61 63 59 71 65 63 61
++59 57 61 59 55 55 53 63 61 59 57 61 54 57 61 59 57 61 48 50 48 59 55 55
++99 93 84 166 180 164 225 222 201 208 215 180 189 165 168 197 171 123 177 169 143 177 169 143
++177 169 143 168 146 127 177 169 143 177 169 143 217 168 156 208 215 180 208 215 180 208 215 180
++208 215 180 225 222 201 217 168 156 146 162 145 75 77 62 15 17 7 17 12 17 23 18 22
++33 30 30 26 30 28 26 30 28 25 30 29 28 30 35 25 30 29 26 30 28 33 30 30
++26 30 28 33 30 32 26 30 28 26 24 32 22 25 24 23 20 24 23 18 22 22 25 24
++26 24 32 25 30 29 22 25 24 22 24 13 26 25 15 22 24 13 23 31 15 47 47 21
++42 47 42 32 39 24 32 39 24 23 31 15 22 24 13 23 20 24 23 20 24 12 18 20
++23 20 24 26 24 32 26 30 28 30 30 34 25 30 29 26 30 28 26 24 32 23 20 24
++22 25 24 26 24 32 26 30 28 33 30 36 33 30 36 25 30 29 15 22 17 7 12 13
++3 3 1 3 3 1 3 4 9 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9
++3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 4 9 17 12 17 14 16 17
++23 18 22 15 22 17 23 20 24 23 20 24 15 22 17 17 12 17 14 16 17 14 16 17
++23 18 22 15 22 17 23 20 24 23 20 24 22 25 24 22 25 24 22 25 24 23 20 24
++22 25 24 22 25 24 23 18 22 12 18 20 23 20 24 22 25 24 26 30 28 26 24 32
++26 30 28 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 26 24 32 26 24 32
++25 30 29 26 24 32 26 30 28 26 24 32 30 30 34 30 30 34 30 30 34 31 35 35
++28 35 38 34 40 43 35 47 50 45 57 61 43 55 48 45 57 61 54 57 61 59 57 61
++59 69 70 59 57 61 54 57 61 45 57 61 48 44 48 43 42 50 43 42 50 34 40 43
++43 42 50 34 40 43 34 40 43 34 40 43 43 55 48 59 69 70 59 69 70 59 69 70
++59 69 70 59 69 70 53 63 61 53 63 61 50 61 48 53 63 61 45 57 61 50 61 48
++45 57 61 50 61 48 48 50 48 45 57 61 45 57 61 48 50 48 43 55 48 43 55 48
++43 55 48 43 55 48 43 55 48 43 42 50 43 55 48 48 50 48 45 57 61 43 55 48
++43 55 48 43 55 48 45 57 61 43 55 48 45 57 61 50 61 48 54 57 61 45 57 61
++53 63 61 59 55 55 53 63 61 59 57 61 53 63 61 65 63 61 53 63 61 59 69 70
++59 69 70 59 79 61 59 69 70 75 72 67 59 69 70 65 63 61 59 69 70 59 79 61
++59 69 70 65 63 61 59 69 70 65 63 61 59 69 70 75 72 67 59 69 70 75 72 67
++60 82 70 75 81 76 59 69 70 75 81 76 75 81 76 75 81 76 60 81 83 75 72 67
++75 81 76 59 69 70 75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 75 81 76
++78 98 90 88 83 74 88 83 88 75 81 82 90 98 89 88 83 88 90 98 89 88 83 88
++87 99 72 88 83 88 88 83 74 88 83 74 75 81 76 75 81 76 75 72 67 75 81 69
++75 72 67 75 77 62 59 69 70 75 73 58 59 69 70 65 63 61 65 63 61 59 79 61
++65 63 61 53 63 61 65 63 61 59 69 70 53 63 61 53 63 61 53 63 61 51 73 47
++53 63 61 53 63 61 59 79 61 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70
++59 69 70 59 69 70 60 82 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70
++59 69 70 59 69 70 53 63 61 42 47 42 22 23 31 14 16 17 12 18 20 23 20 24
++15 22 17 23 20 24 23 18 22 15 22 17 23 20 24 23 20 24 22 25 24 23 20 24
++15 22 17 23 20 24 22 25 24 23 20 24 22 25 24 23 20 24 26 25 15 23 18 22
++23 10 10 34 30 15 76 46 20 117 99 86 168 102 88 88 73 31 49 13 16 49 13 16
++76 46 20 117 114 76 176 103 41 168 102 88 157 148 53 168 102 88 138 126 108 88 73 62
++88 73 62 88 83 74 75 81 69 88 83 74 75 81 69 75 72 67 75 72 67 75 72 67
++65 63 61 65 63 61 59 69 70 65 63 61 59 79 61 65 63 61 59 79 61 59 69 70
++59 79 61 75 72 67 59 69 70 75 81 76 75 81 76 75 81 82 75 81 82 75 81 90
++78 98 90 78 98 90 78 98 90 95 91 100 94 105 108 94 105 108 94 105 108 94 105 108
++94 105 108 95 119 107 94 105 108 95 119 107 94 105 108 94 105 108 94 105 108 98 113 84
++94 105 108 112 96 108 90 98 89 94 105 108 90 98 89 95 91 100 90 98 89 95 91 100
++90 98 89 88 83 88 88 83 88 88 83 74 75 81 82 88 83 74 75 81 82 88 83 74
++88 69 84 75 72 67 88 66 70 75 81 76 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 81 76 75 81 76 88 69 84 75 81 76 75 81 82 88 83 88
++78 98 90 78 98 90 95 91 100 77 90 100 94 105 108 94 105 108 94 105 108 94 105 108
++95 108 128 95 108 128 111 119 127 95 108 128 111 119 127 98 121 131 98 121 131 121 143 132
++98 121 131 121 143 132 111 122 142 121 143 132 111 122 142 111 122 142 121 143 132 111 122 142
++111 122 142 98 121 131 121 143 132 98 121 131 121 143 132 98 121 131 98 121 131 98 121 131
++98 121 131 111 119 127 94 105 108 95 108 128 94 105 108 77 90 100 77 90 100 75 81 90
++60 81 83 60 81 83 59 69 70 53 63 61 53 63 61 45 57 61 43 55 48 52 55 48
++43 55 48 45 57 61 48 50 48 43 55 48 48 50 48 48 50 48 48 50 48 45 57 61
++52 55 48 45 57 61 54 57 61 48 50 48 54 57 61 59 55 55 59 55 55 50 61 48
++59 55 55 55 55 48 59 55 55 55 55 48 55 55 48 59 55 55 55 55 48 59 55 55
++63 55 51 63 55 51 55 55 48 63 55 51 55 55 48 63 55 45 55 55 48 53 46 48
++51 49 42 51 49 42 47 49 42 42 47 42 47 44 42 42 41 42 42 41 42 36 35 37
++47 47 21 33 39 38 36 35 37 36 35 37 36 35 37 32 39 24 42 38 42 36 35 37
++42 41 42 36 35 37 42 47 42 42 41 42 42 47 42 48 50 48 48 50 48 48 50 48
++54 57 61 53 46 48 54 57 61 59 55 55 54 57 61 52 55 48 45 57 61 54 57 61
++48 50 48 45 57 61 48 50 48 48 50 48 42 47 42 43 42 50 42 41 42 36 35 37
++33 39 38 32 39 24 33 30 32 33 30 30 26 30 28 33 30 30 33 30 30 30 30 34
++31 35 35 31 35 35 36 35 37 33 39 38 42 47 42 42 41 42 43 42 50 48 50 48
++43 42 50 45 57 61 54 57 61 54 57 61 53 63 61 63 59 71 59 69 70 75 64 82
++
++75 81 76 88 83 88 94 105 108 94 105 108 111 119 127 122 134 144 129 144 153 131 144 168
++131 144 168 150 147 171 150 168 183 150 168 183 150 168 183 166 176 200 166 176 200 166 176 200
++166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 185 202 202 166 176 200 194 199 226
++166 176 200 194 199 226 166 176 200 185 202 202 185 202 202 194 199 226 166 176 200 194 199 226
++194 199 226 166 176 200 194 199 226 188 180 202 194 199 226 185 202 202 194 199 226 185 202 202
++194 199 226 185 202 202 166 176 200 185 202 202 166 176 200 185 202 202 166 176 200 188 180 202
++166 176 200 166 176 200 166 176 200 166 176 200 166 174 181 150 168 183 150 168 183 150 147 171
++150 147 171 129 144 153 122 134 144 111 122 142 95 95 116 77 90 100 60 63 87 43 42 50
++34 40 43 31 35 35 32 39 24 36 35 37 47 47 21 47 49 42 55 39 37 60 49 42
++75 56 53 88 73 31 88 73 62 98 106 55 120 63 71 117 112 45 117 99 86 117 99 86
++117 99 86 117 114 76 117 99 86 168 102 88 120 63 71 117 114 76 120 63 71 101 83 74
++101 83 74 88 73 62 75 73 58 75 73 58 75 63 62 64 70 48 59 55 55 52 55 48
++42 47 42 42 47 42 43 42 50 48 50 48 43 55 48 43 55 48 50 61 48 59 55 55
++53 63 61 53 63 61 59 69 70 59 69 70 75 81 82 75 81 82 78 98 90 90 98 89
++94 105 108 94 105 108 95 119 107 95 119 107 112 96 108 112 123 108 112 123 108 111 119 127
++112 123 108 111 119 127 111 119 127 112 123 108 111 119 127 94 105 108 112 123 108 111 119 127
++111 119 127 138 126 108 121 143 132 141 116 139 145 140 145 145 140 145 146 162 145 166 174 181
++166 180 164 166 180 164 188 180 202 166 174 181 185 202 202 185 202 202 185 202 202 208 215 180
++185 202 202 185 202 202 189 165 168 166 174 181 166 180 164 166 156 164 150 171 159 148 160 159
++148 160 159 166 156 164 150 171 159 166 180 164 166 156 164 166 180 164 166 180 164 166 174 181
++185 202 202 185 202 202 185 202 202 225 222 201 232 215 228 231 239 247 201 216 228 150 147 171
++94 105 108 75 81 90 46 59 71 32 40 58 35 47 50 35 47 50 43 42 50 48 50 48
++43 42 50 43 55 48 43 42 50 43 42 50 43 42 50 35 47 50 43 42 50 34 40 43
++34 40 43 34 40 43 24 30 43 28 35 38 28 35 38 28 35 38 23 30 35 12 18 30
++23 30 35 12 18 30 23 30 35 12 18 30 23 30 35 28 35 38 45 57 61 60 63 87
++60 81 83 77 90 100 95 108 128 119 117 138 129 144 153 131 144 168 150 147 171 150 168 183
++166 174 181 166 176 200 188 180 202 188 180 202 194 199 226 201 216 228 226 221 247 231 239 247
++235 238 247 240 251 247 240 251 247 251 251 247 240 251 247 240 251 247 240 251 247 246 237 247
++240 251 247 235 238 247 240 251 247 246 237 247 235 238 247 235 238 247 231 239 247 221 238 247
++232 215 228 201 216 228 194 199 226 166 176 200 166 156 164 111 119 127 75 81 82 59 69 70
++59 69 70 63 59 71 60 81 83 75 72 67 59 69 70 65 63 61 63 59 71 65 63 61
++65 63 61 59 55 55 59 57 61 59 57 61 65 63 61 59 57 61 59 57 61 59 57 61
++53 63 61 59 55 55 59 57 61 59 55 55 54 57 61 59 55 55 42 47 42 75 63 62
++121 143 132 222 171 182 225 222 201 208 215 180 217 168 156 177 169 143 189 165 168 197 171 123
++177 169 143 217 168 156 177 169 143 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156
++222 171 182 208 215 180 208 215 180 168 146 127 75 72 67 22 24 13 14 16 17 14 16 17
++23 20 24 23 20 24 22 25 24 22 23 31 25 30 29 25 30 29 26 30 28 26 30 28
++26 30 28 30 30 34 30 30 34 22 25 24 23 20 24 26 25 15 22 25 24 23 20 24
++23 20 24 23 20 24 22 25 24 22 24 13 22 24 13 26 25 15 26 25 15 26 25 15
++22 24 13 22 24 13 15 17 7 22 24 13 23 18 22 15 22 17 23 18 22 14 16 17
++14 16 17 23 20 24 22 25 24 30 30 34 31 35 35 36 35 37 30 30 34 26 30 28
++26 24 32 22 25 24 26 30 28 30 30 34 30 30 34 23 20 24 7 12 13 3 3 1
++3 3 1 3 3 1 3 4 9 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 7 12 13 7 12 13 14 16 17
++14 16 17 23 18 22 22 25 24 23 20 24 23 20 24 23 20 24 14 16 17 23 18 22
++12 18 20 23 18 22 12 18 20 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24
++22 25 24 22 25 24 22 25 24 26 24 32 22 25 24 22 25 24 26 30 28 26 24 32
++26 30 28 22 25 24 22 23 31 22 25 24 22 25 24 26 24 32 26 30 28 26 30 28
++26 24 32 26 30 28 26 24 32 26 30 28 25 30 29 26 30 28 30 30 34 30 30 34
++28 30 35 33 39 38 35 47 50 43 42 50 48 50 48 45 57 61 54 57 61 53 63 61
++54 57 61 59 69 70 54 57 61 54 57 61 54 57 61 35 47 50 43 42 50 34 40 43
++34 40 43 42 41 42 34 40 43 33 39 38 34 40 43 43 55 48 46 59 71 59 69 70
++59 69 70 59 69 70 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 45 57 61
++50 61 48 43 55 48 45 57 61 48 50 48 45 57 61 43 55 48 45 57 61 48 50 48
++45 57 61 48 50 48 43 55 48 43 55 48 43 55 48 45 57 61 43 55 48 52 55 48
++45 57 61 52 55 48 50 61 48 45 57 61 50 61 48 53 63 61 50 61 48 53 63 61
++53 63 61 53 63 61 65 63 61 59 69 70 65 63 61 59 69 70 59 69 70 75 72 67
++59 69 70 75 72 67 75 72 67 59 69 70 59 69 70 65 63 61 59 69 70 65 63 61
++75 72 67 59 69 70 65 63 61 60 82 70 75 72 67 59 69 70 75 72 67 75 81 76
++75 72 67 60 82 70 75 81 76 75 81 76 59 69 70 75 81 76 75 81 76 60 81 83
++75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 75 81 82 88 83 74 75 81 76
++88 83 74 75 81 82 88 83 88 87 99 72 88 83 88 87 99 72 88 83 88 87 99 72
++88 83 88 88 83 74 78 98 90 88 83 74 75 81 76 88 83 74 75 81 69 75 81 69
++75 72 67 75 72 67 75 77 62 75 72 67 75 72 67 65 63 61 65 63 61 65 63 61
++59 79 61 65 63 61 53 63 61 65 63 61 53 63 61 53 63 61 53 63 61 53 63 61
++53 63 61 59 69 70 53 63 61 46 59 71 59 69 70 59 69 70 59 69 70 59 69 70
++60 82 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 54 57 61 31 35 35 14 16 17 14 16 17 12 18 20
++23 18 22 23 18 22 23 18 22 23 18 22 15 22 17 23 20 24 23 20 24 22 25 24
++22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24 22 24 13
++26 25 15 52 30 15 117 99 86 117 99 86 101 83 74 55 39 18 49 13 16 49 13 16
++76 18 19 76 46 20 76 46 20 122 49 24 117 112 45 168 102 88 117 114 76 88 73 62
++75 73 58 88 83 74 88 83 74 75 81 69 75 72 67 75 81 69 75 72 67 75 72 67
++75 72 67 75 72 67 59 79 61 65 63 61 59 69 70 65 63 61 59 69 70 75 72 67
++59 69 70 60 82 70 75 81 76 60 81 83 75 81 82 75 81 82 75 81 90 78 98 90
++90 98 89 77 90 100 90 98 89 94 105 108 94 105 108 94 105 108 94 105 108 95 108 128
++112 123 108 94 105 108 112 123 108 112 96 108 112 123 108 95 119 107 112 96 108 94 105 108
++94 105 108 98 113 84 94 105 108 95 91 100 94 105 108 94 105 108 95 91 100 90 98 89
++90 98 89 90 98 89 88 83 74 78 98 90 88 83 74 88 83 88 75 81 76 88 83 74
++75 81 76 88 83 74 75 81 76 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 81 76 88 66 70 75 81 76 75 81 76 88 83 74 88 83 88 75 81 82
++88 83 88 78 98 90 77 90 100 90 98 89 77 90 100 94 105 108 94 105 108 94 105 108
++95 119 107 95 108 128 98 121 131 95 119 107 111 119 127 98 121 131 111 119 127 98 121 131
++111 122 142 111 122 142 121 143 132 98 121 131 121 143 132 111 122 142 121 143 132 111 122 142
++121 143 132 121 143 132 111 122 142 111 122 142 98 121 131 121 143 132 98 121 131 98 121 131
++98 121 131 95 119 107 95 108 128 94 105 108 94 105 108 77 91 115 78 98 90 75 81 90
++75 81 82 59 69 70 59 69 70 53 63 61 54 57 61 45 57 61 45 57 61 45 57 61
++48 50 48 43 55 48 48 50 48 45 57 61 48 50 48 45 57 61 48 50 48 48 50 48
++52 55 48 48 50 48 52 55 48 54 57 61 55 55 48 54 57 61 59 55 55 55 55 48
++59 55 55 59 55 55 55 55 48 59 55 55 55 55 48 55 55 48 59 55 55 59 55 55
++63 55 51 59 55 55 64 70 48 63 55 51 55 55 48 55 55 48 55 55 48 52 55 48
++48 50 48 51 49 42 47 49 42 47 49 42 47 44 42 47 44 42 47 44 42 36 35 37
++42 41 42 36 35 37 47 47 21 36 35 37 36 35 37 36 35 37 42 41 42 36 35 37
++36 35 37 36 35 37 42 41 42 42 41 42 48 44 48 48 50 48 48 44 48 48 50 48
++48 50 48 54 57 61 52 55 48 52 55 48 54 57 61 52 55 48 54 57 61 48 50 48
++54 57 61 48 50 48 43 55 48 48 50 48 43 42 50 42 47 42 42 41 42 33 39 38
++36 35 37 31 35 35 31 35 35 33 30 32 26 30 28 33 30 30 26 30 28 33 30 30
++33 30 30 31 35 35 36 35 37 36 35 37 42 41 42 35 46 43 42 47 42 43 42 50
++48 50 48 48 50 48 45 57 61 54 57 61 54 57 61 59 69 70 59 69 70 59 69 70
++
++75 81 76 75 81 82 95 91 100 112 96 108 119 117 138 119 117 138 122 134 144 150 144 154
++148 160 159 150 168 183 150 168 183 166 174 181 166 176 200 166 176 200 166 176 200 166 176 200
++185 202 202 166 176 200 194 199 226 166 176 200 185 202 202 166 176 200 194 199 226 166 176 200
++185 202 202 194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 194 199 226 185 202 202
++194 199 226 194 199 226 185 202 202 194 199 226 166 176 200 194 199 226 166 176 200 185 202 202
++166 176 200 188 180 202 166 176 200 188 180 202 185 202 202 166 176 200 185 202 202 166 176 200
++166 176 200 188 180 202 166 174 181 150 168 183 150 168 183 166 176 200 150 147 171 150 147 171
++131 144 168 129 144 153 119 117 138 111 122 142 95 95 116 77 90 100 59 69 70 43 55 48
++34 40 43 31 35 35 31 35 35 36 35 37 42 41 42 47 49 42 51 49 42 63 55 45
++63 55 45 75 63 62 88 73 62 88 73 62 101 83 74 117 99 86 120 63 71 168 102 88
++117 99 86 168 102 88 117 99 86 117 99 86 117 99 86 120 63 71 117 114 76 101 83 74
++88 73 62 88 73 62 88 73 62 75 56 53 64 70 48 65 63 61 64 70 48 52 55 48
++42 47 42 42 47 42 48 50 48 43 55 48 43 42 50 43 55 48 48 50 48 53 63 61
++65 63 61 75 81 76 75 81 82 90 98 89 94 105 108 94 105 108 112 123 108 111 119 127
++111 119 127 121 143 132 111 119 127 111 119 127 111 119 127 111 119 127 112 123 108 112 123 108
++112 123 108 94 105 108 112 96 108 94 105 108 112 123 108 111 119 127 111 119 127 121 143 132
++145 140 145 145 140 145 148 160 159 150 171 159 150 171 159 166 180 164 166 174 181 166 174 181
++185 202 202 185 202 202 185 202 202 208 215 180 225 222 201 201 216 228 225 222 201 185 202 202
++188 180 202 166 180 164 166 180 164 166 180 164 166 156 164 166 180 164 166 174 181 166 174 181
++166 174 181 166 180 164 166 156 164 148 160 159 148 160 159 166 156 164 148 160 159 166 156 164
++148 160 159 166 174 181 166 174 181 166 174 181 185 202 202 185 202 202 166 174 181 150 144 154
++98 121 131 95 91 100 46 59 71 43 42 50 45 57 61 45 57 61 45 57 61 43 42 50
++45 57 61 43 42 50 45 57 61 43 42 50 43 55 48 43 42 50 35 47 50 35 47 50
++29 34 50 24 30 43 24 30 43 24 30 43 24 30 43 24 30 43 29 34 50 29 34 50
++32 40 58 46 59 71 60 81 83 77 90 100 94 105 108 111 122 142 129 144 153 150 168 183
++166 176 200 185 202 202 201 216 228 232 215 228 208 221 247 226 221 247 221 238 247 231 239 247
++231 239 247 231 239 247 231 239 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247
++240 251 247 235 238 247 240 251 247 235 238 247 235 238 247 235 238 247 235 238 247 235 238 247
++235 238 247 240 251 247 235 238 247 240 251 247 235 238 247 240 251 247 235 238 247 240 251 247
++240 251 247 251 251 247 240 251 247 194 199 226 150 144 154 75 81 90 43 42 50 34 40 43
++42 38 42 48 50 48 59 57 61 63 59 71 75 72 67 63 59 71 65 63 61 59 57 61
++65 63 61 59 57 61 59 57 61 59 55 55 59 55 55 53 63 61 59 57 61 54 57 61
++52 55 48 54 57 61 50 61 48 52 55 48 48 50 48 42 41 42 51 49 42 99 93 84
++177 169 143 225 222 201 225 222 201 222 171 182 208 215 180 217 168 156 217 168 156 217 168 156
++189 165 168 217 168 156 208 215 180 217 168 156 208 215 180 222 171 182 214 214 134 208 215 180
++222 171 182 208 215 180 222 171 182 208 215 180 150 144 154 95 95 116 63 59 71 29 34 50
++12 18 30 12 18 30 12 18 30 22 23 31 23 30 35 28 30 35 25 30 29 25 30 29
++30 30 34 28 30 35 25 30 29 26 24 32 22 25 24 22 25 24 22 25 24 22 25 24
++23 20 24 23 18 22 15 22 17 22 24 13 23 18 22 22 24 13 14 16 17 15 17 7
++15 17 7 14 16 17 17 12 17 23 18 22 15 22 17 23 20 24 23 20 24 22 25 24
++22 25 24 22 25 24 25 30 29 30 30 34 31 35 35 31 35 35 31 35 35 30 30 34
++22 25 24 23 20 24 23 20 24 25 30 29 22 25 24 7 12 13 3 4 9 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 4 9 3 3 1 3 3 1 3 3 1 3 4 9 3 4 9 17 12 17 14 16 17
++14 16 17 14 16 17 14 16 17 23 18 22 14 16 17 15 22 17 23 18 22 23 20 24
++23 20 24 15 22 17 23 18 22 12 18 20 23 20 24 23 20 24 23 20 24 22 25 24
++26 24 32 22 25 24 22 25 24 22 25 24 26 24 32 22 25 24 26 24 32 26 30 28
++26 24 32 26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 26 24 32 26 30 28
++26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 25 30 29
++28 30 35 28 35 38 34 40 43 34 40 43 43 42 50 48 50 48 45 57 61 54 57 61
++54 57 61 59 57 61 59 69 70 54 57 61 45 57 61 48 50 48 35 47 50 34 40 43
++34 40 43 34 40 43 34 40 43 33 39 38 33 39 38 34 40 43 34 40 43 48 50 48
++54 57 61 59 69 70 59 69 70 59 69 70 53 63 61 53 63 61 45 57 61 53 63 61
++50 61 48 45 57 61 54 57 61 45 57 61 50 61 48 54 57 61 45 57 61 52 55 48
++45 57 61 50 61 48 45 57 61 54 57 61 50 61 48 45 57 61 50 61 48 45 57 61
++54 57 61 45 57 61 53 63 61 45 57 61 53 63 61 53 63 61 53 63 61 53 63 61
++65 63 61 59 69 70 59 79 61 59 69 70 59 69 70 59 69 70 59 69 70 75 72 67
++60 81 83 75 81 76 59 69 70 75 81 69 75 72 67 60 82 70 75 72 67 60 82 70
++75 72 67 60 82 70 75 72 67 75 72 67 60 82 70 75 72 67 60 82 70 75 81 76
++75 81 76 75 81 82 75 81 76 75 81 76 75 81 82 75 81 76 75 81 76 75 81 76
++75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 75 81 82
++88 83 88 87 99 72 88 83 88 88 83 88 88 83 74 88 83 88 88 83 74 88 83 88
++88 83 88 88 83 74 88 83 74 75 81 76 88 83 74 75 81 69 75 72 67 75 81 69
++75 72 67 75 72 67 65 63 61 59 79 61 75 72 67 59 79 61 65 63 61 59 79 61
++65 63 61 53 63 61 65 63 61 53 63 61 59 57 61 53 63 61 53 63 61 53 63 61
++53 63 61 46 59 71 59 79 61 59 69 70 59 69 70 59 69 70 59 69 70 60 82 70
++59 69 70 60 81 83 59 69 70 59 69 70 59 69 70 59 69 70 60 82 70 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 35 46 43 22 23 31 14 16 17 14 16 17
++23 20 24 15 22 17 23 18 22 12 18 20 23 18 22 23 20 24 22 25 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 26 24 32 22 25 24 23 20 24 23 18 22
++34 30 15 55 39 37 88 73 62 88 73 62 53 35 17 34 30 15 34 30 15 34 30 15
++34 30 15 26 25 15 26 25 15 33 30 30 63 55 45 75 73 58 88 83 74 88 73 62
++88 83 74 88 83 74 75 81 69 88 83 74 75 72 67 75 72 67 75 72 67 75 72 67
++65 63 61 59 69 70 65 63 61 59 69 70 75 72 67 60 82 70 75 81 76 75 81 76
++75 81 82 75 81 82 75 81 82 75 81 82 75 81 90 78 98 90 77 90 100 90 98 89
++95 91 100 94 105 108 94 105 108 94 105 108 94 105 108 95 119 107 111 119 127 95 119 107
++111 119 127 95 119 107 111 119 127 95 119 107 94 105 108 95 119 107 94 105 108 112 123 108
++94 105 108 94 105 108 94 105 108 94 105 108 98 113 84 95 91 100 94 105 108 90 98 89
++90 98 89 78 98 90 88 83 88 88 83 88 88 83 74 88 83 74 75 81 76 88 83 74
++88 66 70 75 81 76 88 66 70 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 81 76 75 72 67 75 81 82 75 81 82 88 69 84 88 83 88 75 81 90 88 83 88
++88 83 88 78 98 90 95 91 100 94 105 108 94 105 108 94 105 108 95 95 116 95 108 128
++98 121 131 111 119 127 98 121 131 98 121 131 98 121 131 111 119 127 121 143 132 111 122 142
++121 143 132 111 122 142 111 122 142 122 134 144 111 122 142 121 143 132 111 122 142 122 134 144
++111 122 142 111 122 142 121 143 132 98 121 131 121 143 132 98 121 131 98 121 131 111 119 127
++95 119 107 95 108 128 94 105 108 77 91 115 94 105 108 77 90 100 77 90 100 78 98 90
++60 81 83 59 69 70 59 69 70 54 57 61 45 57 61 45 57 61 52 55 48 45 57 61
++43 55 48 45 57 61 48 50 48 48 50 48 45 57 61 48 50 48 48 50 48 45 57 61
++52 55 48 52 55 48 54 57 61 52 55 48 59 55 55 59 55 55 55 55 48 59 55 55
++50 61 48 59 55 55 55 55 48 59 55 55 55 55 48 59 55 55 50 61 48 59 55 55
++64 70 48 55 55 48 63 55 51 55 55 48 55 55 48 55 55 48 55 55 48 53 46 48
++51 49 42 51 49 42 51 49 42 47 44 42 47 44 42 47 44 42 47 47 21 42 41 42
++36 35 37 42 41 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 42 41 42 36 35 37 42 41 42 42 47 42 48 50 48 48 50 48 48 50 48
++48 50 48 52 55 48 59 55 55 48 50 48 59 55 55 52 55 48 45 57 61 52 55 48
++52 55 48 48 50 48 48 50 48 48 50 48 42 47 42 42 47 42 42 41 42 33 39 38
++31 35 35 31 35 35 33 30 32 33 30 32 33 30 30 26 30 28 33 30 30 26 30 28
++33 30 30 31 35 35 31 35 35 33 39 38 33 39 38 42 41 42 42 47 42 43 42 50
++43 55 48 45 57 61 54 57 61 54 57 61 54 57 61 63 59 71 59 69 70 59 69 70
++
++75 64 82 75 81 90 95 91 100 94 105 108 111 119 127 119 117 138 129 144 153 131 144 168
++150 147 171 150 147 171 150 168 183 150 168 183 150 168 183 166 176 200 166 176 200 166 176 200
++166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 185 202 202 166 176 200 166 176 200
++194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 188 180 202 185 202 202 194 199 226
++166 176 200 194 199 226 166 176 200 194 199 226 194 199 226 185 202 202 194 199 226 166 176 200
++194 199 226 166 176 200 185 202 202 166 176 200 188 180 202 166 176 200 188 180 202 166 176 200
++166 176 200 166 176 200 166 176 200 166 176 200 150 168 183 150 168 183 150 168 183 150 147 171
++131 144 168 131 144 168 122 134 144 111 119 127 94 105 108 77 90 100 59 69 70 48 50 48
++34 40 43 31 35 35 31 35 35 32 39 24 33 39 38 47 44 42 51 49 42 63 55 45
++64 70 48 75 56 53 88 73 62 88 73 62 98 106 55 120 63 71 101 83 74 117 99 86
++117 114 76 120 63 71 117 99 86 120 63 71 117 112 45 101 83 74 101 83 74 101 83 74
++88 73 62 88 73 62 75 73 58 75 73 58 65 63 61 65 63 61 65 63 61 53 63 61
++48 50 48 35 46 43 35 46 43 42 47 42 52 55 48 54 57 61 75 81 76 95 91 100
++94 105 108 112 123 108 121 143 132 145 140 145 145 140 145 146 162 145 148 160 159 146 151 137
++121 143 132 117 142 111 111 119 127 112 123 108 112 123 108 112 96 108 94 105 108 94 105 108
++94 105 108 94 105 108 112 123 108 111 119 127 122 134 144 146 151 137 150 144 154 148 160 159
++166 180 164 166 174 181 166 174 181 188 180 202 185 202 202 185 202 202 194 199 226 208 215 180
++185 202 202 185 202 202 225 222 201 221 238 247 233 241 227 185 202 202 185 202 202 166 174 181
++166 180 164 166 174 181 166 180 164 166 174 181 166 180 164 188 180 202 185 202 202 185 202 202
++188 180 202 166 176 200 166 174 181 166 174 181 166 174 181 150 168 183 148 160 159 148 160 159
++150 144 154 126 147 144 111 119 127 121 143 132 126 147 144 145 140 145 129 144 153 122 134 144
++94 105 108 60 81 83 45 57 61 32 40 58 34 40 43 29 34 50 34 40 43 34 40 43
++34 40 43 34 40 43 34 40 43 34 40 43 34 40 43 28 35 38 28 35 38 29 34 50
++43 42 50 32 40 58 45 57 61 45 57 61 46 59 71 60 81 83 77 90 100 95 108 128
++111 122 142 129 144 153 150 147 171 166 176 200 185 202 202 201 216 228 201 216 228 231 239 247
++235 238 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247
++240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 235 238 247 231 239 247
++235 238 247 231 239 247 231 239 247 226 221 247 231 239 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 235 238 247 251 251 247
++240 251 247 208 221 247 166 174 181 95 108 128 60 63 87 29 34 50 12 18 20 7 10 17
++23 20 24 31 35 35 47 44 42 54 57 61 63 59 71 63 59 71 63 59 71 59 57 61
++59 57 61 59 57 61 59 55 55 59 55 55 59 55 55 54 57 61 57 43 51 54 57 61
++48 50 48 43 55 48 45 57 61 52 55 48 47 49 42 36 35 37 65 63 61 138 126 108
++188 180 202 225 222 201 225 222 201 208 215 180 208 215 180 217 168 156 208 215 180 217 168 156
++214 214 134 217 168 156 214 214 134 222 171 182 214 214 134 222 171 182 208 215 180 222 171 182
++208 215 180 222 171 182 208 215 180 208 215 180 201 216 228 188 180 202 150 168 183 122 134 144
++95 91 100 60 63 87 32 40 58 28 30 35 12 18 30 14 16 17 7 12 13 15 22 17
++22 25 24 28 30 35 28 30 35 25 30 29 26 30 28 26 30 28 26 30 28 22 25 24
++22 25 24 22 25 24 23 20 24 22 24 13 15 22 17 23 18 22 23 20 24 23 18 22
++17 12 17 15 22 17 22 25 24 23 20 24 22 25 24 22 25 24 22 25 24 25 30 29
++30 30 34 30 30 34 30 30 34 30 30 34 30 30 34 33 30 36 33 30 36 25 30 29
++23 18 22 12 18 20 22 25 24 26 24 32 15 22 17 3 4 9 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9
++3 4 9 3 3 1 3 4 9 3 3 1 3 4 9 13 4 7 7 12 13 7 12 13
++7 12 13 17 12 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 12 18 20
++23 20 24 23 18 22 14 16 17 14 16 17 23 20 24 22 25 24 23 20 24 22 25 24
++26 24 32 22 25 24 23 20 24 23 20 24 22 25 24 22 25 24 22 25 24 26 24 32
++26 30 28 30 30 34 33 30 30 30 30 34 30 30 34 33 30 32 26 24 32 26 30 28
++26 24 32 26 30 28 26 24 32 26 30 28 26 24 32 26 30 28 26 24 32 25 30 29
++28 30 35 28 30 35 31 35 35 28 35 38 34 40 43 43 42 50 48 50 48 54 57 61
++54 57 61 59 69 70 53 63 61 54 57 61 45 57 61 45 57 61 35 47 50 34 40 43
++34 40 43 34 40 43 34 40 43 34 40 43 34 40 43 34 40 43 28 35 38 31 35 35
++34 40 43 43 55 48 53 63 61 59 69 70 59 69 70 53 63 61 53 63 61 53 63 61
++53 63 61 53 63 61 53 63 61 50 61 48 53 63 61 53 63 61 54 57 61 53 63 61
++45 57 61 54 57 61 53 63 61 53 63 61 54 57 61 53 63 61 54 57 61 53 63 61
++53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 59 69 70
++53 63 61 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 75 81 76
++59 69 70 75 81 76 75 72 67 60 81 83 75 81 76 75 72 67 75 81 76 75 81 76
++75 72 67 75 81 76 60 82 70 75 81 76 59 69 70 75 81 76 75 81 76 75 81 76
++75 81 82 88 83 74 75 81 82 75 81 76 75 81 82 75 81 82 75 81 82 75 81 82
++75 81 82 75 81 76 75 81 76 75 81 76 88 83 74 75 81 76 75 81 82 87 99 72
++75 81 82 88 83 74 88 83 88 87 99 72 88 83 88 90 98 89 88 83 74 90 98 89
++75 81 82 90 98 89 75 81 76 75 81 69 75 81 76 75 81 69 75 81 76 75 72 67
++59 69 70 75 77 62 65 63 61 75 72 67 59 69 70 65 63 61 59 69 70 65 63 61
++59 79 61 65 63 61 53 63 61 65 63 61 53 63 61 53 63 61 53 63 61 53 63 61
++59 69 70 53 63 61 59 69 70 46 59 71 59 69 70 60 82 70 59 69 70 59 69 70
++60 81 83 59 69 70 59 69 70 60 82 70 59 69 70 59 69 70 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 45 57 61 28 30 35 12 18 20 14 16 17
++23 20 24 23 20 24 23 20 24 23 18 22 15 22 17 23 20 24 23 20 24 23 20 24
++23 20 24 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24
++33 30 30 34 30 15 52 30 35 33 30 30 26 25 15 28 13 18 23 20 24 26 30 28
++22 25 24 22 25 24 23 18 22 33 30 30 33 30 32 42 41 42 63 55 51 75 72 67
++88 83 74 88 83 74 88 83 74 75 81 69 75 81 69 75 81 69 75 81 69 59 69 70
++75 72 67 75 72 67 75 72 67 59 69 70 75 72 67 60 82 70 75 81 76 75 81 82
++60 81 83 75 81 82 75 81 90 75 81 90 77 90 100 77 90 100 90 98 89 77 90 100
++94 105 108 94 105 108 95 108 128 94 105 108 95 108 128 95 119 107 95 108 128 112 123 108
++95 108 128 111 119 127 95 119 107 111 119 127 112 123 108 95 108 128 112 123 108 94 105 108
++95 119 107 94 105 108 95 119 107 94 105 108 94 105 108 94 105 108 94 105 108 90 98 89
++95 91 100 90 98 89 88 83 88 87 99 72 88 83 88 88 83 88 88 83 74 75 81 76
++88 83 74 75 81 76 88 66 70 75 81 76 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 81 76 75 72 67 88 83 88 75 81 90 88 83 88 88 83 88 88 83 88
++78 98 90 77 90 100 94 105 108 77 90 100 94 105 108 94 105 108 95 108 128 95 119 107
++95 108 128 95 119 107 111 119 127 98 121 131 111 119 127 111 122 142 98 121 131 121 143 132
++111 122 142 111 122 142 121 143 132 111 122 142 121 143 132 122 134 144 122 134 144 111 122 142
++121 143 132 122 134 144 98 121 131 121 143 132 111 122 142 111 119 127 98 121 131 98 121 131
++98 121 131 95 108 128 95 119 107 77 91 115 94 105 108 77 90 100 77 90 100 75 81 90
++60 81 83 59 69 70 59 69 70 53 63 61 54 57 61 54 57 61 45 57 61 48 50 48
++45 57 61 43 55 48 45 57 61 48 50 48 45 57 61 48 50 48 48 50 48 48 50 48
++45 57 61 52 55 48 50 61 48 55 55 48 55 55 48 59 55 55 59 55 55 59 55 55
++50 61 48 59 55 55 55 55 48 59 55 55 55 55 48 55 55 48 59 55 55 55 55 48
++63 55 51 55 55 48 63 55 51 59 55 55 55 55 48 55 55 48 55 55 48 55 55 48
++52 55 48 51 49 42 51 49 42 47 44 42 42 47 42 47 44 42 42 41 42 47 44 42
++36 35 37 36 35 37 36 35 37 36 35 37 47 47 21 36 35 37 42 41 42 33 39 38
++36 35 37 36 35 37 42 41 42 42 41 42 42 41 42 48 44 48 48 50 48 48 50 48
++48 50 48 48 50 48 52 55 48 54 57 61 52 55 48 54 57 61 52 55 48 45 57 61
++52 55 48 45 57 61 48 50 48 48 50 48 43 42 50 42 41 42 42 41 42 33 39 38
++31 35 35 31 35 35 31 35 35 33 30 32 26 30 28 33 30 30 33 30 30 33 30 30
++26 30 28 31 35 35 33 30 32 36 35 37 36 35 37 42 41 42 42 47 42 43 42 50
++43 42 50 48 44 48 45 57 61 54 57 61 53 63 61 54 57 61 59 69 70 59 69 70
++
++75 72 67 75 81 82 95 91 100 94 105 108 111 119 127 119 117 138 122 134 144 129 144 153
++150 147 171 150 168 183 150 147 171 166 174 181 166 174 181 166 176 200 166 176 200 166 176 200
++166 176 200 166 176 200 185 202 202 166 176 200 194 199 226 166 176 200 166 176 200 194 199 226
++166 176 200 185 202 202 185 202 202 166 176 200 194 199 226 166 176 200 194 199 226 194 199 226
++185 202 202 194 199 226 194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 188 180 202
++166 176 200 185 202 202 166 176 200 185 202 202 166 176 200 185 202 202 166 176 200 166 176 200
++188 180 202 166 176 200 166 176 200 166 174 181 150 168 183 150 168 183 150 147 171 150 147 171
++131 144 168 129 144 153 122 134 144 111 119 127 95 95 116 75 81 90 59 69 70 35 47 50
++34 40 43 31 35 35 31 35 35 42 41 42 47 44 42 47 49 42 48 50 48 55 55 48
++63 55 51 75 73 58 88 73 62 88 73 62 120 63 71 101 83 74 117 112 45 120 63 71
++117 99 86 117 99 86 117 99 86 117 99 86 120 63 71 117 99 86 101 83 74 101 83 74
++88 73 62 88 73 62 88 73 62 75 73 58 63 55 51 64 70 48 50 61 48 50 61 48
++55 55 48 53 63 61 59 69 70 75 81 76 78 98 90 112 123 108 122 134 144 146 151 137
++166 156 164 166 180 164 166 174 181 166 174 181 185 202 202 166 174 181 166 180 164 122 134 144
++112 123 108 95 91 100 78 98 90 75 81 76 59 69 70 75 81 76 90 98 89 112 123 108
++112 123 108 146 151 137 148 160 159 166 180 164 166 174 181 166 174 181 185 202 202 208 215 180
++201 216 228 225 222 201 201 216 228 225 222 201 225 222 201 201 216 228 225 222 201 201 216 228
++225 222 201 232 215 228 201 216 228 201 216 228 166 174 181 166 156 164 146 162 145 150 144 154
++150 171 159 166 180 164 166 174 181 185 202 202 185 202 202 225 222 201 185 202 202 185 202 202
++185 202 202 185 202 202 185 202 202 188 180 202 188 180 202 188 180 202 188 180 202 166 174 181
++150 171 159 150 144 154 122 134 144 111 119 127 112 123 108 111 119 127 111 119 127 111 119 127
++77 90 100 59 69 70 63 59 71 45 57 61 45 57 61 45 57 61 45 57 61 45 57 61
++48 50 48 45 57 61 45 57 61 45 57 61 45 57 61 46 59 71 60 81 83 77 90 100
++94 105 108 111 122 142 119 117 138 111 122 142 122 134 144 150 147 171 185 202 202 194 199 226
++201 216 228 226 221 247 221 238 247 240 251 247 240 251 247 251 251 247 251 251 247 240 251 247
++240 251 247 240 251 247 240 251 247 235 238 247 235 238 247 235 238 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 221 238 247 231 239 247 221 238 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 235 238 247 240 251 247 235 238 247
++185 202 202 122 134 144 54 57 61 12 18 30 3 4 9 7 10 17 7 10 17 7 10 17
++14 16 17 23 20 24 25 30 29 37 35 43 48 50 48 54 57 61 59 57 61 59 57 61
++59 57 61 59 55 55 54 57 61 52 55 48 52 55 48 48 50 48 54 57 61 48 44 48
++48 50 48 43 55 48 48 50 48 48 50 48 42 47 42 36 35 37 99 93 84 177 169 143
++208 215 180 225 222 201 222 171 182 222 171 182 217 168 156 217 168 156 217 168 156 208 215 180
++217 168 156 208 215 180 222 171 182 214 214 134 222 171 182 208 215 180 214 214 134 225 222 201
++222 171 182 208 215 180 217 168 156 188 180 202 225 222 201 232 215 228 226 221 247 232 215 228
++185 202 202 166 174 181 119 117 138 94 105 108 75 81 82 54 57 61 28 35 38 26 24 32
++22 25 24 12 18 30 23 20 24 22 25 24 23 20 24 22 25 24 26 24 32 26 30 28
++26 24 32 25 30 29 22 25 24 22 25 24 26 25 15 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 33 30 30 26 30 28 30 30 34
++30 30 34 31 35 35 31 35 35 30 30 34 26 30 28 30 30 34 26 30 28 23 20 24
++14 16 17 15 22 17 23 20 24 22 25 24 7 12 13 3 4 9 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 4 9
++7 12 13 3 4 9 3 4 9 3 3 1 3 4 9 7 12 13 7 12 13 17 12 17
++17 12 17 7 12 13 17 12 17 14 16 17 14 16 17 17 12 17 14 16 17 23 18 22
++15 22 17 14 16 17 14 16 17 17 12 17 14 16 17 23 18 22 15 22 17 23 20 24
++23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 23 20 24
++22 25 24 22 25 24 25 30 29 26 30 28 30 30 34 26 30 28 25 30 29 26 24 32
++33 30 32 33 30 30 26 30 28 26 30 28 33 30 30 25 30 29 26 24 32 30 30 34
++25 30 29 28 30 35 28 30 35 25 30 29 28 35 38 43 42 50 45 57 61 45 57 61
++52 55 48 54 57 61 54 57 61 54 57 61 54 57 61 48 50 48 48 50 48 43 42 50
++35 47 50 43 42 50 34 40 43 34 40 43 35 46 43 42 41 42 34 40 43 30 30 34
++28 30 35 33 39 38 43 55 48 53 63 61 53 63 61 59 69 70 53 63 61 53 63 61
++53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61
++53 63 61 53 63 61 50 61 48 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61
++53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 59 69 70 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 75 72 67 60 82 70 75 81 76 59 69 70
++75 81 82 75 81 76 75 81 82 75 81 76 75 81 76 75 81 76 75 81 76 75 81 76
++75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 75 81 82
++75 81 82 88 83 88 75 81 82 88 83 88 75 81 82 75 81 82 78 98 90 75 81 76
++75 81 82 75 81 82 75 81 82 75 99 72 75 81 82 78 98 90 75 81 76 88 83 88
++88 83 74 88 83 88 78 98 90 88 83 74 88 83 88 88 83 74 78 98 90 88 83 74
++88 83 74 88 83 74 75 81 76 88 83 74 75 81 69 75 81 76 75 72 67 75 72 67
++75 72 67 75 72 67 65 63 61 75 77 62 65 63 61 59 79 61 65 63 61 59 79 61
++65 63 61 53 63 61 65 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61
++53 63 61 59 69 70 53 63 61 59 69 70 59 69 70 59 69 70 60 81 83 59 69 70
++59 69 70 60 81 83 59 69 70 60 81 83 59 69 70 60 82 70 59 69 70 59 69 70
++46 59 71 59 69 70 59 69 70 59 69 70 53 63 61 43 42 50 25 30 29 15 22 17
++23 20 24 15 22 17 23 20 24 23 20 24 12 18 20 14 16 17 15 22 17 23 20 24
++22 25 24 23 20 24 23 20 24 22 25 24 22 25 24 22 25 24 23 20 24 23 20 24
++23 20 24 28 13 18 22 24 13 26 12 13 26 25 15 26 25 15 33 30 30 23 18 22
++22 25 24 33 30 30 34 30 15 33 30 30 33 30 30 33 30 30 51 49 42 75 72 67
++88 83 74 75 81 76 88 83 74 75 72 67 88 83 74 75 72 67 75 72 67 75 72 67
++75 72 67 59 69 70 75 81 76 75 81 69 75 81 76 75 81 76 75 81 82 75 81 90
++78 98 90 78 98 90 77 90 100 78 98 90 77 90 100 94 105 108 94 105 108 94 105 108
++94 105 108 94 105 108 94 105 108 111 119 127 111 119 127 111 119 127 111 119 127 95 119 107
++111 119 127 95 119 107 111 119 127 95 108 128 95 119 107 111 119 127 94 105 108 112 123 108
++94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 90 98 89 95 91 100
++78 98 90 90 98 89 90 98 89 88 83 88 88 83 88 75 81 76 88 83 74 75 81 76
++88 66 70 75 81 69 88 83 74 75 72 67 75 72 67 75 72 67 75 72 67 75 81 76
++75 72 67 75 81 76 75 64 82 75 81 76 88 83 88 75 81 90 88 83 88 88 83 88
++77 90 100 95 91 100 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 95 108 128
++98 121 131 98 121 131 98 121 131 98 121 131 111 119 127 121 143 132 111 122 142 122 134 144
++122 134 144 122 134 144 111 122 142 122 134 144 111 122 142 121 143 132 111 122 142 122 134 144
++111 122 142 111 122 142 121 143 132 98 121 131 98 121 131 98 121 131 98 121 131 98 121 131
++95 119 107 95 108 128 94 105 108 77 91 115 94 105 108 77 90 100 75 81 90 60 81 83
++75 81 82 59 69 70 59 69 70 54 57 61 53 63 61 45 57 61 54 57 61 45 57 61
++52 55 48 45 57 61 52 55 48 45 57 61 52 55 48 45 57 61 48 50 48 52 55 48
++52 55 48 52 55 48 54 57 61 55 55 48 59 55 55 55 55 48 59 55 55 50 61 48
++59 55 55 55 55 48 59 55 55 55 55 48 59 55 55 55 55 48 55 55 48 55 55 48
++55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48 55 55 48
++53 46 48 47 49 42 47 49 42 47 44 42 47 44 42 42 41 42 47 47 21 42 41 42
++36 35 37 47 47 21 36 35 37 36 35 37 36 35 37 42 41 42 36 35 37 36 35 37
++36 35 37 33 39 38 36 35 37 42 47 42 47 44 42 48 44 48 48 50 48 48 50 48
++48 50 48 54 57 61 52 55 48 59 55 55 59 55 55 48 50 48 54 57 61 48 50 48
++54 57 61 48 50 48 48 50 48 48 50 48 42 47 42 42 47 42 42 41 42 33 39 38
++31 35 35 31 35 35 33 30 32 33 30 30 33 30 30 26 30 28 33 30 30 26 30 28
++26 30 28 33 30 30 33 30 30 31 35 35 33 39 38 42 41 42 35 46 43 43 42 50
++48 50 48 45 57 61 54 57 61 54 57 61 54 57 61 63 59 71 59 69 70 59 69 70
++
++75 64 82 75 81 82 95 91 100 95 95 116 111 119 127 122 134 144 122 134 144 131 144 168
++148 160 159 150 147 171 150 168 183 150 168 183 150 168 183 150 168 183 166 176 200 166 176 200
++185 202 202 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 185 202 202 166 176 200
++194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 188 180 202 194 199 226 166 176 200
++194 199 226 166 176 200 194 199 226 194 199 226 166 176 200 194 199 226 185 202 202 188 180 202
++185 202 202 166 176 200 194 199 226 166 176 200 185 202 202 166 176 200 185 202 202 166 176 200
++166 176 200 166 176 200 166 174 181 166 176 200 150 168 183 150 168 183 150 168 183 150 147 171
++131 144 168 129 144 153 111 122 142 98 121 131 95 95 116 77 90 100 63 59 71 35 47 50
++34 40 43 28 35 38 33 39 38 42 41 42 42 47 42 47 49 42 48 50 48 55 55 48
++55 55 48 75 56 53 75 73 58 88 73 62 88 73 62 101 83 74 101 83 74 117 99 86
++117 99 86 117 99 86 120 63 71 117 99 86 117 99 86 101 83 74 101 83 74 101 83 74
++101 83 74 88 73 62 75 73 58 75 73 58 65 63 61 53 63 61 55 55 48 53 63 61
++75 81 76 90 98 89 112 123 108 121 143 132 150 144 154 166 180 164 166 180 164 188 180 202
++185 202 202 185 202 202 185 202 202 185 202 202 225 222 201 185 202 202 166 156 164 94 105 108
++53 63 61 43 42 50 35 46 43 26 30 28 31 35 35 65 63 61 95 119 107 146 151 137
++166 180 164 166 174 181 185 202 202 185 202 202 225 222 201 225 222 201 201 216 228 225 222 201
++201 216 228 233 241 227 201 216 228 233 241 227 201 216 228 225 222 201 185 202 202 225 222 201
++201 216 228 201 216 228 185 202 202 146 151 137 112 123 108 121 143 132 148 160 159 166 180 164
++166 174 181 185 202 202 225 222 201 201 216 228 233 241 227 201 216 228 221 238 247 232 215 228
++221 238 247 232 215 228 201 216 228 201 216 228 201 216 228 201 216 228 201 216 228 201 216 228
++185 202 202 166 176 200 166 174 181 150 168 183 148 160 159 126 147 144 111 119 127 111 119 127
++111 119 127 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 95 95 116 94 105 108
++95 95 116 94 105 108 95 95 116 95 95 116 111 119 127 111 122 142 150 147 171 166 174 181
++185 202 202 194 199 226 194 199 226 201 216 228 232 215 228 221 238 247 231 239 247 240 251 247
++240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247
++221 238 247 221 238 247 221 238 247 231 239 247 221 238 247 231 239 247 221 238 247 221 238 247
++231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 231 239 247 235 238 247 246 237 247 235 238 247 166 176 200
++95 91 100 28 30 35 7 10 17 7 10 17 12 18 20 12 18 20 22 25 24 22 25 24
++15 22 17 23 20 24 23 20 24 23 20 24 26 30 28 37 35 43 48 50 48 48 50 48
++52 55 48 59 55 55 52 55 48 54 57 61 48 50 48 48 50 48 48 44 48 48 50 48
++43 42 50 42 47 42 47 49 42 33 39 38 42 47 42 55 39 37 112 123 108 208 215 180
++222 171 182 208 215 180 208 215 180 217 168 156 214 214 134 208 215 180 217 168 156 214 214 134
++217 168 156 217 168 156 208 215 180 222 171 182 214 214 134 225 222 201 222 171 182 217 168 156
++208 215 180 217 168 156 208 215 180 217 168 156 189 165 168 222 171 182 225 222 201 225 222 201
++232 215 228 233 241 227 232 215 228 185 202 202 188 180 202 150 144 154 111 119 127 75 81 90
++35 47 50 22 23 31 12 18 30 12 18 30 12 18 20 23 20 24 22 25 24 22 25 24
++22 23 31 22 25 24 26 24 32 22 25 24 22 25 24 22 25 24 22 25 24 26 30 28
++33 30 30 26 30 28 26 24 32 22 25 24 25 30 29 25 30 29 30 30 34 26 30 28
++30 30 34 31 35 35 31 35 35 31 35 35 26 30 28 26 30 28 22 25 24 23 18 22
++15 22 17 23 18 22 23 18 22 7 12 13 3 4 9 3 4 9 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 7 12 13 17 12 17
++7 12 13 13 4 7 3 3 1 3 4 9 3 3 1 7 12 13 13 4 7 7 12 13
++14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 14 16 17 23 20 24
++23 20 24 23 18 22 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17
++15 22 17 23 18 22 23 20 24 23 20 24 15 22 17 23 18 22 15 22 17 14 16 17
++14 16 17 14 16 17 23 18 22 23 20 24 22 25 24 26 24 32 26 30 28 26 30 28
++30 30 34 30 30 34 30 30 34 26 24 32 26 30 28 26 24 32 33 30 30 26 30 28
++28 30 35 25 30 29 28 30 35 25 30 29 31 35 35 35 46 43 48 50 48 48 50 48
++35 47 50 48 50 48 43 42 50 45 57 61 48 50 48 45 57 61 45 57 61 54 57 61
++54 57 61 45 57 61 35 47 50 34 40 43 34 40 43 34 40 43 42 41 42 37 35 43
++36 35 37 31 35 35 28 30 35 33 39 38 45 57 61 65 63 61 59 69 70 59 69 70
++53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61
++53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61
++54 57 61 53 63 61 53 63 61 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70
++59 69 70 59 69 70 60 82 70 75 81 76 60 81 83 75 64 82 75 81 76 75 81 82
++75 81 82 75 81 82 75 81 76 75 81 76 75 81 76 75 81 82 75 81 76 75 81 76
++75 81 82 75 81 82 75 81 82 75 81 76 75 81 82 75 81 82 75 81 82 75 81 82
++88 83 88 75 81 82 78 98 90 75 81 82 75 99 72 88 83 88 75 81 82 78 98 90
++75 81 76 78 98 90 75 81 82 78 98 90 75 81 82 88 83 74 75 81 82 75 81 76
++78 98 90 75 81 82 88 83 74 88 83 88 75 81 82 90 98 89 88 83 74 88 83 88
++88 83 74 88 83 88 88 83 74 75 81 76 75 81 76 75 81 69 75 81 69 75 72 67
++75 77 62 59 69 70 75 73 58 59 69 70 75 72 67 59 69 70 65 63 61 65 63 61
++59 79 61 65 63 61 53 63 61 53 63 61 53 63 61 53 63 61 59 79 61 53 63 61
++53 63 61 46 59 71 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70
++60 81 83 59 69 70 60 81 83 59 69 70 60 81 83 59 69 70 60 82 70 59 69 70
++60 82 70 59 69 70 59 69 70 59 69 70 59 69 70 45 57 61 28 35 38 22 25 24
++12 18 20 12 18 20 15 22 17 22 25 24 23 20 24 23 18 22 14 16 17 23 20 24
++23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 23 20 24
++22 25 24 26 25 15 23 20 24 22 24 13 22 25 24 23 20 24 23 20 24 26 25 15
++22 25 24 26 30 28 33 30 30 36 35 37 32 39 24 33 30 30 48 50 48 75 72 67
++88 83 74 88 83 74 75 81 76 88 83 74 75 81 69 75 81 69 75 81 69 75 72 67
++75 81 76 75 81 76 75 81 76 75 81 76 75 81 82 75 81 82 75 81 82 75 81 82
++77 90 100 78 98 90 95 91 100 77 90 100 90 98 89 94 105 108 94 105 108 94 105 108
++94 105 108 95 119 107 111 119 127 95 108 128 95 119 107 98 121 131 111 119 127 98 121 131
++111 119 127 111 119 127 95 119 107 111 119 127 95 119 107 111 119 127 95 119 107 111 119 127
++94 105 108 112 123 108 112 96 108 94 105 108 112 96 108 94 105 108 94 105 108 90 98 89
++95 91 100 90 98 89 90 98 89 88 83 88 90 98 89 88 83 88 75 81 76 88 83 74
++75 81 76 88 66 70 75 72 67 88 66 70 75 81 76 75 72 67 75 72 67 75 72 67
++75 72 67 75 81 76 75 81 76 88 83 74 75 81 82 88 83 88 75 81 90 88 83 88
++90 98 89 95 91 100 77 90 100 95 91 100 95 95 116 94 105 108 94 105 108 95 108 128
++94 105 108 98 121 131 111 119 127 98 121 131 98 121 131 98 121 131 121 143 132 98 121 131
++122 134 144 111 122 142 121 143 132 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144
++122 134 144 121 143 132 111 122 142 111 122 142 122 134 144 98 121 131 111 119 127 98 121 131
++98 121 131 95 108 128 95 108 128 94 105 108 77 90 100 77 90 100 75 81 90 75 81 82
++60 63 87 60 81 83 59 69 70 46 59 71 45 57 61 53 63 61 53 63 61 45 57 61
++52 55 48 45 57 61 45 57 61 50 61 48 45 57 61 43 55 48 52 55 48 45 57 61
++52 55 48 45 57 61 52 55 48 59 55 55 55 55 48 59 55 55 59 55 55 59 55 55
++50 61 48 59 55 55 55 55 48 59 55 55 55 55 48 55 55 48 52 55 48 55 55 48
++55 55 48 55 55 48 63 55 45 55 55 48 55 55 48 51 49 42 51 49 42 53 46 48
++51 49 42 51 49 42 47 44 42 42 47 42 47 47 21 42 41 42 42 41 42 42 41 42
++42 41 42 36 35 37 36 35 37 32 39 24 42 41 42 36 35 37 36 35 37 36 35 37
++36 35 37 42 41 42 36 35 37 42 41 42 42 47 42 42 47 42 48 50 48 48 50 48
++48 50 48 48 50 48 54 57 61 48 50 48 52 55 48 54 57 61 52 55 48 59 55 55
++52 55 48 48 50 48 43 55 48 48 50 48 43 42 50 42 47 42 42 41 42 33 39 38
++36 35 37 36 35 37 31 35 35 33 30 32 26 30 28 33 30 30 26 30 28 26 30 28
++26 30 28 26 30 28 26 30 28 33 30 30 31 35 35 33 39 38 42 41 42 42 47 42
++43 42 50 48 50 48 45 57 61 54 57 61 54 57 61 53 63 61 63 59 71 59 69 70
++
++59 69 70 75 81 82 95 91 100 94 105 108 111 119 127 119 117 138 122 134 144 129 144 153
++150 147 171 148 160 159 150 168 183 150 168 183 166 176 200 166 176 200 166 176 200 166 176 200
++166 176 200 166 176 200 166 176 200 194 199 226 166 176 200 166 176 200 166 176 200 166 176 200
++166 176 200 166 176 200 166 176 200 194 199 226 166 176 200 194 199 226 166 176 200 194 199 226
++188 180 202 194 199 226 166 176 200 194 199 226 194 199 226 166 176 200 194 199 226 166 176 200
++194 199 226 166 176 200 166 176 200 188 180 202 166 176 200 188 180 202 166 176 200 166 176 200
++185 202 202 166 176 200 150 168 183 150 168 183 150 168 183 150 147 171 150 168 183 150 147 171
++131 144 168 129 144 153 111 122 142 111 122 142 77 91 115 75 81 90 46 59 71 45 57 61
++34 40 43 34 40 43 34 40 43 42 41 42 42 47 42 42 47 42 48 50 48 55 55 48
++55 55 48 64 70 48 75 56 53 75 73 58 88 73 62 88 73 62 120 63 71 101 83 74
++120 63 71 117 99 86 117 99 86 120 63 71 101 83 74 101 83 74 101 83 74 101 83 74
++88 73 62 88 73 62 75 63 62 63 55 51 50 61 48 75 73 58 90 98 89 95 119 107
++121 143 132 148 160 159 166 180 164 166 174 181 185 202 202 185 202 202 225 222 201 185 202 202
++225 222 201 225 222 201 201 216 228 232 215 228 201 216 228 185 202 202 145 140 145 75 72 67
++25 30 29 7 12 13 3 4 9 7 12 13 33 39 38 88 83 88 146 162 145 188 180 202
++208 215 180 201 216 228 225 222 201 233 241 227 233 241 227 201 216 228 233 241 227 233 241 227
++233 241 227 233 241 227 225 222 201 201 216 228 225 222 201 185 202 202 225 222 201 201 216 228
++225 222 201 150 171 159 94 105 108 78 98 90 111 119 127 148 160 159 166 174 181 185 202 202
++225 222 201 201 216 228 233 241 227 201 216 228 233 241 227 233 241 227 221 238 247 233 241 227
++221 238 247 221 238 247 221 238 247 233 241 227 221 238 247 221 238 247 233 241 227 226 221 247
++201 216 228 232 215 228 201 216 228 185 202 202 166 176 200 166 174 181 150 168 183 150 171 159
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 176 200 166 174 181
++166 174 181 166 176 200 166 176 200 185 202 202 188 180 202 194 199 226 201 216 228 221 238 247
++221 238 247 231 239 247 231 239 247 240 251 247 231 239 247 240 251 247 240 251 247 240 251 247
++235 238 247 240 251 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247
++221 238 247 221 238 247 221 238 247 221 238 247 231 239 247 231 239 247 231 239 247 221 238 247
++221 238 247 221 238 247 221 238 247 221 238 247 221 238 247 231 239 247 221 238 247 226 221 247
++231 239 247 221 238 247 231 239 247 231 239 247 231 239 247 221 238 247 226 221 247 231 239 247
++231 239 247 226 221 247 231 239 247 231 239 247 246 237 247 226 221 247 166 176 200 95 91 100
++23 30 35 7 10 17 12 18 20 26 24 32 28 30 35 28 30 35 22 25 24 22 25 24
++22 25 24 22 25 24 12 18 20 14 16 17 23 18 22 23 20 24 30 30 34 42 38 42
++47 44 42 48 50 48 48 50 48 59 55 55 48 50 48 48 50 48 48 50 48 48 44 48
++48 50 48 42 47 42 48 50 48 32 39 24 36 35 37 75 73 58 146 151 137 208 215 180
++208 215 180 222 171 182 217 168 156 214 214 134 217 168 156 217 168 156 208 215 180 217 168 156
++208 215 180 217 168 156 214 214 134 222 171 182 225 222 201 227 171 124 225 222 201 214 214 134
++225 222 201 222 171 182 208 215 180 208 215 180 208 215 180 222 171 182 208 215 180 225 222 201
++225 222 201 232 215 228 232 215 228 233 241 227 226 221 247 201 216 228 201 216 228 166 176 200
++131 144 168 111 119 127 60 81 83 37 35 43 12 18 30 7 12 13 7 12 13 23 20 24
++25 30 29 25 30 29 22 25 24 26 24 32 26 30 28 22 25 24 26 30 28 33 30 30
++30 30 34 30 30 34 26 30 28 26 24 32 25 30 29 25 30 29 25 30 29 25 30 29
++25 30 29 31 35 35 26 30 28 30 30 34 26 30 28 26 30 28 22 25 24 23 18 22
++14 16 17 14 16 17 14 16 17 13 4 7 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 13 4 7 7 12 13
++7 12 13 3 4 9 3 4 9 3 3 1 3 4 9 7 12 13 17 12 17 7 12 13
++17 12 17 7 12 13 14 16 17 17 12 17 7 12 13 17 12 17 15 22 17 23 20 24
++23 20 24 15 22 17 17 12 17 14 16 17 17 12 17 14 16 17 23 18 22 23 18 22
++23 18 22 12 18 20 15 22 17 14 16 17 23 18 22 12 18 20 23 18 22 12 18 20
++23 18 22 14 16 17 23 18 22 12 18 20 23 20 24 22 25 24 22 25 24 26 24 32
++26 30 28 25 30 29 23 20 24 22 25 24 23 18 22 23 20 24 22 25 24 30 30 34
++31 35 35 31 35 35 31 35 35 25 30 29 28 30 35 34 40 43 42 47 42 35 47 50
++42 41 42 34 40 43 43 42 50 48 50 48 45 57 61 54 57 61 54 57 61 54 57 61
++53 63 61 45 57 61 35 47 50 35 47 50 34 40 43 34 40 43 34 40 43 42 41 42
++34 40 43 37 35 43 28 30 35 28 30 35 33 39 38 54 57 61 59 69 70 59 69 70
++53 63 61 59 69 70 59 69 70 53 63 61 59 69 70 59 69 70 59 69 70 53 63 61
++53 63 61 53 63 61 65 63 61 59 69 70 53 63 61 59 69 70 53 63 61 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 60 81 83
++75 81 76 60 81 83 75 81 82 60 81 83 75 81 76 75 81 82 75 81 82 75 81 82
++75 81 82 75 81 82 75 81 82 88 83 74 75 81 82 75 81 82 75 81 82 75 81 82
++75 81 82 75 81 82 88 83 88 75 81 76 75 81 76 75 81 76 88 83 88 75 81 82
++78 98 90 88 83 74 88 83 88 75 81 82 88 83 88 75 81 82 78 98 90 88 83 74
++75 81 82 88 83 74 75 81 82 75 81 82 78 98 90 75 81 82 78 98 90 88 83 74
++88 83 88 88 83 88 78 98 90 88 83 74 90 98 89 88 83 74 75 81 82 87 99 72
++88 83 88 75 81 76 88 83 74 75 81 76 75 81 69 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 75 72 67 59 79 61 65 63 61 65 63 61 59 79 61 65 63 61
++53 63 61 65 63 61 53 63 61 53 63 61 53 63 61 59 79 61 53 63 61 53 63 61
++59 69 70 60 82 70 46 59 71 60 82 70 59 69 70 59 69 70 59 69 70 60 81 83
++59 69 70 59 69 70 60 81 83 60 82 70 59 69 70 60 81 83 46 59 71 60 82 70
++46 59 71 59 69 70 53 63 61 59 69 70 59 69 70 53 63 61 35 47 50 25 30 29
++12 18 20 12 18 20 23 20 24 23 20 24 15 22 17 23 18 22 23 20 24 15 22 17
++23 20 24 14 16 17 23 18 22 15 22 17 22 25 24 23 20 24 22 25 24 23 20 24
++23 20 24 22 25 24 23 18 22 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24
++22 25 24 26 30 28 29 35 19 33 30 30 36 35 37 42 41 42 55 55 48 75 72 67
++75 81 76 88 83 74 88 83 74 75 81 69 75 81 69 75 72 67 75 81 69 75 81 76
++75 72 67 75 81 76 75 81 76 75 81 82 75 81 82 75 81 82 78 98 90 88 83 88
++78 98 90 95 91 100 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 95 119 107
++98 121 131 111 119 127 98 121 131 111 119 127 111 119 127 98 121 131 111 119 127 111 119 127
++98 121 131 111 119 127 95 108 128 112 123 108 111 119 127 95 119 107 111 119 127 94 105 108
++111 119 127 95 119 107 94 105 108 94 105 108 94 105 108 98 113 84 95 91 100 94 105 108
++90 98 89 90 98 89 90 98 89 90 98 89 88 83 88 88 83 74 75 81 76 88 83 74
++75 72 67 88 83 74 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 81 76
++75 72 67 75 81 76 88 66 70 75 81 82 88 83 88 88 83 88 78 98 90 88 83 88
++77 90 100 95 91 100 94 105 108 94 105 108 94 105 108 94 105 108 95 108 128 95 119 107
++98 121 131 98 121 131 98 121 131 98 121 131 122 134 144 98 121 131 122 134 144 111 122 142
++126 147 144 111 122 142 122 134 144 111 122 142 126 147 144 111 122 142 126 147 144 98 121 131
++122 134 144 111 122 142 121 143 132 98 121 131 98 121 131 98 121 131 98 121 131 98 121 131
++95 108 128 95 119 107 94 105 108 77 91 115 77 90 100 77 90 100 60 81 83 60 81 83
++75 81 82 59 69 70 63 59 71 53 63 61 53 63 61 45 57 61 53 63 61 54 57 61
++45 57 61 54 57 61 50 61 48 52 55 48 45 57 61 52 55 48 45 57 61 52 55 48
++45 57 61 55 55 48 59 55 55 59 55 55 55 55 48 59 55 55 50 61 48 55 55 48
++59 55 55 50 61 48 55 55 48 55 55 48 55 55 48 52 55 48 53 46 48 52 55 48
++55 55 48 60 49 42 55 55 48 55 55 48 60 49 42 55 55 48 55 55 48 51 49 42
++51 49 42 51 49 42 42 47 42 42 47 42 42 41 42 42 41 42 36 35 37 42 41 42
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 47 47 21 36 35 37 36 35 37
++31 35 35 36 35 37 36 35 37 42 41 42 42 41 42 48 44 48 48 50 48 48 50 48
++48 50 48 48 50 48 52 55 48 54 57 61 59 55 55 52 55 48 54 57 61 48 50 48
++45 57 61 48 50 48 48 50 48 48 50 48 42 47 42 42 47 42 42 41 42 33 39 38
++36 35 37 31 35 35 33 30 30 33 30 32 33 30 30 26 30 28 26 30 28 33 30 30
++26 30 28 33 30 30 26 30 28 31 35 35 31 35 35 33 39 38 42 47 42 42 47 42
++43 42 50 45 57 61 45 57 61 54 57 61 54 57 61 53 63 61 59 69 70 59 69 70
++
++63 59 71 75 81 76 88 83 88 95 95 116 112 96 108 119 117 138 122 134 144 129 144 153
++131 144 168 150 147 171 150 147 171 150 168 183 166 174 181 150 168 183 166 176 200 166 176 200
++166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 185 202 202
++166 176 200 185 202 202 166 176 200 166 176 200 194 199 226 166 176 200 185 202 202 194 199 226
++166 176 200 194 199 226 185 202 202 194 199 226 166 176 200 194 199 226 166 176 200 185 202 202
++166 176 200 188 180 202 185 202 202 166 176 200 194 199 226 166 176 200 185 202 202 166 176 200
++166 176 200 166 176 200 166 176 200 166 174 181 150 168 183 150 168 183 150 147 171 131 144 168
++131 144 168 129 144 153 111 122 142 98 121 131 77 91 115 75 81 90 46 59 71 48 50 48
++35 47 50 34 40 43 35 46 43 42 41 42 42 47 42 42 47 42 48 50 48 55 55 48
++63 55 51 65 63 61 75 56 53 75 73 58 88 73 62 88 73 62 101 83 74 101 83 74
++101 83 74 101 83 74 101 83 74 101 83 74 117 99 86 101 83 74 101 83 74 88 73 62
++88 73 62 75 63 62 75 73 58 75 81 76 90 98 89 112 123 108 146 151 137 166 180 164
++188 180 202 185 202 202 208 215 180 201 216 228 225 222 201 201 216 228 225 222 201 201 216 228
++233 241 227 201 216 228 233 241 227 233 241 227 225 222 201 185 202 202 146 151 137 94 105 108
++53 63 61 28 30 35 12 18 20 15 22 17 50 61 48 112 123 108 166 174 181 208 215 180
++201 216 228 225 222 201 233 241 227 201 216 228 233 241 227 233 241 227 233 241 227 233 241 227
++201 216 228 233 241 227 201 216 228 185 202 202 185 202 202 225 222 201 201 216 228 185 202 202
++126 147 144 59 69 70 54 57 61 94 105 108 150 171 159 225 222 201 201 216 228 233 241 227
++221 238 247 233 241 227 233 241 227 233 241 227 232 215 228 221 238 247 233 241 227 231 239 247
++231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247
++240 251 247 231 239 247 221 238 247 233 241 227 201 216 228 185 202 202 201 216 228 201 216 228
++233 241 227 201 216 228 233 241 227 208 221 247 233 241 227 221 238 247 231 239 247 221 238 247
++221 238 247 221 238 247 221 238 247 221 238 247 231 239 247 240 251 247 240 251 247 240 251 247
++235 238 247 231 239 247 240 251 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247
++231 239 247 221 238 247 231 239 247 231 239 247 231 239 247 221 238 247 231 239 247 221 238 247
++231 239 247 231 239 247 231 239 247 221 238 247 231 239 247 221 238 247 221 238 247 221 238 247
++231 239 247 221 238 247 221 238 247 221 238 247 221 238 247 221 238 247 231 239 247 231 239 247
++231 239 247 226 221 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 226 221 247
++231 239 247 231 239 247 231 239 247 235 238 247 240 251 247 188 180 202 95 95 116 29 34 50
++7 10 17 24 30 43 37 35 43 34 40 43 34 40 43 28 35 38 28 30 35 23 30 35
++22 25 24 26 24 32 26 24 32 22 25 24 22 25 24 15 22 17 23 18 22 25 30 29
++30 30 34 36 35 37 42 41 42 48 44 48 48 50 48 48 44 48 48 44 48 43 42 50
++42 47 42 42 47 42 42 47 42 26 30 28 51 49 42 99 93 84 177 169 143 222 171 182
++208 215 180 217 168 156 214 214 134 222 171 182 214 214 134 217 168 156 217 168 156 208 215 180
++227 171 124 208 215 180 222 171 182 214 214 134 208 215 180 222 171 182 214 214 134 222 171 182
++217 168 156 208 215 180 217 168 156 208 215 180 222 171 182 208 215 180 208 215 180 222 171 182
++188 180 202 222 171 182 208 215 180 185 202 202 225 222 201 233 241 227 235 238 247 233 241 227
++232 215 228 201 216 228 166 174 181 122 134 144 94 105 108 54 57 61 22 23 31 12 18 20
++12 18 20 22 23 31 22 23 31 26 24 32 26 24 32 26 30 28 26 30 28 26 30 28
++33 30 32 30 30 34 30 30 34 25 30 29 22 23 31 25 30 29 26 24 32 25 30 29
++25 30 29 25 30 29 25 30 29 26 30 28 26 30 28 30 30 34 25 30 29 15 22 17
++7 12 13 3 4 9 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 7 12 13 7 12 13
++13 4 7 3 4 9 3 3 1 3 4 9 7 12 13 17 12 17 7 12 13 17 12 17
++7 12 13 17 12 17 14 16 17 7 12 13 17 12 17 14 16 17 23 18 22 23 20 24
++23 20 24 23 20 24 14 16 17 14 16 17 14 16 17 14 16 17 23 20 24 22 25 24
++23 20 24 23 20 24 14 16 17 23 18 22 12 18 20 23 18 22 23 20 24 23 20 24
++23 18 22 14 16 17 12 18 20 23 18 22 12 18 20 23 20 24 15 22 17 23 20 24
++23 20 24 23 18 22 7 12 13 7 12 13 3 4 9 7 12 13 7 12 13 14 16 17
++22 25 24 31 35 35 31 35 35 31 35 35 33 39 38 33 39 38 42 41 42 34 40 43
++34 40 43 34 40 43 35 47 50 48 50 48 54 57 61 45 57 61 48 50 48 45 57 61
++45 57 61 48 50 48 45 57 61 35 47 50 35 47 50 35 47 50 42 41 42 43 42 50
++43 42 50 35 46 43 37 35 43 31 35 35 28 30 35 43 55 48 75 72 67 75 81 76
++59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 75 81 76
++75 81 82 60 81 83 75 81 82 75 81 82 75 81 82 75 81 90 88 83 88 75 81 90
++88 83 88 75 81 82 88 83 88 75 81 82 88 83 88 75 81 76 88 83 88 75 81 76
++88 83 88 88 83 88 75 81 82 75 81 82 78 98 90 88 83 88 75 99 72 88 83 88
++88 83 88 88 83 88 78 98 90 88 83 88 78 98 90 88 83 88 75 81 82 78 98 90
++78 98 90 75 81 82 78 98 90 78 98 90 88 83 74 78 98 90 75 81 82 78 98 90
++75 81 82 88 83 74 88 83 88 75 81 82 88 83 74 78 98 90 88 83 74 88 83 88
++88 83 74 88 83 74 75 81 76 88 83 74 75 81 76 75 72 67 75 72 67 75 81 69
++59 69 70 75 77 62 59 69 70 75 72 67 59 79 61 65 63 61 65 63 61 59 79 61
++65 63 61 59 79 61 53 63 61 59 79 61 53 63 61 53 63 61 53 63 61 59 69 70
++46 59 71 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70
++60 81 83 59 69 70 59 69 70 60 81 83 59 69 70 59 69 70 59 69 70 59 69 70
++46 59 71 59 79 61 46 59 71 53 63 61 53 63 61 53 63 61 45 57 61 33 39 38
++22 25 24 15 22 17 14 16 17 12 18 20 23 20 24 23 20 24 23 20 24 15 22 17
++23 18 22 23 20 24 15 22 17 23 18 22 23 18 22 22 25 24 23 20 24 23 20 24
++23 20 24 22 25 24 22 24 13 23 18 22 22 25 24 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 33 30 30 33 30 30 32 39 24 42 41 42 48 50 48 75 72 67
++88 83 74 75 81 82 88 83 74 75 81 69 75 81 76 88 83 74 75 81 76 88 83 74
++75 81 76 75 81 76 75 81 76 88 83 88 78 98 90 88 83 88 78 98 90 95 91 100
++77 90 100 78 98 90 94 105 108 77 90 100 94 105 108 94 105 108 94 105 108 95 119 107
++95 119 107 95 108 128 112 123 108 98 121 131 111 119 127 98 121 131 111 119 127 98 121 131
++111 119 127 111 119 127 111 119 127 98 121 131 111 119 127 111 119 127 95 119 107 111 119 127
++111 119 127 112 96 108 112 123 108 94 105 108 112 96 108 94 105 108 94 105 108 94 105 108
++90 98 89 95 91 100 88 83 88 90 98 89 88 83 88 75 81 82 88 83 74 75 81 76
++75 72 67 88 83 74 75 72 67 88 66 70 75 81 76 75 72 67 75 72 67 75 72 67
++75 81 76 75 81 76 75 81 76 75 81 76 75 81 82 88 83 88 75 81 90 88 83 88
++78 98 90 94 105 108 77 90 100 94 105 108 94 105 108 95 108 128 94 105 108 95 108 128
++98 121 131 98 121 131 111 119 127 98 121 131 98 121 131 122 134 144 98 121 131 122 134 144
++98 121 131 126 147 144 98 121 131 126 147 144 111 122 142 126 147 144 111 122 142 126 147 144
++111 122 142 126 147 144 111 122 142 111 122 142 121 143 132 98 121 131 98 121 131 98 121 131
++95 108 128 94 105 108 95 108 128 78 98 90 77 90 100 77 90 100 75 81 90 75 81 90
++60 81 83 59 69 70 59 69 70 53 63 61 53 63 61 45 57 61 45 57 61 50 61 48
++54 57 61 50 61 48 45 57 61 45 57 61 52 55 48 45 57 61 52 55 48 54 57 61
++52 55 48 50 61 48 53 63 61 52 55 48 59 55 55 55 55 48 59 55 55 55 55 48
++52 55 48 52 55 48 55 55 48 55 55 48 52 55 48 52 55 48 55 55 48 51 49 42
++55 55 48 51 49 42 55 55 48 51 49 42 55 55 48 55 55 48 51 49 42 51 49 42
++48 50 48 51 49 42 47 49 42 47 44 42 42 41 42 47 44 42 47 44 42 32 39 24
++42 47 42 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 39 38 33 30 30
++36 35 37 36 35 37 36 35 37 42 41 42 42 41 42 42 47 42 42 47 42 48 50 48
++48 50 48 54 57 61 52 55 48 48 50 48 54 57 61 52 55 48 54 57 61 52 55 48
++52 55 48 48 50 48 48 50 48 42 47 42 48 44 48 42 47 42 33 39 38 42 41 42
++36 35 37 31 35 35 31 35 35 33 30 32 26 30 28 33 30 30 33 30 30 33 30 30
++33 30 30 26 30 28 26 30 28 26 30 28 31 35 35 33 39 38 34 40 43 35 46 43
++42 47 42 48 44 48 48 50 48 45 57 61 54 57 61 63 59 71 63 59 71 59 69 70
++
++65 63 61 75 81 76 88 83 88 94 105 108 95 108 128 119 117 138 122 134 144 129 144 153
++148 160 159 150 147 171 150 168 183 166 174 181 166 176 200 166 176 200 150 168 183 166 176 200
++166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 185 202 202 166 176 200
++166 176 200 166 176 200 185 202 202 166 176 200 166 176 200 194 199 226 166 176 200 194 199 226
++188 180 202 194 199 226 166 176 200 194 199 226 166 176 200 188 180 202 166 176 200 194 199 226
++166 176 200 194 199 226 166 176 200 166 176 200 166 176 200 194 199 226 166 176 200 166 176 200
++166 176 200 166 176 200 166 176 200 150 168 183 150 168 183 150 168 183 150 147 171 150 147 171
++131 144 168 122 134 144 111 122 142 98 121 131 95 95 116 75 81 90 46 59 71 45 57 61
++34 40 43 35 46 43 35 46 43 35 46 43 42 47 42 42 47 42 48 50 48 59 55 55
++59 57 61 65 63 61 75 63 62 75 73 58 75 72 67 88 73 62 88 73 62 101 83 74
++101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 101 83 74 88 73 62 88 73 62
++75 72 67 75 72 67 88 83 88 112 123 108 150 144 154 166 174 181 185 202 202 225 222 201
++185 202 202 225 222 201 201 216 228 225 222 201 233 241 227 201 216 228 233 241 227 233 241 227
++201 216 228 233 241 227 233 241 227 201 216 228 201 216 228 185 202 202 166 180 164 148 160 159
++111 119 127 90 98 89 53 63 61 48 50 48 75 81 76 121 143 132 166 180 164 166 174 181
++208 215 180 201 216 228 208 215 180 225 222 201 201 216 228 225 222 201 201 216 228 233 241 227
++233 241 227 201 216 228 208 215 180 185 202 202 225 222 201 221 238 247 201 216 228 146 151 137
++36 35 37 22 25 24 78 98 90 166 174 181 232 215 228 201 216 228 233 241 227 233 241 227
++233 241 227 201 216 228 233 241 227 201 216 228 233 241 227 231 239 247 231 239 247 231 239 247
++233 241 227 231 239 247 231 239 247 231 239 247 231 239 247 240 251 247 231 239 247 240 251 247
++240 251 247 240 251 247 221 238 247 225 222 201 221 238 247 233 241 227 233 241 227 233 241 227
++231 239 247 240 251 247 233 241 227 231 239 247 235 238 247 231 239 247 231 239 247 231 239 247
++231 239 247 235 238 247 231 239 247 235 238 247 231 239 247 221 238 247 221 238 247 231 239 247
++231 239 247 231 239 247 221 238 247 231 239 247 231 239 247 231 239 247 221 238 247 231 239 247
++231 239 247 221 238 247 221 238 247 221 238 247 221 238 247 221 238 247 221 238 247 221 238 247
++221 238 247 221 238 247 221 238 247 231 239 247 226 221 247 231 239 247 226 221 247 221 238 247
++232 215 228 201 216 228 232 215 228 232 215 228 233 241 227 232 215 228 221 238 247 233 241 227
++226 221 247 231 239 247 235 238 247 231 239 247 235 238 247 226 221 247 231 239 247 221 238 247
++226 221 247 221 238 247 235 238 247 235 238 247 201 216 228 119 117 138 43 42 50 22 23 31
++28 35 38 42 41 42 43 42 50 42 41 42 42 38 42 34 40 43 28 35 38 28 30 35
++26 24 32 30 30 34 33 39 38 36 35 37 25 30 29 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 26 30 28 33 30 32 36 35 37 36 35 37 33 30 30 36 35 37
++36 35 37 33 39 38 33 39 38 29 35 19 65 55 54 138 126 108 189 165 168 208 215 180
++217 168 156 208 215 180 217 168 156 217 168 156 217 168 156 214 214 134 217 168 156 217 168 156
++208 215 180 217 168 156 214 214 134 222 171 182 225 222 201 227 171 124 225 222 201 222 171 182
++225 222 201 214 214 134 222 171 182 208 215 180 222 171 182 208 215 180 222 171 182 208 215 180
++208 215 180 217 168 156 208 215 180 222 171 182 222 171 182 208 215 180 222 171 182 225 222 201
++225 222 201 232 215 228 246 237 247 232 215 228 185 202 202 150 147 171 77 90 100 32 40 58
++12 18 30 12 18 30 12 18 30 22 23 31 22 25 24 33 30 30 33 30 30 33 30 32
++31 35 35 30 30 34 30 30 34 25 30 29 26 24 32 25 30 29 23 30 35 26 30 28
++26 24 32 26 30 28 26 30 28 33 30 30 30 30 34 31 35 35 22 23 31 22 25 24
++26 24 32 23 20 24 7 12 13 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 13 4 7 7 12 13
++7 12 13 3 4 9 3 4 9 13 4 7 7 12 13 7 12 13 17 12 17 14 16 17
++14 16 17 7 12 13 7 12 13 17 12 17 14 16 17 14 16 17 23 20 24 22 25 24
++22 25 24 23 20 24 14 16 17 23 18 22 14 16 17 23 18 22 23 20 24 22 23 31
++22 23 31 22 23 31 23 20 24 22 25 24 23 20 24 15 22 17 15 22 17 23 20 24
++15 22 17 23 20 24 23 20 24 15 22 17 23 20 24 23 20 24 23 20 24 15 22 17
++23 20 24 7 12 13 13 4 7 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9
++13 4 7 23 18 22 26 30 28 36 35 37 42 41 42 42 41 42 42 41 42 35 46 43
++42 41 42 43 42 50 48 50 48 45 57 61 48 50 48 43 42 50 35 47 50 43 42 50
++43 42 50 48 50 48 45 57 61 48 50 48 43 55 48 43 42 50 43 42 50 48 50 48
++43 42 50 48 44 48 48 44 48 43 42 50 36 35 37 43 42 50 59 69 70 75 81 90
++75 81 90 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 60 82 70 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 60 81 83 75 81 76 75 81 82 60 81 83
++75 81 82 75 81 82 75 81 90 75 81 82 75 81 82 88 83 88 78 98 90 88 83 88
++78 98 90 88 83 88 78 98 90 88 83 88 78 98 90 88 83 88 78 98 90 88 83 88
++78 98 90 88 83 74 88 83 88 78 98 90 88 83 88 88 83 88 90 98 89 88 83 88
++78 98 90 90 98 89 88 83 88 78 98 90 88 83 88 90 98 89 88 83 88 78 98 90
++88 83 88 78 98 90 88 83 88 78 98 90 75 81 82 88 83 88 78 98 90 88 83 88
++88 83 88 78 98 90 88 83 88 88 83 88 75 81 82 88 83 74 78 98 90 88 83 74
++75 81 82 88 83 88 75 81 76 75 81 76 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 75 72 67 59 69 70 75 72 67 59 69 70 65 63 61 59 69 70 65 63 61
++59 69 70 53 63 61 65 63 61 53 63 61 65 63 61 59 69 70 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 60 82 70 59 69 70 59 69 70 59 69 70
++59 69 70 60 81 83 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 53 63 61
++59 69 70 45 57 61 53 63 61 53 63 61 46 59 71 53 63 61 53 63 61 42 47 42
++23 30 35 22 25 24 12 18 20 23 20 24 23 20 24 15 22 17 23 18 22 15 22 17
++23 18 22 15 22 17 23 20 24 23 20 24 22 25 24 23 20 24 23 20 24 22 25 24
++22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 26 30 28
++26 30 28 26 30 28 33 30 30 33 30 32 36 35 37 36 35 37 47 49 42 59 57 61
++75 81 76 88 83 88 88 83 74 75 81 76 88 83 74 75 81 76 75 81 76 88 83 74
++88 83 88 88 83 74 88 83 88 88 83 88 88 83 88 90 98 89 77 90 100 95 91 100
++94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 95 108 128 111 119 127
++111 119 127 111 119 127 98 121 131 111 119 127 111 119 127 98 121 131 121 143 132 98 121 131
++111 119 127 98 121 131 111 119 127 112 123 108 98 121 131 112 123 108 111 119 127 112 123 108
++111 119 127 94 105 108 94 105 108 112 96 108 95 119 107 94 105 108 95 91 100 94 105 108
++95 91 100 78 98 90 90 98 89 90 98 89 88 83 88 88 83 74 75 81 76 88 83 74
++75 81 76 88 73 62 75 72 67 75 77 62 75 72 67 88 66 70 75 81 76 75 81 76
++88 69 84 75 81 76 75 81 76 88 83 74 75 81 82 88 83 88 88 83 88 88 83 88
++88 83 88 95 91 100 94 105 108 95 95 116 94 105 108 94 105 108 95 108 128 95 119 107
++98 121 131 111 119 127 98 121 131 111 122 142 111 122 142 121 143 132 111 122 142 126 147 144
++111 122 142 122 134 144 122 134 144 111 122 142 126 147 144 111 122 142 126 147 144 111 122 142
++126 147 144 98 121 131 98 121 131 121 143 132 98 121 131 98 121 131 98 121 131 95 119 107
++95 108 128 95 108 128 77 91 115 94 105 108 77 90 100 77 90 100 60 81 83 60 81 83
++60 81 83 63 59 71 59 69 70 46 59 71 53 63 61 53 63 61 53 63 61 54 57 61
++45 57 61 53 63 61 54 57 61 53 63 61 45 57 61 52 55 48 54 57 61 52 55 48
++54 57 61 50 61 48 52 55 48 54 57 61 55 55 48 54 57 61 59 55 55 50 61 48
++59 55 55 52 55 48 55 55 48 52 55 48 52 55 48 52 55 48 52 55 48 52 55 48
++53 46 48 52 55 48 51 49 42 52 55 48 51 49 42 51 49 42 51 49 42 48 50 48
++51 49 42 51 49 42 47 44 42 47 44 42 47 44 42 36 35 37 42 41 42 42 41 42
++36 35 37 47 47 21 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 39 38
++36 35 37 33 39 38 42 41 42 42 41 42 42 47 42 42 47 42 43 42 50 48 50 48
++48 50 48 48 50 48 52 55 48 54 57 61 48 50 48 54 57 61 48 50 48 48 50 48
++45 57 61 48 50 48 48 50 48 48 50 48 42 47 42 42 41 42 42 41 42 33 39 38
++36 35 37 31 35 35 31 35 35 33 30 30 31 35 35 31 35 35 26 30 28 31 35 35
++26 30 28 33 30 30 33 30 30 31 35 35 26 30 28 31 35 35 33 39 38 42 41 42
++42 41 42 43 55 48 48 50 48 45 57 61 54 57 61 53 63 61 59 69 70 59 69 70
++
++59 69 70 75 72 67 88 83 88 95 91 100 111 119 127 111 119 127 122 134 144 129 144 153
++129 144 153 150 147 171 150 147 171 150 168 183 150 168 183 166 174 181 166 176 200 166 176 200
++166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200
++188 180 202 166 176 200 166 176 200 188 180 202 188 180 202 166 176 200 194 199 226 166 176 200
++194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 166 176 200 194 199 226 166 176 200
++188 180 202 166 176 200 194 199 226 166 176 200 185 202 202 166 176 200 166 176 200 166 176 200
++166 176 200 166 176 200 150 168 183 166 176 200 150 147 171 150 168 183 150 168 183 131 144 168
++131 144 168 129 144 153 111 122 142 95 108 128 77 90 100 60 81 83 46 59 71 45 57 61
++35 47 50 35 46 43 35 46 43 42 47 42 42 47 42 48 50 48 43 55 48 59 55 55
++59 55 55 65 63 61 65 63 61 75 63 62 75 77 62 88 73 62 88 73 62 88 73 62
++88 83 74 101 83 74 101 83 74 101 83 74 101 83 74 88 73 62 88 73 62 88 83 74
++117 99 86 112 123 108 146 151 137 189 165 168 185 202 202 225 222 201 233 241 227 225 222 201
++201 216 228 225 222 201 201 216 228 233 241 227 201 216 228 233 241 227 225 222 201 201 216 228
++233 241 227 233 241 227 201 216 228 233 241 227 225 222 201 225 222 201 185 202 202 188 180 202
++166 174 181 148 160 159 122 134 144 111 119 127 138 126 108 121 143 132 177 169 143 166 180 164
++166 174 181 208 215 180 201 216 228 208 215 180 201 216 228 225 222 201 233 241 227 225 222 201
++201 216 228 225 222 201 185 202 202 201 216 228 201 216 228 232 215 228 145 140 145 42 47 42
++3 4 9 59 57 61 148 160 159 201 216 228 233 241 227 233 241 227 221 238 247 233 241 227
++221 238 247 233 241 227 233 241 227 233 241 227 233 241 227 231 239 247 233 241 227 231 239 247
++231 239 247 231 239 247 231 239 247 240 251 247 231 239 247 240 251 247 240 251 247 240 251 247
++240 251 247 231 239 247 233 241 227 221 238 247 233 241 227 240 251 247 235 238 247 240 251 247
++240 251 247 240 251 247 240 251 247 231 239 247 240 251 247 231 239 247 231 239 247 231 239 247
++231 239 247 221 238 247 231 239 247 231 239 247 231 239 247 221 238 247 221 238 247 221 238 247
++221 238 247 221 238 247 221 238 247 221 238 247 221 238 247 221 238 247 221 238 247 226 221 247
++221 238 247 221 238 247 221 238 247 221 238 247 221 238 247 226 221 247 221 238 247 221 238 247
++226 221 247 221 238 247 221 238 247 231 239 247 221 238 247 226 221 247 233 241 227 201 216 228
++233 241 227 201 216 228 233 241 227 201 216 228 232 215 228 201 216 228 232 215 228 201 216 228
++233 241 227 232 215 228 221 238 247 232 215 228 235 238 247 231 239 247 226 221 247 231 239 247
++231 239 247 221 238 247 240 251 247 226 221 247 148 160 159 60 63 87 12 18 30 28 30 35
++43 42 50 35 47 50 43 42 50 34 40 43 43 42 50 34 40 43 37 35 43 34 40 43
++34 40 43 37 35 43 37 35 43 33 39 38 31 35 35 31 35 35 31 35 35 23 30 35
++25 30 29 26 24 32 22 25 24 26 25 15 23 20 24 33 30 30 36 35 37 47 44 42
++42 41 42 33 39 38 30 30 34 33 30 30 75 81 76 168 146 127 208 215 180 208 215 180
++214 214 134 217 168 156 189 165 168 214 214 134 217 168 156 222 171 182 214 214 134 217 168 156
++214 214 134 222 171 182 225 222 201 227 171 124 225 222 201 217 168 156 225 222 201 222 171 182
++214 214 134 222 171 182 225 222 201 222 171 182 214 214 134 208 215 180 222 171 182 208 215 180
++217 168 156 208 215 180 222 171 182 208 215 180 222 171 182 208 215 180 222 171 182 208 215 180
++222 171 182 185 202 202 225 222 201 233 241 227 232 215 228 221 238 247 194 199 226 150 168 183
++95 91 100 45 57 61 22 23 31 12 18 20 22 23 31 30 30 34 33 30 30 33 30 30
++26 30 28 30 30 34 31 35 35 30 30 34 23 30 35 25 30 29 25 30 29 26 24 32
++26 30 28 26 24 32 26 30 28 33 30 32 25 30 29 22 25 24 28 35 38 63 59 71
++112 123 108 95 91 100 33 39 38 3 4 9 3 3 1 6 15 6 7 12 13 7 12 13
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 7 12 13 13 4 7
++7 12 13 13 4 7 3 4 9 3 4 9 13 4 7 15 17 7 14 16 17 14 16 17
++17 12 17 7 12 13 17 12 17 7 12 13 14 16 17 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 23 20 24 14 16 17 23 18 22 12 18 20 22 25 24 23 20 24
++22 23 31 23 20 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24
++23 20 24 12 18 20 23 20 24 23 20 24 12 18 20 23 18 22 15 22 17 23 18 22
++17 12 17 3 4 9 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1
++3 3 1 3 3 1 7 12 13 23 18 22 31 35 35 42 47 42 48 50 48 48 50 48
++43 55 48 43 42 50 35 47 50 43 42 50 35 47 50 43 55 48 43 55 48 35 47 50
++35 47 50 48 50 48 54 57 61 45 57 61 45 57 61 43 55 48 43 55 48 48 44 48
++48 44 48 43 42 50 43 42 50 48 44 48 43 42 50 34 40 43 35 47 50 59 69 70
++75 81 82 75 81 82 60 81 83 75 81 76 59 69 70 60 81 83 59 69 70 60 82 70
++59 69 70 59 69 70 60 82 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70
++60 63 87 60 81 83 75 81 76 60 81 83 75 81 76 60 81 83 75 81 82 75 81 82
++75 81 82 75 81 90 75 81 82 88 83 88 78 98 90 88 83 88 88 83 88 78 98 90
++88 83 88 90 98 89 88 83 88 90 98 89 88 83 88 90 98 89 88 83 88 90 98 89
++88 83 88 88 83 88 78 98 90 88 83 88 90 98 89 88 83 88 78 98 90 90 98 89
++88 83 88 90 98 89 90 98 89 88 83 88 78 98 90 88 83 88 78 98 90 88 83 88
++78 98 90 78 98 90 88 83 88 78 98 90 88 83 88 78 98 90 75 81 82 78 98 90
++75 81 82 88 83 88 88 83 88 90 98 89 75 81 82 90 98 89 75 81 82 88 83 88
++88 83 74 88 83 74 88 83 74 75 72 67 75 81 76 75 81 69 75 81 76 75 81 69
++59 69 70 75 72 67 59 79 61 75 72 67 59 79 61 65 63 61 59 79 61 59 69 70
++65 63 61 53 63 61 59 69 70 53 63 61 59 79 61 53 63 61 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 60 81 83 59 69 70
++60 81 83 59 69 70 60 81 83 46 59 71 60 82 70 59 69 70 46 59 71 59 79 61
++46 59 71 53 63 61 45 57 61 53 63 61 53 63 61 54 57 61 54 57 61 43 55 48
++34 40 43 22 23 31 14 16 17 12 18 20 23 20 24 22 25 24 23 18 22 23 20 24
++15 22 17 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 22 25 24 23 20 24
++26 30 28 22 25 24 22 25 24 26 25 15 22 25 24 22 25 24 22 25 24 26 30 28
++26 30 28 26 30 28 26 30 28 33 30 30 33 30 30 33 30 30 42 41 42 52 55 48
++75 72 67 88 83 74 88 83 88 88 83 74 88 83 74 75 81 76 88 83 74 88 83 74
++88 83 88 88 83 88 88 83 88 90 98 89 77 90 100 88 83 88 94 105 108 77 90 100
++94 105 108 94 105 108 94 105 108 94 105 108 95 108 128 94 105 108 95 119 107 111 119 127
++95 119 107 111 119 127 111 119 127 98 121 131 121 143 132 111 119 127 98 121 131 111 119 127
++121 143 132 111 119 127 98 121 131 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127
++112 123 108 111 119 127 112 96 108 95 119 107 112 96 108 94 105 108 94 105 108 94 105 108
++90 98 89 94 105 108 90 98 89 88 83 88 90 98 89 88 83 74 88 83 74 75 81 76
++88 66 70 75 81 69 75 77 62 75 72 67 75 81 69 75 72 67 75 72 67 75 81 76
++75 81 69 88 69 84 75 81 76 75 81 76 75 81 76 88 83 88 78 98 90 88 83 88
++78 98 90 95 91 100 77 90 100 94 105 108 94 105 108 95 108 128 95 119 107 95 108 128
++98 121 131 98 121 131 98 121 131 98 121 131 121 143 132 98 121 131 111 122 142 98 121 131
++126 147 144 98 121 131 126 147 144 111 122 142 126 147 144 111 122 142 126 147 144 98 121 131
++122 134 144 111 122 142 122 134 144 98 121 131 98 121 131 98 121 131 98 121 131 98 121 131
++95 108 128 94 105 108 95 119 107 77 91 115 77 90 100 77 90 100 75 81 90 60 81 83
++75 81 82 59 69 70 59 69 70 54 57 61 53 63 61 53 63 61 45 57 61 53 63 61
++53 63 61 53 63 61 45 57 61 54 57 61 45 57 61 53 63 61 54 57 61 54 57 61
++50 61 48 54 57 61 50 61 48 50 61 48 54 57 61 50 61 48 59 55 55 59 55 55
++55 55 48 52 55 48 59 55 55 55 55 48 55 55 48 52 55 48 48 50 48 52 55 48
++48 50 48 51 49 42 48 50 48 51 49 42 51 49 42 47 49 42 51 49 42 51 49 42
++51 49 42 47 49 42 47 49 42 42 47 42 47 44 42 42 47 42 42 41 42 42 41 42
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 33 39 38 36 35 37
++33 39 38 36 35 37 33 39 38 42 41 42 42 41 42 42 47 42 48 50 48 48 50 48
++48 50 48 54 57 61 52 55 48 54 57 61 52 55 48 54 57 61 52 55 48 45 57 61
++48 50 48 52 55 48 48 50 48 48 50 48 48 50 48 42 47 42 42 41 42 36 35 37
++33 39 38 31 35 35 31 35 35 33 30 30 26 30 28 31 35 35 33 30 30 31 35 35
++33 30 30 31 35 35 26 30 28 26 30 28 26 30 28 31 35 35 33 39 38 33 39 38
++34 40 43 48 50 48 48 50 48 45 57 61 54 57 61 54 57 61 63 59 71 59 69 70
++
++65 63 61 75 81 76 75 81 82 95 91 100 95 95 116 111 119 127 122 134 144 129 144 153
++129 144 153 150 147 171 150 168 183 150 168 183 166 176 200 150 168 183 166 176 200 166 174 181
++166 176 200 150 168 183 166 176 200 166 174 181 166 176 200 166 174 181 166 176 200 166 174 181
++166 176 200 166 174 181 188 180 202 166 176 200 166 176 200 185 202 202 166 176 200 188 180 202
++166 176 200 194 199 226 166 176 200 188 180 202 166 176 200 194 199 226 166 176 200 194 199 226
++166 176 200 194 199 226 166 176 200 166 176 200 166 176 200 194 199 226 166 176 200 166 176 200
++166 176 200 166 176 200 166 176 200 150 168 183 150 168 183 150 147 171 150 147 171 131 144 168
++129 144 153 111 122 142 111 122 142 95 108 128 77 90 100 60 63 87 63 59 71 45 57 61
++35 47 50 34 40 43 35 46 43 35 47 50 43 55 48 43 55 48 48 50 48 54 57 61
++59 55 55 65 63 61 65 63 61 75 63 62 75 72 67 75 77 62 88 73 62 88 83 74
++88 83 74 88 73 62 87 99 72 88 83 74 75 73 58 88 73 62 99 93 84 138 126 108
++166 180 164 166 174 181 185 202 202 225 222 201 201 216 228 232 215 228 201 216 228 233 241 227
++201 216 228 225 222 201 201 216 228 225 222 201 233 241 227 201 216 228 233 241 227 233 241 227
++201 216 228 233 241 227 201 216 228 233 241 227 201 216 228 201 216 228 225 222 201 185 202 202
++185 202 202 185 202 202 166 180 164 166 174 181 150 171 159 166 156 164 148 160 159 166 180 164
++189 165 168 185 202 202 166 180 164 185 202 202 208 215 180 185 202 202 225 222 201 201 216 228
++225 222 201 185 202 202 194 199 226 233 241 227 232 215 228 166 180 164 59 69 70 3 3 1
++33 39 38 121 143 132 185 202 202 233 241 227 233 241 227 233 241 227 233 241 227 233 241 227
++201 216 228 233 241 227 221 238 247 221 238 247 231 239 247 231 239 247 231 239 247 233 241 227
++231 239 247 233 241 227 231 239 247 231 239 247 240 251 247 240 251 247 240 251 247 235 238 247
++231 239 247 233 241 227 221 238 247 233 241 227 240 251 247 233 241 227 231 239 247 233 241 227
++235 238 247 231 239 247 231 239 247 231 239 247 221 238 247 221 238 247 231 239 247 226 221 247
++221 238 247 226 221 247 231 239 247 226 221 247 221 238 247 226 221 247 226 221 247 221 238 247
++226 221 247 231 239 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 221 238 247
++221 238 247 226 221 247 221 238 247 231 239 247 221 238 247 221 238 247 221 238 247 226 221 247
++221 238 247 221 238 247 226 221 247 221 238 247 231 239 247 226 221 247 226 221 247 226 221 247
++201 216 228 233 241 227 208 221 247 232 215 228 201 216 228 221 238 247 201 216 228 232 215 228
++201 216 228 232 215 228 201 216 228 233 241 227 232 215 228 233 241 227 221 238 247 226 221 247
++231 239 247 235 238 247 235 238 247 194 199 226 94 105 108 33 30 36 23 30 35 37 35 43
++43 42 50 43 42 50 42 41 42 43 42 50 43 42 50 42 41 42 34 40 43 43 42 50
++42 41 42 42 41 42 34 40 43 36 35 37 36 35 37 33 39 38 42 41 42 34 40 43
++36 35 37 26 30 28 26 25 15 53 35 17 63 55 45 88 73 62 101 83 74 101 83 74
++88 73 62 60 49 42 34 30 15 55 39 37 117 99 86 177 169 143 222 171 182 217 168 156
++217 168 156 214 214 134 217 168 156 208 215 180 217 168 156 214 214 134 222 171 182 217 168 156
++208 215 180 217 168 156 214 214 134 222 171 182 214 214 134 225 222 201 227 171 124 225 222 201
++222 171 182 225 222 201 214 214 134 222 171 182 225 222 201 222 171 182 214 214 134 225 222 201
++222 171 182 208 215 180 214 214 134 222 171 182 208 215 180 222 171 182 208 215 180 222 171 182
++208 215 180 222 171 182 185 202 202 189 165 168 225 222 201 225 222 201 232 215 228 232 215 228
++185 202 202 145 140 145 75 81 90 29 34 50 23 20 24 22 23 31 25 30 29 30 30 34
++25 30 29 26 30 28 30 30 34 30 30 34 25 30 29 22 23 31 22 25 24 26 30 28
++26 30 28 26 30 28 33 30 30 33 30 30 26 30 28 25 30 29 59 69 70 111 119 127
++166 156 164 122 134 144 65 63 61 14 16 17 3 3 1 7 12 13 26 12 13 14 16 17
++3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 7 12 13 3 4 9
++3 4 9 3 4 9 3 3 1 7 12 13 7 12 13 17 12 17 14 16 17 14 16 17
++14 16 17 7 12 13 13 4 7 14 16 17 14 16 17 23 20 24 23 20 24 22 25 24
++23 20 24 23 20 24 12 18 20 23 18 22 15 22 17 23 18 22 23 18 22 23 20 24
++23 20 24 23 20 24 22 25 24 26 24 32 22 25 24 22 25 24 22 23 31 22 25 24
++22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 15 22 17 22 25 24 23 20 24
++14 16 17 7 12 13 3 3 1 3 3 1 3 4 9 3 4 9 3 4 9 3 3 1
++3 4 9 3 3 1 3 3 1 6 15 6 14 16 17 22 25 24 31 35 35 42 41 42
++43 42 50 48 50 48 54 57 61 54 57 61 54 57 61 54 57 61 54 57 61 48 50 48
++43 42 50 48 50 48 45 57 61 48 50 48 45 57 61 43 42 50 48 50 48 43 42 50
++48 50 48 34 40 43 42 41 42 43 42 50 48 50 48 37 35 43 28 35 38 35 47 50
++59 69 70 60 81 83 75 81 82 60 81 83 60 81 83 75 81 76 60 82 70 59 69 70
++60 82 70 75 81 76 59 69 70 75 81 76 60 82 70 75 81 76 60 81 83 75 81 82
++60 81 83 75 81 82 59 69 70 60 81 83 75 81 76 60 81 83 75 81 82 75 81 82
++75 81 90 75 81 82 78 98 90 75 81 90 78 98 90 95 91 100 90 98 89 95 91 100
++90 98 89 95 91 100 90 98 89 90 98 89 90 98 89 88 83 88 90 98 89 90 98 89
++78 98 90 90 98 89 88 83 88 90 98 89 88 83 88 78 98 90 88 83 88 90 98 89
++88 83 88 90 98 89 88 83 88 90 98 89 90 98 89 90 98 89 88 83 88 78 98 90
++90 98 89 88 83 88 78 98 90 78 98 90 88 83 88 78 98 90 88 83 88 88 83 88
++90 98 89 88 83 88 90 98 89 88 83 88 90 98 89 75 81 76 90 98 89 75 81 76
++88 83 88 75 81 76 75 81 76 88 83 74 75 72 67 75 72 67 75 81 76 75 72 67
++75 72 67 75 72 67 59 69 70 75 72 67 59 69 70 75 72 67 65 63 61 59 69 70
++65 63 61 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70
++59 69 70 59 69 70 60 81 83 59 69 70 60 81 83 46 59 71 59 69 70 60 81 83
++59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 46 59 71 53 63 61 46 59 71
++53 63 61 53 63 61 53 63 61 45 57 61 45 57 61 45 57 61 45 57 61 45 57 61
++42 47 42 22 25 24 14 16 17 23 20 24 23 18 22 15 22 17 23 20 24 23 20 24
++23 20 24 23 20 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 26 24 32
++22 25 24 22 25 24 26 30 28 23 20 24 26 30 28 22 25 24 33 30 30 23 20 24
++26 30 28 22 25 24 26 30 28 33 30 30 26 30 28 33 30 30 33 30 32 42 47 42
++59 55 55 75 81 69 88 83 88 90 98 89 75 81 76 88 83 88 88 83 88 88 83 88
++88 83 74 88 83 88 90 98 89 88 83 88 90 98 89 95 91 100 94 105 108 94 105 108
++94 105 108 94 105 108 95 119 107 95 108 128 95 119 107 111 119 127 111 119 127 98 121 131
++111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 121 143 132 98 121 131 121 143 132
++111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 112 123 108 111 119 127 112 123 108
++111 119 127 112 96 108 111 119 127 94 105 108 94 105 108 94 105 108 117 99 86 94 105 108
++90 98 89 90 98 89 78 98 90 90 98 89 88 83 74 88 83 88 75 81 76 88 83 74
++75 81 69 75 72 67 88 73 62 75 72 67 88 73 62 75 81 76 88 66 70 75 81 76
++75 81 76 75 72 67 75 81 76 88 83 74 75 81 76 88 83 88 88 83 88 88 83 88
++77 90 100 95 91 100 94 105 108 95 95 116 94 105 108 95 95 116 95 108 128 95 119 107
++98 121 131 111 119 127 98 121 131 122 134 144 98 121 131 122 134 144 111 122 142 126 147 144
++111 122 142 126 147 144 111 122 142 126 147 144 98 121 131 126 147 144 98 121 131 129 144 153
++98 121 131 126 147 144 98 121 131 111 122 142 98 121 131 98 121 131 98 121 131 95 119 107
++95 108 128 95 119 107 77 91 115 78 98 90 77 91 115 78 98 90 60 81 83 75 81 90
++59 69 70 60 81 83 63 59 71 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61
++53 63 61 53 63 61 53 63 61 50 61 48 53 63 61 53 63 61 50 61 48 54 57 61
++54 57 61 50 61 48 54 57 61 59 55 55 54 57 61 59 55 55 53 63 61 52 55 48
++59 55 55 52 55 48 52 55 48 52 55 48 52 55 48 53 46 48 51 49 42 48 50 48
++51 49 42 51 49 42 47 49 42 47 49 42 47 49 42 47 44 42 47 49 42 47 44 42
++47 49 42 47 44 42 47 44 42 42 41 42 42 47 42 42 41 42 36 35 37 42 47 42
++32 39 24 36 35 37 33 39 38 36 35 37 33 39 38 36 35 37 33 39 38 33 39 38
++33 39 38 33 39 38 33 39 38 42 47 42 35 46 43 42 47 42 48 50 48 43 55 48
++48 50 48 52 55 48 45 57 61 52 55 48 54 57 61 52 55 48 52 55 48 54 57 61
++52 55 48 54 57 61 48 50 48 48 50 48 43 42 50 42 47 42 42 41 42 42 41 42
++33 39 38 36 35 37 33 39 38 31 35 35 33 30 30 33 30 30 26 30 28 31 35 35
++33 30 30 30 30 34 31 35 35 33 30 32 31 35 35 31 35 35 36 35 37 33 39 38
++42 41 42 42 47 42 45 57 61 52 55 48 54 57 61 53 63 61 59 69 70 59 69 70
++
++63 59 71 75 72 67 75 81 82 95 91 100 95 108 128 111 119 127 119 117 138 129 144 153
++129 144 153 150 147 171 150 168 183 150 147 171 150 168 183 166 176 200 150 168 183 166 176 200
++166 174 181 166 176 200 166 176 200 166 174 181 166 176 200 166 174 181 166 176 200 166 174 181
++166 176 200 166 174 181 166 176 200 188 180 202 166 176 200 188 180 202 166 176 200 194 199 226
++166 176 200 188 180 202 166 176 200 194 199 226 188 180 202 166 176 200 185 202 202 166 176 200
++166 176 200 166 176 200 194 199 226 166 176 200 185 202 202 166 176 200 166 176 200 166 176 200
++166 176 200 166 176 200 150 168 183 150 168 183 150 168 183 150 168 183 150 147 171 131 144 168
++131 144 168 122 134 144 111 122 142 95 95 116 77 90 100 75 81 90 46 59 71 45 57 61
++35 47 50 35 47 50 35 47 50 43 55 48 43 55 48 43 55 48 45 57 61 52 55 48
++53 63 61 59 57 61 65 63 61 75 73 58 75 72 67 75 72 67 75 81 69 88 73 62
++75 81 69 88 83 74 75 77 62 75 73 58 75 73 58 99 93 84 121 143 132 185 202 202
++232 215 228 225 222 201 225 222 201 201 216 228 225 222 201 233 241 227 201 216 228 233 241 227
++201 216 228 225 222 201 233 241 227 201 216 228 233 241 227 233 241 227 201 216 228 221 238 247
++225 222 201 233 241 227 201 216 228 233 241 227 225 222 201 201 216 228 233 241 227 201 216 228
++225 222 201 185 202 202 225 222 201 185 202 202 208 215 180 185 202 202 188 180 202 166 180 164
++185 202 202 189 165 168 166 174 181 208 215 180 185 202 202 185 202 202 208 215 180 201 216 228
++208 215 180 201 216 228 225 222 201 233 241 227 185 202 202 90 98 89 14 16 17 14 16 17
++95 91 100 166 180 164 233 241 227 225 222 201 232 215 228 233 241 227 232 215 228 233 241 227
++233 241 227 221 238 247 233 241 227 233 241 227 231 239 247 233 241 227 240 251 247 231 239 247
++231 239 247 240 251 247 235 238 247 235 238 247 240 251 247 235 238 247 240 251 247 240 251 247
++233 241 227 233 241 227 233 241 227 240 251 247 233 241 227 240 251 247 240 251 247 231 239 247
++233 241 227 231 239 247 231 239 247 221 238 247 231 239 247 226 221 247 226 221 247 231 239 247
++226 221 247 231 239 247 226 221 247 231 239 247 226 221 247 231 239 247 226 221 247 226 221 247
++221 238 247 226 221 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 221 238 247
++226 221 247 221 238 247 231 239 247 221 238 247 226 221 247 221 238 247 226 221 247 221 238 247
++221 238 247 221 238 247 221 238 247 221 238 247 226 221 247 221 238 247 221 238 247 208 221 247
++221 238 247 226 221 247 221 238 247 221 238 247 221 238 247 201 216 228 232 215 228 201 216 228
++208 221 247 232 215 228 201 216 228 225 222 201 201 216 228 232 215 228 232 215 228 233 241 227
++235 238 247 235 238 247 232 215 228 148 160 159 63 59 71 12 18 30 37 35 43 35 47 50
++43 42 50 35 47 50 43 42 50 43 42 50 34 40 43 43 42 50 35 46 43 42 41 42
++35 47 50 42 41 42 37 35 43 34 40 43 42 41 42 42 47 42 43 42 50 47 49 42
++42 41 42 36 35 37 60 49 42 101 83 74 138 126 108 163 117 123 168 146 127 146 150 115
++138 126 108 101 83 74 88 73 31 101 83 74 146 150 115 214 214 134 217 168 156 214 214 134
++189 165 168 217 168 156 214 214 134 217 168 156 208 215 180 217 168 156 214 214 134 222 171 182
++214 214 134 217 168 156 225 222 201 222 171 182 225 222 201 217 168 156 225 222 201 227 171 124
++225 222 201 214 214 134 222 171 182 225 222 201 214 214 134 222 171 182 225 222 201 227 171 124
++225 222 201 217 168 156 225 222 201 222 171 182 208 215 180 222 171 182 208 215 180 208 215 180
++217 168 156 208 215 180 217 168 156 208 215 180 189 165 168 189 165 168 208 215 180 232 215 228
++226 221 247 232 215 228 166 174 181 95 108 128 63 59 71 26 24 32 12 18 30 23 20 24
++22 23 31 25 30 29 25 30 29 25 30 29 25 30 29 22 25 24 22 25 24 26 30 28
++26 30 28 31 35 35 32 39 24 26 30 28 26 30 28 42 41 42 95 91 100 138 126 108
++111 119 127 95 91 100 59 55 55 23 18 22 3 3 1 14 16 17 23 18 22 23 18 22
++3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 13 4 7
++3 4 9 13 4 7 3 4 9 3 4 9 13 4 7 7 12 13 14 16 17 17 12 17
++17 12 17 7 12 13 14 16 17 14 16 17 14 16 17 14 16 17 23 20 24 22 25 24
++22 25 24 23 20 24 15 22 17 23 18 22 23 18 22 12 18 20 14 16 17 14 16 17
++14 16 17 23 20 24 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24
++23 20 24 22 25 24 23 20 24 22 25 24 12 18 20 14 16 17 7 12 13 17 12 17
++14 16 17 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 13 4 7 3 4 9
++3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 13 4 7 7 12 13 22 25 24
++28 30 35 42 41 42 54 57 61 59 57 61 63 59 71 54 57 61 59 57 61 54 57 61
++54 57 61 48 44 48 48 44 48 43 42 50 43 42 50 34 40 43 43 42 50 35 47 50
++43 42 50 34 40 43 34 40 43 43 42 50 48 50 48 43 42 50 37 35 43 23 30 35
++35 47 50 59 69 70 60 81 83 75 81 76 60 81 83 75 81 76 60 81 83 75 81 76
++60 81 83 60 81 83 60 81 83 60 81 83 75 81 82 60 81 83 59 69 70 60 81 83
++75 81 82 60 81 83 60 81 83 60 81 83 75 81 82 75 81 82 75 81 82 75 81 82
++75 81 82 78 98 90 75 81 90 78 98 90 88 83 88 78 98 90 95 91 100 90 98 89
++95 91 100 90 98 89 95 91 100 90 98 89 95 91 100 90 98 89 95 91 100 90 98 89
++95 91 100 88 83 88 90 98 89 77 90 100 88 83 88 90 98 89 88 83 88 88 83 88
++90 98 89 88 83 88 78 98 90 95 91 100 88 83 88 90 98 89 90 98 89 90 98 89
++88 83 88 78 98 90 78 98 90 88 83 88 78 98 90 88 83 88 78 98 90 78 98 90
++88 83 88 90 98 89 88 83 88 88 83 88 78 98 90 88 83 74 88 83 88 78 98 90
++75 81 82 88 83 74 75 81 82 75 72 67 75 81 76 75 81 76 75 64 82 75 81 76
++75 72 67 75 72 67 75 72 67 75 72 67 59 69 70 59 69 70 65 63 61 59 69 70
++59 79 61 59 69 70 65 63 61 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 60 81 83 59 69 70
++59 69 70 60 81 83 59 69 70 59 69 70 46 59 71 60 82 70 53 63 61 53 63 61
++53 63 61 53 63 61 45 57 61 45 57 61 45 57 61 45 57 61 52 55 48 45 57 61
++48 50 48 36 35 37 23 20 24 14 16 17 23 18 22 12 18 20 22 25 24 22 25 24
++23 20 24 23 20 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 26 30 28
++23 20 24 26 30 28 23 20 24 26 30 28 22 25 24 23 20 24 23 20 24 22 25 24
++22 25 24 22 25 24 26 24 32 26 30 28 33 30 30 26 30 28 26 30 28 36 35 37
++42 47 42 65 63 61 75 81 76 88 83 88 88 83 88 75 81 82 88 83 74 88 83 88
++90 98 89 88 83 88 88 83 88 90 98 89 94 105 108 112 123 108 94 105 108 94 105 108
++94 105 108 95 108 128 94 105 108 95 108 128 95 108 128 95 108 128 98 121 131 111 119 127
++98 121 131 121 143 132 98 121 131 121 143 132 98 121 131 121 143 132 98 121 131 121 143 132
++111 122 142 111 119 127 121 143 132 111 119 127 121 143 132 111 119 127 111 119 127 94 105 108
++111 119 127 111 119 127 112 123 108 94 105 108 112 123 108 94 105 108 94 105 108 94 105 108
++90 98 89 90 98 89 90 98 89 99 93 84 88 83 88 88 83 74 88 83 74 75 81 76
++88 83 74 88 83 74 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 88 83 74 75 64 82 88 83 74 75 81 82 88 83 88 88 83 88 77 90 100
++90 98 89 77 90 100 94 105 108 94 105 108 95 108 128 94 105 108 94 105 108 98 121 131
++98 121 131 98 121 131 98 121 131 98 121 131 111 122 142 98 121 131 126 147 144 98 121 131
++111 122 142 111 122 142 111 122 142 98 121 131 126 147 144 111 122 142 111 122 142 126 147 144
++111 122 142 111 122 142 98 121 131 121 143 132 98 121 131 98 121 131 98 121 131 95 108 128
++94 105 108 95 108 128 94 105 108 77 90 100 77 90 100 77 90 100 75 81 90 60 81 83
++60 81 83 59 69 70 59 69 70 59 69 70 53 63 61 53 63 61 53 63 61 53 63 61
++53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 59 55 55
++53 63 61 54 57 61 52 55 48 45 57 61 52 55 48 54 57 61 59 55 55 52 55 48
++54 57 61 48 50 48 52 55 48 48 50 48 48 50 48 48 50 48 47 49 42 47 49 42
++47 49 42 47 49 42 47 49 42 47 44 42 47 49 42 42 47 42 47 49 42 47 49 42
++47 44 42 47 49 42 42 47 42 42 41 42 47 44 42 36 35 37 42 47 42 42 41 42
++33 39 38 33 39 38 32 39 24 36 35 37 36 35 37 33 39 38 31 35 35 33 39 38
++31 35 35 33 39 38 33 39 38 34 40 43 42 47 42 43 42 50 43 55 48 48 50 48
++45 57 61 52 55 48 54 57 61 52 55 48 45 57 61 52 55 48 54 57 61 48 50 48
++59 55 55 48 50 48 48 50 48 48 50 48 42 47 42 35 46 43 42 41 42 33 39 38
++42 41 42 36 35 37 31 35 35 33 30 30 31 35 35 33 30 30 31 35 35 26 30 28
++30 30 34 30 30 34 33 30 32 31 35 35 30 30 34 31 35 35 33 39 38 42 41 42
++35 47 50 48 50 48 52 55 48 52 55 48 53 63 61 59 57 61 59 69 70 59 69 70
++
++65 63 61 59 69 70 75 81 90 95 91 100 95 95 116 111 119 127 111 122 142 129 144 153
++129 144 153 150 147 171 150 147 171 166 174 181 166 176 200 150 168 183 166 174 181 166 176 200
++150 168 183 166 176 200 166 174 181 166 176 200 166 174 181 166 176 200 166 174 181 166 174 181
++166 174 181 166 176 200 166 174 181 166 176 200 166 176 200 166 176 200 188 180 202 166 176 200
++188 180 202 166 176 200 194 199 226 166 176 200 166 176 200 194 199 226 166 176 200 188 180 202
++166 176 200 185 202 202 166 176 200 166 176 200 194 199 226 166 176 200 166 176 200 166 176 200
++166 176 200 166 176 200 150 168 183 150 168 183 150 147 171 150 147 171 131 144 168 131 144 168
++122 134 144 111 122 142 98 121 131 95 108 128 75 81 90 60 81 83 63 59 71 45 57 61
++48 50 48 35 47 50 45 57 61 45 57 61 43 55 48 45 57 61 48 50 48 53 63 61
++59 55 55 65 63 61 65 63 61 75 72 67 75 72 67 75 77 62 88 73 62 75 81 69
++75 77 62 75 77 62 75 73 58 75 73 58 88 83 74 121 143 132 208 215 180 232 215 228
++233 241 227 201 216 228 201 216 228 225 222 201 201 216 228 201 216 228 233 241 227 201 216 228
++225 222 201 201 216 228 233 241 227 225 222 201 201 216 228 233 241 227 225 222 201 233 241 227
++201 216 228 233 241 227 201 216 228 225 222 201 221 238 247 233 241 227 225 222 201 233 241 227
++201 216 228 233 241 227 201 216 228 225 222 201 201 216 228 208 215 180 225 222 201 185 202 202
++208 215 180 185 202 202 208 215 180 166 174 181 208 215 180 185 202 202 185 202 202 208 215 180
++201 216 228 225 222 201 201 216 228 188 180 202 112 123 108 23 30 35 7 12 13 53 63 61
++150 144 154 225 222 201 201 216 228 233 241 227 233 241 227 201 216 228 233 241 227 233 241 227
++232 215 228 233 241 227 221 238 247 226 221 247 233 241 227 221 238 247 231 239 247 240 251 247
++231 239 247 235 238 247 240 251 247 235 238 247 240 251 247 240 251 247 246 237 247 233 241 227
++235 238 247 233 241 227 240 251 247 233 241 227 240 251 247 233 241 227 240 251 247 231 239 247
++221 238 247 233 241 227 221 238 247 226 221 247 221 238 247 226 221 247 231 239 247 231 239 247
++226 221 247 231 239 247 226 221 247 235 238 247 226 221 247 226 221 247 231 239 247 226 221 247
++226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 221 238 247 226 221 247
++221 238 247 221 238 247 226 221 247 221 238 247 221 238 247 231 239 247 221 238 247 231 239 247
++226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 226 221 247
++221 238 247 208 221 247 226 221 247 208 221 247 221 238 247 226 221 247 221 238 247 221 238 247
++233 241 227 201 216 228 233 241 227 201 216 228 225 222 201 201 216 228 225 222 201 232 215 228
++233 241 227 226 221 247 166 176 200 94 105 108 43 42 50 22 23 31 43 42 50 43 42 50
++43 55 48 43 42 50 35 47 50 37 35 43 34 40 43 34 40 43 34 40 43 35 47 50
++42 41 42 43 42 50 42 41 42 43 42 50 48 44 48 48 50 48 48 50 48 48 50 48
++42 47 42 75 73 58 112 123 108 168 146 127 217 168 156 197 171 123 217 168 156 197 171 123
++168 146 127 168 146 127 146 150 115 168 146 127 217 168 156 189 165 168 208 215 180 217 168 156
++214 214 134 217 168 156 217 168 156 214 214 134 217 168 156 217 168 156 208 215 180 217 168 156
++225 222 201 217 168 156 214 214 134 225 222 201 227 171 124 225 222 201 217 168 156 225 222 201
++222 171 182 222 171 182 225 222 201 227 171 124 225 222 201 222 171 182 214 214 134 222 171 182
++225 222 201 214 214 134 222 171 182 214 214 134 225 222 201 217 168 156 208 215 180 217 168 156
++208 215 180 217 168 156 208 215 180 217 168 156 189 165 168 189 165 168 189 165 168 166 174 181
++185 202 202 201 216 228 226 221 247 194 199 226 150 144 154 75 81 90 26 24 32 22 23 31
++22 25 24 22 25 24 25 30 29 25 30 29 25 30 29 25 30 29 26 30 28 26 30 28
++32 39 24 31 35 35 26 30 28 26 30 28 26 30 28 42 41 42 48 50 48 48 50 48
++37 35 43 23 20 24 23 18 22 14 16 17 7 12 13 14 16 17 22 25 24 23 20 24
++7 12 13 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9
++3 3 1 3 4 9 3 3 1 3 4 9 7 12 13 7 12 13 17 12 17 7 12 13
++7 12 13 7 12 13 17 12 17 14 16 17 23 18 22 14 16 17 14 16 17 23 20 24
++23 20 24 23 18 22 12 18 20 14 16 17 23 18 22 14 16 17 14 16 17 7 12 13
++14 16 17 23 18 22 22 25 24 22 25 24 26 24 32 23 20 24 22 25 24 23 20 24
++22 25 24 23 20 24 12 18 20 22 25 24 12 18 20 14 16 17 7 12 13 7 12 13
++13 4 7 3 4 9 3 3 1 3 3 1 3 4 9 3 4 9 3 3 1 3 4 9
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 4 9 12 18 20 26 24 32 34 40 43 48 44 48 48 44 48 48 50 48 57 43 64
++54 57 61 54 57 61 48 50 48 45 57 61 35 46 43 34 40 43 35 46 43 43 42 50
++48 50 48 35 46 43 42 41 42 35 47 50 48 50 48 45 57 61 43 42 50 28 35 38
++33 39 38 45 57 61 59 69 70 75 81 90 60 81 83 75 81 82 60 81 83 75 81 76
++60 81 83 75 81 76 60 81 83 75 81 82 75 81 82 75 81 76 60 81 83 75 81 82
++60 81 83 60 81 83 75 81 90 75 81 82 75 81 90 75 81 90 78 98 90 75 81 90
++78 98 90 78 98 90 88 83 88 78 98 90 90 98 89 95 91 100 90 98 89 95 91 100
++90 98 89 95 91 100 95 91 100 90 98 89 95 91 100 90 98 89 90 98 89 95 91 100
++90 98 89 90 98 89 95 91 100 90 98 89 90 98 89 77 90 100 90 98 89 78 98 90
++88 83 88 90 98 89 95 91 100 90 98 89 90 98 89 77 90 100 90 98 89 77 90 100
++90 98 89 78 98 90 88 83 88 78 98 90 90 98 89 78 98 90 88 83 88 88 83 88
++78 98 90 88 83 88 90 98 89 88 83 88 88 83 88 78 98 90 88 83 74 88 83 88
++75 81 82 88 83 88 75 81 76 88 83 74 75 72 67 75 72 67 75 81 76 75 64 82
++75 72 67 59 69 70 75 72 67 59 69 70 75 72 67 59 69 70 59 69 70 75 72 67
++59 69 70 65 63 61 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70
++59 69 70 60 81 83 59 69 70 60 81 83 59 69 70 60 81 83 46 59 71 60 81 83
++59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 53 63 61 46 59 71 53 63 61
++53 63 61 45 57 61 53 63 61 45 57 61 50 61 48 45 57 61 45 57 61 54 57 61
++52 55 48 43 42 50 33 30 32 23 18 22 14 16 17 23 18 22 22 25 24 23 20 24
++23 20 24 23 20 24 22 25 24 22 25 24 22 25 24 23 20 24 26 24 32 22 25 24
++26 30 28 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24 23 20 24 26 25 15
++23 20 24 26 30 28 22 25 24 26 30 28 26 30 28 26 30 28 26 30 28 33 30 30
++33 30 32 48 50 48 65 63 61 75 81 76 90 98 89 88 83 88 90 98 89 88 83 88
++90 98 89 90 98 89 90 98 89 112 123 108 122 134 144 121 143 132 111 119 127 95 119 107
++94 105 108 95 119 107 95 108 128 111 119 127 95 119 107 111 119 127 111 119 127 111 119 127
++111 122 142 111 119 127 121 143 132 98 121 131 121 143 132 111 122 142 121 143 132 98 121 131
++121 143 132 98 121 131 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127
++112 123 108 111 119 127 112 96 108 94 105 108 112 96 108 94 105 108 94 105 108 94 105 108
++90 98 89 90 98 89 95 91 100 88 83 88 88 83 88 88 83 74 88 83 74 88 83 74
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 88 69 84
++75 81 76 75 72 67 75 81 76 88 83 74 75 81 82 88 83 88 88 83 88 88 83 88
++78 98 90 95 91 100 94 105 108 94 105 108 94 105 108 95 108 128 95 108 128 98 121 131
++111 119 127 98 121 131 98 121 131 121 143 132 98 121 131 111 122 142 98 121 131 126 147 144
++98 121 131 126 147 144 98 121 131 131 144 168 98 121 131 126 147 144 98 121 131 111 122 142
++126 147 144 98 121 131 111 122 142 98 121 131 98 121 131 98 121 131 98 121 131 95 108 128
++95 108 128 95 119 107 77 91 115 77 91 115 78 98 90 77 90 100 60 81 83 75 81 90
++59 69 70 59 69 70 59 69 70 53 63 61 59 69 70 53 63 61 53 63 61 53 63 61
++53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61
++59 55 55 50 61 48 53 63 61 52 55 48 54 57 61 52 55 48 52 55 48 52 55 48
++52 55 48 48 50 48 48 50 48 48 50 48 48 50 48 47 49 42 47 49 42 47 49 42
++47 49 42 47 44 42 47 49 42 42 47 42 47 44 42 47 44 42 47 49 42 42 47 42
++47 47 21 47 49 42 47 44 42 47 44 42 42 41 42 42 47 42 36 35 37 42 47 42
++33 39 38 33 39 38 36 35 37 33 39 38 36 35 37 42 41 42 33 39 38 33 39 38
++33 39 38 33 39 38 42 47 42 35 46 43 42 47 42 42 47 42 43 55 48 48 50 48
++52 55 48 45 57 61 52 55 48 45 57 61 52 55 48 54 57 61 52 55 48 52 55 48
++54 57 61 48 50 48 54 57 61 48 50 48 48 50 48 42 47 42 42 41 42 42 41 42
++33 39 38 42 41 42 36 35 37 31 35 35 31 35 35 33 30 30 26 30 28 31 35 35
++33 30 32 30 30 34 30 30 34 31 35 35 31 35 35 36 35 37 33 39 38 42 41 42
++42 47 42 48 50 48 45 57 61 54 57 61 54 57 61 53 63 61 65 63 61 75 72 67
++
++63 59 71 75 72 67 75 81 82 75 81 90 95 95 116 111 119 127 119 117 138 129 144 153
++129 144 153 150 147 171 150 147 171 150 168 183 150 147 171 150 168 183 166 176 200 150 168 183
++166 176 200 166 174 181 166 176 200 166 174 181 166 176 200 166 174 181 166 174 181 166 176 200
++166 174 181 166 174 181 166 176 200 166 174 181 188 180 202 166 176 200 166 176 200 185 202 202
++166 176 200 188 180 202 166 176 200 166 176 200 188 180 202 166 176 200 166 176 200 194 199 226
++166 176 200 166 176 200 194 199 226 166 176 200 166 176 200 185 202 202 166 176 200 166 176 200
++166 176 200 150 168 183 166 176 200 150 168 183 150 168 183 150 168 183 150 147 171 129 144 153
++129 144 153 111 122 142 98 121 131 95 95 116 77 90 100 60 63 87 46 59 71 45 57 61
++45 57 61 48 50 48 45 57 61 45 57 61 48 50 48 45 57 61 43 55 48 54 57 61
++53 63 61 53 63 61 65 63 61 75 72 67 75 77 62 75 77 62 75 81 69 75 77 62
++75 77 62 64 70 48 64 70 48 59 79 61 138 126 108 188 180 202 233 241 227 233 241 227
++201 216 228 225 222 201 225 222 201 201 216 228 225 222 201 233 241 227 201 216 228 225 222 201
++233 241 227 201 216 228 233 241 227 201 216 228 233 241 227 201 216 228 201 216 228 233 241 227
++201 216 228 233 241 227 201 216 228 233 241 227 233 241 227 201 216 228 221 238 247 225 222 201
++201 216 228 233 241 227 233 241 227 221 238 247 225 222 201 201 216 228 232 215 228 225 222 201
++201 216 228 208 215 180 185 202 202 185 202 202 188 180 202 208 215 180 185 202 202 208 215 180
++201 216 228 225 222 201 188 180 202 121 143 132 52 55 48 7 12 13 22 25 24 98 113 84
++166 174 181 201 216 228 225 222 201 201 216 228 225 222 201 233 241 227 233 241 227 208 221 247
++233 241 227 221 238 247 233 241 227 233 241 227 221 238 247 233 241 227 231 239 247 235 238 247
++235 238 247 240 251 247 235 238 247 240 251 247 240 251 247 233 241 227 240 251 247 235 238 247
++233 241 227 233 241 227 240 251 247 233 241 227 246 237 247 235 238 247 233 241 227 221 238 247
++232 215 228 221 238 247 226 221 247 221 238 247 226 221 247 231 239 247 235 238 247 226 221 247
++235 238 247 226 221 247 235 238 247 226 221 247 231 239 247 226 221 247 226 221 247 221 238 247
++226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 221 238 247 226 221 247 221 238 247
++221 238 247 226 221 247 231 239 247 221 238 247 226 221 247 231 239 247 226 221 247 231 239 247
++221 238 247 231 239 247 221 238 247 231 239 247 226 221 247 226 221 247 208 221 247 226 221 247
++226 221 247 226 221 247 226 221 247 226 221 247 208 221 247 221 238 247 226 221 247 208 221 247
++221 238 247 226 221 247 208 221 247 232 215 228 226 221 247 233 241 227 201 216 228 201 216 228
++232 215 228 201 216 228 145 140 145 54 57 61 28 35 38 28 30 35 43 55 48 43 42 50
++35 47 50 43 42 50 34 40 43 34 40 43 34 40 43 34 40 43 42 41 42 43 42 50
++43 42 50 43 42 50 43 42 50 35 47 50 43 42 50 48 50 48 48 50 48 47 44 42
++75 63 62 117 99 86 177 169 143 222 171 182 214 214 134 217 168 156 177 169 143 197 171 123
++168 146 127 201 146 124 177 169 143 217 168 156 214 214 134 217 168 156 214 214 134 217 168 156
++217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 208 215 180 227 171 124 208 215 180
++227 171 124 225 222 201 222 171 182 214 214 134 222 171 182 214 214 134 225 222 201 227 171 124
++225 222 201 214 214 134 222 171 182 225 222 201 227 171 124 225 222 201 222 171 182 225 222 201
++227 171 124 225 222 201 222 171 182 225 222 201 217 168 156 208 215 180 222 171 182 208 215 180
++217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 208 215 180 177 169 143 217 168 156
++189 165 168 189 165 168 188 180 202 225 222 201 201 216 228 166 156 164 95 91 100 37 35 43
++12 18 20 12 18 30 22 23 31 23 30 35 22 23 31 25 30 29 33 30 30 31 35 35
++36 35 37 33 30 30 26 30 28 26 25 15 26 25 15 26 25 15 26 25 15 23 10 10
++15 17 7 23 10 10 23 10 10 17 12 17 28 13 18 22 24 13 23 18 22 22 24 13
++13 4 7 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1
++3 4 9 3 3 1 3 4 9 7 12 13 13 4 7 7 12 13 17 12 17 7 12 13
++17 12 17 13 4 7 7 12 13 14 16 17 14 16 17 23 18 22 14 16 17 23 20 24
++23 18 22 14 16 17 23 18 22 14 16 17 14 16 17 14 16 17 17 12 17 7 12 13
++14 16 17 14 16 17 23 20 24 23 20 24 22 25 24 23 20 24 22 23 31 12 18 20
++23 20 24 15 22 17 23 20 24 12 18 20 23 20 24 34 40 43 54 57 61 45 57 61
++12 18 20 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 4 9 7 12 13 14 16 17 23 20 24 26 24 32 30 30 34
++42 41 42 59 57 61 95 91 100 111 119 127 111 119 127 94 105 108 75 81 90 59 69 70
++54 57 61 43 42 50 29 34 50 28 30 35 28 30 35 35 47 50 48 50 48 35 47 50
++35 47 50 35 47 50 59 69 70 75 81 90 75 81 82 75 81 90 75 81 82 75 81 82
++75 81 82 60 81 83 75 81 82 60 81 83 75 81 82 60 81 83 75 81 90 60 81 83
++75 81 90 75 81 90 78 98 90 75 81 90 75 81 90 78 98 90 75 81 90 78 98 90
++77 90 100 78 98 90 77 90 100 90 98 89 77 90 100 90 98 89 77 90 100 94 105 108
++90 98 89 95 91 100 90 98 89 90 98 89 95 91 100 90 98 89 95 91 100 90 98 89
++90 98 89 77 90 100 90 98 89 90 98 89 95 91 100 88 83 88 90 98 89 95 91 100
++90 98 89 95 91 100 90 98 89 78 98 90 95 91 100 90 98 89 88 83 88 90 98 89
++88 83 88 78 98 90 88 83 88 90 98 89 88 83 88 88 83 88 78 98 90 90 98 89
++90 98 89 88 83 88 90 98 89 88 83 88 90 98 89 88 83 88 88 83 74 78 98 90
++88 83 74 88 83 74 75 81 76 75 81 76 75 81 76 75 81 76 75 72 67 75 81 69
++75 72 67 75 72 67 75 72 67 75 72 67 59 69 70 75 72 67 65 63 61 59 69 70
++65 63 61 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70
++60 81 83 59 69 70 59 69 70 59 69 70 60 81 83 59 69 70 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 46 59 71 53 63 61 59 69 70 53 63 61
++53 63 61 53 63 61 45 57 61 53 63 61 45 57 61 50 61 48 45 57 61 50 61 48
++45 57 61 52 55 48 36 35 37 23 18 22 14 16 17 12 18 20 23 20 24 22 25 24
++23 20 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24
++22 25 24 26 24 32 26 25 15 26 30 28 23 20 24 22 25 24 22 25 24 22 25 24
++22 25 24 23 18 22 33 30 30 23 20 24 33 30 30 22 25 24 22 25 24 26 30 28
++33 30 30 42 41 42 52 55 48 75 72 67 88 83 74 90 98 89 88 83 88 90 98 89
++88 83 88 88 83 88 95 91 100 112 123 108 145 140 145 146 151 137 111 119 127 112 123 108
++94 105 108 94 105 108 95 119 107 95 119 107 111 119 127 98 121 131 111 119 127 98 121 131
++121 143 132 98 121 131 121 143 132 111 122 142 121 143 132 98 121 131 121 143 132 122 134 144
++111 119 127 121 143 132 121 143 132 111 119 127 121 143 132 112 123 108 111 119 127 111 119 127
++111 119 127 95 119 107 111 119 127 112 96 108 95 119 107 94 105 108 112 96 108 94 105 108
++90 98 89 90 98 89 90 98 89 90 98 89 88 83 74 88 83 88 75 81 82 88 83 74
++75 72 67 88 83 74 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 88 69 84 75 72 67 75 81 76 88 83 74 75 81 82 88 83 88 75 81 90
++95 91 100 77 90 100 94 105 108 95 95 116 94 105 108 94 105 108 95 108 128 95 119 107
++98 121 131 111 119 127 98 121 131 98 121 131 98 121 131 121 143 132 111 122 142 98 121 131
++126 147 144 111 122 142 98 121 131 126 147 144 98 121 131 126 147 144 111 122 142 122 134 144
++98 121 131 121 143 132 98 121 131 111 122 142 98 121 131 98 121 131 95 108 128 95 119 107
++98 121 131 77 91 115 94 105 108 77 90 100 77 90 100 75 81 90 60 81 83 75 81 90
++60 81 83 59 69 70 59 69 70 53 63 61 59 69 70 53 63 61 59 69 70 53 63 61
++59 69 70 53 63 61 65 63 61 53 63 61 53 63 61 53 63 61 59 57 61 53 63 61
++53 63 61 53 63 61 50 61 48 45 57 61 52 55 48 54 57 61 45 57 61 54 57 61
++48 50 48 48 50 48 48 50 48 48 50 48 47 49 42 42 47 42 42 47 42 42 47 42
++47 44 42 42 47 42 42 47 42 47 44 42 42 47 42 42 47 42 42 47 42 47 44 42
++42 47 42 42 47 42 42 47 42 47 47 21 42 47 42 33 39 38 42 47 42 32 39 24
++42 47 42 33 39 38 33 39 38 33 39 38 33 39 38 33 39 38 32 39 24 33 39 38
++33 39 38 33 39 38 34 40 43 42 47 42 42 47 42 43 42 50 43 55 48 48 50 48
++54 57 61 52 55 48 54 57 61 54 57 61 52 55 48 45 57 61 52 55 48 45 57 61
++52 55 48 45 57 61 48 50 48 48 50 48 43 55 48 43 42 50 42 47 42 33 39 38
++42 47 42 33 39 38 33 39 38 31 35 35 31 35 35 33 30 32 31 35 35 31 35 35
++25 30 29 31 35 35 26 30 28 30 30 34 31 35 35 33 39 38 42 38 42 35 47 50
++43 42 50 45 57 61 52 55 48 52 55 48 53 63 61 63 59 71 59 69 70 59 69 70
++
++65 63 61 59 69 70 75 81 76 88 83 88 95 91 100 95 108 128 111 119 127 129 144 153
++129 144 153 131 144 168 150 168 183 150 168 183 166 176 200 166 174 181 150 168 183 166 176 200
++166 174 181 166 176 200 150 168 183 166 176 200 166 174 181 166 174 181 166 176 200 166 156 164
++166 176 200 166 174 181 166 174 181 166 176 200 166 176 200 166 176 200 188 180 202 166 176 200
++166 176 200 166 176 200 185 202 202 166 176 200 188 180 202 166 176 200 185 202 202 166 176 200
++166 176 200 188 180 202 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200
++166 176 200 166 176 200 150 168 183 150 147 171 150 168 183 150 147 171 131 144 168 129 144 153
++122 134 144 111 122 142 111 119 127 95 95 116 60 81 83 59 69 70 46 59 71 45 57 61
++45 57 61 45 57 61 45 57 61 45 57 61 45 57 61 45 57 61 45 57 61 53 63 61
++59 57 61 65 63 61 59 69 70 75 77 62 59 79 61 75 77 62 75 77 62 75 77 62
++64 70 48 50 61 48 75 81 69 112 123 108 166 180 164 233 241 227 233 241 227 233 241 227
++201 216 228 225 222 201 201 216 228 201 216 228 233 241 227 201 216 228 233 241 227 201 216 228
++225 222 201 201 216 228 225 222 201 201 216 228 225 222 201 233 241 227 201 216 228 233 241 227
++201 216 228 225 222 201 233 241 227 201 216 228 233 241 227 233 241 227 201 216 228 225 222 201
++201 216 228 233 241 227 201 216 228 225 222 201 221 238 247 233 241 227 233 241 227 201 216 228
++225 222 201 201 216 228 225 222 201 225 222 201 185 202 202 185 202 202 225 222 201 188 180 202
++185 202 202 166 156 164 112 123 108 65 63 61 7 12 13 3 3 1 48 50 48 145 140 145
++208 215 180 233 241 227 225 222 201 233 241 227 201 216 228 233 241 227 201 216 228 233 241 227
++233 241 227 201 216 228 221 238 247 201 216 228 233 241 227 221 238 247 233 241 227 231 239 247
++235 238 247 235 238 247 246 237 247 240 251 247 246 237 247 233 241 227 233 241 227 233 241 227
++240 251 247 233 241 227 240 251 247 233 241 227 240 251 247 233 241 227 221 238 247 226 221 247
++201 216 228 221 238 247 221 238 247 226 221 247 221 238 247 226 221 247 235 238 247 226 221 247
++235 238 247 226 221 247 226 221 247 226 221 247 226 221 247 235 238 247 226 221 247 226 221 247
++226 221 247 226 221 247 221 238 247 226 221 247 221 238 247 231 239 247 231 239 247 231 239 247
++226 221 247 221 238 247 221 238 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247
++226 221 247 226 221 247 208 221 247 226 221 247 226 221 247 221 238 247 208 221 247 221 238 247
++208 221 247 208 221 247 221 238 247 208 221 247 221 238 247 232 215 228 201 216 228 233 241 227
++201 216 228 185 202 202 94 105 108 26 30 28 28 30 35 43 42 50 43 42 50 35 47 50
++35 46 43 34 40 43 34 40 43 34 40 43 34 40 43 34 40 43 43 42 50 43 42 50
++43 55 48 45 57 61 48 50 48 43 55 48 45 57 61 52 55 48 53 46 48 63 55 45
++117 99 86 177 169 143 217 168 156 208 215 180 217 168 156 197 171 123 197 171 123 201 146 124
++197 171 123 197 171 123 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 214 214 134
++208 215 180 217 168 156 214 214 134 222 171 182 214 214 134 222 171 182 208 215 180 222 171 182
++214 214 134 222 171 182 214 214 134 225 222 201 222 171 182 225 222 201 217 168 156 225 222 201
++217 168 156 225 222 201 214 214 134 222 171 182 225 222 201 227 171 124 208 215 180 227 171 124
++225 222 201 217 168 156 214 214 134 222 171 182 222 171 182 214 214 134 222 171 182 214 214 134
++222 171 182 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156 177 169 143
++197 171 123 177 169 143 177 169 143 188 180 202 225 222 201 201 216 228 166 176 200 111 119 127
++32 40 58 12 18 30 12 18 30 22 23 31 25 30 29 33 30 30 30 30 34 33 39 38
++33 30 30 29 35 19 34 30 15 33 30 30 52 30 35 32 39 24 34 30 15 34 30 15
++26 25 15 28 13 18 26 25 15 26 25 15 34 30 15 23 20 24 26 25 15 17 12 17
++13 4 7 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 4 9 3 3 1
++3 3 1 3 3 1 3 3 1 3 4 9 3 4 9 3 4 9 3 4 9 3 3 1
++3 4 9 3 4 9 13 4 7 3 4 9 7 12 13 17 12 17 7 12 13 7 12 13
++7 12 13 7 12 13 7 12 13 17 12 17 14 16 17 14 16 17 17 12 17 12 18 20
++7 10 17 14 16 17 14 16 17 14 16 17 14 16 17 17 12 17 14 16 17 7 12 13
++17 12 17 14 16 17 14 16 17 23 18 22 23 20 24 22 25 24 12 18 30 22 25 24
++12 18 20 14 16 17 14 16 17 3 4 9 28 35 38 94 105 108 122 134 144 95 91 100
++23 30 35 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 4 9 3 3 1
++3 4 9 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 7 12 13
++14 16 17 47 44 42 88 83 88 111 119 127 145 140 145 122 134 144 119 117 138 119 117 138
++95 95 116 75 81 90 60 63 87 63 59 71 35 47 50 35 47 50 35 47 50 35 46 43
++34 40 43 34 40 43 43 55 48 59 69 70 60 81 83 75 81 90 60 81 83 75 81 90
++60 81 83 75 81 82 75 81 90 60 81 83 75 81 82 75 81 82 75 81 90 75 81 90
++75 81 90 60 81 83 75 81 90 75 81 90 78 98 90 75 81 90 78 98 90 77 90 100
++78 98 90 77 90 100 95 91 100 78 98 90 95 91 100 95 91 100 90 98 89 90 98 89
++95 91 100 90 98 89 94 105 108 90 98 89 90 98 89 95 91 100 90 98 89 95 91 100
++90 98 89 90 98 89 95 91 100 78 98 90 95 91 100 78 98 90 95 91 100 90 98 89
++90 98 89 78 98 90 90 98 89 90 98 89 90 98 89 95 91 100 90 98 89 95 91 100
++90 98 89 95 91 100 90 98 89 78 98 90 88 83 88 90 98 89 90 98 89 88 83 88
++90 98 89 90 98 89 88 83 88 90 98 89 88 83 74 78 98 90 88 83 74 88 83 88
++75 81 76 75 81 76 88 83 74 75 81 76 75 72 67 75 81 76 75 72 67 75 72 67
++75 72 67 75 72 67 59 69 70 75 72 67 59 69 70 75 72 67 59 69 70 65 63 61
++59 69 70 75 72 67 59 69 70 75 72 67 59 69 70 59 69 70 59 69 70 59 69 70
++59 69 70 60 81 83 59 69 70 60 81 83 59 69 70 59 69 70 60 81 83 59 69 70
++60 81 83 59 69 70 59 69 70 46 59 71 59 79 61 46 59 71 53 63 61 53 63 61
++53 63 61 53 63 61 53 63 61 45 57 61 45 57 61 45 57 61 50 61 48 45 57 61
++50 61 48 45 57 61 42 47 42 22 25 24 15 22 17 15 22 17 23 20 24 15 22 17
++23 18 22 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 26 30 28
++23 20 24 22 25 24 23 20 24 23 20 24 22 25 24 22 25 24 23 20 24 23 20 24
++23 20 24 22 25 24 23 20 24 23 20 24 33 30 30 23 18 22 26 25 15 26 30 28
++22 25 24 33 30 30 33 39 38 54 57 61 75 81 69 88 83 88 90 98 89 95 91 100
++99 93 84 90 98 89 90 98 89 112 96 108 112 123 108 138 126 108 121 143 132 112 123 108
++112 123 108 112 123 108 111 119 127 112 123 108 111 119 127 95 119 107 111 119 127 111 119 127
++98 121 131 122 134 144 111 122 142 111 122 142 111 119 127 121 143 132 111 122 142 121 143 132
++111 122 142 111 119 127 111 119 127 121 143 132 98 121 131 111 119 127 111 119 127 111 119 127
++111 119 127 112 96 108 95 119 107 111 119 127 94 105 108 112 96 108 95 119 107 95 91 100
++90 98 89 95 91 100 99 93 84 88 83 88 88 83 88 88 83 74 88 83 74 75 72 67
++75 72 67 75 72 67 75 72 67 75 63 62 75 63 62 75 73 58 75 63 62 75 72 67
++88 66 70 75 81 69 75 72 67 75 81 76 75 81 76 88 83 88 75 81 82 88 83 88
++88 83 88 95 91 100 94 105 108 77 91 115 94 105 108 95 95 116 95 108 128 95 108 128
++95 108 128 98 121 131 98 121 131 111 122 142 98 121 131 98 121 131 98 121 131 111 122 142
++98 121 131 98 121 131 126 147 144 98 121 131 111 122 142 98 121 131 126 147 144 98 121 131
++98 121 131 122 134 144 98 121 131 98 121 131 98 121 131 98 121 131 95 119 107 95 108 128
++95 108 128 94 105 108 77 91 115 78 98 90 77 90 100 77 90 100 60 81 83 75 81 90
++59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 53 63 61 46 59 71 59 69 70
++53 63 61 59 69 70 53 63 61 59 69 70 53 63 61 65 63 61 53 63 61 53 63 61
++54 57 61 50 61 48 45 57 61 52 55 48 54 57 61 45 57 61 52 55 48 48 50 48
++48 50 48 48 50 48 48 50 48 47 49 42 47 44 42 42 47 42 42 41 42 42 47 42
++42 47 42 42 41 42 42 47 42 42 47 42 47 44 42 47 47 21 42 47 42 42 41 42
++42 47 42 42 41 42 42 41 42 42 41 42 33 39 38 42 47 42 33 39 38 33 39 38
++42 41 42 32 39 24 33 39 38 33 39 38 33 39 38 33 39 38 33 39 38 33 39 38
++33 39 38 33 39 38 42 47 42 35 46 43 42 47 42 43 55 48 48 50 48 45 57 61
++52 55 48 54 57 61 54 57 61 45 57 61 54 57 61 54 57 61 48 50 48 54 57 61
++45 57 61 52 55 48 45 57 61 48 50 48 43 42 50 43 42 50 42 47 42 35 46 43
++34 40 43 33 39 38 33 39 38 31 35 35 31 35 35 31 35 35 31 35 35 33 30 36
++30 30 34 26 30 28 31 35 35 30 30 34 33 39 38 33 39 38 34 40 43 43 42 50
++48 50 48 48 50 48 45 57 61 54 57 61 53 63 61 63 59 71 75 72 67 75 64 82
++
++65 63 61 63 59 71 75 81 82 75 81 90 95 91 100 111 119 127 111 122 142 122 134 144
++129 144 153 150 147 171 150 147 171 150 168 183 150 147 171 166 176 200 166 176 200 150 147 171
++166 176 200 150 168 183 166 176 200 150 168 183 166 174 181 166 176 200 166 174 181 166 176 200
++166 156 164 166 174 181 166 174 181 166 174 181 166 174 181 166 176 200 166 176 200 166 176 200
++188 180 202 166 176 200 166 176 200 166 176 200 166 176 200 188 180 202 166 176 200 166 176 200
++185 202 202 166 176 200 166 176 200 194 199 226 166 176 200 188 180 202 166 176 200 166 176 200
++166 176 200 150 168 183 150 168 183 150 168 183 150 168 183 150 147 171 131 144 168 131 144 168
++122 134 144 119 117 138 95 108 128 77 90 100 75 81 90 60 63 87 46 59 71 54 57 61
++45 57 61 45 57 61 45 57 61 45 57 61 45 57 61 54 57 61 45 57 61 53 63 61
++59 69 70 59 69 70 75 72 67 59 79 61 75 72 67 59 79 61 75 77 62 64 70 48
++64 70 48 64 70 48 112 123 108 166 180 164 185 202 202 233 241 227 225 222 201 201 216 228
++225 222 201 201 216 228 225 222 201 201 216 228 225 222 201 201 216 228 225 222 201 201 216 228
++225 222 201 201 216 228 233 241 227 201 216 228 225 222 201 201 216 228 233 241 227 201 216 228
++233 241 227 201 216 228 201 216 228 233 241 227 233 241 227 201 216 228 225 222 201 201 216 228
++233 241 227 233 241 227 201 216 228 225 222 201 201 216 228 233 241 227 201 216 228 233 241 227
++201 216 228 225 222 201 201 216 228 225 222 201 201 216 228 208 215 180 185 202 202 189 165 168
++121 143 132 90 98 89 52 55 48 22 25 24 7 12 13 7 12 13 75 81 82 166 180 164
++185 202 202 233 241 227 201 216 228 225 222 201 201 216 228 225 222 201 201 216 228 233 241 227
++201 216 228 233 241 227 201 216 228 233 241 227 226 221 247 233 241 227 221 238 247 233 241 227
++235 238 247 240 251 247 235 238 247 240 251 247 240 251 247 240 251 247 233 241 227 235 238 247
++233 241 227 233 241 227 246 237 247 233 241 227 246 237 247 221 238 247 233 241 227 201 216 228
++233 241 227 226 221 247 221 238 247 226 221 247 231 239 247 226 221 247 235 238 247 226 221 247
++226 221 247 235 238 247 226 221 247 235 238 247 226 221 247 226 221 247 226 221 247 226 221 247
++221 238 247 226 221 247 231 239 247 226 221 247 221 238 247 221 238 247 231 239 247 226 221 247
++221 238 247 231 239 247 231 239 247 221 238 247 231 239 247 231 239 247 231 239 247 231 239 247
++231 239 247 226 221 247 231 239 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247
++226 221 247 226 221 247 226 221 247 226 221 247 208 221 247 226 221 247 221 238 247 226 221 247
++226 221 247 201 216 228 208 221 247 232 215 228 221 238 247 226 221 247 233 241 227 231 239 247
++225 222 201 148 160 159 75 81 76 22 25 24 31 35 35 43 55 48 43 42 50 35 47 50
++34 40 43 34 40 43 33 39 38 28 35 38 34 40 43 43 42 50 43 55 48 43 42 50
++48 50 48 43 42 50 45 57 61 54 57 61 59 57 61 52 55 48 65 55 54 88 83 74
++146 150 115 217 168 156 208 215 180 217 168 156 217 168 156 217 168 156 217 168 156 217 168 156
++197 171 123 217 168 156 197 171 123 214 214 134 217 168 156 214 214 134 217 168 156 208 215 180
++217 168 156 217 168 156 208 215 180 217 168 156 214 214 134 222 171 182 214 214 134 222 171 182
++214 214 134 225 222 201 222 171 182 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182
++214 214 134 225 222 201 217 168 156 225 222 201 227 171 124 225 222 201 217 168 156 225 222 201
++217 168 156 208 215 180 222 171 182 225 222 201 217 168 156 225 222 201 222 171 182 208 215 180
++217 168 156 208 215 180 217 168 156 214 214 134 217 168 156 189 165 168 214 214 134 217 168 156
++189 165 168 189 165 168 177 169 143 177 169 143 166 156 164 188 180 202 201 216 228 188 180 202
++119 117 138 45 57 61 22 23 31 12 18 30 28 30 35 26 30 28 33 30 30 33 30 30
++26 30 28 26 30 28 47 39 42 63 55 45 75 73 58 75 56 53 63 55 45 55 39 37
++55 39 18 52 30 35 33 30 30 33 30 30 34 30 15 33 30 30 26 25 15 17 12 17
++13 4 7 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 4 9
++3 4 9 3 3 1 3 3 1 3 4 9 7 12 13 13 4 7 3 4 9 3 4 9
++3 3 1 3 4 9 3 4 9 7 12 13 13 4 7 7 12 13 7 12 13 17 12 17
++13 4 7 17 12 17 13 4 7 7 12 13 7 12 13 14 16 17 17 12 17 17 12 17
++7 10 17 14 16 17 14 16 17 14 16 17 14 16 17 17 12 17 7 12 13 14 16 17
++7 12 13 14 16 17 14 16 17 15 22 17 23 20 24 12 18 20 22 25 24 22 25 24
++23 20 24 14 16 17 3 4 9 7 10 17 59 69 70 166 174 181 166 174 181 95 91 100
++22 23 31 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 4 9
++3 3 1 3 4 9 3 3 1 3 3 1 3 4 9 3 4 9 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1
++3 3 1 7 12 13 26 30 28 42 41 42 54 57 61 75 81 90 111 119 127 119 117 138
++111 119 127 95 95 116 94 105 108 111 119 127 94 105 108 75 81 82 59 69 70 53 63 61
++45 57 61 35 47 50 35 47 50 35 47 50 59 69 70 60 81 83 78 98 90 60 81 83
++75 81 90 75 81 90 60 81 83 75 81 90 75 81 90 60 81 83 75 81 90 60 81 83
++77 90 100 75 81 90 78 98 90 60 81 83 78 98 90 75 81 90 78 98 90 77 90 100
++90 98 89 77 90 100 78 98 90 95 91 100 90 98 89 77 90 100 90 98 89 95 91 100
++90 98 89 90 98 89 90 98 89 90 98 89 94 105 108 90 98 89 94 105 108 90 98 89
++95 91 100 90 98 89 90 98 89 95 91 100 90 98 89 95 91 100 90 98 89 78 98 90
++95 91 100 90 98 89 95 91 100 90 98 89 88 83 88 90 98 89 90 98 89 90 98 89
++77 90 100 90 98 89 88 83 88 90 98 89 90 98 89 88 83 88 90 98 89 90 98 89
++90 98 89 90 98 89 90 98 89 88 83 88 90 98 89 88 83 88 88 83 88 88 83 74
++88 83 88 88 83 74 75 81 76 88 83 74 75 81 76 75 81 76 75 72 67 75 81 69
++75 72 67 75 72 67 75 72 67 75 72 67 75 72 67 59 69 70 75 72 67 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 60 82 70 59 69 70 59 69 70 59 69 70
++59 69 70 75 81 76 59 69 70 60 81 83 59 69 70 60 81 83 59 69 70 60 81 83
++59 69 70 60 82 70 59 69 70 59 69 70 59 69 70 53 63 61 59 69 70 46 59 71
++53 63 61 45 57 61 50 61 48 45 57 61 50 61 48 53 63 61 45 57 61 50 61 48
++45 57 61 52 55 48 42 47 42 33 30 32 22 25 24 15 22 17 23 18 22 15 22 17
++23 18 22 23 20 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 23 20 24
++33 30 30 22 25 24 22 25 24 26 25 15 22 25 24 23 20 24 22 25 24 22 25 24
++22 25 24 22 25 24 23 20 24 26 25 15 23 20 24 22 25 24 22 25 24 22 25 24
++22 25 24 26 30 28 26 30 28 42 41 42 59 55 55 75 81 76 99 93 84 95 91 100
++90 98 89 95 91 100 90 98 89 90 98 89 95 91 100 94 105 108 138 102 108 121 143 132
++138 126 108 119 117 138 112 123 108 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127
++121 143 132 98 121 131 121 143 132 111 122 142 121 143 132 98 121 131 121 143 132 111 119 127
++121 143 132 122 134 144 121 143 132 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127
++112 123 108 111 119 127 95 108 128 112 123 108 94 105 108 94 105 108 94 105 108 94 105 108
++95 91 100 90 98 89 90 98 89 88 83 74 88 83 88 88 83 74 75 81 76 88 66 70
++75 72 67 75 81 76 88 66 70 75 81 69 75 72 67 75 72 67 75 72 67 75 72 67
++75 72 67 88 66 70 75 81 76 75 72 67 88 83 74 75 81 76 88 83 88 88 83 88
++77 90 100 77 90 100 95 91 100 94 105 108 94 105 108 94 105 108 94 105 108 95 119 107
++95 108 128 111 119 127 98 121 131 98 121 131 98 121 131 111 122 142 111 122 142 98 121 131
++126 147 144 111 122 142 98 121 131 126 147 144 98 121 131 122 134 144 98 121 131 121 143 132
++111 122 142 98 121 131 121 143 132 98 121 131 98 121 131 95 108 128 98 121 131 95 119 107
++77 91 115 95 119 107 77 91 115 77 90 100 77 90 100 60 81 83 75 81 90 60 81 83
++60 81 83 59 69 70 59 69 70 46 59 71 59 69 70 53 63 61 59 69 70 53 63 61
++63 59 71 53 63 61 59 69 70 53 63 61 59 69 70 53 63 61 53 63 61 59 57 61
++53 63 61 53 63 61 50 61 48 45 57 61 45 57 61 52 55 48 54 57 61 45 57 61
++48 50 48 48 50 48 42 47 42 47 49 42 42 47 42 42 41 42 42 47 42 42 41 42
++42 47 42 47 44 42 42 47 42 42 41 42 42 47 42 42 41 42 42 47 42 42 41 42
++42 41 42 32 39 24 42 41 42 32 39 24 42 47 42 33 39 38 42 47 42 33 39 38
++33 39 38 42 41 42 33 39 38 33 39 38 33 39 38 33 39 38 33 39 38 33 39 38
++33 39 38 33 39 38 33 39 38 35 46 43 43 42 50 43 55 48 48 50 48 48 50 48
++54 57 61 52 55 48 54 57 61 54 57 61 50 61 48 54 57 61 45 57 61 54 57 61
++54 57 61 52 55 48 45 57 61 48 50 48 43 55 48 48 50 48 43 42 50 35 46 43
++42 41 42 34 40 43 33 39 38 33 39 38 31 35 35 31 35 35 31 35 35 31 35 35
++31 35 35 31 35 35 25 30 29 31 35 35 33 39 38 34 40 43 42 41 42 43 55 48
++43 42 50 48 50 48 45 57 61 54 57 61 63 59 71 59 69 70 59 69 70 59 69 70
++
++65 63 61 75 72 67 75 81 82 88 83 88 95 91 100 94 105 108 111 119 127 126 147 144
++129 144 153 131 144 168 150 168 183 150 147 171 166 176 200 150 168 183 166 174 181 166 176 200
++166 174 181 166 174 181 166 176 200 166 156 164 166 176 200 166 156 164 166 176 200 166 156 164
++166 176 200 166 156 164 166 176 200 166 174 181 188 180 202 166 176 200 188 180 202 166 176 200
++166 176 200 166 176 200 166 176 200 166 176 200 188 180 202 166 176 200 166 176 200 188 180 202
++166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200
++150 168 183 166 176 200 150 168 183 150 147 171 150 147 171 150 168 183 131 144 168 129 144 153
++122 134 144 111 119 127 95 108 128 94 105 108 75 81 90 59 69 70 59 69 70 46 59 71
++54 57 61 54 57 61 54 57 61 53 63 61 53 63 61 53 63 61 53 63 61 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 75 77 62 59 69 70 64 70 48 59 69 70
++75 81 69 112 123 108 166 180 164 208 215 180 232 215 228 233 241 227 201 216 228 233 241 227
++201 216 228 225 222 201 201 216 228 225 222 201 201 216 228 225 222 201 201 216 228 225 222 201
++201 216 228 225 222 201 201 216 228 225 222 201 201 216 228 233 241 227 225 222 201 233 241 227
++201 216 228 225 222 201 233 241 227 201 216 228 201 216 228 225 222 201 201 216 228 225 222 201
++201 216 228 225 222 201 185 202 202 225 222 201 201 216 228 225 222 201 201 216 228 208 215 180
++201 216 228 225 222 201 201 216 228 225 222 201 185 202 202 185 202 202 146 162 145 112 123 108
++55 55 48 22 25 24 12 18 20 15 22 17 31 35 35 53 63 61 121 143 132 185 202 202
++225 222 201 232 215 228 185 202 202 225 222 201 201 216 228 225 222 201 233 241 227 201 216 228
++233 241 227 201 216 228 232 215 228 201 216 228 201 216 228 221 238 247 233 241 227 221 238 247
++231 239 247 231 239 247 235 238 247 240 251 247 235 238 247 233 241 227 240 251 247 233 241 227
++231 239 247 233 241 227 233 241 227 231 239 247 231 239 247 232 215 228 201 216 228 208 221 247
++226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 226 221 247 226 221 247 226 221 247
++231 239 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247
++235 238 247 231 239 247 226 221 247 231 239 247 231 239 247 226 221 247 231 239 247 231 239 247
++231 239 247 226 221 247 231 239 247 231 239 247 235 238 247 231 239 247 235 238 247 235 238 247
++226 221 247 235 238 247 226 221 247 226 221 247 226 221 247 226 221 247 232 215 228 226 221 247
++226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 208 221 247 226 221 247
++208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 226 221 247 231 239 247
++194 199 226 119 117 138 45 57 61 22 23 31 37 35 43 43 42 50 43 42 50 35 46 43
++34 40 43 34 40 43 33 30 36 28 35 38 37 35 43 34 40 43 43 42 50 43 42 50
++35 47 50 48 50 48 54 57 61 59 57 61 65 63 61 52 55 48 75 72 67 138 102 108
++177 169 143 217 168 156 217 168 156 214 214 134 217 168 156 197 171 123 217 168 156 197 171 123
++217 168 156 217 168 156 217 168 156 217 168 156 214 214 134 217 168 156 208 215 180 217 168 156
++214 214 134 222 171 182 214 214 134 222 171 182 222 171 182 214 214 134 222 171 182 225 222 201
++217 168 156 214 214 134 222 171 182 214 214 134 225 222 201 217 168 156 225 222 201 222 171 182
++222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 214 214 134
++222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 217 168 156
++217 168 156 217 168 156 217 168 156 217 168 156 189 165 168 214 214 134 189 165 168 197 171 123
++217 168 156 177 169 143 217 168 156 168 146 127 177 169 143 177 169 143 189 165 168 225 222 201
++188 180 202 145 140 145 60 63 87 12 18 30 15 22 17 22 23 31 26 30 28 26 25 15
++26 12 13 55 39 18 88 73 62 101 83 74 101 83 74 101 83 74 88 73 31 75 56 53
++55 39 37 55 39 18 52 30 35 34 30 15 34 30 15 33 30 30 34 30 15 28 13 18
++26 12 13 15 17 7 13 4 7 7 12 13 13 4 7 3 3 1 13 4 7 6 15 6
++3 4 9 3 3 1 3 4 9 13 4 7 7 12 13 7 12 13 3 4 9 3 3 1
++3 4 9 3 4 9 13 4 7 3 4 9 7 12 13 7 12 13 17 12 17 7 12 13
++7 12 13 7 12 13 7 12 13 7 12 13 17 12 17 17 12 17 7 12 13 7 12 13
++13 4 7 14 16 17 7 10 17 17 12 17 14 16 17 14 16 17 17 12 17 14 16 17
++14 16 17 14 16 17 12 18 20 23 20 24 23 20 24 22 25 24 12 18 20 22 25 24
++12 18 30 7 12 13 3 3 1 34 40 43 111 119 127 185 202 202 166 156 164 35 47 50
++7 10 17 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 4 9
++3 4 9 3 4 9 3 4 9 3 4 9 3 4 9 3 4 9 3 4 9 3 3 1
++3 4 9 3 4 9 3 4 9 3 4 9 7 12 13 17 12 17 26 24 32 30 30 34
++33 39 38 43 42 50 88 83 88 122 134 144 150 144 154 166 156 164 150 168 183 166 156 164
++129 144 153 111 119 127 75 81 90 35 47 50 29 34 50 53 63 61 75 81 90 78 98 90
++75 81 90 60 81 83 78 98 90 75 81 90 60 81 83 78 98 90 77 90 100 75 81 90
++78 98 90 75 81 90 77 90 100 75 81 90 77 90 100 77 90 100 77 90 100 77 90 100
++78 98 90 77 90 100 94 105 108 78 98 90 95 91 100 95 91 100 90 98 89 77 90 100
++94 105 108 90 98 89 95 91 100 90 98 89 95 91 100 90 98 89 95 91 100 90 98 89
++95 91 100 78 98 90 95 91 100 78 98 90 95 91 100 78 98 90 95 91 100 95 91 100
++90 98 89 95 91 100 90 98 89 77 90 100 90 98 89 95 91 100 77 90 100 90 98 89
++95 91 100 78 98 90 90 98 89 90 98 89 88 83 88 90 98 89 90 98 89 95 91 100
++90 98 89 88 83 88 90 98 89 90 98 89 88 83 88 90 98 89 87 99 72 88 83 88
++75 81 82 88 83 74 75 81 82 75 81 76 75 72 67 75 72 67 75 72 67 75 72 67
++59 69 70 75 72 67 59 69 70 75 72 67 59 69 70 75 72 67 59 69 70 59 69 70
++75 72 67 59 69 70 59 69 70 75 72 67 59 69 70 59 69 70 75 72 67 59 69 70
++60 81 83 59 69 70 60 81 83 59 69 70 60 81 83 59 69 70 60 81 83 59 69 70
++59 69 70 60 81 83 59 69 70 46 59 71 59 69 70 46 59 71 59 69 70 53 63 61
++53 63 61 53 63 61 45 57 61 53 63 61 45 57 61 45 57 61 53 63 61 45 57 61
++54 57 61 53 63 61 48 50 48 43 42 50 30 30 34 23 18 22 15 22 17 14 16 17
++23 18 22 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24 22 25 24
++22 25 24 23 20 24 23 20 24 23 20 24 22 25 24 22 25 24 22 25 24 23 20 24
++26 30 28 23 20 24 26 25 15 26 24 32 23 20 24 22 25 24 22 25 24 22 25 24
++22 25 24 22 25 24 22 25 24 33 30 30 47 49 42 65 63 61 75 81 76 90 98 89
++90 98 89 99 93 84 99 93 84 88 83 74 99 93 84 98 113 84 112 123 108 112 123 108
++138 126 108 138 126 108 121 143 132 146 150 115 121 143 132 138 126 108 121 143 132 112 123 108
++111 119 127 121 143 132 111 119 127 121 143 132 111 119 127 121 143 132 122 134 144 111 122 142
++121 143 132 111 119 127 111 122 142 121 143 132 111 119 127 111 119 127 111 119 127 111 119 127
++111 119 127 112 123 108 94 105 108 112 96 108 94 105 108 112 96 108 94 105 108 99 93 84
++90 98 89 99 93 84 88 83 88 88 83 74 88 83 74 88 83 74 75 72 67 88 83 74
++88 83 74 99 93 84 99 93 84 117 99 86 112 123 108 99 93 84 99 93 84 99 93 84
++88 83 74 75 81 69 75 72 67 88 83 74 75 81 82 88 69 84 88 83 88 88 83 88
++95 91 100 95 91 100 77 90 100 95 95 116 95 91 100 95 95 116 94 105 108 95 108 128
++94 105 108 98 121 131 95 108 128 111 119 127 111 122 142 98 121 131 121 143 132 98 121 131
++98 121 131 98 121 131 111 122 142 98 121 131 126 147 144 98 121 131 111 122 142 98 121 131
++111 122 142 98 121 131 98 121 131 98 121 131 98 121 131 95 119 107 95 108 128 95 108 128
++95 119 107 77 91 115 77 91 115 78 98 90 61 78 101 77 90 100 60 81 83 60 81 83
++75 81 82 59 69 70 59 69 70 59 69 70 53 63 61 53 63 61 53 63 61 53 63 61
++59 69 70 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 59 57 61 53 63 61
++54 57 61 50 61 48 45 57 61 52 55 48 52 55 48 45 57 61 48 50 48 48 50 48
++48 50 48 48 50 48 48 50 48 43 42 50 42 47 42 42 41 42 42 41 42 42 41 42
++42 41 42 42 41 42 42 41 42 42 41 42 47 47 21 42 41 42 47 47 21 33 39 38
++42 41 42 42 41 42 36 35 37 42 47 42 36 35 37 42 47 42 33 39 38 33 39 38
++42 47 42 33 39 38 33 39 38 33 39 38 33 39 38 33 39 38 33 39 38 42 47 42
++33 39 38 42 47 42 42 47 42 42 47 42 48 50 48 43 55 48 48 50 48 45 57 61
++54 57 61 54 57 61 54 57 61 50 61 48 54 57 61 54 57 61 50 61 48 45 57 61
++50 61 48 45 57 61 52 55 48 43 55 48 48 50 48 35 47 50 43 42 50 42 47 42
++35 46 43 34 40 43 33 39 38 36 35 37 33 39 38 36 35 37 36 35 37 31 35 35
++31 35 35 31 35 35 31 35 35 31 35 35 33 39 38 34 40 43 43 42 50 43 42 50
++45 57 61 48 50 48 54 57 61 54 57 61 53 63 61 63 59 71 75 81 82 75 64 82
++
++63 59 71 75 81 76 75 81 82 75 81 90 94 105 108 95 108 128 111 119 127 122 134 144
++129 144 153 150 147 171 150 147 171 150 168 183 150 147 171 166 176 200 150 147 171 166 176 200
++150 168 183 166 176 200 166 156 164 166 176 200 166 176 200 166 176 200 166 156 164 166 174 181
++150 147 171 166 176 200 166 156 164 166 174 181 166 174 181 166 176 200 166 174 181 166 174 181
++166 176 200 166 174 181 166 176 200 166 176 200 166 176 200 166 176 200 185 202 202 166 176 200
++166 176 200 194 199 226 166 176 200 188 180 202 166 176 200 166 176 200 166 176 200 166 176 200
++166 176 200 166 174 181 150 168 183 150 168 183 150 168 183 131 144 168 131 144 168 129 144 153
++111 122 142 119 117 138 94 105 108 95 95 116 75 81 90 75 81 90 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 46 59 71 59 69 70 59 69 70 53 63 61
++59 69 70 59 69 70 75 72 67 59 69 70 59 69 70 59 79 61 65 63 61 75 99 72
++138 126 108 166 180 164 201 216 228 225 222 201 201 216 228 225 222 201 201 216 228 225 222 201
++233 241 227 201 216 228 225 222 201 201 216 228 233 241 227 201 216 228 208 215 180 201 216 228
++208 215 180 201 216 228 185 202 202 225 222 201 201 216 228 225 222 201 201 216 228 201 216 228
++225 222 201 185 202 202 201 216 228 225 222 201 225 222 201 185 202 202 208 215 180 201 216 228
++208 215 180 185 202 202 185 202 202 185 202 202 208 215 180 185 202 202 208 215 180 185 202 202
++208 215 180 201 216 228 208 215 180 166 174 181 146 162 145 111 119 127 75 72 67 30 30 34
++7 12 13 15 22 17 43 55 48 75 72 67 95 119 107 145 140 145 166 174 181 225 222 201
++225 222 201 201 216 228 225 222 201 185 202 202 225 222 201 201 216 228 225 222 201 201 216 228
++201 216 228 225 222 201 201 216 228 201 216 228 221 238 247 232 215 228 221 238 247 226 221 247
++233 241 227 231 239 247 240 251 247 231 239 247 240 251 247 231 239 247 233 241 227 231 239 247
++233 241 227 231 239 247 233 241 227 221 238 247 233 241 227 208 221 247 201 216 228 226 221 247
++208 221 247 221 238 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247
++226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 235 238 247
++226 221 247 235 238 247 235 238 247 226 221 247 231 239 247 231 239 247 231 239 247 226 221 247
++231 239 247 231 239 247 235 238 247 235 238 247 235 238 247 235 238 247 226 221 247 235 238 247
++226 221 247 226 221 247 226 221 247 232 215 228 226 221 247 226 221 247 226 221 247 226 221 247
++226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 208 221 247
++208 221 247 208 221 247 208 221 247 221 238 247 208 221 247 221 238 247 226 221 247 221 238 247
++188 180 202 95 91 100 33 30 36 24 30 43 43 42 50 43 55 48 43 42 50 43 42 50
++37 35 43 34 40 43 37 35 43 36 35 37 37 35 43 34 40 43 34 40 43 34 40 43
++34 40 43 43 42 50 54 57 61 54 57 61 54 57 61 62 47 47 87 99 72 168 146 127
++189 165 168 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 214 214 134 217 168 156
++214 214 134 217 168 156 214 214 134 217 168 156 214 214 134 217 168 156 217 168 156 214 214 134
++217 168 156 208 215 180 222 171 182 214 214 134 222 171 182 214 214 134 225 222 201 227 171 124
++225 222 201 222 171 182 225 222 201 214 214 134 222 171 182 214 214 134 222 171 182 214 214 134
++225 222 201 217 168 156 225 222 201 227 171 124 225 222 201 217 168 156 225 222 201 217 168 156
++225 222 201 222 171 182 225 222 201 222 171 182 214 214 134 217 168 156 222 171 182 214 214 134
++217 168 156 208 215 180 189 165 168 214 214 134 217 168 156 217 168 156 217 168 156 217 168 156
++177 169 143 197 171 123 197 171 123 177 169 143 168 146 127 168 146 127 166 156 164 189 165 168
++201 216 228 194 199 226 131 144 168 75 81 82 22 23 31 12 18 30 23 18 22 15 17 7
++53 35 17 88 73 62 117 99 86 117 99 86 117 112 45 88 73 62 88 73 62 76 46 20
++55 39 37 55 39 18 55 39 37 53 35 17 33 30 30 52 30 15 33 30 30 33 30 30
++26 25 15 22 25 24 26 25 15 26 25 15 22 24 13 15 17 7 6 15 6 13 4 7
++7 12 13 3 4 9 3 4 9 6 15 6 13 4 7 7 12 13 13 4 7 3 4 9
++3 3 1 3 4 9 3 3 1 3 4 9 7 12 13 13 4 7 7 12 13 13 4 7
++7 12 13 13 4 7 17 12 17 13 4 7 7 12 13 7 12 13 7 12 13 13 4 7
++7 10 17 17 12 17 7 10 17 17 12 17 17 12 17 17 12 17 17 12 17 12 18 20
++12 18 20 12 18 20 12 18 20 23 18 22 15 22 17 12 18 20 22 25 24 12 18 20
++22 25 24 7 10 17 3 4 9 75 81 90 166 174 181 188 180 202 95 108 128 3 4 9
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1
++3 3 1 3 4 9 3 3 1 3 3 1 3 4 9 3 3 1 3 4 9 3 4 9
++3 4 9 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13 13 4 7
++7 12 13 7 12 13 3 4 9 13 4 7 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 7 10 17 28 35 38 59 69 70 95 91 100 122 134 144 150 144 154 166 174 181
++185 202 202 166 174 181 131 144 168 94 105 108 60 81 83 59 69 70 75 81 90 75 81 90
++75 81 90 78 98 90 75 81 90 75 81 90 78 98 90 77 90 100 60 81 83 78 98 90
++61 78 101 78 98 90 77 90 100 78 98 90 77 90 100 78 98 90 77 90 100 77 90 100
++77 90 100 90 98 89 77 90 100 78 98 90 77 90 100 78 98 90 95 91 100 90 98 89
++90 98 89 95 91 100 90 98 89 94 105 108 90 98 89 95 91 100 90 98 89 94 105 108
++90 98 89 95 91 100 78 98 90 95 91 100 90 98 89 95 91 100 90 98 89 95 91 100
++95 91 100 77 90 100 90 98 89 94 105 108 77 90 100 90 98 89 90 98 89 95 91 100
++78 98 90 95 91 100 88 83 88 90 98 89 95 91 100 90 98 89 90 98 89 90 98 89
++90 98 89 90 98 89 88 83 88 90 98 89 90 98 89 99 93 84 90 98 89 88 83 88
++88 83 88 75 81 82 75 81 76 75 72 67 75 81 76 75 72 67 75 81 76 75 81 76
++75 72 67 75 72 67 75 73 58 75 72 67 59 69 70 75 72 67 59 69 70 75 72 67
++59 69 70 59 69 70 59 69 70 59 69 70 75 81 76 59 69 70 59 69 70 59 69 70
++75 81 76 59 69 70 75 81 76 60 81 83 60 82 70 60 81 83 59 69 70 60 81 83
++60 81 83 59 69 70 59 69 70 59 69 70 59 69 70 53 63 61 59 69 70 46 59 71
++53 63 61 45 57 61 53 63 61 45 57 61 53 63 61 45 57 61 45 57 61 50 61 48
++43 55 48 45 57 61 54 57 61 48 50 48 31 35 35 23 20 24 23 18 22 15 22 17
++23 18 22 22 25 24 23 20 24 22 25 24 23 20 24 23 20 24 23 20 24 33 30 30
++22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 23 20 24 22 25 24 22 25 24
++26 25 15 22 25 24 23 20 24 23 20 24 26 25 15 22 25 24 23 20 24 23 20 24
++26 25 15 23 20 24 22 24 13 22 25 24 33 30 30 42 47 42 59 55 55 65 63 61
++75 72 67 75 81 82 90 98 89 99 93 84 112 123 108 117 99 86 99 93 84 99 93 84
++117 99 86 112 123 108 138 126 108 138 126 108 138 126 108 138 126 108 121 143 132 138 126 108
++121 143 132 138 126 108 121 143 132 122 134 144 121 143 132 111 119 127 121 143 132 111 122 142
++121 143 132 111 122 142 121 143 132 111 119 127 111 119 127 112 123 108 111 119 127 95 119 107
++111 119 127 95 108 128 111 119 127 112 96 108 94 105 108 94 105 108 95 91 100 95 91 100
++99 93 84 88 83 88 99 93 84 99 93 84 95 91 100 99 93 84 117 99 86 112 123 108
++138 126 108 138 126 108 146 151 137 146 162 145 146 151 137 146 151 137 146 150 115 121 143 132
++138 126 108 95 91 100 88 83 88 88 66 70 75 81 82 75 81 82 75 81 90 95 91 100
++88 83 88 77 90 100 95 91 100 77 90 100 95 95 116 94 105 108 94 105 108 94 105 108
++95 108 128 95 119 107 98 121 131 98 121 131 111 122 142 98 121 131 98 121 131 98 121 131
++122 134 144 98 121 131 126 147 144 111 122 142 98 121 131 126 147 144 98 121 131 122 134 144
++98 121 131 121 143 132 98 121 131 98 121 131 98 121 131 98 121 131 95 119 107 95 108 128
++77 91 115 95 119 107 77 90 100 77 90 100 77 90 100 75 81 90 60 81 83 60 81 83
++60 81 83 60 63 87 59 69 70 59 69 70 59 69 70 53 63 61 59 69 70 53 63 61
++53 63 61 59 69 70 53 63 61 53 63 61 59 69 70 53 63 61 59 57 61 53 63 61
++54 57 61 54 57 61 50 61 48 54 57 61 45 57 61 54 57 61 43 55 48 48 50 48
++42 47 42 43 42 50 42 47 42 35 46 43 42 41 42 33 39 38 42 47 42 33 39 38
++36 35 37 33 39 38 33 39 38 36 35 37 42 41 42 33 39 38 42 41 42 42 41 42
++42 41 42 32 39 24 42 47 42 36 35 37 33 39 38 33 39 38 42 41 42 33 39 38
++36 35 37 33 39 38 36 35 37 33 39 38 35 46 43 34 40 43 42 41 42 34 40 43
++35 46 43 34 40 43 35 46 43 35 47 50 43 42 50 48 50 48 45 57 61 48 50 48
++54 57 61 50 61 48 54 57 61 54 57 61 50 61 48 54 57 61 45 57 61 54 57 61
++45 57 61 54 57 61 43 55 48 45 57 61 43 55 48 48 50 48 43 55 48 42 47 42
++42 47 42 42 41 42 34 40 43 34 40 43 33 39 38 36 35 37 33 39 38 36 35 37
++31 35 35 31 35 35 31 35 35 33 39 38 34 40 43 42 41 42 35 47 50 48 50 48
++48 50 48 54 57 61 54 57 61 53 63 61 63 59 71 59 69 70 59 69 70 75 81 76
++
++75 81 76 75 81 76 88 83 88 95 91 100 95 91 100 95 119 107 111 119 127 122 134 144
++129 144 153 131 144 168 150 168 183 150 168 183 150 168 183 150 168 183 166 174 181 150 168 183
++166 176 200 166 156 164 166 176 200 150 147 171 166 176 200 166 156 164 166 176 200 150 147 171
++166 176 200 166 156 164 166 176 200 150 147 171 166 176 200 166 156 164 166 176 200 166 176 200
++166 174 181 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200
++188 180 202 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 174 181
++150 168 183 150 168 183 166 176 200 150 147 171 150 147 171 148 160 159 131 144 168 122 134 144
++122 134 144 111 119 127 95 108 128 94 105 108 77 90 100 75 81 90 60 81 83 75 81 76
++59 69 70 59 69 70 60 63 87 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 59 79 61 75 72 67 75 81 69 112 123 108
++166 174 181 225 222 201 225 222 201 201 216 228 225 222 201 201 216 228 233 241 227 201 216 228
++225 222 201 201 216 228 225 222 201 201 216 228 225 222 201 201 216 228 201 216 228 208 215 180
++201 216 228 225 222 201 201 216 228 208 215 180 201 216 228 225 222 201 201 216 228 208 215 180
++185 202 202 208 215 180 185 202 202 208 215 180 185 202 202 185 202 202 185 202 202 185 202 202
++185 202 202 185 202 202 208 215 180 185 202 202 225 222 201 185 202 202 185 202 202 208 215 180
++185 202 202 185 202 202 166 180 164 121 143 132 88 83 74 47 44 42 15 22 17 7 12 13
++33 39 38 75 81 76 111 119 127 148 160 159 166 174 181 185 202 202 208 215 180 201 216 228
++185 202 202 208 215 180 185 202 202 225 222 201 201 216 228 201 216 228 225 222 201 201 216 228
++225 222 201 201 216 228 201 216 228 233 241 227 201 216 228 221 238 247 233 241 227 208 221 247
++221 238 247 231 239 247 231 239 247 231 239 247 233 241 227 233 241 227 233 241 227 233 241 227
++221 238 247 233 241 227 231 239 247 233 241 227 201 216 228 201 216 228 232 215 228 201 216 228
++221 238 247 226 221 247 208 221 247 226 221 247 208 221 247 232 215 228 226 221 247 226 221 247
++226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 235 238 247 226 221 247
++235 238 247 235 238 247 231 239 247 231 239 247 231 239 247 226 221 247 231 239 247 231 239 247
++226 221 247 231 239 247 235 238 247 235 238 247 235 238 247 235 238 247 226 221 247 226 221 247
++226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247
++232 215 228 226 221 247 226 221 247 232 215 228 226 221 247 208 221 247 226 221 247 208 221 247
++232 215 228 208 221 247 201 216 228 208 221 247 208 221 247 208 221 247 221 238 247 208 221 247
++150 147 171 60 63 87 23 30 35 43 42 50 43 42 50 43 42 50 35 47 50 42 41 42
++43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 43 42 50 34 40 43 37 35 43
++34 40 43 48 50 48 43 55 48 48 50 48 47 44 42 63 55 51 117 99 86 177 169 143
++208 215 180 217 168 156 217 168 156 214 214 134 217 168 156 217 168 156 208 215 180 217 168 156
++208 215 180 217 168 156 214 214 134 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156
++208 215 180 217 168 156 214 214 134 222 171 182 208 215 180 222 171 182 214 214 134 222 171 182
++214 214 134 222 171 182 214 214 134 222 171 182 225 222 201 227 171 124 225 222 201 217 168 156
++217 168 156 214 214 134 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 214 214 134
++222 171 182 214 214 134 217 168 156 214 214 134 222 171 182 222 171 182 214 214 134 222 171 182
++217 168 156 217 168 156 217 168 156 217 168 156 177 169 143 217 168 156 177 169 143 197 171 123
++217 168 156 177 169 143 201 146 124 177 169 143 201 146 124 168 146 127 150 144 154 168 146 127
++166 156 164 185 202 202 201 216 228 150 144 154 59 69 70 25 30 29 13 4 7 33 30 30
++75 73 58 117 99 86 117 99 86 117 99 86 101 60 73 88 73 31 88 44 51 76 46 20
++55 39 37 55 39 18 53 35 37 53 35 17 33 30 30 34 30 15 33 30 30 33 30 30
++34 30 15 33 30 30 33 30 30 33 30 30 34 30 15 23 18 22 15 17 7 13 4 7
++7 12 13 13 4 7 3 3 1 3 4 9 7 12 13 15 17 7 3 4 9 3 4 9
++13 4 7 3 4 9 3 4 9 13 4 7 3 4 9 7 12 13 7 12 13 17 12 17
++13 4 7 7 12 13 7 12 13 7 12 13 17 12 17 13 4 7 7 12 13 17 12 17
++7 12 13 17 12 17 7 10 17 17 12 17 14 16 17 14 16 17 14 16 17 14 16 17
++12 18 20 12 18 20 14 16 17 14 16 17 12 18 20 23 18 22 12 18 20 22 25 24
++7 10 17 14 16 17 22 23 31 122 134 144 185 202 202 129 144 153 54 57 61 3 3 1
++3 3 1 3 4 9 3 3 1 3 3 1 3 4 9 13 4 7 13 4 7 3 4 9
++13 4 7 7 12 13 13 4 7 7 12 13 7 12 13 13 4 7 7 12 13 7 12 13
++7 12 13 17 12 17 7 12 13 7 12 13 14 16 17 14 16 17 7 12 13 14 16 17
++14 16 17 14 16 17 23 18 22 23 18 22 23 20 24 23 20 24 22 23 31 26 24 32
++23 20 24 12 18 20 7 12 13 3 4 9 7 10 17 30 30 34 48 50 48 75 81 82
++94 105 108 119 117 138 126 147 144 122 134 144 94 105 108 77 90 100 60 81 83 75 81 90
++78 98 90 77 90 100 60 81 83 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100
++78 98 90 77 90 100 77 90 100 77 90 100 78 98 90 77 90 100 77 90 100 77 90 100
++90 98 89 77 90 100 78 98 90 94 105 108 90 98 89 95 91 100 77 90 100 94 105 108
++78 98 90 94 105 108 95 91 100 90 98 89 95 91 100 90 98 89 94 105 108 90 98 89
++95 91 100 78 98 90 95 91 100 90 98 89 77 90 100 90 98 89 95 91 100 77 90 100
++90 98 89 94 105 108 90 98 89 95 91 100 90 98 89 90 98 89 77 90 100 90 98 89
++90 98 89 77 90 100 90 98 89 90 98 89 88 83 88 90 98 89 90 98 89 95 91 100
++90 98 89 95 91 100 90 98 89 95 91 100 99 93 84 88 83 88 88 83 88 90 98 89
++88 83 74 75 81 76 88 83 74 75 81 76 75 72 67 75 81 76 75 72 67 75 72 67
++75 72 67 75 81 76 59 69 70 75 72 67 75 72 67 59 69 70 75 72 67 59 69 70
++59 69 70 75 72 67 60 63 87 59 69 70 75 64 82 59 69 70 60 81 83 59 69 70
++60 81 83 59 69 70 60 81 83 59 69 70 60 81 83 59 69 70 60 81 83 59 69 70
++60 81 83 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 46 59 71 53 63 61
++53 63 61 53 63 61 45 57 61 53 63 61 45 57 61 53 63 61 45 57 61 45 57 61
++52 55 48 43 55 48 54 57 61 59 55 55 34 40 43 22 25 24 12 18 20 23 18 22
++15 22 17 22 25 24 22 25 24 23 20 24 22 24 13 23 20 24 23 18 22 22 25 24
++22 25 24 23 20 24 23 20 24 22 24 13 22 25 24 22 25 24 22 25 24 23 20 24
++26 24 32 23 20 24 22 25 24 22 25 24 22 25 24 23 20 24 22 25 24 22 25 24
++22 25 24 22 25 24 23 18 22 22 24 13 22 25 24 26 25 15 22 25 24 31 35 35
++59 55 55 90 98 89 112 123 108 145 140 145 138 126 108 112 123 108 99 93 84 88 83 74
++98 113 84 117 99 86 112 123 108 112 123 108 112 123 108 111 119 127 138 126 108 121 143 132
++111 119 127 121 143 132 141 116 139 121 143 132 111 119 127 121 143 132 111 119 127 121 143 132
++111 119 127 111 119 127 111 119 127 111 119 127 112 123 108 98 121 131 95 119 107 111 119 127
++94 105 108 112 96 108 94 105 108 94 105 108 94 105 108 99 93 84 95 91 100 90 98 89
++95 91 100 112 96 108 112 123 108 138 126 108 121 143 132 146 151 137 146 151 137 146 151 137
++166 156 164 166 180 164 189 165 168 189 165 168 208 215 180 177 169 143 166 180 164 177 169 143
++150 144 154 138 126 108 90 98 89 88 83 74 75 72 67 88 83 88 88 83 88 88 83 88
++88 83 88 95 91 100 77 90 100 95 91 100 94 105 108 95 95 116 94 105 108 95 108 128
++94 105 108 95 108 128 111 119 127 111 119 127 98 121 131 111 122 142 121 143 132 98 121 131
++111 122 142 98 121 131 98 121 131 98 121 131 122 134 144 98 121 131 111 122 142 98 121 131
++98 121 131 98 121 131 98 121 131 98 121 131 95 119 107 95 108 128 95 108 128 94 105 108
++77 91 115 94 105 108 77 91 115 77 90 100 61 78 101 60 81 83 60 81 83 60 81 83
++59 69 70 59 69 70 59 69 70 46 59 71 53 63 61 53 63 61 53 63 61 53 63 61
++59 69 70 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 59 57 61
++53 63 61 45 57 61 50 61 48 45 57 61 48 50 48 43 55 48 48 50 48 43 42 50
++42 47 42 35 46 43 42 41 42 34 40 43 33 39 38 42 41 42 36 35 37 33 39 38
++42 41 42 36 35 37 47 47 21 42 41 42 32 39 24 42 41 42 36 35 37 47 47 21
++36 35 37 36 35 37 42 41 42 32 39 24 42 41 42 33 39 38 33 39 38 33 39 38
++33 39 38 42 41 42 33 39 38 34 40 43 33 39 38 34 40 43 35 46 43 35 46 43
++42 41 42 35 46 43 43 42 50 42 47 42 43 55 48 45 57 61 48 50 48 45 57 61
++54 57 61 54 57 61 54 57 61 53 63 61 54 57 61 50 61 48 54 57 61 50 61 48
++54 57 61 50 61 48 45 57 61 52 55 48 48 50 48 45 57 61 43 42 50 42 47 42
++35 46 43 35 46 43 42 41 42 33 39 38 33 39 38 33 39 38 36 35 37 33 39 38
++36 35 37 33 39 38 33 39 38 33 39 38 34 40 43 42 41 42 43 42 50 48 50 48
++45 57 61 54 57 61 54 57 61 59 57 61 59 69 70 75 64 82 75 81 76 75 64 82
++
++75 81 76 75 81 82 95 91 100 90 98 89 94 105 108 111 119 127 111 122 142 122 134 144
++129 144 153 131 144 168 150 147 171 150 147 171 150 168 183 150 168 183 166 174 181 166 176 200
++150 147 171 166 176 200 166 174 181 166 176 200 166 176 200 166 156 164 166 176 200 150 147 171
++189 165 168 150 147 171 166 156 164 166 176 200 166 156 164 166 176 200 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 176 200 166 176 200 166 176 200 166 176 200 194 199 226
++166 176 200 166 176 200 166 176 200 185 202 202 166 176 200 166 176 200 166 176 200 150 168 183
++166 176 200 166 174 181 150 168 183 150 168 183 150 168 183 150 147 171 131 144 168 122 134 144
++122 134 144 111 119 127 111 119 127 94 105 108 77 90 100 75 81 90 75 81 90 75 81 82
++75 81 82 60 81 83 75 81 82 75 81 82 60 81 83 60 81 83 59 69 70 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 60 82 70 112 123 108 166 180 164
++225 222 201 201 216 228 225 222 201 201 216 228 225 222 201 201 216 228 233 241 227 201 216 228
++225 222 201 201 216 228 225 222 201 201 216 228 225 222 201 201 216 228 208 215 180 201 216 228
++185 202 202 225 222 201 185 202 202 185 202 202 185 202 202 208 215 180 185 202 202 208 215 180
++185 202 202 185 202 202 208 215 180 185 202 202 185 202 202 185 202 202 208 215 180 166 180 164
++208 215 180 166 180 164 185 202 202 208 215 180 188 180 202 208 215 180 188 180 202 185 202 202
++189 165 168 146 151 137 112 96 108 55 55 48 15 17 7 6 15 6 22 25 24 59 79 61
++112 123 108 146 162 145 185 202 202 185 202 202 208 215 180 185 202 202 185 202 202 208 215 180
++185 202 202 225 222 201 185 202 202 185 202 202 225 222 201 185 202 202 225 222 201 201 216 228
++201 216 228 201 216 228 201 216 228 201 216 228 201 216 228 226 221 247 201 216 228 221 238 247
++232 215 228 231 239 247 221 238 247 231 239 247 201 216 228 233 241 227 201 216 228 221 238 247
++233 241 227 233 241 227 233 241 227 201 216 228 201 216 228 201 216 228 201 216 228 208 221 247
++226 221 247 208 221 247 208 221 247 232 215 228 226 221 247 208 221 247 226 221 247 226 221 247
++226 221 247 208 221 247 232 215 228 226 221 247 226 221 247 226 221 247 235 238 247 235 238 247
++231 239 247 226 221 247 231 239 247 226 221 247 231 239 247 231 239 247 221 238 247 231 239 247
++231 239 247 226 221 247 235 238 247 235 238 247 226 221 247 226 221 247 226 221 247 226 221 247
++226 221 247 226 221 247 232 215 228 226 221 247 226 221 247 226 221 247 232 215 228 226 221 247
++226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 232 215 228 208 221 247
++208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 226 221 247 221 238 247 188 180 202
++111 119 127 43 42 50 23 30 35 43 42 50 45 57 61 48 50 48 43 42 50 43 42 50
++54 57 61 59 57 61 59 57 61 54 57 61 48 50 48 43 55 48 43 42 50 35 46 43
++43 42 50 48 50 48 43 42 50 42 41 42 47 44 42 88 73 62 146 150 115 177 169 143
++217 168 156 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 214 214 134 217 168 156
++217 168 156 214 214 134 217 168 156 217 168 156 217 168 156 214 214 134 217 168 156 214 214 134
++222 171 182 214 214 134 222 171 182 217 168 156 225 222 201 227 171 124 225 222 201 222 171 182
++225 222 201 217 168 156 225 222 201 222 171 182 227 171 124 225 222 201 227 171 124 225 222 201
++217 168 156 225 222 201 217 168 156 208 215 180 217 168 156 225 222 201 222 171 182 225 222 201
++227 171 124 225 222 201 222 171 182 222 171 182 214 214 134 217 168 156 217 168 156 217 168 156
++217 168 156 217 168 156 177 169 143 217 168 156 217 168 156 217 168 156 217 168 156 177 169 143
++201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 177 169 143 168 146 127 168 146 127
++145 140 145 168 146 127 208 215 180 185 202 202 145 140 145 59 57 61 26 25 15 88 73 62
++117 99 86 168 102 88 117 114 76 120 63 71 101 74 26 88 73 62 75 73 36 60 49 42
++55 39 37 53 35 17 52 30 35 32 39 24 52 30 15 33 30 30 52 30 15 34 30 15
++34 30 15 33 30 30 34 30 15 52 30 15 32 39 24 33 30 30 15 17 7 15 17 7
++3 4 9 3 3 1 3 4 9 7 12 13 13 4 7 7 12 13 3 4 9 3 3 1
++3 3 1 3 4 9 3 3 1 3 4 9 13 4 7 7 12 13 13 4 7 7 12 13
++7 12 13 7 12 13 17 12 17 17 12 17 7 12 13 7 12 13 17 12 17 17 12 17
++13 4 7 7 12 13 15 17 7 7 12 13 14 16 17 14 16 17 23 18 22 14 16 17
++12 18 20 14 16 17 17 12 17 17 12 17 14 16 17 14 16 17 12 18 20 12 18 20
++3 4 9 23 20 24 75 81 90 166 174 181 188 180 202 77 90 100 7 10 17 3 3 1
++3 4 9 17 12 17 7 12 13 7 12 13 7 12 13 7 12 13 17 12 17 15 17 7
++14 16 17 14 16 17 7 12 13 17 12 17 17 12 17 17 12 17 14 16 17 17 12 17
++14 16 17 14 16 17 23 18 22 14 16 17 23 18 22 14 16 17 23 18 22 12 18 20
++23 18 22 23 20 24 22 25 24 22 25 24 22 25 24 26 30 28 26 30 28 33 30 30
++22 25 24 26 25 15 17 12 17 15 17 7 13 4 7 15 17 7 17 12 17 23 18 22
++26 25 15 34 30 15 47 44 42 75 63 62 95 91 100 75 81 82 65 63 61 75 81 82
++75 81 90 75 81 90 78 98 90 77 90 100 78 98 90 77 90 100 78 98 90 77 90 100
++77 90 100 77 90 100 78 98 90 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100
++77 90 100 78 98 90 95 91 100 77 90 100 77 90 100 77 90 100 95 91 100 78 98 90
++95 91 100 90 98 89 94 105 108 77 90 100 90 98 89 94 105 108 90 98 89 95 91 100
++90 98 89 95 91 100 78 98 90 95 91 100 90 98 89 77 90 100 90 98 89 95 91 100
++90 98 89 77 90 100 95 91 100 90 98 89 77 90 100 95 91 100 95 91 100 77 90 100
++95 91 100 90 98 89 95 91 100 95 91 100 90 98 89 95 91 100 88 83 88 90 98 89
++90 98 89 90 98 89 90 98 89 95 91 100 90 98 89 90 98 89 88 83 88 88 83 88
++88 83 88 75 81 82 75 81 76 75 81 76 75 81 76 75 64 82 75 72 67 75 81 76
++75 64 82 75 72 67 75 72 67 59 69 70 75 72 67 75 64 82 59 69 70 75 72 67
++59 69 70 59 69 70 75 81 76 59 69 70 59 69 70 75 81 76 59 69 70 59 69 70
++75 81 76 60 81 83 75 64 82 60 81 83 59 69 70 60 81 83 59 69 70 60 81 83
++59 69 70 60 81 83 59 69 70 60 82 70 46 59 71 59 69 70 59 69 70 46 59 71
++53 63 61 53 63 61 45 57 61 53 63 61 53 63 61 45 57 61 50 61 48 45 57 61
++45 57 61 45 57 61 54 57 61 54 57 61 48 50 48 30 30 34 23 20 24 14 16 17
++23 18 22 22 25 24 23 18 22 22 25 24 23 18 22 22 24 13 23 20 24 22 25 24
++22 25 24 22 25 24 22 25 24 23 20 24 23 18 22 22 25 24 22 25 24 22 25 24
++26 25 15 22 25 24 22 25 24 23 20 24 23 20 24 22 25 24 23 18 22 15 22 17
++23 18 22 22 25 24 23 20 24 15 22 17 15 17 7 6 15 6 26 25 15 55 55 48
++99 93 84 145 140 145 177 169 143 166 180 164 177 169 143 146 151 137 138 126 108 138 126 108
++138 126 108 121 143 132 138 126 108 138 126 108 138 126 108 138 126 108 145 140 145 146 150 115
++146 151 137 138 126 108 121 143 132 138 126 108 121 143 132 111 119 127 121 143 132 111 119 127
++111 119 127 117 142 111 111 119 127 117 142 111 112 123 108 111 119 127 112 123 108 112 96 108
++112 123 108 112 96 108 98 113 84 94 105 108 117 99 86 112 123 108 112 123 108 138 126 108
++146 150 115 146 151 137 148 160 159 177 169 143 189 165 168 166 180 164 189 165 168 189 165 168
++166 180 164 189 165 168 166 180 164 208 215 180 166 180 164 177 169 143 177 169 143 177 169 143
++177 169 143 146 151 137 138 126 108 99 93 84 88 83 74 75 81 69 88 83 88 88 83 88
++88 83 88 77 90 100 95 91 100 95 91 100 94 105 108 77 91 115 94 105 108 94 105 108
++95 119 107 95 108 128 95 108 128 98 121 131 98 121 131 98 121 131 98 121 131 98 121 131
++122 134 144 98 121 131 126 147 144 111 122 142 111 122 142 98 121 131 121 143 132 98 121 131
++111 122 142 98 121 131 98 121 131 98 121 131 98 121 131 95 108 128 95 119 107 95 108 128
++95 119 107 77 91 115 77 90 100 77 90 100 78 98 90 61 78 101 75 81 90 75 81 82
++60 81 83 60 81 83 59 69 70 59 69 70 59 69 70 53 63 61 53 63 61 46 59 71
++53 63 61 53 63 61 53 63 61 59 69 70 53 63 61 59 69 70 59 57 61 53 63 61
++54 57 61 50 61 48 54 57 61 52 55 48 45 57 61 48 50 48 35 47 50 48 50 48
++35 46 43 42 41 42 34 40 43 42 41 42 33 39 38 32 39 24 42 41 42 32 39 24
++36 35 37 36 35 37 36 35 37 36 35 37 36 35 37 47 47 21 36 35 37 36 35 37
++36 35 37 36 35 37 42 41 42 33 39 38 36 35 37 36 35 37 36 35 37 36 35 37
++33 39 38 33 39 38 33 39 38 42 41 42 34 40 43 34 40 43 42 41 42 35 46 43
++43 42 50 35 46 43 43 42 50 35 47 50 48 50 48 48 50 48 45 57 61 52 55 48
++54 57 61 54 57 61 50 61 48 54 57 61 50 61 48 54 57 61 45 57 61 53 63 61
++53 63 61 53 63 61 52 55 48 54 57 61 48 50 48 43 55 48 43 42 50 43 55 48
++43 42 50 42 47 42 34 40 43 33 39 38 33 39 38 33 39 38 37 35 43 33 39 38
++33 39 38 33 39 38 33 39 38 37 35 43 35 46 43 42 41 42 43 55 48 48 50 48
++54 57 61 54 57 61 54 57 61 59 69 70 59 69 70 59 69 70 75 64 82 75 81 82
++
++75 81 82 88 83 88 90 98 89 95 91 100 94 105 108 111 119 127 111 119 127 122 134 144
++129 144 153 148 160 159 150 147 171 150 168 183 150 168 183 166 174 181 150 168 183 166 174 181
++166 176 200 166 174 181 166 176 200 166 156 164 166 176 200 166 156 164 166 176 200 166 156 164
++150 147 171 166 176 200 150 147 171 189 165 168 166 176 200 150 147 171 166 176 200 150 147 171
++166 176 200 150 147 171 166 176 200 166 174 181 166 176 200 166 176 200 166 176 200 166 176 200
++166 176 200 188 180 202 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 150 168 183
++166 176 200 150 168 183 150 168 183 150 147 171 150 147 171 131 144 168 131 144 168 129 144 153
++122 134 144 119 117 138 111 119 127 94 105 108 95 91 100 77 90 100 77 90 100 75 81 90
++75 81 90 75 81 90 75 81 90 75 81 90 75 81 82 75 64 82 60 81 83 60 63 87
++60 82 70 60 81 83 75 81 76 59 69 70 60 82 70 90 98 89 148 160 159 185 202 202
++201 216 228 233 241 227 201 216 228 225 222 201 201 216 228 225 222 201 201 216 228 225 222 201
++201 216 228 208 215 180 201 216 228 208 215 180 201 216 228 225 222 201 201 216 228 208 215 180
++201 216 228 185 202 202 185 202 202 208 215 180 185 202 202 208 215 180 166 180 164 166 180 164
++166 180 164 208 215 180 166 174 181 166 180 164 208 215 180 185 202 202 208 215 180 185 202 202
++188 180 202 208 215 180 185 202 202 208 215 180 166 174 181 166 180 164 146 151 137 146 151 137
++94 105 108 75 73 58 33 39 38 15 17 7 22 25 24 50 61 48 90 98 89 126 147 144
++166 180 164 185 202 202 225 222 201 201 216 228 185 202 202 185 202 202 208 215 180 194 199 226
++208 215 180 185 202 202 225 222 201 185 202 202 185 202 202 225 222 201 185 202 202 201 216 228
++225 222 201 201 216 228 201 216 228 232 215 228 201 216 228 232 215 228 208 221 247 221 238 247
++201 216 228 221 238 247 226 221 247 201 216 228 233 241 227 201 216 228 225 222 201 201 216 228
++201 216 228 201 216 228 201 216 228 225 222 201 185 202 202 194 199 226 201 216 228 232 215 228
++208 221 247 232 215 228 208 221 247 208 221 247 232 215 228 208 221 247 226 221 247 226 221 247
++226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 231 239 247 235 238 247 226 221 247
++226 221 247 231 239 247 226 221 247 231 239 247 231 239 247 226 221 247 231 239 247 226 221 247
++231 239 247 231 239 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247
++226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247
++232 215 228 226 221 247 226 221 247 232 215 228 226 221 247 226 221 247 208 221 247 226 221 247
++201 216 228 208 221 247 194 199 226 208 221 247 201 216 228 208 221 247 226 221 247 166 176 200
++75 81 90 28 35 38 25 30 29 43 42 50 48 50 48 43 42 50 35 47 50 48 50 48
++59 57 61 63 59 71 59 69 70 54 57 61 43 42 50 43 42 50 48 50 48 43 42 50
++43 55 48 45 57 61 43 42 50 47 49 42 63 55 51 117 99 86 177 169 143 217 168 156
++208 215 180 214 214 134 217 168 156 217 168 156 217 168 156 208 215 180 217 168 156 208 215 180
++217 168 156 222 171 182 214 214 134 208 215 180 217 168 156 222 171 182 214 214 134 222 171 182
++217 168 156 208 215 180 217 168 156 214 214 134 222 171 182 208 215 180 217 168 156 214 214 134
++222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 214 214 134
++222 171 182 214 214 134 222 171 182 214 214 134 225 222 201 227 171 124 225 222 201 227 171 124
++225 222 201 227 171 124 208 215 180 217 168 156 222 171 182 217 168 156 208 215 180 217 168 156
++214 214 134 189 165 168 217 168 156 214 214 134 177 169 143 217 168 156 197 171 123 177 169 143
++197 171 123 201 146 124 177 169 143 201 146 124 168 146 127 201 146 124 168 146 127 168 146 127
++138 126 108 138 126 108 145 140 145 189 165 168 166 156 164 95 91 100 75 63 62 101 83 74
++138 102 108 117 114 76 120 63 71 117 112 45 101 60 73 88 73 31 76 46 20 55 39 37
++55 39 18 52 30 35 53 35 17 34 30 15 33 30 30 34 30 15 34 30 15 33 30 30
++34 30 15 34 30 15 34 30 15 33 30 30 53 35 17 33 30 30 26 25 15 13 4 7
++3 3 1 3 3 1 3 3 1 7 12 13 14 16 17 3 4 9 3 3 1 3 3 1
++3 3 1 3 3 1 3 4 9 7 12 13 7 12 13 7 12 13 13 4 7 7 12 13
++17 12 17 17 12 17 14 16 17 7 12 13 17 12 17 17 12 17 17 12 17 7 12 13
++17 12 17 7 12 13 13 4 7 14 16 17 14 16 17 23 18 22 23 18 22 14 16 17
++14 16 17 23 18 22 14 16 17 7 10 17 17 12 17 12 18 20 12 18 20 14 16 17
++3 3 1 28 35 38 122 134 144 188 180 202 148 160 159 43 42 50 3 3 1 3 4 9
++7 10 17 17 12 17 14 16 17 17 12 17 14 16 17 13 4 7 17 12 17 17 12 17
++7 12 13 17 12 17 15 17 7 17 12 17 14 16 17 17 12 17 14 16 17 14 16 17
++14 16 17 17 12 17 14 16 17 14 16 17 23 20 24 23 20 24 12 18 30 23 20 24
++22 23 31 22 23 31 26 24 32 22 25 24 23 20 24 23 18 22 15 17 7 15 17 7
++15 17 7 23 18 22 26 30 28 36 35 37 47 44 42 59 55 55 75 63 62 75 81 76
++88 83 74 99 93 84 95 91 100 112 96 108 112 96 108 75 81 69 54 57 61 53 63 61
++75 81 82 78 98 90 77 90 100 77 90 100 60 81 83 77 90 100 77 90 100 77 90 100
++77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 94 105 108 77 90 100
++77 90 100 90 98 89 77 90 100 90 98 89 95 91 100 94 105 108 78 98 90 95 91 100
++77 90 100 95 91 100 95 91 100 95 91 100 94 105 108 90 98 89 95 91 100 90 98 89
++95 91 100 78 98 90 90 98 89 95 91 100 78 98 90 95 91 100 90 98 89 95 91 100
++77 90 100 90 98 89 77 90 100 95 91 100 90 98 89 95 91 100 90 98 89 90 98 89
++90 98 89 77 90 100 90 98 89 88 83 88 95 91 100 90 98 89 78 98 90 88 83 88
++77 90 100 88 83 88 95 91 100 88 83 88 88 83 88 88 83 88 88 83 88 75 81 82
++88 83 74 75 81 76 75 81 82 75 81 76 75 72 67 75 81 76 75 72 67 59 69 70
++75 72 67 75 72 67 59 69 70 75 72 67 75 64 82 59 69 70 75 81 76 59 69 70
++59 69 70 75 72 67 59 69 70 60 81 83 59 69 70 59 69 70 60 81 83 75 81 76
++60 63 87 75 81 76 59 69 70 60 81 83 60 81 83 59 69 70 60 81 83 60 63 87
++60 81 83 59 69 70 60 81 83 59 69 70 59 69 70 46 59 71 59 69 70 53 63 61
++45 57 61 45 57 61 53 63 61 45 57 61 45 57 61 54 57 61 45 57 61 45 57 61
++45 57 61 48 50 48 54 57 61 54 57 61 48 50 48 42 41 42 22 23 31 23 18 22
++15 22 17 23 18 22 22 25 24 22 24 13 23 18 22 22 25 24 23 18 22 22 25 24
++23 20 24 23 20 24 23 18 22 15 22 17 22 25 24 23 20 24 22 25 24 22 25 24
++22 25 24 22 25 24 23 20 24 26 25 15 23 18 22 23 18 22 15 22 17 23 18 22
++15 22 17 23 18 22 15 22 17 15 17 7 17 12 17 32 39 24 75 81 69 138 126 108
++150 171 159 189 165 168 166 180 164 189 165 168 166 180 164 177 169 143 166 156 164 146 162 145
++177 169 143 177 169 143 150 171 159 177 169 143 146 162 145 146 151 137 177 169 143 146 162 145
++150 144 154 177 169 143 146 151 137 146 162 145 145 140 145 121 143 132 121 143 132 121 143 132
++138 126 108 122 134 144 121 143 132 145 140 145 146 151 137 146 151 137 145 140 145 121 143 132
++112 123 108 112 123 108 112 123 108 112 123 108 138 126 108 145 140 145 146 162 145 177 169 143
++166 180 164 177 169 143 189 165 168 208 215 180 166 180 164 208 215 180 208 215 180 166 180 164
++208 215 180 177 169 143 177 169 143 177 169 143 177 171 115 146 162 145 177 169 143 146 151 137
++177 169 143 166 180 164 168 146 127 112 123 108 88 83 74 75 81 69 88 69 84 88 83 88
++88 83 88 95 91 100 77 90 100 95 91 100 95 91 100 94 105 108 95 95 116 95 108 128
++95 108 128 95 119 107 111 119 127 95 108 128 111 119 127 98 121 131 121 143 132 98 121 131
++98 121 131 98 121 131 98 121 131 98 121 131 126 147 144 98 121 131 98 121 131 98 121 131
++98 121 131 98 121 131 98 121 131 95 119 107 95 108 128 94 105 108 95 108 128 77 91 115
++77 91 115 77 91 115 78 98 90 77 90 100 60 81 83 60 81 83 75 81 90 60 81 83
++60 81 83 59 69 70 46 59 71 59 69 70 46 59 71 53 63 61 53 63 61 53 63 61
++53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 54 57 61
++53 63 61 54 57 61 52 55 48 45 57 61 52 55 48 48 50 48 42 47 42 42 47 42
++42 41 42 42 41 42 33 39 38 33 39 38 33 39 38 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 36 35 37 32 39 24 36 35 37 36 35 37 36 35 37 36 35 37
++36 35 37 36 35 37 32 39 24 36 35 37 36 35 37 33 39 38 42 38 42 33 39 38
++36 35 37 33 39 38 34 40 43 34 40 43 34 40 43 42 41 42 35 47 50 43 42 50
++34 40 43 43 42 50 35 47 50 48 50 48 48 50 48 45 57 61 52 55 48 54 57 61
++45 57 61 54 57 61 53 63 61 59 55 55 53 63 61 50 61 48 53 63 61 53 63 61
++50 61 48 54 57 61 54 57 61 54 57 61 43 55 48 48 50 48 43 55 48 43 42 50
++35 47 50 42 47 42 43 42 50 34 40 43 42 41 42 34 40 43 33 39 38 42 41 42
++34 40 43 34 40 43 42 41 42 34 40 43 42 47 42 43 42 50 48 50 48 45 57 61
++54 57 61 54 57 61 59 69 70 63 59 71 59 69 70 75 72 67 60 81 83 75 81 82
++
++88 83 88 90 98 89 95 91 100 94 105 108 94 105 108 112 123 108 119 117 138 122 134 144
++129 144 153 131 144 168 150 168 183 150 147 171 150 168 183 166 176 200 150 147 171 166 176 200
++150 147 171 166 176 200 166 156 164 166 176 200 166 156 164 166 176 200 150 147 171 166 176 200
++166 156 164 150 147 171 150 147 171 166 176 200 150 147 171 166 156 164 166 176 200 150 147 171
++166 174 181 166 176 200 150 147 171 166 176 200 166 174 181 166 176 200 166 176 200 188 180 202
++166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 174 181 166 176 200
++150 168 183 166 174 181 150 168 183 150 168 183 150 168 183 148 160 159 129 144 153 129 144 153
++122 134 144 111 122 142 111 119 127 94 105 108 94 105 108 95 91 100 77 90 100 90 98 89
++78 98 90 78 98 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 82 75 81 82
++59 69 70 75 81 76 60 81 83 59 69 70 75 81 82 121 143 132 166 174 181 225 222 201
++233 241 227 225 222 201 201 216 228 225 222 201 185 202 202 201 216 228 208 215 180 201 216 228
++208 215 180 185 202 202 208 215 180 185 202 202 201 216 228 225 222 201 185 202 202 185 202 202
++185 202 202 208 215 180 185 202 202 166 180 164 185 202 202 166 180 164 166 174 181 208 215 180
++166 180 164 188 180 202 166 180 164 208 215 180 189 165 168 185 202 202 208 215 180 185 202 202
++208 215 180 185 202 202 208 215 180 166 174 181 138 126 108 112 96 108 99 93 84 75 77 62
++36 35 37 15 17 7 22 25 24 52 55 48 99 93 84 121 143 132 148 160 159 166 180 164
++185 202 202 185 202 202 225 222 201 185 202 202 208 215 180 185 202 202 185 202 202 185 202 202
++208 215 180 185 202 202 185 202 202 185 202 202 208 215 180 201 216 228 185 202 202 225 222 201
++185 202 202 201 216 228 185 202 202 201 216 228 201 216 228 201 216 228 201 216 228 201 216 228
++201 216 228 232 215 228 201 216 228 201 216 228 201 216 228 208 215 180 201 216 228 201 216 228
++225 222 201 225 222 201 201 216 228 185 202 202 201 216 228 194 199 226 201 216 228 201 216 228
++201 216 228 208 221 247 232 215 228 194 199 226 226 221 247 201 216 228 226 221 247 201 216 228
++226 221 247 208 221 247 226 221 247 221 238 247 226 221 247 231 239 247 226 221 247 231 239 247
++226 221 247 231 239 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 231 239 247
++226 221 247 226 221 247 221 238 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247
++226 221 247 232 215 228 226 221 247 226 221 247 226 221 247 232 215 228 226 221 247 226 221 247
++226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 232 215 228 208 221 247
++208 221 247 208 221 247 194 199 226 194 199 226 208 221 247 208 221 247 208 221 247 150 147 171
++63 59 71 28 35 38 23 30 35 35 47 50 43 42 50 43 42 50 43 42 50 45 57 61
++54 57 61 59 57 61 54 57 61 48 50 48 48 50 48 43 42 50 48 50 48 45 57 61
++54 57 61 52 55 48 43 42 50 55 55 48 88 83 74 146 151 137 217 168 156 208 215 180
++217 168 156 217 168 156 208 215 180 214 214 134 222 171 182 214 214 134 222 171 182 214 214 134
++217 168 156 214 214 134 217 168 156 217 168 156 217 168 156 214 214 134 217 168 156 217 168 156
++208 215 180 227 171 124 225 222 201 217 168 156 225 222 201 227 171 124 225 222 201 222 171 182
++214 214 134 222 171 182 227 171 124 225 222 201 217 168 156 225 222 201 227 171 124 225 222 201
++217 168 156 225 222 201 214 214 134 222 171 182 208 215 180 222 171 182 214 214 134 222 171 182
++208 215 180 217 168 156 222 171 182 214 214 134 217 168 156 214 214 134 217 168 156 217 168 156
++189 165 168 217 168 156 217 168 156 189 165 168 217 168 156 177 169 143 201 146 124 177 169 143
++201 146 124 177 169 143 201 146 124 168 146 127 197 171 123 168 146 127 201 146 124 177 169 143
++168 146 127 138 126 108 117 99 86 138 126 108 166 156 164 138 126 108 117 99 86 117 99 86
++117 114 76 117 99 86 101 83 74 120 63 71 101 74 26 88 44 51 60 49 42 55 39 18
++52 30 35 52 30 15 34 30 15 33 30 30 34 30 15 34 30 15 28 13 18 34 30 15
++33 30 30 34 30 15 33 30 30 53 35 17 33 30 30 34 30 15 26 25 15 13 4 7
++3 3 1 3 3 1 3 4 9 14 16 17 17 12 17 3 4 9 3 3 1 3 3 1
++3 3 1 3 3 1 3 4 9 3 4 9 13 4 7 7 12 13 13 4 7 7 12 13
++7 12 13 14 16 17 7 12 13 17 12 17 14 16 17 14 16 17 17 12 17 7 12 13
++17 12 17 7 12 13 14 16 17 14 16 17 14 16 17 14 16 17 23 18 22 14 16 17
++14 16 17 14 16 17 14 16 17 17 12 17 7 10 17 14 16 17 7 10 17 7 10 17
++3 4 9 59 69 70 166 174 181 166 174 181 95 91 100 12 18 30 3 3 1 17 12 17
++17 12 17 17 12 17 14 16 17 23 18 22 14 16 17 17 12 17 7 12 13 17 12 17
++15 17 7 14 16 17 14 16 17 17 12 17 17 12 17 14 16 17 14 16 17 23 18 22
++14 16 17 14 16 17 23 18 22 14 16 17 12 18 20 23 20 24 22 25 24 23 20 24
++23 18 22 17 12 17 14 16 17 13 4 7 15 17 7 15 17 7 26 25 15 47 39 42
++65 55 54 75 72 67 99 93 84 112 123 108 138 126 108 146 151 137 177 169 143 189 165 168
++189 165 168 188 180 202 208 215 180 189 165 168 166 156 164 138 126 108 112 96 108 88 83 88
++75 81 76 75 81 82 75 81 90 77 90 100 78 98 90 77 90 100 78 98 90 77 90 100
++78 98 90 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100
++77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 95 91 100 78 98 90
++94 105 108 78 98 90 95 91 100 90 98 89 77 90 100 95 91 100 77 90 100 90 98 89
++77 90 100 90 98 89 77 90 100 88 83 88 90 98 89 77 90 100 90 98 89 77 90 100
++90 98 89 95 91 100 77 90 100 90 98 89 77 90 100 78 98 90 95 91 100 77 90 100
++90 98 89 88 83 88 90 98 89 95 91 100 90 98 89 88 83 88 77 90 100 90 98 89
++90 98 89 90 98 89 88 83 88 90 98 89 88 83 88 90 98 89 88 83 88 88 83 88
++75 81 82 88 69 84 75 81 76 75 81 76 75 81 76 75 64 82 75 72 67 75 64 82
++59 69 70 75 81 76 63 59 71 75 81 76 59 69 70 75 64 82 59 69 70 75 72 67
++59 69 70 59 69 70 59 69 70 59 69 70 75 64 82 59 69 70 59 69 70 75 81 76
++59 69 70 60 81 83 60 81 83 59 69 70 60 81 83 60 81 83 59 69 70 60 81 83
++60 63 87 60 81 83 59 69 70 46 59 71 59 69 70 59 69 70 46 59 71 46 59 71
++53 63 61 53 63 61 45 57 61 45 57 61 54 57 61 45 57 61 45 57 61 45 57 61
++54 57 61 45 57 61 48 50 48 54 57 61 54 57 61 48 50 48 30 30 34 22 25 24
++17 12 17 15 22 17 23 18 22 23 18 22 23 20 24 15 22 17 23 18 22 23 20 24
++26 25 15 23 20 24 15 22 17 23 18 22 22 25 24 23 20 24 22 25 24 22 25 24
++22 25 24 23 20 24 22 25 24 23 20 24 23 18 22 15 22 17 23 18 22 23 18 22
++23 18 22 14 16 17 14 16 17 31 35 35 75 72 67 99 93 84 146 151 137 188 180 202
++208 215 180 208 215 180 189 165 168 166 180 164 208 215 180 189 165 168 166 180 164 189 165 168
++166 180 164 189 165 168 208 215 180 166 180 164 177 169 143 177 169 143 166 180 164 189 165 168
++166 180 164 166 156 164 177 169 143 146 162 145 146 151 137 150 144 154 146 162 145 145 140 145
++145 140 145 146 151 137 146 162 145 166 156 164 166 180 164 166 180 164 146 162 145 150 144 154
++146 151 137 146 151 137 145 140 145 146 151 137 148 160 159 189 165 168 208 215 180 166 180 164
++189 165 168 208 215 180 166 180 164 208 215 180 189 165 168 208 215 180 189 165 168 208 215 180
++177 169 143 177 169 143 146 150 115 146 150 115 177 171 115 146 150 115 177 171 115 177 169 143
++214 214 134 208 215 180 177 169 143 146 150 115 99 93 84 88 83 74 75 81 76 88 83 88
++88 83 88 88 83 88 77 90 100 95 91 100 77 90 100 95 95 116 94 105 108 94 105 108
++94 105 108 95 108 128 95 108 128 111 119 127 98 121 131 98 121 131 98 121 131 98 121 131
++111 122 142 98 121 131 121 143 132 98 121 131 98 121 131 111 122 142 98 121 131 111 122 142
++98 121 131 98 121 131 98 121 131 95 119 107 95 108 128 95 108 128 95 119 107 77 91 115
++95 119 107 77 91 115 77 90 100 77 90 100 77 90 100 61 78 101 60 81 83 60 81 83
++59 69 70 59 69 70 59 69 70 46 59 71 59 69 70 53 63 61 53 63 61 53 63 61
++59 69 70 46 59 71 53 63 61 53 63 61 54 57 61 53 63 61 54 57 61 54 57 61
++54 57 61 52 55 48 48 50 48 45 57 61 48 50 48 43 55 48 43 42 50 42 41 42
++42 47 42 35 46 43 33 39 38 36 35 37 33 39 38 36 35 37 33 39 38 33 39 38
++36 35 37 32 39 24 36 35 37 36 35 37 36 35 37 32 39 24 36 35 37 36 35 37
++32 39 24 36 35 37 42 41 42 33 39 38 33 39 38 33 39 38 33 39 38 33 39 38
++33 39 38 33 39 38 42 41 42 34 40 43 43 42 50 42 41 42 35 47 50 42 41 42
++35 47 50 43 55 48 43 42 50 45 57 61 48 50 48 48 50 48 45 57 61 54 57 61
++52 55 48 53 63 61 59 55 55 53 63 61 59 55 55 53 63 61 54 57 61 53 63 61
++54 57 61 53 63 61 54 57 61 50 61 48 54 57 61 45 57 61 48 50 48 43 55 48
++48 50 48 35 47 50 42 47 42 35 46 43 42 41 42 35 46 43 42 41 42 34 40 43
++34 40 43 42 41 42 34 40 43 42 41 42 42 47 42 43 42 50 48 50 48 45 57 61
++54 57 61 53 63 61 59 57 61 59 69 70 75 64 82 59 69 70 75 64 82 75 81 82
++
++90 98 89 95 91 100 112 123 108 112 96 108 112 123 108 111 119 127 119 117 138 126 147 144
++145 140 145 150 144 154 150 147 171 150 168 183 166 174 181 150 147 171 166 176 200 166 174 181
++166 176 200 166 176 200 166 176 200 166 176 200 150 147 171 166 176 200 166 156 164 150 147 171
++150 147 171 166 174 181 150 147 171 150 147 171 166 176 200 166 156 164 166 176 200 150 147 171
++166 174 181 150 147 171 166 176 200 150 147 171 166 176 200 166 176 200 166 176 200 166 176 200
++166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 174 181 166 176 200
++166 174 181 150 168 183 150 168 183 150 168 183 150 147 171 148 160 159 131 144 168 145 140 145
++122 134 144 111 119 127 111 119 127 95 119 107 94 105 108 94 105 108 94 105 108 94 105 108
++95 91 100 95 91 100 78 98 90 78 98 90 75 81 90 78 98 90 75 81 90 75 81 82
++75 81 82 75 81 82 75 81 82 59 69 70 112 123 108 166 180 164 201 216 228 233 241 227
++201 216 228 201 216 228 225 222 201 201 216 228 208 215 180 185 202 202 201 216 228 208 215 180
++201 216 228 185 202 202 201 216 228 208 215 180 185 202 202 185 202 202 208 215 180 185 202 202
++208 215 180 185 202 202 185 202 202 185 202 202 166 180 164 166 180 164 208 215 180 166 180 164
++185 202 202 166 180 164 208 215 180 166 174 181 208 215 180 185 202 202 208 215 180 166 174 181
++185 202 202 185 202 202 166 180 164 112 96 108 43 55 48 26 30 28 15 22 17 15 17 7
++6 15 6 36 35 37 88 83 74 121 143 132 166 180 164 166 180 164 166 180 164 166 156 164
++166 180 164 225 222 201 185 202 202 185 202 202 185 202 202 189 165 168 208 215 180 185 202 202
++185 202 202 208 215 180 185 202 202 208 215 180 185 202 202 185 202 202 208 215 180 185 202 202
++185 202 202 185 202 202 194 199 226 225 222 201 194 199 226 194 199 226 201 216 228 201 216 228
++201 216 228 201 216 228 201 216 228 185 202 202 185 202 202 185 202 202 225 222 201 185 202 202
++185 202 202 185 202 202 185 202 202 185 202 202 185 202 202 194 199 226 201 216 228 194 199 226
++194 199 226 201 216 228 194 199 226 226 221 247 194 199 226 232 215 228 194 199 226 226 221 247
++201 216 228 226 221 247 208 221 247 226 221 247 226 221 247 221 238 247 226 221 247 226 221 247
++221 238 247 226 221 247 221 238 247 226 221 247 226 221 247 221 238 247 226 221 247 226 221 247
++226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 232 215 228
++226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247
++226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 208 221 247
++194 199 226 194 199 226 208 221 247 194 199 226 208 221 247 208 221 247 194 199 226 119 117 138
++32 40 58 37 35 43 31 35 35 43 42 50 34 40 43 35 47 50 42 41 42 43 42 50
++48 50 48 48 50 48 43 42 50 43 42 50 45 57 61 43 42 50 43 55 48 45 57 61
++54 57 61 54 57 61 48 44 48 75 63 62 138 102 108 177 169 143 222 171 182 217 168 156
++208 215 180 217 168 156 208 215 180 217 168 156 214 214 134 222 171 182 217 168 156 217 168 156
++217 168 156 208 215 180 217 168 156 214 214 134 222 171 182 217 168 156 214 214 134 217 168 156
++214 214 134 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182
++222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 214 214 134
++222 171 182 214 214 134 222 171 182 225 222 201 227 171 124 225 222 201 222 171 182 214 214 134
++222 171 182 214 214 134 217 168 156 217 168 156 217 168 156 189 165 168 217 168 156 214 214 134
++177 169 143 217 168 156 177 169 143 217 168 156 197 171 123 177 169 143 217 168 156 197 171 123
++201 146 124 168 146 127 201 146 124 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 117 99 86 117 99 86 138 126 108 138 126 108 138 102 108 117 99 86
++168 102 88 120 63 71 117 112 45 88 44 51 88 73 31 88 44 51 76 46 20 55 39 18
++53 35 17 33 30 30 34 30 15 52 30 15 34 30 15 34 30 15 34 30 15 34 30 15
++49 13 16 34 30 15 34 30 15 34 30 15 33 30 30 53 35 17 23 20 24 15 17 7
++3 3 1 3 3 1 13 4 7 7 12 13 13 4 7 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 6 15 6 3 3 1 6 15 6 3 4 9 13 4 7 7 12 13
++17 12 17 14 16 17 17 12 17 7 12 13 14 16 17 17 12 17 14 16 17 17 12 17
++7 12 13 17 12 17 14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 14 16 17
++23 18 22 14 16 17 14 16 17 14 16 17 14 16 17 14 16 17 7 12 13 3 4 9
++29 34 50 111 119 127 185 202 202 150 144 154 29 34 50 3 4 9 3 3 1 7 12 13
++17 12 17 17 12 17 17 12 17 17 12 17 23 18 22 14 16 17 17 12 17 14 16 17
++13 4 7 7 12 13 17 12 17 7 12 13 14 16 17 14 16 17 23 18 22 12 18 20
++14 16 17 14 16 17 14 16 17 23 18 22 14 16 17 15 22 17 23 18 22 26 12 13
++15 17 7 23 10 10 15 17 7 34 30 15 33 30 30 63 55 45 101 83 74 138 126 108
++177 169 143 177 169 143 222 171 182 208 215 180 225 222 201 225 222 201 225 222 201 225 222 201
++225 222 201 225 222 201 225 222 201 225 222 201 225 222 201 225 222 201 208 215 180 168 146 127
++112 123 108 88 83 88 78 98 90 77 90 100 78 98 90 77 91 115 77 90 100 77 91 115
++77 90 100 77 90 100 77 90 100 77 90 100 94 105 108 77 90 100 77 90 100 77 90 100
++94 105 108 77 90 100 77 90 100 77 90 100 78 98 90 77 90 100 77 90 100 77 90 100
++77 90 100 95 91 100 77 90 100 95 91 100 77 90 100 90 98 89 77 90 100 95 91 100
++77 90 100 88 83 88 78 98 90 77 90 100 77 90 100 88 83 88 77 90 100 90 98 89
++77 90 100 78 98 90 90 98 89 77 90 100 90 98 89 77 90 100 78 98 90 95 91 100
++78 98 90 77 90 100 90 98 89 77 90 100 88 83 88 77 90 100 95 91 100 88 83 88
++95 91 100 88 83 88 95 91 100 88 83 88 88 83 88 88 83 88 88 83 74 75 81 82
++88 83 74 75 81 76 75 81 82 75 81 76 75 64 82 75 81 76 59 69 70 75 72 67
++75 64 82 59 69 70 75 81 76 63 59 71 59 69 70 59 69 70 59 69 70 59 69 70
++59 69 70 59 69 70 75 64 82 59 69 70 59 69 70 59 69 70 60 81 83 59 69 70
++60 81 83 59 69 70 60 81 83 60 81 83 59 69 70 60 63 87 60 81 83 60 63 87
++60 81 83 59 69 70 59 69 70 46 59 71 59 69 70 46 59 71 53 63 61 53 63 61
++46 59 71 53 63 61 45 57 61 54 57 61 45 57 61 45 57 61 43 55 48 45 57 61
++45 57 61 48 50 48 45 57 61 48 44 48 54 57 61 45 57 61 34 40 43 22 25 24
++14 16 17 23 18 22 23 18 22 23 18 22 22 25 24 23 20 24 23 18 22 15 22 17
++23 18 22 15 22 17 23 18 22 23 18 22 22 25 24 22 25 24 23 20 24 15 22 17
++15 22 17 15 22 17 23 20 24 22 25 24 15 22 17 23 20 24 23 20 24 12 18 20
++12 18 20 22 23 31 24 30 43 88 83 88 146 151 137 150 171 159 208 215 180 225 222 201
++225 222 201 185 202 202 166 180 164 208 215 180 188 180 202 208 215 180 166 180 164 166 180 164
++208 215 180 185 202 202 208 215 180 189 165 168 177 169 143 146 162 145 189 165 168 208 215 180
++166 180 164 177 169 143 146 162 145 168 146 127 177 169 143 166 180 164 177 169 143 146 162 145
++168 146 127 146 162 145 189 165 168 166 180 164 166 180 164 189 165 168 177 169 143 177 169 143
++177 169 143 177 169 143 177 169 143 177 169 143 189 165 168 208 215 180 189 165 168 208 215 180
++166 180 164 208 215 180 188 180 202 208 215 180 208 215 180 166 180 164 208 215 180 177 169 143
++177 171 115 146 150 115 146 150 115 177 171 115 177 171 115 177 171 115 197 171 123 197 171 123
++214 214 134 214 214 134 197 171 123 146 150 115 98 106 55 88 83 74 75 72 67 75 81 82
++75 81 90 77 90 100 88 83 88 77 90 100 95 95 116 94 105 108 94 105 108 95 108 128
++95 108 128 95 119 107 98 121 131 95 108 128 98 121 131 98 121 131 98 121 131 98 121 131
++98 121 131 98 121 131 98 121 131 98 121 131 98 121 131 98 121 131 121 143 132 98 121 131
++98 121 131 98 121 131 95 108 128 95 108 128 95 119 107 77 91 115 77 91 115 95 119 107
++77 90 100 78 98 90 77 90 100 61 78 101 60 81 83 60 81 83 60 81 83 60 81 83
++60 63 87 59 69 70 59 69 70 59 69 70 53 63 61 53 63 61 46 59 71 53 63 61
++53 63 61 53 63 61 53 63 61 53 63 61 54 57 61 54 57 61 54 57 61 50 61 48
++45 57 61 45 57 61 48 50 48 48 50 48 48 50 48 43 42 50 43 42 50 42 47 42
++35 46 43 42 38 42 33 39 38 33 39 38 32 39 24 31 35 35 31 35 35 32 39 24
++36 35 37 33 39 38 33 39 38 31 35 35 33 39 38 36 35 37 31 35 35 31 35 35
++33 39 38 33 39 38 31 35 35 33 39 38 33 39 38 33 39 38 33 39 38 33 39 38
++33 39 38 33 39 38 34 40 43 35 46 43 42 47 42 35 47 50 42 47 42 42 47 42
++43 42 50 42 47 42 48 50 48 43 55 48 48 50 48 45 57 61 52 55 48 52 55 48
++53 63 61 54 57 61 53 63 61 53 63 61 64 70 48 53 63 61 53 63 61 59 55 55
++53 63 61 59 55 55 53 63 61 54 57 61 52 55 48 48 50 48 48 50 48 43 55 48
++48 50 48 48 50 48 43 42 50 42 47 42 43 42 50 35 47 50 43 42 50 34 40 43
++42 41 42 35 46 43 35 46 43 43 42 50 43 55 48 48 50 48 45 57 61 48 50 48
++54 57 61 54 57 61 59 69 70 59 69 70 59 69 70 60 82 70 75 81 82 75 81 82
++
++94 105 108 95 91 100 112 123 108 112 96 108 111 119 127 111 119 127 121 143 132 129 144 153
++129 144 153 148 160 159 150 147 171 150 147 171 150 168 183 166 176 200 166 156 164 166 176 200
++166 156 164 166 176 200 166 174 181 166 174 181 188 180 202 150 147 171 166 176 200 189 165 168
++166 176 200 150 147 171 166 176 200 150 147 171 166 174 181 150 147 171 150 147 171 166 174 181
++150 147 171 150 168 183 150 147 171 166 176 200 166 174 181 166 176 200 166 176 200 166 176 200
++166 176 200 188 180 202 166 176 200 166 176 200 166 176 200 166 176 200 166 174 181 166 176 200
++150 168 183 166 176 200 166 174 181 150 168 183 148 160 159 150 147 171 150 144 154 145 140 145
++122 134 144 121 143 132 111 119 127 111 119 127 111 119 127 94 105 108 94 105 108 94 105 108
++94 105 108 94 105 108 94 105 108 90 98 89 77 90 100 78 98 90 75 81 90 78 98 90
++75 81 90 75 81 82 75 81 76 88 83 88 121 143 132 185 202 202 225 222 201 201 216 228
++225 222 201 233 241 227 185 202 202 225 222 201 185 202 202 185 202 202 225 222 201 185 202 202
++208 215 180 185 202 202 208 215 180 185 202 202 185 202 202 208 215 180 185 202 202 185 202 202
++185 202 202 185 202 202 166 180 164 185 202 202 189 165 168 185 202 202 166 174 181 208 215 180
++166 180 164 208 215 180 166 180 164 166 180 164 185 202 202 189 165 168 185 202 202 189 165 168
++208 215 180 189 165 168 121 143 132 65 63 61 13 4 7 3 4 9 13 4 7 6 15 6
++26 30 28 88 83 88 146 162 145 189 165 168 185 202 202 166 174 181 146 162 145 150 171 159
++166 180 164 185 202 202 185 202 202 185 202 202 208 215 180 185 202 202 166 174 181 208 215 180
++166 180 164 185 202 202 166 180 164 189 165 168 166 180 164 188 180 202 185 202 202 188 180 202
++185 202 202 185 202 202 185 202 202 185 202 202 185 202 202 185 202 202 185 202 202 185 202 202
++201 216 228 201 216 228 185 202 202 185 202 202 189 165 168 185 202 202 185 202 202 185 202 202
++208 215 180 185 202 202 185 202 202 188 180 202 185 202 202 185 202 202 194 199 226 194 199 226
++232 215 228 194 199 226 194 199 226 201 216 228 194 199 226 194 199 226 232 215 228 194 199 226
++201 216 228 201 216 228 208 221 247 226 221 247 208 221 247 226 221 247 226 221 247 226 221 247
++226 221 247 208 221 247 226 221 247 226 221 247 221 238 247 226 221 247 226 221 247 208 221 247
++226 221 247 208 221 247 208 221 247 232 215 228 201 216 228 226 221 247 232 215 228 226 221 247
++226 221 247 226 221 247 246 237 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247
++226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247
++194 199 226 208 221 247 194 199 226 194 199 226 208 221 247 194 199 226 188 180 202 95 95 116
++29 34 50 28 35 38 34 40 43 43 42 50 43 42 50 34 40 43 43 42 50 35 47 50
++43 42 50 35 47 50 43 42 50 43 42 50 43 42 50 48 50 48 43 42 50 43 42 50
++48 50 48 59 55 55 53 46 48 88 83 88 146 150 115 217 168 156 208 215 180 208 215 180
++222 171 182 214 214 134 217 168 156 208 215 180 217 168 156 217 168 156 217 168 156 214 214 134
++217 168 156 227 171 124 217 168 156 217 168 156 214 214 134 217 168 156 222 171 182 214 214 134
++222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 222 171 182 214 214 134 222 171 182
++214 214 134 217 168 156 225 222 201 217 168 156 225 222 201 217 168 156 225 222 201 222 171 182
++214 214 134 225 222 201 222 171 182 214 214 134 222 171 182 208 215 180 217 168 156 208 215 180
++217 168 156 217 168 156 217 168 156 208 215 180 177 169 143 217 168 156 177 169 143 177 169 143
++217 168 156 197 171 123 217 168 156 177 169 143 217 168 156 197 171 123 177 169 143 201 146 124
++177 169 143 201 146 124 168 146 127 177 171 115 201 146 124 168 146 127 201 146 124 168 146 127
++168 146 127 168 146 127 138 126 108 138 126 108 138 102 108 112 123 108 168 102 88 117 99 86
++117 99 86 117 112 45 120 63 71 101 60 73 88 73 31 76 46 20 47 47 21 55 39 37
++53 35 17 52 30 15 34 30 15 33 30 30 34 30 15 49 13 16 34 30 15 33 30 30
++34 30 15 33 30 30 53 35 17 34 30 15 53 35 17 33 30 30 33 30 30 26 12 13
++3 3 1 3 3 1 13 4 7 13 4 7 3 4 9 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 13 4 7 3 3 1 3 4 9
++7 12 13 17 12 17 14 16 17 17 12 17 7 12 13 7 12 13 17 12 17 7 10 17
++17 12 17 7 12 13 14 16 17 7 12 13 17 12 17 14 16 17 14 16 17 14 16 17
++14 16 17 14 16 17 14 16 17 17 12 17 14 16 17 12 18 20 13 4 7 3 4 9
++75 81 90 166 174 181 188 180 202 95 95 116 7 12 13 3 4 9 3 4 9 7 12 13
++7 12 13 17 12 17 13 4 7 17 12 17 17 12 17 14 16 17 14 16 17 14 16 17
++17 12 17 17 12 17 15 17 7 14 16 17 15 22 17 15 22 17 23 20 24 23 20 24
++12 18 20 23 18 22 23 20 24 14 16 17 14 16 17 13 4 7 3 3 1 13 4 7
++23 18 22 36 35 37 75 63 62 99 93 84 138 126 108 177 169 143 166 180 164 217 168 156
++225 222 201 208 215 180 225 222 201 225 222 201 225 222 201 225 222 201 225 222 201 225 222 201
++225 222 201 225 222 201 222 171 182 225 222 201 225 222 201 225 222 201 225 222 201 225 222 201
++189 165 168 122 134 144 94 105 108 78 98 90 77 90 100 78 98 90 77 91 115 78 98 90
++77 90 100 94 105 108 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100
++77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 94 105 108 78 98 90
++94 105 108 78 98 90 77 90 100 90 98 89 77 90 100 95 91 100 77 90 100 88 83 88
++78 98 90 77 90 100 88 83 88 78 98 90 88 83 88 78 98 90 88 83 88 78 98 90
++88 83 88 95 91 100 77 90 100 90 98 89 77 90 100 90 98 89 77 90 100 78 98 90
++88 83 88 90 98 89 88 83 88 95 91 100 77 90 100 88 83 88 78 98 90 88 83 88
++77 90 100 88 83 88 88 83 88 88 83 88 88 83 88 88 83 88 78 98 90 88 83 88
++75 81 76 75 81 76 75 81 76 75 81 76 75 81 82 75 72 67 59 69 70 75 64 82
++59 69 70 75 72 67 59 69 70 75 64 82 59 69 70 75 72 67 63 59 71 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 60 63 87 59 69 70 59 69 70 59 69 70
++59 69 70 75 81 76 60 81 83 59 69 70 60 81 83 60 81 83 60 81 83 59 69 70
++60 81 83 60 63 87 59 69 70 59 69 70 46 59 71 59 69 70 46 59 71 46 59 71
++53 63 61 46 59 71 45 57 61 45 57 61 45 57 61 45 57 61 45 57 61 45 57 61
++48 50 48 54 57 61 48 44 48 45 57 61 54 57 61 48 50 48 43 42 50 28 30 35
++14 16 17 23 18 22 14 16 17 23 20 24 23 20 24 23 18 22 23 18 22 23 18 22
++14 16 17 23 18 22 23 18 22 15 22 17 23 18 22 22 24 13 23 20 24 23 20 24
++22 25 24 15 22 17 23 20 24 23 20 24 23 20 24 23 20 24 12 18 20 23 18 22
++12 18 30 32 40 58 88 83 88 126 147 144 166 180 164 177 169 143 185 202 202 232 215 228
++225 222 201 189 165 168 177 169 143 166 180 164 208 215 180 185 202 202 166 180 164 189 165 168
++208 215 180 188 180 202 208 215 180 166 180 164 166 180 164 166 180 164 208 215 180 189 165 168
++177 169 143 177 169 143 177 169 143 146 162 145 177 169 143 166 180 164 177 169 143 146 162 145
++177 169 143 177 169 143 177 169 143 177 169 143 166 180 164 177 169 143 146 162 145 166 156 164
++177 169 143 166 180 164 177 169 143 166 180 164 166 180 164 208 215 180 166 180 164 189 165 168
++208 215 180 189 165 168 208 215 180 208 215 180 208 215 180 166 180 164 177 169 143 177 171 115
++146 151 137 177 171 115 177 169 143 214 214 134 197 171 123 214 214 134 177 171 115 177 171 115
++177 171 115 177 171 115 177 171 115 138 126 108 98 106 55 88 73 62 75 72 67 88 83 88
++75 81 82 88 83 88 77 90 100 77 90 100 95 91 100 77 91 115 94 105 108 94 105 108
++94 105 108 95 108 128 95 108 128 95 119 107 111 119 127 98 121 131 111 119 127 98 121 131
++98 121 131 98 121 131 98 121 131 98 121 131 98 121 131 98 121 131 98 121 131 98 121 131
++98 121 131 95 119 107 95 108 128 95 119 107 95 108 128 95 108 128 95 119 107 77 91 115
++78 98 90 77 91 115 77 90 100 78 98 90 77 90 100 60 81 83 60 81 83 60 81 83
++59 69 70 59 69 70 46 59 71 59 69 70 46 59 71 53 63 61 53 63 61 53 63 61
++46 59 71 53 63 61 54 57 61 53 63 61 45 57 61 53 63 61 52 55 48 45 57 61
++48 50 48 54 57 61 43 55 48 45 57 61 48 50 48 48 50 48 35 46 43 42 47 42
++42 41 42 33 39 38 33 39 38 33 39 38 31 35 35 31 35 35 31 35 35 31 35 35
++31 35 35 31 35 35 31 35 35 31 35 35 31 35 35 33 30 30 31 35 35 31 35 35
++31 35 35 31 35 35 33 39 38 33 39 38 33 39 38 33 39 38 33 39 38 33 39 38
++33 39 38 33 39 38 34 40 43 35 46 43 35 46 43 43 42 50 42 47 42 43 42 50
++43 55 48 35 47 50 48 50 48 45 57 61 52 55 48 48 50 48 52 55 48 53 63 61
++59 55 55 53 63 61 53 63 61 64 70 48 53 63 61 65 63 61 53 63 61 64 70 48
++53 63 61 53 63 61 53 63 61 54 57 61 45 57 61 52 55 48 45 57 61 48 50 48
++35 47 50 43 55 48 43 42 50 35 46 43 42 41 42 35 46 43 42 41 42 35 47 50
++35 46 43 42 41 42 35 46 43 42 47 42 48 50 48 45 57 61 48 50 48 45 57 61
++54 57 61 54 57 61 59 69 70 59 69 70 75 81 76 59 69 70 60 81 83 75 81 82
++
++112 96 108 112 123 108 112 123 108 111 119 127 112 123 108 119 117 138 122 134 144 145 140 145
++129 144 153 148 160 159 150 147 171 150 168 183 166 174 181 150 147 171 166 176 200 166 176 200
++166 176 200 166 176 200 166 156 164 166 176 200 166 176 200 166 156 164 166 176 200 150 147 171
++166 156 164 166 176 200 166 156 164 150 147 171 166 176 200 166 156 164 166 176 200 150 147 171
++150 168 183 166 156 164 166 176 200 150 147 171 166 176 200 166 174 181 166 176 200 166 176 200
++166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 174 181 166 176 200 166 174 181
++166 174 181 150 168 183 150 147 171 150 168 183 150 147 171 148 160 159 131 144 168 129 144 153
++126 147 144 119 117 138 111 119 127 111 119 127 112 123 108 111 119 127 112 123 108 94 105 108
++94 105 108 94 105 108 94 105 108 94 105 108 95 91 100 78 98 90 77 90 100 90 98 89
++78 98 90 75 81 82 78 98 90 95 119 107 150 171 159 225 222 201 201 216 228 225 222 201
++201 216 228 225 222 201 185 202 202 185 202 202 208 215 180 185 202 202 185 202 202 225 222 201
++185 202 202 185 202 202 185 202 202 185 202 202 208 215 180 185 202 202 166 180 164 208 215 180
++166 174 181 208 215 180 188 180 202 166 180 164 208 215 180 166 180 164 185 202 202 166 180 164
++189 165 168 166 180 164 166 180 164 189 165 168 166 180 164 166 180 164 166 180 164 166 180 164
++166 174 181 150 171 159 117 99 86 33 39 38 3 3 1 3 3 1 3 3 1 15 17 7
++65 63 61 121 143 132 185 202 202 225 222 201 185 202 202 166 180 164 150 171 159 146 162 145
++166 180 164 185 202 202 166 180 164 208 215 180 166 174 181 185 202 202 166 180 164 166 174 181
++166 180 164 189 165 168 166 180 164 166 180 164 166 180 164 166 180 164 166 180 164 185 202 202
++189 165 168 185 202 202 188 180 202 188 180 202 188 180 202 188 180 202 185 202 202 188 180 202
++185 202 202 188 180 202 188 180 202 166 174 181 166 180 164 166 180 164 166 180 164 166 180 164
++166 174 181 166 174 181 166 180 164 166 174 181 185 202 202 188 180 202 185 202 202 194 199 226
++188 180 202 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226
++232 215 228 208 221 247 201 216 228 208 221 247 208 221 247 208 221 247 201 216 228 226 221 247
++208 221 247 208 221 247 226 221 247 208 221 247 226 221 247 208 221 247 208 221 247 226 221 247
++201 216 228 232 215 228 201 216 228 226 221 247 226 221 247 232 215 228 208 221 247 226 221 247
++226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247
++226 221 247 226 221 247 232 215 228 226 221 247 226 221 247 226 221 247 194 199 226 194 199 226
++194 199 226 194 199 226 194 199 226 194 199 226 208 221 247 194 199 226 150 168 183 61 78 101
++22 23 31 33 30 36 34 40 43 35 46 43 34 40 43 34 40 43 34 40 43 43 42 50
++42 47 42 34 40 43 42 41 42 43 42 50 43 42 50 43 42 50 35 47 50 48 50 48
++35 47 50 48 50 48 65 55 54 117 99 86 189 165 168 217 168 156 208 215 180 217 168 156
++217 168 156 208 215 180 217 168 156 217 168 156 214 214 134 217 168 156 217 168 156 197 171 123
++217 168 156 214 214 134 217 168 156 217 168 156 217 168 156 208 215 180 217 168 156 208 215 180
++217 168 156 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 208 215 180 217 168 156
++225 222 201 227 171 124 222 171 182 214 214 134 217 168 156 214 214 134 222 171 182 214 214 134
++222 171 182 227 171 124 208 215 180 222 171 182 214 214 134 222 171 182 214 214 134 217 168 156
++217 168 156 214 214 134 189 165 168 197 171 123 217 168 156 177 169 143 197 171 123 217 168 156
++177 169 143 177 169 143 217 168 156 197 171 123 177 169 143 197 171 123 201 146 124 177 169 143
++201 146 124 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127
++168 146 127 146 150 115 138 126 108 168 102 88 117 114 76 138 102 108 117 114 76 168 102 88
++117 99 86 120 63 71 101 83 74 101 74 26 88 44 51 76 46 20 63 55 45 55 39 18
++53 35 17 33 30 30 34 30 15 34 30 15 33 30 30 34 30 15 34 30 15 34 30 15
++34 30 15 53 35 17 33 30 30 33 30 30 32 39 24 53 35 17 33 30 30 26 25 15
++13 4 7 3 3 1 13 4 7 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 6 15 6 3 4 9 6 15 6 3 4 9 13 4 7
++7 12 13 7 12 13 17 12 17 14 16 17 17 12 17 7 12 13 17 12 17 7 10 17
++17 12 17 14 16 17 17 12 17 14 16 17 14 16 17 17 12 17 14 16 17 17 12 17
++14 16 17 23 18 22 14 16 17 14 16 17 23 18 22 7 12 13 3 4 9 28 30 35
++145 140 145 194 199 226 129 144 153 45 57 61 3 3 1 3 3 1 7 12 13 13 4 7
++17 12 17 13 4 7 7 12 13 7 12 13 17 12 17 14 16 17 23 18 22 14 16 17
++14 16 17 17 12 17 14 16 17 23 18 22 15 22 17 23 18 22 15 22 17 23 18 22
++14 16 17 7 12 13 13 4 7 13 4 7 13 4 7 26 25 15 33 30 30 75 73 58
++117 99 86 138 126 108 166 156 164 189 165 168 208 215 180 225 222 201 225 222 201 225 222 201
++225 222 201 222 171 182 225 222 201 225 222 201 222 171 182 225 222 201 217 168 156 225 222 201
++214 214 134 225 222 201 222 171 182 225 222 201 217 168 156 225 222 201 225 222 201 225 222 201
++225 222 201 208 215 180 150 144 154 112 123 108 95 91 100 78 98 90 94 105 108 77 90 100
++77 91 115 78 98 90 77 91 115 78 98 90 77 90 100 77 90 100 77 90 100 77 90 100
++77 90 100 77 90 100 77 90 100 77 90 100 90 98 89 77 91 115 78 98 90 77 90 100
++77 90 100 77 90 100 95 91 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100
++88 83 88 77 90 100 75 81 90 77 90 100 77 90 100 77 90 100 88 83 88 77 90 100
++77 90 100 78 98 90 77 90 100 90 98 89 77 90 100 77 90 100 95 91 100 77 90 100
++88 83 88 77 90 100 78 98 90 88 83 88 77 90 100 88 83 88 77 90 100 88 83 88
++88 83 88 75 81 90 88 83 88 75 81 90 88 83 88 75 81 82 75 81 82 75 81 76
++75 81 76 75 81 76 75 81 76 75 64 82 59 69 70 75 64 82 59 69 70 59 69 70
++75 81 76 59 69 70 59 69 70 59 69 70 75 64 82 59 69 70 59 69 70 59 69 70
++59 69 70 59 69 70 60 63 87 59 69 70 59 69 70 59 69 70 60 63 87 59 69 70
++60 81 83 60 63 87 60 81 83 59 69 70 60 63 87 59 69 70 60 63 87 60 81 83
++46 59 71 59 69 70 60 63 87 46 59 71 59 69 70 46 59 71 53 63 61 46 59 71
++53 63 61 46 59 71 45 57 61 45 57 61 45 57 61 45 57 61 43 42 50 45 57 61
++45 57 61 43 42 50 45 57 61 57 43 64 45 57 61 48 50 48 45 57 61 36 35 37
++23 20 24 23 18 22 23 18 22 23 20 24 23 20 24 12 18 20 23 18 22 14 16 17
++23 18 22 15 22 17 15 22 17 23 18 22 15 22 17 23 20 24 23 20 24 15 22 17
++15 22 17 23 18 22 15 22 17 22 25 24 23 20 24 12 18 20 12 18 20 22 23 31
++37 35 43 75 81 90 150 144 154 166 174 181 166 180 164 166 180 164 208 215 180 225 222 201
++185 202 202 208 215 180 166 180 164 189 165 168 208 215 180 189 165 168 166 180 164 189 165 168
++185 202 202 189 165 168 185 202 202 189 165 168 208 215 180 189 165 168 166 180 164 166 180 164
++177 169 143 166 156 164 177 169 143 166 156 164 177 169 143 166 156 164 177 169 143 177 169 143
++166 180 164 177 169 143 166 180 164 177 169 143 177 169 143 177 169 143 177 169 143 177 169 143
++166 180 164 189 165 168 166 180 164 189 165 168 208 215 180 189 165 168 208 215 180 166 180 164
++208 215 180 208 215 180 208 215 180 189 165 168 177 169 143 177 169 143 177 171 115 177 169 143
++177 171 115 177 169 143 214 214 134 166 180 164 177 171 115 177 171 115 117 127 86 157 148 53
++117 114 76 117 114 76 117 127 86 117 114 76 98 106 55 75 81 69 75 81 76 75 81 82
++88 83 88 75 81 90 77 90 100 95 91 100 77 90 100 94 105 108 95 95 116 94 105 108
++95 108 128 94 105 108 98 121 131 95 108 128 95 108 128 98 121 131 98 121 131 98 121 131
++98 121 131 98 121 131 98 121 131 98 121 131 98 121 131 98 121 131 98 121 131 98 121 131
++98 121 131 95 108 128 95 108 128 95 108 128 77 91 115 77 91 115 77 91 115 77 91 115
++77 91 115 78 98 90 77 90 100 61 78 101 60 81 83 60 81 83 60 81 83 60 63 87
++59 69 70 42 60 86 59 69 70 59 69 70 46 59 71 53 63 61 46 59 71 53 63 61
++53 63 61 46 59 71 54 57 61 54 57 61 54 57 61 45 57 61 54 57 61 52 55 48
++48 50 48 45 57 61 48 50 48 48 50 48 43 42 50 35 47 50 43 42 50 35 46 43
++34 40 43 33 39 38 33 39 38 31 35 35 31 35 35 31 35 35 31 35 35 31 35 35
++31 35 35 28 35 38 31 35 35 31 35 35 31 35 35 31 35 35 31 35 35 31 35 35
++31 35 35 33 39 38 31 35 35 33 39 38 33 39 38 33 39 38 33 39 38 33 39 38
++33 39 38 33 39 38 34 40 43 35 46 43 43 42 50 42 47 42 35 47 50 48 50 48
++35 47 50 48 50 48 48 50 48 45 57 61 48 50 48 45 57 61 54 57 61 54 57 61
++53 63 61 53 63 61 65 63 61 53 63 61 53 63 61 65 63 61 53 63 61 53 63 61
++59 57 61 53 63 61 59 55 55 50 61 48 54 57 61 52 55 48 45 57 61 48 50 48
++45 57 61 43 42 50 43 55 48 43 42 50 43 42 50 35 47 50 43 42 50 35 46 43
++43 42 50 35 46 43 43 42 50 43 42 50 43 55 48 48 50 48 45 57 61 54 57 61
++54 57 61 53 63 61 59 69 70 59 69 70 59 69 70 75 64 82 75 81 82 75 81 82
++
++112 123 108 112 123 108 111 119 127 112 123 108 111 119 127 141 116 139 121 143 132 129 144 153
++150 144 154 148 160 159 148 160 159 166 156 164 150 168 183 166 174 181 150 147 171 166 176 200
++166 156 164 166 176 200 166 176 200 189 165 168 166 176 200 166 176 200 166 156 164 166 176 200
++166 176 200 150 147 171 166 176 200 189 165 168 150 147 171 166 176 200 150 147 171 166 156 164
++150 168 183 150 168 183 150 147 171 150 168 183 166 176 200 166 174 181 166 176 200 166 174 181
++166 176 200 166 176 200 166 176 200 166 174 181 166 176 200 166 176 200 166 174 181 166 176 200
++166 174 181 166 174 181 166 174 181 166 174 181 150 147 171 148 160 159 150 144 154 145 140 145
++145 140 145 121 143 132 121 143 132 119 117 138 111 119 127 112 123 108 111 119 127 111 119 127
++112 123 108 112 123 108 94 105 108 94 105 108 94 105 108 90 98 89 95 91 100 90 98 89
++77 90 100 75 81 82 90 98 89 138 126 108 166 180 164 201 216 228 225 222 201 201 216 228
++208 215 180 185 202 202 208 215 180 185 202 202 185 202 202 185 202 202 208 215 180 185 202 202
++185 202 202 208 215 180 189 165 168 185 202 202 185 202 202 189 165 168 185 202 202 185 202 202
++166 174 181 185 202 202 208 215 180 166 174 181 185 202 202 166 180 164 208 215 180 166 180 164
++166 180 164 166 180 164 166 180 164 166 180 164 166 180 164 166 180 164 189 165 168 166 180 164
++166 180 164 146 151 137 90 98 89 33 39 38 3 3 1 3 3 1 3 3 1 14 16 17
++88 83 74 146 162 145 185 202 202 185 202 202 166 180 164 166 180 164 166 180 164 166 180 164
++166 180 164 166 180 164 185 202 202 166 180 164 188 180 202 208 215 180 185 202 202 189 165 168
++166 180 164 166 180 164 177 169 143 150 171 159 177 169 143 166 180 164 166 180 164 166 180 164
++166 180 164 166 180 164 166 174 181 166 180 164 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 150 171 159 146 162 145 150 144 154 146 162 145 150 171 159 166 156 164
++166 180 164 166 156 164 166 180 164 166 180 164 166 174 181 188 180 202 185 202 202 188 180 202
++188 180 202 188 180 202 194 199 226 188 180 202 194 199 226 194 199 226 194 199 226 194 199 226
++194 199 226 194 199 226 194 199 226 201 216 228 201 216 228 201 216 228 226 221 247 201 216 228
++208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 208 221 247 226 221 247 201 216 228
++226 221 247 194 199 226 226 221 247 201 216 228 208 221 247 208 221 247 226 221 247 226 221 247
++226 221 247 226 221 247 235 238 247 226 221 247 226 221 247 201 216 228 226 221 247 226 221 247
++194 199 226 226 221 247 194 199 226 226 221 247 194 199 226 226 221 247 226 221 247 194 199 226
++194 199 226 194 199 226 194 199 226 194 199 226 208 221 247 188 180 202 129 144 153 63 59 71
++22 23 31 31 35 35 34 40 43 42 41 42 34 40 43 34 40 43 34 40 43 42 47 42
++34 40 43 33 39 38 36 35 37 33 39 38 43 42 50 42 47 42 43 42 50 42 47 42
++42 41 42 51 49 42 75 73 58 146 150 115 189 165 168 208 215 180 217 168 156 208 215 180
++217 168 156 208 215 180 217 168 156 214 214 134 217 168 156 217 168 156 197 171 123 217 168 156
++197 171 123 217 168 156 214 214 134 217 168 156 214 214 134 217 168 156 208 215 180 227 171 124
++225 222 201 214 214 134 222 171 182 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182
++227 171 124 225 222 201 214 214 134 217 168 156 225 222 201 222 171 182 214 214 134 217 168 156
++225 222 201 214 214 134 222 171 182 214 214 134 217 168 156 208 215 180 217 168 156 217 168 156
++217 168 156 189 165 168 197 171 123 217 168 156 177 169 143 197 171 123 177 169 143 177 169 143
++201 146 124 197 171 123 177 169 143 197 171 123 217 168 156 177 169 143 201 146 124 177 169 143
++201 146 124 168 146 127 201 146 124 168 146 127 168 146 127 177 171 115 168 146 127 146 150 115
++168 102 88 138 126 108 168 102 88 117 114 76 168 102 88 117 114 76 168 102 88 117 99 86
++117 99 86 117 112 45 120 63 71 88 73 31 75 56 53 76 46 20 60 49 42 55 39 37
++53 35 17 34 30 15 52 30 35 34 30 15 34 30 15 33 30 30 34 30 15 34 30 15
++33 30 30 34 30 15 33 30 30 53 35 17 52 30 35 32 39 24 53 35 37 34 30 15
++23 10 10 15 17 7 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 4 9 3 3 1 3 3 1 3 4 9 13 4 7 3 4 9 6 15 6
++13 4 7 15 17 7 14 16 17 14 16 17 17 12 17 7 10 17 17 12 17 7 10 17
++14 16 17 17 12 17 7 12 13 14 16 17 17 12 17 14 16 17 14 16 17 14 16 17
++14 16 17 14 16 17 14 16 17 23 18 22 12 18 20 3 3 1 22 25 24 75 81 90
++188 180 202 188 180 202 77 90 100 17 12 17 3 3 1 3 4 9 17 12 17 7 12 13
++7 12 13 7 12 13 13 4 7 17 12 17 7 12 13 17 12 17 12 18 20 23 18 22
++23 18 22 15 22 17 23 18 22 14 16 17 14 16 17 14 16 17 17 12 17 7 12 13
++6 15 6 13 4 7 22 24 13 34 30 15 55 39 37 81 96 56 138 102 108 177 169 143
++189 165 168 208 215 180 208 215 180 225 222 201 225 222 201 222 171 182 208 215 180 222 171 182
++214 214 134 225 222 201 222 171 182 214 214 134 225 222 201 214 214 134 225 222 201 222 171 182
++225 222 201 222 171 182 225 222 201 214 214 134 225 222 201 217 168 156 225 222 201 222 171 182
++225 222 201 225 222 201 208 215 180 166 156 164 112 123 108 90 98 89 77 91 115 78 98 90
++94 105 108 94 105 108 77 91 115 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100
++77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 94 105 108 77 90 100
++95 91 100 77 90 100 77 90 100 95 91 100 77 90 100 77 90 100 88 83 88 77 90 100
++77 90 100 75 81 90 77 90 100 88 83 88 77 90 100 88 83 88 77 90 100 78 98 90
++77 90 100 88 83 88 77 90 100 77 90 100 88 83 88 77 90 100 77 90 100 77 90 100
++78 98 90 88 83 88 77 90 100 77 90 100 75 81 90 77 90 100 88 83 88 75 81 90
++75 81 90 88 83 88 77 90 100 75 81 90 75 81 90 75 81 82 75 81 82 88 83 88
++75 81 82 75 64 82 75 81 76 59 69 70 75 64 82 59 69 70 75 64 82 63 59 71
++75 64 82 59 69 70 75 64 82 63 59 71 59 69 70 59 69 70 60 63 87 59 69 70
++60 63 87 59 69 70 59 69 70 60 63 87 59 69 70 60 63 87 59 69 70 59 69 70
++60 81 83 59 69 70 60 63 87 60 81 83 60 81 83 59 69 70 60 81 83 59 69 70
++60 63 87 60 81 83 59 69 70 46 59 71 59 69 70 46 59 71 46 59 71 53 63 61
++46 59 71 54 57 61 45 57 61 45 57 61 45 57 61 45 57 61 43 42 50 45 57 61
++43 42 50 45 57 61 43 42 50 45 57 61 48 50 48 45 57 61 48 50 48 43 42 50
++26 24 32 23 20 24 12 18 20 23 20 24 15 22 17 23 20 24 23 20 24 23 18 22
++12 18 20 23 18 22 14 16 17 14 16 17 23 18 22 23 20 24 15 22 17 23 18 22
++15 22 17 15 22 17 23 18 22 15 22 17 23 20 24 12 18 20 12 18 30 28 35 38
++59 69 70 111 119 127 188 180 202 208 215 180 185 202 202 208 215 180 185 202 202 208 215 180
++185 202 202 208 215 180 166 180 164 208 215 180 166 180 164 208 215 180 166 180 164 166 156 164
++146 162 145 146 162 145 166 180 164 166 174 181 166 180 164 189 165 168 166 180 164 177 169 143
++166 180 164 177 169 143 166 180 164 177 169 143 166 180 164 177 169 143 166 180 164 146 162 145
++177 169 143 146 162 145 177 169 143 177 169 143 146 162 145 146 151 137 166 180 164 177 169 143
++208 215 180 166 180 164 177 169 143 189 165 168 166 180 164 208 215 180 189 165 168 208 215 180
++189 165 168 208 215 180 166 180 164 177 169 143 177 169 143 177 171 115 177 169 143 197 171 123
++177 169 143 177 171 115 177 171 115 177 171 115 117 127 86 117 112 45 98 106 55 75 73 36
++88 73 31 88 73 31 98 106 55 98 106 55 88 73 62 75 72 67 88 69 84 75 81 90
++88 83 88 75 81 90 88 83 88 77 90 100 95 91 100 95 95 116 94 105 108 77 91 115
++94 105 108 95 108 128 94 105 108 95 108 128 95 108 128 95 108 128 95 119 107 98 121 131
++98 121 131 98 121 131 98 121 131 98 121 131 98 121 131 98 121 131 98 121 131 98 121 131
++95 108 128 95 119 107 95 108 128 95 119 107 95 119 107 77 91 115 95 119 107 77 91 115
++78 98 90 77 91 115 77 90 100 60 81 83 61 78 101 60 63 87 60 81 83 60 81 83
++59 69 70 59 69 70 59 69 70 46 59 71 53 63 61 59 69 70 53 63 61 46 59 71
++54 57 61 53 63 61 45 57 61 45 57 61 45 57 61 54 57 61 45 57 61 45 57 61
++45 57 61 48 50 48 43 42 50 43 55 48 43 42 50 43 42 50 34 40 43 42 41 42
++34 40 43 37 35 43 33 39 38 31 35 35 31 35 35 31 35 35 31 35 35 31 35 35
++28 35 38 33 30 36 28 35 38 31 35 35 31 35 35 31 35 35 28 35 38 31 35 35
++28 35 38 31 35 35 31 35 35 33 39 38 33 39 38 33 39 38 34 40 43 34 40 43
++33 39 38 34 40 43 34 40 43 42 41 42 35 47 50 43 42 50 43 55 48 43 42 50
++43 42 50 43 42 50 48 50 48 45 57 61 52 55 48 54 57 61 50 61 48 54 57 61
++53 63 61 59 57 61 53 63 61 53 63 61 59 69 70 65 63 61 53 63 61 59 57 61
++53 63 61 53 63 61 53 63 61 54 57 61 50 61 48 54 57 61 48 50 48 45 57 61
++48 50 48 43 55 48 43 42 50 43 55 48 43 42 50 42 47 42 35 47 50 43 42 50
++43 42 50 43 42 50 43 42 50 43 55 48 43 42 50 45 57 61 48 50 48 54 57 61
++54 57 61 59 69 70 75 64 82 59 69 70 75 81 82 59 69 70 75 81 82 75 81 82
++
++112 123 108 119 117 138 138 126 108 121 143 132 119 117 138 121 143 132 145 140 145 126 147 144
++129 144 153 148 160 159 148 160 159 150 168 183 166 156 164 150 168 183 166 174 181 166 174 181
++166 176 200 166 176 200 166 176 200 166 176 200 166 156 164 166 176 200 166 176 200 166 156 164
++166 156 164 166 176 200 150 147 171 150 147 171 166 176 200 150 147 171 166 174 181 166 176 200
++150 147 171 166 176 200 166 156 164 166 176 200 166 174 181 166 176 200 166 176 200 166 176 200
++166 174 181 166 176 200 166 176 200 166 176 200 166 174 181 166 176 200 166 176 200 166 174 181
++150 168 183 166 174 181 150 168 183 150 147 171 148 160 159 148 160 159 148 160 159 129 144 153
++145 140 145 122 134 144 121 143 132 138 126 108 122 134 144 111 119 127 138 126 108 111 119 127
++111 119 127 112 123 108 111 119 127 94 105 108 94 105 108 94 105 108 77 90 100 94 105 108
++90 98 89 78 98 90 94 105 108 146 162 145 185 202 202 225 222 201 185 202 202 208 215 180
++185 202 202 185 202 202 185 202 202 208 215 180 185 202 202 208 215 180 185 202 202 185 202 202
++208 215 180 166 174 181 185 202 202 166 180 164 208 215 180 166 174 181 208 215 180 166 180 164
++208 215 180 166 174 181 185 202 202 166 180 164 185 202 202 166 180 164 166 174 181 166 180 164
++166 180 164 166 180 164 177 169 143 150 171 159 177 169 143 166 180 164 166 180 164 166 180 164
++146 162 145 138 126 108 94 105 108 47 49 42 7 12 13 3 3 1 3 3 1 6 15 6
++75 81 76 146 151 137 166 180 164 166 180 164 166 180 164 166 180 164 166 156 164 150 171 159
++166 156 164 166 180 164 166 180 164 185 202 202 208 215 180 166 174 181 185 202 202 166 180 164
++166 180 164 150 171 159 146 151 137 146 151 137 146 151 137 146 151 137 146 162 145 148 160 159
++150 171 159 166 180 164 150 171 159 166 174 181 166 180 164 166 174 181 150 171 159 166 174 181
++150 171 159 148 160 159 148 160 159 122 134 144 121 143 132 121 143 132 145 140 145 146 151 137
++146 151 137 146 151 137 129 144 153 148 160 159 166 174 181 166 174 181 188 180 202 188 180 202
++185 202 202 188 180 202 188 180 202 188 180 202 188 180 202 188 180 202 188 180 202 194 199 226
++194 199 226 194 199 226 201 216 228 194 199 226 194 199 226 194 199 226 194 199 226 226 221 247
++194 199 226 208 221 247 201 216 228 226 221 247 194 199 226 201 216 228 194 199 226 194 199 226
++194 199 226 226 221 247 194 199 226 232 215 228 208 221 247 232 215 228 201 216 228 226 221 247
++226 221 247 226 221 247 226 221 247 226 221 247 232 215 228 208 221 247 232 215 228 194 199 226
++226 221 247 232 215 228 226 221 247 232 215 228 226 221 247 194 199 226 194 199 226 194 199 226
++194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 188 180 202 111 122 142 34 42 77
++12 18 30 33 39 38 35 46 43 35 46 43 33 39 38 33 39 38 33 39 38 33 39 38
++31 35 35 31 35 35 28 30 35 31 35 35 37 35 43 35 46 43 43 42 50 35 46 43
++33 39 38 51 49 42 88 83 74 168 146 127 189 165 168 208 215 180 217 168 156 214 214 134
++217 168 156 217 168 156 208 215 180 217 168 156 217 168 156 214 214 134 189 165 168 217 168 156
++197 171 123 217 168 156 217 168 156 217 168 156 217 168 156 208 215 180 217 168 156 208 215 180
++217 168 156 217 168 156 225 222 201 214 214 134 222 171 182 214 214 134 222 171 182 214 214 134
++222 171 182 217 168 156 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 222 171 182
++227 171 124 222 171 182 214 214 134 222 171 182 217 168 156 217 168 156 217 168 156 214 214 134
++189 165 168 197 171 123 189 165 168 197 171 123 201 146 124 177 169 143 201 146 124 201 146 124
++177 169 143 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 168 146 127 201 146 124
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 163 117 123 168 146 127 168 102 88
++146 150 115 117 114 76 117 114 76 168 102 88 117 127 86 168 102 88 117 114 76 168 102 88
++120 63 71 120 63 71 101 74 26 88 44 51 76 46 20 63 55 45 76 46 20 52 30 15
++52 30 15 33 30 30 34 30 15 34 30 15 34 30 15 28 13 18 34 30 15 34 30 15
++34 30 15 52 30 15 33 30 30 53 35 17 33 30 30 53 35 17 53 35 37 33 30 30
++34 30 15 23 10 10 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 4 9 3 4 9 7 12 13 7 12 13 3 4 9
++13 4 7 7 12 13 14 16 17 14 16 17 14 16 17 17 12 17 7 12 13 17 12 17
++17 12 17 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 23 18 22
++23 18 22 15 22 17 23 18 22 23 18 22 17 12 17 3 4 9 45 57 61 150 144 154
++201 216 228 148 160 159 43 42 50 3 3 1 3 3 1 13 4 7 7 12 13 7 12 13
++13 4 7 7 12 13 7 12 13 7 12 13 17 12 17 7 10 17 17 12 17 12 18 20
++14 16 17 14 16 17 14 16 17 17 12 17 15 17 7 7 12 13 3 3 1 3 3 1
++17 12 17 42 41 42 75 81 69 112 123 108 146 151 137 189 165 168 208 215 180 208 215 180
++208 215 180 222 171 182 225 222 201 217 168 156 225 222 201 208 215 180 222 171 182 225 222 201
++222 171 182 208 215 180 214 214 134 225 222 201 222 171 182 225 222 201 214 214 134 225 222 201
++214 214 134 225 222 201 222 171 182 225 222 201 225 222 201 214 214 134 225 222 201 225 222 201
++225 222 201 225 222 201 225 222 201 222 171 182 150 171 159 111 119 127 77 90 100 94 105 108
++77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 61 78 101
++77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100
++77 90 100 77 90 100 77 90 100 77 90 100 75 81 90 77 90 100 77 90 100 75 81 90
++75 81 90 78 98 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90
++88 83 88 77 90 100 75 81 90 88 83 88 77 90 100 75 81 90 77 90 100 75 81 90
++75 81 90 75 81 90 77 90 100 75 81 90 88 83 88 75 81 90 75 81 90 88 83 88
++75 81 90 75 81 90 75 81 90 75 81 90 75 81 82 75 81 82 75 81 82 75 81 82
++75 81 82 75 81 82 75 64 82 59 69 70 59 69 70 63 59 71 59 69 70 75 64 82
++59 69 70 59 69 70 63 59 71 59 69 70 63 59 71 59 69 70 63 59 71 59 69 70
++59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 46 59 71 60 63 87 59 69 70
++60 63 87 60 81 83 59 69 70 42 60 86 59 69 70 42 60 86 59 69 70 60 63 87
++59 69 70 46 59 71 59 69 70 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71
++45 57 61 45 57 61 45 57 61 45 57 61 43 42 50 45 57 61 45 57 61 32 40 58
++43 42 50 45 57 61 43 42 50 43 42 50 45 57 61 48 50 48 54 57 61 48 44 48
++33 30 36 23 20 24 23 20 24 23 20 24 23 18 22 15 22 17 23 20 24 15 22 17
++23 20 24 15 22 17 23 20 24 12 18 20 23 20 24 23 18 22 15 22 17 23 18 22
++15 22 17 22 24 13 15 22 17 12 18 20 12 18 20 12 18 30 26 24 32 45 57 61
++112 96 108 166 180 164 185 202 202 185 202 202 208 215 180 185 202 202 208 215 180 188 180 202
++208 215 180 188 180 202 208 215 180 166 180 164 189 165 168 185 202 202 177 169 143 112 123 108
++95 91 100 94 105 108 112 123 108 146 151 137 146 151 137 146 151 137 146 162 145 177 169 143
++177 169 143 166 156 164 177 169 143 166 180 164 189 165 168 166 180 164 177 169 143 177 169 143
++146 151 137 177 169 143 146 162 145 146 162 145 168 146 127 177 169 143 166 180 164 189 165 168
++166 180 164 177 169 143 208 215 180 208 215 180 208 215 180 189 165 168 208 215 180 166 180 164
++189 165 168 177 169 143 177 169 143 177 169 143 177 169 143 177 169 143 214 214 134 177 169 143
++177 171 115 157 148 53 117 114 76 101 74 26 88 73 31 76 46 20 47 47 21 53 35 17
++47 47 21 55 39 18 88 73 31 75 73 58 75 73 58 75 72 67 75 81 82 88 83 88
++75 81 90 88 83 88 77 90 100 77 90 100 95 91 100 77 91 115 94 105 108 77 91 115
++94 105 108 77 91 115 94 105 108 95 108 128 94 105 108 95 108 128 95 108 128 95 108 128
++95 119 107 98 121 131 98 121 131 95 119 107 98 121 131 98 121 131 95 108 128 95 108 128
++95 108 128 95 108 128 77 91 115 77 91 115 95 119 107 77 91 115 78 98 90 77 91 115
++61 78 101 78 98 90 61 78 101 60 81 83 60 81 83 60 81 83 60 81 83 60 63 87
++46 59 71 42 60 86 46 59 71 59 69 70 46 59 71 54 57 61 46 59 71 53 63 61
++46 59 71 54 57 61 45 57 61 54 57 61 45 57 61 48 50 48 48 50 48 43 42 50
++48 50 48 43 42 50 45 57 61 43 42 50 43 42 50 43 42 50 35 46 43 34 40 43
++34 40 43 33 39 38 28 35 38 28 35 38 28 30 35 28 35 38 28 35 38 28 35 38
++33 30 36 28 35 38 28 35 38 33 30 36 28 35 38 28 35 38 31 35 35 28 35 38
++28 35 38 31 35 35 33 39 38 31 35 35 28 35 38 33 39 38 34 40 43 34 40 43
++33 39 38 34 40 43 34 40 43 35 46 43 43 42 50 43 42 50 43 42 50 43 55 48
++43 42 50 45 57 61 48 50 48 45 57 61 45 57 61 54 57 61 54 57 61 53 63 61
++53 63 61 53 63 61 65 63 61 59 69 70 53 63 61 65 63 61 53 63 61 53 63 61
++65 63 61 53 63 61 59 57 61 53 63 61 54 57 61 52 55 48 43 55 48 45 57 61
++48 50 48 45 57 61 43 42 50 43 42 50 35 47 50 43 42 50 48 50 48 35 47 50
++43 55 48 43 42 50 35 47 50 48 50 48 45 57 61 48 50 48 54 57 61 45 57 61
++54 57 61 59 69 70 59 69 70 75 72 67 75 64 82 75 81 76 75 81 82 75 81 82
++
++138 126 108 121 143 132 121 143 132 121 143 132 138 126 108 121 143 132 145 140 145 126 147 144
++150 144 154 148 160 159 150 147 171 166 156 164 150 147 171 166 174 181 150 147 171 166 176 200
++166 156 164 166 176 200 189 165 168 166 176 200 166 176 200 189 165 168 166 176 200 188 180 202
++150 147 171 166 176 200 189 165 168 166 176 200 166 156 164 166 176 200 166 156 164 150 147 171
++166 176 200 150 147 171 166 174 181 150 168 183 166 174 181 166 176 200 166 174 181 166 176 200
++166 176 200 166 176 200 166 174 181 166 176 200 166 174 181 166 176 200 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 174 181 148 160 159 150 147 171 148 160 159 145 140 145
++126 147 144 145 140 145 122 134 144 122 134 144 138 126 108 121 143 132 122 134 144 138 126 108
++112 123 108 111 119 127 111 119 127 112 123 108 112 123 108 94 105 108 94 105 108 94 105 108
++95 91 100 90 98 89 112 123 108 146 162 145 185 202 202 185 202 202 208 215 180 185 202 202
++185 202 202 208 215 180 166 180 164 185 202 202 185 202 202 166 180 164 185 202 202 166 174 181
++166 180 164 185 202 202 208 215 180 166 180 164 185 202 202 166 180 164 166 174 181 166 180 164
++166 174 181 208 215 180 166 174 181 208 215 180 166 180 164 185 202 202 189 165 168 166 180 164
++166 180 164 177 169 143 150 171 159 177 169 143 150 171 159 177 169 143 150 171 159 177 169 143
++146 151 137 121 143 132 98 113 84 65 63 61 22 25 24 22 24 13 7 12 13 15 17 7
++48 50 48 99 93 84 112 123 108 121 143 132 145 140 145 146 151 137 146 151 137 146 151 137
++146 151 137 146 162 145 166 180 164 166 180 164 166 180 164 185 202 202 208 215 180 189 165 168
++166 180 164 146 162 145 146 151 137 121 143 132 111 119 127 112 123 108 111 119 127 138 126 108
++121 143 132 121 143 132 145 140 145 126 147 144 150 144 154 126 147 144 145 140 145 121 143 132
++122 134 144 121 143 132 112 123 108 94 105 108 98 113 84 90 98 89 98 113 84 112 123 108
++111 119 127 112 123 108 112 123 108 111 119 127 129 144 153 166 174 181 185 202 202 166 176 200
++166 176 200 166 174 181 166 176 200 166 174 181 188 180 202 188 180 202 188 180 202 188 180 202
++188 180 202 185 202 202 188 180 202 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226
++194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 232 215 228
++194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 232 215 228 194 199 226
++208 221 247 201 216 228 226 221 247 208 221 247 194 199 226 232 215 228 194 199 226 208 221 247
++232 215 228 194 199 226 226 221 247 194 199 226 194 199 226 226 221 247 194 199 226 194 199 226
++194 199 226 188 180 202 194 199 226 194 199 226 201 216 228 166 176 200 95 95 116 43 42 50
++22 23 31 33 39 38 42 41 42 34 40 43 31 35 35 31 35 35 31 35 35 31 35 35
++31 35 35 28 30 35 25 30 29 25 30 29 31 35 35 34 40 43 42 47 42 42 41 42
++32 39 24 51 49 42 101 83 74 146 151 137 214 214 134 217 168 156 208 215 180 217 168 156
++208 215 180 217 168 156 214 214 134 217 168 156 208 215 180 217 168 156 217 168 156 214 214 134
++189 165 168 214 214 134 217 168 156 214 214 134 217 168 156 214 214 134 222 171 182 214 214 134
++222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 222 171 182 227 171 124 222 171 182
++214 214 134 222 171 182 214 214 134 222 171 182 214 214 134 217 168 156 222 171 182 214 214 134
++222 171 182 214 214 134 222 171 182 217 168 156 214 214 134 217 168 156 217 168 156 177 169 143
++197 171 123 177 169 143 201 146 124 177 169 143 168 146 127 201 146 124 177 169 143 201 146 124
++177 169 143 201 146 124 177 169 143 201 146 124 168 146 127 201 146 124 177 169 143 197 171 123
++168 146 127 177 171 115 201 146 124 168 146 127 177 171 115 168 102 88 146 150 115 138 126 108
++168 102 88 168 102 88 117 114 76 168 102 88 117 114 76 168 102 88 117 114 76 120 63 71
++117 114 76 101 74 26 88 73 62 88 73 31 76 46 20 60 49 42 55 39 18 52 30 35
++34 30 15 34 30 15 34 30 15 49 13 16 34 30 15 33 30 30 34 30 15 34 30 15
++34 30 15 33 30 30 53 35 17 33 30 30 53 35 17 32 39 24 52 30 35 47 47 21
++36 35 37 34 30 15 22 24 13 13 4 7 3 3 1 3 3 1 3 3 1 3 3 1
++3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 13 4 7 7 12 13
++7 12 13 7 12 13 7 12 13 17 12 17 14 16 17 7 12 13 17 12 17 7 12 13
++17 12 17 15 17 7 14 16 17 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17
++23 18 22 23 18 22 22 25 24 12 18 20 12 18 20 22 23 31 94 105 108 201 216 228
++188 180 202 77 90 100 12 18 30 3 3 1 13 4 7 7 12 13 17 12 17 13 4 7
++7 12 13 7 12 13 17 12 17 7 12 13 17 12 17 7 12 13 14 16 17 17 12 17
++23 20 24 23 20 24 23 10 10 3 3 1 3 3 1 23 10 10 33 30 30 75 73 58
++99 93 84 146 150 115 189 165 168 217 168 156 225 222 201 225 222 201 222 171 182 225 222 201
++222 171 182 208 215 180 222 171 182 214 214 134 225 222 201 217 168 156 225 222 201 222 171 182
++214 214 134 225 222 201 222 171 182 222 171 182 214 214 134 217 168 156 225 222 201 222 171 182
++222 171 182 225 222 201 225 222 201 227 171 124 225 222 201 222 171 182 225 222 201 217 168 156
++225 222 201 222 171 182 225 222 201 225 222 201 225 222 201 166 156 164 112 123 108 90 98 89
++77 90 100 94 105 108 77 91 115 77 90 100 77 90 100 77 90 100 77 90 100 75 81 90
++77 90 100 75 81 90 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100
++77 90 100 77 90 100 77 90 100 75 81 90 77 90 100 75 81 90 75 81 90 77 90 100
++75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90
++75 81 90 75 81 90 78 98 90 75 81 90 77 90 100 75 81 90 75 81 90 77 90 100
++75 81 90 77 90 100 75 81 90 75 81 90 77 90 100 75 81 90 75 81 90 75 81 90
++75 81 90 75 81 90 75 81 90 75 81 90 75 81 82 75 64 82 75 81 90 75 81 82
++75 64 82 75 81 76 75 64 82 59 69 70 59 69 70 63 59 71 59 69 70 60 63 87
++59 69 70 63 59 71 59 69 70 63 59 71 59 69 70 60 63 87 59 69 70 46 59 71
++59 69 70 46 59 71 60 63 87 59 69 70 42 60 86 59 69 70 59 69 70 42 60 86
++59 69 70 60 63 87 46 59 71 60 81 83 59 69 70 60 81 83 46 59 71 60 81 83
++46 59 71 60 81 83 46 59 71 59 69 70 46 59 71 46 59 71 45 57 61 45 57 61
++45 57 61 45 57 61 45 57 61 32 40 58 45 57 61 32 40 58 43 42 50 45 57 61
++43 42 50 32 40 58 43 42 50 32 40 58 43 42 50 35 47 50 57 43 64 48 50 48
++37 35 43 26 24 32 12 18 20 23 20 24 23 18 22 23 20 24 22 25 24 23 20 24
++23 20 24 23 18 22 15 22 17 23 18 22 15 22 17 23 20 24 23 18 22 15 22 17
++22 24 13 23 20 24 23 18 22 14 16 17 23 18 22 12 18 20 47 44 42 75 81 90
++146 151 137 188 180 202 208 215 180 188 180 202 208 215 180 188 180 202 208 215 180 185 202 202
++208 215 180 189 165 168 166 180 164 208 215 180 166 180 164 166 180 164 166 156 164 111 119 127
++90 98 89 65 63 61 59 69 70 60 63 87 75 81 90 95 91 100 111 119 127 145 140 145
++148 160 159 177 169 143 166 180 164 177 169 143 166 180 164 166 180 164 177 169 143 146 162 145
++146 151 137 177 169 143 177 169 143 146 162 145 177 169 143 177 169 143 208 215 180 189 165 168
++208 215 180 166 180 164 177 169 143 189 165 168 166 180 164 208 215 180 177 169 143 177 169 143
++177 169 143 177 171 115 177 169 143 177 171 115 177 169 143 177 171 115 146 150 115 117 142 111
++98 113 84 81 96 56 75 73 36 47 47 21 34 30 15 23 31 15 22 24 13 22 24 13
++34 30 15 47 47 21 64 70 48 75 73 58 75 72 67 75 72 67 75 64 82 75 81 82
++75 81 90 75 81 90 75 81 90 77 90 100 95 91 100 95 91 100 77 91 115 94 105 108
++77 91 115 94 105 108 77 91 115 95 108 128 94 105 108 95 108 128 95 119 107 95 108 128
++95 108 128 95 108 128 95 108 128 95 108 128 95 119 107 95 108 128 95 119 107 95 108 128
++98 121 131 77 91 115 95 108 128 95 119 107 77 91 115 77 91 115 77 91 115 78 98 90
++61 78 101 77 90 100 61 78 101 60 81 83 61 78 101 60 63 87 60 81 83 60 63 87
++59 69 70 59 69 70 59 69 70 46 59 71 46 59 71 59 69 70 53 63 61 53 63 61
++54 57 61 45 57 61 45 57 61 45 57 61 48 50 48 45 57 61 45 57 61 45 57 61
++43 42 50 43 55 48 43 42 50 35 47 50 43 42 50 35 47 50 42 41 42 34 40 43
++34 40 43 34 40 43 31 35 35 31 35 35 28 30 35 28 35 38 31 35 35 28 30 35
++28 35 38 28 35 38 28 35 38 28 35 38 31 35 35 28 35 38 28 30 35 31 35 35
++28 35 38 28 35 38 33 39 38 28 35 38 33 39 38 28 35 38 34 40 43 34 40 43
++34 40 43 33 39 38 34 40 43 34 40 43 35 47 50 43 55 48 35 47 50 43 55 48
++43 42 50 45 57 61 48 50 48 45 57 61 52 55 48 45 57 61 54 57 61 54 57 61
++53 63 61 59 57 61 53 63 61 53 63 61 53 63 61 53 63 61 53 63 61 59 69 70
++65 63 61 53 63 61 53 63 61 53 63 61 54 57 61 45 57 61 54 57 61 48 50 48
++45 57 61 48 50 48 48 50 48 43 55 48 43 42 50 43 55 48 35 47 50 48 50 48
++35 47 50 43 42 50 43 55 48 43 42 50 45 57 61 45 57 61 54 57 61 54 57 61
++54 57 61 63 59 71 59 69 70 59 69 70 60 81 83 59 69 70 75 81 82 75 81 82
++
++121 143 132 119 117 138 146 150 115 122 134 144 121 143 132 122 134 144 145 140 145 126 147 144
++150 144 154 148 160 159 148 160 159 150 147 171 150 168 183 166 156 164 166 174 181 166 174 181
++166 176 200 166 176 200 166 156 164 166 176 200 166 174 181 166 176 200 150 147 171 166 176 200
++166 176 200 166 156 164 166 176 200 150 147 171 166 176 200 150 147 171 166 176 200 166 174 181
++166 174 181 166 176 200 150 147 171 166 176 200 166 176 200 166 176 200 166 174 181 188 180 202
++166 174 181 166 176 200 166 174 181 166 174 181 166 176 200 166 174 181 166 176 200 166 174 181
++166 174 181 150 168 183 166 156 164 150 168 183 148 160 159 148 160 159 129 144 153 145 140 145
++126 147 144 126 147 144 121 143 132 145 140 145 121 143 132 141 116 139 121 143 132 119 117 138
++121 143 132 138 126 108 111 119 127 112 96 108 94 105 108 112 123 108 94 105 108 95 119 107
++94 105 108 90 98 89 111 119 127 146 162 145 188 180 202 208 215 180 185 202 202 208 215 180
++185 202 202 185 202 202 208 215 180 166 180 164 185 202 202 189 165 168 166 180 164 185 202 202
++166 180 164 166 180 164 188 180 202 166 180 164 189 165 168 185 202 202 166 180 164 166 180 164
++185 202 202 166 180 164 188 180 202 166 180 164 189 165 168 166 180 164 166 180 164 166 180 164
++166 156 164 166 180 164 166 156 164 166 180 164 166 180 164 166 156 164 146 162 145 146 151 137
++146 151 137 138 126 108 94 105 108 75 72 67 42 47 42 36 35 37 23 31 15 22 25 24
++33 39 38 65 63 61 88 83 88 90 98 89 90 98 89 90 98 89 95 119 107 112 123 108
++95 119 107 112 123 108 141 116 139 146 151 137 166 180 164 166 180 164 188 180 202 166 180 164
++166 156 164 146 151 137 121 143 132 138 126 108 95 119 107 88 83 74 75 99 72 88 83 88
++90 98 89 90 98 89 94 105 108 112 123 108 117 142 111 111 119 127 95 119 107 90 98 89
++90 98 89 90 98 89 88 83 74 75 81 69 59 79 61 75 73 58 59 79 61 75 81 69
++75 81 76 75 81 76 60 82 70 90 98 89 111 119 127 148 160 159 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 176 200 166 174 181
++166 176 200 188 180 202 188 180 202 188 180 202 188 180 202 188 180 202 194 199 226 194 199 226
++194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 188 180 202 194 199 226 194 199 226
++194 199 226 194 199 226 194 199 226 232 215 228 194 199 226 226 221 247 194 199 226 208 221 247
++194 199 226 232 215 228 194 199 226 201 216 228 232 215 228 194 199 226 226 221 247 194 199 226
++194 199 226 232 215 228 194 199 226 232 215 228 232 215 228 194 199 226 194 199 226 194 199 226
++188 180 202 194 199 226 194 199 226 194 199 226 194 199 226 150 168 183 77 91 115 32 40 58
++22 23 31 33 30 36 37 35 43 31 35 35 30 30 34 33 30 32 31 35 35 36 35 37
++31 35 35 25 30 29 25 30 29 22 23 31 25 30 29 33 39 38 42 41 42 42 41 42
++32 39 24 55 39 37 101 83 74 146 150 115 177 169 143 177 169 143 217 168 156 217 168 156
++217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 214 214 134 217 168 156 217 168 156
++217 168 156 217 168 156 214 214 134 217 168 156 208 215 180 217 168 156 222 171 182 217 168 156
++222 171 182 214 214 134 222 171 182 217 168 156 214 214 134 217 168 156 214 214 134 222 171 182
++217 168 156 214 214 134 222 171 182 217 168 156 222 171 182 214 214 134 222 171 182 217 168 156
++217 168 156 222 171 182 214 214 134 217 168 156 217 168 156 177 169 143 197 171 123 177 169 143
++201 146 124 201 146 124 168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 177 169 143
++201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 168 146 127
++168 146 127 168 146 127 168 146 127 146 150 115 168 102 88 168 146 127 168 102 88 117 127 86
++117 114 76 117 114 76 168 102 88 117 99 86 117 112 45 120 63 71 117 112 45 117 99 86
++117 112 45 120 63 71 88 73 31 76 44 53 76 46 20 55 39 37 55 39 18 53 35 17
++34 30 15 34 30 15 28 13 18 33 30 30 34 30 15 49 13 16 34 30 15 33 30 30
++34 30 15 34 30 15 34 30 15 33 30 30 53 35 17 36 35 37 32 39 24 53 35 17
++32 39 24 47 47 21 33 30 30 26 25 15 15 17 7 13 4 7 13 4 7 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 6 15 6 7 12 13 7 12 13
++13 4 7 7 10 17 13 4 7 14 16 17 14 16 17 7 12 13 7 12 13 15 17 7
++17 12 17 14 16 17 7 12 13 17 12 17 14 16 17 14 16 17 14 16 17 23 18 22
++23 18 22 23 20 24 26 24 32 7 10 17 7 10 17 63 59 71 150 168 183 232 215 228
++126 147 144 28 30 35 3 4 9 3 4 9 7 12 13 15 17 7 7 12 13 7 12 13
++13 4 7 7 12 13 7 12 13 17 12 17 7 10 17 14 16 17 17 12 17 14 16 17
++17 12 17 13 4 7 13 4 7 15 17 7 55 39 37 88 73 62 117 127 86 168 146 127
++189 165 168 208 215 180 225 222 201 225 222 201 208 215 180 222 171 182 208 215 180 222 171 182
++214 214 134 222 171 182 208 215 180 222 171 182 208 215 180 222 171 182 214 214 134 225 222 201
++222 171 182 222 171 182 214 214 134 222 171 182 225 222 201 222 171 182 214 214 134 225 222 201
++214 214 134 225 222 201 222 171 182 225 222 201 222 171 182 225 222 201 214 214 134 225 222 201
++225 222 201 225 222 201 225 222 201 225 222 201 225 222 201 222 171 182 166 156 164 112 123 108
++77 90 100 77 90 100 78 98 90 77 90 100 77 90 100 61 78 101 77 90 100 61 78 101
++75 81 90 61 78 101 75 81 90 77 90 100 75 81 90 77 90 100 77 90 100 77 90 100
++75 81 90 75 81 90 75 81 90 77 90 100 75 81 90 75 81 90 75 81 90 75 81 90
++75 81 90 75 81 90 75 81 90 75 81 90 60 81 83 75 81 90 75 81 90 75 81 90
++75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90
++75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90 75 81 90
++75 81 90 75 64 82 75 81 90 75 64 82 75 81 82 75 81 82 75 64 82 60 81 83
++75 81 76 60 63 87 59 69 70 59 69 70 60 63 87 63 59 71 60 63 87 59 69 70
++63 59 71 60 63 87 59 69 70 60 63 87 46 59 71 63 59 71 46 59 71 60 63 87
++46 59 71 59 69 70 46 59 71 60 63 87 59 69 70 46 59 71 46 59 71 59 69 70
++42 60 86 60 82 70 42 60 86 59 69 70 42 60 86 46 59 71 59 69 70 42 60 86
++59 69 70 46 59 71 46 59 71 46 59 71 46 59 71 45 57 61 45 57 61 45 57 61
++45 57 61 32 40 58 45 57 61 45 57 61 32 40 58 43 42 50 45 57 61 32 40 58
++43 42 50 32 40 58 45 57 61 43 42 50 43 42 50 45 57 61 43 42 50 43 42 50
++42 41 42 26 24 32 23 20 24 23 18 22 23 18 22 23 20 24 22 25 24 23 18 22
++15 22 17 23 18 22 23 18 22 23 18 22 23 18 22 22 25 24 15 22 17 17 12 17
++15 22 17 23 18 22 22 25 24 14 16 17 23 18 22 22 25 24 59 69 70 111 119 127
++166 180 164 208 215 180 189 165 168 166 180 164 189 165 168 166 180 164 189 165 168 189 165 168
++166 180 164 166 180 164 177 169 143 166 180 164 189 165 168 166 180 164 177 169 143 146 151 137
++111 119 127 75 81 90 45 57 61 34 42 77 34 42 77 60 63 87 77 90 100 95 119 107
++145 140 145 146 162 145 177 169 143 189 165 168 166 180 164 177 169 143 166 156 164 177 169 143
++177 169 143 166 180 164 177 169 143 177 169 143 177 169 143 166 180 164 166 180 164 166 180 164
++177 169 143 177 169 143 208 215 180 166 180 164 214 214 134 177 169 143 146 162 145 177 171 115
++146 162 145 177 171 115 146 162 145 177 169 143 177 171 115 117 142 111 98 113 84 75 73 36
++51 49 42 47 47 21 23 31 15 23 31 15 23 31 15 34 30 15 22 24 13 15 17 7
++29 35 19 51 49 42 75 73 58 75 81 76 75 72 67 75 72 67 75 64 82 75 81 82
++75 81 82 75 81 90 75 81 90 77 90 100 77 90 100 95 91 100 77 90 100 77 90 100
++94 105 108 77 91 115 94 105 108 77 91 115 95 108 128 94 105 108 95 108 128 94 105 108
++95 108 128 95 108 128 95 108 128 94 105 108 95 108 128 77 91 115 98 121 131 77 91 115
++95 119 107 77 91 115 95 119 107 77 91 115 77 91 115 77 91 115 78 98 90 77 91 115
++61 78 101 78 98 90 61 78 101 60 81 83 60 81 83 60 81 83 60 63 87 59 69 70
++46 59 71 46 59 71 46 59 71 59 69 70 53 63 61 46 59 71 54 57 61 46 59 71
++45 57 61 45 57 61 45 57 61 43 42 50 45 57 61 43 42 50 43 42 50 45 57 61
++43 42 50 35 47 50 43 42 50 35 47 50 42 41 42 42 41 42 34 40 43 34 40 43
++33 39 38 28 35 38 28 35 38 28 30 35 31 35 35 28 30 35 28 30 35 28 35 38
++28 30 35 28 30 35 31 35 35 28 30 35 28 35 38 28 30 35 28 35 38 28 35 38
++31 35 35 28 35 38 28 35 38 28 35 38 33 39 38 33 39 38 37 35 43 34 40 43
++34 40 43 34 40 43 35 46 43 35 47 50 43 42 50 35 47 50 48 50 48 35 47 50
++43 55 48 43 42 50 45 57 61 45 57 61 45 57 61 45 57 61 54 57 61 54 57 61
++54 57 61 53 63 61 63 59 71 53 63 61 63 59 71 53 63 61 63 59 71 53 63 61
++53 63 61 59 69 70 53 63 61 53 63 61 54 57 61 54 57 61 45 57 61 45 57 61
++48 50 48 45 57 61 43 42 50 45 57 61 43 42 50 43 55 48 43 42 50 43 55 48
++43 42 50 43 55 48 43 42 50 45 57 61 45 57 61 45 57 61 54 57 61 54 57 61
++54 57 61 59 69 70 59 69 70 59 69 70 75 64 82 75 64 82 75 81 82 75 81 82
++
++138 126 108 121 143 132 145 140 145 121 143 132 138 126 108 145 140 145 126 147 144 146 151 137
++129 144 153 150 144 154 148 160 159 150 147 171 166 156 164 150 147 171 166 174 181 150 147 171
++166 174 181 150 147 171 166 176 200 166 156 164 166 176 200 166 156 164 166 176 200 166 156 164
++150 147 171 166 176 200 150 147 171 166 174 181 150 147 171 166 174 181 150 147 171 150 147 171
++166 176 200 166 156 164 166 176 200 166 174 181 166 176 200 166 174 181 166 176 200 166 174 181
++166 176 200 166 174 181 166 176 200 166 174 181 166 174 181 166 176 200 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 156 164 150 147 171 148 160 159 148 160 159 148 160 159
++145 140 145 146 151 137 146 151 137 121 143 132 145 140 145 121 143 132 121 143 132 138 126 108
++121 143 132 111 119 127 111 119 127 111 119 127 111 119 127 94 105 108 112 123 108 94 105 108
++112 123 108 94 105 108 112 123 108 150 171 159 166 180 164 166 180 164 185 202 202 166 174 181
++208 215 180 166 180 164 166 180 164 166 180 164 166 180 164 185 202 202 166 180 164 166 180 164
++208 215 180 166 180 164 166 180 164 185 202 202 166 180 164 166 180 164 166 180 164 166 180 164
++166 180 164 166 180 164 166 180 164 166 180 164 166 180 164 150 171 159 166 156 164 146 162 145
++146 162 145 148 160 159 177 169 143 146 162 145 146 151 137 146 151 137 145 140 145 146 150 115
++111 119 127 112 123 108 98 113 84 75 81 69 55 55 48 52 55 48 42 47 42 42 47 42
++75 73 58 90 98 89 90 98 89 65 63 61 33 39 38 47 49 42 50 61 48 59 55 55
++53 63 61 65 63 61 75 81 69 90 98 89 111 119 127 146 151 137 146 151 137 146 151 137
++121 143 132 138 126 108 121 143 132 112 123 108 75 77 62 42 47 42 33 39 38 32 39 24
++42 47 42 47 49 42 59 79 61 75 81 82 90 98 89 75 81 82 75 81 69 60 82 70
++75 77 62 59 79 61 53 63 61 50 61 48 47 49 42 42 47 42 42 47 42 42 47 42
++50 61 48 43 55 48 43 55 48 45 57 61 78 98 90 122 134 144 150 147 171 150 168 183
++148 160 159 150 147 171 148 160 159 150 147 171 150 168 183 150 168 183 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 176 200 166 176 200 166 176 200 188 180 202 188 180 202
++185 202 202 188 180 202 188 180 202 185 202 202 188 180 202 188 180 202 194 199 226 188 180 202
++188 180 202 194 199 226 188 180 202 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226
++194 199 226 194 199 226 226 221 247 194 199 226 194 199 226 194 199 226 194 199 226 232 215 228
++194 199 226 194 199 226 232 215 228 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226
++166 176 200 194 199 226 166 176 200 194 199 226 194 199 226 150 147 171 75 81 90 24 30 43
++22 23 31 28 30 35 30 30 34 30 30 34 26 30 28 30 30 34 31 35 35 31 35 35
++31 35 35 28 30 35 22 25 24 22 25 24 25 30 29 31 35 35 36 35 37 36 35 37
++32 39 24 51 49 42 99 93 84 138 126 108 197 171 123 177 169 143 217 168 156 177 169 143
++217 168 156 208 215 180 217 168 156 217 168 156 214 214 134 217 168 156 217 168 156 208 215 180
++217 168 156 214 214 134 217 168 156 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182
++214 214 134 222 171 182 214 214 134 217 168 156 217 168 156 217 168 156 222 171 182 214 214 134
++217 168 156 222 171 182 214 214 134 222 171 182 214 214 134 217 168 156 217 168 156 214 214 134
++222 171 182 214 214 134 217 168 156 217 168 156 217 168 156 197 171 123 177 169 143 201 146 124
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 177 169 143 201 146 124 168 146 127
++201 146 124 168 146 127 201 146 124 201 146 124 168 146 127 201 146 124 168 146 127 168 146 127
++201 146 124 168 146 127 177 171 115 168 102 88 146 150 115 138 126 108 168 102 88 117 114 76
++168 102 88 120 63 71 117 112 45 120 63 71 168 102 88 117 114 76 167 63 71 117 112 45
++120 63 71 88 73 31 88 44 51 76 46 20 76 46 20 55 39 37 55 39 18 52 30 15
++34 30 15 49 13 16 34 30 15 28 13 18 34 30 15 34 30 15 28 13 18 34 30 15
++49 13 16 34 30 15 34 30 15 33 30 30 53 35 17 33 30 30 53 35 17 33 30 30
++34 30 15 33 30 30 47 47 21 52 30 35 32 39 24 33 30 30 22 24 13 13 4 7
++3 3 1 3 3 1 3 3 1 3 3 1 13 4 7 3 3 1 3 4 9 3 4 9
++7 10 17 13 4 7 7 12 13 7 12 13 13 4 7 7 12 13 13 4 7 7 12 13
++15 17 7 14 16 17 17 12 17 14 16 17 14 16 17 14 16 17 23 20 24 23 20 24
++23 20 24 23 20 24 23 18 22 7 10 17 28 30 35 122 134 144 201 216 228 188 180 202
++75 81 90 3 3 1 3 4 9 3 4 9 17 12 17 7 12 13 7 12 13 13 4 7
++7 12 13 13 4 7 7 12 13 7 10 17 14 16 17 14 16 17 17 12 17 7 12 13
++3 3 1 13 4 7 33 30 30 75 77 62 145 140 145 189 165 168 208 215 180 225 222 201
++225 222 201 225 222 201 222 171 182 225 222 201 222 171 182 208 215 180 208 215 180 222 171 182
++225 222 201 208 215 180 222 171 182 214 214 134 225 222 201 217 168 156 225 222 201 217 168 156
++225 222 201 214 214 134 222 171 182 225 222 201 227 171 124 225 222 201 222 171 182 225 222 201
++222 171 182 225 222 201 214 214 134 225 222 201 214 214 134 222 171 182 225 222 201 222 171 182
++214 214 134 222 171 182 222 171 182 225 222 201 225 222 201 233 241 227 208 215 180 150 144 154
++94 105 108 77 90 100 77 90 100 77 90 100 77 90 100 75 81 90 77 90 100 60 81 83
++77 90 100 75 81 90 75 81 90 61 78 101 75 81 90 61 78 101 75 81 90 75 81 90
++61 78 101 75 81 90 75 81 90 61 78 101 75 81 90 75 81 90 61 78 101 75 81 90
++60 81 83 75 81 90 60 81 83 75 81 90 60 81 83 60 81 83 60 81 83 75 81 90
++60 81 83 60 81 83 75 81 90 60 81 83 75 81 90 60 81 83 75 81 90 60 81 83
++75 81 90 60 81 83 75 81 90 60 81 83 75 81 90 75 64 82 60 81 83 75 81 90
++60 81 83 75 64 82 75 81 82 60 63 87 75 81 82 60 63 87 75 81 82 59 69 70
++75 64 82 59 69 70 75 81 76 63 59 71 59 69 70 60 63 87 59 69 70 63 59 71
++59 69 70 63 59 71 63 59 71 46 59 71 63 59 71 46 59 71 46 59 71 59 69 70
++46 59 71 46 59 71 59 69 70 46 59 71 46 59 71 46 59 71 59 69 70 46 59 71
++46 59 71 59 69 70 42 60 86 59 69 70 42 60 86 59 69 70 42 60 86 59 69 70
++46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 45 57 61 46 59 71 45 57 61
++32 40 58 45 57 61 45 57 61 32 40 58 43 42 50 32 40 58 32 40 58 43 42 50
++32 40 58 43 42 50 43 42 50 32 40 58 43 42 50 43 42 50 43 42 50 43 42 50
++43 42 50 33 30 36 23 20 24 23 18 22 23 18 22 15 22 17 23 18 22 15 22 17
++23 18 22 22 24 13 23 18 22 22 24 13 15 22 17 23 18 22 23 18 22 22 24 13
++17 12 17 14 16 17 14 16 17 14 16 17 22 25 24 53 46 48 112 123 108 148 160 159
++189 165 168 166 180 164 189 165 168 166 180 164 166 180 164 208 215 180 166 180 164 166 180 164
++177 169 143 177 169 143 166 180 164 166 156 164 177 169 143 146 162 145 166 180 164 166 174 181
++148 160 159 94 105 108 46 59 71 32 40 58 42 60 86 42 60 86 42 60 86 88 83 88
++111 119 127 146 151 137 146 162 145 177 169 143 177 169 143 146 162 145 177 169 143 166 180 164
++177 169 143 150 171 159 177 169 143 146 162 145 177 169 143 189 165 168 177 169 143 166 180 164
++189 165 168 166 180 164 177 169 143 177 169 143 146 151 137 146 150 115 146 150 115 146 162 145
++177 169 143 177 169 143 177 171 115 146 150 115 146 150 115 98 106 55 49 74 23 47 47 21
++23 31 15 22 24 13 15 17 7 22 24 13 34 30 15 34 30 15 26 25 15 22 24 13
++47 47 21 59 55 55 75 72 67 75 72 67 75 72 67 63 59 71 75 81 76 75 64 82
++75 81 82 75 81 90 75 81 90 88 83 88 75 81 90 77 90 100 77 90 100 77 90 100
++77 90 100 77 91 115 77 91 115 94 105 108 77 91 115 94 105 108 77 91 115 95 108 128
++77 91 115 95 108 128 77 91 115 95 119 107 77 91 115 95 119 107 77 91 115 95 108 128
++77 91 115 95 108 128 77 91 115 77 91 115 78 98 90 77 91 115 61 78 101 78 98 90
++61 78 101 61 78 101 60 81 83 61 78 101 60 81 83 60 63 87 59 69 70 59 69 70
++46 59 71 59 69 70 46 59 71 46 59 71 46 59 71 54 57 61 45 57 61 45 57 61
++45 57 61 45 57 61 45 57 61 43 42 50 45 57 61 43 42 50 45 57 61 35 47 50
++35 47 50 43 42 50 43 42 50 35 47 50 43 42 50 34 40 43 34 40 43 34 40 43
++28 35 38 28 35 38 31 35 35 31 35 35 28 35 38 28 30 35 28 30 35 28 30 35
++28 35 38 28 35 38 28 35 38 28 35 38 28 35 38 28 35 38 28 35 38 28 35 38
++28 35 38 28 35 38 28 35 38 34 40 43 34 40 43 33 39 38 34 40 43 34 40 43
++34 40 43 35 46 43 35 47 50 43 42 50 35 47 50 43 55 48 43 42 50 35 47 50
++43 55 48 43 42 50 45 57 61 48 50 48 45 57 61 54 57 61 45 57 61 54 57 61
++53 63 61 59 57 61 59 69 70 53 63 61 59 69 70 53 63 61 53 63 61 59 57 61
++53 63 61 53 63 61 53 63 61 53 63 61 54 57 61 54 57 61 54 57 61 48 50 48
++45 57 61 43 42 50 45 57 61 43 42 50 43 42 50 43 55 48 43 42 50 35 47 50
++45 57 61 43 42 50 48 50 48 45 57 61 48 50 48 45 57 61 45 57 61 54 57 61
++53 63 61 63 59 71 59 69 70 59 69 70 59 69 70 60 81 83 75 64 82 75 81 82
++
++121 143 132 145 140 145 146 151 137 121 143 132 145 140 145 121 143 132 145 140 145 145 140 145
++145 140 145 148 160 159 150 144 154 148 160 159 150 147 171 166 174 181 150 147 171 166 174 181
++166 156 164 166 176 200 166 156 164 166 176 200 166 156 164 166 176 200 166 156 164 166 176 200
++166 156 164 166 156 164 166 176 200 150 147 171 166 156 164 150 147 171 166 176 200 150 147 171
++166 156 164 166 176 200 150 147 171 166 176 200 166 174 181 166 176 200 166 174 181 166 176 200
++166 174 181 166 176 200 166 174 181 166 176 200 166 174 181 166 174 181 166 176 200 166 174 181
++166 174 181 166 174 181 148 160 159 166 174 181 148 160 159 148 160 159 150 144 154 146 162 145
++145 140 145 126 147 144 146 151 137 145 140 145 146 151 137 146 151 137 145 140 145 121 143 132
++141 116 139 121 143 132 138 126 108 111 119 127 112 123 108 94 105 108 94 105 108 112 123 108
++94 105 108 112 123 108 112 123 108 146 162 145 166 180 164 188 180 202 208 215 180 166 180 164
++188 180 202 166 180 164 185 202 202 189 165 168 166 180 164 166 180 164 166 180 164 166 180 164
++166 180 164 166 174 181 166 180 164 166 180 164 185 202 202 166 180 164 166 180 164 188 180 202
++166 180 164 166 174 181 166 180 164 166 180 164 166 180 164 146 151 137 146 151 137 146 151 137
++146 151 137 146 151 137 146 151 137 121 143 132 138 126 108 112 123 108 112 123 108 90 98 89
++98 113 84 99 93 84 75 81 76 65 63 61 50 61 48 52 55 48 52 55 48 64 70 48
++112 123 108 146 162 145 121 143 132 88 83 74 32 39 24 29 35 19 15 22 17 6 15 6
++15 17 7 15 22 17 22 25 24 33 39 38 65 63 61 75 81 76 75 81 76 65 63 61
++65 63 61 90 98 89 112 123 108 90 98 89 52 55 48 26 30 28 23 31 15 22 25 24
++26 30 28 25 30 29 50 61 48 75 81 76 75 81 90 75 81 82 75 81 76 59 69 70
++59 69 70 53 63 61 50 61 48 50 61 48 43 55 48 43 55 48 43 55 48 35 47 50
++35 47 50 35 47 50 32 40 58 35 47 50 46 59 71 77 91 115 122 134 144 129 144 153
++131 144 168 129 144 153 150 144 154 131 144 168 150 144 154 148 160 159 150 147 171 148 160 159
++150 168 183 150 168 183 166 174 181 166 174 181 166 174 181 166 174 181 166 176 200 166 176 200
++188 180 202 188 180 202 188 180 202 188 180 202 166 176 200 188 180 202 188 180 202 188 180 202
++194 199 226 188 180 202 188 180 202 188 180 202 194 199 226 188 180 202 194 199 226 194 199 226
++194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226
++194 199 226 194 199 226 194 199 226 194 199 226 232 215 228 194 199 226 188 180 202 188 180 202
++194 199 226 166 176 200 194 199 226 194 199 226 194 199 226 131 144 168 60 63 87 23 30 35
++12 18 20 26 24 32 30 30 34 25 30 29 26 24 32 30 30 34 30 30 34 31 35 35
++25 30 29 22 25 24 22 25 24 22 23 31 30 30 34 33 30 32 36 35 37 36 35 37
++55 39 37 63 55 45 117 99 86 168 146 127 177 169 143 177 169 143 217 168 156 214 214 134
++208 215 180 217 168 156 214 214 134 208 215 180 217 168 156 208 215 180 217 168 156 214 214 134
++217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 208 215 180
++222 171 182 217 168 156 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 222 171 182
++214 214 134 222 171 182 222 171 182 214 214 134 222 171 182 222 171 182 214 214 134 222 171 182
++217 168 156 217 168 156 217 168 156 197 171 123 177 169 143 201 146 124 168 146 127 168 146 127
++168 102 88 146 150 115 201 146 124 168 146 127 201 146 124 177 171 115 201 146 124 177 169 143
++201 146 124 177 171 115 201 146 124 177 169 143 201 146 124 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 168 102 88 146 150 115 168 102 88 157 148 53 117 99 86 168 102 88
++117 114 76 117 114 76 168 102 88 117 114 76 117 99 86 168 102 88 117 112 45 120 63 71
++101 83 74 101 74 26 75 56 53 76 46 20 55 39 37 55 39 18 52 30 35 34 30 15
++33 30 30 34 30 15 28 13 18 34 30 15 34 30 15 23 20 24 34 30 15 34 30 15
++33 30 30 34 30 15 34 30 15 52 30 15 33 30 30 47 47 21 52 30 35 32 39 24
++52 30 15 33 30 30 53 35 17 32 39 24 55 39 37 47 47 21 33 30 30 26 25 15
++13 4 7 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 13 4 7
++3 4 9 3 4 9 7 12 13 13 4 7 7 12 13 13 4 7 3 4 9 7 12 13
++17 12 17 14 16 17 15 22 17 14 16 17 14 16 17 23 18 22 22 25 24 22 25 24
++26 24 32 22 25 24 7 10 17 22 23 31 75 81 90 185 202 202 201 216 228 111 119 127
++23 30 35 3 3 1 3 4 9 13 4 7 7 12 13 13 4 7 13 4 7 6 15 6
++13 4 7 7 12 13 7 12 13 17 12 17 14 16 17 17 12 17 13 4 7 3 3 1
++26 12 13 64 70 48 138 126 108 177 169 143 208 215 180 208 215 180 225 222 201 222 171 182
++225 222 201 222 171 182 208 215 180 208 215 180 222 171 182 208 215 180 222 171 182 214 214 134
++222 171 182 208 215 180 222 171 182 225 222 201 217 168 156 225 222 201 227 171 124 225 222 201
++222 171 182 222 171 182 225 222 201 227 171 124 225 222 201 222 171 182 214 214 134 222 171 182
++225 222 201 217 168 156 225 222 201 222 171 182 225 222 201 225 222 201 214 214 134 225 222 201
++225 222 201 225 222 201 225 222 201 222 171 182 225 222 201 225 222 201 225 222 201 222 171 182
++146 162 145 95 91 100 77 90 100 75 81 90 61 78 101 77 90 100 61 78 101 75 81 90
++61 78 101 60 81 83 61 78 101 75 81 90 61 78 101 75 81 90 61 78 101 75 81 90
++75 81 90 61 78 101 75 81 90 75 81 90 61 78 101 75 81 90 60 81 83 60 81 83
++75 64 82 61 78 101 60 63 87 60 81 83 60 63 87 60 81 83 60 63 87 60 81 83
++75 81 90 60 81 83 75 81 90 60 81 83 75 81 90 60 63 87 61 78 101 75 81 90
++60 81 83 75 81 90 75 81 90 60 63 87 75 81 90 60 63 87 75 81 90 60 63 87
++60 63 87 75 81 90 60 63 87 75 81 90 60 63 87 60 81 83 75 64 82 60 63 87
++60 81 83 60 63 87 59 69 70 60 63 87 63 59 71 63 59 71 60 63 87 46 59 71
++60 63 87 46 59 71 63 59 71 46 59 71 60 63 87 46 59 71 63 59 71 42 60 86
++46 59 71 60 63 87 46 59 71 60 63 87 46 59 71 46 59 71 46 59 71 46 59 71
++60 81 83 42 60 86 59 69 70 42 60 86 59 69 70 42 60 86 59 69 70 46 59 71
++46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 32 40 58 46 59 71
++45 57 61 32 40 58 45 57 61 32 40 58 45 57 61 32 40 58 43 42 50 32 40 58
++43 42 50 32 40 58 45 57 61 32 40 58 45 57 61 43 42 50 45 57 61 45 57 61
++43 42 50 37 35 43 26 24 32 23 20 24 23 20 24 22 25 24 15 22 17 23 18 22
++15 22 17 23 18 22 15 22 17 23 18 22 23 18 22 15 22 17 23 18 22 23 20 24
++23 18 22 14 16 17 17 12 17 14 16 17 36 35 37 90 98 89 145 140 145 177 169 143
++166 180 164 166 180 164 177 169 143 166 180 164 177 169 143 177 169 143 177 169 143 177 169 143
++146 162 145 146 162 145 177 169 143 150 171 159 177 169 143 146 162 145 189 165 168 166 174 181
++166 180 164 94 105 108 46 59 71 34 42 77 42 60 86 42 60 86 60 63 87 75 81 90
++112 123 108 145 140 145 146 151 137 146 151 137 146 151 137 146 162 145 177 169 143 166 180 164
++166 180 164 177 169 143 146 162 145 177 169 143 177 169 143 166 180 164 177 169 143 177 169 143
++177 169 143 177 169 143 177 171 115 146 150 115 138 126 108 146 150 115 177 169 143 177 169 143
++177 171 115 146 150 115 146 150 115 146 150 115 146 150 115 98 113 84 64 70 48 32 39 24
++23 31 15 23 31 15 34 30 15 34 30 15 29 35 19 23 31 15 34 30 15 47 47 21
++65 63 61 65 63 61 75 72 67 59 69 70 63 59 71 75 64 82 75 64 82 75 81 82
++75 64 82 75 81 82 75 64 82 75 81 90 75 81 90 75 81 90 77 90 100 77 90 100
++77 90 100 77 90 100 77 90 100 77 91 115 77 91 115 77 91 115 94 105 108 77 91 115
++95 119 107 77 91 115 95 108 128 77 91 115 77 91 115 95 119 107 77 91 115 77 91 115
++77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 78 98 90 77 91 115 61 78 101
++60 81 83 61 78 101 60 81 83 60 81 83 60 63 87 60 63 87 59 69 70 42 60 86
++46 59 71 46 59 71 46 59 71 46 59 71 54 57 61 45 57 61 45 57 61 45 57 61
++45 57 61 43 42 50 45 57 61 43 42 50 35 47 50 45 57 61 43 42 50 43 42 50
++43 42 50 35 47 50 43 42 50 35 47 50 42 41 42 34 40 43 34 40 43 28 35 38
++28 35 38 33 30 36 28 35 38 28 35 38 28 35 38 28 35 38 23 30 35 28 35 38
++28 35 38 28 30 35 28 35 38 28 30 35 28 35 38 31 35 35 28 35 38 28 35 38
++28 35 38 28 35 38 34 40 43 28 35 38 34 40 43 28 35 38 34 40 43 34 40 43
++34 40 43 35 47 50 35 47 50 35 47 50 43 42 50 35 47 50 35 47 50 35 47 50
++45 57 61 35 47 50 45 57 61 45 57 61 45 57 61 45 57 61 54 57 61 54 57 61
++53 63 61 59 69 70 54 57 61 53 63 61 53 63 61 63 59 71 53 63 61 54 57 61
++54 57 61 53 63 61 53 63 61 54 57 61 54 57 61 45 57 61 45 57 61 45 57 61
++48 50 48 45 57 61 43 55 48 43 42 50 45 57 61 35 47 50 45 57 61 43 55 48
++43 42 50 45 57 61 45 57 61 48 50 48 45 57 61 54 57 61 54 57 61 53 63 61
++46 59 71 59 69 70 53 63 61 59 69 70 59 69 70 75 64 82 60 81 83 75 64 82
++
++145 140 145 121 143 132 146 151 137 145 140 145 121 143 132 146 151 137 145 140 145 146 151 137
++129 144 153 145 140 145 150 144 154 150 144 154 148 160 159 166 156 164 166 156 164 166 156 164
++150 147 171 166 156 164 166 176 200 166 156 164 150 147 171 166 176 200 166 156 164 150 147 171
++166 176 200 150 147 171 166 156 164 150 147 171 166 174 181 150 147 171 150 147 171 166 174 181
++150 147 171 166 174 181 150 147 171 166 174 181 166 174 181 166 176 200 166 174 181 166 176 200
++166 174 181 166 176 200 166 176 200 166 174 181 166 176 200 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 150 171 159 166 156 164 166 156 164 148 160 159 150 144 154
++146 162 145 146 151 137 126 147 144 146 151 137 126 147 144 146 151 137 145 140 145 146 151 137
++121 143 132 119 117 138 121 143 132 111 119 127 112 123 108 111 119 127 111 119 127 94 105 108
++112 123 108 112 96 108 111 119 127 146 151 137 150 171 159 166 180 164 166 180 164 208 215 180
++166 180 164 166 180 164 166 180 164 166 180 164 166 180 164 166 180 164 166 180 164 166 180 164
++166 180 164 166 180 164 166 180 164 166 174 181 166 180 164 166 180 164 166 180 164 166 180 164
++166 180 164 166 180 164 166 180 164 148 160 159 146 151 137 146 151 137 112 123 108 112 123 108
++94 105 108 98 113 84 90 98 89 88 83 74 75 81 69 75 77 62 65 63 61 64 70 48
++65 63 61 64 70 48 64 70 48 50 61 48 52 55 48 50 61 48 64 70 48 99 93 84
++146 162 145 188 180 202 177 169 143 94 105 108 52 55 48 33 39 38 23 31 15 15 22 17
++15 22 17 22 24 13 22 25 24 32 39 24 42 47 42 42 47 42 31 35 35 22 25 24
++31 35 35 63 59 71 90 98 89 75 81 82 75 72 67 54 57 61 52 55 48 54 57 61
++50 61 48 59 69 70 75 81 82 90 98 89 94 105 108 94 105 108 90 98 89 78 98 90
++75 81 76 75 81 76 59 69 70 59 69 70 59 69 70 53 63 61 53 63 61 45 57 61
++45 57 61 45 57 61 45 57 61 32 40 58 45 57 61 60 63 87 77 90 100 95 108 128
++111 119 127 111 119 127 111 119 127 122 134 144 122 134 144 129 144 153 129 144 153 129 144 153
++146 162 145 148 160 159 148 160 159 148 160 159 150 168 183 166 174 181 166 174 181 166 174 181
++166 176 200 166 174 181 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 166 176 200
++166 176 200 166 176 200 188 180 202 188 180 202 188 180 202 188 180 202 188 180 202 194 199 226
++188 180 202 194 199 226 194 199 226 188 180 202 232 215 228 188 180 202 194 199 226 194 199 226
++222 171 182 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 166 176 200
++166 176 200 194 199 226 166 176 200 194 199 226 185 202 202 129 144 153 59 69 70 22 23 31
++17 12 17 25 30 29 26 30 28 26 30 28 26 24 32 26 24 32 30 30 34 31 35 35
++25 30 29 22 25 24 22 25 24 22 25 24 33 30 30 31 35 35 36 35 37 32 39 24
++51 49 42 88 73 62 138 126 108 177 169 143 177 169 143 217 168 156 208 215 180 217 168 156
++217 168 156 208 215 180 217 168 156 217 168 156 189 165 168 214 214 134 217 168 156 208 215 180
++217 168 156 217 168 156 214 214 134 222 171 182 214 214 134 217 168 156 208 215 180 217 168 156
++214 214 134 222 171 182 214 214 134 217 168 156 217 168 156 217 168 156 208 215 180 227 171 124
++208 215 180 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 217 168 156 217 168 156
++214 214 134 217 168 156 217 168 156 177 169 143 201 146 124 168 146 127 146 150 115 168 102 88
++163 117 123 157 148 53 163 117 123 177 171 115 201 146 124 168 146 127 201 146 124 177 171 115
++201 146 124 168 146 127 168 146 127 201 146 124 168 146 127 168 146 127 177 171 115 168 102 88
++146 150 115 168 102 88 146 150 115 168 102 88 138 126 108 117 99 86 168 102 88 117 114 76
++117 114 76 167 63 71 117 114 76 120 63 71 168 102 88 117 112 45 120 63 71 101 83 74
++101 74 26 88 44 51 76 46 20 60 49 42 55 39 18 55 39 37 53 35 17 53 35 17
++34 30 15 28 13 18 34 30 15 28 13 18 34 30 15 34 30 15 34 30 15 34 30 15
++34 30 15 34 30 15 33 30 30 34 30 15 33 30 30 52 30 35 47 47 21 52 30 35
++34 30 15 34 30 15 53 35 17 34 30 15 47 47 21 55 39 37 55 39 18 32 39 24
++22 24 13 13 4 7 3 3 1 3 3 1 3 3 1 6 15 6 7 12 13 3 4 9
++3 3 1 13 4 7 3 4 9 13 4 7 3 4 9 3 4 9 13 4 7 7 12 13
++14 16 17 15 22 17 22 25 24 23 18 22 23 18 22 23 20 24 22 25 24 22 25 24
++22 23 31 12 18 20 3 4 9 59 57 61 150 147 171 201 216 228 166 174 181 35 47 50
++3 4 9 3 3 1 3 4 9 7 12 13 13 4 7 6 15 6 13 4 7 7 12 13
++13 4 7 7 12 13 15 17 7 7 12 13 13 4 7 3 3 1 13 4 7 32 39 24
++101 83 74 146 150 115 222 171 182 225 222 201 222 171 182 208 215 180 222 171 182 208 215 180
++222 171 182 214 214 134 225 222 201 217 168 156 225 222 201 214 214 134 225 222 201 208 215 180
++225 222 201 222 171 182 214 214 134 225 222 201 214 214 134 222 171 182 225 222 201 217 168 156
++225 222 201 214 214 134 222 171 182 225 222 201 214 214 134 222 171 182 225 222 201 217 168 156
++225 222 201 214 214 134 222 171 182 225 222 201 214 214 134 217 168 156 225 222 201 222 171 182
++214 214 134 222 171 182 214 214 134 225 222 201 222 171 182 225 222 201 225 222 201 225 222 201
++222 171 182 121 143 132 95 91 100 60 81 83 75 81 90 61 78 101 60 81 83 61 78 101
++60 81 83 61 78 101 60 81 83 61 78 101 60 81 83 61 78 101 61 78 101 75 81 90
++61 78 101 75 81 90 61 78 101 61 78 101 75 81 90 75 81 90 60 63 87 75 81 90
++60 63 87 60 81 83 60 63 87 59 69 70 60 63 87 60 63 87 60 81 83 60 63 87
++61 78 101 60 63 87 60 81 83 60 63 87 61 78 101 60 81 83 60 81 83 60 63 87
++60 81 83 60 63 87 75 81 90 60 63 87 75 81 90 60 63 87 60 81 83 75 64 82
++60 81 83 75 64 82 60 63 87 75 64 82 60 63 87 59 69 70 60 81 83 60 63 87
++59 69 70 60 63 87 59 69 70 60 63 87 59 69 70 46 59 71 60 63 87 46 59 71
++63 59 71 46 59 71 63 59 71 46 59 71 46 59 71 46 59 71 46 59 71 63 59 71
++46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 42 60 86 59 69 70 42 60 86
++46 59 71 46 59 71 42 60 86 46 59 71 46 59 71 46 59 71 42 60 86 59 69 70
++42 60 86 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 45 57 61 34 42 77
++45 57 61 32 40 58 45 57 61 32 40 58 32 40 58 32 40 58 32 40 58 35 47 50
++43 42 50 32 40 58 32 40 58 43 42 50 32 40 58 43 42 50 43 42 50 57 43 64
++43 42 50 43 42 50 28 30 35 22 25 24 23 20 24 23 18 22 22 24 13 22 25 24
++22 24 13 23 18 22 22 24 13 23 18 22 15 22 17 23 18 22 15 22 17 23 20 24
++14 16 17 17 12 17 3 4 9 33 30 30 75 81 82 138 126 108 150 171 159 146 151 137
++177 169 143 150 171 159 177 169 143 177 169 143 146 162 145 146 162 145 146 162 145 146 162 145
++146 151 137 177 169 143 166 180 164 177 169 143 177 169 143 166 180 164 166 180 164 166 174 181
++145 140 145 75 81 90 32 40 58 34 42 77 34 42 77 42 60 86 46 59 71 60 63 87
++94 105 108 141 116 139 146 151 137 146 150 115 146 151 137 177 169 143 177 169 143 166 180 164
++177 169 143 177 169 143 146 151 137 146 150 115 146 162 145 177 169 143 177 169 143 146 162 145
++177 169 143 146 150 115 146 150 115 117 127 86 146 150 115 177 171 115 146 150 115 146 150 115
++117 127 86 112 123 108 117 142 111 146 150 115 146 151 137 138 126 108 98 113 84 64 70 48
++34 30 15 23 31 15 29 35 19 23 31 15 29 35 19 29 35 19 55 55 48 75 81 76
++75 81 76 75 72 67 65 63 61 63 59 71 59 69 70 59 69 70 75 64 82 59 69 70
++60 63 87 75 64 82 61 78 101 75 64 82 75 81 90 75 81 90 77 90 100 77 90 100
++77 90 100 77 90 100 77 90 100 78 98 90 77 91 115 78 98 90 77 91 115 77 91 115
++77 91 115 77 91 115 77 91 115 95 119 107 77 91 115 77 91 115 77 91 115 95 119 107
++78 98 90 77 91 115 78 98 90 77 91 115 78 98 90 61 78 101 61 78 101 77 90 100
++61 78 101 60 81 83 61 78 101 60 81 83 60 63 87 59 69 70 42 60 86 59 69 70
++46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 54 57 61 46 59 71 45 57 61
++45 57 61 45 57 61 32 40 58 45 57 61 43 42 50 32 40 58 45 57 61 32 40 58
++43 42 50 35 47 50 34 40 43 43 42 50 34 40 43 35 47 50 34 40 43 33 39 38
++28 35 38 28 35 38 28 35 38 28 35 38 28 35 38 28 35 38 28 35 38 23 30 35
++28 35 38 28 35 38 28 35 38 28 35 38 31 35 35 28 35 38 28 35 38 28 35 38
++29 34 50 28 35 38 34 40 43 28 35 38 34 40 43 34 40 43 37 35 43 35 47 50
++34 40 43 35 46 43 34 40 43 35 47 50 35 47 50 43 42 50 35 47 50 35 47 50
++35 47 50 35 47 50 45 57 61 43 42 50 45 57 61 54 57 61 45 57 61 46 59 71
++54 57 61 53 63 61 46 59 71 53 63 61 53 63 61 53 63 61 54 57 61 54 57 61
++53 63 61 54 57 61 53 63 61 53 63 61 45 57 61 45 57 61 54 57 61 45 57 61
++45 57 61 45 57 61 45 57 61 43 55 48 35 47 50 48 50 48 43 55 48 43 42 50
++45 57 61 43 42 50 43 42 50 45 57 61 45 57 61 45 57 61 54 57 61 46 59 71
++53 63 61 54 57 61 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70 60 81 83
++
++146 151 137 145 140 145 146 151 137 145 140 145 146 151 137 145 140 145 121 143 132 145 140 145
++146 151 137 150 144 154 148 160 159 150 144 154 148 160 159 150 147 171 150 147 171 166 156 164
++150 147 171 166 156 164 150 147 171 166 156 164 166 174 181 150 147 171 150 147 171 166 156 164
++150 147 171 150 147 171 150 168 183 150 147 171 150 147 171 150 147 171 166 156 164 150 147 171
++150 168 183 150 147 171 166 176 200 166 174 181 150 147 171 166 176 200 166 174 181 166 176 200
++166 174 181 166 176 200 166 174 181 188 180 202 166 174 181 188 180 202 166 174 181 166 174 181
++166 174 181 166 174 181 150 171 159 166 156 164 150 168 183 148 160 159 148 160 159 146 162 145
++146 162 145 150 144 154 146 162 145 146 162 145 150 144 154 146 151 137 146 151 137 145 140 145
++146 151 137 121 143 132 145 140 145 121 143 132 119 117 138 112 123 108 111 119 127 112 123 108
++112 123 108 112 123 108 112 123 108 121 143 132 146 151 137 166 180 164 166 156 164 166 180 164
++166 180 164 177 169 143 150 171 159 177 169 143 150 171 159 148 160 159 150 171 159 150 171 159
++150 171 159 166 180 164 166 180 164 166 180 164 166 180 164 166 180 164 150 171 159 150 171 159
++166 156 164 146 162 145 146 151 137 146 151 137 121 143 132 112 123 108 99 93 84 75 73 58
++51 49 42 51 49 42 47 49 42 32 39 24 42 47 42 42 47 42 47 49 42 42 47 42
++47 49 42 50 61 48 55 55 48 64 70 48 75 77 62 65 63 61 87 99 72 112 123 108
++166 180 164 208 215 180 146 151 137 112 123 108 75 81 76 75 81 76 75 72 67 75 72 67
++59 79 61 75 72 67 75 81 76 88 83 88 75 81 76 75 81 69 65 63 61 52 55 48
++48 50 48 75 72 67 94 105 108 112 123 108 111 119 127 112 123 108 94 105 108 112 123 108
++112 96 108 112 123 108 121 143 132 121 143 132 111 119 127 112 123 108 111 119 127 94 105 108
++94 105 108 90 98 89 78 98 90 75 81 82 75 81 76 60 81 83 60 63 87 59 69 70
++46 59 71 32 40 58 45 57 61 32 40 58 32 40 58 34 42 77 46 59 71 61 78 101
++75 81 90 77 90 100 77 90 100 94 105 108 94 105 108 111 119 127 111 119 127 111 119 127
++122 134 144 122 134 144 126 147 144 129 144 153 129 144 153 148 160 159 150 147 171 148 160 159
++150 168 183 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 176 200 166 176 200
++166 176 200 166 176 200 166 176 200 188 180 202 166 176 200 188 180 202 188 180 202 188 180 202
++188 180 202 188 180 202 188 180 202 194 199 226 188 180 202 194 199 226 188 180 202 194 199 226
++194 199 226 188 180 202 188 180 202 188 180 202 188 180 202 194 199 226 188 180 202 166 176 200
++166 176 200 166 176 200 194 199 226 194 199 226 166 176 200 131 144 168 63 59 71 22 23 31
++12 18 20 22 25 24 26 24 32 26 30 28 26 24 32 26 24 32 30 30 34 30 30 34
++30 30 34 26 30 28 22 25 24 26 24 32 26 30 28 33 30 32 33 30 30 32 39 24
++63 55 45 87 99 72 146 150 115 217 168 156 217 168 156 214 214 134 217 168 156 217 168 156
++214 214 134 217 168 156 217 168 156 214 214 134 217 168 156 217 168 156 177 169 143 217 168 156
++214 214 134 189 165 168 217 168 156 208 215 180 217 168 156 222 171 182 214 214 134 217 168 156
++222 171 182 214 214 134 222 171 182 217 168 156 214 214 134 222 171 182 227 171 124 222 171 182
++217 168 156 214 214 134 222 171 182 217 168 156 222 171 182 214 214 134 217 168 156 217 168 156
++217 168 156 177 169 143 197 171 123 201 146 124 168 146 127 163 117 123 168 102 88 138 126 108
++146 150 115 201 146 124 168 146 127 201 146 124 177 171 115 201 146 124 177 169 143 201 146 124
++177 169 143 201 146 124 168 146 127 168 146 127 177 171 115 168 146 127 168 102 88 177 171 115
++138 126 108 146 150 115 168 102 88 117 127 86 117 114 76 168 102 88 117 112 45 120 63 71
++117 114 76 117 99 86 176 103 41 117 99 86 117 112 45 120 63 71 117 112 45 120 63 71
++101 74 26 75 56 53 76 46 20 76 46 20 52 30 35 55 39 18 52 30 35 33 30 30
++52 30 15 34 30 15 28 13 18 34 30 15 28 13 18 34 30 15 28 13 18 34 30 15
++49 13 16 34 30 15 52 30 15 33 30 30 53 35 17 32 39 24 33 30 30 34 30 15
++34 30 15 33 30 30 34 30 15 52 30 35 34 30 15 34 30 15 47 47 21 36 35 37
++47 47 21 22 24 13 13 4 7 3 3 1 3 3 1 3 4 9 13 4 7 3 4 9
++3 4 9 3 4 9 3 4 9 3 3 1 3 4 9 13 4 7 3 4 9 7 12 13
++17 12 17 14 16 17 15 22 17 22 25 24 23 20 24 23 20 24 22 23 31 26 24 32
++14 16 17 17 12 17 23 30 35 119 117 138 201 216 228 188 180 202 95 91 100 3 4 9
++3 3 1 7 10 17 7 12 13 13 4 7 13 4 7 3 4 9 13 4 7 7 12 13
++7 12 13 15 17 7 17 12 17 7 12 13 13 4 7 15 17 7 55 39 37 117 99 86
++177 169 143 225 222 201 208 215 180 208 215 180 222 171 182 208 215 180 208 215 180 222 171 182
++208 215 180 225 222 201 222 171 182 225 222 201 217 168 156 225 222 201 222 171 182 214 214 134
++222 171 182 225 222 201 222 171 182 208 215 180 222 171 182 225 222 201 214 214 134 222 171 182
++222 171 182 225 222 201 222 171 182 214 214 134 222 171 182 225 222 201 217 168 156 225 222 201
++217 168 156 225 222 201 222 171 182 214 214 134 222 171 182 225 222 201 217 168 156 225 222 201
++225 222 201 225 222 201 225 222 201 208 215 180 225 222 201 225 222 201 225 222 201 225 222 201
++225 222 201 188 180 202 111 119 127 78 98 90 60 81 83 60 81 83 61 78 101 75 81 90
++60 63 87 60 81 83 60 63 87 60 81 83 60 63 87 61 78 101 60 81 83 60 63 87
++60 81 83 60 63 87 60 63 87 75 81 90 60 63 87 60 81 83 60 63 87 60 81 83
++60 63 87 59 69 70 60 63 87 59 69 70 60 63 87 59 69 70 60 63 87 60 63 87
++60 81 83 60 63 87 60 81 83 60 81 83 60 63 87 60 63 87 60 81 83 60 63 87
++60 81 83 60 63 87 75 81 90 60 63 87 60 63 87 60 81 83 60 63 87 60 63 87
++60 81 83 60 63 87 60 63 87 60 81 83 60 63 87 60 81 83 63 59 71 60 63 87
++59 69 70 60 63 87 46 59 71 63 59 71 46 59 71 60 63 87 46 59 71 63 59 71
++42 60 86 46 59 71 46 59 71 63 59 71 46 59 71 60 63 87 46 59 71 46 59 71
++46 59 71 60 63 87 46 59 71 60 63 87 46 59 71 46 59 71 46 59 71 46 59 71
++46 59 71 60 63 87 46 59 71 59 69 70 42 60 86 59 69 70 46 59 71 46 59 71
++46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 45 57 61 46 59 71
++45 57 61 32 40 58 45 57 61 32 40 58 45 57 61 32 40 58 35 47 50 32 40 58
++45 57 61 32 40 58 45 57 61 32 40 58 57 43 64 32 40 58 45 57 61 43 42 50
++45 57 61 43 42 50 33 30 36 26 24 32 22 25 24 23 20 24 15 22 17 23 20 24
++15 22 17 23 20 24 15 22 17 23 18 22 23 18 22 15 22 17 23 18 22 23 18 22
++17 12 17 14 16 17 23 18 22 65 63 61 111 119 127 146 151 137 146 162 145 168 146 127
++146 151 137 146 151 137 146 151 137 146 151 137 146 151 137 177 169 143 146 151 137 168 146 127
++166 156 164 177 169 143 150 171 159 177 169 143 166 180 164 166 156 164 177 169 143 145 140 145
++78 98 90 45 57 61 29 34 50 32 40 58 34 42 77 34 42 77 32 40 58 46 59 71
++78 98 90 138 126 108 146 151 137 138 126 108 146 151 137 146 151 137 177 169 143 146 162 145
++146 162 145 146 151 137 146 150 115 146 150 115 146 150 115 146 151 137 146 150 115 146 150 115
++146 150 115 117 127 86 117 127 86 117 127 86 146 150 115 146 150 115 98 113 84 66 86 47
++75 73 36 87 99 72 117 127 86 146 150 115 146 162 145 177 169 143 146 151 137 87 99 72
++47 47 21 22 24 13 22 24 13 22 24 13 26 25 15 51 49 42 88 83 74 112 123 108
++99 93 84 65 63 61 65 63 61 65 63 61 63 59 71 75 64 82 59 69 70 75 64 82
++59 69 70 60 63 87 75 64 82 60 81 83 75 81 90 60 63 87 75 81 90 61 78 101
++77 90 100 61 78 101 77 90 100 77 90 100 77 90 100 77 91 115 78 98 90 77 91 115
++78 98 90 77 91 115 78 98 90 77 91 115 77 91 115 78 98 90 77 91 115 77 91 115
++77 91 115 78 98 90 77 91 115 61 78 101 77 90 100 61 78 101 78 98 90 61 78 101
++60 81 83 60 81 83 60 63 87 60 81 83 42 60 86 46 59 71 46 59 71 46 59 71
++46 59 71 46 59 71 46 59 71 45 57 61 45 57 61 45 57 61 45 57 61 45 57 61
++32 40 58 45 57 61 43 42 50 35 47 50 32 40 58 43 42 50 43 42 50 32 40 58
++43 42 50 35 47 50 34 40 43 34 40 43 29 34 50 34 40 43 37 35 43 28 35 38
++28 35 38 28 35 38 29 34 50 28 35 38 28 35 38 28 35 38 28 35 38 28 35 38
++28 35 38 24 30 43 28 35 38 28 35 38 28 35 38 28 35 38 28 35 38 29 34 50
++28 35 38 28 35 38 28 35 38 34 40 43 34 40 43 29 34 50 34 40 43 35 47 50
++34 40 43 35 47 50 35 47 50 43 42 50 35 47 50 35 47 50 35 47 50 45 57 61
++35 47 50 45 57 61 45 57 61 45 57 61 45 57 61 45 57 61 45 57 61 54 57 61
++54 57 61 53 63 61 54 57 61 53 63 61 54 57 61 54 57 61 54 57 61 54 57 61
++53 63 61 54 57 61 54 57 61 54 57 61 45 57 61 54 57 61 43 55 48 45 57 61
++48 50 48 45 57 61 48 50 48 43 55 48 45 57 61 43 42 50 45 57 61 35 47 50
++43 55 48 45 57 61 45 57 61 45 57 61 48 50 48 45 57 61 45 57 61 54 57 61
++46 59 71 53 63 61 59 69 70 63 59 71 59 69 70 75 64 82 60 81 83 75 64 82
++
++145 140 145 146 151 137 146 151 137 145 140 145 121 143 132 146 151 137 145 140 145 146 151 137
++146 151 137 145 140 145 146 151 137 150 144 154 150 144 154 166 156 164 148 160 159 166 156 164
++150 147 171 166 156 164 150 147 171 150 147 171 166 156 164 150 147 171 166 156 164 150 147 171
++166 156 164 166 156 164 150 147 171 166 156 164 150 147 171 150 168 183 150 147 171 150 147 171
++166 174 181 150 147 171 166 174 181 150 147 171 166 174 181 166 176 200 150 147 171 166 174 181
++166 176 200 166 174 181 166 176 200 166 174 181 166 176 200 166 174 181 166 174 181 166 174 181
++166 174 181 166 156 164 166 174 181 166 174 181 150 171 159 166 156 164 166 156 164 148 160 159
++150 144 154 146 162 145 146 162 145 148 160 159 146 162 145 150 144 154 146 162 145 146 151 137
++145 140 145 121 143 132 145 140 145 138 126 108 121 143 132 138 126 108 111 119 127 112 123 108
++111 119 127 112 123 108 111 119 127 138 126 108 146 151 137 146 162 145 146 162 145 150 171 159
++166 156 164 146 162 145 146 162 145 146 162 145 146 162 145 146 162 145 177 169 143 146 162 145
++166 156 164 146 162 145 146 162 145 146 162 145 146 162 145 146 151 137 146 162 145 146 151 137
++146 151 137 146 151 137 121 143 132 112 123 108 112 123 108 88 83 74 50 61 48 42 47 42
++32 39 24 29 35 19 32 39 24 42 47 42 50 61 48 64 70 48 75 81 69 75 81 69
++75 81 76 88 83 74 90 98 89 95 91 100 112 123 108 94 105 108 112 123 108 145 140 145
++166 180 164 166 180 164 145 140 145 112 123 108 112 123 108 112 123 108 112 123 108 111 119 127
++111 119 127 138 126 108 121 143 132 146 151 137 121 143 132 111 119 127 112 123 108 112 123 108
++112 96 108 112 123 108 121 143 132 146 151 137 150 144 154 146 151 137 145 140 145 146 151 137
++126 147 144 145 140 145 145 140 145 121 143 132 145 140 145 121 143 132 111 119 127 111 119 127
++94 105 108 94 105 108 95 91 100 77 90 100 75 81 90 60 81 83 60 63 87 60 63 87
++46 59 71 46 59 71 46 59 71 34 42 77 34 42 77 45 57 61 34 42 77 46 59 71
++42 60 86 46 59 71 42 60 86 60 63 87 75 81 90 61 78 101 77 90 100 77 90 100
++94 105 108 94 105 108 95 108 128 111 119 127 122 134 144 122 134 144 129 144 153 131 144 168
++148 160 159 150 147 171 148 160 159 150 147 171 150 168 183 166 156 164 150 168 183 166 156 164
++166 174 181 166 174 181 166 174 181 166 174 181 166 176 200 166 174 181 166 176 200 166 176 200
++188 180 202 188 180 202 188 180 202 188 180 202 188 180 202 188 180 202 188 180 202 188 180 202
++188 180 202 188 180 202 188 180 202 194 199 226 188 180 202 166 176 200 194 199 226 166 176 200
++166 176 200 194 199 226 166 176 200 185 202 202 166 176 200 122 134 144 63 59 71 12 18 30
++17 12 17 22 25 24 26 30 28 22 25 24 26 30 28 22 25 24 26 30 28 26 30 28
++26 30 28 26 30 28 26 30 28 26 30 28 26 24 32 33 30 30 33 30 30 34 30 15
++63 55 45 117 99 86 168 146 127 214 214 134 189 165 168 217 168 156 208 215 180 177 169 143
++189 165 168 217 168 156 177 169 143 208 215 180 189 165 168 214 214 134 217 168 156 208 215 180
++189 165 168 217 168 156 217 168 156 217 168 156 214 214 134 217 168 156 217 168 156 217 168 156
++208 215 180 217 168 156 208 215 180 217 168 156 222 171 182 214 214 134 222 171 182 214 214 134
++222 171 182 217 168 156 222 171 182 214 214 134 217 168 156 217 168 156 217 168 156 197 171 123
++217 168 156 201 146 124 168 146 127 168 146 127 146 150 115 168 102 88 146 150 115 168 102 88
++168 146 127 168 146 127 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 177 169 143
++201 146 124 168 146 127 168 146 127 201 146 124 163 117 123 168 146 127 146 150 115 138 126 108
++168 102 88 168 102 88 117 114 76 168 102 88 168 102 88 117 99 86 117 99 86 117 114 76
++167 63 71 117 112 45 120 63 71 117 114 76 120 63 71 117 99 86 120 63 71 101 74 26
++88 73 62 88 73 31 75 56 53 59 36 42 55 39 18 53 35 17 53 35 17 52 30 15
++34 30 15 33 30 30 34 30 15 34 30 15 34 30 15 33 30 30 34 30 15 34 30 15
++33 30 30 34 30 15 33 30 30 53 35 17 32 39 24 52 30 35 53 35 17 33 30 30
++53 35 17 34 30 15 53 35 17 32 39 24 53 35 37 55 39 18 33 30 30 47 47 21
++53 35 37 36 35 37 26 25 15 13 4 7 3 3 1 3 3 1 3 4 9 3 4 9
++13 4 7 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 13 4 7
++13 4 7 17 12 17 17 12 17 15 22 17 23 18 22 22 25 24 26 24 32 25 30 29
++7 10 17 22 23 31 77 90 100 185 202 202 232 215 228 111 119 127 22 23 31 3 4 9
++3 4 9 13 4 7 17 12 17 7 12 13 7 12 13 13 4 7 7 12 13 6 15 6
++13 4 7 7 12 13 13 4 7 3 3 1 13 4 7 55 39 37 138 126 108 177 169 143
++217 168 156 208 215 180 222 171 182 208 215 180 222 171 182 208 215 180 217 168 156 208 215 180
++222 171 182 214 214 134 225 222 201 217 168 156 225 222 201 214 214 134 225 222 201 222 171 182
++225 222 201 214 214 134 222 171 182 214 214 134 225 222 201 222 171 182 225 222 201 217 168 156
++225 222 201 214 214 134 217 168 156 225 222 201 222 171 182 225 222 201 217 168 156 225 222 201
++222 171 182 214 214 134 225 222 201 222 171 182 225 222 201 217 168 156 225 222 201 222 171 182
++214 214 134 222 171 182 217 168 156 225 222 201 227 171 124 225 222 201 222 171 182 225 222 201
++225 222 201 225 222 201 166 180 164 112 96 108 75 64 82 75 64 82 61 78 101 60 63 87
++60 81 83 60 63 87 60 81 83 60 63 87 61 78 101 60 63 87 60 81 83 61 78 101
++60 63 87 60 81 83 61 78 101 60 63 87 60 81 83 60 63 87 60 63 87 60 63 87
++42 60 86 60 63 87 59 69 70 42 60 86 42 60 86 60 63 87 42 60 86 60 63 87
++60 63 87 60 63 87 60 63 87 60 63 87 60 63 87 60 81 83 60 63 87 61 78 101
++60 63 87 60 81 83 60 63 87 60 81 83 60 63 87 60 63 87 60 81 83 60 63 87
++60 63 87 60 63 87 60 63 87 60 63 87 60 63 87 60 63 87 60 63 87 60 63 87
++60 63 87 46 59 71 60 63 87 60 63 87 60 63 87 46 59 71 46 59 71 42 60 86
++63 59 71 46 59 71 63 59 71 42 60 86 46 59 71 46 59 71 46 59 71 46 59 71
++46 59 71 46 59 71 46 59 71 46 59 71 42 60 86 46 59 71 46 59 71 42 60 86
++46 59 71 42 60 86 42 60 86 42 60 86 46 59 71 46 59 71 42 60 86 46 59 71
++42 60 86 46 59 71 42 60 86 46 59 71 34 42 77 46 59 71 34 42 77 32 40 58
++34 42 77 45 57 61 34 42 77 32 40 58 34 42 77 32 40 58 45 57 61 32 40 58
++32 40 58 32 40 58 57 43 64 32 40 58 45 57 61 32 40 58 43 42 50 32 40 58
++43 42 50 43 42 50 28 35 38 15 22 17 23 18 22 23 20 24 22 25 24 22 25 24
++22 25 24 22 24 13 23 18 22 15 22 17 23 18 22 12 18 20 23 18 22 12 18 20
++7 12 13 14 16 17 47 49 42 112 96 108 146 150 115 146 151 137 146 151 137 146 151 137
++146 151 137 146 151 137 146 151 137 177 169 143 146 162 145 146 151 137 146 151 137 146 151 137
++146 162 145 166 180 164 166 180 164 166 156 164 148 160 159 146 151 137 111 119 127 77 90 100
++46 59 71 29 34 50 32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 45 57 61
++88 83 88 111 119 127 146 151 137 138 126 108 146 150 115 146 151 137 146 151 137 146 162 145
++168 146 127 146 150 115 138 126 108 117 142 111 138 126 108 138 126 108 117 127 86 138 126 108
++138 126 108 117 114 76 117 99 86 117 127 86 117 99 86 81 96 56 47 47 21 47 47 21
++47 47 21 64 70 48 117 99 86 146 150 115 177 169 143 208 215 180 177 169 143 98 113 84
++47 47 21 6 15 6 6 15 6 22 24 13 34 30 15 64 70 48 98 113 84 138 126 108
++98 113 84 75 77 62 65 63 61 65 63 61 63 59 71 59 69 70 63 59 71 59 69 70
++75 64 82 59 69 70 75 64 82 75 81 90 60 63 87 75 81 90 61 78 101 75 81 90
++75 81 90 77 90 100 61 78 101 61 78 101 77 90 100 61 78 101 77 91 115 77 90 100
++77 91 115 77 90 100 77 91 115 78 98 90 77 91 115 77 91 115 78 98 90 77 91 115
++77 90 100 77 91 115 61 78 101 78 98 90 61 78 101 61 78 101 61 78 101 60 81 83
++60 81 83 42 60 86 60 63 87 46 59 71 60 63 87 60 63 87 46 59 71 46 59 71
++46 59 71 45 57 61 46 59 71 45 57 61 46 59 71 45 57 61 34 42 77 57 43 64
++45 57 61 32 40 58 45 57 61 43 42 50 32 40 58 45 57 61 32 40 58 43 42 50
++32 40 58 29 34 50 37 35 43 32 40 58 34 40 43 29 34 50 34 40 43 29 34 50
++37 35 43 28 35 38 24 30 43 37 35 43 29 34 50 24 30 43 28 30 35 28 35 38
++24 30 43 28 35 38 37 35 43 24 30 43 28 35 38 29 34 50 28 35 38 24 30 43
++34 40 43 29 34 50 34 40 43 29 34 50 34 40 43 29 34 50 43 42 50 29 34 50
++35 47 50 34 40 43 32 40 58 35 47 50 32 40 58 45 57 61 32 40 58 35 47 50
++45 57 61 35 47 50 43 42 50 45 57 61 48 50 48 45 57 61 45 57 61 45 57 61
++45 57 61 46 59 71 54 57 61 46 59 71 54 57 61 45 57 61 54 57 61 54 57 61
++54 57 61 46 59 71 45 57 61 54 57 61 45 57 61 45 57 61 45 57 61 45 57 61
++45 57 61 45 57 61 45 57 61 43 42 50 48 50 48 35 47 50 35 47 50 45 57 61
++43 42 50 32 40 58 45 57 61 43 42 50 45 57 61 45 57 61 45 57 61 54 57 61
++46 59 71 63 59 71 46 59 71 59 69 70 59 69 70 59 69 70 59 69 70 59 69 70
++
++146 151 137 145 140 145 146 162 145 146 151 137 145 140 145 145 140 145 121 143 132 146 151 137
++145 140 145 146 151 137 145 140 145 145 140 145 150 144 154 150 144 154 150 144 154 150 144 154
++166 156 164 150 144 154 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171
++150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171 150 147 171
++150 147 171 150 147 171 150 168 183 166 174 181 150 168 183 166 174 181 166 174 181 166 174 181
++166 174 181 166 176 200 166 174 181 166 176 200 166 174 181 185 202 202 166 174 181 166 174 181
++166 174 181 166 174 181 166 180 164 166 156 164 166 156 164 150 171 159 148 160 159 146 162 145
++166 156 164 146 162 145 166 156 164 146 162 145 166 156 164 146 162 145 150 144 154 146 151 137
++146 151 137 145 140 145 145 140 145 121 143 132 141 116 139 112 123 108 112 123 108 138 126 108
++111 119 127 112 123 108 138 126 108 111 119 127 121 143 132 146 151 137 146 151 137 146 151 137
++146 151 137 146 151 137 146 151 137 146 151 137 146 151 137 146 162 145 146 151 137 146 151 137
++146 151 137 146 151 137 138 126 108 121 143 132 146 150 115 145 140 145 138 126 108 121 143 132
++112 123 108 90 98 89 99 93 84 75 81 76 75 77 62 53 63 61 52 55 48 47 49 42
++42 47 42 47 49 42 50 61 48 75 81 69 90 98 89 95 119 107 112 123 108 112 123 108
++112 123 108 121 143 132 121 143 132 146 151 137 121 143 132 145 140 145 146 151 137 146 162 145
++166 156 164 146 162 145 145 140 145 145 140 145 146 151 137 148 160 159 166 156 164 150 171 159
++166 156 164 148 160 159 166 156 164 166 180 164 166 156 164 177 169 143 148 160 159 148 160 159
++146 162 145 166 156 164 166 156 164 166 180 164 166 180 164 150 171 159 166 156 164 150 171 159
++146 162 145 146 151 137 145 140 145 145 140 145 121 143 132 141 116 139 121 143 132 111 119 127
++111 119 127 94 105 108 95 95 116 94 105 108 77 90 100 61 78 101 60 63 87 42 60 86
++42 60 86 34 42 77 46 59 71 34 42 77 32 40 58 34 42 77 34 42 77 34 42 77
++34 42 77 32 40 58 34 42 77 46 59 71 34 42 77 45 57 61 46 59 71 46 59 71
++59 69 70 60 81 83 75 81 90 77 90 100 77 90 100 94 105 108 98 121 131 111 119 127
++122 134 144 129 144 153 129 144 153 148 160 159 148 160 159 150 147 171 148 160 159 150 168 183
++150 147 171 150 168 183 166 156 164 150 168 183 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 176 200 166 176 200 188 180 202 166 176 200 188 180 202 166 176 200 166 176 200
++188 180 202 166 176 200 188 180 202 188 180 202 188 180 202 166 176 200 166 176 200 166 176 200
++166 176 200 166 176 200 166 176 200 194 199 226 166 176 200 122 134 144 46 59 71 12 18 30
++3 4 9 14 16 17 23 20 24 23 20 24 22 24 13 23 18 22 26 25 15 22 25 24
++26 30 28 26 30 28 33 30 30 30 30 34 26 24 32 26 30 28 26 30 28 33 30 30
++64 70 48 138 126 108 177 169 143 217 168 156 208 215 180 197 171 123 217 168 156 217 168 156
++214 214 134 189 165 168 214 214 134 217 168 156 197 171 123 189 165 168 217 168 156 217 168 156
++214 214 134 177 169 143 177 169 143 177 169 143 217 168 156 189 165 168 214 214 134 222 171 182
++217 168 156 222 171 182 217 168 156 208 215 180 217 168 156 222 171 182 222 171 182 217 168 156
++217 168 156 214 214 134 222 171 182 217 168 156 217 168 156 217 168 156 217 168 156 177 169 143
++197 171 123 168 146 127 168 146 127 168 102 88 168 102 88 138 126 108 146 150 115 201 146 124
++177 171 115 201 146 124 197 171 123 177 169 143 201 146 124 177 169 143 201 146 124 177 169 143
++168 146 127 201 146 124 168 146 127 168 146 127 168 102 88 146 150 115 168 102 88 117 114 76
++117 127 86 168 102 88 117 127 86 168 102 88 117 112 45 168 102 88 117 114 76 167 63 71
++117 112 45 120 63 71 117 112 45 120 63 71 117 112 45 120 63 71 101 74 26 120 63 71
++88 73 31 88 44 51 76 46 20 55 39 37 55 39 18 53 35 37 53 35 17 33 30 30
++52 30 15 28 13 18 34 30 15 23 20 24 34 30 15 34 30 15 33 30 30 34 30 15
++34 30 15 33 30 30 53 35 17 33 30 30 55 39 18 52 30 35 34 30 15 33 30 30
++34 30 15 33 30 30 52 30 15 32 39 24 55 39 18 36 35 37 53 35 17 32 39 24
++55 39 37 47 47 21 33 30 30 26 25 15 17 12 17 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 4 9 3 3 1 3 4 9 3 3 1 13 4 7 3 4 9
++13 4 7 7 12 13 13 4 7 17 12 17 14 16 17 23 20 24 22 25 24 12 18 20
++12 18 20 63 59 71 166 174 181 201 216 228 150 147 171 53 63 61 3 3 1 3 4 9
++3 4 9 7 12 13 3 4 9 7 12 13 15 17 7 7 12 13 13 4 7 7 12 13
++7 12 13 13 4 7 3 3 1 23 10 10 75 56 53 138 126 108 177 169 143 208 215 180
++217 168 156 217 168 156 214 214 134 217 168 156 208 215 180 217 168 156 208 215 180 208 215 180
++222 171 182 225 222 201 217 168 156 225 222 201 214 214 134 222 171 182 222 171 182 225 222 201
++214 214 134 222 171 182 225 222 201 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182
++222 171 182 225 222 201 222 171 182 214 214 134 222 171 182 225 222 201 214 214 134 222 171 182
++225 222 201 222 171 182 222 171 182 214 214 134 225 222 201 217 168 156 225 222 201 214 214 134
++225 222 201 225 222 201 225 222 201 214 214 134 225 222 201 225 222 201 214 214 134 225 222 201
++225 222 201 225 222 201 225 222 201 166 156 164 90 98 89 60 63 87 60 63 87 61 78 101
++60 63 87 60 63 87 60 63 87 60 63 87 60 81 83 60 63 87 60 63 87 60 81 83
++42 60 86 60 63 87 42 60 86 60 63 87 60 63 87 42 60 86 60 81 83 42 60 86
++59 69 70 42 60 86 42 60 86 60 63 87 46 59 71 42 60 86 59 69 70 42 60 86
++60 63 87 42 60 86 60 81 83 42 60 86 60 81 83 60 63 87 60 63 87 60 81 83
++60 63 87 60 63 87 60 63 87 60 63 87 60 63 87 60 63 87 60 63 87 60 63 87
++60 63 87 60 63 87 59 69 70 60 63 87 60 63 87 59 69 70 60 63 87 60 63 87
++60 63 87 60 63 87 46 59 71 46 59 71 46 59 71 60 63 87 46 59 71 46 59 71
++42 60 86 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 42 60 86
++57 43 64 42 60 86 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71
++42 60 86 42 60 86 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71
++46 59 71 46 59 71 46 59 71 34 42 77 46 59 71 46 59 71 45 57 61 46 59 71
++34 42 77 45 57 61 32 40 58 45 57 61 32 40 58 32 40 58 34 42 77 32 40 58
++45 57 61 34 42 77 32 40 58 34 42 77 57 43 64 32 40 58 57 43 64 45 57 61
++32 40 58 32 40 58 26 24 32 15 22 17 14 16 17 23 18 22 22 25 24 22 25 24
++22 25 24 23 20 24 26 25 15 23 18 22 15 22 17 23 18 22 14 16 17 7 10 17
++7 10 17 42 38 42 90 98 89 121 143 132 146 150 115 138 126 108 146 151 137 146 151 137
++146 150 115 146 150 115 146 151 137 146 151 137 146 151 137 146 151 137 146 151 137 146 151 137
++177 169 143 146 162 145 146 151 137 121 143 132 112 96 108 78 98 90 53 63 61 32 40 58
++29 34 50 32 40 58 32 40 58 29 34 50 29 34 50 24 30 43 24 30 43 54 57 61
++94 105 108 146 150 115 138 126 108 121 143 132 138 126 108 146 151 137 146 150 115 168 146 127
++146 150 115 112 123 108 117 114 76 117 127 86 117 127 86 117 114 76 117 114 76 98 106 55
++98 106 55 88 73 62 80 96 46 88 73 62 75 73 36 32 39 24 22 24 13 22 24 13
++34 30 15 47 47 21 87 99 72 177 171 115 166 180 164 208 215 180 146 150 115 98 113 84
++29 35 19 6 15 6 6 15 6 22 24 13 34 30 15 64 70 48 98 113 84 138 126 108
++112 123 108 88 83 74 75 81 69 63 59 71 59 57 61 59 57 61 63 59 71 75 64 82
++59 69 70 60 63 87 59 69 70 60 63 87 75 64 82 60 63 87 75 81 90 60 81 83
++61 78 101 60 81 83 61 78 101 77 90 100 61 78 101 61 78 101 77 90 100 61 78 101
++61 78 101 61 78 101 61 78 101 61 78 101 78 98 90 61 78 101 61 78 101 77 90 100
++61 78 101 61 78 101 61 78 101 61 78 101 60 81 83 60 81 83 60 81 83 42 60 86
++60 81 83 42 60 86 46 59 71 42 60 86 46 59 71 46 59 71 46 59 71 46 59 71
++34 42 77 45 57 61 34 42 77 45 57 61 32 40 58 46 59 71 45 57 61 32 40 58
++45 57 61 32 40 58 32 40 58 32 40 58 43 42 50 32 40 58 43 42 50 32 40 58
++43 42 50 34 40 43 29 34 50 37 35 43 29 34 50 37 35 43 29 34 50 37 35 43
++24 30 43 28 35 38 29 34 50 29 34 50 28 35 38 28 35 38 29 34 50 28 35 38
++29 34 50 29 34 50 24 30 43 37 35 43 28 35 38 28 35 38 29 34 50 29 34 50
++29 34 50 34 40 43 29 34 50 34 40 43 29 34 50 34 40 43 32 40 58 43 42 50
++35 47 50 35 47 50 43 42 50 35 47 50 43 42 50 32 40 58 43 42 50 45 57 61
++35 47 50 45 57 61 45 57 61 45 57 61 45 57 61 45 57 61 43 55 48 45 57 61
++54 57 61 54 57 61 54 57 61 54 57 61 45 57 61 54 57 61 45 57 61 54 57 61
++54 57 61 54 57 61 54 57 61 45 57 61 54 57 61 45 57 61 43 42 50 45 57 61
++48 44 48 45 57 61 43 42 50 43 42 50 45 57 61 43 42 50 45 57 61 35 47 50
++45 57 61 45 57 61 32 40 58 45 57 61 57 43 64 45 57 61 45 57 61 45 57 61
++54 57 61 46 59 71 54 57 61 46 59 71 63 59 71 60 63 87 59 69 70 60 63 87
++
++150 144 154 146 151 137 150 144 154 146 151 137 145 140 145 146 150 115 145 140 145 146 151 137
++121 143 132 145 140 145 146 151 137 145 140 145 146 151 137 145 140 145 150 144 154 150 144 154
++150 144 154 150 144 154 150 144 154 150 144 154 150 144 154 150 144 154 150 144 154 150 144 154
++150 144 154 148 160 159 150 144 154 150 144 154 150 147 171 150 144 154 150 147 171 150 144 154
++150 147 171 150 147 171 150 147 171 150 147 171 166 174 181 150 147 171 166 176 200 150 147 171
++166 174 181 166 174 181 166 176 200 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 180 164 166 174 181 166 174 181 166 156 164 166 180 164 166 156 164 166 156 164
++146 162 145 166 156 164 150 171 159 166 156 164 146 162 145 166 156 164 148 160 159 146 162 145
++145 140 145 146 151 137 121 143 132 141 116 139 121 143 132 138 126 108 111 119 127 111 119 127
++138 126 108 111 119 127 111 119 127 138 126 108 138 126 108 121 143 132 138 126 108 121 143 132
++138 126 108 121 143 132 138 126 108 121 143 132 146 151 137 146 151 137 121 143 132 146 151 137
++121 143 132 112 123 108 112 123 108 112 96 108 112 123 108 112 123 108 98 113 84 90 98 89
++75 81 76 75 77 62 59 69 70 64 70 48 65 63 61 64 70 48 75 77 62 75 81 69
++88 83 74 87 99 72 94 105 108 112 123 108 138 126 108 146 151 137 145 140 145 146 151 137
++146 151 137 150 144 154 146 162 145 150 144 154 146 162 145 166 156 164 148 160 159 166 156 164
++146 162 145 146 162 145 146 151 137 148 160 159 166 156 164 166 180 164 166 180 164 166 156 164
++166 180 164 166 180 164 166 180 164 166 180 164 166 180 164 166 156 164 166 180 164 166 180 164
++189 165 168 166 180 164 166 180 164 166 180 164 150 171 159 166 156 164 150 171 159 148 160 159
++146 162 145 150 144 154 126 147 144 145 140 145 121 143 132 122 134 144 121 143 132 111 119 127
++111 119 127 111 119 127 94 105 108 95 95 116 77 90 100 75 81 90 60 81 83 60 63 87
++42 60 86 46 59 71 34 42 77 46 59 71 34 42 77 45 57 61 34 42 77 45 57 61
++34 42 77 46 59 71 32 40 58 34 42 77 32 40 58 32 40 58 45 57 61 32 40 58
++45 57 61 34 42 77 46 59 71 46 59 71 60 63 87 60 81 83 75 81 90 77 90 100
++94 105 108 95 108 128 111 119 127 119 117 138 122 134 144 129 144 153 148 160 159 150 147 171
++148 160 159 150 147 171 148 160 159 150 147 171 148 160 159 150 168 183 166 156 164 150 168 183
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 176 200 166 176 200 150 168 183
++166 176 200 166 176 200 166 176 200 166 176 200 166 176 200 111 122 142 54 57 61 17 12 17
++3 4 9 7 12 13 14 16 17 14 16 17 14 16 17 14 16 17 15 22 17 22 24 13
++22 25 24 22 25 24 26 30 28 26 30 28 33 30 30 23 20 24 22 25 24 47 47 21
++88 73 62 138 126 108 177 169 143 217 168 156 177 169 143 217 168 156 177 169 143 217 168 156
++177 169 143 217 168 156 177 169 143 217 168 156 177 169 143 217 168 156 177 169 143 217 168 156
++189 165 168 217 168 156 197 171 123 177 169 143 217 168 156 177 169 143 217 168 156 217 168 156
++214 214 134 222 171 182 214 214 134 217 168 156 222 171 182 214 214 134 222 171 182 214 214 134
++222 171 182 222 171 182 217 168 156 214 214 134 217 168 156 177 169 143 217 168 156 197 171 123
++168 146 127 201 146 124 163 117 123 146 150 115 168 102 88 168 146 127 168 146 127 201 146 124
++177 169 143 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 177 169 143 201 146 124
++197 171 123 168 146 127 168 146 127 168 146 127 146 150 115 168 102 88 117 114 76 168 102 88
++117 127 86 168 102 88 117 114 76 168 102 88 117 99 86 117 112 45 168 102 88 117 99 86
++117 99 86 117 112 45 120 63 71 120 63 71 122 49 24 101 83 74 120 63 71 88 73 31
++75 56 53 76 46 20 55 39 37 76 46 20 55 39 37 53 35 17 53 35 17 33 30 30
++52 30 15 33 30 30 34 30 15 34 30 15 33 30 30 34 30 15 33 30 30 49 13 16
++33 30 30 52 30 15 32 39 24 53 35 37 32 39 24 53 35 37 34 30 15 34 30 15
++52 30 15 34 30 15 33 30 30 53 35 17 33 30 30 53 35 17 32 39 24 55 39 18
++36 35 37 47 47 21 36 35 37 42 41 42 33 30 32 22 25 24 23 20 24 3 4 9
++3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 4 9 3 4 9 13 4 7
++3 4 9 3 3 1 6 15 6 13 4 7 14 16 17 23 20 24 23 18 22 7 10 17
++48 50 48 122 134 144 201 216 228 188 180 202 59 69 70 7 10 17 3 3 1 3 4 9
++13 4 7 7 10 17 13 4 7 3 4 9 13 4 7 6 15 6 13 4 7 7 12 13
++13 4 7 3 3 1 22 24 13 65 63 61 168 146 127 177 169 143 222 171 182 177 169 143
++217 168 156 166 180 164 217 168 156 208 215 180 217 168 156 208 215 180 222 171 182 214 214 134
++222 171 182 214 214 134 225 222 201 214 214 134 222 171 182 225 222 201 214 214 134 208 215 180
++222 171 182 225 222 201 214 214 134 225 222 201 222 171 182 225 222 201 222 171 182 214 214 134
++225 222 201 227 171 124 225 222 201 222 171 182 225 222 201 222 171 182 222 171 182 214 214 134
++222 171 182 214 214 134 225 222 201 225 222 201 217 168 156 225 222 201 217 168 156 225 222 201
++222 171 182 214 214 134 222 171 182 225 222 201 222 171 182 225 222 201 222 171 182 225 222 201
++222 171 182 225 222 201 225 222 201 188 180 202 145 140 145 77 90 100 46 59 71 60 81 83
++60 63 87 60 81 83 42 60 86 60 63 87 42 60 86 60 63 87 60 63 87 42 60 86
++60 81 83 42 60 86 60 63 87 60 81 83 42 60 86 60 63 87 42 60 86 46 59 71
++42 60 86 60 63 87 46 59 71 42 60 86 46 59 71 42 60 86 42 60 86 59 69 70
++42 60 86 60 63 87 46 59 71 60 63 87 42 60 86 60 63 87 42 60 86 42 60 86
++60 81 83 42 60 86 60 81 83 60 63 87 60 63 87 60 81 83 60 63 87 60 63 87
++59 69 70 60 63 87 60 63 87 60 63 87 60 63 87 60 63 87 60 63 87 60 63 87
++46 59 71 60 63 87 46 59 71 60 63 87 46 59 71 42 60 86 57 43 64 42 60 86
++57 43 64 42 60 86 57 43 64 42 60 86 57 43 64 42 60 86 57 43 64 46 59 71
++46 59 71 46 59 71 34 42 77 63 59 71 34 42 77 42 60 86 46 59 71 42 60 86
++46 59 71 46 59 71 60 63 87 42 60 86 46 59 71 42 60 86 46 59 71 42 60 86
++46 59 71 34 42 77 46 59 71 46 59 71 34 42 77 46 59 71 34 42 77 45 57 61
++34 42 77 45 57 61 34 42 77 32 40 58 34 42 77 32 40 58 35 47 50 34 42 77
++32 40 58 32 40 58 57 43 64 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58
++43 42 50 54 57 61 59 69 70 54 57 61 36 35 37 15 22 17 23 18 22 23 20 24
++22 25 24 22 25 24 15 22 17 23 20 24 14 16 17 14 16 17 17 12 17 14 16 17
++42 41 42 75 81 82 145 140 145 145 140 145 138 126 108 146 151 137 146 151 137 146 150 115
++145 140 145 146 150 115 146 151 137 146 151 137 146 151 137 146 151 137 146 150 115 146 151 137
++145 140 145 138 126 108 94 105 108 75 81 76 59 55 55 35 47 50 28 35 38 24 30 43
++29 34 50 29 34 50 29 34 50 24 30 43 24 30 43 12 18 30 24 30 43 75 81 82
++138 126 108 121 143 132 138 126 108 138 126 108 117 142 111 138 126 108 146 150 115 112 123 108
++98 113 84 117 99 86 98 113 84 117 127 86 117 99 86 117 114 76 87 99 72 88 73 62
++75 73 36 75 73 36 75 73 36 75 73 36 34 30 15 22 24 13 22 24 13 22 24 13
++15 17 7 29 35 19 75 77 62 117 142 111 177 171 115 146 162 145 117 127 86 51 73 47
++22 24 13 15 17 7 15 17 7 22 24 13 23 31 15 63 55 45 99 93 84 112 123 108
++112 123 108 87 99 72 88 83 88 75 72 67 59 57 61 54 57 61 63 59 71 60 63 87
++63 59 71 63 59 71 60 63 87 59 69 70 60 63 87 60 63 87 60 63 87 60 63 87
++60 63 87 60 81 83 61 78 101 60 81 83 61 78 101 60 81 83 61 78 101 61 78 101
++78 98 90 61 78 101 60 81 83 61 78 101 61 78 101 78 98 90 61 78 101 61 78 101
++60 81 83 61 78 101 60 81 83 60 81 83 60 81 83 61 78 101 42 60 86 60 81 83
++60 63 87 46 59 71 60 63 87 46 59 71 42 60 86 46 59 71 46 59 71 46 59 71
++34 42 77 45 57 61 45 57 61 34 42 77 45 57 61 32 40 58 45 57 61 45 57 61
++32 40 58 32 40 58 43 42 50 35 47 50 32 40 58 43 42 50 32 40 58 32 40 58
++32 40 58 34 40 43 29 34 50 29 34 50 34 40 43 29 34 50 29 34 50 28 35 38
++24 30 43 28 35 38 24 30 43 37 35 43 24 30 43 37 35 43 24 30 43 37 35 43
++24 30 43 28 35 38 29 34 50 28 35 38 29 34 50 29 34 50 28 35 38 29 34 50
++28 35 38 29 34 50 34 40 43 29 34 50 34 40 43 29 34 50 43 42 50 35 47 50
++29 34 50 35 47 50 32 40 58 43 42 50 32 40 58 45 57 61 35 47 50 35 47 50
++45 57 61 35 47 50 32 40 58 45 57 61 43 42 50 45 57 61 45 57 61 54 57 61
++45 57 61 45 57 61 45 57 61 54 57 61 45 57 61 45 57 61 54 57 61 45 57 61
++54 57 61 45 57 61 45 57 61 54 57 61 45 57 61 45 57 61 45 57 61 45 57 61
++45 57 61 43 42 50 45 57 61 43 42 50 43 42 50 45 57 61 35 47 50 35 47 50
++32 40 58 45 57 61 43 42 50 45 57 61 45 57 61 45 57 61 57 43 64 45 57 61
++45 57 61 54 57 61 45 57 61 63 59 71 46 59 71 59 69 70 59 69 70 59 69 70
++
++146 151 137 150 144 154 146 162 145 145 140 145 146 151 137 145 140 145 138 126 108 121 143 132
++146 150 115 141 116 139 146 150 115 145 140 145 145 140 145 145 140 145 146 151 137 145 140 145
++145 140 145 145 140 145 145 140 145 145 140 145 150 144 154 150 144 154 150 144 154 150 144 154
++150 144 154 145 140 145 150 144 154 145 140 145 145 140 145 131 144 168 145 140 145 129 144 153
++150 144 154 150 147 171 150 147 171 166 156 164 150 147 171 166 174 181 166 156 164 166 174 181
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181
++166 180 164 166 174 181 166 156 164 166 180 164 150 171 159 166 156 164 150 171 159 166 156 164
++177 169 143 150 171 159 166 156 164 177 169 143 150 171 159 177 169 143 148 160 159 150 144 154
++146 151 137 145 140 145 146 151 137 121 143 132 138 126 108 122 134 144 138 126 108 112 123 108
++111 119 127 138 126 108 117 142 111 111 119 127 121 143 132 138 126 108 122 134 144 138 126 108
++111 119 127 112 123 108 112 123 108 112 123 108 112 123 108 112 123 108 112 123 108 112 123 108
++112 123 108 98 113 84 90 98 89 87 99 72 75 81 76 88 83 74 75 81 76 75 81 69
++64 70 48 53 63 61 64 70 48 75 81 69 75 81 82 98 113 84 112 123 108 112 123 108
++111 119 127 121 143 132 145 140 145 146 151 137 148 160 159 146 162 145 148 160 159 148 160 159
++166 156 164 150 171 159 166 156 164 150 171 159 166 156 164 166 180 164 166 180 164 166 156 164
++146 162 145 166 156 164 150 171 159 166 180 164 166 180 164 166 156 164 166 180 164 166 180 164
++166 180 164 166 156 164 166 180 164 166 180 164 166 174 181 166 180 164 189 165 168 166 180 164
++166 174 181 166 180 164 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164 148 160 159
++148 160 159 150 144 154 146 151 137 145 140 145 126 147 144 141 116 139 121 143 132 111 119 127
++112 123 108 95 108 128 94 105 108 94 105 108 77 91 115 75 81 90 61 78 101 60 63 87
++42 60 86 34 42 77 46 59 71 34 42 77 34 42 77 34 42 77 34 42 77 32 40 58
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 32 40 58
++34 42 77 32 40 58 32 40 58 34 42 77 46 59 71 34 42 77 46 59 71 46 59 71
++60 63 87 75 64 82 77 90 100 95 95 116 111 119 127 111 119 127 122 134 144 145 140 145
++145 140 145 145 140 145 148 160 159 148 160 159 148 160 159 148 160 159 150 147 171 166 156 164
++148 160 159 150 168 183 166 156 164 150 168 183 166 174 181 150 168 183 166 174 181 150 168 183
++166 174 181 150 147 171 150 168 183 166 174 181 150 147 171 166 174 181 150 168 183 150 168 183
++150 168 183 150 168 183 150 168 183 166 174 181 150 168 183 111 119 127 45 57 61 7 10 17
++3 3 1 13 4 7 6 15 6 15 17 7 17 12 17 14 16 17 14 16 17 23 18 22
++22 25 24 26 25 15 22 25 24 22 25 24 33 30 30 22 25 24 33 30 30 52 30 35
++101 83 74 168 146 127 177 169 143 217 168 156 214 214 134 189 165 168 214 214 134 177 169 143
++217 168 156 197 171 123 217 168 156 177 169 143 217 168 156 177 169 143 217 168 156 177 169 143
++217 168 156 177 169 143 217 168 156 197 171 123 177 169 143 217 168 156 177 169 143 217 168 156
++208 215 180 217 168 156 222 171 182 217 168 156 214 214 134 222 171 182 217 168 156 208 215 180
++217 168 156 214 214 134 222 171 182 217 168 156 217 168 156 197 171 123 177 169 143 201 146 124
++177 169 143 168 146 127 168 102 88 168 146 127 168 146 127 177 171 115 201 146 124 197 171 123
++177 169 143 217 168 156 177 169 143 197 171 123 177 169 143 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 168 102 88 117 127 86 117 114 76 117 114 76 168 102 88
++138 126 108 168 102 88 138 126 108 117 112 45 167 63 71 117 99 86 120 63 71 176 103 41
++120 63 71 120 63 71 117 112 45 101 74 26 101 83 74 101 74 26 101 74 26 88 44 51
++88 73 31 76 46 20 55 39 37 55 39 18 55 39 18 53 35 17 33 30 30 52 30 15
++33 30 30 34 30 15 49 13 16 34 30 15 34 30 15 33 30 30 34 30 15 34 30 15
++34 30 15 34 30 15 52 30 35 52 30 35 47 47 21 34 30 15 34 30 15 34 30 15
++33 30 30 34 30 15 32 39 24 33 30 30 34 30 15 33 30 30 47 47 21 32 39 24
++47 47 21 33 30 30 53 35 17 36 35 37 52 55 48 75 81 82 94 105 108 75 81 90
++24 30 43 7 10 17 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9
++3 3 1 3 3 1 3 3 1 3 4 9 17 12 17 17 12 17 7 10 17 7 10 17
++94 105 108 185 202 202 185 202 202 111 119 127 7 10 17 3 3 1 3 3 1 3 4 9
++7 12 13 3 4 9 3 4 9 3 4 9 13 4 7 7 12 13 7 12 13 13 4 7
++3 3 1 26 12 13 75 73 58 146 150 115 189 165 168 217 168 156 189 165 168 214 214 134
++189 165 168 217 168 156 177 169 143 217 168 156 208 215 180 217 168 156 214 214 134 222 171 182
++225 222 201 222 171 182 222 171 182 225 222 201 222 171 182 214 214 134 222 171 182 225 222 201
++222 171 182 222 171 182 222 171 182 208 215 180 217 168 156 214 214 134 222 171 182 225 222 201
++217 168 156 208 215 180 222 171 182 214 214 134 222 171 182 214 214 134 225 222 201 222 171 182
++225 222 201 222 171 182 214 214 134 222 171 182 225 222 201 227 171 124 225 222 201 222 171 182
++225 222 201 222 171 182 225 222 201 214 214 134 225 222 201 214 214 134 225 222 201 225 222 201
++225 222 201 225 222 201 225 222 201 225 222 201 222 171 182 112 123 108 75 64 82 46 59 71
++42 60 86 60 63 87 42 60 86 60 63 87 42 60 86 61 78 101 42 60 86 60 63 87
++42 60 86 60 63 87 42 60 86 42 60 86 42 60 86 42 60 86 42 60 86 60 63 87
++42 60 86 46 59 71 42 60 86 46 59 71 42 60 86 46 59 71 42 60 86 42 60 86
++42 60 86 59 69 70 42 60 86 42 60 86 60 81 83 42 60 86 59 69 70 42 60 86
++60 63 87 46 59 71 60 63 87 42 60 86 60 63 87 42 60 86 60 63 87 59 69 70
++42 60 86 60 63 87 46 59 71 46 59 71 42 60 86 60 63 87 46 59 71 42 60 86
++60 63 87 42 60 86 46 59 71 42 60 86 46 59 71 46 59 71 34 42 77 46 59 71
++42 60 86 46 59 71 34 42 77 46 59 71 42 60 86 34 42 77 42 60 86 34 42 77
++42 60 86 46 59 71 42 60 86 34 42 77 42 60 86 57 43 64 42 60 86 46 59 71
++42 60 86 42 60 86 42 60 86 46 59 71 34 42 77 46 59 71 46 59 71 42 60 86
++46 59 71 46 59 71 34 42 77 46 59 71 46 59 71 34 42 77 46 59 71 34 42 77
++45 57 61 34 42 77 34 42 77 45 57 61 34 42 77 34 42 77 32 40 58 34 42 77
++32 40 58 34 42 77 32 40 58 45 57 61 34 42 77 43 42 50 32 40 58 35 47 50
++63 59 71 94 105 108 145 140 145 121 143 132 88 83 88 33 39 38 14 16 17 15 22 17
++23 18 22 22 25 24 22 25 24 12 18 20 14 16 17 7 10 17 12 18 20 33 39 38
++90 98 89 121 143 132 146 150 115 146 151 137 138 126 108 146 151 137 146 151 137 146 150 115
++121 143 132 146 150 115 146 151 137 146 151 137 146 151 137 145 140 145 111 119 127 112 123 108
++95 91 100 60 82 70 54 57 61 34 40 43 23 30 35 24 30 43 24 30 43 29 34 50
++24 30 43 24 30 43 24 30 43 23 30 35 12 18 30 33 39 38 53 63 61 90 98 89
++112 123 108 138 126 108 112 123 108 117 127 86 117 99 86 112 123 108 117 127 86 117 99 86
++98 106 55 87 99 72 117 127 86 138 126 108 117 127 86 87 99 72 88 73 62 75 73 36
++63 55 45 64 70 48 63 55 45 47 47 21 29 35 19 34 30 15 23 31 15 22 24 13
++15 17 7 23 31 15 47 47 21 75 77 62 99 93 84 87 99 72 64 70 48 32 39 24
++22 24 13 22 24 13 23 31 15 29 35 19 29 35 19 51 49 42 81 96 56 99 93 84
++99 93 84 88 83 88 90 98 89 75 81 76 54 57 61 63 59 71 46 59 71 63 59 71
++46 59 71 46 59 71 63 59 71 46 59 71 60 63 87 59 69 70 60 63 87 60 81 83
++60 63 87 60 63 87 60 63 87 61 78 101 60 81 83 61 78 101 60 81 83 61 78 101
++60 81 83 61 78 101 60 81 83 61 78 101 60 81 83 61 78 101 60 81 83 61 78 101
++60 81 83 61 78 101 42 60 86 60 81 83 42 60 86 60 81 83 60 63 87 42 60 86
++46 59 71 42 60 86 46 59 71 46 59 71 46 59 71 46 59 71 34 42 77 46 59 71
++45 57 61 34 42 77 45 57 61 32 40 58 45 57 61 32 40 58 32 40 58 32 40 58
++43 42 50 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 37 35 43
++32 40 58 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 24 30 43
++29 34 50 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50 24 30 43 24 30 43
++29 34 50 29 34 50 24 30 43 29 34 50 28 35 38 24 30 43 29 34 50 28 35 38
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 32 40 58 29 34 50 32 40 58
++35 47 50 29 34 50 32 40 58 35 47 50 32 40 58 35 47 50 32 40 58 35 47 50
++32 40 58 45 57 61 45 57 61 32 40 58 45 57 61 45 57 61 45 57 61 45 57 61
++46 59 71 45 57 61 45 57 61 45 57 61 45 57 61 45 57 61 45 57 61 54 57 61
++45 57 61 46 59 71 45 57 61 45 57 61 57 43 64 45 57 61 43 42 50 43 42 50
++45 57 61 43 42 50 45 57 61 32 40 58 35 47 50 32 40 58 43 42 50 45 57 61
++32 40 58 43 42 50 45 57 61 32 40 58 45 57 61 43 42 50 45 57 61 45 57 61
++46 59 71 54 57 61 46 59 71 46 59 71 54 57 61 46 59 71 63 59 71 60 63 87
++
++146 151 137 146 151 137 150 144 154 146 151 137 145 140 145 121 143 132 146 151 137 145 140 145
++138 126 108 146 151 137 138 126 108 122 134 144 138 126 108 146 150 115 141 116 139 145 140 145
++145 140 145 145 140 145 145 140 145 145 140 145 145 140 145 145 140 145 145 140 145 145 140 145
++145 140 145 145 140 145 145 140 145 129 144 153 150 144 154 145 140 145 129 144 153 150 144 154
++129 144 153 150 144 154 148 160 159 150 147 171 150 147 171 150 147 171 150 147 171 166 156 164
++150 168 183 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 189 165 168 166 174 181
++166 174 181 166 174 181 166 180 164 166 180 164 166 156 164 166 180 164 166 156 164 150 171 159
++166 156 164 166 180 164 166 156 164 166 180 164 166 156 164 148 160 159 177 169 143 166 156 164
++146 162 145 145 140 145 146 151 137 145 140 145 145 140 145 121 143 132 121 143 132 138 126 108
++121 143 132 112 123 108 111 119 127 121 143 132 138 126 108 121 143 132 117 142 111 111 119 127
++112 123 108 112 123 108 111 119 127 112 123 108 112 123 108 112 123 108 112 123 108 94 105 108
++90 98 89 90 98 89 75 81 76 75 81 69 75 81 82 87 99 72 90 98 89 87 99 72
++88 83 74 90 98 89 90 98 89 112 123 108 117 142 111 145 140 145 146 151 137 150 144 154
++146 162 145 146 151 137 148 160 159 146 162 145 166 156 164 148 160 159 166 156 164 146 162 145
++148 160 159 177 169 143 150 171 159 166 156 164 166 180 164 166 156 164 150 171 159 166 156 164
++150 171 159 166 156 164 166 180 164 166 156 164 166 180 164 166 180 164 166 156 164 166 180 164
++166 156 164 166 180 164 166 174 181 166 180 164 189 165 168 166 180 164 166 180 164 166 174 181
++166 180 164 189 165 168 166 180 164 166 180 164 166 180 164 166 180 164 150 171 159 166 156 164
++148 160 159 146 162 145 148 160 159 126 147 144 145 140 145 121 143 132 121 143 132 111 119 127
++111 119 127 111 119 127 94 105 108 95 95 116 77 91 115 75 81 90 61 78 101 60 63 87
++42 60 86 46 59 71 34 42 77 34 42 77 45 57 61 34 42 77 32 40 58 34 42 77
++34 42 77 32 40 58 34 42 77 32 40 58 34 42 77 32 40 58 34 42 77 32 40 58
++34 42 77 32 40 58 34 42 77 32 40 58 32 40 58 34 42 77 32 40 58 34 42 77
++32 40 58 54 57 61 46 59 71 59 69 70 75 64 82 75 81 90 95 91 100 94 105 108
++95 119 107 111 119 127 111 119 127 122 134 144 122 134 144 145 140 145 129 144 153 148 160 159
++150 147 171 148 160 159 150 147 171 148 160 159 150 147 171 150 147 171 148 160 159 150 147 171
++150 168 183 150 147 171 150 147 171 150 147 171 150 168 183 150 147 171 150 147 171 131 144 168
++129 144 153 131 144 168 150 168 183 150 168 183 129 144 153 94 105 108 45 57 61 7 10 17
++3 3 1 3 3 1 13 4 7 13 4 7 15 17 7 14 16 17 15 17 7 15 17 7
++23 20 24 23 20 24 26 25 15 22 25 24 26 30 28 26 25 15 29 35 19 55 39 37
++99 93 84 168 146 127 177 169 143 177 169 143 177 169 143 177 169 143 217 168 156 177 169 143
++197 171 123 177 169 143 177 169 143 197 171 123 177 169 143 217 168 156 197 171 123 177 169 143
++197 171 123 168 146 127 217 168 156 177 169 143 217 168 156 197 171 123 217 168 156 197 171 123
++217 168 156 208 215 180 217 168 156 217 168 156 217 168 156 214 214 134 217 168 156 217 168 156
++217 168 156 217 168 156 217 168 156 197 171 123 189 165 168 201 146 124 177 169 143 201 146 124
++201 146 124 168 146 127 201 146 124 168 146 127 168 146 127 201 146 124 177 169 143 217 168 156
++201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 168 146 127 201 146 124 168 146 127
++201 146 124 168 146 127 146 150 115 138 126 108 117 114 76 168 102 88 117 99 86 157 148 53
++138 126 108 168 102 88 117 114 76 168 102 88 117 99 86 117 112 45 120 63 71 117 114 76
++120 63 71 117 112 45 120 63 71 120 63 71 101 74 26 120 63 71 88 73 62 75 56 53
++76 46 20 55 39 37 76 46 20 55 39 18 52 30 35 53 35 17 53 35 17 34 30 15
++49 13 16 34 30 15 33 30 30 33 30 30 34 30 15 49 13 16 34 30 15 34 30 15
++34 30 15 33 30 30 34 30 15 53 35 37 36 35 37 53 35 17 33 30 30 34 30 15
++34 30 15 33 30 30 53 35 17 34 30 15 34 30 15 52 30 15 32 39 24 53 35 37
++47 47 21 34 30 15 34 30 15 47 44 42 90 98 89 150 144 154 166 174 181 188 180 202
++145 140 145 95 95 116 33 30 36 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9
++3 4 9 3 4 9 3 3 1 3 3 1 7 12 13 3 3 1 7 10 17 45 57 61
++148 160 159 232 215 228 119 117 138 24 30 43 3 3 1 3 3 1 3 3 1 3 4 9
++3 4 9 7 12 13 13 4 7 7 12 13 3 3 1 7 12 13 3 3 1 3 3 1
++15 22 17 88 73 62 146 151 137 217 168 156 208 215 180 166 180 164 217 168 156 189 165 168
++177 169 143 214 214 134 217 168 156 177 169 143 217 168 156 208 215 180 222 171 182 214 214 134
++222 171 182 214 214 134 222 171 182 214 214 134 225 222 201 222 171 182 225 222 201 222 171 182
++214 214 134 225 222 201 214 214 134 225 222 201 222 171 182 225 222 201 217 168 156 208 215 180
++217 168 156 225 222 201 217 168 156 225 222 201 222 171 182 225 222 201 222 171 182 222 171 182
++214 214 134 225 222 201 222 171 182 225 222 201 217 168 156 225 222 201 222 171 182 214 214 134
++222 171 182 214 214 134 225 222 201 222 171 182 225 222 201 222 171 182 225 222 201 222 171 182
++225 222 201 222 171 182 225 222 201 232 215 228 225 222 201 166 180 164 94 105 108 46 59 71
++46 59 71 42 60 86 60 63 87 42 60 86 42 60 86 42 60 86 42 60 86 42 60 86
++42 60 86 42 60 86 42 60 86 42 60 86 42 60 86 42 60 86 46 59 71 42 60 86
++46 59 71 42 60 86 46 59 71 46 59 71 34 42 77 42 60 86 46 59 71 42 60 86
++46 59 71 42 60 86 42 60 86 42 60 86 42 60 86 42 60 86 46 59 71 42 60 86
++46 59 71 60 63 87 42 60 86 59 69 70 42 60 86 46 59 71 46 59 71 60 63 87
++60 63 87 46 59 71 60 63 87 46 59 71 60 63 87 46 59 71 42 60 86 46 59 71
++46 59 71 46 59 71 42 60 86 46 59 71 34 42 77 42 60 86 57 43 64 34 42 77
++46 59 71 34 42 77 46 59 71 46 59 71 34 42 77 46 59 71 34 42 77 46 59 71
++46 59 71 34 42 77 46 59 71 42 60 86 46 59 71 34 42 77 46 59 71 34 42 77
++42 60 86 46 59 71 34 42 77 42 60 86 46 59 71 34 42 77 46 59 71 34 42 77
++46 59 71 34 42 77 46 59 71 34 42 77 46 59 71 34 42 77 45 57 61 34 42 77
++34 42 77 46 59 71 32 40 58 34 42 77 34 42 77 45 57 61 34 42 77 32 40 58
++34 42 77 32 40 58 45 57 61 32 40 58 32 40 58 32 40 58 32 40 58 34 40 43
++75 81 82 150 147 171 208 215 180 185 202 202 146 162 145 88 83 88 36 35 37 22 25 24
++14 16 17 15 22 17 12 18 20 7 12 13 7 12 13 22 23 31 53 63 61 95 91 100
++146 151 137 148 160 159 138 126 108 138 126 108 146 151 137 146 151 137 146 151 137 138 126 108
++146 151 137 146 151 137 146 151 137 146 151 137 138 126 108 98 113 84 88 83 74 59 69 70
++48 50 48 28 30 35 23 30 35 23 30 35 24 30 43 23 30 35 24 30 43 12 18 30
++23 30 35 12 18 30 24 30 43 29 34 50 45 57 61 60 82 70 90 98 89 117 99 86
++112 123 108 112 123 108 117 99 86 117 99 86 117 114 76 98 113 84 88 73 62 80 96 46
++88 83 74 117 114 76 117 127 86 98 113 84 117 114 76 81 96 56 75 73 36 63 55 45
++47 47 21 49 74 23 47 47 21 32 39 24 32 39 24 29 35 19 34 30 15 34 30 15
++23 31 15 22 24 13 34 30 15 32 39 24 47 47 21 32 39 24 23 31 15 29 35 19
++32 39 24 32 39 24 47 49 42 51 49 42 47 49 42 52 55 48 64 70 48 75 77 62
++75 81 76 88 83 74 75 81 82 75 72 67 54 57 61 54 57 61 46 59 71 57 43 64
++46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 59 69 70
++42 60 86 60 81 83 42 60 86 60 63 87 60 81 83 42 60 86 60 81 83 60 81 83
++60 81 83 60 81 83 61 78 101 60 81 83 61 78 101 60 81 83 61 78 101 60 81 83
++60 81 83 42 60 86 60 81 83 42 60 86 60 63 87 42 60 86 46 59 71 46 59 71
++42 60 86 46 59 71 46 59 71 46 59 71 45 57 61 34 42 77 45 57 61 45 57 61
++34 42 77 43 42 50 34 42 77 45 57 61 32 40 58 45 57 61 32 40 58 43 42 50
++32 40 58 35 47 50 43 42 50 32 40 58 34 40 43 29 34 50 32 40 58 29 34 50
++32 40 58 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 24 30 43 29 34 50
++28 35 38 24 30 43 29 34 50 24 30 43 29 34 50 28 35 38 24 30 43 29 34 50
++24 30 43 29 34 50 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50 29 34 50
++29 34 50 29 34 50 34 40 43 29 34 50 34 40 43 29 34 50 32 40 58 29 34 50
++29 34 50 34 40 43 32 40 58 43 42 50 32 40 58 43 42 50 32 40 58 43 42 50
++35 47 50 32 40 58 32 40 58 43 42 50 45 57 61 32 40 58 45 57 61 45 57 61
++45 57 61 45 57 61 45 57 61 45 57 61 45 57 61 57 43 64 45 57 61 45 57 61
++45 57 61 57 43 64 45 57 61 32 40 58 45 57 61 43 42 50 45 57 61 45 57 61
++43 42 50 32 40 58 45 57 61 32 40 58 45 57 61 43 42 50 35 47 50 32 40 58
++45 57 61 43 42 50 32 40 58 45 57 61 32 40 58 45 57 61 57 43 64 46 59 71
++54 57 61 46 59 71 54 57 61 46 59 71 54 57 61 46 59 71 59 69 70 46 59 71
++
++146 151 137 148 160 159 146 162 145 146 151 137 145 140 145 146 150 115 141 116 139 117 142 111
++141 116 139 138 126 108 145 140 145 138 126 108 145 140 145 138 126 108 121 143 132 138 126 108
++141 116 139 121 143 132 141 116 139 145 140 145 141 116 139 145 140 145 141 116 139 122 134 144
++141 116 139 122 134 144 141 116 139 145 140 145 122 134 144 141 116 139 145 140 145 122 134 144
++145 140 145 129 144 153 150 144 154 150 147 171 148 160 159 166 156 164 150 168 183 166 156 164
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 188 180 202 166 174 181 166 174 181
++166 180 164 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164 150 171 159 166 156 164
++166 180 164 166 156 164 166 180 164 177 169 143 166 180 164 166 156 164 150 171 159 148 160 159
++146 162 145 150 144 154 146 151 137 145 140 145 138 126 108 121 143 132 141 116 139 112 123 108
++119 117 138 138 126 108 121 143 132 138 126 108 111 119 127 138 126 108 122 134 144 138 126 108
++111 119 127 112 123 108 112 123 108 112 123 108 112 123 108 94 105 108 112 123 108 98 113 84
++98 113 84 90 98 89 90 98 89 90 98 89 95 119 107 112 123 108 112 123 108 112 123 108
++111 119 127 121 143 132 121 143 132 146 151 137 148 160 159 148 160 159 150 171 159 166 156 164
++166 156 164 166 180 164 166 156 164 166 156 164 146 162 145 146 162 145 166 156 164 146 162 145
++166 156 164 150 171 159 166 156 164 150 171 159 166 156 164 166 180 164 166 156 164 166 180 164
++166 156 164 166 180 164 166 156 164 166 180 164 166 180 164 166 156 164 166 180 164 166 180 164
++166 180 164 189 165 168 166 180 164 166 180 164 166 180 164 166 174 181 189 165 168 166 180 164
++189 165 168 166 180 164 166 174 181 189 165 168 166 180 164 166 156 164 166 180 164 166 156 164
++148 160 159 148 160 159 150 144 154 146 151 137 129 144 153 145 140 145 121 143 132 141 116 139
++112 123 108 111 119 127 95 108 128 94 105 108 77 90 100 75 81 90 61 78 101 60 63 87
++46 59 71 34 42 77 34 42 77 32 40 58 34 42 77 32 40 58 34 42 77 34 42 77
++32 40 58 34 42 77 32 40 58 34 42 77 34 42 77 32 40 58 34 42 77 32 40 58
++34 42 77 32 40 58 34 42 77 32 40 58 34 42 77 45 57 61 32 40 58 57 43 64
++32 40 58 57 43 64 45 57 61 57 43 64 45 57 61 59 57 61 63 59 71 75 64 82
++88 69 84 95 91 100 95 91 100 112 96 108 112 96 108 112 123 108 119 117 138 141 116 139
++121 143 132 145 140 145 145 140 145 150 144 154 150 144 154 148 160 159 148 160 159 148 160 159
++150 144 154 148 160 159 150 144 154 150 147 171 150 144 154 148 160 159 150 144 154 122 134 144
++119 117 138 122 134 144 129 144 153 129 144 153 122 134 144 77 90 100 43 42 50 14 16 17
++3 3 1 3 3 1 3 3 1 6 15 6 13 4 7 6 15 6 7 12 13 14 16 17
++14 16 17 22 25 24 23 20 24 22 25 24 22 25 24 23 18 22 33 30 30 51 49 42
++117 99 86 168 146 127 177 169 143 217 168 156 197 171 123 177 169 143 197 171 123 177 169 143
++201 146 124 177 169 143 201 146 124 177 169 143 197 171 123 177 169 143 217 168 156 168 146 127
++168 146 127 201 146 124 177 169 143 217 168 156 197 171 123 177 169 143 177 169 143 217 168 156
++217 168 156 197 171 123 217 168 156 189 165 168 177 169 143 217 168 156 177 169 143 217 168 156
++177 169 143 217 168 156 177 169 143 201 146 124 177 169 143 201 146 124 168 146 127 201 146 124
++168 146 127 168 146 127 168 102 88 168 146 127 201 146 124 177 169 143 201 146 124 189 165 168
++197 171 123 201 146 124 177 169 143 201 146 124 168 146 127 168 146 127 168 146 127 168 146 127
++146 150 115 168 102 88 168 102 88 117 114 76 117 114 76 117 114 76 168 102 88 138 126 108
++168 102 88 117 114 76 168 102 88 117 112 45 120 63 71 168 102 88 117 112 45 120 63 71
++120 63 71 101 74 26 120 63 71 117 112 45 120 63 71 101 74 26 88 73 31 88 44 51
++88 73 31 76 46 20 55 39 37 53 35 17 53 35 17 53 35 17 33 30 30 53 35 17
++33 30 30 34 30 15 49 13 16 34 30 15 34 30 15 33 30 30 34 30 15 34 30 15
++49 13 16 33 30 30 53 35 17 36 35 37 53 35 17 33 30 30 34 30 15 33 30 30
++34 30 15 32 39 24 33 30 30 34 30 15 34 30 15 33 30 30 47 47 21 32 39 24
++33 30 30 34 30 15 48 44 48 88 83 88 145 140 145 188 180 202 201 216 228 226 221 247
++201 216 228 188 180 202 94 105 108 43 42 50 23 30 35 7 10 17 3 3 1 3 3 1
++3 3 1 3 3 1 3 4 9 13 4 7 3 4 9 3 3 1 23 18 22 95 91 100
++166 174 181 166 174 181 63 59 71 3 3 1 3 4 9 3 3 1 3 4 9 3 4 9
++13 4 7 13 4 7 7 12 13 13 4 7 6 15 6 13 4 7 3 3 1 23 10 10
++75 72 67 146 151 137 189 165 168 217 168 156 189 165 168 217 168 156 214 214 134 189 165 168
++217 168 156 166 180 164 217 168 156 214 214 134 189 165 168 217 168 156 217 168 156 208 215 180
++217 168 156 208 215 180 222 171 182 208 215 180 222 171 182 214 214 134 225 222 201 222 171 182
++225 222 201 222 171 182 222 171 182 225 222 201 214 214 134 222 171 182 208 215 180 222 171 182
++214 214 134 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 214 214 134 225 222 201
++222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 225 222 201 217 168 156 225 222 201
++222 171 182 225 222 201 222 171 182 225 222 201 217 168 156 225 222 201 214 214 134 225 222 201
++208 215 180 225 222 201 225 222 201 225 222 201 225 222 201 225 222 201 145 140 145 75 81 90
++46 59 71 46 59 71 42 60 86 60 63 87 42 60 86 42 60 86 42 60 86 42 60 86
++42 60 86 42 60 86 42 60 86 46 59 71 42 60 86 46 59 71 34 42 77 42 60 86
++34 42 77 46 59 71 34 42 77 42 60 86 46 59 71 34 42 77 42 60 86 46 59 71
++42 60 86 42 60 86 60 63 87 46 59 71 60 63 87 42 60 86 60 63 87 60 63 87
++42 60 86 60 81 83 42 60 86 60 63 87 60 63 87 60 63 87 42 60 86 60 63 87
++42 60 86 60 63 87 60 63 87 42 60 86 60 63 87 42 60 86 57 43 64 42 60 86
++42 60 86 34 42 77 46 59 71 34 42 77 46 59 71 34 42 77 46 59 71 34 42 77
++34 42 77 46 59 71 34 42 77 46 59 71 34 42 77 42 60 86 46 59 71 42 60 86
++34 42 77 46 59 71 34 42 77 42 60 86 34 42 77 46 59 71 46 59 71 34 42 77
++46 59 71 42 60 86 46 59 71 34 42 77 46 59 71 34 42 77 46 59 71 34 42 77
++46 59 71 42 60 86 34 42 77 46 59 71 34 42 77 34 42 77 34 42 77 46 59 71
++32 40 58 34 42 77 34 42 77 32 40 58 34 42 77 32 40 58 34 42 77 45 57 61
++34 42 77 32 40 58 34 42 77 32 40 58 46 59 71 32 40 58 32 40 58 29 34 50
++77 90 100 166 156 164 185 202 202 166 174 181 146 162 145 112 123 108 75 72 67 33 39 38
++12 18 20 14 16 17 7 12 13 14 16 17 28 30 35 59 69 70 112 123 108 146 151 137
++148 160 159 146 151 137 138 126 108 121 143 132 146 151 137 146 151 137 146 151 137 146 151 137
++146 151 137 146 151 137 138 126 108 94 105 108 75 81 76 59 57 61 42 47 42 30 30 34
++22 25 24 12 18 20 12 18 20 12 18 30 12 18 30 12 18 30 23 30 35 28 35 38
++35 46 43 35 47 50 45 57 61 59 79 61 88 83 74 90 98 89 98 113 84 112 123 108
++117 99 86 98 113 84 99 93 84 87 99 72 81 96 56 75 73 58 75 73 36 75 73 58
++87 99 72 117 114 76 99 93 84 98 113 84 99 93 84 98 113 84 87 99 72 88 73 62
++64 70 48 47 47 21 47 47 21 32 39 24 32 39 24 32 39 24 32 39 24 32 39 24
++34 30 15 29 35 19 23 31 15 23 31 15 29 35 19 26 30 28 35 46 43 50 61 48
++53 63 61 65 63 61 75 77 62 75 81 69 59 79 61 64 70 48 53 63 61 65 63 61
++75 72 67 75 81 82 75 81 76 63 59 71 45 57 61 57 43 64 46 59 71 57 43 64
++46 59 71 57 43 64 46 59 71 46 59 71 46 59 71 63 59 71 42 60 86 46 59 71
++60 63 87 42 60 86 60 63 87 42 60 86 60 63 87 60 63 87 42 60 86 42 60 86
++60 63 87 42 60 86 42 60 86 42 60 86 60 81 83 42 60 86 60 81 83 42 60 86
++61 78 101 42 60 86 59 69 70 42 60 86 59 69 70 46 59 71 46 59 71 42 60 86
++46 59 71 46 59 71 34 42 77 45 57 61 34 42 77 32 40 58 32 40 58 34 42 77
++35 47 50 34 42 77 35 47 50 32 40 58 32 40 58 32 40 58 32 40 58 35 47 50
++32 40 58 32 40 58 29 34 50 32 40 58 29 34 50 32 40 58 29 34 50 29 34 50
++29 34 50 29 34 50 34 40 43 29 34 50 29 34 50 29 34 50 29 34 50 24 30 43
++29 34 50 24 30 43 29 34 50 29 34 50 29 34 50 24 30 43 29 34 50 24 30 43
++29 34 50 29 34 50 29 34 50 28 35 38 29 34 50 29 34 50 29 34 50 28 35 38
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 35 47 50
++29 34 50 43 42 50 32 40 58 35 47 50 32 40 58 43 42 50 35 47 50 32 40 58
++35 47 50 43 42 50 45 57 61 32 40 58 45 57 61 45 57 61 32 40 58 57 43 64
++45 57 61 32 40 58 45 57 61 45 57 61 45 57 61 45 57 61 45 57 61 43 42 50
++45 57 61 32 40 58 45 57 61 43 42 50 45 57 61 32 40 58 43 42 50 32 40 58
++35 47 50 45 57 61 32 40 58 43 42 50 32 40 58 32 40 58 43 42 50 32 40 58
++43 42 50 32 40 58 43 42 50 32 40 58 43 42 50 32 40 58 45 57 61 32 40 58
++45 57 61 57 43 64 45 57 61 45 57 61 46 59 71 54 57 61 46 59 71 63 59 71
++
++150 144 154 146 162 145 150 144 154 146 151 137 145 140 145 145 140 145 138 126 108 146 151 137
++138 126 108 121 143 132 138 126 108 141 116 139 138 126 108 138 126 108 141 116 139 138 126 108
++138 126 108 138 126 108 138 126 108 138 126 108 138 126 108 121 143 132 138 126 108 141 116 139
++138 126 108 121 143 132 138 126 108 119 117 138 141 116 139 119 117 138 122 134 144 141 116 139
++122 134 144 145 140 145 145 140 145 150 144 154 150 144 154 150 147 171 150 147 171 166 156 164
++150 147 171 166 156 164 166 174 181 189 165 168 166 174 181 166 180 164 166 174 181 166 180 164
++166 174 181 166 180 164 166 174 181 166 180 164 166 156 164 166 180 164 166 156 164 166 180 164
++177 169 143 166 180 164 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164 177 169 143
++166 156 164 150 144 154 146 151 137 145 140 145 146 151 137 145 140 145 121 143 132 138 126 108
++121 143 132 111 119 127 138 126 108 122 134 144 138 126 108 121 143 132 121 143 132 121 143 132
++121 143 132 138 126 108 121 143 132 111 119 127 117 142 111 111 119 127 138 126 108 111 119 127
++138 126 108 121 143 132 146 150 115 121 143 132 145 140 145 145 140 145 146 151 137 146 162 145
++146 162 145 146 162 145 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164 166 180 164
++150 171 159 177 169 143 150 171 159 166 156 164 146 162 145 166 156 164 146 162 145 150 171 159
++166 156 164 150 171 159 166 156 164 177 169 143 150 171 159 166 156 164 166 180 164 150 171 159
++166 180 164 166 156 164 166 180 164 166 180 164 166 174 181 166 180 164 166 174 181 189 165 168
++166 180 164 166 174 181 166 180 164 166 174 181 189 165 168 166 180 164 166 180 164 166 174 181
++166 180 164 166 174 181 166 180 164 166 180 164 166 180 164 166 180 164 166 156 164 166 180 164
++166 156 164 148 160 159 148 160 159 148 160 159 146 151 137 145 140 145 122 134 144 121 143 132
++121 143 132 111 119 127 94 105 108 94 105 108 77 91 115 77 90 100 60 63 87 60 63 87
++42 60 86 46 59 71 34 42 77 34 42 77 32 40 58 34 42 77 32 40 58 32 40 58
++34 42 77 32 40 58 34 42 77 32 40 58 32 40 58 34 42 77 32 40 58 34 42 77
++32 40 58 34 42 77 32 40 58 34 42 77 32 40 58 32 40 58 32 40 58 57 43 64
++32 40 58 57 43 64 57 43 64 57 43 64 57 43 51 57 43 64 57 43 51 76 44 53
++75 59 67 88 44 51 75 56 53 88 66 70 88 66 70 101 60 73 101 83 74 117 99 86
++117 99 86 112 96 108 138 102 108 112 123 108 141 116 139 121 143 132 141 116 139 121 143 132
++145 140 145 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 111 119 127
++94 105 108 94 105 108 111 119 127 121 143 132 94 105 108 59 69 70 33 39 38 7 10 17
++3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 4 9 7 12 13 13 4 7
++17 12 17 17 12 17 14 16 17 23 18 22 14 16 17 14 16 17 32 39 24 63 55 45
++112 123 108 168 146 127 197 171 123 177 169 143 177 169 143 168 146 127 201 146 124 177 169 143
++201 146 124 177 169 143 201 146 124 177 169 143 201 146 124 217 168 156 177 169 143 201 146 124
++168 146 127 168 146 127 201 146 124 197 171 123 189 165 168 217 168 156 217 168 156 177 169 143
++177 169 143 217 168 156 189 165 168 197 171 123 217 168 156 177 169 143 217 168 156 201 146 124
++177 169 143 201 146 124 168 146 127 201 146 124 168 146 127 201 146 124 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 168 146 127 201 146 124 177 169 143 217 168 156 201 146 124
++177 169 143 201 146 124 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127
++168 102 88 138 126 108 117 127 86 117 114 76 168 102 88 168 102 88 138 126 108 168 102 88
++117 114 76 167 63 71 117 114 76 117 99 86 120 63 71 117 112 45 120 63 71 120 63 71
++117 112 45 101 83 74 101 74 26 120 63 71 101 74 26 120 63 71 88 44 51 76 46 20
++76 44 53 76 46 20 55 39 18 55 39 37 53 35 37 53 35 17 52 30 35 34 30 15
++52 30 35 34 30 15 34 30 15 33 30 30 49 13 16 34 30 15 34 30 15 33 30 30
++34 30 15 34 30 15 32 39 24 53 35 17 32 39 24 34 30 15 34 30 15 34 30 15
++34 30 15 34 30 15 34 30 15 33 30 30 34 30 15 34 30 15 33 30 30 32 39 24
++36 35 37 48 50 48 94 105 108 148 160 159 188 180 202 201 216 228 201 216 228 221 238 247
++226 221 247 201 216 228 166 176 200 122 134 144 111 119 127 63 59 71 12 18 20 3 3 1
++3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 23 20 24 111 119 127
++150 144 154 94 105 108 22 23 31 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1
++3 4 9 3 4 9 3 3 1 3 4 9 3 3 1 3 3 1 26 12 13 75 73 58
++146 150 115 217 168 156 189 165 168 214 214 134 177 169 143 208 215 180 189 165 168 217 168 156
++189 165 168 214 214 134 166 180 164 217 168 156 166 180 164 217 168 156 177 169 143 208 215 180
++217 168 156 214 214 134 222 171 182 214 214 134 225 222 201 222 171 182 225 222 201 214 214 134
++222 171 182 214 214 134 225 222 201 217 168 156 225 222 201 217 168 156 225 222 201 214 214 134
++222 171 182 208 215 180 222 171 182 208 215 180 222 171 182 208 215 180 222 171 182 217 168 156
++225 222 201 222 171 182 225 222 201 222 171 182 225 222 201 227 171 124 225 222 201 222 171 182
++214 214 134 225 222 201 222 171 182 214 214 134 225 222 201 222 171 182 225 222 201 222 171 182
++225 222 201 217 168 156 225 222 201 222 171 182 225 222 201 225 222 201 188 180 202 138 126 108
++75 64 82 34 42 77 46 59 71 42 60 86 42 60 86 46 59 71 42 60 86 46 59 71
++42 60 86 46 59 71 42 60 86 42 60 86 34 42 77 42 60 86 42 60 86 46 59 71
++42 60 86 42 60 86 42 60 86 42 60 86 42 60 86 42 60 86 42 60 86 42 60 86
++60 63 87 42 60 86 60 81 83 42 60 86 60 63 87 61 78 101 42 60 86 61 78 101
++60 63 87 42 60 86 61 78 101 60 63 87 61 78 101 60 63 87 61 78 101 60 63 87
++61 78 101 60 63 87 60 63 87 60 63 87 60 63 87 60 63 87 42 60 86 60 63 87
++42 60 86 60 63 87 34 42 77 42 60 86 34 42 77 42 60 86 34 42 77 46 59 71
++34 42 77 46 59 71 34 42 77 34 42 77 46 59 71 34 42 77 46 59 71 34 42 77
++42 60 86 34 42 77 60 63 87 34 42 77 46 59 71 42 60 86 34 42 77 46 59 71
++34 42 77 42 60 86 34 42 77 42 60 86 34 42 77 46 59 71 42 60 86 46 59 71
++34 42 77 46 59 71 34 42 77 46 59 71 34 42 77 46 59 71 46 59 71 34 42 77
++34 42 77 46 59 71 32 40 58 34 42 77 45 57 61 34 42 77 32 40 58 34 42 77
++32 40 58 34 42 77 57 43 64 34 42 77 32 40 58 34 42 77 32 40 58 43 42 50
++75 81 90 122 134 144 145 140 145 111 119 127 141 116 139 122 134 144 94 105 108 75 81 90
++45 57 61 35 47 50 34 40 43 59 69 70 90 98 89 141 116 139 146 162 145 166 156 164
++146 151 137 138 126 108 146 151 137 146 162 145 177 169 143 146 151 137 138 126 108 111 119 127
++112 123 108 90 98 89 75 64 82 45 57 61 34 40 43 28 35 38 22 23 31 22 23 31
++22 23 31 22 25 24 22 25 24 29 35 19 32 39 24 36 35 37 43 55 48 64 70 48
++75 77 62 75 81 69 87 99 72 98 113 84 99 93 84 98 113 84 99 93 84 99 93 84
++98 113 84 87 99 72 75 77 62 75 73 58 64 70 48 63 55 45 64 70 48 75 73 58
++75 77 62 64 70 48 75 77 62 117 114 76 138 126 108 146 151 137 168 146 127 117 142 111
++75 81 69 52 55 48 33 30 30 32 39 24 32 39 24 32 39 24 32 39 24 47 47 21
++32 39 24 32 39 24 42 47 42 50 61 48 59 69 70 60 82 70 88 83 74 78 98 90
++90 98 89 78 98 90 75 81 90 75 81 82 75 81 76 60 81 83 59 69 70 60 63 87
++60 63 87 60 63 87 63 59 71 45 57 61 57 43 64 45 57 61 34 42 77 45 57 61
++34 42 77 45 57 61 34 42 77 57 43 64 34 42 77 46 59 71 46 59 71 46 59 71
++46 59 71 46 59 71 46 59 71 46 59 71 42 60 86 42 60 86 59 69 70 60 63 87
++42 60 86 60 81 83 42 60 86 59 69 70 42 60 86 42 60 86 60 63 87 42 60 86
++46 59 71 42 60 86 46 59 71 42 60 86 46 59 71 46 59 71 46 59 71 46 59 71
++45 57 61 34 42 77 45 57 61 34 42 77 32 40 58 45 57 61 32 40 58 32 40 58
++32 40 58 32 40 58 32 40 58 32 40 58 43 42 50 32 40 58 32 40 58 32 40 58
++29 34 50 32 40 58 32 40 58 32 40 58 29 34 50 29 34 50 32 40 58 29 34 50
++32 40 58 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50
++28 35 38 29 34 50 29 34 50 29 34 50 29 34 50 24 30 43 29 34 50 24 30 43
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 24 30 43 29 34 50 29 34 50
++29 34 50 34 40 43 29 34 50 34 40 43 29 34 50 35 47 50 29 34 50 32 40 58
++29 34 50 32 40 58 34 40 43 32 40 58 35 47 50 32 40 58 35 47 50 32 40 58
++45 57 61 32 40 58 32 40 58 45 57 61 32 40 58 32 40 58 45 57 61 35 47 50
++32 40 58 45 57 61 43 42 50 45 57 61 32 40 58 45 57 61 43 42 50 45 57 61
++32 40 58 45 57 61 32 40 58 45 57 61 43 42 50 45 57 61 32 40 58 45 57 61
++43 42 50 35 47 50 43 42 50 32 40 58 35 47 50 43 42 50 32 40 58 35 47 50
++32 40 58 35 47 50 32 40 58 35 47 50 32 40 58 43 42 50 32 40 58 43 42 50
++45 57 61 32 40 58 45 57 61 32 40 58 57 43 64 45 57 61 54 57 61 46 59 71
++
++146 151 137 146 151 137 146 162 145 146 151 137 145 140 145 121 143 132 121 143 132 138 126 108
++121 143 132 138 126 108 138 126 108 112 123 108 138 126 108 112 123 108 138 126 108 112 123 108
++138 102 108 112 123 108 138 102 108 112 123 108 111 119 127 138 126 108 138 126 108 119 117 138
++138 126 108 119 117 138 111 119 127 138 126 108 119 117 138 121 143 132 141 116 139 121 143 132
++141 116 139 145 140 145 122 134 144 145 140 145 150 144 154 148 160 159 150 147 171 166 156 164
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 189 165 168 166 180 164
++166 174 181 166 180 164 189 165 168 166 180 164 166 156 164 166 180 164 166 180 164 166 156 164
++166 180 164 166 156 164 166 180 164 166 180 164 177 169 143 166 180 164 166 156 164 148 160 159
++148 160 159 146 162 145 150 144 154 146 151 137 145 140 145 121 143 132 138 126 108 121 143 132
++138 126 108 121 143 132 138 126 108 121 143 132 119 117 138 138 126 108 145 140 145 121 143 132
++138 126 108 122 134 144 121 143 132 146 151 137 121 143 132 145 140 145 126 147 144 146 151 137
++146 151 137 146 162 145 150 144 154 148 160 159 166 156 164 150 171 159 166 156 164 166 180 164
++166 156 164 166 180 164 166 180 164 166 156 164 166 180 164 166 156 164 150 171 159 166 156 164
++148 160 159 166 156 164 150 171 159 177 169 143 148 160 159 166 156 164 150 171 159 166 156 164
++146 162 145 177 169 143 150 171 159 166 156 164 166 180 164 166 180 164 166 156 164 166 180 164
++166 180 164 166 180 164 166 156 164 166 180 164 189 165 168 166 180 164 189 165 168 166 180 164
++166 174 181 166 180 164 166 180 164 166 180 164 166 174 181 166 180 164 189 165 168 166 180 164
++166 174 181 189 165 168 166 180 164 166 174 181 189 165 168 166 174 181 166 180 164 166 180 164
++166 156 164 150 171 159 166 156 164 150 144 154 150 144 154 126 147 144 121 143 132 122 134 144
++111 119 127 119 117 138 111 119 127 95 95 116 95 91 100 77 90 100 61 78 101 60 63 87
++46 59 71 34 42 77 32 40 58 32 40 58 32 40 58 32 40 58 34 42 77 32 40 58
++32 40 58 34 42 77 32 40 58 32 40 58 34 42 77 32 40 58 32 40 58 34 42 77
++32 40 58 34 42 77 32 40 58 34 42 77 32 40 58 32 40 58 32 40 58 32 40 58
++57 43 64 34 42 77 57 43 64 43 42 50 57 43 64 57 43 64 76 44 53 65 57 61
++76 44 53 76 44 53 75 56 53 76 44 53 75 56 53 75 63 62 88 66 70 88 66 70
++88 66 70 88 83 74 99 93 84 99 93 84 95 91 100 112 96 108 112 123 108 112 123 108
++112 96 108 111 119 127 112 123 108 111 119 127 112 123 108 111 119 127 111 119 127 94 105 108
++77 90 100 75 81 90 75 81 82 77 90 100 75 81 90 53 63 61 36 35 37 14 16 17
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 13 4 7 6 15 6
++13 4 7 7 12 13 15 17 7 14 16 17 14 16 17 15 17 7 23 20 24 63 55 45
++117 127 86 168 146 127 177 169 143 201 146 124 168 146 127 197 171 123 168 146 127 168 146 127
++201 146 124 168 146 127 201 146 124 177 169 143 168 146 127 201 146 124 168 146 127 201 146 124
++168 146 127 201 146 124 177 169 143 177 169 143 201 146 124 177 169 143 197 171 123 217 168 156
++177 169 143 197 171 123 177 169 143 197 171 123 177 169 143 201 146 124 168 146 127 201 146 124
++168 146 127 201 146 124 168 146 127 168 146 127 163 117 123 163 117 123 168 146 127 168 102 88
++168 146 127 168 102 88 201 146 124 168 146 127 201 146 124 201 146 124 177 169 143 201 146 124
++177 169 143 201 146 124 168 146 127 168 146 127 168 102 88 146 150 115 168 102 88 146 150 115
++138 126 108 157 148 53 168 102 88 138 126 108 138 126 108 157 148 53 138 126 108 168 102 88
++117 112 45 117 112 45 120 63 71 117 112 45 120 63 71 120 63 71 117 112 45 120 63 71
++101 74 26 120 63 71 117 112 45 120 63 71 88 73 31 88 73 31 88 44 51 101 74 26
++76 46 20 59 36 42 55 39 18 55 39 18 53 35 17 52 30 35 47 47 21 52 30 15
++33 30 30 52 30 15 34 30 15 28 13 18 34 30 15 26 25 15 49 13 16 34 30 15
++34 30 15 53 35 17 33 30 30 33 30 30 34 30 15 34 30 15 34 30 15 33 30 30
++34 30 15 33 30 30 34 30 15 34 30 15 34 30 15 32 39 24 34 30 15 34 30 15
++53 46 48 94 105 108 166 156 164 185 202 202 201 216 228 208 221 247 226 221 247 201 216 228
++194 199 226 166 176 200 166 176 200 166 174 181 166 174 181 119 117 138 53 63 61 7 10 17
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 23 18 22 95 91 100
++95 95 116 59 57 61 7 10 17 3 3 1 3 3 1 3 4 9 3 4 9 3 3 1
++3 3 1 3 4 9 6 15 6 3 3 1 3 3 1 3 3 1 60 49 42 138 126 108
++177 169 143 189 165 168 177 169 143 189 165 168 217 168 156 217 168 156 189 165 168 208 215 180
++214 214 134 189 165 168 217 168 156 208 215 180 197 171 123 208 215 180 217 168 156 217 168 156
++189 165 168 208 215 180 217 168 156 222 171 182 214 214 134 222 171 182 225 222 201 222 171 182
++225 222 201 222 171 182 225 222 201 217 168 156 225 222 201 217 168 156 225 222 201 217 168 156
++225 222 201 227 171 124 208 215 180 217 168 156 208 215 180 217 168 156 225 222 201 214 214 134
++222 171 182 214 214 134 222 171 182 225 222 201 227 171 124 225 222 201 222 171 182 214 214 134
++225 222 201 222 171 182 214 214 134 225 222 201 222 171 182 214 214 134 225 222 201 222 171 182
++225 222 201 225 222 201 214 214 134 225 222 201 222 171 182 225 222 201 225 222 201 222 171 182
++111 119 127 46 59 71 34 42 77 34 42 77 60 63 87 34 42 77 42 60 86 34 42 77
++42 60 86 42 60 86 34 42 77 42 60 86 42 60 86 42 60 86 42 60 86 42 60 86
++42 60 86 42 60 86 60 63 87 42 60 86 60 63 87 60 63 87 61 78 101 60 63 87
++61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101
++61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101
++61 78 101 61 78 101 61 78 101 61 78 101 60 63 87 60 63 87 60 63 87 42 60 86
++60 63 87 42 60 86 42 60 86 42 60 86 46 59 71 42 60 86 46 59 71 34 42 77
++42 60 86 34 42 77 46 59 71 34 42 77 42 60 86 34 42 77 42 60 86 34 42 77
++46 59 71 34 42 77 42 60 86 34 42 77 42 60 86 34 42 77 46 59 71 42 60 86
++46 59 71 34 42 77 46 59 71 46 59 71 42 60 86 34 42 77 46 59 71 34 42 77
++46 59 71 34 42 77 46 59 71 34 42 77 46 59 71 34 42 77 34 42 77 46 59 71
++34 42 77 34 42 77 34 42 77 46 59 71 34 42 77 34 42 77 34 42 77 46 59 71
++34 42 77 46 59 71 34 42 77 57 43 64 46 59 71 34 42 77 45 57 61 46 59 71
++60 63 87 95 91 100 94 105 108 111 119 127 146 162 145 148 160 159 150 144 154 122 134 144
++111 119 127 112 96 108 111 119 127 145 140 145 166 156 164 166 180 164 166 180 164 146 151 137
++146 150 115 146 151 137 146 162 145 166 156 164 146 151 137 138 126 108 90 98 89 88 83 74
++65 63 61 43 42 50 28 35 38 22 23 31 22 23 31 12 18 30 22 23 31 12 18 30
++26 24 32 28 35 38 48 50 48 53 63 61 75 81 76 99 93 84 90 98 89 99 93 84
++75 81 69 87 99 72 99 93 84 87 99 72 87 99 72 88 83 74 87 99 72 87 99 72
++75 73 58 64 70 48 75 73 36 63 55 45 47 47 21 47 47 21 64 70 48 63 55 45
++47 47 21 47 47 21 75 81 69 138 126 108 146 162 145 166 180 164 166 180 164 146 151 137
++99 93 84 55 55 48 29 35 19 26 25 15 29 35 19 32 39 24 29 35 19 26 30 28
++32 39 24 51 49 42 75 81 69 94 105 108 95 119 107 112 123 108 112 123 108 94 105 108
++94 105 108 90 98 89 75 81 76 60 82 70 75 81 82 75 81 82 75 81 90 59 69 70
++75 64 82 59 69 70 46 59 71 46 59 71 45 57 61 34 42 77 57 43 64 32 40 58
++45 57 61 45 57 61 45 57 61 45 57 61 46 59 71 45 57 61 34 42 77 46 59 71
++46 59 71 46 59 71 42 60 86 46 59 71 42 60 86 46 59 71 46 59 71 42 60 86
++46 59 71 42 60 86 46 59 71 42 60 86 46 59 71 46 59 71 42 60 86 46 59 71
++42 60 86 46 59 71 46 59 71 34 42 77 46 59 71 34 42 77 32 40 58 46 59 71
++32 40 58 45 57 61 32 40 58 45 57 61 32 40 58 34 42 77 32 40 58 45 57 61
++32 40 58 32 40 58 34 42 77 32 40 58 32 40 58 45 57 61 32 40 58 32 40 58
++43 42 50 32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58 29 34 50
++32 40 58 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 34 40 43 29 34 50
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 32 40 58 34 40 43
++29 34 50 35 47 50 29 34 50 43 42 50 29 34 50 32 40 58 35 47 50 32 40 58
++35 47 50 32 40 58 45 57 61 32 40 58 43 42 50 32 40 58 43 42 50 32 40 58
++45 57 61 32 40 58 32 40 58 45 57 61 43 42 50 45 57 61 32 40 58 43 42 50
++32 40 58 43 42 50 43 42 50 32 40 58 32 40 58 43 42 50 32 40 58 43 42 50
++32 40 58 32 40 58 35 47 50 32 40 58 43 42 50 32 40 58 29 34 50 43 42 50
++32 40 58 35 47 50 29 34 50 43 42 50 32 40 58 35 47 50 32 40 58 43 42 50
++32 40 58 45 57 61 32 40 58 45 57 61 32 40 58 45 57 61 57 43 64 45 57 61
++
++146 151 137 150 144 154 146 151 137 145 140 145 121 143 132 145 140 145 138 126 108 141 116 139
++138 126 108 119 117 138 138 126 108 138 102 108 112 123 108 138 102 108 117 99 86 138 102 108
++117 99 86 138 102 108 117 99 86 117 99 86 138 102 108 112 96 108 138 102 108 112 123 108
++138 102 108 112 123 108 138 102 108 111 119 127 112 123 108 138 102 108 112 123 108 119 117 138
++138 126 108 122 134 144 145 140 145 129 144 153 150 144 154 150 144 154 150 144 154 148 160 159
++148 160 159 166 156 164 166 174 181 166 156 164 166 174 181 166 180 164 166 174 181 166 180 164
++166 174 181 166 180 164 166 180 164 166 156 164 166 180 164 166 180 164 166 156 164 166 180 164
++166 156 164 166 180 164 166 180 164 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164
++177 169 143 166 156 164 146 162 145 146 151 137 146 151 137 145 140 145 145 140 145 138 126 108
++122 134 144 138 126 108 119 117 138 121 143 132 138 126 108 121 143 132 121 143 132 145 140 145
++121 143 132 146 151 137 146 151 137 145 140 145 146 151 137 146 151 137 146 162 145 166 156 164
++150 171 159 166 156 164 166 180 164 166 180 164 166 180 164 166 180 164 166 180 164 166 180 164
++166 180 164 189 165 168 166 180 164 166 180 164 166 156 164 166 180 164 177 169 143 148 160 159
++177 169 143 150 171 159 148 160 159 166 156 164 146 162 145 148 160 159 177 169 143 150 171 159
++166 156 164 150 171 159 166 156 164 150 171 159 166 156 164 166 180 164 166 156 164 166 180 164
++166 156 164 166 180 164 166 180 164 166 174 181 166 180 164 166 180 164 166 174 181 166 180 164
++166 180 164 166 180 164 166 174 181 189 165 168 166 180 164 189 165 168 166 180 164 188 180 202
++166 180 164 166 174 181 189 165 168 166 180 164 166 180 164 166 180 164 166 174 181 166 174 181
++150 171 159 166 156 164 148 160 159 148 160 159 146 162 145 145 140 145 145 140 145 122 134 144
++121 143 132 111 119 127 111 119 127 94 105 108 77 91 115 75 81 90 75 81 90 42 60 86
++34 42 77 34 42 77 32 40 58 32 40 58 34 42 77 32 40 58 32 40 58 32 40 58
++34 42 77 32 40 58 32 40 58 34 42 77 29 34 50 34 42 77 32 40 58 32 40 58
++34 42 77 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 57 43 64 32 40 58
++57 43 64 57 43 64 57 43 64 57 43 64 76 44 53 57 43 64 75 59 67 76 44 53
++76 44 53 88 44 51 88 44 51 88 44 51 88 44 51 88 44 51 88 44 51 88 44 51
++101 60 73 88 44 51 88 44 51 101 60 73 101 60 73 120 63 71 101 60 73 101 83 74
++101 83 74 101 83 74 101 83 74 101 83 74 88 66 70 101 83 74 101 83 74 101 83 74
++75 72 67 63 55 51 55 55 48 63 55 51 55 55 48 47 44 42 52 30 15 26 12 13
++13 4 7 13 4 7 3 3 1 13 4 7 3 3 1 13 4 7 3 3 1 13 4 7
++13 4 7 13 4 7 13 4 7 13 4 7 23 10 10 13 4 7 26 25 15 55 39 37
++99 93 84 138 126 108 168 146 127 177 171 115 168 146 127 168 146 127 201 146 124 177 169 143
++168 146 127 201 146 124 168 146 127 168 146 127 201 146 124 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 201 146 124 168 146 127 201 146 124 189 165 168 201 146 124 177 169 143
++201 146 124 177 169 143 201 146 124 168 146 127 201 146 124 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 163 117 123 168 146 127 168 102 88 168 146 127 168 102 88 168 146 127
++168 102 88 146 150 115 168 102 88 168 146 127 168 146 127 201 146 124 177 169 143 201 146 124
++168 146 127 168 146 127 163 117 123 146 150 115 138 126 108 138 126 108 168 102 88 117 127 86
++168 102 88 138 126 108 138 126 108 168 102 88 168 146 127 163 117 123 168 102 88 117 114 76
++117 99 86 120 63 71 117 112 45 120 63 71 120 63 71 117 112 45 120 63 71 117 112 45
++120 63 71 101 74 26 120 63 71 101 74 26 120 63 71 88 44 51 88 73 31 88 44 51
++76 46 20 76 46 20 59 36 42 55 39 18 53 35 37 53 35 17 32 39 24 52 30 35
++34 30 15 49 13 16 34 30 15 34 30 15 34 30 15 34 30 15 26 25 15 34 30 15
++34 30 15 33 30 30 53 35 17 33 30 30 52 30 15 33 30 30 34 30 15 34 30 15
++34 30 15 34 30 15 34 30 15 26 25 15 26 25 15 34 30 15 26 30 28 59 55 55
++94 105 108 166 156 164 185 202 202 194 199 226 201 216 228 201 216 228 201 216 228 194 199 226
++185 202 202 166 176 200 166 174 181 166 174 181 148 160 159 111 119 127 75 81 82 42 41 42
++14 16 17 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 7 10 17 59 57 61
++59 69 70 33 30 36 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 4 9 3 3 1 3 3 1 13 4 7 33 30 30 117 99 86 177 169 143
++177 169 143 177 169 143 217 168 156 177 169 143 214 214 134 189 165 168 214 214 134 217 168 156
++189 165 168 217 168 156 208 215 180 177 169 143 217 168 156 189 165 168 214 214 134 189 165 168
++214 214 134 217 168 156 217 168 156 208 215 180 222 171 182 214 214 134 222 171 182 214 214 134
++225 222 201 222 171 182 214 214 134 225 222 201 222 171 182 214 214 134 222 171 182 214 214 134
++222 171 182 222 171 182 214 214 134 222 171 182 222 171 182 214 214 134 217 168 156 222 171 182
++225 222 201 222 171 182 225 222 201 217 168 156 225 222 201 217 168 156 225 222 201 222 171 182
++222 171 182 225 222 201 222 171 182 225 222 201 222 171 182 225 222 201 222 171 182 225 222 201
++214 214 134 222 171 182 225 222 201 222 171 182 225 222 201 225 222 201 225 222 201 225 222 201
++166 156 164 95 91 100 57 43 64 32 40 58 46 59 71 34 42 77 42 60 86 34 42 77
++42 60 86 42 60 86 42 60 86 42 60 86 42 60 86 60 63 87 42 60 86 60 63 87
++60 63 87 61 78 101 60 63 87 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101
++61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101
++61 78 101 77 90 100 61 78 101 61 78 101 77 91 115 61 78 101 77 90 100 61 78 101
++77 91 115 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101
++60 63 87 60 63 87 42 60 86 60 63 87 34 42 77 60 63 87 42 60 86 42 60 86
++34 42 77 42 60 86 34 42 77 46 59 71 34 42 77 46 59 71 34 42 77 46 59 71
++34 42 77 46 59 71 34 42 77 46 59 71 34 42 77 42 60 86 46 59 71 34 42 77
++42 60 86 34 42 77 42 60 86 34 42 77 46 59 71 34 42 77 46 59 71 34 42 77
++42 60 86 34 42 77 46 59 71 34 42 77 34 42 77 46 59 71 34 42 77 34 42 77
++34 42 77 45 57 61 34 42 77 34 42 77 46 59 71 34 42 77 46 59 71 34 42 77
++46 59 71 34 42 77 46 59 71 42 60 86 46 59 71 46 59 71 46 59 71 59 69 70
++60 63 87 59 69 70 75 81 82 112 123 108 166 156 164 166 174 181 166 180 164 166 180 164
++166 156 164 166 180 164 166 174 181 166 180 164 166 174 181 166 180 164 150 144 154 146 151 137
++146 151 137 145 140 145 146 151 137 112 123 108 95 91 100 59 79 61 42 47 42 33 39 38
++25 30 29 15 22 17 12 18 20 15 22 17 25 30 29 31 35 35 42 47 42 50 61 48
++65 63 61 75 81 69 88 83 74 99 93 84 98 113 84 98 113 84 117 99 86 87 99 72
++88 83 74 75 81 69 87 99 72 88 83 74 88 83 74 81 96 56 75 77 62 64 70 48
++64 70 48 63 55 45 51 49 42 49 74 23 51 49 42 50 61 48 47 47 21 29 35 19
++23 31 15 47 47 21 75 77 62 98 113 84 146 150 115 177 169 143 177 169 143 146 151 137
++98 113 84 64 70 48 26 25 15 22 24 13 22 25 24 23 31 15 22 25 24 32 39 24
++47 49 42 75 73 58 94 105 108 121 143 132 121 143 132 111 119 127 111 119 127 112 123 108
++95 119 107 90 98 89 59 69 70 59 69 70 75 81 90 75 81 90 75 81 90 60 63 87
++60 63 87 63 59 71 46 59 71 46 59 71 57 43 64 45 57 61 32 40 58 34 42 77
++57 43 64 34 42 77 45 57 61 34 42 77 32 40 58 34 42 77 34 42 77 45 57 61
++34 42 77 34 42 77 46 59 71 42 60 86 46 59 71 46 59 71 46 59 71 42 60 86
++46 59 71 60 63 87 46 59 71 42 60 86 46 59 71 46 59 71 46 59 71 46 59 71
++46 59 71 46 59 71 34 42 77 45 57 61 34 42 77 45 57 61 34 42 77 45 57 61
++34 42 77 34 42 77 45 57 61 34 42 77 32 40 58 34 42 77 45 57 61 34 42 77
++32 40 58 34 42 77 32 40 58 34 42 77 45 57 61 32 40 58 34 42 77 45 57 61
++32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58
++32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 29 34 50 29 34 50 29 34 50
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 32 40 58
++29 34 50 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58
++32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 45 57 61 32 40 58 45 57 61
++32 40 58 45 57 61 43 42 50 32 40 58 45 57 61 32 40 58 45 57 61 32 40 58
++45 57 61 32 40 58 45 57 61 32 40 58 45 57 61 32 40 58 35 47 50 32 40 58
++35 47 50 35 47 50 43 42 50 32 40 58 32 40 58 34 40 43 32 40 58 34 40 43
++29 34 50 32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 43 42 50 32 40 58
++32 40 58 43 42 50 32 40 58 45 57 61 32 40 58 46 59 71 32 40 58 45 57 61
++
++145 140 145 146 151 137 145 140 145 146 151 137 145 140 145 138 126 108 121 143 132 138 126 108
++111 119 127 138 126 108 112 123 108 138 102 108 117 99 86 117 99 86 117 99 86 117 99 86
++117 99 86 117 99 86 117 99 86 117 99 86 117 99 86 117 99 86 117 99 86 117 99 86
++117 99 86 117 99 86 99 93 84 112 96 108 117 99 86 94 105 108 112 96 108 112 123 108
++138 126 108 119 117 138 138 126 108 122 134 144 145 140 145 145 140 145 150 144 154 148 160 159
++166 156 164 166 156 164 166 156 164 166 180 164 166 180 164 166 174 181 189 165 168 166 180 164
++166 180 164 189 165 168 166 180 164 166 156 164 166 180 164 166 156 164 166 180 164 166 180 164
++166 180 164 166 156 164 166 180 164 166 180 164 166 180 164 166 180 164 177 169 143 148 160 159
++148 160 159 146 162 145 150 144 154 146 151 137 146 151 137 121 143 132 121 143 132 121 143 132
++138 126 108 122 134 144 138 126 108 121 143 132 119 117 138 121 143 132 138 126 108 121 143 132
++145 140 145 145 140 145 146 151 137 146 151 137 148 160 159 166 156 164 166 156 164 166 180 164
++166 180 164 166 180 164 166 180 164 189 165 168 166 180 164 189 165 168 166 180 164 166 174 181
++166 180 164 166 180 164 166 156 164 166 180 164 166 180 164 166 156 164 166 180 164 166 156 164
++150 171 159 166 156 164 150 171 159 177 169 143 148 160 159 166 156 164 148 160 159 166 156 164
++150 171 159 166 156 164 150 171 159 166 156 164 150 171 159 166 156 164 166 180 164 166 180 164
++166 156 164 166 174 181 166 180 164 166 156 164 166 180 164 166 156 164 166 180 164 189 165 168
++166 180 164 166 156 164 166 180 164 166 180 164 166 174 181 166 180 164 166 180 164 166 180 164
++189 165 168 185 202 202 166 180 164 166 174 181 189 165 168 166 180 164 166 174 181 166 180 164
++166 156 164 150 171 159 148 160 159 148 160 159 150 144 154 145 140 145 126 147 144 121 143 132
++119 117 138 111 119 127 111 119 127 95 95 116 77 90 100 77 90 100 60 63 87 60 63 87
++46 59 71 34 42 77 32 40 58 29 34 50 32 40 58 32 40 58 34 42 77 32 40 58
++32 40 58 34 42 77 32 40 58 34 42 77 32 40 58 34 42 77 29 34 50 34 42 77
++24 30 43 34 42 77 32 40 58 34 42 77 29 34 50 32 40 58 32 40 58 43 42 50
++57 43 64 57 43 51 57 43 64 57 43 64 76 44 53 76 44 53 76 44 53 88 44 51
++88 44 51 88 44 51 88 44 51 88 44 51 120 63 71 102 33 26 120 63 71 122 49 24
++102 33 26 120 63 71 122 49 24 122 49 24 120 63 71 122 49 24 120 63 71 122 49 24
++120 63 71 88 44 51 88 44 51 88 44 51 88 44 51 88 44 51 88 73 31 88 44 51
++75 56 53 76 46 20 55 39 37 55 39 18 55 39 18 55 39 18 53 35 17 52 30 15
++49 13 16 26 12 13 23 10 10 23 10 10 23 10 10 13 4 7 13 4 7 3 3 1
++13 4 7 3 3 1 13 4 7 13 4 7 13 4 7 13 4 7 15 17 7 34 30 15
++75 56 53 117 99 86 138 126 108 138 126 108 168 146 127 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 163 117 123 146 150 115 163 117 123 163 117 123 168 146 127
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 163 117 123 163 117 123 168 102 88 163 117 123 168 102 88
++168 102 88 168 102 88 168 102 88 168 102 88 138 126 108 168 102 88 157 148 53 163 117 123
++168 102 88 138 126 108 168 146 127 168 102 88 177 171 115 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 168 102 88 138 126 108 168 102 88 117 114 76 157 148 53 138 126 108
++168 102 88 138 126 108 168 102 88 177 171 115 168 102 88 138 126 108 168 102 88 117 114 76
++176 103 41 120 63 71 101 74 26 120 63 71 101 74 26 120 63 71 101 74 26 120 63 71
++117 112 45 120 63 71 101 74 26 120 63 71 88 73 31 88 73 31 88 44 51 75 56 53
++76 46 20 59 36 42 55 39 18 55 39 18 52 30 35 53 35 17 52 30 35 34 30 15
++34 30 15 34 30 15 34 30 15 34 30 15 34 30 15 34 30 15 26 25 15 34 30 15
++34 30 15 52 30 35 32 39 24 52 30 15 33 30 30 34 30 15 33 30 30 34 30 15
++33 30 30 34 30 15 34 30 15 26 25 15 26 25 15 33 30 30 42 41 42 95 91 100
++148 160 159 166 174 181 188 180 202 194 199 226 194 199 226 194 199 226 194 199 226 188 180 202
++166 176 200 166 174 181 150 147 171 111 122 142 95 91 100 75 81 90 75 81 82 75 59 67
++48 50 48 23 20 24 3 4 9 3 3 1 3 3 1 3 3 1 3 4 9 26 30 28
++42 41 42 36 35 37 7 12 13 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 26 25 15 88 73 62 138 126 108 177 169 143
++168 146 127 197 171 123 177 169 143 197 171 123 189 165 168 189 165 168 217 168 156 208 215 180
++177 169 143 208 215 180 177 169 143 217 168 156 208 215 180 217 168 156 189 165 168 208 215 180
++189 165 168 217 168 156 214 214 134 217 168 156 208 215 180 222 171 182 208 215 180 222 171 182
++208 215 180 222 171 182 225 222 201 217 168 156 225 222 201 222 171 182 208 215 180 222 171 182
++208 215 180 217 168 156 208 215 180 217 168 156 208 215 180 222 171 182 208 215 180 214 214 134
++222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 208 215 180 217 168 156 225 222 201
++214 214 134 222 171 182 225 222 201 227 171 124 225 222 201 214 214 134 225 222 201 222 171 182
++225 222 201 225 222 201 214 214 134 225 222 201 217 168 156 225 222 201 225 222 201 225 222 201
++225 222 201 150 144 154 88 69 84 57 43 64 34 42 77 46 59 71 42 60 86 42 60 86
++42 60 86 42 60 86 60 63 87 42 60 86 61 78 101 42 60 86 61 78 101 61 78 101
++61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 77 91 115
++77 91 115 61 78 101 77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 77 91 115
++77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 77 91 115
++77 90 100 77 91 115 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101
++60 63 87 61 78 101 60 63 87 42 60 86 42 60 86 60 63 87 42 60 86 60 63 87
++34 42 77 46 59 71 34 42 77 42 60 86 34 42 77 34 42 77 34 42 77 34 42 77
++42 60 86 34 42 77 42 60 86 34 42 77 42 60 86 34 42 77 42 60 86 46 59 71
++34 42 77 46 59 71 34 42 77 42 60 86 42 60 86 34 42 77 42 60 86 34 42 77
++46 59 71 34 42 77 34 42 77 46 59 71 34 42 77 34 42 77 46 59 71 34 42 77
++46 59 71 34 42 77 34 42 77 46 59 71 34 42 77 42 60 86 46 59 71 42 60 86
++42 60 86 42 60 86 60 63 87 42 60 86 60 63 87 60 63 87 60 63 87 61 78 101
++60 63 87 46 59 71 75 81 82 112 123 108 150 171 159 189 165 168 166 180 164 166 180 164
++166 180 164 166 180 164 166 180 164 177 169 143 146 162 145 146 151 137 145 140 145 117 142 111
++111 119 127 90 98 89 75 81 82 59 57 61 42 41 42 23 30 35 22 25 24 22 25 24
++25 30 29 28 35 38 35 46 43 43 55 48 64 70 48 75 73 58 88 83 74 98 113 84
++98 113 84 117 114 76 98 113 84 98 113 84 117 114 76 98 113 84 87 99 72 81 96 56
++88 73 62 81 96 56 88 83 74 81 96 56 75 73 58 75 73 58 64 70 48 51 49 42
++47 47 21 47 47 21 47 49 42 51 49 42 51 49 42 47 47 21 32 39 24 22 24 13
++26 25 15 36 35 37 51 49 42 75 73 58 98 113 84 146 151 137 166 180 164 177 169 143
++112 123 108 51 49 42 15 17 7 15 17 7 15 17 7 22 25 24 22 25 24 29 35 19
++50 61 48 90 98 89 112 123 108 145 140 145 122 134 144 121 143 132 111 119 127 111 119 127
++94 105 108 60 81 83 60 82 70 60 81 83 77 90 100 77 90 100 75 81 90 60 81 83
++60 63 87 46 59 71 42 60 86 46 59 71 34 42 77 32 40 58 45 57 61 32 40 58
++32 40 58 45 57 61 32 40 58 45 57 61 34 42 77 45 57 61 34 42 77 34 42 77
++46 59 71 46 59 71 34 42 77 46 59 71 34 42 77 46 59 71 34 42 77 46 59 71
++42 60 86 34 42 77 46 59 71 46 59 71 34 42 77 46 59 71 34 42 77 34 42 77
++34 42 77 34 42 77 45 57 61 34 42 77 32 40 58 34 42 77 45 57 61 34 42 77
++32 40 58 45 57 61 34 42 77 45 57 61 34 42 77 46 59 71 34 42 77 46 59 71
++46 59 71 34 42 77 45 57 61 34 42 77 46 59 71 34 42 77 45 57 61 34 42 77
++45 57 61 34 42 77 45 57 61 45 57 61 45 57 61 32 40 58 45 57 61 32 40 58
++32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58 29 34 50
++34 40 43 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 32 40 58 29 34 50
++29 34 50 29 34 50 32 40 58 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50
++32 40 58 29 34 50 32 40 58 29 34 50 32 40 58 29 34 50 32 40 58 32 40 58
++34 40 43 32 40 58 29 34 50 32 40 58 43 42 50 32 40 58 32 40 58 32 40 58
++43 42 50 32 40 58 35 47 50 32 40 58 35 47 50 32 40 58 35 47 50 32 40 58
++45 57 61 32 40 58 45 57 61 32 40 58 43 42 50 45 57 61 32 40 58 45 57 61
++32 40 58 32 40 58 32 40 58 32 40 58 43 42 50 32 40 58 32 40 58 43 42 50
++32 40 58 32 40 58 32 40 58 35 47 50 29 34 50 35 47 50 29 34 50 35 47 50
++32 40 58 32 40 58 43 42 50 32 40 58 35 47 50 32 40 58 32 40 58 35 47 50
++32 40 58 43 42 50 32 40 58 45 57 61 57 43 64 45 57 61 34 42 77 45 57 61
++
++146 151 137 145 140 145 146 151 137 146 151 137 141 116 139 121 143 132 122 134 144 138 126 108
++112 123 108 138 126 108 117 99 86 112 123 108 117 99 86 117 99 86 117 99 86 117 99 86
++101 83 74 101 83 74 101 83 74 101 83 74 117 99 86 101 83 74 117 99 86 99 93 84
++101 83 74 99 93 84 99 93 84 99 93 84 99 93 84 95 91 100 117 99 86 112 96 108
++112 96 108 112 123 108 111 119 127 141 116 139 122 134 144 122 134 144 145 140 145 150 144 154
++148 160 159 150 171 159 166 156 164 166 156 164 166 174 181 166 156 164 166 180 164 166 174 181
++166 180 164 166 180 164 166 156 164 166 180 164 166 180 164 166 180 164 166 156 164 166 180 164
++189 165 168 166 180 164 177 169 143 166 156 164 166 180 164 166 156 164 150 171 159 166 156 164
++177 169 143 166 156 164 146 162 145 146 151 137 145 140 145 145 140 145 146 150 115 119 117 138
++138 126 108 121 143 132 119 117 138 138 126 108 121 143 132 138 126 108 122 134 144 138 126 108
++121 143 132 121 143 132 146 151 137 145 140 145 146 162 145 146 162 145 166 156 164 150 171 159
++166 156 164 166 156 164 166 180 164 166 174 181 166 180 164 166 174 181 166 180 164 166 156 164
++166 180 164 166 156 164 166 180 164 166 156 164 166 156 164 166 180 164 150 171 159 166 156 164
++150 171 159 166 156 164 148 160 159 166 156 164 150 171 159 148 160 159 177 169 143 150 171 159
++166 156 164 150 171 159 177 169 143 150 171 159 166 180 164 166 156 164 166 180 164 166 156 164
++166 180 164 166 180 164 189 165 168 166 180 164 166 174 181 166 180 164 166 180 164 166 180 164
++166 174 181 166 180 164 166 180 164 189 165 168 166 180 164 189 165 168 166 180 164 189 165 168
++166 180 164 166 180 164 166 180 164 166 180 164 166 180 164 166 174 181 166 180 164 166 156 164
++166 180 164 166 156 164 166 156 164 148 160 159 148 160 159 129 144 153 145 140 145 122 134 144
++121 143 132 111 119 127 95 108 128 94 105 108 95 95 116 61 78 101 75 81 90 42 60 86
++34 42 77 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77
++32 40 58 34 42 77 24 30 43 34 42 77 29 34 50 34 42 77 32 40 58 34 42 77
++24 30 43 34 42 77 29 34 50 32 40 58 32 40 58 57 43 64 32 40 58 57 43 64
++43 42 50 57 43 64 57 43 64 57 43 64 76 44 53 57 43 64 76 44 53 88 44 51
++88 44 51 101 60 73 88 44 51 101 60 73 102 33 26 101 60 73 122 49 24 88 44 51
++120 63 71 122 49 24 120 63 71 122 49 24 120 63 71 120 63 71 122 49 24 120 63 71
++122 49 24 120 63 71 101 74 26 120 63 71 101 74 26 88 73 62 88 44 51 88 73 31
++75 56 53 75 56 53 76 46 20 60 49 42 60 49 42 76 46 20 60 49 42 76 46 20
++88 44 51 59 36 42 76 46 20 49 13 16 23 10 10 23 10 10 13 4 7 13 4 7
++13 4 7 3 3 1 13 4 7 3 3 1 3 3 1 3 3 1 3 3 1 23 10 10
++34 30 15 76 46 20 101 83 74 117 114 76 138 126 108 117 127 86 168 102 88 117 127 86
++168 102 88 138 126 108 168 102 88 138 126 108 168 102 88 117 114 76 168 102 88 138 126 108
++168 102 88 138 126 108 168 102 88 138 126 108 168 146 127 168 102 88 168 146 127 168 102 88
++163 117 123 163 117 123 168 102 88 138 126 108 168 102 88 117 114 76 168 102 88 117 127 86
++168 102 88 117 127 86 168 102 88 138 126 108 157 148 53 168 102 88 138 126 108 168 102 88
++138 126 108 168 102 88 168 102 88 138 126 108 163 117 123 168 146 127 168 146 127 168 146 127
++168 102 88 138 126 108 138 126 108 168 102 88 117 114 76 117 114 76 138 126 108 168 102 88
++168 146 127 157 148 53 146 150 115 168 102 88 138 126 108 168 102 88 117 114 76 168 102 88
++117 99 86 101 74 26 120 63 71 101 74 26 101 74 26 120 63 71 101 74 26 120 63 71
++101 74 26 120 63 71 101 74 26 88 44 51 88 73 31 88 44 51 88 73 31 88 44 51
++76 46 20 55 39 37 76 46 20 53 35 37 53 35 17 53 35 17 33 30 30 53 35 17
++52 30 15 33 30 30 49 13 16 34 30 15 26 25 15 34 30 15 52 30 15 33 30 30
++53 35 17 52 30 35 53 35 17 33 30 30 34 30 15 34 30 15 34 30 15 34 30 15
++34 30 15 34 30 15 34 30 15 34 30 15 26 25 15 42 38 42 65 63 61 111 119 127
++150 147 171 166 174 181 166 176 200 166 176 200 166 176 200 188 180 202 188 180 202 166 176 200
++150 168 183 129 144 153 95 108 128 75 81 82 60 81 83 75 64 82 75 64 82 75 81 82
++75 81 76 65 63 61 36 35 37 7 12 13 3 3 1 3 3 1 3 3 1 7 12 13
++31 35 35 48 44 48 14 16 17 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 55 39 37 117 99 86 146 150 115 168 146 127
++168 146 127 168 146 127 177 169 143 177 169 143 197 171 123 177 169 143 217 168 156 177 169 143
++208 215 180 217 168 156 217 168 156 208 215 180 177 169 143 217 168 156 208 215 180 217 168 156
++214 214 134 189 165 168 208 215 180 217 168 156 222 171 182 214 214 134 222 171 182 214 214 134
++225 222 201 217 168 156 225 222 201 214 214 134 222 171 182 214 214 134 217 168 156 208 215 180
++217 168 156 208 215 180 217 168 156 222 171 182 214 214 134 222 171 182 217 168 156 225 222 201
++222 171 182 225 222 201 222 171 182 225 222 201 222 171 182 225 222 201 214 214 134 222 171 182
++222 171 182 225 222 201 214 214 134 222 171 182 225 222 201 222 171 182 222 171 182 225 222 201
++214 214 134 222 171 182 225 222 201 222 171 182 225 222 201 222 171 182 225 222 201 222 171 182
++225 222 201 222 171 182 122 134 144 60 63 87 32 40 58 34 42 77 42 60 86 42 60 86
++42 60 86 42 60 86 60 63 87 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101
++61 78 101 77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 77 91 115
++77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 95 95 116 77 91 115
++77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 77 91 115
++77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 61 78 101 61 78 101
++61 78 101 61 78 101 61 78 101 61 78 101 60 63 87 42 60 86 60 63 87 42 60 86
++42 60 86 42 60 86 34 42 77 46 59 71 34 42 77 46 59 71 34 42 77 46 59 71
++34 42 77 46 59 71 34 42 77 46 59 71 34 42 77 46 59 71 34 42 77 42 60 86
++34 42 77 34 42 77 42 60 86 34 42 77 46 59 71 34 42 77 46 59 71 34 42 77
++42 60 86 34 42 77 42 60 86 34 42 77 46 59 71 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 46 59 71 42 60 86 42 60 86 42 60 86 42 60 86 42 60 86
++60 63 87 60 63 87 60 63 87 61 78 101 60 63 87 61 78 101 60 81 83 61 78 101
++60 81 83 60 81 83 78 98 90 121 143 132 146 151 137 150 171 159 177 169 143 148 160 159
++177 169 143 146 151 137 146 151 137 146 151 137 121 143 132 138 126 108 94 105 108 88 83 88
++65 63 61 48 50 48 31 35 35 22 25 24 25 30 29 31 35 35 43 55 48 45 57 61
++59 69 70 75 81 76 75 99 72 90 98 89 90 98 89 98 113 84 112 123 108 117 99 86
++112 123 108 98 113 84 117 114 76 99 93 84 98 113 84 117 99 86 87 99 72 88 83 74
++81 96 56 88 73 62 87 99 72 88 83 74 64 70 48 64 70 48 51 49 42 49 74 23
++47 49 42 49 74 23 50 61 48 64 70 48 50 61 48 32 39 24 26 25 15 23 31 15
++26 25 15 23 31 15 29 35 19 63 55 45 98 113 84 177 169 143 177 169 143 146 162 145
++98 113 84 47 47 21 6 15 6 15 17 7 15 17 7 22 24 13 29 35 19 26 30 28
++50 61 48 99 93 84 121 143 132 126 147 144 119 117 138 121 143 132 111 119 127 95 119 107
++78 98 90 75 81 82 78 98 90 78 98 90 77 90 100 77 90 100 75 81 90 60 63 87
++60 63 87 60 63 87 46 59 71 45 57 61 34 42 77 45 57 61 34 42 77 45 57 61
++34 42 77 32 40 58 32 40 58 32 40 58 34 42 77 32 40 58 46 59 71 32 40 58
++34 42 77 45 57 61 34 42 77 46 59 71 34 42 77 46 59 71 34 42 77 46 59 71
++34 42 77 46 59 71 42 60 86 34 42 77 46 59 71 46 59 71 34 42 77 46 59 71
++46 59 71 32 40 58 34 42 77 45 57 61 34 42 77 57 43 64 34 42 77 32 40 58
++46 59 71 32 40 58 34 42 77 46 59 71 34 42 77 46 59 71 46 59 71 34 42 77
++46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71
++45 57 61 34 42 77 45 57 61 34 42 77 45 57 61 34 42 77 45 57 61 34 42 77
++45 57 61 32 40 58 35 47 50 32 40 58 32 40 58 32 40 58 29 34 50 35 47 50
++29 34 50 29 34 50 29 34 50 32 40 58 29 34 50 29 34 50 29 34 50 32 40 58
++29 34 50 32 40 58 29 34 50 29 34 50 32 40 58 29 34 50 29 34 50 29 34 50
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 32 40 58 29 34 50
++32 40 58 29 34 50 32 40 58 29 34 50 32 40 58 34 40 43 32 40 58 32 40 58
++32 40 58 32 40 58 35 47 50 32 40 58 32 40 58 43 42 50 32 40 58 43 42 50
++32 40 58 43 42 50 32 40 58 45 57 61 32 40 58 45 57 61 32 40 58 45 57 61
++32 40 58 46 59 71 32 40 58 45 57 61 32 40 58 32 40 58 43 42 50 32 40 58
++35 47 50 43 42 50 34 40 43 32 40 58 43 42 50 29 34 50 35 47 50 34 40 43
++29 34 50 29 34 50 32 40 58 29 34 50 29 34 50 35 47 50 32 40 58 32 40 58
++45 57 61 32 40 58 45 57 61 35 47 50 34 42 77 45 57 61 32 40 58 45 57 61
++
++145 140 145 146 151 137 145 140 145 121 143 132 138 126 108 121 143 132 138 126 108 111 119 127
++138 126 108 112 96 108 112 123 108 117 99 86 117 99 86 117 99 86 101 83 74 101 83 74
++117 112 45 120 63 71 101 83 74 120 63 71 101 74 26 101 83 74 120 63 71 88 73 62
++88 73 62 88 73 62 88 73 62 88 73 62 88 83 74 88 83 74 88 83 74 99 93 84
++117 99 86 112 96 108 112 123 108 112 123 108 138 126 108 119 117 138 146 151 137 145 140 145
++150 144 154 150 144 154 166 156 164 150 171 159 166 156 164 166 180 164 166 156 164 166 180 164
++166 156 164 166 180 164 166 180 164 189 165 168 166 180 164 166 156 164 166 180 164 166 180 164
++166 156 164 166 180 164 166 180 164 166 180 164 166 156 164 166 180 164 177 169 143 166 156 164
++150 171 159 146 162 145 150 144 154 146 151 137 146 151 137 121 143 132 141 116 139 121 143 132
++138 126 108 119 117 138 138 126 108 121 143 132 138 126 108 122 134 144 121 143 132 141 116 139
++146 151 137 145 140 145 146 151 137 145 140 145 146 162 145 166 156 164 146 162 145 166 156 164
++166 180 164 150 171 159 166 180 164 189 165 168 166 180 164 166 180 164 166 156 164 166 180 164
++166 180 164 166 156 164 166 180 164 150 171 159 166 180 164 166 156 164 150 171 159 166 156 164
++150 171 159 177 169 143 148 160 159 150 171 159 166 156 164 146 162 145 166 156 164 146 162 145
++166 156 164 146 162 145 166 156 164 166 156 164 150 171 159 166 156 164 150 171 159 166 180 164
++166 156 164 166 180 164 166 180 164 166 156 164 166 180 164 166 156 164 166 156 164 166 180 164
++166 156 164 166 180 164 166 174 181 166 180 164 166 180 164 166 174 181 166 180 164 166 174 181
++166 180 164 189 165 168 166 174 181 189 165 168 166 180 164 166 180 164 166 174 181 166 180 164
++166 156 164 150 171 159 148 160 159 148 160 159 150 144 154 146 162 145 126 147 144 122 134 144
++119 117 138 111 119 127 111 119 127 94 105 108 77 91 115 75 81 90 60 63 87 60 63 87
++46 59 71 34 42 77 32 40 58 29 34 50 34 42 77 24 30 43 34 42 77 24 30 43
++34 42 77 24 30 43 34 42 77 29 34 50 34 42 77 24 30 43 34 42 77 24 30 43
++34 42 77 24 30 43 34 42 77 29 34 50 32 40 58 32 40 58 57 43 64 52 30 35
++57 43 64 59 36 42 76 44 53 76 44 53 76 44 53 88 44 51 88 44 51 88 44 51
++88 44 51 88 44 51 88 44 51 122 49 24 120 63 71 102 33 26 120 63 71 122 49 24
++120 63 71 122 49 24 120 63 71 122 49 24 120 63 71 161 55 23 120 63 71 122 49 24
++120 63 71 161 55 23 120 63 71 122 49 24 167 63 71 122 49 24 122 49 24 120 63 71
++122 49 24 122 49 24 120 63 71 122 49 24 122 49 24 122 49 24 120 63 71 122 49 24
++120 63 71 161 55 23 122 49 24 122 49 24 102 33 26 88 30 18 76 18 19 76 18 19
++76 18 19 76 18 19 76 18 19 76 18 19 49 13 16 49 13 16 49 13 16 23 10 10
++23 10 10 49 13 16 55 39 18 88 73 31 101 83 74 117 112 45 101 83 74 101 83 74
++98 106 55 101 83 74 98 106 55 120 63 71 98 106 55 117 99 86 101 83 74 117 114 76
++117 114 76 117 99 86 138 126 108 168 102 88 117 114 76 138 126 108 117 114 76 138 126 108
++117 114 76 117 114 76 117 114 76 117 99 86 117 114 76 120 63 71 117 112 45 117 99 86
++117 99 86 117 114 76 117 99 86 168 102 88 117 99 86 138 102 108 117 114 76 168 102 88
++117 114 76 168 102 88 138 126 108 168 102 88 146 150 115 168 102 88 163 117 123 138 126 108
++138 126 108 157 148 53 138 102 108 117 114 76 117 114 76 168 102 88 168 102 88 146 150 115
++163 117 123 168 102 88 146 150 115 168 102 88 157 148 53 168 102 88 117 114 76 168 102 88
++117 112 45 120 63 71 101 74 26 120 63 71 101 74 26 101 74 26 101 60 73 101 74 26
++101 74 26 88 44 51 101 74 26 88 73 62 101 74 26 88 44 51 76 46 20 76 46 20
++60 49 42 55 39 18 55 39 18 53 35 17 52 30 15 33 30 30 34 30 15 34 30 15
++34 30 15 34 30 15 34 30 15 34 30 15 49 13 16 32 39 24 53 35 37 55 39 37
++60 49 42 47 47 21 32 39 24 53 35 17 33 30 30 34 30 15 34 30 15 26 25 15
++34 30 15 34 30 15 34 30 15 22 25 24 36 35 37 65 63 61 95 91 100 122 134 144
++148 160 159 166 174 181 166 176 200 166 174 181 166 176 200 150 168 183 150 168 183 129 144 153
++95 108 128 77 90 100 60 63 87 46 59 71 46 59 71 59 69 70 59 69 70 75 64 82
++75 81 82 75 81 82 75 81 82 45 57 61 26 24 32 3 4 9 3 3 1 3 3 1
++23 20 24 43 42 50 31 35 35 7 12 13 3 3 1 3 3 1 3 3 1 3 4 9
++3 3 1 3 3 1 3 3 1 15 17 7 60 49 42 117 99 86 138 126 108 138 126 108
++146 150 115 168 146 127 197 171 123 197 171 123 177 169 143 217 168 156 177 169 143 214 214 134
++189 165 168 214 214 134 189 165 168 214 214 134 217 168 156 208 215 180 217 168 156 189 165 168
++208 215 180 217 168 156 217 168 156 208 215 180 217 168 156 208 215 180 222 171 182 208 215 180
++217 168 156 208 215 180 222 171 182 225 222 201 222 171 182 225 222 201 222 171 182 214 214 134
++222 171 182 208 215 180 217 168 156 208 215 180 222 171 182 214 214 134 222 171 182 214 214 134
++222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 208 215 180 222 171 182 225 222 201
++214 214 134 222 171 182 222 171 182 225 222 201 227 171 124 225 222 201 225 222 201 217 168 156
++225 222 201 222 171 182 214 214 134 225 222 201 214 214 134 222 171 182 225 222 201 222 171 182
++225 222 201 225 222 201 222 171 182 112 123 108 63 59 71 46 59 71 46 59 71 60 63 87
++60 63 87 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 77 91 115 77 91 115
++77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 95 108 128 77 91 115 95 108 128
++95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128
++95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 77 91 115 95 108 128
++77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 77 91 115
++77 91 115 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 42 60 86 60 63 87
++42 60 86 42 60 86 42 60 86 42 60 86 42 60 86 34 42 77 42 60 86 34 42 77
++34 42 77 34 42 77 42 60 86 34 42 77 42 60 86 34 42 77 46 59 71 34 42 77
++34 42 77 46 59 71 34 42 77 42 60 86 34 42 77 46 59 71 34 42 77 42 60 86
++34 42 77 46 59 71 34 42 77 34 42 77 34 42 77 46 59 71 34 42 77 46 59 71
++42 60 86 42 60 86 42 60 86 42 60 86 42 60 86 60 63 87 60 63 87 61 78 101
++61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 77 90 100 61 78 101
++77 90 100 75 81 90 95 95 116 112 123 108 146 151 137 146 162 145 146 151 137 146 151 137
++121 143 132 138 126 108 112 123 108 88 83 88 88 83 74 65 63 61 55 55 48 47 49 42
++32 39 24 42 47 42 47 47 21 55 55 48 75 73 58 87 99 72 99 93 84 117 127 86
++112 123 108 117 127 86 117 99 86 98 113 84 117 114 76 112 123 108 117 127 86 117 114 76
++117 127 86 117 99 86 117 127 86 98 113 84 117 114 76 98 113 84 98 106 55 87 99 72
++81 96 56 87 99 72 75 77 62 66 86 47 64 70 48 63 55 45 49 74 23 51 49 42
++64 70 48 64 70 48 55 55 48 51 49 42 32 39 24 29 35 19 23 31 15 22 25 24
++26 25 15 15 17 7 15 17 7 32 39 24 87 99 72 146 151 137 150 171 159 146 151 137
++88 83 74 53 63 61 43 55 48 48 50 48 25 30 29 15 22 17 22 25 24 23 31 15
++50 61 48 90 98 89 111 119 127 145 140 145 121 143 132 122 134 144 111 119 127 98 121 131
++94 105 108 77 91 115 94 105 108 94 105 108 77 91 115 77 90 100 77 90 100 61 78 101
++60 63 87 60 63 87 42 60 86 46 59 71 34 42 77 45 57 61 34 42 77 32 40 58
++32 40 58 32 40 58 46 59 71 32 40 58 34 42 77 32 40 58 34 42 77 32 40 58
++46 59 71 34 42 77 32 40 58 34 42 77 32 40 58 34 42 77 46 59 71 34 42 77
++46 59 71 34 42 77 34 42 77 57 43 64 34 42 77 34 42 77 45 57 61 32 40 58
++34 42 77 32 40 58 34 42 77 32 40 58 34 42 77 45 57 61 32 40 58 46 59 71
++34 42 77 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 42 60 86 46 59 71
++42 60 86 42 60 86 46 59 71 42 60 86 46 59 71 46 59 71 46 59 71 46 59 71
++46 59 71 46 59 71 46 59 71 46 59 71 34 42 77 45 57 61 34 42 77 45 57 61
++34 42 77 45 57 61 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58
++32 40 58 32 40 58 29 34 50 29 34 50 32 40 58 29 34 50 29 34 50 29 34 50
++32 40 58 29 34 50 32 40 58 32 40 58 29 34 50 29 34 50 32 40 58 32 40 58
++29 34 50 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58
++32 40 58 29 34 50 32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58
++32 40 58 32 40 58 32 40 58 32 40 58 35 47 50 32 40 58 32 40 58 45 57 61
++32 40 58 46 59 71 45 57 61 32 40 58 46 59 71 32 40 58 46 59 71 32 40 58
++45 57 61 32 40 58 45 57 61 34 42 77 43 42 50 45 57 61 32 40 58 32 40 58
++32 40 58 32 40 58 43 42 50 32 40 58 32 40 58 32 40 58 29 34 50 29 34 50
++32 40 58 29 34 50 29 34 50 32 40 58 32 40 58 32 40 58 32 40 58 43 42 50
++32 40 58 45 57 61 34 42 77 45 57 61 45 57 61 57 43 64 45 57 61 34 42 77
++
++121 143 132 121 143 132 146 151 137 122 134 144 138 126 108 119 117 138 138 126 108 112 123 108
++112 123 108 112 123 108 117 99 86 117 99 86 99 93 84 117 99 86 120 63 71 117 112 45
++120 63 71 101 83 74 101 74 26 120 63 71 117 112 45 120 63 71 88 73 62 101 74 26
++88 73 62 88 44 51 88 73 62 75 56 53 88 73 62 75 63 62 88 73 62 88 73 62
++88 83 74 88 83 74 99 93 84 112 96 108 112 96 108 112 123 108 138 126 108 145 140 145
++145 140 145 146 162 145 150 144 154 148 160 159 166 156 164 166 156 164 166 180 164 166 156 164
++166 180 164 166 156 164 166 180 164 166 180 164 166 156 164 166 180 164 166 180 164 166 156 164
++166 180 164 166 156 164 166 180 164 189 165 168 166 180 164 166 156 164 166 180 164 150 171 159
++166 156 164 166 156 164 148 160 159 146 151 137 145 140 145 145 140 145 121 143 132 138 126 108
++121 143 132 121 143 132 138 126 108 121 143 132 119 117 138 138 126 108 121 143 132 138 126 108
++145 140 145 121 143 132 145 140 145 146 151 137 150 144 154 146 162 145 166 156 164 150 171 159
++166 156 164 166 180 164 166 156 164 166 180 164 166 180 164 166 156 164 166 180 164 166 180 164
++166 180 164 166 156 164 166 180 164 166 156 164 150 171 159 166 156 164 166 180 164 166 156 164
++150 171 159 166 156 164 148 160 159 177 169 143 150 171 159 166 156 164 146 162 145 166 156 164
++150 171 159 166 156 164 150 171 159 177 169 143 150 171 159 166 156 164 166 180 164 166 156 164
++166 180 164 166 156 164 166 180 164 166 180 164 166 156 164 166 180 164 166 180 164 166 156 164
++166 180 164 189 165 168 166 180 164 166 180 164 189 165 168 166 180 164 166 180 164 189 165 168
++166 180 164 166 174 181 166 180 164 166 180 164 166 174 181 166 180 164 166 156 164 166 180 164
++166 156 164 150 171 159 166 156 164 166 156 164 148 160 159 145 140 145 145 140 145 121 143 132
++121 143 132 111 119 127 111 119 127 94 105 108 77 91 115 77 90 100 60 63 87 42 60 86
++34 42 77 34 42 77 32 40 58 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77
++24 30 43 34 42 77 24 30 43 34 42 77 29 34 50 34 42 77 29 34 50 34 42 77
++24 30 43 34 42 77 32 40 58 32 40 58 32 40 58 57 43 64 37 35 43 57 43 64
++57 43 64 57 43 64 57 43 64 76 44 53 76 44 53 88 44 51 88 44 51 88 44 51
++88 44 51 120 63 71 102 33 26 120 63 71 102 33 26 120 63 71 102 33 26 167 63 71
++102 33 26 167 63 71 122 49 24 167 63 71 161 55 23 120 63 71 161 55 23 161 55 23
++167 63 71 161 55 23 161 55 23 167 63 71 161 55 23 161 55 23 167 63 71 161 55 23
++167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23
++167 63 71 161 55 23 167 63 71 167 63 71 161 55 23 122 49 24 161 55 23 122 49 24
++122 49 24 122 49 24 122 49 24 122 49 24 122 49 24 88 30 18 76 18 19 49 13 16
++49 13 16 23 10 10 23 10 10 26 12 13 52 30 15 55 39 37 60 49 42 76 46 20
++55 39 18 76 46 20 76 46 20 75 73 36 75 56 53 76 46 20 88 73 31 101 74 26
++88 73 62 120 63 71 117 112 45 117 99 86 117 99 86 117 99 86 117 99 86 120 63 71
++117 112 45 120 63 71 120 63 71 101 74 26 120 63 71 98 106 55 120 63 71 101 74 26
++120 63 71 117 112 45 120 63 71 117 99 86 117 112 45 168 102 88 117 112 45 117 99 86
++117 114 76 117 114 76 168 102 88 146 150 115 168 102 88 138 126 108 138 126 108 168 102 88
++117 114 76 117 99 86 101 83 74 117 112 45 168 102 88 138 126 108 146 150 115 168 102 88
++146 150 115 168 102 88 138 126 108 168 102 88 117 114 76 168 102 88 117 114 76 168 102 88
++120 63 71 117 99 86 120 63 71 101 74 26 88 73 62 88 44 51 101 74 26 88 44 51
++88 44 51 88 73 31 88 44 51 88 73 31 88 44 51 76 46 20 63 55 45 76 46 20
++55 39 18 55 39 37 53 35 17 52 30 15 52 30 15 34 30 15 52 30 15 34 30 15
++52 30 15 33 30 30 49 13 16 34 30 15 53 35 17 55 39 18 60 49 42 63 55 45
++60 49 42 55 39 37 34 30 15 34 30 15 33 30 30 34 30 15 26 25 15 34 30 15
++26 25 15 26 25 15 26 25 15 32 39 24 65 63 61 94 105 108 111 119 127 145 140 145
++150 147 171 150 147 171 150 168 183 148 160 159 122 134 144 98 121 131 94 105 108 77 90 100
++60 63 87 46 59 71 46 59 71 59 69 70 46 59 71 59 69 70 60 81 83 46 59 71
++60 63 87 75 81 82 77 90 100 88 83 88 60 81 83 35 47 50 14 16 17 3 3 1
++3 4 9 26 30 28 47 44 42 33 30 30 3 3 1 3 3 1 3 4 9 3 3 1
++3 3 1 3 3 1 3 3 1 15 17 7 51 49 42 88 73 62 117 114 76 138 126 108
++168 102 88 146 150 115 168 146 127 177 171 115 177 169 143 177 169 143 217 168 156 177 169 143
++217 168 156 189 165 168 217 168 156 208 215 180 222 171 182 214 214 134 189 165 168 214 214 134
++217 168 156 208 215 180 217 168 156 177 169 143 208 215 180 217 168 156 214 214 134 222 171 182
++214 214 134 222 171 182 214 214 134 222 171 182 214 214 134 208 215 180 217 168 156 225 222 201
++217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 208 215 180 222 171 182 214 214 134
++222 171 182 208 215 180 222 171 182 225 222 201 217 168 156 225 222 201 214 214 134 222 171 182
++222 171 182 225 222 201 214 214 134 208 215 180 222 171 182 225 222 201 222 171 182 214 214 134
++225 222 201 222 171 182 225 222 201 222 171 182 225 222 201 214 214 134 225 222 201 214 214 134
++222 171 182 225 222 201 225 222 201 189 165 168 112 96 108 63 59 71 42 60 86 42 60 86
++61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 77 91 115 77 91 115 77 91 115
++77 91 115 77 91 115 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128
++95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128
++95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128
++95 108 128 95 108 128 95 108 128 95 108 128 77 91 115 77 91 115 77 91 115 77 91 115
++77 91 115 77 91 115 77 91 115 77 91 115 61 78 101 61 78 101 60 63 87 61 78 101
++60 63 87 60 63 87 60 63 87 42 60 86 34 42 77 42 60 86 34 42 77 34 42 77
++42 60 86 46 59 71 34 42 77 42 60 86 34 42 77 42 60 86 34 42 77 34 42 77
++34 42 77 42 60 86 34 42 77 34 42 77 42 60 86 34 42 77 34 42 77 46 59 71
++34 42 77 42 60 86 34 42 77 46 59 71 34 42 77 34 42 77 42 60 86 42 60 86
++42 60 86 42 60 86 60 63 87 42 60 86 61 78 101 61 78 101 61 78 101 61 78 101
++61 78 101 61 78 101 77 90 100 77 91 115 77 91 115 77 91 115 77 91 115 77 91 115
++77 91 115 77 91 115 94 105 108 112 123 108 121 143 132 145 140 145 112 123 108 94 105 108
++90 98 89 88 83 88 59 69 70 65 63 61 65 63 61 59 55 55 53 63 61 64 70 48
++75 77 62 99 93 84 117 114 76 112 123 108 138 126 108 146 150 115 146 150 115 146 150 115
++146 150 115 138 126 108 117 127 86 117 127 86 117 114 76 117 127 86 117 127 86 112 123 108
++117 127 86 117 127 86 117 127 86 117 127 86 117 114 76 117 114 76 99 93 84 87 99 72
++87 99 72 88 73 62 80 96 46 75 73 58 64 70 48 64 70 48 64 70 48 64 70 48
++64 70 48 50 61 48 51 49 42 32 39 24 23 31 15 15 22 17 22 24 13 15 22 17
++15 17 7 15 17 7 22 24 13 42 47 42 88 83 74 112 123 108 121 143 132 95 119 107
++90 98 89 94 105 108 95 119 107 94 105 108 53 63 61 22 25 24 15 17 7 22 24 13
++53 63 61 98 113 84 121 143 132 126 147 144 122 134 144 121 143 132 111 119 127 98 121 131
++98 121 131 98 121 131 95 108 128 95 108 128 94 105 108 77 91 115 77 90 100 75 81 90
++60 63 87 60 63 87 60 63 87 42 60 86 46 59 71 34 42 77 34 42 77 34 42 77
++46 59 71 32 40 58 34 42 77 32 40 58 32 40 58 34 42 77 32 40 58 34 42 77
++32 40 58 34 42 77 45 57 61 32 40 58 45 57 61 34 42 77 32 40 58 34 42 77
++32 40 58 34 42 77 32 40 58 32 40 58 34 42 77 32 40 58 34 42 77 32 40 58
++32 40 58 45 57 61 32 40 58 45 57 61 34 42 77 46 59 71 34 42 77 46 59 71
++46 59 71 42 60 86 60 63 87 42 60 86 42 60 86 42 60 86 42 60 86 60 63 87
++60 63 87 60 63 87 60 63 87 60 63 87 60 63 87 42 60 86 60 63 87 42 60 86
++60 63 87 60 63 87 42 60 86 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71
++46 59 71 46 59 71 46 59 71 45 57 61 46 59 71 32 40 58 32 40 58 32 40 58
++32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58 29 34 50
++32 40 58 32 40 58 32 40 58 29 34 50 32 40 58 29 34 50 29 34 50 29 34 50
++32 40 58 29 34 50 32 40 58 29 34 50 32 40 58 29 34 50 32 40 58 29 34 50
++32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 29 34 50 32 40 58 32 40 58
++35 47 50 29 34 50 32 40 58 32 40 58 32 40 58 45 57 61 32 40 58 32 40 58
++45 57 61 34 42 77 57 43 64 46 59 71 46 59 71 57 43 64 46 59 71 57 43 64
++45 57 61 34 42 77 45 57 61 45 57 61 45 57 61 34 42 77 57 43 64 45 57 61
++32 40 58 46 59 71 32 40 58 45 57 61 43 42 50 32 40 58 32 40 58 32 40 58
++29 34 50 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58 45 57 61 34 42 77
++45 57 61 34 42 77 45 57 61 57 43 64 34 42 77 46 59 71 45 57 61 45 57 61
++
++145 140 145 121 143 132 145 140 145 138 126 108 111 119 127 138 126 108 111 119 127 112 123 108
++112 96 108 117 99 86 117 99 86 99 93 84 117 99 86 101 83 74 101 83 74 101 83 74
++101 74 26 120 63 71 117 112 45 101 83 74 101 74 26 101 83 74 101 74 26 101 60 73
++101 74 26 88 73 62 88 44 51 75 73 36 76 44 53 63 55 45 75 56 53 65 55 54
++75 73 58 75 73 58 88 83 74 99 93 84 98 113 84 112 96 108 111 119 127 138 126 108
++145 140 145 145 140 145 150 144 154 166 156 164 150 171 159 166 156 164 166 180 164 166 156 164
++166 180 164 166 180 164 166 156 164 166 180 164 166 180 164 189 165 168 166 180 164 166 180 164
++189 165 168 166 180 164 166 180 164 166 156 164 166 180 164 166 180 164 166 156 164 177 169 143
++148 160 159 146 162 145 146 151 137 150 144 154 146 151 137 138 126 108 122 134 144 138 126 108
++122 134 144 138 126 108 119 117 138 138 126 108 121 143 132 138 126 108 122 134 144 121 143 132
++145 140 145 146 151 137 145 140 145 146 151 137 146 151 137 146 162 145 148 160 159 166 156 164
++150 171 159 166 156 164 166 180 164 166 180 164 166 156 164 166 180 164 166 174 181 166 156 164
++166 180 164 166 156 164 166 180 164 166 156 164 166 180 164 148 160 159 150 171 159 177 169 143
++150 171 159 166 156 164 150 171 159 166 156 164 148 160 159 150 171 159 166 156 164 146 162 145
++166 156 164 146 162 145 166 156 164 150 171 159 166 156 164 150 171 159 166 156 164 166 180 164
++166 156 164 166 180 164 166 156 164 166 180 164 166 180 164 166 156 164 166 156 164 166 180 164
++166 180 164 166 180 164 166 156 164 166 174 181 166 180 164 166 180 164 166 180 164 166 180 164
++166 180 164 189 165 168 166 180 164 166 174 181 189 165 168 166 180 164 166 180 164 166 156 164
++150 171 159 166 156 164 148 160 159 148 160 159 150 144 154 145 140 145 126 147 144 122 134 144
++119 117 138 111 119 127 111 119 127 95 95 116 94 105 108 61 78 101 60 63 87 60 63 87
++34 42 77 34 42 77 29 34 50 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77
++29 34 50 34 42 77 29 34 50 34 42 77 29 34 50 34 42 77 29 34 50 34 42 77
++24 30 43 34 42 77 29 34 50 34 42 77 57 43 64 29 34 50 57 43 64 57 43 64
++59 36 42 76 44 53 76 44 53 76 44 53 88 44 51 88 44 51 88 44 51 101 60 73
++88 44 51 120 63 71 102 33 26 120 63 71 102 33 26 167 63 71 102 33 26 120 63 71
++161 55 23 102 33 26 167 63 71 102 33 26 167 63 71 122 49 24 167 63 71 122 49 24
++167 63 71 122 49 24 167 63 71 122 49 24 167 63 71 122 49 24 161 55 23 167 63 71
++161 55 23 122 49 24 167 63 71 161 55 23 120 63 71 161 55 23 167 63 71 161 55 23
++167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 122 49 24
++167 63 71 167 63 71 120 63 71 161 55 23 120 63 71 167 63 71 101 74 26 120 63 71
++88 30 18 52 30 15 49 13 16 23 10 10 23 10 10 49 13 16 34 30 15 49 13 16
++52 30 15 49 13 16 49 13 16 52 30 15 52 30 15 49 13 16 52 30 15 52 30 15
++76 46 20 75 73 36 88 44 51 88 73 31 120 63 71 101 74 26 88 73 62 101 74 26
++88 44 51 88 73 62 101 74 26 101 83 74 101 74 26 101 60 73 101 74 26 120 63 71
++101 74 26 120 63 71 117 112 45 120 63 71 120 63 71 88 73 62 120 63 71 120 63 71
++117 112 45 120 63 71 117 114 76 168 102 88 117 127 86 168 102 88 117 114 76 117 114 76
++101 83 74 101 74 26 101 83 74 117 99 86 168 102 88 146 150 115 168 102 88 146 150 115
++157 148 53 163 117 123 157 148 53 168 102 88 117 114 76 168 102 88 117 114 76 168 102 88
++117 112 45 120 63 71 101 74 26 120 63 71 101 74 26 102 33 26 76 46 20 101 74 26
++88 44 51 101 74 26 88 44 51 88 73 31 76 46 20 88 44 51 76 46 20 55 39 18
++55 39 18 55 39 18 53 35 17 52 30 15 33 30 30 34 30 15 52 30 15 34 30 15
++49 13 16 34 30 15 53 35 17 53 35 17 55 39 37 63 55 45 75 73 36 75 56 53
++76 46 20 47 47 21 34 30 15 33 30 30 34 30 15 34 30 15 34 30 15 26 25 15
++34 30 15 26 25 15 52 30 35 59 55 55 90 98 89 112 123 108 119 117 138 122 134 144
++122 134 144 122 134 144 111 119 127 77 91 115 61 78 101 46 59 71 42 60 86 46 59 71
++46 59 71 46 59 71 46 59 71 46 59 71 59 69 70 60 63 87 46 59 71 59 69 70
++59 69 70 59 69 70 75 81 90 95 91 100 94 105 108 94 105 108 63 59 71 25 30 29
++3 4 9 3 4 9 36 35 37 36 35 37 7 12 13 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 23 10 10 53 35 17 60 49 42 88 73 62 117 112 45
++117 114 76 138 126 108 168 146 127 168 146 127 177 171 115 168 146 127 177 169 143 197 171 123
++177 169 143 214 214 134 189 165 168 217 168 156 214 214 134 189 165 168 208 215 180 217 168 156
++208 215 180 217 168 156 208 215 180 217 168 156 217 168 156 166 180 164 217 168 156 208 215 180
++222 171 182 208 215 180 222 171 182 208 215 180 222 171 182 208 215 180 222 171 182 214 214 134
++222 171 182 208 215 180 217 168 156 208 215 180 217 168 156 217 168 156 217 168 156 208 215 180
++217 168 156 208 215 180 217 168 156 214 214 134 222 171 182 225 222 201 222 171 182 225 222 201
++214 214 134 222 171 182 222 171 182 225 222 201 214 214 134 222 171 182 225 222 201 222 171 182
++225 222 201 214 214 134 222 171 182 225 222 201 222 171 182 222 171 182 225 222 201 222 171 182
++225 222 201 208 215 180 225 222 201 225 222 201 150 144 154 77 90 100 42 60 86 60 63 87
++61 78 101 61 78 101 61 78 101 77 91 115 77 91 115 77 91 115 95 108 128 95 108 128
++95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 98 121 131 98 121 131 98 121 131
++111 122 142 98 121 131 98 121 131 98 121 131 98 121 131 98 121 131 98 121 131 98 121 131
++98 121 131 98 121 131 98 121 131 98 121 131 98 121 131 98 121 131 98 121 131 98 121 131
++95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 77 91 115
++95 108 128 77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 61 78 101 61 78 101
++61 78 101 61 78 101 42 60 86 60 63 87 42 60 86 42 60 86 42 60 86 34 42 77
++42 60 86 34 42 77 34 42 77 42 60 86 34 42 77 42 60 86 34 42 77 42 60 86
++34 42 77 46 59 71 34 42 77 46 59 71 34 42 77 34 42 77 46 59 71 34 42 77
++34 42 77 46 59 71 34 42 77 42 60 86 42 60 86 42 60 86 42 60 86 42 60 86
++42 60 86 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 77 91 115 77 91 115
++77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 94 105 108 95 95 116
++94 105 108 95 95 116 94 105 108 90 98 89 94 105 108 98 113 84 88 83 74 75 77 62
++65 63 61 50 61 48 75 72 67 75 81 76 90 98 89 98 113 84 112 123 108 138 126 108
++146 151 137 146 151 137 146 151 137 168 146 127 146 162 145 168 146 127 146 150 115 168 146 127
++146 150 115 146 150 115 138 126 108 117 127 86 138 126 108 138 126 108 138 126 108 138 126 108
++117 127 86 138 126 108 117 114 76 117 127 86 98 113 84 98 113 84 81 96 56 88 73 62
++98 106 55 87 99 72 75 77 62 80 96 46 75 73 58 64 70 48 64 70 48 50 61 48
++47 47 21 32 39 24 23 31 15 22 24 13 15 17 7 15 17 7 15 22 17 15 17 7
++22 25 24 26 30 28 52 55 48 75 81 69 90 98 89 112 123 108 112 123 108 112 123 108
++111 119 127 146 162 145 148 160 159 122 134 144 94 105 108 52 55 48 22 25 24 33 39 38
++75 81 69 112 123 108 150 144 154 146 162 145 129 144 153 122 134 144 111 122 142 121 143 132
++111 122 142 111 119 127 98 121 131 98 121 131 94 105 108 77 91 115 77 91 115 77 90 100
++61 78 101 60 63 87 42 60 86 42 60 86 46 59 71 34 42 77 45 57 61 34 42 77
++32 40 58 34 42 77 32 40 58 32 40 58 34 42 77 45 57 61 32 40 58 34 42 77
++45 57 61 32 40 58 34 42 77 32 40 58 32 40 58 32 40 58 46 59 71 32 40 58
++34 42 77 45 57 61 32 40 58 34 42 77 32 40 58 32 40 58 32 40 58 34 42 77
++32 40 58 34 42 77 34 42 77 46 59 71 46 59 71 46 59 71 60 63 87 46 59 71
++60 63 87 60 63 87 42 60 86 60 63 87 60 63 87 60 81 83 60 63 87 60 81 83
++61 78 101 60 63 87 61 78 101 60 81 83 60 63 87 60 81 83 60 63 87 60 63 87
++60 63 87 60 63 87 60 63 87 60 63 87 60 63 87 60 63 87 60 63 87 42 60 86
++63 59 71 46 59 71 34 42 77 57 43 64 34 42 77 45 57 61 34 42 77 45 57 61
++32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58 32 40 58
++29 34 50 32 40 58 29 34 50 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58
++29 34 50 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58
++29 34 50 29 34 50 32 40 58 29 34 50 32 40 58 32 40 58 29 34 50 32 40 58
++29 34 50 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 57 43 64 46 59 71
++34 42 77 54 57 61 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71
++46 59 71 46 59 71 46 59 71 46 59 71 57 43 64 46 59 71 45 57 61 34 42 77
++54 57 61 46 59 71 32 40 58 34 42 77 32 40 58 32 40 58 43 42 50 29 34 50
++32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 45 57 61 32 40 58 45 57 61
++57 43 64 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71
++
++121 143 132 138 126 108 121 143 132 122 134 144 138 126 108 111 119 127 112 123 108 112 123 108
++112 96 108 98 113 84 117 99 86 101 83 74 117 99 86 101 83 74 117 112 45 101 83 74
++120 63 71 117 112 45 120 63 71 120 63 71 120 63 71 101 74 26 120 63 71 88 73 62
++101 60 73 88 73 31 75 56 53 76 46 20 75 56 53 76 46 20 60 49 42 60 49 42
++60 49 42 63 55 45 75 56 53 88 73 62 88 83 74 117 99 86 112 123 108 112 123 108
++121 143 132 138 126 108 146 151 137 146 151 137 146 162 145 146 162 145 166 156 164 148 160 159
++166 180 164 166 156 164 166 180 164 166 180 164 166 156 164 166 180 164 166 156 164 166 180 164
++166 156 164 166 180 164 166 156 164 166 180 164 166 180 164 166 156 164 166 180 164 150 171 159
++166 156 164 146 162 145 166 156 164 146 151 137 146 151 137 145 140 145 121 143 132 122 134 144
++138 126 108 122 134 144 138 126 108 122 134 144 138 126 108 122 134 144 138 126 108 145 140 145
++138 126 108 121 143 132 145 140 145 146 151 137 150 144 154 146 151 137 166 156 164 146 162 145
++166 156 164 166 180 164 166 156 164 166 180 164 166 174 181 166 180 164 166 156 164 166 180 164
++166 180 164 166 156 164 166 180 164 150 171 159 166 156 164 177 169 143 148 160 159 166 156 164
++150 171 159 166 156 164 146 162 145 166 156 164 146 162 145 166 156 164 146 162 145 166 156 164
++146 162 145 150 171 159 166 156 164 150 171 159 166 156 164 150 171 159 166 156 164 150 171 159
++166 180 164 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164
++166 156 164 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164
++166 180 164 166 174 181 166 180 164 166 180 164 166 180 164 166 156 164 166 180 164 166 156 164
++150 171 159 166 156 164 148 160 159 148 160 159 148 160 159 145 140 145 145 140 145 122 134 144
++121 143 132 111 119 127 111 119 127 94 105 108 77 91 115 75 81 90 60 81 83 42 60 86
++34 42 77 32 40 58 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 24 30 43
++34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 24 30 43
++34 42 77 29 34 50 32 40 58 29 34 50 57 43 64 59 36 42 57 43 64 59 36 42
++57 43 64 76 44 53 57 43 64 88 44 51 88 44 51 88 44 51 88 44 51 88 44 51
++102 33 26 120 63 71 102 33 26 120 63 71 102 33 26 167 63 71 102 33 26 167 63 71
++102 33 26 167 63 71 102 33 26 161 55 23 122 49 24 167 63 71 161 55 23 122 49 24
++167 63 71 161 55 23 161 55 23 161 55 23 161 55 23 161 55 23 167 63 71 161 55 23
++161 55 23 167 63 71 161 55 23 161 55 23 161 55 23 167 63 71 161 55 23 161 55 23
++161 55 23 167 63 71 161 55 23 161 55 23 161 55 23 167 63 71 161 55 23 167 63 71
++161 55 23 176 103 41 161 55 23 167 63 71 161 55 23 167 63 71 176 103 41 167 63 71
++161 55 23 122 49 24 122 49 24 88 30 18 88 30 18 88 30 18 88 30 18 88 30 18
++88 30 18 52 30 15 49 13 16 26 12 13 49 13 16 26 12 13 23 10 10 23 10 10
++34 30 15 52 30 15 55 39 18 55 39 18 55 39 37 76 46 20 60 49 42 76 46 20
++63 55 45 88 73 31 75 56 53 88 73 62 75 56 53 88 73 31 75 56 53 75 73 36
++75 56 53 88 73 62 75 56 53 88 73 62 88 73 31 88 73 31 88 73 31 88 73 31
++120 63 71 101 83 74 117 99 86 117 112 45 117 99 86 98 106 55 120 63 71 88 73 31
++88 73 31 88 73 31 117 112 45 168 102 88 168 146 127 168 146 127 146 150 115 168 102 88
++138 126 108 168 102 88 138 126 108 168 102 88 117 114 76 168 102 88 117 114 76 120 63 71
++117 112 45 120 63 71 101 74 26 88 73 31 88 44 51 88 44 51 88 73 31 88 44 51
++88 73 62 88 44 51 88 73 31 88 44 51 76 46 20 76 46 20 55 39 18 55 39 18
++55 39 18 53 35 17 52 30 35 34 30 15 52 30 15 34 30 15 34 30 15 34 30 15
++34 30 15 52 30 15 53 35 17 55 39 37 63 55 45 75 73 36 75 56 53 63 55 45
++51 49 42 53 35 17 34 30 15 52 30 15 33 30 30 34 30 15 33 30 30 29 35 19
++33 30 30 42 47 42 53 63 61 75 81 90 77 90 100 77 91 115 77 91 115 77 90 100
++61 78 101 60 63 87 42 60 86 42 60 86 46 59 71 34 42 77 45 57 61 42 60 86
++46 59 71 42 60 86 42 60 86 59 69 70 42 60 86 46 59 71 60 63 87 59 69 70
++42 60 86 59 69 70 60 81 83 77 90 100 94 105 108 111 119 127 111 119 127 94 105 108
++45 57 61 22 23 31 15 22 17 26 30 28 33 30 30 7 12 13 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 22 24 13 32 39 24 47 47 21 63 55 45 88 44 51
++117 112 45 117 114 76 138 126 108 168 102 88 168 146 127 168 146 127 177 169 143 177 169 143
++197 171 123 189 165 168 214 214 134 177 169 143 208 215 180 217 168 156 208 215 180 217 168 156
++208 215 180 217 168 156 208 215 180 177 169 143 208 215 180 217 168 156 214 214 134 217 168 156
++217 168 156 222 171 182 214 214 134 217 168 156 208 215 180 217 168 156 208 215 180 222 171 182
++208 215 180 217 168 156 208 215 180 217 168 156 217 168 156 208 215 180 217 168 156 214 214 134
++222 171 182 217 168 156 225 222 201 222 171 182 214 214 134 222 171 182 214 214 134 217 168 156
++225 222 201 217 168 156 225 222 201 217 168 156 225 222 201 217 168 156 225 222 201 214 214 134
++222 171 182 222 171 182 225 222 201 222 171 182 214 214 134 225 222 201 222 171 182 214 214 134
++217 168 156 225 222 201 222 171 182 225 222 201 188 180 202 141 116 139 88 83 88 60 63 87
++61 78 101 77 91 115 77 91 115 77 91 115 95 108 128 95 108 128 95 108 128 95 108 128
++95 108 128 95 108 128 98 121 131 111 122 142 98 121 131 111 122 142 111 122 142 111 122 142
++111 122 142 111 122 142 111 122 142 111 122 142 122 134 144 111 122 142 111 122 142 122 134 144
++111 122 142 122 134 144 111 122 142 122 134 144 111 122 142 111 122 142 111 122 142 98 121 131
++111 122 142 98 121 131 111 119 127 98 121 131 98 121 131 95 108 128 95 108 128 95 108 128
++95 108 128 77 91 115 95 108 128 77 91 115 77 91 115 77 91 115 77 91 115 61 78 101
++61 78 101 61 78 101 61 78 101 60 63 87 42 60 86 60 63 87 42 60 86 42 60 86
++34 42 77 46 59 71 34 42 77 34 42 77 34 42 77 46 59 71 34 42 77 46 59 71
++34 42 77 42 60 86 34 42 77 34 42 77 46 59 71 34 42 77 34 42 77 46 59 71
++34 42 77 34 42 77 46 59 71 42 60 86 42 60 86 42 60 86 42 60 86 60 63 87
++61 78 101 61 78 101 61 78 101 61 78 101 77 91 115 77 91 115 77 91 115 77 91 115
++77 91 115 94 105 108 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128
++95 108 128 95 108 128 94 105 108 78 98 90 75 81 76 59 69 70 65 63 61 75 77 62
++88 83 74 98 113 84 117 127 86 146 150 115 146 150 115 168 146 127 146 150 115 177 169 143
++168 146 127 177 171 115 177 171 115 146 150 115 177 171 115 146 150 115 146 150 115 146 150 115
++146 150 115 138 126 108 157 148 53 138 126 108 117 127 86 157 148 53 117 127 86 117 127 86
++117 127 86 117 114 76 98 113 84 98 113 84 117 114 76 101 83 74 87 99 72 81 96 56
++88 83 74 87 99 72 88 83 74 75 73 58 64 70 48 63 55 45 42 47 42 29 35 19
++29 35 19 22 24 13 15 17 7 14 16 17 15 22 17 15 22 17 28 35 38 43 55 48
++75 81 69 77 90 100 95 119 107 111 119 127 121 143 132 122 134 144 111 119 127 122 134 144
++148 160 159 150 168 183 166 156 164 148 160 159 126 147 144 94 105 108 59 69 70 60 81 83
++112 123 108 126 147 144 148 160 159 150 144 154 129 144 153 126 147 144 121 143 132 122 134 144
++111 122 142 121 143 132 98 121 131 98 121 131 98 121 131 95 108 128 77 91 115 77 90 100
++61 78 101 61 78 101 60 63 87 60 63 87 42 60 86 46 59 71 46 59 71 46 59 71
++34 42 77 45 57 61 32 40 58 34 42 77 32 40 58 32 40 58 34 42 77 32 40 58
++32 40 58 34 42 77 32 40 58 32 40 58 34 42 77 32 40 58 34 42 77 32 40 58
++32 40 58 32 40 58 34 42 77 32 40 58 32 40 58 34 42 77 32 40 58 45 57 61
++34 42 77 45 57 61 34 42 77 46 59 71 46 59 71 42 60 86 60 63 87 60 63 87
++60 63 87 60 81 83 60 63 87 60 81 83 61 78 101 75 81 90 61 78 101 75 81 90
++61 78 101 77 90 100 61 78 101 75 81 90 61 78 101 61 78 101 61 78 101 77 90 100
++61 78 101 61 78 101 60 81 83 61 78 101 60 81 83 60 63 87 60 63 87 60 63 87
++60 63 87 46 59 71 60 63 87 46 59 71 46 59 71 34 42 77 45 57 61 34 42 77
++45 57 61 34 42 77 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58
++32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58 29 34 50 32 40 58
++32 40 58 32 40 58 32 40 58 29 34 50 32 40 58 29 34 50 32 40 58 29 34 50
++32 40 58 32 40 58 29 34 50 32 40 58 29 34 50 32 40 58 32 40 58 29 34 50
++32 40 58 32 40 58 32 40 58 45 57 61 32 40 58 45 57 61 34 42 77 46 59 71
++46 59 71 46 59 71 46 59 71 42 60 86 46 59 71 60 63 87 46 59 71 42 60 86
++46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71
++46 59 71 46 59 71 57 43 64 45 57 61 43 42 50 32 40 58 32 40 58 32 40 58
++29 34 50 32 40 58 32 40 58 32 40 58 45 57 61 57 43 64 46 59 71 46 59 71
++46 59 71 46 59 71 46 59 71 46 59 71 63 59 71 46 59 71 60 63 87 46 59 71
++
++121 143 132 145 140 145 121 143 132 138 126 108 111 119 127 138 126 108 112 96 108 112 96 108
++98 113 84 117 99 86 99 93 84 99 93 84 101 83 74 101 83 74 120 63 71 117 99 86
++120 63 71 117 112 45 120 63 71 117 112 45 120 63 71 117 112 45 120 63 71 101 74 26
++88 73 62 88 44 51 88 73 62 88 44 51 75 56 53 76 46 20 60 49 42 76 46 20
++60 49 42 60 49 42 63 55 45 75 56 53 75 77 62 88 83 74 99 93 84 112 96 108
++138 126 108 141 116 139 121 143 132 145 140 145 146 151 137 150 144 154 146 162 145 166 156 164
++150 171 159 166 156 164 166 180 164 189 165 168 166 180 164 166 180 164 166 180 164 166 180 164
++166 180 164 166 156 164 166 180 164 166 156 164 166 180 164 166 180 164 166 156 164 177 169 143
++148 160 159 177 169 143 150 144 154 146 151 137 145 140 145 121 143 132 138 126 108 141 116 139
++121 143 132 138 126 108 111 119 127 121 143 132 111 119 127 138 126 108 122 134 144 121 143 132
++145 140 145 121 143 132 145 140 145 146 151 137 146 151 137 146 162 145 148 160 159 146 162 145
++166 156 164 150 171 159 166 180 164 166 156 164 166 180 164 166 180 164 166 180 164 166 156 164
++166 180 164 166 156 164 150 171 159 166 156 164 166 180 164 148 160 159 166 156 164 150 171 159
++166 156 164 146 162 145 166 156 164 146 162 145 166 156 164 146 162 145 150 171 159 146 162 145
++166 156 164 146 162 145 166 156 164 150 171 159 177 169 143 148 160 159 150 171 159 166 156 164
++150 171 159 166 180 164 166 156 164 166 180 164 166 156 164 150 171 159 150 171 159 166 156 164
++150 171 159 166 180 164 150 171 159 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164
++166 180 164 166 180 164 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164 150 171 159
++166 156 164 148 160 159 148 160 159 150 144 154 150 144 154 129 144 153 126 147 144 121 143 132
++119 117 138 111 119 127 111 119 127 95 95 116 77 91 115 75 81 90 60 63 87 60 63 87
++42 60 86 34 42 77 29 34 50 34 42 77 29 34 50 34 42 77 24 30 43 34 42 77
++24 30 43 34 42 77 29 34 50 34 42 77 34 42 77 24 30 43 34 42 77 29 34 50
++34 42 77 29 34 50 34 42 77 57 43 64 57 43 64 57 43 64 59 36 42 76 44 53
++76 44 53 76 44 53 88 44 51 88 44 51 88 44 51 101 60 73 88 44 51 120 63 71
++120 63 71 102 33 26 167 63 71 102 33 26 167 63 71 102 33 26 167 63 71 102 33 26
++167 63 71 122 49 24 167 63 71 167 63 71 122 49 24 161 55 23 167 63 71 161 55 23
++161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 122 49 24 161 55 23
++167 63 71 161 55 23 161 55 23 167 63 71 161 55 23 161 55 23 167 63 71 161 55 23
++167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 161 55 23 167 63 71
++161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 161 55 23 161 55 23 176 103 41
++167 63 71 176 103 41 161 55 23 176 103 41 122 49 24 161 55 23 101 74 26 176 103 41
++101 74 26 122 49 24 101 74 26 76 46 20 52 30 15 52 30 15 26 12 13 23 10 10
++23 10 10 15 17 7 23 10 10 23 10 10 22 24 13 26 25 15 34 30 15 53 35 17
++47 47 21 55 39 37 55 39 18 76 46 20 60 49 42 55 39 37 76 46 20 60 49 42
++76 46 20 60 49 42 76 46 20 63 55 45 76 46 20 60 49 42 63 55 45 75 56 53
++88 73 62 88 73 31 88 73 62 88 73 62 88 44 51 88 73 31 76 46 20 76 46 20
++88 73 31 101 83 74 138 126 108 168 146 127 146 150 115 168 102 88 157 148 53 168 102 88
++138 126 108 168 102 88 117 114 76 168 102 88 117 114 76 117 112 45 167 63 71 117 112 45
++120 63 71 101 74 26 88 44 51 76 46 20 88 73 31 88 44 51 88 73 31 88 44 51
++101 74 26 88 44 51 88 73 31 76 46 20 76 44 53 76 46 20 52 30 35 53 35 17
++52 30 15 52 30 35 34 30 15 52 30 15 34 30 15 34 30 15 52 30 15 33 30 30
++52 30 15 53 35 17 55 39 37 60 49 42 75 73 36 88 44 51 88 73 62 75 73 36
++55 39 37 34 30 15 34 30 15 34 30 15 34 30 15 34 30 15 34 30 15 33 30 30
++47 49 42 52 55 48 59 69 70 59 69 70 60 63 87 60 63 87 46 59 71 42 60 86
++34 42 77 34 42 77 34 42 77 46 59 71 34 42 77 42 60 86 42 60 86 42 60 86
++46 59 71 42 60 86 46 59 71 60 63 87 59 69 70 46 59 71 46 59 71 59 69 70
++42 60 86 59 69 70 60 81 83 77 90 100 77 91 115 111 119 127 122 134 144 122 134 144
++111 119 127 77 90 100 43 42 50 22 25 24 23 18 22 23 20 24 14 16 17 3 3 1
++3 3 1 3 3 1 13 4 7 26 25 15 53 35 37 60 49 42 75 73 36 75 73 36
++88 73 62 117 112 45 117 114 76 138 126 108 146 150 115 168 102 88 177 171 115 168 146 127
++177 169 143 197 171 123 177 169 143 217 168 156 217 168 156 214 214 134 217 168 156 214 214 134
++217 168 156 208 215 180 217 168 156 214 214 134 217 168 156 189 165 168 214 214 134 189 165 168
++208 215 180 217 168 156 222 171 182 208 215 180 222 171 182 225 222 201 217 168 156 225 222 201
++217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 217 168 156 217 168 156 208 215 180
++217 168 156 208 215 180 217 168 156 222 171 182 208 215 180 222 171 182 225 222 201 222 171 182
++214 214 134 222 171 182 208 215 180 222 171 182 208 215 180 222 171 182 225 222 201 222 171 182
++225 222 201 214 214 134 222 171 182 214 214 134 225 222 201 217 168 156 225 222 201 222 171 182
++225 222 201 222 171 182 225 222 201 225 222 201 222 171 182 177 169 143 111 119 127 60 63 87
++77 90 100 77 91 115 77 91 115 95 108 128 95 108 128 95 108 128 95 108 128 98 121 131
++111 122 142 111 122 142 111 122 142 111 122 142 122 134 144 111 122 142 122 134 144 122 134 144
++122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144
++122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 111 122 142
++122 134 144 111 122 142 111 122 142 111 122 142 111 122 142 98 121 131 111 122 142 98 121 131
++95 108 128 95 108 128 95 108 128 95 108 128 77 91 115 95 108 128 77 91 115 77 91 115
++77 91 115 61 78 101 61 78 101 61 78 101 60 63 87 60 63 87 42 60 86 42 60 86
++46 59 71 34 42 77 42 60 86 34 42 77 42 60 86 34 42 77 42 60 86 34 42 77
++34 42 77 34 42 77 42 60 86 34 42 77 34 42 77 42 60 86 34 42 77 34 42 77
++42 60 86 34 42 77 42 60 86 42 60 86 60 63 87 61 78 101 61 78 101 61 78 101
++61 78 101 61 78 101 77 91 115 77 91 115 77 91 115 77 91 115 95 108 128 95 108 128
++95 108 128 95 108 128 95 108 128 95 108 128 98 121 131 98 121 131 95 108 128 98 121 131
++111 119 127 111 119 127 95 108 128 95 91 100 75 81 76 75 81 76 90 98 89 112 123 108
++146 150 115 146 151 137 168 146 127 146 162 145 177 171 115 146 162 145 177 171 115 177 171 115
++146 150 115 146 150 115 146 150 115 146 150 115 157 148 53 146 150 115 157 148 53 138 126 108
++157 148 53 117 127 86 117 127 86 157 148 53 117 127 86 117 127 86 117 114 76 117 114 76
++117 114 76 117 114 76 117 114 76 117 114 76 98 113 84 117 114 76 87 99 72 87 99 72
++87 99 72 75 77 62 64 70 48 51 49 42 47 47 21 29 35 19 22 24 13 15 17 7
++15 17 7 6 15 6 15 22 17 26 30 28 42 47 42 59 79 61 75 81 82 94 105 108
++111 119 127 122 134 144 129 144 153 150 144 154 129 144 153 145 140 145 129 144 153 148 160 159
++148 160 159 148 160 159 148 160 159 150 168 183 148 160 159 122 134 144 111 119 127 121 143 132
++122 134 144 148 160 159 148 160 159 129 144 153 148 160 159 129 144 153 126 147 144 122 134 144
++121 143 132 111 122 142 111 122 142 98 121 131 98 121 131 94 105 108 94 105 108 77 91 115
++77 90 100 60 63 87 61 78 101 42 60 86 46 59 71 42 60 86 34 42 77 46 59 71
++34 42 77 34 42 77 32 40 58 34 42 77 32 40 58 34 42 77 32 40 58 34 42 77
++32 40 58 32 40 58 32 40 58 34 42 77 32 40 58 32 40 58 32 40 58 32 40 58
++34 42 77 32 40 58 34 42 77 32 40 58 34 42 77 32 40 58 34 42 77 34 42 77
++46 59 71 46 59 71 42 60 86 60 63 87 60 63 87 60 63 87 60 81 83 61 78 101
++61 78 101 61 78 101 75 81 90 61 78 101 75 81 90 77 90 100 77 90 100 77 91 115
++77 90 100 77 90 100 77 90 100 77 91 115 77 90 100 77 90 100 77 90 100 61 78 101
++77 90 100 77 90 100 61 78 101 61 78 101 61 78 101 61 78 101 60 81 83 61 78 101
++60 63 87 60 63 87 42 60 86 46 59 71 60 63 87 46 59 71 46 59 71 46 59 71
++32 40 58 34 42 77 32 40 58 34 42 77 32 40 58 32 40 58 32 40 58 32 40 58
++32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58
++32 40 58 29 34 50 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 29 34 50
++32 40 58 29 34 50 32 40 58 29 34 50 32 40 58 29 34 50 32 40 58 32 40 58
++32 40 58 32 40 58 32 40 58 32 40 58 46 59 71 46 59 71 46 59 71 46 59 71
++46 59 71 60 63 87 60 63 87 60 63 87 60 63 87 60 63 87 60 63 87 60 63 87
++60 63 87 60 63 87 60 63 87 42 60 86 60 63 87 46 59 71 42 60 86 63 59 71
++46 59 71 46 59 71 34 42 77 45 57 61 32 40 58 32 40 58 32 40 58 32 40 58
++32 40 58 32 40 58 32 40 58 46 59 71 46 59 71 46 59 71 46 59 71 63 59 71
++60 63 87 60 63 87 60 63 87 60 63 87 60 63 87 60 63 87 60 63 87 60 63 87
++
++121 143 132 138 126 108 121 143 132 111 119 127 111 119 127 112 96 108 112 123 108 94 105 108
++99 93 84 99 93 84 99 93 84 101 83 74 101 83 74 101 83 74 101 83 74 117 112 45
++120 63 71 120 63 71 117 112 45 120 63 71 98 106 55 120 63 71 101 83 74 101 74 26
++120 63 71 88 73 62 101 74 26 75 56 53 76 46 20 63 55 45 60 49 42 60 49 42
++55 39 37 55 39 37 55 39 37 63 55 45 75 56 53 75 77 62 101 83 74 99 93 84
++112 96 108 112 123 108 138 126 108 145 140 145 146 151 137 146 151 137 146 162 145 146 162 145
++146 162 145 166 180 164 166 156 164 166 180 164 166 156 164 166 180 164 189 165 168 166 156 164
++166 180 164 166 180 164 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164 150 171 159
++166 156 164 148 160 159 146 162 145 146 151 137 146 151 137 145 140 145 121 143 132 121 143 132
++138 126 108 111 119 127 121 143 132 138 126 108 122 134 144 138 126 108 121 143 132 138 126 108
++145 140 145 138 126 108 121 143 132 126 147 144 146 151 137 150 144 154 146 162 145 166 156 164
++150 171 159 166 156 164 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164 166 180 164
++166 156 164 166 180 164 166 156 164 166 180 164 166 156 164 150 171 159 148 160 159 177 169 143
++150 171 159 166 156 164 150 171 159 146 162 145 166 156 164 146 162 145 166 156 164 146 162 145
++166 156 164 146 162 145 166 156 164 150 171 159 166 156 164 148 160 159 177 169 143 150 171 159
++166 156 164 166 156 164 150 171 159 166 156 164 150 171 159 166 156 164 150 171 159 177 169 143
++150 171 159 166 156 164 166 180 164 166 156 164 150 171 159 166 156 164 150 171 159 166 156 164
++166 180 164 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164 150 171 159 166 156 164
++146 162 145 148 160 159 150 144 154 146 162 145 150 144 154 145 140 145 145 140 145 121 143 132
++122 134 144 111 119 127 98 121 131 94 105 108 77 91 115 77 90 100 60 63 87 42 60 86
++34 42 77 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 29 34 50 34 42 77
++29 34 50 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77
++29 34 50 32 40 58 29 34 50 29 34 50 57 43 64 59 36 42 57 43 64 76 44 53
++57 43 64 76 44 53 76 44 53 88 44 51 88 44 51 101 60 73 102 33 26 120 63 71
++102 33 26 120 63 71 102 33 26 120 63 71 102 33 26 167 63 71 102 33 26 167 63 71
++161 55 23 167 63 71 102 33 26 167 63 71 161 55 23 167 63 71 122 49 24 167 63 71
++122 49 24 167 63 71 161 55 23 122 49 24 167 63 71 161 55 23 161 55 23 167 63 71
++161 55 23 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 161 55 23 167 63 71
++161 55 23 161 55 23 161 55 23 161 55 23 161 55 23 167 63 71 161 55 23 161 55 23
++167 63 71 161 55 23 161 55 23 161 55 23 167 63 71 176 103 41 167 63 71 161 55 23
++176 103 41 167 63 71 176 103 41 167 63 71 176 103 41 168 102 88 176 103 41 176 103 41
++168 102 88 176 103 41 168 102 88 117 112 45 101 74 26 101 74 26 76 46 20 76 46 20
++52 30 15 34 30 15 52 30 15 26 12 13 49 13 16 26 12 13 26 12 13 26 12 13
++26 12 13 49 13 16 26 12 13 22 24 13 49 13 16 34 30 15 34 30 15 52 30 15
++34 30 15 53 35 17 53 35 17 52 30 15 34 30 15 52 30 15 55 39 18 55 39 18
++76 46 20 60 49 42 76 46 20 76 46 20 76 46 20 55 39 18 76 46 20 88 73 31
++117 114 76 168 102 88 168 146 127 177 171 115 168 102 88 138 126 108 138 126 108 168 102 88
++138 126 108 168 102 88 168 102 88 117 112 45 117 99 86 120 63 71 117 112 45 120 63 71
++101 74 26 88 44 51 88 73 31 76 46 20 88 44 51 76 46 20 88 44 51 88 73 31
++88 44 51 76 46 20 88 44 51 76 46 20 59 36 42 76 46 20 53 35 17 52 30 15
++52 30 15 52 30 15 34 30 15 34 30 15 52 30 15 34 30 15 34 30 15 52 30 15
++47 47 21 55 39 18 60 49 42 76 46 20 75 56 53 88 73 31 88 73 62 63 55 45
++55 39 18 34 30 15 34 30 15 34 30 15 34 30 15 33 30 30 33 30 30 42 41 42
++48 50 48 45 57 61 46 59 71 45 57 61 32 40 58 34 42 77 32 40 58 34 42 77
++46 59 71 42 60 86 46 59 71 42 60 86 46 59 71 42 60 86 46 59 71 42 60 86
++60 63 87 42 60 86 46 59 71 46 59 71 42 60 86 60 81 83 46 59 71 42 60 86
++59 69 70 46 59 71 60 81 83 61 78 101 94 105 108 94 105 108 98 121 131 126 147 144
++148 160 159 145 140 145 111 119 127 53 63 61 26 24 32 22 25 24 22 25 24 14 16 17
++3 3 1 3 3 1 13 4 7 26 25 15 47 47 21 63 55 45 75 73 36 75 56 53
++88 73 31 120 63 71 117 114 76 168 102 88 157 148 53 138 126 108 146 150 115 168 146 127
++168 146 127 177 169 143 197 171 123 177 169 143 177 169 143 217 168 156 166 180 164 217 168 156
++189 165 168 214 214 134 217 168 156 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156
++217 168 156 217 168 156 208 215 180 227 171 124 225 222 201 227 171 124 225 222 201 217 168 156
++208 215 180 222 171 182 208 215 180 217 168 156 189 165 168 214 214 134 189 165 168 217 168 156
++217 168 156 217 168 156 214 214 134 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182
++222 171 182 225 222 201 227 171 124 225 222 201 217 168 156 225 222 201 227 171 124 225 222 201
++227 171 124 225 222 201 222 171 182 225 222 201 217 168 156 225 222 201 227 171 124 225 222 201
++214 214 134 222 171 182 214 214 134 222 171 182 225 222 201 188 180 202 145 140 145 95 91 100
++77 91 115 95 95 116 95 108 128 95 108 128 95 108 128 98 121 131 111 122 142 111 122 142
++111 122 142 111 122 142 122 134 144 122 134 144 122 134 144 129 144 153 122 134 144 122 134 144
++129 144 153 129 144 153 129 144 153 122 134 144 129 144 153 122 134 144 129 144 153 129 144 153
++129 144 153 122 134 144 131 144 168 122 134 144 131 144 168 129 144 153 122 134 144 122 134 144
++122 134 144 122 134 144 122 134 144 111 122 142 122 134 144 111 122 142 111 122 142 111 122 142
++111 122 142 111 122 142 95 108 128 95 108 128 95 108 128 77 91 115 95 108 128 77 91 115
++77 91 115 77 91 115 61 78 101 61 78 101 61 78 101 60 63 87 60 63 87 60 63 87
++42 60 86 42 60 86 34 42 77 46 59 71 34 42 77 46 59 71 34 42 77 42 60 86
++34 42 77 46 59 71 34 42 77 42 60 86 34 42 77 46 59 71 34 42 77 46 59 71
++42 60 86 42 60 86 42 60 86 42 60 86 61 78 101 61 78 101 61 78 101 61 78 101
++77 91 115 77 91 115 77 91 115 77 91 115 95 108 128 95 108 128 95 108 128 95 108 128
++98 121 131 98 121 131 98 121 131 111 119 127 111 122 142 111 119 127 111 122 142 111 122 142
++111 122 142 122 134 144 111 122 142 95 119 107 94 105 108 94 105 108 146 151 137 150 171 159
++177 169 143 177 169 143 146 162 145 168 146 127 177 171 115 146 150 115 177 171 115 146 150 115
++146 150 115 146 150 115 146 150 115 157 148 53 138 126 108 146 150 115 117 127 86 138 126 108
++117 127 86 157 148 53 117 127 86 117 114 76 117 114 76 157 148 53 117 114 76 117 114 76
++117 114 76 117 127 86 117 127 86 117 127 86 117 127 86 117 114 76 99 93 84 87 99 72
++75 73 58 63 55 45 34 30 15 23 31 15 22 24 13 15 17 7 15 17 7 15 22 17
++23 31 15 31 35 35 43 55 48 59 69 70 90 98 89 112 123 108 111 119 127 126 147 144
++126 147 144 126 147 144 145 140 145 129 144 153 129 144 153 148 160 159 148 160 159 131 144 168
++148 160 159 148 160 159 150 168 183 148 160 159 150 171 159 148 160 159 148 160 159 148 160 159
++150 171 159 148 160 159 148 160 159 150 144 154 148 160 159 129 144 153 126 147 144 129 144 153
++122 134 144 121 143 132 122 134 144 111 119 127 98 121 131 95 108 128 95 108 128 77 91 115
++77 90 100 61 78 101 61 78 101 60 63 87 60 63 87 60 63 87 42 60 86 46 59 71
++34 42 77 45 57 61 34 42 77 32 40 58 46 59 71 32 40 58 32 40 58 32 40 58
++32 40 58 34 42 77 32 40 58 32 40 58 34 42 77 32 40 58 32 40 58 34 42 77
++32 40 58 32 40 58 32 40 58 34 42 77 45 57 61 34 42 77 46 59 71 46 59 71
++42 60 86 42 60 86 60 63 87 60 63 87 61 78 101 75 81 90 61 78 101 75 81 90
++77 90 100 77 90 100 77 90 100 77 90 100 77 91 115 77 90 100 77 91 115 77 90 100
++77 91 115 95 95 116 77 91 115 77 91 115 77 90 100 77 91 115 77 91 115 77 91 115
++77 90 100 77 91 115 77 90 100 77 90 100 77 90 100 61 78 101 75 81 90 61 78 101
++75 81 90 61 78 101 60 81 83 60 63 87 60 63 87 60 63 87 46 59 71 46 59 71
++46 59 71 46 59 71 32 40 58 34 42 77 32 40 58 32 40 58 32 40 58 32 40 58
++32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58
++32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 29 34 50 32 40 58 32 40 58
++29 34 50 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58
++32 40 58 32 40 58 45 57 61 46 59 71 34 42 77 46 59 71 46 59 71 60 63 87
++60 63 87 60 81 83 60 63 87 60 81 83 60 81 83 60 81 83 60 81 83 60 81 83
++60 81 83 60 81 83 60 81 83 60 81 83 60 81 83 60 63 87 60 81 83 60 63 87
++60 63 87 46 59 71 46 59 71 46 59 71 46 59 71 45 57 61 34 42 77 45 57 61
++32 40 58 57 43 64 46 59 71 46 59 71 46 59 71 60 63 87 60 63 87 60 63 87
++60 81 83 60 63 87 60 81 83 60 81 83 60 63 87 60 81 83 61 78 101 60 81 83
++
++111 119 127 121 143 132 141 116 139 112 123 108 112 123 108 94 105 108 95 91 100 99 93 84
++99 93 84 88 83 88 88 83 74 101 83 74 101 83 74 101 83 74 101 83 74 88 73 62
++120 63 71 98 106 55 120 63 71 101 83 74 120 63 71 101 74 26 101 83 74 120 63 71
++88 73 31 88 73 62 88 44 51 88 73 31 75 56 53 76 46 20 60 49 42 76 46 20
++55 39 37 55 39 18 55 39 37 47 47 21 60 49 42 64 70 48 75 81 69 99 93 84
++117 99 86 112 123 108 138 126 108 138 126 108 145 140 145 146 151 137 146 151 137 166 156 164
++166 156 164 146 162 145 166 180 164 166 156 164 166 180 164 166 180 164 166 180 164 166 180 164
++189 165 168 166 156 164 166 180 164 166 180 164 166 180 164 166 156 164 166 180 164 166 156 164
++146 162 145 166 156 164 146 151 137 150 144 154 146 151 137 138 126 108 145 140 145 138 126 108
++122 134 144 138 126 108 119 117 138 138 126 108 121 143 132 111 119 127 121 143 132 141 116 139
++121 143 132 121 143 132 145 140 145 146 151 137 145 140 145 146 151 137 148 160 159 146 162 145
++166 156 164 150 171 159 166 180 164 166 180 164 166 180 164 166 156 164 166 180 164 166 180 164
++166 156 164 150 171 159 166 180 164 166 156 164 150 171 159 166 156 164 150 171 159 166 156 164
++146 162 145 166 156 164 146 162 145 166 156 164 146 162 145 166 156 164 146 162 145 166 156 164
++146 162 145 166 156 164 146 162 145 166 156 164 150 171 159 166 156 164 148 160 159 166 156 164
++150 171 159 166 180 164 166 156 164 150 171 159 166 156 164 166 180 164 166 156 164 150 171 159
++166 156 164 166 156 164 150 171 159 166 156 164 166 180 164 166 156 164 166 180 164 150 171 159
++166 156 164 150 171 159 166 156 164 150 171 159 166 156 164 150 171 159 166 156 164 150 171 159
++148 160 159 150 144 154 148 160 159 150 144 154 146 162 145 145 140 145 126 147 144 122 134 144
++119 117 138 111 119 127 111 119 127 95 95 116 77 91 115 75 81 90 61 78 101 42 60 86
++34 42 77 34 42 77 32 40 58 32 40 58 32 40 58 29 34 50 34 42 77 24 30 43
++34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 29 34 50
++34 42 77 29 34 50 57 43 64 59 36 42 57 43 64 57 43 64 59 36 42 76 44 53
++76 44 53 88 44 51 88 44 51 88 44 51 88 44 51 102 33 26 120 63 71 102 33 26
++167 63 71 102 33 26 167 63 71 102 33 26 167 63 71 102 33 26 167 63 71 102 33 26
++167 63 71 122 49 24 167 63 71 161 55 23 167 63 71 122 49 24 161 55 23 161 55 23
++167 63 71 161 55 23 161 55 23 167 63 71 161 55 23 161 55 23 167 63 71 161 55 23
++161 55 23 167 63 71 161 55 23 161 55 23 161 55 23 167 63 71 161 55 23 161 55 23
++167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23
++161 55 23 167 63 71 161 55 23 176 103 41 161 55 23 161 55 23 176 103 41 161 55 23
++167 63 71 176 103 41 161 55 23 176 103 41 176 103 41 176 103 41 176 103 41 176 103 41
++176 103 41 176 103 41 176 103 41 176 103 41 176 103 41 176 103 41 176 103 41 101 74 26
++161 55 23 101 74 26 101 74 26 122 49 24 76 46 20 76 46 20 52 30 15 49 13 16
++49 13 16 23 10 10 23 10 10 23 10 10 23 10 10 15 17 7 23 10 10 23 10 10
++23 10 10 23 10 10 22 24 13 23 10 10 26 12 13 34 30 15 34 30 15 34 30 15
++52 30 15 34 30 15 52 30 15 49 13 16 52 30 15 76 46 20 101 74 26 176 103 41
++146 150 115 177 171 115 177 171 115 168 102 88 146 150 115 168 102 88 146 150 115 168 102 88
++146 150 115 168 102 88 117 114 76 168 102 88 120 63 71 117 112 45 120 63 71 120 63 71
++101 74 26 88 44 51 76 46 20 76 46 20 88 73 31 88 44 51 88 73 31 88 44 51
++76 46 20 76 46 20 76 46 20 76 46 20 76 46 20 59 36 42 55 39 18 52 30 15
++34 30 15 34 30 15 34 30 15 49 13 16 34 30 15 34 30 15 52 30 15 36 35 37
++55 39 18 60 49 42 76 46 20 75 56 53 88 73 31 88 73 62 88 73 31 75 56 53
++55 39 18 34 30 15 34 30 15 34 30 15 30 30 34 31 35 35 34 40 43 32 40 58
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++42 60 86 42 60 86 42 60 86 34 42 77 42 60 86 46 59 71 42 60 86 46 59 71
++60 63 87 46 59 71 59 69 70 42 60 86 59 69 70 46 59 71 46 59 71 59 69 70
++42 60 86 60 81 83 60 81 83 75 81 90 77 90 100 95 108 128 111 119 127 122 134 144
++129 144 153 148 160 159 148 160 159 111 119 127 60 81 83 28 30 35 25 30 29 42 47 42
++22 25 24 3 3 1 3 3 1 15 17 7 32 39 24 63 55 45 75 73 36 75 56 53
++88 73 31 98 106 55 101 83 74 117 114 76 117 114 76 168 102 88 138 126 108 168 102 88
++177 171 115 168 146 127 168 146 127 197 171 123 177 169 143 197 171 123 177 169 143 214 214 134
++217 168 156 189 165 168 208 215 180 217 168 156 217 168 156 214 214 134 189 165 168 214 214 134
++217 168 156 208 215 180 217 168 156 217 168 156 208 215 180 222 171 182 214 214 134 222 171 182
++225 222 201 227 171 124 208 215 180 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156
++208 215 180 217 168 156 217 168 156 208 215 180 217 168 156 222 171 182 208 215 180 222 171 182
++214 214 134 222 171 182 225 222 201 222 171 182 214 214 134 225 222 201 222 171 182 214 214 134
++222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 222 171 182 225 222 201 217 168 156
++225 222 201 222 171 182 225 222 201 222 171 182 208 215 180 222 171 182 177 169 143 111 119 127
++95 91 100 94 105 108 95 108 128 98 121 131 98 121 131 111 122 142 111 122 142 111 122 142
++122 134 144 122 134 144 122 134 144 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153
++129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 131 144 168 129 144 153
++129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 126 147 144
++122 134 144 122 134 144 126 147 144 122 134 144 122 134 144 122 134 144 122 134 144 111 122 142
++111 122 142 111 122 142 111 122 142 111 122 142 98 121 131 95 108 128 95 108 128 95 108 128
++77 91 115 77 91 115 77 91 115 77 91 115 61 78 101 61 78 101 60 63 87 42 60 86
++42 60 86 34 42 77 42 60 86 34 42 77 42 60 86 34 42 77 34 42 77 34 42 77
++46 59 71 34 42 77 42 60 86 34 42 77 42 60 86 34 42 77 42 60 86 42 60 86
++42 60 86 60 63 87 60 63 87 61 78 101 61 78 101 61 78 101 77 91 115 77 91 115
++77 91 115 94 105 108 95 108 128 95 108 128 98 121 131 98 121 131 98 121 131 98 121 131
++111 122 142 111 122 142 111 122 142 111 122 142 122 134 144 111 122 142 121 143 132 111 122 142
++121 143 132 111 122 142 121 143 132 119 117 138 112 123 108 138 126 108 146 162 145 177 169 143
++146 162 145 146 150 115 177 171 115 146 150 115 146 150 115 177 171 115 146 150 115 146 150 115
++157 148 53 146 150 115 157 148 53 146 150 115 157 148 53 117 127 86 157 148 53 117 127 86
++157 148 53 117 114 76 117 114 76 117 114 76 117 114 76 117 114 76 117 114 76 117 127 86
++117 127 86 138 126 108 138 126 108 112 123 108 117 99 86 87 99 72 75 77 62 64 70 48
++47 47 21 32 39 24 22 24 13 22 24 13 22 24 13 15 22 17 23 31 15 28 35 38
++45 57 61 60 81 83 94 105 108 111 119 127 111 119 127 122 134 144 122 134 144 126 147 144
++145 140 145 126 147 144 129 144 153 148 160 159 129 144 153 148 160 159 148 160 159 148 160 159
++148 160 159 148 160 159 150 171 159 150 168 183 166 156 164 150 168 183 166 174 181 150 168 183
++150 168 183 148 160 159 148 160 159 148 160 159 129 144 153 148 160 159 129 144 153 129 144 153
++126 147 144 122 134 144 111 122 142 111 122 142 98 121 131 98 121 131 94 105 108 77 91 115
++77 91 115 77 90 100 61 78 101 61 78 101 60 63 87 42 60 86 46 59 71 42 60 86
++46 59 71 34 42 77 32 40 58 34 42 77 32 40 58 34 42 77 45 57 61 34 42 77
++32 40 58 32 40 58 34 42 77 32 40 58 34 42 77 32 40 58 32 40 58 32 40 58
++34 42 77 32 40 58 46 59 71 34 42 77 34 42 77 46 59 71 42 60 86 42 60 86
++60 63 87 60 81 83 61 78 101 75 81 90 61 78 101 77 90 100 77 90 100 77 90 100
++77 90 100 77 91 115 77 91 115 95 95 116 77 91 115 94 105 108 94 105 108 94 105 108
++94 105 108 95 95 116 94 105 108 94 105 108 95 95 116 77 91 115 94 105 108 77 91 115
++94 105 108 77 91 115 77 91 115 77 91 115 77 90 100 77 91 115 77 91 115 77 90 100
++77 90 100 61 78 101 61 78 101 60 63 87 60 81 83 60 63 87 60 63 87 60 63 87
++46 59 71 46 59 71 46 59 71 34 42 77 32 40 58 32 40 58 32 40 58 32 40 58
++32 40 58 29 34 50 32 40 58 29 34 50 32 40 58 32 40 58 29 34 50 32 40 58
++29 34 50 32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58 32 40 58
++32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58
++32 40 58 46 59 71 34 42 77 46 59 71 46 59 71 60 63 87 60 63 87 60 63 87
++61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 77 90 100 61 78 101
++75 81 90 61 78 101 75 81 90 61 78 101 75 81 90 61 78 101 60 81 83 60 81 83
++60 63 87 60 63 87 59 69 70 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71
++46 59 71 46 59 71 46 59 71 60 63 87 60 63 87 60 81 83 60 63 87 60 81 83
++61 78 101 75 81 90 61 78 101 75 81 90 75 81 90 77 90 100 75 81 90 61 78 101
++
++111 119 127 138 126 108 111 119 127 112 123 108 112 96 108 112 123 108 95 91 100 90 98 89
++88 83 74 88 83 74 88 83 74 88 73 62 88 73 62 101 83 74 101 74 26 120 63 71
++101 83 74 101 74 26 120 63 71 117 112 45 120 63 71 117 112 45 120 63 71 101 74 26
++120 63 71 88 73 62 88 73 31 75 56 53 75 56 53 76 46 20 60 49 42 55 39 37
++55 39 18 53 35 37 34 30 15 53 35 37 51 49 42 63 55 51 75 73 58 88 83 74
++99 93 84 112 96 108 112 123 108 121 143 132 138 126 108 145 140 145 146 151 137 146 151 137
++146 162 145 166 156 164 166 180 164 166 156 164 166 180 164 189 165 168 166 180 164 166 156 164
++166 180 164 166 180 164 166 180 164 189 165 168 166 180 164 166 156 164 166 180 164 177 169 143
++166 156 164 146 162 145 146 162 145 146 151 137 145 140 145 145 140 145 121 143 132 138 126 108
++119 117 138 121 143 132 138 126 108 111 119 127 121 143 132 138 126 108 121 143 132 138 126 108
++121 143 132 138 126 108 121 143 132 145 140 145 146 151 137 146 162 145 150 144 154 177 169 143
++150 171 159 166 156 164 166 156 164 166 180 164 166 156 164 166 180 164 166 180 164 166 156 164
++166 180 164 166 156 164 150 171 159 166 156 164 166 180 164 146 162 145 166 156 164 146 162 145
++166 156 164 146 162 145 166 156 164 146 162 145 148 160 159 146 162 145 166 156 164 146 162 145
++148 160 159 146 162 145 166 156 164 146 162 145 166 156 164 146 162 145 150 171 159 146 162 145
++166 156 164 148 160 159 177 169 143 150 171 159 166 156 164 150 171 159 166 156 164 150 171 159
++166 156 164 166 180 164 166 156 164 177 169 143 150 171 159 166 156 164 150 171 159 166 156 164
++166 180 164 166 156 164 166 180 164 166 156 164 150 171 159 166 156 164 148 160 159 166 156 164
++146 162 145 150 144 154 146 162 145 145 140 145 150 144 154 129 144 153 145 140 145 122 134 144
++121 143 132 111 119 127 111 119 127 94 105 108 95 95 116 61 78 101 60 63 87 42 60 86
++34 42 77 34 42 77 29 34 50 34 42 77 29 34 50 34 42 77 24 30 43 34 42 77
++24 30 43 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 29 34 50 34 42 77
++29 34 50 57 43 64 29 34 50 57 43 64 57 43 64 76 44 53 57 43 64 76 44 53
++57 43 64 88 44 51 88 44 51 88 44 51 120 63 71 88 44 51 120 63 71 120 63 71
++102 33 26 120 63 71 102 33 26 167 63 71 122 49 24 167 63 71 102 33 26 167 63 71
++161 55 23 161 55 23 167 63 71 102 33 26 161 55 23 167 63 71 161 55 23 167 63 71
++161 55 23 161 55 23 167 63 71 161 55 23 161 55 23 167 63 71 161 55 23 161 55 23
++167 63 71 161 55 23 161 55 23 167 63 71 161 55 23 161 55 23 167 63 71 161 55 23
++167 63 71 161 55 23 161 55 23 167 63 71 161 55 23 161 55 23 161 55 23 161 55 23
++167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 176 103 41
++161 55 23 176 103 41 167 63 71 176 103 41 161 55 23 176 103 41 161 55 23 176 103 41
++176 103 41 176 103 41 176 103 41 176 103 41 176 103 41 176 103 41 176 103 41 176 103 41
++157 148 53 176 103 41 176 103 41 117 112 45 176 103 41 117 112 45 101 74 26 88 73 31
++76 46 20 55 39 18 52 30 15 34 30 15 15 17 7 23 10 10 15 17 7 15 17 7
++15 17 7 13 4 7 13 4 7 13 4 7 13 4 7 15 17 7 23 10 10 26 12 13
++23 10 10 52 30 15 53 35 17 88 73 31 101 74 26 176 103 41 157 148 53 157 148 53
++168 102 88 157 148 53 201 146 124 168 146 127 146 150 115 168 102 88 138 126 108 157 148 53
++168 102 88 117 114 76 168 102 88 117 112 45 120 63 71 101 74 26 120 63 71 101 74 26
++88 73 31 88 73 31 76 46 20 88 44 51 76 46 20 88 73 31 88 44 51 88 73 31
++76 46 20 88 44 51 76 46 20 76 46 20 59 36 42 76 46 20 52 30 35 52 30 15
++34 30 15 49 13 16 34 30 15 34 30 15 52 30 15 34 30 15 34 30 15 55 39 18
++60 49 42 76 46 20 63 55 45 75 56 53 88 73 31 88 73 62 88 73 62 63 55 45
++55 39 18 52 30 15 34 30 15 34 30 15 33 30 32 43 42 50 32 40 58 45 57 61
++46 59 71 34 42 77 34 42 77 34 42 77 34 42 77 42 60 86 34 42 77 46 59 71
++34 42 77 42 60 86 34 42 77 42 60 86 42 60 86 42 60 86 46 59 71 42 60 86
++46 59 71 60 63 87 42 60 86 59 69 70 42 60 86 59 69 70 42 60 86 59 69 70
++46 59 71 59 69 70 60 81 83 77 90 100 77 91 115 95 119 107 98 121 131 111 122 142
++126 147 144 129 144 153 150 168 183 148 160 159 122 134 144 60 81 83 43 55 48 75 72 67
++45 57 61 22 25 24 3 3 1 15 17 7 32 39 24 47 47 21 63 55 45 88 73 31
++88 73 62 101 83 74 117 114 76 168 102 88 117 114 76 138 126 108 157 148 53 146 150 115
++168 102 88 146 150 115 168 146 127 168 146 127 197 171 123 177 169 143 197 171 123 189 165 168
++214 214 134 189 165 168 214 214 134 217 168 156 208 215 180 217 168 156 208 215 180 189 165 168
++217 168 156 217 168 156 214 214 134 222 171 182 214 214 134 217 168 156 225 222 201 222 171 182
++214 214 134 222 171 182 208 215 180 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156
++217 168 156 217 168 156 208 215 180 217 168 156 214 214 134 222 171 182 214 214 134 217 168 156
++225 222 201 222 171 182 214 214 134 222 171 182 225 222 201 227 171 124 225 222 201 222 171 182
++208 215 180 222 171 182 225 222 201 222 171 182 214 214 134 225 222 201 227 171 124 225 222 201
++222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 225 222 201 189 165 168 145 140 145
++94 105 108 95 95 116 98 121 131 111 119 127 111 122 142 111 122 142 122 134 144 122 134 144
++122 134 144 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 131 144 168
++129 144 153 148 160 159 129 144 153 148 160 159 131 144 168 148 160 159 129 144 153 148 160 159
++129 144 153 148 160 159 129 144 153 148 160 159 131 144 168 129 144 153 129 144 153 129 144 153
++129 144 153 129 144 153 129 144 153 129 144 153 126 147 144 122 134 144 122 134 144 122 134 144
++122 134 144 111 122 142 111 122 142 111 122 142 111 122 142 95 108 128 95 108 128 95 108 128
++95 108 128 77 91 115 77 91 115 77 91 115 77 91 115 61 78 101 61 78 101 60 63 87
++60 63 87 42 60 86 34 42 77 42 60 86 34 42 77 34 42 77 46 59 71 34 42 77
++34 42 77 42 60 86 34 42 77 34 42 77 42 60 86 34 42 77 42 60 86 42 60 86
++42 60 86 42 60 86 61 78 101 61 78 101 61 78 101 77 90 100 77 91 115 77 91 115
++77 91 115 95 108 128 95 108 128 95 108 128 98 121 131 98 121 131 111 122 142 111 122 142
++111 122 142 111 122 142 122 134 144 122 134 144 121 143 132 111 122 142 122 134 144 122 134 144
++122 134 144 122 134 144 122 134 144 121 143 132 111 119 127 121 143 132 146 151 137 146 150 115
++146 150 115 146 150 115 146 150 115 146 150 115 146 150 115 146 150 115 157 148 53 146 150 115
++157 148 53 146 150 115 157 148 53 117 127 86 117 127 86 117 127 86 157 148 53 117 127 86
++117 114 76 117 114 76 117 112 45 117 127 86 117 112 45 117 127 86 157 148 53 117 127 86
++117 127 86 117 114 76 98 106 55 75 77 62 64 70 48 51 49 42 47 47 21 32 39 24
++26 25 15 22 24 13 22 24 13 15 17 7 15 22 17 32 39 24 43 55 48 60 81 83
++77 90 100 95 119 107 111 119 127 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144
++126 147 144 145 140 145 129 144 153 148 160 159 131 144 168 148 160 159 150 147 171 148 160 159
++150 168 183 150 168 183 150 171 159 166 174 181 150 171 159 166 174 181 150 171 159 166 156 164
++150 168 183 150 168 183 150 147 171 148 160 159 131 144 168 148 160 159 131 144 168 129 144 153
++126 147 144 122 134 144 122 134 144 121 143 132 111 119 127 98 121 131 95 108 128 94 105 108
++77 91 115 77 90 100 61 78 101 61 78 101 60 63 87 60 63 87 60 63 87 46 59 71
++34 42 77 46 59 71 34 42 77 35 47 50 34 42 77 32 40 58 34 42 77 32 40 58
++32 40 58 34 42 77 35 47 50 34 42 77 32 40 58 32 40 58 34 42 77 32 40 58
++35 47 50 34 42 77 32 40 58 46 59 71 46 59 71 42 60 86 60 63 87 60 63 87
++61 78 101 61 78 101 61 78 101 77 90 100 77 90 100 77 90 100 77 91 115 77 90 100
++77 91 115 94 105 108 94 105 108 77 91 115 94 105 108 95 108 128 77 91 115 95 108 128
++95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 94 105 108 95 108 128 95 108 128
++77 91 115 95 108 128 94 105 108 77 91 115 94 105 108 77 91 115 77 91 115 77 91 115
++77 90 100 77 90 100 77 90 100 75 81 90 61 78 101 60 81 83 60 63 87 60 63 87
++60 63 87 42 60 86 46 59 71 46 59 71 45 57 61 34 42 77 32 40 58 32 40 58
++32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 34 42 77 29 34 50
++32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 29 34 50 32 40 58 29 34 50
++32 40 58 29 34 50 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58 32 40 58
++34 42 77 32 40 58 46 59 71 46 59 71 46 59 71 42 60 86 60 63 87 61 78 101
++75 81 90 61 78 101 77 90 100 77 90 100 77 90 100 77 91 115 77 90 100 77 90 100
++77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 75 81 90 75 81 90 61 78 101
++60 81 83 60 63 87 60 63 87 60 63 87 46 59 71 46 59 71 46 59 71 46 59 71
++46 59 71 59 69 70 60 63 87 60 81 83 60 81 83 60 81 83 61 78 101 75 81 90
++61 78 101 77 90 100 75 81 90 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100
++
++111 119 127 121 143 132 111 119 127 112 123 108 94 105 108 95 91 100 90 98 89 88 83 88
++75 81 76 75 72 67 75 77 62 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62
++101 83 74 120 63 71 98 106 55 101 74 26 120 63 71 88 73 62 101 74 26 101 83 74
++88 73 62 101 74 26 101 60 73 75 56 53 76 46 20 63 55 45 55 39 37 55 39 18
++53 35 37 34 30 15 34 30 15 33 30 30 55 39 37 60 49 42 64 70 48 75 73 58
++88 83 74 99 93 84 112 96 108 112 123 108 138 126 108 121 143 132 146 151 137 145 140 145
++150 144 154 146 162 145 166 156 164 150 171 159 166 156 164 166 180 164 166 180 164 189 165 168
++166 180 164 166 156 164 166 180 164 166 180 164 166 156 164 166 180 164 166 156 164 150 171 159
++166 156 164 146 162 145 150 144 154 146 151 137 146 151 137 121 143 132 121 143 132 141 116 139
++117 142 111 138 126 108 122 134 144 138 126 108 121 143 132 119 117 138 138 126 108 122 134 144
++121 143 132 141 116 139 121 143 132 146 151 137 145 140 145 146 151 137 146 162 145 148 160 159
++166 156 164 150 171 159 166 180 164 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164
++166 180 164 166 180 164 166 156 164 150 171 159 166 156 164 150 171 159 166 156 164 146 162 145
++148 160 159 146 162 145 148 160 159 146 162 145 166 156 164 146 162 145 146 162 145 150 144 154
++166 156 164 146 162 145 146 162 145 166 156 164 146 162 145 146 162 145 166 156 164 146 162 145
++166 156 164 150 171 159 166 156 164 150 171 159 177 169 143 148 160 159 166 156 164 150 171 159
++166 156 164 146 162 145 166 156 164 150 171 159 166 156 164 150 171 159 177 169 143 148 160 159
++177 169 143 150 171 159 166 156 164 150 171 159 177 169 143 148 160 159 146 162 145 148 160 159
++146 162 145 150 144 154 150 144 154 145 140 145 145 140 145 126 147 144 126 147 144 119 117 138
++121 143 132 111 119 127 111 119 127 95 95 116 77 91 115 75 81 90 61 78 101 42 60 86
++46 59 71 34 42 77 32 40 58 32 40 58 34 42 77 24 30 43 34 42 77 24 30 43
++34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 34 42 77 24 30 43 34 42 77
++29 34 50 29 34 50 57 43 64 59 36 42 57 43 64 57 43 64 76 44 53 88 44 51
++88 44 51 88 44 51 101 60 73 88 44 51 120 63 71 120 63 71 102 33 26 120 63 71
++167 63 71 120 63 71 167 63 71 102 33 26 167 63 71 167 63 71 122 49 24 167 63 71
++102 33 26 167 63 71 161 55 23 167 63 71 167 63 71 161 55 23 167 63 71 122 49 24
++167 63 71 161 55 23 161 55 23 167 63 71 161 55 23 161 55 23 167 63 71 161 55 23
++161 55 23 167 63 71 161 55 23 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23
++161 55 23 167 63 71 161 55 23 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23
++176 103 41 161 55 23 176 103 41 161 55 23 176 103 41 167 63 71 176 103 41 161 55 23
++167 63 71 176 103 41 161 55 23 176 103 41 176 103 41 176 103 41 176 103 41 176 103 41
++176 103 41 176 103 41 176 103 41 176 103 41 176 103 41 157 148 53 176 103 41 219 175 47
++176 103 41 157 148 53 219 175 47 176 103 41 157 148 53 168 102 88 157 148 53 168 102 88
++157 148 53 117 112 45 101 74 26 101 74 26 76 46 20 76 46 20 76 46 20 76 46 20
++55 39 18 55 39 18 55 39 18 52 30 15 55 39 18 76 46 20 76 46 20 76 46 20
++101 74 26 101 74 26 117 112 45 176 103 41 157 148 53 157 148 53 168 146 127 168 102 88
++177 171 115 168 102 88 177 171 115 168 102 88 157 148 53 138 126 108 168 102 88 138 126 108
++168 102 88 117 114 76 176 103 41 117 99 86 120 63 71 101 74 26 101 74 26 88 44 51
++88 44 51 76 46 20 76 46 20 76 46 20 76 46 20 88 44 51 88 73 31 88 44 51
++88 73 31 76 46 20 63 55 45 76 46 20 55 39 37 53 35 17 52 30 15 52 30 15
++34 30 15 52 30 15 34 30 15 52 30 15 34 30 15 34 30 15 53 35 17 55 39 37
++55 39 18 63 55 45 76 46 20 88 73 31 88 73 62 120 63 71 88 73 31 75 56 53
++55 39 18 34 30 15 34 30 15 33 30 32 42 41 42 45 57 61 45 57 61 34 42 77
++34 42 77 34 42 77 34 42 77 46 59 71 34 42 77 34 42 77 42 60 86 34 42 77
++42 60 86 46 59 71 42 60 86 34 42 77 42 60 86 46 59 71 42 60 86 46 59 71
++42 60 86 46 59 71 59 69 70 42 60 86 59 69 70 42 60 86 59 69 70 42 60 86
++60 81 83 42 60 86 60 81 83 75 81 90 77 90 100 95 108 128 111 119 127 121 143 132
++122 134 144 129 144 153 150 144 154 150 168 183 166 174 181 122 134 144 112 123 108 95 108 128
++88 83 88 42 47 42 3 3 1 3 3 1 15 17 7 47 47 21 63 55 45 75 73 58
++88 73 31 101 83 74 117 112 45 117 114 76 138 126 108 117 114 76 138 126 108 138 126 108
++138 126 108 146 150 115 168 146 127 177 171 115 168 146 127 197 171 123 177 169 143 177 169 143
++197 171 123 189 165 168 217 168 156 166 180 164 217 168 156 208 215 180 217 168 156 214 214 134
++208 215 180 217 168 156 217 168 156 217 168 156 208 215 180 217 168 156 214 214 134 222 171 182
++225 222 201 217 168 156 208 215 180 217 168 156 217 168 156 208 215 180 217 168 156 217 168 156
++208 215 180 217 168 156 217 168 156 208 215 180 217 168 156 208 215 180 222 171 182 208 215 180
++217 168 156 214 214 134 222 171 182 208 215 180 222 171 182 225 222 201 227 171 124 208 215 180
++217 168 156 214 214 134 222 171 182 214 214 134 222 171 182 222 171 182 208 215 180 217 168 156
++225 222 201 222 171 182 214 214 134 222 171 182 225 222 201 217 168 156 208 215 180 146 151 137
++111 119 127 111 119 127 111 119 127 111 122 142 111 122 142 122 134 144 122 134 144 129 144 153
++129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159
++148 160 159 131 144 168 148 160 159 148 160 159 131 144 168 148 160 159 131 144 168 148 160 159
++148 160 159 131 144 168 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 148 160 159
++129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153
++129 144 153 122 134 144 122 134 144 111 122 142 111 122 142 111 122 142 98 121 131 95 108 128
++95 108 128 95 108 128 95 108 128 77 91 115 77 91 115 61 78 101 61 78 101 61 78 101
++42 60 86 60 63 87 42 60 86 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++42 60 86 34 42 77 46 59 71 34 42 77 42 60 86 60 63 87 42 60 86 60 63 87
++60 63 87 61 78 101 61 78 101 61 78 101 77 91 115 77 91 115 77 91 115 95 108 128
++98 121 131 95 108 128 98 121 131 98 121 131 111 122 142 111 122 142 122 134 144 121 143 132
++111 122 142 121 143 132 122 134 144 122 134 144 122 134 144 122 134 144 126 147 144 122 134 144
++129 144 153 129 144 153 145 140 145 122 134 144 121 143 132 138 126 108 146 150 115 146 150 115
++146 150 115 146 150 115 146 150 115 157 148 53 146 150 115 146 150 115 146 150 115 157 148 53
++138 126 108 117 127 86 157 148 53 138 126 108 157 148 53 117 114 76 117 114 76 117 112 45
++117 114 76 117 112 45 117 127 86 117 127 86 157 148 53 117 127 86 117 114 76 117 114 76
++98 106 55 75 73 58 63 55 45 47 47 21 23 31 15 15 17 7 22 24 13 22 24 13
++22 24 13 22 24 13 23 31 15 22 25 24 33 39 38 53 63 61 75 81 90 94 105 108
++111 119 127 111 122 142 122 134 144 121 143 132 122 134 144 122 134 144 145 140 145 126 147 144
++150 144 154 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 150 168 183
++166 156 164 166 174 181 150 171 159 150 168 183 166 174 181 166 180 164 150 168 183 166 174 181
++148 160 159 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 129 144 153
++129 144 153 126 147 144 122 134 144 98 121 131 111 122 142 98 121 131 95 108 128 95 108 128
++77 91 115 77 91 115 61 78 101 61 78 101 61 78 101 60 63 87 42 60 86 42 60 86
++46 59 71 34 42 77 45 57 61 34 42 77 32 40 58 32 40 58 32 40 58 34 42 77
++32 40 58 34 42 77 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58
++34 42 77 46 59 71 46 59 71 42 60 86 42 60 86 42 60 86 60 81 83 61 78 101
++75 81 90 77 90 100 77 90 100 77 91 115 77 91 115 94 105 108 77 91 115 94 105 108
++95 108 128 94 105 108 95 108 128 95 108 128 95 108 128 95 119 107 98 121 131 98 121 131
++98 121 131 95 119 107 98 121 131 98 121 131 98 121 131 95 108 128 98 121 131 95 119 107
++95 108 128 95 108 128 95 108 128 95 108 128 94 105 108 95 95 116 95 95 116 77 91 115
++77 91 115 77 91 115 77 91 115 77 90 100 77 90 100 61 78 101 61 78 101 60 63 87
++60 63 87 60 63 87 46 59 71 46 59 71 34 42 77 32 40 58 32 40 58 32 40 58
++32 40 58 32 40 58 29 34 50 34 42 77 29 34 50 32 40 58 32 40 58 29 34 50
++32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58
++32 40 58 32 40 58 29 34 50 32 40 58 29 34 50 32 40 58 32 40 58 45 57 61
++45 57 61 46 59 71 46 59 71 46 59 71 60 63 87 60 63 87 60 81 83 61 78 101
++77 90 100 77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 94 105 108 77 91 115
++77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 61 78 101 75 81 90
++75 81 90 60 81 83 60 63 87 60 63 87 60 63 87 60 63 87 60 63 87 60 63 87
++60 63 87 60 81 83 60 63 87 60 81 83 75 81 90 75 81 90 77 90 100 77 90 100
++77 90 100 77 90 100 77 90 100 77 91 115 77 91 115 77 90 100 77 91 115 95 95 116
++
++112 123 108 111 119 127 111 119 127 112 123 108 94 105 108 95 91 100 88 83 88 75 81 76
++75 81 69 75 72 67 75 73 58 75 63 62 75 73 58 88 73 62 88 73 62 88 73 31
++101 83 74 88 73 31 120 63 71 101 83 74 101 74 26 101 83 74 120 63 71 88 73 62
++88 44 51 88 73 62 88 73 31 75 73 36 75 56 53 76 46 20 60 49 42 55 39 37
++53 35 17 33 30 30 34 30 15 34 30 15 32 39 24 47 44 42 63 55 45 75 73 58
++75 81 69 99 93 84 117 99 86 112 123 108 112 123 108 138 126 108 145 140 145 146 151 137
++146 151 137 146 162 145 148 160 159 177 169 143 166 156 164 166 180 164 166 156 164 166 180 164
++166 180 164 189 165 168 166 180 164 166 156 164 166 180 164 166 180 164 166 180 164 166 156 164
++177 169 143 166 156 164 146 162 145 150 144 154 146 151 137 145 140 145 121 143 132 138 126 108
++119 117 138 121 143 132 138 126 108 111 119 127 121 143 132 138 126 108 121 143 132 121 143 132
++138 126 108 121 143 132 145 140 145 121 143 132 145 140 145 146 151 137 150 144 154 148 160 159
++177 169 143 150 171 159 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164 166 180 164
++166 180 164 166 156 164 166 180 164 166 156 164 166 180 164 146 162 145 166 156 164 146 162 145
++166 156 164 146 162 145 166 156 164 146 162 145 150 144 154 146 162 145 150 144 154 146 162 145
++146 162 145 146 162 145 150 144 154 146 162 145 146 162 145 150 144 154 146 162 145 166 156 164
++146 162 145 146 162 145 166 156 164 150 171 159 166 156 164 150 171 159 166 156 164 146 162 145
++166 156 164 166 180 164 150 171 159 166 156 164 146 162 145 166 156 164 150 171 159 166 156 164
++150 171 159 166 156 164 150 171 159 166 156 164 148 160 159 146 162 145 166 156 164 148 160 159
++150 144 154 146 162 145 145 140 145 126 147 144 145 140 145 145 140 145 145 140 145 121 143 132
++119 117 138 111 119 127 95 108 128 94 105 108 77 91 115 61 78 101 60 63 87 42 60 86
++34 42 77 34 42 77 29 34 50 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77
++24 30 43 34 42 77 24 30 43 34 42 77 29 34 50 29 34 50 34 42 77 29 34 50
++34 42 77 57 43 64 52 30 35 57 43 64 57 43 64 76 44 53 76 44 53 57 43 64
++101 60 73 88 44 51 88 44 51 120 63 71 88 44 51 120 63 71 120 63 71 120 63 71
++120 63 71 102 33 26 167 63 71 120 63 71 167 63 71 102 33 26 167 63 71 167 63 71
++161 55 23 167 63 71 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23
++161 55 23 167 63 71 122 49 24 161 55 23 167 63 71 161 55 23 161 55 23 167 63 71
++161 55 23 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23
++167 63 71 161 55 23 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71
++161 55 23 167 63 71 167 63 71 161 55 23 167 63 71 161 55 23 161 55 23 176 103 41
++176 103 41 161 55 23 176 103 41 161 55 23 176 103 41 167 63 71 176 103 41 176 103 41
++176 103 41 176 103 41 176 103 41 176 103 41 176 103 41 176 103 41 176 103 41 176 103 41
++219 175 47 176 103 41 176 103 41 176 103 41 176 103 41 219 175 47 176 103 41 219 175 47
++176 103 41 157 148 53 176 103 41 157 148 53 176 103 41 157 148 53 176 103 41 117 112 45
++176 103 41 176 103 41 117 112 45 161 55 23 117 112 45 161 55 23 117 112 45 176 103 41
++176 103 41 219 175 47 176 103 41 157 148 53 219 175 47 168 102 88 157 148 53 157 148 53
++168 102 88 177 171 115 146 150 115 168 102 88 138 126 108 163 117 123 157 148 53 168 102 88
++117 114 76 168 102 88 120 63 71 117 99 86 101 74 26 120 63 71 88 44 51 88 73 31
++88 44 51 76 46 20 60 49 42 76 46 20 88 73 31 88 44 51 88 73 31 88 44 51
++88 73 31 88 44 51 76 46 20 59 36 42 76 46 20 52 30 35 52 30 15 52 30 15
++52 30 15 34 30 15 53 35 17 33 30 30 53 35 17 34 30 15 53 35 17 55 39 18
++60 49 42 76 46 20 75 56 53 88 73 31 88 73 62 98 106 55 101 83 74 75 73 36
++55 39 37 33 30 30 36 35 37 43 42 50 32 40 58 46 59 71 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 42 60 86 34 42 77 34 42 77
++42 60 86 34 42 77 46 59 71 42 60 86 42 60 86 46 59 71 42 60 86 46 59 71
++42 60 86 46 59 71 42 60 86 59 69 70 42 60 86 59 69 70 42 60 86 59 69 70
++46 59 71 60 81 83 60 81 83 77 90 100 77 90 100 95 119 107 98 121 131 111 122 142
++126 147 144 129 144 153 129 144 153 148 160 159 150 171 159 166 156 164 150 168 183 148 160 159
++111 119 127 59 69 70 3 4 9 3 3 1 3 3 1 26 25 15 60 49 42 88 73 62
++88 73 62 98 106 55 99 93 84 117 114 76 168 102 88 117 114 76 168 102 88 117 114 76
++138 126 108 157 148 53 168 102 88 168 146 127 168 146 127 201 146 124 177 169 143 197 171 123
++177 169 143 197 171 123 177 169 143 217 168 156 214 214 134 189 165 168 214 214 134 222 171 182
++217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 217 168 156 222 171 182 214 214 134
++217 168 156 208 215 180 217 168 156 208 215 180 208 215 180 217 168 156 189 165 168 214 214 134
++189 165 168 214 214 134 217 168 156 214 214 134 217 168 156 217 168 156 214 214 134 222 171 182
++217 168 156 225 222 201 222 171 182 222 171 182 214 214 134 217 168 156 225 222 201 217 168 156
++225 222 201 222 171 182 208 215 180 222 171 182 225 222 201 214 214 134 222 171 182 214 214 134
++222 171 182 214 214 134 222 171 182 208 215 180 217 168 156 208 215 180 217 168 156 189 165 168
++138 126 108 111 119 127 111 119 127 119 117 138 122 134 144 122 134 144 122 134 144 129 144 153
++129 144 153 129 144 153 131 144 168 148 160 159 131 144 168 148 160 159 131 144 168 150 147 171
++148 160 159 148 160 159 131 144 168 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159
++131 144 168 148 160 159 148 160 159 148 160 159 131 144 168 148 160 159 148 160 159 148 160 159
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 129 144 153 129 144 153
++129 144 153 129 144 153 122 134 144 122 134 144 111 122 142 111 122 142 98 121 131 111 122 142
++98 121 131 95 108 128 95 108 128 77 91 115 77 91 115 77 91 115 61 78 101 61 78 101
++60 63 87 42 60 86 60 63 87 42 60 86 46 59 71 34 42 77 46 59 71 34 42 77
++34 42 77 42 60 86 34 42 77 42 60 86 34 42 77 42 60 86 60 63 87 42 60 86
++61 78 101 61 78 101 61 78 101 77 91 115 77 91 115 95 108 128 95 108 128 95 108 128
++98 121 131 98 121 131 98 121 131 111 122 142 111 122 142 122 134 144 122 134 144 122 134 144
++126 147 144 122 134 144 129 144 153 129 144 153 126 147 144 129 144 153 126 147 144 129 144 153
++129 144 153 150 144 154 129 144 153 126 147 144 145 140 145 146 151 137 121 143 132 117 142 111
++138 126 108 146 150 115 138 126 108 146 150 115 157 148 53 138 126 108 157 148 53 138 126 108
++157 148 53 117 127 86 157 148 53 117 127 86 117 114 76 117 114 76 117 112 45 117 112 45
++117 114 76 157 148 53 117 127 86 117 114 76 117 114 76 117 99 86 88 73 62 64 70 48
++52 55 48 47 47 21 29 35 19 23 31 15 23 31 15 22 24 13 22 24 13 22 24 13
++22 24 13 22 25 24 28 35 38 45 57 61 60 81 83 77 90 100 94 105 108 95 108 128
++98 121 131 111 119 127 119 117 138 122 134 144 122 134 144 129 144 153 145 140 145 129 144 153
++148 160 159 148 160 159 131 144 168 148 160 159 148 160 159 148 160 159 150 168 183 150 171 159
++166 174 181 150 171 159 166 174 181 166 174 181 166 156 164 150 168 183 166 180 164 150 168 183
++166 156 164 150 168 183 150 171 159 148 160 159 131 144 168 148 160 159 148 160 159 129 144 153
++129 144 153 126 147 144 122 134 144 126 147 144 111 119 127 111 119 127 98 121 131 95 108 128
++94 105 108 77 91 115 77 91 115 77 90 100 61 78 101 61 78 101 60 63 87 60 63 87
++46 59 71 42 60 86 32 40 58 34 42 77 32 40 58 34 42 77 34 42 77 35 47 50
++34 42 77 32 40 58 34 42 77 32 40 58 32 40 58 34 42 77 32 40 58 34 42 77
++35 47 50 34 42 77 42 60 86 46 59 71 60 63 87 60 81 83 61 78 101 61 78 101
++77 91 115 77 90 100 77 91 115 77 91 115 94 105 108 94 105 108 95 108 128 95 119 107
++95 108 128 111 119 127 98 121 131 95 119 107 95 108 128 98 121 131 111 119 127 111 119 127
++111 119 127 98 121 131 111 119 127 111 119 127 111 119 127 98 121 131 98 121 131 98 121 131
++98 121 131 98 121 131 98 121 131 95 108 128 98 121 131 95 108 128 95 108 128 94 105 108
++95 95 116 94 105 108 95 95 116 77 90 100 77 91 115 77 90 100 75 81 90 61 78 101
++60 81 83 60 63 87 60 63 87 42 60 86 46 59 71 46 59 71 34 42 77 34 42 77
++32 40 58 32 40 58 29 34 50 29 34 50 32 40 58 29 34 50 32 40 58 32 40 58
++32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58 29 34 50 32 40 58
++32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58
++46 59 71 46 59 71 46 59 71 60 63 87 60 63 87 61 78 101 75 81 90 77 90 100
++77 90 100 77 90 100 94 105 108 77 91 115 94 105 108 94 105 108 94 105 108 94 105 108
++94 105 108 94 105 108 94 105 108 94 105 108 77 91 115 77 90 100 77 90 100 77 90 100
++75 81 90 61 78 101 60 81 83 75 81 90 60 81 83 60 81 83 60 81 83 60 81 83
++75 81 90 60 81 83 75 81 90 75 81 90 75 81 90 77 90 100 77 90 100 77 90 100
++77 90 100 77 90 100 94 105 108 77 90 100 94 105 108 95 95 116 94 105 108 94 105 108
++
++111 119 127 112 123 108 111 119 127 94 105 108 99 93 84 88 83 88 75 81 82 75 81 69
++75 72 67 65 63 61 75 56 53 75 56 53 75 56 53 75 56 53 75 73 36 88 73 62
++88 44 51 101 83 74 101 74 26 88 73 62 101 83 74 101 74 26 88 73 62 101 74 26
++88 73 62 101 74 26 88 44 51 75 56 53 63 55 45 60 49 42 55 39 37 55 39 18
++34 30 15 34 30 15 28 13 18 34 30 15 34 30 15 33 30 30 55 39 37 60 49 42
++75 73 58 75 81 69 99 93 84 117 99 86 112 123 108 112 123 108 138 126 108 145 140 145
++145 140 145 146 151 137 166 156 164 150 171 159 166 156 164 166 180 164 166 180 164 166 156 164
++166 180 164 166 180 164 166 156 164 166 180 164 166 156 164 166 156 164 166 180 164 150 171 159
++166 156 164 146 162 145 146 151 137 146 151 137 145 140 145 138 126 108 121 143 132 138 126 108
++121 143 132 138 126 108 121 143 132 121 143 132 138 126 108 122 134 144 121 143 132 138 126 108
++122 134 144 121 143 132 121 143 132 145 140 145 146 151 137 146 151 137 146 162 145 148 160 159
++148 160 159 166 156 164 150 171 159 166 156 164 166 180 164 150 171 159 166 180 164 166 156 164
++166 180 164 166 156 164 150 171 159 166 156 164 150 171 159 166 156 164 150 171 159 166 156 164
++146 162 145 166 156 164 146 162 145 166 156 164 146 162 145 166 156 164 146 162 145 150 144 154
++146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 166 156 164 146 162 145 146 162 145
++166 156 164 148 160 159 146 162 145 166 156 164 150 171 159 146 162 145 166 156 164 150 171 159
++166 156 164 146 162 145 166 156 164 150 171 159 177 169 143 150 171 159 166 156 164 150 171 159
++166 180 164 166 156 164 150 171 159 177 169 143 148 160 159 148 160 159 146 162 145 150 144 154
++146 162 145 150 144 154 146 151 137 145 140 145 126 147 144 122 134 144 121 143 132 119 117 138
++111 119 127 111 119 127 111 119 127 95 95 116 94 105 108 61 78 101 60 81 83 42 60 86
++46 59 71 34 42 77 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 24 30 43
++34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 34 42 77 29 34 50 34 42 77
++52 30 35 34 42 77 57 43 64 57 43 64 76 44 53 57 43 64 88 44 51 101 60 73
++88 44 51 101 60 73 101 60 73 101 60 73 120 63 71 120 63 71 120 63 71 167 63 71
++120 63 71 167 63 71 120 63 71 167 63 71 167 63 71 167 63 71 167 63 71 120 63 71
++167 63 71 122 49 24 167 63 71 122 49 24 167 63 71 167 63 71 161 55 23 167 63 71
++161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 161 55 23 167 63 71 161 55 23
++161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71
++161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71
++176 103 41 161 55 23 176 103 41 161 55 23 176 103 41 167 63 71 176 103 41 167 63 71
++161 55 23 176 103 41 176 103 41 176 103 41 176 103 41 161 55 23 176 103 41 176 103 41
++176 103 41 176 103 41 176 103 41 176 103 41 176 103 41 219 175 47 176 103 41 176 103 41
++176 103 41 176 103 41 219 175 47 157 148 53 219 175 47 176 103 41 219 175 47 176 103 41
++219 175 47 157 148 53 219 175 47 157 148 53 219 175 47 157 148 53 219 175 47 176 103 41
++157 148 53 157 148 53 219 175 47 157 148 53 219 175 47 157 148 53 219 175 47 157 148 53
++219 175 47 176 103 41 219 175 47 219 175 47 176 103 41 157 148 53 176 103 41 168 102 88
++177 171 115 168 102 88 157 148 53 168 146 127 168 102 88 157 148 53 138 126 108 138 126 108
++168 102 88 117 114 76 117 112 45 120 63 71 101 74 26 88 73 31 76 46 20 76 46 20
++76 46 20 76 46 20 76 46 20 76 46 20 88 44 51 88 73 31 88 73 31 88 44 51
++88 73 31 76 46 20 76 46 20 76 46 20 55 39 37 55 39 18 53 35 17 52 30 35
++52 30 15 53 35 17 52 30 35 53 35 17 33 30 30 52 30 15 53 35 17 55 39 18
++76 46 20 63 55 45 76 46 20 88 73 62 101 74 26 117 99 86 88 73 31 60 49 42
++55 39 18 47 44 42 47 44 42 45 57 61 46 59 71 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 42 60 86 42 60 86
++34 42 77 42 60 86 42 60 86 34 42 77 60 63 87 42 60 86 46 59 71 60 63 87
++46 59 71 60 63 87 46 59 71 59 69 70 46 59 71 59 69 70 46 59 71 59 69 70
++42 60 86 60 81 83 60 81 83 77 90 100 77 90 100 95 108 128 111 119 127 121 143 132
++122 134 144 129 144 153 148 160 159 148 160 159 150 147 171 166 174 181 166 174 181 166 174 181
++148 160 159 94 105 108 48 44 48 12 18 20 22 24 13 34 30 15 60 49 42 66 86 47
++88 73 62 98 106 55 101 83 74 117 114 76 117 114 76 117 114 76 117 114 76 117 114 76
++117 112 45 117 99 86 117 127 86 138 126 108 146 150 115 168 146 127 168 146 127 168 146 127
++177 169 143 197 171 123 189 165 168 214 214 134 189 165 168 217 168 156 208 215 180 217 168 156
++208 215 180 217 168 156 208 215 180 217 168 156 214 214 134 217 168 156 208 215 180 217 168 156
++208 215 180 217 168 156 208 215 180 217 168 156 217 168 156 208 215 180 217 168 156 217 168 156
++217 168 156 189 165 168 208 215 180 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156
++208 215 180 217 168 156 214 214 134 222 171 182 225 222 201 222 171 182 214 214 134 222 171 182
++214 214 134 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 222 171 182 214 214 134
++222 171 182 222 171 182 217 168 156 214 214 134 222 171 182 208 215 180 217 168 156 166 180 164
++150 144 154 111 119 127 122 134 144 122 134 144 122 134 144 129 144 153 129 144 153 129 144 153
++131 144 168 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 150 168 183
++148 160 159 150 168 183 148 160 159 150 168 183 148 160 159 150 147 171 148 160 159 150 168 183
++148 160 159 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 150 147 171
++148 160 159 131 144 168 148 160 159 131 144 168 148 160 159 131 144 168 148 160 159 129 144 153
++129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 111 122 142 111 122 142 111 122 142
++98 121 131 98 121 131 95 108 128 95 108 128 95 108 128 77 91 115 77 91 115 61 78 101
++61 78 101 60 63 87 60 63 87 42 60 86 42 60 86 34 42 77 34 42 77 34 42 77
++46 59 71 34 42 77 34 42 77 42 60 86 60 63 87 42 60 86 60 63 87 61 78 101
++61 78 101 77 91 115 77 91 115 77 91 115 95 108 128 95 108 128 95 108 128 98 121 131
++98 121 131 111 122 142 122 134 144 122 134 144 122 134 144 126 147 144 122 134 144 129 144 153
++129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153
++148 160 159 131 144 168 148 160 159 150 144 154 146 162 145 121 143 132 138 126 108 117 142 111
++138 126 108 117 127 86 157 148 53 117 127 86 117 127 86 157 148 53 117 127 86 117 127 86
++117 127 86 157 148 53 117 127 86 117 127 86 157 148 53 117 112 45 117 112 45 117 127 86
++157 148 53 117 114 76 117 112 45 98 106 55 75 73 36 63 55 45 47 47 21 51 49 42
++47 47 21 32 39 24 23 31 15 23 31 15 23 31 15 23 31 15 22 25 24 23 31 15
++22 25 24 35 46 43 59 69 70 77 90 100 94 105 108 94 105 108 95 108 128 98 121 131
++111 119 127 122 134 144 121 143 132 122 134 144 145 140 145 129 144 153 150 144 154 148 160 159
++150 144 154 148 160 159 148 160 159 148 160 159 150 168 183 150 171 159 150 168 183 166 174 181
++166 174 181 150 168 183 166 174 181 150 171 159 166 174 181 166 174 181 166 156 164 150 168 183
++166 180 164 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 131 144 168 148 160 159
++129 144 153 129 144 153 126 147 144 122 134 144 122 134 144 98 121 131 98 121 131 95 108 128
++95 108 128 77 91 115 77 91 115 77 91 115 61 78 101 61 78 101 61 78 101 60 63 87
++42 60 86 46 59 71 34 42 77 45 57 61 32 40 58 34 42 77 35 47 50 34 42 77
++32 40 58 32 40 58 32 40 58 34 42 77 32 40 58 45 57 61 34 42 77 45 57 61
++42 60 86 46 59 71 42 60 86 60 81 83 61 78 101 61 78 101 77 90 100 77 90 100
++77 91 115 77 91 115 94 105 108 95 108 128 95 108 128 95 108 128 95 108 128 111 119 127
++111 119 127 111 119 127 111 119 127 111 119 127 111 122 142 111 119 127 111 119 127 121 143 132
++111 122 142 111 122 142 111 122 142 111 122 142 111 119 127 121 143 132 111 119 127 111 122 142
++111 119 127 111 119 127 111 119 127 111 119 127 98 121 131 111 119 127 98 121 131 95 108 128
++95 108 128 94 105 108 95 108 128 77 91 115 77 91 115 77 90 100 77 91 115 77 90 100
++61 78 101 61 78 101 60 81 83 60 63 87 46 59 71 46 59 71 46 59 71 32 40 58
++32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 29 34 50 32 40 58 32 40 58
++29 34 50 32 40 58 34 42 77 29 34 50 32 40 58 32 40 58 32 40 58 29 34 50
++32 40 58 29 34 50 32 40 58 29 34 50 32 40 58 32 40 58 46 59 71 46 59 71
++46 59 71 63 59 71 60 63 87 60 63 87 60 81 83 75 81 90 77 90 100 77 91 115
++77 91 115 94 105 108 95 95 116 94 105 108 95 108 128 95 108 128 95 108 128 95 108 128
++95 108 128 95 108 128 94 105 108 95 108 128 94 105 108 95 95 116 77 91 115 77 90 100
++77 90 100 77 90 100 77 90 100 61 78 101 77 90 100 61 78 101 75 81 90 77 90 100
++77 90 100 77 90 100 77 90 100 77 90 100 77 91 115 77 90 100 77 90 100 94 105 108
++94 105 108 95 108 128 94 105 108 94 105 108 95 108 128 94 105 108 95 108 128 95 108 128
++
++111 119 127 111 119 127 112 123 108 94 105 108 90 98 89 75 81 82 75 81 76 65 63 61
++65 63 61 65 57 61 64 70 48 63 55 51 64 70 48 75 56 53 75 56 53 75 56 53
++88 73 31 88 73 62 101 60 73 101 74 26 88 73 62 88 73 62 88 73 62 88 73 62
++88 44 51 88 73 62 75 56 53 75 56 53 76 46 20 60 49 42 55 39 18 52 30 35
++34 30 15 26 25 15 28 13 18 28 13 18 28 13 18 34 30 15 32 39 24 47 49 42
++63 55 45 75 73 58 88 83 74 98 113 84 112 96 108 112 123 108 111 119 127 138 126 108
++145 140 145 146 151 137 146 151 137 166 156 164 146 162 145 166 156 164 166 156 164 166 180 164
++166 180 164 166 156 164 166 180 164 166 180 164 166 156 164 166 180 164 166 156 164 177 169 143
++166 156 164 146 162 145 145 140 145 146 151 137 121 143 132 145 140 145 121 143 132 119 117 138
++121 143 132 138 126 108 119 117 138 138 126 108 111 119 127 121 143 132 138 126 108 121 143 132
++121 143 132 138 126 108 121 143 132 145 140 145 126 147 144 145 140 145 146 162 145 150 144 154
++177 169 143 150 171 159 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164 166 180 164
++166 156 164 166 180 164 150 171 159 166 180 164 166 156 164 146 162 145 166 156 164 146 162 145
++166 156 164 146 162 145 146 162 145 146 162 145 150 144 154 146 162 145 146 162 145 150 144 154
++146 162 145 150 144 154 146 162 145 146 151 137 150 144 154 146 151 137 146 162 145 150 144 154
++146 162 145 177 169 143 150 171 159 166 156 164 146 162 145 166 156 164 148 160 159 177 169 143
++148 160 159 177 169 143 150 171 159 166 156 164 150 171 159 166 156 164 150 171 159 166 156 164
++148 160 159 177 169 143 150 171 159 166 156 164 148 160 159 166 156 164 148 160 159 146 162 145
++150 144 154 146 162 145 145 140 145 126 147 144 145 140 145 145 140 145 122 134 144 121 143 132
++119 117 138 111 119 127 111 119 127 95 95 116 77 90 100 61 78 101 60 63 87 42 60 86
++34 42 77 34 42 77 29 34 50 34 42 77 24 30 43 34 42 77 34 42 77 24 30 43
++34 42 77 34 42 77 24 30 43 34 42 77 29 34 50 29 34 50 29 34 50 29 34 50
++34 42 77 52 30 35 57 43 64 57 43 64 76 44 53 57 43 64 101 60 73 57 43 64
++101 60 73 88 44 51 120 63 71 88 44 51 120 63 71 120 63 71 120 63 71 120 63 71
++120 63 71 167 63 71 120 63 71 167 63 71 120 63 71 167 63 71 120 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 161 55 23 167 63 71 167 63 71 122 49 24
++167 63 71 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 122 49 24 161 55 23
++167 63 71 161 55 23 167 63 71 161 55 23 161 55 23 167 63 71 161 55 23 167 63 71
++161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 176 103 41 167 63 71
++161 55 23 167 63 71 167 63 71 167 63 71 167 63 71 176 103 41 161 55 23 176 103 41
++176 103 41 167 63 71 176 103 41 167 63 71 176 103 41 176 103 41 176 103 41 176 103 41
++176 103 41 176 103 41 176 103 41 176 103 41 176 103 41 176 103 41 176 103 41 219 175 47
++176 103 41 157 148 53 176 103 41 176 103 41 176 103 41 176 103 41 176 103 41 157 148 53
++168 102 88 219 175 47 168 102 88 219 175 47 168 102 88 219 175 47 157 148 53 201 146 124
++219 175 47 219 175 47 168 102 88 219 175 47 176 103 41 157 148 53 219 175 47 176 103 41
++219 175 47 157 148 53 157 148 53 168 102 88 219 175 47 168 102 88 157 148 53 168 146 127
++157 148 53 168 146 127 163 117 123 157 148 53 168 102 88 138 126 108 168 102 88 117 114 76
++168 102 88 117 112 45 120 63 71 101 74 26 88 44 51 88 44 51 76 46 20 76 46 20
++59 36 42 55 39 18 55 39 37 76 46 20 88 44 51 88 73 31 101 60 73 101 74 26
++88 73 31 88 44 51 75 56 53 76 46 20 55 39 37 55 39 18 53 35 37 53 35 17
++53 35 17 52 30 35 47 47 21 55 39 37 55 39 18 34 30 15 52 30 35 76 46 20
++55 39 37 88 73 31 75 56 53 101 74 26 101 83 74 101 83 74 88 73 62 63 55 45
++60 49 42 53 46 48 54 57 61 57 43 64 46 59 71 46 59 71 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 42 60 86 34 42 77 34 42 77 34 42 77
++42 60 86 42 60 86 34 42 77 42 60 86 42 60 86 46 59 71 42 60 86 46 59 71
++42 60 86 46 59 71 60 81 83 42 60 86 59 69 70 42 60 86 59 69 70 42 60 86
++59 69 70 60 63 87 60 81 83 77 90 100 94 105 108 95 108 128 111 119 127 122 134 144
++126 147 144 129 144 153 129 144 153 150 147 171 148 160 159 148 160 159 150 171 159 166 174 181
++166 174 181 148 160 159 122 134 144 94 105 108 95 91 100 90 98 89 87 99 72 101 83 74
++88 83 74 88 73 62 88 73 62 101 83 74 117 99 86 117 127 86 117 114 76 168 102 88
++117 99 86 117 114 76 101 83 74 117 112 45 168 102 88 138 126 108 168 146 127 177 171 115
++168 146 127 197 171 123 177 169 143 177 169 143 217 168 156 177 169 143 217 168 156 208 215 180
++217 168 156 208 215 180 217 168 156 217 168 156 189 165 168 214 214 134 217 168 156 217 168 156
++222 171 182 214 214 134 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 208 215 180
++217 168 156 214 214 134 217 168 156 217 168 156 217 168 156 214 214 134 217 168 156 222 171 182
++214 214 134 222 171 182 225 222 201 227 171 124 225 222 201 227 171 124 225 222 201 222 171 182
++225 222 201 222 171 182 225 222 201 222 171 182 208 215 180 222 171 182 214 214 134 222 171 182
++222 171 182 214 214 134 217 168 156 222 171 182 208 215 180 217 168 156 208 215 180 189 165 168
++150 144 154 138 126 108 122 134 144 122 134 144 122 134 144 129 144 153 129 144 153 148 160 159
++129 144 153 148 160 159 131 144 168 148 160 159 131 144 168 148 160 159 150 147 171 148 160 159
++148 160 159 150 168 183 148 160 159 150 168 183 148 160 159 150 168 183 148 160 159 150 168 183
++148 160 159 150 168 183 148 160 159 150 168 183 148 160 159 150 168 183 148 160 159 150 168 183
++148 160 159 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153
++148 160 159 131 144 168 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 111 122 142
++111 122 142 111 122 142 111 122 142 95 108 128 95 108 128 77 91 115 77 91 115 77 91 115
++61 78 101 61 78 101 60 63 87 42 60 86 34 42 77 42 60 86 46 59 71 34 42 77
++42 60 86 34 42 77 42 60 86 42 60 86 42 60 86 60 63 87 61 78 101 61 78 101
++77 91 115 77 91 115 77 91 115 95 108 128 95 108 128 98 121 131 98 121 131 98 121 131
++121 143 132 111 122 142 122 134 144 122 134 144 122 134 144 129 144 153 129 144 153 129 144 153
++129 144 153 131 144 168 148 160 159 131 144 168 148 160 159 148 160 159 148 160 159 150 147 171
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 146 151 137 121 143 132 117 142 111
++138 126 108 117 127 86 138 126 108 117 127 86 117 112 45 117 114 76 117 114 76 157 148 53
++117 114 76 117 114 76 117 114 76 117 112 45 117 114 76 117 127 86 117 127 86 117 114 76
++98 106 55 80 96 46 75 73 36 60 49 42 55 39 18 49 74 23 63 55 45 47 47 21
++42 47 42 32 39 24 29 35 19 32 39 24 29 35 19 26 30 28 22 25 24 28 35 38
++43 55 48 60 81 83 77 90 100 94 105 108 94 105 108 95 108 128 95 108 128 98 121 131
++111 119 127 122 134 144 122 134 144 129 144 153 129 144 153 129 144 153 129 144 153 148 160 159
++150 147 171 148 160 159 150 168 183 148 160 159 148 160 159 150 168 183 166 156 164 148 160 159
++166 174 181 150 171 159 166 174 181 166 174 181 150 168 183 166 174 181 150 168 183 166 180 164
++150 168 183 148 160 159 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159
++129 144 153 129 144 153 126 147 144 122 134 144 121 143 132 111 122 142 111 119 127 98 121 131
++95 108 128 94 105 108 77 91 115 77 91 115 77 90 100 61 78 101 60 63 87 60 63 87
++42 60 86 46 59 71 46 59 71 34 42 77 34 42 77 45 57 61 32 40 58 34 42 77
++32 40 58 34 42 77 46 59 71 32 40 58 34 42 77 34 42 77 45 57 61 42 60 86
++46 59 71 60 63 87 60 63 87 61 78 101 61 78 101 77 90 100 77 90 100 77 91 115
++95 108 128 94 105 108 95 108 128 95 108 128 98 121 131 111 119 127 98 121 131 111 119 127
++98 121 131 111 119 127 122 134 144 111 122 142 111 122 142 121 143 132 111 122 142 122 134 144
++111 122 142 121 143 132 122 134 144 121 143 132 122 134 144 111 122 142 121 143 132 111 122 142
++122 134 144 111 122 142 122 134 144 111 119 127 111 122 142 111 119 127 98 121 131 111 119 127
++95 108 128 98 121 131 95 108 128 94 105 108 94 105 108 95 95 116 77 91 115 77 90 100
++77 90 100 75 81 90 61 78 101 60 63 87 60 63 87 46 59 71 46 59 71 34 42 77
++34 42 77 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58
++32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58
++32 40 58 29 34 50 32 40 58 32 40 58 32 40 58 34 42 77 32 40 58 46 59 71
++46 59 71 46 59 71 60 63 87 75 81 90 61 78 101 77 90 100 77 90 100 94 105 108
++94 105 108 95 108 128 95 108 128 95 108 128 95 119 107 95 108 128 111 119 127 111 119 127
++95 119 107 95 108 128 111 119 127 95 108 128 95 108 128 95 108 128 94 105 108 94 105 108
++95 95 116 77 90 100 77 91 115 77 90 100 77 90 100 77 90 100 77 90 100 77 91 115
++77 90 100 77 90 100 77 90 100 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108
++95 108 128 94 105 108 95 108 128 95 108 128 95 108 128 95 108 128 111 119 127 95 108 128
++
++112 123 108 111 119 127 94 105 108 94 105 108 75 81 90 75 81 82 75 72 67 53 63 61
++59 57 61 59 55 55 63 55 51 63 55 51 63 55 51 75 56 53 75 56 53 75 56 53
++75 56 53 88 73 62 75 56 53 88 73 62 88 44 51 101 74 26 88 73 62 88 73 31
++88 73 62 88 73 31 75 56 53 63 55 45 63 55 45 60 49 42 55 39 37 34 30 15
++26 25 15 28 13 18 26 25 15 28 13 18 28 13 18 26 25 15 34 30 15 33 30 30
++51 49 42 63 55 51 75 72 67 88 83 88 90 98 89 112 123 108 112 123 108 121 143 132
++145 140 145 146 151 137 146 151 137 146 162 145 166 156 164 150 171 159 177 169 143 166 180 164
++166 156 164 166 180 164 189 165 168 166 180 164 166 156 164 166 180 164 166 156 164 150 171 159
++146 162 145 146 151 137 145 140 145 138 126 108 121 143 132 138 126 108 138 126 108 121 143 132
++138 126 108 122 134 144 138 126 108 121 143 132 121 143 132 138 126 108 122 134 144 138 126 108
++122 134 144 121 143 132 145 140 145 145 140 145 146 151 137 146 151 137 146 162 145 148 160 159
++148 160 159 166 156 164 166 180 164 150 171 159 166 180 164 166 156 164 166 180 164 166 180 164
++166 156 164 166 180 164 166 156 164 150 171 159 177 169 143 148 160 159 150 171 159 166 156 164
++146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 150 144 154 146 151 137 146 162 145
++150 144 154 146 151 137 146 151 137 150 144 154 146 151 137 150 144 154 146 162 145 150 144 154
++146 162 145 150 144 154 166 156 164 146 162 145 166 156 164 150 171 159 177 169 143 148 160 159
++150 171 159 166 156 164 148 160 159 146 162 145 166 156 164 146 162 145 177 169 143 148 160 159
++166 180 164 166 156 164 148 160 159 146 162 145 166 156 164 146 162 145 146 162 145 150 144 154
++146 151 137 145 140 145 129 144 153 145 140 145 122 134 144 121 143 132 141 116 139 121 143 132
++111 119 127 111 119 127 95 108 128 94 105 108 77 91 115 77 90 100 61 78 101 42 60 86
++34 42 77 34 42 77 32 40 58 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77
++24 30 43 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 29 34 50 57 43 64
++29 34 50 57 43 64 57 43 64 76 44 53 57 43 64 101 60 73 76 44 53 101 60 73
++101 60 73 101 60 73 101 60 73 120 63 71 120 63 71 120 63 71 120 63 71 167 63 71
++120 63 71 167 63 71 120 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++120 63 71 167 63 71 167 63 71 120 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++161 55 23 122 49 24 167 63 71 161 55 23 167 63 71 122 49 24 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 161 55 23 167 63 71 176 103 41
++167 63 71 176 103 41 176 103 41 167 63 71 176 103 41 167 63 71 176 103 41 167 63 71
++176 103 41 176 103 41 167 63 71 176 103 41 176 103 41 176 103 41 176 103 41 176 103 41
++176 103 41 176 103 41 176 103 41 176 103 41 219 175 47 176 103 41 176 103 41 176 103 41
++176 103 41 219 175 47 176 103 41 219 175 47 157 148 53 219 175 47 201 146 124 176 103 41
++219 175 47 176 103 41 219 175 47 176 103 41 219 175 47 168 102 88 219 175 47 176 103 41
++157 148 53 168 102 88 219 175 47 157 148 53 201 146 124 219 175 47 176 103 41 219 175 47
++168 102 88 219 175 47 176 103 41 157 148 53 168 102 88 157 148 53 168 102 88 168 146 127
++168 146 127 168 102 88 138 126 108 168 102 88 138 126 108 168 102 88 117 112 45 168 102 88
++117 112 45 117 99 86 101 74 26 88 44 51 75 73 36 55 39 18 55 39 18 52 30 35
++55 39 18 88 30 18 76 46 20 75 56 53 101 74 26 88 73 62 101 74 26 101 60 73
++88 73 31 88 44 51 76 46 20 55 39 37 55 39 18 55 39 18 55 39 37 55 39 18
++53 35 37 55 39 18 55 39 37 55 39 37 55 39 18 55 39 18 55 39 18 60 49 42
++76 46 20 75 73 36 88 73 31 101 83 74 101 83 74 101 74 26 88 73 31 75 56 53
++63 55 51 59 57 61 63 59 71 42 60 86 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 42 60 86 46 59 71
++34 42 77 46 59 71 42 60 86 42 60 86 57 43 64 42 60 86 46 59 71 60 63 87
++42 60 86 60 63 87 46 59 71 59 69 70 42 60 86 59 69 70 42 60 86 60 81 83
++59 69 70 60 81 83 60 81 83 61 78 101 77 90 100 95 119 107 111 119 127 122 134 144
++122 134 144 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159 150 168 183 150 171 159
++150 168 183 166 174 181 166 174 181 188 180 202 166 180 164 150 171 159 145 140 145 112 123 108
++99 93 84 87 99 72 88 83 74 81 96 56 101 83 74 117 114 76 117 114 76 138 126 108
++117 114 76 117 114 76 117 114 76 101 83 74 117 114 76 117 114 76 138 126 108 168 146 127
++168 146 127 168 146 127 177 171 115 177 169 143 197 171 123 217 168 156 214 214 134 177 169 143
++217 168 156 214 214 134 217 168 156 208 215 180 217 168 156 217 168 156 208 215 180 217 168 156
++214 214 134 222 171 182 217 168 156 214 214 134 222 171 182 214 214 134 217 168 156 217 168 156
++208 215 180 189 165 168 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 208 215 180
++217 168 156 222 171 182 227 171 124 222 171 182 214 214 134 222 171 182 225 222 201 214 214 134
++222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 208 215 180
++227 171 124 222 171 182 217 168 156 214 214 134 217 168 156 222 171 182 208 215 180 177 169 143
++168 146 127 145 140 145 122 134 144 122 134 144 126 147 144 122 134 144 129 144 153 129 144 153
++148 160 159 131 144 168 148 160 159 148 160 159 148 160 159 150 168 183 148 160 159 150 168 183
++148 160 159 148 160 159 150 168 183 148 160 159 150 168 183 148 160 159 150 168 183 148 160 159
++150 168 183 148 160 159 150 168 183 150 168 183 150 168 183 148 160 159 150 168 183 148 160 159
++150 171 159 148 160 159 148 160 159 150 168 183 148 160 159 150 147 171 148 160 159 148 160 159
++148 160 159 148 160 159 131 144 168 129 144 153 129 144 153 129 144 153 111 122 142 122 134 144
++111 122 142 98 121 131 98 121 131 95 108 128 95 108 128 95 108 128 77 91 115 77 91 115
++61 78 101 61 78 101 61 78 101 42 60 86 42 60 86 34 42 77 46 59 71 34 42 77
++42 60 86 34 42 77 42 60 86 42 60 86 60 63 87 61 78 101 61 78 101 61 78 101
++77 91 115 77 91 115 95 108 128 95 108 128 98 121 131 111 119 127 111 122 142 111 122 142
++122 134 144 122 134 144 126 147 144 122 134 144 129 144 153 129 144 153 148 160 159 129 144 153
++148 160 159 148 160 159 148 160 159 148 160 159 131 144 168 148 160 159 148 160 159 148 160 159
++131 144 168 148 160 159 150 147 171 148 160 159 148 160 159 129 144 153 146 151 137 138 126 108
++117 127 86 117 127 86 117 114 76 117 112 45 117 114 76 117 112 45 117 112 45 98 106 55
++117 112 45 117 112 45 117 112 45 117 114 76 117 112 45 117 114 76 117 112 45 80 96 46
++75 73 36 47 47 21 32 39 24 47 47 21 50 61 48 63 55 45 55 55 48 47 47 21
++26 30 28 23 31 15 29 35 19 22 25 24 26 30 28 25 30 29 34 40 43 46 59 71
++75 81 90 77 90 100 95 95 116 95 108 128 95 108 128 95 108 128 111 119 127 111 122 142
++121 143 132 122 134 144 122 134 144 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 150 168 183 148 160 159 150 168 183 166 156 164 150 171 159 166 174 181 150 168 183
++166 174 181 166 174 181 166 174 181 166 174 181 166 180 164 166 174 181 166 174 181 150 168 183
++150 171 159 166 174 181 148 160 159 148 160 159 148 160 159 150 147 171 148 160 159 131 144 168
++148 160 159 129 144 153 129 144 153 122 134 144 122 134 144 98 121 131 111 122 142 98 121 131
++95 108 128 77 91 115 94 105 108 77 91 115 77 91 115 61 78 101 61 78 101 60 63 87
++42 60 86 46 59 71 34 42 77 46 59 71 32 40 58 34 42 77 34 42 77 35 47 50
++34 42 77 32 40 58 32 40 58 34 42 77 45 57 61 34 42 77 42 60 86 46 59 71
++42 60 86 61 78 101 75 81 90 77 90 100 77 90 100 77 91 115 94 105 108 94 105 108
++95 108 128 95 108 128 98 121 131 98 121 131 111 119 127 111 119 127 111 119 127 111 122 142
++122 134 144 122 134 144 121 143 132 122 134 144 122 134 144 122 134 144 121 143 132 122 134 144
++121 143 132 122 134 144 122 134 144 122 134 144 121 143 132 122 134 144 122 134 144 122 134 144
++121 143 132 111 122 142 121 143 132 111 122 142 121 143 132 111 122 142 111 119 127 111 119 127
++98 121 131 111 119 127 98 121 131 95 108 128 95 108 128 94 105 108 77 91 115 94 105 108
++77 91 115 77 90 100 77 90 100 61 78 101 60 63 87 60 63 87 46 59 71 46 59 71
++45 57 61 32 40 58 34 42 77 32 40 58 32 40 58 34 42 77 29 34 50 32 40 58
++32 40 58 29 34 50 32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58
++32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 45 57 61 34 42 77 46 59 71
++60 63 87 60 63 87 60 81 83 75 81 90 77 90 100 77 90 100 77 91 115 94 105 108
++95 108 128 95 119 107 98 121 131 111 119 127 98 121 131 111 119 127 111 119 127 98 121 131
++111 119 127 111 119 127 98 121 131 111 119 127 95 119 107 95 108 128 94 105 108 94 105 108
++94 105 108 94 105 108 95 95 116 77 91 115 95 95 116 94 105 108 95 95 116 95 91 100
++94 105 108 77 91 115 94 105 108 94 105 108 95 108 128 95 108 128 95 108 128 95 108 128
++111 119 127 111 119 127 95 119 107 111 119 127 111 119 127 95 119 107 111 119 127 111 119 127
++
++111 119 127 111 119 127 112 123 108 90 98 89 75 81 90 75 81 76 59 69 70 59 57 61
++52 55 48 48 50 48 51 49 42 60 49 42 63 55 45 60 49 42 63 55 45 63 55 45
++75 56 53 88 73 31 88 44 51 88 73 31 75 56 53 88 73 62 75 56 53 88 44 51
++75 56 53 76 44 53 75 73 36 63 55 45 60 49 42 60 49 42 55 39 37 34 30 15
++26 25 15 26 25 15 26 12 13 26 12 13 26 12 13 26 12 13 28 13 18 34 30 15
++33 30 30 51 49 42 63 55 51 75 72 67 88 83 74 99 93 84 112 123 108 111 119 127
++138 126 108 145 140 145 146 151 137 166 156 164 146 162 145 166 156 164 166 180 164 166 156 164
++166 180 164 166 180 164 166 180 164 189 165 168 166 180 164 166 180 164 166 156 164 177 169 143
++150 144 154 145 140 145 121 143 132 146 151 137 141 116 139 121 143 132 121 143 132 141 116 139
++121 143 132 138 126 108 121 143 132 111 119 127 138 126 108 111 119 127 121 143 132 122 134 144
++117 142 111 141 116 139 121 143 132 121 143 132 146 151 137 145 140 145 146 151 137 166 156 164
++146 162 145 166 156 164 150 171 159 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164
++166 180 164 166 180 164 150 171 159 166 156 164 150 171 159 166 156 164 166 156 164 146 162 145
++146 162 145 146 162 145 166 156 164 146 162 145 150 144 154 146 162 145 150 144 154 146 151 137
++146 151 137 146 151 137 145 140 145 146 151 137 146 162 145 146 151 137 146 162 145 150 144 154
++146 162 145 166 156 164 146 162 145 150 171 159 166 156 164 150 171 159 166 156 164 150 171 159
++166 156 164 148 160 159 148 160 159 177 169 143 150 171 159 166 156 164 150 171 159 166 156 164
++150 171 159 166 156 164 150 171 159 166 156 164 146 162 145 148 160 159 150 144 154 146 162 145
++150 144 154 146 151 137 145 140 145 121 143 132 145 140 145 122 134 144 121 143 132 122 134 144
++111 119 127 111 119 127 111 119 127 95 95 116 77 90 100 61 78 101 60 63 87 42 60 86
++34 42 77 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77
++34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 29 34 50 34 42 77 29 34 50
++34 42 77 59 36 42 57 43 64 57 43 64 101 60 73 57 43 64 101 60 73 101 60 73
++101 60 73 101 60 73 101 60 73 120 63 71 120 63 71 167 63 71 120 63 71 120 63 71
++138 102 108 167 63 71 138 102 108 167 63 71 117 99 86 168 102 88 120 63 71 168 102 88
++167 63 71 168 102 88 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 161 55 23 167 63 71 161 55 23 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++161 55 23 167 63 71 161 55 23 167 63 71 176 103 41 167 63 71 167 63 71 176 103 41
++167 63 71 167 63 71 176 103 41 167 63 71 176 103 41 167 63 71 176 103 41 167 63 71
++176 103 41 167 63 71 176 103 41 176 103 41 176 103 41 167 63 71 176 103 41 176 103 41
++176 103 41 176 103 41 219 175 47 176 103 41 176 103 41 176 103 41 176 103 41 219 175 47
++176 103 41 176 103 41 219 175 47 176 103 41 201 146 124 176 103 41 176 103 41 219 175 47
++168 102 88 157 148 53 168 102 88 219 175 47 157 148 53 176 103 41 219 175 47 157 148 53
++219 175 47 219 175 47 201 146 124 219 175 47 176 103 41 219 175 47 201 146 124 157 148 53
++219 175 47 168 102 88 219 175 47 157 148 53 168 102 88 157 148 53 168 102 88 177 171 115
++168 102 88 146 150 115 138 126 108 168 102 88 117 114 76 168 102 88 117 114 76 168 102 88
++117 112 45 120 63 71 88 73 62 76 46 20 55 39 18 76 18 19 53 35 17 55 39 18
++55 39 18 55 39 37 76 46 20 88 73 31 101 60 73 101 74 26 88 73 62 101 74 26
++75 56 53 76 46 20 55 39 18 55 39 18 55 39 18 52 30 35 55 39 18 55 39 37
++55 39 18 60 49 42 55 39 37 55 39 37 55 39 37 55 39 18 60 49 42 75 73 36
++76 46 20 88 44 51 88 73 62 98 106 55 101 83 74 88 73 62 88 73 62 75 56 53
++59 55 55 54 57 61 57 43 64 46 59 71 34 42 77 34 42 77 46 59 71 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 42 60 86 34 42 77 42 60 86
++34 42 77 42 60 86 34 42 77 42 60 86 42 60 86 42 60 86 46 59 71 42 60 86
++46 59 71 60 63 87 46 59 71 60 63 87 59 69 70 42 60 86 59 69 70 46 59 71
++60 81 83 42 60 86 60 81 83 77 90 100 94 105 108 98 121 131 111 119 127 122 134 144
++129 144 153 129 144 153 148 160 159 131 144 168 148 160 159 150 147 171 150 171 159 150 168 183
++166 180 164 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 180 164 166 156 164
++121 143 132 112 123 108 101 83 74 88 73 62 98 106 55 101 83 74 117 99 86 117 114 76
++138 126 108 138 126 108 138 126 108 168 102 88 117 114 76 117 114 76 168 102 88 117 114 76
++138 126 108 138 126 108 168 146 127 177 171 115 177 169 143 177 169 143 177 169 143 177 169 143
++217 168 156 189 165 168 217 168 156 217 168 156 217 168 156 208 215 180 217 168 156 217 168 156
++217 168 156 217 168 156 217 168 156 208 215 180 217 168 156 217 168 156 208 215 180 217 168 156
++197 171 123 217 168 156 214 214 134 189 165 168 217 168 156 217 168 156 222 171 182 214 214 134
++222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 222 171 182 214 214 134 222 171 182
++225 222 201 222 171 182 225 222 201 222 171 182 208 215 180 222 171 182 208 215 180 217 168 156
++208 215 180 217 168 156 217 168 156 217 168 156 208 215 180 217 168 156 217 168 156 217 168 156
++146 162 145 138 126 108 122 134 144 122 134 144 129 144 153 129 144 153 129 144 153 129 144 153
++148 160 159 131 144 168 148 160 159 131 144 168 148 160 159 148 160 159 148 160 159 148 160 159
++150 168 183 150 168 183 150 171 159 166 156 164 150 171 159 150 168 183 150 168 183 150 171 159
++150 168 183 150 168 183 166 156 164 150 171 159 150 168 183 166 174 181 150 171 159 150 168 183
++150 171 159 150 168 183 150 168 183 150 171 159 150 168 183 150 168 183 148 160 159 150 168 183
++131 144 168 148 160 159 148 160 159 148 160 159 131 144 168 129 144 153 131 144 168 122 134 144
++129 144 153 111 122 142 111 122 142 111 122 142 95 108 128 95 108 128 95 108 128 77 91 115
++77 91 115 61 78 101 61 78 101 42 60 86 60 63 87 42 60 86 34 42 77 42 60 86
++34 42 77 42 60 86 60 63 87 42 60 86 61 78 101 61 78 101 77 91 115 77 91 115
++77 91 115 95 108 128 95 108 128 95 108 128 98 121 131 111 122 142 111 122 142 122 134 144
++122 134 144 126 147 144 129 144 153 129 144 153 148 160 159 131 144 168 148 160 159 148 160 159
++148 160 159 131 144 168 148 160 159 150 168 183 148 160 159 148 160 159 150 168 183 148 160 159
++150 168 183 148 160 159 150 168 183 148 160 159 148 160 159 148 160 159 146 162 145 146 151 137
++117 127 86 117 114 76 117 114 76 98 106 55 101 74 26 88 73 31 98 106 55 101 74 26
++117 112 45 101 83 74 117 112 45 98 106 55 98 106 55 88 73 31 49 74 23 34 30 15
++34 30 15 47 47 21 60 49 42 64 70 48 64 70 48 47 47 21 29 35 19 23 31 15
++29 35 19 26 30 28 23 31 15 23 31 15 31 35 35 42 47 42 59 69 70 77 90 100
++77 90 100 94 105 108 94 105 108 95 108 128 98 121 131 98 121 131 111 119 127 111 122 142
++122 134 144 122 134 144 129 144 153 129 144 153 129 144 153 148 160 159 131 144 168 148 160 159
++150 168 183 148 160 159 150 168 183 166 156 164 150 168 183 150 168 183 150 171 159 166 174 181
++150 171 159 166 174 181 166 180 164 150 168 183 166 174 181 166 174 181 150 168 183 166 174 181
++166 156 164 150 168 183 150 171 159 150 168 183 148 160 159 150 168 183 148 160 159 148 160 159
++148 160 159 129 144 153 129 144 153 126 147 144 122 134 144 121 143 132 111 122 142 111 119 127
++98 121 131 95 108 128 95 108 128 77 91 115 77 91 115 77 90 100 75 81 90 61 78 101
++60 81 83 42 60 86 46 59 71 34 42 77 42 60 86 45 57 61 34 42 77 32 40 58
++46 59 71 32 40 58 34 42 77 46 59 71 34 42 77 46 59 71 42 60 86 60 63 87
++60 81 83 61 78 101 77 90 100 77 91 115 77 91 115 95 95 116 95 108 128 95 108 128
++95 108 128 98 121 131 98 121 131 111 119 127 111 122 142 111 122 142 122 134 144 122 134 144
++122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144
++122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144
++122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 121 143 132 111 122 142 122 134 144
++122 134 144 98 121 131 111 119 127 98 121 131 95 108 128 98 121 131 95 108 128 95 108 128
++95 95 116 77 91 115 77 90 100 75 81 90 61 78 101 60 81 83 60 63 87 42 60 86
++46 59 71 34 42 77 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58
++32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58
++32 40 58 29 34 50 32 40 58 32 40 58 32 40 58 34 42 77 46 59 71 46 59 71
++60 63 87 60 63 87 61 78 101 77 90 100 77 90 100 77 90 100 94 105 108 94 105 108
++95 108 128 111 119 127 111 119 127 98 121 131 111 119 127 111 119 127 122 134 144 111 119 127
++111 122 142 111 122 142 111 119 127 111 119 127 111 119 127 111 119 127 98 121 131 95 108 128
++95 108 128 95 108 128 94 105 108 95 108 128 94 105 108 95 95 116 94 105 108 94 105 108
++95 108 128 95 119 107 95 108 128 95 108 128 95 108 128 95 119 107 111 119 127 111 119 127
++111 119 127 111 119 127 111 122 142 111 119 127 111 119 127 111 122 142 111 119 127 111 119 127
++
++112 123 108 111 119 127 95 119 107 95 91 100 78 98 90 75 81 76 59 69 70 59 55 55
++52 55 48 48 50 48 47 44 42 47 44 42 51 49 42 60 49 42 60 49 42 76 46 20
++63 55 45 75 56 53 75 56 53 75 56 53 75 56 53 88 73 31 75 56 53 88 73 31
++75 56 53 63 55 45 63 55 45 63 55 45 76 46 20 51 49 42 47 47 21 33 30 30
++26 25 15 26 12 13 15 17 7 23 10 10 15 17 7 15 17 7 15 17 7 22 24 13
++34 30 15 36 35 37 51 49 42 65 63 61 75 81 76 99 93 84 112 96 108 112 123 108
++138 126 108 145 140 145 146 151 137 146 151 137 146 162 145 166 156 164 150 171 159 166 156 164
++166 180 164 166 156 164 166 180 164 166 180 164 166 156 164 166 180 164 166 156 164 150 171 159
++146 151 137 146 151 137 145 140 145 146 151 137 146 151 137 121 143 132 138 126 108 121 143 132
++138 126 108 111 119 127 138 126 108 111 119 127 121 143 132 138 126 108 121 143 132 138 126 108
++119 117 138 121 143 132 138 126 108 145 140 145 126 147 144 146 151 137 146 162 145 148 160 159
++146 162 145 166 156 164 166 180 164 166 156 164 150 171 159 166 180 164 166 156 164 166 180 164
++166 156 164 150 171 159 166 156 164 166 180 164 148 160 159 146 162 145 146 162 145 166 156 164
++146 151 137 150 144 154 146 162 145 146 151 137 146 162 145 150 144 154 146 151 137 145 140 145
++146 151 137 145 140 145 146 151 137 146 162 145 150 144 154 146 162 145 150 144 154 146 162 145
++166 156 164 146 162 145 166 156 164 150 171 159 177 169 143 148 160 159 166 156 164 150 171 159
++177 169 143 148 160 159 166 156 164 146 162 145 166 156 164 146 162 145 166 156 164 177 169 143
++150 171 159 177 169 143 148 160 159 166 156 164 146 162 145 166 156 164 146 162 145 150 144 154
++146 151 137 126 147 144 145 140 145 126 147 144 141 116 139 121 143 132 119 117 138 111 119 127
++111 119 127 111 119 127 95 108 128 94 105 108 77 91 115 75 81 90 60 63 87 42 60 86
++46 59 71 34 42 77 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 24 30 43
++34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 29 34 50 29 34 50 57 43 64
++59 36 42 57 43 64 57 43 64 76 44 53 57 43 64 101 60 73 75 64 82 101 60 73
++101 60 73 101 60 73 120 63 71 120 63 71 120 63 71 120 63 71 138 102 108 167 63 71
++138 102 108 120 63 71 138 102 108 168 102 88 168 102 88 167 63 71 168 102 88 168 102 88
++167 63 71 168 102 88 168 102 88 168 102 88 167 63 71 117 99 86 167 63 71 168 102 88
++120 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 161 55 23 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 168 102 88 167 63 71 167 63 71
++176 103 41 167 63 71 168 102 88 176 103 41 167 63 71 176 103 41 168 102 88 176 103 41
++168 102 88 176 103 41 167 63 71 176 103 41 176 103 41 176 103 41 176 103 41 168 102 88
++176 103 41 176 103 41 176 103 41 176 103 41 176 103 41 176 103 41 157 148 53 176 103 41
++168 102 88 219 175 47 168 102 88 157 148 53 176 103 41 219 175 47 168 102 88 157 148 53
++219 175 47 168 102 88 219 175 47 168 102 88 219 175 47 201 146 124 157 148 53 201 146 124
++201 146 124 201 146 124 157 148 53 201 146 124 157 148 53 117 112 45 176 103 41 117 112 45
++168 102 88 157 148 53 168 102 88 168 102 88 157 148 53 168 102 88 146 150 115 168 102 88
++146 150 115 168 102 88 157 148 53 168 102 88 117 114 76 168 102 88 117 114 76 117 114 76
++120 63 71 101 74 26 101 74 26 76 46 20 55 39 37 55 39 18 53 35 17 55 39 18
++76 46 20 76 46 20 76 44 53 88 73 31 88 73 62 101 74 26 88 44 51 101 74 26
++88 44 51 76 46 20 55 39 37 55 39 18 55 39 18 55 39 18 52 30 35 55 39 18
++60 49 42 76 46 20 55 39 37 55 39 18 76 46 20 55 39 37 76 46 20 63 55 45
++88 73 31 88 73 31 88 73 62 120 63 71 98 106 55 88 73 62 88 73 62 59 57 61
++45 57 61 32 40 58 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 42 60 86 34 42 77 42 60 86 34 42 77 42 60 86 34 42 77 34 42 77
++46 59 71 34 42 77 60 63 87 42 60 86 46 59 71 42 60 86 46 59 71 60 63 87
++42 60 86 59 69 70 42 60 86 59 69 70 42 60 86 59 69 70 60 81 83 42 60 86
++59 69 70 60 81 83 60 81 83 77 90 100 77 90 100 95 108 128 111 119 127 122 134 144
++122 134 144 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 150 168 183 150 171 159
++150 168 183 150 171 159 166 174 181 166 180 164 166 174 181 166 180 164 166 156 164 150 171 159
++166 156 164 121 143 132 112 123 108 99 93 84 88 73 62 88 73 62 98 106 55 117 99 86
++117 114 76 138 126 108 138 126 108 138 126 108 138 126 108 117 127 86 117 114 76 117 114 76
++168 102 88 117 127 86 168 102 88 146 150 115 168 146 127 197 171 123 177 169 143 197 171 123
++189 165 168 214 214 134 189 165 168 214 214 134 189 165 168 217 168 156 214 214 134 217 168 156
++208 215 180 217 168 156 208 215 180 217 168 156 217 168 156 208 215 180 217 168 156 217 168 156
++208 215 180 177 169 143 217 168 156 217 168 156 208 215 180 217 168 156 214 214 134 222 171 182
++217 168 156 208 215 180 217 168 156 217 168 156 217 168 156 208 215 180 222 171 182 225 222 201
++214 214 134 222 171 182 214 214 134 225 222 201 227 171 124 225 222 201 217 168 156 208 215 180
++217 168 156 217 168 156 177 169 143 177 169 143 217 168 156 217 168 156 166 180 164 189 165 168
++177 169 143 145 140 145 111 119 127 145 140 145 122 134 144 129 144 153 150 144 154 131 144 168
++148 160 159 148 160 159 148 160 159 148 160 159 150 168 183 148 160 159 150 168 183 150 168 183
++150 171 159 166 156 164 150 168 183 150 168 183 166 156 164 150 171 159 166 174 181 166 156 164
++150 168 183 150 171 159 150 168 183 166 174 181 150 171 159 166 174 181 150 168 183 166 156 164
++166 174 181 150 171 159 150 168 183 166 156 164 150 171 159 150 168 183 150 171 159 148 160 159
++150 171 159 148 160 159 131 144 168 148 160 159 131 144 168 129 144 153 129 144 153 129 144 153
++122 134 144 122 134 144 111 122 142 111 122 142 95 108 128 111 122 142 95 108 128 77 91 115
++77 91 115 77 91 115 61 78 101 60 63 87 42 60 86 42 60 86 34 42 77 46 59 71
++42 60 86 42 60 86 42 60 86 60 63 87 61 78 101 61 78 101 77 91 115 77 91 115
++95 95 116 95 108 128 95 108 128 111 119 127 111 122 142 111 119 127 122 134 144 122 134 144
++126 147 144 129 144 153 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159
++150 168 183 148 160 159 150 168 183 148 160 159 150 168 183 148 160 159 150 168 183 148 160 159
++150 168 183 148 160 159 150 168 183 150 171 159 148 160 159 148 160 159 148 160 159 146 151 137
++117 142 111 98 113 84 87 99 72 80 96 46 80 96 46 88 73 31 88 73 31 101 83 74
++98 106 55 98 106 55 88 73 31 75 73 36 75 73 36 49 74 23 55 39 18 47 47 21
++47 47 21 50 61 48 63 55 45 47 49 42 32 39 24 32 39 24 26 25 15 22 25 24
++22 25 24 26 30 28 30 30 34 35 46 43 45 57 61 60 63 87 77 90 100 77 90 100
++77 91 115 94 105 108 95 108 128 95 108 128 111 119 127 111 119 127 111 122 142 121 143 132
++122 134 144 122 134 144 126 147 144 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159
++150 171 159 166 174 181 150 171 159 166 174 181 150 171 159 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 180 164 166 174 181 150 171 159
++150 168 183 150 171 159 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 131 144 168
++148 160 159 129 144 153 148 160 159 126 147 144 126 147 144 122 134 144 122 134 144 98 121 131
++98 121 131 98 121 131 95 108 128 95 108 128 77 91 115 77 91 115 61 78 101 61 78 101
++60 63 87 42 60 86 46 59 71 46 59 71 32 40 58 34 42 77 35 47 50 34 42 77
++32 40 58 34 42 77 45 57 61 34 42 77 46 59 71 42 60 86 60 63 87 60 63 87
++61 78 101 77 90 100 77 91 115 77 91 115 94 105 108 95 108 128 98 121 131 111 119 127
++111 119 127 111 122 142 111 122 142 122 134 144 121 143 132 122 134 144 122 134 144 122 134 144
++126 147 144 122 134 144 129 144 153 122 134 144 129 144 153 126 147 144 129 144 153 129 144 153
++129 144 153 126 147 144 126 147 144 129 144 153 126 147 144 129 144 153 126 147 144 126 147 144
++122 134 144 126 147 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 121 143 132
++111 122 142 121 143 132 111 122 142 111 119 127 98 121 131 98 121 131 95 108 128 94 105 108
++95 108 128 77 91 115 77 91 115 77 90 100 61 78 101 61 78 101 60 63 87 60 63 87
++46 59 71 34 42 77 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58 32 40 58
++29 34 50 34 42 77 29 34 50 32 40 58 29 34 50 32 40 58 29 34 50 32 40 58
++32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 54 57 61 46 59 71 46 59 71
++60 63 87 75 81 90 77 90 100 77 90 100 77 91 115 94 105 108 95 108 128 95 108 128
++111 119 127 111 119 127 111 119 127 121 143 132 111 122 142 121 143 132 111 122 142 121 143 132
++122 134 144 121 143 132 122 134 144 111 119 127 111 119 127 98 121 131 111 119 127 111 119 127
++95 119 107 111 119 127 98 121 131 95 108 128 95 108 128 95 119 107 95 108 128 98 121 131
++95 119 107 111 119 127 98 121 131 112 123 108 111 119 127 111 119 127 111 119 127 111 119 127
++111 119 127 111 122 142 111 119 127 121 143 132 111 122 142 121 143 132 111 122 142 121 143 132
++
++112 123 108 112 123 108 112 123 108 95 91 100 75 81 82 75 81 76 65 63 61 59 55 55
++52 55 48 47 44 42 47 44 42 42 41 42 55 39 37 55 39 37 55 39 37 60 49 42
++60 49 42 60 49 42 76 46 20 63 55 45 75 56 53 75 56 53 75 56 53 75 56 53
++63 55 45 63 55 45 63 55 45 63 55 45 51 49 42 51 49 42 36 35 37 34 30 15
++22 24 13 15 17 7 15 17 7 15 17 7 13 4 7 13 4 7 13 4 7 15 17 7
++23 18 22 29 35 19 36 35 37 55 55 48 75 73 58 88 83 88 98 113 84 112 96 108
++138 126 108 121 143 132 145 140 145 145 140 145 146 162 145 148 160 159 177 169 143 166 156 164
++166 180 164 166 180 164 189 165 168 166 180 164 166 180 164 166 156 164 166 180 164 166 156 164
++166 156 164 146 151 137 146 151 137 145 140 145 146 151 137 145 140 145 122 134 144 138 126 108
++121 143 132 111 119 127 121 143 132 111 119 127 138 126 108 121 143 132 111 119 127 122 134 144
++138 126 108 121 143 132 122 134 144 121 143 132 145 140 145 146 151 137 150 144 154 146 162 145
++166 156 164 146 162 145 166 156 164 150 171 159 166 156 164 166 156 164 166 180 164 148 160 159
++166 180 164 166 156 164 166 180 164 146 162 145 166 156 164 166 156 164 146 162 145 150 144 154
++146 162 145 146 162 145 150 144 154 146 162 145 150 144 154 146 151 137 146 151 137 146 151 137
++126 147 144 146 151 137 150 144 154 146 151 137 150 144 154 146 162 145 150 144 154 146 162 145
++146 162 145 166 156 164 146 162 145 166 156 164 150 171 159 166 156 164 150 171 159 166 156 164
++148 160 159 146 162 145 148 160 159 146 162 145 166 156 164 150 171 159 166 156 164 150 171 159
++166 156 164 150 171 159 166 156 164 146 162 145 166 156 164 146 162 145 148 160 159 146 151 137
++146 151 137 145 140 145 126 147 144 145 140 145 121 143 132 141 116 139 121 143 132 121 143 132
++111 119 127 111 119 127 95 108 128 95 95 116 95 91 100 61 78 101 60 81 83 42 60 86
++34 42 77 34 42 77 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 34 42 77
++24 30 43 34 42 77 24 30 43 34 42 77 29 34 50 29 34 50 57 43 64 29 34 50
++57 43 64 57 43 64 57 43 64 75 64 82 76 44 53 75 64 82 88 69 84 101 60 73
++101 60 73 101 60 73 120 63 71 138 102 108 120 63 71 138 102 108 120 63 71 138 102 108
++138 102 108 168 102 88 138 102 108 168 102 88 138 102 108 168 102 88 168 102 88 138 102 108
++168 102 88 168 102 88 120 63 71 168 102 88 168 102 88 168 102 88 168 102 88 167 63 71
++168 102 88 168 102 88 167 63 71 117 99 86 167 63 71 168 102 88 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 120 63 71 167 63 71 167 63 71 167 63 71 167 63 71
++168 102 88 167 63 71 168 102 88 168 102 88 176 103 41 167 63 71 168 102 88 176 103 41
++168 102 88 168 102 88 167 63 71 168 102 88 168 102 88 168 102 88 168 102 88 176 103 41
++195 113 123 176 103 41 168 102 88 176 103 41 195 113 123 176 103 41 168 102 88 176 103 41
++195 113 123 176 103 41 195 113 123 176 103 41 201 146 124 176 103 41 195 113 123 219 175 47
++168 102 88 157 148 53 168 102 88 157 148 53 201 146 124 168 102 88 219 175 47 201 146 124
++176 103 41 201 146 124 157 148 53 201 146 124 157 148 53 201 146 124 219 175 47 168 102 88
++157 148 53 168 102 88 117 99 86 88 73 62 76 46 20 59 36 42 88 73 31 117 114 76
++168 102 88 117 127 86 168 102 88 117 114 76 168 102 88 138 126 108 157 148 53 138 126 108
++168 102 88 138 126 108 117 114 76 168 102 88 117 114 76 168 102 88 117 114 76 176 103 41
++120 63 71 101 74 26 88 44 51 76 46 20 53 35 17 53 35 17 53 35 17 55 39 18
++59 36 42 76 46 20 88 73 31 88 44 51 101 74 26 120 63 71 88 73 31 75 56 53
++76 46 20 55 39 18 55 39 18 52 30 15 52 30 35 52 30 15 55 39 18 55 39 18
++60 49 42 63 55 45 76 46 20 55 39 37 76 46 20 60 49 42 76 46 20 88 73 31
++75 56 53 88 73 62 101 74 26 101 83 74 88 73 62 88 73 62 75 72 67 57 43 64
++45 57 61 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 42 60 86 34 42 77 46 59 71
++34 42 77 42 60 86 46 59 71 34 42 77 42 60 86 46 59 71 42 60 86 42 60 86
++46 59 71 42 60 86 59 69 70 46 59 71 59 69 70 60 63 87 46 59 71 59 69 70
++46 59 71 60 63 87 60 81 83 77 90 100 94 105 108 111 119 127 111 119 127 122 134 144
++126 147 144 126 147 144 129 144 153 131 144 168 148 160 159 150 168 183 148 160 159 148 160 159
++166 174 181 148 160 159 166 174 181 150 168 183 150 171 159 150 168 183 148 160 159 150 168 183
++148 160 159 150 144 154 145 140 145 112 123 108 87 99 72 88 73 62 88 73 62 101 83 74
++98 106 55 117 114 76 157 148 53 138 126 108 146 150 115 138 126 108 138 126 108 157 148 53
++117 114 76 138 126 108 117 127 86 168 102 88 146 150 115 168 146 127 177 171 115 177 169 143
++177 169 143 177 169 143 197 171 123 189 165 168 214 214 134 177 169 143 217 168 156 189 165 168
++214 214 134 217 168 156 217 168 156 208 215 180 217 168 156 214 214 134 189 165 168 214 214 134
++217 168 156 217 168 156 189 165 168 214 214 134 177 169 143 217 168 156 217 168 156 217 168 156
++214 214 134 217 168 156 217 168 156 217 168 156 208 215 180 227 171 124 225 222 201 227 171 124
++225 222 201 222 171 182 225 222 201 222 171 182 208 215 180 222 171 182 208 215 180 222 171 182
++214 214 134 189 165 168 197 171 123 197 171 123 189 165 168 197 171 123 217 168 156 217 168 156
++177 169 143 177 169 143 138 126 108 122 134 144 129 144 153 129 144 153 129 144 153 131 144 168
++131 144 168 148 160 159 131 144 168 148 160 159 148 160 159 150 168 183 150 171 159 166 156 164
++150 168 183 150 171 159 150 168 183 150 171 159 150 168 183 150 168 183 150 171 159 166 174 181
++150 171 159 166 174 181 166 156 164 166 180 164 150 168 183 166 156 164 166 174 181 150 171 159
++150 168 183 166 174 181 166 174 181 150 168 183 166 174 181 150 171 159 150 168 183 150 171 159
++150 168 183 150 168 183 150 171 159 148 160 159 148 160 159 148 160 159 129 144 153 129 144 153
++129 144 153 122 134 144 122 134 144 111 122 142 111 122 142 95 108 128 95 108 128 95 108 128
++77 91 115 77 91 115 61 78 101 61 78 101 60 63 87 42 60 86 42 60 86 34 42 77
++34 42 77 42 60 86 60 63 87 61 78 101 61 78 101 77 91 115 77 91 115 77 91 115
++95 108 128 95 108 128 98 121 131 111 119 127 111 122 142 122 134 144 122 134 144 129 144 153
++129 144 153 129 144 153 131 144 168 148 160 159 150 147 171 150 168 183 148 160 159 150 147 171
++148 160 159 150 171 159 148 160 159 166 174 181 150 171 159 150 168 183 150 171 159 166 156 164
++150 171 159 150 168 183 150 171 159 166 156 164 150 168 183 150 171 159 150 171 159 148 160 159
++146 151 137 112 123 108 87 99 72 75 56 53 75 73 36 75 73 36 75 73 36 98 106 55
++88 73 31 75 73 36 75 73 36 60 49 42 60 49 42 63 55 45 64 70 48 81 96 56
++75 77 62 50 61 48 47 47 21 29 35 19 26 25 15 34 30 15 32 39 24 33 39 38
++47 44 42 43 42 50 45 57 61 59 69 70 61 78 101 77 90 100 77 90 100 77 91 115
++77 91 115 95 108 128 95 108 128 95 108 128 98 121 131 111 122 142 111 119 127 122 134 144
++122 134 144 126 147 144 146 151 137 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159
++150 168 183 148 160 159 166 174 181 150 171 159 166 174 181 166 174 181 150 171 159 166 174 181
++166 174 181 166 180 164 166 174 181 166 174 181 166 180 164 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 150 168 183 148 160 159 150 168 183 150 168 183 148 160 159 148 160 159
++148 160 159 148 160 159 129 144 153 129 144 153 122 134 144 122 134 144 122 134 144 111 122 142
++119 117 138 98 121 131 95 108 128 95 108 128 77 91 115 77 91 115 77 90 100 61 78 101
++61 78 101 60 63 87 42 60 86 42 60 86 46 59 71 34 42 77 32 40 58 34 42 77
++32 40 58 45 57 61 32 40 58 46 59 71 46 59 71 60 63 87 60 63 87 61 78 101
++75 81 90 77 91 115 95 95 116 95 95 116 95 108 128 95 108 128 98 121 131 111 119 127
++111 122 142 111 122 142 121 143 132 122 134 144 122 134 144 122 134 144 122 134 144 126 147 144
++126 147 144 129 144 153 129 144 153 145 140 145 129 144 153 129 144 153 145 140 145 129 144 153
++129 144 153 145 140 145 129 144 153 145 140 145 129 144 153 129 144 153 129 144 153 122 134 144
++129 144 153 126 147 144 129 144 153 126 147 144 126 147 144 122 134 144 122 134 144 122 134 144
++122 134 144 122 134 144 122 134 144 121 143 132 111 119 127 111 119 127 98 121 131 98 121 131
++95 108 128 94 105 108 95 95 116 77 91 115 77 90 100 61 78 101 61 78 101 60 63 87
++42 60 86 46 59 71 34 42 77 32 40 58 32 40 58 32 40 58 29 34 50 29 34 50
++32 40 58 29 34 50 32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58
++29 34 50 32 40 58 29 34 50 32 40 58 32 40 58 46 59 71 46 59 71 60 63 87
++60 81 83 61 78 101 77 90 100 77 91 115 94 105 108 95 108 128 95 119 107 111 119 127
++111 119 127 111 119 127 111 122 142 122 134 144 111 119 127 122 134 144 122 134 144 122 134 144
++122 134 144 122 134 144 111 122 142 121 143 132 122 134 144 111 119 127 111 119 127 98 121 131
++111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 98 121 131 111 119 127
++111 119 127 111 119 127 111 119 127 98 121 131 111 119 127 111 119 127 111 119 127 111 122 142
++111 119 127 122 134 144 121 143 132 122 134 144 121 143 132 122 134 144 121 143 132 122 134 144
++
++112 123 108 112 96 108 94 105 108 90 98 89 75 81 82 59 69 70 53 63 61 52 55 48
++48 50 48 42 41 42 42 41 42 32 39 24 47 39 42 47 47 21 51 49 42 55 39 37
++47 47 21 60 49 42 60 49 42 60 49 42 63 55 45 63 55 45 75 56 53 63 55 45
++75 56 53 60 49 42 63 55 45 60 49 42 47 47 21 51 49 42 32 39 24 34 30 15
++22 24 13 17 12 17 15 17 7 13 4 7 15 17 7 15 17 7 6 15 6 13 4 7
++15 17 7 23 18 22 29 35 19 47 44 42 59 55 55 75 72 67 90 98 89 112 96 108
++112 123 108 138 126 108 121 143 132 146 151 137 150 144 154 146 162 145 166 156 164 166 180 164
++166 156 164 166 180 164 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164 146 162 145
++177 169 143 148 160 159 146 151 137 146 151 137 145 140 145 138 126 108 121 143 132 141 116 139
++121 143 132 138 126 108 111 119 127 138 126 108 111 119 127 121 143 132 138 126 108 121 143 132
++119 117 138 121 143 132 145 140 145 121 143 132 145 140 145 146 151 137 146 151 137 146 162 145
++148 160 159 166 156 164 150 171 159 177 169 143 150 171 159 150 171 159 166 156 164 166 180 164
++166 156 164 150 171 159 166 156 164 166 156 164 146 162 145 146 162 145 166 156 164 146 162 145
++150 144 154 146 162 145 150 144 154 146 151 137 146 151 137 145 140 145 146 151 137 145 140 145
++146 151 137 145 140 145 146 151 137 146 162 145 150 144 154 146 151 137 146 162 145 150 144 154
++146 162 145 148 160 159 166 156 164 150 171 159 166 156 164 150 171 159 177 169 143 148 160 159
++166 156 164 146 162 145 166 156 164 150 171 159 166 156 164 146 162 145 166 156 164 146 162 145
++166 156 164 166 180 164 148 160 159 166 156 164 146 162 145 148 160 159 150 144 154 146 151 137
++129 144 153 145 140 145 145 140 145 121 143 132 145 140 145 121 143 132 119 117 138 111 119 127
++111 119 127 111 119 127 95 119 107 95 95 116 77 91 115 75 81 90 60 63 87 60 63 87
++34 42 77 32 40 58 32 40 58 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77
++34 42 77 12 18 30 34 42 77 24 30 43 34 42 77 29 34 50 57 43 64 29 34 50
++57 43 64 57 43 64 57 43 64 76 44 53 75 64 82 101 60 73 101 60 73 88 69 84
++101 60 73 112 96 108 120 63 71 120 63 71 138 102 108 138 102 108 138 102 108 167 63 71
++138 102 108 168 102 88 138 102 108 168 102 88 138 102 108 168 102 88 168 102 88 168 102 88
++168 102 88 168 102 88 168 102 88 168 102 88 167 63 71 168 102 88 168 102 88 117 99 86
++168 102 88 167 63 71 168 102 88 168 102 88 167 63 71 168 102 88 168 102 88 168 102 88
++168 102 88 167 63 71 168 102 88 168 102 88 167 63 71 168 102 88 168 102 88 167 63 71
++168 102 88 167 63 71 168 102 88 167 63 71 168 102 88 167 63 71 168 102 88 168 102 88
++176 103 41 168 102 88 176 103 41 168 102 88 168 102 88 176 103 41 195 113 123 176 103 41
++168 102 88 168 102 88 176 103 41 168 102 88 176 103 41 168 102 88 176 103 41 195 113 123
++176 103 41 176 103 41 168 102 88 219 175 47 168 102 88 157 148 53 168 102 88 168 102 88
++219 175 47 195 113 123 219 175 47 168 102 88 219 175 47 168 102 88 157 148 53 168 102 88
++219 175 47 157 148 53 168 102 88 219 175 47 201 146 124 157 148 53 168 102 88 117 112 45
++117 112 45 76 46 20 52 30 15 52 30 15 49 13 16 52 30 15 101 74 26 168 102 88
++117 114 76 168 102 88 117 112 45 117 114 76 168 102 88 168 146 127 163 117 123 168 102 88
++157 148 53 138 126 108 168 102 88 117 114 76 168 102 88 117 114 76 168 102 88 117 114 76
++117 99 86 120 63 71 88 73 31 76 46 20 52 30 35 53 35 17 53 35 17 59 36 42
++76 46 20 76 46 20 88 44 51 88 73 62 88 73 62 88 73 31 88 44 51 88 73 31
++76 46 20 55 39 37 53 35 17 53 35 17 52 30 15 33 30 30 52 30 15 55 39 37
++76 46 20 60 49 42 60 49 42 60 49 42 76 46 20 60 49 42 76 46 20 75 56 53
++88 73 31 88 73 62 101 83 74 101 83 74 88 73 62 75 73 58 59 57 61 54 57 61
++32 40 58 34 42 77 32 40 58 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 42 60 86 34 42 77 42 60 86 42 60 86 42 60 86 34 42 77 42 60 86
++34 42 77 46 59 71 42 60 86 42 60 86 46 59 71 42 60 86 46 59 71 46 59 71
++42 60 86 46 59 71 46 59 71 60 63 87 46 59 71 60 81 83 46 59 71 60 63 87
++46 59 71 60 81 83 60 81 83 77 90 100 77 91 115 95 119 107 111 122 142 121 143 132
++122 134 144 129 144 153 148 160 159 148 160 159 131 144 168 150 171 159 150 168 183 150 171 159
++150 168 183 166 156 164 166 174 181 150 171 159 166 174 181 148 160 159 150 171 159 148 160 159
++148 160 159 148 160 159 126 147 144 146 151 137 112 123 108 99 93 84 81 96 56 88 73 62
++88 73 31 101 83 74 117 114 76 117 114 76 168 102 88 146 150 115 138 126 108 138 126 108
++138 126 108 157 148 53 117 114 76 138 126 108 117 127 86 163 117 123 146 150 115 168 146 127
++197 171 123 177 169 143 177 169 143 197 171 123 189 165 168 217 168 156 214 214 134 189 165 168
++217 168 156 177 169 143 217 168 156 197 171 123 217 168 156 208 215 180 217 168 156 217 168 156
++189 165 168 214 214 134 217 168 156 189 165 168 217 168 156 214 214 134 189 165 168 208 215 180
++217 168 156 217 168 156 208 215 180 217 168 156 217 168 156 217 168 156 217 168 156 208 215 180
++222 171 182 214 214 134 222 171 182 214 214 134 225 222 201 214 214 134 222 171 182 225 222 201
++217 168 156 217 168 156 177 169 143 217 168 156 177 169 143 217 168 156 177 169 143 217 168 156
++208 215 180 189 165 168 148 160 159 145 140 145 122 134 144 129 144 153 131 144 168 148 160 159
++148 160 159 131 144 168 150 168 183 148 160 159 150 168 183 148 160 159 148 160 159 150 168 183
++166 156 164 150 168 183 166 156 164 150 168 183 166 180 164 166 156 164 150 168 183 166 174 181
++150 168 183 166 174 181 150 168 183 166 174 181 150 171 159 166 174 181 150 168 183 166 174 181
++166 156 164 150 168 183 166 180 164 166 174 181 150 171 159 166 156 164 150 168 183 150 171 159
++150 168 183 148 160 159 148 160 159 148 160 159 131 144 168 148 160 159 131 144 168 129 144 153
++129 144 153 126 147 144 122 134 144 111 122 142 98 121 131 98 121 131 95 108 128 95 95 116
++77 91 115 77 91 115 61 78 101 61 78 101 42 60 86 42 60 86 34 42 77 42 60 86
++42 60 86 60 63 87 60 63 87 61 78 101 61 78 101 77 91 115 77 91 115 95 95 116
++95 108 128 95 108 128 111 122 142 111 122 142 122 134 144 122 134 144 126 147 144 129 144 153
++129 144 153 148 160 159 148 160 159 131 144 168 148 160 159 148 160 159 150 168 183 150 171 159
++150 168 183 166 156 164 150 168 183 150 171 159 166 174 181 148 160 159 166 174 181 150 168 183
++150 171 159 166 156 164 150 168 183 150 171 159 148 160 159 166 156 164 150 168 183 150 171 159
++148 160 159 146 150 115 98 113 84 75 73 58 47 47 21 76 46 20 75 73 36 75 73 36
++55 39 18 55 39 18 34 30 15 47 47 21 75 73 36 81 96 56 117 99 86 98 113 84
++75 73 58 47 47 21 22 24 13 22 24 13 29 35 19 29 35 19 32 39 24 63 55 51
++75 72 67 75 81 76 59 69 70 75 81 90 75 81 90 77 90 100 77 91 115 94 105 108
++94 105 108 95 108 128 95 108 128 98 121 131 111 119 127 111 119 127 121 143 132 122 134 144
++122 134 144 126 147 144 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159 150 168 183
++148 160 159 166 174 181 166 156 164 150 168 183 166 180 164 166 174 181 166 174 181 166 174 181
++150 171 159 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 150 171 159 166 174 181
++150 171 159 166 156 164 150 168 183 150 171 159 150 147 171 148 160 159 148 160 159 148 160 159
++131 144 168 129 144 153 129 144 153 129 144 153 126 147 144 122 134 144 111 122 142 121 143 132
++111 122 142 98 121 131 95 108 128 94 105 108 77 91 115 77 91 115 77 90 100 61 78 101
++60 81 83 60 63 87 42 60 86 46 59 71 34 42 77 32 40 58 46 59 71 32 40 58
++34 42 77 45 57 61 42 60 86 46 59 71 60 63 87 60 81 83 61 78 101 61 78 101
++77 91 115 77 91 115 95 108 128 95 108 128 98 121 131 111 119 127 111 122 142 111 122 142
++122 134 144 111 119 127 122 134 144 122 134 144 122 134 144 126 147 144 122 134 144 129 144 153
++129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153
++129 144 153 129 144 153 129 144 153 129 144 153 126 147 144 129 144 153 145 140 145 126 147 144
++129 144 153 129 144 153 122 134 144 129 144 153 126 147 144 126 147 144 126 147 144 129 144 153
++126 147 144 122 134 144 122 134 144 111 122 142 122 134 144 98 121 131 111 119 127 98 121 131
++95 119 107 95 108 128 95 108 128 95 95 116 77 91 115 77 90 100 61 78 101 60 81 83
++60 63 87 46 59 71 34 42 77 32 40 58 32 40 58 29 34 50 32 40 58 34 42 77
++29 34 50 34 42 77 29 34 50 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58
++32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 46 59 71 46 59 71 60 63 87
++60 81 83 75 81 90 77 90 100 77 91 115 94 105 108 95 108 128 111 119 127 98 121 131
++122 134 144 122 134 144 121 143 132 122 134 144 122 134 144 122 134 144 126 147 144 122 134 144
++122 134 144 121 143 132 122 134 144 122 134 144 122 134 144 111 119 127 121 143 132 111 119 127
++111 119 127 121 143 132 98 121 131 111 119 127 111 122 142 111 119 127 111 119 127 111 119 127
++111 119 127 111 119 127 111 119 127 111 119 127 121 143 132 121 143 132 121 143 132 122 134 144
++121 143 132 122 134 144 122 134 144 122 134 144 122 134 144 121 143 132 122 134 144 122 134 144
++
++111 119 127 111 119 127 94 105 108 95 91 100 75 81 82 59 69 70 53 63 61 48 50 48
++42 41 42 42 41 42 42 41 42 36 35 37 36 35 37 42 41 42 47 39 42 47 47 21
++55 39 37 55 39 37 55 39 18 60 49 42 60 49 42 63 55 45 63 55 45 63 55 45
++63 55 45 60 49 42 63 55 45 63 55 45 51 49 42 55 39 37 36 35 37 26 25 15
++22 24 13 15 17 7 13 4 7 7 12 13 13 4 7 13 4 7 13 4 7 6 15 6
++13 4 7 15 17 7 22 24 13 33 30 30 52 55 48 65 63 61 88 83 74 99 93 84
++111 119 127 138 126 108 141 116 139 146 151 137 146 151 137 166 156 164 146 162 145 166 156 164
++166 180 164 166 156 164 166 180 164 166 180 164 166 180 164 177 169 143 166 180 164 166 156 164
++148 160 159 148 160 159 146 151 137 145 140 145 146 151 137 126 147 144 138 126 108 121 143 132
++138 126 108 121 143 132 138 126 108 121 143 132 111 119 127 138 126 108 121 143 132 119 117 138
++138 126 108 121 143 132 138 126 108 121 143 132 146 151 137 145 140 145 146 151 137 150 144 154
++146 162 145 146 162 145 166 156 164 150 171 159 166 156 164 166 156 164 150 171 159 166 156 164
++150 171 159 166 156 164 150 171 159 146 162 145 166 156 164 148 160 159 146 162 145 166 156 164
++146 162 145 150 144 154 146 151 137 146 162 145 145 140 145 146 151 137 126 147 144 146 151 137
++126 147 144 146 151 137 145 140 145 146 151 137 146 151 137 150 144 154 146 162 145 148 160 159
++148 160 159 177 169 143 150 171 159 166 156 164 166 180 164 150 171 159 166 156 164 150 171 159
++177 169 143 150 171 159 166 156 164 146 162 145 166 156 164 146 162 145 148 160 159 177 169 143
++148 160 159 177 169 143 150 171 159 166 156 164 146 162 145 166 156 164 146 162 145 146 162 145
++145 140 145 146 151 137 126 147 144 145 140 145 122 134 144 119 117 138 121 143 132 121 143 132
++111 119 127 111 119 127 95 108 128 94 105 108 77 90 100 61 78 101 60 63 87 42 60 86
++34 42 77 34 42 77 34 42 77 12 18 30 34 42 77 34 42 77 24 30 43 34 42 77
++24 30 43 34 42 77 29 34 50 34 42 77 29 34 50 29 34 50 57 43 64 29 34 50
++57 43 64 57 43 64 57 43 64 76 44 53 75 64 82 75 64 82 88 69 84 101 60 73
++112 96 108 120 63 71 112 96 108 138 102 108 120 63 71 138 102 108 138 102 108 138 102 108
++163 117 123 138 102 108 138 102 108 168 102 88 138 102 108 168 102 88 163 117 123 138 102 108
++168 102 88 163 117 123 138 102 108 168 102 88 138 102 108 138 102 108 168 102 88 168 102 88
++168 102 88 138 102 108 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88
++168 102 88 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88 117 99 86 168 102 88
++168 102 88 117 99 86 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88
++168 102 88 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88
++168 102 88 168 102 88 168 102 88 195 113 123 176 103 41 195 113 123 168 102 88 168 102 88
++176 103 41 201 146 124 168 102 88 168 102 88 168 102 88 168 102 88 219 175 47 201 146 124
++168 102 88 157 148 53 201 146 124 168 102 88 201 146 124 157 148 53 201 146 124 201 146 124
++157 148 53 201 146 124 201 146 124 177 171 115 168 102 88 117 99 86 88 73 31 53 35 17
++49 13 16 26 12 13 26 12 13 23 10 10 55 39 18 120 63 71 117 114 76 117 114 76
++168 102 88 117 114 76 117 114 76 168 102 88 157 148 53 168 146 127 146 150 115 138 126 108
++168 102 88 117 114 76 117 114 76 117 99 86 176 103 41 117 99 86 117 114 76 168 102 88
++117 99 86 117 112 45 88 44 51 76 46 20 53 35 17 52 30 15 53 35 17 55 39 18
++76 46 20 88 44 51 88 73 62 101 74 26 88 73 62 88 73 31 76 44 53 76 46 20
++55 39 37 53 35 17 52 30 15 52 30 35 34 30 15 52 30 15 52 30 35 55 39 18
++60 49 42 76 46 20 75 73 36 76 46 20 63 55 45 76 46 20 88 73 31 88 73 62
++101 74 26 88 73 62 88 73 62 88 73 62 75 72 67 59 57 61 57 43 64 46 59 71
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 42 60 86 34 42 77 34 42 77 42 60 86 42 60 86 34 42 77
++46 59 71 34 42 77 42 60 86 34 42 77 42 60 86 46 59 71 46 59 71 42 60 86
++46 59 71 60 63 87 46 59 71 59 69 70 42 60 86 59 69 70 42 60 86 59 69 70
++46 59 71 60 81 83 60 81 83 77 90 100 94 105 108 98 121 131 111 119 127 122 134 144
++122 134 144 126 147 144 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159 166 156 164
++150 168 183 166 174 181 150 168 183 166 174 181 150 171 159 150 168 183 148 160 159 150 168 183
++148 160 159 148 160 159 129 144 153 145 140 145 145 140 145 111 119 127 90 98 89 88 83 74
++81 96 56 75 73 58 101 83 74 99 93 84 117 114 76 168 102 88 146 150 115 168 102 88
++138 126 108 138 126 108 117 114 76 168 102 88 117 99 86 157 148 53 138 126 108 146 150 115
++168 146 127 168 146 127 197 171 123 177 169 143 197 171 123 177 169 143 217 168 156 217 168 156
++217 168 156 214 214 134 189 165 168 214 214 134 189 165 168 217 168 156 217 168 156 189 165 168
++214 214 134 189 165 168 217 168 156 214 214 134 177 169 143 217 168 156 217 168 156 217 168 156
++217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 217 168 156
++222 171 182 214 214 134 222 171 182 225 222 201 222 171 182 222 171 182 225 222 201 217 168 156
++208 215 180 217 168 156 177 169 143 201 146 124 177 169 143 197 171 123 217 168 156 177 169 143
++217 168 156 208 215 180 189 165 168 168 146 127 145 140 145 145 140 145 129 144 153 148 160 159
++131 144 168 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 150 168 183 150 171 159
++166 174 181 150 171 159 150 168 183 150 171 159 150 168 183 150 171 159 150 168 183 166 156 164
++150 171 159 166 174 181 150 171 159 166 174 181 150 168 183 166 174 181 166 180 164 150 168 183
++166 180 164 166 174 181 166 174 181 150 168 183 166 174 181 150 171 159 166 174 181 166 180 164
++150 168 183 150 171 159 150 168 183 148 160 159 150 168 183 148 160 159 148 160 159 131 144 168
++129 144 153 129 144 153 122 134 144 122 134 144 111 122 142 111 122 142 95 108 128 95 108 128
++77 91 115 77 91 115 77 91 115 61 78 101 60 63 87 60 63 87 42 60 86 42 60 86
++42 60 86 60 63 87 61 78 101 61 78 101 77 91 115 77 91 115 95 95 116 95 108 128
++98 121 131 111 119 127 111 122 142 122 134 144 122 134 144 126 147 144 129 144 153 129 144 153
++148 160 159 129 144 153 148 160 159 148 160 159 148 160 159 150 168 183 150 147 171 166 174 181
++150 171 159 150 168 183 166 174 181 166 174 181 150 171 159 166 174 181 150 168 183 166 156 164
++166 174 181 150 171 159 150 168 183 166 156 164 150 168 183 150 171 159 148 160 159 166 174 181
++148 160 159 148 160 159 121 143 132 90 98 89 51 73 47 32 39 24 47 47 21 32 39 24
++34 30 15 22 24 13 34 30 15 47 47 21 55 55 48 75 77 62 87 99 72 75 81 69
++51 49 42 22 24 13 15 17 7 22 24 13 26 25 15 26 25 15 47 49 42 75 81 69
++75 81 82 75 81 90 75 81 90 60 81 83 61 78 101 77 90 100 77 91 115 95 108 128
++77 91 115 95 108 128 98 121 131 111 119 127 98 121 131 121 143 132 111 122 142 122 134 144
++126 147 144 129 144 153 129 144 153 148 160 159 129 144 153 148 160 159 150 168 183 148 160 159
++166 174 181 150 171 159 150 168 183 166 156 164 166 174 181 166 174 181 166 180 164 166 174 181
++166 174 181 166 174 181 166 174 181 166 174 181 166 180 164 166 174 181 166 174 181 166 156 164
++150 168 183 166 180 164 150 168 183 166 156 164 150 168 183 148 160 159 150 168 183 148 160 159
++148 160 159 148 160 159 129 144 153 126 147 144 122 134 144 122 134 144 122 134 144 111 122 142
++111 122 142 111 119 127 95 108 128 95 108 128 94 105 108 77 91 115 77 91 115 61 78 101
++61 78 101 60 63 87 42 60 86 42 60 86 46 59 71 34 42 77 34 42 77 32 40 58
++45 57 61 34 42 77 46 59 71 42 60 86 60 63 87 61 78 101 75 81 90 77 90 100
++77 91 115 94 105 108 94 105 108 98 121 131 111 119 127 111 119 127 121 143 132 111 122 142
++122 134 144 121 143 132 122 134 144 122 134 144 126 147 144 126 147 144 129 144 153 129 144 153
++129 144 153 145 140 145 129 144 153 146 162 145 129 144 153 145 140 145 129 144 153 146 162 145
++129 144 153 150 144 154 129 144 153 145 140 145 129 144 153 129 144 153 129 144 153 129 144 153
++129 144 153 129 144 153 129 144 153 145 140 145 129 144 153 129 144 153 129 144 153 129 144 153
++129 144 153 122 134 144 126 147 144 121 143 132 122 134 144 122 134 144 121 143 132 111 119 127
++98 121 131 95 108 128 95 108 128 94 105 108 77 91 115 77 91 115 77 90 100 61 78 101
++61 78 101 46 59 71 46 59 71 34 42 77 32 40 58 32 40 58 29 34 50 29 34 50
++32 40 58 29 34 50 32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58
++29 34 50 32 40 58 32 40 58 32 40 58 57 43 64 46 59 71 46 59 71 59 69 70
++61 78 101 77 90 100 77 90 100 94 105 108 94 105 108 95 108 128 111 119 127 111 122 142
++111 119 127 122 134 144 122 134 144 122 134 144 126 147 144 126 147 144 126 147 144 129 144 153
++126 147 144 129 144 153 126 147 144 122 134 144 121 143 132 122 134 144 122 134 144 122 134 144
++121 143 132 111 119 127 122 134 144 121 143 132 111 122 142 121 143 132 121 143 132 111 119 127
++121 143 132 111 119 127 121 143 132 111 119 127 121 143 132 111 122 142 122 134 144 122 134 144
++122 134 144 121 143 132 122 134 144 126 147 144 122 134 144 145 140 145 126 147 144 126 147 144
++
++112 123 108 111 119 127 94 105 108 90 98 89 75 81 82 63 59 71 45 57 61 42 47 42
++34 40 43 31 35 35 33 30 30 29 35 19 33 30 30 32 39 24 32 39 24 52 30 35
++32 39 24 55 39 37 55 39 37 51 49 42 60 49 42 60 49 42 63 55 45 63 55 45
++63 55 45 63 55 45 63 55 45 63 55 45 51 49 42 47 47 21 36 35 37 34 30 15
++22 25 24 15 17 7 17 12 17 13 4 7 7 12 13 6 15 6 13 4 7 3 3 1
++3 3 1 13 4 7 15 17 7 26 30 28 42 41 42 55 55 48 75 72 67 88 83 88
++112 96 108 112 123 108 121 143 132 121 143 132 146 151 137 146 151 137 146 162 145 166 156 164
++177 169 143 166 180 164 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164 150 171 159
++177 169 143 150 144 154 146 162 145 146 151 137 145 140 145 121 143 132 141 116 139 121 143 132
++111 119 127 138 126 108 111 119 127 111 119 127 138 126 108 121 143 132 119 117 138 121 143 132
++111 119 127 121 143 132 141 116 139 121 143 132 145 140 145 126 147 144 146 151 137 150 144 154
++146 162 145 166 156 164 146 162 145 166 156 164 150 171 159 177 169 143 148 160 159 166 156 164
++150 171 159 177 169 143 148 160 159 166 156 164 146 162 145 146 162 145 166 156 164 146 151 137
++146 162 145 150 144 154 146 162 145 145 140 145 146 151 137 145 140 145 145 140 145 146 151 137
++145 140 145 126 147 144 146 151 137 145 140 145 146 162 145 146 151 137 150 144 154 146 162 145
++166 156 164 148 160 159 166 156 164 150 171 159 177 169 143 166 156 164 166 180 164 166 156 164
++150 171 159 166 156 164 146 162 145 166 156 164 146 162 145 166 156 164 150 171 159 166 156 164
++150 171 159 166 156 164 148 160 159 146 162 145 166 156 164 146 162 145 150 144 154 146 151 137
++145 140 145 126 147 144 145 140 145 126 147 144 145 140 145 121 143 132 119 117 138 111 119 127
++111 119 127 111 119 127 95 108 128 94 105 108 77 91 115 75 81 90 60 63 87 60 63 87
++34 42 77 34 42 77 29 34 50 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77
++24 30 43 34 42 77 24 30 43 34 42 77 29 34 50 34 42 77 52 30 35 57 43 64
++57 43 64 57 43 64 75 59 67 75 64 82 101 60 73 88 69 84 88 69 84 95 91 100
++120 63 71 112 96 108 120 63 71 138 102 108 138 102 108 138 102 108 138 102 108 138 102 108
++138 102 108 163 117 123 138 102 108 163 117 123 163 117 123 163 117 123 168 102 88 163 117 123
++168 102 88 163 117 123 168 102 88 163 117 123 168 102 88 168 102 88 138 102 108 168 102 88
++138 102 108 168 102 88 168 102 88 138 102 108 168 102 88 138 102 108 168 102 88 138 102 108
++168 102 88 138 102 108 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88
++168 102 88 168 102 88 168 102 88 138 102 108 168 102 88 168 102 88 168 102 88 168 102 88
++168 102 88 168 102 88 195 113 123 168 102 88 168 102 88 168 102 88 168 102 88 195 113 123
++168 102 88 195 113 123 168 102 88 168 102 88 168 102 88 157 148 53 195 113 123 157 148 53
++201 146 124 168 102 88 157 148 53 201 146 124 157 148 53 201 146 124 168 102 88 168 102 88
++201 146 124 157 148 53 168 102 88 157 148 53 201 146 124 157 148 53 168 102 88 219 175 47
++201 146 124 177 171 115 168 102 88 117 112 45 76 46 20 47 47 21 13 4 7 3 3 1
++13 4 7 13 4 7 23 10 10 52 30 15 88 73 31 117 114 76 168 102 88 117 114 76
++117 112 45 168 102 88 117 114 76 138 126 108 163 117 123 146 150 115 168 102 88 138 126 108
++117 114 76 168 102 88 117 114 76 168 102 88 117 114 76 168 102 88 168 102 88 117 114 76
++120 63 71 117 99 86 101 74 26 59 36 42 55 39 18 53 35 17 52 30 35 76 46 20
++60 49 42 75 56 53 88 73 31 101 60 73 88 73 31 88 44 51 76 46 20 55 39 37
++53 35 17 34 30 15 52 30 15 34 30 15 49 13 16 34 30 15 52 30 15 55 39 18
++60 49 42 75 56 53 75 56 53 88 73 31 88 73 31 88 44 51 88 73 31 88 44 51
++101 83 74 101 83 74 101 74 26 75 72 67 53 63 61 45 57 61 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 32 40 58 34 42 77
++34 42 77 34 42 77 42 60 86 42 60 86 42 60 86 42 60 86 34 42 77 42 60 86
++46 59 71 42 60 86 42 60 86 46 59 71 46 59 71 34 42 77 42 60 86 46 59 71
++46 59 71 60 63 87 46 59 71 42 60 86 59 69 70 59 69 70 42 60 86 60 81 83
++42 60 86 60 81 83 60 81 83 77 90 100 94 105 108 95 108 128 111 119 127 121 143 132
++122 134 144 129 144 153 129 144 153 148 160 159 131 144 168 150 168 183 150 168 183 150 168 183
++150 168 183 166 156 164 150 168 183 166 174 181 150 171 159 150 168 183 150 171 159 148 160 159
++148 160 159 131 144 168 146 162 145 129 144 153 129 144 153 122 134 144 112 123 108 94 105 108
++88 83 74 75 77 62 88 73 62 80 96 46 101 83 74 98 106 55 117 114 76 146 150 115
++146 150 115 168 102 88 146 150 115 117 127 86 138 126 108 117 114 76 138 102 108 117 114 76
++168 102 88 146 150 115 168 146 127 168 146 127 177 171 115 177 169 143 217 168 156 214 214 134
++166 180 164 217 168 156 189 165 168 217 168 156 214 214 134 189 165 168 214 214 134 217 168 156
++217 168 156 208 215 180 217 168 156 217 168 156 208 215 180 217 168 156 214 214 134 189 165 168
++214 214 134 217 168 156 217 168 156 214 214 134 222 171 182 208 215 180 217 168 156 214 214 134
++222 171 182 222 171 182 214 214 134 222 171 182 214 214 134 225 222 201 214 214 134 222 171 182
++208 215 180 217 168 156 217 168 156 197 171 123 177 169 143 201 146 124 217 168 156 197 171 123
++217 168 156 217 168 156 208 215 180 189 165 168 146 162 145 121 143 132 145 140 145 129 144 153
++148 160 159 131 144 168 148 160 159 150 147 171 148 160 159 150 168 183 148 160 159 150 168 183
++166 156 164 150 168 183 150 168 183 166 156 164 150 168 183 166 174 181 166 180 164 150 168 183
++166 174 181 166 174 181 166 174 181 166 156 164 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 150 168 183 166 174 181
++166 174 181 150 171 159 150 168 183 150 171 159 150 147 171 148 160 159 131 144 168 148 160 159
++129 144 153 129 144 153 129 144 153 111 122 142 111 122 142 111 122 142 98 121 131 95 108 128
++95 108 128 77 91 115 77 91 115 61 78 101 61 78 101 42 60 86 42 60 86 42 60 86
++60 63 87 60 63 87 61 78 101 61 78 101 77 91 115 77 91 115 95 108 128 95 108 128
++98 121 131 111 122 142 122 134 144 122 134 144 126 147 144 126 147 144 145 140 145 129 144 153
++148 160 159 148 160 159 148 160 159 150 168 183 150 168 183 166 180 164 150 168 183 166 174 181
++166 174 181 166 174 181 150 171 159 166 174 181 166 174 181 150 168 183 166 180 164 150 168 183
++166 174 181 166 156 164 166 174 181 150 171 159 166 174 181 166 156 164 150 168 183 148 160 159
++166 156 164 150 168 183 150 144 154 111 119 127 87 99 72 52 55 48 29 35 19 15 17 7
++15 17 7 15 17 7 22 24 13 23 31 15 32 39 24 47 49 42 50 61 48 63 55 45
++47 49 42 47 47 21 47 47 21 22 24 13 15 17 7 23 31 15 55 55 48 90 98 89
++95 91 100 77 90 100 60 81 83 60 63 87 77 90 100 77 91 115 77 91 115 94 105 108
++95 108 128 95 108 128 98 121 131 111 119 127 111 119 127 111 122 142 121 143 132 122 134 144
++122 134 144 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159 150 171 159 150 168 183
++166 174 181 166 174 181 166 174 181 150 171 159 166 174 181 166 174 181 166 174 181 166 174 181
++166 180 164 166 174 181 166 180 164 150 168 183 166 174 181 166 174 181 150 171 159 166 174 181
++150 171 159 166 174 181 150 171 159 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 129 144 153 129 144 153 129 144 153 126 147 144 122 134 144 111 122 142 111 122 142
++111 119 127 98 121 131 95 108 128 95 108 128 94 105 108 77 91 115 77 90 100 77 91 115
++61 78 101 60 63 87 42 60 86 42 60 86 34 42 77 46 59 71 34 42 77 45 57 61
++34 42 77 46 59 71 42 60 86 60 63 87 61 78 101 75 81 90 77 90 100 77 91 115
++94 105 108 95 108 128 111 119 127 111 119 127 111 119 127 111 122 142 122 134 144 121 143 132
++122 134 144 122 134 144 126 147 144 129 144 153 129 144 153 129 144 153 150 144 154 148 160 159
++129 144 153 148 160 159 129 144 153 129 144 153 148 160 159 129 144 153 148 160 159 129 144 153
++129 144 153 148 160 159 129 144 153 148 160 159 129 144 153 129 144 153 150 144 154 129 144 153
++129 144 153 145 140 145 129 144 153 129 144 153 129 144 153 145 140 145 129 144 153 129 144 153
++129 144 153 129 144 153 129 144 153 122 134 144 122 134 144 122 134 144 111 122 142 121 143 132
++98 121 131 111 119 127 98 121 131 95 108 128 94 105 108 77 91 115 77 90 100 61 78 101
++60 81 83 60 63 87 46 59 71 46 59 71 32 40 58 32 40 58 29 34 50 34 42 77
++29 34 50 32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58 32 40 58
++32 40 58 29 34 50 32 40 58 32 40 58 34 42 77 46 59 71 60 63 87 60 81 83
++75 81 90 77 90 100 94 105 108 94 105 108 95 108 128 111 119 127 111 119 127 121 143 132
++122 134 144 122 134 144 126 147 144 126 147 144 129 144 153 126 147 144 145 140 145 129 144 153
++150 144 154 126 147 144 129 144 153 126 147 144 126 147 144 122 134 144 126 147 144 122 134 144
++122 134 144 121 143 132 122 134 144 121 143 132 122 134 144 111 119 127 122 134 144 121 143 132
++122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 121 143 132 122 134 144 126 147 144
++122 134 144 145 140 145 126 147 144 145 140 145 126 147 144 129 144 153 129 144 153 145 140 145
++
++112 96 108 112 123 108 94 105 108 88 83 88 75 81 82 53 63 61 48 50 48 34 40 43
++36 35 37 26 30 28 26 30 28 26 25 15 26 30 28 34 30 15 33 30 30 34 30 15
++34 30 15 47 47 21 55 39 37 47 47 21 51 49 42 60 49 42 63 55 45 63 55 51
++63 55 51 63 55 45 63 55 51 63 55 45 51 49 42 47 44 42 55 39 37 33 30 30
++22 25 24 15 22 17 15 17 7 7 12 13 13 4 7 13 4 7 6 15 6 3 3 1
++13 4 7 6 15 6 13 4 7 26 25 15 33 30 30 48 50 48 65 63 61 88 83 74
++99 93 84 112 123 108 138 126 108 138 126 108 145 140 145 146 151 137 166 156 164 146 162 145
++148 160 159 166 180 164 166 156 164 166 180 164 166 180 164 166 156 164 166 180 164 166 156 164
++148 160 159 146 162 145 145 140 145 146 151 137 145 140 145 121 143 132 138 126 108 121 143 132
++138 126 108 122 134 144 138 126 108 117 142 111 111 119 127 121 143 132 138 126 108 119 117 138
++138 126 108 121 143 132 121 143 132 138 126 108 121 143 132 145 140 145 146 151 137 146 162 145
++150 144 154 146 162 145 166 156 164 146 162 145 148 160 159 148 160 159 148 160 159 177 169 143
++150 171 159 166 156 164 146 162 145 166 156 164 146 162 145 150 144 154 146 162 145 148 160 159
++150 144 154 146 162 145 146 162 145 145 140 145 146 151 137 146 151 137 121 143 132 145 140 145
++121 143 132 145 140 145 126 147 144 146 151 137 145 140 145 146 151 137 146 162 145 150 144 154
++146 162 145 146 162 145 166 156 164 150 171 159 166 156 164 166 180 164 150 171 159 166 180 164
++166 156 164 150 171 159 166 156 164 150 171 159 166 156 164 146 162 145 148 160 159 177 169 143
++148 160 159 177 169 143 150 171 159 166 156 164 148 160 159 146 162 145 148 160 159 148 160 159
++146 151 137 145 140 145 121 143 132 145 140 145 121 143 132 141 116 139 121 143 132 121 143 132
++111 119 127 111 119 127 94 105 108 95 95 116 95 91 100 61 78 101 60 63 87 46 59 71
++34 42 77 34 42 77 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 24 30 43
++34 42 77 24 30 43 34 42 77 29 34 50 57 43 64 29 34 50 34 42 77 57 43 64
++57 43 64 57 43 64 57 43 64 75 64 82 75 64 82 101 60 73 112 96 108 88 69 84
++112 96 108 120 63 71 112 96 108 112 96 108 138 102 108 138 102 108 138 102 108 138 102 108
++163 117 123 138 102 108 163 117 123 138 102 108 163 117 123 168 102 88 163 117 123 138 102 108
++163 117 123 163 117 123 163 117 123 168 102 88 163 117 123 163 117 123 163 117 123 163 117 123
++168 102 88 163 117 123 163 117 123 168 102 88 163 117 123 168 102 88 138 102 108 168 102 88
++168 102 88 168 102 88 168 102 88 168 102 88 138 102 108 168 102 88 168 102 88 163 117 123
++168 102 88 138 102 108 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88
++163 117 123 168 102 88 168 102 88 195 113 123 168 102 88 201 146 124 168 102 88 195 113 123
++157 148 53 195 113 123 157 148 53 168 102 88 201 146 124 168 102 88 168 102 88 201 146 124
++168 102 88 168 102 88 201 146 124 168 102 88 195 113 123 157 148 53 201 146 124 201 146 124
++157 148 53 201 146 124 201 146 124 201 146 124 157 148 53 168 102 88 201 146 124 201 146 124
++177 171 115 168 102 88 117 112 45 55 39 18 23 10 10 13 4 7 13 4 7 13 4 7
++23 10 10 13 4 7 22 24 13 76 46 20 117 99 86 138 102 108 117 112 45 167 63 71
++117 99 86 117 112 45 138 126 108 168 102 88 146 150 115 168 102 88 138 126 108 168 102 88
++117 114 76 168 102 88 117 114 76 168 102 88 117 114 76 168 102 88 117 114 76 168 102 88
++117 114 76 120 63 71 88 44 51 76 46 20 53 35 17 53 35 17 55 39 18 55 39 37
++76 46 20 88 44 51 75 56 53 88 73 31 75 56 53 76 46 20 55 39 37 53 35 17
++52 30 15 49 13 16 34 30 15 34 30 15 34 30 15 49 13 16 34 30 15 53 35 17
++55 39 18 75 56 53 75 73 36 88 44 51 88 73 31 75 56 53 101 74 26 88 73 62
++101 74 26 101 83 74 75 63 62 65 63 61 53 46 48 45 57 61 34 42 77 34 42 77
++32 40 58 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 42 60 86 42 60 86 42 60 86 42 60 86 42 60 86
++34 42 77 60 63 87 34 42 77 42 60 86 42 60 86 46 59 71 46 59 71 60 63 87
++46 59 71 42 60 86 46 59 71 59 69 70 42 60 86 60 81 83 42 60 86 59 69 70
++60 81 83 60 81 83 60 81 83 77 91 115 94 105 108 98 121 131 111 119 127 111 122 142
++126 147 144 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159 150 168 183
++150 171 159 150 168 183 166 174 181 150 168 183 166 174 181 150 171 159 148 160 159 150 168 183
++148 160 159 148 160 159 129 144 153 126 147 144 145 140 145 121 143 132 119 117 138 112 123 108
++112 96 108 87 99 72 88 73 62 75 73 36 88 73 62 88 73 62 117 99 86 117 127 86
++168 102 88 146 150 115 146 150 115 146 150 115 138 126 108 168 102 88 117 114 76 117 114 76
++117 114 76 157 148 53 138 126 108 168 146 127 168 146 127 197 171 123 177 169 143 177 169 143
++217 168 156 214 214 134 189 165 168 214 214 134 189 165 168 217 168 156 189 165 168 208 215 180
++217 168 156 189 165 168 214 214 134 217 168 156 177 169 143 217 168 156 177 169 143 217 168 156
++217 168 156 208 215 180 217 168 156 222 171 182 217 168 156 217 168 156 208 215 180 222 171 182
++217 168 156 214 214 134 222 171 182 222 171 182 225 222 201 222 171 182 225 222 201 214 214 134
++225 222 201 217 168 156 208 215 180 217 168 156 217 168 156 217 168 156 177 169 143 217 168 156
++177 169 143 217 168 156 222 171 182 208 215 180 189 165 168 146 151 137 122 134 144 129 144 153
++129 144 153 131 144 168 148 160 159 148 160 159 148 160 159 148 160 159 166 156 164 150 168 183
++150 171 159 150 168 183 150 171 159 150 168 183 150 171 159 148 160 159 150 168 183 166 156 164
++150 171 159 150 168 183 166 180 164 150 168 183 166 174 181 166 174 181 150 171 159 166 174 181
++166 174 181 166 174 181 166 174 181 166 174 181 166 180 164 166 174 181 166 180 164 166 174 181
++166 174 181 166 174 181 150 168 183 150 171 159 150 168 183 150 168 183 148 160 159 148 160 159
++131 144 168 129 144 153 129 144 153 129 144 153 122 134 144 111 122 142 111 122 142 95 108 128
++95 108 128 77 91 115 77 91 115 77 91 115 61 78 101 42 60 86 60 63 87 42 60 86
++42 60 86 60 63 87 61 78 101 77 91 115 77 91 115 95 95 116 95 108 128 95 108 128
++111 119 127 111 119 127 122 134 144 122 134 144 129 144 153 129 144 153 129 144 153 148 160 159
++148 160 159 148 160 159 150 168 183 150 171 159 166 156 164 166 174 181 166 174 181 150 168 183
++166 174 181 166 174 181 166 174 181 166 174 181 166 156 164 166 174 181 166 174 181 166 180 164
++150 168 183 150 171 159 150 168 183 166 156 164 150 168 183 148 160 159 150 171 159 150 147 171
++150 171 159 148 160 159 148 160 159 148 160 159 112 123 108 88 83 74 48 50 48 29 35 19
++22 24 13 15 17 7 22 24 13 23 31 15 32 39 24 47 47 21 50 61 48 64 70 48
++75 99 72 88 83 74 75 77 62 32 39 24 22 24 13 26 25 15 64 70 48 94 105 108
++94 105 108 94 105 108 60 63 87 61 78 101 77 90 100 77 90 100 77 91 115 95 108 128
++94 105 108 95 108 128 98 121 131 98 121 131 111 119 127 122 134 144 111 122 142 122 134 144
++126 147 144 126 147 144 148 160 159 131 144 168 148 160 159 148 160 159 150 168 183 148 160 159
++166 174 181 150 171 159 150 168 183 166 174 181 166 174 181 150 168 183 166 180 164 166 174 181
++150 168 183 166 174 181 166 174 181 166 174 181 166 180 164 166 174 181 166 174 181 166 180 164
++150 168 183 166 156 164 150 168 183 166 156 164 150 168 183 148 160 159 150 168 183 148 160 159
++148 160 159 148 160 159 129 144 153 126 147 144 122 134 144 122 134 144 121 143 132 122 134 144
++111 122 142 98 121 131 98 121 131 95 108 128 77 91 115 94 105 108 77 91 115 61 78 101
++61 78 101 61 78 101 60 63 87 42 60 86 46 59 71 34 42 77 45 57 61 34 42 77
++46 59 71 42 60 86 60 63 87 75 81 90 61 78 101 77 90 100 77 91 115 95 95 116
++94 105 108 95 108 128 111 119 127 98 121 131 111 119 127 122 134 144 122 134 144 122 134 144
++122 134 144 126 147 144 145 140 145 129 144 153 148 160 159 129 144 153 148 160 159 129 144 153
++148 160 159 131 144 168 148 160 159 129 144 153 148 160 159 129 144 153 148 160 159 129 144 153
++148 160 159 129 144 153 150 144 154 129 144 153 129 144 153 129 144 153 129 144 153 150 144 154
++129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 148 160 159
++129 144 153 145 140 145 129 144 153 129 144 153 126 147 144 122 134 144 121 143 132 122 134 144
++111 119 127 98 121 131 98 121 131 95 108 128 95 108 128 94 105 108 77 91 115 77 90 100
++61 78 101 60 63 87 60 63 87 34 42 77 32 40 58 32 40 58 32 40 58 29 34 50
++32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58 32 40 58
++29 34 50 32 40 58 32 40 58 32 40 58 45 57 61 60 63 87 59 69 70 61 78 101
++77 90 100 77 90 100 94 105 108 95 108 128 111 119 127 111 122 142 111 119 127 122 134 144
++122 134 144 126 147 144 126 147 144 145 140 145 129 144 153 129 144 153 148 160 159 129 144 153
++146 162 145 129 144 153 129 144 153 145 140 145 129 144 153 126 147 144 126 147 144 126 147 144
++121 143 132 122 134 144 122 134 144 122 134 144 121 143 132 122 134 144 121 143 132 122 134 144
++119 117 138 121 143 132 122 134 144 121 143 132 122 134 144 145 140 145 122 134 144 126 147 144
++145 140 145 126 147 144 129 144 153 129 144 153 129 144 153 145 140 145 129 144 153 126 147 144
++
++112 123 108 94 105 108 112 96 108 78 98 90 75 64 82 53 63 61 48 50 48 34 40 43
++31 35 35 22 25 24 23 18 22 14 16 17 23 18 22 26 25 15 26 30 28 33 30 30
++33 30 30 33 30 30 32 39 24 47 39 42 47 47 21 48 44 48 55 55 48 59 55 55
++59 55 55 59 55 55 59 55 55 59 55 55 55 55 48 48 50 48 42 47 42 42 47 42
++36 35 37 26 30 28 17 12 17 7 12 13 13 4 7 7 12 13 13 4 7 6 15 6
++3 3 1 13 4 7 7 12 13 17 12 17 26 30 28 47 39 42 59 55 55 75 72 67
++90 98 89 112 96 108 112 123 108 121 143 132 121 143 132 146 151 137 146 151 137 166 156 164
++166 156 164 166 156 164 166 180 164 166 180 164 166 156 164 166 180 164 166 156 164 146 162 145
++166 156 164 146 162 145 146 151 137 146 151 137 145 140 145 138 126 108 121 143 132 141 116 139
++121 143 132 138 126 108 111 119 127 121 143 132 138 126 108 121 143 132 111 119 127 121 143 132
++111 119 127 138 126 108 122 134 144 121 143 132 145 140 145 146 151 137 145 140 145 146 151 137
++146 151 137 148 160 159 146 162 145 166 156 164 146 162 145 166 156 164 146 162 145 148 160 159
++148 160 159 146 162 145 166 156 164 146 162 145 166 156 164 146 162 145 166 156 164 146 162 145
++146 162 145 150 144 154 146 151 137 146 151 137 145 140 145 126 147 144 146 151 137 121 143 132
++146 151 137 121 143 132 145 140 145 121 143 132 145 140 145 146 151 137 145 140 145 146 151 137
++150 144 154 146 162 145 146 162 145 166 156 164 150 171 159 166 156 164 166 156 164 150 171 159
++166 156 164 166 180 164 150 171 159 177 169 143 150 171 159 166 156 164 166 156 164 148 160 159
++166 156 164 150 171 159 166 156 164 146 162 145 166 156 164 146 162 145 150 144 154 146 151 137
++145 140 145 145 140 145 126 147 144 145 140 145 121 143 132 122 134 144 111 119 127 111 119 127
++111 119 127 111 119 127 95 108 128 94 105 108 77 91 115 75 81 90 60 63 87 42 60 86
++46 59 71 34 42 77 29 34 50 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77
++34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 29 34 50 57 43 64 29 34 50
++57 43 64 75 59 67 75 64 82 101 60 73 88 69 84 88 69 84 88 69 84 112 96 108
++112 96 108 112 96 108 138 102 108 112 96 108 138 102 108 138 102 108 138 102 108 163 117 123
++138 102 108 163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 163 117 123
++163 117 123 138 126 108 163 117 123 163 117 123 163 117 123 163 117 123 138 102 108 163 117 123
++163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 168 102 88
++163 117 123 138 102 108 138 102 108 168 102 88 163 117 123 163 117 123 138 102 108 163 117 123
++168 102 88 163 117 123 163 117 123 138 102 108 168 102 88 163 117 123 138 102 108 163 117 123
++168 102 88 163 117 123 168 146 127 168 102 88 168 146 127 168 102 88 163 117 123 146 150 115
++168 102 88 163 117 123 195 113 123 168 146 127 168 102 88 177 171 115 168 102 88 177 171 115
++168 102 88 177 171 115 168 102 88 177 171 115 201 146 124 168 102 88 201 146 124 168 102 88
++177 171 115 168 102 88 177 171 115 168 102 88 201 146 124 177 171 115 177 171 115 168 146 127
++168 102 88 98 106 55 34 30 15 23 10 10 13 4 7 3 3 1 13 4 7 15 17 7
++13 4 7 26 12 13 76 46 20 101 83 74 117 112 45 120 63 71 117 114 76 117 112 45
++120 63 71 168 102 88 138 126 108 138 126 108 168 102 88 146 150 115 168 102 88 117 127 86
++168 102 88 117 114 76 168 102 88 168 102 88 168 102 88 117 114 76 168 102 88 117 114 76
++168 102 88 101 74 26 75 56 53 52 30 15 52 30 15 53 35 17 53 35 17 55 39 18
++55 39 37 75 73 36 75 56 53 75 56 53 76 46 20 60 49 42 55 39 18 34 30 15
++34 30 15 26 25 15 28 13 18 34 30 15 26 12 13 34 30 15 34 30 15 53 35 17
++55 39 37 76 46 20 88 73 31 88 73 62 88 73 31 88 44 51 88 73 31 101 83 74
++101 83 74 88 73 62 59 57 61 45 57 61 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 42 60 86 42 60 86 42 60 86 42 60 86 60 63 87 42 60 86 42 60 86
++42 60 86 42 60 86 42 60 86 60 63 87 34 42 77 42 60 86 42 60 86 60 63 87
++42 60 86 60 63 87 59 69 70 60 81 83 60 63 87 59 69 70 60 81 83 60 81 83
++61 78 101 60 81 83 77 90 100 94 105 108 95 119 107 98 121 131 111 119 127 121 143 132
++122 134 144 129 144 153 148 160 159 131 144 168 148 160 159 148 160 159 150 168 183 148 160 159
++166 174 181 166 156 164 150 168 183 166 180 164 150 171 159 150 168 183 148 160 159 148 160 159
++148 160 159 148 160 159 129 144 153 145 140 145 122 134 144 122 134 144 121 143 132 111 119 127
++95 119 107 94 105 108 88 83 88 75 81 76 75 72 67 75 73 58 88 73 62 98 106 55
++117 114 76 117 127 86 168 102 88 168 146 127 146 150 115 146 150 115 138 126 108 117 114 76
++117 114 76 117 99 86 117 114 76 168 102 88 146 150 115 168 146 127 177 171 115 177 169 143
++177 169 143 217 168 156 177 169 143 217 168 156 177 169 143 214 214 134 189 165 168 197 171 123
++217 168 156 177 169 143 217 168 156 217 168 156 214 214 134 189 165 168 214 214 134 217 168 156
++217 168 156 217 168 156 214 214 134 217 168 156 208 215 180 217 168 156 217 168 156 208 215 180
++217 168 156 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 225 222 201 222 171 182
++225 222 201 214 214 134 222 171 182 214 214 134 222 171 182 217 168 156 214 214 134 217 168 156
++214 214 134 217 168 156 217 168 156 208 215 180 189 165 168 146 151 137 145 140 145 145 140 145
++129 144 153 148 160 159 150 147 171 148 160 159 148 160 159 150 147 171 150 171 159 150 168 183
++148 160 159 150 168 183 166 156 164 148 160 159 150 168 183 166 156 164 150 171 159 150 168 183
++166 174 181 166 156 164 150 168 183 166 180 164 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181
++150 168 183 166 180 164 150 168 183 150 171 159 150 168 183 148 160 159 150 147 171 148 160 159
++131 144 168 148 160 159 129 144 153 122 134 144 122 134 144 122 134 144 111 122 142 98 121 131
++95 108 128 95 108 128 77 91 115 61 78 101 61 78 101 61 78 101 42 60 86 60 63 87
++61 78 101 61 78 101 61 78 101 77 91 115 77 91 115 95 108 128 95 108 128 98 121 131
++111 122 142 111 122 142 122 134 144 126 147 144 126 147 144 129 144 153 148 160 159 148 160 159
++148 160 159 150 171 159 150 168 183 150 171 159 166 174 181 150 168 183 166 180 164 166 174 181
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 150 171 159 166 174 181 150 168 183
++166 174 181 166 174 181 150 171 159 150 168 183 150 171 159 166 156 164 150 168 183 148 160 159
++148 160 159 150 147 171 150 171 159 148 160 159 148 160 159 122 134 144 94 105 108 75 81 82
++53 63 61 45 57 61 43 55 48 53 63 61 75 81 82 75 81 76 75 99 72 75 81 76
++112 123 108 112 123 108 94 105 108 75 73 58 33 39 38 26 30 28 53 63 61 94 105 108
++94 105 108 77 90 100 60 81 83 61 78 101 77 90 100 77 91 115 77 91 115 94 105 108
++95 108 128 98 121 131 98 121 131 111 119 127 122 134 144 111 122 142 121 143 132 122 134 144
++126 147 144 129 144 153 148 160 159 148 160 159 148 160 159 150 168 183 150 171 159 166 174 181
++150 168 183 166 180 164 166 174 181 166 180 164 166 174 181 166 174 181 166 174 181 166 174 181
++166 180 164 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 150 171 159 166 174 181
++150 171 159 166 174 181 150 171 159 148 160 159 148 160 159 148 160 159 148 160 159 131 144 168
++148 160 159 129 144 153 129 144 153 129 144 153 126 147 144 122 134 144 111 122 142 111 122 142
++111 119 127 98 121 131 98 121 131 95 108 128 94 105 108 77 91 115 77 91 115 77 90 100
++61 78 101 60 63 87 42 60 86 46 59 71 34 42 77 46 59 71 34 42 77 46 59 71
++42 60 86 46 59 71 60 81 83 61 78 101 77 90 100 77 91 115 94 105 108 95 108 128
++95 108 128 111 119 127 111 119 127 122 134 144 122 134 144 122 134 144 122 134 144 126 147 144
++129 144 153 129 144 153 148 160 159 129 144 153 148 160 159 131 144 168 148 160 159 131 144 168
++148 160 159 148 160 159 129 144 153 148 160 159 129 144 153 148 160 159 129 144 153 148 160 159
++129 144 153 129 144 153 148 160 159 129 144 153 150 144 154 129 144 153 129 144 153 129 144 153
++148 160 159 129 144 153 148 160 159 129 144 153 150 144 154 129 144 153 148 160 159 129 144 153
++148 160 159 129 144 153 129 144 153 129 144 153 129 144 153 126 147 144 122 134 144 122 134 144
++121 143 132 111 119 127 98 121 131 98 121 131 95 108 128 77 91 115 77 91 115 77 90 100
++61 78 101 60 81 83 60 63 87 46 59 71 45 57 61 32 40 58 32 40 58 34 42 77
++29 34 50 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58
++29 34 50 32 40 58 32 40 58 34 42 77 46 59 71 46 59 71 60 63 87 75 81 90
++77 90 100 77 90 100 95 108 128 95 108 128 111 119 127 111 119 127 121 143 132 122 134 144
++122 134 144 126 147 144 129 144 153 129 144 153 146 162 145 129 144 153 148 160 159 148 160 159
++129 144 153 150 144 154 126 147 144 129 144 153 145 140 145 129 144 153 145 140 145 126 147 144
++145 140 145 126 147 144 122 134 144 145 140 145 122 134 144 121 143 132 122 134 144 121 143 132
++122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 121 143 132 145 140 145 122 134 144
++129 144 153 145 140 145 129 144 153 145 140 145 129 144 153 129 144 153 145 140 145 129 144 153
++
++112 96 108 111 119 127 94 105 108 88 83 88 59 69 70 46 59 71 48 50 48 33 39 38
++28 30 35 22 25 24 23 18 22 14 16 17 15 17 7 15 22 17 22 24 13 26 25 15
++29 35 19 34 30 15 33 30 30 32 39 24 33 39 38 47 44 42 53 46 48 55 55 48
++65 63 61 59 55 55 65 63 61 65 63 61 59 55 55 52 55 48 48 50 48 47 44 42
++33 39 38 36 35 37 26 30 28 17 12 17 17 12 17 6 15 6 3 4 9 3 4 9
++13 4 7 3 4 9 13 4 7 14 16 17 23 20 24 36 35 37 48 50 48 65 63 61
++88 83 74 95 91 100 112 123 108 111 119 127 138 126 108 145 140 145 146 151 137 146 162 145
++146 162 145 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164 166 180 164 177 169 143
++146 162 145 166 156 164 146 151 137 145 140 145 146 151 137 121 143 132 141 116 139 121 143 132
++138 126 108 121 143 132 119 117 138 138 126 108 121 143 132 111 119 127 121 143 132 138 126 108
++121 143 132 111 119 127 138 126 108 122 134 144 138 126 108 121 143 132 146 151 137 150 144 154
++146 162 145 150 144 154 146 162 145 166 156 164 146 162 145 166 156 164 146 162 145 166 156 164
++146 162 145 166 156 164 146 162 145 166 156 164 146 162 145 146 162 145 146 162 145 166 156 164
++146 162 145 150 144 154 146 162 145 145 140 145 146 151 137 146 151 137 145 140 145 146 151 137
++141 116 139 121 143 132 138 126 108 146 151 137 126 147 144 146 151 137 145 140 145 146 151 137
++146 162 145 146 151 137 166 156 164 146 162 145 166 156 164 146 162 145 166 180 164 166 156 164
++150 171 159 166 180 164 166 156 164 150 171 159 166 156 164 148 160 159 177 169 143 150 171 159
++177 169 143 166 156 164 150 171 159 166 156 164 146 162 145 148 160 159 148 160 159 146 162 145
++129 144 153 146 151 137 145 140 145 126 147 144 145 140 145 121 143 132 121 143 132 111 119 127
++111 119 127 111 119 127 95 108 128 94 105 108 77 90 100 61 78 101 60 63 87 42 60 86
++34 42 77 34 42 77 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 34 42 77
++24 30 43 34 42 77 29 34 50 29 34 50 34 42 77 29 34 50 57 43 64 57 43 64
++57 43 64 57 43 64 75 59 67 75 64 82 88 69 84 88 69 84 112 96 108 112 96 108
++120 63 71 112 96 108 112 96 108 138 102 108 138 102 108 138 102 108 141 116 139 141 116 139
++163 117 123 141 116 139 163 117 123 138 126 108 141 116 139 163 117 123 138 126 108 163 117 123
++168 146 127 163 117 123 163 117 123 146 150 115 163 117 123 168 146 127 163 117 123 163 117 123
++163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 168 102 88 163 117 123 163 117 123
++163 117 123 163 117 123 168 102 88 163 117 123 163 117 123 168 102 88 163 117 123 163 117 123
++163 117 123 163 117 123 168 102 88 163 117 123 163 117 123 163 117 123 163 117 123 168 102 88
++168 146 127 168 102 88 163 117 123 163 117 123 163 117 123 163 117 123 168 146 127 168 102 88
++163 117 123 168 146 127 168 102 88 168 146 127 168 102 88 168 146 127 163 117 123 201 146 124
++168 102 88 177 171 115 168 102 88 168 146 127 168 102 88 177 171 115 146 150 115 201 146 124
++168 146 127 177 171 115 168 102 88 177 171 115 201 146 124 168 102 88 201 146 124 146 150 115
++88 73 62 52 30 15 13 4 7 13 4 7 13 4 7 13 4 7 15 17 7 23 10 10
++13 4 7 76 46 20 101 83 74 117 114 76 168 102 88 117 112 45 120 63 71 168 102 88
++117 114 76 168 102 88 146 150 115 168 102 88 138 126 108 168 102 88 138 126 108 117 114 76
++168 102 88 117 114 76 117 114 76 168 102 88 117 114 76 168 102 88 120 63 71 117 114 76
++101 83 74 88 73 62 76 46 20 52 30 15 52 30 15 52 30 15 53 35 17 53 35 17
++55 39 18 60 49 42 88 73 31 63 55 45 60 49 42 55 39 37 53 35 17 34 30 15
++49 13 16 26 25 15 34 30 15 26 12 13 26 25 15 28 13 18 34 30 15 52 30 15
++55 39 18 75 56 53 88 44 51 101 74 26 88 73 31 88 73 62 101 74 26 101 83 74
++88 83 74 75 63 62 54 57 61 43 42 50 32 40 58 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 42 60 86 42 60 86 60 63 87 42 60 86 42 60 86 60 63 87
++42 60 86 60 63 87 42 60 86 42 60 86 42 60 86 46 59 71 46 59 71 42 60 86
++59 69 70 42 60 86 42 60 86 42 60 86 60 81 83 60 63 87 60 81 83 61 78 101
++60 81 83 61 78 101 77 90 100 77 91 115 95 108 128 111 119 127 111 122 142 122 134 144
++126 147 144 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159 150 168 183
++150 171 159 150 168 183 166 180 164 150 168 183 166 174 181 150 171 159 150 168 183 148 160 159
++148 160 159 150 144 154 129 144 153 145 140 145 126 147 144 122 134 144 111 119 127 111 119 127
++111 119 127 94 105 108 78 98 90 88 83 88 88 83 74 75 81 69 75 56 53 75 73 36
++75 56 53 98 106 55 117 114 76 168 102 88 146 150 115 168 146 127 177 171 115 168 146 127
++117 127 86 168 102 88 117 114 76 117 127 86 168 102 88 138 126 108 168 146 127 168 146 127
++177 169 143 197 171 123 177 169 143 217 168 156 177 169 143 217 168 156 177 169 143 217 168 156
++177 169 143 189 165 168 214 214 134 217 168 156 177 169 143 217 168 156 217 168 156 189 165 168
++214 214 134 217 168 156 189 165 168 214 214 134 217 168 156 208 215 180 217 168 156 217 168 156
++208 215 180 217 168 156 217 168 156 208 215 180 222 171 182 225 222 201 222 171 182 214 214 134
++222 171 182 208 215 180 222 171 182 208 215 180 217 168 156 208 215 180 189 165 168 217 168 156
++217 168 156 177 169 143 217 168 156 217 168 156 189 165 168 177 169 143 145 140 145 129 144 153
++131 144 168 148 160 159 131 144 168 148 160 159 150 147 171 148 160 159 148 160 159 150 147 171
++150 168 183 148 160 159 148 160 159 150 168 183 150 171 159 150 168 183 166 156 164 150 171 159
++150 168 183 150 171 159 166 174 181 150 168 183 166 174 181 150 168 183 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 180 164 166 174 181
++166 174 181 166 174 181 150 171 159 166 174 181 150 168 183 150 168 183 150 168 183 131 144 168
++148 160 159 129 144 153 129 144 153 122 134 144 122 134 144 111 122 142 111 122 142 98 121 131
++95 108 128 77 91 115 77 91 115 77 91 115 61 78 101 61 78 101 42 60 86 61 78 101
++60 63 87 61 78 101 61 78 101 77 91 115 95 95 116 95 108 128 95 108 128 111 119 127
++111 122 142 122 134 144 122 134 144 129 144 153 129 144 153 129 144 153 148 160 159 148 160 159
++148 160 159 150 171 159 150 168 183 150 171 159 166 174 181 166 174 181 166 174 181 166 174 181
++150 168 183 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 156 164
++166 174 181 150 171 159 150 168 183 166 156 164 148 160 159 150 168 183 148 160 159 150 147 171
++148 160 159 148 160 159 131 144 168 148 160 159 129 144 153 129 144 153 122 134 144 121 143 132
++111 119 127 94 105 108 94 105 108 94 105 108 111 119 127 95 119 107 94 105 108 90 98 89
++94 105 108 95 119 107 98 113 84 88 83 74 59 55 55 42 47 42 53 63 61 88 83 88
++75 81 90 75 81 90 75 81 90 61 78 101 77 90 100 77 90 100 77 91 115 95 95 116
++95 108 128 95 108 128 111 119 127 98 121 131 121 143 132 111 122 142 122 134 144 126 147 144
++129 144 153 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159 150 171 159
++166 174 181 166 156 164 166 174 181 166 174 181 166 174 181 166 174 181 166 180 164 166 174 181
++166 174 181 166 174 181 166 180 164 150 168 183 166 180 164 166 174 181 166 174 181 166 174 181
++166 174 181 166 156 164 150 168 183 148 160 159 150 168 183 148 160 159 150 168 183 148 160 159
++129 144 153 148 160 159 129 144 153 129 144 153 122 134 144 122 134 144 111 122 142 121 143 132
++111 122 142 98 121 131 95 108 128 94 105 108 95 108 128 77 91 115 77 91 115 61 78 101
++61 78 101 60 63 87 60 63 87 42 60 86 46 59 71 34 42 77 34 42 77 46 59 71
++42 60 86 60 63 87 61 78 101 77 90 100 77 90 100 77 91 115 95 108 128 95 119 107
++111 119 127 111 119 127 122 134 144 122 134 144 122 134 144 126 147 144 129 144 153 129 144 153
++129 144 153 129 144 153 129 144 153 148 160 159 131 144 168 148 160 159 148 160 159 148 160 159
++131 144 168 148 160 159 148 160 159 131 144 168 148 160 159 129 144 153 129 144 153 129 144 153
++148 160 159 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 148 160 159
++129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 148 160 159 129 144 153 148 160 159
++129 144 153 148 160 159 129 144 153 145 140 145 129 144 153 145 140 145 126 147 144 122 134 144
++111 122 142 122 134 144 111 119 127 98 121 131 95 108 128 98 121 131 94 105 108 77 91 115
++77 90 100 75 81 90 60 63 87 59 69 70 34 42 77 34 42 77 32 40 58 29 34 50
++32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58
++29 34 50 32 40 58 32 40 58 32 40 58 46 59 71 60 63 87 60 81 83 75 81 90
++77 90 100 94 105 108 95 119 107 111 119 127 111 119 127 111 119 127 122 134 144 122 134 144
++126 147 144 129 144 153 129 144 153 146 162 145 129 144 153 148 160 159 148 160 159 150 144 154
++148 160 159 146 162 145 148 160 159 129 144 153 146 151 137 129 144 153 145 140 145 129 144 153
++145 140 145 126 147 144 145 140 145 122 134 144 121 143 132 145 140 145 122 134 144 122 134 144
++122 134 144 121 143 132 141 116 139 122 134 144 145 140 145 122 134 144 126 147 144 129 144 153
++145 140 145 126 147 144 129 144 153 145 140 145 129 144 153 145 140 145 126 147 144 129 144 153
++
++94 105 108 94 105 108 95 91 100 78 98 90 59 69 70 59 57 61 48 50 48 33 39 38
++25 30 29 22 25 24 12 18 20 17 12 17 7 12 13 15 17 7 15 22 17 22 24 13
++22 25 24 26 25 15 22 25 24 33 30 30 42 41 42 47 44 42 55 55 48 59 57 61
++65 63 61 65 63 61 65 63 61 65 63 61 53 63 61 59 55 55 55 55 48 48 50 48
++42 47 42 42 41 42 33 30 30 22 25 24 17 12 17 7 12 13 13 4 7 6 15 6
++3 4 9 6 15 6 3 3 1 13 4 7 23 18 22 26 30 28 47 44 42 59 55 55
++75 81 69 99 93 84 112 96 108 112 123 108 121 143 132 145 140 145 146 151 137 150 144 154
++146 162 145 177 169 143 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164 166 156 164
++146 162 145 146 162 145 150 144 154 146 151 137 145 140 145 121 143 132 138 126 108 121 143 132
++111 119 127 138 126 108 111 119 127 121 143 132 138 126 108 111 119 127 138 126 108 111 119 127
++111 119 127 121 143 132 111 119 127 121 143 132 141 116 139 146 151 137 145 140 145 146 151 137
++146 151 137 146 162 145 150 144 154 146 162 145 148 160 159 146 162 145 166 156 164 146 162 145
++166 156 164 146 162 145 146 162 145 148 160 159 150 144 154 146 162 145 166 156 164 146 151 137
++146 162 145 150 144 154 146 151 137 145 140 145 126 147 144 145 140 145 121 143 132 138 126 108
++121 143 132 145 140 145 121 143 132 141 116 139 121 143 132 145 140 145 146 151 137 145 140 145
++146 151 137 150 144 154 146 162 145 148 160 159 146 162 145 166 156 164 150 171 159 166 156 164
++166 180 164 166 156 164 166 180 164 166 156 164 150 171 159 150 171 159 166 156 164 150 171 159
++166 156 164 150 171 159 166 156 164 150 171 159 166 156 164 146 162 145 166 156 164 146 151 137
++150 144 154 146 151 137 129 144 153 145 140 145 122 134 144 122 134 144 119 117 138 121 143 132
++111 119 127 111 119 127 94 105 108 95 95 116 77 91 115 75 81 90 60 63 87 42 60 86
++34 42 77 32 40 58 29 34 50 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77
++24 30 43 34 42 77 29 34 50 34 42 77 29 34 50 57 43 64 29 34 50 57 43 64
++57 43 64 63 59 71 75 64 82 88 69 84 88 69 84 95 91 100 112 96 108 112 96 108
++112 96 108 138 102 108 138 102 108 138 102 108 138 102 108 141 116 139 138 102 108 163 117 123
++141 116 139 163 117 123 146 151 137 163 117 123 168 146 127 145 140 145 168 146 127 145 140 145
++163 117 123 146 151 137 168 146 127 163 117 123 168 146 127 163 117 123 168 146 127 163 117 123
++163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 163 117 123
++163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 163 117 123
++163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 138 126 108 163 117 123 168 146 127
++163 117 123 168 146 127 163 117 123 168 146 127 163 117 123 168 146 127 168 102 88 168 146 127
++168 146 127 168 102 88 168 146 127 168 146 127 168 146 127 168 146 127 168 102 88 177 171 115
++163 117 123 168 146 127 168 146 127 168 146 127 177 171 115 195 113 123 168 146 127 168 102 88
++177 171 115 168 102 88 177 171 115 201 146 124 177 171 115 201 146 124 146 150 115 101 74 26
++52 30 15 13 4 7 15 17 7 13 4 7 6 15 6 13 4 7 13 4 7 15 17 7
++26 12 13 88 73 31 117 99 86 117 114 76 120 63 71 117 112 45 120 63 71 117 112 45
++168 102 88 146 150 115 168 102 88 138 126 108 117 114 76 168 102 88 138 126 108 168 102 88
++117 114 76 168 102 88 168 102 88 117 114 76 168 102 88 117 114 76 117 112 45 167 63 71
++88 73 62 102 33 26 55 39 18 52 30 15 52 30 15 52 30 15 53 35 17 53 35 17
++55 39 37 76 46 20 75 56 53 76 46 20 60 49 42 53 35 17 52 30 15 34 30 15
++26 25 15 26 25 15 26 12 13 26 12 13 26 25 15 34 30 15 34 30 15 52 30 15
++55 39 18 75 73 36 88 73 31 88 73 62 88 44 51 88 73 31 88 73 62 101 83 74
++88 73 62 65 63 61 57 43 64 45 57 61 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 42 60 86 42 60 86 42 60 86 42 60 86 60 63 87 42 60 86 42 60 86
++60 63 87 42 60 86 42 60 86 60 63 87 46 59 71 42 60 86 60 63 87 42 60 86
++42 60 86 60 63 87 60 81 83 60 81 83 60 63 87 60 81 83 61 78 101 60 63 87
++75 81 90 77 90 100 77 90 100 95 119 107 95 108 128 111 119 127 121 143 132 111 122 142
++126 147 144 129 144 153 129 144 153 148 160 159 131 144 168 148 160 159 148 160 159 150 171 159
++166 174 181 166 156 164 150 168 183 166 156 164 150 171 159 150 168 183 148 160 159 148 160 159
++148 160 159 131 144 168 129 144 153 129 144 153 126 147 144 122 134 144 111 119 127 111 119 127
++94 105 108 94 105 108 77 90 100 90 98 89 88 83 88 88 83 74 75 81 69 75 73 58
++75 73 36 75 56 53 88 73 31 87 99 72 117 114 76 138 126 108 146 150 115 168 146 127
++146 150 115 138 126 108 117 114 76 138 126 108 117 127 86 168 102 88 138 126 108 168 146 127
++168 146 127 177 171 115 177 169 143 197 171 123 177 169 143 217 168 156 214 214 134 177 169 143
++217 168 156 177 169 143 217 168 156 177 169 143 217 168 156 214 214 134 177 169 143 217 168 156
++189 165 168 208 215 180 217 168 156 217 168 156 208 215 180 217 168 156 217 168 156 208 215 180
++217 168 156 217 168 156 208 215 180 217 168 156 225 222 201 214 214 134 225 222 201 225 222 201
++222 171 182 214 214 134 225 222 201 217 168 156 208 215 180 217 168 156 217 168 156 214 214 134
++217 168 156 217 168 156 214 214 134 222 171 182 217 168 156 166 180 164 145 140 145 122 134 144
++150 144 154 148 160 159 131 144 168 148 160 159 131 144 168 148 160 159 150 147 171 150 171 159
++148 160 159 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 150 168 183 166 156 164
++150 168 183 166 180 164 150 168 183 166 180 164 166 174 181 166 174 181 166 174 181 166 180 164
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 150 168 183 166 174 181 148 160 159 166 156 164 148 160 159 148 160 159
++131 144 168 148 160 159 129 144 153 129 144 153 122 134 144 111 122 142 111 122 142 98 121 131
++95 108 128 95 108 128 77 91 115 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101
++61 78 101 61 78 101 77 91 115 77 91 115 95 95 116 95 108 128 98 121 131 111 122 142
++111 122 142 122 134 144 126 147 144 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159
++150 168 183 150 171 159 166 174 181 166 156 164 166 174 181 166 174 181 166 174 181 166 174 181
++166 180 164 166 174 181 166 174 181 166 180 164 150 168 183 150 171 159 166 174 181 150 171 159
++150 168 183 166 156 164 150 171 159 150 168 183 148 160 159 148 160 159 148 160 159 150 168 183
++148 160 159 131 144 168 148 160 159 129 144 153 129 144 153 129 144 153 126 147 144 129 144 153
++129 144 153 122 134 144 122 134 144 122 134 144 121 143 132 111 119 127 95 119 107 90 98 89
++75 81 82 90 98 89 88 83 88 78 98 90 75 81 76 53 63 61 54 57 61 59 69 70
++60 81 83 60 63 87 60 81 83 61 78 101 77 90 100 77 91 115 95 95 116 95 108 128
++95 108 128 95 108 128 98 121 131 111 122 142 111 122 142 122 134 144 121 143 132 122 134 144
++129 144 153 148 160 159 148 160 159 148 160 159 148 160 159 150 168 183 150 168 183 166 174 181
++150 171 159 166 174 181 166 174 181 166 180 164 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 180 164 150 168 183 166 180 164 150 168 183 150 171 159
++166 156 164 150 171 159 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159
++131 144 168 129 144 153 129 144 153 129 144 153 122 134 144 122 134 144 122 134 144 111 122 142
++98 121 131 98 121 131 95 108 128 95 108 128 77 91 115 94 105 108 77 90 100 61 78 101
++61 78 101 60 81 83 42 60 86 46 59 71 34 42 77 46 59 71 46 59 71 46 59 71
++60 63 87 60 81 83 61 78 101 77 90 100 77 91 115 94 105 108 95 108 128 111 119 127
++98 121 131 111 122 142 121 143 132 122 134 144 126 147 144 129 144 153 129 144 153 150 144 154
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 131 144 168 148 160 159 148 160 159
++148 160 159 131 144 168 148 160 159 148 160 159 129 144 153 129 144 153 148 160 159 129 144 153
++129 144 153 129 144 153 126 147 144 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153
++129 144 153 150 144 154 129 144 153 148 160 159 129 144 153 129 144 153 148 160 159 131 144 168
++148 160 159 148 160 159 129 144 153 148 160 159 129 144 153 129 144 153 129 144 153 122 134 144
++122 134 144 122 134 144 111 122 142 111 119 127 98 121 131 95 108 128 95 108 128 77 91 115
++77 90 100 61 78 101 61 78 101 60 63 87 46 59 71 32 40 58 32 40 58 32 40 58
++32 40 58 29 34 50 32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58
++32 40 58 32 40 58 32 40 58 45 57 61 46 59 71 60 63 87 60 81 83 77 90 100
++77 90 100 94 105 108 95 108 128 111 119 127 111 119 127 121 143 132 122 134 144 126 147 144
++129 144 153 150 144 154 146 162 145 129 144 153 148 160 159 148 160 159 129 144 153 148 160 159
++148 160 159 129 144 153 148 160 159 148 160 159 129 144 153 148 160 159 129 144 153 146 162 145
++129 144 153 145 140 145 126 147 144 145 140 145 126 147 144 126 147 144 122 134 144 145 140 145
++121 143 132 122 134 144 121 143 132 122 134 144 121 143 132 145 140 145 145 140 145 126 147 144
++129 144 153 145 140 145 129 144 153 126 147 144 145 140 145 126 147 144 145 140 145 126 147 144
++
++112 123 108 112 123 108 95 91 100 75 81 82 65 63 61 54 57 61 43 42 50 36 35 37
++26 30 28 15 22 17 17 12 17 14 16 17 7 12 13 15 17 7 17 12 17 15 22 17
++23 20 24 23 20 24 26 30 28 32 39 24 42 41 42 48 50 48 59 55 55 65 63 61
++75 72 67 75 72 67 59 69 70 75 72 67 75 72 67 59 69 70 53 63 61 54 57 61
++43 55 48 43 55 48 35 46 43 31 35 35 26 30 28 23 18 22 14 16 17 7 12 13
++3 4 9 13 4 7 3 4 9 7 12 13 15 17 7 26 30 28 36 35 37 48 50 48
++65 63 61 90 98 89 99 93 84 112 123 108 111 119 127 138 126 108 146 151 137 146 151 137
++146 162 145 166 156 164 150 171 159 166 156 164 166 180 164 166 156 164 166 180 164 146 162 145
++166 156 164 150 144 154 146 151 137 145 140 145 146 150 115 145 140 145 121 143 132 138 126 108
++119 117 138 138 126 108 111 119 127 138 126 108 111 119 127 121 143 132 111 119 127 138 126 108
++111 119 127 138 126 108 121 143 132 138 126 108 121 143 132 121 143 132 145 140 145 145 140 145
++146 151 137 150 144 154 146 162 145 166 156 164 146 162 145 166 156 164 146 162 145 148 160 159
++146 162 145 148 160 159 166 156 164 146 162 145 166 156 164 146 162 145 150 144 154 146 162 145
++150 144 154 146 151 137 146 151 137 146 151 137 121 143 132 146 151 137 121 143 132 145 140 145
++121 143 132 121 143 132 138 126 108 121 143 132 146 151 137 121 143 132 145 140 145 126 147 144
++146 151 137 150 144 154 146 162 145 166 156 164 148 160 159 166 156 164 150 171 159 166 156 164
++150 171 159 166 156 164 150 171 159 166 156 164 166 180 164 166 156 164 150 171 159 166 156 164
++150 171 159 177 169 143 150 171 159 166 156 164 146 162 145 148 160 159 150 144 154 148 160 159
++146 151 137 129 144 153 145 140 145 145 140 145 121 143 132 141 116 139 121 143 132 119 117 138
++111 119 127 111 119 127 95 108 128 94 105 108 77 91 115 61 78 101 60 63 87 42 60 86
++34 42 77 34 42 77 34 42 77 24 30 43 34 42 77 34 42 77 24 30 43 34 42 77
++24 30 43 34 42 77 29 34 50 34 42 77 29 34 50 37 35 43 34 42 77 57 43 64
++57 43 64 57 43 64 75 64 82 88 69 84 88 69 84 95 91 100 120 63 71 112 96 108
++112 96 108 112 96 108 112 96 108 141 116 139 138 102 108 138 126 108 141 116 139 145 140 145
++163 117 123 146 151 137 163 117 123 145 140 145 168 146 127 145 140 145 163 117 123 145 140 145
++168 146 127 145 140 145 168 146 127 145 140 145 145 140 145 168 146 127 141 116 139 168 146 127
++146 150 115 163 117 123 168 146 127 163 117 123 168 146 127 163 117 123 163 117 123 163 117 123
++163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 163 117 123
++168 146 127 163 117 123 163 117 123 168 146 127 163 117 123 163 117 123 168 146 127 163 117 123
++168 146 127 163 117 123 146 150 115 163 117 123 168 146 127 163 117 123 168 146 127 168 146 127
++163 117 123 168 146 127 168 146 127 168 146 127 168 102 88 168 146 127 168 146 127 168 146 127
++168 146 127 168 102 88 168 146 127 168 102 88 168 146 127 163 117 123 177 171 115 168 146 127
++168 146 127 177 171 115 168 146 127 168 146 127 168 146 127 168 146 127 101 83 74 53 35 17
++23 10 10 3 3 1 15 17 7 13 4 7 3 3 1 15 17 7 3 3 1 15 17 7
++52 30 15 120 63 71 117 99 86 168 102 88 117 112 45 120 63 71 117 112 45 138 126 108
++168 102 88 138 126 108 138 126 108 168 102 88 117 114 76 168 102 88 117 127 86 138 126 108
++168 102 88 117 99 86 117 114 76 168 102 88 117 99 86 168 102 88 117 99 86 117 114 76
++88 73 62 76 46 20 53 35 17 52 30 15 53 35 17 53 35 17 53 35 17 53 35 17
++55 39 18 60 49 42 63 55 45 63 55 45 55 39 37 55 39 18 52 30 15 34 30 15
++49 13 16 34 30 15 26 25 15 23 10 10 34 30 15 26 12 13 34 30 15 53 35 17
++55 39 18 88 44 51 88 73 62 101 74 26 101 83 74 88 73 62 88 73 62 75 72 67
++65 57 61 46 59 71 46 59 71 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 42 60 86 42 60 86 42 60 86 61 78 101 42 60 86 61 78 101
++60 63 87 42 60 86 60 63 87 42 60 86 42 60 86 60 63 87 42 60 86 42 60 86
++59 69 70 42 60 86 60 63 87 60 63 87 60 81 83 60 63 87 60 81 83 60 81 83
++61 78 101 77 90 100 77 91 115 94 105 108 98 121 131 98 121 131 111 122 142 122 134 144
++126 147 144 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 150 171 159 150 168 183
++150 171 159 150 168 183 166 180 164 150 168 183 166 174 181 166 156 164 150 168 183 150 147 171
++148 160 159 129 144 153 146 162 145 129 144 153 122 134 144 122 134 144 111 119 127 98 121 131
++94 105 108 94 105 108 77 90 100 77 90 100 78 98 90 75 81 90 90 98 89 75 81 90
++75 81 76 65 63 61 55 55 48 63 55 45 88 73 31 98 106 55 117 114 76 138 126 108
++146 150 115 138 126 108 138 126 108 138 126 108 168 102 88 117 127 86 117 127 86 168 102 88
++138 126 108 168 146 127 168 146 127 177 169 143 177 169 143 217 168 156 177 169 143 217 168 156
++177 169 143 217 168 156 177 169 143 214 214 134 217 168 156 217 168 156 189 165 168 214 214 134
++217 168 156 214 214 134 217 168 156 208 215 180 217 168 156 217 168 156 214 214 134 222 171 182
++217 168 156 208 215 180 217 168 156 222 171 182 214 214 134 222 171 182 222 171 182 222 171 182
++225 222 201 222 171 182 214 214 134 222 171 182 208 215 180 217 168 156 208 215 180 222 171 182
++214 214 134 217 168 156 189 165 168 214 214 134 189 165 168 189 165 168 146 151 137 146 151 137
++129 144 153 129 144 153 129 144 153 148 160 159 148 160 159 131 144 168 148 160 159 148 160 159
++150 168 183 148 160 159 148 160 159 150 147 171 150 168 183 148 160 159 150 168 183 148 160 159
++166 174 181 148 160 159 166 174 181 166 156 164 150 168 183 166 180 164 150 168 183 166 174 181
++166 174 181 166 180 164 166 176 200 166 180 164 166 176 200 166 180 164 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 180 164 150 168 183 150 168 183 150 168 183 148 160 159
++148 160 159 131 144 168 129 144 153 129 144 153 129 144 153 111 122 142 111 122 142 111 122 142
++95 108 128 77 91 115 77 91 115 77 91 115 61 78 101 61 78 101 60 63 87 61 78 101
++61 78 101 61 78 101 77 91 115 77 91 115 95 108 128 95 108 128 98 121 131 111 119 127
++111 122 142 122 134 144 126 147 144 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159
++150 171 159 166 156 164 150 168 183 166 174 181 166 174 181 166 174 181 166 180 164 166 174 181
++166 174 181 166 174 181 166 180 164 150 168 183 166 174 181 166 174 181 148 160 159 166 174 181
++150 171 159 150 168 183 150 168 183 148 160 159 148 160 159 150 147 171 148 160 159 150 144 154
++148 160 159 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 122 134 144 122 134 144
++122 134 144 122 134 144 122 134 144 111 122 142 111 119 127 95 108 128 94 105 108 77 91 115
++77 90 100 77 90 100 77 90 100 75 81 90 61 78 101 60 81 83 60 63 87 42 60 86
++60 63 87 60 63 87 61 78 101 61 78 101 77 90 100 77 91 115 77 91 115 94 105 108
++95 108 128 95 108 128 98 121 131 111 119 127 111 122 142 122 134 144 122 134 144 126 147 144
++129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159 150 168 183 150 171 159
++166 174 181 166 180 164 166 174 181 150 168 183 166 180 164 166 174 181 166 180 164 166 174 181
++166 174 181 166 180 164 150 168 183 166 174 181 166 180 164 150 168 183 166 156 164 166 174 181
++150 168 183 150 171 159 150 168 183 148 160 159 150 168 183 148 160 159 148 160 159 131 144 168
++146 162 145 150 144 154 129 144 153 126 147 144 122 134 144 122 134 144 122 134 144 111 122 142
++111 122 142 98 121 131 95 108 128 95 119 107 77 91 115 77 91 115 77 90 100 61 78 101
++61 78 101 60 63 87 42 60 86 46 59 71 34 42 77 46 59 71 46 59 71 42 60 86
++60 63 87 61 78 101 77 90 100 77 91 115 95 95 116 95 108 128 98 121 131 111 119 127
++111 119 127 122 134 144 122 134 144 122 134 144 129 144 153 129 144 153 129 144 153 148 160 159
++129 144 153 148 160 159 148 160 159 129 144 153 148 160 159 148 160 159 148 160 159 131 144 168
++148 160 159 148 160 159 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 126 147 144
++129 144 153 126 147 144 129 144 153 145 140 145 126 147 144 126 147 144 126 147 144 129 144 153
++126 147 144 129 144 153 129 144 153 129 144 153 148 160 159 129 144 153 148 160 159 129 144 153
++148 160 159 129 144 153 148 160 159 129 144 153 148 160 159 150 144 154 129 144 153 126 147 144
++121 143 132 122 134 144 121 143 132 111 122 142 98 121 131 95 108 128 95 119 107 77 91 115
++77 91 115 77 90 100 60 63 87 60 63 87 46 59 71 46 59 71 34 42 77 32 40 58
++29 34 50 32 40 58 29 34 50 32 40 58 29 34 50 29 34 50 32 40 58 32 40 58
++32 40 58 32 40 58 32 40 58 32 40 58 46 59 71 60 63 87 60 81 83 77 90 100
++77 91 115 94 105 108 98 121 131 111 119 127 111 122 142 122 134 144 126 147 144 126 147 144
++145 140 145 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159 150 144 154
++148 160 159 148 160 159 150 144 154 148 160 159 129 144 153 148 160 159 129 144 153 129 144 153
++145 140 145 129 144 153 129 144 153 126 147 144 129 144 153 145 140 145 121 143 132 122 134 144
++121 143 132 145 140 145 122 134 144 145 140 145 122 134 144 126 147 144 122 134 144 145 140 145
++122 134 144 126 147 144 145 140 145 129 144 153 129 144 153 126 147 144 122 134 144 122 134 144
++
++94 105 108 94 105 108 90 98 89 88 83 88 59 69 70 52 55 48 42 47 42 31 35 35
++22 25 24 23 18 22 14 16 17 14 16 17 13 4 7 15 17 7 17 12 17 22 24 13
++22 25 24 22 25 24 33 30 30 36 35 37 42 47 42 48 50 48 59 55 55 59 69 70
++75 72 67 75 81 76 75 81 76 75 81 76 75 81 76 75 81 76 59 69 70 65 63 61
++53 63 61 50 61 48 48 50 48 35 46 43 36 35 37 25 30 29 23 18 22 14 16 17
++7 12 13 13 4 7 3 4 9 13 4 7 14 16 17 22 24 13 33 30 30 47 44 42
++65 63 61 75 81 76 90 98 89 112 123 108 138 126 108 111 119 127 145 140 145 146 151 137
++150 144 154 146 162 145 166 156 164 177 169 143 166 180 164 166 156 164 150 171 159 166 156 164
++146 162 145 146 162 145 150 144 154 146 151 137 145 140 145 121 143 132 138 126 108 122 134 144
++138 126 108 121 143 132 111 119 127 121 143 132 138 126 108 111 119 127 117 142 111 111 119 127
++111 119 127 111 119 127 138 126 108 122 134 144 119 117 138 146 150 115 122 134 144 146 151 137
++145 140 145 146 162 145 150 144 154 146 162 145 150 144 154 148 160 159 150 144 154 166 156 164
++146 162 145 166 156 164 146 162 145 148 160 159 146 162 145 166 156 164 146 162 145 148 160 159
++146 151 137 150 144 154 146 151 137 145 140 145 121 143 132 141 116 139 121 143 132 138 126 108
++121 143 132 141 116 139 121 143 132 121 143 132 141 116 139 121 143 132 145 140 145 146 151 137
++145 140 145 146 151 137 146 162 145 150 144 154 146 162 145 166 156 164 150 171 159 166 156 164
++150 171 159 166 180 164 166 156 164 150 171 159 166 156 164 150 171 159 177 169 143 148 160 159
++166 156 164 150 171 159 166 156 164 146 162 145 166 156 164 146 162 145 148 160 159 150 144 154
++150 144 154 146 151 137 129 144 153 145 140 145 122 134 144 121 143 132 119 117 138 111 119 127
++111 119 127 111 119 127 95 108 128 95 95 116 77 90 100 77 90 100 60 63 87 42 60 86
++34 42 77 32 40 58 34 42 77 24 30 43 34 42 77 12 18 30 34 42 77 34 42 77
++12 18 30 34 42 77 24 30 43 29 34 50 57 43 64 34 42 77 59 36 42 34 42 77
++57 43 64 75 64 82 75 64 82 88 69 84 88 83 88 95 91 100 112 96 108 112 96 108
++112 96 108 138 102 108 141 116 139 138 102 108 141 116 139 138 126 108 163 117 123 138 126 108
++145 140 145 163 117 123 146 151 137 163 117 123 145 140 145 168 146 127 150 144 154 168 146 127
++145 140 145 168 146 127 145 140 145 168 146 127 168 146 127 145 140 145 168 146 127 145 140 145
++163 117 123 146 151 137 163 117 123 145 140 145 163 117 123 145 140 145 163 117 123 146 150 115
++163 117 123 138 126 108 163 117 123 163 117 123 168 146 127 163 117 123 168 146 127 163 117 123
++168 146 127 163 117 123 168 146 127 163 117 123 168 146 127 163 117 123 168 146 127 163 117 123
++168 146 127 168 146 127 163 117 123 168 146 127 168 146 127 163 117 123 168 146 127 163 117 123
++168 146 127 163 117 123 168 146 127 163 117 123 168 146 127 168 146 127 163 117 123 168 146 127
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 201 146 124 177 171 115 168 146 127 117 99 86 76 46 20 13 4 7
++23 10 10 13 4 7 6 15 6 3 3 1 15 17 7 15 17 7 3 3 1 26 12 13
++76 46 20 88 73 31 117 114 76 120 63 71 117 112 45 168 102 88 117 99 86 168 102 88
++138 126 108 168 102 88 138 126 108 117 112 45 117 99 86 117 114 76 168 102 88 138 126 108
++168 102 88 117 127 86 168 102 88 117 99 86 168 102 88 117 99 86 120 63 71 120 63 71
++101 74 26 76 46 20 53 35 17 53 35 17 55 39 18 53 35 17 53 35 17 52 30 15
++52 30 35 55 39 18 76 46 20 76 46 20 60 49 42 55 39 18 52 30 35 34 30 15
++34 30 15 26 12 13 23 10 10 22 24 13 34 30 15 26 25 15 52 30 15 53 35 17
++60 49 42 88 73 31 88 73 31 120 63 71 101 74 26 101 83 74 88 73 62 75 56 53
++54 57 61 43 42 50 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 32 40 58 34 42 77
++42 60 86 42 60 86 42 60 86 42 60 86 61 78 101 61 78 101 61 78 101 42 60 86
++61 78 101 42 60 86 61 78 101 42 60 86 60 63 87 42 60 86 60 63 87 42 60 86
++60 63 87 42 60 86 60 81 83 60 81 83 61 78 101 60 81 83 61 78 101 61 78 101
++60 81 83 77 90 100 94 105 108 95 108 128 95 119 107 111 119 127 122 134 144 122 134 144
++122 134 144 129 144 153 129 144 153 148 160 159 131 144 168 150 171 159 150 168 183 166 156 164
++150 171 159 150 168 183 150 171 159 166 174 181 150 171 159 150 171 159 148 160 159 148 160 159
++148 160 159 131 144 168 129 144 153 129 144 153 122 134 144 121 143 132 111 119 127 98 121 131
++94 105 108 77 91 115 77 90 100 75 81 90 75 81 90 75 81 90 78 98 90 90 98 89
++95 91 100 98 113 84 75 81 69 63 55 45 47 47 21 55 39 18 75 73 36 101 74 26
++117 114 76 117 114 76 117 114 76 117 114 76 117 127 86 168 102 88 138 126 108 138 126 108
++157 148 53 163 117 123 146 150 115 201 146 124 177 171 115 177 169 143 217 168 156 177 169 143
++214 214 134 177 169 143 217 168 156 177 169 143 217 168 156 177 169 143 214 214 134 189 165 168
++217 168 156 189 165 168 217 168 156 217 168 156 214 214 134 189 165 168 222 171 182 208 215 180
++217 168 156 208 215 180 217 168 156 208 215 180 222 171 182 214 214 134 225 222 201 214 214 134
++225 222 201 222 171 182 225 222 201 217 168 156 214 214 134 222 171 182 214 214 134 217 168 156
++217 168 156 217 168 156 214 214 134 189 165 168 217 168 156 166 180 164 189 165 168 145 140 145
++126 147 144 145 140 145 131 144 168 148 160 159 131 144 168 148 160 159 148 160 159 131 144 168
++148 160 159 150 147 171 150 168 183 148 160 159 148 160 159 150 147 171 148 160 159 150 168 183
++148 160 159 166 174 181 150 171 159 150 168 183 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 180 164
++166 174 181 166 174 181 150 168 183 166 174 181 150 171 159 150 168 183 148 160 159 150 147 171
++148 160 159 131 144 168 129 144 153 129 144 153 122 134 144 122 134 144 111 122 142 98 121 131
++95 108 128 95 108 128 77 91 115 77 91 115 61 78 101 61 78 101 61 78 101 61 78 101
++61 78 101 77 91 115 77 91 115 77 91 115 95 108 128 95 108 128 98 121 131 111 122 142
++121 143 132 122 134 144 126 147 144 129 144 153 148 160 159 148 160 159 150 147 171 148 160 159
++150 168 183 150 171 159 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 180 164 150 168 183 150 171 159 150 168 183 150 168 183
++166 156 164 150 168 183 148 160 159 166 156 164 150 168 183 148 160 159 148 160 159 148 160 159
++131 144 168 129 144 153 129 144 153 129 144 153 129 144 153 122 134 144 122 134 144 111 122 142
++111 119 127 98 121 131 98 121 131 95 108 128 95 108 128 95 108 128 77 91 115 94 105 108
++77 90 100 77 90 100 61 78 101 61 78 101 60 63 87 60 63 87 60 63 87 59 69 70
++42 60 86 60 63 87 61 78 101 61 78 101 61 78 101 77 90 100 77 91 115 95 108 128
++95 108 128 95 108 128 98 121 131 111 122 142 122 134 144 122 134 144 122 134 144 129 144 153
++129 144 153 148 160 159 131 144 168 148 160 159 150 168 183 148 160 159 150 168 183 166 174 181
++166 174 181 150 168 183 166 180 164 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181
++166 180 164 150 168 183 166 180 164 166 174 181 150 171 159 166 174 181 150 171 159 148 160 159
++166 156 164 150 168 183 148 160 159 148 160 159 150 147 171 148 160 159 148 160 159 148 160 159
++129 144 153 129 144 153 129 144 153 129 144 153 122 134 144 122 134 144 111 122 142 98 121 131
++98 121 131 98 121 131 95 108 128 77 91 115 94 105 108 77 91 115 61 78 101 61 78 101
++60 63 87 60 63 87 42 60 86 46 59 71 46 59 71 46 59 71 42 60 86 60 63 87
++60 81 83 75 81 90 77 91 115 77 91 115 95 108 128 94 105 108 111 119 127 111 119 127
++122 134 144 121 143 132 126 147 144 129 144 153 129 144 153 129 144 153 148 160 159 148 160 159
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 131 144 168 148 160 159 148 160 159
++131 144 168 129 144 153 148 160 159 129 144 153 150 144 154 129 144 153 126 147 144 122 134 144
++122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 145 140 145 126 147 144
++129 144 153 129 144 153 129 144 153 150 144 154 129 144 153 148 160 159 129 144 153 148 160 159
++148 160 159 131 144 168 148 160 159 148 160 159 131 144 168 148 160 159 129 144 153 126 147 144
++122 134 144 122 134 144 111 122 142 98 121 131 111 119 127 98 121 131 95 108 128 77 91 115
++94 105 108 61 78 101 75 81 90 60 63 87 46 59 71 34 42 77 32 40 58 32 40 58
++32 40 58 29 34 50 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58 32 40 58
++32 40 58 45 57 61 32 40 58 46 59 71 63 59 71 60 63 87 60 81 83 77 90 100
++77 90 100 95 108 128 111 119 127 98 121 131 121 143 132 121 143 132 122 134 144 129 144 153
++126 147 144 146 162 145 148 160 159 150 144 154 131 144 168 148 160 159 148 160 159 148 160 159
++131 144 168 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 148 160 159 129 144 153
++146 162 145 129 144 153 145 140 145 129 144 153 145 140 145 126 147 144 126 147 144 122 134 144
++126 147 144 122 134 144 121 143 132 121 143 132 122 134 144 145 140 145 121 143 132 122 134 144
++122 134 144 122 134 144 126 147 144 122 134 144 122 134 144 122 134 144 121 143 132 122 134 144
++
++112 123 108 94 105 108 90 98 89 75 81 76 65 63 61 48 50 48 42 41 42 33 30 32
++22 25 24 14 16 17 14 16 17 15 17 7 17 12 17 14 16 17 14 16 17 23 20 24
++26 30 28 33 30 30 36 35 37 42 41 42 48 50 48 59 55 55 59 57 61 75 72 67
++75 81 82 75 81 76 75 81 82 75 81 82 75 81 82 75 81 82 75 81 76 75 81 76
++59 69 70 59 69 70 53 63 61 52 55 48 48 44 48 36 35 37 25 30 29 23 20 24
++7 12 13 6 15 6 3 4 9 6 15 6 13 4 7 15 17 7 22 25 24 36 35 37
++52 55 48 75 72 67 88 83 88 99 93 84 112 123 108 138 126 108 121 143 132 145 140 145
++146 151 137 166 156 164 146 162 145 150 171 159 166 156 164 166 180 164 166 156 164 146 162 145
++166 156 164 150 144 154 146 151 137 145 140 145 146 151 137 145 140 145 121 143 132 111 119 127
++138 126 108 111 119 127 138 126 108 111 119 127 121 143 132 138 126 108 111 119 127 111 119 127
++138 126 108 121 143 132 111 119 127 138 126 108 121 143 132 141 116 139 121 143 132 145 140 145
++146 151 137 145 140 145 146 162 145 150 144 154 146 162 145 166 156 164 146 162 145 146 162 145
++166 156 164 146 162 145 150 144 154 146 162 145 166 156 164 146 162 145 150 144 154 146 162 145
++150 144 154 146 151 137 121 143 132 146 151 137 122 134 144 146 150 115 121 143 132 122 134 144
++138 126 108 121 143 132 138 126 108 145 140 145 121 143 132 138 126 108 121 143 132 145 140 145
++126 147 144 146 151 137 150 144 154 146 162 145 150 171 159 166 156 164 146 162 145 166 156 164
++150 171 159 166 156 164 166 180 164 148 160 159 177 169 143 150 171 159 166 156 164 150 171 159
++166 180 164 166 156 164 150 171 159 166 156 164 146 162 145 166 156 164 148 160 159 148 160 159
++146 151 137 150 144 154 145 140 145 121 143 132 145 140 145 119 117 138 121 143 132 119 117 138
++111 119 127 111 119 127 95 108 128 95 95 116 77 91 115 61 78 101 61 78 101 42 60 86
++34 42 77 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 34 42 77 24 30 43
++34 42 77 29 34 50 34 42 77 29 34 50 34 42 77 29 34 50 57 43 64 57 43 64
++57 43 64 75 59 67 75 64 82 88 69 84 88 69 84 95 91 100 112 96 108 112 96 108
++112 96 108 138 102 108 111 119 127 138 102 108 141 116 139 138 126 108 141 116 139 145 140 145
++163 117 123 145 140 145 168 146 127 145 140 145 168 146 127 150 144 154 168 146 127 150 144 154
++168 146 127 150 144 154 168 146 127 145 140 145 150 144 154 168 146 127 145 140 145 168 146 127
++145 140 145 168 146 127 145 140 145 168 146 127 168 146 127 168 146 127 168 146 127 145 140 145
++163 117 123 168 146 127 163 117 123 168 146 127 163 117 123 145 140 145 168 146 127 163 117 123
++168 146 127 145 140 145 163 117 123 168 146 127 163 117 123 168 146 127 168 146 127 168 146 127
++163 117 123 168 146 127 168 146 127 163 117 123 168 146 127 168 146 127 168 146 127 163 117 123
++146 150 115 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 163 117 123
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 168 146 127 138 102 108 75 56 53 26 12 13 3 3 1
++15 17 7 13 4 7 3 3 1 13 4 7 15 17 7 13 4 7 15 17 7 53 35 17
++88 73 62 117 112 45 120 63 71 117 112 45 120 63 71 117 112 45 168 102 88 138 126 108
++168 102 88 117 127 86 168 102 88 117 114 76 167 63 71 117 114 76 117 114 76 168 102 88
++138 126 108 168 102 88 117 114 76 168 102 88 117 114 76 168 102 88 117 114 76 101 74 26
++88 44 51 76 46 20 59 36 42 55 39 18 52 30 35 53 35 17 52 30 35 53 35 17
++53 35 17 53 35 17 55 39 37 60 49 42 76 46 20 60 49 42 53 35 17 34 30 15
++34 30 15 22 24 13 22 24 13 26 12 13 26 12 13 26 25 15 52 30 15 55 39 18
++60 49 42 88 73 31 88 73 62 101 83 74 88 73 62 88 73 62 75 63 62 59 57 61
++57 43 64 57 43 64 34 42 77 32 40 58 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 42 60 86 42 60 86 60 63 87 61 78 101 42 60 86 61 78 101 61 78 101
++61 78 101 61 78 101 61 78 101 60 63 87 61 78 101 60 63 87 42 60 86 60 81 83
++42 60 86 60 63 87 60 63 87 60 81 83 42 60 86 60 63 87 60 81 83 61 78 101
++77 90 100 77 90 100 77 91 115 95 108 128 98 121 131 111 119 127 111 122 142 122 134 144
++126 147 144 129 144 153 131 144 168 148 160 159 148 160 159 148 160 159 148 160 159 150 171 159
++166 174 181 150 171 159 166 174 181 150 168 183 166 174 181 148 160 159 150 168 183 148 160 159
++131 144 168 148 160 159 129 144 153 126 147 144 122 134 144 122 134 144 111 119 127 95 108 128
++95 119 107 77 90 100 77 90 100 77 90 100 60 81 83 75 81 90 77 90 100 95 91 100
++95 119 107 111 119 127 112 123 108 90 98 89 75 77 62 51 49 42 34 30 15 34 30 15
++55 39 37 88 73 31 88 73 62 101 74 26 101 83 74 98 106 55 117 114 76 138 126 108
++146 150 115 168 102 88 168 146 127 138 126 108 168 146 127 197 171 123 177 169 143 197 171 123
++217 168 156 177 169 143 197 171 123 217 168 156 197 171 123 197 171 123 217 168 156 189 165 168
++214 214 134 217 168 156 214 214 134 189 165 168 217 168 156 208 215 180 217 168 156 217 168 156
++208 215 180 217 168 156 217 168 156 217 168 156 214 214 134 222 171 182 222 171 182 222 171 182
++225 222 201 214 214 134 222 171 182 208 215 180 222 171 182 208 215 180 217 168 156 208 215 180
++217 168 156 208 215 180 217 168 156 197 171 123 208 215 180 189 165 168 177 169 143 146 151 137
++145 140 145 129 144 153 129 144 153 148 160 159 129 144 153 148 160 159 131 144 168 148 160 159
++148 160 159 148 160 159 148 160 159 148 160 159 150 147 171 148 160 159 150 168 183 166 156 164
++150 171 159 150 168 183 166 156 164 150 168 183 166 180 164 150 168 183 166 180 164 150 168 183
++166 174 181 166 174 181 166 174 181 166 180 164 185 202 202 166 180 164 166 174 181 166 174 181
++166 174 181 166 174 181 166 180 164 150 168 183 166 174 181 150 168 183 148 160 159 150 168 183
++148 160 159 148 160 159 131 144 168 129 144 153 131 144 168 122 134 144 111 122 142 111 122 142
++95 108 128 95 108 128 77 91 115 77 91 115 61 78 101 61 78 101 61 78 101 61 78 101
++61 78 101 61 78 101 77 91 115 77 91 115 95 108 128 98 121 131 111 119 127 111 122 142
++122 134 144 122 134 144 129 144 153 129 144 153 129 144 153 148 160 159 148 160 159 150 168 183
++148 160 159 166 174 181 150 171 159 166 174 181 166 174 181 166 174 181 166 174 181 166 180 164
++166 174 181 166 174 181 166 180 164 150 168 183 166 174 181 166 174 181 150 171 159 166 156 164
++150 168 183 148 160 159 150 168 183 148 160 159 148 160 159 148 160 159 131 144 168 148 160 159
++129 144 153 129 144 153 129 144 153 126 147 144 122 134 144 122 134 144 122 134 144 111 119 127
++111 122 142 98 121 131 95 108 128 95 108 128 95 108 128 77 91 115 94 105 108 77 91 115
++77 91 115 77 90 100 61 78 101 60 81 83 60 63 87 60 81 83 60 63 87 42 60 86
++60 63 87 60 63 87 61 78 101 61 78 101 61 78 101 77 91 115 77 91 115 94 105 108
++77 91 115 95 108 128 98 121 131 111 122 142 111 119 127 122 134 144 122 134 144 126 147 144
++129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 150 171 159 148 160 159 166 174 181
++150 171 159 166 174 181 150 171 159 166 174 181 150 171 159 166 174 181 166 180 164 150 168 183
++166 174 181 166 180 164 150 168 183 166 174 181 166 174 181 150 171 159 166 156 164 150 168 183
++150 171 159 150 168 183 148 160 159 150 168 183 150 171 159 131 144 168 148 160 159 129 144 153
++129 144 153 129 144 153 126 147 144 122 134 144 122 134 144 121 143 132 111 122 142 111 119 127
++98 121 131 95 108 128 95 108 128 94 105 108 77 91 115 77 90 100 77 90 100 61 78 101
++60 63 87 42 60 86 42 60 86 42 60 86 46 59 71 42 60 86 60 63 87 60 63 87
++61 78 101 77 90 100 77 91 115 94 105 108 95 108 128 98 121 131 98 121 131 121 143 132
++122 134 144 122 134 144 129 144 153 129 144 153 148 160 159 129 144 153 150 144 154 148 160 159
++131 144 168 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153
++148 160 159 148 160 159 129 144 153 129 144 153 129 144 153 126 147 144 129 144 153 122 134 144
++126 147 144 122 134 144 122 134 144 126 147 144 122 134 144 122 134 144 122 134 144 122 134 144
++145 140 145 126 147 144 129 144 153 129 144 153 129 144 153 129 144 153 148 160 159 131 144 168
++148 160 159 148 160 159 131 144 168 148 160 159 148 160 159 148 160 159 129 144 153 129 144 153
++126 147 144 122 134 144 121 143 132 122 134 144 98 121 131 98 121 131 95 119 107 95 108 128
++77 91 115 77 90 100 61 78 101 60 63 87 46 59 71 45 57 61 34 42 77 32 40 58
++29 34 50 32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58 32 40 58
++32 40 58 32 40 58 57 43 64 46 59 71 46 59 71 60 63 87 60 81 83 77 90 100
++94 105 108 94 105 108 98 121 131 111 119 127 111 119 127 122 134 144 126 147 144 145 140 145
++129 144 153 150 144 154 129 144 153 148 160 159 148 160 159 148 160 159 131 144 168 148 160 159
++148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 148 160 159 129 144 153 150 144 154
++129 144 153 129 144 153 145 140 145 129 144 153 126 147 144 122 134 144 145 140 145 121 143 132
++122 134 144 145 140 145 122 134 144 122 134 144 121 143 132 121 143 132 122 134 144 122 134 144
++121 143 132 122 134 144 122 134 144 121 143 132 122 134 144 121 143 132 122 134 144 122 134 144
++
++94 105 108 112 96 108 90 98 89 75 81 82 53 63 61 48 50 48 42 41 42 26 30 28
++22 25 24 14 16 17 14 16 17 17 12 17 14 16 17 14 16 17 23 20 24 26 30 28
++33 30 30 31 35 35 33 39 38 47 49 42 55 55 48 59 57 61 59 69 70 75 81 82
++75 81 90 75 81 90 88 83 88 88 83 88 75 81 90 88 83 88 75 81 82 75 81 82
++75 81 76 75 81 76 59 69 70 63 59 71 54 57 61 48 50 48 33 39 38 26 30 28
++14 16 17 7 12 13 13 4 7 3 3 1 6 15 6 6 15 6 23 18 22 33 30 30
++48 44 48 59 57 61 75 81 69 90 98 89 112 96 108 112 123 108 119 117 138 146 151 137
++146 151 137 146 162 145 166 156 164 166 156 164 146 162 145 177 169 143 148 160 159 177 169 143
++148 160 159 146 162 145 146 151 137 146 151 137 121 143 132 138 126 108 121 143 132 138 126 108
++122 134 144 138 126 108 111 119 127 138 126 108 111 119 127 111 119 127 138 126 108 111 119 127
++111 119 127 111 119 127 121 143 132 111 119 127 121 143 132 138 126 108 145 140 145 146 151 137
++145 140 145 146 162 145 150 144 154 146 162 145 148 160 159 146 162 145 150 144 154 148 160 159
++146 162 145 150 144 154 148 160 159 166 156 164 146 151 137 148 160 159 146 162 145 166 156 164
++146 151 137 146 151 137 145 140 145 121 143 132 145 140 145 138 126 108 122 134 144 138 126 108
++121 143 132 119 117 138 121 143 132 138 126 108 121 143 132 145 140 145 121 143 132 145 140 145
++146 151 137 145 140 145 146 162 145 150 144 154 146 162 145 148 160 159 166 156 164 150 171 159
++166 156 164 148 160 159 166 156 164 150 171 159 148 160 159 166 156 164 150 171 159 166 156 164
++150 171 159 177 169 143 150 171 159 166 156 164 146 162 145 166 156 164 146 162 145 150 144 154
++150 144 154 145 140 145 129 144 153 145 140 145 122 134 144 121 143 132 119 117 138 111 119 127
++111 119 127 111 119 127 95 108 128 95 95 116 77 90 100 75 81 90 60 63 87 42 60 86
++46 59 71 34 42 77 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 24 30 43
++34 42 77 24 30 43 34 42 77 29 34 50 57 43 64 29 34 50 57 43 64 57 43 64
++63 59 71 75 64 82 75 64 82 88 83 88 88 83 88 112 96 108 112 96 108 112 96 108
++111 119 127 138 102 108 119 117 138 138 126 108 138 126 108 141 116 139 146 151 137 163 117 123
++146 151 137 145 140 145 145 140 145 168 146 127 145 140 145 150 144 154 168 146 127 150 144 154
++150 144 154 168 146 127 150 144 154 166 156 164 168 146 127 150 144 154 168 146 127 145 140 145
++168 146 127 150 144 154 168 146 127 150 144 154 150 144 154 145 140 145 150 144 154 168 146 127
++145 140 145 145 140 145 168 146 127 145 140 145 168 146 127 168 146 127 145 140 145 150 144 154
++168 146 127 145 140 145 168 146 127 145 140 145 145 140 145 150 144 154 145 140 145 150 144 154
++168 146 127 150 144 154 168 146 127 145 140 145 168 146 127 145 140 145 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127
++168 146 127 168 146 127 177 169 143 138 126 108 88 73 62 34 30 15 13 4 7 13 4 7
++7 12 13 13 4 7 6 15 6 7 12 13 13 4 7 3 3 1 26 25 15 75 56 53
++117 99 86 117 99 86 120 63 71 117 112 45 120 63 71 117 114 76 168 102 88 117 127 86
++168 102 88 138 126 108 117 114 76 117 114 76 117 99 86 168 102 88 117 114 76 138 126 108
++168 102 88 138 126 108 138 102 108 168 102 88 117 99 86 101 83 74 120 63 71 88 73 31
++76 44 53 55 39 18 55 39 37 53 35 17 53 35 17 52 30 35 53 35 17 53 35 17
++33 30 30 52 30 15 55 39 18 60 49 42 60 49 42 60 49 42 53 35 17 34 30 15
++26 12 13 26 12 13 23 10 10 22 24 13 34 30 15 34 30 15 52 30 15 55 39 18
++76 46 20 75 56 53 101 83 74 101 83 74 88 73 31 88 73 62 65 63 61 63 59 71
++46 59 71 34 42 77 34 42 77 34 42 77 34 42 77 32 40 58 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 42 60 86 42 60 86 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101
++61 78 101 60 63 87 61 78 101 42 60 86 61 78 101 42 60 86 61 78 101 42 60 86
++60 63 87 60 81 83 42 60 86 61 78 101 60 81 83 61 78 101 60 63 87 61 78 101
++77 90 100 77 91 115 94 105 108 95 108 128 98 121 131 111 119 127 122 134 144 122 134 144
++126 147 144 129 144 153 148 160 159 129 144 153 148 160 159 150 168 183 150 168 183 150 168 183
++150 171 159 150 168 183 166 156 164 150 171 159 150 168 183 148 160 159 148 160 159 148 160 159
++129 144 153 129 144 153 129 144 153 129 144 153 122 134 144 121 143 132 111 119 127 98 121 131
++94 105 108 77 91 115 78 98 90 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100
++94 105 108 111 119 127 126 147 144 145 140 145 121 143 132 90 98 89 64 70 48 32 39 24
++23 31 15 34 30 15 32 39 24 47 47 21 60 49 42 76 46 20 75 73 58 98 106 55
++138 126 108 146 150 115 146 150 115 168 102 88 146 150 115 163 117 123 177 171 115 168 146 127
++197 171 123 177 169 143 197 171 123 177 169 143 217 168 156 177 169 143 217 168 156 197 171 123
++189 165 168 217 168 156 189 165 168 214 214 134 217 168 156 217 168 156 208 215 180 217 168 156
++217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 208 215 180
++222 171 182 225 222 201 222 171 182 214 214 134 225 222 201 217 168 156 208 215 180 217 168 156
++214 214 134 217 168 156 217 168 156 208 215 180 217 168 156 189 165 168 177 169 143 150 144 154
++145 140 145 129 144 153 129 144 153 150 144 154 131 144 168 148 160 159 131 144 168 148 160 159
++131 144 168 148 160 159 131 144 168 150 147 171 148 160 159 150 168 183 150 147 171 148 160 159
++150 168 183 166 156 164 150 168 183 150 171 159 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 150 168 183 166 174 181 150 171 159 166 174 181 150 168 183 148 160 159
++131 144 168 148 160 159 129 144 153 129 144 153 122 134 144 111 122 142 111 122 142 111 122 142
++98 121 131 95 108 128 77 91 115 77 91 115 77 91 115 61 78 101 61 78 101 61 78 101
++77 91 115 77 91 115 77 91 115 95 108 128 95 108 128 95 108 128 111 122 142 111 122 142
++122 134 144 122 134 144 126 147 144 148 160 159 148 160 159 148 160 159 148 160 159 150 171 159
++166 174 181 150 171 159 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 180 164 150 168 183 150 171 159 150 168 183 148 160 159
++150 171 159 166 156 164 148 160 159 148 160 159 150 147 171 148 160 159 131 144 168 150 144 154
++129 144 153 129 144 153 122 134 144 122 134 144 122 134 144 122 134 144 111 122 142 98 121 131
++98 121 131 95 108 128 95 108 128 95 95 116 77 91 115 94 105 108 77 91 115 77 91 115
++61 78 101 61 78 101 60 63 87 61 78 101 60 63 87 42 60 86 42 60 86 42 60 86
++42 60 86 60 63 87 61 78 101 61 78 101 61 78 101 77 90 100 77 91 115 77 91 115
++95 108 128 94 105 108 95 108 128 98 121 131 111 122 142 122 134 144 122 134 144 126 147 144
++129 144 153 146 162 145 148 160 159 148 160 159 150 168 183 148 160 159 150 168 183 150 171 159
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 150 168 183 166 174 181
++166 180 164 150 168 183 166 180 164 166 156 164 150 168 183 166 156 164 150 168 183 148 160 159
++166 156 164 148 160 159 148 160 159 150 147 171 148 160 159 131 144 168 129 144 153 129 144 153
++129 144 153 126 147 144 122 134 144 122 134 144 111 122 142 98 121 131 98 121 131 98 121 131
++95 108 128 94 105 108 77 91 115 77 91 115 77 91 115 77 90 100 61 78 101 61 78 101
++60 63 87 42 60 86 46 59 71 46 59 71 42 60 86 42 60 86 60 63 87 60 81 83
++61 78 101 77 90 100 95 95 116 95 108 128 95 108 128 111 119 127 111 119 127 122 134 144
++122 134 144 126 147 144 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 150 147 171 148 160 159 148 160 159
++129 144 153 129 144 153 129 144 153 129 144 153 126 147 144 122 134 144 122 134 144 122 134 144
++122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 121 143 132 122 134 144 122 134 144
++126 147 144 129 144 153 129 144 153 129 144 153 129 144 153 148 160 159 129 144 153 148 160 159
++131 144 168 148 160 159 148 160 159 148 160 159 131 144 168 148 160 159 129 144 153 150 144 154
++129 144 153 122 134 144 122 134 144 122 134 144 111 122 142 98 121 131 95 108 128 95 108 128
++77 91 115 77 90 100 61 78 101 60 63 87 60 63 87 46 59 71 32 40 58 32 40 58
++32 40 58 29 34 50 29 34 50 32 40 58 29 34 50 32 40 58 32 40 58 29 34 50
++32 40 58 32 40 58 32 40 58 46 59 71 63 59 71 60 63 87 75 81 90 77 90 100
++94 105 108 95 108 128 111 119 127 111 119 127 122 134 144 121 143 132 126 147 144 126 147 144
++145 140 145 148 160 159 148 160 159 129 144 153 148 160 159 148 160 159 150 144 154 148 160 159
++150 144 154 150 147 171 148 160 159 131 144 168 148 160 159 129 144 153 148 160 159 129 144 153
++148 160 159 129 144 153 129 144 153 126 147 144 145 140 145 126 147 144 122 134 144 121 143 132
++122 134 144 122 134 144 122 134 144 121 143 132 141 116 139 122 134 144 121 143 132 122 134 144
++122 134 144 121 143 132 122 134 144 122 134 144 141 116 139 121 143 132 111 119 127 111 119 127
++
++94 105 108 94 105 108 88 83 88 75 81 76 59 57 61 48 50 48 42 41 42 26 30 28
++15 22 17 14 16 17 15 17 7 17 12 17 15 22 17 23 18 22 22 25 24 33 30 30
++36 35 37 33 39 38 47 44 42 52 55 48 59 55 55 59 69 70 75 81 76 75 81 82
++88 83 88 88 83 88 90 98 89 78 98 90 90 98 89 90 98 89 78 98 90 88 83 88
++75 81 90 75 81 82 75 81 76 75 72 67 59 57 61 54 57 61 42 47 42 31 35 35
++22 25 24 14 16 17 7 12 13 13 4 7 3 3 1 13 4 7 15 17 7 22 25 24
++42 38 42 59 55 55 75 72 67 88 83 74 94 105 108 94 105 108 138 126 108 121 143 132
++145 140 145 146 151 137 146 162 145 177 169 143 150 171 159 145 140 145 146 151 137 146 151 137
++166 156 164 146 162 145 145 140 145 146 151 137 145 140 145 145 140 145 122 134 144 138 126 108
++111 119 127 138 126 108 111 119 127 121 143 132 138 126 108 117 142 111 111 119 127 117 142 111
++111 119 127 138 126 108 111 119 127 138 126 108 121 143 132 122 134 144 121 143 132 126 147 144
++146 151 137 145 140 145 146 162 145 150 144 154 148 160 159 150 144 154 146 162 145 166 156 164
++146 162 145 166 156 164 146 162 145 146 162 145 166 156 164 146 162 145 150 144 154 146 162 145
++146 162 145 145 140 145 146 151 137 121 143 132 145 140 145 121 143 132 146 151 137 122 134 144
++138 126 108 121 143 132 138 126 108 122 134 144 121 143 132 138 126 108 145 140 145 121 143 132
++126 147 144 146 151 137 145 140 145 146 162 145 150 144 154 148 160 159 146 162 145 166 156 164
++146 162 145 150 171 159 166 156 164 146 162 145 166 156 164 146 162 145 166 156 164 150 171 159
++166 156 164 150 171 159 166 156 164 150 171 159 166 156 164 148 160 159 148 160 159 150 144 154
++146 162 145 146 151 137 145 140 145 145 140 145 145 140 145 119 117 138 121 143 132 119 117 138
++111 119 127 111 119 127 95 108 128 95 95 116 77 91 115 61 78 101 60 63 87 42 60 86
++34 42 77 32 40 58 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 24 30 43
++34 42 77 29 34 50 34 42 77 29 34 50 34 42 77 32 40 58 34 42 77 57 43 64
++57 43 64 75 64 82 75 64 82 88 69 84 88 83 88 99 93 84 112 96 108 112 96 108
++111 119 127 138 102 108 111 119 127 141 116 139 138 126 108 141 116 139 138 126 108 145 140 145
++145 140 145 145 140 145 168 146 127 168 146 127 150 144 154 168 146 127 150 144 154 168 146 127
++166 156 164 150 144 154 166 156 164 168 146 127 150 144 154 166 156 164 150 144 154 150 144 154
++150 144 154 168 146 127 150 144 154 150 144 154 168 146 127 166 156 164 168 146 127 150 144 154
++168 146 127 168 146 127 145 140 145 168 146 127 145 140 145 145 140 145 168 146 127 150 144 154
++168 146 127 150 144 154 168 146 127 150 144 154 168 146 127 168 146 127 168 146 127 168 146 127
++150 144 154 168 146 127 166 156 164 168 146 127 150 144 154 168 146 127 168 146 127 145 140 145
++168 146 127 150 144 154 168 146 127 150 144 154 168 146 127 168 146 127 168 146 127 168 146 127
++145 140 145 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127 168 146 127
++168 146 127 177 169 143 168 146 127 101 83 74 34 30 15 23 10 10 13 4 7 7 12 13
++13 4 7 3 4 9 3 3 1 15 17 7 13 4 7 3 3 1 53 35 17 88 73 62
++117 99 86 168 102 88 117 112 45 120 63 71 117 112 45 117 114 76 138 126 108 168 102 88
++138 126 108 117 114 76 168 102 88 117 114 76 168 102 88 117 114 76 138 126 108 168 102 88
++138 126 108 138 126 108 168 102 88 138 126 108 117 114 76 120 63 71 88 73 31 88 44 51
++76 46 20 76 46 20 55 39 37 53 35 17 52 30 35 53 35 17 52 30 15 34 30 15
++52 30 15 52 30 35 55 39 18 55 39 18 76 46 20 55 39 37 52 30 15 34 30 15
++26 12 13 26 12 13 22 24 13 23 10 10 26 12 13 34 30 15 52 30 15 55 39 18
++60 49 42 88 73 31 88 73 62 88 73 62 88 73 62 75 63 62 75 63 62 57 43 64
++57 43 64 46 59 71 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 42 60 86 42 60 86 42 60 86 61 78 101 61 78 101 61 78 101 61 78 101
++61 78 101 61 78 101 61 78 101 61 78 101 60 63 87 61 78 101 60 63 87 60 81 83
++42 60 86 61 78 101 60 63 87 60 81 83 60 63 87 61 78 101 60 81 83 61 78 101
++77 90 100 77 91 115 94 105 108 95 108 128 98 121 131 98 121 131 122 134 144 122 134 144
++122 134 144 126 147 144 148 160 159 131 144 168 148 160 159 148 160 159 150 171 159 166 156 164
++150 168 183 166 180 164 150 168 183 150 168 183 166 156 164 148 160 159 150 147 171 148 160 159
++148 160 159 150 144 154 126 147 144 126 147 144 122 134 144 111 119 127 98 121 131 94 105 108
++94 105 108 77 90 100 77 90 100 77 90 100 61 78 101 61 78 101 77 90 100 94 105 108
++95 119 107 111 119 127 122 134 144 126 147 144 148 160 159 146 151 137 121 143 132 90 98 89
++51 49 42 34 30 15 22 24 13 34 30 15 34 30 15 53 35 17 47 47 21 76 46 20
++120 63 71 117 114 76 168 146 127 177 171 115 146 150 115 168 102 88 138 126 108 168 146 127
++201 146 124 177 169 143 217 168 156 197 171 123 177 169 143 197 171 123 177 169 143 217 168 156
++177 169 143 214 214 134 217 168 156 217 168 156 208 215 180 217 168 156 217 168 156 208 215 180
++217 168 156 208 215 180 217 168 156 222 171 182 214 214 134 222 171 182 222 171 182 214 214 134
++222 171 182 214 214 134 225 222 201 222 171 182 208 215 180 222 171 182 208 215 180 217 168 156
++208 215 180 217 168 156 208 215 180 217 168 156 189 165 168 217 168 156 177 169 143 146 162 145
++126 147 144 150 144 154 129 144 153 131 144 168 148 160 159 129 144 153 148 160 159 129 144 153
++148 160 159 150 147 171 148 160 159 148 160 159 150 147 171 148 160 159 148 160 159 148 160 159
++150 168 183 150 171 159 150 168 183 166 180 164 150 168 183 166 156 164 166 180 164 150 168 183
++166 180 164 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 166 180 164 150 168 183 166 174 181 150 168 183 148 160 159 150 168 183
++148 160 159 148 160 159 131 144 168 129 144 153 129 144 153 129 144 153 111 122 142 98 121 131
++95 108 128 95 108 128 77 91 115 77 91 115 61 78 101 61 78 101 61 78 101 61 78 101
++61 78 101 77 91 115 77 91 115 77 91 115 95 108 128 98 121 131 111 122 142 111 122 142
++122 134 144 126 147 144 129 144 153 129 144 153 131 144 168 148 160 159 148 160 159 150 168 183
++148 160 159 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 180 164
++166 174 181 166 174 181 166 180 164 150 168 183 166 180 164 150 168 183 166 156 164 150 168 183
++148 160 159 150 168 183 150 147 171 148 160 159 148 160 159 129 144 153 148 160 159 129 144 153
++129 144 153 122 134 144 122 134 144 122 134 144 111 122 142 111 119 127 111 122 142 98 121 131
++98 121 131 95 108 128 95 108 128 77 91 115 77 91 115 77 91 115 61 78 101 77 90 100
++61 78 101 61 78 101 60 63 87 60 63 87 42 60 86 42 60 86 42 60 86 42 60 86
++60 63 87 42 60 86 60 63 87 60 63 87 61 78 101 61 78 101 77 91 115 77 91 115
++77 91 115 94 105 108 95 108 128 98 121 131 111 122 142 111 119 127 122 134 144 126 147 144
++129 144 153 129 144 153 129 144 153 148 160 159 148 160 159 150 168 183 148 160 159 166 174 181
++148 160 159 166 174 181 150 171 159 166 174 181 150 171 159 166 174 181 166 180 164 150 168 183
++166 174 181 166 174 181 150 168 183 150 171 159 166 174 181 150 171 159 148 160 159 150 168 183
++148 160 159 150 168 183 148 160 159 148 160 159 129 144 153 148 160 159 129 144 153 126 147 144
++126 147 144 122 134 144 122 134 144 121 143 132 98 121 131 111 119 127 98 121 131 98 121 131
++95 108 128 77 91 115 94 105 108 77 91 115 77 90 100 61 78 101 60 63 87 60 63 87
++60 63 87 42 60 86 46 59 71 42 60 86 42 60 86 60 63 87 60 63 87 61 78 101
++77 90 100 77 91 115 94 105 108 95 108 128 98 121 131 111 122 142 111 122 142 122 134 144
++122 134 144 129 144 153 129 144 153 148 160 159 148 160 159 131 144 168 148 160 159 150 147 171
++150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 131 144 168 148 160 159
++129 144 153 148 160 159 129 144 153 145 140 145 122 134 144 126 147 144 122 134 144 122 134 144
++121 143 132 122 134 144 121 143 132 111 119 127 122 134 144 122 134 144 122 134 144 122 134 144
++122 134 144 129 144 153 126 147 144 145 140 145 129 144 153 129 144 153 148 160 159 129 144 153
++148 160 159 148 160 159 131 144 168 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153
++129 144 153 126 147 144 122 134 144 122 134 144 111 122 142 111 119 127 98 121 131 95 108 128
++95 95 116 77 91 115 77 90 100 60 63 87 60 63 87 46 59 71 45 57 61 34 42 77
++32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 29 34 50
++32 40 58 32 40 58 32 40 58 45 57 61 60 63 87 60 81 83 75 81 90 77 91 115
++94 105 108 95 108 128 98 121 131 111 119 127 121 143 132 122 134 144 126 147 144 145 140 145
++129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 131 144 168 148 160 159 148 160 159
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 150 144 154 146 162 145 150 144 154
++129 144 153 150 144 154 126 147 144 145 140 145 122 134 144 121 143 132 122 134 144 122 134 144
++121 143 132 119 117 138 121 143 132 119 117 138 121 143 132 119 117 138 121 143 132 119 117 138
++121 143 132 119 117 138 111 119 127 121 143 132 111 119 127 119 117 138 111 119 127 111 119 127
++
++95 91 100 90 98 89 88 83 88 75 81 76 54 57 61 43 55 48 42 41 42 26 30 28
++23 18 22 14 16 17 14 16 17 14 16 17 23 18 22 22 25 24 33 30 30 31 35 35
++33 39 38 42 47 42 48 50 48 54 57 61 59 57 61 75 72 67 75 81 82 75 81 90
++78 98 90 95 91 100 90 98 89 95 91 100 95 91 100 94 105 108 95 91 100 78 98 90
++88 83 88 88 83 88 75 81 90 75 81 76 63 59 71 59 57 61 52 55 48 43 42 50
++31 35 35 26 30 28 23 18 22 7 12 13 6 15 6 3 3 1 15 17 7 23 18 22
++33 30 32 48 50 48 53 63 61 75 81 69 99 93 84 112 96 108 112 123 108 119 117 138
++146 151 137 145 140 145 146 151 137 166 156 164 148 160 159 146 151 137 121 143 132 138 126 108
++146 162 145 166 156 164 146 151 137 146 151 137 121 143 132 138 126 108 121 143 132 138 126 108
++111 119 127 121 143 132 138 126 108 111 119 127 111 119 127 111 119 127 138 126 108 111 119 127
++111 119 127 112 123 108 121 143 132 119 117 138 138 126 108 145 140 145 121 143 132 145 140 145
++146 151 137 150 144 154 146 162 145 150 144 154 146 162 145 148 160 159 146 162 145 150 144 154
++146 162 145 150 144 154 148 160 159 150 144 154 146 162 145 148 160 159 146 162 145 150 144 154
++146 162 145 150 144 154 146 151 137 145 140 145 146 150 115 122 134 144 138 126 108 121 143 132
++121 143 132 141 116 139 121 143 132 138 126 108 121 143 132 121 143 132 141 116 139 121 143 132
++145 140 145 146 151 137 150 144 154 146 162 145 150 144 154 146 162 145 166 156 164 146 162 145
++166 156 164 146 162 145 166 156 164 146 162 145 166 156 164 146 162 145 166 156 164 177 169 143
++150 171 159 166 156 164 150 171 159 177 169 143 148 160 159 146 162 145 166 156 164 146 162 145
++150 144 154 129 144 153 145 140 145 126 147 144 122 134 144 119 117 138 121 143 132 111 119 127
++111 119 127 111 119 127 95 108 128 95 95 116 77 90 100 77 90 100 60 63 87 42 60 86
++34 42 77 34 42 77 29 34 50 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77
++24 30 43 34 42 77 29 34 50 34 42 77 29 34 50 57 43 64 57 43 64 57 43 64
++57 43 64 75 64 82 75 64 82 88 69 84 95 91 100 95 91 100 112 96 108 112 96 108
++138 102 108 111 119 127 138 126 108 141 116 139 138 126 108 145 140 145 145 140 145 163 117 123
++146 151 137 168 146 127 145 140 145 145 140 145 168 146 127 166 156 164 150 144 154 166 156 164
++168 146 127 166 156 164 166 156 164 166 156 164 166 156 164 168 146 127 166 156 164 168 146 127
++150 144 154 150 144 154 168 146 127 166 156 164 150 144 154 168 146 127 166 156 164 168 146 127
++150 144 154 150 144 154 168 146 127 150 144 154 168 146 127 150 144 154 168 146 127 150 144 154
++168 146 127 150 144 154 168 146 127 150 144 154 168 146 127 166 156 164 150 144 154 168 146 127
++166 156 164 168 146 127 150 144 154 168 146 127 166 156 164 168 146 127 150 144 154 168 146 127
++150 144 154 168 146 127 166 156 164 168 146 127 166 156 164 150 144 154 168 146 127 166 156 164
++168 146 127 166 156 164 168 146 127 146 151 137 168 146 127 166 156 164 168 146 127 166 156 164
++177 169 143 145 140 145 117 99 86 47 39 42 13 4 7 13 4 7 7 12 13 13 4 7
++3 4 9 13 4 7 3 3 1 13 4 7 13 4 7 13 4 7 55 39 37 101 83 74
++117 114 76 117 99 86 120 63 71 101 74 26 168 102 88 168 102 88 138 126 108 138 126 108
++117 114 76 168 102 88 117 99 86 117 99 86 117 99 86 168 102 88 138 126 108 168 102 88
++138 126 108 138 126 108 168 102 88 117 114 76 120 63 71 101 74 26 75 56 53 76 46 20
++55 39 37 55 39 18 55 39 37 53 35 17 52 30 15 34 30 15 33 30 30 52 30 15
++34 30 15 49 13 16 34 30 15 55 39 37 55 39 37 53 35 17 34 30 15 23 10 10
++15 17 7 22 24 13 23 10 10 22 24 13 26 12 13 34 30 15 52 30 15 55 39 18
++75 56 53 88 73 62 101 83 74 101 83 74 88 73 62 75 63 62 59 57 61 54 57 61
++46 59 71 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++42 60 86 42 60 86 61 78 101 61 78 101 61 78 101 77 91 115 77 91 115 61 78 101
++77 91 115 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 42 60 86 61 78 101
++60 63 87 60 81 83 42 60 86 60 81 83 60 81 83 61 78 101 61 78 101 61 78 101
++77 90 100 77 91 115 94 105 108 95 108 128 98 121 131 111 119 127 122 134 144 122 134 144
++126 147 144 129 144 153 129 144 153 148 160 159 148 160 159 150 168 183 150 171 159 150 168 183
++150 171 159 166 174 181 150 171 159 166 174 181 150 171 159 150 168 183 148 160 159 129 144 153
++129 144 153 129 144 153 126 147 144 122 134 144 122 134 144 111 119 127 95 108 128 94 105 108
++77 91 115 78 98 90 61 78 101 60 81 83 60 81 83 77 90 100 78 98 90 95 108 128
++95 119 107 111 119 127 121 143 132 122 134 144 148 160 159 148 160 159 166 156 164 146 162 145
++111 119 127 88 83 74 47 49 42 34 30 15 34 30 15 34 30 15 34 30 15 47 47 21
++47 47 21 88 73 31 117 114 76 163 117 123 168 146 127 177 171 115 163 117 123 146 150 115
++168 146 127 177 171 115 197 171 123 177 169 143 197 171 123 177 169 143 197 171 123 177 169 143
++217 168 156 189 165 168 189 165 168 214 214 134 217 168 156 208 215 180 217 168 156 217 168 156
++208 215 180 217 168 156 208 215 180 217 168 156 208 215 180 222 171 182 208 215 180 222 171 182
++208 215 180 217 168 156 208 215 180 217 168 156 225 222 201 214 214 134 222 171 182 208 215 180
++217 168 156 217 168 156 214 214 134 217 168 156 177 169 143 189 165 168 177 169 143 166 156 164
++146 151 137 145 140 145 129 144 153 148 160 159 129 144 153 131 144 168 148 160 159 131 144 168
++148 160 159 131 144 168 148 160 159 150 147 171 148 160 159 150 168 183 150 147 171 150 168 183
++148 160 159 166 156 164 150 168 183 166 156 164 150 168 183 166 180 164 150 168 183 166 174 181
++166 174 181 166 174 181 166 174 181 166 174 181 166 180 164 166 174 181 185 202 202 166 180 164
++166 174 181 166 174 181 150 168 183 166 174 181 150 171 159 150 168 183 148 160 159 148 160 159
++148 160 159 131 144 168 129 144 153 129 144 153 129 144 153 111 122 142 111 122 142 111 122 142
++95 108 128 95 108 128 77 91 115 77 91 115 61 78 101 61 78 101 61 78 101 61 78 101
++77 91 115 77 91 115 77 91 115 95 108 128 95 108 128 95 108 128 111 122 142 122 134 144
++122 134 144 129 144 153 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 150 171 159
++166 156 164 150 168 183 166 180 164 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 180 164 150 168 183 166 174 181 148 160 159 150 171 159 150 168 183 148 160 159
++166 156 164 150 171 159 148 160 159 148 160 159 131 144 168 148 160 159 129 144 153 129 144 153
++129 144 153 122 134 144 122 134 144 111 122 142 111 119 127 111 122 142 98 121 131 98 121 131
++95 108 128 94 105 108 77 91 115 77 91 115 77 91 115 77 90 100 61 78 101 61 78 101
++60 63 87 60 63 87 42 60 86 42 60 86 42 60 86 46 59 71 46 59 71 34 42 77
++42 60 86 42 60 86 60 63 87 61 78 101 60 63 87 61 78 101 77 90 100 77 91 115
++77 91 115 95 108 128 95 108 128 98 121 131 111 119 127 111 122 142 121 143 132 122 134 144
++126 147 144 129 144 153 148 160 159 129 144 153 148 160 159 148 160 159 148 160 159 150 168 183
++150 171 159 166 174 181 150 171 159 166 174 181 166 174 181 150 168 183 166 174 181 166 174 181
++150 171 159 166 174 181 150 171 159 166 174 181 148 160 159 150 168 183 166 156 164 148 160 159
++148 160 159 148 160 159 131 144 168 131 144 168 129 144 153 129 144 153 126 147 144 129 144 153
++122 134 144 111 122 142 111 119 127 98 121 131 111 119 127 98 121 131 95 108 128 94 105 108
++77 91 115 77 91 115 77 90 100 77 90 100 61 78 101 60 81 83 60 63 87 42 60 86
++42 60 86 46 59 71 42 60 86 46 59 71 60 63 87 42 60 86 61 78 101 77 90 100
++77 90 100 95 95 116 95 108 128 98 121 131 111 119 127 122 134 144 121 143 132 122 134 144
++126 147 144 129 144 153 148 160 159 150 144 154 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 148 160 159 150 168 183 148 160 159 150 147 171 148 160 159 148 160 159 148 160 159
++129 144 153 129 144 153 129 144 153 126 147 144 122 134 144 122 134 144 122 134 144 122 134 144
++119 117 138 111 119 127 122 134 144 122 134 144 121 143 132 119 117 138 121 143 132 122 134 144
++126 147 144 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 150 144 154
++129 144 153 148 160 159 148 160 159 131 144 168 148 160 159 150 147 171 129 144 153 129 144 153
++129 144 153 129 144 153 126 147 144 122 134 144 111 122 142 98 121 131 98 121 131 95 108 128
++94 105 108 77 91 115 75 81 90 61 78 101 60 63 87 46 59 71 34 42 77 32 40 58
++32 40 58 32 40 58 29 34 50 32 40 58 29 34 50 32 40 58 29 34 50 32 40 58
++29 34 50 32 40 58 45 57 61 46 59 71 60 63 87 60 63 87 77 90 100 77 90 100
++95 119 107 95 108 128 111 119 127 111 122 142 122 134 144 121 143 132 129 144 153 126 147 144
++150 144 154 146 162 145 129 144 153 148 160 159 148 160 159 148 160 159 150 144 154 148 160 159
++131 144 168 148 160 159 148 160 159 150 147 171 129 144 153 148 160 159 129 144 153 129 144 153
++146 162 145 129 144 153 129 144 153 126 147 144 122 134 144 145 140 145 121 143 132 122 134 144
++122 134 144 122 134 144 111 119 127 121 143 132 111 119 127 121 143 132 111 119 127 119 117 138
++111 119 127 121 143 132 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127
++
++90 98 89 90 98 89 88 83 88 59 69 70 54 57 61 48 50 48 33 39 38 26 30 28
++15 22 17 15 17 7 17 12 17 14 16 17 23 18 22 26 30 28 31 35 35 36 35 37
++42 41 42 42 47 42 48 50 48 54 57 61 59 69 70 59 69 70 75 81 82 88 83 88
++77 90 100 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 95 91 100
++95 91 100 78 98 90 88 83 88 75 81 82 59 69 70 59 69 70 59 57 61 48 50 48
++42 41 42 36 35 37 22 25 24 17 12 17 6 15 6 13 4 7 7 12 13 15 17 7
++26 30 28 42 41 42 55 55 48 75 72 67 90 98 89 90 98 89 112 123 108 111 119 127
++138 126 108 145 140 145 146 151 137 148 160 159 146 162 145 150 144 154 138 126 108 111 119 127
++146 151 137 146 162 145 146 151 137 145 140 145 145 140 145 145 140 145 138 126 108 121 143 132
++111 119 127 138 126 108 111 119 127 121 143 132 138 126 108 111 119 127 112 123 108 111 119 127
++112 123 108 111 119 127 138 126 108 111 119 127 121 143 132 121 143 132 145 140 145 145 140 145
++146 151 137 146 162 145 150 144 154 146 162 145 148 160 159 146 151 137 166 156 164 146 151 137
++148 160 159 146 162 145 150 144 154 146 162 145 166 156 164 146 151 137 166 156 164 146 162 145
++148 160 159 146 151 137 146 151 137 146 151 137 145 140 145 145 140 145 121 143 132 145 140 145
++138 126 108 121 143 132 138 126 108 121 143 132 141 116 139 121 143 132 138 126 108 121 143 132
++145 140 145 146 151 137 145 140 145 146 162 145 150 144 154 146 162 145 148 160 159 146 162 145
++148 160 159 148 160 159 148 160 159 148 160 159 146 162 145 166 156 164 146 162 145 166 156 164
++166 180 164 166 156 164 150 171 159 166 156 164 148 160 159 166 156 164 148 160 159 150 144 154
++146 162 145 145 140 145 126 147 144 145 140 145 122 134 144 121 143 132 119 117 138 111 119 127
++111 119 127 111 119 127 94 105 108 95 95 116 77 90 100 61 78 101 61 78 101 46 59 71
++34 42 77 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77
++34 42 77 29 34 50 29 34 50 29 34 50 57 43 64 34 42 77 57 43 64 34 42 77
++63 59 71 63 59 71 75 64 82 88 69 84 88 69 84 95 91 100 112 96 108 112 96 108
++112 96 108 138 102 108 119 117 138 138 126 108 141 116 139 138 126 108 141 116 139 146 151 137
++145 140 145 145 140 145 150 144 154 168 146 127 150 144 154 166 156 164 168 146 127 150 144 154
++166 156 164 146 162 145 150 144 154 177 169 143 150 144 154 166 156 164 150 144 154 166 156 164
++168 146 127 150 144 154 150 144 154 166 156 164 150 144 154 166 156 164 168 146 127 166 156 164
++150 144 154 168 146 127 150 144 154 168 146 127 150 144 154 168 146 127 166 156 164 168 146 127
++166 156 164 150 144 154 168 146 127 150 144 154 166 156 164 163 117 123 166 156 164 150 144 154
++168 146 127 150 144 154 166 156 164 166 156 164 150 144 154 166 156 164 168 146 127 166 156 164
++168 146 127 166 156 164 150 144 154 166 156 164 168 146 127 166 156 164 168 146 127 166 156 164
++168 146 127 168 146 127 166 156 164 168 146 127 166 156 164 168 146 127 166 156 164 177 169 143
++166 156 164 117 99 86 51 49 42 23 18 22 7 10 17 7 12 13 13 4 7 7 12 13
++7 12 13 3 4 9 3 4 9 6 15 6 13 4 7 13 4 7 75 73 36 120 63 71
++117 112 45 120 63 71 117 112 45 117 114 76 138 126 108 138 126 108 138 126 108 168 102 88
++138 102 108 117 114 76 168 102 88 117 99 86 117 99 86 117 114 76 138 126 108 146 150 115
++168 102 88 138 126 108 138 126 108 117 99 86 120 63 71 88 73 62 76 46 20 60 49 42
++76 46 20 55 39 18 53 35 17 53 35 17 33 30 30 49 13 16 34 30 15 49 13 16
++34 30 15 34 30 15 34 30 15 52 30 15 53 35 17 34 30 15 34 30 15 26 12 13
++23 10 10 15 17 7 23 10 10 22 24 13 26 12 13 34 30 15 33 30 30 55 39 18
++75 73 36 88 73 62 88 73 62 101 83 74 75 63 62 65 63 61 54 57 61 57 43 64
++34 42 77 45 57 61 34 42 77 32 40 58 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 32 40 58 34 42 77 34 42 77
++34 42 77 42 60 86 42 60 86 61 78 101 77 91 115 61 78 101 77 91 115 77 91 115
++77 91 115 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 60 63 87
++61 78 101 42 60 86 60 81 83 61 78 101 60 63 87 60 81 83 60 81 83 77 90 100
++77 90 100 77 91 115 95 119 107 95 108 128 98 121 131 111 122 142 122 134 144 122 134 144
++129 144 153 129 144 153 148 160 159 131 144 168 148 160 159 148 160 159 148 160 159 166 174 181
++150 168 183 166 156 164 166 174 181 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159
++146 162 145 129 144 153 122 134 144 121 143 132 111 119 127 111 119 127 95 119 107 94 105 108
++77 90 100 77 90 100 75 81 90 60 81 83 60 81 83 77 90 100 77 90 100 94 105 108
++98 121 131 111 119 127 122 134 144 126 147 144 129 144 153 148 160 159 150 171 159 166 174 181
++166 174 181 146 162 145 94 105 108 64 70 48 42 47 42 47 47 21 47 47 21 53 35 17
++47 47 21 55 39 18 88 73 31 117 112 45 138 126 108 177 171 115 201 146 124 177 171 115
++201 146 124 168 146 127 177 169 143 201 146 124 177 169 143 197 171 123 177 169 143 197 171 123
++177 169 143 214 214 134 217 168 156 189 165 168 217 168 156 208 215 180 217 168 156 208 215 180
++217 168 156 217 168 156 208 215 180 217 168 156 208 215 180 222 171 182 214 214 134 217 168 156
++208 215 180 217 168 156 225 222 201 214 214 134 222 171 182 208 215 180 222 171 182 214 214 134
++217 168 156 208 215 180 217 168 156 189 165 168 214 214 134 217 168 156 177 169 143 168 146 127
++146 151 137 145 140 145 129 144 153 129 144 153 148 160 159 148 160 159 131 144 168 129 144 153
++148 160 159 131 144 168 148 160 159 148 160 159 150 147 171 148 160 159 148 160 159 148 160 159
++150 168 183 150 171 159 150 168 183 150 171 159 166 156 164 150 168 183 166 180 164 166 174 181
++150 168 183 166 180 164 166 174 181 166 174 181 166 176 200 166 180 164 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 150 168 183 166 156 164 150 168 183 150 168 183 150 168 183
++148 160 159 148 160 159 129 144 153 131 144 168 122 134 144 122 134 144 111 122 142 98 121 131
++95 108 128 95 108 128 77 91 115 77 91 115 77 91 115 61 78 101 61 78 101 61 78 101
++61 78 101 77 91 115 77 91 115 77 91 115 95 108 128 98 121 131 111 122 142 111 122 142
++122 134 144 129 144 153 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 150 168 183
++150 171 159 150 168 183 166 180 164 150 168 183 166 174 181 166 174 181 150 168 183 166 180 164
++166 174 181 166 174 181 166 174 181 150 171 159 166 174 181 150 168 183 150 171 159 148 160 159
++150 168 183 148 160 159 148 160 159 131 144 168 148 160 159 129 144 153 129 144 153 129 144 153
++122 134 144 122 134 144 122 134 144 121 143 132 111 122 142 111 119 127 95 108 128 95 108 128
++95 108 128 77 91 115 77 91 115 77 91 115 77 91 115 61 78 101 61 78 101 42 60 86
++61 78 101 42 60 86 60 63 87 42 60 86 42 60 86 42 60 86 34 42 77 42 60 86
++42 60 86 42 60 86 42 60 86 60 63 87 61 78 101 61 78 101 61 78 101 77 90 100
++77 91 115 77 91 115 94 105 108 95 108 128 111 119 127 111 119 127 122 134 144 122 134 144
++126 147 144 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159
++150 171 159 166 156 164 166 174 181 150 168 183 150 171 159 166 174 181 166 180 164 150 168 183
++166 174 181 150 168 183 166 174 181 150 168 183 166 156 164 150 168 183 148 160 159 148 160 159
++148 160 159 148 160 159 129 144 153 146 162 145 129 144 153 129 144 153 126 147 144 122 134 144
++121 143 132 111 122 142 98 121 131 98 121 131 95 108 128 94 105 108 95 108 128 94 105 108
++77 91 115 77 90 100 77 90 100 75 81 90 61 78 101 60 81 83 60 63 87 60 63 87
++46 59 71 42 60 86 46 59 71 42 60 86 60 63 87 60 63 87 61 78 101 77 90 100
++77 91 115 95 95 116 95 108 128 111 119 127 111 122 142 111 122 142 122 134 144 129 144 153
++129 144 153 129 144 153 131 144 168 148 160 159 150 147 171 148 160 159 150 168 183 148 160 159
++150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 150 147 171 131 144 168
++148 160 159 145 140 145 129 144 153 129 144 153 126 147 144 122 134 144 121 143 132 122 134 144
++121 143 132 122 134 144 111 122 142 111 119 127 121 143 132 111 122 142 122 134 144 122 134 144
++145 140 145 122 134 144 126 147 144 145 140 145 129 144 153 150 144 154 129 144 153 129 144 153
++148 160 159 131 144 168 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159
++129 144 153 126 147 144 122 134 144 122 134 144 121 143 132 111 119 127 98 121 131 95 108 128
++95 95 116 77 91 115 77 90 100 60 63 87 60 63 87 46 59 71 46 59 71 32 40 58
++32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58
++32 40 58 32 40 58 57 43 64 42 60 86 60 63 87 61 78 101 77 90 100 77 91 115
++94 105 108 111 119 127 111 119 127 111 119 127 122 134 144 126 147 144 126 147 144 145 140 145
++129 144 153 129 144 153 148 160 159 148 160 159 150 144 154 148 160 159 148 160 159 148 160 159
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 148 160 159 150 144 154
++129 144 153 145 140 145 126 147 144 145 140 145 121 143 132 122 134 144 121 143 132 119 117 138
++121 143 132 111 119 127 122 134 144 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127
++111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 98 121 131 95 119 107 95 108 128
++
++90 98 89 88 83 88 75 81 82 75 72 67 45 57 61 42 47 42 36 35 37 22 25 24
++23 20 24 14 16 17 14 16 17 23 18 22 26 30 28 33 30 32 36 35 37 42 41 42
++42 47 42 48 50 48 54 57 61 53 63 61 59 69 70 75 81 76 75 81 82 77 90 100
++95 91 100 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108
++94 105 108 95 91 100 78 98 90 88 83 88 75 81 76 59 69 70 65 63 61 54 57 61
++48 50 48 42 41 42 33 30 30 23 18 22 14 16 17 6 15 6 13 4 7 15 17 7
++23 18 22 33 30 30 47 49 42 59 55 55 75 81 69 99 93 84 112 96 108 112 123 108
++121 143 132 145 140 145 146 151 137 145 140 145 146 162 145 166 156 164 146 151 137 138 126 108
++146 151 137 148 160 159 146 151 137 146 151 137 121 143 132 121 143 132 141 116 139 117 142 111
++141 116 139 117 142 111 119 117 138 138 126 108 111 119 127 138 126 108 111 119 127 112 123 108
++111 119 127 138 126 108 111 119 127 121 143 132 138 126 108 122 134 144 146 151 137 121 143 132
++150 144 154 146 162 145 146 162 145 150 144 154 150 144 154 146 162 145 146 162 145 150 144 154
++146 162 145 166 156 164 146 162 145 148 160 159 146 151 137 146 162 145 150 144 154 146 162 145
++150 144 154 146 162 145 150 144 154 146 151 137 121 143 132 146 151 137 121 143 132 145 140 145
++121 143 132 121 143 132 141 116 139 121 143 132 138 126 108 121 143 132 145 140 145 121 143 132
++145 140 145 146 151 137 146 151 137 148 160 159 146 162 145 150 144 154 166 156 164 146 151 137
++166 156 164 146 162 145 166 156 164 146 162 145 166 156 164 146 162 145 166 156 164 150 171 159
++166 156 164 150 171 159 166 156 164 150 171 159 166 156 164 146 162 145 148 160 159 148 160 159
++145 140 145 129 144 153 145 140 145 121 143 132 122 134 144 141 116 139 111 119 127 111 119 127
++111 119 127 95 108 128 95 108 128 95 95 116 77 90 100 75 81 90 60 63 87 42 60 86
++34 42 77 32 40 58 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 24 30 43
++34 42 77 29 34 50 34 42 77 29 34 50 29 34 50 57 43 64 34 42 77 57 43 64
++57 43 64 63 59 71 75 64 82 88 69 84 88 83 88 95 91 100 112 96 108 112 96 108
++112 123 108 138 102 108 111 119 127 138 126 108 141 116 139 138 126 108 145 140 145 146 150 115
++145 140 145 168 146 127 145 140 145 150 144 154 146 162 145 168 146 127 166 156 164 150 144 154
++177 169 143 150 144 154 166 156 164 146 151 137 166 156 164 168 146 127 166 156 164 146 151 137
++166 156 164 166 156 164 168 146 127 166 156 164 168 146 127 166 156 164 150 144 154 168 146 127
++150 144 154 150 144 154 168 146 127 150 144 154 150 144 154 150 144 154 168 146 127 150 144 154
++168 146 127 150 144 154 166 156 164 168 146 127 150 144 154 166 156 164 168 146 127 150 144 154
++166 156 164 168 146 127 150 144 154 168 146 127 166 156 164 168 146 127 150 144 154 168 146 127
++166 156 164 168 146 127 166 156 164 168 146 127 150 144 154 146 151 137 168 146 127 150 144 154
++168 146 127 150 144 154 168 146 127 166 156 164 168 146 127 168 146 127 166 156 164 168 146 127
++138 126 108 63 55 51 26 12 13 15 17 7 17 12 17 3 4 9 3 4 9 7 12 13
++13 4 7 3 4 9 13 4 7 3 3 1 13 4 7 15 17 7 75 56 53 117 99 86
++117 99 86 120 63 71 117 114 76 168 102 88 168 102 88 138 126 108 168 102 88 117 114 76
++117 114 76 117 99 86 117 99 86 117 99 86 117 99 86 168 102 88 138 102 108 168 102 88
++117 127 86 138 102 108 117 99 86 120 63 71 88 73 31 76 46 20 76 46 20 59 36 42
++55 39 18 52 30 35 53 35 17 52 30 35 34 30 15 34 30 15 34 30 15 34 30 15
++49 13 16 28 13 18 34 30 15 34 30 15 34 30 15 34 30 15 26 12 13 23 10 10
++15 17 7 15 17 7 15 17 7 23 10 10 34 30 15 34 30 15 52 30 15 55 39 37
++75 56 53 101 83 74 101 83 74 88 73 62 88 66 70 65 63 61 59 57 61 46 59 71
++57 43 64 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++42 60 86 42 60 86 60 63 87 61 78 101 61 78 101 77 91 115 77 91 115 77 91 115
++61 78 101 77 91 115 61 78 101 77 91 115 61 78 101 61 78 101 60 63 87 61 78 101
++42 60 86 60 81 83 61 78 101 60 63 87 60 81 83 61 78 101 61 78 101 61 78 101
++77 90 100 77 91 115 95 119 107 95 108 128 98 121 131 111 119 127 122 134 144 122 134 144
++122 134 144 129 144 153 148 160 159 148 160 159 148 160 159 150 168 183 166 156 164 150 168 183
++150 171 159 166 174 181 148 160 159 150 168 183 148 160 159 148 160 159 148 160 159 129 144 153
++129 144 153 126 147 144 122 134 144 122 134 144 111 119 127 111 119 127 95 119 107 77 91 115
++77 90 100 60 81 83 60 81 83 60 81 83 60 81 83 77 90 100 78 98 90 95 119 107
++111 119 127 111 119 127 121 143 132 122 134 144 145 140 145 148 160 159 148 160 159 166 174 181
++166 174 181 166 174 181 166 180 164 121 143 132 88 83 74 50 61 48 63 55 45 60 49 42
++47 47 21 47 47 21 76 46 20 75 56 53 117 112 45 138 126 108 168 146 127 197 171 123
++197 171 123 168 146 127 201 146 124 177 169 143 197 171 123 177 169 143 197 171 123 177 169 143
++217 168 156 189 165 168 189 165 168 214 214 134 189 165 168 217 168 156 208 215 180 217 168 156
++208 215 180 217 168 156 208 215 180 217 168 156 208 215 180 217 168 156 208 215 180 222 171 182
++214 214 134 222 171 182 208 215 180 222 171 182 208 215 180 217 168 156 208 215 180 217 168 156
++217 168 156 177 169 143 217 168 156 217 168 156 177 169 143 189 165 168 177 169 143 150 144 154
++146 151 137 145 140 145 148 160 159 129 144 153 148 160 159 131 144 168 148 160 159 148 160 159
++131 144 168 148 160 159 150 147 171 148 160 159 150 147 171 148 160 159 150 168 183 150 147 171
++150 171 159 166 156 164 150 168 183 166 174 181 150 168 183 166 180 164 150 168 183 166 174 181
++166 174 181 166 174 181 166 174 181 166 174 181 166 180 164 166 174 181 166 174 181 166 174 181
++166 174 181 166 180 164 150 168 183 166 174 181 150 168 183 150 171 159 150 147 171 148 160 159
++131 144 168 148 160 159 131 144 168 129 144 153 129 144 153 111 122 142 111 122 142 98 121 131
++95 108 128 95 108 128 77 91 115 77 91 115 61 78 101 61 78 101 61 78 101 61 78 101
++61 78 101 77 91 115 77 91 115 95 108 128 95 108 128 98 121 131 111 119 127 111 122 142
++122 134 144 122 134 144 129 144 153 129 144 153 148 160 159 148 160 159 150 147 171 148 160 159
++166 174 181 166 156 164 166 174 181 150 171 159 166 174 181 166 174 181 166 180 164 166 174 181
++150 168 183 166 180 164 166 174 181 166 174 181 150 171 159 166 156 164 150 168 183 148 160 159
++148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 148 160 159 129 144 153 129 144 153
++122 134 144 122 134 144 111 122 142 111 122 142 98 121 131 111 119 127 98 121 131 95 108 128
++77 91 115 94 105 108 77 91 115 77 90 100 61 78 101 61 78 101 61 78 101 61 78 101
++42 60 86 42 60 86 42 60 86 46 59 71 34 42 77 34 42 77 46 59 71 34 42 77
++34 42 77 42 60 86 60 63 87 42 60 86 60 63 87 60 63 87 61 78 101 61 78 101
++77 91 115 77 91 115 94 105 108 95 108 128 98 121 131 111 122 142 121 143 132 122 134 144
++122 134 144 126 147 144 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 150 168 183
++148 160 159 150 168 183 150 171 159 166 174 181 166 180 164 150 168 183 166 174 181 150 171 159
++166 174 181 150 171 159 150 168 183 166 156 164 150 171 159 148 160 159 150 168 183 148 160 159
++131 144 168 129 144 153 129 144 153 129 144 153 129 144 153 126 147 144 122 134 144 122 134 144
++98 121 131 98 121 131 111 119 127 95 108 128 94 105 108 77 91 115 77 91 115 77 91 115
++77 90 100 77 90 100 61 78 101 60 81 83 60 63 87 42 60 86 42 60 86 46 59 71
++42 60 86 46 59 71 34 42 77 60 63 87 42 60 86 61 78 101 61 78 101 77 90 100
++95 95 116 95 108 128 98 121 131 111 119 127 111 122 142 122 134 144 122 134 144 129 144 153
++129 144 153 150 144 154 148 160 159 148 160 159 148 160 159 150 168 183 148 160 159 148 160 159
++166 156 164 148 160 159 150 147 171 148 160 159 150 147 171 148 160 159 131 144 168 146 162 145
++129 144 153 129 144 153 129 144 153 122 134 144 122 134 144 122 134 144 122 134 144 111 119 127
++122 134 144 111 119 127 122 134 144 111 122 142 111 119 127 121 143 132 119 117 138 121 143 132
++122 134 144 126 147 144 129 144 153 129 144 153 129 144 153 129 144 153 148 160 159 150 144 154
++129 144 153 148 160 159 148 160 159 150 147 171 148 160 159 131 144 168 148 160 159 129 144 153
++150 144 154 129 144 153 129 144 153 122 134 144 122 134 144 98 121 131 111 119 127 95 108 128
++94 105 108 77 91 115 77 90 100 61 78 101 60 63 87 46 59 71 46 59 71 32 40 58
++32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 29 34 50
++32 40 58 32 40 58 46 59 71 46 59 71 60 63 87 77 90 100 77 90 100 94 105 108
++95 108 128 98 121 131 111 119 127 122 134 144 121 143 132 122 134 144 129 144 153 129 144 153
++146 162 145 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 148 160 159 131 144 168
++148 160 159 150 144 154 148 160 159 129 144 153 150 144 154 146 162 145 129 144 153 129 144 153
++129 144 153 126 147 144 122 134 144 122 134 144 122 134 144 122 134 144 119 117 138 111 119 127
++111 119 127 111 119 127 111 119 127 111 119 127 98 121 131 111 119 127 98 121 131 111 119 127
++98 121 131 95 108 128 111 119 127 95 108 128 95 119 107 95 108 128 94 105 108 94 105 108
++
++78 98 90 88 83 88 75 81 76 59 69 70 52 55 48 42 47 42 33 30 32 22 25 24
++23 18 22 14 16 17 14 16 17 22 25 24 33 30 30 36 35 37 31 35 35 42 41 42
++42 47 42 48 50 48 53 63 61 65 63 61 59 69 70 75 81 76 88 83 88 90 98 89
++94 105 108 94 105 108 94 105 108 111 119 127 112 123 108 111 119 127 111 119 127 112 123 108
++94 105 108 94 105 108 95 91 100 88 83 88 75 81 90 75 81 76 59 69 70 65 63 61
++54 57 61 48 50 48 36 35 37 26 30 28 22 24 13 17 12 17 7 12 13 17 12 17
++17 12 17 26 30 28 42 41 42 52 55 48 75 72 67 75 81 76 112 96 108 112 123 108
++111 119 127 138 126 108 145 140 145 146 151 137 150 144 154 146 151 137 145 140 145 126 147 144
++146 151 137 150 144 154 145 140 145 146 151 137 145 140 145 145 140 145 138 126 108 121 143 132
++138 126 108 111 119 127 138 126 108 111 119 127 117 142 111 111 119 127 138 126 108 111 119 127
++112 123 108 111 119 127 111 119 127 111 119 127 121 143 132 141 116 139 121 143 132 146 151 137
++145 140 145 146 162 145 150 144 154 146 162 145 166 156 164 146 162 145 166 156 164 146 162 145
++150 144 154 146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 150 144 154 146 162 145
++150 144 154 146 162 145 146 151 137 145 140 145 146 151 137 145 140 145 146 151 137 121 143 132
++141 116 139 146 150 115 121 143 132 121 143 132 145 140 145 121 143 132 145 140 145 121 143 132
++145 140 145 126 147 144 145 140 145 150 144 154 148 160 159 150 144 154 146 162 145 148 160 159
++146 162 145 150 144 154 146 162 145 146 162 145 146 162 145 166 156 164 146 162 145 166 156 164
++177 169 143 166 156 164 150 171 159 177 169 143 148 160 159 150 171 159 150 144 154 148 160 159
++145 140 145 146 151 137 145 140 145 145 140 145 122 134 144 121 143 132 121 143 132 111 119 127
++111 119 127 111 119 127 94 105 108 95 95 116 95 95 116 61 78 101 61 78 101 46 59 71
++34 42 77 32 40 58 34 42 77 34 42 77 12 18 30 34 42 77 24 30 43 34 42 77
++24 30 43 34 42 77 29 34 50 29 34 50 34 42 77 32 40 58 57 43 64 57 43 64
++63 59 71 75 64 82 75 64 82 88 69 84 88 69 84 88 83 88 112 96 108 112 96 108
++112 96 108 111 119 127 138 102 108 138 126 108 141 116 139 138 126 108 145 140 145 163 117 123
++141 116 139 168 146 127 150 144 154 168 146 127 150 144 154 150 144 154 146 151 137 166 156 164
++146 151 137 166 156 164 146 151 137 166 156 164 150 144 154 166 156 164 150 144 154 166 156 164
++168 146 127 150 144 154 166 156 164 150 144 154 166 156 164 168 146 127 150 144 154 166 156 164
++168 146 127 150 144 154 150 144 154 168 146 127 150 144 154 168 146 127 150 144 154 150 144 154
++150 144 154 168 146 127 150 144 154 168 146 127 150 144 154 168 146 127 166 156 164 168 146 127
++150 144 154 168 146 127 150 144 154 166 156 164 168 146 127 166 156 164 166 156 164 166 156 164
++150 144 154 168 146 127 166 156 164 168 146 127 166 156 164 168 146 127 166 156 164 168 146 127
++166 156 164 168 146 127 177 169 143 150 144 154 168 146 127 166 156 164 177 169 143 145 140 145
++75 72 67 26 25 15 15 17 7 13 4 7 14 16 17 3 4 9 13 4 7 13 4 7
++3 4 9 6 15 6 13 4 7 3 3 1 13 4 7 23 10 10 63 55 45 117 114 76
++120 63 71 117 112 45 168 102 88 117 114 76 138 126 108 168 102 88 138 126 108 117 99 86
++117 99 86 117 99 86 120 63 71 117 112 45 117 99 86 117 99 86 117 114 76 117 99 86
++117 99 86 120 63 71 117 112 45 88 73 62 88 44 51 60 49 42 55 39 37 76 46 20
++55 39 37 55 39 18 53 35 17 52 30 15 49 13 16 34 30 15 49 13 16 34 30 15
++26 12 13 34 30 15 26 12 13 34 30 15 34 30 15 26 12 13 26 25 15 15 17 7
++23 10 10 15 17 7 23 10 10 22 24 13 26 12 13 34 30 15 34 30 15 60 49 42
++75 73 58 101 83 74 101 83 74 88 83 74 75 72 67 63 59 71 63 59 71 54 57 61
++34 42 77 46 59 71 34 42 77 32 40 58 34 42 77 32 40 58 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++42 60 86 42 60 86 61 78 101 61 78 101 77 91 115 77 91 115 77 91 115 77 91 115
++77 91 115 77 91 115 61 78 101 77 91 115 61 78 101 61 78 101 61 78 101 61 78 101
++60 63 87 61 78 101 60 63 87 60 81 83 61 78 101 61 78 101 61 78 101 77 90 100
++77 91 115 94 105 108 77 91 115 95 108 128 98 121 131 111 122 142 111 122 142 122 134 144
++126 147 144 129 144 153 129 144 153 150 147 171 148 160 159 148 160 159 150 168 183 166 180 164
++150 168 183 166 156 164 166 174 181 148 160 159 150 168 183 148 160 159 129 144 153 148 160 159
++129 144 153 126 147 144 122 134 144 121 143 132 111 119 127 98 121 131 94 105 108 77 90 100
++77 90 100 60 81 83 60 81 83 60 81 83 60 81 83 77 90 100 77 91 115 94 105 108
++98 121 131 111 119 127 122 134 144 126 147 144 129 144 153 148 160 159 148 160 159 148 160 159
++166 180 164 185 202 202 166 174 181 166 174 181 145 140 145 98 113 84 75 77 62 64 70 48
++75 73 36 63 55 45 75 73 36 75 73 36 120 63 71 117 114 76 168 146 127 168 146 127
++201 146 124 177 169 143 197 171 123 177 169 143 201 146 124 197 171 123 177 169 143 217 168 156
++197 171 123 177 169 143 217 168 156 177 169 143 208 215 180 217 168 156 217 168 156 208 215 180
++217 168 156 208 215 180 217 168 156 222 171 182 217 168 156 222 171 182 217 168 156 208 215 180
++222 171 182 208 215 180 217 168 156 208 215 180 222 171 182 208 215 180 217 168 156 217 168 156
++197 171 123 177 169 143 217 168 156 177 169 143 217 168 156 177 169 143 177 169 143 166 156 164
++146 151 137 145 140 145 129 144 153 129 144 153 148 160 159 129 144 153 148 160 159 131 144 168
++148 160 159 131 144 168 148 160 159 131 144 168 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 150 168 183 166 156 164 150 171 159 150 168 183 166 156 164 150 168 183 166 180 164
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 150 171 159 166 174 181 150 168 183 148 160 159 150 168 183
++148 160 159 148 160 159 129 144 153 129 144 153 122 134 144 122 134 144 111 122 142 111 122 142
++95 108 128 95 108 128 77 91 115 77 91 115 61 78 101 77 91 115 61 78 101 61 78 101
++61 78 101 77 91 115 77 91 115 77 91 115 95 108 128 98 121 131 98 121 131 111 122 142
++122 134 144 122 134 144 129 144 153 150 144 154 129 144 153 148 160 159 148 160 159 148 160 159
++150 171 159 150 168 183 150 171 159 166 174 181 166 174 181 166 174 181 150 168 183 166 180 164
++166 174 181 166 174 181 150 171 159 166 174 181 150 168 183 150 171 159 150 168 183 150 171 159
++150 147 171 148 160 159 131 144 168 148 160 159 129 144 153 129 144 153 129 144 153 126 147 144
++122 134 144 111 122 142 121 143 132 111 122 142 111 119 127 98 121 131 95 108 128 95 108 128
++94 105 108 77 91 115 77 91 115 77 91 115 77 91 115 61 78 101 61 78 101 42 60 86
++42 60 86 46 59 71 34 42 77 42 60 86 34 42 77 46 59 71 34 42 77 34 42 77
++42 60 86 46 59 71 42 60 86 42 60 86 60 63 87 60 63 87 61 78 101 61 78 101
++77 90 100 77 91 115 94 105 108 95 108 128 111 119 127 111 119 127 111 122 142 122 134 144
++122 134 144 126 147 144 129 144 153 148 160 159 129 144 153 148 160 159 148 160 159 148 160 159
++166 174 181 166 156 164 150 171 159 150 168 183 150 171 159 166 174 181 150 171 159 166 174 181
++150 168 183 166 174 181 148 160 159 150 168 183 148 160 159 150 147 171 148 160 159 148 160 159
++129 144 153 146 162 145 129 144 153 129 144 153 122 134 144 121 143 132 111 122 142 111 122 142
++111 119 127 98 121 131 95 108 128 95 108 128 77 91 115 94 105 108 77 91 115 77 90 100
++61 78 101 61 78 101 61 78 101 60 63 87 42 60 86 60 63 87 46 59 71 46 59 71
++34 42 77 46 59 71 42 60 86 46 59 71 60 63 87 61 78 101 77 90 100 77 91 115
++77 91 115 95 108 128 98 121 131 111 119 127 122 134 144 122 134 144 129 144 153 145 140 145
++129 144 153 129 144 153 148 160 159 148 160 159 150 168 183 148 160 159 148 160 159 150 168 183
++148 160 159 150 168 183 148 160 159 148 160 159 148 160 159 129 144 153 148 160 159 150 144 154
++129 144 153 129 144 153 145 140 145 126 147 144 122 134 144 122 134 144 122 134 144 121 143 132
++111 122 142 121 143 132 111 119 127 111 119 127 122 134 144 111 119 127 122 134 144 122 134 144
++122 134 144 122 134 144 122 134 144 145 140 145 129 144 153 150 144 154 129 144 153 129 144 153
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153
++148 160 159 129 144 153 126 147 144 122 134 144 122 134 144 111 119 127 98 121 131 95 108 128
++95 108 128 77 91 115 77 90 100 75 81 90 60 63 87 42 60 86 46 59 71 34 42 77
++32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58
++32 40 58 32 40 58 46 59 71 60 63 87 60 63 87 77 90 100 77 90 100 94 105 108
++94 105 108 111 119 127 111 119 127 122 134 144 122 134 144 126 147 144 126 147 144 126 147 144
++150 144 154 129 144 153 148 160 159 129 144 153 148 160 159 148 160 159 150 144 154 148 160 159
++148 160 159 129 144 153 148 160 159 148 160 159 148 160 159 129 144 153 148 160 159 145 140 145
++129 144 153 145 140 145 126 147 144 122 134 144 121 143 132 119 117 138 121 143 132 111 119 127
++111 119 127 98 121 131 111 119 127 95 119 107 95 108 128 95 108 128 95 119 107 95 108 128
++94 105 108 94 105 108 94 105 108 95 108 128 94 105 108 94 105 108 95 95 116 94 105 108
++
++88 83 88 75 81 82 75 81 76 65 63 61 48 50 48 33 39 38 33 30 30 22 25 24
++23 18 22 23 18 22 23 18 22 23 20 24 33 30 30 33 39 38 42 41 42 42 47 42
++48 50 48 50 61 48 65 63 61 59 69 70 75 81 69 75 81 82 90 98 89 90 98 89
++94 105 108 112 123 108 112 123 108 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127
++111 119 127 94 105 108 94 105 108 95 91 100 90 98 89 75 81 82 75 72 67 59 69 70
++59 57 61 54 57 61 43 42 50 33 30 36 23 20 24 14 16 17 15 17 7 17 12 17
++17 12 17 23 20 24 33 30 30 42 47 42 63 55 51 75 81 69 90 98 89 112 123 108
++112 123 108 121 143 132 145 140 145 146 151 137 146 151 137 150 144 154 146 162 145 146 151 137
++145 140 145 146 151 137 146 151 137 145 140 145 121 143 132 121 143 132 141 116 139 121 143 132
++111 119 127 138 126 108 111 119 127 121 143 132 111 119 127 138 126 108 111 119 127 111 119 127
++138 126 108 111 119 127 117 142 111 141 116 139 121 143 132 146 150 115 145 140 145 145 140 145
++146 151 137 150 144 154 146 162 145 146 162 145 150 144 154 146 162 145 150 144 154 146 162 145
++166 156 164 146 151 137 146 162 145 150 144 154 146 151 137 146 162 145 150 144 154 146 162 145
++150 144 154 146 162 145 150 144 154 146 151 137 146 151 137 145 140 145 146 151 137 145 140 145
++121 143 132 145 140 145 121 143 132 145 140 145 138 126 108 126 147 144 138 126 108 145 140 145
++145 140 145 145 140 145 146 162 145 150 144 154 146 162 145 148 160 159 150 144 154 146 162 145
++166 156 164 146 162 145 166 156 164 146 162 145 166 156 164 146 162 145 166 156 164 150 171 159
++166 156 164 150 171 159 166 156 164 146 162 145 166 156 164 146 162 145 148 160 159 150 144 154
++146 162 145 129 144 153 145 140 145 121 143 132 141 116 139 121 143 132 111 119 127 111 119 127
++112 123 108 95 95 116 95 95 116 94 105 108 77 91 115 75 81 90 60 63 87 42 60 86
++34 42 77 32 40 58 32 40 58 29 34 50 34 42 77 24 30 43 34 42 77 12 18 30
++34 42 77 24 30 43 34 42 77 29 34 50 34 42 77 29 34 50 57 43 64 57 43 64
++63 59 71 75 64 82 75 64 82 88 69 84 95 91 100 88 69 84 112 96 108 112 96 108
++112 96 108 138 102 108 111 119 127 138 102 108 138 126 108 141 116 139 138 126 108 145 140 145
++145 140 145 145 140 145 168 146 127 150 144 154 168 146 127 166 156 164 150 144 154 177 169 143
++150 144 154 150 144 154 177 169 143 150 144 154 177 169 143 150 144 154 146 162 145 166 156 164
++146 151 137 166 156 164 168 146 127 150 144 154 166 156 164 150 144 154 168 146 127 150 144 154
++150 144 154 168 146 127 150 144 154 150 144 154 168 146 127 150 144 154 168 146 127 150 144 154
++168 146 127 166 156 164 150 144 154 150 144 154 168 146 127 150 144 154 150 144 154 166 156 164
++168 146 127 166 156 164 146 151 137 166 156 164 150 144 154 177 169 143 146 151 137 177 169 143
++150 144 154 177 169 143 150 144 154 166 156 164 168 146 127 166 156 164 168 146 127 150 144 154
++168 146 127 150 144 154 168 146 127 166 156 164 168 146 127 189 165 168 145 140 145 101 83 74
++33 30 30 3 3 1 17 12 17 14 16 17 14 16 17 3 4 9 6 15 6 6 15 6
++3 3 1 3 3 1 13 4 7 3 3 1 3 3 1 15 17 7 75 56 53 117 99 86
++117 112 45 117 99 86 117 99 86 168 102 88 117 114 76 117 114 76 117 99 86 117 99 86
++120 63 71 117 112 45 117 99 86 117 99 86 117 99 86 168 102 88 117 99 86 117 99 86
++120 63 71 88 73 31 75 56 53 76 46 20 76 46 20 55 39 37 55 39 18 55 39 37
++55 39 37 55 39 18 52 30 35 52 30 15 34 30 15 26 25 15 26 25 15 26 25 15
++26 12 13 26 12 13 23 10 10 22 24 13 26 12 13 26 25 15 23 10 10 15 17 7
++15 17 7 23 10 10 15 17 7 23 10 10 34 30 15 26 12 13 55 39 18 75 56 53
++101 83 74 99 93 84 99 93 84 88 83 74 75 64 82 63 59 71 63 59 71 57 43 64
++46 59 71 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 42 60 86
++42 60 86 42 60 86 61 78 101 61 78 101 77 91 115 77 91 115 77 91 115 95 108 128
++77 91 115 77 91 115 77 91 115 77 91 115 77 91 115 61 78 101 61 78 101 61 78 101
++61 78 101 60 63 87 61 78 101 61 78 101 60 81 83 61 78 101 75 81 90 77 90 100
++77 91 115 77 91 115 98 121 131 95 108 128 98 121 131 111 119 127 122 134 144 122 134 144
++122 134 144 129 144 153 148 160 159 148 160 159 148 160 159 150 168 183 150 171 159 150 168 183
++166 156 164 150 168 183 150 171 159 166 156 164 148 160 159 148 160 159 148 160 159 129 144 153
++150 144 154 126 147 144 122 134 144 111 119 127 111 119 127 98 121 131 94 105 108 78 98 90
++75 81 90 60 81 83 60 63 87 60 81 83 61 78 101 77 90 100 94 105 108 94 105 108
++111 119 127 121 143 132 121 143 132 126 147 144 148 160 159 148 160 159 148 160 159 150 168 183
++166 174 181 150 171 159 166 174 181 185 202 202 166 180 164 148 160 159 112 123 108 101 83 74
++88 73 62 75 73 58 75 73 36 88 73 31 88 73 62 117 112 45 168 102 88 146 150 115
++197 171 123 177 169 143 197 171 123 177 169 143 177 169 143 177 169 143 197 171 123 177 169 143
++177 169 143 217 168 156 177 169 143 208 215 180 217 168 156 208 215 180 208 215 180 222 171 182
++208 215 180 208 215 180 222 171 182 208 215 180 208 215 180 208 215 180 222 171 182 208 215 180
++217 168 156 208 215 180 222 171 182 214 214 134 222 171 182 214 214 134 222 171 182 214 214 134
++177 169 143 197 171 123 217 168 156 177 169 143 217 168 156 177 169 143 177 169 143 146 151 137
++150 144 154 129 144 153 148 160 159 148 160 159 131 144 168 148 160 159 131 144 168 148 160 159
++148 160 159 131 144 168 148 160 159 148 160 159 131 144 168 148 160 159 150 147 171 148 160 159
++150 168 183 148 160 159 150 168 183 150 168 183 166 180 164 150 168 183 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 185 202 202 166 180 164 166 174 181 166 180 164 166 174 181
++150 168 183 166 174 181 150 168 183 166 174 181 150 168 183 150 171 159 150 168 183 148 160 159
++131 144 168 131 144 168 129 144 153 129 144 153 122 134 144 122 134 144 111 122 142 98 121 131
++95 108 128 77 91 115 77 91 115 77 91 115 61 78 101 61 78 101 61 78 101 61 78 101
++77 91 115 77 91 115 77 91 115 95 108 128 95 108 128 98 121 131 98 121 131 111 122 142
++122 134 144 122 134 144 129 144 153 129 144 153 148 160 159 150 144 154 148 160 159 150 147 171
++166 180 164 166 156 164 150 168 183 150 171 159 166 174 181 166 180 164 166 174 181 150 168 183
++166 180 164 150 168 183 166 174 181 150 171 159 150 168 183 150 171 159 148 160 159 150 168 183
++148 160 159 150 168 183 148 160 159 129 144 153 148 160 159 129 144 153 129 144 153 129 144 153
++122 134 144 122 134 144 111 122 142 111 119 127 111 119 127 98 121 131 95 108 128 95 108 128
++77 91 115 77 91 115 77 91 115 61 78 101 61 78 101 61 78 101 60 63 87 42 60 86
++46 59 71 42 60 86 46 59 71 34 42 77 34 42 77 34 42 77 34 42 77 46 59 71
++34 42 77 42 60 86 60 63 87 42 60 86 60 63 87 42 60 86 61 78 101 61 78 101
++61 78 101 77 91 115 77 91 115 95 108 128 98 121 131 111 122 142 111 122 142 121 143 132
++122 134 144 126 147 144 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159
++150 171 159 150 168 183 166 180 164 150 168 183 166 180 164 150 168 183 150 168 183 166 180 164
++150 171 159 150 168 183 150 171 159 148 160 159 148 160 159 148 160 159 148 160 159 131 144 168
++148 160 159 129 144 153 129 144 153 126 147 144 122 134 144 122 134 144 111 119 127 111 119 127
++98 121 131 94 105 108 94 105 108 77 91 115 77 90 100 77 90 100 61 78 101 77 90 100
++61 78 101 60 63 87 60 63 87 42 60 86 60 63 87 46 59 71 42 60 86 46 59 71
++34 42 77 46 59 71 42 60 86 60 63 87 60 63 87 61 78 101 77 90 100 77 91 115
++95 108 128 95 108 128 111 119 127 111 119 127 122 134 144 126 147 144 145 140 145 129 144 153
++148 160 159 148 160 159 148 160 159 150 147 171 148 160 159 150 168 183 166 156 164 150 168 183
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 129 144 153
++145 140 145 129 144 153 126 147 144 129 144 153 122 134 144 122 134 144 122 134 144 111 119 127
++111 122 142 111 119 127 111 122 142 121 143 132 111 119 127 122 134 144 111 119 127 122 134 144
++122 134 144 126 147 144 145 140 145 129 144 153 129 144 153 129 144 153 148 160 159 129 144 153
++148 160 159 131 144 168 148 160 159 150 147 171 148 160 159 148 160 159 148 160 159 148 160 159
++129 144 153 129 144 153 126 147 144 122 134 144 122 134 144 121 143 132 111 119 127 95 108 128
++94 105 108 77 91 115 77 90 100 61 78 101 60 63 87 46 59 71 46 59 71 32 40 58
++32 40 58 32 40 58 32 40 58 29 34 50 32 40 58 29 34 50 32 40 58 32 40 58
++32 40 58 34 42 77 46 59 71 60 63 87 60 63 87 77 90 100 77 90 100 94 105 108
++95 108 128 98 121 131 111 119 127 121 143 132 122 134 144 126 147 144 145 140 145 129 144 153
++146 162 145 150 144 154 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 150 144 154
++148 160 159 148 160 159 148 160 159 129 144 153 148 160 159 129 144 153 146 162 145 129 144 153
++126 147 144 122 134 144 122 134 144 122 134 144 119 117 138 121 143 132 111 119 127 111 119 127
++111 119 127 95 108 128 95 119 107 95 108 128 94 105 108 95 108 128 94 105 108 94 105 108
++94 105 108 94 105 108 94 105 108 77 91 115 94 105 108 77 91 115 77 90 100 77 90 100
++
++75 81 82 75 81 76 59 69 70 59 55 55 47 44 42 36 35 37 22 25 24 22 25 24
++23 18 22 22 25 24 26 30 28 33 30 30 31 35 35 42 41 42 48 50 48 52 55 48
++59 55 55 59 69 70 75 72 67 75 81 76 75 81 76 75 81 82 88 83 88 90 98 89
++94 105 108 94 105 108 112 123 108 111 119 127 111 119 127 121 143 132 111 119 127 111 119 127
++112 123 108 111 119 127 112 123 108 94 105 108 95 91 100 88 83 88 75 81 82 75 81 76
++59 69 70 54 57 61 48 44 48 36 35 37 26 30 28 23 18 22 17 12 17 13 4 7
++17 12 17 23 18 22 26 25 15 32 39 24 52 55 48 65 63 61 88 83 74 112 96 108
++112 96 108 111 119 127 138 126 108 121 143 132 145 140 145 146 151 137 150 144 154 146 162 145
++150 144 154 146 151 137 145 140 145 146 151 137 145 140 145 121 143 132 146 150 115 119 117 138
++138 126 108 121 143 132 138 126 108 111 119 127 138 126 108 111 119 127 121 143 132 112 123 108
++111 119 127 117 142 111 119 117 138 117 142 111 141 116 139 121 143 132 121 143 132 146 151 137
++146 151 137 146 162 145 150 144 154 146 162 145 166 156 164 146 162 145 166 156 164 146 162 145
++146 162 145 150 144 154 146 162 145 146 162 145 150 144 154 146 151 137 150 144 154 146 162 145
++146 162 145 150 144 154 146 162 145 150 144 154 146 151 137 146 151 137 145 140 145 146 151 137
++146 151 137 146 151 137 145 140 145 121 143 132 145 140 145 145 140 145 126 147 144 145 140 145
++126 147 144 146 151 137 145 140 145 148 160 159 150 144 154 146 151 137 148 160 159 146 162 145
++150 144 154 146 162 145 150 144 154 146 162 145 146 162 145 166 156 164 146 162 145 166 156 164
++150 171 159 166 156 164 146 162 145 166 156 164 146 162 145 148 160 159 150 144 154 148 160 159
++145 140 145 145 140 145 126 147 144 145 140 145 121 143 132 122 134 144 111 119 127 111 119 127
++111 119 127 111 119 127 94 105 108 95 95 116 77 90 100 77 90 100 60 63 87 46 59 71
++34 42 77 34 42 77 29 34 50 34 42 77 24 30 43 34 42 77 29 34 50 34 42 77
++24 30 43 34 42 77 29 34 50 29 34 50 37 35 43 34 42 77 57 43 64 57 43 64
++63 59 71 75 64 82 75 64 82 88 69 84 88 69 84 95 91 100 95 91 100 117 99 86
++112 96 108 112 96 108 138 102 108 138 126 108 141 116 139 138 126 108 141 116 139 138 126 108
++141 116 139 168 146 127 145 140 145 145 140 145 150 144 154 168 146 127 150 144 154 145 140 145
++177 169 143 150 144 154 146 151 137 150 144 154 150 144 154 166 156 164 168 146 127 150 144 154
++168 146 127 150 144 154 150 144 154 166 156 164 168 146 127 150 144 154 166 156 164 168 146 127
++150 144 154 150 144 154 168 146 127 150 144 154 168 146 127 150 144 154 150 144 154 168 146 127
++150 144 154 150 144 154 168 146 127 166 156 164 150 144 154 168 146 127 150 144 154 168 146 127
++150 144 154 146 151 137 166 156 164 168 146 127 177 169 143 150 144 154 166 156 164 168 146 127
++166 156 164 168 146 127 166 156 164 168 146 127 166 156 164 146 151 137 166 156 164 168 146 127
++166 156 164 168 146 127 150 144 154 177 169 143 166 156 164 177 169 143 112 96 108 47 44 42
++13 4 7 3 3 1 15 17 7 14 16 17 7 12 13 13 4 7 3 4 9 13 4 7
++13 4 7 3 3 1 6 15 6 3 3 1 13 4 7 23 10 10 75 73 36 117 99 86
++168 102 88 117 114 76 168 102 88 117 114 76 168 102 88 120 63 71 117 99 86 101 74 26
++120 63 71 88 73 62 120 63 71 120 63 71 117 99 86 117 99 86 117 99 86 117 99 86
++88 73 62 88 73 62 76 46 20 55 39 37 76 46 20 55 39 37 55 39 18 55 39 18
++55 39 37 53 35 17 53 35 17 34 30 15 34 30 15 34 30 15 28 13 18 26 12 13
++26 12 13 15 17 7 23 10 10 15 17 7 15 17 7 15 17 7 15 17 7 13 4 7
++13 4 7 15 17 7 15 17 7 23 10 10 22 24 13 34 30 15 60 49 42 88 83 74
++99 93 84 99 93 84 88 83 74 75 81 76 75 72 67 65 63 61 46 59 71 57 43 64
++46 59 71 34 42 77 34 42 77 34 42 77 32 40 58 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++42 60 86 42 60 86 61 78 101 61 78 101 77 91 115 77 91 115 77 91 115 95 108 128
++77 91 115 95 108 128 77 91 115 77 91 115 77 91 115 77 91 115 77 90 100 61 78 101
++75 81 90 61 78 101 61 78 101 60 63 87 61 78 101 60 81 83 61 78 101 77 90 100
++77 91 115 77 91 115 94 105 108 95 108 128 98 121 131 98 121 131 111 122 142 122 134 144
++129 144 153 129 144 153 131 144 168 148 160 159 148 160 159 150 168 183 148 160 159 166 174 181
++150 171 159 166 174 181 166 174 181 150 168 183 148 160 159 148 160 159 148 160 159 150 144 154
++129 144 153 126 147 144 122 134 144 121 143 132 111 119 127 95 119 107 77 90 100 77 90 100
++60 81 83 60 81 83 59 69 70 60 81 83 60 81 83 77 90 100 90 98 89 98 121 131
++111 119 127 119 117 138 122 134 144 129 144 153 129 144 153 148 160 159 150 168 183 150 171 159
++166 174 181 166 174 181 166 174 181 166 180 164 185 202 202 166 174 181 148 160 159 138 126 108
++99 93 84 101 83 74 88 73 62 88 73 62 101 74 26 117 99 86 146 150 115 168 146 127
++168 146 127 201 146 124 177 169 143 217 168 156 201 146 124 177 169 143 217 168 156 177 169 143
++197 171 123 189 165 168 217 168 156 208 215 180 217 168 156 208 215 180 222 171 182 225 222 201
++222 171 182 225 222 201 225 222 201 225 222 201 222 171 182 225 222 201 208 215 180 222 171 182
++208 215 180 217 168 156 208 215 180 222 171 182 208 215 180 217 168 156 217 168 156 189 165 168
++201 146 124 177 169 143 197 171 123 177 169 143 197 171 123 189 165 168 177 169 143 146 151 137
++150 144 154 150 144 154 129 144 153 148 160 159 129 144 153 148 160 159 131 144 168 148 160 159
++131 144 168 148 160 159 148 160 159 150 147 171 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 150 168 183 150 171 159 166 156 164 150 168 183 166 180 164 150 168 183 166 180 164
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 150 171 159 166 174 181 150 168 183 150 147 171 148 160 159
++148 160 159 148 160 159 129 144 153 129 144 153 131 144 168 111 122 142 111 122 142 111 122 142
++95 108 128 95 108 128 77 91 115 77 91 115 61 78 101 61 78 101 61 78 101 61 78 101
++61 78 101 61 78 101 77 91 115 77 91 115 95 108 128 95 108 128 98 121 131 111 122 142
++122 134 144 122 134 144 129 144 153 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159
++150 168 183 150 171 159 166 174 181 150 171 159 150 168 183 166 174 181 150 168 183 166 180 164
++150 168 183 166 180 164 150 168 183 166 174 181 150 168 183 166 156 164 150 168 183 148 160 159
++150 147 171 148 160 159 148 160 159 148 160 159 129 144 153 129 144 153 129 144 153 122 134 144
++122 134 144 111 122 142 121 143 132 111 122 142 111 122 142 111 119 127 95 108 128 94 105 108
++95 108 128 77 91 115 77 91 115 77 91 115 61 78 101 61 78 101 60 63 87 42 60 86
++42 60 86 46 59 71 34 42 77 46 59 71 34 42 77 46 59 71 34 42 77 34 42 77
++34 42 77 34 42 77 42 60 86 42 60 86 42 60 86 42 60 86 60 63 87 60 63 87
++61 78 101 77 90 100 77 91 115 94 105 108 95 108 128 111 119 127 111 119 127 111 122 142
++122 134 144 126 147 144 126 147 144 129 144 153 148 160 159 129 144 153 148 160 159 148 160 159
++148 160 159 150 171 159 166 156 164 150 171 159 166 174 181 150 171 159 166 174 181 150 168 183
++166 156 164 150 168 183 148 160 159 150 168 183 148 160 159 131 144 168 148 160 159 129 144 153
++129 144 153 126 147 144 122 134 144 122 134 144 111 122 142 111 119 127 98 121 131 98 121 131
++94 105 108 94 105 108 77 91 115 77 90 100 77 90 100 61 78 101 61 78 101 61 78 101
++61 78 101 60 63 87 42 60 86 46 59 71 46 59 71 46 59 71 46 59 71 34 42 77
++34 42 77 46 59 71 42 60 86 60 63 87 61 78 101 75 81 90 77 91 115 95 95 116
++94 105 108 98 121 131 111 119 127 111 122 142 122 134 144 126 147 144 129 144 153 148 160 159
++131 144 168 148 160 159 148 160 159 150 168 183 148 160 159 148 160 159 148 160 159 150 168 183
++148 160 159 150 168 183 148 160 159 148 160 159 131 144 168 148 160 159 148 160 159 148 160 159
++129 144 153 145 140 145 129 144 153 122 134 144 122 134 144 121 143 132 111 122 142 122 134 144
++98 121 131 121 143 132 111 119 127 98 121 131 122 134 144 111 119 127 122 134 144 121 143 132
++122 134 144 129 144 153 122 134 144 126 147 144 129 144 153 150 144 154 129 144 153 148 160 159
++150 144 154 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153
++146 162 145 129 144 153 126 147 144 122 134 144 122 134 144 111 122 142 111 119 127 95 108 128
++95 108 128 77 91 115 77 90 100 61 78 101 60 63 87 42 60 86 46 59 71 32 40 58
++32 40 58 32 40 58 29 34 50 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58
++32 40 58 34 42 77 46 59 71 60 63 87 60 81 83 77 90 100 77 91 115 94 105 108
++95 119 107 111 119 127 111 119 127 122 134 144 122 134 144 126 147 144 126 147 144 129 144 153
++129 144 153 148 160 159 129 144 153 148 160 159 150 144 154 148 160 159 131 144 168 148 160 159
++148 160 159 131 144 168 148 160 159 150 144 154 148 160 159 129 144 153 145 140 145 129 144 153
++126 147 144 122 134 144 119 117 138 121 143 132 111 119 127 111 119 127 111 119 127 95 108 128
++95 108 128 94 105 108 94 105 108 95 95 116 94 105 108 77 91 115 94 105 108 77 91 115
++77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100 75 81 90
++
++75 81 76 75 81 76 65 63 61 59 55 55 35 46 43 36 35 37 22 25 24 22 25 24
++22 25 24 22 25 24 33 30 30 36 35 37 42 41 42 43 55 48 54 57 61 53 63 61
++59 69 70 75 72 67 75 81 76 75 81 76 88 83 88 90 98 89 90 98 89 95 91 100
++94 105 108 112 123 108 111 119 127 121 143 132 138 126 108 111 119 127 121 143 132 111 119 127
++111 119 127 112 123 108 94 105 108 94 105 108 94 105 108 90 98 89 75 81 90 75 81 82
++75 72 67 59 57 61 48 50 48 34 40 43 33 30 32 22 25 24 15 22 17 14 16 17
++13 4 7 15 17 7 14 16 17 33 30 30 47 49 42 59 55 55 75 81 69 90 98 89
++94 105 108 138 126 108 121 143 132 141 116 139 146 151 137 146 151 137 146 151 137 150 144 154
++146 162 145 145 140 145 146 151 137 145 140 145 138 126 108 145 140 145 111 119 127 138 126 108
++111 119 127 111 119 127 138 126 108 111 119 127 121 143 132 112 123 108 111 119 127 138 126 108
++111 119 127 111 119 127 121 143 132 121 143 132 121 143 132 145 140 145 145 140 145 146 151 137
++145 140 145 146 162 145 150 144 154 146 162 145 146 162 145 150 144 154 146 162 145 150 144 154
++146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 150 144 154
++146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 150 144 154 146 151 137 145 140 145
++126 147 144 145 140 145 146 151 137 145 140 145 121 143 132 146 151 137 145 140 145 146 151 137
++145 140 145 145 140 145 146 162 145 150 144 154 146 162 145 148 160 159 150 144 154 146 162 145
++166 156 164 146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 146 162 145 166 156 164
++146 162 145 166 156 164 146 162 145 148 160 159 148 160 159 150 144 154 146 162 145 150 144 154
++146 151 137 129 144 153 145 140 145 121 143 132 141 116 139 111 119 127 111 119 127 111 119 127
++95 119 107 95 95 116 95 95 116 95 95 116 77 90 100 61 78 101 60 63 87 42 60 86
++34 42 77 32 40 58 34 42 77 24 30 43 34 42 77 12 18 30 34 42 77 24 30 43
++34 42 77 24 30 43 34 42 77 29 34 50 29 34 50 57 43 64 32 40 58 57 43 64
++63 59 71 63 59 71 75 64 82 88 69 84 88 69 84 88 69 84 112 96 108 112 96 108
++112 96 108 138 102 108 112 96 108 138 102 108 138 126 108 138 126 108 141 116 139 163 117 123
++146 151 137 163 117 123 145 140 145 168 146 127 145 140 145 145 140 145 168 146 127 150 144 154
++146 151 137 168 146 127 150 144 154 168 146 127 150 144 154 146 151 137 150 144 154 168 146 127
++150 144 154 150 144 154 168 146 127 150 144 154 150 144 154 168 146 127 150 144 154 150 144 154
++168 146 127 150 144 154 168 146 127 150 144 154 150 144 154 168 146 127 150 144 154 168 146 127
++150 144 154 168 146 127 150 144 154 168 146 127 150 144 154 150 144 154 168 146 127 150 144 154
++168 146 127 166 156 164 168 146 127 150 144 154 150 144 154 168 146 127 166 156 164 168 146 127
++166 156 164 168 146 127 146 162 145 168 146 127 166 156 164 168 146 127 168 146 127 150 144 154
++168 146 127 150 144 154 168 146 127 166 156 164 177 169 143 119 117 138 75 73 58 15 17 7
++13 4 7 7 12 13 7 12 13 17 12 17 7 12 13 3 4 9 3 3 1 6 15 6
++3 4 9 3 3 1 13 4 7 13 4 7 3 3 1 23 10 10 63 55 45 101 83 74
++117 99 86 117 99 86 168 102 88 117 114 76 117 114 76 101 83 74 101 74 26 101 83 74
++88 73 62 101 83 74 117 99 86 117 99 86 168 102 88 117 99 86 117 99 86 120 63 71
++101 74 26 88 73 62 76 46 20 55 39 37 55 39 18 53 35 17 52 30 15 33 30 30
++52 30 15 33 30 30 34 30 15 34 30 15 49 13 16 26 25 15 26 12 13 26 25 15
++23 10 10 23 10 10 15 17 7 15 17 7 13 4 7 13 4 7 13 4 7 13 4 7
++13 4 7 15 17 7 23 10 10 23 10 10 23 10 10 55 39 18 75 73 58 99 93 84
++117 99 86 99 93 84 88 83 88 88 69 84 75 72 67 63 59 71 59 57 61 46 59 71
++57 43 64 34 42 77 46 59 71 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 42 60 86
++42 60 86 60 63 87 61 78 101 61 78 101 77 91 115 95 108 128 95 108 128 77 91 115
++95 108 128 77 91 115 95 108 128 77 91 115 77 91 115 61 78 101 77 91 115 61 78 101
++61 78 101 61 78 101 75 81 90 61 78 101 75 81 90 61 78 101 77 90 100 77 90 100
++77 91 115 95 119 107 95 108 128 95 108 128 98 121 131 111 119 127 111 122 142 121 143 132
++122 134 144 129 144 153 148 160 159 148 160 159 150 147 171 150 171 159 150 168 183 150 171 159
++166 174 181 148 160 159 166 156 164 148 160 159 148 160 159 150 147 171 129 144 153 148 160 159
++126 147 144 122 134 144 121 143 132 111 119 127 111 119 127 95 108 128 94 105 108 75 81 90
++60 81 83 59 69 70 60 63 87 60 81 83 75 81 90 77 90 100 94 105 108 95 119 107
++111 119 127 121 143 132 122 134 144 145 140 145 148 160 159 148 160 159 148 160 159 166 174 181
++166 156 164 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 185 202 202 146 162 145
++138 126 108 98 113 84 88 83 74 88 73 62 101 83 74 117 114 76 163 117 123 177 171 115
++197 171 123 177 169 143 197 171 123 177 169 143 197 171 123 177 169 143 177 169 143 217 168 156
++208 215 180 208 215 180 189 165 168 189 165 168 146 162 145 145 140 145 150 144 154 146 162 145
++166 156 164 166 156 164 166 156 164 189 165 168 185 202 202 225 222 201 232 215 228 225 222 201
++232 215 228 225 222 201 225 222 201 222 171 182 189 165 168 208 215 180 189 165 168 197 171 123
++189 165 168 177 169 143 217 168 156 177 169 143 217 168 156 177 169 143 168 146 127 150 144 154
++150 144 154 148 160 159 148 160 159 148 160 159 131 144 168 148 160 159 148 160 159 148 160 159
++148 160 159 131 144 168 148 160 159 131 144 168 148 160 159 150 147 171 150 168 183 150 147 171
++150 171 159 166 156 164 150 168 183 150 168 183 166 156 164 166 174 181 166 174 181 150 168 183
++166 174 181 166 174 181 166 174 181 166 174 181 185 202 202 150 168 183 185 202 202 166 180 164
++166 174 181 166 174 181 150 168 183 166 174 181 150 168 183 150 171 159 150 168 183 148 160 159
++131 144 168 129 144 153 131 144 168 122 134 144 122 134 144 111 122 142 111 122 142 95 108 128
++95 108 128 77 91 115 77 91 115 77 91 115 61 78 101 61 78 101 61 78 101 61 78 101
++61 78 101 77 91 115 77 91 115 77 91 115 95 108 128 95 108 128 98 121 131 111 122 142
++122 134 144 122 134 144 129 144 153 129 144 153 150 144 154 148 160 159 150 147 171 148 160 159
++148 160 159 148 160 159 150 168 183 166 156 164 150 168 183 166 180 164 150 168 183 166 180 164
++150 168 183 166 180 164 150 168 183 150 171 159 150 171 159 150 168 183 150 171 159 150 168 183
++148 160 159 150 168 183 131 144 168 148 160 159 129 144 153 129 144 153 129 144 153 129 144 153
++122 134 144 122 134 144 111 122 142 111 119 127 98 121 131 98 121 131 98 121 131 95 108 128
++95 108 128 77 91 115 77 91 115 77 91 115 61 78 101 61 78 101 42 60 86 60 63 87
++42 60 86 34 42 77 46 59 71 34 42 77 32 40 58 34 42 77 34 42 77 46 59 71
++34 42 77 46 59 71 34 42 77 42 60 86 42 60 86 42 60 86 60 63 87 60 63 87
++61 78 101 61 78 101 77 91 115 94 105 108 95 108 128 98 121 131 111 122 142 121 143 132
++122 134 144 122 134 144 129 144 153 145 140 145 129 144 153 148 160 159 148 160 159 150 168 183
++148 160 159 150 168 183 150 168 183 150 171 159 166 174 181 150 168 183 150 171 159 166 174 181
++150 171 159 150 171 159 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 129 144 153
++129 144 153 122 134 144 122 134 144 111 122 142 111 122 142 111 119 127 98 121 131 95 108 128
++95 95 116 77 91 115 77 90 100 77 90 100 61 78 101 61 78 101 60 63 87 60 63 87
++60 63 87 42 60 86 46 59 71 42 60 86 46 59 71 34 42 77 34 42 77 45 57 61
++34 42 77 46 59 71 42 60 86 60 81 83 61 78 101 61 78 101 77 91 115 94 105 108
++95 108 128 98 121 131 111 119 127 121 143 132 122 134 144 129 144 153 129 144 153 129 144 153
++148 160 159 148 160 159 148 160 159 148 160 159 150 168 183 150 168 183 166 156 164 150 171 159
++150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 129 144 153
++129 144 153 129 144 153 126 147 144 129 144 153 122 134 144 122 134 144 122 134 144 111 119 127
++111 122 142 111 122 142 111 122 142 121 143 132 111 122 142 121 143 132 122 134 144 122 134 144
++122 134 144 145 140 145 126 147 144 145 140 145 129 144 153 129 144 153 148 160 159 129 144 153
++148 160 159 131 144 168 148 160 159 150 147 171 148 160 159 150 147 171 148 160 159 131 144 168
++148 160 159 129 144 153 126 147 144 122 134 144 122 134 144 111 119 127 98 121 131 111 119 127
++95 108 128 77 91 115 77 90 100 61 78 101 60 81 83 46 59 71 46 59 71 34 42 77
++32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 29 34 50 32 40 58 32 40 58
++34 42 77 57 43 64 46 59 71 60 63 87 60 63 87 77 90 100 77 91 115 94 105 108
++98 121 131 111 119 127 122 134 144 122 134 144 121 143 132 129 144 153 145 140 145 146 162 145
++150 144 154 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159
++150 147 171 148 160 159 148 160 159 129 144 153 148 160 159 129 144 153 129 144 153 145 140 145
++126 147 144 122 134 144 121 143 132 111 119 127 111 119 127 111 119 127 95 108 128 94 105 108
++94 105 108 94 105 108 95 95 116 77 90 100 77 90 100 77 90 100 77 90 100 77 90 100
++75 81 90 77 90 100 77 90 100 75 81 90 75 81 90 61 78 101 75 81 90 61 78 101
++
++75 81 76 75 72 67 65 63 61 48 50 48 36 35 37 33 30 32 22 25 24 22 25 24
++22 25 24 33 30 32 36 35 37 42 41 42 48 50 48 53 63 61 65 63 61 59 69 70
++75 72 67 75 81 76 75 81 82 90 98 89 90 98 89 94 105 108 94 105 108 94 105 108
++112 123 108 111 119 127 112 123 108 111 119 127 121 143 132 111 119 127 138 126 108 121 143 132
++111 119 127 111 119 127 111 119 127 111 119 127 94 105 108 94 105 108 90 98 89 88 83 88
++75 81 82 59 69 70 54 57 61 48 50 48 33 39 38 33 30 30 23 20 24 15 22 17
++13 4 7 6 15 6 14 16 17 26 25 15 36 35 37 48 50 48 65 63 61 88 83 74
++99 93 84 112 123 108 111 119 127 138 126 108 121 143 132 121 143 132 145 140 145 146 151 137
++145 140 145 146 151 137 145 140 145 146 151 137 145 140 145 121 143 132 138 126 108 121 143 132
++111 119 127 138 126 108 119 117 138 117 142 111 111 119 127 138 126 108 111 119 127 111 119 127
++121 143 132 138 126 108 111 119 127 138 126 108 145 140 145 138 126 108 146 151 137 145 140 145
++146 151 137 150 144 154 146 162 145 146 162 145 166 156 164 146 162 145 166 156 164 146 162 145
++150 144 154 146 162 145 150 144 154 146 162 145 150 144 154 146 151 137 150 144 154 146 162 145
++150 144 154 146 151 137 148 160 159 146 162 145 150 144 154 148 160 159 146 162 145 146 151 137
++145 140 145 146 151 137 121 143 132 145 140 145 146 151 137 145 140 145 146 151 137 126 147 144
++145 140 145 146 162 145 145 140 145 146 162 145 150 144 154 146 151 137 166 156 164 146 162 145
++150 144 154 146 162 145 150 144 154 146 162 145 146 162 145 166 156 164 146 162 145 166 156 164
++146 162 145 166 156 164 148 160 159 166 156 164 146 162 145 150 144 154 146 162 145 150 144 154
++126 147 144 146 151 137 145 140 145 122 134 144 121 143 132 121 143 132 112 123 108 111 119 127
++111 119 127 95 108 128 95 95 116 95 95 116 77 90 100 75 81 90 60 63 87 46 59 71
++34 42 77 34 42 77 24 30 43 34 42 77 12 18 30 34 42 77 24 30 43 34 42 77
++24 30 43 34 42 77 29 34 50 29 34 50 29 34 50 32 40 58 57 43 64 57 43 64
++57 43 64 63 59 71 75 59 67 75 64 82 88 69 84 88 83 88 88 69 84 101 83 74
++112 96 108 112 96 108 138 102 108 111 119 127 138 102 108 141 116 139 138 126 108 138 126 108
++138 126 108 141 116 139 168 146 127 145 140 145 168 146 127 145 140 145 168 146 127 150 144 154
++168 146 127 150 144 154 168 146 127 146 151 137 150 144 154 168 146 127 146 151 137 150 144 154
++168 146 127 150 144 154 168 146 127 150 144 154 168 146 127 150 144 154 168 146 127 150 144 154
++168 146 127 150 144 154 168 146 127 150 144 154 168 146 127 150 144 154 168 146 127 150 144 154
++150 144 154 168 146 127 150 144 154 168 146 127 150 144 154 168 146 127 150 144 154 150 144 154
++168 146 127 150 144 154 168 146 127 166 156 164 168 146 127 150 144 154 168 146 127 146 151 137
++168 146 127 166 156 164 168 146 127 166 156 164 168 146 127 150 144 154 168 146 127 166 156 164
++168 146 127 168 146 127 166 156 164 177 169 143 145 140 145 88 83 74 29 35 19 13 4 7
++3 4 9 15 17 7 17 12 17 15 17 7 13 4 7 6 15 6 3 4 9 13 4 7
++3 4 9 3 3 1 6 15 6 3 3 1 13 4 7 13 4 7 63 55 45 120 63 71
++117 99 86 117 114 76 117 99 86 117 99 86 117 112 45 120 63 71 88 73 62 120 63 71
++88 73 62 120 63 71 117 99 86 117 99 86 117 99 86 117 114 76 120 63 71 101 83 74
++88 73 62 75 56 53 63 55 45 55 39 37 52 30 15 34 30 15 34 30 15 34 30 15
++26 25 15 34 30 15 28 13 18 34 30 15 26 25 15 26 25 15 26 12 13 23 10 10
++23 10 10 23 10 10 13 4 7 6 15 6 3 3 1 13 4 7 6 15 6 15 17 7
++13 4 7 13 4 7 13 4 7 23 10 10 47 47 21 75 77 62 117 99 86 117 99 86
++112 96 108 99 93 84 88 83 74 75 81 76 75 59 67 63 59 71 59 57 61 46 59 71
++45 57 61 34 42 77 34 42 77 32 40 58 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++42 60 86 42 60 86 61 78 101 77 91 115 77 91 115 77 91 115 95 108 128 95 108 128
++95 108 128 95 108 128 95 108 128 77 91 115 77 91 115 77 91 115 77 91 115 77 90 100
++77 91 115 77 90 100 61 78 101 75 81 90 61 78 101 61 78 101 61 78 101 77 90 100
++77 91 115 77 91 115 77 91 115 95 108 128 98 121 131 111 119 127 111 122 142 111 122 142
++126 147 144 129 144 153 129 144 153 148 160 159 148 160 159 150 168 183 166 156 164 150 168 183
++166 156 164 166 174 181 150 168 183 150 168 183 148 160 159 148 160 159 148 160 159 129 144 153
++145 140 145 126 147 144 122 134 144 111 119 127 111 119 127 95 119 107 94 105 108 75 81 90
++60 81 83 59 69 70 59 69 70 60 81 83 75 81 90 77 90 100 94 105 108 111 119 127
++111 119 127 122 134 144 126 147 144 129 144 153 150 144 154 150 147 171 148 160 159 150 171 159
++166 174 181 166 174 181 166 174 181 166 174 181 166 180 164 188 180 202 166 174 181 166 174 181
++148 160 159 138 126 108 99 93 84 98 106 55 88 73 62 117 114 76 138 126 108 168 146 127
++197 171 123 197 171 123 217 168 156 208 215 180 217 168 156 217 168 156 217 168 156 177 169 143
++168 146 127 138 126 108 117 127 86 99 93 84 75 72 67 75 63 62 65 63 61 63 59 71
++63 59 71 75 81 76 75 81 90 95 91 100 112 96 108 112 96 108 122 134 144 166 156 164
++189 165 168 208 215 180 232 215 228 225 222 201 208 215 180 208 215 180 217 168 156 177 169 143
++217 168 156 189 165 168 201 146 124 177 169 143 201 146 124 177 169 143 168 146 127 146 151 137
++150 144 154 148 160 159 129 144 153 148 160 159 148 160 159 148 160 159 131 144 168 148 160 159
++150 147 171 148 160 159 148 160 159 148 160 159 148 160 159 150 147 171 148 160 159 148 160 159
++148 160 159 150 168 183 166 156 164 150 171 159 166 174 181 150 168 183 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 180 164 166 174 181 166 174 181
++150 168 183 166 180 164 166 174 181 150 171 159 166 174 181 150 168 183 148 160 159 150 147 171
++148 160 159 148 160 159 129 144 153 129 144 153 122 134 144 111 122 142 111 122 142 98 121 131
++95 108 128 77 91 115 77 91 115 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101
++61 78 101 61 78 101 77 91 115 77 91 115 94 105 108 95 108 128 98 121 131 111 122 142
++111 122 142 122 134 144 122 134 144 129 144 153 129 144 153 129 144 153 148 160 159 150 147 171
++148 160 159 166 156 164 150 171 159 148 160 159 166 174 181 150 168 183 150 171 159 166 174 181
++150 171 159 150 168 183 166 180 164 150 168 183 166 174 181 150 171 159 150 168 183 148 160 159
++150 147 171 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 145 140 145 126 147 144
++122 134 144 122 134 144 121 143 132 111 122 142 122 134 144 98 121 131 98 121 131 95 108 128
++95 108 128 95 108 128 77 91 115 77 91 115 77 91 115 61 78 101 61 78 101 42 60 86
++60 63 87 42 60 86 34 42 77 34 42 77 34 42 77 34 42 77 45 57 61 34 42 77
++34 42 77 34 42 77 34 42 77 46 59 71 34 42 77 42 60 86 42 60 86 42 60 86
++61 78 101 61 78 101 77 91 115 77 91 115 95 108 128 111 119 127 98 121 131 111 119 127
++122 134 144 122 134 144 129 144 153 129 144 153 129 144 153 148 160 159 131 144 168 148 160 159
++166 156 164 150 171 159 166 156 164 150 168 183 150 171 159 166 180 164 150 168 183 150 171 159
++150 168 183 148 160 159 150 168 183 148 160 159 131 144 168 148 160 159 129 144 153 129 144 153
++122 134 144 122 134 144 111 122 142 111 122 142 98 121 131 98 121 131 95 95 116 94 105 108
++77 91 115 77 90 100 61 78 101 60 63 87 60 81 83 60 63 87 60 63 87 42 60 86
++46 59 71 42 60 86 46 59 71 57 43 64 34 42 77 57 43 64 34 42 77 34 42 77
++46 59 71 42 60 86 42 60 86 60 63 87 61 78 101 77 90 100 77 91 115 94 105 108
++98 121 131 98 121 131 121 143 132 111 119 127 122 134 144 129 144 153 145 140 145 148 160 159
++131 144 168 148 160 159 150 168 183 148 160 159 148 160 159 150 168 183 150 171 159 150 168 183
++150 147 171 148 160 159 148 160 159 131 144 168 148 160 159 150 144 154 148 160 159 148 160 159
++146 151 137 129 144 153 145 140 145 126 147 144 122 134 144 122 134 144 121 143 132 111 122 142
++121 143 132 111 119 127 121 143 132 111 122 142 111 119 127 122 134 144 122 134 144 122 134 144
++122 134 144 126 147 144 129 144 153 129 144 153 150 144 154 129 144 153 150 144 154 148 160 159
++131 144 168 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159
++129 144 153 145 140 145 129 144 153 121 143 132 122 134 144 122 134 144 111 119 127 95 119 107
++95 108 128 77 91 115 77 90 100 61 78 101 60 63 87 42 60 86 46 59 71 32 40 58
++32 40 58 32 40 58 32 40 58 29 34 50 34 42 77 29 34 50 29 34 50 32 40 58
++32 40 58 46 59 71 42 60 86 59 69 70 61 78 101 77 90 100 94 105 108 94 105 108
++98 121 131 111 119 127 122 134 144 122 134 144 122 134 144 126 147 144 129 144 153 129 144 153
++129 144 153 148 160 159 129 144 153 148 160 159 148 160 159 148 160 159 150 144 154 148 160 159
++148 160 159 129 144 153 148 160 159 148 160 159 129 144 153 145 140 145 126 147 144 129 144 153
++122 134 144 122 134 144 119 117 138 111 119 127 111 119 127 111 119 127 94 105 108 94 105 108
++94 105 108 77 90 100 77 90 100 77 90 100 75 81 90 75 81 90 75 81 90 60 81 83
++75 81 90 60 81 83 61 78 101 60 63 87 61 78 101 60 81 83 60 63 87 60 63 87
++
++75 72 67 63 59 71 59 57 61 48 50 48 36 35 37 33 30 32 26 30 28 22 25 24
++26 30 28 36 35 37 47 49 42 48 50 48 54 57 61 65 63 61 59 69 70 75 81 76
++75 81 76 75 81 82 90 98 89 90 98 89 94 105 108 112 123 108 112 96 108 112 123 108
++111 119 127 112 123 108 111 119 127 111 119 127 138 126 108 122 134 144 111 119 127 121 143 132
++111 119 127 117 142 111 111 119 127 111 119 127 112 123 108 94 105 108 94 105 108 90 98 89
++75 81 90 75 81 76 63 59 71 59 55 55 43 42 50 33 39 38 26 30 28 23 18 22
++7 12 13 13 4 7 15 17 7 22 25 24 32 39 24 42 47 42 59 55 55 75 81 76
++88 83 88 112 96 108 112 123 108 138 126 108 121 143 132 141 116 139 146 151 137 146 151 137
++145 140 145 121 143 132 145 140 145 121 143 132 145 140 145 138 126 108 122 134 144 138 126 108
++111 119 127 138 126 108 111 119 127 138 126 108 121 143 132 111 119 127 117 142 111 119 117 138
++138 126 108 111 119 127 121 143 132 122 134 144 121 143 132 145 140 145 145 140 145 146 151 137
++146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 146 162 145 146 162 145 150 144 154
++146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 150 144 154
++146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 150 144 154
++146 151 137 145 140 145 145 140 145 146 151 137 126 147 144 145 140 145 146 151 137 145 140 145
++146 151 137 145 140 145 146 162 145 150 144 154 146 162 145 148 160 159 146 151 137 148 160 159
++146 162 145 166 156 164 146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 166 156 164
++146 162 145 146 162 145 166 156 164 146 162 145 150 144 154 146 162 145 150 144 154 145 140 145
++126 147 144 145 140 145 121 143 132 121 143 132 141 116 139 111 119 127 111 119 127 111 119 127
++95 119 107 94 105 108 94 105 108 95 95 116 77 90 100 61 78 101 60 63 87 46 59 71
++34 42 77 32 40 58 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 24 30 43
++34 42 77 24 30 43 34 42 77 29 34 50 34 42 77 32 40 58 57 43 64 34 42 77
++63 59 71 63 59 71 63 59 71 75 64 82 88 69 84 88 69 84 101 83 74 112 96 108
++112 96 108 117 99 86 112 96 108 138 102 108 138 102 108 138 102 108 141 116 139 138 126 108
++163 117 123 145 140 145 163 117 123 145 140 145 163 117 123 145 140 145 168 146 127 145 140 145
++168 146 127 145 140 145 145 140 145 150 144 154 168 146 127 150 144 154 145 140 145 168 146 127
++150 144 154 145 140 145 146 151 137 168 146 127 150 144 154 150 144 154 168 146 127 150 144 154
++145 140 145 168 146 127 150 144 154 163 117 123 150 144 154 168 146 127 150 144 154 168 146 127
++150 144 154 168 146 127 150 144 154 150 144 154 168 146 127 150 144 154 168 146 127 168 146 127
++150 144 154 168 146 127 150 144 154 168 146 127 150 144 154 168 146 127 150 144 154 168 146 127
++150 144 154 168 146 127 168 146 127 166 156 164 168 146 127 168 146 127 150 144 154 168 146 127
++168 146 127 166 156 164 177 169 143 145 140 145 117 99 86 47 44 42 13 4 7 15 17 7
++7 12 13 7 12 13 7 12 13 7 12 13 13 4 7 3 4 9 13 4 7 6 15 6
++3 3 1 3 4 9 3 3 1 13 4 7 3 3 1 13 4 7 55 39 18 101 83 74
++117 114 76 168 102 88 117 112 45 120 63 71 120 63 71 98 106 55 120 63 71 88 73 62
++101 83 74 101 83 74 117 99 86 168 102 88 117 99 86 120 63 71 101 83 74 101 74 26
++88 73 62 76 46 20 76 46 20 53 35 17 34 30 15 28 13 18 34 30 15 26 12 13
++26 12 13 26 12 13 26 25 15 26 12 13 26 25 15 26 12 13 22 24 13 23 10 10
++15 17 7 23 10 10 13 4 7 6 15 6 13 4 7 6 15 6 13 4 7 13 4 7
++13 4 7 15 17 7 23 10 10 47 47 21 88 83 74 117 99 86 112 123 108 117 99 86
++99 93 84 99 93 84 88 69 84 88 66 70 75 59 67 63 59 71 59 57 61 46 59 71
++57 43 64 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 42 60 86
++42 60 86 61 78 101 61 78 101 77 91 115 77 91 115 95 108 128 95 108 128 95 108 128
++95 108 128 95 108 128 95 108 128 95 108 128 77 91 115 77 91 115 77 91 115 77 91 115
++61 78 101 77 90 100 61 78 101 61 78 101 75 81 90 61 78 101 75 81 90 61 78 101
++77 90 100 77 91 115 95 119 107 95 108 128 98 121 131 111 119 127 122 134 144 122 134 144
++122 134 144 129 144 153 150 144 154 148 160 159 148 160 159 148 160 159 166 174 181 150 171 159
++166 174 181 148 160 159 166 156 164 148 160 159 148 160 159 148 160 159 129 144 153 129 144 153
++145 140 145 122 134 144 121 143 132 111 119 127 111 119 127 94 105 108 94 105 108 75 81 90
++60 81 83 60 81 83 59 69 70 60 81 83 75 81 90 77 90 100 94 105 108 98 121 131
++111 119 127 121 143 132 122 134 144 145 140 145 129 144 153 148 160 159 148 160 159 150 168 183
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 180 164 166 174 181 166 174 181
++166 180 164 150 171 159 138 126 108 101 83 74 88 73 62 117 114 76 168 146 127 201 146 124
++177 169 143 217 168 156 208 215 180 197 171 123 177 169 143 168 146 127 117 142 111 117 127 86
++101 83 74 75 56 53 52 30 35 26 25 15 28 13 18 14 16 17 17 12 17 23 20 24
++12 18 20 14 16 17 17 12 17 23 20 24 26 24 32 28 30 35 47 39 42 63 59 71
++95 91 100 141 116 139 166 156 164 222 171 182 225 222 201 222 171 182 208 215 180 208 215 180
++217 168 156 217 168 156 177 169 143 217 168 156 177 169 143 168 146 127 168 146 127 145 140 145
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 150 147 171 148 160 159 148 160 159
++150 147 171 148 160 159 131 144 168 148 160 159 148 160 159 148 160 159 150 147 171 150 168 183
++148 160 159 150 168 183 150 171 159 150 168 183 166 174 181 150 171 159 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 185 202 202 166 180 164 166 176 200 166 180 164 166 176 200
++166 180 164 166 176 200 150 168 183 166 174 181 150 168 183 150 171 159 150 168 183 148 160 159
++131 144 168 129 144 153 129 144 153 129 144 153 122 134 144 111 122 142 111 122 142 98 121 131
++95 108 128 77 91 115 77 91 115 61 78 101 61 78 101 42 60 86 61 78 101 60 63 87
++61 78 101 61 78 101 77 91 115 77 91 115 95 108 128 95 108 128 95 108 128 111 122 142
++111 122 142 121 143 132 122 134 144 129 144 153 129 144 153 129 144 153 150 147 171 148 160 159
++148 160 159 150 168 183 148 160 159 150 168 183 148 160 159 166 174 181 150 171 159 166 174 181
++150 171 159 166 174 181 150 168 183 150 171 159 150 168 183 148 160 159 150 168 183 148 160 159
++150 168 183 148 160 159 150 147 171 131 144 168 148 160 159 129 144 153 148 160 159 129 144 153
++126 147 144 122 134 144 122 134 144 111 122 142 111 122 142 111 122 142 98 121 131 98 121 131
++95 108 128 95 108 128 95 108 128 77 91 115 77 91 115 61 78 101 61 78 101 61 78 101
++42 60 86 42 60 86 46 59 71 46 59 71 32 40 58 34 42 77 34 42 77 45 57 61
++34 42 77 46 59 71 34 42 77 34 42 77 46 59 71 34 42 77 46 59 71 42 60 86
++60 63 87 61 78 101 77 90 100 77 91 115 95 108 128 95 108 128 111 119 127 111 122 142
++122 134 144 121 143 132 122 134 144 129 144 153 148 160 159 131 144 168 148 160 159 148 160 159
++150 168 183 148 160 159 150 168 183 166 180 164 150 168 183 166 156 164 150 168 183 150 171 159
++150 168 183 150 171 159 148 160 159 148 160 159 148 160 159 129 144 153 129 144 153 126 147 144
++122 134 144 122 134 144 111 122 142 111 119 127 95 108 128 95 108 128 77 91 115 77 91 115
++77 90 100 61 78 101 60 63 87 60 63 87 42 60 86 42 60 86 46 59 71 46 59 71
++46 59 71 34 42 77 34 42 77 34 42 77 46 59 71 34 42 77 32 40 58 34 42 77
++34 42 77 46 59 71 60 63 87 61 78 101 61 78 101 77 90 100 94 105 108 95 108 128
++95 119 107 111 119 127 111 122 142 122 134 144 122 134 144 145 140 145 129 144 153 148 160 159
++150 144 154 148 160 159 148 160 159 150 168 183 166 156 164 150 168 183 166 156 164 150 168 183
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 131 144 168 148 160 159 129 144 153
++129 144 153 129 144 153 126 147 144 122 134 144 122 134 144 122 134 144 122 134 144 111 122 142
++121 143 132 111 122 142 111 122 142 121 143 132 122 134 144 121 143 132 122 134 144 122 134 144
++145 140 145 129 144 153 129 144 153 145 140 145 129 144 153 148 160 159 129 144 153 148 160 159
++148 160 159 131 144 168 148 160 159 150 147 171 148 160 159 150 147 171 148 160 159 129 144 153
++148 160 159 129 144 153 126 147 144 122 134 144 122 134 144 111 119 127 98 121 131 98 121 131
++95 108 128 77 91 115 77 90 100 61 78 101 60 81 83 46 59 71 46 59 71 34 42 77
++32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 29 34 50 34 42 77 29 34 50
++34 42 77 46 59 71 60 63 87 60 63 87 75 81 90 77 90 100 77 91 115 95 108 128
++111 119 127 111 119 127 122 134 144 122 134 144 122 134 144 126 147 144 129 144 153 148 160 159
++146 162 145 150 144 154 148 160 159 148 160 159 129 144 153 148 160 159 148 160 159 148 160 159
++150 144 154 148 160 159 129 144 153 129 144 153 145 140 145 129 144 153 126 147 144 122 134 144
++122 134 144 111 119 127 111 119 127 111 119 127 95 119 107 95 108 128 94 105 108 77 90 100
++77 90 100 77 90 100 75 81 90 75 81 90 60 81 83 60 63 87 60 63 87 60 63 87
++60 63 87 59 69 70 60 63 87 60 63 87 59 69 70 60 63 87 60 63 87 46 59 71
++
++65 63 61 65 63 61 59 55 55 47 49 42 36 35 37 33 30 30 22 25 24 26 30 28
++33 30 30 42 41 42 48 50 48 54 57 61 65 63 61 59 69 70 75 81 76 75 81 76
++75 81 90 90 98 89 95 91 100 94 105 108 94 105 108 94 105 108 112 123 108 111 119 127
++138 126 108 111 119 127 111 119 127 121 143 132 111 119 127 111 119 127 121 143 132 141 116 139
++121 143 132 119 117 138 112 123 108 111 119 127 111 119 127 112 123 108 94 105 108 94 105 108
++95 91 100 75 81 90 75 72 67 53 63 61 52 55 48 47 44 42 31 35 35 26 30 28
++14 16 17 14 16 17 14 16 17 23 18 22 22 25 24 36 35 37 52 55 48 75 72 67
++75 81 69 90 98 89 112 96 108 112 123 108 111 119 127 138 126 108 121 143 132 138 126 108
++145 140 145 121 143 132 146 151 137 138 126 108 121 143 132 122 134 144 138 126 108 121 143 132
++138 126 108 112 123 108 121 143 132 111 119 127 138 126 108 119 117 138 138 126 108 121 143 132
++111 119 127 121 143 132 121 143 132 138 126 108 145 140 145 121 143 132 145 140 145 146 151 137
++150 144 154 146 151 137 148 160 159 146 162 145 150 144 154 166 156 164 150 144 154 146 162 145
++146 151 137 146 162 145 150 144 154 146 151 137 150 144 154 146 151 137 146 151 137 150 144 154
++146 162 145 150 144 154 148 160 159 148 160 159 146 162 145 150 144 154 146 162 145 150 144 154
++146 151 137 126 147 144 146 151 137 145 140 145 145 140 145 146 151 137 145 140 145 146 151 137
++146 151 137 145 140 145 146 162 145 150 144 154 146 162 145 150 144 154 148 160 159 150 144 154
++146 162 145 150 144 154 150 144 154 146 162 145 150 144 154 146 162 145 146 151 137 146 162 145
++150 144 154 148 160 159 146 162 145 150 144 154 146 162 145 145 140 145 146 151 137 126 147 144
++145 140 145 121 143 132 141 116 139 121 143 132 111 119 127 111 119 127 111 119 127 111 119 127
++111 119 127 95 108 128 95 95 116 77 91 115 77 90 100 61 78 101 60 63 87 46 59 71
++34 42 77 34 42 77 24 30 43 34 42 77 12 18 30 34 42 77 24 30 43 34 42 77
++12 18 30 34 42 77 24 30 43 34 42 77 29 34 50 32 40 58 32 40 58 57 43 64
++57 43 64 57 43 64 75 59 67 75 59 67 88 66 70 88 69 84 101 60 73 95 91 100
++120 63 71 112 96 108 138 102 108 112 96 108 138 102 108 138 126 108 138 102 108 141 116 139
++138 126 108 163 117 123 141 116 139 168 146 127 163 117 123 145 140 145 163 117 123 145 140 145
++168 146 127 145 140 145 168 146 127 163 117 123 145 140 145 168 146 127 145 140 145 168 146 127
++145 140 145 168 146 127 145 140 145 145 140 145 168 146 127 145 140 145 168 146 127 145 140 145
++168 146 127 141 116 139 168 146 127 145 140 145 168 146 127 150 144 154 163 117 123 145 140 145
++168 146 127 145 140 145 168 146 127 145 140 145 168 146 127 168 146 127 150 144 154 168 146 127
++168 146 127 150 144 154 168 146 127 168 146 127 145 140 145 168 146 127 168 146 127 168 146 127
++168 146 127 150 144 154 168 146 127 168 146 127 168 146 127 177 169 143 168 146 127 168 146 127
++146 151 137 168 146 127 150 144 154 138 126 108 65 63 61 26 25 15 3 3 1 7 12 13
++13 4 7 13 4 7 17 12 17 13 4 7 6 15 6 3 4 9 13 4 7 3 4 9
++3 4 9 3 3 1 3 4 9 13 4 7 3 3 1 13 4 7 53 35 37 101 83 74
++117 112 45 117 99 86 120 63 71 117 112 45 101 83 74 101 74 26 88 73 62 120 63 71
++117 112 45 120 63 71 117 99 86 101 83 74 101 83 74 88 73 62 88 73 62 75 56 53
++63 55 45 60 49 42 53 35 37 34 30 15 34 30 15 26 12 13 22 24 13 23 10 10
++22 24 13 22 24 13 26 12 13 26 12 13 22 24 13 22 24 13 23 10 10 15 17 7
++13 4 7 15 17 7 15 17 7 13 4 7 6 15 6 13 4 7 13 4 7 3 3 1
++13 4 7 34 30 15 63 55 45 101 83 74 112 123 108 117 99 86 112 96 108 99 93 84
++99 93 84 88 83 88 88 83 74 75 81 76 75 59 67 63 59 71 63 59 71 57 43 64
++34 42 77 46 59 71 34 42 77 32 40 58 34 42 77 32 40 58 34 42 77 32 40 58
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 42 60 86
++42 60 86 60 63 87 61 78 101 77 91 115 77 91 115 95 108 128 95 108 128 95 108 128
++95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 77 91 115 77 91 115
++77 91 115 77 90 100 77 90 100 61 78 101 61 78 101 60 81 83 61 78 101 61 78 101
++77 90 100 77 91 115 77 91 115 95 108 128 98 121 131 98 121 131 111 122 142 122 134 144
++126 147 144 129 144 153 148 160 159 150 147 171 148 160 159 150 168 183 150 171 159 166 174 181
++150 168 183 150 171 159 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 150 144 154
++126 147 144 122 134 144 122 134 144 121 143 132 111 119 127 95 119 107 94 105 108 75 81 90
++60 81 83 60 81 83 59 69 70 60 81 83 75 81 90 77 90 100 94 105 108 112 123 108
++111 119 127 119 117 138 122 134 144 126 147 144 148 160 159 148 160 159 150 171 159 166 156 164
++150 171 159 166 180 164 166 174 181 166 180 164 166 174 181 166 174 181 166 180 164 166 174 181
++166 174 181 166 174 181 148 160 159 112 123 108 117 99 86 117 99 86 146 150 115 177 169 143
++189 165 168 177 169 143 168 146 127 112 123 108 117 99 86 75 77 62 55 39 37 34 30 15
++23 10 10 15 17 7 17 12 17 23 18 22 22 25 24 22 25 24 22 23 31 26 24 32
++28 30 35 22 23 31 22 23 31 12 18 30 23 20 24 23 18 22 23 20 24 23 20 24
++22 25 24 36 35 37 53 63 61 90 98 89 145 140 145 166 156 164 185 202 202 222 171 182
++208 215 180 208 215 180 217 168 156 177 169 143 168 146 127 166 156 164 168 146 127 146 151 137
++148 160 159 150 147 171 148 160 159 148 160 159 150 168 183 148 160 159 148 160 159 150 168 183
++148 160 159 150 168 183 148 160 159 150 168 183 148 160 159 150 168 183 148 160 159 148 160 159
++150 168 183 148 160 159 150 168 183 166 156 164 150 168 183 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 180 164 166 176 200 166 180 164 185 202 202 166 174 181
++166 174 181 166 174 181 166 180 164 150 168 183 150 171 159 150 168 183 150 147 171 148 160 159
++148 160 159 131 144 168 129 144 153 129 144 153 122 134 144 111 122 142 98 121 131 95 108 128
++95 108 128 77 91 115 77 91 115 61 78 101 61 78 101 61 78 101 42 60 86 60 63 87
++61 78 101 61 78 101 77 91 115 77 91 115 95 95 116 95 108 128 95 108 128 111 119 127
++111 122 142 111 122 142 122 134 144 122 134 144 129 144 153 129 144 153 129 144 153 131 144 168
++148 160 159 148 160 159 150 168 183 150 147 171 148 160 159 166 174 181 150 168 183 166 156 164
++150 168 183 166 174 181 150 168 183 166 156 164 166 174 181 166 174 181 166 156 164 150 168 183
++148 160 159 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 150 144 154 129 144 153
++129 144 153 129 144 153 122 134 144 122 134 144 121 143 132 122 134 144 111 119 127 98 121 131
++98 121 131 95 108 128 95 108 128 94 105 108 77 91 115 77 91 115 61 78 101 61 78 101
++60 63 87 42 60 86 42 60 86 34 42 77 34 42 77 45 57 61 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 46 59 71 34 42 77 34 42 77 34 42 77 46 59 71
++42 60 86 61 78 101 61 78 101 77 91 115 94 105 108 95 108 128 98 121 131 111 119 127
++111 122 142 122 134 144 129 144 153 129 144 153 148 160 159 129 144 153 148 160 159 148 160 159
++148 160 159 148 160 159 166 174 181 150 171 159 150 168 183 166 180 164 150 168 183 166 156 164
++150 171 159 150 147 171 148 160 159 148 160 159 129 144 153 129 144 153 129 144 153 122 134 144
++122 134 144 111 122 142 111 119 127 95 108 128 95 108 128 95 95 116 77 90 100 77 90 100
++61 78 101 60 63 87 60 63 87 42 60 86 46 59 71 42 60 86 46 59 71 34 42 77
++34 42 77 45 57 61 34 42 77 45 57 61 32 40 58 34 42 77 46 59 71 32 40 58
++46 59 71 42 60 86 60 63 87 60 81 83 77 90 100 77 91 115 77 91 115 95 108 128
++98 121 131 111 119 127 121 143 132 122 134 144 126 147 144 129 144 153 148 160 159 129 144 153
++148 160 159 150 168 183 148 160 159 148 160 159 150 168 183 148 160 159 150 171 159 166 156 164
++150 171 159 150 147 171 148 160 159 148 160 159 148 160 159 129 144 153 148 160 159 129 144 153
++145 140 145 129 144 153 145 140 145 126 147 144 126 147 144 122 134 144 122 134 144 111 119 127
++122 134 144 111 119 127 122 134 144 111 119 127 122 134 144 122 134 144 122 134 144 122 134 144
++126 147 144 145 140 145 129 144 153 129 144 153 129 144 153 148 160 159 129 144 153 148 160 159
++129 144 153 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153
++148 160 159 129 144 153 126 147 144 122 134 144 122 134 144 111 122 142 111 119 127 95 108 128
++94 105 108 77 91 115 77 90 100 60 81 83 42 60 86 46 59 71 46 59 71 32 40 58
++32 40 58 32 40 58 29 34 50 32 40 58 29 34 50 29 34 50 29 34 50 32 40 58
++32 40 58 46 59 71 46 59 71 60 81 83 77 90 100 77 91 115 94 105 108 95 119 107
++98 121 131 111 119 127 122 134 144 122 134 144 126 147 144 129 144 153 148 160 159 129 144 153
++129 144 153 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153
++148 160 159 148 160 159 150 144 154 146 162 145 126 147 144 129 144 153 126 147 144 122 134 144
++111 122 142 121 143 132 111 119 127 95 108 128 95 108 128 94 105 108 95 95 116 77 90 100
++75 81 90 75 81 90 60 81 83 60 81 83 60 63 87 59 69 70 46 59 71 46 59 71
++46 59 71 46 59 71 46 59 71 63 59 71 46 59 71 46 59 71 46 59 71 46 59 71
++
++65 63 61 59 57 61 52 55 48 42 47 42 36 35 37 33 30 30 33 30 30 33 30 30
++36 35 37 42 47 42 54 57 61 59 57 61 59 69 70 75 81 76 75 81 90 90 98 89
++90 98 89 95 91 100 94 105 108 94 105 108 112 123 108 111 119 127 112 123 108 111 119 127
++111 119 127 111 119 127 121 143 132 111 119 127 138 126 108 121 143 132 111 119 127 117 142 111
++122 134 144 121 143 132 111 119 127 111 119 127 112 123 108 111 119 127 112 123 108 94 105 108
++95 91 100 90 98 89 75 81 82 59 69 70 63 59 71 48 50 48 43 42 50 36 35 37
++26 24 32 23 18 22 15 17 7 17 12 17 22 24 13 26 30 28 42 41 42 55 55 48
++75 72 67 88 83 74 90 98 89 112 123 108 112 123 108 111 119 127 138 126 108 121 143 132
++121 143 132 138 126 108 145 140 145 121 143 132 121 143 132 138 126 108 121 143 132 111 119 127
++111 119 127 138 126 108 111 119 127 138 126 108 121 143 132 111 119 127 121 143 132 119 117 138
++138 126 108 122 134 144 141 116 139 121 143 132 145 140 145 146 151 137 145 140 145 146 162 145
++150 144 154 146 162 145 150 144 154 148 160 159 146 162 145 146 162 145 146 151 137 150 144 154
++146 151 137 150 144 154 146 151 137 146 162 145 145 140 145 146 162 145 150 144 154 146 162 145
++150 144 154 146 162 145 148 160 159 150 144 154 146 162 145 148 160 159 150 144 154 146 162 145
++150 144 154 146 162 145 145 140 145 146 151 137 126 147 144 146 151 137 146 162 145 145 140 145
++146 162 145 145 140 145 146 162 145 146 151 137 150 144 154 146 162 145 146 162 145 150 144 154
++146 151 137 150 144 154 146 162 145 150 144 154 146 151 137 150 144 154 150 144 154 146 162 145
++146 162 145 166 156 164 146 151 137 150 144 154 146 151 137 145 140 145 126 147 144 145 140 145
++121 143 132 122 134 144 121 143 132 119 117 138 121 143 132 111 119 127 111 119 127 112 123 108
++95 108 128 94 105 108 95 95 116 95 95 116 75 81 90 61 78 101 60 63 87 42 60 86
++34 42 77 32 40 58 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 24 30 43
++34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 32 40 58 57 43 64 57 43 64
++57 43 64 63 59 71 57 43 64 75 64 82 88 66 70 88 69 84 88 69 84 101 83 74
++112 96 108 101 83 74 112 96 108 138 102 108 112 96 108 138 102 108 138 102 108 163 117 123
++138 102 108 138 126 108 163 117 123 138 126 108 163 117 123 145 140 145 163 117 123 145 140 145
++163 117 123 145 140 145 163 117 123 145 140 145 145 140 145 163 117 123 145 140 145 163 117 123
++145 140 145 163 117 123 163 117 123 145 140 145 163 117 123 141 116 139 145 140 145 163 117 123
++145 140 145 168 146 127 141 116 139 168 146 127 141 116 139 168 146 127 145 140 145 163 117 123
++150 144 154 163 117 123 145 140 145 163 117 123 145 140 145 163 117 123 163 117 123 145 140 145
++168 146 127 163 117 123 145 140 145 168 146 127 168 146 127 145 140 145 168 146 127 168 146 127
++168 146 127 168 146 127 168 146 127 145 140 145 168 146 127 168 146 127 168 146 127 145 140 145
++168 146 127 166 156 164 138 126 108 88 83 74 33 30 30 15 17 7 13 4 7 7 12 13
++13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 13 4 7 3 4 9 13 4 7
++3 4 9 3 3 1 13 4 7 13 4 7 3 3 1 3 3 1 32 39 24 88 73 62
++117 99 86 120 63 71 117 112 45 120 63 71 117 112 45 120 63 71 101 83 74 88 73 62
++120 63 71 101 83 74 117 112 45 120 63 71 88 73 62 101 74 26 75 56 53 76 46 20
++76 46 20 47 47 21 34 30 15 34 30 15 28 13 18 26 25 15 15 17 7 23 10 10
++15 17 7 23 10 10 15 17 7 15 17 7 23 10 10 15 17 7 15 17 7 23 10 10
++15 17 7 13 4 7 15 17 7 15 17 7 13 4 7 3 3 1 13 4 7 15 17 7
++55 39 18 101 83 74 117 99 86 138 126 108 138 102 108 117 127 86 117 99 86 99 93 84
++95 91 100 101 83 74 88 83 74 75 64 82 75 59 67 63 59 71 59 57 61 46 59 71
++57 43 64 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++32 40 58 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 42 60 86
++42 60 86 61 78 101 61 78 101 77 91 115 77 91 115 95 108 128 95 108 128 111 122 142
++111 122 142 95 108 128 98 121 131 95 108 128 95 108 128 77 91 115 95 108 128 77 91 115
++77 91 115 77 90 100 61 78 101 77 90 100 61 78 101 61 78 101 77 90 100 61 78 101
++77 90 100 77 91 115 95 119 107 95 108 128 95 108 128 111 119 127 111 122 142 122 134 144
++122 134 144 129 144 153 129 144 153 148 160 159 148 160 159 150 168 183 166 174 181 166 156 164
++150 171 159 166 174 181 150 171 159 148 160 159 148 160 159 131 144 168 146 162 145 129 144 153
++126 147 144 122 134 144 121 143 132 111 119 127 111 119 127 111 119 127 90 98 89 78 98 90
++75 81 82 60 82 70 75 81 82 75 81 82 75 81 90 95 91 100 94 105 108 111 119 127
++111 119 127 121 143 132 121 143 132 145 140 145 129 144 153 148 160 159 150 147 171 150 168 183
++166 180 164 150 168 183 166 180 164 166 174 181 166 174 181 166 174 181 166 174 181 166 180 164
++166 174 181 166 180 164 166 174 181 150 144 154 138 126 108 138 126 108 168 146 127 138 126 108
++117 127 86 88 83 74 64 70 48 52 30 35 26 25 15 22 24 13 15 17 7 13 4 7
++15 17 7 17 12 17 23 18 22 23 20 24 22 25 24 30 30 34 28 30 35 33 30 36
++37 35 43 28 35 38 28 35 38 28 30 35 23 30 35 25 30 29 25 30 29 22 25 24
++23 18 22 15 22 17 14 16 17 33 30 30 55 55 48 75 81 82 138 126 108 177 169 143
++188 180 202 222 171 182 217 168 156 189 165 168 168 146 127 168 146 127 146 151 137 150 144 154
++150 171 159 166 156 164 150 168 183 148 160 159 148 160 159 150 168 183 148 160 159 148 160 159
++148 160 159 148 160 159 150 147 171 148 160 159 150 168 183 148 160 159 150 168 183 150 168 183
++148 160 159 150 168 183 166 156 164 150 168 183 166 174 181 166 174 181 150 168 183 166 180 164
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 150 168 183 166 174 181 148 160 159 148 160 159 148 160 159
++131 144 168 148 160 159 129 144 153 122 134 144 122 134 144 111 122 142 111 122 142 95 108 128
++77 91 115 77 91 115 77 91 115 61 78 101 61 78 101 42 60 86 61 78 101 42 60 86
++61 78 101 61 78 101 61 78 101 77 91 115 77 91 115 94 105 108 95 108 128 98 121 131
++111 119 127 111 122 142 121 143 132 122 134 144 129 144 153 129 144 153 129 144 153 148 160 159
++131 144 168 148 160 159 148 160 159 148 160 159 150 168 183 148 160 159 166 156 164 150 168 183
++150 171 159 166 156 164 150 168 183 166 174 181 150 171 159 150 168 183 148 160 159 150 171 159
++150 168 183 148 160 159 148 160 159 150 168 183 148 160 159 131 144 168 148 160 159 131 144 168
++145 140 145 129 144 153 129 144 153 122 134 144 122 134 144 122 134 144 111 119 127 111 122 142
++98 121 131 95 108 128 95 108 128 94 105 108 77 91 115 77 91 115 77 90 100 61 78 101
++61 78 101 60 63 87 42 60 86 42 60 86 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 32 40 58 46 59 71 34 42 77 34 42 77 46 59 71 34 42 77 42 60 86
++42 60 86 60 81 83 61 78 101 77 90 100 95 95 116 95 108 128 98 121 131 111 122 142
++111 122 142 122 134 144 122 134 144 129 144 153 129 144 153 148 160 159 131 144 168 148 160 159
++150 168 183 166 156 164 150 168 183 150 171 159 166 174 181 150 171 159 150 171 159 150 168 183
++148 160 159 148 160 159 148 160 159 131 144 168 148 160 159 129 144 153 129 144 153 122 134 144
++111 122 142 98 121 131 98 121 131 95 108 128 95 95 116 77 90 100 61 78 101 61 78 101
++60 63 87 42 60 86 42 60 86 46 59 71 34 42 77 34 42 77 34 42 77 34 42 77
++32 40 58 34 42 77 32 40 58 34 42 77 32 40 58 34 42 77 32 40 58 34 42 77
++46 59 71 60 63 87 60 63 87 61 78 101 77 90 100 77 91 115 94 105 108 95 108 128
++98 121 131 111 119 127 111 122 142 122 134 144 126 147 144 129 144 153 150 144 154 148 160 159
++148 160 159 148 160 159 150 168 183 166 156 164 150 171 159 150 168 183 148 160 159 150 168 183
++148 160 159 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 148 160 159
++126 147 144 126 147 144 126 147 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144
++121 143 132 111 122 142 121 143 132 122 134 144 122 134 144 121 143 132 122 134 144 145 140 145
++126 147 144 129 144 153 129 144 153 150 144 154 129 144 153 148 160 159 129 144 153 148 160 159
++148 160 159 150 147 171 148 160 159 131 144 168 148 160 159 148 160 159 129 144 153 146 162 145
++129 144 153 129 144 153 126 147 144 122 134 144 122 134 144 111 119 127 98 121 131 95 108 128
++95 95 116 95 95 116 61 78 101 75 81 90 60 63 87 46 59 71 46 59 71 32 40 58
++32 40 58 32 40 58 32 40 58 29 34 50 32 40 58 29 34 50 34 42 77 32 40 58
++32 40 58 46 59 71 60 63 87 60 81 83 77 90 100 77 91 115 94 105 108 95 108 128
++111 119 127 111 122 142 122 134 144 122 134 144 126 147 144 129 144 153 145 140 145 148 160 159
++148 160 159 150 144 154 148 160 159 129 144 153 148 160 159 148 160 159 150 144 154 148 160 159
++148 160 159 129 144 153 148 160 159 129 144 153 126 147 144 126 147 144 122 134 144 121 143 132
++111 119 127 111 122 142 98 121 131 95 119 107 94 105 108 77 90 100 77 90 100 77 90 100
++75 81 90 60 63 87 46 59 71 63 59 71 46 59 71 46 59 71 45 57 61 45 57 61
++45 57 61 45 57 61 45 57 61 46 59 71 45 57 61 57 43 64 45 57 61 45 57 61
++
++59 55 55 55 55 48 48 50 48 42 47 42 36 35 37 33 30 30 32 39 24 36 35 37
++42 41 42 48 50 48 59 57 61 63 59 71 75 81 76 75 81 82 88 83 88 95 91 100
++95 91 100 94 105 108 94 105 108 112 123 108 95 119 107 111 119 127 112 123 108 111 119 127
++112 123 108 111 119 127 138 126 108 111 119 127 111 119 127 111 119 127 121 143 132 111 119 127
++111 119 127 122 134 144 138 126 108 121 143 132 111 119 127 111 119 127 111 119 127 112 123 108
++94 105 108 94 105 108 88 83 88 75 81 76 59 69 70 59 57 61 48 50 48 42 41 42
++33 30 32 22 25 24 14 16 17 17 12 17 15 17 7 23 18 22 32 39 24 47 49 42
++65 63 61 75 81 76 88 83 88 112 96 108 112 123 108 112 123 108 111 119 127 138 126 108
++141 116 139 121 143 132 121 143 132 138 126 108 141 116 139 121 143 132 119 117 138 138 126 108
++138 126 108 122 134 144 138 126 108 111 119 127 111 119 127 121 143 132 138 126 108 111 119 127
++121 143 132 138 126 108 121 143 132 145 140 145 121 143 132 126 147 144 146 151 137 145 140 145
++146 162 145 148 160 159 146 162 145 150 144 154 148 160 159 150 144 154 146 151 137 146 162 145
++145 140 145 146 151 137 150 144 154 146 151 137 150 144 154 146 162 145 150 144 154 146 162 145
++150 144 154 146 162 145 166 156 164 146 162 145 150 144 154 148 160 159 146 162 145 150 144 154
++146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 150 144 154 145 140 145 146 162 145
++145 140 145 146 162 145 145 140 145 146 162 145 146 151 137 150 144 154 150 144 154 146 162 145
++150 144 154 146 151 137 145 140 145 146 151 137 150 144 154 146 162 145 146 151 137 150 144 154
++146 151 137 146 162 145 150 144 154 146 162 145 146 151 137 145 140 145 145 140 145 121 143 132
++122 134 144 121 143 132 119 117 138 121 143 132 119 117 138 111 119 127 111 119 127 95 108 128
++111 119 127 95 108 128 94 105 108 77 91 115 77 90 100 61 78 101 60 63 87 46 59 71
++34 42 77 29 34 50 34 42 77 24 30 43 34 42 77 12 18 30 34 42 77 24 30 43
++34 42 77 29 34 50 24 30 43 34 42 77 29 34 50 32 40 58 32 40 58 34 42 77
++57 43 64 57 43 64 75 59 67 75 59 67 75 59 67 88 66 70 101 60 73 88 69 84
++120 63 71 112 96 108 120 63 71 117 99 86 117 99 86 138 102 108 138 102 108 138 102 108
++163 117 123 138 102 108 163 117 123 138 126 108 163 117 123 163 117 123 145 140 145 163 117 123
++163 117 123 163 117 123 145 140 145 163 117 123 163 117 123 163 117 123 163 117 123 145 140 145
++163 117 123 163 117 123 145 140 145 163 117 123 138 126 108 163 117 123 146 150 115 163 117 123
++163 117 123 145 140 145 163 117 123 163 117 123 145 140 145 163 117 123 145 140 145 163 117 123
++141 116 139 168 146 127 163 117 123 145 140 145 163 117 123 163 117 123 146 151 137 163 117 123
++163 117 123 168 146 127 163 117 123 145 140 145 163 117 123 163 117 123 163 117 123 168 146 127
++163 117 123 145 140 145 163 117 123 168 146 127 168 146 127 168 146 127 163 117 123 168 146 127
++168 146 127 145 140 145 117 99 86 51 49 42 17 12 17 15 17 7 7 12 13 13 4 7
++7 12 13 15 17 7 7 12 13 13 4 7 3 4 9 3 3 1 13 4 7 3 4 9
++3 3 1 13 4 7 3 4 9 3 4 9 3 3 1 3 3 1 34 30 15 75 56 53
++101 83 74 117 112 45 101 83 74 117 99 86 101 83 74 101 83 74 101 74 26 120 63 71
++88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 76 46 20 75 56 53 60 49 42
++52 30 35 52 30 15 34 30 15 34 30 15 34 30 15 26 25 15 22 24 13 15 17 7
++15 17 7 15 17 7 15 17 7 23 10 10 15 17 7 23 10 10 15 17 7 15 17 7
++13 4 7 15 17 7 13 4 7 13 4 7 3 3 1 3 3 1 26 25 15 63 55 45
++101 83 74 138 126 108 138 126 108 138 126 108 117 99 86 117 99 86 112 96 108 117 99 86
++99 93 84 88 83 88 88 83 74 75 72 67 75 59 67 63 59 71 46 59 71 57 43 64
++46 59 71 34 42 77 32 40 58 34 42 77 32 40 58 34 42 77 32 40 58 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 42 60 86
++42 60 86 61 78 101 61 78 101 77 91 115 95 108 128 95 108 128 95 108 128 111 122 142
++95 108 128 111 122 142 98 121 131 98 121 131 95 108 128 98 121 131 77 91 115 94 105 108
++77 91 115 77 91 115 77 91 115 77 90 100 77 90 100 61 78 101 77 90 100 61 78 101
++77 90 100 77 91 115 77 91 115 94 105 108 95 108 128 98 121 131 111 122 142 122 134 144
++129 144 153 129 144 153 148 160 159 150 147 171 148 160 159 166 156 164 150 171 159 166 174 181
++150 168 183 150 171 159 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153
++145 140 145 126 147 144 122 134 144 121 143 132 111 119 127 112 123 108 94 105 108 77 90 100
++75 81 82 75 81 82 59 69 70 60 81 83 75 81 90 77 90 100 94 105 108 111 119 127
++111 119 127 122 134 144 122 134 144 126 147 144 129 144 153 148 160 159 148 160 159 150 171 159
++150 168 183 150 171 159 166 174 181 166 174 181 166 174 181 166 180 164 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 180 164 145 140 145 112 123 108 99 93 84 75 63 62
++47 47 21 26 25 15 13 4 7 13 4 7 13 4 7 13 4 7 15 17 7 26 25 15
++22 25 24 22 25 24 23 20 24 23 20 24 23 20 24 23 20 24 22 23 31 26 24 32
++26 24 32 26 24 32 28 30 35 25 30 29 30 30 34 30 30 34 33 30 36 31 35 35
++30 30 34 33 30 30 22 25 24 14 16 17 17 12 17 26 24 32 53 46 48 99 93 84
++146 150 115 177 169 143 208 215 180 189 165 168 177 169 143 146 150 115 168 146 127 146 162 145
++166 156 164 150 171 159 150 168 183 150 171 159 150 168 183 148 160 159 150 168 183 148 160 159
++150 168 183 150 168 183 148 160 159 150 168 183 148 160 159 150 168 183 148 160 159 148 160 159
++150 168 183 150 171 159 166 174 181 150 171 159 150 168 183 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 176 200 166 180 164 185 202 202 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 150 171 159 150 168 183 148 160 159 150 168 183 131 144 168
++148 160 159 129 144 153 129 144 153 129 144 153 122 134 144 111 122 142 98 121 131 95 108 128
++95 108 128 77 91 115 77 91 115 61 78 101 42 60 86 60 63 87 42 60 86 42 60 86
++60 63 87 61 78 101 61 78 101 77 91 115 77 91 115 77 91 115 95 108 128 95 108 128
++98 121 131 111 119 127 111 122 142 122 134 144 122 134 144 129 144 153 129 144 153 129 144 153
++131 144 168 148 160 159 148 160 159 150 147 171 148 160 159 150 168 183 150 168 183 148 160 159
++166 174 181 150 171 159 166 174 181 148 160 159 166 174 181 150 168 183 148 160 159 150 168 183
++166 156 164 148 160 159 150 168 183 148 160 159 148 160 159 148 160 159 150 147 171 148 160 159
++148 160 159 129 144 153 129 144 153 129 144 153 129 144 153 122 134 144 122 134 144 121 143 132
++111 122 142 98 121 131 98 121 131 95 108 128 95 108 128 95 95 116 77 91 115 77 91 115
++61 78 101 61 78 101 60 63 87 42 60 86 42 60 86 34 42 77 45 57 61 34 42 77
++32 40 58 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 46 59 71 46 59 71
++60 63 87 60 63 87 61 78 101 77 91 115 77 91 115 95 108 128 98 121 131 111 119 127
++111 122 142 122 134 144 122 134 144 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159
++148 160 159 150 168 183 150 171 159 166 174 181 150 171 159 150 168 183 166 180 164 150 168 183
++150 171 159 148 160 159 148 160 159 148 160 159 129 144 153 129 144 153 122 134 144 122 134 144
++122 134 144 98 121 131 95 108 128 94 105 108 77 91 115 77 90 100 75 81 90 60 63 87
++42 60 86 46 59 71 34 42 77 34 42 77 46 59 71 34 42 77 45 57 61 34 42 77
++32 40 58 34 42 77 32 40 58 34 42 77 32 40 58 32 40 58 34 42 77 46 59 71
++46 59 71 42 60 86 60 63 87 61 78 101 77 90 100 77 91 115 94 105 108 95 108 128
++111 119 127 111 119 127 122 134 144 122 134 144 129 144 153 150 144 154 129 144 153 148 160 159
++148 160 159 148 160 159 148 160 159 150 168 183 150 171 159 166 156 164 150 168 183 150 171 159
++166 156 164 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 148 160 159
++129 144 153 145 140 145 129 144 153 126 147 144 126 147 144 122 134 144 121 143 132 111 122 142
++122 134 144 111 122 142 122 134 144 122 134 144 122 134 144 122 134 144 126 147 144 122 134 144
++129 144 153 145 140 145 129 144 153 129 144 153 148 160 159 129 144 153 150 144 154 148 160 159
++129 144 153 131 144 168 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153
++148 160 159 129 144 153 122 134 144 121 143 132 111 122 142 111 119 127 111 119 127 95 108 128
++94 105 108 77 91 115 61 78 101 60 81 83 60 63 87 46 59 71 46 59 71 34 42 77
++32 40 58 32 40 58 29 34 50 32 40 58 29 34 50 32 40 58 29 34 50 32 40 58
++45 57 61 45 57 61 60 63 87 61 78 101 77 90 100 94 105 108 95 108 128 95 119 107
++111 119 127 111 119 127 122 134 144 129 144 153 126 147 144 129 144 153 129 144 153 148 160 159
++129 144 153 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159
++129 144 153 148 160 159 145 140 145 129 144 153 145 140 145 122 134 144 122 134 144 122 134 144
++111 119 127 111 119 127 95 108 128 94 105 108 77 91 115 77 90 100 75 81 90 75 81 90
++60 63 87 46 59 71 46 59 71 46 59 71 45 57 61 32 40 58 32 40 58 32 40 58
++32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58
++
++52 55 48 51 49 42 47 44 42 36 35 37 32 39 24 33 30 30 36 35 37 42 47 42
++51 49 42 54 57 61 65 63 61 75 72 67 75 81 82 88 83 88 90 98 89 94 105 108
++94 105 108 112 96 108 95 119 107 112 96 108 111 119 127 112 123 108 111 119 127 111 119 127
++111 119 127 111 119 127 111 119 127 111 119 127 117 142 111 111 119 127 111 119 127 138 126 108
++121 143 132 121 143 132 119 117 138 121 143 132 141 116 139 121 143 132 111 119 127 111 119 127
++112 123 108 112 96 108 94 105 108 88 83 88 75 81 76 75 72 67 54 57 61 48 50 48
++42 38 42 30 30 34 22 25 24 15 17 7 14 16 17 14 16 17 26 30 28 42 41 42
++52 55 48 65 63 61 88 83 74 90 98 89 112 96 108 112 123 108 112 123 108 111 119 127
++112 123 108 138 126 108 111 119 127 121 143 132 138 126 108 111 119 127 138 126 108 121 143 132
++119 117 138 138 126 108 111 119 127 121 143 132 138 126 108 111 119 127 121 143 132 121 143 132
++141 116 139 121 143 132 121 143 132 146 150 115 145 140 145 145 140 145 146 151 137 150 144 154
++146 162 145 166 156 164 146 162 145 166 156 164 146 162 145 150 144 154 146 162 145 150 144 154
++146 162 145 145 140 145 146 151 137 129 144 153 146 162 145 150 144 154 146 162 145 150 144 154
++146 162 145 148 160 159 146 162 145 150 144 154 166 156 164 146 162 145 148 160 159 146 162 145
++150 144 154 146 162 145 145 140 145 146 162 145 150 144 154 146 162 145 146 162 145 150 144 154
++146 162 145 145 140 145 146 162 145 145 140 145 145 140 145 146 162 145 146 151 137 150 144 154
++146 151 137 145 140 145 146 151 137 146 151 137 146 151 137 146 151 137 145 140 145 146 151 137
++150 144 154 146 151 137 146 151 137 145 140 145 129 144 153 126 147 144 145 140 145 122 134 144
++138 126 108 119 117 138 121 143 132 111 119 127 111 119 127 111 119 127 111 119 127 112 96 108
++94 105 108 95 95 116 95 95 116 77 90 100 77 90 100 61 78 101 60 81 83 42 60 86
++32 40 58 34 42 77 24 30 43 24 30 43 34 42 77 24 30 43 34 42 77 24 30 43
++34 42 77 12 18 30 34 42 77 29 34 50 34 42 77 29 34 50 57 43 64 57 43 64
++57 43 64 57 43 64 63 59 71 75 59 67 75 64 82 101 60 73 88 69 84 101 60 73
++88 69 84 120 63 71 112 96 108 120 63 71 138 102 108 138 102 108 138 102 108 138 102 108
++138 102 108 138 102 108 138 102 108 163 117 123 163 117 123 138 126 108 163 117 123 163 117 123
++138 126 108 163 117 123 163 117 123 163 117 123 138 126 108 163 117 123 163 117 123 138 126 108
++163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 138 126 108
++163 117 123 163 117 123 163 117 123 138 126 108 163 117 123 163 117 123 163 117 123 163 117 123
++163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 138 126 108
++168 146 127 138 126 108 163 117 123 168 146 127 163 117 123 168 146 127 163 117 123 163 117 123
++168 146 127 163 117 123 168 146 127 168 146 127 163 117 123 163 117 123 168 146 127 168 146 127
++168 146 127 112 96 108 63 55 45 23 20 24 23 10 10 7 12 13 3 3 1 13 4 7
++7 12 13 13 4 7 17 12 17 13 4 7 3 4 9 13 4 7 3 4 9 3 3 1
++3 3 1 3 3 1 3 3 1 13 4 7 3 3 1 3 3 1 23 10 10 55 39 37
++88 73 31 101 83 74 120 63 71 117 112 45 120 63 71 101 74 26 101 83 74 88 73 62
++101 74 26 88 44 51 88 73 31 88 44 51 75 56 53 63 55 45 63 55 45 76 46 20
++32 39 24 34 30 15 28 13 18 26 12 13 26 25 15 26 12 13 15 17 7 23 10 10
++15 17 7 13 4 7 13 4 7 15 17 7 15 17 7 15 17 7 15 17 7 13 4 7
++6 15 6 3 3 1 13 4 7 3 3 1 13 4 7 34 30 15 88 73 62 117 114 76
++138 126 108 138 126 108 138 126 108 117 99 86 117 99 86 117 99 86 117 99 86 99 93 84
++101 83 74 88 69 84 88 69 84 75 64 82 63 59 71 63 59 71 57 43 64 46 59 71
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++32 40 58 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 42 60 86 42 60 86
++42 60 86 61 78 101 77 91 115 77 91 115 77 91 115 95 108 128 111 122 142 95 108 128
++111 122 142 111 122 142 111 122 142 98 121 131 98 121 131 95 108 128 95 108 128 95 108 128
++95 95 116 77 91 115 77 91 115 77 90 100 61 78 101 77 90 100 77 90 100 61 78 101
++77 91 115 77 91 115 94 105 108 95 108 128 95 108 128 98 121 131 111 122 142 122 134 144
++122 134 144 129 144 153 131 144 168 148 160 159 150 168 183 148 160 159 150 168 183 166 174 181
++150 171 159 150 168 183 150 171 159 150 168 183 148 160 159 148 160 159 148 160 159 150 144 154
++126 147 144 145 140 145 121 143 132 122 134 144 111 119 127 111 119 127 94 105 108 90 98 89
++75 81 90 75 81 82 75 81 76 75 81 82 75 81 90 90 98 89 94 105 108 112 123 108
++111 119 127 121 143 132 119 117 138 145 140 145 129 144 153 148 160 159 148 160 159 150 168 183
++150 171 159 166 174 181 150 168 183 166 180 164 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 180 164 166 174 181 166 174 181 122 134 144 75 63 62 12 18 20 3 4 9
++3 4 9 7 12 13 15 17 7 15 22 17 14 16 17 23 18 22 23 18 22 23 18 22
++23 20 24 23 18 22 23 20 24 23 18 22 15 22 17 23 20 24 23 20 24 23 18 22
++23 20 24 23 20 24 23 20 24 23 20 24 23 20 24 22 25 24 22 25 24 26 24 32
++26 30 28 30 30 34 26 30 28 30 30 34 26 24 32 26 24 32 23 20 24 23 20 24
++47 39 42 99 93 84 150 144 154 177 169 143 166 156 164 141 116 139 146 151 137 150 144 154
++166 180 164 150 168 183 166 156 164 150 171 159 150 171 159 150 168 183 148 160 159 150 168 183
++148 160 159 148 160 159 150 168 183 150 147 171 150 168 183 148 160 159 150 168 183 150 168 183
++166 156 164 150 168 183 150 168 183 166 174 181 166 156 164 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 185 202 202 166 180 164 166 174 181 166 174 181 166 180 164 166 176 200
++166 180 164 166 174 181 150 168 183 150 168 183 150 171 159 150 168 183 148 160 159 148 160 159
++131 144 168 129 144 153 129 144 153 122 134 144 111 122 142 111 122 142 98 121 131 95 108 128
++77 91 115 77 91 115 61 78 101 61 78 101 61 78 101 42 60 86 42 60 86 60 63 87
++61 78 101 60 63 87 61 78 101 61 78 101 77 91 115 77 91 115 95 95 116 95 108 128
++95 108 128 111 122 142 111 122 142 111 122 142 122 134 144 122 134 144 129 144 153 129 144 153
++148 160 159 129 144 153 148 160 159 148 160 159 150 147 171 148 160 159 148 160 159 166 174 181
++148 160 159 150 168 183 150 168 183 166 156 164 150 168 183 150 171 159 166 156 164 150 168 183
++150 171 159 150 168 183 166 156 164 150 168 183 148 160 159 150 147 171 148 160 159 150 147 171
++148 160 159 131 144 168 148 160 159 129 144 153 129 144 153 129 144 153 122 134 144 111 122 142
++111 122 142 111 122 142 111 119 127 98 121 131 95 108 128 95 108 128 77 91 115 77 91 115
++77 90 100 61 78 101 42 60 86 42 60 86 42 60 86 34 42 77 34 42 77 34 42 77
++34 42 77 32 40 58 34 42 77 45 57 61 34 42 77 34 42 77 46 59 71 42 60 86
++42 60 86 60 81 83 61 78 101 77 90 100 95 95 116 95 108 128 95 108 128 111 119 127
++121 143 132 122 134 144 122 134 144 129 144 153 129 144 153 148 160 159 131 144 168 148 160 159
++150 168 183 166 156 164 150 171 159 150 168 183 166 174 181 150 171 159 150 168 183 148 160 159
++148 160 159 148 160 159 148 160 159 131 144 168 129 144 153 129 144 153 129 144 153 111 122 142
++98 121 131 98 121 131 94 105 108 95 95 116 77 91 115 61 78 101 60 81 83 42 60 86
++46 59 71 34 42 77 34 42 77 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58
++34 42 77 32 40 58 32 40 58 45 57 61 34 42 77 32 40 58 34 42 77 45 57 61
++42 60 86 60 63 87 60 81 83 61 78 101 77 90 100 95 95 116 95 108 128 95 108 128
++111 119 127 111 122 142 122 134 144 122 134 144 126 147 144 129 144 153 148 160 159 148 160 159
++148 160 159 150 147 171 150 171 159 166 156 164 150 168 183 150 171 159 148 160 159 150 168 183
++148 160 159 150 168 183 148 160 159 150 147 171 148 160 159 129 144 153 148 160 159 129 144 153
++129 144 153 126 147 144 129 144 153 122 134 144 129 144 153 122 134 144 122 134 144 122 134 144
++122 134 144 121 143 132 122 134 144 122 134 144 122 134 144 145 140 145 129 144 153 129 144 153
++129 144 153 129 144 153 150 144 154 129 144 153 150 144 154 131 144 168 148 160 159 129 144 153
++148 160 159 148 160 159 148 160 159 131 144 168 148 160 159 131 144 168 148 160 159 131 144 168
++129 144 153 129 144 153 122 134 144 122 134 144 111 119 127 98 121 131 98 121 131 94 105 108
++94 105 108 77 91 115 75 81 90 61 78 101 42 60 86 46 59 71 34 42 77 32 40 58
++32 40 58 32 40 58 29 34 50 29 34 50 32 40 58 32 40 58 32 40 58 32 40 58
++46 59 71 46 59 71 60 63 87 75 81 90 77 90 100 77 91 115 94 105 108 98 121 131
++111 119 127 121 143 132 122 134 144 122 134 144 145 140 145 129 144 153 148 160 159 129 144 153
++148 160 159 148 160 159 148 160 159 150 144 154 148 160 159 148 160 159 129 144 153 148 160 159
++150 144 154 129 144 153 146 162 145 126 147 144 126 147 144 122 134 144 122 134 144 111 119 127
++98 121 131 98 121 131 94 105 108 95 95 116 77 90 100 75 81 90 60 63 87 60 63 87
++46 59 71 46 59 71 32 40 58 32 40 58 29 34 50 29 34 50 29 34 50 29 34 50
++32 40 58 29 34 50 43 42 50 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58
++
++51 49 42 47 44 42 42 41 42 36 35 37 32 39 24 32 39 24 36 35 37 47 49 42
++52 55 48 59 57 61 63 59 71 75 81 76 75 81 82 77 90 100 90 98 89 95 91 100
++112 123 108 94 105 108 111 119 127 112 123 108 111 119 127 111 119 127 111 119 127 117 142 111
++111 119 127 117 142 111 111 119 127 138 126 108 111 119 127 111 119 127 121 143 132 111 119 127
++119 117 138 111 119 127 121 143 132 121 143 132 111 119 127 121 143 132 138 126 108 119 117 138
++111 119 127 112 123 108 94 105 108 90 98 89 88 83 88 75 81 76 65 63 61 54 57 61
++48 44 48 36 35 37 33 30 30 22 25 24 22 24 13 14 16 17 26 25 15 36 35 37
++47 49 42 53 63 61 75 77 62 88 83 88 90 98 89 95 91 100 112 96 108 112 123 108
++112 123 108 111 119 127 138 126 108 111 119 127 138 126 108 111 119 127 138 126 108 111 119 127
++138 126 108 111 119 127 121 143 132 138 126 108 111 119 127 121 143 132 138 126 108 111 119 127
++121 143 132 138 126 108 121 143 132 145 140 145 126 147 144 146 151 137 145 140 145 146 162 145
++150 144 154 146 162 145 166 156 164 146 162 145 148 160 159 146 162 145 150 144 154 146 151 137
++145 140 145 146 162 145 145 140 145 146 151 137 145 140 145 146 162 145 150 144 154 146 162 145
++150 144 154 146 162 145 150 144 154 148 160 159 146 162 145 146 162 145 150 144 154 148 160 159
++146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 150 144 154 150 144 154 146 162 145
++150 144 154 146 151 137 150 144 154 146 151 137 145 140 145 146 151 137 150 144 154 146 151 137
++145 140 145 146 151 137 126 147 144 145 140 145 145 140 145 126 147 144 146 151 137 146 151 137
++146 151 137 145 140 145 146 151 137 126 147 144 145 140 145 145 140 145 122 134 144 121 143 132
++119 117 138 121 143 132 111 119 127 111 119 127 112 123 108 95 108 128 112 123 108 111 119 127
++95 108 128 94 105 108 95 95 116 77 91 115 77 90 100 60 81 83 42 60 86 42 60 86
++34 42 77 32 40 58 34 42 77 34 42 77 12 18 30 34 42 77 24 30 43 34 42 77
++24 30 43 34 42 77 29 34 50 34 42 77 29 34 50 34 42 77 32 40 58 32 40 58
++57 43 64 57 43 64 57 43 64 57 43 64 76 44 53 75 59 67 88 69 84 101 60 73
++95 91 100 120 63 71 112 96 108 120 63 71 117 99 86 120 63 71 117 99 86 138 102 108
++168 102 88 138 102 108 138 102 108 138 102 108 163 117 123 138 126 108 163 117 123 138 126 108
++163 117 123 163 117 123 138 126 108 163 117 123 163 117 123 138 126 108 163 117 123 163 117 123
++163 117 123 138 126 108 163 117 123 138 126 108 163 117 123 138 126 108 163 117 123 138 126 108
++163 117 123 138 126 108 163 117 123 163 117 123 163 117 123 138 126 108 163 117 123 163 117 123
++163 117 123 163 117 123 138 126 108 163 117 123 138 126 108 163 117 123 138 126 108 163 117 123
++163 117 123 163 117 123 138 126 108 163 117 123 163 117 123 146 150 115 163 117 123 146 150 115
++163 117 123 168 146 127 163 117 123 163 117 123 146 150 115 163 117 123 168 146 127 168 146 127
++138 102 108 88 73 62 52 30 35 15 17 7 15 17 7 13 4 7 13 4 7 7 12 13
++13 4 7 17 12 17 7 12 13 15 17 7 3 3 1 3 4 9 6 15 6 13 4 7
++3 4 9 3 3 1 13 4 7 6 15 6 3 3 1 13 4 7 3 3 1 34 30 15
++75 56 53 88 73 62 101 74 26 101 83 74 101 74 26 101 83 74 101 74 26 120 63 71
++88 73 62 88 44 51 75 56 53 75 56 53 60 49 42 76 46 20 60 49 42 53 35 37
++52 30 15 34 30 15 26 12 13 22 24 13 23 10 10 15 17 7 15 17 7 6 15 6
++15 17 7 13 4 7 15 17 7 13 4 7 15 17 7 13 4 7 13 4 7 6 15 6
++13 4 7 3 3 1 3 3 1 15 17 7 55 39 37 101 83 74 117 127 86 163 117 123
++138 126 108 138 126 108 138 102 108 117 127 86 138 102 108 117 99 86 117 99 86 99 93 84
++101 83 74 88 83 74 75 72 67 75 59 67 63 59 71 63 59 71 46 59 71 57 43 64
++34 42 77 34 42 77 32 40 58 34 42 77 34 42 77 32 40 58 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 42 60 86
++60 63 87 61 78 101 77 91 115 77 91 115 95 108 128 111 122 142 95 108 128 111 122 142
++111 122 142 111 122 142 111 122 142 111 122 142 98 121 131 98 121 131 95 108 128 95 108 128
++95 108 128 94 105 108 77 90 100 77 91 115 77 90 100 77 90 100 77 90 100 77 91 115
++78 98 90 77 91 115 77 91 115 94 105 108 95 108 128 111 119 127 111 119 127 122 134 144
++126 147 144 129 144 153 131 144 168 148 160 159 148 160 159 150 168 183 150 171 159 166 156 164
++166 174 181 150 171 159 166 174 181 150 171 159 148 160 159 148 160 159 129 144 153 148 160 159
++148 160 159 145 140 145 122 134 144 145 140 145 121 143 132 111 119 127 112 123 108 94 105 108
++78 98 90 75 81 82 75 81 82 75 81 82 78 98 90 94 105 108 94 105 108 112 123 108
++111 119 127 111 119 127 121 143 132 121 143 132 129 144 153 148 160 159 148 160 159 150 171 159
++150 168 183 150 171 159 166 180 164 166 174 181 150 168 183 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 150 144 154 75 81 82 23 20 24 3 3 1 3 3 1
++14 16 17 14 16 17 15 22 17 23 18 22 23 20 24 15 22 17 23 20 24 14 16 17
++14 16 17 22 25 24 23 20 24 22 25 24 22 23 31 22 25 24 22 25 24 23 20 24
++22 23 31 22 23 31 22 25 24 22 25 24 23 18 22 23 18 22 23 20 24 22 25 24
++26 30 28 26 24 32 26 30 28 30 30 34 30 30 34 30 30 34 33 30 30 22 25 24
++26 25 15 36 35 37 88 73 62 112 96 108 138 126 108 146 151 137 146 151 137 148 160 159
++166 156 164 166 180 164 150 168 183 166 156 164 150 168 183 150 171 159 150 168 183 150 147 171
++150 168 183 148 160 159 150 168 183 148 160 159 148 160 159 150 168 183 150 147 171 150 171 159
++150 168 183 150 171 159 150 168 183 150 171 159 166 174 181 150 168 183 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 150 171 159 166 174 181 150 168 183 148 160 159 131 144 168 148 160 159
++129 144 153 129 144 153 122 134 144 122 134 144 111 122 142 111 122 142 98 121 131 95 108 128
++77 91 115 77 91 115 61 78 101 61 78 101 42 60 86 42 60 86 42 60 86 42 60 86
++42 60 86 61 78 101 61 78 101 61 78 101 77 91 115 77 91 115 77 91 115 95 108 128
++95 108 128 98 121 131 98 121 131 111 119 127 122 134 144 122 134 144 122 134 144 129 144 153
++129 144 153 129 144 153 131 144 168 131 144 168 148 160 159 150 168 183 150 147 171 148 160 159
++150 168 183 166 156 164 150 171 159 150 168 183 166 156 164 150 168 183 150 171 159 150 168 183
++166 156 164 150 168 183 148 160 159 150 168 183 148 160 159 150 168 183 148 160 159 150 168 183
++148 160 159 148 160 159 131 144 168 148 160 159 129 144 153 129 144 153 126 147 144 122 134 144
++121 143 132 111 122 142 111 122 142 111 119 127 95 108 128 95 108 128 94 105 108 77 91 115
++77 91 115 61 78 101 61 78 101 42 60 86 42 60 86 46 59 71 34 42 77 32 40 58
++34 42 77 34 42 77 34 42 77 34 42 77 32 40 58 34 42 77 34 42 77 46 59 71
++60 63 87 61 78 101 61 78 101 77 90 100 95 108 128 94 105 108 98 121 131 111 119 127
++111 122 142 122 134 144 129 144 153 129 144 153 131 144 168 148 160 159 148 160 159 148 160 159
++148 160 159 150 168 183 150 171 159 166 174 181 150 171 159 166 174 181 150 171 159 150 168 183
++148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 129 144 153 122 134 144 121 143 132
++111 119 127 98 121 131 95 108 128 77 91 115 77 90 100 61 78 101 60 63 87 60 63 87
++46 59 71 34 42 77 45 57 61 34 42 77 34 42 77 34 42 77 32 40 58 34 42 77
++45 57 61 32 40 58 34 42 77 32 40 58 32 40 58 34 42 77 45 57 61 34 42 77
++46 59 71 60 63 87 60 63 87 75 81 90 77 91 115 77 91 115 94 105 108 98 121 131
++111 119 127 121 143 132 122 134 144 122 134 144 145 140 145 129 144 153 148 160 159 148 160 159
++148 160 159 148 160 159 148 160 159 150 168 183 150 171 159 166 156 164 150 168 183 166 156 164
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153
++146 162 145 129 144 153 126 147 144 145 140 145 126 147 144 122 134 144 126 147 144 122 134 144
++122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 129 144 153 122 134 144 126 147 144
++145 140 145 129 144 153 129 144 153 129 144 153 129 144 153 148 160 159 129 144 153 150 144 154
++129 144 153 131 144 168 148 160 159 148 160 159 129 144 153 148 160 159 129 144 153 148 160 159
++129 144 153 122 134 144 122 134 144 111 122 142 111 119 127 111 119 127 95 108 128 95 108 128
++94 105 108 77 90 100 61 78 101 60 81 83 42 60 86 46 59 71 46 59 71 32 40 58
++32 40 58 29 34 50 32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58
++46 59 71 63 59 71 60 81 83 61 78 101 77 90 100 95 108 128 95 119 107 111 119 127
++111 119 127 111 122 142 122 134 144 126 147 144 129 144 153 146 162 145 129 144 153 150 144 154
++148 160 159 129 144 153 148 160 159 148 160 159 129 144 153 148 160 159 148 160 159 148 160 159
++146 162 145 150 144 154 129 144 153 126 147 144 122 134 144 122 134 144 111 119 127 111 122 142
++111 119 127 95 108 128 95 95 116 77 90 100 75 81 90 60 81 83 60 63 87 46 59 71
++46 59 71 45 57 61 32 40 58 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50
++29 34 50 32 40 58 29 34 50 29 34 50 29 34 50 43 42 50 32 40 58 29 34 50
++
++51 49 42 47 44 42 36 35 37 32 39 24 36 35 37 47 39 42 47 49 42 51 49 42
++59 55 55 65 63 61 75 72 67 75 81 82 88 83 88 90 98 89 95 91 100 94 105 108
++94 105 108 111 119 127 111 119 127 112 123 108 111 119 127 111 119 127 121 143 132 111 119 127
++111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 138 126 108 111 119 127 121 143 132
++138 126 108 121 143 132 119 117 138 121 143 132 119 117 138 121 143 132 122 134 144 138 126 108
++111 119 127 111 119 127 112 96 108 94 105 108 90 98 89 88 83 88 75 72 67 59 69 70
++59 55 55 43 42 50 36 35 37 26 30 28 23 18 22 14 16 17 23 18 22 26 30 28
++42 41 42 52 55 48 65 63 61 75 81 76 88 83 88 90 98 89 112 96 108 94 105 108
++112 123 108 112 96 108 111 119 127 112 123 108 111 119 127 112 123 108 111 119 127 112 123 108
++111 119 127 138 126 108 111 119 127 111 119 127 138 126 108 121 143 132 111 119 127 121 143 132
++138 126 108 122 134 144 146 151 137 145 140 145 146 151 137 150 144 154 146 162 145 148 160 159
++148 160 159 148 160 159 148 160 159 166 156 164 146 162 145 150 144 154 146 162 145 150 144 154
++146 162 145 145 140 145 146 151 137 150 144 154 146 162 145 150 144 154 146 162 145 150 144 154
++146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 150 144 154
++146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 145 140 145
++146 162 145 145 140 145 146 162 145 129 144 153 146 151 137 150 144 154 126 147 144 146 151 137
++126 147 144 145 140 145 121 143 132 145 140 145 121 143 132 146 151 137 145 140 145 126 147 144
++146 151 137 145 140 145 126 147 144 145 140 145 121 143 132 119 117 138 121 143 132 141 116 139
++111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 95 108 128 94 105 108
++95 95 116 95 108 128 95 95 116 77 90 100 77 90 100 61 78 101 60 63 87 46 59 71
++34 42 77 32 40 58 24 30 43 29 34 50 34 42 77 24 30 43 34 42 77 34 42 77
++24 30 43 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 29 34 50 32 40 58
++57 43 64 57 43 64 57 43 64 75 59 67 75 59 67 75 59 67 101 60 73 88 69 84
++101 60 73 120 63 71 120 63 71 112 96 108 120 63 71 138 102 108 138 102 108 167 63 71
++138 102 108 138 102 108 168 102 88 138 102 108 168 102 88 138 102 108 163 117 123 163 117 123
++138 102 108 163 117 123 138 102 108 163 117 123 163 117 123 163 117 123 138 102 108 163 117 123
++138 126 108 163 117 123 138 102 108 163 117 123 138 102 108 163 117 123 138 102 108 163 117 123
++138 102 108 163 117 123 163 117 123 138 126 108 163 117 123 163 117 123 163 117 123 138 126 108
++163 117 123 138 126 108 163 117 123 163 117 123 163 117 123 163 117 123 163 117 123 138 126 108
++163 117 123 138 126 108 163 117 123 163 117 123 138 126 108 163 117 123 163 117 123 163 117 123
++168 102 88 138 126 108 163 117 123 168 146 127 163 117 123 168 146 127 146 150 115 163 117 123
++101 83 74 36 35 37 26 12 13 17 12 17 13 4 7 7 12 13 3 4 9 13 4 7
++3 4 9 15 17 7 7 12 13 13 4 7 3 4 9 13 4 7 13 4 7 3 4 9
++3 3 1 3 3 1 13 4 7 13 4 7 13 4 7 6 15 6 3 3 1 23 10 10
++55 39 18 88 73 31 88 73 62 88 73 62 88 73 62 88 73 62 88 73 62 88 73 31
++88 73 62 88 73 31 55 39 37 55 39 18 55 39 18 55 39 37 55 39 37 53 35 37
++34 30 15 26 25 15 26 12 13 15 17 7 13 4 7 13 4 7 6 15 6 13 4 7
++3 3 1 15 17 7 13 4 7 15 17 7 13 4 7 13 4 7 13 4 7 3 3 1
++3 3 1 23 10 10 34 30 15 75 73 36 117 99 86 138 126 108 138 126 108 138 126 108
++138 126 108 168 102 88 117 114 76 138 102 108 117 99 86 117 99 86 99 93 84 101 83 74
++88 69 84 88 69 84 75 72 67 75 64 82 63 59 71 63 59 71 46 59 71 34 42 77
++46 59 71 34 42 77 34 42 77 32 40 58 34 42 77 34 42 77 34 42 77 34 42 77
++32 40 58 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 42 60 86 42 60 86
++61 78 101 61 78 101 61 78 101 77 91 115 95 108 128 95 108 128 111 122 142 111 122 142
++111 122 142 111 122 142 111 122 142 111 122 142 98 121 131 95 108 128 98 121 131 94 105 108
++94 105 108 77 91 115 77 91 115 77 90 100 77 90 100 61 78 101 77 90 100 77 90 100
++77 91 115 77 91 115 95 119 107 77 91 115 98 121 131 98 121 131 111 122 142 122 134 144
++122 134 144 129 144 153 148 160 159 150 147 171 148 160 159 148 160 159 166 174 181 150 168 183
++166 174 181 150 168 183 166 156 164 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159
++129 144 153 146 162 145 126 147 144 122 134 144 121 143 132 111 119 127 112 123 108 94 105 108
++90 98 89 78 98 90 75 81 90 75 81 90 78 98 90 95 91 100 94 105 108 95 119 107
++111 119 127 121 143 132 122 134 144 145 140 145 126 147 144 150 144 154 148 160 159 148 160 159
++166 174 181 150 168 183 166 174 181 150 168 183 166 180 164 166 174 181 166 174 181 150 168 183
++166 174 181 166 176 200 166 180 164 111 122 142 43 55 48 3 3 1 3 4 9 14 16 17
++14 16 17 23 18 22 23 18 22 23 18 22 23 18 22 23 20 24 12 18 20 23 18 22
++23 20 24 23 20 24 22 25 24 22 25 24 26 24 32 26 24 32 26 24 32 26 24 32
++26 24 32 26 24 32 22 25 24 22 23 31 22 25 24 26 24 32 25 30 29 26 24 32
++26 30 28 22 23 31 26 30 28 26 24 32 30 30 34 30 30 34 33 30 32 33 30 30
++22 25 24 23 18 22 33 30 30 53 46 48 88 83 88 138 126 108 150 144 154 166 180 164
++166 174 181 150 168 183 150 171 159 150 168 183 150 171 159 150 168 183 166 156 164 150 168 183
++148 160 159 150 168 183 148 160 159 150 168 183 148 160 159 150 168 183 150 171 159 150 168 183
++166 156 164 150 168 183 166 174 181 150 168 183 166 174 181 166 180 164 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 185 202 202 166 180 164 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 150 168 183 150 171 159 150 168 183 148 160 159 150 147 171 148 160 159
++131 144 168 129 144 153 129 144 153 111 122 142 111 122 142 98 121 131 98 121 131 95 108 128
++77 91 115 77 91 115 61 78 101 61 78 101 42 60 86 42 60 86 42 60 86 42 60 86
++42 60 86 60 63 87 61 78 101 61 78 101 61 78 101 77 91 115 77 91 115 95 95 116
++95 108 128 95 108 128 111 122 142 98 121 131 111 122 142 122 134 144 122 134 144 126 147 144
++129 144 153 129 144 153 148 160 159 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 148 160 159 150 168 183 150 171 159 150 168 183 166 156 164 150 168 183 166 156 164
++150 168 183 150 171 159 166 174 181 148 160 159 166 174 181 148 160 159 150 168 183 148 160 159
++150 147 171 148 160 159 148 160 159 129 144 153 148 160 159 129 144 153 129 144 153 122 134 144
++122 134 144 122 134 144 98 121 131 111 122 142 98 121 131 95 108 128 95 108 128 77 91 115
++77 90 100 61 78 101 61 78 101 42 60 86 42 60 86 42 60 86 34 42 77 46 59 71
++34 42 77 32 40 58 46 59 71 32 40 58 34 42 77 46 59 71 46 59 71 42 60 86
++60 63 87 61 78 101 77 90 100 77 91 115 95 95 116 95 108 128 98 121 131 111 119 127
++122 134 144 122 134 144 129 144 153 129 144 153 148 160 159 129 144 153 148 160 159 150 168 183
++166 156 164 150 168 183 166 156 164 150 168 183 166 174 181 150 171 159 166 156 164 150 171 159
++148 160 159 148 160 159 131 144 168 129 144 153 129 144 153 129 144 153 122 134 144 111 122 142
++98 121 131 95 108 128 94 105 108 77 91 115 77 90 100 61 78 101 60 81 83 42 60 86
++46 59 71 34 42 77 34 42 77 45 57 61 32 40 58 32 40 58 34 42 77 32 40 58
++32 40 58 34 42 77 32 40 58 32 40 58 34 42 77 32 40 58 34 42 77 46 59 71
++42 60 86 60 63 87 61 78 101 77 90 100 77 91 115 95 95 116 95 108 128 111 119 127
++98 121 131 122 134 144 122 134 144 122 134 144 129 144 153 148 160 159 148 160 159 148 160 159
++150 147 171 150 168 183 150 171 159 166 156 164 150 168 183 150 171 159 150 171 159 150 168 183
++148 160 159 150 168 183 148 160 159 148 160 159 131 144 168 148 160 159 129 144 153 148 160 159
++129 144 153 129 144 153 126 147 144 129 144 153 122 134 144 122 134 144 129 144 153 122 134 144
++122 134 144 126 147 144 122 134 144 126 147 144 129 144 153 145 140 145 129 144 153 129 144 153
++129 144 153 129 144 153 150 144 154 129 144 153 148 160 159 129 144 153 148 160 159 129 144 153
++148 160 159 129 144 153 148 160 159 129 144 153 148 160 159 129 144 153 129 144 153 129 144 153
++129 144 153 122 134 144 111 122 142 111 119 127 98 121 131 98 121 131 94 105 108 94 105 108
++77 91 115 77 90 100 61 78 101 60 81 83 60 63 87 46 59 71 34 42 77 32 40 58
++32 40 58 32 40 58 29 34 50 29 34 50 32 40 58 32 40 58 32 40 58 34 42 77
++46 59 71 63 59 71 60 81 83 77 90 100 77 91 115 94 105 108 95 108 128 111 119 127
++111 119 127 121 143 132 122 134 144 126 147 144 129 144 153 129 144 153 148 160 159 148 160 159
++129 144 153 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 150 144 154 129 144 153
++148 160 159 129 144 153 129 144 153 126 147 144 122 134 144 121 143 132 111 122 142 111 119 127
++98 121 131 94 105 108 94 105 108 77 90 100 61 78 101 60 63 87 46 59 71 46 59 71
++32 40 58 32 40 58 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50
++29 34 50 29 34 50 29 34 50 29 34 50 32 40 58 29 34 50 29 34 50 32 40 58
++
++47 39 42 47 39 42 36 35 37 53 35 37 36 35 37 47 44 42 47 49 42 55 55 48
++59 57 61 59 69 70 75 72 67 75 81 82 75 81 90 90 98 89 94 105 108 94 105 108
++94 105 108 112 123 108 111 119 127 111 119 127 111 119 127 111 119 127 138 126 108 111 119 127
++121 143 132 138 126 108 111 119 127 117 142 111 111 119 127 111 119 127 111 119 127 111 119 127
++111 119 127 121 143 132 119 117 138 121 143 132 138 126 108 121 143 132 145 140 145 121 143 132
++111 119 127 111 119 127 112 123 108 112 96 108 94 105 108 95 91 100 75 81 90 75 72 67
++63 59 71 52 55 48 47 44 42 33 30 30 22 25 24 23 18 22 22 24 13 22 25 24
++33 30 30 42 41 42 55 55 48 65 63 61 75 81 76 88 83 88 90 98 89 95 91 100
++95 91 100 112 123 108 112 96 108 111 119 127 112 96 108 112 123 108 112 123 108 138 126 108
++111 119 127 111 119 127 138 126 108 117 142 111 111 119 127 138 126 108 121 143 132 138 126 108
++121 143 132 121 143 132 121 143 132 146 151 137 145 140 145 146 162 145 150 144 154 146 162 145
++150 144 154 146 162 145 166 156 164 146 162 145 166 156 164 148 160 159 150 144 154 146 162 145
++145 140 145 146 162 145 145 140 145 146 162 145 150 144 154 146 162 145 150 144 154 146 162 145
++150 144 154 146 162 145 150 144 154 146 151 137 150 144 154 146 162 145 150 144 154 146 151 137
++150 144 154 146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 150 144 154 146 162 145
++150 144 154 146 162 145 145 140 145 146 162 145 145 140 145 146 151 137 145 140 145 146 151 137
++145 140 145 121 143 132 145 140 145 121 143 132 126 147 144 138 126 108 121 143 132 145 140 145
++121 143 132 146 151 137 121 143 132 141 116 139 121 143 132 141 116 139 121 143 132 111 119 127
++138 126 108 111 119 127 112 123 108 111 119 127 112 96 108 111 119 127 94 105 108 111 119 127
++94 105 108 94 105 108 95 95 116 77 91 115 77 90 100 61 78 101 60 63 87 42 60 86
++34 42 77 34 42 77 29 34 50 34 42 77 24 30 43 34 42 77 12 18 30 34 42 77
++24 30 43 34 42 77 24 30 43 34 42 77 29 34 50 34 42 77 29 34 50 57 43 64
++32 40 58 57 43 64 57 43 64 57 43 64 57 43 64 75 59 67 75 59 67 101 60 73
++101 60 73 88 69 84 120 63 71 120 63 71 138 102 108 120 63 71 120 63 71 138 102 108
++117 99 86 167 63 71 138 102 108 168 102 88 138 102 108 168 102 88 138 102 108 168 102 88
++168 102 88 138 102 108 168 102 88 168 102 88 168 102 88 168 102 88 163 117 123 168 102 88
++138 102 108 168 102 88 168 102 88 168 102 88 163 117 123 168 102 88 168 102 88 138 102 108
++168 102 88 168 102 88 168 102 88 163 117 123 168 102 88 138 102 108 168 102 88 163 117 123
++168 102 88 163 117 123 168 102 88 138 126 108 168 102 88 168 102 88 163 117 123 168 102 88
++168 102 88 168 102 88 163 117 123 168 102 88 163 117 123 168 102 88 168 102 88 168 146 127
++168 102 88 168 146 127 168 102 88 146 150 115 168 102 88 163 117 123 138 126 108 101 83 74
++60 49 42 26 12 13 17 12 17 7 12 13 13 4 7 3 4 9 3 3 1 7 12 13
++13 4 7 7 12 13 13 4 7 7 12 13 13 4 7 3 4 9 3 4 9 3 3 1
++3 3 1 3 3 1 3 4 9 3 4 9 13 4 7 3 3 1 3 3 1 13 4 7
++28 13 18 62 47 47 88 73 31 88 44 51 88 73 31 101 74 26 88 73 62 88 73 31
++88 44 51 60 49 42 55 39 18 52 30 15 33 30 30 53 35 17 34 30 15 33 30 30
++26 25 15 26 25 15 15 17 7 3 3 1 3 3 1 6 15 6 3 3 1 6 15 6
++3 3 1 6 15 6 13 4 7 13 4 7 13 4 7 13 4 7 13 4 7 23 10 10
++49 13 16 55 39 18 101 74 26 117 114 76 168 146 127 168 102 88 146 150 115 168 102 88
++117 114 76 138 126 108 117 114 76 117 99 86 117 99 86 117 99 86 101 83 74 101 83 74
++88 83 74 75 72 67 75 72 67 63 59 71 63 59 71 57 43 64 46 59 71 57 43 64
++34 42 77 34 42 77 34 42 77 32 40 58 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 42 60 86 42 60 86
++60 63 87 61 78 101 77 91 115 77 91 115 95 108 128 95 108 128 111 122 142 111 122 142
++111 122 142 111 122 142 111 122 142 111 122 142 111 122 142 111 119 127 98 121 131 95 108 128
++95 108 128 94 105 108 94 105 108 77 91 115 77 90 100 77 90 100 77 91 115 77 91 115
++78 98 90 77 91 115 77 91 115 94 105 108 95 108 128 98 121 131 98 121 131 122 134 144
++122 134 144 129 144 153 129 144 153 148 160 159 150 147 171 150 168 183 148 160 159 150 171 159
++166 174 181 150 171 159 166 174 181 150 171 159 150 168 183 148 160 159 148 160 159 148 160 159
++148 160 159 129 144 153 145 140 145 145 140 145 122 134 144 121 143 132 111 119 127 94 105 108
++94 105 108 88 83 88 78 98 90 88 83 88 78 98 90 95 91 100 94 105 108 112 123 108
++111 119 127 111 119 127 119 117 138 126 147 144 129 144 153 129 144 153 148 160 159 148 160 159
++148 160 159 150 168 183 166 180 164 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 176 200 150 171 159 94 105 108 28 35 38 3 4 9 7 10 17 14 16 17
++23 18 22 23 20 24 12 18 20 23 20 24 12 18 20 23 18 22 23 20 24 22 25 24
++23 20 24 22 25 24 23 20 24 26 24 32 22 25 24 26 24 32 26 24 32 26 30 28
++26 24 32 26 24 32 28 30 35 30 30 34 30 30 34 33 30 36 33 30 36 30 30 34
++30 30 34 25 30 29 28 30 35 30 30 34 30 30 34 30 30 34 30 30 34 30 30 34
++33 30 32 25 30 29 23 20 24 14 16 17 37 35 43 75 81 90 145 140 145 166 156 164
++166 174 181 166 180 164 150 168 183 166 156 164 150 168 183 150 171 159 150 168 183 148 160 159
++150 168 183 148 160 159 150 168 183 148 160 159 150 168 183 150 147 171 148 160 159 150 168 183
++150 171 159 150 168 183 148 160 159 166 174 181 150 171 159 150 168 183 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 176 200 166 180 164 166 174 181
++166 174 181 166 180 164 166 174 181 166 174 181 150 171 159 150 168 183 131 144 168 148 160 159
++129 144 153 129 144 153 122 134 144 122 134 144 111 122 142 111 122 142 95 108 128 95 108 128
++77 91 115 61 78 101 61 78 101 61 78 101 42 60 86 42 60 86 42 60 86 34 42 77
++42 60 86 42 60 86 60 63 87 60 63 87 61 78 101 77 91 115 77 91 115 77 91 115
++95 95 116 95 108 128 95 108 128 111 119 127 111 122 142 111 119 127 111 122 142 122 134 144
++122 134 144 129 144 153 129 144 153 129 144 153 129 144 153 148 160 159 150 147 171 148 160 159
++150 147 171 148 160 159 150 168 183 166 156 164 148 160 159 150 168 183 150 171 159 150 168 183
++166 156 164 150 168 183 166 174 181 150 171 159 150 168 183 166 156 164 150 168 183 150 171 159
++150 168 183 148 160 159 131 144 168 148 160 159 148 160 159 129 144 153 129 144 153 126 147 144
++122 134 144 122 134 144 122 134 144 111 119 127 111 119 127 98 121 131 94 105 108 95 108 128
++77 91 115 61 78 101 61 78 101 60 63 87 42 60 86 46 59 71 42 60 86 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 32 40 58 34 42 77 46 59 71 42 60 86
++60 63 87 61 78 101 77 91 115 77 91 115 95 108 128 95 108 128 111 119 127 111 122 142
++122 134 144 122 134 144 129 144 153 129 144 153 129 144 153 148 160 159 150 147 171 148 160 159
++148 160 159 166 174 181 150 171 159 166 174 181 150 171 159 150 168 183 150 168 183 148 160 159
++148 160 159 148 160 159 148 160 159 129 144 153 129 144 153 126 147 144 122 134 144 111 119 127
++98 121 131 95 108 128 94 105 108 77 91 115 77 91 115 61 78 101 60 63 87 42 60 86
++46 59 71 46 59 71 34 42 77 34 42 77 34 42 77 45 57 61 32 40 58 32 40 58
++32 40 58 35 47 50 34 42 77 32 40 58 32 40 58 34 42 77 57 43 64 34 42 77
++60 63 87 60 63 87 61 78 101 77 90 100 77 91 115 95 95 116 94 105 108 98 121 131
++111 119 127 122 134 144 122 134 144 129 144 153 129 144 153 129 144 153 131 144 168 148 160 159
++148 160 159 148 160 159 148 160 159 150 168 183 150 171 159 166 156 164 150 168 183 166 156 164
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 146 162 145 129 144 153 148 160 159
++129 144 153 145 140 145 129 144 153 122 134 144 126 147 144 122 134 144 122 134 144 126 147 144
++122 134 144 126 147 144 122 134 144 145 140 145 122 134 144 122 134 144 122 134 144 145 140 145
++129 144 153 145 140 145 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153
++146 162 145 129 144 153 145 140 145 129 144 153 129 144 153 129 144 153 129 144 153 126 147 144
++122 134 144 122 134 144 121 143 132 111 122 142 111 119 127 95 108 128 95 108 128 77 91 115
++77 91 115 77 90 100 61 78 101 60 63 87 42 60 86 46 59 71 45 57 61 34 42 77
++32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 45 57 61
++46 59 71 60 63 87 61 78 101 77 90 100 95 95 116 94 105 108 111 119 127 98 121 131
++121 143 132 122 134 144 122 134 144 129 144 153 129 144 153 129 144 153 148 160 159 129 144 153
++148 160 159 148 160 159 148 160 159 150 144 154 148 160 159 129 144 153 148 160 159 148 160 159
++131 144 168 146 162 145 129 144 153 122 134 144 121 143 132 111 122 142 111 119 127 98 121 131
++95 119 107 77 91 115 77 91 115 75 81 90 60 63 87 60 63 87 46 59 71 57 43 64
++32 40 58 32 40 58 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 32 40 58
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50
++
++36 35 37 32 39 24 36 35 37 32 39 24 53 35 37 47 44 42 51 49 42 59 55 55
++65 63 61 59 69 70 75 64 82 75 81 82 88 83 88 90 98 89 95 91 100 94 105 108
++112 123 108 111 119 127 111 119 127 112 123 108 121 143 132 111 119 127 121 143 132 111 119 127
++111 119 127 111 119 127 111 119 127 111 119 127 121 143 132 111 119 127 121 143 132 138 126 108
++121 143 132 121 143 132 138 126 108 122 134 144 122 134 144 122 134 144 141 116 139 121 143 132
++141 116 139 117 142 111 119 117 138 112 123 108 112 96 108 94 105 108 88 83 88 75 81 82
++75 72 67 59 57 61 52 55 48 42 41 42 33 30 32 22 25 24 23 20 24 26 25 15
++22 25 24 36 35 37 47 49 42 59 57 61 75 72 67 75 81 76 88 83 88 90 98 89
++90 98 89 94 105 108 94 105 108 112 96 108 112 123 108 112 96 108 112 123 108 112 96 108
++112 123 108 138 126 108 111 119 127 119 117 138 138 126 108 122 134 144 121 143 132 141 116 139
++121 143 132 145 140 145 146 151 137 145 140 145 146 162 145 148 160 159 146 162 145 148 160 159
++166 156 164 146 162 145 148 160 159 148 160 159 146 162 145 148 160 159 146 162 145 150 144 154
++146 162 145 145 140 145 146 162 145 145 140 145 146 162 145 145 140 145 146 162 145 150 144 154
++146 151 137 146 151 137 150 144 154 146 151 137 146 162 145 145 140 145 146 162 145 150 144 154
++146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 145 140 145
++146 162 145 145 140 145 146 151 137 150 144 154 146 151 137 129 144 153 146 151 137 126 147 144
++145 140 145 121 143 132 145 140 145 138 126 108 145 140 145 121 143 132 145 140 145 121 143 132
++145 140 145 121 143 132 145 140 145 121 143 132 138 126 108 121 143 132 119 117 138 121 143 132
++111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 94 105 108 111 119 127 94 105 108
++95 108 128 95 95 116 95 95 116 95 91 100 77 90 100 61 78 101 60 63 87 42 60 86
++34 42 77 32 40 58 32 40 58 24 30 43 34 42 77 24 30 43 34 42 77 34 42 77
++24 30 43 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 29 34 50 34 42 77
++37 35 43 57 43 64 57 43 64 57 43 64 76 44 53 57 43 64 101 60 73 75 59 67
++101 60 73 101 60 73 120 63 71 120 63 71 120 63 71 120 63 71 138 102 108 120 63 71
++168 102 88 120 63 71 138 102 108 167 63 71 138 102 108 168 102 88 138 102 108 168 102 88
++138 102 108 168 102 88 138 102 108 138 102 108 168 102 88 138 102 108 168 102 88 138 102 108
++168 102 88 138 102 108 138 102 108 168 102 88 138 102 108 168 102 88 138 102 108 168 102 88
++138 102 108 138 102 108 168 102 88 138 102 108 168 102 88 138 102 108 168 102 88 138 102 108
++168 102 88 138 102 108 168 102 88 163 117 123 168 102 88 138 102 108 168 102 88 138 126 108
++168 102 88 138 126 108 168 102 88 168 146 127 168 102 88 138 126 108 168 102 88 168 102 88
++168 102 88 168 102 88 163 117 123 168 102 88 177 171 115 168 102 88 117 114 76 76 46 20
++28 13 18 15 17 7 13 4 7 13 4 7 7 10 17 13 4 7 7 12 13 3 4 9
++13 4 7 13 4 7 13 4 7 7 12 13 13 4 7 3 4 9 13 4 7 6 15 6
++3 3 1 3 3 1 13 4 7 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++15 17 7 53 35 17 75 56 53 88 73 31 75 56 53 88 73 31 88 44 51 76 46 20
++60 49 42 55 39 18 52 30 15 34 30 15 34 30 15 26 12 13 26 25 15 23 10 10
++15 17 7 15 17 7 13 4 7 3 3 1 3 3 1 3 3 1 13 4 7 6 15 6
++13 4 7 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 23 10 10 55 39 18
++88 73 62 117 99 86 138 126 108 163 117 123 138 126 108 157 148 53 138 126 108 168 102 88
++117 127 86 168 102 88 117 99 86 117 99 86 117 99 86 117 99 86 101 83 74 101 83 74
++88 83 74 88 66 70 75 64 82 63 59 71 63 59 71 46 59 71 46 59 71 34 42 77
++34 42 77 32 40 58 34 42 77 32 40 58 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 32 40 58 34 42 77 34 42 77 34 42 77 34 42 77 42 60 86 42 60 86
++61 78 101 61 78 101 77 91 115 77 91 115 95 108 128 95 108 128 111 122 142 111 122 142
++111 122 142 111 122 142 111 122 142 111 122 142 111 122 142 111 119 127 98 121 131 111 119 127
++95 108 128 94 105 108 95 95 116 94 105 108 77 90 100 77 91 115 77 90 100 77 91 115
++77 91 115 95 119 107 77 91 115 95 108 128 95 108 128 98 121 131 111 122 142 122 134 144
++122 134 144 129 144 153 150 144 154 148 160 159 148 160 159 148 160 159 150 168 183 166 174 181
++150 168 183 166 174 181 150 168 183 150 171 159 150 171 159 148 160 159 150 168 183 148 160 159
++148 160 159 148 160 159 126 147 144 126 147 144 122 134 144 119 117 138 111 119 127 112 123 108
++94 105 108 78 98 90 78 98 90 75 81 90 77 90 100 90 98 89 94 105 108 94 105 108
++111 119 127 111 119 127 121 143 132 121 143 132 145 140 145 148 160 159 148 160 159 148 160 159
++150 168 183 166 180 164 150 168 183 166 174 181 166 174 181 150 168 183 166 174 181 166 174 181
++166 174 181 185 202 202 148 160 159 95 108 128 35 46 43 3 4 9 14 16 17 14 16 17
++23 18 22 23 20 24 23 18 22 14 16 17 23 20 24 23 20 24 15 22 17 23 18 22
++23 20 24 23 20 24 22 25 24 26 24 32 26 24 32 30 30 34 26 24 32 26 24 32
++26 24 32 30 30 34 33 30 36 36 35 37 31 35 35 28 35 38 33 30 36 28 35 38
++33 30 36 36 35 37 37 35 43 33 30 36 30 30 34 26 24 32 26 24 32 26 30 28
++26 24 32 30 30 34 30 30 34 23 20 24 12 18 20 36 35 37 95 91 100 148 160 159
++166 174 181 166 174 181 148 160 159 150 168 183 150 171 159 166 156 164 150 168 183 148 160 159
++148 160 159 148 160 159 148 160 159 150 168 183 148 160 159 150 171 159 150 168 183 148 160 159
++150 168 183 150 171 159 150 168 183 166 156 164 150 168 183 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 166 174 181 166 180 164 166 174 181 166 174 181 166 174 181
++166 174 181 150 168 183 150 171 159 150 168 183 148 160 159 150 147 171 148 160 159 131 144 168
++129 144 153 129 144 153 122 134 144 122 134 144 98 121 131 98 121 131 98 121 131 77 91 115
++77 91 115 77 91 115 61 78 101 42 60 86 42 60 86 42 60 86 34 42 77 42 60 86
++42 60 86 42 60 86 60 63 87 61 78 101 61 78 101 61 78 101 77 91 115 77 91 115
++77 91 115 95 108 128 95 108 128 95 108 128 111 119 127 111 119 127 111 122 142 111 122 142
++122 134 144 122 134 144 126 147 144 129 144 153 129 144 153 129 144 153 148 160 159 129 144 153
++148 160 159 148 160 159 148 160 159 150 168 183 148 160 159 166 156 164 150 168 183 150 171 159
++150 168 183 150 171 159 166 156 164 150 168 183 150 171 159 150 168 183 166 156 164 150 168 183
++148 160 159 148 160 159 150 168 183 148 160 159 131 144 168 148 160 159 129 144 153 129 144 153
++126 147 144 122 134 144 122 134 144 111 122 142 111 122 142 98 121 131 95 108 128 95 108 128
++77 91 115 77 91 115 61 78 101 61 78 101 42 60 86 42 60 86 34 42 77 34 42 77
++46 59 71 32 40 58 34 42 77 32 40 58 34 42 77 46 59 71 34 42 77 42 60 86
++60 81 83 61 78 101 77 90 100 77 91 115 95 108 128 95 108 128 111 119 127 122 134 144
++122 134 144 122 134 144 129 144 153 148 160 159 131 144 168 148 160 159 148 160 159 150 168 183
++150 171 159 150 168 183 166 174 181 150 171 159 166 174 181 150 171 159 150 171 159 148 160 159
++148 160 159 148 160 159 129 144 153 129 144 153 129 144 153 126 147 144 122 134 144 111 122 142
++98 121 131 95 108 128 94 105 108 77 91 115 77 90 100 61 78 101 60 63 87 42 60 86
++34 42 77 34 42 77 34 42 77 45 57 61 32 40 58 32 40 58 34 42 77 32 40 58
++32 40 58 32 40 58 32 40 58 45 57 61 32 40 58 32 40 58 46 59 71 46 59 71
++46 59 71 60 63 87 61 78 101 77 90 100 77 91 115 95 95 116 95 108 128 111 119 127
++111 119 127 111 122 142 122 134 144 126 147 144 129 144 153 148 160 159 148 160 159 148 160 159
++148 160 159 148 160 159 166 174 181 148 160 159 166 156 164 150 168 183 150 171 159 150 168 183
++148 160 159 150 168 183 148 160 159 148 160 159 129 144 153 148 160 159 129 144 153 146 162 145
++129 144 153 129 144 153 126 147 144 129 144 153 122 134 144 126 147 144 122 134 144 129 144 153
++122 134 144 126 147 144 122 134 144 122 134 144 129 144 153 145 140 145 122 134 144 129 144 153
++122 134 144 129 144 153 145 140 145 129 144 153 150 144 154 129 144 153 145 140 145 129 144 153
++129 144 153 145 140 145 126 147 144 148 160 159 129 144 153 129 144 153 129 144 153 122 134 144
++122 134 144 122 134 144 98 121 131 111 122 142 98 121 131 95 108 128 94 105 108 94 105 108
++77 91 115 61 78 101 75 81 90 60 63 87 46 59 71 46 59 71 34 42 77 32 40 58
++32 40 58 29 34 50 32 40 58 29 34 50 32 40 58 32 40 58 34 42 77 32 40 58
++46 59 71 60 63 87 75 81 90 77 90 100 77 91 115 95 108 128 95 119 107 111 119 127
++111 122 142 121 143 132 122 134 144 129 144 153 145 140 145 129 144 153 148 160 159 148 160 159
++148 160 159 129 144 153 148 160 159 148 160 159 148 160 159 150 144 154 148 160 159 131 144 168
++145 140 145 129 144 153 129 144 153 126 147 144 122 134 144 111 119 127 98 121 131 111 119 127
++95 108 128 77 90 100 77 90 100 61 78 101 60 63 87 46 59 71 45 57 61 34 42 77
++32 40 58 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50
++
++33 30 30 32 39 24 53 35 37 33 30 30 42 41 42 51 49 42 55 55 48 65 63 61
++65 63 61 75 72 67 75 81 76 75 81 76 77 90 100 90 98 89 94 105 108 112 123 108
++94 105 108 111 119 127 112 123 108 111 119 127 111 119 127 121 143 132 111 119 127 138 126 108
++121 143 132 111 119 127 121 143 132 111 119 127 138 126 108 111 119 127 121 143 132 111 119 127
++121 143 132 119 117 138 121 143 132 119 117 138 121 143 132 138 126 108 121 143 132 121 143 132
++121 143 132 121 143 132 119 117 138 111 119 127 112 123 108 94 105 108 90 98 89 88 83 88
++75 81 82 59 69 70 54 57 61 42 47 42 33 39 38 33 30 32 26 30 28 22 25 24
++26 25 15 33 30 30 42 41 42 52 55 48 65 63 61 75 72 67 88 83 74 88 83 88
++99 93 84 95 91 100 99 93 84 94 105 108 112 96 108 94 105 108 94 105 108 112 123 108
++112 96 108 111 119 127 138 126 108 111 119 127 117 142 111 119 117 138 138 126 108 121 143 132
++121 143 132 138 126 108 126 147 144 146 151 137 145 140 145 146 162 145 150 144 154 166 156 164
++146 162 145 166 156 164 146 162 145 166 156 164 146 162 145 166 156 164 148 160 159 150 144 154
++146 162 145 150 144 154 145 140 145 146 162 145 145 140 145 146 162 145 150 144 154 146 151 137
++150 144 154 146 162 145 145 140 145 146 151 137 145 140 145 145 140 145 145 140 145 146 151 137
++145 140 145 146 162 145 145 140 145 146 151 137 145 140 145 146 162 145 145 140 145 146 162 145
++150 144 154 146 162 145 129 144 153 146 162 145 145 140 145 146 151 137 145 140 145 121 143 132
++145 140 145 121 143 132 138 126 108 122 134 144 121 143 132 138 126 108 121 143 132 138 126 108
++145 140 145 121 143 132 138 126 108 119 117 138 121 143 132 122 134 144 138 126 108 111 119 127
++112 123 108 111 119 127 112 96 108 111 119 127 94 105 108 111 119 127 95 108 128 94 105 108
++95 95 116 94 105 108 95 95 116 77 91 115 77 90 100 61 78 101 60 63 87 46 59 71
++34 42 77 32 40 58 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 12 18 30
++34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 29 34 50 34 42 77 29 34 50
++32 40 58 57 43 64 57 43 64 57 43 64 57 43 64 75 59 67 76 44 53 75 59 67
++101 60 73 101 60 73 101 60 73 120 63 71 120 63 71 120 63 71 167 63 71 120 63 71
++120 63 71 168 102 88 120 63 71 168 102 88 120 63 71 168 102 88 167 63 71 138 102 108
++167 63 71 168 102 88 168 102 88 167 63 71 168 102 88 168 102 88 168 102 88 168 102 88
++168 102 88 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88
++168 102 88 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88
++168 102 88 168 102 88 168 102 88 138 102 108 168 102 88 168 102 88 168 102 88 168 102 88
++168 102 88 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88
++138 126 108 168 102 88 168 102 88 138 126 108 163 117 123 117 99 86 75 56 53 26 25 15
++15 17 7 13 4 7 3 4 9 13 4 7 7 12 13 13 4 7 13 4 7 3 4 9
++13 4 7 7 12 13 3 4 9 13 4 7 7 12 13 13 4 7 3 4 9 13 4 7
++3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 13 4 7
++3 3 1 26 12 13 55 39 37 60 49 42 60 49 42 55 39 37 47 47 21 53 35 17
++53 35 17 34 30 15 34 30 15 28 13 18 26 12 13 15 17 7 13 4 7 6 15 6
++13 4 7 13 4 7 13 4 7 3 3 1 13 4 7 3 3 1 13 4 7 13 4 7
++3 3 1 13 4 7 13 4 7 23 10 10 26 12 13 52 30 15 88 73 31 117 112 45
++138 126 108 168 102 88 168 146 127 157 148 53 168 102 88 138 126 108 168 102 88 117 127 86
++168 102 88 117 114 76 117 99 86 117 99 86 117 99 86 99 93 84 101 83 74 88 83 74
++88 66 70 75 72 67 75 72 67 63 59 71 63 59 71 46 59 71 57 43 64 34 42 77
++32 40 58 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 42 60 86 42 60 86 42 60 86
++61 78 101 61 78 101 77 91 115 95 108 128 95 108 128 111 122 142 111 122 142 111 122 142
++111 122 142 122 134 144 111 122 142 122 134 144 111 119 127 111 119 127 111 119 127 95 119 107
++111 119 127 95 108 128 94 105 108 94 105 108 77 90 100 94 105 108 77 91 115 78 98 90
++77 91 115 94 105 108 77 91 115 95 119 107 98 121 131 98 121 131 111 122 142 111 122 142
++122 134 144 129 144 153 129 144 153 148 160 159 150 147 171 150 168 183 166 156 164 150 171 159
++166 174 181 150 171 159 166 174 181 166 156 164 150 168 183 166 174 181 148 160 159 148 160 159
++148 160 159 148 160 159 148 160 159 145 140 145 121 143 132 146 151 137 111 119 127 111 119 127
++94 105 108 90 98 89 88 83 88 90 98 89 77 90 100 90 98 89 95 91 100 111 119 127
++112 123 108 111 119 127 122 134 144 122 134 144 145 140 145 129 144 153 148 160 159 148 160 159
++150 168 183 166 156 164 150 171 159 150 168 183 166 180 164 166 174 181 166 174 181 150 168 183
++166 174 181 166 174 181 148 160 159 111 119 127 43 42 50 3 4 9 14 16 17 12 18 20
++15 22 17 12 18 20 12 18 20 23 18 22 12 18 20 23 20 24 23 20 24 12 18 20
++23 20 24 23 20 24 23 20 24 26 24 32 26 24 32 26 24 32 25 30 29 22 23 31
++25 30 29 28 30 35 28 30 35 24 30 43 37 35 43 28 35 38 37 35 43 34 40 43
++34 40 43 37 35 43 34 40 43 31 35 35 33 30 36 33 30 36 30 30 34 25 30 29
++30 30 34 25 30 29 26 24 32 22 23 31 14 16 17 14 16 17 65 63 61 122 134 144
++166 174 181 166 174 181 166 156 164 150 168 183 148 160 159 150 168 183 148 160 159 148 160 159
++150 168 183 131 144 168 148 160 159 148 160 159 150 147 171 148 160 159 150 147 171 148 160 159
++148 160 159 166 156 164 150 168 183 150 171 159 166 174 181 150 171 159 150 168 183 166 180 164
++166 174 181 166 180 164 185 202 202 166 174 181 166 176 200 166 180 164 166 174 181 166 174 181
++166 180 164 150 168 183 166 174 181 150 171 159 150 168 183 150 171 159 131 144 168 148 160 159
++129 144 153 129 144 153 122 134 144 122 134 144 111 122 142 98 121 131 95 108 128 95 108 128
++77 91 115 61 78 101 61 78 101 60 63 87 42 60 86 34 42 77 42 60 86 34 42 77
++34 42 77 34 42 77 42 60 86 60 63 87 60 63 87 61 78 101 61 78 101 77 91 115
++77 91 115 77 91 115 94 105 108 95 108 128 98 121 131 98 121 131 98 121 131 111 119 127
++111 122 142 122 134 144 122 134 144 122 134 144 129 144 153 129 144 153 129 144 153 129 144 153
++131 144 168 148 160 159 150 147 171 148 160 159 150 168 183 150 171 159 166 156 164 150 168 183
++148 160 159 166 174 181 150 168 183 166 156 164 166 174 181 150 171 159 150 168 183 166 156 164
++150 168 183 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153
++129 144 153 122 134 144 122 134 144 122 134 144 111 122 142 98 121 131 95 108 128 95 108 128
++95 95 116 77 91 115 61 78 101 61 78 101 60 63 87 42 60 86 46 59 71 34 42 77
++34 42 77 34 42 77 32 40 58 34 42 77 32 40 58 34 42 77 46 59 71 60 63 87
++60 63 87 61 78 101 77 91 115 95 95 116 95 108 128 98 121 131 98 121 131 111 122 142
++122 134 144 126 147 144 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159
++166 174 181 150 171 159 150 168 183 166 156 164 150 168 183 150 168 183 148 160 159 150 168 183
++148 160 159 148 160 159 148 160 159 129 144 153 129 144 153 122 134 144 111 122 142 111 122 142
++98 121 131 95 108 128 77 91 115 77 91 115 61 78 101 61 78 101 60 63 87 46 59 71
++34 42 77 45 57 61 32 40 58 34 42 77 32 40 58 34 42 77 32 40 58 32 40 58
++32 40 58 34 42 77 32 40 58 32 40 58 34 42 77 32 40 58 34 42 77 34 42 77
++60 63 87 60 63 87 61 78 101 77 90 100 77 91 115 94 105 108 95 108 128 98 121 131
++111 119 127 122 134 144 122 134 144 129 144 153 129 144 153 129 144 153 129 144 153 148 160 159
++148 160 159 148 160 159 150 168 183 150 171 159 150 168 183 150 171 159 150 168 183 166 156 164
++148 160 159 148 160 159 150 147 171 148 160 159 148 160 159 129 144 153 148 160 159 150 144 154
++129 144 153 126 147 144 145 140 145 129 144 153 122 134 144 122 134 144 122 134 144 122 134 144
++122 134 144 129 144 153 122 134 144 126 147 144 122 134 144 122 134 144 122 134 144 122 134 144
++129 144 153 126 147 144 129 144 153 126 147 144 129 144 153 126 147 144 129 144 153 145 140 145
++129 144 153 126 147 144 129 144 153 129 144 153 129 144 153 126 147 144 122 134 144 122 134 144
++121 143 132 111 122 142 111 119 127 111 119 127 98 121 131 94 105 108 77 91 115 77 91 115
++77 90 100 61 78 101 60 63 87 60 63 87 46 59 71 46 59 71 45 57 61 32 40 58
++32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 46 59 71
++46 59 71 59 69 70 61 78 101 77 90 100 94 105 108 94 105 108 98 121 131 111 119 127
++121 143 132 122 134 144 126 147 144 126 147 144 129 144 153 129 144 153 148 160 159 129 144 153
++150 144 154 148 160 159 148 160 159 148 160 159 129 144 153 148 160 159 150 144 154 148 160 159
++129 144 153 126 147 144 126 147 144 122 134 144 121 143 132 111 122 142 98 121 131 95 108 128
++94 105 108 77 90 100 75 81 90 60 81 83 60 63 87 46 59 71 32 40 58 32 40 58
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50
++
++33 30 30 33 30 30 32 39 24 36 35 37 47 44 42 52 55 48 59 55 55 65 63 61
++75 72 67 75 64 82 75 81 82 88 83 88 78 98 90 90 98 89 94 105 108 94 105 108
++111 119 127 111 119 127 111 119 127 111 119 127 121 143 132 138 126 108 122 134 144 111 119 127
++111 119 127 138 126 108 111 119 127 121 143 132 111 119 127 121 143 132 111 119 127 121 143 132
++138 126 108 121 143 132 121 143 132 141 116 139 121 143 132 122 134 144 141 116 139 121 143 132
++141 116 139 121 143 132 121 143 132 111 119 127 112 123 108 112 96 108 94 105 108 88 83 88
++75 81 82 59 69 70 65 63 61 43 55 48 42 41 42 33 39 38 33 30 30 22 25 24
++23 18 22 26 25 15 36 35 37 47 44 42 55 55 48 65 63 61 75 81 69 75 81 76
++75 81 82 90 98 89 90 98 89 90 98 89 90 98 89 94 105 108 112 96 108 94 105 108
++112 123 108 111 119 127 111 119 127 138 126 108 111 119 127 138 126 108 122 134 144 141 116 139
++121 143 132 145 140 145 145 140 145 145 140 145 146 151 137 150 144 154 146 162 145 148 160 159
++166 156 164 148 160 159 166 156 164 148 160 159 166 156 164 146 162 145 146 162 145 148 160 159
++150 144 154 146 162 145 150 144 154 146 151 137 150 144 154 146 162 145 150 144 154 146 162 145
++145 140 145 146 151 137 145 140 145 126 147 144 146 151 137 126 147 144 121 143 132 145 140 145
++126 147 144 146 151 137 145 140 145 126 147 144 146 151 137 129 144 153 146 151 137 129 144 153
++146 151 137 129 144 153 146 162 145 145 140 145 146 162 145 129 144 153 146 151 137 145 140 145
++121 143 132 138 126 108 122 134 144 121 143 132 138 126 108 122 134 144 119 117 138 121 143 132
++138 126 108 122 134 144 121 143 132 121 143 132 141 116 139 112 123 108 119 117 138 111 119 127
++111 119 127 112 123 108 95 108 128 94 105 108 111 119 127 95 95 116 112 123 108 95 108 128
++94 105 108 95 95 116 95 95 116 77 90 100 77 90 100 60 63 87 60 63 87 42 60 86
++34 42 77 32 40 58 29 34 50 34 42 77 12 18 30 34 42 77 24 30 43 34 42 77
++24 30 43 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 29 34 50 34 42 77
++57 43 64 29 34 50 57 43 64 57 43 64 76 44 53 57 43 64 76 44 53 88 44 51
++101 60 73 88 44 51 101 60 73 101 60 73 120 63 71 120 63 71 120 63 71 120 63 71
++167 63 71 120 63 71 167 63 71 117 99 86 167 63 71 167 63 71 117 99 86 167 63 71
++168 102 88 120 63 71 167 63 71 117 99 86 167 63 71 168 102 88 120 63 71 167 63 71
++168 102 88 167 63 71 138 102 108 167 63 71 167 63 71 138 102 108 167 63 71 168 102 88
++167 63 71 138 102 108 167 63 71 120 63 71 168 102 88 120 63 71 168 102 88 167 63 71
++138 102 108 167 63 71 168 102 88 167 63 71 168 102 88 168 102 88 168 102 88 168 102 88
++168 102 88 168 102 88 168 102 88 168 102 88 168 102 88 168 102 88 157 148 53 168 102 88
++168 102 88 168 102 88 168 102 88 146 150 115 168 102 88 75 73 36 26 25 15 23 10 10
++13 4 7 13 4 7 3 4 9 13 4 7 7 12 13 13 4 7 3 4 9 13 4 7
++3 3 1 3 4 9 13 4 7 7 12 13 13 4 7 3 4 9 3 4 9 3 4 9
++3 4 9 3 3 1 3 3 1 3 4 9 3 4 9 3 3 1 3 4 9 3 3 1
++3 3 1 13 4 7 26 25 15 53 35 17 55 39 37 34 30 15 52 30 15 26 30 28
++28 13 18 26 25 15 26 12 13 15 17 7 15 17 7 13 4 7 13 4 7 6 15 6
++13 4 7 6 15 6 3 3 1 13 4 7 6 15 6 3 3 1 6 15 6 3 3 1
++13 4 7 23 10 10 34 30 15 55 39 18 88 73 31 98 106 55 117 114 76 168 102 88
++168 102 88 157 148 53 138 126 108 168 102 88 157 148 53 168 102 88 117 127 86 117 114 76
++117 114 76 168 102 88 117 114 76 117 99 86 120 63 71 101 83 74 101 83 74 88 73 62
++88 66 70 75 72 67 75 64 82 63 59 71 57 43 64 46 59 71 34 42 77 57 43 64
++34 42 77 34 42 77 32 40 58 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 32 40 58 34 42 77 34 42 77 34 42 77 42 60 86 42 60 86 61 78 101
++61 78 101 61 78 101 77 91 115 77 91 115 95 108 128 111 122 142 111 122 142 111 122 142
++111 122 142 111 122 142 122 134 144 111 122 142 111 119 127 111 119 127 111 119 127 111 119 127
++112 96 108 111 119 127 94 105 108 95 95 116 94 105 108 94 105 108 94 105 108 94 105 108
++94 105 108 94 105 108 95 119 107 95 108 128 98 121 131 111 119 127 121 143 132 98 121 131
++126 147 144 129 144 153 129 144 153 148 160 159 148 160 159 150 168 183 150 168 183 166 174 181
++166 156 164 150 168 183 166 180 164 150 168 183 150 171 159 166 156 164 150 171 159 166 156 164
++148 160 159 148 160 159 150 144 154 129 144 153 145 140 145 122 134 144 121 143 132 111 119 127
++94 105 108 90 98 89 90 98 89 78 98 90 88 83 88 77 90 100 94 105 108 94 105 108
++111 119 127 111 119 127 121 143 132 122 134 144 145 140 145 129 144 153 148 160 159 148 160 159
++148 160 159 150 168 183 166 174 181 150 171 159 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 176 200 166 174 181 111 119 127 43 42 50 7 10 17 7 10 17 12 18 20
++14 16 17 12 18 20 23 20 24 23 20 24 23 18 22 23 20 24 22 25 24 22 25 24
++23 20 24 23 20 24 23 20 24 26 24 32 26 30 28 26 24 32 26 24 32 25 30 29
++25 30 29 23 30 35 23 30 35 23 30 35 28 35 38 28 35 38 37 35 43 29 34 50
++34 40 43 34 40 43 28 35 38 37 35 43 42 38 42 43 42 50 37 35 43 30 30 34
++28 30 35 26 24 32 25 30 29 26 24 32 12 18 20 7 10 17 54 57 61 111 119 127
++166 180 164 166 174 181 150 168 183 148 160 159 150 168 183 148 160 159 148 160 159 150 147 171
++148 160 159 148 160 159 131 144 168 148 160 159 148 160 159 150 147 171 148 160 159 148 160 159
++150 168 183 148 160 159 150 171 159 150 168 183 150 171 159 150 168 183 166 180 164 166 174 181
++166 174 181 166 174 181 166 174 181 166 180 164 166 174 181 166 174 181 166 174 181 166 174 181
++150 168 183 166 180 164 150 168 183 150 171 159 150 168 183 148 160 159 148 160 159 131 144 168
++129 144 153 129 144 153 122 134 144 111 122 142 111 122 142 98 121 131 95 108 128 77 91 115
++77 91 115 61 78 101 61 78 101 42 60 86 42 60 86 42 60 86 34 42 77 42 60 86
++34 42 77 42 60 86 42 60 86 42 60 86 60 63 87 61 78 101 61 78 101 61 78 101
++77 91 115 77 91 115 77 91 115 95 95 116 95 108 128 95 108 128 111 119 127 111 122 142
++111 122 142 122 134 144 122 134 144 122 134 144 126 147 144 129 144 153 129 144 153 129 144 153
++129 144 153 129 144 153 148 160 159 150 147 171 148 160 159 148 160 159 150 168 183 148 160 159
++166 174 181 150 168 183 166 180 164 150 168 183 150 171 159 166 174 181 166 174 181 150 171 159
++166 174 181 148 160 159 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153
++129 144 153 126 147 144 122 134 144 111 122 142 122 134 144 98 121 131 98 121 131 95 108 128
++77 91 115 77 91 115 77 91 115 61 78 101 60 63 87 42 60 86 42 60 86 34 42 77
++45 57 61 34 42 77 34 42 77 32 40 58 46 59 71 34 42 77 46 59 71 60 63 87
++60 81 83 61 78 101 77 91 115 94 105 108 95 108 128 95 108 128 111 119 127 121 143 132
++122 134 144 122 134 144 129 144 153 150 144 154 129 144 153 148 160 159 148 160 159 150 168 183
++166 156 164 150 168 183 166 156 164 150 168 183 166 180 164 148 160 159 150 168 183 148 160 159
++148 160 159 148 160 159 129 144 153 129 144 153 129 144 153 122 134 144 122 134 144 111 119 127
++98 121 131 95 108 128 95 95 116 77 91 115 61 78 101 60 63 87 42 60 86 46 59 71
++46 59 71 34 42 77 32 40 58 32 40 58 32 40 58 34 42 77 32 40 58 34 42 77
++32 40 58 32 40 58 34 42 77 32 40 58 34 42 77 45 57 61 34 42 77 46 59 71
++42 60 86 60 63 87 61 78 101 77 90 100 77 91 115 95 108 128 95 108 128 111 119 127
++111 119 127 122 134 144 122 134 144 122 134 144 129 144 153 148 160 159 148 160 159 148 160 159
++150 147 171 150 168 183 148 160 159 166 174 181 148 160 159 166 156 164 150 168 183 150 171 159
++150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 129 144 153
++145 140 145 129 144 153 126 147 144 129 144 153 126 147 144 122 134 144 122 134 144 121 143 132
++122 134 144 122 134 144 126 147 144 122 134 144 122 134 144 122 134 144 122 134 144 126 147 144
++122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 129 144 153
++122 134 144 122 134 144 126 147 144 122 134 144 122 134 144 122 134 144 122 134 144 111 119 127
++111 122 142 111 119 127 98 121 131 98 121 131 95 95 116 95 95 116 77 91 115 77 90 100
++77 90 100 61 78 101 60 81 83 60 63 87 46 59 71 34 42 77 32 40 58 32 40 58
++32 40 58 32 40 58 32 40 58 29 34 50 29 34 50 32 40 58 34 42 77 46 59 71
++46 59 71 75 81 90 75 81 90 77 90 100 94 105 108 95 108 128 111 119 127 111 119 127
++111 122 142 121 143 132 129 144 153 129 144 153 146 162 145 129 144 153 148 160 159 148 160 159
++131 144 168 148 160 159 131 144 168 148 160 159 148 160 159 129 144 153 148 160 159 129 144 153
++146 151 137 129 144 153 121 143 132 122 134 144 111 122 142 111 119 127 98 121 131 94 105 108
++94 105 108 77 90 100 75 81 90 60 63 87 63 59 71 46 59 71 43 42 50 32 40 58
++29 34 50 29 34 50 29 34 50 29 34 50 24 30 43 29 34 50 29 34 50 29 34 50
++29 34 50 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50
++
++32 39 24 42 41 42 42 41 42 47 44 42 51 49 42 55 55 48 59 57 61 75 72 67
++75 72 67 75 81 82 88 83 88 88 83 88 90 98 89 90 98 89 94 105 108 94 105 108
++112 123 108 111 119 127 112 123 108 111 119 127 121 143 132 111 119 127 121 143 132 112 123 108
++121 143 132 111 119 127 121 143 132 111 119 127 119 117 138 138 126 108 111 119 127 121 143 132
++119 117 138 121 143 132 119 117 138 121 143 132 138 126 108 121 143 132 121 143 132 138 126 108
++121 143 132 122 134 144 138 126 108 119 117 138 111 119 127 112 123 108 94 105 108 95 91 100
++75 81 90 75 81 76 59 69 70 54 57 61 42 47 42 42 41 42 36 35 37 22 25 24
++23 18 22 26 25 15 29 35 19 36 35 37 51 49 42 59 55 55 65 63 61 75 72 67
++75 81 76 75 81 82 88 83 88 88 83 88 95 91 100 90 98 89 90 98 89 95 91 100
++94 105 108 112 96 108 112 123 108 111 119 127 121 143 132 119 117 138 138 126 108 117 142 111
++141 116 139 121 143 132 146 151 137 145 140 145 146 151 137 166 156 164 146 162 145 166 156 164
++148 160 159 150 171 159 166 156 164 146 162 145 166 156 164 148 160 159 166 156 164 148 160 159
++146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 145 140 145 146 162 145 145 140 145
++146 151 137 145 140 145 126 147 144 146 151 137 145 140 145 145 140 145 121 143 132 145 140 145
++146 151 137 145 140 145 126 147 144 145 140 145 146 151 137 145 140 145 126 147 144 145 140 145
++146 162 145 146 151 137 145 140 145 146 151 137 126 147 144 145 140 145 146 151 137 145 140 145
++121 143 132 122 134 144 138 126 108 119 117 138 121 143 132 111 119 127 138 126 108 121 143 132
++122 134 144 138 126 108 122 134 144 138 126 108 111 119 127 121 143 132 111 119 127 111 119 127
++112 123 108 111 119 127 111 119 127 94 105 108 111 119 127 94 105 108 95 108 128 94 105 108
++95 108 128 94 105 108 95 95 116 77 91 115 75 81 90 61 78 101 60 63 87 34 42 77
++34 42 77 34 42 77 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 12 18 30
++34 42 77 24 30 43 34 42 77 29 34 50 34 42 77 29 34 50 34 42 77 29 34 50
++29 34 50 57 43 64 52 30 35 57 43 64 76 44 53 57 43 64 76 44 53 75 59 67
++88 44 51 88 44 51 101 60 73 88 44 51 101 60 73 120 63 71 120 63 71 120 63 71
++120 63 71 167 63 71 120 63 71 167 63 71 117 99 86 167 63 71 167 63 71 120 63 71
++167 63 71 117 99 86 167 63 71 168 102 88 120 63 71 167 63 71 168 102 88 167 63 71
++117 99 86 167 63 71 167 63 71 138 102 108 167 63 71 168 102 88 167 63 71 167 63 71
++117 99 86 167 63 71 117 99 86 167 63 71 168 102 88 167 63 71 168 102 88 120 63 71
++168 102 88 167 63 71 117 99 86 167 63 71 117 99 86 167 63 71 120 63 71 168 102 88
++120 63 71 168 102 88 168 102 88 168 102 88 176 103 41 168 102 88 168 102 88 168 102 88
++168 102 88 157 148 53 168 102 88 168 102 88 75 56 53 52 30 15 13 4 7 13 4 7
++3 3 1 13 4 7 7 12 13 13 4 7 3 4 9 13 4 7 3 4 9 13 4 7
++3 3 1 3 4 9 7 12 13 13 4 7 7 12 13 7 12 13 3 4 9 13 4 7
++3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 13 4 7
++3 3 1 3 3 1 13 4 7 23 10 10 26 12 13 34 30 15 26 25 15 22 24 13
++23 10 10 13 4 7 15 17 7 15 17 7 13 4 7 13 4 7 15 17 7 13 4 7
++6 15 6 13 4 7 6 15 6 13 4 7 3 3 1 13 4 7 15 17 7 23 10 10
++47 47 21 76 46 20 88 73 62 117 99 86 117 114 76 168 102 88 168 102 88 157 148 53
++146 150 115 168 102 88 157 148 53 138 126 108 168 102 88 157 148 53 117 114 76 168 102 88
++117 99 86 117 114 76 117 99 86 117 99 86 101 83 74 101 83 74 101 83 74 88 66 70
++88 73 62 75 59 67 75 59 67 63 59 71 57 43 64 46 59 71 57 43 64 34 42 77
++32 40 58 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 32 40 58 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 42 60 86 42 60 86 42 60 86
++61 78 101 77 91 115 77 91 115 95 108 128 95 108 128 95 108 128 98 121 131 111 122 142
++111 122 142 121 143 132 111 122 142 111 119 127 121 143 132 111 119 127 112 123 108 111 119 127
++111 119 127 112 123 108 95 108 128 112 123 108 95 95 116 94 105 108 95 95 116 94 105 108
++94 105 108 94 105 108 95 108 128 95 108 128 95 119 107 98 121 131 111 122 142 122 134 144
++122 134 144 129 144 153 131 144 168 148 160 159 150 147 171 148 160 159 166 156 164 150 168 183
++166 174 181 166 174 181 150 171 159 166 174 181 166 180 164 150 168 183 166 174 181 150 168 183
++148 160 159 148 160 159 148 160 159 146 162 145 145 140 145 126 147 144 119 117 138 111 119 127
++112 123 108 90 98 89 90 98 89 78 98 90 88 83 88 78 98 90 90 98 89 94 105 108
++112 123 108 111 119 127 119 117 138 122 134 144 126 147 144 126 147 144 150 144 154 148 160 159
++166 156 164 148 160 159 150 168 183 166 180 164 150 168 183 166 180 164 150 168 183 166 174 181
++166 174 181 166 174 181 150 171 159 111 119 127 45 57 61 3 4 9 7 10 17 14 16 17
++14 16 17 22 25 24 22 25 24 22 25 24 22 25 24 23 20 24 23 18 22 23 20 24
++23 20 24 12 18 20 23 18 22 23 18 22 23 20 24 23 20 24 22 23 31 22 23 31
++22 23 31 22 23 31 22 23 31 22 23 31 22 23 31 23 30 35 22 23 31 22 23 31
++28 30 35 24 30 43 28 30 35 37 35 43 43 42 50 48 50 48 43 42 50 36 35 37
++30 30 34 30 30 34 28 30 35 26 24 32 12 18 20 12 18 20 43 42 50 112 123 108
++166 174 181 166 174 181 150 171 159 150 168 183 148 160 159 150 168 183 131 144 168 148 160 159
++131 144 168 148 160 159 129 144 153 148 160 159 131 144 168 148 160 159 150 147 171 148 160 159
++148 160 159 150 168 183 148 160 159 150 168 183 166 156 164 150 168 183 166 180 164 150 168 183
++166 180 164 166 174 181 166 174 181 166 174 181 166 180 164 166 174 181 166 180 164 166 174 181
++166 180 164 150 168 183 150 171 159 150 168 183 148 160 159 148 160 159 131 144 168 131 144 168
++129 144 153 129 144 153 122 134 144 111 122 142 98 121 131 95 108 128 95 108 128 77 91 115
++77 91 115 61 78 101 61 78 101 42 60 86 42 60 86 42 60 86 34 42 77 34 42 77
++42 60 86 34 42 77 42 60 86 42 60 86 60 63 87 60 63 87 61 78 101 61 78 101
++77 90 100 77 91 115 77 91 115 94 105 108 95 108 128 95 108 128 95 108 128 98 121 131
++111 119 127 111 119 127 111 122 142 122 134 144 122 134 144 122 134 144 122 134 144 126 147 144
++129 144 153 150 144 154 131 144 168 148 160 159 148 160 159 150 147 171 148 160 159 148 160 159
++150 168 183 148 160 159 150 168 183 166 156 164 166 174 181 166 174 181 150 168 183 166 174 181
++166 156 164 150 168 183 150 168 183 148 160 159 150 168 183 148 160 159 148 160 159 148 160 159
++129 144 153 129 144 153 126 147 144 122 134 144 111 122 142 111 122 142 98 121 131 95 108 128
++95 108 128 77 91 115 77 91 115 61 78 101 61 78 101 42 60 86 46 59 71 34 42 77
++34 42 77 34 42 77 32 40 58 34 42 77 34 42 77 46 59 71 42 60 86 42 60 86
++60 63 87 77 90 100 77 91 115 95 95 116 95 108 128 98 121 131 111 119 127 111 122 142
++122 134 144 129 144 153 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159
++150 168 183 166 174 181 150 171 159 166 174 181 166 156 164 150 168 183 166 156 164 148 160 159
++148 160 159 129 144 153 148 160 159 129 144 153 129 144 153 121 143 132 111 122 142 111 122 142
++95 108 128 95 108 128 77 91 115 77 91 115 61 78 101 60 81 83 42 60 86 46 59 71
++46 59 71 32 40 58 34 42 77 32 40 58 34 42 77 32 40 58 32 40 58 34 42 77
++32 40 58 34 42 77 32 40 58 32 40 58 32 40 58 32 40 58 34 42 77 46 59 71
++60 63 87 60 63 87 61 78 101 77 90 100 77 91 115 95 95 116 95 119 107 98 121 131
++111 119 127 122 134 144 122 134 144 129 144 153 129 144 153 150 144 154 131 144 168 148 160 159
++148 160 159 166 156 164 150 168 183 148 160 159 150 168 183 150 168 183 166 156 164 150 171 159
++150 147 171 150 171 159 150 147 171 148 160 159 148 160 159 129 144 153 148 160 159 148 160 159
++129 144 153 129 144 153 145 140 145 126 147 144 122 134 144 122 134 144 122 134 144 122 134 144
++122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 121 143 132 122 134 144 122 134 144
++122 134 144 122 134 144 122 134 144 126 147 144 122 134 144 122 134 144 122 134 144 122 134 144
++122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 111 119 127 121 143 132
++111 119 127 111 119 127 111 119 127 95 108 128 95 108 128 95 95 116 77 91 115 77 90 100
++61 78 101 60 81 83 60 63 87 60 63 87 46 59 71 46 59 71 34 42 77 32 40 58
++32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58 32 40 58 46 59 71
++59 69 70 60 63 87 77 90 100 77 90 100 95 108 128 95 119 107 111 119 127 111 119 127
++121 143 132 122 134 144 126 147 144 126 147 144 129 144 153 129 144 153 148 160 159 129 144 153
++148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 148 160 159 148 160 159 150 144 154
++126 147 144 129 144 153 121 143 132 122 134 144 121 143 132 111 119 127 98 121 131 94 105 108
++77 91 115 75 81 90 61 78 101 60 63 87 46 59 71 46 59 71 32 40 58 32 40 58
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50
++29 34 50 24 30 43 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50
++
++47 39 42 47 44 42 47 44 42 51 49 42 55 55 48 65 63 61 65 63 61 75 72 67
++75 81 76 75 81 82 88 83 88 90 98 89 95 91 100 94 105 108 95 119 107 112 123 108
++111 119 127 111 119 127 111 119 127 138 126 108 119 117 138 121 143 132 119 117 138 138 126 108
++119 117 138 121 143 132 111 119 127 121 143 132 121 143 132 119 117 138 121 143 132 141 116 139
++121 143 132 138 126 108 121 143 132 119 117 138 121 143 132 141 116 139 121 143 132 122 134 144
++145 140 145 121 143 132 145 140 145 121 143 132 111 119 127 112 123 108 94 105 108 95 91 100
++78 98 90 75 81 82 59 69 70 59 57 61 48 50 48 48 50 48 33 39 38 33 30 32
++26 25 15 23 18 22 26 30 28 33 30 30 47 44 42 52 55 48 59 55 55 59 69 70
++75 72 67 75 81 76 75 81 76 75 81 82 88 83 88 90 98 89 90 98 89 95 91 100
++112 96 108 112 123 108 112 123 108 112 123 108 112 123 108 138 126 108 122 134 144 121 143 132
++121 143 132 145 140 145 146 151 137 146 151 137 148 160 159 150 144 154 148 160 159 166 156 164
++177 169 143 166 156 164 150 171 159 166 180 164 166 156 164 146 162 145 166 156 164 146 162 145
++166 156 164 146 162 145 150 144 154 146 162 145 145 140 145 146 162 145 145 140 145 146 151 137
++129 144 153 146 151 137 145 140 145 121 143 132 145 140 145 121 143 132 145 140 145 121 143 132
++145 140 145 121 143 132 145 140 145 121 143 132 145 140 145 121 143 132 146 151 137 126 147 144
++145 140 145 126 147 144 146 151 137 126 147 144 146 151 137 145 140 145 121 143 132 121 143 132
++141 116 139 121 143 132 111 119 127 138 126 108 111 119 127 138 126 108 111 119 127 111 119 127
++138 126 108 122 134 144 111 119 127 121 143 132 111 119 127 111 119 127 112 123 108 111 119 127
++111 119 127 94 105 108 112 96 108 95 119 107 112 96 108 95 108 128 112 123 108 94 105 108
++94 105 108 95 95 116 77 91 115 77 90 100 61 78 101 60 63 87 60 63 87 42 60 86
++34 42 77 29 34 50 24 30 43 34 42 77 12 18 30 34 42 77 34 42 77 24 30 43
++34 42 77 12 18 30 34 42 77 24 30 43 34 42 77 29 34 50 29 34 50 34 42 77
++29 34 50 34 42 77 29 34 50 57 43 64 57 43 64 57 43 64 76 44 53 57 43 64
++88 44 51 88 44 51 88 44 51 101 60 73 122 49 24 120 63 71 120 63 71 120 63 71
++120 63 71 120 63 71 167 63 71 120 63 71 167 63 71 120 63 71 176 103 41 167 63 71
++167 63 71 167 63 71 161 55 23 120 63 71 167 63 71 167 63 71 120 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 120 63 71 167 63 71 167 63 71
++167 63 71 167 63 71 167 63 71 168 102 88 167 63 71 120 63 71 167 63 71 167 63 71
++167 63 71 117 112 45 167 63 71 167 63 71 176 103 41 167 63 71 168 102 88 167 63 71
++176 103 41 167 63 71 167 63 71 117 112 45 167 63 71 168 102 88 176 103 41 168 102 88
++168 102 88 168 102 88 138 102 108 88 73 62 52 30 15 15 17 7 3 3 1 3 3 1
++6 15 6 13 4 7 3 4 9 7 12 13 13 4 7 3 4 9 3 4 9 3 3 1
++3 4 9 3 3 1 3 4 9 13 4 7 7 12 13 13 4 7 13 4 7 3 3 1
++3 4 9 3 4 9 3 3 1 3 4 9 3 3 1 3 4 9 3 4 9 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 13 4 7 15 17 7 23 10 10 15 17 7
++15 17 7 13 4 7 6 15 6 13 4 7 6 15 6 3 3 1 13 4 7 6 15 6
++13 4 7 13 4 7 13 4 7 13 4 7 3 3 1 23 10 10 52 30 15 101 74 26
++117 112 45 117 112 45 168 102 88 157 148 53 168 102 88 157 148 53 177 171 115 168 102 88
++157 148 53 168 102 88 157 148 53 168 102 88 157 148 53 117 99 86 168 102 88 117 112 45
++168 102 88 117 99 86 120 63 71 117 112 45 120 63 71 101 83 74 88 73 62 88 66 70
++75 72 67 75 72 67 63 59 71 63 59 71 46 59 71 57 43 64 34 42 77 34 42 77
++34 42 77 34 42 77 32 40 58 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 32 40 58 34 42 77 34 42 77 42 60 86 42 60 86 61 78 101
++61 78 101 77 91 115 77 91 115 95 108 128 95 108 128 119 117 138 111 122 142 111 119 127
++111 119 127 119 117 138 111 119 127 121 143 132 111 119 127 138 126 108 111 119 127 112 123 108
++112 123 108 112 96 108 112 123 108 112 96 108 112 123 108 112 96 108 95 119 107 94 105 108
++94 105 108 95 108 128 95 119 107 111 119 127 95 119 107 111 119 127 121 143 132 122 134 144
++122 134 144 129 144 153 129 144 153 148 160 159 148 160 159 150 168 183 150 168 183 150 171 159
++166 174 181 150 171 159 166 174 181 166 174 181 150 168 183 166 180 164 166 156 164 150 171 159
++166 174 181 148 160 159 148 160 159 150 144 154 129 144 153 126 147 144 121 143 132 111 119 127
++112 123 108 94 105 108 90 98 89 75 81 90 75 81 82 78 98 90 88 83 88 94 105 108
++94 105 108 111 119 127 111 119 127 121 143 132 145 140 145 145 140 145 148 160 159 148 160 159
++148 160 159 150 168 183 150 171 159 166 174 181 150 171 159 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 119 117 138 45 57 61 7 10 17 7 10 17 7 12 13
++12 18 20 12 18 20 12 18 20 23 20 24 22 23 31 12 18 20 14 16 17 7 10 17
++12 18 30 12 18 30 12 18 30 12 18 30 12 18 30 12 18 30 22 23 31 12 18 30
++12 18 30 22 23 31 12 18 30 12 18 30 12 18 30 12 18 30 22 23 31 12 18 30
++24 30 43 24 30 43 29 34 50 34 40 43 43 42 50 43 42 50 43 42 50 33 39 38
++28 30 35 26 24 32 25 30 29 26 24 32 12 18 20 14 16 17 35 47 50 94 105 108
++148 160 159 166 174 181 150 147 171 148 160 159 148 160 159 148 160 159 131 144 168 148 160 159
++131 144 168 148 160 159 129 144 153 148 160 159 131 144 168 148 160 159 131 144 168 148 160 159
++148 160 159 148 160 159 148 160 159 150 171 159 150 168 183 150 171 159 166 174 181 150 171 159
++166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 150 168 183
++166 180 164 150 168 183 150 171 159 150 168 183 148 160 159 150 147 171 148 160 159 129 144 153
++129 144 153 129 144 153 122 134 144 111 122 142 111 122 142 98 121 131 95 108 128 77 91 115
++77 91 115 61 78 101 42 60 86 61 78 101 34 42 77 42 60 86 34 42 77 42 60 86
++34 42 77 42 60 86 42 60 86 42 60 86 60 63 87 60 63 87 61 78 101 61 78 101
++77 91 115 77 91 115 77 91 115 95 95 116 95 108 128 95 108 128 95 108 128 98 121 131
++111 119 127 111 122 142 111 122 142 111 122 142 122 134 144 122 134 144 122 134 144 122 134 144
++129 144 153 129 144 153 148 160 159 131 144 168 148 160 159 148 160 159 148 160 159 150 168 183
++166 156 164 150 171 159 166 174 181 150 171 159 150 168 183 150 171 159 166 174 181 150 168 183
++166 174 181 150 171 159 166 174 181 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153
++148 160 159 129 144 153 122 134 144 122 134 144 122 134 144 111 122 142 98 121 131 95 108 128
++95 108 128 77 91 115 77 91 115 61 78 101 61 78 101 42 60 86 42 60 86 46 59 71
++34 42 77 46 59 71 34 42 77 32 40 58 34 42 77 46 59 71 42 60 86 60 63 87
++61 78 101 77 90 100 77 91 115 94 105 108 95 108 128 95 108 128 111 119 127 122 134 144
++122 134 144 126 147 144 145 140 145 148 160 159 148 160 159 148 160 159 148 160 159 150 168 183
++166 156 164 150 171 159 166 174 181 150 168 183 150 171 159 150 168 183 150 171 159 148 160 159
++150 147 171 148 160 159 129 144 153 129 144 153 122 134 144 122 134 144 111 122 142 111 119 127
++98 121 131 94 105 108 77 91 115 77 90 100 61 78 101 60 63 87 46 59 71 46 59 71
++34 42 77 34 42 77 32 40 58 32 40 58 32 40 58 34 42 77 32 40 58 32 40 58
++34 42 77 32 40 58 32 40 58 34 42 77 32 40 58 34 42 77 45 57 61 34 42 77
++46 59 71 61 78 101 75 81 90 77 90 100 77 91 115 95 108 128 95 108 128 111 119 127
++111 122 142 121 143 132 122 134 144 126 147 144 129 144 153 148 160 159 148 160 159 148 160 159
++148 160 159 150 168 183 150 171 159 166 174 181 148 160 159 148 160 159 150 168 183 148 160 159
++148 160 159 150 168 183 148 160 159 148 160 159 131 144 168 148 160 159 129 144 153 129 144 153
++150 144 154 129 144 153 129 144 153 122 134 144 122 134 144 122 134 144 121 143 132 111 122 142
++121 143 132 122 134 144 122 134 144 122 134 144 111 122 142 122 134 144 111 119 127 122 134 144
++122 134 144 122 134 144 122 134 144 111 119 127 122 134 144 122 134 144 122 134 144 119 117 138
++122 134 144 111 119 127 122 134 144 111 122 142 121 143 132 111 122 142 98 121 131 111 119 127
++98 121 131 98 121 131 95 108 128 94 105 108 77 91 115 77 91 115 77 90 100 77 90 100
++61 78 101 60 63 87 60 63 87 46 59 71 46 59 71 34 42 77 32 40 58 32 40 58
++32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 46 59 71 46 59 71
++60 63 87 60 81 83 77 90 100 77 90 100 94 105 108 95 108 128 111 119 127 111 119 127
++121 143 132 122 134 144 129 144 153 145 140 145 129 144 153 148 160 159 148 160 159 148 160 159
++148 160 159 131 144 168 148 160 159 148 160 159 148 160 159 150 144 154 129 144 153 129 144 153
++145 140 145 126 147 144 122 134 144 122 134 144 111 119 127 98 121 131 95 108 128 94 105 108
++77 90 100 77 90 100 60 63 87 60 63 87 46 59 71 57 43 64 32 40 58 32 40 58
++29 34 50 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50 29 34 50 29 34 50
++29 34 50 29 34 50 29 34 50 24 30 43 29 34 50 29 34 50 29 34 50 29 34 50
++
++47 44 42 47 44 42 51 49 42 55 55 48 65 55 54 65 63 61 75 72 67 75 81 76
++75 81 76 88 83 88 77 90 100 90 98 89 94 105 108 94 105 108 94 105 108 112 123 108
++111 119 127 111 119 127 121 143 132 111 119 127 122 134 144 138 126 108 121 143 132 119 117 138
++121 143 132 111 119 127 121 143 132 141 116 139 121 143 132 121 143 132 141 116 139 121 143 132
++121 143 132 122 134 144 121 143 132 141 116 139 121 143 132 121 143 132 145 140 145 121 143 132
++121 143 132 141 116 139 121 143 132 119 117 138 112 123 108 111 119 127 94 105 108 94 105 108
++88 83 88 75 81 82 75 81 76 65 63 61 54 57 61 48 50 48 42 41 42 36 35 37
++26 30 28 26 25 15 26 25 15 33 30 30 36 35 37 47 49 42 55 55 48 50 61 48
++53 63 61 65 63 61 75 72 67 75 72 67 75 81 76 88 83 74 88 83 88 90 98 89
++90 98 89 112 123 108 112 96 108 112 123 108 111 119 127 111 119 127 138 126 108 119 117 138
++138 126 108 121 143 132 126 147 144 145 140 145 146 162 145 146 162 145 166 156 164 150 171 159
++150 171 159 166 156 164 166 180 164 166 156 164 150 171 159 166 156 164 148 160 159 166 156 164
++146 162 145 148 160 159 146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 145 140 145
++146 151 137 126 147 144 145 140 145 121 143 132 145 140 145 121 143 132 138 126 108 145 140 145
++121 143 132 121 143 132 145 140 145 121 143 132 121 143 132 141 116 139 121 143 132 145 140 145
++121 143 132 145 140 145 126 147 144 145 140 145 145 140 145 121 143 132 145 140 145 121 143 132
++121 143 132 138 126 108 119 117 138 117 142 111 111 119 127 111 119 127 117 142 111 111 119 127
++121 143 132 111 119 127 138 126 108 111 119 127 138 126 108 111 119 127 111 119 127 112 123 108
++111 119 127 112 123 108 95 108 128 94 105 108 111 119 127 95 108 128 94 105 108 95 108 128
++95 95 116 94 105 108 95 91 100 77 90 100 77 90 100 60 63 87 60 63 87 34 42 77
++32 40 58 34 42 77 34 42 77 12 18 30 34 42 77 12 18 30 34 42 77 12 18 30
++34 42 77 24 30 43 34 42 77 12 18 30 34 42 77 29 34 50 34 42 77 29 34 50
++29 34 50 57 43 64 29 34 50 57 43 64 59 36 42 57 43 64 76 44 53 76 44 53
++57 43 64 101 60 73 88 44 51 88 44 51 101 60 73 88 44 51 120 63 71 122 49 24
++167 63 71 120 63 71 161 55 23 120 63 71 161 55 23 167 63 71 120 63 71 161 55 23
++120 63 71 176 103 41 120 63 71 167 63 71 161 55 23 167 63 71 167 63 71 161 55 23
++167 63 71 117 112 45 167 63 71 120 63 71 176 103 41 167 63 71 167 63 71 176 103 41
++120 63 71 176 103 41 167 63 71 167 63 71 167 63 71 167 63 71 167 63 71 117 112 45
++167 63 71 167 63 71 167 63 71 176 103 41 120 63 71 167 63 71 167 63 71 176 103 41
++167 63 71 120 63 71 176 103 41 167 63 71 167 63 71 176 103 41 120 63 71 176 103 41
++168 102 88 117 114 76 120 63 71 55 39 18 15 17 7 13 4 7 13 4 7 6 15 6
++13 4 7 6 15 6 13 4 7 3 4 9 3 3 1 3 4 9 13 4 7 3 3 1
++3 4 9 3 3 1 3 3 1 3 4 9 13 4 7 3 4 9 3 4 9 3 4 9
++3 4 9 13 4 7 3 4 9 3 3 1 3 3 1 3 4 9 3 4 9 3 4 9
++3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 13 4 7
++3 3 1 3 3 1 3 3 1 13 4 7 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 13 4 7 3 3 1 3 3 1 3 3 1 53 35 17 101 74 26 157 148 53
++168 102 88 157 148 53 176 103 41 157 148 53 157 148 53 168 102 88 176 103 41 157 148 53
++176 103 41 157 148 53 168 102 88 117 114 76 168 102 88 168 102 88 117 112 45 168 102 88
++120 63 71 117 112 45 117 99 86 101 83 74 101 83 74 101 83 74 88 66 70 88 73 62
++75 63 62 63 59 71 54 57 61 57 43 64 57 43 64 45 57 61 34 42 77 34 42 77
++32 40 58 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 42 60 86 42 60 86 60 63 87
++61 78 101 77 91 115 77 91 115 95 95 116 95 108 128 95 108 128 95 108 128 111 119 127
++111 119 127 111 119 127 119 117 138 119 117 138 138 126 108 111 119 127 111 119 127 138 102 108
++111 119 127 138 126 108 111 119 127 112 123 108 112 123 108 112 123 108 112 96 108 112 123 108
++111 119 127 112 123 108 112 123 108 111 119 127 111 119 127 111 119 127 111 122 142 122 134 144
++129 144 153 129 144 153 148 160 159 131 144 168 150 147 171 148 160 159 148 160 159 150 171 159
++166 174 181 150 168 183 166 174 181 150 168 183 166 180 164 166 174 181 150 168 183 166 180 164
++150 168 183 148 160 159 148 160 159 148 160 159 129 144 153 146 151 137 141 116 139 111 119 127
++111 119 127 94 105 108 90 98 89 78 98 90 75 81 82 75 81 82 78 98 90 95 91 100
++94 105 108 112 123 108 111 119 127 119 117 138 121 143 132 129 144 153 129 144 153 148 160 159
++150 168 183 148 160 159 166 174 181 150 171 159 166 174 181 166 174 181 150 168 183 166 174 181
++150 168 183 166 174 181 166 174 181 122 134 144 54 57 61 7 10 17 3 4 9 7 12 13
++12 18 20 12 18 20 17 12 17 7 10 17 3 4 9 3 4 9 7 10 17 12 18 30
++43 42 50 57 43 64 75 64 82 75 81 90 77 90 100 95 91 100 95 95 116 95 91 100
++95 95 116 95 91 100 77 91 115 95 91 100 77 90 100 77 90 100 60 63 87 46 59 71
++29 34 50 23 30 35 22 23 31 22 23 31 24 30 43 24 30 43 37 35 43 31 35 35
++30 30 34 28 30 35 26 24 32 25 30 29 23 20 24 12 18 20 31 35 35 75 81 90
++150 144 154 166 174 181 150 168 183 150 168 183 131 144 168 148 160 159 148 160 159 131 144 168
++148 160 159 148 160 159 129 144 153 148 160 159 148 160 159 131 144 168 148 160 159 148 160 159
++150 147 171 148 160 159 150 168 183 150 147 171 150 171 159 166 156 164 148 160 159 166 174 181
++166 174 181 166 174 181 166 174 181 166 174 181 150 168 183 166 180 164 150 168 183 166 180 164
++150 168 183 150 171 159 150 168 183 148 160 159 150 168 183 148 160 159 131 144 168 131 144 168
++129 144 153 122 134 144 111 122 142 111 122 142 98 121 131 95 108 128 77 91 115 77 91 115
++61 78 101 61 78 101 61 78 101 42 60 86 42 60 86 34 42 77 42 60 86 34 42 77
++42 60 86 34 42 77 42 60 86 42 60 86 42 60 86 60 63 87 61 78 101 61 78 101
++61 78 101 77 91 115 77 91 115 77 91 115 95 95 116 95 108 128 95 108 128 111 119 127
++98 121 131 98 121 131 111 119 127 111 122 142 111 122 142 122 134 144 122 134 144 122 134 144
++126 147 144 129 144 153 150 144 154 131 144 168 148 160 159 150 147 171 148 160 159 148 160 159
++150 168 183 148 160 159 150 168 183 166 156 164 166 174 181 166 174 181 166 174 181 166 180 164
++150 168 183 166 174 181 150 168 183 150 168 183 148 160 159 150 168 183 148 160 159 148 160 159
++148 160 159 129 144 153 129 144 153 122 134 144 122 134 144 111 122 142 98 121 131 95 108 128
++95 108 128 77 91 115 77 91 115 61 78 101 61 78 101 60 63 87 42 60 86 34 42 77
++46 59 71 34 42 77 34 42 77 32 40 58 34 42 77 46 59 71 42 60 86 60 63 87
++61 78 101 77 90 100 77 91 115 95 108 128 95 108 128 98 121 131 111 119 127 122 134 144
++122 134 144 126 147 144 129 144 153 129 144 153 148 160 159 150 147 171 148 160 159 148 160 159
++150 171 159 150 168 183 166 174 181 150 171 159 166 174 181 166 156 164 150 168 183 148 160 159
++148 160 159 148 160 159 129 144 153 129 144 153 129 144 153 122 134 144 111 122 142 111 119 127
++98 121 131 95 108 128 77 91 115 77 90 100 61 78 101 60 63 87 42 60 86 46 59 71
++34 42 77 35 47 50 34 42 77 32 40 58 34 42 77 32 40 58 34 42 77 45 57 61
++32 40 58 34 42 77 32 40 58 32 40 58 34 42 77 32 40 58 34 42 77 46 59 71
++42 60 86 60 63 87 61 78 101 77 90 100 77 91 115 94 105 108 95 108 128 98 121 131
++111 119 127 111 122 142 122 134 144 129 144 153 129 144 153 129 144 153 148 160 159 150 147 171
++148 160 159 150 168 183 148 160 159 150 168 183 166 156 164 150 168 183 148 160 159 150 168 183
++148 160 159 148 160 159 131 144 168 148 160 159 150 144 154 150 147 171 129 144 153 150 144 154
++129 144 153 129 144 153 129 144 153 122 134 144 122 134 144 122 134 144 111 122 142 122 134 144
++111 119 127 111 122 142 111 122 142 111 119 127 111 119 127 111 122 142 111 119 127 111 122 142
++111 119 127 111 122 142 111 119 127 111 122 142 111 119 127 111 119 127 111 119 127 111 122 142
++111 119 127 111 122 142 111 119 127 111 122 142 98 121 131 111 122 142 98 121 131 111 119 127
++95 108 128 95 108 128 95 108 128 94 105 108 77 91 115 77 91 115 77 90 100 61 78 101
++60 63 87 60 63 87 46 59 71 46 59 71 34 42 77 45 57 61 32 40 58 32 40 58
++32 40 58 29 34 50 32 40 58 29 34 50 32 40 58 32 40 58 46 59 71 46 59 71
++60 63 87 61 78 101 77 90 100 77 90 100 95 108 128 111 119 127 98 121 131 121 143 132
++122 134 144 126 147 144 126 147 144 129 144 153 148 160 159 129 144 153 148 160 159 129 144 153
++148 160 159 148 160 159 150 144 154 148 160 159 129 144 153 148 160 159 148 160 159 150 144 154
++126 147 144 122 134 144 121 143 132 111 119 127 111 119 127 111 119 127 95 108 128 95 95 116
++77 90 100 61 78 101 61 78 101 63 59 71 46 59 71 34 42 77 32 40 58 32 40 58
++29 34 50 29 34 50 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50 29 34 50
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50
++
++51 49 42 60 49 42 63 55 51 65 63 61 75 72 67 75 72 67 75 81 76 75 81 82
++88 83 88 78 98 90 95 91 100 95 91 100 94 105 108 112 123 108 94 105 108 111 119 127
++111 119 127 138 126 108 119 117 138 121 143 132 138 126 108 122 134 144 119 117 138 121 143 132
++138 126 108 121 143 132 121 143 132 121 143 132 141 116 139 121 143 132 121 143 132 145 140 145
++138 126 108 145 140 145 121 143 132 121 143 132 145 140 145 121 143 132 121 143 132 141 116 139
++126 147 144 145 140 145 121 143 132 138 126 108 119 117 138 112 123 108 112 96 108 94 105 108
++95 91 100 75 81 90 75 81 76 59 69 70 59 57 61 52 55 48 48 44 48 42 38 42
++33 30 30 26 30 28 26 25 15 33 30 30 33 30 30 42 41 42 47 49 42 52 55 48
++59 55 55 53 63 61 65 63 61 75 72 67 75 72 67 75 81 76 75 81 82 99 93 84
++90 98 89 95 91 100 112 123 108 112 123 108 112 123 108 111 119 127 121 143 132 121 143 132
++122 134 144 146 151 137 146 151 137 146 151 137 148 160 159 150 144 154 148 160 159 166 156 164
++166 180 164 166 156 164 150 171 159 166 156 164 166 180 164 150 171 159 166 156 164 146 162 145
++166 156 164 146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 145 140 145 146 151 137
++126 147 144 145 140 145 121 143 132 145 140 145 138 126 108 122 134 144 121 143 132 121 143 132
++138 126 108 141 116 139 117 142 111 141 116 139 121 143 132 138 126 108 121 143 132 138 126 108
++145 140 145 121 143 132 138 126 108 121 143 132 121 143 132 145 140 145 138 126 108 122 134 144
++138 126 108 111 119 127 117 142 111 111 119 127 112 123 108 111 119 127 138 126 108 111 119 127
++138 126 108 111 119 127 121 143 132 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127
++112 96 108 95 108 128 112 96 108 95 119 107 112 96 108 95 108 128 94 105 108 94 105 108
++94 105 108 95 95 116 77 91 115 77 90 100 61 78 101 60 63 87 42 60 86 46 59 71
++34 42 77 29 34 50 24 30 43 34 42 77 12 18 30 34 42 77 24 30 43 34 42 77
++12 18 30 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 29 34 50 34 42 77
++29 34 50 29 34 50 29 34 50 57 43 64 52 30 35 57 43 64 57 43 64 76 44 53
++76 44 53 76 44 53 88 44 51 101 60 73 88 44 51 120 63 71 122 49 24 120 63 71
++122 49 24 120 63 71 120 63 71 161 55 23 120 63 71 122 49 24 167 63 71 120 63 71
++161 55 23 120 63 71 161 55 23 167 63 71 120 63 71 161 55 23 120 63 71 167 63 71
++161 55 23 167 63 71 161 55 23 167 63 71 122 49 24 167 63 71 122 49 24 167 63 71
++167 63 71 120 63 71 161 55 23 120 63 71 176 103 41 120 63 71 161 55 23 167 63 71
++161 55 23 120 63 71 161 55 23 120 63 71 167 63 71 176 103 41 120 63 71 167 63 71
++167 63 71 176 103 41 120 63 71 176 103 41 167 63 71 167 63 71 176 103 41 120 63 71
++117 112 45 120 63 71 52 30 15 26 12 13 13 4 7 13 4 7 15 17 7 6 15 6
++7 12 13 13 4 7 3 4 9 3 3 1 3 3 1 3 3 1 3 4 9 3 4 9
++3 3 1 3 3 1 3 4 9 3 3 1 3 4 9 13 4 7 3 4 9 13 4 7
++3 4 9 3 4 9 3 3 1 3 4 9 3 4 9 3 4 9 3 4 9 3 3 1
++3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 23 10 10 52 30 15 88 73 62 157 148 53 168 102 88
++157 148 53 201 146 124 157 148 53 176 103 41 168 102 88 157 148 53 157 148 53 168 102 88
++157 148 53 168 102 88 157 148 53 176 103 41 117 114 76 117 112 45 168 102 88 117 112 45
++117 99 86 120 63 71 117 99 86 120 63 71 101 83 74 88 73 62 88 73 62 75 63 62
++75 63 62 63 59 71 59 57 61 46 59 71 34 42 77 57 43 64 34 42 77 32 40 58
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 42 60 86 42 60 86 61 78 101
++61 78 101 77 91 115 77 91 115 95 95 116 95 95 116 95 108 128 111 119 127 111 119 127
++111 119 127 111 119 127 138 126 108 111 119 127 111 119 127 138 126 108 112 123 108 111 119 127
++112 123 108 112 123 108 138 102 108 112 123 108 112 123 108 138 102 108 112 123 108 112 123 108
++111 119 127 112 123 108 111 119 127 111 119 127 111 119 127 121 143 132 121 143 132 122 134 144
++126 147 144 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 150 168 183 150 168 183
++150 171 159 166 174 181 150 171 159 166 174 181 166 156 164 150 168 183 166 180 164 166 156 164
++150 171 159 166 156 164 148 160 159 148 160 159 145 140 145 126 147 144 121 143 132 111 119 127
++112 123 108 94 105 108 88 83 88 75 81 90 75 81 76 75 81 82 75 81 90 90 98 89
++94 105 108 94 105 108 111 119 127 121 143 132 122 134 144 145 140 145 145 140 145 148 160 159
++148 160 159 166 156 164 150 168 183 150 171 159 166 174 181 166 174 181 166 174 181 166 174 181
++166 174 181 166 174 181 166 174 181 129 144 153 63 59 71 7 10 17 7 10 17 7 12 13
++14 16 17 7 12 13 7 10 17 17 12 17 22 23 31 37 35 43 75 64 82 95 91 100
++119 117 138 150 147 171 150 168 183 188 180 202 188 180 202 188 180 202 185 202 202 194 199 226
++188 180 202 194 199 226 188 180 202 194 199 226 188 180 202 188 180 202 166 174 181 150 147 171
++119 117 138 77 90 100 63 59 71 32 40 58 28 30 35 23 30 35 22 23 31 26 24 32
++28 30 35 28 30 35 30 30 34 28 30 35 22 25 24 12 18 30 23 20 24 59 69 70
++129 144 153 166 156 164 150 168 183 148 160 159 148 160 159 131 144 168 148 160 159 129 144 153
++148 160 159 131 144 168 148 160 159 131 144 168 148 160 159 148 160 159 131 144 168 148 160 159
++148 160 159 148 160 159 148 160 159 148 160 159 150 168 183 150 168 183 150 171 159 166 174 181
++150 171 159 166 174 181 166 174 181 166 180 164 166 174 181 166 174 181 166 180 164 150 168 183
++166 174 181 148 160 159 150 168 183 148 160 159 148 160 159 148 160 159 131 144 168 129 144 153
++129 144 153 122 134 144 122 134 144 111 122 142 98 121 131 95 108 128 95 108 128 77 91 115
++61 78 101 61 78 101 42 60 86 42 60 86 42 60 86 42 60 86 34 42 77 42 60 86
++34 42 77 60 63 87 42 60 86 42 60 86 60 63 87 61 78 101 61 78 101 61 78 101
++77 91 115 77 91 115 77 91 115 95 95 116 95 108 128 94 105 108 95 108 128 95 108 128
++98 121 131 111 119 127 98 121 131 111 122 142 122 134 144 122 134 144 122 134 144 122 134 144
++129 144 153 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 150 168 183 166 156 164 150 168 183 166 180 164 150 168 183 166 156 164 166 174 181
++166 174 181 150 171 159 166 174 181 150 171 159 150 168 183 148 160 159 148 160 159 131 144 168
++148 160 159 129 144 153 129 144 153 129 144 153 122 134 144 111 122 142 98 121 131 98 121 131
++95 108 128 77 91 115 77 91 115 61 78 101 61 78 101 42 60 86 42 60 86 42 60 86
++34 42 77 34 42 77 45 57 61 34 42 77 34 42 77 46 59 71 42 60 86 60 81 83
++61 78 101 77 90 100 95 95 116 94 105 108 95 108 128 98 121 131 111 122 142 122 134 144
++122 134 144 126 147 144 150 144 154 148 160 159 148 160 159 148 160 159 148 160 159 150 168 183
++166 174 181 166 156 164 150 168 183 166 156 164 150 168 183 150 171 159 148 160 159 148 160 159
++148 160 159 148 160 159 129 144 153 129 144 153 126 147 144 122 134 144 111 122 142 111 119 127
++98 121 131 95 108 128 95 95 116 77 91 115 61 78 101 60 63 87 42 60 86 46 59 71
++34 42 77 45 57 61 34 42 77 46 59 71 34 42 77 45 57 61 32 40 58 34 42 77
++32 40 58 32 40 58 34 42 77 32 40 58 32 40 58 46 59 71 34 42 77 46 59 71
++60 63 87 60 63 87 61 78 101 77 90 100 77 91 115 95 108 128 95 108 128 111 119 127
++111 119 127 121 143 132 122 134 144 122 134 144 129 144 153 150 144 154 129 144 153 148 160 159
++148 160 159 148 160 159 150 168 183 166 156 164 150 171 159 148 160 159 150 168 183 148 160 159
++150 147 171 148 160 159 148 160 159 129 144 153 148 160 159 129 144 153 148 160 159 129 144 153
++129 144 153 122 134 144 122 134 144 122 134 144 122 134 144 111 119 127 111 119 127 98 121 131
++111 119 127 111 119 127 111 119 127 98 121 131 111 119 127 111 119 127 111 122 142 111 119 127
++98 121 131 111 119 127 98 121 131 111 119 127 98 121 131 111 119 127 111 122 142 111 119 127
++111 119 127 111 122 142 98 121 131 111 119 127 111 122 142 98 121 131 98 121 131 95 108 128
++95 119 107 95 108 128 94 105 108 77 91 115 77 90 100 77 90 100 61 78 101 60 63 87
++60 81 83 46 59 71 42 60 86 46 59 71 45 57 61 32 40 58 32 40 58 32 40 58
++29 34 50 32 40 58 29 34 50 32 40 58 32 40 58 34 42 77 46 59 71 60 63 87
++60 81 83 75 81 90 77 90 100 95 95 116 95 108 128 111 119 127 111 119 127 122 134 144
++122 134 144 122 134 144 129 144 153 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159
++148 160 159 131 144 168 148 160 159 148 160 159 148 160 159 129 144 153 148 160 159 129 144 153
++126 147 144 122 134 144 122 134 144 111 119 127 111 119 127 98 121 131 94 105 108 77 91 115
++77 90 100 75 81 90 60 63 87 46 59 71 46 59 71 32 40 58 43 42 50 32 40 58
++29 34 50 29 34 50 24 30 43 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50
++29 34 50 24 30 43 29 34 50 24 30 43 29 34 50 29 34 50 29 34 50 29 34 50
++
++55 55 48 63 55 51 65 63 61 65 63 61 75 72 67 88 83 74 88 83 74 88 83 88
++90 98 89 90 98 89 94 105 108 112 123 108 94 105 108 112 123 108 111 119 127 112 123 108
++119 117 138 119 117 138 121 143 132 119 117 138 121 143 132 121 143 132 141 116 139 121 143 132
++122 134 144 141 116 139 121 143 132 145 140 145 121 143 132 145 140 145 145 140 145 122 134 144
++145 140 145 121 143 132 145 140 145 121 143 132 145 140 145 121 143 132 145 140 145 121 143 132
++121 143 132 145 140 145 122 134 144 121 143 132 111 119 127 111 119 127 112 123 108 94 105 108
++90 98 89 75 81 90 75 81 90 75 72 67 59 69 70 54 57 61 42 47 42 42 47 42
++36 35 37 33 30 30 22 25 24 26 25 15 29 35 19 33 30 30 42 41 42 47 49 42
++51 49 42 52 55 48 59 55 55 59 57 61 65 63 61 75 72 67 75 72 67 88 83 74
++88 83 88 90 98 89 112 96 108 112 96 108 112 123 108 111 119 127 138 126 108 119 117 138
++138 126 108 122 134 144 126 147 144 146 151 137 150 144 154 146 162 145 148 160 159 150 171 159
++166 156 164 166 180 164 166 180 164 166 156 164 166 180 164 166 156 164 150 171 159 166 156 164
++148 160 159 150 144 154 148 160 159 146 162 145 148 160 159 146 151 137 126 147 144 145 140 145
++145 140 145 121 143 132 145 140 145 121 143 132 121 143 132 121 143 132 145 140 145 138 126 108
++111 119 127 121 143 132 138 126 108 121 143 132 138 126 108 121 143 132 141 116 139 121 143 132
++121 143 132 141 116 139 121 143 132 122 134 144 138 126 108 111 119 127 121 143 132 111 119 127
++121 143 132 111 119 127 138 126 108 111 119 127 112 123 108 111 119 127 112 123 108 111 119 127
++111 119 127 117 142 111 111 119 127 138 126 108 111 119 127 112 123 108 111 119 127 112 123 108
++111 119 127 112 123 108 111 119 127 95 108 128 111 119 127 94 105 108 111 119 127 95 108 128
++95 95 116 94 105 108 77 90 100 77 90 100 75 81 90 60 63 87 46 59 71 34 42 77
++29 34 50 34 42 77 29 34 50 12 18 30 34 42 77 12 18 30 34 42 77 24 30 43
++34 42 77 12 18 30 34 42 77 12 18 30 34 42 77 24 30 43 34 42 77 29 34 50
++29 34 50 29 34 50 29 34 50 57 43 64 29 34 50 57 43 64 59 36 42 57 43 64
++57 43 64 76 44 53 88 44 51 88 44 51 88 44 51 88 44 51 120 63 71 102 33 26
++120 63 71 122 49 24 122 49 24 120 63 71 122 49 24 167 63 71 122 49 24 161 55 23
++167 63 71 161 55 23 120 63 71 161 55 23 161 55 23 167 63 71 161 55 23 161 55 23
++161 55 23 120 63 71 161 55 23 122 49 24 167 63 71 161 55 23 167 63 71 161 55 23
++161 55 23 161 55 23 167 63 71 161 55 23 161 55 23 167 63 71 161 55 23 167 63 71
++161 55 23 167 63 71 161 55 23 167 63 71 161 55 23 161 55 23 167 63 71 161 55 23
++161 55 23 161 55 23 167 63 71 161 55 23 120 63 71 176 103 41 117 99 86 120 63 71
++88 44 51 55 39 18 26 12 13 13 4 7 13 4 7 13 4 7 13 4 7 13 4 7
++13 4 7 7 12 13 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 13 4 7
++3 4 9 3 3 1 3 3 1 3 3 1 3 4 9 7 12 13 7 12 13 6 15 6
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 13 4 7
++3 3 1 13 4 7 23 10 10 76 18 19 117 112 45 176 103 41 157 148 53 219 175 47
++176 103 41 176 103 41 219 175 47 176 103 41 157 148 53 176 103 41 176 103 41 176 103 41
++176 103 41 117 112 45 176 103 41 117 114 76 176 103 41 168 102 88 117 112 45 120 63 71
++117 112 45 120 63 71 117 112 45 101 83 74 88 73 62 88 66 70 88 66 70 75 59 67
++65 57 61 63 59 71 63 59 71 57 43 64 32 40 58 34 42 77 34 42 77 34 42 77
++32 40 58 34 42 77 29 34 50 34 42 77 34 42 77 34 42 77 29 34 50 34 42 77
++34 42 77 32 40 58 34 42 77 34 42 77 34 42 77 42 60 86 42 60 86 61 78 101
++61 78 101 77 91 115 77 91 115 77 91 115 95 95 116 95 95 116 95 95 116 112 96 108
++111 119 127 112 123 108 111 119 127 138 126 108 112 123 108 138 126 108 112 123 108 138 126 108
++138 102 108 112 123 108 138 126 108 112 123 108 138 102 108 112 123 108 112 123 108 112 123 108
++138 102 108 112 123 108 112 123 108 111 119 127 117 142 111 111 119 127 122 134 144 122 134 144
++126 147 144 129 144 153 129 144 153 148 160 159 150 147 171 148 160 159 148 160 159 150 171 159
++166 174 181 150 168 183 166 174 181 150 168 183 166 174 181 166 180 164 150 168 183 166 174 181
++150 171 159 150 168 183 148 160 159 148 160 159 150 144 154 126 147 144 145 140 145 111 119 127
++111 119 127 94 105 108 78 98 90 75 81 82 60 81 83 59 69 70 75 81 82 75 81 90
++94 105 108 94 105 108 112 123 108 111 119 127 121 143 132 126 147 144 129 144 153 148 160 159
++148 160 159 150 168 183 150 171 159 166 174 181 150 168 183 150 171 159 166 174 181 150 168 183
++166 174 181 166 174 181 166 174 181 145 140 145 60 63 87 12 18 20 7 10 17 7 10 17
++7 10 17 7 10 17 23 20 24 34 42 77 95 91 100 122 134 144 166 174 181 194 199 226
++208 221 247 226 221 247 226 221 247 226 221 247 226 221 247 221 238 247 226 221 247 231 239 247
++226 221 247 235 238 247 235 238 247 235 238 247 235 238 247 235 238 247 235 238 247 235 238 247
++231 239 247 185 202 202 166 174 181 111 119 127 60 63 87 32 40 58 12 18 30 22 23 31
++22 23 31 26 24 32 25 30 29 26 24 32 22 23 31 23 20 24 23 20 24 65 63 61
++122 134 144 150 171 159 150 168 183 150 171 159 131 144 168 150 171 159 131 144 168 148 160 159
++131 144 168 148 160 159 129 144 153 148 160 159 131 144 168 150 144 154 148 160 159 131 144 168
++148 160 159 150 147 171 148 160 159 150 147 171 148 160 159 166 174 181 150 171 159 150 168 183
++166 174 181 150 168 183 166 174 181 166 174 181 150 168 183 166 174 181 150 168 183 166 174 181
++150 171 159 150 168 183 150 171 159 148 160 159 150 168 183 148 160 159 129 144 153 131 144 168
++129 144 153 122 134 144 111 122 142 111 122 142 98 121 131 95 108 128 77 91 115 77 91 115
++61 78 101 61 78 101 60 63 87 42 60 86 34 42 77 42 60 86 42 60 86 34 42 77
++42 60 86 42 60 86 42 60 86 60 63 87 42 60 86 60 63 87 61 78 101 61 78 101
++61 78 101 77 91 115 77 91 115 77 91 115 95 108 128 95 108 128 95 108 128 98 121 131
++98 121 131 98 121 131 111 119 127 111 122 142 98 121 131 122 134 144 122 134 144 122 134 144
++126 147 144 150 144 154 129 144 153 148 160 159 131 144 168 148 160 159 150 147 171 148 160 159
++166 156 164 148 160 159 150 171 159 166 174 181 150 171 159 166 174 181 166 174 181 150 168 183
++166 174 181 150 168 183 166 156 164 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 129 144 153 129 144 153 122 134 144 122 134 144 111 122 142 111 122 142 95 108 128
++95 108 128 95 108 128 77 91 115 61 78 101 61 78 101 60 63 87 42 60 86 42 60 86
++34 42 77 45 57 61 34 42 77 34 42 77 32 40 58 46 59 71 60 63 87 60 63 87
++61 78 101 77 90 100 77 91 115 95 108 128 95 108 128 111 119 127 111 119 127 122 134 144
++122 134 144 129 144 153 129 144 153 129 144 153 150 147 171 148 160 159 148 160 159 166 156 164
++150 171 159 150 168 183 166 180 164 150 168 183 166 180 164 166 156 164 150 168 183 148 160 159
++150 147 171 148 160 159 129 144 153 129 144 153 129 144 153 122 134 144 122 134 144 111 119 127
++95 108 128 95 108 128 95 108 128 77 91 115 77 90 100 61 78 101 60 63 87 42 60 86
++46 59 71 34 42 77 46 59 71 34 42 77 45 57 61 34 42 77 34 42 77 32 40 58
++34 42 77 32 40 58 32 40 58 32 40 58 34 42 77 32 40 58 32 40 58 46 59 71
++42 60 86 60 63 87 61 78 101 77 90 100 77 91 115 95 95 116 95 119 107 98 121 131
++111 119 127 111 122 142 122 134 144 122 134 144 129 144 153 129 144 153 148 160 159 148 160 159
++150 147 171 148 160 159 148 160 159 150 168 183 148 160 159 150 168 183 148 160 159 150 147 171
++148 160 159 148 160 159 131 144 168 148 160 159 129 144 153 129 144 153 129 144 153 129 144 153
++129 144 153 122 134 144 122 134 144 122 134 144 111 122 142 121 143 132 111 122 142 111 119 127
++98 121 131 111 119 127 98 121 131 111 119 127 98 121 131 98 121 131 98 121 131 98 121 131
++111 119 127 98 121 131 98 121 131 95 108 128 111 119 127 98 121 131 98 121 131 98 121 131
++98 121 131 98 121 131 111 119 127 98 121 131 98 121 131 98 121 131 95 108 128 94 105 108
++95 108 128 94 105 108 77 91 115 77 91 115 77 90 100 61 78 101 75 81 90 60 63 87
++60 63 87 46 59 71 46 59 71 34 42 77 32 40 58 34 42 77 32 40 58 32 40 58
++29 34 50 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 46 59 71 60 63 87
++60 81 83 77 90 100 77 90 100 94 105 108 95 108 128 98 121 131 111 119 127 121 143 132
++122 134 144 145 140 145 126 147 144 145 140 145 148 160 159 129 144 153 148 160 159 131 144 168
++148 160 159 148 160 159 148 160 159 129 144 153 150 144 154 148 160 159 129 144 153 145 140 145
++126 147 144 122 134 144 122 134 144 122 134 144 111 119 127 95 108 128 95 95 116 94 105 108
++61 78 101 60 81 83 60 63 87 46 59 71 45 57 61 32 40 58 32 40 58 29 34 50
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 24 30 43 29 34 50 24 30 43
++29 34 50 29 34 50 29 34 50 29 34 50 24 30 43 29 34 50 29 34 50 29 34 50
++
++63 55 51 65 63 61 75 72 67 75 81 69 88 83 88 88 83 88 90 98 89 90 98 89
++95 91 100 94 105 108 94 105 108 112 123 108 111 119 127 111 119 127 111 119 127 121 143 132
++119 117 138 121 143 132 141 116 139 121 143 132 138 126 108 122 134 144 121 143 132 141 116 139
++121 143 132 121 143 132 145 140 145 121 143 132 145 140 145 145 140 145 121 143 132 145 140 145
++145 140 145 145 140 145 145 140 145 145 140 145 145 140 145 145 140 145 121 143 132 145 140 145
++121 143 132 145 140 145 121 143 132 141 116 139 121 143 132 111 119 127 112 123 108 95 95 116
++94 105 108 88 83 88 75 81 82 75 81 76 63 59 71 59 55 55 48 50 48 42 47 42
++33 39 38 32 39 24 26 30 28 22 25 24 22 25 24 33 30 30 32 39 24 42 41 42
++47 49 42 48 50 48 52 55 48 55 55 48 59 55 55 65 63 61 75 72 67 75 81 76
++88 83 88 90 98 89 94 105 108 112 123 108 112 123 108 112 123 108 111 119 127 121 143 132
++122 134 144 145 140 145 146 151 137 145 140 145 146 162 145 148 160 159 166 156 164 150 171 159
++166 156 164 166 180 164 166 156 164 166 180 164 166 156 164 150 171 159 166 156 164 150 171 159
++166 156 164 146 162 145 148 160 159 150 144 154 146 151 137 150 144 154 146 151 137 145 140 145
++121 143 132 145 140 145 138 126 108 122 134 144 138 126 108 141 116 139 117 142 111 121 143 132
++138 126 108 121 143 132 111 119 127 111 119 127 138 126 108 111 119 127 117 142 111 138 126 108
++111 119 127 138 126 108 121 143 132 138 126 108 111 119 127 121 143 132 138 126 108 111 119 127
++112 123 108 111 119 127 112 123 108 111 119 127 112 123 108 112 123 108 111 119 127 112 123 108
++138 126 108 111 119 127 111 119 127 121 143 132 111 119 127 111 119 127 111 119 127 111 119 127
++95 119 107 95 108 128 94 105 108 111 119 127 94 105 108 95 108 128 94 105 108 94 105 108
++94 105 108 95 95 116 77 90 100 77 90 100 60 63 87 60 63 87 46 59 71 34 42 77
++32 40 58 29 34 50 24 30 43 34 42 77 12 18 30 34 42 77 12 18 30 34 42 77
++12 18 30 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77 24 30 43 34 42 77
++29 34 50 34 42 77 29 34 50 29 34 50 59 36 42 57 43 64 52 30 35 59 36 42
++76 44 53 76 44 53 76 44 53 88 44 51 88 44 51 102 33 26 88 44 51 120 63 71
++102 33 26 120 63 71 122 49 24 120 63 71 161 55 23 120 63 71 122 49 24 167 63 71
++122 49 24 161 55 23 167 63 71 122 49 24 167 63 71 122 49 24 161 55 23 120 63 71
++161 55 23 161 55 23 167 63 71 161 55 23 161 55 23 122 49 24 161 55 23 120 63 71
++161 55 23 167 63 71 122 49 24 161 55 23 167 63 71 122 49 24 161 55 23 120 63 71
++161 55 23 122 49 24 161 55 23 161 55 23 120 63 71 161 55 23 161 55 23 167 63 71
++122 49 24 167 63 71 161 55 23 167 63 71 176 103 41 120 63 71 122 49 24 122 49 24
++55 39 18 26 12 13 23 10 10 13 4 7 13 4 7 13 4 7 6 15 6 13 4 7
++6 15 6 13 4 7 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 4 9
++3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 4 9 3 3 1
++3 3 1 3 3 1 3 4 9 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 23 10 10 76 46 20 117 112 45 176 103 41 157 148 53 219 175 47 176 103 41
++176 103 41 157 148 53 176 103 41 176 103 41 176 103 41 157 148 53 176 103 41 157 148 53
++168 102 88 176 103 41 117 112 45 176 103 41 117 114 76 117 112 45 167 63 71 117 112 45
++120 63 71 117 112 45 120 63 71 88 73 62 88 73 62 88 73 62 88 66 70 75 59 67
++63 59 71 59 57 61 46 59 71 34 42 77 57 43 64 34 42 77 32 40 58 34 42 77
++34 42 77 32 40 58 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 42 60 86 61 78 101 61 78 101
++61 78 101 77 91 115 77 91 115 77 91 115 95 95 116 95 95 116 94 105 108 112 123 108
++112 96 108 112 123 108 112 96 108 112 123 108 111 119 127 138 102 108 112 123 108 138 102 108
++112 123 108 138 126 108 112 123 108 138 102 108 112 123 108 112 123 108 138 102 108 112 123 108
++112 123 108 138 126 108 111 119 127 138 126 108 119 117 138 121 143 132 145 140 145 121 143 132
++145 140 145 129 144 153 129 144 153 148 160 159 131 144 168 150 171 159 150 168 183 148 160 159
++166 174 181 150 171 159 166 174 181 166 174 181 150 171 159 166 174 181 150 171 159 166 174 181
++148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 126 147 144 121 143 132 119 117 138
++112 123 108 94 105 108 95 91 100 75 81 90 75 81 76 59 69 70 75 81 82 75 81 90
++95 91 100 94 105 108 111 119 127 111 119 127 122 134 144 145 140 145 145 140 145 148 160 159
++148 160 159 166 156 164 150 168 183 150 171 159 166 174 181 150 168 183 166 174 181 166 174 181
++150 168 183 166 174 181 166 174 181 148 160 159 75 81 82 12 18 30 3 4 9 3 3 1
++7 10 17 48 50 48 95 95 116 150 147 171 188 180 202 201 216 228 226 221 247 231 239 247
++231 239 247 231 239 247 231 239 247 231 239 247 221 238 247 231 239 247 226 221 247 231 239 247
++226 221 247 231 239 247 235 238 247 235 238 247 235 238 247 240 251 247 246 237 247 251 251 247
++251 251 247 240 251 247 235 238 247 201 216 228 166 174 181 141 116 139 75 81 90 29 34 50
++12 18 30 12 18 30 23 20 24 26 24 32 22 25 24 23 20 24 23 20 24 63 59 71
++122 134 144 166 156 164 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 131 144 168
++148 160 159 131 144 168 148 160 159 131 144 168 148 160 159 148 160 159 131 144 168 148 160 159
++148 160 159 148 160 159 148 160 159 150 168 183 148 160 159 150 168 183 166 156 164 150 168 183
++166 180 164 166 174 181 166 174 181 166 174 181 166 174 181 166 180 164 150 168 183 166 174 181
++166 156 164 150 168 183 148 160 159 148 160 159 148 160 159 131 144 168 148 160 159 129 144 153
++129 144 153 122 134 144 111 122 142 98 121 131 98 121 131 95 108 128 77 91 115 77 91 115
++61 78 101 42 60 86 42 60 86 42 60 86 42 60 86 42 60 86 34 42 77 42 60 86
++60 63 87 42 60 86 60 63 87 60 63 87 61 78 101 61 78 101 61 78 101 61 78 101
++77 91 115 77 91 115 77 91 115 95 108 128 77 91 115 95 108 128 95 108 128 98 121 131
++111 119 127 98 121 131 111 122 142 98 121 131 122 134 144 122 134 144 122 134 144 126 147 144
++129 144 153 129 144 153 148 160 159 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159
++150 168 183 148 160 159 150 168 183 150 171 159 166 174 181 150 171 159 166 174 181 166 180 164
++150 168 183 166 180 164 150 168 183 166 156 164 150 171 159 150 168 183 148 160 159 148 160 159
++131 144 168 129 144 153 129 144 153 129 144 153 122 134 144 111 122 142 98 121 131 98 121 131
++95 108 128 77 91 115 77 91 115 77 90 100 61 78 101 60 63 87 42 60 86 46 59 71
++42 60 86 34 42 77 32 40 58 34 42 77 46 59 71 34 42 77 60 63 87 61 78 101
++61 78 101 77 90 100 77 91 115 95 108 128 95 108 128 98 121 131 111 119 127 122 134 144
++122 134 144 129 144 153 150 144 154 148 160 159 148 160 159 148 160 159 150 168 183 148 160 159
++166 174 181 150 168 183 166 156 164 150 171 159 150 168 183 150 171 159 148 160 159 150 147 171
++148 160 159 131 144 168 129 144 153 129 144 153 122 134 144 122 134 144 111 122 142 111 122 142
++98 121 131 95 108 128 95 95 116 77 91 115 77 91 115 61 78 101 60 81 83 42 60 86
++46 59 71 46 59 71 34 42 77 46 59 71 34 42 77 45 57 61 34 42 77 32 40 58
++32 40 58 32 40 58 34 42 77 32 40 58 32 40 58 45 57 61 34 42 77 46 59 71
++46 59 71 60 63 87 61 78 101 77 90 100 95 95 116 94 105 108 95 108 128 111 119 127
++111 119 127 122 134 144 122 134 144 122 134 144 129 144 153 129 144 153 129 144 153 148 160 159
++148 160 159 148 160 159 166 156 164 148 160 159 150 168 183 148 160 159 166 156 164 150 168 183
++148 160 159 150 147 171 148 160 159 131 144 168 150 144 154 129 144 153 129 144 153 126 147 144
++122 134 144 122 134 144 122 134 144 122 134 144 111 122 142 111 119 127 98 121 131 111 119 127
++98 121 131 111 119 127 98 121 131 95 108 128 111 119 127 95 108 128 111 119 127 95 108 128
++95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128
++111 119 127 95 108 128 98 121 131 95 108 128 95 108 128 94 105 108 95 108 128 94 105 108
++77 91 115 94 105 108 77 91 115 77 90 100 77 90 100 61 78 101 61 78 101 60 63 87
++46 59 71 46 59 71 57 43 64 34 42 77 32 40 58 32 40 58 32 40 58 29 34 50
++32 40 58 32 40 58 29 34 50 32 40 58 32 40 58 45 57 61 46 59 71 60 63 87
++60 81 83 77 90 100 77 91 115 94 105 108 98 121 131 111 119 127 111 122 142 122 134 144
++122 134 144 126 147 144 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159
++131 144 168 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 148 160 159 126 147 144
++122 134 144 122 134 144 121 143 132 111 119 127 98 121 131 95 108 128 94 105 108 77 90 100
++61 78 101 60 81 83 46 59 71 46 59 71 34 42 77 32 40 58 29 34 50 29 34 50
++29 34 50 29 34 50 29 34 50 24 30 43 29 34 50 29 34 50 29 34 50 29 34 50
++29 34 50 24 30 43 29 34 50 29 34 50 24 30 43 29 34 50 29 34 50 29 34 50
++
++65 63 61 75 72 67 75 81 76 88 83 74 88 83 88 90 98 89 90 98 89 94 105 108
++94 105 108 94 105 108 112 123 108 112 96 108 111 119 127 112 123 108 111 119 127 138 126 108
++121 143 132 141 116 139 121 143 132 121 143 132 145 140 145 121 143 132 145 140 145 121 143 132
++141 116 139 145 140 145 121 143 132 145 140 145 121 143 132 145 140 145 145 140 145 145 140 145
++146 151 137 121 143 132 145 140 145 121 143 132 146 151 137 126 147 144 146 151 137 145 140 145
++121 143 132 145 140 145 122 134 144 121 143 132 138 126 108 111 119 127 111 119 127 112 96 108
++94 105 108 90 98 89 75 81 82 75 81 76 75 72 67 53 63 61 59 55 55 48 50 48
++47 44 42 33 30 30 33 30 30 26 30 28 34 30 15 33 30 30 33 30 30 32 39 24
++42 41 42 47 44 42 51 49 42 51 49 42 52 55 48 59 57 61 65 63 61 75 72 67
++75 81 76 88 83 88 117 99 86 94 105 108 112 96 108 112 123 108 111 119 127 141 116 139
++121 143 132 145 140 145 126 147 144 146 151 137 150 144 154 146 162 145 166 156 164 150 171 159
++166 156 164 166 180 164 166 156 164 166 180 164 150 171 159 166 156 164 150 171 159 166 156 164
++146 162 145 166 156 164 148 160 159 146 162 145 150 144 154 146 151 137 145 140 145 146 151 137
++121 143 132 145 140 145 121 143 132 141 116 139 121 143 132 121 143 132 111 119 127 121 143 132
++119 117 138 138 126 108 111 119 127 138 126 108 111 119 127 112 123 108 111 119 127 138 126 108
++111 119 127 121 143 132 112 123 108 111 119 127 138 126 108 112 123 108 112 123 108 112 123 108
++112 123 108 111 119 127 112 123 108 112 123 108 112 123 108 112 96 108 112 123 108 112 123 108
++111 119 127 112 123 108 111 119 127 138 126 108 111 119 127 112 123 108 111 119 127 112 123 108
++111 119 127 112 123 108 112 96 108 94 105 108 111 119 127 94 105 108 94 105 108 94 105 108
++77 91 115 95 91 100 77 90 100 77 90 100 60 63 87 46 59 71 46 59 71 34 42 77
++34 42 77 24 30 43 34 42 77 12 18 30 34 42 77 12 18 30 34 42 77 12 18 30
++34 42 77 12 18 30 34 42 77 12 18 30 34 42 77 24 30 43 29 34 50 29 34 50
++29 34 50 29 34 50 29 34 50 29 34 50 57 43 64 29 34 50 57 43 64 57 43 64
++59 36 42 57 43 64 76 44 53 88 44 51 88 44 51 88 44 51 120 63 71 102 33 26
++102 33 26 102 33 26 167 63 71 102 33 26 120 63 71 122 49 24 122 49 24 122 49 24
++167 63 71 122 49 24 122 49 24 167 63 71 122 49 24 161 55 23 167 63 71 161 55 23
++161 55 23 167 63 71 161 55 23 122 49 24 167 63 71 161 55 23 167 63 71 161 55 23
++161 55 23 161 55 23 167 63 71 122 49 24 161 55 23 167 63 71 161 55 23 161 55 23
++167 63 71 161 55 23 120 63 71 161 55 23 161 55 23 167 63 71 122 49 24 167 63 71
++161 55 23 161 55 23 167 63 71 122 49 24 167 63 71 122 49 24 102 33 26 52 30 15
++23 10 10 23 10 10 13 4 7 3 3 1 13 4 7 7 12 13 13 4 7 13 4 7
++6 15 6 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 4 9
++3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 13 4 7
++52 30 15 75 73 36 168 102 88 157 148 53 201 146 124 176 103 41 176 103 41 157 148 53
++176 103 41 176 103 41 157 148 53 176 103 41 157 148 53 176 103 41 176 103 41 176 103 41
++117 112 45 117 114 76 176 103 41 117 112 45 167 63 71 117 112 45 120 63 71 117 112 45
++120 63 71 120 63 71 101 83 74 88 73 62 88 73 62 75 63 62 75 59 67 65 63 61
++65 57 61 57 43 64 57 43 64 46 59 71 32 40 58 34 42 77 32 40 58 34 42 77
++32 40 58 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 42 60 86 42 60 86 42 60 86 61 78 101
++61 78 101 77 91 115 61 78 101 77 91 115 95 91 100 95 95 116 94 105 108 95 91 100
++94 105 108 95 91 100 112 123 108 112 96 108 138 102 108 112 123 108 112 123 108 117 99 86
++112 123 108 138 102 108 112 123 108 138 126 108 112 123 108 138 126 108 112 123 108 138 102 108
++112 123 108 111 119 127 138 126 108 121 143 132 121 143 132 141 116 139 121 143 132 122 134 144
++126 147 144 129 144 153 146 162 145 131 144 168 148 160 159 148 160 159 148 160 159 150 171 159
++150 168 183 166 156 164 150 168 183 166 174 181 166 174 181 166 174 181 166 156 164 150 168 183
++166 174 181 150 171 159 148 160 159 148 160 159 148 160 159 145 140 145 122 134 144 121 143 132
++111 119 127 94 105 108 78 98 90 75 81 90 75 81 82 59 69 70 59 69 70 75 81 90
++78 98 90 94 105 108 112 123 108 111 119 127 121 143 132 126 147 144 129 144 153 148 160 159
++150 168 183 150 171 159 166 156 164 150 168 183 150 168 183 166 180 164 150 168 183 166 174 181
++166 180 164 150 168 183 166 174 181 150 144 154 77 90 100 12 18 30 3 4 9 12 18 30
++75 81 90 145 140 145 194 199 226 226 221 247 231 239 247 235 238 247 221 238 247 226 221 247
++208 221 247 226 221 247 226 221 247 226 221 247 208 221 247 226 221 247 226 221 247 226 221 247
++226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 231 239 247 231 239 247
++235 238 247 240 251 247 251 251 247 251 251 247 251 251 247 226 221 247 166 174 181 95 108 128
++60 63 87 23 30 35 12 18 30 12 18 30 23 20 24 12 18 30 22 25 24 63 59 71
++121 143 132 150 168 183 150 171 159 150 168 183 131 144 168 148 160 159 131 144 168 148 160 159
++148 160 159 148 160 159 131 144 168 148 160 159 131 144 168 148 160 159 129 144 153 148 160 159
++131 144 168 148 160 159 150 147 171 148 160 159 150 168 183 148 160 159 150 168 183 166 180 164
++150 168 183 166 174 181 150 168 183 166 174 181 166 174 181 150 168 183 166 174 181 150 171 159
++166 174 181 150 171 159 150 168 183 150 147 171 148 160 159 148 160 159 129 144 153 131 144 168
++122 134 144 122 134 144 111 122 142 111 122 142 98 121 131 95 108 128 77 91 115 61 78 101
++61 78 101 61 78 101 61 78 101 60 63 87 42 60 86 42 60 86 42 60 86 42 60 86
++60 63 87 60 63 87 60 63 87 61 78 101 61 78 101 61 78 101 61 78 101 77 91 115
++77 90 100 77 91 115 77 91 115 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128
++98 121 131 111 119 127 98 121 131 111 119 127 111 122 142 122 134 144 122 134 144 122 134 144
++129 144 153 150 144 154 129 144 153 150 144 154 148 160 159 131 144 168 148 160 159 148 160 159
++148 160 159 150 147 171 150 171 159 166 156 164 148 160 159 166 174 181 166 156 164 150 168 183
++166 174 181 166 174 181 166 174 181 150 171 159 150 168 183 148 160 159 148 160 159 148 160 159
++148 160 159 148 160 159 129 144 153 122 134 144 122 134 144 122 134 144 111 122 142 98 121 131
++95 108 128 77 91 115 77 91 115 61 78 101 61 78 101 60 63 87 42 60 86 42 60 86
++34 42 77 34 42 77 34 42 77 45 57 61 34 42 77 42 60 86 60 63 87 60 63 87
++61 78 101 77 90 100 94 105 108 95 108 128 98 121 131 111 119 127 111 122 142 122 134 144
++122 134 144 126 147 144 148 160 159 131 144 168 148 160 159 148 160 159 148 160 159 150 168 183
++150 171 159 166 174 181 150 171 159 166 174 181 166 156 164 148 160 159 150 168 183 148 160 159
++148 160 159 148 160 159 150 144 154 129 144 153 122 134 144 122 134 144 122 134 144 111 122 142
++111 119 127 98 121 131 95 108 128 77 91 115 77 90 100 61 78 101 61 78 101 60 63 87
++42 60 86 42 60 86 42 60 86 46 59 71 34 42 77 46 59 71 34 42 77 45 57 61
++34 42 77 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 34 42 77 46 59 71
++60 63 87 60 63 87 61 78 101 77 90 100 77 91 115 95 95 116 94 105 108 98 121 131
++98 121 131 111 119 127 122 134 144 122 134 144 129 144 153 129 144 153 148 160 159 131 144 168
++150 144 154 148 160 159 150 168 183 148 160 159 148 160 159 150 168 183 148 160 159 148 160 159
++148 160 159 150 147 171 148 160 159 148 160 159 129 144 153 129 144 153 126 147 144 129 144 153
++122 134 144 122 134 144 122 134 144 111 119 127 122 134 144 111 119 127 98 121 131 111 119 127
++98 121 131 95 108 128 95 108 128 95 108 128 95 108 128 94 105 108 95 108 128 95 108 128
++95 108 128 95 108 128 95 108 128 94 105 108 95 108 128 94 105 108 95 108 128 95 108 128
++95 108 128 95 108 128 95 108 128 95 119 107 95 108 128 95 108 128 94 105 108 95 108 128
++94 105 108 77 91 115 77 91 115 77 91 115 61 78 101 60 81 83 60 63 87 60 63 87
++46 59 71 34 42 77 45 57 61 32 40 58 34 42 77 32 40 58 32 40 58 29 34 50
++32 40 58 29 34 50 32 40 58 32 40 58 32 40 58 34 42 77 46 59 71 60 63 87
++60 63 87 77 90 100 94 105 108 95 108 128 95 108 128 111 119 127 111 119 127 121 143 132
++122 134 144 126 147 144 129 144 153 150 144 154 129 144 153 148 160 159 131 144 168 148 160 159
++150 144 154 148 160 159 148 160 159 131 144 168 148 160 159 150 144 154 129 144 153 145 140 145
++126 147 144 122 134 144 111 122 142 111 119 127 111 119 127 94 105 108 77 91 115 77 90 100
++75 81 90 60 63 87 46 59 71 46 59 71 43 42 50 32 40 58 29 34 50 29 34 50
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 24 30 43
++29 34 50 29 34 50 29 34 50 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50
++
++75 72 67 75 72 67 75 81 82 90 98 89 90 98 89 95 91 100 112 96 108 112 123 108
++112 96 108 112 123 108 112 123 108 111 119 127 112 123 108 119 117 138 121 143 132 119 117 138
++121 143 132 138 126 108 122 134 144 138 126 108 122 134 144 145 140 145 121 143 132 146 151 137
++121 143 132 146 151 137 141 116 139 146 151 137 145 140 145 146 151 137 126 147 144 146 151 137
++126 147 144 145 140 145 146 151 137 145 140 145 145 140 145 145 140 145 126 147 144 145 140 145
++145 140 145 121 143 132 121 143 132 141 116 139 121 143 132 111 119 127 112 123 108 112 123 108
++94 105 108 95 91 100 88 83 88 75 81 76 75 72 67 65 63 61 59 55 55 52 55 48
++42 47 42 32 39 24 33 30 30 29 35 19 33 30 30 33 30 30 33 30 30 33 30 30
++36 35 37 42 41 42 42 41 42 47 44 42 52 55 48 55 55 48 65 63 61 75 72 67
++75 81 76 88 83 88 90 98 89 94 105 108 112 123 108 112 123 108 111 119 127 117 142 111
++121 143 132 145 140 145 146 151 137 145 140 145 146 162 145 148 160 159 146 162 145 166 156 164
++166 180 164 166 156 164 166 180 164 166 156 164 150 171 159 166 180 164 166 156 164 150 171 159
++166 156 164 146 162 145 146 162 145 150 144 154 146 151 137 145 140 145 126 147 144 145 140 145
++146 151 137 121 143 132 138 126 108 121 143 132 138 126 108 119 117 138 138 126 108 111 119 127
++138 126 108 111 119 127 121 143 132 111 119 127 117 142 111 111 119 127 138 126 108 111 119 127
++111 119 127 138 126 108 111 119 127 112 123 108 111 119 127 111 119 127 112 123 108 111 119 127
++112 123 108 112 96 108 112 123 108 112 96 108 111 119 127 112 123 108 111 119 127 112 96 108
++111 119 127 112 123 108 111 119 127 111 119 127 111 119 127 111 119 127 112 123 108 95 108 128
++112 123 108 94 105 108 94 105 108 94 105 108 94 105 108 95 95 116 94 105 108 94 105 108
++95 91 100 77 90 100 77 90 100 61 78 101 75 64 82 60 63 87 34 42 77 32 40 58
++29 34 50 34 42 77 12 18 30 29 34 50 12 18 30 34 42 77 12 18 30 34 42 77
++12 18 30 34 42 77 12 18 30 34 42 77 12 18 30 34 42 77 24 30 43 34 42 77
++24 30 43 34 42 77 29 34 50 29 34 50 29 34 50 57 43 64 52 30 35 57 43 64
++59 36 42 59 36 42 76 44 53 76 44 53 88 44 51 88 44 51 102 33 26 88 44 51
++120 63 71 102 33 26 88 44 51 122 49 24 167 63 71 102 33 26 167 63 71 122 49 24
++122 49 24 167 63 71 161 55 23 122 49 24 167 63 71 161 55 23 122 49 24 167 63 71
++122 49 24 161 55 23 161 55 23 167 63 71 122 49 24 161 55 23 122 49 24 167 63 71
++122 49 24 167 63 71 161 55 23 161 55 23 167 63 71 122 49 24 161 55 23 167 63 71
++161 55 23 161 55 23 161 55 23 161 55 23 167 63 71 161 55 23 161 55 23 161 55 23
++167 63 71 122 49 24 161 55 23 120 63 71 120 63 71 76 46 20 52 30 35 26 12 13
++23 10 10 13 4 7 6 15 6 13 4 7 6 15 6 7 12 13 3 3 1 6 15 6
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1
++3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 4 9 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 13 4 7 23 10 10 76 46 20
++101 74 26 176 103 41 157 148 53 176 103 41 219 175 47 176 103 41 157 148 53 176 103 41
++219 175 47 176 103 41 176 103 41 176 103 41 176 103 41 157 148 53 117 112 45 176 103 41
++176 103 41 117 112 45 168 102 88 117 112 45 176 103 41 120 63 71 117 112 45 120 63 71
++117 112 45 88 73 62 88 73 62 88 73 62 88 73 62 88 66 70 65 63 61 63 59 71
++59 57 61 46 59 71 57 43 64 34 42 77 34 42 77 34 42 77 32 40 58 34 42 77
++34 42 77 29 34 50 34 42 77 29 34 50 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 32 40 58 34 42 77 34 42 77 34 42 77 42 60 86 61 78 101 60 63 87
++61 78 101 61 78 101 77 91 115 88 69 84 77 91 115 95 91 100 95 91 100 95 91 100
++99 93 84 99 93 84 112 96 108 98 113 84 117 99 86 117 99 86 138 102 108 117 127 86
++117 99 86 117 127 86 117 99 86 112 123 108 138 102 108 117 127 86 138 126 108 112 123 108
++138 126 108 112 123 108 138 126 108 111 119 127 138 126 108 121 143 132 122 134 144 145 140 145
++126 147 144 145 140 145 148 160 159 148 160 159 131 144 168 148 160 159 150 147 171 150 168 183
++148 160 159 166 174 181 150 171 159 166 174 181 150 171 159 166 174 181 166 174 181 166 180 164
++150 147 171 150 171 159 148 160 159 148 160 159 129 144 153 126 147 144 126 147 144 121 143 132
++111 119 127 94 105 108 94 105 108 75 81 82 60 81 83 59 69 70 75 81 76 75 81 82
++88 83 88 94 105 108 111 119 127 111 119 127 122 134 144 145 140 145 126 147 144 148 160 159
++148 160 159 148 160 159 150 168 183 166 180 164 166 156 164 166 174 181 166 174 181 150 171 159
++150 168 183 166 174 181 166 174 181 150 147 171 77 90 100 26 24 32 12 18 30 75 81 90
++150 168 183 201 216 228 226 221 247 208 221 247 208 221 247 208 221 247 226 221 247 208 221 247
++226 221 247 208 221 247 226 221 247 208 221 247 226 221 247 226 221 247 208 221 247 226 221 247
++221 238 247 226 221 247 226 221 247 221 238 247 226 221 247 231 239 247 231 239 247 235 238 247
++235 238 247 235 238 247 240 251 247 240 251 247 251 251 247 240 251 247 240 251 247 201 216 228
++150 147 171 77 90 100 32 40 58 12 18 30 7 10 17 12 18 30 12 18 30 59 69 70
++122 134 144 166 156 164 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 131 144 168
++148 160 159 131 144 168 148 160 159 129 144 153 148 160 159 131 144 168 148 160 159 148 160 159
++131 144 168 148 160 159 148 160 159 150 168 183 150 147 171 150 168 183 150 171 159 150 168 183
++166 174 181 166 180 164 166 174 181 166 174 181 166 174 181 166 174 181 150 168 183 150 168 183
++150 171 159 150 168 183 148 160 159 148 160 159 148 160 159 131 144 168 129 144 153 129 144 153
++129 144 153 111 122 142 111 122 142 98 121 131 95 108 128 95 108 128 77 91 115 77 91 115
++61 78 101 60 63 87 42 60 86 42 60 86 42 60 86 42 60 86 60 63 87 60 63 87
++61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 77 91 115 77 90 100 77 91 115
++77 91 115 77 91 115 95 108 128 77 91 115 98 121 131 95 108 128 98 121 131 111 122 142
++111 122 142 111 122 142 111 122 142 121 143 132 111 122 142 121 143 132 122 134 144 122 134 144
++129 144 153 129 144 153 148 160 159 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159
++150 168 183 148 160 159 150 168 183 150 168 183 166 174 181 150 168 183 166 174 181 166 180 164
++166 174 181 150 171 159 150 168 183 166 174 181 148 160 159 150 168 183 148 160 159 148 160 159
++131 144 168 129 144 153 129 144 153 129 144 153 122 134 144 111 122 142 98 121 131 98 121 131
++95 108 128 77 91 115 77 91 115 77 91 115 61 78 101 42 60 86 42 60 86 46 59 71
++46 59 71 34 42 77 32 40 58 34 42 77 46 59 71 42 60 86 60 63 87 61 78 101
++75 81 90 77 91 115 77 91 115 95 108 128 95 108 128 111 119 127 122 134 144 122 134 144
++122 134 144 129 144 153 129 144 153 148 160 159 148 160 159 150 147 171 148 160 159 150 168 183
++166 156 164 150 168 183 150 171 159 150 168 183 150 171 159 150 168 183 148 160 159 148 160 159
++150 147 171 131 144 168 148 160 159 129 144 153 129 144 153 122 134 144 122 134 144 111 122 142
++111 119 127 98 121 131 95 108 128 95 108 128 77 91 115 77 90 100 61 78 101 60 81 83
++60 63 87 42 60 86 46 59 71 42 60 86 42 60 86 34 42 77 46 59 71 34 42 77
++32 40 58 34 42 77 32 40 58 32 40 58 34 42 77 32 40 58 34 42 77 46 59 71
++42 60 86 60 63 87 61 78 101 77 90 100 77 91 115 94 105 108 95 108 128 95 108 128
++111 119 127 111 122 142 121 143 132 122 134 144 129 144 153 145 140 145 129 144 153 148 160 159
++148 160 159 148 160 159 148 160 159 150 168 183 148 160 159 148 160 159 150 147 171 148 160 159
++131 144 168 148 160 159 129 144 153 150 144 154 129 144 153 129 144 153 126 147 144 122 134 144
++122 134 144 122 134 144 122 134 144 111 122 142 111 119 127 111 119 127 98 121 131 95 108 128
++94 105 108 95 108 128 94 105 108 95 108 128 94 105 108 95 108 128 95 108 128 94 105 108
++95 108 128 94 105 108 95 108 128 95 108 128 94 105 108 95 108 128 95 108 128 95 108 128
++95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 94 105 108 95 108 128 77 91 115
++94 105 108 77 91 115 77 90 100 77 90 100 75 81 90 60 63 87 60 63 87 46 59 71
++46 59 71 45 57 61 34 42 77 32 40 58 32 40 58 29 34 50 29 34 50 32 40 58
++29 34 50 32 40 58 29 34 50 32 40 58 32 40 58 46 59 71 46 59 71 60 63 87
++60 81 83 77 90 100 94 105 108 95 108 128 95 108 128 111 119 127 111 122 142 121 143 132
++122 134 144 145 140 145 129 144 153 148 160 159 129 144 153 148 160 159 148 160 159 148 160 159
++129 144 153 148 160 159 148 160 159 148 160 159 129 144 153 148 160 159 129 144 153 126 147 144
++122 134 144 122 134 144 111 119 127 111 122 142 98 121 131 94 105 108 95 95 116 77 90 100
++75 81 90 60 63 87 46 59 71 34 42 77 32 40 58 32 40 58 29 34 50 29 34 50
++29 34 50 24 30 43 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50 29 34 50
++24 30 43 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50
++
++75 81 76 75 81 82 99 93 84 95 91 100 95 91 100 94 105 108 112 123 108 94 105 108
++112 123 108 111 119 127 112 123 108 111 119 127 111 119 127 138 126 108 122 134 144 138 126 108
++121 143 132 122 134 144 121 143 132 145 140 145 121 143 132 145 140 145 121 143 132 145 140 145
++145 140 145 121 143 132 146 151 137 121 143 132 145 140 145 126 147 144 146 151 137 145 140 145
++146 151 137 126 147 144 145 140 145 126 147 144 146 151 137 145 140 145 146 151 137 126 147 144
++145 140 145 121 143 132 141 116 139 117 142 111 119 117 138 112 123 108 111 119 127 112 123 108
++94 105 108 95 91 100 99 93 84 75 81 82 75 81 76 75 72 67 63 55 51 52 55 48
++51 49 42 33 39 38 33 30 30 33 30 30 33 30 30 34 30 15 33 30 30 33 30 30
++32 39 24 36 35 37 32 39 24 42 41 42 47 49 42 55 55 48 53 63 61 65 63 61
++75 72 67 75 81 76 99 93 84 94 105 108 112 96 108 112 96 108 112 123 108 121 143 132
++141 116 139 121 143 132 126 147 144 146 162 145 150 144 154 146 162 145 166 156 164 150 171 159
++166 156 164 166 180 164 166 180 164 166 156 164 166 180 164 166 156 164 166 180 164 166 156 164
++150 171 159 166 156 164 150 144 154 146 162 145 150 144 154 146 151 137 146 151 137 145 140 145
++121 143 132 145 140 145 122 134 144 121 143 132 122 134 144 138 126 108 121 143 132 111 119 127
++121 143 132 111 119 127 112 123 108 111 119 127 138 126 108 111 119 127 111 119 127 111 119 127
++112 123 108 111 119 127 112 123 108 112 123 108 112 123 108 112 123 108 112 96 108 112 123 108
++112 96 108 111 119 127 112 96 108 112 123 108 94 105 108 112 96 108 112 123 108 112 123 108
++111 119 127 138 126 108 111 119 127 112 123 108 112 123 108 111 119 127 111 119 127 112 123 108
++94 105 108 111 119 127 112 123 108 94 105 108 94 105 108 94 105 108 94 105 108 95 91 100
++77 91 115 77 90 100 77 90 100 75 81 90 60 63 87 42 60 86 57 43 64 34 42 77
++24 30 43 34 42 77 12 18 30 34 42 77 24 30 43 24 30 43 24 30 43 12 18 30
++34 42 77 12 18 30 34 42 77 12 18 30 34 42 77 12 18 30 34 42 77 24 30 43
++29 34 50 24 30 43 29 34 50 34 42 77 29 34 50 29 34 50 29 34 50 57 43 64
++59 36 42 57 43 64 59 36 42 76 44 53 88 44 51 88 44 51 88 44 51 88 44 51
++88 44 51 102 33 26 167 63 71 102 33 26 102 33 26 167 63 71 102 33 26 167 63 71
++102 33 26 167 63 71 102 33 26 161 55 23 161 55 23 122 49 24 167 63 71 161 55 23
++161 55 23 167 63 71 122 49 24 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23
++161 55 23 161 55 23 161 55 23 167 63 71 161 55 23 161 55 23 167 63 71 122 49 24
++161 55 23 161 55 23 167 63 71 161 55 23 122 49 24 161 55 23 161 55 23 167 63 71
++161 55 23 161 55 23 167 63 71 122 49 24 102 33 26 52 30 15 23 10 10 23 10 10
++15 17 7 13 4 7 3 3 1 7 12 13 6 15 6 7 12 13 13 4 7 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 4 9 3 3 1 3 4 9 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 34 30 15 88 44 51 117 112 45
++219 175 47 176 103 41 219 175 47 157 148 53 176 103 41 176 103 41 157 148 53 176 103 41
++176 103 41 157 148 53 176 103 41 157 148 53 176 103 41 176 103 41 176 103 41 117 112 45
++167 63 71 117 112 45 176 103 41 117 112 45 120 63 71 117 112 45 120 63 71 117 112 45
++88 73 62 120 63 71 88 73 62 88 73 62 75 63 62 75 63 62 65 57 61 63 59 71
++54 57 61 57 43 64 46 59 71 32 40 58 34 42 77 32 40 58 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 42 60 86 42 60 86 60 63 87 61 78 101
++77 91 115 61 78 101 88 69 84 77 91 115 77 90 100 88 83 88 90 98 89 88 83 88
++99 93 84 90 98 89 99 93 84 112 96 108 98 113 84 117 99 86 98 113 84 117 99 86
++117 99 86 117 99 86 138 102 108 117 127 86 117 114 76 112 123 108 138 102 108 112 123 108
++138 102 108 112 123 108 138 126 108 138 126 108 122 134 144 138 126 108 145 140 145 121 143 132
++126 147 144 129 144 153 148 160 159 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 150 168 183 150 171 159 166 174 181 166 156 164 166 174 181 150 171 159 166 174 181
++150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 126 147 144 111 119 127
++111 119 127 94 105 108 78 98 90 75 81 90 75 64 82 59 69 70 59 69 70 60 81 83
++77 90 100 95 91 100 112 123 108 111 119 127 121 143 132 126 147 144 129 144 153 150 144 154
++150 168 183 148 160 159 166 156 164 150 168 183 150 168 183 166 180 164 150 168 183 166 174 181
++166 180 164 150 168 183 166 174 181 166 156 164 77 90 100 32 40 58 75 64 82 150 168 183
++226 221 247 226 221 247 226 221 247 208 221 247 208 221 247 208 221 247 208 221 247 208 221 247
++226 221 247 208 221 247 226 221 247 208 221 247 226 221 247 226 221 247 221 238 247 226 221 247
++226 221 247 208 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247 235 238 247
++235 238 247 235 238 247 235 238 247 240 251 247 240 251 247 251 251 247 251 251 247 251 251 247
++233 241 227 194 199 226 129 144 153 61 78 101 22 23 31 7 10 17 7 10 17 54 57 61
++122 134 144 150 171 159 166 174 181 148 160 159 148 160 159 131 144 168 150 168 183 148 160 159
++148 160 159 148 160 159 131 144 168 148 160 159 148 160 159 131 144 168 148 160 159 131 144 168
++148 160 159 150 147 171 148 160 159 148 160 159 150 168 183 148 160 159 166 174 181 150 171 159
++166 174 181 150 168 183 166 174 181 150 168 183 166 174 181 166 174 181 166 180 164 150 168 183
++166 174 181 148 160 159 150 168 183 148 160 159 131 144 168 148 160 159 129 144 153 131 144 168
++122 134 144 122 134 144 111 122 142 111 122 142 95 108 128 95 108 128 77 91 115 61 78 101
++61 78 101 61 78 101 42 60 86 60 63 87 42 60 86 60 63 87 42 60 86 61 78 101
++61 78 101 61 78 101 61 78 101 61 78 101 77 90 100 77 91 115 77 91 115 77 91 115
++95 95 116 95 108 128 95 108 128 95 108 128 95 108 128 98 121 131 98 121 131 111 122 142
++98 121 131 111 122 142 111 122 142 98 121 131 122 134 144 122 134 144 122 134 144 129 144 153
++150 144 154 129 144 153 129 144 153 148 160 159 129 144 153 148 160 159 150 147 171 148 160 159
++148 160 159 150 171 159 166 156 164 150 171 159 166 174 181 150 171 159 166 174 181 150 168 183
++166 174 181 166 174 181 166 180 164 150 168 183 166 156 164 150 168 183 148 160 159 148 160 159
++148 160 159 129 144 153 129 144 153 122 134 144 122 134 144 122 134 144 111 122 142 95 108 128
++95 108 128 77 91 115 77 91 115 61 78 101 61 78 101 60 63 87 42 60 86 42 60 86
++46 59 71 34 42 77 34 42 77 34 42 77 42 60 86 46 59 71 46 59 71 61 78 101
++77 90 100 77 91 115 94 105 108 95 108 128 98 121 131 111 122 142 111 119 127 122 134 144
++122 134 144 129 144 153 145 140 145 131 144 168 148 160 159 148 160 159 148 160 159 150 171 159
++150 168 183 166 180 164 166 174 181 150 168 183 166 174 181 166 156 164 150 168 183 148 160 159
++148 160 159 148 160 159 148 160 159 129 144 153 129 144 153 122 134 144 122 134 144 121 143 132
++111 119 127 111 119 127 98 121 131 95 108 128 77 91 115 77 91 115 77 90 100 61 78 101
++60 81 83 60 63 87 60 63 87 42 60 86 46 59 71 42 60 86 34 42 77 46 59 71
++34 42 77 45 57 61 34 42 77 32 40 58 32 40 58 32 40 58 45 57 61 34 42 77
++46 59 71 60 63 87 61 78 101 61 78 101 77 90 100 77 91 115 94 105 108 98 121 131
++98 121 131 111 119 127 122 134 144 122 134 144 129 144 153 129 144 153 129 144 153 148 160 159
++131 144 168 148 160 159 150 147 171 148 160 159 150 168 183 148 160 159 150 168 183 148 160 159
++148 160 159 148 160 159 129 144 153 148 160 159 129 144 153 129 144 153 129 144 153 122 134 144
++122 134 144 122 134 144 121 143 132 111 119 127 111 122 142 111 119 127 111 119 127 111 119 127
++95 108 128 94 105 108 95 108 128 94 105 108 95 108 128 94 105 108 95 108 128 95 95 116
++95 108 128 95 95 116 94 105 108 77 91 115 95 108 128 95 95 116 94 105 108 95 108 128
++94 105 108 95 108 128 94 105 108 95 108 128 94 105 108 95 108 128 77 91 115 94 105 108
++77 91 115 77 90 100 77 90 100 61 78 101 60 63 87 60 81 83 42 60 86 46 59 71
++46 59 71 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 29 34 50
++32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 46 59 71 60 63 87 60 81 83
++61 78 101 77 90 100 95 95 116 94 105 108 98 121 131 111 119 127 111 119 127 122 134 144
++126 147 144 129 144 153 129 144 153 150 144 154 129 144 153 148 160 159 150 144 154 148 160 159
++148 160 159 131 144 168 148 160 159 148 160 159 148 160 159 129 144 153 129 144 153 129 144 153
++122 134 144 121 143 132 122 134 144 111 119 127 95 108 128 94 105 108 77 91 115 77 90 100
++60 63 87 60 63 87 63 59 71 46 59 71 32 40 58 32 40 58 29 34 50 29 34 50
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50
++24 30 43 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50
++
++75 81 76 88 83 88 90 98 89 90 98 89 94 105 108 112 96 108 112 123 108 112 123 108
++111 119 127 112 123 108 111 119 127 138 126 108 121 143 132 121 143 132 121 143 132 122 134 144
++141 116 139 121 143 132 145 140 145 145 140 145 146 150 115 145 140 145 146 151 137 145 140 145
++121 143 132 145 140 145 145 140 145 146 151 137 145 140 145 146 151 137 145 140 145 126 147 144
++146 151 137 146 151 137 146 151 137 145 140 145 146 151 137 126 147 144 145 140 145 145 140 145
++121 143 132 145 140 145 121 143 132 121 143 132 138 126 108 119 117 138 112 123 108 111 119 127
++112 96 108 94 105 108 99 93 84 88 83 88 75 81 76 75 72 67 53 63 61 55 55 48
++51 49 42 42 41 42 32 39 24 33 30 30 33 30 30 33 30 30 33 30 30 32 39 24
++36 35 37 53 35 37 36 35 37 36 35 37 42 41 42 47 49 42 55 55 48 65 63 61
++75 77 62 75 81 76 88 83 88 90 98 89 112 123 108 112 123 108 111 119 127 138 126 108
++121 143 132 121 143 132 145 140 145 146 151 137 145 140 145 148 160 159 148 160 159 166 156 164
++166 180 164 166 156 164 150 171 159 166 174 181 166 180 164 166 156 164 166 180 164 166 156 164
++150 171 159 146 162 145 148 160 159 150 144 154 146 162 145 145 140 145 145 140 145 146 151 137
++145 140 145 121 143 132 138 126 108 122 134 144 138 126 108 111 119 127 111 119 127 138 126 108
++111 119 127 112 123 108 112 123 108 112 123 108 111 119 127 112 123 108 112 123 108 112 123 108
++112 123 108 112 123 108 112 96 108 94 105 108 112 96 108 112 123 108 94 105 108 112 123 108
++94 105 108 112 96 108 95 119 107 112 96 108 94 105 108 112 123 108 94 105 108 112 123 108
++112 123 108 111 119 127 112 123 108 111 119 127 111 119 127 112 123 108 111 119 127 112 96 108
++112 123 108 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 94 105 108 77 90 100
++90 98 89 77 90 100 75 81 90 75 81 90 60 63 87 59 69 70 34 42 77 32 40 58
++34 42 77 24 30 43 24 30 43 12 18 30 34 42 77 12 18 30 34 42 77 24 30 43
++24 30 43 24 30 43 24 30 43 34 42 77 12 18 30 34 42 77 12 18 30 34 42 77
++24 30 43 29 34 50 29 34 50 29 34 50 29 34 50 57 43 64 29 34 50 52 30 35
++57 43 64 52 30 35 57 43 64 76 44 53 76 44 53 88 44 51 88 44 51 88 44 51
++102 33 26 88 44 51 88 44 51 102 33 26 120 63 71 102 33 26 102 33 26 167 63 71
++102 33 26 161 55 23 167 63 71 102 33 26 167 63 71 122 49 24 161 55 23 122 49 24
++167 63 71 102 33 26 161 55 23 161 55 23 122 49 24 161 55 23 122 49 24 167 63 71
++122 49 24 167 63 71 122 49 24 161 55 23 167 63 71 161 55 23 161 55 23 167 63 71
++161 55 23 167 63 71 102 33 26 167 63 71 161 55 23 167 63 71 122 49 24 161 55 23
++120 63 71 167 63 71 120 63 71 122 49 24 52 30 15 49 13 16 13 4 7 13 4 7
++13 4 7 6 15 6 13 4 7 6 15 6 13 4 7 3 3 1 3 4 9 3 3 1
++3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1
++3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 13 4 7 52 30 15 101 74 26 157 148 53 201 146 124
++157 148 53 176 103 41 176 103 41 176 103 41 219 175 47 176 103 41 176 103 41 157 148 53
++176 103 41 176 103 41 176 103 41 157 148 53 176 103 41 117 112 45 176 103 41 117 112 45
++176 103 41 117 112 45 120 63 71 176 103 41 117 112 45 120 63 71 117 112 45 120 63 71
++120 63 71 88 73 31 88 73 62 75 63 62 75 56 53 65 63 61 65 57 61 59 57 61
++46 59 71 57 43 64 34 42 77 34 42 77 34 42 77 34 42 77 32 40 58 34 42 77
++34 42 77 29 34 50 34 42 77 34 42 77 34 42 77 34 42 77 29 34 50 34 42 77
++34 42 77 32 40 58 34 42 77 34 42 77 42 60 86 42 60 86 60 63 87 61 78 101
++61 78 101 61 78 101 77 91 115 61 78 101 88 69 84 77 90 100 75 81 90 88 83 88
++88 83 74 88 83 88 99 93 84 99 93 84 99 93 84 117 99 86 117 99 86 117 99 86
++117 114 76 117 99 86 117 127 86 117 99 86 138 102 108 117 114 76 112 123 108 117 127 86
++138 126 108 112 123 108 138 126 108 121 143 132 138 126 108 122 134 144 121 143 132 145 140 145
++145 140 145 129 144 153 148 160 159 148 160 159 148 160 159 131 144 168 148 160 159 150 168 183
++166 156 164 150 168 183 166 174 181 150 171 159 150 168 183 150 171 159 150 168 183 166 156 164
++150 171 159 150 168 183 148 160 159 148 160 159 129 144 153 126 147 144 122 134 144 121 143 132
++111 119 127 95 119 107 94 105 108 75 81 90 75 81 76 59 69 70 59 69 70 75 81 82
++75 81 90 95 91 100 95 119 107 111 119 127 122 134 144 122 134 144 145 140 145 148 160 159
++148 160 159 148 160 159 150 168 183 150 171 159 166 174 181 150 168 183 166 180 164 150 168 183
++166 156 164 150 168 183 166 174 181 148 160 159 75 81 90 60 63 87 122 134 144 194 199 226
++226 221 247 201 216 228 201 216 228 201 216 228 208 221 247 201 216 228 226 221 247 208 221 247
++226 221 247 208 221 247 226 221 247 208 221 247 226 221 247 208 221 247 232 215 228 208 221 247
++226 221 247 226 221 247 226 221 247 208 221 247 226 221 247 221 238 247 226 221 247 231 239 247
++235 238 247 235 238 247 235 238 247 235 238 247 235 238 247 240 251 247 240 251 247 240 251 247
++251 251 247 251 251 247 226 221 247 166 176 200 95 108 128 45 57 61 7 10 17 29 34 50
++111 119 127 150 147 171 166 174 181 150 168 183 148 160 159 148 160 159 148 160 159 150 147 171
++131 144 168 148 160 159 148 160 159 131 144 168 148 160 159 148 160 159 131 144 168 148 160 159
++148 160 159 150 168 183 148 160 159 150 168 183 148 160 159 166 174 181 150 168 183 166 180 164
++166 174 181 166 180 164 166 174 181 166 174 181 166 174 181 166 174 181 150 168 183 150 171 159
++150 168 183 166 156 164 150 171 159 148 160 159 148 160 159 131 144 168 129 144 153 129 144 153
++122 134 144 111 122 142 111 122 142 98 121 131 95 108 128 77 91 115 77 91 115 61 78 101
++61 78 101 61 78 101 42 60 86 61 78 101 60 63 87 61 78 101 61 78 101 61 78 101
++61 78 101 61 78 101 77 91 115 77 91 115 77 91 115 77 91 115 95 95 116 95 108 128
++95 108 128 95 108 128 95 108 128 95 108 128 98 121 131 111 122 142 111 122 142 111 122 142
++111 122 142 122 134 144 111 122 142 121 143 132 122 134 144 122 134 144 122 134 144 129 144 153
++129 144 153 129 144 153 148 160 159 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159
++150 168 183 166 156 164 150 168 183 150 171 159 166 174 181 166 174 181 166 174 181 166 180 164
++150 168 183 166 174 181 166 156 164 150 168 183 150 171 159 148 160 159 148 160 159 148 160 159
++131 144 168 148 160 159 129 144 153 122 134 144 122 134 144 111 122 142 111 119 127 98 121 131
++95 108 128 77 91 115 77 91 115 61 78 101 61 78 101 42 60 86 42 60 86 42 60 86
++34 42 77 34 42 77 45 57 61 34 42 77 46 59 71 42 60 86 60 63 87 61 78 101
++61 78 101 77 90 100 95 95 116 95 108 128 98 121 131 111 119 127 111 122 142 121 143 132
++122 134 144 129 144 153 129 144 153 148 160 159 148 160 159 150 147 171 150 168 183 166 156 164
++150 168 183 166 156 164 150 168 183 166 180 164 148 160 159 150 168 183 148 160 159 148 160 159
++150 147 171 131 144 168 129 144 153 129 144 153 129 144 153 122 134 144 122 134 144 122 134 144
++111 122 142 111 119 127 98 121 131 95 108 128 94 105 108 77 91 115 77 90 100 61 78 101
++61 78 101 60 63 87 42 60 86 60 63 87 42 60 86 42 60 86 46 59 71 34 42 77
++45 57 61 32 40 58 32 40 58 34 42 77 32 40 58 34 42 77 32 40 58 34 42 77
++46 59 71 60 63 87 61 78 101 75 81 90 77 91 115 94 105 108 94 105 108 95 108 128
++98 121 131 111 119 127 122 134 144 122 134 144 122 134 144 145 140 145 129 144 153 148 160 159
++148 160 159 148 160 159 148 160 159 150 168 183 148 160 159 148 160 159 148 160 159 150 147 171
++148 160 159 131 144 168 148 160 159 129 144 153 129 144 153 126 147 144 122 134 144 122 134 144
++122 134 144 122 134 144 111 122 142 111 122 142 111 119 127 98 121 131 111 119 127 95 108 128
++95 108 128 95 108 128 94 105 108 95 95 116 95 108 128 77 91 115 94 105 108 77 91 115
++94 105 108 77 91 115 95 108 128 94 105 108 77 91 115 94 105 108 95 108 128 94 105 108
++95 108 128 95 95 116 95 108 128 94 105 108 95 108 128 94 105 108 94 105 108 77 91 115
++77 90 100 77 90 100 61 78 101 75 81 90 60 63 87 60 63 87 46 59 71 46 59 71
++32 40 58 34 42 77 32 40 58 32 40 58 29 34 50 29 34 50 32 40 58 29 34 50
++32 40 58 29 34 50 32 40 58 32 40 58 45 57 61 46 59 71 46 59 71 60 63 87
++77 90 100 77 90 100 94 105 108 95 108 128 98 121 131 111 122 142 121 143 132 122 134 144
++122 134 144 145 140 145 129 144 153 148 160 159 129 144 153 148 160 159 148 160 159 148 160 159
++148 160 159 150 144 154 148 160 159 129 144 153 150 144 154 129 144 153 145 140 145 122 134 144
++122 134 144 122 134 144 111 119 127 111 119 127 95 108 128 94 105 108 77 90 100 77 90 100
++60 63 87 60 63 87 46 59 71 34 42 77 43 42 50 32 40 58 29 34 50 29 34 50
++29 34 50 24 30 43 29 34 50 29 34 50 29 34 50 24 30 43 29 34 50 24 30 43
++29 34 50 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50 29 34 50 29 34 50
++
++75 81 76 78 98 90 90 98 89 94 105 108 94 105 108 95 119 107 112 96 108 112 123 108
++111 119 127 111 119 127 138 126 108 121 143 132 111 119 127 121 143 132 138 126 108 121 143 132
++138 126 108 145 140 145 138 126 108 121 143 132 145 140 145 145 140 145 121 143 132 145 140 145
++146 151 137 121 143 132 146 151 137 121 143 132 146 151 137 126 147 144 146 151 137 146 151 137
++145 140 145 146 151 137 126 147 144 146 162 145 145 140 145 146 151 137 146 151 137 146 151 137
++145 140 145 138 126 108 121 143 132 141 116 139 121 143 132 111 119 127 112 123 108 112 123 108
++112 96 108 94 105 108 90 98 89 88 83 74 75 81 76 75 73 58 65 63 61 59 55 55
++48 50 48 47 44 42 36 35 37 32 39 24 33 30 30 32 39 24 36 35 37 47 47 21
++36 35 37 47 47 21 47 44 42 36 35 37 47 47 21 47 49 42 55 55 48 64 70 48
++75 72 67 88 83 74 90 98 89 99 93 84 95 91 100 112 96 108 112 123 108 112 123 108
++119 117 138 138 126 108 121 143 132 126 147 144 146 162 145 150 144 154 146 162 145 150 171 159
++166 156 164 166 180 164 166 156 164 166 180 164 166 156 164 166 180 164 150 171 159 166 156 164
++148 160 159 166 156 164 146 162 145 146 162 145 150 144 154 146 162 145 146 151 137 145 140 145
++121 143 132 145 140 145 121 143 132 119 117 138 121 143 132 138 126 108 121 143 132 111 119 127
++138 126 108 112 123 108 111 119 127 112 96 108 112 123 108 111 119 127 112 123 108 111 119 127
++112 96 108 112 123 108 94 105 108 112 123 108 94 105 108 112 96 108 112 123 108 94 105 108
++112 96 108 98 113 84 94 105 108 98 113 84 112 96 108 94 105 108 112 96 108 112 123 108
++112 96 108 112 123 108 111 119 127 112 123 108 111 119 127 112 123 108 111 119 127 95 119 107
++111 119 127 95 119 107 112 96 108 94 105 108 94 105 108 94 105 108 94 105 108 90 98 89
++77 90 100 77 90 100 75 81 90 60 63 87 59 69 70 46 59 71 46 59 71 32 40 58
++32 40 58 12 18 30 34 42 77 24 30 43 24 30 43 12 18 30 34 42 77 12 18 30
++34 42 77 24 30 43 34 42 77 12 18 30 34 42 77 24 30 43 34 42 77 24 30 43
++24 30 43 24 30 43 34 42 77 29 34 50 34 42 77 29 34 50 57 43 64 29 34 50
++57 43 64 52 30 35 57 43 64 59 36 42 76 44 53 59 36 42 88 44 51 88 44 51
++88 44 51 120 63 71 102 33 26 120 63 71 102 33 26 102 33 26 120 63 71 102 33 26
++167 63 71 102 33 26 161 55 23 102 33 26 167 63 71 122 49 24 167 63 71 102 33 26
++161 55 23 167 63 71 122 49 24 167 63 71 161 55 23 167 63 71 161 55 23 161 55 23
++167 63 71 161 55 23 167 63 71 161 55 23 167 63 71 102 33 26 161 55 23 167 63 71
++102 33 26 161 55 23 161 55 23 161 55 23 161 55 23 122 49 24 167 63 71 161 55 23
++120 63 71 161 55 23 88 44 51 52 30 35 26 12 13 13 4 7 23 10 10 15 17 7
++13 4 7 6 15 6 13 4 7 3 3 1 6 15 6 3 3 1 3 3 1 3 3 1
++3 4 9 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 49 13 16 55 39 18 176 103 41 157 148 53 176 103 41 219 175 47
++176 103 41 176 103 41 219 175 47 157 148 53 176 103 41 176 103 41 157 148 53 176 103 41
++176 103 41 157 148 53 176 103 41 176 103 41 176 103 41 176 103 41 117 112 45 167 63 71
++117 112 45 176 103 41 120 63 71 117 112 45 120 63 71 117 112 45 120 63 71 101 83 74
++88 73 62 88 73 62 88 73 62 75 63 62 65 63 61 59 57 61 54 57 61 57 43 64
++46 59 71 32 40 58 34 42 77 34 42 77 32 40 58 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 29 34 50 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 42 60 86 42 60 86 61 78 101 61 78 101
++61 78 101 75 64 82 61 78 101 75 81 90 61 78 101 75 64 82 75 81 76 75 64 82
++75 81 76 88 83 74 88 83 74 101 83 74 87 99 72 101 83 74 87 99 72 117 99 86
++117 99 86 117 114 76 117 99 86 117 114 76 117 114 76 117 114 76 138 102 108 117 99 86
++138 102 108 112 123 108 138 126 108 111 119 127 138 126 108 121 143 132 141 116 139 121 143 132
++126 147 144 146 162 145 150 144 154 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159
++150 171 159 150 168 183 166 156 164 150 168 183 166 156 164 150 168 183 166 174 181 150 168 183
++150 171 159 150 147 171 148 160 159 148 160 159 148 160 159 145 140 145 122 134 144 121 143 132
++111 119 127 95 119 107 94 105 108 75 81 90 75 81 82 63 59 71 59 69 70 75 81 76
++75 81 90 94 105 108 94 105 108 111 119 127 121 143 132 122 134 144 126 147 144 148 160 159
++148 160 159 166 156 164 150 171 159 166 156 164 150 171 159 166 156 164 150 168 183 166 180 164
++150 168 183 150 171 159 150 168 183 129 144 153 60 81 83 77 90 100 150 168 183 194 199 226
++201 216 228 201 216 228 194 199 226 208 221 247 208 221 247 208 221 247 226 221 247 208 221 247
++226 221 247 201 216 228 208 221 247 221 238 247 226 221 247 226 221 247 226 221 247 226 221 247
++226 221 247 226 221 247 221 238 247 232 215 228 226 221 247 226 221 247 226 221 247 226 221 247
++231 239 247 235 238 247 235 238 247 235 238 247 235 238 247 235 238 247 235 238 247 235 238 247
++240 251 247 240 251 247 240 251 247 251 251 247 194 199 226 150 147 171 60 63 87 46 59 71
++111 119 127 150 147 171 150 168 183 150 168 183 148 160 159 150 168 183 148 160 159 150 168 183
++148 160 159 148 160 159 131 144 168 148 160 159 148 160 159 131 144 168 150 171 159 150 147 171
++148 160 159 148 160 159 150 168 183 166 156 164 150 168 183 150 168 183 166 180 164 150 168 183
++166 174 181 150 168 183 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181
++150 168 183 148 160 159 150 168 183 131 144 168 148 160 159 129 144 153 129 144 153 129 144 153
++122 134 144 111 122 142 111 122 142 95 108 128 95 108 128 77 91 115 77 91 115 61 78 101
++61 78 101 60 63 87 61 78 101 61 78 101 61 78 101 42 60 86 61 78 101 61 78 101
++61 78 101 77 91 115 77 91 115 77 91 115 77 91 115 94 105 108 95 108 128 95 108 128
++95 108 128 98 121 131 98 121 131 98 121 131 111 122 142 98 121 131 111 119 127 111 122 142
++121 143 132 111 122 142 121 143 132 111 122 142 122 134 144 126 147 144 122 134 144 129 144 153
++129 144 153 148 160 159 150 144 154 148 160 159 150 147 171 148 160 159 148 160 159 150 168 183
++148 160 159 150 168 183 150 171 159 166 174 181 148 160 159 166 174 181 150 171 159 166 174 181
++166 174 181 166 180 164 150 168 183 166 156 164 148 160 159 150 168 183 148 160 159 148 160 159
++148 160 159 129 144 153 129 144 153 122 134 144 122 134 144 111 122 142 98 121 131 95 108 128
++95 108 128 77 91 115 77 91 115 61 78 101 61 78 101 60 63 87 42 60 86 34 42 77
++46 59 71 34 42 77 32 40 58 34 42 77 46 59 71 42 60 86 60 63 87 61 78 101
++77 90 100 77 91 115 77 91 115 95 108 128 111 119 127 98 121 131 111 119 127 122 134 144
++122 134 144 126 147 144 150 144 154 129 144 153 148 160 159 148 160 159 148 160 159 150 168 183
++150 171 159 166 174 181 166 156 164 150 168 183 166 174 181 150 168 183 148 160 159 150 168 183
++148 160 159 148 160 159 148 160 159 129 144 153 129 144 153 126 147 144 122 134 144 122 134 144
++121 143 132 111 119 127 98 121 131 98 121 131 95 108 128 94 105 108 77 91 115 77 90 100
++61 78 101 61 78 101 61 78 101 60 63 87 60 63 87 42 60 86 42 60 86 46 59 71
++34 42 77 34 42 77 32 40 58 32 40 58 34 42 77 32 40 58 34 42 77 34 42 77
++42 60 86 60 63 87 61 78 101 61 78 101 77 90 100 77 91 115 94 105 108 98 121 131
++98 121 131 111 119 127 111 119 127 122 134 144 126 147 144 129 144 153 145 140 145 129 144 153
++129 144 153 148 160 159 150 147 171 148 160 159 148 160 159 150 147 171 148 160 159 148 160 159
++148 160 159 148 160 159 129 144 153 150 144 154 129 144 153 145 140 145 126 147 144 122 134 144
++122 134 144 121 143 132 111 122 142 121 143 132 111 119 127 111 119 127 111 119 127 95 108 128
++95 108 128 94 105 108 95 108 128 94 105 108 77 91 115 95 108 128 94 105 108 95 108 128
++94 105 108 95 108 128 94 105 108 95 95 116 95 108 128 77 91 115 94 105 108 77 91 115
++94 105 108 95 108 128 95 95 116 95 108 128 95 108 128 95 108 128 77 91 115 77 91 115
++77 91 115 77 90 100 61 78 101 61 78 101 60 81 83 60 63 87 46 59 71 45 57 61
++34 42 77 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 29 34 50
++32 40 58 32 40 58 32 40 58 32 40 58 34 42 77 46 59 71 60 63 87 75 81 90
++77 90 100 77 91 115 94 105 108 95 108 128 111 119 127 111 119 127 111 119 127 122 134 144
++126 147 144 126 147 144 148 160 159 129 144 153 148 160 159 150 144 154 148 160 159 131 144 168
++148 160 159 131 144 168 148 160 159 148 160 159 148 160 159 129 144 153 129 144 153 129 144 153
++121 143 132 111 122 142 111 119 127 111 119 127 94 105 108 95 95 116 77 90 100 75 81 90
++60 63 87 46 59 71 46 59 71 32 40 58 32 40 58 29 34 50 24 30 43 29 34 50
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 24 30 43 29 34 50
++24 30 43 29 34 50 29 34 50 24 30 43 29 34 50 29 34 50 29 34 50 29 34 50
++
++75 81 82 90 98 89 90 98 89 94 105 108 112 123 108 112 123 108 111 119 127 111 119 127
++138 126 108 111 119 127 121 143 132 111 119 127 138 126 108 121 143 132 121 143 132 121 143 132
++141 116 139 121 143 132 145 140 145 121 143 132 145 140 145 146 150 115 145 140 145 121 143 132
++145 140 145 146 151 137 145 140 145 121 143 132 145 140 145 121 143 132 146 151 137 126 147 144
++146 162 145 145 140 145 146 162 145 145 140 145 146 151 137 145 140 145 126 147 144 146 151 137
++126 147 144 145 140 145 121 143 132 138 126 108 111 119 127 138 126 108 111 119 127 112 123 108
++94 105 108 99 93 84 90 98 89 99 93 84 75 81 76 75 72 67 59 55 55 55 55 48
++52 55 48 42 47 42 42 47 42 36 35 37 42 41 42 42 41 42 36 35 37 33 39 38
++42 47 42 47 44 42 47 44 42 42 41 42 42 47 42 47 49 42 55 55 48 65 63 61
++75 77 62 75 81 76 88 83 88 90 98 89 98 113 84 112 96 108 112 123 108 111 119 127
++138 126 108 121 143 132 145 140 145 146 151 137 145 140 145 146 162 145 148 160 159 166 156 164
++148 160 159 166 156 164 166 180 164 166 156 164 150 171 159 166 156 164 166 156 164 150 171 159
++166 156 164 146 162 145 150 144 154 146 162 145 150 144 154 146 162 145 145 140 145 146 151 137
++145 140 145 121 143 132 138 126 108 121 143 132 138 126 108 119 117 138 111 119 127 138 126 108
++111 119 127 111 119 127 112 123 108 112 123 108 111 119 127 112 123 108 138 102 108 112 123 108
++94 105 108 112 96 108 94 105 108 112 96 108 98 113 84 94 105 108 98 113 84 112 96 108
++98 113 84 94 105 108 95 91 100 98 113 84 94 105 108 112 123 108 95 119 107 112 123 108
++112 123 108 112 123 108 112 123 108 111 119 127 112 96 108 112 123 108 112 96 108 111 119 127
++94 105 108 111 119 127 94 105 108 94 105 108 94 105 108 94 105 108 90 98 89 77 90 100
++90 98 89 75 81 90 75 81 90 75 81 90 60 63 87 46 59 71 57 43 64 34 42 77
++29 34 50 29 34 50 24 30 43 24 30 43 34 42 77 24 30 43 24 30 43 34 42 77
++12 18 30 34 42 77 12 18 30 34 42 77 24 30 43 34 42 77 12 18 30 34 42 77
++29 34 50 34 42 77 12 18 30 34 42 77 29 34 50 34 42 77 29 34 50 57 43 64
++29 34 50 57 43 64 59 36 42 57 43 64 59 36 42 76 44 53 76 44 53 88 44 51
++88 44 51 88 44 51 88 44 51 102 33 26 120 63 71 102 33 26 167 63 71 102 33 26
++102 33 26 167 63 71 102 33 26 167 63 71 102 33 26 167 63 71 122 49 24 167 63 71
++161 55 23 161 55 23 167 63 71 102 33 26 167 63 71 102 33 26 167 63 71 122 49 24
++161 55 23 167 63 71 102 33 26 161 55 23 167 63 71 161 55 23 167 63 71 161 55 23
++167 63 71 161 55 23 167 63 71 122 49 24 167 63 71 161 55 23 122 49 24 167 63 71
++122 49 24 120 63 71 102 33 26 49 13 16 26 12 13 13 4 7 15 17 7 13 4 7
++15 17 7 13 4 7 3 3 1 6 15 6 3 3 1 3 3 1 3 3 1 3 3 1
++3 4 9 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 26 12 13 88 73 31 117 114 76 157 148 53 157 148 53 176 103 41 157 148 53
++176 103 41 157 148 53 176 103 41 176 103 41 157 148 53 176 103 41 176 103 41 157 148 53
++176 103 41 176 103 41 117 112 45 176 103 41 117 112 45 176 103 41 117 112 45 176 103 41
++117 112 45 120 63 71 117 112 45 120 63 71 117 112 45 120 63 71 101 74 26 120 63 71
++88 73 62 88 73 62 75 63 62 75 63 62 65 57 61 59 57 61 54 57 61 46 59 71
++57 43 64 34 42 77 32 40 58 34 42 77 34 42 77 34 42 77 32 40 58 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 42 60 86 42 60 86 61 78 101 60 63 87 61 78 101
++61 78 101 61 78 101 61 78 101 75 81 90 60 63 87 60 81 83 63 59 71 75 72 67
++75 72 67 75 72 67 75 72 67 88 73 62 88 73 62 87 99 72 101 83 74 98 106 55
++101 83 74 117 114 76 117 99 86 117 114 76 117 99 86 117 114 76 117 99 86 117 127 86
++112 123 108 112 123 108 138 126 108 112 123 108 121 143 132 138 126 108 121 143 132 145 140 145
++126 147 144 145 140 145 129 144 153 148 160 159 150 144 154 148 160 159 148 160 159 150 168 183
++150 147 171 150 168 183 150 168 183 166 174 181 150 168 183 166 180 164 148 160 159 150 168 183
++166 156 164 150 168 183 148 160 159 148 160 159 129 144 153 129 144 153 126 147 144 119 117 138
++111 119 127 95 119 107 94 105 108 88 83 88 75 81 82 63 59 71 59 69 70 60 81 83
++75 81 82 95 91 100 95 119 107 111 119 127 119 117 138 121 143 132 145 140 145 129 144 153
++148 160 159 150 147 171 150 168 183 150 171 159 150 168 183 166 174 181 150 171 159 150 168 183
++166 174 181 166 174 181 150 168 183 129 144 153 75 81 90 95 91 100 166 174 181 194 199 226
++194 199 226 201 216 228 208 221 247 208 221 247 194 199 226 226 221 247 201 216 228 208 221 247
++208 221 247 226 221 247 226 221 247 226 221 247 201 216 228 226 221 247 208 221 247 226 221 247
++208 221 247 226 221 247 226 221 247 208 221 247 221 238 247 226 221 247 226 221 247 221 238 247
++226 221 247 231 239 247 235 238 247 235 238 247 235 238 247 240 251 247 240 251 247 235 238 247
++235 238 247 235 238 247 240 251 247 240 251 247 240 251 247 221 238 247 188 180 202 131 144 168
++131 144 168 148 160 159 150 168 183 148 160 159 150 168 183 150 168 183 148 160 159 150 168 183
++148 160 159 148 160 159 150 168 183 148 160 159 150 168 183 148 160 159 150 168 183 148 160 159
++150 168 183 150 168 183 148 160 159 150 168 183 150 168 183 166 180 164 150 168 183 166 180 164
++166 174 181 166 180 164 166 174 181 150 168 183 166 174 181 166 174 181 150 171 159 150 168 183
++150 171 159 150 168 183 148 160 159 148 160 159 148 160 159 129 144 153 129 144 153 122 134 144
++122 134 144 111 122 142 98 121 131 95 108 128 95 108 128 77 91 115 77 91 115 61 78 101
++61 78 101 61 78 101 61 78 101 42 60 86 61 78 101 61 78 101 61 78 101 77 91 115
++77 91 115 77 91 115 77 91 115 95 108 128 95 108 128 95 108 128 98 121 131 111 122 142
++111 122 142 111 122 142 111 122 142 111 122 142 111 122 142 122 134 144 122 134 144 122 134 144
++122 134 144 122 134 144 122 134 144 122 134 144 126 147 144 129 144 153 129 144 153 129 144 153
++129 144 153 148 160 159 131 144 168 148 160 159 148 160 159 148 160 159 148 160 159 166 156 164
++150 171 159 166 156 164 150 171 159 166 156 164 166 174 181 150 168 183 166 174 181 150 168 183
++166 156 164 150 168 183 166 180 164 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159
++129 144 153 129 144 153 126 147 144 122 134 144 111 122 142 111 122 142 98 121 131 95 108 128
++95 108 128 77 91 115 77 91 115 61 78 101 61 78 101 42 60 86 42 60 86 46 59 71
++34 42 77 34 42 77 34 42 77 45 57 61 34 42 77 60 63 87 60 63 87 61 78 101
++75 81 90 77 91 115 94 105 108 95 108 128 95 108 128 111 119 127 111 122 142 122 134 144
++122 134 144 129 144 153 129 144 153 148 160 159 148 160 159 150 147 171 148 160 159 150 171 159
++150 168 183 150 171 159 166 174 181 166 174 181 150 171 159 166 156 164 150 168 183 148 160 159
++150 147 171 131 144 168 129 144 153 129 144 153 129 144 153 129 144 153 126 147 144 122 134 144
++111 122 142 122 134 144 98 121 131 98 121 131 95 108 128 95 108 128 77 91 115 77 90 100
++77 90 100 61 78 101 61 78 101 60 63 87 60 63 87 42 60 86 42 60 86 46 59 71
++34 42 77 32 40 58 34 42 77 45 57 61 32 40 58 34 42 77 34 42 77 46 59 71
++34 42 77 42 60 86 60 63 87 61 78 101 77 91 115 77 91 115 95 95 116 95 108 128
++95 119 107 111 122 142 111 119 127 122 134 144 122 134 144 126 147 144 129 144 153 129 144 153
++150 144 154 148 160 159 148 160 159 148 160 159 150 147 171 150 171 159 150 147 171 148 160 159
++148 160 159 131 144 168 148 160 159 129 144 153 148 160 159 129 144 153 122 134 144 122 134 144
++122 134 144 122 134 144 111 122 142 111 119 127 98 121 131 111 119 127 98 121 131 111 119 127
++94 105 108 95 108 128 95 108 128 94 105 108 95 108 128 95 95 116 77 91 115 94 105 108
++77 91 115 94 105 108 77 91 115 95 108 128 94 105 108 95 108 128 95 108 128 95 108 128
++95 108 128 94 105 108 95 108 128 94 105 108 95 108 128 94 105 108 77 91 115 94 105 108
++77 90 100 61 78 101 77 90 100 61 78 101 60 63 87 60 63 87 46 59 71 46 59 71
++32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 34 42 77
++29 34 50 29 34 50 32 40 58 32 40 58 46 59 71 63 59 71 60 63 87 60 63 87
++77 90 100 77 90 100 95 108 128 98 121 131 111 119 127 122 134 144 122 134 144 121 143 132
++145 140 145 129 144 153 129 144 153 150 144 154 129 144 153 148 160 159 148 160 159 148 160 159
++148 160 159 148 160 159 129 144 153 148 160 159 129 144 153 145 140 145 129 144 153 122 134 144
++122 134 144 111 119 127 111 119 127 98 121 131 94 105 108 77 90 100 77 90 100 61 78 101
++60 63 87 46 59 71 46 59 71 32 40 58 32 40 58 29 34 50 29 34 50 29 34 50
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 24 30 43 29 34 50
++29 34 50 24 30 43 29 34 50 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50
++
++90 98 89 90 98 89 94 105 108 95 119 107 112 96 108 112 123 108 112 123 108 117 142 111
++111 119 127 117 142 111 111 119 127 138 126 108 121 143 132 122 134 144 138 126 108 121 143 132
++121 143 132 138 126 108 145 140 145 138 126 108 121 143 132 145 140 145 121 143 132 146 151 137
++138 126 108 145 140 145 121 143 132 146 151 137 121 143 132 145 140 145 146 151 137 145 140 145
++146 151 137 146 151 137 145 140 145 146 162 145 146 151 137 146 151 137 146 151 137 145 140 145
++146 151 137 121 143 132 141 116 139 121 143 132 121 143 132 111 119 127 112 123 108 112 96 108
++112 123 108 95 91 100 90 98 89 88 83 74 75 81 69 65 63 61 65 63 61 55 55 48
++51 49 42 47 44 42 42 47 42 47 47 21 42 47 42 47 47 21 47 49 42 47 47 21
++42 47 42 47 47 21 47 44 42 47 47 21 51 49 42 51 49 42 50 61 48 64 70 48
++75 73 58 75 81 69 88 83 74 90 98 89 99 93 84 94 105 108 112 123 108 112 123 108
++111 119 127 138 126 108 121 143 132 126 147 144 146 151 137 146 151 137 150 144 154 146 162 145
++150 171 159 150 171 159 166 156 164 150 171 159 166 156 164 166 180 164 150 171 159 166 156 164
++150 171 159 148 160 159 146 162 145 150 144 154 146 162 145 145 140 145 146 151 137 145 140 145
++121 143 132 145 140 145 121 143 132 119 117 138 121 143 132 138 126 108 121 143 132 111 119 127
++112 123 108 112 123 108 111 119 127 112 123 108 112 123 108 112 123 108 95 119 107 112 123 108
++94 105 108 112 123 108 98 113 84 95 119 107 112 96 108 94 105 108 94 105 108 98 113 84
++94 105 108 98 113 84 112 96 108 98 113 84 94 105 108 98 113 84 112 96 108 94 105 108
++112 123 108 112 96 108 112 123 108 94 105 108 112 123 108 112 123 108 111 119 127 112 96 108
++112 123 108 94 105 108 94 105 108 94 105 108 94 105 108 95 91 100 94 105 108 90 98 89
++78 98 90 78 98 90 75 81 90 60 81 83 59 69 70 53 63 61 46 59 71 32 40 58
++32 40 58 29 34 50 29 34 50 24 30 43 12 18 30 34 42 77 24 30 43 29 34 50
++29 34 50 29 34 50 29 34 50 29 34 50 24 30 43 24 30 43 34 42 77 29 34 50
++24 30 43 24 30 43 34 42 77 29 34 50 29 34 50 29 34 50 57 43 64 29 34 50
++57 43 64 52 30 35 57 43 64 59 36 42 57 43 64 59 36 42 76 44 53 76 44 53
++88 44 51 88 44 51 88 44 51 88 44 51 120 63 71 102 33 26 102 33 26 120 63 71
++122 49 24 120 63 71 102 33 26 167 63 71 102 33 26 167 63 71 102 33 26 161 55 23
++102 33 26 167 63 71 122 49 24 161 55 23 161 55 23 161 55 23 161 55 23 167 63 71
++102 33 26 161 55 23 161 55 23 167 63 71 161 55 23 122 49 24 161 55 23 102 33 26
++167 63 71 102 33 26 161 55 23 122 49 24 167 63 71 122 49 24 167 63 71 161 55 23
++120 63 71 88 44 51 76 18 19 26 12 13 23 10 10 23 10 10 13 4 7 7 12 13
++13 4 7 3 4 9 13 4 7 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 13 4 7
++52 30 15 101 74 26 176 103 41 157 148 53 168 102 88 219 175 47 176 103 41 157 148 53
++176 103 41 176 103 41 176 103 41 157 148 53 176 103 41 176 103 41 157 148 53 176 103 41
++176 103 41 117 112 45 176 103 41 176 103 41 117 112 45 176 103 41 117 112 45 120 63 71
++176 103 41 117 112 45 167 63 71 117 112 45 101 74 26 120 63 71 88 73 62 88 73 62
++88 73 62 88 73 62 75 63 62 65 63 61 59 57 61 54 57 61 57 43 64 45 57 61
++45 57 61 32 40 58 32 40 58 34 42 77 32 40 58 34 42 77 34 42 77 34 42 77
++34 42 77 32 40 58 34 42 77 29 34 50 34 42 77 29 34 50 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 42 60 86 42 60 86 60 63 87 61 78 101 61 78 101
++61 78 101 75 81 90 60 63 87 75 81 90 60 63 87 63 59 71 59 69 70 63 59 71
++65 63 61 65 63 61 75 63 62 75 73 58 88 73 62 88 73 62 88 73 62 101 83 74
++98 106 55 101 83 74 98 106 55 117 99 86 117 99 86 117 114 76 117 99 86 117 99 86
++117 99 86 112 123 108 112 123 108 138 126 108 138 126 108 121 143 132 145 140 145 121 143 132
++146 151 137 129 144 153 145 140 145 148 160 159 129 144 153 148 160 159 148 160 159 148 160 159
++148 160 159 166 156 164 148 160 159 150 171 159 148 160 159 150 168 183 166 156 164 150 168 183
++148 160 159 148 160 159 148 160 159 148 160 159 150 144 154 126 147 144 145 140 145 121 143 132
++111 119 127 95 119 107 94 105 108 77 90 100 75 81 82 75 64 82 59 69 70 75 81 76
++75 81 90 95 91 100 112 123 108 111 119 127 121 143 132 126 147 144 129 144 153 148 160 159
++148 160 159 148 160 159 148 160 159 150 168 183 166 156 164 150 168 183 166 174 181 150 171 159
++150 168 183 150 171 159 166 174 181 129 144 153 75 81 90 95 95 116 150 168 183 194 199 226
++194 199 226 194 199 226 201 216 228 194 199 226 208 221 247 201 216 228 226 221 247 201 216 228
++226 221 247 201 216 228 208 221 247 226 221 247 221 238 247 232 215 228 226 221 247 226 221 247
++226 221 247 226 221 247 221 238 247 232 215 228 226 221 247 226 221 247 221 238 247 226 221 247
++226 221 247 231 239 247 231 239 247 235 238 247 235 238 247 240 251 247 235 238 247 235 238 247
++231 239 247 231 239 247 231 239 247 221 238 247 231 239 247 235 238 247 221 238 247 201 216 228
++194 199 226 188 180 202 166 176 200 150 168 183 150 168 183 148 160 159 150 168 183 150 147 171
++150 168 183 148 160 159 150 171 159 131 144 168 148 160 159 148 160 159 148 160 159 148 160 159
++150 168 183 148 160 159 150 168 183 150 171 159 166 174 181 150 168 183 166 174 181 166 180 164
++166 174 181 150 168 183 166 174 181 166 174 181 166 174 181 166 174 181 166 174 181 150 168 183
++166 156 164 150 168 183 150 171 159 131 144 168 148 160 159 131 144 168 129 144 153 129 144 153
++122 134 144 111 122 142 111 122 142 95 108 128 95 108 128 77 91 115 77 91 115 61 78 101
++61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 77 91 115
++77 91 115 77 91 115 77 91 115 95 108 128 95 108 128 98 121 131 98 121 131 98 121 131
++111 122 142 111 122 142 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 126 147 144
++122 134 144 126 147 144 126 147 144 129 144 153 129 144 153 129 144 153 129 144 153 150 144 154
++131 144 168 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 150 168 183 150 171 159
++150 168 183 150 168 183 150 168 183 166 174 181 150 171 159 166 174 181 150 171 159 166 174 181
++150 168 183 166 180 164 150 168 183 148 160 159 150 168 183 148 160 159 131 144 168 148 160 159
++129 144 153 129 144 153 122 134 144 122 134 144 122 134 144 111 119 127 95 108 128 95 108 128
++77 91 115 77 91 115 61 78 101 61 78 101 60 63 87 42 60 86 42 60 86 34 42 77
++34 42 77 46 59 71 32 40 58 34 42 77 46 59 71 42 60 86 60 63 87 61 78 101
++77 90 100 77 90 100 77 91 115 95 108 128 98 121 131 111 119 127 111 122 142 121 143 132
++122 134 144 129 144 153 129 144 153 131 144 168 148 160 159 148 160 159 148 160 159 150 168 183
++166 156 164 166 174 181 150 171 159 150 168 183 166 174 181 148 160 159 150 168 183 148 160 159
++148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 129 144 153 129 144 153 126 147 144
++122 134 144 121 143 132 111 122 142 111 119 127 98 121 131 95 108 128 94 105 108 77 91 115
++77 91 115 61 78 101 61 78 101 61 78 101 61 78 101 60 63 87 42 60 86 46 59 71
++34 42 77 46 59 71 32 40 58 32 40 58 34 42 77 32 40 58 32 40 58 34 42 77
++46 59 71 42 60 86 60 63 87 61 78 101 77 90 100 77 90 100 77 91 115 94 105 108
++95 108 128 98 121 131 111 119 127 111 119 127 122 134 144 122 134 144 129 144 153 129 144 153
++129 144 153 129 144 153 148 160 159 131 144 168 148 160 159 148 160 159 148 160 159 131 144 168
++148 160 159 148 160 159 148 160 159 150 144 154 129 144 153 129 144 153 126 147 144 122 134 144
++122 134 144 122 134 144 121 143 132 111 122 142 111 119 127 98 121 131 111 119 127 95 108 128
++98 121 131 95 108 128 95 108 128 95 108 128 95 108 128 94 105 108 95 108 128 95 108 128
++95 108 128 95 108 128 94 105 108 95 108 128 77 91 115 94 105 108 94 105 108 95 108 128
++94 105 108 95 108 128 95 108 128 77 91 115 95 108 128 95 108 128 77 91 115 77 91 115
++77 90 100 77 90 100 61 78 101 61 78 101 60 81 83 60 63 87 46 59 71 46 59 71
++34 42 77 32 40 58 34 42 77 32 40 58 29 34 50 34 42 77 29 34 50 29 34 50
++29 34 50 32 40 58 32 40 58 32 40 58 34 42 77 60 63 87 60 63 87 75 81 90
++77 90 100 94 105 108 94 105 108 111 119 127 111 119 127 111 119 127 122 134 144 122 134 144
++126 147 144 145 140 145 129 144 153 148 160 159 129 144 153 148 160 159 148 160 159 131 144 168
++148 160 159 150 144 154 148 160 159 129 144 153 148 160 159 129 144 153 129 144 153 121 143 132
++122 134 144 121 143 132 111 119 127 95 108 128 94 105 108 77 91 115 75 81 90 75 81 90
++60 63 87 46 59 71 34 42 77 32 40 58 32 40 58 29 34 50 29 34 50 24 30 43
++29 34 50 24 30 43 29 34 50 29 34 50 24 30 43 29 34 50 29 34 50 24 30 43
++29 34 50 24 30 43 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50 29 34 50
++
++90 98 89 90 98 89 98 113 84 112 96 108 112 123 108 112 123 108 111 119 127 112 123 108
++138 126 108 121 143 132 111 119 127 121 143 132 111 119 127 138 126 108 121 143 132 111 119 127
++138 126 108 121 143 132 121 143 132 145 140 145 121 143 132 138 126 108 145 140 145 121 143 132
++121 143 132 145 140 145 138 126 108 145 140 145 146 151 137 121 143 132 145 140 145 146 151 137
++126 147 144 146 151 137 146 151 137 145 140 145 126 147 144 146 151 137 126 147 144 145 140 145
++121 143 132 146 151 137 121 143 132 138 126 108 111 119 127 138 126 108 111 119 127 112 123 108
++95 91 100 90 98 89 90 98 89 75 81 76 75 72 67 65 63 61 64 70 48 55 55 48
++51 49 42 47 49 42 47 49 42 47 49 42 47 44 42 47 49 42 47 49 42 47 49 42
++47 49 42 47 49 42 47 49 42 51 49 42 51 49 42 50 61 48 64 70 48 65 63 61
++75 77 62 75 81 69 88 83 74 87 99 72 90 98 89 98 113 84 112 96 108 112 123 108
++117 142 111 121 143 132 138 126 108 145 140 145 121 143 132 145 140 145 146 162 145 146 162 145
++166 156 164 150 171 159 166 156 164 150 171 159 150 171 159 166 156 164 150 171 159 150 171 159
++146 162 145 166 156 164 146 162 145 146 151 137 146 151 137 146 151 137 126 147 144 146 151 137
++121 143 132 138 126 108 121 143 132 138 126 108 121 143 132 111 119 127 121 143 132 138 126 108
++111 119 127 112 123 108 112 123 108 112 123 108 112 96 108 112 123 108 112 96 108 112 123 108
++98 113 84 94 105 108 112 96 108 98 113 84 94 105 108 98 113 84 98 113 84 95 91 100
++90 98 89 94 105 108 90 98 89 94 105 108 98 113 84 112 96 108 98 113 84 94 105 108
++112 123 108 95 119 107 112 123 108 112 123 108 112 96 108 95 119 107 112 123 108 94 105 108
++94 105 108 94 105 108 94 105 108 90 98 89 94 105 108 90 98 89 78 98 90 90 98 89
++78 98 90 75 81 90 75 81 90 60 81 83 60 81 83 59 69 70 46 59 71 45 57 61
++32 40 58 32 40 58 29 34 50 32 40 58 29 34 50 24 30 43 29 34 50 34 42 77
++24 30 43 32 40 58 29 34 50 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58
++32 40 58 32 40 58 29 34 50 32 40 58 34 42 77 43 42 50 32 40 58 57 43 64
++32 40 58 32 40 58 57 43 64 57 43 64 76 44 53 57 43 64 76 44 53 76 44 53
++76 44 53 88 44 51 88 44 51 88 44 51 88 44 51 120 63 71 102 33 26 120 63 71
++102 33 26 120 63 71 122 49 24 122 49 24 167 63 71 102 33 26 167 63 71 122 49 24
++167 63 71 102 33 26 167 63 71 122 49 24 167 63 71 102 33 26 167 63 71 161 55 23
++167 63 71 161 55 23 102 33 26 167 63 71 102 33 26 167 63 71 161 55 23 167 63 71
++161 55 23 167 63 71 122 49 24 167 63 71 122 49 24 167 63 71 122 49 24 120 63 71
++120 63 71 88 30 18 34 30 15 23 10 10 17 12 17 7 12 13 7 12 13 17 12 17
++13 4 7 3 4 9 13 4 7 3 3 1 3 4 9 3 3 1 3 3 1 3 4 9
++3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 13 4 7 34 30 15 76 46 20
++117 112 45 176 103 41 157 148 53 176 103 41 219 175 47 176 103 41 176 103 41 176 103 41
++157 148 53 157 148 53 176 103 41 176 103 41 157 148 53 176 103 41 157 148 53 176 103 41
++117 112 45 176 103 41 157 148 53 117 112 45 176 103 41 117 112 45 176 103 41 117 112 45
++120 63 71 117 112 45 120 63 71 117 112 45 120 63 71 98 106 55 88 73 62 88 73 62
++88 73 62 75 73 58 75 63 62 65 63 61 63 59 71 54 57 61 46 59 71 32 40 58
++46 59 71 32 40 58 34 42 77 34 42 77 34 42 77 34 42 77 32 40 58 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 32 40 58
++34 42 77 34 42 77 34 42 77 42 60 86 42 60 86 61 78 101 61 78 101 61 78 101
++61 78 101 61 78 101 75 81 90 60 63 87 60 81 83 59 69 70 59 57 61 59 57 61
++59 55 55 59 55 55 65 55 54 64 70 48 75 73 58 75 73 36 88 73 62 88 73 31
++88 73 62 101 74 26 101 83 74 98 106 55 101 83 74 101 83 74 117 114 76 98 113 84
++117 99 86 112 123 108 138 126 108 112 123 108 122 134 144 138 126 108 126 147 144 145 140 145
++126 147 144 145 140 145 146 162 145 129 144 153 148 160 159 148 160 159 131 144 168 148 160 159
++148 160 159 150 168 183 148 160 159 150 168 183 148 160 159 150 171 159 150 168 183 148 160 159
++148 160 159 148 160 159 148 160 159 129 144 153 150 144 154 126 147 144 126 147 144 122 134 144
++111 119 127 111 119 127 94 105 108 78 98 90 75 81 90 75 81 76 59 69 70 75 81 82
++88 83 88 94 105 108 94 105 108 111 119 127 119 117 138 145 140 145 126 147 144 150 144 154
++148 160 159 148 160 159 148 160 159 166 156 164 150 171 159 150 168 183 150 171 159 150 168 183
++166 156 164 150 168 183 148 160 159 131 144 168 95 95 116 95 108 128 150 168 183 188 180 202
++201 216 228 194 199 226 208 221 247 232 215 228 194 199 226 208 221 247 201 216 228 226 221 247
++208 221 247 226 221 247 226 221 247 201 216 228 226 221 247 208 221 247 226 221 247 208 221 247
++226 221 247 221 238 247 226 221 247 208 221 247 226 221 247 226 221 247 226 221 247 221 238 247
++231 239 247 226 221 247 231 239 247 231 239 247 231 239 247 235 238 247 235 238 247 231 239 247
++231 239 247 221 238 247 221 238 247 226 221 247 226 221 247 221 238 247 231 239 247 231 239 247
++221 238 247 208 221 247 194 199 226 185 202 202 166 174 181 150 168 183 148 160 159 148 160 159
++148 160 159 150 168 183 150 168 183 148 160 159 150 168 183 148 160 159 150 168 183 148 160 159
++150 168 183 150 168 183 166 174 181 150 168 183 148 160 159 166 174 181 150 171 159 166 174 181
++166 174 181 166 174 181 166 180 164 150 168 183 166 174 181 150 168 183 150 171 159 150 168 183
++150 171 159 150 168 183 148 160 159 148 160 159 129 144 153 129 144 153 129 144 153 122 134 144
++111 122 142 111 122 142 98 121 131 95 108 128 95 108 128 77 91 115 77 91 115 61 78 101
++61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 77 91 115 77 91 115 77 91 115
++77 91 115 95 108 128 95 108 128 95 108 128 98 121 131 98 121 131 111 122 142 111 122 142
++122 134 144 122 134 144 122 134 144 122 134 144 126 147 144 129 144 153 129 144 153 129 144 153
++129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 150 144 154 129 144 153 148 160 159
++148 160 159 148 160 159 150 147 171 148 160 159 150 168 183 148 160 159 150 168 183 166 156 164
++150 168 183 166 180 164 166 156 164 150 168 183 166 174 181 166 174 181 166 174 181 150 168 183
++166 156 164 150 168 183 150 171 159 166 156 164 148 160 159 148 160 159 148 160 159 129 144 153
++129 144 153 129 144 153 122 134 144 122 134 144 111 122 142 98 121 131 98 121 131 94 105 108
++77 91 115 77 91 115 61 78 101 61 78 101 42 60 86 42 60 86 42 60 86 46 59 71
++34 42 77 32 40 58 34 42 77 45 57 61 34 42 77 46 59 71 60 63 87 61 78 101
++75 81 90 77 91 115 94 105 108 95 95 116 95 108 128 98 121 131 111 122 142 122 134 144
++122 134 144 126 147 144 129 144 153 150 144 154 129 144 153 148 160 159 150 147 171 150 168 183
++150 171 159 150 168 183 166 156 164 150 168 183 148 160 159 150 168 183 166 156 164 148 160 159
++150 168 183 148 160 159 131 144 168 148 160 159 129 144 153 150 144 154 129 144 153 129 144 153
++122 134 144 122 134 144 122 134 144 111 122 142 111 119 127 98 121 131 95 108 128 95 95 116
++77 91 115 77 90 100 61 78 101 61 78 101 60 63 87 60 63 87 60 63 87 42 60 86
++46 59 71 34 42 77 45 57 61 32 40 58 32 40 58 32 40 58 34 42 77 45 57 61
++34 42 77 60 63 87 60 63 87 61 78 101 61 78 101 77 91 115 77 91 115 94 105 108
++95 108 128 111 119 127 111 119 127 122 134 144 122 134 144 122 134 144 129 144 153 129 144 153
++129 144 153 129 144 153 131 144 168 148 160 159 148 160 159 131 144 168 148 160 159 148 160 159
++148 160 159 129 144 153 129 144 153 129 144 153 129 144 153 126 147 144 145 140 145 122 134 144
++122 134 144 121 143 132 111 122 142 111 119 127 121 143 132 111 119 127 111 119 127 111 119 127
++98 121 131 111 119 127 95 108 128 95 108 128 94 105 108 95 108 128 95 108 128 94 105 108
++95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 95 108 128 95 119 107
++95 108 128 95 108 128 95 108 128 98 121 131 94 105 108 95 108 128 77 91 115 94 105 108
++77 91 115 77 90 100 61 78 101 75 81 90 60 63 87 42 60 86 42 60 86 46 59 71
++34 42 77 32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 29 34 50 32 40 58
++29 34 50 32 40 58 32 40 58 34 42 77 46 59 71 59 69 70 60 63 87 61 78 101
++77 90 100 95 95 116 95 108 128 98 121 131 111 119 127 121 143 132 122 134 144 126 147 144
++129 144 153 129 144 153 148 160 159 129 144 153 148 160 159 148 160 159 129 144 153 148 160 159
++148 160 159 129 144 153 148 160 159 129 144 153 145 140 145 126 147 144 126 147 144 122 134 144
++111 119 127 111 119 127 111 119 127 95 108 128 94 105 108 77 90 100 61 78 101 60 63 87
++60 63 87 46 59 71 57 43 64 32 40 58 32 40 58 29 34 50 24 30 43 29 34 50
++29 34 50 24 30 43 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50 29 34 50
++24 30 43 29 34 50 29 34 50 24 30 43 29 34 50 29 34 50 29 34 50 24 30 43
++
++88 83 88 90 98 89 112 123 108 94 105 108 112 123 108 112 123 108 112 123 108 117 142 111
++111 119 127 112 123 108 121 143 132 138 126 108 117 142 111 111 119 127 121 143 132 121 143 132
++122 134 144 138 126 108 121 143 132 138 126 108 145 140 145 121 143 132 111 119 127 145 140 145
++138 126 108 121 143 132 121 143 132 121 143 132 145 140 145 146 151 137 121 143 132 146 151 137
++146 151 137 146 151 137 146 151 137 146 162 145 146 151 137 146 151 137 145 140 145 146 150 115
++145 140 145 121 143 132 141 116 139 121 143 132 112 123 108 111 119 127 112 123 108 112 123 108
++94 105 108 90 98 89 88 83 88 75 81 69 75 73 58 65 63 61 59 55 55 55 55 48
++52 55 48 51 49 42 47 47 21 51 49 42 47 49 42 51 49 42 51 49 42 51 49 42
++51 49 42 51 49 42 51 49 42 51 49 42 55 55 48 55 55 48 64 70 48 64 70 48
++75 77 62 75 81 69 75 81 76 90 98 89 90 98 89 90 98 89 112 123 108 112 123 108
++111 119 127 138 126 108 121 143 132 121 143 132 146 151 137 146 151 137 145 140 145 146 151 137
++146 162 145 166 156 164 146 162 145 150 171 159 166 156 164 146 162 145 166 156 164 146 162 145
++166 156 164 146 162 145 146 162 145 150 144 154 146 151 137 146 151 137 146 151 137 146 151 137
++145 140 145 121 143 132 141 116 139 121 143 132 121 143 132 138 126 108 111 119 127 111 119 127
++111 119 127 112 123 108 112 123 108 112 123 108 112 123 108 112 123 108 112 123 108 94 105 108
++112 123 108 94 105 108 98 113 84 94 105 108 98 113 84 112 96 108 94 105 108 98 113 84
++95 91 100 98 113 84 112 96 108 98 113 84 94 105 108 98 113 84 94 105 108 112 123 108
++94 105 108 112 123 108 112 96 108 112 123 108 95 119 107 112 123 108 112 96 108 112 123 108
++94 105 108 112 123 108 94 105 108 94 105 108 94 105 108 94 105 108 78 98 90 90 98 89
++78 98 90 78 98 90 78 98 90 75 81 90 60 81 83 59 69 70 53 63 61 45 57 61
++35 47 50 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 29 34 50
++32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 32 40 58
++32 40 58 32 40 58 32 40 58 32 40 58 32 40 58 43 42 50 32 40 58 57 43 64
++43 42 50 57 43 64 57 43 51 57 43 64 57 43 51 57 43 51 76 44 53 76 44 53
++88 44 51 88 44 51 101 60 73 102 33 26 120 63 71 88 44 51 120 63 71 122 49 24
++120 63 71 122 49 24 120 63 71 122 49 24 120 63 71 122 49 24 122 49 24 167 63 71
++122 49 24 167 63 71 122 49 24 167 63 71 161 55 23 167 63 71 122 49 24 167 63 71
++122 49 24 161 55 23 167 63 71 161 55 23 161 55 23 122 49 24 167 63 71 122 49 24
++167 63 71 122 49 24 167 63 71 122 49 24 167 63 71 161 55 23 167 63 71 120 63 71
++102 33 26 76 18 19 26 12 13 13 4 7 13 4 7 17 12 17 13 4 7 7 12 13
++3 4 9 13 4 7 3 4 9 3 3 1 13 4 7 3 3 1 3 4 9 3 3 1
++3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 14 16 17 14 16 17 7 12 13 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 23 10 10 55 39 18 101 83 74 157 148 53
++168 102 88 177 171 115 176 103 41 157 148 53 176 103 41 176 103 41 157 148 53 176 103 41
++157 148 53 176 103 41 176 103 41 157 148 53 176 103 41 176 103 41 117 112 45 176 103 41
++176 103 41 117 112 45 176 103 41 176 103 41 117 112 45 176 103 41 101 83 74 176 103 41
++117 112 45 120 63 71 117 112 45 101 83 74 101 74 26 101 83 74 88 73 62 88 73 62
++88 73 62 75 63 62 75 72 67 65 63 61 63 59 71 54 57 61 46 59 71 46 59 71
++45 57 61 34 42 77 45 57 61 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77 34 42 77
++34 42 77 34 42 77 42 60 86 42 60 86 61 78 101 61 78 101 61 78 101 77 91 115
++61 78 101 75 81 90 75 81 90 60 81 83 63 59 71 59 69 70 53 63 61 53 63 61
++59 55 55 59 55 55 65 55 54 63 55 45 63 55 45 75 73 36 63 55 45 75 73 36
++88 73 31 88 73 62 88 73 31 88 73 62 80 96 46 101 83 74 99 93 84 117 99 86
++117 99 86 112 123 108 112 123 108 138 126 108 138 126 108 145 140 145 121 143 132 146 151 137
++126 147 144 145 140 145 129 144 153 148 160 159 150 144 154 148 160 159 131 144 168 148 160 159
++131 144 168 148 160 159 148 160 159 148 160 159 148 160 159 150 168 183 148 160 159 148 160 159
++148 160 159 148 160 159 150 144 154 148 160 159 146 162 145 129 144 153 145 140 145 121 143 132
++111 119 127 95 119 107 94 105 108 94 105 108 75 81 90 75 81 82 75 81 82 75 81 82
++77 90 100 95 91 100 112 123 108 111 119 127 121 143 132 122 134 144 126 147 144 150 144 154
++148 160 159 148 160 159 148 160 159 150 168 183 148 160 159 150 168 183 166 156 164 150 168 183
++150 168 183 148 160 159 166 156 164 129 144 153 111 119 127 119 117 138 150 168 183 185 202 202
++194 199 226 194 199 226 194 199 226 194 199 226 208 221 247 201 216 228 208 221 247 201 216 228
++226 221 247 201 216 228 208 221 247 226 221 247 226 221 247 226 221 247 226 221 247 226 221 247
++226 221 247 226 221 247 208 221 247 232 215 228 221 238 247 226 221 247 221 238 247 226 221 247
++226 221 247 231 239 247 226 221 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 226 221 247 221 238 247 221 238 247 208 221 247 221 238 247 208 221 247
++208 221 247 226 221 247 208 221 247 208 221 247 194 199 226 166 174 181 150 168 183 150 147 171
++150 168 183 148 160 159 150 168 183 148 160 159 148 160 159 150 168 183 148 160 159 150 168 183
++148 160 159 150 168 183 150 171 159 166 156 164 150 168 183 150 168 183 166 174 181 166 174 181
++166 180 164 150 168 183 166 174 181 150 168 183 166 180 164 150 168 183 148 160 159 150 168 183
++148 160 159 148 160 159 148 160 159 131 144 168 129 144 153 129 144 153 122 134 144 122 134 144
++111 122 142 111 122 142 98 121 131 95 108 128 95 108 128 77 91 115 61 78 101 61 78 101
++61 78 101 61 78 101 61 78 101 61 78 101 61 78 101 77 91 115 77 91 115 77 91 115
++95 108 128 95 108 128 95 108 128 98 121 131 98 121 131 98 121 131 111 122 142 122 134 144
++111 122 142 122 134 144 122 134 144 122 134 144 129 144 153 129 144 153 129 144 153 129 144 153
++129 144 153 131 144 168 148 160 159 150 144 154 148 160 159 131 144 168 148 160 159 148 160 159
++131 144 168 148 160 159 148 160 159 150 147 171 148 160 159 150 168 183 150 171 159 150 168 183
++166 156 164 150 168 183 166 174 181 150 168 183 166 180 164 150 168 183 166 156 164 150 168 183
++166 180 164 150 168 183 148 160 159 150 168 183 148 160 159 131 144 168 148 160 159 129 144 153
++129 144 153 122 134 144 122 134 144 111 122 142 111 122 142 98 121 131 95 108 128 95 108 128
++77 91 115 77 90 100 61 78 101 61 78 101 60 63 87 42 60 86 34 42 77 45 57 61
++34 42 77 34 42 77 32 40 58 34 42 77 46 59 71 42 60 86 60 63 87 75 81 90
++61 78 101 77 90 100 77 91 115 94 105 108 98 121 131 111 119 127 111 119 127 121 143 132
++122 134 144 126 147 144 129 144 153 129 144 153 131 144 168 148 160 159 148 160 159 148 160 159
++166 156 164 150 168 183 166 174 181 150 171 159 166 156 164 150 168 183 150 171 159 150 168 183
++148 160 159 148 160 159 150 147 171 129 144 153 148 160 159 148 160 159 129 144 153 145 140 145
++129 144 153 122 134 144 122 134 144 111 122 142 111 122 142 98 121 131 95 108 128 95 108 128
++95 95 116 77 91 115 77 91 115 77 91 115 61 78 101 61 78 101 60 63 87 42 60 86
++46 59 71 34 42 77 34 42 77 32 40 58 32 40 58 32 40 58 32 40 58 34 42 77
++46 59 71 42 60 86 60 63 87 60 63 87 61 78 101 77 90 100 77 91 115 95 95 116
++94 105 108 111 119 127 98 121 131 111 119 127 111 122 142 122 134 144 122 134 144 129 144 153
++129 144 153 148 160 159 129 144 153 148 160 159 131 144 168 148 160 159 148 160 159 148 160 159
++129 144 153 148 160 159 148 160 159 129 144 153 146 162 145 129 144 153 126 147 144 126 147 144
++122 134 144 122 134 144 122 134 144 121 143 132 111 122 142 111 122 142 98 121 131 111 122 142
++111 119 127 98 121 131 111 119 127 98 121 131 98 121 131 98 121 131 95 108 128 98 121 131
++98 121 131 95 108 128 98 121 131 95 108 128 98 121 131 98 121 131 98 121 131 98 121 131
++98 121 131 98 121 131 98 121 131 95 108 128 95 108 128 95 108 128 94 105 108 77 91 115
++77 90 100 77 91 115 77 90 100 61 78 101 61 78 101 60 63 87 60 63 87 46 59 71
++34 42 77 45 57 61 34 42 77 32 40 58 32 40 58 29 34 50 32 40 58 29 34 50
++32 40 58 32 40 58 32 40 58 34 42 77 46 59 71 60 63 87 60 63 87 77 90 100
++77 90 100 94 105 108 98 121 131 111 119 127 111 122 142 122 134 144 122 134 144 126 147 144
++126 147 144 145 140 145 129 144 153 148 160 159 129 144 153 148 160 159 148 160 159 150 144 154
++148 160 159 148 160 159 129 144 153 148 160 159 145 140 145 129 144 153 126 147 144 122 134 144
++121 143 132 111 119 127 98 121 131 94 105 108 95 95 116 77 90 100 75 81 90 60 63 87
++46 59 71 46 59 71 32 40 58 32 40 58 32 40 58 29 34 50 29 34 50 24 30 43
++29 34 50 29 34 50 24 30 43 29 34 50 29 34 50 24 30 43 29 34 50 24 30 43
++29 34 50 29 34 50 24 30 43 29 34 50 29 34 50 24 30 43 29 34 50 29 34 50
++
++90 98 89 90 98 89 94 105 108 112 123 108 112 123 108 112 123 108 111 119 127 112 123 108
++138 126 108 121 143 132 111 119 127 121 143 132 111 119 127 138 126 108 121 143 132 138 126 108
++121 143 132 121 143 132 138 126 108 121 143 132 121 143 132 138 126 108 121 143 132 138 126 108
++126 147 144 146 151 137 138 126 108 121 143 132 146 150 115 122 134 144 146 151 137 146 151 137
++146 151 137 146 151 137 145 140 145 146 151 137 145 140 145 146 151 137 126 147 144 146 151 137
++121 143 132 146 150 115 121 143 132 138 126 108 111 119 127 138 126 108 94 105 108 112 96 108
++90 98 89 99 93 84 88 83 74 75 72 67 65 63 61 64 70 48 64 70 48 55 55 48
++52 55 48 51 49 42 50 61 48 50 61 48 63 55 45 49 74 23 51 49 42 50 61 48
++49 74 23 63 55 45 50 61 48 50 61 48 63 55 45 51 73 47 64 70 48 65 63 61
++75 77 62 75 81 69 87 99 72 88 83 74 90 98 89 98 113 84 94 105 108 112 123 108
++112 123 108 112 123 108 117 142 111 138 126 108 121 143 132 121 143 132 146 151 137 146 151 137
++146 162 145 146 162 145 146 162 145 177 169 143 146 162 145 146 162 145 146 162 145 177 169 143
++146 162 145 146 162 145 146 151 137 146 162 145 146 151 137 145 140 145 146 151 137 121 143 132
++145 140 145 121 143 132 138 126 108 121 143 132 138 126 108 121 143 132 138 126 108 117 142 111
++112 123 108 112 123 108 112 123 108 112 123 108 112 123 108 94 105 108 98 113 84 112 123 108
++99 93 84 98 113 84 94 105 108 98 113 84 94 105 108 98 113 84 98 113 84 90 98 89
++98 113 84 90 98 89 98 113 84 90 98 89 98 113 84 94 105 108 98 113 84 112 96 108
++98 113 84 94 105 108 112 123 108 98 113 84 112 123 108 94 105 108 112 123 108 94 105 108
++98 113 84 94 105 108 98 113 84 94 105 108 90 98 89 90 98 89 90 98 89 90 98 89
++78 98 90 88 83 88 75 81 82 75 81 82 75 81 76 59 69 70 59 69 70 45 57 61
++45 57 61 43 55 48 35 47 50 35 47 50 32 40 58 35 47 50 35 47 50 35 47 50
++35 47 50 35 47 50 35 47 50 35 47 50 35 47 50 45 57 61 35 47 50 35 47 50
++45 57 61 35 47 50 35 47 50 35 47 50 43 42 50 45 57 61 45 57 61 45 57 61
++45 57 61 43 55 48 54 57 61 59 55 55 65 63 61 65 55 54 65 55 54 75 63 62
++75 56 53 75 56 53 88 44 51 88 44 51 88 44 51 120 63 71 88 44 51 120 63 71
++88 44 51 120 63 71 122 49 24 120 63 71 122 49 24 120 63 71 122 49 24 120 63 71
++122 49 24 167 63 71 122 49 24 120 63 71 161 55 23 120 63 71 161 55 23 122 49 24
++167 63 71 120 63 71 122 49 24 167 63 71 122 49 24 167 63 71 122 49 24 167 63 71
++122 49 24 161 55 23 167 63 71 122 49 24 120 63 71 120 63 71 120 63 71 122 49 24
++76 46 20 26 12 13 23 10 10 13 4 7 13 4 7 7 12 13 13 4 7 7 12 13
++13 4 7 3 3 1 13 4 7 3 4 9 3 3 1 3 4 9 3 3 1 3 4 9
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 4 9 14 16 17 23 20 24 17 12 17 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 13 4 7 34 30 15 101 74 26 117 112 45 157 148 53 168 102 88
++157 148 53 176 103 41 157 148 53 176 103 41 157 148 53 176 103 41 157 148 53 176 103 41
++157 148 53 176 103 41 157 148 53 176 103 41 157 148 53 176 103 41 157 148 53 176 103 41
++117 112 45 176 103 41 117 112 45 117 114 76 117 112 45 117 112 45 117 112 45 117 99 86
++117 112 45 120 63 71 117 112 45 120 63 71 101 83 74 88 73 62 88 73 62 88 73 62
++75 73 58 75 73 58 75 72 67 53 63 61 53 63 61 59 69 70 46 59 71 45 57 61
++46 59 71 45 57 61 45 57 61 46 59 71 46 59 71 46 59 71 34 42 77 46 59 71
++35 47 50 42 60 86 35 47 50 42 60 86 35 47 50 46 59 71 32 40 58 46 59 71
++46 59 71 46 59 71 42 60 86 60 81 83 60 81 83 61 78 101 61 78 101 75 81 90
++75 81 90 61 78 101 75 81 90 60 63 87 59 69 70 59 69 70 53 63 61 59 57 61
++50 61 48 59 55 55 55 55 48 55 55 48 63 55 45 60 49 42 63 55 45 60 49 42
++63 55 45 75 73 36 75 73 36 75 73 58 88 73 62 98 106 55 99 93 84 98 113 84
++112 123 108 138 126 108 112 123 108 121 143 132 121 143 132 121 143 132 145 140 145 146 151 137
++145 140 145 146 162 145 150 144 154 146 162 145 131 144 168 148 160 159 129 144 153 148 160 159
++148 160 159 148 160 159 131 144 168 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 148 160 159 148 160 159 129 144 153 145 140 145 126 147 144 122 134 144 121 143 132
++119 117 138 112 123 108 95 119 107 95 91 100 78 98 90 75 81 90 75 81 82 75 81 82
++90 98 89 94 105 108 111 119 127 111 119 127 121 143 132 122 134 144 145 140 145 126 147 144
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 150 171 159 150 171 159 148 160 159
++148 160 159 148 160 159 148 160 159 131 144 168 122 134 144 129 144 153 166 174 181 188 180 202
++194 199 226 194 199 226 201 216 228 208 221 247 194 199 226 226 221 247 201 216 228 226 221 247
++201 216 228 226 221 247 208 221 247 226 221 247 208 221 247 226 221 247 201 216 228 226 221 247
++226 221 247 226 221 247 226 221 247 221 238 247 226 221 247 221 238 247 208 221 247 208 221 247
++208 221 247 226 221 247 221 238 247 226 221 247 231 239 247 231 239 247 231 239 247 231 239 247
++231 239 247 221 238 247 221 238 247 226 221 247 208 221 247 221 238 247 208 221 247 208 221 247
++208 221 247 221 238 247 226 221 247 221 238 247 208 221 247 194 199 226 166 174 181 150 147 171
++148 160 159 150 168 183 148 160 159 148 160 159 150 168 183 148 160 159 148 160 159 150 168 183
++150 171 159 166 156 164 150 168 183 150 168 183 166 180 164 150 171 159 166 174 181 150 168 183
++166 174 181 166 180 164 150 168 183 166 180 164 150 168 183 150 171 159 148 160 159 148 160 159
++148 160 159 150 147 171 148 160 159 129 144 153 129 144 153 129 144 153 122 134 144 122 134 144
++111 122 142 111 122 142 95 108 128 95 108 128 77 91 115 77 91 115 61 78 101 61 78 101
++61 78 101 61 78 101 61 78 101 77 91 115 77 91 115 77 91 115 77 91 115 95 108 128
++95 108 128 95 108 128 98 121 131 98 121 131 111 122 142 111 122 142 121 143 132 111 122 142
++122 134 144 122 134 144 122 134 144 126 147 144 129 144 153 129 144 153 150 144 154 148 160 159
++129 144 153 148 160 159 129 144 153 148 160 159 129 144 153 148 160 159 150 144 154 129 144 153
++148 160 159 148 160 159 148 160 159 148 160 159 150 168 183 166 156 164 148 160 159 150 171 159
++150 168 183 150 171 159 166 174 181 150 171 159 166 174 181 150 171 159 166 174 181 150 168 183
++150 171 159 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 129 144 153
++126 147 144 122 134 144 111 122 142 111 119 127 111 119 127 98 121 131 94 105 108 77 91 115
++77 91 115 77 91 115 61 78 101 60 63 87 42 60 86 42 60 86 46 59 71 34 42 77
++34 42 77 45 57 61 34 42 77 32 40 58 46 59 71 42 60 86 60 63 87 61 78 101
++61 78 101 77 90 100 95 95 116 95 108 128 95 108 128 98 121 131 111 119 127 122 134 144
++111 122 142 122 134 144 126 147 144 129 144 153 148 160 159 129 144 153 148 160 159 150 168 183
++148 160 159 150 168 183 148 160 159 166 174 181 150 171 159 150 168 183 166 156 164 150 171 159
++150 168 183 148 160 159 148 160 159 148 160 159 129 144 153 150 144 154 129 144 153 129 144 153
++129 144 153 122 134 144 122 134 144 122 134 144 111 122 142 111 119 127 95 108 128 95 108 128
++95 108 128 77 91 115 77 91 115 77 90 100 61 78 101 60 63 87 60 63 87 60 63 87
++42 60 86 46 59 71 46 59 71 32 40 58 32 40 58 32 40 58 32 40 58 34 42 77
++46 59 71 46 59 71 60 63 87 60 63 87 61 78 101 75 81 90 77 91 115 77 91 115
++95 108 128 95 108 128 111 119 127 111 119 127 122 134 144 122 134 144 122 134 144 122 134 144
++129 144 153 129 144 153 129 144 153 148 160 159 129 144 153 148 160 159 129 144 153 148 160 159
++148 160 159 129 144 153 148 160 159 129 144 153 129 144 153 129 144 153 145 140 145 129 144 153
++122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 121 143 132 122 134 144 111 122 142
++111 119 127 111 122 142 98 121 131 111 119 127 111 119 127 111 119 127 111 119 127 111 122 142
++111 119 127 111 122 142 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127 111 119 127
++111 119 127 111 119 127 111 119 127 98 121 131 98 121 131 95 108 128 95 108 128 94 105 108
++77 91 115 77 91 115 77 90 100 61 78 101 61 78 101 60 63 87 42 60 86 46 59 71
++46 59 71 32 40 58 34 42 77 32 40 58 32 40 58 32 40 58 29 34 50 29 34 50
++32 40 58 29 34 50 32 40 58 32 40 58 46 59 71 60 63 87 61 78 101 75 81 90
++77 91 115 94 105 108 95 108 128 111 119 127 111 119 127 121 143 132 122 134 144 126 147 144
++129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 131 144 168 148 160 159 148 160 159
++131 144 168 148 160 159 148 160 159 129 144 153 129 144 153 129 144 153 126 147 144 122 134 144
++111 119 127 111 119 127 98 121 131 94 105 108 95 95 116 77 90 100 61 78 101 60 63 87
++46 59 71 46 59 71 32 40 58 32 40 58 32 40 58 29 34 50 24 30 43 29 34 50
++29 34 50 24 30 43 29 34 50 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50
++24 30 43 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50
++
++90 98 89 90 98 89 117 127 86 112 96 108 112 123 108 112 123 108 112 123 108 117 142 111
++111 119 127 117 142 111 112 123 108 117 142 111 138 126 108 121 143 132 117 142 111 111 119 127
++117 142 111 138 126 108 121 143 132 121 143 132 138 126 108 121 143 132 138 126 108 121 143 132
++138 126 108 121 143 132 121 143 132 121 143 132 138 126 108 121 143 132 146 151 137 121 143 132
++146 151 137 126 147 144 146 151 137 146 151 137 146 151 137 146 151 137 121 143 132 146 150 115
++141 116 139 121 143 132 141 116 139 121 143 132 138 126 108 112 123 108 112 123 108 95 119 107
++90 98 89 88 83 88 75 81 76 75 77 62 64 70 48 59 55 55 63 55 45 50 61 48
++63 55 45 50 61 48 64 70 48 63 55 45 64 70 48 63 55 45 64 70 48 63 55 45
++50 61 48 63 55 45 50 61 48 63 55 45 64 70 48 50 61 48 64 70 48 59 79 61
++59 79 61 75 81 69 75 81 76 87 99 72 90 98 89 99 93 84 98 113 84 98 113 84
++112 123 108 112 123 108 121 143 132 138 126 108 121 143 132 146 151 137 121 143 132 146 151 137
++146 151 137 146 151 137 146 162 145 150 144 154 146 162 145 146 162 145 146 162 145 146 162 145
++146 162 145 150 144 154 146 162 145 146 151 137 146 151 137 146 151 137 145 140 145 146 151 137
++121 143 132 146 150 115 121 143 132 121 143 132 121 143 132 117 142 111 111 119 127 121 143 132
++112 123 108 112 123 108 112 123 108 112 123 108 112 123 108 112 123 108 117 99 86 95 119 107
++98 113 84 94 105 108 98 113 84 90 98 89 98 113 84 98 113 84 95 91 100 98 113 84
++90 98 89 98 113 84 95 91 100 98 113 84 90 98 89 98 113 84 98 113 84 94 105 108
++117 99 86 112 123 108 98 113 84 94 105 108 112 123 108 98 113 84 95 119 107 98 113 84
++112 123 108 94 105 108 98 113 84 94 105 108 98 113 84 94 105 108 90 98 89 90 98 89
++90 98 89 78 98 90 78 98 90 75 99 72 75 81 76 60 82 70 59 69 70 53 63 61
++45 57 61 45 57 61 45 57 61 43 55 48 45 57 61 35 47 50 35 47 50 45 57 61
++35 47 50 45 57 61 43 55 48 45 57 61 45 57 61 45 57 61 45 57 61 45 57 61
++45 57 61 45 57 61 45 57 61 45 57 61 45 57 61 45 57 61 43 55 48 45 57 61
++50 61 48 45 57 61 53 63 61 50 61 48 65 63 61 63 55 51 65 63 61 65 55 54
++75 73 58 75 56 53 75 73 58 88 73 31 88 73 62 101 74 26 88 44 51 120 63 71
++101 74 26 120 63 71 101 74 26 120 63 71 120 63 71 122 49 24 120 63 71 161 55 23
++120 63 71 122 49 24 120 63 71 161 55 23 120 63 71 161 55 23 120 63 71 167 63 71
++122 49 24 167 63 71 161 55 23 167 63 71 122 49 24 167 63 71 161 55 23 122 49 24
++167 63 71 120 63 71 122 49 24 167 63 71 122 49 24 161 55 23 120 63 71 76 46 20
++34 30 15 23 10 10 13 4 7 7 12 13 13 4 7 13 4 7 3 4 9 3 4 9
++3 3 1 3 4 9 3 3 1 13 4 7 3 3 1 3 4 9 3 3 1 3 4 9
++3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 7 12 13 17 12 17 6 15 6 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 28 13 18 76 46 20 101 74 26 157 148 53 176 103 41 157 148 53 157 148 53
++176 103 41 157 148 53 176 103 41 157 148 53 176 103 41 157 148 53 176 103 41 157 148 53
++176 103 41 157 148 53 176 103 41 157 148 53 176 103 41 117 112 45 176 103 41 117 112 45
++157 148 53 117 112 45 176 103 41 117 112 45 168 102 88 117 112 45 167 63 71 117 112 45
++120 63 71 117 112 45 101 83 74 88 73 31 98 106 55 101 83 74 81 96 56 88 73 62
++75 77 62 75 73 58 75 72 67 65 63 61 59 69 70 59 69 70 53 63 61 46 59 71
++45 57 61 46 59 71 46 59 71 46 59 71 46 59 71 45 57 61 42 60 86 45 57 61
++42 60 86 45 57 61 42 60 86 45 57 61 42 60 86 46 59 71 42 60 86 46 59 71
++46 59 71 46 59 71 46 59 71 60 81 83 61 78 101 75 81 90 77 90 100 61 78 101
++77 90 100 75 81 90 75 81 90 75 81 82 59 69 70 59 69 70 53 63 61 53 63 61
++65 63 61 50 61 48 55 55 48 51 49 42 52 55 48 47 47 21 60 49 42 47 47 21
++47 47 21 60 49 42 63 55 45 75 73 36 75 73 36 88 83 74 99 93 84 117 99 86
++117 99 86 112 123 108 112 123 108 138 126 108 145 140 145 138 126 108 146 151 137 145 140 145
++146 162 145 145 140 145 148 160 159 146 162 145 148 160 159 148 160 159 146 162 145 148 160 159
++129 144 153 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 148 160 159 129 144 153 146 162 145 145 140 145 126 147 144 145 140 145 121 143 132
++121 143 132 111 119 127 95 119 107 94 105 108 90 98 89 75 81 82 75 81 82 88 83 88
++90 98 89 95 91 100 112 123 108 111 119 127 138 126 108 121 143 132 126 147 144 126 147 144
++150 144 154 129 144 153 148 160 159 148 160 159 148 160 159 166 156 164 148 160 159 150 168 183
++150 147 171 148 160 159 148 160 159 148 160 159 129 144 153 150 147 171 166 176 200 185 202 202
++194 199 226 194 199 226 194 199 226 201 216 228 194 199 226 208 221 247 201 216 228 208 221 247
++226 221 247 201 216 228 208 221 247 201 216 228 226 221 247 226 221 247 231 239 247 226 221 247
++221 238 247 226 221 247 221 238 247 226 221 247 194 199 226 194 199 226 188 180 202 166 176 200
++188 180 202 194 199 226 226 221 247 231 239 247 221 238 247 231 239 247 231 239 247 221 238 247
++231 239 247 221 238 247 226 221 247 221 238 247 221 238 247 208 221 247 208 221 247 208 221 247
++208 221 247 208 221 247 208 221 247 226 221 247 226 221 247 208 221 247 185 202 202 166 174 181
++150 168 183 150 147 171 148 160 159 150 168 183 148 160 159 148 160 159 150 171 159 166 156 164
++150 171 159 150 168 183 166 180 164 150 171 159 150 168 183 166 174 181 150 171 159 166 174 181
++166 180 164 150 168 183 166 180 164 150 168 183 166 174 181 148 160 159 150 168 183 148 160 159
++148 160 159 148 160 159 129 144 153 129 144 153 129 144 153 122 134 144 122 134 144 122 134 144
++111 122 142 98 121 131 95 108 128 95 108 128 77 91 115 77 91 115 77 91 115 77 90 100
++61 78 101 61 78 101 61 78 101 77 90 100 77 91 115 77 91 115 94 105 108 95 108 128
++95 108 128 98 121 131 98 121 131 111 119 127 111 122 142 122 134 144 111 122 142 122 134 144
++126 147 144 126 147 144 126 147 144 129 144 153 129 144 153 129 144 153 148 160 159 129 144 153
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 148 160 159 150 168 183 148 160 159 148 160 159 150 171 159 150 171 159 150 168 183
++166 156 164 166 156 164 150 168 183 166 156 164 150 168 183 166 156 164 150 168 183 150 171 159
++166 156 164 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 129 144 153 129 144 153
++122 134 144 122 134 144 121 143 132 111 122 142 98 121 131 95 108 128 95 108 128 94 105 108
++77 91 115 61 78 101 61 78 101 60 81 83 42 60 86 42 60 86 34 42 77 46 59 71
++34 42 77 34 42 77 34 42 77 34 42 77 46 59 71 46 59 71 60 63 87 61 78 101
++77 90 100 77 90 100 77 91 115 94 105 108 95 119 107 98 121 131 111 119 127 111 119 127
++122 134 144 121 143 132 145 140 145 126 147 144 129 144 153 148 160 159 148 160 159 148 160 159
++150 171 159 166 156 164 148 160 159 150 168 183 166 156 164 150 171 159 148 160 159 150 168 183
++148 160 159 150 147 171 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 150 144 154
++129 144 153 129 144 153 122 134 144 121 143 132 111 122 142 111 119 127 98 121 131 98 121 131
++95 95 116 94 105 108 77 91 115 77 90 100 61 78 101 61 78 101 61 78 101 60 63 87
++46 59 71 34 42 77 45 57 61 34 42 77 32 40 58 34 42 77 32 40 58 35 47 50
++34 42 77 46 59 71 42 60 86 60 63 87 75 81 90 61 78 101 77 90 100 77 90 100
++94 105 108 95 108 128 111 119 127 98 121 131 111 119 127 111 119 127 122 134 144 122 134 144
++122 134 144 129 144 153 129 144 153 129 144 153 148 160 159 129 144 153 148 160 159 129 144 153
++148 160 159 129 144 153 148 160 159 129 144 153 146 162 145 150 144 154 129 144 153 126 147 144
++129 144 153 126 147 144 122 134 144 121 143 132 122 134 144 122 134 144 122 134 144 122 134 144
++122 134 144 121 143 132 111 122 142 122 134 144 111 122 142 111 122 142 111 122 142 111 122 142
++111 122 142 111 122 142 111 122 142 111 122 142 111 122 142 111 122 142 111 122 142 121 143 132
++111 122 142 111 122 142 111 122 142 111 119 127 111 119 127 98 121 131 94 105 108 95 108 128
++94 105 108 77 91 115 77 91 115 77 90 100 61 78 101 60 81 83 60 63 87 46 59 71
++34 42 77 46 59 71 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58 29 34 50
++29 34 50 32 40 58 32 40 58 34 42 77 46 59 71 60 63 87 61 78 101 77 90 100
++95 95 116 94 105 108 111 119 127 111 119 127 111 122 142 122 134 144 122 134 144 126 147 144
++146 151 137 129 144 153 148 160 159 129 144 153 150 144 154 148 160 159 131 144 168 148 160 159
++148 160 159 148 160 159 150 144 154 148 160 159 129 144 153 145 140 145 126 147 144 122 134 144
++111 119 127 111 119 127 95 108 128 94 105 108 77 91 115 77 90 100 75 81 90 60 63 87
++46 59 71 45 57 61 43 42 50 32 40 58 29 34 50 24 30 43 29 34 50 24 30 43
++24 30 43 29 34 50 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50 29 34 50
++29 34 50 24 30 43 29 34 50 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50
++
++90 98 89 98 113 84 112 123 108 95 119 107 112 123 108 112 123 108 112 123 108 138 126 108
++117 142 111 111 119 127 138 126 108 111 119 127 117 142 111 112 123 108 138 126 108 121 143 132
++112 123 108 121 143 132 112 123 108 138 126 108 121 143 132 121 143 132 138 126 108 121 143 132
++121 143 132 138 126 108 121 143 132 138 126 108 126 147 144 146 150 115 121 143 132 146 150 115
++121 143 132 146 151 137 146 151 137 126 147 144 146 151 137 121 143 132 146 151 137 121 143 132
++138 126 108 121 143 132 138 126 108 121 143 132 112 123 108 112 123 108 112 123 108 99 93 84
++90 98 89 88 83 74 75 81 69 75 77 62 53 63 61 64 70 48 64 70 48 55 55 48
++64 70 48 50 61 48 64 70 48 64 70 48 64 70 48 55 55 48 64 70 48 64 70 48
++64 70 48 64 70 48 64 70 48 64 70 48 50 61 48 64 70 48 64 70 48 64 70 48
++75 77 62 59 79 61 75 99 72 88 83 74 90 98 89 98 113 84 94 105 108 98 113 84
++112 123 108 112 123 108 112 123 108 112 123 108 121 143 132 138 126 108 121 143 132 146 151 137
++146 151 137 146 151 137 146 151 137 146 151 137 146 162 145 146 151 137 146 151 137 146 162 145
++146 151 137 146 162 145 146 151 137 146 162 145 146 151 137 146 151 137 126 147 144 146 151 137
++141 116 139 121 143 132 138 126 108 121 143 132 138 126 108 112 123 108 138 126 108 112 123 108
++138 126 108 112 123 108 112 123 108 112 123 108 98 113 84 95 119 107 98 113 84 95 119 107
++117 99 86 98 113 84 98 113 84 94 105 108 98 113 84 90 98 89 98 113 84 90 98 89
++90 98 89 98 113 84 90 98 89 98 113 84 90 98 89 98 113 84 94 105 108 98 113 84
++94 105 108 98 113 84 112 123 108 98 113 84 95 119 107 112 96 108 98 113 84 94 105 108
++98 113 84 94 105 108 98 113 84 94 105 108 98 113 84 94 105 108 98 113 84 90 98 89
++78 98 90 90 98 89 88 83 74 75 81 82 75 81 76 75 81 76 60 82 70 53 63 61
++53 63 61 43 55 48 43 55 48 45 57 61 35 47 50 45 57 61 45 57 61 45 57 61
++45 57 61 45 57 61 43 55 48 45 57 61 45 57 61 45 57 61 45 57 61 43 55 48
++45 57 61 45 57 61 59 79 61 45 57 61 53 63 61 45 57 61 53 63 61 45 57 61
++50 61 48 53 63 61 53 63 61 59 55 55 65 63 61 64 70 48 65 63 61 75 73 58
++75 56 53 75 73 58 88 73 62 75 56 53 88 73 62 88 73 62 101 74 26 101 60 73
++101 74 26 120 63 71 120 63 71 101 74 26 120 63 71 120 63 71 117 112 45 120 63 71
++161 55 23 120 63 71 161 55 23 120 63 71 161 55 23 120 63 71 161 55 23 120 63 71
++161 55 23 120 63 71 120 63 71 176 103 41 120 63 71 161 55 23 120 63 71 161 55 23
++120 63 71 161 55 23 120 63 71 122 49 24 120 63 71 117 112 45 120 63 71 76 46 20
++23 10 10 13 4 7 13 4 7 13 4 7 3 3 1 3 4 9 13 4 7 3 3 1
++3 4 9 13 4 7 3 3 1 3 4 9 3 3 1 3 4 9 3 3 1 3 3 1
++3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++26 25 15 75 73 36 117 114 76 146 150 115 157 148 53 157 148 53 176 103 41 176 103 41
++157 148 53 176 103 41 157 148 53 176 103 41 157 148 53 176 103 41 157 148 53 176 103 41
++157 148 53 176 103 41 157 148 53 117 112 45 176 103 41 157 148 53 117 112 45 176 103 41
++117 112 45 176 103 41 117 112 45 176 103 41 117 112 45 117 112 45 117 114 76 117 112 45
++117 99 86 98 106 55 120 63 71 98 106 55 101 83 74 88 73 62 88 73 62 88 83 74
++75 77 62 75 77 62 59 69 70 60 82 70 59 69 70 53 63 61 59 69 70 46 59 71
++46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71
++46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 46 59 71
++42 60 86 60 82 70 60 81 83 60 81 83 60 81 83 77 90 100 77 90 100 77 90 100
++77 90 100 75 81 90 60 81 83 60 81 83 60 82 70 59 69 70 53 63 61 64 70 48
++53 63 61 55 55 48 55 55 48 55 55 48 51 49 42 51 49 42 49 74 23 55 39 18
++60 49 42 47 47 21 63 55 45 75 73 36 75 73 58 88 73 62 99 93 84 98 113 84
++112 123 108 112 123 108 138 126 108 117 142 111 138 126 108 126 147 144 145 140 145 146 151 137
++126 147 144 148 160 159 146 162 145 150 144 154 148 160 159 129 144 153 129 144 153 146 162 145
++129 144 153 148 160 159 129 144 153 129 144 153 148 160 159 129 144 153 148 160 159 148 160 159
++148 160 159 129 144 153 146 162 145 129 144 153 126 147 144 145 140 145 121 143 132 111 119 127
++112 123 108 112 123 108 94 105 108 94 105 108 90 98 89 75 81 90 75 81 82 78 98 90
++90 98 89 94 105 108 94 105 108 111 119 127 121 143 132 122 134 144 145 140 145 126 147 144
++146 162 145 129 144 153 148 160 159 150 144 154 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 148 160 159 148 160 159 129 144 153 148 160 159 148 160 159 166 174 181 166 176 200
++194 199 226 194 199 226 194 199 226 201 216 228 194 199 226 208 221 247 194 199 226 226 221 247
++201 216 228 208 221 247 226 221 247 226 221 247 226 221 247 221 238 247 226 221 247 226 221 247
++226 221 247 226 221 247 208 221 247 166 176 200 150 147 171 150 147 171 150 168 183 150 168 183
++150 168 183 188 180 202 208 221 247 226 221 247 221 238 247 226 221 247 231 239 247 231 239 247
++226 221 247 221 238 247 208 221 247 221 238 247 208 221 247 226 221 247 208 221 247 208 221 247
++226 221 247 208 221 247 226 221 247 208 221 247 221 238 247 226 221 247 201 216 228 188 180 202
++150 168 183 148 160 159 148 160 159 148 160 159 150 168 183 148 160 159 150 168 183 150 171 159
++150 168 183 150 171 159 150 168 183 166 156 164 166 174 181 150 171 159 166 174 181 166 174 181
++150 171 159 150 168 183 150 171 159 150 168 183 150 171 159 148 160 159 148 160 159 148 160 159
++148 160 159 131 144 168 146 162 145 129 144 153 129 144 153 126 147 144 122 134 144 111 122 142
++98 121 131 111 119 127 95 108 128 94 105 108 77 91 115 77 91 115 77 90 100 61 78 101
++77 91 115 77 90 100 77 91 115 77 91 115 77 91 115 94 105 108 95 108 128 95 108 128
++98 121 131 111 119 127 111 122 142 111 122 142 121 143 132 111 122 142 121 143 132 126 147 144
++122 134 144 129 144 153 129 144 153 129 144 153 148 160 159 148 160 159 131 144 168 148 160 159
++148 160 159 148 160 159 150 147 171 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159
++150 147 171 148 160 159 148 160 159 148 160 159 150 168 183 166 156 164 150 171 159 166 156 164
++150 168 183 150 171 159 166 174 181 150 171 159 150 168 183 150 171 159 148 160 159 166 156 164
++150 168 183 148 160 159 148 160 159 129 144 153 129 144 153 129 144 153 129 144 153 126 147 144
++122 134 144 122 134 144 111 122 142 111 119 127 98 121 131 95 108 128 94 105 108 77 91 115
++77 91 115 77 90 100 61 78 101 60 63 87 42 60 86 46 59 71 46 59 71 34 42 77
++46 59 71 34 42 77 45 57 61 34 42 77 46 59 71 42 60 86 60 63 87 60 81 83
++61 78 101 77 90 100 77 91 115 95 108 128 95 108 128 111 119 127 98 121 131 121 143 132
++122 134 144 122 134 144 126 147 144 129 144 153 129 144 153 129 144 153 148 160 159 148 160 159
++150 147 171 148 160 159 150 168 183 148 160 159 150 171 159 150 168 183 166 156 164 150 171 159
++166 156 164 150 171 159 148 160 159 150 147 171 148 160 159 129 144 153 131 144 168 129 144 153
++129 144 153 126 147 144 122 134 144 122 134 144 111 122 142 111 119 127 111 119 127 95 108 128
++95 108 128 77 91 115 95 95 116 77 91 115 77 90 100 61 78 101 60 63 87 60 81 83
++42 60 86 46 59 71 46 59 71 32 40 58 45 57 61 32 40 58 32 40 58 46 59 71
++32 40 58 46 59 71 46 59 71 60 63 87 60 63 87 61 78 101 77 90 100 77 90 100
++77 91 115 94 105 108 95 108 128 111 119 127 111 122 142 111 119 127 122 134 144 122 134 144
++122 134 144 122 134 144 129 144 153 129 144 153 129 144 153 129 144 153 129 144 153 148 160 159
++129 144 153 148 160 159 129 144 153 148 160 159 129 144 153 148 160 159 129 144 153 150 144 154
++129 144 153 129 144 153 129 144 153 122 134 144 126 147 144 122 134 144 121 143 132 122 134 144
++122 134 144 111 122 142 121 143 132 111 122 142 121 143 132 122 134 144 121 143 132 111 122 142
++122 134 144 122 134 144 111 122 142 121 143 132 111 122 142 121 143 132 122 134 144 111 122 142
++121 143 132 111 122 142 111 119 127 111 119 127 98 121 131 98 121 131 95 108 128 94 105 108
++95 95 116 77 91 115 77 91 115 77 90 100 61 78 101 61 78 101 60 63 87 42 60 86
++46 59 71 46 59 71 32 40 58 32 40 58 32 40 58 32 40 58 29 34 50 29 34 50
++32 40 58 32 40 58 34 42 77 45 57 61 60 63 87 60 63 87 75 81 90 77 91 115
++95 95 116 95 108 128 111 119 127 98 121 131 121 143 132 122 134 144 121 143 132 126 147 144
++129 144 153 129 144 153 150 144 154 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159
++131 144 168 148 160 159 129 144 153 129 144 153 145 140 145 126 147 144 122 134 144 122 134 144
++111 119 127 111 119 127 95 119 107 95 95 116 77 91 115 75 81 90 60 63 87 60 63 87
++46 59 71 32 40 58 32 40 58 32 40 58 29 34 50 29 34 50 24 30 43 29 34 50
++29 34 50 29 34 50 29 34 50 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50
++24 30 43 29 34 50 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50 24 30 43
++
++90 98 89 94 105 108 98 113 84 112 96 108 112 123 108 112 123 108 112 123 108 112 123 108
++138 126 108 112 123 108 112 123 108 112 123 108 117 142 111 112 123 108 117 142 111 112 123 108
++112 123 108 117 99 86 95 119 107 112 123 108 138 126 108 117 142 111 121 143 132 138 126 108
++117 142 111 117 142 111 138 126 108 117 142 111 121 143 132 138 126 108 121 143 132 138 126 108
++121 143 132 146 150 115 121 143 132 146 150 115 145 140 145 146 150 115 121 143 132 138 126 108
++121 143 132 138 126 108 121 143 132 138 126 108 112 123 108 112 123 108 94 105 108 90 98 89
++90 98 89 87 99 72 75 81 69 59 79 61 64 70 48 64 70 48 50 61 48 64 70 48
++64 70 48 64 70 48 64 70 48 64 70 48 64 70 48 64 70 48 64 70 48 64 70 48
++64 70 48 64 70 48 64 70 48 64 70 48 64 70 48 64 70 48 66 86 47 59 79 61
++75 77 62 75 77 62 75 81 69 75 99 72 87 99 72 90 98 89 98 113 84 98 113 84
++95 119 107 98 113 84 112 123 108 112 123 108 117 142 111 138 126 108 121 143 132 146 150 115
++121 143 132 146 151 137 146 151 137 146 151 137 146 151 137 146 151 137 146 151 137 146 151 137
++146 151 137 146 151 137 146 151 137 146 151 137 146 151 137 146 151 137 146 151 137 121 143 132
++146 150 115 121 143 132 121 143 132 138 126 108 117 142 111 121 143 132 112 123 108 117 142 111
++112 123 108 112 123 108 112 123 108 112 123 108 98 113 84 112 123 108 98 113 84 98 113 84
++98 113 84 90 98 89 98 113 84 98 113 84 90 98 89 98 113 84 90 98 89 98 113 84
++98 113 84 90 98 89 98 113 84 90 98 89 98 113 84 90 98 89 98 113 84 98 113 84
++98 113 84 94 105 108 98 113 84 112 123 108 98 113 84 98 113 84 112 123 108 98 113 84
++95 119 107 98 113 84 98 113 84 98 113 84 98 113 84 90 98 89 98 113 84 90 98 89
++87 99 72 90 98 89 78 98 90 87 99 72 75 99 72 75 81 69 60 82 70 59 79 61
++59 79 61 51 73 47 43 55 48 51 73 47 51 73 47 51 73 47 43 55 48 51 73 47
++51 73 47 51 73 47 51 73 47 51 73 47 51 73 47 51 73 47 51 73 47 51 73 47
++51 73 47 51 73 47 53 63 61 59 79 61 59 79 61 51 73 47 51 73 47 51 73 47
++53 63 61 51 73 47 53 63 61 59 79 61 64 70 48 59 79 61 64 70 48 64 70 48
++75 73 58 75 73 58 75 73 36 88 73 62 88 73 31 88 73 62 88 73 62 88 73 62
++88 73 62 88 73 62 101 74 26 120 63 71 101 74 26 120 63 71 101 74 26 120 63 71
++117 112 45 120 63 71 117 112 45 120 63 71 117 112 45 120 63 71 117 112 45 120 63 71
++117 112 45 120 63 71 176 103 41 120 63 71 117 112 45 120 63 71 117 112 45 120 63 71
++117 112 45 120 63 71 117 112 45 168 102 88 168 146 127 168 102 88 117 99 86 52 30 15
++13 4 7 13 4 7 13 4 7 13 4 7 3 4 9 3 3 1 3 4 9 3 4 9
++3 3 1 3 3 1 3 3 1 13 4 7 3 3 1 3 4 9 3 3 1 3 4 9
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 22 24 13 76 46 20
++117 112 45 168 102 88 157 148 53 176 103 41 157 148 53 176 103 41 157 148 53 157 148 53
++176 103 41 157 148 53 176 103 41 157 148 53 176 103 41 157 148 53 176 103 41 157 148 53
++176 103 41 157 148 53 117 112 45 176 103 41 157 148 53 117 112 45 157 148 53 117 112 45
++176 103 41 117 112 45 117 112 45 117 114 76 117 112 45 117 99 86 117 112 45 101 83 74
++117 112 45 101 83 74 98 106 55 88 73 62 101 83 74 87 99 72 88 83 74 75 81 69
++75 81 69 75 81 69 75 81 69 59 69 70 59 79 61 59 69 70 59 69 70 59 79 61
++59 79 61 59 79 61 46 59 71 59 79 61 46 59 71 57 86 47 42 60 86 57 86 47
++60 82 70 46 59 71 60 82 70 60 82 70 51 73 47 60 82 70 46 59 71 60 82 70
++60 82 70 46 59 71 60 82 70 60 81 83 78 98 90 60 81 83 75 81 90 78 98 90
++78 98 90 78 98 90 78 98 90 75 81 76 60 82 70 59 79 61 59 79 61 53 63 61
++64 70 48 64 70 48 50 61 48 55 55 48 49 74 23 51 49 42 51 49 42 51 49 42
++47 47 21 47 47 21 51 49 42 63 55 45 75 73 58 81 96 56 99 93 84 117 99 86
++117 99 86 112 123 108 112 123 108 121 143 132 138 126 108 121 143 132 146 150 115 126 147 144
++146 151 137 145 140 145 148 160 159 146 162 145 148 160 159 146 162 145 148 160 159 129 144 153
++146 162 145 129 144 153 146 162 145 146 162 145 129 144 153 146 162 145 129 144 153 146 162 145
++150 144 154 146 162 145 129 144 153 146 151 137 146 151 137 121 143 132 145 140 145 121 143 132
++111 119 127 112 123 108 112 123 108 90 98 89 90 98 89 88 83 88 75 99 72 88 83 88
++90 98 89 94 105 108 112 123 108 112 123 108 111 119 127 121 143 132 121 143 132 145 140 145
++126 147 144 146 151 137 129 144 153 146 162 145 129 144 153 148 160 159 148 160 159 148 160 159
++150 144 154 148 160 159 146 162 145 150 144 154 129 144 153 150 147 171 166 174 181 166 176 200
++185 202 202 194 199 226 194 199 226 194 199 226 208 221 247 194 199 226 208 221 247 208 221 247
++208 221 247 208 221 247 226 221 247 208 221 247 226 221 247 226 221 247 194 199 226 194 199 226
++194 199 226 201 216 228 194 199 226 122 134 144 77 91 115 150 147 171 194 199 226 194 199 226
++166 176 200 150 168 183 194 199 226 208 221 247 235 238 247 221 238 247 226 221 247 221 238 247
++226 221 247 221 238 247 226 221 247 226 221 247 208 221 247 208 221 247 221 238 247 208 221 247
++208 221 247 226 221 247 208 221 247 226 221 247 226 221 247 226 221 247 208 221 247 194 199 226
++166 174 181 150 168 183 148 160 159 150 168 183 150 171 159 166 156 164 148 160 159 148 160 159
++150 171 159 166 156 164 150 171 159 150 171 159 150 168 183 166 180 164 150 168 183 150 171 159
++150 168 183 166 156 164 150 168 183 150 171 159 148 160 159 150 168 183 148 160 159 148 160 159
++148 160 159 148 160 159 129 144 153 126 147 144 126 147 144 121 143 132 98 121 131 121 143 132
++111 119 127 98 121 131 95 119 107 94 105 108 77 91 115 77 90 100 77 90 100 77 90 100
++77 90 100 77 90 100 77 90 100 77 91 115 94 105 108 94 105 108 95 119 107 95 108 128
++111 119 127 98 121 131 98 121 131 121 143 132 111 122 142 122 134 144 122 134 144 126 147 144
++129 144 153 129 144 153 126 147 144 148 160 159 129 144 153 148 160 159 148 160 159 148 160 159
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 148 160 159 150 168 183 166 156 164 150 171 159 148 160 159 150 168 183 150 171 159
++148 160 159 150 168 183 150 171 159 166 156 164 150 171 159 166 156 164 150 168 183 148 160 159
++148 160 159 148 160 159 148 160 159 148 160 159 146 162 145 145 140 145 126 147 144 122 134 144
++122 134 144 122 134 144 111 119 127 111 119 127 98 121 131 95 108 128 94 105 108 77 91 115
++77 90 100 61 78 101 60 81 83 60 81 83 42 60 86 46 59 71 46 59 71 46 59 71
++34 42 77 46 59 71 45 57 61 46 59 71 46 59 71 60 63 87 60 63 87 60 81 83
++61 78 101 77 90 100 94 105 108 94 105 108 95 108 128 95 119 107 111 119 127 111 119 127
++111 119 127 122 134 144 126 147 144 126 147 144 129 144 153 146 162 145 129 144 153 148 160 159
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 150 168 183
++148 160 159 150 168 183 148 160 159 148 160 159 131 144 168 148 160 159 148 160 159 148 160 159
++129 144 153 126 147 144 122 134 144 121 143 132 122 134 144 111 119 127 98 121 131 98 121 131
++95 108 128 95 108 128 94 105 108 77 91 115 61 78 101 75 81 90 61 78 101 60 63 87
++42 60 86 46 59 71 46 59 71 45 57 61 34 42 77 32 40 58 46 59 71 32 40 58
++34 42 77 46 59 71 46 59 71 42 60 86 60 63 87 60 81 83 61 78 101 77 90 100
++77 91 115 94 105 108 94 105 108 95 108 128 98 121 131 111 119 127 122 134 144 111 119 127
++122 134 144 122 134 144 126 147 144 129 144 153 129 144 153 129 144 153 148 160 159 129 144 153
++148 160 159 129 144 153 148 160 159 129 144 153 150 144 154 129 144 153 146 162 145 129 144 153
++129 144 153 145 140 145 129 144 153 145 140 145 129 144 153 122 134 144 126 147 144 122 134 144
++126 147 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144
++121 143 132 111 122 142 121 143 132 122 134 144 122 134 144 122 134 144 122 134 144 122 134 144
++122 134 144 111 119 127 121 143 132 111 119 127 111 119 127 111 119 127 95 108 128 95 108 128
++94 105 108 94 105 108 77 91 115 77 90 100 75 81 90 61 78 101 60 81 83 60 63 87
++46 59 71 34 42 77 46 59 71 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58
++32 40 58 32 40 58 34 42 77 46 59 71 63 59 71 61 78 101 77 90 100 77 91 115
++94 105 108 95 108 128 111 119 127 111 119 127 122 134 144 122 134 144 122 134 144 145 140 145
++129 144 153 146 162 145 129 144 153 148 160 159 129 144 153 148 160 159 129 144 153 148 160 159
++148 160 159 148 160 159 148 160 159 145 140 145 126 147 144 126 147 144 122 134 144 122 134 144
++121 143 132 98 121 131 95 108 128 77 91 115 77 90 100 75 81 90 60 63 87 59 69 70
++46 59 71 45 57 61 43 42 50 32 40 58 29 34 50 29 34 50 24 30 43 24 30 43
++29 34 50 24 30 43 29 34 50 29 34 50 29 34 50 24 30 43 29 34 50 24 30 43
++29 34 50 24 30 43 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50 29 34 50
++
++90 98 89 98 113 84 112 123 108 112 123 108 112 123 108 112 123 108 112 123 108 112 123 108
++117 142 111 112 123 108 111 119 127 112 123 108 112 123 108 112 123 108 112 123 108 112 123 108
++112 123 108 95 119 107 98 113 84 112 123 108 121 143 132 138 126 108 111 119 127 117 142 111
++121 143 132 138 126 108 121 143 132 117 142 111 138 126 108 121 143 132 121 143 132 121 143 132
++146 150 115 121 143 132 146 151 137 121 143 132 146 150 115 121 143 132 138 126 108 121 143 132
++138 126 108 111 119 127 138 126 108 111 119 127 112 123 108 112 123 108 117 99 86 98 113 84
++88 83 88 88 83 74 75 81 69 75 73 58 64 70 48 50 61 48 64 70 48 64 70 48
++64 70 48 64 70 48 59 79 61 64 70 48 65 63 61 59 79 61 64 70 48 64 70 48
++64 70 48 64 70 48 75 73 58 66 86 47 75 77 62 75 77 62 66 86 47 75 77 62
++75 77 62 81 96 56 88 83 74 87 99 72 87 99 72 98 113 84 90 98 89 98 113 84
++98 113 84 112 123 108 112 123 108 112 123 108 117 142 111 121 143 132 138 126 108 121 143 132
++146 150 115 121 143 132 146 151 137 146 151 137 146 151 137 146 151 137 146 151 137 146 151 137
++146 150 115 146 151 137 121 143 132 146 151 137 121 143 132 146 151 137 121 143 132 146 151 137
++121 143 132 121 143 132 138 126 108 121 143 132 112 123 108 117 142 111 112 123 108 112 123 108
++112 123 108 112 123 108 99 133 85 112 123 108 98 113 84 112 123 108 98 113 84 98 113 84
++98 113 84 98 113 84 98 113 84 90 98 89 98 113 84 87 99 72 98 113 84 87 99 72
++90 98 89 87 99 72 98 113 84 90 98 89 98 113 84 98 113 84 90 98 89 98 113 84
++112 123 108 98 113 84 98 113 84 94 105 108 98 113 84 95 119 107 98 113 84 112 123 108
++98 113 84 98 113 84 94 105 108 98 113 84 98 113 84 98 113 84 94 105 108 98 113 84
++78 98 90 90 98 89 87 99 72 78 98 90 75 81 76 75 99 72 75 81 69 59 79 61
++59 79 61 51 73 47 51 73 47 51 73 47 51 73 47 51 73 47 51 73 47 51 73 47
++43 55 48 51 73 47 45 57 61 51 73 47 46 59 71 59 79 61 45 57 61 59 79 61
++59 79 61 59 79 61 59 79 61 53 63 61 59 79 61 53 63 61 59 79 61 51 73 47
++59 79 61 59 79 61 59 79 61 64 70 48 59 79 61 75 77 62 75 77 62 75 77 62
++75 77 62 75 77 62 75 77 62 75 73 58 88 73 62 88 73 62 88 73 62 101 74 26
++101 83 74 101 74 26 101 83 74 117 112 45 120 63 71 117 112 45 120 63 71 117 112 45
++122 49 24 117 112 45 167 63 71 101 74 26 120 63 71 117 112 45 167 63 71 117 112 45
++167 63 71 117 112 45 122 49 24 117 112 45 161 55 23 101 74 26 120 63 71 176 103 41
++117 99 86 163 117 123 201 146 124 177 169 143 168 146 127 138 126 108 101 83 74 76 46 20
++52 30 15 26 12 13 13 4 7 3 3 1 3 3 1 3 4 9 13 4 7 3 4 9
++3 4 9 3 3 1 13 4 7 3 4 9 3 3 1 3 3 1 3 4 9 3 3 1
++3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 13 4 7 36 35 37 88 73 31 117 114 76
++157 148 53 157 148 53 157 148 53 157 148 53 176 103 41 157 148 53 176 103 41 157 148 53
++157 148 53 176 103 41 157 148 53 157 148 53 176 103 41 157 148 53 157 148 53 117 112 45
++157 148 53 117 112 45 176 103 41 157 148 53 117 112 45 176 103 41 117 112 45 157 148 53
++117 112 45 117 112 45 168 102 88 117 112 45 117 112 45 117 112 45 117 114 76 117 112 45
++101 83 74 101 83 74 98 106 55 101 83 74 87 99 72 101 83 74 81 96 56 88 83 74
++75 81 69 75 99 72 75 81 69 60 82 70 60 82 70 59 79 61 60 82 70 60 82 70
++60 82 70 60 82 70 60 82 70 60 82 70 60 82 70 60 82 70 60 82 70 60 82 70
++42 60 86 60 82 70 60 82 70 42 60 86 60 82 70 60 82 70 60 82 70 60 81 83
++60 81 83 60 81 83 60 81 83 60 81 83 75 99 72 78 98 90 78 98 90 78 98 90
++78 98 90 78 98 90 78 98 90 60 81 83 75 81 76 75 81 69 59 79 61 75 77 62
++59 79 61 59 79 61 53 63 61 64 70 48 52 55 48 51 49 42 51 49 42 47 47 21
++51 49 42 51 49 42 60 49 42 64 70 48 64 70 48 75 77 62 99 93 84 99 93 84
++112 123 108 112 123 108 138 126 108 138 126 108 121 143 132 138 126 108 145 140 145 121 143 132
++146 151 137 146 151 137 129 144 153 148 160 159 148 160 159 148 160 159 146 162 145 146 162 145
++129 144 153 146 162 145 126 147 144 129 144 153 146 162 145 129 144 153 146 162 145 148 160 159
++129 144 153 146 151 137 126 147 144 146 151 137 126 147 144 145 140 145 121 143 132 121 143 132
++112 123 108 111 119 127 95 119 107 94 105 108 90 98 89 90 98 89 78 98 90 90 98 89
++90 98 89 94 105 108 112 123 108 112 123 108 111 119 127 146 150 115 121 143 132 126 147 144
++146 151 137 126 147 144 129 144 153 146 162 145 148 160 159 148 160 159 129 144 153 148 160 159
++148 160 159 129 144 153 146 162 145 129 144 153 126 147 144 150 144 154 150 168 183 166 176 200
++185 202 202 194 199 226 194 199 226 194 199 226 194 199 226 208 221 247 194 199 226 208 221 247
++208 221 247 226 221 247 208 221 247 201 216 228 194 199 226 188 180 202 188 180 202 150 168 183
++188 180 202 208 221 247 194 199 226 131 144 168 77 91 115 111 122 142 166 176 200 166 176 200
++150 147 171 150 168 183 194 199 226 208 221 247 231 239 247 226 221 247 221 238 247 221 238 247
++226 221 247 221 238 247 208 221 247 208 221 247 226 221 247 208 221 247 208 221 247 208 221 247
++208 221 247 226 221 247 208 221 247 226 221 247 208 221 247 226 221 247 208 221 247 201 216 228
++188 180 202 150 168 183 148 160 159 148 160 159 148 160 159 150 168 183 148 160 159 150 168 183
++148 160 159 150 168 183 150 171 159 150 168 183 150 171 159 150 168 183 150 171 159 166 156 164
++150 171 159 150 168 183 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153
++148 160 159 129 144 153 126 147 144 126 147 144 126 147 144 121 143 132 122 134 144 98 121 131
++98 121 131 98 121 131 95 119 107 77 91 115 94 105 108 77 90 100 77 91 115 77 90 100
++77 91 115 77 90 100 77 90 100 94 105 108 94 105 108 95 108 128 95 108 128 98 121 131
++111 119 127 111 119 127 121 143 132 111 122 142 121 143 132 122 134 144 126 147 144 126 147 144
++129 144 153 129 144 153 129 144 153 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 150 168 183 150 171 159
++150 171 159 148 160 159 148 160 159 148 160 159 150 168 183 166 156 164 150 171 159 166 156 164
++150 168 183 166 156 164 150 171 159 150 168 183 148 160 159 148 160 159 150 171 159 148 160 159
++148 160 159 148 160 159 150 144 154 129 144 153 129 144 153 126 147 144 126 147 144 122 134 144
++121 143 132 111 122 142 111 119 127 98 121 131 94 105 108 94 105 108 77 91 115 77 90 100
++77 90 100 61 78 101 60 81 83 42 60 86 59 69 70 42 60 86 46 59 71 46 59 71
++46 59 71 34 42 77 45 57 61 46 59 71 46 59 71 42 60 86 60 81 83 61 78 101
++75 81 90 77 90 100 77 91 115 94 105 108 95 108 128 95 108 128 111 119 127 98 121 131
++121 143 132 122 134 144 122 134 144 126 147 144 129 144 153 129 144 153 148 160 159 148 160 159
++148 160 159 148 160 159 148 160 159 148 160 159 166 156 164 150 168 183 148 160 159 166 156 164
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 129 144 153
++129 144 153 126 147 144 122 134 144 122 134 144 111 122 142 111 119 127 111 119 127 98 121 131
++95 108 128 94 105 108 77 91 115 95 95 116 77 90 100 77 90 100 61 78 101 60 81 83
++60 63 87 42 60 86 46 59 71 46 59 71 35 47 50 46 59 71 32 40 58 46 59 71
++32 40 58 46 59 71 46 59 71 46 59 71 60 81 83 61 78 101 75 81 90 77 90 100
++77 91 115 95 95 116 94 105 108 95 108 128 111 119 127 111 119 127 111 119 127 122 134 144
++111 122 142 122 134 144 122 134 144 126 147 144 129 144 153 129 144 153 129 144 153 129 144 153
++146 162 145 129 144 153 148 160 159 129 144 153 148 160 159 129 144 153 150 144 154 129 144 153
++146 162 145 129 144 153 129 144 153 126 147 144 145 140 145 129 144 153 126 147 144 126 147 144
++126 147 144 129 144 153 126 147 144 122 134 144 126 147 144 122 134 144 122 134 144 122 134 144
++122 134 144 122 134 144 122 134 144 122 134 144 121 143 132 122 134 144 122 134 144 126 147 144
++122 134 144 121 143 132 111 122 142 111 119 127 111 122 142 98 121 131 111 119 127 95 119 107
++95 108 128 77 91 115 94 105 108 77 91 115 61 78 101 75 81 90 60 63 87 60 63 87
++46 59 71 46 59 71 32 40 58 32 40 58 32 40 58 29 34 50 32 40 58 29 34 50
++32 40 58 32 40 58 45 57 61 46 59 71 60 63 87 61 78 101 77 90 100 95 95 116
++95 95 116 95 108 128 111 119 127 111 119 127 122 134 144 121 143 132 126 147 144 126 147 144
++145 140 145 129 144 153 150 144 154 148 160 159 150 144 154 148 160 159 148 160 159 131 144 168
++148 160 159 129 144 153 129 144 153 129 144 153 129 144 153 122 134 144 122 134 144 111 122 142
++111 119 127 98 121 131 94 105 108 94 105 108 77 90 100 61 78 101 60 63 87 59 69 70
++46 59 71 32 40 58 32 40 58 29 34 50 29 34 50 29 34 50 24 30 43 29 34 50
++29 34 50 29 34 50 29 34 50 24 30 43 24 30 43 29 34 50 24 30 43 29 34 50
++29 34 50 24 30 43 29 34 50 29 34 50 24 30 43 29 34 50 29 34 50 29 34 50
++
++98 113 84 90 98 89 98 113 84 98 113 84 117 99 86 112 123 108 112 123 108 112 123 108
++138 126 108 112 123 108 117 142 111 112 123 108 112 123 108 112 123 108 117 142 111 112 123 108
++112 123 108 112 123 108 112 123 108 112 123 108 112 123 108 117 142 111 112 123 108 138 126 108
++117 142 111 112 123 108 117 142 111 112 123 108 121 143 132 117 142 111 138 126 108 117 142 111
++138 126 108 117 142 111 146 150 115 121 143 132 138 126 108 121 143 132 138 126 108 121 143 132
++112 123 108 121 143 132 112 123 108 112 123 108 112 123 108 95 119 107 98 113 84 90 98 89
++87 99 72 75 81 69 75 81 69 59 79 61 65 63 61 64 70 48 64 70 48 64 70 48
++64 70 48 59 79 61 75 73 58 75 77 62 66 86 47 75 73 58 75 73 58 75 77 62
++66 86 47 75 77 62 66 86 47 75 77 62 75 77 62 66 86 47 75 77 62 75 81 69
++81 96 56 75 81 69 75 99 72 75 99 72 87 99 72 87 99 72 90 98 89 98 113 84
++94 105 108 98 113 84 117 127 86 112 123 108 112 123 108 138 126 108 117 142 111 138 126 108
++121 143 132 146 150 115 121 143 132 146 150 115 121 143 132 146 150 115 121 143 132 146 150 115
++121 143 132 121 143 132 146 150 115 121 143 132 146 150 115 121 143 132 138 126 108 121 143 132
++121 143 132 138 126 108 121 143 132 117 142 111 117 142 111 112 123 108 112 123 108 112 123 108
++112 123 108 117 127 86 112 123 108 98 113 84 112 123 108 98 113 84 98 113 84 98 113 84
++98 113 84 98 113 84 90 98 89 98 113 84 90 98 89 98 113 84 87 99 72 98 113 84
++98 113 84 98 113 84 87 99 72 98 113 84 90 98 89 98 113 84 98 113 84 90 98 89
++98 113 84 98 113 84 95 119 107 98 113 84 98 113 84 98 113 84 98 113 84 90 98 89
++98 113 84 95 119 107 98 113 84 98 113 84 90 98 89 98 113 84 88 121 82 90 98 89
++98 113 84 90 98 89 87 99 72 87 99 72 75 99 72 75 81 69 75 81 69 60 82 70
++59 79 61 59 79 61 53 63 61 51 73 47 53 63 61 51 73 47 51 73 47 51 73 47
++59 79 61 51 73 47 59 79 61 51 73 47 59 79 61 59 79 61 51 73 47 59 79 61
++59 79 61 51 73 47 59 79 61 59 79 61 59 79 61 59 79 61 59 79 61 59 79 61
++59 79 61 59 79 61 59 79 61 59 79 61 59 79 61 59 79 61 75 77 62 59 79 61
++75 77 62 75 77 62 66 86 47 81 96 56 88 73 62 98 106 55 88 73 62 101 83 74
++98 106 55 88 73 62 101 83 74 101 74 26 120 63 71 117 112 45 122 49 24 117 112 45
++120 63 71 120 63 71 117 112 45 176 103 41 120 63 71 117 112 45 168 102 88 163 117 123
++168 102 88 117 114 76 120 63 71 120 63 71 101 83 74 168 102 88 163 117 123 197 171 123
++217 168 156 217 168 156 217 168 156 168 146 127 138 102 108 101 83 74 88 44 51 101 83 74
++88 73 62 52 30 15 13 4 7 3 3 1 13 4 7 3 4 9 3 4 9 3 3 1
++3 4 9 13 4 7 3 4 9 3 3 1 3 3 1 3 4 9 3 3 1 3 4 9
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 22 24 13 76 46 20 99 93 84 157 148 53 168 146 127
++157 148 53 168 102 88 157 148 53 176 103 41 157 148 53 157 148 53 157 148 53 176 103 41
++157 148 53 157 148 53 176 103 41 117 112 45 157 148 53 117 112 45 176 103 41 157 148 53
++176 103 41 117 112 45 157 148 53 117 112 45 157 148 53 117 112 45 157 148 53 117 112 45
++117 112 45 117 112 45 117 112 45 117 114 76 117 112 45 117 99 86 117 112 45 101 83 74
++117 114 76 98 106 55 99 93 84 98 106 55 87 99 72 87 99 72 88 83 74 87 99 72
++75 81 69 75 81 69 60 82 70 75 81 69 60 82 70 60 82 70 60 82 70 60 82 70
++60 82 70 60 82 70 60 82 70 60 82 70 60 82 70 60 82 70 60 82 70 60 82 70
++60 82 70 60 82 70 60 82 70 60 82 70 60 82 70 60 82 70 60 82 70 60 82 70
++60 81 83 60 82 70 75 99 72 60 81 83 78 98 90 78 98 90 78 98 90 94 105 108
++78 98 90 78 98 90 78 98 90 78 98 90 75 99 72 75 99 72 75 81 69 59 79 61
++75 73 58 59 79 61 64 70 48 53 63 61 64 70 48 50 61 48 49 74 23 51 49 42
++51 49 42 49 74 23 60 49 42 64 70 48 75 73 58 75 77 62 99 93 84 99 93 84
++112 123 108 117 99 86 112 123 108 112 123 108 121 143 132 138 126 108 121 143 132 146 151 137
++121 143 132 146 151 137 146 151 137 146 162 145 148 160 159 146 162 145 129 144 153 148 160 159
++146 162 145 126 147 144 146 162 145 126 147 144 146 151 137 126 147 144 148 160 159 146 151 137
++146 162 145 126 147 144 146 151 137 126 147 144 146 151 137 121 143 132 121 143 132 119 117 138
++117 142 111 112 123 108 112 123 108 94 105 108 98 113 84 90 98 89 90 98 89 90 98 89
++98 113 84 94 105 108 94 105 108 112 123 108 111 119 127 121 143 132 121 143 132 121 143 132
++126 147 144 126 147 144 145 140 145 129 144 153 146 151 137 129 144 153 148 160 159 146 162 145
++129 144 153 148 160 159 145 140 145 126 147 144 126 147 144 150 144 154 150 171 159 166 176 200
++188 180 202 185 202 202 194 199 226 194 199 226 194 199 226 208 221 247 194 199 226 208 221 247
++208 221 247 208 221 247 226 221 247 166 176 200 111 122 142 131 144 168 150 168 183 150 168 183
++188 180 202 208 221 247 208 221 247 188 180 202 131 144 168 131 144 168 131 144 168 166 176 200
++166 176 200 194 199 226 208 221 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247
++221 238 247 226 221 247 221 238 247 226 221 247 208 221 247 208 221 247 208 221 247 208 221 247
++226 221 247 208 221 247 226 221 247 208 221 247 226 221 247 208 221 247 226 221 247 201 216 228
++188 180 202 150 168 183 148 160 159 150 168 183 148 160 159 148 160 159 150 171 159 148 160 159
++150 171 159 150 171 159 150 171 159 166 156 164 150 171 159 166 156 164 150 171 159 150 168 183
++150 171 159 148 160 159 150 171 159 148 160 159 148 160 159 148 160 159 129 144 153 146 162 145
++129 144 153 126 147 144 145 140 145 126 147 144 122 134 144 121 143 132 111 119 127 121 143 132
++111 119 127 95 119 107 95 108 128 95 119 107 78 98 90 77 91 115 78 98 90 77 91 115
++77 90 100 94 105 108 77 90 100 77 91 115 94 105 108 95 119 107 98 121 131 111 119 127
++98 121 131 121 143 132 111 122 142 121 143 132 122 134 144 121 143 132 122 134 144 126 147 144
++126 147 144 146 162 145 129 144 153 150 171 159 129 144 153 148 160 159 148 160 159 148 160 159
++148 160 159 148 160 159 150 171 159 148 160 159 150 168 183 148 160 159 148 160 159 148 160 159
++150 168 183 148 160 159 150 168 183 166 156 164 150 171 159 148 160 159 150 168 183 148 160 159
++150 171 159 150 171 159 166 156 164 150 171 159 166 156 164 148 160 159 150 168 183 148 160 159
++148 160 159 148 160 159 129 144 153 146 162 145 145 140 145 122 134 144 121 143 132 122 134 144
++121 143 132 111 119 127 111 119 127 98 121 131 95 108 128 94 105 108 94 105 108 77 91 115
++78 98 90 61 78 101 60 81 83 60 81 83 42 60 86 46 59 71 46 59 71 46 59 71
++46 59 71 46 59 71 46 59 71 46 59 71 46 59 71 59 69 70 60 63 87 61 78 101
++60 81 83 77 90 100 77 90 100 94 105 108 94 105 108 95 119 107 98 121 131 111 119 127
++111 119 127 121 143 132 122 134 144 126 147 144 145 140 145 129 144 153 126 147 144 129 144 153
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 150 147 171 148 160 159 148 160 159 150 147 171 148 160 159 129 144 153 148 160 159
++145 140 145 129 144 153 121 143 132 122 134 144 121 143 132 121 143 132 98 121 131 111 119 127
++95 108 128 95 108 128 95 108 128 94 105 108 77 91 115 77 90 100 75 81 90 61 78 101
++60 81 83 60 63 87 46 59 71 46 59 71 45 57 61 34 42 77 32 40 58 45 57 61
++34 42 77 45 57 61 46 59 71 46 59 71 60 63 87 60 63 87 61 78 101 77 90 100
++77 90 100 77 91 115 94 105 108 94 105 108 95 119 107 98 121 131 98 121 131 111 119 127
++111 119 127 122 134 144 122 134 144 122 134 144 126 147 144 129 144 153 126 147 144 129 144 153
++129 144 153 129 144 153 129 144 153 146 162 145 129 144 153 129 144 153 150 144 154 129 144 153
++145 140 145 129 144 153 145 140 145 129 144 153 145 140 145 129 144 153 145 140 145 129 144 153
++129 144 153 145 140 145 129 144 153 129 144 153 122 134 144 126 147 144 126 147 144 126 147 144
++126 147 144 122 134 144 126 147 144 122 134 144 122 134 144 126 147 144 126 147 144 122 134 144
++122 134 144 111 122 142 121 143 132 121 143 132 111 119 127 111 119 127 98 121 131 95 108 128
++94 105 108 95 108 128 77 91 115 77 90 100 77 90 100 75 81 90 60 81 83 60 63 87
++46 59 71 46 59 71 46 59 71 35 47 50 32 40 58 29 34 50 32 40 58 29 34 50
++32 40 58 32 40 58 46 59 71 46 59 71 60 63 87 75 81 90 77 90 100 77 90 100
++95 108 128 95 119 107 98 121 131 111 119 127 111 122 142 122 134 144 122 134 144 126 147 144
++126 147 144 148 160 159 129 144 153 148 160 159 129 144 153 148 160 159 129 144 153 148 160 159
++150 144 154 148 160 159 129 144 153 145 140 145 126 147 144 122 134 144 121 143 132 111 119 127
++111 119 127 95 108 128 94 105 108 77 91 115 77 90 100 75 81 90 60 63 87 46 59 71
++46 59 71 35 47 50 32 40 58 29 34 50 29 34 50 29 34 50 29 34 50 24 30 43
++24 30 43 29 34 50 24 30 43 29 34 50 29 34 50 24 30 43 29 34 50 24 30 43
++29 34 50 24 30 43 29 34 50 24 30 43 29 34 50 29 34 50 29 34 50 29 34 50
++
++87 99 72 98 113 84 98 113 84 112 123 108 98 113 84 112 123 108 117 127 86 112 123 108
++112 123 108 112 123 108 117 127 86 112 123 108 112 123 108 117 127 86 112 123 108 112 123 108
++117 127 86 112 123 108 112 123 108 117 142 111 112 123 108 112 123 108 112 123 108 112 123 108
++112 123 108 117 142 111 138 126 108 112 123 108 117 142 111 112 123 108 117 142 111 138 126 108
++117 142 111 117 142 111 138 126 108 117 142 111 121 143 132 117 142 111 117 142 111 138 126 108
++112 123 108 112 123 108 112 123 108 112 123 108 98 113 84 98 113 84 98 113 84 90 98 89
++87 99 72 70 96 55 75 77 62 66 86 47 64 70 48 57 86 47 64 70 48 59 79 61
++66 86 47 75 77 62 66 86 47 66 86 47 59 79 61 66 86 47 66 86 47 66 86 47
++75 77 62 66 86 47 70 96 55 66 86 47 70 96 55 66 86 47 70 96 55 70 96 55
++70 96 55 81 96 56 75 99 72 87 99 72 87 99 72 87 99 72 87 99 72 98 113 84
++98 113 84 98 113 84 98 113 84 112 123 108 112 123 108 112 123 108 112 123 108 117 142 111
++117 142 111 138 126 108 121 143 132 117 142 111 121 143 132 146 150 115 121 143 132 117 142 111
++138 126 108 121 143 132 138 126 108 117 142 111 117 142 111 138 126 108 117 142 111 138 126 108
++117 142 111 112 123 108 117 142 111 112 123 108 138 126 108 112 123 108 117 127 86 112 123 108
++117 127 86 95 119 107 117 127 86 95 119 107 98 113 84 98 113 84 98 113 84 98 113 84
++98 113 84 98 113 84 98 113 84 87 99 72 88 121 82 87 99 72 98 113 84 87 99 72
++87 99 72 98 113 84 87 99 72 98 113 84 98 113 84 87 99 72 98 113 84 98 113 84
++98 113 84 98 113 84 98 113 84 98 113 84 95 119 107 98 113 84 98 113 84 98 113 84
++98 113 84 98 113 84 98 113 84 95 119 107 98 113 84 98 113 84 90 98 89 88 121 82
++87 99 72 88 121 82 87 99 72 75 99 72 87 99 72 75 99 72 70 96 55 70 96 55
++59 79 61 57 86 47 59 79 61 57 86 47 59 79 61 57 86 47 59 79 61 57 86 47
++59 79 61 57 86 47 59 79 61 59 79 61 57 86 47 59 79 61 59 79 61 57 86 47
++59 79 61 59 79 61 59 79 61 57 86 47 59 79 61 57 86 47 59 79 61 59 79 61
++57 86 47 59 79 61 66 86 47 59 79 61 70 96 55 59 79 61 70 96 55 75 77 62
++70 96 55 75 81 69 81 96 56 75 77 62 80 96 46 81 96 56 81 96 56 101 83 74
++80 96 46 98 106 55 88 73 62 98 106 55 98 106 55 101 83 74 117 112 45 101 83 74
++117 112 45 117 112 45 120 63 71 101 74 26 117 112 45 117 99 86 168 146 127 177 169 143
++168 146 127 138 126 108 101 83 74 117 114 76 138 126 108 177 171 115 225 222 201 225 222 201
++208 215 180 166 180 164 112 123 108 75 56 53 26 12 13 49 13 16 88 73 31 138 102 108
++117 99 86 76 46 20 23 10 10 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 4 9 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 4 9
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 15 17 7 55 39 18 101 74 26 117 127 86 157 148 53 157 148 53 117 114 76
++157 148 53 157 148 53 157 148 53 117 112 45 157 148 53 117 112 45 176 103 41 117 112 45
++157 148 53 117 112 45 157 148 53 157 148 53 117 112 45 157 148 53 117 112 45 157 148 53
++117 112 45 157 148 53 117 112 45 157 148 53 117 112 45 117 112 45 117 114 76 117 112 45
++168 102 88 117 112 45 117 114 76 117 112 45 117 114 76 117 112 45 117 114 76 98 106 55
++98 106 55 101 83 74 98 106 55 87 99 72 87 99 72 87 99 72 75 81 69 75 99 72
++75 81 69 75 99 72 60 82 70 75 99 72 60 82 70 60 82 70 60 82 70 60 82 70
++60 82 70 60 82 70 60 82 70 60 82 70 60 82 70 60 82 70 60 82 70 60 82 70
++75 99 72 60 82 70 75 99 72 60 82 70 75 99 72 60 82 70 60 82 70 60 82 70
++75 99 72 60 82 70 75 99 72 75 99 72 75 99 72 78 98 90 88 121 82 78 98 90
++88 121 82 98 113 84 78 98 90 75 99 72 78 98 90 75 99 72 75 99 72 75 81 69
++70 96 55 59 79 61 66 86 47 64 70 48 64 70 48 51 73 47 63 55 45 50 61 48
++49 74 23 51 49 42 50 61 48 64 70 48 64 70 48 88 83 74 87 99 72 99 93 84
++98 113 84 112 123 108 112 123 108 138 126 108 112 123 108 138 126 108 121 143 132 138 126 108
++121 143 132 146 151 137 146 151 137 146 151 137 146 151 137 146 162 145 146 162 145 146 151 137
++146 162 145 126 147 144 146 151 137 126 147 144 146 151 137 126 147 144 146 151 137 126 147 144
++146 151 137 126 147 144 146 151 137 121 143 132 121 143 132 138 126 108 121 143 132 138 126 108
++117 142 111 112 123 108 95 119 107 98 113 84 98 113 84 90 98 89 98 113 84 90 98 89
++98 113 84 98 113 84 112 123 108 112 123 108 117 142 111 138 126 108 121 143 132 145 140 145
++121 143 132 146 151 137 121 143 132 146 151 137 126 147 144 146 162 145 146 151 137 126 147 144
++146 151 137 126 147 144 126 147 144 146 151 137 122 134 144 126 147 144 148 160 159 166 174 181
++185 202 202 185 202 202 194 199 226 194 199 226 194 199 226 201 216 228 208 221 247 194 199 226
++194 199 226 194 199 226 194 199 226 150 147 171 61 78 101 95 95 116 131 144 168 166 176 200
++194 199 226 208 221 247 226 221 247 226 221 247 208 221 247 201 216 228 194 199 226 226 221 247
++226 221 247 226 221 247 231 239 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247
++221 238 247 226 221 247 221 238 247 226 221 247 208 221 247 208 221 247 208 221 247 208 221 247
++208 221 247 221 238 247 221 238 247 226 221 247 226 221 247 208 221 247 226 221 247 208 221 247
++194 199 226 166 174 181 148 160 159 148 160 159 148 160 159 150 171 159 148 160 159 150 171 159
++148 160 159 148 160 159 150 171 159 148 160 159 150 171 159 150 171 159 148 160 159 150 171 159
++148 160 159 148 160 159 148 160 159 148 160 159 146 162 145 126 147 144 146 162 145 126 147 144
++126 147 144 126 147 144 121 143 132 121 143 132 121 143 132 111 119 127 121 143 132 98 121 131
++95 119 107 95 119 107 95 119 107 94 105 108 95 119 107 78 98 90 95 119 107 78 98 90
++78 98 90 77 90 100 95 119 107 94 105 108 95 119 107 95 119 107 98 121 131 112 123 108
++98 121 131 121 143 132 111 119 127 121 143 132 121 143 132 126 147 144 121 143 132 126 147 144
++126 147 144 129 144 153 146 162 145 146 162 145 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 150 171 159 150 168 183 148 160 159 148 160 159 148 160 159 150 171 159 148 160 159
++148 160 159 150 171 159 148 160 159 150 171 159 148 160 159 150 171 159 148 160 159 150 171 159
++148 160 159 150 168 183 148 160 159 150 171 159 148 160 159 148 160 159 148 160 159 148 160 159
++129 144 153 126 147 144 129 144 153 126 147 144 126 147 144 121 143 132 121 143 132 111 119 127
++98 121 131 112 123 108 98 121 131 95 119 107 95 119 107 94 105 108 78 98 90 78 98 90
++78 98 90 60 81 83 60 81 83 59 69 70 59 69 70 59 69 70 46 59 71 46 59 71
++45 57 61 45 57 61 45 57 61 45 57 61 46 59 71 59 69 70 60 81 83 60 81 83
++75 81 82 78 98 90 78 98 90 95 119 107 95 108 128 95 119 107 98 121 131 111 119 127
++121 143 132 111 119 127 121 143 132 122 134 144 126 147 144 126 147 144 146 151 137 129 144 153
++146 162 145 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 129 144 153 148 160 159 126 147 144
++126 147 144 126 147 144 122 134 144 121 143 132 111 119 127 111 122 142 111 119 127 98 121 131
++95 119 107 95 108 128 94 105 108 77 91 115 77 90 100 77 90 100 77 90 100 75 81 90
++60 81 83 60 81 83 46 59 71 45 57 61 45 57 61 45 57 61 35 47 50 45 57 61
++45 57 61 45 57 61 46 59 71 46 59 71 60 81 83 60 81 83 75 81 82 60 81 83
++77 90 100 94 105 108 94 105 108 94 105 108 94 105 108 95 119 107 111 119 127 111 119 127
++121 143 132 111 119 127 121 143 132 122 134 144 121 143 132 122 134 144 145 140 145 126 147 144
++146 162 145 129 144 153 126 147 144 129 144 153 146 162 145 129 144 153 126 147 144 129 144 153
++146 162 145 129 144 153 129 144 153 146 162 145 129 144 153 126 147 144 126 147 144 126 147 144
++126 147 144 126 147 144 126 147 144 126 147 144 126 147 144 126 147 144 126 147 144 122 134 144
++129 144 153 126 147 144 126 147 144 126 147 144 126 147 144 129 144 153 126 147 144 126 147 144
++126 147 144 122 134 144 121 143 132 111 122 142 111 119 127 111 119 127 98 121 131 95 119 107
++98 121 131 94 105 108 94 105 108 77 90 100 77 90 100 61 78 101 60 81 83 46 59 71
++46 59 71 45 57 61 32 40 58 35 47 50 35 47 50 35 47 50 32 40 58 35 47 50
++32 40 58 35 47 50 46 59 71 46 59 71 60 81 83 75 81 90 77 90 100 95 95 116
++94 105 108 95 108 128 111 119 127 111 122 142 121 143 132 122 134 144 121 143 132 122 134 144
++145 140 145 129 144 153 150 144 154 129 144 153 148 160 159 129 144 153 148 160 159 145 140 145
++129 144 153 129 144 153 145 140 145 126 147 144 121 143 132 119 117 138 111 119 127 111 119 127
++111 119 127 95 119 107 94 105 108 77 91 115 77 90 100 60 81 83 59 69 70 46 59 71
++45 57 61 32 40 58 35 47 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50
++24 30 43 29 34 50 29 34 50 29 34 50 24 30 43 29 34 50 24 30 43 29 34 50
++24 30 43 29 34 50 29 34 50 24 30 43 29 34 50 29 34 50 29 34 50 29 34 50
++
++87 99 72 90 98 89 98 113 84 98 113 84 98 113 84 117 127 86 112 123 108 117 127 86
++112 123 108 117 127 86 95 119 107 117 127 86 112 123 108 99 133 85 112 123 108 117 127 86
++112 123 108 112 123 108 117 127 86 112 123 108 117 127 86 112 123 108 117 127 86 112 123 108
++112 123 108 117 127 86 112 123 108 117 127 86 112 123 108 112 123 108 112 123 108 117 142 111
++112 123 108 112 123 108 112 123 108 117 142 111 112 123 108 138 126 108 117 142 111 111 119 127
++117 142 111 112 123 108 112 123 108 112 123 108 94 105 108 98 113 84 98 113 84 87 99 72
++75 99 72 75 81 69 66 86 47 59 79 61 64 70 48 59 79 61 64 70 48 59 79 61
++66 86 47 75 73 58 70 96 55 75 81 69 70 96 55 75 81 69 70 96 55 75 81 69
++70 96 55 81 96 56 75 77 62 81 96 56 75 77 62 70 96 55 75 77 62 81 96 56
++70 96 55 75 81 69 81 96 56 87 99 72 75 99 72 87 99 72 87 99 72 87 99 72
++98 113 84 98 113 84 98 113 84 98 113 84 98 113 84 112 123 108 112 123 108 112 123 108
++138 126 108 117 142 111 117 142 111 138 126 108 121 143 132 117 142 111 138 126 108 121 143 132
++117 142 111 117 142 111 117 142 111 117 142 111 138 126 108 117 142 111 117 142 111 117 142 111
++112 123 108 117 142 111 112 123 108 117 127 86 117 142 111 112 123 108 112 123 108 112 123 108
++112 123 108 98 113 84 112 123 108 98 113 84 117 127 86 95 119 107 98 113 84 98 113 84
++98 113 84 98 113 84 87 99 72 98 113 84 87 99 72 88 121 82 87 99 72 88 121 82
++98 113 84 87 99 72 98 113 84 87 99 72 98 113 84 98 113 84 90 98 89 98 113 84
++98 113 84 98 113 84 98 113 84 98 113 84 98 113 84 98 113 84 98 113 84 95 119 107
++98 113 84 112 123 108 98 113 84 98 113 84 98 113 84 98 113 84 88 121 82 90 98 89
++88 121 82 90 98 89 87 99 72 87 99 72 75 99 72 75 99 72 75 99 72 75 81 69
++70 96 55 75 81 69 66 86 47 59 79 61 57 86 47 60 82 70 57 86 47 60 82 70
++59 79 61 59 79 61 59 79 61 70 96 55 59 79 61 59 79 61 70 96 55 59 79 61
++70 96 55 59 79 61 70 96 55 60 82 70 59 79 61 60 82 70 70 96 55 70 96 55
++60 82 70 70 96 55 60 82 70 70 96 55 70 96 55 75 81 69 70 96 55 75 99 72
++75 81 69 81 96 56 75 81 69 81 96 56 81 96 56 88 73 62 81 96 56 101 83 74
++98 106 55 88 73 62 98 106 55 101 83 74 98 106 55 101 74 26 101 83 74 117 112 45
++101 74 26 117 112 45 120 63 71 117 112 45 101 83 74 117 114 76 168 146 127 168 146 127
++141 116 139 138 126 108 138 126 108 168 146 127 189 165 168 222 171 182 208 215 180 189 165 168
++112 123 108 88 83 74 36 35 37 15 17 7 13 4 7 23 10 10 76 46 20 117 99 86
++101 74 26 49 13 16 13 4 7 3 3 1 3 3 1 13 4 7 3 4 9 3 4 9
++3 4 9 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 4 9
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++33 30 30 75 73 58 98 106 55 157 148 53 138 126 108 157 148 53 117 112 45 157 148 53
++117 112 45 176 103 41 117 112 45 157 148 53 176 103 41 157 148 53 157 148 53 117 112 45
++157 148 53 176 103 41 157 148 53 117 112 45 157 148 53 176 103 41 157 148 53 117 112 45
++157 148 53 117 112 45 176 103 41 117 112 45 157 148 53 117 114 76 157 148 53 117 112 45
++117 114 76 117 112 45 117 114 76 117 112 45 117 114 76 98 106 55 98 106 55 117 114 76
++98 106 55 98 113 84 87 99 72 87 99 72 87 99 72 81 96 56 75 99 72 88 83 74
++75 99 72 75 99 72 75 99 72 60 82 70 75 99 72 75 99 72 75 99 72 75 99 72
++75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72
++60 82 70 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72
++75 99 72 75 99 72 75 99 72 75 99 72 78 98 90 88 121 82 78 98 90 94 105 108
++88 121 82 95 119 107 88 121 82 88 121 82 78 98 90 75 99 72 75 99 72 75 99 72
++75 81 69 70 96 55 75 77 62 66 86 47 59 79 61 64 70 48 51 73 47 50 61 48
++50 61 48 63 55 45 50 61 48 75 73 36 75 73 58 75 81 69 88 83 74 99 93 84
++99 93 84 98 113 84 117 99 86 112 123 108 112 123 108 111 119 127 138 126 108 121 143 132
++138 126 108 121 143 132 126 147 144 146 151 137 126 147 144 146 151 137 146 151 137 126 147 144
++146 151 137 126 147 144 146 151 137 121 143 132 126 147 144 121 143 132 146 151 137 126 147 144
++146 151 137 121 143 132 146 150 115 121 143 132 146 150 115 121 143 132 117 142 111 121 143 132
++112 123 108 112 123 108 112 123 108 95 119 107 98 113 84 94 105 108 98 113 84 98 113 84
++98 113 84 94 105 108 112 123 108 112 123 108 111 119 127 122 134 144 138 126 108 121 143 132
++121 143 132 121 143 132 146 151 137 126 147 144 126 147 144 146 162 145 126 147 144 146 162 145
++126 147 144 146 151 137 126 147 144 126 147 144 121 143 132 126 147 144 148 160 159 150 168 183
++188 180 202 166 176 200 194 199 226 194 199 226 194 199 226 194 199 226 208 221 247 208 221 247
++166 176 200 119 117 138 166 176 200 150 168 183 95 108 128 77 91 115 122 134 144 194 199 226
++226 221 247 226 221 247 226 221 247 221 238 247 235 238 247 235 238 247 226 221 247 226 221 247
++231 239 247 231 239 247 221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247
++226 221 247 221 238 247 226 221 247 221 238 247 208 221 247 221 238 247 208 221 247 208 221 247
++221 238 247 226 221 247 226 221 247 226 221 247 221 238 247 208 221 247 226 221 247 226 221 247
++194 199 226 166 176 200 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159
++150 171 159 148 160 159 150 171 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 146 162 145 148 160 159 146 162 145 146 162 145 146 151 137 126 147 144 126 147 144
++146 151 137 126 147 144 121 143 132 121 143 132 121 143 132 121 143 132 111 119 127 117 142 111
++98 121 131 98 121 131 95 119 107 77 91 115 95 119 107 78 98 90 77 91 115 78 98 90
++77 91 115 78 98 90 78 98 90 94 105 108 95 108 128 95 119 107 98 121 131 117 142 111
++98 121 131 121 143 132 111 119 127 121 143 132 121 143 132 126 147 144 126 147 144 146 151 137
++126 147 144 146 162 145 148 160 159 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 148 160 159 150 171 159 148 160 159 150 171 159 148 160 159 148 160 159 148 160 159
++150 171 159 148 160 159 148 160 159 148 160 159 150 171 159 148 160 159 150 168 183 148 160 159
++150 171 159 148 160 159 150 171 159 148 160 159 148 160 159 148 160 159 148 160 159 146 162 145
++129 144 153 146 151 137 126 147 144 126 147 144 126 147 144 121 143 132 111 119 127 121 143 132
++98 121 131 112 123 108 98 121 131 95 119 107 95 119 107 77 91 115 78 98 90 77 90 100
++75 81 90 60 81 83 60 81 83 60 82 70 59 69 70 60 82 70 46 59 71 60 82 70
++46 59 71 46 59 71 59 79 61 46 59 71 59 69 70 59 69 70 60 81 83 78 98 90
++60 81 83 78 98 90 77 90 100 94 105 108 94 105 108 95 119 107 95 119 107 98 121 131
++121 143 132 111 119 127 121 143 132 122 134 144 121 143 132 126 147 144 126 147 144 129 144 153
++129 144 153 148 160 159 148 160 159 129 144 153 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 146 162 145 129 144 153
++145 140 145 126 147 144 121 143 132 122 134 144 121 143 132 121 143 132 121 143 132 98 121 131
++98 121 131 95 108 128 95 119 107 95 119 107 94 105 108 77 90 100 77 90 100 60 81 83
++60 81 83 60 81 83 59 69 70 46 59 71 46 59 71 45 57 61 46 59 71 45 57 61
++45 57 61 46 59 71 46 59 71 59 69 70 63 59 71 60 81 83 60 81 83 75 81 90
++77 90 100 78 98 90 77 91 115 94 105 108 94 105 108 98 121 131 95 119 107 111 119 127
++111 119 127 121 143 132 119 117 138 121 143 132 122 134 144 121 143 132 126 147 144 126 147 144
++126 147 144 129 144 153 146 162 145 126 147 144 129 144 153 129 144 153 146 162 145 126 147 144
++129 144 153 129 144 153 146 162 145 129 144 153 129 144 153 146 151 137 129 144 153 146 151 137
++126 147 144 145 140 145 129 144 153 145 140 145 126 147 144 129 144 153 126 147 144 145 140 145
++126 147 144 129 144 153 129 144 153 126 147 144 122 134 144 126 147 144 129 144 153 122 134 144
++126 147 144 122 134 144 121 143 132 111 122 142 121 143 132 111 119 127 111 119 127 98 121 131
++95 108 128 95 119 107 77 91 115 77 90 100 77 90 100 75 81 90 60 81 83 59 69 70
++46 59 71 45 57 61 45 57 61 32 40 58 35 47 50 35 47 50 35 47 50 32 40 58
++35 47 50 45 57 61 46 59 71 60 63 87 60 81 83 77 90 100 77 90 100 77 91 115
++94 105 108 98 121 131 98 121 131 111 119 127 111 122 142 122 134 144 122 134 144 126 147 144
++145 140 145 129 144 153 129 144 153 150 144 154 146 162 145 150 144 154 129 144 153 148 160 159
++150 144 154 129 144 153 126 147 144 145 140 145 122 134 144 121 143 132 121 143 132 111 119 127
++111 119 127 95 108 128 94 105 108 77 90 100 77 90 100 60 81 83 60 63 87 46 59 71
++45 57 61 35 47 50 32 40 58 32 40 58 29 34 50 35 47 50 29 34 50 24 30 43
++29 34 50 29 34 50 29 34 50 29 34 50 24 30 43 29 34 50 29 34 50 29 34 50
++29 34 50 29 34 50 29 34 50 29 34 50 24 30 43 29 34 50 29 34 50 29 34 50
++
++87 99 72 87 99 72 98 113 84 98 113 84 117 99 86 98 113 84 98 113 84 98 113 84
++98 113 84 98 113 84 98 113 84 98 113 84 98 113 84 95 119 107 99 133 85 98 113 84
++99 133 85 98 113 84 98 113 84 99 133 85 98 113 84 117 127 86 98 113 84 117 127 86
++98 113 84 112 123 108 99 133 85 112 123 108 117 127 86 112 123 108 112 123 108 117 127 86
++112 123 108 112 123 108 112 123 108 112 123 108 117 142 111 112 123 108 112 123 108 112 123 108
++112 123 108 112 123 108 112 123 108 98 113 84 98 113 84 98 113 84 90 98 89 87 99 72
++75 99 72 70 96 55 75 77 62 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++75 77 62 66 86 47 70 96 55 81 96 56 81 96 56 81 96 56 81 96 56 81 96 56
++81 96 56 75 99 72 81 96 56 75 99 72 81 96 56 81 96 56 81 96 56 70 96 55
++75 99 72 81 96 56 75 99 72 81 96 56 75 99 72 87 99 72 85 113 63 87 99 72
++98 113 84 87 99 72 98 113 84 98 113 84 112 123 108 117 127 86 112 123 108 112 123 108
++112 123 108 117 142 111 112 123 108 117 142 111 112 123 108 117 142 111 117 142 111 112 123 108
++138 126 108 117 142 111 112 123 108 117 142 111 112 123 108 117 142 111 112 123 108 117 127 86
++112 123 108 117 127 86 112 123 108 117 127 86 112 123 108 99 133 85 117 127 86 99 133 85
++117 127 86 99 133 85 98 113 84 98 113 84 98 113 84 98 113 84 98 113 84 98 113 84
++98 113 84 88 121 82 98 113 84 87 99 72 98 113 84 87 99 72 88 121 82 87 99 72
++87 99 72 88 121 82 87 99 72 88 121 82 98 113 84 85 113 63 98 113 84 85 113 63
++98 113 84 98 113 84 88 121 82 98 113 84 99 133 85 98 113 84 117 127 86 98 113 84
++98 113 84 98 113 84 98 113 84 98 113 84 98 113 84 98 113 84 98 113 84 88 121 82
++98 113 84 88 121 82 87 99 72 88 121 82 75 99 72 87 99 72 75 99 72 81 96 56
++75 99 72 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 75 99 72 70 96 55 70 96 55
++70 96 55 70 96 55 75 99 72 70 96 55 75 99 72 70 96 55 75 99 72 70 96 55
++75 99 72 70 96 55 75 99 72 75 99 72 70 96 55 75 99 72 75 99 72 70 96 55
++75 99 72 75 99 72 81 96 56 81 96 56 87 99 72 81 96 56 98 106 55 87 99 72
++98 106 55 98 106 55 98 106 55 98 106 55 101 83 74 117 112 45 98 106 55 101 83 74
++117 112 45 101 83 74 117 112 45 117 112 45 101 83 74 117 112 45 138 126 108 146 151 137
++146 150 115 111 119 127 146 151 137 189 165 168 225 222 201 208 215 180 111 119 127 88 66 70
++33 30 30 23 10 10 3 3 1 13 4 7 13 4 7 49 13 16 55 39 37 88 73 62
++88 44 51 23 10 10 23 10 10 13 4 7 3 3 1 3 3 1 3 4 9 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 15 17 7 51 49 42
++81 96 56 117 114 76 138 126 108 157 148 53 117 114 76 157 148 53 117 114 76 157 148 53
++117 112 45 157 148 53 117 112 45 157 148 53 117 112 45 157 148 53 117 112 45 157 148 53
++117 112 45 157 148 53 117 112 45 157 148 53 117 112 45 157 148 53 117 112 45 157 148 53
++117 112 45 157 148 53 117 112 45 117 114 76 117 112 45 117 112 45 117 114 76 117 114 76
++117 112 45 117 114 76 117 114 76 117 114 76 117 112 45 117 114 76 98 106 55 98 106 55
++99 93 84 98 106 55 85 113 63 87 99 72 87 99 72 87 99 72 87 99 72 75 99 72
++75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72
++75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72
++75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72
++75 99 72 75 99 72 78 98 90 75 99 72 88 121 82 78 98 90 88 121 82 88 121 82
++98 113 84 95 119 107 98 113 84 95 119 107 88 121 82 88 121 82 87 99 72 87 99 72
++75 99 72 81 96 56 75 81 69 75 77 62 66 86 47 64 70 48 64 70 48 64 70 48
++49 74 23 64 70 48 50 61 48 64 70 48 64 70 48 81 96 56 87 99 72 99 93 84
++99 93 84 98 113 84 98 113 84 112 123 108 112 123 108 138 126 108 112 123 108 117 142 111
++138 126 108 121 143 132 146 150 115 146 151 137 146 151 137 146 151 137 126 147 144 146 162 145
++146 151 137 126 147 144 121 143 132 121 143 132 146 150 115 121 143 132 121 143 132 146 150 115
++121 143 132 121 143 132 146 151 137 121 143 132 121 143 132 117 142 111 138 126 108 117 142 111
++112 123 108 112 123 108 112 123 108 98 113 84 98 113 84 98 113 84 98 113 84 94 105 108
++98 113 84 112 123 108 112 123 108 112 123 108 117 142 111 117 142 111 121 143 132 121 143 132
++138 126 108 121 143 132 121 143 132 146 151 137 146 151 137 126 147 144 146 151 137 126 147 144
++146 151 137 126 147 144 146 151 137 121 143 132 121 143 132 121 143 132 146 162 145 150 168 183
++166 176 200 185 202 202 194 199 226 194 199 226 194 199 226 194 199 226 194 199 226 208 221 247
++150 147 171 95 108 128 111 122 142 166 176 200 166 176 200 150 147 171 166 176 200 226 221 247
++231 239 247 221 238 247 221 238 247 226 221 247 221 238 247 226 221 247 231 239 247 221 238 247
++226 221 247 226 221 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 221 238 247
++226 221 247 221 238 247 208 221 247 226 221 247 208 221 247 208 221 247 208 221 247 226 221 247
++208 221 247 221 238 247 221 238 247 221 238 247 226 221 247 226 221 247 208 221 247 208 221 247
++208 221 247 188 180 202 150 171 159 148 160 159 148 160 159 148 160 159 148 160 159 148 160 159
++148 160 159 148 160 159 148 160 159 148 160 159 146 162 145 148 160 159 146 162 145 148 160 159
++146 162 145 129 144 153 146 162 145 126 147 144 126 147 144 126 147 144 146 151 137 126 147 144
++121 143 132 121 143 132 121 143 132 121 143 132 111 119 127 117 142 111 98 121 131 112 123 108
++112 123 108 95 119 107 95 119 107 95 119 107 78 98 90 95 119 107 78 98 90 78 98 90
++95 119 107 78 98 90 95 119 107 95 119 107 95 119 107 95 119 107 95 119 107 111 119 127
++117 142 111 111 119 127 121 143 132 121 143 132 121 143 132 121 143 132 126 147 144 126 147 144
++146 151 137 129 144 153 146 162 145 146 162 145 148 160 159 146 162 145 148 160 159 148 160 159
++148 160 159 150 171 159 148 160 159 148 160 159 148 160 159 148 160 159 150 171 159 150 171 159
++148 160 159 150 171 159 148 160 159 150 171 159 148 160 159 150 171 159 148 160 159 148 160 159
++148 160 159 148 160 159 148 160 159 148 160 159 148 160 159 146 162 145 129 144 153 126 147 144
++126 147 144 126 147 144 126 147 144 121 143 132 121 143 132 121 143 132 111 119 127 117 142 111
++98 121 131 95 119 107 95 119 107 95 119 107 94 105 108 78 98 90 78 98 90 78 98 90
++60 81 83 60 81 83 60 81 83 59 69 70 60 82 70 59 69 70 60 82 70 46 59 71
++60 82 70 60 82 70 46 59 71 60 82 70 60 82 70 60 82 70 60 81 83 75 81 90
++78 98 90 78 98 90 78 98 90 94 105 108 94 105 108 95 119 107 98 121 131 112 123 108
++98 121 131 117 142 111 122 134 144 121 143 132 121 143 132 126 147 144 126 147 144 146 151 137
++126 147 144 129 144 153 146 162 145 146 162 145 148 160 159 129 144 153 148 160 159 148 160 159
++148 160 159 129 144 153 146 162 145 129 144 153 148 160 159 129 144 153 146 162 145 129 144 153
++126 147 144 126 147 144 122 134 144 121 143 132 122 134 144 111 119 127 98 121 131 117 142 111
++95 119 107 98 121 131 95 119 107 77 91 115 94 105 108 78 98 90 77 90 100 60 81 83
++60 81 83 60 63 87 59 69 70 53 63 61 46 59 71 45 57 61 45 57 61 46 59 71
++53 63 61 45 57 61 53 63 61 59 69 70 59 69 70 60 81 83 75 81 82 60 81 83
++75 81 90 78 98 90 78 98 90 95 119 107 94 105 108 95 119 107 95 119 107 98 121 131
++112 123 108 111 119 127 121 143 132 111 119 127 121 143 132 122 134 144 121 143 132 122 134 144
++126 147 144 126 147 144 126 147 144 126 147 144 145 140 145 126 147 144 129 144 153 146 162 145
++129 144 153 146 151 137 129 144 153 129 144 153 146 162 145 129 144 153 126 147 144 129 144 153
++146 162 145 126 147 144 129 144 153 126 147 144 129 144 153 146 151 137 126 147 144 129 144 153
++126 147 144 145 140 145 126 147 144 145 140 145 126 147 144 145 140 145 126 147 144 126 147 144
++126 147 144 122 134 144 121 143 132 122 134 144 111 119 127 111 119 127 98 121 131 95 119 107
++95 119 107 94 105 108 94 105 108 77 90 100 75 81 90 60 81 83 60 81 83 60 63 87
++46 59 71 45 57 61 45 57 61 35 47 50 45 57 61 35 47 50 35 47 50 35 47 50
++45 57 61 46 59 71 59 69 70 60 81 83 75 81 90 75 81 90 78 98 90 94 105 108
++94 105 108 98 121 131 111 119 127 111 119 127 121 143 132 122 134 144 121 143 132 126 147 144
++126 147 144 145 140 145 129 144 153 146 162 145 129 144 153 129 144 153 146 162 145 129 144 153
++126 147 144 145 140 145 126 147 144 126 147 144 121 143 132 119 117 138 111 119 127 111 119 127
++95 119 107 94 105 108 94 105 108 77 90 100 75 81 90 60 81 83 59 69 70 46 59 71
++45 57 61 32 40 58 35 47 50 35 47 50 29 34 50 35 47 50 29 34 50 35 47 50
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50
++29 34 50 24 30 43 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 29 34 50
++
++81 96 56 87 99 72 98 113 84 87 99 72 98 113 84 98 113 84 98 113 84 98 113 84
++98 113 84 98 113 84 98 113 84 98 113 84 98 113 84 98 113 84 98 113 84 98 113 84
++98 113 84 98 113 84 99 133 85 98 113 84 98 113 84 98 113 84 98 113 84 98 113 84
++98 113 84 99 133 85 98 113 84 98 113 84 98 113 84 117 127 86 98 113 84 99 133 85
++98 113 84 99 133 85 117 127 86 99 133 85 117 127 86 112 123 108 117 127 86 112 123 108
++99 133 85 117 127 86 95 119 107 98 113 84 98 113 84 98 113 84 88 121 82 87 99 72
++81 96 56 70 96 55 66 86 47 59 79 61 66 86 47 66 86 47 59 79 61 66 86 47
++66 86 47 70 96 55 70 96 55 70 96 55 75 99 72 70 96 55 81 96 56 75 99 72
++81 96 56 75 99 72 81 96 56 85 113 63 81 96 56 75 99 72 82 107 52 75 99 72
++81 96 56 81 96 56 81 96 56 75 99 72 81 96 56 81 96 56 75 99 72 85 113 63
++87 99 72 85 113 63 87 120 67 88 121 82 88 121 82 98 113 84 99 133 85 117 127 86
++99 133 85 117 127 86 117 127 86 117 127 86 117 142 111 117 127 86 117 127 86 117 142 111
++117 127 86 117 127 86 112 123 108 117 127 86 117 127 86 117 127 86 117 127 86 117 142 111
++117 127 86 112 123 108 117 127 86 99 133 85 99 133 85 99 133 85 117 127 86 98 113 84
++99 133 85 98 113 84 98 113 84 99 133 85 98 113 84 88 121 82 98 113 84 87 120 67
++98 113 84 85 113 63 85 113 63 88 121 82 87 120 67 87 120 67 87 99 72 85 113 63
++87 120 67 87 99 72 87 120 67 87 99 72 85 113 63 88 121 82 87 120 67 98 113 84
++87 120 67 87 120 67 88 121 82 88 121 82 98 113 84 98 113 84 88 121 82 98 113 84
++99 133 85 98 113 84 99 133 85 99 133 85 98 113 84 98 113 84 88 121 82 87 120 67
++88 121 82 87 120 67 87 120 67 75 99 72 85 113 63 85 113 63 82 107 52 75 99 72
++70 96 55 75 99 72 70 96 55 75 99 72 70 96 55 70 96 55 70 96 55 70 96 55
++75 99 72 64 97 47 75 99 72 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++75 99 72 81 96 56 70 96 55 75 99 72 70 96 55 70 96 55 70 96 55 70 96 55
++73 107 51 75 99 72 81 96 56 73 107 51 75 99 72 70 96 55 81 96 56 75 99 72
++73 107 51 75 99 72 70 96 55 81 96 56 81 96 56 87 99 72 81 96 56 98 106 55
++87 99 72 81 96 56 87 99 72 98 106 55 98 106 55 101 83 74 98 106 55 117 112 45
++101 83 74 117 112 45 101 83 74 98 106 55 98 106 55 98 106 55 138 126 108 146 162 145
++150 144 154 111 119 127 146 151 137 166 180 164 166 174 181 122 134 144 65 63 61 14 16 17
++13 4 7 15 17 7 23 10 10 23 10 10 13 4 7 49 13 16 76 46 20 88 73 62
++102 33 26 49 13 16 23 10 10 23 10 10 13 4 7 13 4 7 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 6 15 6 22 24 13 75 73 36 117 114 76
++157 148 53 117 127 86 157 148 53 117 114 76 117 112 45 157 148 53 117 112 45 117 114 76
++157 148 53 117 114 76 157 148 53 117 114 76 157 148 53 117 114 76 157 148 53 117 112 45
++157 148 53 117 112 45 157 148 53 117 112 45 157 148 53 117 112 45 157 148 53 117 112 45
++117 114 76 117 112 45 117 127 86 117 112 45 157 148 53 117 127 86 117 112 45 117 127 86
++117 112 45 117 127 86 117 112 45 117 114 76 98 106 55 98 126 66 98 106 55 98 113 84
++98 106 55 87 120 67 87 99 72 85 113 63 85 113 63 75 99 72 85 113 63 87 99 72
++75 99 72 87 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 85 113 63
++75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72
++75 99 72 75 99 72 75 99 72 75 99 72 87 120 67 75 99 72 75 99 72 75 99 72
++75 99 72 75 99 72 75 99 72 87 120 67 75 99 72 88 121 82 87 99 72 88 121 82
++98 113 84 99 133 85 88 121 82 88 121 82 88 121 82 87 99 72 88 121 82 85 113 63
++87 99 72 75 99 72 75 99 72 81 96 56 66 86 47 66 86 47 57 86 47 64 70 48
++64 70 48 50 61 48 49 74 23 64 70 48 64 70 48 88 83 74 87 99 72 99 93 84
++98 113 84 98 113 84 98 113 84 117 99 86 117 127 86 112 123 108 117 142 111 138 126 108
++121 143 132 146 150 115 121 143 132 121 143 132 146 151 137 126 147 144 146 150 115 146 151 137
++121 143 132 146 150 115 121 143 132 146 150 115 121 143 132 121 143 132 146 150 115 121 143 132
++146 150 115 121 143 132 117 142 111 146 150 115 117 142 111 121 143 132 117 142 111 112 123 108
++117 142 111 112 123 108 117 127 86 98 113 84 112 123 108 98 113 84 98 113 84 117 127 86
++98 113 84 98 113 84 112 123 108 112 123 108 117 142 111 112 123 108 138 126 108 117 142 111
++121 143 132 121 143 132 146 150 115 121 143 132 146 150 115 121 143 132 146 151 137 121 143 132
++146 151 137 121 143 132 146 151 137 121 143 132 117 142 111 121 143 132 126 147 144 150 171 159
++185 202 202 166 176 200 185 202 202 194 199 226 194 199 226 166 176 200 150 147 171 194 199 226
++166 176 200 131 144 168 119 117 138 166 176 200 226 221 247 226 221 247 208 221 247 231 239 247
++226 221 247 231 239 247 226 221 247 231 239 247 226 221 247 221 238 247 226 221 247 221 238 247
++226 221 247 221 238 247 221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247
++221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 208 221 247 221 238 247 208 221 247
++221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 221 238 247 226 221 247 226 221 247
++208 221 247 185 202 202 150 168 183 148 160 159 126 147 144 146 162 145 146 162 145 146 162 145
++146 162 145 146 162 145 146 162 145 146 162 145 146 162 145 126 147 144 146 162 145 146 162 145
++146 151 137 146 162 145 126 147 144 146 151 137 126 147 144 146 151 137 121 143 132 146 151 137
++121 143 132 121 143 132 121 143 132 121 143 132 117 142 111 111 119 127 112 123 108 117 142 111
++95 119 107 95 119 107 95 119 107 88 121 82 95 119 107 78 98 90 88 121 82 78 98 90
++88 121 82 95 119 107 78 98 90 95 119 107 95 119 107 95 119 107 95 119 107 117 142 111
++111 119 127 117 142 111 112 123 108 121 143 132 121 143 132 121 143 132 121 143 132 146 151 137
++126 147 144 126 147 144 146 162 145 146 162 145 146 162 145 126 147 144 146 162 145 146 162 145
++146 162 145 148 160 159 148 160 159 146 162 145 148 160 159 146 162 145 148 160 159 146 162 145
++148 160 159 146 162 145 148 160 159 148 160 159 148 160 159 146 162 145 148 160 159 146 162 145
++146 162 145 146 162 145 146 162 145 129 144 153 146 162 145 126 147 144 146 162 145 146 151 137
++146 151 137 121 143 132 121 143 132 121 143 132 121 143 132 117 142 111 98 121 131 117 142 111
++95 119 107 112 123 108 95 119 107 95 119 107 95 119 107 78 98 90 78 98 90 78 98 90
++75 99 72 75 81 69 60 82 70 60 82 70 60 82 70 60 82 70 60 82 70 59 79 61
++59 79 61 59 79 61 60 82 70 59 79 61 59 79 61 60 82 70 60 82 70 60 81 83
++75 99 72 78 98 90 78 98 90 78 98 90 94 105 108 95 119 107 95 119 107 112 123 108
++112 123 108 111 119 127 112 123 108 121 143 132 121 143 132 121 143 132 121 143 132 121 143 132
++146 151 137 126 147 144 146 151 137 126 147 144 126 147 144 146 162 145 146 162 145 129 144 153
++146 162 145 126 147 144 148 160 159 146 162 145 146 162 145 146 162 145 126 147 144 126 147 144
++146 151 137 126 147 144 121 143 132 121 143 132 121 143 132 121 143 132 117 142 111 111 119 127
++98 121 131 95 119 107 95 119 107 95 119 107 78 98 90 78 98 90 78 98 90 75 81 90
++75 81 82 60 82 70 60 82 70 53 63 61 59 79 61 53 63 61 53 63 61 51 73 47
++45 57 61 59 79 61 53 63 61 53 63 61 59 69 70 59 69 70 60 82 70 75 81 76
++75 81 82 78 98 90 78 98 90 78 98 90 94 105 108 94 105 108 95 119 107 95 119 107
++112 123 108 111 119 127 117 142 111 111 119 127 121 143 132 111 119 127 121 143 132 145 140 145
++121 143 132 121 143 132 145 140 145 126 147 144 126 147 144 146 162 145 126 147 144 145 140 145
++126 147 144 126 147 144 146 162 145 126 147 144 146 151 137 126 147 144 146 151 137 126 147 144
++146 151 137 129 144 153 146 151 137 126 147 144 146 151 137 129 144 153 126 147 144 126 147 144
++145 140 145 126 147 144 126 147 144 126 147 144 126 147 144 126 147 144 126 147 144 145 140 145
++126 147 144 121 143 132 121 143 132 111 119 127 121 143 132 121 143 132 112 123 108 98 121 131
++95 119 107 94 105 108 94 105 108 78 98 90 78 98 90 75 81 90 60 81 83 59 69 70
++59 69 70 45 57 61 45 57 61 45 57 61 43 55 48 35 47 50 35 47 50 45 57 61
++45 57 61 45 57 61 53 63 61 60 81 83 60 81 83 78 98 90 77 90 100 94 105 108
++95 119 107 95 119 107 111 119 127 111 119 127 111 119 127 121 143 132 122 134 144 121 143 132
++126 147 144 126 147 144 126 147 144 129 144 153 146 162 145 126 147 144 146 151 137 126 147 144
++146 151 137 126 147 144 121 143 132 122 134 144 121 143 132 117 142 111 111 119 127 112 123 108
++95 108 128 94 105 108 77 90 100 77 90 100 75 81 82 60 81 83 59 69 70 53 63 61
++45 57 61 43 55 48 32 40 58 35 47 50 35 47 50 35 47 50 35 47 50 29 34 50
++35 47 50 35 47 50 29 34 50 35 46 43 29 34 50 35 47 50 29 34 50 29 34 50
++29 34 50 29 34 50 29 34 50 29 34 50 29 34 50 24 30 43 34 40 43 29 34 50
++
++81 96 56 81 96 56 87 99 72 87 99 72 85 113 63 98 113 84 87 99 72 98 113 84
++85 113 63 87 99 72 85 113 63 88 121 82 85 113 63 87 120 67 87 99 72 98 113 84
++88 121 82 98 113 84 98 113 84 98 113 84 98 126 66 98 113 84 98 113 84 98 113 84
++98 113 84 98 113 84 98 113 84 88 121 82 98 113 84 98 113 84 98 113 84 98 113 84
++98 113 84 98 113 84 98 113 84 99 133 85 98 113 84 112 123 108 99 133 85 95 119 107
++98 113 84 95 119 107 98 113 84 98 113 84 88 121 82 87 99 72 87 99 72 87 99 72
++75 99 72 70 96 55 66 86 47 70 96 55 66 86 47 70 96 55 66 86 47 70 96 55
++70 96 55 66 86 47 81 96 56 70 96 55 81 96 56 81 96 56 75 99 72 81 96 56
++81 96 56 85 113 63 87 99 72 85 113 63 87 99 72 85 113 63 85 113 63 81 96 56
++85 113 63 75 99 72 82 107 52 75 99 72 82 107 52 75 99 72 81 96 56 81 96 56
++85 113 63 87 99 72 87 120 67 98 113 84 98 113 84 98 113 84 95 119 107 99 133 85
++117 127 86 99 133 85 112 123 108 99 133 85 117 127 86 112 123 108 99 133 85 117 127 86
++99 133 85 112 123 108 99 133 85 99 133 85 112 123 108 99 133 85 99 133 85 99 133 85
++99 133 85 99 133 85 99 133 85 98 113 84 117 127 86 98 113 84 98 113 84 98 113 84
++98 113 84 99 133 85 98 113 84 98 113 84 88 121 82 98 113 84 87 120 67 98 113 84
++87 120 67 98 113 84 98 113 84 87 99 72 87 120 67 87 99 72 88 121 82 87 120 67
++87 99 72 88 121 82 87 99 72 88 121 82 88 121 82 98 113 84 85 113 63 87 120 67
++87 99 72 98 113 84 98 113 84 87 120 67 98 113 84 98 132 75 98 113 84 99 133 85
++98 113 84 99 133 85 98 113 84 98 113 84 99 133 85 98 113 84 88 121 82 98 113 84
++88 121 82 87 99 72 87 120 67 85 113 63 87 99 72 75 99 72 85 113 63 85 113 63
++75 99 72 85 113 63 75 99 72 70 96 55 75 99 72 70 96 55 75 99 72 75 99 72
++73 107 51 75 99 72 73 107 51 75 99 72 75 99 72 75 99 72 75 99 72 81 96 56
++75 99 72 85 113 63 75 99 72 82 107 52 75 99 72 85 113 63 75 99 72 85 113 63
++87 99 72 81 96 56 85 113 63 75 99 72 85 113 63 75 99 72 85 113 63 75 99 72
++75 99 72 85 113 63 85 113 63 75 99 72 85 113 63 82 107 52 87 99 72 98 106 55
++87 99 72 98 106 55 98 106 55 87 99 72 98 106 55 117 114 76 98 106 55 117 114 76
++98 106 55 117 114 76 117 112 45 117 114 76 98 106 55 117 114 76 138 126 108 146 162 145
++166 156 164 90 98 89 78 98 90 122 134 144 121 143 132 75 81 76 22 25 24 3 3 1
++13 4 7 13 4 7 13 4 7 13 4 7 13 4 7 34 30 15 88 44 51 120 63 71
++88 73 31 76 18 19 76 46 20 59 36 42 23 10 10 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1
++3 3 1 3 3 1 3 3 1 7 12 13 47 49 42 81 96 56 117 114 76 117 127 86
++117 114 76 117 112 45 117 114 76 117 112 45 157 148 53 117 114 76 157 148 53 117 112 45
++117 112 45 157 148 53 117 112 45 157 148 53 117 112 45 157 148 53 117 112 45 157 148 53
++117 114 76 157 148 53 117 112 45 117 114 76 117 112 45 157 148 53 117 114 76 117 112 45
++157 148 53 117 112 45 157 148 53 117 114 76 117 112 45 98 132 66 117 112 45 117 127 86
++98 132 66 117 114 76 98 132 66 117 114 76 98 126 66 98 113 84 98 106 55 98 113 84
++85 113 63 98 113 84 85 113 63 88 121 82 87 99 72 88 121 82 87 99 72 88 121 82
++85 113 63 87 99 72 87 120 67 87 99 72 85 113 63 85 113 63 75 99 72 85 113 63
++75 99 72 87 120 67 88 121 82 75 99 72 88 121 82 75 99 72 88 121 82 87 120 67
++88 121 82 75 99 72 88 121 82 75 99 72 88 121 82 75 99 72 88 121 82 88 121 82
++75 99 72 88 121 82 88 121 82 85 113 63 88 121 82 87 99 72 88 121 82 88 121 82
++88 121 82 98 113 84 99 133 85 98 113 84 88 121 82 88 121 82 98 113 84 88 121 82
++87 99 72 85 113 63 75 99 72 87 99 72 81 96 56 70 96 55 66 86 47 66 86 47
++64 70 48 64 70 48 64 70 48 64 70 48 66 86 47 88 83 74 87 99 72 99 93 84
++98 113 84 117 99 86 112 123 108 112 123 108 112 123 108 112 123 108 138 126 108 117 142 111
++117 142 111 121 143 132 146 150 115 121 143 132 146 150 115 121 143 132 146 151 137 121 143 132
++146 150 115 121 143 132 146 150 115 121 143 132 117 142 111 146 150 115 121 143 132 117 142 111
++121 143 132 117 142 111 146 150 115 117 142 111 117 142 111 117 142 111 117 142 111 112 123 108
++117 142 111 117 127 86 112 123 108 99 133 85 98 113 84 112 123 108 98 113 84 99 133 85
++112 123 108 117 127 86 112 123 108 112 123 108 117 142 111 112 123 108 121 143 132 117 142 111
++117 142 111 146 150 115 121 143 132 121 143 132 121 143 132 146 151 137 121 143 132 146 151 137
++121 143 132 146 150 115 121 143 132 117 142 111 121 143 132 112 123 108 126 147 144 148 160 159
++166 176 200 185 202 202 194 199 226 201 216 228 208 221 247 150 168 183 111 122 142 131 144 168
++150 147 171 150 147 171 166 176 200 194 199 226 226 221 247 235 238 247 231 239 247 226 221 247
++231 239 247 226 221 247 231 239 247 226 221 247 231 239 247 231 239 247 221 238 247 226 221 247
++221 238 247 221 238 247 226 221 247 221 238 247 226 221 247 226 221 247 221 238 247 226 221 247
++221 238 247 226 221 247 221 238 247 226 221 247 208 221 247 221 238 247 208 221 247 208 221 247
++221 238 247 221 238 247 226 221 247 231 239 247 221 238 247 226 221 247 208 221 247 221 238 247
++226 221 247 185 202 202 150 168 183 146 162 145 126 147 144 146 162 145 126 147 144 146 162 145
++126 147 144 146 162 145 126 147 144 146 162 145 146 151 137 146 162 145 126 147 144 146 151 137
++126 147 144 146 151 137 126 147 144 146 151 137 121 143 132 126 147 144 146 151 137 121 143 132
++117 142 111 121 143 132 117 142 111 111 119 127 117 142 111 117 142 111 98 121 131 112 123 108
++95 119 107 95 119 107 88 121 82 94 105 108 78 98 90 95 119 107 78 98 90 95 119 107
++78 98 90 88 121 82 95 119 107 95 119 107 95 119 107 112 123 108 112 123 108 112 123 108
++117 142 111 111 119 127 117 142 111 121 143 132 121 143 132 121 143 132 146 151 137 126 147 144
++146 151 137 146 162 145 126 147 144 146 162 145 126 147 144 146 162 145 146 162 145 148 160 159
++146 162 145 146 162 145 146 162 145 146 162 145 146 162 145 146 162 145 146 162 145 146 162 145
++146 162 145 146 162 145 146 162 145 146 162 145 146 162 145 146 162 145 146 162 145 146 162 145
++129 144 153 146 162 145 146 162 145 126 147 144 146 151 137 126 147 144 126 147 144 126 147 144
++126 147 144 121 143 132 121 143 132 121 143 132 121 143 132 111 119 127 117 142 111 95 119 107
++112 123 108 95 119 107 95 119 107 90 98 89 90 98 89 78 98 90 78 98 90 75 99 72
++60 81 83 75 81 76 60 82 70 60 82 70 60 82 70 60 82 70 60 82 70 60 82 70
++60 82 70 60 82 70 60 82 70 60 82 70 60 82 70 60 82 70 60 82 70 75 99 72
++78 98 90 78 98 90 78 98 90 88 121 82 94 105 108 95 119 107 95 119 107 95 119 107
++112 123 108 117 142 111 111 119 127 121 143 132 121 143 132 121 143 132 121 143 132 121 143 132
++126 147 144 126 147 144 126 147 144 146 151 137 126 147 144 146 162 145 129 144 153 146 162 145
++146 162 145 129 144 153 146 162 145 129 144 153 146 162 145 129 144 153 146 162 145 126 147 144
++121 143 132 126 147 144 121 143 132 121 143 132 121 143 132 111 119 127 98 121 131 117 142 111
++98 121 131 95 119 107 95 119 107 95 119 107 94 105 108 78 98 90 78 98 90 78 98 90
++60 81 83 60 82 70 59 69 70 59 79 61 53 63 61 59 79 61 53 63 61 53 63 61
++53 63 61 53 63 61 59 79 61 59 69 70 60 82 70 60 82 70 60 82 70 75 81 82
++75 81 82 78 98 90 78 98 90 78 98 90 94 105 108 94 105 108 95 119 107 95 119 107
++98 121 131 112 123 108 111 119 127 111 119 127 117 142 111 111 119 127 121 143 132 121 143 132
++121 143 132 122 134 144 121 143 132 121 143 132 126 147 144 126 147 144 126 147 144 126 147 144
++126 147 144 146 151 137 126 147 144 126 147 144 129 144 153 146 151 137 126 147 144 126 147 144
++126 147 144 145 140 145 129 144 153 145 140 145 126 147 144 126 147 144 146 151 137 129 144 153
++126 147 144 146 151 137 129 144 153 146 151 137 126 147 144 145 140 145 126 147 144 126 147 144
++121 143 132 122 134 144 121 143 132 111 119 127 121 143 132 98 121 131 111 119 127 95 119 107
++95 119 107 94 105 108 78 98 90 77 90 100 78 98 90 60 81 83 60 81 83 60 82 70
++53 63 61 53 63 61 45 57 61 45 57 61 45 57 61 43 55 48 45 57 61 45 57 61
++45 57 61 53 63 61 60 82 70 60 81 83 75 81 82 78 98 90 77 90 100 94 105 108
++94 105 108 98 121 131 112 123 108 98 121 131 121 143 132 111 119 127 121 143 132 121 143 132
++122 134 144 146 151 137 126 147 144 126 147 144 126 147 144 126 147 144 126 147 144 126 147 144
++126 147 144 122 134 144 121 143 132 121 143 132 111 119 127 111 119 127 111 119 127 112 123 108
++94 105 108 94 105 108 78 98 90 78 98 90 75 81 82 59 69 70 59 69 70 46 59 71
++45 57 61 45 57 61 35 47 50 35 47 50 35 47 50 35 47 50 35 47 50 35 47 50
++35 47 50 35 47 50 35 47 50 35 47 50 35 47 50 29 34 50 35 47 50 35 47 50
++34 40 43 35 47 50 29 34 50 35 46 43 29 34 50 35 47 50 29 34 50 35 46 43
++
++70 96 55 81 96 56 85 113 63 81 96 56 81 96 56 87 99 72 85 113 63 81 96 56
++85 113 63 87 99 72 81 96 56 85 113 63 87 99 72 87 99 72 85 113 63 81 96 56
++85 113 63 87 99 72 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 87 120 67
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 87 120 67 87 120 67 88 121 82 98 113 84 88 121 82 98 113 84 98 113 84
++98 113 84 88 121 82 98 113 84 88 121 82 87 99 72 88 121 82 85 113 63 75 99 72
++81 96 56 70 96 55 66 86 47 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 81 96 56 70 96 55 82 107 52
++75 99 72 85 113 63 85 113 63 87 99 72 85 113 63 85 113 63 85 113 63 75 99 72
++85 113 63 81 96 56 85 113 63 81 96 56 85 113 63 81 96 56 73 107 51 75 99 72
++73 107 51 75 99 72 85 113 63 85 113 63 87 120 67 98 113 84 87 120 67 98 113 84
++98 113 84 98 132 75 98 113 84 99 133 85 98 113 84 99 133 85 98 113 84 99 133 85
++98 113 84 98 132 75 99 133 85 98 113 84 98 132 75 98 113 84 99 133 85 98 113 84
++98 113 84 98 113 84 98 113 84 98 113 84 88 121 82 88 121 82 98 132 75 98 113 84
++88 121 82 98 113 84 87 120 67 88 121 82 87 120 67 98 126 66 98 113 84 87 120 67
++87 120 67 87 120 67 85 113 63 87 120 67 87 120 67 87 120 67 87 120 67 87 99 72
++87 120 67 85 113 63 87 120 67 85 113 63 85 113 63 87 120 67 98 113 84 98 126 66
++87 120 67 87 120 67 87 120 67 87 120 67 88 121 82 98 113 84 98 126 66 98 113 84
++98 132 75 88 121 82 98 132 75 98 113 84 98 126 66 98 113 84 98 132 75 87 120 67
++87 120 67 87 120 67 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 82 107 52 85 113 63 85 113 63 73 107 51 85 113 63 73 107 51 85 113 63
++85 113 63 73 107 51 85 113 63 85 113 63 85 113 63 73 107 51 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 82 107 52 75 99 72 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 98 126 66 98 106 55 85 113 63 98 113 84 98 106 55
++98 106 55 98 106 55 98 106 55 98 106 55 98 106 55 117 127 86 146 151 137 166 180 164
++146 151 137 59 69 70 30 30 34 48 50 48 42 41 42 22 25 24 13 4 7 3 3 1
++7 12 13 13 4 7 15 17 7 13 4 7 3 3 1 26 12 13 75 56 53 101 83 74
++120 63 71 101 74 26 120 63 71 76 46 20 49 13 16 13 4 7 3 3 1 3 3 1
++3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 22 24 13 64 70 48 98 106 55 117 127 86 117 127 86 117 127 86
++117 114 76 98 132 66 157 148 53 117 127 86 117 112 45 98 132 66 117 112 45 117 127 86
++117 112 45 117 114 76 157 148 53 117 114 76 117 114 76 117 112 45 117 127 86 117 112 45
++117 114 76 117 112 45 117 114 76 157 148 53 117 112 45 117 127 86 117 112 45 157 148 53
++98 132 66 117 114 76 98 132 66 98 132 66 117 127 86 117 112 45 117 127 86 98 132 66
++117 112 45 98 132 66 117 114 76 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66
++98 126 66 98 126 66 87 99 72 87 120 67 85 113 63 87 120 67 87 120 67 87 99 72
++87 120 67 88 121 82 85 113 63 88 121 82 85 113 63 88 121 82 87 120 67 88 121 82
++85 113 63 88 121 82 85 113 63 88 121 82 87 120 67 88 121 82 85 113 63 88 121 82
++75 99 72 88 121 82 87 120 67 88 121 82 87 120 67 88 121 82 75 99 72 87 120 67
++87 120 67 88 121 82 85 113 63 88 121 82 87 99 72 87 120 67 88 121 82 88 121 82
++98 113 84 99 133 85 98 113 84 99 133 85 99 133 85 98 113 84 99 133 85 88 121 82
++98 113 84 88 121 82 85 113 63 85 113 63 87 99 72 81 96 56 81 96 56 80 96 46
++70 96 55 66 86 47 66 86 47 66 86 47 66 86 47 81 96 56 87 99 72 87 99 72
++98 113 84 98 113 84 98 113 84 112 123 108 117 127 86 117 142 111 117 142 111 138 126 108
++117 142 111 138 126 108 117 142 111 146 150 115 121 143 132 146 150 115 117 142 111 146 150 115
++121 143 132 117 142 111 117 142 111 146 150 115 117 142 111 121 143 132 117 142 111 117 142 111
++146 150 115 117 142 111 121 143 132 117 142 111 117 142 111 117 142 111 112 123 108 117 142 111
++99 133 85 112 123 108 99 133 85 112 123 108 117 127 86 99 133 85 117 127 86 98 113 84
++99 133 85 112 123 108 99 133 85 117 142 111 112 123 108 117 142 111 117 142 111 117 142 111
++117 142 111 121 143 132 117 142 111 146 150 115 121 143 132 146 150 115 121 143 132 146 150 115
++121 143 132 117 142 111 146 150 115 121 143 132 112 123 108 117 142 111 121 143 132 148 160 159
++185 202 202 185 202 202 194 199 226 194 199 226 188 180 202 150 168 183 131 144 168 95 108 128
++131 144 168 194 199 226 208 221 247 235 238 247 231 239 247 231 239 247 231 239 247 231 239 247
++231 239 247 226 221 247 221 238 247 231 239 247 226 221 247 221 238 247 226 221 247 231 239 247
++221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247
++221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 208 221 247 208 221 247 221 238 247
++208 221 247 226 221 247 221 238 247 231 239 247 231 239 247 231 239 247 226 221 247 221 238 247
++226 221 247 201 216 228 166 174 181 126 147 144 126 147 144 146 151 137 146 151 137 126 147 144
++146 151 137 146 151 137 126 147 144 146 151 137 126 147 144 146 151 137 126 147 144 146 151 137
++121 143 132 146 151 137 121 143 132 121 143 132 146 151 137 121 143 132 121 143 132 117 142 111
++121 143 132 117 142 111 117 142 111 117 142 111 112 123 108 117 142 111 95 119 107 117 142 111
++99 133 85 95 119 107 95 119 107 88 121 82 88 121 82 88 121 82 78 98 90 88 121 82
++88 121 82 95 119 107 98 113 84 98 113 84 95 119 107 95 119 107 95 119 107 112 123 108
++98 121 131 117 142 111 117 142 111 117 142 111 117 142 111 121 143 132 121 143 132 121 143 132
++121 143 132 126 147 144 146 151 137 146 151 137 126 147 144 146 151 137 126 147 144 146 162 145
++126 147 144 146 162 145 146 162 145 146 162 145 126 147 144 146 162 145 126 147 144 146 162 145
++146 162 145 145 140 145 146 162 145 146 151 137 146 162 145 126 147 144 146 151 137 126 147 144
++146 151 137 126 147 144 146 151 137 126 147 144 121 143 132 146 151 137 121 143 132 121 143 132
++121 143 132 121 143 132 121 143 132 121 143 132 112 123 108 117 142 111 95 119 107 112 123 108
++95 119 107 95 119 107 88 121 82 95 119 107 88 121 82 78 98 90 78 98 90 75 99 72
++75 99 72 75 99 72 60 82 70 75 81 69 60 82 70 75 81 69 60 82 70 60 82 70
++60 82 70 60 82 70 60 82 70 60 82 70 60 82 70 60 82 70 60 82 70 75 99 72
++75 99 72 78 98 90 78 98 90 95 119 107 78 98 90 98 113 84 95 119 107 112 123 108
++95 119 107 112 123 108 111 119 127 117 142 111 112 123 108 121 143 132 138 126 108 121 143 132
++121 143 132 121 143 132 121 143 132 126 147 144 126 147 144 126 147 144 146 151 137 126 147 144
++126 147 144 146 151 137 126 147 144 146 162 145 126 147 144 146 151 137 126 147 144 126 147 144
++146 151 137 121 143 132 121 143 132 121 143 132 111 119 127 121 143 132 117 142 111 98 121 131
++112 123 108 95 119 107 94 105 108 95 119 107 78 98 90 78 98 90 78 98 90 78 98 90
++75 81 76 75 81 76 60 82 70 60 82 70 59 79 61 59 79 61 59 79 61 59 79 61
++59 79 61 59 79 61 53 63 61 59 79 61 59 79 61 60 82 70 75 81 69 60 82 70
++75 81 76 75 99 72 78 98 90 78 98 90 78 98 90 98 113 84 94 105 108 95 119 107
++95 119 107 95 119 107 112 123 108 98 121 131 117 142 111 111 119 127 117 142 111 111 119 127
++121 143 132 121 143 132 121 143 132 121 143 132 121 143 132 121 143 132 145 140 145 121 143 132
++121 143 132 126 147 144 121 143 132 146 151 137 126 147 144 126 147 144 126 147 144 146 151 137
++126 147 144 126 147 144 146 151 137 126 147 144 126 147 144 126 147 144 126 147 144 146 151 137
++126 147 144 126 147 144 126 147 144 126 147 144 126 147 144 126 147 144 121 143 132 126 147 144
++121 143 132 121 143 132 121 143 132 111 119 127 112 123 108 111 119 127 95 119 107 95 119 107
++95 119 107 78 98 90 78 98 90 78 98 90 75 81 82 60 81 83 60 82 70 59 69 70
++53 63 61 53 63 61 53 63 61 53 63 61 43 55 48 45 57 61 43 55 48 45 57 61
++53 63 61 59 69 70 60 81 83 75 81 76 75 81 82 78 98 90 78 98 90 94 105 108
++95 119 107 95 119 107 98 121 131 112 123 108 111 119 127 111 119 127 111 119 127 121 143 132
++121 143 132 121 143 132 121 143 132 145 140 145 121 143 132 121 143 132 145 140 145 121 143 132
++121 143 132 121 143 132 111 119 127 121 143 132 111 119 127 112 123 108 95 119 107 95 119 107
++94 105 108 94 105 108 78 98 90 75 81 90 75 81 82 59 69 70 59 69 70 59 69 70
++45 57 61 45 57 61 35 47 50 48 50 48 35 47 50 43 42 50 35 47 50 35 47 50
++35 47 50 35 47 50 35 47 50 35 47 50 35 47 50 35 47 50 35 47 50 35 47 50
++35 47 50 35 47 50 35 47 50 35 46 43 35 46 43 35 47 50 34 40 43 35 47 50
++
++66 86 47 70 96 45 81 96 56 70 96 55 81 96 56 73 107 51 81 96 56 70 96 55
++70 96 55 73 107 51 75 99 72 70 96 55 81 96 56 73 107 51 81 96 56 73 107 51
++75 99 72 81 96 56 73 107 51 81 96 56 85 113 63 81 96 56 85 113 63 87 99 72
++85 113 63 87 99 72 85 113 63 87 99 72 85 113 63 87 99 72 87 99 72 85 113 63
++75 99 72 85 113 63 87 99 72 85 113 63 85 113 63 87 120 67 87 120 67 87 120 67
++87 120 67 98 113 84 85 113 63 87 120 67 85 113 63 85 113 63 87 99 72 82 107 52
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++66 86 47 70 96 55 70 96 55 70 96 55 81 96 56 70 96 55 85 113 63 73 107 51
++85 113 63 85 113 63 75 99 72 85 113 63 85 113 63 75 99 72 85 113 63 85 113 63
++85 113 63 73 107 51 75 99 72 82 107 52 73 107 51 73 107 51 70 96 55 81 96 56
++73 107 51 85 113 63 82 107 52 85 113 63 85 113 63 85 113 63 87 120 67 87 120 67
++87 120 67 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67
++98 126 66 98 113 84 87 120 67 98 126 66 87 120 67 87 120 67 87 120 67 98 126 66
++87 120 67 98 126 66 87 120 67 87 120 67 87 120 67 87 120 67 98 113 84 87 120 67
++87 120 67 87 120 67 87 120 67 85 113 63 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 87 120 67 87 120 67 87 120 67 87 120 67 85 113 63
++87 120 67 87 120 67 87 120 67 98 126 66 87 120 67 98 126 66 88 121 82 87 120 67
++98 126 66 98 113 84 98 126 66 88 121 82 98 126 66 88 121 82 98 126 66 85 113 63
++87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 73 107 51 85 113 63 73 107 51 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 73 107 51 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 87 120 67 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++87 120 67 87 120 67 85 113 63 82 119 53 85 113 63 85 113 63 85 113 63 87 120 67
++87 120 67 85 113 63 87 122 63 85 113 63 87 120 67 85 113 63 87 122 63 98 106 55
++87 120 67 98 106 55 98 113 84 87 99 72 117 127 86 146 150 115 166 180 164 177 169 143
++112 123 108 59 57 61 15 17 7 3 3 1 3 3 1 3 3 1 3 4 9 13 4 7
++13 4 7 7 12 13 23 10 10 13 4 7 13 4 7 23 10 10 53 35 17 122 49 24
++176 103 41 120 63 71 101 74 26 102 33 26 26 12 13 13 4 7 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1
++3 4 9 29 35 19 66 86 47 98 113 84 117 127 86 98 132 66 98 132 66 117 112 45
++98 132 66 117 112 45 98 132 66 98 132 66 117 114 76 98 132 66 157 148 53 98 132 66
++117 114 76 117 112 45 117 127 86 117 112 45 157 148 53 117 127 86 157 148 53 117 127 86
++157 148 53 98 132 75 117 127 86 98 132 66 117 127 86 98 132 66 98 132 66 117 114 76
++98 132 66 117 112 45 98 132 66 117 112 45 98 132 66 98 132 66 98 132 66 98 132 66
++117 114 76 98 132 66 98 126 66 98 126 66 98 126 66 87 120 67 98 113 84 87 120 67
++87 120 67 98 113 84 87 120 67 87 120 67 88 121 82 85 113 63 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 87 120 67 88 121 82 85 113 63 88 121 82 87 120 67 88 121 82 87 120 67
++87 120 67 87 120 67 87 120 67 88 121 82 88 121 82 87 120 67 88 121 82 88 121 82
++87 120 67 88 121 82 87 120 67 88 121 82 87 120 67 88 121 82 98 113 84 98 132 75
++98 132 75 98 113 84 99 133 85 99 133 85 117 127 86 99 133 85 99 133 85 98 132 75
++98 126 66 87 120 67 87 120 67 87 120 67 85 113 63 85 113 63 81 96 56 81 96 56
++81 96 56 80 96 46 66 86 47 66 86 47 66 86 47 81 96 56 81 96 56 87 99 72
++117 114 76 98 113 84 117 127 86 117 127 86 112 123 108 112 123 108 138 126 108 117 142 111
++117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111
++117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111
++117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 127 86 112 123 108
++99 133 85 117 127 86 99 133 85 99 133 85 98 113 84 99 133 85 98 113 84 99 133 85
++117 127 86 99 133 85 99 133 85 117 127 86 117 142 111 117 127 86 117 142 111 138 126 108
++117 142 111 121 143 132 146 150 115 117 142 111 146 150 115 121 143 132 146 150 115 121 143 132
++117 142 111 121 143 132 117 142 111 117 142 111 117 142 111 112 123 108 117 142 111 148 160 159
++185 202 202 201 216 228 194 199 226 150 168 183 131 144 168 131 144 168 166 176 200 111 122 142
++166 176 200 208 221 247 226 221 247 235 238 247 221 238 247 221 238 247 226 221 247 231 239 247
++226 221 247 231 239 247 226 221 247 221 238 247 231 239 247 226 221 247 231 239 247 226 221 247
++221 238 247 226 221 247 226 221 247 208 221 247 226 221 247 221 238 247 226 221 247 208 221 247
++226 221 247 221 238 247 208 221 247 221 238 247 226 221 247 221 238 247 208 221 247 208 221 247
++221 238 247 221 238 247 221 238 247 221 238 247 231 239 247 231 239 247 221 238 247 226 221 247
++221 238 247 201 216 228 166 174 181 146 162 145 121 143 132 146 151 137 121 143 132 146 150 115
++121 143 132 121 143 132 146 150 115 121 143 132 146 150 115 121 143 132 146 150 115 117 142 111
++146 150 115 121 143 132 117 142 111 121 143 132 117 142 111 121 143 132 146 150 115 121 143 132
++117 142 111 138 126 108 117 142 111 112 123 108 117 142 111 95 119 107 117 142 111 95 119 107
++99 133 85 95 119 107 88 121 82 88 121 82 78 98 90 88 121 82 88 121 82 88 121 82
++78 98 90 88 121 82 88 121 82 95 119 107 98 113 84 99 133 85 95 119 107 117 142 111
++95 119 107 117 142 111 111 119 127 117 142 111 121 143 132 117 142 111 146 150 115 121 143 132
++146 151 137 121 143 132 146 151 137 121 143 132 146 151 137 146 151 137 126 147 144 146 151 137
++146 151 137 146 151 137 126 147 144 146 151 137 146 151 137 126 147 144 146 151 137 146 151 137
++126 147 144 146 162 145 126 147 144 146 151 137 126 147 144 146 151 137 126 147 144 146 151 137
++126 147 144 146 151 137 126 147 144 121 143 132 146 151 137 121 143 132 117 142 111 121 143 132
++117 142 111 117 142 111 112 123 108 117 142 111 112 123 108 112 123 108 112 123 108 95 119 107
++95 119 107 95 119 107 98 113 84 78 98 90 90 98 89 88 121 82 75 99 72 75 99 72
++75 99 72 60 82 70 75 99 72 70 96 55 75 99 72 70 96 55 60 82 70 70 96 55
++75 99 72 70 96 55 75 99 72 70 96 55 70 96 55 75 99 72 75 99 72 75 99 72
++78 98 90 88 121 82 75 99 72 88 121 82 98 113 84 95 119 107 95 119 107 95 119 107
++112 123 108 112 123 108 117 142 111 112 123 108 121 143 132 112 123 108 121 143 132 117 142 111
++121 143 132 121 143 132 121 143 132 146 150 115 121 143 132 146 151 137 121 143 132 146 151 137
++126 147 144 146 151 137 126 147 144 146 151 137 126 147 144 126 147 144 146 151 137 121 143 132
++121 143 132 121 143 132 121 143 132 117 142 111 121 143 132 112 123 108 112 123 108 95 119 107
++112 123 108 95 119 107 95 119 107 78 98 90 90 98 89 78 98 90 75 99 72 75 99 72
++75 81 82 75 99 72 59 79 61 59 79 61 60 82 70 59 79 61 59 79 61 59 79 61
++59 79 61 59 79 61 59 79 61 59 79 61 60 82 70 59 79 61 60 82 70 75 99 72
++75 99 72 75 81 76 78 98 90 78 98 90 90 98 89 90 98 89 95 119 107 95 119 107
++95 119 107 95 119 107 112 123 108 112 123 108 98 121 131 117 142 111 111 119 127 117 142 111
++111 119 127 138 126 108 121 143 132 121 143 132 138 126 108 121 143 132 121 143 132 121 143 132
++121 143 132 121 143 132 121 143 132 121 143 132 121 143 132 146 151 137 121 143 132 121 143 132
++126 147 144 121 143 132 126 147 144 121 143 132 146 151 137 121 143 132 121 143 132 121 143 132
++121 143 132 146 151 137 121 143 132 121 143 132 121 143 132 146 151 137 121 143 132 121 143 132
++121 143 132 111 119 127 117 142 111 111 119 127 112 123 108 112 123 108 95 119 107 94 105 108
++94 105 108 78 98 90 78 98 90 78 98 90 75 99 72 60 82 70 60 82 70 53 63 61
++59 79 61 50 61 48 51 73 47 45 57 61 53 63 61 50 61 48 53 63 61 53 63 61
++59 79 61 59 69 70 60 82 70 75 81 76 78 98 90 78 98 90 90 98 89 94 105 108
++95 119 107 95 119 107 112 123 108 112 123 108 111 119 127 117 142 111 111 119 127 121 143 132
++121 143 132 121 143 132 121 143 132 121 143 132 121 143 132 121 143 132 121 143 132 121 143 132
++121 143 132 111 119 127 121 143 132 112 123 108 111 119 127 112 123 108 111 119 127 94 105 108
++94 105 108 90 98 89 78 98 90 75 81 82 75 81 76 60 82 70 59 69 70 53 63 61
++50 61 48 43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 35 47 50
++48 50 48 43 55 48 35 47 50 43 55 48 35 47 50 42 47 42 35 47 50 42 47 42
++35 47 50 42 47 42 35 47 50 35 46 43 35 47 50 35 47 50 35 47 50 35 47 50
++
++70 96 45 70 96 45 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 45
++70 96 55 70 96 55 70 96 45 70 96 55 70 96 55 70 96 55 70 96 55 81 96 56
++73 107 51 70 96 55 70 96 55 70 96 55 70 96 55 73 107 51 81 96 56 81 96 56
++81 96 56 82 107 52 70 96 55 73 107 51 81 96 56 81 96 56 73 107 51 81 96 56
++82 107 52 70 96 55 82 107 52 82 107 52 87 99 72 85 113 63 85 113 63 87 99 72
++85 113 63 85 113 63 87 99 72 85 113 63 87 99 72 85 113 63 75 99 72 85 113 63
++81 96 56 70 96 55 70 96 55 66 86 47 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 64 97 47 70 96 55 70 96 55 70 96 55 75 99 72 70 96 55 81 96 56
++73 107 51 85 113 63 85 113 63 81 96 56 85 113 63 85 113 63 85 113 63 85 113 63
++75 99 72 85 113 63 85 113 63 85 113 63 70 96 55 73 107 51 75 99 72 73 107 51
++75 99 72 70 96 55 73 107 51 75 99 72 82 107 52 85 113 63 85 113 63 85 113 63
++85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 87 120 67 87 99 72 85 113 63
++85 113 63 85 113 63 87 120 67 87 99 72 87 120 67 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 87 120 67 85 113 63 87 120 67 85 113 63 85 113 63
++87 120 67 85 113 63 87 120 67 85 113 63 87 120 67 85 113 63 85 113 63 85 113 63
++87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 87 120 67 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 98 113 84 87 120 67 87 120 67 98 126 66
++87 120 67 87 120 67 87 120 67 87 120 67 88 121 82 98 126 66 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 87 120 67 98 126 66 98 113 84 87 120 67 87 120 67
++87 120 67 85 113 63 87 120 67 85 113 63 87 120 67 87 120 67 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 73 107 51
++85 113 63 85 113 63 87 120 67 85 113 63 87 120 67 85 113 63 85 113 63 85 113 63
++87 120 67 85 113 63 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 88 121 82
++87 120 67 87 120 67 87 120 67 87 122 63 85 113 63 87 120 67 87 120 67 98 126 66
++85 113 63 98 126 66 85 113 63 87 122 63 87 120 67 98 106 55 98 126 66 87 120 67
++98 106 55 85 113 63 85 113 63 117 114 76 146 150 115 166 180 164 177 169 143 146 151 137
++112 123 108 65 63 61 14 16 17 3 3 1 3 3 1 3 3 1 3 3 1 7 12 13
++15 17 7 13 4 7 13 4 7 13 4 7 13 4 7 13 4 7 26 12 13 76 46 20
++122 49 24 101 74 26 122 49 24 76 46 20 49 13 16 13 4 7 3 3 1 3 3 1
++3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 6 15 6
++42 47 42 87 99 72 98 113 84 117 127 86 98 132 66 117 114 76 98 126 66 98 132 66
++98 132 66 98 132 66 117 127 86 117 112 45 98 132 66 117 112 45 98 126 66 98 126 66
++157 148 53 98 132 66 117 112 45 117 127 86 98 132 66 117 114 76 98 132 66 117 112 45
++98 132 66 98 132 66 157 148 53 117 112 45 98 132 66 157 148 53 117 112 45 98 132 66
++157 148 53 98 132 66 117 127 86 98 132 66 117 114 76 98 132 66 117 114 76 98 126 66
++98 132 66 98 126 66 98 126 66 98 113 84 98 126 66 98 126 66 98 126 66 98 126 66
++88 121 82 98 126 66 87 120 67 98 113 84 87 120 67 88 121 82 87 120 67 88 121 82
++87 120 67 88 121 82 87 120 67 88 121 82 98 126 66 88 121 82 98 113 84 98 126 66
++98 113 84 98 126 66 88 121 82 98 113 84 87 120 67 88 121 82 87 120 67 88 121 82
++88 121 82 98 132 75 88 121 82 98 126 66 88 121 82 88 121 82 98 126 66 88 121 82
++88 121 82 88 121 82 88 121 82 98 126 66 88 121 82 98 126 66 98 132 75 98 113 84
++98 132 75 99 133 85 99 133 85 112 123 108 99 133 85 99 133 85 117 127 86 99 133 85
++99 133 85 98 113 84 98 132 75 98 113 84 87 120 67 87 120 67 85 113 63 85 113 63
++85 113 63 81 96 56 81 96 56 81 96 56 81 96 56 81 96 56 81 96 56 87 99 72
++98 113 84 98 113 84 98 113 84 112 123 108 117 127 86 117 127 86 117 142 111 117 127 86
++117 142 111 138 126 108 117 142 111 117 142 111 138 126 108 117 142 111 117 142 111 117 142 111
++117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111
++117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 99 133 85 117 142 111
++117 127 86 99 133 85 117 127 86 99 133 85 98 113 84 99 133 85 117 127 86 99 133 85
++99 133 85 99 133 85 112 123 108 99 133 85 117 127 86 112 123 108 117 142 111 117 142 111
++117 142 111 117 142 111 117 142 111 121 143 132 117 142 111 121 143 132 117 142 111 121 143 132
++117 142 111 146 150 115 117 142 111 117 142 111 117 142 111 112 123 108 117 142 111 146 162 145
++185 202 202 201 216 228 188 180 202 111 122 142 60 63 87 95 108 128 194 199 226 194 199 226
++226 221 247 226 221 247 226 221 247 221 238 247 226 221 247 221 238 247 231 239 247 226 221 247
++231 239 247 226 221 247 231 239 247 221 238 247 226 221 247 231 239 247 221 238 247 221 238 247
++226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 208 221 247 226 221 247 221 238 247
++226 221 247 221 238 247 226 221 247 226 221 247 221 238 247 208 221 247 221 238 247 208 221 247
++221 238 247 208 221 247 221 238 247 221 238 247 231 239 247 231 239 247 231 239 247 231 239 247
++221 238 247 208 221 247 166 174 181 129 144 153 121 143 132 121 143 132 146 150 115 121 143 132
++117 142 111 117 142 111 146 150 115 121 143 132 121 143 132 146 150 115 121 143 132 117 142 111
++121 143 132 117 142 111 121 143 132 146 150 115 117 142 111 121 143 132 117 142 111 117 142 111
++117 142 111 111 119 127 117 142 111 117 142 111 95 119 107 117 142 111 95 119 107 99 133 85
++95 119 107 88 121 82 88 121 82 88 121 82 88 121 82 90 98 89 88 121 82 98 113 84
++88 121 82 98 113 84 98 113 84 99 133 85 95 119 107 95 119 107 99 133 85 95 119 107
++117 142 111 112 123 108 117 142 111 117 142 111 121 143 132 117 142 111 121 143 132 121 143 132
++121 143 132 146 150 115 121 143 132 146 151 137 121 143 132 121 143 132 146 151 137 121 143 132
++146 151 137 121 143 132 146 151 137 121 143 132 146 151 137 121 143 132 146 151 137 121 143 132
++146 151 137 121 143 132 146 151 137 126 147 144 121 143 132 146 151 137 121 143 132 121 143 132
++146 150 115 121 143 132 121 143 132 121 143 132 117 142 111 121 143 132 117 142 111 121 143 132
++117 142 111 111 119 127 117 142 111 111 119 127 117 142 111 95 119 107 112 123 108 95 119 107
++99 133 85 95 119 107 90 98 89 88 121 82 87 99 72 78 98 90 75 99 72 75 99 72
++75 99 72 75 99 72 75 99 72 75 99 72 60 82 70 75 99 72 75 99 72 75 99 72
++75 99 72 60 82 70 75 99 72 75 99 72 75 99 72 60 82 70 75 99 72 75 99 72
++75 99 72 78 98 90 88 121 82 78 98 90 78 98 90 98 113 84 99 133 85 95 119 107
++112 123 108 95 119 107 112 123 108 112 123 108 117 142 111 117 142 111 111 119 127 117 142 111
++121 143 132 138 126 108 121 143 132 121 143 132 121 143 132 121 143 132 121 143 132 121 143 132
++146 151 137 121 143 132 126 147 144 126 147 144 146 151 137 121 143 132 126 147 144 121 143 132
++121 143 132 138 126 108 121 143 132 111 119 127 117 142 111 98 121 131 117 142 111 95 119 107
++95 119 107 95 119 107 88 121 82 94 105 108 88 121 82 90 98 89 78 98 90 78 98 90
++75 81 76 75 99 72 75 81 69 60 82 70 75 81 69 60 82 70 60 82 70 60 82 70
++59 79 61 59 79 61 60 82 70 60 82 70 60 82 70 75 81 69 60 82 70 75 81 69
++75 99 72 75 99 72 87 99 72 78 98 90 78 98 90 88 121 82 90 98 89 98 113 84
++95 119 107 95 119 107 95 119 107 112 123 108 95 119 107 112 123 108 112 123 108 111 119 127
++117 142 111 111 119 127 117 142 111 111 119 127 121 143 132 121 143 132 121 143 132 121 143 132
++121 143 132 121 143 132 146 151 137 121 143 132 121 143 132 121 143 132 121 143 132 121 143 132
++121 143 132 121 143 132 146 151 137 121 143 132 121 143 132 121 143 132 121 143 132 121 143 132
++121 143 132 121 143 132 121 143 132 121 143 132 121 143 132 121 143 132 121 143 132 138 126 108
++121 143 132 117 142 111 111 119 127 117 142 111 111 119 127 95 119 107 95 119 107 94 105 108
++95 119 107 78 98 90 78 98 90 78 98 90 75 81 76 60 82 70 60 82 70 59 79 61
++53 63 61 59 79 61 53 63 61 53 63 61 53 63 61 51 73 47 53 63 61 53 63 61
++59 69 70 60 82 70 60 82 70 75 81 82 75 81 82 78 98 90 78 98 90 90 98 89
++94 105 108 94 105 108 95 119 107 98 121 131 112 123 108 121 143 132 111 119 127 117 142 111
++111 119 127 121 143 132 119 117 138 121 143 132 121 143 132 121 143 132 121 143 132 121 143 132
++111 119 127 117 142 111 111 119 127 117 142 111 111 119 127 112 123 108 95 119 107 95 119 107
++90 98 89 78 98 90 78 98 90 78 98 90 75 81 76 59 69 70 53 63 61 53 63 61
++53 63 61 43 55 48 45 57 61 43 55 48 35 47 50 43 55 48 45 57 61 43 55 48
++43 55 48 43 42 50 43 55 48 48 50 48 43 55 48 43 55 48 43 55 48 43 55 48
++43 55 48 35 47 50 43 55 48 35 47 50 43 55 48 35 47 50 48 50 48 35 47 50
++
++66 86 47 70 96 45 70 96 55 70 96 45 70 96 45 66 86 47 70 96 45 70 96 55
++70 96 45 66 86 47 64 97 47 70 96 45 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 81 96 56 73 107 51 70 96 55 73 107 51 70 96 55 81 96 56 73 107 51
++81 96 56 70 96 55 73 107 51 70 96 55 70 96 55 73 107 51 70 96 55 70 96 55
++70 96 55 81 96 56 70 96 55 70 96 55 73 107 51 70 96 55 81 96 56 82 107 52
++75 99 72 82 107 52 85 113 63 75 99 72 85 113 63 82 107 52 85 113 63 81 96 56
++70 96 55 70 96 55 70 96 45 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 73 107 51 70 96 55 73 107 51 73 107 51 81 96 56 73 107 51 73 107 51
++82 107 52 73 107 51 81 96 56 73 107 51 81 96 56 73 107 51 85 113 63 81 96 56
++85 113 63 81 96 56 73 107 51 70 96 55 73 107 51 73 107 51 73 107 51 81 96 56
++73 107 51 82 107 52 73 107 51 73 107 51 82 107 52 85 113 63 82 107 52 85 113 63
++85 113 63 81 96 56 85 113 63 85 113 63 81 96 56 85 113 63 85 113 63 85 113 63
++82 107 52 85 113 63 81 96 56 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++87 120 67 98 126 66 85 113 63 87 122 63 87 120 67 87 120 67 87 120 67 87 120 67
++98 126 66 87 120 67 87 120 67 98 126 66 87 120 67 87 120 67 85 113 63 85 113 63
++85 113 63 87 120 67 85 113 63 87 120 67 87 122 63 85 113 63 85 113 63 82 119 53
++85 113 63 85 113 63 82 119 53 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 87 122 63 85 113 63 87 120 67 85 113 63 87 120 67 87 120 67 87 120 67
++87 120 67 85 113 63 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++85 113 63 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 85 113 63 87 120 67
++98 126 66 98 126 66 87 120 67 87 122 63 87 122 63 98 126 66 98 126 66 87 120 67
++98 113 84 87 120 67 117 127 86 117 142 111 166 180 164 166 180 164 146 162 145 138 126 108
++94 105 108 65 63 61 22 25 24 3 3 1 3 3 1 3 3 1 3 4 9 13 4 7
++13 4 7 7 12 13 13 4 7 13 4 7 13 4 7 3 3 1 13 4 7 49 13 16
++76 46 20 76 44 53 76 46 20 52 30 35 52 30 15 23 10 10 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 23 31 15 51 73 47
++85 113 63 98 132 75 98 132 75 98 132 75 98 126 66 98 126 66 98 126 66 117 112 45
++98 132 66 117 112 45 98 132 66 98 132 66 98 132 66 117 127 86 98 132 66 98 132 66
++98 132 66 98 132 66 117 127 86 98 132 66 117 112 45 98 132 66 98 132 66 117 127 86
++98 132 66 117 114 76 98 132 66 98 132 66 98 132 66 98 132 66 117 127 86 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 126 66 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 87 120 67 98 126 66
++98 126 66 88 121 82 98 126 66 98 126 66 98 126 66 87 120 67 98 126 66 98 126 66
++98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 132 75
++98 126 66 98 132 75 98 126 66 98 126 66 98 132 75 98 126 66 98 132 75 98 126 66
++98 126 66 98 132 75 98 126 66 98 132 75 98 132 75 98 132 75 98 126 66 88 121 82
++98 126 66 98 126 66 98 126 66 98 132 75 98 126 66 88 121 82 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 99 133 85 117 127 86 99 133 85 98 132 75
++117 127 86 98 132 75 98 132 75 98 132 75 98 126 66 98 113 84 87 120 67 85 113 63
++85 113 63 85 113 63 85 113 63 81 96 56 81 96 56 81 96 56 81 96 56 98 106 55
++85 113 63 98 106 55 98 113 84 98 132 75 117 127 86 117 127 86 117 127 86 117 127 86
++117 127 86 117 127 86 117 127 86 117 142 111 117 127 86 117 142 111 117 127 86 117 142 111
++117 142 111 117 127 86 117 142 111 117 142 111 117 127 86 117 142 111 117 142 111 117 142 111
++117 142 111 117 127 86 117 142 111 117 127 86 117 142 111 99 133 85 117 127 86 99 133 85
++99 133 85 117 127 86 99 133 85 98 132 75 98 132 75 98 113 84 98 132 75 98 132 75
++117 127 86 98 132 75 99 133 85 117 127 86 99 133 85 117 142 111 117 127 86 117 142 111
++117 142 111 117 142 111 117 142 111 146 150 115 117 142 111 117 142 111 146 150 115 117 142 111
++117 142 111 117 142 111 117 142 111 117 127 86 117 142 111 117 127 86 112 123 108 146 162 145
++166 174 181 185 202 202 129 144 153 77 91 115 60 63 87 111 122 142 194 199 226 226 221 247
++231 239 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247
++221 238 247 231 239 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 231 239 247
++226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 208 221 247
++221 238 247 226 221 247 221 238 247 208 221 247 221 238 247 208 221 247 221 238 247 208 221 247
++221 238 247 221 238 247 221 238 247 231 239 247 231 239 247 231 239 247 235 238 247 231 239 247
++221 238 247 232 215 228 185 202 202 146 162 145 117 142 111 117 142 111 117 142 111 117 142 111
++117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111
++117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111
++117 142 111 117 142 111 117 142 111 112 123 108 99 133 85 99 133 85 99 133 85 95 119 107
++99 133 85 99 133 85 98 113 84 88 121 82 88 121 82 88 121 82 88 121 82 88 121 82
++88 121 82 88 121 82 95 119 107 99 133 85 99 133 85 99 133 85 112 123 108 99 133 85
++112 123 108 117 142 111 117 142 111 112 123 108 117 142 111 117 142 111 117 142 111 117 142 111
++146 150 115 117 142 111 121 143 132 146 150 115 117 142 111 146 150 115 121 143 132 117 142 111
++121 143 132 146 150 115 121 143 132 146 150 115 121 143 132 146 150 115 121 143 132 146 150 115
++121 143 132 117 142 111 121 143 132 146 150 115 117 142 111 121 143 132 117 142 111 146 150 115
++121 143 132 117 142 111 146 150 115 117 142 111 117 142 111 117 142 111 117 142 111 112 123 108
++117 142 111 117 142 111 112 123 108 117 142 111 95 119 107 112 123 108 99 133 85 95 119 107
++88 121 82 98 113 84 88 121 82 88 121 82 75 99 72 87 99 72 87 99 72 75 99 72
++75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72
++75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72
++75 99 72 87 99 72 75 99 72 88 121 82 88 121 82 98 113 84 95 119 107 99 133 85
++95 119 107 117 142 111 112 123 108 112 123 108 112 123 108 117 142 111 117 142 111 117 142 111
++117 142 111 117 142 111 121 143 132 117 142 111 117 142 111 121 143 132 146 150 115 121 143 132
++117 142 111 121 143 132 146 150 115 121 143 132 121 143 132 121 143 132 117 142 111 121 143 132
++117 142 111 121 143 132 117 142 111 112 123 108 117 142 111 112 123 108 95 119 107 95 119 107
++99 133 85 95 119 107 98 113 84 78 98 90 88 121 82 78 98 90 75 99 72 75 99 72
++75 99 72 60 82 70 70 96 55 75 81 69 70 96 55 75 81 69 59 79 61 70 96 55
++59 79 61 60 82 70 70 96 55 75 77 62 70 96 55 75 81 69 70 96 55 75 81 69
++75 99 72 75 99 72 75 99 72 87 99 72 90 98 89 90 98 89 88 121 82 94 105 108
++98 113 84 95 119 107 95 119 107 112 123 108 95 119 107 112 123 108 112 123 108 117 142 111
++112 123 108 117 142 111 111 119 127 117 142 111 117 142 111 112 123 108 117 142 111 138 126 108
++121 143 132 117 142 111 121 143 132 138 126 108 121 143 132 117 142 111 121 143 132 117 142 111
++121 143 132 117 142 111 121 143 132 121 143 132 121 143 132 138 126 108 121 143 132 121 143 132
++138 126 108 121 143 132 117 142 111 121 143 132 138 126 108 121 143 132 117 142 111 111 119 127
++117 142 111 112 123 108 112 123 108 112 123 108 112 123 108 95 119 107 95 119 107 90 98 89
++78 98 90 88 121 82 78 98 90 75 99 72 60 82 70 60 82 70 59 79 61 59 79 61
++59 79 61 59 79 61 51 73 47 51 73 47 53 63 61 51 73 47 59 79 61 59 79 61
++59 79 61 75 77 62 75 81 76 75 99 72 75 99 72 78 98 90 90 98 89 95 119 107
++98 113 84 95 119 107 95 119 107 112 123 108 112 123 108 111 119 127 117 142 111 111 119 127
++117 142 111 121 143 132 117 142 111 121 143 132 112 123 108 121 143 132 112 123 108 111 119 127
++117 142 111 111 119 127 117 142 111 111 119 127 95 119 107 95 119 107 95 119 107 90 98 89
++90 98 89 78 98 90 75 99 72 75 81 76 60 82 70 60 82 70 53 63 61 51 73 47
++53 63 61 50 61 48 50 61 48 43 55 48 52 55 48 43 55 48 43 55 48 43 55 48
++43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 48 50 48 43 55 48
++43 55 48 43 55 48 42 47 42 43 55 48 42 47 42 43 55 48 43 55 48 42 47 42
++
++64 97 47 70 96 45 70 96 45 70 96 45 66 86 47 64 97 47 70 96 45 64 97 47
++70 96 45 64 97 47 66 86 47 64 97 47 70 96 45 64 97 47 70 96 45 70 96 45
++70 96 45 70 96 45 80 96 46 70 96 55 70 96 45 73 107 51 70 96 55 70 96 55
++73 107 51 70 96 55 70 96 55 80 96 46 70 96 55 70 96 45 70 96 55 70 96 45
++70 96 55 70 96 45 70 96 55 70 96 45 70 96 45 70 96 45 73 107 51 70 96 55
++70 96 45 70 96 55 70 96 55 82 107 52 73 107 51 73 107 51 81 96 56 73 107 51
++73 107 51 70 96 55 73 107 51 70 96 55 73 107 51 73 107 51 70 96 55 70 96 55
++70 96 55 73 107 51 70 96 55 73 107 51 70 96 55 73 107 51 73 107 51 70 96 55
++73 107 51 70 96 55 82 107 52 70 96 55 73 107 51 81 96 56 73 107 51 81 96 56
++73 107 51 81 96 56 73 107 51 73 107 51 80 96 46 73 107 51 70 96 55 81 96 56
++73 107 51 81 96 56 70 96 55 81 96 56 70 96 55 82 107 52 73 107 51 81 96 56
++73 107 51 82 107 52 73 107 51 70 96 55 73 107 51 73 107 51 73 107 51 73 107 51
++81 96 56 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51 82 107 52
++82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 85 113 63
++82 107 52 82 107 52 82 107 52 82 107 52 85 113 63 85 113 63 85 113 63 85 113 63
++82 107 52 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 82 119 53 85 113 63
++82 119 53 85 113 63 85 113 63 85 113 63 82 119 53 85 113 63 87 122 63 85 113 63
++85 113 63 85 113 63 82 119 53 87 122 63 87 122 63 85 113 63 87 120 67 85 113 63
++82 119 53 98 106 55 87 122 63 85 113 63 87 120 67 85 113 63 98 126 66 85 113 63
++87 122 63 85 113 63 87 122 63 85 113 63 87 122 63 82 119 53 85 113 63 82 119 53
++85 113 63 85 113 63 87 122 63 85 113 63 87 122 63 87 122 63 87 122 63 87 122 63
++87 122 63 87 122 63 87 122 63 87 122 63 87 122 63 87 122 63 87 122 63 87 122 63
++87 122 63 87 122 63 87 122 63 87 122 63 98 126 66 87 120 67 87 120 67 98 126 66
++87 120 67 87 120 67 87 120 67 87 120 67 87 122 63 98 126 66 87 122 63 98 126 66
++87 120 67 98 126 66 87 120 67 87 120 67 98 126 66 87 120 67 98 126 66 98 126 66
++87 120 67 87 122 63 98 126 66 87 122 63 98 126 66 87 120 67 87 120 67 98 113 84
++98 126 66 98 113 84 121 143 132 177 169 143 166 180 164 166 156 164 146 150 115 111 119 127
++112 123 108 65 63 61 23 20 24 3 3 1 3 3 1 3 4 9 13 4 7 7 12 13
++7 12 13 13 4 7 6 15 6 6 15 6 13 4 7 3 3 1 13 4 7 13 4 7
++34 30 15 52 30 15 52 30 35 76 46 20 52 30 15 26 12 13 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 6 15 6 29 35 19 66 86 47 98 126 66
++98 132 75 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 132 66 98 132 66
++98 126 66 98 132 66 98 132 66 98 132 66 117 112 45 98 132 66 98 132 66 117 114 76
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 117 112 45
++98 132 66 98 132 66 98 132 66 98 132 66 117 114 76 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 117 114 76 98 132 66 98 132 66 98 132 66
++98 126 66 98 132 66 98 132 75 98 132 66 98 132 75 98 126 66 98 132 75 98 126 66
++98 132 75 98 126 66 98 132 75 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75
++98 126 66 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75
++98 126 66 98 126 66 98 132 75 98 126 66 98 126 66 98 132 75 98 126 66 98 132 75
++98 132 75 98 113 84 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 98 126 66
++98 132 75 98 126 66 98 132 75 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75
++98 126 66 98 132 75 98 132 75 117 127 86 98 132 75 99 133 85 99 133 85 117 127 86
++99 133 85 117 127 86 99 133 85 117 127 86 98 132 75 98 126 66 98 126 66 98 126 66
++98 113 84 98 126 66 85 113 63 85 113 63 85 113 63 98 106 55 85 113 63 82 107 52
++85 113 63 85 113 63 98 126 66 98 126 66 98 132 75 99 133 85 99 133 85 99 133 85
++117 127 86 117 142 111 117 127 86 117 127 86 117 127 86 99 133 85 117 127 86 99 133 85
++117 127 86 117 142 111 117 127 86 98 132 75 117 142 111 117 127 86 117 142 111 117 127 86
++117 127 86 117 142 111 99 133 85 117 142 111 99 133 85 117 127 86 99 133 85 117 127 86
++99 133 85 98 132 75 98 132 75 117 114 76 98 132 75 98 132 75 98 126 66 98 132 75
++98 132 75 98 132 75 99 133 85 117 127 86 99 133 85 99 133 85 117 142 111 117 127 86
++117 142 111 117 127 86 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111
++117 142 111 117 142 111 117 127 86 117 142 111 117 127 86 117 127 86 99 133 85 146 151 137
++166 180 164 166 176 200 119 117 138 77 91 115 119 117 138 166 176 200 194 199 226 208 221 247
++208 221 247 208 221 247 226 221 247 208 221 247 226 221 247 221 238 247 226 221 247 221 238 247
++226 221 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 231 239 247 226 221 247
++221 238 247 226 221 247 226 221 247 221 238 247 226 221 247 226 221 247 221 238 247 226 221 247
++221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 221 238 247 208 221 247 221 238 247
++208 221 247 221 238 247 221 238 247 231 239 247 231 239 247 231 239 247 235 238 247 235 238 247
++221 238 247 221 238 247 185 202 202 148 160 159 117 142 111 117 142 111 117 142 111 117 142 111
++117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111
++117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111
++112 123 108 99 133 85 117 142 111 99 133 85 117 142 111 99 133 85 112 123 108 99 133 85
++98 113 84 99 133 85 88 121 82 88 121 82 98 113 84 88 121 82 98 113 84 88 121 82
++98 113 84 99 133 85 98 113 84 99 133 85 95 119 107 99 133 85 112 123 108 99 133 85
++117 142 111 99 133 85 112 123 108 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111
++117 142 111 117 142 111 117 142 111 117 142 111 121 143 132 117 142 111 117 142 111 146 150 115
++117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 121 143 132 117 142 111 117 142 111
++117 142 111 146 150 115 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111
++117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111
++112 123 108 112 123 108 117 142 111 95 119 107 99 133 85 99 133 85 95 119 107 88 121 82
++98 113 84 88 121 82 88 121 82 87 99 72 88 121 82 75 99 72 88 121 82 87 99 72
++85 113 63 87 99 72 87 99 72 75 99 72 85 113 63 75 99 72 85 113 63 75 99 72
++85 113 63 75 99 72 85 113 63 75 99 72 85 113 63 87 99 72 85 113 63 75 99 72
++88 121 82 75 99 72 88 121 82 87 99 72 98 113 84 88 121 82 88 121 82 95 119 107
++99 133 85 99 133 85 95 119 107 99 133 85 117 142 111 95 119 107 112 123 108 117 142 111
++112 123 108 117 142 111 112 123 108 121 143 132 117 142 111 117 142 111 117 142 111 117 142 111
++117 142 111 121 143 132 117 142 111 117 142 111 117 142 111 121 143 132 117 142 111 121 143 132
++112 123 108 117 142 111 112 123 108 117 142 111 112 123 108 112 123 108 95 119 107 99 133 85
++95 119 107 98 113 84 90 98 89 88 121 82 78 98 90 85 113 63 75 99 72 75 99 72
++75 99 72 75 99 72 75 99 72 75 81 69 75 99 72 70 96 55 75 81 69 70 96 55
++75 81 69 70 96 55 75 81 69 70 96 55 60 82 70 70 96 55 75 81 69 70 96 55
++75 81 69 75 99 72 75 99 72 75 99 72 75 99 72 88 121 82 90 98 89 88 121 82
++98 113 84 98 113 84 95 119 107 99 133 85 95 119 107 112 123 108 95 119 107 111 119 127
++117 142 111 112 123 108 117 142 111 112 123 108 117 142 111 111 119 127 117 142 111 111 119 127
++112 123 108 117 142 111 112 123 108 121 143 132 112 123 108 121 143 132 112 123 108 117 142 111
++117 142 111 138 126 108 121 143 132 117 142 111 117 142 111 121 143 132 117 142 111 117 142 111
++111 119 127 121 143 132 117 142 111 111 119 127 117 142 111 117 142 111 112 123 108 117 142 111
++112 123 108 112 123 108 95 119 107 112 123 108 95 119 107 95 119 107 90 98 89 88 121 82
++87 99 72 78 98 90 75 99 72 75 81 76 70 96 55 75 81 69 59 79 61 59 79 61
++59 79 61 51 73 47 59 79 61 51 73 47 59 79 61 59 79 61 59 79 61 59 79 61
++59 79 61 60 82 70 60 82 70 75 81 76 75 99 72 78 98 90 90 98 89 90 98 89
++95 119 107 98 113 84 95 119 107 95 119 107 112 123 108 112 123 108 112 123 108 117 142 111
++112 123 108 112 123 108 111 119 127 117 142 111 111 119 127 117 142 111 111 119 127 117 142 111
++111 119 127 112 123 108 112 123 108 95 119 107 95 119 107 95 119 107 90 98 89 90 98 89
++90 98 89 78 98 90 75 81 76 75 99 72 75 81 69 59 79 61 65 63 61 59 79 61
++51 73 47 53 63 61 53 63 61 50 61 48 50 61 48 50 61 48 50 61 48 50 61 48
++50 61 48 50 61 48 50 61 48 50 61 48 50 61 48 43 55 48 50 61 48 43 55 48
++43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 43 55 48 43 55 48
++
++64 97 47 70 96 45 64 97 47 64 97 47 66 86 47 70 96 45 66 86 47 64 97 47
++66 86 47 64 97 47 70 96 45 66 86 47 64 97 47 66 86 47 64 97 47 66 86 47
++70 96 45 70 96 45 66 86 47 70 96 45 70 96 45 66 86 47 70 96 55 70 96 55
++70 96 45 70 96 45 70 96 45 70 96 55 70 96 45 70 96 55 70 96 45 70 96 55
++70 96 45 70 96 45 70 96 55 70 96 45 70 96 55 70 96 45 70 96 55 70 96 45
++70 96 45 70 96 55 70 96 45 70 96 55 70 96 55 81 96 56 73 107 51 70 96 55
++81 96 56 70 96 55 73 107 51 70 96 55 73 107 51 70 96 55 70 96 55 73 107 51
++70 96 45 70 96 55 73 107 51 81 96 56 73 107 51 70 96 55 73 107 51 80 96 46
++73 107 51 70 96 55 73 107 51 70 96 55 73 107 51 70 96 55 73 107 51 70 96 55
++73 107 51 81 96 56 73 107 51 70 96 55 73 107 51 70 96 45 73 107 51 73 107 51
++70 96 55 73 107 51 81 96 56 73 107 51 82 107 52 73 107 51 85 113 63 73 107 51
++73 107 51 70 96 55 73 107 51 80 96 46 73 107 51 81 96 56 73 107 51 82 107 52
++73 107 51 73 107 51 81 96 56 82 107 52 73 107 51 73 107 51 82 107 52 73 107 51
++73 107 51 81 96 56 73 107 51 82 107 52 82 107 52 82 107 52 82 107 52 82 107 52
++82 107 52 85 113 63 82 107 52 82 107 52 82 107 52 82 107 52 85 113 63 82 107 52
++82 119 53 82 107 52 85 113 63 82 107 52 85 113 63 82 119 53 85 113 63 82 119 53
++85 113 63 82 107 52 82 119 53 82 107 52 85 113 63 82 119 53 98 106 55 82 119 53
++82 119 53 85 113 63 82 119 53 85 113 63 82 119 53 85 113 63 85 113 63 85 113 63
++82 119 53 82 119 53 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 82 119 53 85 113 63 82 119 53 85 113 63 82 119 53 87 122 63 85 113 63
++87 122 63 85 113 63 87 122 63 87 122 63 87 122 63 85 113 63 82 119 53 87 122 63
++85 113 63 82 119 53 87 122 63 87 122 63 87 122 63 98 126 66 87 120 67 87 122 63
++87 122 63 87 122 63 87 122 63 98 126 66 87 120 67 98 126 66 87 120 67 87 120 67
++98 126 66 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66
++87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 87 120 67
++87 122 63 98 106 55 98 126 66 98 126 66 87 120 67 87 120 67 98 126 66 99 133 85
++117 127 86 117 142 111 146 151 137 185 202 202 166 180 164 146 151 137 112 123 108 112 123 108
++112 96 108 65 63 61 14 16 17 3 3 1 3 3 1 3 3 1 3 4 9 7 12 13
++13 4 7 7 12 13 13 4 7 13 4 7 3 3 1 13 4 7 13 4 7 13 4 7
++23 10 10 23 10 10 49 13 16 49 13 16 49 13 16 23 10 10 6 15 6 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 6 15 6 15 22 17 50 61 48 75 99 72 99 133 85 117 127 86
++98 132 75 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66
++98 126 66 98 126 66 117 112 45 98 132 66 98 132 66 98 132 66 117 112 45 98 132 66
++98 132 66 117 112 45 98 132 66 98 132 66 117 127 86 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 117 112 45 98 132 66 98 132 66 98 132 66 98 126 66 98 132 66
++117 114 76 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 126 66 98 132 66
++98 126 66 98 132 66 98 126 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75
++98 132 75 87 120 67 98 132 75 98 132 75 98 126 66 98 132 75 98 132 75 98 132 75
++98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++117 127 86 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 117 127 86 99 133 85
++99 133 85 117 127 86 99 133 85 98 132 75 99 133 85 98 132 75 98 132 75 98 126 66
++98 126 66 98 126 66 117 114 76 87 120 67 98 126 66 85 113 63 98 106 55 85 113 63
++98 106 55 85 113 63 98 106 55 85 113 63 98 113 84 98 126 66 98 113 84 117 127 86
++99 133 85 98 132 75 117 127 86 99 133 85 99 133 85 117 127 86 99 133 85 99 133 85
++117 127 86 99 133 85 117 142 111 98 132 75 117 127 86 98 132 75 117 142 111 98 132 75
++117 142 111 99 133 85 117 127 86 99 133 85 117 127 86 99 133 85 117 127 86 99 133 85
++117 127 86 98 132 75 99 133 85 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75
++117 127 86 98 132 75 117 127 86 99 133 85 117 127 86 117 142 111 99 133 85 117 142 111
++99 133 85 117 142 111 99 133 85 117 127 86 117 142 111 117 127 86 117 142 111 117 127 86
++117 127 86 99 133 85 117 142 111 99 133 85 117 142 111 99 133 85 99 133 85 117 142 111
++150 171 159 185 202 202 148 160 159 129 144 153 166 176 200 194 199 226 208 221 247 201 216 228
++226 221 247 201 216 228 208 221 247 226 221 247 208 221 247 221 238 247 226 221 247 226 221 247
++208 221 247 221 238 247 226 221 247 221 238 247 221 238 247 226 221 247 231 239 247 226 221 247
++231 239 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 208 221 247 221 238 247
++208 221 247 226 221 247 221 238 247 221 238 247 226 221 247 221 238 247 221 238 247 208 221 247
++221 238 247 226 221 247 221 238 247 231 239 247 240 251 247 235 238 247 240 251 247 231 239 247
++231 239 247 221 238 247 185 202 202 148 160 159 117 142 111 95 119 107 117 127 86 117 142 111
++99 133 85 117 142 111 99 133 85 99 133 85 117 142 111 99 133 85 117 127 86 117 142 111
++99 133 85 117 142 111 117 127 86 117 142 111 117 127 86 117 142 111 117 127 86 117 142 111
++117 127 86 117 142 111 99 133 85 99 133 85 117 127 86 99 133 85 99 133 85 99 133 85
++99 133 85 99 133 85 98 113 84 99 133 85 99 133 85 88 121 82 99 133 85 88 121 82
++99 133 85 98 113 84 99 133 85 99 133 85 117 127 86 99 133 85 99 133 85 112 123 108
++99 133 85 117 142 111 117 142 111 99 133 85 117 142 111 112 123 108 117 142 111 117 142 111
++117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111
++117 142 111 117 142 111 117 142 111 146 150 115 117 142 111 117 142 111 117 142 111 117 142 111
++117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111
++117 142 111 117 142 111 112 123 108 117 142 111 112 123 108 112 123 108 112 123 108 112 123 108
++99 133 85 117 142 111 99 133 85 99 133 85 95 119 107 98 113 84 99 133 85 98 113 84
++88 121 82 88 121 82 87 99 72 88 121 82 87 99 72 88 121 82 87 99 72 88 121 82
++88 121 82 75 99 72 87 120 67 75 99 72 85 113 63 87 99 72 88 121 82 85 113 63
++75 99 72 88 121 82 75 99 72 88 121 82 75 99 72 88 121 82 75 99 72 87 120 67
++87 99 72 88 121 82 75 99 72 88 121 82 88 121 82 98 113 84 88 121 82 88 121 82
++95 119 107 99 133 85 95 119 107 99 133 85 95 119 107 99 133 85 117 142 111 112 123 108
++112 123 108 117 142 111 112 123 108 117 142 111 112 123 108 117 142 111 117 142 111 117 142 111
++117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 138 126 108 117 142 111 112 123 108
++112 123 108 112 123 108 112 123 108 112 123 108 95 119 107 99 133 85 95 119 107 98 113 84
++98 113 84 95 119 107 88 121 82 78 98 90 87 120 67 78 98 90 87 99 72 75 99 72
++75 99 72 70 96 55 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72 75 99 72
++75 99 72 75 99 72 75 99 72 75 99 72 70 96 55 75 81 69 75 99 72 70 96 55
++75 99 72 75 99 72 75 99 72 87 99 72 87 99 72 78 98 90 87 99 72 98 113 84
++78 98 90 98 113 84 95 119 107 98 113 84 95 119 107 99 133 85 112 123 108 95 119 107
++112 123 108 112 123 108 112 123 108 112 123 108 112 123 108 112 123 108 112 123 108 117 142 111
++112 123 108 117 142 111 111 119 127 117 142 111 112 123 108 117 142 111 112 123 108 121 143 132
++112 123 108 111 119 127 117 142 111 112 123 108 117 142 111 112 123 108 117 142 111 111 119 127
++117 142 111 112 123 108 117 142 111 112 123 108 117 142 111 111 119 127 112 123 108 112 123 108
++112 123 108 112 123 108 95 119 107 95 119 107 98 113 84 98 113 84 90 98 89 90 98 89
++78 98 90 87 99 72 75 99 72 75 99 72 75 81 69 60 82 70 70 96 55 59 79 61
++59 79 61 59 79 61 59 79 61 59 79 61 59 79 61 59 79 61 59 79 61 75 77 62
++60 82 70 75 81 69 75 99 72 75 99 72 75 99 72 90 98 89 88 121 82 98 113 84
++94 105 108 98 113 84 95 119 107 112 123 108 95 119 107 112 123 108 111 119 127 112 123 108
++111 119 127 117 142 111 111 119 127 112 123 108 111 119 127 117 142 111 112 123 108 112 123 108
++112 123 108 95 119 107 95 119 107 95 119 107 98 113 84 90 98 89 90 98 89 88 121 82
++78 98 90 75 99 72 75 99 72 60 82 70 75 81 69 59 79 61 59 79 61 53 63 61
++59 79 61 64 70 48 53 63 61 51 73 47 53 63 61 50 61 48 50 61 48 51 73 47
++50 61 48 50 61 48 50 61 48 50 61 48 53 63 61 50 61 48 50 61 48 50 61 48
++50 61 48 50 61 48 50 61 48 43 55 48 50 61 48 43 55 48 50 61 48 43 55 48
++
++66 86 47 64 97 47 70 96 45 66 86 47 64 97 47 66 86 47 64 97 47 66 86 47
++64 97 47 66 86 47 70 96 55 64 97 47 70 96 55 66 86 47 70 96 55 66 86 47
++70 96 45 66 86 47 70 96 45 70 96 45 66 86 47 64 97 47 70 96 45 70 96 45
++70 96 55 70 96 45 70 96 55 70 96 45 70 96 55 70 96 45 70 96 45 70 96 45
++70 96 55 70 96 45 70 96 45 70 96 55 70 96 45 70 96 55 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 73 107 51 70 96 55 73 107 51 81 96 56 70 96 55
++73 107 51 70 96 45 73 107 51 80 96 46 70 96 45 81 96 56 73 107 51 81 96 56
++73 107 51 80 96 46 70 96 45 70 96 45 80 96 46 70 96 45 80 96 46 70 96 45
++70 96 45 73 107 51 80 96 46 73 107 51 81 96 56 73 107 51 81 96 56 73 107 51
++82 107 52 73 107 51 73 107 51 82 107 52 73 107 51 73 107 51 80 96 46 73 107 51
++80 96 46 73 107 51 73 107 51 70 96 55 73 107 51 70 96 55 73 107 51 81 96 56
++82 107 52 73 107 51 81 96 56 73 107 51 73 107 51 73 107 51 73 107 51 70 96 55
++73 107 51 81 96 56 73 107 51 73 107 51 70 96 55 82 107 52 73 107 51 81 96 56
++82 107 52 73 107 51 82 107 52 82 107 52 73 107 51 85 113 63 73 107 51 85 113 63
++82 107 52 73 107 51 82 107 52 73 107 51 82 107 52 82 107 52 82 107 52 82 107 52
++82 107 52 82 107 52 82 107 52 82 119 53 82 107 52 82 107 52 82 119 53 82 107 52
++82 107 52 82 107 52 82 107 52 82 119 53 82 107 52 82 107 52 82 119 53 82 107 52
++82 119 53 82 107 52 85 113 63 82 119 53 82 107 52 82 119 53 82 119 53 82 119 53
++85 113 63 82 119 53 82 119 53 82 119 53 85 113 63 82 119 53 85 113 63 82 119 53
++82 119 53 98 106 55 82 119 53 85 113 63 82 119 53 85 113 63 82 119 53 87 122 63
++87 122 63 87 122 63 87 122 63 85 113 63 87 122 63 87 122 63 87 122 63 85 113 63
++82 119 53 82 119 53 98 106 55 87 122 63 85 113 63 87 122 63 87 122 63 98 126 66
++87 122 63 98 126 66 87 122 63 87 122 63 87 122 63 98 126 66 87 122 63 98 126 66
++87 122 63 87 120 67 98 126 66 87 122 63 98 126 66 87 122 63 87 122 63 98 126 66
++87 122 63 98 126 66 87 122 63 87 122 63 98 126 66 85 113 63 98 126 66 98 126 66
++87 122 63 87 122 63 87 120 67 98 126 66 87 120 67 98 113 84 99 133 85 138 126 108
++117 142 111 146 162 145 166 174 181 208 215 180 166 156 164 112 123 108 121 143 132 141 116 139
++112 123 108 52 55 48 7 12 13 3 3 1 3 3 1 3 4 9 3 4 9 13 4 7
++7 12 13 6 15 6 13 4 7 6 15 6 7 12 13 13 4 7 3 3 1 13 4 7
++3 3 1 13 4 7 13 4 7 3 3 1 13 4 7 15 17 7 13 4 7 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++6 15 6 29 35 19 49 74 23 70 96 55 87 120 67 98 126 66 98 132 75 98 126 66
++98 126 66 87 122 63 98 126 66 87 122 63 98 132 66 87 122 63 98 132 66 82 119 53
++98 126 66 82 119 53 98 132 66 98 126 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 126 66 98 126 66 98 126 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 75 98 132 66 98 132 66 98 126 66 98 132 66 98 126 66 98 126 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 75 98 132 66
++98 132 75 98 126 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75
++98 132 75 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75
++98 132 66 98 132 75 98 132 66 117 127 86 98 132 66 98 132 75 98 132 75 98 132 75
++117 127 86 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 98 126 66
++98 132 75 98 126 66 98 126 66 87 120 67 98 126 66 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 87 122 63 98 106 55 87 120 67 98 126 66 98 126 66
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86
++99 133 85 98 132 75 98 132 75 99 133 85 157 148 53 99 133 85 98 132 66 117 127 86
++98 132 66 117 127 86 98 132 75 99 133 85 98 132 75 99 133 85 98 132 75 99 133 85
++98 132 66 117 127 86 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 66
++98 132 66 98 132 75 98 132 75 99 133 85 98 132 75 98 132 75 98 132 75 98 132 75
++117 127 86 98 132 66 117 142 111 98 132 75 99 133 85 98 132 75 117 127 86 99 133 85
++99 133 85 117 127 86 98 132 66 117 127 86 98 132 75 99 133 85 117 127 86 99 133 85
++121 143 132 166 180 164 166 174 181 166 174 181 166 176 200 194 199 226 201 216 228 201 216 228
++201 216 228 201 216 228 226 221 247 201 216 228 226 221 247 226 221 247 208 221 247 221 238 247
++226 221 247 226 221 247 208 221 247 226 221 247 226 221 247 221 238 247 226 221 247 221 238 247
++226 221 247 226 221 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 221 238 247
++226 221 247 221 238 247 208 221 247 221 238 247 226 221 247 221 238 247 221 238 247 226 221 247
++221 238 247 221 238 247 231 239 247 231 239 247 231 239 247 240 251 247 235 238 247 240 251 247
++235 238 247 240 251 247 201 216 228 150 171 159 117 142 111 99 133 85 99 133 85 99 133 85
++99 133 85 98 132 75 117 127 86 99 133 85 117 127 86 99 133 85 117 142 111 98 132 75
++117 142 111 99 133 85 117 142 111 117 127 86 117 142 111 99 133 85 117 127 86 99 133 85
++99 133 85 99 133 85 117 127 86 99 133 85 99 133 85 99 133 85 99 133 85 117 127 86
++99 133 85 99 133 85 99 133 85 98 132 75 99 133 85 98 132 75 98 113 84 98 132 75
++88 121 82 98 132 75 99 133 85 98 113 84 99 133 85 99 133 85 99 133 85 99 133 85
++117 127 86 99 133 85 99 133 85 117 142 111 99 133 85 117 127 86 99 133 85 117 127 86
++117 127 86 117 127 86 117 142 111 117 127 86 117 142 111 117 142 111 117 142 111 117 142 111
++117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111
++117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 99 133 85
++117 142 111 99 133 85 117 127 86 99 133 85 99 133 85 99 133 85 99 133 85 99 133 85
++99 133 85 99 133 85 99 133 85 99 133 85 99 133 85 88 121 82 88 121 82 87 120 67
++87 120 67 88 121 82 87 120 67 87 120 67 88 121 82 85 113 63 87 120 67 85 113 63
++85 113 63 87 120 67 85 113 63 85 113 63 88 121 82 85 113 63 85 113 63 88 121 82
++85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 87 120 67 85 113 63
++87 120 67 87 99 72 87 120 67 87 99 72 87 99 72 87 120 67 98 113 84 88 121 82
++99 133 85 98 113 84 99 133 85 99 133 85 99 133 85 99 133 85 99 133 85 99 133 85
++99 133 85 112 123 108 99 133 85 117 142 111 117 127 86 112 123 108 117 142 111 112 123 108
++117 142 111 117 127 86 117 142 111 112 123 108 117 142 111 112 123 108 117 142 111 112 123 108
++117 142 111 99 133 85 112 123 108 99 133 85 99 133 85 99 133 85 98 113 84 98 113 84
++98 113 84 88 121 82 88 121 82 87 99 72 88 121 82 85 113 63 85 113 63 85 113 63
++81 96 56 75 99 72 85 113 63 87 99 72 81 96 56 75 99 72 75 99 72 81 96 56
++75 99 72 70 96 55 75 99 72 81 96 56 75 99 72 75 99 72 70 96 55 75 99 72
++75 99 72 81 96 56 87 99 72 75 99 72 87 99 72 85 113 63 88 121 82 87 99 72
++88 121 82 88 121 82 98 113 84 98 113 84 98 113 84 98 113 84 95 119 107 99 133 85
++99 133 85 95 119 107 99 133 85 112 123 108 99 133 85 95 119 107 112 123 108 112 123 108
++112 123 108 112 123 108 112 123 108 112 123 108 117 142 111 112 123 108 112 123 108 112 123 108
++117 142 111 112 123 108 117 142 111 112 123 108 112 123 108 112 123 108 112 123 108 117 142 111
++112 123 108 112 123 108 117 142 111 112 123 108 112 123 108 99 133 85 112 123 108 112 123 108
++95 119 107 99 133 85 99 133 85 98 113 84 95 119 107 90 98 89 88 121 82 85 113 63
++87 99 72 75 99 72 75 99 72 75 99 72 70 96 55 70 96 55 59 79 61 70 96 55
++70 96 55 59 79 61 66 86 47 59 79 61 70 96 55 66 86 47 59 79 61 70 96 55
++60 82 70 70 96 55 75 99 72 87 99 72 75 99 72 87 99 72 78 98 90 90 98 89
++98 113 84 95 119 107 98 113 84 98 113 84 95 119 107 112 123 108 95 119 107 112 123 108
++95 119 107 112 123 108 112 123 108 112 123 108 112 123 108 112 123 108 95 119 107 112 123 108
++95 119 107 112 123 108 95 119 107 98 113 84 95 119 107 88 121 82 90 98 89 75 99 72
++75 99 72 75 99 72 75 81 69 75 81 69 59 79 61 59 79 61 59 79 61 51 73 47
++64 70 48 51 73 47 51 73 47 64 70 48 51 73 47 51 73 47 51 73 47 51 73 47
++64 70 48 51 73 47 64 70 48 51 73 47 51 73 47 50 61 48 50 61 48 51 73 47
++50 61 48 50 61 48 50 61 48 50 61 48 50 61 48 50 61 48 50 61 48 50 61 48
++
++64 97 47 64 97 47 70 96 45 64 97 47 66 86 47 66 86 47 66 86 47 66 86 47
++64 97 47 66 86 47 64 97 47 66 86 47 64 97 47 66 86 47 64 97 47 66 86 47
++64 97 47 70 96 45 66 86 47 66 86 47 64 97 47 66 86 47 70 96 45 66 86 47
++64 97 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 55 70 96 45 70 96 55
++70 96 45 70 96 45 64 97 47 64 97 47 64 97 47 64 97 47 64 97 47 64 97 47
++64 97 47 70 96 45 70 96 55 70 96 45 70 96 45 80 96 46 70 96 55 73 107 51
++70 96 55 80 96 46 73 107 51 73 107 51 73 107 51 81 96 56 73 107 51 81 96 56
++73 107 51 80 96 46 73 107 51 70 96 45 70 96 45 70 96 45 80 96 46 70 96 45
++80 96 46 70 96 45 70 96 45 73 107 51 82 107 52 70 96 45 73 107 51 80 96 46
++73 107 51 81 96 56 82 107 52 73 107 51 70 96 45 73 107 51 70 96 45 73 107 51
++80 96 46 73 107 51 80 96 46 73 107 51 73 107 51 81 96 56 73 107 51 73 107 51
++82 107 52 73 107 51 73 107 51 70 96 55 80 96 46 70 96 55 73 107 51 80 96 46
++73 107 51 73 107 51 70 96 45 73 107 51 73 107 51 81 96 56 73 107 51 82 107 52
++73 107 51 81 96 56 85 113 63 70 96 55 85 113 63 73 107 51 73 107 51 73 107 51
++82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 73 107 51 82 107 52 82 107 52
++82 119 53 82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 82 107 52
++82 107 52 82 107 52 82 107 52 82 107 52 82 119 53 82 107 52 85 113 63 82 119 53
++82 107 52 82 119 53 82 107 52 85 113 63 82 107 52 82 107 52 82 119 53 82 107 52
++82 119 53 82 107 52 82 119 53 82 107 52 82 119 53 82 119 53 82 107 52 82 119 53
++82 107 52 82 119 53 82 119 53 85 113 63 82 119 53 85 113 63 82 119 53 85 113 63
++82 119 53 98 106 55 82 119 53 87 122 63 87 122 63 87 122 63 98 106 55 82 119 53
++82 119 53 85 113 63 82 119 53 87 122 63 82 119 53 82 119 53 85 113 63 87 122 63
++87 122 63 87 122 63 87 122 63 87 122 63 87 122 63 87 122 63 87 122 63 87 122 63
++87 122 63 98 126 66 85 113 63 87 122 63 87 122 63 87 122 63 87 122 63 87 122 63
++87 122 63 87 122 63 87 122 63 87 122 63 87 122 63 87 122 63 87 122 63 98 106 55
++87 122 63 87 122 63 87 120 67 87 120 67 117 127 86 112 123 108 117 142 111 146 151 137
++146 162 145 185 202 202 185 202 202 188 180 202 121 143 132 111 119 127 145 140 145 121 143 132
++95 91 100 47 44 42 3 4 9 3 3 1 3 3 1 3 3 1 3 4 9 7 12 13
++13 4 7 13 4 7 6 15 6 13 4 7 13 4 7 7 12 13 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 7 12 13 33 39 38
++51 73 47 81 96 56 85 113 63 98 132 75 98 132 75 98 126 66 98 126 66 87 122 63
++87 122 63 98 126 66 87 122 63 98 126 66 87 122 63 98 132 66 87 122 63 98 132 66
++82 119 53 98 132 66 82 119 53 98 132 66 82 119 53 98 132 66 82 119 53 98 132 66
++98 126 66 98 132 66 98 132 66 117 112 45 98 132 66 98 132 66 98 132 66 117 112 45
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 126 66 98 132 66
++98 126 66 98 126 66 98 126 66 98 126 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 126 66 98 132 66 98 132 66 98 132 66 87 122 63 98 132 66
++98 132 75 87 122 63 98 132 66 87 122 63 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 117 127 86 98 132 66 98 132 66
++98 132 75 98 132 75 98 132 75 98 132 66 98 132 66 117 127 86 98 132 66 98 132 75
++98 132 66 98 132 75 98 132 66 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75
++98 132 66 117 127 86 98 132 66 98 132 66 98 132 75 117 127 86 98 132 66 117 127 86
++98 132 66 98 132 75 117 127 86 98 132 66 98 132 66 98 132 66 98 132 75 98 126 66
++98 126 66 98 126 66 98 126 66 98 126 66 87 122 63 98 126 66 98 126 66 98 106 55
++98 126 66 87 122 63 98 106 55 87 122 63 87 122 63 98 126 66 98 126 66 98 126 66
++98 126 66 98 126 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 66
++117 127 86 98 132 66 99 133 85 99 133 85 99 133 85 98 132 75 99 133 85 157 148 53
++99 133 85 98 132 75 98 132 75 157 148 53 99 133 85 98 132 66 117 127 86 98 132 66
++98 132 75 98 132 75 98 132 66 117 127 86 98 132 66 117 127 86 98 132 66 117 127 86
++98 132 66 117 127 86 98 132 66 117 127 86 98 132 75 98 132 75 117 127 86 98 132 75
++157 148 53 99 133 85 98 132 75 157 148 53 99 133 85 99 133 85 157 148 53 99 133 85
++99 133 85 98 132 75 99 133 85 98 132 66 117 127 86 98 132 75 99 133 85 98 132 75
++117 142 111 166 180 164 185 202 202 185 202 202 188 180 202 185 202 202 194 199 226 201 216 228
++201 216 228 208 221 247 208 221 247 226 221 247 208 221 247 221 238 247 232 215 228 208 221 247
++232 215 228 221 238 247 226 221 247 221 238 247 221 238 247 226 221 247 221 238 247 226 221 247
++226 221 247 233 241 227 226 221 247 226 221 247 221 238 247 208 221 247 221 238 247 226 221 247
++221 238 247 226 221 247 226 221 247 221 238 247 221 238 247 226 221 247 221 238 247 208 221 247
++221 238 247 221 238 247 235 238 247 235 238 247 240 251 247 235 238 247 240 251 247 240 251 247
++240 251 247 240 251 247 201 216 228 166 180 164 117 142 111 98 113 84 99 133 85 117 127 86
++98 132 75 99 133 85 98 132 75 99 133 85 99 133 85 117 127 86 99 133 85 117 127 86
++98 132 75 117 127 86 98 132 75 99 133 85 99 133 85 117 127 86 99 133 85 117 127 86
++99 133 85 117 127 86 99 133 85 98 132 75 117 127 86 99 133 85 99 133 85 99 133 85
++99 133 85 98 132 75 98 132 75 99 133 85 98 132 75 99 133 85 98 132 75 98 132 75
++98 132 75 98 113 84 98 132 75 99 133 85 99 133 85 99 133 85 99 133 85 99 133 85
++99 133 85 117 127 86 99 133 85 117 127 86 99 133 85 117 127 86 117 142 111 99 133 85
++117 142 111 99 133 85 99 133 85 117 127 86 99 133 85 117 127 86 99 133 85 117 127 86
++99 133 85 99 133 85 99 133 85 117 142 111 99 133 85 99 133 85 117 127 86 99 133 85
++117 127 86 99 133 85 99 133 85 117 127 86 99 133 85 99 133 85 117 127 86 99 133 85
++117 127 86 99 133 85 99 133 85 99 133 85 117 127 86 99 133 85 99 133 85 117 127 86
++99 133 85 99 133 85 98 113 84 99 133 85 98 113 84 98 132 75 88 121 82 87 120 67
++87 120 67 87 120 67 98 126 66 87 120 67 87 120 67 87 120 67 88 121 82 85 113 63
++88 121 82 85 113 63 88 121 82 85 113 63 85 113 63 85 113 63 88 121 82 85 113 63
++87 120 67 87 99 72 88 121 82 87 120 67 87 120 67 85 113 63 85 113 63 88 121 82
++85 113 63 88 121 82 85 113 63 88 121 82 87 120 67 88 121 82 88 121 82 98 113 84
++88 121 82 88 121 82 98 113 84 99 133 85 98 113 84 98 132 75 99 133 85 99 133 85
++99 133 85 117 127 86 99 133 85 99 133 85 99 133 85 99 133 85 117 127 86 99 133 85
++112 123 108 99 133 85 117 127 86 99 133 85 99 133 85 99 133 85 99 133 85 99 133 85
++99 133 85 95 119 107 99 133 85 98 113 84 95 119 107 98 113 84 98 113 84 88 121 82
++98 113 84 87 99 72 85 113 63 87 99 72 87 120 67 87 99 72 88 121 82 75 99 72
++85 113 63 75 99 72 85 113 63 87 99 72 85 113 63 85 113 63 87 99 72 85 113 63
++75 99 72 85 113 63 75 99 72 85 113 63 75 99 72 85 113 63 75 99 72 81 96 56
++75 99 72 85 113 63 75 99 72 85 113 63 87 99 72 85 113 63 87 99 72 87 120 67
++87 99 72 87 120 67 98 113 84 98 113 84 98 113 84 98 113 84 98 113 84 98 113 84
++95 119 107 98 113 84 99 133 85 98 113 84 112 123 108 99 133 85 99 133 85 112 123 108
++99 133 85 112 123 108 99 133 85 112 123 108 99 133 85 112 123 108 99 133 85 112 123 108
++99 133 85 112 123 108 99 133 85 95 119 107 99 133 85 112 123 108 99 133 85 112 123 108
++99 133 85 112 123 108 99 133 85 99 133 85 99 133 85 112 123 108 99 133 85 99 133 85
++112 123 108 98 113 84 98 113 84 98 113 84 98 113 84 88 121 82 87 99 72 75 99 72
++75 99 72 75 99 72 81 96 56 70 96 55 75 81 69 70 96 55 75 81 69 70 96 55
++59 79 61 66 86 47 70 96 55 66 86 47 70 96 55 75 77 62 70 96 55 70 96 55
++75 81 69 70 96 55 75 99 72 75 99 72 75 99 72 87 99 72 87 99 72 88 121 82
++98 113 84 88 121 82 98 113 84 95 119 107 98 113 84 95 119 107 99 133 85 95 119 107
++99 133 85 112 123 108 95 119 107 99 133 85 95 119 107 95 119 107 117 127 86 95 119 107
++98 113 84 98 113 84 98 113 84 98 113 84 90 98 89 87 99 72 78 98 90 75 99 72
++75 99 72 75 81 69 70 96 55 59 79 61 66 86 47 59 79 61 64 70 48 59 79 61
++64 70 48 59 79 61 64 70 48 51 73 47 64 70 48 51 73 47 64 70 48 64 70 48
++59 79 61 64 70 48 53 63 61 64 70 48 64 70 48 51 73 47 64 70 48 50 61 48
++64 70 48 51 73 47 53 63 61 64 70 48 51 73 47 64 70 48 50 61 48 51 73 47
++
++66 86 47 64 97 47 70 96 45 70 96 45 57 86 47 64 97 47 64 97 47 66 86 47
++66 86 47 64 97 47 66 86 47 66 86 47 64 97 47 66 86 47 66 86 47 64 97 47
++66 86 47 66 86 47 64 97 47 66 86 47 70 96 45 66 86 47 64 97 47 66 86 47
++70 96 45 66 86 47 64 97 47 70 96 45 70 96 55 70 96 45 70 96 45 70 96 45
++70 96 45 66 86 47 64 97 47 66 86 47 66 86 47 70 96 45 66 86 47 64 97 47
++70 96 45 66 86 47 70 96 45 70 96 45 70 96 55 70 96 45 70 96 45 70 96 45
++70 96 45 73 107 51 70 96 55 80 96 46 73 107 51 70 96 55 73 107 51 81 96 56
++82 107 52 81 96 56 70 96 45 80 96 46 70 96 45 73 107 51 70 96 45 70 96 45
++70 96 45 70 96 45 80 96 46 70 96 45 73 107 51 70 96 45 70 96 45 70 96 45
++70 96 55 73 107 51 73 107 51 80 96 46 73 107 51 73 107 51 80 96 46 70 96 45
++73 107 51 70 96 55 70 96 45 70 96 55 70 96 45 73 107 51 82 107 52 70 96 55
++73 107 51 70 96 55 70 96 45 73 107 51 70 96 45 73 107 51 70 96 55 70 96 45
++70 96 55 80 96 46 73 107 51 70 96 55 73 107 51 73 107 51 73 107 51 70 96 55
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51 82 107 52
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 82 107 52 73 107 51
++73 107 51 82 107 52 82 107 52 82 119 53 82 107 52 82 107 52 82 107 52 82 119 53
++82 107 52 73 107 51 82 107 52 82 107 52 82 107 52 82 107 52 82 119 53 82 107 52
++82 119 53 82 107 52 82 107 52 82 119 53 82 107 52 82 119 53 82 107 52 82 119 53
++82 107 52 82 119 53 82 119 53 85 113 63 82 119 53 85 113 63 82 119 53 82 107 52
++85 113 63 82 119 53 82 107 52 85 113 63 82 119 53 87 122 63 98 106 55 82 119 53
++87 122 63 82 119 53 82 119 53 87 122 63 98 106 55 82 119 53 87 122 63 87 122 63
++82 119 53 82 107 52 87 122 63 87 122 63 87 122 63 98 106 55 82 119 53 87 122 63
++87 122 63 98 106 55 87 122 63 85 113 63 98 126 66 82 119 53 98 126 66 82 119 53
++87 122 63 98 106 55 87 122 63 98 126 66 87 122 63 98 106 55 87 122 63 85 113 63
++87 122 63 87 122 63 87 122 63 87 122 63 87 122 63 98 106 55 87 122 63 87 122 63
++85 113 63 85 113 63 87 120 67 99 133 85 117 142 111 146 150 115 146 151 137 150 171 159
++166 180 164 225 222 201 201 216 228 146 151 137 111 119 127 138 126 108 146 151 137 145 140 145
++88 83 88 36 35 37 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 13 4 7
++6 15 6 3 4 9 13 4 7 3 3 1 3 4 9 13 4 7 3 4 9 3 3 1
++3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1
++3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 15 17 7 50 61 48 87 99 72
++99 133 85 117 127 86 99 133 85 98 126 66 98 126 66 87 122 63 98 126 66 87 122 63
++87 122 63 98 126 66 82 119 53 98 132 66 82 119 53 98 132 66 82 119 53 98 132 66
++82 119 53 98 132 66 98 132 66 82 119 53 98 132 66 82 119 53 98 132 66 82 119 53
++98 126 66 82 119 53 98 132 66 87 122 63 98 132 66 98 126 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 126 66 98 132 66 98 126 66 98 126 66 98 126 66 98 126 66
++98 132 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 132 66 98 126 66
++98 132 66 98 126 66 98 132 66 98 132 66 87 122 63 98 132 66 98 132 66 87 122 63
++98 132 66 87 122 63 98 132 66 98 132 66 87 122 63 98 126 66 98 126 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 75 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 117 127 86 98 132 66 98 132 75 98 132 66 98 132 66 98 132 75 98 132 66
++98 132 75 98 132 66 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 117 127 86
++98 132 75 98 132 66 98 132 66 98 132 75 98 132 75 157 148 53 98 132 75 98 132 66
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 126 66
++98 132 75 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66
++98 126 66 87 122 63 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66
++98 132 75 98 132 75 98 132 66 117 127 86 98 132 66 98 132 66 117 127 86 98 132 75
++98 132 75 99 133 85 157 148 53 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++99 133 85 98 132 75 99 133 85 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++117 127 86 98 132 66 117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66
++98 132 66 98 132 66 98 132 66 99 133 85 157 148 53 98 132 75 98 132 66 98 132 75
++99 133 85 99 133 85 99 133 85 99 133 85 98 132 75 99 133 85 99 133 85 99 133 85
++99 133 85 157 148 53 98 132 66 117 127 86 98 132 75 98 132 75 117 127 86 98 132 75
++117 142 111 146 162 145 166 174 181 194 199 226 194 199 226 185 202 202 194 199 226 194 199 226
++194 199 226 201 216 228 201 216 228 226 221 247 201 216 228 208 221 247 208 221 247 221 238 247
++221 238 247 201 216 228 221 238 247 232 215 228 226 221 247 221 238 247 226 221 247 231 239 247
++226 221 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 226 221 247 221 238 247
++226 221 247 221 238 247 221 238 247 221 238 247 226 221 247 221 238 247 221 238 247 221 238 247
++226 221 247 221 238 247 231 239 247 231 239 247 240 251 247 235 238 247 240 251 247 235 238 247
++240 251 247 240 251 247 233 241 227 166 174 181 117 142 111 88 121 82 99 133 85 99 133 85
++98 132 75 98 132 75 117 127 86 99 133 85 117 127 86 99 133 85 99 133 85 99 133 85
++99 133 85 99 133 85 98 132 75 117 127 86 98 132 75 99 133 85 99 133 85 98 132 75
++117 127 86 98 132 75 99 133 85 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75
++117 127 86 99 133 85 98 132 75 117 127 86 99 133 85 98 132 75 99 133 85 99 133 85
++98 132 75 98 132 75 99 133 85 98 132 75 117 127 86 98 132 75 98 132 75 117 127 86
++98 132 75 99 133 85 99 133 85 99 133 85 99 133 85 98 132 75 99 133 85 99 133 85
++99 133 85 98 132 75 99 133 85 99 133 85 99 133 85 99 133 85 117 142 111 99 133 85
++117 127 86 99 133 85 117 127 86 99 133 85 98 132 75 117 142 111 99 133 85 99 133 85
++99 133 85 117 127 86 99 133 85 99 133 85 99 133 85 99 133 85 99 133 85 99 133 85
++99 133 85 99 133 85 117 127 86 99 133 85 99 133 85 99 133 85 99 133 85 99 133 85
++99 133 85 98 113 84 98 132 75 98 132 75 98 132 75 88 121 82 98 126 66 98 113 84
++98 126 66 88 121 82 98 126 66 98 113 84 98 126 66 88 121 82 87 120 67 87 120 67
++87 120 67 88 121 82 87 120 67 85 113 63 88 121 82 87 120 67 87 120 67 87 120 67
++88 121 82 87 120 67 87 120 67 87 120 67 88 121 82 85 113 63 88 121 82 85 113 63
++87 120 67 87 120 67 88 121 82 87 99 72 88 121 82 87 99 72 87 120 67 88 121 82
++98 126 66 88 121 82 98 132 75 98 113 84 88 121 82 98 132 75 98 113 84 98 132 75
++98 113 84 99 133 85 99 133 85 98 113 84 99 133 85 99 133 85 95 119 107 117 127 86
++99 133 85 99 133 85 99 133 85 112 123 108 99 133 85 112 123 108 99 133 85 112 123 108
++98 113 84 99 133 85 99 133 85 99 133 85 98 113 84 88 121 82 98 113 84 88 121 82
++87 99 72 88 121 82 88 121 82 87 120 67 88 121 82 87 99 72 87 120 67 87 99 72
++85 113 63 87 120 67 87 99 72 85 113 63 85 113 63 87 99 72 85 113 63 75 99 72
++85 113 63 75 99 72 85 113 63 75 99 72 85 113 63 87 99 72 85 113 63 75 99 72
++85 113 63 75 99 72 85 113 63 75 99 72 85 113 63 87 99 72 88 121 82 87 99 72
++85 113 63 87 99 72 98 113 84 87 120 67 98 113 84 88 121 82 98 113 84 99 133 85
++98 113 84 99 133 85 98 113 84 98 113 84 99 133 85 95 119 107 98 113 84 99 133 85
++95 119 107 99 133 85 98 113 84 99 133 85 98 113 84 99 133 85 95 119 107 99 133 85
++98 113 84 99 133 85 95 119 107 99 133 85 112 123 108 99 133 85 98 113 84 95 119 107
++98 113 84 99 133 85 98 113 84 95 119 107 98 113 84 98 113 84 95 119 107 98 113 84
++88 121 82 98 113 84 98 113 84 88 121 82 88 121 82 87 99 72 87 99 72 87 99 72
++75 99 72 87 99 72 75 99 72 75 99 72 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 75 81 69 70 96 55 70 96 55 70 96 55 75 81 69
++70 96 55 75 99 72 75 81 69 75 99 72 87 99 72 78 98 90 75 99 72 88 121 82
++90 98 89 98 113 84 90 98 89 98 113 84 98 113 84 95 119 107 98 113 84 95 119 107
++98 113 84 95 119 107 98 113 84 95 119 107 98 113 84 98 113 84 95 119 107 98 113 84
++98 113 84 95 119 107 88 121 82 90 98 89 88 121 82 75 99 72 75 99 72 75 99 72
++75 99 72 75 81 69 70 96 55 59 79 61 75 81 69 59 79 61 59 79 61 64 70 48
++59 79 61 66 86 47 59 79 61 64 70 48 59 79 61 64 70 48 59 79 61 64 70 48
++59 79 61 64 70 48 59 79 61 51 73 47 59 79 61 64 70 48 51 73 47 59 79 61
++64 70 48 59 79 61 64 70 48 51 73 47 59 79 61 51 73 47 53 63 61 64 70 48
++
++66 86 47 66 86 47 70 96 45 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++64 97 47 66 86 47 66 86 47 57 86 47 66 86 47 70 96 45 66 86 47 66 86 47
++70 96 45 64 97 47 66 86 47 64 97 47 66 86 47 64 97 47 66 86 47 70 96 45
++57 86 47 70 96 45 66 86 47 70 96 45 66 86 47 64 97 47 70 96 45 66 86 47
++64 97 47 70 96 45 66 86 47 64 97 47 66 86 47 64 97 47 66 86 47 70 96 45
++66 86 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 55 70 96 45 80 96 46 70 96 45 70 96 45 70 96 45 70 96 45 70 96 55
++70 96 45 70 96 45 70 96 45 70 96 55 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 80 96 46 73 107 51 70 96 55 70 96 45 70 96 45 73 107 51 70 96 45
++70 96 45 70 96 45 73 107 51 70 96 45 73 107 51 70 96 45 70 96 55 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++73 107 51 70 96 45 73 107 51 80 96 46 70 96 45 73 107 51 70 96 45 73 107 51
++73 107 51 70 96 55 73 107 51 73 107 51 81 96 56 73 107 51 70 96 55 73 107 51
++70 96 55 82 107 52 73 107 51 82 107 52 73 107 51 82 107 52 73 107 51 73 107 51
++82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 82 107 52 73 107 51
++82 107 52 82 107 52 82 107 52 82 107 52 82 119 53 82 107 52 82 107 52 82 107 52
++82 107 52 82 119 53 82 107 52 82 107 52 82 119 53 82 107 52 82 107 52 82 107 52
++82 119 53 82 107 52 82 107 52 82 119 53 82 107 52 82 119 53 82 107 52 82 119 53
++82 107 52 82 119 53 82 107 52 82 119 53 82 107 52 82 119 53 82 119 53 85 113 63
++82 119 53 98 106 55 82 119 53 82 119 53 85 113 63 82 119 53 85 113 63 82 119 53
++98 106 55 82 119 53 82 119 53 98 106 55 82 119 53 87 122 63 87 122 63 82 119 53
++98 106 55 82 119 53 82 119 53 98 106 55 82 119 53 87 122 63 98 106 55 87 122 63
++87 122 63 87 122 63 82 119 53 98 106 55 87 122 63 82 119 53 87 122 63 98 126 66
++98 106 55 87 122 63 82 119 53 85 113 63 82 119 53 87 122 63 87 122 63 85 113 63
++82 107 52 87 120 67 117 127 86 121 143 132 146 151 137 146 162 145 166 180 164 208 215 180
++185 202 202 185 202 202 166 174 181 94 105 108 94 105 108 122 134 144 150 144 154 138 126 108
++75 81 76 22 25 24 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 6 15 6
++3 4 9 6 15 6 3 3 1 3 4 9 3 3 1 3 4 9 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 6 15 6 49 74 23 98 126 66 98 132 75
++98 132 75 98 126 66 98 126 66 87 120 67 87 122 63 87 122 63 98 126 66 87 122 63
++98 126 66 82 119 53 98 126 66 82 119 53 98 126 66 82 119 53 98 132 66 82 119 53
++98 132 66 82 119 53 98 132 66 117 112 45 82 119 53 98 132 66 82 119 53 98 132 66
++82 119 53 98 126 66 82 119 53 98 132 66 82 119 53 98 126 66 82 119 53 98 126 66
++87 122 63 98 126 66 82 119 53 98 132 66 98 126 66 98 132 66 98 126 66 98 132 66
++98 126 66 82 119 53 98 132 66 98 126 66 98 126 66 87 122 63 98 126 66 87 122 63
++98 126 66 98 126 66 98 132 66 98 126 66 98 132 66 87 122 63 98 132 66 87 122 63
++98 132 66 87 122 63 98 132 66 82 119 53 98 132 66 87 122 63 98 132 66 87 122 63
++98 132 66 98 126 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 75 98 132 66 98 132 66
++98 132 66 117 127 86 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66
++157 148 53 99 133 85 98 132 75 98 132 75 98 132 75 98 132 66 98 132 66 98 132 75
++98 126 66 98 126 66 98 132 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66
++98 132 66 98 126 66 98 132 66 98 132 66 98 126 66 98 126 66 98 126 66 98 126 66
++98 132 75 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 75 98 132 66 98 132 75
++98 132 66 98 132 75 98 132 66 98 132 75 117 127 86 98 132 66 117 127 86 98 132 66
++117 127 86 98 132 75 98 132 75 98 132 66 99 133 85 98 132 75 98 132 66 98 132 75
++98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75
++98 132 75 99 133 85 98 132 75 98 132 75 98 132 75 98 132 75 99 133 85 98 132 75
++99 133 85 117 142 111 166 180 164 185 202 202 185 202 202 194 199 226 185 202 202 194 199 226
++201 216 228 201 216 228 201 216 228 208 221 247 232 215 228 208 221 247 226 221 247 208 221 247
++226 221 247 221 238 247 226 221 247 208 221 247 221 238 247 226 221 247 221 238 247 226 221 247
++221 238 247 226 221 247 226 221 247 221 238 247 226 221 247 208 221 247 221 238 247 226 221 247
++221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 221 238 247 226 221 247 221 238 247
++221 238 247 231 239 247 231 239 247 231 239 247 235 238 247 240 251 247 246 237 247 240 251 247
++246 237 247 251 251 247 221 238 247 166 180 164 121 143 132 88 121 82 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 98 132 66 98 132 66
++98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 99 133 85 117 127 86 98 132 75 98 132 75
++98 132 75 117 127 86 98 132 75 98 132 75 99 133 85 98 132 75 98 132 75 98 126 66
++98 132 75 117 127 86 98 132 66 117 127 86 98 132 66 117 127 86 98 132 66 98 132 75
++98 132 75 117 127 86 98 132 66 98 132 75 117 127 86 98 132 66 98 132 75 98 132 75
++99 133 85 98 132 75 98 132 75 99 133 85 117 127 86 98 132 66 98 132 75 98 132 75
++98 132 75 99 133 85 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86
++99 133 85 99 133 85 99 133 85 98 132 75 98 132 75 117 127 86 98 132 75 99 133 85
++98 132 75 98 132 75 98 126 66 98 113 84 98 132 75 98 132 75 98 126 66 88 121 82
++98 126 66 98 126 66 88 121 82 98 126 66 87 120 67 98 126 66 87 120 67 87 120 67
++87 120 67 98 126 66 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 98 113 84
++98 126 66 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++98 113 84 87 120 67 87 120 67 88 121 82 87 120 67 88 121 82 98 126 66 98 113 84
++87 120 67 98 113 84 87 120 67 88 121 82 98 126 66 88 121 82 98 126 66 88 121 82
++98 132 75 98 113 84 98 132 75 98 113 84 98 132 75 98 113 84 98 132 75 88 121 82
++99 133 85 98 113 84 98 132 75 98 132 75 99 133 85 99 133 85 98 113 84 98 132 75
++88 121 82 98 113 84 88 121 82 98 113 84 88 121 82 88 121 82 87 120 67 87 120 67
++88 121 82 85 113 63 85 113 63 85 113 63 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 87 99 72 87 120 67 87 120 67 88 121 82 85 113 63 85 113 63 87 120 67
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 87 120 67
++85 113 63 85 113 63 85 113 63 87 99 72 85 113 63 87 120 67 85 113 63 87 120 67
++87 99 72 88 121 82 85 113 63 87 120 67 87 99 72 88 121 82 98 113 84 98 113 84
++88 121 82 98 113 84 88 121 82 98 113 84 98 113 84 98 126 66 98 113 84 98 113 84
++88 121 82 98 113 84 99 133 85 98 113 84 99 133 85 98 113 84 98 113 84 98 113 84
++99 133 85 98 113 84 98 113 84 88 121 82 98 113 84 88 121 82 98 113 84 98 113 84
++98 113 84 98 113 84 88 121 82 98 113 84 88 121 82 88 121 82 98 113 84 88 121 82
++98 113 84 88 121 82 87 99 72 85 113 63 87 99 72 85 113 63 75 99 72 85 113 63
++70 96 55 75 99 72 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 75 81 69 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++81 96 56 75 99 72 81 96 56 75 99 72 81 96 56 85 113 63 87 99 72 87 99 72
++88 121 82 87 99 72 88 121 82 88 121 82 98 113 84 88 121 82 98 113 84 98 113 84
++98 113 84 88 121 82 98 113 84 88 121 82 98 113 84 88 121 82 98 113 84 88 121 82
++87 99 72 87 99 72 88 121 82 87 99 72 75 99 72 75 99 72 81 96 56 75 99 72
++70 96 55 70 96 55 70 96 55 66 86 47 70 96 55 66 86 47 59 79 61 66 86 47
++59 79 61 66 86 47 59 79 61 66 86 47 57 86 47 59 79 61 66 86 47 64 70 48
++57 86 47 57 86 47 64 70 48 57 86 47 64 70 48 51 73 47 64 70 48 51 73 47
++64 70 48 51 73 47 51 73 47 64 70 48 51 73 47 64 70 48 51 73 47 51 73 47
++
++57 86 47 64 97 47 66 86 47 64 97 47 66 86 47 66 86 47 66 86 47 70 96 45
++49 74 23 70 96 45 49 74 23 70 96 45 66 86 47 70 96 45 66 86 47 70 96 45
++66 86 47 57 86 47 70 96 45 49 74 23 66 86 47 57 86 47 66 86 47 57 86 47
++70 96 45 66 86 47 57 86 47 66 86 47 64 97 47 66 86 47 64 97 47 70 96 45
++66 86 47 64 97 47 66 86 47 70 96 45 66 86 47 66 86 47 70 96 45 64 97 47
++70 96 45 64 97 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 55 70 96 45
++70 96 55 64 97 47 70 96 45 70 96 45 66 86 47 64 97 47 66 86 47 64 97 47
++64 97 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 64 97 47 70 96 45
++70 96 45 70 96 45 73 107 51 70 96 45 70 96 45 70 96 45 70 96 55 70 96 45
++73 107 51 70 96 45 70 96 45 73 107 51 70 96 45 73 107 51 70 96 45 73 107 51
++70 96 45 73 107 51 70 96 45 73 107 51 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 73 107 51 70 96 55 73 107 51 73 107 51 70 96 45 70 96 45 73 107 51
++70 96 45 73 107 51 80 96 46 73 107 51 73 107 51 70 96 55 73 107 51 70 96 55
++73 107 51 70 96 45 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51
++73 107 51 73 107 51 82 107 52 82 107 52 73 107 51 82 107 52 73 107 51 73 107 51
++82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 82 119 53 82 107 52 82 107 52
++82 119 53 82 107 52 82 107 52 82 119 53 82 107 52 82 107 52 85 113 63 82 107 52
++73 107 51 82 107 52 82 119 53 82 107 52 82 119 53 85 113 63 82 119 53 82 107 52
++82 107 52 82 119 53 82 107 52 82 119 53 82 107 52 82 107 52 82 119 53 82 107 52
++82 119 53 85 113 63 82 119 53 85 113 63 82 119 53 82 119 53 82 119 53 87 122 63
++82 119 53 98 106 55 82 119 53 87 122 63 82 119 53 87 122 63 98 106 55 82 119 53
++82 119 53 87 122 63 82 119 53 87 122 63 82 119 53 87 122 63 82 119 53 82 119 53
++82 119 53 98 106 55 87 122 63 82 119 53 87 122 63 85 113 63 87 122 63 82 119 53
++82 119 53 87 122 63 98 106 55 87 122 63 82 119 53 98 126 66 85 113 63 98 126 66
++98 132 75 117 142 111 146 150 115 146 151 137 177 169 143 166 180 164 185 202 202 208 215 180
++225 222 201 201 216 228 148 160 159 77 90 100 88 83 88 112 123 108 146 151 137 111 119 127
++65 63 61 14 16 17 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 4 9
++13 4 7 3 4 9 6 15 6 3 4 9 3 3 1 3 3 1 3 4 9 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 6 15 6 32 39 24 87 99 72 99 133 85 98 126 66
++98 126 66 87 122 63 98 126 66 87 122 63 98 126 66 82 119 53 98 126 66 82 119 53
++98 126 66 82 119 53 98 126 66 82 119 53 82 119 53 82 119 53 98 132 66 82 119 53
++117 112 45 82 119 53 98 132 66 82 119 53 98 132 66 82 119 53 98 132 66 87 122 63
++117 112 45 98 126 66 82 119 53 98 126 66 87 122 63 98 126 66 98 126 66 98 132 66
++87 122 63 98 132 66 98 126 66 98 132 66 98 126 66 98 126 66 98 132 66 82 119 53
++98 126 66 98 132 66 98 126 66 98 126 66 82 119 53 98 126 66 82 119 53 98 126 66
++87 122 63 98 126 66 98 126 66 98 132 66 82 119 53 98 132 66 82 119 53 98 132 66
++82 119 53 98 132 66 82 119 53 98 132 66 82 119 53 98 132 66 87 122 63 98 132 66
++87 122 63 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 126 66 98 132 66
++98 126 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 75 98 132 66 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 75 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75
++98 132 75 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 66
++98 132 66 98 132 66 98 126 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 75 98 132 66
++98 132 66 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 66 98 132 66
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 157 148 53 98 132 75 98 132 66
++98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 66 99 133 85 157 148 53
++98 132 75 98 132 66 117 127 86 98 132 75 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 66 98 132 75 98 132 66
++98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66
++98 132 75 98 132 66 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75
++98 132 75 117 142 111 146 162 145 185 202 202 185 202 202 194 199 226 185 202 202 194 199 226
++194 199 226 194 199 226 201 216 228 201 216 228 201 216 228 208 221 247 232 215 228 208 221 247
++226 221 247 208 221 247 221 238 247 221 238 247 226 221 247 221 238 247 226 221 247 221 238 247
++226 221 247 221 238 247 221 238 247 226 221 247 226 221 247 221 238 247 226 221 247 221 238 247
++221 238 247 226 221 247 221 238 247 221 238 247 231 239 247 221 238 247 221 238 247 221 238 247
++221 238 247 231 239 247 231 239 247 231 239 247 240 251 247 246 237 247 240 251 247 240 251 247
++240 251 247 240 251 247 233 241 227 185 202 202 117 142 111 98 113 84 98 132 75 98 132 75
++117 127 86 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 117 127 86
++98 132 75 98 132 66 117 127 86 98 132 75 98 132 66 117 127 86 98 132 66 98 132 75
++98 132 75 98 132 75 98 132 66 117 127 86 98 132 66 117 127 86 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86
++98 132 75 98 132 66 117 127 86 98 132 75 117 127 86 98 132 75 117 127 86 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 66 98 132 66 98 132 75
++98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 99 133 85 98 132 75
++98 132 75 99 133 85 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75
++98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 98 126 66 98 132 75 98 132 75
++98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 113 84 98 126 66 98 132 75 98 132 75 98 132 75 88 121 82 98 132 75 98 126 66
++98 126 66 87 120 67 98 126 66 98 132 75 98 126 66 88 121 82 98 126 66 98 126 66
++88 121 82 98 126 66 88 121 82 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66
++87 120 67 88 121 82 98 126 66 98 126 66 88 121 82 98 126 66 88 121 82 98 126 66
++87 120 67 98 113 84 87 120 67 98 126 66 98 113 84 98 126 66 88 121 82 87 120 67
++98 126 66 88 121 82 98 126 66 87 120 67 98 113 84 98 126 66 87 120 67 98 126 66
++98 126 66 87 120 67 87 120 67 98 126 66 87 120 67 87 120 67 88 121 82 98 126 66
++98 113 84 87 120 67 98 126 66 98 113 84 87 120 67 88 121 82 98 126 66 88 121 82
++88 121 82 88 121 82 98 126 66 88 121 82 87 120 67 87 120 67 98 113 84 87 120 67
++87 120 67 98 113 84 87 120 67 98 113 84 87 120 67 87 120 67 85 113 63 87 120 67
++88 121 82 87 120 67 88 121 82 87 120 67 85 113 63 87 120 67 87 99 72 88 121 82
++87 99 72 85 113 63 85 113 63 85 113 63 88 121 82 87 99 72 88 121 82 85 113 63
++87 120 67 87 99 72 87 120 67 85 113 63 88 121 82 85 113 63 87 99 72 88 121 82
++85 113 63 85 113 63 88 121 82 87 99 72 87 120 67 87 120 67 87 120 67 85 113 63
++98 113 84 98 126 66 98 113 84 98 126 66 87 120 67 88 121 82 88 121 82 88 121 82
++98 126 66 88 121 82 98 113 84 88 121 82 98 113 84 88 121 82 87 120 67 88 121 82
++87 120 67 88 121 82 88 121 82 98 113 84 87 120 67 98 113 84 88 121 82 87 120 67
++98 113 84 87 120 67 98 113 84 88 121 82 87 120 67 98 113 84 87 120 67 88 121 82
++87 99 72 85 113 63 85 113 63 88 121 82 85 113 63 75 99 72 85 113 63 81 96 56
++75 99 72 82 107 52 75 99 72 81 96 56 75 99 72 70 96 55 70 96 55 70 96 55
++75 99 72 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 81 96 56
++75 99 72 81 96 56 75 99 72 85 113 63 75 99 72 87 99 72 75 99 72 87 99 72
++87 99 72 88 121 82 87 99 72 87 99 72 87 99 72 87 99 72 87 99 72 87 120 67
++87 99 72 87 99 72 87 99 72 87 120 67 87 99 72 87 99 72 87 99 72 87 99 72
++87 120 67 75 99 72 87 99 72 75 99 72 81 96 56 75 99 72 81 96 56 70 96 55
++70 96 55 75 81 69 70 96 55 59 79 61 70 96 55 75 77 62 70 96 55 59 79 61
++70 96 55 59 79 61 59 79 61 66 86 47 59 79 61 66 86 47 75 77 62 66 86 47
++59 79 61 66 86 47 59 79 61 66 86 47 59 79 61 57 86 47 59 79 61 66 86 47
++59 79 61 64 70 48 51 73 47 59 79 61 51 73 47 59 79 61 64 70 48 59 79 61
++
++57 86 47 66 86 47 70 96 45 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 70 96 45 66 86 47 66 86 47 66 86 47 49 74 23 70 96 45 66 86 47
++70 96 45 49 74 23 66 86 47 57 86 47 70 96 45 49 74 23 70 96 45 57 86 47
++66 86 47 57 86 47 70 96 45 57 86 47 70 96 45 66 86 47 70 96 45 66 86 47
++70 96 45 66 86 47 64 97 47 66 86 47 57 86 47 70 96 45 57 86 47 70 96 45
++66 86 47 70 96 45 70 96 45 64 97 47 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 55 70 96 45 70 96 55 70 96 45 70 96 55
++70 96 45 70 96 45 70 96 45 64 97 47 66 86 47 64 97 47 66 86 47 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 64 97 47 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 73 107 51 70 96 45 73 107 51 70 96 45
++70 96 55 73 107 51 70 96 45 70 96 55 80 96 46 70 96 55 73 107 51 70 96 45
++70 96 55 70 96 45 73 107 51 70 96 45 70 96 45 64 97 47 70 96 45 70 96 45
++70 96 45 70 96 45 73 107 51 70 96 55 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 70 96 45 73 107 51 70 96 45 73 107 51 73 107 51 70 96 45 73 107 51
++70 96 45 73 107 51 73 107 51 80 96 46 73 107 51 80 96 46 73 107 51 70 96 45
++73 107 51 80 96 46 73 107 51 82 107 52 82 107 52 73 107 51 82 107 52 73 107 51
++82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 82 107 52
++82 107 52 82 119 53 82 107 52 82 107 52 82 107 52 82 119 53 82 107 52 82 119 53
++82 107 52 82 119 53 82 107 52 82 107 52 82 119 53 82 107 52 82 107 52 82 107 52
++82 119 53 82 107 52 82 107 52 82 107 52 82 119 53 82 107 52 82 107 52 85 113 63
++82 119 53 82 107 52 82 119 53 82 107 52 82 119 53 98 106 55 85 113 63 82 119 53
++87 122 63 82 119 53 82 119 53 98 106 55 87 122 63 87 122 63 82 119 53 85 113 63
++82 119 53 98 106 55 82 119 53 85 113 63 98 106 55 82 119 53 98 106 55 82 119 53
++87 122 63 82 119 53 82 119 53 85 113 63 82 119 53 98 106 55 82 119 53 87 122 63
++98 106 55 87 122 63 85 113 63 85 113 63 98 106 55 85 113 63 98 106 55 98 113 84
++117 142 111 146 150 115 146 162 145 146 162 145 166 180 164 208 215 180 189 165 168 185 202 202
++208 215 180 188 180 202 150 144 154 77 90 100 75 81 82 94 105 108 138 126 108 94 105 108
++55 55 48 17 12 17 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1
++6 15 6 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 22 24 13 66 86 47 87 120 67 98 132 75 87 120 67
++87 122 63 87 122 63 87 122 63 87 122 63 82 119 53 98 126 66 87 122 63 98 126 66
++82 119 53 117 112 45 82 119 53 82 119 53 98 126 66 82 119 53 98 126 66 82 119 53
++98 132 66 82 119 53 98 132 66 82 119 53 98 126 66 82 119 53 98 126 66 82 119 53
++98 132 66 82 119 53 98 132 66 98 126 66 82 119 53 98 132 66 87 122 63 98 126 66
++87 122 63 98 126 66 98 126 66 98 126 66 87 122 63 98 132 66 87 122 63 98 126 66
++98 126 66 82 119 53 98 126 66 82 119 53 98 132 66 98 126 66 87 122 63 98 126 66
++82 119 53 98 126 66 87 122 63 87 122 63 98 126 66 82 119 53 98 132 66 82 119 53
++98 132 66 82 119 53 98 132 66 82 119 53 98 132 66 82 119 53 98 132 66 82 119 53
++98 132 66 87 122 63 98 132 66 87 122 63 98 132 66 98 126 66 98 132 66 98 126 66
++98 132 66 98 126 66 98 132 66 98 126 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 126 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66
++98 132 66 98 132 66 98 132 75 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 126 66 98 132 66 98 132 66 98 132 66 98 132 66 98 126 66 98 132 66 98 126 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 75
++98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 117 127 86
++98 132 66 98 132 75 98 132 66 98 132 66 98 132 75 98 132 75 98 132 66 98 132 66
++98 132 75 98 132 66 98 132 66 98 132 75 98 132 66 98 132 66 98 132 66 98 132 75
++98 132 75 98 132 66 98 132 66 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75
++157 148 53 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 66
++98 132 75 98 132 75 98 132 66 117 127 86 98 132 66 98 132 66 98 132 66 98 132 75
++98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 117 127 86 98 132 75
++98 132 75 99 133 85 146 150 115 166 180 164 185 202 202 185 202 202 194 199 226 185 202 202
++194 199 226 194 199 226 232 215 228 201 216 228 226 221 247 208 221 247 208 221 247 208 221 247
++221 238 247 226 221 247 221 238 247 208 221 247 221 238 247 226 221 247 221 238 247 226 221 247
++221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 226 221 247 208 221 247
++221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 221 238 247 226 221 247 221 238 247
++231 239 247 231 239 247 231 239 247 231 239 247 235 238 247 240 251 247 240 251 247 246 237 247
++251 251 247 251 251 247 231 239 247 185 202 202 146 150 115 88 121 82 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 66 98 132 66
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 98 132 66 98 132 75 98 132 75
++117 127 86 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++117 127 86 98 132 66 117 127 86 98 132 66 117 127 86 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86
++98 132 75 98 132 75 117 127 86 98 132 75 98 132 66 98 132 75 117 127 86 98 132 66
++98 132 75 117 127 86 98 132 66 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75
++98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++117 127 86 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 113 84 98 132 75 98 132 75 98 132 75 98 126 66 98 132 75 98 113 84 98 132 75
++98 132 75 98 132 75 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 88 121 82
++98 126 66 98 132 75 98 126 66 87 120 67 98 126 66 98 126 66 98 126 66 88 121 82
++98 126 66 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 88 121 82 87 120 67
++98 132 75 98 126 66 87 120 67 98 126 66 98 126 66 87 120 67 98 126 66 88 121 82
++98 126 66 98 126 66 88 121 82 98 126 66 88 121 82 98 132 75 98 113 84 98 126 66
++88 121 82 98 126 66 98 113 84 88 121 82 98 126 66 88 121 82 87 120 67 98 113 84
++87 120 67 88 121 82 98 126 66 88 121 82 87 120 67 98 113 84 87 120 67 87 120 67
++87 120 67 98 126 66 88 121 82 87 120 67 98 126 66 98 113 84 87 120 67 98 113 84
++98 126 66 87 120 67 88 121 82 87 120 67 98 113 84 85 113 63 87 120 67 87 120 67
++98 113 84 87 120 67 87 120 67 87 120 67 98 113 84 87 120 67 98 113 84 87 120 67
++98 113 84 87 120 67 87 120 67 88 121 82 87 120 67 88 121 82 85 113 63 87 120 67
++85 113 63 87 120 67 87 99 72 88 121 82 85 113 63 87 120 67 87 120 67 87 120 67
++88 121 82 87 120 67 87 120 67 88 121 82 85 113 63 85 113 63 88 121 82 85 113 63
++88 121 82 87 99 72 87 120 67 85 113 63 85 113 63 87 99 72 87 120 67 98 113 84
++85 113 63 87 120 67 85 113 63 98 113 84 85 113 63 87 99 72 87 120 67 98 113 84
++85 113 63 98 113 84 85 113 63 87 120 67 85 113 63 85 113 63 98 113 84 85 113 63
++87 120 67 87 99 72 87 120 67 87 120 67 98 113 84 87 120 67 87 120 67 98 113 84
++87 120 67 98 113 84 85 113 63 87 120 67 87 99 72 87 120 67 87 99 72 85 113 63
++85 113 63 87 99 72 85 113 63 87 99 72 85 113 63 75 99 72 82 107 52 75 99 72
++82 107 52 75 99 72 82 107 52 75 99 72 73 107 51 81 96 56 70 96 55 81 96 56
++73 107 51 75 99 72 81 96 56 73 107 51 81 96 56 70 96 55 81 96 56 75 99 72
++81 96 56 85 113 63 75 99 72 81 96 56 85 113 63 75 99 72 85 113 63 85 113 63
++75 99 72 87 99 72 87 99 72 88 121 82 85 113 63 88 121 82 87 99 72 87 99 72
++85 113 63 87 99 72 88 121 82 87 99 72 87 99 72 85 113 63 85 113 63 87 99 72
++75 99 72 87 99 72 81 96 56 75 99 72 81 96 56 75 99 72 70 96 55 75 99 72
++70 96 55 70 96 55 70 96 55 70 96 55 75 77 62 70 96 55 70 96 55 75 77 62
++66 86 47 66 86 47 70 96 55 59 79 61 66 86 47 75 77 62 70 96 55 66 86 47
++66 86 47 59 79 61 66 86 47 66 86 47 66 86 47 59 79 61 66 86 47 59 79 61
++66 86 47 57 86 47 64 70 48 57 86 47 66 86 47 59 79 61 57 86 47 64 70 48
++
++66 86 47 49 74 23 70 96 45 66 86 47 66 86 47 57 86 47 70 96 45 49 74 23
++66 86 47 66 86 47 70 96 45 49 74 23 66 86 47 70 96 45 70 96 45 49 74 23
++66 86 47 57 86 47 70 96 45 49 74 23 57 86 47 70 96 45 57 86 47 70 96 45
++49 74 23 70 96 45 49 74 23 70 96 45 66 86 47 64 97 47 66 86 47 70 96 45
++57 86 47 70 96 45 66 86 47 70 96 45 57 86 47 70 96 45 66 86 47 70 96 45
++66 86 47 64 97 47 66 86 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 55 70 96 45
++70 96 45 64 97 47 70 96 45 70 96 45 70 96 45 66 86 47 64 97 47 70 96 45
++66 86 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 73 107 51
++70 96 45 73 107 51 70 96 45 73 107 51 70 96 45 73 107 51 70 96 45 70 96 45
++73 107 51 70 96 45 70 96 45 70 96 55 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 55 73 107 51 73 107 51 70 96 45 82 107 52 73 107 51 82 107 52 73 107 51
++80 96 46 73 107 51 70 96 45 73 107 51 70 96 45 70 96 45 73 107 51 70 96 45
++73 107 51 70 96 45 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 80 96 46
++73 107 51 73 107 51 80 96 46 82 107 52 73 107 51 82 107 52 73 107 51 82 107 52
++82 107 52 82 107 52 82 107 52 82 107 52 82 119 53 82 119 53 82 107 52 82 119 53
++82 107 52 82 107 52 82 119 53 82 107 52 82 107 52 82 107 52 82 107 52 82 107 52
++82 107 52 82 107 52 82 119 53 82 107 52 82 107 52 82 107 52 82 119 53 82 107 52
++82 107 52 82 107 52 82 119 53 82 107 52 82 107 52 82 107 52 82 119 53 82 107 52
++82 119 53 85 113 63 85 113 63 82 119 53 85 113 63 82 119 53 82 119 53 98 106 55
++82 119 53 98 106 55 87 122 63 87 122 63 82 119 53 85 113 63 87 122 63 98 106 55
++87 122 63 85 113 63 82 119 53 85 113 63 82 119 53 82 119 53 82 119 53 82 107 52
++82 119 53 85 113 63 85 113 63 82 119 53 87 122 63 82 119 53 85 113 63 82 119 53
++87 122 63 98 106 55 85 113 63 87 99 72 87 99 72 87 99 72 87 99 72 98 113 84
++138 126 108 117 142 111 146 151 137 177 169 143 188 180 202 166 180 164 146 151 137 138 126 108
++121 143 132 146 151 137 119 117 138 90 98 89 65 63 61 75 72 67 94 105 108 88 83 74
++36 35 37 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 6 15 6 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 6 15 6 32 39 24 81 96 56 98 126 66 98 126 66 98 126 66
++82 119 53 98 106 55 82 119 53 82 119 53 98 126 66 87 122 63 82 119 53 98 126 66
++82 119 53 98 132 66 82 119 53 98 126 66 82 119 53 98 126 66 82 119 53 98 126 66
++82 119 53 98 126 66 98 126 66 82 119 53 98 126 66 98 126 66 82 119 53 98 132 66
++82 119 53 98 126 66 98 126 66 82 119 53 98 126 66 98 126 66 98 132 66 82 119 53
++98 126 66 98 132 66 87 122 63 98 126 66 98 126 66 82 119 53 98 126 66 82 119 53
++98 132 66 82 119 53 98 126 66 98 126 66 82 119 53 98 126 66 82 119 53 98 126 66
++82 119 53 98 126 66 82 119 53 98 126 66 82 119 53 98 132 66 82 119 53 87 122 63
++82 119 53 87 122 63 87 122 63 82 119 53 98 132 66 82 119 53 87 122 63 98 132 66
++82 119 53 98 132 66 87 122 63 98 126 66 98 132 66 87 122 63 87 122 63 98 132 66
++87 122 63 87 122 63 98 126 66 87 122 63 87 122 63 87 122 63 98 126 66 87 122 63
++98 126 66 98 132 66 87 122 63 98 126 66 98 132 66 98 132 66 98 126 66 98 126 66
++98 126 66 98 126 66 98 132 66 98 126 66 98 126 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 75 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 75 98 132 66 98 132 66 98 132 66 98 132 75 98 132 66 98 132 66
++98 132 75 98 132 66 98 132 75 98 132 66 98 132 66 98 132 75 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 75 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 75 157 148 53 98 132 75 98 132 66 98 132 66
++99 133 85 98 132 66 98 132 75 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 66 98 132 75
++98 132 75 98 132 75 117 142 111 146 162 145 166 174 181 185 202 202 185 202 202 185 202 202
++194 199 226 194 199 226 194 199 226 194 199 226 208 221 247 201 216 228 232 215 228 208 221 247
++208 221 247 208 221 247 221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247
++221 238 247 226 221 247 231 239 247 221 238 247 226 221 247 226 221 247 221 238 247 226 221 247
++221 238 247 221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 221 238 247 221 238 247
++221 238 247 221 238 247 231 239 247 231 239 247 240 251 247 246 237 247 240 251 247 251 251 247
++251 251 247 251 251 247 240 251 247 185 202 202 146 162 145 98 113 84 99 133 85 117 127 86
++98 132 75 98 132 75 98 132 75 98 132 66 98 132 66 98 132 66 117 127 86 98 132 75
++98 132 75 98 132 66 117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66
++98 132 66 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++117 127 86 98 132 75 117 127 86 98 132 75 117 127 86 98 132 75 117 127 86 98 132 66
++117 127 86 98 132 75 98 132 75 98 132 66 117 127 86 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66
++98 132 75 98 132 75 98 132 66 98 132 66 98 132 75 98 132 75 98 132 75 98 126 66
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 117 114 76 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 126 66 98 132 75 98 132 75 98 132 75 98 132 75
++98 126 66 98 132 75 98 126 66 98 132 75 98 126 66 88 121 82 98 132 75 98 126 66
++98 126 66 98 126 66 88 121 82 98 126 66 88 121 82 98 126 66 88 121 82 98 126 66
++98 126 66 87 120 67 98 126 66 88 121 82 98 126 66 87 120 67 98 126 66 87 120 67
++98 126 66 88 121 82 98 126 66 88 121 82 98 126 66 88 121 82 98 126 66 98 126 66
++88 121 82 87 120 67 98 126 66 88 121 82 98 126 66 88 121 82 98 126 66 98 126 66
++88 121 82 98 126 66 88 121 82 98 126 66 98 126 66 98 113 84 98 126 66 87 120 67
++87 120 67 98 126 66 98 126 66 87 120 67 87 120 67 98 126 66 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66
++87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 88 121 82 98 126 66 88 121 82 98 126 66 87 120 67 98 126 66 88 121 82
++98 126 66 87 120 67 98 113 84 87 120 67 87 120 67 87 120 67 85 113 63 88 121 82
++85 113 63 87 120 67 87 120 67 85 113 63 87 120 67 85 113 63 87 120 67 87 120 67
++85 113 63 87 120 67 87 120 67 85 113 63 85 113 63 87 120 67 85 113 63 85 113 63
++87 120 67 85 113 63 88 121 82 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++87 120 67 87 99 72 85 113 63 85 113 63 85 113 63 87 120 67 87 120 67 85 113 63
++87 120 67 85 113 63 85 113 63 87 120 67 87 99 72 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++82 107 52 82 107 52 75 99 72 85 113 63 81 96 56 75 99 72 82 107 52 73 107 51
++81 96 56 75 99 72 82 107 52 75 99 72 73 107 51 85 113 63 81 96 56 82 107 52
++75 99 72 82 107 52 81 96 56 82 107 52 75 99 72 82 107 52 75 99 72 87 99 72
++85 113 63 85 113 63 85 113 63 75 99 72 85 113 63 87 99 72 85 113 63 85 113 63
++81 96 56 85 113 63 75 99 72 82 107 52 75 99 72 85 113 63 75 99 72 85 113 63
++81 96 56 75 99 72 73 107 51 81 96 56 73 107 51 81 96 56 70 96 55 81 96 56
++70 96 55 70 96 55 81 96 56 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 66 86 47 70 96 55 66 86 47 70 96 55 70 96 55 66 86 47 75 77 62
++70 96 55 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++64 70 48 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 59 79 61 66 86 47
++
++57 86 47 70 96 45 66 86 47 66 86 47 66 86 47 70 96 45 66 86 47 70 96 45
++66 86 47 66 86 47 70 96 45 66 86 47 70 96 45 49 74 23 66 86 47 70 96 45
++49 74 23 70 96 45 57 86 47 70 96 45 49 74 23 70 96 45 66 86 47 70 96 45
++66 86 47 70 96 45 70 96 45 66 86 47 64 97 47 70 96 45 66 86 47 64 97 47
++66 86 47 70 96 45 57 86 47 70 96 45 49 74 23 70 96 45 64 97 47 66 86 47
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 64 97 47 70 96 45 70 96 55 70 96 45 70 96 45
++70 96 55 70 96 45 64 97 47 70 96 45 64 97 47 70 96 45 66 86 47 70 96 45
++64 97 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 64 97 47 70 96 45
++73 107 51 73 107 51 70 96 45 73 107 51 70 96 45 70 96 55 70 96 45 70 96 45
++70 96 45 73 107 51 70 96 55 73 107 51 70 96 45 70 96 45 70 96 45 73 107 51
++70 96 45 70 96 55 73 107 51 70 96 45 70 96 45 73 107 51 70 96 45 73 107 51
++70 96 45 73 107 51 80 96 46 73 107 51 73 107 51 80 96 46 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 70 96 45 73 107 51 73 107 51 73 107 51 70 96 45
++73 107 51 73 107 51 73 107 51 70 96 45 73 107 51 80 96 46 73 107 51 73 107 51
++82 107 52 73 107 51 82 119 53 82 107 52 82 107 52 82 107 52 82 119 53 82 107 52
++82 107 52 82 107 52 82 107 52 82 119 53 82 107 52 82 107 52 82 119 53 82 107 52
++82 119 53 82 107 52 82 107 52 82 119 53 82 107 52 82 107 52 82 107 52 82 107 52
++82 119 53 73 107 51 82 107 52 82 119 53 82 107 52 82 119 53 82 107 52 82 107 52
++82 107 52 82 107 52 82 107 52 82 107 52 82 119 53 82 107 52 82 107 52 82 119 53
++82 107 52 82 119 53 82 107 52 82 119 53 82 107 52 82 119 53 82 107 52 85 113 63
++82 119 53 85 113 63 82 119 53 98 106 55 87 122 63 98 106 55 87 122 63 82 119 53
++87 122 63 98 106 55 87 122 63 82 119 53 82 107 52 82 107 52 82 119 53 82 107 52
++85 113 63 82 107 52 82 119 53 85 113 63 82 107 52 82 119 53 85 113 63 98 106 55
++87 122 63 85 113 63 81 96 56 64 70 48 66 86 47 87 99 72 87 99 72 88 73 62
++87 99 72 98 113 84 138 126 108 146 151 137 146 151 137 146 150 115 112 123 108 75 72 67
++51 49 42 65 57 61 75 81 69 75 63 62 48 50 48 42 47 42 75 81 69 59 57 61
++14 16 17 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 4 9 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1
++3 3 1 3 3 1 22 25 24 66 86 47 88 121 82 98 126 66 85 113 63 82 119 53
++98 106 55 98 132 66 82 119 53 98 126 66 82 119 53 82 119 53 98 126 66 82 119 53
++82 119 53 82 119 53 98 126 66 82 119 53 117 112 45 82 119 53 98 132 66 82 119 53
++98 126 66 82 119 53 98 126 66 98 126 66 82 119 53 98 126 66 98 126 66 82 119 53
++98 132 66 98 126 66 82 119 53 98 132 66 98 126 66 82 119 53 98 126 66 98 132 66
++98 126 66 82 119 53 98 132 66 87 122 63 98 126 66 98 126 66 98 126 66 98 126 66
++82 119 53 98 126 66 98 126 66 82 119 53 98 126 66 98 126 66 87 122 63 98 126 66
++82 119 53 98 126 66 82 119 53 82 119 53 82 119 53 82 119 53 98 132 66 82 119 53
++98 132 66 82 119 53 87 122 63 82 119 53 82 119 53 98 132 66 87 122 63 87 122 63
++98 132 66 82 119 53 98 132 66 87 122 63 87 122 63 98 132 66 87 122 63 87 122 63
++87 122 63 87 122 63 98 132 66 87 122 63 98 132 66 87 122 63 87 122 63 87 122 63
++87 122 63 87 122 63 98 132 66 87 122 63 87 122 63 98 132 66 98 126 66 98 126 66
++98 126 66 98 126 66 98 132 66 98 126 66 98 132 66 98 126 66 98 132 66 98 126 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 126 66 98 132 66
++98 126 66 98 132 66 98 132 75 98 132 66 98 132 66 98 132 66 98 126 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 75 98 132 66 98 132 66 98 132 66 98 132 75
++98 132 66 98 132 66 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75
++98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 75 98 132 66 98 132 66 98 132 75 98 132 66 98 132 66 98 132 66
++98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 66
++98 132 75 98 132 66 98 132 66 98 132 66 98 132 66 98 132 75 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 99 133 85 121 143 132 166 180 164 185 202 202 185 202 202 194 199 226
++194 199 226 194 199 226 201 216 228 201 216 228 201 216 228 208 221 247 208 221 247 208 221 247
++226 221 247 221 238 247 226 221 247 221 238 247 221 238 247 221 238 247 226 221 247 221 238 247
++226 221 247 231 239 247 226 221 247 231 239 247 226 221 247 221 238 247 226 221 247 221 238 247
++226 221 247 221 238 247 221 238 247 226 221 247 221 238 247 221 238 247 226 221 247 221 238 247
++221 238 247 226 221 247 231 239 247 231 239 247 231 239 247 235 238 247 240 251 247 240 251 247
++251 251 247 251 251 247 240 251 247 225 222 201 146 162 145 99 133 85 88 121 82 98 132 75
++98 132 75 98 132 75 117 127 86 98 132 66 98 132 75 98 132 75 98 132 66 98 132 66
++98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 117 127 86 98 132 66 98 132 75 117 127 86 98 132 66
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86 98 132 66 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 117 127 86 98 132 66 98 132 75 98 132 75
++98 132 75 98 132 66 98 132 75 98 132 75 98 132 66 98 132 75 117 127 86 98 132 75
++98 132 75 117 114 76 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 113 84 98 132 75 98 132 75 98 113 84 98 132 75 98 126 66 98 132 75 98 126 66
++98 113 84 98 132 75 98 126 66 98 113 84 98 132 75 98 126 66 98 132 75 98 126 66
++88 121 82 98 126 66 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 98 126 66
++88 121 82 98 126 66 98 126 66 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66
++87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66
++98 126 66 98 126 66 88 121 82 98 126 66 98 113 84 98 126 66 88 121 82 98 126 66
++98 132 75 98 113 84 98 132 75 88 121 82 98 126 66 87 120 67 87 120 67 98 113 84
++98 126 66 87 120 67 98 113 84 87 120 67 98 126 66 87 120 67 87 120 67 98 126 66
++85 113 63 87 120 67 87 120 67 87 120 67 87 120 67 98 126 66 87 120 67 87 120 67
++87 120 67 98 126 66 87 99 72 98 126 66 87 120 67 98 113 84 87 120 67 98 126 66
++98 113 84 98 126 66 87 120 67 98 113 84 98 126 66 88 121 82 98 126 66 88 121 82
++98 126 66 98 113 84 87 120 67 87 120 67 98 113 84 87 120 67 87 120 67 87 120 67
++85 113 63 87 120 67 85 113 63 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++85 113 63 87 120 67 87 99 72 87 120 67 88 121 82 87 120 67 87 120 67 98 113 84
++85 113 63 87 120 67 87 99 72 87 120 67 85 113 63 87 120 67 87 99 72 87 120 67
++87 99 72 87 120 67 87 120 67 98 113 84 85 113 63 87 99 72 87 120 67 85 113 63
++98 106 55 85 113 63 85 113 63 85 113 63 87 120 67 85 113 63 85 113 63 85 113 63
++85 113 63 87 99 72 87 120 67 87 99 72 87 120 67 85 113 63 85 113 63 87 99 72
++85 113 63 85 113 63 87 99 72 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 75 99 72 85 113 63 85 113 63 75 99 72 85 113 63 82 107 52
++85 113 63 73 107 51 85 113 63 75 99 72 82 107 52 82 107 52 73 107 51 85 113 63
++75 99 72 82 107 52 75 99 72 82 107 52 75 99 72 85 113 63 75 99 72 85 113 63
++82 107 52 75 99 72 82 107 52 81 96 56 82 107 52 75 99 72 82 107 52 85 113 63
++81 96 56 75 99 72 82 107 52 85 113 63 87 99 72 82 107 52 75 99 72 81 96 56
++73 107 51 81 96 56 81 96 56 75 99 72 82 107 52 70 96 55 81 96 56 81 96 56
++75 99 72 81 96 56 70 96 55 70 96 55 81 96 56 70 96 55 81 96 56 70 96 55
++70 96 55 81 96 56 70 96 55 81 96 56 81 96 56 81 96 56 81 96 56 70 96 55
++70 96 55 81 96 56 70 96 55 75 81 69 70 96 55 66 86 47 70 96 55 70 96 55
++70 96 55 75 77 62 70 96 55 70 96 55 70 96 55 70 96 55 66 86 47 81 96 56
++66 86 47 70 96 55 66 86 47 59 79 61 66 86 47 59 79 61 66 86 47 66 86 47
++
++75 73 36 66 86 47 70 96 45 70 96 45 66 86 47 70 96 45 49 74 23 66 86 47
++70 96 45 49 74 23 70 96 45 49 74 23 66 86 47 70 96 45 49 74 23 57 86 47
++70 96 45 49 74 23 70 96 45 66 86 47 70 96 45 57 86 47 70 96 45 49 74 23
++57 86 47 64 97 47 66 86 47 64 97 47 70 96 45 66 86 47 70 96 45 70 96 45
++57 86 47 70 96 45 57 86 47 70 96 45 66 86 47 70 96 45 66 86 47 64 97 47
++66 86 47 70 96 45 66 86 47 64 97 47 70 96 45 70 96 45 70 96 45 64 97 47
++70 96 45 64 97 47 66 86 47 70 96 45 70 96 45 70 96 45 70 96 55 70 96 45
++70 96 45 70 96 45 70 96 45 66 86 47 70 96 45 70 96 45 64 97 47 66 86 47
++70 96 45 66 86 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 55 70 96 45 70 96 45 73 107 51 70 96 45 73 107 51
++70 96 55 80 96 46 73 107 51 70 96 45 73 107 51 70 96 45 70 96 55 70 96 45
++73 107 51 70 96 45 73 107 51 70 96 45 73 107 51 70 96 45 70 96 45 73 107 51
++70 96 45 70 96 55 73 107 51 81 96 56 70 96 45 73 107 51 73 107 51 73 107 51
++80 96 46 73 107 51 82 107 52 73 107 51 73 107 51 80 96 46 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51 82 107 52
++82 107 52 82 119 53 82 107 52 85 113 63 82 119 53 82 119 53 82 107 52 82 107 52
++82 107 52 82 107 52 82 107 52 82 107 52 82 119 53 82 107 52 85 113 63 85 113 63
++85 113 63 85 113 63 82 119 53 82 107 52 82 119 53 82 107 52 82 119 53 82 107 52
++73 107 51 82 107 52 82 119 53 82 107 52 85 113 63 82 119 53 82 107 52 82 119 53
++82 107 52 82 119 53 82 107 52 82 119 53 82 107 52 82 107 52 82 107 52 85 113 63
++82 107 52 85 113 63 85 113 63 82 107 52 82 119 53 85 113 63 82 107 52 82 119 53
++85 113 63 82 119 53 82 119 53 87 122 63 82 119 53 87 122 63 87 122 63 98 106 55
++82 119 53 87 122 63 85 113 63 82 107 52 85 113 63 82 119 53 85 113 63 82 107 52
++82 119 53 82 107 52 85 113 63 82 119 53 82 119 53 98 106 55 82 119 53 85 113 63
++87 120 67 87 99 72 87 99 72 81 96 56 75 81 69 87 99 72 87 99 72 75 81 69
++88 83 74 99 93 84 95 119 107 117 99 86 112 123 108 117 99 86 88 73 62 47 44 42
++15 17 7 26 30 28 47 44 42 42 41 42 36 35 37 36 35 37 59 55 55 36 35 37
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 6 15 6 50 61 48 87 99 72 98 126 66 98 126 66 82 119 53 98 126 66
++87 122 63 82 119 53 98 126 66 82 119 53 82 119 53 98 126 66 82 119 53 98 126 66
++82 119 53 98 126 66 82 119 53 82 119 53 87 122 63 98 126 66 82 119 53 98 126 66
++82 119 53 98 126 66 82 119 53 98 126 66 98 126 66 82 119 53 98 126 66 98 126 66
++82 119 53 98 126 66 98 132 66 82 119 53 98 126 66 98 126 66 98 126 66 98 126 66
++98 126 66 98 126 66 98 126 66 98 132 66 82 119 53 98 132 66 82 119 53 98 126 66
++98 132 66 82 119 53 98 126 66 98 132 66 82 119 53 98 126 66 82 119 53 98 126 66
++82 119 53 98 126 66 82 119 53 98 126 66 87 122 63 98 132 66 82 119 53 87 122 63
++87 122 63 87 122 63 98 132 66 82 119 53 98 132 66 82 119 53 98 132 66 87 122 63
++87 122 63 87 122 63 98 132 66 87 122 63 98 132 66 87 122 63 87 122 63 87 122 63
++98 132 66 87 122 63 87 122 63 87 122 63 87 122 63 87 122 63 87 122 63 98 132 66
++87 122 63 98 132 66 87 122 63 98 132 66 98 132 66 98 132 66 87 122 63 98 126 66
++98 132 66 98 126 66 98 132 66 98 132 66 98 126 66 98 132 66 98 126 66 98 126 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 126 66 98 126 66 98 132 66 98 126 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 126 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 75 98 132 66
++98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66
++98 132 75 98 132 66 98 132 66 98 132 66 98 132 75 98 132 66 98 132 66 98 132 75
++98 132 66 98 132 75 98 132 66 98 132 66 98 132 66 98 132 66 98 132 75 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 75 98 132 66 98 132 66 98 132 66 98 132 75
++98 132 66 98 132 75 98 132 66 98 132 66 117 127 86 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 75 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 117 127 86 98 132 66 98 132 75 98 132 66
++98 132 75 98 132 75 98 132 75 117 142 111 146 162 145 166 174 181 185 202 202 185 202 202
++185 202 202 194 199 226 194 199 226 194 199 226 201 216 228 208 221 247 201 216 228 208 221 247
++208 221 247 208 221 247 221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 231 239 247
++221 238 247 226 221 247 221 238 247 231 239 247 231 239 247 226 221 247 226 221 247 221 238 247
++226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 221 238 247 226 221 247
++221 238 247 221 238 247 221 238 247 231 239 247 235 238 247 235 238 247 246 237 247 251 251 247
++251 251 247 251 251 247 251 251 247 201 216 228 150 171 159 99 133 85 98 113 84 99 133 85
++98 132 75 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 66
++98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 117 127 86 98 132 75
++98 132 66 117 127 86 98 132 66 98 132 66 98 132 75 98 132 75 98 132 66 98 132 66
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 117 127 86
++98 132 75 98 132 66 117 127 86 98 132 66 117 127 86 98 132 75 117 127 86 98 132 75
++117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86 98 132 66 117 127 86
++98 132 66 117 127 86 98 132 75 98 132 66 98 132 66 98 132 75 98 132 75 98 132 66
++117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 126 66 98 132 75
++98 132 75 98 132 75 98 132 75 98 126 66 98 132 75 98 132 75 98 126 66 98 132 75
++98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 98 132 75 98 132 75 98 132 75
++98 126 66 98 132 75 98 132 75 98 126 66 98 132 75 98 126 66 88 121 82 98 132 75
++98 126 66 88 121 82 98 126 66 98 132 75 98 126 66 88 121 82 98 126 66 98 132 75
++98 126 66 98 126 66 88 121 82 98 126 66 88 121 82 98 126 66 87 120 67 87 120 67
++87 120 67 87 120 67 98 126 66 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 98 113 84 87 120 67 98 126 66 87 120 67 98 126 66 98 126 66 88 121 82
++98 126 66 98 132 66 98 113 84 98 132 75 98 126 66 88 121 82 98 126 66 98 126 66
++87 120 67 98 126 66 87 120 67 87 120 67 87 120 67 98 113 84 87 120 67 85 113 63
++98 113 84 87 120 67 87 120 67 98 113 84 87 120 67 88 121 82 98 126 66 98 113 84
++87 120 67 87 120 67 87 120 67 98 113 84 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 87 120 67 88 121 82 98 126 66 88 121 82 98 126 66 88 121 82 98 126 66
++87 120 67 98 126 66 98 113 84 87 120 67 98 126 66 87 120 67 98 113 84 87 120 67
++87 120 67 98 113 84 87 120 67 85 113 63 98 113 84 85 113 63 88 121 82 85 113 63
++88 121 82 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 85 113 63 87 120 67
++85 113 63 87 120 67 87 120 67 85 113 63 98 113 84 85 113 63 87 120 67 87 120 67
++85 113 63 98 113 84 85 113 63 85 113 63 87 120 67 87 120 67 87 99 72 87 120 67
++85 113 63 85 113 63 85 113 63 85 113 63 87 99 72 85 113 63 85 113 63 85 113 63
++85 113 63 87 120 67 87 120 67 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 87 120 67 87 99 72
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 75 99 72 85 113 63 85 113 63 75 99 72 82 107 52 75 99 72 82 107 52
++81 96 56 85 113 63 85 113 63 85 113 63 82 107 52 82 107 52 85 113 63 85 113 63
++81 96 56 85 113 63 75 99 72 85 113 63 81 96 56 82 107 52 75 99 72 81 96 56
++85 113 63 82 107 52 75 99 72 81 96 56 85 113 63 81 96 56 85 113 63 81 96 56
++85 113 63 81 96 56 75 99 72 81 96 56 70 96 55 81 96 56 73 107 51 81 96 56
++73 107 51 75 99 72 81 96 56 81 96 56 70 96 55 81 96 56 70 96 55 81 96 56
++70 96 55 81 96 56 70 96 55 81 96 56 70 96 55 70 96 55 81 96 56 70 96 55
++81 96 56 70 96 55 81 96 56 70 96 55 81 96 56 70 96 55 81 96 56 75 77 62
++70 96 55 70 96 55 66 86 47 70 96 55 66 86 47 70 96 55 66 86 47 70 96 55
++75 77 62 66 86 47 70 96 55 66 86 47 66 86 47 70 96 55 59 79 61 70 96 55
++
++57 86 47 70 96 45 70 96 45 66 86 47 57 86 47 70 96 45 70 96 45 66 86 47
++66 86 47 70 96 45 66 86 47 70 96 45 66 86 47 66 86 47 70 96 45 70 96 45
++66 86 47 70 96 45 66 86 47 66 86 47 70 96 45 57 86 47 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 66 86 47 70 96 45 64 97 47 70 96 45 66 86 47
++70 96 45 66 86 47 70 96 45 66 86 47 64 97 47 57 86 47 70 96 45 66 86 47
++64 97 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 55 70 96 45 64 97 47 70 96 45 70 96 45 66 86 47 70 96 45 66 86 47
++64 97 47 70 96 45 70 96 45 70 96 45 70 96 45 64 97 47 70 96 45 70 96 45
++73 107 51 70 96 45 73 107 51 70 96 45 73 107 51 70 96 45 70 96 55 70 96 45
++73 107 51 73 107 51 70 96 45 70 96 55 70 96 45 70 96 45 73 107 51 70 96 45
++70 96 55 70 96 45 70 96 55 73 107 51 70 96 45 70 96 55 73 107 51 70 96 55
++73 107 51 73 107 51 70 96 55 73 107 51 73 107 51 70 96 45 73 107 51 80 96 46
++73 107 51 73 107 51 73 107 51 73 107 51 80 96 46 73 107 51 73 107 51 80 96 46
++82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 82 107 52
++82 107 52 82 107 52 87 122 63 87 122 63 85 113 63 85 113 63 82 107 52 73 107 51
++82 107 52 82 107 52 82 107 52 82 107 52 85 113 63 82 107 52 82 119 53 98 106 55
++82 119 53 85 113 63 82 119 53 85 113 63 82 119 53 82 107 52 82 119 53 82 107 52
++85 113 63 82 119 53 82 107 52 85 113 63 82 119 53 85 113 63 85 113 63 82 119 53
++82 107 52 82 107 52 85 113 63 82 107 52 82 119 53 82 107 52 82 119 53 82 107 52
++85 113 63 82 119 53 82 107 52 82 119 53 85 113 63 82 107 52 82 119 53 85 113 63
++82 107 52 82 119 53 98 106 55 82 119 53 85 113 63 87 122 63 87 122 63 87 122 63
++87 122 63 98 106 55 82 119 53 85 113 63 85 113 63 82 107 52 85 113 63 82 119 53
++82 107 52 85 113 63 82 119 53 85 113 63 85 113 63 82 119 53 85 113 63 85 113 63
++85 113 63 98 113 84 117 142 111 94 105 108 87 99 72 99 93 84 90 98 89 99 93 84
++98 113 84 117 99 86 98 113 84 99 93 84 99 93 84 88 83 74 75 77 62 52 55 48
++32 39 24 33 30 30 32 39 24 34 30 15 47 44 42 64 70 48 55 55 48 23 31 15
++3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1
++3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++6 15 6 29 35 19 80 96 46 98 132 75 87 122 63 87 122 63 87 122 63 98 126 66
++82 119 53 98 126 66 82 119 53 98 126 66 98 126 66 82 119 53 87 122 63 87 122 63
++82 119 53 98 126 66 82 119 53 98 126 66 98 126 66 82 119 53 98 126 66 82 119 53
++98 126 66 82 119 53 98 126 66 82 119 53 98 126 66 98 126 66 87 122 63 98 126 66
++98 126 66 98 126 66 82 119 53 98 132 66 98 126 66 82 119 53 98 132 66 82 119 53
++98 132 66 82 119 53 98 132 66 87 122 63 98 126 66 98 126 66 98 126 66 98 126 66
++82 119 53 98 132 66 82 119 53 98 126 66 98 126 66 82 119 53 98 126 66 82 119 53
++98 126 66 82 119 53 98 126 66 82 119 53 98 126 66 82 119 53 98 126 66 87 122 63
++87 122 63 87 122 63 87 122 63 98 126 66 87 122 63 87 122 63 98 132 66 82 119 53
++98 132 66 87 122 63 98 126 66 87 122 63 98 132 66 87 122 63 98 126 66 87 122 63
++87 122 63 98 132 66 87 122 63 98 132 66 82 119 53 98 132 66 82 119 53 98 132 66
++87 122 63 98 132 66 98 132 66 87 122 63 98 132 66 87 122 63 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 126 66 98 132 66 98 132 66 98 126 66 98 126 66
++98 132 66 98 126 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 126 66 98 132 66 98 126 66 98 132 66 98 126 66
++98 132 66 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 75 98 132 66 98 132 66 98 132 75 98 132 66 98 132 66 98 132 75
++98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75
++98 132 75 98 132 66 98 132 75 98 132 66 98 132 66 98 132 75 98 132 66 98 132 75
++117 127 86 98 132 66 98 132 66 117 127 86 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 75 98 132 66 98 132 66 98 132 66 98 132 66 98 132 75 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 75 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 75 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 75 98 132 66
++98 132 75 98 132 66 98 132 75 98 132 66 98 132 66 98 132 66 98 132 75 117 127 86
++98 132 66 98 132 75 98 126 66 98 132 75 117 142 111 150 171 159 185 202 202 185 202 202
++194 199 226 194 199 226 194 199 226 194 199 226 201 216 228 208 221 247 208 221 247 201 216 228
++226 221 247 221 238 247 226 221 247 221 238 247 221 238 247 226 221 247 221 238 247 226 221 247
++231 239 247 231 239 247 231 239 247 226 221 247 231 239 247 221 238 247 226 221 247 221 238 247
++226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 208 221 247 221 238 247
++221 238 247 221 238 247 221 238 247 231 239 247 231 239 247 235 238 247 240 251 247 246 237 247
++251 251 247 251 251 247 240 251 247 233 241 227 166 180 164 112 123 108 99 133 85 98 113 84
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 117 127 86
++98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75
++98 132 75 98 132 66 98 132 75 98 132 75 117 127 86 98 132 66 98 132 75 98 132 75
++98 132 66 117 127 86 98 132 66 98 132 75 117 127 86 98 132 66 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 117 127 86 98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 66 98 132 66 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 126 66 98 132 75 98 132 75 98 132 75 117 114 76 98 132 75 98 132 75 98 132 75
++117 114 76 98 132 75 98 132 75 98 132 75 117 114 76 98 132 75 98 132 75 98 132 75
++98 132 75 98 126 66 88 121 82 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75
++98 126 66 98 132 75 98 126 66 88 121 82 98 126 66 98 132 75 98 126 66 88 121 82
++98 126 66 98 126 66 98 126 66 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66
++87 120 67 87 120 67 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 87 120 67
++98 126 66 98 126 66 88 121 82 98 126 66 88 121 82 98 126 66 98 113 84 98 126 66
++98 126 66 88 121 82 98 126 66 88 121 82 98 126 66 98 126 66 98 132 75 88 121 82
++98 113 84 87 120 67 87 120 67 98 113 84 85 113 63 87 120 67 98 126 66 87 120 67
++98 126 66 87 120 67 87 120 67 98 126 66 87 120 67 98 113 84 87 120 67 98 126 66
++87 120 67 98 113 84 87 120 67 98 126 66 87 120 67 98 126 66 98 113 84 87 120 67
++98 126 66 87 120 67 98 126 66 98 113 84 98 126 66 87 120 67 98 126 66 87 120 67
++88 121 82 98 126 66 87 120 67 98 113 84 87 120 67 98 113 84 85 113 63 87 120 67
++85 113 63 85 113 63 87 120 67 98 113 84 87 122 63 87 120 67 87 120 67 87 120 67
++85 113 63 87 120 67 98 113 84 87 120 67 87 120 67 98 113 84 87 120 67 85 113 63
++98 113 84 85 113 63 85 113 63 87 120 67 85 113 63 87 120 67 85 113 63 87 120 67
++85 113 63 87 120 67 85 113 63 98 113 84 85 113 63 87 120 67 87 120 67 85 113 63
++87 99 72 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++87 120 67 87 99 72 87 120 67 87 99 72 85 113 63 87 99 72 87 120 67 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 87 99 72 85 113 63 85 113 63 87 99 72
++85 113 63 85 113 63 81 96 56 85 113 63 85 113 63 82 107 52 85 113 63 85 113 63
++75 99 72 73 107 51 75 99 72 82 107 52 75 99 72 85 113 63 75 99 72 85 113 63
++87 99 72 85 113 63 82 107 52 85 113 63 75 99 72 85 113 63 82 107 52 85 113 63
++81 96 56 85 113 63 81 96 56 85 113 63 75 99 72 81 96 56 85 113 63 81 96 56
++85 113 63 70 96 55 85 113 63 70 96 55 82 107 52 81 96 56 81 96 56 75 99 72
++81 96 56 81 96 56 73 107 51 75 99 72 73 107 51 81 96 56 75 99 72 81 96 56
++75 99 72 81 96 56 81 96 56 70 96 55 81 96 56 70 96 55 81 96 56 70 96 55
++81 96 56 70 96 55 81 96 56 70 96 55 75 81 69 70 96 55 75 77 62 70 96 55
++70 96 55 66 86 47 70 96 55 70 96 55 66 86 47 66 86 47 70 96 55 66 86 47
++66 86 47 70 96 55 66 86 47 66 86 47 59 79 61 66 86 47 66 86 47 66 86 47
++
++66 86 47 66 86 47 66 86 47 70 96 45 70 96 45 66 86 47 66 86 47 70 96 45
++49 74 23 66 86 47 49 74 23 70 96 45 49 74 23 66 86 47 70 96 45 49 74 23
++70 96 45 66 86 47 70 96 45 57 86 47 70 96 45 66 86 47 70 96 45 66 86 47
++70 96 45 57 86 47 70 96 45 70 96 45 64 97 47 70 96 45 70 96 45 70 96 45
++70 96 45 57 86 47 70 96 45 57 86 47 70 96 45 66 86 47 70 96 45 57 86 47
++70 96 45 66 86 47 70 96 45 70 96 45 70 96 45 64 97 47 70 96 45 70 96 45
++64 97 47 70 96 45 66 86 47 64 97 47 70 96 45 70 96 45 70 96 55 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 64 97 47 70 96 45 66 86 47 64 97 47
++70 96 45 70 96 45 66 86 47 70 96 45 70 96 55 70 96 45 73 107 51 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 73 107 51 70 96 45 73 107 51
++70 96 45 70 96 45 73 107 51 70 96 45 73 107 51 70 96 45 70 96 45 73 107 51
++70 96 45 73 107 51 70 96 45 70 96 45 73 107 51 70 96 45 73 107 51 80 96 46
++73 107 51 80 96 46 73 107 51 80 96 46 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 80 96 46 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51
++73 107 51 73 107 51 82 107 52 73 107 51 82 107 52 82 107 52 73 107 51 82 107 52
++82 107 52 82 107 52 82 107 52 85 113 63 82 107 52 82 107 52 82 107 52 82 107 52
++82 107 52 82 107 52 73 107 51 82 107 52 82 119 53 82 107 52 85 113 63 85 113 63
++85 113 63 87 122 63 87 122 63 82 119 53 85 113 63 85 113 63 82 107 52 82 119 53
++85 113 63 85 113 63 85 113 63 85 113 63 82 107 52 85 113 63 82 107 52 73 107 51
++85 113 63 82 119 53 82 107 52 85 113 63 82 107 52 85 113 63 82 107 52 85 113 63
++82 119 53 82 107 52 82 107 52 85 113 63 82 107 52 85 113 63 82 107 52 82 119 53
++85 113 63 82 119 53 82 119 53 85 113 63 87 122 63 98 106 55 87 122 63 85 113 63
++82 119 53 87 122 63 87 122 63 98 106 55 85 113 63 85 113 63 85 113 63 82 107 52
++85 113 63 82 107 52 82 107 52 82 119 53 85 113 63 82 119 53 82 107 52 82 107 52
++98 132 75 117 142 111 146 162 145 98 113 84 75 81 69 98 113 84 112 123 108 138 126 108
++112 123 108 112 123 108 112 96 108 98 113 84 99 93 84 99 93 84 90 98 89 88 83 74
++75 63 62 32 39 24 26 12 13 26 25 15 75 72 67 99 93 84 75 77 62 26 30 28
++3 3 1 3 3 1 3 3 1 3 3 1 13 4 7 3 4 9 3 3 1 3 4 9
++3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++23 31 15 66 86 47 87 99 72 98 126 66 87 122 63 82 119 53 82 107 52 98 126 66
++87 122 63 98 126 66 87 122 63 98 106 55 87 122 63 87 122 63 87 122 63 98 126 66
++98 126 66 82 119 53 98 126 66 82 119 53 87 122 63 98 126 66 82 119 53 98 126 66
++82 119 53 98 126 66 82 119 53 98 126 66 87 122 63 98 132 66 82 119 53 98 126 66
++82 119 53 98 126 66 98 126 66 98 126 66 87 122 63 98 126 66 98 126 66 98 126 66
++98 126 66 98 126 66 98 126 66 98 126 66 87 122 63 98 132 66 82 119 53 98 126 66
++98 126 66 98 126 66 98 132 66 82 119 53 98 126 66 87 122 63 98 126 66 98 126 66
++87 122 63 98 126 66 98 126 66 98 126 66 87 122 63 98 126 66 87 122 63 98 126 66
++87 122 63 98 132 66 87 122 63 87 122 63 87 122 63 98 132 66 82 119 53 98 132 66
++87 122 63 98 132 66 87 122 63 98 132 66 87 122 63 98 126 66 98 132 66 82 119 53
++98 132 66 82 119 53 98 132 66 82 119 53 87 122 63 87 122 63 98 132 66 87 122 63
++98 132 66 87 122 63 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 126 66 98 132 66 98 132 66 98 132 75 98 126 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 126 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 126 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 75
++98 132 75 98 132 66 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 66
++99 133 85 157 148 53 98 132 75 98 132 66 117 127 86 98 132 66 98 132 75 98 132 66
++98 132 66 117 127 86 98 132 66 98 132 66 98 132 66 98 132 66 98 132 75 98 132 66
++98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 66 98 132 75
++98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75
++98 132 66 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66
++98 132 75 98 132 66 98 132 66 98 132 66 98 132 75 98 132 66 98 132 66 98 132 66
++98 132 75 98 132 75 98 132 75 99 133 85 99 133 85 146 151 137 166 180 164 185 202 202
++185 202 202 194 199 226 194 199 226 194 199 226 201 216 228 201 216 228 201 216 228 208 221 247
++208 221 247 208 221 247 221 238 247 221 238 247 226 221 247 231 239 247 221 238 247 231 239 247
++221 238 247 226 221 247 231 239 247 231 239 247 226 221 247 231 239 247 226 221 247 221 238 247
++208 221 247 226 221 247 221 238 247 226 221 247 221 238 247 221 238 247 226 221 247 221 238 247
++226 221 247 221 238 247 221 238 247 231 239 247 231 239 247 235 238 247 235 238 247 240 251 247
++251 251 247 251 251 247 240 251 247 233 241 227 166 180 164 112 123 108 99 133 85 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75
++98 132 66 98 132 75 98 132 66 98 132 66 98 132 66 117 127 86 98 132 66 117 127 86
++98 132 75 98 132 75 117 127 86 98 132 75 98 132 66 98 132 75 98 132 75 98 132 66
++98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 66
++117 127 86 98 132 66 117 127 86 98 132 75 117 127 86 98 132 75 117 127 86 98 132 75
++117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 117 127 86 98 132 75
++98 132 75 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 113 84 98 132 75 117 114 76 98 132 75
++98 132 75 98 113 84 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 126 66
++98 113 84 98 132 75 98 126 66 87 120 67 98 132 75 88 121 82 98 126 66 88 121 82
++98 126 66 88 121 82 98 126 66 98 132 75 98 126 66 98 126 66 98 132 75 98 126 66
++98 126 66 98 132 75 98 126 66 98 126 66 87 120 67 98 126 66 87 120 67 87 120 67
++98 126 66 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 88 121 82 98 126 66
++88 121 82 87 120 67 98 126 66 98 126 66 88 121 82 98 126 66 98 126 66 98 132 75
++98 126 66 98 126 66 98 113 84 98 132 75 98 132 75 88 121 82 98 126 66 98 126 66
++98 126 66 98 126 66 87 120 67 87 120 67 98 126 66 87 120 67 98 113 84 87 120 67
++98 113 84 98 126 66 98 113 84 87 120 67 98 113 84 98 126 66 98 126 66 88 121 82
++98 126 66 87 120 67 98 126 66 87 120 67 98 113 84 85 113 63 87 120 67 87 122 63
++98 113 84 98 126 66 88 121 82 98 126 66 88 121 82 98 126 66 98 113 84 98 126 66
++98 126 66 88 121 82 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 85 113 63
++98 113 84 85 113 63 87 120 67 87 120 67 85 113 63 87 120 67 98 106 55 98 113 84
++85 113 63 85 113 63 85 113 63 87 120 67 87 120 67 85 113 63 87 120 67 87 120 67
++85 113 63 98 126 66 87 99 72 87 120 67 85 113 63 85 113 63 87 120 67 98 106 55
++87 120 67 85 113 63 85 113 63 85 113 63 87 120 67 87 120 67 98 113 84 87 120 67
++87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 87 120 67 87 99 72 87 120 67
++85 113 63 85 113 63 87 120 67 85 113 63 87 120 67 87 120 67 85 113 63 85 113 63
++85 113 63 87 99 72 85 113 63 85 113 63 85 113 63 85 113 63 87 99 72 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 75 99 72 82 107 52 75 99 72 81 96 56
++82 107 52 85 113 63 85 113 63 81 96 56 85 113 63 81 96 56 85 113 63 81 96 56
++82 107 52 87 99 72 85 113 63 81 96 56 85 113 63 82 107 52 87 99 72 82 107 52
++75 99 72 81 96 56 85 113 63 81 96 56 85 113 63 81 96 56 85 113 63 85 113 63
++81 96 56 85 113 63 81 96 56 85 113 63 75 99 72 73 107 51 81 96 56 82 107 52
++75 99 72 85 113 63 75 99 72 81 96 56 81 96 56 81 96 56 70 96 55 75 99 72
++81 96 56 81 96 56 73 107 51 75 99 72 81 96 56 70 96 55 70 96 55 70 96 55
++81 96 56 70 96 55 81 96 56 81 96 56 70 96 55 81 96 56 70 96 55 81 96 56
++66 86 47 70 96 55 81 96 56 66 86 47 66 86 47 70 96 55 66 86 47 66 86 47
++66 86 47 70 96 55 75 77 62 66 86 47 70 96 55 66 86 47 66 86 47 66 86 47
++
++66 86 47 70 96 45 70 96 45 70 96 45 57 86 47 70 96 45 66 86 47 66 86 47
++70 96 45 66 86 47 66 86 47 66 86 47 70 96 45 70 96 45 70 96 45 70 96 45
++66 86 47 70 96 45 66 86 47 70 96 45 49 74 23 70 96 45 64 97 47 70 96 45
++70 96 45 70 96 45 66 86 47 70 96 45 70 96 45 70 96 45 64 97 47 70 96 45
++70 96 45 70 96 45 70 96 45 49 74 23 70 96 45 70 96 45 57 86 47 70 96 45
++66 86 47 64 97 47 70 96 45 64 97 47 70 96 45 70 96 45 70 96 45 66 86 47
++70 96 45 70 96 45 70 96 45 66 86 47 70 96 45 70 96 45 70 96 45 70 96 55
++70 96 45 70 96 45 66 86 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++66 86 47 70 96 45 64 97 47 70 96 45 64 97 47 70 96 45 70 96 45 70 96 45
++70 96 55 70 96 45 70 96 45 70 96 45 73 107 51 70 96 55 73 107 51 80 96 46
++73 107 51 70 96 55 80 96 46 70 96 45 70 96 45 70 96 55 70 96 45 70 96 45
++73 107 51 70 96 45 73 107 51 70 96 55 73 107 51 70 96 45 73 107 51 70 96 55
++73 107 51 73 107 51 70 96 55 73 107 51 73 107 51 80 96 46 73 107 51 70 96 45
++73 107 51 73 107 51 73 107 51 73 107 51 80 96 46 73 107 51 73 107 51 82 107 52
++82 107 52 82 107 52 73 107 51 82 107 52 82 107 52 82 107 52 82 107 52 82 107 52
++82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 73 107 51 82 119 53
++82 107 52 82 119 53 82 107 52 82 107 52 85 113 63 82 119 53 85 113 63 82 119 53
++85 113 63 98 106 55 87 122 63 87 122 63 82 119 53 85 113 63 82 119 53 85 113 63
++85 113 63 82 119 53 82 107 52 73 107 51 82 107 52 82 107 52 82 107 52 82 119 53
++82 107 52 73 107 51 82 107 52 82 119 53 82 107 52 82 119 53 85 113 63 82 107 52
++82 107 52 85 113 63 82 119 53 82 107 52 82 119 53 82 107 52 82 119 53 85 113 63
++82 107 52 82 119 53 85 113 63 82 119 53 87 122 63 87 122 63 85 113 63 87 122 63
++85 113 63 85 113 63 82 119 53 87 122 63 82 119 53 87 122 63 82 119 53 85 113 63
++82 119 53 82 107 52 85 113 63 85 113 63 85 113 63 82 107 52 88 121 82 112 123 108
++150 171 159 148 160 159 111 119 127 77 90 100 111 119 127 166 156 164 166 180 164 146 162 145
++146 151 137 146 151 137 146 151 137 146 151 137 146 151 137 146 150 115 121 143 132 112 123 108
++75 77 62 32 39 24 22 24 13 32 39 24 99 93 84 121 143 132 112 96 108 55 55 48
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 3 1
++3 3 1 3 4 9 3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 23 31 15
++57 86 47 85 113 63 98 126 66 87 120 67 98 106 55 87 122 63 87 122 63 87 122 63
++87 122 63 87 122 63 87 122 63 87 122 63 98 126 66 87 122 63 87 122 63 87 122 63
++82 119 53 98 126 66 82 119 53 98 126 66 87 122 63 98 126 66 82 119 53 98 126 66
++82 119 53 98 126 66 87 122 63 98 126 66 82 119 53 98 126 66 82 119 53 98 126 66
++82 119 53 98 132 66 82 119 53 98 126 66 87 122 63 98 132 66 82 119 53 98 126 66
++82 119 53 98 132 66 98 126 66 87 122 63 98 126 66 82 119 53 98 132 66 87 122 63
++82 119 53 98 126 66 82 119 53 98 126 66 87 122 63 98 126 66 82 119 53 98 126 66
++82 119 53 98 132 66 82 119 53 98 126 66 87 122 63 87 122 63 98 132 66 98 126 66
++98 126 66 87 122 63 98 132 66 98 126 66 98 126 66 87 122 63 98 126 66 87 122 63
++98 126 66 87 122 63 98 126 66 87 122 63 87 122 63 98 132 66 87 122 63 87 122 63
++87 122 63 87 122 63 82 119 53 98 132 66 87 122 63 87 122 63 87 122 63 87 122 63
++98 132 66 87 122 63 98 132 66 87 122 63 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 75 98 132 66 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75
++98 132 66 98 132 75 98 132 66 98 126 66 98 132 75 98 126 66 98 132 75 98 126 66
++98 132 75 98 126 66 98 126 66 98 132 66 98 126 66 98 132 66 98 132 66 98 132 75
++98 126 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75
++98 132 66 98 132 75 98 132 75 98 132 75 117 127 86 98 132 66 99 133 85 98 132 66
++98 132 75 99 133 85 98 132 75 98 132 75 98 132 66 98 132 75 117 127 86 98 132 66
++99 133 85 98 132 66 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 66
++117 127 86 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 117 127 86 98 132 66
++117 127 86 98 132 66 98 132 75 157 148 53 99 133 85 98 132 66 98 132 66 98 132 66
++117 127 86 98 132 66 98 132 66 98 126 66 98 132 66 98 126 66 98 132 66 98 126 66
++98 132 75 98 132 66 98 132 75 98 132 66 98 132 66 98 132 75 98 132 75 98 132 75
++117 127 86 98 132 66 98 132 75 99 133 85 99 133 85 117 142 111 146 162 145 166 174 181
++185 202 202 194 199 226 194 199 226 201 216 228 201 216 228 201 216 228 208 221 247 208 221 247
++226 221 247 221 238 247 226 221 247 221 238 247 221 238 247 226 221 247 221 238 247 226 221 247
++231 239 247 231 239 247 231 239 247 231 239 247 221 238 247 226 221 247 221 238 247 226 221 247
++221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 208 221 247
++221 238 247 226 221 247 221 238 247 221 238 247 231 239 247 235 238 247 246 237 247 240 251 247
++246 237 247 251 251 247 251 251 247 231 239 247 166 180 164 117 142 111 99 133 85 98 113 84
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 117 127 86 98 132 66 98 132 75
++98 132 75 98 132 75 98 132 75 117 127 86 98 132 66 98 132 75 98 132 75 98 132 66
++98 132 75 117 127 86 98 132 66 99 133 85 117 127 86 98 132 66 98 132 75 117 127 86
++98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 126 66 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 117 127 86 98 132 75 117 127 86 98 132 75 98 132 75 98 132 66
++98 132 75 117 127 86 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 126 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 117 114 76 98 132 75 98 132 75
++98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 98 113 84 98 132 75
++98 126 66 98 132 75 98 132 75 98 132 75 87 120 67 98 126 66 98 132 75 98 132 75
++98 132 75 98 126 66 98 132 75 98 126 66 88 121 82 98 126 66 88 121 82 98 126 66
++98 132 75 87 120 67 98 132 75 87 120 67 98 132 75 87 120 67 98 126 66 98 113 84
++98 126 66 88 121 82 98 126 66 98 132 75 98 113 84 98 132 75 98 126 66 88 121 82
++98 126 66 98 126 66 98 113 84 98 126 66 98 132 75 87 120 67 88 121 82 98 126 66
++88 121 82 98 126 66 88 121 82 98 126 66 98 132 75 98 126 66 98 113 84 98 132 75
++88 121 82 87 120 67 98 113 84 98 126 66 87 120 67 98 132 75 98 126 66 87 120 67
++98 126 66 87 120 67 87 120 67 98 126 66 87 120 67 88 121 82 98 126 66 87 120 67
++98 113 84 87 120 67 88 121 82 98 126 66 87 120 67 87 120 67 98 126 66 87 120 67
++87 120 67 87 120 67 98 113 84 98 126 66 98 126 66 88 121 82 98 126 66 87 120 67
++98 113 84 98 126 66 87 120 67 98 113 84 87 120 67 87 120 67 98 113 84 87 120 67
++87 120 67 98 126 66 87 120 67 85 113 63 98 113 84 87 120 67 87 120 67 85 113 63
++87 120 67 85 113 63 87 120 67 85 113 63 98 113 84 87 120 67 87 120 67 85 113 63
++98 113 84 85 113 63 98 126 66 85 113 63 87 99 72 87 120 67 85 113 63 98 113 84
++85 113 63 87 120 67 87 120 67 85 113 63 98 113 84 85 113 63 87 120 67 85 113 63
++85 113 63 85 113 63 87 99 72 85 113 63 85 113 63 85 113 63 85 113 63 87 120 67
++85 113 63 87 99 72 85 113 63 85 113 63 87 99 72 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++87 99 72 85 113 63 87 99 72 85 113 63 75 99 72 85 113 63 85 113 63 87 99 72
++85 113 63 85 113 63 75 99 72 85 113 63 85 113 63 85 113 63 82 107 52 85 113 63
++75 99 72 85 113 63 70 96 55 85 113 63 85 113 63 73 107 51 75 99 72 85 113 63
++85 113 63 81 96 56 85 113 63 81 96 56 85 113 63 87 99 72 85 113 63 85 113 63
++85 113 63 81 96 56 85 113 63 75 99 72 81 96 56 75 99 72 85 113 63 75 99 72
++85 113 63 75 99 72 85 113 63 81 96 56 85 113 63 87 99 72 85 113 63 81 96 56
++81 96 56 70 96 55 81 96 56 73 107 51 81 96 56 75 99 72 82 107 52 75 99 72
++82 107 52 75 99 72 81 96 56 73 107 51 81 96 56 70 96 55 81 96 56 70 96 55
++70 96 55 81 96 56 70 96 55 75 99 72 70 96 55 70 96 55 70 96 55 66 86 47
++70 96 55 66 86 47 66 86 47 70 96 55 66 86 47 66 86 47 66 86 47 66 86 47
++70 96 55 66 86 47 66 86 47 70 96 55 66 86 47 75 77 62 66 86 47 66 86 47
++
++66 86 47 70 96 45 70 96 45 66 86 47 70 96 45 70 96 45 49 74 23 66 86 47
++66 86 47 49 74 23 70 96 45 49 74 23 66 86 47 66 86 47 70 96 45 66 86 47
++70 96 45 70 96 45 49 74 23 70 96 45 64 97 47 70 96 45 70 96 45 70 96 45
++66 86 47 70 96 45 70 96 45 64 97 47 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 57 86 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 49 74 23
++70 96 45 66 86 47 66 86 47 70 96 45 66 86 47 70 96 45 70 96 45 70 96 45
++70 96 45 66 86 47 70 96 45 64 97 47 70 96 45 70 96 55 70 96 45 70 96 45
++70 96 45 70 96 45 66 86 47 64 97 47 66 86 47 70 96 45 66 86 47 64 97 47
++70 96 45 70 96 45 64 97 47 66 86 47 64 97 47 70 96 45 70 96 45 70 96 45
++70 96 45 73 107 51 70 96 45 70 96 45 70 96 55 70 96 45 70 96 45 73 107 51
++70 96 55 73 107 51 70 96 45 73 107 51 70 96 45 70 96 45 73 107 51 70 96 45
++70 96 45 70 96 55 80 96 46 73 107 51 70 96 45 73 107 51 81 96 56 73 107 51
++80 96 46 73 107 51 73 107 51 81 96 56 73 107 51 73 107 51 70 96 45 73 107 51
++73 107 51 80 96 46 73 107 51 80 96 46 73 107 51 73 107 51 82 107 52 73 107 51
++73 107 51 82 107 52 73 107 51 82 107 52 73 107 51 82 107 52 82 107 52 82 107 52
++73 107 51 82 107 52 73 107 51 82 107 52 73 107 51 82 119 53 82 107 52 82 107 52
++82 107 52 82 107 52 85 113 63 82 119 53 82 107 52 82 119 53 82 107 52 85 113 63
++87 122 63 87 122 63 85 113 63 87 122 63 98 106 55 87 122 63 85 113 63 82 119 53
++85 113 63 82 119 53 82 107 52 82 119 53 82 107 52 82 119 53 82 107 52 73 107 51
++82 107 52 85 113 63 82 107 52 82 107 52 85 113 63 82 107 52 82 107 52 82 107 52
++82 119 53 82 107 52 82 107 52 82 107 52 82 107 52 85 113 63 82 107 52 82 107 52
++85 113 63 82 119 53 85 113 63 85 113 63 82 119 53 85 113 63 87 122 63 85 113 63
++82 119 53 87 122 63 85 113 63 87 122 63 85 113 63 85 113 63 87 122 63 82 119 53
++85 113 63 82 119 53 85 113 63 85 113 63 85 113 63 87 99 72 117 142 111 146 162 145
++150 168 183 98 121 131 59 69 70 95 108 128 166 156 164 185 202 202 189 165 168 166 180 164
++189 165 168 166 180 164 189 165 168 208 215 180 166 180 164 150 144 154 146 151 137 99 93 84
++64 70 48 47 44 42 47 47 21 75 73 58 99 93 84 138 126 108 138 126 108 88 83 74
++26 25 15 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9
++3 4 9 3 4 9 3 4 9 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 15 22 17 47 47 21 66 86 47
++85 113 63 98 126 66 87 120 67 82 119 53 87 122 63 82 119 53 87 122 63 87 122 63
++87 122 63 98 126 66 87 122 63 87 122 63 87 122 63 82 119 53 98 126 66 87 122 63
++98 126 66 87 122 63 87 122 63 98 126 66 82 119 53 98 126 66 87 122 63 98 126 66
++82 119 53 98 126 66 82 119 53 98 126 66 82 119 53 98 126 66 82 119 53 98 126 66
++87 122 63 98 126 66 87 122 63 98 126 66 98 126 66 82 119 53 98 132 66 87 122 63
++98 126 66 87 122 63 98 132 66 82 119 53 98 126 66 98 132 66 82 119 53 98 132 66
++98 126 66 98 126 66 98 126 66 98 132 66 82 119 53 98 132 66 82 119 53 98 126 66
++98 132 66 98 126 66 98 126 66 98 132 66 98 126 66 98 132 66 87 122 63 98 126 66
++98 126 66 98 126 66 98 126 66 87 122 63 98 132 66 98 126 66 98 126 66 98 126 66
++98 126 66 98 126 66 98 126 66 98 126 66 87 122 63 98 126 66 87 122 63 98 132 66
++82 119 53 87 122 63 98 126 66 87 122 63 98 126 66 87 122 63 98 132 66 87 122 63
++98 126 66 98 126 66 98 126 66 98 132 66 98 126 66 98 132 66 98 132 75 98 132 66
++98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75
++98 132 75 98 132 66 98 132 75 98 132 66 117 127 86 98 132 75 98 126 66 98 132 75
++98 126 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 126 66 98 132 75
++98 132 66 117 127 86 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 66 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 157 148 53 99 133 85 98 132 66 99 133 85 157 148 53 99 133 85
++98 132 75 98 132 75 98 132 75 99 133 85 157 148 53 98 132 75 98 132 66 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75
++98 132 66 98 132 66 98 132 75 98 132 66 117 127 86 98 132 75 98 132 75 98 132 75
++98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 117 127 86 98 132 66
++98 132 66 98 132 75 98 132 66 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75
++98 126 66 98 132 66 98 126 66 98 132 75 98 132 66 98 132 66 117 127 86 98 132 66
++98 132 66 98 132 75 98 132 75 117 127 86 99 133 85 99 133 85 121 143 132 166 180 164
++185 202 202 185 202 202 194 199 226 194 199 226 194 199 226 194 199 226 201 216 228 208 221 247
++208 221 247 221 238 247 221 238 247 231 239 247 221 238 247 221 238 247 221 238 247 231 239 247
++231 239 247 231 239 247 221 238 247 231 239 247 231 239 247 231 239 247 231 239 247 221 238 247
++226 221 247 221 238 247 208 221 247 226 221 247 221 238 247 208 221 247 221 238 247 221 238 247
++208 221 247 221 238 247 226 221 247 231 239 247 231 239 247 235 238 247 235 238 247 240 251 247
++240 251 247 240 251 247 251 251 247 233 241 227 185 202 202 117 142 111 95 119 107 98 132 75
++117 127 86 98 132 75 117 127 86 98 132 66 98 132 75 98 132 66 98 132 66 98 132 75
++98 132 66 117 127 86 98 132 75 98 132 75 98 132 75 99 133 85 98 132 75 117 127 86
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 66 117 127 86 98 132 75 98 132 75 98 132 75 98 126 66 98 132 75
++98 132 75 98 132 75 98 132 66 117 127 86 98 132 75 98 132 75 117 127 86 98 132 75
++117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75
++98 132 75 98 132 66 98 132 75 98 132 75 98 132 66 117 127 86 98 126 66 98 132 75
++98 132 75 98 132 75 98 132 75 98 113 84 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 117 127 86 98 132 75 117 127 86 99 133 85 98 132 75 98 132 75 98 113 84
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++88 121 82 98 132 75 87 120 67 98 132 75 98 132 75 88 121 82 87 120 67 98 132 75
++98 132 75 98 113 84 98 132 75 98 113 84 98 132 75 98 132 75 98 132 75 98 132 75
++98 126 66 98 132 75 98 126 66 98 132 75 98 126 66 98 126 66 98 132 75 98 126 66
++98 132 75 98 126 66 98 113 84 98 132 75 98 126 66 98 113 84 98 132 75 98 126 66
++98 113 84 87 120 67 98 126 66 88 121 82 98 126 66 98 113 84 98 126 66 98 132 75
++88 121 82 98 126 66 98 132 75 98 126 66 98 113 84 98 132 75 98 132 75 87 120 67
++98 126 66 98 126 66 87 120 67 98 126 66 98 126 66 87 120 67 98 126 66 88 121 82
++98 126 66 98 113 84 87 120 67 98 126 66 98 113 84 98 126 66 87 120 67 88 121 82
++87 120 67 98 126 66 87 120 67 98 113 84 87 120 67 87 120 67 98 113 84 98 126 66
++98 113 84 98 126 66 87 120 67 98 126 66 88 121 82 98 126 66 88 121 82 98 126 66
++87 120 67 98 132 75 87 120 67 98 126 66 88 121 82 98 126 66 87 120 67 98 126 66
++87 120 67 87 120 67 98 113 84 87 120 67 87 120 67 87 120 67 85 113 63 87 120 67
++87 99 72 98 126 66 87 99 72 98 126 66 87 120 67 87 120 67 98 106 55 87 120 67
++87 120 67 87 120 67 85 113 63 85 113 63 98 126 66 85 113 63 87 120 67 85 113 63
++87 120 67 87 120 67 98 113 84 85 113 63 87 120 67 85 113 63 87 120 67 85 113 63
++87 120 67 85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 87 120 67
++87 120 67 87 120 67 85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 87 99 72 87 120 67
++87 120 67 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 82 107 52 85 113 63 75 99 72 85 113 63
++73 107 51 85 113 63 82 107 52 85 113 63 75 99 72 85 113 63 85 113 63 81 96 56
++82 107 52 75 99 72 85 113 63 85 113 63 81 96 56 85 113 63 81 96 56 85 113 63
++81 96 56 85 113 63 81 96 56 85 113 63 81 96 56 85 113 63 81 96 56 87 99 72
++81 96 56 85 113 63 75 99 72 87 99 72 82 107 52 75 99 72 82 107 52 75 99 72
++85 113 63 81 96 56 70 96 55 81 96 56 70 96 55 82 107 52 81 96 56 75 99 72
++82 107 52 75 99 72 81 96 56 75 99 72 73 107 51 81 96 56 70 96 55 81 96 56
++70 96 55 70 96 55 70 96 55 70 96 55 81 96 56 70 96 55 75 77 62 70 96 55
++70 96 55 66 86 47 70 96 55 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 70 96 55 66 86 47 70 96 55 66 86 47
++
++66 86 47 70 96 45 70 96 45 70 96 45 66 86 47 70 96 45 70 96 45 66 86 47
++49 74 23 70 96 45 66 86 47 66 86 47 70 96 45 49 74 23 70 96 45 66 86 47
++66 86 47 70 96 45 70 96 45 70 96 45 66 86 47 70 96 45 66 86 47 64 97 47
++70 96 45 70 96 45 64 97 47 70 96 45 70 96 55 70 96 55 70 96 45 70 96 55
++70 96 45 70 96 45 70 96 45 70 96 45 57 86 47 70 96 45 66 86 47 70 96 45
++70 96 45 57 86 47 70 96 45 70 96 45 64 97 47 66 86 47 64 97 47 70 96 45
++70 96 45 70 96 45 70 96 45 66 86 47 70 96 45 70 96 45 70 96 45 64 97 47
++66 86 47 66 86 47 70 96 45 66 86 47 64 97 47 70 96 45 66 86 47 70 96 45
++66 86 47 70 96 45 64 97 47 70 96 45 64 97 47 70 96 45 64 97 47 70 96 45
++70 96 45 70 96 45 70 96 45 73 107 51 70 96 45 70 96 45 73 107 51 70 96 45
++73 107 51 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 55 70 96 45 70 96 55 70 96 45 73 107 51
++70 96 45 70 96 55 73 107 51 70 96 45 73 107 51 80 96 46 73 107 51 73 107 51
++80 96 46 73 107 51 73 107 51 73 107 51 73 107 51 81 96 56 73 107 51 82 107 52
++82 107 52 82 107 52 82 107 52 82 107 52 85 113 63 82 119 53 82 107 52 73 107 51
++82 107 52 73 107 51 82 107 52 82 107 52 82 107 52 82 107 52 82 119 53 85 113 63
++82 119 53 82 107 52 82 107 52 82 119 53 82 107 52 82 107 52 85 113 63 82 119 53
++85 113 63 85 113 63 82 119 53 85 113 63 87 122 63 82 119 53 98 106 55 82 119 53
++85 113 63 82 107 52 82 119 53 82 107 52 82 107 52 82 107 52 82 107 52 82 107 52
++82 107 52 82 119 53 82 107 52 82 119 53 82 107 52 82 119 53 85 113 63 82 107 52
++85 113 63 82 107 52 85 113 63 82 119 53 85 113 63 85 113 63 82 119 53 85 113 63
++82 107 52 82 119 53 85 113 63 82 119 53 85 113 63 87 122 63 82 119 53 85 113 63
++82 119 53 85 113 63 82 119 53 85 113 63 82 119 53 85 113 63 85 113 63 85 113 63
++82 119 53 85 113 63 85 113 63 82 107 52 88 121 82 146 150 115 146 162 145 126 147 144
++77 90 100 46 59 71 46 59 71 111 122 142 166 174 181 166 180 164 166 156 164 177 169 143
++185 202 202 208 215 180 208 215 180 185 202 202 189 165 168 146 151 137 112 123 108 75 73 58
++55 55 48 75 73 58 90 98 89 98 113 84 99 93 84 90 98 89 121 143 132 112 123 108
++65 55 54 17 12 17 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 3 4 9
++3 3 1 3 4 9 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 15 22 17 33 39 38 59 79 61 88 121 82 88 121 82
++98 126 66 85 113 63 87 122 63 87 122 63 87 122 63 87 122 63 87 122 63 98 126 66
++87 122 63 82 119 53 98 126 66 82 119 53 98 126 66 87 122 63 87 122 63 87 122 63
++87 122 63 98 126 66 87 122 63 98 126 66 87 122 63 98 126 66 87 122 63 98 126 66
++87 122 63 87 122 63 98 126 66 98 126 66 98 126 66 82 119 53 98 126 66 82 119 53
++98 126 66 82 119 53 98 132 66 82 119 53 98 126 66 98 126 66 87 122 63 98 132 66
++87 122 63 98 132 66 98 126 66 98 126 66 98 132 66 82 119 53 98 132 66 98 126 66
++82 119 53 98 132 66 82 119 53 98 126 66 98 126 66 98 126 66 98 126 66 98 132 66
++82 119 53 98 132 66 98 132 66 98 126 66 98 132 66 98 126 66 98 132 66 98 126 66
++98 126 66 98 126 66 98 126 66 98 132 66 98 126 66 98 126 66 98 126 66 98 126 66
++98 126 66 98 126 66 98 126 66 98 126 66 98 132 66 98 126 66 98 126 66 98 126 66
++98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 87 122 63 98 132 66 98 132 66
++98 126 66 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 66 98 132 75
++98 132 66 98 132 75 98 132 75 98 132 75 98 132 66 117 127 86 98 132 66 117 127 86
++98 132 66 98 132 75 117 127 86 98 132 66 98 132 75 98 132 75 117 127 86 98 132 66
++117 127 86 98 132 66 117 127 86 98 132 66 98 132 75 98 132 75 98 132 75 117 127 86
++98 132 75 98 132 75 98 132 75 117 127 86 98 132 66 117 127 86 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++117 127 86 98 132 75 99 133 85 98 132 75 117 142 111 98 132 66 99 133 85 98 132 75
++98 132 75 99 133 85 98 132 75 99 133 85 99 133 85 98 132 75 99 133 85 157 148 53
++99 133 85 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++117 127 86 98 132 75 117 127 86 98 132 66 99 133 85 157 148 53 99 133 85 98 132 75
++99 133 85 98 132 66 98 132 75 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75
++98 132 75 98 132 66 98 132 75 98 126 66 98 132 75 98 132 66 98 132 75 98 132 66
++98 132 75 98 132 75 98 132 75 98 132 66 117 127 86 98 132 66 98 132 66 98 132 75
++117 127 86 98 132 75 117 127 86 98 132 75 117 127 86 99 133 85 117 142 111 146 151 137
++166 174 181 185 202 202 194 199 226 194 199 226 201 216 228 208 221 247 208 221 247 208 221 247
++226 221 247 208 221 247 221 238 247 226 221 247 221 238 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 221 238 247 231 239 247 226 221 247
++221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 221 238 247 221 238 247 226 221 247
++221 238 247 226 221 247 221 238 247 231 239 247 231 239 247 235 238 247 235 238 247 246 237 247
++240 251 247 251 251 247 251 251 247 240 251 247 185 202 202 117 142 111 117 127 86 99 133 85
++98 132 75 98 132 75 98 132 75 98 132 75 117 127 86 98 132 66 117 127 86 98 132 66
++117 127 86 98 132 66 117 127 86 98 132 75 117 127 86 98 132 75 99 133 85 98 132 75
++99 133 85 117 127 86 98 132 75 117 127 86 98 132 75 98 132 75 117 127 86 98 132 66
++98 132 75 98 132 75 98 132 75 98 132 75 117 127 86 98 132 66 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86 98 132 66 98 132 75
++98 132 75 117 127 86 98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 98 132 66
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++117 114 76 98 132 75 98 132 75 98 132 75 98 132 75 99 133 85 117 127 86 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75
++98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75
++98 126 66 98 132 75 88 121 82 98 132 75 98 132 75 98 126 66 98 132 75 98 113 84
++98 126 66 98 132 75 98 126 66 98 132 75 98 126 66 98 113 84 98 126 66 98 132 75
++98 113 84 98 132 75 98 126 66 98 132 75 98 126 66 88 121 82 98 126 66 88 121 82
++98 126 66 88 121 82 98 126 66 87 120 67 98 126 66 88 121 82 98 126 66 88 121 82
++98 126 66 98 126 66 88 121 82 98 126 66 98 126 66 98 126 66 88 121 82 98 126 66
++98 113 84 98 132 75 98 113 84 98 126 66 98 132 75 98 126 66 98 113 84 98 126 66
++88 121 82 87 120 67 98 126 66 88 121 82 98 126 66 98 113 84 98 126 66 98 126 66
++88 121 82 98 126 66 87 120 67 98 126 66 87 120 67 88 121 82 98 126 66 98 113 84
++87 120 67 88 121 82 87 120 67 87 120 67 87 120 67 98 126 66 87 120 67 87 120 67
++98 126 66 88 121 82 98 126 66 88 121 82 98 126 66 88 121 82 98 126 66 87 120 67
++98 113 84 87 120 67 87 120 67 88 121 82 98 126 66 87 120 67 88 121 82 87 120 67
++98 113 84 87 120 67 87 120 67 87 120 67 85 113 63 98 126 66 85 113 63 87 120 67
++98 126 66 85 113 63 87 120 67 98 106 55 98 113 84 87 120 67 87 120 67 98 113 84
++85 113 63 98 113 84 85 113 63 87 120 67 87 99 72 98 126 66 98 113 84 87 120 67
++87 120 67 98 126 66 87 120 67 87 120 67 87 120 67 85 113 63 87 120 67 98 113 84
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 87 120 67 87 99 72 87 120 67
++85 113 63 88 121 82 87 99 72 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 75 99 72 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++87 99 72 85 113 63 87 99 72 87 120 67 87 99 72 85 113 63 75 99 72 85 113 63
++85 113 63 85 113 63 85 113 63 81 96 56 85 113 63 75 99 72 82 107 52 85 113 63
++75 99 72 81 96 56 75 99 72 82 107 52 85 113 63 85 113 63 81 96 56 85 113 63
++85 113 63 85 113 63 81 96 56 85 113 63 87 99 72 75 99 72 85 113 63 75 99 72
++82 107 52 81 96 56 85 113 63 70 96 55 85 113 63 81 96 56 75 99 72 85 113 63
++81 96 56 75 99 72 82 107 52 75 99 72 81 96 56 85 113 63 81 96 56 82 107 52
++75 99 72 73 107 51 75 99 72 82 107 52 75 99 72 81 96 56 75 99 72 82 107 52
++75 99 72 81 96 56 73 107 51 81 96 56 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 66 86 47 70 96 55
++66 86 47 66 86 47 66 86 47 70 96 55 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 59 79 61 70 96 55 66 86 47 66 86 47 66 86 47 59 79 61 66 86 47
++
++66 86 47 66 86 47 70 96 45 66 86 47 70 96 45 70 96 45 66 86 47 66 86 47
++70 96 45 49 74 23 66 86 47 49 74 23 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 70 96 45 66 86 47 70 96 45 64 97 47 70 96 45 70 96 45
++70 96 45 70 96 45 66 86 47 70 96 45 70 96 45 70 96 45 70 96 55 70 96 45
++70 96 45 64 97 47 70 96 45 70 96 45 70 96 45 57 86 47 70 96 45 57 86 47
++70 96 45 66 86 47 64 97 47 66 86 47 70 96 45 70 96 45 70 96 45 64 97 47
++70 96 45 70 96 45 70 96 45 70 96 45 64 97 47 70 96 45 70 96 45 70 96 45
++70 96 45 64 97 47 57 86 47 70 96 45 66 86 47 64 97 47 66 86 47 70 96 45
++64 97 47 66 86 47 70 96 45 66 86 47 64 97 47 70 96 45 70 96 45 70 96 45
++70 96 45 73 107 51 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 55
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 64 97 47 70 96 45
++64 97 47 70 96 45 70 96 45 70 96 45 73 107 51 70 96 45 73 107 51 70 96 45
++70 96 45 73 107 51 70 96 45 73 107 51 70 96 45 73 107 51 73 107 51 70 96 45
++73 107 51 73 107 51 73 107 51 80 96 46 73 107 51 73 107 51 82 107 52 73 107 51
++73 107 51 73 107 51 85 113 63 73 107 51 82 107 52 82 107 52 82 119 53 82 107 52
++73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 82 107 52 82 107 52 82 107 52
++82 107 52 82 119 53 82 107 52 85 113 63 82 107 52 85 113 63 82 107 52 85 113 63
++98 106 55 85 113 63 85 113 63 82 119 53 85 113 63 82 107 52 85 113 63 82 119 53
++85 113 63 82 119 53 82 107 52 82 107 52 82 119 53 82 107 52 82 119 53 82 107 52
++82 119 53 82 107 52 82 107 52 82 107 52 82 107 52 82 119 53 82 107 52 82 119 53
++82 107 52 82 119 53 82 107 52 82 107 52 82 119 53 82 119 53 85 113 63 82 107 52
++82 119 53 82 107 52 82 119 53 82 107 52 82 119 53 85 113 63 82 119 53 85 113 63
++82 119 53 85 113 63 82 119 53 85 113 63 82 119 53 85 113 63 82 119 53 82 119 53
++85 113 63 85 113 63 85 113 63 95 119 107 146 162 145 150 171 159 122 134 144 61 78 101
++42 60 86 34 42 77 42 60 86 61 78 101 94 105 108 94 105 108 146 151 137 166 180 164
++185 202 202 208 215 180 185 202 202 225 222 201 208 215 180 166 180 164 117 99 86 63 55 45
++51 49 42 75 81 76 138 126 108 146 151 137 112 123 108 88 83 74 117 99 86 112 96 108
++75 72 67 23 20 24 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 4 9 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++6 15 6 32 39 24 43 55 48 51 73 47 85 113 63 98 113 84 98 132 75 98 126 66
++98 126 66 85 113 63 87 122 63 87 122 63 87 122 63 87 122 63 87 122 63 87 122 63
++87 122 63 98 126 66 87 122 63 98 126 66 82 119 53 98 126 66 98 126 66 98 126 66
++82 119 53 98 126 66 98 126 66 98 126 66 98 126 66 82 119 53 98 126 66 87 122 63
++98 126 66 98 126 66 82 119 53 98 126 66 82 119 53 98 126 66 98 126 66 87 122 63
++98 126 66 98 126 66 98 126 66 98 126 66 87 122 63 98 126 66 87 122 63 98 126 66
++98 126 66 87 122 63 98 126 66 87 122 63 98 126 66 98 132 66 98 126 66 98 126 66
++98 132 66 98 126 66 98 132 66 98 126 66 98 126 66 98 132 66 82 119 53 98 126 66
++98 132 66 98 126 66 98 126 66 98 132 66 98 126 66 98 132 66 98 126 66 98 132 66
++98 132 66 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 98 132 66 98 132 66
++98 132 75 98 132 66 98 132 75 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++87 122 63 98 126 66 98 126 66 98 126 66 98 126 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66
++117 127 86 98 132 75 98 132 66 117 127 86 98 132 66 117 127 86 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 66 117 127 86 98 132 75 117 127 86 98 132 75 98 132 66
++117 127 86 98 132 66 117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 99 133 85 98 132 75 99 133 85 98 132 75 99 133 85 99 133 85 157 148 53
++98 132 75 99 133 85 99 133 85 157 148 53 98 132 66 98 132 75 99 133 85 157 148 53
++99 133 85 99 133 85 157 148 53 99 133 85 98 132 66 99 133 85 98 132 75 99 133 85
++99 133 85 99 133 85 157 148 53 98 132 66 117 127 86 98 132 66 117 127 86 98 132 75
++98 132 66 99 133 85 157 148 53 99 133 85 98 132 75 99 133 85 99 133 85 99 133 85
++157 148 53 98 132 66 117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66
++117 127 86 98 132 66 117 127 86 98 132 75 98 132 75 98 132 66 117 127 86 98 132 75
++98 132 75 98 132 75 99 133 85 98 132 75 117 127 86 99 133 85 99 133 85 117 142 111
++146 162 145 185 202 202 185 202 202 185 202 202 194 199 226 194 199 226 201 216 228 208 221 247
++208 221 247 226 221 247 221 238 247 231 239 247 221 238 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 235 238 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247
++221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 226 221 247 221 238 247 221 238 247
++208 221 247 221 238 247 231 239 247 231 239 247 235 238 247 235 238 247 235 238 247 240 251 247
++246 237 247 240 251 247 240 251 247 251 251 247 185 202 202 146 151 137 112 123 108 99 133 85
++117 127 86 98 132 75 117 127 86 98 132 75 98 132 66 117 127 86 98 132 75 98 132 75
++98 132 75 99 133 85 98 132 75 98 132 75 99 133 85 98 132 75 99 133 85 99 133 85
++157 148 53 98 132 75 99 133 85 98 132 75 117 127 86 98 132 75 98 132 75 117 127 86
++98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 66 117 127 86 98 132 75 98 132 75 98 132 66 99 133 85 98 132 75 117 127 86
++98 132 75 98 132 75 98 132 66 99 133 85 98 132 75 117 127 86 98 132 75 117 127 86
++98 132 75 98 132 66 117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 99 133 85 98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 117 127 86 98 132 75 117 127 86 98 132 75 98 132 75 99 133 85 98 132 75
++117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++88 121 82 98 132 75 98 132 75 98 132 75 98 132 75 98 113 84 98 132 75 98 132 75
++98 132 75 98 132 75 98 113 84 98 132 75 98 132 75 98 132 75 98 132 75 98 126 66
++98 126 66 98 126 66 98 132 75 98 113 84 98 126 66 98 126 66 98 126 66 98 132 75
++88 121 82 98 126 66 98 126 66 98 126 66 88 121 82 98 126 66 88 121 82 98 126 66
++87 120 67 98 126 66 98 126 66 88 121 82 98 126 66 88 121 82 98 126 66 87 120 67
++98 132 75 98 126 66 98 126 66 98 132 75 87 120 67 87 120 67 98 126 66 87 120 67
++98 126 66 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 88 121 82 87 120 67
++98 126 66 87 120 67 98 113 84 87 120 67 88 121 82 98 126 66 87 120 67 87 120 67
++98 126 66 87 120 67 98 126 66 87 120 67 98 113 84 87 120 67 87 120 67 98 113 84
++98 126 66 87 120 67 87 120 67 98 113 84 98 126 66 87 120 67 87 120 67 98 126 66
++87 120 67 88 121 82 98 126 66 87 120 67 98 126 66 88 121 82 87 120 67 98 126 66
++87 120 67 98 126 66 98 113 84 87 120 67 85 113 63 85 113 63 98 113 84 85 113 63
++87 120 67 87 99 72 87 120 67 87 120 67 87 120 67 85 113 63 87 120 67 85 113 63
++87 120 67 87 120 67 85 113 63 98 126 66 87 120 67 87 120 67 85 113 63 98 113 84
++98 126 66 87 99 72 98 126 66 87 120 67 85 113 63 98 113 84 85 113 63 87 120 67
++85 113 63 87 120 67 87 120 67 85 113 63 87 120 67 85 113 63 87 120 67 87 120 67
++85 113 63 85 113 63 87 120 67 85 113 63 85 113 63 75 99 72 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++87 120 67 87 99 72 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++81 96 56 85 113 63 85 113 63 75 99 72 85 113 63 82 107 52 85 113 63 81 96 56
++73 107 51 85 113 63 73 107 51 81 96 56 75 99 72 85 113 63 75 99 72 85 113 63
++81 96 56 85 113 63 87 99 72 85 113 63 82 107 52 85 113 63 81 96 56 85 113 63
++81 96 56 75 99 72 81 96 56 81 96 56 75 99 72 70 96 55 85 113 63 81 96 56
++75 99 72 81 96 56 81 96 56 81 96 56 82 107 52 75 99 72 81 96 56 75 99 72
++85 113 63 81 96 56 81 96 56 75 99 72 82 107 52 75 99 72 82 107 52 75 99 72
++81 96 56 81 96 56 75 99 72 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++66 86 47 70 96 55 66 86 47 70 96 55 66 86 47 70 96 55 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 70 96 55 75 77 62
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 59 79 61 66 86 47 66 86 47
++
++66 86 47 70 96 45 70 96 45 66 86 47 75 73 36 70 96 45 66 86 47 49 74 23
++70 96 45 66 86 47 49 74 23 70 96 45 66 86 47 49 74 23 70 96 45 49 74 23
++70 96 45 66 86 47 70 96 45 66 86 47 64 97 47 70 96 45 66 86 47 70 96 45
++70 96 55 64 97 47 70 96 45 70 96 55 70 96 55 70 96 45 70 96 55 70 96 45
++70 96 55 70 96 45 66 86 47 70 96 45 57 86 47 70 96 45 49 74 23 70 96 45
++49 74 23 70 96 45 66 86 47 70 96 45 57 86 47 70 96 45 70 96 45 66 86 47
++70 96 45 64 97 47 70 96 45 70 96 45 70 96 45 66 86 47 70 96 45 66 86 47
++64 97 47 57 86 47 70 96 45 57 86 47 70 96 45 70 96 45 70 96 45 66 86 47
++70 96 45 66 86 47 70 96 45 70 96 45 70 96 45 64 97 47 70 96 45 64 97 47
++70 96 45 70 96 45 64 97 47 70 96 45 70 96 45 70 96 45 73 107 51 70 96 45
++73 107 51 70 96 45 70 96 45 73 107 51 70 96 45 70 96 55 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++73 107 51 70 96 45 70 96 55 73 107 51 80 96 46 73 107 51 70 96 45 73 107 51
++70 96 45 73 107 51 70 96 45 73 107 51 73 107 51 82 107 52 73 107 51 82 107 52
++82 107 52 82 107 52 73 107 51 82 107 52 85 113 63 85 113 63 82 107 52 82 107 52
++73 107 51 73 107 51 82 107 52 73 107 51 82 107 52 82 107 52 85 113 63 82 119 53
++85 113 63 82 107 52 82 107 52 82 107 52 82 107 52 82 119 53 85 113 63 85 113 63
++85 113 63 82 119 53 85 113 63 82 107 52 85 113 63 82 119 53 82 107 52 85 113 63
++82 107 52 82 119 53 82 107 52 82 119 53 85 113 63 82 119 53 82 107 52 82 119 53
++82 107 52 82 107 52 82 119 53 82 107 52 82 119 53 82 107 52 82 119 53 82 107 52
++82 107 52 82 107 52 82 119 53 82 119 53 82 107 52 82 119 53 85 113 63 82 119 53
++82 107 52 82 119 53 85 113 63 82 119 53 85 113 63 82 119 53 85 113 63 82 119 53
++82 119 53 87 122 63 82 119 53 98 106 55 82 119 53 85 113 63 82 119 53 87 122 63
++82 107 52 85 113 63 98 113 84 117 142 111 126 147 144 98 121 131 77 91 115 34 42 77
++34 42 77 34 42 77 42 60 86 60 63 87 94 105 108 122 134 144 166 180 164 188 180 202
++166 180 164 177 169 143 166 156 164 166 180 164 189 165 168 146 151 137 87 99 72 52 55 48
++47 47 21 75 73 58 94 105 108 138 126 108 112 123 108 88 83 74 88 83 74 87 99 72
++75 72 67 33 30 30 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 4 9 3 3 1 3 3 1 3 4 9 14 16 17
++42 47 42 59 79 61 75 99 72 87 120 67 98 113 84 98 132 75 87 122 63 87 122 63
++87 122 63 87 122 63 87 122 63 98 126 66 82 119 53 98 126 66 82 119 53 98 126 66
++98 126 66 87 122 63 98 126 66 87 122 63 98 126 66 87 122 63 98 126 66 87 122 63
++98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66
++98 126 66 87 122 63 98 126 66 87 122 63 98 126 66 98 126 66 87 122 63 98 126 66
++87 122 63 98 126 66 87 122 63 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66
++98 126 66 98 126 66 98 132 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66
++87 122 63 98 126 66 98 126 66 87 122 63 98 126 66 98 126 66 98 132 66 98 126 66
++98 126 66 98 132 66 98 126 66 98 126 66 98 132 66 98 126 66 98 132 66 98 132 75
++98 126 66 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 126 66 98 132 75
++98 132 75 98 126 66 98 132 75 98 132 75 98 132 75 98 126 66 98 132 66 98 126 66
++98 132 66 98 132 66 98 126 66 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 117 127 86 98 132 66 117 127 86 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86
++98 132 66 117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75
++98 132 75 117 127 86 98 132 75 98 132 75 117 127 86 98 132 75 117 127 86 98 132 75
++117 127 86 98 132 66 99 133 85 98 132 75 117 127 86 98 132 75 99 133 85 99 133 85
++99 133 85 157 148 53 99 133 85 99 133 85 117 142 111 98 132 66 99 133 85 99 133 85
++99 133 85 117 142 111 98 132 75 99 133 85 98 132 75 157 148 53 99 133 85 99 133 85
++98 132 66 99 133 85 99 133 85 99 133 85 98 132 75 157 148 53 99 133 85 98 132 75
++117 142 111 98 132 66 99 133 85 99 133 85 98 132 66 99 133 85 98 132 66 99 133 85
++99 133 85 99 133 85 98 132 75 98 132 75 98 132 75 117 127 86 98 132 66 117 127 86
++98 132 66 117 127 86 98 132 66 117 127 86 98 132 66 98 132 75 117 127 86 98 132 75
++98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 99 133 85
++117 127 86 99 133 85 98 132 75 117 127 86 98 132 75 117 127 86 117 127 86 99 133 85
++117 142 111 150 171 159 185 202 202 194 199 226 201 216 228 201 216 228 201 216 228 208 221 247
++226 221 247 226 221 247 221 238 247 221 238 247 231 239 247 231 239 247 231 239 247 235 238 247
++231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 226 221 247 231 239 247 226 221 247 221 238 247 221 238 247 226 221 247
++221 238 247 226 221 247 221 238 247 231 239 247 231 239 247 235 238 247 235 238 247 240 251 247
++240 251 247 240 251 247 251 251 247 240 251 247 185 202 202 146 150 115 99 133 85 99 133 85
++99 133 85 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 117 127 86 98 132 75
++117 127 86 98 132 75 117 127 86 98 132 75 157 148 53 99 133 85 99 133 85 99 133 85
++99 133 85 99 133 85 99 133 85 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86
++98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 99 133 85 98 132 75 99 133 85
++98 132 75 117 127 86 99 133 85 157 148 53 99 133 85 99 133 85 98 132 66 98 132 75
++98 132 66 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 98 132 75
++99 133 85 98 132 75 98 132 75 98 132 75 99 133 85 99 133 85 117 127 86 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 99 133 85 117 127 86 98 132 75 117 127 86
++98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 98 113 84 98 132 75 98 132 75
++98 132 75 98 132 75 98 113 84 98 132 75 98 132 75 98 132 75 99 133 85 98 126 66
++98 132 75 98 132 75 98 132 75 98 126 66 88 121 82 98 126 66 98 126 66 88 121 82
++98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 98 132 75 98 132 75 98 113 84
++98 126 66 88 121 82 98 126 66 88 121 82 98 126 66 98 113 84 98 126 66 88 121 82
++98 126 66 98 132 75 98 126 66 98 126 66 88 121 82 98 126 66 98 113 84 98 126 66
++88 121 82 98 126 66 88 121 82 98 126 66 98 113 84 87 120 67 98 126 66 88 121 82
++98 126 66 87 120 67 98 113 84 98 126 66 88 121 82 98 126 66 87 120 67 98 126 66
++98 113 84 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 98 113 84 87 120 67
++98 113 84 87 120 67 98 113 84 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 98 113 84 98 126 66 87 120 67 87 120 67 87 120 67 98 113 84 87 120 67
++87 120 67 87 120 67 87 120 67 98 113 84 87 120 67 98 126 66 87 120 67 88 121 82
++87 120 67 87 120 67 87 120 67 85 113 63 98 113 84 85 113 63 87 120 67 85 113 63
++85 113 63 85 113 63 98 126 66 87 99 72 98 126 66 85 113 63 98 113 84 87 120 67
++98 126 66 85 113 63 98 113 84 87 120 67 98 106 55 87 120 67 87 120 67 87 120 67
++87 120 67 98 126 66 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 87 99 72 85 113 63 87 120 67 87 99 72 87 120 67 85 113 63 87 120 67
++88 121 82 85 113 63 85 113 63 87 120 67 85 113 63 87 120 67 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 87 99 72 87 120 67
++85 113 63 85 113 63 85 113 63 87 99 72 87 120 67 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 81 96 56 85 113 63 81 96 56 73 107 51 75 99 72 82 107 52
++75 99 72 81 96 56 75 99 72 85 113 63 81 96 56 85 113 63 81 96 56 85 113 63
++87 99 72 82 107 52 81 96 56 85 113 63 81 96 56 75 99 72 82 107 52 75 99 72
++73 107 51 81 96 56 73 107 51 75 99 72 81 96 56 70 96 55 75 99 72 81 96 56
++81 96 56 75 99 72 73 107 51 75 99 72 81 96 56 70 96 55 75 99 72 81 96 56
++81 96 56 75 99 72 81 96 56 81 96 56 81 96 56 81 96 56 75 99 72 81 96 56
++75 99 72 70 96 55 70 96 55 70 96 55 70 96 55 81 96 56 70 96 55 66 86 47
++70 96 55 66 86 47 70 96 55 70 96 55 66 86 47 70 96 55 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 70 96 55 66 86 47 66 86 47 66 86 47
++66 86 47 75 77 62 57 86 47 66 86 47 64 70 48 66 86 47 66 86 47 59 79 61
++
++49 74 23 70 96 45 75 73 36 70 96 45 70 96 45 49 74 23 70 96 45 66 86 47
++66 86 47 49 74 23 66 86 47 66 86 47 49 74 23 66 86 47 66 86 47 70 96 45
++49 74 23 66 86 47 66 86 47 64 97 47 66 86 47 66 86 47 70 96 45 64 97 47
++66 86 47 70 96 45 66 86 47 70 96 45 70 96 45 70 96 55 70 96 45 70 96 45
++70 96 45 64 97 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 64 97 47
++70 96 45 66 86 47 64 97 47 66 86 47 70 96 45 70 96 45 64 97 47 70 96 45
++66 86 47 70 96 45 70 96 55 70 96 45 70 96 55 70 96 45 64 97 47 70 96 45
++66 86 47 70 96 45 64 97 47 70 96 45 66 86 47 64 97 47 66 86 47 70 96 45
++64 97 47 70 96 45 64 97 47 70 96 45 64 97 47 66 86 47 70 96 45 64 97 47
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 73 107 51 70 96 45 70 96 55
++73 107 51 70 96 45 73 107 51 70 96 55 70 96 45 73 107 51 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 73 107 51 70 96 45 73 107 51 70 96 55
++70 96 45 73 107 51 80 96 46 73 107 51 70 96 45 73 107 51 70 96 45 70 96 45
++73 107 51 80 96 46 73 107 51 73 107 51 80 96 46 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 82 107 52 82 107 52 73 107 51 82 107 52 82 107 52 82 107 52
++73 107 51 82 107 52 73 107 51 82 107 52 73 107 51 82 107 52 73 107 51 73 107 51
++82 107 52 82 107 52 82 107 52 73 107 51 85 113 63 82 107 52 85 113 63 82 107 52
++85 113 63 85 113 63 82 119 53 85 113 63 82 107 52 82 107 52 82 119 53 82 107 52
++82 119 53 82 107 52 85 113 63 82 107 52 82 119 53 82 107 52 82 119 53 82 107 52
++82 119 53 82 119 53 82 107 52 85 113 63 82 107 52 82 119 53 85 113 63 82 119 53
++85 113 63 82 119 53 82 107 52 85 113 63 82 119 53 82 107 52 82 119 53 98 106 55
++87 122 63 82 119 53 82 119 53 98 106 55 82 119 53 85 113 63 87 122 63 82 119 53
++87 122 63 82 119 53 87 122 63 87 122 63 87 122 63 87 122 63 87 122 63 85 113 63
++85 113 63 117 127 86 117 142 111 117 142 111 78 98 90 42 60 86 34 42 77 42 60 86
++42 60 86 61 78 101 77 91 115 122 134 144 166 174 181 185 202 202 225 222 201 225 222 201
++166 180 164 146 151 137 112 123 108 112 123 108 90 98 89 75 77 62 65 63 61 64 70 48
++65 63 61 88 83 74 98 113 84 99 93 84 88 83 74 75 77 62 65 63 61 75 72 67
++75 73 58 36 35 37 13 4 7 3 3 1 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 3 4 9 14 16 17 35 46 43
++75 77 62 75 99 72 90 98 89 99 133 85 88 121 82 98 126 66 87 122 63 98 126 66
++98 126 66 98 126 66 87 122 63 98 126 66 87 122 63 98 132 66 87 122 63 98 126 66
++87 122 63 87 122 63 98 126 66 82 119 53 98 126 66 87 122 63 98 126 66 98 126 66
++98 126 66 98 126 66 87 122 63 98 126 66 98 126 66 87 122 63 98 126 66 87 122 63
++98 126 66 98 126 66 98 126 66 98 126 66 87 122 63 98 126 66 87 122 63 98 126 66
++98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 87 122 63 98 126 66
++87 122 63 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66
++98 126 66 98 132 66 87 122 63 98 126 66 87 122 63 87 122 63 98 126 66 87 122 63
++98 126 66 98 126 66 98 126 66 98 132 66 98 126 66 98 132 75 98 126 66 98 132 75
++98 126 66 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 98 132 75 98 132 66
++98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 126 66 98 132 75 98 132 66
++98 126 66 98 126 66 98 132 66 98 132 66 98 132 66 98 132 75 98 132 75 98 132 66
++98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75
++98 132 75 98 132 66 117 127 86 98 132 66 117 127 86 98 132 66 117 127 86 98 132 75
++98 132 75 98 132 75 117 127 86 98 132 75 117 127 86 98 132 75 98 132 75 98 132 75
++117 127 86 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 99 133 85 157 148 53 98 132 75 99 133 85 157 148 53 98 132 75 99 133 85
++99 133 85 99 133 85 99 133 85 99 133 85 98 132 75 99 133 85 157 148 53 117 142 111
++98 132 66 98 132 66 117 142 111 98 132 66 117 142 111 99 133 85 99 133 85 99 133 85
++99 133 85 157 148 53 99 133 85 98 132 75 99 133 85 99 133 85 99 133 85 98 132 75
++98 132 66 98 132 75 99 133 85 157 148 53 99 133 85 99 133 85 157 148 53 99 133 85
++98 132 75 99 133 85 157 148 53 98 132 75 117 127 86 98 132 75 98 132 75 98 132 66
++98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 99 133 85 98 132 75
++99 133 85 99 133 85 157 148 53 99 133 85 117 127 86 99 133 85 117 127 86 99 133 85
++117 142 111 146 151 137 166 174 181 185 202 202 185 202 202 194 199 226 201 216 228 201 216 228
++208 221 247 226 221 247 221 238 247 226 221 247 231 239 247 231 239 247 235 238 247 231 239 247
++240 251 247 231 239 247 231 239 247 235 238 247 231 239 247 235 238 247 231 239 247 231 239 247
++221 238 247 231 239 247 231 239 247 226 221 247 231 239 247 221 238 247 221 238 247 221 238 247
++221 238 247 221 238 247 231 239 247 231 239 247 231 239 247 235 238 247 246 237 247 240 251 247
++246 237 247 240 251 247 251 251 247 240 251 247 225 222 201 146 162 145 112 123 108 99 133 85
++117 127 86 98 132 75 117 127 86 98 132 75 98 132 75 117 127 86 98 132 66 99 133 85
++98 132 66 99 133 85 98 132 75 99 133 85 99 133 85 99 133 85 98 132 75 98 132 75
++98 132 75 99 133 85 157 148 53 99 133 85 98 132 75 117 127 86 99 133 85 98 132 75
++117 127 86 98 132 75 117 127 86 98 132 75 98 132 66 117 127 86 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 99 133 85 157 148 53
++99 133 85 98 132 75 99 133 85 99 133 85 99 133 85 99 133 85 98 132 75 117 127 86
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86
++98 132 75 98 132 75 99 133 85 117 127 86 98 132 75 99 133 85 98 132 75 98 132 75
++98 132 75 117 127 86 98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 99 133 85
++98 132 75 99 133 85 98 132 75 98 132 75 117 127 86 98 132 75 99 133 85 98 132 75
++117 127 86 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 98 132 75
++98 113 84 98 132 75 98 113 84 98 132 75 98 132 75 88 121 82 98 126 66 98 132 75
++98 132 75 98 132 75 98 113 84 98 126 66 98 132 75 98 126 66 98 132 75 98 132 75
++98 126 66 98 132 75 98 113 84 98 126 66 98 132 75 98 126 66 88 121 82 98 126 66
++98 132 75 87 120 67 98 126 66 88 121 82 98 126 66 98 126 66 98 126 66 98 126 66
++98 126 66 98 113 84 98 126 66 87 120 67 87 120 67 98 126 66 87 120 67 98 126 66
++87 120 67 98 126 66 98 126 66 98 126 66 88 121 82 98 126 66 98 113 84 87 120 67
++98 126 66 88 121 82 87 120 67 87 120 67 98 113 84 87 120 67 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 85 113 63 87 120 67 87 120 67
++87 120 67 87 120 67 88 121 82 87 120 67 87 120 67 85 113 63 98 126 66 98 113 84
++87 120 67 98 113 84 87 120 67 98 126 66 87 120 67 88 121 82 98 126 66 87 120 67
++87 120 67 98 126 66 87 120 67 87 120 67 85 113 63 87 120 67 98 106 55 87 120 67
++85 113 63 85 113 63 87 120 67 98 106 55 98 113 84 87 120 67 87 120 67 85 113 63
++85 113 63 87 120 67 87 120 67 87 120 67 85 113 63 98 113 84 87 120 67 85 113 63
++98 113 84 87 120 67 85 113 63 98 113 84 98 126 66 85 113 63 98 113 84 87 120 67
++87 120 67 85 113 63 87 120 67 85 113 63 87 120 67 85 113 63 85 113 63 87 120 67
++85 113 63 85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 87 120 67 85 113 63 85 113 63
++85 113 63 87 99 72 87 120 67 85 113 63 85 113 63 85 113 63 87 99 72 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 75 99 72 85 113 63 82 107 52 85 113 63
++70 96 55 85 113 63 82 107 52 75 99 72 73 107 51 75 99 72 81 96 56 85 113 63
++81 96 56 85 113 63 81 96 56 70 96 55 85 113 63 81 96 56 81 96 56 82 107 52
++81 96 56 75 99 72 81 96 56 81 96 56 70 96 55 81 96 56 81 96 56 75 99 72
++73 107 51 70 96 55 81 96 56 81 96 56 75 99 72 81 96 56 82 107 52 75 99 72
++70 96 55 82 107 52 75 99 72 73 107 51 75 99 72 81 96 56 73 107 51 75 99 72
++81 96 56 81 96 56 81 96 56 70 96 55 70 96 55 66 86 47 70 96 55 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 70 96 55 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 57 86 47 64 70 48 57 86 47 57 86 47 64 70 48 66 86 47
++
++66 86 47 66 86 47 70 96 45 49 74 23 66 86 47 66 86 47 49 74 23 57 86 47
++49 74 23 70 96 45 49 74 23 57 86 47 70 96 45 57 86 47 49 74 23 70 96 45
++66 86 47 57 86 47 49 74 23 70 96 45 57 86 47 70 96 45 57 86 47 66 86 47
++66 86 47 64 97 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 66 86 47
++70 96 45 66 86 47 70 96 45 70 96 45 70 96 45 66 86 47 70 96 45 57 86 47
++49 74 23 70 96 45 57 86 47 70 96 45 57 86 47 70 96 45 66 86 47 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 55 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 66 86 47 70 96 45 70 96 45 70 96 45 70 96 45 64 97 47
++70 96 45 66 86 47 70 96 45 70 96 45 70 96 45 70 96 45 64 97 47 70 96 45
++64 97 47 70 96 45 70 96 45 73 107 51 70 96 45 70 96 55 73 107 51 73 107 51
++73 107 51 81 96 56 73 107 51 73 107 51 73 107 51 70 96 45 70 96 45 70 96 45
++70 96 45 73 107 51 70 96 45 73 107 51 70 96 45 70 96 45 73 107 51 70 96 45
++73 107 51 70 96 45 70 96 55 73 107 51 70 96 45 70 96 45 73 107 51 73 107 51
++70 96 45 73 107 51 73 107 51 70 96 45 73 107 51 70 96 45 73 107 51 80 96 46
++73 107 51 73 107 51 73 107 51 82 107 52 73 107 51 82 107 52 73 107 51 73 107 51
++73 107 51 73 107 51 82 107 52 82 107 52 82 107 52 82 107 52 73 107 51 82 107 52
++73 107 51 82 119 53 82 107 52 82 119 53 82 107 52 82 107 52 82 107 52 85 113 63
++85 113 63 82 107 52 85 113 63 82 107 52 82 107 52 85 113 63 82 107 52 85 113 63
++82 119 53 85 113 63 82 119 53 82 107 52 85 113 63 85 113 63 82 107 52 82 119 53
++82 107 52 82 119 53 85 113 63 82 119 53 82 119 53 82 107 52 82 119 53 82 119 53
++85 113 63 82 119 53 85 113 63 82 119 53 82 107 52 82 119 53 82 107 52 87 122 63
++87 122 63 85 113 63 87 122 63 87 122 63 87 122 63 87 122 63 98 106 55 87 122 63
++87 122 63 87 122 63 82 119 53 87 122 63 87 122 63 98 106 55 82 119 53 98 106 55
++117 127 86 146 151 137 177 169 143 121 143 132 75 81 82 75 81 82 60 81 83 77 91 115
++95 108 128 111 122 142 150 168 183 185 202 202 232 215 228 233 241 227 233 241 227 225 222 201
++233 241 227 166 180 164 112 123 108 63 55 45 32 39 24 42 47 42 47 49 42 75 77 62
++112 123 108 146 151 137 145 140 145 117 99 86 75 81 69 55 55 48 50 61 48 63 55 45
++55 55 48 55 55 48 36 35 37 15 17 7 3 3 1 3 3 1 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 15 22 17 33 39 38 50 61 48
++51 73 47 70 96 55 87 120 67 99 133 85 98 132 75 98 126 66 98 126 66 98 126 66
++98 126 66 87 122 63 98 126 66 98 126 66 98 126 66 87 122 63 98 126 66 87 122 63
++98 132 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 87 122 63
++98 126 66 87 122 63 98 132 66 98 132 66 98 126 66 98 132 66 98 126 66 98 132 66
++98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 87 122 63 98 126 66 87 122 63
++98 126 66 98 126 66 98 126 66 87 122 63 98 132 66 87 122 63 98 132 66 98 126 66
++98 126 66 98 132 66 98 126 66 98 132 66 98 126 66 98 132 66 87 122 63 98 126 66
++87 122 63 87 122 63 98 126 66 87 122 63 98 126 66 98 126 66 98 126 66 98 126 66
++98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 132 75 98 126 66 98 132 75
++98 126 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 126 66 98 132 66
++98 132 75 98 126 66 98 132 66 98 126 66 98 132 75 98 132 66 98 132 66 98 132 75
++98 132 66 117 127 86 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 117 127 86 98 132 66 98 132 75 117 127 86 98 132 66 98 132 75
++98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 117 127 86
++98 132 66 117 127 86 98 132 66 98 132 75 98 132 75 117 127 86 98 132 66 117 127 86
++98 132 66 117 127 86 98 132 75 98 132 66 157 148 53 99 133 85 98 132 75 157 148 53
++99 133 85 99 133 85 99 133 85 99 133 85 99 133 85 99 133 85 99 133 85 157 148 53
++99 133 85 99 133 85 99 133 85 157 148 53 99 133 85 117 142 111 98 132 66 99 133 85
++117 142 111 157 148 53 98 132 75 98 132 75 98 132 66 117 142 111 157 148 53 99 133 85
++99 133 85 99 133 85 99 133 85 157 148 53 99 133 85 98 132 75 98 132 75 157 148 53
++99 133 85 117 142 111 98 132 66 99 133 85 99 133 85 98 132 75 99 133 85 99 133 85
++98 132 75 99 133 85 99 133 85 99 133 85 98 132 75 98 132 75 99 133 85 98 132 75
++117 127 86 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 117 127 86 98 132 75
++117 127 86 98 132 66 98 132 75 98 132 66 98 132 75 117 127 86 98 132 75 157 148 53
++99 133 85 99 133 85 99 133 85 117 142 111 98 132 66 117 142 111 98 132 75 99 133 85
++99 133 85 117 142 111 146 162 145 185 202 202 185 202 202 194 199 226 201 216 228 201 216 228
++226 221 247 208 221 247 226 221 247 221 238 247 231 239 247 231 239 247 235 238 247 235 238 247
++240 251 247 231 239 247 240 251 247 231 239 247 240 251 247 235 238 247 235 238 247 231 239 247
++231 239 247 231 239 247 231 239 247 221 238 247 221 238 247 221 238 247 221 238 247 226 221 247
++221 238 247 221 238 247 231 239 247 231 239 247 231 239 247 235 238 247 240 251 247 246 237 247
++240 251 247 246 237 247 240 251 247 251 251 247 201 216 228 146 162 145 117 142 111 99 133 85
++99 133 85 99 133 85 117 127 86 99 133 85 117 127 86 98 132 66 99 133 85 157 148 53
++99 133 85 98 132 75 99 133 85 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 99 133 85 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86
++98 132 66 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 117 127 86
++98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 99 133 85
++98 132 75 117 142 111 98 132 66 99 133 85 98 132 75 157 148 53 99 133 85 98 132 75
++98 132 75 98 132 75 117 127 86 98 132 66 98 132 75 117 127 86 98 132 75 98 132 75
++98 132 75 117 127 86 98 132 75 99 133 85 117 127 86 98 132 75 117 127 86 99 133 85
++98 132 75 99 133 85 98 132 75 99 133 85 98 132 75 117 127 86 98 132 75 117 127 86
++98 132 75 117 127 86 98 132 75 99 133 85 98 132 75 117 127 86 98 132 75 117 127 86
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75
++98 132 75 98 132 75 98 126 66 98 132 75 98 132 75 98 126 66 98 132 75 98 126 66
++98 132 75 98 132 75 98 132 75 98 132 75 98 126 66 98 113 84 98 132 75 98 132 75
++98 132 75 98 126 66 98 132 75 98 126 66 98 126 66 88 121 82 98 126 66 98 126 66
++98 113 84 98 126 66 88 121 82 98 126 66 88 121 82 87 120 67 88 121 82 87 120 67
++98 132 75 87 120 67 98 132 75 98 113 84 87 120 67 87 120 67 98 113 84 98 126 66
++88 121 82 98 126 66 88 121 82 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66
++87 120 67 87 120 67 98 126 66 88 121 82 87 120 67 98 126 66 87 120 67 98 126 66
++98 113 84 87 120 67 98 126 66 87 120 67 85 113 63 98 126 66 85 113 63 87 120 67
++87 120 67 87 120 67 98 126 66 85 113 63 87 120 67 87 120 67 87 120 67 98 126 66
++87 120 67 87 120 67 87 120 67 87 120 67 88 121 82 87 120 67 87 120 67 98 113 84
++87 120 67 85 113 63 85 113 63 87 120 67 85 113 63 98 113 84 87 120 67 85 113 63
++87 120 67 87 99 72 87 120 67 87 120 67 87 120 67 85 113 63 98 126 66 85 113 63
++98 113 84 87 120 67 85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 87 120 67
++85 113 63 87 120 67 87 120 67 87 120 67 87 120 67 98 113 84 85 113 63 87 120 67
++87 120 67 87 120 67 85 113 63 87 120 67 87 99 72 87 120 67 87 120 67 85 113 63
++98 113 84 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 87 99 72 85 113 63 87 99 72 87 120 67 87 99 72
++85 113 63 85 113 63 85 113 63 87 99 72 87 120 67 87 99 72 85 113 63 85 113 63
++87 99 72 85 113 63 75 99 72 81 96 56 82 107 52 75 99 72 82 107 52 75 99 72
++81 96 56 75 99 72 81 96 56 85 113 63 81 96 56 85 113 63 70 96 55 82 107 52
++81 96 56 70 96 55 82 107 52 81 96 56 70 96 55 81 96 56 75 99 72 82 107 52
++70 96 55 82 107 52 70 96 55 75 99 72 70 96 55 81 96 56 70 96 55 73 107 51
++81 96 56 75 99 72 70 96 55 70 96 55 81 96 56 70 96 55 70 96 55 70 96 55
++81 96 56 75 99 72 81 96 56 81 96 56 70 96 55 70 96 55 70 96 55 81 96 56
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 66 86 47 66 86 47
++66 86 47 70 96 55 66 86 47 70 96 55 59 79 61 66 86 47 66 86 47 66 86 47
++70 96 55 59 79 61 66 86 47 66 86 47 75 77 62 66 86 47 64 70 48 59 79 61
++66 86 47 59 79 61 66 86 47 57 86 47 64 70 48 66 86 47 59 79 61 57 86 47
++
++49 74 23 49 74 23 57 86 47 70 96 45 57 86 47 66 86 47 70 96 45 49 74 23
++64 97 47 49 74 23 66 86 47 49 74 23 57 86 47 49 74 23 66 86 47 57 86 47
++49 74 23 70 96 45 49 74 23 70 96 45 49 74 23 57 86 47 70 96 45 57 86 47
++70 96 45 66 86 47 64 97 47 66 86 47 66 86 47 64 97 47 66 86 47 64 97 47
++66 86 47 64 97 47 70 96 45 66 86 47 70 96 45 70 96 45 66 86 47 70 96 45
++70 96 45 70 96 45 70 96 45 49 74 23 70 96 45 66 86 47 70 96 45 66 86 47
++64 97 47 66 86 47 64 97 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 66 86 47 64 97 47 70 96 45 66 86 47
++64 97 47 64 97 47 70 96 45 70 96 45 70 96 45 57 86 47 70 96 45 64 97 47
++70 96 45 70 96 45 70 96 45 70 96 45 73 107 51 70 96 45 70 96 55 80 96 46
++73 107 51 73 107 51 81 96 56 73 107 51 70 96 55 73 107 51 70 96 45 73 107 51
++73 107 51 70 96 45 73 107 51 70 96 45 70 96 55 73 107 51 73 107 51 80 96 46
++73 107 51 73 107 51 73 107 51 73 107 51 70 96 45 73 107 51 70 96 45 73 107 51
++73 107 51 70 96 45 73 107 51 70 96 45 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 82 107 52 73 107 51 73 107 51 82 119 53 73 107 51 82 107 52 82 107 52
++73 107 51 82 107 52 73 107 51 82 107 52 82 107 52 73 107 51 73 107 51 73 107 51
++82 107 52 82 107 52 82 107 52 85 113 63 82 107 52 85 113 63 82 119 53 82 107 52
++82 107 52 85 113 63 82 119 53 82 107 52 82 119 53 82 107 52 82 107 52 85 113 63
++82 107 52 82 107 52 82 119 53 85 113 63 82 119 53 87 122 63 82 119 53 82 107 52
++82 119 53 82 107 52 82 119 53 82 119 53 82 119 53 98 106 55 82 119 53 87 122 63
++98 106 55 82 119 53 82 119 53 98 106 55 82 119 53 85 113 63 82 119 53 82 119 53
++82 119 53 87 122 63 85 113 63 85 113 63 87 122 63 87 122 63 87 122 63 87 122 63
++87 122 63 87 122 63 87 122 63 87 122 63 87 122 63 82 119 53 85 113 63 98 132 75
++146 150 115 166 180 164 166 180 164 166 156 164 121 143 132 122 134 144 129 144 153 148 160 159
++150 171 159 188 180 202 225 222 201 201 216 228 225 222 201 166 174 181 208 215 180 201 216 228
++225 222 201 177 169 143 99 93 84 55 55 48 32 39 24 47 47 21 51 49 42 64 70 48
++88 83 74 112 123 108 146 151 137 146 151 137 112 123 108 87 99 72 64 70 48 47 49 42
++47 49 42 51 49 42 51 49 42 51 49 42 33 30 30 14 16 17 3 3 1 3 3 1
++3 3 1 3 3 1 3 3 1 3 3 1 3 3 1 15 22 17 42 47 42 51 73 47
++75 99 72 87 99 72 98 113 84 98 126 66 98 132 75 98 126 66 98 132 75 98 126 66
++98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 132 66 87 122 63
++98 132 66 98 132 66 87 122 63 98 126 66 87 122 63 98 126 66 98 126 66 98 132 66
++87 122 63 98 132 66 98 132 66 98 132 66 98 126 66 98 126 66 98 132 66 98 126 66
++98 132 66 98 132 66 98 126 66 98 126 66 98 132 66 87 122 63 98 132 66 98 126 66
++98 126 66 98 126 66 98 126 66 98 132 66 87 122 63 98 132 66 87 122 63 98 126 66
++98 126 66 98 126 66 98 126 66 98 132 75 98 132 66 98 126 66 98 126 66 98 126 66
++98 126 66 98 126 66 87 122 63 98 126 66 98 126 66 87 122 63 98 126 66 87 122 63
++98 126 66 87 122 63 98 126 66 98 126 66 98 132 75 98 126 66 98 126 66 98 126 66
++98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 98 132 66 98 132 75 98 132 66
++98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 126 66
++98 132 75 98 126 66 98 132 66 98 132 66 98 132 66 98 132 75 98 132 66 98 132 66
++98 132 75 98 132 66 117 127 86 98 132 75 98 132 66 117 127 86 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 117 127 86
++98 132 75 98 132 66 117 127 86 98 132 66 117 127 86 98 132 66 117 127 86 98 132 75
++98 132 75 98 132 66 117 127 86 98 132 75 117 127 86 98 132 66 99 133 85 98 132 75
++99 133 85 157 148 53 98 132 75 99 133 85 99 133 85 98 132 75 99 133 85 99 133 85
++99 133 85 98 132 66 99 133 85 98 132 66 99 133 85 98 132 75 99 133 85 99 133 85
++98 132 75 98 132 75 99 133 85 99 133 85 99 133 85 98 132 66 117 142 111 99 133 85
++98 132 75 99 133 85 99 133 85 157 148 53 117 142 111 98 132 66 99 133 85 98 132 66
++117 142 111 98 132 75 99 133 85 99 133 85 99 133 85 98 132 66 117 142 111 99 133 85
++98 132 75 98 132 75 98 132 66 99 133 85 98 132 66 117 142 111 98 132 75 99 133 85
++99 133 85 157 148 53 98 132 75 99 133 85 98 132 75 117 127 86 98 132 75 99 133 85
++98 132 66 117 127 86 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 66 117 127 86 98 132 75 98 132 75 99 133 85 99 133 85
++99 133 85 99 133 85 99 133 85 99 133 85 157 148 53 98 132 66 99 133 85 117 127 86
++98 132 75 117 142 111 117 142 111 150 171 159 185 202 202 194 199 226 201 216 228 194 199 226
++201 216 228 208 221 247 221 238 247 226 221 247 221 238 247 231 239 247 240 251 247 231 239 247
++231 239 247 240 251 247 231 239 247 235 238 247 231 239 247 240 251 247 231 239 247 231 239 247
++231 239 247 231 239 247 226 221 247 231 239 247 226 221 247 221 238 247 221 238 247 221 238 247
++221 238 247 226 221 247 221 238 247 231 239 247 231 239 247 235 238 247 235 238 247 240 251 247
++246 237 247 240 251 247 240 251 247 240 251 247 225 222 201 166 180 164 117 142 111 99 133 85
++117 127 86 99 133 85 99 133 85 99 133 85 157 148 53 98 132 75 99 133 85 99 133 85
++98 132 75 99 133 85 99 133 85 157 148 53 98 132 75 98 132 75 99 133 85 157 148 53
++98 132 75 99 133 85 98 132 66 99 133 85 98 132 66 117 127 86 98 132 75 98 132 75
++99 133 85 98 132 75 117 127 86 99 133 85 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 99 133 85 98 132 66 99 133 85
++98 132 66 99 133 85 157 148 53 98 132 75 99 133 85 99 133 85 99 133 85 98 132 75
++117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 99 133 85
++98 132 75 98 132 75 98 132 75 99 133 85 98 132 75 99 133 85 98 132 75 98 132 75
++117 127 86 98 132 75 117 127 86 98 132 75 117 127 86 98 132 75 99 133 85 98 132 75
++98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 117 127 86 98 132 75
++98 132 75 98 132 75 117 127 86 98 132 75 117 127 86 98 132 75 98 113 84 99 133 85
++98 132 75 98 132 75 88 121 82 98 132 75 98 132 75 88 121 82 98 126 66 88 121 82
++98 132 75 98 132 75 98 132 75 98 126 66 98 132 75 98 132 75 98 132 75 98 126 66
++98 113 84 98 132 75 98 126 66 98 132 75 98 126 66 98 126 66 98 113 84 98 126 66
++98 132 75 98 126 66 98 113 84 98 126 66 98 126 66 87 120 67 98 126 66 87 120 67
++98 126 66 98 113 84 87 120 67 87 120 67 87 120 67 98 126 66 87 120 67 87 120 67
++98 126 66 87 120 67 98 126 66 98 113 84 98 126 66 88 121 82 98 126 66 88 121 82
++98 126 66 87 120 67 98 113 84 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 98 113 84 87 120 67 85 113 63 98 126 66 85 113 63
++98 126 66 85 113 63 87 120 67 98 113 84 87 120 67 87 120 67 98 113 84 87 120 67
++87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 98 126 66 87 120 67 87 120 67
++87 120 67 87 120 67 85 113 63 98 113 84 85 113 63 87 120 67 85 113 63 85 113 63
++85 113 63 85 113 63 87 120 67 98 106 55 85 113 63 87 120 67 85 113 63 87 120 67
++85 113 63 85 113 63 98 113 84 85 113 63 85 113 63 85 113 63 87 120 67 87 120 67
++98 106 55 87 120 67 85 113 63 98 126 66 85 113 63 87 120 67 87 120 67 85 113 63
++87 120 67 85 113 63 98 113 84 85 113 63 87 120 67 85 113 63 85 113 63 87 120 67
++85 113 63 87 120 67 87 120 67 85 113 63 87 120 67 85 113 63 87 120 67 85 113 63
++85 113 63 87 120 67 85 113 63 85 113 63 87 120 67 87 120 67 87 120 67 85 113 63
++85 113 63 87 99 72 85 113 63 87 120 67 85 113 63 85 113 63 75 99 72 85 113 63
++85 113 63 85 113 63 85 113 63 75 99 72 85 113 63 75 99 72 82 107 52 75 99 72
++82 107 52 75 99 72 73 107 51 75 99 72 70 96 55 75 99 72 82 107 52 75 99 72
++70 96 55 85 113 63 70 96 55 81 96 56 73 107 51 81 96 56 73 107 51 75 99 72
++81 96 56 70 96 55 81 96 56 70 96 55 81 96 56 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 81 96 56 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 81 96 56 75 99 72 70 96 55 81 96 56 70 96 55 70 96 55 81 96 56
++70 96 55 81 96 56 70 96 55 75 81 69 66 86 47 70 96 55 59 79 61 66 86 47
++66 86 47 66 86 47 59 79 61 70 96 55 66 86 47 66 86 47 70 96 55 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 64 70 48 57 86 47 64 70 48 57 86 47 64 70 48 66 86 47
++
++66 86 47 70 96 45 70 96 45 49 74 23 66 86 47 49 74 23 66 86 47 57 86 47
++49 74 23 66 86 47 49 74 23 70 96 45 57 86 47 66 86 47 57 86 47 49 74 23
++70 96 45 49 74 23 57 86 47 57 86 47 70 96 45 66 86 47 70 96 45 57 86 47
++70 96 45 66 86 47 70 96 45 66 86 47 64 97 47 66 86 47 70 96 45 66 86 47
++70 96 45 66 86 47 64 97 47 66 86 47 64 97 47 57 86 47 70 96 45 57 86 47
++66 86 47 57 86 47 70 96 45 70 96 45 70 96 45 70 96 45 64 97 47 70 96 45
++66 86 47 70 96 45 66 86 47 70 96 45 64 97 47 70 96 45 70 96 45 70 96 45
++70 96 45 66 86 47 64 97 47 66 86 47 70 96 45 70 96 45 64 97 47 70 96 45
++70 96 45 66 86 47 70 96 45 66 86 47 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 64 97 47 70 96 45 70 96 45 70 96 45 70 96 45 73 107 51 70 96 45
++73 107 51 81 96 56 73 107 51 73 107 51 81 96 56 73 107 51 70 96 55 73 107 51
++70 96 45 73 107 51 73 107 51 73 107 51 80 96 46 73 107 51 70 96 45 73 107 51
++73 107 51 80 96 46 70 96 55 73 107 51 73 107 51 70 96 45 73 107 51 70 96 45
++73 107 51 70 96 45 73 107 51 70 96 45 73 107 51 80 96 46 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51 82 107 52 73 107 51
++73 107 51 73 107 51 82 107 52 82 107 52 73 107 51 82 107 52 73 107 51 73 107 51
++82 107 52 73 107 51 82 119 53 82 107 52 82 119 53 82 107 52 82 107 52 85 113 63
++85 113 63 82 107 52 82 107 52 82 107 52 82 107 52 85 113 63 73 107 51 82 107 52
++82 119 53 85 113 63 85 113 63 82 119 53 87 122 63 98 106 55 87 122 63 82 119 53
++82 119 53 85 113 63 82 119 53 98 106 55 82 119 53 82 119 53 82 119 53 85 113 63
++82 119 53 82 119 53 85 113 63 82 119 53 87 122 63 82 119 53 98 106 55 87 122 63
++85 113 63 87 122 63 82 119 53 87 122 63 82 119 53 98 126 66 87 122 63 87 122 63
++87 122 63 87 122 63 98 126 66 87 122 63 85 113 63 85 113 63 98 126 66 146 150 115
++177 169 143 166 180 164 208 215 180 166 180 164 185 202 202 189 165 168 188 180 202 185 202 202
++201 216 228 225 222 201 201 216 228 225 222 201 166 180 164 146 151 137 146 162 145 166 180 164
++146 151 137 94 105 108 75 77 62 64 70 48 65 63 61 75 81 69 99 93 84 88 83 74
++75 81 69 88 83 74 112 123 108 138 126 108 150 144 154 138 126 108 90 98 89 47 44 42
++29 35 19 33 30 30 51 49 42 59 55 55 55 55 48 36 35 37 22 25 24 23 18 22
++22 25 24 22 25 24 14 16 17 6 15 6 15 22 17 32 39 24 51 73 47 87 99 72
++98 113 84 99 133 85 99 133 85 98 126 66 88 121 82 98 126 66 98 126 66 98 132 75
++98 126 66 98 132 75 98 132 75 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 75 98 132 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66
++98 132 66 87 122 63 98 132 66 98 132 66 98 132 75 98 132 66 98 132 66 98 126 66
++98 132 66 98 126 66 98 132 66 98 126 66 98 126 66 98 132 66 87 120 67 98 132 66
++98 126 66 98 126 66 98 126 66 98 126 66 87 122 63 98 132 66 98 126 66 98 126 66
++98 126 66 98 132 75 98 132 75 98 126 66 98 132 75 98 126 66 87 122 63 98 126 66
++87 122 63 98 126 66 98 126 66 98 126 66 87 122 63 98 126 66 98 126 66 98 132 66
++98 126 66 98 132 66 98 126 66 98 126 66 98 126 66 98 126 66 98 132 75 98 132 66
++98 126 66 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 66 117 127 86 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66
++98 132 66 98 132 75 98 132 66 98 132 66 98 132 66 98 132 75 98 132 66 98 132 75
++98 132 66 98 132 75 98 132 75 98 132 66 117 127 86 98 132 66 98 132 66 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 98 132 66
++98 132 66 98 132 75 98 132 66 157 148 53 99 133 85 98 132 66 98 132 75 98 132 75
++157 148 53 99 133 85 98 132 75 98 132 75 98 132 75 117 127 86 98 132 66 99 133 85
++98 132 75 99 133 85 99 133 85 98 132 66 99 133 85 98 132 66 99 133 85 98 132 66
++98 132 66 99 133 85 157 148 53 99 133 85 99 133 85 157 148 53 99 133 85 99 133 85
++98 132 66 117 142 111 157 148 53 99 133 85 117 142 111 98 132 66 157 148 53 99 133 85
++117 142 111 98 132 66 117 142 111 98 132 75 98 132 75 117 142 111 98 132 66 117 142 111
++157 148 53 98 132 75 99 133 85 98 132 66 117 142 111 98 132 66 98 132 66 99 133 85
++157 148 53 99 133 85 99 133 85 157 148 53 99 133 85 98 132 66 157 148 53 99 133 85
++99 133 85 99 133 85 99 133 85 98 132 66 117 142 111 98 132 66 99 133 85 117 127 86
++98 132 75 98 132 75 98 132 75 117 127 86 98 132 66 117 127 86 98 132 75 98 132 75
++117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 99 133 85
++157 148 53 99 133 85 99 133 85 99 133 85 99 133 85 99 133 85 117 142 111 98 132 66
++117 127 86 99 133 85 117 142 111 146 151 137 166 180 164 185 202 202 194 199 226 201 216 228
++208 221 247 208 221 247 208 221 247 226 221 247 221 238 247 231 239 247 231 239 247 231 239 247
++240 251 247 231 239 247 240 251 247 231 239 247 235 238 247 235 238 247 231 239 247 240 251 247
++231 239 247 231 239 247 221 238 247 231 239 247 221 238 247 221 238 247 221 238 247 221 238 247
++221 238 247 221 238 247 221 238 247 231 239 247 231 239 247 231 239 247 240 251 247 246 237 247
++240 251 247 240 251 247 251 251 247 251 251 247 233 241 227 150 171 159 117 142 111 98 113 84
++99 133 85 117 127 86 99 133 85 117 142 111 98 132 75 99 133 85 98 132 66 98 132 75
++98 132 75 98 132 75 99 133 85 99 133 85 99 133 85 98 132 66 99 133 85 98 132 75
++99 133 85 98 132 66 99 133 85 157 148 53 99 133 85 98 132 75 99 133 85 98 132 75
++98 132 75 98 132 75 99 133 85 98 132 75 117 127 86 99 133 85 117 127 86 98 132 75
++117 127 86 98 132 75 117 127 86 98 132 75 117 142 111 157 148 53 99 133 85 98 132 75
++99 133 85 99 133 85 99 133 85 99 133 85 99 133 85 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 117 127 86 98 132 75 117 127 86
++98 132 75 117 127 86 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 117 127 86
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 117 127 86
++99 133 85 117 127 86 98 132 75 98 132 75 117 127 86 98 132 75 117 127 86 98 132 75
++117 127 86 98 132 75 99 133 85 99 133 85 98 132 75 99 133 85 98 132 75 98 132 75
++98 132 75 98 113 84 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 126 66 98 113 84 98 132 75 98 132 75 98 132 75 98 126 66 98 132 75 98 132 75
++98 126 66 98 126 66 98 132 75 98 126 66 98 132 75 98 126 66 98 126 66 98 126 66
++88 121 82 98 126 66 98 132 75 98 126 66 88 121 82 98 126 66 88 121 82 98 126 66
++88 121 82 98 126 66 87 120 67 98 132 75 98 113 84 98 126 66 87 120 67 98 126 66
++88 121 82 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66
++87 120 67 87 120 67 87 120 67 87 120 67 98 113 84 87 120 67 98 106 55 88 121 82
++98 126 66 87 120 67 87 120 67 98 126 66 85 113 63 87 120 67 87 120 67 87 120 67
++85 113 63 98 113 84 85 113 63 85 113 63 87 120 67 87 120 67 87 120 67 87 120 67
++98 113 84 85 113 63 87 120 67 87 120 67 85 113 63 98 113 84 85 113 63 87 120 67
++85 113 63 85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 87 120 67 98 106 55
++87 120 67 85 113 63 85 113 63 87 120 67 98 113 84 85 113 63 87 120 67 85 113 63
++87 120 67 85 113 63 85 113 63 85 113 63 87 120 67 85 113 63 85 113 63 98 126 66
++85 113 63 87 120 67 98 113 84 85 113 63 87 120 67 85 113 63 98 113 84 85 113 63
++85 113 63 87 120 67 87 120 67 85 113 63 98 113 84 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 87 99 72 87 120 67 87 99 72 87 120 67 87 99 72 85 113 63 85 113 63
++87 120 67 85 113 63 87 120 67 87 99 72 85 113 63 87 99 72 85 113 63 85 113 63
++75 99 72 85 113 63 81 96 56 85 113 63 70 96 55 85 113 63 81 96 56 85 113 63
++70 96 55 85 113 63 75 99 72 82 107 52 81 96 56 73 107 51 81 96 56 82 107 52
++81 96 56 81 96 56 70 96 55 81 96 56 70 96 55 81 96 56 70 96 55 81 96 56
++73 107 51 70 96 55 70 96 55 81 96 56 70 96 55 81 96 56 70 96 55 70 96 55
++81 96 56 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++81 96 56 70 96 55 81 96 56 81 96 56 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 66 86 47 70 96 55 66 86 47
++66 86 47 70 96 55 66 86 47 70 96 55 66 86 47 70 96 55 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 59 79 61 66 86 47 66 86 47 59 79 61
++64 70 48 57 86 47 64 70 48 57 86 47 51 73 47 66 86 47 51 73 47 59 79 61
++
++49 74 23 57 86 47 49 74 23 66 86 47 57 86 47 70 96 45 49 74 23 57 86 47
++66 86 47 49 74 23 57 86 47 49 74 23 57 86 47 49 74 23 57 86 47 66 86 47
++57 86 47 57 86 47 66 86 47 49 74 23 70 96 45 49 74 23 57 86 47 66 86 47
++70 96 45 57 86 47 70 96 45 57 86 47 70 96 45 66 86 47 57 86 47 70 96 45
++57 86 47 66 86 47 57 86 47 70 96 45 57 86 47 70 96 45 66 86 47 70 96 45
++70 96 45 70 96 45 70 96 45 66 86 47 70 96 45 57 86 47 66 86 47 66 86 47
++70 96 45 70 96 45 70 96 55 70 96 45 70 96 55 70 96 45 70 96 55 70 96 45
++70 96 45 70 96 45 70 96 45 64 97 47 70 96 45 64 97 47 70 96 45 64 97 47
++64 97 47 64 97 47 70 96 45 64 97 47 70 96 45 70 96 45 64 97 47 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 55 70 96 45 73 107 51 70 96 55
++81 96 56 73 107 51 73 107 51 81 96 56 73 107 51 73 107 51 81 96 56 73 107 51
++70 96 45 73 107 51 70 96 45 73 107 51 70 96 55 73 107 51 80 96 46 73 107 51
++70 96 55 73 107 51 82 107 52 73 107 51 70 96 45 73 107 51 70 96 45 73 107 51
++73 107 51 70 96 45 73 107 51 73 107 51 70 96 45 73 107 51 70 96 45 73 107 51
++70 96 55 82 107 52 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51 82 107 52
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 82 107 52 73 107 51
++82 107 52 82 107 52 85 113 63 82 107 52 85 113 63 82 107 52 85 113 63 85 113 63
++82 119 53 85 113 63 85 113 63 85 113 63 82 107 52 73 107 51 82 107 52 85 113 63
++82 107 52 82 119 53 85 113 63 87 122 63 85 113 63 87 122 63 82 119 53 87 122 63
++85 113 63 82 119 53 85 113 63 87 122 63 85 113 63 87 122 63 98 106 55 87 122 63
++82 119 53 87 122 63 98 106 55 87 122 63 82 119 53 85 113 63 87 122 63 87 122 63
++87 122 63 82 119 53 85 113 63 82 119 53 87 122 63 87 122 63 87 122 63 98 126 66
++87 122 63 87 122 63 98 126 66 87 122 63 98 106 55 98 126 66 117 142 111 177 169 143
++166 180 164 166 180 164 189 165 168 208 215 180 208 215 180 208 215 180 185 202 202 208 215 180
++185 202 202 225 222 201 225 222 201 185 202 202 166 180 164 111 119 127 99 93 84 88 83 74
++88 83 74 88 83 74 88 83 74 75 73 58 88 83 74 112 123 108 146 151 137 146 151 137
++138 126 108 99 93 84 99 93 84 99 93 84 112 123 108 121 143 132 117 99 86 55 55 48
++15 17 7 26 25 15 31 35 35 47 47 21 47 49 42 51 49 42 52 55 48 59 55 55
++64 70 48 75 73 58 47 49 42 29 35 19 47 47 21 70 96 55 88 121 82 98 132 75
++99 133 85 98 126 66 98 132 75 98 126 66 98 126 66 98 132 75 98 126 66 98 132 75
++98 132 75 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75
++98 132 75 98 132 75 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66
++98 132 66 98 132 66 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75
++98 126 66 98 132 75 98 126 66 98 132 75 87 120 67 98 132 66 98 132 66 98 132 75
++98 132 66 98 132 75 87 120 67 98 132 75 98 132 66 98 132 75 87 120 67 98 132 75
++87 120 67 98 126 66 98 132 75 98 132 75 98 132 75 98 126 66 98 126 66 87 122 63
++98 126 66 98 126 66 87 122 63 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66
++98 126 66 98 126 66 87 122 63 98 132 75 98 126 66 98 132 66 98 126 66 98 126 66
++98 132 75 98 126 66 98 132 66 98 132 75 98 132 75 98 132 66 98 132 75 98 132 66
++98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 66 98 132 75
++98 132 75 98 132 66 98 132 75 98 132 66 98 132 66 98 132 66 117 127 86 98 132 66
++98 132 75 98 132 66 117 127 86 98 132 75 98 132 66 98 132 75 99 133 85 98 132 66
++117 127 86 98 132 66 98 132 75 98 132 66 117 127 86 98 132 75 98 132 66 117 127 86
++98 132 75 98 132 66 98 132 75 98 132 75 99 133 85 157 148 53 98 132 75 99 133 85
++99 133 85 98 132 75 99 133 85 99 133 85 157 148 53 99 133 85 99 133 85 157 148 53
++98 132 75 98 132 75 99 133 85 157 148 53 98 132 75 99 133 85 157 148 53 98 132 75
++98 132 75 98 132 75 99 133 85 98 132 75 99 133 85 99 133 85 99 133 85 157 148 53
++98 132 75 98 132 66 99 133 85 99 133 85 98 132 66 99 133 85 99 133 85 98 132 66
++117 142 111 98 132 66 98 132 66 117 142 111 98 132 66 99 133 85 157 148 53 98 132 66
++99 133 85 98 132 66 117 142 111 157 148 53 98 132 66 99 133 85 157 148 53 99 133 85
++99 133 85 99 133 85 99 133 85 99 133 85 99 133 85 99 133 85 99 133 85 99 133 85
++98 132 66 98 132 66 117 142 111 98 132 66 98 132 66 99 133 85 157 148 53 98 132 75
++98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 98 132 66 117 127 86 98 132 75
++98 132 75 98 132 75 98 132 66 117 127 86 98 132 75 98 132 75 98 132 75 99 133 85
++99 133 85 99 133 85 157 148 53 98 132 66 117 142 111 98 132 66 98 132 75 98 132 75
++117 142 111 99 133 85 98 132 75 117 142 111 150 171 159 166 180 164 194 199 226 194 199 226
++201 216 228 201 216 228 208 221 247 221 238 247 221 238 247 231 239 247 231 239 247 231 239 247
++231 239 247 240 251 247 231 239 247 240 251 247 231 239 247 240 251 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 226 221 247 221 238 247 231 239 247 221 238 247 226 221 247
++221 238 247 221 238 247 221 238 247 221 238 247 231 239 247 231 239 247 235 238 247 235 238 247
++246 237 247 246 237 247 240 251 247 251 251 247 233 241 227 166 180 164 117 142 111 117 127 86
++99 133 85 99 133 85 98 132 75 98 132 66 98 132 75 99 133 85 157 148 53 99 133 85
++99 133 85 157 148 53 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 99 133 85 98 132 75 99 133 85 98 132 75 117 127 86
++98 132 75 117 127 86 99 133 85 117 127 86 98 132 75 117 127 86 98 132 75 99 133 85
++99 133 85 98 132 66 117 142 111 98 132 75 98 132 66 99 133 85 99 133 85 99 133 85
++157 148 53 98 132 75 99 133 85 99 133 85 157 148 53 98 132 75 117 127 86 98 132 66
++117 127 86 98 132 66 117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 99 133 85
++98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 117 127 86 98 132 75 99 133 85 98 132 75 98 132 75 117 127 86
++98 132 75 99 133 85 98 132 75 117 127 86 98 132 75 98 132 75 117 127 86 98 132 75
++98 132 75 117 127 86 98 132 75 117 127 86 98 132 75 117 127 86 98 132 75 117 127 86
++98 132 75 98 132 75 98 132 75 98 126 66 98 113 84 98 132 75 98 126 66 98 132 75
++98 132 75 98 132 75 98 132 75 98 126 66 98 132 75 88 121 82 98 126 66 98 132 75
++98 126 66 88 121 82 98 126 66 98 132 75 98 132 75 98 113 84 98 126 66 87 120 67
++98 132 75 98 126 66 88 121 82 98 126 66 98 132 75 98 126 66 88 121 82 98 126 66
++98 132 75 98 126 66 88 121 82 98 126 66 98 126 66 88 121 82 98 132 75 87 120 67
++98 126 66 88 121 82 98 126 66 88 121 82 98 126 66 98 113 84 87 120 67 98 113 84
++98 126 66 98 113 84 85 113 63 98 126 66 87 120 67 87 120 67 98 126 66 87 120 67
++87 120 67 85 113 63 98 126 66 85 113 63 98 126 66 85 113 63 98 126 66 85 113 63
++98 126 66 85 113 63 87 120 67 85 113 63 87 120 67 85 113 63 87 120 67 85 113 63
++87 120 67 87 120 67 85 113 63 87 120 67 85 113 63 87 120 67 85 113 63 98 113 84
++85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 87 120 67 87 99 72 87 120 67
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 87 120 67 85 113 63
++87 120 67 87 120 67 85 113 63 87 120 67 87 120 67 85 113 63 85 113 63 87 120 67
++87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++87 120 67 85 113 63 87 120 67 87 99 72 87 120 67 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 87 120 67 87 99 72
++85 113 63 87 99 72 85 113 63 85 113 63 85 113 63 75 99 72 85 113 63 75 99 72
++85 113 63 85 113 63 75 99 72 85 113 63 75 99 72 82 107 52 75 99 72 82 107 52
++75 99 72 70 96 55 85 113 63 70 96 55 85 113 63 75 99 72 81 96 56 75 99 72
++70 96 55 85 113 63 81 96 56 73 107 51 75 99 72 73 107 51 81 96 56 70 96 55
++81 96 56 70 96 55 81 96 56 70 96 55 70 96 55 70 96 55 70 96 55 70 96 45
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 81 96 56 70 96 55 70 96 55
++70 96 55 81 96 56 70 96 55 75 99 72 70 96 55 70 96 55 75 77 62 70 96 55
++70 96 55 75 81 69 70 96 55 70 96 55 75 77 62 66 86 47 70 96 55 66 86 47
++59 79 61 66 86 47 66 86 47 70 96 55 75 81 69 66 86 47 66 86 47 59 79 61
++70 96 55 66 86 47 59 79 61 66 86 47 66 86 47 66 86 47 57 86 47 64 70 48
++57 86 47 57 86 47 64 70 48 57 86 47 64 70 48 57 86 47 64 70 48 57 86 47
++
++57 86 47 49 74 23 70 96 45 57 86 47 49 74 23 57 86 47 57 86 47 49 74 23
++57 86 47 57 86 47 49 74 23 66 86 47 49 74 23 70 96 45 57 86 47 49 74 23
++66 86 47 49 74 23 57 86 47 66 86 47 57 86 47 70 96 45 66 86 47 70 96 45
++49 74 23 70 96 45 49 74 23 70 96 45 57 86 47 66 86 47 64 97 47 66 86 47
++66 86 47 64 97 47 66 86 47 57 86 47 66 86 47 70 96 45 49 74 23 70 96 45
++64 97 47 66 86 47 64 97 47 70 96 45 66 86 47 70 96 45 70 96 45 64 97 47
++70 96 45 70 96 45 70 96 55 80 96 46 70 96 55 80 96 46 70 96 45 70 96 45
++70 96 55 70 96 45 66 86 47 64 97 47 70 96 45 64 97 47 64 97 47 70 96 45
++64 97 47 70 96 45 64 97 47 70 96 45 64 97 47 70 96 45 70 96 45 64 97 47
++70 96 45 70 96 45 70 96 55 70 96 55 70 96 45 70 96 55 80 96 46 70 96 55
++73 107 51 81 96 56 73 107 51 82 107 52 73 107 51 81 96 56 73 107 51 70 96 55
++73 107 51 70 96 45 70 96 45 70 96 45 73 107 51 73 107 51 70 96 55 73 107 51
++82 107 52 73 107 51 81 96 56 73 107 51 73 107 51 70 96 45 73 107 51 70 96 45
++73 107 51 70 96 55 73 107 51 70 96 45 73 107 51 70 96 45 73 107 51 70 96 45
++73 107 51 73 107 51 70 96 55 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++70 96 45 73 107 51 82 107 52 73 107 51 73 107 51 82 107 52 73 107 51 82 119 53
++82 107 52 82 107 52 73 107 51 85 113 63 73 107 51 82 107 52 85 113 63 85 113 63
++85 113 63 82 107 52 82 119 53 73 107 51 85 113 63 73 107 51 85 113 63 73 107 51
++82 119 53 82 107 52 85 113 63 82 119 53 87 122 63 85 113 63 87 122 63 85 113 63
++82 119 53 85 113 63 85 113 63 82 119 53 82 119 53 82 119 53 82 119 53 87 122 63
++85 113 63 87 122 63 82 119 53 87 122 63 87 122 63 98 126 66 85 113 63 87 122 63
++85 113 63 82 119 53 82 119 53 87 122 63 85 113 63 98 106 55 82 119 53 87 122 63
++87 122 63 87 122 63 87 122 63 85 113 63 87 122 63 117 142 111 177 169 143 166 180 164
++208 215 180 208 215 180 166 180 164 208 215 180 189 165 168 185 202 202 208 215 180 225 222 201
++225 222 201 185 202 202 185 202 202 225 222 201 225 222 201 166 156 164 88 83 74 26 30 28
++32 39 24 51 49 42 55 55 48 63 55 45 75 77 62 112 123 108 146 151 137 166 180 164
++166 180 164 146 151 137 99 93 84 75 81 69 88 73 62 88 83 74 75 81 76 64 70 48
++36 35 37 34 30 15 22 24 13 29 35 19 55 55 48 75 77 62 75 77 62 64 70 48
++52 55 48 64 70 48 75 73 58 70 96 55 87 99 72 99 133 85 117 127 86 98 132 75
++88 121 82 98 126 66 98 132 75 98 126 66 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75
++98 132 75 98 126 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66
++98 126 66 98 132 75 87 120 67 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75
++98 126 66 98 132 66 98 126 66 98 132 66 98 126 66 98 132 75 87 122 63 98 132 66
++98 132 75 98 126 66 98 132 66 98 132 75 98 132 66 98 132 66 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 126 66 98 132 75 98 126 66 98 126 66 98 126 66
++87 122 63 98 126 66 87 122 63 98 126 66 98 126 66 87 122 63 98 132 66 98 126 66
++98 126 66 98 126 66 98 132 66 98 132 66 98 126 66 98 132 75 98 126 66 98 132 75
++98 132 66 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 117 127 86 98 132 66
++98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75
++98 132 66 98 132 75 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++117 127 86 98 132 66 98 132 75 98 132 75 117 127 86 98 132 66 117 127 86 98 132 75
++98 132 75 98 132 75 117 127 86 98 132 66 98 132 66 98 132 75 98 132 75 98 132 66
++98 132 66 98 132 75 98 132 75 98 132 75 98 132 66 99 133 85 98 132 75 98 132 75
++98 132 75 99 133 85 157 148 53 99 133 85 99 133 85 99 133 85 98 132 75 99 133 85
++99 133 85 98 132 66 99 133 85 99 133 85 99 133 85 98 132 75 99 133 85 98 132 75
++98 132 75 98 132 75 157 148 53 99 133 85 98 132 75 99 133 85 99 133 85 99 133 85
++99 133 85 99 133 85 98 132 75 157 148 53 99 133 85 117 142 111 98 132 66 117 142 111
++98 132 66 157 148 53 117 142 111 98 132 66 98 132 75 117 142 111 98 132 75 117 142 111
++98 132 66 117 142 111 98 132 66 99 133 85 117 142 111 98 132 66 117 142 111 98 132 66
++99 133 85 157 148 53 99 133 85 98 132 75 117 142 111 98 132 66 99 133 85 98 132 66
++117 142 111 98 132 66 98 132 66 157 148 53 99 133 85 99 133 85 99 133 85 99 133 85
++157 148 53 99 133 85 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 98 132 75
++117 142 111 98 132 66 98 132 75 98 132 75 157 148 53 99 133 85 99 133 85 98 132 66
++99 133 85 98 132 75 99 133 85 99 133 85 98 132 66 99 133 85 157 148 53 99 133 85
++99 133 85 99 133 85 117 127 86 99 133 85 121 143 132 166 180 164 185 202 202 194 199 226
++201 216 228 232 215 228 208 221 247 221 238 247 221 238 247 221 238 247 231 239 247 231 239 247
++240 251 247 231 239 247 231 239 247 240 251 247 231 239 247 240 251 247 231 239 247 240 251 247
++231 239 247 231 239 247 221 238 247 231 239 247 221 238 247 221 238 247 221 238 247 221 238 247
++221 238 247 226 221 247 221 238 247 221 238 247 231 239 247 231 239 247 235 238 247 246 237 247
++240 251 247 246 237 247 251 251 247 251 251 247 231 239 247 185 202 202 117 142 111 99 133 85
++117 127 86 99 133 85 117 127 86 98 132 75 99 133 85 98 132 75 99 133 85 98 132 75
++98 132 75 99 133 85 98 132 75 99 133 85 157 148 53 99 133 85 98 132 75 98 132 75
++98 132 75 98 132 75 99 133 85 98 132 75 98 132 75 99 133 85 98 132 75 99 133 85
++98 132 75 99 133 85 98 132 75 99 133 85 99 133 85 99 133 85 157 148 53 99 133 85
++99 133 85 157 148 53 99 133 85 98 132 75 117 142 111 98 132 66 117 142 111 98 132 75
++99 133 85 99 133 85 99 133 85 98 132 75 99 133 85 99 133 85 98 132 75 98 132 75
++98 132 75 117 127 86 98 132 66 117 127 86 98 132 75 117 127 86 117 127 86 98 132 75
++117 127 86 98 132 75 98 132 75 117 127 86 98 132 75 117 127 86 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 99 133 85 98 132 75 117 127 86 98 132 75 99 133 85
++117 127 86 98 132 75 117 127 86 98 132 75 99 133 85 117 127 86 98 132 75 99 133 85
++117 127 86 98 132 75 99 133 85 117 127 86 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 126 66 98 126 66 98 132 75 88 121 82 98 126 66
++98 132 75 98 132 75 88 121 82 98 132 75 98 132 75 98 132 75 98 132 75 88 121 82
++98 126 66 98 126 66 98 132 75 98 113 84 98 126 66 98 126 66 98 132 75 98 126 66
++98 113 84 98 132 75 98 126 66 88 121 82 98 126 66 88 121 82 98 126 66 98 132 75
++88 121 82 98 126 66 98 126 66 88 121 82 98 126 66 98 132 75 87 120 67 98 113 84
++98 126 66 98 126 66 98 132 75 98 126 66 88 121 82 98 126 66 98 126 66 98 126 66
++87 120 67 87 120 67 98 126 66 87 120 67 87 120 67 98 126 66 85 113 63 98 126 66
++87 120 67 98 126 66 85 113 63 98 126 66 85 113 63 87 120 67 85 113 63 98 126 66
++85 113 63 87 120 67 85 113 63 87 120 67 85 113 63 98 113 84 85 113 63 87 120 67
++87 120 67 98 113 84 85 113 63 85 113 63 87 120 67 85 113 63 85 113 63 87 120 67
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 87 120 67
++85 113 63 98 113 84 85 113 63 87 120 67 85 113 63 85 113 63 87 120 67 85 113 63
++87 120 67 85 113 63 85 113 63 87 120 67 87 120 67 85 113 63 85 113 63 87 120 67
++85 113 63 87 120 67 87 120 67 85 113 63 87 120 67 85 113 63 87 120 67 85 113 63
++85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 87 120 67 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 87 120 67 85 113 63 87 120 67
++85 113 63 85 113 63 85 113 63 75 99 72 85 113 63 85 113 63 81 96 56 85 113 63
++75 99 72 85 113 63 81 96 56 75 99 72 81 96 56 75 99 72 82 107 52 75 99 72
++82 107 52 81 96 56 75 99 72 81 96 56 73 107 51 81 96 56 73 107 51 81 96 56
++82 107 52 75 99 72 70 96 55 81 96 56 81 96 56 81 96 56 70 96 55 82 107 52
++70 96 55 81 96 56 73 107 51 70 96 55 81 96 56 70 96 55 81 96 56 70 96 55
++70 96 55 80 96 46 70 96 55 70 96 55 70 96 55 66 86 47 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 66 86 47 70 96 55 66 86 47 75 77 62 66 86 47
++70 96 55 66 86 47 70 96 55 75 77 62 70 96 55 66 86 47 66 86 47 66 86 47
++66 86 47 70 96 55 66 86 47 66 86 47 66 86 47 64 70 48 57 86 47 64 70 48
++57 86 47 64 70 48 57 86 47 57 86 47 64 70 48 57 86 47 64 70 48 57 86 47
++
++49 74 23 64 97 47 57 86 47 57 86 47 70 96 45 49 74 23 57 86 47 66 86 47
++49 74 23 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 49 74 23 66 86 47
++57 86 47 66 86 47 64 97 47 49 74 23 70 96 45 49 74 23 57 86 47 57 86 47
++64 97 47 66 86 47 70 96 45 57 86 47 70 96 45 66 86 47 57 86 47 70 96 45
++57 86 47 66 86 47 57 86 47 70 96 45 57 86 47 66 86 47 64 97 47 70 96 45
++66 86 47 64 97 47 66 86 47 70 96 45 70 96 45 57 86 47 66 86 47 70 96 45
++64 97 47 81 96 56 70 96 55 81 96 56 81 96 56 70 96 55 80 96 46 70 96 55
++70 96 45 64 97 47 70 96 45 70 96 45 64 97 47 66 86 47 64 97 47 66 86 47
++64 97 47 64 97 47 70 96 45 70 96 55 70 96 55 70 96 45 70 96 55 70 96 45
++70 96 55 70 96 45 70 96 55 70 96 45 73 107 51 70 96 55 73 107 51 70 96 55
++73 107 51 70 96 55 73 107 51 70 96 55 81 96 56 73 107 51 81 96 56 73 107 51
++70 96 55 70 96 45 70 96 45 70 96 55 70 96 45 81 96 56 73 107 51 81 96 56
++73 107 51 81 96 56 73 107 51 73 107 51 81 96 56 73 107 51 73 107 51 73 107 51
++70 96 45 73 107 51 70 96 45 73 107 51 80 96 46 73 107 51 70 96 55 73 107 51
++70 96 45 70 96 55 73 107 51 73 107 51 80 96 46 73 107 51 70 96 45 73 107 51
++70 96 45 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 82 107 52 73 107 51
++85 113 63 73 107 51 85 113 63 82 107 52 73 107 51 73 107 51 85 113 63 73 107 51
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 82 107 52 85 113 63 85 113 63
++85 113 63 82 119 53 85 113 63 85 113 63 82 119 53 85 113 63 87 122 63 85 113 63
++98 126 66 87 122 63 87 122 63 85 113 63 85 113 63 85 113 63 85 113 63 87 122 63
++87 122 63 87 122 63 87 122 63 87 122 63 87 122 63 87 122 63 98 126 66 98 106 55
++87 122 63 87 122 63 87 122 63 82 119 53 82 119 53 87 122 63 87 122 63 87 122 63
++98 126 66 87 122 63 87 122 63 98 106 55 99 133 85 177 171 115 166 180 164 214 214 134
++166 180 164 189 165 168 208 215 180 166 180 164 166 180 164 188 180 202 208 215 180 185 202 202
++166 174 181 189 165 168 208 215 180 225 222 201 166 180 164 112 123 108 65 63 61 33 30 30
++32 39 24 29 35 19 32 39 24 47 49 42 63 55 45 88 73 62 99 93 84 146 151 137
++189 165 168 166 180 164 138 126 108 87 99 72 55 55 48 47 49 42 47 44 42 32 39 24
++32 39 24 47 49 42 55 55 48 64 70 48 63 55 51 64 70 48 55 55 48 32 39 24
++29 35 19 50 61 48 75 99 72 98 113 84 117 127 86 99 133 85 99 133 85 98 132 75
++87 120 67 98 132 75 98 126 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 126 66 98 132 75 98 132 75 98 126 66 98 132 75
++98 132 75 98 132 75 98 132 66 98 132 75 98 126 66 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 126 66 98 132 75 98 132 66
++98 132 75 98 126 66 98 132 75 98 126 66 98 126 66 98 132 66 98 132 66 98 132 75
++87 122 63 98 132 75 87 120 67 98 132 75 87 120 67 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 126 66 98 132 75 98 126 66 87 120 67
++98 126 66 98 126 66 98 126 66 87 120 67 98 126 66 98 132 75 98 132 66 87 120 67
++98 126 66 98 132 75 98 126 66 98 132 75 98 126 66 98 126 66 98 132 75 98 126 66
++98 132 75 98 132 66 98 132 75 98 132 66 117 127 86 98 132 66 98 132 75 98 132 66
++98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75
++98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 75 98 132 75 98 132 75 98 132 66 99 133 85 98 132 75 98 132 66
++99 133 85 98 132 75 98 132 66 99 133 85 98 132 75 98 132 75 98 132 75 98 132 75
++99 133 85 157 148 53 98 132 66 98 132 75 98 132 75 98 132 66 99 133 85 99 133 85
++157 148 53 99 133 85 99 133 85 99 133 85 99 133 85 157 148 53 99 133 85 99 133 85
++157 148 53 117 142 111 98 132 75 99 133 85 157 148 53 98 132 75 98 132 66 117 142 111
++98 132 75 99 133 85 99 133 85 98 132 66 117 142 111 98 132 66 98 132 66 98 132 66
++117 142 111 98 132 66 99 133 85 99 133 85 98 132 75 98 132 75 157 148 53 98 132 66
++99 133 85 99 133 85 98 132 75 99 133 85 157 148 53 98 132 66 99 133 85 98 132 66
++98 132 75 98 132 75 98 132 66 99 133 85 98 132 66 99 133 85 98 132 66 99 133 85
++99 133 85 99 133 85 99 133 85 98 132 75 98 132 66 98 132 66 99 133 85 157 148 53
++98 132 66 98 132 66 99 133 85 99 133 85 99 133 85 99 133 85 98 132 75 99 133 85
++99 133 85 99 133 85 98 132 66 117 142 111 98 132 66 99 133 85 99 133 85 157 148 53
++98 132 66 117 127 86 98 132 75 98 132 75 99 133 85 99 133 85 157 148 53 98 132 75
++99 133 85 98 132 75 99 133 85 99 133 85 157 148 53 99 133 85 99 133 85 99 133 85
++99 133 85 99 133 85 99 133 85 117 127 86 99 133 85 146 162 145 166 180 164 185 202 202
++194 199 226 201 216 228 201 216 228 208 221 247 221 238 247 221 238 247 231 239 247 231 239 247
++231 239 247 231 239 247 240 251 247 235 238 247 240 251 247 231 239 247 240 251 247 231 239 247
++231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 221 238 247 231 239 247
++221 238 247 221 238 247 231 239 247 221 238 247 231 239 247 231 239 247 235 238 247 235 238 247
++235 238 247 240 251 247 240 251 247 251 251 247 233 241 227 185 202 202 146 150 115 99 133 85
++99 133 85 99 133 85 99 133 85 99 133 85 157 148 53 99 133 85 98 132 66 99 133 85
++98 132 66 99 133 85 98 132 66 98 132 75 99 133 85 98 132 75 98 132 75 98 132 75
++99 133 85 157 148 53 98 132 66 98 132 75 98 132 75 98 132 75 99 133 85 157 148 53
++98 132 75 99 133 85 99 133 85 157 148 53 98 132 66 117 142 111 99 133 85 99 133 85
++99 133 85 99 133 85 99 133 85 99 133 85 98 132 66 98 132 75 98 132 66 117 142 111
++98 132 66 117 142 111 98 132 66 117 142 111 98 132 75 99 133 85 99 133 85 157 148 53
++98 132 75 98 132 75 99 133 85 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86
++98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 99 133 85 98 132 75 98 132 75
++98 132 75 99 133 85 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75
++98 132 75 117 127 86 99 133 85 98 132 75 117 127 86 98 132 75 98 132 75 117 127 86
++98 132 75 99 133 85 117 127 86 99 133 85 99 133 85 99 133 85 98 132 75 117 127 86
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 87 120 67 98 132 75 98 126 66
++88 121 82 98 126 66 98 126 66 98 126 66 88 121 82 98 126 66 98 126 66 98 132 75
++98 126 66 98 132 75 98 132 75 98 126 66 98 132 75 98 113 84 98 126 66 98 132 75
++98 126 66 88 121 82 98 126 66 98 132 75 98 132 75 98 126 66 88 121 82 98 132 75
++98 126 66 88 121 82 98 132 75 98 126 66 88 121 82 98 126 66 98 132 75 98 126 66
++98 132 75 98 113 84 98 126 66 88 121 82 98 126 66 98 126 66 88 121 82 87 120 67
++98 113 84 98 126 66 87 120 67 98 126 66 85 113 63 98 113 84 87 120 67 87 120 67
++87 120 67 85 113 63 98 126 66 87 120 67 87 120 67 87 122 63 98 126 66 85 113 63
++87 120 67 87 120 67 85 113 63 85 113 63 87 120 67 85 113 63 87 120 67 85 113 63
++87 120 67 87 120 67 85 113 63 87 120 67 85 113 63 87 120 67 85 113 63 85 113 63
++85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++87 120 67 85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 98 113 84 85 113 63
++85 113 63 85 113 63 85 113 63 87 120 67 85 113 63 87 120 67 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 81 96 56 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63
++87 99 72 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 87 99 72
++85 113 63 75 99 72 85 113 63 75 99 72 81 96 56 85 113 63 75 99 72 85 113 63
++85 113 63 75 99 72 85 113 63 75 99 72 73 107 51 81 96 56 73 107 51 81 96 56
++73 107 51 75 99 72 82 107 52 70 96 55 75 99 72 73 107 51 75 99 72 70 96 55
++81 96 56 70 96 55 81 96 56 70 96 55 73 107 51 75 99 72 81 96 56 70 96 55
++81 96 56 70 96 55 81 96 56 70 96 55 81 96 56 70 96 55 70 96 55 81 96 56
++70 96 55 70 96 55 70 96 55 80 96 46 70 96 55 81 96 56 70 96 55 75 77 62
++70 96 55 70 96 55 70 96 55 70 96 55 66 86 47 66 86 47 70 96 55 75 77 62
++70 96 55 75 77 62 70 96 55 75 77 62 66 86 47 70 96 55 70 96 55 66 86 47
++70 96 55 66 86 47 70 96 55 70 96 55 66 86 47 70 96 55 66 86 47 66 86 47
++70 96 55 66 86 47 66 86 47 59 79 61 66 86 47 57 86 47 64 70 48 57 86 47
++57 86 47 64 70 48 57 86 47 64 70 48 66 86 47 57 86 47 64 70 48 57 86 47
++
++57 86 47 57 86 47 57 86 47 49 74 23 66 86 47 57 86 47 66 86 47 57 86 47
++66 86 47 57 86 47 49 74 23 57 86 47 49 74 23 57 86 47 57 86 47 57 86 47
++57 86 47 57 86 47 57 86 47 66 86 47 57 86 47 66 86 47 70 96 45 66 86 47
++57 86 47 66 86 47 66 86 47 57 86 47 66 86 47 57 86 47 66 86 47 57 86 47
++66 86 47 57 86 47 66 86 47 57 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 70 96 55 64 97 47 66 86 47 70 96 45 70 96 45 70 96 45
++70 96 55 70 96 55 73 107 51 81 96 56 70 96 55 81 96 56 70 96 55 70 96 45
++70 96 55 66 86 47 70 96 45 66 86 47 64 97 47 70 96 45 64 97 47 70 96 45
++64 97 47 66 86 47 70 96 55 70 96 45 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 45 70 96 55 70 96 55 70 96 55 70 96 55 70 96 45 70 96 55 70 96 55
++70 96 55 81 96 56 70 96 55 70 96 55 73 107 51 70 96 55 70 96 55 73 107 51
++81 96 56 73 107 51 70 96 55 73 107 51 70 96 55 73 107 51 73 107 51 70 96 55
++73 107 51 73 107 51 81 96 56 73 107 51 73 107 51 73 107 51 81 96 56 73 107 51
++73 107 51 80 96 46 70 96 55 73 107 51 70 96 55 73 107 51 70 96 55 73 107 51
++70 96 55 73 107 51 81 96 56 73 107 51 70 96 55 73 107 51 73 107 51 73 107 51
++73 107 51 70 96 45 70 96 55 81 96 56 85 113 63 73 107 51 85 113 63 85 113 63
++73 107 51 85 113 63 73 107 51 85 113 63 73 107 51 85 113 63 73 107 51 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 87 122 63 87 122 63
++85 113 63 85 113 63 85 113 63 85 113 63 87 122 63 87 122 63 98 106 55 87 122 63
++85 113 63 98 126 66 85 113 63 98 126 66 87 120 67 98 126 66 87 120 67 87 120 67
++87 120 67 85 113 63 82 119 53 85 113 63 85 113 63 85 113 63 87 122 63 87 120 67
++87 120 67 85 113 63 98 106 55 98 113 84 146 150 115 166 180 164 208 215 180 166 180 164
++166 180 164 208 215 180 166 180 164 189 165 168 208 215 180 208 215 180 208 215 180 189 165 168
++146 151 137 146 151 137 188 180 202 166 156 164 117 99 86 42 47 42 32 39 24 51 49 42
++51 49 42 47 49 42 51 49 42 75 73 58 75 77 62 64 70 48 63 55 45 99 93 84
++146 150 115 146 162 145 141 116 139 99 93 84 52 55 48 26 25 15 15 17 7 15 17 7
++34 30 15 75 77 62 98 113 84 88 83 74 52 55 48 23 31 15 23 31 15 29 35 19
++49 74 23 66 86 47 87 120 67 98 132 75 98 132 75 98 126 66 98 132 75 98 126 66
++98 132 75 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 98 132 75 98 132 75
++117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 126 66 98 132 75
++98 126 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 126 66 98 132 75
++87 122 63 98 126 66 87 122 63 98 132 66 87 120 67 98 132 75 87 120 67 98 132 66
++98 126 66 98 132 75 98 126 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 87 120 67 98 126 66 88 121 82
++98 126 66 87 120 67 98 126 66 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75
++98 126 66 98 126 66 98 126 66 98 126 66 98 132 75 98 132 66 98 126 66 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 98 132 66
++98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75
++98 132 75 98 132 75 98 132 66 117 127 86 98 132 66 117 127 86 98 132 75 117 142 111
++98 132 66 157 148 53 99 133 85 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 99 133 85 98 132 75 98 132 75 99 133 85 98 132 66 99 133 85
++99 133 85 99 133 85 98 132 75 99 133 85 99 133 85 99 133 85 99 133 85 99 133 85
++99 133 85 98 132 66 99 133 85 99 133 85 99 133 85 99 133 85 98 132 75 157 148 53
++98 132 75 98 132 75 98 132 75 98 132 66 98 132 66 98 132 66 99 133 85 157 148 53
++98 132 66 98 132 66 99 133 85 98 132 66 98 132 75 98 132 75 99 133 85 98 132 75
++99 133 85 98 132 66 117 142 111 98 132 66 99 133 85 99 133 85 99 133 85 117 142 111
++98 132 66 117 142 111 98 132 66 117 142 111 98 132 66 157 148 53 99 133 85 99 133 85
++98 132 66 117 142 111 98 132 66 157 148 53 99 133 85 99 133 85 98 132 75 99 133 85
++99 133 85 99 133 85 117 142 111 98 132 66 98 132 75 157 148 53 99 133 85 99 133 85
++98 132 66 157 148 53 99 133 85 98 132 66 157 148 53 99 133 85 99 133 85 99 133 85
++99 133 85 98 132 66 98 132 75 99 133 85 98 132 66 99 133 85 99 133 85 99 133 85
++98 132 66 99 133 85 98 132 66 98 132 75 99 133 85 98 132 75 98 132 75 98 132 75
++98 132 75 117 127 86 99 133 85 99 133 85 99 133 85 117 142 111 146 162 145 185 202 202
++185 202 202 201 216 228 201 216 228 208 221 247 221 238 247 221 238 247 231 239 247 231 239 247
++231 239 247 240 251 247 231 239 247 240 251 247 235 238 247 240 251 247 231 239 247 240 251 247
++231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 231 239 247 221 238 247 231 239 247 231 239 247 231 239 247
++235 238 247 246 237 247 240 251 247 251 251 247 240 251 247 185 202 202 121 143 132 99 133 85
++99 133 85 99 133 85 98 132 75 99 133 85 99 133 85 98 132 75 99 133 85 98 132 75
++98 132 75 98 132 66 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75
++98 132 75 99 133 85 98 132 75 98 132 75 98 132 75 99 133 85 98 132 75 99 133 85
++99 133 85 98 132 75 99 133 85 99 133 85 99 133 85 98 132 66 99 133 85 157 148 53
++99 133 85 99 133 85 98 132 75 157 148 53 99 133 85 117 142 111 98 132 66 98 132 66
++98 132 75 98 132 66 98 132 66 98 132 66 98 132 66 98 132 75 99 133 85 99 133 85
++99 133 85 98 132 75 117 127 86 98 132 66 117 127 86 98 132 75 98 132 75 99 133 85
++98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75
++117 127 86 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 99 133 85 98 132 75
++117 127 86 98 132 75 98 132 75 117 127 86 98 132 75 99 133 85 117 127 86 98 132 75
++99 133 85 117 127 86 98 132 75 99 133 85 117 127 86 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 126 66 88 121 82 98 126 66 98 132 75 87 120 67 98 132 75
++98 132 75 98 126 66 88 121 82 98 126 66 98 132 75 98 126 66 88 121 82 98 126 66
++98 132 75 98 126 66 98 126 66 88 121 82 98 126 66 98 126 66 98 132 75 98 126 66
++88 121 82 98 132 75 98 126 66 88 121 82 98 126 66 98 132 75 98 126 66 88 121 82
++98 132 75 98 132 75 98 126 66 88 121 82 98 132 75 88 121 82 98 132 75 88 121 82
++98 126 66 98 126 66 88 121 82 98 126 66 98 126 66 88 121 82 98 126 66 98 126 66
++87 120 67 98 126 66 98 113 84 87 120 67 98 126 66 87 120 67 87 120 67 98 126 66
++87 120 67 98 126 66 85 113 63 98 126 66 85 113 63 98 126 66 85 113 63 87 120 67
++98 126 66 85 113 63 87 120 67 85 113 63 87 120 67 87 120 67 85 113 63 98 113 84
++87 120 67 85 113 63 87 120 67 87 120 67 98 113 84 85 113 63 85 113 63 87 120 67
++85 113 63 87 120 67 85 113 63 87 120 67 85 113 63 87 120 67 85 113 63 87 120 67
++85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 87 120 67 85 113 63 85 113 63 85 113 63
++87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 87 99 72 73 107 51 85 113 63 73 107 51 85 113 63 81 96 56
++85 113 63 85 113 63 87 99 72 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++82 107 52 85 113 63 75 99 72 85 113 63 85 113 63 87 99 72 85 113 63 85 113 63
++81 96 56 85 113 63 81 96 56 82 107 52 75 99 72 85 113 63 81 96 56 85 113 63
++81 96 56 85 113 63 75 99 72 82 107 52 75 99 72 73 107 51 75 99 72 81 96 56
++75 99 72 73 107 51 81 96 56 70 96 55 81 96 56 70 96 55 81 96 56 73 107 51
++81 96 56 73 107 51 81 96 56 81 96 56 81 96 56 70 96 55 73 107 51 70 96 55
++81 96 56 73 107 51 81 96 56 81 96 56 73 107 51 81 96 56 70 96 55 70 96 55
++81 96 56 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 75 77 62 70 96 55 70 96 55 66 86 47 70 96 55 70 96 55
++70 96 55 70 96 55 66 86 47 70 96 55 70 96 55 75 77 62 66 86 47 70 96 55
++75 77 62 70 96 55 75 77 62 70 96 55 66 86 47 70 96 55 66 86 47 66 86 47
++70 96 55 59 79 61 66 86 47 66 86 47 66 86 47 57 86 47 57 86 47 64 70 48
++57 86 47 66 86 47 57 86 47 57 86 47 57 86 47 64 70 48 57 86 47 59 79 61
++
++51 73 47 49 74 23 66 86 47 57 86 47 57 86 47 57 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 57 86 47 57 86 47 57 86 47 49 74 23 66 86 47 49 74 23
++57 86 47 57 86 47 66 86 47 57 86 47 57 86 47 57 86 47 66 86 47 57 86 47
++66 86 47 66 86 47 64 97 47 66 86 47 64 97 47 66 86 47 66 86 47 64 97 47
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 57 86 47
++64 97 47 66 86 47 70 96 55 66 86 47 64 97 47 70 96 45 64 97 47 66 86 47
++64 97 47 70 96 45 81 96 56 70 96 55 81 96 56 70 96 45 70 96 55 70 96 55
++70 96 45 70 96 55 66 86 47 64 97 47 66 86 47 70 96 55 64 97 47 66 86 47
++70 96 55 70 96 45 64 97 47 64 97 47 70 96 55 70 96 45 70 96 55 70 96 45
++70 96 55 70 96 45 70 96 45 70 96 45 70 96 45 70 96 55 70 96 45 70 96 55
++70 96 45 70 96 55 70 96 45 70 96 55 70 96 55 73 107 51 70 96 55 70 96 55
++70 96 55 70 96 45 70 96 55 70 96 45 73 107 51 70 96 55 70 96 55 73 107 51
++73 107 51 81 96 56 73 107 51 73 107 51 81 96 56 82 107 52 70 96 55 73 107 51
++70 96 45 73 107 51 70 96 55 73 107 51 81 96 56 73 107 51 70 96 55 82 107 52
++70 96 55 73 107 51 70 96 55 73 107 51 81 96 56 73 107 51 81 96 56 73 107 51
++70 96 55 73 107 51 73 107 51 73 107 51 70 96 55 85 113 63 73 107 51 85 113 63
++73 107 51 81 96 56 82 107 52 75 99 72 73 107 51 85 113 63 73 107 51 75 99 72
++73 107 51 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 82 119 53 85 113 63
++82 107 52 85 113 63 85 113 63 82 119 53 85 113 63 82 119 53 85 113 63 87 122 63
++85 113 63 87 122 63 85 113 63 85 113 63 85 113 63 85 113 63 87 122 63 85 113 63
++87 120 67 85 113 63 87 120 67 87 120 67 87 120 67 87 120 67 98 126 66 87 120 67
++87 120 67 87 122 63 87 122 63 85 113 63 87 122 63 85 113 63 85 113 63 87 122 63
++87 120 67 85 113 63 85 113 63 146 150 115 166 180 164 166 180 164 177 169 143 166 180 164
++189 165 168 166 180 164 189 165 168 166 180 164 189 165 168 185 202 202 225 222 201 166 180 164
++112 123 108 90 98 89 146 150 115 112 123 108 75 81 69 32 39 24 36 35 37 52 55 48
++64 70 48 88 73 62 94 105 108 146 150 115 146 151 137 99 93 84 75 77 62 75 73 58
++88 83 74 112 123 108 112 123 108 75 77 62 32 39 24 15 17 7 15 17 7 32 39 24
++55 55 48 99 93 84 99 93 84 64 70 48 32 39 24 22 24 13 47 47 21 64 70 48
++81 96 56 98 113 84 99 133 85 98 113 84 87 120 67 98 126 66 98 113 84 98 132 75
++98 132 75 87 120 67 98 126 66 88 121 82 98 126 66 98 113 84 98 132 75 98 126 66
++98 132 75 98 126 66 98 132 75 98 132 75 98 126 66 98 113 84 98 132 75 98 126 66
++98 132 75 98 126 66 98 126 66 98 132 75 98 126 66 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 66 98 132 66 98 132 75 98 126 66 98 132 75 98 126 66 98 126 66
++98 132 66 87 120 67 98 132 66 87 120 67 98 132 66 98 126 66 98 132 66 87 120 67
++98 132 75 87 120 67 98 132 75 87 120 67 98 132 75 98 132 75 98 132 75 98 132 75
++88 121 82 98 126 66 98 132 75 88 121 82 98 126 66 98 132 75 98 132 75 98 126 66
++87 120 67 98 132 75 98 126 66 87 120 67 98 126 66 98 132 75 98 126 66 98 126 66
++98 132 75 98 126 66 98 132 75 98 132 66 98 132 75 98 126 66 98 132 75 98 126 66
++98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 126 66 98 132 75 98 132 75 98 132 75 98 126 66 98 132 75 98 126 66
++98 132 75 98 126 66 98 132 75 98 132 66 98 132 66 98 126 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 66 98 132 66
++98 132 75 99 133 85 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 66 99 133 85 157 148 53 98 132 75 98 132 75 99 133 85 157 148 53
++98 132 75 98 132 75 98 132 75 99 133 85 157 148 53 99 133 85 99 133 85 157 148 53
++98 132 66 117 142 111 99 133 85 157 148 53 99 133 85 98 132 75 99 133 85 99 133 85
++99 133 85 98 132 66 99 133 85 98 132 75 99 133 85 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 157 148 53 98 132 75 98 132 66 98 132 66 98 132 66
++117 142 111 98 132 66 98 132 66 98 132 66 99 133 85 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 99 133 85 99 133 85 99 133 85 99 133 85
++157 148 53 98 132 66 99 133 85 99 133 85 98 132 75 99 133 85 98 132 66 99 133 85
++98 132 66 98 132 66 98 132 66 98 132 75 99 133 85 99 133 85 99 133 85 157 148 53
++99 133 85 99 133 85 99 133 85 99 133 85 99 133 85 99 133 85 98 132 75 99 133 85
++98 132 66 99 133 85 99 133 85 157 148 53 99 133 85 98 132 75 98 132 75 98 132 75
++98 132 75 99 133 85 157 148 53 98 132 75 98 132 66 99 133 85 157 148 53 98 132 75
++98 132 75 98 132 66 98 132 75 99 133 85 98 132 75 117 127 86 121 143 132 166 180 164
++185 202 202 194 199 226 201 216 228 201 216 228 208 221 247 221 238 247 221 238 247 231 239 247
++231 239 247 240 251 247 235 238 247 240 251 247 240 251 247 240 251 247 240 251 247 231 239 247
++240 251 247 231 239 247 231 239 247 231 239 247 240 251 247 231 239 247 240 251 247 231 239 247
++240 251 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 235 238 247
++235 238 247 235 238 247 240 251 247 240 251 247 231 239 247 225 222 201 146 162 145 112 123 108
++99 133 85 99 133 85 99 133 85 98 132 66 98 132 75 98 132 75 99 133 85 157 148 53
++99 133 85 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 99 133 85
++98 132 75 98 132 75 99 133 85 99 133 85 99 133 85 98 132 75 99 133 85 99 133 85
++99 133 85 98 132 75 99 133 85 99 133 85 98 132 75 98 132 66 98 132 75 99 133 85
++99 133 85 157 148 53 98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 66 99 133 85 98 132 66 99 133 85 98 132 66 117 127 86
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 99 133 85
++98 132 75 117 127 86 99 133 85 98 132 75 117 127 86 98 132 75 98 132 75 117 127 86
++98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 117 127 86 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 87 120 67 98 132 75 98 132 75 88 121 82
++98 126 66 98 132 75 98 126 66 98 132 75 87 120 67 98 132 75 98 126 66 98 132 75
++98 126 66 88 121 82 87 120 67 98 126 66 98 126 66 98 132 75 87 120 67 98 126 66
++98 126 66 88 121 82 98 126 66 88 121 82 98 126 66 88 121 82 98 132 75 98 126 66
++88 121 82 98 126 66 88 121 82 98 126 66 98 126 66 98 132 75 87 120 67 98 126 66
++98 132 75 98 113 84 98 126 66 98 126 66 98 113 84 98 126 66 87 120 67 87 120 67
++87 120 67 87 120 67 98 126 66 87 120 67 98 113 84 87 120 67 98 113 84 87 120 67
++87 120 67 87 120 67 98 126 66 85 113 63 98 126 66 85 113 63 87 120 67 87 120 67
++85 113 63 98 126 66 85 113 63 85 113 63 98 113 84 87 120 67 98 126 66 87 120 67
++85 113 63 98 126 66 98 113 84 87 120 67 87 120 67 85 113 63 87 120 67 87 120 67
++85 113 63 98 113 84 87 120 67 85 113 63 98 113 84 87 120 67 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 87 99 72 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 87 99 72 87 120 67 85 113 63 87 120 67 87 99 72 87 120 67 85 113 63
++85 113 63 82 107 52 85 113 63 85 113 63 73 107 51 85 113 63 73 107 51 85 113 63
++85 113 63 82 107 52 85 113 63 85 113 63 85 113 63 81 96 56 85 113 63 81 96 56
++85 113 63 85 113 63 85 113 63 85 113 63 82 107 52 85 113 63 82 107 52 75 99 72
++73 107 51 85 113 63 70 96 55 85 113 63 82 107 52 75 99 72 81 96 56 75 99 72
++85 113 63 75 99 72 82 107 52 75 99 72 73 107 51 75 99 72 81 96 56 73 107 51
++81 96 56 70 96 55 75 99 72 73 107 51 75 99 72 73 107 51 81 96 56 75 99 72
++70 96 55 81 96 56 75 99 72 73 107 51 70 96 55 81 96 56 70 96 55 81 96 56
++70 96 55 81 96 56 75 99 72 73 107 51 75 99 72 81 96 56 70 96 55 81 96 56
++70 96 55 70 96 55 70 96 45 81 96 56 70 96 55 70 96 55 70 96 55 81 96 56
++70 96 55 70 96 55 70 96 55 66 86 47 70 96 55 75 77 62 66 86 47 70 96 55
++75 77 62 66 86 47 70 96 55 75 77 62 70 96 55 66 86 47 70 96 55 70 96 55
++66 86 47 70 96 55 66 86 47 70 96 55 75 81 69 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++64 70 48 57 86 47 64 70 48 57 86 47 64 70 48 57 86 47 64 70 48 57 86 47
++
++49 74 23 66 86 47 57 86 47 66 86 47 57 86 47 66 86 47 57 86 47 66 86 47
++57 86 47 57 86 47 57 86 47 49 74 23 66 86 47 57 86 47 57 86 47 57 86 47
++66 86 47 49 74 23 57 86 47 75 73 36 57 86 47 66 86 47 66 86 47 66 86 47
++64 97 47 66 86 47 66 86 47 66 86 47 66 86 47 64 97 47 66 86 47 66 86 47
++64 97 47 64 97 47 66 86 47 64 97 47 66 86 47 64 97 47 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 70 96 55 66 86 47 70 96 55 66 86 47 70 96 55
++64 97 47 70 96 55 70 96 55 70 96 45 70 96 55 70 96 55 70 96 55 70 96 45
++70 96 55 64 97 47 66 86 47 64 97 47 66 86 47 64 97 47 66 86 47 64 97 47
++70 96 55 66 86 47 70 96 55 70 96 55 70 96 45 70 96 55 70 96 55 70 96 45
++70 96 55 70 96 45 70 96 55 70 96 55 70 96 55 70 96 45 70 96 55 70 96 45
++70 96 55 64 97 47 70 96 55 70 96 45 64 97 47 66 86 47 70 96 45 70 96 45
++64 97 47 70 96 55 70 96 45 70 96 55 70 96 55 70 96 45 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 81 96 56 73 107 51 73 107 51 81 96 56 73 107 51
++81 96 56 70 96 45 73 107 51 70 96 55 73 107 51 70 96 55 73 107 51 81 96 56
++73 107 51 81 96 56 73 107 51 73 107 51 70 96 55 73 107 51 70 96 55 73 107 51
++81 96 56 73 107 51 81 96 56 85 113 63 73 107 51 85 113 63 70 96 55 85 113 63
++70 96 55 85 113 63 73 107 51 85 113 63 73 107 51 85 113 63 73 107 51 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 73 107 51 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 87 122 63 85 113 63 87 122 63
++85 113 63 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 87 120 67
++87 120 67 85 113 63 85 113 63 82 119 53 85 113 63 85 113 63 85 113 63 85 113 63
++82 107 52 85 113 63 117 127 86 146 162 145 214 214 134 166 180 164 166 180 164 189 165 168
++166 180 164 166 180 164 177 169 143 208 215 180 208 215 180 189 165 168 208 215 180 185 202 202
++168 146 127 94 105 108 75 81 69 65 63 61 65 63 61 59 55 55 53 63 61 63 55 51
++64 70 48 87 99 72 138 126 108 166 180 164 189 165 168 150 171 159 138 126 108 90 98 89
++63 55 45 64 70 48 75 73 58 63 55 45 32 39 24 47 49 42 64 70 48 65 63 61
++50 61 48 55 55 48 47 49 42 32 39 24 32 39 24 49 74 23 66 86 47 87 99 72
++98 132 75 98 113 84 98 126 66 98 126 66 98 126 66 98 132 75 98 126 66 98 126 66
++98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 98 132 75
++98 126 66 88 121 82 98 132 75 98 126 66 98 132 75 98 132 75 98 126 66 98 132 75
++98 113 84 98 132 75 98 132 75 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75
++98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 87 120 67
++87 120 67 98 126 66 87 120 67 98 132 75 87 120 67 98 132 75 87 120 67 98 132 66
++98 126 66 98 132 75 87 120 67 98 132 75 98 132 75 98 126 66 98 132 75 98 132 75
++98 132 75 98 132 75 87 120 67 98 132 75 98 126 66 87 120 67 87 120 67 98 126 66
++88 121 82 87 120 67 98 126 66 98 126 66 98 132 75 87 120 67 98 132 75 98 126 66
++98 126 66 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 117 127 86 98 132 66 98 132 75
++98 132 75 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 87 120 67 98 126 66
++87 120 67 98 132 75 98 126 66 98 132 75 98 132 66 98 126 66 98 126 66 98 132 75
++98 132 66 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 99 133 85 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 99 133 85 99 133 85 98 132 75 99 133 85 98 132 75
++99 133 85 99 133 85 157 148 53 99 133 85 99 133 85 99 133 85 117 142 111 99 133 85
++117 142 111 98 132 66 98 132 66 117 142 111 98 132 66 117 142 111 98 132 66 99 133 85
++98 132 75 99 133 85 98 132 66 117 142 111 98 132 66 98 132 66 99 133 85 98 132 66
++98 132 75 98 132 75 98 132 66 99 133 85 98 132 75 98 132 75 98 132 75 98 132 66
++98 132 66 98 132 66 117 142 111 98 132 66 98 132 75 117 142 111 98 132 66 98 132 75
++117 142 111 98 132 66 117 142 111 98 132 66 98 132 66 99 133 85 98 132 66 117 142 111
++98 132 66 99 133 85 98 132 66 99 133 85 99 133 85 157 148 53 99 133 85 98 132 75
++117 142 111 98 132 66 117 142 111 98 132 66 99 133 85 98 132 66 99 133 85 99 133 85
++99 133 85 98 132 66 98 132 75 99 133 85 98 132 66 117 142 111 98 132 66 157 148 53
++99 133 85 98 132 75 99 133 85 99 133 85 98 132 75 98 132 75 99 133 85 157 148 53
++99 133 85 98 132 75 99 133 85 99 133 85 98 132 66 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 99 133 85 98 132 75 99 133 85 99 133 85 117 142 111 146 151 137
++166 174 181 201 216 228 201 216 228 201 216 228 208 221 247 221 238 247 221 238 247 231 239 247
++231 239 247 240 251 247 240 251 247 240 251 247 235 238 247 240 251 247 235 238 247 231 239 247
++233 241 227 231 239 247 231 239 247 231 239 247 221 238 247 231 239 247 221 238 247 221 238 247
++221 238 247 221 238 247 231 239 247 221 238 247 231 239 247 221 238 247 231 239 247 231 239 247
++240 251 247 235 238 247 240 251 247 240 251 247 240 251 247 201 216 228 146 162 145 117 142 111
++87 120 67 99 133 85 98 132 75 98 132 75 99 133 85 98 132 75 98 132 75 99 133 85
++98 132 75 98 132 66 98 132 75 117 127 86 98 132 66 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 99 133 85 98 132 75 98 132 75
++99 133 85 98 132 75 99 133 85 98 132 66 117 127 86 98 132 75 99 133 85 98 132 66
++99 133 85 98 132 66 99 133 85 98 132 75 99 133 85 98 132 75 117 142 111 98 132 66
++98 132 75 99 133 85 99 133 85 98 132 66 98 132 75 98 132 75 98 132 75 99 133 85
++98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75
++98 132 75 117 127 86 98 132 66 117 127 86 98 132 66 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86
++98 132 75 98 132 75 117 127 86 98 132 75 99 133 85 98 132 75 98 132 75 98 132 75
++117 127 86 98 132 75 99 133 85 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75
++98 126 66 98 126 66 98 126 66 98 126 66 98 132 75 87 120 67 98 132 75 98 132 66
++98 132 75 88 121 82 98 132 75 98 126 66 98 132 75 88 121 82 98 126 66 88 121 82
++98 126 66 98 132 75 98 126 66 87 120 67 87 120 67 88 121 82 98 126 66 88 121 82
++98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 98 126 66 88 121 82 98 126 66
++98 132 75 87 120 67 98 132 75 87 120 67 88 121 82 98 126 66 88 121 82 98 126 66
++88 121 82 98 126 66 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 98 113 84
++87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 87 120 67
++98 126 66 85 113 63 87 120 67 87 120 67 87 120 67 98 126 66 87 120 67 98 126 66
++85 113 63 85 113 63 87 120 67 98 126 66 85 113 63 98 126 66 85 113 63 87 120 67
++98 126 66 87 120 67 87 120 67 98 126 66 87 120 67 98 113 84 85 113 63 98 126 66
++87 120 67 87 120 67 87 120 67 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 73 107 51 75 99 72 85 113 63 85 113 63 75 99 72
++82 107 52 85 113 63 81 96 56 82 107 52 85 113 63 73 107 51 85 113 63 82 107 52
++85 113 63 82 107 52 85 113 63 82 107 52 75 99 72 82 107 52 75 99 72 82 107 52
++85 113 63 70 96 55 85 113 63 70 96 55 75 99 72 82 107 52 85 113 63 82 107 52
++75 99 72 82 107 52 75 99 72 82 107 52 81 96 56 70 96 55 73 107 51 75 99 72
++70 96 55 73 107 51 70 96 55 81 96 56 73 107 51 81 96 56 70 96 55 73 107 51
++81 96 56 73 107 51 70 96 55 81 96 56 73 107 51 81 96 56 70 96 55 73 107 51
++81 96 56 70 96 55 70 96 55 81 96 56 73 107 51 81 96 56 73 107 51 70 96 55
++70 96 55 81 96 56 70 96 55 70 96 55 66 86 47 81 96 56 70 96 55 70 96 55
++70 96 55 81 96 56 70 96 55 70 96 55 66 86 47 70 96 55 66 86 47 70 96 55
++66 86 47 70 96 55 70 96 55 66 86 47 70 96 55 66 86 47 66 86 47 70 96 55
++66 86 47 70 96 55 66 86 47 70 96 55 66 86 47 70 96 55 66 86 47 66 86 47
++66 86 47 66 86 47 59 79 61 66 86 47 66 86 47 57 86 47 66 86 47 57 86 47
++64 70 48 57 86 47 64 70 48 57 86 47 66 86 47 57 86 47 59 79 61 57 86 47
++
++49 74 23 57 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 57 86 47 57 86 47 49 74 23 57 86 47
++57 86 47 57 86 47 51 73 47 57 86 47 57 86 47 57 86 47 66 86 47 66 86 47
++66 86 47 70 96 55 66 86 47 64 97 47 70 96 55 66 86 47 64 97 47 70 96 55
++57 86 47 70 96 55 64 97 47 66 86 47 70 96 55 66 86 47 66 86 47 70 96 55
++66 86 47 66 86 47 64 97 47 70 96 55 70 96 55 66 86 47 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 64 97 47 66 86 47 70 96 55 66 86 47 70 96 55 66 86 47
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++64 97 47 70 96 55 66 86 47 64 97 47 66 86 47 66 86 47 64 97 47 70 96 55
++70 96 45 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 45 70 96 55
++70 96 55 73 107 51 70 96 55 73 107 51 81 96 56 73 107 51 81 96 56 73 107 51
++70 96 55 73 107 51 70 96 55 80 96 46 70 96 55 80 96 46 70 96 55 73 107 51
++82 107 52 70 96 55 85 113 63 81 96 56 85 113 63 82 107 52 82 107 52 70 96 55
++73 107 51 70 96 55 73 107 51 73 107 51 85 113 63 75 99 72 73 107 51 85 113 63
++73 107 51 70 96 55 85 113 63 70 96 55 85 113 63 75 99 72 73 107 51 85 113 63
++85 113 63 73 107 51 85 113 63 73 107 51 85 113 63 73 107 51 85 113 63 73 107 51
++85 113 63 73 107 51 85 113 63 85 113 63 85 113 63 85 113 63 82 107 52 85 113 63
++82 107 52 82 107 52 85 113 63 85 113 63 85 113 63 98 106 55 85 113 63 85 113 63
++85 113 63 87 120 67 87 120 67 85 113 63 87 120 67 85 113 63 98 126 66 85 113 63
++87 122 63 85 113 63 82 119 53 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++81 96 56 98 132 75 146 150 115 166 180 164 166 180 164 166 180 164 166 180 164 208 215 180
++177 169 143 166 180 164 189 165 168 166 180 164 166 180 164 146 151 137 177 169 143 189 165 168
++166 156 164 98 113 84 55 39 37 32 39 24 47 49 42 55 55 48 55 55 48 52 55 48
++55 55 48 75 73 58 94 105 108 138 126 108 166 180 164 189 165 168 166 180 164 112 123 108
++75 73 58 32 39 24 29 35 19 32 39 24 75 77 62 99 93 84 112 123 108 75 81 69
++32 39 24 23 31 15 23 31 15 32 39 24 51 73 47 81 96 56 87 120 67 98 113 84
++98 132 75 98 126 66 87 120 67 87 120 67 98 126 66 87 120 67 98 126 66 98 132 75
++98 126 66 98 132 75 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 88 121 82
++98 126 66 98 132 75 98 132 75 98 113 84 98 132 75 98 126 66 88 121 82 98 126 66
++98 126 66 98 126 66 98 126 66 98 132 75 98 126 66 98 132 75 98 113 84 98 132 75
++98 132 75 98 132 75 98 126 66 98 132 75 98 132 75 88 121 82 98 132 75 98 126 66
++98 132 75 87 120 67 98 132 75 87 120 67 98 132 75 98 126 66 87 120 67 98 126 66
++88 121 82 98 126 66 98 126 66 88 121 82 98 126 66 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 87 120 67 98 132 75 98 126 66 98 126 66 87 120 67
++98 126 66 87 120 67 87 120 67 87 120 67 98 126 66 98 126 66 98 132 75 87 120 67
++98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 98 132 75 98 132 75 98 132 75
++98 126 66 98 132 75 98 126 66 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75
++98 126 66 98 132 75 98 126 66 98 132 75 98 132 75 98 132 75 87 120 67 98 132 75
++98 132 75 98 132 75 87 120 67 98 132 75 87 120 67 98 132 75 98 126 66 98 126 66
++98 126 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 117 127 86 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 99 133 85 98 132 66 99 133 85
++98 132 66 99 133 85 99 133 85 99 133 85 99 133 85 99 133 85 98 132 66 99 133 85
++98 132 75 98 132 66 117 142 111 98 132 66 99 133 85 98 132 66 98 132 75 99 133 85
++98 132 66 99 133 85 98 132 66 98 132 66 98 132 66 98 132 75 98 132 75 98 132 75
++98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75
++98 132 75 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 117 142 111 98 132 66 99 133 85 98 132 66
++98 132 75 98 132 66 117 142 111 98 132 75 99 133 85 99 133 85 99 133 85 98 132 66
++98 132 75 98 132 66 99 133 85 157 148 53 99 133 85 99 133 85 98 132 75 98 132 75
++98 132 75 98 132 66 99 133 85 157 148 53 98 132 66 98 132 66 98 132 75 99 133 85
++98 132 75 99 133 85 157 148 53 98 132 66 117 142 111 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 66 98 132 75 99 133 85 98 132 75 98 132 75 98 132 66
++98 132 75 98 132 75 98 132 75 99 133 85 98 132 75 98 132 75 99 133 85 117 142 111
++150 171 159 185 202 202 185 202 202 201 216 228 201 216 228 208 221 247 221 238 247 231 239 247
++231 239 247 231 239 247 231 239 247 240 251 247 235 238 247 235 238 247 233 241 227 233 241 227
++231 239 247 233 241 227 233 241 227 233 241 227 232 215 228 233 241 227 232 215 228 225 222 201
++201 216 228 233 241 227 201 216 228 221 238 247 221 238 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 235 238 247 240 251 247 251 251 247 201 216 228 166 180 164 112 123 108
++98 132 75 99 133 85 98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 66 99 133 85 98 132 75 98 132 75 98 132 75 98 132 66 98 132 66 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 117 127 86 98 132 75
++98 132 75 99 133 85 157 148 53 99 133 85 98 132 75 98 132 75 98 132 75 99 133 85
++98 132 66 117 127 86 98 132 75 98 132 75 98 132 75 98 132 66 98 132 66 98 132 66
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 117 127 86
++98 132 75 98 132 75 98 132 66 117 127 86 98 132 75 98 132 75 98 132 75 117 127 86
++98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 98 132 75
++99 133 85 99 133 85 98 132 75 99 133 85 99 133 85 99 133 85 117 127 86 98 132 75
++98 132 75 98 132 66 117 127 86 98 132 75 99 133 85 98 132 75 98 132 75 98 132 75
++98 126 66 98 132 75 88 121 82 87 120 67 98 132 75 98 126 66 98 132 75 87 120 67
++98 132 75 98 126 66 98 132 75 88 121 82 98 132 75 98 126 66 98 132 75 98 132 75
++98 126 66 88 121 82 98 126 66 98 113 84 98 126 66 88 121 82 98 132 75 88 121 82
++98 126 66 88 121 82 87 120 67 98 126 66 88 121 82 87 120 67 98 126 66 88 121 82
++98 126 66 88 121 82 98 126 66 98 126 66 88 121 82 98 126 66 98 126 66 87 120 67
++98 126 66 87 120 67 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66
++87 120 67 87 120 67 98 126 66 87 120 67 87 120 67 98 113 84 87 120 67 98 113 84
++87 120 67 85 113 63 98 126 66 87 120 67 98 126 66 87 120 67 87 120 67 87 120 67
++85 113 63 98 126 66 85 113 63 87 120 67 85 113 63 87 120 67 98 126 66 87 120 67
++87 120 67 98 126 66 98 113 84 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67
++98 113 84 98 126 66 85 113 63 87 120 67 87 120 67 85 113 63 98 113 84 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 87 120 67
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 73 107 51 85 113 63 85 113 63 82 107 52 85 113 63 73 107 51 85 113 63
++73 107 51 85 113 63 73 107 51 85 113 63 73 107 51 82 107 52 82 107 52 73 107 51
++82 107 52 73 107 51 85 113 63 73 107 51 85 113 63 82 107 52 73 107 51 85 113 63
++70 96 55 82 107 52 70 96 55 70 96 55 85 113 63 73 107 51 75 99 72 81 96 56
++85 113 63 81 96 56 82 107 52 75 99 72 81 96 56 70 96 55 70 96 55 70 96 55
++81 96 56 70 96 55 81 96 56 70 96 55 75 99 72 70 96 55 70 96 55 70 96 55
++73 107 51 70 96 55 82 107 52 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 73 107 51 70 96 55 73 107 51 70 96 55 73 107 51 70 96 55 81 96 56
++70 96 55 70 96 55 80 96 46 70 96 55 70 96 45 66 86 47 70 96 55 80 96 46
++70 96 55 70 96 45 66 86 47 70 96 55 66 86 47 66 86 47 70 96 55 66 86 47
++66 86 47 70 96 55 66 86 47 70 96 55 66 86 47 70 96 55 66 86 47 66 86 47
++70 96 55 66 86 47 70 96 55 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 64 70 48 57 86 47 64 70 48
++57 86 47 57 86 47 64 70 48 57 86 47 64 70 48 57 86 47 64 70 48 57 86 47
++
++51 73 47 75 73 36 57 86 47 66 86 47 66 86 47 66 86 47 66 86 47 64 97 47
++66 86 47 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 57 86 47 57 86 47
++64 70 48 57 86 47 57 86 47 75 73 36 57 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 57 86 47 66 86 47 66 86 47 70 96 55 66 86 47 70 96 55 66 86 47
++70 96 55 64 97 47 70 96 55 70 96 55 66 86 47 70 96 55 70 96 55 66 86 47
++66 86 47 57 86 47 70 96 55 66 86 47 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 81 96 56 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 66 86 47 66 86 47 70 96 55 70 96 55 66 86 47 70 96 55 70 96 55
++70 96 55 70 96 45 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 64 97 47 66 86 47 64 97 47 66 86 47 64 97 47 70 96 45
++70 96 55 70 96 55 70 96 45 70 96 55 73 107 51 70 96 55 70 96 55 70 96 55
++73 107 51 81 96 56 75 99 72 73 107 51 81 96 56 73 107 51 81 96 56 73 107 51
++81 96 56 73 107 51 81 96 56 73 107 51 70 96 55 73 107 51 81 96 56 73 107 51
++81 96 56 85 113 63 82 107 52 85 113 63 73 107 51 75 99 72 82 107 52 73 107 51
++81 96 56 73 107 51 85 113 63 81 96 56 85 113 63 73 107 51 85 113 63 81 96 56
++73 107 51 85 113 63 70 96 55 85 113 63 73 107 51 85 113 63 85 113 63 73 107 51
++75 99 72 82 119 53 75 99 72 85 113 63 73 107 51 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 82 107 52
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++87 120 67 87 120 67 87 120 67 98 126 66 98 113 84 87 120 67 85 113 63 85 113 63
++87 122 63 85 113 63 87 122 63 82 119 53 85 113 63 85 113 63 85 113 63 81 96 56
++87 120 67 117 142 111 177 169 143 166 180 164 208 215 180 177 169 143 166 180 164 208 215 180
++166 180 164 189 165 168 208 215 180 166 180 164 168 146 127 112 123 108 98 113 84 112 123 108
++112 123 108 88 83 74 51 49 42 36 35 37 33 30 30 22 24 13 26 30 28 51 49 42
++75 73 58 64 70 48 51 49 42 64 70 48 99 93 84 146 150 115 146 151 137 138 126 108
++75 81 76 32 39 24 22 24 13 32 39 24 99 93 84 112 123 108 112 123 108 75 73 58
++29 35 19 23 31 15 29 35 19 47 47 21 70 96 55 98 113 84 87 120 67 98 126 66
++87 120 67 87 120 67 87 120 67 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67
++98 126 66 98 126 66 88 121 82 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66
++88 121 82 98 126 66 98 126 66 98 132 75 98 126 66 98 132 75 98 126 66 98 126 66
++88 121 82 98 132 75 98 132 75 98 126 66 88 121 82 98 132 75 98 132 75 98 126 66
++98 113 84 98 132 75 98 132 75 88 121 82 98 132 75 98 132 75 98 126 66 88 121 82
++98 126 66 98 132 75 87 120 67 98 132 75 87 120 67 87 120 67 98 132 75 87 120 67
++98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 88 121 82 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 126 66 98 132 75 87 120 67 98 126 66 87 120 67
++87 120 67 98 126 66 98 132 75 98 126 66 98 132 75 98 126 66 87 120 67 98 132 75
++98 126 66 98 132 75 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 98 132 75
++98 126 66 98 132 75 98 132 75 98 126 66 98 126 66 98 132 75 98 126 66 98 126 66
++98 132 75 98 126 66 98 132 75 98 126 66 88 121 82 98 126 66 88 121 82 98 126 66
++98 132 75 87 120 67 98 132 75 87 120 67 98 132 75 87 120 67 98 126 66 87 120 67
++98 132 75 98 126 66 98 126 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 66
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 99 133 85 98 132 66 98 132 75 98 132 75
++99 133 85 98 132 75 98 132 75 99 133 85 98 132 75 117 142 111 98 132 66 117 142 111
++98 132 66 117 142 111 98 132 66 98 132 75 99 133 85 98 132 75 99 133 85 98 132 75
++99 133 85 98 132 66 99 133 85 98 132 75 99 133 85 98 132 66 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 66
++98 132 75 98 132 66 98 132 66 99 133 85 98 132 66 98 132 75 99 133 85 98 132 66
++117 142 111 98 132 66 98 132 66 98 132 66 98 132 66 99 133 85 98 132 66 117 142 111
++98 132 66 98 132 75 98 132 66 98 132 66 117 142 111 98 132 66 99 133 85 99 133 85
++117 142 111 98 132 66 117 142 111 98 132 75 99 133 85 98 132 66 99 133 85 98 132 66
++99 133 85 98 132 66 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75
++98 132 66 99 133 85 98 132 75 98 132 75 98 132 66 98 132 66 98 132 75 98 132 75
++98 132 66 98 132 75 98 132 75 99 133 85 98 132 66 98 132 75 98 132 66 98 132 75
++98 132 75 99 133 85 99 133 85 99 133 85 117 127 86 99 133 85 99 133 85 112 123 108
++121 143 132 166 180 164 185 202 202 201 216 228 208 221 247 208 221 247 231 239 247 231 239 247
++231 239 247 231 239 247 233 241 227 231 239 247 233 241 227 235 238 247 240 251 247 235 238 247
++233 241 227 235 238 247 235 238 247 233 241 227 233 241 227 221 238 247 225 222 201 208 221 247
++201 216 228 201 216 228 201 216 228 201 216 228 201 216 228 221 238 247 221 238 247 221 238 247
++231 239 247 231 239 247 231 239 247 240 251 247 240 251 247 233 241 227 166 174 181 117 142 111
++88 121 82 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 99 133 85 98 132 75 98 132 75 98 132 66 98 132 75 98 132 66
++99 133 85 98 132 66 99 133 85 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 99 133 85 98 132 66
++98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 126 66 98 132 75
++98 126 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75
++98 132 75 98 132 75 117 127 86 98 132 75 99 133 85 98 132 75 98 132 75 98 132 75
++98 132 75 99 133 85 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 126 66 88 121 82 98 126 66 98 132 75 98 126 66 88 121 82 98 126 66 98 132 75
++87 120 67 98 132 75 98 132 75 98 126 66 98 113 84 98 132 75 98 113 84 98 126 66
++87 120 67 98 126 66 88 121 82 98 126 66 98 132 75 98 126 66 88 121 82 98 126 66
++87 120 67 98 126 66 87 120 67 87 120 67 98 126 66 87 120 67 88 121 82 98 126 66
++88 121 82 98 126 66 87 120 67 87 120 67 98 126 66 87 120 67 88 121 82 98 126 66
++87 120 67 98 132 75 87 120 67 87 120 67 87 120 67 87 120 67 98 126 66 98 113 84
++87 120 67 98 126 66 88 121 82 87 120 67 98 126 66 87 120 67 87 120 67 85 113 63
++98 126 66 87 120 67 85 113 63 87 120 67 85 113 63 98 126 66 87 120 67 98 126 66
++85 113 63 87 120 67 87 120 67 87 122 63 87 120 67 87 120 67 85 113 63 87 120 67
++85 113 63 87 120 67 85 113 63 87 120 67 87 120 67 98 126 66 98 113 84 85 113 63
++87 120 67 85 113 63 85 113 63 87 120 67 85 113 63 87 120 67 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 73 107 51 82 107 52 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 82 119 53 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 81 96 56
++85 113 63 81 96 56 85 113 63 73 107 51 85 113 63 85 113 63 85 113 63 75 99 72
++85 113 63 82 107 52 85 113 63 81 96 56 85 113 63 73 107 51 85 113 63 82 107 52
++85 113 63 82 107 52 75 99 72 82 107 52 73 107 51 73 107 51 85 113 63 70 96 55
++85 113 63 70 96 55 85 113 63 81 96 56 75 99 72 81 96 56 85 113 63 70 96 55
++81 96 56 75 99 72 73 107 51 81 96 56 73 107 51 70 96 55 70 96 55 70 96 55
++70 96 55 73 107 51 75 99 72 70 96 55 73 107 51 70 96 55 73 107 51 81 96 56
++70 96 55 70 96 55 70 96 55 73 107 51 70 96 55 73 107 51 70 96 55 70 96 55
++73 107 51 81 96 56 70 96 55 70 96 55 81 96 56 70 96 55 81 96 56 70 96 45
++70 96 55 80 96 46 70 96 55 70 96 55 70 96 55 80 96 46 70 96 55 70 96 45
++70 96 55 70 96 45 70 96 55 66 86 47 70 96 55 66 86 47 66 86 47 66 86 47
++70 96 55 66 86 47 70 96 55 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 70 96 55 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 57 86 47 66 86 47 66 86 47 57 86 47 66 86 47 57 86 47
++51 73 47 64 70 48 57 86 47 66 86 47 64 70 48 57 86 47 59 79 61 64 70 48
++
++57 86 47 49 74 23 66 86 47 57 86 47 57 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 70 96 45 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 57 86 47
++57 86 47 66 86 47 51 73 47 57 86 47 57 86 47 57 86 47 57 86 47 66 86 47
++57 86 47 66 86 47 57 86 47 64 97 47 66 86 47 70 96 55 70 96 55 70 96 55
++64 97 47 70 96 55 57 86 47 70 96 55 70 96 55 66 86 47 70 96 55 66 86 47
++70 96 55 66 86 47 70 96 55 70 96 55 66 86 47 70 96 55 70 96 55 70 96 55
++70 96 55 75 99 72 70 96 55 81 96 56 70 96 55 81 96 56 70 96 55 81 96 56
++70 96 55 70 96 55 70 96 55 70 96 55 64 97 47 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 81 96 56 70 96 55
++70 96 55 70 96 55 66 86 47 70 96 45 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 64 97 47 64 97 47 70 96 55 70 96 55
++70 96 45 70 96 55 73 107 51 81 96 56 70 96 55 82 107 52 70 96 55 73 107 51
++81 96 56 70 96 55 82 107 52 81 96 56 73 107 51 85 113 63 73 107 51 81 96 56
++82 107 52 81 96 56 73 107 51 81 96 56 82 107 52 70 96 55 73 107 51 81 96 56
++82 107 52 85 113 63 82 107 52 75 99 72 85 113 63 85 113 63 82 107 52 75 99 72
++82 107 52 70 96 55 73 107 51 85 113 63 81 96 56 85 113 63 73 107 51 85 113 63
++75 99 72 73 107 51 73 107 51 85 113 63 85 113 63 73 107 51 85 113 63 85 113 63
++73 107 51 85 113 63 73 107 51 85 113 63 85 113 63 85 113 63 73 107 51 85 113 63
++73 107 51 85 113 63 73 107 51 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++87 120 67 85 113 63 98 126 66 87 120 67 85 113 63 98 126 66 85 113 63 98 126 66
++85 113 63 87 122 63 85 113 63 85 113 63 82 107 52 82 107 52 85 113 63 87 99 72
++99 133 85 177 171 115 166 180 164 166 180 164 177 169 143 166 180 164 166 180 164 189 165 168
++208 215 180 166 180 164 208 215 180 189 165 168 166 180 164 166 180 164 138 126 108 88 83 74
++64 70 48 51 49 42 55 55 48 55 55 48 42 41 42 22 25 24 51 49 42 95 91 100
++146 150 115 112 123 108 75 77 62 51 49 42 47 49 42 55 55 48 63 55 51 65 63 61
++64 70 48 75 77 62 75 77 62 55 55 48 55 55 48 64 70 48 51 49 42 42 47 42
++32 39 24 23 31 15 47 47 21 66 86 47 87 99 72 98 126 66 98 113 84 87 120 67
++87 120 67 87 120 67 87 120 67 98 126 66 87 120 67 98 126 66 98 132 75 98 126 66
++98 132 75 98 126 66 98 126 66 98 132 75 87 120 67 98 126 66 88 121 82 98 126 66
++98 126 66 98 132 75 87 120 67 87 120 67 98 132 75 98 126 66 88 121 82 98 132 75
++98 126 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 126 66 98 132 75 98 132 75 98 132 75 88 121 82 98 126 66
++98 132 75 98 132 75 87 120 67 98 132 75 87 120 67 98 132 75 98 126 66 98 126 66
++88 121 82 98 126 66 98 132 75 87 120 67 98 126 66 98 126 66 98 126 66 98 132 75
++98 132 75 98 132 75 98 132 75 88 121 82 98 126 66 98 132 75 87 120 67 98 132 75
++98 126 66 87 120 67 98 132 75 87 120 67 98 132 75 98 126 66 98 132 75 98 132 75
++87 120 67 98 132 75 98 126 66 98 132 75 98 132 75 87 120 67 98 132 75 98 126 66
++98 132 75 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75
++98 126 66 98 132 75 87 120 67 98 132 75 87 120 67 98 132 75 98 126 66 98 132 75
++87 120 67 98 132 75 87 120 67 98 132 75 98 126 66 87 120 67 87 120 67 98 126 66
++87 120 67 87 120 67 87 120 67 98 132 75 87 122 63 98 132 66 98 132 75 98 132 66
++98 132 75 98 132 66 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 99 133 85 98 132 75 99 133 85
++98 132 66 99 133 85 98 132 75 99 133 85 98 132 75 98 132 66 99 133 85 98 132 66
++98 132 75 98 132 66 98 132 66 99 133 85 98 132 75 98 132 75 99 133 85 98 132 75
++99 133 85 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66
++98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66
++98 132 66 98 132 66 98 132 75 99 133 85 99 133 85 157 148 53 98 132 75 98 132 66
++99 133 85 98 132 66 117 142 111 99 133 85 98 132 66 98 132 66 117 142 111 98 132 66
++98 132 66 99 133 85 98 132 66 99 133 85 98 132 75 99 133 85 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 99 133 85 98 132 75
++99 133 85 98 132 75 99 133 85 98 132 75 99 133 85 98 132 75 99 133 85 98 132 66
++99 133 85 98 132 66 98 132 75 98 132 66 99 133 85 98 132 75 98 132 75 98 132 66
++98 132 75 98 132 75 117 127 86 99 133 85 99 133 85 99 133 85 99 133 85 99 133 85
++117 142 111 150 171 159 185 202 202 185 202 202 201 216 228 232 215 228 208 221 247 226 221 247
++221 238 247 233 241 227 231 239 247 233 241 227 240 251 247 233 241 227 240 251 247 233 241 227
++240 251 247 240 251 247 240 251 247 235 238 247 231 239 247 233 241 227 231 239 247 233 241 227
++233 241 227 225 222 201 201 216 228 225 222 201 201 216 228 201 216 228 201 216 228 226 221 247
++221 238 247 221 238 247 231 239 247 231 239 247 240 251 247 233 241 227 185 202 202 117 142 111
++88 121 82 98 132 75 99 133 85 117 127 86 99 133 85 98 132 66 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 99 133 85
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 117 127 86
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 117 127 86 98 132 75
++98 132 75 98 132 66 98 132 75 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75
++98 126 66 98 132 75 98 126 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 98 132 75
++117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 126 66
++98 132 75 98 126 66 98 132 75 98 113 84 98 132 75 98 126 66 88 121 82 98 126 66
++88 121 82 98 126 66 98 113 84 98 132 75 98 132 75 98 126 66 98 126 66 98 126 66
++88 121 82 98 126 66 87 120 67 98 126 66 98 126 66 88 121 82 98 126 66 98 126 66
++88 121 82 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 98 126 66 88 121 82
++98 126 66 87 120 67 87 120 67 98 126 66 88 121 82 98 126 66 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 98 126 66
++87 120 67 87 120 67 98 126 66 87 120 67 87 120 67 87 120 67 98 126 66 87 120 67
++87 120 67 87 120 67 85 113 63 98 126 66 87 120 67 98 106 55 87 120 67 87 120 67
++85 113 63 98 126 66 85 113 63 98 126 66 85 113 63 98 126 66 85 113 63 98 126 66
++87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 85 113 63 87 120 67 98 126 66
++87 120 67 87 120 67 85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 81 96 56 85 113 63 82 107 52 85 113 63 73 107 51
++85 113 63 85 113 63 85 113 63 85 113 63 73 107 51 73 107 51 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 73 107 51
++85 113 63 73 107 51 85 113 63 75 99 72 85 113 63 82 107 52 85 113 63 85 113 63
++82 107 52 75 99 72 73 107 51 85 113 63 82 107 52 82 107 52 73 107 51 82 107 52
++75 99 72 82 107 52 73 107 51 73 107 51 75 99 72 82 107 52 75 99 72 85 113 63
++82 107 52 75 99 72 73 107 51 70 96 55 82 107 52 73 107 51 75 99 72 82 107 52
++75 99 72 82 107 52 70 96 55 75 99 72 70 96 55 70 96 55 70 96 55 70 96 55
++81 96 56 70 96 55 81 96 56 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++73 107 51 81 96 56 70 96 55 70 96 55 70 96 45 70 96 55 70 96 45 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 73 107 51 70 96 55 81 96 56
++70 96 55 70 96 55 70 96 55 80 96 46 70 96 55 70 96 55 70 96 55 70 96 55
++66 86 47 70 96 55 70 96 55 70 96 55 66 86 47 70 96 55 66 86 47 70 96 55
++66 86 47 70 96 55 70 96 55 66 86 47 70 96 55 66 86 47 66 86 47 70 96 55
++66 86 47 57 86 47 66 86 47 66 86 47 70 96 55 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 64 70 48 57 86 47
++64 70 48 57 86 47 57 86 47 64 70 48 57 86 47 57 86 47 64 70 48 57 86 47
++
++57 86 47 66 86 47 57 86 47 75 73 36 57 86 47 57 86 47 66 86 47 64 97 47
++66 86 47 70 96 55 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 57 86 47 64 70 48 66 86 47 57 86 47 57 86 47
++57 86 47 66 86 47 66 86 47 70 96 55 66 86 47 70 96 55 64 97 47 66 86 47
++70 96 55 70 96 55 70 96 55 70 96 55 66 86 47 70 96 55 70 96 55 66 86 47
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++81 96 56 73 107 51 70 96 55 70 96 55 73 107 51 70 96 55 81 96 56 73 107 51
++70 96 55 70 96 55 70 96 55 70 96 45 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 81 96 56 70 96 55 73 107 51 70 96 55
++70 96 55 70 96 45 66 86 47 70 96 55 70 96 55 70 96 55 81 96 56 82 107 52
++75 99 72 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 73 107 51
++73 107 51 73 107 51 70 96 55 73 107 51 81 96 56 73 107 51 81 96 56 70 96 55
++73 107 51 81 96 56 85 113 63 81 96 56 85 113 63 70 96 55 85 113 63 73 107 51
++85 113 63 73 107 51 81 96 56 73 107 51 81 96 56 73 107 51 81 96 56 85 113 63
++73 107 51 75 99 72 85 113 63 82 107 52 73 107 51 85 113 63 85 113 63 73 107 51
++73 107 51 85 113 63 81 96 56 73 107 51 85 113 63 73 107 51 75 99 72 82 107 52
++82 107 52 85 113 63 85 113 63 75 99 72 82 107 52 85 113 63 85 113 63 73 107 51
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 75 99 72 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 73 107 51 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 82 119 53 85 113 63 85 113 63
++85 113 63 98 126 66 85 113 63 98 126 66 87 120 67 98 126 66 85 113 63 98 126 66
++85 113 63 85 113 63 82 107 52 82 119 53 82 107 52 82 107 52 82 107 52 87 120 67
++146 150 115 166 180 164 208 215 180 166 180 164 177 169 143 177 169 143 166 180 164 177 169 143
++166 180 164 208 215 180 188 180 202 208 215 180 208 215 180 189 165 168 146 151 137 75 81 69
++33 30 30 26 25 15 42 41 42 47 44 42 36 35 37 32 39 24 65 63 61 112 123 108
++145 140 145 146 162 145 138 126 108 99 93 84 42 47 42 22 24 13 23 31 15 51 49 42
++88 83 74 112 123 108 112 123 108 64 70 48 26 25 15 15 17 7 22 24 13 23 31 15
++29 35 19 32 39 24 51 73 47 85 113 63 88 121 82 98 126 66 87 120 67 87 120 67
++98 126 66 87 120 67 98 132 75 88 121 82 98 126 66 98 126 66 87 120 67 98 132 75
++98 126 66 88 121 82 98 126 66 98 126 66 88 121 82 98 126 66 98 126 66 87 120 67
++87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 98 126 66 98 132 75
++88 121 82 98 132 75 98 126 66 98 132 75 98 132 75 98 113 84 98 132 75 98 132 75
++98 126 66 98 113 84 98 132 75 98 132 75 88 121 82 98 132 75 98 132 75 98 126 66
++88 121 82 98 126 66 98 132 75 87 120 67 98 132 75 87 120 67 98 132 75 87 120 67
++98 126 66 98 132 75 98 126 66 98 113 84 98 126 66 88 121 82 98 126 66 98 113 84
++98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 87 120 67
++98 132 75 98 126 66 98 132 75 98 132 75 98 132 75 87 120 67 98 132 75 98 126 66
++98 132 75 98 126 66 98 132 75 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75
++98 126 66 98 132 75 98 126 66 98 132 75 98 126 66 87 120 67 98 126 66 87 120 67
++87 120 67 98 126 66 87 120 67 98 126 66 98 132 75 88 121 82 98 132 75 87 120 67
++98 132 75 98 132 75 87 120 67 98 132 75 87 120 67 98 132 75 87 120 67 98 132 75
++87 120 67 98 132 75 98 132 75 87 120 67 98 132 75 98 132 66 87 120 67 98 132 75
++98 132 75 87 120 67 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 99 133 85 98 132 75 98 132 75 99 133 85
++98 132 75 99 133 85 98 132 75 98 132 75 99 133 85 98 132 75 99 133 85 98 132 75
++98 132 75 98 132 75 99 133 85 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66
++98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 99 133 85 98 132 66 99 133 85 99 133 85 99 133 85 99 133 85
++98 132 66 99 133 85 98 132 66 98 132 66 99 133 85 98 132 66 98 132 66 117 142 111
++98 132 66 117 142 111 98 132 66 117 142 111 98 132 66 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 99 133 85 98 132 75 99 133 85
++98 132 75 98 132 75 99 133 85 98 132 75 157 148 53 99 133 85 98 132 66 99 133 85
++98 132 66 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75
++99 133 85 99 133 85 98 132 75 117 127 86 99 133 85 98 132 75 98 132 75 98 132 75
++99 133 85 117 142 111 150 171 159 185 202 202 201 216 228 201 216 228 201 216 228 233 241 227
++221 238 247 233 241 227 240 251 247 233 241 227 240 251 247 240 251 247 233 241 227 240 251 247
++233 241 227 233 241 227 233 241 227 235 238 247 233 241 227 240 251 247 233 241 227 235 238 247
++233 241 227 233 241 227 233 241 227 201 216 228 201 216 228 185 202 202 194 199 226 201 216 228
++201 216 228 221 238 247 221 238 247 221 238 247 240 251 247 221 238 247 185 202 202 121 143 132
++88 121 82 98 113 84 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 99 133 85 117 127 86 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66
++98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 66 98 132 75 98 126 66 98 126 66 88 121 82 98 126 66 98 113 84 98 126 66
++98 132 75 98 113 84 98 126 66 98 132 75 98 126 66 98 126 66 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75
++98 132 66 98 132 75 98 132 75 98 132 75 98 126 66 98 126 66 87 120 67 98 113 84
++98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 88 121 82 98 126 66 98 126 66
++87 120 67 98 126 66 98 132 75 87 120 67 98 132 75 88 121 82 98 126 66 88 121 82
++98 126 66 87 120 67 88 121 82 98 126 66 87 120 67 87 120 67 87 120 67 88 121 82
++98 126 66 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 87 122 63 85 113 63 85 113 63 85 113 63 85 113 63
++87 120 67 87 120 67 87 120 67 87 120 67 98 126 66 87 120 67 87 120 67 87 120 67
++85 113 63 85 113 63 87 120 67 85 113 63 87 120 67 87 120 67 87 120 67 85 113 63
++87 120 67 85 113 63 98 113 84 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 98 106 55 85 113 63 87 120 67 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++70 96 55 81 96 56 73 107 51 73 107 51 73 107 51 75 99 72 73 107 51 73 107 51
++81 96 56 73 107 51 70 96 55 73 107 51 82 107 52 85 113 63 73 107 51 75 99 72
++73 107 51 85 113 63 85 113 63 85 113 63 85 113 63 70 96 55 85 113 63 70 96 55
++85 113 63 70 96 55 82 107 52 82 107 52 85 113 63 73 107 51 85 113 63 73 107 51
++85 113 63 73 107 51 85 113 63 70 96 55 82 107 52 85 113 63 82 107 52 73 107 51
++82 107 52 81 96 56 73 107 51 73 107 51 73 107 51 81 96 56 73 107 51 85 113 63
++70 96 55 82 107 52 75 99 72 73 107 51 75 99 72 82 107 52 81 96 56 73 107 51
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 73 107 51 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 45 70 96 45 66 86 47 66 86 47 66 86 47 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 55 70 96 55 70 96 55 70 96 55 70 96 45
++70 96 45 70 96 55 70 96 45 70 96 55 66 86 47 70 96 55 70 96 45 66 86 47
++70 96 55 66 86 47 66 86 47 70 96 55 66 86 47 66 86 47 70 96 55 66 86 47
++70 96 55 66 86 47 66 86 47 70 96 55 66 86 47 66 86 47 66 86 47 57 86 47
++66 86 47 66 86 47 66 86 47 59 79 61 66 86 47 57 86 47 66 86 47 57 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 57 86 47 75 73 36
++57 86 47 51 73 47 64 70 48 57 86 47 64 70 48 51 73 47 51 73 47 64 70 48
++
++49 74 23 57 86 47 57 86 47 51 73 47 57 86 47 57 86 47 66 86 47 66 86 47
++70 96 55 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 57 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 57 86 47 64 70 48
++66 86 47 57 86 47 57 86 47 66 86 47 64 97 47 70 96 55 70 96 55 70 96 55
++64 97 47 57 86 47 66 86 47 70 96 55 70 96 55 66 86 47 70 96 55 66 86 47
++70 96 55 57 86 47 70 96 55 66 86 47 70 96 55 70 96 55 70 96 55 70 96 55
++75 99 72 81 96 56 75 99 72 70 96 55 81 96 56 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 81 96 56 70 96 55 70 96 55 70 96 55 81 96 56 70 96 55
++70 96 55 70 96 55 70 96 55 66 86 47 70 96 45 70 96 55 70 96 55 75 99 72
++73 107 51 81 96 56 75 99 72 70 96 55 81 96 56 73 107 51 70 96 55 82 107 52
++75 99 72 73 107 51 81 96 56 73 107 51 75 99 72 73 107 51 75 99 72 73 107 51
++75 99 72 73 107 51 81 96 56 75 99 72 73 107 51 81 96 56 82 107 52 81 96 56
++82 107 52 75 99 72 73 107 51 85 113 63 73 107 51 81 96 56 73 107 51 85 113 63
++82 107 52 85 113 63 81 96 56 73 107 51 75 99 72 73 107 51 82 107 52 75 99 72
++82 107 52 75 99 72 73 107 51 85 113 63 70 96 55 85 113 63 82 107 52 82 107 52
++75 99 72 85 113 63 73 107 51 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 73 107 51 85 113 63 73 107 51 85 113 63 73 107 51 82 119 53 85 113 63
++85 113 63 85 113 63 73 107 51 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 87 120 67 87 120 67 87 120 67 85 113 63 98 126 66 87 120 67 98 106 55
++85 113 63 85 113 63 85 113 63 73 107 51 85 113 63 70 96 55 85 113 63 117 127 86
++146 162 145 166 180 164 208 215 180 166 180 164 150 171 159 177 169 143 177 169 143 166 180 164
++168 146 127 146 162 145 189 165 168 208 215 180 166 180 164 146 151 137 98 113 84 75 81 69
++51 49 42 26 25 15 15 17 7 22 24 13 36 35 37 47 49 42 55 55 48 75 72 67
++99 93 84 112 123 108 138 126 108 112 123 108 75 77 62 51 49 42 75 73 58 95 119 107
++138 126 108 146 150 115 99 93 84 55 55 48 26 25 15 22 24 13 26 25 15 23 31 15
++15 17 7 47 49 42 75 99 72 98 113 84 98 113 84 87 120 67 87 120 67 87 120 67
++98 126 66 98 113 84 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66
++87 120 67 98 126 66 98 126 66 87 120 67 98 126 66 98 126 66 87 120 67 98 126 66
++87 120 67 98 126 66 87 120 67 87 120 67 87 120 67 88 121 82 98 126 66 87 120 67
++98 126 66 98 132 75 98 126 66 88 121 82 98 126 66 98 132 75 98 126 66 98 113 84
++98 132 75 98 132 75 98 126 66 98 132 75 98 132 75 98 126 66 98 132 75 88 121 82
++98 126 66 98 132 75 87 120 67 98 126 66 87 120 67 98 132 75 87 120 67 98 132 75
++87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 98 132 75 98 126 66
++98 132 75 87 120 67 98 132 75 87 120 67 98 132 75 87 120 67 98 132 75 98 132 75
++98 132 75 98 126 66 88 121 82 98 126 66 98 132 75 98 132 75 98 126 66 98 132 75
++87 120 67 98 132 75 98 132 75 87 120 67 98 132 75 87 120 67 98 132 75 98 132 75
++87 120 67 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 87 120 67 98 132 75
++98 126 66 87 120 67 98 132 66 88 121 82 98 132 75 98 132 75 98 132 75 98 132 75
++87 120 67 98 132 75 98 126 66 98 132 75 87 120 67 98 132 75 98 126 66 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 99 133 85 98 132 75 99 133 85 98 132 75 98 132 75
++98 132 75 99 133 85 98 132 75 99 133 85 98 132 75 98 132 75 99 133 85 98 132 66
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 99 133 85 98 132 66 99 133 85
++98 132 75 99 133 85 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 66 98 132 75 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75
++98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 66
++99 133 85 98 132 66 99 133 85 98 132 66 99 133 85 98 132 75 98 132 75 98 132 66
++98 132 75 98 132 75 98 132 66 99 133 85 98 132 66 99 133 85 98 132 75 98 132 75
++98 132 66 98 132 75 98 132 66 98 132 66 98 132 75 98 132 75 98 132 75 98 132 66
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66
++99 133 85 98 132 75 98 132 75 99 133 85 98 132 75 98 132 75 98 132 75 98 132 66
++98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 99 133 85 98 132 75 99 133 85 98 132 75 98 132 75 99 133 85
++88 121 82 112 123 108 146 162 145 185 202 202 185 202 202 201 216 228 201 216 228 208 221 247
++233 241 227 231 239 247 233 241 227 240 251 247 233 241 227 233 241 227 240 251 247 240 251 247
++240 251 247 233 241 227 235 238 247 233 241 227 233 241 227 240 251 247 235 238 247 233 241 227
++231 239 247 233 241 227 235 238 247 240 251 247 235 238 247 225 222 201 194 199 226 185 202 202
++185 202 202 201 216 228 201 216 228 221 238 247 231 239 247 231 239 247 185 202 202 146 151 137
++88 121 82 87 120 67 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66
++98 132 75 98 132 66 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75
++117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75
++98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 98 126 66
++98 126 66 87 120 67 87 120 67 87 120 67 98 126 66 87 120 67 98 126 66 88 121 82
++87 120 67 98 126 66 88 121 82 98 126 66 88 121 82 87 120 67 87 120 67 87 120 67
++98 126 66 87 120 67 98 126 66 98 126 66 98 132 75 87 120 67 98 126 66 98 126 66
++98 132 75 98 126 66 98 126 66 98 126 66 98 126 66 87 120 67 87 122 63 87 120 67
++87 120 67 87 120 67 87 120 67 88 121 82 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 87 120 67 88 121 82 98 126 66 87 120 67 98 126 66 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 98 126 66 87 120 67
++87 122 63 85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 85 113 63 87 120 67 87 120 67
++85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 87 120 67 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 82 107 52 85 113 63
++82 107 52 82 107 52 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++82 107 52 82 107 52 85 113 63 82 107 52 85 113 63 73 107 51 81 96 56 73 107 51
++81 96 56 73 107 51 73 107 51 70 96 55 70 96 55 73 107 51 73 107 51 73 107 51
++70 96 55 73 107 51 70 96 55 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 82 107 52 73 107 51 70 96 55 85 113 63 73 107 51 70 96 55
++73 107 51 73 107 51 70 96 55 73 107 51 81 96 56 73 107 51 81 96 56 73 107 51
++70 96 55 73 107 51 70 96 55 73 107 51 73 107 51 70 96 55 73 107 51 75 99 72
++81 96 56 73 107 51 70 96 55 81 96 56 73 107 51 81 96 56 73 107 51 81 96 56
++75 99 72 73 107 51 81 96 56 73 107 51 70 96 55 73 107 51 81 96 56 70 96 55
++70 96 55 70 96 55 70 96 45 70 96 55 70 96 55 70 96 45 70 96 55 70 96 45
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 45 70 96 55 70 96 45
++70 96 55 70 96 45 64 97 47 66 86 47 66 86 47 57 86 47 66 86 47 57 86 47
++66 86 47 57 86 47 66 86 47 64 97 47 66 86 47 66 86 47 70 96 45 66 86 47
++70 96 45 66 86 47 70 96 45 66 86 47 70 96 45 66 86 47 70 96 55 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 57 86 47 66 86 47
++57 86 47 57 86 47 57 86 47 66 86 47 57 86 47 57 86 47 66 86 47 51 73 47
++57 86 47 57 86 47 64 70 48 57 86 47 64 70 48 66 86 47 49 74 23 51 73 47
++51 73 47 49 74 23 51 73 47 51 73 47 51 73 47 64 70 48 49 74 23 51 73 47
++
++51 73 47 66 86 47 64 70 48 49 74 23 66 86 47 57 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 57 86 47
++66 86 47 57 86 47 66 86 47 66 86 47 70 96 55 66 86 47 66 86 47 66 86 47
++66 86 47 64 97 47 66 86 47 66 86 47 70 96 55 66 86 47 70 96 55 66 86 47
++70 96 55 66 86 47 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 73 107 51 70 96 55 81 96 56 70 96 55 70 96 55 70 96 55 70 96 55
++81 96 56 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 81 96 56 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 81 96 56 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 64 97 47 70 96 45 70 96 55 70 96 55 70 96 55 81 96 56
++81 96 56 73 107 51 81 96 56 81 96 56 70 96 55 70 96 55 85 113 63 70 96 55
++82 107 52 75 99 72 82 107 52 75 99 72 82 107 52 70 96 55 73 107 51 70 96 55
++73 107 51 81 96 56 73 107 51 81 96 56 73 107 51 75 99 72 73 107 51 75 99 72
++73 107 51 81 96 56 73 107 51 81 96 56 73 107 51 81 96 56 73 107 51 81 96 56
++73 107 51 81 96 56 73 107 51 70 96 55 73 107 51 81 96 56 73 107 51 73 107 51
++73 107 51 82 107 52 73 107 51 75 99 72 73 107 51 73 107 51 81 96 56 85 113 63
++73 107 51 85 113 63 85 113 63 73 107 51 85 113 63 73 107 51 85 113 63 73 107 51
++75 99 72 85 113 63 73 107 51 75 99 72 85 113 63 73 107 51 85 113 63 85 113 63
++73 107 51 85 113 63 85 113 63 85 113 63 73 107 51 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++87 120 67 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 98 113 84 85 113 63
++85 113 63 85 113 63 82 107 52 85 113 63 82 107 52 70 96 55 98 113 84 146 150 115
++166 180 164 208 215 180 166 180 164 189 165 168 177 169 143 146 151 137 146 162 145 166 180 164
++138 126 108 98 113 84 146 151 137 146 162 145 168 146 127 98 113 84 88 83 74 99 93 84
++65 63 61 32 39 24 15 17 7 22 24 13 65 63 61 117 99 86 88 83 74 51 49 42
++36 35 37 51 49 42 63 55 51 75 73 58 75 73 58 75 81 69 117 99 86 112 123 108
++88 83 74 65 63 61 47 49 42 32 39 24 29 35 19 23 31 15 15 17 7 15 17 7
++29 35 19 70 96 55 98 113 84 98 132 75 98 126 66 88 121 82 87 120 67 87 120 67
++98 132 75 98 126 66 87 120 67 98 126 66 88 121 82 98 126 66 87 120 67 87 120 67
++98 126 66 88 121 82 98 126 66 88 121 82 98 126 66 87 120 67 98 126 66 87 120 67
++87 120 67 85 113 63 87 122 63 87 120 67 87 122 63 87 120 67 87 120 67 98 126 66
++87 120 67 87 120 67 87 120 67 98 126 66 87 120 67 98 132 75 98 132 75 98 126 66
++98 132 75 98 126 66 98 132 75 88 121 82 98 132 75 88 121 82 98 126 66 98 132 75
++87 120 67 88 121 82 98 126 66 88 121 82 98 126 66 98 126 66 98 126 66 87 120 67
++98 126 66 87 120 67 87 120 67 98 126 66 98 132 75 98 126 66 87 120 67 98 126 66
++98 132 75 98 126 66 88 121 82 98 132 75 98 126 66 98 132 75 98 132 75 98 126 66
++98 132 75 87 120 67 98 132 75 98 126 66 88 121 82 98 132 75 98 132 75 98 132 75
++98 132 75 98 126 66 98 126 66 98 132 75 98 132 75 98 132 75 98 132 75 98 126 66
++98 132 75 98 126 66 98 132 75 87 122 63 98 126 66 87 120 67 98 126 66 87 120 67
++98 132 75 87 120 67 98 132 75 98 126 66 98 132 75 87 120 67 98 132 75 98 132 75
++98 132 75 88 121 82 98 126 66 87 120 67 98 132 75 87 120 67 98 132 75 87 120 67
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 99 133 85 98 132 75
++99 133 85 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 99 133 85 98 132 75
++117 127 86 98 132 66 99 133 85 98 132 66 99 133 85 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 99 133 85
++98 132 75 99 133 85 98 132 75 99 133 85 99 133 85 98 132 75 99 133 85 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 99 133 85 98 132 75
++98 132 75 99 133 85 98 132 66 117 142 111 98 132 66 98 132 66 98 132 75 98 132 75
++98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 99 133 85 157 148 53
++99 133 85 99 133 85 99 133 85 98 132 75 98 132 75 98 132 66 98 132 75 98 132 66
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 99 133 85 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75
++99 133 85 99 133 85 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++88 121 82 99 133 85 117 142 111 146 162 145 185 202 202 208 215 180 185 202 202 233 241 227
++233 241 227 221 238 247 233 241 227 240 251 247 246 237 247 240 251 247 233 241 227 233 241 227
++233 241 227 235 238 247 233 241 227 235 238 247 240 251 247 233 241 227 240 251 247 233 241 227
++240 251 247 235 238 247 233 241 227 240 251 247 240 251 247 233 241 227 233 241 227 201 216 228
++188 180 202 188 180 202 185 202 202 201 216 228 221 238 247 231 239 247 201 216 228 146 162 145
++88 121 82 88 121 82 98 126 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 66 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 87 120 67 98 132 75 87 120 67 98 126 66 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 126 66 98 132 75 98 126 66
++117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 126 66 98 126 66 87 120 67 98 132 75 87 120 67 87 120 67
++87 120 67 87 120 67 85 113 63 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++98 126 66 88 121 82 98 126 66 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 87 120 67 85 113 63 87 120 67 87 120 67 85 113 63
++85 113 63 87 120 67 85 113 63 87 120 67 85 113 63 87 120 67 85 113 63 85 113 63
++87 120 67 87 120 67 87 120 67 85 113 63 87 120 67 87 120 67 87 120 67 85 113 63
++87 120 67 85 113 63 87 120 67 85 113 63 87 120 67 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 87 120 67
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 82 107 52 82 119 53 82 107 52 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 82 107 52 82 107 52 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 73 107 51
++73 107 51 81 96 56 73 107 51 73 107 51 70 96 55 82 107 52 82 107 52 73 107 51
++81 96 56 73 107 51 70 96 55 73 107 51 70 96 55 70 96 55 73 107 51 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 73 107 51 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 45 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 73 107 51 70 96 55 70 96 55 70 96 55
++70 96 45 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 73 107 51 70 96 55
++81 96 56 73 107 51 81 96 56 70 96 55 81 96 56 73 107 51 70 96 55 80 96 46
++70 96 55 70 96 55 81 96 56 73 107 51 70 96 55 70 96 55 81 96 56 70 96 55
++82 107 52 81 96 56 73 107 51 70 96 55 70 96 55 70 96 55 70 96 55 64 97 47
++66 86 47 57 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 70 96 55 70 96 55 70 96 55 66 86 47 70 96 55 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47
++57 86 47 49 74 23 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47
++66 86 47 57 86 47 57 86 47 51 73 47 57 86 47 51 73 47 57 86 47 51 73 47
++75 73 36 51 73 47 51 73 47 51 73 47 51 73 47 49 74 23 51 73 47 49 74 23
++64 70 48 57 86 47 51 73 47 75 73 36 51 73 47 49 74 23 51 73 47 49 74 23
++64 70 48 51 73 47 75 73 36 51 73 47 49 74 23 51 73 47 51 73 47 49 74 23
++
++57 86 47 49 74 23 57 86 47 57 86 47 57 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 57 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 64 97 47 66 86 47 57 86 47 66 86 47 64 97 47 57 86 47
++57 86 47 57 86 47 57 86 47 66 86 47 57 86 47 66 86 47 64 97 47 66 86 47
++70 96 55 70 96 55 66 86 47 70 96 55 70 96 55 66 86 47 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 81 96 56 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 64 97 47 70 96 45 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 85 113 63 81 96 56 73 107 51 81 96 56
++85 113 63 73 107 51 81 96 56 82 107 52 73 107 51 81 96 56 73 107 51 70 96 55
++70 96 55 70 96 55 70 96 55 73 107 51 81 96 56 73 107 51 81 96 56 73 107 51
++81 96 56 73 107 51 70 96 55 70 96 55 81 96 56 73 107 51 75 99 72 73 107 51
++81 96 56 73 107 51 81 96 56 70 96 55 73 107 51 70 96 55 73 107 51 70 96 55
++70 96 55 81 96 56 70 96 55 73 107 51 82 107 52 70 96 55 73 107 51 81 96 56
++73 107 51 85 113 63 81 96 56 85 113 63 85 113 63 75 99 72 85 113 63 85 113 63
++73 107 51 85 113 63 73 107 51 85 113 63 73 107 51 85 113 63 75 99 72 85 113 63
++85 113 63 85 113 63 73 107 51 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 87 120 67
++85 113 63 85 113 63 98 113 84 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++85 113 63 85 113 63 82 107 52 85 113 63 81 96 56 82 107 52 99 133 85 146 162 145
++166 180 164 208 215 180 208 215 180 166 180 164 166 180 164 146 151 137 146 151 137 177 169 143
++146 151 137 112 123 108 99 93 84 99 93 84 88 83 74 75 73 58 75 81 69 88 83 74
++65 63 61 42 41 42 33 30 30 63 55 51 112 123 108 146 151 137 121 143 132 75 81 69
++32 39 24 15 17 7 32 39 24 65 63 61 75 81 69 65 63 61 75 73 58 55 55 48
++32 39 24 29 35 19 26 25 15 32 39 24 34 30 15 15 17 7 6 15 6 23 31 15
++66 86 47 98 113 84 99 133 85 87 120 67 98 113 84 87 120 67 87 120 67 87 120 67
++88 121 82 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67
++87 120 67 87 120 67 87 120 67 98 126 66 87 120 67 98 132 75 87 120 67 87 120 67
++87 120 67 87 122 63 85 113 63 87 122 63 85 113 63 85 113 63 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 87 120 67 98 126 66 87 120 67 88 121 82 98 132 75
++88 121 82 98 132 75 98 113 84 98 126 66 98 132 75 98 126 66 87 120 67 98 132 75
++87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 88 121 82 87 120 67 98 126 66
++87 120 67 87 120 67 98 126 66 87 120 67 98 126 66 98 113 84 98 126 66 87 120 67
++98 126 66 88 121 82 98 126 66 98 126 66 98 126 66 98 132 75 88 121 82 98 126 66
++98 132 75 98 132 75 87 120 67 98 132 75 98 132 75 98 132 75 98 132 75 87 120 67
++98 132 75 98 132 75 98 126 66 98 132 75 98 126 66 98 126 66 98 126 66 98 132 75
++98 126 66 98 132 75 87 120 67 98 132 66 87 122 63 98 132 66 87 120 67 98 126 66
++87 122 63 98 132 75 98 126 66 98 132 75 98 132 75 98 132 75 98 132 75 87 120 67
++98 132 75 98 126 66 98 132 75 98 132 75 98 132 75 98 126 66 88 121 82 98 132 75
++87 120 67 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 99 133 85 98 132 75 99 133 85 98 132 75 98 132 75 98 132 75 99 133 85
++99 133 85 99 133 85 99 133 85 98 132 75 99 133 85 98 132 75 117 127 86 98 132 75
++99 133 85 98 132 75 99 133 85 98 132 75 117 127 86 98 132 75 117 127 86 98 132 75
++99 133 85 98 132 66 117 127 86 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75
++99 133 85 98 132 66 99 133 85 98 132 75 98 132 75 99 133 85 99 133 85 98 132 75
++99 133 85 98 132 75 98 132 75 99 133 85 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++99 133 85 98 132 75 99 133 85 98 132 66 99 133 85 98 132 75 98 132 75 98 132 66
++98 132 75 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 132 75 98 132 75
++99 133 85 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75
++98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 99 133 85 99 133 85 99 133 85 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 126 66 98 132 75 99 133 85 117 142 111 166 180 164 185 202 202 185 202 202 201 216 228
++232 215 228 233 241 227 235 238 247 233 241 227 235 238 247 233 241 227 235 238 247 233 241 227
++231 239 247 233 241 227 240 251 247 240 251 247 233 241 227 246 237 247 240 251 247 240 251 247
++240 251 247 240 251 247 251 251 247 233 241 227 246 237 247 240 251 247 246 237 247 233 241 227
++232 215 228 185 202 202 188 180 202 185 202 202 201 216 228 201 216 228 185 202 202 146 162 145
++88 121 82 88 121 82 88 121 82 88 121 82 98 132 75 98 126 66 98 132 75 98 126 66
++98 132 75 98 126 66 88 121 82 98 126 66 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 117 127 86 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 88 121 82 98 132 75 88 121 82 98 132 75 88 121 82 98 126 66
++98 132 75 98 132 75 98 132 75 98 113 84 98 132 75 98 113 84 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 113 84 98 132 75 98 132 75 99 133 85 98 132 75
++98 113 84 98 132 75 88 121 82 98 126 66 88 121 82 98 126 66 88 121 82 98 126 66
++85 113 63 87 122 63 85 113 63 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++88 121 82 87 120 67 98 126 66 98 113 84 87 120 67 87 120 67 85 113 63 85 113 63
++87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 88 121 82
++87 120 67 85 113 63 88 121 82 87 120 67 87 120 67 85 113 63 87 120 67 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 87 120 67 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 82 107 52 85 113 63 82 107 52 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 82 107 52 85 113 63 82 107 52
++82 107 52 85 113 63 85 113 63 82 107 52 82 107 52 73 107 51 82 107 52 85 113 63
++82 107 52 82 107 52 82 107 52 82 107 52 85 113 63 85 113 63 85 113 63 82 107 52
++73 107 51 73 107 51 81 96 56 73 107 51 81 96 56 82 107 52 82 107 52 81 96 56
++73 107 51 81 96 56 73 107 51 70 96 55 73 107 51 70 96 55 73 107 51 70 96 55
++73 107 51 70 96 55 73 107 51 70 96 45 73 107 51 70 96 45 70 96 55 70 96 45
++73 107 51 70 96 55 70 96 45 70 96 55 70 96 55 70 96 45 70 96 55 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 66 86 47 70 96 45 70 96 45 70 96 45
++70 96 45 64 97 47 66 86 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 64 97 47 70 96 55 64 97 47 66 86 47 66 86 47
++64 97 47 64 97 47 64 97 47 64 97 47 64 97 47 70 96 55 70 96 55 70 96 45
++70 96 45 70 96 55 73 107 51 70 96 55 70 96 55 70 96 45 70 96 45 70 96 55
++81 96 56 70 96 55 73 107 51 70 96 55 81 96 56 70 96 55 81 96 56 70 96 55
++81 96 56 73 107 51 70 96 55 70 96 55 70 96 55 70 96 55 66 86 47 66 86 47
++57 86 47 66 86 47 57 86 47 64 97 47 66 86 47 64 97 47 66 86 47 64 97 47
++66 86 47 64 97 47 66 86 47 66 86 47 64 97 47 66 86 47 57 86 47 66 86 47
++57 86 47 66 86 47 57 86 47 66 86 47 57 86 47 57 86 47 57 86 47 57 86 47
++49 74 23 57 86 47 57 86 47 66 86 47 57 86 47 57 86 47 57 86 47 57 86 47
++57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47
++57 86 47 57 86 47 57 86 47 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47
++57 86 47 57 86 47 64 70 48 49 74 23 64 70 48 49 74 23 64 70 48 49 74 23
++51 73 47 49 74 23 57 86 47 49 74 23 51 73 47 75 73 36 51 73 47 57 86 47
++49 74 23 75 73 36 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47
++49 74 23 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 51 73 47
++
++51 73 47 66 86 47 57 86 47 75 73 36 57 86 47 57 86 47 66 86 47 66 86 47
++57 86 47 66 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 57 86 47 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 66 86 47
++66 86 47 57 86 47 66 86 47 64 97 47 66 86 47 66 86 47 66 86 47 70 96 55
++70 96 55 70 96 55 70 96 55 66 86 47 70 96 55 66 86 47 70 96 55 70 96 55
++70 96 55 81 96 56 70 96 55 70 96 55 70 96 55 70 96 45 66 86 47 64 97 47
++70 96 55 70 96 55 70 96 55 70 96 45 70 96 55 70 96 45 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 73 107 51
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 45 70 96 55 70 96 45
++70 96 55 70 96 55 70 96 55 81 96 56 70 96 55 70 96 55 85 113 63 70 96 55
++75 99 72 82 107 52 75 99 72 73 107 51 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 45 70 96 55 70 96 55 70 96 55 70 96 55 73 107 51 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 73 107 51 70 96 55 73 107 51 70 96 55 73 107 51
++70 96 55 73 107 51 70 96 55 70 96 45 70 96 45 70 96 45 70 96 55 73 107 51
++73 107 51 73 107 51 70 96 55 82 107 52 70 96 55 73 107 51 73 107 51 73 107 51
++75 99 72 73 107 51 85 113 63 70 96 55 73 107 51 82 107 52 73 107 51 85 113 63
++73 107 51 73 107 51 73 107 51 73 107 51 85 113 63 73 107 51 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++87 120 67 87 120 67 85 113 63 87 120 67 87 120 67 98 113 84 87 120 67 98 113 84
++85 113 63 85 113 63 85 113 63 73 107 51 70 96 55 87 120 67 117 142 111 177 169 143
++166 180 164 166 180 164 189 165 168 166 180 164 177 169 143 146 162 145 146 151 137 177 169 143
++166 180 164 146 151 137 88 83 74 51 49 42 47 47 21 64 70 48 75 81 69 88 83 74
++75 73 58 51 49 42 47 49 42 75 73 58 112 123 108 138 126 108 138 126 108 99 93 84
++63 55 51 47 47 21 51 49 42 88 83 74 88 83 74 47 49 42 22 24 13 15 17 7
++22 24 13 29 35 19 32 39 24 33 30 30 15 17 7 3 3 1 23 31 15 51 73 47
++98 113 84 98 113 84 98 113 84 87 120 67 87 120 67 87 120 67 98 126 66 87 120 67
++87 120 67 98 126 66 87 120 67 87 120 67 87 120 67 98 126 66 87 120 67 88 121 82
++87 120 67 98 126 66 88 121 82 98 126 66 98 132 75 87 120 67 98 126 66 98 126 66
++87 120 67 87 120 67 87 120 67 85 113 63 85 113 63 87 122 63 87 120 67 87 120 67
++87 120 67 85 113 63 87 120 67 87 120 67 87 120 67 98 126 66 87 120 67 98 126 66
++87 120 67 98 126 66 98 132 75 87 120 67 88 121 82 98 126 66 88 121 82 98 126 66
++87 120 67 88 121 82 87 120 67 87 120 67 87 120 67 98 126 66 85 113 63 87 120 67
++87 120 67 87 120 67 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66
++87 120 67 98 126 66 87 120 67 87 120 67 88 121 82 98 126 66 98 126 66 98 132 75
++98 132 75 87 120 67 98 132 75 98 132 75 98 132 75 98 126 66 98 132 75 98 132 75
++98 126 66 98 132 75 98 132 75 87 120 67 98 132 75 98 132 75 98 126 66 98 132 75
++98 126 66 98 132 75 98 126 66 98 126 66 87 120 67 98 132 75 98 126 66 98 132 75
++87 120 67 98 132 75 98 126 66 98 132 75 88 121 82 98 132 66 88 121 82 98 132 75
++98 132 75 87 120 67 98 132 75 87 120 67 98 132 75 87 120 67 98 126 66 87 120 67
++98 132 75 87 120 67 98 132 75 87 120 67 98 132 75 99 133 85 98 132 75 99 133 85
++99 133 85 98 132 75 98 132 75 98 132 75 98 132 75 99 133 85 98 132 75 99 133 85
++98 132 75 98 132 75 99 133 85 98 132 75 98 132 75 99 133 85 98 132 75 98 132 75
++117 127 86 98 132 75 98 132 75 117 127 86 98 132 75 99 133 85 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 99 133 85 98 132 75 99 133 85 99 133 85 98 132 75 99 133 85 98 132 75
++98 132 75 98 132 75 99 133 85 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75
++99 133 85 98 132 75 99 133 85 99 133 85 98 132 66 98 132 75 98 132 66 98 132 66
++98 132 66 98 132 66 87 122 63 87 122 63 98 132 66 98 132 66 98 132 66 98 132 75
++98 132 66 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 87 120 67 98 132 75 88 121 82
++98 132 75 98 113 84 88 121 82 117 142 111 146 162 145 166 180 164 185 202 202 225 222 201
++201 216 228 233 241 227 233 241 227 231 239 247 233 241 227 235 238 247 233 241 227 240 251 247
++233 241 227 240 251 247 235 238 247 233 241 227 240 251 247 240 251 247 233 241 227 251 251 247
++233 241 227 251 251 247 233 241 227 251 251 247 240 251 247 251 251 247 240 251 247 251 251 247
++240 251 247 231 239 247 185 202 202 188 180 202 185 202 202 185 202 202 185 202 202 126 147 144
++88 121 82 88 121 82 98 126 66 98 126 66 98 126 66 88 121 82 98 126 66 87 120 67
++98 132 75 87 120 67 98 132 75 98 126 66 98 126 66 98 132 75 98 126 66 98 132 75
++98 132 75 98 126 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++88 121 82 98 132 75 88 121 82 98 126 66 98 132 75 98 126 66 88 121 82 98 132 75
++98 132 75 98 132 75 98 113 84 98 132 75 98 126 66 98 126 66 98 132 75 87 120 67
++98 113 84 98 126 66 88 121 82 98 132 75 98 132 75 98 113 84 98 126 66 98 126 66
++98 126 66 87 120 67 98 126 66 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++82 107 52 73 107 51 85 113 63 73 107 51 82 107 52 82 107 52 85 113 63 82 107 52
++85 113 63 82 107 52 85 113 63 73 107 51 82 107 52 85 113 63 73 107 51 73 107 51
++85 113 63 70 96 55 73 107 51 73 107 51 73 107 51 73 107 51 81 96 56 73 107 51
++82 107 52 73 107 51 73 107 51 82 107 52 85 113 63 82 107 52 73 107 51 82 107 52
++73 107 51 70 96 55 73 107 51 73 107 51 73 107 51 81 96 56 73 107 51 73 107 51
++70 96 55 73 107 51 70 96 55 70 96 55 70 96 45 70 96 55 73 107 51 70 96 55
++70 96 45 70 96 45 70 96 45 64 97 47 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 64 97 47 64 97 47 70 96 45 64 97 47 66 86 47
++64 97 47 66 86 47 70 96 45 64 97 47 70 96 45 70 96 45 64 97 47 66 86 47
++64 97 47 66 86 47 64 97 47 70 96 45 64 97 47 70 96 45 70 96 45 64 97 47
++66 86 47 64 97 47 66 86 47 64 97 47 66 86 47 66 86 47 57 86 47 57 86 47
++66 86 47 57 86 47 66 86 47 57 86 47 66 86 47 64 97 47 66 86 47 70 96 45
++70 96 45 70 96 55 66 86 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 73 107 51 70 96 55 70 96 45 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 45 66 86 47 57 86 47 66 86 47 64 97 47
++66 86 47 57 86 47 66 86 47 57 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 66 86 47 57 86 47 66 86 47
++57 86 47 66 86 47 57 86 47 66 86 47 57 86 47 57 86 47 49 74 23 51 73 47
++49 74 23 57 86 47 49 74 23 57 86 47 51 73 47 49 74 23 57 86 47 49 74 23
++57 86 47 49 74 23 66 86 47 64 70 48 49 74 23 64 70 48 57 86 47 49 74 23
++64 70 48 57 86 47 64 70 48 57 86 47 64 70 48 57 86 47 57 86 47 64 70 48
++49 74 23 51 73 47 49 74 23 57 86 47 51 73 47 51 73 47 57 86 47 49 74 23
++51 73 47 49 74 23 51 73 47 51 73 47 49 74 23 51 73 47 49 74 23 49 74 23
++51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 50 61 48 49 74 23
++50 61 48 49 74 23 50 61 48 50 61 48 49 74 23 50 61 48 51 73 47 49 74 23
++
++57 86 47 64 70 48 57 86 47 57 86 47 57 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 57 86 47 57 86 47 66 86 47 57 86 47 57 86 47 51 73 47 57 86 47
++57 86 47 57 86 47 57 86 47 57 86 47 66 86 47 66 86 47 66 86 47 57 86 47
++57 86 47 66 86 47 66 86 47 66 86 47 64 97 47 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 70 96 45 70 96 55
++70 96 55 70 96 55 64 97 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++70 96 55 70 96 55 70 96 55 64 97 47 66 86 47 66 86 47 64 97 47 66 86 47
++66 86 47 70 96 45 70 96 55 70 96 55 66 86 47 70 96 55 70 96 55 70 96 45
++70 96 55 70 96 45 70 96 55 70 96 55 70 96 55 70 96 45 70 96 45 70 96 55
++70 96 45 70 96 55 70 96 55 80 96 46 70 96 55 70 96 45 70 96 55 64 97 47
++66 86 47 64 97 47 70 96 45 70 96 55 70 96 55 70 96 55 70 96 55 82 107 52
++70 96 55 73 107 51 70 96 55 70 96 55 70 96 55 70 96 55 70 96 45 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 45 80 96 46 70 96 55
++70 96 55 73 107 51 70 96 45 70 96 55 70 96 45 70 96 55 70 96 45 70 96 55
++70 96 55 70 96 55 70 96 45 70 96 55 70 96 45 64 97 47 64 97 47 70 96 45
++70 96 55 70 96 55 73 107 51 73 107 51 82 107 52 70 96 55 73 107 51 81 96 56
++73 107 51 73 107 51 70 96 55 82 107 52 73 107 51 75 99 72 82 107 52 70 96 55
++73 107 51 81 96 56 73 107 51 81 96 56 73 107 51 73 107 51 85 113 63 73 107 51
++85 113 63 75 99 72 85 113 63 85 113 63 75 99 72 85 113 63 85 113 63 75 99 72
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++87 120 67 85 113 63 87 120 67 98 106 55 85 113 63 87 120 67 87 120 67 85 113 63
++87 120 67 85 113 63 85 113 63 85 113 63 81 96 56 117 127 86 146 162 145 177 169 143
++208 215 180 166 180 164 208 215 180 166 180 164 166 156 164 177 169 143 166 156 164 146 162 145
++177 169 143 145 140 145 117 127 86 75 73 58 51 49 42 64 70 48 88 83 74 112 96 108
++99 93 84 75 77 62 60 49 42 51 49 42 51 49 42 59 55 55 75 73 58 75 81 69
++88 83 74 75 72 67 64 70 48 65 63 61 64 70 48 51 49 42 29 35 19 23 31 15
++32 39 24 32 39 24 32 39 24 23 31 15 6 15 6 23 31 15 51 73 47 87 99 72
++98 132 75 88 121 82 87 120 67 98 126 66 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 98 126 66
++87 120 67 87 120 67 87 120 67 98 126 66 88 121 82 98 126 66 88 121 82 98 126 66
++87 120 67 98 126 66 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 87 120 67 85 113 63 87 122 63 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67
++87 120 67 98 126 66 87 120 67 98 126 66 87 122 63 85 113 63 85 113 63 87 120 67
++98 106 55 87 120 67 98 126 66 87 120 67 87 120 67 98 126 66 87 120 67 98 126 66
++87 120 67 98 126 66 87 120 67 98 126 66 98 126 66 87 120 67 87 120 67 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 88 121 82 98 132 75 87 120 67 98 132 75
++87 120 67 98 132 75 98 132 75 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75
++98 132 75 98 132 75 98 126 66 98 132 75 98 132 75 98 132 75 98 126 66 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 87 120 67
++98 126 66 98 132 75 98 126 66 98 132 75 98 132 75 87 120 67 98 126 66 87 120 67
++98 126 66 87 120 67 98 126 66 98 126 66 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 99 133 85 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 99 133 85 98 132 75 98 132 75 98 132 75
++98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 99 133 85 98 132 75 99 133 85 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 66 98 132 75 98 132 66 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75
++98 132 66 98 132 66 99 133 85 157 148 53 98 132 75 98 132 66 98 132 66 87 122 63
++82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 87 122 63 87 122 63 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 66 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 66 98 132 66 87 122 63 98 126 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66
++98 132 75 98 132 75 98 126 66 98 132 75 117 142 111 150 171 159 208 215 180 201 216 228
++225 222 201 233 241 227 221 238 247 233 241 227 233 241 227 233 241 227 240 251 247 240 251 247
++240 251 247 233 241 227 240 251 247 240 251 247 233 241 227 240 251 247 233 241 227 240 251 247
++233 241 227 240 251 247 233 241 227 240 251 247 233 241 227 240 251 247 240 251 247 240 251 247
++251 251 247 251 251 247 231 239 247 208 215 180 185 202 202 166 174 181 166 180 164 121 143 132
++88 121 82 87 120 67 98 126 66 88 121 82 87 120 67 98 126 66 88 121 82 87 120 67
++87 120 67 98 126 66 87 120 67 88 121 82 98 126 66 88 121 82 98 126 66 87 120 67
++98 126 66 87 120 67 98 132 75 98 126 66 98 126 66 98 126 66 98 126 66 87 120 67
++98 126 66 87 120 67 98 126 66 98 132 75 98 132 75 88 121 82 98 126 66 98 126 66
++88 121 82 98 126 66 98 126 66 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++98 126 66 87 120 67 98 132 75 98 126 66 98 126 66 98 126 66 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63
++82 119 53 85 113 63 82 119 53 85 113 63 82 107 52 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 82 107 52 82 107 52
++85 113 63 82 107 52 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++73 107 51 73 107 51 81 96 56 73 107 51 73 107 51 73 107 51 85 113 63 73 107 51
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 82 107 52 85 113 63
++82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 70 96 55 73 107 51 81 96 56
++73 107 51 73 107 51 70 96 55 73 107 51 81 96 56 70 96 55 73 107 51 70 96 55
++70 96 55 73 107 51 70 96 55 85 113 63 73 107 51 85 113 63 85 113 63 73 107 51
++70 96 55 73 107 51 70 96 55 70 96 55 70 96 55 73 107 51 70 96 55 73 107 51
++70 96 55 70 96 55 80 96 46 70 96 55 70 96 45 70 96 55 70 96 45 80 96 46
++70 96 55 70 96 45 70 96 45 70 96 45 64 97 47 70 96 45 70 96 45 70 96 55
++70 96 45 64 97 47 70 96 45 70 96 45 66 86 47 64 97 47 70 96 45 64 97 47
++66 86 47 64 97 47 70 96 45 70 96 45 66 86 47 70 96 55 70 96 45 70 96 45
++70 96 55 64 97 47 70 96 55 66 86 47 66 86 47 66 86 47 64 97 47 66 86 47
++70 96 45 66 86 47 64 97 47 66 86 47 66 86 47 57 86 47 66 86 47 57 86 47
++66 86 47 49 74 23 57 86 47 57 86 47 66 86 47 66 86 47 66 86 47 64 97 47
++66 86 47 66 86 47 64 97 47 66 86 47 66 86 47 66 86 47 66 86 47 70 96 55
++70 96 45 70 96 55 70 96 55 70 96 55 64 97 47 70 96 55 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 64 97 47 66 86 47 66 86 47 57 86 47 66 86 47
++57 86 47 66 86 47 57 86 47 57 86 47 66 86 47 66 86 47 64 97 47 66 86 47
++57 86 47 57 86 47 57 86 47 66 86 47 57 86 47 57 86 47 57 86 47 57 86 47
++66 86 47 57 86 47 57 86 47 57 86 47 66 86 47 49 74 23 57 86 47 57 86 47
++57 86 47 49 74 23 57 86 47 51 73 47 49 74 23 57 86 47 49 74 23 51 73 47
++49 74 23 51 73 47 57 86 47 49 74 23 51 73 47 57 86 47 51 73 47 49 74 23
++57 86 47 51 73 47 57 86 47 57 86 47 57 86 47 64 70 48 57 86 47 49 74 23
++51 73 47 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47
++49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 50 61 48
++49 74 23 50 61 48 49 74 23 63 55 45 49 74 23 49 74 23 47 49 42 49 74 23
++50 61 48 50 61 48 49 74 23 47 49 42 49 74 23 50 61 48 49 74 23 50 61 48
++
++57 86 47 57 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++57 86 47 66 86 47 57 86 47 57 86 47 57 86 47 49 74 23 57 86 47 49 74 23
++57 86 47 51 73 47 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 64 97 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 64 97 47 70 96 55 66 86 47 70 96 55
++70 96 45 70 96 55 70 96 55 70 96 55 70 96 45 70 96 55 66 86 47 70 96 45
++70 96 55 70 96 45 70 96 55 66 86 47 64 97 47 66 86 47 66 86 47 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 45 64 97 47 66 86 47 66 86 47
++70 96 45 70 96 55 70 96 55 70 96 45 70 96 55 80 96 46 70 96 55 70 96 45
++64 97 47 66 86 47 70 96 55 73 107 51 70 96 55 81 96 56 75 99 72 73 107 51
++75 99 72 70 96 55 70 96 55 81 96 56 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 45 70 96 55 70 96 55 70 96 55 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 55 70 96 45 73 107 51 73 107 51 81 96 56 73 107 51
++73 107 51 70 96 45 70 96 55 70 96 45 70 96 55 70 96 45 70 96 45 70 96 55
++73 107 51 73 107 51 81 96 56 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++81 96 56 73 107 51 85 113 63 73 107 51 85 113 63 73 107 51 73 107 51 82 107 52
++82 107 52 70 96 55 73 107 51 73 107 51 85 113 63 75 99 72 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 75 99 72 85 113 63 85 113 63 75 99 72 85 113 63
++85 113 63 75 99 72 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 87 120 67 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 81 96 56 117 127 86 146 162 145 208 215 180
++166 180 164 177 169 143 177 169 143 177 169 143 177 169 143 150 171 159 177 169 143 166 180 164
++146 151 137 146 150 115 145 140 145 138 126 108 112 123 108 88 83 74 75 73 58 75 77 62
++99 93 84 112 96 108 87 99 72 60 49 42 34 30 15 51 49 42 63 55 45 88 83 74
++112 123 108 99 93 84 65 63 61 29 35 19 29 35 19 47 44 42 47 49 42 47 49 42
++42 47 42 32 39 24 32 39 24 47 47 21 51 73 47 66 86 47 85 113 63 88 121 82
++98 113 84 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 98 126 66
++87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 85 113 63 87 120 67
++87 120 67 87 120 67 87 120 67 87 120 67 98 126 66 98 126 66 98 126 66 87 120 67
++87 120 67 87 120 67 98 113 84 87 120 67 87 120 67 98 126 66 87 120 67 87 120 67
++87 120 67 87 120 67 87 122 63 87 122 63 87 120 67 87 120 67 87 122 63 87 120 67
++87 122 63 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 98 126 66 88 121 82
++87 120 67 87 120 67 87 120 67 87 120 67 85 113 63 87 122 63 85 113 63 85 113 63
++87 122 63 87 120 67 98 126 66 85 113 63 98 126 66 87 120 67 98 126 66 98 113 84
++98 126 66 87 120 67 98 132 75 98 132 75 87 120 67 98 132 75 98 132 75 87 120 67
++98 132 75 98 132 75 88 121 82 98 132 75 98 132 75 87 120 67 98 132 75 87 120 67
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 126 66 88 121 82 98 126 66 87 120 67 98 132 75 98 126 66
++98 126 66 88 121 82 98 126 66 98 132 75 98 132 75 88 121 82 98 126 66 98 132 75
++87 120 67 87 120 67 87 120 67 98 132 75 98 126 66 98 132 75 87 120 67 98 126 66
++87 120 67 87 120 67 98 126 66 88 121 82 98 126 66 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 98 132 75
++98 132 66 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 66 98 132 75 98 132 66 98 132 75 98 132 75
++98 132 75 98 132 75 99 133 85 98 132 75 99 133 85 98 132 75 99 133 85 98 132 75
++99 133 85 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 87 122 63
++98 132 75 87 122 63 98 132 66 98 132 66 98 132 66 98 132 66 98 132 75 98 132 66
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66 98 132 66 82 119 53
++82 107 52 73 107 51 70 96 55 73 107 51 82 107 52 82 119 53 87 122 63 87 122 63
++98 132 66 98 132 66 98 132 66 98 132 75 98 132 75 98 132 66 98 132 75 98 132 66
++87 120 67 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 66
++98 132 66 87 120 67 87 122 63 98 132 66 87 122 63 87 122 63 98 126 66 87 122 63
++98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 87 122 63 87 120 67
++98 126 66 88 121 82 98 126 66 88 121 82 117 127 86 146 162 145 166 180 164 185 202 202
++225 222 201 201 216 228 233 241 227 201 216 228 231 239 247 240 251 247 246 237 247 240 251 247
++233 241 227 246 237 247 233 241 227 233 241 227 233 241 227 233 241 227 233 241 227 233 241 227
++233 241 227 233 241 227 233 241 227 233 241 227 233 241 227 233 241 227 233 241 227 233 241 227
++251 251 247 251 251 247 240 251 247 233 241 227 185 202 202 166 180 164 150 171 159 117 142 111
++87 120 67 87 120 67 88 121 82 87 120 67 98 126 66 87 120 67 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 98 126 66
++87 120 67 87 120 67 87 120 67 98 126 66 88 121 82 98 126 66 87 120 67 87 120 67
++87 120 67 98 126 66 88 121 82 87 120 67 98 126 66 87 120 67 87 120 67 88 121 82
++98 126 66 87 120 67 87 120 67 87 120 67 85 113 63 87 120 67 87 120 67 87 120 67
++87 120 67 88 121 82 87 120 67 88 121 82 98 126 66 87 120 67 87 120 67 87 120 67
++87 120 67 85 113 63 85 113 63 82 119 53 82 107 52 82 119 53 82 107 52 73 107 51
++85 113 63 73 107 51 73 107 51 82 107 52 82 107 52 82 107 52 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 82 107 52 85 113 63
++73 107 51 85 113 63 73 107 51 82 107 52 85 113 63 82 107 52 85 113 63 73 107 51
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 73 107 51 82 107 52
++73 107 51 85 113 63 73 107 51 73 107 51 81 96 56 73 107 51 75 99 72 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 82 107 52
++85 113 63 82 107 52 85 113 63 73 107 51 82 107 52 73 107 51 85 113 63 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 82 107 52
++73 107 51 81 96 56 70 96 55 80 96 46 70 96 55 73 107 51 70 96 55 73 107 51
++81 96 56 73 107 51 81 96 56 73 107 51 70 96 55 73 107 51 70 96 55 73 107 51
++81 96 56 73 107 51 70 96 55 82 107 52 85 113 63 70 96 55 73 107 51 81 96 56
++73 107 51 73 107 51 81 96 56 73 107 51 73 107 51 70 96 55 73 107 51 70 96 55
++80 96 46 73 107 51 73 107 51 82 107 52 73 107 51 70 96 55 80 96 46 73 107 51
++70 96 55 80 96 46 64 97 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 55 70 96 45 64 97 47 70 96 45 70 96 45 70 96 45 66 86 47
++70 96 45 70 96 45 70 96 55 70 96 45 70 96 45 70 96 45 70 96 45 70 96 55
++70 96 45 70 96 55 66 86 47 70 96 55 66 86 47 70 96 55 66 86 47 70 96 45
++64 97 47 70 96 45 66 86 47 64 97 47 66 86 47 64 97 47 57 86 47 66 86 47
++57 86 47 66 86 47 66 86 47 66 86 47 70 96 45 57 86 47 64 97 47 66 86 47
++70 96 55 66 86 47 64 97 47 66 86 47 64 97 47 66 86 47 70 96 55 64 97 47
++70 96 55 70 96 45 66 86 47 66 86 47 66 86 47 66 86 47 64 97 47 66 86 47
++57 86 47 66 86 47 64 97 47 66 86 47 66 86 47 66 86 47 66 86 47 64 97 47
++66 86 47 57 86 47 57 86 47 66 86 47 57 86 47 66 86 47 66 86 47 66 86 47
++57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47
++57 86 47 66 86 47 66 86 47 57 86 47 57 86 47 57 86 47 49 74 23 51 73 47
++49 74 23 57 86 47 49 74 23 51 73 47 57 86 47 49 74 23 51 73 47 49 74 23
++51 73 47 49 74 23 51 73 47 49 74 23 57 86 47 49 74 23 49 74 23 51 73 47
++49 74 23 57 86 47 49 74 23 51 73 47 49 74 23 49 74 23 51 73 47 49 74 23
++51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 51 73 47
++49 74 23 50 61 48 49 74 23 50 61 48 49 74 23 43 55 48 49 74 23 47 49 42
++49 74 23 50 61 48 49 74 23 50 61 48 49 74 23 50 61 48 49 74 23 50 61 48
++49 74 23 47 49 42 49 74 23 43 55 48 49 74 23 50 61 48 50 61 48 49 74 23
++
++57 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 57 86 47 57 86 47 66 86 47 57 86 47 66 86 47
++49 74 23 57 86 47 57 86 47 57 86 47 66 86 47 66 86 47 57 86 47 66 86 47
++64 97 47 66 86 47 70 96 55 70 96 55 64 97 47 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 64 97 47 66 86 47 66 86 47 70 96 55 70 96 45 66 86 47
++70 96 55 66 86 47 81 96 56 70 96 55 70 96 55 70 96 55 70 96 55 70 96 45
++66 86 47 70 96 55 64 97 47 66 86 47 66 86 47 64 97 47 66 86 47 66 86 47
++66 86 47 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 45 66 86 47 57 86 47
++64 97 47 70 96 55 70 96 45 70 96 45 66 86 47 66 86 47 70 96 45 66 86 47
++70 96 45 70 96 55 70 96 55 81 96 56 70 96 55 73 107 51 81 96 56 70 96 55
++70 96 55 73 107 51 70 96 55 70 96 55 70 96 55 81 96 56 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 45 70 96 55 80 96 46 70 96 55 70 96 45 70 96 55
++70 96 45 70 96 55 70 96 55 73 107 51 81 96 56 70 96 55 73 107 51 73 107 51
++70 96 55 70 96 55 73 107 51 70 96 55 73 107 51 70 96 55 70 96 55 73 107 51
++70 96 55 82 107 52 73 107 51 73 107 51 81 96 56 73 107 51 81 96 56 73 107 51
++73 107 51 81 96 56 73 107 51 75 99 72 73 107 51 81 96 56 73 107 51 81 96 56
++73 107 51 73 107 51 73 107 51 70 96 55 73 107 51 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 75 99 72 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 87 99 72 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 75 99 72 85 113 63 146 150 115 166 180 164 166 180 164
++208 215 180 166 180 164 166 180 164 166 156 164 146 162 145 166 180 164 166 180 164 189 165 168
++166 156 164 146 151 137 177 169 143 185 202 202 166 180 164 146 151 137 90 98 89 75 73 58
++75 81 69 99 93 84 99 93 84 64 70 48 55 55 48 88 83 74 98 113 84 117 99 86
++112 123 108 87 99 72 55 55 48 22 24 13 22 24 13 47 47 21 51 49 42 47 49 42
++32 39 24 32 39 24 51 73 47 70 96 55 87 99 72 98 113 84 98 132 75 98 113 84
++87 120 67 85 113 63 87 120 67 85 113 63 87 120 67 87 120 67 87 120 67 85 113 63
++87 120 67 87 120 67 85 113 63 87 120 67 85 113 63 87 120 67 85 113 63 85 113 63
++85 113 63 85 113 63 87 120 67 87 120 67 87 120 67 88 121 82 98 126 66 87 120 67
++98 126 66 87 120 67 87 120 67 98 126 66 87 120 67 98 113 84 87 120 67 87 120 67
++98 126 66 87 120 67 87 120 67 87 120 67 87 122 63 87 120 67 87 120 67 87 122 63
++87 120 67 87 122 63 87 120 67 87 120 67 98 126 66 87 120 67 87 120 67 87 120 67
++98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 98 106 55 87 122 63 85 113 63
++98 126 66 85 113 63 98 126 66 87 120 67 87 120 67 98 126 66 87 120 67 98 126 66
++98 126 66 98 132 75 98 126 66 98 132 75 98 132 75 87 120 67 98 132 75 87 120 67
++87 120 67 87 120 67 98 132 66 87 120 67 87 120 67 98 132 75 87 120 67 98 132 75
++87 120 67 98 132 75 88 121 82 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 126 66 98 126 66 98 132 75 98 126 66 88 121 82
++98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 98 126 66 98 132 75 98 126 66
++98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 98 132 75
++98 126 66 98 126 66 87 120 67 98 126 66 98 126 66 87 120 67 98 126 66 87 120 67
++98 126 66 98 126 66 87 120 67 98 126 66 98 126 66 87 120 67 98 132 75 98 132 75
++87 120 67 98 132 75 98 126 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 66
++98 132 66 98 132 75 98 132 66 98 132 75 98 132 66 98 132 66 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 126 66 98 132 75 87 120 67 98 126 66 98 132 75
++98 132 75 98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 87 122 63 87 122 63 87 122 63
++98 132 66 87 122 63 82 119 53 87 122 63 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 66 98 126 66 82 119 53 82 107 52
++73 107 51 73 107 51 80 96 46 73 107 51 82 107 52 82 107 52 87 122 63 87 122 63
++98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 87 120 67
++98 126 66 98 132 75 87 120 67 98 126 66 98 132 66 98 132 66 98 132 75 98 132 75
++98 132 75 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75 98 132 75 98 126 66
++87 120 67 98 126 66 87 122 63 87 122 63 87 122 63 87 122 63 87 122 63 87 122 63
++87 122 63 87 122 63 87 122 63 87 122 63 85 113 63 87 122 63 87 122 63 87 122 63
++87 120 67 87 120 67 98 126 66 87 120 67 99 133 85 146 150 115 166 180 164 185 202 202
++185 202 202 225 222 201 201 216 228 233 241 227 231 239 247 233 241 227 235 238 247 233 241 227
++233 241 227 233 241 227 233 241 227 235 238 247 233 241 227 246 237 247 233 241 227 240 251 247
++233 241 227 235 238 247 233 241 227 235 238 247 233 241 227 233 241 227 235 238 247 233 241 227
++233 241 227 240 251 247 251 251 247 240 251 247 233 241 227 166 174 181 121 143 132 88 121 82
++75 99 72 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 87 122 63 87 122 63 85 113 63 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 85 113 63 87 120 67 87 120 67 98 126 66 87 120 67
++87 120 67 87 120 67 85 113 63 87 120 67 85 113 63 87 120 67 85 113 63 87 122 63
++85 113 63 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++87 120 67 85 113 63 98 126 66 87 120 67 87 122 63 85 113 63 87 122 63 85 113 63
++85 113 63 85 113 63 73 107 51 85 113 63 73 107 51 73 107 51 85 113 63 73 107 51
++82 119 53 73 107 51 85 113 63 73 107 51 85 113 63 73 107 51 82 107 52 73 107 51
++85 113 63 82 107 52 85 113 63 82 107 52 85 113 63 73 107 51 73 107 51 85 113 63
++73 107 51 82 107 52 73 107 51 85 113 63 73 107 51 85 113 63 73 107 51 85 113 63
++82 107 52 73 107 51 85 113 63 73 107 51 82 107 52 73 107 51 85 113 63 85 113 63
++82 107 52 70 96 55 73 107 51 73 107 51 73 107 51 85 113 63 73 107 51 85 113 63
++73 107 51 85 113 63 73 107 51 85 113 63 85 113 63 82 107 52 82 107 52 85 113 63
++73 107 51 85 113 63 73 107 51 81 96 56 73 107 51 73 107 51 70 96 55 73 107 51
++70 96 55 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51
++73 107 51 73 107 51 70 96 45 64 97 47 70 96 45 70 96 45 73 107 51 70 96 55
++85 113 63 73 107 51 81 96 56 73 107 51 73 107 51 70 96 55 73 107 51 70 96 55
++73 107 51 70 96 55 73 107 51 70 96 55 73 107 51 70 96 55 73 107 51 70 96 55
++73 107 51 81 96 56 73 107 51 73 107 51 70 96 55 70 96 45 70 96 55 73 107 51
++73 107 51 81 96 56 81 96 56 82 107 52 81 96 56 73 107 51 70 96 55 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 45 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 45 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 45
++70 96 55 70 96 45 70 96 55 64 97 47 70 96 55 70 96 45 70 96 55 70 96 55
++70 96 45 70 96 45 70 96 45 70 96 45 64 97 47 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 64 97 47 66 86 47 64 97 47 66 86 47 66 86 47 64 97 47
++66 86 47 64 97 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 70 96 55
++66 86 47 70 96 55 64 97 47 66 86 47 64 97 47 57 86 47 66 86 47 57 86 47
++66 86 47 57 86 47 66 86 47 66 86 47 64 97 47 66 86 47 66 86 47 57 86 47
++66 86 47 57 86 47 66 86 47 57 86 47 66 86 47 66 86 47 57 86 47 57 86 47
++57 86 47 57 86 47 49 74 23 57 86 47 57 86 47 49 74 23 66 86 47 57 86 47
++64 97 47 66 86 47 57 86 47 66 86 47 49 74 23 57 86 47 51 73 47 57 86 47
++57 86 47 51 73 47 57 86 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23
++51 73 47 49 74 23 57 86 47 51 73 47 51 73 47 51 73 47 49 74 23 57 86 47
++51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 51 73 47 49 74 23 51 73 47
++49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 51 73 47 49 74 23
++51 73 47 49 74 23 43 55 48 49 74 23 43 55 48 49 74 23 43 55 48 49 74 23
++47 49 42 49 74 23 50 61 48 49 74 23 50 61 48 49 74 23 51 73 47 50 61 48
++49 74 23 43 55 48 49 74 23 42 47 42 49 74 23 47 49 42 49 74 23 50 61 48
++
++57 86 47 66 86 47 70 96 55 66 86 47 66 86 47 70 96 55 66 86 47 66 86 47
++66 86 47 66 86 47 57 86 47 57 86 47 57 86 47 57 86 47 66 86 47 57 86 47
++66 86 47 66 86 47 57 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++70 96 55 66 86 47 70 96 55 66 86 47 70 96 55 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 70 96 45 70 96 55 66 86 47 70 96 55 66 86 47
++66 86 47 70 96 45 70 96 55 70 96 55 70 96 55 70 96 45 70 96 55 70 96 55
++70 96 55 70 96 45 66 86 47 66 86 47 64 97 47 66 86 47 66 86 47 64 97 47
++70 96 55 70 96 45 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 81 96 56 64 97 47 70 96 45
++66 86 47 64 97 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 64 97 47
++64 97 47 70 96 55 73 107 51 81 96 56 73 107 51 70 96 55 73 107 51 70 96 55
++73 107 51 70 96 55 70 96 55 73 107 51 81 96 56 73 107 51 70 96 55 70 96 45
++70 96 45 70 96 55 70 96 55 70 96 45 70 96 45 70 96 45 81 96 56 70 96 45
++81 96 56 73 107 51 73 107 51 73 107 51 73 107 51 85 113 63 70 96 55 73 107 51
++70 96 55 82 107 52 70 96 55 81 96 56 82 107 52 70 96 55 82 107 52 73 107 51
++82 107 52 82 107 52 81 96 56 73 107 51 82 107 52 70 96 55 73 107 51 81 96 56
++73 107 51 75 99 72 82 107 52 82 107 52 85 113 63 85 113 63 73 107 51 85 113 63
++70 96 55 70 96 55 73 107 51 81 96 56 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 73 107 51 85 113 63 75 99 72 85 113 63 73 107 51 85 113 63
++75 99 72 82 107 52 85 113 63 75 99 72 85 113 63 85 113 63 85 113 63 82 107 52
++85 113 63 70 96 55 85 113 63 82 107 52 82 107 52 82 107 52 81 96 56 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 88 121 82 146 150 115 166 180 164 208 215 180
++208 215 180 189 165 168 166 180 164 177 169 143 177 169 143 177 169 143 166 180 164 208 215 180
++166 180 164 177 169 143 166 174 181 208 215 180 208 215 180 189 165 168 148 160 159 112 123 108
++88 83 74 64 70 48 64 70 48 63 55 51 75 81 69 112 123 108 138 126 108 112 123 108
++88 83 74 60 49 42 47 49 42 47 47 21 47 49 42 47 49 42 47 47 21 32 39 24
++32 39 24 51 73 47 81 96 56 98 113 84 88 121 82 87 122 63 87 120 67 85 113 63
++87 120 67 87 120 67 98 126 66 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 85 113 63 98 126 66 85 113 63 87 120 67 87 120 67 87 120 67 85 113 63
++85 113 63 85 113 63 85 113 63 87 120 67 87 120 67 87 120 67 87 120 67 98 126 66
++88 121 82 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 98 126 66 88 121 82
++87 120 67 98 126 66 87 120 67 87 120 67 87 120 67 87 120 67 87 122 63 85 113 63
++87 122 63 87 120 67 87 122 63 87 120 67 87 120 67 87 120 67 98 126 66 87 120 67
++87 120 67 98 132 75 87 120 67 87 120 67 87 120 67 87 120 67 87 122 63 87 122 63
++87 122 63 87 122 63 85 113 63 87 120 67 87 120 67 87 120 67 98 126 66 88 121 82
++98 126 66 88 121 82 98 132 75 98 126 66 88 121 82 98 126 66 98 126 66 87 120 67
++87 122 63 98 132 66 87 120 67 98 132 75 87 120 67 87 120 67 87 122 63 98 126 66
++98 132 75 98 132 75 98 126 66 98 132 75 98 126 66 98 126 66 98 132 75 98 126 66
++98 132 75 98 126 66 88 121 82 98 126 66 88 121 82 98 126 66 88 121 82 98 126 66
++98 126 66 98 132 75 87 120 67 98 132 75 98 132 75 98 113 84 98 126 66 98 126 66
++98 126 66 98 126 66 98 126 66 87 120 67 98 126 66 98 126 66 98 132 66 98 126 66
++87 122 63 98 126 66 87 122 63 98 126 66 87 122 63 98 126 66 87 120 67 98 126 66
++87 120 67 87 120 67 98 126 66 87 122 63 87 120 67 98 132 75 87 120 67 98 126 66
++98 126 66 98 126 66 87 120 67 98 126 66 87 120 67 87 120 67 87 120 67 87 122 63
++87 120 67 98 132 66 87 120 67 98 132 66 98 132 66 98 132 66 98 132 66 98 132 66
++98 132 66 87 122 63 98 132 66 87 120 67 87 122 63 87 120 67 98 132 66 87 120 67
++98 132 66 98 132 66 98 132 66 98 132 66 98 132 75 98 132 75 98 132 75 98 132 75
++98 132 75 98 132 75 98 132 75 98 132 75 87 122 63 87 122 63 87 122 63 87 122 63
++87 122 63 87 122 63 87 122 63 82 119 53 82 119 53 87 122 63 98 132 66 98 132 66
++98 132 66 98 132 66 98 132 66 98 132 66 82 119 53 87 122 63 82 107 52 82 107 52
++82 107 52 70 96 45 73 107 51 73 107 51 82 107 52 85 113 63 85 113 63 98 126 66
++87 120 67 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66 98 126 66
++98 126 66 87 120 67 98 126 66 98 126 66 87 120 67 98 126 66 98 126 66 98 126 66
++98 126 66 98 132 66 98 132 66 98 132 66 98 132 66 98 126 66 98 126 66 87 122 63
++87 122 63 87 122 63 87 122 63 82 119 53 87 122 63 82 119 53 82 119 53 82 119 53
++82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 85 113 63 87 122 63
++87 122 63 87 122 63 87 120 67 87 120 67 98 126 66 99 133 85 146 162 145 208 215 180
++185 202 202 201 216 228 233 241 227 233 241 227 221 238 247 233 241 227 233 241 227 226 221 247
++233 241 227 231 239 247 235 238 247 233 241 227 231 239 247 233 241 227 240 251 247 235 238 247
++235 238 247 240 251 247 235 238 247 233 241 227 235 238 247 235 238 247 233 241 227 235 238 247
++235 238 247 233 241 227 251 251 247 251 251 247 233 241 227 166 180 164 112 123 108 75 99 72
++85 113 63 85 113 63 87 122 63 85 113 63 87 122 63 85 113 63 82 119 53 87 122 63
++82 119 53 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 87 122 63 85 113 63
++85 113 63 87 122 63 85 113 63 85 113 63 87 122 63 85 113 63 87 120 67 87 120 67
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++82 119 53 85 113 63 85 113 63 82 107 52 82 107 52 85 113 63 82 119 53 85 113 63
++82 119 53 85 113 63 85 113 63 87 122 63 87 122 63 85 113 63 82 119 53 85 113 63
++82 119 53 85 113 63 82 119 53 73 107 51 85 113 63 82 119 53 73 107 51 85 113 63
++73 107 51 85 113 63 73 107 51 85 113 63 82 119 53 85 113 63 73 107 51 85 113 63
++73 107 51 85 113 63 73 107 51 85 113 63 73 107 51 82 107 52 73 107 51 73 107 51
++85 113 63 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51
++85 113 63 82 107 52 85 113 63 82 107 52 85 113 63 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 82 107 52 75 99 72 82 107 52 85 113 63 85 113 63 85 113 63
++73 107 51 85 113 63 82 107 52 85 113 63 73 107 51 85 113 63 73 107 51 81 96 56
++73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 70 96 55 73 107 51 73 107 51
++73 107 51 73 107 51 70 96 55 73 107 51 81 96 56 73 107 51 85 113 63 70 96 55
++73 107 51 70 96 55 64 97 47 70 96 45 64 97 47 70 96 45 70 96 55 73 107 51
++81 96 56 70 96 55 82 107 52 70 96 55 70 96 55 70 96 45 70 96 55 70 96 45
++70 96 55 73 107 51 70 96 55 73 107 51 70 96 55 73 107 51 70 96 55 73 107 51
++70 96 55 73 107 51 70 96 55 70 96 55 70 96 45 70 96 55 70 96 45 81 96 56
++73 107 51 75 99 72 85 113 63 73 107 51 70 96 55 70 96 55 70 96 45 70 96 45
++66 86 47 70 96 45 70 96 45 70 96 55 70 96 45 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 45 70 96 55 73 107 51 80 96 46 73 107 51 70 96 55 73 107 51
++81 96 56 73 107 51 81 96 56 73 107 51 81 96 56 70 96 55 70 96 55 70 96 55
++70 96 45 70 96 55 70 96 45 70 96 55 70 96 45 70 96 55 70 96 55 73 107 51
++70 96 55 70 96 55 64 97 47 66 86 47 64 97 47 66 86 47 64 97 47 66 86 47
++64 97 47 66 86 47 66 86 47 64 97 47 66 86 47 64 97 47 66 86 47 66 86 47
++66 86 47 64 97 47 66 86 47 70 96 55 64 97 47 66 86 47 64 97 47 66 86 47
++70 96 55 66 86 47 66 86 47 64 97 47 57 86 47 57 86 47 57 86 47 57 86 47
++57 86 47 66 86 47 66 86 47 64 97 47 66 86 47 66 86 47 57 86 47 70 96 45
++49 74 23 70 96 45 66 86 47 66 86 47 64 97 47 57 86 47 66 86 47 49 74 23
++66 86 47 51 73 47 57 86 47 75 73 36 57 86 47 57 86 47 57 86 47 57 86 47
++66 86 47 57 86 47 57 86 47 57 86 47 57 86 47 49 74 23 57 86 47 49 74 23
++51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 51 73 47
++51 73 47 51 73 47 49 74 23 57 86 47 49 74 23 51 73 47 51 73 47 49 74 23
++51 73 47 51 73 47 49 74 23 64 70 48 49 74 23 51 73 47 49 74 23 51 73 47
++49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 50 61 48
++49 74 23 50 61 48 49 74 23 47 47 21 49 74 23 43 55 48 49 74 23 43 55 48
++49 74 23 49 74 23 50 61 48 49 74 23 50 61 48 49 74 23 50 61 48 49 74 23
++47 49 42 47 49 42 49 74 23 35 46 43 49 74 23 42 47 42 50 61 48 49 74 23
++
++57 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 57 86 47 57 86 47 66 86 47 57 86 47 64 97 47 66 86 47
++64 97 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 70 96 55 66 86 47 70 96 55 66 86 47 70 96 55 66 86 47 66 86 47
++66 86 47 70 96 55 66 86 47 70 96 55 70 96 45 70 96 55 70 96 55 70 96 55
++66 86 47 70 96 55 66 86 47 80 96 46 70 96 55 70 96 55 70 96 55 81 96 56
++70 96 55 66 86 47 70 96 55 66 86 47 66 86 47 64 97 47 66 86 47 70 96 55
++66 86 47 70 96 55 70 96 45 70 96 55 70 96 55 70 96 55 70 96 55 81 96 56
++73 107 51 81 96 56 81 96 56 70 96 55 70 96 55 70 96 45 70 96 55 70 96 55
++70 96 55 70 96 45 66 86 47 57 86 47 66 86 47 57 86 47 57 86 47 66 86 47
++70 96 45 70 96 55 70 96 55 73 107 51 70 96 55 81 96 56 81 96 56 73 107 51
++81 96 56 70 96 45 81 96 56 70 96 55 70 96 55 81 96 56 73 107 51 70 96 55
++70 96 55 70 96 45 70 96 55 70 96 55 70 96 55 81 96 56 70 96 55 73 107 51
++82 107 52 81 96 56 85 113 63 85 113 63 75 99 72 73 107 51 70 96 55 73 107 51
++70 96 55 85 113 63 75 99 72 85 113 63 85 113 63 85 113 63 81 96 56 85 113 63
++85 113 63 75 99 72 82 107 52 73 107 51 85 113 63 73 107 51 81 96 56 73 107 51
++85 113 63 73 107 51 85 113 63 73 107 51 85 113 63 73 107 51 85 113 63 81 96 56
++73 107 51 82 107 52 82 107 52 85 113 63 73 107 51 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 73 107 51
++85 113 63 85 113 63 73 107 51 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 73 107 51 85 113 63 82 107 52 85 113 63 81 96 56 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 88 121 82 146 150 115 166 180 164 208 215 180
++185 202 202 208 215 180 166 180 164 177 169 143 148 160 159 177 169 143 166 180 164 166 180 164
++177 169 143 166 156 164 166 180 164 189 165 168 188 180 202 185 202 202 208 215 180 166 180 164
++146 151 137 90 98 89 64 70 48 47 49 42 64 70 48 99 93 84 98 113 84 88 83 74
++64 70 48 63 55 45 55 55 48 55 55 48 51 49 42 47 47 21 33 39 38 47 47 21
++64 70 48 75 81 69 98 113 84 98 113 84 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 98 126 66 87 120 67 87 120 67 98 126 66 87 120 67 87 120 67 98 126 66
++87 120 67 87 120 67 87 120 67 85 113 63 87 120 67 98 126 66 87 120 67 87 120 67
++98 126 66 88 121 82 98 126 66 88 121 82 98 126 66 87 120 67 98 126 66 87 120 67
++98 126 66 87 120 67 87 120 67 87 122 63 87 120 67 87 122 63 87 120 67 87 120 67
++87 120 67 85 113 63 87 122 63 85 113 63 87 122 63 87 120 67 87 120 67 98 132 75
++98 132 75 87 120 67 98 132 75 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67
++87 122 63 85 113 63 98 126 66 87 122 63 87 122 63 87 122 63 87 120 67 87 120 67
++98 126 66 98 126 66 87 120 67 87 120 67 98 126 66 88 121 82 98 126 66 87 120 67
++87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 122 63 87 122 63
++87 120 67 87 120 67 98 126 66 87 120 67 98 126 66 88 121 82 98 126 66 98 132 75
++98 113 84 98 132 75 98 132 75 98 126 66 98 132 75 98 126 66 98 126 66 98 126 66
++87 120 67 87 120 67 98 126 66 87 120 67 98 126 66 98 126 66 98 126 66 87 120 67
++98 126 66 98 126 66 87 122 63 98 126 66 87 122 63 87 122 63 98 126 66 87 122 63
++98 126 66 98 126 66 98 126 66 87 122 63 87 122 63 87 122 63 87 122 63 87 120 67
++87 122 63 87 122 63 87 122 63 87 122 63 87 122 63 87 120 67 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 98 126 66 87 122 63
++87 122 63 87 120 67 87 120 67 87 120 67 87 120 67 87 122 63 87 120 67 87 122 63
++87 120 67 87 122 63 87 120 67 87 122 63 87 122 63 87 122 63 87 122 63 87 122 63
++87 122 63 82 119 53 87 122 63 87 122 63 87 122 63 98 132 66 87 122 63 98 132 66
++87 122 63 98 132 66 87 122 63 87 120 67 87 120 67 87 122 63 87 122 63 82 119 53
++82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53
++82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 82 107 52 82 107 52
++73 107 51 82 107 52 80 96 46 82 107 52 82 107 52 82 119 53 82 107 52 85 113 63
++85 113 63 87 122 63 98 106 55 87 122 63 87 122 63 87 122 63 98 126 66 87 120 67
++98 126 66 98 126 66 87 122 63 87 122 63 87 122 63 87 122 63 87 122 63 87 122 63
++98 126 66 87 120 67 98 126 66 98 126 66 98 126 66 87 122 63 87 122 63 85 113 63
++82 119 53 82 107 52 82 119 53 82 119 53 82 119 53 82 119 53 82 107 52 82 119 53
++82 107 52 73 107 51 82 107 52 82 119 53 85 113 63 82 119 53 82 119 53 85 113 63
++82 119 53 85 113 63 82 119 53 85 113 63 87 120 67 99 133 85 146 150 115 166 180 164
++185 202 202 208 215 180 201 216 228 225 222 201 201 216 228 201 216 228 233 241 227 233 241 227
++235 238 247 233 241 227 231 239 247 233 241 227 231 239 247 235 238 247 233 241 227 240 251 247
++240 251 247 240 251 247 240 251 247 246 237 247 240 251 247 246 237 247 240 251 247 246 237 247
++240 251 247 246 237 247 240 251 247 251 251 247 233 241 227 185 202 202 112 123 108 70 96 55
++70 96 55 85 113 63 82 119 53 85 113 63 82 119 53 87 122 63 82 119 53 82 119 53
++82 119 53 85 113 63 85 113 63 98 106 55 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 82 119 53 85 113 63 85 113 63 87 122 63 85 113 63 85 113 63
++85 113 63 82 119 53 82 119 53 73 107 51 82 107 52 82 107 52 85 113 63 82 119 53
++82 107 52 82 119 53 82 107 52 85 113 63 82 119 53 82 107 52 82 107 52 82 119 53
++82 107 52 82 107 52 82 119 53 82 107 52 82 107 52 82 119 53 82 107 52 85 113 63
++73 107 51 82 119 53 85 113 63 85 113 63 85 113 63 85 113 63 82 119 53 85 113 63
++73 107 51 85 113 63 82 119 53 85 113 63 73 107 51 85 113 63 73 107 51 73 107 51
++82 107 52 73 107 51 82 107 52 85 113 63 73 107 51 85 113 63 70 96 55 85 113 63
++73 107 51 82 107 52 73 107 51 75 99 72 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 70 96 55
++73 107 51 70 96 55 73 107 51 73 107 51 73 107 51 85 113 63 73 107 51 85 113 63
++85 113 63 82 107 52 73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51
++81 96 56 73 107 51 73 107 51 81 96 56 73 107 51 73 107 51 81 96 56 70 96 55
++70 96 55 73 107 51 70 96 55 73 107 51 73 107 51 70 96 55 73 107 51 73 107 51
++73 107 51 70 96 45 64 97 47 64 97 47 66 86 47 64 97 47 70 96 45 70 96 55
++70 96 55 82 107 52 70 96 55 73 107 51 70 96 55 70 96 45 70 96 45 73 107 51
++70 96 55 70 96 55 73 107 51 70 96 55 70 96 45 70 96 55 70 96 55 73 107 51
++70 96 55 73 107 51 70 96 55 70 96 45 70 96 45 64 97 47 73 107 51 70 96 55
++73 107 51 82 107 52 81 96 56 70 96 55 70 96 55 70 96 45 70 96 45 66 86 47
++66 86 47 66 86 47 70 96 45 70 96 55 70 96 45 70 96 55 70 96 55 70 96 55
++70 96 45 70 96 55 70 96 55 70 96 55 70 96 45 70 96 55 70 96 45 70 96 55
++73 107 51 70 96 55 70 96 55 70 96 55 73 107 51 70 96 55 73 107 51 70 96 55
++70 96 55 70 96 45 70 96 55 70 96 45 73 107 51 81 96 56 73 107 51 81 96 56
++70 96 55 70 96 45 70 96 55 70 96 45 66 86 47 70 96 55 66 86 47 64 97 47
++66 86 47 66 86 47 64 97 47 66 86 47 64 97 47 66 86 47 64 97 47 66 86 47
++64 97 47 66 86 47 66 86 47 64 97 47 66 86 47 66 86 47 70 96 55 66 86 47
++66 86 47 64 97 47 66 86 47 66 86 47 49 74 23 66 86 47 57 86 47 66 86 47
++66 86 47 57 86 47 66 86 47 57 86 47 66 86 47 64 97 47 66 86 47 64 97 47
++66 86 47 64 97 47 57 86 47 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47
++57 86 47 49 74 23 57 86 47 57 86 47 49 74 23 57 86 47 49 74 23 57 86 47
++49 74 23 66 86 47 49 74 23 57 86 47 49 74 23 57 86 47 51 73 47 49 74 23
++57 86 47 49 74 23 51 73 47 51 73 47 49 74 23 51 73 47 49 74 23 57 86 47
++49 74 23 51 73 47 57 86 47 51 73 47 51 73 47 57 86 47 49 74 23 64 70 48
++57 86 47 49 74 23 51 73 47 51 73 47 64 70 48 49 74 23 51 73 47 49 74 23
++50 61 48 49 74 23 51 73 47 49 74 23 50 61 48 49 74 23 51 73 47 49 74 23
++50 61 48 49 74 23 43 55 48 49 74 23 35 46 43 49 74 23 49 74 23 43 55 48
++49 74 23 47 49 42 49 74 23 50 61 48 49 74 23 50 61 48 49 74 23 50 61 48
++49 74 23 42 47 42 49 74 23 35 46 43 49 74 23 42 47 42 49 74 23 50 61 48
++
++66 86 47 57 86 47 66 86 47 57 86 47 57 86 47 66 86 47 66 86 47 70 96 55
++66 86 47 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 66 86 47 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 66 86 47 70 96 55 66 86 47 70 96 55
++70 96 55 66 86 47 70 96 55 66 86 47 70 96 55 66 86 47 70 96 55 70 96 55
++66 86 47 70 96 55 66 86 47 66 86 47 70 96 55 70 96 55 70 96 45 70 96 45
++66 86 47 70 96 45 70 96 55 66 86 47 70 96 55 70 96 55 80 96 46 70 96 55
++70 96 55 70 96 45 66 86 47 64 97 47 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 45 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 73 107 51 81 96 56 70 96 55 70 96 55 73 107 51 81 96 56 73 107 51
++70 96 55 70 96 45 66 86 47 70 96 45 57 86 47 49 74 23 66 86 47 57 86 47
++66 86 47 70 96 45 70 96 55 70 96 55 82 107 52 75 99 72 73 107 51 81 96 56
++73 107 51 73 107 51 81 96 56 73 107 51 73 107 51 70 96 55 70 96 55 80 96 46
++70 96 55 70 96 55 70 96 55 73 107 51 80 96 46 73 107 51 81 96 56 81 96 56
++85 113 63 73 107 51 85 113 63 81 96 56 85 113 63 85 113 63 82 107 52 75 99 72
++73 107 51 75 99 72 85 113 63 85 113 63 85 113 63 73 107 51 85 113 63 85 113 63
++73 107 51 85 113 63 82 107 52 85 113 63 73 107 51 73 107 51 73 107 51 81 96 56
++73 107 51 82 107 52 85 113 63 81 96 56 85 113 63 85 113 63 85 113 63 73 107 51
++85 113 63 81 96 56 85 113 63 85 113 63 85 113 63 81 96 56 85 113 63 85 113 63
++73 107 51 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 73 107 51 85 113 63
++75 99 72 82 107 52 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 73 107 51
++85 113 63 85 113 63 85 113 63 85 113 63 82 107 52 73 107 51 85 113 63 82 107 52
++85 113 63 85 113 63 81 96 56 87 120 67 117 127 86 146 151 137 166 180 164 166 180 164
++208 215 180 188 180 202 166 180 164 166 180 164 166 180 164 166 180 164 177 169 143 166 156 164
++150 171 159 177 169 143 146 151 137 146 162 145 177 169 143 166 180 164 189 165 168 148 160 159
++138 126 108 90 98 89 75 77 62 64 70 48 55 55 48 51 49 42 47 44 42 32 39 24
++51 49 42 55 55 48 64 70 48 51 49 42 51 49 42 51 49 42 50 61 48 51 73 47
++66 86 47 98 113 84 99 133 85 87 120 67 87 120 67 87 120 67 87 120 67 98 126 66
++87 120 67 98 126 66 98 126 66 98 113 84 98 126 66 87 120 67 98 126 66 87 120 67
++98 113 84 87 120 67 98 126 66 98 113 84 87 120 67 87 120 67 87 120 67 85 113 63
++85 113 63 87 120 67 85 113 63 87 120 67 87 120 67 87 120 67 98 126 66 98 126 66
++88 121 82 98 126 66 98 126 66 88 121 82 98 126 66 87 120 67 87 120 67 98 126 66
++87 120 67 98 126 66 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++98 126 66 87 120 67 87 120 67 87 120 67 87 120 67 98 126 66 88 121 82 98 132 66
++87 120 67 98 132 75 98 132 75 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 87 122 63 87 120 67 87 122 63 85 113 63 87 122 63 85 113 63 87 120 67
++87 120 67 87 120 67 87 120 67 87 120 67 87 122 63 98 126 66 87 122 63 87 120 67
++87 122 63 87 122 63 87 122 63 87 122 63 85 113 63 87 122 63 85 113 63 87 122 63
++87 122 63 85 113 63 87 120 67 85 113 63 87 120 67 87 120 67 87 120 67 87 120 67
++98 126 66 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67
++87 120 67 87 120 67 87 122 63 87 120 67 87 120 67 87 120 67 87 120 67 87 122 63
++87 122 63 87 120 67 87 122 63 87 122 63 85 113 63 87 122 63 87 122 63 87 122 63
++87 122 63 87 122 63 85 113 63 82 119 53 82 119 53 82 119 53 85 113 63 82 119 53
++85 113 63 82 119 53 82 119 53 85 113 63 82 119 53 85 113 63 87 122 63 87 122 63
++82 119 53 87 122 63 87 122 63 87 122 63 87 122 63 85 113 63 82 119 53 85 113 63
++87 122 63 82 119 53 85 113 63 85 113 63 82 119 53 85 113 63 82 119 53 87 122 63
++87 122 63 82 119 53 87 122 63 82 119 53 85 113 63 82 119 53 85 113 63 82 119 53
++85 113 63 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 87 122 63 87 122 63
++87 122 63 82 119 53 87 122 63 87 122 63 82 119 53 82 119 53 82 119 53 82 119 53
++82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53
++82 119 53 82 119 53 82 119 53 82 119 53 73 107 51 82 107 52 82 107 52 82 119 53
++82 107 52 82 107 52 82 107 52 73 107 51 82 107 52 73 107 51 82 107 52 82 107 52
++82 107 52 82 107 52 85 113 63 85 113 63 98 106 55 82 119 53 85 113 63 82 119 53
++87 122 63 85 113 63 87 122 63 85 113 63 82 119 53 87 122 63 98 106 55 82 119 53
++85 113 63 87 122 63 87 122 63 85 113 63 85 113 63 85 113 63 82 119 53 82 107 52
++82 119 53 82 107 52 82 119 53 82 107 52 82 107 52 82 119 53 73 107 51 73 107 51
++82 119 53 73 107 51 73 107 51 73 107 51 82 119 53 73 107 51 82 119 53 82 107 52
++82 107 52 82 119 53 82 107 52 82 107 52 85 113 63 98 126 66 146 150 115 166 180 164
++208 215 180 185 202 202 185 202 202 201 216 228 225 222 201 233 241 227 226 221 247 233 241 227
++235 238 247 233 241 227 231 239 247 231 239 247 240 251 247 240 251 247 240 251 247 240 251 247
++246 237 247 240 251 247 240 251 247 240 251 247 246 237 247 240 251 247 251 251 247 240 251 247
++240 251 247 240 251 247 251 251 247 251 251 247 240 251 247 225 222 201 150 171 159 95 119 107
++73 107 51 75 99 72 87 120 67 85 113 63 85 113 63 85 113 63 82 119 53 85 113 63
++85 113 63 85 113 63 82 107 52 85 113 63 82 119 53 82 107 52 82 119 53 82 107 52
++85 113 63 82 107 52 82 107 52 82 107 52 85 113 63 85 113 63 87 122 63 85 113 63
++85 113 63 85 113 63 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 82 107 52
++82 119 53 85 113 63 82 107 52 85 113 63 82 107 52 82 107 52 82 119 53 82 107 52
++82 107 52 82 119 53 73 107 51 82 107 52 82 107 52 73 107 51 82 107 52 73 107 51
++85 113 63 73 107 51 85 113 63 73 107 51 85 113 63 85 113 63 85 113 63 73 107 51
++85 113 63 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51 85 113 63
++73 107 51 85 113 63 73 107 51 85 113 63 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 70 96 55 73 107 51 70 96 55
++70 96 55 73 107 51 73 107 51 70 96 55 73 107 51 70 96 55 73 107 51 73 107 51
++70 96 45 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 85 113 63 73 107 51
++82 107 52 73 107 51 81 96 56 73 107 51 73 107 51 70 96 55 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 81 96 56 73 107 51 73 107 51
++73 107 51 70 96 55 73 107 51 70 96 55 73 107 51 73 107 51 85 113 63 70 96 55
++73 107 51 70 96 55 70 96 45 64 97 47 70 96 45 70 96 45 70 96 55 70 96 45
++73 107 51 70 96 55 81 96 56 70 96 45 70 96 45 70 96 45 70 96 55 70 96 55
++73 107 51 70 96 55 70 96 45 70 96 45 64 97 47 70 96 45 70 96 55 70 96 55
++73 107 51 70 96 55 70 96 45 64 97 47 70 96 45 64 97 47 70 96 45 70 96 55
++70 96 55 70 96 55 73 107 51 70 96 55 70 96 45 66 86 47 66 86 47 66 86 47
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 55 70 96 45 70 96 55 70 96 45
++70 96 55 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 55
++70 96 55 70 96 45 70 96 45 70 96 55 70 96 55 70 96 45 70 96 55 80 96 46
++70 96 45 70 96 55 70 96 45 70 96 55 70 96 55 73 107 51 81 96 56 73 107 51
++81 96 56 70 96 55 70 96 55 64 97 47 64 97 47 66 86 47 66 86 47 66 86 47
++64 97 47 66 86 47 70 96 55 64 97 47 70 96 55 66 86 47 70 96 55 66 86 47
++64 97 47 66 86 47 70 96 55 66 86 47 64 97 47 66 86 47 64 97 47 66 86 47
++57 86 47 57 86 47 57 86 47 57 86 47 66 86 47 57 86 47 66 86 47 57 86 47
++70 96 45 57 86 47 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 57 86 47
++49 74 23 64 97 47 66 86 47 70 96 45 70 96 45 66 86 47 66 86 47 57 86 47
++66 86 47 57 86 47 57 86 47 57 86 47 57 86 47 66 86 47 57 86 47 57 86 47
++49 74 23 57 86 47 57 86 47 49 74 23 66 86 47 49 74 23 51 73 47 57 86 47
++49 74 23 51 73 47 49 74 23 57 86 47 49 74 23 51 73 47 51 73 47 49 74 23
++51 73 47 57 86 47 51 73 47 49 74 23 57 86 47 49 74 23 51 73 47 49 74 23
++51 73 47 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 64 70 48 49 74 23
++51 73 47 51 73 47 51 73 47 51 73 47 49 74 23 50 61 48 49 74 23 50 61 48
++49 74 23 43 55 48 49 74 23 43 55 48 49 74 23 43 55 48 49 74 23 43 55 48
++49 74 23 50 61 48 49 74 23 50 61 48 49 74 23 50 61 48 49 74 23 50 61 48
++47 49 42 49 74 23 42 47 42 49 74 23 42 47 42 49 74 23 42 47 42 49 74 23
++
++64 70 48 57 86 47 64 70 48 57 86 47 51 73 47 57 86 47 66 86 47 66 86 47
++70 96 55 70 96 55 66 86 47 66 86 47 66 86 47 57 86 47 57 86 47 66 86 47
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 45 66 86 47 70 96 55 66 86 47
++66 86 47 70 96 55 70 96 55 66 86 47 70 96 55 70 96 55 66 86 47 70 96 55
++70 96 55 66 86 47 70 96 55 70 96 45 70 96 45 70 96 55 70 96 55 70 96 55
++70 96 55 66 86 47 66 86 47 70 96 55 70 96 45 70 96 55 70 96 55 70 96 55
++66 86 47 70 96 55 66 86 47 70 96 55 66 86 47 70 96 55 70 96 55 70 96 55
++70 96 45 70 96 55 70 96 45 70 96 55 70 96 45 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 73 107 51 81 96 56 70 96 55 82 107 52 82 107 52
++70 96 55 70 96 55 64 97 47 70 96 45 70 96 45 70 96 45 66 86 47 66 86 47
++64 97 47 70 96 45 70 96 55 70 96 55 73 107 51 81 96 56 73 107 51 75 99 72
++73 107 51 81 96 56 82 107 52 73 107 51 81 96 56 73 107 51 70 96 45 70 96 55
++73 107 51 70 96 45 73 107 51 81 96 56 70 96 55 73 107 51 70 96 55 73 107 51
++70 96 55 81 96 56 70 96 55 73 107 51 82 107 52 70 96 55 85 113 63 82 107 52
++82 107 52 82 107 52 73 107 51 82 107 52 85 113 63 75 99 72 82 107 52 85 113 63
++85 113 63 82 107 52 85 113 63 82 107 52 82 107 52 82 107 52 73 107 51 73 107 51
++81 96 56 85 113 63 73 107 51 85 113 63 85 113 63 85 113 63 75 99 72 85 113 63
++73 107 51 75 99 72 73 107 51 85 113 63 85 113 63 85 113 63 85 113 63 73 107 51
++85 113 63 85 113 63 75 99 72 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 73 107 51 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++82 107 52 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 82 107 52 70 96 55
++85 113 63 85 113 63 85 113 63 87 120 67 117 142 111 177 169 143 166 180 164 166 180 164
++166 180 164 189 165 168 166 180 164 189 165 168 208 215 180 189 165 168 166 180 164 146 151 137
++146 151 137 146 162 145 146 162 145 146 151 137 146 151 137 146 151 137 146 151 137 138 126 108
++90 98 89 99 93 84 99 93 84 99 93 84 75 73 58 32 39 24 15 17 7 22 24 13
++47 47 21 51 49 42 51 49 42 51 49 42 51 49 42 47 47 21 51 49 42 66 86 47
++87 99 72 87 120 67 98 113 84 87 120 67 87 120 67 98 126 66 87 120 67 88 121 82
++98 126 66 88 121 82 98 126 66 87 120 67 98 126 66 98 113 84 87 120 67 98 126 66
++87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 85 113 63 85 113 63
++87 120 67 85 113 63 85 113 63 85 113 63 85 113 63 87 120 67 87 120 67 88 121 82
++98 126 66 98 132 75 98 132 75 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67
++87 120 67 87 120 67 87 120 67 98 126 66 87 120 67 87 120 67 98 126 66 87 120 67
++98 126 66 88 121 82 87 120 67 87 120 67 98 132 75 88 121 82 98 132 75 98 132 75
++87 120 67 98 132 75 87 120 67 98 126 66 98 126 66 98 126 66 87 120 67 98 126 66
++87 120 67 87 120 67 85 113 63 87 120 67 87 120 67 85 113 63 85 113 63 87 122 63
++87 120 67 87 122 63 87 122 63 85 113 63 87 122 63 87 122 63 87 122 63 87 122 63
++87 122 63 87 122 63 87 122 63 85 113 63 85 113 63 82 119 53 85 113 63 82 119 53
++85 113 63 82 119 53 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 82 107 52 85 113 63 85 113 63 87 122 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 82 107 52 85 113 63 82 119 53
++85 113 63 85 113 63 82 119 53 85 113 63 82 119 53 82 119 53 82 107 52 82 107 52
++82 119 53 85 113 63 82 119 53 82 107 52 82 119 53 82 107 52 73 107 51 82 119 53
++73 107 51 82 119 53 73 107 51 82 119 53 82 107 52 82 119 53 73 107 51 73 107 51
++73 107 51 73 107 51 82 119 53 73 107 51 82 119 53 82 107 52 82 119 53 73 107 51
++82 119 53 82 107 52 82 119 53 73 107 51 82 119 53 73 107 51 82 119 53 73 107 51
++85 113 63 82 119 53 73 107 51 82 119 53 73 107 51 82 119 53 73 107 51 82 119 53
++73 107 51 73 107 51 73 107 51 73 107 51 82 119 53 73 107 51 82 119 53 73 107 51
++82 119 53 82 119 53 82 119 53 73 107 51 73 107 51 82 119 53 73 107 51 82 119 53
++82 119 53 73 107 51 82 119 53 73 107 51 73 107 51 73 107 51 73 107 51 82 119 53
++82 119 53 73 107 51 82 119 53 73 107 51 82 119 53 82 107 52 82 119 53 82 107 52
++82 107 52 82 119 53 82 107 52 82 107 52 73 107 51 73 107 51 70 96 45 70 96 45
++80 96 46 73 107 51 80 96 46 82 107 52 82 107 52 82 107 52 82 107 52 82 107 52
++82 119 53 82 119 53 82 107 52 82 119 53 82 119 53 82 119 53 82 119 53 82 107 52
++82 119 53 85 113 63 82 119 53 82 119 53 85 113 63 82 119 53 85 113 63 82 107 52
++82 119 53 73 107 51 73 107 51 82 119 53 73 107 51 82 119 53 73 107 51 82 119 53
++73 107 51 82 119 53 73 107 51 82 119 53 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 85 113 63 82 119 53 82 119 53 73 107 51 85 113 63 117 142 111 150 171 159
++166 180 164 185 202 202 185 202 202 185 202 202 232 215 228 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 231 239 247 235 238 247 240 251 247 235 238 247 240 251 247
++240 251 247 240 251 247 246 237 247 246 237 247 240 251 247 240 251 247 246 237 247 240 251 247
++246 237 247 251 251 247 240 251 247 240 251 247 240 251 247 240 251 247 233 241 227 166 180 164
++95 119 107 75 99 72 75 99 72 85 113 63 82 107 52 85 113 63 85 113 63 87 122 63
++87 122 63 82 119 53 85 113 63 82 119 53 82 107 52 85 113 63 82 107 52 85 113 63
++82 107 52 82 107 52 82 119 53 82 107 52 82 119 53 82 119 53 85 113 63 85 113 63
++85 113 63 73 107 51 85 113 63 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 82 119 53 85 113 63 73 107 51 85 113 63 85 113 63 73 107 51 82 119 53
++82 107 52 73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52
++73 107 51 85 113 63 73 107 51 82 119 53 73 107 51 82 119 53 73 107 51 85 113 63
++73 107 51 85 113 63 82 107 52 82 107 52 82 107 52 73 107 51 73 107 51 73 107 51
++73 107 51 85 113 63 73 107 51 82 107 52 73 107 51 82 107 52 73 107 51 70 96 55
++82 107 52 70 96 55 73 107 51 73 107 51 70 96 45 73 107 51 73 107 51 70 96 45
++70 96 45 64 97 47 73 107 51 70 96 45 73 107 51 70 96 45 70 96 45 64 97 47
++73 107 51 64 97 47 70 96 45 70 96 55 73 107 51 70 96 55 73 107 51 73 107 51
++73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 70 96 45 73 107 51 73 107 51
++70 96 55 73 107 51 70 96 55 82 107 52 73 107 51 73 107 51 82 107 52 82 107 52
++70 96 55 73 107 51 70 96 45 73 107 51 70 96 55 73 107 51 70 96 55 73 107 51
++73 107 51 73 107 51 70 96 45 70 96 55 70 96 45 70 96 55 70 96 45 70 96 55
++70 96 45 81 96 56 70 96 45 70 96 55 70 96 45 64 97 47 70 96 55 73 107 51
++70 96 55 70 96 55 64 97 47 64 97 47 66 86 47 64 97 47 70 96 45 70 96 45
++70 96 55 73 107 51 70 96 55 70 96 55 70 96 45 70 96 55 70 96 45 64 97 47
++70 96 45 70 96 45 70 96 55 70 96 45 70 96 45 64 97 47 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 55 70 96 55 70 96 45 66 86 47 64 97 47 66 86 47
++70 96 45 66 86 47 64 97 47 66 86 47 66 86 47 64 97 47 70 96 45 70 96 45
++70 96 45 70 96 45 64 97 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 55 70 96 45 70 96 45 70 96 45 73 107 51 70 96 55 82 107 52 75 99 72
++73 107 51 70 96 55 70 96 55 66 86 47 70 96 55 66 86 47 64 97 47 66 86 47
++66 86 47 64 97 47 66 86 47 66 86 47 66 86 47 64 97 47 64 97 47 64 97 47
++64 97 47 66 86 47 66 86 47 70 96 45 70 96 55 66 86 47 70 96 45 66 86 47
++66 86 47 57 86 47 66 86 47 57 86 47 57 86 47 57 86 47 57 86 47 66 86 47
++66 86 47 57 86 47 66 86 47 64 97 47 57 86 47 57 86 47 49 74 23 57 86 47
++66 86 47 66 86 47 70 96 55 70 96 55 81 96 56 70 96 55 64 97 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 57 86 47 57 86 47 75 73 36 51 73 47
++66 86 47 51 73 47 49 74 23 57 86 47 51 73 47 57 86 47 64 70 48 49 74 23
++51 73 47 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47
++49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47
++49 74 23 50 61 48 49 74 23 51 73 47 51 73 47 49 74 23 51 73 47 49 74 23
++51 73 47 49 74 23 64 70 48 49 74 23 50 61 48 49 74 23 50 61 48 49 74 23
++47 49 42 49 74 23 49 74 23 35 46 43 49 74 23 51 73 47 51 73 47 49 74 23
++50 61 48 49 74 23 50 61 48 51 73 47 50 61 48 49 74 23 51 73 47 47 49 42
++49 74 23 42 47 42 49 74 23 35 46 43 49 74 23 43 55 48 49 74 23 50 61 48
++
++51 73 47 66 86 47 66 86 47 51 73 47 49 74 23 66 86 47 66 86 47 70 96 55
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 66 86 47
++66 86 47 70 96 55 66 86 47 70 96 45 70 96 55 70 96 45 70 96 55 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 70 96 55 66 86 47 70 96 55 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 70 96 55 70 96 55 80 96 46 66 86 47
++70 96 55 66 86 47 70 96 55 66 86 47 66 86 47 70 96 45 66 86 47 70 96 55
++66 86 47 70 96 55 66 86 47 64 97 47 66 86 47 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 45 70 96 55 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 45 70 96 55 73 107 51 70 96 55 81 96 56
++73 107 51 81 96 56 70 96 55 70 96 55 70 96 45 64 97 47 70 96 45 64 97 47
++70 96 45 70 96 55 70 96 55 81 96 56 70 96 55 70 96 55 73 107 51 81 96 56
++73 107 51 85 113 63 70 96 55 82 107 52 70 96 55 73 107 51 81 96 56 70 96 45
++70 96 45 70 96 55 82 107 52 82 107 52 73 107 51 81 96 56 73 107 51 70 96 55
++73 107 51 70 96 55 73 107 51 81 96 56 70 96 55 73 107 51 82 107 52 75 99 72
++73 107 51 70 96 55 85 113 63 73 107 51 85 113 63 73 107 51 85 113 63 82 107 52
++73 107 51 82 107 52 73 107 51 85 113 63 85 113 63 73 107 51 73 107 51 82 107 52
++85 113 63 73 107 51 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 82 107 52
++85 113 63 82 107 52 85 113 63 73 107 51 85 113 63 85 113 63 73 107 51 75 99 72
++82 107 52 73 107 51 85 113 63 82 107 52 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 87 120 67 87 120 67 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 82 119 53 85 113 63 82 107 52 73 107 51 85 113 63
++85 113 63 85 113 63 81 96 56 98 113 84 146 150 115 166 180 164 208 215 180 166 180 164
++177 169 143 146 162 145 177 169 143 166 180 164 185 202 202 208 215 180 189 165 168 177 169 143
++146 151 137 146 150 115 145 140 145 146 151 137 146 151 137 138 126 108 112 123 108 112 123 108
++111 119 127 138 126 108 112 123 108 112 123 108 99 93 84 75 73 58 51 49 42 29 35 19
++32 39 24 33 39 38 47 47 21 47 49 42 32 39 24 47 47 21 50 61 48 66 86 47
++98 113 84 98 113 84 85 113 63 85 113 63 87 120 67 87 120 67 87 120 67 98 132 75
++87 120 67 98 132 75 87 120 67 87 120 67 87 120 67 98 126 66 87 120 67 98 132 75
++87 120 67 87 120 67 87 120 67 87 120 67 85 113 63 85 113 63 85 113 63 85 113 63
++87 120 67 87 120 67 85 113 63 87 122 63 87 120 67 98 126 66 98 126 66 98 126 66
++98 132 75 98 113 84 98 132 75 98 126 66 88 121 82 98 126 66 87 120 67 98 126 66
++87 120 67 98 126 66 87 120 67 87 120 67 85 113 63 87 122 63 85 113 63 87 120 67
++87 120 67 87 120 67 98 132 75 98 132 75 87 120 67 98 132 75 87 120 67 98 132 75
++87 120 67 87 120 67 98 132 75 87 120 67 87 120 67 87 120 67 98 132 75 87 120 67
++87 120 67 87 122 63 85 113 63 82 119 53 73 107 51 85 113 63 73 107 51 85 113 63
++85 113 63 82 119 53 85 113 63 82 107 52 82 107 52 82 107 52 82 119 53 98 106 55
++82 119 53 82 119 53 98 106 55 82 119 53 82 107 52 82 107 52 82 107 52 82 107 52
++82 107 52 82 107 52 73 107 51 82 107 52 82 107 52 82 107 52 73 107 51 85 113 63
++82 107 52 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 82 107 52
++82 119 53 73 107 51 73 107 51 82 107 52 82 107 52 82 107 52 73 107 51 82 107 52
++82 119 53 82 107 52 73 107 51 82 119 53 82 107 52 82 107 52 82 107 52 82 107 52
++82 107 52 82 107 52 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++82 119 53 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 82 119 53 73 107 51 82 107 52 73 107 51 73 107 51 82 119 53
++73 107 51 73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 82 119 53 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 82 119 53 73 107 51 82 119 53 73 107 51
++73 107 51 73 107 51 73 107 51 82 119 53 73 107 51 82 119 53 82 119 53 73 107 51
++73 107 51 73 107 51 73 107 51 82 119 53 73 107 51 82 107 52 82 107 52 82 107 52
++82 107 52 82 107 52 82 107 52 73 107 51 73 107 51 70 96 45 70 96 45 80 96 46
++73 107 51 70 96 45 80 96 46 73 107 51 82 107 52 82 107 52 82 119 53 82 107 52
++82 119 53 82 107 52 82 119 53 82 107 52 82 107 52 73 107 51 82 107 52 82 107 52
++82 107 52 82 107 52 73 107 51 82 107 52 82 107 52 82 119 53 82 107 52 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++82 119 53 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 82 119 53 73 107 51
++82 119 53 73 107 51 73 107 51 73 107 51 82 119 53 82 107 52 98 132 75 146 150 115
++166 180 164 166 180 164 166 180 164 225 222 201 233 241 227 233 241 227 231 239 247 233 241 227
++231 239 247 235 238 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 246 237 247
++235 238 247 235 238 247 235 238 247 240 251 247 235 238 247 246 237 247 240 251 247 235 238 247
++240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 240 251 247 201 216 228
++150 171 159 99 133 85 73 107 51 85 113 63 87 120 67 87 120 67 98 126 66 87 120 67
++98 126 66 87 120 67 85 113 63 85 113 63 82 119 53 82 107 52 82 107 52 73 107 51
++73 107 51 82 107 52 82 107 52 85 113 63 82 107 52 85 113 63 82 119 53 85 113 63
++85 113 63 73 107 51 73 107 51 85 113 63 73 107 51 73 107 51 73 107 51 73 107 51
++85 113 63 82 107 52 85 113 63 82 107 52 73 107 51 82 119 53 73 107 51 73 107 51
++82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51
++85 113 63 73 107 51 85 113 63 73 107 51 85 113 63 73 107 51 82 107 52 73 107 51
++82 107 52 73 107 51 73 107 51 73 107 51 85 113 63 73 107 51 81 96 56 73 107 51
++82 107 52 73 107 51 85 113 63 73 107 51 85 113 63 73 107 51 73 107 51 73 107 51
++73 107 51 70 96 55 73 107 51 70 96 45 73 107 51 73 107 51 70 96 45 73 107 51
++64 97 47 70 96 45 64 97 47 73 107 51 70 96 45 73 107 51 70 96 45 64 97 47
++70 96 45 73 107 51 70 96 45 70 96 45 64 97 47 70 96 45 70 96 45 73 107 51
++70 96 55 73 107 51 70 96 55 73 107 51 70 96 45 73 107 51 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 73 107 51 70 96 45 82 107 52 73 107 51 81 96 56
++73 107 51 70 96 45 70 96 55 70 96 45 70 96 55 73 107 51 70 96 45 73 107 51
++70 96 55 70 96 45 70 96 55 73 107 51 81 96 56 73 107 51 70 96 45 70 96 45
++70 96 55 70 96 45 70 96 45 64 97 47 70 96 45 64 97 47 70 96 55 70 96 55
++70 96 55 70 96 45 70 96 45 66 86 47 64 97 47 66 86 47 64 97 47 70 96 45
++73 107 51 70 96 55 70 96 45 73 107 51 70 96 45 70 96 55 70 96 45 70 96 55
++70 96 45 70 96 45 64 97 47 66 86 47 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 55 70 96 45 64 97 47 64 97 47 66 86 47 64 97 47 66 86 47
++64 97 47 64 97 47 70 96 45 66 86 47 64 97 47 66 86 47 70 96 45 70 96 45
++66 86 47 70 96 45 66 86 47 66 86 47 66 86 47 66 86 47 64 97 47 66 86 47
++70 96 45 70 96 45 70 96 55 70 96 55 81 96 56 73 107 51 81 96 56 73 107 51
++81 96 56 70 96 55 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 57 86 47
++66 86 47 66 86 47 64 97 47 66 86 47 66 86 47 66 86 47 70 96 45 66 86 47
++66 86 47 57 86 47 64 97 47 70 96 55 70 96 45 66 86 47 66 86 47 66 86 47
++57 86 47 66 86 47 57 86 47 66 86 47 57 86 47 66 86 47 57 86 47 57 86 47
++57 86 47 66 86 47 49 74 23 66 86 47 49 74 23 57 86 47 49 74 23 57 86 47
++57 86 47 70 96 45 81 96 56 85 113 63 85 113 63 70 96 55 70 96 45 57 86 47
++57 86 47 75 73 36 57 86 47 51 73 47 57 86 47 49 74 23 57 86 47 49 74 23
++57 86 47 49 74 23 57 86 47 51 73 47 49 74 23 57 86 47 51 73 47 57 86 47
++49 74 23 51 73 47 57 86 47 49 74 23 51 73 47 49 74 23 51 73 47 51 73 47
++49 74 23 51 73 47 49 74 23 51 73 47 51 73 47 49 74 23 51 73 47 51 73 47
++49 74 23 50 61 48 51 73 47 49 74 23 64 70 48 51 73 47 51 73 47 64 70 48
++49 74 23 51 73 47 51 73 47 51 73 47 49 74 23 50 61 48 49 74 23 47 49 42
++49 74 23 35 46 43 49 74 23 43 55 48 51 73 47 49 74 23 43 55 48 49 74 23
++43 55 48 49 74 23 50 61 48 49 74 23 51 49 42 49 74 23 47 49 42 49 74 23
++43 55 48 47 47 21 43 55 48 49 74 23 42 47 42 49 74 23 43 55 48 50 61 48
++
++51 73 47 49 74 23 66 86 47 49 74 23 57 86 47 51 73 47 51 73 47 66 86 47
++66 86 47 66 86 47 57 86 47 66 86 47 57 86 47 57 86 47 57 86 47 57 86 47
++57 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 57 86 47 57 86 47 66 86 47 66 86 47 57 86 47 66 86 47 66 86 47
++57 86 47 66 86 47 57 86 47 66 86 47 66 86 47 66 86 47 70 96 55 70 96 55
++70 96 55 70 96 55 66 86 47 66 86 47 70 96 55 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 64 97 47 66 86 47 70 96 45 70 96 55
++70 96 45 70 96 55 70 96 45 70 96 55 70 96 55 70 96 55 70 96 45 70 96 55
++70 96 45 70 96 55 70 96 45 70 96 55 70 96 45 81 96 56 73 107 51 70 96 55
++73 107 51 81 96 56 73 107 51 70 96 55 70 96 55 70 96 55 66 86 47 70 96 45
++70 96 55 70 96 55 70 96 55 73 107 51 70 96 55 73 107 51 70 96 55 73 107 51
++81 96 56 70 96 55 85 113 63 81 96 56 73 107 51 81 96 56 82 107 52 70 96 55
++82 107 52 70 96 55 82 107 52 75 99 72 85 113 63 85 113 63 81 96 56 73 107 51
++81 96 56 70 96 55 70 96 55 70 96 45 73 107 51 70 96 55 82 107 52 73 107 51
++81 96 56 73 107 51 70 96 55 70 96 55 70 96 55 81 96 56 73 107 51 73 107 51
++81 96 56 73 107 51 81 96 56 73 107 51 82 107 52 82 107 52 82 107 52 85 113 63
++82 107 52 85 113 63 82 107 52 73 107 51 82 107 52 85 113 63 85 113 63 85 113 63
++73 107 51 85 113 63 81 96 56 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 87 120 67 87 120 67 87 120 67 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 82 107 52 82 107 52 85 113 63 85 113 63 75 99 72
++73 107 51 85 113 63 73 107 51 98 132 75 146 150 115 166 180 164 208 215 180 208 215 180
++166 180 164 146 162 145 146 151 137 177 169 143 189 165 168 166 180 164 166 180 164 166 180 164
++146 151 137 145 140 145 146 150 115 138 126 108 121 143 132 138 126 108 121 143 132 138 126 108
++146 151 137 145 140 145 138 126 108 112 123 108 98 113 84 88 83 74 75 73 58 51 49 42
++47 47 21 32 39 24 29 35 19 23 31 15 23 31 15 47 47 21 57 86 47 87 99 72
++87 120 67 87 120 67 85 113 63 85 113 63 85 113 63 87 122 63 87 120 67 87 120 67
++87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 87 120 67 88 121 82 98 126 66
++87 120 67 98 126 66 87 120 67 87 120 67 87 120 67 87 120 67 98 126 66 85 113 63
++85 113 63 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66
++98 126 66 98 126 66 98 132 75 98 126 66 98 126 66 98 126 66 87 120 67 87 120 67
++87 122 63 85 113 63 85 113 63 85 113 63 82 119 53 85 113 63 85 113 63 87 122 63
++87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 98 126 66 87 120 67 87 122 63
++87 122 63 87 122 63 87 122 63 87 122 63 85 113 63 87 120 67 87 122 63 87 122 63
++85 113 63 82 119 53 85 113 63 73 107 51 73 107 51 73 107 51 73 107 51 82 119 53
++73 107 51 85 113 63 73 107 51 82 119 53 82 107 52 82 107 52 82 119 53 82 107 52
++82 119 53 82 107 52 82 107 52 82 107 52 82 107 52 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 82 119 53 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51
++73 107 51 73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++70 96 45 73 107 51 73 107 51 73 107 51 82 119 53 73 107 51 82 119 53 82 107 52
++73 107 51 82 119 53 82 107 52 73 107 51 73 107 51 73 107 51 70 96 45 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 82 119 53 73 107 51 82 119 53 73 107 51 73 107 51
++73 107 51 82 119 53 73 107 51 82 119 53 73 107 51 73 107 51 73 107 51 70 96 45
++73 107 51 70 96 45 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 82 119 53
++73 107 51 82 119 53 73 107 51 73 107 51 82 119 53 73 107 51 73 107 51 82 119 53
++73 107 51 82 119 53 73 107 51 73 107 51 73 107 51 73 107 51 82 119 53 73 107 51
++73 107 51 82 107 52 73 107 51 82 107 52 73 107 51 70 96 45 73 107 51 70 96 45
++73 107 51 73 107 51 82 107 52 82 107 52 82 107 52 82 107 52 82 119 53 82 107 52
++85 113 63 82 119 53 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 82 107 52
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 70 96 45 73 107 51 70 96 45 73 107 51 73 107 51 73 107 51
++73 107 51 85 113 63 73 107 51 85 113 63 85 113 63 81 96 56 87 120 67 99 133 85
++146 150 115 166 180 164 166 180 164 185 202 202 201 216 228 221 238 247 231 239 247 231 239 247
++231 239 247 240 251 247 240 251 247 240 251 247 235 238 247 240 251 247 235 238 247 240 251 247
++240 251 247 235 238 247 231 239 247 235 238 247 231 239 247 231 239 247 235 238 247 235 238 247
++235 238 247 240 251 247 240 251 247 240 251 247 235 238 247 240 251 247 240 251 247 240 251 247
++225 222 201 150 171 159 95 119 107 87 99 72 117 142 111 117 142 111 112 123 108 75 99 72
++70 96 55 81 96 56 87 99 72 87 120 67 85 113 63 85 113 63 85 113 63 82 107 52
++85 113 63 73 107 51 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 73 107 51 85 113 63 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52
++82 119 53 85 113 63 73 107 51 82 107 52 85 113 63 82 107 52 85 113 63 85 113 63
++73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 82 107 52
++85 113 63 82 107 52 85 113 63 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51
++82 107 52 82 107 52 73 107 51 85 113 63 82 107 52 73 107 51 85 113 63 82 107 52
++73 107 51 85 113 63 73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51
++82 107 52 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51 73 107 51 70 96 45
++73 107 51 73 107 51 70 96 45 73 107 51 70 96 55 73 107 51 70 96 45 73 107 51
++73 107 51 64 97 47 73 107 51 70 96 55 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 70 96 55 73 107 51 70 96 45 70 96 45 64 97 47 70 96 45
++64 97 47 64 97 47 70 96 45 70 96 45 73 107 51 70 96 55 70 96 55 73 107 51
++70 96 45 73 107 51 70 96 45 73 107 51 70 96 45 70 96 45 73 107 51 70 96 45
++73 107 51 73 107 51 73 107 51 70 96 55 73 107 51 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 55
++70 96 45 70 96 45 70 96 45 64 97 47 70 96 45 64 97 47 70 96 45 70 96 45
++70 96 55 73 107 51 73 107 51 70 96 55 73 107 51 70 96 55 70 96 45 64 97 47
++64 97 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 55
++81 96 56 80 96 46 70 96 55 66 86 47 70 96 45 64 97 47 66 86 47 66 86 47
++66 86 47 70 96 45 66 86 47 64 97 47 66 86 47 70 96 45 66 86 47 64 97 47
++66 86 47 64 97 47 66 86 47 64 97 47 66 86 47 64 97 47 66 86 47 70 96 45
++64 97 47 70 96 45 70 96 45 70 96 45 70 96 55 70 96 45 70 96 55 70 96 55
++70 96 55 64 97 47 66 86 47 64 97 47 57 86 47 66 86 47 57 86 47 57 86 47
++57 86 47 57 86 47 57 86 47 66 86 47 66 86 47 64 97 47 66 86 47 66 86 47
++57 86 47 66 86 47 66 86 47 66 86 47 66 86 47 64 97 47 66 86 47 66 86 47
++57 86 47 57 86 47 66 86 47 57 86 47 57 86 47 66 86 47 49 74 23 57 86 47
++66 86 47 49 74 23 57 86 47 57 86 47 57 86 47 57 86 47 49 74 23 57 86 47
++66 86 47 70 96 55 85 113 63 87 99 72 85 113 63 81 96 56 66 86 47 66 86 47
++49 74 23 51 73 47 57 86 47 49 74 23 57 86 47 51 73 47 51 73 47 57 86 47
++51 73 47 64 70 48 57 86 47 49 74 23 57 86 47 64 70 48 57 86 47 49 74 23
++51 73 47 51 73 47 49 74 23 51 73 47 57 86 47 51 73 47 51 73 47 49 74 23
++51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23
++50 61 48 51 73 47 49 74 23 50 61 48 51 73 47 49 74 23 51 73 47 49 74 23
++51 73 47 49 74 23 50 61 48 49 74 23 50 61 48 49 74 23 42 47 42 49 74 23
++49 74 23 42 47 42 49 74 23 43 55 48 49 74 23 43 55 48 49 74 23 42 47 42
++49 74 23 50 61 48 47 47 21 50 61 48 49 74 23 47 49 42 49 74 23 42 47 42
++49 74 23 32 39 24 49 74 23 35 46 43 47 47 21 50 61 48 47 49 42 49 74 23
++
++49 74 23 51 73 47 57 86 47 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47
++57 86 47 51 73 47 57 86 47 51 73 47 57 86 47 51 73 47 57 86 47 64 70 48
++57 86 47 64 70 48 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47
++64 70 48 57 86 47 51 73 47 57 86 47 57 86 47 51 73 47 57 86 47 51 73 47
++57 86 47 51 73 47 66 86 47 66 86 47 66 86 47 70 96 55 66 86 47 70 96 55
++70 96 55 70 96 55 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 57 86 47 57 86 47 57 86 47 57 86 47 66 86 47 57 86 47 64 97 47
++66 86 47 64 97 47 66 86 47 70 96 55 70 96 45 70 96 55 70 96 55 70 96 45
++70 96 55 70 96 45 70 96 55 70 96 45 70 96 55 70 96 55 73 107 51 81 96 56
++70 96 55 70 96 55 70 96 55 73 107 51 70 96 55 70 96 45 70 96 55 70 96 55
++70 96 45 70 96 55 70 96 55 81 96 56 70 96 55 81 96 56 73 107 51 81 96 56
++73 107 51 73 107 51 81 96 56 73 107 51 81 96 56 73 107 51 75 99 72 73 107 51
++81 96 56 73 107 51 75 99 72 85 113 63 85 113 63 81 96 56 85 113 63 70 96 55
++73 107 51 70 96 55 70 96 45 70 96 55 70 96 55 73 107 51 81 96 56 73 107 51
++73 107 51 70 96 55 73 107 51 80 96 46 73 107 51 70 96 55 70 96 55 73 107 51
++70 96 55 73 107 51 70 96 55 73 107 51 73 107 51 73 107 51 85 113 63 85 113 63
++82 107 52 73 107 51 82 107 52 85 113 63 85 113 63 82 107 52 85 113 63 85 113 63
++82 107 52 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 82 107 52 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 87 120 67 87 120 67 87 120 67 85 113 63 87 122 63 87 120 67 87 122 63
++85 113 63 82 107 52 82 107 52 73 107 51 82 107 52 82 119 53 85 113 63 85 113 63
++85 113 63 85 113 63 70 96 55 98 113 84 146 162 145 166 180 164 208 215 180 166 180 164
++189 165 168 166 180 164 146 151 137 146 162 145 146 162 145 177 169 143 148 160 159 177 169 143
++166 180 164 146 151 137 146 150 115 138 126 108 112 123 108 138 126 108 138 126 108 121 143 132
++138 126 108 112 123 108 112 123 108 99 93 84 99 93 84 88 83 74 75 77 62 65 55 54
++60 49 42 32 39 24 26 25 15 15 17 7 47 47 21 51 73 47 81 96 56 87 120 67
++87 120 67 85 113 63 85 113 63 85 113 63 82 119 53 85 113 63 87 122 63 87 122 63
++87 120 67 87 120 67 87 122 63 85 113 63 87 122 63 87 120 67 98 126 66 87 120 67
++98 113 84 98 126 66 88 121 82 98 126 66 85 113 63 87 120 67 87 120 67 87 120 67
++85 113 63 87 120 67 98 126 66 87 120 67 87 120 67 87 122 63 98 126 66 87 120 67
++87 122 63 87 122 63 98 126 66 87 120 67 87 122 63 85 113 63 82 119 53 82 107 52
++82 107 52 82 107 52 82 119 53 82 107 52 82 107 52 82 119 53 82 119 53 85 113 63
++85 113 63 87 122 63 87 122 63 87 120 67 87 122 63 87 122 63 87 122 63 87 122 63
++87 122 63 87 122 63 85 113 63 82 107 52 82 119 53 82 107 52 82 107 52 82 119 53
++73 107 51 82 107 52 73 107 51 73 107 51 82 119 53 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 82 119 53 73 107 51 82 107 52 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 80 96 46 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 64 97 47 73 107 51 70 96 55 73 107 51
++73 107 51 85 113 63 73 107 51 85 113 63 82 107 52 82 107 52 73 107 51 82 107 52
++82 119 53 82 107 52 82 119 53 73 107 51 82 107 52 82 107 52 82 107 52 73 107 51
++73 107 51 70 96 45 73 107 51 82 107 52 82 119 53 82 107 52 82 119 53 82 107 52
++85 113 63 82 119 53 82 107 52 82 119 53 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 82 107 52 82 119 53 82 119 53 82 107 52 82 119 53
++73 107 51 73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 73 107 51 73 107 51 73 107 51 73 107 51
++70 96 45 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 82 119 53 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52
++73 107 51 73 107 51 82 107 52 73 107 51 73 107 51 70 96 45 73 107 51 73 107 51
++82 107 52 82 107 52 85 113 63 82 107 52 82 119 53 82 119 53 82 107 52 82 119 53
++85 113 63 82 107 52 73 107 51 73 107 51 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 70 96 45 73 107 51 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 73 107 51 70 96 45 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 85 113 63 85 113 63 98 113 84
++117 142 111 146 151 137 166 180 164 185 202 202 232 215 228 233 241 227 231 239 247 235 238 247
++240 251 247 231 239 247 240 251 247 231 239 247 231 239 247 240 251 247 231 239 247 240 251 247
++231 239 247 231 239 247 231 239 247 233 241 227 231 239 247 240 251 247 231 239 247 231 239 247
++240 251 247 235 238 247 240 251 247 240 251 247 240 251 247 235 238 247 240 251 247 240 251 247
++240 251 247 221 238 247 166 180 164 117 142 111 126 147 144 146 162 145 121 143 132 64 70 48
++15 22 17 32 39 24 51 73 47 87 99 72 85 113 63 85 113 63 85 113 63 82 107 52
++81 96 56 73 107 51 70 96 55 64 97 47 73 107 51 73 107 51 85 113 63 73 107 51
++85 113 63 73 107 51 73 107 51 73 107 51 73 107 51 85 113 63 73 107 51 85 113 63
++82 107 52 73 107 51 85 113 63 73 107 51 73 107 51 82 107 52 73 107 51 82 107 52
++82 107 52 73 107 51 82 107 52 82 107 52 82 107 52 85 113 63 85 113 63 85 113 63
++73 107 51 73 107 51 81 96 56 70 96 55 73 107 51 81 96 56 73 107 51 82 107 52
++73 107 51 85 113 63 81 96 56 73 107 51 82 107 52 73 107 51 82 107 52 73 107 51
++82 107 52 73 107 51 73 107 51 82 107 52 73 107 51 82 107 52 73 107 51 82 107 52
++82 107 52 82 107 52 82 107 52 82 107 52 73 107 51 82 107 52 82 107 52 73 107 51
++73 107 51 70 96 45 73 107 51 73 107 51 70 96 45 73 107 51 73 107 51 70 96 45
++70 96 45 73 107 51 73 107 51 70 96 55 73 107 51 73 107 51 70 96 55 73 107 51
++70 96 55 73 107 51 73 107 51 73 107 51 70 96 45 73 107 51 64 97 47 70 96 45
++64 97 47 70 96 45 70 96 45 70 96 45 70 96 45 73 107 51 70 96 55 73 107 51
++70 96 55 70 96 45 73 107 51 70 96 45 64 97 47 70 96 45 73 107 51 70 96 55
++73 107 51 81 96 56 73 107 51 82 107 52 73 107 51 70 96 45 70 96 45 64 97 47
++70 96 45 64 97 47 70 96 45 64 97 47 70 96 45 64 97 47 70 96 45 70 96 55
++73 107 51 70 96 45 64 97 47 70 96 45 70 96 45 64 97 47 70 96 45 70 96 45
++73 107 51 80 96 46 73 107 51 70 96 55 73 107 51 70 96 45 70 96 55 70 96 45
++64 97 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 73 107 51 80 96 46
++73 107 51 70 96 55 70 96 45 70 96 45 70 96 45 66 86 47 64 97 47 70 96 45
++64 97 47 70 96 45 70 96 55 70 96 45 70 96 55 66 86 47 64 97 47 66 86 47
++64 97 47 66 86 47 64 97 47 66 86 47 70 96 45 66 86 47 70 96 45 64 97 47
++66 86 47 70 96 45 66 86 47 70 96 45 70 96 45 66 86 47 64 97 47 66 86 47
++66 86 47 66 86 47 64 97 47 66 86 47 66 86 47 57 86 47 66 86 47 57 86 47
++66 86 47 66 86 47 66 86 47 64 97 47 66 86 47 66 86 47 57 86 47 57 86 47
++66 86 47 57 86 47 66 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47
++66 86 47 57 86 47 57 86 47 57 86 47 66 86 47 57 86 47 57 86 47 66 86 47
++57 86 47 70 96 45 49 74 23 57 86 47 49 74 23 66 86 47 51 73 47 51 73 47
++57 86 47 70 96 45 81 96 56 85 113 63 81 96 56 70 96 55 66 86 47 57 86 47
++49 74 23 57 86 47 49 74 23 57 86 47 49 74 23 51 73 47 49 74 23 51 73 47
++49 74 23 57 86 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 64 70 48
++49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 64 70 48 49 74 23 51 73 47
++49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47
++49 74 23 51 73 47 51 73 47 49 74 23 51 73 47 49 74 23 50 61 48 49 74 23
++51 73 47 50 61 48 49 74 23 51 73 47 49 74 23 47 49 42 49 74 23 43 55 48
++49 74 23 35 46 43 49 74 23 43 55 48 49 74 23 43 55 48 43 55 48 49 74 23
++42 47 42 49 74 23 43 55 48 49 74 23 47 49 42 49 74 23 35 46 43 49 74 23
++35 46 43 49 74 23 35 46 43 49 74 23 42 47 42 49 74 23 49 74 23 43 55 48
++
++49 74 23 51 73 47 49 74 23 51 73 47 51 73 47 49 74 23 51 73 47 49 74 23
++51 73 47 64 70 48 49 74 23 51 73 47 49 74 23 51 73 47 57 86 47 51 73 47
++49 74 23 51 73 47 49 74 23 64 70 48 49 74 23 51 73 47 75 73 36 51 73 47
++57 86 47 49 74 23 64 70 48 49 74 23 57 86 47 49 74 23 51 73 47 57 86 47
++49 74 23 66 86 47 49 74 23 57 86 47 57 86 47 66 86 47 66 86 47 70 96 55
++66 86 47 70 96 55 70 96 55 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++57 86 47 66 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 66 86 47
++66 86 47 64 97 47 66 86 47 64 97 47 66 86 47 70 96 55 66 86 47 64 97 47
++64 97 47 70 96 45 70 96 55 64 97 47 70 96 45 70 96 45 70 96 45 70 96 55
++70 96 55 70 96 45 70 96 55 70 96 45 70 96 55 70 96 55 70 96 55 70 96 45
++70 96 55 70 96 55 70 96 55 70 96 55 73 107 51 70 96 55 73 107 51 70 96 55
++70 96 55 70 96 55 73 107 51 70 96 55 73 107 51 70 96 55 73 107 51 81 96 56
++70 96 55 70 96 55 82 107 52 81 96 56 85 113 63 73 107 51 85 113 63 81 96 56
++73 107 51 81 96 56 73 107 51 70 96 55 70 96 45 70 96 55 70 96 45 70 96 55
++70 96 55 70 96 55 70 96 45 70 96 55 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 55 70 96 45 64 97 47 64 97 47 70 96 45 73 107 51 82 107 52 73 107 51
++85 113 63 85 113 63 81 96 56 73 107 51 73 107 51 85 113 63 82 107 52 85 113 63
++85 113 63 85 113 63 85 113 63 82 107 52 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 82 107 52 85 113 63 82 107 52 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 87 120 67 85 113 63 87 122 63 85 113 63
++82 107 52 85 113 63 82 107 52 82 107 52 82 107 52 82 107 52 73 107 51 85 113 63
++85 113 63 85 113 63 82 107 52 98 132 75 146 150 115 166 180 164 166 180 164 208 215 180
++189 165 168 166 180 164 166 156 164 177 169 143 146 162 145 145 140 145 146 150 115 146 151 137
++146 151 137 166 156 164 146 151 137 146 151 137 138 126 108 112 123 108 95 119 107 117 99 86
++98 113 84 99 93 84 75 81 69 75 72 67 75 73 58 75 72 67 75 73 58 64 70 48
++63 55 45 42 41 42 29 35 19 32 39 24 66 86 47 87 99 72 87 120 67 85 113 63
++85 113 63 87 120 67 87 122 63 85 113 63 85 113 63 73 107 51 85 113 63 85 113 63
++87 122 63 85 113 63 87 122 63 85 113 63 85 113 63 85 113 63 87 120 67 87 120 67
++87 120 67 98 126 66 87 120 67 87 120 67 85 113 63 87 122 63 85 113 63 87 122 63
++85 113 63 82 107 52 85 113 63 85 113 63 82 119 53 85 113 63 82 119 53 85 113 63
++87 122 63 82 119 53 85 113 63 82 119 53 85 113 63 82 119 53 82 107 52 82 107 52
++73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 82 107 52 82 107 52 82 107 52
++82 119 53 82 107 52 82 119 53 85 113 63 82 107 52 85 113 63 82 119 53 82 107 52
++82 119 53 82 107 52 82 119 53 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 70 96 45
++70 96 45 73 107 51 73 107 51 73 107 51 82 107 52 82 107 52 73 107 51 73 107 51
++73 107 51 80 96 46 73 107 51 73 107 51 73 107 51 70 96 45 73 107 51 80 96 46
++73 107 51 73 107 51 80 96 46 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++85 113 63 73 107 51 85 113 63 82 119 53 85 113 63 82 107 52 73 107 51 82 119 53
++82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 82 119 53 82 107 52 82 119 53
++82 107 52 82 119 53 73 107 51 82 107 52 82 107 52 73 107 51 85 113 63 82 119 53
++85 113 63 82 119 53 85 113 63 82 107 52 73 107 51 73 107 51 82 107 52 82 119 53
++82 119 53 82 119 53 82 107 52 82 119 53 82 107 52 82 107 52 73 107 51 82 119 53
++73 107 51 82 119 53 73 107 51 82 119 53 73 107 51 82 119 53 73 107 51 82 119 53
++82 107 52 82 119 53 73 107 51 82 119 53 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 70 96 45 73 107 51 70 96 45 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 64 97 47 73 107 51
++73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 82 119 53 73 107 51 82 119 53
++82 119 53 73 107 51 82 107 52 73 107 51 70 96 45 82 107 52 73 107 51 82 107 52
++73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51 73 107 51
++82 107 52 85 113 63 82 119 53 85 113 63 82 107 52 82 119 53 82 107 52 82 119 53
++82 107 52 82 107 52 82 107 52 73 107 51 73 107 51 73 107 51 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 73 107 51 73 107 51 73 107 51 82 107 52
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 70 96 45 73 107 51 64 97 47
++70 96 45 70 96 45 70 96 45 64 97 47 70 96 45 70 96 45 70 96 45 73 107 51
++64 97 47 73 107 51 73 107 51 73 107 51 73 107 51 85 113 63 75 99 72 85 113 63
++85 113 63 117 142 111 146 151 137 185 202 202 201 216 228 221 238 247 231 239 247 240 251 247
++231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247 231 239 247
++231 239 247 231 239 247 240 251 247 231 239 247 231 239 247 233 241 227 231 239 247 231 239 247
++231 239 247 231 239 247 240 251 247 240 251 247 235 238 247 240 251 247 240 251 247 240 251 247
++240 251 247 240 251 247 185 202 202 150 171 159 146 162 145 146 162 145 146 162 145 75 99 72
++6 15 6 6 15 6 15 22 17 49 74 23 70 96 55 85 113 63 81 96 56 73 107 51
++70 96 55 70 96 55 70 96 45 70 96 55 73 107 51 75 99 72 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 85 113 63 73 107 51
++82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++81 96 56 73 107 51 81 96 56 73 107 51 73 107 51 85 113 63 73 107 51 85 113 63
++70 96 55 70 96 55 73 107 51 70 96 55 70 96 45 70 96 45 70 96 45 70 96 55
++73 107 51 70 96 55 73 107 51 73 107 51 70 96 55 73 107 51 70 96 55 73 107 51
++73 107 51 73 107 51 70 96 55 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++82 107 52 82 107 52 73 107 51 82 107 52 73 107 51 85 113 63 73 107 51 73 107 51
++70 96 45 73 107 51 73 107 51 70 96 45 73 107 51 70 96 45 73 107 51 70 96 45
++73 107 51 70 96 45 70 96 55 73 107 51 70 96 55 73 107 51 81 96 56 73 107 51
++73 107 51 73 107 51 70 96 55 73 107 51 70 96 45 64 97 47 70 96 45 64 97 47
++70 96 45 64 97 47 70 96 45 64 97 47 70 96 45 70 96 45 70 96 45 70 96 45
++73 107 51 70 96 55 70 96 45 73 107 51 70 96 45 73 107 51 70 96 45 73 107 51
++73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 70 96 45 70 96 45
++70 96 45 70 96 45 64 97 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 55 70 96 45 70 96 45 70 96 45 70 96 45 70 96 55 73 107 51 70 96 55
++73 107 51 73 107 51 81 96 56 73 107 51 70 96 55 73 107 51 70 96 45 70 96 55
++70 96 45 70 96 45 64 97 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 55
++80 96 46 73 107 51 70 96 55 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 66 86 47 64 97 47
++66 86 47 70 96 45 66 86 47 64 97 47 70 96 45 64 97 47 70 96 45 70 96 45
++64 97 47 66 86 47 64 97 47 57 86 47 66 86 47 57 86 47 66 86 47 57 86 47
++57 86 47 57 86 47 66 86 47 64 97 47 66 86 47 66 86 47 57 86 47 66 86 47
++66 86 47 57 86 47 66 86 47 66 86 47 70 96 55 64 97 47 66 86 47 66 86 47
++57 86 47 66 86 47 57 86 47 66 86 47 57 86 47 66 86 47 49 74 23 57 86 47
++66 86 47 57 86 47 66 86 47 57 86 47 66 86 47 57 86 47 66 86 47 57 86 47
++66 86 47 49 74 23 66 86 47 57 86 47 57 86 47 57 86 47 57 86 47 49 74 23
++57 86 47 66 86 47 70 96 55 70 96 55 64 97 47 66 86 47 57 86 47 57 86 47
++64 70 48 49 74 23 66 86 47 51 73 47 51 73 47 49 74 23 57 86 47 49 74 23
++51 73 47 51 73 47 51 73 47 49 74 23 64 70 48 49 74 23 51 73 47 51 73 47
++51 73 47 49 74 23 49 74 23 51 73 47 57 86 47 51 73 47 57 86 47 49 74 23
++51 73 47 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 50 61 48
++49 74 23 50 61 48 49 74 23 50 61 48 49 74 23 47 49 42 49 74 23 43 55 48
++49 74 23 49 74 23 50 61 48 49 74 23 50 61 48 49 74 23 50 61 48 49 74 23
++43 55 48 49 74 23 49 74 23 50 61 48 49 74 23 43 55 48 49 74 23 35 46 43
++49 74 23 43 55 48 49 74 23 43 55 48 47 47 21 43 55 48 47 47 21 35 46 43
++47 47 21 32 39 24 49 74 23 35 46 43 49 74 23 35 46 43 49 74 23 47 49 42
++
++49 74 23 50 61 48 51 73 47 49 74 23 51 73 47 51 73 47 49 74 23 51 73 47
++51 73 47 51 73 47 51 73 47 51 73 47 64 70 48 51 73 47 51 73 47 75 73 36
++51 73 47 51 73 47 64 70 48 49 74 23 66 86 47 51 73 47 49 74 23 57 86 47
++64 70 48 51 73 47 49 74 23 51 73 47 51 73 47 57 86 47 49 74 23 57 86 47
++64 70 48 57 86 47 51 73 47 66 86 47 51 73 47 66 86 47 66 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 57 86 47
++66 86 47 57 86 47 66 86 47 57 86 47 75 73 36 57 86 47 57 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47
++66 86 47 66 86 47 57 86 47 66 86 47 66 86 47 70 96 55 70 96 55 70 96 55
++70 96 55 66 86 47 66 86 47 64 97 47 70 96 55 70 96 45 70 96 55 70 96 55
++70 96 45 70 96 55 70 96 45 70 96 55 70 96 55 70 96 55 81 96 56 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 55 70 96 45 70 96 55 70 96 55 70 96 55
++70 96 45 70 96 55 70 96 45 70 96 55 85 113 63 75 99 72 82 107 52 75 99 72
++70 96 55 70 96 55 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 55 70 96 45 70 96 45 70 96 45 64 97 47 70 96 45
++64 97 47 70 96 45 64 97 47 70 96 45 64 97 47 70 96 45 73 107 51 82 107 52
++85 113 63 70 96 55 73 107 51 82 107 52 70 96 55 82 107 52 85 113 63 73 107 51
++85 113 63 82 107 52 85 113 63 85 113 63 85 113 63 82 107 52 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63
++85 113 63 82 107 52 85 113 63 73 107 51 85 113 63 70 96 55 73 107 51 85 113 63
++85 113 63 87 120 67 85 113 63 98 113 84 146 150 115 166 180 164 208 215 180 185 202 202
++166 180 164 177 169 143 146 162 145 166 156 164 166 180 164 146 151 137 146 151 137 138 126 108
++138 126 108 121 143 132 146 151 137 146 151 137 146 151 137 146 150 115 138 126 108 112 123 108
++99 93 84 75 81 69 64 70 48 63 55 45 55 55 48 64 70 48 63 55 51 55 55 48
++51 49 42 32 39 24 29 35 19 47 47 21 66 86 47 98 113 84 85 113 63 85 113 63
++85 113 63 85 113 63 85 113 63 73 107 51 85 113 63 82 119 53 73 107 51 85 113 63
++85 113 63 87 122 63 87 122 63 85 113 63 82 119 53 85 113 63 82 119 53 85 113 63
++85 113 63 85 113 63 85 113 63 85 113 63 82 107 52 82 119 53 82 107 52 82 107 52
++82 107 52 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51 82 107 52 82 107 52
++82 107 52 82 107 52 82 107 52 82 107 52 82 107 52 73 107 51 82 107 52 73 107 51
++73 107 51 73 107 51 73 107 51 82 107 52 73 107 51 73 107 51 82 107 52 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52
++73 107 51 82 107 52 73 107 51 73 107 51 70 96 45 70 96 45 70 96 45 70 96 45
++73 107 51 73 107 51 73 107 51 73 107 51 70 96 45 70 96 45 70 96 45 70 96 45
++73 107 51 70 96 45 73 107 51 82 119 53 82 107 52 82 107 52 82 107 52 73 107 51
++80 96 46 73 107 51 73 107 51 82 107 52 73 107 51 82 107 52 73 107 51 73 107 51
++82 107 52 73 107 51 73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51
++82 107 52 73 107 51 82 119 53 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51 82 107 52 82 107 52
++82 119 53 82 119 53 85 113 63 82 119 53 85 113 63 82 119 53 85 113 63 82 119 53
++85 113 63 82 119 53 82 107 52 82 119 53 73 107 51 82 119 53 73 107 51 85 113 63
++73 107 51 85 113 63 73 107 51 82 119 53 73 107 51 73 107 51 82 119 53 85 113 63
++85 113 63 82 119 53 85 113 63 82 119 53 82 119 53 82 119 53 82 107 52 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 82 119 53 82 107 52 82 119 53 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 70 96 45 73 107 51 70 96 45 70 96 45
++73 107 51 82 107 52 73 107 51 82 107 52 82 119 53 73 107 51 82 119 53 82 119 53
++85 113 63 82 119 53 82 107 52 73 107 51 82 119 53 73 107 51 82 119 53 82 119 53
++82 107 52 82 119 53 82 107 52 82 107 52 73 107 51 82 107 52 82 107 52 82 107 52
++82 107 52 73 107 51 82 107 52 82 107 52 73 107 51 82 107 52 82 107 52 82 107 52
++82 119 53 82 107 52 82 119 53 73 107 51 82 107 52 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 82 107 52 82 119 53 82 107 52
++82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 70 96 45 73 107 51 70 96 45 70 96 45 73 107 51 73 107 51 70 96 45
++73 107 51 70 96 45 73 107 51 73 107 51 75 99 72 73 107 51 85 113 63 85 113 63
++87 99 72 99 133 85 121 143 132 166 180 164 225 222 201 221 238 247 231 239 247 231 239 247
++231 239 247 231 239 247 231 239 247 231 239 247 233 241 227 221 238 247 231 239 247 233 241 227
++231 239 247 231 239 247 233 241 227 221 238 247 233 241 227 221 238 247 231 239 247 231 239 247
++231 239 247 240 251 247 231 239 247 231 239 247 240 251 247 240 251 247 251 251 247 251 251 247
++231 239 247 166 176 200 146 151 137 121 143 132 145 140 145 166 180 164 185 202 202 166 180 164
++94 105 108 50 61 48 15 22 17 15 22 17 42 47 42 57 86 47 59 79 61 66 86 47
++75 81 69 98 113 84 112 123 108 117 142 111 117 142 111 98 113 84 70 96 55 70 96 55
++70 96 55 73 107 51 73 107 51 75 99 72 85 113 63 70 96 55 73 107 51 73 107 51
++70 96 55 70 96 55 70 96 45 70 96 55 70 96 45 70 96 55 73 107 51 70 96 55
++73 107 51 70 96 55 73 107 51 70 96 55 82 107 52 70 96 55 85 113 63 70 96 55
++70 96 55 64 97 47 64 97 47 64 97 47 64 97 47 64 97 47 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 55 70 96 45 70 96 55 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 55 73 107 51 73 107 51 70 96 55 73 107 51 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 45 70 96 55 73 107 51 70 96 55 70 96 45 70 96 55
++73 107 51 70 96 45 73 107 51 70 96 45 73 107 51 70 96 55 73 107 51 70 96 55
++81 96 56 81 96 56 73 107 51 81 96 56 70 96 55 70 96 55 70 96 55 70 96 45
++70 96 55 70 96 45 64 97 47 70 96 45 64 97 47 70 96 45 70 96 55 70 96 55
++70 96 45 70 96 45 70 96 55 70 96 45 70 96 55 70 96 45 70 96 55 73 107 51
++70 96 45 70 96 55 70 96 55 81 96 56 70 96 55 70 96 45 64 97 47 70 96 45
++64 97 47 64 97 47 66 86 47 70 96 45 64 97 47 70 96 45 64 97 47 70 96 45
++73 107 51 70 96 45 70 96 45 70 96 55 73 107 51 73 107 51 70 96 55 82 107 52
++70 96 55 73 107 51 70 96 55 73 107 51 70 96 55 70 96 45 70 96 55 70 96 55
++70 96 45 70 96 45 66 86 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 55
++70 96 55 70 96 45 70 96 45 70 96 55 70 96 45 70 96 55 70 96 45 70 96 55
++70 96 55 73 107 51 81 96 56 70 96 55 70 96 55 66 86 47 64 97 47 66 86 47
++66 86 47 57 86 47 70 96 45 66 86 47 66 86 47 57 86 47 70 96 45 57 86 47
++66 86 47 57 86 47 57 86 47 70 96 45 57 86 47 70 96 45 57 86 47 66 86 47
++70 96 45 57 86 47 70 96 45 66 86 47 64 97 47 66 86 47 64 97 47 66 86 47
++64 97 47 66 86 47 64 97 47 70 96 55 70 96 55 70 96 55 66 86 47 57 86 47
++70 96 45 66 86 47 66 86 47 66 86 47 49 74 23 70 96 45 66 86 47 66 86 47
++57 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 57 86 47 57 86 47 49 74 23 66 86 47 66 86 47 49 74 23 66 86 47
++57 86 47 57 86 47 66 86 47 57 86 47 66 86 47 57 86 47 57 86 47 49 74 23
++57 86 47 57 86 47 51 73 47 49 74 23 57 86 47 49 74 23 51 73 47 64 70 48
++51 73 47 49 74 23 57 86 47 51 73 47 49 74 23 51 73 47 49 74 23 49 74 23
++49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 64 70 48 49 74 23 57 86 47
++49 74 23 51 73 47 49 74 23 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23
++50 61 48 51 73 47 51 73 47 49 74 23 50 61 48 49 74 23 47 47 21 49 74 23
++43 55 48 49 74 23 50 61 48 49 74 23 50 61 48 49 74 23 51 73 47 49 74 23
++43 55 48 49 74 23 35 46 43 49 74 23 50 61 48 49 74 23 43 55 48 49 74 23
++42 47 42 49 74 23 42 47 42 49 74 23 35 46 43 49 74 23 32 39 24 49 74 23
++32 39 24 49 74 23 35 46 43 49 74 23 42 47 42 47 47 21 35 46 43 49 74 23
++
++50 61 48 49 74 23 64 70 48 51 73 47 51 73 47 49 74 23 50 61 48 51 73 47
++49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47
++49 74 23 51 73 47 66 86 47 51 73 47 64 70 48 49 74 23 64 70 48 51 73 47
++57 86 47 49 74 23 57 86 47 49 74 23 51 73 47 49 74 23 51 73 47 57 86 47
++49 74 23 57 86 47 57 86 47 49 74 23 66 86 47 49 74 23 57 86 47 57 86 47
++66 86 47 57 86 47 66 86 47 57 86 47 57 86 47 66 86 47 57 86 47 64 70 48
++57 86 47 66 86 47 49 74 23 57 86 47 57 86 47 49 74 23 57 86 47 57 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 57 86 47 57 86 47 66 86 47 57 86 47
++66 86 47 57 86 47 66 86 47 57 86 47 66 86 47 66 86 47 64 97 47 66 86 47
++66 86 47 64 97 47 66 86 47 66 86 47 66 86 47 70 96 45 70 96 45 70 96 55
++70 96 55 70 96 45 70 96 55 70 96 45 70 96 45 70 96 55 70 96 45 70 96 55
++70 96 45 70 96 45 70 96 45 70 96 45 64 97 47 70 96 45 70 96 45 70 96 45
++66 86 47 64 97 47 66 86 47 70 96 45 70 96 55 81 96 56 75 99 72 73 107 51
++81 96 56 70 96 55 70 96 55 66 86 47 64 97 47 66 86 47 64 97 47 70 96 45
++70 96 55 80 96 46 70 96 55 70 96 55 70 96 45 70 96 55 70 96 45 70 96 45
++70 96 45 64 97 47 70 96 45 64 97 47 66 86 47 64 97 47 70 96 55 70 96 55
++70 96 55 85 113 63 73 107 51 70 96 55 82 107 52 73 107 51 70 96 55 73 107 51
++85 113 63 73 107 51 82 107 52 73 107 51 73 107 51 82 107 52 85 113 63 85 113 63
++73 107 51 82 107 52 73 107 51 82 107 52 73 107 51 85 113 63 82 107 52 85 113 63
++82 107 52 85 113 63 85 113 63 85 113 63 85 113 63 85 113 63 81 96 56 82 107 52
++85 113 63 73 107 51 85 113 63 85 113 63 70 96 55 73 107 51 73 107 51 73 107 51
++85 113 63 85 113 63 81 96 56 87 120 67 117 127 86 177 169 143 166 180 164 166 180 164
++166 180 164 177 169 143 146 151 137 146 151 137 166 156 164 177 169 143 146 151 137 146 151 137
++112 123 108 138 126 108 112 123 108 138 126 108 146 151 137 146 151 137 121 143 132 138 126 108
++112 123 108 99 93 84 75 77 62 64 70 48 55 55 48 47 49 42 47 47 21 32 39 24
++32 39 24 32 39 24 49 74 23 66 86 47 82 107 52 82 107 52 85 113 63 73 107 51
++85 113 63 73 107 51 85 113 63 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52
++82 119 53 82 107 52 85 113 63 82 119 53 82 107 52 73 107 51 73 107 51 82 107 52
++73 107 51 82 107 52 82 107 52 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 73 107 51
++70 96 45 70 96 45 73 107 51 73 107 51 70 96 45 73 107 51 70 96 45 73 107 51
++70 96 45 70 96 45 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51 73 107 51
++73 107 51 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 73 107 51 70 96 45 73 107 51 64 97 47 64 97 47 70 96 45
++64 97 47 70 96 45 70 96 45 64 97 47 70 96 45 64 97 47 70 96 45 64 97 47
++70 96 45 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 82 107 52 73 107 51
++73 107 51 73 107 51 70 96 45 73 107 51 82 107 52 73 107 51 82 107 52 73 107 51
++82 107 52 73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 82 107 52 82 107 52 73 107 51
++82 107 52 73 107 51 82 107 52 85 113 63 85 113 63 82 119 53 85 113 63 82 119 53
++85 113 63 85 113 63 82 119 53 82 107 52 73 107 51 82 107 52 73 107 51 73 107 51
++82 119 53 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 82 119 53
++82 119 53 85 113 63 82 119 53 85 113 63 82 107 52 82 107 52 73 107 51 82 119 53
++73 107 51 82 119 53 82 107 52 73 107 51 73 107 51 82 119 53 73 107 51 82 119 53
++82 119 53 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 82 119 53 73 107 51 82 119 53 82 107 52 82 119 53 82 107 52
++82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 82 107 52 82 107 52 82 107 52 82 107 52 82 119 53 82 107 52 82 107 52
++82 119 53 82 107 52 82 119 53 82 119 53 82 107 52 82 107 52 82 119 53 85 113 63
++82 119 53 82 107 52 82 119 53 73 107 51 82 107 52 82 119 53 82 107 52 82 119 53
++73 107 51 82 119 53 82 107 52 73 107 51 82 107 52 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 82 107 52 82 107 52 73 107 51 73 107 51 82 107 52 73 107 51
++82 119 53 73 107 51 82 107 52 73 107 51 82 119 53 82 107 52 82 119 53 82 119 53
++82 107 52 82 119 53 82 107 52 82 119 53 73 107 51 73 107 51 73 107 51 73 107 51
++70 96 45 73 107 51 73 107 51 73 107 51 73 107 51 70 96 45 73 107 51 70 96 45
++70 96 55 73 107 51 70 96 55 73 107 51 73 107 51 73 107 51 82 107 52 85 113 63
++85 113 63 85 113 63 117 142 111 166 180 164 201 216 228 221 238 247 221 238 247 221 238 247
++231 239 247 221 238 247 231 239 247 231 239 247 221 238 247 233 241 227 231 239 247 221 238 247
++231 239 247 231 239 247 221 238 247 231 239 247 231 239 247 221 238 247 233 241 227 221 238 247
++231 239 247 231 239 247 231 239 247 231 239 247 240 251 247 251 251 247 251 251 247 185 202 202
++122 134 144 59 69 70 63 59 71 94 105 108 166 156 164 185 202 202 233 241 227 232 215 228
++185 202 202 148 160 159 94 105 108 75 81 82 90 98 89 98 113 84 95 119 107 98 113 84
++117 142 111 150 171 159 208 215 180 185 202 202 208 215 180 146 162 145 87 99 72 70 96 55
++57 86 47 64 97 47 64 97 47 73 107 51 70 96 55 73 107 51 70 96 55 70 96 55
++70 96 55 70 96 45 64 97 47 64 97 47 64 97 47 70 96 45 70 96 45 70 96 45
++64 97 47 70 96 45 70 96 55 73 107 51 70 96 55 73 107 51 70 96 55 70 96 55
++70 96 55 70 96 45 64 97 47 66 86 47 70 96 45 66 86 47 64 97 47 70 96 45
++64 97 47 70 96 45 70 96 45 64 97 47 70 96 45 70 96 45 70 96 45 70 96 45
++66 86 47 64 97 47 66 86 47 64 97 47 66 86 47 64 97 47 70 96 45 64 97 47
++70 96 45 70 96 55 70 96 55 70 96 55 70 96 45 70 96 45 64 97 47 70 96 45
++70 96 45 70 96 45 70 96 55 70 96 45 70 96 55 70 96 55 70 96 45 73 107 51
++70 96 45 70 96 55 70 96 45 70 96 55 70 96 45 70 96 45 64 97 47 70 96 45
++70 96 55 73 107 51 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 45
++70 96 55 70 96 45 64 97 47 66 86 47 64 97 47 66 86 47 64 97 47 70 96 45
++64 97 47 64 97 47 64 97 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 64 97 47 64 97 47 64 97 47 64 97 47
++70 96 45 70 96 45 64 97 47 70 96 45 66 86 47 70 96 45 64 97 47 64 97 47
++70 96 45 64 97 47 64 97 47 70 96 45 70 96 45 73 107 51 70 96 55 73 107 51
++70 96 55 70 96 45 70 96 45 70 96 45 70 96 45 64 97 47 66 86 47 64 97 47
++66 86 47 64 97 47 66 86 47 57 86 47 66 86 47 64 97 47 70 96 45 66 86 47
++70 96 45 66 86 47 66 86 47 64 97 47 66 86 47 70 96 45 70 96 45 70 96 55
++80 96 46 70 96 55 73 107 51 70 96 55 70 96 55 64 97 47 66 86 47 66 86 47
++57 86 47 70 96 45 70 96 45 70 96 45 70 96 45 49 74 23 66 86 47 49 74 23
++70 96 45 49 74 23 70 96 45 49 74 23 70 96 45 57 86 47 70 96 45 49 74 23
++70 96 45 49 74 23 57 86 47 66 86 47 66 86 47 64 97 47 66 86 47 66 86 47
++66 86 47 66 86 47 64 97 47 66 86 47 70 96 45 66 86 47 64 97 47 66 86 47
++57 86 47 66 86 47 57 86 47 64 97 47 70 96 45 49 74 23 57 86 47 57 86 47
++66 86 47 57 86 47 57 86 47 64 97 47 66 86 47 70 96 55 64 97 47 66 86 47
++57 86 47 66 86 47 57 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 57 86 47 57 86 47 57 86 47 49 74 23 70 96 45 49 74 23 66 86 47
++57 86 47 57 86 47 57 86 47 66 86 47 49 74 23 51 73 47 57 86 47 49 74 23
++57 86 47 57 86 47 64 70 48 49 74 23 51 73 47 49 74 23 51 73 47 51 73 47
++50 61 48 49 74 23 50 61 48 49 74 23 51 73 47 57 86 47 51 73 47 51 73 47
++49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 49 74 23 50 61 48 49 74 23
++51 73 47 49 74 23 51 73 47 50 61 48 49 74 23 35 46 43 49 74 23 43 55 48
++49 74 23 50 61 48 49 74 23 51 73 47 64 70 48 49 74 23 50 61 48 50 61 48
++49 74 23 47 49 42 49 74 23 50 61 48 49 74 23 50 61 48 49 74 23 47 49 42
++43 55 48 49 74 23 42 47 42 49 74 23 35 46 43 49 74 23 35 46 43 49 74 23
++35 46 43 32 39 24 49 74 23 35 46 43 49 74 23 35 46 43 49 74 23 47 49 42
++
++51 73 47 51 73 47 51 73 47 49 74 23 51 73 47 49 74 23 47 49 42 49 74 23
++51 73 47 51 73 47 64 70 48 51 73 47 51 73 47 49 74 23 50 61 48 49 74 23
++51 73 47 64 70 48 49 74 23 64 70 48 49 74 23 64 70 48 49 74 23 51 73 47
++64 70 48 51 73 47 51 73 47 75 73 36 49 74 23 51 73 47 49 74 23 51 73 47
++57 86 47 51 73 47 49 74 23 64 70 48 57 86 47 51 73 47 66 86 47 49 74 23
++51 73 47 51 73 47 64 70 48 57 86 47 51 73 47 49 74 23 51 73 47 49 74 23
++49 74 23 51 73 47 49 74 23 64 70 48 49 74 23 57 86 47 49 74 23 51 73 47
++57 86 47 66 86 47 57 86 47 57 86 47 51 73 47 49 74 23 66 86 47 57 86 47
++66 86 47 57 86 47 57 86 47 57 86 47 57 86 47 66 86 47 66 86 47 66 86 47
++64 97 47 57 86 47 57 86 47 57 86 47 64 97 47 66 86 47 70 96 55 70 96 45
++70 96 55 70 96 45 70 96 45 66 86 47 70 96 55 64 97 47 70 96 45 70 96 45
++66 86 47 64 97 47 66 86 47 70 96 55 66 86 47 70 96 45 70 96 45 64 97 47
++66 86 47 57 86 47 57 86 47 66 86 47 64 97 47 70 96 55 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 45 70 96 45 64 97 47 70 96 45 66 86 47 70 96 45
++70 96 45 70 96 55 70 96 45 70 96 45 70 96 45 70 96 55 70 96 45 64 97 47
++70 96 45 70 96 55 70 96 45 66 86 47 57 86 47 57 86 47 70 96 45 70 96 45
++73 107 51 70 96 55 70 96 55 73 107 51 73 107 51 70 96 55 73 107 51 73 107 51
++81 96 56 73 107 51 82 107 52 70 96 55 73 107 51 73 107 51 81 96 56 73 107 51
++70 96 55 73 107 51 70 96 55 73 107 51 70 96 55 73 107 51 70 96 55 73 107 51
++82 107 52 85 113 63 85 113 63 82 107 52 85 113 63 81 96 56 73 107 51 73 107 51
++81 96 56 85 113 63 73 107 51 75 99 72 73 107 51 73 107 51 70 96 55 73 107 51
++70 96 55 73 107 51 70 96 55 81 96 56 87 120 67 146 150 115 177 169 143 166 180 164
++177 169 143 146 151 137 146 150 115 121 143 132 146 150 115 146 162 145 166 156 164 146 162 145
++146 151 137 112 123 108 112 123 108 138 126 108 112 123 108 138 126 108 112 123 108 112 123 108
++112 123 108 117 99 86 90 98 89 75 81 69 64 70 48 63 55 45 47 44 42 32 39 24
++47 47 21 50 61 48 81 96 56 87 99 72 85 113 63 70 96 55 73 107 51 73 107 51
++73 107 51 73 107 51 64 97 47 73 107 51 64 97 47 73 107 51 64 97 47 73 107 51
++73 107 51 73 107 51 82 107 52 73 107 51 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 73 107 51 73 107 51 73 107 51 73 107 51 70 96 45 70 96 45 70 96 45
++73 107 51 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 73 107 51
++70 96 45 73 107 51 70 96 45 73 107 51 73 107 51 73 107 51 73 107 51 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++73 107 51 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 64 97 47
++70 96 45 64 97 47 70 96 45 70 96 45 73 107 51 70 96 45 73 107 51 70 96 45
++73 107 51 70 96 45 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51 80 96 46
++73 107 51 73 107 51 80 96 46 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52
++73 107 51 82 107 52 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++82 107 52 73 107 51 73 107 51 82 107 52 73 107 51 82 107 52 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 82 107 52 82 119 53 82 107 52 82 107 52 82 107 52
++82 119 53 82 107 52 82 107 52 73 107 51 82 107 52 73 107 51 73 107 51 73 107 51
++70 96 45 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52
++73 107 51 85 113 63 82 119 53 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 82 119 53 73 107 51 82 119 53 73 107 51
++82 119 53 82 119 53 73 107 51 82 119 53 82 107 52 73 107 51 73 107 51 73 107 51
++73 107 51 82 119 53 82 107 52 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53
++82 107 52 82 119 53 82 107 52 73 107 51 82 119 53 73 107 51 82 107 52 82 107 52
++82 107 52 82 119 53 73 107 51 82 119 53 82 119 53 82 119 53 85 113 63 82 119 53
++85 113 63 82 119 53 82 107 52 73 107 51 82 107 52 82 107 52 73 107 51 82 107 52
++73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 70 96 45 73 107 51 70 96 45 73 107 51 73 107 51 82 119 53
++82 107 52 73 107 51 82 107 52 82 107 52 82 119 53 82 107 52 82 119 53 85 113 63
++82 107 52 82 119 53 82 107 52 73 107 51 82 107 52 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 80 96 46 73 107 51 73 107 51 73 107 51 70 96 45 73 107 51
++70 96 45 70 96 45 73 107 51 70 96 55 70 96 55 73 107 51 70 96 55 73 107 51
++81 96 56 85 113 63 98 113 84 146 151 137 185 202 202 201 216 228 233 241 227 221 238 247
++221 238 247 231 239 247 231 239 247 231 239 247 221 238 247 231 239 247 221 238 247 240 251 247
++221 238 247 233 241 227 231 239 247 233 241 227 221 238 247 233 241 227 221 238 247 221 238 247
++233 241 227 221 238 247 240 251 247 240 251 247 251 251 247 231 239 247 185 202 202 94 105 108
++37 35 43 23 30 35 59 69 70 145 140 145 185 202 202 233 241 227 232 215 228 233 241 227
++233 241 227 225 222 201 201 216 228 185 202 202 166 180 164 166 180 164 166 180 164 166 180 164
++208 215 180 225 222 201 233 241 227 233 241 227 225 222 201 166 180 164 117 142 111 98 113 84
++75 99 72 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 45
++64 97 47 66 86 47 64 97 47 66 86 47 64 97 47 70 96 45 64 97 47 64 97 47
++70 96 55 70 96 45 70 96 55 70 96 55 73 107 51 70 96 55 70 96 55 70 96 55
++70 96 55 64 97 47 66 86 47 64 97 47 66 86 47 64 97 47 70 96 45 64 97 47
++64 97 47 70 96 45 64 97 47 70 96 45 70 96 55 70 96 45 64 97 47 70 96 45
++64 97 47 66 86 47 64 97 47 64 97 47 64 97 47 70 96 45 66 86 47 64 97 47
++70 96 45 70 96 45 70 96 45 70 96 45 64 97 47 64 97 47 70 96 45 66 86 47
++64 97 47 64 97 47 70 96 45 64 97 47 70 96 45 70 96 45 70 96 55 70 96 45
++73 107 51 70 96 45 70 96 45 70 96 45 64 97 47 66 86 47 66 86 47 64 97 47
++70 96 45 66 86 47 70 96 55 70 96 45 70 96 55 70 96 45 66 86 47 64 97 47
++66 86 47 64 97 47 66 86 47 57 86 47 57 86 47 57 86 47 66 86 47 66 86 47
++57 86 47 57 86 47 57 86 47 57 86 47 66 86 47 66 86 47 70 96 45 70 96 45
++70 96 45 66 86 47 66 86 47 57 86 47 66 86 47 64 97 47 66 86 47 64 97 47
++66 86 47 64 97 47 66 86 47 70 96 45 70 96 45 70 96 45 66 86 47 57 86 47
++57 86 47 57 86 47 66 86 47 57 86 47 70 96 45 70 96 45 70 96 45 64 97 47
++66 86 47 64 97 47 66 86 47 57 86 47 66 86 47 57 86 47 57 86 47 49 74 23
++57 86 47 49 74 23 57 86 47 49 74 23 70 96 45 49 74 23 70 96 45 66 86 47
++66 86 47 57 86 47 57 86 47 57 86 47 57 86 47 66 86 47 66 86 47 70 96 45
++70 96 45 70 96 45 70 96 55 70 96 55 70 96 45 66 86 47 57 86 47 57 86 47
++70 96 45 66 86 47 64 97 47 70 96 45 70 96 45 64 97 47 57 86 47 49 74 23
++70 96 45 57 86 47 66 86 47 70 96 45 57 86 47 70 96 45 49 74 23 64 97 47
++57 86 47 70 96 45 66 86 47 57 86 47 66 86 47 57 86 47 66 86 47 57 86 47
++64 97 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 57 86 47
++57 86 47 57 86 47 66 86 47 57 86 47 66 86 47 70 96 45 57 86 47 49 74 23
++57 86 47 57 86 47 66 86 47 57 86 47 66 86 47 64 97 47 57 86 47 57 86 47
++57 86 47 49 74 23 57 86 47 49 74 23 57 86 47 66 86 47 57 86 47 57 86 47
++57 86 47 49 74 23 66 86 47 49 74 23 66 86 47 57 86 47 49 74 23 64 97 47
++49 74 23 66 86 47 51 73 47 49 74 23 64 70 48 49 74 23 57 86 47 64 70 48
++57 86 47 64 70 48 57 86 47 51 73 47 51 73 47 49 74 23 51 73 47 49 74 23
++49 74 23 50 61 48 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 57 86 47
++51 73 47 49 74 23 49 74 23 49 74 23 50 61 48 49 74 23 49 74 23 50 61 48
++49 74 23 64 70 48 51 73 47 49 74 23 50 61 48 49 74 23 43 55 48 49 74 23
++51 73 47 49 74 23 50 61 48 51 73 47 49 74 23 50 61 48 49 74 23 50 61 48
++49 74 23 43 55 48 49 74 23 50 61 48 50 61 48 51 73 47 50 61 48 49 74 23
++50 61 48 50 61 48 49 74 23 42 47 42 49 74 23 35 46 43 49 74 23 35 46 43
++49 74 23 32 39 24 49 74 23 32 39 24 49 74 23 42 47 42 49 74 23 43 55 48
++
++49 74 23 51 73 47 51 73 47 51 73 47 49 74 23 43 55 48 49 74 23 50 61 48
++49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 43 55 48 49 74 23 43 55 48
++49 74 23 51 73 47 51 73 47 51 73 47 49 74 23 51 73 47 51 73 47 49 74 23
++51 73 47 49 74 23 57 86 47 51 73 47 51 73 47 51 73 47 64 70 48 49 74 23
++51 73 47 49 74 23 51 73 47 57 86 47 64 70 48 57 86 47 64 70 48 51 73 47
++64 70 48 49 74 23 51 73 47 49 74 23 64 70 48 49 74 23 64 70 48 49 74 23
++51 73 47 49 74 23 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47
++49 74 23 57 86 47 66 86 47 51 73 47 57 86 47 57 86 47 64 70 48 57 86 47
++57 86 47 57 86 47 64 70 48 57 86 47 57 86 47 66 86 47 57 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 70 96 45 70 96 55
++70 96 55 70 96 55 70 96 55 70 96 45 70 96 55 66 86 47 70 96 55 66 86 47
++70 96 55 66 86 47 66 86 47 66 86 47 66 86 47 70 96 55 64 97 47 70 96 45
++70 96 45 66 86 47 57 86 47 57 86 47 66 86 47 64 97 47 70 96 55 70 96 55
++70 96 55 70 96 55 70 96 55 66 86 47 64 97 47 66 86 47 64 97 47 66 86 47
++64 97 47 70 96 45 64 97 47 64 97 47 66 86 47 70 96 45 70 96 55 70 96 45
++70 96 55 70 96 45 70 96 45 70 96 45 70 96 45 64 97 47 66 86 47 64 97 47
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 73 107 51 70 96 45 70 96 45
++73 107 51 70 96 55 70 96 55 73 107 51 70 96 55 73 107 51 70 96 55 64 97 47
++70 96 45 70 96 45 70 96 45 70 96 45 64 97 47 66 86 47 70 96 45 70 96 45
++70 96 55 73 107 51 81 96 56 73 107 51 81 96 56 73 107 51 73 107 51 70 96 55
++64 97 47 70 96 55 70 96 55 73 107 51 82 107 52 70 96 55 73 107 51 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 55 66 86 47 99 133 85 146 162 145 177 169 143
++146 162 145 146 151 137 146 151 137 138 126 108 146 151 137 121 143 132 138 126 108 146 150 115
++146 151 137 146 151 137 146 151 137 112 123 108 99 93 84 99 93 84 99 93 84 117 99 86
++99 93 84 99 93 84 90 98 89 88 83 74 87 99 72 88 83 74 81 96 56 75 77 62
++81 96 56 81 96 56 81 96 56 82 107 52 73 107 51 70 96 45 70 96 45 70 96 45
++70 96 45 64 97 47 64 97 47 64 97 47 64 97 47 64 97 47 64 97 47 70 96 45
++70 96 45 70 96 45 70 96 45 73 107 51 70 96 45 70 96 45 64 97 47 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 73 107 51 70 96 45 73 107 51 70 96 45
++70 96 45 73 107 51 70 96 45 73 107 51 70 96 45 70 96 45 73 107 51 70 96 45
++70 96 45 64 97 47 73 107 51 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 73 107 51 70 96 45 73 107 51 70 96 45
++73 107 51 70 96 45 73 107 51 64 97 47 70 96 45 73 107 51 73 107 51 70 96 45
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++70 96 45 64 97 47 73 107 51 70 96 45 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 70 96 45 73 107 51 70 96 45 73 107 51 73 107 51 73 107 51
++82 119 53 73 107 51 70 96 45 70 96 45 70 96 45 70 96 45 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 70 96 45 70 96 45 73 107 51
++73 107 51 70 96 45 73 107 51 73 107 51 73 107 51 70 96 45 73 107 51 73 107 51
++82 119 53 82 107 52 82 119 53 82 107 52 82 107 52 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 70 96 45 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 82 119 53 82 119 53 73 107 51 82 119 53 73 107 51
++73 107 51 73 107 51 82 119 53 82 119 53 73 107 51 82 119 53 73 107 51 82 107 52
++82 119 53 73 107 51 82 119 53 73 107 51 73 107 51 82 119 53 82 119 53 82 107 52
++73 107 51 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 73 107 51
++73 107 51 73 107 51 82 119 53 73 107 51 82 119 53 82 107 52 82 119 53 82 119 53
++82 107 52 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 82 119 53 82 107 52 82 107 52
++82 107 52 73 107 51 80 96 46 73 107 51 73 107 51 73 107 51 70 96 45 73 107 51
++73 107 51 73 107 51 82 119 53 73 107 51 82 107 52 73 107 51 80 96 46 73 107 51
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 73 107 51 70 96 45 70 96 45
++73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 82 119 53 82 107 52 82 119 53
++82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++80 96 46 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51 73 107 51 70 96 45
++70 96 45 64 97 47 64 97 47 64 97 47 64 97 47 64 97 47 73 107 51 73 107 51
++70 96 55 70 96 45 75 99 72 117 142 111 166 180 164 185 202 202 221 238 247 221 238 247
++221 238 247 231 239 247 231 239 247 231 239 247 231 239 247 221 238 247 233 241 227 221 238 247
++231 239 247 221 238 247 221 238 247 221 238 247 233 241 227 221 238 247 231 239 247 231 239 247
++231 239 247 231 239 247 240 251 247 240 251 247 221 238 247 148 160 159 75 64 82 23 30 35
++32 40 58 112 123 108 166 174 181 201 216 228 232 215 228 221 238 247 225 222 201 201 216 228
++233 241 227 201 216 228 233 241 227 232 215 228 233 241 227 225 222 201 201 216 228 225 222 201
++201 216 228 201 216 228 225 222 201 185 202 202 185 202 202 166 174 181 166 180 164 166 180 164
++146 162 145 121 143 132 112 123 108 98 113 84 87 99 72 75 99 72 70 96 55 66 86 47
++66 86 47 66 86 47 59 79 61 70 96 55 66 86 47 66 86 47 66 86 47 57 86 47
++66 86 47 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55 70 96 55
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 57 86 47 66 86 47 66 86 47 70 96 55 70 96 55 70 96 45 64 97 47
++66 86 47 70 96 45 57 86 47 66 86 47 70 96 45 64 97 47 70 96 45 66 86 47
++64 97 47 70 96 55 70 96 45 70 96 55 70 96 55 70 96 45 66 86 47 66 86 47
++66 86 47 66 86 47 64 97 47 66 86 47 64 97 47 64 97 47 70 96 45 70 96 45
++70 96 55 73 107 51 70 96 55 70 96 45 70 96 45 66 86 47 70 96 45 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++66 86 47 57 86 47 57 86 47 57 86 47 66 86 47 66 86 47 64 97 47 66 86 47
++70 96 45 49 74 23 70 96 45 49 74 23 57 86 47 70 96 45 64 97 47 70 96 45
++64 97 47 66 86 47 70 96 45 49 74 23 66 86 47 49 74 23 64 97 47 49 74 23
++66 86 47 57 86 47 66 86 47 64 97 47 70 96 45 57 86 47 57 86 47 66 86 47
++49 74 23 70 96 45 49 74 23 57 86 47 57 86 47 66 86 47 57 86 47 66 86 47
++57 86 47 57 86 47 57 86 47 66 86 47 66 86 47 49 74 23 57 86 47 49 74 23
++57 86 47 49 74 23 57 86 47 70 96 45 49 74 23 66 86 47 57 86 47 57 86 47
++57 86 47 57 86 47 75 73 36 49 74 23 49 74 23 49 74 23 57 86 47 70 96 45
++66 86 47 70 96 45 70 96 45 70 96 45 66 86 47 66 86 47 49 74 23 66 86 47
++57 86 47 66 86 47 70 96 45 66 86 47 57 86 47 66 86 47 49 74 23 57 86 47
++57 86 47 49 74 23 57 86 47 66 86 47 49 74 23 57 86 47 66 86 47 57 86 47
++66 86 47 49 74 23 57 86 47 49 74 23 57 86 47 66 86 47 57 86 47 66 86 47
++57 86 47 57 86 47 57 86 47 57 86 47 66 86 47 57 86 47 57 86 47 66 86 47
++49 74 23 66 86 47 49 74 23 57 86 47 70 96 45 49 74 23 57 86 47 57 86 47
++49 74 23 57 86 47 49 74 23 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47
++66 86 47 49 74 23 57 86 47 57 86 47 49 74 23 57 86 47 57 86 47 57 86 47
++49 74 23 57 86 47 57 86 47 57 86 47 49 74 23 57 86 47 49 74 23 57 86 47
++66 86 47 49 74 23 57 86 47 57 86 47 57 86 47 51 73 47 49 74 23 57 86 47
++57 86 47 57 86 47 49 74 23 57 86 47 51 73 47 51 73 47 51 73 47 49 74 23
++50 61 48 49 74 23 49 74 23 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23
++49 74 23 51 73 47 49 74 23 43 55 48 49 74 23 49 74 23 50 61 48 49 74 23
++50 61 48 49 74 23 50 61 48 49 74 23 50 61 48 49 74 23 51 73 47 49 74 23
++50 61 48 51 73 47 49 74 23 50 61 48 49 74 23 50 61 48 49 74 23 50 61 48
++49 74 23 50 61 48 49 74 23 50 61 48 49 74 23 51 73 47 49 74 23 50 61 48
++49 74 23 49 74 23 42 47 42 49 74 23 42 47 42 49 74 23 43 55 48 49 74 23
++43 55 48 49 74 23 32 39 24 47 47 21 35 46 43 49 74 23 42 47 42 49 74 23
++
++51 73 47 51 73 47 51 73 47 51 73 47 50 61 48 51 73 47 50 61 48 51 73 47
++50 61 48 50 61 48 51 73 47 50 61 48 51 73 47 49 74 23 43 55 48 49 74 23
++50 61 48 51 73 47 49 74 23 51 73 47 49 74 23 50 61 48 49 74 23 50 61 48
++51 73 47 51 73 47 64 70 48 51 73 47 57 86 47 49 74 23 51 73 47 51 73 47
++51 73 47 49 74 23 51 73 47 49 74 23 64 70 48 51 73 47 49 74 23 57 86 47
++49 74 23 64 70 48 49 74 23 51 73 47 57 86 47 51 73 47 49 74 23 51 73 47
++49 74 23 50 61 48 49 74 23 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23
++57 86 47 49 74 23 57 86 47 49 74 23 57 86 47 57 86 47 57 86 47 49 74 23
++66 86 47 49 74 23 66 86 47 57 86 47 66 86 47 57 86 47 66 86 47 66 86 47
++66 86 47 70 96 55 66 86 47 57 86 47 57 86 47 66 86 47 66 86 47 66 86 47
++70 96 45 66 86 47 70 96 45 66 86 47 66 86 47 66 86 47 70 96 55 70 96 55
++66 86 47 70 96 55 57 86 47 70 96 55 66 86 47 70 96 55 66 86 47 64 97 47
++66 86 47 57 86 47 70 96 45 66 86 47 57 86 47 64 97 47 66 86 47 64 97 47
++64 97 47 64 97 47 66 86 47 64 97 47 66 86 47 57 86 47 57 86 47 57 86 47
++66 86 47 66 86 47 64 97 47 57 86 47 57 86 47 57 86 47 66 86 47 70 96 45
++66 86 47 70 96 45 66 86 47 57 86 47 57 86 47 49 74 23 57 86 47 57 86 47
++66 86 47 66 86 47 66 86 47 70 96 45 64 97 47 66 86 47 70 96 45 64 97 47
++70 96 45 70 96 45 70 96 45 64 97 47 70 96 45 66 86 47 57 86 47 66 86 47
++57 86 47 57 86 47 57 86 47 66 86 47 57 86 47 49 74 23 64 97 47 66 86 47
++70 96 45 70 96 45 64 97 47 70 96 45 70 96 45 70 96 45 66 86 47 70 96 45
++64 97 47 70 96 45 70 96 45 64 97 47 70 96 45 70 96 45 70 96 45 64 97 47
++64 97 47 57 86 47 66 86 47 66 86 47 75 73 36 87 99 72 117 142 111 146 151 137
++146 151 137 146 151 137 146 151 137 146 162 145 146 151 137 146 151 137 138 126 108 111 119 127
++138 126 108 138 126 108 112 123 108 112 123 108 99 93 84 90 98 89 88 83 74 75 81 69
++75 81 69 75 73 58 75 73 58 75 73 58 75 72 67 75 81 69 88 83 74 87 99 72
++85 113 63 82 107 52 73 107 51 70 96 45 70 96 45 70 96 45 70 96 45 73 107 51
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 64 97 47 70 96 45 64 97 47
++70 96 45 70 96 45 73 107 51 70 96 45 70 96 45 64 97 47 70 96 45 49 74 23
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 73 107 51
++70 96 45 73 107 51 73 107 51 73 107 51 70 96 45 73 107 51 70 96 45 73 107 51
++73 107 51 70 96 45 70 96 45 64 97 47 70 96 45 70 96 45 73 107 51 70 96 45
++73 107 51 70 96 45 64 97 47 64 97 47 73 107 51 64 97 47 64 97 47 64 97 47
++64 97 47 64 97 47 64 97 47 70 96 45 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 82 119 53 73 107 51 82 119 53 73 107 51 82 119 53 73 107 51
++64 97 47 73 107 51 70 96 45 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 70 96 45 70 96 45 73 107 51 70 96 45 73 107 51
++82 107 52 73 107 51 85 113 63 73 107 51 82 107 52 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 70 96 45 70 96 45 70 96 45 73 107 51 73 107 51 82 107 52
++73 107 51 82 107 52 82 107 52 73 107 51 82 107 52 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 82 107 52 82 107 52 73 107 51 73 107 51 82 119 53 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 82 107 52
++73 107 51 82 119 53 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 73 107 51 73 107 51
++73 107 51 82 119 53 73 107 51 82 119 53 82 119 53 73 107 51 82 119 53 73 107 51
++82 119 53 80 96 46 73 107 51 82 119 53 73 107 51 82 119 53 73 107 51 82 107 52
++82 119 53 82 119 53 82 119 53 82 119 53 82 107 52 82 119 53 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 82 119 53 82 107 52 82 119 53 73 107 51
++73 107 51 73 107 51 73 107 51 70 96 45 70 96 45 73 107 51 73 107 51 73 107 51
++82 107 52 73 107 51 70 96 45 73 107 51 73 107 51 82 107 52 73 107 51 82 107 52
++73 107 51 70 96 45 73 107 51 70 96 45 70 96 45 70 96 45 73 107 51 73 107 51
++70 96 45 73 107 51 80 96 46 82 119 53 73 107 51 82 107 52 73 107 51 73 107 51
++70 96 45 73 107 51 64 97 47 70 96 45 70 96 45 70 96 45 70 96 45 73 107 51
++70 96 45 70 96 45 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++70 96 45 73 107 51 70 96 45 73 107 51 70 96 45 70 96 45 70 96 45 70 96 45
++73 107 51 70 96 45 70 96 45 73 107 51 70 96 45 73 107 51 73 107 51 73 107 51
++70 96 45 70 96 45 64 97 47 64 97 47 73 107 51 73 107 51 70 96 45 73 107 51
++73 107 51 64 97 47 70 96 55 99 133 85 150 171 159 185 202 202 233 241 227 221 238 247
++221 238 247 231 239 247 231 239 247 231 239 247 221 238 247 221 238 247 221 238 247 221 238 247
++233 241 227 221 238 247 233 241 227 231 239 247 231 239 247 233 241 227 231 239 247 231 239 247
++240 251 247 240 251 247 221 238 247 185 202 202 111 122 142 54 57 61 32 40 58 75 81 90
++148 160 159 194 199 226 233 241 227 233 241 227 233 241 227 201 216 228 225 222 201 185 202 202
++201 216 228 233 241 227 201 216 228 233 241 227 201 216 228 221 238 247 225 222 201 201 216 228
++233 241 227 225 222 201 185 202 202 208 215 180 185 202 202 166 180 164 166 180 164 166 156 164
++177 169 143 166 180 164 166 180 164 166 180 164 166 180 164 146 162 145 117 142 111 112 123 108
++99 133 85 95 119 107 99 133 85 98 113 84 98 113 84 88 121 82 87 99 72 85 113 63
++75 99 72 75 99 72 81 96 56 70 96 55 70 96 55 81 96 56 70 96 55 70 96 55
++70 96 55 70 96 55 75 99 72 85 113 63 75 99 72 82 107 52 70 96 55 66 86 47
++57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 70 96 45
++70 96 45 64 97 47 70 96 45 70 96 45 70 96 55 70 96 55 70 96 55 70 96 45
++70 96 55 70 96 45 70 96 55 70 96 45 64 97 47 70 96 45 66 86 47 66 86 47
++57 86 47 70 96 45 57 86 47 70 96 45 57 86 47 70 96 45 64 97 47 70 96 45
++64 97 47 70 96 55 81 96 56 70 96 45 70 96 45 70 96 45 70 96 45 66 86 47
++70 96 45 66 86 47 66 86 47 64 97 47 57 86 47 64 97 47 66 86 47 57 86 47
++66 86 47 57 86 47 66 86 47 66 86 47 66 86 47 70 96 45 64 97 47 70 96 45
++66 86 47 70 96 45 57 86 47 70 96 45 66 86 47 70 96 45 66 86 47 66 86 47
++70 96 45 66 86 47 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 66 86 47
++70 96 45 49 74 23 70 96 45 57 86 47 49 74 23 70 96 45 49 74 23 49 74 23
++57 86 47 49 74 23 64 97 47 57 86 47 49 74 23 64 97 47 49 74 23 57 86 47
++49 74 23 66 86 47 49 74 23 66 86 47 57 86 47 57 86 47 49 74 23 51 73 47
++49 74 23 66 86 47 57 86 47 75 73 36 57 86 47 66 86 47 49 74 23 66 86 47
++75 73 36 57 86 47 49 74 23 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47
++70 96 45 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 66 86 47 66 86 47
++49 74 23 70 96 45 66 86 47 57 86 47 49 74 23 66 86 47 49 74 23 66 86 47
++49 74 23 70 96 45 57 86 47 57 86 47 57 86 47 57 86 47 49 74 23 57 86 47
++49 74 23 66 86 47 57 86 47 66 86 47 57 86 47 66 86 47 57 86 47 57 86 47
++49 74 23 57 86 47 66 86 47 57 86 47 66 86 47 49 74 23 57 86 47 49 74 23
++57 86 47 49 74 23 66 86 47 66 86 47 57 86 47 70 96 45 57 86 47 49 74 23
++57 86 47 49 74 23 57 86 47 49 74 23 49 74 23 49 74 23 49 74 23 49 74 23
++51 73 47 49 74 23 49 74 23 49 74 23 51 73 47 49 74 23 57 86 47 49 74 23
++49 74 23 49 74 23 51 73 47 49 74 23 49 74 23 49 74 23 49 74 23 49 74 23
++49 74 23 51 73 47 49 74 23 49 74 23 49 74 23 49 74 23 51 73 47 49 74 23
++64 70 48 51 73 47 57 86 47 51 73 47 49 74 23 57 86 47 49 74 23 51 73 47
++49 74 23 49 74 23 43 55 48 49 74 23 51 73 47 49 74 23 49 74 23 51 73 47
++49 74 23 35 46 43 49 74 23 32 39 24 49 74 23 43 55 48 49 74 23 49 74 23
++43 55 48 49 74 23 42 47 42 49 74 23 47 47 21 49 74 23 43 55 48 49 74 23
++51 73 47 49 74 23 47 49 42 49 74 23 50 61 48 49 74 23 50 61 48 49 74 23
++50 61 48 49 74 23 50 61 48 51 73 47 49 74 23 50 61 48 49 74 23 47 49 42
++49 74 23 43 55 48 49 74 23 43 55 48 49 74 23 35 46 43 49 74 23 42 47 42
++49 74 23 35 46 43 49 74 23 32 39 24 49 74 23 35 46 43 49 74 23 35 46 43
++
++49 74 23 51 73 47 51 73 47 49 74 23 50 61 48 49 74 23 51 73 47 49 74 23
++51 73 47 49 74 23 50 61 48 49 74 23 43 55 48 49 74 23 43 55 48 49 74 23
++50 61 48 49 74 23 51 73 47 51 73 47 50 61 48 50 61 48 49 74 23 47 49 42
++49 74 23 51 73 47 49 74 23 51 73 47 51 73 47 64 70 48 49 74 23 51 73 47
++49 74 23 51 73 47 51 73 47 51 73 47 51 73 47 51 73 47 51 73 47 64 70 48
++51 73 47 57 86 47 51 73 47 64 70 48 49 74 23 75 73 36 57 86 47 64 70 48
++51 73 47 49 74 23 43 55 48 49 74 23 49 74 23 51 73 47 49 74 23 51 73 47
++49 74 23 51 73 47 57 86 47 51 73 47 57 86 47 57 86 47 57 86 47 57 86 47
++51 73 47 57 86 47 49 74 23 64 70 48 66 86 47 57 86 47 57 86 47 66 86 47
++66 86 47 66 86 47 66 86 47 57 86 47 51 73 47 49 74 23 57 86 47 57 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 70 96 55
++70 96 55 64 97 47 66 86 47 57 86 47 66 86 47 66 86 47 64 97 47 66 86 47
++70 96 45 70 96 45 57 86 47 70 96 45 66 86 47 57 86 47 66 86 47 57 86 47
++66 86 47 57 86 47 57 86 47 49 74 23 57 86 47 49 74 23 57 86 47 49 74 23
++57 86 47 49 74 23 57 86 47 49 74 23 57 86 47 49 74 23 49 74 23 57 86 47
++57 86 47 57 86 47 57 86 47 66 86 47 49 74 23 57 86 47 49 74 23 49 74 23
++49 74 23 49 74 23 57 86 47 57 86 47 70 96 45 57 86 47 57 86 47 66 86 47
++64 97 47 66 86 47 64 97 47 66 86 47 57 86 47 57 86 47 57 86 47 49 74 23
++49 74 23 57 86 47 49 74 23 49 74 23 57 86 47 64 97 47 49 74 23 64 97 47
++70 96 45 64 97 47 70 96 45 64 97 47 57 86 47 70 96 45 49 74 23 57 86 47
++57 86 47 57 86 47 66 86 47 64 97 47 64 97 47 64 97 47 70 96 45 64 97 47
++70 96 45 49 74 23 57 86 47 49 74 23 57 86 47 66 86 47 98 113 84 146 150 115
++146 151 137 146 151 137 177 169 143 146 162 145 166 156 164 146 151 137 121 143 132 112 123 108
++98 113 84 94 105 108 117 99 86 98 113 84 99 93 84 99 93 84 75 77 62 64 70 48
++50 61 48 47 49 42 42 47 42 32 39 24 47 47 21 50 61 48 75 77 62 81 96 56
++81 96 56 81 96 56 70 96 45 73 107 51 70 96 45 70 96 45 70 96 45 70 96 45
++73 107 51 70 96 45 70 96 45 64 97 47 70 96 45 70 96 45 64 97 47 73 107 51
++70 96 45 64 97 47 70 96 45 70 96 45 73 107 51 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++73 107 51 80 96 46 73 107 51 73 107 51 73 107 51 73 107 51 70 96 45 73 107 51
++70 96 45 73 107 51 70 96 45 73 107 51 70 96 45 73 107 51 70 96 45 70 96 45
++73 107 51 73 107 51 64 97 47 64 97 47 73 107 51 73 107 51 73 107 51 64 97 47
++73 107 51 70 96 45 64 97 47 73 107 51 70 96 45 73 107 51 73 107 51 70 96 45
++73 107 51 73 107 51 73 107 51 73 107 51 82 119 53 73 107 51 82 119 53 73 107 51
++73 107 51 64 97 47 73 107 51 70 96 45 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 70 96 45 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++82 119 53 82 119 53 73 107 51 70 96 45 73 107 51 70 96 45 73 107 51 73 107 51
++73 107 51 82 107 52 82 107 52 82 107 52 82 119 53 82 107 52 82 119 53 82 107 52
++73 107 51 80 96 46 73 107 51 73 107 51 70 96 45 73 107 51 80 96 46 73 107 51
++73 107 51 82 119 53 73 107 51 82 119 53 82 107 52 73 107 51 82 107 52 73 107 51
++73 107 51 82 107 52 73 107 51 82 107 52 82 119 53 73 107 51 73 107 51 82 119 53
++82 107 52 82 119 53 82 107 52 82 119 53 82 107 52 82 119 53 73 107 51 82 119 53
++82 107 52 82 119 53 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 82 119 53 73 107 51 82 119 53
++73 107 51 73 107 51 82 107 52 82 119 53 82 107 52 82 119 53 82 119 53 82 119 53
++82 107 52 82 119 53 82 119 53 73 107 51 73 107 51 73 107 51 73 107 51 82 119 53
++73 107 51 82 119 53 73 107 51 82 119 53 82 119 53 82 107 52 82 119 53 73 107 51
++73 107 51 70 96 45 73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51
++82 107 52 82 119 53 70 96 45 73 107 51 73 107 51 73 107 51 73 107 51 80 96 46
++73 107 51 73 107 51 73 107 51 70 96 45 73 107 51 73 107 51 82 119 53 70 96 45
++73 107 51 70 96 45 70 96 45 73 107 51 70 96 45 82 119 53 70 96 45 82 119 53
++73 107 51 82 119 53 73 107 51 82 107 52 73 107 51 82 107 52 73 107 51 82 119 53
++73 107 51 73 107 51 70 96 45 73 107 51 73 107 51 73 107 51 73 107 51 70 96 45
++70 96 45 73 107 51 70 96 45 73 107 51 70 96 45 73 107 51 70 96 45 70 96 45
++73 107 51 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 73 107 51 70 96 45
++73 107 51 73 107 51 70 96 45 73 107 51 64 97 47 70 96 45 70 96 55 73 107 51
++73 107 51 70 96 55 70 96 55 87 99 72 146 151 137 185 202 202 208 221 247 221 238 247
++221 238 247 231 239 247 231 239 247 221 238 247 221 238 247 233 241 227 221 238 247 221 238 247
++231 239 247 221 238 247 231 239 247 231 239 247 240 251 247 231 239 247 233 241 227 221 238 247
++221 238 247 185 202 202 150 147 171 94 105 108 45 57 61 59 69 70 111 119 127 188 180 202
++232 215 228 233 241 227 232 215 228 194 199 226 225 222 201 201 216 228 225 222 201 201 216 228
++225 222 201 201 216 228 225 222 201 201 216 228 201 216 228 208 215 180 201 216 228 201 216 228
++225 222 201 201 216 228 201 216 228 225 222 201 201 216 228 208 215 180 166 156 164 112 123 108
++90 98 89 112 123 108 121 143 132 166 180 164 208 215 180 185 202 202 208 215 180 166 180 164
++166 180 164 166 180 164 166 180 164 150 171 159 146 162 145 146 162 145 146 162 145 146 151 137
++146 151 137 146 150 115 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111 117 142 111
++117 142 111 117 142 111 117 142 111 121 143 132 146 150 115 121 143 132 117 127 86 112 123 108
++99 133 85 117 127 86 98 113 84 88 121 82 87 99 72 66 86 47 57 86 47 57 86 47
++70 96 55 70 96 55 70 96 55 70 96 55 64 97 47 70 96 45 70 96 55 64 97 47
++66 86 47 64 97 47 66 86 47 70 96 55 70 96 45 66 86 47 70 96 45 66 86 47
++70 96 45 49 74 23 57 86 47 49 74 23 57 86 47 64 97 47 66 86 47 64 97 47
++70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 66 86 47 70 96 45 66 86 47
++70 96 45 70 96 45 66 86 47 66 86 47 70 96 45 57 86 47 66 86 47 57 86 47
++66 86 47 70 96 45 66 86 47 57 86 47 64 97 47 66 86 47 70 96 45 66 86 47
++70 96 45 57 86 47 70 96 45 49 74 23 70 96 45 57 86 47 70 96 45 66 86 47
++57 86 47 70 96 45 66 86 47 70 96 45 49 74 23 70 96 45 49 74 23 57 86 47
++49 74 23 70 96 45 57 86 47 57 86 47 64 97 47 49 74 23 66 86 47 57 86 47
++57 86 47 64 97 47 49 74 23 70 96 45 57 86 47 57 86 47 49 74 23 57 86 47
++66 86 47 49 74 23 57 86 47 66 86 47 49 74 23 66 86 47 57 86 47 57 86 47
++57 86 47 66 86 47 57 86 47 49 74 23 57 86 47 49 74 23 66 86 47 57 86 47
++57 86 47 70 96 45 57 86 47 66 86 47 49 74 23 66 86 47 49 74 23 66 86 47
++66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 66 86 47 66 86 47 70 96 45
++66 86 47 66 86 47 66 86 47 49 74 23 66 86 47 49 74 23 57 86 47 57 86 47
++57 86 47 66 86 47 49 74 23 66 86 47 57 86 47 57 86 47 66 86 47 57 86 47
++57 86 47 49 74 23 57 86 47 57 86 47 75 73 36 57 86 47 66 86 47 66 86 47
++57 86 47 57 86 47 49 74 23 66 86 47 49 74 23 57 86 47 49 74 23 57 86 47
++49 74 23 51 73 47 49 74 23 49 74 23 57 86 47 49 74 23 57 86 47 57 86 47
++57 86 47 51 73 47 49 74 23 49 74 23 49 74 23 43 55 48 49 74 23 51 73 47
++49 74 23 49 74 23 51 73 47 49 74 23 49 74 23 51 73 47 49 74 23 51 73 47
++49 74 23 51 73 47 49 74 23 49 74 23 43 55 48 49 74 23 49 74 23 50 61 48
++49 74 23 49 74 23 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47
++49 74 23 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 50 61 48 49 74 23
++35 46 43 49 74 23 49 74 23 50 61 48 49 74 23 49 74 23 43 55 48 49 74 23
++49 74 23 49 74 23 35 46 43 49 74 23 49 74 23 32 39 24 49 74 23 35 46 43
++49 74 23 35 46 43 49 74 23 35 46 43 49 74 23 43 55 48 49 74 23 50 61 48
++49 74 23 42 47 42 49 74 23 47 47 21 49 74 23 47 49 42 49 74 23 43 55 48
++49 74 23 50 61 48 50 61 48 49 74 23 50 61 48 49 74 23 42 47 42 49 74 23
++47 49 42 49 74 23 42 47 42 49 74 23 32 39 24 49 74 23 32 39 24 49 74 23
++35 46 43 47 47 21 35 46 43 49 74 23 32 39 24 49 74 23 42 47 42 47 47 21
++
++50 61 48 50 61 48 51 73 47 51 73 47 50 61 48 51 73 47 50 61 48 51 73 47
++50 61 48 49 74 23 50 61 48 49 74 23 50 61 48 49 74 23 43 55 48 49 74 23
++43 55 48 51 73 47 51 73 47 51 73 47 49 74 23 51 73 47 47 49 42 49 74 23
++43 55 48 49 74 23 51 73 47 51 73 47 51 73 47 51 73 47 50 61 48 49 74 23
++50 61 48 51 73 47 64 70 48 49 74 23 51 73 47 49 74 23 64 70 48 57 86 47
++66 86 47 64 70 48 57 86 47 51 73 47 57 86 47 51 73 47 57 86 47 49 74 23
++51 73 47 49 74 23 49 74 23 51 73 47 51 73 47 51 73 47 57 86 47 49 74 23
++51 73 47 57 86 47 49 74 23 64 70 48 49 74 23 64 70 48 49 74 23 49 74 23
++49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 51 73 47 57 86 47
++57 86 47 51 73 47 49 74 23 49 74 23 49 74 23 64 70 48 51 73 47 49 74 23
++66 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 66 86 47 70 96 55
++70 96 55 66 86 47 57 86 47 66 86 47 57 86 47 66 86 47 66 86 47 64 97 47
++66 86 47 57 86 47 66 86 47 66 86 47 57 86 47 66 86 47 57 86 47 49 74 23
++57 86 47 49 74 23 51 73 47 49 74 23 57 86 47 49 74 23 51 73 47 49 74 23
++49 74 23 49 74 23 57 86 47 49 74 23 57 86 47 49 74 23 66 86 47 49 74 23
++57 86 47 49 74 23 57 86 47 49 74 23 57 86 47 49 74 23 49 74 23 49 74 23
++49 74 23 57 86 47 49 74 23 66 86 47 49 74 23 66 86 47 49 74 23 64 97 47
++57 86 47 57 86 47 49 74 23 57 86 47 49 74 23 49 74 23 57 86 47 57 86 47
++49 74 23 49 74 23 57 86 47 57 86 47 49 74 23 70 96 45 66 86 47 64 97 47
++64 97 47 70 96 45 57 86 47 57 86 47 49 74 23 70 96 45 57 86 47 70 96 45
++70 96 45 57 86 47 70 96 45 49 74 23 57 86 47 57 86 47 49 74 23 70 96 45
++57 86 47 66 86 47 49 74 23 70 96 45 57 86 47 49 74 23 75 73 58 98 113 84
++146 150 115 146 151 137 146 151 137 146 151 137 146 151 137 146 150 115 138 126 108 94 105 108
++117 99 86 90 98 89 98 113 84 112 96 108 98 113 84 87 99 72 75 81 69 63 55 45
++51 49 42 34 30 15 23 31 15 15 17 7 29 35 19 49 74 23 66 86 47 81 96 56
++73 107 51 73 107 51 70 96 45 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++70 96 45 73 107 51 70 96 45 70 96 45 70 96 45 64 97 47 64 97 47 70 96 45
++64 97 47 70 96 45 64 97 47 70 96 45 70 96 45 73 107 51 70 96 45 70 96 45
++73 107 51 70 96 45 70 96 45 70 96 45 70 96 45 49 74 23 73 107 51 70 96 45
++70 96 45 82 119 53 73 107 51 82 107 52 82 107 52 73 107 51 82 107 52 73 107 51
++73 107 51 70 96 45 73 107 51 70 96 45 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++70 96 45 73 107 51 64 97 47 70 96 45 73 107 51 73 107 51 70 96 45 73 107 51
++73 107 51 82 107 52 73 107 51 82 107 52 73 107 51 82 119 53 82 107 52 82 119 53
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++70 96 45 70 96 45 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 82 119 53
++73 107 51 73 107 51 73 107 51 82 119 53 70 96 45 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 82 107 52 85 113 63 82 107 52 85 113 63 82 107 52 82 107 52
++82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++82 107 52 73 107 51 82 107 52 73 107 51 82 107 52 82 107 52 82 119 53 82 107 52
++82 107 52 82 119 53 82 107 52 73 107 51 82 107 52 82 107 52 82 107 52 82 119 53
++82 119 53 82 119 53 82 119 53 82 107 52 82 119 53 82 107 52 82 107 52 73 107 51
++82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 70 96 45 73 107 51 70 96 45
++73 107 51 73 107 51 73 107 51 82 119 53 73 107 51 73 107 51 82 119 53 73 107 51
++73 107 51 82 119 53 73 107 51 82 107 52 82 119 53 82 107 52 82 107 52 82 107 52
++82 119 53 82 107 52 73 107 51 82 119 53 73 107 51 82 119 53 73 107 51 73 107 51
++82 119 53 82 107 52 82 119 53 73 107 51 82 107 52 82 107 52 82 119 53 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 82 119 53 82 119 53 82 119 53
++82 119 53 82 119 53 73 107 51 82 119 53 73 107 51 82 119 53 73 107 51 82 119 53
++82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 73 107 51 82 119 53 73 107 51
++73 107 51 80 96 46 73 107 51 70 96 45 82 119 53 70 96 45 82 119 53 82 119 53
++82 107 52 82 107 52 73 107 51 73 107 51 73 107 51 80 96 46 73 107 51 73 107 51
++73 107 51 82 119 53 73 107 51 73 107 51 73 107 51 82 119 53 73 107 51 82 119 53
++82 119 53 70 96 45 82 119 53 70 96 45 73 107 51 70 96 45 70 96 45 73 107 51
++70 96 45 73 107 51 70 96 45 70 96 45 73 107 51 70 96 45 82 119 53 70 96 45
++73 107 51 73 107 51 70 96 45 70 96 45 73 107 51 70 96 45 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 73 107 51 70 96 45 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 70 96 55 75 99 72 117 142 111 166 180 164 233 241 227 226 221 247
++221 238 247 221 238 247 231 239 247 231 239 247 221 238 247 226 221 247 221 238 247 231 239 247
++231 239 247 231 239 247 231 239 247 231 239 247 221 238 247 201 216 228 201 216 228 185 202 202
++148 160 159 94 105 108 59 69 70 63 59 71 94 105 108 166 174 181 201 216 228 233 241 227
++201 216 228 232 215 228 201 216 228 225 222 201 201 216 228 225 222 201 201 216 228 225 222 201
++201 216 228 225 222 201 201 216 228 225 222 201 225 222 201 201 216 228 225 222 201 201 216 228
++225 222 201 201 216 228 225 222 201 201 216 228 233 241 227 201 216 228 166 174 181 90 98 89
++26 30 28 6 15 6 33 39 38 75 81 69 112 123 108 166 180 164 201 216 228 225 222 201
++233 241 227 225 222 201 225 222 201 201 216 228 225 222 201 225 222 201 201 216 228 225 222 201
++201 216 228 208 215 180 185 202 202 185 202 202 208 215 180 201 216 228 208 215 180 185 202 202
++208 215 180 185 202 202 208 215 180 201 216 228 225 222 201 185 202 202 185 202 202 166 180 164
++185 202 202 185 202 202 185 202 202 166 180 164 166 180 164 121 143 132 98 113 84 70 96 55
++59 79 61 70 96 55 70 96 55 64 97 47 66 86 47 64 97 47 64 97 47 70 96 45
++66 86 47 64 97 47 66 86 47 64 97 47 66 86 47 64 97 47 70 96 45 64 97 47
++66 86 47 57 86 47 49 74 23 70 96 45 57 86 47 49 74 23 70 96 45 64 97 47
++57 86 47 64 97 47 66 86 47 66 86 47 66 86 47 66 86 47 57 86 47 70 96 45
++57 86 47 70 96 45 57 86 47 57 86 47 57 86 47 49 74 23 70 96 45 57 86 47
++66 86 47 64 97 47 70 96 45 66 86 47 57 86 47 70 96 45 57 86 47 57 86 47
++70 96 45 49 74 23 70 96 45 66 86 47 64 97 47 66 86 47 57 86 47 70 96 45
++49 74 23 70 96 45 57 86 47 66 86 47 57 86 47 66 86 47 49 74 23 70 96 45
++57 86 47 57 86 47 66 86 47 49 74 23 64 97 47 57 86 47 70 96 45 57 86 47
++66 86 47 70 96 45 70 96 45 57 86 47 66 86 47 57 86 47 66 86 47 57 86 47
++49 74 23 57 86 47 49 74 23 66 86 47 66 86 47 57 86 47 49 74 23 66 86 47
++66 86 47 66 86 47 66 86 47 57 86 47 49 74 23 66 86 47 57 86 47 70 96 45
++66 86 47 57 86 47 49 74 23 70 96 45 49 74 23 70 96 45 66 86 47 66 86 47
++57 86 47 66 86 47 57 86 47 70 96 45 66 86 47 70 96 45 70 96 45 66 86 47
++66 86 47 66 86 47 66 86 47 66 86 47 57 86 47 66 86 47 57 86 47 49 74 23
++70 96 45 57 86 47 66 86 47 57 86 47 49 74 23 70 96 45 49 74 23 66 86 47
++49 74 23 66 86 47 57 86 47 49 74 23 57 86 47 57 86 47 49 74 23 66 86 47
++49 74 23 57 86 47 57 86 47 49 74 23 57 86 47 49 74 23 49 74 23 49 74 23
++51 73 47 49 74 23 49 74 23 51 73 47 49 74 23 57 86 47 49 74 23 51 73 47
++49 74 23 49 74 23 51 73 47 49 74 23 49 74 23 49 74 23 43 55 48 49 74 23
++51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23
++51 73 47 49 74 23 51 73 47 49 74 23 49 74 23 35 46 43 49 74 23 49 74 23
++49 74 23 43 55 48 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 47 47 21
++49 74 23 47 49 42 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 49 74 23
++49 74 23 47 47 21 49 74 23 35 46 43 49 74 23 43 55 48 49 74 23 51 73 47
++49 74 23 43 55 48 49 74 23 43 55 48 49 74 23 35 46 43 49 74 23 35 46 43
++49 74 23 47 47 21 49 74 23 42 47 42 49 74 23 42 47 42 49 74 23 47 49 42
++49 74 23 42 47 42 32 39 24 47 47 21 35 46 43 47 47 21 49 74 23 47 49 42
++49 74 23 43 55 48 49 74 23 47 49 42 49 74 23 42 47 42 49 74 23 35 46 43
++49 74 23 42 47 42 47 47 21 35 46 43 47 47 21 32 39 24 35 46 43 47 47 21
++32 39 24 49 74 23 35 46 43 49 74 23 35 46 43 47 47 21 35 46 43 49 74 23
++
++49 74 23 50 61 48 49 74 23 50 61 48 49 74 23 51 73 47 51 73 47 49 74 23
++50 61 48 49 74 23 50 61 48 50 61 48 43 55 48 49 74 23 50 61 48 43 55 48
++49 74 23 50 61 48 49 74 23 51 73 47 51 73 47 51 73 47 51 73 47 50 61 48
++49 74 23 50 61 48 51 73 47 64 70 48 51 73 47 51 73 47 51 73 47 50 61 48
++51 73 47 51 73 47 51 73 47 64 70 48 51 73 47 64 70 48 57 86 47 51 73 47
++66 86 47 57 86 47 64 70 48 49 74 23 51 73 47 49 74 23 64 70 48 57 86 47
++64 70 48 51 73 47 51 73 47 49 74 23 57 86 47 49 74 23 51 73 47 51 73 47
++49 74 23 51 73 47 57 86 47 51 73 47 51 73 47 49 74 23 51 73 47 49 74 23
++51 73 47 49 74 23 51 73 47 49 74 23 49 74 23 49 74 23 49 74 23 49 74 23
++51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 57 86 47 57 86 47
++57 86 47 66 86 47 49 74 23 51 73 47 49 74 23 51 73 47 57 86 47 57 86 47
++66 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47
++57 86 47 57 86 47 66 86 47 57 86 47 66 86 47 49 74 23 57 86 47 57 86 47
++49 74 23 57 86 47 49 74 23 66 86 47 49 74 23 57 86 47 49 74 23 51 73 47
++49 74 23 51 73 47 49 74 23 49 74 23 57 86 47 49 74 23 57 86 47 57 86 47
++57 86 47 57 86 47 49 74 23 51 73 47 49 74 23 49 74 23 57 86 47 49 74 23
++57 86 47 49 74 23 57 86 47 49 74 23 70 96 45 57 86 47 64 97 47 66 86 47
++57 86 47 57 86 47 49 74 23 49 74 23 57 86 47 49 74 23 57 86 47 49 74 23
++57 86 47 57 86 47 57 86 47 49 74 23 66 86 47 64 97 47 57 86 47 70 96 45
++66 86 47 57 86 47 70 96 45 57 86 47 70 96 45 57 86 47 70 96 45 49 74 23
++70 96 45 49 74 23 57 86 47 64 97 47 49 74 23 70 96 45 49 74 23 57 86 47
++70 96 45 49 74 23 66 86 47 57 86 47 66 86 47 51 73 47 49 74 23 64 70 48
++87 99 72 112 123 108 146 150 115 138 126 108 146 150 115 111 119 127 98 113 84 99 93 84
++87 99 72 99 93 84 94 105 108 98 113 84 99 93 84 75 81 69 65 63 61 64 70 48
++55 55 48 47 47 21 29 35 19 29 35 19 49 74 23 66 86 47 70 96 55 70 96 45
++80 96 46 73 107 51 70 96 55 70 96 45 70 96 55 80 96 46 73 107 51 70 96 45
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 64 97 47 70 96 45
++64 97 47 70 96 45 70 96 45 73 107 51 73 107 51 73 107 51 73 107 51 82 119 53
++73 107 51 73 107 51 73 107 51 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 70 96 45 73 107 51 82 107 52 73 107 51 82 107 52 73 107 51 82 107 52
++73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 82 107 52 82 107 52
++82 107 52 82 107 52 73 107 51 82 107 52 82 107 52 82 107 52 85 113 63 82 119 53
++73 107 51 73 107 51 73 107 51 73 107 51 70 96 45 73 107 51 73 107 51 80 96 46
++73 107 51 82 107 52 73 107 51 82 107 52 82 107 52 82 107 52 82 119 53 82 107 52
++82 119 53 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++64 97 47 73 107 51 70 96 45 70 96 45 70 96 45 70 96 45 73 107 51 70 96 45
++73 107 51 73 107 51 70 96 45 70 96 45 70 96 45 70 96 45 70 96 45 73 107 51
++73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 82 107 52 82 107 52 73 107 51 82 107 52 73 107 51 80 96 46 73 107 51
++73 107 51 82 107 52 73 107 51 82 107 52 73 107 51 82 107 52 73 107 51 85 113 63
++82 107 52 85 113 63 82 107 52 85 113 63 73 107 51 82 107 52 82 119 53 82 107 52
++82 107 52 85 113 63 82 107 52 82 119 53 82 107 52 73 107 51 82 107 52 82 107 52
++73 107 51 82 107 52 73 107 51 82 107 52 73 107 51 82 119 53 73 107 51 73 107 51
++73 107 51 82 119 53 82 107 52 73 107 51 82 119 53 82 107 52 82 119 53 73 107 51
++82 119 53 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 82 119 53 82 107 52
++82 119 53 82 107 52 82 119 53 73 107 51 82 119 53 73 107 51 82 119 53 73 107 51
++82 107 52 82 119 53 73 107 51 82 107 52 73 107 51 73 107 51 82 107 52 73 107 51
++82 119 53 73 107 51 82 119 53 82 107 52 82 119 53 82 119 53 82 119 53 87 122 63
++82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53
++82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53
++82 119 53 82 119 53 82 119 53 82 119 53 80 96 46 82 119 53 82 119 53 82 107 52
++82 119 53 82 107 52 82 119 53 73 107 51 70 96 45 73 107 51 70 96 45 70 96 45
++73 107 51 73 107 51 73 107 51 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53
++82 119 53 82 119 53 73 107 51 82 119 53 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 70 96 45 82 119 53 73 107 51 70 96 45 82 119 53
++70 96 45 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 70 96 55 73 107 51
++82 107 52 85 113 63 73 107 51 73 107 51 73 107 51 70 96 45 70 96 45 82 107 52
++73 107 51 70 96 55 70 96 45 70 96 55 112 123 108 166 180 164 201 216 228 221 238 247
++226 221 247 221 238 247 231 239 247 226 221 247 231 239 247 221 238 247 231 239 247 231 239 247
++231 239 247 231 239 247 221 238 247 201 216 228 185 202 202 166 174 181 129 144 153 95 91 100
++59 69 70 75 64 82 111 119 127 148 160 159 185 202 202 232 215 228 233 241 227 232 215 228
++225 222 201 201 216 228 225 222 201 201 216 228 233 241 227 201 216 228 232 215 228 233 241 227
++233 241 227 232 215 228 233 241 227 201 216 228 233 241 227 201 216 228 225 222 201 201 216 228
++225 222 201 201 216 228 208 215 180 185 202 202 188 180 202 166 180 164 112 123 108 59 57 61
++15 22 17 13 4 7 15 17 7 14 16 17 25 30 29 88 69 84 146 162 145 201 216 228
++233 241 227 221 238 247 233 241 227 201 216 228 233 241 227 201 216 228 233 241 227 233 241 227
++201 216 228 225 222 201 201 216 228 225 222 201 201 216 228 225 222 201 233 241 227 201 216 228
++225 222 201 201 216 228 225 222 201 201 216 228 233 241 227 233 241 227 225 222 201 225 222 201
++233 241 227 225 222 201 233 241 227 233 241 227 233 241 227 208 215 180 166 180 164 112 123 108
++70 96 55 57 86 47 57 86 47 66 86 47 64 97 47 57 86 47 66 86 47 64 97 47
++66 86 47 64 97 47 66 86 47 64 97 47 70 96 45 70 96 55 70 96 55 70 96 45
++70 96 45 57 86 47 64 97 47 49 74 23 70 96 45 70 96 45 57 86 47 64 97 47
++70 96 45 57 86 47 70 96 45 57 86 47 70 96 45 49 74 23 66 86 47 49 74 23
++57 86 47 64 97 47 70 96 45 49 74 23 70 96 45 57 86 47 64 97 47 49 74 23
++66 86 47 66 86 47 57 86 47 70 96 45 57 86 47 49 74 23 70 96 45 49 74 23
++57 86 47 70 96 45 70 96 45 66 86 47 57 86 47 57 86 47 70 96 45 49 74 23
++64 97 47 66 86 47 57 86 47 66 86 47 57 86 47 57 86 47 70 96 45 49 74 23
++57 86 47 57 86 47 70 96 45 57 86 47 66 86 47 57 86 47 57 86 47 66 86 47
++57 86 47 70 96 45 66 86 47 70 96 45 66 86 47 70 96 45 49 74 23 57 86 47
++57 86 47 57 86 47 66 86 47 49 74 23 66 86 47 49 74 23 57 86 47 57 86 47
++49 74 23 66 86 47 57 86 47 66 86 47 49 74 23 57 86 47 66 86 47 66 86 47
++70 96 45 66 86 47 66 86 47 57 86 47 66 86 47 66 86 47 66 86 47 70 96 45
++49 74 23 66 86 47 66 86 47 66 86 47 70 96 45 66 86 47 70 96 45 66 86 47
++70 96 45 66 86 47 66 86 47 66 86 47 70 96 45 66 86 47 70 96 45 66 86 47
++57 86 47 57 86 47 57 86 47 49 74 23 64 97 47 49 74 23 70 96 45 49 74 23
++57 86 47 57 86 47 66 86 47 49 74 23 57 86 47 49 74 23 66 86 47 49 74 23
++57 86 47 49 74 23 49 74 23 51 73 47 49 74 23 49 74 23 50 61 48 49 74 23
++49 74 23 49 74 23 49 74 23 49 74 23 51 73 47 49 74 23 49 74 23 51 73 47
++49 74 23 51 73 47 49 74 23 51 73 47 43 55 48 49 74 23 51 73 47 49 74 23
++51 73 47 49 74 23 51 73 47 49 74 23 50 61 48 49 74 23 50 61 48 49 74 23
++49 74 23 51 73 47 49 74 23 43 55 48 49 74 23 49 74 23 49 74 23 35 46 43
++49 74 23 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23
++32 39 24 49 74 23 49 74 23 51 73 47 49 74 23 42 47 42 49 74 23 35 46 43
++49 74 23 35 46 43 49 74 23 49 74 23 32 39 24 49 74 23 49 74 23 43 55 48
++49 74 23 51 73 47 49 74 23 49 74 23 43 55 48 49 74 23 47 47 21 49 74 23
++35 46 43 49 74 23 35 46 43 49 74 23 42 47 42 49 74 23 43 55 48 49 74 23
++42 47 42 49 74 23 35 46 43 49 74 23 32 39 24 49 74 23 32 39 24 49 74 23
++42 47 42 49 74 23 47 49 42 49 74 23 42 47 42 49 74 23 32 39 24 47 47 21
++47 47 21 35 46 43 49 74 23 32 39 24 49 74 23 32 39 24 49 74 23 35 46 43
++49 74 23 32 39 24 47 47 21 42 47 42 32 39 24 49 74 23 47 47 21 32 39 24
++
++42 47 42 49 74 23 50 61 48 50 61 48 51 73 47 50 61 48 49 74 23 50 61 48
++50 61 48 50 61 48 49 74 23 50 61 48 49 74 23 50 61 48 49 74 23 50 61 48
++49 74 23 50 61 48 50 61 48 49 74 23 50 61 48 49 74 23 51 73 47 49 74 23
++50 61 48 51 73 47 51 73 47 49 74 23 51 73 47 51 73 47 49 74 23 51 73 47
++51 73 47 51 73 47 57 86 47 51 73 47 51 73 47 49 74 23 51 73 47 49 74 23
++64 70 48 51 73 47 51 73 47 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47
++57 86 47 49 74 23 64 70 48 51 73 47 49 74 23 64 70 48 49 74 23 51 73 47
++49 74 23 49 74 23 49 74 23 49 74 23 51 73 47 49 74 23 50 61 48 49 74 23
++51 73 47 49 74 23 50 61 48 49 74 23 47 49 42 49 74 23 50 61 48 49 74 23
++49 74 23 49 74 23 47 49 42 49 74 23 51 73 47 66 86 47 49 74 23 51 73 47
++49 74 23 66 86 47 57 86 47 51 73 47 49 74 23 57 86 47 57 86 47 57 86 47
++57 86 47 51 73 47 49 74 23 51 73 47 49 74 23 57 86 47 49 74 23 57 86 47
++49 74 23 66 86 47 57 86 47 49 74 23 57 86 47 57 86 47 49 74 23 57 86 47
++57 86 47 57 86 47 57 86 47 57 86 47 66 86 47 49 74 23 57 86 47 57 86 47
++51 73 47 49 74 23 57 86 47 51 73 47 57 86 47 57 86 47 49 74 23 57 86 47
++49 74 23 57 86 47 49 74 23 51 73 47 49 74 23 57 86 47 57 86 47 57 86 47
++57 86 47 66 86 47 57 86 47 57 86 47 57 86 47 49 74 23 70 96 45 66 86 47
++57 86 47 49 74 23 57 86 47 49 74 23 57 86 47 57 86 47 49 74 23 57 86 47
++49 74 23 57 86 47 66 86 47 64 97 47 57 86 47 57 86 47 49 74 23 57 86 47
++49 74 23 70 96 45 49 74 23 64 97 47 49 74 23 57 86 47 49 74 23 64 97 47
++57 86 47 70 96 45 49 74 23 57 86 47 49 74 23 57 86 47 66 86 47 70 96 45
++70 96 45 70 96 45 64 97 47 70 96 45 66 86 47 66 86 47 51 49 42 47 47 21
++51 49 42 75 73 58 99 93 84 95 119 107 117 99 86 90 98 89 88 83 74 75 77 62
++75 77 62 88 83 74 87 99 72 88 83 74 75 77 62 63 55 45 52 55 48 51 49 42
++51 49 42 50 61 48 50 61 48 49 74 23 66 86 47 81 96 56 80 96 46 70 96 45
++70 96 45 70 96 45 70 96 45 73 107 51 70 96 45 73 107 51 70 96 45 73 107 51
++70 96 45 70 96 45 70 96 45 70 96 55 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 64 97 47 70 96 45 70 96 45 73 107 51 82 107 52 82 107 52 82 107 52
++73 107 51 82 119 53 70 96 45 73 107 51 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 73 107 51 70 96 45 73 107 51 73 107 51 73 107 51 70 96 55 73 107 51
++80 96 46 73 107 51 70 96 45 73 107 51 81 96 56 82 107 52 73 107 51 82 107 52
++70 96 55 73 107 51 82 107 52 73 107 51 85 113 63 73 107 51 85 113 63 85 113 63
++82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51
++82 119 53 80 96 46 73 107 51 73 107 51 73 107 51 82 107 52 82 107 52 85 113 63
++85 113 63 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 70 96 45 73 107 51
++70 96 45 73 107 51 64 97 47 70 96 45 64 97 47 64 97 47 64 97 47 73 107 51
++73 107 51 73 107 51 73 107 51 70 96 45 70 96 45 70 96 45 70 96 45 73 107 51
++70 96 45 73 107 51 70 96 45 70 96 45 70 96 45 70 96 45 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 82 107 52
++73 107 51 82 107 52 82 119 53 73 107 51 82 107 52 73 107 51 73 107 51 73 107 51
++73 107 51 82 107 52 73 107 51 85 113 63 85 113 63 82 107 52 85 113 63 82 107 52
++82 119 53 82 107 52 82 119 53 73 107 51 73 107 51 82 107 52 73 107 51 82 107 52
++73 107 51 82 107 52 73 107 51 82 119 53 73 107 51 82 107 52 73 107 51 82 119 53
++82 107 52 82 119 53 73 107 51 82 119 53 82 107 52 73 107 51 73 107 51 82 107 52
++73 107 51 82 107 52 73 107 51 82 107 52 73 107 51 82 107 52 73 107 51 82 107 52
++73 107 51 82 119 53 82 119 53 82 119 53 82 107 52 73 107 51 82 107 52 73 107 51
++82 119 53 82 119 53 82 107 52 73 107 51 73 107 51 82 107 52 82 119 53 82 107 52
++82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 87 122 63 87 122 63 87 122 63
++87 122 63 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53
++82 119 53 87 122 63 87 122 63 82 119 53 82 119 53 82 119 53 82 107 52 73 107 51
++82 107 52 80 96 46 82 119 53 70 96 45 82 119 53 70 96 45 82 119 53 80 96 46
++73 107 51 73 107 51 70 96 45 73 107 51 70 96 45 70 96 45 73 107 51 73 107 51
++73 107 51 82 119 53 73 107 51 73 107 51 73 107 51 82 119 53 82 119 53 82 107 52
++82 119 53 82 119 53 82 119 53 82 119 53 73 107 51 82 119 53 73 107 51 82 119 53
++82 119 53 73 107 51 82 119 53 70 96 45 82 119 53 70 96 45 82 119 53 70 96 45
++82 119 53 73 107 51 82 119 53 82 107 52 82 107 52 73 107 51 82 107 52 73 107 51
++82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 70 96 45
++73 107 51 73 107 51 70 96 55 66 86 47 98 113 84 146 162 145 185 202 202 221 238 247
++221 238 247 221 238 247 231 239 247 231 239 247 221 238 247 231 239 247 226 221 247 201 216 228
++201 216 228 185 202 202 166 174 181 148 160 159 126 147 144 111 119 127 94 105 108 94 105 108
++95 95 116 145 140 145 185 202 202 232 215 228 231 239 247 233 241 227 201 216 228 201 216 228
++225 222 201 201 216 228 225 222 201 185 202 202 185 202 202 208 215 180 185 202 202 185 202 202
++166 174 181 166 174 181 166 180 164 166 180 164 166 156 164 150 171 159 146 151 137 126 147 144
++121 143 132 111 119 127 112 123 108 112 123 108 90 98 89 88 83 88 54 57 61 36 35 37
++22 25 24 26 30 28 22 25 24 7 12 13 13 4 7 31 35 35 112 123 108 188 180 202
++225 222 201 201 216 228 225 222 201 201 216 228 225 222 201 201 216 228 225 222 201 201 216 228
++225 222 201 201 216 228 225 222 201 201 216 228 225 222 201 201 216 228 225 222 201 201 216 228
++225 222 201 185 202 202 225 222 201 201 216 228 225 222 201 185 202 202 201 216 228 201 216 228
++201 216 228 225 222 201 201 216 228 233 241 227 221 238 247 240 251 247 233 241 227 166 180 164
++117 142 111 75 99 72 57 86 47 57 86 47 57 86 47 57 86 47 64 97 47 70 96 45
++64 97 47 70 96 45 64 97 47 66 86 47 64 97 47 70 96 55 70 96 55 73 107 51
++70 96 45 64 97 47 70 96 45 57 86 47 70 96 45 57 86 47 70 96 45 70 96 45
++57 86 47 49 74 23 70 96 45 49 74 23 49 74 23 57 86 47 49 74 23 70 96 45
++70 96 45 49 74 23 64 97 47 57 86 47 57 86 47 49 74 23 70 96 45 57 86 47
++70 96 45 57 86 47 66 86 47 49 74 23 57 86 47 49 74 23 57 86 47 49 74 23
++70 96 45 49 74 23 66 86 47 57 86 47 49 74 23 57 86 47 49 74 23 70 96 45
++57 86 47 49 74 23 66 86 47 49 74 23 66 86 47 49 74 23 66 86 47 57 86 47
++49 74 23 66 86 47 49 74 23 57 86 47 49 74 23 57 86 47 49 74 23 66 86 47
++49 74 23 66 86 47 57 86 47 57 86 47 49 74 23 57 86 47 57 86 47 49 74 23
++57 86 47 49 74 23 57 86 47 57 86 47 49 74 23 57 86 47 49 74 23 49 74 23
++66 86 47 57 86 47 66 86 47 57 86 47 66 86 47 66 86 47 64 97 47 70 96 45
++66 86 47 57 86 47 66 86 47 49 74 23 70 96 45 66 86 47 66 86 47 57 86 47
++66 86 47 49 74 23 66 86 47 66 86 47 66 86 47 57 86 47 57 86 47 49 74 23
++66 86 47 49 74 23 66 86 47 66 86 47 66 86 47 64 97 47 57 86 47 66 86 47
++57 86 47 49 74 23 66 86 47 49 74 23 57 86 47 49 74 23 57 86 47 57 86 47
++49 74 23 49 74 23 57 86 47 49 74 23 66 86 47 49 74 23 51 73 47 49 74 23
++57 86 47 49 74 23 66 86 47 49 74 23 49 74 23 51 73 47 49 74 23 49 74 23
++49 74 23 50 61 48 49 74 23 49 74 23 49 74 23 50 61 48 49 74 23 49 74 23
++49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47
++51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 47 47 21 49 74 23
++50 61 48 49 74 23 49 74 23 43 55 48 49 74 23 35 46 43 49 74 23 49 74 23
++49 74 23 50 61 48 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 43 55 48
++49 74 23 50 61 48 49 74 23 49 74 23 51 73 47 49 74 23 49 74 23 49 74 23
++49 74 23 49 74 23 32 39 24 49 74 23 49 74 23 35 46 43 49 74 23 49 74 23
++35 46 43 49 74 23 43 55 48 49 74 23 43 55 48 49 74 23 35 46 43 49 74 23
++32 39 24 49 74 23 35 46 43 49 74 23 47 47 21 42 47 42 49 74 23 42 47 42
++49 74 23 42 47 42 49 74 23 32 39 24 49 74 23 35 46 43 49 74 23 42 47 42
++47 47 21 49 74 23 35 46 43 47 47 21 47 47 21 35 46 43 49 74 23 35 46 43
++49 74 23 32 39 24 47 47 21 32 39 24 35 46 43 49 74 23 32 39 24 32 39 24
++32 39 24 49 74 23 32 39 24 49 74 23 32 39 24 32 39 24 32 39 24 49 74 23
++
++49 74 23 42 47 42 49 74 23 47 49 42 49 74 23 51 73 47 50 61 48 49 74 23
++50 61 48 49 74 23 50 61 48 49 74 23 50 61 48 43 55 48 49 74 23 50 61 48
++43 55 48 49 74 23 51 73 47 50 61 48 49 74 23 50 61 48 51 73 47 50 61 48
++49 74 23 50 61 48 49 74 23 50 61 48 49 74 23 51 73 47 64 70 48 51 73 47
++51 73 47 49 74 23 51 73 47 64 70 48 51 73 47 64 70 48 49 74 23 50 61 48
++51 73 47 49 74 23 50 61 48 49 74 23 47 49 42 49 74 23 51 73 47 51 73 47
++64 70 48 51 73 47 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 47 47 21
++49 74 23 47 49 42 49 74 23 47 49 42 49 74 23 47 47 21 49 74 23 51 73 47
++49 74 23 51 73 47 49 74 23 43 55 48 49 74 23 49 74 23 49 74 23 51 73 47
++50 61 48 49 74 23 49 74 23 51 73 47 49 74 23 64 70 48 51 73 47 49 74 23
++51 73 47 57 86 47 57 86 47 57 86 47 57 86 47 49 74 23 51 73 47 57 86 47
++49 74 23 57 86 47 57 86 47 49 74 23 57 86 47 57 86 47 57 86 47 51 73 47
++57 86 47 49 74 23 57 86 47 66 86 47 49 74 23 49 74 23 57 86 47 49 74 23
++57 86 47 75 73 36 57 86 47 75 73 36 57 86 47 66 86 47 66 86 47 57 86 47
++66 86 47 66 86 47 49 74 23 51 73 47 49 74 23 57 86 47 66 86 47 51 73 47
++57 86 47 51 73 47 51 73 47 49 74 23 51 73 47 49 74 23 57 86 47 66 86 47
++64 97 47 66 86 47 66 86 47 49 74 23 66 86 47 70 96 45 57 86 47 66 86 47
++70 96 45 64 97 47 49 74 23 57 86 47 49 74 23 57 86 47 57 86 47 57 86 47
++57 86 47 49 74 23 57 86 47 66 86 47 66 86 47 57 86 47 70 96 45 49 74 23
++57 86 47 57 86 47 64 97 47 57 86 47 70 96 45 49 74 23 57 86 47 49 74 23
++49 74 23 49 74 23 64 97 47 49 74 23 70 96 45 49 74 23 57 86 47 49 74 23
++57 86 47 64 97 47 70 96 45 70 96 45 70 96 55 70 96 45 57 86 47 49 74 23
++47 47 21 47 47 21 75 73 58 87 99 72 75 81 69 75 81 69 75 73 58 50 61 48
++65 63 61 75 77 62 75 73 58 65 63 61 64 70 48 47 49 42 47 47 21 32 39 24
++32 39 24 47 47 21 64 70 48 75 77 62 66 86 47 70 96 45 66 86 47 70 96 45
++70 96 45 73 107 51 70 96 45 70 96 45 73 107 51 70 96 55 70 96 45 70 96 45
++70 96 45 64 97 47 70 96 45 70 96 45 70 96 45 70 96 45 70 96 55 70 96 45
++70 96 55 70 96 45 64 97 47 70 96 45 70 96 45 70 96 55 85 113 63 73 107 51
++82 107 52 73 107 51 70 96 45 73 107 51 70 96 45 70 96 45 70 96 45 70 96 45
++70 96 45 73 107 51 70 96 45 80 96 46 70 96 45 73 107 51 70 96 45 73 107 51
++70 96 55 70 96 45 70 96 55 73 107 51 70 96 55 85 113 63 73 107 51 85 113 63
++73 107 51 81 96 56 73 107 51 70 96 55 73 107 51 70 96 55 73 107 51 73 107 51
++82 107 52 82 119 53 73 107 51 73 107 51 73 107 51 80 96 46 73 107 51 82 107 52
++82 107 52 73 107 51 80 96 46 73 107 51 70 96 55 73 107 51 73 107 51 73 107 51
++85 113 63 82 107 52 82 107 52 82 107 52 73 107 51 73 107 51 70 96 45 73 107 51
++73 107 51 70 96 45 73 107 51 64 97 47 70 96 45 70 96 45 70 96 45 73 107 51
++82 119 53 73 107 51 73 107 51 73 107 51 64 97 47 70 96 45 70 96 45 70 96 45
++73 107 51 70 96 45 73 107 51 70 96 45 73 107 51 73 107 51 70 96 55 73 107 51
++73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51
++82 119 53 82 107 52 73 107 51 82 107 52 73 107 51 82 107 52 73 107 51 81 96 56
++73 107 51 73 107 51 82 107 52 82 107 52 85 113 63 82 119 53 85 113 63 82 107 52
++85 113 63 73 107 51 82 107 52 73 107 51 82 107 52 73 107 51 73 107 51 82 107 52
++73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 82 107 52 73 107 51
++73 107 51 82 119 53 82 107 52 85 113 63 73 107 51 85 113 63 73 107 51 82 107 52
++82 119 53 82 107 52 73 107 51 73 107 51 70 96 45 73 107 51 73 107 51 73 107 51
++82 107 52 82 107 52 82 107 52 82 119 53 82 107 52 82 119 53 73 107 51 82 107 52
++82 107 52 82 119 53 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 82 119 53
++82 107 52 82 107 52 82 119 53 85 113 63 85 113 63 87 122 63 87 122 63 87 122 63
++82 119 53 82 119 53 82 119 53 82 119 53 82 107 52 82 119 53 82 119 53 82 107 52
++82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 82 119 53 73 107 51 73 107 51
++82 119 53 82 119 53 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51 73 107 51
++73 107 51 73 107 51 73 107 51 70 96 45 70 96 45 73 107 51 70 96 45 70 96 45
++73 107 51 80 96 46 82 119 53 70 96 45 82 119 53 73 107 51 80 96 46 73 107 51
++80 96 46 82 119 53 82 107 52 82 119 53 82 119 53 82 119 53 82 119 53 73 107 51
++82 119 53 82 119 53 70 96 45 82 119 53 70 96 45 82 119 53 70 96 45 73 107 51
++73 107 51 82 107 52 82 119 53 85 113 63 82 107 52 85 113 63 73 107 51 82 107 52
++73 107 51 82 107 52 73 107 51 73 107 51 73 107 51 73 107 51 70 96 45 70 96 45
++70 96 45 70 96 55 70 96 55 70 96 55 88 121 82 146 162 145 185 202 202 221 238 247
++226 221 247 231 239 247 221 238 247 231 239 247 231 239 247 231 239 247 201 216 228 201 216 228
++188 180 202 166 156 164 111 122 142 95 95 116 75 81 90 77 90 100 94 105 108 145 140 145
++166 174 181 201 216 228 233 241 227 221 238 247 225 222 201 201 216 228 225 222 201 201 216 228
++225 222 201 185 202 202 185 202 202 208 215 180 188 180 202 166 180 164 166 156 164 146 162 145
++146 151 137 121 143 132 138 126 108 94 105 108 94 105 108 88 83 88 75 81 82 65 63 61
++59 55 55 59 55 55 48 50 48 42 41 42 33 39 38 25 30 29 25 30 29 25 30 29
++30 30 34 30 30 34 33 30 32 22 25 24 22 25 24 31 35 35 99 93 84 185 202 202
++201 216 228 233 241 227 233 241 227 201 216 228 225 222 201 201 216 228 201 216 228 225 222 201
++201 216 228 185 202 202 225 222 201 201 216 228 201 216 228 225 222 201 201 216 228 185 202 202
++225 222 201 185 202 202 225 222 201 201 216 228 185 202 202 185 202 202 225 222 201 185 202 202
++225 222 201 185 202 202 201 216 228 201 216 228 225 222 201 221 238 247 240 251 247 233 241 227
++150 171 159 98 113 84 66 86 47 57 86 47 57 86 47 64 97 47 64 97 47 64 97 47
++70 96 45 64 97 47 70 96 45 64 97 47 64 97 47 70 96 45 80 96 46 70 96 55
++70 96 45 70 96 45 64 97 47 70 96 45 57 86 47 70 96 45 64 97 47 70 96 45
++70 96 45 57 86 47 49 74 23 70 96 45 49 74 23 70 96 45 49 74 23 57 86 47
++57 86 47 57 86 47 70 96 45 49 74 23 57 86 47 66 86 47 57 86 47 64 97 47
++49 74 23 70 96 45 57 86 47 57 86 47 57 86 47 64 97 47 49 74 23 57 86 47
++49 74 23 64 97 47 49 74 23 57 86 47 57 86 47 57 86 47 66 86 47 49 74 23
++57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47 57 86 47
++57 86 47 49 74 23 57 86 47 49 74 23 57 86 47 49 74 23 57 86 47 49 74 23
++57 86 47 57 86 47 66 86 47 57 86 47 57 86 47 51 73 47 49 74 23 57 86 47
++49 74 23 64 70 48 49 74 23 57 86 47 66 86 47 49 74 23 49 74 23 57 86 47
++49 74 23 75 73 36 57 86 47 66 86 47 66 86 47 66 86 47 70 96 45 70 96 55
++64 97 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 66 86 47 57 86 47
++66 86 47 49 74 23 57 86 47 66 86 47 49 74 23 57 86 47 49 74 23 66 86 47
++49 74 23 57 86 47 49 74 23 57 86 47 66 86 47 66 86 47 70 96 45 57 86 47
++70 96 45 49 74 23 57 86 47 49 74 23 57 86 47 49 74 23 70 96 45 49 74 23
++57 86 47 66 86 47 49 74 23 57 86 47 49 74 23 57 86 47 49 74 23 57 86 47
++49 74 23 57 86 47 49 74 23 51 73 47 49 74 23 49 74 23 49 74 23 49 74 23
++51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23
++43 55 48 49 74 23 49 74 23 49 74 23 51 73 47 49 74 23 51 73 47 49 74 23
++51 73 47 51 73 47 49 74 23 51 73 47 49 74 23 43 55 48 49 74 23 50 61 48
++49 74 23 49 74 23 43 55 48 49 74 23 49 74 23 49 74 23 43 55 48 49 74 23
++43 55 48 49 74 23 50 61 48 49 74 23 51 73 47 49 74 23 50 61 48 49 74 23
++43 55 48 49 74 23 49 74 23 51 73 47 49 74 23 43 55 48 49 74 23 35 46 43
++49 74 23 43 55 48 49 74 23 35 46 43 49 74 23 35 46 43 49 74 23 32 39 24
++49 74 23 35 46 43 49 74 23 35 46 43 49 74 23 35 46 43 49 74 23 35 46 43
++49 74 23 35 46 43 49 74 23 47 47 21 35 46 43 49 74 23 32 39 24 49 74 23
++42 47 42 49 74 23 35 46 43 49 74 23 35 46 43 49 74 23 42 47 42 49 74 23
++43 55 48 32 39 24 49 74 23 35 46 43 49 74 23 32 39 24 49 74 23 35 46 43
++49 74 23 35 46 43 49 74 23 32 39 24 49 74 23 32 39 24 49 74 23 32 39 24
++49 74 23 32 39 24 35 46 43 32 39 24 32 39 24 49 74 23 32 39 24 32 39 24
++
+diff --git a/drivers/video/s3c/Makefile b/drivers/video/s3c/Makefile
+new file mode 100644
+index 0000000..3f52d72
+--- /dev/null
++++ b/drivers/video/s3c/Makefile
+@@ -0,0 +1,12 @@
++#
++# Makefile for the s3c framebuffer driver
++#
++
++obj-$(CONFIG_FB_S3C) += s3cfb.o s3cfb_spi.o
++obj-$(CONFIG_PLAT_S3C24XX) += s3cfb_fimd3x.o
++obj-$(CONFIG_PLAT_S3C64XX) += s3cfb_fimd4x.o
++obj-$(CONFIG_PLAT_S5PC1XX) += s5pfb_fimd5x.o
++obj-$(CONFIG_FB_S3C_LTS222QV) += s3cfb_lts222qv.o
++obj-$(CONFIG_FB_S3C_LTV350QV) += s3cfb_ltv350qv.o
++obj-$(CONFIG_FB_S3C_LTE480WV) += s3cfb_lte480wv.o
++
+diff --git a/drivers/video/s3c/s3cfb.c b/drivers/video/s3c/s3cfb.c
+new file mode 100644
+index 0000000..d9b8196
+--- /dev/null
++++ b/drivers/video/s3c/s3cfb.c
+@@ -0,0 +1,991 @@
++/*
++ * drivers/video/s3c/s3cfb.c
++ *
++ * $Id: s3cfb.c,v 1.34 2008/09/25 06:44:39 jsgood Exp $
++ *
++ * Copyright (C) 2008 Jinsung Yang <jsgood.yang@samsung.com>
++ *
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file COPYING in the main directory of this archive for
++ * more details.
++ *
++ * S3C Frame Buffer Driver
++ * based on skeletonfb.c, sa1100fb.h, s3c2410fb.c
++ */
++
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/errno.h>
++#include <linux/string.h>
++#include <linux/mm.h>
++#include <linux/tty.h>
++#include <linux/slab.h>
++#include <linux/delay.h>
++#include <linux/fb.h>
++#include <linux/init.h>
++#include <linux/dma-mapping.h>
++#include <linux/interrupt.h>
++#include <linux/workqueue.h>
++#include <linux/wait.h>
++#include <linux/platform_device.h>
++#include <linux/clk.h>
++
++#include <asm/io.h>
++#include <asm/uaccess.h>
++#include <asm/div64.h>
++
++#include <asm/arch/regs-lcd.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/idle.h>
++
++#include "s3cfb.h"
++
++/*
++ * Globals
++ */
++s3c_fb_info_t s3c_fb_info[S3C_FB_NUM];
++s3c_vsync_info_t s3c_vsync_info;
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++s3c_vs_info_t s3c_vs_info;
++#endif
++
++static int backlight_level = S3C_FB_DEFAULT_BACKLIGHT_LEVEL;
++static int backlight_power = 1;
++static int lcd_power = 1;
++static int s3c_palette_win;
++
++static void s3cfb_set_lcd_power(int to)
++{
++ lcd_power = to;
++
++ if (s3c_fimd.set_lcd_power)
++ (s3c_fimd.set_lcd_power)(to);
++}
++
++static void s3cfb_set_backlight_power(int to)
++{
++ backlight_power = to;
++
++ if (s3c_fimd.set_backlight_power)
++ (s3c_fimd.set_backlight_power)(to);
++}
++
++static void s3cfb_set_backlight_level(int to)
++{
++ backlight_level = to;
++
++ if (s3c_fimd.set_brightness)
++ (s3c_fimd.set_brightness)(to);
++}
++
++static int __init s3cfb_map_video_memory(s3c_fb_info_t *fbi)
++{
++ DPRINTK("map_video_memory(fbi=%p)\n", fbi);
++
++ fbi->map_size_f1 = PAGE_ALIGN(fbi->fb.fix.smem_len);
++ fbi->map_cpu_f1 = dma_alloc_writecombine(fbi->dev, fbi->map_size_f1, &fbi->map_dma_f1, GFP_KERNEL);
++ fbi->map_size_f1 = fbi->fb.fix.smem_len;
++
++ if (fbi->map_cpu_f1) {
++ /* prevent initial garbage on screen */
++ printk("Window[%d] - FB1: map_video_memory: clear %p:%08x\n",
++ fbi->win_id, fbi->map_cpu_f1, fbi->map_size_f1);
++ memset(fbi->map_cpu_f1, 0xf0, fbi->map_size_f1);
++
++ fbi->screen_dma_f1 = fbi->map_dma_f1;
++ fbi->fb.screen_base = fbi->map_cpu_f1;
++ fbi->fb.fix.smem_start = fbi->screen_dma_f1;
++
++ printk(" FB1: map_video_memory: dma=%08x cpu=%p size=%08x\n",
++ fbi->map_dma_f1, fbi->map_cpu_f1, fbi->fb.fix.smem_len);
++ }
++
++ if (!fbi->map_cpu_f1)
++ return -ENOMEM;
++
++#if defined(CONFIG_FB_S3C_DOUBLE_BUFFERING)
++ if (fbi->win_id < 2 && fbi->map_cpu_f1) {
++ fbi->map_size_f2 = (fbi->fb.fix.smem_len / 2);
++ fbi->map_cpu_f2 = fbi->map_cpu_f1 + fbi->map_size_f2;
++ fbi->map_dma_f2 = fbi->map_dma_f1 + fbi->map_size_f2;
++
++ /* prevent initial garbage on screen */
++ printk("Window[%d] - FB2: map_video_memory: clear %p:%08x\n",
++ fbi->win_id, fbi->map_cpu_f2, fbi->map_size_f2);
++
++ fbi->screen_dma_f2 = fbi->map_dma_f2;
++
++ printk(" FB2: map_video_memory: dma=%08x cpu=%p size=%08x\n",
++ fbi->map_dma_f2, fbi->map_cpu_f2, fbi->map_size_f2);
++ }
++#endif
++
++ if (s3c_fimd.map_video_memory)
++ (s3c_fimd.map_video_memory)(fbi);
++
++ return 0;
++}
++
++void s3cfb_unmap_video_memory(s3c_fb_info_t *fbi)
++{
++ dma_free_writecombine(fbi->dev, fbi->map_size_f1, fbi->map_cpu_f1, fbi->map_dma_f1);
++
++#if defined(CONFIG_FB_S3C_DOUBLE_BUFFERING)
++ dma_free_writecombine(fbi->dev, fbi->map_size_f2, fbi->map_cpu_f2, fbi->map_dma_f2);
++#endif
++
++ if (s3c_fimd.unmap_video_memory)
++ (s3c_fimd.unmap_video_memory)(fbi);
++}
++
++EXPORT_SYMBOL(s3cfb_unmap_video_memory);
++
++/*
++ * s3cfb_check_var():
++ * Get the video params out of 'var'. If a value doesn't fit, round it up,
++ * if it's too big, return -EINVAL.
++ *
++ */
++static int s3cfb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
++{
++ DPRINTK("check_var(var=%p, info=%p)\n", var, info);
++
++ switch (var->bits_per_pixel) {
++ case 8:
++ var->red = s3c_fb_rgb_8.red;
++ var->green = s3c_fb_rgb_8.green;
++ var->blue = s3c_fb_rgb_8.blue;
++ var->transp = s3c_fb_rgb_8.transp;
++ s3c_fimd.bytes_per_pixel = 1;
++ break;
++
++ case 16:
++ var->red = s3c_fb_rgb_16.red;
++ var->green = s3c_fb_rgb_16.green;
++ var->blue = s3c_fb_rgb_16.blue;
++ var->transp = s3c_fb_rgb_16.transp;
++ s3c_fimd.bytes_per_pixel = 2;
++ break;
++
++ case 24:
++ var->red = s3c_fb_rgb_24.red;
++ var->green = s3c_fb_rgb_24.green;
++ var->blue = s3c_fb_rgb_24.blue;
++ var->transp = s3c_fb_rgb_24.transp;
++ s3c_fimd.bytes_per_pixel = 4;
++ break;
++
++ case 32:
++ var->red = s3c_fb_rgb_32.red;
++ var->green = s3c_fb_rgb_32.green;
++ var->blue = s3c_fb_rgb_32.blue;
++ var->transp = s3c_fb_rgb_32.transp;
++ s3c_fimd.bytes_per_pixel = 4;
++ break;
++ }
++
++ return 0;
++}
++
++/*
++ * s3cfb_set_par - Optional function. Alters the hardware state.
++ * @info: frame buffer structure that represents a single frame buffer
++ *
++ */
++static int s3cfb_set_par(struct fb_info *info)
++{
++ struct fb_var_screeninfo *var = &info->var;
++ s3c_fb_info_t *fbi = (s3c_fb_info_t *) info;
++
++ if (var->bits_per_pixel == 16 || var->bits_per_pixel == 24)
++ fbi->fb.fix.visual = FB_VISUAL_TRUECOLOR;
++ else
++ fbi->fb.fix.visual = FB_VISUAL_PSEUDOCOLOR;
++
++ fbi->fb.fix.line_length = var->width * s3c_fimd.bytes_per_pixel;
++
++ /* activate this new configuration */
++ s3cfb_activate_var(fbi, var);
++
++ return 0;
++}
++
++/**
++ * s3cfb_pan_display
++ * @var: frame buffer variable screen structure
++ * @info: frame buffer structure that represents a single frame buffer
++ *
++ * Pan (or wrap, depending on the `vmode' field) the display using the
++ * `xoffset' and `yoffset' fields of the `var' structure.
++ * If the values don't fit, return -EINVAL.
++ *
++ * Returns negative errno on error, or zero on success.
++ */
++static int s3cfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
++{
++ s3c_fb_info_t *fbi = (s3c_fb_info_t *)info;
++
++ DPRINTK("s3c_fb_pan_display(var=%p, info=%p)\n", var, info);
++
++ if (var->xoffset != 0)
++ return -EINVAL;
++
++ if (var->yoffset + info->var.yres > info->var.yres_virtual)
++ return -EINVAL;
++
++ fbi->fb.var.xoffset = var->xoffset;
++ fbi->fb.var.yoffset = var->yoffset;
++
++ s3cfb_set_fb_addr(fbi);
++
++ return 0;
++}
++
++/**
++ * s3cfb_blank
++ * @blank_mode: the blank mode we want.
++ * @info: frame buffer structure that represents a single frame buffer
++ *
++ * Blank the screen if blank_mode != 0, else unblank. Return 0 if
++ * blanking succeeded, != 0 if un-/blanking failed due to e.g. a
++ * video mode which doesn't support it. Implements VESA suspend
++ * and powerdown modes on hardware that supports disabling hsync/vsync:
++ * blank_mode == 2: suspend vsync
++ * blank_mode == 3: suspend hsync
++ * blank_mode == 4: powerdown
++ *
++ * Returns negative errno on error, or zero on success.
++ *
++ */
++static int s3cfb_blank(int blank_mode, struct fb_info *info)
++{
++ DPRINTK("blank(mode=%d, info=%p)\n", blank_mode, info);
++
++ switch (blank_mode) {
++ case VESA_NO_BLANKING: /* lcd on, backlight on */
++ s3cfb_set_lcd_power(1);
++ s3cfb_set_backlight_power(1);
++ break;
++
++ case VESA_VSYNC_SUSPEND: /* lcd on, backlight off */
++ case VESA_HSYNC_SUSPEND:
++ s3cfb_set_lcd_power(1);
++ s3cfb_set_backlight_power(0);
++ break;
++
++ case VESA_POWERDOWN: /* lcd and backlight off */
++ s3cfb_set_lcd_power(0);
++ s3cfb_set_backlight_power(0);
++ break;
++
++ default:
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++int s3cfb_set_vs_info(s3c_vs_info_t vs_info)
++{
++ /* check invalid value */
++ if (vs_info.width != s3c_fimd.width || vs_info.height != s3c_fimd.height)
++ return 1;
++
++ if (!(vs_info.bpp == 8 || vs_info.bpp == 16 || vs_info.bpp == 24 || vs_info.bpp == 32))
++ return 1;
++
++ if (vs_info.offset < 0)
++ return 1;
++
++ if (vs_info.v_width != s3c_fimd.xres_virtual || vs_info.v_height != s3c_fimd.yres_virtual)
++ return 1;
++
++ /* save virtual screen information */
++ s3c_vs_info = vs_info;
++
++ if (s3c_vs_info.offset < 1)
++ s3c_vs_info.offset = 1;
++
++ if (s3c_vs_info.offset > S3C_FB_MAX_DISPLAY_OFFSET)
++ s3c_vs_info.offset = S3C_FB_MAX_DISPLAY_OFFSET;
++
++ s3c_vs_offset = s3c_vs_info.offset;
++
++ return 0;
++}
++#endif
++
++int s3cfb_onoff_win(s3c_fb_info_t *fbi, int onoff)
++{
++ int win_num = fbi->win_id;
++
++ if (onoff)
++ writel(readl(S3C_WINCON0 + (0x04 * win_num)) | S3C_WINCONx_ENWIN_F_ENABLE, S3C_WINCON0 + (0x04 * win_num));
++ else
++ writel(readl(S3C_WINCON0 + (0x04 * win_num)) &~ (S3C_WINCONx_ENWIN_F_ENABLE), S3C_WINCON0 + (0x04 * win_num));
++
++ return 0;
++}
++
++int s3cfb_onoff_color_key_alpha(s3c_fb_info_t *fbi, int onoff)
++{
++ int win_num = fbi->win_id - 1;
++
++ if (onoff)
++ writel(readl(S3C_W1KEYCON0 + (0x08 * win_num)) | S3C_WxKEYCON0_KEYBLEN_ENABLE, S3C_W1KEYCON0 + (0x08 * win_num));
++ else
++ writel(readl(S3C_W1KEYCON0 + (0x08 * win_num)) &~ (S3C_WxKEYCON0_KEYBLEN_ENABLE), S3C_W1KEYCON0 + (0x08 * win_num));
++
++ return 0;
++}
++
++int s3cfb_onoff_color_key(s3c_fb_info_t *fbi, int onoff)
++{
++ int win_num = fbi->win_id - 1;
++
++ if (onoff)
++ writel(readl(S3C_W1KEYCON0 + (0x08 * win_num)) | S3C_WxKEYCON0_KEYEN_F_ENABLE, S3C_W1KEYCON0 + (0x08 * win_num));
++ else
++ writel(readl(S3C_W1KEYCON0 + (0x08 * win_num)) &~ (S3C_WxKEYCON0_KEYEN_F_ENABLE), S3C_W1KEYCON0 + (0x08 * win_num));
++
++ return 0;
++}
++
++int s3cfb_set_color_key_registers(s3c_fb_info_t *fbi, s3c_color_key_info_t colkey_info)
++{
++ unsigned int compkey = 0;
++ int win_num = fbi->win_id;
++
++ if (win_num == 0) {
++ printk("WIN0 do not support color key\n");
++ return -1;
++ }
++
++ win_num--;
++
++ if (fbi->fb.var.bits_per_pixel == S3C_FB_PIXEL_BPP_16) {
++ /* RGB 5-6-5 mode */
++ compkey = (((colkey_info.compkey_red & 0x1f) << 19) | 0x70000);
++ compkey |= (((colkey_info.compkey_green & 0x3f) << 10) | 0x300);
++ compkey |= (((colkey_info.compkey_blue & 0x1f) << 3 )| 0x7);
++ } else if (fbi->fb.var.bits_per_pixel == S3C_FB_PIXEL_BPP_24) {
++ /* currently RGB 8-8-8 mode */
++ compkey = ((colkey_info.compkey_red & 0xff) << 16);
++ compkey |= ((colkey_info.compkey_green & 0xff) << 8);
++ compkey |= ((colkey_info.compkey_blue & 0xff) << 0);
++ } else
++ printk("Invalid BPP has been given!\n");
++
++ if (colkey_info.direction == S3C_FB_COLOR_KEY_DIR_BG)
++ writel(S3C_WxKEYCON0_COMPKEY(compkey) | S3C_WxKEYCON0_DIRCON_MATCH_FG_IMAGE, S3C_W1KEYCON0 + (0x08 * win_num));
++
++ else if (colkey_info.direction == S3C_FB_COLOR_KEY_DIR_FG)
++ writel(S3C_WxKEYCON0_COMPKEY(compkey) | S3C_WxKEYCON0_DIRCON_MATCH_BG_IMAGE, S3C_W1KEYCON0 + (0x08 * win_num));
++
++ else
++ printk("Color key direction is not correct :: %d!\n", colkey_info.direction);
++
++ return 0;
++}
++
++int s3cfb_set_color_value(s3c_fb_info_t *fbi, s3c_color_val_info_t colval_info)
++{
++ unsigned int colval = 0;
++
++ int win_num = fbi->win_id;
++
++ if (win_num == 0) {
++ printk("WIN0 do not support color key value\n");
++ return -1;
++ }
++
++ win_num--;
++
++ if (fbi->fb.var.bits_per_pixel == S3C_FB_PIXEL_BPP_16) {
++ /* RGB 5-6-5 mode */
++ colval = (((colval_info.colval_red & 0x1f) << 19) | 0x70000);
++ colval |= (((colval_info.colval_green & 0x3f) << 10) | 0x300);
++ colval |= (((colval_info.colval_blue & 0x1f) << 3 )| 0x7);
++ } else if (fbi->fb.var.bits_per_pixel == S3C_FB_PIXEL_BPP_24) {
++ /* currently RGB 8-8-8 mode */
++ colval = ((colval_info.colval_red & 0xff) << 16);
++ colval |= ((colval_info.colval_green & 0xff) << 8);
++ colval |= ((colval_info.colval_blue & 0xff) << 0);
++ } else
++ printk("Invalid BPP has been given!\n");
++
++ writel(S3C_WxKEYCON1_COLVAL(colval), S3C_W1KEYCON1 + (0x08 * win_num));
++
++ return 0;
++}
++
++static int s3cfb_set_bpp(s3c_fb_info_t *fbi, int bpp)
++{
++ struct fb_var_screeninfo *var= &fbi->fb.var;
++ int win_num = fbi->win_id;
++ unsigned int val;
++
++ val = readl(S3C_WINCON0 + (0x04 * win_num));
++ val &= ~(S3C_WINCONx_BPPMODE_F_MASK | S3C_WINCONx_BLD_PIX_MASK);
++ val |= S3C_WINCONx_ALPHA_SEL_1;
++
++ switch (bpp) {
++ case 1:
++ case 2:
++ case 4:
++ case 8:
++ s3c_fimd.bytes_per_pixel = 1;
++ break;
++
++ case 16:
++ writel(val | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE, S3C_WINCON0 + (0x04 * win_num));
++ var->bits_per_pixel = bpp;
++ s3c_fimd.bytes_per_pixel = 2;
++ break;
++
++ case 24:
++ writel(val | S3C_WINCONx_BPPMODE_F_24BPP_888 | S3C_WINCONx_BLD_PIX_PLANE, S3C_WINCON0 + (0x04 * win_num));
++ var->bits_per_pixel = bpp;
++ s3c_fimd.bytes_per_pixel = 4;
++ break;
++
++ case 25:
++ writel(val | S3C_WINCONx_BPPMODE_F_25BPP_A888 | S3C_WINCONx_BLD_PIX_PLANE, S3C_WINCON0 + (0x04 * win_num));
++ var->bits_per_pixel = bpp;
++ s3c_fimd.bytes_per_pixel = 4;
++ break;
++
++ case 28:
++ writel(val | S3C_WINCONx_BPPMODE_F_28BPP_A888 | S3C_WINCONx_BLD_PIX_PIXEL, S3C_WINCON0 + (0x04 * win_num));
++ var->bits_per_pixel = bpp;
++ s3c_fimd.bytes_per_pixel = 4;
++ break;
++
++ case 32:
++ var->bits_per_pixel = bpp;
++ s3c_fimd.bytes_per_pixel = 4;
++ break;
++ }
++
++ return 0;
++}
++
++void s3cfb_stop_lcd(void)
++{
++ unsigned long flags;
++ unsigned long tmp;
++
++ local_irq_save(flags);
++
++ tmp = readl(S3C_VIDCON0);
++ writel(tmp & ~(S3C_VIDCON0_ENVID_ENABLE | S3C_VIDCON0_ENVID_F_ENABLE), S3C_VIDCON0);
++
++ local_irq_restore(flags);
++}
++
++EXPORT_SYMBOL(s3cfb_stop_lcd);
++
++void s3cfb_start_lcd(void)
++{
++ unsigned long flags;
++ unsigned long tmp;
++
++ local_irq_save(flags);
++
++ tmp = readl(S3C_VIDCON0);
++ writel(tmp | S3C_VIDCON0_ENVID_ENABLE | S3C_VIDCON0_ENVID_F_ENABLE, S3C_VIDCON0);
++
++ local_irq_restore(flags);
++}
++
++EXPORT_SYMBOL(s3cfb_start_lcd);
++
++void s3cfb_set_clock(unsigned int clkval)
++{
++ unsigned int tmp;
++
++ tmp = readl(S3C_VIDCON0);
++
++ tmp &= ~(0x1 << 4);
++ tmp &= ~(0xff << 6);
++
++ writel(tmp | (clkval << 6) | (1 << 4), S3C_VIDCON0);
++}
++
++EXPORT_SYMBOL(s3cfb_set_clock);
++
++int s3cfb_init_win(s3c_fb_info_t *fbi, int bpp, int left_x, int top_y, int width, int height, int onoff)
++{
++ s3cfb_onoff_win(fbi, OFF);
++ s3cfb_set_bpp(fbi, bpp);
++ s3cfb_set_win_position(fbi, left_x, top_y, width, height);
++ s3cfb_set_win_size(fbi, width, height);
++ s3cfb_set_fb_size(fbi);
++ s3cfb_onoff_win(fbi, onoff);
++
++ return 0;
++}
++
++int s3cfb_wait_for_vsync(void)
++{
++ int cnt;
++
++ cnt = s3c_vsync_info.count;
++ wait_event_interruptible_timeout(s3c_vsync_info.wait_queue, cnt != s3c_vsync_info.count, HZ / 10);
++
++ return cnt;
++}
++
++static void s3cfb_update_palette(s3c_fb_info_t *fbi, unsigned int regno, unsigned int val)
++{
++ unsigned long flags;
++
++ local_irq_save(flags);
++
++ fbi->palette_buffer[regno] = val;
++
++ if (!fbi->palette_ready) {
++ fbi->palette_ready = 1;
++ s3c_palette_win = fbi->win_id;
++ }
++
++ local_irq_restore(flags);
++}
++
++static inline unsigned int s3cfb_chan_to_field(unsigned int chan, struct fb_bitfield bf)
++{
++ chan &= 0xffff;
++ chan >>= 16 - bf.length;
++
++ return chan << bf.offset;
++}
++
++static int s3cfb_setcolreg(unsigned int regno, unsigned int red, unsigned int green, unsigned int blue, unsigned int transp, struct fb_info *info)
++{
++ s3c_fb_info_t *fbi = (s3c_fb_info_t *)info;
++ unsigned int val = 0;
++
++ switch (fbi->fb.fix.visual) {
++ case FB_VISUAL_TRUECOLOR:
++ if (regno < 16) {
++ unsigned int *pal = fbi->fb.pseudo_palette;
++
++ val = s3cfb_chan_to_field(red, fbi->fb.var.red);
++ val |= s3cfb_chan_to_field(green, fbi->fb.var.green);
++ val |= s3cfb_chan_to_field(blue, fbi->fb.var.blue);
++
++ pal[regno] = val;
++ }
++
++ break;
++
++ case FB_VISUAL_PSEUDOCOLOR:
++ if (regno < 256) {
++// if (info->var.bits_per_pixel == 16) {
++ val = ((red >> 0) & 0xf800);
++ val |= ((green >> 5) & 0x07e0);
++ val |= ((blue >> 11) & 0x001f);
++// } else if (info->var.bits_per_pixel == 24) {
++// val = ((red << 8) & 0xff0000);
++// val |= ((green >> 0) & 0xff00);
++// val |= ((blue >> 8) & 0xff);
++// }
++
++ DPRINTK("index = %d, val = 0x%08x\n", regno, val);
++ s3cfb_update_palette(fbi, regno, val);
++ }
++
++ break;
++
++ default:
++ return 1; /* unknown type */
++ }
++
++ return 0;
++}
++
++/* sysfs export of baclight control */
++static int s3cfb_sysfs_show_lcd_power(struct device *dev, struct device_attribute *attr, char *buf)
++{
++ return snprintf(buf, PAGE_SIZE, "%d\n", lcd_power);
++}
++
++static int s3cfb_sysfs_store_lcd_power(struct device *dev, struct device_attribute *attr, const char *buf, size_t len)
++{
++ if (len < 1)
++ return -EINVAL;
++
++ if (strnicmp(buf, "on", 2) == 0 || strnicmp(buf, "1", 1) == 0)
++ s3cfb_set_lcd_power(1);
++ else if (strnicmp(buf, "off", 3) == 0 || strnicmp(buf, "0", 1) == 0)
++ s3cfb_set_lcd_power(0);
++ else
++ return -EINVAL;
++
++ return len;
++}
++
++static int s3cfb_sysfs_show_backlight_power(struct device *dev, struct device_attribute *attr, char *buf)
++{
++ return snprintf(buf, PAGE_SIZE, "%d\n", backlight_power);
++}
++
++static int s3cfb_sysfs_store_backlight_power(struct device *dev, struct device_attribute *attr, const char *buf, size_t len)
++{
++ if (len < 1)
++ return -EINVAL;
++
++ if (strnicmp(buf, "on", 2) == 0 || strnicmp(buf, "1", 1) == 0)
++ s3cfb_set_backlight_power(1);
++ else if (strnicmp(buf, "off", 3) == 0 || strnicmp(buf, "0", 1) == 0)
++ s3cfb_set_backlight_power(0);
++ else
++ return -EINVAL;
++
++ return len;
++}
++
++static int s3cfb_sysfs_show_backlight_level(struct device *dev, struct device_attribute *attr, char *buf)
++{
++ return snprintf(buf, PAGE_SIZE, "%d\n", backlight_level);
++}
++
++static int s3cfb_sysfs_store_backlight_level(struct device *dev, struct device_attribute *attr, const char *buf, size_t len)
++{
++ unsigned long value = simple_strtoul(buf, NULL, 10);
++
++ if (value < s3c_fimd.backlight_min || value > s3c_fimd.backlight_max)
++ return -ERANGE;
++
++ s3cfb_set_backlight_level(value);
++
++ return len;
++}
++
++static DEVICE_ATTR(lcd_power, 0644,
++ s3cfb_sysfs_show_lcd_power,
++ s3cfb_sysfs_store_lcd_power);
++
++static DEVICE_ATTR(backlight_power, 0644,
++ s3cfb_sysfs_show_backlight_power,
++ s3cfb_sysfs_store_backlight_power);
++
++static DEVICE_ATTR(backlight_level, 0644,
++ s3cfb_sysfs_show_backlight_level,
++ s3cfb_sysfs_store_backlight_level);
++
++struct fb_ops s3cfb_ops = {
++ .owner = THIS_MODULE,
++ .fb_check_var = s3cfb_check_var,
++ .fb_set_par = s3cfb_set_par,
++ .fb_blank = s3cfb_blank,
++ .fb_pan_display = s3cfb_pan_display,
++ .fb_setcolreg = s3cfb_setcolreg,
++ .fb_fillrect = cfb_fillrect,
++ .fb_copyarea = cfb_copyarea,
++ .fb_imageblit = cfb_imageblit,
++ .fb_cursor = soft_cursor,
++ .fb_ioctl = s3cfb_ioctl,
++};
++
++static void s3cfb_init_fbinfo(s3c_fb_info_t *finfo, char *drv_name, int index)
++{
++ int i = 0;
++
++ if (index == 0)
++ s3cfb_init_hw();
++
++ strcpy(finfo->fb.fix.id, drv_name);
++
++ finfo->win_id = index;
++ finfo->fb.fix.type = FB_TYPE_PACKED_PIXELS;
++ finfo->fb.fix.type_aux = 0;
++ finfo->fb.fix.xpanstep = 0;
++ finfo->fb.fix.ypanstep = 1;
++ finfo->fb.fix.ywrapstep = 0;
++ finfo->fb.fix.accel = FB_ACCEL_NONE;
++
++ finfo->fb.fbops = &s3cfb_ops;
++ finfo->fb.flags = FBINFO_FLAG_DEFAULT;
++
++ finfo->fb.pseudo_palette = &finfo->pseudo_pal;
++
++ finfo->fb.var.nonstd = 0;
++ finfo->fb.var.activate = FB_ACTIVATE_NOW;
++ finfo->fb.var.accel_flags = 0;
++ finfo->fb.var.vmode = FB_VMODE_NONINTERLACED;
++
++ finfo->fb.var.xoffset = s3c_fimd.xoffset;
++ finfo->fb.var.yoffset = s3c_fimd.yoffset;
++
++ if (index == 0) {
++ finfo->fb.var.height = s3c_fimd.height;
++ finfo->fb.var.width = s3c_fimd.width;
++
++ finfo->fb.var.xres = s3c_fimd.xres;
++ finfo->fb.var.yres = s3c_fimd.yres;
++
++ finfo->fb.var.xres_virtual = s3c_fimd.xres_virtual;
++ finfo->fb.var.yres_virtual = s3c_fimd.yres_virtual;
++ } else {
++ finfo->fb.var.height = s3c_fimd.osd_height;
++ finfo->fb.var.width = s3c_fimd.osd_width;
++
++ finfo->fb.var.xres = s3c_fimd.osd_xres;
++ finfo->fb.var.yres = s3c_fimd.osd_yres;
++
++ finfo->fb.var.xres_virtual = s3c_fimd.osd_xres_virtual;
++ finfo->fb.var.yres_virtual = s3c_fimd.osd_yres_virtual;
++ }
++
++ finfo->fb.var.bits_per_pixel = s3c_fimd.bpp;
++ finfo->fb.var.pixclock = s3c_fimd.pixclock;
++ finfo->fb.var.hsync_len = s3c_fimd.hsync_len;
++ finfo->fb.var.left_margin = s3c_fimd.left_margin;
++ finfo->fb.var.right_margin = s3c_fimd.right_margin;
++ finfo->fb.var.vsync_len = s3c_fimd.vsync_len;
++ finfo->fb.var.upper_margin = s3c_fimd.upper_margin;
++ finfo->fb.var.lower_margin = s3c_fimd.lower_margin;
++ finfo->fb.var.sync = s3c_fimd.sync;
++ finfo->fb.var.grayscale = s3c_fimd.cmap_grayscale;
++
++ finfo->fb.fix.smem_len = finfo->fb.var.xres_virtual * finfo->fb.var.yres_virtual * s3c_fimd.bytes_per_pixel;
++
++ finfo->fb.fix.line_length = finfo->fb.var.width * s3c_fimd.bytes_per_pixel;
++
++#if !defined(CONFIG_FB_S3C_VIRTUAL_SCREEN) && defined(CONFIG_FB_S3C_DOUBLE_BUFFERING)
++ if (index < 2)
++ finfo->fb.fix.smem_len *= 2;
++#endif
++
++ for (i = 0; i < 256; i++)
++ finfo->palette_buffer[i] = S3C_FB_PALETTE_BUFF_CLEAR;
++}
++
++/*
++ * Probe
++ */
++static int __init s3cfb_probe(struct platform_device *pdev)
++{
++ struct resource *res;
++ struct fb_info *fbinfo;
++ s3c_fb_info_t *info;
++
++ char driver_name[] = "s3cfb";
++ int index = 0, ret, size;
++
++ fbinfo = framebuffer_alloc(sizeof(s3c_fb_info_t), &pdev->dev);
++
++ if (!fbinfo)
++ return -ENOMEM;
++
++ platform_set_drvdata(pdev, fbinfo);
++
++ info = fbinfo->par;
++ info->dev = &pdev->dev;
++
++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++
++ if (res == NULL) {
++ dev_err(&pdev->dev, "failed to get memory registers\n");
++ ret = -ENXIO;
++ goto dealloc_fb;
++ }
++
++ size = (res->end - res->start) + 1;
++ info->mem = request_mem_region(res->start, size, pdev->name);
++
++ if (info->mem == NULL) {
++ dev_err(&pdev->dev, "failed to get memory region\n");
++ ret = -ENOENT;
++ goto dealloc_fb;
++ }
++
++ info->io = ioremap(res->start, size);
++
++ if (info->io == NULL) {
++ dev_err(&pdev->dev, "ioremap() of registers failed\n");
++ ret = -ENXIO;
++ goto release_mem;
++ }
++
++ s3cfb_pre_init();
++ s3cfb_set_backlight_power(1);
++ s3cfb_set_lcd_power(1);
++ s3cfb_set_backlight_level(S3C_FB_DEFAULT_BACKLIGHT_LEVEL);
++
++#if defined(CONFIG_PLAT_S5PC1XX)
++ info->clk = clk_get(NULL, "hclkd1");
++#else
++ info->clk = clk_get(NULL, "lcd");
++#endif
++
++ if (!info->clk || IS_ERR(info->clk)) {
++ printk(KERN_INFO "failed to get lcd clock source\n");
++ ret = -ENOENT;
++ goto release_irq;
++ }
++
++ clk_enable(info->clk);
++ printk("S3C_LCD clock got enabled :: %ld.%03ld Mhz\n", PRINT_MHZ(clk_get_rate(info->clk)));
++
++ s3c_vsync_info.count = 0;
++ init_waitqueue_head(&s3c_vsync_info.wait_queue);
++
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ ret = request_irq(IRQ_S3C2443_LCD3, s3cfb_irq, 0, "s3c-lcd", pdev);
++
++#elif defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++ ret = request_irq(IRQ_LCD_VSYNC, s3cfb_irq, 0, "s3c-lcd", pdev);
++
++#elif defined(CONFIG_PLAT_S5PC1XX)
++ ret = request_irq(IRQ_LCD0, s3cfb_irq, 0, "s3c-lcd", pdev);
++
++#endif
++
++ if (ret != 0) {
++ printk("Failed to install irq (%d)\n", ret);
++ goto release_irq;
++ }
++
++ msleep(5);
++
++ for (index = 0; index < S3C_FB_NUM; index++) {
++ s3c_fb_info[index].mem = info->mem;
++ s3c_fb_info[index].io = info->io;
++ s3c_fb_info[index].clk = info->clk;
++
++ s3cfb_init_fbinfo(&s3c_fb_info[index], driver_name, index);
++
++ /* Initialize video memory */
++ ret = s3cfb_map_video_memory(&s3c_fb_info[index]);
++
++ if (ret) {
++ printk("Failed to allocate video RAM: %d\n", ret);
++ ret = -ENOMEM;
++ goto release_clock;
++ }
++
++ ret = s3cfb_init_registers(&s3c_fb_info[index]);
++ ret = s3cfb_check_var(&s3c_fb_info[index].fb.var, &s3c_fb_info[index].fb);
++
++ if (index < 2){
++ if (fb_alloc_cmap(&s3c_fb_info[index].fb.cmap, 256, 0) < 0)
++ goto dealloc_fb;
++ } else {
++ if (fb_alloc_cmap(&s3c_fb_info[index].fb.cmap, 16, 0) < 0)
++ goto dealloc_fb;
++ }
++
++ ret = register_framebuffer(&s3c_fb_info[index].fb);
++
++ if (ret < 0) {
++ printk(KERN_ERR "Failed to register framebuffer device: %d\n", ret);
++ goto free_video_memory;
++ }
++
++ printk(KERN_INFO "fb%d: %s frame buffer device\n", s3c_fb_info[index].fb.node, s3c_fb_info[index].fb.fix.id);
++
++ }
++
++ /* create device files */
++ ret = device_create_file(&(pdev->dev), &dev_attr_backlight_power);
++
++ if (ret < 0)
++ printk(KERN_WARNING "s3cfb: failed to add entries\n");
++
++ ret = device_create_file(&(pdev->dev), &dev_attr_backlight_level);
++
++ if (ret < 0)
++ printk(KERN_WARNING "s3cfb: failed to add entries\n");
++
++ ret = device_create_file(&(pdev->dev), &dev_attr_lcd_power);
++
++ if (ret < 0)
++ printk(KERN_WARNING "s3cfb: failed to add entries\n");
++
++ return 0;
++
++free_video_memory:
++ s3cfb_unmap_video_memory(&s3c_fb_info[index]);
++
++release_clock:
++ clk_disable(info->clk);
++ clk_put(info->clk);
++
++release_mem:
++ release_resource(info->mem);
++ kfree(info->mem);
++
++release_irq:
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ free_irq(IRQ_S3C2443_LCD3, &info);
++
++#elif defined(CONFIG_CPU_S3C6400)|| defined(CONFIG_CPU_S3C6410)
++ free_irq(IRQ_LCD_VSYNC, &info);
++#endif
++
++dealloc_fb:
++ framebuffer_release(&s3c_fb_info[index].fb);
++ return ret;
++}
++
++/*
++ * Remove
++ */
++static int s3cfb_remove(struct platform_device *pdev)
++{
++ struct fb_info *fbinfo = platform_get_drvdata(pdev);
++ s3c_fb_info_t *info = fbinfo->par;
++ int index = 0, irq;
++
++ s3cfb_stop_lcd();
++ msleep(1);
++
++ if (info->clk) {
++ clk_disable(info->clk);
++ clk_put(info->clk);
++ info->clk = NULL;
++ }
++
++ irq = platform_get_irq(pdev, 0);
++ release_resource(info->mem);
++
++ for (index = 0; index < S3C_FB_NUM; index++) {
++ s3cfb_unmap_video_memory((s3c_fb_info_t *) &s3c_fb_info[index]);
++ free_irq(irq, &s3c_fb_info[index]);
++ unregister_framebuffer(&info[index].fb);
++ }
++
++ return 0;
++}
++
++static struct platform_driver s3cfb_driver = {
++ .probe = s3cfb_probe,
++ .remove = s3cfb_remove,
++ .suspend = s3cfb_suspend,
++ .resume = s3cfb_resume,
++ .driver = {
++ .name = "s3c-lcd",
++ .owner = THIS_MODULE,
++ },
++};
++
++int __devinit s3cfb_init(void)
++{
++ return platform_driver_register(&s3cfb_driver);
++}
++static void __exit s3cfb_cleanup(void)
++{
++ platform_driver_unregister(&s3cfb_driver);
++}
++
++module_init(s3cfb_init);
++module_exit(s3cfb_cleanup);
++
++MODULE_AUTHOR("Jinsung Yang");
++MODULE_DESCRIPTION("S3C Framebuffer Driver");
++MODULE_LICENSE("GPL");
++
+diff --git a/drivers/video/s3c/s3cfb.h b/drivers/video/s3c/s3cfb.h
+new file mode 100644
+index 0000000..cf66ec4
+--- /dev/null
++++ b/drivers/video/s3c/s3cfb.h
+@@ -0,0 +1,505 @@
++/*
++ * drivers/video/s3c/s3cfb.h
++ *
++ * $Id: s3cfb.h,v 1.26 2008/09/18 07:27:06 jsgood Exp $
++ *
++ * Copyright (C) 2008 Jinsung Yang <jsgood.yang@samsung.com>
++ *
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file COPYING in the main directory of this archive for
++ * more details.
++ *
++ * S3C Frame Buffer Driver
++ * based on skeletonfb.c, sa1100fb.h, s3c2410fb.c
++ */
++
++#ifndef _S3CFB_H_
++#define _S3CFB_H_
++
++#include <linux/interrupt.h>
++#if defined(CONFIG_S3C6410_PWM)
++extern int s3c6410_timer_setup (int channel, int usec, unsigned long g_tcnt, unsigned long g_tcmp);
++#endif
++
++/*
++ * Debug macros
++ */
++#define DEBUG 0
++
++#if DEBUG
++#define DPRINTK(fmt, args...) printk("%s: " fmt, __FUNCTION__ , ## args)
++#else
++#define DPRINTK(fmt, args...)
++#endif
++
++/*
++ * Definitions
++ */
++#ifndef MHZ
++#define MHZ (1000 * 1000)
++#endif
++
++#define ON 1
++#define OFF 0
++
++#define S3C_FB_PIXEL_BPP_8 8
++#define S3C_FB_PIXEL_BPP_16 16 /* RGB 5-6-5 format for SMDK EVAL BOARD */
++#define S3C_FB_PIXEL_BPP_24 24 /* RGB 8-8-8 format for SMDK EVAL BOARD */
++
++#define S3C_FB_OUTPUT_RGB 0
++#define S3C_FB_OUTPUT_TV 1
++#define S3C_FB_OUTPUT_I80_LDI0 2
++#define S3C_FB_OUTPUT_I80_LDI1 3
++
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++#define S3C_FB_MAX_NUM 2
++
++#elif defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++#define S3C_FB_MAX_NUM 5
++
++#else
++#define S3C_FB_MAX_NUM 1
++
++#endif
++
++#define S3C_FB_PALETTE_BUFF_CLEAR (0x80000000) /* entry is clear/invalid */
++#define S3C_FB_COLOR_KEY_DIR_BG 0
++#define S3C_FB_COLOR_KEY_DIR_FG 1
++#define S3C_FB_DEFAULT_BACKLIGHT_LEVEL 2
++#define S3C_FB_MAX_DISPLAY_OFFSET 200
++#define S3C_FB_DEFAULT_DISPLAY_OFFSET 100
++#define S3C_FB_MAX_ALPHA_LEVEL 0xf
++#define S3C_FB_MAX_BRIGHTNESS 90
++#define S3C_FB_DEFAULT_BRIGHTNESS 4
++#define S3C_FB_VS_SET 12
++#define S3C_FB_VS_MOVE_LEFT 15
++#define S3C_FB_VS_MOVE_RIGHT 16
++#define S3C_FB_VS_MOVE_UP 17
++#define S3C_FB_VS_MOVE_DOWN 18
++
++/*
++ * macros
++ */
++#define PRINT_MHZ(m) ((m) / MHZ), ((m / 1000) % 1000)
++#define FB_MAX_NUM(x, y) ((x) > (y) ? (y) : (x))
++#define S3C_FB_NUM FB_MAX_NUM(S3C_FB_MAX_NUM, CONFIG_FB_S3C_NUM)
++
++/*
++ * ioctls
++ */
++#define S3C_FB_GET_BRIGHTNESS _IOR ('F', 1, unsigned int)
++#define S3C_FB_SET_BRIGHTNESS _IOW ('F', 2, unsigned int)
++#define S3C_FB_WIN_ON _IOW ('F', 10, unsigned int)
++#define S3C_FB_WIN_OFF _IOW ('F', 11, unsigned int)
++#define FBIO_WAITFORVSYNC _IOW ('F', 32, unsigned int)
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++#define S3C_FB_VS_START _IO ('F', 103)
++#define S3C_FB_VS_STOP _IO ('F', 104)
++#define S3C_FB_VS_SET_INFO _IOW ('F', 105, s3c_vs_info_t)
++#define S3C_FB_VS_MOVE _IOW ('F', 106, unsigned int)
++#endif
++
++#define S3C_FB_OSD_START _IO ('F', 201)
++#define S3C_FB_OSD_STOP _IO ('F', 202)
++#define S3C_FB_OSD_ALPHA_UP _IO ('F', 203)
++#define S3C_FB_OSD_ALPHA_DOWN _IO ('F', 204)
++#define S3C_FB_OSD_MOVE_LEFT _IO ('F', 205)
++#define S3C_FB_OSD_MOVE_RIGHT _IO ('F', 206)
++#define S3C_FB_OSD_MOVE_UP _IO ('F', 207)
++#define S3C_FB_OSD_MOVE_DOWN _IO ('F', 208)
++#define S3C_FB_OSD_SET_INFO _IOW ('F', 209, s3c_win_info_t)
++#define S3C_FB_OSD_ALPHA_SET _IOW ('F', 210, unsigned int)
++#define S3C_FB_OSD_ALPHA0_SET _IOW ('F', 211, unsigned int)
++#define S3C_FB_OSD_ALPHA_MODE _IOW ('F', 212, unsigned int)
++
++#define S3C_FB_COLOR_KEY_START _IO ('F', 300)
++#define S3C_FB_COLOR_KEY_STOP _IO ('F', 301)
++#define S3C_FB_COLOR_KEY_ALPHA_START _IO ('F', 302)
++#define S3C_FB_COLOR_KEY_ALPHA_STOP _IO ('F', 303)
++#define S3C_FB_COLOR_KEY_SET_INFO _IOW ('F', 304, s3c_color_key_info_t)
++#define S3C_FB_COLOR_KEY_VALUE _IOW ('F', 305, s3c_color_val_info_t)
++
++#if defined(CONFIG_FB_S3C_DOUBLE_BUFFERING)
++#define S3C_FB_GET_NUM _IOWR('F', 306, unsigned int)
++#endif
++
++#define S3C_FB_GET_INFO _IOR ('F', 307, s3c_fb_dma_info_t)
++#define S3C_FB_CHANGE_REQ _IOW ('F', 308, int)
++#define S3C_FB_SET_VSYNC_INT _IOW ('F', 309, int)
++#define S3C_FB_SET_NEXT_FB_INFO _IOW ('F', 320, s3c_fb_next_info_t)
++#define S3C_FB_GET_CURR_FB_INFO _IOR ('F', 321, s3c_fb_next_info_t)
++
++#define S3C_FB_RELEASE_DEFAULT_FB _IO ('F', 322)
++
++
++/*
++ * structures
++ */
++typedef struct {
++ int bpp;
++ int left_x;
++ int top_y;
++ int width;
++ int height;
++} s3c_win_info_t;
++
++typedef struct {
++ int width;
++ int height;
++ int bpp;
++ int offset;
++ int v_width;
++ int v_height;
++} s3c_vs_info_t;
++
++typedef struct {
++ int direction;
++ unsigned int compkey_red;
++ unsigned int compkey_green;
++ unsigned int compkey_blue;
++} s3c_color_key_info_t;
++
++typedef struct {
++ unsigned int colval_red;
++ unsigned int colval_green;
++ unsigned int colval_blue;
++} s3c_color_val_info_t;
++
++typedef struct {
++ wait_queue_head_t wait_queue;
++ int count;
++} s3c_vsync_info_t;
++
++typedef struct
++{
++ dma_addr_t map_dma_f1;
++ dma_addr_t map_dma_f2;
++} s3c_fb_dma_info_t;
++
++typedef struct {
++ __u32 phy_start_addr;
++ __u32 xres; /* visible resolution*/
++ __u32 yres;
++ __u32 xres_virtual; /* virtual resolution*/
++ __u32 yres_virtual;
++ __u32 xoffset; /* offset from virtual to visible */
++ __u32 yoffset; /* resolution */
++ __u32 lcd_offset_x;
++ __u32 lcd_offset_y;
++} s3c_fb_next_info_t;
++
++typedef struct {
++ struct fb_bitfield red;
++ struct fb_bitfield green;
++ struct fb_bitfield blue;
++ struct fb_bitfield transp;
++} s3c_fb_rgb_t;
++
++const static s3c_fb_rgb_t s3c_fb_rgb_8 = {
++ .red = {.offset = 0, .length = 8,},
++ .green = {.offset = 0, .length = 8,},
++ .blue = {.offset = 0, .length = 8,},
++ .transp = {.offset = 0, .length = 0,},
++};
++
++const static s3c_fb_rgb_t s3c_fb_rgb_16 = {
++ .red = {.offset = 11, .length = 5,},
++ .green = {.offset = 5, .length = 6,},
++ .blue = {.offset = 0, .length = 5,},
++ .transp = {.offset = 0, .length = 0,},
++};
++
++const static s3c_fb_rgb_t s3c_fb_rgb_24 = {
++ .red = {.offset = 16, .length = 8,},
++ .green = {.offset = 8, .length = 8,},
++ .blue = {.offset = 0, .length = 8,},
++ .transp = {.offset = 0, .length = 0,},
++};
++
++const static s3c_fb_rgb_t s3c_fb_rgb_32 = {
++ .red = {.offset = 16, .length = 8,},
++ .green = {.offset = 8, .length = 8,},
++ .blue = {.offset = 0, .length = 8,},
++ .transp = {.offset = 24, .length = 8,},
++};
++
++typedef struct {
++ struct fb_info fb;
++ struct device *dev;
++
++ struct clk *clk;
++
++ struct resource *mem;
++ void __iomem *io;
++
++ unsigned int win_id;
++
++ unsigned int max_bpp;
++ unsigned int max_xres;
++ unsigned int max_yres;
++
++ /* raw memory addresses */
++ dma_addr_t map_dma_f1; /* physical */
++ u_char * map_cpu_f1; /* virtual */
++ unsigned int map_size_f1;
++
++ /* addresses of pieces placed in raw buffer */
++ u_char * screen_cpu_f1; /* virtual address of frame buffer */
++ dma_addr_t screen_dma_f1; /* physical address of frame buffer */
++
++ /* raw memory addresses */
++ dma_addr_t map_dma_f2; /* physical */
++ u_char * map_cpu_f2; /* virtual */
++ unsigned int map_size_f2;
++
++ /* addresses of pieces placed in raw buffer */
++ u_char * screen_cpu_f2; /* virtual address of frame buffer */
++ dma_addr_t screen_dma_f2; /* physical address of frame buffer */
++
++ unsigned int palette_ready;
++ unsigned int fb_change_ready;
++
++ /* keep these registers in case we need to re-write palette */
++ unsigned int palette_buffer[256];
++ unsigned int pseudo_pal[16];
++
++ unsigned int lcd_offset_x;
++ unsigned int lcd_offset_y;
++ unsigned int next_fb_info_change_req;
++ s3c_fb_next_info_t next_fb_info;
++} s3c_fb_info_t;
++
++typedef struct {
++
++ /* Screen size */
++ int width;
++ int height;
++
++ /* Screen info */
++ int xres;
++ int yres;
++
++ /* Virtual Screen info */
++ int xres_virtual;
++ int yres_virtual;
++ int xoffset;
++ int yoffset;
++
++ /* OSD Screen size */
++ int osd_width;
++ int osd_height;
++
++ /* OSD Screen info */
++ int osd_xres;
++ int osd_yres;
++
++ /* OSD Screen info */
++ int osd_xres_virtual;
++ int osd_yres_virtual;
++
++ int bpp;
++ int bytes_per_pixel;
++ unsigned long pixclock;
++
++ int hsync_len;
++ int left_margin;
++ int right_margin;
++ int vsync_len;
++ int upper_margin;
++ int lower_margin;
++ int sync;
++
++ int cmap_grayscale:1;
++ int cmap_inverse:1;
++ int cmap_static:1;
++ int unused:29;
++
++ /* lcd configuration registers */
++ unsigned long lcdcon1;
++ unsigned long lcdcon2;
++
++ unsigned long lcdcon3;
++ unsigned long lcdcon4;
++ unsigned long lcdcon5;
++
++ /* GPIOs */
++ unsigned long gpcup;
++ unsigned long gpcup_mask;
++ unsigned long gpccon;
++ unsigned long gpccon_mask;
++ unsigned long gpdup;
++ unsigned long gpdup_mask;
++ unsigned long gpdcon;
++ unsigned long gpdcon_mask;
++
++ /* lpc3600 control register */
++ unsigned long lpcsel;
++ unsigned long lcdtcon1;
++ unsigned long lcdtcon2;
++ unsigned long lcdtcon3;
++ unsigned long lcdosd1;
++ unsigned long lcdosd2;
++ unsigned long lcdosd3;
++ unsigned long lcdsaddrb1;
++ unsigned long lcdsaddrb2;
++ unsigned long lcdsaddrf1;
++ unsigned long lcdsaddrf2;
++ unsigned long lcdeaddrb1;
++ unsigned long lcdeaddrb2;
++ unsigned long lcdeaddrf1;
++ unsigned long lcdeaddrf2;
++ unsigned long lcdvscrb1;
++ unsigned long lcdvscrb2;
++ unsigned long lcdvscrf1;
++ unsigned long lcdvscrf2;
++ unsigned long lcdintcon;
++ unsigned long lcdkeycon;
++ unsigned long lcdkeyval;
++ unsigned long lcdbgcon;
++ unsigned long lcdfgcon;
++ unsigned long lcddithcon;
++
++ unsigned long vidcon0;
++ unsigned long vidcon1;
++ unsigned long vidtcon0;
++ unsigned long vidtcon1;
++ unsigned long vidtcon2;
++ unsigned long vidtcon3;
++ unsigned long wincon0;
++ unsigned long wincon2;
++ unsigned long wincon1;
++ unsigned long wincon3;
++ unsigned long wincon4;
++
++ unsigned long vidosd0a;
++ unsigned long vidosd0b;
++ unsigned long vidosd0c;
++ unsigned long vidosd1a;
++ unsigned long vidosd1b;
++ unsigned long vidosd1c;
++ unsigned long vidosd1d;
++ unsigned long vidosd2a;
++ unsigned long vidosd2b;
++ unsigned long vidosd2c;
++ unsigned long vidosd2d;
++ unsigned long vidosd3a;
++ unsigned long vidosd3b;
++ unsigned long vidosd3c;
++ unsigned long vidosd4a;
++ unsigned long vidosd4b;
++ unsigned long vidosd4c;
++
++ unsigned long vidw00add0b0;
++ unsigned long vidw00add0b1;
++ unsigned long vidw01add0;
++ unsigned long vidw01add0b0;
++ unsigned long vidw01add0b1;
++
++ unsigned long vidw00add1b0;
++ unsigned long vidw00add1b1;
++ unsigned long vidw01add1;
++ unsigned long vidw01add1b0;
++ unsigned long vidw01add1b1;
++
++ unsigned long vidw00add2b0;
++ unsigned long vidw00add2b1;
++
++ unsigned long vidw02add0;
++ unsigned long vidw03add0;
++ unsigned long vidw04add0;
++
++ unsigned long vidw02add1;
++ unsigned long vidw03add1;
++ unsigned long vidw04add1;
++ unsigned long vidw00add2;
++ unsigned long vidw01add2;
++ unsigned long vidw02add2;
++ unsigned long vidw03add2;
++ unsigned long vidw04add2;
++
++ unsigned long vidintcon;
++ unsigned long vidintcon0;
++ unsigned long vidintcon1;
++ unsigned long w1keycon0;
++ unsigned long w1keycon1;
++ unsigned long w2keycon0;
++ unsigned long w2keycon1;
++ unsigned long w3keycon0;
++ unsigned long w3keycon1;
++ unsigned long w4keycon0;
++ unsigned long w4keycon1;
++
++ unsigned long win0map;
++ unsigned long win1map;
++ unsigned long win2map;
++ unsigned long win3map;
++ unsigned long win4map;
++
++ unsigned long wpalcon;
++ unsigned long dithmode;
++ unsigned long intclr0;
++ unsigned long intclr1;
++ unsigned long intclr2;
++
++ unsigned long win0pal;
++ unsigned long win1pal;
++
++ /* backlight info */
++ int backlight_min;
++ int backlight_max;
++ int backlight_default;
++
++ /* utility functions */
++ void (*set_backlight_power)(int);
++ void (*set_lcd_power)(int);
++ void (*set_brightness)(int);
++ int (*map_video_memory)(s3c_fb_info_t *);
++ int (*unmap_video_memory)(s3c_fb_info_t *);
++}s3c_fimd_info_t;
++
++/*
++ * Externs
++ */
++extern s3c_fb_info_t s3c_fb_info[];
++extern s3c_fimd_info_t s3c_fimd;
++
++extern s3c_vsync_info_t s3c_vsync_info;
++extern int s3c_vs_offset;
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++extern s3c_vs_info_t s3c_vs_info;
++#endif
++
++extern int soft_cursor(struct fb_info *info, struct fb_cursor *cursor);
++extern int s3cfb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg);
++extern void s3cfb_activate_var(s3c_fb_info_t *fbi, struct fb_var_screeninfo *var);
++extern void s3cfb_set_fb_addr(s3c_fb_info_t *fbi);
++extern void s3cfb_init_hw(void);
++extern irqreturn_t s3cfb_irq(int irqno, void *param);
++extern int s3cfb_init_registers(s3c_fb_info_t *fbi);
++extern int s3cfb_set_win_position(s3c_fb_info_t *fbi, int left_x, int top_y, int width, int height);
++extern int s3cfb_set_win_size(s3c_fb_info_t *fbi, int width, int height);
++extern int s3cfb_set_fb_size(s3c_fb_info_t *fbi);
++extern int s3cfb_set_vs_info(s3c_vs_info_t vs_info);
++extern int s3cfb_wait_for_vsync(void);
++extern int s3cfb_onoff_color_key(s3c_fb_info_t *fbi, int onoff);
++extern int s3cfb_onoff_color_key_alpha(s3c_fb_info_t *fbi, int onoff);
++extern int s3cfb_set_color_key_registers(s3c_fb_info_t *fbi, s3c_color_key_info_t colkey_info);
++extern int s3cfb_set_color_value(s3c_fb_info_t *fbi, s3c_color_val_info_t colval_info);
++extern int s3cfb_init_win(s3c_fb_info_t *fbi, int bpp, int left_x, int top_y, int width, int height, int onoff);
++extern int s3cfb_onoff_win(s3c_fb_info_t *fbi, int onoff);
++extern void s3cfb_set_gpio(void);
++extern void s3cfb_start_lcd(void);
++extern void s3cfb_stop_lcd(void);
++extern int s3cfb_suspend(struct platform_device *dev, pm_message_t state);
++extern int s3cfb_resume(struct platform_device *dev);
++extern void s3cfb_spi_lcd_den(int ch, int value);
++extern void s3cfb_spi_lcd_dseri(int ch, int value);
++extern void s3cfb_spi_lcd_dclk(int ch, int value);
++extern void s3cfb_spi_set_lcd_data(int ch);
++extern void s3cfb_pre_init(void);
++extern void s3cfb_unmap_video_memory(s3c_fb_info_t *fbi);
++
++#endif
++
+diff --git a/drivers/video/s3c/s3cfb_fimd3x.c b/drivers/video/s3c/s3cfb_fimd3x.c
+new file mode 100644
+index 0000000..3555e52
+--- /dev/null
++++ b/drivers/video/s3c/s3cfb_fimd3x.c
+@@ -0,0 +1,840 @@
++/*
++ * drivers/video/s3c/s3c24xxfb.c
++ *
++ * $Id: s3cfb_fimd3x.c,v 1.11 2008/09/18 07:27:06 jsgood Exp $
++ *
++ * Copyright (C) 2008 Jinsung Yang <jsgood.yang@samsung.com>
++ *
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file COPYING in the main directory of this archive for
++ * more details.
++ *
++ * S3C Frame Buffer Driver
++ * based on skeletonfb.c, sa1100fb.h, s3c2410fb.c
++ */
++
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/errno.h>
++#include <linux/string.h>
++#include <linux/mm.h>
++#include <linux/tty.h>
++#include <linux/slab.h>
++#include <linux/delay.h>
++#include <linux/fb.h>
++#include <linux/init.h>
++#include <linux/dma-mapping.h>
++#include <linux/string.h>
++#include <linux/ioctl.h>
++#include <linux/clk.h>
++#include <linux/platform_device.h>
++
++#include <asm/io.h>
++#include <asm/uaccess.h>
++
++#include <asm/mach/map.h>
++#include <asm/arch/regs-lcd.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-s3c-clock.h>
++
++#if defined(CONFIG_PM)
++#include <asm/plat-s3c24xx/pm.h>
++#endif
++
++#include "s3cfb.h"
++
++int s3c_vs_offset = S3C_FB_DEFAULT_DISPLAY_OFFSET;
++int s3c_osd_alpha_level = S3C_FB_MAX_ALPHA_LEVEL;
++int s3c_display_brightness = S3C_FB_DEFAULT_BRIGHTNESS;
++static int s3c_palette_win;
++
++s3c_fimd_info_t s3c_fimd = {
++ .vidcon0 = S3C_VIDCON0_VIDOUT_RGB_IF | S3C_VIDCON0_PNRMODE_RGB_P | S3C_VIDCON0_CLKDIR_DIVIDED | S3C_VIDCON0_VCLKEN_ENABLE | S3C_VIDCON0_CLKSEL_F_HCLK,
++
++#if defined (CONFIG_FB_S3C_BPP_8)
++ .wincon0 = S3C_WINCONx_BYTSWP_ENABLE | S3C_WINCONx_BURSTLEN_4WORD | S3C_WINCONx_BPPMODE_F_8BPP_PAL,
++ .wincon1 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_4WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1,
++ .bpp = S3C_FB_PIXEL_BPP_8,
++ .bytes_per_pixel = 1,
++ .wpalcon = S3C_WPALCON_W0PAL_16BIT,
++
++#elif defined (CONFIG_FB_S3C_BPP_16)
++ .wincon0 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_4WORD | S3C_WINCONx_BPPMODE_F_16BPP_565,
++ .wincon1 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_4WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1,
++ .bpp = S3C_FB_PIXEL_BPP_16,
++ .bytes_per_pixel = 2,
++ .wpalcon = S3C_WPALCON_W0PAL_16BIT,
++
++#elif defined (CONFIG_FB_S3C_BPP_24)
++ .wincon0 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888,
++ .wincon1 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1,
++ .bpp = S3C_FB_PIXEL_BPP_24,
++ .bytes_per_pixel = 4,
++ .wpalcon = S3C_WPALCON_W0PAL_24BIT,
++#endif
++
++ .vidosd1c = S3C_VIDOSDxC_ALPHA1_B(S3C_FB_MAX_ALPHA_LEVEL) | S3C_VIDOSDxC_ALPHA1_G(S3C_FB_MAX_ALPHA_LEVEL) |S3C_VIDOSDxC_ALPHA1_R(S3C_FB_MAX_ALPHA_LEVEL),
++ .vidintcon = S3C_VIDINTCON0_FRAMESEL0_VSYNC | S3C_VIDINTCON0_FRAMESEL1_NONE | S3C_VIDINTCON0_INTFRMEN_ENABLE | S3C_VIDINTCON0_INTEN_ENABLE,
++
++ .xoffset = 0,
++ .yoffset = 0,
++
++ .w1keycon0 = S3C_WxKEYCON0_KEYBLEN_DISABLE | S3C_WxKEYCON0_KEYEN_F_DISABLE | S3C_WxKEYCON0_DIRCON_MATCH_FG_IMAGE | S3C_WxKEYCON0_COMPKEY(0x0),
++ .w1keycon1 = S3C_WxKEYCON1_COLVAL(0xffffff),
++ .w2keycon0 = S3C_WxKEYCON0_KEYBLEN_DISABLE | S3C_WxKEYCON0_KEYEN_F_DISABLE | S3C_WxKEYCON0_DIRCON_MATCH_FG_IMAGE | S3C_WxKEYCON0_COMPKEY(0x0),
++ .w2keycon1 = S3C_WxKEYCON1_COLVAL(0xffffff),
++ .w3keycon0 = S3C_WxKEYCON0_KEYBLEN_DISABLE | S3C_WxKEYCON0_KEYEN_F_DISABLE | S3C_WxKEYCON0_DIRCON_MATCH_FG_IMAGE | S3C_WxKEYCON0_COMPKEY(0x0),
++ .w3keycon1 = S3C_WxKEYCON1_COLVAL(0xffffff),
++ .w4keycon0 = S3C_WxKEYCON0_KEYBLEN_DISABLE | S3C_WxKEYCON0_KEYEN_F_DISABLE | S3C_WxKEYCON0_DIRCON_MATCH_FG_IMAGE | S3C_WxKEYCON0_COMPKEY(0x0),
++ .w4keycon1 = S3C_WxKEYCON1_COLVAL(0xffffff),
++
++ .sync = 0,
++ .cmap_static = 1,
++};
++
++#if defined(CONFIG_S3C2450_PWM) || defined(CONFIG_S3C2416_PWM)
++void s3cfb_set_brightness(int val)
++{
++ int channel = 3; /* must use channel-3 */
++ int usec = 0; /* don't care value */
++ unsigned long tcnt = 1000;
++ unsigned long tcmp = 0;
++
++ if (val < 0)
++ val = 0;
++
++ if (val > S3C_FB_MAX_BRIGHTNESS)
++ val = S3C_FB_MAX_BRIGHTNESS;
++
++ s3c_display_brightness = val;
++ tcmp = val * 50;
++
++ s3c2450_timer_setup (channel, usec, tcnt, tcmp);
++}
++#endif
++
++#if defined(CONFIG_FB_S3C_DOUBLE_BUFFERING)
++
++static void s3cfb_change_buff(int req_win, int req_fb)
++{
++ /* Software-based trigger */
++ writel((1 << 0), S3C_CPUTRIGCON2);
++}
++
++#endif
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++static int s3cfb_set_vs_registers(int vs_cmd)
++{
++ int page_width, offset;
++ int shift_value;
++
++ page_width = s3c_fimd.xres * s3c_fimd.bytes_per_pixel;
++ offset = (s3c_fimd.xres_virtual - s3c_fimd.xres) * s3c_fimd.bytes_per_pixel;
++
++ switch (vs_cmd){
++ case S3C_FB_VS_SET:
++ /* size of buffer */
++ s3c_fimd.vidw00add2b0 = S3C_VIDWxxADD2_OFFSIZE_F(offset) | S3C_VIDWxxADD2_PAGEWIDTH_F(page_width);
++ s3c_fimd.vidw00add2b1 = S3C_VIDWxxADD2_OFFSIZE_F(offset) | S3C_VIDWxxADD2_PAGEWIDTH_F(page_width);
++
++ writel(s3c_fimd.vidw00add2b0, S3C_VIDW00ADD2B0);
++ writel(s3c_fimd.vidw00add2b1, S3C_VIDW00ADD2B1);
++ break;
++
++ case S3C_FB_VS_MOVE_LEFT:
++ if (s3c_fimd.xoffset < s3c_vs_offset)
++ shift_value = s3c_fimd.xoffset;
++ else
++ shift_value = s3c_vs_offset;
++
++ s3c_fimd.xoffset -= shift_value;
++
++ /* For buffer start address */
++ s3c_fimd.vidw00add0b0 = s3c_fimd.vidw00add0b0 - (s3c_fimd.bytes_per_pixel * shift_value);
++ s3c_fimd.vidw00add0b1 = s3c_fimd.vidw00add0b1 - (s3c_fimd.bytes_per_pixel * shift_value);
++ break;
++
++ case S3C_FB_VS_MOVE_RIGHT:
++ if ((s3c_vs_info.v_width - (s3c_fimd.xoffset + s3c_vs_info.width)) < (s3c_vs_offset))
++ shift_value = s3c_vs_info.v_width - (s3c_fimd.xoffset + s3c_vs_info.width);
++ else
++ shift_value = s3c_vs_offset;
++
++ s3c_fimd.xoffset += shift_value;
++
++ /* For buffer start address */
++ s3c_fimd.vidw00add0b0 = s3c_fimd.vidw00add0b0 + (s3c_fimd.bytes_per_pixel * shift_value);
++ s3c_fimd.vidw00add0b1 = s3c_fimd.vidw00add0b1 + (s3c_fimd.bytes_per_pixel * shift_value);
++ break;
++
++ case S3C_FB_VS_MOVE_UP:
++ if (s3c_fimd.yoffset < s3c_vs_offset)
++ shift_value = s3c_fimd.yoffset;
++ else
++ shift_value = s3c_vs_offset;
++
++ s3c_fimd.yoffset -= shift_value;
++
++ /* For buffer start address */
++ s3c_fimd.vidw00add0b0 = s3c_fimd.vidw00add0b0 - (s3c_fimd.xres_virtual * s3c_fimd.bytes_per_pixel * shift_value);
++ s3c_fimd.vidw00add0b1 = s3c_fimd.vidw00add0b1 - (s3c_fimd.xres_virtual * s3c_fimd.bytes_per_pixel * shift_value);
++ break;
++
++ case S3C_FB_VS_MOVE_DOWN:
++ if ((s3c_vs_info.v_height - (s3c_fimd.yoffset + s3c_vs_info.height)) < (s3c_vs_offset))
++ shift_value = s3c_vs_info.v_height - (s3c_fimd.yoffset + s3c_vs_info.height);
++ else
++ shift_value = s3c_vs_offset;
++
++ s3c_fimd.yoffset += shift_value;
++
++ /* For buffer start address */
++ s3c_fimd.vidw00add0b0 = s3c_fimd.vidw00add0b0 + (s3c_fimd.xres_virtual * s3c_fimd.bytes_per_pixel * shift_value);
++ s3c_fimd.vidw00add0b1 = s3c_fimd.vidw00add0b1 + (s3c_fimd.xres_virtual * s3c_fimd.bytes_per_pixel * shift_value);
++ break;
++
++ default:
++ return -EINVAL;
++ }
++
++ /* End address */
++ s3c_fimd.vidw00add1b0 = S3C_VIDWxxADD1_VBASEL_F(s3c_fimd.vidw00add0b0 + (page_width + offset) * (s3c_fimd.yres));
++ s3c_fimd.vidw00add1b1 = S3C_VIDWxxADD1_VBASEL_F(s3c_fimd.vidw00add0b1 + (page_width + offset) * (s3c_fimd.yres));
++
++ writel(s3c_fimd.vidw00add0b0, S3C_VIDW00ADD0B0);
++ writel(s3c_fimd.vidw00add0b1, S3C_VIDW00ADD0B1);
++ writel(s3c_fimd.vidw00add1b0, S3C_VIDW00ADD1B0);
++ writel(s3c_fimd.vidw00add1b1, S3C_VIDW00ADD1B1);
++
++ return 0;
++}
++#endif
++
++void s3cfb_write_palette(s3c_fb_info_t *fbi)
++{
++ unsigned int i;
++ unsigned long ent;
++
++ fbi->palette_ready = 0;
++
++ writel((s3c_fimd.wpalcon | S3C_WPALCON_PALUPDATEEN), S3C_WPALCON);
++
++ for (i = 0; i < 256; i++) {
++ if ((ent = fbi->palette_buffer[i]) == S3C_FB_PALETTE_BUFF_CLEAR)
++ continue;
++
++ writel(ent, S3C_TFTPAL0(i));
++
++ /* it seems the only way to know exactly
++ * if the palette wrote ok, is to check
++ * to see if the value verifies ok
++ */
++ if (readl(S3C_TFTPAL0(i)) == ent) {
++ fbi->palette_buffer[i] = S3C_FB_PALETTE_BUFF_CLEAR;
++ } else {
++ fbi->palette_ready = 1; /* retry */
++ printk("Retry writing into the palette\n");
++ }
++ }
++
++ writel(s3c_fimd.wpalcon, S3C_WPALCON);
++}
++
++irqreturn_t s3cfb_irq(int irqno, void *param)
++{
++ if (s3c_fb_info[s3c_palette_win].palette_ready)
++ s3cfb_write_palette(&s3c_fb_info[s3c_palette_win]);
++
++ s3c_vsync_info.count++;
++ wake_up_interruptible(&s3c_vsync_info.wait_queue);
++
++ return IRQ_HANDLED;
++}
++
++int s3cfb_init_registers(s3c_fb_info_t *fbi)
++{
++ struct clk *lcd_clock;
++ struct fb_var_screeninfo *var = &fbi->fb.var;
++ unsigned long flags = 0, page_width = 0, offset = 0;
++ unsigned long video_phy_temp_f1 = fbi->screen_dma_f1;
++ unsigned long video_phy_temp_f2 = fbi->screen_dma_f2;
++ int win_num = fbi->win_id;
++
++ /* Initialise LCD with values from hare */
++ local_irq_save(flags);
++
++ page_width = var->xres * s3c_fimd.bytes_per_pixel;
++ offset = (var->xres_virtual - var->xres) * s3c_fimd.bytes_per_pixel;
++
++ if (win_num == 0) {
++ s3c_fimd.vidcon0 = s3c_fimd.vidcon0 & ~(S3C_VIDCON0_ENVID_ENABLE | S3C_VIDCON0_ENVID_F_ENABLE);
++ writel(s3c_fimd.vidcon0, S3C_VIDCON0);
++
++ lcd_clock = clk_get(NULL, "lcd");
++ s3c_fimd.vidcon0 |= S3C_VIDCON0_CLKVAL_F((int) ((clk_get_rate(lcd_clock) / s3c_fimd.pixclock) - 1));
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++ offset = 0;
++ s3c_fimd.vidw00add0b0 = video_phy_temp_f1;
++ s3c_fimd.vidw00add0b1 = video_phy_temp_f2;
++ s3c_fimd.vidw00add1b0 = S3C_VIDWxxADD1_VBASEL_F((unsigned long) video_phy_temp_f1 + (page_width + offset) * (var->yres));
++ s3c_fimd.vidw00add1b1 = S3C_VIDWxxADD1_VBASEL_F((unsigned long) video_phy_temp_f2 + (page_width + offset) * (var->yres));
++#endif
++
++ writel(video_phy_temp_f2, S3C_VIDW00ADD0B1);
++ writel(S3C_VIDWxxADD1_VBASEL_F((unsigned long) video_phy_temp_f2 + (page_width + offset) * (var->yres)), S3C_VIDW00ADD1B1);
++ writel(S3C_VIDWxxADD2_OFFSIZE_F(offset) | (S3C_VIDWxxADD2_PAGEWIDTH_F(page_width)), S3C_VIDW00ADD2B1);
++ }
++
++ writel(video_phy_temp_f1, S3C_VIDW00ADD0B0 + (0x08 * win_num));
++ writel(S3C_VIDWxxADD1_VBASEL_F((unsigned long) video_phy_temp_f1 + (page_width + offset) * (var->yres)), S3C_VIDW00ADD1B0 + (0x08 * win_num));
++ writel(S3C_VIDWxxADD2_OFFSIZE_F(offset) | (S3C_VIDWxxADD2_PAGEWIDTH_F(page_width)), S3C_VIDW00ADD2B0 + (0x08 * win_num));
++
++ switch (win_num) {
++ case 0:
++ writel(s3c_fimd.wincon0, S3C_WINCON0);
++ writel(s3c_fimd.vidcon0, S3C_VIDCON0);
++ writel(s3c_fimd.vidcon1, S3C_VIDCON1);
++ writel(s3c_fimd.vidtcon0, S3C_VIDTCON0);
++ writel(s3c_fimd.vidtcon1, S3C_VIDTCON1);
++ writel(s3c_fimd.vidtcon2, S3C_VIDTCON2);
++ writel(s3c_fimd.vidintcon, S3C_VIDINTCON);
++ writel(s3c_fimd.vidosd0a, S3C_VIDOSD0A);
++ writel(s3c_fimd.vidosd0b, S3C_VIDOSD0B);
++ writel(s3c_fimd.wpalcon, S3C_WPALCON);
++
++ s3cfb_onoff_win(fbi, ON);
++ break;
++
++ case 1:
++ writel(s3c_fimd.wincon1, S3C_WINCON1);
++ writel(s3c_fimd.vidosd1a, S3C_VIDOSD1A);
++ writel(s3c_fimd.vidosd1b, S3C_VIDOSD1B);
++ writel(s3c_fimd.vidosd1c, S3C_VIDOSD1C);
++ writel(s3c_fimd.wpalcon, S3C_WPALCON);
++
++ s3cfb_onoff_win(fbi, OFF);
++ break;
++ }
++
++ local_irq_restore(flags);
++
++ return 0;
++ }
++
++void s3cfb_activate_var(s3c_fb_info_t *fbi, struct fb_var_screeninfo *var)
++{
++ DPRINTK("%s: var->bpp = %d\n", __FUNCTION__, var->bits_per_pixel);
++
++ switch (var->bits_per_pixel) {
++ case 8:
++ s3c_fimd.wincon0 = S3C_WINCONx_BYTSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_8BPP_PAL;
++ s3c_fimd.wincon1 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.bpp = S3C_FB_PIXEL_BPP_8;
++ s3c_fimd.bytes_per_pixel = 1;
++ s3c_fimd.wpalcon = S3C_WPALCON_W0PAL_24BIT;
++ break;
++
++ case 16:
++ s3c_fimd.wincon0 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565;
++ s3c_fimd.wincon1 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.bpp = S3C_FB_PIXEL_BPP_16;
++ s3c_fimd.bytes_per_pixel = 2;
++ break;
++
++ case 24:
++ s3c_fimd.wincon0 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888;
++ s3c_fimd.wincon1 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.bpp = S3C_FB_PIXEL_BPP_24;
++ s3c_fimd.bytes_per_pixel = 4;
++ break;
++
++ case 32:
++ s3c_fimd.bytes_per_pixel = 4;
++ break;
++ }
++
++ /* write new registers */
++ writel(s3c_fimd.wincon0, S3C_WINCON0);
++ writel(s3c_fimd.wincon1, S3C_WINCON1);
++ writel(s3c_fimd.wpalcon, S3C_WPALCON);
++ writel(s3c_fimd.wincon0 | S3C_WINCONx_ENWIN_F_ENABLE, S3C_WINCON0);
++ writel(s3c_fimd.vidcon0 | S3C_VIDCON0_ENVID_ENABLE | S3C_VIDCON0_ENVID_F_ENABLE, S3C_VIDCON0);
++}
++
++/* JJNAHM comment.
++ * We had some problems related to frame buffer address.
++ * We used 2 frame buffers (FB0 and FB1) and GTK used FB1.
++ * When GTK launched, GTK set FB0's address to FB1's address.
++ * (GTK calls s3c_fb_pan_display() and then it calls this s3c_fb_set_lcdaddr())
++ * Even though fbi->win_id is not 0, above original codes set ONLY FB0's address.
++ * So, I modified the codes like below.
++ * It works by fbi->win_id value.
++ * Below codes are not verified yet
++ * and there are nothing about Double buffering features
++ */
++void s3cfb_set_fb_addr(s3c_fb_info_t *fbi)
++{
++ unsigned long video_phy_temp_f1 = fbi->screen_dma_f1;
++ unsigned long start_address, end_address;
++ unsigned int start;
++
++ start = fbi->fb.fix.line_length * fbi->fb.var.yoffset;
++
++ /* for buffer start address and end address */
++ start_address = video_phy_temp_f1 + start;
++ end_address = start_address + (fbi->fb.fix.line_length * fbi->fb.var.yres);
++
++ switch (fbi->win_id)
++ {
++ case 0:
++ s3c_fimd.vidw00add0b0 = start_address;
++ s3c_fimd.vidw00add1b0 = end_address;
++ __raw_writel(s3c_fimd.vidw00add0b0, S3C_VIDW00ADD0B0);
++ __raw_writel(s3c_fimd.vidw00add1b0, S3C_VIDW00ADD1B0);
++ break;
++
++ case 1:
++ s3c_fimd.vidw01add0 = start_address;
++ s3c_fimd.vidw01add1 = end_address;
++ __raw_writel(s3c_fimd.vidw01add0, S3C_VIDW01ADD0);
++ __raw_writel(s3c_fimd.vidw01add1, S3C_VIDW01ADD1);
++ break;
++
++ }
++}
++
++static int s3cfb_set_alpha_level(s3c_fb_info_t *fbi, unsigned int level)
++{
++ unsigned long alpha_val;
++ int win_num = fbi->win_id;
++
++ if (win_num == 0) {
++ printk("WIN0 do not support alpha blending.\n");
++ return -1;
++ }
++
++ alpha_val = S3C_VIDOSDxC_ALPHA1_B(level) | S3C_VIDOSDxC_ALPHA1_G(level) | S3C_VIDOSDxC_ALPHA1_R(level);
++ writel(alpha_val, S3C_VIDOSD1C);
++
++ return 0;
++}
++
++#if 0
++static int s3cfb_set_alpha_mode(s3c_fb_info_t *fbi, int mode, int level)
++{
++ unsigned long alpha_val;
++ int win_num = fbi->win_id;
++
++ if (win_num == 0) {
++ printk("WIN0 do not support alpha blending.\n");
++ return -1;
++ }
++
++ switch (mode) {
++ case 0: /* Plane Blending */
++ writel(readl(S3C_WINCON0 + (0x04 * win_num)) | S3C_WINCONx_BLD_PIX_PLANE, S3C_WINCON0 + (0x04 * win_num));
++ break;
++
++ case 1: /* Pixel Blending & chroma(color) key */
++ writel(readl(S3C_WINCON0 + (0x04 * win_num)) | S3C_WINCONx_BLD_PIX_PIXEL | S3C_WINCONx_ALPHA_SEL_0, S3C_WINCON0 + (0x04 * win_num));
++ break;
++ }
++
++ s3c_osd_alpha_level = level;
++ alpha_val = S3C_VIDOSDxC_ALPHA1_B(s3c_osd_alpha_level) | S3C_VIDOSDxC_ALPHA1_G(s3c_osd_alpha_level) | S3C_VIDOSDxC_ALPHA1_R(s3c_osd_alpha_level);
++ writel(alpha_val, S3C_VIDOSD1C);
++
++ return 0;
++}
++#endif
++
++int s3cfb_set_win_position(s3c_fb_info_t *fbi, int left_x, int top_y, int width, int height)
++{
++ struct fb_var_screeninfo *var= &fbi->fb.var;
++ int win_num = fbi->win_id;
++
++ writel(S3C_VIDOSDxA_OSD_LTX_F(left_x) | S3C_VIDOSDxA_OSD_LTY_F(top_y), S3C_VIDOSD0A + (0x0c * win_num));
++ writel(S3C_VIDOSDxB_OSD_RBX_F(width - 1 + left_x) | S3C_VIDOSDxB_OSD_RBY_F(height - 1 + top_y), S3C_VIDOSD0B + (0x0c * win_num));
++
++ var->xoffset = left_x;
++ var->yoffset = top_y;
++
++ return 0;
++}
++
++int s3cfb_set_win_size(s3c_fb_info_t *fbi, int width, int height)
++{
++ struct fb_var_screeninfo *var= &fbi->fb.var;
++
++ var->xres = width;
++ var->yres = height;
++ var->xres_virtual = width;
++ var->yres_virtual = height;
++
++ return 0;
++}
++
++int s3cfb_set_fb_size(s3c_fb_info_t *fbi)
++{
++ struct fb_var_screeninfo *var= &fbi->fb.var;
++ int win_num = fbi->win_id;
++ unsigned long offset = 0;
++ unsigned long page_width = 0;
++ unsigned long fb_size = 0;
++
++ page_width = var->xres * s3c_fimd.bytes_per_pixel;
++ offset = (var->xres_virtual - var->xres) * s3c_fimd.bytes_per_pixel;
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++ if (win_num == 0)
++ offset=0;
++#endif
++
++ writel(S3C_VIDWxxADD1_VBASEL_F((unsigned long) readl(S3C_VIDW00ADD0B0 + (0x08 * win_num)) + (page_width + offset) * (var->yres)), S3C_VIDW00ADD1B0 + (0x08 * win_num));
++
++ if (win_num == 1)
++ writel(S3C_VIDWxxADD1_VBASEL_F((unsigned long) readl(S3C_VIDW00ADD0B1 + (0x08 * win_num)) + (page_width + offset) * (var->yres)), S3C_VIDW00ADD1B1 + (0x08 * win_num));
++
++ /* size of frame buffer */
++ fb_size = S3C_VIDWxxADD2_OFFSIZE_F(offset) | (S3C_VIDWxxADD2_PAGEWIDTH_F(page_width));
++ writel(fb_size, S3C_VIDW00ADD2B0 + (0x08 * win_num));
++
++ if (win_num == 0)
++ writel(fb_size, S3C_VIDW00ADD2B1);
++
++ return 0;
++}
++
++int s3cfb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
++{
++ s3c_fb_info_t *fbi = container_of(info, s3c_fb_info_t, fb);
++ s3c_win_info_t win_info;
++ s3c_color_key_info_t colkey_info;
++ s3c_color_val_info_t colval_info;
++ s3c_fb_dma_info_t dma_info;
++ struct fb_var_screeninfo *var= &fbi->fb.var;
++ unsigned int crt, alpha_level;
++
++#if defined(CONFIG_FB_S3C_DOUBLE_BUFFERING)
++ unsigned int f_num_val;
++#endif
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++ s3c_vs_info_t vs_info;
++#endif
++
++ switch(cmd){
++ case S3C_FB_GET_INFO:
++ dma_info.map_dma_f1 = fbi->map_dma_f1;
++ dma_info.map_dma_f2 = fbi->map_dma_f2;
++
++ if(copy_to_user((void *) arg, (const void *) &dma_info, sizeof(s3c_fb_dma_info_t)))
++ return -EFAULT;
++ break;
++
++ case S3C_FB_OSD_SET_INFO:
++ if (copy_from_user(&win_info, (s3c_win_info_t *) arg, sizeof(s3c_win_info_t)))
++ return -EFAULT;
++
++ s3cfb_init_win(fbi, win_info.bpp, win_info.left_x, win_info.top_y, win_info.width, win_info.height, OFF);
++ break;
++
++ case S3C_FB_OSD_START:
++ s3cfb_onoff_win(fbi, ON);
++ break;
++
++ case S3C_FB_OSD_STOP:
++ s3cfb_set_alpha_level(fbi, S3C_FB_MAX_ALPHA_LEVEL);
++ s3cfb_onoff_win(fbi, OFF);
++ break;
++
++ case S3C_FB_OSD_ALPHA_UP:
++ alpha_level = readl(S3C_VIDOSD0C + (0x10 * fbi->win_id)) & 0xf;
++
++ if (alpha_level < S3C_FB_MAX_ALPHA_LEVEL)
++ alpha_level++;
++
++ s3cfb_set_alpha_level(fbi, alpha_level);
++ break;
++
++ case S3C_FB_OSD_ALPHA_DOWN:
++ alpha_level = readl(S3C_VIDOSD0C + (0x10 * fbi->win_id)) & 0xf;
++
++ if (alpha_level > 0)
++ alpha_level--;
++
++ s3cfb_set_alpha_level(fbi, alpha_level);
++ break;
++
++ case S3C_FB_OSD_ALPHA_SET:
++ if (copy_from_user(&alpha_level, (int *) arg, sizeof(int)))
++ return -EFAULT;
++
++ if (alpha_level > S3C_FB_MAX_ALPHA_LEVEL)
++ alpha_level = S3C_FB_MAX_ALPHA_LEVEL;
++ else if (alpha_level < 0)
++ alpha_level = 0;
++
++ s3cfb_set_alpha_level(fbi, alpha_level);
++ break;
++
++ case S3C_FB_OSD_MOVE_LEFT:
++ if (var->xoffset > 0)
++ var->xoffset--;
++
++ s3cfb_set_win_position(fbi, var->xoffset, var->yoffset, var->xres, var->yres);
++ break;
++
++ case S3C_FB_OSD_MOVE_RIGHT:
++ if (var->xoffset < (s3c_fimd.width - var->xres))
++ var->xoffset++;
++
++ s3cfb_set_win_position(fbi, var->xoffset, var->yoffset, var->xres, var->yres);
++ break;
++
++ case S3C_FB_OSD_MOVE_UP:
++ if (var->yoffset > 0)
++ var->yoffset--;
++
++ s3cfb_set_win_position(fbi, var->xoffset, var->yoffset, var->xres, var->yres);
++ break;
++
++ case S3C_FB_OSD_MOVE_DOWN:
++ if (var->yoffset < (s3c_fimd.height - var->yres))
++ var->yoffset++;
++
++ s3cfb_set_win_position(fbi, var->xoffset, var->yoffset, var->xres, var->yres);
++ break;
++
++ case FBIO_WAITFORVSYNC:
++ if (get_user(crt, (unsigned int __user *)arg))
++ return -EFAULT;
++
++ return s3cfb_wait_for_vsync();
++
++ case S3C_FB_COLOR_KEY_START:
++ s3cfb_onoff_color_key(fbi, ON);
++ break;
++
++ case S3C_FB_COLOR_KEY_STOP:
++ s3cfb_onoff_color_key(fbi, OFF);
++ break;
++
++ case S3C_FB_COLOR_KEY_ALPHA_START:
++ s3cfb_onoff_color_key_alpha(fbi, ON);
++ break;
++
++ case S3C_FB_COLOR_KEY_ALPHA_STOP:
++ s3cfb_onoff_color_key_alpha(fbi, OFF);
++ break;
++
++ case S3C_FB_COLOR_KEY_SET_INFO:
++ if (copy_from_user(&colkey_info, (s3c_color_key_info_t *) arg, sizeof(s3c_color_key_info_t)))
++ return -EFAULT;
++
++ s3cfb_set_color_key_registers(fbi, colkey_info);
++ break;
++
++ case S3C_FB_COLOR_KEY_VALUE:
++ if (copy_from_user(&colval_info, (s3c_color_val_info_t *) arg, sizeof(s3c_color_val_info_t)))
++ return -EFAULT;
++
++ s3cfb_set_color_value(fbi, colval_info);
++ break;
++
++ case S3C_FB_SET_VSYNC_INT:
++ s3c_fimd.vidintcon &= ~S3C_VIDINTCON0_FRAMESEL0_MASK;
++ s3c_fimd.vidintcon |= S3C_VIDINTCON0_FRAMESEL0_VSYNC;
++
++ if (arg)
++ s3c_fimd.vidintcon |= S3C_VIDINTCON0_INTFRMEN_ENABLE;
++ else
++ s3c_fimd.vidintcon &= ~S3C_VIDINTCON0_INTFRMEN_ENABLE;
++
++ writel(s3c_fimd.vidintcon, S3C_VIDINTCON);
++ break;
++
++ case S3C_FB_GET_BRIGHTNESS:
++ if (copy_to_user((void *)arg, (const void *) &s3c_display_brightness, sizeof(int)))
++ return -EFAULT;
++ break;
++
++#if defined(CONFIG_S3C2450_PWM) || defined(CONFIG_S3C2416_PWM)
++ case S3C_FB_SET_BRIGHTNESS:
++ if (copy_from_user(&brightness, (int *) arg, sizeof(int)))
++ return -EFAULT;
++
++ s3cfb_set_brightness(brightness);
++ break;
++#endif
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++ case S3C_FB_VS_START:
++ s3c_fimd.wincon0 &= ~(S3C_WINCONx_ENWIN_F_ENABLE);
++ writel(s3c_fimd.wincon0 | S3C_WINCONx_ENWIN_F_ENABLE, S3C_WINCON0);
++
++ fbi->fb.var.xoffset = s3c_fimd.xoffset;
++ fbi->fb.var.yoffset = s3c_fimd.yoffset;
++ break;
++
++ case S3C_FB_VS_STOP:
++ break;
++
++ case S3C_FB_VS_SET_INFO:
++ if (copy_from_user(&vs_info, (s3c_vs_info_t *) arg, sizeof(s3c_vs_info_t)))
++ return -EFAULT;
++
++ if (s3cfb_set_vs_info(vs_info)) {
++ printk("Error S3C_FB_VS_SET_INFO\n");
++ return -EINVAL;
++ }
++
++ s3cfb_set_vs_registers(S3C_FB_VS_SET);
++
++ fbi->fb.var.xoffset = s3c_fimd.xoffset;
++ fbi->fb.var.yoffset = s3c_fimd.yoffset;
++ break;
++
++ case S3C_FB_VS_MOVE:
++ s3cfb_set_vs_registers(arg);
++
++ fbi->fb.var.xoffset = s3c_fimd.xoffset;
++ fbi->fb.var.yoffset = s3c_fimd.yoffset;
++ break;
++#endif
++
++#if defined(CONFIG_FB_S3C_DOUBLE_BUFFERING)
++ case S3C_FB_GET_NUM:
++ if (copy_from_user((void *)&f_num_val, (const void *)arg, sizeof(u_int)))
++ return -EFAULT;
++
++ if (copy_to_user((void *)arg, (const void *) &f_num_val, sizeof(u_int)))
++ return -EFAULT;
++
++ break;
++
++ case S3C_FB_CHANGE_REQ:
++ s3cfb_change_buff(0, (int) arg);
++ break;
++#endif
++
++ default:
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++void s3cfb_pre_init(void)
++{
++ /* initialize the fimd specific */
++ s3c_fimd.vidintcon &= ~S3C_VIDINTCON0_FRAMESEL0_MASK;
++ s3c_fimd.vidintcon |= S3C_VIDINTCON0_FRAMESEL0_VSYNC;
++ s3c_fimd.vidintcon |= S3C_VIDINTCON0_INTFRMEN_ENABLE;
++
++ writel(s3c_fimd.vidintcon, S3C_VIDINTCON);
++}
++
++void s3cfb_set_gpio(void)
++{
++ unsigned long val;
++
++ /* enable clock to LCD */
++ val = readl(S3C2443_HCLKCON);
++ val |= S3C2443_HCLKCON_LCDC;
++ writel(val, S3C2443_HCLKCON);
++
++ /* select TFT LCD type */
++ val = readl(S3C2410_MISCCR);
++ val |= (1 << 28);
++ writel(val, S3C2410_MISCCR);
++
++ /* VD */
++ writel(0xaaaa02aa, S3C2410_GPCCON);
++ writel(0xaaaaaaaa, S3C2410_GPDCON);
++ writel(0x0, S3C2410_GPCUP);
++ writel(0x0, S3C2410_GPDUP);
++
++ /* backlight ON */
++ s3c2410_gpio_cfgpin(S3C2410_GPB0, S3C2410_GPB0_OUTP);
++ s3c2410_gpio_setpin(S3C2410_GPB0, 1);
++
++ /* backlight dimming ON */
++ s3c2410_gpio_cfgpin(S3C2410_GPB3, S3C2410_GPB3_OUTP);
++ s3c2410_gpio_setpin(S3C2410_GPB3, 1);
++
++ /* backlight dimming control pull-down disable*/
++ s3c2410_gpio_pullup(S3C2410_GPB3, 0);
++
++ /* module reset */
++ s3c2410_gpio_cfgpin(S3C2410_GPB1, S3C2410_GPB1_OUTP);
++ s3c2410_gpio_setpin(S3C2410_GPB1, 1);
++ mdelay(100);
++
++ s3c2410_gpio_setpin(S3C2410_GPB1, 0);
++ mdelay(10);
++
++ s3c2410_gpio_setpin(S3C2410_GPB1, 1);
++ mdelay(10);
++}
++
++#if defined(CONFIG_PM)
++
++static struct sleep_save s3c_lcd_save[] = {
++};
++
++/*
++ * Suspend
++ */
++int s3cfb_suspend(struct platform_device *dev, pm_message_t state)
++{
++ struct fb_info *fbinfo = platform_get_drvdata(dev);
++ s3c_fb_info_t *info = fbinfo->par;
++
++ s3cfb_stop_lcd();
++ s3c2410_pm_do_save(s3c_lcd_save, ARRAY_SIZE(s3c_lcd_save));
++
++ /* sleep before disabling the clock, we need to ensure
++ * the LCD DMA engine is not going to get back on the bus
++ * before the clock goes off again (bjd) */
++
++ msleep(1);
++ clk_disable(info->clk);
++
++ return 0;
++}
++
++/*
++ * Resume
++ */
++int s3cfb_resume(struct platform_device *dev)
++{
++ struct fb_info *fbinfo = platform_get_drvdata(dev);
++ s3c_fb_info_t *info = fbinfo->par;
++
++ clk_enable(info->clk);
++ msleep(1);
++ s3c2410_pm_do_restore(s3c_lcd_save, ARRAY_SIZE(s3c_lcd_save));
++
++ s3cfb_init_hw();
++ s3cfb_start_lcd();
++
++ return 0;
++}
++
++#else
++
++int s3cfb_suspend(struct platform_device *dev, pm_message_t state)
++{
++ return 0;
++}
++
++int s3cfb_resume(struct platform_device *dev)
++{
++ return 0;
++}
++
++#endif
++
+diff --git a/drivers/video/s3c/s3cfb_fimd4x.c b/drivers/video/s3c/s3cfb_fimd4x.c
+new file mode 100644
+index 0000000..c2ff1e8
+--- /dev/null
++++ b/drivers/video/s3c/s3cfb_fimd4x.c
+@@ -0,0 +1,1295 @@
++/*
++ * drivers/video/s3c/s3c64xxfb.c
++ *
++ * $Id: s3cfb_fimd4x.c,v 1.21 2008/09/29 03:50:47 jsgood Exp $
++ *
++ * Copyright (C) 2008 Jinsung Yang <jsgood.yang@samsung.com>
++ *
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file COPYING in the main directory of this archive for
++ * more details.
++ *
++ * S3C Frame Buffer Driver
++ * based on skeletonfb.c, sa1100fb.h, s3c2410fb.c
++ */
++
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/errno.h>
++#include <linux/string.h>
++#include <linux/mm.h>
++#include <linux/tty.h>
++#include <linux/slab.h>
++#include <linux/delay.h>
++#include <linux/fb.h>
++#include <linux/init.h>
++#include <linux/dma-mapping.h>
++#include <linux/string.h>
++#include <linux/ioctl.h>
++#include <linux/clk.h>
++#include <linux/platform_device.h>
++
++#include <asm/io.h>
++#include <asm/uaccess.h>
++
++#include <asm/mach/map.h>
++#include <asm/arch/gpio.h>
++#include <asm/arch/regs-lcd.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-s3c-clock.h>
++
++#if defined(CONFIG_PM)
++#include <asm/plat-s3c24xx/pm.h>
++#endif
++
++#include "s3cfb.h"
++
++int s3c_vs_offset = S3C_FB_DEFAULT_DISPLAY_OFFSET;
++int s3c_osd_alpha_level = S3C_FB_MAX_ALPHA_LEVEL;
++int s3c_display_brightness = S3C_FB_DEFAULT_BRIGHTNESS;
++static int s3c_palette_win;
++
++s3c_fimd_info_t s3c_fimd = {
++ .vidcon0 = S3C_VIDCON0_INTERLACE_F_PROGRESSIVE | S3C_VIDCON0_VIDOUT_RGB_IF | S3C_VIDCON0_L1_DATA16_SUB_16_MODE | \
++ S3C_VIDCON0_L0_DATA16_MAIN_16_MODE | S3C_VIDCON0_PNRMODE_RGB_P | \
++ S3C_VIDCON0_CLKVALUP_ALWAYS | S3C_VIDCON0_CLKDIR_DIVIDED | S3C_VIDCON0_CLKSEL_F_HCLK | \
++ S3C_VIDCON0_ENVID_DISABLE | S3C_VIDCON0_ENVID_F_DISABLE,
++
++ .dithmode = (S3C_DITHMODE_RDITHPOS_5BIT | S3C_DITHMODE_GDITHPOS_6BIT | S3C_DITHMODE_BDITHPOS_5BIT ) & S3C_DITHMODE_DITHERING_DISABLE,
++
++#if defined (CONFIG_FB_S3C_BPP_8)
++ .wincon0 = S3C_WINCONx_BYTSWP_ENABLE | S3C_WINCONx_BURSTLEN_4WORD | S3C_WINCONx_BPPMODE_F_8BPP_PAL,
++ .wincon1 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_4WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1,
++ .bpp = S3C_FB_PIXEL_BPP_8,
++ .bytes_per_pixel = 1,
++ .wpalcon = S3C_WPALCON_W0PAL_16BIT,
++
++#elif defined (CONFIG_FB_S3C_BPP_16)
++ .wincon0 = S3C_WINCONx_ENLOCAL_DMA | S3C_WINCONx_BUFSEL_1 | S3C_WINCONx_BUFAUTOEN_DISABLE | \
++ S3C_WINCONx_BITSWP_DISABLE | S3C_WINCONx_BYTSWP_DISABLE | S3C_WINCONx_HAWSWP_ENABLE | \
++ S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_ENWIN_F_DISABLE,
++
++ .wincon1 = S3C_WINCONx_ENLOCAL_DMA | S3C_WINCONx_BUFSEL_0 | S3C_WINCONx_BUFAUTOEN_DISABLE | \
++ S3C_WINCONx_BITSWP_DISABLE | S3C_WINCONx_BYTSWP_DISABLE | S3C_WINCONx_HAWSWP_ENABLE | \
++ S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_BPPMODE_F_16BPP_565 | \
++ S3C_WINCONx_ALPHA_SEL_1 | S3C_WINCONx_ENWIN_F_DISABLE,
++
++ .wincon2 = S3C_WINCONx_ENLOCAL_DMA | S3C_WINCONx_BITSWP_DISABLE | S3C_WINCONx_BYTSWP_DISABLE | \
++ S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_4WORD | S3C_WINCONx_BURSTLEN_16WORD | \
++ S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_ALPHA_SEL_1 | S3C_WINCONx_ENWIN_F_DISABLE,
++
++ .wincon3 = S3C_WINCONx_BITSWP_DISABLE | S3C_WINCONx_BYTSWP_DISABLE | S3C_WINCONx_HAWSWP_ENABLE | \
++ S3C_WINCONx_BURSTLEN_4WORD | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BLD_PIX_PLANE | \
++ S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_ALPHA_SEL_1 | S3C_WINCONx_ENWIN_F_DISABLE,
++
++ .wincon4 = S3C_WINCONx_BITSWP_DISABLE | S3C_WINCONx_BYTSWP_DISABLE | S3C_WINCONx_HAWSWP_ENABLE | \
++ S3C_WINCONx_BURSTLEN_4WORD | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BLD_PIX_PLANE |
++ S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_ALPHA_SEL_1 | S3C_WINCONx_ENWIN_F_DISABLE,
++
++ .bpp = S3C_FB_PIXEL_BPP_16,
++ .bytes_per_pixel = 2,
++ .wpalcon = S3C_WPALCON_W0PAL_16BIT,
++
++#elif defined (CONFIG_FB_S3C_BPP_24)
++ .wincon0 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888,
++ .wincon1 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1,
++ .wincon2 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1,
++ .wincon3 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1,
++ .wincon4 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1,
++ .bpp = S3C_FB_PIXEL_BPP_24,
++ .bytes_per_pixel = 4,
++ .wpalcon = S3C_WPALCON_W0PAL_24BIT,
++#endif
++
++ .vidosd1c = S3C_VIDOSDxC_ALPHA1_B(S3C_FB_MAX_ALPHA_LEVEL) | S3C_VIDOSDxC_ALPHA1_G(S3C_FB_MAX_ALPHA_LEVEL) | S3C_VIDOSDxC_ALPHA1_R(S3C_FB_MAX_ALPHA_LEVEL),
++ .vidosd2c = S3C_VIDOSDxC_ALPHA1_B(S3C_FB_MAX_ALPHA_LEVEL) | S3C_VIDOSDxC_ALPHA1_G(S3C_FB_MAX_ALPHA_LEVEL) | S3C_VIDOSDxC_ALPHA1_R(S3C_FB_MAX_ALPHA_LEVEL),
++ .vidosd3c = S3C_VIDOSDxC_ALPHA1_B(S3C_FB_MAX_ALPHA_LEVEL) | S3C_VIDOSDxC_ALPHA1_G(S3C_FB_MAX_ALPHA_LEVEL) | S3C_VIDOSDxC_ALPHA1_R(S3C_FB_MAX_ALPHA_LEVEL),
++ .vidosd4c = S3C_VIDOSDxC_ALPHA1_B(S3C_FB_MAX_ALPHA_LEVEL) | S3C_VIDOSDxC_ALPHA1_G(S3C_FB_MAX_ALPHA_LEVEL) | S3C_VIDOSDxC_ALPHA1_R(S3C_FB_MAX_ALPHA_LEVEL),
++
++ .vidintcon0 = S3C_VIDINTCON0_FRAMESEL0_VSYNC | S3C_VIDINTCON0_FRAMESEL1_NONE | S3C_VIDINTCON0_INTFRMEN_DISABLE | \
++ S3C_VIDINTCON0_FIFOSEL_WIN0 | S3C_VIDINTCON0_FIFOLEVEL_25 | S3C_VIDINTCON0_INTFIFOEN_DISABLE | S3C_VIDINTCON0_INTEN_ENABLE,
++ .vidintcon1 = 0,
++
++ .xoffset = 0,
++ .yoffset = 0,
++
++ .w1keycon0 = S3C_WxKEYCON0_KEYBLEN_DISABLE | S3C_WxKEYCON0_KEYEN_F_DISABLE | S3C_WxKEYCON0_DIRCON_MATCH_FG_IMAGE | S3C_WxKEYCON0_COMPKEY(0x0),
++ .w1keycon1 = S3C_WxKEYCON1_COLVAL(0xffffff),
++ .w2keycon0 = S3C_WxKEYCON0_KEYBLEN_DISABLE | S3C_WxKEYCON0_KEYEN_F_DISABLE | S3C_WxKEYCON0_DIRCON_MATCH_FG_IMAGE | S3C_WxKEYCON0_COMPKEY(0x0),
++ .w2keycon1 = S3C_WxKEYCON1_COLVAL(0xffffff),
++ .w3keycon0 = S3C_WxKEYCON0_KEYBLEN_DISABLE | S3C_WxKEYCON0_KEYEN_F_DISABLE | S3C_WxKEYCON0_DIRCON_MATCH_FG_IMAGE | S3C_WxKEYCON0_COMPKEY(0x0),
++ .w3keycon1 = S3C_WxKEYCON1_COLVAL(0xffffff),
++ .w4keycon0 = S3C_WxKEYCON0_KEYBLEN_DISABLE | S3C_WxKEYCON0_KEYEN_F_DISABLE | S3C_WxKEYCON0_DIRCON_MATCH_FG_IMAGE | S3C_WxKEYCON0_COMPKEY(0x0),
++ .w4keycon1 = S3C_WxKEYCON1_COLVAL(0xffffff),
++
++ .sync = 0,
++ .cmap_static = 1,
++};
++
++#if defined(CONFIG_S3C6410_PWM)
++void s3cfb_set_brightness(int val)
++{
++ int channel = 1; /* must use channel-1 */
++ int usec = 0; /* don't care value */
++ unsigned long tcnt = 1000;
++ unsigned long tcmp = 0;
++
++ if (val < 0)
++ val = 0;
++
++ if (val > S3C_FB_MAX_BRIGHTNESS)
++ val = S3C_FB_MAX_BRIGHTNESS;
++
++ s3c_display_brightness = val;
++ tcmp = val * 5;
++
++ s3c6410_timer_setup (channel, usec, tcnt, tcmp);
++}
++#endif
++
++#if defined(CONFIG_FB_S3C_DOUBLE_BUFFERING)
++
++static void s3cfb_change_buff(int req_win, int req_fb)
++{
++ switch (req_win) {
++ case 0:
++ if (req_fb == 0)
++ s3c_fimd.wincon0 &= ~(1 << 20);
++ else
++ s3c_fimd.wincon0 |= (1 << 20);
++
++ writel(s3c_fimd.wincon0 | S3C_WINCONx_ENWIN_F_ENABLE, S3C_WINCON0);
++ break;
++
++ case 1:
++ if (req_fb == 0)
++ s3c_fimd.wincon1 &= ~(1 << 20);
++ else
++ s3c_fimd.wincon1 |= (1 << 20);
++
++ writel(s3c_fimd.wincon1 | S3C_WINCONx_ENWIN_F_ENABLE, S3C_WINCON1);
++ break;
++
++ default:
++ break;
++ }
++}
++
++#endif
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++static int s3cfb_set_vs_registers(int vs_cmd)
++{
++ int page_width, offset;
++ int shift_value;
++
++ page_width = s3c_fimd.xres * s3c_fimd.bytes_per_pixel;
++ offset = (s3c_fimd.xres_virtual - s3c_fimd.xres) * s3c_fimd.bytes_per_pixel;
++
++ switch (vs_cmd){
++ case S3C_FB_VS_SET:
++ /* size of buffer */
++ s3c_fimd.vidw00add2 = S3C_VIDWxxADD2_OFFSIZE_F(offset) | S3C_VIDWxxADD2_PAGEWIDTH_F(page_width);
++ writel(s3c_fimd.vidw00add2, S3C_VIDW00ADD2);
++ break;
++
++ case S3C_FB_VS_MOVE_LEFT:
++ if (s3c_fimd.xoffset < s3c_vs_offset)
++ shift_value = s3c_fimd.xoffset;
++ else
++ shift_value = s3c_vs_offset;
++
++ s3c_fimd.xoffset -= shift_value;
++
++ /* For buffer start address */
++ s3c_fimd.vidw00add0b0 = s3c_fimd.vidw00add0b0 - (s3c_fimd.bytes_per_pixel * shift_value);
++ s3c_fimd.vidw00add0b1 = s3c_fimd.vidw00add0b1 - (s3c_fimd.bytes_per_pixel * shift_value);
++ break;
++
++ case S3C_FB_VS_MOVE_RIGHT:
++ if ((s3c_vs_info.v_width - (s3c_fimd.xoffset + s3c_vs_info.width)) < (s3c_vs_offset))
++ shift_value = s3c_vs_info.v_width - (s3c_fimd.xoffset + s3c_vs_info.width);
++ else
++ shift_value = s3c_vs_offset;
++
++ s3c_fimd.xoffset += shift_value;
++
++ /* For buffer start address */
++ s3c_fimd.vidw00add0b0 = s3c_fimd.vidw00add0b0 + (s3c_fimd.bytes_per_pixel * shift_value);
++ s3c_fimd.vidw00add0b1 = s3c_fimd.vidw00add0b1 + (s3c_fimd.bytes_per_pixel * shift_value);
++ break;
++
++ case S3C_FB_VS_MOVE_UP:
++ if (s3c_fimd.yoffset < s3c_vs_offset)
++ shift_value = s3c_fimd.yoffset;
++ else
++ shift_value = s3c_vs_offset;
++
++ s3c_fimd.yoffset -= shift_value;
++
++ /* For buffer start address */
++ s3c_fimd.vidw00add0b0 = s3c_fimd.vidw00add0b0 - (s3c_fimd.xres_virtual * s3c_fimd.bytes_per_pixel * shift_value);
++ s3c_fimd.vidw00add0b1 = s3c_fimd.vidw00add0b1 - (s3c_fimd.xres_virtual * s3c_fimd.bytes_per_pixel * shift_value);
++ break;
++
++ case S3C_FB_VS_MOVE_DOWN:
++ if ((s3c_vs_info.v_height - (s3c_fimd.yoffset + s3c_vs_info.height)) < (s3c_vs_offset))
++ shift_value = s3c_vs_info.v_height - (s3c_fimd.yoffset + s3c_vs_info.height);
++ else
++ shift_value = s3c_vs_offset;
++
++ s3c_fimd.yoffset += shift_value;
++
++ /* For buffer start address */
++ s3c_fimd.vidw00add0b0 = s3c_fimd.vidw00add0b0 + (s3c_fimd.xres_virtual * s3c_fimd.bytes_per_pixel * shift_value);
++ s3c_fimd.vidw00add0b1 = s3c_fimd.vidw00add0b1 + (s3c_fimd.xres_virtual * s3c_fimd.bytes_per_pixel * shift_value);
++ break;
++
++ default:
++ return -EINVAL;
++ }
++
++ /* End address */
++ s3c_fimd.vidw00add1b0 = S3C_VIDWxxADD1_VBASEL_F(s3c_fimd.vidw00add0b0 + (page_width + offset) * (s3c_fimd.yres));
++ s3c_fimd.vidw00add1b1 = S3C_VIDWxxADD1_VBASEL_F(s3c_fimd.vidw00add0b1 + (page_width + offset) * (s3c_fimd.yres));
++
++ writel(s3c_fimd.vidw00add0b0, S3C_VIDW00ADD0B0);
++ writel(s3c_fimd.vidw00add0b1, S3C_VIDW00ADD0B1);
++ writel(s3c_fimd.vidw00add1b0, S3C_VIDW00ADD1B0);
++ writel(s3c_fimd.vidw00add1b1, S3C_VIDW00ADD1B1);
++
++ return 0;
++}
++#endif
++
++void s3cfb_write_palette(s3c_fb_info_t *fbi)
++{
++ unsigned int i;
++ unsigned long ent;
++ unsigned int win_num = fbi->win_id;
++
++ fbi->palette_ready = 0;
++
++ writel((s3c_fimd.wpalcon | S3C_WPALCON_PALUPDATEEN), S3C_WPALCON);
++
++ for (i = 0; i < 256; i++) {
++ if ((ent = fbi->palette_buffer[i]) == S3C_FB_PALETTE_BUFF_CLEAR)
++ continue;
++
++ writel(ent, S3C_TFTPAL0(i) + 0x400 * win_num);
++
++ /* it seems the only way to know exactly
++ * if the palette wrote ok, is to check
++ * to see if the value verifies ok
++ */
++ if (readl(S3C_TFTPAL0(i) + 0x400 * win_num) == ent) {
++ fbi->palette_buffer[i] = S3C_FB_PALETTE_BUFF_CLEAR;
++ } else {
++ fbi->palette_ready = 1; /* retry */
++ printk("Retry writing into the palette\n");
++ }
++ }
++
++ writel(s3c_fimd.wpalcon, S3C_WPALCON);
++}
++
++irqreturn_t s3cfb_irq(int irqno, void *param)
++{
++ unsigned long buffer_size = 0;
++ unsigned int i;
++ unsigned int buffer_page_offset, buffer_page_width;
++ unsigned int fb_start_address, fb_end_address;
++
++ if (s3c_fb_info[s3c_palette_win].palette_ready)
++ s3cfb_write_palette(&s3c_fb_info[s3c_palette_win]);
++
++ for (i = 0; i < CONFIG_FB_S3C_NUM; i++) {
++ if (s3c_fb_info[i].next_fb_info_change_req) {
++ /* fb variable setting */
++ s3c_fb_info[i].fb.fix.smem_start = s3c_fb_info[i].next_fb_info.phy_start_addr;
++
++ s3c_fb_info[i].fb.fix.line_length = s3c_fb_info[i].next_fb_info.xres_virtual *
++ s3c_fimd.bytes_per_pixel;
++
++ s3c_fb_info[i].fb.fix.smem_len = s3c_fb_info[i].next_fb_info.xres_virtual *
++ s3c_fb_info[i].next_fb_info.yres_virtual *
++ s3c_fimd.bytes_per_pixel;
++
++ s3c_fb_info[i].fb.var.xres = s3c_fb_info[i].next_fb_info.xres;
++ s3c_fb_info[i].fb.var.yres = s3c_fb_info[i].next_fb_info.yres;
++ s3c_fb_info[i].fb.var.xres_virtual = s3c_fb_info[i].next_fb_info.xres_virtual;
++ s3c_fb_info[i].fb.var.yres_virtual= s3c_fb_info[i].next_fb_info.yres_virtual;
++ s3c_fb_info[i].fb.var.xoffset = s3c_fb_info[i].next_fb_info.xoffset;
++ s3c_fb_info[i].fb.var.yoffset = s3c_fb_info[i].next_fb_info.yoffset;
++
++ s3c_fb_info[i].lcd_offset_x= s3c_fb_info[i].next_fb_info.lcd_offset_x;
++ s3c_fb_info[i].lcd_offset_y= s3c_fb_info[i].next_fb_info.lcd_offset_y;
++
++
++ /* fb start / end address setting */
++ fb_start_address = s3c_fb_info[i].next_fb_info.phy_start_addr +
++ s3c_fb_info[i].fb.fix.line_length * s3c_fb_info[i].next_fb_info.yoffset +
++ s3c_fb_info[i].next_fb_info.xoffset * s3c_fimd.bytes_per_pixel;
++
++ fb_end_address = fb_start_address + s3c_fb_info[i].fb.fix.line_length *
++ s3c_fb_info[i].next_fb_info.yres;
++
++ writel(fb_start_address, S3C_VIDW00ADD0B0 + 0x8 * i);
++ writel(S3C_VIDWxxADD1_VBASEL_F(fb_end_address), S3C_VIDW00ADD1B0 + 0x8 * i);
++
++
++ /* fb virtual / visible size setting */
++ buffer_page_width = s3c_fb_info[i].next_fb_info.xres * s3c_fimd.bytes_per_pixel;
++
++ buffer_page_offset = (s3c_fb_info[i].next_fb_info.xres_virtual -
++ s3c_fb_info[i].next_fb_info.xres) * s3c_fimd.bytes_per_pixel;
++
++ buffer_size = S3C_VIDWxxADD2_OFFSIZE_F(buffer_page_offset) |
++ (S3C_VIDWxxADD2_PAGEWIDTH_F(buffer_page_width));
++
++ writel(buffer_size, S3C_VIDW00ADD2 + 0x04 * i);
++
++ /* LCD position setting */
++ writel(S3C_VIDOSDxA_OSD_LTX_F(s3c_fb_info[i].next_fb_info.lcd_offset_x) |
++ S3C_VIDOSDxA_OSD_LTY_F(s3c_fb_info[i].next_fb_info.lcd_offset_y), S3C_VIDOSD0A+(0x10 * i));
++
++ writel(S3C_VIDOSDxB_OSD_RBX_F(s3c_fb_info[i].next_fb_info.lcd_offset_x - 1 + s3c_fb_info[i].next_fb_info.xres) |
++ S3C_VIDOSDxB_OSD_RBY_F(s3c_fb_info[i].next_fb_info.lcd_offset_y - 1 + s3c_fb_info[i].next_fb_info.yres),
++ S3C_VIDOSD0B + (0x10 * i));
++
++
++ /* fb size setting */
++ if (i == 0)
++ writel(S3C_VIDOSD0C_OSDSIZE(s3c_fb_info[i].next_fb_info.xres * s3c_fb_info[i].next_fb_info.yres), S3C_VIDOSD0C);
++ else if (i == 1)
++ writel(S3C_VIDOSD0C_OSDSIZE(s3c_fb_info[i].next_fb_info.xres * s3c_fb_info[i].next_fb_info.yres), S3C_VIDOSD1D);
++ else if (i == 2)
++ writel(S3C_VIDOSD0C_OSDSIZE(s3c_fb_info[i].next_fb_info.xres * s3c_fb_info[i].next_fb_info.yres), S3C_VIDOSD2D);
++
++ s3c_fb_info[i].next_fb_info_change_req = 0;
++ }
++ }
++
++ /* for clearing the interrupt source */
++ writel(readl(S3C_VIDINTCON1), S3C_VIDINTCON1);
++
++ s3c_vsync_info.count++;
++ wake_up_interruptible(&s3c_vsync_info.wait_queue);
++
++ return IRQ_HANDLED;
++}
++
++void s3cfb_enable_local_post(int in_yuv)
++{
++ unsigned int value;
++
++ s3c_fimd.wincon0 &= ~(1 << 22 | 1 << 13);
++ value = S3C_WINCONx_ENLOCAL_POST | S3C_WINCONx_ENWIN_F_ENABLE;
++
++ if (in_yuv)
++ value |= S3C_WINCONx_INRGB_YUV;
++
++ writel(s3c_fimd.wincon0 | value, S3C_WINCON0);
++}
++
++EXPORT_SYMBOL(s3cfb_enable_local_post);
++
++void s3cfb_enable_dma(void)
++{
++ u32 value;
++
++ s3c_fimd.wincon0 &= ~((1<<22)| (1<<13));
++ value = S3C_WINCONx_ENLOCAL_DMA | S3C_WINCONx_ENWIN_F_ENABLE;
++
++ __raw_writel(s3c_fimd.wincon0 | value, S3C_WINCON0);
++}
++
++EXPORT_SYMBOL(s3cfb_enable_dma);
++
++int s3cfb_init_registers(s3c_fb_info_t *fbi)
++{
++ struct clk *lcd_clock;
++ struct fb_var_screeninfo *var = &fbi->fb.var;
++ unsigned long flags = 0, page_width = 0, offset = 0;
++ unsigned long video_phy_temp_f1 = fbi->screen_dma_f1;
++ unsigned long video_phy_temp_f2 = fbi->screen_dma_f2;
++ int win_num = fbi->win_id;
++
++ /* Initialise LCD with values from hare */
++ local_irq_save(flags);
++
++ page_width = var->xres * s3c_fimd.bytes_per_pixel;
++ offset = (var->xres_virtual - var->xres) * s3c_fimd.bytes_per_pixel;
++
++ if (win_num == 0) {
++ s3c_fimd.vidcon0 = s3c_fimd.vidcon0 & ~(S3C_VIDCON0_ENVID_ENABLE | S3C_VIDCON0_ENVID_F_ENABLE);
++ writel(s3c_fimd.vidcon0, S3C_VIDCON0);
++
++ lcd_clock = clk_get(NULL, "lcd");
++ s3c_fimd.vidcon0 |= S3C_VIDCON0_CLKVAL_F((int) ((clk_get_rate(lcd_clock) / s3c_fimd.pixclock) - 1));
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++ offset = 0;
++ s3c_fimd.vidw00add0b0 = video_phy_temp_f1;
++ s3c_fimd.vidw00add0b1 = video_phy_temp_f2;
++ s3c_fimd.vidw00add1b0 = S3C_VIDWxxADD1_VBASEL_F((unsigned long) video_phy_temp_f1 + (page_width + offset) * (var->yres));
++ s3c_fimd.vidw00add1b1 = S3C_VIDWxxADD1_VBASEL_F((unsigned long) video_phy_temp_f2 + (page_width + offset) * (var->yres));
++#endif
++ }
++
++ writel(video_phy_temp_f1, S3C_VIDW00ADD0B0 + (0x08 * win_num));
++ writel(S3C_VIDWxxADD1_VBASEL_F((unsigned long) video_phy_temp_f1 + (page_width + offset) * (var->yres)), S3C_VIDW00ADD1B0 + (0x08 * win_num));
++ writel(S3C_VIDWxxADD2_OFFSIZE_F(offset) | (S3C_VIDWxxADD2_PAGEWIDTH_F(page_width)), S3C_VIDW00ADD2 + (0x04 * win_num));
++
++ if (win_num < 2) {
++ writel(video_phy_temp_f2, S3C_VIDW00ADD0B1 + (0x08 * win_num));
++ writel(S3C_VIDWxxADD1_VBASEL_F((unsigned long) video_phy_temp_f2 + (page_width + offset) * (var->yres)), S3C_VIDW00ADD1B1 + (0x08 * win_num));
++ }
++
++ switch (win_num) {
++ case 0:
++ writel(s3c_fimd.wincon0, S3C_WINCON0);
++ writel(s3c_fimd.vidcon0, S3C_VIDCON0);
++ writel(s3c_fimd.vidcon1, S3C_VIDCON1);
++ writel(s3c_fimd.vidtcon0, S3C_VIDTCON0);
++ writel(s3c_fimd.vidtcon1, S3C_VIDTCON1);
++ writel(s3c_fimd.vidtcon2, S3C_VIDTCON2);
++ writel(s3c_fimd.dithmode, S3C_DITHMODE);
++ writel(s3c_fimd.vidintcon0, S3C_VIDINTCON0);
++ writel(s3c_fimd.vidintcon1, S3C_VIDINTCON1);
++ writel(s3c_fimd.vidosd0a, S3C_VIDOSD0A);
++ writel(s3c_fimd.vidosd0b, S3C_VIDOSD0B);
++ writel(s3c_fimd.vidosd0c, S3C_VIDOSD0C);
++ writel(s3c_fimd.wpalcon, S3C_WPALCON);
++
++ s3cfb_onoff_win(fbi, ON);
++ break;
++
++ case 1:
++ writel(s3c_fimd.wincon1, S3C_WINCON1);
++ writel(s3c_fimd.vidosd1a, S3C_VIDOSD1A);
++ writel(s3c_fimd.vidosd1b, S3C_VIDOSD1B);
++ writel(s3c_fimd.vidosd1c, S3C_VIDOSD1C);
++ writel(s3c_fimd.vidosd1d, S3C_VIDOSD1D);
++ writel(s3c_fimd.wpalcon, S3C_WPALCON);
++
++ s3cfb_onoff_win(fbi, OFF);
++ break;
++
++ case 2:
++ writel(s3c_fimd.wincon2, S3C_WINCON2);
++ writel(s3c_fimd.vidosd2a, S3C_VIDOSD2A);
++ writel(s3c_fimd.vidosd2b, S3C_VIDOSD2B);
++ writel(s3c_fimd.vidosd2c, S3C_VIDOSD2C);
++ writel(s3c_fimd.vidosd2d, S3C_VIDOSD2D);
++ writel(s3c_fimd.wpalcon, S3C_WPALCON);
++
++ s3cfb_onoff_win(fbi, OFF);
++ break;
++
++ case 3:
++ writel(s3c_fimd.wincon3, S3C_WINCON3);
++ writel(s3c_fimd.vidosd3a, S3C_VIDOSD3A);
++ writel(s3c_fimd.vidosd3b, S3C_VIDOSD3B);
++ writel(s3c_fimd.vidosd3c, S3C_VIDOSD3C);
++ writel(s3c_fimd.wpalcon, S3C_WPALCON);
++
++ s3cfb_onoff_win(fbi, OFF);
++ break;
++
++ case 4:
++ writel(s3c_fimd.wincon4, S3C_WINCON4);
++ writel(s3c_fimd.vidosd4a, S3C_VIDOSD4A);
++ writel(s3c_fimd.vidosd4b, S3C_VIDOSD4B);
++ writel(s3c_fimd.vidosd4c, S3C_VIDOSD4C);
++ writel(s3c_fimd.wpalcon, S3C_WPALCON);
++
++ s3cfb_onoff_win(fbi, OFF);
++ break;
++ }
++
++ local_irq_restore(flags);
++
++ return 0;
++ }
++
++void s3cfb_activate_var(s3c_fb_info_t *fbi, struct fb_var_screeninfo *var)
++{
++ DPRINTK("%s: var->bpp = %d\n", __FUNCTION__, var->bits_per_pixel);
++
++ switch (var->bits_per_pixel) {
++ case 8:
++ s3c_fimd.wincon0 = S3C_WINCONx_BYTSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_8BPP_PAL;
++ s3c_fimd.wincon1 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.wincon2 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.wincon3 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.wincon4 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.bpp = S3C_FB_PIXEL_BPP_8;
++ s3c_fimd.bytes_per_pixel = 1;
++ s3c_fimd.wpalcon = S3C_WPALCON_W0PAL_16BIT;
++ break;
++
++ case 16:
++ s3c_fimd.wincon0 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565;
++ s3c_fimd.wincon1 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.wincon2 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.wincon3 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.wincon4 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.bpp = S3C_FB_PIXEL_BPP_16;
++ s3c_fimd.bytes_per_pixel = 2;
++ break;
++
++ case 24:
++ s3c_fimd.wincon0 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888;
++ s3c_fimd.wincon1 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.wincon2 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.wincon3 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.wincon4 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.bpp = S3C_FB_PIXEL_BPP_24;
++ s3c_fimd.bytes_per_pixel = 4;
++ break;
++
++ case 32:
++ s3c_fimd.bytes_per_pixel = 4;
++ break;
++ }
++
++ /* write new registers */
++ writel(s3c_fimd.wincon0, S3C_WINCON0);
++ writel(s3c_fimd.wincon1, S3C_WINCON1);
++ writel(s3c_fimd.wincon2, S3C_WINCON2);
++ writel(s3c_fimd.wincon3, S3C_WINCON3);
++ writel(s3c_fimd.wincon4, S3C_WINCON4);
++ writel(s3c_fimd.wpalcon, S3C_WPALCON);
++ writel(s3c_fimd.wincon0 | S3C_WINCONx_ENWIN_F_ENABLE, S3C_WINCON0);
++ writel(s3c_fimd.vidcon0 | S3C_VIDCON0_ENVID_ENABLE | S3C_VIDCON0_ENVID_F_ENABLE, S3C_VIDCON0);
++}
++
++/* JJNAHM comment.
++ * We had some problems related to frame buffer address.
++ * We used 2 frame buffers (FB0 and FB1) and GTK used FB1.
++ * When GTK launched, GTK set FB0's address to FB1's address.
++ * (GTK calls s3c_fb_pan_display() and then it calls this s3c_fb_set_lcdaddr())
++ * Even though fbi->win_id is not 0, above original codes set ONLY FB0's address.
++ * So, I modified the codes like below.
++ * It works by fbi->win_id value.
++ * Below codes are not verified yet
++ * and there are nothing about Double buffering features
++ */
++void s3cfb_set_fb_addr(s3c_fb_info_t *fbi)
++{
++ unsigned long video_phy_temp_f1 = fbi->screen_dma_f1;
++ unsigned long start_address, end_address;
++ unsigned int start;
++
++ start = fbi->fb.fix.line_length * fbi->fb.var.yoffset;
++
++ /* for buffer start address and end address */
++ start_address = video_phy_temp_f1 + start;
++ end_address = start_address + (fbi->fb.fix.line_length * fbi->fb.var.yres);
++
++ switch (fbi->win_id)
++ {
++ case 0:
++ s3c_fimd.vidw00add0b0 = start_address;
++ s3c_fimd.vidw00add1b0 = end_address;
++ __raw_writel(s3c_fimd.vidw00add0b0, S3C_VIDW00ADD0B0);
++ __raw_writel(s3c_fimd.vidw00add1b0, S3C_VIDW00ADD1B0);
++ break;
++
++ case 1:
++ s3c_fimd.vidw01add0b0 = start_address;
++ s3c_fimd.vidw01add1b0 = end_address;
++ __raw_writel(s3c_fimd.vidw01add0b0, S3C_VIDW01ADD0B0);
++ __raw_writel(s3c_fimd.vidw01add1b0, S3C_VIDW01ADD1B0);
++ break;
++
++ case 2:
++ s3c_fimd.vidw02add0 = start_address;
++ s3c_fimd.vidw02add1 = end_address;
++ __raw_writel(s3c_fimd.vidw02add0, S3C_VIDW02ADD0);
++ __raw_writel(s3c_fimd.vidw02add1, S3C_VIDW02ADD1);
++ break;
++
++ case 3:
++ s3c_fimd.vidw03add0 = start_address;
++ s3c_fimd.vidw03add1 = end_address;
++ __raw_writel(s3c_fimd.vidw03add0, S3C_VIDW03ADD0);
++ __raw_writel(s3c_fimd.vidw03add1, S3C_VIDW03ADD1);
++ break;
++
++ case 4:
++ s3c_fimd.vidw04add0 = start_address;
++ s3c_fimd.vidw04add1 = end_address;
++ __raw_writel(s3c_fimd.vidw04add0, S3C_VIDW04ADD0);
++ __raw_writel(s3c_fimd.vidw04add1, S3C_VIDW04ADD1);
++ break;
++ }
++}
++
++static int s3cfb_set_alpha_level(s3c_fb_info_t *fbi, unsigned int level, unsigned int alpha_index)
++{
++ unsigned long alpha_val;
++ int win_num = fbi->win_id;
++
++ if (win_num == 0) {
++ printk("WIN0 do not support alpha blending.\n");
++ return -1;
++ }
++
++ alpha_val = readl(S3C_VIDOSD0C+(0x10 * win_num));
++
++ if (alpha_index == 0) {
++ alpha_val &= ~(S3C_VIDOSDxC_ALPHA0_B(0xf) | S3C_VIDOSDxC_ALPHA0_G(0xf) | S3C_VIDOSDxC_ALPHA0_R(0xf));
++ alpha_val |= S3C_VIDOSDxC_ALPHA0_B(level) | S3C_VIDOSDxC_ALPHA0_G(level) | S3C_VIDOSDxC_ALPHA0_R(level);
++ } else {
++ alpha_val &= ~(S3C_VIDOSDxC_ALPHA1_B(0xf) | S3C_VIDOSDxC_ALPHA1_G(0xf) | S3C_VIDOSDxC_ALPHA1_R(0xf));
++ alpha_val = S3C_VIDOSDxC_ALPHA1_B(level) | S3C_VIDOSDxC_ALPHA1_G(level) | S3C_VIDOSDxC_ALPHA1_R(level);
++ }
++
++ writel(alpha_val, S3C_VIDOSD0C + (0x10 * win_num));
++
++ return 0;
++}
++
++int s3cfb_set_alpha_mode(s3c_fb_info_t *fbi, int mode)
++{
++ unsigned long alpha_mode;
++ int win_num = fbi->win_id;
++
++ if (win_num == 0) {
++ printk("WIN0 do not support alpha blending.\n");
++ return -1;
++ }
++
++ alpha_mode = readl(S3C_WINCON0 + (0x04 * win_num));
++ alpha_mode &= ~(S3C_WINCONx_BLD_PIX_PIXEL | S3C_WINCONx_ALPHA_SEL_1);
++
++ switch (mode) {
++ case 0: /* Plane Blending */
++ writel(alpha_mode | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1, S3C_WINCON0 + (0x04 * win_num));
++ break;
++
++ case 1: /* Pixel Blending & chroma(color) key */
++ writel(alpha_mode | S3C_WINCONx_BLD_PIX_PIXEL | S3C_WINCONx_ALPHA_SEL_0, S3C_WINCON0 + (0x04 * win_num));
++ break;
++ }
++
++ return 0;
++}
++
++int s3cfb_set_win_position(s3c_fb_info_t *fbi, int left_x, int top_y, int width, int height)
++{
++ struct fb_var_screeninfo *var= &fbi->fb.var;
++ int win_num = fbi->win_id;
++
++ writel(S3C_VIDOSDxA_OSD_LTX_F(left_x) | S3C_VIDOSDxA_OSD_LTY_F(top_y), S3C_VIDOSD0A + (0x10 * win_num));
++ writel(S3C_VIDOSDxB_OSD_RBX_F(width - 1 + left_x) | S3C_VIDOSDxB_OSD_RBY_F(height - 1 + top_y), S3C_VIDOSD0B + (0x10 * win_num));
++
++ var->xoffset = left_x;
++ var->yoffset = top_y;
++
++ return 0;
++}
++
++int s3cfb_set_win_size(s3c_fb_info_t *fbi, int width, int height)
++{
++ struct fb_var_screeninfo *var= &fbi->fb.var;
++ int win_num = fbi->win_id;
++
++ if (win_num == 1)
++ writel(S3C_VIDOSD0C_OSDSIZE(width * height), S3C_VIDOSD1D);
++
++ else if (win_num == 2)
++ writel(S3C_VIDOSD0C_OSDSIZE(width * height), S3C_VIDOSD2D);
++
++ var->xres = width;
++ var->yres = height;
++ var->xres_virtual = width;
++ var->yres_virtual = height;
++
++ return 0;
++}
++
++int s3cfb_set_fb_size(s3c_fb_info_t *fbi)
++{
++ struct fb_var_screeninfo *var= &fbi->fb.var;
++ int win_num = fbi->win_id;
++ unsigned long offset = 0;
++ unsigned long page_width = 0;
++ unsigned long fb_size = 0;
++
++ page_width = var->xres * s3c_fimd.bytes_per_pixel;
++ offset = (var->xres_virtual - var->xres) * s3c_fimd.bytes_per_pixel;
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++ if (win_num == 0)
++ offset=0;
++#endif
++
++ writel(S3C_VIDWxxADD1_VBASEL_F((unsigned long) readl(S3C_VIDW00ADD0B0 + (0x08 * win_num)) + (page_width + offset) * (var->yres)), S3C_VIDW00ADD1B0 + (0x08 * win_num));
++
++ if (win_num == 1)
++ writel(S3C_VIDWxxADD1_VBASEL_F((unsigned long) readl(S3C_VIDW00ADD0B1 + (0x08 * win_num)) + (page_width + offset) * (var->yres)), S3C_VIDW00ADD1B1 + (0x08 * win_num));
++
++ /* size of frame buffer */
++ fb_size = S3C_VIDWxxADD2_OFFSIZE_F(offset) | (S3C_VIDWxxADD2_PAGEWIDTH_F(page_width));
++
++ writel(fb_size, S3C_VIDW00ADD2 + (0x04 * win_num));
++
++ return 0;
++}
++
++void s3cfb_set_output_path(int out)
++{
++ unsigned int tmp;
++
++ tmp = readl(S3C_VIDCON0);
++
++ /* if output mode is LCD mode, Scan mode always should be progressive mode */
++ if (out == S3C_FB_OUTPUT_TV)
++ tmp &= ~(1 << 29);
++
++ tmp &= ~(0x7 << 26);
++ tmp |= (out << 26);
++
++ writel(tmp, S3C_VIDCON0);
++}
++
++EXPORT_SYMBOL(s3cfb_set_output_path);
++
++void s3cfb_enable_rgbport(int on)
++{
++ if (on)
++ writel(0x380, S3C_VIDCON2);
++ else
++ writel(0x0, S3C_VIDCON2);
++}
++
++EXPORT_SYMBOL(s3cfb_enable_rgbport);
++
++int s3cfb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
++{
++ s3c_fb_info_t *fbi = container_of(info, s3c_fb_info_t, fb);
++ s3c_win_info_t win_info;
++ s3c_color_key_info_t colkey_info;
++ s3c_color_val_info_t colval_info;
++ s3c_fb_dma_info_t dma_info;
++ s3c_fb_next_info_t next_fb_info;
++ struct fb_var_screeninfo *var= &fbi->fb.var;
++ unsigned int crt, alpha_level, alpha_mode;
++
++#if defined(CONFIG_S3C6410_PWM)
++ int brightness;
++#endif
++
++#if defined(CONFIG_FB_S3C_DOUBLE_BUFFERING)
++ unsigned int f_num_val;
++#endif
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++ s3c_vs_info_t vs_info;
++#endif
++
++ switch(cmd){
++ case S3C_FB_GET_INFO:
++ dma_info.map_dma_f1 = fbi->map_dma_f1;
++ dma_info.map_dma_f2 = fbi->map_dma_f2;
++
++ if(copy_to_user((void *) arg, (const void *) &dma_info, sizeof(s3c_fb_dma_info_t)))
++ return -EFAULT;
++ break;
++
++ case S3C_FB_OSD_SET_INFO:
++ if (copy_from_user(&win_info, (s3c_win_info_t *) arg, sizeof(s3c_win_info_t)))
++ return -EFAULT;
++
++ s3cfb_init_win(fbi, win_info.bpp, win_info.left_x, win_info.top_y, win_info.width, win_info.height, OFF);
++ break;
++
++ case S3C_FB_OSD_START:
++ s3cfb_onoff_win(fbi, ON);
++ break;
++
++ case S3C_FB_OSD_STOP:
++ s3cfb_onoff_win(fbi, OFF);
++ break;
++
++ case S3C_FB_OSD_ALPHA_UP:
++ alpha_level = readl(S3C_VIDOSD0C + (0x10 * fbi->win_id)) & 0xf;
++
++ if (alpha_level < S3C_FB_MAX_ALPHA_LEVEL)
++ alpha_level++;
++
++ s3cfb_set_alpha_level(fbi, alpha_level, 1);
++ break;
++
++ case S3C_FB_OSD_ALPHA_DOWN:
++ alpha_level = readl(S3C_VIDOSD0C + (0x10 * fbi->win_id)) & 0xf;
++
++ if (alpha_level > 0)
++ alpha_level--;
++
++ s3cfb_set_alpha_level(fbi, alpha_level, 1);
++ break;
++
++ case S3C_FB_OSD_ALPHA0_SET:
++ alpha_level = arg;
++
++ if (alpha_level > S3C_FB_MAX_ALPHA_LEVEL)
++ alpha_level = S3C_FB_MAX_ALPHA_LEVEL;
++ else if(alpha_level < 0)
++ alpha_level = 0;
++
++ s3cfb_set_alpha_level(fbi, alpha_level, 0);
++ break;
++
++ case S3C_FB_OSD_ALPHA_SET:
++ alpha_level = (unsigned int) arg;
++
++ if (alpha_level > S3C_FB_MAX_ALPHA_LEVEL)
++ alpha_level = S3C_FB_MAX_ALPHA_LEVEL;
++ else if (alpha_level < 0)
++ alpha_level = 0;
++
++ s3cfb_set_alpha_level(fbi, alpha_level, 1);
++ break;
++
++ case S3C_FB_OSD_ALPHA_MODE:
++ alpha_mode = arg;
++ s3cfb_set_alpha_mode(fbi, alpha_mode);
++ break;
++
++ case S3C_FB_OSD_MOVE_LEFT:
++ if (var->xoffset > 0)
++ var->xoffset--;
++
++ s3cfb_set_win_position(fbi, var->xoffset, var->yoffset, var->xres, var->yres);
++ break;
++
++ case S3C_FB_OSD_MOVE_RIGHT:
++ if (var->xoffset < (s3c_fimd.width - var->xres))
++ var->xoffset++;
++
++ s3cfb_set_win_position(fbi, var->xoffset, var->yoffset, var->xres, var->yres);
++ break;
++
++ case S3C_FB_OSD_MOVE_UP:
++ if (var->yoffset > 0)
++ var->yoffset--;
++
++ s3cfb_set_win_position(fbi, var->xoffset, var->yoffset, var->xres, var->yres);
++ break;
++
++ case S3C_FB_OSD_MOVE_DOWN:
++ if (var->yoffset < (s3c_fimd.height - var->yres))
++ var->yoffset++;
++
++ s3cfb_set_win_position(fbi, var->xoffset, var->yoffset, var->xres, var->yres);
++ break;
++
++ case FBIO_WAITFORVSYNC:
++ if (get_user(crt, (unsigned int __user *)arg))
++ return -EFAULT;
++
++ return s3cfb_wait_for_vsync();
++
++ case S3C_FB_COLOR_KEY_START:
++ s3cfb_onoff_color_key(fbi, ON);
++ break;
++
++ case S3C_FB_COLOR_KEY_STOP:
++ s3cfb_onoff_color_key(fbi, OFF);
++ break;
++
++ case S3C_FB_COLOR_KEY_ALPHA_START:
++ s3cfb_onoff_color_key_alpha(fbi, ON);
++ break;
++
++ case S3C_FB_COLOR_KEY_ALPHA_STOP:
++ s3cfb_onoff_color_key_alpha(fbi, OFF);
++ break;
++
++ case S3C_FB_COLOR_KEY_SET_INFO:
++ if (copy_from_user(&colkey_info, (s3c_color_key_info_t *) arg, sizeof(s3c_color_key_info_t)))
++ return -EFAULT;
++
++ s3cfb_set_color_key_registers(fbi, colkey_info);
++ break;
++
++ case S3C_FB_COLOR_KEY_VALUE:
++ if (copy_from_user(&colval_info, (s3c_color_val_info_t *) arg, sizeof(s3c_color_val_info_t)))
++ return -EFAULT;
++
++ s3cfb_set_color_value(fbi, colval_info);
++ break;
++
++ case S3C_FB_SET_VSYNC_INT:
++ s3c_fimd.vidintcon0 &= ~S3C_VIDINTCON0_FRAMESEL0_MASK;
++ s3c_fimd.vidintcon0 |= S3C_VIDINTCON0_FRAMESEL0_VSYNC;
++
++ if (arg)
++ s3c_fimd.vidintcon0 |= S3C_VIDINTCON0_INTFRMEN_ENABLE;
++ else
++ s3c_fimd.vidintcon0 &= ~S3C_VIDINTCON0_INTFRMEN_ENABLE;
++
++ writel(s3c_fimd.vidintcon0, S3C_VIDINTCON0);
++ break;
++
++ case S3C_FB_SET_NEXT_FB_INFO:
++ if (copy_from_user(&next_fb_info, (s3c_fb_next_info_t *) arg, sizeof(s3c_fb_next_info_t)))
++ return -EFAULT;
++
++ /* check arguments */
++ if ((next_fb_info.xres + next_fb_info.xoffset) > next_fb_info.xres_virtual ||
++ (next_fb_info.yres + next_fb_info.yoffset) > next_fb_info.yres_virtual ||
++ (next_fb_info.xres + next_fb_info.lcd_offset_x ) > s3c_fimd.width ||
++ (next_fb_info.yres + next_fb_info.lcd_offset_y ) > s3c_fimd.height)
++ return -EINVAL;
++
++ fbi->next_fb_info = next_fb_info;
++ fbi->next_fb_info_change_req = 1;
++ break;
++
++ case S3C_FB_GET_CURR_FB_INFO:
++ next_fb_info.phy_start_addr = fbi->fb.fix.smem_start;
++ next_fb_info.xres = fbi->fb.var.xres;
++ next_fb_info.yres = fbi->fb.var.yres;
++ next_fb_info.xres_virtual = fbi->fb.var.xres_virtual;
++ next_fb_info.yres_virtual = fbi->fb.var.yres_virtual;
++ next_fb_info.xoffset = fbi->fb.var.xoffset;
++ next_fb_info.yoffset = fbi->fb.var.yoffset;
++ next_fb_info.lcd_offset_x = fbi->lcd_offset_x;
++ next_fb_info.lcd_offset_y = fbi->lcd_offset_y;
++
++ if (copy_to_user((void *)arg, (s3c_fb_next_info_t *) &next_fb_info, sizeof(s3c_fb_next_info_t)))
++ return -EFAULT;
++ break;
++
++ case S3C_FB_GET_BRIGHTNESS:
++ if (copy_to_user((void *)arg, (const void *) &s3c_display_brightness, sizeof(int)))
++ return -EFAULT;
++ break;
++
++#if defined(CONFIG_S3C6410_PWM)
++ case S3C_FB_SET_BRIGHTNESS:
++ if (copy_from_user(&brightness, (int *) arg, sizeof(int)))
++ return -EFAULT;
++
++ s3cfb_set_brightness(brightness);
++ break;
++#endif
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++ case S3C_FB_VS_START:
++ s3c_fimd.wincon0 &= ~(S3C_WINCONx_ENWIN_F_ENABLE);
++ writel(s3c_fimd.wincon0 | S3C_WINCONx_ENWIN_F_ENABLE, S3C_WINCON0);
++
++ fbi->fb.var.xoffset = s3c_fimd.xoffset;
++ fbi->fb.var.yoffset = s3c_fimd.yoffset;
++ break;
++
++ case S3C_FB_VS_STOP:
++ s3c_fimd.vidw00add0b0 = fbi->screen_dma_f1;
++ s3c_fimd.vidw00add0b1 = fbi->screen_dma_f2;
++ fbi->fb.var.xoffset = 0;
++ fbi->fb.var.yoffset = 0;
++
++ writel(s3c_fimd.vidw00add0b0, S3C_VIDW00ADD0B0);
++ writel(s3c_fimd.vidw00add0b1, S3C_VIDW00ADD0B1);
++
++ break;
++
++ case S3C_FB_VS_SET_INFO:
++ if (copy_from_user(&vs_info, (s3c_vs_info_t *) arg, sizeof(s3c_vs_info_t)))
++ return -EFAULT;
++
++ if (s3cfb_set_vs_info(vs_info)) {
++ printk("Error S3C_FB_VS_SET_INFO\n");
++ return -EINVAL;
++ }
++
++ s3cfb_set_vs_registers(S3C_FB_VS_SET);
++
++ fbi->fb.var.xoffset = s3c_fimd.xoffset;
++ fbi->fb.var.yoffset = s3c_fimd.yoffset;
++ break;
++
++ case S3C_FB_VS_MOVE:
++ s3cfb_set_vs_registers(arg);
++
++ fbi->fb.var.xoffset = s3c_fimd.xoffset;
++ fbi->fb.var.yoffset = s3c_fimd.yoffset;
++ break;
++#endif
++
++#if defined(CONFIG_FB_S3C_DOUBLE_BUFFERING)
++ case S3C_FB_GET_NUM:
++ if (copy_from_user((void *)&f_num_val, (const void *)arg, sizeof(u_int)))
++ return -EFAULT;
++
++ if (copy_to_user((void *)arg, (const void *) &f_num_val, sizeof(u_int)))
++ return -EFAULT;
++
++ break;
++#endif
++
++ case S3C_FB_RELEASE_DEFAULT_FB:
++ s3cfb_unmap_video_memory(fbi);
++ break;
++
++ default:
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++void s3cfb_pre_init(void)
++{
++ /* initialize the fimd specific */
++ s3c_fimd.vidintcon0 &= ~S3C_VIDINTCON0_FRAMESEL0_MASK;
++ s3c_fimd.vidintcon0 |= S3C_VIDINTCON0_FRAMESEL0_VSYNC;
++ s3c_fimd.vidintcon0 |= S3C_VIDINTCON0_INTFRMEN_ENABLE;
++
++ writel(s3c_fimd.vidintcon0, S3C_VIDINTCON0);
++}
++
++void s3cfb_set_gpio(void)
++{
++ unsigned long val;
++
++ /* Must be '0' for Normal-path instead of By-pass */
++ writel(0x0, S3C_HOSTIFB_MIFPCON);
++
++ /* enable clock to LCD */
++ val = readl(S3C_HCLK_GATE);
++ val |= S3C_CLKCON_HCLK_LCD;
++ writel(val, S3C_HCLK_GATE);
++
++ /* select TFT LCD type (RGB I/F) */
++ val = readl(S3C_SPCON);
++ val &= ~0x3;
++ val |= (1 << 0);
++ writel(val, S3C_SPCON);
++
++ /* VD */
++ gpio_set_pin(S3C_GPI0, S3C_GPI0_LCD_VD0);
++ gpio_set_pin(S3C_GPI1, S3C_GPI1_LCD_VD1);
++ gpio_set_pin(S3C_GPI2, S3C_GPI2_LCD_VD2);
++ gpio_set_pin(S3C_GPI3, S3C_GPI3_LCD_VD3);
++ gpio_set_pin(S3C_GPI4, S3C_GPI4_LCD_VD4);
++ gpio_set_pin(S3C_GPI5, S3C_GPI5_LCD_VD5);
++ gpio_set_pin(S3C_GPI6, S3C_GPI6_LCD_VD6);
++ gpio_set_pin(S3C_GPI7, S3C_GPI7_LCD_VD7);
++ gpio_set_pin(S3C_GPI8, S3C_GPI8_LCD_VD8);
++ gpio_set_pin(S3C_GPI9, S3C_GPI9_LCD_VD9);
++ gpio_set_pin(S3C_GPI10, S3C_GPI10_LCD_VD10);
++ gpio_set_pin(S3C_GPI11, S3C_GPI11_LCD_VD11);
++ gpio_set_pin(S3C_GPI12, S3C_GPI12_LCD_VD12);
++ gpio_set_pin(S3C_GPI13, S3C_GPI13_LCD_VD13);
++ gpio_set_pin(S3C_GPI14, S3C_GPI14_LCD_VD14);
++ gpio_set_pin(S3C_GPI15, S3C_GPI15_LCD_VD15);
++ gpio_set_pin(S3C_GPJ0, S3C_GPJ0_LCD_VD16);
++ gpio_set_pin(S3C_GPJ1, S3C_GPJ1_LCD_VD17);
++ gpio_set_pin(S3C_GPJ2, S3C_GPJ2_LCD_VD18);
++ gpio_set_pin(S3C_GPJ3, S3C_GPJ3_LCD_VD19);
++ gpio_set_pin(S3C_GPJ4, S3C_GPJ4_LCD_VD20);
++ gpio_set_pin(S3C_GPJ5, S3C_GPJ5_LCD_VD21);
++ gpio_set_pin(S3C_GPJ6, S3C_GPJ6_LCD_VD22);
++ gpio_set_pin(S3C_GPJ7, S3C_GPJ7_LCD_VD23);
++ gpio_set_pin(S3C_GPJ8, S3C_GPJ8_LCD_HSYNC);
++ gpio_set_pin(S3C_GPJ9, S3C_GPJ9_LCD_VSYNC);
++ gpio_set_pin(S3C_GPJ10, S3C_GPJ10_LCD_VDEN);
++ gpio_set_pin(S3C_GPJ11, S3C_GPJ11_LCD_VCLK);
++
++ /* backlight ON */
++ gpio_direction_output(S3C_GPF15, 1);
++
++ /* module reset */
++ gpio_direction_output(S3C_GPN5, 1);
++ mdelay(100);
++
++ gpio_set_value(S3C_GPN5, 0);
++ mdelay(10);
++
++ gpio_set_value(S3C_GPN5, 1);
++ mdelay(10);
++}
++
++#if defined(CONFIG_PM)
++
++static struct sleep_save s3c_lcd_save[] = {
++ SAVE_ITEM(S3C_VIDCON0),
++ SAVE_ITEM(S3C_VIDCON1),
++
++ SAVE_ITEM(S3C_VIDTCON0),
++ SAVE_ITEM(S3C_VIDTCON1),
++ SAVE_ITEM(S3C_VIDTCON2),
++ SAVE_ITEM(S3C_VIDTCON3),
++
++ SAVE_ITEM(S3C_WINCON0),
++ SAVE_ITEM(S3C_WINCON1),
++ SAVE_ITEM(S3C_WINCON2),
++ SAVE_ITEM(S3C_WINCON3),
++ SAVE_ITEM(S3C_WINCON4),
++
++ SAVE_ITEM(S3C_VIDOSD0A),
++ SAVE_ITEM(S3C_VIDOSD0B),
++ SAVE_ITEM(S3C_VIDOSD0C),
++
++ SAVE_ITEM(S3C_VIDOSD1A),
++ SAVE_ITEM(S3C_VIDOSD1B),
++ SAVE_ITEM(S3C_VIDOSD1C),
++ SAVE_ITEM(S3C_VIDOSD1D),
++
++ SAVE_ITEM(S3C_VIDOSD2A),
++ SAVE_ITEM(S3C_VIDOSD2B),
++ SAVE_ITEM(S3C_VIDOSD2C),
++ SAVE_ITEM(S3C_VIDOSD2D),
++
++ SAVE_ITEM(S3C_VIDOSD3A),
++ SAVE_ITEM(S3C_VIDOSD3B),
++ SAVE_ITEM(S3C_VIDOSD3C),
++
++ SAVE_ITEM(S3C_VIDOSD4A),
++ SAVE_ITEM(S3C_VIDOSD4B),
++ SAVE_ITEM(S3C_VIDOSD4C),
++
++ SAVE_ITEM(S3C_VIDW00ADD0B0),
++ SAVE_ITEM(S3C_VIDW00ADD0B1),
++ SAVE_ITEM(S3C_VIDW01ADD0B0),
++ SAVE_ITEM(S3C_VIDW01ADD0B1),
++ SAVE_ITEM(S3C_VIDW02ADD0),
++ SAVE_ITEM(S3C_VIDW03ADD0),
++ SAVE_ITEM(S3C_VIDW04ADD0),
++ SAVE_ITEM(S3C_VIDW00ADD1B0),
++ SAVE_ITEM(S3C_VIDW00ADD1B1),
++ SAVE_ITEM(S3C_VIDW01ADD1B0),
++ SAVE_ITEM(S3C_VIDW01ADD1B1),
++ SAVE_ITEM(S3C_VIDW02ADD1),
++ SAVE_ITEM(S3C_VIDW03ADD1),
++ SAVE_ITEM(S3C_VIDW04ADD1),
++ SAVE_ITEM(S3C_VIDW00ADD2),
++ SAVE_ITEM(S3C_VIDW01ADD2),
++ SAVE_ITEM(S3C_VIDW02ADD2),
++ SAVE_ITEM(S3C_VIDW03ADD2),
++ SAVE_ITEM(S3C_VIDW04ADD2),
++
++ SAVE_ITEM(S3C_VIDINTCON0),
++ SAVE_ITEM(S3C_VIDINTCON1),
++ SAVE_ITEM(S3C_W1KEYCON0),
++ SAVE_ITEM(S3C_W1KEYCON1),
++ SAVE_ITEM(S3C_W2KEYCON0),
++ SAVE_ITEM(S3C_W2KEYCON1),
++
++ SAVE_ITEM(S3C_W3KEYCON0),
++ SAVE_ITEM(S3C_W3KEYCON1),
++ SAVE_ITEM(S3C_W4KEYCON0),
++ SAVE_ITEM(S3C_W4KEYCON1),
++ SAVE_ITEM(S3C_DITHMODE),
++
++ SAVE_ITEM(S3C_WIN0MAP),
++ SAVE_ITEM(S3C_WIN1MAP),
++ SAVE_ITEM(S3C_WIN2MAP),
++ SAVE_ITEM(S3C_WIN3MAP),
++ SAVE_ITEM(S3C_WIN4MAP),
++ SAVE_ITEM(S3C_WPALCON),
++
++ SAVE_ITEM(S3C_TRIGCON),
++ SAVE_ITEM(S3C_I80IFCONA0),
++ SAVE_ITEM(S3C_I80IFCONA1),
++ SAVE_ITEM(S3C_I80IFCONB0),
++ SAVE_ITEM(S3C_I80IFCONB1),
++ SAVE_ITEM(S3C_LDI_CMDCON0),
++ SAVE_ITEM(S3C_LDI_CMDCON1),
++ SAVE_ITEM(S3C_SIFCCON0),
++ SAVE_ITEM(S3C_SIFCCON1),
++ SAVE_ITEM(S3C_SIFCCON2),
++
++ SAVE_ITEM(S3C_LDI_CMD0),
++ SAVE_ITEM(S3C_LDI_CMD1),
++ SAVE_ITEM(S3C_LDI_CMD2),
++ SAVE_ITEM(S3C_LDI_CMD3),
++ SAVE_ITEM(S3C_LDI_CMD4),
++ SAVE_ITEM(S3C_LDI_CMD5),
++ SAVE_ITEM(S3C_LDI_CMD6),
++ SAVE_ITEM(S3C_LDI_CMD7),
++ SAVE_ITEM(S3C_LDI_CMD8),
++ SAVE_ITEM(S3C_LDI_CMD9),
++ SAVE_ITEM(S3C_LDI_CMD10),
++ SAVE_ITEM(S3C_LDI_CMD11),
++
++ SAVE_ITEM(S3C_W2PDATA01),
++ SAVE_ITEM(S3C_W2PDATA23),
++ SAVE_ITEM(S3C_W2PDATA45),
++ SAVE_ITEM(S3C_W2PDATA67),
++ SAVE_ITEM(S3C_W2PDATA89),
++ SAVE_ITEM(S3C_W2PDATAAB),
++ SAVE_ITEM(S3C_W2PDATACD),
++ SAVE_ITEM(S3C_W2PDATAEF),
++ SAVE_ITEM(S3C_W3PDATA01),
++ SAVE_ITEM(S3C_W3PDATA23),
++ SAVE_ITEM(S3C_W3PDATA45),
++ SAVE_ITEM(S3C_W3PDATA67),
++ SAVE_ITEM(S3C_W3PDATA89),
++ SAVE_ITEM(S3C_W3PDATAAB),
++ SAVE_ITEM(S3C_W3PDATACD),
++ SAVE_ITEM(S3C_W3PDATAEF),
++ SAVE_ITEM(S3C_W4PDATA01),
++ SAVE_ITEM(S3C_W4PDATA23),
++};
++
++/*
++ * Suspend
++ */
++int s3cfb_suspend(struct platform_device *dev, pm_message_t state)
++{
++ struct fb_info *fbinfo = platform_get_drvdata(dev);
++ s3c_fb_info_t *info = fbinfo->par;
++
++ s3cfb_stop_lcd();
++ s3c2410_pm_do_save(s3c_lcd_save, ARRAY_SIZE(s3c_lcd_save));
++
++ /* sleep before disabling the clock, we need to ensure
++ * the LCD DMA engine is not going to get back on the bus
++ * before the clock goes off again (bjd) */
++
++ msleep(1);
++ clk_disable(info->clk);
++
++ return 0;
++}
++
++/*
++ * Resume
++ */
++int s3cfb_resume(struct platform_device *dev)
++{
++ struct fb_info *fbinfo = platform_get_drvdata(dev);
++ s3c_fb_info_t *info = fbinfo->par;
++
++ clk_enable(info->clk);
++ msleep(1);
++ s3c2410_pm_do_restore(s3c_lcd_save, ARRAY_SIZE(s3c_lcd_save));
++
++ s3cfb_init_hw();
++ s3cfb_start_lcd();
++
++ return 0;
++}
++
++#else
++
++int s3cfb_suspend(struct platform_device *dev, pm_message_t state)
++{
++ return 0;
++}
++
++int s3cfb_resume(struct platform_device *dev)
++{
++ return 0;
++}
++
++#endif
++
+diff --git a/drivers/video/s3c/s3cfb_lte480wv.c b/drivers/video/s3c/s3cfb_lte480wv.c
+new file mode 100644
+index 0000000..6ca0a4b
+--- /dev/null
++++ b/drivers/video/s3c/s3cfb_lte480wv.c
+@@ -0,0 +1,98 @@
++/*
++ * drivers/video/s3c/s3cfb_lte480wv.c
++ *
++ * $Id: s3cfb_lte480wv.c,v 1.12 2008/06/05 02:13:24 jsgood Exp $
++ *
++ * Copyright (C) 2008 Jinsung Yang <jsgood.yang@samsung.com>
++ *
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file COPYING in the main directory of this archive for
++ * more details.
++ *
++ * S3C Frame Buffer Driver
++ * based on skeletonfb.c, sa1100fb.h, s3c2410fb.c
++ */
++
++#include <linux/wait.h>
++#include <linux/fb.h>
++#include <linux/delay.h>
++#include <linux/platform_device.h>
++
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-lcd.h>
++
++#include "s3cfb.h"
++
++#define S3C_FB_HFP 8 /* front porch */
++#define S3C_FB_HSW 3 /* hsync width */
++#define S3C_FB_HBP 13 /* back porch */
++
++#define S3C_FB_VFP 5 /* front porch */
++#define S3C_FB_VSW 1 /* vsync width */
++#define S3C_FB_VBP 7 /* back porch */
++
++#define S3C_FB_HRES 800 /* horizon pixel x resolition */
++#define S3C_FB_VRES 480 /* line cnt y resolution */
++
++#define S3C_FB_HRES_VIRTUAL 800 /* horizon pixel x resolition */
++#define S3C_FB_VRES_VIRTUAL 960 /* line cnt y resolution */
++
++#define S3C_FB_HRES_OSD 800 /* horizon pixel x resolition */
++#define S3C_FB_VRES_OSD 480 /* line cnt y resolution */
++
++#define S3C_FB_VFRAME_FREQ 75 /* frame rate freq */
++
++#define S3C_FB_PIXEL_CLOCK (S3C_FB_VFRAME_FREQ * (S3C_FB_HFP + S3C_FB_HSW + S3C_FB_HBP + S3C_FB_HRES) * (S3C_FB_VFP + S3C_FB_VSW + S3C_FB_VBP + S3C_FB_VRES))
++
++static void s3cfb_set_fimd_info(void)
++{
++ s3c_fimd.vidcon1 = S3C_VIDCON1_IHSYNC_INVERT | S3C_VIDCON1_IVSYNC_INVERT | S3C_VIDCON1_IVDEN_NORMAL;
++ s3c_fimd.vidtcon0 = S3C_VIDTCON0_VBPD(S3C_FB_VBP - 1) | S3C_VIDTCON0_VFPD(S3C_FB_VFP - 1) | S3C_VIDTCON0_VSPW(S3C_FB_VSW - 1);
++ s3c_fimd.vidtcon1 = S3C_VIDTCON1_HBPD(S3C_FB_HBP - 1) | S3C_VIDTCON1_HFPD(S3C_FB_HFP - 1) | S3C_VIDTCON1_HSPW(S3C_FB_HSW - 1);
++ s3c_fimd.vidtcon2 = S3C_VIDTCON2_LINEVAL(S3C_FB_VRES - 1) | S3C_VIDTCON2_HOZVAL(S3C_FB_HRES - 1);
++
++ s3c_fimd.vidosd0a = S3C_VIDOSDxA_OSD_LTX_F(0) | S3C_VIDOSDxA_OSD_LTY_F(0);
++ s3c_fimd.vidosd0b = S3C_VIDOSDxB_OSD_RBX_F(S3C_FB_HRES - 1) | S3C_VIDOSDxB_OSD_RBY_F(S3C_FB_VRES - 1);
++
++ s3c_fimd.vidosd1a = S3C_VIDOSDxA_OSD_LTX_F(0) | S3C_VIDOSDxA_OSD_LTY_F(0);
++ s3c_fimd.vidosd1b = S3C_VIDOSDxB_OSD_RBX_F(S3C_FB_HRES_OSD - 1) | S3C_VIDOSDxB_OSD_RBY_F(S3C_FB_VRES_OSD - 1);
++
++ s3c_fimd.width = S3C_FB_HRES;
++ s3c_fimd.height = S3C_FB_VRES;
++ s3c_fimd.xres = S3C_FB_HRES;
++ s3c_fimd.yres = S3C_FB_VRES;
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++ s3c_fimd.xres_virtual = S3C_FB_HRES_VIRTUAL;
++ s3c_fimd.yres_virtual = S3C_FB_VRES_VIRTUAL;
++#else
++ s3c_fimd.xres_virtual = S3C_FB_HRES;
++ s3c_fimd.yres_virtual = S3C_FB_VRES;
++#endif
++
++ s3c_fimd.osd_width = S3C_FB_HRES_OSD;
++ s3c_fimd.osd_height = S3C_FB_VRES_OSD;
++ s3c_fimd.osd_xres = S3C_FB_HRES_OSD;
++ s3c_fimd.osd_yres = S3C_FB_VRES_OSD;
++
++ s3c_fimd.osd_xres_virtual = S3C_FB_HRES_OSD;
++ s3c_fimd.osd_yres_virtual = S3C_FB_VRES_OSD;
++
++ s3c_fimd.pixclock = S3C_FB_PIXEL_CLOCK;
++
++ s3c_fimd.hsync_len = S3C_FB_HSW;
++ s3c_fimd.vsync_len = S3C_FB_VSW;
++ s3c_fimd.left_margin = S3C_FB_HFP;
++ s3c_fimd.upper_margin = S3C_FB_VFP;
++ s3c_fimd.right_margin = S3C_FB_HBP;
++ s3c_fimd.lower_margin = S3C_FB_VBP;
++}
++
++void s3cfb_init_hw(void)
++{
++ printk(KERN_INFO "LCD TYPE :: LTE480WV will be initialized\n");
++
++ s3cfb_set_fimd_info();
++ s3cfb_set_gpio();
++}
++
+diff --git a/drivers/video/s3c/s3cfb_lts222qv.c b/drivers/video/s3c/s3cfb_lts222qv.c
+new file mode 100644
+index 0000000..a43413b
+--- /dev/null
++++ b/drivers/video/s3c/s3cfb_lts222qv.c
+@@ -0,0 +1,311 @@
++/*
++ * drivers/video/s3c/s3cfb_lte480wv.c
++ *
++ * $Id: s3cfb_lts222qv.c,v 1.9 2008/06/19 11:11:34 jsgood Exp $
++ *
++ * Copyright (C) 2008 Jinsung Yang <jsgood.yang@samsung.com>
++ *
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file COPYING in the main directory of this archive for
++ * more details.
++ *
++ * S3C Frame Buffer Driver
++ * based on skeletonfb.c, sa1100fb.h, s3c2410fb.c
++ */
++
++#include <linux/wait.h>
++#include <linux/fb.h>
++#include <linux/delay.h>
++#include <linux/platform_device.h>
++
++#include <asm/arch/gpio.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-lcd.h>
++
++#include "s3cfb.h"
++
++#define S3C_FB_SPI_CH 0 /* spi channel for module init */
++
++#define S3C_FB_HFP 7 /* front porch */
++#define S3C_FB_HSW 4 /* hsync width */
++#define S3C_FB_HBP 2 /* back porch */
++
++#define S3C_FB_VFP 11 /* front porch */
++#define S3C_FB_VSW 4 /* vsync width */
++#define S3C_FB_VBP 10 /* back porch */
++
++#define S3C_FB_HRES 240 /* horizon pixel x resolition */
++#define S3C_FB_VRES 320 /* line cnt y resolution */
++
++#define S3C_FB_HRES_VIRTUAL 240 /* horizon pixel x resolition */
++#define S3C_FB_VRES_VIRTUAL 640 /* line cnt y resolution */
++
++#define S3C_FB_HRES_OSD 240 /* horizon pixel x resolition */
++#define S3C_FB_VRES_OSD 320 /* line cnt y resolution */
++
++#if defined(CONFIG_PLAT_S3C24XX)
++#define S3C_FB_VFRAME_FREQ 75 /* frame rate freq */
++#else
++#define S3C_FB_VFRAME_FREQ 60 /* frame rate freq */
++#endif
++
++#define S3C_FB_PIXEL_CLOCK (S3C_FB_VFRAME_FREQ * (S3C_FB_HFP + S3C_FB_HSW + S3C_FB_HBP + S3C_FB_HRES) * (S3C_FB_VFP + S3C_FB_VSW + S3C_FB_VBP + S3C_FB_VRES))
++
++static void s3cfb_set_fimd_info(void)
++{
++ s3c_fimd.vidcon1 = S3C_VIDCON1_IHSYNC_INVERT | S3C_VIDCON1_IVSYNC_INVERT | S3C_VIDCON1_IVDEN_NORMAL;
++ s3c_fimd.vidtcon0 = S3C_VIDTCON0_VBPD(S3C_FB_VBP - 1) | S3C_VIDTCON0_VFPD(S3C_FB_VFP - 1) | S3C_VIDTCON0_VSPW(S3C_FB_VSW - 1);
++ s3c_fimd.vidtcon1 = S3C_VIDTCON1_HBPD(S3C_FB_HBP - 1) | S3C_VIDTCON1_HFPD(S3C_FB_HFP - 1) | S3C_VIDTCON1_HSPW(S3C_FB_HSW - 1);
++ s3c_fimd.vidtcon2 = S3C_VIDTCON2_LINEVAL(S3C_FB_VRES - 1) | S3C_VIDTCON2_HOZVAL(S3C_FB_HRES - 1);
++
++ s3c_fimd.vidosd0a = S3C_VIDOSDxA_OSD_LTX_F(0) | S3C_VIDOSDxA_OSD_LTY_F(0);
++ s3c_fimd.vidosd0b = S3C_VIDOSDxB_OSD_RBX_F(S3C_FB_HRES - 1) | S3C_VIDOSDxB_OSD_RBY_F(S3C_FB_VRES - 1);
++
++ s3c_fimd.vidosd1a = S3C_VIDOSDxA_OSD_LTX_F(0) | S3C_VIDOSDxA_OSD_LTY_F(0);
++ s3c_fimd.vidosd1b = S3C_VIDOSDxB_OSD_RBX_F(S3C_FB_HRES_OSD - 1) | S3C_VIDOSDxB_OSD_RBY_F(S3C_FB_VRES_OSD - 1);
++
++ s3c_fimd.width = S3C_FB_HRES;
++ s3c_fimd.height = S3C_FB_VRES;
++ s3c_fimd.xres = S3C_FB_HRES;
++ s3c_fimd.yres = S3C_FB_VRES;
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++ s3c_fimd.xres_virtual = S3C_FB_HRES_VIRTUAL;
++ s3c_fimd.yres_virtual = S3C_FB_VRES_VIRTUAL;
++#else
++ s3c_fimd.xres_virtual = S3C_FB_HRES;
++ s3c_fimd.yres_virtual = S3C_FB_VRES;
++#endif
++
++ s3c_fimd.osd_width = S3C_FB_HRES_OSD;
++ s3c_fimd.osd_height = S3C_FB_VRES_OSD;
++ s3c_fimd.osd_xres = S3C_FB_HRES_OSD;
++ s3c_fimd.osd_yres = S3C_FB_VRES_OSD;
++
++ s3c_fimd.osd_xres_virtual = S3C_FB_HRES_OSD;
++ s3c_fimd.osd_yres_virtual = S3C_FB_VRES_OSD;
++
++ s3c_fimd.pixclock = S3C_FB_PIXEL_CLOCK;
++
++ s3c_fimd.hsync_len = S3C_FB_HSW;
++ s3c_fimd.vsync_len = S3C_FB_VSW;
++ s3c_fimd.left_margin = S3C_FB_HFP;
++ s3c_fimd.upper_margin = S3C_FB_VFP;
++ s3c_fimd.right_margin = S3C_FB_HBP;
++ s3c_fimd.lower_margin = S3C_FB_VBP;
++}
++
++static void s3cfb_spi_write_byte(int data)
++{
++ unsigned int delay = 50;
++ int i;
++
++ s3cfb_spi_lcd_den(S3C_FB_SPI_CH, 1);
++ s3cfb_spi_lcd_dclk(S3C_FB_SPI_CH, 1);
++ s3cfb_spi_lcd_dseri(S3C_FB_SPI_CH, 1);
++ udelay(delay);
++
++ s3cfb_spi_lcd_den(S3C_FB_SPI_CH, 0);
++ udelay(delay);
++
++ for (i = 7; i >= 0; i--) {
++ s3cfb_spi_lcd_dclk(S3C_FB_SPI_CH, 0);
++
++ if ((data >> i) & 0x1)
++ s3cfb_spi_lcd_dseri(S3C_FB_SPI_CH, 1);
++ else
++ s3cfb_spi_lcd_dseri(S3C_FB_SPI_CH, 0);
++
++ udelay(delay);
++
++ s3cfb_spi_lcd_dclk(S3C_FB_SPI_CH, 1);
++ udelay(delay);
++ }
++
++ s3cfb_spi_lcd_den(S3C_FB_SPI_CH, 1);
++ udelay(delay);
++}
++
++static void s3cfb_spi_write(int address, int data)
++{
++ unsigned int mode = 0x8;
++
++ writel(mode | 0x01, S3C_SIFCCON0);
++ writel(mode | 0x03, S3C_SIFCCON0);
++
++ s3cfb_spi_write_byte(address);
++
++ writel(mode | 0x01, S3C_SIFCCON0);
++ writel(mode | 0x00, S3C_SIFCCON0);
++
++ udelay(100);
++
++ writel(mode | 0x01, S3C_SIFCCON0);
++ writel(mode | 0x03, S3C_SIFCCON0);
++
++ s3cfb_spi_write_byte(data);
++
++ writel(mode | 0x01, S3C_SIFCCON0);
++ writel(mode | 0x00, S3C_SIFCCON0);
++}
++
++static void s3cfb_init_ldi(void)
++{
++ unsigned long long endtime;
++
++ s3cfb_spi_write(0x22, 0x01);
++ s3cfb_spi_write(0x03, 0x01);
++
++ s3cfb_spi_write(0x00, 0xa0); udelay(5);
++ s3cfb_spi_write(0x01, 0x10); udelay(5);
++ s3cfb_spi_write(0x02, 0x00); udelay(5);
++ s3cfb_spi_write(0x05, 0x00); udelay(5);
++
++ s3cfb_spi_write(0x0d, 0x00);
++ endtime = get_jiffies_64() + 4; while(jiffies < endtime);
++
++ s3cfb_spi_write(0x0e, 0x00); udelay(5);
++ s3cfb_spi_write(0x0f, 0x00); udelay(5);
++ s3cfb_spi_write(0x10, 0x00); udelay(5);
++ s3cfb_spi_write(0x11, 0x00); udelay(5);
++ s3cfb_spi_write(0x12, 0x00); udelay(5);
++ s3cfb_spi_write(0x13, 0x00); udelay(5);
++ s3cfb_spi_write(0x14, 0x00); udelay(5);
++ s3cfb_spi_write(0x15, 0x00); udelay(5);
++ s3cfb_spi_write(0x16, 0x00); udelay(5);
++ s3cfb_spi_write(0x17, 0x00); udelay(5);
++ s3cfb_spi_write(0x34, 0x01); udelay(5);
++
++ s3cfb_spi_write(0x35, 0x00);
++ endtime = get_jiffies_64() + 4; while(jiffies < endtime);
++
++ s3cfb_spi_write(0x8d, 0x01); udelay(5);
++ s3cfb_spi_write(0x8b, 0x28); udelay(5);
++ s3cfb_spi_write(0x4b, 0x00); udelay(5);
++ s3cfb_spi_write(0x4e, 0x00); udelay(5);
++ s3cfb_spi_write(0x4d, 0x00); udelay(5);
++ s3cfb_spi_write(0x4e, 0x00); udelay(5);
++ s3cfb_spi_write(0x4f, 0x00); udelay(5);
++
++ s3cfb_spi_write(0x50, 0x00);
++ endtime = get_jiffies_64() + 5; while(jiffies < endtime);
++
++ s3cfb_spi_write(0x86, 0x00); udelay(5);
++ s3cfb_spi_write(0x87, 0x26); udelay(5);
++ s3cfb_spi_write(0x88, 0x02); udelay(5);
++ s3cfb_spi_write(0x89, 0x05); udelay(5);
++ s3cfb_spi_write(0x33, 0x01); udelay(5);
++
++ s3cfb_spi_write(0x37, 0x06);
++ endtime = get_jiffies_64() + 5; while(jiffies < endtime);
++
++ s3cfb_spi_write(0x76, 0x00);
++ endtime = get_jiffies_64() + 4; while(jiffies < endtime);
++
++ s3cfb_spi_write(0x42, 0x00); udelay(5);
++ s3cfb_spi_write(0x43, 0x00); udelay(5);
++ s3cfb_spi_write(0x44, 0x00); udelay(5);
++ s3cfb_spi_write(0x45, 0x00); udelay(5);
++ s3cfb_spi_write(0x46, 0xef); udelay(5);
++ s3cfb_spi_write(0x47, 0x00); udelay(5);
++ s3cfb_spi_write(0x48, 0x00); udelay(5);
++
++ s3cfb_spi_write(0x49, 0x01);
++ endtime = get_jiffies_64() + 5; while(jiffies < endtime);
++
++ s3cfb_spi_write(0x4a, 0x3f); udelay(5);
++ s3cfb_spi_write(0x3c, 0x00); udelay(5);
++ s3cfb_spi_write(0x3d, 0x00); udelay(5);
++ s3cfb_spi_write(0x3e, 0x01); udelay(5);
++ s3cfb_spi_write(0x3f, 0x3f); udelay(5);
++ s3cfb_spi_write(0x40, 0x01); udelay(5);
++ s3cfb_spi_write(0x41, 0x0a); udelay(5);
++
++ s3cfb_spi_write(0x8f, 0x3f);
++ endtime = get_jiffies_64() + 4; while(jiffies < endtime);
++
++ s3cfb_spi_write(0x90, 0x3f); udelay(5);
++ s3cfb_spi_write(0x91, 0x33); udelay(5);
++ s3cfb_spi_write(0x92, 0x77); udelay(5);
++ s3cfb_spi_write(0x93, 0x77); udelay(5);
++ s3cfb_spi_write(0x94, 0x17); udelay(5);
++ s3cfb_spi_write(0x95, 0x3f); udelay(5);
++ s3cfb_spi_write(0x96, 0x00); udelay(5);
++ s3cfb_spi_write(0x97, 0x33); udelay(5);
++ s3cfb_spi_write(0x98, 0x77); udelay(5);
++ s3cfb_spi_write(0x99, 0x77); udelay(5);
++ s3cfb_spi_write(0x9a, 0x17); udelay(5);
++ s3cfb_spi_write(0x9b, 0x07); udelay(5);
++ s3cfb_spi_write(0x9c, 0x07); udelay(5);
++
++ s3cfb_spi_write(0x9d, 0x80);
++ endtime = get_jiffies_64() + 4; while(jiffies < endtime);
++
++ s3cfb_spi_write(0x1d, 0x08);
++ endtime = get_jiffies_64() + 4; while(jiffies < endtime);
++
++ s3cfb_spi_write(0x23, 0x00);
++ endtime = get_jiffies_64() + 5; while(jiffies < endtime);
++
++ s3cfb_spi_write(0x24, 0x94);
++ endtime = get_jiffies_64() + 5; while(jiffies < endtime);
++
++ s3cfb_spi_write(0x25, 0x6f);
++ endtime = get_jiffies_64() + 4; while(jiffies < endtime);
++
++ s3cfb_spi_write(0x28, 0x1e);
++ s3cfb_spi_write(0x1a, 0x00);
++ s3cfb_spi_write(0x21, 0x10);
++ s3cfb_spi_write(0x18, 0x25);
++
++ endtime = get_jiffies_64() + 4; while(jiffies < endtime);
++
++ s3cfb_spi_write(0x19, 0x48);
++ s3cfb_spi_write(0x18, 0xe5);
++
++ endtime = get_jiffies_64() + 4; while(jiffies < endtime);
++
++ s3cfb_spi_write(0x18, 0xF7);
++ endtime = get_jiffies_64() + 4; while(jiffies < endtime);
++
++ s3cfb_spi_write(0x1b, 0x07);
++ endtime = get_jiffies_64() + 4; while(jiffies < endtime);
++
++ s3cfb_spi_write(0x1f, 0x68);
++ s3cfb_spi_write(0x20, 0x45);
++ s3cfb_spi_write(0x1e, 0xc1);
++
++ endtime = get_jiffies_64() + 4; while(jiffies < endtime);
++
++ s3cfb_spi_write(0x21, 0x00);
++ s3cfb_spi_write(0x3b, 0x01);
++
++ endtime = get_jiffies_64() + 4; while(jiffies < endtime);
++
++ s3cfb_spi_write(0x00, 0x20);
++ s3cfb_spi_write(0x02, 0x01);
++
++ endtime = get_jiffies_64() + 4; while(jiffies < endtime);
++}
++
++static void s3cfb_set_gpio_lts222qv(void)
++{
++ gpio_direction_output(S3C_GPC1, 1);
++ gpio_direction_output(S3C_GPC2, 1);
++ gpio_direction_output(S3C_GPC3, 1);
++
++ gpio_pullup(S3C_GPC1, 0);
++ gpio_pullup(S3C_GPC2, 0);
++ gpio_pullup(S3C_GPC3, 0);
++}
++
++void s3cfb_init_hw(void)
++{
++ printk(KERN_INFO "LCD TYPE :: LTV222QV will be initialized\n");
++
++ s3cfb_set_fimd_info();
++ s3cfb_set_gpio();
++ s3cfb_set_gpio_lts222qv();
++ s3cfb_init_ldi();
++}
++
+diff --git a/drivers/video/s3c/s3cfb_ltv350qv.c b/drivers/video/s3c/s3cfb_ltv350qv.c
+new file mode 100644
+index 0000000..2b2ffd7
+--- /dev/null
++++ b/drivers/video/s3c/s3cfb_ltv350qv.c
+@@ -0,0 +1,288 @@
++/*
++ * drivers/video/s3c/s3cfb_lte480wv.c
++ *
++ * $Id: s3cfb_ltv350qv.c,v 1.8 2008/09/09 01:39:49 eyryu Exp $
++ *
++ * Copyright (C) 2008 Jinsung Yang <jsgood.yang@samsung.com>
++ *
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file COPYING in the main directory of this archive for
++ * more details.
++ *
++ * S3C Frame Buffer Driver
++ * based on skeletonfb.c, sa1100fb.h, s3c2410fb.c
++ */
++
++#include <linux/wait.h>
++#include <linux/fb.h>
++#include <linux/delay.h>
++#include <linux/platform_device.h>
++
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-lcd.h>
++
++#include "s3cfb.h"
++
++#if defined(CONFIG_PLAT_S5PC1XX)
++#define S3C_FB_SPI_CH 0 /* spi channel for module init */
++#else
++#define S3C_FB_SPI_CH 1 /* spi channel for module init */
++#endif
++
++#define S3C_FB_HFP 3 /* front porch */
++#define S3C_FB_HSW 10 /* hsync width */
++#define S3C_FB_HBP 5 /* back porch */
++
++#define S3C_FB_VFP 3 /* front porch */
++#define S3C_FB_VSW 4 /* vsync width */
++#define S3C_FB_VBP 5 /* back porch */
++
++#define S3C_FB_HRES 320 /* horizon pixel x resolition */
++#define S3C_FB_VRES 240 /* line cnt y resolution */
++
++#define S3C_FB_HRES_VIRTUAL 320 /* horizon pixel x resolition */
++#define S3C_FB_VRES_VIRTUAL 480 /* line cnt y resolution */
++
++#define S3C_FB_HRES_OSD 320 /* horizon pixel x resolition */
++#define S3C_FB_VRES_OSD 240 /* line cnt y resolution */
++
++#if defined(CONFIG_PLAT_S3C24XX)
++#define S3C_FB_VFRAME_FREQ 75 /* frame rate freq */
++#else
++#define S3C_FB_VFRAME_FREQ 60 /* frame rate freq */
++#endif
++
++#define S3C_FB_PIXEL_CLOCK (S3C_FB_VFRAME_FREQ * (S3C_FB_HFP + S3C_FB_HSW + S3C_FB_HBP + S3C_FB_HRES) * (S3C_FB_VFP + S3C_FB_VSW + S3C_FB_VBP + S3C_FB_VRES))
++
++static void s3cfb_set_fimd_info(void)
++{
++ s3c_fimd.vidcon1 = S3C_VIDCON1_IHSYNC_INVERT | S3C_VIDCON1_IVSYNC_INVERT | S3C_VIDCON1_IVDEN_NORMAL;
++ s3c_fimd.vidtcon0 = S3C_VIDTCON0_VBPD(S3C_FB_VBP - 1) | S3C_VIDTCON0_VFPD(S3C_FB_VFP - 1) | S3C_VIDTCON0_VSPW(S3C_FB_VSW - 1);
++ s3c_fimd.vidtcon1 = S3C_VIDTCON1_HBPD(S3C_FB_HBP - 1) | S3C_VIDTCON1_HFPD(S3C_FB_HFP - 1) | S3C_VIDTCON1_HSPW(S3C_FB_HSW - 1);
++ s3c_fimd.vidtcon2 = S3C_VIDTCON2_LINEVAL(S3C_FB_VRES - 1) | S3C_VIDTCON2_HOZVAL(S3C_FB_HRES - 1);
++
++ s3c_fimd.vidosd0a = S3C_VIDOSDxA_OSD_LTX_F(0) | S3C_VIDOSDxA_OSD_LTY_F(0);
++ s3c_fimd.vidosd0b = S3C_VIDOSDxB_OSD_RBX_F(S3C_FB_HRES - 1) | S3C_VIDOSDxB_OSD_RBY_F(S3C_FB_VRES - 1);
++
++ s3c_fimd.vidosd1a = S3C_VIDOSDxA_OSD_LTX_F(0) | S3C_VIDOSDxA_OSD_LTY_F(0);
++ s3c_fimd.vidosd1b = S3C_VIDOSDxB_OSD_RBX_F(S3C_FB_HRES_OSD - 1) | S3C_VIDOSDxB_OSD_RBY_F(S3C_FB_VRES_OSD - 1);
++
++ s3c_fimd.width = S3C_FB_HRES;
++ s3c_fimd.height = S3C_FB_VRES;
++ s3c_fimd.xres = S3C_FB_HRES;
++ s3c_fimd.yres = S3C_FB_VRES;
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++ s3c_fimd.xres_virtual = S3C_FB_HRES_VIRTUAL;
++ s3c_fimd.yres_virtual = S3C_FB_VRES_VIRTUAL;
++#else
++ s3c_fimd.xres_virtual = S3C_FB_HRES;
++ s3c_fimd.yres_virtual = S3C_FB_VRES;
++#endif
++
++ s3c_fimd.osd_width = S3C_FB_HRES_OSD;
++ s3c_fimd.osd_height = S3C_FB_VRES_OSD;
++ s3c_fimd.osd_xres = S3C_FB_HRES_OSD;
++ s3c_fimd.osd_yres = S3C_FB_VRES_OSD;
++
++ s3c_fimd.osd_xres_virtual = S3C_FB_HRES_OSD;
++ s3c_fimd.osd_yres_virtual = S3C_FB_VRES_OSD;
++
++ s3c_fimd.pixclock = S3C_FB_PIXEL_CLOCK;
++
++ s3c_fimd.hsync_len = S3C_FB_HSW;
++ s3c_fimd.vsync_len = S3C_FB_VSW;
++ s3c_fimd.left_margin = S3C_FB_HFP;
++ s3c_fimd.upper_margin = S3C_FB_VFP;
++ s3c_fimd.right_margin = S3C_FB_HBP;
++ s3c_fimd.lower_margin = S3C_FB_VBP;
++}
++
++void s3cfb_spi_write(int address, int data)
++{
++ unsigned int delay = 50;
++ unsigned char dev_id = 0x1d;
++ int i;
++
++ s3cfb_spi_lcd_den(S3C_FB_SPI_CH, 1);
++ s3cfb_spi_lcd_dclk(S3C_FB_SPI_CH, 1);
++ s3cfb_spi_lcd_dseri(S3C_FB_SPI_CH, 1);
++ udelay(delay);
++
++ s3cfb_spi_lcd_den(S3C_FB_SPI_CH, 0);
++ udelay(delay);
++
++ for (i = 5; i >= 0; i--) {
++ s3cfb_spi_lcd_dclk(S3C_FB_SPI_CH, 0);
++
++ if ((dev_id >> i) & 0x1)
++ s3cfb_spi_lcd_dseri(S3C_FB_SPI_CH, 1);
++ else
++ s3cfb_spi_lcd_dseri(S3C_FB_SPI_CH, 0);
++
++ udelay(delay);
++
++ s3cfb_spi_lcd_dclk(S3C_FB_SPI_CH, 1);
++ udelay(delay);
++ }
++
++ s3cfb_spi_lcd_dclk(S3C_FB_SPI_CH, 0);
++ s3cfb_spi_lcd_dseri(S3C_FB_SPI_CH, 0);
++ udelay(delay);
++
++ s3cfb_spi_lcd_dclk(S3C_FB_SPI_CH, 1);
++ udelay(delay);
++
++ s3cfb_spi_lcd_dclk(S3C_FB_SPI_CH, 0);
++ s3cfb_spi_lcd_dseri(S3C_FB_SPI_CH, 0);
++ udelay(delay);
++
++ s3cfb_spi_lcd_dclk(S3C_FB_SPI_CH, 1);
++ udelay(delay);
++
++ for (i = 15; i >= 0; i--) {
++ s3cfb_spi_lcd_dclk(S3C_FB_SPI_CH, 0);
++
++ if ((address >> i) & 0x1)
++ s3cfb_spi_lcd_dseri(S3C_FB_SPI_CH, 1);
++ else
++ s3cfb_spi_lcd_dseri(S3C_FB_SPI_CH, 0);
++
++ udelay(delay);
++
++ s3cfb_spi_lcd_dclk(S3C_FB_SPI_CH, 1);
++ udelay(delay);
++ }
++
++ s3cfb_spi_lcd_dseri(S3C_FB_SPI_CH, 1);
++ udelay(delay);
++
++ s3cfb_spi_lcd_den(S3C_FB_SPI_CH, 1);
++ udelay(delay * 10);
++
++ s3cfb_spi_lcd_den(S3C_FB_SPI_CH, 0);
++ udelay(delay);
++
++ for (i = 5; i >= 0; i--) {
++ s3cfb_spi_lcd_dclk(S3C_FB_SPI_CH, 0);
++
++ if ((dev_id >> i) & 0x1)
++ s3cfb_spi_lcd_dseri(S3C_FB_SPI_CH, 1);
++ else
++ s3cfb_spi_lcd_dseri(S3C_FB_SPI_CH, 0);
++
++ udelay(delay);
++
++ s3cfb_spi_lcd_dclk(S3C_FB_SPI_CH, 1);
++ udelay(delay);
++
++ }
++
++ s3cfb_spi_lcd_dclk(S3C_FB_SPI_CH, 0);
++ s3cfb_spi_lcd_dseri(S3C_FB_SPI_CH, 1);
++ udelay(delay);
++
++ s3cfb_spi_lcd_dclk(S3C_FB_SPI_CH, 1);
++ udelay(delay);
++
++ s3cfb_spi_lcd_dclk(S3C_FB_SPI_CH, 0);
++ s3cfb_spi_lcd_dseri(S3C_FB_SPI_CH, 0);
++ udelay(delay);
++
++ s3cfb_spi_lcd_dclk(S3C_FB_SPI_CH, 1);
++ udelay(delay);
++
++ for (i = 15; i >= 0; i--) {
++ s3cfb_spi_lcd_dclk(S3C_FB_SPI_CH, 0);
++
++ if ((data >> i) & 0x1)
++ s3cfb_spi_lcd_dseri(S3C_FB_SPI_CH, 1);
++ else
++ s3cfb_spi_lcd_dseri(S3C_FB_SPI_CH, 0);
++
++ udelay(delay);
++
++ s3cfb_spi_lcd_dclk(S3C_FB_SPI_CH, 1);
++ udelay(delay);
++
++ }
++
++ s3cfb_spi_lcd_den(S3C_FB_SPI_CH, 1);
++ udelay(delay);
++}
++
++static void s3cfb_init_ldi(void)
++{
++ s3cfb_spi_set_lcd_data(S3C_FB_SPI_CH);
++ mdelay(5);
++
++ s3cfb_spi_lcd_den(S3C_FB_SPI_CH, 1);
++ s3cfb_spi_lcd_dclk(S3C_FB_SPI_CH, 1);
++ s3cfb_spi_lcd_dseri(S3C_FB_SPI_CH, 1);
++
++ s3cfb_spi_write(0x01, 0x001d);
++ s3cfb_spi_write(0x02, 0x0000);
++ s3cfb_spi_write(0x03, 0x0000);
++ s3cfb_spi_write(0x04, 0x0000);
++ s3cfb_spi_write(0x05, 0x50a3);
++ s3cfb_spi_write(0x06, 0x0000);
++ s3cfb_spi_write(0x07, 0x0000);
++ s3cfb_spi_write(0x08, 0x0000);
++ s3cfb_spi_write(0x09, 0x0000);
++ s3cfb_spi_write(0x0a, 0x0000);
++ s3cfb_spi_write(0x10, 0x0000);
++ s3cfb_spi_write(0x11, 0x0000);
++ s3cfb_spi_write(0x12, 0x0000);
++ s3cfb_spi_write(0x13, 0x0000);
++ s3cfb_spi_write(0x14, 0x0000);
++ s3cfb_spi_write(0x15, 0x0000);
++ s3cfb_spi_write(0x16, 0x0000);
++ s3cfb_spi_write(0x17, 0x0000);
++ s3cfb_spi_write(0x18, 0x0000);
++ s3cfb_spi_write(0x19, 0x0000);
++
++ mdelay(10);
++
++ s3cfb_spi_write(0x09, 0x4055);
++ s3cfb_spi_write(0x0a, 0x0000);
++
++ mdelay(10);
++
++ s3cfb_spi_write(0x0a, 0x2000);
++
++ mdelay(50);
++
++ s3cfb_spi_write(0x01, 0x409d);
++ s3cfb_spi_write(0x02, 0x0204);
++ s3cfb_spi_write(0x03, 0x2100);
++ s3cfb_spi_write(0x04, 0x1000);
++ s3cfb_spi_write(0x05, 0x5003);
++ s3cfb_spi_write(0x06, 0x0009);
++ s3cfb_spi_write(0x07, 0x000f);
++ s3cfb_spi_write(0x08, 0x0800);
++ s3cfb_spi_write(0x10, 0x0000);
++ s3cfb_spi_write(0x11, 0x0000);
++ s3cfb_spi_write(0x12, 0x000f);
++ s3cfb_spi_write(0x13, 0x1f00);
++ s3cfb_spi_write(0x14, 0x0000);
++ s3cfb_spi_write(0x15, 0x0000);
++ s3cfb_spi_write(0x16, 0x0000);
++ s3cfb_spi_write(0x17, 0x0000);
++ s3cfb_spi_write(0x18, 0x0000);
++ s3cfb_spi_write(0x19, 0x0000);
++
++ mdelay(50);
++
++ s3cfb_spi_write(0x09, 0x4a55);
++ s3cfb_spi_write(0x0a, 0x2000);
++}
++
++void s3cfb_init_hw(void)
++{
++ printk(KERN_INFO "LCD TYPE :: LTV350QV will be initialized\n");
++
++ s3cfb_set_fimd_info();
++ s3cfb_set_gpio();
++ s3cfb_init_ldi();
++}
++
+diff --git a/drivers/video/s3c/s3cfb_spi.c b/drivers/video/s3c/s3cfb_spi.c
+new file mode 100644
+index 0000000..6fae264
+--- /dev/null
++++ b/drivers/video/s3c/s3cfb_spi.c
+@@ -0,0 +1,129 @@
++/*
++ * drivers/video/s3c/s3c24xxfb_spi.c
++ *
++ * $Id: s3cfb_spi.c,v 1.4 2008/08/27 01:04:36 jsgood Exp $
++ *
++ * Copyright (C) 2008 Jinsung Yang <jsgood.yang@samsung.com>
++ *
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file COPYING in the main directory of this archive for
++ * more details.
++ *
++ * S3C Frame Buffer Driver
++ * based on skeletonfb.c, sa1100fb.h, s3c2410fb.c
++ */
++
++#include <linux/delay.h>
++
++#include <asm/mach/map.h>
++#include <asm/arch/gpio.h>
++#include <asm/arch/regs-lcd.h>
++#include <asm/arch/regs-s3c-clock.h>
++
++#if defined(CONFIG_PLAT_S3C24XX)
++
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-gpioj.h>
++
++#define S3C_FB_SPI_CLK(x) (S3C2443_GPL10 + (ch * 0))
++#define S3C_FB_SPI_MOSI(x) (S3C2443_GPL11 + (ch * 0))
++#define S3C_FB_SPI_CS(x) (S3C2443_GPL14 + (ch * 0))
++
++static inline void s3cfb_spi_lcd_dclk(int ch, int value)
++{
++ s3c2410_gpio_setpin(S3C_FB_SPI_CLK(ch), value);
++}
++
++static inline void s3cfb_spi_lcd_dseri(int ch, int value)
++{
++ s3c2410_gpio_setpin(S3C_FB_SPI_MOSI(ch), value);
++}
++
++static inline void s3cfb_spi_lcd_den(int ch, int value)
++{
++ s3c2410_gpio_setpin(S3C_FB_SPI_CS(ch), value);
++}
++
++static inline void s3cfb_spi_set_lcd_data(int ch)
++{
++ s3c2410_gpio_cfgpin(S3C_FB_SPI_CLK(ch), 1);
++ s3c2410_gpio_cfgpin(S3C_FB_SPI_MOSI(ch), 1);
++ s3c2410_gpio_cfgpin(S3C_FB_SPI_CS(ch), 1);
++
++ s3c2410_gpio_pullup(S3C_FB_SPI_CLK(ch), 2);
++ s3c2410_gpio_pullup(S3C_FB_SPI_MOSI(ch), 2);
++ s3c2410_gpio_pullup(S3C_FB_SPI_CS(ch), 2);
++}
++
++#elif defined(CONFIG_PLAT_S3C64XX)
++
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-gpioj.h>
++
++#define S3C_FB_SPI_CLK(x) (S3C_GPC1 + (ch * 4))
++#define S3C_FB_SPI_MOSI(x) (S3C_GPC2 + (ch * 4))
++#define S3C_FB_SPI_CS(x) (S3C_GPC3 + (ch * 4))
++
++inline void s3cfb_spi_lcd_dclk(int ch, int value)
++{
++ gpio_set_value(S3C_FB_SPI_CLK(ch), value);
++}
++
++inline void s3cfb_spi_lcd_dseri(int ch, int value)
++{
++ gpio_set_value(S3C_FB_SPI_MOSI(ch), value);
++}
++
++inline void s3cfb_spi_lcd_den(int ch, int value)
++{
++ gpio_set_value(S3C_FB_SPI_CS(ch), value);
++}
++
++inline void s3cfb_spi_set_lcd_data(int ch)
++{
++ gpio_direction_output(S3C_FB_SPI_CLK(ch), 1);
++ gpio_direction_output(S3C_FB_SPI_MOSI(ch), 1);
++ gpio_direction_output(S3C_FB_SPI_CS(ch), 1);
++
++ gpio_pullup(S3C_FB_SPI_CLK(ch), 0);
++ gpio_pullup(S3C_FB_SPI_MOSI(ch), 0);
++ gpio_pullup(S3C_FB_SPI_CS(ch), 0);
++}
++
++#elif defined(CONFIG_PLAT_S5PC1XX)
++
++#include <asm/plat-s5p/regs-gpio.h>
++
++#define S5P_FB_SPI_MISO(x) (S5P_GPB0 + (ch * 4))
++#define S5P_FB_SPI_CLK(x) (S5P_GPB1 + (ch * 4))
++#define S5P_FB_SPI_MOSI(x) (S5P_GPB2 + (ch * 4))
++#define S5P_FB_SPI_nSS(x) (S5P_GPB3 + (ch * 4))
++
++inline void s3cfb_spi_lcd_dclk(int ch, int value)
++{
++ gpio_set_value(S5P_FB_SPI_CLK(ch), value);
++}
++
++inline void s3cfb_spi_lcd_dseri(int ch, int value)
++{
++ gpio_set_value(S5P_FB_SPI_MOSI(ch), value);
++}
++
++inline void s3cfb_spi_lcd_den(int ch, int value)
++{
++ gpio_set_value(S5P_FB_SPI_nSS(ch), value);
++}
++
++inline void s3cfb_spi_set_lcd_data(int ch)
++{
++ gpio_direction_output(S5P_FB_SPI_CLK(ch), 1);
++ gpio_direction_output(S5P_FB_SPI_MOSI(ch), 1);
++ gpio_direction_output(S5P_FB_SPI_nSS(ch), 1);
++
++ gpio_pullup(S5P_FB_SPI_CLK(ch), S5P_GPIO_PUD_DISABLE);
++ gpio_pullup(S5P_FB_SPI_MOSI(ch), S5P_GPIO_PUD_DISABLE);
++ gpio_pullup(S5P_FB_SPI_nSS(ch), S5P_GPIO_PUD_DISABLE);
++}
++
++#endif
++
+diff --git a/drivers/video/s3c/s5pfb_fimd5x.c b/drivers/video/s3c/s5pfb_fimd5x.c
+new file mode 100644
+index 0000000..099c192
+--- /dev/null
++++ b/drivers/video/s3c/s5pfb_fimd5x.c
+@@ -0,0 +1,1259 @@
++/*
++ * drivers/video/s3c/s3c64xxfb.c
++ *
++ * $Id: s5pfb_fimd5x.c,v 1.6 2008/09/19 06:15:38 jsgood Exp $
++ *
++ * Copyright (C) 2008 Jinsung Yang <jsgood.yang@samsung.com>
++ *
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file COPYING in the main directory of this archive for
++ * more details.
++ *
++ * S3C Frame Buffer Driver
++ * based on skeletonfb.c, sa1100fb.h, s3c2410fb.c
++ */
++
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/errno.h>
++#include <linux/string.h>
++#include <linux/mm.h>
++#include <linux/tty.h>
++#include <linux/slab.h>
++#include <linux/delay.h>
++#include <linux/fb.h>
++#include <linux/init.h>
++#include <linux/dma-mapping.h>
++#include <linux/string.h>
++#include <linux/ioctl.h>
++#include <linux/clk.h>
++#include <linux/platform_device.h>
++
++#include <asm/io.h>
++#include <asm/uaccess.h>
++
++#include <asm/mach/map.h>
++#include <asm/arch/gpio.h>
++#include <asm/arch/regs-lcd.h>
++#include <asm/arch/regs-s3c-clock.h>
++#include <asm/plat-s5p/regs-gpio.h>
++
++#if defined(CONFIG_PM)
++#include <asm/plat-s3c24xx/pm.h>
++#endif
++
++#include "s3cfb.h"
++
++int s3c_vs_offset = S3C_FB_DEFAULT_DISPLAY_OFFSET;
++int s3c_osd_alpha_level = S3C_FB_MAX_ALPHA_LEVEL;
++int s3c_display_brightness = S3C_FB_DEFAULT_BRIGHTNESS;
++static int s3c_palette_win;
++
++s3c_fimd_info_t s3c_fimd = {
++ .vidcon0 = S3C_VIDCON0_INTERLACE_F_PROGRESSIVE | S3C_VIDCON0_VIDOUT_RGB_IF | S3C_VIDCON0_L1_DATA16_SUB_16_MODE | \
++ S3C_VIDCON0_L0_DATA16_MAIN_16_MODE | S3C_VIDCON0_PNRMODE_RGB_P | \
++ S3C_VIDCON0_CLKVALUP_ALWAYS | S3C_VIDCON0_CLKDIR_DIVIDED | S3C_VIDCON0_CLKSEL_F_HCLK | \
++ S3C_VIDCON0_ENVID_DISABLE | S3C_VIDCON0_ENVID_F_DISABLE,
++
++ .dithmode = (S3C_DITHMODE_RDITHPOS_5BIT | S3C_DITHMODE_GDITHPOS_6BIT | S3C_DITHMODE_BDITHPOS_5BIT ) & S3C_DITHMODE_DITHERING_DISABLE,
++
++#if defined (CONFIG_FB_S3C_BPP_8)
++ .wincon0 = S3C_WINCONx_BYTSWP_ENABLE | S3C_WINCONx_BURSTLEN_4WORD | S3C_WINCONx_BPPMODE_F_8BPP_PAL,
++ .wincon1 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_4WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1,
++ .bpp = S3C_FB_PIXEL_BPP_8,
++ .bytes_per_pixel = 1,
++ .wpalcon = S3C_WPALCON_W0PAL_16BIT,
++
++#elif defined (CONFIG_FB_S3C_BPP_16)
++ .wincon0 = S3C_WINCONx_ENLOCAL_DMA | S3C_WINCONx_BUFSEL_1 | S3C_WINCONx_BUFAUTOEN_DISABLE | \
++ S3C_WINCONx_BITSWP_DISABLE | S3C_WINCONx_BYTSWP_DISABLE | S3C_WINCONx_HAWSWP_ENABLE | \
++ S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_ENWIN_F_DISABLE,
++
++ .wincon1 = S3C_WINCONx_ENLOCAL_DMA | S3C_WINCONx_BUFSEL_0 | S3C_WINCONx_BUFAUTOEN_DISABLE | \
++ S3C_WINCONx_BITSWP_DISABLE | S3C_WINCONx_BYTSWP_DISABLE | S3C_WINCONx_HAWSWP_ENABLE | \
++ S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_BPPMODE_F_16BPP_565 | \
++ S3C_WINCONx_ALPHA_SEL_1 | S3C_WINCONx_ENWIN_F_DISABLE,
++
++ .wincon2 = S3C_WINCONx_ENLOCAL_DMA | S3C_WINCONx_BITSWP_DISABLE | S3C_WINCONx_BYTSWP_DISABLE | \
++ S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_4WORD | S3C_WINCONx_BURSTLEN_16WORD | \
++ S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_ALPHA_SEL_1 | S3C_WINCONx_ENWIN_F_DISABLE,
++
++ .wincon3 = S3C_WINCONx_BITSWP_DISABLE | S3C_WINCONx_BYTSWP_DISABLE | S3C_WINCONx_HAWSWP_ENABLE | \
++ S3C_WINCONx_BURSTLEN_4WORD | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BLD_PIX_PLANE | \
++ S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_ALPHA_SEL_1 | S3C_WINCONx_ENWIN_F_DISABLE,
++
++ .wincon4 = S3C_WINCONx_BITSWP_DISABLE | S3C_WINCONx_BYTSWP_DISABLE | S3C_WINCONx_HAWSWP_ENABLE | \
++ S3C_WINCONx_BURSTLEN_4WORD | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BLD_PIX_PLANE |
++ S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_ALPHA_SEL_1 | S3C_WINCONx_ENWIN_F_DISABLE,
++
++ .bpp = S3C_FB_PIXEL_BPP_16,
++ .bytes_per_pixel = 2,
++ .wpalcon = S3C_WPALCON_W0PAL_16BIT,
++
++#elif defined (CONFIG_FB_S3C_BPP_24)
++ .wincon0 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888,
++ .wincon1 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1,
++ .wincon2 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1,
++ .wincon3 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1,
++ .wincon4 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1,
++ .bpp = S3C_FB_PIXEL_BPP_24,
++ .bytes_per_pixel = 4,
++ .wpalcon = S3C_WPALCON_W0PAL_24BIT,
++#endif
++
++ .vidosd1c = S3C_VIDOSDxC_ALPHA1_B(S3C_FB_MAX_ALPHA_LEVEL) | S3C_VIDOSDxC_ALPHA1_G(S3C_FB_MAX_ALPHA_LEVEL) | S3C_VIDOSDxC_ALPHA1_R(S3C_FB_MAX_ALPHA_LEVEL),
++ .vidosd2c = S3C_VIDOSDxC_ALPHA1_B(S3C_FB_MAX_ALPHA_LEVEL) | S3C_VIDOSDxC_ALPHA1_G(S3C_FB_MAX_ALPHA_LEVEL) | S3C_VIDOSDxC_ALPHA1_R(S3C_FB_MAX_ALPHA_LEVEL),
++ .vidosd3c = S3C_VIDOSDxC_ALPHA1_B(S3C_FB_MAX_ALPHA_LEVEL) | S3C_VIDOSDxC_ALPHA1_G(S3C_FB_MAX_ALPHA_LEVEL) | S3C_VIDOSDxC_ALPHA1_R(S3C_FB_MAX_ALPHA_LEVEL),
++ .vidosd4c = S3C_VIDOSDxC_ALPHA1_B(S3C_FB_MAX_ALPHA_LEVEL) | S3C_VIDOSDxC_ALPHA1_G(S3C_FB_MAX_ALPHA_LEVEL) | S3C_VIDOSDxC_ALPHA1_R(S3C_FB_MAX_ALPHA_LEVEL),
++
++ .vidintcon0 = S3C_VIDINTCON0_FRAMESEL0_VSYNC | S3C_VIDINTCON0_FRAMESEL1_NONE | S3C_VIDINTCON0_INTFRMEN_DISABLE | \
++ S3C_VIDINTCON0_FIFOSEL_WIN0 | S3C_VIDINTCON0_FIFOLEVEL_25 | S3C_VIDINTCON0_INTFIFOEN_DISABLE | S3C_VIDINTCON0_INTEN_ENABLE,
++ .vidintcon1 = 0,
++
++ .xoffset = 0,
++ .yoffset = 0,
++
++ .w1keycon0 = S3C_WxKEYCON0_KEYBLEN_DISABLE | S3C_WxKEYCON0_KEYEN_F_DISABLE | S3C_WxKEYCON0_DIRCON_MATCH_FG_IMAGE | S3C_WxKEYCON0_COMPKEY(0x0),
++ .w1keycon1 = S3C_WxKEYCON1_COLVAL(0xffffff),
++ .w2keycon0 = S3C_WxKEYCON0_KEYBLEN_DISABLE | S3C_WxKEYCON0_KEYEN_F_DISABLE | S3C_WxKEYCON0_DIRCON_MATCH_FG_IMAGE | S3C_WxKEYCON0_COMPKEY(0x0),
++ .w2keycon1 = S3C_WxKEYCON1_COLVAL(0xffffff),
++ .w3keycon0 = S3C_WxKEYCON0_KEYBLEN_DISABLE | S3C_WxKEYCON0_KEYEN_F_DISABLE | S3C_WxKEYCON0_DIRCON_MATCH_FG_IMAGE | S3C_WxKEYCON0_COMPKEY(0x0),
++ .w3keycon1 = S3C_WxKEYCON1_COLVAL(0xffffff),
++ .w4keycon0 = S3C_WxKEYCON0_KEYBLEN_DISABLE | S3C_WxKEYCON0_KEYEN_F_DISABLE | S3C_WxKEYCON0_DIRCON_MATCH_FG_IMAGE | S3C_WxKEYCON0_COMPKEY(0x0),
++ .w4keycon1 = S3C_WxKEYCON1_COLVAL(0xffffff),
++
++ .sync = 0,
++ .cmap_static = 1,
++};
++
++/* should be fixed for c100 */
++#if defined(CONFIG_S3C6410_PWM)
++void s3cfb_set_brightness(int val)
++{
++ int channel = 1; /* must use channel-1 */
++ int usec = 0; /* don't care value */
++ unsigned long tcnt = 1000;
++ unsigned long tcmp = 0;
++
++ if (val < 0)
++ val = 0;
++
++ if (val > S3C_FB_MAX_BRIGHTNESS)
++ val = S3C_FB_MAX_BRIGHTNESS;
++
++ s3c_display_brightness = val;
++ tcmp = val * 50;
++
++ s3c6410_timer_setup(channel, usec, tcnt, tcmp);
++}
++#endif
++
++#if defined(CONFIG_FB_S3C_DOUBLE_BUFFERING)
++
++static void s3cfb_change_buff(int req_win, int req_fb)
++{
++ switch (req_win) {
++ case 0:
++ if (req_fb == 0)
++ s3c_fimd.wincon0 &= ~(1 << 20);
++ else
++ s3c_fimd.wincon0 |= (1 << 20);
++
++ writel(s3c_fimd.wincon0 | S3C_WINCONx_ENWIN_F_ENABLE, S3C_WINCON0);
++ break;
++
++ case 1:
++ if (req_fb == 0)
++ s3c_fimd.wincon1 &= ~(1 << 20);
++ else
++ s3c_fimd.wincon1 |= (1 << 20);
++
++ writel(s3c_fimd.wincon1 | S3C_WINCONx_ENWIN_F_ENABLE, S3C_WINCON1);
++ break;
++
++ default:
++ break;
++ }
++}
++
++#endif
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++static int s3cfb_set_vs_registers(int vs_cmd)
++{
++ int page_width, offset;
++ int shift_value;
++
++ page_width = s3c_fimd.xres * s3c_fimd.bytes_per_pixel;
++ offset = (s3c_fimd.xres_virtual - s3c_fimd.xres) * s3c_fimd.bytes_per_pixel;
++
++ switch (vs_cmd){
++ case S3C_FB_VS_SET:
++ /* size of buffer */
++ s3c_fimd.vidw00add2 = S3C_VIDWxxADD2_OFFSIZE_F(offset) | S3C_VIDWxxADD2_PAGEWIDTH_F(page_width);
++ writel(s3c_fimd.vidw00add2, S3C_VIDW00ADD2);
++ break;
++
++ case S3C_FB_VS_MOVE_LEFT:
++ if (s3c_fimd.xoffset < s3c_vs_offset)
++ shift_value = s3c_fimd.xoffset;
++ else
++ shift_value = s3c_vs_offset;
++
++ s3c_fimd.xoffset -= shift_value;
++
++ /* For buffer start address */
++ s3c_fimd.vidw00add0b0 = s3c_fimd.vidw00add0b0 - (s3c_fimd.bytes_per_pixel * shift_value);
++ s3c_fimd.vidw00add0b1 = s3c_fimd.vidw00add0b1 - (s3c_fimd.bytes_per_pixel * shift_value);
++ break;
++
++ case S3C_FB_VS_MOVE_RIGHT:
++ if ((s3c_vs_info.v_width - (s3c_fimd.xoffset + s3c_vs_info.width)) < (s3c_vs_offset))
++ shift_value = s3c_vs_info.v_width - (s3c_fimd.xoffset + s3c_vs_info.width);
++ else
++ shift_value = s3c_vs_offset;
++
++ s3c_fimd.xoffset += shift_value;
++
++ /* For buffer start address */
++ s3c_fimd.vidw00add0b0 = s3c_fimd.vidw00add0b0 + (s3c_fimd.bytes_per_pixel * shift_value);
++ s3c_fimd.vidw00add0b1 = s3c_fimd.vidw00add0b1 + (s3c_fimd.bytes_per_pixel * shift_value);
++ break;
++
++ case S3C_FB_VS_MOVE_UP:
++ if (s3c_fimd.yoffset < s3c_vs_offset)
++ shift_value = s3c_fimd.yoffset;
++ else
++ shift_value = s3c_vs_offset;
++
++ s3c_fimd.yoffset -= shift_value;
++
++ /* For buffer start address */
++ s3c_fimd.vidw00add0b0 = s3c_fimd.vidw00add0b0 - (s3c_fimd.xres_virtual * s3c_fimd.bytes_per_pixel * shift_value);
++ s3c_fimd.vidw00add0b1 = s3c_fimd.vidw00add0b1 - (s3c_fimd.xres_virtual * s3c_fimd.bytes_per_pixel * shift_value);
++ break;
++
++ case S3C_FB_VS_MOVE_DOWN:
++ if ((s3c_vs_info.v_height - (s3c_fimd.yoffset + s3c_vs_info.height)) < (s3c_vs_offset))
++ shift_value = s3c_vs_info.v_height - (s3c_fimd.yoffset + s3c_vs_info.height);
++ else
++ shift_value = s3c_vs_offset;
++
++ s3c_fimd.yoffset += shift_value;
++
++ /* For buffer start address */
++ s3c_fimd.vidw00add0b0 = s3c_fimd.vidw00add0b0 + (s3c_fimd.xres_virtual * s3c_fimd.bytes_per_pixel * shift_value);
++ s3c_fimd.vidw00add0b1 = s3c_fimd.vidw00add0b1 + (s3c_fimd.xres_virtual * s3c_fimd.bytes_per_pixel * shift_value);
++ break;
++
++ default:
++ return -EINVAL;
++ }
++
++ /* End address */
++ s3c_fimd.vidw00add1b0 = S3C_VIDWxxADD1_VBASEL_F(s3c_fimd.vidw00add0b0 + (page_width + offset) * (s3c_fimd.yres));
++ s3c_fimd.vidw00add1b1 = S3C_VIDWxxADD1_VBASEL_F(s3c_fimd.vidw00add0b1 + (page_width + offset) * (s3c_fimd.yres));
++
++ writel(s3c_fimd.vidw00add0b0, S3C_VIDW00ADD0B0);
++ writel(s3c_fimd.vidw00add0b1, S3C_VIDW00ADD0B1);
++ writel(s3c_fimd.vidw00add1b0, S3C_VIDW00ADD1B0);
++ writel(s3c_fimd.vidw00add1b1, S3C_VIDW00ADD1B1);
++
++ return 0;
++}
++#endif
++
++void s3cfb_write_palette(s3c_fb_info_t *fbi)
++{
++ unsigned int i;
++ unsigned long ent;
++ unsigned int win_num = fbi->win_id;
++
++ fbi->palette_ready = 0;
++
++ writel((s3c_fimd.wpalcon | S3C_WPALCON_PALUPDATEEN), S3C_WPALCON);
++
++ for (i = 0; i < 256; i++) {
++ if ((ent = fbi->palette_buffer[i]) == S3C_FB_PALETTE_BUFF_CLEAR)
++ continue;
++
++ writel(ent, S3C_TFTPAL0(i) + 0x400 * win_num);
++
++ /* it seems the only way to know exactly
++ * if the palette wrote ok, is to check
++ * to see if the value verifies ok
++ */
++ if (readl(S3C_TFTPAL0(i) + 0x400 * win_num) == ent) {
++ fbi->palette_buffer[i] = S3C_FB_PALETTE_BUFF_CLEAR;
++ } else {
++ fbi->palette_ready = 1; /* retry */
++ printk("Retry writing into the palette\n");
++ }
++ }
++
++ writel(s3c_fimd.wpalcon, S3C_WPALCON);
++}
++
++irqreturn_t s3cfb_irq(int irqno, void *param)
++{
++ unsigned long buffer_size = 0;
++ unsigned int i;
++ unsigned int buffer_page_offset, buffer_page_width;
++ unsigned int fb_start_address, fb_end_address;
++
++ if (s3c_fb_info[s3c_palette_win].palette_ready)
++ s3cfb_write_palette(&s3c_fb_info[s3c_palette_win]);
++
++ for (i = 0; i < CONFIG_FB_S3C_NUM; i++) {
++ if (s3c_fb_info[i].next_fb_info_change_req) {
++ /* fb variable setting */
++ s3c_fb_info[i].fb.fix.smem_start = s3c_fb_info[i].next_fb_info.phy_start_addr;
++
++ s3c_fb_info[i].fb.fix.line_length = s3c_fb_info[i].next_fb_info.xres_virtual *
++ s3c_fimd.bytes_per_pixel;
++
++ s3c_fb_info[i].fb.fix.smem_len = s3c_fb_info[i].next_fb_info.xres_virtual *
++ s3c_fb_info[i].next_fb_info.yres_virtual *
++ s3c_fimd.bytes_per_pixel;
++
++ s3c_fb_info[i].fb.var.xres = s3c_fb_info[i].next_fb_info.xres;
++ s3c_fb_info[i].fb.var.yres = s3c_fb_info[i].next_fb_info.yres;
++ s3c_fb_info[i].fb.var.xres_virtual = s3c_fb_info[i].next_fb_info.xres_virtual;
++ s3c_fb_info[i].fb.var.yres_virtual= s3c_fb_info[i].next_fb_info.yres_virtual;
++ s3c_fb_info[i].fb.var.xoffset = s3c_fb_info[i].next_fb_info.xoffset;
++ s3c_fb_info[i].fb.var.yoffset = s3c_fb_info[i].next_fb_info.yoffset;
++
++ s3c_fb_info[i].lcd_offset_x= s3c_fb_info[i].next_fb_info.lcd_offset_x;
++ s3c_fb_info[i].lcd_offset_y= s3c_fb_info[i].next_fb_info.lcd_offset_y;
++
++
++ /* fb start / end address setting */
++ fb_start_address = s3c_fb_info[i].next_fb_info.phy_start_addr +
++ s3c_fb_info[i].fb.fix.line_length * s3c_fb_info[i].next_fb_info.yoffset +
++ s3c_fb_info[i].next_fb_info.xoffset * s3c_fimd.bytes_per_pixel;
++
++ fb_end_address = fb_start_address + s3c_fb_info[i].fb.fix.line_length *
++ s3c_fb_info[i].next_fb_info.yres;
++
++ writel(fb_start_address, S3C_VIDW00ADD0B0 + 0x8 * i);
++ writel(S3C_VIDWxxADD1_VBASEL_F(fb_end_address), S3C_VIDW00ADD1B0 + 0x8 * i);
++
++
++ /* fb virtual / visible size setting */
++ buffer_page_width = s3c_fb_info[i].next_fb_info.xres * s3c_fimd.bytes_per_pixel;
++
++ buffer_page_offset = (s3c_fb_info[i].next_fb_info.xres_virtual -
++ s3c_fb_info[i].next_fb_info.xres) * s3c_fimd.bytes_per_pixel;
++
++ buffer_size = S3C_VIDWxxADD2_OFFSIZE_F(buffer_page_offset) |
++ (S3C_VIDWxxADD2_PAGEWIDTH_F(buffer_page_width));
++
++ writel(buffer_size, S3C_VIDW00ADD2 + 0x04 * i);
++
++ /* LCD position setting */
++ writel(S3C_VIDOSDxA_OSD_LTX_F(s3c_fb_info[i].next_fb_info.lcd_offset_x) |
++ S3C_VIDOSDxA_OSD_LTY_F(s3c_fb_info[i].next_fb_info.lcd_offset_y), S3C_VIDOSD0A+(0x10 * i));
++
++ writel(S3C_VIDOSDxB_OSD_RBX_F(s3c_fb_info[i].next_fb_info.lcd_offset_x - 1 + s3c_fb_info[i].next_fb_info.xres) |
++ S3C_VIDOSDxB_OSD_RBY_F(s3c_fb_info[i].next_fb_info.lcd_offset_y - 1 + s3c_fb_info[i].next_fb_info.yres),
++ S3C_VIDOSD0B + (0x10 * i));
++
++
++ /* fb size setting */
++ if (i == 0)
++ writel(S3C_VIDOSD0C_OSDSIZE(s3c_fb_info[i].next_fb_info.xres * s3c_fb_info[i].next_fb_info.yres), S3C_VIDOSD0C);
++ else if (i == 1)
++ writel(S3C_VIDOSD0C_OSDSIZE(s3c_fb_info[i].next_fb_info.xres * s3c_fb_info[i].next_fb_info.yres), S3C_VIDOSD1D);
++ else if (i == 2)
++ writel(S3C_VIDOSD0C_OSDSIZE(s3c_fb_info[i].next_fb_info.xres * s3c_fb_info[i].next_fb_info.yres), S3C_VIDOSD2D);
++
++ s3c_fb_info[i].next_fb_info_change_req = 0;
++ }
++ }
++
++ /* for clearing the interrupt source */
++ writel(readl(S3C_VIDINTCON1), S3C_VIDINTCON1);
++
++ s3c_vsync_info.count++;
++ wake_up_interruptible(&s3c_vsync_info.wait_queue);
++
++ return IRQ_HANDLED;
++}
++
++void s3cfb_enable_local_post(int in_yuv)
++{
++ unsigned int value;
++
++ s3c_fimd.wincon0 &= ~(1 << 22 | 1 << 13);
++ value = S3C_WINCONx_ENLOCAL_POST | S3C_WINCONx_ENWIN_F_ENABLE;
++
++ if (in_yuv)
++ value |= S3C_WINCONx_INRGB_YUV;
++
++ writel(s3c_fimd.wincon0 | value, S3C_WINCON0);
++}
++
++EXPORT_SYMBOL(s3cfb_enable_local_post);
++
++void s3cfb_enable_dma(void)
++{
++ u32 value;
++
++ s3c_fimd.wincon0 &= ~((1<<22)| (1<<13));
++ value = S3C_WINCONx_ENLOCAL_DMA | S3C_WINCONx_ENWIN_F_ENABLE;
++
++ __raw_writel(s3c_fimd.wincon0 | value, S3C_WINCON0);
++}
++
++EXPORT_SYMBOL(s3cfb_enable_dma);
++
++int s3cfb_init_registers(s3c_fb_info_t *fbi)
++{
++ struct clk *lcd_clock;
++ struct fb_var_screeninfo *var = &fbi->fb.var;
++ unsigned long flags = 0, page_width = 0, offset = 0;
++ unsigned long video_phy_temp_f1 = fbi->screen_dma_f1;
++ unsigned long video_phy_temp_f2 = fbi->screen_dma_f2;
++ int win_num = fbi->win_id;
++
++ /* Initialise LCD with values from hare */
++ local_irq_save(flags);
++
++ page_width = var->xres * s3c_fimd.bytes_per_pixel;
++ offset = (var->xres_virtual - var->xres) * s3c_fimd.bytes_per_pixel;
++
++ if (win_num == 0) {
++ s3c_fimd.vidcon0 = s3c_fimd.vidcon0 & ~(S3C_VIDCON0_ENVID_ENABLE | S3C_VIDCON0_ENVID_F_ENABLE);
++ writel(s3c_fimd.vidcon0, S3C_VIDCON0);
++
++ lcd_clock = clk_get(NULL, "lcd");
++ s3c_fimd.vidcon0 |= S3C_VIDCON0_CLKVAL_F((int) ((clk_get_rate(lcd_clock) / s3c_fimd.pixclock) - 1));
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++ offset = 0;
++ s3c_fimd.vidw00add0b0 = video_phy_temp_f1;
++ s3c_fimd.vidw00add0b1 = video_phy_temp_f2;
++ s3c_fimd.vidw00add1b0 = S3C_VIDWxxADD1_VBASEL_F((unsigned long) video_phy_temp_f1 + (page_width + offset) * (var->yres));
++ s3c_fimd.vidw00add1b1 = S3C_VIDWxxADD1_VBASEL_F((unsigned long) video_phy_temp_f2 + (page_width + offset) * (var->yres));
++#endif
++ }
++
++ writel(video_phy_temp_f1, S3C_VIDW00ADD0B0 + (0x08 * win_num));
++ writel(S3C_VIDWxxADD1_VBASEL_F((unsigned long) video_phy_temp_f1 + (page_width + offset) * (var->yres)), S3C_VIDW00ADD1B0 + (0x08 * win_num));
++ writel(S3C_VIDWxxADD2_OFFSIZE_F(offset) | (S3C_VIDWxxADD2_PAGEWIDTH_F(page_width)), S3C_VIDW00ADD2 + (0x04 * win_num));
++
++ if (win_num < 2) {
++ writel(video_phy_temp_f2, S3C_VIDW00ADD0B1 + (0x08 * win_num));
++ writel(S3C_VIDWxxADD1_VBASEL_F((unsigned long) video_phy_temp_f2 + (page_width + offset) * (var->yres)), S3C_VIDW00ADD1B1 + (0x08 * win_num));
++ }
++
++ switch (win_num) {
++ case 0:
++ writel(s3c_fimd.wincon0, S3C_WINCON0);
++ writel(s3c_fimd.vidcon0, S3C_VIDCON0);
++ writel(s3c_fimd.vidcon1, S3C_VIDCON1);
++ writel(s3c_fimd.vidtcon0, S3C_VIDTCON0);
++ writel(s3c_fimd.vidtcon1, S3C_VIDTCON1);
++ writel(s3c_fimd.vidtcon2, S3C_VIDTCON2);
++ writel(s3c_fimd.dithmode, S3C_DITHMODE);
++ writel(s3c_fimd.vidintcon0, S3C_VIDINTCON0);
++ writel(s3c_fimd.vidintcon1, S3C_VIDINTCON1);
++ writel(s3c_fimd.vidosd0a, S3C_VIDOSD0A);
++ writel(s3c_fimd.vidosd0b, S3C_VIDOSD0B);
++ writel(s3c_fimd.vidosd0c, S3C_VIDOSD0C);
++ writel(s3c_fimd.wpalcon, S3C_WPALCON);
++
++ s3cfb_onoff_win(fbi, ON);
++ break;
++
++ case 1:
++ writel(s3c_fimd.wincon1, S3C_WINCON1);
++ writel(s3c_fimd.vidosd1a, S3C_VIDOSD1A);
++ writel(s3c_fimd.vidosd1b, S3C_VIDOSD1B);
++ writel(s3c_fimd.vidosd1c, S3C_VIDOSD1C);
++ writel(s3c_fimd.vidosd1d, S3C_VIDOSD1D);
++ writel(s3c_fimd.wpalcon, S3C_WPALCON);
++
++ s3cfb_onoff_win(fbi, OFF);
++ break;
++
++ case 2:
++ writel(s3c_fimd.wincon2, S3C_WINCON2);
++ writel(s3c_fimd.vidosd2a, S3C_VIDOSD2A);
++ writel(s3c_fimd.vidosd2b, S3C_VIDOSD2B);
++ writel(s3c_fimd.vidosd2c, S3C_VIDOSD2C);
++ writel(s3c_fimd.vidosd2d, S3C_VIDOSD2D);
++ writel(s3c_fimd.wpalcon, S3C_WPALCON);
++
++ s3cfb_onoff_win(fbi, OFF);
++ break;
++
++ case 3:
++ writel(s3c_fimd.wincon3, S3C_WINCON3);
++ writel(s3c_fimd.vidosd3a, S3C_VIDOSD3A);
++ writel(s3c_fimd.vidosd3b, S3C_VIDOSD3B);
++ writel(s3c_fimd.vidosd3c, S3C_VIDOSD3C);
++ writel(s3c_fimd.wpalcon, S3C_WPALCON);
++
++ s3cfb_onoff_win(fbi, OFF);
++ break;
++
++ case 4:
++ writel(s3c_fimd.wincon4, S3C_WINCON4);
++ writel(s3c_fimd.vidosd4a, S3C_VIDOSD4A);
++ writel(s3c_fimd.vidosd4b, S3C_VIDOSD4B);
++ writel(s3c_fimd.vidosd4c, S3C_VIDOSD4C);
++ writel(s3c_fimd.wpalcon, S3C_WPALCON);
++
++ s3cfb_onoff_win(fbi, OFF);
++ break;
++ }
++
++ local_irq_restore(flags);
++
++ return 0;
++ }
++
++void s3cfb_activate_var(s3c_fb_info_t *fbi, struct fb_var_screeninfo *var)
++{
++ DPRINTK("%s: var->bpp = %d\n", __FUNCTION__, var->bits_per_pixel);
++
++ switch (var->bits_per_pixel) {
++ case 8:
++ s3c_fimd.wincon0 = S3C_WINCONx_BYTSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_8BPP_PAL;
++ s3c_fimd.wincon1 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.wincon2 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.wincon3 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.wincon4 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.bpp = S3C_FB_PIXEL_BPP_8;
++ s3c_fimd.bytes_per_pixel = 1;
++ s3c_fimd.wpalcon = S3C_WPALCON_W0PAL_16BIT;
++ break;
++
++ case 16:
++ s3c_fimd.wincon0 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565;
++ s3c_fimd.wincon1 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.wincon2 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.wincon3 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.wincon4 = S3C_WINCONx_HAWSWP_ENABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_16BPP_565 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.bpp = S3C_FB_PIXEL_BPP_16;
++ s3c_fimd.bytes_per_pixel = 2;
++ break;
++
++ case 24:
++ s3c_fimd.wincon0 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888;
++ s3c_fimd.wincon1 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.wincon2 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.wincon3 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.wincon4 = S3C_WINCONx_HAWSWP_DISABLE | S3C_WINCONx_BURSTLEN_16WORD | S3C_WINCONx_BPPMODE_F_24BPP_888 | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1;
++ s3c_fimd.bpp = S3C_FB_PIXEL_BPP_24;
++ s3c_fimd.bytes_per_pixel = 4;
++ break;
++
++ case 32:
++ s3c_fimd.bytes_per_pixel = 4;
++ break;
++ }
++
++ /* write new registers */
++ writel(s3c_fimd.wincon0, S3C_WINCON0);
++ writel(s3c_fimd.wincon1, S3C_WINCON1);
++ writel(s3c_fimd.wincon2, S3C_WINCON2);
++ writel(s3c_fimd.wincon3, S3C_WINCON3);
++ writel(s3c_fimd.wincon4, S3C_WINCON4);
++ writel(s3c_fimd.wpalcon, S3C_WPALCON);
++ writel(s3c_fimd.wincon0 | S3C_WINCONx_ENWIN_F_ENABLE, S3C_WINCON0);
++ writel(s3c_fimd.vidcon0 | S3C_VIDCON0_ENVID_ENABLE | S3C_VIDCON0_ENVID_F_ENABLE, S3C_VIDCON0);
++}
++
++/* JJNAHM comment.
++ * We had some problems related to frame buffer address.
++ * We used 2 frame buffers (FB0 and FB1) and GTK used FB1.
++ * When GTK launched, GTK set FB0's address to FB1's address.
++ * (GTK calls s3c_fb_pan_display() and then it calls this s3c_fb_set_lcdaddr())
++ * Even though fbi->win_id is not 0, above original codes set ONLY FB0's address.
++ * So, I modified the codes like below.
++ * It works by fbi->win_id value.
++ * Below codes are not verified yet
++ * and there are nothing about Double buffering features
++ */
++void s3cfb_set_fb_addr(s3c_fb_info_t *fbi)
++{
++ unsigned long video_phy_temp_f1 = fbi->screen_dma_f1;
++ unsigned long start_address, end_address;
++ unsigned int start;
++
++ start = fbi->fb.fix.line_length * fbi->fb.var.yoffset;
++
++ /* for buffer start address and end address */
++ start_address = video_phy_temp_f1 + start;
++ end_address = start_address + (fbi->fb.fix.line_length * fbi->fb.var.yres);
++
++ switch (fbi->win_id)
++ {
++ case 0:
++ s3c_fimd.vidw00add0b0 = start_address;
++ s3c_fimd.vidw00add1b0 = end_address;
++ __raw_writel(s3c_fimd.vidw00add0b0, S3C_VIDW00ADD0B0);
++ __raw_writel(s3c_fimd.vidw00add1b0, S3C_VIDW00ADD1B0);
++ break;
++
++ case 1:
++ s3c_fimd.vidw01add0b0 = start_address;
++ s3c_fimd.vidw01add1b0 = end_address;
++ __raw_writel(s3c_fimd.vidw01add0b0, S3C_VIDW01ADD0B0);
++ __raw_writel(s3c_fimd.vidw01add1b0, S3C_VIDW01ADD1B0);
++ break;
++
++ case 2:
++ s3c_fimd.vidw02add0 = start_address;
++ s3c_fimd.vidw02add1 = end_address;
++ __raw_writel(s3c_fimd.vidw02add0, S3C_VIDW02ADD0);
++ __raw_writel(s3c_fimd.vidw02add1, S3C_VIDW02ADD1);
++ break;
++
++ case 3:
++ s3c_fimd.vidw03add0 = start_address;
++ s3c_fimd.vidw03add1 = end_address;
++ __raw_writel(s3c_fimd.vidw03add0, S3C_VIDW03ADD0);
++ __raw_writel(s3c_fimd.vidw03add1, S3C_VIDW03ADD1);
++ break;
++
++ case 4:
++ s3c_fimd.vidw04add0 = start_address;
++ s3c_fimd.vidw04add1 = end_address;
++ __raw_writel(s3c_fimd.vidw04add0, S3C_VIDW04ADD0);
++ __raw_writel(s3c_fimd.vidw04add1, S3C_VIDW04ADD1);
++ break;
++ }
++}
++
++static int s3cfb_set_alpha_level(s3c_fb_info_t *fbi, unsigned int level, unsigned int alpha_index)
++{
++ unsigned long alpha_val;
++ int win_num = fbi->win_id;
++
++ if (win_num == 0) {
++ printk("WIN0 do not support alpha blending.\n");
++ return -1;
++ }
++
++ alpha_val = readl(S3C_VIDOSD0C+(0x10 * win_num));
++
++ if (alpha_index == 0) {
++ alpha_val &= ~(S3C_VIDOSDxC_ALPHA0_B(0xf) | S3C_VIDOSDxC_ALPHA0_G(0xf) | S3C_VIDOSDxC_ALPHA0_R(0xf));
++ alpha_val |= S3C_VIDOSDxC_ALPHA0_B(level) | S3C_VIDOSDxC_ALPHA0_G(level) | S3C_VIDOSDxC_ALPHA0_R(level);
++ } else {
++ alpha_val &= ~(S3C_VIDOSDxC_ALPHA1_B(0xf) | S3C_VIDOSDxC_ALPHA1_G(0xf) | S3C_VIDOSDxC_ALPHA1_R(0xf));
++ alpha_val = S3C_VIDOSDxC_ALPHA1_B(level) | S3C_VIDOSDxC_ALPHA1_G(level) | S3C_VIDOSDxC_ALPHA1_R(level);
++ }
++
++ writel(alpha_val, S3C_VIDOSD0C + (0x10 * win_num));
++
++ return 0;
++}
++
++int s3cfb_set_alpha_mode(s3c_fb_info_t *fbi, int mode)
++{
++ unsigned long alpha_mode;
++ int win_num = fbi->win_id;
++
++ if (win_num == 0) {
++ printk("WIN0 do not support alpha blending.\n");
++ return -1;
++ }
++
++ alpha_mode = readl(S3C_WINCON0 + (0x04 * win_num));
++ alpha_mode &= ~(S3C_WINCONx_BLD_PIX_PIXEL | S3C_WINCONx_ALPHA_SEL_1);
++
++ switch (mode) {
++ case 0: /* Plane Blending */
++ writel(alpha_mode | S3C_WINCONx_BLD_PIX_PLANE | S3C_WINCONx_ALPHA_SEL_1, S3C_WINCON0 + (0x04 * win_num));
++ break;
++
++ case 1: /* Pixel Blending & chroma(color) key */
++ writel(alpha_mode | S3C_WINCONx_BLD_PIX_PIXEL | S3C_WINCONx_ALPHA_SEL_0, S3C_WINCON0 + (0x04 * win_num));
++ break;
++ }
++
++ return 0;
++}
++
++int s3cfb_set_win_position(s3c_fb_info_t *fbi, int left_x, int top_y, int width, int height)
++{
++ struct fb_var_screeninfo *var= &fbi->fb.var;
++ int win_num = fbi->win_id;
++
++ writel(S3C_VIDOSDxA_OSD_LTX_F(left_x) | S3C_VIDOSDxA_OSD_LTY_F(top_y), S3C_VIDOSD0A + (0x10 * win_num));
++ writel(S3C_VIDOSDxB_OSD_RBX_F(width - 1 + left_x) | S3C_VIDOSDxB_OSD_RBY_F(height - 1 + top_y), S3C_VIDOSD0B + (0x10 * win_num));
++
++ var->xoffset = left_x;
++ var->yoffset = top_y;
++
++ return 0;
++}
++
++int s3cfb_set_win_size(s3c_fb_info_t *fbi, int width, int height)
++{
++ struct fb_var_screeninfo *var= &fbi->fb.var;
++ int win_num = fbi->win_id;
++
++ if (win_num == 1)
++ writel(S3C_VIDOSD0C_OSDSIZE(width * height), S3C_VIDOSD1D);
++
++ else if (win_num == 2)
++ writel(S3C_VIDOSD0C_OSDSIZE(width * height), S3C_VIDOSD2D);
++
++ var->xres = width;
++ var->yres = height;
++ var->xres_virtual = width;
++ var->yres_virtual = height;
++
++ return 0;
++}
++
++int s3cfb_set_fb_size(s3c_fb_info_t *fbi)
++{
++ struct fb_var_screeninfo *var= &fbi->fb.var;
++ int win_num = fbi->win_id;
++ unsigned long offset = 0;
++ unsigned long page_width = 0;
++ unsigned long fb_size = 0;
++
++ page_width = var->xres * s3c_fimd.bytes_per_pixel;
++ offset = (var->xres_virtual - var->xres) * s3c_fimd.bytes_per_pixel;
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++ if (win_num == 0)
++ offset=0;
++#endif
++
++ writel(S3C_VIDWxxADD1_VBASEL_F((unsigned long) readl(S3C_VIDW00ADD0B0 + (0x08 * win_num)) + (page_width + offset) * (var->yres)), S3C_VIDW00ADD1B0 + (0x08 * win_num));
++
++ if (win_num == 1)
++ writel(S3C_VIDWxxADD1_VBASEL_F((unsigned long) readl(S3C_VIDW00ADD0B1 + (0x08 * win_num)) + (page_width + offset) * (var->yres)), S3C_VIDW00ADD1B1 + (0x08 * win_num));
++
++ /* size of frame buffer */
++ fb_size = S3C_VIDWxxADD2_OFFSIZE_F(offset) | (S3C_VIDWxxADD2_PAGEWIDTH_F(page_width));
++
++ writel(fb_size, S3C_VIDW00ADD2 + (0x04 * win_num));
++
++ return 0;
++}
++
++void s3cfb_set_output_path(int out)
++{
++ unsigned int tmp;
++
++ tmp = readl(S3C_VIDCON0);
++
++ /* if output mode is LCD mode, Scan mode always should be progressive mode */
++ if (out == S3C_FB_OUTPUT_TV)
++ tmp &= ~(1 << 29);
++
++ tmp &= ~(0x7 << 26);
++ tmp |= (out << 26);
++
++ writel(tmp, S3C_VIDCON0);
++}
++
++EXPORT_SYMBOL(s3cfb_set_output_path);
++
++void s3cfb_enable_rgbport(int on)
++{
++ if (on)
++ writel(0x380, S3C_VIDCON2);
++ else
++ writel(0x0, S3C_VIDCON2);
++}
++
++EXPORT_SYMBOL(s3cfb_enable_rgbport);
++
++int s3cfb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
++{
++ s3c_fb_info_t *fbi = container_of(info, s3c_fb_info_t, fb);
++ s3c_win_info_t win_info;
++ s3c_color_key_info_t colkey_info;
++ s3c_color_val_info_t colval_info;
++ s3c_fb_dma_info_t dma_info;
++ s3c_fb_next_info_t next_fb_info;
++ struct fb_var_screeninfo *var= &fbi->fb.var;
++ unsigned int crt, alpha_level, alpha_mode;
++
++/* should be fixed for c100 */
++#if defined(CONFIG_S3C6410_PWM)
++ int brightness;
++#endif
++
++#if defined(CONFIG_FB_S3C_DOUBLE_BUFFERING)
++ unsigned int f_num_val;
++#endif
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++ s3c_vs_info_t vs_info;
++#endif
++
++ switch(cmd){
++ case S3C_FB_GET_INFO:
++ dma_info.map_dma_f1 = fbi->map_dma_f1;
++ dma_info.map_dma_f2 = fbi->map_dma_f2;
++
++ if(copy_to_user((void *) arg, (const void *) &dma_info, sizeof(s3c_fb_dma_info_t)))
++ return -EFAULT;
++ break;
++
++ case S3C_FB_OSD_SET_INFO:
++ if (copy_from_user(&win_info, (s3c_win_info_t *) arg, sizeof(s3c_win_info_t)))
++ return -EFAULT;
++
++ s3cfb_init_win(fbi, win_info.bpp, win_info.left_x, win_info.top_y, win_info.width, win_info.height, OFF);
++ break;
++
++ case S3C_FB_OSD_START:
++ s3cfb_onoff_win(fbi, ON);
++ break;
++
++ case S3C_FB_OSD_STOP:
++ if (fbi->win_id > 0)
++ s3cfb_set_alpha_level(fbi, S3C_FB_MAX_ALPHA_LEVEL, 1);
++
++ s3cfb_onoff_win(fbi, OFF);
++ break;
++
++ case S3C_FB_OSD_ALPHA_UP:
++ alpha_level = readl(S3C_VIDOSD0C + (0x10 * fbi->win_id)) & 0xf;
++
++ if (alpha_level < S3C_FB_MAX_ALPHA_LEVEL)
++ alpha_level++;
++
++ s3cfb_set_alpha_level(fbi, alpha_level, 1);
++ break;
++
++ case S3C_FB_OSD_ALPHA_DOWN:
++ alpha_level = readl(S3C_VIDOSD0C + (0x10 * fbi->win_id)) & 0xf;
++
++ if (alpha_level > 0)
++ alpha_level--;
++
++ s3cfb_set_alpha_level(fbi, alpha_level, 1);
++ break;
++
++ case S3C_FB_OSD_ALPHA0_SET:
++ alpha_level = arg;
++
++ if (alpha_level > S3C_FB_MAX_ALPHA_LEVEL)
++ alpha_level = S3C_FB_MAX_ALPHA_LEVEL;
++ else if(alpha_level < 0)
++ alpha_level = 0;
++
++ s3cfb_set_alpha_level(fbi, alpha_level, 0);
++ break;
++
++ case S3C_FB_OSD_ALPHA_SET:
++ if (copy_from_user(&alpha_level, (int *) arg, sizeof(int)))
++ return -EFAULT;
++
++ if (alpha_level > S3C_FB_MAX_ALPHA_LEVEL)
++ alpha_level = S3C_FB_MAX_ALPHA_LEVEL;
++ else if (alpha_level < 0)
++ alpha_level = 0;
++
++ s3cfb_set_alpha_level(fbi, alpha_level, 1);
++ break;
++
++ case S3C_FB_OSD_ALPHA_MODE:
++ alpha_mode = arg;
++ s3cfb_set_alpha_mode(fbi, alpha_mode);
++ break;
++
++ case S3C_FB_OSD_MOVE_LEFT:
++ if (var->xoffset > 0)
++ var->xoffset--;
++
++ s3cfb_set_win_position(fbi, var->xoffset, var->yoffset, var->xres, var->yres);
++ break;
++
++ case S3C_FB_OSD_MOVE_RIGHT:
++ if (var->xoffset < (s3c_fimd.width - var->xres))
++ var->xoffset++;
++
++ s3cfb_set_win_position(fbi, var->xoffset, var->yoffset, var->xres, var->yres);
++ break;
++
++ case S3C_FB_OSD_MOVE_UP:
++ if (var->yoffset > 0)
++ var->yoffset--;
++
++ s3cfb_set_win_position(fbi, var->xoffset, var->yoffset, var->xres, var->yres);
++ break;
++
++ case S3C_FB_OSD_MOVE_DOWN:
++ if (var->yoffset < (s3c_fimd.height - var->yres))
++ var->yoffset++;
++
++ s3cfb_set_win_position(fbi, var->xoffset, var->yoffset, var->xres, var->yres);
++ break;
++
++ case FBIO_WAITFORVSYNC:
++ if (get_user(crt, (unsigned int __user *)arg))
++ return -EFAULT;
++
++ return s3cfb_wait_for_vsync();
++
++ case S3C_FB_COLOR_KEY_START:
++ s3cfb_onoff_color_key(fbi, ON);
++ break;
++
++ case S3C_FB_COLOR_KEY_STOP:
++ s3cfb_onoff_color_key(fbi, OFF);
++ break;
++
++ case S3C_FB_COLOR_KEY_ALPHA_START:
++ s3cfb_onoff_color_key_alpha(fbi, ON);
++ break;
++
++ case S3C_FB_COLOR_KEY_ALPHA_STOP:
++ s3cfb_onoff_color_key_alpha(fbi, OFF);
++ break;
++
++ case S3C_FB_COLOR_KEY_SET_INFO:
++ if (copy_from_user(&colkey_info, (s3c_color_key_info_t *) arg, sizeof(s3c_color_key_info_t)))
++ return -EFAULT;
++
++ s3cfb_set_color_key_registers(fbi, colkey_info);
++ break;
++
++ case S3C_FB_COLOR_KEY_VALUE:
++ if (copy_from_user(&colval_info, (s3c_color_val_info_t *) arg, sizeof(s3c_color_val_info_t)))
++ return -EFAULT;
++
++ s3cfb_set_color_value(fbi, colval_info);
++ break;
++
++ case S3C_FB_SET_VSYNC_INT:
++ s3c_fimd.vidintcon0 &= ~S3C_VIDINTCON0_FRAMESEL0_MASK;
++ s3c_fimd.vidintcon0 |= S3C_VIDINTCON0_FRAMESEL0_VSYNC;
++
++ if (arg)
++ s3c_fimd.vidintcon0 |= S3C_VIDINTCON0_INTFRMEN_ENABLE;
++ else
++ s3c_fimd.vidintcon0 &= ~S3C_VIDINTCON0_INTFRMEN_ENABLE;
++
++ writel(s3c_fimd.vidintcon0, S3C_VIDINTCON0);
++ break;
++
++ case S3C_FB_SET_NEXT_FB_INFO:
++ if (copy_from_user(&next_fb_info, (s3c_fb_next_info_t *) arg, sizeof(s3c_fb_next_info_t)))
++ return -EFAULT;
++
++ /* check arguments */
++ if ((next_fb_info.xres + next_fb_info.xoffset) > next_fb_info.xres_virtual ||
++ (next_fb_info.yres + next_fb_info.yoffset) > next_fb_info.yres_virtual ||
++ (next_fb_info.xres + next_fb_info.lcd_offset_x ) > s3c_fimd.width ||
++ (next_fb_info.yres + next_fb_info.lcd_offset_y ) > s3c_fimd.height)
++ return -EINVAL;
++
++ fbi->next_fb_info = next_fb_info;
++ fbi->next_fb_info_change_req = 1;
++ break;
++
++ case S3C_FB_GET_CURR_FB_INFO:
++ next_fb_info.phy_start_addr = fbi->fb.fix.smem_start;
++ next_fb_info.xres = fbi->fb.var.xres;
++ next_fb_info.yres = fbi->fb.var.yres;
++ next_fb_info.xres_virtual = fbi->fb.var.xres_virtual;
++ next_fb_info.yres_virtual = fbi->fb.var.yres_virtual;
++ next_fb_info.xoffset = fbi->fb.var.xoffset;
++ next_fb_info.yoffset = fbi->fb.var.yoffset;
++ next_fb_info.lcd_offset_x = fbi->lcd_offset_x;
++ next_fb_info.lcd_offset_y = fbi->lcd_offset_y;
++
++ if (copy_to_user((void *)arg, (s3c_fb_next_info_t *) &next_fb_info, sizeof(s3c_fb_next_info_t)))
++ return -EFAULT;
++ break;
++
++ case S3C_FB_GET_BRIGHTNESS:
++ if (copy_to_user((void *)arg, (const void *) &s3c_display_brightness, sizeof(int)))
++ return -EFAULT;
++ break;
++
++/* should be fixed for c100 */
++#if defined(CONFIG_S3C6410_PWM)
++ case S3C_FB_SET_BRIGHTNESS:
++ if (copy_from_user(&brightness, (int *) arg, sizeof(int)))
++ return -EFAULT;
++
++ s3cfb_set_brightness(brightness);
++ break;
++#endif
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++ case S3C_FB_VS_START:
++ s3c_fimd.wincon0 &= ~(S3C_WINCONx_ENWIN_F_ENABLE);
++ writel(s3c_fimd.wincon0 | S3C_WINCONx_ENWIN_F_ENABLE, S3C_WINCON0);
++
++ fbi->fb.var.xoffset = s3c_fimd.xoffset;
++ fbi->fb.var.yoffset = s3c_fimd.yoffset;
++ break;
++
++ case S3C_FB_VS_STOP:
++ s3c_fimd.vidw00add0b0 = fbi->screen_dma_f1;
++ s3c_fimd.vidw00add0b1 = fbi->screen_dma_f2;
++ fbi->fb.var.xoffset = 0;
++ fbi->fb.var.yoffset = 0;
++
++ writel(s3c_fimd.vidw00add0b0, S3C_VIDW00ADD0B0);
++ writel(s3c_fimd.vidw00add0b1, S3C_VIDW00ADD0B1);
++
++ break;
++
++ case S3C_FB_VS_SET_INFO:
++ if (copy_from_user(&vs_info, (s3c_vs_info_t *) arg, sizeof(s3c_vs_info_t)))
++ return -EFAULT;
++
++ if (s3cfb_set_vs_info(vs_info)) {
++ printk("Error S3C_FB_VS_SET_INFO\n");
++ return -EINVAL;
++ }
++
++ s3cfb_set_vs_registers(S3C_FB_VS_SET);
++
++ fbi->fb.var.xoffset = s3c_fimd.xoffset;
++ fbi->fb.var.yoffset = s3c_fimd.yoffset;
++ break;
++
++ case S3C_FB_VS_MOVE:
++ s3cfb_set_vs_registers(arg);
++
++ fbi->fb.var.xoffset = s3c_fimd.xoffset;
++ fbi->fb.var.yoffset = s3c_fimd.yoffset;
++ break;
++#endif
++
++#if defined(CONFIG_FB_S3C_DOUBLE_BUFFERING)
++ case S3C_FB_GET_NUM:
++ if (copy_from_user((void *)&f_num_val, (const void *)arg, sizeof(u_int)))
++ return -EFAULT;
++
++ if (copy_to_user((void *)arg, (const void *) &f_num_val, sizeof(u_int)))
++ return -EFAULT;
++
++ break;
++
++ case S3C_FB_CHANGE_REQ:
++ s3cfb_change_buff(0, (int) arg);
++ break;
++#endif
++
++ default:
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++void s3cfb_pre_init(void)
++{
++ /* initialize the fimd specific */
++ s3c_fimd.vidintcon0 &= ~S3C_VIDINTCON0_FRAMESEL0_MASK;
++ s3c_fimd.vidintcon0 |= S3C_VIDINTCON0_FRAMESEL0_VSYNC;
++ s3c_fimd.vidintcon0 |= S3C_VIDINTCON0_INTFRMEN_ENABLE;
++
++ writel(s3c_fimd.vidintcon0, S3C_VIDINTCON0);
++}
++
++void s3cfb_set_gpio(void)
++{
++ /* LCD_HSYNC, LCD_VSYNC, LCD_VDEN, LCD_VCLK, VD[23:0] */
++ writel(0x22222222, S5P_GPF0_CON);
++ writel(0x22222222, S5P_GPF1_CON);
++ writel(0x22222222, S5P_GPF2_CON);
++ writel(0x00002222, S5P_GPF3_CON);
++
++ /* module reset */
++ gpio_direction_output(S5P_GPH3_6, 1);
++ mdelay(100);
++
++ gpio_set_value(S5P_GPH3_6, 0);
++ mdelay(10);
++
++ gpio_set_value(S5P_GPH3_6, 1);
++ mdelay(10);
++}
++
++#if defined(CONFIG_PM)
++
++static struct sleep_save s3c_lcd_save[] = {
++ SAVE_ITEM(S3C_VIDCON0),
++ SAVE_ITEM(S3C_VIDCON1),
++
++ SAVE_ITEM(S3C_VIDTCON0),
++ SAVE_ITEM(S3C_VIDTCON1),
++ SAVE_ITEM(S3C_VIDTCON2),
++ SAVE_ITEM(S3C_VIDTCON3),
++
++ SAVE_ITEM(S3C_WINCON0),
++ SAVE_ITEM(S3C_WINCON1),
++ SAVE_ITEM(S3C_WINCON2),
++ SAVE_ITEM(S3C_WINCON3),
++ SAVE_ITEM(S3C_WINCON4),
++
++ SAVE_ITEM(S3C_VIDOSD0A),
++ SAVE_ITEM(S3C_VIDOSD0B),
++ SAVE_ITEM(S3C_VIDOSD0C),
++
++ SAVE_ITEM(S3C_VIDOSD1A),
++ SAVE_ITEM(S3C_VIDOSD1B),
++ SAVE_ITEM(S3C_VIDOSD1C),
++ SAVE_ITEM(S3C_VIDOSD1D),
++
++ SAVE_ITEM(S3C_VIDOSD2A),
++ SAVE_ITEM(S3C_VIDOSD2B),
++ SAVE_ITEM(S3C_VIDOSD2C),
++ SAVE_ITEM(S3C_VIDOSD2D),
++
++ SAVE_ITEM(S3C_VIDOSD3A),
++ SAVE_ITEM(S3C_VIDOSD3B),
++ SAVE_ITEM(S3C_VIDOSD3C),
++
++ SAVE_ITEM(S3C_VIDOSD4A),
++ SAVE_ITEM(S3C_VIDOSD4B),
++ SAVE_ITEM(S3C_VIDOSD4C),
++
++ SAVE_ITEM(S3C_VIDW00ADD0B0),
++ SAVE_ITEM(S3C_VIDW00ADD0B1),
++ SAVE_ITEM(S3C_VIDW01ADD0B0),
++ SAVE_ITEM(S3C_VIDW01ADD0B1),
++ SAVE_ITEM(S3C_VIDW02ADD0),
++ SAVE_ITEM(S3C_VIDW03ADD0),
++ SAVE_ITEM(S3C_VIDW04ADD0),
++ SAVE_ITEM(S3C_VIDW00ADD1B0),
++ SAVE_ITEM(S3C_VIDW00ADD1B1),
++ SAVE_ITEM(S3C_VIDW01ADD1B0),
++ SAVE_ITEM(S3C_VIDW01ADD1B1),
++ SAVE_ITEM(S3C_VIDW02ADD1),
++ SAVE_ITEM(S3C_VIDW03ADD1),
++ SAVE_ITEM(S3C_VIDW04ADD1),
++ SAVE_ITEM(S3C_VIDW00ADD2),
++ SAVE_ITEM(S3C_VIDW01ADD2),
++ SAVE_ITEM(S3C_VIDW02ADD2),
++ SAVE_ITEM(S3C_VIDW03ADD2),
++ SAVE_ITEM(S3C_VIDW04ADD2),
++
++ SAVE_ITEM(S3C_VIDINTCON0),
++ SAVE_ITEM(S3C_VIDINTCON1),
++ SAVE_ITEM(S3C_W1KEYCON0),
++ SAVE_ITEM(S3C_W1KEYCON1),
++ SAVE_ITEM(S3C_W2KEYCON0),
++ SAVE_ITEM(S3C_W2KEYCON1),
++
++ SAVE_ITEM(S3C_W3KEYCON0),
++ SAVE_ITEM(S3C_W3KEYCON1),
++ SAVE_ITEM(S3C_W4KEYCON0),
++ SAVE_ITEM(S3C_W4KEYCON1),
++ SAVE_ITEM(S3C_DITHMODE),
++
++ SAVE_ITEM(S3C_WIN0MAP),
++ SAVE_ITEM(S3C_WIN1MAP),
++ SAVE_ITEM(S3C_WIN2MAP),
++ SAVE_ITEM(S3C_WIN3MAP),
++ SAVE_ITEM(S3C_WIN4MAP),
++ SAVE_ITEM(S3C_WPALCON),
++
++ SAVE_ITEM(S3C_TRIGCON),
++ SAVE_ITEM(S3C_I80IFCONA0),
++ SAVE_ITEM(S3C_I80IFCONA1),
++ SAVE_ITEM(S3C_I80IFCONB0),
++ SAVE_ITEM(S3C_I80IFCONB1),
++ SAVE_ITEM(S3C_LDI_CMDCON0),
++ SAVE_ITEM(S3C_LDI_CMDCON1),
++ SAVE_ITEM(S3C_SIFCCON0),
++ SAVE_ITEM(S3C_SIFCCON1),
++ SAVE_ITEM(S3C_SIFCCON2),
++
++ SAVE_ITEM(S3C_LDI_CMD0),
++ SAVE_ITEM(S3C_LDI_CMD1),
++ SAVE_ITEM(S3C_LDI_CMD2),
++ SAVE_ITEM(S3C_LDI_CMD3),
++ SAVE_ITEM(S3C_LDI_CMD4),
++ SAVE_ITEM(S3C_LDI_CMD5),
++ SAVE_ITEM(S3C_LDI_CMD6),
++ SAVE_ITEM(S3C_LDI_CMD7),
++ SAVE_ITEM(S3C_LDI_CMD8),
++ SAVE_ITEM(S3C_LDI_CMD9),
++ SAVE_ITEM(S3C_LDI_CMD10),
++ SAVE_ITEM(S3C_LDI_CMD11),
++
++ SAVE_ITEM(S3C_W2PDATA01),
++ SAVE_ITEM(S3C_W2PDATA23),
++ SAVE_ITEM(S3C_W2PDATA45),
++ SAVE_ITEM(S3C_W2PDATA67),
++ SAVE_ITEM(S3C_W2PDATA89),
++ SAVE_ITEM(S3C_W2PDATAAB),
++ SAVE_ITEM(S3C_W2PDATACD),
++ SAVE_ITEM(S3C_W2PDATAEF),
++ SAVE_ITEM(S3C_W3PDATA01),
++ SAVE_ITEM(S3C_W3PDATA23),
++ SAVE_ITEM(S3C_W3PDATA45),
++ SAVE_ITEM(S3C_W3PDATA67),
++ SAVE_ITEM(S3C_W3PDATA89),
++ SAVE_ITEM(S3C_W3PDATAAB),
++ SAVE_ITEM(S3C_W3PDATACD),
++ SAVE_ITEM(S3C_W3PDATAEF),
++ SAVE_ITEM(S3C_W4PDATA01),
++ SAVE_ITEM(S3C_W4PDATA23),
++};
++
++/*
++ * Suspend
++ */
++int s3cfb_suspend(struct platform_device *dev, pm_message_t state)
++{
++ struct fb_info *fbinfo = platform_get_drvdata(dev);
++ s3c_fb_info_t *info = fbinfo->par;
++
++ s3cfb_stop_lcd();
++ s3c2410_pm_do_save(s3c_lcd_save, ARRAY_SIZE(s3c_lcd_save));
++
++ /* sleep before disabling the clock, we need to ensure
++ * the LCD DMA engine is not going to get back on the bus
++ * before the clock goes off again (bjd) */
++
++ msleep(1);
++ clk_disable(info->clk);
++
++ return 0;
++}
++
++/*
++ * Resume
++ */
++int s3cfb_resume(struct platform_device *dev)
++{
++ struct fb_info *fbinfo = platform_get_drvdata(dev);
++ s3c_fb_info_t *info = fbinfo->par;
++
++ clk_enable(info->clk);
++ msleep(1);
++ s3c2410_pm_do_restore(s3c_lcd_save, ARRAY_SIZE(s3c_lcd_save));
++
++ s3cfb_init_hw();
++ s3cfb_start_lcd();
++
++ return 0;
++}
++
++#else
++
++int s3cfb_suspend(struct platform_device *dev, pm_message_t state)
++{
++ return 0;
++}
++
++int s3cfb_resume(struct platform_device *dev)
++{
++ return 0;
++}
++
++#endif
++
+diff --git a/drivers/video/s3c2410fb.c b/drivers/video/s3c2410fb.c
+index b3c31d9..8900ad9 100644
+--- a/drivers/video/s3c2410fb.c
++++ b/drivers/video/s3c2410fb.c
+@@ -598,7 +598,7 @@ static int s3c2410fb_blank(int blank_mode, struct fb_info *info)
+
+ dprintk("blank(mode=%d, info=%p)\n", blank_mode, info);
+
+- if (blank_mode == FB_BLANK_UNBLANK)
++ if (blank_mode == FB_BLANK_UNBLANK || blank_mode == FB_BLANK_NORMAL)
+ writel(0x0, regs + S3C2410_TPAL);
+ else {
+ dprintk("setting TPAL to output 0x000000\n");
+diff --git a/fs/jffs2/scan.c b/fs/jffs2/scan.c
+index 272872d..745e1c5 100644
+--- a/fs/jffs2/scan.c
++++ b/fs/jffs2/scan.c
+@@ -646,8 +646,8 @@ scan_more:
+ inbuf_ofs = ofs - buf_ofs;
+ while (inbuf_ofs < scan_end) {
+ if (unlikely(*(uint32_t *)(&buf[inbuf_ofs]) != 0xffffffff)) {
+- printk(KERN_WARNING "Empty flash at 0x%08x ends at 0x%08x\n",
+- empty_start, ofs);
++ /* printk(KERN_WARNING "Empty flash at 0x%08x ends at 0x%08x\n",
++ empty_start, ofs); */
+ if ((err = jffs2_scan_dirty_space(c, jeb, ofs-empty_start)))
+ return err;
+ goto scan_more;
+@@ -834,8 +834,8 @@ scan_more:
+ case JFFS2_NODETYPE_CLEANMARKER:
+ D1(printk(KERN_DEBUG "CLEANMARKER node found at 0x%08x\n", ofs));
+ if (je32_to_cpu(node->totlen) != c->cleanmarker_size) {
+- printk(KERN_NOTICE "CLEANMARKER node found at 0x%08x has totlen 0x%x != normal 0x%x\n",
+- ofs, je32_to_cpu(node->totlen), c->cleanmarker_size);
++ /* printk(KERN_NOTICE "CLEANMARKER node found at 0x%08x has totlen 0x%x != normal 0x%x\n",
++ ofs, je32_to_cpu(node->totlen), c->cleanmarker_size); */
+ if ((err = jffs2_scan_dirty_space(c, jeb, PAD(sizeof(struct jffs2_unknown_node)))))
+ return err;
+ ofs += PAD(sizeof(struct jffs2_unknown_node));
+diff --git a/include/asm-arm/arch-s3c2410/dma.h b/include/asm-arm/arch-s3c2410/dma.h
+index c6e8d8f..cc52214 100644
+--- a/include/asm-arm/arch-s3c2410/dma.h
++++ b/include/asm-arm/arch-s3c2410/dma.h
+@@ -34,6 +34,8 @@ enum dma_ch {
+ DMACH_XD1,
+ DMACH_SDI,
+ DMACH_SPI0,
++ DMACH_SPI_TX,
++ DMACH_SPI_RX,
+ DMACH_SPI1,
+ DMACH_UART0,
+ DMACH_UART1,
+@@ -41,6 +43,10 @@ enum dma_ch {
+ DMACH_TIMER,
+ DMACH_I2S_IN,
+ DMACH_I2S_OUT,
++ DMACH_I2S_IN_1, /* s3c2450 iis_1 rx */
++ DMACH_I2S_OUT_1, /* s3c2450 iis_1 tx */
++ DMACH_I2S_V40_IN,
++ DMACH_I2S_V40_OUT,
+ DMACH_PCM_IN,
+ DMACH_PCM_OUT,
+ DMACH_MIC_IN,
+@@ -53,16 +59,38 @@ enum dma_ch {
+ DMACH_UART2_SRC2,
+ DMACH_UART3, /* s3c2443 has extra uart */
+ DMACH_UART3_SRC2,
++ DMACH_I2S1_IN, /* S3C6400 */
++ DMACH_I2S1_OUT,
++ DMACH_SPI0_IN,
++ DMACH_SPI0_OUT,
++ DMACH_SPI1_IN,
++ DMACH_SPI1_OUT,
++ DMACH_AC97_PCM_OUT,
++ DMACH_AC97_PCM_IN,
++ DMACH_AC97_MIC_IN,
++ DMACH_ONENAND_IN,
++ DMACH_3D_M2M,
+ DMACH_MAX, /* the end entry */
+ };
+
+ #define DMACH_LOW_LEVEL (1<<28) /* use this to specifiy hardware ch no */
+
+-/* we have 4 dma channels */
+-#ifndef CONFIG_CPU_S3C2443
+-#define S3C2410_DMA_CHANNELS (4)
+-#else
++/* Number of dma channels */
++#if defined (CONFIG_CPU_S3C2443)
+ #define S3C2410_DMA_CHANNELS (6)
++
++#elif defined (CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++#define S3C2410_DMA_CHANNELS (8)
++
++#elif defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++/* We have 4 dma controllers - DMA0, DMA1, SDMA0, SDMA1 */
++#define S3C_DMA_CONTROLLERS (4)
++#define S3C_CHANNELS_PER_DMA (8)
++#define S3C_CANDIDATE_CHANNELS_PER_DMA (16)
++#define S3C2410_DMA_CHANNELS (S3C_DMA_CONTROLLERS*S3C_CHANNELS_PER_DMA)
++
++#else
++#define S3C2410_DMA_CHANNELS (4)
+ #endif
+
+ /* types */
+@@ -117,7 +145,10 @@ enum s3c2410_dma_buffresult {
+
+ enum s3c2410_dmasrc {
+ S3C2410_DMASRC_HW, /* source is memory */
+- S3C2410_DMASRC_MEM /* source is hardware */
++ S3C2410_DMASRC_MEM, /* source is hardware */
++ S3C_DMA_MEM2MEM, /* source is memory - READ/WRITE */
++ S3C_DMA_MEM2MEM_P, /* source is hardware - READ/WRITE */
++ S3C_DMA_PER2PER /* source is hardware - READ/WRITE */
+ };
+
+ /* enum s3c2410_chan_op
+@@ -195,6 +226,35 @@ struct s3c2410_dma_map;
+ * full state information for each DMA channel
+ */
+
++/*========================== S3C6400 ===========================================*/
++typedef struct s3c_dma_controller s3c_dma_controller_t;
++struct s3c_dma_controller {
++ /* channel state flags and information */
++ unsigned char number; /* number of this dma channel */
++ unsigned char in_use; /* channel allocated and how many channel are used */
++ unsigned char irq_claimed; /* irq claimed for channel */
++ unsigned char irq_enabled; /* irq enabled for channel */
++ unsigned char xfer_unit; /* size of an transfer */
++
++ /* channel state */
++
++ enum s3c2410_dma_state state;
++ enum s3c2410_dma_loadst load_state;
++ struct s3c2410_dma_client *client;
++
++ /* channel configuration */
++ unsigned long dev_addr;
++ unsigned long load_timeout;
++ unsigned int flags; /* channel flags */
++
++ /* channel's hardware position and configuration */
++ void __iomem *regs; /* channels registers */
++ void __iomem *addr_reg; /* data address register */
++ unsigned int irq; /* channel irq */
++ unsigned long dcon; /* default value of DCON */
++
++};
++
+ struct s3c2410_dma_chan {
+ /* channel state flags and information */
+ unsigned char number; /* number of this dma channel */
+@@ -238,6 +298,13 @@ struct s3c2410_dma_chan {
+
+ /* system device */
+ struct sys_device dev;
++
++#if defined (CONFIG_CPU_S3C6400) || defined (CONFIG_CPU_S3C6410)
++ unsigned int index; /* channel index */
++ unsigned int config_flags; /* channel flags */
++ unsigned int control_flags; /* channel flags */
++ s3c_dma_controller_t *dma_con;
++#endif
+ };
+
+ /* the currently allocated channel information */
+@@ -246,6 +313,18 @@ extern struct s3c2410_dma_chan s3c2410_chans[];
+ /* note, we don't really use dma_device_t at the moment */
+ typedef unsigned long dma_device_t;
+
++
++struct s3c_pl080_sg_list {
++ unsigned long uSrcAddr;
++ unsigned long uDstAddr;
++ unsigned long uNextLLI;
++ unsigned long uCxControl0;
++ unsigned long uCxControl1;
++};
++
++#define s3c_pl080_sg_address(sg) (virt_to_phys(sg))
++
++
+ /* functions --------------------------------------------------------------- */
+
+ /* s3c2410_dma_request
+@@ -264,6 +343,7 @@ extern int s3c2410_dma_request(dmach_t channel,
+
+ extern int s3c2410_dma_ctrl(dmach_t channel, enum s3c2410_chan_op op);
+
++
+ /* s3c2410_dma_setflags
+ *
+ * set the channel's flags to a given state
+@@ -272,6 +352,7 @@ extern int s3c2410_dma_ctrl(dmach_t channel, enum s3c2410_chan_op op);
+ extern int s3c2410_dma_setflags(dmach_t channel,
+ unsigned int flags);
+
++
+ /* s3c2410_dma_free
+ *
+ * free the dma channel (will also abort any outstanding operations)
+@@ -279,6 +360,7 @@ extern int s3c2410_dma_setflags(dmach_t channel,
+
+ extern int s3c2410_dma_free(dmach_t channel, struct s3c2410_dma_client *);
+
++
+ /* s3c2410_dma_enqueue
+ *
+ * place the given buffer onto the queue of operations for the channel.
+@@ -289,6 +371,9 @@ extern int s3c2410_dma_free(dmach_t channel, struct s3c2410_dma_client *);
+ extern int s3c2410_dma_enqueue(dmach_t channel, void *id,
+ dma_addr_t data, int size);
+
++extern int s3c2410_dma_enqueue_sg(dmach_t channel, void *id,
++ dma_addr_t data, int size, struct s3c_pl080_sg_list *sg_list);
++
+ /* s3c2410_dma_config
+ *
+ * configure the dma channel
+@@ -312,9 +397,11 @@ extern int s3c2410_dma_devconfig(int channel, enum s3c2410_dmasrc source,
+ extern int s3c2410_dma_getposition(dmach_t channel,
+ dma_addr_t *src, dma_addr_t *dest);
+
++
+ extern int s3c2410_dma_set_opfn(dmach_t, s3c2410_dma_opfn_t rtn);
+ extern int s3c2410_dma_set_buffdone_fn(dmach_t, s3c2410_dma_cbfn_t rtn);
+
++
+ /* DMA Register definitions */
+
+ #define S3C2410_DMA_DISRC (0x00)
+@@ -449,4 +536,189 @@ extern int s3c2410_dma_set_buffdone_fn(dmach_t, s3c2410_dma_cbfn_t rtn);
+ #define S3C2443_DMAREQSEL_PCMIN S3C2443_DMAREQSEL_SRC(28)
+ #define S3C2443_DMAREQSEL_MICIN S3C2443_DMAREQSEL_SRC(29)
+
++
++/*=================================================*/
++/* DMA Register Definitions for S3C6400 */
++
++#define S3C_DMAC_INT_STATUS (0x00)
++#define S3C_DMAC_INT_TCSTATUS (0x04)
++#define S3C_DMAC_INT_TCCLEAR (0x08)
++#define S3C_DMAC_INT_ERRORSTATUS (0x0c)
++#define S3C_DMAC_INT_ERRORCLEAR (0x10)
++#define S3C_DMAC_RAW_INTTCSTATUS (0x14)
++#define S3C_DMAC_RAW_INTERRORSTATUS (0x18)
++#define S3C_DMAC_ENBLD_CHANNELS (0x1c)
++#define S3C_DMAC_SOFTBREQ (0x20)
++#define S3C_DMAC_SOFTSREQ (0x24)
++#define S3C_DMAC_SOFTLBREQ (0x28)
++#define S3C_DMAC_SOFTLSREQ (0x2c)
++#define S3C_DMAC_CONFIGURATION (0x30)
++#define S3C_DMAC_SYNC (0x34)
++
++#define S3C_DMAC_CxSRCADDR (0x00)
++#define S3C_DMAC_CxDESTADDR (0x04)
++#define S3C_DMAC_CxLLI (0x08)
++#define S3C_DMAC_CxCONTROL0 (0x0C)
++#define S3C_DMAC_CxCONTROL1 (0x10)
++#define S3C_DMAC_CxCONFIGURATION (0x14)
++
++#define S3C_DMAC_C0SRCADDR (0x100)
++#define S3C_DMAC_C0DESTADDR (0x104)
++#define S3C_DMAC_C0LLI (0x108)
++#define S3C_DMAC_C0CONTROL0 (0x10C)
++#define S3C_DMAC_C0CONTROL1 (0x110)
++#define S3C_DMAC_C0CONFIGURATION (0x114)
++
++#define S3C_DMAC_C1SRCADDR (0x120)
++#define S3C_DMAC_C1DESTADDR (0x124)
++#define S3C_DMAC_C1LLI (0x128)
++#define S3C_DMAC_C1CONTROL0 (0x12C)
++#define S3C_DMAC_C1CONTROL1 (0x130)
++#define S3C_DMAC_C1CONFIGURATION (0x134)
++
++#define S3C_DMAC_C2SRCADDR (0x140)
++#define S3C_DMAC_C2DESTADDR (0x144)
++#define S3C_DMAC_C2LLI (0x148)
++#define S3C_DMAC_C2CONTROL0 (0x14C)
++#define S3C_DMAC_C2CONTROL1 (0x150)
++#define S3C_DMAC_C2CONFIGURATION (0x154)
++
++#define S3C_DMAC_C3SRCADDR (0x160)
++#define S3C_DMAC_C3DESTADDR (0x164)
++#define S3C_DMAC_C3LLI (0x168)
++#define S3C_DMAC_C3CONTROL0 (0x16C)
++#define S3C_DMAC_C3CONTROL1 (0x170)
++#define S3C_DMAC_C3CONFIGURATION (0x174)
++
++#define S3C_DMAC_C4SRCADDR (0x180)
++#define S3C_DMAC_C4DESTADDR (0x184)
++#define S3C_DMAC_C4LLI (0x188)
++#define S3C_DMAC_C4CONTROL0 (0x18C)
++#define S3C_DMAC_C4CONTROL1 (0x190)
++#define S3C_DMAC_C4CONFIGURATION (0x194)
++
++#define S3C_DMAC_C5SRCADDR (0x1A0)
++#define S3C_DMAC_C5DESTADDR (0x1A4)
++#define S3C_DMAC_C5LLI (0x1A8)
++#define S3C_DMAC_C5CONTROL0 (0x1AC)
++#define S3C_DMAC_C5CONTROL1 (0x1B0)
++#define S3C_DMAC_C5CONFIGURATION (0x1B4)
++
++#define S3C_DMAC_C6SRCADDR (0x1C0)
++#define S3C_DMAC_C6DESTADDR (0x1C4)
++#define S3C_DMAC_C6LLI (0x1C8)
++#define S3C_DMAC_C6CONTROL0 (0x1CC)
++#define S3C_DMAC_C6CONTROL1 (0x1D0)
++#define S3C_DMAC_C6CONFIGURATION (0x1D4)
++
++#define S3C_DMAC_C7SRCADDR (0x1E0)
++#define S3C_DMAC_C7DESTADDR (0x1E4)
++#define S3C_DMAC_C7LLI (0x1E8)
++#define S3C_DMAC_C7CONTROL0 (0x1EC)
++#define S3C_DMAC_C7CONTROL1 (0x1F0)
++#define S3C_DMAC_C7CONFIGURATION (0x1F4)
++
++/*DMACConfiguration(0x30)*/
++#define S3C_DMA_CONTROLLER_ENABLE (1<<0)
++
++/*DMACCxControl0 : Channel control register 0*/
++#define S3C_DMACONTROL_TC_INT_ENABLE (1<<31)
++#define S3C_DMACONTROL_DEST_NO_INC (0<<27)
++#define S3C_DMACONTROL_DEST_INC (1<<27)
++#define S3C_DMACONTROL_SRC_NO_INC (0<<26)
++#define S3C_DMACONTROL_SRC_INC (1<<26)
++#define S3C_DMACONTROL_DEST_AXI_SPINE (0<<25)
++#define S3C_DMACONTROL_DEST_AXI_PERI (1<<25)
++#define S3C_DMACONTROL_SRC_AXI_SPINE (0<<24)
++#define S3C_DMACONTROL_SRC_AXI_PERI (1<<24)
++#define S3C_DMACONTROL_DEST_WIDTH_BYTE (0<<21)
++#define S3C_DMACONTROL_DEST_WIDTH_HWORD (1<<21)
++#define S3C_DMACONTROL_DEST_WIDTH_WORD (2<<21)
++#define S3C_DMACONTROL_SRC_WIDTH_BYTE (0<<18)
++#define S3C_DMACONTROL_SRC_WIDTH_HWORD (1<<18)
++#define S3C_DMACONTROL_SRC_WIDTH_WORD (2<<18)
++
++#define S3C_DMACONTROL_DBSIZE_1 (0<<15)
++#define S3C_DMACONTROL_DBSIZE_4 (1<<15)
++#define S3C_DMACONTROL_DBSIZE_8 (2<<15)
++#define S3C_DMACONTROL_DBSIZE_16 (3<<15)
++#define S3C_DMACONTROL_DBSIZE_32 (4<<15)
++#define S3C_DMACONTROL_DBSIZE_64 (5<<15)
++#define S3C_DMACONTROL_DBSIZE_128 (6<<15)
++#define S3C_DMACONTROL_DBSIZE_256 (7<<15)
++
++#define S3C_DMACONTROL_SBSIZE_1 (0<<12)
++#define S3C_DMACONTROL_SBSIZE_4 (1<<12)
++#define S3C_DMACONTROL_SBSIZE_8 (2<<12)
++#define S3C_DMACONTROL_SBSIZE_16 (3<<12)
++#define S3C_DMACONTROL_SBSIZE_32 (4<<12)
++#define S3C_DMACONTROL_SBSIZE_64 (5<<12)
++#define S3C_DMACONTROL_SBSIZE_128 (6<<12)
++#define S3C_DMACONTROL_SBSIZE_256 (7<<12)
++
++
++/*Channel configuration register, DMACCxConfiguration*/
++#define S3C_DMACONFIG_HALT (1<<18) /*The contents of the channels FIFO are drained*/
++#define S3C_DMACONFIG_ACTIVE (1<<17) /*Check channel fifo has data or not*/
++#define S3C_DMACONFIG_LOCK (1<<16)
++#define S3C_DMACONFIG_TCMASK (1<<15) /*Terminal count interrupt mask*/
++#define S3C_DMACONFIG_ERRORMASK (1<<14) /*Interrup error mask*/
++#define S3C_DMACONFIG_FLOWCTRL_MEM2MEM (0<<11)
++#define S3C_DMACONFIG_FLOWCTRL_MEM2PER (1<<11)
++#define S3C_DMACONFIG_FLOWCTRL_PER2MEM (2<<11)
++#define S3C_DMACONFIG_FLOWCTRL_PER2PER (3<<11)
++#define S3C_DMACONFIG_ONENANDMODEDST (1<<10) /* Reserved: OneNandModeDst */
++#define S3C_DMACONFIG_DESTPERIPHERAL(x) ((x)<<6)
++#define S3C_DMACONFIG_ONENANDMODESRC (1<<5) /* Reserved: OneNandModeSrc */
++#define S3C_DMACONFIG_SRCPERIPHERAL(x) ((x)<<1)
++#define S3C_DMACONFIG_CHANNEL_ENABLE (1<<0)
++
++/* DMAC0 DMA request sources */
++#define S3C_DMA0_UART0CH0 0
++#define S3C_DMA0_UART0CH1 1
++#define S3C_DMA0_UART1CH0 2
++#define S3C_DMA0_UART1CH1 3
++#define S3C_DMA0_ONENAND_RX 3 /* Memory to Memory DMA */
++#define S3C_DMA0_UART2CH0 4
++#define S3C_DMA0_UART2CH1 5
++#define S3C_DMA0_UART3CH0 6
++#define S3C_DMA0_UART3CH1 7
++#define S3C_DMA0_PCM0_TX 8
++#define S3C_DMA0_PCM0_RX 9
++#define S3C_DMA0_I2S0_TX 10
++#define S3C_DMA0_I2S0_RX 11
++#define S3C_DMA0_SPI0_TX 12
++#define S3C_DMA0_SPI0_RX 13
++#define S3C_DMA0_HSI_TX 14
++#define S3C_DMA0_HSI_RX 15
++
++/* DMAC1 DMA request sources */
++#define S3C_DMA1_PCM1_TX 0
++#define S3C_DMA1_PCM1_RX 1
++#define S3C_DMA1_I2S1_TX 2
++#define S3C_DMA1_I2S1_RX 3
++#define S3C_DMA1_SPI1_TX 4
++#define S3C_DMA1_SPI1_RX 5
++#define S3C_DMA1_AC97_PCMOUT 6
++#define S3C_DMA1_AC97_PCMIN 7
++#define S3C_DMA1_AC97_MICIN 8
++#define S3C_DMA1_PWM 9
++#define S3C_DMA1_IRDA 10
++#define S3C_DMA1_EXT 11
++
++#define S3C_DMA1 16
++
++#define S3C_DEST_SHIFT 6
++#define S3C_SRC_SHIFT 1
++
++
++//#define S3C_DMAC_CSRCADDR(ch) S3C_DMAC_C##ch##SRCADDR
++#define S3C_DMAC_CSRCADDR(ch) (S3C_DMAC_C0SRCADDR+ch*0x20)
++#define S3C_DMAC_CDESTADDR(ch) (S3C_DMAC_C0DESTADDR+ch*0x20)
++#define S3C_DMAC_CLLI(ch) (S3C_DMAC_C0LLI+ch*0x20)
++#define S3C_DMAC_CCONTROL0(ch) (S3C_DMAC_C0CONTROL0+ch*0x20)
++#define S3C_DMAC_CCONTROL1(ch) (S3C_DMAC_C0CONTROL1+ch*0x20)
++#define S3C_DMAC_CCONFIGURATION(ch) (S3C_DMAC_C0CONFIGURATION+ch*0x20)
++
+ #endif /* __ASM_ARCH_DMA_H */
++
+diff --git a/include/asm-arm/arch-s3c2410/entry-macro.S b/include/asm-arm/arch-s3c2410/entry-macro.S
+index bbec0a8..a703348 100644
+--- a/include/asm-arm/arch-s3c2410/entry-macro.S
++++ b/include/asm-arm/arch-s3c2410/entry-macro.S
+@@ -22,6 +22,43 @@
+ #include <asm/hardware.h>
+ #include <asm/irq.h>
+
++#if defined(CONFIG_PLAT_S3C64XX) || defined(CONFIG_PLAT_S5PC1XX)
++
++ .macro get_irqnr_preamble, base, tmp
++ .endm
++
++ .macro arch_ret_to_user, tmp1, tmp2
++ .endm
++
++ .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
++ mov \tmp, #0
++ ldr \base, =S3C24XX_VA_IRQ
++ ldr \irqstat, [\base, #0] @ get masked status
++ cmp \irqstat, \tmp
++ addeq \base, \base, #0x100000
++ ldreq \irqstat, [\base, #0] @ get masked status
++ cmpeq \irqstat, #0
++
++#if defined(CONFIG_PLAT_S5PC1XX)
++ addeq \base, \base, #0x100000
++ ldreq \irqstat, [\base, #0] @ get masked status
++ cmpeq \irqstat, #0
++#endif
++
++ ldr \irqnr, [\base, #0xF00] @ read for VICADDR[01]
++ @ exit irq routine
++ .endm
++
++ /* currently don't need an disable_fiq macro */
++ .macro disable_fiq
++ .endm
++
++ /* we don't have an irq priority table */
++ .macro irq_prio_table
++ .endm
++
++#else
++
+ .macro get_irqnr_preamble, base, tmp
+ .endm
+
+@@ -76,3 +113,5 @@
+
+ .macro disable_fiq
+ .endm
++
++#endif
+diff --git a/include/asm-arm/arch-s3c2410/gpio.h b/include/asm-arm/arch-s3c2410/gpio.h
+index 7583895..c1b9a09 100644
+--- a/include/asm-arm/arch-s3c2410/gpio.h
++++ b/include/asm-arm/arch-s3c2410/gpio.h
+@@ -24,27 +24,32 @@
+ #ifndef __ASM_ARCH_S3C2410_GPIO_H
+ #define __ASM_ARCH_S3C2410_GPIO_H
+
++#include <linux/kernel.h>
++
+ #include <asm/irq.h>
+ #include <asm/hardware.h>
++
++#if defined(CONFIG_PLAT_S3C24XX)
++
+ #include <asm/arch/regs-gpio.h>
+
+-static inline int gpio_request(unsigned gpio, const char *label)
++static inline int gpio_request(unsigned int gpio, const char *label)
+ {
+ return 0;
+ }
+
+-static inline void gpio_free(unsigned gpio)
++static inline void gpio_free(unsigned int gpio)
+ {
+ return;
+ }
+
+-static inline int gpio_direction_input(unsigned gpio)
++static inline int gpio_direction_input(unsigned int gpio)
+ {
+ s3c2410_gpio_cfgpin(gpio, S3C2410_GPIO_INPUT);
+ return 0;
+ }
+
+-static inline int gpio_direction_output(unsigned gpio, int value)
++static inline int gpio_direction_output(unsigned int gpio, int value)
+ {
+ s3c2410_gpio_cfgpin(gpio, S3C2410_GPIO_OUTPUT);
+ /* REVISIT can we write the value first, to avoid glitching? */
+@@ -65,4 +70,111 @@ static inline int gpio_direction_output(unsigned gpio, int value)
+
+ /* FIXME implement irq_to_gpio() */
+
+-#endif
++#elif defined(CONFIG_PLAT_S3C64XX)
++
++#include <asm/arch/regs-gpio.h>
++
++static inline int gpio_request(unsigned int gpio, const char *label)
++{
++ return 0;
++}
++
++static inline void gpio_free(unsigned int gpio)
++{
++ return;
++}
++
++static inline int gpio_direction_input(unsigned int gpio)
++{
++ s3c_gpio_cfgpin(gpio, S3C_GPIO_INPUT);
++
++ return 0;
++}
++
++static inline int gpio_direction_output(unsigned int gpio, int value)
++{
++ s3c_gpio_cfgpin(gpio, S3C_GPIO_OUTPUT);
++
++ /* REVISIT can we write the value first, to avoid glitching? */
++ s3c_gpio_setpin(gpio, value);
++
++ return 0;
++}
++
++static inline void gpio_set_pin(unsigned int gpio, int function)
++{
++ s3c_gpio_cfgpin(gpio, function);
++}
++
++static inline int gpio_get_pin(unsigned int gpio)
++{
++ return s3c_gpio_getcfg(gpio);
++}
++
++static inline void gpio_pullup(unsigned int gpio, unsigned int to)
++{
++ s3c_gpio_pullup(gpio, to);
++}
++
++#define gpio_get_value(gpio) s3c_gpio_getpin(gpio)
++#define gpio_set_value(gpio, value) s3c_gpio_setpin(gpio, value)
++
++#include <asm-generic/gpio.h> /* cansleep wrappers */
++
++#define gpio_to_irq(gpio) s3c_gpio_getirq(gpio)
++
++/* FIXME implement irq_to_gpio() */
++
++#elif defined(CONFIG_PLAT_S5PC1XX)
++
++#include <asm/plat-s5p/regs-gpio.h>
++
++static inline int gpio_request(unsigned int gpio, const char *label)
++{
++ return 0;
++}
++
++static inline void gpio_free(unsigned int gpio)
++{
++ return;
++}
++
++static inline int gpio_direction_input(unsigned int gpio)
++{
++ s5p_gpio_cfgpin(gpio, S5P_GPIO_INPUT);
++
++ return 0;
++}
++
++static inline int gpio_direction_output(unsigned int gpio, int value)
++{
++ s5p_gpio_cfgpin(gpio, S5P_GPIO_OUTPUT);
++
++ /* REVISIT can we write the value first, to avoid glitching? */
++ s5p_gpio_setpin(gpio, value);
++
++ return 0;
++}
++
++static inline void gpio_set_pin(unsigned int gpio, int function)
++{
++ s5p_gpio_cfgpin(gpio, function);
++}
++
++static inline void gpio_pullup(unsigned int gpio, unsigned int to)
++{
++ s5p_gpio_pullup(gpio, to);
++}
++
++#define gpio_get_value(gpio) s5p_gpio_getpin(gpio)
++#define gpio_set_value(gpio, value) s5p_gpio_setpin(gpio, value)
++
++#include <asm-generic/gpio.h> /* cansleep wrappers */
++
++#define gpio_to_irq(gpio) s5p_gpio_getirq(gpio)
++
++/* FIXME implement irq_to_gpio() */
++
++#endif /* end of CONFIG_PLAT_XXX */
++
++#endif /* end of __ASM_ARCH_S3C2410_GPIO_H */
+diff --git a/include/asm-arm/arch-s3c2410/hardware.h b/include/asm-arm/arch-s3c2410/hardware.h
+index 6dadf58..4c305ba 100644
+--- a/include/asm-arm/arch-s3c2410/hardware.h
++++ b/include/asm-arm/arch-s3c2410/hardware.h
+@@ -13,6 +13,168 @@
+ #ifndef __ASM_ARCH_HARDWARE_H
+ #define __ASM_ARCH_HARDWARE_H
+
++#if defined (CONFIG_PLAT_S5PC1XX)
++
++#ifndef __ASSEMBLY__
++
++/* external functions for GPIO support
++ *
++ * These allow various different clients to access the same GPIO
++ * registers without conflicting. If your driver only owns the entire
++ * GPIO register, then it is safe to ioremap/__raw_{read|write} to it.
++*/
++
++/* s3c_gpio_cfgpin
++ *
++ * set the configuration of the given pin to the value passed.
++ *
++ * eg:
++ * s3c_gpio_cfgpin(S3C2413_GPA0, S3C2413_GPA0_ADDR0);
++ * s3c_gpio_cfgpin(S3C2413_GPE8, S3C2413_GPE8_SDDAT1);
++*/
++
++extern void s5p_gpio_cfgpin(unsigned int pin, unsigned int function);
++extern unsigned int s5p_gpio_getcfg(unsigned int pin);
++
++/* s3c_gpio_getirq
++ *
++ * turn the given pin number into the corresponding IRQ number
++ *
++ * returns:
++ * < 0 = no interrupt for this pin
++ * >=0 = interrupt number for the pin
++*/
++
++//extern int s3c_gpio_getirq(unsigned int pin);
++
++/* s3c_gpio_irqfilter
++ *
++ * set the irq filtering on the given pin
++ *
++ * on = 0 => disable filtering
++ * 1 => enable filtering
++ *
++ * config = S3C2413_EINTFLT_PCLK or S3C2413_EINTFLT_EXTCLK orred with
++ * width of filter (0 through 63)
++ *
++ *
++*/
++
++//extern int s3c_gpio_irqfilter(unsigned int pin, unsigned int on,
++// unsigned int config);
++
++/* s3c_gpio_pullup
++ *
++ * configure the pull-up control on the given pin
++ *
++ * to = 1 => disable the pull-up
++ * 0 => enable the pull-up
++ *
++ * eg;
++ *
++ * s3c_gpio_pullup(S3C_GPB0, 0);
++ * s3c_gpio_pullup(S3C_GPE8, 0);
++*/
++
++extern void s5p_gpio_pullup(unsigned int pin, unsigned int to);
++extern void s5p_gpio_setpin(unsigned int pin, unsigned int to);
++extern unsigned int s5p_gpio_getpin(unsigned int pin);
++
++//extern unsigned int s3c_modify_misccr(unsigned int clr, unsigned int chg);
++
++#endif /* __ASSEMBLY__ */
++
++#include <asm/sizes.h>
++#include <asm/arch/map.h>
++
++/* machine specific hardware definitions should go after this */
++
++/* currently here until moved into config (todo) */
++#define CONFIG_NO_MULTIWORD_IO
++
++#endif /* PLAT_S5PC1XX */
++
++#if defined (CONFIG_PLAT_S3C64XX)
++
++#ifndef __ASSEMBLY__
++
++/* external functions for GPIO support
++ *
++ * These allow various different clients to access the same GPIO
++ * registers without conflicting. If your driver only owns the entire
++ * GPIO register, then it is safe to ioremap/__raw_{read|write} to it.
++*/
++
++/* s3c_gpio_cfgpin
++ *
++ * set the configuration of the given pin to the value passed.
++ *
++ * eg:
++ * s3c_gpio_cfgpin(S3C2413_GPA0, S3C2413_GPA0_ADDR0);
++ * s3c_gpio_cfgpin(S3C2413_GPE8, S3C2413_GPE8_SDDAT1);
++*/
++
++extern void s3c_gpio_cfgpin(unsigned int pin, unsigned int function);
++extern unsigned int s3c_gpio_getcfg(unsigned int pin);
++
++/* s3c_gpio_getirq
++ *
++ * turn the given pin number into the corresponding IRQ number
++ *
++ * returns:
++ * < 0 = no interrupt for this pin
++ * >=0 = interrupt number for the pin
++*/
++
++//extern int s3c_gpio_getirq(unsigned int pin);
++
++/* s3c_gpio_irqfilter
++ *
++ * set the irq filtering on the given pin
++ *
++ * on = 0 => disable filtering
++ * 1 => enable filtering
++ *
++ * config = S3C2413_EINTFLT_PCLK or S3C2413_EINTFLT_EXTCLK orred with
++ * width of filter (0 through 63)
++ *
++ *
++*/
++
++//extern int s3c_gpio_irqfilter(unsigned int pin, unsigned int on,
++// unsigned int config);
++
++/* s3c_gpio_pullup
++ *
++ * configure the pull-up control on the given pin
++ *
++ * to = 1 => disable the pull-up
++ * 0 => enable the pull-up
++ *
++ * eg;
++ *
++ * s3c_gpio_pullup(S3C_GPB0, 0);
++ * s3c_gpio_pullup(S3C_GPE8, 0);
++*/
++
++extern void s3c_gpio_pullup(unsigned int pin, unsigned int to);
++extern void s3c_gpio_setpin(unsigned int pin, unsigned int to);
++extern unsigned int s3c_gpio_getpin(unsigned int pin);
++
++//extern unsigned int s3c_modify_misccr(unsigned int clr, unsigned int chg);
++
++#endif /* __ASSEMBLY__ */
++
++#include <asm/sizes.h>
++#include <asm/arch/map.h>
++
++/* machine specific hardware definitions should go after this */
++
++/* currently here until moved into config (todo) */
++#define CONFIG_NO_MULTIWORD_IO
++
++#endif /* PLAT_S3C64XX */
++
+ #ifndef __ASM_HARDWARE_H
+ #error "Do not include this directly, instead #include <asm/hardware.h>"
+ #endif
+diff --git a/include/asm-arm/arch-s3c2410/hsmmc.h b/include/asm-arm/arch-s3c2410/hsmmc.h
+new file mode 100644
+index 0000000..5700206
+--- /dev/null
++++ b/include/asm-arm/arch-s3c2410/hsmmc.h
+@@ -0,0 +1,51 @@
++#ifndef __ASM_S3C_HSMMC_H
++#define __ASM_S3C_HSMMC_H
++
++#ifndef __ASSEMBLY__
++
++#include <linux/mmc/card.h>
++#include <linux/mmc/host.h>
++
++#if defined(CONFIG_CPU_S3C6410)
++#define NUM_OF_HSMMC_CLKSOURCES 1
++#else
++#define NUM_OF_HSMMC_CLKSOURCES 3
++#endif
++
++#define SPEED_NORMAL 0
++#define SPEED_HIGH 1
++
++struct s3c_hsmmc_fd_cfg {
++ ulong ctrl2;
++ ulong ctrl3[2]; /* 0: low speed, 1: high speed */
++ ulong ctrl4;
++};
++
++struct s3c_hsmmc_clk_cfg {
++ char *name;
++ u32 src;
++};
++
++struct s3c_hsmmc_cfg {
++ u32 hwport; /* hardware port number */
++ u32 enabled; /* if port is used, set 1 */
++ u32 host_caps; /* host capabilities */
++ u32 bus_width; /* bus width */
++
++ void *base; /* base address of host */
++
++ u8 highspeed; /* ENHIGHSPD bit configuration */
++
++ /* feedback delay control configuration (0: mmc, 1: sd) */
++ struct s3c_hsmmc_fd_cfg fd_ctrl[2];
++
++ /* clock source control */
++ struct s3c_hsmmc_clk_cfg clocks[NUM_OF_HSMMC_CLKSOURCES];
++};
++
++extern void hsmmc_set_gpio(uint channel, uint width);
++
++#endif /* __ASSEMBLY__ */
++
++#endif /* __ASM_S3C_HSMMC_H */
++
+diff --git a/include/asm-arm/arch-s3c2410/irqs-s5pc100.h b/include/asm-arm/arch-s3c2410/irqs-s5pc100.h
+new file mode 100644
+index 0000000..b769025
+--- /dev/null
++++ b/include/asm-arm/arch-s3c2410/irqs-s5pc100.h
+@@ -0,0 +1,132 @@
++/* linux/include/asm-arm/arch-s3c2410/irqs-x5pc100.h
++ *
++ * Copyright (c) 2008-2009 Samsung Electronics
++ * Ryu Euiyoul <real.ryu@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++*/
++
++
++#ifndef __ASM_ARCH_IRQS_H
++#define __ASM_ARCH_IRQS_H __FILE__
++
++#ifndef __ASM_ARM_IRQ_H
++#error "Do not include this directly, instead #include <asm/irq.h>"
++#endif
++
++#define S5PC100_CPUIRQ_OFFSET (0)
++
++#define S5PC100_IRQ(x) ((x) + S5PC100_CPUIRQ_OFFSET)
++
++/*
++ * VIC0: system, DMA, timer
++ */
++#define IRQ_EINT0 S5PC100_IRQ(0)
++#define IRQ_EINT1 S5PC100_IRQ(1)
++#define IRQ_EINT2 S5PC100_IRQ(2)
++#define IRQ_EINT3 S5PC100_IRQ(3)
++#define IRQ_EINT4 S5PC100_IRQ(4)
++#define IRQ_EINT5 S5PC100_IRQ(5)
++#define IRQ_EINT6 S5PC100_IRQ(6)
++#define IRQ_EINT7 S5PC100_IRQ(7)
++#define IRQ_EINT8 S5PC100_IRQ(8)
++#define IRQ_EINT9 S5PC100_IRQ(9)
++#define IRQ_EINT10 S5PC100_IRQ(10)
++#define IRQ_EINT11 S5PC100_IRQ(11)
++#define IRQ_EINT12 S5PC100_IRQ(12)
++#define IRQ_EINT13 S5PC100_IRQ(13)
++#define IRQ_EINT14 S5PC100_IRQ(14)
++#define IRQ_EINT15 S5PC100_IRQ(15)
++#define IRQ_EINT16_31 S5PC100_IRQ(16)
++#define IRQ_BATF S5PC100_IRQ(17)
++#define IRQ_MDMA S5PC100_IRQ(18)
++#define IRQ_PDMA0 S5PC100_IRQ(19)
++#define IRQ_PDMA1 S5PC100_IRQ(20)
++#define IRQ_TIMER0 S5PC100_IRQ(21)
++#define IRQ_TIMER1 S5PC100_IRQ(22)
++#define IRQ_TIMER2 S5PC100_IRQ(23)
++#define IRQ_TIMER3 S5PC100_IRQ(24)
++#define IRQ_TIMER4 S5PC100_IRQ(25)
++#define IRQ_SYSTIMER S5PC100_IRQ(26)
++#define IRQ_WDT S5PC100_IRQ(27)
++#define IRQ_RTC_ALARM S5PC100_IRQ(28)
++#define IRQ_RTC_TIC S5PC100_IRQ(29)
++#define IRQ_GPIOINT S5PC100_IRQ(30)
++
++/*
++ * VIC1: ARM, power, memory, connectivity
++ */
++#define IRQ_CORTEX0 S5PC100_IRQ(32)
++#define IRQ_CORTEX1 S5PC100_IRQ(33)
++#define IRQ_CORTEX2 S5PC100_IRQ(34)
++#define IRQ_CORTEX3 S5PC100_IRQ(35)
++#define IRQ_CORTEX4 S5PC100_IRQ(36)
++#define IRQ_IEMAPC S5PC100_IRQ(37)
++#define IRQ_IEMIEC S5PC100_IRQ(38)
++#define IRQ_ONENAND S5PC100_IRQ(39)
++#define IRQ_NFC S5PC100_IRQ(40)
++#define IRQ_CFC S5PC100_IRQ(41)
++#define IRQ_UART0 S5PC100_IRQ(42)
++#define IRQ_UART1 S5PC100_IRQ(43)
++#define IRQ_UART2 S5PC100_IRQ(44)
++#define IRQ_UART3 S5PC100_IRQ(45)
++#define IRQ_IIC S5PC100_IRQ(46)
++#define IRQ_SPI0 S5PC100_IRQ(47)
++#define IRQ_SPI1 S5PC100_IRQ(48)
++#define IRQ_SPI2 S5PC100_IRQ(49)
++#define IRQ_IRDA S5PC100_IRQ(50)
++#define IRQ_CAN0 S5PC100_IRQ(51)
++#define IRQ_CAN1 S5PC100_IRQ(52)
++#define IRQ_HSIRX S5PC100_IRQ(53)
++#define IRQ_HSITX S5PC100_IRQ(54)
++#define IRQ_UHOST S5PC100_IRQ(55)
++#define IRQ_OTG S5PC100_IRQ(56)
++#define IRQ_MSM S5PC100_IRQ(57)
++#define IRQ_HSMMC0 S5PC100_IRQ(58)
++#define IRQ_HSMMC1 S5PC100_IRQ(59)
++#define IRQ_HSMMC2 S5PC100_IRQ(60)
++#define IRQ_MIPICSI S5PC100_IRQ(61)
++#define IRQ_MIPIDSI S5PC100_IRQ(62)
++
++/*
++ * VIC2: multimedia, audio, security
++ */
++#define IRQ_LCD0 S5PC100_IRQ(64)
++#define IRQ_LCD1 S5PC100_IRQ(65)
++#define IRQ_LCD2 S5PC100_IRQ(66)
++#define IRQ_LCD3 S5PC100_IRQ(67)
++#define IRQ_ROTATOR S5PC100_IRQ(68)
++#define IRQ_FIMC0 S5PC100_IRQ(69)
++#define IRQ_FIMC1 S5PC100_IRQ(70)
++#define IRQ_FIMC2 S5PC100_IRQ(71)
++#define IRQ_JPEG S5PC100_IRQ(72)
++#define IRQ_2D S5PC100_IRQ(73)
++#define IRQ_3D S5PC100_IRQ(74)
++#define IRQ_MIXER S5PC100_IRQ(75)
++#define IRQ_HDMI S5PC100_IRQ(76)
++#define IRQ_HDMI_I2C S5PC100_IRQ(77)
++#define IRQ_MFC S5PC100_IRQ(78)
++#define IRQ_TVENC S5PC100_IRQ(79)
++#define IRQ_I2S0 S5PC100_IRQ(80)
++#define IRQ_I2S1 S5PC100_IRQ(81)
++#define IRQ_I2S2 S5PC100_IRQ(82)
++#define IRQ_AC97 S5PC100_IRQ(83)
++#define IRQ_PCM0 S5PC100_IRQ(84)
++#define IRQ_PCM1 S5PC100_IRQ(85)
++#define IRQ_SPDIF S5PC100_IRQ(86)
++#define IRQ_ADC S5PC100_IRQ(87)
++#define IRQ_PENDN S5PC100_IRQ(88)
++#define IRQ_TC IRQ_PENDN
++#define IRQ_KEYPAD S5PC100_IRQ(89)
++#define IRQ_CG S5PC100_IRQ(90)
++#define IRQ_SEC S5PC100_IRQ(91)
++#define IRQ_SECRX S5PC100_IRQ(92)
++#define IRQ_SECTX S5PC100_IRQ(93)
++#define IRQ_SDMIRQ S5PC100_IRQ(94)
++#define IRQ_SDMFIQ S5PC100_IRQ(95)
++
++#define NR_IRQS (IRQ_SDMFIQ+1)
++
++#endif /* __ASM_ARCH_IRQ_H */
+diff --git a/include/asm-arm/arch-s3c2410/irqs.h b/include/asm-arm/arch-s3c2410/irqs.h
+index 996f654..8df27fb 100644
+--- a/include/asm-arm/arch-s3c2410/irqs.h
++++ b/include/asm-arm/arch-s3c2410/irqs.h
+@@ -16,6 +16,8 @@
+ #error "Do not include this directly, instead #include <asm/irq.h>"
+ #endif
+
++#if !defined(CONFIG_CPU_S3C6400) && !defined(CONFIG_CPU_S3C6410)
++
+ /* we keep the first set of CPU IRQs out of the range of
+ * the ISA space, so that the PC104 has them to itself
+ * and we don't end up having to do horrible things to the
+@@ -132,6 +134,7 @@
+ #define IRQ_S3C2443_UART3 S3C2410_IRQ(18) /* IRQ_DMA2 */
+ #define IRQ_S3C2443_CFCON S3C2410_IRQ(19) /* IRQ_DMA3 */
+ #define IRQ_S3C2443_HSMMC S3C2410_IRQ(20) /* IRQ_SDI */
++#define IRQ_S3C2443_SDI1 S3C2410_IRQ(20) /* IRQ_SDI */
+ #define IRQ_S3C2443_NAND S3C2410_IRQ(24) /* reserved */
+
+ #define IRQ_S3C2443_LCD1 S3C2410_IRQSUB(14)
+@@ -146,6 +149,11 @@
+ #define IRQ_S3C2443_DMA4 S3C2410_IRQSUB(22)
+ #define IRQ_S3C2443_DMA5 S3C2410_IRQSUB(23)
+
++#if defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++#define IRQ_S3C2443_DMA6 S3C2410_IRQSUB(29)
++#define IRQ_S3C2443_DMA7 S3C2410_IRQSUB(30)
++#endif
++
+ /* UART3 */
+ #define IRQ_S3C2443_RX3 S3C2410_IRQSUB(24)
+ #define IRQ_S3C2443_TX3 S3C2410_IRQSUB(25)
+@@ -154,10 +162,152 @@
+ #define IRQ_S3C2443_WDT S3C2410_IRQSUB(27)
+ #define IRQ_S3C2443_AC97 S3C2410_IRQSUB(28)
+
+-#ifdef CONFIG_CPU_S3C2443
++#if defined (CONFIG_CPU_S3C2443) || defined (CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++#define IRQ_CFCON S3C2410_IRQ(19)
++#define IRQ_SDI_1 S3C2410_IRQ(20)
++#define IRQ_SDI_0 S3C2410_IRQ(21)
++
++#if defined(CONFIG_CPU_S3C2450) || defined (CONFIG_CPU_S3C2416)
++#define IRQ_S3C2450_2D S3C2410_IRQSUB(31)
++#define IRQ_S3C2450_IIC1 S3C2410_IRQSUB(32)
++#define IRQ_S3C2450_GIB S3C2410_IRQSUB(33)
++#define IRQ_S3C2450_Reserved S3C2410_IRQSUB(34)
++#define IRQ_S3C2450_PCM0 S3C2410_IRQSUB(35)
++#define IRQ_S3C2450_PCM1 S3C2410_IRQSUB(36)
++#define IRQ_S3C2450_I2S0 S3C2410_IRQSUB(37)
++#define IRQ_S3C2450_I2S1 S3C2410_IRQSUB(38)
++
++#define NR_IRQS (IRQ_S3C2450_I2S1+1)
++#else
+ #define NR_IRQS (IRQ_S3C2443_AC97+1)
++#endif
++
+ #else
+ #define NR_IRQS (IRQ_S3C2440_AC97+1)
+ #endif
+
++
++#else /* CONFIG_CPU_S3C6400 || CONFIG_CPU_S3C6410 */
++
++#define S3C6400_CPUIRQ_OFFSET (0)
++
++#define S3C6400_IRQ(x) ((x) + S3C6400_CPUIRQ_OFFSET)
++
++/******** TZIC0/VIC0 *****************/
++/* main cpu interrupts */
++#define IRQ_EINT0_3 S3C6400_IRQ(0)
++#define IRQ_EINT4_11 S3C6400_IRQ(1)
++#define IRQ_RTC_TIC S3C6400_IRQ(2)
++#define IRQ_CAMIF_C S3C6400_IRQ(3)
++#define IRQ_CAMIF_P S3C6400_IRQ(4)
++#define IRQ_IIC1 S3C6400_IRQ(5)
++
++#ifdef CONFIG_CPU_S3C6410
++#define IRQ_IIS S3C6400_IRQ(6)
++#else
++#define IRQ_CAMIF_MP S3C6400_IRQ(6)
++#endif
++
++#define IRQ_CAMIF_WE_C S3C6400_IRQ(7)
++#if defined(CONFIG_CPU_S3C6410)
++#define IRQ_3D S3C6400_IRQ(8)
++#else
++#define IRQ_CAMIF_WE_P S3C6400_IRQ(8)
++#endif
++
++#define IRQ_POST0 S3C6400_IRQ(9)
++#define IRQ_ROTATOR S3C6400_IRQ(10)
++#define IRQ_2D S3C6400_IRQ(11)
++#define IRQ_TVENC S3C6400_IRQ(12)
++#define IRQ_SCALER S3C6400_IRQ(13)
++#define IRQ_BATF S3C6400_IRQ(14)
++#define IRQ_JPEG S3C6400_IRQ(15)
++#define IRQ_MFC S3C6400_IRQ(16)
++#define IRQ_SDMA0 S3C6400_IRQ(17)
++#define IRQ_SDMA1 S3C6400_IRQ(18)
++#define IRQ_ARM_DMAERR S3C6400_IRQ(19)
++#define IRQ_ARM_DMA S3C6400_IRQ(20)
++#define IRQ_ARM_DMAS S3C6400_IRQ(21)
++#define IRQ_KEYPAD S3C6400_IRQ(22)
++#define IRQ_TIMER0 S3C6400_IRQ(23)
++#define IRQ_TIMER1 S3C6400_IRQ(24)
++#define IRQ_TIMER2 S3C6400_IRQ(25)
++#define IRQ_WDT S3C6400_IRQ(26)
++#define IRQ_TIMER3 S3C6400_IRQ(27)
++#define IRQ_TIMER4 S3C6400_IRQ(28)
++#define IRQ_LCD_FIFO S3C6400_IRQ(29)
++#define IRQ_LCD_VSYNC S3C6400_IRQ(30)
++#define IRQ_LCD_SYSTEM S3C6400_IRQ(31)
++
++/******** TZIC1/VIC1 *****************/
++#define IRQ_EINT12_19 S3C6400_IRQ(32)
++#define IRQ_EINT20_27 S3C6400_IRQ(33)
++#define IRQ_PCM0 S3C6400_IRQ(34)
++#define IRQ_PCM1 S3C6400_IRQ(35)
++#define IRQ_AC97 S3C6400_IRQ(36)
++#define IRQ_UART0 S3C6400_IRQ(37)
++#define IRQ_UART1 S3C6400_IRQ(38)
++#define IRQ_UART2 S3C6400_IRQ(39)
++#define IRQ_UART3 S3C6400_IRQ(40)
++#define IRQ_DMA0 S3C6400_IRQ(41)
++#define IRQ_DMA1 S3C6400_IRQ(42)
++#define IRQ_ONENAND0 S3C6400_IRQ(43)
++#define IRQ_ONENAND1 S3C6400_IRQ(44)
++#define IRQ_NFC S3C6400_IRQ(45)
++#define IRQ_CFCON S3C6400_IRQ(46)
++#define IRQ_UHOST S3C6400_IRQ(47)
++#define IRQ_SPI0 S3C6400_IRQ(48)
++#define IRQ_SPI1 S3C6400_IRQ(49)
++#define IRQ_IIC0 S3C6400_IRQ(50)
++#define IRQ_HSItx S3C6400_IRQ(51)
++#define IRQ_HSIrx S3C6400_IRQ(52)
++#define IRQ_RESERVED S3C6400_IRQ(53)
++#define IRQ_MSM S3C6400_IRQ(54)
++#define IRQ_HOSTIF S3C6400_IRQ(55)
++#define IRQ_HSMMC0 S3C6400_IRQ(56)
++#define IRQ_HSMMC1 S3C6400_IRQ(57)
++#define IRQ_HSMMC2 IRQ_SPI1 /* shared with SPI1 */
++#define IRQ_OTG S3C6400_IRQ(58)
++#define IRQ_IRDA S3C6400_IRQ(59)
++#define IRQ_RTC_ALARM S3C6400_IRQ(60)
++#define IRQ_SEC S3C6400_IRQ(61)
++#define IRQ_PENDN S3C6400_IRQ(62)
++#define IRQ_TC IRQ_PENDN
++#define IRQ_ADC S3C6400_IRQ(63)
++
++/* EINT 0 ~27 */
++#define IRQ_EINT0 S3C6400_IRQ(64)
++#define IRQ_EINT1 S3C6400_IRQ(65)
++#define IRQ_EINT2 S3C6400_IRQ(66)
++#define IRQ_EINT3 S3C6400_IRQ(67)
++#define IRQ_EINT4 S3C6400_IRQ(68)
++#define IRQ_EINT5 S3C6400_IRQ(69)
++#define IRQ_EINT6 S3C6400_IRQ(70)
++#define IRQ_EINT7 S3C6400_IRQ(71)
++#define IRQ_EINT8 S3C6400_IRQ(72)
++#define IRQ_EINT9 S3C6400_IRQ(73)
++#define IRQ_EINT10 S3C6400_IRQ(74)
++#define IRQ_EINT11 S3C6400_IRQ(75)
++#define IRQ_EINT12 S3C6400_IRQ(76)
++#define IRQ_EINT13 S3C6400_IRQ(77)
++#define IRQ_EINT14 S3C6400_IRQ(78)
++#define IRQ_EINT15 S3C6400_IRQ(79)
++#define IRQ_EINT16 S3C6400_IRQ(80)
++#define IRQ_EINT17 S3C6400_IRQ(81)
++#define IRQ_EINT18 S3C6400_IRQ(82)
++#define IRQ_EINT19 S3C6400_IRQ(83)
++#define IRQ_EINT20 S3C6400_IRQ(84)
++#define IRQ_EINT21 S3C6400_IRQ(85)
++#define IRQ_EINT22 S3C6400_IRQ(86)
++#define IRQ_EINT23 S3C6400_IRQ(87)
++#define IRQ_EINT24 S3C6400_IRQ(88)
++#define IRQ_EINT25 S3C6400_IRQ(89)
++#define IRQ_EINT26 S3C6400_IRQ(90)
++#define IRQ_EINT27 S3C6400_IRQ(91)
++
++
++#define NR_IRQS (IRQ_EINT27+1)
++#endif
++
++
+ #endif /* __ASM_ARCH_IRQ_H */
+diff --git a/include/asm-arm/arch-s3c2410/map.h b/include/asm-arm/arch-s3c2410/map.h
+index b33ed3b..366ab4e 100644
+--- a/include/asm-arm/arch-s3c2410/map.h
++++ b/include/asm-arm/arch-s3c2410/map.h
+@@ -15,27 +15,41 @@
+
+ #include <asm/plat-s3c/map.h>
+
+-#define S3C2410_ADDR(x) S3C_ADDR(x)
+-
+ /* interrupt controller is the first thing we put in, to make
+ * the assembly code for the irq detection easier
+ */
+ #define S3C24XX_VA_IRQ S3C_VA_IRQ
+ #define S3C2410_PA_IRQ (0x4A000000)
+-#define S3C24XX_SZ_IRQ SZ_1M
++#define S3C6400_PA_IRQ (0x71200000)
++#define S5PC100_PA_IRQ (0xE4000000)
++
++#if defined(CONFIG_PLAT_S5PC1XX)
++#define S3C24XX_SZ_IRQ SZ_4M
++#else
++#define S3C24XX_SZ_IRQ SZ_2M
++#endif
+
+ /* memory controller registers */
+ #define S3C24XX_VA_MEMCTRL S3C_VA_MEM
+ #define S3C2410_PA_MEMCTRL (0x48000000)
+-#define S3C24XX_SZ_MEMCTRL SZ_1M
++#define S3C24XX_SZ_MEMCTRL SZ_8K
+
+ /* USB host controller */
+ #define S3C2410_PA_USBHOST (0x49000000)
++#define S3C6400_PA_USBHOST (0x74300000)
++#define S5PC100_PA_USBHOST (0xED400000)
+ #define S3C24XX_SZ_USBHOST SZ_1M
+
+ /* DMA controller */
+ #define S3C2410_PA_DMA (0x4B000000)
+-#define S3C24XX_SZ_DMA SZ_1M
++#define S3C6400_PA_DMA (0x75000000)
++#define S5PC100_PA_DMA (0xE8000000)
++
++#if defined(CONFIG_PLAT_S5PC1XX)
++#define S3C24XX_SZ_DMA SZ_8M
++#else
++#define S3C24XX_SZ_DMA SZ_2M
++#endif
+
+ /* Clock and Power management */
+ #define S3C24XX_VA_CLKPWR S3C_VA_SYS
+@@ -43,39 +57,71 @@
+ #define S3C24XX_SZ_CLKPWR SZ_1M
+
+ /* LCD controller */
++#define S3C24XX_VA_LCD S3C_VA_LCD
+ #define S3C2410_PA_LCD (0x4D000000)
++#define S3C2443_PA_LCD (0x4C800000)
++#define S3C6400_PA_LCD (0x77100000)
++#define S5PC100_PA_LCD (0xEE000000)
+ #define S3C24XX_SZ_LCD SZ_1M
+
+ /* NAND flash controller */
+ #define S3C2410_PA_NAND (0x4E000000)
++#define S3C6400_PA_NAND (0x70200000)
++#define S5PC100_PA_NAND (0xE7200000)
+ #define S3C24XX_SZ_NAND SZ_1M
+
+ /* UARTs */
+ #define S3C24XX_VA_UART S3C_VA_UART
+ #define S3C2410_PA_UART (0x50000000)
++#define S3C6400_PA_UART (0x7F005000)
++#define S5PC100_PA_UART (0xEC000000)
++
++#if defined(CONFIG_PLAT_S3C64XX) || defined(CONFIG_PLAT_S5PC1XX)
++#define S3C24XX_SZ_UART SZ_4K
++#else
+ #define S3C24XX_SZ_UART SZ_1M
++#endif
+
+-/* Timers */
++/* PWM Timers */
+ #define S3C24XX_VA_TIMER S3C_VA_TIMER
+ #define S3C2410_PA_TIMER (0x51000000)
+-#define S3C24XX_SZ_TIMER SZ_1M
++#define S3C6400_PA_TIMER (0x7F006000)
++#define S5PC100_PA_TIMER (0xEA000000)
++#define S3C24XX_SZ_TIMER SZ_4K
+
+ /* USB Device port */
++#define S3C24XX_VA_USBDEV S3C_VA_USBDEV
+ #define S3C2410_PA_USBDEV (0x52000000)
++#define S3C2443_PA_USBDEV (0x49800000)
+ #define S3C24XX_SZ_USBDEV SZ_1M
+
+ /* Watchdog */
+ #define S3C24XX_VA_WATCHDOG S3C_VA_WATCHDOG
+ #define S3C2410_PA_WATCHDOG (0x53000000)
+-#define S3C24XX_SZ_WATCHDOG SZ_1M
++#define S3C6400_PA_WATCHDOG (0x7E004000)
++#define S5PC100_PA_WATCHDOG (0xEA200000)
++#define S3C24XX_SZ_WATCHDOG SZ_4K
+
+ /* IIC hardware controller */
+ #define S3C2410_PA_IIC (0x54000000)
+-#define S3C24XX_SZ_IIC SZ_1M
++#define S3C6400_PA_IIC0 (0x7F004000)
++#define S3C6400_PA_IIC1 (0x7F00F000)
++#define S5PC100_PA_IIC (0xEC100000)
++#define S3C24XX_SZ_IIC SZ_4K
+
+ /* IIS controller */
+ #define S3C2410_PA_IIS (0x55000000)
+-#define S3C24XX_SZ_IIS SZ_1M
++#define S3C2450_PA_IIS (0x55000000)
++#define S3C2450_PA_IIS1 (0x55000100)
++#define S3C6400_PA_IIS (0x7F002000)
++#define S3C6410_PA_IIS_V40 (0x7F00D000)
++#define S5PC100_PA_IIS (0xF2000000)
++
++#if defined(CONFIG_PLAT_S5PC1XX)
++#define S3C24XX_SZ_IIS SZ_1M
++#else
++#define S3C24XX_SZ_IIS SZ_8K
++#endif
+
+ /* GPIO ports */
+
+@@ -86,22 +132,53 @@
+ * 0xFA800000, which is not in the way of any current mapping
+ * by the base system.
+ */
+-
+-#define S3C2410_PA_GPIO (0x56000000)
+-#define S3C24XX_VA_GPIO ((S3C2410_PA_GPIO - S3C24XX_PA_UART) + S3C24XX_VA_UART)
+-#define S3C24XX_SZ_GPIO SZ_1M
++#if defined(CONFIG_PLAT_S3C64XX)
++#define S3C24XX_VA_GPIO S3C_VA_GPIO
++#define S3C6400_PA_GPIO (0x7F008000)
++#define S3C24XX_SZ_GPIO SZ_4K
++#elif defined(CONFIG_PLAT_S5PC1XX)
++#define S3C24XX_VA_GPIO S3C_VA_GPIO
++#define S5PC100_PA_GPIO (0xE0300000)
++#define S3C24XX_SZ_GPIO SZ_1M
++#else
++#define S3C2410_PA_GPIO (0x56000000)
++#define S3C24XX_VA_GPIO ((S3C2410_PA_GPIO - S3C24XX_PA_UART) + S3C24XX_VA_UART)
++#define S3C24XX_SZ_GPIO SZ_1M
++#endif
+
+ /* RTC */
+ #define S3C2410_PA_RTC (0x57000000)
+-#define S3C24XX_SZ_RTC SZ_1M
++#define S3C2450_PA_RTC (0x57005000)
++#define S3C6400_PA_RTC (0x7E005000)
++#define S5PC100_PA_RTC (0xEA300000)
++
++#if defined(CONFIG_PLAT_S5PC1XX)
++#define S3C24XX_SZ_RTC SZ_1M
++#else
++#define S3C24XX_SZ_RTC SZ_4K
++#endif
+
+ /* ADC */
+ #define S3C2410_PA_ADC (0x58000000)
+-#define S3C24XX_SZ_ADC SZ_1M
++#define S3C6400_PA_ADC (0x7E00B000)
++#define S5PC100_PA_ADC (0xF3000000)
++
++#if defined(CONFIG_PLAT_S5PC1XX)
++#define S3C24XX_SZ_ADC SZ_1M
++#else
++#define S3C24XX_SZ_ADC SZ_4K
++#endif
+
+ /* SPI */
+ #define S3C2410_PA_SPI (0x59000000)
+-#define S3C24XX_SZ_SPI SZ_1M
++#define S3C6400_PA_SPI (0x7F00B000)
++#define S5PC100_PA_SPI (0xEC300000)
++
++#if defined(CONFIG_PLAT_S5PC1XX)
++#define S3C24XX_SZ_SPI SZ_1M
++#else
++#define S3C24XX_SZ_SPI SZ_8K
++#endif
+
+ /* SDI */
+ #define S3C2410_PA_SDI (0x5A000000)
+@@ -109,55 +186,286 @@
+
+ /* CAMIF */
+ #define S3C2440_PA_CAMIF (0x4F000000)
++#define S3C2443_PA_CAMIF (0x4D800000)
++#define S3C6400_PA_CAMIF (0x78000000)
++#define S5PC100_PA_CAMIF (0xEE200000)
+ #define S3C2440_SZ_CAMIF SZ_1M
++#define S3C2443_SZ_CAMIF SZ_1M
++#define S3C24XX_SZ_CAMIF SZ_1M
+
+ /* AC97 */
+-
+ #define S3C2440_PA_AC97 (0x5B000000)
++#define S3C6400_PA_AC97 (0x7F001000)
++#define S5PC100_PA_AC97 (0xF2300000)
+ #define S3C2440_SZ_AC97 SZ_1M
+
++#if defined(CONFIG_PLAT_S5PC1XX)
++#define S3C24XX_SZ_AC97 SZ_1M
++#else
++#define S3C24XX_SZ_AC97 SZ_4K
++#endif
++
++/* Host I/F Indirect & Direct */
++#define S3C24XX_VA_HOSTIFA S3C_VA_HOSTIFA
++#define S3C24XX_PA_HOSTIFA (0x74000000)
++#define S3C24XX_SZ_HOSTIFA SZ_1M
++
++#define S3C24XX_VA_HOSTIFB S3C_VA_HOSTIFB
++#define S3C24XX_PA_HOSTIFB (0x74100000)
++#define S3C24XX_SZ_HOSTIFB SZ_1M
++
++/* CHIP_ID */
++#define S3C24XX_VA_CHIP_ID S3C_VA_CHIP_ID
++#define S3C64XX_PA_CHIP_ID (0x7E00E000)
++#define S5PC100_PA_CHIP_ID (0xE0000000)
++#define S3C24XX_SZ_CHIP_ID SZ_4K
++
++/* System Controller */
++#define S3C24XX_VA_SYSCON S3C_VA_SYSCON
++#if defined(CONFIG_PLAT_S5PC1XX)
++#define S3C24XX_PA_SYSCON (0xE0100000)
++#define S3C24XX_SZ_SYSCON SZ_2M
++#else
++#define S3C24XX_PA_SYSCON (0x7E00F000)
++#define S3C24XX_SZ_SYSCON SZ_4K
++#endif
++
++/* AXI */
++#define S3C6410_PA_AXI_SYS (0x7E003000)
++#define S3C6410_PA_AXI_PERI (0x7E008000)
++#define S3C6410_PA_AXI_SFR (0x7E009000)
++
++/* Ethernet */
++#define S3C24XX_VA_CS8900 S3C_VA_CS8900
++#define S3C2443_PA_CS8900 (0x09000000)
++#define S3C6400_PA_CS8900 (0x18800000)
++#define S3C24XX_SZ_CS8900 SZ_1M
++
++#define S3C6410_PA_SMC9115 (0x18000000)
++#define S3C2450_PA_SMC9115 (0x20000000)
++
++/* SROM SFR */
++#define S3C24XX_VA_SROMC S3C_VA_SROMC
++#define S3C2443_PA_SROMC (0x4F000000)
++#define S3C6400_PA_SROMC (0x70000000)
++#define S5PC100_PA_SROMC (0xE7000000)
++#define S3C24XX_SZ_SROMC SZ_1M
++
+ /* S3C2443 High-speed SD/MMC */
+-#define S3C2443_PA_HSMMC (0x4A800000)
+-#define S3C2443_SZ_HSMMC (256)
++#define S3C2443_PA_HSMMC (0x4A800000)
++#define S3C6400_PA_HSMMC (0x7C200000)
++#define S5PC100_PA_HSMMC (0xED800000)
++#define S3C2443_SZ_HSMMC SZ_1M
++#define S3C_SZ_HSMMC SZ_1M
++
++/* MMC controller - available on the S3C2400 */
++#define S3C2400_PA_MMC (0x15A00000)
++#define S3C2400_SZ_MMC SZ_1M
++
++/* CF/ATA controller - available on the S3C2443/S3C6400 */
++#define S3C2443_PA_CFATA (0x4B800000)
++#define S3C6400_PA_CFATA (0x70300000)
++#define S5PC100_PA_CFATA (0xE7800000)
++#define S3C_SZ_CFATA SZ_1M
++
++/* DRAM controller 0 */
++#define S3C24XX_VA_DMC0 S3C_VA_DMC0
++
++#if defined(CONFIG_PLAT_S3C64XX)
++#define S3C24XX_PA_DMC0 (0x7E000000)
++#elif defined(CONFIG_PLAT_S5PC1XX)
++#define S3C24XX_PA_DMC0 (0xE6000000)
++#endif
++
++#define S3C24XX_SZ_DMC0 SZ_4K
++
++#if !defined(CONFIG_PLAT_S5PC1XX)
++/* DRAM controller 1 */
++#define S3C24XX_VA_DMC1 S3C_VA_DMC1
++#define S3C24XX_PA_DMC1 (0x7E001000)
++#define S3C24XX_SZ_DMC1 SZ_4K
++#endif
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++/* USB OTG */
++#define S3C24XX_VA_OTG S3C_VA_OTG
++#define S3C24XX_PA_OTG (0x7C000000)
++#define S3C24XX_SZ_OTG SZ_1M
++
++/* USB OTG SFR */
++#define S3C24XX_VA_OTGSFR S3C_VA_OTGSFR
++#define S3C24XX_PA_OTGSFR (0x7C100000)
++#define S3C24XX_SZ_OTGSFR SZ_1M
++#endif
++
++/* 2D Graphics */
++#define S3C6400_PA_G2D (0x76100000)
++#define S3C_SZ_G2D SZ_1M
++
++#define S3C6400_PA_ROTATOR (0x77200000)
++#define S3C_SZ_ROTATOR SZ_1M
++
++#if defined(CONFIG_CPU_S3C6410)
++/* G3D */
++#define S3C6410_PA_G3D (0x72000000)
++#define S3C6410_SZ_G3D SZ_4K
++#endif
++
++/* TV-ENCODER */
++#define S3C6400_PA_TVENC (0x76200000)
++#define S5PC100_PA_TVENC (0xF0000000)
++#define S3C_SZ_TVENC SZ_1M
++
++/* TV-SCALER*/
++#define S3C6400_PA_TVSCALER (0x76300000)
++#define S3C_SZ_TVSCALER SZ_1M
++
++/* VPP */
++#define S3C6400_PA_VPP (0x77000000)
++#define S5PC100_PA_VPP (0xF0100000)
++#define S3C_SZ_VPP SZ_1M
++
++/* MFC */
++#define S3C6400_PA_MFC (0x7E002000)
++#define S5PC100_PA_MFC (0xF1000000)
++#define S3C_SZ_MFC SZ_4K
++
++/* JPEG */
++#define S3C6400_PA_JPEG (0x78800000)
++#define S5PC100_PA_JPEG (0xEE500000)
++
++#if defined(CONFIG_PLAT_S5PC1XX)
++#define S3C_SZ_JPEG SZ_1M
++#else
++#define S3C_SZ_JPEG SZ_4M
++#endif
++
++/* OneNAND */
++#define S3C6400_PA_ONENAND (0x70100000)
++#define S5PC100_PA_ONENAND (0xE7100000)
++#define S3C_SZ_ONENAND SZ_1M
++
++/* Keypad IF */
++#define S3C6400_PA_KEYPAD (0x7E00A000)
++#define S5PC100_PA_KEYPAD (0xF3100000)
++#define S3C24XX_SZ_KEYPAD SZ_4K
++
++/* EBI registers for 2443 */
++#define S3C24XX_VA_EBI S3C_VA_EBI
++#define S3C24XX_PA_EBI (0x4E800000)
++#define S3C24XX_SZ_EBI SZ_1M
+
+ /* ISA style IO, for each machine to sort out mappings for, if it
+ * implements it. We reserve two 16M regions for ISA.
+ */
+
+-#define S3C24XX_VA_ISA_WORD S3C2410_ADDR(0x02000000)
+-#define S3C24XX_VA_ISA_BYTE S3C2410_ADDR(0x03000000)
++#define S3C24XX_VA_ISA_WORD S3C_ADDR(0x02000000)
++#define S3C24XX_VA_ISA_BYTE S3C_ADDR(0x03000000)
+
+ /* physical addresses of all the chip-select areas */
+
+-#define S3C2410_CS0 (0x00000000)
+-#define S3C2410_CS1 (0x08000000)
+-#define S3C2410_CS2 (0x10000000)
+-#define S3C2410_CS3 (0x18000000)
+-#define S3C2410_CS4 (0x20000000)
+-#define S3C2410_CS5 (0x28000000)
+-#define S3C2410_CS6 (0x30000000)
+-#define S3C2410_CS7 (0x38000000)
++#define S3C2410_CS0 (0x00000000)
++#define S3C2410_CS1 (0x08000000)
++#define S3C2410_CS2 (0x10000000)
++#define S3C2410_CS3 (0x18000000)
++#define S3C2410_CS4 (0x20000000)
++#define S3C2410_CS5 (0x28000000)
++#define S3C2410_CS6 (0x30000000)
++#define S3C2410_CS7 (0x38000000)
+
+ #define S3C2410_SDRAM_PA (S3C2410_CS6)
++#define S3C_SDRAM_PA (0x50000000)
++#define S5PC1XX_SDRAM_PA (0x20000000)
+
+-/* Use a single interface for common resources between S3C24XX cpus */
+
+-#define S3C24XX_PA_IRQ S3C2410_PA_IRQ
+-#define S3C24XX_PA_MEMCTRL S3C2410_PA_MEMCTRL
+-#define S3C24XX_PA_USBHOST S3C2410_PA_USBHOST
+-#define S3C24XX_PA_DMA S3C2410_PA_DMA
+-#define S3C24XX_PA_CLKPWR S3C2410_PA_CLKPWR
+-#define S3C24XX_PA_LCD S3C2410_PA_LCD
+-#define S3C24XX_PA_UART S3C2410_PA_UART
+-#define S3C24XX_PA_TIMER S3C2410_PA_TIMER
+-#define S3C24XX_PA_USBDEV S3C2410_PA_USBDEV
+-#define S3C24XX_PA_WATCHDOG S3C2410_PA_WATCHDOG
+-#define S3C24XX_PA_IIC S3C2410_PA_IIC
+-#define S3C24XX_PA_IIS S3C2410_PA_IIS
+-#define S3C24XX_PA_GPIO S3C2410_PA_GPIO
+-#define S3C24XX_PA_RTC S3C2410_PA_RTC
+-#define S3C24XX_PA_ADC S3C2410_PA_ADC
+-#define S3C24XX_PA_SPI S3C2410_PA_SPI
++/* Use a single interface for common resources between S3C24XX cpus */
++#if defined(CONFIG_PLAT_S3C64XX)
++#define S3C24XX_PA_ADC S3C6400_PA_ADC
++#define S3C24XX_PA_CAMIF S3C6400_PA_CAMIF
++#define S3C24XX_PA_DMA S3C6400_PA_DMA
++#define S3C24XX_PA_IRQ S3C6400_PA_IRQ
++#define S3C24XX_PA_LCD S3C6400_PA_LCD
++#define S3C24XX_PA_UART S3C6400_PA_UART
++#define S3C24XX_PA_USBHOST S3C6400_PA_USBHOST
++#define S3C24XX_PA_WATCHDOG S3C6400_PA_WATCHDOG
++#define S3C24XX_PA_IIS S3C6400_PA_IIS
++#define S3C24XX_PA_RTC S3C6400_PA_RTC
++#define S3C24XX_PA_SPI S3C6400_PA_SPI
++#define S3C24XX_PA_TIMER S3C6400_PA_TIMER
++#define S3C24XX_PA_NAND S3C6400_PA_NAND
++#define S3C24XX_PA_ONENAND S3C6400_PA_ONENAND
++#define S3C24XX_PA_GPIO S3C6400_PA_GPIO
++#define S3C24XX_PA_CS8900 S3C6400_PA_CS8900
++#define S3C24XX_PA_TVENC S3C6400_PA_TVENC
++#define S3C24XX_PA_TVSCALER S3C6400_PA_TVSCALER
++#define S3C24XX_PA_CFATA S3C6400_PA_CFATA
++#define S3C24XX_PA_AC97 S3C6400_PA_AC97
++#define S3C24XX_PA_KEYPAD S3C6400_PA_KEYPAD
++#define S3C24XX_PA_SROMC S3C6400_PA_SROMC
++#define S3C_PA_SMC9115 S3C6410_PA_SMC9115
++#define S3C_PA_HSMMC S3C6400_PA_HSMMC
++#define S3C_PA_CFATA S3C6400_PA_CFATA
++#elif defined(CONFIG_PLAT_S5PC1XX)
++#define S3C24XX_PA_ADC S5PC100_PA_ADC
++#define S3C24XX_PA_CAMIF S5PC100_PA_CAMIF
++#define S3C24XX_PA_DMA S5PC100_PA_DMA
++#define S3C24XX_PA_IRQ S5PC100_PA_IRQ
++#define S3C24XX_PA_LCD S5PC100_PA_LCD
++#define S3C24XX_PA_UART S5PC100_PA_UART
++#define S3C24XX_PA_USBHOST S5PC100_PA_USBHOST
++#define S3C24XX_PA_WATCHDOG S5PC100_PA_WATCHDOG
++#define S3C24XX_PA_IIS S5PC100_PA_IIS
++#define S3C24XX_PA_IIC S5PC100_PA_IIC
++#define S3C24XX_PA_RTC S5PC100_PA_RTC
++#define S3C24XX_PA_SPI S5PC100_PA_SPI
++#define S3C24XX_PA_TIMER S5PC100_PA_TIMER
++#define S3C24XX_PA_NAND S5PC100_PA_NAND
++#define S3C24XX_PA_ONENAND S5PC100_PA_ONENAND
++#define S3C24XX_PA_GPIO S5PC100_PA_GPIO
++#define S3C24XX_PA_CS8900 S5PC100_PA_CS8900
++#define S3C24XX_PA_TVENC S5PC100_PA_TVENC
++#define S3C24XX_PA_TVSCALER S5PC100_PA_TVSCALER
++#define S3C24XX_PA_CFATA S5PC100_PA_CFATA
++#define S3C24XX_PA_AC97 S5PC100_PA_AC97
++#define S3C24XX_PA_KEYPAD S5PC100_PA_KEYPAD
++#define S3C24XX_PA_SROMC S5PC100_PA_SROMC
++#define S3C_PA_SMC9115 S3C6410_PA_SMC9115
++#define S3C_PA_HSMMC S5PC100_PA_HSMMC
++#define S3C_PA_CFATA S5PC100_PA_CFATA
++#define S3C24XX_PA_CHIP_ID S5PC100_PA_CHIP_ID
++#else
++#define S3C24XX_PA_IRQ S3C2410_PA_IRQ
++#define S3C24XX_PA_MEMCTRL S3C2410_PA_MEMCTRL
++#define S3C24XX_PA_USBHOST S3C2410_PA_USBHOST
++#define S3C24XX_PA_DMA S3C2410_PA_DMA
++#define S3C24XX_PA_CLKPWR S3C2410_PA_CLKPWR
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++#define S3C24XX_PA_LCD S3C2443_PA_LCD
++#define S3C24XX_PA_CS8900 S3C2443_PA_CS8900
++#define S3C24XX_PA_USBDEV S3C2443_PA_USBDEV
++#define S3C24XX_PA_CAMIF S3C2443_PA_CAMIF
++#define S3C_PA_HSMMC S3C2443_PA_HSMMC
++#define S3C_PA_CFATA S3C2443_PA_CFATA
++#define S3C24XX_PA_SROMC S3C2443_PA_SROMC
++#define S3C_PA_SPI_0 (0x52000000)
++#define S3C_SZ_SPI_0 SZ_1M
++#define S3C_PA_SMC9115 S3C2450_PA_SMC9115
++#else
++#define S3C24XX_PA_LCD S3C2410_PA_LCD
++#define S3C24XX_PA_USBDEV S3C2410_PA_USBDEV
++#endif
++#define S3C24XX_PA_UART S3C2410_PA_UART
++#define S3C24XX_PA_TIMER S3C2410_PA_TIMER
++#define S3C24XX_PA_WATCHDOG S3C2410_PA_WATCHDOG
++#define S3C24XX_PA_IIC S3C2410_PA_IIC
++#define S3C24XX_PA_IIS S3C2410_PA_IIS
++#define S3C24XX_PA_GPIO S3C2410_PA_GPIO
++#define S3C24XX_PA_RTC S3C2410_PA_RTC
++#define S3C24XX_PA_ADC S3C2410_PA_ADC
++#define S3C24XX_PA_SPI S3C2410_PA_SPI
++#define S3C24XX_PA_NAND S3C2410_PA_NAND
++#define S3C24XX_PA_AC97 S3C2440_PA_AC97
++#endif
+
+ /* deal with the registers that move under the 2412/2413 */
+
+diff --git a/include/asm-arm/arch-s3c2410/memory.h b/include/asm-arm/arch-s3c2410/memory.h
+index 533e243..28143f2 100644
+--- a/include/asm-arm/arch-s3c2410/memory.h
++++ b/include/asm-arm/arch-s3c2410/memory.h
+@@ -11,7 +11,24 @@
+ #ifndef __ASM_ARCH_MEMORY_H
+ #define __ASM_ARCH_MEMORY_H
+
++#if defined (CONFIG_PLAT_S5PC1XX)
++#define PHYS_OFFSET UL(0x20000000)
++
++#elif defined (CONFIG_PLAT_S3C64XX)
++#define PHYS_OFFSET UL(0x50000000)
++
++#else
++/*
++ * DRAM starts at 0x30000000 for S3C2410/S3C2440
++ * and at 0x0C000000 for S3C2400
++ */
++#ifdef CONFIG_CPU_S3C2400
++#define PHYS_OFFSET UL(0x0C000000)
++#else
+ #define PHYS_OFFSET UL(0x30000000)
++#endif
++
++#endif
+
+ #define __virt_to_bus(x) __virt_to_phys(x)
+ #define __bus_to_virt(x) __phys_to_virt(x)
+diff --git a/include/asm-arm/arch-s3c2410/regs-camif.h b/include/asm-arm/arch-s3c2410/regs-camif.h
+new file mode 100644
+index 0000000..5946cf2
+--- /dev/null
++++ b/include/asm-arm/arch-s3c2410/regs-camif.h
+@@ -0,0 +1,460 @@
++/* linux/include/asm-arm/arch-s3c2410/regs-lcd.h
++ *
++ * Copyright (c) 2003 Simtec Electronics <linux@simtec.co.uk>
++ * http://www.simtec.co.uk/products/SWLINUX/
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++*/
++
++
++#ifndef ___ASM_ARCH_REGS_CAMIF_H
++#define ___ASM_ARCH_REGS_CAMIF_H
++
++#define S3C_CAMIFREG(x) (x)
++
++/*************************************************************************
++ * Macro part
++ ************************************************************************/
++#define S3C_CISRCFMT_SOURCEHSIZE(x) ((x) << 16)
++#define S3C_CISRCFMT_GET_SOURCEHSIZE(x) (((x) >> 16) & 0x1FFFF)
++#define S3C_CISRCFMT_SOURCEVSIZE(x) ((x) << 0)
++#define S3C_CISRCFMT_GET_SOURCEVSIZE(x) (((x) >> 0) & 0x1FFF)
++
++#define S3C_CIWDOFST_WINHOROFST(x) ((x) << 16)
++#define S3C_CIWDOFST_GET_WINHOROFST(x) (((x) >> 16) & 0x7FF)
++#define S3C_CIWDOFST_WINVEROFST(x) ((x) << 0)
++#define S3C_CIWDOFST_GET_WINVEROFST(x) (((x) >> 0) & 0x7FF)
++
++#define S3C_CIDOWSFT2_WINHOROFST2(x) ((x) << 16)
++#define S3C_CIDOWSFT2_GET_WINHOROFST2(x) (((x) >> 16) & 0x7FF)
++#define S3C_CIDOWSFT2_WINVEROFST2(x) ((x) << 0)
++#define S3C_CIDOWSFT2_GET_WINVEROFST2(x) (((x) >> 0) & 0x7FF)
++
++#define S3C_CICOTRGFMT_TARGETHSIZE_CO(x) ((x) << 16)
++#define S3C_CICOTRGFMT_GET_TARGETHSIZE_CO(x) (((x) >> 16) & 0x1FFF)
++
++#define S3C_CICOTRGFMT_TARGETVSIZE_CO(x) ((x) << 0)
++#define S3C_CICOTRGFMT_GET_TARGETVSIZE_CO(x) (((x) >> 0) & 0x1FFF)
++
++#define S3C_CICOCTRL_YBURST1_CO(x) ((x) << 19)
++#define S3C_CICOCTRL_YBURST2_CO(x) ((x) << 14)
++#define S3C_CICOCTRL_CBURST1_CO(x) ((x) << 9)
++#define S3C_CICOCTRL_CBURST2_CO(x) ((x) << 4)
++
++#define S3C_CICOSCPRERATIO_SHFACTOR_CO(x) ((x) << 28)
++#define S3C_CICOSCPRERATIO_GET_SHFACTOR_CO(x) (((x) >> 28) & 0x7F)
++#define S3C_CICOSCPRERATIO_PREHORRATIO_CO(x) ((x) << 16)
++#define S3C_CICOSCPRERATIO_GET_PREHORRATIO_CO(x) (((x) >> 16) & 0x7F)
++#define S3C_CICOSCPRERATIO_PREVERRATIO_CO(x) ((x) << 0)
++#define S3C_CICOSCPRERATIO_GET_PREVERRATIO_CO(x) (((x) >> 0) & 0x7F)
++
++#define S3C_CICOSCPREDST_PREDSTWIDTH_CO(x) ((x) << 16)
++#define S3C_CICOSCPREDST_GET_PREDSTWIDTH_CO(x) (((x) >> 16) & 0x7FF)
++#define S3C_CICOSCPREDST_PREDSTHEIGHT_CO(x) ((x) << 0)
++#define S3C_CICOSCPREDST_GET_PREDSTHEIGHT_CO(x) (((x) >> 0) & 0x7FF)
++
++#define S3C_CICOSCCTRL_MAINHORRATIO_CO(x) ((x) << 16)
++#define S3C_CICOSCCTRL_GET_MAINHORRATIO_CO(x) (((x) >> 16) & 0x1FF)
++#define S3C_CICOSCCTRL_MAINVERRATIO_CO(x) ((x) << 0)
++
++#define S3C_CICOSTATUS_FRAMECNT_CO(x) ((x) << 26)
++#define S3C_CICOSTATUS_GET_FRAMECNT_CO(x) (((x) >> 26) & 0x3)
++
++#define S3C_CIPRTRGFMT_TARGETHSIZE_PR(x) ((x) << 16)
++#define S3C_CIPRTRGFMT_GET_TARGETHSIZE_PR(x) (((x) >> 16) & 0x1FFF)
++
++#define S3C_CIPRTRGFMT_GET_ROT90_PR(x) (((x) >> 13) & 0x1)
++
++#define S3C_CIPRTRGFMT_TARGETVSIZE_PR(x) ((x) << 0)
++#define S3C_CIPRTRGFMT_GET_TARGETVSIZE_PR(x) (((x) >> 0) & 0x1FFF)
++
++#define S3C_CIPRSCPRERATIO_SHFACTOR_PR(x) ((x) << 28)
++#define S3C_CIPRSCPRERATIO_GET_SHFACTOR_PR(x) (((x) >> 28) & 0xF)
++#define S3C_CIPRSCPRERATIO_PREHORRATIO_PR(x) ((x) << 16)
++#define S3C_CIPRSCPRERATIO_GET_PREHORRATIO_PR(x) (((x) >> 16) & 0x7F)
++#define S3C_CIPRSCPRERATIO_PREVERRATIO_PR(x) ((x) << 0)
++#define S3C_CIPRSCPRERATIO_GET_PREVERRATIO_PR(x) (((x) >> 0) & 0x7F)
++
++#define S3C_CIPRSCPREDST_PREDSTWIDTH_PR(x) ((x) << 16)
++#define S3C_CIPRSCPREDST_GET_PREDSTWIDTH_PR(x) (((x) >> 16) & 0xFFF)
++#define S3C_CIPRSCPREDST_PREDSTHEIGHT_PR(x) ((x) << 0)
++#define S3C_CIPRSCPREDST_GET_PREDSTHEIGHT_PR(x) (((x) >> 0) & 0xFFF)
++
++#define S3C_CIPRSCCTRL_MAINHORRATIO_PR(x) ((x) << 16)
++#define S3C_CIPRSCCTRL_GET_MAINHORRATIO_PR(x) (((x) >> 16) && 0x1FF)
++#define S3C_CIPRSCCTRL_MAINVERRATIO_PR(x) ((x) << 0)
++#define S3C_CIPRSCCTRL_GET_MAINVERRATIO_PR(x) (((x) >> 0) && 0x1FF)
++
++/*************************************************************************
++ * Bit definition part
++ ************************************************************************/
++/* Windows Offset Register */
++#define S3C_CIWDOFST_WINOFSEN (1 << 31)
++#define S3C_CIWDOFST_CLROVCOFIY (1 << 30)
++#define S3C_CIWDOFST_CLROVRLB_CO (1 << 29)
++#define S3C_CIWDOFST_CLROVRLB_PR (1 << 28)
++#define S3C_CIWDOFST_CLROVPRFIY (1 << 27)
++#define S3C_CIWDOFST_CLROVCOFICB (1 << 15)
++#define S3C_CIWDOFST_CLROVCOFICR (1 << 14)
++#define S3C_CIWDOFST_CLROVPRFICB (1 << 13)
++#define S3C_CIWDOFST_CLROVPRFICR (1 << 12)
++
++/* Global Control Register */
++#define S3C_CIGCTRL_SWRST (1 << 31)
++#define S3C_CIGCTRL_CAMRST (1 << 30)
++
++#if defined (CONFIG_CPU_S3C6400) || defined (CONFIG_CPU_S3C6410)
++#define S3C_CIGCTRL_IRQ_LEVEL (1 << 20)
++#endif
++
++#define S3C_CIGCTRL_TESTPATTERN_VER_INC (3 << 27)
++#define S3C_CIGCTRL_TESTPATTERN_HOR_INC (2 << 27)
++#define S3C_CIGCTRL_TESTPATTERN_COLOR_BAR (1 << 27)
++#define S3C_CIGCTRL_TESTPATTERN_NORMAL (0 << 27)
++
++#define S3C_CIGCTRL_INVPOLPCLK (1 << 26)
++#define S3C_CIGCTRL_INVPOLVSYNC (1 << 25)
++#define S3C_CIGCTRL_INVPOLHREF (1 << 24)
++#define S3C_CIGCTRL_IRQ_OVFEN (1 << 22)
++#define S3C_CIGCTRL_HREF_MASK (1 << 21)
++#define S3C_CIGCTRL_IRQ_LEVEL (1 << 20)
++#define S3C_CIGCTRL_IRQ_CLR_C (1 << 19)
++#define S3C_CIGCTRL_IRQ_CLR_P (1 << 18)
++
++/* Codec Target Format Register */
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450)
++#define S3C_CICOTRGFMT_IN422_422 (1 << 31)
++#define S3C_CICOTRGFMT_IN422_420 (0 << 31)
++#define S3C_CICOTRGFMT_OUT422_422 (1 << 30)
++#define S3C_CICOTRGFMT_OUT422_420 (0 << 30)
++
++#elif defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410 )
++#define S3C_CICOTRGFMT_OUTFORMAT_RGBOUT (3 << 29)
++#define S3C_CICOTRGFMT_OUTFORMAT_YCBCR422OUTINTERLEAVE (2 << 29)
++#define S3C_CICOTRGFMT_OUTFORMAT_YCBCR422OUT (1 << 29)
++#define S3C_CICOTRGFMT_OUTFORMAT_YCBCR420OUT (0 << 29)
++#endif
++
++#define S3C_CICOTRGFMT_INTERLEAVE_ON (1 << 29)
++#define S3C_CICOTRGFMT_INTERLEAVE_OFF (0 << 29)
++
++#define S3C_CICOTRGFMT_FLIP_180 (3 << 14)
++#define S3C_CICOTRGFMT_FLIP_Y_MIRROR (2 << 14)
++#define S3C_CICOTRGFMT_FLIP_X_MIRROR (1 << 14)
++#define S3C_CICOTRGFMT_FLIP_NORMAL (0 << 14)
++
++/* Codec DMA Control Register */
++#define S3C_CICOCTRL_LASTIRQEN (1 << 2)
++#define S3C_CICOCTRL_ORDER422_CRYCBY (3 << 0)
++#define S3C_CICOCTRL_ORDER422_CBYCRY (2 << 0)
++#define S3C_CICOCTRL_ORDER422_YCRYCB (1 << 0)
++#define S3C_CICOCTRL_ORDER422_YCBYCR (0 << 0)
++
++/* Codec Main-Scaler Control Register */
++#define S3C_CICOSCCTRL_SCALERBYPASS_CO (1 << 31)
++#define S3C_CICOSCCTRL_SCALEUP_H (1 << 30)
++#define S3C_CICOSCCTRL_SCALEUP_V (1 << 29)
++
++#define S3C_CICOSCCTRL_CSCR2Y_WIDE (1 << 28)
++#define S3C_CICOSCCTRL_CSCR2Y_NARROW (0 << 28)
++
++#define S3C_CICOSCCTRL_CSCY2R_WIDE (1 << 27)
++#define S3C_CICOSCCTRL_CSCY2R_NARROW (0 << 27)
++
++#define S3C_CICOSCCTRL_LCDPATHEN_FIFO (1 << 26)
++#define S3C_CICOSCCTRL_LCDPATHEN_DMA (0 << 26)
++
++#define S3C_CICOSCCTRL_INTERLACE_INTERLACE (1 << 25)
++#define S3C_CICOSCCTRL_INTERLACE_PROGRESSIVE (0 << 25)
++
++#define S3C_CICOSCCTRL_COSCALERSTART (1 << 15)
++
++#define S3C_CICOSCCTRL_INRGB_FMT_RGB888 (2 << 13)
++#define S3C_CICOSCCTRL_INRGB_FMT_RGB666 (1 << 13)
++#define S3C_CICOSCCTRL_INRGB_FMT_RGB565 (0 << 13)
++
++#define S3C_CICOSCCTRL_OUTRGB_FMT_RGB888 (2 << 11)
++#define S3C_CICOSCCTRL_OUTRGB_FMT_RGB666 (1 << 11)
++#define S3C_CICOSCCTRL_OUTRGB_FMT_RGB565 (0 << 11)
++
++#define S3C_CICOSCCTRL_EXTRGB_EXTENSION (1 << 10)
++#define S3C_CICOSCCTRL_EXTRGB_NORMAL (0 << 10)
++
++/* Codec Status Register */
++#define S3C_CICOSTATUS_OVFIY_CO (1 << 31)
++#define S3C_CICOSTATUS_OVFICB_CO (1 << 30)
++#define S3C_CICOSTATUS_OVFICR_CO (1 << 29)
++#define S3C_CICOSTATUS_VSYNC (1 << 28)
++#define S3C_CICOSTATUS_WINOFSTEN_CO (1 << 25)
++#define S3C_CICOSTATUS_IMGCPTEN_CAMIF (1 << 22)
++#define S3C_CICOSTATUS_IMGCPTEN_COSC (1 << 21)
++#define S3C_CICOSTATUS_VSYNC_A (1 << 20)
++#define S3C_CICOSTATUS_VSYNC_B (1 << 19)
++#define S3C_CICOSTATUS_OVRLB_CO (1 << 18)
++#define S3C_CICOSTATUS_FRAMEEND_CO (1 << 17)
++
++/* Preview Target Format Register */
++#define S3C_CIPRTRGFMT_FLIPMD_180ROT (3 << 14)
++#define S3C_CIPRTRGFMT_FLIPMD_YMIRROR (2 << 14)
++#define S3C_CIPRTRGFMT_FLIPMD_XMIRROR (1 << 14)
++#define S3C_CIPRTRGFMT_FLIPMD_NORMAL (0 << 14)
++
++#define S3C_CIPRTRGFMT_ROT90_ROTATE (1 << 13)
++#define S3C_CIPRTRGFMT_ROT90_BYPASS (0 << 13)
++
++/* Preview DMA Control Register */
++#define S3C_CIPRCTRL_LASTIRQEN_ENABLE (1 << 2)
++#define S3C_CIPRCTRL_LASTIRQEN_NORMAL (0 << 2)
++
++#define S3C_CIPRCTRL_ORDER422_CRYCBY (3 << 0)
++#define S3C_CIPRCTRL_ORDER422_CBYCRY (2 << 0)
++#define S3C_CIPRCTRL_ORDER422_YCRYCB (1 << 0)
++#define S3C_CIPRCTRL_ORDER422_YCBYCR (0 << 0)
++
++/* Preview Main-Scaler Control Register */
++#define S3C_CIPRSCCTRL_SAMPLE_PR (1 << 31)
++
++#define S3C_CIPRSCCTRL_RGBFORMAT_24 (1 << 30)
++#define S3C_CIPRSCCTRL_RGBFORMAT_16 (0 << 30)
++
++#define S3C_CIPRSCCTRL_START (1 << 15)
++
++#define S3C_CIPRSCCTRL_INRGB_FMT_PR_RGB888 (2 << 13)
++#define S3C_CIPRSCCTRL_INRGB_FMT_PR_RGB666 (1 << 13)
++#define S3C_CIPRSCCTRL_INRGB_FMT_PR_RGB565 (0 << 13)
++
++#define S3C_CIPRSCCTRL_OUTRGB_FMT_PR_RGB888 (2 << 11)
++#define S3C_CIPRSCCTRL_OUTRGB_FMT_PR_RGB666 (1 << 11)
++#define S3C_CIPRSCCTRL_OUTRGB_FMT_PR_RGB565 (0 << 11)
++
++/* Preview Status Register */
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450)
++#define S3C_CIPRSTATUS_OVFICB_PR (1 << 31)
++#define S3C_CIPRSTATUS_OVFICR_PR (1 << 30)
++
++#elif defined CONFIG_CPU_S3C6400 || defined CONFIG_CPU_S3C6410
++#define S3C_CIPRSTATUS_OVFIY_PR (1 << 31)
++#define S3C_CIPRSTATUS_OVFICB_PR (1 << 30)
++#define S3C_CIPRSTATUS_OVFICR_PR (1 << 29)
++#endif
++
++/* Image Capture Enable Register */
++#define S3C_CIIMGCPT_IMGCPTEN (1 << 31)
++#define S3C_CIIMGCPT_IMGCPTEN_COSC (1 << 30)
++#define S3C_CIIMGCPT_IMGCPTEN_PRSC (1 << 29)
++
++#define S3C_CIIMGCPT_CPT_CODMA_SEL_RGB (1 << 26)
++#define S3C_CIIMGCPT_CPT_CODMA_SEL_YUV (0 << 26)
++
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450)
++#define S3C_CIIMGCPT_CPT_CODMA_RGBFMT_24 (1 << 25)
++#define S3C_CIIMGCPT_CPT_CODMA_RGBFMT_16 (0 << 25)
++#define S3C_CIIMGCPT_CPT_CODMA_ENABLE (1 << 24)
++#define S3C_CIIMGCPT_CPT_CODMA_DISABLE (0 << 24)
++#define S3C_CIIMGCPT_CPT_CODMA_MOD_CNT (1 << 18)
++#define S3C_CIIMGCPT_CPT_CODMA_MOD_EN (0 << 18)
++
++#elif defined CONFIG_CPU_S3C6400 || defined CONFIG_CPU_S3C6410
++#define S3C_CIIMGCPT_CPT_FREN_CO_ENABLE (1 << 25)
++#define S3C_CIIMGCPT_CPT_FREN_CO_DISABLE (0 << 25)
++#define S3C_CIIMGCPT_CPT_FREN_PR_ENABLE (1 << 24)
++#define S3C_CIIMGCPT_CPT_FREN_PR_DISABLE (0 << 24)
++#define S3C_CIIMGCPT_CPT_FRMOD_CNT (1 << 18)
++#define S3C_CIIMGCPT_CPT_FRMOD_EN (0 << 18)
++#endif
++
++/* Image Effects Register */
++#define S3C_CIIMGEFF_IE_ON_PR_ENABLE (1 << 31)
++#define S3C_CIIMGEFF_IE_ON_PR_DISABLE (0 << 31)
++
++#define S3C_CIIMGEFF_IE_ON_CO_ENABLE (1 << 30)
++#define S3C_CIIMGEFF_IE_ON_CO_DISABLE (0 << 30)
++
++#define S3C_CIIMGEFF_IE_AFTER_SC_BEFORE (0 << 29)
++#define S3C_CIIMGEFF_IE_AFTER_SC_AFTER (1 << 29)
++
++#define S3C_CIIMGEFF_FIN_SILHOUETTE (5 << 26)
++#define S3C_CIIMGEFF_FIN_EMBOSSING (4 << 26)
++#define S3C_CIIMGEFF_FIN_ARTFREEZE (3 << 26)
++#define S3C_CIIMGEFF_FIN_NEGATIVE (2 << 26)
++#define S3C_CIIMGEFF_FIN_ARBITRARY (1 << 26)
++#define S3C_CIIMGEFF_FIN_BYPASS (0 << 26)
++
++/* MSDMA for Codec Source Image Width Register */
++#define S3C_MSCOWIDTH_AUTOLOAD_ENABLE (1 << 31)
++#define S3C_MSCOWIDTH_AUTOLOAD_DISABLE (0 << 31)
++
++#define S3C_MSCOWIDTH_ADDR_CH_ENABLE (1 << 30)
++#define S3C_MSCOWIDTH_ADDR_CH_DISABLE (0 << 30)
++
++/* MSDMA Control Register */
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450)
++#define S3C_CIMSCTRL_INTERLEAVE_MS_INTERLEAVE (1 << 5)
++#define S3C_CIMSCTRL_INTERLEAVE_MS_NONINTERLEAVE (0 << 5)
++#define S3C_CIMSCTRL_ORDER422_MS_CRYCBY (3 << 3)
++#define S3C_CIMSCTRL_ORDER422_MS_CBYCRY (2 << 3)
++#define S3C_CIMSCTRL_ORDER422_MS_YCRYCB (1 << 3)
++#define S3C_CIMSCTRL_ORDER422_MS_YCBYCR (0 << 3)
++#define S3C_CIMSCTRL_SEL_DMA_CAM_MEMORY (1 << 2)
++#define S3C_CIMSCTRL_SEL_DMA_CAM_EXTCAM (0 << 2)
++#define S3C_CIMSCTRL_SRC420_MS_420 (1 << 1)
++#define S3C_CIMSCTRL_SRC420_MS_422 (0 << 1)
++#define S3C_CIMSCTRL_ENVID_MS_SET (1 << 0)
++
++#elif defined CONFIG_CPU_S3C6400 || defined CONFIG_CPU_S3C6410
++#define S3C_MSCOCTRL_BC_SEL_FRAME (0 << 10)
++#define S3C_MSCOCTRL_BC_SEL_FIELD (1 << 10)
++#define S3C_MSCOCTRL_BUFFER_INI_0 (0 << 8)
++#define S3C_MSCOCTRL_BUFFER_INI_1 (1 << 8)
++#define S3C_MSCOCTRL_TRG_MODE_SOFT (0 << 7)
++#define S3C_MSCOCTRL_TRG_MODE_HARD (1 << 7)
++#define S3C_MSCOCTRL_ORDER422_M_C_YCBYCR (0 << 4)
++#define S3C_MSCOCTRL_ORDER422_M_C_YCRYCB (1 << 4)
++#define S3C_MSCOCTRL_ORDER422_M_C_CBYCRY (2 << 4)
++#define S3C_MSCOCTRL_ORDER422_M_C_CRYCBY (3 << 4)
++#define S3C_MSCOCTRL_SEL_DMA_CAM_C_EXTCAM (0 << 3)
++#define S3C_MSCOCTRL_SEL_DMA_CAM_C_MEMORY (1 << 3)
++#define S3C_MSCOCTRL_INFORMAT_M_C_420 (0 << 1)
++#define S3C_MSCOCTRL_INFORMAT_M_C_422 (1 << 1)
++#define S3C_MSCOCTRL_INFORMAT_M_C_422_INT (2 << 1)
++#define S3C_MSCOCTRL_INFORMAT_M_C_RGB (3 << 1)
++#define S3C_MSCOCTRL_ENVID_M_C_SET (1 << 0)
++#define S3C_MSPRCTRL_BC_SEL_FIELD (0 << 10)
++#define S3C_MSPRCTRL_BC_SEL_FRAME (1 << 10)
++#define S3C_MSPRCTRL_BUFFER_INI_0 (0 << 8)
++#define S3C_MSPRCTRL_BUFFER_INI_1 (1 << 8)
++#define S3C_MSPRCTRL_TRG_MODE_SOFT (0 << 7)
++#define S3C_MSPRCTRL_TRG_MODE_HARD (1 << 7)
++#define S3C_MSPRCTRL_ORDER422_M_P_YCBYCR (0 << 4)
++#define S3C_MSPRCTRL_ORDER422_M_P_YCRYCB (1 << 4)
++#define S3C_MSPRCTRL_ORDER422_M_P_CBYCRY (2 << 4)
++#define S3C_MSPRCTRL_ORDER422_M_P_CRYCBY (3 << 4)
++#define S3C_MSPRCTRL_SEL_DMA_CAM_P_EXTCAM (0 << 3)
++#define S3C_MSPRCTRL_SEL_DMA_CAM_P_MEMORY (1 << 3)
++#define S3C_MSPRCTRL_INFORMAT_M_P_420 (0 << 1)
++#define S3C_MSPRCTRL_INFORMAT_M_P_422 (1 << 1)
++#define S3C_MSPRCTRL_INFORMAT_M_P_422_INT (2 << 1)
++#define S3C_MSPRCTRL_INFORMAT_M_P_RGB (3 << 1)
++#define S3C_MSPRCTRL_ENVID_M_P_SET (1 << 0)
++#endif
++
++/*************************************************************************
++ * Register part
++ ************************************************************************/
++#define S3C_CICOYSA(__x) S3C_CAMIFREG(0x18 + (__x) * 4)
++#define S3C_CICOCBSA(__x) S3C_CAMIFREG(0x28 + (__x) * 4)
++#define S3C_CICOCRSA(__x) S3C_CAMIFREG(0x38 + (__x) * 4)
++#define S3C_CIPRCLRSA(__x) S3C_CAMIFREG(0x6C + (__x) * 4)
++#define S3C_CIPRYSA(__x) S3C_CAMIFREG(0x6C + (__x) * 4)
++#define S3C_CIPRCBSA(__x) S3C_CAMIFREG(0x7C + (__x) * 4)
++#define S3C_CIPRCRSA(__x) S3C_CAMIFREG(0x8C + (__x) * 4)
++
++#define S3C_CISRCFMT S3C_CAMIFREG(0x00)
++#define S3C_CIWDOFST S3C_CAMIFREG(0x04)
++#define S3C_CIGCTRL S3C_CAMIFREG(0x08)
++#define S3C_CIDOWSFT2 S3C_CAMIFREG(0x14)
++#define S3C_CICOYSA1 S3C_CAMIFREG(0x18)
++#define S3C_CICOYSA2 S3C_CAMIFREG(0x1C)
++#define S3C_CICOYSA3 S3C_CAMIFREG(0x20)
++#define S3C_CICOYSA4 S3C_CAMIFREG(0x24)
++#define S3C_CICOCBSA1 S3C_CAMIFREG(0x28)
++#define S3C_CICOCBSA2 S3C_CAMIFREG(0x2C)
++#define S3C_CICOCBSA3 S3C_CAMIFREG(0x30)
++#define S3C_CICOCBSA4 S3C_CAMIFREG(0x34)
++#define S3C_CICOCRSA1 S3C_CAMIFREG(0x38)
++#define S3C_CICOCRSA2 S3C_CAMIFREG(0x3C)
++#define S3C_CICOCRSA3 S3C_CAMIFREG(0x40)
++#define S3C_CICOCRSA4 S3C_CAMIFREG(0x44)
++#define S3C_CICOTRGFMT S3C_CAMIFREG(0x48) /* CODEC target format */
++#define S3C_CICOCTRL S3C_CAMIFREG(0x4C) /* CODEC DMA control register */
++#define S3C_CICOSCPRERATIO S3C_CAMIFREG(0x50) /* CODEC pre-scaler control register 1 */
++#define S3C_CICOSCPREDST S3C_CAMIFREG(0x54) /* CODEC pre-scaler control register 2 */
++#define S3C_CICOSCCTRL S3C_CAMIFREG(0x58) /* CODEC main-scaler control */
++#define S3C_CICOTAREA S3C_CAMIFREG(0x5C) /* CODEC DMA target area register */
++#define S3C_CICOSTATUS S3C_CAMIFREG(0x64) /* CODEC status register */
++
++#if defined (CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450)
++#define S3C_CIPRCLRSA1 S3C_CAMIFREG(0x6C) /* RGB 1st frame start address for preview DMA */
++#define S3C_CIPRCLRSA2 S3C_CAMIFREG(0x70) /* RGB 2nd frame start address for preview DMA */
++#define S3C_CIPRCLRSA3 S3C_CAMIFREG(0x74) /* RGB 3rd frame start address for preview DMA */
++#define S3C_CIPRCLRSA4 S3C_CAMIFREG(0x78) /* RGB 4th frame start address for preview DMA */
++#define S3C_CIPRTRGFMT S3C_CAMIFREG(0x7C) /* PREVIEW target format register */
++#define S3C_CIPRCTRL S3C_CAMIFREG(0x80) /* PREVIEW DMA control register */
++#define S3C_CIPRSCPRERATIO S3C_CAMIFREG(0x84) /* PREVIEW pre-scaler control register 1 */
++#define S3C_CIPRSCPREDST S3C_CAMIFREG(0x88) /* PREVIEW pre-scaler control register 2 */
++#define S3C_CIPRSCCTRL S3C_CAMIFREG(0x8C) /* PREVIEW main-scaler control register */
++#define S3C_CIPRTAREA S3C_CAMIFREG(0x90) /* PREVIEW DMA target area register */
++#define S3C_CIPRSTATUS S3C_CAMIFREG(0x98) /* PREVIEW status register */
++#define S3C_CIIMGCPT S3C_CAMIFREG(0xA0) /* image capture enable register */
++#define S3C_CICOCPTSEQ S3C_CAMIFREG(0xA4) /* CODEC capture sequence register */
++#define S3C_CICOSCOS S3C_CAMIFREG(0xA8) /* CODEC scan line offset register */
++#define S3C_CIIMGEFF S3C_CAMIFREG(0xB0) /* image effect register */
++#define S3C_CIMSYSA S3C_CAMIFREG(0xB4) /* MSDMA Y start address register */
++#define S3C_CIMSCBSA S3C_CAMIFREG(0xB8) /* MSDMA CB start address register */
++#define S3C_CIMSCRSA S3C_CAMIFREG(0xBC) /* MSDMA CR start address register */
++#define S3C_CIMSYEND S3C_CAMIFREG(0xC0) /* MSDMA Y end address register */
++#define S3C_CIMSCBEND S3C_CAMIFREG(0xC4) /* MSDMA CB end address register */
++#define S3C_CIMSCREND S3C_CAMIFREG(0xC8) /* MSDMA CR end address register */
++#define S3C_CIMSYOFF S3C_CAMIFREG(0xCC) /* MSDMA Y offset register */
++#define S3C_CIMSCBOFF S3C_CAMIFREG(0xD0) /* MSDMA CB offset register */
++#define S3C_CIMSCROFF S3C_CAMIFREG(0xD4) /* MSDMA CR offset register */
++#define S3C_CIMSWIDTH S3C_CAMIFREG(0xD8) /* MSDMA source image width register */
++#define S3C_CIMSCTRL S3C_CAMIFREG(0xDC) /* MSDMA control register */
++
++#elif defined CONFIG_CPU_S3C6400 || defined CONFIG_CPU_S3C6410
++#define S3C_CIPRYSA1 S3C_CAMIFREG(0x6C) /* 1st frame start address for preview DMA */
++#define S3C_CIPRYSA2 S3C_CAMIFREG(0x70) /* 2nd frame start address for preview DMA */
++#define S3C_CIPRYSA3 S3C_CAMIFREG(0x74) /* 3rd frame start address for preview DMA */
++#define S3C_CIPRYSA4 S3C_CAMIFREG(0x78) /* 4th frame start address for preview DMA */
++#define S3C_CIPRCBSA1 S3C_CAMIFREG(0x7C) /* 1st frame start address for preview DMA */
++#define S3C_CIPRCBSA2 S3C_CAMIFREG(0x80) /* 2nd frame start address for preview DMA */
++#define S3C_CIPRCBSA3 S3C_CAMIFREG(0x84) /* 3rd frame start address for preview DMA */
++#define S3C_CIPRCBSA4 S3C_CAMIFREG(0x88) /* 4th frame start address for preview DMA */
++#define S3C_CIPRCRSA1 S3C_CAMIFREG(0x8C) /* 1st frame start address for preview DMA */
++#define S3C_CIPRCRSA2 S3C_CAMIFREG(0x90) /* 2nd frame start address for preview DMA */
++#define S3C_CIPRCRSA3 S3C_CAMIFREG(0x94) /* 3rd frame start address for preview DMA */
++#define S3C_CIPRCRSA4 S3C_CAMIFREG(0x98) /* 4th frame start address for preview DMA */
++#define S3C_CIPRTRGFMT S3C_CAMIFREG(0x9C) /* PREVIEW target format register */
++#define S3C_CIPRCTRL S3C_CAMIFREG(0xA0) /* PREVIEW DMA control register */
++#define S3C_CIPRSCPRERATIO S3C_CAMIFREG(0xA4) /* PREVIEW pre-scaler control register 1 */
++#define S3C_CIPRSCPREDST S3C_CAMIFREG(0xA8) /* PREVIEW pre-scaler control register 2 */
++#define S3C_CIPRSCCTRL S3C_CAMIFREG(0xAC) /* PREVIEW main-scaler control register */
++#define S3C_CIPRTAREA S3C_CAMIFREG(0xB0) /* PREVIEW DMA target area register */
++#define S3C_CIPRSTATUS S3C_CAMIFREG(0xB8) /* PREVIEW status register */
++#define S3C_CIIMGCPT S3C_CAMIFREG(0xC0) /* image capture enable register */
++#define S3C_CICOCPTSEQ S3C_CAMIFREG(0xC4) /* CODEC capture sequence register */
++#define S3C_CIIMGEFF S3C_CAMIFREG(0xD0) /* image effect register */
++#define S3C_MSCOY0SA S3C_CAMIFREG(0xD4) /* MSDMA for CODEC Y start address register */
++#define S3C_MSCOCB0SA S3C_CAMIFREG(0xD8) /* MSDMA for CODEC CB start address register */
++#define S3C_MSCOCR0SA S3C_CAMIFREG(0xDC) /* MSDMA for CODEC CR start address register */
++#define S3C_MSCOY0END S3C_CAMIFREG(0xE0) /* MSDMA for CODEC Y end address register */
++#define S3C_MSCOCB0END S3C_CAMIFREG(0xE4) /* MSDMA for CODEC CB end address register */
++#define S3C_MSCOCR0END S3C_CAMIFREG(0xE8) /* MSDMA for CODEC CR end address register */
++#define S3C_MSCOYOFF S3C_CAMIFREG(0xEC) /* MSDMA for CODEC Y offset register */
++#define S3C_MSCOCBOFF S3C_CAMIFREG(0xF0) /* MSDMA for CODEC CB offset register */
++#define S3C_MSCOCROFF S3C_CAMIFREG(0xF4) /* MSDMA for CODEC CR offset register */
++#define S3C_MSCOWIDTH S3C_CAMIFREG(0xF8) /* MSDMA for CODEC source image width register */
++#define S3C_MSCOCTRL S3C_CAMIFREG(0xFC) /* MSDMA for CODEC control register */
++#define S3C_MSPRY0SA S3C_CAMIFREG(0x100) /* MSDMA for PREVIEW Y0 start address register */
++#define S3C_MSPRCB0SA S3C_CAMIFREG(0x104) /* MSDMA for PREVIEW CB0 start address register */
++#define S3C_MSPRCR0SA S3C_CAMIFREG(0x108) /* MSDMA for PREVIEW CR0 start address register */
++#define S3C_MSPRY0END S3C_CAMIFREG(0x10C) /* MSDMA for PREVIEW Y0 end address register */
++#define S3C_MSPRCB0END S3C_CAMIFREG(0x110) /* MSDMA for PREVIEW CB0 end address register */
++#define S3C_MSPRCR0END S3C_CAMIFREG(0x114) /* MSDMA for PREVIEW CR0 end address register */
++#define S3C_MSPRYOFF S3C_CAMIFREG(0x118) /* MSDMA for PREVIEW Y offset register */
++#define S3C_MSPRCBOFF S3C_CAMIFREG(0x11C) /* MSDMA for PREVIEW CB offset register */
++#define S3C_MSPRCROFF S3C_CAMIFREG(0x120) /* MSDMA for PREVIEW CR offset register */
++#define S3C_MSPRWIDTH S3C_CAMIFREG(0x124) /* MSDMA for PREVIEW source image width register */
++#define S3C_CIMSCTRL S3C_CAMIFREG(0x128) /* MSDMA for PREVIEW control register */
++#define S3C_CICOSCOSY S3C_CAMIFREG(0x12C) /* CODEC scan line Y offset register */
++#define S3C_CICOSCOSCB S3C_CAMIFREG(0x130) /* CODEC scan line CB offset register */
++#define S3C_CICOSCOSCR S3C_CAMIFREG(0x134) /* CODEC scan line CR offset register */
++#define S3C_CIPRSCOSY S3C_CAMIFREG(0x138) /* PREVIEW scan line Y offset register */
++#define S3C_CIPRSCOSCB S3C_CAMIFREG(0x13C) /* PREVIEW scan line CB offset register */
++#define S3C_CIPRSCOSCR S3C_CAMIFREG(0x140) /* PREVIEW scan line CR offset register */
++#endif
++
++#endif /* ___ASM_ARCH_REGS_CAMIF_H */
++
+diff --git a/include/asm-arm/arch-s3c2410/regs-clock.h b/include/asm-arm/arch-s3c2410/regs-clock.h
+index e39656b..dbf0cf9 100644
+--- a/include/asm-arm/arch-s3c2410/regs-clock.h
++++ b/include/asm-arm/arch-s3c2410/regs-clock.h
+@@ -11,9 +11,10 @@
+ */
+
+ #ifndef __ASM_ARM_REGS_CLOCK
+-#define __ASM_ARM_REGS_CLOCK "$Id: clock.h,v 1.4 2003/04/30 14:50:51 ben Exp $"
++#define __ASM_ARM_REGS_CLOCK "$Id: regs-clock.h,v 1.1.1.1 2008/02/18 02:22:54 ihlee215 Exp $"
+
+ #define S3C2410_CLKREG(x) ((x) + S3C24XX_VA_CLKPWR)
++#define S3C_CLKREG(x) ((x) + S3C24XX_VA_SYSCON)
+
+ #define S3C2410_PLLVAL(_m,_p,_s) ((_m) << 12 | ((_p) << 4) | ((_s)))
+
+diff --git a/include/asm-arm/arch-s3c2410/regs-gpio.h b/include/asm-arm/arch-s3c2410/regs-gpio.h
+index b693158..7a27150 100644
+--- a/include/asm-arm/arch-s3c2410/regs-gpio.h
++++ b/include/asm-arm/arch-s3c2410/regs-gpio.h
+@@ -1,5 +1,7 @@
+ /* linux/include/asm-arm/arch-s3c2410/regs-gpio.h
+ *
++ * "$Id: regs-gpio.h,v 1.8 2008/07/30 11:03:03 dasan Exp $"
++ *
+ * Copyright (c) 2003,2004 Simtec Electronics <linux@simtec.co.uk>
+ * http://www.simtec.co.uk/products/SWLINUX/
+ *
+@@ -12,8 +14,7 @@
+
+
+ #ifndef __ASM_ARCH_REGS_GPIO_H
+-#define __ASM_ARCH_REGS_GPIO_H "$Id: gpio.h,v 1.5 2003/05/19 12:51:08 ben Exp $"
+-
++#define __ASM_ARCH_REGS_GPIO_H
+ #define S3C2410_GPIONO(bank,offset) ((bank) + (offset))
+
+ #define S3C2410_GPIO_BANKA (32*0)
+@@ -25,12 +26,16 @@
+ #define S3C2410_GPIO_BANKG (32*6)
+ #define S3C2410_GPIO_BANKH (32*7)
+
++#define S3C2410_GPIO_BANKJ (32*13)
++#define S3C2410_GPIO_BANKL (32*15)
++
+ #ifdef CONFIG_CPU_S3C2400
+ #define S3C24XX_GPIO_BASE(x) S3C2400_GPIO_BASE(x)
+ #define S3C24XX_MISCCR S3C2400_MISCCR
+ #else
+ #define S3C24XX_GPIO_BASE(x) S3C2410_GPIO_BASE(x)
+ #define S3C24XX_MISCCR S3C24XX_GPIOREG2(0x80)
++#define S3C24XX_MISCCR_SPISEL (1<<31) /* SET SPI on S3C2443 */
+ #endif /* CONFIG_CPU_S3C2400 */
+
+
+@@ -201,6 +206,8 @@
+ #define S3C2400_GPBDAT S3C2410_GPIOREG(0x0C)
+ #define S3C2400_GPBUP S3C2410_GPIOREG(0x10)
+
++#define S3C2450_GPBSEL S3C2410_GPIOREG(0x1C)
++
+ /* no i/o pin in port b can have value 3 (unless it is a s3c2443) ! */
+
+ #define S3C2410_GPB0 S3C2410_GPIONO(S3C2410_GPIO_BANKB, 0)
+@@ -557,6 +564,8 @@
+ #define S3C2400_GPEDAT S3C2410_GPIOREG(0x30)
+ #define S3C2400_GPEUP S3C2410_GPIOREG(0x34)
+
++#define S3C2450_GPESEL S3C2410_GPIOREG(0x4C)
++
+ #define S3C2410_GPE0 S3C2410_GPIONO(S3C2410_GPIO_BANKE, 0)
+ #define S3C2410_GPE0_INP (0x00 << 0)
+ #define S3C2410_GPE0_OUTP (0x01 << 0)
+@@ -607,6 +616,7 @@
+ #define S3C2410_GPE5_OUTP (0x01 << 10)
+ #define S3C2410_GPE5_SDCLK (0x02 << 10)
+ #define S3C2443_GPE5_SD1_CLK (0x02 << 10)
++#define S3C2450_GPE5_SD0_CLK (0x02 << 10)
+ #define S3C2400_GPE5_EINT5 (0x02 << 10)
+ #define S3C2400_GPE5_TCLK1 (0x03 << 10)
+
+@@ -615,6 +625,7 @@
+ #define S3C2410_GPE6_OUTP (0x01 << 12)
+ #define S3C2410_GPE6_SDCMD (0x02 << 12)
+ #define S3C2443_GPE6_SD1_CMD (0x02 << 12)
++#define S3C2450_GPE6_SD0_CMD (0x02 << 12)
+ #define S3C2443_GPE6_AC_BITCLK (0x03 << 12)
+ #define S3C2400_GPE6_EINT6 (0x02 << 12)
+
+@@ -622,7 +633,8 @@
+ #define S3C2410_GPE7_INP (0x00 << 14)
+ #define S3C2410_GPE7_OUTP (0x01 << 14)
+ #define S3C2410_GPE7_SDDAT0 (0x02 << 14)
+-#define S3C2443_GPE5_SD1_DAT0 (0x02 << 14)
++#define S3C2443_GPE7_SD1_DAT0 (0x02 << 14)
++#define S3C2450_GPE7_SD0_DAT0 (0x02 << 14)
+ #define S3C2443_GPE7_AC_SDI (0x03 << 14)
+ #define S3C2400_GPE7_EINT7 (0x02 << 14)
+
+@@ -631,6 +643,7 @@
+ #define S3C2410_GPE8_OUTP (0x01 << 16)
+ #define S3C2410_GPE8_SDDAT1 (0x02 << 16)
+ #define S3C2443_GPE8_SD1_DAT1 (0x02 << 16)
++#define S3C2450_GPE8_SD0_DAT1 (0x02 << 16)
+ #define S3C2443_GPE8_AC_SDO (0x03 << 16)
+ #define S3C2400_GPE8_nXDACK0 (0x02 << 16)
+
+@@ -639,6 +652,7 @@
+ #define S3C2410_GPE9_OUTP (0x01 << 18)
+ #define S3C2410_GPE9_SDDAT2 (0x02 << 18)
+ #define S3C2443_GPE9_SD1_DAT2 (0x02 << 18)
++#define S3C2450_GPE9_SD0_DAT2 (0x02 << 18)
+ #define S3C2443_GPE9_AC_SYNC (0x03 << 18)
+ #define S3C2400_GPE9_nXDACK1 (0x02 << 18)
+ #define S3C2400_GPE9_nXBACK (0x03 << 18)
+@@ -648,6 +662,7 @@
+ #define S3C2410_GPE10_OUTP (0x01 << 20)
+ #define S3C2410_GPE10_SDDAT3 (0x02 << 20)
+ #define S3C2443_GPE10_SD1_DAT3 (0x02 << 20)
++#define S3C2450_GPE10_SD0_DAT3 (0x02 << 20)
+ #define S3C2443_GPE10_AC_nRESET (0x03 << 20)
+ #define S3C2400_GPE10_nXDREQ0 (0x02 << 20)
+
+@@ -970,6 +985,115 @@
+ #define S3C2410_GPH10_OUTP (0x01 << 20)
+ #define S3C2410_GPH10_CLKOUT1 (0x02 << 20)
+
++#define S3C2443_GPH13 S3C2410_GPIONO(S3C2410_GPIO_BANKH, 13)
++#define S3C2443_GPH13_INP (0x00 << 26)
++#define S3C2443_GPH13_OUTP (0x01 << 26)
++#define S3C2443_GPH13_CLKOUT0 (0x02 << 26)
++
++#define S3C2443_GPH14 S3C2410_GPIONO(S3C2410_GPIO_BANKH, 14)
++#define S3C2443_GPH14_INP (0x00 << 28)
++#define S3C2443_GPH14_OUTP (0x01 << 28)
++#define S3C2443_GPH14_CLKOUT1 (0x02 << 28)
++
++
++
++/* Port L consists of14 SPI1/Misc pins
++ *
++ * GPLCON has 2 bits for each of the input pins on port L
++ * 00 = 0 input, 1 output,
++ *
++ * pull up works like all other ports.
++*/
++
++#define S3C2410_GPLCON S3C2410_GPIOREG(0xf0)
++#define S3C2410_GPLDAT S3C2410_GPIOREG(0xf4)
++#define S3C2410_GPLUP S3C2410_GPIOREG(0xf8)
++
++#define S3C2450_GPLSEL S3C2410_GPIOREG(0xfC)
++
++#define S3C2410_GPL0 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 0)
++#define S3C2410_GPL0_INP (0x00 << 0)
++#define S3C2410_GPL0_OUTP (0x01 << 0)
++#define S3C2410_GPL0_SD0_DAT0 (0x02 << 0)
++
++#define S3C2410_GPL1 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 1)
++#define S3C2410_GPL1_INP (0x00 << 2)
++#define S3C2410_GPL1_OUTP (0x01 << 2)
++#define S3C2410_GPL1_SD0_DAT1 (0x02 << 2)
++
++#define S3C2410_GPL2 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 2)
++#define S3C2410_GPL2_INP (0x00 << 4)
++#define S3C2410_GPL2_OUTP (0x01 << 4)
++#define S3C2410_GPL2_SD0_DAT02 (0x02 << 4)
++
++#define S3C2410_GPL3 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 3)
++#define S3C2410_GPL3_INP (0x00 << 6)
++#define S3C2410_GPL3_OUTP (0x01 << 6)
++#define S3C2410_GPL3_SD0_DAT3 (0x02 << 6)
++
++#define S3C2410_GPL4 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 4)
++#define S3C2410_GPL4_INP (0x00 << 8)
++#define S3C2410_GPL4_OUTP (0x01 << 8)
++#define S3C2410_GPL4_SD0_DAT4 (0x02 << 8)
++#define S3C2450_GPL4_I2S1_SCLK (0x03 << 8)
++
++#define S3C2410_GPL5 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 5)
++#define S3C2410_GPL5_INP (0x00 << 10)
++#define S3C2410_GPL5_OUTP (0x01 << 10)
++#define S3C2410_GPL5_SD0_DAT5 (0x02 << 10)
++#define S3C2450_GPL5_I2S1_CDCLK (0x03 << 10)
++
++#define S3C2410_GPL6 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 6)
++#define S3C2410_GPL6_INP (0x00 << 12)
++#define S3C2410_GPL6_OUTP (0x01 << 12)
++#define S3C2410_GPL6_TXD2 (0x02 << 12)
++#define S3C2410_GPL6_SD0_DAT6 (0x03 << 12)
++#define S3C2450_GPL6_I2S1_SDI (0x03 << 12)
++
++#define S3C2410_GPL7 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 7)
++#define S3C2410_GPL7_INP (0x00 << 14)
++#define S3C2410_GPL7_OUTP (0x01 << 14)
++#define S3C2410_GPL7_RXD2 (0x02 << 14)
++#define S3C2410_GPL7_SD0_DAT7 (0x03 << 14)
++#define S3C2450_GPL7_I2S1_SDO (0x03 << 14)
++
++#define S3C2410_GPL8 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 8)
++#define S3C2410_GPL8_INP (0x00 << 16)
++#define S3C2410_GPL8_OUTP (0x01 << 16)
++#define S3C2410_GPL8_SD0_CMD (0x02 << 16)
++
++#define S3C2410_GPL9 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 9)
++#define S3C2410_GPL9_INP (0x00 << 18)
++#define S3C2410_GPL9_OUTP (0x01 << 18)
++#define S3C2410_GPL9_SD0_CLK (0x02 << 18)
++#define S3C2442_GPL9_nSPICS0 (0x03 << 18)
++
++#define S3C2410_GPL10 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 10)
++#define S3C2410_GPL10_INP (0x00 << 20)
++#define S3C2410_GPL10_OUTP (0x01 << 20)
++#define S3C2410_GPL10_SPICLK1 (0x02 << 20)
++
++#define S3C2410_GPL11 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 11)
++#define S3C2410_GPL11_INP (0x00 << 22)
++#define S3C2410_GPL11_OUTP (0x01 << 22)
++#define S3C2410_GPL11_SPIMOSI1 (0x02 << 22)
++
++#define S3C2410_GPL12 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 12)
++#define S3C2410_GPL12_INP (0x00 << 24)
++#define S3C2410_GPL12_OUTP (0x01 << 24)
++#define S3C2410_GPL12_SPIMISO1 (0x02 << 24)
++
++#define S3C2410_GPL13 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 13)
++#define S3C2410_GPL13_INP (0x00 << 26)
++#define S3C2410_GPL13_OUTP (0x01 << 26)
++#define S3C2410_GPL13_SS0 (0x02 << 26)
++
++#define S3C2410_GPL14 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 14)
++#define S3C2410_GPL14_INP (0x00 << 28)
++#define S3C2410_GPL14_OUTP (0x01 << 28)
++#define S3C2410_GPL14_SS1 (0x02 << 28)
++
++
+ /* The S3C2412 and S3C2413 move the GPJ register set to after
+ * GPH, which means all registers after 0x80 are now offset by 0x10
+ * for the 2412/2413 from the 2410/2440/2442
+@@ -1151,5 +1275,1441 @@
+ #define S3C2412_SLPCON_ALL_IN (0x22222222 | 0x88888888)
+ #define S3C2412_SLPCON_ALL_PULL (0x33333333)
+
++#if defined (CONFIG_PLAT_S3C64XX) || defined (CONFIG_PLAT_S5PC1XX)
++
++/* configure GPIO ports A..G */
++
++#define S3C_GPIOREG(x) ((x) + S3C24XX_VA_GPIO)
++
++/* GPIO */
++#define S3C_GPIONO(bank,offset) ((bank) + (offset))
++
++#define S3C_GPIO_BANKA (32*0)
++#define S3C_GPIO_BANKB (32*1)
++#define S3C_GPIO_BANKC (32*2)
++#define S3C_GPIO_BANKD (32*3)
++#define S3C_GPIO_BANKE (32*4)
++#define S3C_GPIO_BANKF (32*5)
++#define S3C_GPIO_BANKG (32*6)
++#define S3C_GPIO_BANKH (32*7)
++#define S3C_GPIO_BANKI (32*8)
++#define S3C_GPIO_BANKJ (32*9)
++#define S3C_GPIO_BANKO (32*10)
++#define S3C_GPIO_BANKP (32*11)
++#define S3C_GPIO_BANKQ (32*12)
++
++#define S3C_GPIO_BANKK (32*13)
++#define S3C_GPIO_BANKL (32*14)
++#define S3C_GPIO_BANKM (32*15)
++#define S3C_GPIO_BANKN (32*16)
++
++#define S3C_GPIO_INPUT (0)
++#define S3C_GPIO_OUTPUT (1)
++#define S3C_GPIO_BASE(pin) ((pin & ~31) >> 5)
++#define S3C_GPIO_OFFSET(pin) (pin & 31)
++
++/* general configuration options */
++
++#define S3C_GPIO_LEAVE (0xFFFFFFFF)
++
++/* GPA : 8 in/out port . UART */
++#define S3C_GPADAT S3C_GPIOREG(0x04)
++#define S3C_GPACON S3C_GPIOREG(0x00)
++#define S3C_GPAPU S3C_GPIOREG(0x08)
++#define S3C_GPASLPCON S3C_GPIOREG(0x0C)
++
++#define S3C_GPA0 S3C_GPIONO(S3C_GPIO_BANKA, 0)
++#define S3C_GPA0_INP (0)
++#define S3C_GPA0_OUTP (1)
++#define S3C_GPA0_UART_RXD0 (2)
++#define S3C_GPA0_EXT_INT_G1_0 (7)
++
++#define S3C_GPA1 S3C_GPIONO(S3C_GPIO_BANKA, 1)
++#define S3C_GPA1_INP (0)
++#define S3C_GPA1_OUTP (1)
++#define S3C_GPA1_UART_TXD0 (2)
++#define S3C_GPA1_EXT_INT_G1_1 (7)
++
++#define S3C_GPA2 S3C_GPIONO(S3C_GPIO_BANKA, 2)
++#define S3C_GPA2_INP (0)
++#define S3C_GPA2_OUTP (1)
++#define S3C_GPA2_UART_CTS0 (2)
++#define S3C_GPA2_ADDR_CF0 (5)
++#define S3C_GPA2_EXT_INT_G1_2 (7)
++
++#define S3C_GPA3 S3C_GPIONO(S3C_GPIO_BANKA, 3)
++#define S3C_GPA3_INP (0)
++#define S3C_GPA3_OUTP (1)
++#define S3C_GPA3_UART_RTS0 (2)
++#define S3C_GPA3_ADDR_CF1 (5)
++#define S3C_GPA3_EXT_INT_G1_3 (7)
++
++#define S3C_GPA4 S3C_GPIONO(S3C_GPIO_BANKA, 4)
++#define S3C_GPA4_INP (0)
++#define S3C_GPA4_OUTP (1)
++#define S3C_GPA4_UART_RXD1 (2)
++#define S3C_GPA4_EXT_INT_G1_4 (7)
++
++#define S3C_GPA5 S3C_GPIONO(S3C_GPIO_BANKA, 5)
++#define S3C_GPA5_INP (0)
++#define S3C_GPA5_OUTP (1)
++#define S3C_GPA5_UART_TXD1 (2)
++#define S3C_GPA5_EXT_INT_G1_5 (7)
++
++#define S3C_GPA6 S3C_GPIONO(S3C_GPIO_BANKA, 6)
++#define S3C_GPA6_INP (0)
++#define S3C_GPA6_OUTP (1)
++#define S3C_GPA6_UART_CTS1 (2)
++#define S3C_GPA6_ADDR_CF0 (5)
++#define S3C_GPA6_EXT_INT_G1_6 (7)
++
++#define S3C_GPA7 S3C_GPIONO(S3C_GPIO_BANKA, 7)
++#define S3C_GPA7_INP (0)
++#define S3C_GPA7_OUTP (1)
++#define S3C_GPA7_UART_RTS1 (2)
++#define S3C_GPA7_ADDR_CF1 (5)
++#define S3C_GPA7_EXT_INT_G1_7 (7)
++
++
++/* GPB : 7 in/out port . UART, IrDA, External DMA, I2C */
++#define S3C_GPBDAT S3C_GPIOREG(0x24)
++#define S3C_GPBCON S3C_GPIOREG(0x20)
++#define S3C_GPBPU S3C_GPIOREG(0x28)
++#define S3C_GPBSLPCON S3C_GPIOREG(0x2C)
++
++#define S3C_GPB0 S3C_GPIONO(S3C_GPIO_BANKB, 0)
++#define S3C_GPB0_INP (0)
++#define S3C_GPB0_OUTP (1)
++#define S3C_GPB0_UART_RXD2 (2)
++#define S3C_GPB0_EXT_DMA_REQ (3)
++#define S3C_GPB0_IRDA_RXD (4)
++#define S3C_GPB0_ADDR_CF0 (5)
++#define S3C_GPB0_RESERVED (6)
++#define S3C_GPB0_EXT_INT_G1_8 (7)
++
++#define S3C_GPB1 S3C_GPIONO(S3C_GPIO_BANKB, 1)
++#define S3C_GPB1_INP (0)
++#define S3C_GPB1_OUTP (1)
++#define S3C_GPB1_UART_TXD2 (2)
++#define S3C_GPB1_EXT_DMA_ACK (3)
++#define S3C_GPB1_IRDA_TXD (4)
++#define S3C_GPB1_ADDR_CF1 (5)
++#define S3C_GPB1_RESERVED (6)
++#define S3C_GPB1_EXT_INT_G1_9 (7)
++
++#define S3C_GPB2 S3C_GPIONO(S3C_GPIO_BANKB, 2)
++#define S3C_GPB2_INP (0)
++#define S3C_GPB2_OUTP (1)
++#define S3C_GPB2_UART_RXD3 (2)
++#define S3C_GPB2_IRDA_RXD (3)
++#define S3C_GPB2_EXT_DMA_REQ (4)
++#define S3C_GPB2_ADDR_CF2 (5)
++#define S3C_GPB2_I2C_SCL1 (6)
++#define S3C_GPB2_EXT_INT_G1_10 (7)
++
++#define S3C_GPB3 S3C_GPIONO(S3C_GPIO_BANKB, 3)
++#define S3C_GPB3_INP (0)
++#define S3C_GPB3_OUTP (1)
++#define S3C_GPB3_UART_TXD3 (2)
++#define S3C_GPB3_IRDA_RXD (3)
++#define S3C_GPB3_EXT_DMA_ACK (4)
++#define S3C_GPB3_RESERVED1 (5)
++#define S3C_GPB3_I2C_SDA1 (6)
++#define S3C_GPB3_EXT_INT_G1_11 (7)
++
++#define S3C_GPB4 S3C_GPIONO(S3C_GPIO_BANKB, 4)
++#define S3C_GPB4_INP (0)
++#define S3C_GPB4_OUTP (1)
++#define S3C_GPB4_IRDA_SDBW (2)
++#define S3C_GPB4_RESERVED1 (3)
++#define S3C_GPB4_CF_DATA_DIR (4)
++#define S3C_GPB4_RESERVED2 (5)
++#define S3C_GPB4_RESERVED3 (6)
++#define S3C_GPB4_EXT_INT_G1_12 (7)
++
++#define S3C_GPB5 S3C_GPIONO(S3C_GPIO_BANKB, 5)
++#define S3C_GPB5_INP (0)
++#define S3C_GPB5_OUTP (1)
++#define S3C_GPB5_I2C_SCL0 (2)
++#define S3C_GPB5_RESERVED1 (3)
++#define S3C_GPB5_RESERVED2 (4)
++#define S3C_GPB5_RESERVED3 (5)
++#define S3C_GPB5_RESERVED4 (6)
++#define S3C_GPB5_EXT_INT_G1_13 (7)
++
++#define S3C_GPB6 S3C_GPIONO(S3C_GPIO_BANKB, 6)
++#define S3C_GPB6_INP (0)
++#define S3C_GPB6_OUTP (1)
++#define S3C_GPB6_I2C_SDA0 (2)
++#define S3C_GPB6_RESERVED1 (3)
++#define S3C_GPB6_RESERVED2 (4)
++#define S3C_GPB6_RESERVED3 (5)
++#define S3C_GPB6_RESERVED (6)
++#define S3C_GPB6_EXT_INT_G1_14 (7)
++
++
++/* GPC : 8 in/out port . SPI */
++#define S3C_GPCDAT S3C_GPIOREG(0x44)
++#define S3C_GPCCON S3C_GPIOREG(0x40)
++#define S3C_GPCPU S3C_GPIOREG(0x48)
++#define S3C_GPCSLPCON S3C_GPIOREG(0x4C)
++
++#define S3C_GPC0 S3C_GPIONO(S3C_GPIO_BANKC, 0)
++#define S3C_GPC0_INP (0)
++#define S3C_GPC0_OUTP (1)
++#define S3C_GPC0_SPI_MISO0 (2)
++#define S3C_GPC0_RESERVED1 (3)
++#define S3C_GPC0_RESERVED2 (4)
++#define S3C_GPC0_ADDR_CF0 (5)
++#define S3C_GBP0_RESERVED3 (6)
++#define S3C_GPC0_EXT_INT_G2_0 (7)
++
++#define S3C_GPC1 S3C_GPIONO(S3C_GPIO_BANKC, 1)
++#define S3C_GPC1_INP (0)
++#define S3C_GPC1_OUTP (1)
++#define S3C_GPC1_SPI_CLK0 (2)
++#define S3C_GPC1_RESERVED1 (3)
++#define S3C_GPC1_RESERVED2 (4)
++#define S3C_GPC1_ADDR_CF1 (5)
++#define S3C_GPC1_RESERVED3 (6)
++#define S3C_GPC1_EXT_INT_G2_1 (7)
++
++#define S3C_GPC2 S3C_GPIONO(S3C_GPIO_BANKC, 2)
++#define S3C_GPC2_INP (0)
++#define S3C_GPC2_OUTP (1)
++#define S3C_GPC2_SPI_MOSI0 (2)
++#define S3C_GPC2_RESERVED1 (3)
++#define S3C_GPC2_RESERVED2 (4)
++#define S3C_GPC2_ADDR_CF2 (5)
++#define S3C_GPC2_RESERVED3 (6)
++#define S3C_GPC2_EXT_INT_G2_2 (7)
++
++#define S3C_GPC3 S3C_GPIONO(S3C_GPIO_BANKC, 3)
++#define S3C_GPC3_INP (0)
++#define S3C_GPC3_OUTP (1)
++#define S3C_GPC3_SPI_CS0 (2)
++#define S3C_GPC3_RESERVED1 (3)
++#define S3C_GPC3_RESERVED2 (4)
++#define S3C_GPC3_RESERVED3 (5)
++#define S3C_GPC3_RESERVED4 (6)
++#define S3C_GPC3_EXT_INT_G2_3 (7)
++
++#define S3C_GPC4 S3C_GPIONO(S3C_GPIO_BANKC, 4)
++#define S3C_GPC4_INP (0)
++#define S3C_GPC4_OUTP (1)
++#define S3C_GPC4_SPI_MISO1 (2)
++#define S3C_GPC4_MMC_CMD2 (3)
++#define S3C_GPC4_RESERVED1 (4)
++#define S3C_GPC4_I2S_V40_DO0 (5)
++#define S3C_GPC4_RESERVED3 (6)
++#define S3C_GPC4_EXT_INT_G2_4 (7)
++
++#define S3C_GPC5 S3C_GPIONO(S3C_GPIO_BANKC, 5)
++#define S3C_GPC5_INP (0)
++#define S3C_GPC5_OUTP (1)
++#define S3C_GPC5_SPI_CLK1 (2)
++#define S3C_GPC5_MMC_CLK2 (3)
++#define S3C_GPC5_RESERVED2 (4)
++#define S3C_GPC5_I2S_V40_DO1 (5)
++#define S3C_GPC5_RESERVED4 (6)
++#define S3C_GPC5_EXT_INT_G2_5 (7)
++
++#define S3C_GPC6 S3C_GPIONO(S3C_GPIO_BANKC, 6)
++#define S3C_GPC6_INP (0)
++#define S3C_GPC6_OUTP (1)
++#define S3C_GPC6_SPI_MOSI1 (2)
++#define S3C_GPC6_RESERVED1 (3)
++#define S3C_GPC6_RESERVED2 (4)
++#define S3C_GPC6_RESERVED3 (5)
++#define S3C_GPC6_RESERVED4 (6)
++#define S3C_GPC6_EXT_INT_G2_6 (7)
++
++#define S3C_GPC7 S3C_GPIONO(S3C_GPIO_BANKC, 7)
++#define S3C_GPC7_INP (0)
++#define S3C_GPC7_OUTP (1)
++#define S3C_GPC7_SPI_CS1 (2)
++#define S3C_GPC7_RESERVED1 (3)
++#define S3C_GPC7_RESERVED2 (4)
++#define S3C_GPC7_I2S_V40_DO2 (5)
++#define S3C_GPC7_RESERVED4 (6)
++#define S3C_GPC7_EXT_INT_G2_7 (7)
++
++
++/* GPD : 5 in/out port . PCM, I2S, AC97 */
++#define S3C_GPDDAT S3C_GPIOREG(0x64)
++#define S3C_GPDCON S3C_GPIOREG(0x60)
++#define S3C_GPDPU S3C_GPIOREG(0x68)
++#define S3C_GPDSLPCON S3C_GPIOREG(0x6C)
++
++#define S3C_GPD0 S3C_GPIONO(S3C_GPIO_BANKD, 0)
++#define S3C_GPD0_INP (0)
++#define S3C_GPD0_OUTP (1)
++#define S3C_GPD0_PCM_DCLK0 (2)
++#define S3C_GPD0_I2S_CLK0 (3)
++#define S3C_GPD0_AC97_BITCLK (4)
++#define S3C_GPD0_ADDR_CF0 (5)
++#define S3C_GBP0_RESERVED1 (6)
++#define S3C_GPD0_EXT_INT_G3_0 (7)
++
++#define S3C_GPD1 S3C_GPIONO(S3C_GPIO_BANKD, 1)
++#define S3C_GPD1_INP (0)
++#define S3C_GPD1_OUTP (1)
++#define S3C_GPD1_PCM_EXTCLK0 (2)
++#define S3C_GPD1_I2S_CDCLK0 (3)
++#define S3C_GPD1_AC97_RESET (4)
++#define S3C_GPD1_ADDR_CF1 (5)
++#define S3C_GPD1_RESERVED1 (6)
++#define S3C_GPD1_EXT_INT_G3_1 (7)
++
++#define S3C_GPD2 S3C_GPIONO(S3C_GPIO_BANKD, 2)
++#define S3C_GPD2_INP (0)
++#define S3C_GPD2_OUTP (1)
++#define S3C_GPD2_PCM_FSYNC0 (2)
++#define S3C_GPD2_I2S_LRCLK0 (3)
++#define S3C_GPD2_AC97_SYNC (4)
++#define S3C_GPD2_ADDR_CF2 (5)
++#define S3C_GPD2_RESERVED1 (6)
++#define S3C_GPD2_EXT_INT_G3_2 (7)
++
++#define S3C_GPD3 S3C_GPIONO(S3C_GPIO_BANKD, 3)
++#define S3C_GPD3_INP (0)
++#define S3C_GPD3_OUTP (1)
++#define S3C_GPD3_PCM_SIN0 (2)
++#define S3C_GPD3_I2S_DI0 (3)
++#define S3C_GPD3_AC97_SDI (4)
++#define S3C_GPD3_RESERVED1 (5)
++#define S3C_GPD3_RESERVED2 (6)
++#define S3C_GPD3_EXT_INT_G3_3 (7)
++
++#define S3C_GPD4 S3C_GPIONO(S3C_GPIO_BANKD, 4)
++#define S3C_GPD4_INP (0)
++#define S3C_GPD4_OUTP (1)
++#define S3C_GPD4_PCM_SOUT0 (2)
++#define S3C_GPD4_I2S_DO0 (3)
++#define S3C_GPD4_AC97_SDO (4)
++#define S3C_GPD4_RESERVED1 (5)
++#define S3C_GPD4_RESERVED2 (6)
++#define S3C_GPD4_EXT_INT_G3_4 (7)
++
++
++/* GPE : 5 in/out port . PCM, I2S, AC97 */
++#define S3C_GPEDAT S3C_GPIOREG(0x84)
++#define S3C_GPECON S3C_GPIOREG(0x80)
++#define S3C_GPEPU S3C_GPIOREG(0x88)
++#define S3C_GPESLPCON S3C_GPIOREG(0x8C)
++
++#define S3C_GPE0 S3C_GPIONO(S3C_GPIO_BANKE, 0)
++#define S3C_GPE0_INP (0)
++#define S3C_GPE0_OUTP (1)
++#define S3C_GPE0_PCM_DCLK1 (2)
++#define S3C_GPE0_I2S_CLK1 (3)
++#define S3C_GPE0_AC97_BITCLK (4)
++#define S3C_GPE0_RESERVED1 (5)
++#define S3C_GPE0_RESERVED2 (6)
++#define S3C_GPE0_EXT_INT_G3_5 (7)
++
++#define S3C_GPE1 S3C_GPIONO(S3C_GPIO_BANKE, 1)
++#define S3C_GPE1_INP (0)
++#define S3C_GPE1_OUTP (1)
++#define S3C_GPE1_PCM_EXTCLK1 (2)
++#define S3C_GPE1_I2S_CDCLK1 (3)
++#define S3C_GPE1_AC97_RESET (4)
++#define S3C_GPE1_RESERVED1 (5)
++#define S3C_GPE1_RESERVED2 (6)
++#define S3C_GPE1_EXT_INT_G3_6 (7)
++
++#define S3C_GPE2 S3C_GPIONO(S3C_GPIO_BANKE, 2)
++#define S3C_GPE2_INP (0)
++#define S3C_GPE2_OUTP (1)
++#define S3C_GPE2_PCM_FSYNC1 (2)
++#define S3C_GPE2_I2S_LRCLK1 (3)
++#define S3C_GPE2_AC97_SYNC (4)
++#define S3C_GPE2_RESERVED1 (5)
++#define S3C_GPE2_RESERVED2 (6)
++#define S3C_GPE2_EXT_INT_G3_7 (7)
++
++#define S3C_GPE3 S3C_GPIONO(S3C_GPIO_BANKE, 3)
++#define S3C_GPE3_INP (0)
++#define S3C_GPE3_OUTP (1)
++#define S3C_GPE3_PCM_SIN1 (2)
++#define S3C_GPE3_I2S_DI1 (3)
++#define S3C_GPE3_AC97_SDI (4)
++#define S3C_GPE3_RESERVED1 (5)
++#define S3C_GPE3_RESERVED2 (6)
++#define S3C_GPE3_EXT_INT_G3_8 (7)
++
++#define S3C_GPE4 S3C_GPIONO(S3C_GPIO_BANKE, 4)
++#define S3C_GPE4_INP (0)
++#define S3C_GPE4_OUTP (1)
++#define S3C_GPE4_PCM_SOUT1 (2)
++#define S3C_GPE4_I2S_DO1 (3)
++#define S3C_GPE4_AC97_SDO (4)
++#define S3C_GPE4_RESERVED1 (5)
++#define S3C_GPE4_RESERVED2 (6)
++#define S3C_GPE4_EXT_INT_G3_9 (7)
++
++#define S3C_GPE11 S3C_GPIONO(S3C_GPIO_BANKE, 11)
++#define S3C_GPE11_INP (0)
++#define S3C_GPE11_OUTP (1)
++#define S3C_GPE11_SPI_MISO0 (2)
++#define S3C_GPE11_I2S_DO1 (3)
++#define S3C_GPE11_AC97_SDO (4)
++#define S3C_GPE11_RESERVED1 (5)
++#define S3C_GPE11_RESERVED2 (6)
++#define S3C_GPE11_EXT_INT_G3_9 (7)
++
++#define S3C_GPE12 S3C_GPIONO(S3C_GPIO_BANKE, 12)
++#define S3C_GPE12_INP (0)
++#define S3C_GPE12_OUTP (1)
++#define S3C_GPE12_SPI_MOSI0 (2)
++#define S3C_GPE12_I2S_DO1 (3)
++#define S3C_GPE12_AC97_SDO (4)
++#define S3C_GPE12_RESERVED1 (5)
++#define S3C_GPE12_RESERVED2 (6)
++#define S3C_GPE12_EXT_INT_G3_9 (7)
++
++#define S3C_GPE13 S3C_GPIONO(S3C_GPIO_BANKE, 13)
++#define S3C_GPE13_INP (0)
++#define S3C_GPE13_OUTP (1)
++#define S3C_GPE13_SPI_CLK0 (2)
++#define S3C_GPE13_I2S_DO1 (3)
++#define S3C_GPE13_AC97_SDO (4)
++#define S3C_GPE13_RESERVED1 (5)
++#define S3C_GPE13_RESERVED2 (6)
++#define S3C_GPE13_EXT_INT_G3_9 (7)
++
++
++/* GPF : 16 in/out port . Camera I/F, PWM, Clock Out */
++#define S3C_GPFDAT S3C_GPIOREG(0xA4)
++#define S3C_GPFCON S3C_GPIOREG(0xA0)
++#define S3C_GPFPU S3C_GPIOREG(0xA8)
++#define S3C_GPFSLPCON S3C_GPIOREG(0xAC)
++
++#define S3C_GPF0 S3C_GPIONO(S3C_GPIO_BANKF, 0)
++#define S3C_GPF0_INP (0)
++#define S3C_GPF0_OUTP (1)
++#define S3C_GPF0_CAMIF_CLK (2)
++#define S3C_GPF0_EXT_INT_G4_0 (3)
++
++#define S3C_GPF1 S3C_GPIONO(S3C_GPIO_BANKF, 1)
++#define S3C_GPF1_INP (0)
++#define S3C_GPF1_OUTP (1)
++#define S3C_GPF1_CAMIF_HREF (2)
++#define S3C_GPF1_EXT_INT_G4_1 (3)
++
++#define S3C_GPF2 S3C_GPIONO(S3C_GPIO_BANKF, 2)
++#define S3C_GPF2_INP (0)
++#define S3C_GPF2_OUTP (1)
++#define S3C_GPF2_CAMIF_CLK (2)
++#define S3C_GPF2_EXT_INT_G4_2 (3)
++
++#define S3C_GPF3 S3C_GPIONO(S3C_GPIO_BANKF, 3)
++#define S3C_GPF3_INP (0)
++#define S3C_GPF3_OUTP (1)
++#define S3C_GPF3_CAMIF_RST (2)
++#define S3C_GPF3_EXT_INT_G4_3 (3)
++
++#define S3C_GPF4 S3C_GPIONO(S3C_GPIO_BANKF, 4)
++#define S3C_GPF4_INP (0)
++#define S3C_GPF4_OUTP (1)
++#define S3C_GPF4_CAMIF_VSYNC (2)
++#define S3C_GPF4_EXT_INT_G4_4 (3)
++
++#define S3C_GPF5 S3C_GPIONO(S3C_GPIO_BANKF, 5)
++#define S3C_GPF5_INP (0)
++#define S3C_GPF5_OUTP (1)
++#define S3C_GPF5_CAMIF_YDATA0 (2)
++#define S3C_GPF5_EXT_INT_G4_5 (3)
++
++#define S3C_GPF6 S3C_GPIONO(S3C_GPIO_BANKF, 6)
++#define S3C_GPF6_INP (0)
++#define S3C_GPF6_OUTP (1)
++#define S3C_GPF6_CAMIF_YDATA1 (2)
++#define S3C_GPF6_EXT_INT_G4_6 (3)
++
++#define S3C_GPF7 S3C_GPIONO(S3C_GPIO_BANKF, 7)
++#define S3C_GPF7_INP (0)
++#define S3C_GPF7_OUTP (1)
++#define S3C_GPF7_CAMIF_YDATA2 (2)
++#define S3C_GPF7_EXT_INT_G4_7 (3)
++
++#define S3C_GPF8 S3C_GPIONO(S3C_GPIO_BANKF, 8)
++#define S3C_GPF8_INP (0)
++#define S3C_GPF8_OUTP (1)
++#define S3C_GPF8_CAMIF_YDATA03 (2)
++#define S3C_GPF8_EXT_INT_G4_8 (3)
++
++#define S3C_GPF9 S3C_GPIONO(S3C_GPIO_BANKF, 9)
++#define S3C_GPF9_INP (0)
++#define S3C_GPF9_OUTP (1)
++#define S3C_GPF9_CAMIF_YDATA4 (2)
++#define S3C_GPF9_EXT_INT_G4_9 (3)
++
++#define S3C_GPF10 S3C_GPIONO(S3C_GPIO_BANKF, 10)
++#define S3C_GPF10_INP (0)
++#define S3C_GPF10_OUTP (1)
++#define S3C_GPF10_CAMIF_YDATA5 (2)
++#define S3C_GPF10_EXT_INT_G4_10 (3)
++
++#define S3C_GPF11 S3C_GPIONO(S3C_GPIO_BANKF, 11)
++#define S3C_GPF11_INP (0)
++#define S3C_GPF11_OUTP (1)
++#define S3C_GPF11_CAMIF_YDATA06 (2)
++#define S3C_GPF11_EXT_INT_G4_11 (3)
++
++#define S3C_GPF12 S3C_GPIONO(S3C_GPIO_BANKF, 12)
++#define S3C_GPF12_INP (0)
++#define S3C_GPF12_OUTP (1)
++#define S3C_GPF12_CAMIF_YDATA7 (2)
++#define S3C_GPF12_EXT_INT_G4_12 (3)
++
++#define S3C_GPF13 S3C_GPIONO(S3C_GPIO_BANKF, 13)
++#define S3C_GPF13_INP (0)
++#define S3C_GPF13_OUTP (1)
++#define S3C_GPF13_PWM_ECLK (2)
++#define S3C_GPF13_EXT_INT_G4_13 (3)
++
++#define S3C_GPF14 S3C_GPIONO(S3C_GPIO_BANKF, 14)
++#define S3C_GPF14_INP (0)
++#define S3C_GPF14_OUTP (1)
++#define S3C_GPF14_PWM_TOUT0 (2)
++#define S3C_GPF14_CLKOUT0 (3)
++
++#define S3C_GPF15 S3C_GPIONO(S3C_GPIO_BANKF, 15)
++#define S3C_GPF15_INP (0)
++#define S3C_GPF15_OUTP (1)
++#define S3C_GPF15_PWM_TOUT1 (2)
++#define S3C_GPF15_RESERVED (3)
++
++
++/* GPG : 7 in/out port . MMC channel 0 */
++#define S3C_GPGDAT S3C_GPIOREG(0xC4)
++#define S3C_GPGCON S3C_GPIOREG(0xC0)
++#define S3C_GPGPU S3C_GPIOREG(0xC8)
++#define S3C_GPGSLPCON S3C_GPIOREG(0xCC)
++
++#define S3C_GPG0 S3C_GPIONO(S3C_GPIO_BANKG, 0)
++#define S3C_GPG0_INP (0)
++#define S3C_GPG0_OUTP (1)
++#define S3C_GPG0_MMC_CLK0 (2)
++#define S3C_GPG0_RESERVED1 (3)
++#define S3C_GPG0_RESERVED2 (4)
++#define S3C_GPG0_ADDR_CF0 (5)
++#define S3C_GPG0_RESERVED3 (6)
++#define S3C_GPG0_EXT_INT_G5_1 (7)
++
++#define S3C_GPG1 S3C_GPIONO(S3C_GPIO_BANKG, 1)
++#define S3C_GPG1_INP (0)
++#define S3C_GPG1_OUTP (1)
++#define S3C_GPG1_MMC_CMD0 (2)
++#define S3C_GPG1_EXT_DMA_ACK (3)
++#define S3C_GPG1_RESERVED1 (4)
++#define S3C_GPG1_ADDR_CF1 (5)
++#define S3C_GPG1_RESERVED2 (6)
++#define S3C_GPG1_EXT_INT_G5_2 (7)
++
++#define S3C_GPG2 S3C_GPIONO(S3C_GPIO_BANKG, 2)
++#define S3C_GPG2_INP (0)
++#define S3C_GPG2_OUTP (1)
++#define S3C_GPG2_MMC_DATA0_0 (2)
++#define S3C_GPG2_RESERVED1 (3)
++#define S3C_GPG2_RESERVED2 (4)
++#define S3C_GPG2_RESERVED3 (5)
++#define S3C_GPG2_RESERVED4 (6)
++#define S3C_GPG2_EXT_INT_G5_3 (7)
++
++#define S3C_GPG3 S3C_GPIONO(S3C_GPIO_BANKG, 3)
++#define S3C_GPG3_INP (0)
++#define S3C_GPG3_OUTP (1)
++#define S3C_GPG3_MMC_DATA0_1 (2)
++#define S3C_GPG3_RESERVED1 (3)
++#define S3C_GPG3_RESERVED2 (4)
++#define S3C_GPG3_RESERVED3 (5)
++#define S3C_GPG3_RESERVED4 (6)
++#define S3C_GPG3_EXT_INT_G5_4 (7)
++
++#define S3C_GPG4 S3C_GPIONO(S3C_GPIO_BANKG, 4)
++#define S3C_GPG4_INP (0)
++#define S3C_GPG4_OUTP (1)
++#define S3C_GPG4_MMC_DATA0_2 (2)
++#define S3C_GPG4_RESERVED1 (3)
++#define S3C_GPG4_RESERVED2 (4)
++#define S3C_GPG4_RESERVED3 (5)
++#define S3C_GPG4_RESERVED4 (6)
++#define S3C_GPG4_EXT_INT_G5_5 (7)
++
++#define S3C_GPG5 S3C_GPIONO(S3C_GPIO_BANKG, 5)
++#define S3C_GPG5_INP (0)
++#define S3C_GPG5_OUTP (1)
++#define S3C_GPG5_MMC_DATA0_3 (2)
++#define S3C_GPG5_RESERVED1 (3)
++#define S3C_GPG5_RESERVED2 (4)
++#define S3C_GPG5_RESERVED3 (5)
++#define S3C_GPG5_RESERVED4 (6)
++#define S3C_GPG5_EXT_INT_G5_6 (7)
++
++#define S3C_GPG6 S3C_GPIONO(S3C_GPIO_BANKG, 6)
++#define S3C_GPG6_INP (0)
++#define S3C_GPG6_OUTP (1)
++#define S3C_GPG6_MMC_CD0 (2)
++#define S3C_GPG6_MMC_CD1 (3)
++#define S3C_GPG6_RESERVED2 (4)
++#define S3C_GPG6_RESERVED3 (5)
++#define S3C_GPG6_RESERVED4 (6)
++#define S3C_GPG6_EXT_INT_G5_7 (7)
++
++
++/*GPH : 10 in/out port . MMC channel 1 */
++/* Notice!!! Watch out GPIO data register address*/
++#define S3C_GPHDAT S3C_GPIOREG(0xE8)
++#define S3C_GPH0CON S3C_GPIOREG(0xE0)
++#define S3C_GPH1CON S3C_GPIOREG(0xE4)
++#define S3C_GPHPU S3C_GPIOREG(0xEC)
++#define S3C_GPHSLPCON S3C_GPIOREG(0xF0)
++
++#define S3C_GPH0 S3C_GPIONO(S3C_GPIO_BANKH, 0)
++#define S3C_GPH0_INP (0)
++#define S3C_GPH0_OUTP (1)
++#define S3C_GPH0_MMC_CLK1 (2)
++#define S3C_GPH0_RESERVED1 (3)
++#define S3C_GPH0_KEYPAD_COL0 (4)
++#define S3C_GPH0_ADDR_CF0 (5)
++#define S3C_GPH0_RESERVED2 (6)
++#define S3C_GPH0_EXT_INT_G6_0 (7)
++
++#define S3C_GPH1 S3C_GPIONO(S3C_GPIO_BANKH, 1)
++#define S3C_GPH1_INP (0)
++#define S3C_GPH1_OUTP (1)
++#define S3C_GPH1_MMC_CMD1 (2)
++#define S3C_GPH1_RESERVED1 (3)
++#define S3C_GPH1_KEYPAD_COL1 (4)
++#define S3C_GPH1_ADDR_CF1 (5)
++#define S3C_GPH1_RESERVED2 (6)
++#define S3C_GPH1_EXT_INT_G6_1 (7)
++
++#define S3C_GPH2 S3C_GPIONO(S3C_GPIO_BANKH, 2)
++#define S3C_GPH2_INP (0)
++#define S3C_GPH2_OUTP (1)
++#define S3C_GPH2_MMC_DATA1_0 (2)
++#define S3C_GPH2_RESERVED1 (3)
++#define S3C_GPH2_KEYPAD_COL2 (4)
++#define S3C_GPH2_RESERVED3 (5)
++#define S3C_GPH2_RESERVED4 (6)
++#define S3C_GPH2_EXT_INT_G6_2 (7)
++
++#define S3C_GPH3 S3C_GPIONO(S3C_GPIO_BANKH, 3)
++#define S3C_GPH3_INP (0)
++#define S3C_GPH3_OUTP (1)
++#define S3C_GPH3_MMC_DATA1_1 (2)
++#define S3C_GPH3_RESERVED1 (3)
++#define S3C_GPH3_KEYPAD_COL3 (4)
++#define S3C_GPH3_RESERVED3 (5)
++#define S3C_GPH3_RESERVED4 (6)
++#define S3C_GPH3_EXT_INT_G6_3 (7)
++
++#define S3C_GPH4 S3C_GPIONO(S3C_GPIO_BANKH, 4)
++#define S3C_GPH4_INP (0)
++#define S3C_GPH4_OUTP (1)
++#define S3C_GPH4_MMC_DATA1_2 (2)
++#define S3C_GPH4_RESERVED1 (3)
++#define S3C_GPH4_KEYPAD_COL4 (4)
++#define S3C_GPH4_RESERVED3 (5)
++#define S3C_GPH4_RESERVED4 (6)
++#define S3C_GPH4_EXT_INT_G6_4 (7)
++
++#define S3C_GPH5 S3C_GPIONO(S3C_GPIO_BANKH, 5)
++#define S3C_GPH5_INP (0)
++#define S3C_GPH5_OUTP (1)
++#define S3C_GPH5_MMC_DATA1_3 (2)
++#define S3C_GPH5_RESERVED1 (3)
++#define S3C_GPH5_KEYPAD_COL5 (4)
++#define S3C_GPH5_RESERVED3 (5)
++#define S3C_GPH5_RESERVED4 (6)
++#define S3C_GPH5_EXT_INT_G6_5 (7)
++
++#define S3C_GPH6 S3C_GPIONO(S3C_GPIO_BANKH, 6)
++#define S3C_GPH6_INP (0)
++#define S3C_GPH6_OUTP (1)
++#define S3C_GPH6_MMC_DATA1_4 (2)
++#define S3C_GPH6_MMC_DATA2_0 (3)
++#define S3C_GPH6_KEYPAD_COL6 (4)
++#define S3C_GPH6_I2S_V40_BCLK (5)
++#define S3C_GPH6_ADDR_CF0 (6)
++#define S3C_GPH6_EXT_INT_G6_6 (7)
++
++#define S3C_GPH7 S3C_GPIONO(S3C_GPIO_BANKH, 7)
++#define S3C_GPH7_INP (0)
++#define S3C_GPH7_OUTP (1)
++#define S3C_GPH7_MMC_DATA1_5 (2)
++#define S3C_GPH7_MMC_DATA2_1 (3)
++#define S3C_GPH7_KEYPAD_COL7 (4)
++#define S3C_GPH7_I2S_V40_CDCLK (5)
++#define S3C_GPH7_ADDR_CF1 (6)
++#define S3C_GPH7_EXT_INT_G6_7 (7)
++
++#define S3C_GPH8 S3C_GPIONO(S3C_GPIO_BANKH, 8)
++#define S3C_GPH8_INP (0)
++#define S3C_GPH8_OUTP (1)
++#define S3C_GPH8_MMC_DATA1_6 (2)
++#define S3C_GPH8_MMC_DATA2_2 (3)
++#define S3C_GPH8_RESERVED2 (4)
++#define S3C_GPH8_I2S_V40_LRCLK (5)
++#define S3C_GPH8_ADDR_CF2 (6)
++#define S3C_GPH8_EXT_INT_G6_8 (7)
++
++#define S3C_GPH9 S3C_GPIONO(S3C_GPIO_BANKH, 9)
++#define S3C_GPH9_INP (0)
++#define S3C_GPH9_OUTP (1)
++#define S3C_GPH9_MMC_DATA1_7 (2)
++#define S3C_GPH9_MMC_DATA2_3 (3)
++#define S3C_GPH9_RESERVED2 (4)
++#define S3C_GPH9_I2S_V40_DI (5)
++#define S3C_GPH9_RESERVED4 (6)
++#define S3C_GPH9_EXT_INT_G6_9 (7)
++
++
++/* GPI : 16 in/out port . LCD Video Out[15:0] */
++#define S3C_GPIDAT S3C_GPIOREG(0x104)
++#define S3C_GPICON S3C_GPIOREG(0x100)
++#define S3C_GPIPU S3C_GPIOREG(0x108)
++#define S3C_GPISLPCON S3C_GPIOREG(0x10C)
++
++#define S3C_GPI0 S3C_GPIONO(S3C_GPIO_BANKI, 0)
++#define S3C_GPI0_INP (0)
++#define S3C_GPI0_OUTP (1)
++#define S3C_GPI0_LCD_VD0 (2)
++#define S3C_GPI0_RESERVED (3)
++
++#define S3C_GPI1 S3C_GPIONO(S3C_GPIO_BANKI, 1)
++#define S3C_GPI1_INP (0)
++#define S3C_GPI1_OUTP (1)
++#define S3C_GPI1_LCD_VD1 (2)
++#define S3C_GPI1_RESERVED (3)
++
++#define S3C_GPI2 S3C_GPIONO(S3C_GPIO_BANKI, 2)
++#define S3C_GPI2_INP (0)
++#define S3C_GPI2_OUTP (1)
++#define S3C_GPI2_LCD_VD2 (2)
++#define S3C_GPI2_RESERVED (3)
++
++#define S3C_GPI3 S3C_GPIONO(S3C_GPIO_BANKI, 3)
++#define S3C_GPI3_INP (0)
++#define S3C_GPI3_OUTP (1)
++#define S3C_GPI3_LCD_VD3 (2)
++#define S3C_GPI3_RESERVED (3)
++
++#define S3C_GPI4 S3C_GPIONO(S3C_GPIO_BANKI, 4)
++#define S3C_GPI4_INP (0)
++#define S3C_GPI4_OUTP (1)
++#define S3C_GPI4_LCD_VD4 (2)
++#define S3C_GPI4_RESERVED (3)
++
++#define S3C_GPI5 S3C_GPIONO(S3C_GPIO_BANKI, 5)
++#define S3C_GPI5_INP (0)
++#define S3C_GPI5_OUTP (1)
++#define S3C_GPI5_LCD_VD5 (2)
++#define S3C_GPI5_RESERVED (3)
++
++#define S3C_GPI6 S3C_GPIONO(S3C_GPIO_BANKI, 6)
++#define S3C_GPI6_INP (0)
++#define S3C_GPI6_OUTP (1)
++#define S3C_GPI6_LCD_VD6 (2)
++#define S3C_GPI6_RESERVED (3)
++
++#define S3C_GPI7 S3C_GPIONO(S3C_GPIO_BANKI, 7)
++#define S3C_GPI7_INP (0)
++#define S3C_GPI7_OUTP (1)
++#define S3C_GPI7_LCD_VD7 (2)
++#define S3C_GPI7_RESERVED (3)
++
++#define S3C_GPI8 S3C_GPIONO(S3C_GPIO_BANKI, 8)
++#define S3C_GPI8_INP (0)
++#define S3C_GPI8_OUTP (1)
++#define S3C_GPI8_LCD_VD8 (2)
++#define S3C_GPI8_RESERVED (3)
++
++#define S3C_GPI9 S3C_GPIONO(S3C_GPIO_BANKI, 9)
++#define S3C_GPI9_INP (0)
++#define S3C_GPI9_OUTP (1)
++#define S3C_GPI9_LCD_VD9 (2)
++#define S3C_GPI9_RESERVED (3)
++
++#define S3C_GPI10 S3C_GPIONO(S3C_GPIO_BANKI, 10)
++#define S3C_GPI10_INP (0)
++#define S3C_GPI10_OUTP (1)
++#define S3C_GPI10_LCD_VD10 (2)
++#define S3C_GPI10_RESERVED (3)
++
++#define S3C_GPI11 S3C_GPIONO(S3C_GPIO_BANKI, 11)
++#define S3C_GPI11_INP (0)
++#define S3C_GPI11_OUTP (1)
++#define S3C_GPI11_LCD_VD11 (2)
++#define S3C_GPI11_RESERVED (3)
++
++#define S3C_GPI12 S3C_GPIONO(S3C_GPIO_BANKI, 12)
++#define S3C_GPI12_INP (0)
++#define S3C_GPI12_OUTP (1)
++#define S3C_GPI12_LCD_VD12 (2)
++#define S3C_GPI12_RESERVED (3)
++
++#define S3C_GPI13 S3C_GPIONO(S3C_GPIO_BANKI, 13)
++#define S3C_GPI13_INP (0)
++#define S3C_GPI13_OUTP (1)
++#define S3C_GPI13_LCD_VD13 (2)
++#define S3C_GPI13_RESERVED (3)
++
++#define S3C_GPI14 S3C_GPIONO(S3C_GPIO_BANKI, 14)
++#define S3C_GPI14_INP (0)
++#define S3C_GPI14_OUTP (1)
++#define S3C_GPI14_LCD_VD14 (2)
++#define S3C_GPI14_RESERVED (3)
++
++#define S3C_GPI15 S3C_GPIONO(S3C_GPIO_BANKI, 15)
++#define S3C_GPI15_INP (0)
++#define S3C_GPI15_OUTP (1)
++#define S3C_GPI15_LCD_VD15 (2)
++#define S3C_GPI15_RESERVED (3)
++
++
++/* GPJ : 12 in/out port . LCD Video Out[23:16], Control signals */
++#define S3C_GPJDAT S3C_GPIOREG(0x124)
++#define S3C_GPJCON S3C_GPIOREG(0x120)
++#define S3C_GPJPU S3C_GPIOREG(0x128)
++#define S3C_GPJSLPCON S3C_GPIOREG(0x12C)
++
++#define S3C_GPJ0 S3C_GPIONO(S3C_GPIO_BANKJ, 0)
++#define S3C_GPJ0_INP (0)
++#define S3C_GPJ0_OUTP (1)
++#define S3C_GPJ0_LCD_VD16 (2)
++#define S3C_GPJ0_RESERVED (3)
++
++#define S3C_GPJ1 S3C_GPIONO(S3C_GPIO_BANKJ, 1)
++#define S3C_GPJ1_INP (0)
++#define S3C_GPJ1_OUTP (1)
++#define S3C_GPJ1_LCD_VD17 (2)
++#define S3C_GPJ1_RESERVED (3)
++
++#define S3C_GPJ2 S3C_GPIONO(S3C_GPIO_BANKJ, 2)
++#define S3C_GPJ2_INP (0)
++#define S3C_GPJ2_OUTP (1)
++#define S3C_GPJ2_LCD_VD18 (2)
++#define S3C_GPJ2_RESERVED (3)
++
++#define S3C_GPJ3 S3C_GPIONO(S3C_GPIO_BANKJ, 3)
++#define S3C_GPJ3_INP (0)
++#define S3C_GPJ3_OUTP (1)
++#define S3C_GPJ3_LCD_VD19 (2)
++#define S3C_GPJ3_RESERVED (3)
++
++#define S3C_GPJ4 S3C_GPIONO(S3C_GPIO_BANKJ, 4)
++#define S3C_GPJ4_INP (0)
++#define S3C_GPJ4_OUTP (1)
++#define S3C_GPJ4_LCD_VD20 (2)
++#define S3C_GPJ4_RESERVED (3)
++
++#define S3C_GPJ5 S3C_GPIONO(S3C_GPIO_BANKJ, 5)
++#define S3C_GPJ5_INP (0)
++#define S3C_GPJ5_OUTP (1)
++#define S3C_GPJ5_LCD_VD21 (2)
++#define S3C_GPJ5_RESERVED (3)
++
++#define S3C_GPJ6 S3C_GPIONO(S3C_GPIO_BANKJ, 6)
++#define S3C_GPJ6_INP (0)
++#define S3C_GPJ6_OUTP (1)
++#define S3C_GPJ6_LCD_VD22 (2)
++#define S3C_GPJ6_RESERVED (3)
++
++#define S3C_GPJ7 S3C_GPIONO(S3C_GPIO_BANKJ, 7)
++#define S3C_GPJ7_INP (0)
++#define S3C_GPJ7_OUTP (1)
++#define S3C_GPJ7_LCD_VD23 (2)
++#define S3C_GPJ7_RESERVED (3)
++
++#define S3C_GPJ8 S3C_GPIONO(S3C_GPIO_BANKJ, 8)
++#define S3C_GPJ8_INP (0)
++#define S3C_GPJ8_OUTP (1)
++#define S3C_GPJ8_LCD_HSYNC (2)
++#define S3C_GPJ8_RESERVED (3)
++
++#define S3C_GPJ9 S3C_GPIONO(S3C_GPIO_BANKJ, 9)
++#define S3C_GPJ9_INP (0)
++#define S3C_GPJ9_OUTP (1)
++#define S3C_GPJ9_LCD_VSYNC (2)
++#define S3C_GPJ9_RESERVED (3)
++
++#define S3C_GPJ10 S3C_GPIONO(S3C_GPIO_BANKJ, 10)
++#define S3C_GPJ10_INP (0)
++#define S3C_GPJ10_OUTP (1)
++#define S3C_GPJ10_LCD_VDEN (2)
++#define S3C_GPJ10_RESERVED (3)
++
++#define S3C_GPJ11 S3C_GPIONO(S3C_GPIO_BANKJ, 11)
++#define S3C_GPJ11_INP (0)
++#define S3C_GPJ11_OUTP (1)
++#define S3C_GPJ11_LCD_VCLK (2)
++#define S3C_GPJ11_RESERVED (3)
++
++
++/* GPK : 16 in/out port . Host I/F, HSI, Key pad I/F */
++#define S3C_GPKDAT S3C_GPIOREG(0x808)
++#define S3C_GPK0CON S3C_GPIOREG(0x800)
++#define S3C_GPK1CON S3C_GPIOREG(0x804)
++#define S3C_GPKPU S3C_GPIOREG(0x80C)
++
++#define S3C_GPK0 S3C_GPIONO(S3C_GPIO_BANKK, 0)
++#define S3C_GPK0_INP (0)
++#define S3C_GPK0_OUTP (1)
++#define S3C_GPK0_HOSTIF_DATA0 (2)
++#define S3C_GPK0_HSI_RX_RDY (3)
++#define S3C_GPK0_RESERVED1 (4)
++#define S3C_GPK0_DATA_CF0 (5)
++#define S3C_GPK0_RESERVED2 (6)
++#define S3C_GPK0_RESERVED3 (7)
++
++#define S3C_GPK1 S3C_GPIONO(S3C_GPIO_BANKK, 1)
++#define S3C_GPK1_INP (0)
++#define S3C_GPK1_OUTP (1)
++#define S3C_GPK1_HOSTIF_DATA1 (2)
++#define S3C_GPK1_HSI_RX_WAKE (3)
++#define S3C_GPK1_RESERVED1 (4)
++#define S3C_GPK1_DATA_CF1 (5)
++#define S3C_GPK1_RESERVED2 (6)
++#define S3C_GPK1_RESERVED3 (7)
++
++#define S3C_GPK2 S3C_GPIONO(S3C_GPIO_BANKK, 2)
++#define S3C_GPK2_INP (0)
++#define S3C_GPK2_OUTP (1)
++#define S3C_GPK2_HOSTIF_DATA2 (2)
++#define S3C_GPK2_HSI_RX_FLAG (3)
++#define S3C_GPK2_RESERVED1 (4)
++#define S3C_GPK2_DATA_CF2 (5)
++#define S3C_GPK2_RESERVED2 (6)
++#define S3C_GPK2_RESERVED3 (7)
++
++#define S3C_GPK3 S3C_GPIONO(S3C_GPIO_BANKK, 3)
++#define S3C_GPK3_INP (0)
++#define S3C_GPK3_OUTP (1)
++#define S3C_GPK3_HOSTIF_DATA3 (2)
++#define S3C_GPK3_HSI_RX_DATA (3)
++#define S3C_GPK3_RESERVED1 (4)
++#define S3C_GPK3_DATA_CF3 (5)
++#define S3C_GPK3_RESERVED2 (6)
++#define S3C_GPK3_RESERVED3 (7)
++
++#define S3C_GPK4 S3C_GPIONO(S3C_GPIO_BANKK, 4)
++#define S3C_GPK4_INP (0)
++#define S3C_GPK4_OUTP (1)
++#define S3C_GPK4_HOSTIF_DATA4 (2)
++#define S3C_GPK4_HSI_TX_RDY (3)
++#define S3C_GPK4_RESERVED1 (4)
++#define S3C_GPK4_DATA_CF4 (5)
++#define S3C_GPK4_RESERVED2 (6)
++#define S3C_GPK4_RESERVED3 (7)
++
++#define S3C_GPK5 S3C_GPIONO(S3C_GPIO_BANKK, 5)
++#define S3C_GPK5_INP (0)
++#define S3C_GPK5_OUTP (1)
++#define S3C_GPK5_HOSTIF_DATA5 (2)
++#define S3C_GPK5_HSI_TX_WAKE (3)
++#define S3C_GPK5_RESERVED1 (4)
++#define S3C_GPK5_DATA_CF5 (5)
++#define S3C_GPK5_RESERVED2 (6)
++#define S3C_GPK5_RESERVED3 (7)
++
++#define S3C_GPK6 S3C_GPIONO(S3C_GPIO_BANKK, 6)
++#define S3C_GPK6_INP (0)
++#define S3C_GPK6_OUTP (1)
++#define S3C_GPK6_HOSTIF_DATA6 (2)
++#define S3C_GPK6_HSI_TX_FLAG (3)
++#define S3C_GPK6_RESERVED1 (4)
++#define S3C_GPK6_DATA_CF6 (5)
++#define S3C_GPK6_RESERVED2 (6)
++#define S3C_GPK6_RESERVED3 (7)
++
++#define S3C_GPK7 S3C_GPIONO(S3C_GPIO_BANKK, 7)
++#define S3C_GPK7_INP (0)
++#define S3C_GPK7_OUTP (1)
++#define S3C_GPK7_HOSTIF_DATA7 (2)
++#define S3C_GPK7_HSI_TX_DATA (3)
++#define S3C_GPK7_RESERVED1 (4)
++#define S3C_GPK7_DATA_CF7 (5)
++#define S3C_GPK7_RESERVED2 (6)
++#define S3C_GPK7_RESERVED3 (7)
++
++#define S3C_GPK8 S3C_GPIONO(S3C_GPIO_BANKK, 8)
++#define S3C_GPK8_INP (0)
++#define S3C_GPK8_OUTP (1)
++#define S3C_GPK8_HOSTIF_DATA8 (2)
++#define S3C_GPK8_KEYPAD_ROW0 (3)
++#define S3C_GPK8_RESERVED1 (4)
++#define S3C_GPK8_DATA_CF8 (5)
++#define S3C_GPK8_RESERVED2 (6)
++#define S3C_GPK8_RESERVED3 (7)
++
++#define S3C_GPK9 S3C_GPIONO(S3C_GPIO_BANKK, 9)
++#define S3C_GPK9_INP (0)
++#define S3C_GPK9_OUTP (1)
++#define S3C_GPK9_HOSTIF_DATA9 (2)
++#define S3C_GPK9_KEYPAD_ROW1 (3)
++#define S3C_GPK9_RESERVED1 (4)
++#define S3C_GPK9_DATA_CF9 (5)
++#define S3C_GPK9_RESERVED2 (6)
++#define S3C_GPK9_RESERVED3 (7)
++
++#define S3C_GPK10 S3C_GPIONO(S3C_GPIO_BANKK, 10)
++#define S3C_GPK10_INP (0)
++#define S3C_GPK10_OUTP (1)
++#define S3C_GPK10_HOSTIF_DATA10 (2)
++#define S3C_GPK10_KEYPAD_ROW2 (3)
++#define S3C_GPK10_RESERVED1 (4)
++#define S3C_GPK10_DATA_CF9 (5)
++#define S3C_GPK10_RESERVED2 (6)
++#define S3C_GPK10_RESERVED3 (7)
++
++#define S3C_GPK11 S3C_GPIONO(S3C_GPIO_BANKK, 11)
++#define S3C_GPK11_INP (0)
++#define S3C_GPK11_OUTP (1)
++#define S3C_GPK11_HOSTIF_DATA11 (2)
++#define S3C_GPK11_KEYPAD_ROW3 (3)
++#define S3C_GPK11_RESERVED1 (4)
++#define S3C_GPK11_DATA_CF11 (5)
++#define S3C_GPK11_RESERVED2 (6)
++#define S3C_GPK11_RESERVED3 (7)
++
++#define S3C_GPK12 S3C_GPIONO(S3C_GPIO_BANKK, 12)
++#define S3C_GPK12_INP (0)
++#define S3C_GPK12_OUTP (1)
++#define S3C_GPK12_HOSTIF_DATA12 (2)
++#define S3C_GPK12_KEYPAD_ROW4 (3)
++#define S3C_GPK12_RESERVED1 (4)
++#define S3C_GPK12_DATA_CF12 (5)
++#define S3C_GPK12_RESERVED2 (6)
++#define S3C_GPK12_RESERVED3 (7)
++
++#define S3C_GPK13 S3C_GPIONO(S3C_GPIO_BANKK, 13)
++#define S3C_GPK13_INP (0)
++#define S3C_GPK13_OUTP (1)
++#define S3C_GPK13_HOSTIF_DATA13 (2)
++#define S3C_GPK13_KEYPAD_ROW5 (3)
++#define S3C_GPK13_RESERVED1 (4)
++#define S3C_GPK13_DATA_CF8 (5)
++#define S3C_GPK13_RESERVED2 (6)
++#define S3C_GPK13_RESERVED3 (7)
++
++#define S3C_GPK14 S3C_GPIONO(S3C_GPIO_BANKK, 14)
++#define S3C_GPK14_INP (0)
++#define S3C_GPK14_OUTP (1)
++#define S3C_GPK14_HOSTIF_DATA14 (2)
++#define S3C_GPK14_KEYPAD_ROW6 (3)
++#define S3C_GPK14_RESERVED1 (4)
++#define S3C_GPK14_DATA_CF14 (5)
++#define S3C_GPK14_RESERVED2 (6)
++#define S3C_GPK14_RESERVED3 (7)
++
++#define S3C_GPK15 S3C_GPIONO(S3C_GPIO_BANKK, 15)
++#define S3C_GPK15_INP (0)
++#define S3C_GPK15_OUTP (1)
++#define S3C_GPK15_HOSTIF_DATA15 (2)
++#define S3C_GPK15_KEYPAD_ROW7 (3)
++#define S3C_GPK15_RESERVED1 (4)
++#define S3C_GPK15_DATA_CF15 (5)
++#define S3C_GPK15_RESERVED2 (6)
++#define S3C_GPK15_RESERVED3 (7)
++
++
++/* GPL : 16 in/out port . Host I/F, HSI, Key pad I/F */
++#define S3C_GPLDAT S3C_GPIOREG(0x818)
++#define S3C_GPL0CON S3C_GPIOREG(0x810)
++#define S3C_GPL1CON S3C_GPIOREG(0x814)
++#define S3C_GPLPU S3C_GPIOREG(0x81C)
++
++#define S3C_GPL0 S3C_GPIONO(S3C_GPIO_BANKL, 0)
++#define S3C_GPL0_INP (0)
++#define S3C_GPL0_OUTP (1)
++#define S3C_GPL0_HOSTIF_ADDR0 (2)
++#define S3C_GPL0_KEYPAD_COL0 (3)
++#define S3C_GPL0_RESERVED1 (4)
++#define S3C_GPL0_RESERVED2 (5)
++#define S3C_GPL0_ADDR_CF0 (6)
++#define S3C_GPL0_OTG_ULPI_DATA0 (7)
++
++#define S3C_GPL1 S3C_GPIONO(S3C_GPIO_BANKL, 1)
++#define S3C_GPL1_INP (0)
++#define S3C_GPL1_OUTP (1)
++#define S3C_GPL1_HOSTIF_ADDR1 (2)
++#define S3C_GPL1_KEYPAD_COL1 (3)
++#define S3C_GPL1_RESERVED1 (4)
++#define S3C_GPL1_RESERVED2 (5)
++#define S3C_GPL1_ADDR_CF1 (6)
++#define S3C_GPL1_OTG_ULPI_DATA1 (7)
++
++#define S3C_GPL2 S3C_GPIONO(S3C_GPIO_BANKL, 2)
++#define S3C_GPL2_INP (0)
++#define S3C_GPL2_OUTP (1)
++#define S3C_GPL2_HOSTIF_ADDR2 (2)
++#define S3C_GPL2_KEYPAD_COL2 (3)
++#define S3C_GPL2_RESERVED1 (4)
++#define S3C_GPL2_RESERVED2 (5)
++#define S3C_GPL2_ADDR_CF2 (6)
++#define S3C_GPL2_OTG_ULPI_DATA2 (7)
++
++#define S3C_GPL3 S3C_GPIONO(S3C_GPIO_BANKL, 3)
++#define S3C_GPL3_INP (0)
++#define S3C_GPL3_OUTP (1)
++#define S3C_GPL3_HOSTIF_ADDR3 (2)
++#define S3C_GPL3_KEYPAD_COL3 (3)
++#define S3C_GPL3_RESERVED1 (4)
++#define S3C_GPL3_RESERVED2 (5)
++#define S3C_GPL3_RESERVED3 (6)
++#define S3C_GPL3_OTG_ULPI_DATA3 (7)
++
++#define S3C_GPL4 S3C_GPIONO(S3C_GPIO_BANKL, 4)
++#define S3C_GPL4_INP (0)
++#define S3C_GPL4_OUTP (1)
++#define S3C_GPL4_HOSTIF_ADDR4 (2)
++#define S3C_GPL4_KEYPAD_COL4 (3)
++#define S3C_GPL4_RESERVED1 (4)
++#define S3C_GPL4_RESERVED2 (5)
++#define S3C_GPL4_RESERVED3 (6)
++#define S3C_GPL4_OTG_ULPI_DATA4 (7)
++
++#define S3C_GPL5 S3C_GPIONO(S3C_GPIO_BANKL, 5)
++#define S3C_GPL5_INP (0)
++#define S3C_GPL5_OUTP (1)
++#define S3C_GPL5_HOSTIF_ADDR5 (2)
++#define S3C_GPL5_KEYPAD_COL5 (3)
++#define S3C_GPL5_RESERVED1 (4)
++#define S3C_GPL5_RESERVED2 (5)
++#define S3C_GPL5_RESERVED3 (6)
++#define S3C_GPL5_OTG_ULPI_DATA5 (7)
++
++#define S3C_GPL6 S3C_GPIONO(S3C_GPIO_BANKL, 6)
++#define S3C_GPL6_INP (0)
++#define S3C_GPL6_OUTP (1)
++#define S3C_GPL6_HOSTIF_ADDR6 (2)
++#define S3C_GPL6_KEYPAD_COL6 (3)
++#define S3C_GPL6_RESERVED1 (4)
++#define S3C_GPL6_RESERVED2 (5)
++#define S3C_GPL6_RESERVED3 (6)
++#define S3C_GPL6_OTG_ULPI_DATA6 (7)
++
++#define S3C_GPL7 S3C_GPIONO(S3C_GPIO_BANKL, 7)
++#define S3C_GPL7_INP (0)
++#define S3C_GPL7_OUTP (1)
++#define S3C_GPL7_HOSTIF_ADDR7 (2)
++#define S3C_GPL7_KEYPAD_COL7 (3)
++#define S3C_GPL7_RESERVED1 (4)
++#define S3C_GPL7_RESERVED2 (5)
++#define S3C_GPL7_RESERVED3 (6)
++#define S3C_GPL7_OTG_ULPI_DATA (7)
++
++#define S3C_GPL8 S3C_GPIONO(S3C_GPIO_BANKL, 8)
++#define S3C_GPL8_INP (0)
++#define S3C_GPL8_OUTP (1)
++#define S3C_GPL8_HOSTIF_ADDR8 (2)
++#define S3C_GPL8_EXTINT16 (3)
++#define S3C_GPL8_RESERVED1 (4)
++#define S3C_GPL8_CE_CF0 (5)
++#define S3C_GPL8_RESERVED2 (6)
++#define S3C_GPL8_OTG_ULPI_STP (7)
++
++#define S3C_GPL9 S3C_GPIONO(S3C_GPIO_BANKL, 9)
++#define S3C_GPL9_INP (0)
++#define S3C_GPL9_OUTP (1)
++#define S3C_GPL9_HOSTIF_ADDR9 (2)
++#define S3C_GPL9_EXTINT17 (3)
++#define S3C_GPL9_RESERVED1 (4)
++#define S3C_GPL9_CE_CF1 (5)
++#define S3C_GPL9_RESERVED2 (6)
++#define S3C_GPL9_OTG_ULPI_CLK (7)
++
++#define S3C_GPL10 S3C_GPIONO(S3C_GPIO_BANKL, 10)
++#define S3C_GPL10_INP (0)
++#define S3C_GPL10_OUTP (1)
++#define S3C_GPL10_SPI_CLK1 (2)
++#define S3C_GPL10_EXTINT18 (3)
++#define S3C_GPL10_RESERVED1 (4)
++#define S3C_GPL10_IORD_CF (5)
++#define S3C_GPL10_RESERVED2 (6)
++#define S3C_GPL10_OTG_ULPI_NXT (7)
++
++#define S3C_GPL11 S3C_GPIONO(S3C_GPIO_BANKL, 11)
++#define S3C_GPL11_INP (0)
++#define S3C_GPL11_OUTP (1)
++#define S3C_GPL11_SPI_MOSI1 (2)
++#define S3C_GPL11_EXTINT19 (3)
++#define S3C_GPL11_RESERVED1 (4)
++#define S3C_GPL11_IOWR_CF (5)
++#define S3C_GPL11_RESERVED2 (6)
++#define S3C_GPL11_OTG_ULPI_DIR (7)
++
++#define S3C_GPL12 S3C_GPIONO(S3C_GPIO_BANKL, 12)
++#define S3C_GPL12_INP (0)
++#define S3C_GPL12_OUTP (1)
++#define S3C_GPL12_SPI_MISO1 (2)
++#define S3C_GPL12_EXTINT20 (3)
++#define S3C_GPL12_RESERVED1 (4)
++#define S3C_GPL12_IORDY_CF (5)
++#define S3C_GPL12_RESERVED2 (6)
++#define S3C_GPL12_RESERVED3 (7)
++
++#define S3C_GPL13 S3C_GPIONO(S3C_GPIO_BANKL, 13)
++#define S3C_GPL13_INP (0)
++#define S3C_GPL13_OUTP (1)
++#define S3C_GPL14_nSS0 (2)
++#define S3C_GPL13_EXTINT21 (3)
++#define S3C_GPL13_RESERVED1 (4)
++#define S3C_GPL13_DATA_CF8 (5)
++#define S3C_GPL13_RESERVED2 (6)
++#define S3C_GPL13_RESERVED3 (7)
++
++#define S3C_GPL14 S3C_GPIONO(S3C_GPIO_BANKL, 14)
++#define S3C_GPL14_INP (0)
++#define S3C_GPL14_OUTP (1)
++#define S3C_GPL14_nSS1 (2)
++#define S3C_GPL14_EXTINT22 (3)
++#define S3C_GPL14_RESERVED1 (4)
++#define S3C_GPL14_DATA_CF9 (5)
++#define S3C_GPL14_RESERVED2 (6)
++#define S3C_GPL14_RESERVED3 (7)
++
++
++/* GPM : 6 in/out port . Host I/F, EINT */
++#define S3C_GPMDAT S3C_GPIOREG(0x824)
++#define S3C_GPMCON S3C_GPIOREG(0x820)
++#define S3C_GPMPU S3C_GPIOREG(0x828)
++
++#define S3C_GPM0 S3C_GPIONO(S3C_GPIO_BANKM, 0)
++#define S3C_GPM0_INP (0)
++#define S3C_GPM0_OUTP (1)
++#define S3C_GPM0_HOSTIF_CS (2)
++#define S3C_GPM0_EXTINT23 (3)
++#define S3C_GPM0_RESERVED1 (4)
++#define S3C_GPM0_DATA_CF10 (5)
++#define S3C_GPM0_CE_CF0 (6)
++#define S3C_GPM0_RESERVED2 (7)
++
++#define S3C_GPM1 S3C_GPIONO(S3C_GPIO_BANKM, 1)
++#define S3C_GPM1_INP (0)
++#define S3C_GPM1_OUTP (1)
++#define S3C_GPM1_HOSTIF_CS_M (2)
++#define S3C_GPM1_EXTINT24 (3)
++#define S3C_GPM1_RESERVED1 (4)
++#define S3C_GPM1_DATA_CF11 (5)
++#define S3C_GPM1_CE_CF1 (6)
++#define S3C_GPM1_RESERVED2 (7)
++
++#define S3C_GPM2 S3C_GPIONO(S3C_GPIO_BANKM, 2)
++#define S3C_GPM2_INP (0)
++#define S3C_GPM2_OUTP (1)
++#define S3C_GPM2_HOST_IF_CS_S (2)
++#define S3C_GPM2_EXTINT25 (3)
++#define S3C_GPM2_HOSTIF_MDP_VSYNC (4)
++#define S3C_GPM2_DATA_CF12 (5)
++#define S3C_GPM2_IORD_CF (6)
++#define S3C_GPM2_RESERVED2 (7)
++
++#define S3C_GPM3 S3C_GPIONO(S3C_GPIO_BANKM, 3)
++#define S3C_GPM3_INP (0)
++#define S3C_GPM3_OUTP (1)
++#define S3C_GPM3_HOSTIF_WE (2)
++#define S3C_GPM3_EXTINT26 (3)
++#define S3C_GPM3_RESERVED1 (4)
++#define S3C_GPM3_DATA_CF13 (5)
++#define S3C_GPM3_IOWR_CF (6)
++#define S3C_GPM3_RESERVED2 (7)
++
++#define S3C_GPM4 S3C_GPIONO(S3C_GPIO_BANKM, 4)
++#define S3C_GPM4_INP (0)
++#define S3C_GPM4_OUTP (1)
++#define S3C_GPM4_HOSTIF_OE (2)
++#define S3C_GPM4_EXTINT27 (3)
++#define S3C_GPM4_RESERVED1 (4)
++#define S3C_GPM4_DATA_CF14 (5)
++#define S3C_GPM4_IORDY_CF (6)
++#define S3C_GPM4_RESERVED2 (7)
++
++#define S3C_GPM5 S3C_GPIONO(S3C_GPIO_BANKM, 5)
++#define S3C_GPM5_INP (0)
++#define S3C_GPM5_OUTP (1)
++#define S3C_GPM5_HOSTIF_INTR (2)
++#define S3C_GPM5_CF_DATA_DIR (3)
++#define S3C_GPM5_RESERVED1 (4)
++#define S3C_GPM5_DATA_CF15 (5)
++#define S3C_GPM5_RESERVED2 (6)
++#define S3C_GPM5_RESERVED3 (7)
++
++
++/* GPN : 16 in/out port . EINT */
++#define S3C_GPNDAT S3C_GPIOREG(0x834)
++#define S3C_GPNCON S3C_GPIOREG(0x830)
++#define S3C_GPNPU S3C_GPIOREG(0x838)
++
++#define S3C_GPN0 S3C_GPIONO(S3C_GPIO_BANKN, 0)
++#define S3C_GPN0_INP (0)
++#define S3C_GPN0_OUTP (1)
++#define S3C_GPN0_EXTINT0 (2)
++#define S3C_GPN0_KEYPAD_ROW0 (3)
++
++#define S3C_GPN1 S3C_GPIONO(S3C_GPIO_BANKN, 1)
++#define S3C_GPN1_INP (0)
++#define S3C_GPN1_OUTP (1)
++#define S3C_GPN1_EXTINT1 (2)
++#define S3C_GPN1_KEYPAD_ROW1 (3)
++
++#define S3C_GPN2 S3C_GPIONO(S3C_GPIO_BANKN, 2)
++#define S3C_GPN2_INP (0)
++#define S3C_GPN2_OUTP (1)
++#define S3C_GPN2_EXTINT2 (2)
++#define S3C_GPN2_KEYPAD_ROW2 (3)
++
++#define S3C_GPN3 S3C_GPIONO(S3C_GPIO_BANKN, 3)
++#define S3C_GPN3_INP (0)
++#define S3C_GPN3_OUTP (1)
++#define S3C_GPN3_EXTINT3 (2)
++#define S3C_GPN3_KEYPAD_ROW3 (3)
++
++#define S3C_GPN4 S3C_GPIONO(S3C_GPIO_BANKN, 4)
++#define S3C_GPN4_INP (0)
++#define S3C_GPN4_OUTP (1)
++#define S3C_GPN4_EXTINT4 (2)
++#define S3C_GPN4_KEYPAD_ROW4 (3)
++
++#define S3C_GPN5 S3C_GPIONO(S3C_GPIO_BANKN, 5)
++#define S3C_GPN5_INP (0)
++#define S3C_GPN5_OUTP (1)
++#define S3C_GPN5_EXTINT5 (2)
++#define S3C_GPN5_KEYPAD_ROW5 (3)
++
++#define S3C_GPN6 S3C_GPIONO(S3C_GPIO_BANKN, 6)
++#define S3C_GPN6_INP (0)
++#define S3C_GPN6_OUTP (1)
++#define S3C_GPN6_EXTINT6 (2)
++#define S3C_GPN6_KEYPAD_ROW6 (3)
++
++#define S3C_GPN7 S3C_GPIONO(S3C_GPIO_BANKN, 7)
++#define S3C_GPN7_INP (0)
++#define S3C_GPN7_OUTP (1)
++#define S3C_GPN7_EXTINT7 (2)
++#define S3C_GPN7_KEYPAD_ROW7 (3)
++
++#define S3C_GPN8 S3C_GPIONO(S3C_GPIO_BANKN, 8)
++#define S3C_GPN8_INP (0)
++#define S3C_GPN8_OUTP (1)
++#define S3C_GPN8_EXTINT8 (2)
++#define S3C_GPN8_ADDR_CF0 (3)
++
++#define S3C_GPN9 S3C_GPIONO(S3C_GPIO_BANKN, 9)
++#define S3C_GPN9_INP (0)
++#define S3C_GPN9_OUTP (1)
++#define S3C_GPN9_EXTINT9 (2)
++#define S3C_GPN9_ADDR_CF1 (3)
++
++#define S3C_GPN10 S3C_GPIONO(S3C_GPIO_BANKN, 10)
++#define S3C_GPN10_INP (0)
++#define S3C_GPN10_OUTP (1)
++#define S3C_GPN10_EXTINT10 (2)
++#define S3C_GPN10_ADDR_CF2 (3)
++
++#define S3C_GPN11 S3C_GPIONO(S3C_GPIO_BANKN, 11)
++#define S3C_GPN11_INP (0)
++#define S3C_GPN11_OUTP (1)
++#define S3C_GPN11_EXTINT11 (2)
++#define S3C_GPN11_RESERVED (3)
++
++#define S3C_GPN12 S3C_GPIONO(S3C_GPIO_BANKN, 12)
++#define S3C_GPN12_INP (0)
++#define S3C_GPN12_OUTP (1)
++#define S3C_GPN12_EXTINT12 (2)
++#define S3C_GPN12_RESERVED (3)
++
++#define S3C_GPN13 S3C_GPIONO(S3C_GPIO_BANKN, 13)
++#define S3C_GPN13_INP (0)
++#define S3C_GPN13_OUTP (1)
++#define S3C_GPN13_EXTINT13 (2)
++#define S3C_GPN13_RESERVED (3)
++
++#define S3C_GPN14 S3C_GPIONO(S3C_GPIO_BANKN, 14)
++#define S3C_GPN14_INP (0)
++#define S3C_GPN14_OUTP (1)
++#define S3C_GPN14_EXTINT14 (2)
++#define S3C_GPN14_RESERVED (3)
++
++#define S3C_GPN15 S3C_GPIONO(S3C_GPIO_BANKN, 15)
++#define S3C_GPN15_INP (0)
++#define S3C_GPN15_OUTP (1)
++#define S3C_GPN15_EXTINT15 (2)
++#define S3C_GPN15_RESERVED (3)
++
++
++/* GPO : 16 in/out port . Memory Port 0 */
++#define S3C_GPODAT S3C_GPIOREG(0x144)
++#define S3C_GPOCON S3C_GPIOREG(0x140)
++#define S3C_GPOPU S3C_GPIOREG(0x148)
++
++/* GPP : 15 in/out port . Memory Port 0 */
++#define S3C_GPPDAT S3C_GPIOREG(0x164)
++#define S3C_GPPCON S3C_GPIOREG(0x160)
++#define S3C_GPPPU S3C_GPIOREG(0x168)
++
++/* GPQ : 9 in/out port . Memory Port 0 Dram part */
++#define S3C_GPQDAT S3C_GPIOREG(0x184)
++#define S3C_GPQCON S3C_GPIOREG(0x180)
++#define S3C_GPQPU S3C_GPIOREG(0x188)
++
++
++#define S3C_MEM0CONSTOP S3C_GPIOREG(0x1B0)
++#define S3C_MEM1CONSTOP S3C_GPIOREG(0x1B4)
++#define S3C_MEM0CONSLP0 S3C_GPIOREG(0x1C0)
++#define S3C_MEM0CONSLP1 S3C_GPIOREG(0x1C4)
++#define S3C_MEM1CONSLP S3C_GPIOREG(0x1C8)
++#define S3C_MEM0DRVCON S3C_GPIOREG(0x1D0)
++#define S3C_MEM1DRVCON S3C_GPIOREG(0x1D4)
++
++#define S3C_EINTCON0 S3C_GPIOREG(0x900)
++#define S3C_EINTCON1 S3C_GPIOREG(0x904)
++#define S3C_EINTFLTCON0 S3C_GPIOREG(0x910)
++#define S3C_EINTFLTCON1 S3C_GPIOREG(0x914)
++#define S3C_EINTFLTCON2 S3C_GPIOREG(0x918)
++#define S3C_EINTFLTCON3 S3C_GPIOREG(0x91C)
++#define S3C_EINTMASK S3C_GPIOREG(0x920)
++#define S3C_EINTPEND S3C_GPIOREG(0x924) /* External Interrupt Pending Register */
++#define S3C_EINT12CON S3C_GPIOREG(0x200) /* External Interrupt 1,2 Configuration Register */
++#define S3C_EINT34CON S3C_GPIOREG(0x204) /* External Interrupt 3,4 Configuration Register */
++#define S3C_EINT56CON S3C_GPIOREG(0x208) /* External Interrupt 5,6 Configuration Register */
++#define S3C_EINT78CON S3C_GPIOREG(0x20C) /* External Interrupt 7,8 Configuration Register */
++#define S3C_EINT9CON S3C_GPIOREG(0x210) /* External Interrupt 9 Configuration Register */
++#define S3C_EINT12FLTCON S3C_GPIOREG(0x220) /* External Interrupt 1,2 Filter Control Register */
++#define S3C_EINT34FLTCON S3C_GPIOREG(0x224) /* External Interrupt 3,4 Filter Control Register */
++#define S3C_EINT56FLTCON S3C_GPIOREG(0x228) /* External Interrupt 5,6 Filter Control Register */
++#define S3C_EINT78FLTCON S3C_GPIOREG(0x22C) /* External Interrupt 7,8 Filter Control Register */
++#define S3C_EINT9FLTCON S3C_GPIOREG(0x230) /* External Interrupt 9 Filter Control Register */
++#define S3C_EINT12MASK S3C_GPIOREG(0x240) /* External Interrupt 1,2 Mask Register */
++#define S3C_EINT34MASK S3C_GPIOREG(0x244) /* External Interrupt 3,4 Mask Register */
++#define S3C_EINT56MASK S3C_GPIOREG(0x248) /* External Interrupt 5,6 Mask Register */
++#define S3C_EINT78MASK S3C_GPIOREG(0x24C) /* External Interrupt 7,8 Mask Register */
++#define S3C_EINT9MASK S3C_GPIOREG(0x250) /* External Interrupt 9 Mask Register */
++#define S3C_EINT12PEND S3C_GPIOREG(0x260) /* External Interrupt 1,2 Pending Register */
++#define S3C_EINT34PEND S3C_GPIOREG(0x264) /* External Interrupt 3,4 Pending Register */
++#define S3C_EINT56PEND S3C_GPIOREG(0x268) /* External Interrupt 5,6 Pending Register */
++#define S3C_EINT78PEND S3C_GPIOREG(0x26C) /* External Interrupt 7,8 Pending Register */
++#define S3C_EINT9PEND S3C_GPIOREG(0x270) /* External Interrupt 9 Pending Register */
++#define S3C_PRIORITY S3C_GPIOREG(0x280) /* Priority Control Register */
++#define S3C_SERVICE S3C_GPIOREG(0x284) /* Current Service Register */
++#define S3C_SERVICEPEND S3C_GPIOREG(0x288) /* Current Service Pending Register */
++
++/* values for S3C_EXTINT0 */
++#define S3C_EXTINT_LOWLEV (0x00)
++#define S3C_EXTINT_HILEV (0x01)
++#define S3C_EXTINT_FALLEDGE (0x02)
++#define S3C_EXTINT_RISEEDGE (0x04)
++#define S3C_EXTINT_BOTHEDGE (0x06)
++
++/* Special port control register*/
++#define S3C_SPCON S3C_GPIOREG(0x1A0)
++#define S3C_SPONSLP S3C_GPIOREG(0x880)
++#define S3C_SLPEN S3C_GPIOREG(0x934)
++
++#endif
+ #endif /* __ASM_ARCH_REGS_GPIO_H */
+
+diff --git a/include/asm-arm/arch-s3c2410/regs-gpioj.h b/include/asm-arm/arch-s3c2410/regs-gpioj.h
+index 0362332..2694e4e 100644
+--- a/include/asm-arm/arch-s3c2410/regs-gpioj.h
++++ b/include/asm-arm/arch-s3c2410/regs-gpioj.h
+@@ -99,8 +99,123 @@
+ #define S3C2440_GPJ12_CAMRESET (0x02 << 24)
+
+ #define S3C2443_GPJ13 S3C2410_GPIONO(S3C2440_GPIO_BANKJ, 13)
+-#define S3C2443_GPJ14 S3C2410_GPIONO(S3C2440_GPIO_BANKJ, 14)
+-#define S3C2443_GPJ15 S3C2410_GPIONO(S3C2440_GPIO_BANKJ, 15)
++#define S3C2443_GPJ13_INP (0x00 << 26)
++#define S3C2443_GPJ13_OUTP (0x01 << 26)
++#define S3C2443_GPJ13_SD0LED (0x02 << 26)
++#define S3C2450_GPJ13_SD1LED (0x02 << 26)
++#define S3C2450_GPJ13_I2S1_LRCK (0x03 << 26)
++
++#define S3C2443_GPJ14 S3C2410_GPIONO(S3C2440_GPIO_BANKJ, 14)
++#define S3C2443_GPJ14_INP (0x00 << 28)
++#define S3C2443_GPJ14_OUTP (0x01 << 28)
++#define S3C2443_GPJ14_nSD0CD (0x02 << 28)
++#define S3C2450_GPJ14_nSD1CD (0x02 << 28)
++
++#define S3C2443_GPJ15 S3C2410_GPIONO(S3C2440_GPIO_BANKJ, 15)
++#define S3C2443_GPJ15_INP (0x00 << 30)
++#define S3C2443_GPJ15_OUTP (0x01 << 30)
++#define S3C2443_GPJ15_nSD0WP (0x02 << 30)
++#define S3C2450_GPJ15_nSD1WP (0x02 << 30)
++
++#define S3C2443_GPJDN S3C2410_GPIOREG(0xd8)
++
++/* Port L consists of 14 GPIO
++ *
++ * GPLCON has 2 bits for each of the input pins on port K
++ * 00 = 0 input, 1 output, 2 SD
++ *
++ * pull down works like all other ports.
++*/
++#define S3C2443_GPLCON S3C2410_GPIOREG(0xf0)
++#define S3C2443_GPLDAT S3C2410_GPIOREG(0xf4)
++#define S3C2443_GPLUDP S3C2410_GPIOREG(0xf8)
++#define S3C2443_GPLDN S3C2410_GPIOREG(0xf8)
++
++#define S3C2443_GPL0 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 0)
++#define S3C3443_GPL0_INP (0x00 << 0)
++#define S3C2443_GPL0_OUTP (0x01 << 0)
++#define S3C2443_GPL0_SD0DAT0 (0x02 << 0)
++#define S3C2450_GPL0_SD1DAT0 (0x02 << 0)
++
++#define S3C2443_GPL1 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 1)
++#define S3C2443_GPL1_INP (0x00 << 2)
++#define S3C2443_GPL1_OUTP (0x01 << 2)
++#define S3C2443_GPL1_SD0DAT1 (0x02 << 2)
++#define S3C2450_GPL1_SD1DAT1 (0x02 << 2)
++
++#define S3C2443_GPL2 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 2)
++#define S3C2443_GPL2_INP (0x00 << 4)
++#define S3C2443_GPL2_OUTP (0x01 << 4)
++#define S3C2443_GPL2_SD0DAT2 (0x02 << 4)
++#define S3C2450_GPL2_SD1DAT2 (0x02 << 4)
++
++#define S3C2443_GPL3 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 3)
++#define S3C2443_GPL3_INP (0x00 << 6)
++#define S3C2443_GPL3_OUTP (0x01 << 6)
++#define S3C2443_GPL3_SD0DAT3 (0x02 << 6)
++#define S3C2450_GPL3_SD1DAT3 (0x02 << 6)
++
++#define S3C2443_GPL4 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 4)
++#define S3C2443_GPL4_INP (0x00 << 8)
++#define S3C2443_GPL4_OUTP (0x01 << 8)
++#define S3C2443_GPL4_SD0DAT4 (0x02 << 8)
++#define S3C2450_GPL4_SD1DAT4 (0x02 << 8)
++
++#define S3C2443_GPL5 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 5)
++#define S3C2443_GPL5_INP (0x00 << 10)
++#define S3C2443_GPL5_OUTP (0x01 << 10)
++#define S3C2443_GPL5_SD0DAT5 (0x02 << 10)
++#define S3C2450_GPL5_SD1DAT5 (0x02 << 10)
++
++#define S3C2443_GPL6 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 6)
++#define S3C2443_GPL6_INP (0x00 << 12)
++#define S3C2443_GPL6_OUTP (0x01 << 12)
++#define S3C2443_GPL6_SD0DAT6 (0x02 << 12)
++#define S3C2450_GPL6_SD1DAT6 (0x02 << 12)
++
++#define S3C2443_GPL7 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 7)
++#define S3C2443_GPL7_INP (0x00 << 14)
++#define S3C2443_GPL7_OUTP (0x01 << 14)
++#define S3C2443_GPL7_SD0DAT7 (0x02 << 14)
++#define S3C2450_GPL7_SD1DAT7 (0x02 << 14)
++
++#define S3C2443_GPL8 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 8)
++#define S3C2443_GPL8_INP (0x00 << 16)
++#define S3C2443_GPL8_OUTP (0x01 << 16)
++#define S3C2443_GPL8_SD0CMD (0x02 << 16)
++#define S3C2450_GPL8_SD1CMD (0x02 << 16)
++
++#define S3C2443_GPL9 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 9)
++#define S3C2443_GPL9_INP (0x00 << 18)
++#define S3C2443_GPL9_OUTP (0x01 << 18)
++#define S3C2443_GPL9_SD0CLK (0x02 << 18)
++#define S3C2450_GPL9_SD1CLK (0x02 << 18)
++
++#define S3C2443_GPL10 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 10)
++#define S3C2443_GPL10_INP (0x00 << 20)
++#define S3C2443_GPL10_OUTP (0x01 << 20)
++#define S3C2443_GPL10_SPICLK1 (00x2 << 20)
++
++#define S3C2443_GPL11 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 11)
++#define S3C2443_GPL11_INP (0x00 << 22)
++#define S3C2443_GPL11_OUTP (0x01 << 22)
++#define S3C2443_GPL11_SPIMOSI1 (0x02 << 22)
++
++#define S3C2443_GPL12 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 12)
++#define S3C2443_GPL12_INP (0x00 << 24)
++#define S3C2443_GPL12_OUTP (0x01 << 24)
++#define S3C2443_GPL12_SPIMISO1 (0x02 << 24)
++
++#define S3C2443_GPL13 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 13)
++#define S3C2443_GPL13_INP (00x0 << 26)
++#define S3C2443_GPL13_OUTP (0x01 << 26)
++#define S3C2443_GPL13_nSS0 (0x02 << 26)
++
++#define S3C2443_GPL14 S3C2410_GPIONO(S3C2410_GPIO_BANKL, 14)
++#define S3C2443_GPL14_INP (0x00 << 28)
++#define S3C2443_GPL14_OUTP (0x01 << 28)
++#define S3C2443_GPL14_nSS1 (0x02 << 28)
++
+
+ #endif /* __ASM_ARCH_REGS_GPIOJ_H */
+
+diff --git a/include/asm-arm/arch-s3c2410/regs-hsmmc.h b/include/asm-arm/arch-s3c2410/regs-hsmmc.h
+new file mode 100644
+index 0000000..b25a756
+--- /dev/null
++++ b/include/asm-arm/arch-s3c2410/regs-hsmmc.h
+@@ -0,0 +1,210 @@
++/* linux/include/asm-arm/arch-s3c2410/regs-hsmmc.h
++ *
++ * Copyright (c) 2004 Samsung Electronics
++ * http://www.samsung.com/
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * S3C HS-MMC Controller
++*/
++
++#ifndef __ASM_ARCH_REGS_HSMMC_H
++#define __ASM_ARCH_REGS_HSMMC_H __FILE__
++
++/*
++ * HS MMC Interface
++ */
++#define S3C_HSMMC_REG(x) (x)
++
++#define S3C_HSMMC_SYSAD (0x00)
++
++#define S3C_HSMMC_BLKSIZE (0x04)
++#define S3C_HSMMC_MAKE_BLKSZ(dma, blksz) (((dma & 0x7) << 12) | (blksz & 0xFFF))
++
++#define S3C_HSMMC_BLKCNT (0x06)
++#define S3C_HSMMC_ARGUMENT (0x08)
++
++#define S3C_HSMMC_TRNMOD (0x0c)
++#define S3C_HSMMC_TRNS_DMA 0x01
++#define S3C_HSMMC_TRNS_BLK_CNT_EN 0x02
++#define S3C_HSMMC_TRNS_ACMD12 0x04
++#define S3C_HSMMC_TRNS_READ 0x10
++#define S3C_HSMMC_TRNS_MULTI 0x20
++
++#define S3C_HSMMC_CMDREG (0x0e)
++#define S3C_HSMMC_RSPREG0 (0x10)
++#define S3C_HSMMC_RSPREG1 (0x14)
++#define S3C_HSMMC_RSPREG2 (0x18)
++#define S3C_HSMMC_RSPREG3 (0x1c)
++#define S3C_HSMMC_CMD_RESP_MASK 0x03
++#define S3C_HSMMC_CMD_CRC 0x08
++#define S3C_HSMMC_CMD_INDEX 0x10
++#define S3C_HSMMC_CMD_DATA 0x20
++#define S3C_HSMMC_CMD_RESP_NONE 0x00
++#define S3C_HSMMC_CMD_RESP_LONG 0x01
++#define S3C_HSMMC_CMD_RESP_SHORT 0x02
++#define S3C_HSMMC_CMD_RESP_SHORT_BUSY 0x03
++#define S3C_HSMMC_MAKE_CMD(c, f) (((c & 0xff) << 8) | (f & 0xff))
++
++#define S3C_HSMMC_BDATA (0x20)
++
++#define S3C_HSMMC_PRNSTS (0x24)
++#define S3C_HSMMC_CMD_INHIBIT 0x00000001
++#define S3C_HSMMC_DATA_INHIBIT 0x00000002
++#define S3C_HSMMC_DOING_WRITE 0x00000100
++#define S3C_HSMMC_DOING_READ 0x00000200
++#define S3C_HSMMC_SPACE_AVAILABLE 0x00000400
++#define S3C_HSMMC_DATA_AVAILABLE 0x00000800
++#define S3C_HSMMC_CARD_PRESENT 0x00010000
++#define S3C_HSMMC_WRITE_PROTECT 0x00080000
++
++#define S3C_HSMMC_HOSTCTL (0x28)
++#define S3C_HSMMC_CTRL_LED 0x01
++#define S3C_HSMMC_CTRL_4BITBUS 0x02
++#define S3C_HSMMC_CTRL_HIGHSPEED 0x04
++#define S3C_HSMMC_CTRL_1BIT 0x00
++#define S3C_HSMMC_CTRL_4BIT 0x02
++#define S3C_HSMMC_CTRL_8BIT 0x20
++#define S3C_HSMMC_CTRL_SDMA 0x00
++#define S3C_HSMMC_CTRL_ADMA2_32 0x10
++
++#define S3C_HSMMC_PWRCON (0x29)
++#define S3C_HSMMC_POWER_OFF 0x00
++#define S3C_HSMMC_POWER_ON 0x01
++#define S3C_HSMMC_POWER_180 0x0A
++#define S3C_HSMMC_POWER_300 0x0C
++#define S3C_HSMMC_POWER_330 0x0E
++#define S3C_HSMMC_POWER_ON_ALL 0xFF
++
++#define S3C_HSMMC_BLKGAP (0x2a)
++#define S3C_HSMMC_WAKCON (0x2b)
++
++#define S3C_HSMMC_CLKCON (0x2c)
++#define S3C_HSMMC_DIVIDER_SHIFT 8
++#define S3C_HSMMC_CLOCK_EXT_STABLE 0x0008
++#define S3C_HSMMC_CLOCK_CARD_EN 0x0004
++#define S3C_HSMMC_CLOCK_INT_STABLE 0x0002
++#define S3C_HSMMC_CLOCK_INT_EN 0x0001
++
++#define S3C_HSMMC_TIMEOUTCON (0x2e)
++#define S3C_HSMMC_TIMEOUT_MAX 0x0E
++
++#define S3C_HSMMC_SWRST (0x2f)
++#define S3C_HSMMC_RESET_ALL 0x01
++#define S3C_HSMMC_RESET_CMD 0x02
++#define S3C_HSMMC_RESET_DATA 0x04
++
++#define S3C_HSMMC_NORINTSTS (0x30)
++#define S3C_HSMMC_NIS_ERR 0x00008000
++#define S3C_HSMMC_NIS_CMDCMP 0x00000001
++#define S3C_HSMMC_NIS_TRSCMP 0x00000002
++#define S3C_HSMMC_NIS_DMA 0x00000008
++
++#define S3C_HSMMC_ERRINTSTS (0x32)
++#define S3C_HSMMC_EIS_CMDTIMEOUT 0x00000001
++#define S3C_HSMMC_EIS_CMDERR 0x0000000E
++#define S3C_HSMMC_EIS_DATATIMEOUT 0x00000010
++#define S3C_HSMMC_EIS_DATAERR 0x00000060
++#define S3C_HSMMC_EIS_CMD12ERR 0x00000100
++#define S3C_HSMMC_EIS_ADMAERR 0x00000200
++
++#define S3C_HSMMC_NORINTSTSEN (0x34)
++#define S3C_HSMMC_ERRINTSTSEN (0x36)
++
++#define S3C_HSMMC_NORINTSIGEN (0x38)
++#define S3C_HSMMC_INT_MASK_ALL 0x0000
++#define S3C_HSMMC_INT_RESPONSE 0x00000001
++#define S3C_HSMMC_INT_DATA_END 0x00000002
++#define S3C_HSMMC_INT_DMA_END 0x00000008
++#define S3C_HSMMC_INT_SPACE_AVAIL 0x00000010
++#define S3C_HSMMC_INT_DATA_AVAIL 0x00000020
++#define S3C_HSMMC_INT_CARD_INSERT 0x00000040
++#define S3C_HSMMC_INT_CARD_REMOVE 0x00000080
++#define S3C_HSMMC_INT_CARD_CHANGE 0x000000c0 /* oring of above two */
++#define S3C_HSMMC_INT_CARD_INT 0x00000100
++#define S3C_HSMMC_INT_TIMEOUT 0x00010000
++#define S3C_HSMMC_INT_CRC 0x00020000
++#define S3C_HSMMC_INT_END_BIT 0x00040000
++#define S3C_HSMMC_INT_INDEX 0x00080000
++#define S3C_HSMMC_INT_DATA_TIMEOUT 0x00100000
++#define S3C_HSMMC_INT_DATA_CRC 0x00200000
++#define S3C_HSMMC_INT_DATA_END_BIT 0x00400000
++#define S3C_HSMMC_INT_BUS_POWER 0x00800000
++#define S3C_HSMMC_INT_ACMD12ERR 0x01000000
++#define S3C_HSMMC_INT_ADMAERR 0x02000000
++
++#define S3C_HSMMC_INT_NORMAL_MASK 0x00007FFF
++#define S3C_HSMMC_INT_ERROR_MASK 0xFFFF8000
++
++#define S3C_HSMMC_INT_CMD_MASK (S3C_HSMMC_INT_RESPONSE | \
++ S3C_HSMMC_INT_TIMEOUT | \
++ S3C_HSMMC_INT_CRC | \
++ S3C_HSMMC_INT_END_BIT | \
++ S3C_HSMMC_INT_INDEX | \
++ S3C_HSMMC_NIS_ERR \
++ )
++#define S3C_HSMMC_INT_DATA_MASK (S3C_HSMMC_INT_DATA_END | \
++ S3C_HSMMC_INT_DMA_END | \
++ S3C_HSMMC_INT_DATA_AVAIL | \
++ S3C_HSMMC_INT_SPACE_AVAIL | \
++ S3C_HSMMC_INT_DATA_TIMEOUT | \
++ S3C_HSMMC_INT_DATA_CRC | \
++ S3C_HSMMC_INT_DATA_END_BIT \
++ )
++
++#define S3C_HSMMC_ERRINTSIGEN (0x3a)
++#define S3C_HSMMC_ACMD12ERRSTS (0x3c)
++
++#define S3C_HSMMC_CAPAREG (0x40)
++#define S3C_HSMMC_TIMEOUT_CLK_MASK 0x0000003F
++#define S3C_HSMMC_TIMEOUT_CLK_SHIFT 0
++#define S3C_HSMMC_TIMEOUT_CLK_UNIT 0x00000080
++#define S3C_HSMMC_CLOCK_BASE_MASK 0x00003F00
++#define S3C_HSMMC_CLOCK_BASE_SHIFT 8
++#define S3C_HSMMC_MAX_BLOCK_MASK 0x00030000
++#define S3C_HSMMC_MAX_BLOCK_SHIFT 16
++#define S3C_HSMMC_CAN_DO_DMA 0x00400000
++#define S3C_HSMMC_CAN_DO_ADMA2 0x00080000
++#define S3C_HSMMC_CAN_VDD_330 0x01000000
++#define S3C_HSMMC_CAN_VDD_300 0x02000000
++#define S3C_HSMMC_CAN_VDD_180 0x04000000
++
++#define S3C_HSMMC_MAXCURR (0x48)
++
++/* For ADMA2 */
++#define S3C_HSMMC_FEAER (0x50)
++#define S3C_HSMMC_FEERR (0x52)
++
++#define S3C_HSMMC_ADMAERR (0x54)
++#define S3C_HSMMC_ADMAERR_CONTINUE_REQUEST (1<<9)
++#define S3C_HSMMC_ADMAERR_INTRRUPT_STATUS (1<<8)
++#define S3C_HSMMC_ADMAERR_LENGTH_MISMATCH (1<<2)
++#define S3C_HSMMC_ADMAERR_STATE_ST_STOP (0<<0)
++#define S3C_HSMMC_ADMAERR_STATE_ST_FDS (1<<0)
++#define S3C_HSMMC_ADMAERR_STATE_ST_TFR (3<<0)
++
++#define S3C_HSMMC_ADMASYSADDR (0x58)
++#define S3C_HSMMC_ADMA_ATTR_MSK 0x3F
++#define S3C_HSMMC_ADMA_ATTR_ACT_NOP (0<<4)
++#define S3C_HSMMC_ADMA_ATTR_ACT_RSV (1<<4)
++#define S3C_HSMMC_ADMA_ATTR_ACT_TRAN (2<<4)
++#define S3C_HSMMC_ADMA_ATTR_ACT_LINK (3<<4)
++#define S3C_HSMMC_ADMA_ATTR_INT (1<<2)
++#define S3C_HSMMC_ADMA_ATTR_END (1<<1)
++#define S3C_HSMMC_ADMA_ATTR_VALID (1<<0)
++
++#define S3C_HSMMC_CONTROL2 (0x80)
++#define S3C_HSMMC_CONTROL3 (0x84)
++#define S3C_HSMMC_CONTROL4 (0x8C)
++#define S3C_HSMMC_DEBUG (0x88)
++
++#define S3C_HSMMC_HCVER (0xfe)
++#define S3C_HSMMC_VENDOR_VER_MASK 0xFF00
++#define S3C_HSMMC_VENDOR_VER_SHIFT 8
++#define S3C_HSMMC_SPEC_VER_MASK 0x00FF
++#define S3C_HSMMC_SPEC_VER_SHIFT 0
++
++#endif /* __ASM_ARCH_REGS_HSMMC_H */
++
+diff --git a/include/asm-arm/arch-s3c2410/regs-ide.h b/include/asm-arm/arch-s3c2410/regs-ide.h
+new file mode 100644
+index 0000000..5fdb4fd
+--- /dev/null
++++ b/include/asm-arm/arch-s3c2410/regs-ide.h
+@@ -0,0 +1,58 @@
++/* linux/include/asm-arm/arch-s3c2410/regs-nand.h
++ *
++ * Copyright (c) 2004,2005 Simtec Electronics <linux@simtec.co.uk>
++ * http://www.simtec.co.uk/products/SWLINUX/
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * S3C2410 NAND register definitions
++*/
++
++#ifndef __ASM_ARM_REGS_IDE
++#define __ASM_ARM_REGS_IDE "$Id: "
++
++
++#define S3C_CFATA_REG(x) (x)
++
++#define S3C_CFATA_MUX S3C_CFATA_REG(0x1800)
++#define S3C_CF_CFG S3C_CFATA_REG(0x1820)
++#define S3C_CF_INTMSK S3C_CFATA_REG(0x1824)
++#define S3C_CF_ATTR S3C_CFATA_REG(0x1828)
++#define S3C_CF_IO S3C_CFATA_REG(0x182c)
++#define S3C_CF_COMM S3C_CFATA_REG(0x1830)
++
++#define S3C_ATA_CTRL S3C_CFATA_REG(0x1900)
++#define S3C_ATA_STATUS S3C_CFATA_REG(0x1904)
++#define S3C_ATA_CMD S3C_CFATA_REG(0x1908)
++#define S3C_ATA_SWRST S3C_CFATA_REG(0x190c)
++#define S3C_ATA_IRQ S3C_CFATA_REG(0x1910)
++#define S3C_ATA_IRQ_MSK S3C_CFATA_REG(0x1914)
++#define S3C_ATA_CFG S3C_CFATA_REG(0x1918)
++
++#define S3C_ATA_PIO_TIME S3C_CFATA_REG(0x192c)
++#define S3C_ATA_UDMA_TIME S3C_CFATA_REG(0x1930)
++#define S3C_ATA_XFR_NUM S3C_CFATA_REG(0x1934)
++#define S3C_ATA_XFR_CNT S3C_CFATA_REG(0x1938)
++#define S3C_ATA_TBUF_START S3C_CFATA_REG(0x193c)
++#define S3C_ATA_TBUF_SIZE S3C_CFATA_REG(0x1940)
++#define S3C_ATA_SBUF_START S3C_CFATA_REG(0x1944)
++#define S3C_ATA_SBUF_SIZE S3C_CFATA_REG(0x1948)
++#define S3C_ATA_CADR_TBUF S3C_CFATA_REG(0x194c)
++#define S3C_ATA_CADR_SBUF S3C_CFATA_REG(0x1950)
++#define S3C_ATA_PIO_DTR S3C_CFATA_REG(0x1954)
++#define S3C_ATA_PIO_FED S3C_CFATA_REG(0x1958)
++#define S3C_ATA_PIO_SCR S3C_CFATA_REG(0x195c)
++#define S3C_ATA_PIO_LLR S3C_CFATA_REG(0x1960)
++#define S3C_ATA_PIO_LMR S3C_CFATA_REG(0x1964)
++#define S3C_ATA_PIO_LHR S3C_CFATA_REG(0x1968)
++#define S3C_ATA_PIO_DVR S3C_CFATA_REG(0x196c)
++#define S3C_ATA_PIO_CSD S3C_CFATA_REG(0x1970)
++#define S3C_ATA_PIO_DAD S3C_CFATA_REG(0x1974)
++#define S3C_ATA_PIO_RDATA S3C_CFATA_REG(0x197c)
++#define S3C_BUS_FIFO_STATUS S3C_CFATA_REG(0x1990)
++#define S3C_ATA_FIFO_STATUS S3C_CFATA_REG(0x1994)
++
++#endif /* __ASM_ARM_REGS_NAND */
++
+diff --git a/include/asm-arm/arch-s3c2410/regs-irq.h b/include/asm-arm/arch-s3c2410/regs-irq.h
+index 498184c..0481bd5 100644
+--- a/include/asm-arm/arch-s3c2410/regs-irq.h
++++ b/include/asm-arm/arch-s3c2410/regs-irq.h
+@@ -10,7 +10,7 @@
+
+
+ #ifndef ___ASM_ARCH_REGS_IRQ_H
+-#define ___ASM_ARCH_REGS_IRQ_H "$Id: irq.h,v 1.3 2003/03/25 21:29:06 ben Exp $"
++#define ___ASM_ARCH_REGS_IRQ_H "$Id: regs-irq.h,v 1.2 2008/07/31 06:51:59 eyryu Exp $"
+
+ /* interrupt controller */
+
+@@ -21,12 +21,25 @@
+ #define S3C2410_SRCPND S3C2410_IRQREG(0x000)
+ #define S3C2410_INTMOD S3C2410_IRQREG(0x004)
+ #define S3C2410_INTMSK S3C2410_IRQREG(0x008)
++#if defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++#define S3C2410_PRIORITY S3C2410_IRQREG(0x030)
++#else
+ #define S3C2410_PRIORITY S3C2410_IRQREG(0x00C)
++#endif
+ #define S3C2410_INTPND S3C2410_IRQREG(0x010)
+ #define S3C2410_INTOFFSET S3C2410_IRQREG(0x014)
+ #define S3C2410_SUBSRCPND S3C2410_IRQREG(0x018)
+ #define S3C2410_INTSUBMSK S3C2410_IRQREG(0x01C)
+
++#if defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++#define S3C2450_SRCPND S3C2410_IRQREG(0x040)
++#define S3C2450_INTMOD S3C2410_IRQREG(0x044)
++#define S3C2450_INTMSK S3C2410_IRQREG(0x048)
++#define S3C2450_INTPND S3C2410_IRQREG(0x050)
++#define S3C2450_INTOFFSET S3C2410_IRQREG(0x054)
++#define S3C2450_PRIORITY S3C2410_IRQREG(0x070)
++#endif
++
+ /* mask: 0=enable, 1=disable
+ * 1 bit EINT, 4=EINT4, 23=EINT23
+ * EINT0,1,2,3 are not handled here.
+@@ -40,4 +53,80 @@
+ #define S3C24XX_EINTMASK S3C24XX_EINTREG(0x0A4)
+ #define S3C24XX_EINTPEND S3C24XX_EINTREG(0X0A8)
+
++#if defined (CONFIG_PLAT_S3C64XX) || defined (CONFIG_PLAT_S5PC1XX)
++
++/* interrupt controller */
++#define S3C_VIC0REG(x) ((x) + S3C24XX_VA_IRQ)
++#define S3C_VIC1REG(x) ((x) + S3C24XX_VA_IRQ+0x100000)
++#define S3C_VIC2REG(x) ((x) + S3C24XX_VA_IRQ+0x200000)
++
++#define S3C_EINTREG(x) ((x) + S3C24XX_VA_GPIO)
++
++#define S3C_EINT0CON0 S3C_EINTREG(0x900)
++#define S3C_EINT0MASK S3C_EINTREG(0x924)
++
++#define S3C_VIC0IRQSTATUS S3C_VIC0REG(0x000)
++#define S3C_VIC1IRQSTATUS S3C_VIC1REG(0x000)
++#define S3C_VIC2IRQSTATUS S3C_VIC2REG(0x000)
++
++#define S3C_VIC0FIQSTATUS S3C_VIC0REG(0x004)
++#define S3C_VIC1FIQSTATUS S3C_VIC1REG(0x004)
++#define S3C_VIC2FIQSTATUS S3C_VIC2REG(0x004)
++
++#define S3C_VIC0RAWINTR S3C_VIC0REG(0x008)
++#define S3C_VIC1RAWINTR S3C_VIC1REG(0x008)
++#define S3C_VIC2RAWINTR S3C_VIC2REG(0x008)
++
++#define S3C_VIC0INTSELECT S3C_VIC0REG(0x00C)
++#define S3C_VIC1INTSELECT S3C_VIC1REG(0x00C)
++#define S3C_VIC2INTSELECT S3C_VIC2REG(0x00C)
++
++#define S3C_VIC0INTENABLE S3C_VIC0REG(0x010)
++#define S3C_VIC1INTENABLE S3C_VIC1REG(0x010)
++#define S3C_VIC2INTENABLE S3C_VIC2REG(0x010)
++
++#define S3C_VIC0INTENCLEAR S3C_VIC0REG(0x014)
++#define S3C_VIC1INTENCLEAR S3C_VIC1REG(0x014)
++#define S3C_VIC2INTENCLEAR S3C_VIC2REG(0x014)
++
++#define S3C_VIC0SOFTINT S3C_VIC0REG(0x018)
++#define S3C_VIC1SOFTINT S3C_VIC1REG(0x018)
++#define S3C_VIC2SOFTINT S3C_VIC2REG(0x018)
++
++#define S3C_VIC0SOFTINTCLEAR S3C_VIC0REG(0x01C)
++#define S3C_VIC1SOFTINTCLEAR S3C_VIC1REG(0x01C)
++#define S3C_VIC2SOFTINTCLEAR S3C_VIC2REG(0x01C)
++
++#define S3C_VIC0PROTECTION S3C_VIC0REG(0x020)
++#define S3C_VIC1PROTECTION S3C_VIC1REG(0x020)
++#define S3C_VIC2PROTECTION S3C_VIC2REG(0x020)
++
++#define S3C_VIC0SWPRIORITYMASK S3C_VIC0REG(0x024)
++#define S3C_VIC1SWPRIORITYMASK S3C_VIC1REG(0x024)
++#define S3C_VIC2SWPRIORITYMASK S3C_VIC2REG(0x024)
++
++#define S3C_VIC0PRIORITYDAISY S3C_VIC0REG(0x028)
++#define S3C_VIC1PRIORITYDAISY S3C_VIC1REG(0x028)
++#define S3C_VIC2PRIORITYDAISY S3C_VIC2REG(0x028)
++
++#define S3C_VIC0VECTADDR0 S3C_VIC0REG(0x100)
++#define S3C_VIC1VECTADDR0 S3C_VIC1REG(0x100)
++#define S3C_VIC2VECTADDR0 S3C_VIC2REG(0x100)
++
++#define S3C_VIC0VECTADDR1 S3C_VIC0REG(0x104)
++#define S3C_VIC1VECTADDR1 S3C_VIC1REG(0x104)
++#define S3C_VIC2VECTADDR1 S3C_VIC2REG(0x104)
++
++#define S3C_VIC0VECTADDR2 S3C_VIC0REG(0x108)
++#define S3C_VIC1VECTADDR2 S3C_VIC1REG(0x108)
++#define S3C_VIC2VECTADDR2 S3C_VIC2REG(0x108)
++
++#define S3C_VIC0ADDRESS S3C_VIC0REG(0xF00)
++#define S3C_VIC1ADDRESS S3C_VIC1REG(0xF00)
++#define S3C_VIC2ADDRESS S3C_VIC2REG(0xF00)
++
++#elif defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++#define S3C_PRIORITY S3C2410_PRIORITY
++#endif
++
+ #endif /* ___ASM_ARCH_REGS_IRQ_H */
+diff --git a/include/asm-arm/arch-s3c2410/regs-keypad.h b/include/asm-arm/arch-s3c2410/regs-keypad.h
+new file mode 100644
+index 0000000..a513aeb
+--- /dev/null
++++ b/include/asm-arm/arch-s3c2410/regs-keypad.h
+@@ -0,0 +1,49 @@
++/* linux/include/asm/arch-s3c2460/regs-keyif.h
++ *
++ * $Id: regs-keypad.h,v 1.2 2008/02/21 11:18:55 jsgood Exp $
++ *
++ * S3C2460 Key Interface register definitions
++ *
++ * Copyright (C) 2005, Sean Choi <sh428.choi@samsung.com>
++ * All rights reserved.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ *
++ */
++
++
++#ifndef __ASM_ARCH_REGS_KEYPAD_H
++#define __ASM_ARCH_REGS_KEYPAD_H
++
++/*
++ * Keypad Interface
++ */
++#define S3C_KEYPADREG(x) (x)
++//#define S3C_KEYPADREG(x) ((x) + S3C24XX_VA_KEYPAD)
++
++#define S3C_KEYIFCON S3C_KEYPADREG(0x00)
++#define S3C_KEYIFSTSCLR S3C_KEYPADREG(0x04)
++#define S3C_KEYIFCOL S3C_KEYPADREG(0x08)
++#define S3C_KEYIFROW S3C_KEYPADREG(0x0C)
++#define S3C_KEYIFFC S3C_KEYPADREG(0x10)
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++#define KEYCOL_DMASK (0xff)
++#define KEYROW_DMASK (0xff)
++#define INT_F_EN (1<<0) /*falling edge(key-pressed) interuppt enable*/
++#define INT_R_EN (1<<1) /*rising edge(key-released) interuppt enable*/
++#define DF_EN (1<<2) /*debouncing filter enable*/
++#define FC_EN (1<<3) /*filter clock enable*/
++#define KEYIFCON_INIT (KEYIFCON_CLEAR |INT_F_EN|INT_R_EN|DF_EN|FC_EN)
++#define KEYIFSTSCLR_CLEAR (0xffff)
++
++#else
++#error "Not supported S3C Configuration!!"
++#endif
++
++#endif /* __ASM_ARCH_REGS_KEYPAD_H */
++
++
+diff --git a/include/asm-arm/arch-s3c2410/regs-lcd.h b/include/asm-arm/arch-s3c2410/regs-lcd.h
+index 76fe5f6..2f43563 100644
+--- a/include/asm-arm/arch-s3c2410/regs-lcd.h
++++ b/include/asm-arm/arch-s3c2410/regs-lcd.h
+@@ -10,7 +10,7 @@
+
+
+ #ifndef ___ASM_ARCH_REGS_LCD_H
+-#define ___ASM_ARCH_REGS_LCD_H "$Id: lcd.h,v 1.3 2003/06/26 13:25:06 ben Exp $"
++#define ___ASM_ARCH_REGS_LCD_H "$Id: regs-lcd.h,v 1.6 2008/09/09 01:39:49 eyryu Exp $"
+
+ #define S3C2410_LCDREG(x) (x)
+
+@@ -147,6 +147,486 @@
+
+ #define S3C2412_FRCPAT(x) S3C2410_LCDREG(0xB4 + ((x)*4))
+
++
++/***************************************************************************/
++/* LCD Registers for S3C2443/2450/S3C6400/6410 */
++#define S3C_LCDREG(x) ((x) + S3C24XX_VA_LCD)
++
++/* LCD control registers */
++#define S3C_VIDCON0 S3C_LCDREG(0x00) /* Video control 0 register */
++#define S3C_VIDCON1 S3C_LCDREG(0x04) /* Video control 1 register */
++
++
++#if defined(CONFIG_CPU_S3C2443)||defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++#define S3C_VIDTCON0 S3C_LCDREG(0x08) /* LCD CONTROL 1 */
++#define S3C_VIDTCON1 S3C_LCDREG(0x0C) /* LCD CONTROL 1 */
++#define S3C_VIDTCON2 S3C_LCDREG(0x10) /* LCD CONTROL 1 */
++#define S3C_WINCON0 S3C_LCDREG(0x14) /* LCD CONTROL 1 */
++#define S3C_WINCON1 S3C_LCDREG(0x18) /* LCD CONTROL 1 */
++#define S3C_VIDOSD0A S3C_LCDREG(0x28) /* LCD CONTROL 1 */
++#define S3C_VIDOSD0B S3C_LCDREG(0x2C) /* LCD CONTROL 1 */
++#define S3C_VIDOSD0C S3C_LCDREG(0x30) /* LCD CONTROL 1 */
++#define S3C_VIDOSD1A S3C_LCDREG(0x34) /* LCD CONTROL 1 */
++#define S3C_VIDOSD1B S3C_LCDREG(0x38) /* LCD CONTROL 1 */
++#define S3C_VIDOSD1C S3C_LCDREG(0x3C) /* LCD CONTROL 1 */
++#define S3C_VIDW00ADD0B0 S3C_LCDREG(0x64) /* LCD CONTROL 1 */
++#define S3C_VIDW00ADD0B1 S3C_LCDREG(0x68) /* LCD CONTROL 1 */
++#define S3C_VIDW01ADD0 S3C_LCDREG(0x6C) /* LCD CONTROL 1 */
++#define S3C_VIDW00ADD1B0 S3C_LCDREG(0x7C) /* LCD CONTROL 1 */
++#define S3C_VIDW00ADD1B1 S3C_LCDREG(0x80) /* LCD CONTROL 1 */
++#define S3C_VIDW01ADD1 S3C_LCDREG(0x84) /* LCD CONTROL 1 */
++#define S3C_VIDW00ADD2B0 S3C_LCDREG(0x94) /* LCD CONTROL 1 */
++#define S3C_VIDW00ADD2B1 S3C_LCDREG(0x98) /* LCD CONTROL 1 */
++#define S3C_VIDW01ADD2 S3C_LCDREG(0x9C) /* LCD CONTROL 1 */
++#define S3C_VIDINTCON S3C_LCDREG(0xAC) /* LCD CONTROL 1 */
++#define S3C_W1KEYCON0 S3C_LCDREG(0xB0) /* LCD CONTROL 1 */
++#define S3C_W1KEYCON1 S3C_LCDREG(0xB4) /* LCD CONTROL 1 */
++#define S3C_WIN0MAP S3C_LCDREG(0xD0) /* LCD CONTROL 1 */
++#define S3C_WIN1MAP S3C_LCDREG(0xD4) /* LCD CONTROL 1 */
++#define S3C_WPALCON S3C_LCDREG(0xE4) /* LCD CONTROL 1 */
++#define S3C_SYSIFCON0 S3C_LCDREG(0x130) /* LCD CONTROL 1 */
++#define S3C_SYSIFCON1 S3C_LCDREG(0x134) /* LCD CONTROL 1 */
++#define S3C_DITHMODE S3C_LCDREG(0x138) /* LCD CONTROL 1 */
++#define S3C_SIFCCON0 S3C_LCDREG(0x13C) /* LCD CONTROL 1 */
++#define S3C_SIFCCON1 S3C_LCDREG(0x140) /* LCD CONTROL 1 */
++#define S3C_SIFCCON2 S3C_LCDREG(0x144) /* LCD CONTROL 1 */
++#define S3C_CPUTRIGCON2 S3C_LCDREG(0x160) /* LCD CONTROL 1 */
++
++#elif defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410) || defined(CONFIG_CPU_S5PC100)
++#define S3C_VIDCON2 S3C_LCDREG(0x08) /* Video control 2 register */
++#define S3C_VIDTCON0 S3C_LCDREG(0x10) /* Video time control 0 register */
++#define S3C_VIDTCON1 S3C_LCDREG(0x14) /* Video time control 1 register */
++#define S3C_VIDTCON2 S3C_LCDREG(0x18) /* Video time control 2 register */
++#define S3C_VIDTCON3 S3C_LCDREG(0x1C) /* Video time control 3 register */
++
++#define S3C_WINCON0 S3C_LCDREG(0x20) /* Window control 0 register */
++#define S3C_WINCON1 S3C_LCDREG(0x24) /* Window control 1 register */
++#define S3C_WINCON2 S3C_LCDREG(0x28) /* Window control 2 register */
++#define S3C_WINCON3 S3C_LCDREG(0x2C) /* Window control 3 register */
++#define S3C_WINCON4 S3C_LCDREG(0x30) /* Window control 4 register*/
++
++
++#define S3C_VIDOSD0A S3C_LCDREG(0x40) /* Video Window 0 position control register */
++#define S3C_VIDOSD0B S3C_LCDREG(0x44) /* Video Window 0 position control register1 */
++#define S3C_VIDOSD0C S3C_LCDREG(0x48) /* Video Window 0 position control register */
++
++#define S3C_VIDOSD1A S3C_LCDREG(0x50) /* Video Window 1 position control register */
++#define S3C_VIDOSD1B S3C_LCDREG(0x54) /* Video Window 1 position control register */
++#define S3C_VIDOSD1C S3C_LCDREG(0x58) /* Video Window 1 position control register */
++#define S3C_VIDOSD1D S3C_LCDREG(0x5C) /* Video Window 1 position control register */
++
++#define S3C_VIDOSD2A S3C_LCDREG(0x60) /* Video Window 2 position control register */
++#define S3C_VIDOSD2B S3C_LCDREG(0x64) /* Video Window 2 position control register */
++#define S3C_VIDOSD2C S3C_LCDREG(0x68) /* Video Window 2 position control register */
++#define S3C_VIDOSD2D S3C_LCDREG(0x6C) /* Video Window 2 position control register */
++
++#define S3C_VIDOSD3A S3C_LCDREG(0x70) /* Video Window 3 position control register */
++#define S3C_VIDOSD3B S3C_LCDREG(0x74) /* Video Window 3 position control register */
++#define S3C_VIDOSD3C S3C_LCDREG(0x78) /* Video Window 3 position control register */
++
++#define S3C_VIDOSD4A S3C_LCDREG(0x80) /* Video Window 4 position control register */
++#define S3C_VIDOSD4B S3C_LCDREG(0x84) /* Video Window 4 position control register */
++#define S3C_VIDOSD4C S3C_LCDREG(0x88) /* Video Window 4 position control register */
++
++#define S3C_VIDW00ADD2B0 S3C_LCDREG(0x94) /* LCD CONTROL 1 */
++#define S3C_VIDW00ADD2B1 S3C_LCDREG(0x98) /* LCD CONTROL 1 */
++
++#define S3C_VIDW00ADD0B0 S3C_LCDREG(0x0A0) /* Window 0 buffer start address register, buffer 0 */
++#define S3C_VIDW00ADD0B1 S3C_LCDREG(0x0A4) /* Window 0 buffer start address register, buffer 1 */
++#define S3C_VIDW01ADD0B0 S3C_LCDREG(0x0A8) /* Window 1 buffer start address register, buffer 0 */
++#define S3C_VIDW01ADD0B1 S3C_LCDREG(0x0AC) /* Window 1 buffer start address register, buffer 1 */
++#define S3C_VIDW02ADD0 S3C_LCDREG(0x0B0) /* Window 2 buffer start address register */
++#define S3C_VIDW03ADD0 S3C_LCDREG(0x0B8) /* Window 3 buffer start address register */
++#define S3C_VIDW04ADD0 S3C_LCDREG(0x0C0) /* Window 4 buffer start address register */
++#define S3C_VIDW00ADD1B0 S3C_LCDREG(0x0D0) /* Window 0 buffer end address register, buffer 0 */
++#define S3C_VIDW00ADD1B1 S3C_LCDREG(0x0D4) /* Window 0 buffer end address register, buffer 1 */
++#define S3C_VIDW01ADD1B0 S3C_LCDREG(0x0D8) /* Window 1 buffer end address register, buffer 0 */
++#define S3C_VIDW01ADD1B1 S3C_LCDREG(0x0DC) /* Window 1 buffer end address register, buffer 1 */
++#define S3C_VIDW02ADD1 S3C_LCDREG(0x0E0) /* Window 2 buffer end address register */
++#define S3C_VIDW03ADD1 S3C_LCDREG(0x0E8) /* Window 3 buffer end address register */
++#define S3C_VIDW04ADD1 S3C_LCDREG(0x0F0) /* Window 4 buffer end address register */
++#define S3C_VIDW00ADD2 S3C_LCDREG(0x100) /* Window 0 buffer size register */
++#define S3C_VIDW01ADD2 S3C_LCDREG(0x104) /* Window 1 buffer size register */
++
++#define S3C_VIDW02ADD2 S3C_LCDREG(0x108) /* Window 2 buffer size register */
++#define S3C_VIDW03ADD2 S3C_LCDREG(0x10C) /* Window 3 buffer size register */
++#define S3C_VIDW04ADD2 S3C_LCDREG(0x110) /* Window 4 buffer size register */
++
++#define S3C_VIDINTCON0 S3C_LCDREG(0x130) /* Indicate the Video interrupt control register */
++#define S3C_VIDINTCON1 S3C_LCDREG(0x134) /* Video Interrupt Pending register */
++#define S3C_W1KEYCON0 S3C_LCDREG(0x140) /* Color key control register */
++#define S3C_W1KEYCON1 S3C_LCDREG(0x144) /* Color key value ( transparent value) register */
++#define S3C_W2KEYCON0 S3C_LCDREG(0x148) /* Color key control register */
++#define S3C_W2KEYCON1 S3C_LCDREG(0x14C) /* Color key value (transparent value) register */
++
++#define S3C_W3KEYCON0 S3C_LCDREG(0x150) /* Color key control register */
++#define S3C_W3KEYCON1 S3C_LCDREG(0x154) /* Color key value (transparent value) register */
++#define S3C_W4KEYCON0 S3C_LCDREG(0x158) /* Color key control register */
++#define S3C_W4KEYCON1 S3C_LCDREG(0x15C) /* Color key value (transparent value) register */
++#define S3C_DITHMODE S3C_LCDREG(0x170) /* Dithering mode register. */
++
++#define S3C_WIN0MAP S3C_LCDREG(0x180) /* Window color control */
++#define S3C_WIN1MAP S3C_LCDREG(0x184) /* Window color control */
++#define S3C_WIN2MAP S3C_LCDREG(0x188) /* Window color control */
++#define S3C_WIN3MAP S3C_LCDREG(0x18C) /* Window color control */
++#define S3C_WIN4MAP S3C_LCDREG(0x190) /* Window color control */
++#define S3C_WPALCON S3C_LCDREG(0x1A0) /* Window Palette control register */
++
++#define S3C_TRIGCON S3C_LCDREG(0x1A4) /* I80 / RGB Trigger Control Regiter */
++#define S3C_I80IFCONA0 S3C_LCDREG(0x1B0) /* I80 Interface control 0 for Main LDI */
++#define S3C_I80IFCONA1 S3C_LCDREG(0x1B4) /* I80 Interface control 0 for Sub LDI */
++#define S3C_I80IFCONB0 S3C_LCDREG(0x1B8) /* I80 Inteface control 1 for Main LDI */
++#define S3C_I80IFCONB1 S3C_LCDREG(0x1BC) /* I80 Inteface control 1 for Sub LDI */
++#define S3C_LDI_CMDCON0 S3C_LCDREG(0x1D0) /* I80 Interface LDI Command Control 0 */
++#define S3C_LDI_CMDCON1 S3C_LCDREG(0x1D4) /* I80 Interface LDI Command Control 1 */
++#define S3C_SIFCCON0 S3C_LCDREG(0x1E0) /* LCD i80 System Interface Command Control 0 */
++#define S3C_SIFCCON1 S3C_LCDREG(0x1E4) /* LCD i80 System Interface Command Control 1 */
++#define S3C_SIFCCON2 S3C_LCDREG(0x1E8) /* LCD i80 System Interface Command Control 2 */
++
++#define S3C_LDI_CMD0 S3C_LCDREG(0x280) /* I80 Inteface LDI Command 0 */
++#define S3C_LDI_CMD1 S3C_LCDREG(0x284) /* I80 Inteface LDI Command 1 */
++#define S3C_LDI_CMD2 S3C_LCDREG(0x288) /* I80 Inteface LDI Command 2 */
++#define S3C_LDI_CMD3 S3C_LCDREG(0x28C) /* I80 Inteface LDI Command 3 */
++#define S3C_LDI_CMD4 S3C_LCDREG(0x290) /* I80 Inteface LDI Command 4 */
++#define S3C_LDI_CMD5 S3C_LCDREG(0x294) /* I80 Inteface LDI Command 5 */
++#define S3C_LDI_CMD6 S3C_LCDREG(0x298) /* I80 Inteface LDI Command 6 */
++#define S3C_LDI_CMD7 S3C_LCDREG(0x29C) /* I80 Inteface LDI Command 7 */
++#define S3C_LDI_CMD8 S3C_LCDREG(0x2A0) /* I80 Inteface LDI Command 8 */
++#define S3C_LDI_CMD9 S3C_LCDREG(0x2A4) /* I80 Inteface LDI Command 9 */
++#define S3C_LDI_CMD10 S3C_LCDREG(0x2A8) /* I80 Inteface LDI Command 10 */
++#define S3C_LDI_CMD11 S3C_LCDREG(0x2AC) /* I80 Inteface LDI Command 11 */
++
++#define S3C_W2PDATA01 S3C_LCDREG(0x300) /* Window 2 Palette Data of the Index 0,1 */
++#define S3C_W2PDATA23 S3C_LCDREG(0x304) /* Window 2 Palette Data of the Index 2,3 */
++#define S3C_W2PDATA45 S3C_LCDREG(0x308) /* Window 2 Palette Data of the Index 4,5 */
++#define S3C_W2PDATA67 S3C_LCDREG(0x30C) /* Window 2 Palette Data of the Index 6,7 */
++#define S3C_W2PDATA89 S3C_LCDREG(0x310) /* Window 2 Palette Data of the Index 8,9 */
++#define S3C_W2PDATAAB S3C_LCDREG(0x314) /* Window 2 Palette Data of the Index A, B */
++#define S3C_W2PDATACD S3C_LCDREG(0x318) /* Window 2 Palette Data of the Index C, D */
++#define S3C_W2PDATAEF S3C_LCDREG(0x31C) /* Window 2 Palette Data of the Index E, F */
++#define S3C_W3PDATA01 S3C_LCDREG(0x320) /* Window 3 Palette Data of the Index 0,1 */
++#define S3C_W3PDATA23 S3C_LCDREG(0x324) /* Window 3 Palette Data of the Index 2,3 */
++#define S3C_W3PDATA45 S3C_LCDREG(0x328) /* Window 3 Palette Data of the Index 4,5 */
++#define S3C_W3PDATA67 S3C_LCDREG(0x32C) /* Window 3 Palette Data of the Index 6,7 */
++#define S3C_W3PDATA89 S3C_LCDREG(0x330) /* Window 3 Palette Data of the Index 8,9 */
++#define S3C_W3PDATAAB S3C_LCDREG(0x334) /* Window 3 Palette Data of the Index A, B */
++#define S3C_W3PDATACD S3C_LCDREG(0x338) /* Window 3 Palette Data of the Index C, D */
++#define S3C_W3PDATAEF S3C_LCDREG(0x33C) /* Window 3 Palette Data of the Index E, F */
++#define S3C_W4PDATA01 S3C_LCDREG(0x340) /* Window 3 Palette Data of the Index 0,1 */
++#define S3C_W4PDATA23 S3C_LCDREG(0x344) /* Window 3 Palette Data of the Index 2,3 */
++#endif
++
++#define S3C_TFTPAL2(x) S3C_LCDREG((0x300 + (x)*4))
++#define S3C_TFTPAL3(x) S3C_LCDREG((0x320 + (x)*4))
++#define S3C_TFTPAL4(x) S3C_LCDREG((0x340 + (x)*4))
++#define S3C_TFTPAL0(x) S3C_LCDREG((0x400 + (x)*4))
++#define S3C_TFTPAL1(x) S3C_LCDREG((0x800 + (x)*4))
++
++/*--------------------------------------------------------------*/
++/* Video Main Control 0 register - VIDCON0 */
++#define S3C_VIDCON0_INTERLACE_F_PROGRESSIVE (0<<29)
++#define S3C_VIDCON0_INTERLACE_F_INTERLACE (1<<29)
++#define S3C_VIDCON0_VIDOUT(x) (((x)&0x7)<<26)
++#define S3C_VIDCON0_VIDOUT_RGB_IF (0<<26)
++#define S3C_VIDCON0_VIDOUT_TV (1<<26)
++#define S3C_VIDCON0_VIDOUT_I80IF0 (2<<26)
++#define S3C_VIDCON0_VIDOUT_I80IF1 (3<<26)
++#define S3C_VIDCON0_VIDOUT_TVNRGBIF (4<<26)
++#define S3C_VIDCON0_VIDOUT_TVNI80IF0 (6<<26)
++#define S3C_VIDCON0_VIDOUT_TVNI80IF1 (7<<26)
++#define S3C_VIDCON0_L1_DATA16(x) (((x)&0x7)<<23)
++#define S3C_VIDCON0_L1_DATA16_SUB_16_MODE (0<<23)
++#define S3C_VIDCON0_L1_DATA16_SUB_16PLUS2_MODE (1<<23)
++#define S3C_VIDCON0_L1_DATA16_SUB_9PLUS9_MODE (2<<23)
++#define S3C_VIDCON0_L1_DATA16_SUB_16PLUS8_MODE (3<<23)
++#define S3C_VIDCON0_L1_DATA16_SUB_18_MODE (4<<23)
++#define S3C_VIDCON0_L0_DATA16(x) (((x)&0x7)<<20)
++#define S3C_VIDCON0_L0_DATA16_MAIN_16_MODE (0<<20)
++#define S3C_VIDCON0_L0_DATA16_MAIN_16PLUS2_MODE (1<<20)
++#define S3C_VIDCON0_L0_DATA16_MAIN_9PLUS9_MODE (2<<20)
++#define S3C_VIDCON0_L0_DATA16_MAIN_16PLUS8_MODE (3<<20)
++#define S3C_VIDCON0_L0_DATA16_MAIN_18_MODE (4<<20)
++#define S3C_VIDCON0_PNRMODE(x) (((x)&0x3)<<17)
++#define S3C_VIDCON0_PNRMODE_RGB_P (0<<17)
++#define S3C_VIDCON0_PNRMODE_BGR_P (1<<17)
++#define S3C_VIDCON0_PNRMODE_RGB_S (2<<17)
++#define S3C_VIDCON0_PNRMODE_BGR_S (3<<17)
++#define S3C_VIDCON0_PNRMODE_MASK (3<<17)
++#define S3C_VIDCON0_CLKVALUP_ALWAYS (0<<16)
++#define S3C_VIDCON0_CLKVALUP_ST_FRM (1<<16)
++#define S3C_VIDCON0_CLKVAL_F(x) (((x)&0xFF)<<6)
++#define S3C_VIDCON0_VCLKEN_ENABLE (1<<5)
++#define S3C_VIDCON0_CLKDIR_DIVIDED (1<<4)
++#define S3C_VIDCON0_CLKDIR_DIRECTED (0<<4)
++#define S3C_VIDCON0_CLKSEL(x) (((x)&0x3)<<2)
++#define S3C_VIDCON0_CLKSEL_F_HCLK (0<<2)
++#define S3C_VIDCON0_ENVID_ENABLE (1 << 1) /* 0:Disable 1:Enable LCD video output and logic immediatly */
++#define S3C_VIDCON0_ENVID_DISABLE (0 << 1) /* 0:Disable 1:Enable LCD video output and logic immediatly */
++#define S3C_VIDCON0_ENVID_F_ENABLE (1 << 0) /* 0:Dis 1:Ena wait until Current frame end. */
++#define S3C_VIDCON0_ENVID_F_DISABLE (0 << 0) /* 0:Dis 1:Ena wait until Current frame end. */
++
++/* Video Main Control 1 register - VIDCON1 */
++#define S3C_VIDCON1_IVCLK_FALL_EDGE (0<<7)
++#define S3C_VIDCON1_IVCLK_RISE_EDGE (1<<7)
++#define S3C_VIDCON1_IHSYNC_NORMAL (0<<6)
++#define S3C_VIDCON1_IHSYNC_INVERT (1<<6)
++#define S3C_VIDCON1_IVSYNC_NORMAL (0<<5)
++#define S3C_VIDCON1_IVSYNC_INVERT (1<<5)
++#define S3C_VIDCON1_IVDEN_NORMAL (0<<4)
++#define S3C_VIDCON1_IVDEN_INVERT (1<<4)
++
++/* Video Main Control 2 register - VIDCON2 */
++#define S3C_VIDCON2_TVLFFORMAT(x) (((x)&0x7)<<7)
++
++/* VIDEO Time Control 0 register - VIDTCON0 */
++#define S3C_VIDTCON0_VBPDE(x) (((x)&0xFF)<<24)
++#define S3C_VIDTCON0_VBPD(x) (((x)&0xFF)<<16)
++#define S3C_VIDTCON0_VFPD(x) (((x)&0xFF)<<8)
++#define S3C_VIDTCON0_VSPW(x) (((x)&0xFF)<<0)
++
++/* VIDEO Time Control 1 register - VIDTCON1 */
++#define S3C_VIDTCON1_VFPDE(x) (((x)&0xFF)<<24)
++#define S3C_VIDTCON1_HBPD(x) (((x)&0xFF)<<16)
++#define S3C_VIDTCON1_HFPD(x) (((x)&0xFF)<<8)
++#define S3C_VIDTCON1_HSPW(x) (((x)&0xFF)<<0)
++
++/* VIDEO Time Control 2 register - VIDTCON2 */
++#define S3C_VIDTCON2_LINEVAL(x) (((x)&0x7FF)<<11) /* these bits determine the vertical size of lcd panel */
++#define S3C_VIDTCON2_HOZVAL(x) (((x)&0x7FF)<<0) /* these bits determine the horizontal size of lcd panel*/
++
++
++/* Window 0~4 Control register - WINCONx */
++#define S3C_WINCONx_WIDE_NARROW(x) (((x)&0x3)<<26)
++#define S3C_WINCONx_ENLOCAL_DMA (0<<22)
++#define S3C_WINCONx_ENLOCAL_POST (1<<22)
++#define S3C_WINCONx_BUFSEL_0 (0<<20)
++#define S3C_WINCONx_BUFSEL_1 (1<<20)
++#define S3C_WINCONx_BUF_MASK (1<<20)
++#define S3C_WINCONx_BUFAUTOEN_DISABLE (0<<19)
++#define S3C_WINCONx_BUFAUTOEN_ENABLE (1<<19)
++#define S3C_WINCONx_BUFAUTOEN_MASK (1<<19)
++#define S3C_WINCONx_BITSWP_DISABLE (0<<18)
++#define S3C_WINCONx_BITSWP_ENABLE (1<<18)
++#define S3C_WINCONx_BYTSWP_DISABLE (0<<17)
++#define S3C_WINCONx_BYTSWP_ENABLE (1<<17)
++#define S3C_WINCONx_HAWSWP_DISABLE (0<<16)
++#define S3C_WINCONx_HAWSWP_ENABLE (1<<16)
++#define S3C_WINCONx_INRGB_RGB (0<<13)
++#define S3C_WINCONx_INRGB_YUV (1<<13)
++#define S3C_WINCONx_INRGB_MASK (1<<13)
++#define S3C_WINCONx_BURSTLEN_16WORD (0<<9)
++#define S3C_WINCONx_BURSTLEN_8WORD (1<<9)
++#define S3C_WINCONx_BURSTLEN_4WORD (2<<9)
++#define S3C_WINCONx_BLD_PIX_PLANE (0<<6)
++#define S3C_WINCONx_BLD_PIX_PIXEL (1<<6)
++#define S3C_WINCONx_BLD_PIX_MASK (1<<6)
++#define S3C_WINCONx_BPPMODE_F_1BPP (0<<2)
++#define S3C_WINCONx_BPPMODE_F_2BPP (1<<2)
++#define S3C_WINCONx_BPPMODE_F_4BPP (2<<2)
++#define S3C_WINCONx_BPPMODE_F_8BPP_PAL (3<<2)
++#define S3C_WINCONx_BPPMODE_F_8BPP_NOPAL (4<<2)
++#define S3C_WINCONx_BPPMODE_F_16BPP_565 (5<<2)
++#define S3C_WINCONx_BPPMODE_F_16BPP_A555 (6<<2)
++#define S3C_WINCONx_BPPMODE_F_18BPP_666 (8<<2)
++#define S3C_WINCONx_BPPMODE_F_24BPP_888 (11<<2)
++#define S3C_WINCONx_BPPMODE_F_24BPP_A887 (0xc<<2)
++#define S3C_WINCONx_BPPMODE_F_25BPP_A888 (0xd<<2)
++#define S3C_WINCONx_BPPMODE_F_28BPP_A888 (0xd<<2)
++#define S3C_WINCONx_BPPMODE_F_MASK (0xf<<2)
++#define S3C_WINCONx_ALPHA_SEL_0 (0<<1)
++#define S3C_WINCONx_ALPHA_SEL_1 (1<<1)
++#define S3C_WINCONx_ALPHA_SEL_MASK (1<<1)
++#define S3C_WINCONx_ENWIN_F_DISABLE (0<<0)
++#define S3C_WINCONx_ENWIN_F_ENABLE (1<<0)
++
++/* Window 1-2 Control register - WINCON1 */
++#define S3C_WINCON1_LOCALSEL_TV (0<<23)
++#define S3C_WINCON1_LOCALSEL_CAMERA (1<<23)
++#define S3C_WINCON2_LOCALSEL_TV (0<<23)
++#define S3C_WINCON2_LOCALSEL_CAMERA (1<<23)
++
++/* Window 0~4 Position Control A register - VIDOSDxA */
++#define S3C_VIDOSDxA_OSD_LTX_F(x) (((x)&0x7FF)<<11)
++#define S3C_VIDOSDxA_OSD_LTY_F(x) (((x)&0x7FF)<<0)
++
++/* Window 0~4 Position Control B register - VIDOSDxB */
++#define S3C_VIDOSDxB_OSD_RBX_F(x) (((x)&0x7FF)<<11)
++#define S3C_VIDOSDxB_OSD_RBY_F(x) (((x)&0x7FF)<<0)
++
++/* Window 0 Position Control C register - VIDOSD0C */
++#define S3C_VIDOSD0C_OSDSIZE(x) (((x)&0xFFFFFF)<<0)
++
++/* Window 1~4 Position Control C register - VIDOSDxC */
++#define S3C_VIDOSDxC_ALPHA0_R(x) (((x)&0xF)<<20)
++#define S3C_VIDOSDxC_ALPHA0_G(x) (((x)&0xF)<<16)
++#define S3C_VIDOSDxC_ALPHA0_B(x) (((x)&0xF)<<12)
++#define S3C_VIDOSDxC_ALPHA1_R(x) (((x)&0xF)<<8)
++#define S3C_VIDOSDxC_ALPHA1_G(x) (((x)&0xF)<<4)
++#define S3C_VIDOSDxC_ALPHA1_B(x) (((x)&0xF)<<0)
++
++/* Window 1~2 Position Control D register - VIDOSDxD */
++#define S3C_VIDOSDxD_OSDSIZE(x) (((x)&0xFFFFFF)<<0)
++
++/* Frame buffer Start Address register - VIDWxxADD0 */
++#define S3C_VIDWxxADD0_VBANK_F(x) (((x)&0xFF)<<23) /* the end address of the LCD frame buffer. */
++#define S3C_VIDWxxADD0_VBASEU_F(x) (((x)&0xFFFFFF)<<0) /* Virtual screen offset size (the number of byte). */
++
++/* Frame buffer End Address register - VIDWxxADD1 */
++#define S3C_VIDWxxADD1_VBASEL_F(x) (((x)&0xFFFFFF)<<0) /* the end address of the LCD frame buffer. */
++
++/* Frame buffer Size register - VIDWxxADD2 */
++#define S3C_VIDWxxADD2_OFFSIZE_F(x) (((x)&0x1FFF)<<13) /* Virtual screen offset size (the number of byte). */
++#define S3C_VIDWxxADD2_PAGEWIDTH_F(x) (((x)&0x1FFF)<<0) /* Virtual screen page width (the number of byte). */
++
++/* VIDEO Interrupt Control 0 register - VIDINTCON0 */
++#define S3C_VIDINTCON0_FIFOINTERVAL(x) (((x)&0x3F)<<20)
++#define S3C_VIDINTCON0_SYSMAINCON_DISABLE (0<<19)
++#define S3C_VIDINTCON0_SYSMAINCON_ENABLE (1<<19)
++#define S3C_VIDINTCON0_SYSSUBCON_DISABLE (0<<18)
++#define S3C_VIDINTCON0_SYSSUBCON_ENABLE (1<<18)
++#define S3C_VIDINTCON0_SYSIFDONE_DISABLE (0<<17)
++#define S3C_VIDINTCON0_SYSIFDONE_ENABLE (1<<17)
++#define S3C_VIDINTCON0_FRAMESEL0_BACK (0<<15)
++#define S3C_VIDINTCON0_FRAMESEL0_VSYNC (1<<15)
++#define S3C_VIDINTCON0_FRAMESEL0_ACTIVE (2<<15)
++#define S3C_VIDINTCON0_FRAMESEL0_FRONT (3<<15)
++#define S3C_VIDINTCON0_FRAMESEL0_MASK (3<<15)
++#define S3C_VIDINTCON0_FRAMESEL1_NONE (0<<13)
++#define S3C_VIDINTCON0_FRAMESEL1_BACK (1<<13)
++#define S3C_VIDINTCON0_FRAMESEL1_VSYNC (2<<13)
++#define S3C_VIDINTCON0_FRAMESEL1_FRONT (3<<13)
++#define S3C_VIDINTCON0_INTFRMEN_DISABLE (0<<12)
++#define S3C_VIDINTCON0_INTFRMEN_ENABLE (1<<12)
++#define S3C_VIDINTCON0_FRAMEINT_MASK (0x1F<<12)
++#define S3C_VIDINTCON0_FIFOSEL_WIN4 (1<<11)
++#define S3C_VIDINTCON0_FIFOSEL_WIN3 (1<<10)
++#define S3C_VIDINTCON0_FIFOSEL_WIN2 (1<<9)
++#define S3C_VIDINTCON0_FIFOSEL_WIN1 (1<<6)
++#define S3C_VIDINTCON0_FIFOSEL_WIN0 (1<<5)
++#define S3C_VIDINTCON0_FIFOSEL_ALL (0x73<<5)
++#define S3C_VIDINTCON0_FIFOLEVEL_25 (0<<2)
++#define S3C_VIDINTCON0_FIFOLEVEL_50 (1<<2)
++#define S3C_VIDINTCON0_FIFOLEVEL_75 (2<<2)
++#define S3C_VIDINTCON0_FIFOLEVEL_EMPTY (3<<2)
++#define S3C_VIDINTCON0_FIFOLEVEL_FULL (4<<2)
++#define S3C_VIDINTCON0_INTFIFOEN_DISABLE (0<<1)
++#define S3C_VIDINTCON0_INTFIFOEN_ENABLE (1<<1)
++#define S3C_VIDINTCON0_INTEN_DISABLE (0<<0)
++#define S3C_VIDINTCON0_INTEN_ENABLE (1<<0)
++#define S3C_VIDINTCON0_INTEN_MASK (1<<0)
++
++/* VIDEO Interrupt Control 1 register - VIDINTCON1 */
++#define S3C_VIDINTCON1_INTI80PEND (0<<2)
++#define S3C_VIDINTCON1_INTFRMPEND (1<<1)
++#define S3C_VIDINTCON1_INTFIFOPEND (1<<0)
++
++/* WIN 1~4 Color Key 0 register - WxKEYCON0 */
++#define S3C_WxKEYCON0_KEYBLEN_DISABLE (0<<26)
++#define S3C_WxKEYCON0_KEYBLEN_ENABLE (1<<26)
++#define S3C_WxKEYCON0_KEYEN_F_DISABLE (0<<25)
++#define S3C_WxKEYCON0_KEYEN_F_ENABLE (1<<25)
++#define S3C_WxKEYCON0_DIRCON_MATCH_FG_IMAGE (0<<24)
++#define S3C_WxKEYCON0_DIRCON_MATCH_BG_IMAGE (1<<24)
++#define S3C_WxKEYCON0_COMPKEY(x) (((x)&0xFFFFFF)<<0)
++
++/* WIN 1~4 Color Key 1 register - WxKEYCON1 */
++#define S3C_WxKEYCON1_COLVAL(x) (((x)&0xFFFFFF)<<0)
++
++/* Dithering Control 1 register - DITHMODE */
++#define S3C_DITHMODE_RDITHPOS_8BIT (0<<5)
++#define S3C_DITHMODE_RDITHPOS_6BIT (1<<5)
++#define S3C_DITHMODE_RDITHPOS_5BIT (2<<5)
++#define S3C_DITHMODE_GDITHPOS_8BIT (0<<3)
++#define S3C_DITHMODE_GDITHPOS_6BIT (1<<3)
++#define S3C_DITHMODE_GDITHPOS_5BIT (2<<3)
++#define S3C_DITHMODE_BDITHPOS_8BIT (0<<1)
++#define S3C_DITHMODE_BDITHPOS_6BIT (1<<1)
++#define S3C_DITHMODE_BDITHPOS_5BIT (2<<1)
++#define S3C_DITHMODE_RGB_DITHPOS_MASK (0x3f<<1)
++#define S3C_DITHMODE_DITHERING_DISABLE (0<<0)
++#define S3C_DITHMODE_DITHERING_ENABLE (1<<0)
++#define S3C_DITHMODE_DITHERING_MASK (1<<0)
++
++/* Window 0~4 Color map register - WINxMAP */
++#define S3C_WINxMAP_MAPCOLEN_F_ENABLE (1<<24)
++#define S3C_WINxMAP_MAPCOLEN_F_DISABLE (0<<24)
++#define S3C_WINxMAP_MAPCOLOR (((x)&0xFFFFFF)<<0)
++
++/* Window Palette Control register - WPALCON */
++#define S3C_WPALCON_PALUPDATEEN (1<<9)
++#define S3C_WPALCON_W4PAL_16BIT_A (1<<8) /* A:5:5:5 */
++#define S3C_WPALCON_W4PAL_16BIT (0<<8) /* 5:6:5 */
++#define S3C_WPALCON_W3PAL_16BIT_A (1<<7) /* A:5:5:5 */
++#define S3C_WPALCON_W3PAL_16BIT (0<<7) /* 5:6:5 */
++#define S3C_WPALCON_W2PAL_16BIT_A (1<<6) /* A:5:5:5 */
++#define S3C_WPALCON_W2PAL_16BIT (0<<6) /* 5:6:5 */
++#define S3C_WPALCON_W1PAL_25BIT_A (0<<3) /* A:8:8:8 */
++#define S3C_WPALCON_W1PAL_24BIT (1<<3) /* 8:8:8 */
++#define S3C_WPALCON_W1PAL_19BIT_A (2<<3) /* A:6:6:6 */
++#define S3C_WPALCON_W1PAL_18BIT_A (3<<3) /* A:6:6:5 */
++#define S3C_WPALCON_W1PAL_18BIT (4<<3) /* 6:6:6 */
++#define S3C_WPALCON_W1PAL_16BIT_A (5<<3) /* A:5:5:5 */
++#define S3C_WPALCON_W1PAL_16BIT (6<<3) /* 5:6:5 */
++#define S3C_WPALCON_W0PAL_25BIT_A (0<<0) /* A:8:8:8 */
++#define S3C_WPALCON_W0PAL_24BIT (1<<0) /* 8:8:8 */
++#define S3C_WPALCON_W0PAL_19BIT_A (2<<0) /* A:6:6:6 */
++#define S3C_WPALCON_W0PAL_18BIT_A (3<<0) /* A:6:6:5 */
++#define S3C_WPALCON_W0PAL_18BIT (4<<0) /* 6:6:6 */
++#define S3C_WPALCON_W0PAL_16BIT_A (5<<0) /* A:5:5:5 */
++#define S3C_WPALCON_W0PAL_16BIT (6<<0) /* 5:6:5 */
++
++/* I80/RGB Trigger Control register - TRIGCON */
++#define S3C_TRIGCON_SWFRSTATUS_REQUESTED (1<<2)
++#define S3C_TRIGCON_SWFRSTATUS_NOT_REQUESTED (0<<2)
++#define S3C_TRIGCON_SWTRGCMD (1<<1)
++#define S3C_TRIGCON_TRGMODE_ENABLE (1<<0)
++#define S3C_TRIGCON_TRGMODE_DISABLE (0<<0)
++
++/* LCD I80 Interface Control 0 register - I80IFCONA0 */
++#define S3C_I80IFCONAx_LCD_CS_SETUP(x) (((x)&0xF)<<16)
++#define S3C_I80IFCONAx_LCD_WR_SETUP(x) (((x)&0xF)<<12)
++#define S3C_I80IFCONAx_LCD_WR_ACT(x) (((x)&0xF)<<8)
++#define S3C_I80IFCONAx_LCD_WR_HOLD(x) (((x)&0xF)<<4)
++
++
++/***************************************************************************/
++/*HOST IF registers */
++/* Host I/F A - */
++#define S3C_HOSTIFAREG(x) ((x) + S3C24XX_VA_HOSTIFA)
++#define S3C_HOSTIFAREG_PHYS(x) ((x) + S3C24XX_PA_HOSTIFA)
++
++/* Host I/F B - Modem I/F */
++#define S3C_HOSTIFBREG(x) ((x) + S3C24XX_VA_HOSTIFB)
++#define S3C_HOSTIFBREG_PHYS(x) ((x) + S3C24XX_PA_HOSTIFB)
++
++#define S3C_HOSTIFB_INT2AP S3C_HOSTIFBREG(0x8000)
++#define S3C_HOSTIFB_INT2MSM S3C_HOSTIFBREG(0x8004)
++#define S3C_HOSTIFB_MIFCON S3C_HOSTIFBREG(0x8008)
++#define S3C_HOSTIFB_MIFPCON S3C_HOSTIFBREG(0x800C)
++#define S3C_HOSTIFB_MSMINTCLR S3C_HOSTIFBREG(0x8010)
++
++#define S3C_HOSTIFB_MIFCON_INT2MSM_DIS (0x0<<3)
++#define S3C_HOSTIFB_MIFCON_INT2MSM_EN (0x1<<3)
++#define S3C_HOSTIFB_MIFCON_INT2AP_DIS (0x0<<2)
++#define S3C_HOSTIFB_MIFCON_INT2AP_EN (0x1<<2)
++#define S3C_HOSTIFB_MIFCON_WAKEUP_DIS (0x0<<1)
++#define S3C_HOSTIFB_MIFCON_WAKEUP_EN (0x1<<1)
++
++#define S3C_HOSTIFB_MIFPCON_SEL_VSYNC_DIR_OUT (0x0<<5)
++#define S3C_HOSTIFB_MIFPCON_SEL_VSYNC_DIR_IN (0x1<<5)
++#define S3C_HOSTIFB_MIFPCON_INT2M_LEVEL_DIS (0x0<<4)
++#define S3C_HOSTIFB_MIFPCON_INT2M_LEVEL_EN (0x1<<4)
++#define S3C_HOSTIFB_MIFPCON_SEL_NORMAL (0x0<<3)
++#define S3C_HOSTIFB_MIFPCON_SEL_BYPASS (0x1<<3)
++
++#define S3C_HOSTIFB_MIFPCON_SEL_RS0 0
++#define S3C_HOSTIFB_MIFPCON_SEL_RS1 1
++#define S3C_HOSTIFB_MIFPCON_SEL_RS2 2
++#define S3C_HOSTIFB_MIFPCON_SEL_RS3 3
++#define S3C_HOSTIFB_MIFPCON_SEL_RS4 4
++#define S3C_HOSTIFB_MIFPCON_SEL_RS5 5
++#define S3C_HOSTIFB_MIFPCON_SEL_RS6 6
++
+ #endif /* ___ASM_ARCH_REGS_LCD_H */
+
+
+diff --git a/include/asm-arm/arch-s3c2410/regs-mem.h b/include/asm-arm/arch-s3c2410/regs-mem.h
+index e4d8234..3da2681 100644
+--- a/include/asm-arm/arch-s3c2410/regs-mem.h
++++ b/include/asm-arm/arch-s3c2410/regs-mem.h
+@@ -11,7 +11,7 @@
+ */
+
+ #ifndef __ASM_ARM_MEMREGS_H
+-#define __ASM_ARM_MEMREGS_H "$Id: regs.h,v 1.8 2003/05/01 15:55:41 ben Exp $"
++#define __ASM_ARM_MEMREGS_H "$Id: regs-mem.h,v 1.2 2008/02/22 03:01:30 ihlee215 Exp $"
+
+ #ifndef S3C2410_MEMREG
+ #define S3C2410_MEMREG(x) (S3C24XX_VA_MEMCTRL + (x))
+@@ -211,4 +211,122 @@
+ #define S3C2410_BANKSIZE_SCKE_EN (1<<5)
+ #define S3C2410_BANKSIZE_BURST (1<<7)
+
++
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++#define S3C_SSMCREG(x) (S3C24XX_VA_SROMC + (x))
++
++/* Bank Idle Cycle Control Registers 0-5 */
++#define S3C_SSMC_SMBIDCYR0 S3C_SSMCREG(0x0000)
++#define S3C_SSMC_SMBIDCYR1 S3C_SSMCREG(0x0020)
++#define S3C_SSMC_SMBIDCYR2 S3C_SSMCREG(0x0040)
++#define S3C_SSMC_SMBIDCYR3 S3C_SSMCREG(0x0060)
++#define S3C_SSMC_SMBIDCYR4 S3C_SSMCREG(0x0080)
++#define S3C_SSMC_SMBIDCYR5 S3C_SSMCREG(0x00A0)
++#define S3C_SSMC_SMBIDCYR6 S3C_SSMCREG(0x00C0)
++#define S3C_SSMC_SMBIDCYR7 S3C_SSMCREG(0x00E0)
++
++/* Bank Read Wait State Contro, Registers 0-5 */
++#define S3C_SSMC_SMBWSTRDR0 S3C_SSMCREG(0x0004)
++#define S3C_SSMC_SMBWSTRDR1 S3C_SSMCREG(0x0024)
++#define S3C_SSMC_SMBWSTRDR2 S3C_SSMCREG(0x0044)
++#define S3C_SSMC_SMBWSTRDR3 S3C_SSMCREG(0x0064)
++#define S3C_SSMC_SMBWSTRDR4 S3C_SSMCREG(0x0084)
++#define S3C_SSMC_SMBWSTRDR5 S3C_SSMCREG(0x00A4)
++#define S3C_SSMC_SMBWSTRDR6 S3C_SSMCREG(0x00C4)
++#define S3C_SSMC_SMBWSTRDR7 S3C_SSMCREG(0x00E4)
++
++/* Bank Write Wait State Control, Registers 0-5 */
++#define S3C_SSMC_SMBWSTWRR0 S3C_SSMCREG(0x0008)
++#define S3C_SSMC_SMBWSTWRR1 S3C_SSMCREG(0x0028)
++#define S3C_SSMC_SMBWSTWRR2 S3C_SSMCREG(0x0048)
++#define S3C_SSMC_SMBWSTWRR3 S3C_SSMCREG(0x0068)
++#define S3C_SSMC_SMBWSTWRR4 S3C_SSMCREG(0x0088)
++#define S3C_SSMC_SMBWSTWRR5 S3C_SSMCREG(0x00A8)
++#define S3C_SSMC_SMBWSTWRR6 S3C_SSMCREG(0x00C8)
++#define S3C_SSMC_SMBWSTWRR7 S3C_SSMCREG(0x00E8)
++
++/* Bank OutPut enable Assertion Delay Control Registers 0-5 */
++#define S3C_SSMC_SMBWSTOENR0 S3C_SSMCREG(0x000C)
++#define S3C_SSMC_SMBWSTOENR1 S3C_SSMCREG(0x002C)
++#define S3C_SSMC_SMBWSTOENR2 S3C_SSMCREG(0x004C)
++#define S3C_SSMC_SMBWSTOENR3 S3C_SSMCREG(0x006C)
++#define S3C_SSMC_SMBWSTOENR4 S3C_SSMCREG(0x008C)
++#define S3C_SSMC_SMBWSTOENR5 S3C_SSMCREG(0x00AC)
++#define S3C_SSMC_SMBWSTOENR6 S3C_SSMCREG(0x00CC)
++#define S3C_SSMC_SMBWSTOENR7 S3C_SSMCREG(0x00EC)
++
++/* Bank Write enable Assertion Delay Control Registers 0-5 */
++#define S3C_SSMC_SMBWSTWENR0 S3C_SSMCREG(0x0010)
++#define S3C_SSMC_SMBWSTWENR1 S3C_SSMCREG(0x0030)
++#define S3C_SSMC_SMBWSTWENR2 S3C_SSMCREG(0x0050)
++#define S3C_SSMC_SMBWSTWENR3 S3C_SSMCREG(0x0070)
++#define S3C_SSMC_SMBWSTWENR4 S3C_SSMCREG(0x0090)
++#define S3C_SSMC_SMBWSTWENR5 S3C_SSMCREG(0x00B0)
++#define S3C_SSMC_SMBWSTWENR6 S3C_SSMCREG(0x00D0)
++#define S3C_SSMC_SMBWSTWENR7 S3C_SSMCREG(0x00F0)
++
++/* Bank Control Registers 0-5 */
++#define S3C_SSMC_SMBCR0 S3C_SSMCREG(0x0014)
++#define S3C_SSMC_SMBCR1 S3C_SSMCREG(0x0034)
++#define S3C_SSMC_SMBCR2 S3C_SSMCREG(0x0054)
++#define S3C_SSMC_SMBCR3 S3C_SSMCREG(0x0074)
++#define S3C_SSMC_SMBCR4 S3C_SSMCREG(0x0094)
++#define S3C_SSMC_SMBCR5 S3C_SSMCREG(0x00B4)
++#define S3C_SSMC_SMBCR6 S3C_SSMCREG(0x00D4)
++#define S3C_SSMC_SMBCR7 S3C_SSMCREG(0x00F4)
++
++/* Bank Status Registers 0-5 */
++#define S3C_SSMC_SMBSR0 S3C_SSMCREG(0x0018)
++#define S3C_SSMC_SMBSR1 S3C_SSMCREG(0x0038)
++#define S3C_SSMC_SMBSR2 S3C_SSMCREG(0x0058)
++#define S3C_SSMC_SMBSR3 S3C_SSMCREG(0x0078)
++#define S3C_SSMC_SMBSR4 S3C_SSMCREG(0x0098)
++#define S3C_SSMC_SMBSR5 S3C_SSMCREG(0x00B8)
++#define S3C_SSMC_SMBSR6 S3C_SSMCREG(0x00D8)
++#define S3C_SSMC_SMBSR7 S3C_SSMCREG(0x00F8)
++
++/* Bank Burst Read Wait delay Control Registers 0-5 */
++#define S3C_SSMC_SMBWSTBRDR0 S3C_SSMCREG(0x001C)
++#define S3C_SSMC_SMBWSTBRDR1 S3C_SSMCREG(0x003C)
++#define S3C_SSMC_SMBWSTBRDR2 S3C_SSMCREG(0x005C)
++#define S3C_SSMC_SMBWSTBRDR3 S3C_SSMCREG(0x007C)
++#define S3C_SSMC_SMBWSTBRDR4 S3C_SSMCREG(0x009C)
++#define S3C_SSMC_SMBWSTBRDR5 S3C_SSMCREG(0x00BC)
++#define S3C_SSMC_SMBWSTBRDR6 S3C_SSMCREG(0x00DC)
++#define S3C_SSMC_SMBWSTBRDR7 S3C_SSMCREG(0x00FC)
++
++/* SROMC status register */
++#define S3C_SSMC_SSMCSR S3C_SSMCREG(0x0200)
++/* SROMC control register */
++#define S3C_SSMC_SSMCCR S3C_SSMCREG(0x0204)
++
++#define S3C_EBIREG(x) (S3C24XX_VA_EBI + (x))
++
++/* bus priority decision */
++#define S3C_EBIPR S3C_EBIREG(0x0000)
++
++/* Bank configuration register */
++#define S3C_BANK_CFG S3C_EBIREG(0x0008)
++
++
++#endif
++
++#if defined (CONFIG_CPU_S3C6400) || defined (CONFIG_CPU_S3C6410)
++/* SROM */
++
++#ifndef S3C_MEMREG
++#define S3C_MEMREG(x) (S3C24XX_VA_SROMC + (x))
++#endif
++
++
++/* Bank Idle Cycle Control Registers 0-5 */
++#define S3C_SROM_BW S3C_MEMREG(0x00)
++
++#define S3C_SROM_BC0 S3C_MEMREG(0x04)
++#define S3C_SROM_BC1 S3C_MEMREG(0x08)
++#define S3C_SROM_BC2 S3C_MEMREG(0x0C)
++#define S3C_SROM_BC3 S3C_MEMREG(0x10)
++#define S3C_SROM_BC4 S3C_MEMREG(0x14)
++#define S3C_SROM_BC5 S3C_MEMREG(0x18)
++#endif
+ #endif /* __ASM_ARM_MEMREGS_H */
+diff --git a/include/asm-arm/arch-s3c2410/regs-onenand.h b/include/asm-arm/arch-s3c2410/regs-onenand.h
+new file mode 100644
+index 0000000..7803e29
+--- /dev/null
++++ b/include/asm-arm/arch-s3c2410/regs-onenand.h
+@@ -0,0 +1,358 @@
++#ifndef __ASM_ARCH_REGS_ONENAND_H
++#define __ASM_ARCH_REGS_ONENAND_H __FILE__
++
++/*
++ * DMA for OneNAND
++ */
++#define ONENAND_DMA_CON (0)
++#define ONENAND_DMA_BASE (0x75000000)
++#define ONENAND_DMA_TRANSFER_WORD (4)
++
++/*
++ * S3C6400 SFRs
++ */
++#define ONENAND_REG_MEM_CFG (0x000)
++#define ONENAND_REG_BURST_LEN (0x010)
++#define ONENAND_REG_MEM_RESET (0x020)
++#define ONENAND_REG_INT_ERR_STAT (0x030)
++#define ONENAND_REG_INT_ERR_MASK (0x040)
++#define ONENAND_REG_INT_ERR_ACK (0x050)
++#define ONENAND_REG_ECC_ERR_STAT (0x060)
++#define ONENAND_REG_MANUFACT_ID (0x070)
++#define ONENAND_REG_DEVICE_ID (0x080)
++#define ONENAND_REG_DATA_BUF_SIZE (0x090)
++#define ONENAND_REG_BOOT_BUF_SIZE (0x0A0)
++#define ONENAND_REG_BUF_AMOUNT (0x0B0)
++#define ONENAND_REG_TECH (0x0C0)
++#define ONENAND_REG_FBA_WIDTH (0x0D0)
++#define ONENAND_REG_FPA_WIDTH (0x0E0)
++#define ONENAND_REG_FSA_WIDTH (0x0F0)
++#define ONENAND_REG_REVISION (0x100)
++#define ONENAND_REG_DATARAM0 (0x110)
++#define ONENAND_REG_DATARAM1 (0x120)
++#define ONENAND_REG_SYNC_MODE (0x130)
++#define ONENAND_REG_TRANS_SPARE (0x140)
++#define ONENAND_REG_LOCK_BIT (0x150)
++#define ONENAND_REG_DBS_DFS_WIDTH (0x160)
++#define ONENAND_REG_PAGE_CNT (0x170)
++#define ONENAND_REG_ERR_PAGE_ADDR (0x180)
++#define ONENAND_REG_BURST_RD_LAT (0x190)
++#define ONENAND_REG_INT_PIN_ENABLE (0x1A0)
++#define ONENAND_REG_INT_MON_CYC (0x1B0)
++#define ONENAND_REG_ACC_CLOCK (0x1C0)
++#define ONENAND_REG_SLOW_RD_PATH (0x1D0)
++#define ONENAND_REG_ERR_BLK_ADDR (0x1E0)
++#define ONENAND_REG_FLASH_VER_ID (0x1F0)
++
++#if defined(CONFIG_CPU_S3C6410)
++#define ONENAND_REG_FLASH_AUX_CNTRL (0x300)
++#endif
++
++/*
++ * S3C6400 SFR values
++ */
++#define ONENAND_MEM_CFG_SYNC_READ (1 << 15)
++#define ONENAND_MEM_CFG_BRL_7 (7 << 12)
++#define ONENAND_MEM_CFG_BRL_6 (6 << 12)
++#define ONENAND_MEM_CFG_BRL_5 (5 << 12)
++#define ONENAND_MEM_CFG_BRL_4 (4 << 12)
++#define ONENAND_MEM_CFG_BRL_3 (3 << 12)
++#define ONENAND_MEM_CFG_BRL_10 (2 << 12)
++#define ONENAND_MEM_CFG_BRL_9 (1 << 12)
++#define ONENAND_MEM_CFG_BRL_8 (0 << 12)
++#define ONENAND_MEM_CFG_BRL_SHIFT (12)
++#define ONENAND_MEM_CFG_BL_1K (5 << 9)
++#define ONENAND_MEM_CFG_BL_32 (4 << 9)
++#define ONENAND_MEM_CFG_BL_16 (3 << 9)
++#define ONENAND_MEM_CFG_BL_8 (2 << 9)
++#define ONENAND_MEM_CFG_BL_4 (1 << 9)
++#define ONENAND_MEM_CFG_BL_CONT (0 << 9)
++#define ONENAND_MEM_CFG_BL_SHIFT (9)
++#define ONENAND_MEM_CFG_NO_ECC (1 << 8)
++#define ONENAND_MEM_CFG_RDY_HIGH (1 << 7)
++#define ONENAND_MEM_CFG_INT_HIGH (1 << 6)
++#define ONENAND_MEM_CFG_IOBE (1 << 5)
++#define ONENAND_MEM_CFG_RDY_CONF (1 << 4)
++#define ONENAND_MEM_CFG_HF (1 << 2)
++#define ONENAND_MEM_CFG_WM_SYNC (1 << 1)
++#define ONENAND_MEM_CFG_BWPS_UNLOCK (1 << 0)
++
++#define ONENAND_BURST_LEN_CONT (0)
++#define ONENAND_BURST_LEN_4 (4)
++#define ONENAND_BURST_LEN_8 (8)
++#define ONENAND_BURST_LEN_16 (16)
++
++#define ONENAND_MEM_RESET_WARM (0x1)
++#define ONENAND_MEM_RESET_COLD (0x2)
++#define ONENAND_MEM_RESET_HOT (0x3)
++
++#define ONENAND_INT_ERR_CACHE_OP_ERR (1 << 13)
++#define ONENAND_INT_ERR_RST_CMP (1 << 12)
++#define ONENAND_INT_ERR_RDY_ACT (1 << 11)
++#define ONENAND_INT_ERR_INT_ACT (1 << 10)
++#define ONENAND_INT_ERR_UNSUP_CMD (1 << 9)
++#define ONENAND_INT_ERR_LOCKED_BLK (1 << 8)
++#define ONENAND_INT_ERR_BLK_RW_CMP (1 << 7)
++#define ONENAND_INT_ERR_ERS_CMP (1 << 6)
++#define ONENAND_INT_ERR_PGM_CMP (1 << 5)
++#define ONENAND_INT_ERR_LOAD_CMP (1 << 4)
++#define ONENAND_INT_ERR_ERS_FAIL (1 << 3)
++#define ONENAND_INT_ERR_PGM_FAIL (1 << 2)
++#define ONENAND_INT_ERR_INT_TO (1 << 1)
++#define ONENAND_INT_ERR_LD_FAIL_ECC_ERR (1 << 0)
++
++#define ONENAND_DEVICE_DENSITY_SHIFT (4)
++#define ONENAND_DEVICE_IS_DDP (1 << 3)
++#define ONENAND_DEVICE_IS_DEMUX (1 << 2)
++#define ONENAND_DEVICE_VCC_MASK (0x3)
++#define ONENAND_DEVICE_DENSITY_128Mb (0x000)
++#define ONENAND_DEVICE_DENSITY_256Mb (0x001)
++#define ONENAND_DEVICE_DENSITY_512Mb (0x002)
++#define ONENAND_DEVICE_DENSITY_1Gb (0x003)
++#define ONENAND_DEVICE_DENSITY_2Gb (0x004)
++#define ONENAND_DEVICE_DENSITY_4Gb (0x005)
++
++#define ONENAND_SYNC_MODE_RM_SYNC (1 << 1)
++#define ONENAND_SYNC_MODE_WM_SYNC (1 << 0)
++
++#define ONENAND_TRANS_SPARE_TSRF_INC (1 << 0)
++
++#define ONENAND_INT_PIN_ENABLE (1 << 0)
++
++#define ONENAND_ACC_CLOCK_266_133 (0x5)
++#define ONENAND_ACC_CLOCK_166_83 (0x3)
++#define ONENAND_ACC_CLOCK_134_67 (0x3)
++#define ONENAND_ACC_CLOCK_100_50 (0x2)
++#define ONENAND_ACC_CLOCK_60_30 (0x2)
++
++#if defined(CONFIG_CPU_S3C6410)
++#define ONENAND_FLASH_AUX_WD_DISABLE (1 << 0)
++#endif
++
++/*
++ * Datain values for mapped commands
++ */
++#define ONENAND_DATAIN_ERASE_STATUS (0x00)
++#define ONENAND_DATAIN_ERASE_MULTI (0x01)
++#define ONENAND_DATAIN_ERASE_SINGLE (0x03)
++#define ONENAND_DATAIN_ERASE_VERIFY (0x15)
++#define ONENAND_DATAIN_UNLOCK_START (0x08)
++#define ONENAND_DATAIN_UNLOCK_END (0x09)
++#define ONENAND_DATAIN_LOCK_START (0x0A)
++#define ONENAND_DATAIN_LOCK_END (0x0B)
++#define ONENAND_DATAIN_LOCKTIGHT_START (0x0C)
++#define ONENAND_DATAIN_LOCKTIGHT_END (0x0D)
++#define ONENAND_DATAIN_UNLOCK_ALL (0x0E)
++#define ONENAND_DATAIN_COPYBACK_SRC (0x1000)
++#define ONENAND_DATAIN_COPYBACK_DST (0x2000)
++#define ONENAND_DATAIN_ACCESS_OTP (0x12)
++#define ONENAND_DATAIN_ACCESS_MAIN (0x14)
++#define ONENAND_DATAIN_PIPELINE_READ (0x4000)
++#define ONENAND_DATAIN_PIPELINE_WRITE (0x4100)
++#define ONENAND_DATAIN_RMW_LOAD (0x10)
++#define ONENAND_DATAIN_RMW_MODIFY (0x11)
++
++/*
++ * Device ID Register F001h (R)
++ */
++#define ONENAND_DEVICE_DENSITY_SHIFT (4)
++#define ONENAND_DEVICE_IS_DDP (1 << 3)
++#define ONENAND_DEVICE_IS_DEMUX (1 << 2)
++#define ONENAND_DEVICE_VCC_MASK (0x3)
++
++/*
++ * Version ID Register F002h (R)
++ */
++#define ONENAND_VERSION_PROCESS_SHIFT (8)
++
++/*
++ * Start Address 1 F100h (R/W)
++ */
++#define ONENAND_DDP_SHIFT (15)
++#define ONENAND_DDP_CHIP0 (0)
++#define ONENAND_DDP_CHIP1 (1 << ONENAND_DDP_SHIFT)
++
++/*
++ * Start Buffer Register F200h (R/W)
++ */
++#define ONENAND_BSA_MASK (0x03)
++#define ONENAND_BSA_SHIFT (8)
++#define ONENAND_BSA_BOOTRAM (0 << 2)
++#define ONENAND_BSA_DATARAM0 (2 << 2)
++#define ONENAND_BSA_DATARAM1 (3 << 2)
++#define ONENAND_BSC_MASK (0x03)
++
++/*
++ * Command Register F220h (R/W)
++ */
++#define ONENAND_CMD_READ (0x00)
++#define ONENAND_CMD_READOOB (0x13)
++#define ONENAND_CMD_PROG (0x80)
++#define ONENAND_CMD_PROGOOB (0x1A)
++#define ONENAND_CMD_UNLOCK (0x23)
++#define ONENAND_CMD_LOCK (0x2A)
++#define ONENAND_CMD_LOCK_TIGHT (0x2C)
++#define ONENAND_CMD_UNLOCK_ALL (0x27)
++#define ONENAND_CMD_ERASE (0x94)
++#define ONENAND_CMD_RESET (0xF0)
++#define ONENAND_CMD_OTP_ACCESS (0x65)
++#define ONENAND_CMD_READID (0x90)
++#define ONENAND_CMD_STARTADDR1 (0xE0)
++#define ONENAND_CMD_WP_STATUS (0xE1)
++#define ONENAND_CMD_PIPELINE_READ (0x01)
++#define ONENAND_CMD_PIPELINE_WRITE (0x81)
++
++/*
++ * Command Mapping for S3C6400 OneNAND Controller
++ */
++#define ONENAND_AHB_ADDR (0x20000000)
++#define ONENAND_DUMMY_ADDR (0x20400000)
++#define ONENAND_CMD_MAP_00 (0x0)
++#define ONENAND_CMD_MAP_01 (0x1)
++#define ONENAND_CMD_MAP_10 (0x2)
++#define ONENAND_CMD_MAP_11 (0x3)
++#define ONENAND_CMD_MAP_FF (0xF)
++
++#if defined(CONFIG_CPU_S3C6400)
++
++#define ONENAND_CMD_SHIFT (22)
++#define ONENAND_MEM_ADDR_MASK (0x3fffff)
++#define ONENAND_DDP_SHIFT_1Gb (19)
++#define ONENAND_DDP_SHIFT_2Gb (20)
++#define ONENAND_DDP_SHIFT_4Gb (21)
++
++#define ONENAND_FBA_SHIFT_128Mb (9)
++#define ONENAND_FBA_SHIFT_256Mb (9)
++#define ONENAND_FBA_SHIFT_512Mb (10)
++#define ONENAND_FBA_SHIFT_1Gb_DDP (10)
++#define ONENAND_FBA_SHIFT_1Gb (10)
++#define ONENAND_FBA_SHIFT_2Gb_DDP (10)
++#define ONENAND_FBA_SHIFT_2Gb (10)
++#define ONENAND_FBA_SHIFT_4Gb_DDP (10)
++#define ONENAND_FBA_SHIFT_4Gb (10)
++
++#define ONENAND_FPA_SHIFT_128Mb (3)
++#define ONENAND_FPA_SHIFT_256Mb (3)
++#define ONENAND_FPA_SHIFT_512Mb (4)
++#define ONENAND_FPA_SHIFT_1Gb_DDP (4)
++#define ONENAND_FPA_SHIFT_1Gb (4)
++#define ONENAND_FPA_SHIFT_2Gb_DDP (4)
++#define ONENAND_FPA_SHIFT_2Gb (4)
++#define ONENAND_FPA_SHIFT_4Gb_DDP (4)
++#define ONENAND_FPA_SHIFT_4Gb (4)
++
++#define ONENAND_FSA_SHIFT (2)
++#define ONENAND_FBA_MASK_128Mb (0xff)
++#define ONENAND_FBA_MASK_256Mb (0x1ff)
++#define ONENAND_FBA_MASK_512Mb (0x1ff)
++#define ONENAND_FBA_MASK_1Gb_DDP (0x1ff)
++#define ONENAND_FBA_MASK_1Gb (0x3ff)
++#define ONENAND_FBA_MASK_2Gb_DDP (0x3ff)
++#define ONENAND_FBA_MASK_2Gb (0x7ff)
++#define ONENAND_FBA_MASK_4Gb_DDP (0x7ff)
++#define ONENAND_FBA_MASK_4Gb (0xfff)
++#define ONENAND_FPA_MASK (0x3f)
++#define ONENAND_FSA_MASK (0x3)
++
++#elif defined(CONFIG_CPU_S3C6410)
++
++#define ONENAND_CMD_SHIFT (24)
++#define ONENAND_MEM_ADDR_MASK (0xffffff)
++#define ONENAND_DDP_SHIFT_1Gb (21)
++#define ONENAND_DDP_SHIFT_2Gb (22)
++#define ONENAND_DDP_SHIFT_4Gb (23)
++#define ONENAND_FBA_SHIFT (12)
++#define ONENAND_FPA_SHIFT (6)
++#define ONENAND_FSA_SHIFT (4)
++#define ONENAND_FBA_MASK_128Mb (0xff)
++#define ONENAND_FBA_MASK_256Mb (0x1ff)
++#define ONENAND_FBA_MASK_512Mb (0x1ff)
++#define ONENAND_FBA_MASK_1Gb_DDP (0x1ff)
++#define ONENAND_FBA_MASK_1Gb (0x3ff)
++#define ONENAND_FBA_MASK_2Gb_DDP (0x3ff)
++#define ONENAND_FBA_MASK_2Gb (0x7ff)
++#define ONENAND_FBA_MASK_4Gb_DDP (0x7ff)
++#define ONENAND_FBA_MASK_4Gb (0xfff)
++#define ONENAND_FPA_MASK (0x3f)
++#define ONENAND_FSA_MASK (0x3)
++
++#else
++
++/*
++ * Start Address 8 F107h (R/W)
++ */
++#define ONENAND_FPA_MASK (0x3f)
++#define ONENAND_FPA_SHIFT (2)
++#define ONENAND_FSA_MASK (0x03)
++
++#endif
++
++/*
++ * System Configuration 1 Register F221h (R, R/W)
++ */
++#define ONENAND_SYS_CFG1_SYNC_READ (1 << 15)
++#define ONENAND_SYS_CFG1_BRL_7 (7 << 12)
++#define ONENAND_SYS_CFG1_BRL_6 (6 << 12)
++#define ONENAND_SYS_CFG1_BRL_5 (5 << 12)
++#define ONENAND_SYS_CFG1_BRL_4 (4 << 12)
++#define ONENAND_SYS_CFG1_BRL_3 (3 << 12)
++#define ONENAND_SYS_CFG1_BRL_10 (2 << 12)
++#define ONENAND_SYS_CFG1_BRL_9 (1 << 12)
++#define ONENAND_SYS_CFG1_BRL_8 (0 << 12)
++#define ONENAND_SYS_CFG1_BRL_SHIFT (12)
++#define ONENAND_SYS_CFG1_BL_32 (4 << 9)
++#define ONENAND_SYS_CFG1_BL_16 (3 << 9)
++#define ONENAND_SYS_CFG1_BL_8 (2 << 9)
++#define ONENAND_SYS_CFG1_BL_4 (1 << 9)
++#define ONENAND_SYS_CFG1_BL_CONT (0 << 9)
++#define ONENAND_SYS_CFG1_BL_SHIFT (9)
++#define ONENAND_SYS_CFG1_NO_ECC (1 << 8)
++#define ONENAND_SYS_CFG1_RDY (1 << 7)
++#define ONENAND_SYS_CFG1_INT (1 << 6)
++#define ONENAND_SYS_CFG1_IOBE (1 << 5)
++#define ONENAND_SYS_CFG1_RDY_CONF (1 << 4)
++
++/*
++ * Controller Status Register F240h (R)
++ */
++#define ONENAND_CTRL_ONGO (1 << 15)
++#define ONENAND_CTRL_LOCK (1 << 14)
++#define ONENAND_CTRL_LOAD (1 << 13)
++#define ONENAND_CTRL_PROGRAM (1 << 12)
++#define ONENAND_CTRL_ERASE (1 << 11)
++#define ONENAND_CTRL_ERROR (1 << 10)
++#define ONENAND_CTRL_RSTB (1 << 7)
++#define ONENAND_CTRL_OTP_L (1 << 6)
++#define ONENAND_CTRL_OTP_BL (1 << 5)
++
++/*
++ * Interrupt Status Register F241h (R)
++ */
++#define ONENAND_INT_MASTER (1 << 15)
++#define ONENAND_INT_READ (1 << 7)
++#define ONENAND_INT_WRITE (1 << 6)
++#define ONENAND_INT_ERASE (1 << 5)
++#define ONENAND_INT_RESET (1 << 4)
++#define ONENAND_INT_CLEAR (0 << 0)
++
++/*
++ * NAND Flash Write Protection Status Register F24Eh (R)
++ */
++#define ONENAND_WP_US (1 << 2)
++#define ONENAND_WP_LS (1 << 1)
++#define ONENAND_WP_LTS (1 << 0)
++
++/*
++ * ECC Status Register FF00h (R)
++ */
++#define ONENAND_ECC_1BIT (1 << 0)
++#define ONENAND_ECC_1BIT_ALL (0x5555)
++#define ONENAND_ECC_2BIT (1 << 1)
++#define ONENAND_ECC_2BIT_ALL (0xAAAA)
++
++/*
++ * One-Time Programmable (OTP)
++ */
++#define ONENAND_OTP_LOCK_OFFSET (14)
++
++#endif /* __ASM_ARCH_REGS_ONENAND_H */
+diff --git a/include/asm-arm/arch-s3c2410/regs-pp.h b/include/asm-arm/arch-s3c2410/regs-pp.h
+new file mode 100644
+index 0000000..dc44526
+--- /dev/null
++++ b/include/asm-arm/arch-s3c2410/regs-pp.h
+@@ -0,0 +1,80 @@
++/* linux/include/asm-arm/arch-s3c2410/regs-hsmmc.h
++ *
++ * Copyright (c) 2004 Samsung Electronics
++ * http://www.samsung.com/
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * S3C HSMMC Controller
++*/
++
++#ifndef __ASM_ARCH_REGS_PP_H
++#define __ASM_ARCH_REGS_PP_H __FILE__
++
++#define S3C_VPP(x) ((x))
++
++#define S3C_VPP_MODE S3C_VPP(0x00)
++#define S3C_VPP_PRESCALE_RATIO S3C_VPP(0x04)
++#define S3C_VPP_PRESCALEIMGSIZE S3C_VPP(0x08)
++#define S3C_VPP_SRCIMGSIZE S3C_VPP(0x0C)
++#define S3C_VPP_MAINSCALE_H_RATIO S3C_VPP(0x10)
++#define S3C_VPP_MAINSCALE_V_RATIO S3C_VPP(0x14)
++#define S3C_VPP_DSTIMGSIZE S3C_VPP(0x18)
++#define S3C_VPP_PRESCALE_SHFACTOR S3C_VPP(0x1C)
++#define S3C_VPP_ADDRSTART_Y S3C_VPP(0x20)
++#define S3C_VPP_ADDRSTART_CB S3C_VPP(0x24)
++#define S3C_VPP_ADDRSTART_CR S3C_VPP(0x28)
++#define S3C_VPP_ADDRSTART_RGB S3C_VPP(0x2C)
++#define S3C_VPP_ADDREND_Y S3C_VPP(0x30)
++#define S3C_VPP_ADDREND_CB S3C_VPP(0x34)
++#define S3C_VPP_ADDREND_CR S3C_VPP(0x38)
++#define S3C_VPP_ADDREND_RGB S3C_VPP(0x3C)
++#define S3C_VPP_OFFSET_Y S3C_VPP(0x40)
++#define S3C_VPP_OFFSET_CB S3C_VPP(0x44)
++#define S3C_VPP_OFFSET_CR S3C_VPP(0x48)
++#define S3C_VPP_OFFSET_RGB S3C_VPP(0x4C)
++#define S3C_VPP_NXTADDRSTART_Y S3C_VPP(0x54)
++#define S3C_VPP_NXTADDRSTART_CB S3C_VPP(0x58)
++#define S3C_VPP_NXTADDRSTART_CR S3C_VPP(0x5C)
++#define S3C_VPP_NXTADDRSTART_RGB S3C_VPP(0x60)
++#define S3C_VPP_NXTADDREND_Y S3C_VPP(0x64)
++#define S3C_VPP_NXTADDREND_CB S3C_VPP(0x68)
++#define S3C_VPP_NXTADDREND_CR S3C_VPP(0x6C)
++#define S3C_VPP_NXTADDREND_RGB S3C_VPP(0x70)
++#define S3C_VPP_ADDRSTART_OCB S3C_VPP(0x74)
++#define S3C_VPP_ADDRSTART_OCR S3C_VPP(0x78)
++#define S3C_VPP_ADDREND_OCB S3C_VPP(0x7C)
++#define S3C_VPP_ADDREND_OCR S3C_VPP(0x80)
++#define S3C_VPP_OFFSET_OCB S3C_VPP(0x84)
++#define S3C_VPP_OFFSET_OCR S3C_VPP(0x88)
++#define S3C_VPP_NXTADDRSTART_OCB S3C_VPP(0x8C)
++#define S3C_VPP_NXTADDRSTART_OCR S3C_VPP(0x90)
++#define S3C_VPP_NXTADDREND_OCB S3C_VPP(0x94)
++#define S3C_VPP_NXTADDREND_OCR S3C_VPP(0x98)
++#define S3C_VPP_POSTENVID S3C_VPP(0x9C)
++#define S3C_VPP_MODE_2 S3C_VPP(0xA0)
++
++//POSTENVID
++#define S3C_POSTENVID_ENABLE (0x1<<31) // khlee
++#define S3C_POSTENVID_DISABLE (0x0<<31)
++
++//MODE Control register
++#define S3C_MODE_AUTOLOAD_ENABLE (0x1<<14)
++#define S3C_MODE_POST_INT_ENABLE (0x1<<7)
++#define S3C_MODE_POST_PENDING (0x1<<6)
++#define S3C_MODE_IRQ_LEVEL (0x1<<5)
++#define S3C_MODE_H_CLK_INPUT (0x0<<2)
++#define S3C_MODE_EXT_CLK_0_INPUT (0x1<<2)
++#define S3C_MODE_EXT_CLK_1_INPUT (0x3<<2)
++
++//MODE Control register 2
++#define S3C_MODE2_ADDR_CHANGE_ENABLE (0x0<<4)
++#define S3C_MODE2_ADDR_CHANGE_DISABLE (0x1<<4)
++#define S3C_MODE2_CHANGE_AT_FIELD_END (0x0<<3)
++#define S3C_MODE2_CHANGE_AT_FRAME_END (0x1<<3)
++#define S3C_MODE2_SOFTWARE_TRIGGER (0x0<<0)
++#define S3C_MODE2_HARDWARE_TRIGGER (0x1<<0)
++
++#endif /* __ASM_ARCH_REGS_HSMMC_H */
+diff --git a/include/asm-arm/arch-s3c2410/regs-s3c-clock.h b/include/asm-arm/arch-s3c2410/regs-s3c-clock.h
+new file mode 100644
+index 0000000..8e168e0
+--- /dev/null
++++ b/include/asm-arm/arch-s3c2410/regs-s3c-clock.h
+@@ -0,0 +1,13 @@
++#ifndef _REGS_S3C_CLOCK_H_
++#define _REGS_S3C_CLOCK_H_
++
++#if defined(CONFIG_PLAT_S3C24XX)
++#include <asm/arch/regs-s3c2443-clock.h>
++#elif defined(CONFIG_PLAT_S3C64XX)
++#include <asm/arch/regs-s3c6400-clock.h>
++#elif defined(CONFIG_PLAT_S5PC1XX)
++#include <asm/arch/regs-s5pc100-clock.h>
++#endif
++
++#endif
++
+diff --git a/include/asm-arm/arch-s3c2410/regs-s3c2443-clock.h b/include/asm-arm/arch-s3c2410/regs-s3c2443-clock.h
+index c141465..08f3c75 100644
+--- a/include/asm-arm/arch-s3c2410/regs-s3c2443-clock.h
++++ b/include/asm-arm/arch-s3c2410/regs-s3c2443-clock.h
+@@ -16,6 +16,16 @@
+
+ #define S3C2443_CLKREG(x) ((x) + S3C24XX_VA_CLKPWR)
+
++#if defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++#define S3C2443_PLLCON_MDIVSHIFT 14
++#define S3C2443_PLLCON_PDIVSHIFT 5
++#define S3C2443_PLLCON_SDIVSHIFT 0
++#define S3C2443_PLLCON_MDIVMASK ((1<<(1+(23-14)))-1)
++#define S3C2443_PLLCON_PDIVMASK ((1<<(1+(10-5)))-1)
++#define S3C2443_PLLCON_SDIVMASK (7)
++
++#define S3C2443_EPLLCON_SDIVMASK (7)
++#else
+ #define S3C2443_PLLCON_MDIVSHIFT 16
+ #define S3C2443_PLLCON_PDIVSHIFT 8
+ #define S3C2443_PLLCON_SDIVSHIFT 0
+@@ -23,8 +33,18 @@
+ #define S3C2443_PLLCON_PDIVMASK ((1<<(1+(9-8)))-1)
+ #define S3C2443_PLLCON_SDIVMASK (3)
+
++#define S3C2443_EPLLCON_SDIVMASK (3)
++#endif
++
++#define S3C2443_EPLLCON_MDIVSHIFT 16
++#define S3C2443_EPLLCON_PDIVSHIFT 8
++#define S3C2443_EPLLCON_SDIVSHIFT 0
++#define S3C2443_EPLLCON_MDIVMASK ((1<<(1+(23-16)))-1)
++#define S3C2443_EPLLCON_PDIVMASK ((1<<(1+(13-8)))-1)
++
+ #define S3C2443_MPLLCON S3C2443_CLKREG(0x10)
+ #define S3C2443_EPLLCON S3C2443_CLKREG(0x18)
++#define S3C2450_EPLLCON_K S3C2443_CLKREG(0x1C)
+ #define S3C2443_CLKSRC S3C2443_CLKREG(0x20)
+ #define S3C2443_CLKDIV0 S3C2443_CLKREG(0x24)
+ #define S3C2443_CLKDIV1 S3C2443_CLKREG(0x28)
+@@ -37,6 +57,11 @@
+ #define S3C2443_SYSID S3C2443_CLKREG(0x5C)
+ #define S3C2443_PWRCFG S3C2443_CLKREG(0x60)
+ #define S3C2443_RSTCON S3C2443_CLKREG(0x64)
++#define S3C2443_RSTSTAT S3C2443_CLKREG(0x68)
++#define S3C2443_PHYCTRL S3C2443_CLKREG(0x80)
++#define S3C2443_PHYPWR S3C2443_CLKREG(0x84)
++#define S3C2443_URSTCON S3C2443_CLKREG(0x88)
++#define S3C2443_UCLKCON S3C2443_CLKREG(0x8C)
+
+ #define S3C2443_SWRST_RESET (0x533c2443)
+
+@@ -73,11 +98,22 @@
+ #define S3C2443_CLKDIV0_ARMDIV_MASK (15<<9)
+ #define S3C2443_CLKDIV0_ARMDIV_SHIFT (9)
+ #define S3C2443_CLKDIV0_ARMDIV_1 (0<<9)
++
++#if defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++#define S3C2443_CLKDIV0_ARMDIV_1 (0<<9)
++#define S3C2443_CLKDIV0_ARMDIV_2 (1<<9)
++#define S3C2443_CLKDIV0_ARMDIV_3 (2<<9)
++#define S3C2443_CLKDIV0_ARMDIV_4 (3<<9)
++#define S3C2443_CLKDIV0_ARMDIV_6 (5<<9)
++#define S3C2443_CLKDIV0_ARMDIV_8 (7<<9)
++#else
+ #define S3C2443_CLKDIV0_ARMDIV_2 (8<<9)
+ #define S3C2443_CLKDIV0_ARMDIV_3 (2<<9)
+ #define S3C2443_CLKDIV0_ARMDIV_4 (9<<9)
+ #define S3C2443_CLKDIV0_ARMDIV_6 (10<<9)
+ #define S3C2443_CLKDIV0_ARMDIV_8 (11<<9)
++#endif
++
+ #define S3C2443_CLKDIV0_ARMDIV_12 (13<<9)
+ #define S3C2443_CLKDIV0_ARMDIV_16 (15<<9)
+
+@@ -112,6 +148,8 @@
+ #define S3C2443_HCLKCON_DMA3 (1<<3)
+ #define S3C2443_HCLKCON_DMA4 (1<<4)
+ #define S3C2443_HCLKCON_DMA5 (1<<5)
++#define S3C2443_HCLKCON_DMA6 (1<<6)
++#define S3C2443_HCLKCON_DMA7 (1<<7)
+ #define S3C2443_HCLKCON_CAMIF (1<<8)
+ #define S3C2443_HCLKCON_DISP (1<<9)
+ #define S3C2443_HCLKCON_LCDC (1<<10)
+@@ -164,8 +202,11 @@ s3c2443_get_mpll(unsigned int pllval, unsigned int baseclk)
+ mdiv &= S3C2443_PLLCON_MDIVMASK;
+ pdiv &= S3C2443_PLLCON_PDIVMASK;
+ sdiv &= S3C2443_PLLCON_SDIVMASK;
+-
++#if defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ fvco = (uint64_t)baseclk * (mdiv);
++#else
+ fvco = (uint64_t)baseclk * (2 * (mdiv + 8));
++#endif
+ do_div(fvco, pdiv << sdiv);
+
+ return (unsigned int)fvco;
+@@ -177,17 +218,21 @@ s3c2443_get_epll(unsigned int pllval, unsigned int baseclk)
+ unsigned int mdiv, pdiv, sdiv;
+ uint64_t fvco;
+
+- mdiv = pllval >> S3C2443_PLLCON_MDIVSHIFT;
+- pdiv = pllval >> S3C2443_PLLCON_PDIVSHIFT;
+- sdiv = pllval >> S3C2443_PLLCON_SDIVSHIFT;
++ mdiv = pllval >> S3C2443_EPLLCON_MDIVSHIFT;
++ pdiv = pllval >> S3C2443_EPLLCON_PDIVSHIFT;
++ sdiv = pllval >> S3C2443_EPLLCON_SDIVSHIFT;
+
+- mdiv &= S3C2443_PLLCON_MDIVMASK;
+- pdiv &= S3C2443_PLLCON_PDIVMASK;
+- sdiv &= S3C2443_PLLCON_SDIVMASK;
++ mdiv &= S3C2443_EPLLCON_MDIVMASK;
++ pdiv &= S3C2443_EPLLCON_PDIVMASK;
++ sdiv &= S3C2443_EPLLCON_SDIVMASK;
+
++#if defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++ fvco = (uint64_t)baseclk * (mdiv);
++ do_div(fvco, pdiv << sdiv);
++#else
+ fvco = (uint64_t)baseclk * (mdiv + 8);
+ do_div(fvco, (pdiv + 2) << sdiv);
+-
++#endif
+ return (unsigned int)fvco;
+ }
+
+diff --git a/include/asm-arm/arch-s3c2410/regs-s3c6400-clock.h b/include/asm-arm/arch-s3c2410/regs-s3c6400-clock.h
+new file mode 100644
+index 0000000..6226656
+--- /dev/null
++++ b/include/asm-arm/arch-s3c2410/regs-s3c6400-clock.h
+@@ -0,0 +1,268 @@
++/* linux/include/asm-arm/arch-s3c2410/regs-s3c6400-clock.h
++ *
++ * Copyright (c) 2003,2004,2005,2006 Simtec Electronics <linux@simtec.co.uk>
++ * http://armlinux.simtec.co.uk/
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * S3C6400 clock register definitions
++*/
++
++#ifndef __ASM_ARM_REGS_CLOCK
++#define __ASM_ARM_REGS_CLOCK "$Id: regs-s3c6400-clock.h,v 1.2 2008/03/20 07:12:45 ihlee215 Exp $"
++
++#define S3C_CLKREG(x) ((x) + S3C24XX_VA_SYSCON)
++
++#define S3C_PLLVAL(_m,_p,_s) ((_m) << 16 | ((_p) << 8) | ((_s)))
++
++#define S3C_APLL_LOCK S3C_CLKREG(0x00)
++#define S3C_MPLL_LOCK S3C_CLKREG(0x04)
++#define S3C_EPLL_LOCK S3C_CLKREG(0x08)
++#define S3C_APLL_CON S3C_CLKREG(0x0C)
++#define S3C_MPLL_CON S3C_CLKREG(0x10)
++#define S3C_EPLL_CON0 S3C_CLKREG(0x14)
++#define S3C_EPLL_CON1 S3C_CLKREG(0x18)
++#define S3C_CLK_SRC S3C_CLKREG(0x1C)
++#define S3C_CLK_SRC2 S3C_CLKREG(0x10C)
++#define S3C_CLK_DIV0 S3C_CLKREG(0x20)
++#define S3C_CLK_DIV1 S3C_CLKREG(0x24)
++#define S3C_CLK_DIV2 S3C_CLKREG(0x28)
++#define S3C_CLK_OUT S3C_CLKREG(0x2C)
++#define S3C_HCLK_GATE S3C_CLKREG(0x30)
++#define S3C_PCLK_GATE S3C_CLKREG(0x34)
++#define S3C_SCLK_GATE S3C_CLKREG(0x38)
++#define S3C_AHB_CON0 S3C_CLKREG(0x100)
++#define S3C_AHB_CON1 S3C_CLKREG(0x104)
++#define S3C_AHB_CON2 S3C_CLKREG(0x108)
++#define S3C_SDMA_SEL S3C_CLKREG(0x110)
++#define S3C_SW_RST S3C_CLKREG(0x114)
++#define S3C_SYS_ID S3C_CLKREG(0x118)
++#define S3C_MEM_SYS_CFG S3C_CLKREG(0x120)
++#define S3C_QOS_OVERRIDE0 S3C_CLKREG(0x124)
++#define S3C_QOS_OVERRIDE1 S3C_CLKREG(0x128)
++#define S3C_MEM_CFG_STAT S3C_CLKREG(0x12C)
++#define S3C_PWR_CFG S3C_CLKREG(0x804)
++#define S3C_EINT_MASK S3C_CLKREG(0x808)
++#define S3C_NORMAL_CFG S3C_CLKREG(0x810)
++#define S3C_STOP_CFG S3C_CLKREG(0x814)
++#define S3C_SLEEP_CFG S3C_CLKREG(0x818)
++#define S3C_OSC_FREQ S3C_CLKREG(0x820)
++#define S3C_OSC_STABLE S3C_CLKREG(0x824)
++#define S3C_PWR_STABLE S3C_CLKREG(0x828)
++#define S3C_FPC_STABLE S3C_CLKREG(0x82C)
++#define S3C_MTC_STABLE S3C_CLKREG(0x830)
++#define S3C_OTHERS S3C_CLKREG(0x900)
++#define S3C_RST_STAT S3C_CLKREG(0x904)
++#define S3C_WAKEUP_STAT S3C_CLKREG(0x908)
++#define S3C_BLK_PWR_STAT S3C_CLKREG(0x90C)
++#define S3C_INFORM0 S3C_CLKREG(0xA00)
++#define S3C_INFORM1 S3C_CLKREG(0xA04)
++#define S3C_INFORM2 S3C_CLKREG(0xA08)
++#define S3C_INFORM3 S3C_CLKREG(0xA0C)
++#define S3C_INFORM4 S3C_CLKREG(0xA10)
++#define S3C_INFORM5 S3C_CLKREG(0xA14)
++#define S3C_INFORM6 S3C_CLKREG(0xA18)
++#define S3C_INFORM7 S3C_CLKREG(0xA1C)
++
++/* Block power status register bit field */
++#define S3C_BLK_ETM (1<<6)
++#define S3C_BLK_S (1<<5)
++#define S3C_BLK_F (1<<4)
++#define S3C_BLK_P (1<<3)
++#define S3C_BLK_I (1<<2)
++#define S3C_BLK_V (1<<1)
++#define S3C_BLK_TOP (1<<0)
++
++/* Power gating registers */
++#define S3C_PWRGATE_IROM (1<<30)
++#define S3C_PWRGATE_DOMAIN_ETM (1<<16)
++#define S3C_PWRGATE_DOMAIN_S (1<<15)
++#define S3C_PWRGATE_DOMAIN_F (1<<14)
++#define S3C_PWRGATE_DOMAIN_P (1<<13)
++#define S3C_PWRGATE_DOMAIN_I (1<<12)
++#define S3C_PWRGATE_DOMAIN_V (1<<9)
++
++/* MTC stable registers */
++#define S3C_STABLE_DOMAIN_ETM (0xF<<24)
++#define S3C_STABLE_DOMAIN_S (0xF<<20)
++#define S3C_STABLE_DOMAIN_F (0xF<<16)
++#define S3C_STABLE_DOMAIN_P (0xF<<12)
++#define S3C_STABLE_DOMAIN_I (0xF<<8)
++#define S3C_STABLE_DOMAIN_V (0xF<<4)
++#define S3C_STABLE_DOMAIN_TOP (0xF<<0)
++
++/* HCLK GATE Registers */
++#define S3C_CLKCON_HCLK_BUS (1<<30)
++#define S3C_CLKCON_HCLK_SECUR (1<<29)
++#define S3C_CLKCON_HCLK_SDMA1 (1<<28)
++#define S3C_CLKCON_HCLK_SDMA2 (1<<27)
++#define S3C_CLKCON_HCLK_UHOST (1<<26)
++#define S3C_CLKCON_HCLK_IROM (1<<25)
++#define S3C_CLKCON_HCLK_DDR1 (1<<24)
++#define S3C_CLKCON_HCLK_DDR0 (1<<23)
++#define S3C_CLKCON_HCLK_MEM1 (1<<22)
++#define S3C_CLKCON_HCLK_MEM0 (1<<21)
++#define S3C_CLKCON_HCLK_USB (1<<20)
++#define S3C_CLKCON_HCLK_HSMMC2 (1<<19)
++#define S3C_CLKCON_HCLK_HSMMC1 (1<<18)
++#define S3C_CLKCON_HCLK_HSMMC0 (1<<17)
++#define S3C_CLKCON_HCLK_MDP (1<<16)
++#define S3C_CLKCON_HCLK_DHOST (1<<15)
++#define S3C_CLKCON_HCLK_IHOST (1<<14)
++#define S3C_CLKCON_HCLK_DMA1 (1<<13)
++#define S3C_CLKCON_HCLK_DMA0 (1<<12)
++#define S3C_CLKCON_HCLK_JPEG (1<<11)
++#define S3C_CLKCON_HCLK_CAMIF (1<<10)
++#define S3C_CLKCON_HCLK_SCALER (1<<9)
++#define S3C_CLKCON_HCLK_2D (1<<8)
++#define S3C_CLKCON_HCLK_TV (1<<7)
++#define S3C_CLKCON_HCLK_POST0 (1<<5)
++#define S3C_CLKCON_HCLK_ROT (1<<4)
++#define S3C_CLKCON_HCLK_LCD (1<<3)
++#define S3C_CLKCON_HCLK_TZIC (1<<2)
++#define S3C_CLKCON_HCLK_INTC (1<<1)
++#define S3C_CLKCON_HCLK_MFC (1<<0)
++
++/* PCLK GATE Registers */
++#define S3C_CLKCON_PCLK_IIC1 (1<<27)
++#define S3C_CLKCON_PCLK_IIS2 (1<<26)
++#define S3C_CLKCON_PCLK_SKEY (1<<24)
++#define S3C_CLKCON_PCLK_CHIPID (1<<23)
++#define S3C_CLKCON_PCLK_SPI1 (1<<22)
++#define S3C_CLKCON_PCLK_SPI0 (1<<21)
++#define S3C_CLKCON_PCLK_HSIRX (1<<20)
++#define S3C_CLKCON_PCLK_HSITX (1<<19)
++#define S3C_CLKCON_PCLK_GPIO (1<<18)
++#define S3C_CLKCON_PCLK_IIC (1<<17)
++#define S3C_CLKCON_PCLK_IIS1 (1<<16)
++#define S3C_CLKCON_PCLK_IIS0 (1<<15)
++#define S3C_CLKCON_PCLK_AC97 (1<<14)
++#define S3C_CLKCON_PCLK_TZPC (1<<13)
++#define S3C_CLKCON_PCLK_TSADC (1<<12)
++#define S3C_CLKCON_PCLK_KEYPAD (1<<11)
++#define S3C_CLKCON_PCLK_IRDA (1<<10)
++#define S3C_CLKCON_PCLK_PCM1 (1<<9)
++#define S3C_CLKCON_PCLK_PCM0 (1<<8)
++#define S3C_CLKCON_PCLK_PWM (1<<7)
++#define S3C_CLKCON_PCLK_RTC (1<<6)
++#define S3C_CLKCON_PCLK_WDT (1<<5)
++#define S3C_CLKCON_PCLK_UART3 (1<<4)
++#define S3C_CLKCON_PCLK_UART2 (1<<3)
++#define S3C_CLKCON_PCLK_UART1 (1<<2)
++#define S3C_CLKCON_PCLK_UART0 (1<<1)
++#define S3C_CLKCON_PCLK_MFC (1<<0)
++
++/* SCLK GATE Registers */
++#define S3C_CLKCON_SCLK_UHOST (1<<30)
++#define S3C_CLKCON_SCLK_MMC2_48 (1<<29)
++#define S3C_CLKCON_SCLK_MMC1_48 (1<<28)
++#define S3C_CLKCON_SCLK_MMC0_48 (1<<27)
++#define S3C_CLKCON_SCLK_MMC2 (1<<26)
++#define S3C_CLKCON_SCLK_MMC1 (1<<25)
++#define S3C_CLKCON_SCLK_MMC0 (1<<24)
++#define S3C_CLKCON_SCLK_SPI1_48 (1<<23)
++#define S3C_CLKCON_SCLK_SPI0_48 (1<<22)
++#define S3C_CLKCON_SCLK_SPI1 (1<<21)
++#define S3C_CLKCON_SCLK_SPI0 (1<<20)
++#define S3C_CLKCON_SCLK_DAC27 (1<<19)
++#define S3C_CLKCON_SCLK_TV27 (1<<18)
++#define S3C_CLKCON_SCLK_SCALER27 (1<<17)
++#define S3C_CLKCON_SCLK_SCALER (1<<16)
++#define S3C_CLKCON_SCLK_LCD27 (1<<15)
++#define S3C_CLKCON_SCLK_LCD (1<<14)
++#if defined(CONFIG_CPU_S3C6410)
++#define S3C_CLKCON_SCLK_FIMC (1<<13)
++#define S3C_CLKCON_SCLK_POST0_27 (1<<12)
++#define S3C_CLKCON_SCLK_AUDIO2 (1<<11)
++#else
++#define S3C_CLKCON_SCLK_POST1_27 (1<<13)
++#define S3C_CLKCON_SCLK_POST0_27 (1<<12)
++#define S3C_CLKCON_SCLK_POST1 (1<<11)
++#endif
++#define S3C_CLKCON_SCLK_POST0 (1<<10)
++#define S3C_CLKCON_SCLK_AUDIO1 (1<<9)
++#define S3C_CLKCON_SCLK_AUDIO0 (1<<8)
++#define S3C_CLKCON_SCLK_SECUR (1<<7)
++#define S3C_CLKCON_SCLK_IRDA (1<<6)
++#define S3C_CLKCON_SCLK_UART (1<<5)
++#define S3C_CLKCON_SCLK_ONENAND (1<<4)
++#define S3C_CLKCON_SCLK_MFC (1<<3)
++#define S3C_CLKCON_SCLK_CAM (1<<2)
++#define S3C_CLKCON_SCLK_JPEG (1<<1)
++
++/*OTHERS Resgister */
++#define S3C_OTHERS_USB_SIG_MASK (1<<16)
++
++/*CLK SRC BITS*/
++#define S3C_CLKSRC_APLL_CLKSEL (1<<0)
++#define S3C_CLKSRC_MPLL_CLKSEL (1<<1)
++#define S3C_CLKSRC_EPLL_CLKSEL (1<<2)
++#define S3C_CLKSRC_UHOST_EPLL (1<<5)
++#define S3C_CLKSRC_UHOST_MASK (3<<5)
++#if 0
++#define S3C_CLKSRC_CAM_CLKSEL_HCLK (1<<9)
++#define S3C_CLKSRC_I2SDIV_CLKSRC (1<<10)
++#define S3C_CLKSRC_I2SCLK_CLKSEL (1<<11)
++#define S3C_CLKSRC_UARTDIV_CLKSRC (1<<12)
++#define S3C_CLKSRC_SPIDIV_CLKSRC (1<<13)
++#endif
++
++/*CLKDIV1 Reg bits */
++#define S3C_CLKDIV1_USBDIV2 (1<<20)
++
++#define S3C_CLKDIV1_HSMMCDIV2_MASK (0xf<<8)
++#define S3C_CLKDIV1_HSMMCDIV2_SHIFT (8)
++#define S3C_CLKDIV1_HSMMCDIV1_MASK (0xf<<4)
++#define S3C_CLKDIV1_HSMMCDIV1_SHIFT (4)
++#define S3C_CLKDIV1_HSMMCDIV0_MASK (0xf<<0)
++#define S3C_CLKDIV1_HSMMCDIV0_SHIFT (0)
++#define S3C_CLKDIV1_HSMMCDIV_MASK (0xfff<<0)
++#define S3C_CLKDIV1_HSMMCDIV_SHIFT (0)
++
++/*EPLL_CON0 Reg bits */
++#define S3C_EPLL_EN (1<<31)
++#define S3C_EPLLVAL(_m,_p,_s) ((_m) << 16 | ((_p) << 8) | ((_s)))
++
++
++
++#define S3C_CLKDIVN_APLL_MASK (0xF<<0)
++#define S3C_CLKDIVN_MPLL_MASK (0x1<<4)
++#define S3C_CLKDIVN_HCLK_MASK (0x1<<8)
++#define S3C_CLKDIVN_HCLKX2_MASK (0x7<<9)
++#define S3C_CLKDIVN_PCLK_MASK (0xF<<12)
++#define S3C_CLKDIVN_UHOST_MASK (0xF<<20)
++
++static inline unsigned int
++s3c6400_get_pll(unsigned long pllval, unsigned long baseclk)
++{
++ unsigned long mdiv, pdiv, sdiv;
++
++ /* To prevent overflow in calculation -JaeCheol Lee */
++ baseclk /= 1000;
++
++ mdiv = (pllval & (0x3ff << 16))>>16;
++ pdiv = (pllval & (0x3f << 8))>>8;
++ sdiv = (pllval & (0x03 << 0))>>0;
++ return (baseclk * (mdiv)) / ((pdiv) << sdiv)*1000;
++}
++
++static inline unsigned int
++s3c6400_get_epll(unsigned long baseclk)
++{
++ unsigned long pllval, mdiv, pdiv, sdiv, kdiv;
++
++ /* To prevent overflow in calculation -JaeCheol Lee */
++ baseclk /= 1000;
++
++ pllval = readl(S3C_EPLL_CON0);
++ mdiv = (pllval & (0x3ff << 16))>>16;
++ pdiv = (pllval & (0x3f << 8))>>8;
++ sdiv = (pllval & (0x03 << 0))>>0;
++ kdiv = readl(S3C_EPLL_CON1) & (0xffff);
++
++ return (baseclk * (mdiv+kdiv/65536) / (pdiv << sdiv))*1000;
++}
++
++#endif /* __ASM_ARM_REGS_CLOCK */
+diff --git a/include/asm-arm/arch-s3c2410/regs-s5pc100-clock.h b/include/asm-arm/arch-s3c2410/regs-s5pc100-clock.h
+new file mode 100644
+index 0000000..e2373be
+--- /dev/null
++++ b/include/asm-arm/arch-s3c2410/regs-s5pc100-clock.h
+@@ -0,0 +1,323 @@
++/* linux/include/asm-arm/arch-s3c2410/regs-s3c6400-clock.h
++ *
++ * Copyright (c) 2003,2004,2005,2006 Simtec Electronics <linux@simtec.co.uk>
++ * http://armlinux.simtec.co.uk/
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * S3C6400 clock register definitions
++*/
++
++#ifndef __ASM_ARM_REGS_CLOCK
++#define __ASM_ARM_REGS_CLOCK
++
++#define S5P_CLKREG(x) ((x) + S3C24XX_VA_SYSCON)
++
++#define S5P_PLLVAL(_m,_p,_s) ((_m) << 16 | ((_p) << 8) | ((_s)))
++
++#define S5P_APLL_LOCK S5P_CLKREG(0x00)
++#define S5P_MPLL_LOCK S5P_CLKREG(0x04)
++#define S5P_EPLL_LOCK S5P_CLKREG(0x08)
++#define S5P_HPLL_LOCK S5P_CLKREG(0x0C)
++
++#define S5P_APLL_CON S5P_CLKREG(0x100)
++#define S5P_MPLL_CON S5P_CLKREG(0x104)
++#define S5P_EPLL_CON S5P_CLKREG(0x108)
++#define S5P_HPLL_CON S5P_CLKREG(0x10C)
++
++#define S5P_CLK_SRC0 S5P_CLKREG(0x200)
++#define S5P_CLK_SRC1 S5P_CLKREG(0x204)
++#define S5P_CLK_SRC2 S5P_CLKREG(0x208)
++#define S5P_CLK_SRC3 S5P_CLKREG(0x20C)
++
++#define S5P_CLK_DIV0 S5P_CLKREG(0x300)
++#define S5P_CLK_DIV1 S5P_CLKREG(0x304)
++#define S5P_CLK_DIV2 S5P_CLKREG(0x308)
++#define S5P_CLK_DIV3 S5P_CLKREG(0x30C)
++#define S5P_CLK_DIV4 S5P_CLKREG(0x310)
++#define S5P_CLK_DIV5 S5P_CLKREG(0x314)
++
++#define S5P_CLK_OUT S5P_CLKREG(0x400)
++
++#define S5P_CLK_GATE_D0_0 S5P_CLKREG(0x500)
++#define S5P_CLK_GATE_D0_1 S5P_CLKREG(0x504)
++#define S5P_CLK_GATE_D0_2 S5P_CLKREG(0x508)
++
++#define S5P_CLK_GATE_D1_0 S5P_CLKREG(0x520)
++#define S5P_CLK_GATE_D1_1 S5P_CLKREG(0x524)
++#define S5P_CLK_GATE_D1_2 S5P_CLKREG(0x528)
++#define S5P_CLK_GATE_D1_3 S5P_CLKREG(0x52C)
++#define S5P_CLK_GATE_D1_4 S5P_CLKREG(0x530)
++#define S5P_CLK_GATE_D1_5 S5P_CLKREG(0x534)
++
++#define S5P_CLK_GATE_D2_0 S5P_CLKREG(0x540)
++
++#define S5P_SCLK_GATE_0 S5P_CLKREG(0x560)
++#define S5P_SCLK_GATE_1 S5P_CLKREG(0x564)
++
++#if 0
++#define S5P_AHB_CON0 S5P_CLKREG(0x100)
++#define S5P_AHB_CON1 S5P_CLKREG(0x104)
++#define S5P_AHB_CON2 S5P_CLKREG(0x108)
++#define S5P_SDMA_SEL S5P_CLKREG(0x110)
++#define S5P_SW_RST S5P_CLKREG(0x114)
++#define S5P_SYS_ID S5P_CLKREG(0x118)
++#define S5P_MEM_SYS_CFG S5P_CLKREG(0x120)
++#define S5P_QOS_OVERRIDE0 S5P_CLKREG(0x124)
++#define S5P_QOS_OVERRIDE1 S5P_CLKREG(0x128)
++#define S5P_MEM_CFG_STAT S5P_CLKREG(0x12C)
++#define S5P_PWR_CFG S5P_CLKREG(0x804)
++#define S5P_EINT_MASK S5P_CLKREG(0x808)
++#define S5P_NORMAL_CFG S5P_CLKREG(0x810)
++#define S5P_STOP_CFG S5P_CLKREG(0x814)
++#define S5P_SLEEP_CFG S5P_CLKREG(0x818)
++#define S5P_OSC_FREQ S5P_CLKREG(0x820)
++#define S5P_OSC_STABLE S5P_CLKREG(0x824)
++#define S5P_PWR_STABLE S5P_CLKREG(0x828)
++#define S5P_FPC_STABLE S5P_CLKREG(0x82C)
++#define S5P_MTC_STABLE S5P_CLKREG(0x830)
++#define S5P_OTHERS S5P_CLKREG(0x900)
++#define S5P_RST_STAT S5P_CLKREG(0x904)
++#define S5P_WAKEUP_STAT S5P_CLKREG(0x908)
++#define S5P_BLK_PWR_STAT S5P_CLKREG(0x90C)
++#define S5P_INFORM0 S5P_CLKREG(0xA00)
++#define S5P_INFORM1 S5P_CLKREG(0xA04)
++#define S5P_INFORM2 S5P_CLKREG(0xA08)
++#define S5P_INFORM3 S5P_CLKREG(0xA0C)
++#define S5P_INFORM4 S5P_CLKREG(0xA10)
++#define S5P_INFORM5 S5P_CLKREG(0xA14)
++#define S5P_INFORM6 S5P_CLKREG(0xA18)
++#define S5P_INFORM7 S5P_CLKREG(0xA1C)
++
++/* Block power status register bit field */
++#define S5P_BLK_ETM (1<<6)
++#define S5P_BLK_S (1<<5)
++#define S5P_BLK_F (1<<4)
++#define S5P_BLK_P (1<<3)
++#define S5P_BLK_I (1<<2)
++#define S5P_BLK_V (1<<1)
++#define S5P_BLK_TOP (1<<0)
++
++/* Power gating registers */
++#define S5P_PWRGATE_IROM (1<<30)
++#define S5P_PWRGATE_DOMAIN_ETM (1<<16)
++#define S5P_PWRGATE_DOMAIN_S (1<<15)
++#define S5P_PWRGATE_DOMAIN_F (1<<14)
++#define S5P_PWRGATE_DOMAIN_P (1<<13)
++#define S5P_PWRGATE_DOMAIN_I (1<<12)
++#define S5P_PWRGATE_DOMAIN_V (1<<9)
++
++/* MTC stable registers */
++#define S5P_STABLE_DOMAIN_ETM (0xF<<24)
++#define S5P_STABLE_DOMAIN_S (0xF<<20)
++#define S5P_STABLE_DOMAIN_F (0xF<<16)
++#define S5P_STABLE_DOMAIN_P (0xF<<12)
++#define S5P_STABLE_DOMAIN_I (0xF<<8)
++#define S5P_STABLE_DOMAIN_V (0xF<<4)
++#define S5P_STABLE_DOMAIN_TOP (0xF<<0)
++
++/* HCLK GATE Registers */
++#define S5P_CLKCON_HCLK_BUS (1<<30)
++#define S5P_CLKCON_HCLK_SECUR (1<<29)
++#define S5P_CLKCON_HCLK_SDMA1 (1<<28)
++#define S5P_CLKCON_HCLK_SDMA2 (1<<27)
++#define S5P_CLKCON_HCLK_UHOST (1<<26)
++#define S5P_CLKCON_HCLK_IROM (1<<25)
++#define S5P_CLKCON_HCLK_DDR1 (1<<24)
++#define S5P_CLKCON_HCLK_DDR0 (1<<23)
++#define S5P_CLKCON_HCLK_MEM1 (1<<22)
++#define S5P_CLKCON_HCLK_MEM0 (1<<21)
++#define S5P_CLKCON_HCLK_USB (1<<20)
++#define S5P_CLKCON_HCLK_HSMMC2 (1<<19)
++#define S5P_CLKCON_HCLK_HSMMC1 (1<<18)
++#define S5P_CLKCON_HCLK_HSMMC0 (1<<17)
++#define S5P_CLKCON_HCLK_MDP (1<<16)
++#define S5P_CLKCON_HCLK_DHOST (1<<15)
++#define S5P_CLKCON_HCLK_IHOST (1<<14)
++#define S5P_CLKCON_HCLK_DMA1 (1<<13)
++#define S5P_CLKCON_HCLK_DMA0 (1<<12)
++#define S5P_CLKCON_HCLK_JPEG (1<<11)
++#define S5P_CLKCON_HCLK_CAMIF (1<<10)
++#define S5P_CLKCON_HCLK_SCALER (1<<9)
++#define S5P_CLKCON_HCLK_2D (1<<8)
++#define S5P_CLKCON_HCLK_TV (1<<7)
++#define S5P_CLKCON_HCLK_POST0 (1<<5)
++#define S5P_CLKCON_HCLK_ROT (1<<4)
++#define S5P_CLKCON_HCLK_LCD (1<<3)
++#define S5P_CLKCON_HCLK_TZIC (1<<2)
++#define S5P_CLKCON_HCLK_INTC (1<<1)
++#define S5P_CLKCON_HCLK_MFC (1<<0)
++
++/* PCLK GATE Registers */
++#define S5P_CLKCON_PCLK_IIC1 (1<<27)
++#define S5P_CLKCON_PCLK_IIS2 (1<<26)
++#define S5P_CLKCON_PCLK_SKEY (1<<24)
++#define S5P_CLKCON_PCLK_CHIPID (1<<23)
++#define S5P_CLKCON_PCLK_SPI1 (1<<22)
++#define S5P_CLKCON_PCLK_SPI0 (1<<21)
++#define S5P_CLKCON_PCLK_HSIRX (1<<20)
++#define S5P_CLKCON_PCLK_HSITX (1<<19)
++#define S5P_CLKCON_PCLK_GPIO (1<<18)
++#define S5P_CLKCON_PCLK_IIC (1<<17)
++#define S5P_CLKCON_PCLK_IIS1 (1<<16)
++#define S5P_CLKCON_PCLK_IIS0 (1<<15)
++#define S5P_CLKCON_PCLK_AC97 (1<<14)
++#define S5P_CLKCON_PCLK_TZPC (1<<13)
++#define S5P_CLKCON_PCLK_TSADC (1<<12)
++#define S5P_CLKCON_PCLK_KEYPAD (1<<11)
++#define S5P_CLKCON_PCLK_IRDA (1<<10)
++#define S5P_CLKCON_PCLK_PCM1 (1<<9)
++#define S5P_CLKCON_PCLK_PCM0 (1<<8)
++#define S5P_CLKCON_PCLK_PWM (1<<7)
++#define S5P_CLKCON_PCLK_RTC (1<<6)
++#define S5P_CLKCON_PCLK_WDT (1<<5)
++#define S5P_CLKCON_PCLK_UART3 (1<<4)
++#define S5P_CLKCON_PCLK_UART2 (1<<3)
++#define S5P_CLKCON_PCLK_UART1 (1<<2)
++#define S5P_CLKCON_PCLK_UART0 (1<<1)
++#define S5P_CLKCON_PCLK_MFC (1<<0)
++
++/* SCLK GATE Registers */
++#define S5P_CLKCON_SCLK_UHOST (1<<30)
++#define S5P_CLKCON_SCLK_MMC2_48 (1<<29)
++#define S5P_CLKCON_SCLK_MMC1_48 (1<<28)
++#define S5P_CLKCON_SCLK_MMC0_48 (1<<27)
++#define S5P_CLKCON_SCLK_MMC2 (1<<26)
++#define S5P_CLKCON_SCLK_MMC1 (1<<25)
++#define S5P_CLKCON_SCLK_MMC0 (1<<24)
++#define S5P_CLKCON_SCLK_SPI1_48 (1<<23)
++#define S5P_CLKCON_SCLK_SPI0_48 (1<<22)
++#define S5P_CLKCON_SCLK_SPI1 (1<<21)
++#define S5P_CLKCON_SCLK_SPI0 (1<<20)
++#define S5P_CLKCON_SCLK_DAC27 (1<<19)
++#define S5P_CLKCON_SCLK_TV27 (1<<18)
++#define S5P_CLKCON_SCLK_SCALER27 (1<<17)
++#define S5P_CLKCON_SCLK_SCALER (1<<16)
++#define S5P_CLKCON_SCLK_LCD27 (1<<15)
++#define S5P_CLKCON_SCLK_LCD (1<<14)
++#if defined(CONFIG_CPU_S3C6410)
++#define S5P_CLKCON_SCLK_FIMC (1<<13)
++#define S5P_CLKCON_SCLK_POST0_27 (1<<12)
++#define S5P_CLKCON_SCLK_AUDIO2 (1<<11)
++#else
++#define S5P_CLKCON_SCLK_POST1_27 (1<<13)
++#define S5P_CLKCON_SCLK_POST0_27 (1<<12)
++#define S5P_CLKCON_SCLK_POST1 (1<<11)
++#endif
++#define S5P_CLKCON_SCLK_POST0 (1<<10)
++#define S5P_CLKCON_SCLK_AUDIO1 (1<<9)
++#define S5P_CLKCON_SCLK_AUDIO0 (1<<8)
++#define S5P_CLKCON_SCLK_SECUR (1<<7)
++#define S5P_CLKCON_SCLK_IRDA (1<<6)
++#define S5P_CLKCON_SCLK_UART (1<<5)
++#define S5P_CLKCON_SCLK_ONENAND (1<<4)
++#define S5P_CLKCON_SCLK_MFC (1<<3)
++#define S5P_CLKCON_SCLK_CAM (1<<2)
++#define S5P_CLKCON_SCLK_JPEG (1<<1)
++
++/*OTHERS Resgister */
++#define S5P_OTHERS_USB_SIG_MASK (1<<16)
++
++/*CLK SRC BITS*/
++#define S5P_CLKSRC_APLL_CLKSEL (1<<0)
++#define S5P_CLKSRC_MPLL_CLKSEL (1<<1)
++#define S5P_CLKSRC_EPLL_CLKSEL (1<<2)
++#define S5P_CLKSRC_UHOST_EPLL (1<<5)
++#define S5P_CLKSRC_UHOST_MASK (3<<5)
++#if 0
++#define S5P_CLKSRC_CAM_CLKSEL_HCLK (1<<9)
++#define S5P_CLKSRC_I2SDIV_CLKSRC (1<<10)
++#define S5P_CLKSRC_I2SCLK_CLKSEL (1<<11)
++#define S5P_CLKSRC_UARTDIV_CLKSRC (1<<12)
++#define S5P_CLKSRC_SPIDIV_CLKSRC (1<<13)
++#endif
++
++/*CLKDIV1 Reg bits */
++#define S5P_CLKDIV1_USBDIV2 (1<<20)
++
++#define S5P_CLKDIV1_HSMMCDIV2_MASK (0xf<<8)
++#define S5P_CLKDIV1_HSMMCDIV2_SHIFT (8)
++#define S5P_CLKDIV1_HSMMCDIV1_MASK (0xf<<4)
++#define S5P_CLKDIV1_HSMMCDIV1_SHIFT (4)
++#define S5P_CLKDIV1_HSMMCDIV0_MASK (0xf<<0)
++#define S5P_CLKDIV1_HSMMCDIV0_SHIFT (0)
++#define S5P_CLKDIV1_HSMMCDIV_MASK (0xfff<<0)
++#define S5P_CLKDIV1_HSMMCDIV_SHIFT (0)
++
++/*EPLL_CON0 Reg bits */
++#define S5P_EPLL_EN (1<<31)
++#define S5P_EPLLVAL(_m,_p,_s) ((_m) << 16 | ((_p) << 8) | ((_s)))
++
++
++
++#define S5P_CLKDIVN_APLL_MASK (0xF<<0)
++#define S5P_CLKDIVN_MPLL_MASK (0x1<<4)
++#define S5P_CLKDIVN_HCLK_MASK (0x1<<8)
++#define S5P_CLKDIVN_HCLKX2_MASK (0x7<<9)
++#define S5P_CLKDIVN_PCLK_MASK (0xF<<12)
++#define S5P_CLKDIVN_UHOST_MASK (0xF<<20)
++
++#endif
++
++#define S5P_CLKDIV0_APLL_MASK (0x1<<0)
++#define S5P_CLKDIV0_ARM_MASK (0x7<<4)
++#define S5P_CLKDIV0_D0_MASK (0x7<<8)
++#define S5P_CLKDIV0_PCLKD0_MASK (0x7<<12)
++#define S5P_CLKDIV0_SECSS_MASK (0x7<<16)
++
++#define S5P_CLKDIV1_AM_MASK (0x7<<0)
++#define S5P_CLKDIV1_MPLL_MASK (0x3<<4)
++#define S5P_CLKDIV1_MPLL2_MASK (0x1<<8)
++#define S5P_CLKDIV1_D1_MASK (0x7<<12)
++#define S5P_CLKDIV1_PCLKD1_MASK (0x7<<16)
++#define S5P_CLKDIV1_ONENAND_MASK (0x3<<20)
++#define S5P_CLKDIV1_CAM_MASK (0x1F<<24)
++
++static inline unsigned int
++s5p_get_apll(unsigned long pllval, unsigned long baseclk)
++{
++ unsigned long mdiv, pdiv, sdiv;
++
++ baseclk /= 1000;
++
++ mdiv = (pllval & (0x3ff << 16))>>16;
++ pdiv = (pllval & (0x3f << 8))>>8;
++ sdiv = (pllval & (0x03 << 0))>>0;
++
++ return (baseclk * (mdiv)) / ((pdiv) << sdiv)*1000;
++}
++
++static inline unsigned int
++s5p_get_mpll(unsigned long pllval, unsigned long baseclk)
++{
++ unsigned long mdiv, pdiv, sdiv;
++
++ baseclk /= 1000;
++
++ mdiv = (pllval & (0xff << 16))>>16;
++ pdiv = (pllval & (0x3f << 8))>>8;
++ sdiv = (pllval & (0x03 << 0))>>0;
++
++ return (baseclk * (mdiv)) / ((pdiv) << sdiv)*1000;
++}
++#if 0
++static inline unsigned int
++s5p_get_mpll(unsigned long baseclk)
++{
++ unsigned long pllval, mdiv, pdiv, sdiv, kdiv;
++
++ baseclk /= 1000;
++
++ pllval = readl(S5P_EPLL_CON0);
++ mdiv = (pllval & (0x3ff << 16))>>16;
++ pdiv = (pllval & (0x3f << 8))>>8;
++ sdiv = (pllval & (0x03 << 0))>>0;
++ kdiv = readl(S5P_EPLL_CON1) & (0xffff);
++
++ return (baseclk * (mdiv+kdiv/65536) / (pdiv << sdiv))*1000;
++}
++#endif
++
++#endif /* __ASM_ARM_REGS_CLOCK */
+diff --git a/include/asm-arm/arch-s3c2410/regs-serial.h b/include/asm-arm/arch-s3c2410/regs-serial.h
+new file mode 100644
+index 0000000..7799cbc
+--- /dev/null
++++ b/include/asm-arm/arch-s3c2410/regs-serial.h
+@@ -0,0 +1,415 @@
++/* linux/include/asm-arm/arch-s3c2410/regs-serial.h
++ *
++ * From linux/include/asm-arm/hardware/serial_s3c2410.h
++ *
++ * Internal header file for Samsung S3C2410 serial ports (UART0-2)
++ *
++ * Copyright (C) 2002 Shane Nay (shane@minirl.com)
++ *
++ * Additional defines, (c) 2003 Simtec Electronics (linux@simtec.co.uk)
++ *
++ * Adapted from:
++ *
++ * Internal header file for MX1ADS serial ports (UART1 & 2)
++ *
++ * Copyright (C) 2002 Shane Nay (shane@minirl.com)
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++*/
++
++#ifndef __ASM_ARM_REGS_SERIAL_H
++#define __ASM_ARM_REGS_SERIAL_H
++
++#if defined (CONFIG_CPU_S3C6400) || defined (CONFIG_CPU_S3C6410)
++#define S3C24XX_VA_UART0 (S3C24XX_VA_UART)
++#define S3C24XX_VA_UART1 (S3C24XX_VA_UART + 0x400 )
++#define S3C24XX_VA_UART2 (S3C24XX_VA_UART + 0x800 )
++#define S3C24XX_VA_UART3 (S3C24XX_VA_UART + 0xC00 )
++
++#define S3C2410_PA_UART0 (S3C24XX_PA_UART)
++#define S3C2410_PA_UART1 (S3C24XX_PA_UART + 0x400 )
++#define S3C2410_PA_UART2 (S3C24XX_PA_UART + 0x800 )
++#define S3C2443_PA_UART3 (S3C24XX_PA_UART + 0xC00 )
++#else
++#define S3C24XX_VA_UART0 (S3C24XX_VA_UART)
++#define S3C24XX_VA_UART1 (S3C24XX_VA_UART + 0x4000 )
++#define S3C24XX_VA_UART2 (S3C24XX_VA_UART + 0x8000 )
++#define S3C24XX_VA_UART3 (S3C24XX_VA_UART + 0xC000 )
++
++#define S3C2410_PA_UART0 (S3C24XX_PA_UART)
++#define S3C2410_PA_UART1 (S3C24XX_PA_UART + 0x4000 )
++#define S3C2410_PA_UART2 (S3C24XX_PA_UART + 0x8000 )
++#define S3C2443_PA_UART3 (S3C24XX_PA_UART + 0xC000 )
++#endif
++
++#define S3C2410_URXH (0x24)
++#define S3C2410_UTXH (0x20)
++#define S3C2410_ULCON (0x00)
++#define S3C2410_UCON (0x04)
++#define S3C2410_UFCON (0x08)
++#define S3C2410_UMCON (0x0C)
++#define S3C2410_UBRDIV (0x28)
++#define S3C2410_UTRSTAT (0x10)
++#define S3C2410_UERSTAT (0x14)
++#define S3C2410_UFSTAT (0x18)
++#define S3C2410_UMSTAT (0x1C)
++
++#define S3C2410_LCON_CFGMASK ((0xF<<3)|(0x3))
++
++#define S3C2410_LCON_CS5 (0x0)
++#define S3C2410_LCON_CS6 (0x1)
++#define S3C2410_LCON_CS7 (0x2)
++#define S3C2410_LCON_CS8 (0x3)
++#define S3C2410_LCON_CSMASK (0x3)
++
++#define S3C2410_LCON_PNONE (0x0)
++#define S3C2410_LCON_PEVEN (0x5 << 3)
++#define S3C2410_LCON_PODD (0x4 << 3)
++#define S3C2410_LCON_PMASK (0x7 << 3)
++
++#define S3C2410_LCON_STOPB (1<<2)
++#define S3C2410_LCON_IRM (1<<6)
++
++#define S3C2440_UCON_CLKMASK (3<<10)
++#define S3C2440_UCON_PCLK (0<<10)
++#define S3C2440_UCON_UCLK (1<<10)
++#define S3C2440_UCON_PCLK2 (2<<10)
++#define S3C2440_UCON_FCLK (3<<10)
++#define S3C2443_UCON_EPLL (3<<10)
++
++#define S3C2440_UCON2_FCLK_EN (1<<15)
++#define S3C2440_UCON0_DIVMASK (15 << 12)
++#define S3C2440_UCON1_DIVMASK (15 << 12)
++#define S3C2440_UCON2_DIVMASK (7 << 12)
++#define S3C2440_UCON_DIVSHIFT (12)
++
++#define S3C2412_UCON_CLKMASK (3<<10)
++#define S3C2412_UCON_UCLK (1<<10)
++#define S3C2412_UCON_USYSCLK (3<<10)
++#define S3C2412_UCON_PCLK (0<<10)
++#define S3C2412_UCON_PCLK2 (2<<10)
++
++#define S3C2410_UCON_UCLK (1<<10)
++#define S3C2410_UCON_SBREAK (1<<4)
++
++#define S3C2410_UCON_TXILEVEL (1<<9)
++#define S3C2410_UCON_RXILEVEL (1<<8)
++#define S3C2410_UCON_TXIRQMODE (1<<2)
++#define S3C2410_UCON_RXIRQMODE (1<<0)
++#define S3C2410_UCON_RXFIFO_TOI (1<<7)
++#define S3C2443_UCON_RXERR_IRQEN (1<<6)
++#define S3C2443_UCON_LOOPBACK (1<<5)
++
++#define S3C2410_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \
++ S3C2410_UCON_RXILEVEL | \
++ S3C2410_UCON_TXIRQMODE | \
++ S3C2410_UCON_RXIRQMODE | \
++ S3C2410_UCON_RXFIFO_TOI)
++
++#define S3C2410_UFCON_FIFOMODE (1<<0)
++#define S3C2410_UFCON_TXTRIG0 (0<<6)
++#define S3C2410_UFCON_RXTRIG8 (1<<4)
++#define S3C2410_UFCON_RXTRIG12 (2<<4)
++
++/* S3C2440 FIFO trigger levels */
++#define S3C2440_UFCON_RXTRIG1 (0<<4)
++#define S3C2440_UFCON_RXTRIG8 (1<<4)
++#define S3C2440_UFCON_RXTRIG16 (2<<4)
++#define S3C2440_UFCON_RXTRIG32 (3<<4)
++
++#define S3C2440_UFCON_TXTRIG0 (0<<6)
++#define S3C2440_UFCON_TXTRIG16 (1<<6)
++#define S3C2440_UFCON_TXTRIG32 (2<<6)
++#define S3C2440_UFCON_TXTRIG48 (3<<6)
++
++#define S3C2410_UFCON_RESETBOTH (3<<1)
++#define S3C2410_UFCON_RESETTX (1<<2)
++#define S3C2410_UFCON_RESETRX (1<<1)
++
++#define S3C2410_UFCON_DEFAULT (S3C2410_UFCON_FIFOMODE | \
++ S3C2410_UFCON_TXTRIG0 | \
++ S3C2410_UFCON_RXTRIG8 )
++
++#define S3C2410_UMCOM_AFC (1<<4)
++#define S3C2410_UMCOM_RTS_LOW (1<<0)
++
++#define S3C2412_UMCON_AFC_63 (0<<5) /* same as s3c2443 */
++#define S3C2412_UMCON_AFC_56 (1<<5)
++#define S3C2412_UMCON_AFC_48 (2<<5)
++#define S3C2412_UMCON_AFC_40 (3<<5)
++#define S3C2412_UMCON_AFC_32 (4<<5)
++#define S3C2412_UMCON_AFC_24 (5<<5)
++#define S3C2412_UMCON_AFC_16 (6<<5)
++#define S3C2412_UMCON_AFC_8 (7<<5)
++
++#define S3C2410_UFSTAT_TXFULL (1<<9)
++#define S3C2410_UFSTAT_RXFULL (1<<8)
++#define S3C2410_UFSTAT_TXMASK (15<<4)
++#define S3C2410_UFSTAT_TXSHIFT (4)
++#define S3C2410_UFSTAT_RXMASK (15<<0)
++#define S3C2410_UFSTAT_RXSHIFT (0)
++
++/* UFSTAT S3C2443 same as S3C2440 */
++#define S3C2440_UFSTAT_TXFULL (1<<14)
++#define S3C2440_UFSTAT_RXFULL (1<<6)
++#define S3C2440_UFSTAT_TXSHIFT (8)
++#define S3C2440_UFSTAT_RXSHIFT (0)
++#define S3C2440_UFSTAT_TXMASK (63<<8)
++#define S3C2440_UFSTAT_RXMASK (63)
++
++#define S3C2410_UTRSTAT_TXE (1<<2)
++#define S3C2410_UTRSTAT_TXFE (1<<1)
++#define S3C2410_UTRSTAT_RXDR (1<<0)
++
++#define S3C2410_UERSTAT_OVERRUN (1<<0)
++#define S3C2410_UERSTAT_FRAME (1<<2)
++#define S3C2410_UERSTAT_BREAK (1<<3)
++#define S3C2443_UERSTAT_PARITY (1<<1)
++
++#define S3C2410_UERSTAT_ANY (S3C2410_UERSTAT_OVERRUN | \
++ S3C2410_UERSTAT_FRAME | \
++ S3C2410_UERSTAT_BREAK)
++
++#define S3C2410_UMSTAT_CTS (1<<0)
++#define S3C2410_UMSTAT_DeltaCTS (1<<2)
++
++#define S3C2443_DIVSLOT (0x2C)
++
++
++#if defined (CONFIG_CPU_S3C6400) || defined (CONFIG_CPU_S3C6410) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++
++
++/* UART */
++#if 0
++#define S3C_VA_UART0 (S3C24XX_VA_UART)
++#define S3C_VA_UART1 (S3C24XX_VA_UART + 0x400 )
++#define S3C_VA_UART2 (S3C24XX_VA_UART + 0x800 )
++#define S3C_VA_UART3 (S3C24XX_VA_UART + 0xC00 )
++
++#define S3C_PA_UART0 (S3C24XX_PA_UART)
++#define S3C_PA_UART1 (S3C24XX_PA_UART + 0x400 )
++#define S3C_PA_UART2 (S3C24XX_PA_UART + 0x800 )
++#define S3C_PA_UART3 (S3C24XX_PA_UART + 0xC00 )
++#endif
++
++#define S3C_IRQ_UART0 IRQ_UART0
++#define S3C_IRQ_UART1 IRQ_UART1
++#define S3C_IRQ_UART2 IRQ_UART2
++#define S3C_IRQ_UART3 IRQ_UART3
++
++#define S3C_ULCON (0x00)
++#define S3C_UCON (0x04)
++#define S3C_UFCON (0x08)
++#define S3C_UMCON (0x0C)
++#define S3C_UTRSTAT (0x10)
++#define S3C_UERSTAT (0x14)
++#define S3C_UFSTAT (0x18)
++#define S3C_UMSTAT (0x1C)
++#define S3C_UTXH (0x20)
++#define S3C_URXH (0x24)
++#define S3C_UBRDIV (0x28)
++#define S3C_UDIVSLOT (0x2C)
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++#define S3C_UINTPND (0x30)
++#define S3C_UINTSP (0x34)
++#define S3C_UINTMSK (0x38)
++#else
++#define S3C_UINTPND (S3C24XX_VA_IRQ + 0x18 )
++#define S3C_UINTMSK (S3C24XX_VA_IRQ + 0x1c )
++#endif
++
++/* base definitions for UART Line Control Register */
++#define S3C_LCON_CFGMASK (0x7f)
++
++#define S3C_LCON_CS5 (0x0)
++#define S3C_LCON_CS6 (0x1)
++#define S3C_LCON_CS7 (0x2)
++#define S3C_LCON_CS8 (0x3)
++#define S3C_LCON_CSMASK (0x3)
++
++#define S3C_LCON_PNONE (0x0)
++#define S3C_LCON_PEVEN (0x5 << 3)
++#define S3C_LCON_PODD (0x4 << 3)
++#define S3C_LCON_PMASK (0x7 << 3)
++
++#define S3C_LCON_STOPB (1<<2)
++#define S3C_LCON_IRM (1<<6)
++
++#define S3C_UCON_CLKMASK (3<<10)
++#define S3C_UCON_PCLK (0<<10)
++#define S3C_UCON_UCLK (1<<10)
++#define S3C_UCON_PCLK2 (2<<10)
++#define S3C_UCON_FCLK (3<<10)
++#define S3C_UCON_SBREAK (1<<4)
++
++#define S3C_UCON_TXILEVEL (1<<9)
++#define S3C_UCON_RXILEVEL (1<<8)
++#define S3C_UCON_TXIRQMODE (1<<2)
++#define S3C_UCON_RXIRQMODE (1<<0)
++#define S3C_UCON_RXFIFO_TOI (1<<7)
++#define S3C_UCON_RX_ESIE (1<<6)
++#define S3C_UCON_LOOP_OPERATION (0<<5)
++#define S3C_UCON_NO_SBS (0<<4)
++
++
++#define S3C_UCON_DEFAULT (S3C_UCON_TXILEVEL | \
++ S3C_UCON_RXILEVEL | \
++ S3C_UCON_TXIRQMODE | \
++ S3C_UCON_RXIRQMODE | \
++ S3C_UCON_RXFIFO_TOI)
++
++/* base definitions for UART FIFO Control Register */
++#define S3C_UFCON_FIFOMODE (1<<0)
++#define S3C2410_UFCON_TXTRIG0 (0<<6)
++#define S3C2410_UFCON_RXTRIG8 (1<<4)
++#define S3C_UFCON_RXTRIG12 (2<<4)
++
++/* S3C2413 FIFO trigger levels */
++#define S3C_UFCON_RXTRIG1 (0<<4)
++#define S3C_UFCON_RXTRIG8 (1<<4)
++#define S3C_UFCON_RXTRIG16 (2<<4)
++#define S3C_UFCON_RXTRIG32 (3<<4)
++
++#define S3C_UFCON_TXTRIG0 (0<<6)
++#define S3C_UFCON_TXTRIG16 (1<<6)
++#define S3C_UFCON_TXTRIG32 (2<<6)
++#define S3C_UFCON_TXTRIG48 (3<<6)
++
++#define S3C_UFCON_RESETBOTH (3<<1)
++#define S3C_UFCON_RESETTX (1<<2)
++#define S3C_UFCON_RESETRX (1<<1)
++#define S3C_UFCON_FIFO_ENABLE (1<<0)
++
++#define S3C_UFCON_DEFAULT (S3C_UFCON_FIFOMODE | \
++ S3C_UFCON_TXTRIG0 | \
++ S3C_UFCON_RXTRIG8 )
++
++#define S3C_UMCOM_AFC (1<<4)
++#define S3C_UMCOM_RTS_LOW (1<<0)
++
++#define S3C2410_UFSTAT_TXFULL (1<<9)
++#define S3C2410_UFSTAT_RXFULL (1<<8)
++#define S3C2410_UFSTAT_TXMASK (15<<4)
++#define S3C2410_UFSTAT_TXSHIFT (4)
++#define S3C2410_UFSTAT_RXMASK (15<<0)
++#define S3C2410_UFSTAT_RXSHIFT (0)
++
++#define S3C_UFSTAT_TXFULL (1<<14)
++#define S3C_UFSTAT_RXFULL (1<<6)
++#define S3C_UFSTAT_TXSHIFT (8)
++#define S3C_UFSTAT_RXSHIFT (0)
++#define S3C_UFSTAT_TXMASK (63<<8)
++#define S3C_UFSTAT_RXMASK (63)
++
++#define S3C_UTRSTAT_TXE (1<<2)
++#define S3C_UTRSTAT_TXFE (1<<1)
++#define S3C_UTRSTAT_RXDR (1<<0)
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++#define UART_RX_INT (1<<0)
++#define UART_TX_INT (1<<2)
++#define UART_ERR_INT (1<<1)
++#define UART_MODEM_INT (1<<3)
++#else
++#define UART_RX_INT (1<<6)
++#define UART_TX_INT (1<<7)
++#define UART_ERR_INT (1<<8)
++#endif
++
++#define S3C_UERSTAT_OVERRUN (1<<0)
++#define S3C_UERSTAT_FRAME (1<<2)
++#define S3C_UERSTAT_BREAK (1<<3)
++#define S3C_UERSTAT_ANY (S3C_UERSTAT_OVERRUN | \
++ S3C_UERSTAT_FRAME | \
++ S3C_UERSTAT_BREAK)
++
++#define S3C_UMSTAT_CTS (1<<0)
++#define S3C_UMSTAT_DeltaCTS (1<<2)
++
++#endif
++
++
++#ifndef __ASSEMBLY__
++
++/* struct s3c24xx_uart_clksrc
++ *
++ * this structure defines a named clock source that can be used for the
++ * uart, so that the best clock can be selected for the requested baud
++ * rate.
++ *
++ * min_baud and max_baud define the range of baud-rates this clock is
++ * acceptable for, if they are both zero, it is assumed any baud rate that
++ * can be generated from this clock will be used.
++ *
++ * divisor gives the divisor from the clock to the one seen by the uart
++*/
++#if defined (CONFIG_CPU_S3C6400) || defined (CONFIG_CPU_S3C6410)
++#define NR_PORTS (4)
++#define UART_FIFO_SIZE 64
++#define UART_HAS_INTMSK
++#define UART_C_CFLAG
++#define UART_UMCON
++#define UART_CLK 115200
++#else
++#define NR_PORTS (3)
++#endif
++
++
++struct s3c24xx_uart_clksrc {
++ const char *name;
++#if defined (CONFIG_CPU_S3C6400) || defined (CONFIG_CPU_S3C6410)
++ unsigned int clock_src;
++#endif
++ unsigned int divisor;
++ unsigned int min_baud;
++ unsigned int max_baud;
++};
++
++/* configuration structure for per-machine configurations for the
++ * serial port
++ *
++ * the pointer is setup by the machine specific initialisation from the
++ * arch/arm/mach-s3c2410/ directory.
++*/
++
++struct s3c2410_uartcfg {
++ unsigned char hwport; /* hardware port number */
++ unsigned char unused;
++ unsigned short flags;
++#if !defined (CONFIG_CPU_S3C6400) && !defined (CONFIG_CPU_S3C6410)
++ unsigned int uart_flags; /* default uart flags */
++#else
++ unsigned long uart_flags; /* default uart flags */
++#endif
++ unsigned long ucon; /* value of ucon for port */
++ unsigned long ulcon; /* value of ulcon for port */
++ unsigned long ufcon; /* value of ufcon for port */
++
++ struct s3c24xx_uart_clksrc *clocks;
++ unsigned int clocks_size;
++};
++
++/* s3c24xx_uart_devs
++ *
++ * this is exported from the core as we cannot use driver_register(),
++ * or platform_add_device() before the console_initcall()
++*/
++
++extern struct platform_device *s3c24xx_uart_devs[NR_PORTS];
++
++#endif /* __ASSEMBLY__ */
++
++#endif /* __ASM_ARM_REGS_SERIAL_H */
++
+diff --git a/include/asm-arm/arch-s3c2410/regs-tvenc.h b/include/asm-arm/arch-s3c2410/regs-tvenc.h
+new file mode 100644
+index 0000000..4877611
+--- /dev/null
++++ b/include/asm-arm/arch-s3c2410/regs-tvenc.h
+@@ -0,0 +1,198 @@
++/* linux/include/asm-arm/arch-s3c2410/regs-tvenc.h
++ *
++ * Copyright (c) 2007 Samsung Electronics
++ * http://www.samsungsemi.com/
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.*/
++
++#ifndef __ASM_ARM_REGS_TVENC_H
++#define __ASM_ARM_REGS_TVENC_H
++
++#define S3C_TVCTRL (0x00)
++#define S3C_VBPORCH (0x04)
++#define S3C_HBPORCH (0x08)
++#define S3C_HENHOFFSET (0x0C)
++#define S3C_VDEMOWINSIZE (0x10)
++#define S3C_HDEMOWINSIZE (0x14)
++#define S3C_INIMAGESIZE (0x18)
++#define S3C_PEDCTRL (0x1C)
++#define S3C_YCFILTERBW (0x20)
++#define S3C_HUECTRL (0x24)
++#define S3C_FSCCTRL (0x28)
++#define S3C_FSCDTOMANCTRL (0x2C)
++#define S3C_BGCTRL (0x34)
++#define S3C_BGHVAVCTRL (0x38)
++#define S3C_CONTRABRIGHT (0x44)
++#define S3C_CBCRGAINCTRL (0x48)
++#define S3C_DEMOWINCTRL (0x4C)
++#define S3C_FTCA (0x50)
++#define S3C_BWGAIN (0x58)
++#define S3C_SHARPCTRL (0x60)
++#define S3C_GAMMACTRL (0x64)
++#define S3C_FSCAUXCTRL (0x68)
++#define S3C_SYNCSIZECTRL (0x6C)
++#define S3C_BURSTCTRL (0x70)
++#define S3C_MACROBURSTCTRL (0x74)
++#define S3C_ACTVIDPOCTRL (0x78)
++#define S3C_ENCCTRL (0x7C)
++#define S3C_MUTECTRL (0x80)
++#define S3C_MACROVISION0 (0x84)
++#define S3C_MACROVISION1 (0x88)
++#define S3C_MACROVISION2 (0x8C)
++#define S3C_MACROVISION3 (0x90)
++#define S3C_MACROVISION4 (0x94)
++#define S3C_MACROVISION5 (0x98)
++#define S3C_MACROVISION6 (0x9C)
++
++
++#define S3C_TVCTRL_FIFOURINT_DIS 0<<16
++#define S3C_TVCTRL_FIFOURINT_ENA 1<<16
++#define S3C_TVCTRL_FIFOURINT_OCCUR 1<<12
++#define S3C_TVCTRL_OUTTYPE_C 0<<8
++#define S3C_TVCTRL_OUTTYPE_S 1<<8
++#define S3C_TVCTRL_OUTFMT_NTSC_M 0<<4
++#define S3C_TVCTRL_OUTFMT_NTSC_J 1<<4
++#define S3C_TVCTRL_OUTFMT_PAL_BDG 2<<4
++#define S3C_TVCTRL_OUTFMT_PAL_M 3<<4
++#define S3C_TVCTRL_OUTFMT_PAL_NC 4<<4
++#define S3C_TVCTRL_OFF 0<<0
++#define S3C_TVCTRL_ON 1<<0
++
++// vertical back porch control
++#define VBP_VEFBPD(n) (((n)&0x1FF)<<16)
++#define VBP_VOFBPD(n) (((n)&0xFF)<<0)
++
++#define VBP_VEFBPD_NTSC 0x11C<<16
++#define VBP_VEFBPD_PAL 0x14F<<16
++#define VBP_VOFBPD_NTSC 0x15<<0
++#define VBP_VOFBPD_PAL 0x16<<0
++
++
++// horizontal back porch end point
++#define HBP_HSPW(n) (((n)&0xFF)<<16)
++#define HBP_HBPD(n) (((n)&0x7FF)<<0)
++
++#define HBP_HSPW_NTSC 0x80<<16
++#define HBP_HSPW_PAL 0x80<<16
++#define HBP_HBPD_NTSC 0xF4<<0
++#define HBP_HBPD_PAL 0x108<<0
++
++// horizontal enhancer offset
++#define HEO_VAWCC(n) (((n)&0x3F)<<24)
++#define HEO_HAWCC(n) (((n)&0xFF)<<16)
++#define HEO_DTO(n) (((n)&0x7)<<8)
++#define HEO_HEOV(n) (((n)&0x1F)<<0)
++
++#define HEO_DTO_NTSC 0x4<<8
++#define HEO_DTO_PAL 0x4<<8
++#define HEO_HEOV_NTSC 0x1A<<0
++#define HEO_HEOV_PAL 0x1A<<0
++
++
++// vertical demo window size
++#define VDW_VDWS(n) (((n)&0x1FF)<<16)
++#define VDW_VDWSP(n) (((n)&0x1FF)<<0)
++
++#define VDW_VDWS_DEF 0xF0<<16
++#define VDW_VDWSP_DEF 0x0<<0
++
++
++// horizontal demo window size
++#define HDW_HDWEP(n) (((n)&0x7FF)<<16)
++#define HDW_HDWSP(n) (((n)&0x7FF)<<0)
++
++#define HDW_HDWEP_DEF 0x5A0<<16
++#define HDW_HDWSP_DEF 0x0<<0
++
++
++// input image size
++#define IIS_HEIGHT(n) (((n)&0x3FF)<<16)
++#define IIS_WIDTH(n) (((n)&0x7FF)<<0)
++
++// encoder pedestal control
++#define EPC_PED_ON 0<<0
++#define EPC_PED_OFF 1<<0
++
++// yc filter bandwidth control
++#define YFB_YBW_60 0<<4
++#define YFB_YBW_38 1<<4
++#define YFB_YBW_31 2<<4
++#define YFB_YBW_26 3<<4
++#define YFB_YBW_21 4<<4
++#define YFB_CBW_12 0<<0
++#define YFB_CBW_10 1<<0
++#define YFB_CBW_08 2<<0
++#define YFB_CBW_06 3<<0
++
++// hue control
++#define HUE_CTRL(n) (((n)&0xFF)<<0)
++
++// fsc control
++#define FSC_CTRL(n) (((n)&0x7FFF)<<0)
++
++// fsc dto manually control enable
++#define FDM_CTRL(n) (((n)&0x7FFFFFFF)<<0)
++
++// background control
++#define BGC_BGYOFS(n) (((n)&0xF)<<0)
++
++#define BGC_SME_DIS 0<<8
++#define BGC_SME_ENA 1<<8
++#define BGC_BGCS_BLACK 0<<4
++#define BGC_BGCS_BLUE 1<<4
++#define BGC_BGCS_RED 2<<4
++#define BGC_BGCS_MAGENTA 3<<4
++#define BGC_BGCS_GREEN 4<<4
++#define BGC_BGCS_CYAN 5<<4
++#define BGC_BGCS_YELLOW 6<<4
++#define BGC_BGCS_WHITE 7<<4
++
++// background vav & hav control
++#define BVH_BG_HL(n) (((n)&0xFF)<<24)
++#define BVH_BG_HS(n) (((n)&0xFF)<<16)
++#define BVH_BG_VL(n) (((n)&0xFF)<<8)
++#define BVH_BG_VS(n) (((n)&0xFF)<<0)
++
++// sync size control
++#define SSC_HSYNC(n) (((n)&0x3FF)<<0)
++
++#define SSC_HSYNC_NTSC 0x3D<<0
++#define SSC_HSYNC_PAL 0x3E<<0
++
++// burst signal control
++#define BSC_BEND(n) (((n)&0x3FF)<<16)
++#define BSC_BSTART(n) (((n)&0x3FF)<<0)
++
++#define BSC_BEND_NTSC 0x69<<16
++#define BSC_BEND_PAL 0x6A<<16
++#define BSC_BSTART_NTSC 0x49<<0
++#define BSC_BSTART_PAL 0x4A<<0
++
++// macrovision burst signal control
++#define MBS_BSTART(n) (((n)&0x3FF)<<0)
++
++#define MBS_BSTART_NTSC 0x41<<0
++#define MBS_BSTART_PAL 0x42<<0
++
++// active video position control
++#define AVP_AVEND(n) (((n)&0x3FF)<<16)
++#define AVP_AVSTART(n) (((n)&0x3FF)<<0)
++
++#define AVP_AVEND_NTSC 0x348<<16
++#define AVP_AVEND_PAL 0x352<<16
++#define AVP_AVSTART_NTSC 0x78<<0
++#define AVP_AVSTART_PAL 0x82<<0
++
++// encoder control
++#define ENC_BGEN_DIS 0<<0
++#define ENC_BGEN_ENA 1<<0
++
++#define NTSC_WIDTH (720)
++#define NTSC_HEIGHT (480)
++#define PAL_WIDTH (720)
++#define PAL_HEIGHT (576)
++
++#endif /* __ASM_ARM_REGS_TVENC_H */
++
+diff --git a/include/asm-arm/arch-s3c2410/regs-tvscaler.h b/include/asm-arm/arch-s3c2410/regs-tvscaler.h
+new file mode 100644
+index 0000000..678d0f5
+--- /dev/null
++++ b/include/asm-arm/arch-s3c2410/regs-tvscaler.h
+@@ -0,0 +1,78 @@
++/* linux/include/asm-arm/arch-s3c2410/regs-tvscaler.h
++ *
++ * Copyright (c) 2007 Samsung Electronics
++ * http://www.samsungsemi.com/
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * S3C6400 TV SCALER register definitions
++*/
++
++#ifndef __ASM_ARM_REGS_TVSCALER
++#define __ASM_ARM_REGS_TVSCALER "regs-tvscaler.h"
++
++#define S3C_MODE (0x00)
++#define S3C_PRESCALE_RATIO (0x04)
++#define S3C_PRESCALEIMGSIZE (0x08)
++#define S3C_SRCIMGSIZE (0x0C)
++#define S3C_MAINSCALE_H_RATIO (0x10)
++#define S3C_MAINSCALE_V_RATIO (0x14)
++#define S3C_DSTIMGSIZE (0x18)
++#define S3C_PRESCALE_SHFACTOR (0x1C)
++#define S3C_ADDRSTART_Y (0x20)
++#define S3C_ADDRSTART_CB (0x24)
++#define S3C_ADDRSTART_CR (0x28)
++#define S3C_ADDRSTART_RGB (0x2C)
++#define S3C_ADDREND_Y (0x30)
++#define S3C_ADDREND_CB (0x34)
++#define S3C_ADDREND_CR (0x38)
++#define S3C_ADDREND_RGB (0x3C)
++#define S3C_OFFSET_Y (0x40)
++#define S3C_OFFSET_CB (0x44)
++#define S3C_OFFSET_CR (0x48)
++#define S3C_OFFSET_RGB (0x4C)
++#define S3C_NXTADDRSTART_Y (0x54)
++#define S3C_NXTADDRSTART_CB (0x58)
++#define S3C_NXTADDRSTART_CR (0x5C)
++#define S3C_NXTADDRSTART_RGB (0x60)
++#define S3C_NXTADDREND_Y (0x64)
++#define S3C_NXTADDREND_CB (0x68)
++#define S3C_NXTADDREND_CR (0x6C)
++#define S3C_NXTADDREND_RGB (0x70)
++#define S3C_ADDRSTART_OCB (0x74)
++#define S3C_ADDRSTART_OCR (0x78)
++#define S3C_ADDREND_OCB (0x7C)
++#define S3C_ADDREND_OCR (0x80)
++#define S3C_OFFSET_OCB (0x84)
++#define S3C_OFFSET_OCR (0x88)
++#define S3C_NXTADDRSTART_OCB (0x8C)
++#define S3C_NXTADDRSTART_OCR (0x90)
++#define S3C_NXTADDREND_OCB (0x94)
++#define S3C_NXTADDREND_OCR (0x98)
++#define S3C_POSTENVID (0x9C)
++#define S3C_MODE2 (0xA0)
++
++//POSTENVID
++#define S3C_POSTENVID_ENABLE (0x1<<31)
++#define S3C_POSTENVID_DISABLE (0x0<<31)
++
++//MODE Control register
++#define S3C_MODE_AUTOLOAD_ENABLE (0x1<<14)
++#define S3C_MODE_POST_INT_ENABLE (0x1<<7)
++#define S3C_MODE_POST_PENDING (0x1<<6)
++#define S3C_MODE_IRQ_LEVEL (0x1<<5)
++#define S3C_MODE_H_CLK_INPUT (0x0<<2)
++#define S3C_MODE_EXT_CLK_0_INPUT (0x1<<2)
++#define S3C_MODE_EXT_CLK_1_INPUT (0x3<<2)
++
++//MODE Control register 2
++#define S3C_MODE2_ADDR_CHANGE_ENABLE (0x0<<4)
++#define S3C_MODE2_ADDR_CHANGE_DISABLE (0x1<<4)
++#define S3C_MODE2_CHANGE_AT_FIELD_END (0x0<<3)
++#define S3C_MODE2_CHANGE_AT_FRAME_END (0x1<<3)
++#define S3C_MODE2_SOFTWARE_TRIGGER (0x0<<0)
++#define S3C_MODE2_HARDWARE_TRIGGER (0x1<<0)
++
++#endif /* __ASM_ARM_REGS_TVSCALER */
+diff --git a/include/asm-arm/arch-s3c2410/regs-udc-hs.h b/include/asm-arm/arch-s3c2410/regs-udc-hs.h
+new file mode 100644
+index 0000000..a15c7a8
+--- /dev/null
++++ b/include/asm-arm/arch-s3c2410/regs-udc-hs.h
+@@ -0,0 +1,153 @@
++/*
++ * include/asm/arch-s3c2410/regs-udc-hs.h
++ *
++ * $Id: regs-udc-hs.h,v 1.2 2008/03/26 07:14:30 ihlee215 Exp $*
++ *
++ * Copyright (C) 2007 for Samsung Electronics
++ *
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ */
++
++#ifndef __ASM_ARCH_REGS_UDC_HS_H
++#define __ASM_ARCH_REGS_UDC_HS_H
++
++
++#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++#define S3C_PWRCFG S3C2443_PWRCFG
++#define S3C_RSTCON S3C2443_RSTCON
++#define S3C_RSTSTAT S3C2443_RSTSTAT
++#define S3C_PHYCTRL S3C2443_PHYCTRL
++#define S3C_PHYPWR S3C2443_PHYPWR
++#define S3C_URSTCON S3C2443_URSTCON
++#define S3C_UCLKCON S3C2443_UCLKCON
++#endif
++
++/* USB2.0 Device Controller register */
++#define S3C_USBDREG(x) ((x) + S3C24XX_VA_USBDEV)
++
++/* Non-Indexed Registers */
++#define S3C_UDC_INDEX_REG S3C_USBDREG(0x00) /* Index register */
++#define S3C_UDC_EP_INT_REG S3C_USBDREG(0x04) /* EP Interrupt pending and clear */
++#define S3C_UDC_EP_INT_EN_REG S3C_USBDREG(0x08) /* EP Interrupt enable */
++#define S3C_UDC_FUNC_ADDR_REG S3C_USBDREG(0x0c) /* Function address */
++#define S3C_UDC_FRAME_NUM_REG S3C_USBDREG(0x10) /* Frame number */
++#define S3C_UDC_EP_DIR_REG S3C_USBDREG(0x14) /* Endpoint direction */
++#define S3C_UDC_TEST_REG S3C_USBDREG(0x18) /* Test register */
++#define S3C_UDC_SYS_STATUS_REG S3C_USBDREG(0x1c) /* System status */
++#define S3C_UDC_SYS_CON_REG S3C_USBDREG(0x20) /* System control */
++#define S3C_UDC_EP0_STATUS_REG S3C_USBDREG(0x24) /* Endpoint 0 status */
++#define S3C_UDC_EP0_CON_REG S3C_USBDREG(0x28) /* Endpoint 0 control */
++#define S3C_UDC_EP0_FIFO_REG S3C_USBDREG(0x60) /* Endpoint 0 Buffer */
++#define S3C_UDC_EP1_FIFO_REG S3C_USBDREG(0x64) /* Endpoint 1 Buffer */
++#define S3C_UDC_EP2_FIFO_REG S3C_USBDREG(0x68) /* Endpoint 2 Buffer */
++#define S3C_UDC_EP3_FIFO_REG S3C_USBDREG(0x6c) /* Endpoint 3 Buffer */
++#define S3C_UDC_EP4_FIFO_REG S3C_USBDREG(0x70) /* Endpoint 4 Buffer */
++#define S3C_UDC_EP5_FIFO_REG S3C_USBDREG(0x74) /* Endpoint 5 Buffer */
++#define S3C_UDC_EP6_FIFO_REG S3C_USBDREG(0x78) /* Endpoint 6 Buffer */
++#define S3C_UDC_EP7_FIFO_REG S3C_USBDREG(0x7c) /* Endpoint 7 Buffer */
++#define S3C_UDC_EP8_FIFO_REG S3C_USBDREG(0x80) /* Endpoint 8 Buffer */
++#define S3C_UDC_FIFO_CON_REG S3C_USBDREG(0x100) /* Burst FIFO-DMA Control */
++#define S3C_UDC_FIFO_STATUS_REG S3C_USBDREG(0x104) /* Burst FIFO Status */
++
++/* Indexed Registers */
++#define S3C_UDC_EP_STATUS_REG S3C_USBDREG(0x2c) /* Endpoints status */
++#define S3C_UDC_EP_CON_REG S3C_USBDREG(0x30) /* Endpoints control */
++#define S3C_UDC_BYTE_READ_CNT_REG S3C_USBDREG(0x34) /* Byte read count */
++#define S3C_UDC_BYTE_WRITE_CNT_REG S3C_USBDREG(0x38) /* Byte write count */
++#define S3C_UDC_MAXP_REG S3C_USBDREG(0x3c) /* Max packet size */
++#define S3C_UDC_DMA_CON_REG S3C_USBDREG(0x40) /* DMA control */
++#define S3C_UDC_DMA_CNT_REG S3C_USBDREG(0x44) /* DMA count */
++#define S3C_UDC_DMA_FIFO_CNT_REG S3C_USBDREG(0x48) /* DMA FIFO count */
++#define S3C_UDC_DMA_TOTAL_CNT1_REG S3C_USBDREG(0x4c) /* DMA Total Transfer count1 */
++#define S3C_UDC_DMA_TOTAL_CNT2_REG S3C_USBDREG(0x50) /* DMA Total Transfer count2 */
++#define S3C_UDC_DMA_IF_CON_REG S3C_USBDREG(0x84) /* DMA interface Control */
++#define S3C_UDC_DMA_MEM_BASE_ADDR_REG S3C_USBDREG(0x88) /* Mem Base Addr */
++#define S3C_UDC_DMA_MEM_CURRENT_ADDR_REG S3C_USBDREG(0x8c) /* Mem current Addr */
++
++#define S3C_UDC_FCON_REG S3C_USBDREG(0x100) /* Mem current Addr */
++#define S3C_UDC_FSTAT_REG S3C_USBDREG(0x104) /* Mem current Addr */
++
++
++/* EP interrupt register Bits */
++#define S3C_UDC_INT_EP3 (1<<3) // R/C
++#define S3C_UDC_INT_EP2 (1<<2) // R/C
++#define S3C_UDC_INT_EP1 (1<<1) // R/C
++#define S3C_UDC_INT_EP0 (1<<0) // R/C
++
++/* System status register Bits */
++#define S3C_UDC_INT_CHECK (0xff8f)
++#define S3C_UDC_INT_ERR (0xff80) // R/C
++#define S3C_UDC_INT_VBUSON (1<<8) // R/C
++#define S3C_UDC_INT_HSP (1<<4) // R
++#define S3C_UDC_INT_SDE (1<<3) // R/C
++#define S3C_UDC_INT_RESUME (1<<2) // R/C
++#define S3C_UDC_INT_SUSPEND (1<<1) // R/C
++#define S3C_UDC_INT_RESET (1<<0) // R/C
++
++/* system control register Bits */
++#define S3C_UDC_DTZIEN_EN (1<<14)
++#define S3C_UDC_RRD_EN (1<<5)
++#define S3C_UDC_SUS_EN (1<<1)
++#define S3C_UDC_RST_EN (1<<0)
++
++/* EP0 status register Bits */
++#define S3C_UDC_EP0_LWO (1<<6)
++#define S3C_UDC_EP0_STALL (1<<4)
++#define S3C_UDC_EP0_TX_SUCCESS (1<<1)
++#define S3C_UDC_EP0_RX_SUCCESS (1<<0)
++
++/* EP status register Bits */
++#define S3C_UDC_EP_FPID (1<<11)
++#define S3C_UDC_EP_OSD (1<<10)
++#define S3C_UDC_EP_DTCZ (1<<9)
++#define S3C_UDC_EP_SPT (1<<8)
++
++#define S3C_UDC_EP_DOM (1<<7)
++#define S3C_UDC_EP_FIFO_FLUSH (1<<6)
++#define S3C_UDC_EP_STALL (1<<5)
++#define S3C_UDC_EP_LWO (1<<4)
++#define S3C_UDC_EP_PSIF_ONE (1<<2)
++#define S3C_UDC_EP_PSIF_TWO (2<<2)
++#define S3C_UDC_EP_TX_SUCCESS (1<<1)
++#define S3C_UDC_EP_RX_SUCCESS (1<<0)
++
++// USB2.0 DMA Operation
++#define S3C_DMA_AUTO_RX_ENABLE (0x0<<5)
++#define S3C_DMA_AUTO_RX_DISABLE (0x1<<5)
++#define S3C_DMA_FLY_ENABLE (0x1<<4)
++#define S3C_DMA_FLY_DISABLE (0x0<<4)
++#define S3C_DMA_DEMEND_ENABLE (0x1<<3)
++#define S3C_DMA_DEMEND_DISABLE (0x0<<3)
++#define S3C_DMA_TX_START (0x1<<2)
++#define S3C_DMA_TX_STOP (0x0<<2)
++#define S3C_DMA_RX_START (0x1<<1)
++#define S3C_DMA_RX_STOP (0x0<<1)
++#define S3C_USB_DMA_MODE (0x1<<0)
++#define S3C_USB_INT_MODE (0x0<<0)
++
++#define S3C_MAX_BURST_INCR16 (0x3<<0)
++#define S3C_MAX_BURST_INCR8 (0x2<<0)
++#define S3C_MAX_BURST_INCR4 (0x1<<0)
++#define S3C_MAX_BURST_SINGLE (0x0<<0)
++
++#define S3C_DMA_ENABLE (0x1<<8)
++#define S3C_DMA_DISABLE (0x0<<8)
++#define S3C_DMA_TFCLR (0x1<<4)
++#define S3C_DMA_RFCLR (0x1<<0)
++
++#endif
++
+diff --git a/include/asm-arm/arch-s3c2410/regs-udc.h b/include/asm-arm/arch-s3c2410/regs-udc.h
+new file mode 100644
+index 0000000..3c83546
+--- /dev/null
++++ b/include/asm-arm/arch-s3c2410/regs-udc.h
+@@ -0,0 +1,157 @@
++/* linux/include/asm-arm/arch-s3c2410/regs-udc.h
++ *
++ * Copyright (C) 2004 Herbert Poetzl <herbert@13thfloor.at>
++ *
++ * This include file is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License, or (at your option) any later version.
++*/
++
++#ifndef __ASM_ARCH_REGS_UDC_H
++#define __ASM_ARCH_REGS_UDC_H
++
++#define S3C2410_USBDREG(x) (x)
++
++#define S3C2410_UDC_FUNC_ADDR_REG S3C2410_USBDREG(0x0140)
++#define S3C2410_UDC_PWR_REG S3C2410_USBDREG(0x0144)
++#define S3C2410_UDC_EP_INT_REG S3C2410_USBDREG(0x0148)
++
++#define S3C2410_UDC_USB_INT_REG S3C2410_USBDREG(0x0158)
++#define S3C2410_UDC_EP_INT_EN_REG S3C2410_USBDREG(0x015c)
++
++#define S3C2410_UDC_USB_INT_EN_REG S3C2410_USBDREG(0x016c)
++
++#define S3C2410_UDC_FRAME_NUM1_REG S3C2410_USBDREG(0x0170)
++#define S3C2410_UDC_FRAME_NUM2_REG S3C2410_USBDREG(0x0174)
++
++#define S3C2410_UDC_EP0_FIFO_REG S3C2410_USBDREG(0x01c0)
++#define S3C2410_UDC_EP1_FIFO_REG S3C2410_USBDREG(0x01c4)
++#define S3C2410_UDC_EP2_FIFO_REG S3C2410_USBDREG(0x01c8)
++#define S3C2410_UDC_EP3_FIFO_REG S3C2410_USBDREG(0x01cc)
++#define S3C2410_UDC_EP4_FIFO_REG S3C2410_USBDREG(0x01d0)
++
++#define S3C2410_UDC_EP1_DMA_CON S3C2410_USBDREG(0x0200)
++#define S3C2410_UDC_EP1_DMA_UNIT S3C2410_USBDREG(0x0204)
++#define S3C2410_UDC_EP1_DMA_FIFO S3C2410_USBDREG(0x0208)
++#define S3C2410_UDC_EP1_DMA_TTC_L S3C2410_USBDREG(0x020c)
++#define S3C2410_UDC_EP1_DMA_TTC_M S3C2410_USBDREG(0x0210)
++#define S3C2410_UDC_EP1_DMA_TTC_H S3C2410_USBDREG(0x0214)
++
++#define S3C2410_UDC_EP2_DMA_CON S3C2410_USBDREG(0x0218)
++#define S3C2410_UDC_EP2_DMA_UNIT S3C2410_USBDREG(0x021c)
++#define S3C2410_UDC_EP2_DMA_FIFO S3C2410_USBDREG(0x0220)
++#define S3C2410_UDC_EP2_DMA_TTC_L S3C2410_USBDREG(0x0224)
++#define S3C2410_UDC_EP2_DMA_TTC_M S3C2410_USBDREG(0x0228)
++#define S3C2410_UDC_EP2_DMA_TTC_H S3C2410_USBDREG(0x022c)
++
++#define S3C2410_UDC_EP3_DMA_CON S3C2410_USBDREG(0x0240)
++#define S3C2410_UDC_EP3_DMA_UNIT S3C2410_USBDREG(0x0244)
++#define S3C2410_UDC_EP3_DMA_FIFO S3C2410_USBDREG(0x0248)
++#define S3C2410_UDC_EP3_DMA_TTC_L S3C2410_USBDREG(0x024c)
++#define S3C2410_UDC_EP3_DMA_TTC_M S3C2410_USBDREG(0x0250)
++#define S3C2410_UDC_EP3_DMA_TTC_H S3C2410_USBDREG(0x0254)
++
++#define S3C2410_UDC_EP4_DMA_CON S3C2410_USBDREG(0x0258)
++#define S3C2410_UDC_EP4_DMA_UNIT S3C2410_USBDREG(0x025c)
++#define S3C2410_UDC_EP4_DMA_FIFO S3C2410_USBDREG(0x0260)
++#define S3C2410_UDC_EP4_DMA_TTC_L S3C2410_USBDREG(0x0264)
++#define S3C2410_UDC_EP4_DMA_TTC_M S3C2410_USBDREG(0x0268)
++#define S3C2410_UDC_EP4_DMA_TTC_H S3C2410_USBDREG(0x026c)
++
++#define S3C2410_UDC_INDEX_REG S3C2410_USBDREG(0x0178)
++
++/* indexed registers */
++
++#define S3C2410_UDC_MAXP_REG S3C2410_USBDREG(0x0180)
++
++#define S3C2410_UDC_EP0_CSR_REG S3C2410_USBDREG(0x0184)
++
++#define S3C2410_UDC_IN_CSR1_REG S3C2410_USBDREG(0x0184)
++#define S3C2410_UDC_IN_CSR2_REG S3C2410_USBDREG(0x0188)
++
++#define S3C2410_UDC_OUT_CSR1_REG S3C2410_USBDREG(0x0190)
++#define S3C2410_UDC_OUT_CSR2_REG S3C2410_USBDREG(0x0194)
++#define S3C2410_UDC_OUT_FIFO_CNT1_REG S3C2410_USBDREG(0x0198)
++#define S3C2410_UDC_OUT_FIFO_CNT2_REG S3C2410_USBDREG(0x019c)
++
++
++
++#define S3C2410_UDC_PWR_ISOUP (1<<7) // R/W
++#define S3C2410_UDC_PWR_RESET (1<<3) // R
++#define S3C2410_UDC_PWR_RESUME (1<<2) // R/W
++#define S3C2410_UDC_PWR_SUSPEND (1<<1) // R
++#define S3C2410_UDC_PWR_ENSUSPEND (1<<0) // R/W
++
++#define S3C2410_UDC_PWR_DEFAULT 0x00
++
++#define S3C2410_UDC_INT_EP4 (1<<4) // R/W (clear only)
++#define S3C2410_UDC_INT_EP3 (1<<3) // R/W (clear only)
++#define S3C2410_UDC_INT_EP2 (1<<2) // R/W (clear only)
++#define S3C2410_UDC_INT_EP1 (1<<1) // R/W (clear only)
++#define S3C2410_UDC_INT_EP0 (1<<0) // R/W (clear only)
++
++#define S3C2410_UDC_USBINT_RESET (1<<2) // R/W (clear only)
++#define S3C2410_UDC_USBINT_RESUME (1<<1) // R/W (clear only)
++#define S3C2410_UDC_USBINT_SUSPEND (1<<0) // R/W (clear only)
++
++#define S3C2410_UDC_INTE_EP4 (1<<4) // R/W
++#define S3C2410_UDC_INTE_EP3 (1<<3) // R/W
++#define S3C2410_UDC_INTE_EP2 (1<<2) // R/W
++#define S3C2410_UDC_INTE_EP1 (1<<1) // R/W
++#define S3C2410_UDC_INTE_EP0 (1<<0) // R/W
++
++#define S3C2410_UDC_USBINTE_RESET (1<<2) // R/W
++#define S3C2410_UDC_USBINTE_SUSPEND (1<<0) // R/W
++
++
++#define S3C2410_UDC_INDEX_EP0 (0x00)
++#define S3C2410_UDC_INDEX_EP1 (0x01) // ??
++#define S3C2410_UDC_INDEX_EP2 (0x02) // ??
++#define S3C2410_UDC_INDEX_EP3 (0x03) // ??
++#define S3C2410_UDC_INDEX_EP4 (0x04) // ??
++
++#define S3C2410_UDC_ICSR1_CLRDT (1<<6) // R/W
++#define S3C2410_UDC_ICSR1_SENTSTL (1<<5) // R/W (clear only)
++#define S3C2410_UDC_ICSR1_SENDSTL (1<<4) // R/W
++#define S3C2410_UDC_ICSR1_FFLUSH (1<<3) // W (set only)
++#define S3C2410_UDC_ICSR1_UNDRUN (1<<2) // R/W (clear only)
++#define S3C2410_UDC_ICSR1_PKTRDY (1<<0) // R/W (set only)
++
++#define S3C2410_UDC_ICSR2_AUTOSET (1<<7) // R/W
++#define S3C2410_UDC_ICSR2_ISO (1<<6) // R/W
++#define S3C2410_UDC_ICSR2_MODEIN (1<<5) // R/W
++#define S3C2410_UDC_ICSR2_DMAIEN (1<<4) // R/W
++
++#define S3C2410_UDC_OCSR1_CLRDT (1<<7) // R/W
++#define S3C2410_UDC_OCSR1_SENTSTL (1<<6) // R/W (clear only)
++#define S3C2410_UDC_OCSR1_SENDSTL (1<<5) // R/W
++#define S3C2410_UDC_OCSR1_FFLUSH (1<<4) // R/W
++#define S3C2410_UDC_OCSR1_DERROR (1<<3) // R
++#define S3C2410_UDC_OCSR1_OVRRUN (1<<2) // R/W (clear only)
++#define S3C2410_UDC_OCSR1_PKTRDY (1<<0) // R/W (clear only)
++
++#define S3C2410_UDC_OCSR2_AUTOCLR (1<<7) // R/W
++#define S3C2410_UDC_OCSR2_ISO (1<<6) // R/W
++#define S3C2410_UDC_OCSR2_DMAIEN (1<<5) // R/W
++
++#define S3C2410_UDC_SETIX(base,x) \
++ writel(S3C2410_UDC_INDEX_ ## x, base+S3C2410_UDC_INDEX_REG);
++
++
++#define S3C2410_UDC_EP0_CSR_OPKRDY (1<<0)
++#define S3C2410_UDC_EP0_CSR_IPKRDY (1<<1)
++#define S3C2410_UDC_EP0_CSR_SENTSTL (1<<2)
++#define S3C2410_UDC_EP0_CSR_DE (1<<3)
++#define S3C2410_UDC_EP0_CSR_SE (1<<4)
++#define S3C2410_UDC_EP0_CSR_SENDSTL (1<<5)
++#define S3C2410_UDC_EP0_CSR_SOPKTRDY (1<<6)
++#define S3C2410_UDC_EP0_CSR_SSE (1<<7)
++
++#define S3C2410_UDC_MAXP_8 (1<<0)
++#define S3C2410_UDC_MAXP_16 (1<<1)
++#define S3C2410_UDC_MAXP_32 (1<<2)
++#define S3C2410_UDC_MAXP_64 (1<<3)
++
++
++#endif
+diff --git a/include/asm-arm/arch-s3c2410/regs-usb-otg-hs.h b/include/asm-arm/arch-s3c2410/regs-usb-otg-hs.h
+new file mode 100644
+index 0000000..7020a76
+--- /dev/null
++++ b/include/asm-arm/arch-s3c2410/regs-usb-otg-hs.h
+@@ -0,0 +1,307 @@
++/* linux/include/asm-arm/arch-s3c2410/regs-udc.h
++ *
++ * Copyright (C) 2004 Herbert Poetzl <herbert@13thfloor.at>
++ *
++ * This include file is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License, or (at your option) any later version.
++*/
++
++#ifndef __ASM_ARCH_REGS_USB_OTG_HS_H
++#define __ASM_ARCH_REGS_USB_OTG_HS_H
++
++/* USB2.0 OTG Controller register */
++#define S3C_USBOTG_PHYREG(x) ((x) + S3C24XX_VA_OTGSFR)
++#define S3C_USBOTG_PHYPWR S3C_USBOTG_PHYREG(0x0)
++#define S3C_USBOTG_PHYCLK S3C_USBOTG_PHYREG(0x4)
++#define S3C_USBOTG_RSTCON S3C_USBOTG_PHYREG(0x8)
++
++
++/* USB2.0 OTG Controller register */
++#define S3C_USBOTGREG(x) ((x) + S3C24XX_VA_OTG)
++//==============================================================================================
++ // Core Global Registers
++#define S3C_UDC_OTG_GOTGCTL S3C_USBOTGREG(0x000) // OTG Control & Status
++#define S3C_UDC_OTG_GOTGINT S3C_USBOTGREG(0x004) // OTG Interrupt
++#define S3C_UDC_OTG_GAHBCFG S3C_USBOTGREG(0x008) // Core AHB Configuration
++#define S3C_UDC_OTG_GUSBCFG S3C_USBOTGREG(0x00C) // Core USB Configuration
++#define S3C_UDC_OTG_GRSTCTL S3C_USBOTGREG(0x010) // Core Reset
++#define S3C_UDC_OTG_GINTSTS S3C_USBOTGREG(0x014) // Core Interrupt
++#define S3C_UDC_OTG_GINTMSK S3C_USBOTGREG(0x018) // Core Interrupt Mask
++#define S3C_UDC_OTG_GRXSTSR S3C_USBOTGREG(0x01C) // Receive Status Debug Read/Status Read
++#define S3C_UDC_OTG_GRXSTSP S3C_USBOTGREG(0x020) // Receive Status Debug Pop/Status Pop
++#define S3C_UDC_OTG_GRXFSIZ S3C_USBOTGREG(0x024) // Receive FIFO Size
++#define S3C_UDC_OTG_GNPTXFSIZ S3C_USBOTGREG(0x028) // Non-Periodic Transmit FIFO Size
++#define S3C_UDC_OTG_GNPTXSTS S3C_USBOTGREG(0x02C) // Non-Periodic Transmit FIFO/Queue Status
++
++#define S3C_UDC_OTG_HPTXFSIZ S3C_USBOTGREG(0x100) // Host Periodic Transmit FIFO Size
++#define S3C_UDC_OTG_DPTXFSIZ1 S3C_USBOTGREG(0x104) // Device Periodic Transmit FIFO-1 Size
++#define S3C_UDC_OTG_DPTXFSIZ2 S3C_USBOTGREG(0x108) // Device Periodic Transmit FIFO-2 Size
++#define S3C_UDC_OTG_DPTXFSIZ3 S3C_USBOTGREG(0x10C) // Device Periodic Transmit FIFO-3 Size
++#define S3C_UDC_OTG_DPTXFSIZ4 S3C_USBOTGREG(0x110) // Device Periodic Transmit FIFO-4 Size
++#define S3C_UDC_OTG_DPTXFSIZ5 S3C_USBOTGREG(0x114) // Device Periodic Transmit FIFO-5 Size
++#define S3C_UDC_OTG_DPTXFSIZ6 S3C_USBOTGREG(0x118) // Device Periodic Transmit FIFO-6 Size
++#define S3C_UDC_OTG_DPTXFSIZ7 S3C_USBOTGREG(0x11C) // Device Periodic Transmit FIFO-7 Size
++#define S3C_UDC_OTG_DPTXFSIZ8 S3C_USBOTGREG(0x120) // Device Periodic Transmit FIFO-8 Size
++#define S3C_UDC_OTG_DPTXFSIZ9 S3C_USBOTGREG(0x124) // Device Periodic Transmit FIFO-9 Size
++#define S3C_UDC_OTG_DPTXFSIZ10 S3C_USBOTGREG(0x128) // Device Periodic Transmit FIFO-10 Size
++#define S3C_UDC_OTG_DPTXFSIZ11 S3C_USBOTGREG(0x12C) // Device Periodic Transmit FIFO-11 Size
++#define S3C_UDC_OTG_DPTXFSIZ12 S3C_USBOTGREG(0x130) // Device Periodic Transmit FIFO-12 Size
++#define S3C_UDC_OTG_DPTXFSIZ13 S3C_USBOTGREG(0x134) // Device Periodic Transmit FIFO-13 Size
++#define S3C_UDC_OTG_DPTXFSIZ14 S3C_USBOTGREG(0x138) // Device Periodic Transmit FIFO-14 Size
++#define S3C_UDC_OTG_DPTXFSIZ15 S3C_USBOTGREG(0x13C) // Device Periodic Transmit FIFO-15 Size
++
++//==============================================================================================
++// Host Mode Registers
++//------------------------------------------------
++// Host Global Registers
++#define S3C_UDC_OTG_HCFG S3C_USBOTGREG(0x400) // Host Configuration
++#define S3C_UDC_OTG_HFIR S3C_USBOTGREG(0x404) // Host Frame Interval
++#define S3C_UDC_OTG_HFNUM S3C_USBOTGREG(0x408) // Host Frame Number/Frame Time Remaining
++#define S3C_UDC_OTG_HPTXSTS S3C_USBOTGREG(0x410) // Host Periodic Transmit FIFO/Queue Status
++#define S3C_UDC_OTG_HAINT S3C_USBOTGREG(0x414) // Host All Channels Interrupt
++#define S3C_UDC_OTG_HAINTMSK S3C_USBOTGREG(0x418) // Host All Channels Interrupt Mask
++
++//------------------------------------------------
++// Host Port Control & Status Registers
++#define S3C_UDC_OTG_HPRT S3C_USBOTGREG(0x440) // Host Port Control & Status
++
++//------------------------------------------------
++// Host Channel-Specific Registers
++#define S3C_UDC_OTG_HCCHAR0 S3C_USBOTGREG(0x500) // Host Channel-0 Characteristics
++#define S3C_UDC_OTG_HCSPLT0 S3C_USBOTGREG(0x504) // Host Channel-0 Split Control
++#define S3C_UDC_OTG_HCINT0 S3C_USBOTGREG(0x508) // Host Channel-0 Interrupt
++#define S3C_UDC_OTG_HCINTMSK0 S3C_USBOTGREG(0x50C) // Host Channel-0 Interrupt Mask
++#define S3C_UDC_OTG_HCTSIZ0 S3C_USBOTGREG(0x510) // Host Channel-0 Transfer Size
++#define S3C_UDC_OTG_HCDMA0 S3C_USBOTGREG(0x514) // Host Channel-0 DMA Address
++
++
++//==============================================================================================
++// Device Mode Registers
++//------------------------------------------------
++// Device Global Registers
++#define S3C_UDC_OTG_DCFG S3C_USBOTGREG(0x800) // Device Configuration
++#define S3C_UDC_OTG_DCTL S3C_USBOTGREG(0x804) // Device Control
++#define S3C_UDC_OTG_DSTS S3C_USBOTGREG(0x808) // Device Status
++#define S3C_UDC_OTG_DIEPMSK S3C_USBOTGREG(0x810) // Device IN Endpoint Common Interrupt Mask
++#define S3C_UDC_OTG_DOEPMSK S3C_USBOTGREG(0x814) // Device OUT Endpoint Common Interrupt Mask
++#define S3C_UDC_OTG_DAINT S3C_USBOTGREG(0x818) // Device All Endpoints Interrupt
++#define S3C_UDC_OTG_DAINTMSK S3C_USBOTGREG(0x81C) // Device All Endpoints Interrupt Mask
++#define S3C_UDC_OTG_DTKNQR1 S3C_USBOTGREG(0x820) // Device IN Token Sequence Learning Queue Read 1
++#define S3C_UDC_OTG_DTKNQR2 S3C_USBOTGREG(0x824) // Device IN Token Sequence Learning Queue Read 2
++#define S3C_UDC_OTG_DVBUSDIS S3C_USBOTGREG(0x828) // Device VBUS Discharge Time
++#define S3C_UDC_OTG_DVBUSPULSE S3C_USBOTGREG(0x82C) // Device VBUS Pulsing Time
++#define S3C_UDC_OTG_DTKNQR3 S3C_USBOTGREG(0x830) // Device IN Token Sequence Learning Queue Read 3
++#define S3C_UDC_OTG_DTKNQR4 S3C_USBOTGREG(0x834) // Device IN Token Sequence Learning Queue Read 4
++
++//------------------------------------------------
++// Device Logical IN Endpoint-Specific Registers
++#define S3C_UDC_OTG_DIEPCTL0 S3C_USBOTGREG(0x900) // Device IN Endpoint 0 Control
++#define S3C_UDC_OTG_DIEPINT0 S3C_USBOTGREG(0x908) // Device IN Endpoint 0 Interrupt
++#define S3C_UDC_OTG_DIEPTSIZ0 S3C_USBOTGREG(0x910) // Device IN Endpoint 0 Transfer Size
++#define S3C_UDC_OTG_DIEPDMA0 S3C_USBOTGREG(0x914) // Device IN Endpoint 0 DMA Address
++
++#define S3C_UDC_OTG_DIEPCTL1 S3C_USBOTGREG(0x920) // Device IN Endpoint 2 Control
++#define S3C_UDC_OTG_DIEPINT1 S3C_USBOTGREG(0x928) // Device IN Endpoint 2 Interrupt
++#define S3C_UDC_OTG_DIEPTSIZ1 S3C_USBOTGREG(0x930) // Device IN Endpoint 2 Transfer Size
++#define S3C_UDC_OTG_DIEPDMA1 S3C_USBOTGREG(0x934) // Device IN Endpoint 2 DMA Address
++
++#define S3C_UDC_OTG_DIEPCTL2 S3C_USBOTGREG(0x940) // Device IN Endpoint 2 Control
++#define S3C_UDC_OTG_DIEPINT2 S3C_USBOTGREG(0x948) // Device IN Endpoint 2 Interrupt
++#define S3C_UDC_OTG_DIEPTSIZ2 S3C_USBOTGREG(0x950) // Device IN Endpoint 2 Transfer Size
++#define S3C_UDC_OTG_DIEPDMA2 S3C_USBOTGREG(0x954) // Device IN Endpoint 2 DMA Address
++
++#define S3C_UDC_OTG_DIEPCTL3 S3C_USBOTGREG(0x960) // Device IN Endpoint 3 Control
++#define S3C_UDC_OTG_DIEPINT3 S3C_USBOTGREG(0x968) // Device IN Endpoint 3 Interrupt
++#define S3C_UDC_OTG_DIEPTSIZ3 S3C_USBOTGREG(0x970) // Device IN Endpoint 3 Transfer Size
++#define S3C_UDC_OTG_DIEPDMA3 S3C_USBOTGREG(0x974) // Device IN Endpoint 3 DMA Address
++
++#define S3C_UDC_OTG_DIEPCTL4 S3C_USBOTGREG(0x980) // Device IN Endpoint 4 Control
++#define S3C_UDC_OTG_DIEPINT4 S3C_USBOTGREG(0x988) // Device IN Endpoint 4 Interrupt
++#define S3C_UDC_OTG_DIEPTSIZ4 S3C_USBOTGREG(0x990) // Device IN Endpoint 4 Transfer Size
++#define S3C_UDC_OTG_DIEPDMA4 S3C_USBOTGREG(0x994) // Device IN Endpoint 4 DMA Address
++
++#define S3C_UDC_OTG_DIEPCTL5 S3C_USBOTGREG(0xa00) // Device IN Endpoint 5 Control
++#define S3C_UDC_OTG_DIEPINT5 S3C_USBOTGREG(0xa08) // Device IN Endpoint 5 Interrupt
++#define S3C_UDC_OTG_DIEPTSIZ5 S3C_USBOTGREG(0xa10) // Device IN Endpoint 5 Transfer Size
++#define S3C_UDC_OTG_DIEPDMA5 S3C_USBOTGREG(0xa14) // Device IN Endpoint 5 DMA Address
++
++#define S3C_UDC_OTG_DIEPCTL6 S3C_USBOTGREG(0xa20) // Device IN Endpoint 6 Control
++#define S3C_UDC_OTG_DIEPINT6 S3C_USBOTGREG(0xa28) // Device IN Endpoint 6 Interrupt
++#define S3C_UDC_OTG_DIEPTSIZ6 S3C_USBOTGREG(0xa30) // Device IN Endpoint 6 Transfer Size
++#define S3C_UDC_OTG_DIEPDMA6 S3C_USBOTGREG(0xa34) // Device IN Endpoint 6 DMA Address
++
++//------------------------------------------------
++// Device Logical OUT Endpoint-Specific Registers
++#define S3C_UDC_OTG_DOEPCTL0 S3C_USBOTGREG(0xB00) // Device OUT Endpoint 0 Control
++#define S3C_UDC_OTG_DOEPINT0 S3C_USBOTGREG(0xB08) // Device OUT Endpoint 0 Interrupt
++#define S3C_UDC_OTG_DOEPTSIZ0 S3C_USBOTGREG(0xB10) // Device OUT Endpoint 0 Transfer Size
++#define S3C_UDC_OTG_DOEPDMA0 S3C_USBOTGREG(0xB14) // Device OUT Endpoint 0 DMA Address
++
++#define S3C_UDC_OTG_DOEPCTL1 S3C_USBOTGREG(0xB20) // Device OUT Endpoint 1 Control
++#define S3C_UDC_OTG_DOEPINT1 S3C_USBOTGREG(0xB28) // Device OUT Endpoint 1 Interrupt
++#define S3C_UDC_OTG_DOEPTSIZ1 S3C_USBOTGREG(0xB30) // Device OUT Endpoint 1 Transfer Size
++#define S3C_UDC_OTG_DOEPDMA1 S3C_USBOTGREG(0xB34) // Device OUT Endpoint 1 DMA Address
++
++#define S3C_UDC_OTG_DOEPCTL2 S3C_USBOTGREG(0xB40) // Device OUT Endpoint 2 Control
++#define S3C_UDC_OTG_DOEPINT2 S3C_USBOTGREG(0xB48) // Device OUT Endpoint 2 Interrupt
++#define S3C_UDC_OTG_DOEPTSIZ2 S3C_USBOTGREG(0xB50) // Device OUT Endpoint 2 Transfer Size
++#define S3C_UDC_OTG_DOEPDMA2 S3C_USBOTGREG(0xB54) // Device OUT Endpoint 2 DMA Address
++
++#define S3C_UDC_OTG_DOEPCTL3 S3C_USBOTGREG(0xB60) // Device OUT Endpoint 3 Control
++#define S3C_UDC_OTG_DOEPINT3 S3C_USBOTGREG(0xB68) // Device OUT Endpoint 3 Interrupt
++#define S3C_UDC_OTG_DOEPTSIZ3 S3C_USBOTGREG(0xB70) // Device OUT Endpoint 3 Transfer Size
++#define S3C_UDC_OTG_DOEPDMA3 S3C_USBOTGREG(0xB74) // Device OUT Endpoint 3 DMA Address
++
++#define S3C_UDC_OTG_DOEPCTL4 S3C_USBOTGREG(0xB80) // Device OUT Endpoint 4 Control
++#define S3C_UDC_OTG_DOEPINT4 S3C_USBOTGREG(0xB88) // Device OUT Endpoint 4 Interrupt
++#define S3C_UDC_OTG_DOEPTSIZ4 S3C_USBOTGREG(0xB90) // Device OUT Endpoint 4 Transfer Size
++#define S3C_UDC_OTG_DOEPDMA4 S3C_USBOTGREG(0xB94) // Device OUT Endpoint 4 DMA Address
++
++//------------------------------------------------
++// Endpoint FIFO address
++#define S3C_UDC_OTG_EP0_FIFO S3C_USBOTGREG(0x1000)
++#define S3C_UDC_OTG_EP1_FIFO S3C_USBOTGREG(0x2000)
++#define S3C_UDC_OTG_EP2_FIFO S3C_USBOTGREG(0x3000)
++#define S3C_UDC_OTG_EP3_FIFO S3C_USBOTGREG(0x4000)
++#define S3C_UDC_OTG_EP4_FIFO S3C_USBOTGREG(0x5000)
++#define S3C_UDC_OTG_EP5_FIFO S3C_USBOTGREG(0x6000)
++#define S3C_UDC_OTG_EP6_FIFO S3C_USBOTGREG(0x7000)
++#define S3C_UDC_OTG_EP7_FIFO S3C_USBOTGREG(0x8000)
++#define S3C_UDC_OTG_EP8_FIFO S3C_USBOTGREG(0x9000)
++
++//=====================================================================
++//definitions related to CSR setting
++
++// S3C_UDC_OTG_GOTGCTL
++#define B_SESSION_VALID (0x1<<19)
++#define A_SESSION_VALID (0x1<<18)
++
++// S3C_UDC_OTG_GAHBCFG
++#define PTXFE_HALF (0<<8)
++#define PTXFE_ZERO (1<<8)
++#define NPTXFE_HALF (0<<7)
++#define NPTXFE_ZERO (1<<7)
++#define MODE_SLAVE (0<<5)
++#define MODE_DMA (1<<5)
++#define BURST_SINGLE (0<<1)
++#define BURST_INCR (1<<1)
++#define BURST_INCR4 (3<<1)
++#define BURST_INCR8 (5<<1)
++#define BURST_INCR16 (7<<1)
++#define GBL_INT_UNMASK (1<<0)
++#define GBL_INT_MASK (0<<0)
++
++// S3C_UDC_OTG_GRSTCTL
++#define AHB_MASTER_IDLE (1u<<31)
++#define CORE_SOFT_RESET (0x1<<0)
++
++// S3C_UDC_OTG_GINTSTS/S3C_UDC_OTG_GINTMSK core interrupt register
++#define INT_RESUME (1u<<31)
++#define INT_DISCONN (0x1<<29)
++#define INT_CONN_ID_STS_CNG (0x1<<28)
++#define INT_OUT_EP (0x1<<19)
++#define INT_IN_EP (0x1<<18)
++#define INT_ENUMDONE (0x1<<13)
++#define INT_RESET (0x1<<12)
++#define INT_SUSPEND (0x1<<11)
++#define INT_EARLY_SUSPEND (0x1<<10)
++#define INT_NP_TX_FIFO_EMPTY (0x1<<5)
++#define INT_RX_FIFO_NOT_EMPTY (0x1<<4)
++#define INT_SOF (0x1<<3)
++#define INT_DEV_MODE (0x0<<0)
++#define INT_HOST_MODE (0x1<<1)
++#define INT_GOUTNakEff (0x01<<7)
++#define INT_GINNakEff (0x01<<6)
++
++#define FULL_SPEED_CONTROL_PKT_SIZE 8
++#define FULL_SPEED_BULK_PKT_SIZE 64
++
++#define HIGH_SPEED_CONTROL_PKT_SIZE 64
++#define HIGH_SPEED_BULK_PKT_SIZE 512
++
++#define RX_FIFO_SIZE 2048
++#define NPTX_FIFO_START_ADDR RX_FIFO_SIZE
++#define NPTX_FIFO_SIZE 2048
++#define PTX_FIFO_SIZE 2048
++
++#define DEPCTL_TXFNUM_0 (0x0<<22)
++#define DEPCTL_TXFNUM_1 (0x1<<22)
++#define DEPCTL_TXFNUM_2 (0x2<<22)
++#define DEPCTL_TXFNUM_3 (0x3<<22)
++#define DEPCTL_TXFNUM_4 (0x4<<22)
++
++
++// Enumeration speed
++#define USB_HIGH_30_60MHZ (0x0<<1)
++#define USB_FULL_30_60MHZ (0x1<<1)
++#define USB_LOW_6MHZ (0x2<<1)
++#define USB_FULL_48MHZ (0x3<<1)
++
++// S3C_UDC_OTG_GRXSTSP STATUS
++#define OUT_PKT_RECEIVED (0x2<<17)
++#define OUT_TRANSFER_COMPLELTED (0x3<<17)
++#define SETUP_TRANSACTION_COMPLETED (0x4<<17)
++#define SETUP_PKT_RECEIVED (0x6<<17)
++#define GLOBAL_OUT_NAK (0x1<<17)
++
++
++// S3C_UDC_OTG_DCTL device control register
++#define NORMAL_OPERATION (0x1<<0)
++#define SOFT_DISCONNECT (0x1<<1)
++
++// S3C_UDC_OTG_DAINT device all endpoint interrupt register
++#define S3C_UDC_INT_IN_EP0 (0x1<<0)
++#define S3C_UDC_INT_IN_EP2 (0x1<<2)
++#define S3C_UDC_INT_IN_EP3 (0x1<<3)
++#define S3C_UDC_INT_OUT_EP0 (0x1<<16)
++#define S3C_UDC_INT_OUT_EP1 (0x1<<17)
++#define S3C_UDC_INT_OUT_EP4 (0x1<<20)
++
++
++
++// S3C_UDC_OTG_DIEPCTL0/DOEPCTL0 device control IN/OUT endpoint 0 control register
++#define DEPCTL_EPENA (0x1<<31)
++#define DEPCTL_EPDIS (0x1<<30)
++#define DEPCTL_SNAK (0x1<<27)
++#define DEPCTL_CNAK (0x1<<26)
++#define DEPCTL_CTRL_TYPE (0x0<<18)
++#define DEPCTL_ISO_TYPE (0x1<<18)
++#define DEPCTL_BULK_TYPE (0x2<<18)
++#define DEPCTL_INTR_TYPE (0x3<<18)
++#define DEPCTL_USBACTEP (0x1<<15)
++#define DEPCTL0_MPS_64 (0x0<<0)
++#define DEPCTL0_MPS_32 (0x1<<0)
++#define DEPCTL0_MPS_16 (0x2<<0)
++#define DEPCTL0_MPS_8 (0x3<<0)
++#define DEPCTL_MPS_BULK_512 (512<<0)
++#define DEPCTL_MPS_INT_MPS_16 (16<<0)
++
++#define DIEPCTL0_NEXT_EP_BIT (11)
++
++// S3C_UDC_OTG_DIEPCTLn/DOEPCTLn device control IN/OUT endpoint n control register
++
++// S3C_UDC_OTG_DIEPMSK/DOEPMSK device IN/OUT endpoint common interrupt mask register
++// S3C_UDC_OTG_DIEPINTn/DOEPINTn device IN/OUT endpoint interrupt register
++#define BACK2BACK_SETUP_RECEIVED (0x1<<6)
++#define INTKNEPMIS (0x1<<5)
++#define INTKN_TXFEMP (0x1<<4)
++#define NON_ISO_IN_EP_TIMEOUT (0x1<<3)
++#define CTRL_OUT_EP_SETUP_PHASE_DONE (0x1<<3)
++#define AHB_ERROR (0x1<<2)
++#define EPDISBLD (0x1<<1)
++#define TRANSFER_DONE (0x1<<0)
++
++//DIEPTSIZ0 / DOEPTSIZ0
++
++// DEPTSIZ common bit
++#define DEPTSIZ_PKT_CNT_BIT (19)
++#define DEPTSIZ_XFER_SIZE_BIT (0)
++
++#define DEPTSIZ_SETUP_PKCNT_1 (1<<29)
++#define DEPTSIZ_SETUP_PKCNT_2 (2<<29)
++#define DEPTSIZ_SETUP_PKCNT_3 (3<<29)
++
++
++#endif
+diff --git a/include/asm-arm/arch-s3c2410/reserved_mem.h b/include/asm-arm/arch-s3c2410/reserved_mem.h
+new file mode 100644
+index 0000000..4fa5611
+--- /dev/null
++++ b/include/asm-arm/arch-s3c2410/reserved_mem.h
+@@ -0,0 +1,89 @@
++#ifndef _ASM_ARM_ARCH_RESERVED_MEM_H
++#define _ASM_ARM_ARCH_RESERVED_MEM_H
++
++
++/*
++ * Default reserved memory size
++ * MFC : 6 MB
++ * Post : 8 MB
++ * JPEG : 8 MB
++ * CMM : 8 MB
++ * TV : 8 MB
++ * Camera : 15 MB
++ * These sizes can be modified
++ */
++
++
++//#define CONFIG_RESERVED_MEM_JPEG
++//#define CONFIG_RESERVED_MEM_JPEG_POST
++//#define CONFIG_RESERVED_MEM_MFC
++//#define CONFIG_RESERVED_MEM_MFC_POST
++//#define CONFIG_RESERVED_MEM_JPEG_MFC_POST
++//#define CONFIG_RESERVED_MEM_JPEG_CAMERA
++//#define CONFIG_RESERVED_MEM_JPEG_POST_CAMERA
++//#define CONFIG_RESERVED_MEM_MFC_CAMERA
++//#define CONFIG_RESERVED_MEM_MFC_POST_CAMERA
++//#define CONFIG_RESERVED_MEM_JPEG_MFC_POST_CAMERA
++//#define CONFIG_RESERVED_MEM_CMM_MFC_POST
++//#define CONFIG_RESERVED_MEM_CMM_JPEG_MFC_POST_CAMERA
++//#define CONFIG_RESERVED_MEM_TV_MFC_POST_CAMERA
++
++#if defined(CONFIG_RESERVED_MEM_JPEG)
++#define JPEG_RESERVED_MEM_START 0x57800000
++
++#elif defined(CONFIG_RESERVED_MEM_JPEG_POST)
++#define JPEG_RESERVED_MEM_START 0x57000000
++#define POST_RESERVED_MEM_START 0x57800000
++
++#elif defined(CONFIG_RESERVED_MEM_MFC)
++#define MFC_RESERVED_MEM_START 0x57A00000
++
++#elif defined(CONFIG_RESERVED_MEM_MFC_POST)
++#define MFC_RESERVED_MEM_START 0x57200000
++#define POST_RESERVED_MEM_START 0x57800000
++
++#elif defined(CONFIG_RESERVED_MEM_JPEG_MFC_POST)
++#define JPEG_RESERVED_MEM_START 0x56A00000
++#define MFC_RESERVED_MEM_START 0x57200000
++#define POST_RESERVED_MEM_START 0x57800000
++
++#elif defined(CONFIG_RESERVED_MEM_JPEG_CAMERA)
++#define JPEG_RESERVED_MEM_START 0x56900000
++
++#elif defined(CONFIG_RESERVED_MEM_JPEG_POST_CAMERA)
++#define JPEG_RESERVED_MEM_START 0x56100000
++#define POST_RESERVED_MEM_START 0x56900000
++
++#elif defined(CONFIG_RESERVED_MEM_MFC_CAMERA)
++#define MFC_RESERVED_MEM_START 0x56B00000
++
++#elif defined(CONFIG_RESERVED_MEM_MFC_POST_CAMERA)
++#define MFC_RESERVED_MEM_START 0x56300000
++#define POST_RESERVED_MEM_START 0x56900000
++
++#elif defined(CONFIG_RESERVED_MEM_JPEG_MFC_POST_CAMERA)
++#define JPEG_RESERVED_MEM_START 0x55B00000
++#define MFC_RESERVED_MEM_START 0x56300000
++#define POST_RESERVED_MEM_START 0x56900000
++
++#elif defined (CONFIG_RESERVED_MEM_CMM_MFC_POST)
++#define CMM_RESERVED_MEM_START 0x56A00000
++#define MFC_RESERVED_MEM_START 0x57200000
++#define POST_RESERVED_MEM_START 0x57800000
++
++#elif defined (CONFIG_RESERVED_MEM_CMM_JPEG_MFC_POST_CAMERA)
++#define CMM_RESERVED_MEM_START 0x55300000
++#define JPEG_RESERVED_MEM_START 0x55B00000
++#define MFC_RESERVED_MEM_START 0x56300000
++#define POST_RESERVED_MEM_START 0x56900000
++
++#elif defined (CONFIG_RESERVED_MEM_TV_MFC_POST_CAMERA)
++#define TV_RESERVED_MEM_START 0x55B00000
++#define MFC_RESERVED_MEM_START 0x56300000
++#define POST_RESERVED_MEM_START 0x56900000
++
++#endif
++
++
++#endif /* _ASM_ARM_ARCH_RESERVED_MEM_H */
++
+diff --git a/include/asm-arm/arch-s3c2410/system.h b/include/asm-arm/arch-s3c2410/system.h
+index 6389178..91a0d0c 100644
+--- a/include/asm-arm/arch-s3c2410/system.h
++++ b/include/asm-arm/arch-s3c2410/system.h
+@@ -56,6 +56,7 @@ static void arch_idle(void)
+ s3c24xx_default_idle();
+ }
+
++#if !defined(CONFIG_CPU_S3C6400) && !defined(CONFIG_CPU_S3C6410)
+ static void
+ arch_reset(char mode)
+ {
+@@ -86,3 +87,28 @@ arch_reset(char mode)
+ /* we'll take a jump through zero as a poor second */
+ cpu_reset(0);
+ }
++#else
++#define S3C6400_SW_RESET_OFF 0x114
++static void
++arch_reset(char mode)
++{
++ if (mode == 's') {
++ cpu_reset(0);
++ }
++
++ if (s3c24xx_reset_hook)
++ s3c24xx_reset_hook();
++
++ printk("arch_reset: attempting watchdog reset\n");
++
++ __raw_writel(0x6400, S3C24XX_VA_SYSCON + S3C6400_SW_RESET_OFF);
++
++ /* wait for reset to assert... */
++ mdelay(5000);
++
++ printk(KERN_ERR "Watchdog reset failed to assert reset\n");
++
++ /* we'll take a jump through zero as a poor second */
++ cpu_reset(0);
++}
++#endif
+diff --git a/include/asm-arm/arch-s3c2410/timex.h b/include/asm-arm/arch-s3c2410/timex.h
+index c16a99c..13a2a27 100644
+--- a/include/asm-arm/arch-s3c2410/timex.h
++++ b/include/asm-arm/arch-s3c2410/timex.h
+@@ -18,9 +18,20 @@
+ * exact multiple of HZ, any value that makes a 1->1 correspondence
+ * for the time conversion functions to/from jiffies is acceptable.
+ */
++#if defined (CONFIG_PLAT_S3C64XX) || defined (CONFIG_PLAT_S5PC1XX)
+
++#define PRESCALER 4
++#define DIVIDER 1
++
++#define PCLK_INPUT 51000000
++/* CLOCK_TICK_RATE is the time of a timer count desence, minsung says*/
++#define CLOCK_TICK_RATE (PCLK_INPUT / ((PRESCALER + 1) * DIVIDER))
++
++
++#else
+
+ #define CLOCK_TICK_RATE 12000000
+
++#endif
+
+ #endif /* __ASM_ARCH_TIMEX_H */
+diff --git a/include/asm-arm/irq.h b/include/asm-arm/irq.h
+index 1b882a2..8bf9c64 100644
+--- a/include/asm-arm/irq.h
++++ b/include/asm-arm/irq.h
+@@ -1,7 +1,11 @@
+ #ifndef __ASM_ARM_IRQ_H
+ #define __ASM_ARM_IRQ_H
+
++#ifdef CONFIG_CPU_S5PC100
++#include <asm/arch/irqs-s5pc100.h>
++#else
+ #include <asm/arch/irqs.h>
++#endif
+
+ #ifndef irq_canonicalize
+ #define irq_canonicalize(i) (i)
+diff --git a/include/asm-arm/memory.h b/include/asm-arm/memory.h
+index d9bfb39..2487829 100644
+--- a/include/asm-arm/memory.h
++++ b/include/asm-arm/memory.h
+@@ -114,7 +114,7 @@
+ * between 2MB and 14MB inclusive.
+ */
+ #ifndef CONSISTENT_DMA_SIZE
+-#define CONSISTENT_DMA_SIZE SZ_2M
++#define CONSISTENT_DMA_SIZE (SZ_8M + SZ_4M)
+ #endif
+
+ /*
+diff --git a/include/asm-arm/plat-s3c/adc.h b/include/asm-arm/plat-s3c/adc.h
+new file mode 100644
+index 0000000..9224e37
+--- /dev/null
++++ b/include/asm-arm/plat-s3c/adc.h
+@@ -0,0 +1,29 @@
++/* linux/include/asm-arm/plat-s3c/adc.h
++ *
++ * Copyright (c) 2008 Jongpill Lee <Jongpill.Lee>
++ *
++ * This program is header file for ADC Driver in s3c64xx of SAMSUNG ELECTRONICS
++ *
++ */
++
++extern unsigned int s3c_adc_convert(void __iomem * reg_base, unsigned int s3c_adc_port);
++extern struct s3c_adc_cfg s3c_adc_platform;
++
++struct s3c_adc_request
++{
++ /* for linked list */
++ struct list_head *list;
++ /* after finish ADC sampling, s3c_adc_request function call this function with three parameter */
++ void (*callback)( int channel, unsigned long int param, unsigned short sample);
++ /* for private data */
++ unsigned long int param;
++ /* selected channel for ADC sampling */
++ int channel;
++};
++
++struct s3c_adc_cfg{
++ /* if you need to use some platform data, add in here*/
++ int delay;
++ int presc;
++ int resolution;
++};
+diff --git a/include/asm-arm/plat-s3c/iic.h b/include/asm-arm/plat-s3c/iic.h
+index 71211c8..e7e0e16 100644
+--- a/include/asm-arm/plat-s3c/iic.h
++++ b/include/asm-arm/plat-s3c/iic.h
+@@ -21,12 +21,15 @@
+ */
+
+ struct s3c2410_platform_i2c {
++ int bus_num; /* bus number to use */
+ unsigned int flags;
+ unsigned int slave_addr; /* slave address for controller */
+ unsigned long bus_freq; /* standard bus frequency */
+ unsigned long max_freq; /* max frequency for the bus */
+ unsigned long min_freq; /* min frequency for the bus */
+ unsigned int sda_delay; /* pclks (s3c2440 only) */
++
++ void (*cfg_gpio)(struct platform_device *dev);
+ };
+
+ #endif /* __ASM_ARCH_IIC_H */
+diff --git a/include/asm-arm/plat-s3c/map.h b/include/asm-arm/plat-s3c/map.h
+index b84289d..20801c5 100644
+--- a/include/asm-arm/plat-s3c/map.h
++++ b/include/asm-arm/plat-s3c/map.h
+@@ -30,11 +30,34 @@
+ #define S3C_ADDR(x) (S3C_ADDR_BASE + (x))
+ #endif
+
++#if defined(CONFIG_PLAT_S3C64XX) || defined(CONFIG_PLAT_S5PC1XX)
++#define S3C_VA_IRQ S3C_ADDR(0x00700000) /* irq controller(s) in size of 2 or 4 MB */
++#else
+ #define S3C_VA_IRQ S3C_ADDR(0x00000000) /* irq controller(s) */
++#endif
++
+ #define S3C_VA_SYS S3C_ADDR(0x00100000) /* system control */
+-#define S3C_VA_MEM S3C_ADDR(0x00200000) /* system control */
++#define S3C_VA_MEM S3C_ADDR(0x00200000) /* mem control */
+ #define S3C_VA_TIMER S3C_ADDR(0x00300000) /* timer block */
+ #define S3C_VA_WATCHDOG S3C_ADDR(0x00400000) /* watchdog */
+ #define S3C_VA_UART S3C_ADDR(0x01000000) /* UART */
+
++/* For S3C2450/S3C6400/S3C6410 */
++#define S3C_VA_LCD S3C_ADDR(0x00500000) /* LCD */
++#define S3C_VA_GPIO S3C_ADDR(0x00600000) /* GPIO */
++#define S3C_VA_HOSTIFA S3C_ADDR(0x00B00000) /* Host I/F Indirect & Direct */
++#define S3C_VA_HOSTIFB S3C_ADDR(0x00C00000) /* Host I/F Indirect & Direct */
++#define S3C_VA_SYSCON S3C_ADDR(0x02800000) /* System Controller */
++#define S3C_VA_CS8900 S3C_ADDR(0x03600000) /* Ethernet */
++#define S3C_VA_SROMC S3C_ADDR(0x03700000) /* SROM SFR */
++#define S3C_VA_DMC0 S3C_ADDR(0x01f00000) /* DRAM controller 0 */
++#if !defined(CONFIG_PLAT_S5PC1XX)
++#define S3C_VA_DMC1 S3C_ADDR(0x03800000) /* DRAM controller 1 */
++#endif
++#define S3C_VA_OTG S3C_ADDR(0x03900000) /* USB OTG */
++#define S3C_VA_OTGSFR S3C_ADDR(0x03a00000) /* USB OTG SFR */
++#define S3C_VA_EBI S3C_ADDR(0x03c00000) /* EBI registers */
++#define S3C_VA_USBDEV S3C_ADDR(0x03d00000) /* EBI registers */
++
++#define S3C_VA_CHIP_ID S3C_ADDR(0x03f00000) /* Chip ID */
+ #endif /* __ASM_PLAT_MAP_H */
+diff --git a/include/asm-arm/plat-s3c/nand.h b/include/asm-arm/plat-s3c/nand.h
+index 8816f7f..e61c927 100644
+--- a/include/asm-arm/plat-s3c/nand.h
++++ b/include/asm-arm/plat-s3c/nand.h
+@@ -43,3 +43,9 @@ struct s3c2410_platform_nand {
+ int chip);
+ };
+
++struct s3c_nand_mtd_info {
++ uint chip_nr;
++ uint mtd_part_nr;
++ struct mtd_partition *partition;
++};
++
+diff --git a/include/asm-arm/plat-s3c/regs-adc.h b/include/asm-arm/plat-s3c/regs-adc.h
+index c7f2319..aa86c3e 100644
+--- a/include/asm-arm/plat-s3c/regs-adc.h
++++ b/include/asm-arm/plat-s3c/regs-adc.h
+@@ -19,15 +19,24 @@
+ #define S3C2410_ADCDLY S3C2410_ADCREG(0x08)
+ #define S3C2410_ADCDAT0 S3C2410_ADCREG(0x0C)
+ #define S3C2410_ADCDAT1 S3C2410_ADCREG(0x10)
++#define S3C2410_ADCUPDN S3C2410_ADCREG(0x14)
++#define S3C2443_ADCMUX S3C2410_ADCREG(0x18)
++#define S3C6400_ADCCLRINT S3C2410_ADCREG(0x18)
++#define S3C6400_ADCCLRWK S3C2410_ADCREG(0x20)
+
+
+ /* ADCCON Register Bits */
++#define S3C6410_ADCCON_RESSEL_10BIT (0x0<<16)
++#define S3C6410_ADCCON_RESSEL_12BIT (0x1<<16)
+ #define S3C2410_ADCCON_ECFLG (1<<15)
+ #define S3C2410_ADCCON_PRSCEN (1<<14)
+ #define S3C2410_ADCCON_PRSCVL(x) (((x)&0xFF)<<6)
+ #define S3C2410_ADCCON_PRSCVLMASK (0xFF<<6)
+ #define S3C2410_ADCCON_SELMUX(x) (((x)&0x7)<<3)
++#define S3C2443_ADCCON_SELMUX(x) (((x)&0xF)<<0)
+ #define S3C2410_ADCCON_MUXMASK (0x7<<3)
++#define S3C2450_ADCCON_RESSEL_10BIT (0x0<<3)
++#define S3C2450_ADCCON_RESSEL_12BIT (0x1<<3)
+ #define S3C2410_ADCCON_STDBM (1<<2)
+ #define S3C2410_ADCCON_READ_START (1<<1)
+ #define S3C2410_ADCCON_ENABLE_START (1<<0)
+@@ -35,6 +44,7 @@
+
+
+ /* ADCTSC Register Bits */
++#define S3C2410_ADCTSC_UD_SEN (1<<8)
+ #define S3C2410_ADCTSC_YM_SEN (1<<7)
+ #define S3C2410_ADCTSC_YP_SEN (1<<6)
+ #define S3C2410_ADCTSC_XM_SEN (1<<5)
+@@ -48,12 +58,14 @@
+ #define S3C2410_ADCDAT0_AUTO_PST (1<<14)
+ #define S3C2410_ADCDAT0_XY_PST (0x3<<12)
+ #define S3C2410_ADCDAT0_XPDATA_MASK (0x03FF)
++#define S3C_ADCDAT0_XPDATA_MASK_12BIT (0x0FFF)
+
+ /* ADCDAT1 Bits */
+ #define S3C2410_ADCDAT1_UPDOWN (1<<15)
+ #define S3C2410_ADCDAT1_AUTO_PST (1<<14)
+ #define S3C2410_ADCDAT1_XY_PST (0x3<<12)
+ #define S3C2410_ADCDAT1_YPDATA_MASK (0x03FF)
++#define S3C_ADCDAT1_YPDATA_MASK_12BIT (0x0FFF)
+
+ #endif /* __ASM_ARCH_REGS_ADC_H */
+
+diff --git a/include/asm-arm/plat-s3c/regs-iic.h b/include/asm-arm/plat-s3c/regs-iic.h
+index 2ae2952..e54ace4 100644
+--- a/include/asm-arm/plat-s3c/regs-iic.h
++++ b/include/asm-arm/plat-s3c/regs-iic.h
+@@ -15,6 +15,8 @@
+
+ /* see s3c2410x user guide, v1.1, section 9 (p447) for more info */
+
++#ifndef CONFIG_PLAT_S3C64XX
++
+ #define S3C2410_IICREG(x) (x)
+
+ #define S3C2410_IICCON S3C2410_IICREG(0x00)
+@@ -53,4 +55,46 @@
+
+ #define S3C2410_IICLC_FILTER_ON (1<<2)
+
++#else
++
++#define S3C64XX_IICREG(x) (x)
++
++#define S3C64XX_IICCON S3C64XX_IICREG(0x00)
++#define S3C64XX_IICSTAT S3C64XX_IICREG(0x04)
++#define S3C64XX_IICADD S3C64XX_IICREG(0x08)
++#define S3C64XX_IICDS S3C64XX_IICREG(0x0C)
++#define S3C2440_IICLC S3C64XX_IICREG(0x10)
++
++#define S3C64XX_IICCON_ACKEN (1<<7)
++#define S3C64XX_IICCON_TXDIV_16 (0<<6)
++#define S3C64XX_IICCON_TXDIV_512 (1<<6)
++#define S3C64XX_IICCON_IRQEN (1<<5)
++#define S3C64XX_IICCON_IRQPEND (1<<4)
++#define S3C64XX_IICCON_SCALE(x) ((x)&15)
++#define S3C64XX_IICCON_SCALEMASK (0xf)
++
++#define S3C64XX_IICSTAT_MASTER_RX (2<<6)
++#define S3C64XX_IICSTAT_MASTER_TX (3<<6)
++#define S3C64XX_IICSTAT_SLAVE_RX (0<<6)
++#define S3C64XX_IICSTAT_SLAVE_TX (1<<6)
++#define S3C64XX_IICSTAT_MODEMASK (3<<6)
++
++#define S3C64XX_IICSTAT_START (1<<5)
++#define S3C64XX_IICSTAT_BUSBUSY (1<<5)
++#define S3C64XX_IICSTAT_TXRXEN (1<<4)
++#define S3C64XX_IICSTAT_ARBITR (1<<3)
++#define S3C64XX_IICSTAT_ASSLAVE (1<<2)
++#define S3C64XX_IICSTAT_ADDR0 (1<<1)
++#define S3C64XX_IICSTAT_LASTBIT (1<<0)
++
++#define S3C64XX_IICLC_SDA_DELAY0 (0 << 0)
++#define S3C64XX_IICLC_SDA_DELAY5 (1 << 0)
++#define S3C64XX_IICLC_SDA_DELAY10 (2 << 0)
++#define S3C64XX_IICLC_SDA_DELAY15 (3 << 0)
++#define S3C64XX_IICLC_SDA_DELAY_MASK (3 << 0)
++
++#define S3C64XX_IICLC_FILTER_ON (1<<2)
++
++#endif
++
+ #endif /* __ASM_ARCH_REGS_IIC_H */
+diff --git a/include/asm-arm/plat-s3c/regs-nand.h b/include/asm-arm/plat-s3c/regs-nand.h
+index d742205..a010b85 100644
+--- a/include/asm-arm/plat-s3c/regs-nand.h
++++ b/include/asm-arm/plat-s3c/regs-nand.h
+@@ -11,7 +11,7 @@
+ */
+
+ #ifndef __ASM_ARM_REGS_NAND
+-#define __ASM_ARM_REGS_NAND "$Id: nand.h,v 1.3 2003/12/09 11:36:29 ben Exp $"
++#define __ASM_ARM_REGS_NAND "$Id: regs-nand.h,v 1.3 2008/09/12 05:19:53 jsgood Exp $"
+
+
+ #define S3C2410_NFREG(x) (x)
+@@ -85,6 +85,13 @@
+ #define S3C2412_NFCONF_NANDBOOT (1<<31)
+ #define S3C2412_NFCONF_ECCCLKCON (1<<30)
+ #define S3C2412_NFCONF_ECC_MLC (1<<24)
++
++#if defined(CONFIG_CPU_S3C6410) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++#define S3C_NFCONF_ECC_1BIT (0<<23)
++#define S3C_NFCONF_ECC_4BIT (2<<23)
++#define S3C_NFCONF_ECC_8BIT (1<<23)
++#endif
++
+ #define S3C2412_NFCONF_TACLS_MASK (7<<12) /* 1 extra bit of Tacls */
+
+ #define S3C2412_NFCONT_ECC4_DIRWR (1<<18)
+@@ -117,6 +124,15 @@
+ #define S3C2412_NFECCERR_MULTIBIT (2)
+ #define S3C2412_NFECCERR_ECCAREA (3)
+
++#define S3C_NFMLCBITPT S3C2410_NFREG(0x40)
++
++#define S3C_NFCONF_PAGESIZE (1<<2)
++#define S3C_NFCONF_ADDRCYCLE (1<<1)
++#define S3C_NFSTAT0_ECCBUSY (1<<31)
++#define S3C_NFCONT_SECC_LOCK (1<<6)
++#define S3C_NFCONT_INITMECC (1<<5)
++#define S3C_NFCONT_INITSECC (1<<4)
++#define S3C_NFCONT_INITECC (S3C_NFCONT_INITSECC | S3C_NFCONT_INITMECC)
+
+
+ #endif /* __ASM_ARM_REGS_NAND */
+diff --git a/include/asm-arm/plat-s3c/regs-rtc.h b/include/asm-arm/plat-s3c/regs-rtc.h
+index 93b03c4..d81eedb 100644
+--- a/include/asm-arm/plat-s3c/regs-rtc.h
++++ b/include/asm-arm/plat-s3c/regs-rtc.h
+@@ -21,6 +21,22 @@
+ #define S3C2410_RTCCON_CNTSEL (1<<2)
+ #define S3C2410_RTCCON_CLKRST (1<<3)
+
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
++#define S3C_MAX_CNT 32768
++#define S3C_RTCCON_TICEN (1<<8)
++#define S3C_RTC_TICNT S3C2410_RTCREG(0x40)
++#else
++#define S3C_INTP_ALM (1<<1)
++#define S3C_MAX_CNT 128
++#define S3C_RTCCON_TICEN (1<<7)
++#define S3C_RTC_TICNT S3C2410_RTCREG(0x44)
++#endif
++
++/* Common Reg for samsung AP*/
++#define S3C_INTP S3C2410_RTCREG(0x30)
++#define S3C_INTP_ALM (1<<1)
++#define S3C_INTP_TIC (1<<0)
++
+ #define S3C2410_TICNT S3C2410_RTCREG(0x44)
+ #define S3C2410_TICNT_ENABLE (1<<7)
+
+diff --git a/include/asm-arm/plat-s3c/regs-serial.h b/include/asm-arm/plat-s3c/regs-serial.h
+index 923e114..78f50da 100644
+--- a/include/asm-arm/plat-s3c/regs-serial.h
++++ b/include/asm-arm/plat-s3c/regs-serial.h
+@@ -32,15 +32,27 @@
+ #ifndef __ASM_ARM_REGS_SERIAL_H
+ #define __ASM_ARM_REGS_SERIAL_H
+
++#if defined(CONFIG_PLAT_S3C64XX) || defined(CONFIG_PLAT_S5PC1XX)
+ #define S3C24XX_VA_UART0 (S3C_VA_UART)
+-#define S3C24XX_VA_UART1 (S3C_VA_UART + 0x4000 )
+-#define S3C24XX_VA_UART2 (S3C_VA_UART + 0x8000 )
+-#define S3C24XX_VA_UART3 (S3C_VA_UART + 0xC000 )
++#define S3C24XX_VA_UART1 (S3C_VA_UART + 0x400)
++#define S3C24XX_VA_UART2 (S3C_VA_UART + 0x800)
++#define S3C24XX_VA_UART3 (S3C_VA_UART + 0xC00)
+
+ #define S3C2410_PA_UART0 (S3C24XX_PA_UART)
+-#define S3C2410_PA_UART1 (S3C24XX_PA_UART + 0x4000 )
+-#define S3C2410_PA_UART2 (S3C24XX_PA_UART + 0x8000 )
+-#define S3C2443_PA_UART3 (S3C24XX_PA_UART + 0xC000 )
++#define S3C2410_PA_UART1 (S3C24XX_PA_UART + 0x400)
++#define S3C2410_PA_UART2 (S3C24XX_PA_UART + 0x800)
++#define S3C2443_PA_UART3 (S3C24XX_PA_UART + 0xC00)
++#else
++#define S3C24XX_VA_UART0 (S3C_VA_UART)
++#define S3C24XX_VA_UART1 (S3C_VA_UART + 0x4000)
++#define S3C24XX_VA_UART2 (S3C_VA_UART + 0x8000)
++#define S3C24XX_VA_UART3 (S3C_VA_UART + 0xC000)
++
++#define S3C2410_PA_UART0 (S3C24XX_PA_UART)
++#define S3C2410_PA_UART1 (S3C24XX_PA_UART + 0x4000)
++#define S3C2410_PA_UART2 (S3C24XX_PA_UART + 0x8000)
++#define S3C2443_PA_UART3 (S3C24XX_PA_UART + 0xC000)
++#endif
+
+ #define S3C2410_URXH (0x24)
+ #define S3C2410_UTXH (0x20)
+@@ -175,6 +187,124 @@
+
+ #define S3C2443_DIVSLOT (0x2C)
+
++
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410) || defined(CONFIG_CPU_S5PC100)
++#define S3C_IRQ_UART0 IRQ_UART0
++#define S3C_IRQ_UART1 IRQ_UART1
++#define S3C_IRQ_UART2 IRQ_UART2
++#define S3C_IRQ_UART3 IRQ_UART3
++
++#define S3C_ULCON (0x00)
++#define S3C_UCON (0x04)
++#define S3C_UFCON (0x08)
++#define S3C_UMCON (0x0C)
++#define S3C_UTRSTAT (0x10)
++#define S3C_UERSTAT (0x14)
++#define S3C_UFSTAT (0x18)
++#define S3C_UMSTAT (0x1C)
++#define S3C_UTXH (0x20)
++#define S3C_URXH (0x24)
++#define S3C_UBRDIV (0x28)
++#define S3C_UDIVSLOT (0x2C)
++#define S3C_UINTPND (0x30)
++#define S3C_UINTSP (0x34)
++#define S3C_UINTMSK (0x38)
++
++/* base definitions for UART Line Control Register */
++#define S3C_LCON_CFGMASK (0x7f)
++
++#define S3C_LCON_CS5 (0x0)
++#define S3C_LCON_CS6 (0x1)
++#define S3C_LCON_CS7 (0x2)
++#define S3C_LCON_CS8 (0x3)
++#define S3C_LCON_CSMASK (0x3)
++
++#define S3C_LCON_PNONE (0x0)
++#define S3C_LCON_PEVEN (0x5 << 3)
++#define S3C_LCON_PODD (0x4 << 3)
++#define S3C_LCON_PMASK (0x7 << 3)
++
++#define S3C_LCON_STOPB (1<<2)
++#define S3C_LCON_IRM (1<<6)
++
++#define S3C_UCON_CLKMASK (3<<10)
++#define S3C_UCON_PCLK (0<<10)
++#define S3C_UCON_UCLK (1<<10)
++#define S3C_UCON_PCLK2 (2<<10)
++#define S3C_UCON_FCLK (3<<10)
++#define S3C_UCON_SBREAK (1<<4)
++
++#define S3C_UCON_TXILEVEL (1<<9)
++#define S3C_UCON_RXILEVEL (1<<8)
++#define S3C_UCON_TXIRQMODE (1<<2)
++#define S3C_UCON_RXIRQMODE (1<<0)
++#define S3C_UCON_RXFIFO_TOI (1<<7)
++#define S3C_UCON_RX_ESIE (1<<6)
++#define S3C_UCON_LOOP_OPERATION (0<<5)
++#define S3C_UCON_NO_SBS (0<<4)
++
++
++#define S3C_UCON_DEFAULT (S3C_UCON_TXILEVEL | \
++ S3C_UCON_RXILEVEL | \
++ S3C_UCON_TXIRQMODE | \
++ S3C_UCON_RXIRQMODE | \
++ S3C_UCON_RXFIFO_TOI)
++
++/* base definitions for UART FIFO Control Register */
++#define S3C_UFCON_FIFOMODE (1<<0)
++#define S3C_UFCON_RXTRIG12 (2<<4)
++
++/* S3C2413 FIFO trigger levels */
++#define S3C_UFCON_RXTRIG1 (0<<4)
++#define S3C_UFCON_RXTRIG8 (1<<4)
++#define S3C_UFCON_RXTRIG16 (2<<4)
++#define S3C_UFCON_RXTRIG32 (3<<4)
++
++#define S3C_UFCON_TXTRIG0 (0<<6)
++#define S3C_UFCON_TXTRIG16 (1<<6)
++#define S3C_UFCON_TXTRIG32 (2<<6)
++#define S3C_UFCON_TXTRIG48 (3<<6)
++
++#define S3C_UFCON_RESETBOTH (3<<1)
++#define S3C_UFCON_RESETTX (1<<2)
++#define S3C_UFCON_RESETRX (1<<1)
++#define S3C_UFCON_FIFO_ENABLE (1<<0)
++
++#define S3C_UFCON_DEFAULT (S3C_UFCON_FIFOMODE | \
++ S3C_UFCON_TXTRIG0 | \
++ S3C_UFCON_RXTRIG8 )
++
++#define S3C_UMCOM_AFC (1<<4)
++#define S3C_UMCOM_RTS_LOW (1<<0)
++
++#define S3C_UFSTAT_TXFULL (1<<14)
++#define S3C_UFSTAT_RXFULL (1<<6)
++#define S3C_UFSTAT_TXSHIFT (8)
++#define S3C_UFSTAT_RXSHIFT (0)
++#define S3C_UFSTAT_TXMASK (63<<8)
++#define S3C_UFSTAT_RXMASK (63)
++
++#define S3C_UTRSTAT_TXE (1<<2)
++#define S3C_UTRSTAT_TXFE (1<<1)
++#define S3C_UTRSTAT_RXDR (1<<0)
++
++#define UART_RX_INT (1<<0)
++#define UART_TX_INT (1<<2)
++#define UART_ERR_INT (1<<1)
++#define UART_MODEM_INT (1<<3)
++
++#define S3C_UERSTAT_OVERRUN (1<<0)
++#define S3C_UERSTAT_FRAME (1<<2)
++#define S3C_UERSTAT_BREAK (1<<3)
++#define S3C_UERSTAT_ANY (S3C_UERSTAT_OVERRUN | \
++ S3C_UERSTAT_FRAME | \
++ S3C_UERSTAT_BREAK)
++
++#define S3C_UMSTAT_CTS (1<<0)
++#define S3C_UMSTAT_DeltaCTS (1<<2)
++#endif
++
++
+ #ifndef __ASSEMBLY__
+
+ /* struct s3c24xx_uart_clksrc
+@@ -189,9 +319,23 @@
+ *
+ * divisor gives the divisor from the clock to the one seen by the uart
+ */
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410) || defined(CONFIG_CPU_S5PC100)
++#define NR_PORTS (4)
++#define UART_FIFO_SIZE 64
++#define UART_HAS_INTMSK
++#define UART_C_CFLAG
++#define UART_UMCON
++#define UART_CLK 115200
++#else
++#define NR_PORTS (3)
++#endif
++
+
+ struct s3c24xx_uart_clksrc {
+ const char *name;
++#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410) || defined(CONFIG_CPU_S5PC100)
++ unsigned int clock_src;
++#endif
+ unsigned int divisor;
+ unsigned int min_baud;
+ unsigned int max_baud;
+@@ -208,8 +352,11 @@ struct s3c2410_uartcfg {
+ unsigned char hwport; /* hardware port number */
+ unsigned char unused;
+ unsigned short flags;
++#if !defined(CONFIG_CPU_S3C6400) && !defined(CONFIG_CPU_S3C6410) && !defined(CONFIG_CPU_S5PC100)
+ upf_t uart_flags; /* default uart flags */
+-
++#else
++ unsigned long uart_flags; /* default uart flags */
++#endif
+ unsigned long ucon; /* value of ucon for port */
+ unsigned long ulcon; /* value of ulcon for port */
+ unsigned long ufcon; /* value of ufcon for port */
+@@ -224,7 +371,7 @@ struct s3c2410_uartcfg {
+ * or platform_add_device() before the console_initcall()
+ */
+
+-extern struct platform_device *s3c24xx_uart_devs[3];
++extern struct platform_device *s3c24xx_uart_devs[NR_PORTS];
+
+ #endif /* __ASSEMBLY__ */
+
+diff --git a/include/asm-arm/plat-s3c/regs-timer.h b/include/asm-arm/plat-s3c/regs-timer.h
+index 8b0d594..fb08b15 100644
+--- a/include/asm-arm/plat-s3c/regs-timer.h
++++ b/include/asm-arm/plat-s3c/regs-timer.h
+@@ -12,7 +12,7 @@
+
+
+ #ifndef __ASM_ARCH_REGS_TIMER_H
+-#define __ASM_ARCH_REGS_TIMER_H "$Id: timer.h,v 1.4 2003/05/06 19:30:50 ben Exp $"
++#define __ASM_ARCH_REGS_TIMER_H "$Id: regs-timer.h,v 1.2 2008/07/31 06:51:59 eyryu Exp $"
+
+ #define S3C_TIMERREG(x) (S3C_VA_TIMER + (x))
+ #define S3C_TIMERREG2(tmr,reg) S3C_TIMERREG((reg)+0x0c+((tmr)*0x0c))
+@@ -100,6 +100,110 @@
+ #define S3C2410_TCON_T0MANUALUPD (1<<1)
+ #define S3C2410_TCON_T0START (1<<0)
+
++#if defined(CONFIG_PLAT_S3C64XX) || defined(CONFIG_PLAT_S5PC1XX)
++#define S3C_TCFG0 S3C_TIMERREG(0x00)
++#define S3C_TCFG1 S3C_TIMERREG(0x04)
++#define S3C_TCON S3C_TIMERREG(0x08)
++#define S3C_TINT_CSTAT S3C_TIMERREG(0x44)
++
++#define S3C_TCFG_PRESCALER0_MASK (255<<0)
++#define S3C_TCFG_PRESCALER1_MASK (255<<8)
++#define S3C_TCFG_PRESCALER1_SHIFT (8)
++#define S3C_TCFG_PRESCALER0_SHIFT (0)
++#define S3C_TCFG_DEADZONE_MASK (255<<16)
++#define S3C_TCFG_DEADZONE_SHIFT (16)
++
++#define S3C_TCFG1_MUX4_DIV1 (0<<16)
++#define S3C_TCFG1_MUX4_DIV2 (1<<16)
++#define S3C_TCFG1_MUX4_DIV4 (2<<16)
++#define S3C_TCFG1_MUX4_DIV8 (3<<16)
++#define S3C_TCFG1_MUX4_DIV16 (4<<16)
++#define S3C_TCFG1_MUX4_TCLK1 (5<<16)
++#define S3C_TCFG1_MUX4_MASK (15<<16)
++
++#define S3C_TCFG1_MUX3_DIV1 (0<<12)
++#define S3C_TCFG1_MUX3_DIV2 (1<<12)
++#define S3C_TCFG1_MUX3_DIV4 (2<<12)
++#define S3C_TCFG1_MUX3_DIV8 (3<<12)
++#define S3C_TCFG1_MUX3_DIV16 (4<<12)
++#define S3C_TCFG1_MUX3_TCLK1 (5<<12)
++#define S3C_TCFG1_MUX3_MASK (15<<12)
++
++#define S3C_TCFG1_MUX2_DIV1 (0<<8)
++#define S3C_TCFG1_MUX2_DIV2 (1<<8)
++#define S3C_TCFG1_MUX2_DIV4 (2<<8)
++#define S3C_TCFG1_MUX2_DIV8 (3<<8)
++#define S3C_TCFG1_MUX2_DIV16 (4<<8)
++#define S3C_TCFG1_MUX2_TCLK1 (5<<8)
++#define S3C_TCFG1_MUX2_MASK (15<<8)
++
++#define S3C_TCFG1_MUX1_DIV1 (0<<4)
++#define S3C_TCFG1_MUX1_DIV2 (1<<4)
++#define S3C_TCFG1_MUX1_DIV4 (2<<4)
++#define S3C_TCFG1_MUX1_DIV8 (3<<4)
++#define S3C_TCFG1_MUX1_DIV16 (4<<4)
++#define S3C_TCFG1_MUX1_TCLK0 (5<<4)
++#define S3C_TCFG1_MUX1_MASK (15<<4)
++
++#define S3C_TCFG1_MUX0_DIV1 (0<<0)
++#define S3C_TCFG1_MUX0_DIV2 (1<<0)
++#define S3C_TCFG1_MUX0_DIV4 (2<<0)
++#define S3C_TCFG1_MUX0_DIV8 (3<<0)
++#define S3C_TCFG1_MUX0_DIV16 (4<<0)
++#define S3C_TCFG1_MUX0_TCLK0 (5<<0)
++#define S3C_TCFG1_MUX0_MASK (15<<0)
++
++/* for each timer, we have an count buffer, an compare buffer and
++ * an observation buffer
++*/
++
++/* WARNING - timer 4 has no buffer reg, and it's observation is at +4 */
++/* 32bit timer used */
++
++#define S3C_TCNTB(tmr) S3C_TIMERREG2(tmr, 0x00)
++#define S3C_TCMPB(tmr) S3C_TIMERREG2(tmr, 0x04)
++#define S3C_TCNTO(tmr) S3C_TIMERREG2(tmr, (((tmr) == 4) ? 0x04 : 0x08))
++
++#define S3C_TCON_T4RELOAD (1<<22)
++#define S3C_TCON_T4MANUALUPD (1<<21)
++#define S3C_TCON_T4START (1<<20)
++
++#define S3C_TCON_T3RELOAD (1<<19)
++#define S3C_TCON_T3INVERT (1<<18)
++#define S3C_TCON_T3MANUALUPD (1<<17)
++#define S3C_TCON_T3START (1<<16)
++
++#define S3C_TCON_T2RELOAD (1<<15)
++#define S3C_TCON_T2INVERT (1<<14)
++#define S3C_TCON_T2MANUALUPD (1<<13)
++#define S3C_TCON_T2START (1<<12)
++
++#define S3C_TCON_T1RELOAD (1<<11)
++#define S3C_TCON_T1INVERT (1<<10)
++#define S3C_TCON_T1MANUALUPD (1<<9)
++#define S3C_TCON_T1START (1<<8)
++
++#define S3C_TCON_T0DEADZONE (1<<4)
++#define S3C_TCON_T0RELOAD (1<<3)
++#define S3C_TCON_T0INVERT (1<<2)
++#define S3C_TCON_T0MANUALUPD (1<<1)
++#define S3C_TCON_T0START (1<<0)
++
++/* Interrupt Control and Status register*/
++#define S3C_TINT_CSTAT_T4INT (1<<9)
++#define S3C_TINT_CSTAT_T3INT (1<<8)
++#define S3C_TINT_CSTAT_T2INT (1<<7)
++#define S3C_TINT_CSTAT_T1INT (1<<6)
++#define S3C_TINT_CSTAT_T0INT (1<<5)
++#define S3C_TINT_CSTAT_T4INTEN (1<<4)
++#define S3C_TINT_CSTAT_T3INTEN (1<<3)
++#define S3C_TINT_CSTAT_T2INTEN (1<<2)
++#define S3C_TINT_CSTAT_T1INTEN (1<<1)
++#define S3C_TINT_CSTAT_T0INTEN (1<<0)
++
++
++#endif
++
+ #endif /* __ASM_ARCH_REGS_TIMER_H */
+
+
+diff --git a/include/asm-arm/plat-s3c/ts.h b/include/asm-arm/plat-s3c/ts.h
+new file mode 100644
+index 0000000..ec2e6f6
+--- /dev/null
++++ b/include/asm-arm/plat-s3c/ts.h
+@@ -0,0 +1,31 @@
++/* arch/arm/plat-s3c/include/plat/ts.h
++ *
++ * Copyright (c) 2004 Simtec Electronics
++ * Ben Dooks <ben@simtec.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++*/
++
++#ifndef __ASM_ARCH_TS_H
++#define __ASM_ARCH_TS_H __FILE__
++
++struct s3c_ts_mach_info {
++ int delay;
++ int presc;
++ int oversampling_shift;
++ int resol_bit;
++};
++
++struct s3c_ts {
++ struct input_dev *dev;
++ long xp;
++ long yp;
++ int count;
++ int shift;
++ char phys[32];
++};
++
++
++#endif /* __ASM_ARCH_TS_H */
+diff --git a/include/asm-arm/plat-s3c/uncompress.h b/include/asm-arm/plat-s3c/uncompress.h
+index b5e6208..02eb2b1 100644
+--- a/include/asm-arm/plat-s3c/uncompress.h
++++ b/include/asm-arm/plat-s3c/uncompress.h
+@@ -37,7 +37,11 @@ static void arch_detect_cpu(void);
+ /* how many bytes we allow into the FIFO at a time in FIFO mode */
+ #define FIFO_MAX (14)
+
++#if defined(CONFIG_PLAT_S3C24XX)
+ #define uart_base S3C24XX_PA_UART + (0x4000*CONFIG_S3C_LOWLEVEL_UART_PORT)
++#else
++#define uart_base S3C24XX_PA_UART + (0x400*CONFIG_S3C_LOWLEVEL_UART_PORT)
++#endif
+
+ static __inline__ void
+ uart_wr(unsigned int reg, unsigned int val)
+diff --git a/include/asm-arm/plat-s3c24xx/clock.h b/include/asm-arm/plat-s3c24xx/clock.h
+index 235b753..bd3d626 100644
+--- a/include/asm-arm/plat-s3c24xx/clock.h
++++ b/include/asm-arm/plat-s3c24xx/clock.h
+@@ -46,6 +46,7 @@ extern struct clk clk_mpll;
+ extern struct clk clk_upll;
+ extern struct clk clk_xtal;
+
++
+ /* exports for arch/arm/mach-s3c2410
+ *
+ * Please DO NOT use these outside of arch/arm/mach-s3c2410
+@@ -62,3 +63,4 @@ extern int s3c24xx_setup_clocks(unsigned long xtal,
+ unsigned long fclk,
+ unsigned long hclk,
+ unsigned long pclk);
++
+diff --git a/include/asm-arm/plat-s3c24xx/common-smdk.h b/include/asm-arm/plat-s3c24xx/common-smdk.h
+index 58d9094..efc1927 100644
+--- a/include/asm-arm/plat-s3c24xx/common-smdk.h
++++ b/include/asm-arm/plat-s3c24xx/common-smdk.h
+@@ -12,4 +12,10 @@
+ * published by the Free Software Foundation.
+ */
+
++extern struct platform_device s3c_device_lcd;
++extern struct platform_device s3c_device_nand;
++
++extern struct platform_device s3c_device_onenand;
++extern struct flash_platform_data s3c_onenand_data;
++
+ extern void smdk_machine_init(void);
+diff --git a/include/asm-arm/plat-s3c24xx/cpu.h b/include/asm-arm/plat-s3c24xx/cpu.h
+index 23e420e..4d65f92 100644
+--- a/include/asm-arm/plat-s3c24xx/cpu.h
++++ b/include/asm-arm/plat-s3c24xx/cpu.h
+@@ -28,6 +28,9 @@ struct map_desc;
+
+ /* core initialisation functions */
+
++#if defined (CONFIG_PLAT_S3C64XX) || defined (CONFIG_PLAT_S5PC1XX)
++extern void s3c_init_irq(void);
++#endif
+ extern void s3c24xx_init_irq(void);
+
+ extern void s3c24xx_init_io(struct map_desc *mach_desc, int size);
+@@ -40,6 +43,22 @@ extern void s3c24xx_init_uartdevs(char *name,
+ struct s3c24xx_uart_resources *res,
+ struct s3c2410_uartcfg *cfg, int no);
+
++/* the board structure is used at first initialsation time
++ * to get info such as the devices to register for this
++ * board. This is done because platfrom_add_devices() cannot
++ * be called from the map_io entry.
++*/
++
++struct s3c24xx_board {
++ struct platform_device **devices;
++ unsigned int devices_count;
++
++ struct clk **clocks;
++ unsigned int clocks_count;
++};
++
++extern void s3c24xx_set_board(struct s3c24xx_board *board);
++
+ /* timer for 2410/2440 */
+
+ struct sys_timer;
+@@ -52,3 +71,9 @@ extern struct sysdev_class s3c2412_sysclass;
+ extern struct sysdev_class s3c2440_sysclass;
+ extern struct sysdev_class s3c2442_sysclass;
+ extern struct sysdev_class s3c2443_sysclass;
++extern struct sysdev_class s3c2450_sysclass;
++extern struct sysdev_class s3c2416_sysclass;
++
++extern struct sysdev_class s3c6400_sysclass;
++extern struct sysdev_class s3c6410_sysclass;
++extern struct sysdev_class s5pc100_sysclass;
+diff --git a/include/asm-arm/plat-s3c24xx/devs.h b/include/asm-arm/plat-s3c24xx/devs.h
+index f9d6f03..5dc27eb 100644
+--- a/include/asm-arm/plat-s3c24xx/devs.h
++++ b/include/asm-arm/plat-s3c24xx/devs.h
+@@ -21,32 +21,58 @@ extern struct s3c24xx_uart_resources s3c2410_uart_resources[];
+ extern struct platform_device *s3c24xx_uart_devs[];
+ extern struct platform_device *s3c24xx_uart_src[];
+
++/* 1 channel devices */
+ extern struct platform_device s3c_device_usb;
+-extern struct platform_device s3c_device_lcd;
+ extern struct platform_device s3c_device_wdt;
+ extern struct platform_device s3c_device_i2c;
+ extern struct platform_device s3c_device_iis;
+ extern struct platform_device s3c_device_rtc;
+ extern struct platform_device s3c_device_adc;
++extern struct platform_device s3c_device_ts;
+ extern struct platform_device s3c_device_sdi;
+-extern struct platform_device s3c_device_hsmmc;
+-
+-extern struct platform_device s3c_device_spi0;
+-extern struct platform_device s3c_device_spi1;
++extern struct platform_device s3c_device_usbgadget;
++extern struct platform_device s3c_device_ac97;
++extern struct platform_device s3c_device_tvenc;
++extern struct platform_device s3c_device_tvscaler;
++extern struct platform_device s3c_device_camif;
++extern struct platform_device s3c_device_jpeg;
++extern struct platform_device s3c_device_vpp;
++extern struct platform_device s3c_device_ide;
+
+-extern struct platform_device s3c_device_nand;
++extern struct platform_device s3c_device_g2d;
++extern struct platform_device s3c_device_keypad;
+
++/* Multiple channel devices */
+ extern struct platform_device s3c_device_timer0;
+ extern struct platform_device s3c_device_timer1;
+ extern struct platform_device s3c_device_timer2;
+ extern struct platform_device s3c_device_timer3;
+
+-extern struct platform_device s3c_device_usbgadget;
++extern struct platform_device s3c_device_spi0;
++extern struct platform_device s3c_device_spi1;
+
+-/* s3c2440 specific devices */
++#if defined(CONFIG_CPU_S3C2443)
++extern struct platform_device s3c_device_hsmmc;
+
+-#ifdef CONFIG_CPU_S3C2440
++#elif defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++extern struct platform_device s3c_device_hsmmc0;
++extern struct platform_device s3c_device_hsmmc1;
++#else
++extern struct platform_device s3c_device_hsmmc0;
++extern struct platform_device s3c_device_hsmmc1;
++extern struct platform_device s3c_device_hsmmc2;
++#endif
+
+-extern struct platform_device s3c_device_camif;
++#if defined(CONFIG_CPU_S3C6410) || defined(CONFIG_CPU_S3C6400)
++extern struct platform_device s3c_device_g3d;
++extern struct platform_device s3c_device_mfc;
++extern struct platform_device s3c_device_rotator;
++#endif
++
++#if defined(CONFIG_CPU_S3C6410) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416)
++extern struct platform_device s3c_device_smc911x;
++#endif
+
++#ifdef CONFIG_PLAT_S3C64XX
++extern struct platform_device s3c_device_usb_otghcd;
+ #endif
+diff --git a/include/asm-arm/plat-s3c24xx/dma.h b/include/asm-arm/plat-s3c24xx/dma.h
+index 2c59406..ef7c1dc 100644
+--- a/include/asm-arm/plat-s3c24xx/dma.h
++++ b/include/asm-arm/plat-s3c24xx/dma.h
+@@ -32,6 +32,9 @@ struct s3c24xx_dma_map {
+ struct s3c24xx_dma_addr hw_addr;
+
+ unsigned long channels[S3C2410_DMA_CHANNELS];
++#if defined (CONFIG_CPU_S3C6400) || defined (CONFIG_CPU_S3C6410)
++ unsigned long sdma_sel;
++#endif
+ };
+
+ struct s3c24xx_dma_selection {
+diff --git a/include/asm-arm/plat-s3c24xx/pm.h b/include/asm-arm/plat-s3c24xx/pm.h
+index cc62366..1a43ff5 100644
+--- a/include/asm-arm/plat-s3c24xx/pm.h
++++ b/include/asm-arm/plat-s3c24xx/pm.h
+@@ -58,9 +58,16 @@ struct sleep_save {
+ unsigned long val;
+ };
+
++struct sleep_save_phy {
++ unsigned long reg;
++ unsigned long val;
++};
++
+ #define SAVE_ITEM(x) \
+ { .reg = (x) }
+
++extern void s3c2410_pm_do_save_phy(struct sleep_save_phy *ptr, struct platform_device *pdev, int count);
++extern void s3c2410_pm_do_restore_phy(struct sleep_save_phy *ptr, struct platform_device *pdev, int count);
+ extern void s3c2410_pm_do_save(struct sleep_save *ptr, int count);
+ extern void s3c2410_pm_do_restore(struct sleep_save *ptr, int count);
+
+diff --git a/include/asm-arm/plat-s3c24xx/regs-iis.h b/include/asm-arm/plat-s3c24xx/regs-iis.h
+index eaf7791..97cb89d 100644
+--- a/include/asm-arm/plat-s3c24xx/regs-iis.h
++++ b/include/asm-arm/plat-s3c24xx/regs-iis.h
+@@ -73,5 +73,99 @@
+ #define S3C2400_IISFCON_RXMASK (0x07)
+ #define S3C2400_IISFCON_RXSHIFT (0)
+
+-#define S3C2410_IISFIFO (0x10)
++#define S3C2410_IISFIFO (0x10)
++#define S3C2410_IISFIFORX (0x14)
++
++/* 2450 IIS Definitions */
++
++#define S3C2450_IIS0CON (0x00)
++#define S3C2450_IIS0MOD (0x04)
++#define S3C2450_IIS0FIC (0x08)
++#define S3C2450_IIS0PSR (0x0C)
++#define S3C2450_IIS0TXD (0x10)
++#define S3C2450_IIS0RXD (0x14)
++
++#define S3C2450_IIS0TXD_PHYS S3C_IIS0REG_PHYS(0x10)
++#define S3C2450_IIS0RXD_PHYS S3C_IIS0REG_PHYS(0x14)
++
++#define S3C2450_IISFIFO (0x10)
++#define S3C2450_IISFIFORX (0x14)
++
++#define S3C2450_IISCON_FTXURINTEN (0x1<<16)
++#define S3C2450_IISCON_LRINDEX (0x1<<11)
++#define S3C2450_IIS0CON_TXDMAPAUSE (0x1<<6)
++#define S3C2450_IIS0CON_RXDMAPAUSE (0x1<<5)
++#define S3C2450_IIS0CON_TXCHPAUSE (0x1<<4)
++#define S3C2450_IIS0CON_RXCHPAUSE (0x1<<3)
++#define S3C2450_IIS0CON_TXDMACTIVE (0x1<<2)
++#define S3C2450_IIS0CON_RXDMACTIVE (0x1<<1)
++#define S3C2450_IIS0CON_I2SACTIVE (0x1<<0)
++
++#define S3C2450_IIS0MOD_DCE_MASK (0x3<<16)
++#define S3C2450_IIS0MOD_DCE_SD2 (0x1<<17)
++#define S3C2450_IIS0MOD_DCE_SD1 (0x1<<16)
++#define S3C2450_IIS0MOD_BLC_MASK (0x3<<13)
++#define S3C2450_IIS0MOD_BLC_16BIT (0x0<<13)
++#define S3C2450_IIS0MOD_BLC_08BIT (0x1<<13)
++#define S3C2450_IIS0MOD_BLC_24BIT (0x2<<13)
++#define S3C2450_IIS0MOD_CLK_MASK (0x7<<10)
++#define S3C2450_IIS0MOD_INTERNAL_CLK (0x0<<12)
++#define S3C2450_IIS0MOD_EXTERNAL_CLK (0x1<<12)
++#define S3C2450_IIS0MOD_IMS_INTERNAL_MASTER (0x0<<10)
++#define S3C2450_IIS0MOD_IMS_EXTERNAL_MASTER (0x1<<10)
++#define S3C2450_IIS0MOD_IMS_SLAVE (0x2<<10)
++#define S3C2450_IIS0MOD_MODE_MASK (0x3<<8)
++#define S3C2450_IIS0MOD_TXMODE (0x0<<8)
++#define S3C2450_IIS0MOD_RXMODE (0x1<<8)
++#define S3C2450_IIS0MOD_TXRXMODE (0x2<<8)
++#define S3C2450_IIS0MOD_FM_MASK (0x3<<5)
++#define S3C2450_IIS0MOD_IIS (0x0<<5)
++#define S3C2450_IIS0MOD_MSB (0x1<<5)
++#define S3C2450_IIS0MOD_LSB (0x2<<5)
++#define S3C2450_IIS0MOD_FS_MASK (0x3<<3)
++#define S3C2450_IIS0MOD_768FS (0x3<<3)
++#define S3C2450_IIS0MOD_384FS (0x2<<3)
++#define S3C2450_IIS0MOD_512FS (0x1<<3)
++#define S3C2450_IIS0MOD_256FS (0x0<<3)
++#define S3C2450_IIS0MOD_BFS_MASK (0x3<<1)
++#define S3C2450_IIS0MOD_48FS (0x1<<1)
++#define S3C2450_IIS0MOD_32FS (0x0<<1)
++
++#define S3C2450_IIS0MOD_24BIT (0x2<<13)
++#define S3C2450_IIS0MOD_8BIT (0x1<<13)
++#define S3C2450_IIS0MOD_16BIT (0x0<<13)
++
++#define S3C2450_IIS_TX_FLUSH (0x1<<15)
++#define S3C2450_IIS_RX_FLUSH (0x1<<7)
++
++#define S3C2450_IISPSR_PSRAEN (1<<15)
++#define S3C2450_IISPSR_PS_MASK (0x3F<<8)
++/* IIS CH1*/
++
++#define S3C2450_IIS1CON S3C_IIS1REG(0x00)
++#define S3C2450_IIS1MOD S3C_IIS1REG(0x04)
++#define S3C2450_IIS1FIC S3C_IIS1REG(0x08)
++#define S3C2450_IIS1PSR S3C_IIS1REG(0x0C)
++#define S3C2450_IIS1TXD S3C_IIS1REG(0x10)
++#define S3C2450_IIS1RXD S3C_IIS1REG(0x14)
++
++#define S3C2450_IIS1TXD_PHYS S3C_IIS1REG_PHYS(0x10)
++#define S3C2450_IIS1RXD_PHYS S3C_IIS1REG_PHYS(0x14)
++
++#define S3C2450_IIS1CON_TXDMACTIVE (0x1<<2)
++#define S3C2450_IIS1CON_RXDMACTIVE (0x1<<1)
++#define S3C2450_IIS1CON_I2SACTIVE (0x1<<0)
++
++#define S3C2450_IIS1MOD_IMS_INTERNAL_MASTER (0x0<<10)
++#define S3C2450_IIS1MOD_TXRXMODE (0x2<<8)
++#define S3C2450_IIS1MOD_IIS (0x0<<5)
++#define S3C2450_IIS1MOD_384FS (0x2<<3)
++#define S3C2450_IIS1MOD_32FS (0x0<<1)
++#define S3C2450_IIS1MOD_16BIT (0x0)
++
++#define I2SPSR_VAL_SHIFT (0x8)
++
++#define S3C2450_IISPSR_INTSHIFT (8)
++/*----------------------*/
++
+ #endif /* __ASM_ARCH_REGS_IIS_H */
+diff --git a/include/asm-arm/plat-s3c24xx/regs-spi.h b/include/asm-arm/plat-s3c24xx/regs-spi.h
+index 4a499a1..ff3f3dc 100644
+--- a/include/asm-arm/plat-s3c24xx/regs-spi.h
++++ b/include/asm-arm/plat-s3c24xx/regs-spi.h
+@@ -12,8 +12,6 @@
+ #ifndef __ASM_ARCH_REGS_SPI_H
+ #define __ASM_ARCH_REGS_SPI_H
+
+-#define S3C2410_SPI1 (0x20)
+-#define S3C2412_SPI1 (0x100)
+
+ #define S3C2410_SPCON (0x00)
+
+@@ -21,8 +19,7 @@
+ #define S3C2410_SPCON_SMOD_INT (1<<5) /* interrupt mode */
+ #define S3C2410_SPCON_SMOD_POLL (0<<5) /* polling mode */
+ #define S3C2410_SPCON_ENSCK (1<<4) /* Enable SCK */
+-#define S3C2410_SPCON_MSTR (1<<3) /* Master/Slave select
+- 0: slave, 1: master */
++#define S3C2410_SPCON_MSTR (1<<3) /* Master/Slave select 0: slave, 1: master */
+ #define S3C2410_SPCON_CPOL_HIGH (1<<2) /* Clock polarity select */
+ #define S3C2410_SPCON_CPOL_LOW (0<<2) /* Clock polarity select */
+
+@@ -51,4 +48,220 @@
+ #define S3C2410_SPTDAT (0x10)
+ #define S3C2410_SPRDAT (0x14)
+
++#if defined (CONFIG_CPU_S3C6400) || defined (CONFIG_CPU_S3C6410)
++/*
++ * SPI(High speed) Registers
++ */
++
++#define S3C_SPI_REG_CH0(x) ((x) + S3C_VA_SPI0)
++#define S3C_SPI_REG_CH1(x) ((x) + S3C_VA_SPI1)
++
++#define S3C_CH_CFG (0x00) //SPI configuration
++#define S3C_CLK_CFG (0x04) //Clock configuration
++#define S3C_MODE_CFG (0x08) //SPI FIFO control
++#define S3C_SLAVE_SEL (0x0C) //Slave selection
++#define S3C_SPI_INT_EN (0x10) //SPI interrupt enable
++#define S3C_SPI_STATUS (0x14) //SPI status
++#define S3C_SPI_TX_DATA (0x18) //SPI TX data
++#define S3C_SPI_RX_DATA (0x1C) //SPI RX data
++#define S3C_PACKET_CNT (0x20) //count how many data master gets
++#define S3C_PENDING_CLR (0x24) //Pending clear
++#define S3C_SWAP_CFG (0x28) //SWAP config register
++#define S3C_FB_CLK (0x28) //SWAP FB config register
++
++
++#define SPI_CH_SW_RST (1<<5)
++#define SPI_CH_MASTER (0<<4)
++#define SPI_CH_SLAVE (1<<4)
++#define SPI_CH_RISING (0<<3)
++#define SPI_CH_FALLING (1<<3)
++#define SPI_CH_FORMAT_A (0<<2)
++#define SPI_CH_FORMAT_B (1<<2)
++#define SPI_CH_RXCH_OFF (0<<1)
++#define SPI_CH_RXCH_ON (1<<1)
++#define SPI_CH_TXCH_OFF (0<<0)
++#define SPI_CH_TXCH_ON (1<<0)
++
++#define SPI_CLKSEL_PCLK (0<<9)
++#define SPI_CLKSEL_USBCLK (1<<9)
++#define SPI_CLKSEL_ECLK (2<<9)
++#define SPI_ENCLK_DISABLE (0<<8)
++#define SPI_ENCLK_ENABLE (1<<8)
++
++#define SPI_MODE_CH_TSZ_BYTE (0<<29)
++#define SPI_MODE_CH_TSZ_HALFWORD (1<<29)
++#define SPI_MODE_CH_TSZ_WORD (2<<29)
++#define SPI_MODE_BUS_TSZ_BYTE (0<<17)
++#define SPI_MODE_BUS_TSZ_HALFWORD (1<<17)
++#define SPI_MODE_BUS_TSZ_WORD (2<<17)
++#define SPI_MODE_RXDMA_OFF (0<<2)
++#define SPI_MODE_RXDMA_ON (1<<2)
++#define SPI_MODE_TXDMA_OFF (0<<1)
++#define SPI_MODE_TXDMA_ON (1<<1)
++#define SPI_MODE_SINGLE (0<<0)
++#define SPI_MODE_4BURST (1<<0)
++
++#define SPI_SLAVE_MAN (0<<1)
++#define SPI_SLAVE_AUTO (1<<1)
++#define SPI_SLAVE_SIG_ACT (0<<0)
++#define SPI_SLAVE_SIG_INACT (1<<0)
++
++#define SPI_INT_TRAILING_DIS (0<<6)
++#define SPI_INT_TRAILING_EN (1<<6)
++#define SPI_INT_RX_OVERRUN_DIS (0<<5)
++#define SPI_INT_RX_OVERRUN_EN (1<<5)
++#define SPI_INT_RX_UNDERRUN_DIS (0<<4)
++#define SPI_INT_RX_UNDERRUN_EN (1<<4)
++#define SPI_INT_TX_OVERRUN_DIS (0<<3)
++#define SPI_INT_TX_OVERRUN_EN (1<<3)
++#define SPI_INT_TX_UNDERRUN_DIS (0<<2)
++#define SPI_INT_TX_UNDERRUN_EN (1<<2)
++#define SPI_INT_RX_FIFORDY_DIS (0<<1)
++#define SPI_INT_RX_FIFORDY_EN (1<<1)
++#define SPI_INT_TX_FIFORDY_DIS (0<<0)
++#define SPI_INT_TX_FIFORDY_EN (1<<0)
++
++#define SPI_STUS_TX_DONE (1<<21)
++#define SPI_STUS_TRAILCNT_ZERO (1<<20)
++#define SPI_STUS_RX_OVERRUN_ERR (1<<5)
++#define SPI_STUS_RX_UNDERRUN_ERR (1<<4)
++#define SPI_STUS_TX_OVERRUN_ERR (1<<3)
++#define SPI_STUS_TX_UNDERRUN_ERR (1<<2)
++#define SPI_STUS_RX_FIFORDY (1<<1)
++#define SPI_STUS_TX_FIFORDY (1<<0)
++
++#define SPI_PACKET_CNT_DIS (0<<16)
++#define SPI_PACKET_CNT_EN (1<<16)
++
++#define SPI_PND_TX_UNDERRUN_CLR (1<<4)
++#define SPI_PND_TX_OVERRUN_CLR (1<<3)
++#define SPI_PND_RX_UNDERRUN_CLR (1<<2)
++#define SPI_PND_RX_OVERRUN_CLR (1<<1)
++#define SPI_PND_TRAILING_CLR (1<<0)
++
++#define SPI_SWAP_RX_HALF_WORD (1<<7)
++#define SPI_SWAP_RX_BYTE (1<<6)
++#define SPI_SWAP_RX_BIT (1<<5)
++#define SPI_SWAP_RX_EN (1<<4)
++#define SPI_SWAP_TX_HALF_WORD (1<<3)
++#define SPI_SWAP_TX_BYTE (1<<2)
++#define SPI_SWAP_TX_BIT (1<<1)
++#define SPI_SWAP_TX_EN (1<<0)
++
++#define SPI_FBCLK_0NS (0<<0)
++#define SPI_FBCLK_2NS (1<<4)
++#define SPI_FBCLK_4NS (2<<4)
++#define SPI_FBCLK_6NS (3<<4)
++
++#endif
++
++#if defined (CONFIG_CPU_S3C2450) || defined (CONFIG_CPU_S3C2416)
++/*
++ * SPI(High speed) Registers
++ */
++
++#define S3C_SPI_REG_CH0(x) ((x) + S3C_VA_SPI0)
++#define S3C_SPI_REG_CH1(x) ((x) + S3C_VA_SPI1)
++
++#define S3C_CH_CFG (0x00) //SPI configuration
++#define S3C_CLK_CFG (0x04) //Clock configuration
++#define S3C_MODE_CFG (0x08) //SPI FIFO control
++#define S3C_SLAVE_SEL (0x0C) //Slave selection
++#define S3C_SPI_INT_EN (0x10) //SPI interrupt enable
++#define S3C_SPI_STATUS (0x14) //SPI status
++#define S3C_SPI_TX_DATA (0x18) //SPI TX data
++#define S3C_SPI_RX_DATA (0x1C) //SPI RX data
++#define S3C_PACKET_CNT (0x20) //count how many data master gets
++#define S3C_PENDING_CLR (0x24) //Pending clear
++#define S3C_SWAP_CFG (0x28) //SWAP config register
++#define S3C_FB_CLK (0x28) //SWAP FB config register
++
++
++#define SPI_CH_SW_RST (1<<5)
++#define SPI_CH_MASTER (0<<4)
++#define SPI_CH_SLAVE (1<<4)
++#define SPI_CH_RISING (0<<3)
++#define SPI_CH_FALLING (1<<3)
++#define SPI_CH_FORMAT_A (0<<2)
++#define SPI_CH_FORMAT_B (1<<2)
++#define SPI_CH_RXCH_OFF (0<<1)
++#define SPI_CH_RXCH_ON (1<<1)
++#define SPI_CH_TXCH_OFF (0<<0)
++#define SPI_CH_TXCH_ON (1<<0)
++
++#define SPI_CLKSEL_PCLK (0<<9)
++#define SPI_CLKSEL_USBCLK (1<<9)
++#define SPI_CLKSEL_ECLK (2<<9)
++#define SPI_ENCLK_DISABLE (0<<8)
++#define SPI_ENCLK_ENABLE (1<<8)
++
++#define SPI_MODE_CH_TSZ_BYTE (0<<18)
++#define SPI_MODE_CH_TSZ_HALFWORD (1<<29)
++#define SPI_MODE_CH_TSZ_WORD (2<<18)
++#define SPI_MODE_BUS_TSZ_BYTE (0<<17)
++#define SPI_MODE_BUS_TSZ_HALFWORD (1<<17)
++#define SPI_MODE_BUS_TSZ_WORD (2<<17)
++#define SPI_MODE_RXDMA_OFF (0<<2)
++#define SPI_MODE_RXDMA_ON (1<<2)
++#define SPI_MODE_TXDMA_OFF (0<<1)
++#define SPI_MODE_TXDMA_ON (1<<1)
++#define SPI_MODE_SINGLE (0<<0)
++#define SPI_MODE_4BURST (1<<0)
++
++#define SPI_SLAVE_MAN (0<<1)
++#define SPI_SLAVE_AUTO (1<<1)
++#define SPI_SLAVE_SIG_ACT (0<<0)
++#define SPI_SLAVE_SIG_INACT (1<<0)
++
++#define SPI_INT_TRAILING_DIS (0<<6)
++#define SPI_INT_TRAILING_EN (1<<6)
++#define SPI_INT_RX_OVERRUN_DIS (0<<5)
++#define SPI_INT_RX_OVERRUN_EN (1<<5)
++#define SPI_INT_RX_UNDERRUN_DIS (0<<4)
++#define SPI_INT_RX_UNDERRUN_EN (1<<4)
++#define SPI_INT_TX_OVERRUN_DIS (0<<3)
++#define SPI_INT_TX_OVERRUN_EN (1<<3)
++#define SPI_INT_TX_UNDERRUN_DIS (0<<2)
++#define SPI_INT_TX_UNDERRUN_EN (1<<2)
++#define SPI_INT_RX_FIFORDY_DIS (0<<1)
++#define SPI_INT_RX_FIFORDY_EN (1<<1)
++#define SPI_INT_TX_FIFORDY_DIS (0<<0)
++#define SPI_INT_TX_FIFORDY_EN (1<<0)
++
++#define SPI_STUS_TX_DONE (1<<21)
++#define SPI_STUS_TRAILCNT_ZERO (1<<20)
++#define SPI_STUS_RX_OVERRUN_ERR (1<<5)
++#define SPI_STUS_RX_UNDERRUN_ERR (1<<4)
++#define SPI_STUS_TX_OVERRUN_ERR (1<<3)
++#define SPI_STUS_TX_UNDERRUN_ERR (1<<2)
++#define SPI_STUS_RX_FIFORDY (1<<1)
++#define SPI_STUS_TX_FIFORDY (1<<0)
++
++#define SPI_PACKET_CNT_DIS (0<<16)
++#define SPI_PACKET_CNT_EN (1<<16)
++
++#define SPI_PND_TX_UNDERRUN_CLR (1<<4)
++#define SPI_PND_TX_OVERRUN_CLR (1<<3)
++#define SPI_PND_RX_UNDERRUN_CLR (1<<2)
++#define SPI_PND_RX_OVERRUN_CLR (1<<1)
++#define SPI_PND_TRAILING_CLR (1<<0)
++
++#define SPI_SWAP_RX_HALF_WORD (1<<7)
++#define SPI_SWAP_RX_BYTE (1<<6)
++#define SPI_SWAP_RX_BIT (1<<5)
++#define SPI_SWAP_RX_EN (1<<4)
++#define SPI_SWAP_TX_HALF_WORD (1<<3)
++#define SPI_SWAP_TX_BYTE (1<<2)
++#define SPI_SWAP_TX_BIT (1<<1)
++#define SPI_SWAP_TX_EN (1<<0)
++
++#define SPI_FBCLK_0NS (0<<0)
++#define SPI_FBCLK_2NS (1<<4)
++#define SPI_FBCLK_4NS (2<<4)
++#define SPI_FBCLK_6NS (3<<4)
++
++#endif
++
++
+ #endif /* __ASM_ARCH_REGS_SPI_H */
++
+diff --git a/include/asm-arm/plat-s3c24xx/s3c2416.h b/include/asm-arm/plat-s3c24xx/s3c2416.h
+new file mode 100644
+index 0000000..6c6b258
+--- /dev/null
++++ b/include/asm-arm/plat-s3c24xx/s3c2416.h
+@@ -0,0 +1,30 @@
++/* linux/include/asm-arm/plat-s3c24xx/s3c2416.h
++ *
++ * Copyright (c) 2008 Samsung Electronics
++ * Ryu Euiyoul <ryu.real@gmail.com>
++ *
++ * Header file for s3c2416 cpu support
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++*/
++
++#if defined(CONFIG_CPU_S3C2416)
++
++struct s3c2410_uartcfg;
++
++extern int s3c2416_init(void);
++
++extern void s3c2416_map_io(struct map_desc *mach_desc, int size);
++
++extern void s3c2416_init_uarts(struct s3c2410_uartcfg *cfg, int no);
++
++extern void s3c2416_init_clocks(int xtal);
++
++#else
++#define s3c2416_init_clocks NULL
++#define s3c2416_init_uarts NULL
++#define s3c2416_map_io NULL
++#define s3c2416_init NULL
++#endif
+diff --git a/include/asm-arm/plat-s3c24xx/s3c2443.h b/include/asm-arm/plat-s3c24xx/s3c2443.h
+index 11d83b5..68b85f6 100644
+--- a/include/asm-arm/plat-s3c24xx/s3c2443.h
++++ b/include/asm-arm/plat-s3c24xx/s3c2443.h
+@@ -10,7 +10,7 @@
+ * published by the Free Software Foundation.
+ */
+
+-#ifdef CONFIG_CPU_S3C2443
++#if defined(CONFIG_CPU_S3C2443)
+
+ struct s3c2410_uartcfg;
+
+@@ -22,8 +22,6 @@ extern void s3c2443_init_uarts(struct s3c2410_uartcfg *cfg, int no);
+
+ extern void s3c2443_init_clocks(int xtal);
+
+-extern int s3c2443_baseclk_add(void);
+-
+ #else
+ #define s3c2443_init_clocks NULL
+ #define s3c2443_init_uarts NULL
+diff --git a/include/asm-arm/plat-s3c24xx/s3c2450.h b/include/asm-arm/plat-s3c24xx/s3c2450.h
+new file mode 100644
+index 0000000..71f747b
+--- /dev/null
++++ b/include/asm-arm/plat-s3c24xx/s3c2450.h
+@@ -0,0 +1,30 @@
++/* linux/include/asm-arm/plat-s3c24xx/s3c2450.h
++ *
++ * Copyright (c) 2008 Samsung Electronics
++ * Ryu Euiyoul <ryu.real@gmail.com>
++ *
++ * Header file for s3c2450 cpu support
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++*/
++
++#if defined(CONFIG_CPU_S3C2450)
++
++struct s3c2410_uartcfg;
++
++extern int s3c2450_init(void);
++
++extern void s3c2450_map_io(struct map_desc *mach_desc, int size);
++
++extern void s3c2450_init_uarts(struct s3c2410_uartcfg *cfg, int no);
++
++extern void s3c2450_init_clocks(int xtal);
++
++#else
++#define s3c2450_init_clocks NULL
++#define s3c2450_init_uarts NULL
++#define s3c2450_map_io NULL
++#define s3c2450_init NULL
++#endif
+diff --git a/include/asm-arm/plat-s3c64xx/clock.h b/include/asm-arm/plat-s3c64xx/clock.h
+new file mode 100644
+index 0000000..c83b750
+--- /dev/null
++++ b/include/asm-arm/plat-s3c64xx/clock.h
+@@ -0,0 +1,65 @@
++/* linux/include/asm-arm/plat-s3c24xx/clock.h
++ * linux/arch/arm/mach-s3c2410/clock.h
++ *
++ * Copyright (c) 2004-2005 Simtec Electronics
++ * http://www.simtec.co.uk/products/SWLINUX/
++ * Written by Ben Dooks, <ben@simtec.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++*/
++
++struct clk {
++ struct list_head list;
++ struct module *owner;
++ struct clk *parent;
++ const char *name;
++ int id;
++ int usage;
++ unsigned long rate;
++ unsigned long ctrlbit;
++
++ int (*enable)(struct clk *, int enable);
++ int (*set_rate)(struct clk *c, unsigned long rate);
++ unsigned long (*get_rate)(struct clk *c);
++ unsigned long (*round_rate)(struct clk *c, unsigned long rate);
++ int (*set_parent)(struct clk *c, struct clk *parent);
++};
++
++
++/* core clock support */
++
++extern struct clk clk_f;
++extern struct clk clk_h;
++extern struct clk clk_p;
++extern struct clk clk_mpll;
++extern struct clk clk_xtal;
++
++extern struct clk clk_epll;
++
++/* exports for arch/arm/mach-s3c2410
++ *
++ * Please DO NOT use these outside of arch/arm/mach-s3c2410
++*/
++
++extern struct mutex clocks_mutex;
++
++void s3c_clk_enable (uint clocks, uint enable, ulong gate_reg);
++
++extern int s3c64xx_register_clock(struct clk *clk);
++extern int s3c64xx_register_clocks(struct clk **clk, int nr_clks);
++
++extern int s3c64xx_setup_clocks(unsigned long xtal,
++ unsigned long fclk,
++ unsigned long hclk,
++ unsigned long pclk);
++
++
++extern struct clk clk_48m;
++extern struct clk clk_s;
++extern struct clk clk_u;
++extern struct clk clk_27m;
++extern struct clk clk_hx2;
++
++
+diff --git a/include/asm-arm/plat-s3c64xx/regs-iis.h b/include/asm-arm/plat-s3c64xx/regs-iis.h
+new file mode 100644
+index 0000000..785549d
+--- /dev/null
++++ b/include/asm-arm/plat-s3c64xx/regs-iis.h
+@@ -0,0 +1,126 @@
++/* linux/include/asm-arm/arch-s3c64XX/regs-iis.h
++ *
++ * Copyright (c) 2003 Simtec Electronics <linux@simtec.co.uk>
++ * http://www.simtec.co.uk/products/SWLINUX/
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * S3C64XX IIS register definition
++*/
++
++#ifndef __ASM_ARCH_REGS_IIS_H
++#define __ASM_ARCH_REGS_IIS_H
++
++#define S3C64XX_IIS0REG(x) ((x) + S3C6410_PA_IIS_V40)
++
++//#define S3C_IIS0CON S3C64XX_IIS0REG(0x00)
++//#define S3C_IIS0MOD S3C64XX_IIS0REG(0x04)
++//#define S3C_IIS0FIC S3C64XX_IIS0REG(0x08)
++//#define S3C_IIS0PSR S3C64XX_IIS0REG(0x0C)
++//#define S3C_IIS0TXD S3C64XX_IIS0REG(0x10)
++//#define S3C_IIS0RXD S3C64XX_IIS0REG(0x14)
++
++#define S3C64XX_IIS0CON (0x00)
++#define S3C64XX_IIS0MOD (0x04)
++#define S3C64XX_IIS0FIC (0x08)
++#define S3C64XX_IIS0PSR (0x0C)
++#define S3C64XX_IIS0TXD (0x10)
++#define S3C64XX_IIS0RXD (0x14)
++
++#define S3C64XX_IISCON_LRINDEX (1<<8)
++#define S3C64XX_IISCON_TXFIFORDY (1<<7)
++#define S3C64XX_IISCON_RXFIFORDY (1<<6)
++#define S3C64XX_IISCON_TXDMAEN (1<<5)
++#define S3C64XX_IISCON_RXDMAEN (1<<4)
++#define S3C64XX_IISCON_TXIDLE (1<<3)
++#define S3C64XX_IISCON_RXIDLE (1<<2)
++#define S3C64XX_IISCON_PSCEN (1<<1)
++#define S3C64XX_IISCON_IISEN (1<<0)
++
++//#define S3C64XX_IISMOD_MPLL (1<<9)
++#define S3C64XX_IISMOD_MPLL (0x01<<10)
++#define S3C64XX_IISMOD_SLAVE (1<<8)
++#define S3C64XX_IISMOD_NOXFER (0<<6)
++#define S3C64XX_IISMOD_RXMODE (1<<6)
++#define S3C64XX_IISMOD_TXMODE (2<<6)
++#define S3C64XX_IISMOD_TXRXMODE (3<<6)
++#define S3C64XX_IISMOD_LR_LLOW (0<<5)
++#define S3C64XX_IISMOD_LR_RLOW (1<<5)
++#define S3C64XX_IISMOD_IIS (0<<4)
++#define S3C64XX_IISMOD_MSB (1<<4)
++#define S3C64XX_IISMOD_8BIT (0<<3)
++#define S3C64XX_IISMOD_16BIT (1<<3)
++#define S3C64XX_IISMOD_BITMASK (1<<3)
++#define S3C64XX_IISMOD_256FS (0<<2)
++#define S3C64XX_IISMOD_384FS (1<<2)
++#define S3C64XX_IISMOD_16FS (0<<0)
++#define S3C64XX_IISMOD_32FS (1<<0)
++#define S3C64XX_IISMOD_48FS (2<<0)
++#define S3C64XX_IISMOD_FS_MASK (3<<0)
++
++#define S3C64XX_IIS0MOD_DCE_MASK (0x3<<16)
++#define S3C64XX_IIS0MOD_DCE_SD2 (0x1<<17)
++#define S3C64XX_IIS0MOD_DCE_SD1 (0x1<<16)
++#define S3C64XX_IIS0MOD_BLC_MASK (0x3<<13)
++#define S3C64XX_IIS0MOD_BLC_16BIT (0x0<<13)
++#define S3C64XX_IIS0MOD_BLC_08BIT (0x1<<13)
++#define S3C64XX_IIS0MOD_BLC_24BIT (0x2<<13)
++#define S3C64XX_IIS0MOD_CLK_MASK (0x7<<10)
++#define S3C64XX_IIS0MOD_INTERNAL_CLK (0x0<<12)
++#define S3C64XX_IIS0MOD_EXTERNAL_CLK (0x1<<12)
++#define S3C64XX_IIS0MOD_IMS_INTERNAL_MASTER (0x0<<10)
++#define S3C64XX_IIS0MOD_IMS_EXTERNAL_MASTER (0x1<<10)
++#define S3C64XX_IIS0MOD_IMS_SLAVE (0x2<<10)
++#define S3C64XX_IIS0MOD_MODE_MASK (0x3<<8)
++#define S3C64XX_IIS0MOD_TXMODE (0x0<<8)
++#define S3C64XX_IIS0MOD_RXMODE (0x1<<8)
++#define S3C64XX_IIS0MOD_TXRXMODE (0x2<<8)
++#define S3C64XX_IIS0MOD_FM_MASK (0x3<<5)
++#define S3C64XX_IIS0MOD_IIS (0x0<<5)
++#define S3C64XX_IIS0MOD_MSB (0x1<<5)
++#define S3C64XX_IIS0MOD_LSB (0x2<<5)
++#define S3C64XX_IIS0MOD_FS_MASK (0x3<<3)
++#define S3C64XX_IIS0MOD_768FS (0x3<<3)
++#define S3C64XX_IIS0MOD_384FS (0x2<<3)
++#define S3C64XX_IIS0MOD_512FS (0x1<<3)
++#define S3C64XX_IIS0MOD_256FS (0x0<<3)
++#define S3C64XX_IIS0MOD_BFS_MASK (0x3<<1)
++#define S3C64XX_IIS0MOD_48FS (0x1<<1)
++#define S3C64XX_IIS0MOD_32FS (0x0<<1)
++
++#define S3C64XX_IISPSR (0x08)
++#define S3C64XX_IISPSR_INTMASK (31<<5)
++#define S3C64XX_IISPSR_INTSHIFT (5)
++#define S3C64XX_IISPSR_EXTMASK (31<<0)
++#define S3C64XX_IISPSR_EXTSHFIT (0)
++
++#define S3C64XX_IISFCON (0x0c)
++
++#define S3C64XX_IISFCON_TXDMA (1<<15)
++#define S3C64XX_IISFCON_RXDMA (1<<14)
++#define S3C64XX_IISFCON_TXENABLE (1<<13)
++#define S3C64XX_IISFCON_RXENABLE (1<<12)
++#define S3C64XX_IISFCON_TXMASK (0x3f << 6)
++#define S3C64XX_IISFCON_TXSHIFT (6)
++#define S3C64XX_IISFCON_RXMASK (0x3f)
++#define S3C64XX_IISFCON_RXSHIFT (0)
++
++#define S3C64XX_IISFIFO (0x10)
++#define S3C64XX_IISFIFORX (0x14)
++
++#define S3C64XX_IIS0CON_I2SACTIVE (0x1<<0)
++#define S3C64XX_IIS0CON_RXDMACTIVE (0x1<<1)
++#define S3C64XX_IIS0CON_I2SACTIVE (0x1<<0)
++#define S3C64XX_IIS0CON_TXDMACTIVE (0x1<<2)
++
++#define S3C64XX_IIS_TX_FLUSH (0x1<<15)
++#define S3C64XX_IIS_RX_FLUSH (0x1<<7)
++
++#define S3C64XX_IISCON_FTXURINTEN (0x1<<16)
++
++#define S3C64XX_IIS0MOD_24BIT (0x2<<13)
++#define S3C64XX_IIS0MOD_8BIT (0x1<<13)
++#define S3C64XX_IIS0MOD_16BIT (0x0<<13)
++#endif /* __ASM_ARCH_REGS_IIS_H */
+diff --git a/include/asm-arm/plat-s3c64xx/s3c6400.h b/include/asm-arm/plat-s3c64xx/s3c6400.h
+new file mode 100644
+index 0000000..09f3a6d
+--- /dev/null
++++ b/include/asm-arm/plat-s3c64xx/s3c6400.h
+@@ -0,0 +1,27 @@
++/* arch/arm/plat-s3c64xx/s3c6400.h
++ *
++ * Copyright (c) 2004-2005 Samsung Electronics
++ *
++ * Header file for s3c6400 cpu support
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * Modifications:
++*/
++
++#if defined(CONFIG_CPU_S3C6400)
++
++extern int s3c6400_init(void);
++extern void s3c6400_map_io(struct map_desc *mach_desc, int size);
++extern void s3c6400_init_uarts(struct s3c2410_uartcfg *cfg, int no);
++extern void s3c6400_init_clocks(int xtal);
++
++#else
++#define s3c6400_init NULL
++#define s3c6400_map_io NULL
++#define s3c6400_init_uarts NULL
++#define s3c6400_init_clocks NULL
++#endif
++
+diff --git a/include/asm-arm/plat-s3c64xx/s3c6410.h b/include/asm-arm/plat-s3c64xx/s3c6410.h
+new file mode 100644
+index 0000000..5030d2b
+--- /dev/null
++++ b/include/asm-arm/plat-s3c64xx/s3c6410.h
+@@ -0,0 +1,31 @@
++/* arch/arm/plat-s3c64xx/s3c64.h
++ *
++ * Copyright (c) 2004-2005 Samsung Electronics
++ *
++ *
++ * Header file for s3c6410 cpu support
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * Modifications:
++*/
++
++#if defined(CONFIG_CPU_S3C6410)
++
++extern int s3c6410_init(void);
++
++extern void s3c6410_map_io(struct map_desc *mach_desc, int size);
++
++extern void s3c6410_init_uarts(struct s3c2410_uartcfg *cfg, int no);
++
++extern void s3c6410_init_clocks(int xtal);
++
++#else
++#define s3c6410_init NULL
++#define s3c6410_map_io NULL
++#define s3c6410_init_uarts NULL
++#define s3c6410_init_clocks NULL
++#endif
++
+diff --git a/include/asm-arm/plat-s5p/clock.h b/include/asm-arm/plat-s5p/clock.h
+new file mode 100644
+index 0000000..c8aa85a
+--- /dev/null
++++ b/include/asm-arm/plat-s5p/clock.h
+@@ -0,0 +1,67 @@
++/* linux/include/asm-arm/plat-s3c24xx/clock.h
++ * linux/arch/arm/mach-s3c2410/clock.h
++ *
++ * Copyright (c) 2004-2005 Simtec Electronics
++ * http://www.simtec.co.uk/products/SWLINUX/
++ * Written by Ben Dooks, <ben@simtec.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++*/
++
++struct clk {
++ struct list_head list;
++ struct module *owner;
++ struct clk *parent;
++ const char *name;
++ int id;
++ int usage;
++ unsigned long rate;
++ unsigned long ctrlbit;
++
++ int (*enable)(struct clk *, int enable);
++ int (*set_rate)(struct clk *c, unsigned long rate);
++ unsigned long (*get_rate)(struct clk *c);
++ unsigned long (*round_rate)(struct clk *c, unsigned long rate);
++ int (*set_parent)(struct clk *c, struct clk *parent);
++};
++
++/* exports for arch/arm/mach-s3c2410
++ *
++ * Please DO NOT use these outside of arch/arm/mach-s3c2410
++ */
++void s3c_clk_enable (uint clocks, uint enable, ulong gate_reg);
++
++extern int s5pc1xx_register_clock(struct clk *clk);
++extern int s5pc1xx_register_clocks(struct clk **clk, int nr_clks);
++
++extern int s5pc1xx_setup_clocks(unsigned long xtal,
++ unsigned long armclk,
++ unsigned long hclkd0,
++ unsigned long pclkd0,
++ unsigned long hclkd1,
++ unsigned long pclkd1);
++
++extern struct mutex clocks_mutex;
++
++/* core clock support */
++
++extern struct clk clk_xtal;
++extern struct clk clk_arm;
++extern struct clk clk_hd0;
++extern struct clk clk_pd0;
++extern struct clk clk_hd1;
++extern struct clk clk_pd1;
++
++#if 0
++extern struct clk clk_epll;
++
++extern struct clk clk_48m;
++extern struct clk clk_s;
++extern struct clk clk_u;
++extern struct clk clk_27m;
++extern struct clk clk_hx2;
++#endif
++
++
+diff --git a/include/asm-arm/plat-s5p/regs-gpio.h b/include/asm-arm/plat-s5p/regs-gpio.h
+new file mode 100644
+index 0000000..a1ddf37
+--- /dev/null
++++ b/include/asm-arm/plat-s5p/regs-gpio.h
+@@ -0,0 +1,2115 @@
++/* linux/include/asm-arm/plat-s5p/regs-gpio.h
++ *
++ * Copyright (c) 2008 Samsung Electronics
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * S5PC1XX GPIO register definitions
++ */
++
++#ifndef _ASM_PLAT_REGS_GPIO_H_
++#define _ASM_PLAT_REGS_GPIO_H_
++
++/* utility macros */
++#define S5P_GPIO_REG(x) (S3C24XX_VA_GPIO + (x))
++#define S5P_GPIO_NO(bank, offset) ((bank) + (offset))
++#define S5P_GPIO_BASE(pin) ((pin & ~0x1F) >> 5)
++#define S5P_GPIO_OFFSET(pin) (pin & 0x1F)
++
++/* input/output */
++#define S5P_GPIO_INPUT (0x0)
++#define S5P_GPIO_OUTPUT (0x1)
++
++/* pull up/down bit values */
++#define S5P_GPIO_PUD_DISABLE (0x0)
++#define S5P_GPIO_PD_ENABLE (0x1)
++#define S5P_GPIO_PU_ENABLE (0x2)
++
++/* drive strength bit values */
++#define S5P_GPIO_DRV_1X (0x0)
++#define S5P_GPIO_DRV_2X (0x1)
++#define S5P_GPIO_DRV_3X (0x2)
++#define S5P_GPIO_DRV_4X (0x3)
++
++/* power down control */
++#define S5P_GPIO_PDNCON_OUTPUT0 (0x0)
++#define S5P_GPIO_PDNCON_OUTPUT1 (0x1)
++#define S5P_GPIO_PDNCON_INPUT (0x2)
++#define S5P_GPIO_PDNCON_PREV_STATE (0x3)
++
++/* external interrupt trigger bit values */
++#define S5P_GPIO_EINT_LOW (0x0)
++#define S5P_GPIO_EINT_HIGH (0x1)
++#define S5P_GPIO_EINT_FALLING (0x2)
++#define S5P_GPIO_EINT_RISING (0x3)
++#define S5P_GPIO_EINT_BOTH (0x4)
++
++/* bank list */
++#define S5P_GPIO_BANK_A0 (32 * 0)
++#define S5P_GPIO_BANK_A1 (32 * 1)
++#define S5P_GPIO_BANK_B (32 * 2)
++#define S5P_GPIO_BANK_C (32 * 3)
++#define S5P_GPIO_BANK_D (32 * 4)
++#define S5P_GPIO_BANK_E0 (32 * 5)
++#define S5P_GPIO_BANK_E1 (32 * 6)
++#define S5P_GPIO_BANK_F0 (32 * 7)
++#define S5P_GPIO_BANK_F1 (32 * 8)
++#define S5P_GPIO_BANK_F2 (32 * 9)
++#define S5P_GPIO_BANK_F3 (32 * 10)
++#define S5P_GPIO_BANK_G0 (32 * 11)
++#define S5P_GPIO_BANK_G1 (32 * 12)
++#define S5P_GPIO_BANK_G2 (32 * 13)
++#define S5P_GPIO_BANK_G3 (32 * 14)
++#define S5P_GPIO_BANK_H0 (32 * 15)
++#define S5P_GPIO_BANK_H1 (32 * 16)
++#define S5P_GPIO_BANK_H2 (32 * 17)
++#define S5P_GPIO_BANK_H3 (32 * 18)
++#define S5P_GPIO_BANK_I (32 * 19)
++#define S5P_GPIO_BANK_J0 (32 * 20)
++#define S5P_GPIO_BANK_J1 (32 * 21)
++#define S5P_GPIO_BANK_J2 (32 * 22)
++#define S5P_GPIO_BANK_J3 (32 * 23)
++#define S5P_GPIO_BANK_J4 (32 * 24)
++#define S5P_GPIO_BANK_K0 (32 * 25)
++#define S5P_GPIO_BANK_K1 (32 * 26)
++#define S5P_GPIO_BANK_K2 (32 * 27)
++#define S5P_GPIO_BANK_K3 (32 * 28)
++#define S5P_GPIO_BANK_MP0_0 (32 * 29)
++#define S5P_GPIO_BANK_MP0_1 (32 * 30)
++#define S5P_GPIO_BANK_MP0_2 (32 * 31)
++#define S5P_GPIO_BANK_MP0_3 (32 * 32)
++#define S5P_GPIO_BANK_MP0_4 (32 * 33)
++#define S5P_GPIO_BANK_MP1_0 (32 * 34)
++#define S5P_GPIO_BANK_MP1_1 (32 * 35)
++#define S5P_GPIO_BANK_MP1_2 (32 * 36)
++#define S5P_GPIO_BANK_MP1_3 (32 * 37)
++#define S5P_GPIO_BANK_MP1_4 (32 * 38)
++#define S5P_GPIO_BANK_MP1_5 (32 * 39)
++#define S5P_GPIO_BANK_MP1_6 (32 * 40)
++#define S5P_GPIO_BANK_MP1_7 (32 * 41)
++#define S5P_GPIO_BANK_MP1_8 (32 * 42)
++#define S5P_GPIO_BANK_ETC0 (32 * 43)
++#define S5P_GPIO_BANK_ETC1 (32 * 44)
++#define S5P_GPIO_BANK_ETC2 (32 * 45)
++#define S5P_GPIO_BANK_ETC3 (32 * 46)
++#define S5P_GPIO_BANK_ETC4 (32 * 47)
++
++/* GPA0 */
++#define S5P_GPA0_CON S5P_GPIO_REG(0x00)
++#define S5P_GPA0_DAT S5P_GPIO_REG(0x04)
++#define S5P_GPA0_PUD S5P_GPIO_REG(0x08)
++#define S5P_GPA0_DRV S5P_GPIO_REG(0x0C)
++#define S5P_GPA0_CONPDN S5P_GPIO_REG(0x10)
++#define S5P_GPA0_PUDPDN S5P_GPIO_REG(0x14)
++
++#define S5P_GPA0_0 S5P_GPIO_NO(S5P_GPIO_BANK_A0, 0)
++#define S5P_GPA0_0_IN (0x0)
++#define S5P_GPA0_0_OUT (0x1)
++#define S5P_GPA0_0_UART0_RXD (0x2)
++#define S5P_GPA0_0_EXT_INT1_0 (0xF)
++
++#define S5P_GPA0_1 S5P_GPIO_NO(S5P_GPIO_BANK_A0, 1)
++#define S5P_GPA0_1_IN (0x0)
++#define S5P_GPA0_1_OUT (0x1)
++#define S5P_GPA0_1_UART0_TXD (0x2)
++#define S5P_GPA0_1_EXT_INT1_1 (0xF)
++
++#define S5P_GPA0_2 S5P_GPIO_NO(S5P_GPIO_BANK_A0, 2)
++#define S5P_GPA0_2_IN (0x0)
++#define S5P_GPA0_2_OUT (0x1)
++#define S5P_GPA0_2_UART0_CTSn (0x2)
++#define S5P_GPA0_2_EXT_INT1_2 (0xF)
++
++#define S5P_GPA0_3 S5P_GPIO_NO(S5P_GPIO_BANK_A0, 3)
++#define S5P_GPA0_3_IN (0x0)
++#define S5P_GPA0_3_OUT (0x1)
++#define S5P_GPA0_3_UART0_RTSn (0x2)
++#define S5P_GPA0_3_EXT_INT1_3 (0xF)
++
++#define S5P_GPA0_4 S5P_GPIO_NO(S5P_GPIO_BANK_A0, 4)
++#define S5P_GPA0_4_IN (0x0)
++#define S5P_GPA0_4_OUT (0x1)
++#define S5P_GPA0_4_UART1_RXD (0x2)
++#define S5P_GPA0_4_EXT_INT1_4 (0xF)
++
++#define S5P_GPA0_5 S5P_GPIO_NO(S5P_GPIO_BANK_A0, 5)
++#define S5P_GPA0_5_IN (0x0)
++#define S5P_GPA0_5_OUT (0x1)
++#define S5P_GPA0_5_UART1_TXD (0x2)
++#define S5P_GPA0_5_EXT_INT1_5 (0xF)
++
++#define S5P_GPA0_6 S5P_GPIO_NO(S5P_GPIO_BANK_A0, 6)
++#define S5P_GPA0_6_IN (0x0)
++#define S5P_GPA0_6_OUT (0x1)
++#define S5P_GPA0_6_UART1_CTSn (0x2)
++#define S5P_GPA0_6_EXT_INT1_6 (0xF)
++
++#define S5P_GPA0_7 S5P_GPIO_NO(S5P_GPIO_BANK_A0, 7)
++#define S5P_GPA0_7_IN (0x0)
++#define S5P_GPA0_7_OUT (0x1)
++#define S5P_GPA0_7_UART1_RTSn (0x2)
++#define S5P_GPA0_7_EXT_INT1_7 (0xF)
++
++/* GPA1 */
++#define S5P_GPA1_CON S5P_GPIO_REG(0x20)
++#define S5P_GPA1_DAT S5P_GPIO_REG(0x24)
++#define S5P_GPA1_PUD S5P_GPIO_REG(0x28)
++#define S5P_GPA1_DRV S5P_GPIO_REG(0x2C)
++#define S5P_GPA1_CONPDN S5P_GPIO_REG(0x30)
++#define S5P_GPA1_PUDPDN S5P_GPIO_REG(0x34)
++
++#define S5P_GPA1_0 S5P_GPIO_NO(S5P_GPIO_BANK_A1, 0)
++#define S5P_GPA1_0_IN (0x0)
++#define S5P_GPA1_0_OUT (0x1)
++#define S5P_GPA1_0_UART2_RXD (0x2)
++#define S5P_GPA1_0_EXT_INT2_0 (0xF)
++
++#define S5P_GPA1_1 S5P_GPIO_NO(S5P_GPIO_BANK_A1, 1)
++#define S5P_GPA1_1_IN (0x0)
++#define S5P_GPA1_1_OUT (0x1)
++#define S5P_GPA1_1_UART2_TXD (0x2)
++#define S5P_GPA1_1_EXT_INT2_1 (0xF)
++
++#define S5P_GPA1_2 S5P_GPIO_NO(S5P_GPIO_BANK_A1, 2)
++#define S5P_GPA1_2_IN (0x0)
++#define S5P_GPA1_2_OUT (0x1)
++#define S5P_GPA1_2_UART3_RXD (0x2)
++#define S5P_GPA1_2_UART2_CTSn (0x3)
++#define S5P_GPA1_2_IRDA_RX_DATA (0x4)
++#define S5P_GPA1_2_EXT_INT2_2 (0xF)
++
++#define S5P_GPA1_3 S5P_GPIO_NO(S5P_GPIO_BANK_A1, 3)
++#define S5P_GPA1_3_IN (0x0)
++#define S5P_GPA1_3_OUT (0x1)
++#define S5P_GPA1_3_UART3_TXD (0x2)
++#define S5P_GPA1_3_UART2_RTSn (0x3)
++#define S5P_GPA1_3_IRDA_TX_DATA (0x4)
++#define S5P_GPA1_3_EXT_INT2_3 (0xF)
++
++#define S5P_GPA1_4 S5P_GPIO_NO(S5P_GPIO_BANK_A1, 4)
++#define S5P_GPA1_4_IN (0x0)
++#define S5P_GPA1_4_OUT (0x1)
++#define S5P_GPA1_4_UARTCLK (0x2)
++#define S5P_GPA1_4_IRDA_SDBW (0x4)
++#define S5P_GPA1_4_EXT_INT2_4 (0xF)
++
++/* GPB */
++#define S5P_GPB0_CON S5P_GPIO_REG(0x40)
++#define S5P_GPB0_DAT S5P_GPIO_REG(0x44)
++#define S5P_GPB0_PUD S5P_GPIO_REG(0x48)
++#define S5P_GPB0_DRV S5P_GPIO_REG(0x4C)
++#define S5P_GPB0_CONPDN S5P_GPIO_REG(0x50)
++#define S5P_GPB0_PUDPDN S5P_GPIO_REG(0x54)
++
++#define S5P_GPB0 S5P_GPIO_NO(S5P_GPIO_BANK_B, 0)
++#define S5P_GPB0_IN (0x0)
++#define S5P_GPB0_OUT (0x1)
++#define S5P_GPB0_SPI0_MISO (0x2)
++#define S5P_GPB0_EXT_INT3_0 (0xF)
++
++#define S5P_GPB1 S5P_GPIO_NO(S5P_GPIO_BANK_B, 1)
++#define S5P_GPB1_IN (0x0)
++#define S5P_GPB1_OUT (0x1)
++#define S5P_GPB1_SPI0_CLK (0x2)
++#define S5P_GPB1_EXT_INT3_1 (0xF)
++
++#define S5P_GPB2 S5P_GPIO_NO(S5P_GPIO_BANK_B, 2)
++#define S5P_GPB2_IN (0x0)
++#define S5P_GPB2_OUT (0x1)
++#define S5P_GPB2_SPI0_MOSI (0x2)
++#define S5P_GPB2_EXT_INT3_2 (0xF)
++
++#define S5P_GPB3 S5P_GPIO_NO(S5P_GPIO_BANK_B, 3)
++#define S5P_GPB3_IN (0x0)
++#define S5P_GPB3_OUT (0x1)
++#define S5P_GPB3_SPI0_nSS (0x2)
++#define S5P_GPB3_EXT_INT3_3 (0xF)
++
++#define S5P_GPB4 S5P_GPIO_NO(S5P_GPIO_BANK_B, 4)
++#define S5P_GPB4_IN (0x0)
++#define S5P_GPB4_OUT (0x1)
++#define S5P_GPB4_SPI1_MISO (0x2)
++#define S5P_GPB4_EXT_INT3_4 (0xF)
++
++#define S5P_GPB5 S5P_GPIO_NO(S5P_GPIO_BANK_B, 5)
++#define S5P_GPB5_IN (0x0)
++#define S5P_GPB5_OUT (0x1)
++#define S5P_GPB5_SPI1_CLK (0x2)
++#define S5P_GPB5_EXT_INT3_5 (0xF)
++
++#define S5P_GPB6 S5P_GPIO_NO(S5P_GPIO_BANK_B, 6)
++#define S5P_GPB6_IN (0x0)
++#define S5P_GPB6_OUT (0x1)
++#define S5P_GPB6_SPI1_MOSI (0x2)
++#define S5P_GPB6_EXT_INT3_6 (0xF)
++
++#define S5P_GPB7 S5P_GPIO_NO(S5P_GPIO_BANK_B, 7)
++#define S5P_GPB7_IN (0x0)
++#define S5P_GPB7_OUT (0x1)
++#define S5P_GPB7_SPI1_nSS (0x2)
++#define S5P_GPB7_EXT_INT3_7 (0xF)
++
++/* GPC */
++#define S5P_GPC0_CON S5P_GPIO_REG(0x60)
++#define S5P_GPC0_DAT S5P_GPIO_REG(0x64)
++#define S5P_GPC0_PUD S5P_GPIO_REG(0x68)
++#define S5P_GPC0_DRV S5P_GPIO_REG(0x6C)
++#define S5P_GPC0_CONPDN S5P_GPIO_REG(0x70)
++#define S5P_GPC0_PUDPDN S5P_GPIO_REG(0x74)
++
++#define S5P_GPC0 S5P_GPIO_NO(S5P_GPIO_BANK_C, 0)
++#define S5P_GPC0_IN (0x0)
++#define S5P_GPC0_OUT (0x1)
++#define S5P_GPC0_I2S1_SCLK (0x2)
++#define S5P_GPC0_PCM1_SCLK (0x3)
++#define S5P_GPC0_AC97_BITCLK (0x4)
++#define S5P_GPC0_EXT_INT4_0 (0xF)
++
++#define S5P_GPC1 S5P_GPIO_NO(S5P_GPIO_BANK_C, 1)
++#define S5P_GPC1_IN (0x0)
++#define S5P_GPC1_OUT (0x1)
++#define S5P_GPC1_I2S1_CDCLK (0x2)
++#define S5P_GPC1_PCM1_EXTCLK (0x3)
++#define S5P_GPC1_AC97_RESETn (0x4)
++#define S5P_GPC1_EXT_INT4_1 (0xF)
++
++#define S5P_GPC2 S5P_GPIO_NO(S5P_GPIO_BANK_C, 2)
++#define S5P_GPC2_IN (0x0)
++#define S5P_GPC2_OUT (0x1)
++#define S5P_GPC2_I2S1_LRCK (0x2)
++#define S5P_GPC2_PCM1_FSYNC (0x3)
++#define S5P_GPC2_AC97_SYNC (0x4)
++#define S5P_GPC2_EXT_INT4_2 (0xF)
++
++#define S5P_GPC3 S5P_GPIO_NO(S5P_GPIO_BANK_C, 3)
++#define S5P_GPC3_IN (0x0)
++#define S5P_GPC3_OUT (0x1)
++#define S5P_GPC3_I2S1_SDI (0x2)
++#define S5P_GPC3_PCM1_SIN (0x3)
++#define S5P_GPC3_AC97_SDI (0x4)
++#define S5P_GPC3_EXT_INT4_3 (0xF)
++
++#define S5P_GPC4 S5P_GPIO_NO(S5P_GPIO_BANK_C, 4)
++#define S5P_GPC4_IN (0x0)
++#define S5P_GPC4_OUT (0x1)
++#define S5P_GPC4_I2S1_SDO (0x2)
++#define S5P_GPC4_PCM1_SOUT (0x3)
++#define S5P_GPC4_AC97_SDO (0x4)
++#define S5P_GPC4_EXT_INT4_4 (0xF)
++
++/* GPD */
++#define S5P_GPD0_CON S5P_GPIO_REG(0x80)
++#define S5P_GPD0_DAT S5P_GPIO_REG(0x84)
++#define S5P_GPD0_PUD S5P_GPIO_REG(0x88)
++#define S5P_GPD0_DRV S5P_GPIO_REG(0x8C)
++#define S5P_GPD0_CONPDN S5P_GPIO_REG(0x90)
++#define S5P_GPD0_PUDPDN S5P_GPIO_REG(0x94)
++
++#define S5P_GPD0 S5P_GPIO_NO(S5P_GPIO_BANK_D, 0)
++#define S5P_GPD0_IN (0x0)
++#define S5P_GPD0_OUT (0x1)
++#define S5P_GPD0_TOUT0 (0x2)
++#define S5P_GPD0_PWM_TCLK (0x3)
++#define S5P_GPD0_EXT_INT5_0 (0xF)
++
++#define S5P_GPD1 S5P_GPIO_NO(S5P_GPIO_BANK_D, 1)
++#define S5P_GPD1_IN (0x0)
++#define S5P_GPD1_OUT (0x1)
++#define S5P_GPD1_TOUT1 (0x2)
++#define S5P_GPD1_EX_DMA_REQn (0x3)
++#define S5P_GPD1_EXT_INT5_1 (0xF)
++
++#define S5P_GPD2 S5P_GPIO_NO(S5P_GPIO_BANK_D, 2)
++#define S5P_GPD2_IN (0x0)
++#define S5P_GPD2_OUT (0x1)
++#define S5P_GPD2_TOUT2 (0x2)
++#define S5P_GPD2_EX_DMA_ACKn (0x3)
++#define S5P_GPD2_EXT_INT5_2 (0xF)
++
++#define S5P_GPD3 S5P_GPIO_NO(S5P_GPIO_BANK_D, 3)
++#define S5P_GPD3_IN (0x0)
++#define S5P_GPD3_OUT (0x1)
++#define S5P_GPD3_I2C0_SDA (0x2)
++#define S5P_GPD3_EXT_INT5_3 (0xF)
++
++#define S5P_GPD4 S5P_GPIO_NO(S5P_GPIO_BANK_D, 4)
++#define S5P_GPD4_IN (0x0)
++#define S5P_GPD4_OUT (0x1)
++#define S5P_GPD4_I2C0_SCL (0x2)
++#define S5P_GPD4_EXT_INT5_4 (0xF)
++
++#define S5P_GPD5 S5P_GPIO_NO(S5P_GPIO_BANK_D, 5)
++#define S5P_GPD5_IN (0x0)
++#define S5P_GPD5_OUT (0x1)
++#define S5P_GPD5_I2C1_SDA (0x2)
++#define S5P_GPD5_SPDIF0_OUT (0x3)
++#define S5P_GPD5_EXT_INT5_5 (0xF)
++
++#define S5P_GPD6 S5P_GPIO_NO(S5P_GPIO_BANK_D, 6)
++#define S5P_GPD6_IN (0x0)
++#define S5P_GPD6_OUT (0x1)
++#define S5P_GPD6_I2C1_SCL (0x2)
++#define S5P_GPD5_SPDIF_EXTCLK (0x3)
++#define S5P_GPD6_EXT_INT5_6 (0xF)
++
++/* GPE0 */
++#define S5P_GPE0_CON S5P_GPIO_REG(0xA0)
++#define S5P_GPE0_DAT S5P_GPIO_REG(0xA4)
++#define S5P_GPE0_PUD S5P_GPIO_REG(0xA8)
++#define S5P_GPE0_DRV S5P_GPIO_REG(0xAC)
++#define S5P_GPE0_CONPDN S5P_GPIO_REG(0xB0)
++#define S5P_GPE0_PUDPDN S5P_GPIO_REG(0xB4)
++
++#define S5P_GPE0_0 S5P_GPIO_NO(S5P_GPIO_BANK_E0, 0)
++#define S5P_GPE0_0_IN (0x0)
++#define S5P_GPE0_0_OUT (0x1)
++#define S5P_GPE0_0_CAM_A_PCLK (0x2)
++#define S5P_GPE0_0_SD1_CLK (0x3)
++#define S5P_GPE0_0_EXT_INT6_0 (0xF)
++
++#define S5P_GPE0_1 S5P_GPIO_NO(S5P_GPIO_BANK_E0, 1)
++#define S5P_GPE0_1_IN (0x0)
++#define S5P_GPE0_1_OUT (0x1)
++#define S5P_GPE0_1_CAM_A_VSYNC (0x2)
++#define S5P_GPE0_1_SD1_CDn (0x3)
++#define S5P_GPE0_1_EXT_INT6_1 (0xF)
++
++#define S5P_GPE0_2 S5P_GPIO_NO(S5P_GPIO_BANK_E0, 2)
++#define S5P_GPE0_2_IN (0x0)
++#define S5P_GPE0_2_OUT (0x1)
++#define S5P_GPE0_2_CAM_A_HREF (0x2)
++#define S5P_GPE0_2_SD1_CMD (0x3)
++#define S5P_GPE0_2_EXT_INT6_2 (0xF)
++
++#define S5P_GPE0_3 S5P_GPIO_NO(S5P_GPIO_BANK_E0, 3)
++#define S5P_GPE0_3_IN (0x0)
++#define S5P_GPE0_3_OUT (0x1)
++#define S5P_GPE0_3_CAM_A_DATA0 (0x2)
++#define S5P_GPE0_3_SD1_DATA0 (0x3)
++#define S5P_GPE0_3_EXT_INT6_3 (0xF)
++
++#define S5P_GPE0_4 S5P_GPIO_NO(S5P_GPIO_BANK_E0, 4)
++#define S5P_GPE0_4_IN (0x0)
++#define S5P_GPE0_4_OUT (0x1)
++#define S5P_GPE0_4_CAM_A_DATA1 (0x2)
++#define S5P_GPE0_4_SD1_DATA1 (0x3)
++#define S5P_GPE0_4_EXT_INT6_4 (0xF)
++
++#define S5P_GPE0_5 S5P_GPIO_NO(S5P_GPIO_BANK_E0, 5)
++#define S5P_GPE0_5_IN (0x0)
++#define S5P_GPE0_5_OUT (0x1)
++#define S5P_GPE0_5_CAM_A_DATA2 (0x2)
++#define S5P_GPE0_5_SD1_DATA2 (0x3)
++#define S5P_GPE0_5_EXT_INT6_5 (0xF)
++
++#define S5P_GPE0_6 S5P_GPIO_NO(S5P_GPIO_BANK_E0, 6)
++#define S5P_GPE0_6_IN (0x0)
++#define S5P_GPE0_6_OUT (0x1)
++#define S5P_GPE0_6_CAM_A_DATA3 (0x2)
++#define S5P_GPE0_6_SD1_DATA3 (0x3)
++#define S5P_GPE0_6_EXT_INT6_6 (0xF)
++
++#define S5P_GPE0_7 S5P_GPIO_NO(S5P_GPIO_BANK_E0, 7)
++#define S5P_GPE0_7_IN (0x0)
++#define S5P_GPE0_7_OUT (0x1)
++#define S5P_GPE0_7_CAM_A_DATA4 (0x2)
++#define S5P_GPE0_7_SD1_DATA4 (0x3)
++#define S5P_GPE0_7_EXT_INT6_7 (0xF)
++
++/* GPE1 */
++#define S5P_GPE1_CON S5P_GPIO_REG(0xC0)
++#define S5P_GPE1_DAT S5P_GPIO_REG(0xC4)
++#define S5P_GPE1_PUD S5P_GPIO_REG(0xC8)
++#define S5P_GPE1_DRV S5P_GPIO_REG(0xDC)
++#define S5P_GPE1_CONPDN S5P_GPIO_REG(0xD0)
++#define S5P_GPE1_PUDPDN S5P_GPIO_REG(0xD4)
++
++#define S5P_GPE1_0 S5P_GPIO_NO(S5P_GPIO_BANK_E1, 0)
++#define S5P_GPE1_0_IN (0x0)
++#define S5P_GPE1_0_OUT (0x1)
++#define S5P_GPE1_0_CAM_A_DATA5 (0x2)
++#define S5P_GPE1_0_SD1_DATA5 (0x3)
++#define S5P_GPE1_0_EXT_INT7_0 (0xF)
++
++#define S5P_GPE1_1 S5P_GPIO_NO(S5P_GPIO_BANK_E1, 1)
++#define S5P_GPE1_1_IN (0x0)
++#define S5P_GPE1_1_OUT (0x1)
++#define S5P_GPE1_1_CAM_A_DATA6 (0x2)
++#define S5P_GPE1_1_SD1_DATA6 (0x3)
++#define S5P_GPE1_1_EXT_INT7_1 (0xF)
++
++#define S5P_GPE1_2 S5P_GPIO_NO(S5P_GPIO_BANK_E1, 2)
++#define S5P_GPE1_2_IN (0x0)
++#define S5P_GPE1_2_OUT (0x1)
++#define S5P_GPE1_2_CAM_A_DATA7 (0x2)
++#define S5P_GPE1_2_SD1_DATA7 (0x3)
++#define S5P_GPE1_2_EXT_INT7_2 (0xF)
++
++#define S5P_GPE1_3 S5P_GPIO_NO(S5P_GPIO_BANK_E1, 3)
++#define S5P_GPE1_3_IN (0x0)
++#define S5P_GPE1_3_OUT (0x1)
++#define S5P_GPE1_3_CAM_A_CLKOUT (0x2)
++#define S5P_GPE1_3_EXT_INT7_3 (0xF)
++
++#define S5P_GPE1_4 S5P_GPIO_NO(S5P_GPIO_BANK_E1, 4)
++#define S5P_GPE1_4_IN (0x0)
++#define S5P_GPE1_4_OUT (0x1)
++#define S5P_GPE1_4_CAM_A_RESET (0x2)
++#define S5P_GPE1_4_EXT_INT7_4 (0xF)
++
++#define S5P_GPE1_5 S5P_GPIO_NO(S5P_GPIO_BANK_E1, 5)
++#define S5P_GPE1_5_IN (0x0)
++#define S5P_GPE1_5_OUT (0x1)
++#define S5P_GPE1_5_CAM_A_FLASH (0x2)
++#define S5P_GPE1_5_EXT_INT7_4 (0xF)
++
++/* GPF0 */
++#define S5P_GPF0_CON S5P_GPIO_REG(0xE0)
++#define S5P_GPF0_DAT S5P_GPIO_REG(0xE4)
++#define S5P_GPF0_PUD S5P_GPIO_REG(0xE8)
++#define S5P_GPF0_DRV S5P_GPIO_REG(0xEC)
++#define S5P_GPF0_CONPDN S5P_GPIO_REG(0xF0)
++#define S5P_GPF0_PUDPDN S5P_GPIO_REG(0xF4)
++
++#define S5P_GPF0_0 S5P_GPIO_NO(S5P_GPIO_BANK_F0, 0)
++#define S5P_GPF0_0_IN (0x0)
++#define S5P_GPF0_0_OUT (0x1)
++#define S5P_GPF0_0_LCD_HSYNC (0x2)
++#define S5P_GPF0_0_SYS_CS0 (0x3)
++#define S5P_GPF0_0_VEN_HSYNC (0x4)
++#define S5P_GPF0_0_EXT_INT8_0 (0xF)
++
++#define S5P_GPF0_1 S5P_GPIO_NO(S5P_GPIO_BANK_F0, 1)
++#define S5P_GPF0_1_IN (0x0)
++#define S5P_GPF0_1_OUT (0x1)
++#define S5P_GPF0_1_LCD_VSYNC (0x2)
++#define S5P_GPF0_1_SYS_CS1 (0x3)
++#define S5P_GPF0_1_VEN_VSYNC (0x4)
++#define S5P_GPF0_1_EXT_INT8_1 (0xF)
++
++#define S5P_GPF0_2 S5P_GPIO_NO(S5P_GPIO_BANK_F0, 2)
++#define S5P_GPF0_2_IN (0x0)
++#define S5P_GPF0_2_OUT (0x1)
++#define S5P_GPF0_2_LCD_VDEN (0x2)
++#define S5P_GPF0_2_SYS_RS (0x3)
++#define S5P_GPF0_2_VEN_HREF (0x4)
++#define S5P_GPF0_2_EXT_INT8_2 (0xF)
++
++#define S5P_GPF0_3 S5P_GPIO_NO(S5P_GPIO_BANK_F0, 3)
++#define S5P_GPF0_3_IN (0x0)
++#define S5P_GPF0_3_OUT (0x1)
++#define S5P_GPF0_3_LCD_VCLK (0x2)
++#define S5P_GPF0_3_SYS_WE (0x3)
++#define S5P_GPF0_3_V601_CLK (0x4)
++#define S5P_GPF0_3_EXT_INT8_3 (0xF)
++
++#define S5P_GPF0_4 S5P_GPIO_NO(S5P_GPIO_BANK_F0, 4)
++#define S5P_GPF0_4_IN (0x0)
++#define S5P_GPF0_4_OUT (0x1)
++#define S5P_GPF0_4_LCD_VD0 (0x2)
++#define S5P_GPF0_4_SYS_VD0 (0x3)
++#define S5P_GPF0_4_VEN_DATA0 (0x4)
++#define S5P_GPF0_4_EXT_INT8_4 (0xF)
++
++#define S5P_GPF0_5 S5P_GPIO_NO(S5P_GPIO_BANK_F0, 5)
++#define S5P_GPF0_5_IN (0x0)
++#define S5P_GPF0_5_OUT (0x1)
++#define S5P_GPF0_5_LCD_VD1 (0x2)
++#define S5P_GPF0_5_SYS_VD1 (0x3)
++#define S5P_GPF0_5_VEN_DATA1 (0x4)
++#define S5P_GPF0_5_EXT_INT8_5 (0xF)
++
++#define S5P_GPF0_6 S5P_GPIO_NO(S5P_GPIO_BANK_F0, 6)
++#define S5P_GPF0_6_IN (0x0)
++#define S5P_GPF0_6_OUT (0x1)
++#define S5P_GPF0_6_LCD_VD2 (0x2)
++#define S5P_GPF0_6_SYS_VD2 (0x3)
++#define S5P_GPF0_6_VEN_DATA2 (0x4)
++#define S5P_GPF0_6_EXT_INT8_6 (0xF)
++
++#define S5P_GPF0_7 S5P_GPIO_NO(S5P_GPIO_BANK_F0, 7)
++#define S5P_GPF0_7_IN (0x0)
++#define S5P_GPF0_7_OUT (0x1)
++#define S5P_GPF0_7_LCD_VD3 (0x2)
++#define S5P_GPF0_7_SYS_VD3 (0x3)
++#define S5P_GPF0_7_VEN_DATA3 (0x4)
++#define S5P_GPF0_7_EXT_INT8_7 (0xF)
++
++/* GPF1 */
++#define S5P_GPF1_CON S5P_GPIO_REG(0x100)
++#define S5P_GPF1_DAT S5P_GPIO_REG(0x104)
++#define S5P_GPF1_PUD S5P_GPIO_REG(0x108)
++#define S5P_GPF1_DRV S5P_GPIO_REG(0x10C)
++#define S5P_GPF1_CONPDN S5P_GPIO_REG(0x110)
++#define S5P_GPF1_PUDPDN S5P_GPIO_REG(0x114)
++
++#define S5P_GPF1_0 S5P_GPIO_NO(S5P_GPIO_BANK_F1, 0)
++#define S5P_GPF1_0_IN (0x0)
++#define S5P_GPF1_0_OUT (0x1)
++#define S5P_GPF1_0_LCD_VD4 (0x2)
++#define S5P_GPF1_0_SYS_VD4 (0x3)
++#define S5P_GPF1_0_VEN_DATA4 (0x4)
++#define S5P_GPF1_0_EXT_INT9_0 (0xF)
++
++#define S5P_GPF1_1 S5P_GPIO_NO(S5P_GPIO_BANK_F1, 1)
++#define S5P_GPF1_1_IN (0x0)
++#define S5P_GPF1_1_OUT (0x1)
++#define S5P_GPF1_1_LCD_VD5 (0x2)
++#define S5P_GPF1_1_SYS_VD5 (0x3)
++#define S5P_GPF1_1_VEN_DATA5 (0x4)
++#define S5P_GPF1_1_EXT_INT9_1 (0xF)
++
++#define S5P_GPF1_2 S5P_GPIO_NO(S5P_GPIO_BANK_F1, 2)
++#define S5P_GPF1_2_IN (0x0)
++#define S5P_GPF1_2_OUT (0x1)
++#define S5P_GPF1_2_LCD_VD6 (0x2)
++#define S5P_GPF1_2_SYS_VD6 (0x3)
++#define S5P_GPF1_2_VEN_DATA6 (0x4)
++#define S5P_GPF1_2_EXT_INT9_2 (0xF)
++
++#define S5P_GPF1_3 S5P_GPIO_NO(S5P_GPIO_BANK_F1, 3)
++#define S5P_GPF1_3_IN (0x0)
++#define S5P_GPF1_3_OUT (0x1)
++#define S5P_GPF1_3_LCD_VD7 (0x2)
++#define S5P_GPF1_3_SYS_VD7 (0x3)
++#define S5P_GPF1_3_VEN_DATA7 (0x4)
++#define S5P_GPF1_3_EXT_INT9_3 (0xF)
++
++#define S5P_GPF1_4 S5P_GPIO_NO(S5P_GPIO_BANK_F1, 4)
++#define S5P_GPF1_4_IN (0x0)
++#define S5P_GPF1_4_OUT (0x1)
++#define S5P_GPF1_4_LCD_VD8 (0x2)
++#define S5P_GPF1_4_SYS_VD8 (0x3)
++#define S5P_GPF1_4_V656_DATA0 (0x4)
++#define S5P_GPF1_4_EXT_INT9_4 (0xF)
++
++#define S5P_GPF1_5 S5P_GPIO_NO(S5P_GPIO_BANK_F1, 5)
++#define S5P_GPF1_5_IN (0x0)
++#define S5P_GPF1_5_OUT (0x1)
++#define S5P_GPF1_5_LCD_VD9 (0x2)
++#define S5P_GPF1_5_SYS_VD9 (0x3)
++#define S5P_GPF1_5_V656_DATA1 (0x4)
++#define S5P_GPF1_5_EXT_INT9_5 (0xF)
++
++#define S5P_GPF1_6 S5P_GPIO_NO(S5P_GPIO_BANK_F1, 6)
++#define S5P_GPF1_6_IN (0x0)
++#define S5P_GPF1_6_OUT (0x1)
++#define S5P_GPF1_6_LCD_VD10 (0x2)
++#define S5P_GPF1_6_SYS_VD10 (0x3)
++#define S5P_GPF1_6_V656_DATA2 (0x4)
++#define S5P_GPF1_6_EXT_INT9_6 (0xF)
++
++#define S5P_GPF1_7 S5P_GPIO_NO(S5P_GPIO_BANK_F1, 7)
++#define S5P_GPF1_7_IN (0x0)
++#define S5P_GPF1_7_OUT (0x1)
++#define S5P_GPF1_7_LCD_VD11 (0x2)
++#define S5P_GPF1_7_SYS_VD11 (0x3)
++#define S5P_GPF1_7_V656_DATA3 (0x4)
++#define S5P_GPF1_7_EXT_INT9_7 (0xF)
++
++/* GPF2 */
++#define S5P_GPF2_CON S5P_GPIO_REG(0x120)
++#define S5P_GPF2_DAT S5P_GPIO_REG(0x124)
++#define S5P_GPF2_PUD S5P_GPIO_REG(0x128)
++#define S5P_GPF2_DRV S5P_GPIO_REG(0x12C)
++#define S5P_GPF2_CONPDN S5P_GPIO_REG(0x130)
++#define S5P_GPF2_PUDPDN S5P_GPIO_REG(0x134)
++
++#define S5P_GPF2_0 S5P_GPIO_NO(S5P_GPIO_BANK_F2, 0)
++#define S5P_GPF2_0_IN (0x0)
++#define S5P_GPF2_0_OUT (0x1)
++#define S5P_GPF2_0_LCD_VD12 (0x2)
++#define S5P_GPF2_0_SYS_VD12 (0x3)
++#define S5P_GPF2_0_V656_DATA4 (0x4)
++#define S5P_GPF2_0_EXT_INT10_0 (0xF)
++
++#define S5P_GPF2_1 S5P_GPIO_NO(S5P_GPIO_BANK_F2, 1)
++#define S5P_GPF2_1_IN (0x0)
++#define S5P_GPF2_1_OUT (0x1)
++#define S5P_GPF2_1_LCD_VD13 (0x2)
++#define S5P_GPF2_1_SYS_VD13 (0x3)
++#define S5P_GPF2_1_V656_DATA5 (0x4)
++#define S5P_GPF2_1_EXT_INT10_1 (0xF)
++
++#define S5P_GPF2_2 S5P_GPIO_NO(S5P_GPIO_BANK_F2, 2)
++#define S5P_GPF2_2_IN (0x0)
++#define S5P_GPF2_2_OUT (0x1)
++#define S5P_GPF2_2_LCD_VD14 (0x2)
++#define S5P_GPF2_2_SYS_VD14 (0x3)
++#define S5P_GPF2_2_V656_DATA6 (0x4)
++#define S5P_GPF2_2_EXT_INT10_2 (0xF)
++
++#define S5P_GPF2_3 S5P_GPIO_NO(S5P_GPIO_BANK_F2, 3)
++#define S5P_GPF2_3_IN (0x0)
++#define S5P_GPF2_3_OUT (0x1)
++#define S5P_GPF2_3_LCD_VD15 (0x2)
++#define S5P_GPF2_3_SYS_VD15 (0x3)
++#define S5P_GPF2_3_V656_DATA7 (0x4)
++#define S5P_GPF2_3_EXT_INT10_3 (0xF)
++
++#define S5P_GPF2_4 S5P_GPIO_NO(S5P_GPIO_BANK_F2, 4)
++#define S5P_GPF2_4_IN (0x0)
++#define S5P_GPF2_4_OUT (0x1)
++#define S5P_GPF2_4_LCD_VD16 (0x2)
++#define S5P_GPF2_4_SYS_VD16 (0x3)
++#define S5P_GPF2_4_EXT_INT10_4 (0xF)
++
++#define S5P_GPF2_5 S5P_GPIO_NO(S5P_GPIO_BANK_F2, 5)
++#define S5P_GPF2_5_IN (0x0)
++#define S5P_GPF2_5_OUT (0x1)
++#define S5P_GPF2_5_LCD_VD17 (0x2)
++#define S5P_GPF2_5_SYS_VD17 (0x3)
++#define S5P_GPF2_5_EXT_INT10_5 (0xF)
++
++#define S5P_GPF2_6 S5P_GPIO_NO(S5P_GPIO_BANK_F2, 6)
++#define S5P_GPF2_6_IN (0x0)
++#define S5P_GPF2_6_OUT (0x1)
++#define S5P_GPF2_6_LCD_VD18 (0x2)
++#define S5P_GPF2_6_EXT_INT10_6 (0xF)
++
++#define S5P_GPF2_7 S5P_GPIO_NO(S5P_GPIO_BANK_F2, 7)
++#define S5P_GPF2_7_IN (0x0)
++#define S5P_GPF2_7_OUT (0x1)
++#define S5P_GPF2_7_LCD_VD19 (0x2)
++#define S5P_GPF2_7_EXT_INT10_7 (0xF)
++
++/* GPF3 */
++#define S5P_GPF3_CON S5P_GPIO_REG(0x140)
++#define S5P_GPF3_DAT S5P_GPIO_REG(0x144)
++#define S5P_GPF3_PUD S5P_GPIO_REG(0x148)
++#define S5P_GPF3_DRV S5P_GPIO_REG(0x14C)
++#define S5P_GPF3_CONPDN S5P_GPIO_REG(0x150)
++#define S5P_GPF3_PUDPDN S5P_GPIO_REG(0x154)
++
++#define S5P_GPF3_0 S5P_GPIO_NO(S5P_GPIO_BANK_F3, 0)
++#define S5P_GPF3_0_IN (0x0)
++#define S5P_GPF3_0_OUT (0x1)
++#define S5P_GPF3_0_LCD_VD20 (0x2)
++#define S5P_GPF3_0_EXT_INT11_0 (0xF)
++
++#define S5P_GPF3_1 S5P_GPIO_NO(S5P_GPIO_BANK_F3, 1)
++#define S5P_GPF3_1_IN (0x0)
++#define S5P_GPF3_1_OUT (0x1)
++#define S5P_GPF3_1_LCD_VD21 (0x2)
++#define S5P_GPF3_1_EXT_INT11_1 (0xF)
++
++#define S5P_GPF3_2 S5P_GPIO_NO(S5P_GPIO_BANK_F3, 2)
++#define S5P_GPF3_2_IN (0x0)
++#define S5P_GPF3_2_OUT (0x1)
++#define S5P_GPF3_2_LCD_VD22 (0x2)
++#define S5P_GPF3_2_VSYNC_LDI (0x3)
++#define S5P_GPF3_2_V656_CLK (0x4)
++#define S5P_GPF3_2_EXT_INT11_2 (0xF)
++
++#define S5P_GPF3_3 S5P_GPIO_NO(S5P_GPIO_BANK_F3, 3)
++#define S5P_GPF3_3_IN (0x0)
++#define S5P_GPF3_3_OUT (0x1)
++#define S5P_GPF3_3_LCD_VD23 (0x2)
++#define S5P_GPF3_3_SYS_OE (0x3)
++#define S5P_GPF3_3_VEN_FIELD (0x4)
++#define S5P_GPF3_3_EXT_INT11_3 (0xF)
++
++/* GPG0 */
++#define S5P_GPG0_CON S5P_GPIO_REG(0x160)
++#define S5P_GPG0_DAT S5P_GPIO_REG(0x164)
++#define S5P_GPG0_PUD S5P_GPIO_REG(0x168)
++#define S5P_GPG0_DRV S5P_GPIO_REG(0x16C)
++#define S5P_GPG0_CONPDN S5P_GPIO_REG(0x170)
++#define S5P_GPG0_PUDPDN S5P_GPIO_REG(0x174)
++
++#define S5P_GPG0_0 S5P_GPIO_NO(S5P_GPIO_BANK_G0, 0)
++#define S5P_GPG0_0_IN (0x0)
++#define S5P_GPG0_0_OUT (0x1)
++#define S5P_GPG0_0_SD0_CLK (0x2)
++#define S5P_GPG0_0_EXT_INT12_0 (0xF)
++
++#define S5P_GPG0_1 S5P_GPIO_NO(S5P_GPIO_BANK_G0, 1)
++#define S5P_GPG0_1_IN (0x0)
++#define S5P_GPG0_1_OUT (0x1)
++#define S5P_GPG0_1_SD0_CMD (0x2)
++#define S5P_GPG0_1_EXT_INT12_1 (0xF)
++
++#define S5P_GPG0_2 S5P_GPIO_NO(S5P_GPIO_BANK_G0, 2)
++#define S5P_GPG0_2_IN (0x0)
++#define S5P_GPG0_2_OUT (0x1)
++#define S5P_GPG0_2_SD0_DATA0 (0x2)
++#define S5P_GPG0_2_EXT_INT12_2 (0xF)
++
++#define S5P_GPG0_3 S5P_GPIO_NO(S5P_GPIO_BANK_G0, 3)
++#define S5P_GPG0_3_IN (0x0)
++#define S5P_GPG0_3_OUT (0x1)
++#define S5P_GPG0_3_SD0_DATA1 (0x2)
++#define S5P_GPG0_3_EXT_INT12_3 (0xF)
++
++#define S5P_GPG0_4 S5P_GPIO_NO(S5P_GPIO_BANK_G0, 4)
++#define S5P_GPG0_4_IN (0x0)
++#define S5P_GPG0_4_OUT (0x1)
++#define S5P_GPG0_4_SD0_DATA2 (0x2)
++#define S5P_GPG0_4_EXT_INT12_4 (0xF)
++
++#define S5P_GPG0_5 S5P_GPIO_NO(S5P_GPIO_BANK_G0, 5)
++#define S5P_GPG0_5_IN (0x0)
++#define S5P_GPG0_5_OUT (0x1)
++#define S5P_GPG0_5_SD0_DATA3 (0x2)
++#define S5P_GPG0_5_EXT_INT12_5 (0xF)
++
++#define S5P_GPG0_6 S5P_GPIO_NO(S5P_GPIO_BANK_G0, 6)
++#define S5P_GPG0_6_IN (0x0)
++#define S5P_GPG0_6_OUT (0x1)
++#define S5P_GPG0_6_SD0_DATA4 (0x2)
++#define S5P_GPG0_6_EXT_INT12_6 (0xF)
++
++#define S5P_GPG0_7 S5P_GPIO_NO(S5P_GPIO_BANK_G0, 7)
++#define S5P_GPG0_7_IN (0x0)
++#define S5P_GPG0_7_OUT (0x1)
++#define S5P_GPG0_7_SD0_DATA5 (0x2)
++#define S5P_GPG0_7_EXT_INT12_7 (0xF)
++
++/* GPG1 */
++#define S5P_GPG1_CON S5P_GPIO_REG(0x180)
++#define S5P_GPG1_DAT S5P_GPIO_REG(0x184)
++#define S5P_GPG1_PUD S5P_GPIO_REG(0x188)
++#define S5P_GPG1_DRV S5P_GPIO_REG(0x18C)
++#define S5P_GPG1_CONPDN S5P_GPIO_REG(0x190)
++#define S5P_GPG1_PUDPDN S5P_GPIO_REG(0x194)
++
++#define S5P_GPG1_0 S5P_GPIO_NO(S5P_GPIO_BANK_G1, 0)
++#define S5P_GPG1_0_IN (0x0)
++#define S5P_GPG1_0_OUT (0x1)
++#define S5P_GPG1_0_SD0_DATA6 (0x2)
++#define S5P_GPG1_0_EXT_INT13_0 (0xF)
++
++#define S5P_GPG1_1 S5P_GPIO_NO(S5P_GPIO_BANK_G1, 1)
++#define S5P_GPG1_1_IN (0x0)
++#define S5P_GPG1_1_OUT (0x1)
++#define S5P_GPG1_1_SD0_DATA7 (0x2)
++#define S5P_GPG1_1_EXT_INT13_1 (0xF)
++
++#define S5P_GPG1_2 S5P_GPIO_NO(S5P_GPIO_BANK_G1, 2)
++#define S5P_GPG1_2_IN (0x0)
++#define S5P_GPG1_2_OUT (0x1)
++#define S5P_GPG1_2_SD0_CDn (0x2)
++#define S5P_GPG1_2_EXT_INT13_2 (0xF)
++
++/* GPG2 */
++#define S5P_GPG2_CON S5P_GPIO_REG(0x1A0)
++#define S5P_GPG2_DAT S5P_GPIO_REG(0x1A4)
++#define S5P_GPG2_PUD S5P_GPIO_REG(0x1A8)
++#define S5P_GPG2_DRV S5P_GPIO_REG(0x1AC)
++#define S5P_GPG2_CONPDN S5P_GPIO_REG(0x1B0)
++#define S5P_GPG2_PUDPDN S5P_GPIO_REG(0x1B4)
++
++#define S5P_GPG2_0 S5P_GPIO_NO(S5P_GPIO_BANK_G2, 0)
++#define S5P_GPG2_0_IN (0x0)
++#define S5P_GPG2_0_OUT (0x1)
++#define S5P_GPG2_0_SD1_CLK (0x2)
++#define S5P_GPG2_0_EXT_INT14_0 (0xF)
++
++#define S5P_GPG2_1 S5P_GPIO_NO(S5P_GPIO_BANK_G2, 1)
++#define S5P_GPG2_1_IN (0x0)
++#define S5P_GPG2_1_OUT (0x1)
++#define S5P_GPG2_1_SD1_CMD (0x2)
++#define S5P_GPG2_1_EXT_INT14_1 (0xF)
++
++#define S5P_GPG2_2 S5P_GPIO_NO(S5P_GPIO_BANK_G2, 2)
++#define S5P_GPG2_2_IN (0x0)
++#define S5P_GPG2_2_OUT (0x1)
++#define S5P_GPG2_2_SD1_DATA0 (0x2)
++#define S5P_GPG2_2_EXT_INT14_2 (0xF)
++
++#define S5P_GPG2_3 S5P_GPIO_NO(S5P_GPIO_BANK_G2, 3)
++#define S5P_GPG2_3_IN (0x0)
++#define S5P_GPG2_3_OUT (0x1)
++#define S5P_GPG2_3_SD1_DATA1 (0x2)
++#define S5P_GPG2_3_EXT_INT14_3 (0xF)
++
++#define S5P_GPG2_4 S5P_GPIO_NO(S5P_GPIO_BANK_G2, 4)
++#define S5P_GPG2_4_IN (0x0)
++#define S5P_GPG2_4_OUT (0x1)
++#define S5P_GPG2_4_SD1_DATA2 (0x2)
++#define S5P_GPG2_4_EXT_INT14_4 (0xF)
++
++#define S5P_GPG2_5 S5P_GPIO_NO(S5P_GPIO_BANK_G2, 5)
++#define S5P_GPG2_5_IN (0x0)
++#define S5P_GPG2_5_OUT (0x1)
++#define S5P_GPG2_5_SD1_DATA3 (0x2)
++#define S5P_GPG2_5_EXT_INT14_5 (0xF)
++
++#define S5P_GPG2_6 S5P_GPIO_NO(S5P_GPIO_BANK_G2, 6)
++#define S5P_GPG2_6_IN (0x0)
++#define S5P_GPG2_6_OUT (0x1)
++#define S5P_GPG2_6_SD1_CDn (0x2)
++#define S5P_GPG2_6_EXT_INT14_6 (0xF)
++
++/* GPG3 */
++#define S5P_GPG3_CON S5P_GPIO_REG(0x1C0)
++#define S5P_GPG3_DAT S5P_GPIO_REG(0x1C4)
++#define S5P_GPG3_PUD S5P_GPIO_REG(0x1C8)
++#define S5P_GPG3_DRV S5P_GPIO_REG(0x1CC)
++#define S5P_GPG3_CONPDN S5P_GPIO_REG(0x1D0)
++#define S5P_GPG3_PUDPDN S5P_GPIO_REG(0x1D4)
++
++#define S5P_GPG3_0 S5P_GPIO_NO(S5P_GPIO_BANK_G3, 0)
++#define S5P_GPG3_0_IN (0x0)
++#define S5P_GPG3_0_OUT (0x1)
++#define S5P_GPG3_0_SD2_CLK (0x2)
++#define S5P_GPG3_0_SPI2_CLK (0x3)
++#define S5P_GPG3_0_I2S2_SCLK (0x4)
++#define S5P_GPG3_0_PCM0_SCLK (0x5)
++#define S5P_GPG3_0_EXT_INT15_0 (0xF)
++
++#define S5P_GPG3_1 S5P_GPIO_NO(S5P_GPIO_BANK_G3, 1)
++#define S5P_GPG3_1_IN (0x0)
++#define S5P_GPG3_1_OUT (0x1)
++#define S5P_GPG3_1_SD2_CMD (0x2)
++#define S5P_GPG3_1_SPI2_nSS (0x3)
++#define S5P_GPG3_1_I2S2_CDCLK (0x4)
++#define S5P_GPG3_1_PCM0_EXTCLK (0x5)
++#define S5P_GPG3_1_EXT_INT15_1 (0xF)
++
++#define S5P_GPG3_2 S5P_GPIO_NO(S5P_GPIO_BANK_G3, 2)
++#define S5P_GPG3_2_IN (0x0)
++#define S5P_GPG3_2_OUT (0x1)
++#define S5P_GPG3_2_SD2_DATA0 (0x2)
++#define S5P_GPG3_2_SPI2_MISO (0x3)
++#define S5P_GPG3_2_I2S2_LRCK (0x4)
++#define S5P_GPG3_2_PCM0_FSYNC (0x5)
++#define S5P_GPG3_2_EXT_INT15_2 (0xF)
++
++#define S5P_GPG3_3 S5P_GPIO_NO(S5P_GPIO_BANK_G3, 3)
++#define S5P_GPG3_3_IN (0x0)
++#define S5P_GPG3_3_OUT (0x1)
++#define S5P_GPG3_3_SD2_DATA1 (0x2)
++#define S5P_GPG3_3_SPI2_MOSI (0x3)
++#define S5P_GPG3_3_I2S2_SDI (0x4)
++#define S5P_GPG3_3_PCM0_SIN (0x5)
++#define S5P_GPG3_3_EXT_INT15_3 (0xF)
++
++#define S5P_GPG3_4 S5P_GPIO_NO(S5P_GPIO_BANK_G3, 4)
++#define S5P_GPG3_4_IN (0x0)
++#define S5P_GPG3_4_OUT (0x1)
++#define S5P_GPG3_4_SD2_DATA2 (0x2)
++#define S5P_GPG3_4_I2S2_SDO (0x4)
++#define S5P_GPG3_4_PCM0_SOUT (0x5)
++#define S5P_GPG3_4_EXT_INT15_4 (0xF)
++
++#define S5P_GPG3_5 S5P_GPIO_NO(S5P_GPIO_BANK_G3, 5)
++#define S5P_GPG3_5_IN (0x0)
++#define S5P_GPG3_5_OUT (0x1)
++#define S5P_GPG3_5_SD2_DATA3 (0x2)
++#define S5P_GPG3_5_SPDIF0_OUT (0x5)
++#define S5P_GPG3_5_EXT_INT15_5 (0xF)
++
++#define S5P_GPG3_6 S5P_GPIO_NO(S5P_GPIO_BANK_G3, 6)
++#define S5P_GPG3_6_IN (0x0)
++#define S5P_GPG3_6_OUT (0x1)
++#define S5P_GPG3_6_SD2_CDn (0x2)
++#define S5P_GPG3_6_SPDIF_EXTCLK (0x5)
++#define S5P_GPG3_6_EXT_INT15_6 (0xF)
++
++/* GPH0 */
++#define S5P_GPH0_CON S5P_GPIO_REG(0xC00)
++#define S5P_GPH0_DAT S5P_GPIO_REG(0xC04)
++#define S5P_GPH0_PUD S5P_GPIO_REG(0xC08)
++#define S5P_GPH0_DRV S5P_GPIO_REG(0xC0C)
++#define S5P_GPH0_CONPDN S5P_GPIO_REG(0xC10)
++#define S5P_GPH0_PUDPDN S5P_GPIO_REG(0xC14)
++
++#define S5P_GPH0_0 S5P_GPIO_NO(S5P_GPIO_BANK_H0, 0)
++#define S5P_GPH0_0_IN (0x0)
++#define S5P_GPH0_0_OUT (0x1)
++#define S5P_GPH0_0_EXT_INT_0 (0x2)
++
++#define S5P_GPH0_1 S5P_GPIO_NO(S5P_GPIO_BANK_H0, 1)
++#define S5P_GPH0_1_IN (0x0)
++#define S5P_GPH0_1_OUT (0x1)
++#define S5P_GPH0_1_EXT_INT_1 (0x2)
++
++#define S5P_GPH0_2 S5P_GPIO_NO(S5P_GPIO_BANK_H0, 2)
++#define S5P_GPH0_2_IN (0x0)
++#define S5P_GPH0_2_OUT (0x1)
++#define S5P_GPH0_2_EXT_INT_2 (0x2)
++
++#define S5P_GPH0_3 S5P_GPIO_NO(S5P_GPIO_BANK_H0, 3)
++#define S5P_GPH0_3_IN (0x0)
++#define S5P_GPH0_3_OUT (0x1)
++#define S5P_GPH0_3_EXT_INT_3 (0x2)
++
++#define S5P_GPH0_4 S5P_GPIO_NO(S5P_GPIO_BANK_H0, 4)
++#define S5P_GPH0_4_IN (0x0)
++#define S5P_GPH0_4_OUT (0x1)
++#define S5P_GPH0_4_EXT_INT_4 (0x2)
++
++#define S5P_GPH0_5 S5P_GPIO_NO(S5P_GPIO_BANK_H0, 5)
++#define S5P_GPH0_5_IN (0x0)
++#define S5P_GPH0_5_OUT (0x1)
++#define S5P_GPH0_5_EXT_INT_5 (0x2)
++
++#define S5P_GPH0_6 S5P_GPIO_NO(S5P_GPIO_BANK_H0, 6)
++#define S5P_GPH0_6_IN (0x0)
++#define S5P_GPH0_6_OUT (0x1)
++#define S5P_GPH0_6_EXT_INT_6 (0x2)
++
++#define S5P_GPH0_7 S5P_GPIO_NO(S5P_GPIO_BANK_H0, 7)
++#define S5P_GPH0_7_IN (0x0)
++#define S5P_GPH0_7_OUT (0x1)
++#define S5P_GPH0_7_EXT_INT_7 (0x2)
++
++/* GPH1 */
++#define S5P_GPH1_CON S5P_GPIO_REG(0xC20)
++#define S5P_GPH1_DAT S5P_GPIO_REG(0xC24)
++#define S5P_GPH1_PUD S5P_GPIO_REG(0xC28)
++#define S5P_GPH1_DRV S5P_GPIO_REG(0xC2C)
++
++#define S5P_GPH1_0 S5P_GPIO_NO(S5P_GPIO_BANK_H1, 0)
++#define S5P_GPH1_0_IN (0x0)
++#define S5P_GPH1_0_OUT (0x1)
++#define S5P_GPH1_0_EXT_INT_8 (0x2)
++
++#define S5P_GPH1_1 S5P_GPIO_NO(S5P_GPIO_BANK_H1, 1)
++#define S5P_GPH1_1_IN (0x0)
++#define S5P_GPH1_1_OUT (0x1)
++#define S5P_GPH1_1_EXT_INT_9 (0x2)
++
++#define S5P_GPH1_2 S5P_GPIO_NO(S5P_GPIO_BANK_H1, 2)
++#define S5P_GPH1_2_IN (0x0)
++#define S5P_GPH1_2_OUT (0x1)
++#define S5P_GPH1_2_EXT_INT_10 (0x2)
++#define S5P_GPH1_2_CG_REALIN (0x3)
++
++#define S5P_GPH1_3 S5P_GPIO_NO(S5P_GPIO_BANK_H1, 3)
++#define S5P_GPH1_3_IN (0x0)
++#define S5P_GPH1_3_OUT (0x1)
++#define S5P_GPH1_3_EXT_INT_11 (0x2)
++#define S5P_GPH1_3_CG_IMGIN (0x3)
++
++#define S5P_GPH1_4 S5P_GPIO_NO(S5P_GPIO_BANK_H1, 4)
++#define S5P_GPH1_4_IN (0x0)
++#define S5P_GPH1_4_OUT (0x1)
++#define S5P_GPH1_4_EXT_INT_12 (0x2)
++#define S5P_GPH1_4_CG_GPO0 (0x3)
++
++#define S5P_GPH1_5 S5P_GPIO_NO(S5P_GPIO_BANK_H1, 5)
++#define S5P_GPH1_5_IN (0x0)
++#define S5P_GPH1_5_OUT (0x1)
++#define S5P_GPH1_5_EXT_INT_13 (0x2)
++#define S5P_GPH1_5_CG_GPO1 (0x3)
++
++#define S5P_GPH1_6 S5P_GPIO_NO(S5P_GPIO_BANK_H1, 6)
++#define S5P_GPH1_6_IN (0x0)
++#define S5P_GPH1_6_OUT (0x1)
++#define S5P_GPH1_6_EXT_INT_14 (0x2)
++#define S5P_GPH1_6_CG_GPO2 (0x3)
++
++#define S5P_GPH1_7 S5P_GPIO_NO(S5P_GPIO_BANK_H1, 7)
++#define S5P_GPH1_7_IN (0x0)
++#define S5P_GPH1_7_OUT (0x1)
++#define S5P_GPH1_7_EXT_INT_15 (0x2)
++#define S5P_GPH1_7_CG_GPO3 (0x3)
++
++/* GPH2 */
++#define S5P_GPH2_CON S5P_GPIO_REG(0xC40)
++#define S5P_GPH2_DAT S5P_GPIO_REG(0xC44)
++#define S5P_GPH2_PUD S5P_GPIO_REG(0xC48)
++#define S5P_GPH2_DRV S5P_GPIO_REG(0xC4C)
++
++#define S5P_GPH2_0 S5P_GPIO_NO(S5P_GPIO_BANK_H2, 0)
++#define S5P_GPH2_0_IN (0x0)
++#define S5P_GPH2_0_OUT (0x1)
++#define S5P_GPH2_0_EXT_INT_16 (0x2)
++#define S5P_GPH2_0_KP_COL0 (0x3)
++#define S5P_GPH2_0_CAM_B_DATA0 (0x4)
++
++#define S5P_GPH2_1 S5P_GPIO_NO(S5P_GPIO_BANK_H2, 1)
++#define S5P_GPH2_1_IN (0x0)
++#define S5P_GPH2_1_OUT (0x1)
++#define S5P_GPH2_1_EXT_INT_17 (0x2)
++#define S5P_GPH2_1_KP_COL1 (0x3)
++#define S5P_GPH2_1_CAM_B_DATA1 (0x4)
++
++#define S5P_GPH2_2 S5P_GPIO_NO(S5P_GPIO_BANK_H2, 2)
++#define S5P_GPH2_2_IN (0x0)
++#define S5P_GPH2_2_OUT (0x1)
++#define S5P_GPH2_2_EXT_INT_18 (0x2)
++#define S5P_GPH2_2_KP_COL2 (0x3)
++#define S5P_GPH2_2_CAM_B_DATA2 (0x4)
++
++#define S5P_GPH2_3 S5P_GPIO_NO(S5P_GPIO_BANK_H2, 3)
++#define S5P_GPH2_3_IN (0x0)
++#define S5P_GPH2_3_OUT (0x1)
++#define S5P_GPH2_3_EXT_INT_19 (0x2)
++#define S5P_GPH2_3_KP_COL3 (0x3)
++#define S5P_GPH2_3_CAM_B_DATA3 (0x4)
++
++#define S5P_GPH2_4 S5P_GPIO_NO(S5P_GPIO_BANK_H2, 4)
++#define S5P_GPH2_4_IN (0x0)
++#define S5P_GPH2_4_OUT (0x1)
++#define S5P_GPH2_4_EXT_INT_20 (0x2)
++#define S5P_GPH2_4_KP_COL4 (0x3)
++#define S5P_GPH2_4_CAM_B_DATA4 (0x4)
++
++#define S5P_GPH2_5 S5P_GPIO_NO(S5P_GPIO_BANK_H2, 5)
++#define S5P_GPH2_5_IN (0x0)
++#define S5P_GPH2_5_OUT (0x1)
++#define S5P_GPH2_5_EXT_INT_21 (0x2)
++#define S5P_GPH2_5_KP_COL5 (0x3)
++#define S5P_GPH2_5_CAM_B_DATA5 (0x4)
++
++#define S5P_GPH2_6 S5P_GPIO_NO(S5P_GPIO_BANK_H2, 6)
++#define S5P_GPH2_6_IN (0x0)
++#define S5P_GPH2_6_OUT (0x1)
++#define S5P_GPH2_6_EXT_INT_22 (0x2)
++#define S5P_GPH2_6_KP_COL6 (0x3)
++#define S5P_GPH2_6_CAM_B_DATA6 (0x4)
++
++#define S5P_GPH2_7 S5P_GPIO_NO(S5P_GPIO_BANK_H2, 7)
++#define S5P_GPH2_7_IN (0x0)
++#define S5P_GPH2_7_OUT (0x1)
++#define S5P_GPH2_7_EXT_INT_23 (0x2)
++#define S5P_GPH2_7_KP_COL7 (0x3)
++#define S5P_GPH2_7_CAM_B_DATA7 (0x4)
++
++/* GPH3 */
++#define S5P_GPH3_CON S5P_GPIO_REG(0xC60)
++#define S5P_GPH3_DAT S5P_GPIO_REG(0xC64)
++#define S5P_GPH3_PUD S5P_GPIO_REG(0xC68)
++#define S5P_GPH3_DRV S5P_GPIO_REG(0xC6C)
++
++#define S5P_GPH3_0 S5P_GPIO_NO(S5P_GPIO_BANK_H3, 0)
++#define S5P_GPH3_0_IN (0x0)
++#define S5P_GPH3_0_OUT (0x1)
++#define S5P_GPH3_0_EXT_INT_24 (0x2)
++#define S5P_GPH3_0_KP_ROW0 (0x3)
++#define S5P_GPH3_0_CAM_B_PCLK (0x4)
++
++#define S5P_GPH3_1 S5P_GPIO_NO(S5P_GPIO_BANK_H3, 1)
++#define S5P_GPH3_1_IN (0x0)
++#define S5P_GPH3_1_OUT (0x1)
++#define S5P_GPH3_1_EXT_INT_25 (0x2)
++#define S5P_GPH3_1_KP_ROW1 (0x3)
++#define S5P_GPH3_1_CAM_B_VSYNC (0x4)
++
++#define S5P_GPH3_2 S5P_GPIO_NO(S5P_GPIO_BANK_H3, 2)
++#define S5P_GPH3_2_IN (0x0)
++#define S5P_GPH3_2_OUT (0x1)
++#define S5P_GPH3_2_EXT_INT_26 (0x2)
++#define S5P_GPH3_2_KP_ROW2 (0x3)
++#define S5P_GPH3_2_CAM_B_HREF (0x4)
++
++#define S5P_GPH3_3 S5P_GPIO_NO(S5P_GPIO_BANK_H3, 3)
++#define S5P_GPH3_3_IN (0x0)
++#define S5P_GPH3_3_OUT (0x1)
++#define S5P_GPH3_3_EXT_INT_27 (0x2)
++#define S5P_GPH3_3_KP_ROW3 (0x3)
++#define S5P_GPH3_3_CAM_B_FIELD (0x4)
++
++#define S5P_GPH3_4 S5P_GPIO_NO(S5P_GPIO_BANK_H3, 4)
++#define S5P_GPH3_4_IN (0x0)
++#define S5P_GPH3_4_OUT (0x1)
++#define S5P_GPH3_4_EXT_INT_28 (0x2)
++#define S5P_GPH3_4_KP_ROW4 (0x3)
++#define S5P_GPH3_4_CAN0_TX (0x4)
++
++#define S5P_GPH3_5 S5P_GPIO_NO(S5P_GPIO_BANK_H3, 5)
++#define S5P_GPH3_5_IN (0x0)
++#define S5P_GPH3_5_OUT (0x1)
++#define S5P_GPH3_5_EXT_INT_29 (0x2)
++#define S5P_GPH3_5_KP_ROW5 (0x3)
++#define S5P_GPH3_5_CAN0_RX (0x4)
++
++#define S5P_GPH3_6 S5P_GPIO_NO(S5P_GPIO_BANK_H3, 6)
++#define S5P_GPH3_6_IN (0x0)
++#define S5P_GPH3_6_OUT (0x1)
++#define S5P_GPH3_6_EXT_INT_30 (0x2)
++#define S5P_GPH3_6_KP_ROW6 (0x3)
++#define S5P_GPH3_6_CAN1_TX (0x4)
++
++#define S5P_GPH3_7 S5P_GPIO_NO(S5P_GPIO_BANK_H3, 6)
++#define S5P_GPH3_7_IN (0x0)
++#define S5P_GPH3_7_OUT (0x1)
++#define S5P_GPH3_7_EXT_INT_31 (0x2)
++#define S5P_GPH3_7_KP_ROW7 (0x3)
++#define S5P_GPH3_7_CAN1_RX (0x4)
++
++/* GPI */
++#define S5P_GPI0_CON S5P_GPIO_REG(0x1E0)
++#define S5P_GPI0_DAT S5P_GPIO_REG(0x1E4)
++#define S5P_GPI0_PUD S5P_GPIO_REG(0x1E8)
++#define S5P_GPI0_DRV S5P_GPIO_REG(0x1EC)
++#define S5P_GPI0_CONPDN S5P_GPIO_REG(0x1F0)
++#define S5P_GPI0_PUDPDN S5P_GPIO_REG(0x1F4)
++
++#define S5P_GPI0 S5P_GPIO_NO(S5P_GPIO_BANK_I, 0)
++#define S5P_GPI0_IN (0x0)
++#define S5P_GPI0_OUT (0x1)
++#define S5P_GPI0_IEM_SCLK (0x2)
++#define S5P_GPI0_EXT_INT20_0 (0xF)
++
++#define S5P_GPI1 S5P_GPIO_NO(S5P_GPIO_BANK_I, 1)
++#define S5P_GPI1_IN (0x0)
++#define S5P_GPI1_OUT (0x1)
++#define S5P_GPI1_IEM_SPWI (0x2)
++#define S5P_GPI1_EXT_INT20_1 (0xF)
++
++#define S5P_GPI2 S5P_GPIO_NO(S5P_GPIO_BANK_I, 2)
++#define S5P_GPI3 S5P_GPIO_NO(S5P_GPIO_BANK_I, 3)
++
++#define S5P_GPI4 S5P_GPIO_NO(S5P_GPIO_BANK_I, 4)
++#define S5P_GPI4_IN (0x0)
++#define S5P_GPI4_OUT (0x1)
++#define S5P_GPI4_NFMOD2 (0x2)
++#define S5P_GPI4_EXT_INT20_4 (0xF)
++
++#define S5P_GPI5 S5P_GPIO_NO(S5P_GPIO_BANK_I, 5)
++#define S5P_GPI5_IN (0x0)
++#define S5P_GPI5_OUT (0x1)
++#define S5P_GPI5_NFMOD3 (0x2)
++#define S5P_GPI5_EXT_INT20_5 (0xF)
++
++#define S5P_GPI6 S5P_GPIO_NO(S5P_GPIO_BANK_I, 6)
++#define S5P_GPI6_IN (0x0)
++#define S5P_GPI6_OUT (0x1)
++#define S5P_GPI6_NFMOD4 (0x2)
++#define S5P_GPI6_EXT_INT20_6 (0xF)
++
++#define S5P_GPI7 S5P_GPIO_NO(S5P_GPIO_BANK_I, 7)
++#define S5P_GPI7_IN (0x0)
++#define S5P_GPI7_OUT (0x1)
++#define S5P_GPI7_NFMOD5 (0x2)
++#define S5P_GPI7_EXT_INT20_7 (0xF)
++
++/* GPJ0 */
++#define S5P_GPJ0_CON S5P_GPIO_REG(0x200)
++#define S5P_GPJ0_DAT S5P_GPIO_REG(0x204)
++#define S5P_GPJ0_PUD S5P_GPIO_REG(0x208)
++#define S5P_GPJ0_DRV S5P_GPIO_REG(0x20C)
++#define S5P_GPJ0_CONPDN S5P_GPIO_REG(0x210)
++#define S5P_GPJ0_PUDPDN S5P_GPIO_REG(0x214)
++
++#define S5P_GPJ0_0 S5P_GPIO_NO(S5P_GPIO_BANK_J0, 0)
++#define S5P_GPJ0_0_IN (0x0)
++#define S5P_GPJ0_0_OUT (0x1)
++#define S5P_GPJ0_0_MSM_ADDR0 (0x2)
++#define S5P_GPJ0_0_HSI_TX_DATA (0x3)
++#define S5P_GPJ0_0_CF_ADDR0 (0x4)
++#define S5P_GPJ0_0_LCD1_HSYNC (0x5)
++#define S5P_GPJ0_0_EXT_INT21_0 (0xF)
++
++#define S5P_GPJ0_1 S5P_GPIO_NO(S5P_GPIO_BANK_J0, 1)
++#define S5P_GPJ0_1_IN (0x0)
++#define S5P_GPJ0_1_OUT (0x1)
++#define S5P_GPJ0_1_MSM_ADDR1 (0x2)
++#define S5P_GPJ0_1_HSI_TX_FLAG (0x3)
++#define S5P_GPJ0_1_CF_ADDR1 (0x4)
++#define S5P_GPJ0_1_LCD1_VSYNC (0x5)
++#define S5P_GPJ0_1_EXT_INT21_1 (0xF)
++
++#define S5P_GPJ0_2 S5P_GPIO_NO(S5P_GPIO_BANK_J0, 2)
++#define S5P_GPJ0_2_IN (0x0)
++#define S5P_GPJ0_2_OUT (0x1)
++#define S5P_GPJ0_2_MSM_ADDR2 (0x2)
++#define S5P_GPJ0_2_HSI_TX_WAKE (0x3)
++#define S5P_GPJ0_2_CF_ADDR2 (0x4)
++#define S5P_GPJ0_2_LCD1_VDEN (0x5)
++#define S5P_GPJ0_2_EXT_INT21_2 (0xF)
++
++#define S5P_GPJ0_3 S5P_GPIO_NO(S5P_GPIO_BANK_J0, 3)
++#define S5P_GPJ0_3_IN (0x0)
++#define S5P_GPJ0_3_OUT (0x1)
++#define S5P_GPJ0_3_MSM_ADDR3 (0x2)
++#define S5P_GPJ0_3_HSI_TX_READY (0x3)
++#define S5P_GPJ0_3_CF_IORDY (0x4)
++#define S5P_GPJ0_3_LCD1_VCLK (0x5)
++#define S5P_GPJ0_3_EXT_INT21_3 (0xF)
++
++#define S5P_GPJ0_4 S5P_GPIO_NO(S5P_GPIO_BANK_J0, 4)
++#define S5P_GPJ0_4_IN (0x0)
++#define S5P_GPJ0_4_OUT (0x1)
++#define S5P_GPJ0_4_MSM_ADDR4 (0x2)
++#define S5P_GPJ0_4_HSI_RX_DATA (0x3)
++#define S5P_GPJ0_4_CF_INTRQ (0x4)
++#define S5P_GPJ0_4_LCD1_VD0 (0x5)
++#define S5P_GPJ0_4_EXT_INT21_4 (0xF)
++
++#define S5P_GPJ0_5 S5P_GPIO_NO(S5P_GPIO_BANK_J0, 5)
++#define S5P_GPJ0_5_IN (0x0)
++#define S5P_GPJ0_5_OUT (0x1)
++#define S5P_GPJ0_5_MSM_ADDR5 (0x2)
++#define S5P_GPJ0_5_HSI_RX_FLAG (0x3)
++#define S5P_GPJ0_5_CF_INPACKn (0x4)
++#define S5P_GPJ0_5_LCD1_VD1 (0x5)
++#define S5P_GPJ0_5_EXT_INT21_5 (0xF)
++
++#define S5P_GPJ0_6 S5P_GPIO_NO(S5P_GPIO_BANK_J0, 6)
++#define S5P_GPJ0_6_IN (0x0)
++#define S5P_GPJ0_6_OUT (0x1)
++#define S5P_GPJ0_6_MSM_ADDR6 (0x2)
++#define S5P_GPJ0_6_HSI_RX_WAKE (0x3)
++#define S5P_GPJ0_6_CF_RESET (0x4)
++#define S5P_GPJ0_6_LCD1_VD2 (0x5)
++#define S5P_GPJ0_6_EXT_INT21_6 (0xF)
++
++#define S5P_GPJ0_7 S5P_GPIO_NO(S5P_GPIO_BANK_J0, 7)
++#define S5P_GPJ0_7_IN (0x0)
++#define S5P_GPJ0_7_OUT (0x1)
++#define S5P_GPJ0_7_MSM_ADDR7 (0x2)
++#define S5P_GPJ0_7_HSI_RX_READY (0x3)
++#define S5P_GPJ0_7_CF_REG (0x4)
++#define S5P_GPJ0_7_LCD1_VD3 (0x5)
++#define S5P_GPJ0_7_EXT_INT21_7 (0xF)
++
++/* GPJ1 */
++#define S5P_GPJ1_CON S5P_GPIO_REG(0x220)
++#define S5P_GPJ1_DAT S5P_GPIO_REG(0x224)
++#define S5P_GPJ1_PUD S5P_GPIO_REG(0x228)
++#define S5P_GPJ1_DRV S5P_GPIO_REG(0x22C)
++#define S5P_GPJ1_CONPDN S5P_GPIO_REG(0x230)
++#define S5P_GPJ1_PUDPDN S5P_GPIO_REG(0x234)
++
++#define S5P_GPJ1_0 S5P_GPIO_NO(S5P_GPIO_BANK_J1, 0)
++#define S5P_GPJ1_0_IN (0x0)
++#define S5P_GPJ1_0_OUT (0x1)
++#define S5P_GPJ1_0_MSM_ADDR8 (0x2)
++#define S5P_GPJ1_0_LCD1_VD4 (0x5)
++#define S5P_GPJ1_0_EXT_INT22_0 (0xF)
++
++#define S5P_GPJ1_1 S5P_GPIO_NO(S5P_GPIO_BANK_J1, 1)
++#define S5P_GPJ1_1_IN (0x0)
++#define S5P_GPJ1_1_OUT (0x1)
++#define S5P_GPJ1_1_MSM_ADDR9 (0x2)
++#define S5P_GPJ1_1_LCD1_VD5 (0x5)
++#define S5P_GPJ1_1_EXT_INT22_1 (0xF)
++
++#define S5P_GPJ1_2 S5P_GPIO_NO(S5P_GPIO_BANK_J1, 2)
++#define S5P_GPJ1_2_IN (0x0)
++#define S5P_GPJ1_2_OUT (0x1)
++#define S5P_GPJ1_2_MSM_ADDR10 (0x2)
++#define S5P_GPJ1_2_LCD1_VD6 (0x5)
++#define S5P_GPJ1_2_EXT_INT22_2 (0xF)
++
++#define S5P_GPJ1_3 S5P_GPIO_NO(S5P_GPIO_BANK_J1, 3)
++#define S5P_GPJ1_3_IN (0x0)
++#define S5P_GPJ1_3_OUT (0x1)
++#define S5P_GPJ1_3_MSM_ADDR11 (0x2)
++#define S5P_GPJ1_3_LCD1_VD7 (0x5)
++#define S5P_GPJ1_3_EXT_INT22_3 (0xF)
++
++#define S5P_GPJ1_4 S5P_GPIO_NO(S5P_GPIO_BANK_J1, 4)
++#define S5P_GPJ1_4_IN (0x0)
++#define S5P_GPJ1_4_OUT (0x1)
++#define S5P_GPJ1_4_MSM_ADDR12 (0x2)
++#define S5P_GPJ1_4_LCD1_VD8 (0x5)
++#define S5P_GPJ1_4_EXT_INT22_4 (0xF)
++
++/* GPJ2 */
++#define S5P_GPJ2_CON S5P_GPIO_REG(0x240)
++#define S5P_GPJ2_DAT S5P_GPIO_REG(0x244)
++#define S5P_GPJ2_PUD S5P_GPIO_REG(0x248)
++#define S5P_GPJ2_DRV S5P_GPIO_REG(0x24C)
++#define S5P_GPJ2_CONPDN S5P_GPIO_REG(0x250)
++#define S5P_GPJ2_PUDPDN S5P_GPIO_REG(0x254)
++
++#define S5P_GPJ2_0 S5P_GPIO_NO(S5P_GPIO_BANK_J2, 0)
++#define S5P_GPJ2_0_IN (0x0)
++#define S5P_GPJ2_0_OUT (0x1)
++#define S5P_GPJ2_0_MSM_DATA0 (0x2)
++#define S5P_GPJ2_0_CF_DATA0 (0x4)
++#define S5P_GPJ2_0_LCD1_VD9 (0x5)
++#define S5P_GPJ2_0_EXT_INT23_0 (0xF)
++
++#define S5P_GPJ2_1 S5P_GPIO_NO(S5P_GPIO_BANK_J2, 1)
++#define S5P_GPJ2_1_IN (0x0)
++#define S5P_GPJ2_1_OUT (0x1)
++#define S5P_GPJ2_1_MSM_DATA1 (0x2)
++#define S5P_GPJ2_1_CF_DATA1 (0x4)
++#define S5P_GPJ2_1_LCD1_VD10 (0x5)
++#define S5P_GPJ2_1_EXT_INT23_1 (0xF)
++
++#define S5P_GPJ2_2 S5P_GPIO_NO(S5P_GPIO_BANK_J2, 2)
++#define S5P_GPJ2_2_IN (0x0)
++#define S5P_GPJ2_2_OUT (0x1)
++#define S5P_GPJ2_2_MSM_DATA2 (0x2)
++#define S5P_GPJ2_2_CF_DATA2 (0x4)
++#define S5P_GPJ2_2_LCD1_VD11 (0x5)
++#define S5P_GPJ2_2_EXT_INT23_2 (0xF)
++
++#define S5P_GPJ2_3 S5P_GPIO_NO(S5P_GPIO_BANK_J2, 3)
++#define S5P_GPJ2_3_IN (0x0)
++#define S5P_GPJ2_3_OUT (0x1)
++#define S5P_GPJ2_3_MSM_DATA3 (0x2)
++#define S5P_GPJ2_3_CF_DATA3 (0x4)
++#define S5P_GPJ2_3_LCD1_VD12 (0x5)
++#define S5P_GPJ2_3_EXT_INT23_3 (0xF)
++
++#define S5P_GPJ2_4 S5P_GPIO_NO(S5P_GPIO_BANK_J2, 4)
++#define S5P_GPJ2_4_IN (0x0)
++#define S5P_GPJ2_4_OUT (0x1)
++#define S5P_GPJ2_4_MSM_DATA4 (0x2)
++#define S5P_GPJ2_4_CF_DATA4 (0x4)
++#define S5P_GPJ2_4_LCD1_VD13 (0x5)
++#define S5P_GPJ2_4_EXT_INT23_4 (0xF)
++
++#define S5P_GPJ2_5 S5P_GPIO_NO(S5P_GPIO_BANK_J2, 5)
++#define S5P_GPJ2_5_IN (0x0)
++#define S5P_GPJ2_5_OUT (0x1)
++#define S5P_GPJ2_5_MSM_DATA5 (0x2)
++#define S5P_GPJ2_5_CF_DATA5 (0x4)
++#define S5P_GPJ2_5_LCD1_VD14 (0x5)
++#define S5P_GPJ2_5_EXT_INT23_5 (0xF)
++
++#define S5P_GPJ2_6 S5P_GPIO_NO(S5P_GPIO_BANK_J2, 6)
++#define S5P_GPJ2_6_IN (0x0)
++#define S5P_GPJ2_6_OUT (0x1)
++#define S5P_GPJ2_6_MSM_DATA6 (0x2)
++#define S5P_GPJ2_6_CF_DATA6 (0x4)
++#define S5P_GPJ2_6_LCD1_VD15 (0x5)
++#define S5P_GPJ2_6_EXT_INT23_6 (0xF)
++
++#define S5P_GPJ2_7 S5P_GPIO_NO(S5P_GPIO_BANK_J2, 7)
++#define S5P_GPJ2_7_IN (0x0)
++#define S5P_GPJ2_7_OUT (0x1)
++#define S5P_GPJ2_7_MSM_DATA7 (0x2)
++#define S5P_GPJ2_7_CF_DATA7 (0x4)
++#define S5P_GPJ2_7_LCD1_VD16 (0x5)
++#define S5P_GPJ2_7_EXT_INT23_7 (0xF)
++
++/* GPJ3 */
++#define S5P_GPJ3_CON S5P_GPIO_REG(0x260)
++#define S5P_GPJ3_DAT S5P_GPIO_REG(0x264)
++#define S5P_GPJ3_PUD S5P_GPIO_REG(0x268)
++#define S5P_GPJ3_DRV S5P_GPIO_REG(0x26C)
++#define S5P_GPJ3_CONPDN S5P_GPIO_REG(0x270)
++#define S5P_GPJ3_PUDPDN S5P_GPIO_REG(0x274)
++
++#define S5P_GPJ3_0 S5P_GPIO_NO(S5P_GPIO_BANK_J3, 0)
++#define S5P_GPJ3_0_IN (0x0)
++#define S5P_GPJ3_0_OUT (0x1)
++#define S5P_GPJ3_0_MSM_DATA8 (0x2)
++#define S5P_GPJ3_0_CF_DATA8 (0x4)
++#define S5P_GPJ3_0_LCD1_VD17 (0x5)
++#define S5P_GPJ3_0_EXT_INT24_0 (0xF)
++
++#define S5P_GPJ3_1 S5P_GPIO_NO(S5P_GPIO_BANK_J3, 1)
++#define S5P_GPJ3_1_IN (0x0)
++#define S5P_GPJ3_1_OUT (0x1)
++#define S5P_GPJ3_1_MSM_DATA9 (0x2)
++#define S5P_GPJ3_1_CF_DATA9 (0x4)
++#define S5P_GPJ3_1_LCD1_VD18 (0x5)
++#define S5P_GPJ3_1_EXT_INT24_1 (0xF)
++
++#define S5P_GPJ3_2 S5P_GPIO_NO(S5P_GPIO_BANK_J3, 2)
++#define S5P_GPJ3_2_IN (0x0)
++#define S5P_GPJ3_2_OUT (0x1)
++#define S5P_GPJ3_2_MSM_DATA10 (0x2)
++#define S5P_GPJ3_2_CF_DATA10 (0x4)
++#define S5P_GPJ3_2_LCD1_VD19 (0x5)
++#define S5P_GPJ3_2_EXT_INT24_2 (0xF)
++
++#define S5P_GPJ3_3 S5P_GPIO_NO(S5P_GPIO_BANK_J3, 3)
++#define S5P_GPJ3_3_IN (0x0)
++#define S5P_GPJ3_3_OUT (0x1)
++#define S5P_GPJ3_3_MSM_DATA11 (0x2)
++#define S5P_GPJ3_3_CF_DATA11 (0x4)
++#define S5P_GPJ3_3_LCD1_VD20 (0x5)
++#define S5P_GPJ3_3_EXT_INT24_3 (0xF)
++
++#define S5P_GPJ3_4 S5P_GPIO_NO(S5P_GPIO_BANK_J3, 4)
++#define S5P_GPJ3_4_IN (0x0)
++#define S5P_GPJ3_4_OUT (0x1)
++#define S5P_GPJ3_4_MSM_DATA12 (0x2)
++#define S5P_GPJ3_4_CF_DATA12 (0x4)
++#define S5P_GPJ3_4_LCD1_VD21 (0x5)
++#define S5P_GPJ3_4_EXT_INT24_4 (0xF)
++
++#define S5P_GPJ3_5 S5P_GPIO_NO(S5P_GPIO_BANK_J3, 5)
++#define S5P_GPJ3_5_IN (0x0)
++#define S5P_GPJ3_5_OUT (0x1)
++#define S5P_GPJ3_5_MSM_DATA13 (0x2)
++#define S5P_GPJ3_5_CF_DATA13 (0x4)
++#define S5P_GPJ3_5_LCD1_VD22 (0x5)
++#define S5P_GPJ3_5_EXT_INT24_5 (0xF)
++
++#define S5P_GPJ3_6 S5P_GPIO_NO(S5P_GPIO_BANK_J3, 6)
++#define S5P_GPJ3_6_IN (0x0)
++#define S5P_GPJ3_6_OUT (0x1)
++#define S5P_GPJ3_6_MSM_DATA14 (0x2)
++#define S5P_GPJ3_6_CF_DATA14 (0x4)
++#define S5P_GPJ3_6_LCD1_VD23 (0x5)
++#define S5P_GPJ3_6_EXT_INT24_6 (0xF)
++
++#define S5P_GPJ3_7 S5P_GPIO_NO(S5P_GPIO_BANK_J3, 7)
++#define S5P_GPJ3_7_IN (0x0)
++#define S5P_GPJ3_7_OUT (0x1)
++#define S5P_GPJ3_7_MSM_DATA15 (0x2)
++#define S5P_GPJ3_7_CF_DATA15 (0x4)
++#define S5P_GPJ3_7_EXT_INT24_7 (0xF)
++
++/* GPJ4 */
++#define S5P_GPJ4_CON S5P_GPIO_REG(0x280)
++#define S5P_GPJ4_DAT S5P_GPIO_REG(0x284)
++#define S5P_GPJ4_PUD S5P_GPIO_REG(0x288)
++#define S5P_GPJ4_DRV S5P_GPIO_REG(0x28C)
++#define S5P_GPJ4_CONPDN S5P_GPIO_REG(0x290)
++#define S5P_GPJ4_PUDPDN S5P_GPIO_REG(0x294)
++
++#define S5P_GPJ4_0 S5P_GPIO_NO(S5P_GPIO_BANK_J4, 0)
++#define S5P_GPJ4_0_IN (0x0)
++#define S5P_GPJ4_0_OUT (0x1)
++#define S5P_GPJ4_0_MSM_CSn (0x2)
++#define S5P_GPJ4_0_CF_CSn0 (0x4)
++#define S5P_GPJ4_0_EXT_INT25_0 (0xF)
++
++#define S5P_GPJ4_1 S5P_GPIO_NO(S5P_GPIO_BANK_J4, 1)
++#define S5P_GPJ4_1_IN (0x0)
++#define S5P_GPJ4_1_OUT (0x1)
++#define S5P_GPJ4_1_MSM_WEn (0x2)
++#define S5P_GPJ4_1_CF_CSn1 (0x4)
++#define S5P_GPJ4_1_EXT_INT25_1 (0xF)
++
++#define S5P_GPJ4_2 S5P_GPIO_NO(S5P_GPIO_BANK_J4, 2)
++#define S5P_GPJ4_2_IN (0x0)
++#define S5P_GPJ4_2_OUT (0x1)
++#define S5P_GPJ4_2_MSM_Rn (0x2)
++#define S5P_GPJ4_2_CF_IORD_CFn (0x4)
++#define S5P_GPJ4_2_EXT_INT25_2 (0xF)
++
++#define S5P_GPJ4_3 S5P_GPIO_NO(S5P_GPIO_BANK_J4, 3)
++#define S5P_GPJ4_3_IN (0x0)
++#define S5P_GPJ4_3_OUT (0x1)
++#define S5P_GPJ4_3_MSM_IRQn (0x2)
++#define S5P_GPJ4_3_CF_IOWR_CFn (0x4)
++#define S5P_GPJ4_3_EXT_INT25_3 (0xF)
++
++/* GPK0 */
++#define S5P_GPK0_CON S5P_GPIO_REG(0x2A0)
++#define S5P_GPK0_DAT S5P_GPIO_REG(0x2A4)
++#define S5P_GPK0_PUD S5P_GPIO_REG(0x2A8)
++#define S5P_GPK0_DRV S5P_GPIO_REG(0x2AC)
++#define S5P_GPK0_CONPDN S5P_GPIO_REG(0x2B0)
++#define S5P_GPK0_PUDPDN S5P_GPIO_REG(0x2B4)
++
++#define S5P_GPK0_0 S5P_GPIO_NO(S5P_GPIO_BANK_K0, 0)
++#define S5P_GPK0_0_IN (0x0)
++#define S5P_GPK0_0_OUT (0x1)
++#define S5P_GPK0_0_SROM_CSn0 (0x2)
++
++#define S5P_GPK0_1 S5P_GPIO_NO(S5P_GPIO_BANK_K0, 1)
++#define S5P_GPK0_1_IN (0x0)
++#define S5P_GPK0_1_OUT (0x1)
++#define S5P_GPK0_1_SROM_CSn1 (0x2)
++
++#define S5P_GPK0_2 S5P_GPIO_NO(S5P_GPIO_BANK_K0, 2)
++#define S5P_GPK0_2_IN (0x0)
++#define S5P_GPK0_2_OUT (0x1)
++#define S5P_GPK0_2_SROM_CSn2 (0x2)
++#define S5P_GPK0_2_NF_CSn0 (0x3)
++#define S5P_GPK0_2_ONENAND_CSn0 (0x5)
++
++#define S5P_GPK0_3 S5P_GPIO_NO(S5P_GPIO_BANK_K0, 3)
++#define S5P_GPK0_3_IN (0x0)
++#define S5P_GPK0_3_OUT (0x1)
++#define S5P_GPK0_3_SROM_CSn3 (0x2)
++#define S5P_GPK0_3_NF_CSn1 (0x3)
++#define S5P_GPK0_3_ONENAND_CSn1 (0x5)
++
++#define S5P_GPK0_4 S5P_GPIO_NO(S5P_GPIO_BANK_K0, 4)
++#define S5P_GPK0_4_IN (0x0)
++#define S5P_GPK0_4_OUT (0x1)
++#define S5P_GPK0_4_SROM_CSn4 (0x2)
++#define S5P_GPK0_4_NF_CSn2 (0x3)
++#define S5P_GPK0_4_CF_CSn0 (0x4)
++
++#define S5P_GPK0_5 S5P_GPIO_NO(S5P_GPIO_BANK_K0, 5)
++#define S5P_GPK0_5_IN (0x0)
++#define S5P_GPK0_5_OUT (0x1)
++#define S5P_GPK0_5_SROM_CSn5 (0x2)
++#define S5P_GPK0_5_NF_CSn3 (0x3)
++#define S5P_GPK0_5_CF_CSn1 (0x4)
++
++#define S5P_GPK0_6 S5P_GPIO_NO(S5P_GPIO_BANK_K0, 6)
++#define S5P_GPK0_6_IN (0x0)
++#define S5P_GPK0_6_OUT (0x1)
++#define S5P_GPK0_6_EBI_OEn (0x2)
++
++#define S5P_GPK0_7 S5P_GPIO_NO(S5P_GPIO_BANK_K0, 7)
++#define S5P_GPK0_7_IN (0x0)
++#define S5P_GPK0_7_OUT (0x1)
++#define S5P_GPK0_7_EBI_WEn (0x2)
++
++/* GPK1 */
++#define S5P_GPK1_CON S5P_GPIO_REG(0x2C0)
++#define S5P_GPK1_DAT S5P_GPIO_REG(0x2C4)
++#define S5P_GPK1_PUD S5P_GPIO_REG(0x2C8)
++#define S5P_GPK1_DRV S5P_GPIO_REG(0x2CC)
++#define S5P_GPK1_CONPDN S5P_GPIO_REG(0x2D0)
++#define S5P_GPK1_PUDPDN S5P_GPIO_REG(0x2D4)
++
++#define S5P_GPK1_0 S5P_GPIO_NO(S5P_GPIO_BANK_K1, 0)
++#define S5P_GPK1_0_IN (0x0)
++#define S5P_GPK1_0_OUT (0x1)
++#define S5P_GPK1_0_EBI_BEn0 (0x2)
++
++#define S5P_GPK1_1 S5P_GPIO_NO(S5P_GPIO_BANK_K1, 1)
++#define S5P_GPK1_1_IN (0x0)
++#define S5P_GPK1_1_OUT (0x1)
++#define S5P_GPK1_1_EBI_BEn1 (0x2)
++
++#define S5P_GPK1_2 S5P_GPIO_NO(S5P_GPIO_BANK_K1, 2)
++#define S5P_GPK1_2_IN (0x0)
++#define S5P_GPK1_2_OUT (0x1)
++#define S5P_GPK1_2_SROM_WAITn (0x2)
++
++#define S5P_GPK1_3 S5P_GPIO_NO(S5P_GPIO_BANK_K1, 3)
++#define S5P_GPK1_3_IN (0x0)
++#define S5P_GPK1_3_OUT (0x1)
++#define S5P_GPK1_3_EBI_DATA_RDn (0x2)
++
++#define S5P_GPK1_4 S5P_GPIO_NO(S5P_GPIO_BANK_K1, 4)
++#define S5P_GPK1_4_IN (0x0)
++#define S5P_GPK1_4_OUT (0x1)
++#define S5P_GPK1_4_CF_OEn (0x2)
++
++#define S5P_GPK1_5 S5P_GPIO_NO(S5P_GPIO_BANK_K1, 5)
++#define S5P_GPK1_5_IN (0x0)
++#define S5P_GPK1_5_OUT (0x1)
++#define S5P_GPK1_5_CF_WEn (0x2)
++
++/* GPK2 */
++#define S5P_GPK2_CON S5P_GPIO_REG(0x2E0)
++#define S5P_GPK2_DAT S5P_GPIO_REG(0x2E4)
++#define S5P_GPK2_PUD S5P_GPIO_REG(0x2E8)
++#define S5P_GPK2_DRV S5P_GPIO_REG(0x2EC)
++#define S5P_GPK2_CONPDN S5P_GPIO_REG(0x2F0)
++#define S5P_GPK2_PUDPDN S5P_GPIO_REG(0x2F4)
++
++#define S5P_GPK2_0 S5P_GPIO_NO(S5P_GPIO_BANK_K2, 0)
++#define S5P_GPK2_0_IN (0x0)
++#define S5P_GPK2_0_OUT (0x1)
++#define S5P_GPK2_0_NF_CLE (0x3)
++#define S5P_GPK2_0_ONENAND_ADDRVALID (0x5)
++
++#define S5P_GPK2_1 S5P_GPIO_NO(S5P_GPIO_BANK_K2, 1)
++#define S5P_GPK2_1_IN (0x0)
++#define S5P_GPK2_1_OUT (0x1)
++#define S5P_GPK2_1_NF_ALE (0x3)
++#define S5P_GPK2_1_ONENAND_SMCLK (0x5)
++
++#define S5P_GPK2_2 S5P_GPIO_NO(S5P_GPIO_BANK_K2, 2)
++#define S5P_GPK2_2_IN (0x0)
++#define S5P_GPK2_2_OUT (0x1)
++#define S5P_GPK2_2_NF_FWEn (0x3)
++#define S5P_GPK2_2_ONENAND_RPn (0x5)
++
++#define S5P_GPK2_3 S5P_GPIO_NO(S5P_GPIO_BANK_K2, 3)
++#define S5P_GPK2_3_IN (0x0)
++#define S5P_GPK2_3_OUT (0x1)
++#define S5P_GPK2_3_NF_FREn (0x3)
++
++#define S5P_GPK2_4 S5P_GPIO_NO(S5P_GPIO_BANK_K2, 4)
++#define S5P_GPK2_4_IN (0x0)
++#define S5P_GPK2_4_OUT (0x1)
++#define S5P_GPK2_4_NF_RnB0 (0x2)
++#define S5P_GPK2_4_ONENAND_INT0 (0x5)
++
++#define S5P_GPK2_5 S5P_GPIO_NO(S5P_GPIO_BANK_K2, 5)
++#define S5P_GPK2_5_IN (0x0)
++#define S5P_GPK2_5_OUT (0x1)
++#define S5P_GPK2_5_NF_RnB1 (0x2)
++#define S5P_GPK2_5_ONENAND_INT1 (0x5)
++
++#define S5P_GPK2_6 S5P_GPIO_NO(S5P_GPIO_BANK_K2, 6)
++#define S5P_GPK2_6_IN (0x0)
++#define S5P_GPK2_6_OUT (0x1)
++#define S5P_GPK2_6_NF_RnB2 (0x2)
++
++#define S5P_GPK2_7 S5P_GPIO_NO(S5P_GPIO_BANK_K2, 7)
++#define S5P_GPK2_7_IN (0x0)
++#define S5P_GPK2_7_OUT (0x1)
++#define S5P_GPK2_7_NF_RnB3 (0x2)
++
++/* GPK3 */
++#define S5P_GPK3_CON S5P_GPIO_REG(0x300)
++#define S5P_GPK3_DAT S5P_GPIO_REG(0x304)
++#define S5P_GPK3_PUD S5P_GPIO_REG(0x308)
++#define S5P_GPK3_DRV S5P_GPIO_REG(0x30C)
++#define S5P_GPK3_CONPDN S5P_GPIO_REG(0x310)
++#define S5P_GPK3_PUDPDN S5P_GPIO_REG(0x314)
++
++#define S5P_GPK3_0 S5P_GPIO_NO(S5P_GPIO_BANK_K3, 0)
++#define S5P_GPK3_0_IN (0x0)
++#define S5P_GPK3_0_OUT (0x1)
++#define S5P_GPK3_0_CF_IORDY (0x2)
++
++#define S5P_GPK3_1 S5P_GPIO_NO(S5P_GPIO_BANK_K3, 1)
++#define S5P_GPK3_1_IN (0x0)
++#define S5P_GPK3_1_OUT (0x1)
++#define S5P_GPK3_1_CF_INTRQ (0x2)
++
++#define S5P_GPK3_2 S5P_GPIO_NO(S5P_GPIO_BANK_K3, 2)
++#define S5P_GPK3_2_IN (0x0)
++#define S5P_GPK3_2_OUT (0x1)
++#define S5P_GPK3_2_CF_RESET (0x2)
++
++#define S5P_GPK3_3 S5P_GPIO_NO(S5P_GPIO_BANK_K3, 3)
++#define S5P_GPK3_3_IN (0x0)
++#define S5P_GPK3_3_OUT (0x1)
++#define S5P_GPK3_3_CF_INPACKn (0x2)
++
++#define S5P_GPK3_4 S5P_GPIO_NO(S5P_GPIO_BANK_K3, 4)
++#define S5P_GPK3_4_IN (0x0)
++#define S5P_GPK3_4_OUT (0x1)
++#define S5P_GPK3_4_CF_REG (0x2)
++
++#define S5P_GPK3_5 S5P_GPIO_NO(S5P_GPIO_BANK_K3, 5)
++#define S5P_GPK3_5_IN (0x0)
++#define S5P_GPK3_5_OUT (0x1)
++#define S5P_GPK3_5_CF_CDn (0x2)
++
++#define S5P_GPK3_6 S5P_GPIO_NO(S5P_GPIO_BANK_K3, 6)
++#define S5P_GPK3_6_IN (0x0)
++#define S5P_GPK3_6_OUT (0x1)
++#define S5P_GPK3_6_CF_IORD_CFn (0x2)
++
++#define S5P_GPK3_7 S5P_GPIO_NO(S5P_GPIO_BANK_K3, 7)
++#define S5P_GPK3_7_IN (0x0)
++#define S5P_GPK3_7_OUT (0x1)
++#define S5P_GPK3_7_CF_IOWR_CFn (0x2)
++
++/* MP0_0 */
++#define S5P_MP0_0CON S5P_GPIO_REG(0x320)
++#define S5P_MP0_0DAT S5P_GPIO_REG(0x324)
++#define S5P_MP0_0PUD S5P_GPIO_REG(0x328)
++#define S5P_MP0_0DRV S5P_GPIO_REG(0x32C)
++#define S5P_MP0_0CONPDN S5P_GPIO_REG(0x330)
++#define S5P_MP0_0PUDPDN S5P_GPIO_REG(0x334)
++
++#define S5P_MP0_00 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_0, 0)
++#define S5P_MP0_00_IN (0x0)
++#define S5P_MP0_00_OUT (0x1)
++#define S5P_MP0_00_EBI_ADDR0 (0x2)
++
++#define S5P_MP0_01 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_0, 1)
++#define S5P_MP0_01_IN (0x0)
++#define S5P_MP0_01_OUT (0x1)
++#define S5P_MP0_01_EBI_ADDR1 (0x2)
++
++#define S5P_MP0_02 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_0, 2)
++#define S5P_MP0_02_IN (0x0)
++#define S5P_MP0_02_OUT (0x1)
++#define S5P_MP0_02_EBI_ADDR2 (0x2)
++
++#define S5P_MP0_03 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_0, 3)
++#define S5P_MP0_03_IN (0x0)
++#define S5P_MP0_03_OUT (0x1)
++#define S5P_MP0_03_EBI_ADDR3 (0x2)
++
++#define S5P_MP0_04 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_0, 4)
++#define S5P_MP0_04_IN (0x0)
++#define S5P_MP0_04_OUT (0x1)
++#define S5P_MP0_04_EBI_ADDR4 (0x2)
++
++#define S5P_MP0_05 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_0, 5)
++#define S5P_MP0_05_IN (0x0)
++#define S5P_MP0_05_OUT (0x1)
++#define S5P_MP0_05_EBI_ADDR5 (0x2)
++
++#define S5P_MP0_06 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_0, 6)
++#define S5P_MP0_06_IN (0x0)
++#define S5P_MP0_06_OUT (0x1)
++#define S5P_MP0_06_EBI_ADDR6 (0x2)
++
++#define S5P_MP0_07 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_0, 7)
++#define S5P_MP0_07_IN (0x0)
++#define S5P_MP0_07_OUT (0x1)
++#define S5P_MP0_07_EBI_ADDR7 (0x2)
++
++/* MP0_1 */
++#define S5P_MP0_1CON S5P_GPIO_REG(0x340)
++#define S5P_MP0_1DAT S5P_GPIO_REG(0x344)
++#define S5P_MP0_1PUD S5P_GPIO_REG(0x348)
++#define S5P_MP0_1DRV S5P_GPIO_REG(0x34C)
++#define S5P_MP0_1CONPDN S5P_GPIO_REG(0x350)
++#define S5P_MP0_1PUDPDN S5P_GPIO_REG(0x354)
++
++#define S5P_MP0_10 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_1, 0)
++#define S5P_MP0_10_IN (0x0)
++#define S5P_MP0_10_OUT (0x1)
++#define S5P_MP0_10_EBI_ADDR8 (0x2)
++
++#define S5P_MP0_11 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_1, 1)
++#define S5P_MP0_11_IN (0x0)
++#define S5P_MP0_11_OUT (0x1)
++#define S5P_MP0_11_EBI_ADDR9 (0x2)
++
++#define S5P_MP0_12 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_1, 2)
++#define S5P_MP0_12_IN (0x0)
++#define S5P_MP0_12_OUT (0x1)
++#define S5P_MP0_12_EBI_ADDR10 (0x2)
++
++#define S5P_MP0_13 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_1, 3)
++#define S5P_MP0_13_IN (0x0)
++#define S5P_MP0_13_OUT (0x1)
++#define S5P_MP0_13_EBI_ADDR11 (0x2)
++
++#define S5P_MP0_14 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_1, 4)
++#define S5P_MP0_14_IN (0x0)
++#define S5P_MP0_14_OUT (0x1)
++#define S5P_MP0_14_EBI_ADDR12 (0x2)
++
++#define S5P_MP0_15 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_1, 5)
++#define S5P_MP0_15_IN (0x0)
++#define S5P_MP0_15_OUT (0x1)
++#define S5P_MP0_15_EBI_ADDR13 (0x2)
++
++#define S5P_MP0_16 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_1, 6)
++#define S5P_MP0_16_IN (0x0)
++#define S5P_MP0_16_OUT (0x1)
++#define S5P_MP0_16_EBI_ADDR14 (0x2)
++
++#define S5P_MP0_17 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_1, 7)
++#define S5P_MP0_17_IN (0x0)
++#define S5P_MP0_17_OUT (0x1)
++#define S5P_MP0_17_EBI_ADDR15 (0x2)
++
++/* MP0_2 */
++#define S5P_MP0_2CON S5P_GPIO_REG(0x360)
++#define S5P_MP0_2DAT S5P_GPIO_REG(0x364)
++#define S5P_MP0_2PUD S5P_GPIO_REG(0x368)
++#define S5P_MP0_2DRV S5P_GPIO_REG(0x36C)
++#define S5P_MP0_2CONPDN S5P_GPIO_REG(0x370)
++#define S5P_MP0_2PUDPDN S5P_GPIO_REG(0x374)
++
++#define S5P_MP0_20 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_2, 0)
++#define S5P_MP0_20_IN (0x0)
++#define S5P_MP0_20_OUT (0x1)
++#define S5P_MP0_20_EBI_ADDR16 (0x2)
++
++#define S5P_MP0_21 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_2, 1)
++#define S5P_MP0_21_IN (0x0)
++#define S5P_MP0_21_OUT (0x1)
++#define S5P_MP0_21_EBI_ADDR17 (0x2)
++
++#define S5P_MP0_22 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_2, 2)
++#define S5P_MP0_22_IN (0x0)
++#define S5P_MP0_22_OUT (0x1)
++#define S5P_MP0_22_EBI_ADDR18 (0x2)
++
++#define S5P_MP0_23 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_2, 3)
++#define S5P_MP0_23_IN (0x0)
++#define S5P_MP0_23_OUT (0x1)
++#define S5P_MP0_23_EBI_ADDR19 (0x2)
++
++#define S5P_MP0_24 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_2, 4)
++#define S5P_MP0_24_IN (0x0)
++#define S5P_MP0_24_OUT (0x1)
++#define S5P_MP0_24_EBI_ADDR20 (0x2)
++
++#define S5P_MP0_25 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_2, 5)
++#define S5P_MP0_25_IN (0x0)
++#define S5P_MP0_25_OUT (0x1)
++#define S5P_MP0_25_EBI_DATA0 (0x2)
++
++#define S5P_MP0_26 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_2, 6)
++#define S5P_MP0_26_IN (0x0)
++#define S5P_MP0_26_OUT (0x1)
++#define S5P_MP0_26_EBI_DATA1 (0x2)
++
++#define S5P_MP0_27 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_2, 7)
++#define S5P_MP0_27_IN (0x0)
++#define S5P_MP0_27_OUT (0x1)
++#define S5P_MP0_27_EBI_DATA2 (0x2)
++
++/* MP0_3 */
++#define S5P_MP0_3CON S5P_GPIO_REG(0x380)
++#define S5P_MP0_3DAT S5P_GPIO_REG(0x384)
++#define S5P_MP0_3PUD S5P_GPIO_REG(0x388)
++#define S5P_MP0_3DRV S5P_GPIO_REG(0x38C)
++#define S5P_MP0_3CONPDN S5P_GPIO_REG(0x390)
++#define S5P_MP0_3PUDPDN S5P_GPIO_REG(0x394)
++
++#define S5P_MP0_30 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_3, 0)
++#define S5P_MP0_30_IN (0x0)
++#define S5P_MP0_30_OUT (0x1)
++#define S5P_MP0_30_EBI_DATA3 (0x2)
++
++#define S5P_MP0_31 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_3, 1)
++#define S5P_MP0_31_IN (0x0)
++#define S5P_MP0_31_OUT (0x1)
++#define S5P_MP0_31_EBI_DATA4 (0x2)
++
++#define S5P_MP0_32 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_3, 2)
++#define S5P_MP0_32_IN (0x0)
++#define S5P_MP0_32_OUT (0x1)
++#define S5P_MP0_32_EBI_DATA5 (0x2)
++
++#define S5P_MP0_33 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_3, 3)
++#define S5P_MP0_33_IN (0x0)
++#define S5P_MP0_33_OUT (0x1)
++#define S5P_MP0_33_EBI_DATA6 (0x2)
++
++#define S5P_MP0_34 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_3, 4)
++#define S5P_MP0_34_IN (0x0)
++#define S5P_MP0_34_OUT (0x1)
++#define S5P_MP0_34_EBI_DATA7 (0x2)
++
++#define S5P_MP0_35 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_3, 5)
++#define S5P_MP0_35_IN (0x0)
++#define S5P_MP0_35_OUT (0x1)
++#define S5P_MP0_35_EBI_DATA8 (0x2)
++
++#define S5P_MP0_36 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_3, 6)
++#define S5P_MP0_36_IN (0x0)
++#define S5P_MP0_36_OUT (0x1)
++#define S5P_MP0_36_EBI_DATA9 (0x2)
++
++#define S5P_MP0_37 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_3, 7)
++#define S5P_MP0_37_IN (0x0)
++#define S5P_MP0_37_OUT (0x1)
++#define S5P_MP0_37_EBI_DATA10 (0x2)
++
++/* MP0_4 */
++#define S5P_MP0_4CON S5P_GPIO_REG(0x3A0)
++#define S5P_MP0_4DAT S5P_GPIO_REG(0x3A4)
++#define S5P_MP0_4PUD S5P_GPIO_REG(0x3A8)
++#define S5P_MP0_4DRV S5P_GPIO_REG(0x3AC)
++#define S5P_MP0_4CONPDN S5P_GPIO_REG(0x3B0)
++#define S5P_MP0_4PUDPDN S5P_GPIO_REG(0x3B4)
++
++#define S5P_MP0_40 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_4, 0)
++#define S5P_MP0_40_IN (0x0)
++#define S5P_MP0_40_OUT (0x1)
++#define S5P_MP0_40_EBI_DATA11 (0x2)
++
++#define S5P_MP0_41 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_4, 1)
++#define S5P_MP0_41_IN (0x0)
++#define S5P_MP0_41_OUT (0x1)
++#define S5P_MP0_41_EBI_DATA12 (0x2)
++
++#define S5P_MP0_42 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_4, 2)
++#define S5P_MP0_42_IN (0x0)
++#define S5P_MP0_42_OUT (0x1)
++#define S5P_MP0_42_EBI_DATA13 (0x2)
++
++#define S5P_MP0_43 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_4, 3)
++#define S5P_MP0_43_IN (0x0)
++#define S5P_MP0_43_OUT (0x1)
++#define S5P_MP0_43_EBI_DATA14 (0x2)
++
++#define S5P_MP0_44 S5P_GPIO_NO(S5P_GPIO_BANK_MP0_4, 4)
++#define S5P_MP0_44_IN (0x0)
++#define S5P_MP0_44_OUT (0x1)
++#define S5P_MP0_44_EBI_DATA15 (0x2)
++
++/* MP1_0 */
++#define S5P_MP1_0PUD S5P_GPIO_REG(0x3C8)
++#define S5P_MP1_0DRV S5P_GPIO_REG(0x3CC)
++#define S5P_MP1_0CONPDN S5P_GPIO_REG(0x3D0)
++#define S5P_MP1_0PUDPDN S5P_GPIO_REG(0x3D4)
++
++/* MP1_1 */
++#define S5P_MP1_1PUD S5P_GPIO_REG(0x3E8)
++#define S5P_MP1_1DRV S5P_GPIO_REG(0x3EC)
++#define S5P_MP1_1CONPDN S5P_GPIO_REG(0x3F0)
++#define S5P_MP1_1PUDPDN S5P_GPIO_REG(0x3F4)
++
++/* MP1_2 */
++#define S5P_MP1_2PUD S5P_GPIO_REG(0x408)
++#define S5P_MP1_2DRV S5P_GPIO_REG(0x40C)
++#define S5P_MP1_2CONPDN S5P_GPIO_REG(0x410)
++#define S5P_MP1_2PUDPDN S5P_GPIO_REG(0x414)
++
++/* MP1_3 */
++#define S5P_MP1_3PUD S5P_GPIO_REG(0x428)
++#define S5P_MP1_3DRV S5P_GPIO_REG(0x42C)
++#define S5P_MP1_3CONPDN S5P_GPIO_REG(0x430)
++#define S5P_MP1_3PUDPDN S5P_GPIO_REG(0x434)
++
++/* MP1_4 */
++#define S5P_MP1_4PUD S5P_GPIO_REG(0x448)
++#define S5P_MP1_4DRV S5P_GPIO_REG(0x44C)
++#define S5P_MP1_4CONPDN S5P_GPIO_REG(0x450)
++#define S5P_MP1_4PUDPDN S5P_GPIO_REG(0x454)
++
++/* MP1_5 */
++#define S5P_MP1_5PUD S5P_GPIO_REG(0x468)
++#define S5P_MP1_5DRV S5P_GPIO_REG(0x46C)
++#define S5P_MP1_5CONPDN S5P_GPIO_REG(0x470)
++#define S5P_MP1_5PUDPDN S5P_GPIO_REG(0x474)
++
++/* MP1_6 */
++#define S5P_MP1_6PUD S5P_GPIO_REG(0x488)
++#define S5P_MP1_6DRV S5P_GPIO_REG(0x48C)
++#define S5P_MP1_6CONPDN S5P_GPIO_REG(0x490)
++#define S5P_MP1_6PUDPDN S5P_GPIO_REG(0x494)
++
++/* MP1_7*/
++#define S5P_MP1_7PUD S5P_GPIO_REG(0x4A8)
++#define S5P_MP1_7DRV S5P_GPIO_REG(0x4AC)
++#define S5P_MP1_7CONPDN S5P_GPIO_REG(0x4B0)
++#define S5P_MP1_7PUDPDN S5P_GPIO_REG(0x4B4)
++
++/* MP1_8*/
++#define S5P_MP1_8PUD S5P_GPIO_REG(0x4C8)
++#define S5P_MP1_8DRV S5P_GPIO_REG(0x4CC)
++#define S5P_MP1_8CONPDN S5P_GPIO_REG(0x4D0)
++#define S5P_MP1_8PUDPDN S5P_GPIO_REG(0x4D4)
++
++/* ETC0 */
++#define S5P_ETC0_PUD S5P_GPIO_REG(0x4E8)
++#define S5P_ETC0_DRV S5P_GPIO_REG(0x4EC)
++
++/* ETC1 */
++#define S5P_ETC1_PUD S5P_GPIO_REG(0x508)
++#define S5P_ETC1_DRV S5P_GPIO_REG(0x50C)
++
++/* ETC2 */
++#define S5P_ETC2_PUD S5P_GPIO_REG(0x528)
++#define S5P_ETC2_DRV S5P_GPIO_REG(0x52C)
++
++/* ETC3 */
++#define S5P_ETC3_PUD S5P_GPIO_REG(0x548)
++#define S5P_ETC3_DRV S5P_GPIO_REG(0x54C)
++
++/* ETC4 */
++#define S5P_ETC4_PUD S5P_GPIO_REG(0x568)
++#define S5P_ETC4_DRV S5P_GPIO_REG(0x56C)
++
++/* External Interrupt Control Registers */
++#define S5P_EXT_INT1_CON S5P_GPIO_REG(0x700)
++#define S5P_EXT_INT2_CON S5P_GPIO_REG(0x704)
++#define S5P_EXT_INT3_CON S5P_GPIO_REG(0x708)
++#define S5P_EXT_INT4_CON S5P_GPIO_REG(0x70C)
++#define S5P_EXT_INT5_CON S5P_GPIO_REG(0x710)
++#define S5P_EXT_INT6_CON S5P_GPIO_REG(0x714)
++#define S5P_EXT_INT7_CON S5P_GPIO_REG(0x718)
++#define S5P_EXT_INT8_CON S5P_GPIO_REG(0x71C)
++#define S5P_EXT_INT9_CON S5P_GPIO_REG(0x720)
++#define S5P_EXT_INT10_CON S5P_GPIO_REG(0x724)
++#define S5P_EXT_INT11_CON S5P_GPIO_REG(0x728)
++#define S5P_EXT_INT12_CON S5P_GPIO_REG(0x72C)
++#define S5P_EXT_INT13_CON S5P_GPIO_REG(0x730)
++#define S5P_EXT_INT14_CON S5P_GPIO_REG(0x734)
++#define S5P_EXT_INT15_CON S5P_GPIO_REG(0x738)
++#define S5P_EXT_INT20_CON S5P_GPIO_REG(0x73C)
++#define S5P_EXT_INT21_CON S5P_GPIO_REG(0x740)
++#define S5P_EXT_INT22_CON S5P_GPIO_REG(0x744)
++#define S5P_EXT_INT23_CON S5P_GPIO_REG(0x748)
++#define S5P_EXT_INT24_CON S5P_GPIO_REG(0x74C)
++#define S5P_EXT_INT25_CON S5P_GPIO_REG(0x750)
++#define S5P_EXT_INT1_FLTCON0 S5P_GPIO_REG(0x800)
++#define S5P_EXT_INT1_FLTCON1 S5P_GPIO_REG(0x804)
++#define S5P_EXT_INT2_FLTCON0 S5P_GPIO_REG(0x808)
++#define S5P_EXT_INT2_FLTCON1 S5P_GPIO_REG(0x80C)
++#define S5P_EXT_INT3_FLTCON0 S5P_GPIO_REG(0x810)
++#define S5P_EXT_INT3_FLTCON1 S5P_GPIO_REG(0x814)
++#define S5P_EXT_INT4_FLTCON0 S5P_GPIO_REG(0x818)
++#define S5P_EXT_INT4_FLTCON1 S5P_GPIO_REG(0x81C)
++#define S5P_EXT_INT5_FLTCON0 S5P_GPIO_REG(0x820)
++#define S5P_EXT_INT5_FLTCON1 S5P_GPIO_REG(0x824)
++#define S5P_EXT_INT6_FLTCON0 S5P_GPIO_REG(0x828)
++#define S5P_EXT_INT6_FLTCON1 S5P_GPIO_REG(0x82C)
++#define S5P_EXT_INT7_FLTCON0 S5P_GPIO_REG(0x830)
++#define S5P_EXT_INT7_FLTCON1 S5P_GPIO_REG(0x834)
++#define S5P_EXT_INT8_FLTCON0 S5P_GPIO_REG(0x838)
++#define S5P_EXT_INT8_FLTCON1 S5P_GPIO_REG(0x83C)
++#define S5P_EXT_INT9_FLTCON0 S5P_GPIO_REG(0x840)
++#define S5P_EXT_INT9_FLTCON1 S5P_GPIO_REG(0x844)
++#define S5P_EXT_INT10_FLTCON0 S5P_GPIO_REG(0x848)
++#define S5P_EXT_INT10_FLTCON1 S5P_GPIO_REG(0x84C)
++#define S5P_EXT_INT11_FLTCON0 S5P_GPIO_REG(0x850)
++#define S5P_EXT_INT11_FLTCON1 S5P_GPIO_REG(0x854)
++#define S5P_EXT_INT12_FLTCON0 S5P_GPIO_REG(0x858)
++#define S5P_EXT_INT12_FLTCON1 S5P_GPIO_REG(0x85C)
++#define S5P_EXT_INT13_FLTCON0 S5P_GPIO_REG(0x860)
++#define S5P_EXT_INT13_FLTCON1 S5P_GPIO_REG(0x864)
++#define S5P_EXT_INT14_FLTCON0 S5P_GPIO_REG(0x868)
++#define S5P_EXT_INT14_FLTCON1 S5P_GPIO_REG(0x86C)
++#define S5P_EXT_INT15_FLTCON0 S5P_GPIO_REG(0x870)
++#define S5P_EXT_INT15_FLTCON1 S5P_GPIO_REG(0x874)
++#define S5P_EXT_INT20_FLTCON0 S5P_GPIO_REG(0x878)
++#define S5P_EXT_INT20_FLTCON1 S5P_GPIO_REG(0x87C)
++#define S5P_EXT_INT21_FLTCON0 S5P_GPIO_REG(0x880)
++#define S5P_EXT_INT21_FLTCON1 S5P_GPIO_REG(0x884)
++#define S5P_EXT_INT22_FLTCON0 S5P_GPIO_REG(0x888)
++#define S5P_EXT_INT22_FLTCON1 S5P_GPIO_REG(0x88C)
++#define S5P_EXT_INT23_FLTCON0 S5P_GPIO_REG(0x890)
++#define S5P_EXT_INT23_FLTCON1 S5P_GPIO_REG(0x894)
++#define S5P_EXT_INT24_FLTCON0 S5P_GPIO_REG(0x898)
++#define S5P_EXT_INT24_FLTCON1 S5P_GPIO_REG(0x89C)
++#define S5P_EXT_INT25_FLTCON0 S5P_GPIO_REG(0x8A0)
++#define S5P_EXT_INT25_FLTCON1 S5P_GPIO_REG(0x8A4)
++#define S5P_EXT_INT1_MASK S5P_GPIO_REG(0x900)
++#define S5P_EXT_INT2_MASK S5P_GPIO_REG(0x904)
++#define S5P_EXT_INT3_MASK S5P_GPIO_REG(0x908)
++#define S5P_EXT_INT4_MASK S5P_GPIO_REG(0x90C)
++#define S5P_EXT_INT5_MASK S5P_GPIO_REG(0x910)
++#define S5P_EXT_INT6_MASK S5P_GPIO_REG(0x914)
++#define S5P_EXT_INT7_MASK S5P_GPIO_REG(0x918)
++#define S5P_EXT_INT8_MASK S5P_GPIO_REG(0x91C)
++#define S5P_EXT_INT9_MASK S5P_GPIO_REG(0x920)
++#define S5P_EXT_INT10_MASK S5P_GPIO_REG(0x924)
++#define S5P_EXT_INT11_MASK S5P_GPIO_REG(0x928)
++#define S5P_EXT_INT12_MASK S5P_GPIO_REG(0x92C)
++#define S5P_EXT_INT13_MASK S5P_GPIO_REG(0x930)
++#define S5P_EXT_INT14_MASK S5P_GPIO_REG(0x934)
++#define S5P_EXT_INT15_MASK S5P_GPIO_REG(0x938)
++#define S5P_EXT_INT20_MASK S5P_GPIO_REG(0x93C)
++#define S5P_EXT_INT21_MASK S5P_GPIO_REG(0x940)
++#define S5P_EXT_INT22_MASK S5P_GPIO_REG(0x944)
++#define S5P_EXT_INT23_MASK S5P_GPIO_REG(0x948)
++#define S5P_EXT_INT24_MASK S5P_GPIO_REG(0x94C)
++#define S5P_EXT_INT25_MASK S5P_GPIO_REG(0x950)
++#define S5P_EXT_INT1_PEND S5P_GPIO_REG(0xA00)
++#define S5P_EXT_INT2_PEND S5P_GPIO_REG(0xA04)
++#define S5P_EXT_INT3_PEND S5P_GPIO_REG(0xA08)
++#define S5P_EXT_INT4_PEND S5P_GPIO_REG(0xA0C)
++#define S5P_EXT_INT5_PEND S5P_GPIO_REG(0xA10)
++#define S5P_EXT_INT6_PEND S5P_GPIO_REG(0xA14)
++#define S5P_EXT_INT7_PEND S5P_GPIO_REG(0xA18)
++#define S5P_EXT_INT8_PEND S5P_GPIO_REG(0xA1C)
++#define S5P_EXT_INT9_PEND S5P_GPIO_REG(0xA20)
++#define S5P_EXT_INT10_PEND S5P_GPIO_REG(0xA24)
++#define S5P_EXT_INT11_PEND S5P_GPIO_REG(0xA28)
++#define S5P_EXT_INT12_PEND S5P_GPIO_REG(0xA2C)
++#define S5P_EXT_INT13_PEND S5P_GPIO_REG(0xA30)
++#define S5P_EXT_INT14_PEND S5P_GPIO_REG(0xA34)
++#define S5P_EXT_INT15_PEND S5P_GPIO_REG(0xA38)
++#define S5P_EXT_INT20_PEND S5P_GPIO_REG(0xA3C)
++#define S5P_EXT_INT21_PEND S5P_GPIO_REG(0xA40)
++#define S5P_EXT_INT22_PEND S5P_GPIO_REG(0xA44)
++#define S5P_EXT_INT23_PEND S5P_GPIO_REG(0xA48)
++#define S5P_EXT_INT24_PEND S5P_GPIO_REG(0xA4C)
++#define S5P_EXT_INT25_PEND S5P_GPIO_REG(0xA50)
++#define S5P_EXT_INT_GRPPRI S5P_GPIO_REG(0xB00)
++#define S5P_EXT_INT_PRIORITY S5P_GPIO_REG(0xB04)
++#define S5P_EXT_INT_SERVICE S5P_GPIO_REG(0xB08)
++#define S5P_EXT_INT_SERVICE_PEND S5P_GPIO_REG(0xB0C)
++#define S5P_EXT_INT_GRPFIXPRI S5P_GPIO_REG(0xB10)
++#define S5P_EXT_INT1_FIXPRI S5P_GPIO_REG(0xB14)
++#define S5P_EXT_INT2_FIXPRI S5P_GPIO_REG(0xB18)
++#define S5P_EXT_INT3_FIXPRI S5P_GPIO_REG(0xB1C)
++#define S5P_EXT_INT4_FIXPRI S5P_GPIO_REG(0xB20)
++#define S5P_EXT_INT5_FIXPRI S5P_GPIO_REG(0xB24)
++#define S5P_EXT_INT6_FIXPRI S5P_GPIO_REG(0xB28)
++#define S5P_EXT_INT7_FIXPRI S5P_GPIO_REG(0xB2C)
++#define S5P_EXT_INT8_FIXPRI S5P_GPIO_REG(0xB30)
++#define S5P_EXT_INT9_FIXPRI S5P_GPIO_REG(0xB34)
++#define S5P_EXT_INT10_FIXPRI S5P_GPIO_REG(0xB38)
++#define S5P_EXT_INT11_FIXPRI S5P_GPIO_REG(0xB3C)
++#define S5P_EXT_INT12_FIXPRI S5P_GPIO_REG(0xB40)
++#define S5P_EXT_INT13_FIXPRI S5P_GPIO_REG(0xB44)
++#define S5P_EXT_INT14_FIXPRI S5P_GPIO_REG(0xB48)
++#define S5P_EXT_INT15_FIXPRI S5P_GPIO_REG(0xB4C)
++#define S5P_EXT_INT20_FIXPRI S5P_GPIO_REG(0xB50)
++#define S5P_EXT_INT21_FIXPRI S5P_GPIO_REG(0xB54)
++#define S5P_EXT_INT22_FIXPRI S5P_GPIO_REG(0xB58)
++#define S5P_EXT_INT23_FIXPRI S5P_GPIO_REG(0xB5C)
++#define S5P_EXT_INT24_FIXPRI S5P_GPIO_REG(0xB60)
++#define S5P_EXT_INT25_FIXPRI S5P_GPIO_REG(0xB64)
++#define S5P_UHOST S5P_GPIO_REG(0xB68)
++#define S5P_PDNEN S5P_GPIO_REG(0xF80)
++
++#endif
++
+diff --git a/include/asm-arm/plat-s5p/regs-iis.h b/include/asm-arm/plat-s5p/regs-iis.h
+new file mode 100644
+index 0000000..785549d
+--- /dev/null
++++ b/include/asm-arm/plat-s5p/regs-iis.h
+@@ -0,0 +1,126 @@
++/* linux/include/asm-arm/arch-s3c64XX/regs-iis.h
++ *
++ * Copyright (c) 2003 Simtec Electronics <linux@simtec.co.uk>
++ * http://www.simtec.co.uk/products/SWLINUX/
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * S3C64XX IIS register definition
++*/
++
++#ifndef __ASM_ARCH_REGS_IIS_H
++#define __ASM_ARCH_REGS_IIS_H
++
++#define S3C64XX_IIS0REG(x) ((x) + S3C6410_PA_IIS_V40)
++
++//#define S3C_IIS0CON S3C64XX_IIS0REG(0x00)
++//#define S3C_IIS0MOD S3C64XX_IIS0REG(0x04)
++//#define S3C_IIS0FIC S3C64XX_IIS0REG(0x08)
++//#define S3C_IIS0PSR S3C64XX_IIS0REG(0x0C)
++//#define S3C_IIS0TXD S3C64XX_IIS0REG(0x10)
++//#define S3C_IIS0RXD S3C64XX_IIS0REG(0x14)
++
++#define S3C64XX_IIS0CON (0x00)
++#define S3C64XX_IIS0MOD (0x04)
++#define S3C64XX_IIS0FIC (0x08)
++#define S3C64XX_IIS0PSR (0x0C)
++#define S3C64XX_IIS0TXD (0x10)
++#define S3C64XX_IIS0RXD (0x14)
++
++#define S3C64XX_IISCON_LRINDEX (1<<8)
++#define S3C64XX_IISCON_TXFIFORDY (1<<7)
++#define S3C64XX_IISCON_RXFIFORDY (1<<6)
++#define S3C64XX_IISCON_TXDMAEN (1<<5)
++#define S3C64XX_IISCON_RXDMAEN (1<<4)
++#define S3C64XX_IISCON_TXIDLE (1<<3)
++#define S3C64XX_IISCON_RXIDLE (1<<2)
++#define S3C64XX_IISCON_PSCEN (1<<1)
++#define S3C64XX_IISCON_IISEN (1<<0)
++
++//#define S3C64XX_IISMOD_MPLL (1<<9)
++#define S3C64XX_IISMOD_MPLL (0x01<<10)
++#define S3C64XX_IISMOD_SLAVE (1<<8)
++#define S3C64XX_IISMOD_NOXFER (0<<6)
++#define S3C64XX_IISMOD_RXMODE (1<<6)
++#define S3C64XX_IISMOD_TXMODE (2<<6)
++#define S3C64XX_IISMOD_TXRXMODE (3<<6)
++#define S3C64XX_IISMOD_LR_LLOW (0<<5)
++#define S3C64XX_IISMOD_LR_RLOW (1<<5)
++#define S3C64XX_IISMOD_IIS (0<<4)
++#define S3C64XX_IISMOD_MSB (1<<4)
++#define S3C64XX_IISMOD_8BIT (0<<3)
++#define S3C64XX_IISMOD_16BIT (1<<3)
++#define S3C64XX_IISMOD_BITMASK (1<<3)
++#define S3C64XX_IISMOD_256FS (0<<2)
++#define S3C64XX_IISMOD_384FS (1<<2)
++#define S3C64XX_IISMOD_16FS (0<<0)
++#define S3C64XX_IISMOD_32FS (1<<0)
++#define S3C64XX_IISMOD_48FS (2<<0)
++#define S3C64XX_IISMOD_FS_MASK (3<<0)
++
++#define S3C64XX_IIS0MOD_DCE_MASK (0x3<<16)
++#define S3C64XX_IIS0MOD_DCE_SD2 (0x1<<17)
++#define S3C64XX_IIS0MOD_DCE_SD1 (0x1<<16)
++#define S3C64XX_IIS0MOD_BLC_MASK (0x3<<13)
++#define S3C64XX_IIS0MOD_BLC_16BIT (0x0<<13)
++#define S3C64XX_IIS0MOD_BLC_08BIT (0x1<<13)
++#define S3C64XX_IIS0MOD_BLC_24BIT (0x2<<13)
++#define S3C64XX_IIS0MOD_CLK_MASK (0x7<<10)
++#define S3C64XX_IIS0MOD_INTERNAL_CLK (0x0<<12)
++#define S3C64XX_IIS0MOD_EXTERNAL_CLK (0x1<<12)
++#define S3C64XX_IIS0MOD_IMS_INTERNAL_MASTER (0x0<<10)
++#define S3C64XX_IIS0MOD_IMS_EXTERNAL_MASTER (0x1<<10)
++#define S3C64XX_IIS0MOD_IMS_SLAVE (0x2<<10)
++#define S3C64XX_IIS0MOD_MODE_MASK (0x3<<8)
++#define S3C64XX_IIS0MOD_TXMODE (0x0<<8)
++#define S3C64XX_IIS0MOD_RXMODE (0x1<<8)
++#define S3C64XX_IIS0MOD_TXRXMODE (0x2<<8)
++#define S3C64XX_IIS0MOD_FM_MASK (0x3<<5)
++#define S3C64XX_IIS0MOD_IIS (0x0<<5)
++#define S3C64XX_IIS0MOD_MSB (0x1<<5)
++#define S3C64XX_IIS0MOD_LSB (0x2<<5)
++#define S3C64XX_IIS0MOD_FS_MASK (0x3<<3)
++#define S3C64XX_IIS0MOD_768FS (0x3<<3)
++#define S3C64XX_IIS0MOD_384FS (0x2<<3)
++#define S3C64XX_IIS0MOD_512FS (0x1<<3)
++#define S3C64XX_IIS0MOD_256FS (0x0<<3)
++#define S3C64XX_IIS0MOD_BFS_MASK (0x3<<1)
++#define S3C64XX_IIS0MOD_48FS (0x1<<1)
++#define S3C64XX_IIS0MOD_32FS (0x0<<1)
++
++#define S3C64XX_IISPSR (0x08)
++#define S3C64XX_IISPSR_INTMASK (31<<5)
++#define S3C64XX_IISPSR_INTSHIFT (5)
++#define S3C64XX_IISPSR_EXTMASK (31<<0)
++#define S3C64XX_IISPSR_EXTSHFIT (0)
++
++#define S3C64XX_IISFCON (0x0c)
++
++#define S3C64XX_IISFCON_TXDMA (1<<15)
++#define S3C64XX_IISFCON_RXDMA (1<<14)
++#define S3C64XX_IISFCON_TXENABLE (1<<13)
++#define S3C64XX_IISFCON_RXENABLE (1<<12)
++#define S3C64XX_IISFCON_TXMASK (0x3f << 6)
++#define S3C64XX_IISFCON_TXSHIFT (6)
++#define S3C64XX_IISFCON_RXMASK (0x3f)
++#define S3C64XX_IISFCON_RXSHIFT (0)
++
++#define S3C64XX_IISFIFO (0x10)
++#define S3C64XX_IISFIFORX (0x14)
++
++#define S3C64XX_IIS0CON_I2SACTIVE (0x1<<0)
++#define S3C64XX_IIS0CON_RXDMACTIVE (0x1<<1)
++#define S3C64XX_IIS0CON_I2SACTIVE (0x1<<0)
++#define S3C64XX_IIS0CON_TXDMACTIVE (0x1<<2)
++
++#define S3C64XX_IIS_TX_FLUSH (0x1<<15)
++#define S3C64XX_IIS_RX_FLUSH (0x1<<7)
++
++#define S3C64XX_IISCON_FTXURINTEN (0x1<<16)
++
++#define S3C64XX_IIS0MOD_24BIT (0x2<<13)
++#define S3C64XX_IIS0MOD_8BIT (0x1<<13)
++#define S3C64XX_IIS0MOD_16BIT (0x0<<13)
++#endif /* __ASM_ARCH_REGS_IIS_H */
+diff --git a/include/asm-arm/plat-s5p/s5pc100.h b/include/asm-arm/plat-s5p/s5pc100.h
+new file mode 100644
+index 0000000..359d223
+--- /dev/null
++++ b/include/asm-arm/plat-s5p/s5pc100.h
+@@ -0,0 +1,31 @@
++/* arch/arm/plat-s5pc100/s3c64.h
++ *
++ * Copyright (c) 2004-2005 Samsung Electronics
++ *
++ *
++ * Header file for s5pc100 cpu support
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * Modifications:
++*/
++
++#if defined(CONFIG_CPU_S5PC100)
++
++extern int s5pc100_init(void);
++
++extern void s5pc100_map_io(struct map_desc *mach_desc, int size);
++
++extern void s5pc100_init_uarts(struct s3c2410_uartcfg *cfg, int no);
++
++extern void s5pc100_init_clocks(int xtal);
++
++#else
++#define s5pc100_init NULL
++#define s5pc100_map_io NULL
++#define s5pc100_init_uarts NULL
++#define s5pc100_init_clocks NULL
++#endif
++
+diff --git a/include/linux/i2c-id.h b/include/linux/i2c-id.h
+index e18017d..29b81de 100644
+--- a/include/linux/i2c-id.h
++++ b/include/linux/i2c-id.h
+@@ -125,6 +125,7 @@
+ #define I2C_DRIVERID_LM4857 92 /* LM4857 Audio Amplifier */
+ #define I2C_DRIVERID_VP27SMPX 93 /* Panasonic VP27s tuner internal MPX */
+ #define I2C_DRIVERID_CS4270 94 /* Cirrus Logic 4270 audio codec */
++#define I2C_DRIVERID_WM8580 95 /* Wolfson WM8580 audio codec */
+
+ #define I2C_DRIVERID_I2CDEV 900
+ #define I2C_DRIVERID_ARP 902 /* SMBus ARP Client */
+@@ -167,7 +168,12 @@
+ #define I2C_DRIVERID_FSCHER 1046
+ #define I2C_DRIVERID_W83L785TS 1047
+ #define I2C_DRIVERID_OV7670 1048 /* Omnivision 7670 camera */
+-
++#define I2C_DRIVERID_S5K3XA 1500 /* Samsung MobileAP I2C adapter */
++#define I2C_DRIVERID_S5K_53BEA 1501 /* Samsung MobileAP I2C adapter */
++#define I2C_DRIVERID_S5K3AA 1502 /* Samsung MobileAP I2C adapter */
++#define I2C_DRIVERID_S5K3BA 1503 /* Samsung MobileAP I2C adapter */
++#define I2C_DRIVERID_S5K4XA 1504 /* Samsung MobileAP I2C adapter */
++#define I2C_DRIVERID_MT9P012 1505 /* Samsung MobileAP I2C adapter */
+ /*
+ * ---- Adapter types ----------------------------------------------------
+ */
+diff --git a/include/linux/i2c.h b/include/linux/i2c.h
+index a100c9f..a65e090 100644
+--- a/include/linux/i2c.h
++++ b/include/linux/i2c.h
+@@ -182,6 +182,7 @@ struct i2c_client {
+ char driver_name[KOBJ_NAME_LEN];
+ struct list_head list;
+ struct completion released;
++ void * data;
+ };
+ #define to_i2c_client(d) container_of(d, struct i2c_client, dev)
+
+diff --git a/include/linux/ide.h b/include/linux/ide.h
+index 9a6a41e..7ea0ddc 100644
+--- a/include/linux/ide.h
++++ b/include/linux/ide.h
+@@ -202,7 +202,7 @@ enum { ide_unknown, ide_generic, ide_pci,
+ ide_rz1000, ide_trm290,
+ ide_cmd646, ide_cy82c693, ide_4drives,
+ ide_pmac, ide_etrax100, ide_acorn,
+- ide_au1xxx, ide_forced
++ ide_au1xxx, ide_s3c, ide_forced
+ };
+
+ typedef u8 hwif_chipset_t;
+@@ -659,6 +659,7 @@ typedef struct hwif_s {
+ unsigned long sata_scr[SATA_NR_PORTS];
+ unsigned long sata_misc[SATA_NR_PORTS];
+
++ hw_regs_t hw; /* Hardware info */
+ ide_drive_t drives[MAX_DRIVES]; /* drive info */
+
+ u8 major; /* our major number */
+@@ -714,6 +715,10 @@ typedef struct hwif_s {
+ u8 (*udma_filter)(ide_drive_t *);
+
+ void (*fixup)(struct hwif_s *);
++
++#ifdef CONFIG_IDE_HOOK_IRQ
++ int (*ide_irq_hook)(void *);
++#endif
+
+ void (*ata_input_data)(ide_drive_t *, void *, u32);
+ void (*ata_output_data)(ide_drive_t *, void *, u32);
+diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
+index 2306920..fe4b40e 100644
+--- a/include/linux/interrupt.h
++++ b/include/linux/interrupt.h
+@@ -55,6 +55,22 @@
+ #define IRQF_NOBALANCING 0x00000800
+ #define IRQF_IRQPOLL 0x00001000
+
++/*
++ * Migration helpers. Scheduled for removal in 1/2007
++ * Do not use for new code !
++ */
++#define SA_INTERRUPT IRQF_DISABLED
++#define SA_SAMPLE_RANDOM IRQF_SAMPLE_RANDOM
++#define SA_SHIRQ IRQF_SHARED
++#define SA_PROBEIRQ IRQF_PROBE_SHARED
++#define SA_PERCPU IRQF_PERCPU
++
++#define SA_TRIGGER_LOW IRQF_TRIGGER_LOW
++#define SA_TRIGGER_HIGH IRQF_TRIGGER_HIGH
++#define SA_TRIGGER_FALLING IRQF_TRIGGER_FALLING
++#define SA_TRIGGER_RISING IRQF_TRIGGER_RISING
++#define SA_TRIGGER_MASK IRQF_TRIGGER_MASK
++
+ typedef irqreturn_t (*irq_handler_t)(int, void *);
+
+ struct irqaction {
+@@ -326,7 +342,7 @@ static inline int tasklet_trylock(struct tasklet_struct *t)
+
+ static inline void tasklet_unlock(struct tasklet_struct *t)
+ {
+- smp_mb__before_clear_bit();
++ smp_mb__before_clear_bit();
+ clear_bit(TASKLET_STATE_RUN, &(t)->state);
+ }
+
+@@ -415,7 +431,7 @@ extern void tasklet_init(struct tasklet_struct *t,
+ * if more than one irq occurred.
+ */
+
+-#if defined(CONFIG_GENERIC_HARDIRQS) && !defined(CONFIG_GENERIC_IRQ_PROBE)
++#if defined(CONFIG_GENERIC_HARDIRQS) && !defined(CONFIG_GENERIC_IRQ_PROBE)
+ static inline unsigned long probe_irq_on(void)
+ {
+ return 0;
+diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
+index 0d508ac..218f7b1 100644
+--- a/include/linux/mmc/card.h
++++ b/include/linux/mmc/card.h
+@@ -89,6 +89,7 @@ struct mmc_card {
+ #define MMC_TYPE_MMC 0 /* MMC card */
+ #define MMC_TYPE_SD 1 /* SD card */
+ #define MMC_TYPE_SDIO 2 /* SDIO card */
++
+ unsigned int state; /* (our) card state */
+ #define MMC_STATE_PRESENT (1<<0) /* present in sysfs */
+ #define MMC_STATE_READONLY (1<<1) /* card is read-only */
+diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
+index 7ab962f..7ab2bde 100644
+--- a/include/linux/mmc/host.h
++++ b/include/linux/mmc/host.h
+@@ -41,6 +41,7 @@ struct mmc_ios {
+
+ #define MMC_BUS_WIDTH_1 0
+ #define MMC_BUS_WIDTH_4 2
++#define MMC_BUS_WIDTH_8 3
+
+ unsigned char timing; /* timing specification used */
+
+@@ -94,6 +95,7 @@ struct mmc_host {
+ #define MMC_CAP_SD_HIGHSPEED (1 << 3) /* Can do SD high-speed timing */
+ #define MMC_CAP_SDIO_IRQ (1 << 4) /* Can signal pending SDIO IRQs */
+ #define MMC_CAP_SPI (1 << 5) /* Talks only SPI protocols */
++#define MMC_CAP_8_BIT_DATA (1 << 6) /* Can the host do 8 bit transfers */
+
+ /* host specific block data */
+ unsigned int max_seg_size; /* see blk_queue_max_segment_size */
+diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
+index 4c4522a..0343c5b 100644
+--- a/include/linux/mmzone.h
++++ b/include/linux/mmzone.h
+@@ -20,7 +20,8 @@
+
+ /* Free memory management - zoned buddy allocator. */
+ #ifndef CONFIG_FORCE_MAX_ZONEORDER
+-#define MAX_ORDER 11
++//#define MAX_ORDER 11
++#define MAX_ORDER 12
+ #else
+ #define MAX_ORDER CONFIG_FORCE_MAX_ZONEORDER
+ #endif
+diff --git a/include/linux/usb/ch9.h b/include/linux/usb/ch9.h
+index 6169438..a7304c3 100644
+--- a/include/linux/usb/ch9.h
++++ b/include/linux/usb/ch9.h
+@@ -87,6 +87,7 @@
+ #define USB_REQ_GET_INTERFACE 0x0A
+ #define USB_REQ_SET_INTERFACE 0x0B
+ #define USB_REQ_SYNCH_FRAME 0x0C
++#define USB_REQ_GET_MAX_LUN 0xFE
+
+ #define USB_REQ_SET_ENCRYPTION 0x0D /* Wireless USB */
+ #define USB_REQ_GET_ENCRYPTION 0x0E
+diff --git a/include/sound/soc-dapm.h b/include/sound/soc-dapm.h
+index 2b1ae8e..bc05a54 100644
+--- a/include/sound/soc-dapm.h
++++ b/include/sound/soc-dapm.h
+@@ -150,6 +150,15 @@
+ .put = snd_soc_dapm_put_enum_double, \
+ .private_value = (unsigned long)&xenum }
+
++#define SOC_DAPM_SINGLE_TLV(xname, reg, shift, max, invert, tlv_array) \
++{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
++ .info = snd_soc_info_volsw, \
++ .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ | SNDRV_CTL_ELEM_ACCESS_READWRITE,\
++ .tlv.p = (tlv_array), \
++ .get = snd_soc_dapm_get_volsw, .put = snd_soc_dapm_put_volsw, \
++ .private_value = SOC_SINGLE_VALUE(reg, shift, max, invert) }
++
++
+ /* dapm stream operations */
+ #define SND_SOC_DAPM_STREAM_NOP 0x0
+ #define SND_SOC_DAPM_STREAM_START 0x1
+diff --git a/include/sound/soc.h b/include/sound/soc.h
+index f47ef1f..a9df0fe 100644
+--- a/include/sound/soc.h
++++ b/include/sound/soc.h
+@@ -77,6 +77,13 @@
+ .get = xhandler_get, .put = xhandler_put, \
+ .private_value = (unsigned long)&xenum }
+
++#define SOC_SINGLE_TLV(xname, reg, shift, max, invert, tlv_array) \
++{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
++ .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ | SNDRV_CTL_ELEM_ACCESS_READWRITE,\
++ .tlv.p = (tlv_array), \
++ .info = snd_soc_info_volsw, .get = snd_soc_get_volsw,\
++ .put = snd_soc_put_volsw, \
++ .private_value = SOC_SINGLE_VALUE(reg, shift, max, invert) }
+ /*
+ * Digital Audio Interface (DAI) types
+ */
+diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig
+index 8e186c6..e98b5ce 100644
+--- a/kernel/power/Kconfig
++++ b/kernel/power/Kconfig
+@@ -195,3 +195,16 @@ config APM_EMULATION
+ random kernel OOPSes or reboots that don't seem to be related to
+ anything, try disabling/enabling this option (or disabling/enabling
+ APM in your BIOS).
++
++menu "DVFS support"
++
++config S3C64XX_DVFS
++ tristate "Support for DVFS on SMDK64xx Board"
++ depends on CPU_S3C6400 || CPU_S3C6410
++
++config S3C24XX_DVFS
++ tristate "Support for DVFS on SMDK64xx Board"
++ depends on CPU_S3C2450 || CPU_S3C2416
++
++endmenu
++
+diff --git a/sound/soc/Kconfig b/sound/soc/Kconfig
+index 97b2552..07f949c 100644
+--- a/sound/soc/Kconfig
++++ b/sound/soc/Kconfig
+@@ -6,7 +6,8 @@ menu "System on Chip audio support"
+ depends on SND!=n
+
+ config SND_SOC_AC97_BUS
+- bool
++ #bool
++ tristate
+
+ config SND_SOC
+ tristate "ALSA for SoC audio support"
+@@ -27,7 +28,8 @@ config SND_SOC
+ source "sound/soc/at91/Kconfig"
+ source "sound/soc/pxa/Kconfig"
+ source "sound/soc/s3c24xx/Kconfig"
+-source "sound/soc/sh/Kconfig"
++source "sound/soc/s3c64xx/Kconfig"
++#source "sound/soc/sh/Kconfig"
+
+ # Supported codecs
+ source "sound/soc/codecs/Kconfig"
+diff --git a/sound/soc/Makefile b/sound/soc/Makefile
+index 3041403..05056d5 100644
+--- a/sound/soc/Makefile
++++ b/sound/soc/Makefile
+@@ -1,4 +1,4 @@
+ snd-soc-core-objs := soc-core.o soc-dapm.o
+
+ obj-$(CONFIG_SND_SOC) += snd-soc-core.o
+-obj-$(CONFIG_SND_SOC) += codecs/ at91/ pxa/ s3c24xx/ sh/
++obj-$(CONFIG_SND_SOC) += codecs/ at91/ pxa/ s3c24xx/ s3c64xx/ sh/
+diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
+index 7824880..7be7510 100644
+--- a/sound/soc/codecs/Kconfig
++++ b/sound/soc/codecs/Kconfig
+@@ -2,6 +2,10 @@ config SND_SOC_AC97_CODEC
+ tristate
+ depends on SND_SOC
+
++config SND_SOC_WM8580
++ tristate
++ depends on SND_SOC
++
+ config SND_SOC_WM8731
+ tristate
+ depends on SND_SOC
+@@ -13,11 +17,19 @@ config SND_SOC_WM8750
+ config SND_SOC_WM8753
+ tristate
+ depends on SND_SOC
++
++config SND_SOC_WM8990
++ tristate
++ depends on SND_SOC
+
+ config SND_SOC_WM9712
+ tristate
+ depends on SND_SOC
+
++config SND_SOC_WM9713
++ tristate
++ depends on SND_SOC
++
+ # Cirrus Logic CS4270 Codec
+ config SND_SOC_CS4270
+ tristate
+diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile
+index 7ad78e3..ca67a02 100644
+--- a/sound/soc/codecs/Makefile
++++ b/sound/soc/codecs/Makefile
+@@ -1,13 +1,42 @@
+ snd-soc-ac97-objs := ac97.o
++snd-soc-wm8580-objs := wm8580.o
+ snd-soc-wm8731-objs := wm8731.o
+ snd-soc-wm8750-objs := wm8750.o
+ snd-soc-wm8753-objs := wm8753.o
++snd-soc-wm8772-objs := wm8772.o
++snd-soc-wm8900-objs := wm8900.o
++snd-soc-wm8950-objs := wm8950.o
++snd-soc-wm8951-objs := wm8951.o
++snd-soc-wm8956-objs := wm8956.o
++snd-soc-wm8960-objs := wm8960.o
++snd-soc-wm8971-objs := wm8971.o
++snd-soc-wm8974-objs := wm8974.o
++snd-soc-wm8976-objs := wm8976.o
++snd-soc-wm8978-objs := wm8978.o
++snd-soc-wm8980-objs := wm8980.o
++snd-soc-wm8990-objs := wm8990.o
++snd-soc-wm8991-objs := wm8991.o
++snd-soc-wm9713-objs := wm9713.o
+ snd-soc-wm9712-objs := wm9712.o
+ snd-soc-cs4270-objs := cs4270.o
+
+ obj-$(CONFIG_SND_SOC_AC97_CODEC) += snd-soc-ac97.o
++obj-$(CONFIG_SND_SOC_WM8580) += snd-soc-wm8580.o
+ obj-$(CONFIG_SND_SOC_WM8731) += snd-soc-wm8731.o
+ obj-$(CONFIG_SND_SOC_WM8750) += snd-soc-wm8750.o
+ obj-$(CONFIG_SND_SOC_WM8753) += snd-soc-wm8753.o
++obj-$(CONFIG_SND_SOC_WM8772) += snd-soc-wm8772.o
++obj-$(CONFIG_SND_SOC_WM8950) += snd-soc-wm8950.o
++obj-$(CONFIG_SND_SOC_WM8951) += snd-soc-wm8951.o
++obj-$(CONFIG_SND_SOC_WM8956) += snd-soc-wm8956.o
++obj-$(CONFIG_SND_SOC_WM8960) += snd-soc-wm8960.o
++obj-$(CONFIG_SND_SOC_WM8971) += snd-soc-wm8971.o
++obj-$(CONFIG_SND_SOC_WM8974) += snd-soc-wm8974.o
++obj-$(CONFIG_SND_SOC_WM8976) += snd-soc-wm8976.o
++obj-$(CONFIG_SND_SOC_WM8978) += snd-soc-wm8978.o
++obj-$(CONFIG_SND_SOC_WM8980) += snd-soc-wm8980.o
++obj-$(CONFIG_SND_SOC_WM8990) += snd-soc-wm8990.o
++obj-$(CONFIG_SND_SOC_WM8991) += snd-soc-wm8991.o
+ obj-$(CONFIG_SND_SOC_WM9712) += snd-soc-wm9712.o
++obj-$(CONFIG_SND_SOC_WM9713) += snd-soc-wm9713.o
+ obj-$(CONFIG_SND_SOC_CS4270) += snd-soc-cs4270.o
+diff --git a/sound/soc/codecs/wm8580.c b/sound/soc/codecs/wm8580.c
+new file mode 100644
+index 0000000..f50cb46
+--- /dev/null
++++ b/sound/soc/codecs/wm8580.c
+@@ -0,0 +1,963 @@
++/*
++ * wm8580.c -- WM8580 ALSA Soc Audio driver
++ *
++ * Copyright 2008 Wolfson Microelectronics PLC.
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * Notes:
++ * The WM8580 is a multichannel codec with S/PDIF support, featuring six
++ * DAC channels and two ADC channels.
++ *
++ * Currently only the primary audio interface is supported - S/PDIF and
++ * the secondary audio interfaces are not.
++ */
++
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/version.h>
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/delay.h>
++#include <linux/pm.h>
++#include <linux/i2c.h>
++#include <linux/platform_device.h>
++#include <sound/driver.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/pcm_params.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++#include <sound/tlv.h>
++#include <sound/initval.h>
++#include <asm/div64.h>
++
++#include "wm8580.h"
++
++#define AUDIO_NAME "wm8580"
++#define WM8580_VERSION "0.1"
++
++/*
++ * Debug
++ */
++
++#define WM8580_DEBUG 0
++
++#ifdef WM8580_DEBUG
++#define dbg(format, arg...) \
++ printk(KERN_DEBUG AUDIO_NAME ": " format , ## arg)
++#else
++#define dbg(format, arg...) do {} while (0)
++#endif
++#define err(format, arg...) \
++ printk(KERN_ERR AUDIO_NAME ": " format , ## arg)
++#define info(format, arg...) \
++ printk(KERN_INFO AUDIO_NAME ": " format , ## arg)
++#define warn(format, arg...) \
++ printk(KERN_WARNING AUDIO_NAME ": " format , ## arg)
++
++struct pll_state {
++ unsigned int in;
++ unsigned int out;
++};
++
++/* codec private data */
++struct wm8580_priv {
++ struct pll_state a;
++ struct pll_state b;
++};
++
++/*
++ * wm8580 register cache
++ * We can't read the WM8580 register space when we
++ * are using 2 wire for device control, so we cache them instead.
++ */
++static const u16 wm8580_reg[] = {
++ 0x0121, 0x017e, 0x007d, 0x0014, /*R3*/
++ 0x0121, 0x017e, 0x007d, 0x0194, /*R7*/
++ 0x001c, 0x0002, 0x0002, 0x00c2, /*R11*/
++ 0x0182, 0x0082, 0x000a, 0x0024, /*R15*/
++ 0x0009, 0x0000, 0x00ff, 0x0000, /*R19*/
++ 0x00ff, 0x00ff, 0x00ff, 0x00ff, /*R23*/
++ 0x00ff, 0x00ff, 0x00ff, 0x00ff, /*R27*/
++ 0x01f0, 0x0040, 0x0000, 0x0000, /*R31(0x1F)*/
++ 0x0000, 0x0000, 0x0031, 0x000b, /*R35*/
++ 0x0039, 0x0000, 0x0010, 0x0032, /*R39*/
++ 0x0054, 0x0076, 0x0098, 0x0000, /*R43(0x2B)*/
++ 0x0000, 0x0000, 0x0000, 0x0000, /*R47*/
++ 0x0000, 0x0000, 0x005e, 0x003e, /*R51(0x33)*/
++ 0x0000, 0x0000 /*R53*/
++};
++
++/*
++ * read wm8580 register cache
++ */
++static inline unsigned int wm8580_read_reg_cache(struct snd_soc_codec *codec,
++ unsigned int reg)
++{
++ u16 *cache = codec->reg_cache;
++ BUG_ON(reg > ARRAY_SIZE(wm8580_reg));
++ return cache[reg];
++}
++
++/*
++ * write wm8580 register cache
++ */
++static inline void wm8580_write_reg_cache(struct snd_soc_codec *codec,
++ unsigned int reg, unsigned int value)
++{
++ u16 *cache = codec->reg_cache;
++
++ cache[reg] = value;
++}
++
++/*
++ * write to the WM8580 register space
++ */
++static int wm8580_write(struct snd_soc_codec *codec, unsigned int reg,
++ unsigned int value)
++{
++// printk("%s,%d : reg : 0x%x, value : 0x%x\n",__FUNCTION__,__LINE__,reg,value);
++ u8 data[2];
++
++ BUG_ON(reg > ARRAY_SIZE(wm8580_reg));
++
++ /* Registers are 9 bits wide */
++ value &= 0x1ff;
++
++ switch (reg) {
++ case WM8580_RESET:
++ /* Uncached */
++ break;
++ default:
++ if (value == wm8580_read_reg_cache(codec, reg))
++ return 0;
++ }
++
++ /* data is
++ * D15..D9 WM8580 register offset
++ * D8...D0 register data
++ */
++ data[0] = (reg << 1) | ((value >> 8) & 0x0001);
++ data[1] = value & 0x00ff;
++
++ wm8580_write_reg_cache(codec, reg, value);
++ if (codec->hw_write(codec->control_data, data, 2) == 2)
++ return 0;
++ else
++ return -EIO;
++}
++
++static inline unsigned int wm8580_read(struct snd_soc_codec *codec,
++ unsigned int reg)
++{
++ switch (reg) {
++ default:
++ return wm8580_read_reg_cache(codec, reg);
++ }
++}
++
++static const DECLARE_TLV_DB_SCALE(dac_tlv, -12750, 50, 1);
++
++static int wm8580_out_vu(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
++ int reg = kcontrol->private_value & 0xff;
++ int ret;
++ u16 val;
++
++ /* Clear the register cache so we write without VU set */
++ wm8580_write_reg_cache(codec, reg, 0);
++
++ ret = snd_soc_put_volsw(kcontrol, ucontrol);
++ if (ret < 0)
++ return ret;
++
++ /* Now write again with the volume update bit set */
++ val = wm8580_read_reg_cache(codec, reg);
++ return wm8580_write(codec, reg, val | 0x0100);
++}
++
++#define SOC_WM8580_OUT_SINGLE_R_TLV(xname, reg, shift, max, invert, tlv_array) \
++{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname), \
++ .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ | SNDRV_CTL_ELEM_ACCESS_READWRITE,\
++ .tlv.p = (tlv_array), \
++ .info = snd_soc_info_volsw, \
++ .get = snd_soc_get_volsw, .put = wm8580_out_vu, \
++ .private_value = SOC_SINGLE_VALUE(reg, shift, max, invert) }
++
++static const struct snd_kcontrol_new wm8580_snd_controls[] = {
++SOC_WM8580_OUT_SINGLE_R_TLV("Left DAC1 Playback Volume",
++ WM8580_DIGITAL_ATTENUATION_DACL1,
++ 0, 0xff, 0, dac_tlv),
++SOC_WM8580_OUT_SINGLE_R_TLV("Right DAC1 Playback Volume",
++ WM8580_DIGITAL_ATTENUATION_DACR1,
++ 0, 0xff, 0, dac_tlv),
++SOC_WM8580_OUT_SINGLE_R_TLV("Left DAC2 Playback Volume",
++ WM8580_DIGITAL_ATTENUATION_DACL2,
++ 0, 0xff, 0, dac_tlv),
++SOC_WM8580_OUT_SINGLE_R_TLV("Right DAC2 Playback Volume",
++ WM8580_DIGITAL_ATTENUATION_DACR2,
++ 0, 0xff, 0, dac_tlv),
++SOC_WM8580_OUT_SINGLE_R_TLV("Left DAC3 Playback Volume",
++ WM8580_DIGITAL_ATTENUATION_DACL3,
++ 0, 0xff, 0, dac_tlv),
++SOC_WM8580_OUT_SINGLE_R_TLV("Right DAC3 Playback Volume",
++ WM8580_DIGITAL_ATTENUATION_DACR3,
++ 0, 0xff, 0, dac_tlv),
++
++SOC_SINGLE("DAC1 Deemphasis Switch", WM8580_DAC_CONTROL3, 0, 1, 0),
++SOC_SINGLE("DAC2 Deemphasis Switch", WM8580_DAC_CONTROL3, 1, 1, 0),
++SOC_SINGLE("DAC3 Deemphasis Switch", WM8580_DAC_CONTROL3, 2, 1, 0),
++
++SOC_SINGLE("DAC1 Left Invert Switch", WM8580_DAC_CONTROL4, 0, 1, 0),
++SOC_SINGLE("DAC1 Right Invert Switch", WM8580_DAC_CONTROL4, 1, 1, 0),
++SOC_SINGLE("DAC2 Left Invert Switch", WM8580_DAC_CONTROL4, 2, 1, 0),
++SOC_SINGLE("DAC2 Right Invert Switch", WM8580_DAC_CONTROL4, 3, 1, 0),
++SOC_SINGLE("DAC3 Left Invert Switch", WM8580_DAC_CONTROL4, 4, 1, 0),
++SOC_SINGLE("DAC3 Right Invert Switch", WM8580_DAC_CONTROL4, 5, 1, 0),
++
++SOC_SINGLE("DAC ZC Switch", WM8580_DAC_CONTROL5, 5, 1, 0),
++SOC_SINGLE("DAC1 Mute Switch", WM8580_DAC_CONTROL5, 0, 1, 0),
++SOC_SINGLE("DAC2 Mute Switch", WM8580_DAC_CONTROL5, 1, 1, 0),
++SOC_SINGLE("DAC3 Mute Switch", WM8580_DAC_CONTROL5, 2, 1, 0),
++
++SOC_SINGLE("ADCL Mute Switch", WM8580_ADC_CONTROL1, 0, 1, 0),
++SOC_SINGLE("ADCR Mute Switch", WM8580_ADC_CONTROL1, 1, 1, 0),
++SOC_SINGLE("ADC High-Pass Filter Switch", WM8580_ADC_CONTROL1, 4, 1, 0),
++};
++
++/* Add non-DAPM controls */
++static int wm8580_add_controls(struct snd_soc_codec *codec)
++{
++ int err, i;
++
++ for (i = 0; i < ARRAY_SIZE(wm8580_snd_controls); i++) {
++ err = snd_ctl_add(codec->card,
++ snd_soc_cnew(&wm8580_snd_controls[i],
++ codec, NULL));
++ if (err < 0)
++ return err;
++ }
++ return 0;
++}
++static const struct snd_soc_dapm_widget wm8580_dapm_widgets[] = {
++SND_SOC_DAPM_DAC("DAC1", "Playback", WM8580_PWRDN1, 2, 1),
++SND_SOC_DAPM_DAC("DAC2", "Playback", WM8580_PWRDN1, 3, 1),
++SND_SOC_DAPM_DAC("DAC3", "Playback", WM8580_PWRDN1, 4, 1),
++
++SND_SOC_DAPM_OUTPUT("VOUT1L"),
++SND_SOC_DAPM_OUTPUT("VOUT1R"),
++SND_SOC_DAPM_OUTPUT("VOUT2L"),
++SND_SOC_DAPM_OUTPUT("VOUT2R"),
++SND_SOC_DAPM_OUTPUT("VOUT3L"),
++SND_SOC_DAPM_OUTPUT("VOUT3R"),
++
++SND_SOC_DAPM_ADC("ADC", "Capture", WM8580_PWRDN1, 1, 1),
++
++SND_SOC_DAPM_INPUT("AINL"),
++SND_SOC_DAPM_INPUT("AINR"),
++};
++
++static const char *audio_map[][3] = {
++ { "VOUT1L", NULL, "DAC1" },
++ { "VOUT1R", NULL, "DAC1" },
++
++ { "VOUT2L", NULL, "DAC2" },
++ { "VOUT2R", NULL, "DAC2" },
++
++ { "VOUT3L", NULL, "DAC3" },
++ { "VOUT3R", NULL, "DAC3" },
++
++ { "ADC", NULL, "AINL" },
++ { "ADC", NULL, "AINR" },
++
++ { NULL, NULL, NULL }
++};
++
++static int wm8580_add_widgets(struct snd_soc_codec *codec)
++{
++ int i;
++
++ for (i = 0; i < ARRAY_SIZE(wm8580_dapm_widgets); i++)
++ snd_soc_dapm_new_control(codec, &wm8580_dapm_widgets[i]);
++
++ for (i = 0; audio_map[i][0] != NULL; i++)
++ snd_soc_dapm_connect_input(codec, audio_map[i][0],
++ audio_map[i][1], audio_map[i][2]);
++
++ snd_soc_dapm_new_widgets(codec);
++ return 0;
++}
++
++/* PLL divisors */
++struct _pll_div {
++ u32 prescale:1;
++ u32 postscale:1;
++ u32 freqmode:2;
++ u32 n:4;
++ u32 k:24;
++};
++
++/* The size in bits of the pll divide */
++#define FIXED_PLL_SIZE (1 << 22)
++
++/* PLL rate to output rate divisions */
++static struct {
++ unsigned int div;
++ unsigned int freqmode;
++ unsigned int postscale;
++} post_table[] = {
++ { 2, 0, 0 },
++ { 4, 0, 1 },
++ { 4, 1, 0 },
++ { 8, 1, 1 },
++ { 8, 2, 0 },
++ { 16, 2, 1 },
++ { 12, 3, 0 },
++ { 24, 3, 1 }
++};
++
++static int pll_factors(struct _pll_div *pll_div, unsigned int target,
++ unsigned int source)
++{
++ u64 Kpart;
++ unsigned int K, Ndiv, Nmod;
++ int i;
++
++ dbg("wm8580: PLL %dHz->%dHz\n", source, target);
++
++ /* Scale the output frequency up; the PLL should run in the
++ * region of 90-100MHz.
++ */
++ for (i = 0; i < ARRAY_SIZE(post_table); i++) {
++ if (target * post_table[i].div >= 90000000 &&
++ target * post_table[i].div <= 100000000) {
++ pll_div->freqmode = post_table[i].freqmode;
++ pll_div->postscale = post_table[i].postscale;
++ target *= post_table[i].div;
++ break;
++ }
++ }
++
++ if (i == ARRAY_SIZE(post_table)) {
++ printk(KERN_ERR "wm8580: Unable to scale output frequency "
++ "%u\n", target);
++ return -EINVAL;
++ }
++
++ Ndiv = target / source;
++
++ if (Ndiv < 5) {
++ source /= 2;
++ pll_div->prescale = 1;
++ Ndiv = target / source;
++ } else
++ pll_div->prescale = 0;
++
++ if ((Ndiv < 5) || (Ndiv > 13)) {
++ printk(KERN_ERR
++ "WM8580 N=%d outside supported range\n", Ndiv);
++ return -EINVAL;
++ }
++
++ pll_div->n = Ndiv;
++ Nmod = target % source;
++ Kpart = FIXED_PLL_SIZE * (long long)Nmod;
++
++ do_div(Kpart, source);
++
++ K = Kpart & 0xFFFFFFFF;
++
++ pll_div->k = K;
++
++ dbg("PLL %x.%x prescale %d freqmode %d postscale %d\n",
++ pll_div->n, pll_div->k, pll_div->prescale, pll_div->freqmode,
++ pll_div->postscale);
++
++ return 0;
++}
++
++static int wm8580_set_dai_pll(struct snd_soc_codec_dai *codec_dai,
++ int pll_id, unsigned int freq_in, unsigned int freq_out)
++{
++ int offset;
++ struct snd_soc_codec *codec = codec_dai->codec;
++ struct wm8580_priv *wm8580 = codec->private_data;
++ struct pll_state *state;
++ struct _pll_div pll_div;
++ unsigned int reg;
++ unsigned int pwr_mask;
++ int ret;
++
++ switch (pll_id) {
++ case WM8580_PLLA:
++ state = &wm8580->a;
++ offset = 0;
++ pwr_mask = WM8580_PWRDN2_PLLAPD;
++ break;
++ case WM8580_PLLB:
++ state = &wm8580->b;
++ offset = 4;
++ pwr_mask = WM8580_PWRDN2_PLLBPD;
++ break;
++ default:
++ return -ENODEV;
++ }
++
++ if (freq_in && freq_out) {
++ ret = pll_factors(&pll_div, freq_out, freq_in);
++ if (ret != 0)
++ return ret;
++ }
++
++ state->in = freq_in;
++ state->out = freq_out;
++
++ /* Always disable the PLL - it is not safe to leave it running
++ * while reprogramming it.
++ */
++ reg = wm8580_read(codec, WM8580_PWRDN2);
++ wm8580_write(codec, WM8580_PWRDN2, reg | pwr_mask);
++
++ if (!freq_in || !freq_out)
++ return 0;
++
++ wm8580_write(codec, WM8580_PLLA1 + offset, pll_div.k & 0x1ff);
++ wm8580_write(codec, WM8580_PLLA2 + offset, (pll_div.k >> 9) & 0xff);
++ wm8580_write(codec, WM8580_PLLA3 + offset,
++ (pll_div.k >> 18 & 0xf) | (pll_div.n << 4));
++
++ reg = wm8580_read(codec, WM8580_PLLA4 + offset);
++ reg &= ~0x3f;
++ reg |= pll_div.prescale | pll_div.postscale << 1 |
++ pll_div.freqmode << 4;
++
++ wm8580_write(codec, WM8580_PLLA4 + offset, reg);
++
++ /* All done, turn it on */
++ reg = wm8580_read(codec, WM8580_PWRDN2);
++ wm8580_write(codec, WM8580_PWRDN2, reg & ~pwr_mask);
++
++ return 0;
++}
++
++/*
++ * Set PCM DAI bit size and sample rate.
++ */
++static int wm8580_paif_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_dai_link *dai = rtd->dai;
++ struct snd_soc_device *socdev = rtd->socdev;
++ struct snd_soc_codec *codec = socdev->codec;
++
++ u16 paifb = wm8580_read(codec, WM8580_PAIF3 + dai->codec_dai->id);
++
++ paifb &= ~WM8580_AIF_LENGTH_MASK;
++
++ /* bit size */
++ switch (params_format(params)) {
++ case SNDRV_PCM_FORMAT_S16_LE:
++ printk(KERN_CRIT "16 bit\n");
++ paifb |= WM8580_AIF_LENGTH_16;
++ break;
++ case SNDRV_PCM_FORMAT_S20_3LE:
++ printk(KERN_CRIT "20 bit\n");
++ paifb |= WM8580_AIF_LENGTH_20;
++ break;
++ case SNDRV_PCM_FORMAT_S24_LE:
++ printk(KERN_CRIT "24 bit\n");
++ paifb |= WM8580_AIF_LENGTH_24;
++ break;
++ case SNDRV_PCM_FORMAT_S32_LE:
++ printk(KERN_CRIT "32 bit\n");
++ paifb |= WM8580_AIF_LENGTH_24;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ wm8580_write(codec, WM8580_PAIF3 + dai->codec_dai->id, paifb);
++ return 0;
++}
++
++static int wm8580_set_paif_dai_fmt(struct snd_soc_codec_dai *codec_dai,
++ unsigned int fmt)
++{
++ struct snd_soc_codec *codec = codec_dai->codec;
++ unsigned int aifa;
++ unsigned int aifb;
++ int can_invert_lrclk;
++
++ aifa = wm8580_read(codec, WM8580_PAIF1 + codec_dai->id);
++ aifb = wm8580_read(codec, WM8580_PAIF3 + codec_dai->id);
++
++ aifb &= ~(WM8580_AIF_FMT_MASK | WM8580_AIF_LRP | WM8580_AIF_BCP);
++
++ switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
++ case SND_SOC_DAIFMT_CBS_CFS:
++ aifa &= ~WM8580_AIF_MS;
++ break;
++ case SND_SOC_DAIFMT_CBM_CFM:
++ aifa |= WM8580_AIF_MS;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
++ case SND_SOC_DAIFMT_I2S:
++ can_invert_lrclk = 1;
++ aifb |= WM8580_AIF_FMT_I2S;
++ break;
++ case SND_SOC_DAIFMT_RIGHT_J:
++ can_invert_lrclk = 1;
++ aifb |= WM8580_AIF_FMT_RIGHTJ;
++ break;
++ case SND_SOC_DAIFMT_LEFT_J:
++ can_invert_lrclk = 1;
++ aifb |= WM8580_AIF_FMT_LEFTJ;
++ break;
++ case SND_SOC_DAIFMT_DSP_A:
++ can_invert_lrclk = 0;
++ aifb |= WM8580_AIF_FMT_DSP;
++ break;
++ case SND_SOC_DAIFMT_DSP_B:
++ can_invert_lrclk = 0;
++ aifb |= WM8580_AIF_FMT_DSP;
++ aifb |= WM8580_AIF_LRP;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
++ case SND_SOC_DAIFMT_NB_NF:
++ break;
++
++ case SND_SOC_DAIFMT_IB_IF:
++ if (!can_invert_lrclk)
++ return -EINVAL;
++ aifb |= WM8580_AIF_BCP;
++ aifb |= WM8580_AIF_LRP;
++ break;
++
++ case SND_SOC_DAIFMT_IB_NF:
++ aifb |= WM8580_AIF_BCP;
++ break;
++
++ case SND_SOC_DAIFMT_NB_IF:
++ if (!can_invert_lrclk)
++ return -EINVAL;
++ aifb |= WM8580_AIF_LRP;
++ break;
++
++ default:
++ return -EINVAL;
++ }
++
++ wm8580_write(codec, WM8580_PAIF1 + codec_dai->id, aifa);
++ wm8580_write(codec, WM8580_PAIF3 + codec_dai->id, aifb);
++
++ return 0;
++}
++
++static int wm8580_set_dai_clkdiv(struct snd_soc_codec_dai *codec_dai,
++ int div_id, int div)
++{
++ struct snd_soc_codec *codec = codec_dai->codec;
++ unsigned int reg;
++
++ switch (div_id) {
++ case WM8580_MCLK:
++ reg = wm8580_read(codec, WM8580_PLLB4);
++ reg &= ~WM8580_PLLB4_MCLKOUTSRC_MASK;
++
++ switch (div) {
++ case WM8580_CLKSRC_MCLK:
++ /* Input */
++ break;
++
++ case WM8580_CLKSRC_PLLA:
++ reg |= WM8580_PLLB4_MCLKOUTSRC_PLLA;
++ break;
++ case WM8580_CLKSRC_PLLB:
++ reg |= WM8580_PLLB4_MCLKOUTSRC_PLLB;
++ break;
++
++ case WM8580_CLKSRC_OSC:
++ reg |= WM8580_PLLB4_MCLKOUTSRC_OSC;
++ break;
++
++ default:
++ return -EINVAL;
++ }
++ wm8580_write(codec, WM8580_PLLB4, reg);
++ break;
++
++ case WM8580_DAC_CLKSEL:
++ reg = wm8580_read(codec, WM8580_CLKSEL);
++ reg &= ~WM8580_CLKSEL_DAC_CLKSEL_MASK;
++
++ switch (div) {
++ case WM8580_CLKSRC_MCLK:
++ break;
++
++ case WM8580_CLKSRC_PLLA:
++ reg |= WM8580_CLKSEL_DAC_CLKSEL_PLLA;
++ break;
++
++ case WM8580_CLKSRC_PLLB:
++ reg |= WM8580_CLKSEL_DAC_CLKSEL_PLLB;
++ break;
++
++ default:
++ return -EINVAL;
++ }
++ wm8580_write(codec, WM8580_CLKSEL, reg);
++ break;
++
++ case WM8580_CLKOUTSRC:
++ reg = wm8580_read(codec, WM8580_PLLB4);
++ reg &= ~WM8580_PLLB4_CLKOUTSRC_MASK;
++
++ switch (div) {
++ case WM8580_CLKSRC_NONE:
++ break;
++
++ case WM8580_CLKSRC_PLLA:
++ reg |= WM8580_PLLB4_CLKOUTSRC_PLLACLK;
++ break;
++
++ case WM8580_CLKSRC_PLLB:
++ reg |= WM8580_PLLB4_CLKOUTSRC_PLLBCLK;
++ break;
++
++ case WM8580_CLKSRC_OSC:
++ reg |= WM8580_PLLB4_CLKOUTSRC_OSCCLK;
++ break;
++
++ default:
++ return -EINVAL;
++ }
++ wm8580_write(codec, WM8580_PLLB4, reg);
++ break;
++
++ default:
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++static int wm8580_dapm_event(struct snd_soc_codec *codec, int event)
++{
++ u16 reg;
++ switch (event) {
++ case SNDRV_CTL_POWER_D0: /* full On */
++ case SNDRV_CTL_POWER_D1: /* partial On */
++ case SNDRV_CTL_POWER_D2: /* partial On */
++ break;
++ case SNDRV_CTL_POWER_D3hot: /* Off, with power */
++ break;
++ case SNDRV_CTL_POWER_D3cold: /* Off, without power */
++ reg = wm8580_read(codec, WM8580_PWRDN1);
++ wm8580_write(codec, WM8580_PWRDN1, reg | WM8580_PWRDN1_PWDN);
++ break;
++ }
++ codec->dapm_state = event;
++ return 0;
++}
++
++#define WM8580_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE |\
++ SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE)
++
++struct snd_soc_codec_dai wm8580_dai[] = {
++ {
++ .name = "WM8580 PAIFRX",
++ .id = 0,
++ .playback = {
++ .stream_name = "Playback",
++ .channels_min = 1,
++ .channels_max = 6,
++ .rates = SNDRV_PCM_RATE_8000_192000,
++ .formats = WM8580_FORMATS,
++ },
++ .capture = {
++ .stream_name = "Capture",
++ .channels_min = 2,
++ .channels_max = 2,
++ .rates = SNDRV_PCM_RATE_8000_192000,
++ .formats = WM8580_FORMATS,
++ },
++ .ops = {
++ .hw_params = wm8580_paif_hw_params,
++ },
++ .dai_ops = {
++ .set_fmt = wm8580_set_paif_dai_fmt,
++ .set_clkdiv = wm8580_set_dai_clkdiv,
++ .set_pll = wm8580_set_dai_pll,
++ },
++ },
++#if 0
++ {
++ .name = "WM8580 PAIFTX",
++ .id = 1,
++ .capture = {
++ .stream_name = "Capture",
++ .channels_min = 2,
++ .channels_max = 2,
++ .rates = SNDRV_PCM_RATE_8000_192000,
++ .formats = WM8580_FORMATS,
++ },
++ .ops = {
++ .hw_params = wm8580_paif_hw_params,
++ },
++ .dai_ops = {
++ .set_fmt = wm8580_set_paif_dai_fmt,
++ .set_clkdiv = wm8580_set_dai_clkdiv,
++ .set_pll = wm8580_set_dai_pll,
++ },
++ },
++#endif
++};
++EXPORT_SYMBOL_GPL(wm8580_dai);
++
++/*
++ * initialise the WM8580 driver
++ * register the mixer and dsp interfaces with the kernel
++ */
++static int wm8580_init(struct snd_soc_device *socdev)
++{
++ struct snd_soc_codec *codec = socdev->codec;
++ int ret = 0;
++ int i;
++
++ codec->name = "WM8580";
++ codec->owner = THIS_MODULE;
++ codec->read = wm8580_read_reg_cache;
++ codec->write = wm8580_write;
++ codec->dapm_event = wm8580_dapm_event;
++ codec->dai = wm8580_dai;
++ codec->num_dai = ARRAY_SIZE(wm8580_dai);
++ codec->reg_cache_size = ARRAY_SIZE(wm8580_reg);
++ codec->reg_cache = kmemdup(wm8580_reg, sizeof(wm8580_reg),
++ GFP_KERNEL);
++
++ if (codec->reg_cache == NULL)
++ return -ENOMEM;
++
++ /* Get the codec into a known state */
++ wm8580_write(codec, WM8580_RESET, 0);
++
++ /* Power up and get individual control of the DACs */
++ wm8580_write(codec, WM8580_PWRDN1, wm8580_read(codec, WM8580_PWRDN1) &
++ ~(WM8580_PWRDN1_PWDN | WM8580_PWRDN1_ALLDACPD));
++
++ /* Make VMID high impedence */
++ wm8580_write(codec, WM8580_ADC_CONTROL1,
++ wm8580_read(codec, WM8580_ADC_CONTROL1) & ~0x100);
++
++ /* register pcms */
++ ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1,
++ SNDRV_DEFAULT_STR1);
++ if (ret < 0) {
++ printk(KERN_ERR "wm8580: failed to create pcms\n");
++ goto pcm_err;
++ }
++
++/* Added : For Capture Path..*/
++ u16 reg;
++/* Line-In */
++ wm8580_write(codec, WM8580_ADC_CONTROL1, wm8580_read(codec,WM8580_ADC_CONTROL1) | 0x60);
++ wm8580_write(codec, WM8580_SAIF2, wm8580_read(codec,WM8580_SAIF2) & (0<<3) | 0xc2);
++
++ wm8580_add_controls(codec);
++ wm8580_add_widgets(codec);
++
++ ret = snd_soc_register_card(socdev);
++ if (ret < 0) {
++ printk(KERN_ERR "wm8580: failed to register card\n");
++ goto card_err;
++ }
++ return ret;
++
++card_err:
++ snd_soc_free_pcms(socdev);
++ snd_soc_dapm_free(socdev);
++pcm_err:
++ kfree(codec->reg_cache);
++ return ret;
++}
++
++/* If the i2c layer weren't so broken, we could pass this kind of data
++ around */
++static struct snd_soc_device *wm8580_socdev;
++
++#if defined (CONFIG_I2C) || defined (CONFIG_I2C_MODULE)
++
++/*
++ * WM8580 2 wire address is determined by GPIO5
++ * state during powerup.
++ * low = 0x1a
++ * high = 0x1b
++ */
++static unsigned short normal_i2c[] = { 0, I2C_CLIENT_END };
++
++/* Magic definition of all other variables and things */
++I2C_CLIENT_INSMOD;
++
++static struct i2c_driver wm8580_i2c_driver;
++static struct i2c_client client_template;
++
++static int wm8580_codec_probe(struct i2c_adapter *adap, int addr, int kind)
++{
++ struct snd_soc_device *socdev = wm8580_socdev;
++ struct wm8580_setup_data *setup = socdev->codec_data;
++ struct snd_soc_codec *codec = socdev->codec;
++ struct i2c_client *i2c;
++ int ret;
++
++ if (addr != setup->i2c_address)
++ return -ENODEV;
++
++ client_template.adapter = adap;
++ client_template.addr = addr;
++
++ i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL);
++ if (i2c == NULL){
++ kfree(codec);
++ return -ENOMEM;
++ }
++ i2c_set_clientdata(i2c, codec);
++ codec->control_data = i2c;
++
++ ret = i2c_attach_client(i2c);
++ if (ret < 0) {
++ err("failed to attach codec at addr %x\n", addr);
++ goto err;
++ }
++
++ ret = wm8580_init(socdev);
++ if (ret < 0) {
++ err("failed to initialise WM8580\n");
++ goto err;
++ }
++
++ return ret;
++
++err:
++ kfree(codec);
++ kfree(i2c);
++ return ret;
++}
++
++static int wm8580_i2c_detach(struct i2c_client *client)
++{
++ struct snd_soc_codec *codec = i2c_get_clientdata(client);
++ i2c_detach_client(client);
++ kfree(codec->reg_cache);
++ kfree(client);
++ return 0;
++}
++
++static int wm8580_i2c_attach(struct i2c_adapter *adap)
++{
++ return i2c_probe(adap, &addr_data, wm8580_codec_probe);
++}
++
++/* corgi i2c codec control layer */
++static struct i2c_driver wm8580_i2c_driver = {
++ .driver = {
++ .name = "WM8580 I2C Codec",
++ .owner = THIS_MODULE,
++ },
++ .id = I2C_DRIVERID_WM8580,
++ .attach_adapter = wm8580_i2c_attach,
++ .detach_client = wm8580_i2c_detach,
++ .command = NULL,
++};
++
++static struct i2c_client client_template = {
++ .name = "WM8580",
++ .driver = &wm8580_i2c_driver,
++};
++#endif
++
++static int wm8580_probe(struct platform_device *pdev)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct wm8580_setup_data *setup;
++ struct snd_soc_codec *codec;
++ struct wm8580_priv *wm8580;
++ int ret = 0;
++
++ info("WM8580 Audio Codec %s\n", WM8580_VERSION);
++
++ setup = socdev->codec_data;
++ codec = kzalloc(sizeof(struct snd_soc_codec), GFP_KERNEL);
++ if (codec == NULL)
++ return -ENOMEM;
++
++ wm8580 = kzalloc(sizeof(struct wm8580_priv), GFP_KERNEL);
++ if (wm8580 == NULL) {
++ kfree(codec);
++ return -ENOMEM;
++ }
++
++ codec->private_data = wm8580;
++ socdev->codec = codec;
++ mutex_init(&codec->mutex);
++ INIT_LIST_HEAD(&codec->dapm_widgets);
++ INIT_LIST_HEAD(&codec->dapm_paths);
++ wm8580_socdev = socdev;
++
++#if defined (CONFIG_I2C) || defined (CONFIG_I2C_MODULE)
++ if (setup->i2c_address) {
++ normal_i2c[0] = setup->i2c_address;
++ codec->hw_write = (hw_write_t)i2c_master_send;
++ ret = i2c_add_driver(&wm8580_i2c_driver);
++ if (ret != 0)
++ printk(KERN_ERR "can't add i2c driver");
++ }
++#else
++ /* Add other interfaces here */
++#endif
++ return ret;
++}
++
++/* power down chip */
++static int wm8580_remove(struct platform_device *pdev)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct snd_soc_codec *codec = socdev->codec;
++
++ if (codec->control_data)
++ wm8580_dapm_event(codec, SNDRV_CTL_POWER_D3cold);
++ snd_soc_free_pcms(socdev);
++ snd_soc_dapm_free(socdev);
++#if defined (CONFIG_I2C) || defined (CONFIG_I2C_MODULE)
++ i2c_del_driver(&wm8580_i2c_driver);
++#endif
++ kfree(codec->private_data);
++ kfree(codec);
++
++ return 0;
++}
++
++struct snd_soc_codec_device soc_codec_dev_wm8580 = {
++ .probe = wm8580_probe,
++ .remove = wm8580_remove,
++};
++
++EXPORT_SYMBOL_GPL(soc_codec_dev_wm8580);
++
++MODULE_DESCRIPTION("ASoC WM8580 driver");
++MODULE_AUTHOR("Mark Brown <broonie@opensource.wolfsonmicro.com>");
++MODULE_LICENSE("GPL");
+diff --git a/sound/soc/codecs/wm8580.h b/sound/soc/codecs/wm8580.h
+new file mode 100644
+index 0000000..0f1aa77
+--- /dev/null
++++ b/sound/soc/codecs/wm8580.h
+@@ -0,0 +1,165 @@
++/*
++ * wm8580.h -- audio driver for WM8580
++ *
++ * Copyright 2008 Samsung Electronics.
++ * Author: Ryu Euiyoul
++ * ryu.real@gmail.com
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ */
++
++#ifndef _WM8580_H
++#define _WM8580_H
++
++#define WM8580_PLLA 1
++#define WM8580_PLLB 2
++
++#define WM8580_MCLK 1
++#define WM8580_DAC_CLKSEL 2
++#define WM8580_CLKOUTSRC 3
++
++#define WM8580_CLKSRC_MCLK 1
++#define WM8580_CLKSRC_PLLA 2
++#define WM8580_CLKSRC_PLLB 3
++#define WM8580_CLKSRC_OSC 4
++#define WM8580_CLKSRC_NONE 5
++
++/* WM8580 register space */
++#define WM8580_PLLA1 0x00
++#define WM8580_PLLA2 0x01
++#define WM8580_PLLA3 0x02
++#define WM8580_PLLA4 0x03
++#define WM8580_PLLB1 0x04
++#define WM8580_PLLB2 0x05
++#define WM8580_PLLB3 0x06
++#define WM8580_PLLB4 0x07
++#define WM8580_CLKSEL 0x08
++#define WM8580_PAIF1 0x09
++#define WM8580_PAIF2 0x0A
++#define WM8580_SAIF1 0x0B
++#define WM8580_PAIF3 0x0C
++#define WM8580_PAIF4 0x0D
++#define WM8580_SAIF2 0x0E
++#define WM8580_DAC_CONTROL1 0x0F
++#define WM8580_DAC_CONTROL2 0x10
++#define WM8580_DAC_CONTROL3 0x11
++#define WM8580_DAC_CONTROL4 0x12
++#define WM8580_DAC_CONTROL5 0x13
++#define WM8580_DIGITAL_ATTENUATION_DACL1 0x14
++#define WM8580_DIGITAL_ATTENUATION_DACR1 0x15
++#define WM8580_DIGITAL_ATTENUATION_DACL2 0x16
++#define WM8580_DIGITAL_ATTENUATION_DACR2 0x17
++#define WM8580_DIGITAL_ATTENUATION_DACL3 0x18
++#define WM8580_DIGITAL_ATTENUATION_DACR3 0x19
++#define WM8580_MASTER_DIGITAL_ATTENUATION 0x1C
++#define WM8580_ADC_CONTROL1 0x1D
++#define WM8580_SPDTXCHAN0 0x1E
++#define WM8580_SPDTXCHAN1 0x1F
++#define WM8580_SPDTXCHAN2 0x20
++#define WM8580_SPDTXCHAN3 0x21
++#define WM8580_SPDTXCHAN4 0x22
++#define WM8580_SPDTXCHAN5 0x23
++#define WM8580_SPDMODE 0x24
++#define WM8580_INTMASK 0x25
++#define WM8580_GPO1 0x26
++#define WM8580_GPO2 0x27
++#define WM8580_GPO3 0x28
++#define WM8580_GPO4 0x29
++#define WM8580_GPO5 0x2A
++#define WM8580_INTSTAT 0x2B
++#define WM8580_SPDRXCHAN1 0x2C
++#define WM8580_SPDRXCHAN2 0x2D
++#define WM8580_SPDRXCHAN3 0x2E
++#define WM8580_SPDRXCHAN4 0x2F
++#define WM8580_SPDRXCHAN5 0x30
++#define WM8580_SPDSTAT 0x31
++#define WM8580_PWRDN1 0x32
++#define WM8580_PWRDN2 0x33
++#define WM8580_READBACK 0x34
++#define WM8580_RESET 0x35
++
++/* PLLB4 (register 7h) */
++#define WM8580_PLLB4_MCLKOUTSRC_MASK 0x60
++#define WM8580_PLLB4_MCLKOUTSRC_PLLA 0x20
++#define WM8580_PLLB4_MCLKOUTSRC_PLLB 0x40
++#define WM8580_PLLB4_MCLKOUTSRC_OSC 0x60
++
++#define WM8580_PLLB4_CLKOUTSRC_MASK 0x180
++#define WM8580_PLLB4_CLKOUTSRC_PLLACLK 0x080
++#define WM8580_PLLB4_CLKOUTSRC_PLLBCLK 0x100
++#define WM8580_PLLB4_CLKOUTSRC_OSCCLK 0x180
++
++/* CLKSEL (register 8h) */
++#define WM8580_CLKSEL_DAC_CLKSEL_MASK 0x03
++#define WM8580_CLKSEL_DAC_CLKSEL_PLLA 0x01
++#define WM8580_CLKSEL_DAC_CLKSEL_PLLB 0x02
++
++/* AIF control 1 (registers 9h-bh) */
++#define WM8580_AIF_RATE_MASK 0x7
++#define WM8580_AIF_RATE_128 0x0
++#define WM8580_AIF_RATE_192 0x1
++#define WM8580_AIF_RATE_256 0x2
++#define WM8580_AIF_RATE_384 0x3
++#define WM8580_AIF_RATE_512 0x4
++#define WM8580_AIF_RATE_768 0x5
++#define WM8580_AIF_RATE_1152 0x6
++
++#define WM8580_AIF_BCLKSEL_MASK 0x18
++#define WM8580_AIF_BCLKSEL_64 0x00
++#define WM8580_AIF_BCLKSEL_128 0x08
++#define WM8580_AIF_BCLKSEL_256 0x10
++#define WM8580_AIF_BCLKSEL_SYSCLK 0x18
++
++#define WM8580_AIF_MS 0x20
++
++#define WM8580_AIF_CLKSRC_MASK 0xc0
++#define WM8580_AIF_CLKSRC_PLLA 0x40
++#define WM8580_AIF_CLKSRC_PLLB 0x40
++#define WM8580_AIF_CLKSRC_MCLK 0xc0
++
++/* AIF control 2 (registers ch-eh) */
++#define WM8580_AIF_FMT_MASK 0x03
++#define WM8580_AIF_FMT_RIGHTJ 0x00
++#define WM8580_AIF_FMT_LEFTJ 0x01
++#define WM8580_AIF_FMT_I2S 0x02
++#define WM8580_AIF_FMT_DSP 0x03
++
++#define WM8580_AIF_LENGTH_MASK 0x0c
++#define WM8580_AIF_LENGTH_16 0x00
++#define WM8580_AIF_LENGTH_20 0x04
++#define WM8580_AIF_LENGTH_24 0x08
++#define WM8580_AIF_LENGTH_32 0x0c
++
++#define WM8580_AIF_LRP 0x10
++#define WM8580_AIF_BCP 0x20
++
++/* Powerdown Register 1 (register 32h) */
++#define WM8580_PWRDN1_PWDN 0x001
++#define WM8580_PWRDN1_ALLDACPD 0x040
++
++/* Powerdown Register 2 (register 33h) */
++#define WM8580_PWRDN2_OSSCPD 0x001
++#define WM8580_PWRDN2_PLLAPD 0x002
++#define WM8580_PWRDN2_PLLBPD 0x004
++#define WM8580_PWRDN2_SPDIFPD 0x008
++#define WM8580_PWRDN2_SPDIFTXD 0x010
++#define WM8580_PWRDN2_SPDIFRXD 0x020
++
++extern struct snd_soc_codec_device soc_codec_dev_wm8580;
++
++struct wm8580_setup_data {
++ unsigned short i2c_address;
++};
++
++#define WM8580_DAI_PAIFRX 0
++#define WM8580_DAI_PAIFTX 1
++
++extern struct snd_soc_codec_dai wm8580_dai[];
++extern struct snd_soc_codec_device soc_codec_dev_wm8580;
++
++#endif
++
+diff --git a/sound/soc/codecs/wm8753.c b/sound/soc/codecs/wm8753.c
+index efced93..a817581 100644
+--- a/sound/soc/codecs/wm8753.c
++++ b/sound/soc/codecs/wm8753.c
+@@ -1604,6 +1604,46 @@ static int wm8753_init(struct snd_soc_device *socdev)
+ reg = wm8753_read_reg_cache(codec, WM8753_RINVOL);
+ wm8753_write(codec, WM8753_RINVOL, reg | 0x0100);
+
++ /* Right Mixer Right Playback Swit on*/
++ reg = wm8753_read_reg_cache(codec, WM8753_ROUTM1);
++ wm8753_write(codec, WM8753_ROUTM1, reg | 0x0100);
++
++ /* Left Mixer Left Playback Swit on*/
++ reg = wm8753_read_reg_cache(codec, WM8753_LOUTM1);
++ wm8753_write(codec, WM8753_LOUTM1, reg | 0x0100);
++
++ /* Start Line Record Setting */
++ wm8753_write(codec, WM8753_IOCTL, 0x3b);
++
++ wm8753_write(codec, WM8753_ADC, 0x80);
++
++#ifdef CONFIG_SOUND_WM8753_INPUT_STREAM_LINE_IN
++ // ADC Input Select
++ wm8753_write(codec, WM8753_ADCIN, 0x35);
++ // ALC Select
++ wm8753_write(codec, WM8753_INCTL1, 0x00);
++ // ALC Select
++ wm8753_write(codec, WM8753_INCTL2, 0x08);
++ // Left Input Control
++ wm8753_write(codec, WM8753_LINVOL, 0x13f);
++ // Right Input Control
++ wm8753_write(codec, WM8753_MICBIAS, 0x100);
++ // Record Mixer 1
++ wm8753_write(codec, WM8753_RECMIX1, 0x000);
++ // Record Mixer 2
++ wm8753_write(codec, WM8753_RECMIX2, 0x00c);
++ // Mono out Mixser
++ wm8753_write(codec, WM8753_MOUTM1, 0x00);
++
++#elif CONFIG_SOUND_WM8753_INPUT_STREAM_MIC_IN
++ wm8753_write(codec, WM8753_ADCIN, 0x3c);
++ wm8753_write(codec, WM8753_INCTL1, 0x60);
++ wm8753_write(codec, WM8753_INCTL2, 0x02);
++ wm8753_write(codec, WM8753_LINVOL, 0x13f);
++ wm8753_write(codec, WM8753_MICBIAS, 0x100);
++#endif
++ /* End Line Record Setting */
++
+ wm8753_add_controls(codec);
+ wm8753_add_widgets(codec);
+ ret = snd_soc_register_card(socdev);
+diff --git a/sound/soc/codecs/wm8990.c b/sound/soc/codecs/wm8990.c
+new file mode 100644
+index 0000000..f088329
+--- /dev/null
++++ b/sound/soc/codecs/wm8990.c
+@@ -0,0 +1,1657 @@
++/*
++ * wm8990.c -- WM8990 ALSA Soc Audio driver
++ *
++ * Copyright 2008 Wolfson Microelectronics PLC.
++ * Author: Liam Girdwood
++ * lg@opensource.wolfsonmicro.com or linux@wolfsonmicro.com
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * Revision history
++ * 6th Mar 2008 Initial version.
++ */
++
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/version.h>
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/delay.h>
++#include <linux/pm.h>
++#include <linux/i2c.h>
++#include <linux/platform_device.h>
++#include <sound/driver.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/pcm_params.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++#include <sound/initval.h>
++#include <sound/tlv.h>
++#include <asm/div64.h>
++
++#include "wm8990.h"
++
++#define AUDIO_NAME "wm8990"
++#define WM8990_VERSION "0.1"
++
++/*
++ * Debug
++ */
++
++#define WM8753_DEBUG 0
++
++#ifdef WM8753_DEBUG
++#define dbg(format, arg...) \
++ printk(KERN_DEBUG AUDIO_NAME ": " format "\n" , ## arg)
++#else
++#define dbg(format, arg...) do {} while (0)
++#endif
++#define err(format, arg...) \
++ printk(KERN_ERR AUDIO_NAME ": " format "\n" , ## arg)
++#define info(format, arg...) \
++ printk(KERN_INFO AUDIO_NAME ": " format "\n" , ## arg)
++#define warn(format, arg...) \
++ printk(KERN_WARNING AUDIO_NAME ": " format "\n" , ## arg)
++
++/* codec private data */
++struct wm8990_priv {
++ unsigned int sysclk;
++ unsigned int pcmclk;
++};
++
++/*
++ * wm8990 register cache
++ * We can't read the WM8990 register space when we
++ * are using 2 wire for device control, so we cache them instead.
++ */
++static const u16 wm8990_reg[] = WM8990_REGISTER_DEFAULTS;
++
++/*
++ * read wm8990 register cache
++ */
++static inline unsigned int wm8990_read_reg_cache(struct snd_soc_codec *codec,
++ unsigned int reg)
++{
++ u16 *cache = codec->reg_cache;
++ if (reg < 1 || reg > (ARRAY_SIZE(wm8990_reg) + 1))
++ return -1;
++ return cache[reg - 1];
++}
++
++/*
++ * write wm8990 register cache
++ */
++static inline void wm8990_write_reg_cache(struct snd_soc_codec *codec,
++ unsigned int reg, unsigned int value)
++{
++ u16 *cache = codec->reg_cache;
++ if (reg < 1 || reg > 0x3f)
++ return;
++ cache[reg - 1] = value;
++}
++
++/*
++ * write to the wm8990 register space
++ */
++static int wm8990_write(struct snd_soc_codec *codec, unsigned int reg,
++ unsigned int value)
++{
++ u8 data[3];
++
++ data[0] = reg & 0xFF;
++ data[1] = (value >> 8) & 0xFF;
++ data[2] = value & 0xFF;
++
++ wm8990_write_reg_cache (codec, reg, value);
++ if (codec->hw_write(codec->control_data, data, 3) == 2)
++ return 0;
++ else
++ return -EIO;
++}
++
++#define wm8990_reset(c) wm8990_write(c, WM8990_RESET, 0)
++
++static const unsigned int rec_mix_tlv[] = {
++ TLV_DB_RANGE_HEAD(1),
++ 0, 7, TLV_DB_LINEAR_ITEM(-1500, 600),
++};
++
++static const unsigned int in_pga_tlv[] = {
++ TLV_DB_RANGE_HEAD(1),
++ 0, 0x1F, TLV_DB_LINEAR_ITEM(-1650, 3000),
++};
++
++static const unsigned int out_mix_tlv[] = {
++ TLV_DB_RANGE_HEAD(1),
++ 0, 7, TLV_DB_LINEAR_ITEM(0, -2100),
++};
++
++static const unsigned int out_pga_tlv[] = {
++ TLV_DB_RANGE_HEAD(1),
++ 0, 127, TLV_DB_LINEAR_ITEM(-7300, 600),
++};
++
++static const unsigned int out_omix_tlv[] = {
++ TLV_DB_RANGE_HEAD(1),
++ 0, 7, TLV_DB_LINEAR_ITEM(-600, 0),
++};
++
++static const unsigned int out_dac_tlv[] = {
++ TLV_DB_RANGE_HEAD(1),
++ 0, 255, TLV_DB_LINEAR_ITEM(-7163, 0),
++};
++
++static const unsigned int in_adc_tlv[] = {
++ TLV_DB_RANGE_HEAD(1),
++ 0, 255, TLV_DB_LINEAR_ITEM(-7163, 1763),
++};
++
++static const unsigned int out_sidetone_tlv[] = {
++ TLV_DB_RANGE_HEAD(1),
++ 0, 31, TLV_DB_LINEAR_ITEM(-3600, 0),
++};
++
++static int wm899x_outpga_put_volsw_vu(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
++ int reg = kcontrol->private_value & 0xff;
++ int ret;
++ u16 val;
++
++ ret = snd_soc_put_volsw(kcontrol, ucontrol);
++ if (ret < 0)
++ return ret;
++
++ /* now hit the volume update bits (always bit 8) */
++ val = wm8990_read_reg_cache(codec, reg);
++ return wm8990_write(codec, reg, val | 0x0100);
++}
++
++#define SOC_WM899X_OUTPGA_SINGLE_R_TLV(xname, reg, shift, max, invert, tlv_array) \
++{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname), \
++ .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ | SNDRV_CTL_ELEM_ACCESS_READWRITE,\
++ .tlv.p = (tlv_array), \
++ .info = snd_soc_info_volsw, \
++ .get = snd_soc_get_volsw, .put = wm899x_outpga_put_volsw_vu, \
++ .private_value = SOC_SINGLE_VALUE(reg, shift, max, invert) }
++
++
++static const char *wm8990_digital_sidetone[] =
++ {"None", "Left ADC", "Right ADC", "Reserved"};
++
++static const struct soc_enum wm8990_left_digital_sidetone_enum =
++SOC_ENUM_SINGLE(WM8990_DIGITAL_SIDE_TONE,
++ WM8990_ADC_TO_DACL_SHIFT,
++ WM8990_ADC_TO_DACL_MASK,
++ wm8990_digital_sidetone);
++
++static const struct soc_enum wm8990_right_digital_sidetone_enum =
++SOC_ENUM_SINGLE(WM8990_DIGITAL_SIDE_TONE,
++ WM8990_ADC_TO_DACR_SHIFT,
++ WM8990_ADC_TO_DACR_MASK,
++ wm8990_digital_sidetone);
++
++static const char *wm8990_adcmode[] =
++ {"Hi-fi mode", "Voice mode 1", "Voice mode 2", "Voice mode 3"};
++
++static const struct soc_enum wm8990_right_adcmode_enum =
++SOC_ENUM_SINGLE(WM8990_ADC_CTRL,
++ WM8990_ADC_HPF_CUT_SHIFT,
++ WM8990_ADC_HPF_CUT_MASK,
++ wm8990_adcmode);
++
++static const struct snd_kcontrol_new wm8990_snd_controls[] = {
++/* INMIXL */
++SOC_SINGLE("LIN12 PGA Boost", WM8990_INPUT_MIXER3, WM8990_L12MNBST_BIT, 1, 0),
++SOC_SINGLE("LIN34 PGA Boost", WM8990_INPUT_MIXER3, WM8990_L34MNBST_BIT, 1, 0),
++/* INMIXR */
++SOC_SINGLE("RIN12 PGA Boost", WM8990_INPUT_MIXER3, WM8990_R12MNBST_BIT, 1, 0),
++SOC_SINGLE("RIN34 PGA Boost", WM8990_INPUT_MIXER3, WM8990_R34MNBST_BIT, 1, 0),
++
++/* LOMIX */
++SOC_SINGLE_TLV("LOMIX LIN3 Bypass Volume", WM8990_OUTPUT_MIXER3,
++ WM8990_LLI3LOVOL_SHIFT, WM8990_LLI3LOVOL_MASK, 1, out_mix_tlv),
++SOC_SINGLE_TLV("LOMIX RIN12 PGA Bypass Volume", WM8990_OUTPUT_MIXER3,
++ WM8990_LR12LOVOL_SHIFT, WM8990_LR12LOVOL_MASK, 1, out_mix_tlv),
++SOC_SINGLE_TLV("LOMIX LIN12 PGA Bypass Volume", WM8990_OUTPUT_MIXER3,
++ WM8990_LL12LOVOL_SHIFT, WM8990_LL12LOVOL_MASK, 1, out_mix_tlv),
++SOC_SINGLE_TLV("LOMIX RIN3 Bypass Volume", WM8990_OUTPUT_MIXER5,
++ WM8990_LRI3LOVOL_SHIFT, WM8990_LRI3LOVOL_MASK, 1, out_mix_tlv),
++SOC_SINGLE_TLV("LOMIX AINRMUX Bypass Volume", WM8990_OUTPUT_MIXER5,
++ WM8990_LRBLOVOL_SHIFT, WM8990_LRBLOVOL_MASK, 1, out_mix_tlv),
++SOC_SINGLE_TLV("LOMIX AINLMUX Bypass Volume", WM8990_OUTPUT_MIXER5,
++ WM8990_LRBLOVOL_SHIFT, WM8990_LRBLOVOL_MASK, 1, out_mix_tlv),
++
++/* ROMIX */
++SOC_SINGLE_TLV("ROMIX RIN3 Bypass Volume", WM8990_OUTPUT_MIXER4,
++ WM8990_RRI3ROVOL_SHIFT, WM8990_RRI3ROVOL_MASK, 1, out_mix_tlv),
++SOC_SINGLE_TLV("ROMIX LIN12 PGA Bypass Volume", WM8990_OUTPUT_MIXER4,
++ WM8990_RL12ROVOL_SHIFT, WM8990_RL12ROVOL_MASK, 1, out_mix_tlv),
++SOC_SINGLE_TLV("ROMIX RIN12 PGA Bypass Volume", WM8990_OUTPUT_MIXER4,
++ WM8990_RR12ROVOL_SHIFT, WM8990_RR12ROVOL_MASK, 1, out_mix_tlv),
++SOC_SINGLE_TLV("ROMIX LIN3 Bypass Volume", WM8990_OUTPUT_MIXER6,
++ WM8990_RLI3ROVOL_SHIFT, WM8990_RLI3ROVOL_MASK, 1, out_mix_tlv),
++SOC_SINGLE_TLV("ROMIX AINLMUX Bypass Volume", WM8990_OUTPUT_MIXER6,
++ WM8990_RLBROVOL_SHIFT, WM8990_RLBROVOL_MASK, 1, out_mix_tlv),
++SOC_SINGLE_TLV("ROMIX AINRMUX Bypass Volume", WM8990_OUTPUT_MIXER6,
++ WM8990_RRBROVOL_SHIFT, WM8990_RRBROVOL_MASK, 1, out_mix_tlv),
++
++/* LOUT */
++SOC_WM899X_OUTPGA_SINGLE_R_TLV("LOUT Volume", WM8990_LEFT_OUTPUT_VOLUME,
++ WM8990_LOUTVOL_SHIFT, WM8990_LOUTVOL_MASK, 0, out_pga_tlv),
++SOC_SINGLE("LOUT ZC", WM8990_LEFT_OUTPUT_VOLUME, WM8990_LOZC_BIT, 1, 0),
++
++/* ROUT */
++SOC_WM899X_OUTPGA_SINGLE_R_TLV("ROUT Volume", WM8990_RIGHT_OUTPUT_VOLUME,
++ WM8990_ROUTVOL_SHIFT, WM8990_ROUTVOL_MASK, 0, out_pga_tlv),
++SOC_SINGLE("ROUT ZC", WM8990_RIGHT_OUTPUT_VOLUME, WM8990_ROZC_BIT, 1, 0),
++
++/* LOPGA */
++SOC_WM899X_OUTPGA_SINGLE_R_TLV("LOPGA Volume", WM8990_LEFT_OPGA_VOLUME,
++ WM8990_LOPGAVOL_SHIFT, WM8990_LOPGAVOL_MASK, 0, out_pga_tlv),
++SOC_SINGLE("LOPGA ZC Switch", WM8990_LEFT_OPGA_VOLUME,
++ WM8990_LOPGAZC_BIT, 1, 0),
++
++/* ROPGA */
++SOC_WM899X_OUTPGA_SINGLE_R_TLV("ROPGA Volume", WM8990_RIGHT_OPGA_VOLUME,
++ WM8990_ROPGAVOL_SHIFT, WM8990_ROPGAVOL_MASK, 0, out_pga_tlv),
++SOC_SINGLE("ROPGA ZC Switch", WM8990_RIGHT_OPGA_VOLUME,
++ WM8990_ROPGAZC_BIT, 1, 0),
++
++SOC_SINGLE("LON Mute Switch", WM8990_LINE_OUTPUTS_VOLUME,
++ WM8990_LONMUTE_BIT, 1, 0),
++SOC_SINGLE("LOP Mute Switch", WM8990_LINE_OUTPUTS_VOLUME,
++ WM8990_LOPMUTE_BIT, 1, 0),
++SOC_SINGLE("LOP Attenuation Switch", WM8990_LINE_OUTPUTS_VOLUME,
++ WM8990_LOATTN_BIT, 1, 0),
++SOC_SINGLE("RON Mute Switch", WM8990_LINE_OUTPUTS_VOLUME,
++ WM8990_RONMUTE_BIT, 1, 0),
++SOC_SINGLE("ROP Mute Switch", WM8990_LINE_OUTPUTS_VOLUME,
++ WM8990_ROPMUTE_BIT, 1, 0),
++SOC_SINGLE("ROP Attenuation Switch", WM8990_LINE_OUTPUTS_VOLUME,
++ WM8990_ROATTN_BIT, 1, 0),
++
++SOC_SINGLE("OUT3 Mute Switch", WM8990_OUT3_4_VOLUME,
++ WM8990_OUT3MUTE_BIT, 1, 0),
++SOC_SINGLE("OUT3 Attenuation Switch", WM8990_OUT3_4_VOLUME,
++ WM8990_OUT3ATTN_BIT, 1, 0),
++
++SOC_SINGLE("OUT4 Mute Switch", WM8990_OUT3_4_VOLUME,
++ WM8990_OUT4MUTE_BIT, 1, 0),
++SOC_SINGLE("OUT4 Attenuation Switch", WM8990_OUT3_4_VOLUME,
++ WM8990_OUT4ATTN_BIT, 1, 0),
++
++SOC_SINGLE("Speaker Mode Switch", WM8990_CLASSD1,
++ WM8990_CDMODE_BIT, 1, 0),
++
++SOC_SINGLE("Speaker Output Attenuation Volume", WM8990_SPEAKER_VOLUME,
++ WM8990_SPKVOL_SHIFT, WM8990_SPKVOL_MASK, 0),
++SOC_SINGLE("Speaker DC Boost Volume", WM8990_CLASSD3,
++ WM8990_DCGAIN_SHIFT, WM8990_DCGAIN_MASK, 0),
++SOC_SINGLE("Speaker AC Boost Volume", WM8990_CLASSD3,
++ WM8990_ACGAIN_SHIFT, WM8990_ACGAIN_MASK, 0),
++
++SOC_WM899X_OUTPGA_SINGLE_R_TLV("Left DAC Digital Volume",
++ WM8990_LEFT_DAC_DIGITAL_VOLUME,
++ WM8990_DACL_VOL_SHIFT,
++ WM8990_DACL_VOL_MASK,
++ 0,
++ out_dac_tlv),
++
++SOC_WM899X_OUTPGA_SINGLE_R_TLV("Right DAC Digital Volume",
++ WM8990_RIGHT_DAC_DIGITAL_VOLUME,
++ WM8990_DACR_VOL_SHIFT,
++ WM8990_DACR_VOL_MASK,
++ 0,
++ out_dac_tlv),
++
++SOC_ENUM("Left Digital Sidetone", wm8990_left_digital_sidetone_enum),
++SOC_ENUM("Right Digital Sidetone", wm8990_right_digital_sidetone_enum),
++
++SOC_SINGLE_TLV("Left Digital Sidetone Volume", WM8990_DIGITAL_SIDE_TONE,
++ WM8990_ADCL_DAC_SVOL_SHIFT, WM8990_ADCL_DAC_SVOL_MASK, 0,
++ out_sidetone_tlv),
++SOC_SINGLE_TLV("Right Digital Sidetone Volume", WM8990_DIGITAL_SIDE_TONE,
++ WM8990_ADCR_DAC_SVOL_SHIFT, WM8990_ADCR_DAC_SVOL_MASK, 0,
++ out_sidetone_tlv),
++
++SOC_SINGLE("ADC Digital High Pass Filter Switch", WM8990_ADC_CTRL,
++ WM8990_ADC_HPF_ENA_BIT, 1, 0),
++
++SOC_ENUM("ADC HPF Mode", wm8990_right_adcmode_enum),
++
++SOC_WM899X_OUTPGA_SINGLE_R_TLV("Left ADC Digital Volume",
++ WM8990_LEFT_ADC_DIGITAL_VOLUME,
++ WM8990_ADCL_VOL_SHIFT,
++ WM8990_ADCL_VOL_MASK,
++ 0,
++ in_adc_tlv),
++
++SOC_WM899X_OUTPGA_SINGLE_R_TLV("Right ADC Digital Volume",
++ WM8990_RIGHT_ADC_DIGITAL_VOLUME,
++ WM8990_ADCR_VOL_SHIFT,
++ WM8990_ADCR_VOL_MASK,
++ 0,
++ in_adc_tlv),
++
++SOC_WM899X_OUTPGA_SINGLE_R_TLV("LIN12 Volume",
++ WM8990_LEFT_LINE_INPUT_1_2_VOLUME,
++ WM8990_LIN12VOL_SHIFT,
++ WM8990_LIN12VOL_MASK,
++ 0,
++ in_pga_tlv),
++
++SOC_SINGLE("LIN12 ZC Switch", WM8990_LEFT_LINE_INPUT_1_2_VOLUME,
++ WM8990_LI12ZC_BIT, 1, 0),
++
++SOC_SINGLE("LIN12 Mute Switch", WM8990_LEFT_LINE_INPUT_1_2_VOLUME,
++ WM8990_LI12MUTE_BIT, 1, 0),
++
++SOC_WM899X_OUTPGA_SINGLE_R_TLV("LIN34 Volume",
++ WM8990_LEFT_LINE_INPUT_3_4_VOLUME,
++ WM8990_LIN34VOL_SHIFT,
++ WM8990_LIN34VOL_MASK,
++ 0,
++ in_pga_tlv),
++
++SOC_SINGLE("LIN34 ZC Switch", WM8990_LEFT_LINE_INPUT_3_4_VOLUME,
++ WM8990_LI34ZC_BIT, 1, 0),
++
++SOC_SINGLE("LIN34 Mute Switch", WM8990_LEFT_LINE_INPUT_3_4_VOLUME,
++ WM8990_LI34MUTE_BIT, 1, 0),
++
++SOC_WM899X_OUTPGA_SINGLE_R_TLV("RIN12 Volume",
++ WM8990_RIGHT_LINE_INPUT_1_2_VOLUME,
++ WM8990_RIN12VOL_SHIFT,
++ WM8990_RIN12VOL_MASK,
++ 0,
++ in_pga_tlv),
++
++SOC_SINGLE("RIN12 ZC Switch", WM8990_RIGHT_LINE_INPUT_1_2_VOLUME,
++ WM8990_RI12ZC_BIT, 1, 0),
++
++SOC_SINGLE("RIN12 Mute Switch", WM8990_RIGHT_LINE_INPUT_1_2_VOLUME,
++ WM8990_RI12MUTE_BIT, 1, 0),
++
++SOC_WM899X_OUTPGA_SINGLE_R_TLV("RIN34 Volume",
++ WM8990_RIGHT_LINE_INPUT_3_4_VOLUME,
++ WM8990_RIN34VOL_SHIFT,
++ WM8990_RIN34VOL_MASK,
++ 0,
++ in_pga_tlv),
++
++SOC_SINGLE("RIN34 ZC Switch", WM8990_RIGHT_LINE_INPUT_3_4_VOLUME,
++ WM8990_RI34ZC_BIT, 1, 0),
++
++SOC_SINGLE("RIN34 Mute Switch", WM8990_RIGHT_LINE_INPUT_3_4_VOLUME,
++ WM8990_RI34MUTE_BIT, 1, 0),
++
++};
++
++/* add non dapm controls */
++static int wm8990_add_controls(struct snd_soc_codec *codec)
++{
++ int err, i;
++
++ for (i = 0; i < ARRAY_SIZE(wm8990_snd_controls); i++) {
++ err = snd_ctl_add(codec->card,
++ snd_soc_cnew(&wm8990_snd_controls[i],codec,
++ NULL));
++ if (err < 0)
++ return err;
++ }
++ return 0;
++}
++
++/*
++ * _DAPM_ Controls
++ */
++
++static int inmixer_event (struct snd_soc_dapm_widget *w,
++ struct snd_kcontrol *kcontrol, int event)
++{
++ u16 reg, fakepower;
++
++ reg=wm8990_read_reg_cache(w->codec, WM8990_POWER_MANAGEMENT_2);
++ fakepower=wm8990_read_reg_cache(w->codec, WM8990_INTDRIVBITS);
++
++ if (fakepower & ((1 << WM8990_INMIXL_PWR_BIT) |
++ (1 << WM8990_AINLMUX_PWR_BIT))) {
++ reg |= WM8990_AINL_ENA;
++ } else {
++ reg &= ~WM8990_AINL_ENA;
++ }
++
++ if (fakepower & ((1 << WM8990_INMIXR_PWR_BIT) |
++ (1 << WM8990_AINRMUX_PWR_BIT))) {
++ reg |= WM8990_AINR_ENA;
++ } else {
++ reg &= ~WM8990_AINL_ENA;
++ }
++ wm8990_write(w->codec, WM8990_POWER_MANAGEMENT_2, reg);
++
++ return 0;
++}
++
++static int outmixer_event (struct snd_soc_dapm_widget *w,
++ struct snd_kcontrol * kcontrol, int event)
++{
++ u32 reg_shift = kcontrol->private_value & 0xfff;
++ int ret = 0;
++ u16 reg;
++
++// printk("reg_shift %4.4x\n", reg_shift);
++
++ switch (reg_shift) {
++ case WM8990_SPEAKER_MIXER | (WM8990_LDSPK_BIT << 8) :
++ reg = wm8990_read_reg_cache(w->codec, WM8990_OUTPUT_MIXER1);
++ printk("reg %4.4x\n", reg);
++ if (reg & WM8990_LDLO) {
++ printk(KERN_WARNING
++ "Cannot set as Output Mixer 1 LDLO Set\n");
++ ret = -1;
++ }
++ break;
++ case WM8990_SPEAKER_MIXER | (WM8990_RDSPK_BIT << 8):
++ reg = wm8990_read_reg_cache(w->codec, WM8990_OUTPUT_MIXER2);
++ if (reg & WM8990_RDRO) {
++ printk(KERN_WARNING
++ "Cannot set as Output Mixer 2 RDRO Set\n");
++ ret = -1;
++ }
++ break;
++ case WM8990_OUTPUT_MIXER1 | (WM8990_LDLO_BIT << 8):
++ reg = wm8990_read_reg_cache(w->codec, WM8990_SPEAKER_MIXER);
++ if (reg & WM8990_LDSPK) {
++ printk(KERN_WARNING
++ "Cannot set as Speaker Mixer LDSPK Set\n");
++ ret = -1;
++ }
++ break;
++ case WM8990_OUTPUT_MIXER2 | (WM8990_RDRO_BIT << 8):
++ reg = wm8990_read_reg_cache(w->codec, WM8990_SPEAKER_MIXER);
++ if (reg & WM8990_RDSPK) {
++ printk(KERN_WARNING
++ "Cannot set as Speaker Mixer RDSPK Set\n");
++ ret = -1;
++ }
++ break;
++ }
++
++ return ret;
++}
++
++/* INMIX dB values */
++static const unsigned int in_mix_tlv[] = {
++ TLV_DB_RANGE_HEAD(1),
++ 0,7, TLV_DB_LINEAR_ITEM(-1200, 600),
++};
++
++/* Left In PGA Connections */
++static const struct snd_kcontrol_new wm8990_dapm_lin12_pga_controls[] = {
++SOC_DAPM_SINGLE("LIN1 Switch", WM8990_INPUT_MIXER2, WM8990_LMN1_BIT, 1, 0),
++SOC_DAPM_SINGLE("LIN2 Switch", WM8990_INPUT_MIXER2, WM8990_LMP2_BIT, 1, 0),
++};
++
++static const struct snd_kcontrol_new wm8990_dapm_lin34_pga_controls[] = {
++SOC_DAPM_SINGLE("LIN3 Switch", WM8990_INPUT_MIXER2, WM8990_LMN3_BIT, 1, 0),
++SOC_DAPM_SINGLE("LIN4 Switch", WM8990_INPUT_MIXER2, WM8990_LMP4_BIT, 1, 0),
++};
++
++/* Right In PGA Connections */
++static const struct snd_kcontrol_new wm8990_dapm_rin12_pga_controls[] = {
++SOC_DAPM_SINGLE("RIN1 Switch", WM8990_INPUT_MIXER2, WM8990_RMN1_BIT, 1, 0),
++SOC_DAPM_SINGLE("RIN2 Switch", WM8990_INPUT_MIXER2, WM8990_RMP2_BIT, 1, 0),
++};
++
++static const struct snd_kcontrol_new wm8990_dapm_rin34_pga_controls[] = {
++SOC_DAPM_SINGLE("RIN3 Switch", WM8990_INPUT_MIXER2, WM8990_RMN3_BIT, 1, 0),
++SOC_DAPM_SINGLE("RIN4 Switch", WM8990_INPUT_MIXER2, WM8990_RMP4_BIT, 1, 0),
++};
++
++/* INMIXL */
++static const struct snd_kcontrol_new wm8990_dapm_inmixl_controls[] = {
++SOC_DAPM_SINGLE_TLV("Record Left Volume", WM8990_INPUT_MIXER3,
++ WM8990_LDBVOL_SHIFT, WM8990_LDBVOL_MASK, 0, in_mix_tlv),
++SOC_DAPM_SINGLE_TLV("LIN2 Volume", WM8990_INPUT_MIXER5, WM8990_LI2BVOL_SHIFT,
++ 7, 0, in_mix_tlv),
++SOC_DAPM_SINGLE("LINPGA12 Switch", WM8990_INPUT_MIXER3, WM8990_L12MNB_BIT, 1, 0),
++SOC_DAPM_SINGLE("LINPGA34 Switch", WM8990_INPUT_MIXER3, WM8990_L34MNB_BIT, 1, 0),
++};
++
++/* INMIXR */
++static const struct snd_kcontrol_new wm8990_dapm_inmixr_controls[] = {
++SOC_DAPM_SINGLE_TLV("Record Right Volume", WM8990_INPUT_MIXER4,
++ WM8990_RDBVOL_SHIFT, WM8990_RDBVOL_MASK, 0, in_mix_tlv),
++SOC_DAPM_SINGLE_TLV("RIN2 Volume", WM8990_INPUT_MIXER6, WM8990_RI2BVOL_SHIFT,
++ 7, 0, in_mix_tlv),
++SOC_DAPM_SINGLE("RINPGA12 Switch", WM8990_INPUT_MIXER3, WM8990_L12MNB_BIT,
++ 1, 0),
++SOC_DAPM_SINGLE("RINPGA34 Switch", WM8990_INPUT_MIXER3, WM8990_L34MNB_BIT,
++ 1, 0),
++};
++
++/* AINLMUX */
++static const char *wm8990_ainlmux[] =
++ {"INMIXL Mix", "RXVOICE Mix", "DIFFINL Mix"};
++
++static const struct soc_enum wm8990_ainlmux_enum =
++SOC_ENUM_SINGLE( WM8990_INPUT_MIXER1, WM8990_AINLMODE_SHIFT,
++ ARRAY_SIZE(wm8990_ainlmux), wm8990_ainlmux);
++
++static const struct snd_kcontrol_new wm8990_dapm_ainlmux_controls =
++SOC_DAPM_ENUM("Route", wm8990_ainlmux_enum);
++
++/* DIFFINL */
++
++/* AINRMUX */
++static const char *wm8990_ainrmux[] =
++ {"INMIXR Mix", "RXVOICE Mix", "DIFFINR Mix"};
++
++static const struct soc_enum wm8990_ainrmux_enum =
++SOC_ENUM_SINGLE( WM8990_INPUT_MIXER1, WM8990_AINRMODE_SHIFT,
++ ARRAY_SIZE(wm8990_ainrmux), wm8990_ainrmux);
++
++static const struct snd_kcontrol_new wm8990_dapm_ainrmux_controls =
++SOC_DAPM_ENUM("Route", wm8990_ainrmux_enum);
++
++/* RXVOICE */
++static const struct snd_kcontrol_new wm8990_dapm_rxvoice_controls[] = {
++SOC_DAPM_SINGLE_TLV("LIN4/RXN", WM8990_INPUT_MIXER5, WM8990_LR4BVOL_SHIFT,
++ WM8990_LR4BVOL_MASK, 0, in_mix_tlv),
++SOC_DAPM_SINGLE_TLV("RIN4/RXP", WM8990_INPUT_MIXER6, WM8990_RL4BVOL_SHIFT,
++ WM8990_RL4BVOL_MASK, 0, in_mix_tlv),
++};
++
++/* LOMIX */
++static const struct snd_kcontrol_new wm8990_dapm_lomix_controls[] = {
++SOC_DAPM_SINGLE("LOMIX Right ADC Bypass Switch", WM8990_OUTPUT_MIXER1,
++ WM8990_LRBLO_BIT, 1, 0),
++SOC_DAPM_SINGLE("LOMIX Left ADC Bypass Switch", WM8990_OUTPUT_MIXER1,
++ WM8990_LLBLO_BIT, 1, 0),
++SOC_DAPM_SINGLE("LOMIX RIN3 Bypass Switch", WM8990_OUTPUT_MIXER1,
++ WM8990_LRI3LO_BIT, 1, 0),
++SOC_DAPM_SINGLE("LOMIX LIN3 Bypass Switch", WM8990_OUTPUT_MIXER1,
++ WM8990_LLI3LO_BIT, 1, 0),
++SOC_DAPM_SINGLE("LOMIX RIN12 PGA Bypass Switch", WM8990_OUTPUT_MIXER1,
++ WM8990_LR12LO_BIT, 1, 0),
++SOC_DAPM_SINGLE("LOMIX LIN12 PGA Bypass Switch", WM8990_OUTPUT_MIXER1,
++ WM8990_LL12LO_BIT, 1, 0),
++SOC_DAPM_SINGLE("LOMIX Left DAC Switch", WM8990_OUTPUT_MIXER1,
++ WM8990_LDLO_BIT, 1, 0),
++};
++
++/* ROMIX */
++static const struct snd_kcontrol_new wm8990_dapm_romix_controls[] = {
++SOC_DAPM_SINGLE("ROMIX Left ADC Bypass Switch", WM8990_OUTPUT_MIXER2,
++ WM8990_RLBRO_BIT, 1, 0),
++SOC_DAPM_SINGLE("ROMIX Right ADC Bypass Switch", WM8990_OUTPUT_MIXER2,
++ WM8990_RRBRO_BIT, 1, 0),
++SOC_DAPM_SINGLE("ROMIX LIN3 Bypass Switch", WM8990_OUTPUT_MIXER2,
++ WM8990_RLI3RO_BIT, 1, 0),
++SOC_DAPM_SINGLE("ROMIX RIN3 Bypass Switch", WM8990_OUTPUT_MIXER2,
++ WM8990_RRI3RO_BIT, 1, 0),
++SOC_DAPM_SINGLE("ROMIX LIN12 PGA Bypass Switch", WM8990_OUTPUT_MIXER2,
++ WM8990_RL12RO_BIT, 1, 0),
++SOC_DAPM_SINGLE("ROMIX RIN12 PGA Bypass Switch", WM8990_OUTPUT_MIXER2,
++ WM8990_RR12RO_BIT, 1, 0),
++SOC_DAPM_SINGLE("ROMIX Right DAC Switch", WM8990_OUTPUT_MIXER2,
++ WM8990_RDRO_BIT, 1, 0),
++};
++
++/* LONMIX */
++static const struct snd_kcontrol_new wm8990_dapm_lonmix_controls[] = {
++SOC_DAPM_SINGLE("LONMIX Left Mixer PGA Switch", WM8990_LINE_MIXER1,
++ WM8990_LLOPGALON_BIT, 1, 0),
++SOC_DAPM_SINGLE("LONMIX Right Mixer PGA Switch", WM8990_LINE_MIXER1,
++ WM8990_LROPGALON_BIT, 1, 0),
++SOC_DAPM_SINGLE("LONMIX Inverted LOP Switch", WM8990_LINE_MIXER1,
++ WM8990_LOPLON_BIT, 1, 0),
++};
++
++/* LOPMIX */
++static const struct snd_kcontrol_new wm8990_dapm_lopmix_controls[] = {
++SOC_DAPM_SINGLE("LOPMIX Right Mic Bypass Switch", WM8990_LINE_MIXER1,
++ WM8990_LR12LOP_BIT, 1, 0),
++SOC_DAPM_SINGLE("LOPMIX Left Mic Bypass Switch", WM8990_LINE_MIXER1,
++ WM8990_LL12LOP_BIT, 1, 0),
++SOC_DAPM_SINGLE("LOPMIX Left Mixer PGA Switch", WM8990_LINE_MIXER1,
++ WM8990_LLOPGALOP_BIT, 1, 0),
++};
++
++/* RONMIX */
++static const struct snd_kcontrol_new wm8990_dapm_ronmix_controls[] = {
++SOC_DAPM_SINGLE("RONMIX Right Mixer PGA Switch", WM8990_LINE_MIXER2,
++ WM8990_RROPGARON_BIT, 1, 0),
++SOC_DAPM_SINGLE("RONMIX Left Mixer PGA Switch", WM8990_LINE_MIXER2,
++ WM8990_RLOPGARON_BIT, 1, 0),
++SOC_DAPM_SINGLE("RONMIX Inverted ROP Switch", WM8990_LINE_MIXER2,
++ WM8990_ROPRON_BIT, 1, 0),
++};
++
++/* ROPMIX */
++static const struct snd_kcontrol_new wm8990_dapm_ropmix_controls[] = {
++SOC_DAPM_SINGLE("ROPMIX Left Mic Bypass Switch", WM8990_LINE_MIXER2,
++ WM8990_RL12ROP_BIT, 1, 0),
++SOC_DAPM_SINGLE("ROPMIX Right Mic Bypass Switch", WM8990_LINE_MIXER2,
++ WM8990_RR12ROP_BIT, 1, 0),
++SOC_DAPM_SINGLE("ROPMIX Right Mixer PGA Switch", WM8990_LINE_MIXER2,
++ WM8990_RROPGAROP_BIT, 1, 0),
++};
++
++/* OUT3MIX */
++static const struct snd_kcontrol_new wm8990_dapm_out3mix_controls[] = {
++SOC_DAPM_SINGLE("OUT3MIX LIN4/RXP Bypass Switch", WM8990_OUT3_4_MIXER,
++ WM8990_LI4O3_BIT, 1, 0),
++SOC_DAPM_SINGLE("OUT3MIX Left Out PGA Switch", WM8990_OUT3_4_MIXER,
++ WM8990_LPGAO3_BIT, 1, 0),
++};
++
++/* OUT4MIX */
++static const struct snd_kcontrol_new wm8990_dapm_out4mix_controls[] = {
++SOC_DAPM_SINGLE("OUT4MIX Right Out PGA Switch", WM8990_OUT3_4_MIXER,
++ WM8990_RPGAO4_BIT, 1, 0),
++SOC_DAPM_SINGLE("OUT4MIX RIN4/RXP Bypass Switch", WM8990_OUT3_4_MIXER,
++ WM8990_RI4O4_BIT, 1, 0),
++};
++
++/* SPKMIX */
++static const struct snd_kcontrol_new wm8990_dapm_spkmix_controls[] = {
++SOC_DAPM_SINGLE("SPKMIX LIN2 Bypass Switch", WM8990_SPEAKER_MIXER,
++ WM8990_LI2SPK_BIT, 1, 0),
++SOC_DAPM_SINGLE("SPKMIX LADC Bypass Switch", WM8990_SPEAKER_MIXER,
++ WM8990_LB2SPK_BIT, 1, 0),
++SOC_DAPM_SINGLE("SPKMIX Left Mixer PGA Switch", WM8990_SPEAKER_MIXER,
++ WM8990_LOPGASPK_BIT, 1, 0),
++SOC_DAPM_SINGLE("SPKMIX Left DAC Switch", WM8990_SPEAKER_MIXER,
++ WM8990_LDSPK_BIT, 1, 0),
++SOC_DAPM_SINGLE("SPKMIX Right DAC Switch", WM8990_SPEAKER_MIXER,
++ WM8990_RDSPK_BIT, 1, 0),
++SOC_DAPM_SINGLE("SPKMIX Right Mixer PGA Switch", WM8990_SPEAKER_MIXER,
++ WM8990_ROPGASPK_BIT, 1, 0),
++SOC_DAPM_SINGLE("SPKMIX RADC Bypass Switch", WM8990_SPEAKER_MIXER,
++ WM8990_RL12ROP_BIT, 1, 0),
++SOC_DAPM_SINGLE("SPKMIX RIN2 Bypass Switch", WM8990_SPEAKER_MIXER,
++ WM8990_RI2SPK_BIT, 1, 0),
++};
++
++static const struct snd_soc_dapm_widget wm8990_dapm_widgets[] = {
++/* Input Side */
++/* Input Lines */
++SND_SOC_DAPM_INPUT("LIN1"),
++SND_SOC_DAPM_INPUT("LIN2"),
++SND_SOC_DAPM_INPUT("LIN3"),
++SND_SOC_DAPM_INPUT("LIN4/RXN"),
++SND_SOC_DAPM_INPUT("RIN3"),
++SND_SOC_DAPM_INPUT("RIN4/RXP"),
++SND_SOC_DAPM_INPUT("RIN1"),
++SND_SOC_DAPM_INPUT("RIN2"),
++SND_SOC_DAPM_INPUT("Internal ADC Source"),
++
++/* DACs */
++SND_SOC_DAPM_ADC("Left ADC", "Left Capture", WM8990_POWER_MANAGEMENT_2,
++ WM8990_ADCL_ENA_BIT, 0),
++SND_SOC_DAPM_ADC("Right ADC", "Right Capture", WM8990_POWER_MANAGEMENT_2,
++ WM8990_ADCR_ENA_BIT, 0),
++
++/* Input PGAs */
++SND_SOC_DAPM_MIXER("LIN12 PGA", WM8990_POWER_MANAGEMENT_2, WM8990_LIN12_ENA_BIT,
++ 0, &wm8990_dapm_lin12_pga_controls[0],
++ ARRAY_SIZE(wm8990_dapm_lin12_pga_controls)),
++SND_SOC_DAPM_MIXER("LIN34 PGA", WM8990_POWER_MANAGEMENT_2, WM8990_LIN34_ENA_BIT,
++ 0, &wm8990_dapm_lin34_pga_controls[0],
++ ARRAY_SIZE(wm8990_dapm_lin34_pga_controls)),
++SND_SOC_DAPM_MIXER("RIN12 PGA", WM8990_POWER_MANAGEMENT_2, WM8990_RIN12_ENA_BIT,
++ 0, &wm8990_dapm_rin12_pga_controls[0],
++ ARRAY_SIZE(wm8990_dapm_rin12_pga_controls)),
++SND_SOC_DAPM_MIXER("RIN34 PGA", WM8990_POWER_MANAGEMENT_2, WM8990_RIN34_ENA_BIT,
++ 0, &wm8990_dapm_rin34_pga_controls[0],
++ ARRAY_SIZE(wm8990_dapm_rin34_pga_controls)),
++
++/* INMIXL */
++SND_SOC_DAPM_MIXER_E("INMIXL", WM8990_INTDRIVBITS, WM8990_INMIXL_PWR_BIT, 0,
++ &wm8990_dapm_inmixl_controls[0],
++ ARRAY_SIZE(wm8990_dapm_inmixl_controls),
++ inmixer_event, SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
++
++/* AINLMUX */
++SND_SOC_DAPM_MUX_E("AILNMUX", WM8990_INTDRIVBITS, WM8990_AINLMUX_PWR_BIT, 0,
++ &wm8990_dapm_ainlmux_controls, inmixer_event,
++ SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
++
++/* INMIXR */
++SND_SOC_DAPM_MIXER_E("INMIXR", WM8990_INTDRIVBITS, WM8990_INMIXR_PWR_BIT, 0,
++ &wm8990_dapm_inmixr_controls[0],
++ ARRAY_SIZE(wm8990_dapm_inmixr_controls),
++ inmixer_event, SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
++
++/* AINRMUX */
++SND_SOC_DAPM_MUX_E("AIRNMUX", WM8990_INTDRIVBITS, WM8990_AINRMUX_PWR_BIT, 0,
++ &wm8990_dapm_ainrmux_controls, inmixer_event,
++ SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
++
++/* Output Side */
++/* DACs */
++SND_SOC_DAPM_DAC("Left DAC", "Left Playback", WM8990_POWER_MANAGEMENT_3,
++ WM8990_DACL_ENA_BIT, 0),
++SND_SOC_DAPM_DAC("Right DAC", "Right Playback", WM8990_POWER_MANAGEMENT_3,
++ WM8990_DACR_ENA_BIT, 0),
++
++/* LOMIX */
++SND_SOC_DAPM_MIXER_E("LOMIX", WM8990_POWER_MANAGEMENT_3, WM8990_LOMIX_ENA_BIT,
++ 0, &wm8990_dapm_lomix_controls[0],
++ ARRAY_SIZE(wm8990_dapm_lomix_controls),
++ outmixer_event, SND_SOC_DAPM_PRE_REG),
++
++/* LONMIX */
++SND_SOC_DAPM_MIXER("LONMIX", WM8990_POWER_MANAGEMENT_3, WM8990_LON_ENA_BIT, 0,
++ &wm8990_dapm_lonmix_controls[0],
++ ARRAY_SIZE(wm8990_dapm_lonmix_controls)),
++
++/* LOPMIX */
++SND_SOC_DAPM_MIXER("LOPMIX", WM8990_POWER_MANAGEMENT_3, WM8990_LOP_ENA_BIT, 0,
++ &wm8990_dapm_lopmix_controls[0],
++ ARRAY_SIZE(wm8990_dapm_lopmix_controls)),
++
++/* OUT3MIX */
++SND_SOC_DAPM_MIXER("OUT3MIX", WM8990_POWER_MANAGEMENT_1, WM8990_OUT3_ENA_BIT, 0,
++ &wm8990_dapm_out3mix_controls[0],
++ ARRAY_SIZE(wm8990_dapm_out3mix_controls)),
++
++/* SPKMIX */
++SND_SOC_DAPM_MIXER_E("SPKMIX", WM8990_POWER_MANAGEMENT_1, WM8990_SPK_ENA_BIT, 0,
++ &wm8990_dapm_spkmix_controls[0],
++ ARRAY_SIZE(wm8990_dapm_spkmix_controls), outmixer_event,
++ SND_SOC_DAPM_PRE_REG),
++
++/* OUT4MIX */
++SND_SOC_DAPM_MIXER("OUT4MIX", WM8990_POWER_MANAGEMENT_1, WM8990_OUT4_ENA_BIT, 0,
++ &wm8990_dapm_out4mix_controls[0],
++ ARRAY_SIZE(wm8990_dapm_out4mix_controls)),
++
++/* ROPMIX */
++SND_SOC_DAPM_MIXER("ROPMIX", WM8990_POWER_MANAGEMENT_3, WM8990_ROP_ENA_BIT, 0,
++ &wm8990_dapm_ropmix_controls[0],
++ ARRAY_SIZE(wm8990_dapm_ropmix_controls)),
++
++/* RONMIX */
++SND_SOC_DAPM_MIXER("RONMIX", WM8990_POWER_MANAGEMENT_3, WM8990_RON_ENA_BIT, 0,
++ &wm8990_dapm_ronmix_controls[0],
++ ARRAY_SIZE(wm8990_dapm_ronmix_controls)),
++
++/* ROMIX */
++SND_SOC_DAPM_MIXER_E("ROMIX", WM8990_POWER_MANAGEMENT_3, WM8990_ROMIX_ENA_BIT,
++ 0, &wm8990_dapm_romix_controls[0],
++ ARRAY_SIZE(wm8990_dapm_romix_controls),
++ outmixer_event, SND_SOC_DAPM_PRE_REG),
++
++/* LOUT PGA */
++SND_SOC_DAPM_PGA("LOUT PGA", WM8990_POWER_MANAGEMENT_1, WM8990_LOUT_ENA_BIT, 0,
++ NULL, 0),
++
++/* ROUT PGA */
++SND_SOC_DAPM_PGA("ROUT PGA", WM8990_POWER_MANAGEMENT_1, WM8990_ROUT_ENA_BIT, 0,
++ NULL, 0),
++
++/* LOPGA */
++SND_SOC_DAPM_PGA("LOPGA", WM8990_POWER_MANAGEMENT_3, WM8990_LOPGA_ENA_BIT, 0,
++ NULL, 0),
++
++/* ROPGA */
++SND_SOC_DAPM_PGA("ROPGA", WM8990_POWER_MANAGEMENT_3, WM8990_ROPGA_ENA_BIT, 0,
++ NULL, 0),
++
++/* MICBIAS */
++SND_SOC_DAPM_MICBIAS("MICBIAS", WM8990_POWER_MANAGEMENT_1,
++ WM8990_MICBIAS_ENA_BIT, 0),
++
++SND_SOC_DAPM_OUTPUT("LON"),
++SND_SOC_DAPM_OUTPUT("LOP"),
++SND_SOC_DAPM_OUTPUT("OUT3"),
++SND_SOC_DAPM_OUTPUT("LOUT"),
++SND_SOC_DAPM_OUTPUT("SPKN"),
++SND_SOC_DAPM_OUTPUT("SPKP"),
++SND_SOC_DAPM_OUTPUT("ROUT"),
++SND_SOC_DAPM_OUTPUT("OUT4"),
++SND_SOC_DAPM_OUTPUT("ROP"),
++SND_SOC_DAPM_OUTPUT("RON"),
++
++SND_SOC_DAPM_OUTPUT("Internal DAC Sink"),
++};
++
++static const char *audio_map[][3] = {
++ /* Make DACs turn on when playing even if not mixed into any outputs */
++ {"Internal DAC Sink", NULL, "Left DAC"},
++ {"Internal DAC Sink", NULL, "Right DAC"},
++
++ /* Make ADCs turn on when recording even if not mixed from any inputs */
++ {"Left ADC", NULL, "Internal ADC Source"},
++ {"Right ADC", NULL, "Internal ADC Source"},
++
++ /* Input Side */
++ /* LIN12 PGA */
++ {"LIN12 PGA", "LIN1 Switch", "LIN1"},
++ {"LIN12 PGA", "LIN2 Switch", "LIN2"},
++ /* LIN34 PGA */
++ {"LIN34 PGA", "LIN3 Switch", "LIN3"},
++ {"LIN34 PGA", "LIN4 Switch", "LIN4"},
++ /* INMIXL */
++ {"INMIXL", "Record Left Volume", "LOMIX"},
++ {"INMIXL", "LIN2 Volume", "LIN2"},
++ {"INMIXL", "LINPGA12 Switch", "LIN12 PGA"},
++ {"INMIXL", "LINPGA34 Switch", "LIN34 PGA"},
++ /* AILNMUX */
++ {"AILNMUX", "INMIXL Mix", "INMIXL"},
++ {"AILNMUX", "DIFFINL Mix", "LIN12PGA"},
++ {"AILNMUX", "DIFFINL Mix", "LIN34PGA"},
++ {"AILNMUX", "RXVOICE Mix", "LIN4/RXN"},
++ {"AILNMUX", "RXVOICE Mix", "RIN4/RXP"},
++ /* ADC */
++ {"Left ADC", NULL, "AILNMUX"},
++
++ /* RIN12 PGA */
++ {"RIN12 PGA", "RIN1 Switch", "RIN1"},
++ {"RIN12 PGA", "RIN2 Switch", "RIN2"},
++ /* RIN34 PGA */
++ {"RIN34 PGA", "RIN3 Switch", "RIN3"},
++ {"RIN34 PGA", "RIN4 Switch", "RIN4"},
++ /* INMIXL */
++ {"INMIXR", "Record Right Volume", "ROMIX"},
++ {"INMIXR", "RIN2 Volume", "RIN2"},
++ {"INMIXR", "RINPGA12 Switch", "RIN12 PGA"},
++ {"INMIXR", "RINPGA34 Switch", "RIN34 PGA"},
++ /* AIRNMUX */
++ {"AIRNMUX", "INMIXR Mix", "INMIXR"},
++ {"AIRNMUX", "DIFFINR Mix", "RIN12PGA"},
++ {"AIRNMUX", "DIFFINR Mix", "RIN34PGA"},
++ {"AIRNMUX", "RXVOICE Mix", "RIN4/RXN"},
++ {"AIRNMUX", "RXVOICE Mix", "RIN4/RXP"},
++ /* ADC */
++ {"Right ADC", NULL, "AIRNMUX"},
++
++ /* LOMIX */
++ {"LOMIX", "LOMIX RIN3 Bypass Switch", "RIN3"},
++ {"LOMIX", "LOMIX LIN3 Bypass Switch", "LIN3"},
++ {"LOMIX", "LOMIX LIN12 PGA Bypass Switch", "LIN12 PGA"},
++ {"LOMIX", "LOMIX RIN12 PGA Bypass Switch", "RIN12 PGA"},
++ {"LOMIX", "LOMIX Right ADC Bypass Switch", "AINRMUX"},
++ {"LOMIX", "LOMIX Left ADC Bypass Switch", "AINLMUX"},
++ {"LOMIX", "LOMIX Left DAC Switch", "Left DAC"},
++
++ /* ROMIX */
++ {"ROMIX", "ROMIX RIN3 Bypass Switch", "RIN3"},
++ {"ROMIX", "ROMIX LIN3 Bypass Switch", "LIN3"},
++ {"ROMIX", "ROMIX LIN12 PGA Bypass Switch", "LIN12 PGA"},
++ {"ROMIX", "ROMIX RIN12 PGA Bypass Switch", "RIN12 PGA"},
++ {"ROMIX", "ROMIX Right ADC Bypass Switch", "AINRMUX"},
++ {"ROMIX", "ROMIX Left ADC Bypass Switch", "AINLMUX"},
++ {"ROMIX", "ROMIX Right DAC Switch", "Right DAC"},
++
++ /* SPKMIX */
++ {"SPKMIX", "SPKMIX LIN2 Bypass Switch", "LIN2"},
++ {"SPKMIX", "SPKMIX RIN2 Bypass Switch", "RIN2"},
++ {"SPKMIX", "SPKMIX LADC Bypass Switch", "AINLMUX"},
++ {"SPKMIX", "SPKMIX RADC Bypass Switch", "AINRMUX"},
++ {"SPKMIX", "SPKMIX Left Mixer PGA Switch", "LOPGA"},
++ {"SPKMIX", "SPKMIX Right Mixer PGA Switch", "ROPGA"},
++ {"SPKMIX", "SPKMIX Right DAC Switch", "Right DAC"},
++ {"SPKMIX", "SPKMIX Left DAC Switch", "Right DAC"},
++
++ /* LONMIX */
++ {"LONMIX", "LONMIX Left Mixer PGA Switch", "LOPGA"},
++ {"LONMIX", "LONMIX Right Mixer PGA Switch", "ROPGA"},
++ {"LONMIX", "LONMIX Inverted LOP Switch", "LOPMIX"},
++
++ /* LOPMIX */
++ {"LOPMIX", "LOPMIX Right Mic Bypass Switch", "RIN12 PGA"},
++ {"LOPMIX", "LOPMIX Left Mic Bypass Switch", "LIN12 PGA"},
++ {"LOPMIX", "LOPMIX Left Mixer PGA Switch", "LOPGA"},
++
++ /* OUT3MIX */
++ {"OUT3MIX", "OUT3MIX LIN4/RXP Bypass Switch", "LIN4/RXP"},
++ {"OUT3MIX", "OUT3MIX Left Out PGA Switch", "LOPGA"},
++
++ /* OUT4MIX */
++ {"OUT4MIX", "OUT4MIX Right Out PGA Switch", "ROPGA"},
++ {"OUT4MIX", "OUT4MIX RIN4/RXP Bypass Switch", "RIN4/RXP"},
++
++ /* RONMIX */
++ {"RONMIX", "RONMIX Right Mixer PGA Switch", "ROPGA"},
++ {"RONMIX", "RONMIX Left Mixer PGA Switch", "LOPGA"},
++ {"RONMIX", "RONMIX Inverted ROP Switch", "ROPMIX"},
++
++ /* ROPMIX */
++ {"ROPMIX", "ROPMIX Left Mic Bypass Switch", "LIN12 PGA"},
++ {"ROPMIX", "ROPMIX Right Mic Bypass Switch", "RIN12 PGA"},
++ {"ROPMIX", "ROPMIX Right Mixer PGA Switch", "ROPGA"},
++
++ /* Out Mixer PGAs */
++ {"LOPGA", NULL, "LOMIX"},
++ {"ROPGA", NULL, "ROMIX"},
++
++ {"LOUT PGA", NULL, "LOMIX"},
++ {"ROUT PGA", NULL, "ROMIX"},
++
++ /* Output Pins */
++ {"LON", NULL, "LONMIX"},
++ {"LOP", NULL, "LOPMIX"},
++ {"OUT", NULL, "OUT3MIX"},
++ {"LOUT", NULL, "LOUT PGA"},
++ {"SPKN", NULL, "SPKMIX"},
++ {"ROUT", NULL, "ROUT PGA"},
++ {"OUT4", NULL, "OUT4MIX"},
++ {"ROP", NULL, "ROPMIX"},
++ {"RON", NULL, "RONMIX"},
++
++ /* terminator */
++ {NULL, NULL, NULL},
++};
++
++static int wm8990_add_widgets(struct snd_soc_codec *codec)
++{
++ int i;
++
++ for (i = 0; i < ARRAY_SIZE(wm8990_dapm_widgets); i++)
++ snd_soc_dapm_new_control(codec, &wm8990_dapm_widgets[i]);
++
++ /* set up the WM8990 audio map */
++ for (i = 0; audio_map[i][0] != NULL; i++) {
++ snd_soc_dapm_connect_input(codec, audio_map[i][0],
++ audio_map[i][1], audio_map[i][2]);
++ }
++
++ snd_soc_dapm_new_widgets(codec);
++ return 0;
++}
++
++/* PLL divisors */
++struct _pll_div {
++ u32 div2;
++ u32 n;
++ u32 k;
++};
++
++/* The size in bits of the pll divide multiplied by 10
++ * to allow rounding later */
++#define FIXED_PLL_SIZE ((1 << 16) * 10)
++
++static void pll_factors(struct _pll_div *pll_div, unsigned int target,
++ unsigned int source)
++{
++ u64 Kpart;
++ unsigned int K, Ndiv, Nmod;
++
++
++ Ndiv = target / source;
++ if (Ndiv < 6) {
++ source >>= 1;
++ pll_div->div2 = 1;
++ Ndiv = target / source;
++ } else
++ pll_div->div2 = 0;
++
++ if ((Ndiv < 6) || (Ndiv > 12))
++ printk(KERN_WARNING
++ "WM8990 N value outwith recommended range! N = %d\n",Ndiv);
++
++ pll_div->n = Ndiv;
++ Nmod = target % source;
++ Kpart = FIXED_PLL_SIZE * (long long)Nmod;
++
++ do_div(Kpart, source);
++
++ K = Kpart & 0xFFFFFFFF;
++
++ /* Check if we need to round */
++ if ((K % 10) >= 5)
++ K += 5;
++
++ /* Move down to proper range now rounding is done */
++ K /= 10;
++
++ pll_div->k = K;
++}
++
++static int wm8990_set_dai_pll(struct snd_soc_codec_dai *codec_dai,
++ int pll_id, unsigned int freq_in, unsigned int freq_out)
++{
++ u16 reg;
++ struct snd_soc_codec *codec = codec_dai->codec;
++ struct _pll_div pll_div;
++
++ if (freq_in && freq_out) {
++ pll_factors(&pll_div, freq_out * 4, freq_in);
++
++ /* Turn on PLL */
++ reg = wm8990_read_reg_cache(codec, WM8990_POWER_MANAGEMENT_2);
++ reg |= WM8990_PLL_ENA;
++ wm8990_write(codec, WM8990_POWER_MANAGEMENT_2, reg);
++
++ /* sysclk comes from PLL */
++ reg = wm8990_read_reg_cache(codec, WM8990_CLOCKING_2);
++ wm8990_write(codec, WM8990_CLOCKING_2, reg | WM8990_SYSCLK_SRC);
++
++ /* set up N , fractional mode and pre-divisor if neccessary */
++ wm8990_write(codec, WM8990_PLL1, pll_div.n | WM8990_SDM |
++ (pll_div.div2?WM8990_PRESCALE:0));
++ wm8990_write(codec, WM8990_PLL2, (u8)(pll_div.k>>8));
++ wm8990_write(codec, WM8990_PLL3, (u8)(pll_div.k & 0xFF));
++ } else {
++ /* Turn on PLL */
++ reg = wm8990_read_reg_cache(codec, WM8990_POWER_MANAGEMENT_2);
++ reg &= ~WM8990_PLL_ENA;
++ wm8990_write(codec, WM8990_POWER_MANAGEMENT_2, reg);
++ }
++ return 0;
++}
++
++/*
++ * Clock after PLL and dividers
++ */
++static int wm8990_set_dai_sysclk(struct snd_soc_codec_dai *codec_dai,
++ int clk_id, unsigned int freq, int dir)
++{
++ struct snd_soc_codec *codec = codec_dai->codec;
++ struct wm8990_priv *wm8990 = codec->private_data;
++
++ wm8990->sysclk = freq;
++ return 0;
++}
++
++/*
++ * Set's ADC and Voice DAC format.
++ */
++static int wm8990_set_dai_fmt(struct snd_soc_codec_dai *codec_dai,
++ unsigned int fmt)
++{
++ struct snd_soc_codec *codec = codec_dai->codec;
++ u16 audio1, audio3;
++
++ audio1 = wm8990_read_reg_cache(codec, WM8990_AUDIO_INTERFACE_1);
++ audio3 = wm8990_read_reg_cache(codec, WM8990_AUDIO_INTERFACE_3);
++
++ /* set master/slave audio interface */
++ switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
++ case SND_SOC_DAIFMT_CBS_CFS:
++ audio3 &= ~WM8990_AIF_MSTR1;
++ break;
++ case SND_SOC_DAIFMT_CBM_CFM:
++ audio3 |= WM8990_AIF_MSTR1;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ audio1 &= ~WM8990_AIF_FMT_MASK;
++
++ /* interface format */
++ switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
++ case SND_SOC_DAIFMT_I2S:
++ audio1 |= WM8990_AIF_TMF_I2S;
++ audio1 &= ~WM8990_AIF_LRCLK_INV;
++ break;
++ case SND_SOC_DAIFMT_RIGHT_J:
++ audio1 |= WM8990_AIF_TMF_RIGHTJ;
++ audio1 &= ~WM8990_AIF_LRCLK_INV;
++ break;
++ case SND_SOC_DAIFMT_LEFT_J:
++ audio1 |= WM8990_AIF_TMF_LEFTJ;
++ audio1 &= ~WM8990_AIF_LRCLK_INV;
++ break;
++ case SND_SOC_DAIFMT_DSP_A:
++ audio1 |= WM8990_AIF_TMF_DSP;
++ audio1 &= ~WM8990_AIF_LRCLK_INV;
++ break;
++ case SND_SOC_DAIFMT_DSP_B:
++ audio1 |= WM8990_AIF_TMF_DSP | WM8990_AIF_LRCLK_INV;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ wm8990_write(codec, WM8990_AUDIO_INTERFACE_1, audio1);
++ wm8990_write(codec, WM8990_AUDIO_INTERFACE_3, audio3);
++ return 0;
++}
++
++static int wm8990_set_dai_clkdiv(struct snd_soc_codec_dai *codec_dai,
++ int div_id, int div)
++{
++ struct snd_soc_codec *codec = codec_dai->codec;
++ u16 reg;
++
++ switch (div_id) {
++ case WM8990_MCLK_DIV:
++ reg = wm8990_read_reg_cache(codec, WM8990_CLOCKING_2) &
++ ~WM8990_MCLK_DIV_MASK;
++ wm8990_write(codec, WM8990_CLOCKING_2, reg | div);
++ break;
++ case WM8990_DACCLK_DIV:
++ reg = wm8990_read_reg_cache(codec, WM8990_CLOCKING_2) &
++ ~WM8990_DAC_CLKDIV_MASK;
++ wm8990_write(codec, WM8990_CLOCKING_2, reg | div);
++ break;
++ case WM8990_ADCCLK_DIV:
++ reg = wm8990_read_reg_cache(codec, WM8990_CLOCKING_2) &
++ ~WM8990_ADC_CLKDIV_MASK;
++ wm8990_write(codec, WM8990_CLOCKING_2, reg | div);
++ break;
++ case WM8990_BCLK_DIV:
++ reg = wm8990_read_reg_cache(codec, WM8990_CLOCKING_1) &
++ ~WM8990_BCLK_DIV_MASK;
++ wm8990_write(codec, WM8990_CLOCKING_1, reg | div);
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++/*
++ * Set PCM DAI bit size and sample rate.
++ */
++static int wm8990_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_device *socdev = rtd->socdev;
++ struct snd_soc_codec *codec = socdev->codec;
++ u16 audio1 = wm8990_read_reg_cache(codec, WM8990_AUDIO_INTERFACE_1);
++
++ audio1 &= ~WM8990_AIF_WL_MASK;
++
++ /* bit size */
++ switch (params_format(params)) {
++ case SNDRV_PCM_FORMAT_S16_LE:
++ audio1 |= WM8990_AIF_WL_16BITS;
++ break;
++ case SNDRV_PCM_FORMAT_S20_3LE:
++ audio1 |= WM8990_AIF_WL_20BITS;
++ break;
++ case SNDRV_PCM_FORMAT_S24_LE:
++ audio1 |= WM8990_AIF_WL_24BITS;
++ break;
++ case SNDRV_PCM_FORMAT_S32_LE:
++ audio1 |= WM8990_AIF_WL_32BITS;
++ break;
++ }
++
++ wm8990_write(codec, WM8990_AUDIO_INTERFACE_1, audio1);
++ //wm8990_write(codec, WM8990_AUDIO_INTERFACE_1, 0x4010);
++ return 0;
++}
++
++static int wm8990_mute(struct snd_soc_codec_dai *dai, int mute)
++{
++ struct snd_soc_codec *codec = dai->codec;
++ u16 val = wm8990_read_reg_cache(codec, WM8990_DAC_CTRL) & ~WM8990_DAC_MUTE;
++
++ if (mute)
++ wm8990_write(codec, WM8990_DAC_CTRL, val | WM8990_DAC_MUTE);
++ else
++ wm8990_write(codec, WM8990_DAC_CTRL, val);
++
++ return 0;
++}
++
++/* TODO: set bias for best performance at standby */
++static int wm8990_dapm_event(struct snd_soc_codec *codec, int event)
++{
++ u16 val;
++
++ switch (event) {
++ case SNDRV_CTL_POWER_D0: /* full On */
++
++ break;
++ case SNDRV_CTL_POWER_D1: /* partial On */
++ case SNDRV_CTL_POWER_D2: /* partial On */
++
++ break;
++ case SNDRV_CTL_POWER_D3hot: /* Off, with power */
++ if (codec->dapm_state == SNDRV_CTL_POWER_D3cold) {
++ /* OFF -> standby */
++
++ /* Enable all output discharge bits */
++ wm8990_write(codec, WM8990_ANTIPOP1, WM8990_DIS_LLINE |
++ WM8990_DIS_RLINE | WM8990_DIS_OUT3 |
++ WM8990_DIS_OUT4 | WM8990_DIS_LOUT |
++ WM8990_DIS_ROUT);
++
++ /* Enable POBCTRL, SOFT_ST and BUFDCOPEN */
++ wm8990_write(codec, WM8990_ANTIPOP2, WM8990_SOFTST |
++ WM8990_BUFDCOPEN | WM8990_POBCTRL);
++
++ /* Delay 250ms to allow output caps to discharge */
++ schedule_timeout_interruptible(msecs_to_jiffies(250));
++
++ /* disable all output discharge bits */
++ wm8990_write(codec, WM8990_ANTIPOP1, 0);
++
++ /* Enable VMID SEL = 2x50K Ohm Divider */
++ wm8990_write(codec, WM8990_POWER_MANAGEMENT_1, 0x2);
++
++ /* Delay 100ms to allow VMID to initially charge */
++ schedule_timeout_interruptible(msecs_to_jiffies(250));
++
++ /* Enable VREF (VMID SEL = 2x50K Ohm Divider */
++ wm8990_write(codec, WM8990_POWER_MANAGEMENT_1, 0x3);
++
++ /* disable POBCTRL, SOFT_ST and BUFDCOPEN */
++ wm8990_write(codec, WM8990_ANTIPOP2, 0x0);
++
++ } else {
++ /* ON -> standby */
++
++ }
++ break;
++ case SNDRV_CTL_POWER_D3cold: /* Off, without power */
++
++ /* Enable POBCTRL, SOFT_ST and BUFDCOPEN */
++ wm8990_write(codec, WM8990_ANTIPOP2, WM8990_SOFTST |
++ WM8990_BUFDCOPEN | WM8990_POBCTRL);
++
++ /* mute DAC */
++ val = wm8990_read_reg_cache(codec, WM8990_DAC_CTRL);
++ wm8990_write(codec, WM8990_DAC_CTRL, val | WM8990_DAC_MUTE);
++
++ /* Disable VMID SEL = 2x50K Ohm Divider */
++ wm8990_write(codec, WM8990_POWER_MANAGEMENT_1, 0x1);
++
++ /* Enable all output discharge bits */
++ wm8990_write(codec, WM8990_ANTIPOP1, WM8990_DIS_LLINE |
++ WM8990_DIS_RLINE | WM8990_DIS_OUT3 |
++ WM8990_DIS_OUT4 | WM8990_DIS_LOUT |
++ WM8990_DIS_ROUT);
++
++ /* Disable VREF (VMID SEL = 2x50K Ohm Divider */
++ wm8990_write(codec, WM8990_POWER_MANAGEMENT_1, 0x0);
++
++ /* disable POBCTRL, SOFT_ST and BUFDCOPEN */
++ wm8990_write(codec, WM8990_ANTIPOP2, 0x0);
++ }
++ codec->dapm_state = event;
++ return 0;
++}
++
++#define WM8990_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |\
++ SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_44100 | \
++ SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000)
++
++#define WM8990_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE |\
++ SNDRV_PCM_FMTBIT_S24_LE)
++
++/*
++ * The WM8990 supports 2 different and mutually exclusive DAI
++ * configurations.
++ *
++ * 1. ADC/DAC on Primary Interface
++ * 2. ADC on Primary Interface/DAC on secondary
++ */
++struct snd_soc_codec_dai wm8990_dai = {
++/* ADC/DAC on primary */
++ .name = "WM8990 ADC/DAC Primary",
++ .id = 1,
++ .playback = {
++ .stream_name = "Playback",
++ .channels_min = 1,
++ .channels_max = 2,
++ .rates = WM8990_RATES,
++ .formats = WM8990_FORMATS,},
++ .capture = {
++ .stream_name = "Capture",
++ .channels_min = 1,
++ .channels_max = 2,
++ .rates = WM8990_RATES,
++ .formats = WM8990_FORMATS,},
++ .ops = {
++ .hw_params = wm8990_hw_params,},
++ .dai_ops = {
++ .digital_mute = wm8990_mute,
++ .set_fmt = wm8990_set_dai_fmt,
++ .set_clkdiv = wm8990_set_dai_clkdiv,
++ .set_pll = wm8990_set_dai_pll,
++ .set_sysclk = wm8990_set_dai_sysclk,
++ },
++};
++EXPORT_SYMBOL_GPL(wm8990_dai);
++
++static int wm8990_suspend(struct platform_device *pdev, pm_message_t state)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct snd_soc_codec *codec = socdev->codec;
++
++ /* we only need to suspend if we are a valid card */
++ if(!codec->card)
++ return 0;
++
++ wm8990_dapm_event(codec, SNDRV_CTL_POWER_D3cold);
++ return 0;
++}
++
++static int wm8990_resume(struct platform_device *pdev)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct snd_soc_codec *codec = socdev->codec;
++ int i;
++ u8 data[2];
++ u16 *cache = codec->reg_cache;
++
++ /* we only need to resume if we are a valid card */
++ if (!codec->card)
++ return 0;
++
++ /* Sync reg_cache with the hardware */
++ for (i = 0; i < ARRAY_SIZE(wm8990_reg); i++) {
++ if (i + 1 == WM8990_RESET)
++ continue;
++ data[0] = ((i + 1) << 1) | ((cache[i] >> 8) & 0x0001);
++ data[1] = cache[i] & 0x00ff;
++ codec->hw_write(codec->control_data, data, 2);
++ }
++
++ wm8990_dapm_event(codec, SNDRV_CTL_POWER_D3hot);
++ return 0;
++}
++
++/*
++ * initialise the WM8990 driver
++ * register the mixer and dsp interfaces with the kernel
++ */
++static int wm8990_init(struct snd_soc_device *socdev)
++{
++ struct snd_soc_codec *codec = socdev->codec;
++ u16 reg;
++ int ret = 0;
++
++ codec->name = "WM8990";
++ codec->owner = THIS_MODULE;
++ codec->read = wm8990_read_reg_cache;
++ codec->write = wm8990_write;
++ codec->dapm_event = wm8990_dapm_event;
++ codec->dai = &wm8990_dai;
++ codec->num_dai = 2;
++ codec->reg_cache_size = sizeof(wm8990_reg);
++ codec->reg_cache = kmemdup(wm8990_reg, sizeof(wm8990_reg), GFP_KERNEL);
++
++ if (codec->reg_cache == NULL)
++ return -ENOMEM;
++
++ wm8990_reset(codec);
++
++#if (defined CONFIG_SND_S3C64XX_SOC_SMDK6410_WM8990) || (defined CONFIG_SND_S3C64XX_SOC_SMDK6410_WM8990_MODULE)
++ /* Enable the left and right output mixers by default so a
++ headphone output path will work */
++ printk("Entered : %s, %d 8990 write..\n",__FUNCTION__,__LINE__);
++ wm8990_write(codec, WM8990_OUTPUT_MIXER1, WM8990_LDLO);
++ wm8990_write(codec, WM8990_OUTPUT_MIXER2, WM8990_RDRO);
++#endif
++
++#if (defined CONFIG_SND_S3C64XX_SOC_SMDK6410_WM8990) || (defined CONFIG_SND_S3C64XX_SOC_SMDK6410_WM8990_MODULE)
++ /* Enable the left and right output mixers by default so a
++ headphone output path will work */
++ wm8990_write(codec, WM8990_OUTPUT_MIXER1, WM8990_LDLO);
++ wm8990_write(codec, WM8990_OUTPUT_MIXER2, WM8990_RDRO);
++#endif
++
++#if (defined CONFIG_SND_S3C64XX_SOC_SMDK6410_WM8990) || (defined CONFIG_SND_S3C64XX_SOC_SMDK6410_WM8990_MODULE)
++ /* Enable the left and right output mixers by default so a
++ headphone output path will work */
++ wm8990_write(codec, WM8990_OUTPUT_MIXER1, WM8990_LDLO);
++ wm8990_write(codec, WM8990_OUTPUT_MIXER2, WM8990_RDRO);
++#endif
++
++ /* register pcms */
++ ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1);
++ if (ret < 0) {
++ printk(KERN_ERR "wm8990: failed to create pcms\n");
++ goto pcm_err;
++ }
++
++ /* charge output caps */
++ codec->dapm_state = SNDRV_CTL_POWER_D3cold;
++ wm8990_dapm_event(codec, SNDRV_CTL_POWER_D3hot);
++
++ /* set up ADCLR clock internally */
++ //reg = wm8990_read_reg_cache(codec, WM8990_AUDIO_INTERFACE_4);
++ //wm8990_write(codec, WM8990_AUDIO_INTERFACE_4, reg | WM8990_ALRCGPIO1);
++
++ /* set GPIO1 as clk output */
++ //reg = wm8990_read_reg_cache(codec, WM8990_GPIO1_GPIO2) &
++// ~WM8990_GPIO1_SEL_MASK;
++// wm8990_write(codec, WM8990_GPIO1_GPIO2, reg | 1);
++
++// set Line-In and Mic-In Path.
++//
++ reg = wm8990_read_reg_cache(codec, WM8990_POWER_MANAGEMENT_2);
++ wm8990_write(codec, WM8990_POWER_MANAGEMENT_2, reg | WM8990_OPCLK_ENA);
++
++ wm8990_write(codec, WM8990_LEFT_OUTPUT_VOLUME, 0x50 | (1<<8));
++ wm8990_write(codec, WM8990_RIGHT_OUTPUT_VOLUME, 0x50 | (1<<8));
++
++ reg = wm8990_read_reg_cache(codec, WM8990_POWER_MANAGEMENT_2);
++ wm8990_write(codec, WM8990_POWER_MANAGEMENT_2, reg | WM8990_AINR_ENA | WM8990_ADCR_ENA | WM8990_ADCL_ENA);
++
++ reg = wm8990_read_reg_cache(codec, WM8990_INPUT_MIXER5);
++ wm8990_write(codec, WM8990_INPUT_MIXER5, (reg & ~WM8990_LI2BVOL_MASK) | (0x50 | (1<<8)));
++
++ wm8990_write(codec, WM8990_LEFT_ADC_DIGITAL_VOLUME, 0xff | (1<<8));
++
++ reg = wm8990_read_reg_cache(codec, WM8990_INPUT_MIXER6);
++ wm8990_write(codec, WM8990_INPUT_MIXER6, (reg & ~WM8990_RI2BVOL_MASK) | (0x50 | (1<<8)));
++
++ wm8990_write(codec, WM8990_RIGHT_ADC_DIGITAL_VOLUME, 0xff | (1<<8));
++
++ reg = wm8990_read_reg_cache(codec, WM8990_POWER_MANAGEMENT_2);
++ wm8990_write(codec, WM8990_POWER_MANAGEMENT_2, reg | WM8990_LIN12_ENA | WM8990_AINL_ENA);
++
++ reg = wm8990_read_reg_cache(codec, WM8990_INPUT_MIXER2);
++ wm8990_write(codec, WM8990_INPUT_MIXER2, reg | WM8990_LMN1);
++
++ reg = wm8990_read_reg_cache(codec, WM8990_LEFT_LINE_INPUT_1_2_VOLUME);
++ wm8990_write(codec, WM8990_LEFT_LINE_INPUT_1_2_VOLUME, (reg & ~WM8990_LIN12VOL_MASK) | (0x5f | (1<<8)));
++
++ reg = wm8990_read_reg_cache(codec, WM8990_INPUT_MIXER4);
++ wm8990_write(codec, WM8990_INPUT_MIXER4, (reg & ~WM8990_RDBVOL_MASK) | (0x5f | (1<<8)));
++
++ reg = wm8990_read_reg_cache(codec, WM8990_INPUT_MIXER3);
++ wm8990_write(codec, WM8990_INPUT_MIXER3, reg | WM8990_L12MNB);
++
++ reg = wm8990_read_reg_cache(codec, WM8990_INPUT_MIXER3);
++ wm8990_write(codec, WM8990_INPUT_MIXER3, reg | WM8990_L12MNBST);
++
++#if defined(CONFIG_SOUND_WM8990_INPUT_STREAM_MIC_IN)
++ /* For Mono MIC-In */
++ reg = wm8990_read_reg_cache(codec, WM8990_AUDIO_INTERFACE_1);
++ wm8990_write(codec, WM8990_AUDIO_INTERFACE_1, reg & (0<<14));
++
++#endif
++
++ wm8990_add_controls(codec);
++ wm8990_add_widgets(codec);
++ ret = snd_soc_register_card(socdev);
++ if (ret < 0) {
++ printk(KERN_ERR "wm8990: failed to register card\n");
++ goto card_err;
++ }
++ return ret;
++
++card_err:
++ snd_soc_free_pcms(socdev);
++ snd_soc_dapm_free(socdev);
++pcm_err:
++ kfree(codec->reg_cache);
++ return ret;
++}
++
++/* If the i2c layer weren't so broken, we could pass this kind of data
++ around */
++static struct snd_soc_device *wm8990_socdev;
++
++#if defined (CONFIG_I2C) || defined (CONFIG_I2C_MODULE)
++
++/*
++ * WM8912 wire address is determined by GPIO5
++ * state during powerup.
++ * low = 0x34
++ * high = 0x36
++ */
++static unsigned short normal_i2c[] = { 0, I2C_CLIENT_END };
++
++/* Magic definition of all other variables and things */
++I2C_CLIENT_INSMOD;
++
++static struct i2c_driver wm8990_i2c_driver;
++static struct i2c_client client_template;
++
++static int wm8990_codec_probe(struct i2c_adapter *adap, int addr, int kind)
++{
++ struct snd_soc_device *socdev = wm8990_socdev;
++ struct wm8990_setup_data *setup = socdev->codec_data;
++ struct snd_soc_codec *codec = socdev->codec;
++ struct i2c_client *i2c;
++ int ret;
++
++ if (addr != setup->i2c_address)
++ return -ENODEV;
++
++ client_template.adapter = adap;
++ client_template.addr = addr;
++
++ i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL);
++ if (i2c == NULL){
++ kfree(codec);
++ return -ENOMEM;
++ }
++ i2c_set_clientdata(i2c, codec);
++ codec->control_data = i2c;
++
++ ret = i2c_attach_client(i2c);
++ if (ret < 0) {
++ err("failed to attach codec at addr %x\n", addr);
++ goto err;
++ }
++
++ ret = wm8990_init(socdev);
++ if (ret < 0) {
++ err("failed to initialise WM8990\n");
++ goto err;
++ }
++ return ret;
++
++err:
++ kfree(codec);
++ kfree(i2c);
++ return ret;
++}
++
++static int wm8990_i2c_detach(struct i2c_client *client)
++{
++ struct snd_soc_codec *codec = i2c_get_clientdata(client);
++ i2c_detach_client(client);
++ kfree(codec->reg_cache);
++ kfree(client);
++ return 0;
++}
++
++static int wm8990_i2c_attach(struct i2c_adapter *adap)
++{
++ return i2c_probe(adap, &addr_data, wm8990_codec_probe);
++}
++
++/* corgi i2c codec control layer */
++static struct i2c_driver wm8990_i2c_driver = {
++ .driver = {
++ .name = "WM8990 I2C Codec",
++ .owner = THIS_MODULE,
++ },
++ .id = I2C_DRIVERID_WM8753,
++ .attach_adapter = wm8990_i2c_attach,
++ .detach_client = wm8990_i2c_detach,
++ .command = NULL,
++};
++
++static struct i2c_client client_template = {
++ .name = "WM8990",
++ .driver = &wm8990_i2c_driver,
++};
++#endif
++
++static int wm8990_probe(struct platform_device *pdev)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct wm8990_setup_data *setup;
++ struct snd_soc_codec *codec;
++ struct wm8990_priv *wm8990;
++ int ret = 0;
++
++ info("WM8990 Audio Codec %s", WM8990_VERSION);
++
++ setup = socdev->codec_data;
++ codec = kzalloc(sizeof(struct snd_soc_codec), GFP_KERNEL);
++ if (codec == NULL)
++ return -ENOMEM;
++
++ wm8990 = kzalloc(sizeof(struct wm8990_priv), GFP_KERNEL);
++ if (wm8990 == NULL) {
++ kfree(codec);
++ return -ENOMEM;
++ }
++
++ codec->private_data = wm8990;
++ socdev->codec = codec;
++ mutex_init(&codec->mutex);
++ INIT_LIST_HEAD(&codec->dapm_widgets);
++ INIT_LIST_HEAD(&codec->dapm_paths);
++ wm8990_socdev = socdev;
++
++#if defined (CONFIG_I2C) || defined (CONFIG_I2C_MODULE)
++ if (setup->i2c_address) {
++ normal_i2c[0] = setup->i2c_address;
++ codec->hw_write = (hw_write_t)i2c_master_send;
++ ret = i2c_add_driver(&wm8990_i2c_driver);
++ if (ret != 0)
++ printk(KERN_ERR "can't add i2c driver");
++ }
++#else
++ /* Add other interfaces here */
++#endif
++ return ret;
++}
++
++/* power down chip */
++static int wm8990_remove(struct platform_device *pdev)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct snd_soc_codec *codec = socdev->codec;
++
++ if (codec->control_data)
++ wm8990_dapm_event(codec, SNDRV_CTL_POWER_D3cold);
++ snd_soc_free_pcms(socdev);
++ snd_soc_dapm_free(socdev);
++#if defined (CONFIG_I2C) || defined (CONFIG_I2C_MODULE)
++ i2c_del_driver(&wm8990_i2c_driver);
++#endif
++ kfree(codec->private_data);
++ kfree(codec);
++
++ return 0;
++}
++
++struct snd_soc_codec_device soc_codec_dev_wm8990 = {
++ .probe = wm8990_probe,
++ .remove = wm8990_remove,
++ .suspend = wm8990_suspend,
++ .resume = wm8990_resume,
++};
++
++EXPORT_SYMBOL_GPL(soc_codec_dev_wm8990);
++
++MODULE_DESCRIPTION("ASoC WM8990 driver");
++MODULE_AUTHOR("Liam Girdwood");
++MODULE_LICENSE("GPL");
+diff --git a/sound/soc/codecs/wm8990.h b/sound/soc/codecs/wm8990.h
+new file mode 100644
+index 0000000..f98c026
+--- /dev/null
++++ b/sound/soc/codecs/wm8990.h
+@@ -0,0 +1,904 @@
++/*
++ * wm8753.h -- audio driver for WM8753
++ *
++ * Copyright 2007 Wolfson Microelectronics PLC.
++ * Author: Graeme Gregory
++ * graeme.gregory@wolfsonmicro.com or linux@wolfsonmicro.com
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ */
++
++#ifndef __WM8990REGISTERDEFS_H__
++#define __WM8990REGISTERDEFS_H__
++
++/*
++ * Register values.
++ */
++#define WM8990_RESET 0x00
++#define WM8990_POWER_MANAGEMENT_1 0x01
++#define WM8990_POWER_MANAGEMENT_2 0x02
++#define WM8990_POWER_MANAGEMENT_3 0x03
++#define WM8990_AUDIO_INTERFACE_1 0x04
++#define WM8990_AUDIO_INTERFACE_2 0x05
++#define WM8990_CLOCKING_1 0x06
++#define WM8990_CLOCKING_2 0x07
++#define WM8990_AUDIO_INTERFACE_3 0x08
++#define WM8990_AUDIO_INTERFACE_4 0x09
++#define WM8990_DAC_CTRL 0x0A
++#define WM8990_LEFT_DAC_DIGITAL_VOLUME 0x0B
++#define WM8990_RIGHT_DAC_DIGITAL_VOLUME 0x0C
++#define WM8990_DIGITAL_SIDE_TONE 0x0D
++#define WM8990_ADC_CTRL 0x0E
++#define WM8990_LEFT_ADC_DIGITAL_VOLUME 0x0F
++#define WM8990_RIGHT_ADC_DIGITAL_VOLUME 0x10
++#define WM8990_GPIO_CTRL_1 0x12
++#define WM8990_GPIO1_GPIO2 0x13
++#define WM8990_GPIO3_GPIO4 0x14
++#define WM8990_GPIO5_GPIO6 0x15
++#define WM8990_GPIOCTRL_2 0x16
++#define WM8990_GPIO_POL 0x17
++#define WM8990_LEFT_LINE_INPUT_1_2_VOLUME 0x18
++#define WM8990_LEFT_LINE_INPUT_3_4_VOLUME 0x19
++#define WM8990_RIGHT_LINE_INPUT_1_2_VOLUME 0x1A
++#define WM8990_RIGHT_LINE_INPUT_3_4_VOLUME 0x1B
++#define WM8990_LEFT_OUTPUT_VOLUME 0x1C
++#define WM8990_RIGHT_OUTPUT_VOLUME 0x1D
++#define WM8990_LINE_OUTPUTS_VOLUME 0x1E
++#define WM8990_OUT3_4_VOLUME 0x1F
++#define WM8990_LEFT_OPGA_VOLUME 0x20
++#define WM8990_RIGHT_OPGA_VOLUME 0x21
++#define WM8990_SPEAKER_VOLUME 0x22
++#define WM8990_CLASSD1 0x23
++#define WM8990_CLASSD3 0x25
++#define WM8990_INPUT_MIXER1 0x27
++#define WM8990_INPUT_MIXER2 0x28
++#define WM8990_INPUT_MIXER3 0x29
++#define WM8990_INPUT_MIXER4 0x2A
++#define WM8990_INPUT_MIXER5 0x2B
++#define WM8990_INPUT_MIXER6 0x2C
++#define WM8990_OUTPUT_MIXER1 0x2D
++#define WM8990_OUTPUT_MIXER2 0x2E
++#define WM8990_OUTPUT_MIXER3 0x2F
++#define WM8990_OUTPUT_MIXER4 0x30
++#define WM8990_OUTPUT_MIXER5 0x31
++#define WM8990_OUTPUT_MIXER6 0x32
++#define WM8990_OUT3_4_MIXER 0x33
++#define WM8990_LINE_MIXER1 0x34
++#define WM8990_LINE_MIXER2 0x35
++#define WM8990_SPEAKER_MIXER 0x36
++#define WM8990_ADDITIONAL_CONTROL 0x37
++#define WM8990_ANTIPOP1 0x38
++#define WM8990_ANTIPOP2 0x39
++#define WM8990_MICBIAS 0x3A
++#define WM8990_PLL1 0x3C
++#define WM8990_PLL2 0x3D
++#define WM8990_PLL3 0x3E
++#define WM8990_INTDRIVBITS 0x3F
++
++#define WM8990_REGISTER_COUNT 60
++#define WM8990_MAX_REGISTER 0x3F
++
++/*
++ * Field Definitions.
++ */
++
++/*
++ * R0 (0x00) - Reset
++ */
++#define WM8990_SW_RESET_CHIP_ID_MASK 0xFFFF /* SW_RESET_CHIP_ID - [15:0] */
++
++/*
++ * R1 (0x01) - Power Management (1)
++ */
++#define WM8990_SPK_ENA 0x1000 /* SPK_ENA */
++#define WM8990_SPK_ENA_BIT 12
++#define WM8990_OUT3_ENA 0x0800 /* OUT3_ENA */
++#define WM8990_OUT3_ENA_BIT 11
++#define WM8990_OUT4_ENA 0x0400 /* OUT4_ENA */
++#define WM8990_OUT4_ENA_BIT 10
++#define WM8990_LOUT_ENA 0x0200 /* LOUT_ENA */
++#define WM8990_LOUT_ENA_BIT 9
++#define WM8990_ROUT_ENA 0x0100 /* ROUT_ENA */
++#define WM8990_ROUT_ENA_BIT 8
++#define WM8990_MICBIAS_ENA 0x0010 /* MICBIAS_ENA */
++#define WM8990_MICBIAS_ENA_BIT 4
++#define WM8990_VMID_MODE_MASK 0x0006 /* VMID_MODE - [2:1] */
++#define WM8990_VREF_ENA 0x0001 /* VREF_ENA */
++#define WM8990_VREF_ENA_BIT 0
++
++/*
++ * R2 (0x02) - Power Management (2)
++ */
++#define WM8990_PLL_ENA 0x8000 /* PLL_ENA */
++#define WM8990_PLL_ENA_BIT 15
++#define WM8990_TSHUT_ENA 0x4000 /* TSHUT_ENA */
++#define WM8990_TSHUT_ENA_BIT 14
++#define WM8990_TSHUT_OPDIS 0x2000 /* TSHUT_OPDIS */
++#define WM8990_TSHUT_OPDIS_BIT 13
++#define WM8990_OPCLK_ENA 0x0800 /* OPCLK_ENA */
++#define WM8990_OPCLK_ENA_BIT 11
++#define WM8990_AINL_ENA 0x0200 /* AINL_ENA */
++#define WM8990_AINL_ENA_BIT 9
++#define WM8990_AINR_ENA 0x0100 /* AINR_ENA */
++#define WM8990_AINR_ENA_BIT 8
++#define WM8990_LIN34_ENA 0x0080 /* LIN34_ENA */
++#define WM8990_LIN34_ENA_BIT 7
++#define WM8990_LIN12_ENA 0x0040 /* LIN12_ENA */
++#define WM8990_LIN12_ENA_BIT 6
++#define WM8990_RIN34_ENA 0x0020 /* RIN34_ENA */
++#define WM8990_RIN34_ENA_BIT 5
++#define WM8990_RIN12_ENA 0x0010 /* RIN12_ENA */
++#define WM8990_RIN12_ENA_BIT 4
++#define WM8990_ADCL_ENA 0x0002 /* ADCL_ENA */
++#define WM8990_ADCL_ENA_BIT 1
++#define WM8990_ADCR_ENA 0x0001 /* ADCR_ENA */
++#define WM8990_ADCR_ENA_BIT 0
++
++/*
++ * R3 (0x03) - Power Management (3)
++ */
++#define WM8990_LON_ENA 0x2000 /* LON_ENA */
++#define WM8990_LON_ENA_BIT 13
++#define WM8990_LOP_ENA 0x1000 /* LOP_ENA */
++#define WM8990_LOP_ENA_BIT 12
++#define WM8990_RON_ENA 0x0800 /* RON_ENA */
++#define WM8990_RON_ENA_BIT 11
++#define WM8990_ROP_ENA 0x0400 /* ROP_ENA */
++#define WM8990_ROP_ENA_BIT 10
++#define WM8990_LOPGA_ENA 0x0080 /* LOPGA_ENA */
++#define WM8990_LOPGA_ENA_BIT 7
++#define WM8990_ROPGA_ENA 0x0040 /* ROPGA_ENA */
++#define WM8990_ROPGA_ENA_BIT 6
++#define WM8990_LOMIX_ENA 0x0020 /* LOMIX_ENA */
++#define WM8990_LOMIX_ENA_BIT 5
++#define WM8990_ROMIX_ENA 0x0010 /* ROMIX_ENA */
++#define WM8990_ROMIX_ENA_BIT 4
++#define WM8990_DACL_ENA 0x0002 /* DACL_ENA */
++#define WM8990_DACL_ENA_BIT 1
++#define WM8990_DACR_ENA 0x0001 /* DACR_ENA */
++#define WM8990_DACR_ENA_BIT 0
++
++/*
++ * R4 (0x04) - Audio Interface (1)
++ */
++#define WM8990_AIFADCL_SRC 0x8000 /* AIFADCL_SRC */
++#define WM8990_AIFADCR_SRC 0x4000 /* AIFADCR_SRC */
++#define WM8990_AIFADC_TDM 0x2000 /* AIFADC_TDM */
++#define WM8990_AIFADC_TDM_CHAN 0x1000 /* AIFADC_TDM_CHAN */
++#define WM8990_AIF_BCLK_INV 0x0100 /* AIF_BCLK_INV */
++#define WM8990_AIF_LRCLK_INV 0x0080 /* AIF_LRCLK_INV */
++#define WM8990_AIF_WL_MASK 0x0060 /* AIF_WL - [6:5] */
++#define WM8990_AIF_WL_16BITS (0 << 5)
++#define WM8990_AIF_WL_20BITS (1 << 5)
++#define WM8990_AIF_WL_24BITS (2 << 5)
++#define WM8990_AIF_WL_32BITS (3 << 5)
++#define WM8990_AIF_FMT_MASK 0x0018 /* AIF_FMT - [4:3] */
++#define WM8990_AIF_TMF_RIGHTJ (0 << 3)
++#define WM8990_AIF_TMF_LEFTJ (1 << 3)
++#define WM8990_AIF_TMF_I2S (2 << 3)
++#define WM8990_AIF_TMF_DSP (3 << 3)
++
++/*
++ * R5 (0x05) - Audio Interface (2)
++ */
++#define WM8990_DACL_SRC 0x8000 /* DACL_SRC */
++#define WM8990_DACR_SRC 0x4000 /* DACR_SRC */
++#define WM8990_AIFDAC_TDM 0x2000 /* AIFDAC_TDM */
++#define WM8990_AIFDAC_TDM_CHAN 0x1000 /* AIFDAC_TDM_CHAN */
++#define WM8990_DAC_BOOST_MASK 0x0C00 /* DAC_BOOST - [11:10] */
++#define WM8990_DAC_COMP 0x0010 /* DAC_COMP */
++#define WM8990_DAC_COMPMODE 0x0008 /* DAC_COMPMODE */
++#define WM8990_ADC_COMP 0x0004 /* ADC_COMP */
++#define WM8990_ADC_COMPMODE 0x0002 /* ADC_COMPMODE */
++#define WM8990_LOOPBACK 0x0001 /* LOOPBACK */
++
++/*
++ * R6 (0x06) - Clocking (1)
++ */
++#define WM8990_TOCLK_RATE 0x8000 /* TOCLK_RATE */
++#define WM8990_TOCLK_ENA 0x4000 /* TOCLK_ENA */
++#define WM8990_OPCLKDIV_MASK 0x1E00 /* OPCLKDIV - [12:9] */
++#define WM8990_DCLKDIV_MASK 0x01C0 /* DCLKDIV - [8:6] */
++#define WM8990_BCLK_DIV_MASK 0x001E /* BCLK_DIV - [4:1] */
++#define WM8990_BCLK_DIV_1 (0x0 << 1)
++#define WM8990_BCLK_DIV_1_5 (0x1 << 1)
++#define WM8990_BCLK_DIV_2 (0x2 << 1)
++#define WM8990_BCLK_DIV_3 (0x3 << 1)
++#define WM8990_BCLK_DIV_4 (0x4 << 1)
++#define WM8990_BCLK_DIV_5_5 (0x5 << 1)
++#define WM8990_BCLK_DIV_6 (0x6 << 1)
++#define WM8990_BCLK_DIV_8 (0x7 << 1)
++#define WM8990_BCLK_DIV_11 (0x8 << 1)
++#define WM8990_BCLK_DIV_12 (0x9 << 1)
++#define WM8990_BCLK_DIV_16 (0xA << 1)
++#define WM8990_BCLK_DIV_22 (0xB << 1)
++#define WM8990_BCLK_DIV_24 (0xC << 1)
++#define WM8990_BCLK_DIV_32 (0xD << 1)
++#define WM8990_BCLK_DIV_44 (0xE << 1)
++#define WM8990_BCLK_DIV_48 (0xF << 1)
++
++/*
++ * R7 (0x07) - Clocking (2)
++ */
++#define WM8990_MCLK_SRC 0x8000 /* MCLK_SRC */
++#define WM8990_SYSCLK_SRC 0x4000 /* SYSCLK_SRC */
++#define WM8990_CLK_FORCE 0x2000 /* CLK_FORCE */
++#define WM8990_MCLK_DIV_MASK 0x1800 /* MCLK_DIV - [12:11] */
++#define WM8990_MCLK_DIV_1 ( 0 << 11)
++#define WM8990_MCLK_DIV_2 ( 2 << 11)
++#define WM8990_MCLK_INV 0x0400 /* MCLK_INV */
++#define WM8990_ADC_CLKDIV_MASK 0x00E0 /* ADC_CLKDIV - [7:5] */
++#define WM8990_ADC_CLKDIV_1 ( 0 << 5)
++#define WM8990_ADC_CLKDIV_1_5 ( 1 << 5)
++#define WM8990_ADC_CLKDIV_2 ( 2 << 5)
++#define WM8990_ADC_CLKDIV_3 ( 3 << 5)
++#define WM8990_ADC_CLKDIV_4 ( 4 << 5)
++#define WM8990_ADC_CLKDIV_5_5 ( 5 << 5)
++#define WM8990_ADC_CLKDIV_6 ( 6 << 5)
++#define WM8990_DAC_CLKDIV_MASK 0x001C /* DAC_CLKDIV - [4:2] */
++#define WM8990_DAC_CLKDIV_1 ( 0 << 2)
++#define WM8990_DAC_CLKDIV_1_5 ( 1 << 2)
++#define WM8990_DAC_CLKDIV_2 ( 2 << 2)
++#define WM8990_DAC_CLKDIV_3 ( 3 << 2)
++#define WM8990_DAC_CLKDIV_4 ( 4 << 2)
++#define WM8990_DAC_CLKDIV_5_5 ( 5 << 2)
++#define WM8990_DAC_CLKDIV_6 ( 6 << 2)
++
++/*
++ * R8 (0x08) - Audio Interface (3)
++ */
++#define WM8990_AIF_MSTR1 0x8000 /* AIF_MSTR1 */
++#define WM8990_AIF_MSTR2 0x4000 /* AIF_MSTR2 */
++#define WM8990_AIF_SEL 0x2000 /* AIF_SEL */
++#define WM8990_ADCLRC_DIR 0x0800 /* ADCLRC_DIR */
++#define WM8990_ADCLRC_RATE_MASK 0x07FF /* ADCLRC_RATE - [10:0] */
++
++/*
++ * R9 (0x09) - Audio Interface (4)
++ */
++#define WM8990_ALRCGPIO1 0x8000 /* ALRCGPIO1 */
++#define WM8990_ALRCBGPIO6 0x4000 /* ALRCBGPIO6 */
++#define WM8990_AIF_TRIS 0x2000 /* AIF_TRIS */
++#define WM8990_DACLRC_DIR 0x0800 /* DACLRC_DIR */
++#define WM8990_DACLRC_RATE_MASK 0x07FF /* DACLRC_RATE - [10:0] */
++
++/*
++ * R10 (0x0A) - DAC CTRL
++ */
++#define WM8990_AIF_LRCLKRATE 0x0400 /* AIF_LRCLKRATE */
++#define WM8990_DAC_MONO 0x0200 /* DAC_MONO */
++#define WM8990_DAC_SB_FILT 0x0100 /* DAC_SB_FILT */
++#define WM8990_DAC_MUTERATE 0x0080 /* DAC_MUTERATE */
++#define WM8990_DAC_MUTEMODE 0x0040 /* DAC_MUTEMODE */
++#define WM8990_DEEMP_MASK 0x0030 /* DEEMP - [5:4] */
++#define WM8990_DAC_MUTE 0x0004 /* DAC_MUTE */
++#define WM8990_DACL_DATINV 0x0002 /* DACL_DATINV */
++#define WM8990_DACR_DATINV 0x0001 /* DACR_DATINV */
++
++/*
++ * R11 (0x0B) - Left DAC Digital Volume
++ */
++#define WM8990_DAC_VU 0x0100 /* DAC_VU */
++#define WM8990_DACL_VOL_MASK 0x00FF /* DACL_VOL - [7:0] */
++#define WM8990_DACL_VOL_SHIFT 0
++/*
++ * R12 (0x0C) - Right DAC Digital Volume
++ */
++#define WM8990_DAC_VU 0x0100 /* DAC_VU */
++#define WM8990_DACR_VOL_MASK 0x00FF /* DACR_VOL - [7:0] */
++#define WM8990_DACR_VOL_SHIFT 0
++/*
++ * R13 (0x0D) - Digital Side Tone
++ */
++#define WM8990_ADCL_DAC_SVOL_MASK 0x0F /* ADCL_DAC_SVOL - [12:9] */
++#define WM8990_ADCL_DAC_SVOL_SHIFT 9
++#define WM8990_ADCR_DAC_SVOL_MASK 0x0F /* ADCR_DAC_SVOL - [8:5] */
++#define WM8990_ADCR_DAC_SVOL_SHIFT 5
++#define WM8990_ADC_TO_DACL_MASK 0x03 /* ADC_TO_DACL - [3:2] */
++#define WM8990_ADC_TO_DACL_SHIFT 2
++#define WM8990_ADC_TO_DACR_MASK 0x03 /* ADC_TO_DACR - [1:0] */
++#define WM8990_ADC_TO_DACR_SHIFT 0
++
++/*
++ * R14 (0x0E) - ADC CTRL
++ */
++#define WM8990_ADC_HPF_ENA 0x0100 /* ADC_HPF_ENA */
++#define WM8990_ADC_HPF_ENA_BIT 8
++#define WM8990_ADC_HPF_CUT_MASK 0x03 /* ADC_HPF_CUT - [6:5] */
++#define WM8990_ADC_HPF_CUT_SHIFT 5
++#define WM8990_ADCL_DATINV 0x0002 /* ADCL_DATINV */
++#define WM8990_ADCL_DATINV_BIT 1
++#define WM8990_ADCR_DATINV 0x0001 /* ADCR_DATINV */
++#define WM8990_ADCR_DATINV_BIT 0
++
++/*
++ * R15 (0x0F) - Left ADC Digital Volume
++ */
++#define WM8990_ADC_VU 0x0100 /* ADC_VU */
++#define WM8990_ADCL_VOL_MASK 0x00FF /* ADCL_VOL - [7:0] */
++#define WM8990_ADCL_VOL_SHIFT 0
++
++/*
++ * R16 (0x10) - Right ADC Digital Volume
++ */
++#define WM8990_ADC_VU 0x0100 /* ADC_VU */
++#define WM8990_ADCR_VOL_MASK 0x00FF /* ADCR_VOL - [7:0] */
++#define WM8990_ADCR_VOL_SHIFT 0
++
++/*
++ * R18 (0x12) - GPIO CTRL 1
++ */
++#define WM8990_IRQ 0x1000 /* IRQ */
++#define WM8990_TEMPOK 0x0800 /* TEMPOK */
++#define WM8990_MICSHRT 0x0400 /* MICSHRT */
++#define WM8990_MICDET 0x0200 /* MICDET */
++#define WM8990_PLL_LCK 0x0100 /* PLL_LCK */
++#define WM8990_GPI8_STATUS 0x0080 /* GPI8_STATUS */
++#define WM8990_GPI7_STATUS 0x0040 /* GPI7_STATUS */
++#define WM8990_GPIO6_STATUS 0x0020 /* GPIO6_STATUS */
++#define WM8990_GPIO5_STATUS 0x0010 /* GPIO5_STATUS */
++#define WM8990_GPIO4_STATUS 0x0008 /* GPIO4_STATUS */
++#define WM8990_GPIO3_STATUS 0x0004 /* GPIO3_STATUS */
++#define WM8990_GPIO2_STATUS 0x0002 /* GPIO2_STATUS */
++#define WM8990_GPIO1_STATUS 0x0001 /* GPIO1_STATUS */
++
++/*
++ * R19 (0x13) - GPIO1 & GPIO2
++ */
++#define WM8990_GPIO2_DEB_ENA 0x8000 /* GPIO2_DEB_ENA */
++#define WM8990_GPIO2_IRQ_ENA 0x4000 /* GPIO2_IRQ_ENA */
++#define WM8990_GPIO2_PU 0x2000 /* GPIO2_PU */
++#define WM8990_GPIO2_PD 0x1000 /* GPIO2_PD */
++#define WM8990_GPIO2_SEL_MASK 0x0F00 /* GPIO2_SEL - [11:8] */
++#define WM8990_GPIO1_DEB_ENA 0x0080 /* GPIO1_DEB_ENA */
++#define WM8990_GPIO1_IRQ_ENA 0x0040 /* GPIO1_IRQ_ENA */
++#define WM8990_GPIO1_PU 0x0020 /* GPIO1_PU */
++#define WM8990_GPIO1_PD 0x0010 /* GPIO1_PD */
++#define WM8990_GPIO1_SEL_MASK 0x000F /* GPIO1_SEL - [3:0] */
++
++/*
++ * R20 (0x14) - GPIO3 & GPIO4
++ */
++#define WM8990_GPIO4_DEB_ENA 0x8000 /* GPIO4_DEB_ENA */
++#define WM8990_GPIO4_IRQ_ENA 0x4000 /* GPIO4_IRQ_ENA */
++#define WM8990_GPIO4_PU 0x2000 /* GPIO4_PU */
++#define WM8990_GPIO4_PD 0x1000 /* GPIO4_PD */
++#define WM8990_GPIO4_SEL_MASK 0x0F00 /* GPIO4_SEL - [11:8] */
++#define WM8990_GPIO3_DEB_ENA 0x0080 /* GPIO3_DEB_ENA */
++#define WM8990_GPIO3_IRQ_ENA 0x0040 /* GPIO3_IRQ_ENA */
++#define WM8990_GPIO3_PU 0x0020 /* GPIO3_PU */
++#define WM8990_GPIO3_PD 0x0010 /* GPIO3_PD */
++#define WM8990_GPIO3_SEL_MASK 0x000F /* GPIO3_SEL - [3:0] */
++
++/*
++ * R21 (0x15) - GPIO5 & GPIO6
++ */
++#define WM8990_GPIO6_DEB_ENA 0x8000 /* GPIO6_DEB_ENA */
++#define WM8990_GPIO6_IRQ_ENA 0x4000 /* GPIO6_IRQ_ENA */
++#define WM8990_GPIO6_PU 0x2000 /* GPIO6_PU */
++#define WM8990_GPIO6_PD 0x1000 /* GPIO6_PD */
++#define WM8990_GPIO6_SEL_MASK 0x0F00 /* GPIO6_SEL - [11:8] */
++#define WM8990_GPIO5_DEB_ENA 0x0080 /* GPIO5_DEB_ENA */
++#define WM8990_GPIO5_IRQ_ENA 0x0040 /* GPIO5_IRQ_ENA */
++#define WM8990_GPIO5_PU 0x0020 /* GPIO5_PU */
++#define WM8990_GPIO5_PD 0x0010 /* GPIO5_PD */
++#define WM8990_GPIO5_SEL_MASK 0x000F /* GPIO5_SEL - [3:0] */
++
++/*
++ * R22 (0x16) - GPIOCTRL 2
++ */
++#define WM8990_RD_3W_ENA 0x8000 /* RD_3W_ENA */
++#define WM8990_MODE_3W4W 0x4000 /* MODE_3W4W */
++#define WM8990_TEMPOK_IRQ_ENA 0x0800 /* TEMPOK_IRQ_ENA */
++#define WM8990_MICSHRT_IRQ_ENA 0x0400 /* MICSHRT_IRQ_ENA */
++#define WM8990_MICDET_IRQ_ENA 0x0200 /* MICDET_IRQ_ENA */
++#define WM8990_PLL_LCK_IRQ_ENA 0x0100 /* PLL_LCK_IRQ_ENA */
++#define WM8990_GPI8_DEB_ENA 0x0080 /* GPI8_DEB_ENA */
++#define WM8990_GPI8_IRQ_ENA 0x0040 /* GPI8_IRQ_ENA */
++#define WM8990_GPI8_ENA 0x0010 /* GPI8_ENA */
++#define WM8990_GPI7_DEB_ENA 0x0008 /* GPI7_DEB_ENA */
++#define WM8990_GPI7_IRQ_ENA 0x0004 /* GPI7_IRQ_ENA */
++#define WM8990_GPI7_ENA 0x0001 /* GPI7_ENA */
++
++/*
++ * R23 (0x17) - GPIO_POL
++ */
++#define WM8990_IRQ_INV 0x1000 /* IRQ_INV */
++#define WM8990_TEMPOK_POL 0x0800 /* TEMPOK_POL */
++#define WM8990_MICSHRT_POL 0x0400 /* MICSHRT_POL */
++#define WM8990_MICDET_POL 0x0200 /* MICDET_POL */
++#define WM8990_PLL_LCK_POL 0x0100 /* PLL_LCK_POL */
++#define WM8990_GPI8_POL 0x0080 /* GPI8_POL */
++#define WM8990_GPI7_POL 0x0040 /* GPI7_POL */
++#define WM8990_GPIO6_POL 0x0020 /* GPIO6_POL */
++#define WM8990_GPIO5_POL 0x0010 /* GPIO5_POL */
++#define WM8990_GPIO4_POL 0x0008 /* GPIO4_POL */
++#define WM8990_GPIO3_POL 0x0004 /* GPIO3_POL */
++#define WM8990_GPIO2_POL 0x0002 /* GPIO2_POL */
++#define WM8990_GPIO1_POL 0x0001 /* GPIO1_POL */
++
++/*
++ * R24 (0x18) - Left Line Input 1&2 Volume
++ */
++#define WM8990_IPVU 0x0100 /* IPVU */
++#define WM8990_LI12MUTE 0x0080 /* LI12MUTE */
++#define WM8990_LI12MUTE_BIT 7
++#define WM8990_LI12ZC 0x0040 /* LI12ZC */
++#define WM8990_LI12ZC_BIT 6
++#define WM8990_LIN12VOL_MASK 0x001F /* LIN12VOL - [4:0] */
++#define WM8990_LIN12VOL_SHIFT 0
++/*
++ * R25 (0x19) - Left Line Input 3&4 Volume
++ */
++#define WM8990_IPVU 0x0100 /* IPVU */
++#define WM8990_LI34MUTE 0x0080 /* LI34MUTE */
++#define WM8990_LI34MUTE_BIT 7
++#define WM8990_LI34ZC 0x0040 /* LI34ZC */
++#define WM8990_LI34ZC_BIT 6
++#define WM8990_LIN34VOL_MASK 0x001F /* LIN34VOL - [4:0] */
++#define WM8990_LIN34VOL_SHIFT 0
++
++/*
++ * R26 (0x1A) - Right Line Input 1&2 Volume
++ */
++#define WM8990_IPVU 0x0100 /* IPVU */
++#define WM8990_RI12MUTE 0x0080 /* RI12MUTE */
++#define WM8990_RI12MUTE_BIT 7
++#define WM8990_RI12ZC 0x0040 /* RI12ZC */
++#define WM8990_RI12ZC_BIT 6
++#define WM8990_RIN12VOL_MASK 0x001F /* RIN12VOL - [4:0] */
++#define WM8990_RIN12VOL_SHIFT 0
++
++/*
++ * R27 (0x1B) - Right Line Input 3&4 Volume
++ */
++#define WM8990_IPVU 0x0100 /* IPVU */
++#define WM8990_RI34MUTE 0x0080 /* RI34MUTE */
++#define WM8990_RI34MUTE_BIT 7
++#define WM8990_RI34ZC 0x0040 /* RI34ZC */
++#define WM8990_RI34ZC_BIT 6
++#define WM8990_RIN34VOL_MASK 0x001F /* RIN34VOL - [4:0] */
++#define WM8990_RIN34VOL_SHIFT 0
++
++/*
++ * R28 (0x1C) - Left Output Volume
++ */
++#define WM8990_OPVU 0x0100 /* OPVU */
++#define WM8990_LOZC 0x0080 /* LOZC */
++#define WM8990_LOZC_BIT 7
++#define WM8990_LOUTVOL_MASK 0x007F /* LOUTVOL - [6:0] */
++#define WM8990_LOUTVOL_SHIFT 0
++/*
++ * R29 (0x1D) - Right Output Volume
++ */
++#define WM8990_OPVU 0x0100 /* OPVU */
++#define WM8990_ROZC 0x0080 /* ROZC */
++#define WM8990_ROZC_BIT 7
++#define WM8990_ROUTVOL_MASK 0x007F /* ROUTVOL - [6:0] */
++#define WM8990_ROUTVOL_SHIFT 0
++/*
++ * R30 (0x1E) - Line Outputs Volume
++ */
++#define WM8990_LONMUTE 0x0040 /* LONMUTE */
++#define WM8990_LONMUTE_BIT 6
++#define WM8990_LOPMUTE 0x0020 /* LOPMUTE */
++#define WM8990_LOPMUTE_BIT 5
++#define WM8990_LOATTN 0x0010 /* LOATTN */
++#define WM8990_LOATTN_BIT 4
++#define WM8990_RONMUTE 0x0004 /* RONMUTE */
++#define WM8990_RONMUTE_BIT 2
++#define WM8990_ROPMUTE 0x0002 /* ROPMUTE */
++#define WM8990_ROPMUTE_BIT 1
++#define WM8990_ROATTN 0x0001 /* ROATTN */
++#define WM8990_ROATTN_BIT 0
++
++/*
++ * R31 (0x1F) - Out3/4 Volume
++ */
++#define WM8990_OUT3MUTE 0x0020 /* OUT3MUTE */
++#define WM8990_OUT3MUTE_BIT 5
++#define WM8990_OUT3ATTN 0x0010 /* OUT3ATTN */
++#define WM8990_OUT3ATTN_BIT 4
++#define WM8990_OUT4MUTE 0x0002 /* OUT4MUTE */
++#define WM8990_OUT4MUTE_BIT 1
++#define WM8990_OUT4ATTN 0x0001 /* OUT4ATTN */
++#define WM8990_OUT4ATTN_BIT 0
++
++/*
++ * R32 (0x20) - Left OPGA Volume
++ */
++#define WM8990_OPVU 0x0100 /* OPVU */
++#define WM8990_LOPGAZC 0x0080 /* LOPGAZC */
++#define WM8990_LOPGAZC_BIT 7
++#define WM8990_LOPGAVOL_MASK 0x007F /* LOPGAVOL - [6:0] */
++#define WM8990_LOPGAVOL_SHIFT 0
++
++/*
++ * R33 (0x21) - Right OPGA Volume
++ */
++#define WM8990_OPVU 0x0100 /* OPVU */
++#define WM8990_ROPGAZC 0x0080 /* ROPGAZC */
++#define WM8990_ROPGAZC_BIT 7
++#define WM8990_ROPGAVOL_MASK 0x007F /* ROPGAVOL - [6:0] */
++#define WM8990_ROPGAVOL_SHIFT 0
++/*
++ * R34 (0x22) - Speaker Volume
++ */
++#define WM8990_SPKVOL_MASK 0x0003 /* SPKVOL - [1:0] */
++#define WM8990_SPKVOL_SHIFT 0
++
++/*
++ * R35 (0x23) - ClassD1
++ */
++#define WM8990_CDMODE 0x0100 /* CDMODE */
++#define WM8990_CDMODE_BIT 8
++
++/*
++ * R37 (0x25) - ClassD3
++ */
++#define WM8990_DCGAIN_MASK 0x0007 /* DCGAIN - [5:3] */
++#define WM8990_DCGAIN_SHIFT 3
++#define WM8990_ACGAIN_MASK 0x0007 /* ACGAIN - [2:0] */
++#define WM8990_ACGAIN_SHIFT 0
++/*
++ * R39 (0x27) - Input Mixer1
++ */
++#define WM8990_AINLMODE_MASK 0x000C /* AINLMODE - [3:2] */
++#define WM8990_AINLMODE_SHIFT 2
++#define WM8990_AINRMODE_MASK 0x0003 /* AINRMODE - [1:0] */
++#define WM8990_AINRMODE_SHIFT 0
++
++/*
++ * R40 (0x28) - Input Mixer2
++ */
++#define WM8990_LMP4 0x0080 /* LMP4 */
++#define WM8990_LMP4_BIT 7 /* LMP4 */
++#define WM8990_LMN3 0x0040 /* LMN3 */
++#define WM8990_LMN3_BIT 6 /* LMN3 */
++#define WM8990_LMP2 0x0020 /* LMP2 */
++#define WM8990_LMP2_BIT 5 /* LMP2 */
++#define WM8990_LMN1 0x0010 /* LMN1 */
++#define WM8990_LMN1_BIT 4 /* LMN1 */
++#define WM8990_RMP4 0x0008 /* RMP4 */
++#define WM8990_RMP4_BIT 3 /* RMP4 */
++#define WM8990_RMN3 0x0004 /* RMN3 */
++#define WM8990_RMN3_BIT 2 /* RMN3 */
++#define WM8990_RMP2 0x0002 /* RMP2 */
++#define WM8990_RMP2_BIT 1 /* RMP2 */
++#define WM8990_RMN1 0x0001 /* RMN1 */
++#define WM8990_RMN1_BIT 0 /* RMN1 */
++
++/*
++ * R41 (0x29) - Input Mixer3
++ */
++#define WM8990_L34MNB 0x0100 /* L34MNB */
++#define WM8990_L34MNB_BIT 8
++#define WM8990_L34MNBST 0x0080 /* L34MNBST */
++#define WM8990_L34MNBST_BIT 7
++#define WM8990_L12MNB 0x0020 /* L12MNB */
++#define WM8990_L12MNB_BIT 5
++#define WM8990_L12MNBST 0x0010 /* L12MNBST */
++#define WM8990_L12MNBST_BIT 4
++#define WM8990_LDBVOL_MASK 0x0007 /* LDBVOL - [2:0] */
++#define WM8990_LDBVOL_SHIFT 0
++
++/*
++ * R42 (0x2A) - Input Mixer4
++ */
++#define WM8990_R34MNB 0x0100 /* R34MNB */
++#define WM8990_R34MNB_BIT 8
++#define WM8990_R34MNBST 0x0080 /* R34MNBST */
++#define WM8990_R34MNBST_BIT 7
++#define WM8990_R12MNB 0x0020 /* R12MNB */
++#define WM8990_R12MNB_BIT 5
++#define WM8990_R12MNBST 0x0010 /* R12MNBST */
++#define WM8990_R12MNBST_BIT 4
++#define WM8990_RDBVOL_MASK 0x0007 /* RDBVOL - [2:0] */
++#define WM8990_RDBVOL_SHIFT 0
++
++/*
++ * R43 (0x2B) - Input Mixer5
++ */
++#define WM8990_LI2BVOL_MASK 0x07 /* LI2BVOL - [8:6] */
++#define WM8990_LI2BVOL_SHIFT 6
++#define WM8990_LR4BVOL_MASK 0x07 /* LR4BVOL - [5:3] */
++#define WM8990_LR4BVOL_SHIFT 3
++#define WM8990_LL4BVOL_MASK 0x07 /* LL4BVOL - [2:0] */
++#define WM8990_LL4BVOL_SHIFT 0
++
++/*
++ * R44 (0x2C) - Input Mixer6
++ */
++#define WM8990_RI2BVOL_MASK 0x07 /* RI2BVOL - [8:6] */
++#define WM8990_RI2BVOL_SHIFT 6
++#define WM8990_RL4BVOL_MASK 0x07 /* RL4BVOL - [5:3] */
++#define WM8990_RL4BVOL_SHIFT 3
++#define WM8990_RR4BVOL_MASK 0x07 /* RR4BVOL - [2:0] */
++#define WM8990_RR4BVOL_SHIFT 0
++
++/*
++ * R45 (0x2D) - Output Mixer1
++ */
++#define WM8990_LRBLO 0x0080 /* LRBLO */
++#define WM8990_LRBLO_BIT 7
++#define WM8990_LLBLO 0x0040 /* LLBLO */
++#define WM8990_LLBLO_BIT 6
++#define WM8990_LRI3LO 0x0020 /* LRI3LO */
++#define WM8990_LRI3LO_BIT 5
++#define WM8990_LLI3LO 0x0010 /* LLI3LO */
++#define WM8990_LLI3LO_BIT 4
++#define WM8990_LR12LO 0x0008 /* LR12LO */
++#define WM8990_LR12LO_BIT 3
++#define WM8990_LL12LO 0x0004 /* LL12LO */
++#define WM8990_LL12LO_BIT 2
++#define WM8990_LDLO 0x0001 /* LDLO */
++#define WM8990_LDLO_BIT 0
++
++/*
++ * R46 (0x2E) - Output Mixer2
++ */
++#define WM8990_RLBRO 0x0080 /* RLBRO */
++#define WM8990_RLBRO_BIT 7
++#define WM8990_RRBRO 0x0040 /* RRBRO */
++#define WM8990_RRBRO_BIT 6
++#define WM8990_RLI3RO 0x0020 /* RLI3RO */
++#define WM8990_RLI3RO_BIT 5
++#define WM8990_RRI3RO 0x0010 /* RRI3RO */
++#define WM8990_RRI3RO_BIT 4
++#define WM8990_RL12RO 0x0008 /* RL12RO */
++#define WM8990_RL12RO_BIT 3
++#define WM8990_RR12RO 0x0004 /* RR12RO */
++#define WM8990_RR12RO_BIT 2
++#define WM8990_RDRO 0x0001 /* RDRO */
++#define WM8990_RDRO_BIT 0
++
++/*
++ * R47 (0x2F) - Output Mixer3
++ */
++#define WM8990_LLI3LOVOL_MASK 0x07 /* LLI3LOVOL - [8:6] */
++#define WM8990_LLI3LOVOL_SHIFT 6
++#define WM8990_LR12LOVOL_MASK 0x07 /* LR12LOVOL - [5:3] */
++#define WM8990_LR12LOVOL_SHIFT 3
++#define WM8990_LL12LOVOL_MASK 0x07 /* LL12LOVOL - [2:0] */
++#define WM8990_LL12LOVOL_SHIFT 0
++
++/*
++ * R48 (0x30) - Output Mixer4
++ */
++#define WM8990_RRI3ROVOL_MASK 0x07 /* RRI3ROVOL - [8:6] */
++#define WM8990_RRI3ROVOL_SHIFT 6
++#define WM8990_RL12ROVOL_MASK 0x07 /* RL12ROVOL - [5:3] */
++#define WM8990_RL12ROVOL_SHIFT 3
++#define WM8990_RR12ROVOL_MASK 0x07 /* RR12ROVOL - [2:0] */
++#define WM8990_RR12ROVOL_SHIFT 0
++
++/*
++ * R49 (0x31) - Output Mixer5
++ */
++#define WM8990_LRI3LOVOL_MASK 0x07 /* LRI3LOVOL - [8:6] */
++#define WM8990_LRI3LOVOL_SHIFT 6
++#define WM8990_LRBLOVOL_MASK 0x07 /* LRBLOVOL - [5:3] */
++#define WM8990_LRBLOVOL_SHIFT 3
++#define WM8990_LLBLOVOL_MASK 0x07 /* LLBLOVOL - [2:0] */
++#define WM8990_LLBLOVOL_SHIFT 0
++
++/*
++ * R50 (0x32) - Output Mixer6
++ */
++#define WM8990_RLI3ROVOL_MASK 0x07 /* RLI3ROVOL - [8:6] */
++#define WM8990_RLI3ROVOL_SHIFT 6
++#define WM8990_RLBROVOL_MASK 0x07 /* RLBROVOL - [5:3] */
++#define WM8990_RLBROVOL_SHIFT 3
++#define WM8990_RRBROVOL_MASK 0x07 /* RRBROVOL - [2:0] */
++#define WM8990_RRBROVOL_SHIFT 0
++
++/*
++ * R51 (0x33) - Out3/4 Mixer
++ */
++#define WM8990_VSEL_MASK 0x0180 /* VSEL - [8:7] */
++#define WM8990_LI4O3 0x0020 /* LI4O3 */
++#define WM8990_LI4O3_BIT 5
++#define WM8990_LPGAO3 0x0010 /* LPGAO3 */
++#define WM8990_LPGAO3_BIT 4
++#define WM8990_RI4O4 0x0002 /* RI4O4 */
++#define WM8990_RI4O4_BIT 1
++#define WM8990_RPGAO4 0x0001 /* RPGAO4 */
++#define WM8990_RPGAO4_BIT 0
++/*
++ * R52 (0x34) - Line Mixer1
++ */
++#define WM8990_LLOPGALON 0x0040 /* LLOPGALON */
++#define WM8990_LLOPGALON_BIT 6
++#define WM8990_LROPGALON 0x0020 /* LROPGALON */
++#define WM8990_LROPGALON_BIT 5
++#define WM8990_LOPLON 0x0010 /* LOPLON */
++#define WM8990_LOPLON_BIT 4
++#define WM8990_LR12LOP 0x0004 /* LR12LOP */
++#define WM8990_LR12LOP_BIT 2
++#define WM8990_LL12LOP 0x0002 /* LL12LOP */
++#define WM8990_LL12LOP_BIT 1
++#define WM8990_LLOPGALOP 0x0001 /* LLOPGALOP */
++#define WM8990_LLOPGALOP_BIT 0
++/*
++ * R53 (0x35) - Line Mixer2
++ */
++#define WM8990_RROPGARON 0x0040 /* RROPGARON */
++#define WM8990_RROPGARON_BIT 6
++#define WM8990_RLOPGARON 0x0020 /* RLOPGARON */
++#define WM8990_RLOPGARON_BIT 5
++#define WM8990_ROPRON 0x0010 /* ROPRON */
++#define WM8990_ROPRON_BIT 4
++#define WM8990_RL12ROP 0x0004 /* RL12ROP */
++#define WM8990_RL12ROP_BIT 2
++#define WM8990_RR12ROP 0x0002 /* RR12ROP */
++#define WM8990_RR12ROP_BIT 1
++#define WM8990_RROPGAROP 0x0001 /* RROPGAROP */
++#define WM8990_RROPGAROP_BIT 0
++
++/*
++ * R54 (0x36) - Speaker Mixer
++ */
++#define WM8990_LB2SPK 0x0080 /* LB2SPK */
++#define WM8990_LB2SPK_BIT 7
++#define WM8990_RB2SPK 0x0040 /* RB2SPK */
++#define WM8990_RB2SPK_BIT 6
++#define WM8990_LI2SPK 0x0020 /* LI2SPK */
++#define WM8990_LI2SPK_BIT 5
++#define WM8990_RI2SPK 0x0010 /* RI2SPK */
++#define WM8990_RI2SPK_BIT 4
++#define WM8990_LOPGASPK 0x0008 /* LOPGASPK */
++#define WM8990_LOPGASPK_BIT 3
++#define WM8990_ROPGASPK 0x0004 /* ROPGASPK */
++#define WM8990_ROPGASPK_BIT 2
++#define WM8990_LDSPK 0x0002 /* LDSPK */
++#define WM8990_LDSPK_BIT 1
++#define WM8990_RDSPK 0x0001 /* RDSPK */
++#define WM8990_RDSPK_BIT 0
++
++/*
++ * R55 (0x37) - Additional Control
++ */
++#define WM8990_VROI 0x0001 /* VROI */
++
++/*
++ * R56 (0x38) - AntiPOP1
++ */
++#define WM8990_DIS_LLINE 0x0020 /* DIS_LLINE */
++#define WM8990_DIS_RLINE 0x0010 /* DIS_RLINE */
++#define WM8990_DIS_OUT3 0x0008 /* DIS_OUT3 */
++#define WM8990_DIS_OUT4 0x0004 /* DIS_OUT4 */
++#define WM8990_DIS_LOUT 0x0002 /* DIS_LOUT */
++#define WM8990_DIS_ROUT 0x0001 /* DIS_ROUT */
++
++/*
++ * R57 (0x39) - AntiPOP2
++ */
++#define WM8990_SOFTST 0x0040 /* SOFTST */
++#define WM8990_BUFIOEN 0x0008 /* BUFIOEN */
++#define WM8990_BUFDCOPEN 0x0004 /* BUFDCOPEN */
++#define WM8990_POBCTRL 0x0002 /* POBCTRL */
++#define WM8990_VMIDTOG 0x0001 /* VMIDTOG */
++
++/*
++ * R58 (0x3A) - MICBIAS
++ */
++#define WM8990_MCDSCTH_MASK 0x00C0 /* MCDSCTH - [7:6] */
++#define WM8990_MCDTHR_MASK 0x0038 /* MCDTHR - [5:3] */
++#define WM8990_MCD 0x0004 /* MCD */
++#define WM8990_MBSEL 0x0001 /* MBSEL */
++
++/*
++ * R60 (0x3C) - PLL1
++ */
++#define WM8990_SDM 0x0080 /* SDM */
++#define WM8990_PRESCALE 0x0040 /* PRESCALE */
++#define WM8990_PLLN_MASK 0x000F /* PLLN - [3:0] */
++
++/*
++ * R61 (0x3D) - PLL2
++ */
++#define WM8990_PLLK1_MASK 0x00FF /* PLLK1 - [7:0] */
++
++/*
++ * R62 (0x3E) - PLL3
++ */
++#define WM8990_PLLK2_MASK 0x00FF /* PLLK2 - [7:0] */
++
++/*
++ * R63 (0x3F) - Internal Driver Bits
++*/
++#define WM8990_INMIXL_PWR_BIT 0
++#define WM8990_AINLMUX_PWR_BIT 1
++#define WM8990_INMIXR_PWR_BIT 2
++#define WM8990_AINRMUX_PWR_BIT 3
++
++/*
++ * Default values.
++ */
++#define WM8990_REGISTER_DEFAULTS \
++{ \
++ /*0x8990,*/ /* R0 - Reset */ \
++ 0x0000, /* R1 - Power Management (1) */ \
++ 0x6000, /* R2 - Power Management (2) */ \
++ 0x0000, /* R3 - Power Management (3) */ \
++ 0x4050, /* R4 - Audio Interface (1) */ \
++ 0x4000, /* R5 - Audio Interface (2) */ \
++ 0x01C8, /* R6 - Clocking (1) */ \
++ 0x0000, /* R7 - Clocking (2) */ \
++ 0x0040, /* R8 - Audio Interface (3) */ \
++ 0x0040, /* R9 - Audio Interface (4) */ \
++ 0x0004, /* R10 - DAC CTRL */ \
++ 0x00C0, /* R11 - Left DAC Digital Volume */ \
++ 0x00C0, /* R12 - Right DAC Digital Volume */ \
++ 0x0000, /* R13 - Digital Side Tone */ \
++ 0x0100, /* R14 - ADC CTRL */ \
++ 0x00C0, /* R15 - Left ADC Digital Volume */ \
++ 0x00C0, /* R16 - Right ADC Digital Volume */ \
++ 0x0000, /* R17 */ \
++ 0x0000, /* R18 - GPIO CTRL 1 */ \
++ 0x1000, /* R19 - GPIO1 & GPIO2 */ \
++ 0x1010, /* R20 - GPIO3 & GPIO4 */ \
++ 0x1010, /* R21 - GPIO5 & GPIO6 */ \
++ 0x8000, /* R22 - GPIOCTRL 2 */ \
++ 0x0800, /* R23 - GPIO_POL */ \
++ 0x008B, /* R24 - Left Line Input 1&2 Volume */ \
++ 0x008B, /* R25 - Left Line Input 3&4 Volume */ \
++ 0x008B, /* R26 - Right Line Input 1&2 Volume */ \
++ 0x008B, /* R27 - Right Line Input 3&4 Volume */ \
++ 0x0000, /* R28 - Left Output Volume */ \
++ 0x0000, /* R29 - Right Output Volume */ \
++ 0x0066, /* R30 - Line Outputs Volume */ \
++ 0x0022, /* R31 - Out3/4 Volume */ \
++ 0x0079, /* R32 - Left OPGA Volume */ \
++ 0x0079, /* R33 - Right OPGA Volume */ \
++ 0x0003, /* R34 - Speaker Volume */ \
++ 0x0003, /* R35 - ClassD1 */ \
++ 0x0000, /* R36 */ \
++ 0x0100, /* R37 - ClassD3 */ \
++ 0x0000, /* R38 */ \
++ 0x0000, /* R39 - Input Mixer1 */ \
++ 0x0000, /* R40 - Input Mixer2 */ \
++ 0x0000, /* R41 - Input Mixer3 */ \
++ 0x0000, /* R42 - Input Mixer4 */ \
++ 0x0000, /* R43 - Input Mixer5 */ \
++ 0x0000, /* R44 - Input Mixer6 */ \
++ 0x0000, /* R45 - Output Mixer1 */ \
++ 0x0000, /* R46 - Output Mixer2 */ \
++ 0x0000, /* R47 - Output Mixer3 */ \
++ 0x0000, /* R48 - Output Mixer4 */ \
++ 0x0000, /* R49 - Output Mixer5 */ \
++ 0x0000, /* R50 - Output Mixer6 */ \
++ 0x0180, /* R51 - Out3/4 Mixer */ \
++ 0x0000, /* R52 - Line Mixer1 */ \
++ 0x0000, /* R53 - Line Mixer2 */ \
++ 0x0000, /* R54 - Speaker Mixer */ \
++ 0x0000, /* R55 - Additional Control */ \
++ 0x0000, /* R56 - AntiPOP1 */ \
++ 0x0000, /* R57 - AntiPOP2 */ \
++ 0x0000, /* R58 - MICBIAS */ \
++ 0x0000, /* R59 */ \
++ 0x0008, /* R60 - PLL1 */ \
++ 0x0031, /* R61 - PLL2 */ \
++ 0x0026, /* R62 - PLL3 */ \
++}
++
++struct wm8990_setup_data {
++ unsigned short i2c_address;
++};
++
++#define WM8990_MCLK_DIV 0
++#define WM8990_DACCLK_DIV 1
++#define WM8990_ADCCLK_DIV 2
++#define WM8990_BCLK_DIV 3
++
++#define WM8990_MCLK 0
++
++extern struct snd_soc_codec_dai wm8990_dai;
++extern struct snd_soc_codec_device soc_codec_dev_wm8990;
++
++#endif /* __WM8990REGISTERDEFS_H__ */
++/*------------------------------ END OF FILE ---------------------------------*/
+diff --git a/sound/soc/codecs/wm9713.c b/sound/soc/codecs/wm9713.c
+new file mode 100644
+index 0000000..05a1c31
+--- /dev/null
++++ b/sound/soc/codecs/wm9713.c
+@@ -0,0 +1,1224 @@
++/*
++ * wm9713.c -- ALSA Soc WM9713 codec support
++ *
++ * Copyright 2006 Wolfson Microelectronics PLC.
++ * Author: Liam Girdwood
++ * liam.girdwood@wolfsonmicro.com or linux@wolfsonmicro.com
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * Revision history
++ * 4th Feb 2006 Initial version.
++ *
++ * Features:-
++ *
++ * o Support for AC97 Codec, Voice DAC and Aux DAC
++ * o Support for DAPM
++ */
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/device.h>
++#include <sound/driver.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/ac97_codec.h>
++#include <sound/initval.h>
++#include <sound/pcm_params.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++
++#include "wm9713.h"
++
++#define WM9713_VERSION "0.12"
++
++struct wm9713_priv {
++ u32 pll_in; /* PLL input frequency */
++ u32 pll_out; /* PLL output frequency */
++};
++
++static unsigned int ac97_read(struct snd_soc_codec *codec,
++ unsigned int reg);
++static int ac97_write(struct snd_soc_codec *codec,
++ unsigned int reg, unsigned int val);
++
++/*
++ * WM9713 register cache
++ * Reg 0x3c bit 15 is used by touch driver.
++ */
++static const u16 wm9713_reg[] = {
++ 0x6174, 0x8080, 0x8080, 0x8080, // 6
++ 0xc880, 0xe808, 0xe808, 0x0808, // e
++ 0x00da, 0x8000, 0xd600, 0xaaa0, // 16
++ 0xaaa0, 0xaaa0, 0x0000, 0x0000, // 1e
++ 0x0f0f, 0x0040, 0x0000, 0x7f00, // 26
++ 0x0405, 0x0410, 0xbb80, 0xbb80, // 2e
++ 0x0000, 0xbb80, 0x0000, 0x4523, // 36
++ 0x0000, 0x2000, 0x7eff, 0xffff, // 3e
++ 0x0000, 0x0000, 0x0080, 0x0000, // 46
++ 0x0000, 0x0000, 0xfffe, 0xffff, // 4e
++ 0x0000, 0x0000, 0x0000, 0xfffe, // 56
++ 0x4000, 0x0000, 0x0000, 0x0000, // 5e
++ 0xb032, 0x3e00, 0x0000, 0x0000, // 66
++ 0x0000, 0x0000, 0x0000, 0x0000, // 6e
++ 0x0000, 0x0000, 0x0000, 0x0006, // 76
++ 0x0001, 0x0000, 0x574d, 0x4c13, // 7e
++ 0x0000, 0x0000, 0x0000 // virtual hp & mic mixers
++};
++
++/* virtual HP mixers regs */
++#define HPL_MIXER 0x80
++#define HPR_MIXER 0x82
++#define MICB_MUX 0x82
++
++static const char *wm9713_mic_mixer[] = {"Stereo", "Mic 1", "Mic 2", "Mute"};
++static const char *wm9713_rec_mux[] = {"Stereo", "Left", "Right", "Mute"};
++static const char *wm9713_rec_src[] =
++ {"Mic 1", "Mic 2", "Line", "Mono In", "Headphone", "Speaker",
++ "Mono Out", "Zh"};
++static const char *wm9713_rec_gain[] = {"+1.5dB Steps", "+0.75dB Steps"};
++static const char *wm9713_alc_select[] = {"None", "Left", "Right", "Stereo"};
++static const char *wm9713_mono_pga[] = {"Vmid", "Zh", "Mono", "Inv",
++ "Mono Vmid", "Inv Vmid"};
++static const char *wm9713_spk_pga[] =
++ {"Vmid", "Zh", "Headphone", "Speaker", "Inv", "Headphone Vmid",
++ "Speaker Vmid", "Inv Vmid"};
++static const char *wm9713_hp_pga[] = {"Vmid", "Zh", "Headphone",
++ "Headphone Vmid"};
++static const char *wm9713_out3_pga[] = {"Vmid", "Zh", "Inv 1", "Inv 1 Vmid"};
++static const char *wm9713_out4_pga[] = {"Vmid", "Zh", "Inv 2", "Inv 2 Vmid"};
++static const char *wm9713_dac_inv[] =
++ {"Off", "Mono", "Speaker", "Left Headphone", "Right Headphone",
++ "Headphone Mono", "NC", "Vmid"};
++static const char *wm9713_bass[] = {"Linear Control", "Adaptive Boost"};
++static const char *wm9713_ng_type[] = {"Constant Gain", "Mute"};
++static const char *wm9713_mic_select[] = {"Mic 1", "Mic 2 A", "Mic 2 B"};
++static const char *wm9713_micb_select[] = {"MPB", "MPA"};
++
++static const struct soc_enum wm9713_enum[] = {
++SOC_ENUM_SINGLE(AC97_LINE, 3, 4, wm9713_mic_mixer), /* record mic mixer 0 */
++SOC_ENUM_SINGLE(AC97_VIDEO, 14, 4, wm9713_rec_mux), /* record mux hp 1 */
++SOC_ENUM_SINGLE(AC97_VIDEO, 9, 4, wm9713_rec_mux), /* record mux mono 2 */
++SOC_ENUM_SINGLE(AC97_VIDEO, 3, 8, wm9713_rec_src), /* record mux left 3 */
++SOC_ENUM_SINGLE(AC97_VIDEO, 0, 8, wm9713_rec_src), /* record mux right 4*/
++SOC_ENUM_DOUBLE(AC97_CD, 14, 6, 2, wm9713_rec_gain), /* record step size 5 */
++SOC_ENUM_SINGLE(AC97_PCI_SVID, 14, 4, wm9713_alc_select), /* alc source select 6*/
++SOC_ENUM_SINGLE(AC97_REC_GAIN, 14, 4, wm9713_mono_pga), /* mono input select 7 */
++SOC_ENUM_SINGLE(AC97_REC_GAIN, 11, 8, wm9713_spk_pga), /* speaker left input select 8 */
++SOC_ENUM_SINGLE(AC97_REC_GAIN, 8, 8, wm9713_spk_pga), /* speaker right input select 9 */
++SOC_ENUM_SINGLE(AC97_REC_GAIN, 6, 3, wm9713_hp_pga), /* headphone left input 10 */
++SOC_ENUM_SINGLE(AC97_REC_GAIN, 4, 3, wm9713_hp_pga), /* headphone right input 11 */
++SOC_ENUM_SINGLE(AC97_REC_GAIN, 2, 4, wm9713_out3_pga), /* out 3 source 12 */
++SOC_ENUM_SINGLE(AC97_REC_GAIN, 0, 4, wm9713_out4_pga), /* out 4 source 13 */
++SOC_ENUM_SINGLE(AC97_REC_GAIN_MIC, 13, 8, wm9713_dac_inv), /* dac invert 1 14 */
++SOC_ENUM_SINGLE(AC97_REC_GAIN_MIC, 10, 8, wm9713_dac_inv), /* dac invert 2 15 */
++SOC_ENUM_SINGLE(AC97_GENERAL_PURPOSE, 15, 2, wm9713_bass), /* bass control 16 */
++SOC_ENUM_SINGLE(AC97_PCI_SVID, 5, 2, wm9713_ng_type), /* noise gate type 17 */
++SOC_ENUM_SINGLE(AC97_3D_CONTROL, 12, 3, wm9713_mic_select), /* mic selection 18 */
++SOC_ENUM_SINGLE(MICB_MUX, 0, 2, wm9713_micb_select), /* mic selection 19 */
++};
++
++static const struct snd_kcontrol_new wm9713_snd_ac97_controls[] = {
++SOC_DOUBLE("Speaker Playback Volume", AC97_MASTER, 8, 0, 31, 1),
++SOC_DOUBLE("Speaker Playback Switch", AC97_MASTER, 15, 7, 1, 1),
++SOC_DOUBLE("Headphone Playback Volume", AC97_HEADPHONE, 8, 0, 31, 1),
++SOC_DOUBLE("Headphone Playback Switch", AC97_HEADPHONE,15, 7, 1, 1),
++SOC_DOUBLE("Line In Volume", AC97_PC_BEEP, 8, 0, 31, 1),
++SOC_DOUBLE("PCM Playback Volume", AC97_PHONE, 8, 0, 31, 1),
++SOC_SINGLE("Mic 1 Volume", AC97_MIC, 8, 31, 1),
++SOC_SINGLE("Mic 2 Volume", AC97_MIC, 0, 31, 1),
++
++SOC_SINGLE("Mic Boost (+20dB) Switch", AC97_LINE, 5, 1, 0),
++SOC_SINGLE("Mic Headphone Mixer Volume", AC97_LINE, 0, 7, 1),
++
++SOC_SINGLE("Capture Switch", AC97_CD, 15, 1, 1),
++SOC_ENUM("Capture Volume Steps", wm9713_enum[5]),
++SOC_DOUBLE("Capture Volume", AC97_CD, 8, 0, 31, 0),
++SOC_SINGLE("Capture ZC Switch", AC97_CD, 7, 1, 0),
++
++SOC_SINGLE("Capture to Headphone Volume", AC97_VIDEO, 11, 7, 1),
++SOC_SINGLE("Capture to Mono Boost (+20dB) Switch", AC97_VIDEO, 8, 1, 0),
++SOC_SINGLE("Capture ADC Boost (+20dB) Switch", AC97_VIDEO, 6, 1, 0),
++
++SOC_SINGLE("ALC Target Volume", AC97_CODEC_CLASS_REV, 12, 15, 0),
++SOC_SINGLE("ALC Hold Time", AC97_CODEC_CLASS_REV, 8, 15, 0),
++SOC_SINGLE("ALC Decay Time ", AC97_CODEC_CLASS_REV, 4, 15, 0),
++SOC_SINGLE("ALC Attack Time", AC97_CODEC_CLASS_REV, 0, 15, 0),
++SOC_ENUM("ALC Function", wm9713_enum[6]),
++SOC_SINGLE("ALC Max Volume", AC97_PCI_SVID, 11, 7, 0),
++SOC_SINGLE("ALC ZC Timeout", AC97_PCI_SVID, 9, 3, 0),
++SOC_SINGLE("ALC ZC Switch", AC97_PCI_SVID, 8, 1, 0),
++SOC_SINGLE("ALC NG Switch", AC97_PCI_SVID, 7, 1, 0),
++SOC_ENUM("ALC NG Type", wm9713_enum[17]),
++SOC_SINGLE("ALC NG Threshold", AC97_PCI_SVID, 0, 31, 0),
++
++SOC_DOUBLE("Speaker Playback ZC Switch", AC97_MASTER, 14, 6, 1, 0),
++SOC_DOUBLE("Headphone Playback ZC Switch", AC97_HEADPHONE, 14, 6, 1, 0),
++
++SOC_SINGLE("Out4 Playback Switch", AC97_MASTER_MONO, 15, 1, 1),
++SOC_SINGLE("Out4 Playback ZC Switch", AC97_MASTER_MONO, 14, 1, 0),
++SOC_SINGLE("Out4 Playback Volume", AC97_MASTER_MONO, 8, 63, 1),
++
++SOC_SINGLE("Out3 Playback Switch", AC97_MASTER_MONO, 7, 1, 1),
++SOC_SINGLE("Out3 Playback ZC Switch", AC97_MASTER_MONO, 6, 1, 0),
++SOC_SINGLE("Out3 Playback Volume", AC97_MASTER_MONO, 0, 63, 1),
++
++SOC_SINGLE("Mono Capture Volume", AC97_MASTER_TONE, 8, 31, 1),
++SOC_SINGLE("Mono Playback Switch", AC97_MASTER_TONE, 7, 1, 1),
++SOC_SINGLE("Mono Playback ZC Switch", AC97_MASTER_TONE, 6, 1, 0),
++SOC_SINGLE("Mono Playback Volume", AC97_MASTER_TONE, 0, 31, 1),
++
++SOC_SINGLE("PC Beep Playback Headphone Volume", AC97_AUX, 12, 7, 1),
++SOC_SINGLE("PC Beep Playback Speaker Volume", AC97_AUX, 8, 7, 1),
++SOC_SINGLE("PC Beep Playback Mono Volume", AC97_AUX, 4, 7, 1),
++
++SOC_SINGLE("Voice Playback Headphone Volume", AC97_PCM, 12, 7, 1),
++SOC_SINGLE("Voice Playback Master Volume", AC97_PCM, 8, 7, 1),
++SOC_SINGLE("Voice Playback Mono Volume", AC97_PCM, 4, 7, 1),
++
++SOC_SINGLE("Aux Playback Headphone Volume", AC97_REC_SEL, 12, 7, 1),
++SOC_SINGLE("Aux Playback Master Volume", AC97_REC_SEL, 8, 7, 1),
++SOC_SINGLE("Aux Playback Mono Volume", AC97_REC_SEL, 4, 7, 1),
++
++SOC_ENUM("Bass Control", wm9713_enum[16]),
++SOC_SINGLE("Bass Cut-off Switch", AC97_GENERAL_PURPOSE, 12, 1, 1),
++SOC_SINGLE("Tone Cut-off Switch", AC97_GENERAL_PURPOSE, 4, 1, 1),
++SOC_SINGLE("Playback Attenuate (-6dB) Switch", AC97_GENERAL_PURPOSE, 6, 1, 0),
++SOC_SINGLE("Bass Volume", AC97_GENERAL_PURPOSE, 8, 15, 1),
++SOC_SINGLE("Tone Volume", AC97_GENERAL_PURPOSE, 0, 15, 1),
++
++SOC_SINGLE("3D Upper Cut-off Switch", AC97_REC_GAIN_MIC, 5, 1, 0),
++SOC_SINGLE("3D Lower Cut-off Switch", AC97_REC_GAIN_MIC, 4, 1, 0),
++SOC_SINGLE("3D Depth", AC97_REC_GAIN_MIC, 0, 15, 1),
++};
++
++/* add non dapm controls */
++static int wm9713_add_controls(struct snd_soc_codec *codec)
++{
++ int err, i;
++
++ for (i = 0; i < ARRAY_SIZE(wm9713_snd_ac97_controls); i++) {
++ err = snd_ctl_add(codec->card,
++ snd_soc_cnew(&wm9713_snd_ac97_controls[i],codec, NULL));
++ if (err < 0)
++ return err;
++ }
++ return 0;
++}
++
++/* We have to create a fake left and right HP mixers because
++ * the codec only has a single control that is shared by both channels.
++ * This makes it impossible to determine the audio path using the current
++ * register map, thus we add a new (virtual) register to help determine the
++ * audio route within the device.
++ */
++static int mixer_event (struct snd_soc_dapm_widget *w,
++ struct snd_kcontrol *kcontrol, int event)
++{
++ u16 l, r, beep, tone, phone, rec, pcm, aux;
++
++ l = ac97_read(w->codec, HPL_MIXER);
++ r = ac97_read(w->codec, HPR_MIXER);
++ beep = ac97_read(w->codec, AC97_PC_BEEP);
++ tone = ac97_read(w->codec, AC97_MASTER_TONE);
++ phone = ac97_read(w->codec, AC97_PHONE);
++ rec = ac97_read(w->codec, AC97_REC_SEL);
++ pcm = ac97_read(w->codec, AC97_PCM);
++ aux = ac97_read(w->codec, AC97_AUX);
++
++ if (event & SND_SOC_DAPM_PRE_REG)
++ return 0;
++ if (l & 0x1 || r & 0x1)
++ ac97_write(w->codec, AC97_PC_BEEP, beep & 0x7fff);
++ else
++ ac97_write(w->codec, AC97_PC_BEEP, beep | 0x8000);
++
++ if (l & 0x2 || r & 0x2)
++ ac97_write(w->codec, AC97_MASTER_TONE, tone & 0x7fff);
++ else
++ ac97_write(w->codec, AC97_MASTER_TONE, tone | 0x8000);
++
++ if (l & 0x4 || r & 0x4)
++ ac97_write(w->codec, AC97_PHONE, phone & 0x7fff);
++ else
++ ac97_write(w->codec, AC97_PHONE, phone | 0x8000);
++
++ if (l & 0x8 || r & 0x8)
++ ac97_write(w->codec, AC97_REC_SEL, rec & 0x7fff);
++ else
++ ac97_write(w->codec, AC97_REC_SEL, rec | 0x8000);
++
++ if (l & 0x10 || r & 0x10)
++ ac97_write(w->codec, AC97_PCM, pcm & 0x7fff);
++ else
++ ac97_write(w->codec, AC97_PCM, pcm | 0x8000);
++
++ if (l & 0x20 || r & 0x20)
++ ac97_write(w->codec, AC97_AUX, aux & 0x7fff);
++ else
++ ac97_write(w->codec, AC97_AUX, aux | 0x8000);
++
++ return 0;
++}
++
++/* Left Headphone Mixers */
++static const struct snd_kcontrol_new wm9713_hpl_mixer_controls[] = {
++SOC_DAPM_SINGLE("PC Beep Playback Switch", HPL_MIXER, 5, 1, 0),
++SOC_DAPM_SINGLE("Voice Playback Switch", HPL_MIXER, 4, 1, 0),
++SOC_DAPM_SINGLE("Aux Playback Switch", HPL_MIXER, 3, 1, 0),
++SOC_DAPM_SINGLE("PCM Playback Switch", HPL_MIXER, 2, 1, 0),
++SOC_DAPM_SINGLE("MonoIn Playback Switch", HPL_MIXER, 1, 1, 0),
++SOC_DAPM_SINGLE("Bypass Playback Switch", HPL_MIXER, 0, 1, 0),
++};
++
++/* Right Headphone Mixers */
++static const struct snd_kcontrol_new wm9713_hpr_mixer_controls[] = {
++SOC_DAPM_SINGLE("PC Beep Playback Switch", HPR_MIXER, 5, 1, 0),
++SOC_DAPM_SINGLE("Voice Playback Switch", HPR_MIXER, 4, 1, 0),
++SOC_DAPM_SINGLE("Aux Playback Switch", HPR_MIXER, 3, 1, 0),
++SOC_DAPM_SINGLE("PCM Playback Switch", HPR_MIXER, 2, 1, 0),
++SOC_DAPM_SINGLE("MonoIn Playback Switch", HPR_MIXER, 1, 1, 0),
++SOC_DAPM_SINGLE("Bypass Playback Switch", HPR_MIXER, 0, 1, 0),
++};
++
++/* headphone capture mux */
++static const struct snd_kcontrol_new wm9713_hp_rec_mux_controls =
++SOC_DAPM_ENUM("Route", wm9713_enum[1]);
++
++/* headphone mic mux */
++static const struct snd_kcontrol_new wm9713_hp_mic_mux_controls =
++SOC_DAPM_ENUM("Route", wm9713_enum[0]);
++
++/* Speaker Mixer */
++static const struct snd_kcontrol_new wm9713_speaker_mixer_controls[] = {
++SOC_DAPM_SINGLE("PC Beep Playback Switch", AC97_AUX, 11, 1, 1),
++SOC_DAPM_SINGLE("Voice Playback Switch", AC97_PCM, 11, 1, 1),
++SOC_DAPM_SINGLE("Aux Playback Switch", AC97_REC_SEL, 11, 1, 1),
++SOC_DAPM_SINGLE("PCM Playback Switch", AC97_PHONE, 14, 1, 1),
++SOC_DAPM_SINGLE("MonoIn Playback Switch", AC97_MASTER_TONE, 14, 1, 1),
++SOC_DAPM_SINGLE("Bypass Playback Switch", AC97_PC_BEEP, 14, 1, 1),
++};
++
++/* Mono Mixer */
++static const struct snd_kcontrol_new wm9713_mono_mixer_controls[] = {
++SOC_DAPM_SINGLE("PC Beep Playback Switch", AC97_AUX, 7, 1, 1),
++SOC_DAPM_SINGLE("Voice Playback Switch", AC97_PCM, 7, 1, 1),
++SOC_DAPM_SINGLE("Aux Playback Switch", AC97_REC_SEL, 7, 1, 1),
++SOC_DAPM_SINGLE("PCM Playback Switch", AC97_PHONE, 13, 1, 1),
++SOC_DAPM_SINGLE("MonoIn Playback Switch", AC97_MASTER_TONE, 13, 1, 1),
++SOC_DAPM_SINGLE("Bypass Playback Switch", AC97_PC_BEEP, 13, 1, 1),
++SOC_DAPM_SINGLE("Mic 1 Sidetone Switch", AC97_LINE, 7, 1, 1),
++SOC_DAPM_SINGLE("Mic 2 Sidetone Switch", AC97_LINE, 6, 1, 1),
++};
++
++/* mono mic mux */
++static const struct snd_kcontrol_new wm9713_mono_mic_mux_controls =
++SOC_DAPM_ENUM("Route", wm9713_enum[2]);
++
++/* mono output mux */
++static const struct snd_kcontrol_new wm9713_mono_mux_controls =
++SOC_DAPM_ENUM("Route", wm9713_enum[7]);
++
++/* speaker left output mux */
++static const struct snd_kcontrol_new wm9713_hp_spkl_mux_controls =
++SOC_DAPM_ENUM("Route", wm9713_enum[8]);
++
++/* speaker right output mux */
++static const struct snd_kcontrol_new wm9713_hp_spkr_mux_controls =
++SOC_DAPM_ENUM("Route", wm9713_enum[9]);
++
++/* headphone left output mux */
++static const struct snd_kcontrol_new wm9713_hpl_out_mux_controls =
++SOC_DAPM_ENUM("Route", wm9713_enum[10]);
++
++/* headphone right output mux */
++static const struct snd_kcontrol_new wm9713_hpr_out_mux_controls =
++SOC_DAPM_ENUM("Route", wm9713_enum[11]);
++
++/* Out3 mux */
++static const struct snd_kcontrol_new wm9713_out3_mux_controls =
++SOC_DAPM_ENUM("Route", wm9713_enum[12]);
++
++/* Out4 mux */
++static const struct snd_kcontrol_new wm9713_out4_mux_controls =
++SOC_DAPM_ENUM("Route", wm9713_enum[13]);
++
++/* DAC inv mux 1 */
++static const struct snd_kcontrol_new wm9713_dac_inv1_mux_controls =
++SOC_DAPM_ENUM("Route", wm9713_enum[14]);
++
++/* DAC inv mux 2 */
++static const struct snd_kcontrol_new wm9713_dac_inv2_mux_controls =
++SOC_DAPM_ENUM("Route", wm9713_enum[15]);
++
++/* Capture source left */
++static const struct snd_kcontrol_new wm9713_rec_srcl_mux_controls =
++SOC_DAPM_ENUM("Route", wm9713_enum[3]);
++
++/* Capture source right */
++static const struct snd_kcontrol_new wm9713_rec_srcr_mux_controls =
++SOC_DAPM_ENUM("Route", wm9713_enum[4]);
++
++/* mic source */
++static const struct snd_kcontrol_new wm9713_mic_sel_mux_controls =
++SOC_DAPM_ENUM("Route", wm9713_enum[18]);
++
++/* mic source B virtual control */
++static const struct snd_kcontrol_new wm9713_micb_sel_mux_controls =
++SOC_DAPM_ENUM("Route", wm9713_enum[19]);
++
++static const struct snd_soc_dapm_widget wm9713_dapm_widgets[] = {
++SND_SOC_DAPM_MUX("Capture Headphone Mux", SND_SOC_NOPM, 0, 0,
++ &wm9713_hp_rec_mux_controls),
++SND_SOC_DAPM_MUX("Sidetone Mux", SND_SOC_NOPM, 0, 0,
++ &wm9713_hp_mic_mux_controls),
++SND_SOC_DAPM_MUX("Capture Mono Mux", SND_SOC_NOPM, 0, 0,
++ &wm9713_mono_mic_mux_controls),
++SND_SOC_DAPM_MUX("Mono Out Mux", SND_SOC_NOPM, 0, 0,
++ &wm9713_mono_mux_controls),
++SND_SOC_DAPM_MUX("Left Speaker Out Mux", SND_SOC_NOPM, 0, 0,
++ &wm9713_hp_spkl_mux_controls),
++SND_SOC_DAPM_MUX("Right Speaker Out Mux", SND_SOC_NOPM, 0, 0,
++ &wm9713_hp_spkr_mux_controls),
++SND_SOC_DAPM_MUX("Left Headphone Out Mux", SND_SOC_NOPM, 0, 0,
++ &wm9713_hpl_out_mux_controls),
++SND_SOC_DAPM_MUX("Right Headphone Out Mux", SND_SOC_NOPM, 0, 0,
++ &wm9713_hpr_out_mux_controls),
++SND_SOC_DAPM_MUX("Out 3 Mux", SND_SOC_NOPM, 0, 0,
++ &wm9713_out3_mux_controls),
++SND_SOC_DAPM_MUX("Out 4 Mux", SND_SOC_NOPM, 0, 0,
++ &wm9713_out4_mux_controls),
++SND_SOC_DAPM_MUX("DAC Inv Mux 1", SND_SOC_NOPM, 0, 0,
++ &wm9713_dac_inv1_mux_controls),
++SND_SOC_DAPM_MUX("DAC Inv Mux 2", SND_SOC_NOPM, 0, 0,
++ &wm9713_dac_inv2_mux_controls),
++SND_SOC_DAPM_MUX("Left Capture Source", SND_SOC_NOPM, 0, 0,
++ &wm9713_rec_srcl_mux_controls),
++SND_SOC_DAPM_MUX("Right Capture Source", SND_SOC_NOPM, 0, 0,
++ &wm9713_rec_srcr_mux_controls),
++SND_SOC_DAPM_MUX("Mic A Source", SND_SOC_NOPM, 0, 0,
++ &wm9713_mic_sel_mux_controls ),
++SND_SOC_DAPM_MUX("Mic B Source", SND_SOC_NOPM, 0, 0,
++ &wm9713_micb_sel_mux_controls ),
++SND_SOC_DAPM_MIXER_E("Left HP Mixer", AC97_EXTENDED_MID, 3, 1,
++ &wm9713_hpl_mixer_controls[0], ARRAY_SIZE(wm9713_hpl_mixer_controls),
++ mixer_event, SND_SOC_DAPM_POST_REG),
++SND_SOC_DAPM_MIXER_E("Right HP Mixer", AC97_EXTENDED_MID, 2, 1,
++ &wm9713_hpr_mixer_controls[0], ARRAY_SIZE(wm9713_hpr_mixer_controls),
++ mixer_event, SND_SOC_DAPM_POST_REG),
++SND_SOC_DAPM_MIXER("Mono Mixer", AC97_EXTENDED_MID, 0, 1,
++ &wm9713_mono_mixer_controls[0], ARRAY_SIZE(wm9713_mono_mixer_controls)),
++SND_SOC_DAPM_MIXER("Speaker Mixer", AC97_EXTENDED_MID, 1, 1,
++ &wm9713_speaker_mixer_controls[0],
++ ARRAY_SIZE(wm9713_speaker_mixer_controls)),
++SND_SOC_DAPM_DAC("Left DAC", "Left HiFi Playback", AC97_EXTENDED_MID, 7, 1),
++SND_SOC_DAPM_DAC("Right DAC", "Right HiFi Playback", AC97_EXTENDED_MID, 6, 1),
++SND_SOC_DAPM_MIXER("AC97 Mixer", SND_SOC_NOPM, 0, 0, NULL, 0),
++SND_SOC_DAPM_MIXER("HP Mixer", SND_SOC_NOPM, 0, 0, NULL, 0),
++SND_SOC_DAPM_MIXER("Capture Mixer", SND_SOC_NOPM, 0, 0, NULL, 0),
++SND_SOC_DAPM_DAC("Voice DAC", "Voice Playback", AC97_EXTENDED_MID, 12, 1),
++SND_SOC_DAPM_DAC("Aux DAC", "Aux Playback", AC97_EXTENDED_MID, 11, 1),
++SND_SOC_DAPM_ADC("Left ADC", "Left HiFi Capture", AC97_EXTENDED_MID, 5, 1),
++SND_SOC_DAPM_ADC("Right ADC", "Right HiFi Capture", AC97_EXTENDED_MID, 4, 1),
++SND_SOC_DAPM_PGA("Left Headphone", AC97_EXTENDED_MSTATUS, 10, 1, NULL, 0),
++SND_SOC_DAPM_PGA("Right Headphone", AC97_EXTENDED_MSTATUS, 9, 1, NULL, 0),
++SND_SOC_DAPM_PGA("Left Speaker", AC97_EXTENDED_MSTATUS, 8, 1, NULL, 0),
++SND_SOC_DAPM_PGA("Right Speaker", AC97_EXTENDED_MSTATUS, 7, 1, NULL, 0),
++SND_SOC_DAPM_PGA("Out 3", AC97_EXTENDED_MSTATUS, 11, 1, NULL, 0),
++SND_SOC_DAPM_PGA("Out 4", AC97_EXTENDED_MSTATUS, 12, 1, NULL, 0),
++SND_SOC_DAPM_PGA("Mono Out", AC97_EXTENDED_MSTATUS, 13, 1, NULL, 0),
++SND_SOC_DAPM_PGA("Left Line In", AC97_EXTENDED_MSTATUS, 6, 1, NULL, 0),
++SND_SOC_DAPM_PGA("Right Line In", AC97_EXTENDED_MSTATUS, 5, 1, NULL, 0),
++SND_SOC_DAPM_PGA("Mono In", AC97_EXTENDED_MSTATUS, 4, 1, NULL, 0),
++SND_SOC_DAPM_PGA("Mic A PGA", AC97_EXTENDED_MSTATUS, 3, 1, NULL, 0),
++SND_SOC_DAPM_PGA("Mic B PGA", AC97_EXTENDED_MSTATUS, 2, 1, NULL, 0),
++SND_SOC_DAPM_PGA("Mic A Pre Amp", AC97_EXTENDED_MSTATUS, 1, 1, NULL, 0),
++SND_SOC_DAPM_PGA("Mic B Pre Amp", AC97_EXTENDED_MSTATUS, 0, 1, NULL, 0),
++SND_SOC_DAPM_MICBIAS("Mic Bias", AC97_EXTENDED_MSTATUS, 14, 1),
++SND_SOC_DAPM_OUTPUT("MONO"),
++SND_SOC_DAPM_OUTPUT("HPL"),
++SND_SOC_DAPM_OUTPUT("HPR"),
++SND_SOC_DAPM_OUTPUT("SPKL"),
++SND_SOC_DAPM_OUTPUT("SPKR"),
++SND_SOC_DAPM_OUTPUT("OUT3"),
++SND_SOC_DAPM_OUTPUT("OUT4"),
++SND_SOC_DAPM_INPUT("LINEL"),
++SND_SOC_DAPM_INPUT("LINER"),
++SND_SOC_DAPM_INPUT("MONOIN"),
++SND_SOC_DAPM_INPUT("PCBEEP"),
++SND_SOC_DAPM_INPUT("MIC1"),
++SND_SOC_DAPM_INPUT("MIC2A"),
++SND_SOC_DAPM_INPUT("MIC2B"),
++SND_SOC_DAPM_VMID("VMID"),
++};
++
++static const char *audio_map[][3] = {
++ /* left HP mixer */
++ {"Left HP Mixer", "PC Beep Playback Switch", "PCBEEP"},
++ {"Left HP Mixer", "Voice Playback Switch", "Voice DAC"},
++ {"Left HP Mixer", "Aux Playback Switch", "Aux DAC"},
++ {"Left HP Mixer", "Bypass Playback Switch", "Left Line In"},
++ {"Left HP Mixer", "PCM Playback Switch", "Left DAC"},
++ {"Left HP Mixer", "MonoIn Playback Switch", "Mono In"},
++ {"Left HP Mixer", NULL, "Capture Headphone Mux"},
++
++ /* right HP mixer */
++ {"Right HP Mixer", "PC Beep Playback Switch", "PCBEEP"},
++ {"Right HP Mixer", "Voice Playback Switch", "Voice DAC"},
++ {"Right HP Mixer", "Aux Playback Switch", "Aux DAC"},
++ {"Right HP Mixer", "Bypass Playback Switch", "Right Line In"},
++ {"Right HP Mixer", "PCM Playback Switch", "Right DAC"},
++ {"Right HP Mixer", "MonoIn Playback Switch", "Mono In"},
++ {"Right HP Mixer", NULL, "Capture Headphone Mux"},
++
++ /* virtual mixer - mixes left & right channels for spk and mono */
++ {"AC97 Mixer", NULL, "Left DAC"},
++ {"AC97 Mixer", NULL, "Right DAC"},
++ {"Line Mixer", NULL, "Right Line In"},
++ {"Line Mixer", NULL, "Left Line In"},
++ {"HP Mixer", NULL, "Left HP Mixer"},
++ {"HP Mixer", NULL, "Right HP Mixer"},
++ {"Capture Mixer", NULL, "Left Capture Source"},
++ {"Capture Mixer", NULL, "Right Capture Source"},
++
++ /* speaker mixer */
++ {"Speaker Mixer", "PC Beep Playback Switch", "PCBEEP"},
++ {"Speaker Mixer", "Voice Playback Switch", "Voice DAC"},
++ {"Speaker Mixer", "Aux Playback Switch", "Aux DAC"},
++ {"Speaker Mixer", "Bypass Playback Switch", "Line Mixer"},
++ {"Speaker Mixer", "PCM Playback Switch", "AC97 Mixer"},
++ {"Speaker Mixer", "MonoIn Playback Switch", "Mono In"},
++
++ /* mono mixer */
++ {"Mono Mixer", "PC Beep Playback Switch", "PCBEEP"},
++ {"Mono Mixer", "Voice Playback Switch", "Voice DAC"},
++ {"Mono Mixer", "Aux Playback Switch", "Aux DAC"},
++ {"Mono Mixer", "Bypass Playback Switch", "Line Mixer"},
++ {"Mono Mixer", "PCM Playback Switch", "AC97 Mixer"},
++ {"Mono Mixer", NULL, "Capture Mono Mux"},
++
++ /* DAC inv mux 1 */
++ {"DAC Inv Mux 1", "Mono", "Mono Mixer"},
++ {"DAC Inv Mux 1", "Speaker", "Speaker Mixer"},
++ {"DAC Inv Mux 1", "Left Headphone", "Left HP Mixer"},
++ {"DAC Inv Mux 1", "Right Headphone", "Right HP Mixer"},
++ {"DAC Inv Mux 1", "Headphone Mono", "HP Mixer"},
++
++ /* DAC inv mux 2 */
++ {"DAC Inv Mux 2", "Mono", "Mono Mixer"},
++ {"DAC Inv Mux 2", "Speaker", "Speaker Mixer"},
++ {"DAC Inv Mux 2", "Left Headphone", "Left HP Mixer"},
++ {"DAC Inv Mux 2", "Right Headphone", "Right HP Mixer"},
++ {"DAC Inv Mux 2", "Headphone Mono", "HP Mixer"},
++
++ /* headphone left mux */
++ {"Left Headphone Out Mux", "Headphone", "Left HP Mixer"},
++
++ /* headphone right mux */
++ {"Right Headphone Out Mux", "Headphone", "Right HP Mixer"},
++
++ /* speaker left mux */
++ {"Left Speaker Out Mux", "Headphone", "Left HP Mixer"},
++ {"Left Speaker Out Mux", "Speaker", "Speaker Mixer"},
++ {"Left Speaker Out Mux", "Inv", "DAC Inv Mux 1"},
++
++ /* speaker right mux */
++ {"Right Speaker Out Mux", "Headphone", "Right HP Mixer"},
++ {"Right Speaker Out Mux", "Speaker", "Speaker Mixer"},
++ {"Right Speaker Out Mux", "Inv", "DAC Inv Mux 2"},
++
++ /* mono mux */
++ {"Mono Out Mux", "Mono", "Mono Mixer"},
++ {"Mono Out Mux", "Inv", "DAC Inv Mux 1"},
++
++ /* out 3 mux */
++ {"Out 3 Mux", "Inv 1", "DAC Inv Mux 1"},
++
++ /* out 4 mux */
++ {"Out 4 Mux", "Inv 2", "DAC Inv Mux 2"},
++
++ /* output pga */
++ {"HPL", NULL, "Left Headphone"},
++ {"Left Headphone", NULL, "Left Headphone Out Mux"},
++ {"HPR", NULL, "Right Headphone"},
++ {"Right Headphone", NULL, "Right Headphone Out Mux"},
++ {"OUT3", NULL, "Out 3"},
++ {"Out 3", NULL, "Out 3 Mux"},
++ {"OUT4", NULL, "Out 4"},
++ {"Out 4", NULL, "Out 4 Mux"},
++ {"SPKL", NULL, "Left Speaker"},
++ {"Left Speaker", NULL, "Left Speaker Out Mux"},
++ {"SPKR", NULL, "Right Speaker"},
++ {"Right Speaker", NULL, "Right Speaker Out Mux"},
++ {"MONO", NULL, "Mono Out"},
++ {"Mono Out", NULL, "Mono Out Mux"},
++
++ /* input pga */
++ {"Left Line In", NULL, "LINEL"},
++ {"Right Line In", NULL, "LINER"},
++ {"Mono In", NULL, "MONOIN"},
++ {"Mic A PGA", NULL, "Mic A Pre Amp"},
++ {"Mic B PGA", NULL, "Mic B Pre Amp"},
++
++ /* left capture select */
++ {"Left Capture Source", "Mic 1", "Mic A Pre Amp"},
++ {"Left Capture Source", "Mic 2", "Mic B Pre Amp"},
++ {"Left Capture Source", "Line", "LINEL"},
++ {"Left Capture Source", "Mono In", "MONOIN"},
++ {"Left Capture Source", "Headphone", "Left HP Mixer"},
++ {"Left Capture Source", "Speaker", "Speaker Mixer"},
++ {"Left Capture Source", "Mono Out", "Mono Mixer"},
++
++ /* right capture select */
++ {"Right Capture Source", "Mic 1", "Mic A Pre Amp"},
++ {"Right Capture Source", "Mic 2", "Mic B Pre Amp"},
++ {"Right Capture Source", "Line", "LINER"},
++ {"Right Capture Source", "Mono In", "MONOIN"},
++ {"Right Capture Source", "Headphone", "Right HP Mixer"},
++ {"Right Capture Source", "Speaker", "Speaker Mixer"},
++ {"Right Capture Source", "Mono Out", "Mono Mixer"},
++
++ /* left ADC */
++ {"Left ADC", NULL, "Left Capture Source"},
++
++ /* right ADC */
++ {"Right ADC", NULL, "Right Capture Source"},
++
++ /* mic */
++ {"Mic A Pre Amp", NULL, "Mic A Source"},
++ {"Mic A Source", "Mic 1", "MIC1"},
++ {"Mic A Source", "Mic 2 A", "MIC2A"},
++ {"Mic A Source", "Mic 2 B", "Mic B Source"},
++ {"Mic B Pre Amp", "MPB", "Mic B Source"},
++ {"Mic B Source", NULL, "MIC2B"},
++
++ /* headphone capture */
++ {"Capture Headphone Mux", "Stereo", "Capture Mixer"},
++ {"Capture Headphone Mux", "Left", "Left Capture Source"},
++ {"Capture Headphone Mux", "Right", "Right Capture Source"},
++
++ /* mono capture */
++ {"Capture Mono Mux", "Stereo", "Capture Mixer"},
++ {"Capture Mono Mux", "Left", "Left Capture Source"},
++ {"Capture Mono Mux", "Right", "Right Capture Source"},
++
++ {NULL, NULL, NULL},
++};
++
++static int wm9713_add_widgets(struct snd_soc_codec *codec)
++{
++ int i;
++
++ for(i = 0; i < ARRAY_SIZE(wm9713_dapm_widgets); i++) {
++ snd_soc_dapm_new_control(codec, &wm9713_dapm_widgets[i]);
++ }
++
++ /* set up audio path audio_mapnects */
++ for(i = 0; audio_map[i][0] != NULL; i++) {
++ snd_soc_dapm_connect_input(codec, audio_map[i][0],
++ audio_map[i][1], audio_map[i][2]);
++ }
++
++ snd_soc_dapm_new_widgets(codec);
++ return 0;
++}
++
++static unsigned int ac97_read(struct snd_soc_codec *codec,
++ unsigned int reg)
++{
++ u16 *cache = codec->reg_cache;
++
++ if (reg == AC97_RESET || reg == AC97_GPIO_STATUS ||
++ reg == AC97_VENDOR_ID1 || reg == AC97_VENDOR_ID2 ||
++ reg == AC97_CD)
++ return soc_ac97_ops.read(codec->ac97, reg);
++ else {
++ reg = reg >> 1;
++
++ if (reg > (ARRAY_SIZE(wm9713_reg)))
++ return -EIO;
++
++ return cache[reg];
++ }
++}
++
++static int ac97_write(struct snd_soc_codec *codec, unsigned int reg,
++ unsigned int val)
++{
++ u16 *cache = codec->reg_cache;
++ if (reg < 0x7c)
++ soc_ac97_ops.write(codec->ac97, reg, val);
++ reg = reg >> 1;
++ if (reg <= (ARRAY_SIZE(wm9713_reg)))
++ cache[reg] = val;
++
++ return 0;
++}
++
++struct pll_ {
++ unsigned int in_hz;
++ unsigned int lf:1; /* allows low frequency use */
++ unsigned int sdm:1; /* allows fraction n div */
++ unsigned int divsel:1; /* enables input clock div */
++ unsigned int divctl:1; /* input clock divider */
++ unsigned int n:4;
++ unsigned int k;
++};
++
++struct pll_ pll[] = {
++ {13000000, 0, 1, 0, 0, 7, 0x23f488},
++ {2048000, 1, 0, 0, 0, 12, 0x0},
++ {4096000, 1, 0, 0, 0, 6, 0x0},
++ {12288000, 0, 0, 0, 0, 8, 0x0},
++ /* liam - add more entries */
++};
++
++static int wm9713_set_pll(struct snd_soc_codec *codec,
++ int pll_id, unsigned int freq_in, unsigned int freq_out)
++{
++ struct wm9713_priv *wm9713 = codec->private_data;
++ int i;
++ u16 reg, reg2;
++
++ /* turn PLL off ? */
++ if (freq_in == 0 || freq_out == 0) {
++ /* disable PLL power and select ext source */
++ reg = ac97_read(codec, AC97_HANDSET_RATE);
++ ac97_write(codec, AC97_HANDSET_RATE, reg | 0x0080);
++ reg = ac97_read(codec, AC97_EXTENDED_MID);
++ ac97_write(codec, AC97_EXTENDED_MID, reg | 0x0200);
++ wm9713->pll_out = 0;
++ return 0;
++ }
++
++ for (i = 0; i < ARRAY_SIZE(pll); i++) {
++ if (pll[i].in_hz == freq_in)
++ goto found;
++ }
++ return -EINVAL;
++
++found:
++ if (pll[i].sdm == 0) {
++ reg = (pll[i].n << 12) | (pll[i].lf << 11) |
++ (pll[i].divsel << 9) | (pll[i].divctl << 8);
++ ac97_write(codec, AC97_LINE1_LEVEL, reg);
++ } else {
++ /* write the fractional k to the reg 0x46 pages */
++ reg2 = (pll[i].n << 12) | (pll[i].lf << 11) | (pll[i].sdm << 10) |
++ (pll[i].divsel << 9) | (pll[i].divctl << 8);
++
++ reg = reg2 | (0x5 << 4) | (pll[i].k >> 20); /* K [21:20] */
++ ac97_write(codec, AC97_LINE1_LEVEL, reg);
++
++ reg = reg2 | (0x4 << 4) | ((pll[i].k >> 16) & 0xf); /* K [19:16] */
++ ac97_write(codec, AC97_LINE1_LEVEL, reg);
++
++ reg = reg2 | (0x3 << 4) | ((pll[i].k >> 12) & 0xf); /* K [15:12] */
++ ac97_write(codec, AC97_LINE1_LEVEL, reg);
++
++ reg = reg2 | (0x2 << 4) | ((pll[i].k >> 8) & 0xf); /* K [11:8] */
++ ac97_write(codec, AC97_LINE1_LEVEL, reg);
++
++ reg = reg2 | (0x1 << 4) | ((pll[i].k >> 4) & 0xf); /* K [7:4] */
++ ac97_write(codec, AC97_LINE1_LEVEL, reg);
++
++ reg = reg2 | (0x0 << 4) | (pll[i].k & 0xf); /* K [3:0] */
++ ac97_write(codec, AC97_LINE1_LEVEL, reg);
++ }
++
++ /* turn PLL on and select as source */
++ reg = ac97_read(codec, AC97_EXTENDED_MID);
++ ac97_write(codec, AC97_EXTENDED_MID, reg & 0xfdff);
++ reg = ac97_read(codec, AC97_HANDSET_RATE);
++ ac97_write(codec, AC97_HANDSET_RATE, reg & 0xff7f);
++ wm9713->pll_out = freq_out;
++ wm9713->pll_in = freq_in;
++
++ /* wait 10ms AC97 link frames for the link to stabilise */
++ schedule_timeout_interruptible(msecs_to_jiffies(10));
++ return 0;
++}
++
++static int wm9713_set_dai_pll(struct snd_soc_codec_dai *codec_dai,
++ int pll_id, unsigned int freq_in, unsigned int freq_out)
++{
++ struct snd_soc_codec *codec = codec_dai->codec;
++ return wm9713_set_pll(codec, pll_id, freq_in, freq_out);
++}
++
++/*
++ * Tristate the PCM DAI lines, tristate can be disabled by calling
++ * wm9713_set_dai_fmt()
++ */
++static int wm9713_set_dai_tristate(struct snd_soc_codec_dai *codec_dai,
++ int tristate)
++{
++ struct snd_soc_codec *codec = codec_dai->codec;
++ u16 reg = ac97_read(codec, AC97_CENTER_LFE_MASTER) & 0x9fff;
++
++ if (tristate)
++ ac97_write(codec, AC97_CENTER_LFE_MASTER, reg);
++
++ return 0;
++}
++
++/*
++ * Configure WM9713 clock dividers.
++ * Voice DAC needs 256 FS
++ */
++static int wm9713_set_dai_clkdiv(struct snd_soc_codec_dai *codec_dai,
++ int div_id, int div)
++{
++ struct snd_soc_codec *codec = codec_dai->codec;
++ u16 reg;
++
++ switch (div_id) {
++ case WM9713_PCMCLK_DIV:
++ reg = ac97_read(codec, AC97_HANDSET_RATE) & 0xf0ff;
++ ac97_write(codec, AC97_HANDSET_RATE, reg | div);
++ break;
++ case WM9713_CLKA_MULT:
++ reg = ac97_read(codec, AC97_HANDSET_RATE) & 0xfffd;
++ ac97_write(codec, AC97_HANDSET_RATE, reg | div);
++ break;
++ case WM9713_CLKB_MULT:
++ reg = ac97_read(codec, AC97_HANDSET_RATE) & 0xfffb;
++ ac97_write(codec, AC97_HANDSET_RATE, reg | div);
++ break;
++ case WM9713_HIFI_DIV:
++ reg = ac97_read(codec, AC97_HANDSET_RATE) & 0x8fff;
++ ac97_write(codec, AC97_HANDSET_RATE, reg | div);
++ break;
++ case WM9713_PCMBCLK_DIV:
++ reg = ac97_read(codec, AC97_CENTER_LFE_MASTER) & 0xf1ff;
++ ac97_write(codec, AC97_CENTER_LFE_MASTER, reg | div);
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ return 0;
++};
++
++static int wm9713_set_dai_fmt(struct snd_soc_codec_dai *codec_dai,
++ unsigned int fmt)
++{
++ struct snd_soc_codec *codec = codec_dai->codec;
++ u16 gpio = ac97_read(codec, AC97_GPIO_CFG) & 0xffe2;
++ u16 reg = 0x8000;
++
++ /* clock masters */
++ switch (fmt & SND_SOC_DAIFMT_MASTER_MASK){
++ case SND_SOC_DAIFMT_CBM_CFM:
++ reg |= 0x4000;
++ gpio |= 0x0008;
++ break;
++ case SND_SOC_DAIFMT_CBM_CFS:
++ reg |= 0x6000;
++ gpio |= 0x000c;
++ break;
++ case SND_SOC_DAIFMT_CBS_CFS:
++ reg |= 0x0200;
++ gpio |= 0x000d;
++ break;
++ case SND_SOC_DAIFMT_CBS_CFM:
++ gpio |= 0x0009;
++ break;
++ }
++
++ /* clock inversion */
++ switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
++ case SND_SOC_DAIFMT_IB_IF:
++ reg |= 0x00c0;
++ break;
++ case SND_SOC_DAIFMT_IB_NF:
++ reg |= 0x0080;
++ break;
++ case SND_SOC_DAIFMT_NB_IF:
++ reg |= 0x0040;
++ break;
++ }
++
++ /* DAI format */
++ switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
++ case SND_SOC_DAIFMT_I2S:
++ reg |= 0x0002;
++ break;
++ case SND_SOC_DAIFMT_RIGHT_J:
++ break;
++ case SND_SOC_DAIFMT_LEFT_J:
++ reg |= 0x0001;
++ break;
++ case SND_SOC_DAIFMT_DSP_A:
++ reg |= 0x0003;
++ break;
++ case SND_SOC_DAIFMT_DSP_B:
++ reg |= 0x0043;
++ break;
++ }
++
++ ac97_write(codec, AC97_GPIO_CFG, gpio);
++ ac97_write(codec, AC97_CENTER_LFE_MASTER, reg);
++ return 0;
++}
++
++static int wm9713_pcm_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_device *socdev = rtd->socdev;
++ struct snd_soc_codec *codec = socdev->codec;
++ u16 reg = ac97_read(codec, AC97_CENTER_LFE_MASTER) & 0xfff3;
++
++ switch (params_format(params)) {
++ case SNDRV_PCM_FORMAT_S16_LE:
++ break;
++ case SNDRV_PCM_FORMAT_S20_3LE:
++ reg |= 0x0004;
++ break;
++ case SNDRV_PCM_FORMAT_S24_LE:
++ reg |= 0x0008;
++ break;
++ case SNDRV_PCM_FORMAT_S32_LE:
++ reg |= 0x000c;
++ break;
++ }
++
++ /* enable PCM interface in master mode */
++ ac97_write(codec, AC97_CENTER_LFE_MASTER, reg);
++ return 0;
++}
++
++static void wm9713_voiceshutdown(struct snd_pcm_substream *substream)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_device *socdev = rtd->socdev;
++ struct snd_soc_codec *codec = socdev->codec;
++ u16 status;
++
++ /* Gracefully shut down the voice interface. */
++ status = ac97_read(codec, AC97_EXTENDED_STATUS) | 0x1000;
++ ac97_write(codec,AC97_HANDSET_RATE,0x0280);
++ schedule_timeout_interruptible(msecs_to_jiffies(1));
++ ac97_write(codec,AC97_HANDSET_RATE,0x0F80);
++ ac97_write(codec,AC97_EXTENDED_MID,status);
++}
++
++static int ac97_hifi_prepare(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_device *socdev = rtd->socdev;
++ struct snd_soc_codec *codec = socdev->codec;
++ int reg;
++ u16 vra;
++
++ vra = ac97_read(codec, AC97_EXTENDED_STATUS);
++ ac97_write(codec, AC97_EXTENDED_STATUS, vra | 0x1);
++
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
++ reg = AC97_PCM_FRONT_DAC_RATE;
++ else
++ reg = AC97_PCM_LR_ADC_RATE;
++
++ return ac97_write(codec, reg, runtime->rate);
++}
++
++static int ac97_aux_prepare(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_device *socdev = rtd->socdev;
++ struct snd_soc_codec *codec = socdev->codec;
++ u16 vra, xsle;
++
++ vra = ac97_read(codec, AC97_EXTENDED_STATUS);
++ ac97_write(codec, AC97_EXTENDED_STATUS, vra | 0x1);
++ xsle = ac97_read(codec, AC97_PCI_SID);
++ ac97_write(codec, AC97_PCI_SID, xsle | 0x8000);
++
++ if (substream->stream != SNDRV_PCM_STREAM_PLAYBACK)
++ return -ENODEV;
++
++ return ac97_write(codec, AC97_PCM_SURR_DAC_RATE, runtime->rate);
++}
++
++#define WM9713_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |\
++ SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000)
++
++#define WM9713_PCM_FORMATS \
++ (SNDRV_PCM_FORMAT_S16_LE | SNDRV_PCM_FORMAT_S20_3LE | \
++ SNDRV_PCM_FORMAT_S24_LE)
++
++struct snd_soc_codec_dai wm9713_dai[] = {
++{
++ .name = "AC97 HiFi",
++ .type = SND_SOC_DAI_AC97_BUS,
++ .playback = {
++ .stream_name = "HiFi Playback",
++ .channels_min = 1,
++ .channels_max = 2,
++ .rates = WM9713_RATES,
++ .formats = SNDRV_PCM_FMTBIT_S16_LE,},
++ .capture = {
++ .stream_name = "HiFi Capture",
++ .channels_min = 1,
++ .channels_max = 2,
++ .rates = WM9713_RATES,
++ .formats = SNDRV_PCM_FMTBIT_S16_LE,},
++ .ops = {
++ .prepare = ac97_hifi_prepare,},
++ },
++ {
++ .name = "AC97 Aux",
++ .playback = {
++ .stream_name = "Aux Playback",
++ .channels_min = 1,
++ .channels_max = 1,
++ .rates = WM9713_RATES,
++ .formats = SNDRV_PCM_FMTBIT_S16_LE,},
++ .ops = {
++ .prepare = ac97_aux_prepare,},
++ },
++ {
++ .name = "WM9713 Voice",
++ .playback = {
++ .stream_name = "Voice Playback",
++ .channels_min = 1,
++ .channels_max = 1,
++ .rates = WM9713_RATES,
++ .formats = WM9713_PCM_FORMATS,},
++ .capture = {
++ .stream_name = "Voice Capture",
++ .channels_min = 1,
++ .channels_max = 2,
++ .rates = WM9713_RATES,
++ .formats = WM9713_PCM_FORMATS,},
++ .ops = {
++ .hw_params = wm9713_pcm_hw_params,
++ .shutdown = wm9713_voiceshutdown,},
++ .dai_ops = {
++ .set_clkdiv = wm9713_set_dai_clkdiv,
++ .set_pll = wm9713_set_dai_pll,
++ .set_fmt = wm9713_set_dai_fmt,
++ .set_tristate = wm9713_set_dai_tristate,
++ },
++ },
++};
++EXPORT_SYMBOL_GPL(wm9713_dai);
++
++int wm9713_reset(struct snd_soc_codec *codec, int try_warm)
++{
++ if (try_warm && soc_ac97_ops.warm_reset) {
++ soc_ac97_ops.warm_reset(codec->ac97);
++ if (!(ac97_read(codec, 0) & 0x8000))
++ return 1;
++ }
++
++ soc_ac97_ops.reset(codec->ac97);
++
++ if (ac97_read(codec, 0) & 0x8000)
++ return -EIO;
++
++ return 0;
++}
++EXPORT_SYMBOL_GPL(wm9713_reset);
++
++static int wm9713_dapm_event(struct snd_soc_codec *codec, int event)
++{
++ u16 reg;
++
++ switch (event) {
++ case SNDRV_CTL_POWER_D0: /* full On */
++ /* enable thermal shutdown */
++ reg = ac97_read(codec, AC97_EXTENDED_MID) & 0x1bff;
++/*TODO: for init event*/
++#if 0
++ ac97_write(codec, AC97_EXTENDED_MID, reg);
++#endif
++ break;
++ case SNDRV_CTL_POWER_D1: /* partial On */
++ case SNDRV_CTL_POWER_D2: /* partial On */
++ break;
++ case SNDRV_CTL_POWER_D3hot: /* Off, with power */
++ /* enable master bias and vmid */
++ reg = ac97_read(codec, AC97_EXTENDED_MID) & 0x3bff;
++ ac97_write(codec, AC97_EXTENDED_MID, reg);
++ ac97_write(codec, AC97_POWERDOWN, 0x0000);
++ break;
++ case SNDRV_CTL_POWER_D3cold: /* Off, without power */
++ /* disable everything including AC link */
++ ac97_write(codec, AC97_EXTENDED_MID, 0xffff);
++ ac97_write(codec, AC97_EXTENDED_MSTATUS, 0xffff);
++ ac97_write(codec, AC97_POWERDOWN, 0xffff);
++ break;
++ }
++ codec->dapm_state = event;
++ return 0;
++}
++
++static int wm9713_soc_suspend(struct platform_device *pdev,
++ pm_message_t state)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct snd_soc_codec *codec = socdev->codec;
++
++ wm9713_dapm_event(codec, SNDRV_CTL_POWER_D3cold);
++ return 0;
++}
++
++static int wm9713_soc_resume(struct platform_device *pdev)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct snd_soc_codec *codec = socdev->codec;
++ struct wm9713_priv *wm9713 = codec->private_data;
++ int i, ret;
++ u16 *cache = codec->reg_cache;
++
++ wm9713_reset(codec, 0);
++ if ((ret = wm9713_reset(codec, 1)) < 0){
++ printk(KERN_ERR "could not reset AC97 codec\n");
++ return ret;
++ }
++
++ wm9713_dapm_event(codec, SNDRV_CTL_POWER_D3hot);
++
++ /* do we need to re-start the PLL ? */
++ if (wm9713->pll_out)
++ wm9713_set_pll(codec, 0, wm9713->pll_in, wm9713->pll_out);
++
++ /* only synchronise the codec if warm reset failed */
++ if (ret == 0) {
++ for (i = 2; i < ARRAY_SIZE(wm9713_reg) << 1; i+=2) {
++ if (i == AC97_POWERDOWN || i == AC97_EXTENDED_MID ||
++ i == AC97_EXTENDED_MSTATUS || i > 0x66)
++ continue;
++ soc_ac97_ops.write(codec->ac97, i, cache[i>>1]);
++ }
++ }
++
++ if (codec->suspend_dapm_state == SNDRV_CTL_POWER_D0)
++ wm9713_dapm_event(codec, SNDRV_CTL_POWER_D0);
++
++ return ret;
++}
++
++static int wm9713_soc_probe(struct platform_device *pdev)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct snd_soc_codec *codec;
++ int ret = 0, reg;
++
++ printk(KERN_INFO "WM9713/WM9714 SoC Audio Codec %s\n", WM9713_VERSION);
++
++ socdev->codec = kzalloc(sizeof(struct snd_soc_codec), GFP_KERNEL);
++ if (socdev->codec == NULL)
++ return -ENOMEM;
++ codec = socdev->codec;
++ mutex_init(&codec->mutex);
++
++ codec->reg_cache = kmemdup(wm9713_reg, sizeof(wm9713_reg), GFP_KERNEL);
++ if (codec->reg_cache == NULL){
++ ret = -ENOMEM;
++ goto cache_err;
++ }
++ codec->reg_cache_size = sizeof(wm9713_reg);
++ codec->reg_cache_step = 2;
++
++ codec->private_data = kzalloc(sizeof(struct wm9713_priv), GFP_KERNEL);
++ if (codec->private_data == NULL) {
++ ret = -ENOMEM;
++ goto priv_err;
++ }
++
++ codec->name = "WM9713";
++ codec->owner = THIS_MODULE;
++ codec->dai = wm9713_dai;
++ codec->num_dai = ARRAY_SIZE(wm9713_dai);
++ codec->write = ac97_write;
++ codec->read = ac97_read;
++ codec->dapm_event = wm9713_dapm_event;
++ INIT_LIST_HEAD(&codec->dapm_widgets);
++ INIT_LIST_HEAD(&codec->dapm_paths);
++
++ ret = snd_soc_new_ac97_codec(codec, &soc_ac97_ops, 0);
++ if (ret < 0)
++ goto codec_err;
++
++ /* register pcms */
++ ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1);
++ if (ret < 0)
++ goto pcm_err;
++
++ /* do a cold reset for the controller and then try
++ * a warm reset followed by an optional cold reset for codec */
++ wm9713_reset(codec, 0);
++ ret = wm9713_reset(codec, 1);
++ if (ret < 0) {
++ printk(KERN_ERR "AC97 link error\n");
++ goto reset_err;
++ }
++ wm9713_dapm_event(codec, SNDRV_CTL_POWER_D3hot);
++
++ /* unmute the adc - move to kcontrol */
++ reg = ac97_read(codec, AC97_CD) & 0x7fff;
++ ac97_write(codec, AC97_CD, reg);
++
++ wm9713_add_controls(codec);
++ wm9713_add_widgets(codec);
++ ret = snd_soc_register_card(socdev);
++ if (ret < 0)
++ goto reset_err;
++ return 0;
++
++reset_err:
++ snd_soc_free_pcms(socdev);
++
++pcm_err:
++ snd_soc_free_ac97_codec(codec);
++
++codec_err:
++ kfree(codec->private_data);
++
++priv_err:
++ kfree(codec->reg_cache);
++
++cache_err:
++ kfree(socdev->codec);
++ socdev->codec = NULL;
++ return ret;
++}
++
++static int wm9713_soc_remove(struct platform_device *pdev)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct snd_soc_codec *codec = socdev->codec;
++
++ if (codec == NULL)
++ return 0;
++
++ snd_soc_dapm_free(socdev);
++ snd_soc_free_pcms(socdev);
++ snd_soc_free_ac97_codec(codec);
++ kfree(codec->private_data);
++ kfree(codec->reg_cache);
++ kfree(codec->dai);
++ kfree(codec);
++ return 0;
++}
++
++struct snd_soc_codec_device soc_codec_dev_wm9713 = {
++ .probe = wm9713_soc_probe,
++ .remove = wm9713_soc_remove,
++ .suspend = wm9713_soc_suspend,
++ .resume = wm9713_soc_resume,
++};
++
++EXPORT_SYMBOL_GPL(soc_codec_dev_wm9713);
++
++MODULE_DESCRIPTION("ASoC WM9713/WM9714 driver");
++MODULE_AUTHOR("Liam Girdwood");
++MODULE_LICENSE("GPL");
+diff --git a/sound/soc/codecs/wm9713.h b/sound/soc/codecs/wm9713.h
+new file mode 100644
+index 0000000..b9d95a2
+--- /dev/null
++++ b/sound/soc/codecs/wm9713.h
+@@ -0,0 +1,51 @@
++/*
++ * wm9713.h -- WM9713 Soc Audio driver
++ */
++
++#ifndef _WM9713_H
++#define _WM9713_H
++
++/* clock inputs */
++#define WM9713_CLKA_PIN 0
++#define WM9713_CLKB_PIN 1
++
++/* clock divider ID's */
++#define WM9713_PCMCLK_DIV 0
++#define WM9713_CLKA_MULT 1
++#define WM9713_CLKB_MULT 2
++#define WM9713_HIFI_DIV 3
++#define WM9713_PCMBCLK_DIV 4
++
++/* PCM clk div */
++#define WM9713_PCMDIV(x) ((x - 1) << 8)
++
++/* HiFi Div */
++#define WM9713_HIFIDIV(x) ((x - 1) << 12)
++
++/* MCLK clock mulitipliers */
++#define WM9713_CLKA_X1 (0 << 1)
++#define WM9713_CLKA_X2 (1 << 1)
++#define WM9713_CLKB_X1 (0 << 2)
++#define WM9713_CLKB_X2 (1 << 2)
++
++/* MCLK clock MUX */
++#define WM9713_CLK_MUX_A (0 << 0)
++#define WM9713_CLK_MUX_B (1 << 0)
++
++/* Voice DAI BCLK divider */
++#define WM9713_PCMBCLK_DIV_1 (0 << 9)
++#define WM9713_PCMBCLK_DIV_2 (1 << 9)
++#define WM9713_PCMBCLK_DIV_4 (2 << 9)
++#define WM9713_PCMBCLK_DIV_8 (3 << 9)
++#define WM9713_PCMBCLK_DIV_16 (4 << 9)
++
++#define WM9713_DAI_AC97_HIFI 0
++#define WM9713_DAI_AC97_AUX 1
++#define WM9713_DAI_PCM_VOICE 2
++
++extern struct snd_soc_codec_device soc_codec_dev_wm9713;
++extern struct snd_soc_codec_dai wm9713_dai[3];
++
++int wm9713_reset(struct snd_soc_codec *codec, int try_warm);
++
++#endif
+diff --git a/sound/soc/s3c24xx/Kconfig b/sound/soc/s3c24xx/Kconfig
+index 5632a2e..c4910e6 100644
+--- a/sound/soc/s3c24xx/Kconfig
++++ b/sound/soc/s3c24xx/Kconfig
+@@ -1,13 +1,22 @@
+-config SND_S3C24XX_SOC
+- tristate "SoC Audio for the Samsung S3C24XX chips"
++menu "SoC Audio for the Samsung S3C"
++ depends on PLAT_S3C24XX && ARCH_S3C2410 && SND_SOC
++
++config SND_S3C_SOC
++ tristate "SoC Audio for the Samsung S3C chips"
+ depends on ARCH_S3C2410 && SND_SOC
+ select SND_PCM
+ help
+ Say Y or M if you want to add support for codecs attached to
+- the S3C24XX AC97, I2S or SSP interface. You will also need
++ the S3C AC97, I2S or SSP interface. You will also need
+ to select the audio interfaces to support below.
+
+-config SND_S3C24XX_SOC_I2S
++config SND_S3C_SOC_I2S
++ tristate
++
++config SND_S3C2450_SOC_I2S
++ tristate
++
++config SND_SOC_I2S_V40
+ tristate
+
+ config SND_S3C2443_SOC_AC97
+@@ -16,10 +25,43 @@ config SND_S3C2443_SOC_AC97
+ select SND_AC97_CODEC
+ select SND_SOC_AC97_BUS
+
++config SND_S3C2450_SOC_AC97
++ tristate
++ select AC97_BUS
++ select SND_AC97_CODEC
++ select SND_SOC_AC97_BUS
++
++config SND_S3C24XX_SOC_SMDK2450_WM9713
++ tristate "SoC AC97 Audio support for SMDK2450 - WM9713"
++ depends on SND_S3C_SOC && (CPU_S3C2450 || CPU_S3C2416)
++ select SND_S3C2450_SOC_AC97
++ select SND_SOC_WM9713
++ help
++ Say Y if you want to add support for SoC audio on smdk2450
++ with the WM9713.
++choice
++ prompt "SMDK Record Path Select"
++ depends on SND_S3C24XX_SOC_SMDK2450_WM9713
++
++config SOUND_WM9713_INPUT_STREAM_LINE
++ bool "Input Stream is LINE-IN"
++ depends on SND_S3C24XX_SOC_SMDK2450_WM9713
++ help
++ Say Y here to make input stream as LINE-IN.
++
++config SOUND_WM9713_INPUT_STREAM_MIC
++ bool "Input Stream is MIC"
++ depends on SND_S3C24XX_SOC_SMDK2450_WM9713
++ help
++ Say Y here to make input stream as MIC.
++endchoice
++
++
++
+ config SND_S3C24XX_SOC_NEO1973_WM8753
+ tristate "SoC I2S Audio support for NEO1973 - WM8753"
+- depends on SND_S3C24XX_SOC && MACH_NEO1973_GTA01
+- select SND_S3C24XX_SOC_I2S
++ depends on SND_S3C_SOC && MACH_NEO1973_GTA01
++ select SND_S3C_SOC_I2S
+ select SND_SOC_WM8753
+ help
+ Say Y if you want to add support for SoC audio on smdk2440
+@@ -27,11 +69,21 @@ config SND_S3C24XX_SOC_NEO1973_WM8753
+
+ config SND_S3C24XX_SOC_SMDK2443_WM9710
+ tristate "SoC AC97 Audio support for SMDK2443 - WM9710"
+- depends on SND_S3C24XX_SOC && MACH_SMDK2443
++ depends on SND_S3C_SOC && MACH_SMDK2443
+ select SND_S3C2443_SOC_AC97
+ select SND_SOC_AC97_CODEC
+ help
+ Say Y if you want to add support for SoC audio on smdk2443
+ with the WM9710.
+
++config SND_S3C24XX_SOC_SMDK2450_WM8580
++ tristate "SoC I2S Audio support for SMDK2450 - WM8580"
++ depends on SND_S3C_SOC && (CPU_S3C2450 || CPU_S3C2416)
++ select SND_S3C2450_SOC_I2S
++ select SND_SOC_WM8580
++ select SND_SOC_I2S_V40
++ help
++ Say Y if you want to add support for SoC audio on smdk2450
++ with the WM8580.
+
++endmenu
+diff --git a/sound/soc/s3c24xx/Makefile b/sound/soc/s3c24xx/Makefile
+index 13c92f0..3739c67 100644
+--- a/sound/soc/s3c24xx/Makefile
++++ b/sound/soc/s3c24xx/Makefile
+@@ -1,15 +1,24 @@
+ # S3c24XX Platform Support
+-snd-soc-s3c24xx-objs := s3c24xx-pcm.o
+ snd-soc-s3c24xx-i2s-objs := s3c24xx-i2s.o
++snd-soc-s3c-objs := s3c-pcm.o
++snd-soc-s3c-i2s-objs := s3c-i2s.o
+ snd-soc-s3c2443-ac97-objs := s3c2443-ac97.o
++snd-soc-s3c2450-ac97-objs := s3c2450-ac97.o
++snd-soc-s3c2450-i2s-objs := s3c2450-i2s.o
+
+-obj-$(CONFIG_SND_S3C24XX_SOC) += snd-soc-s3c24xx.o
+-obj-$(CONFIG_SND_S3C24XX_SOC_I2S) += snd-soc-s3c24xx-i2s.o
++obj-$(CONFIG_SND_S3C_SOC) += snd-soc-s3c.o
++obj-$(CONFIG_SND_S3C_SOC_I2S) += snd-soc-s3c-i2s.o
+ obj-$(CONFIG_SND_S3C2443_SOC_AC97) += snd-soc-s3c2443-ac97.o
++obj-$(CONFIG_SND_S3C2450_SOC_AC97) += snd-soc-s3c2450-ac97.o
++obj-$(CONFIG_SND_S3C2450_SOC_I2S) += snd-soc-s3c2450-i2s.o
+
+ # S3C24XX Machine Support
+ snd-soc-neo1973-wm8753-objs := neo1973_wm8753.o
+ snd-soc-smdk2443-wm9710-objs := smdk2443_wm9710.o
++snd-soc-smdk2450-wm9713-objs := smdk2450_wm9713.o
++snd-soc-smdk2450-wm8580-objs := smdk2450_wm8580.o
+
+ obj-$(CONFIG_SND_S3C24XX_SOC_NEO1973_WM8753) += snd-soc-neo1973-wm8753.o
+ obj-$(CONFIG_SND_S3C24XX_SOC_SMDK2443_WM9710) += snd-soc-smdk2443-wm9710.o
++obj-$(CONFIG_SND_S3C24XX_SOC_SMDK2450_WM9713) += snd-soc-smdk2450-wm9713.o
++obj-$(CONFIG_SND_S3C24XX_SOC_SMDK2450_WM8580) += snd-soc-smdk2450-wm8580.o
+diff --git a/sound/soc/s3c24xx/neo1973_wm8753.c b/sound/soc/s3c24xx/neo1973_wm8753.c
+index d5a8fc2..3bbe312 100644
+--- a/sound/soc/s3c24xx/neo1973_wm8753.c
++++ b/sound/soc/s3c24xx/neo1973_wm8753.c
+@@ -39,7 +39,7 @@
+ #include <asm/arch/spi-gpio.h>
+ #include "../codecs/wm8753.h"
+ #include "lm4857.h"
+-#include "s3c24xx-pcm.h"
++#include "s3c-pcm.h"
+ #include "s3c24xx-i2s.h"
+
+ /* define the scenarios */
+diff --git a/sound/soc/s3c24xx/s3c-i2s.c b/sound/soc/s3c24xx/s3c-i2s.c
+new file mode 100644
+index 0000000..e4ce2c9
+--- /dev/null
++++ b/sound/soc/s3c24xx/s3c-i2s.c
+@@ -0,0 +1,619 @@
++/*
++ * s3c-i2s.c -- ALSA Soc Audio Layer
++ *
++ * (c) 2006 Wolfson Microelectronics PLC.
++ * Graeme Gregory graeme.gregory@wolfsonmicro.com or linux@wolfsonmicro.com
++ *
++ * (c) 2004-2005 Simtec Electronics
++ * http://armlinux.simtec.co.uk/
++ * Ben Dooks <ben@simtec.co.uk>
++ * Ryu Euiyoul <ryu.real@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ *
++ * Revision history
++ * 11th Dec 2006 Merged with Simtec driver
++ * 10th Nov 2006 Initial version.
++ */
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/device.h>
++#include <linux/delay.h>
++#include <linux/clk.h>
++#include <sound/driver.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/pcm_params.h>
++#include <sound/initval.h>
++#include <sound/soc.h>
++
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/dma.h>
++
++#include <asm-arm/plat-s3c64xx/regs-iis.h>
++//#include <asm/arch/regs-iis.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/audio.h>
++#include <asm/arch/dma.h>
++#include <asm/arch/regs-s3c-clock.h>
++
++#include "s3c-pcm.h"
++#include "s3c-i2s.h"
++
++#ifdef CONFIG_SND_DEBUG
++#define s3cdbg(x...) printk(x)
++#else
++#define s3cdbg(x...)
++#endif
++
++/* used to disable sysclk if external crystal is used */
++static int extclk = 0;
++module_param(extclk, int, 0);
++MODULE_PARM_DESC(extclk, "set to 1 to disable s3c24XX i2s sysclk");
++
++static struct s3c2410_dma_client s3c24xx_dma_client_out = {
++ .name = "I2S PCM Stereo out"
++};
++
++static struct s3c2410_dma_client s3c24xx_dma_client_in = {
++ .name = "I2S PCM Stereo in"
++};
++
++static struct s3c24xx_pcm_dma_params s3c24xx_i2s_pcm_stereo_out = {
++ .client = &s3c24xx_dma_client_out,
++ .channel = DMACH_I2S_OUT,
++#if !defined (CONFIG_CPU_S3C6400) && !defined (CONFIG_CPU_S3C6410)
++ .dma_addr = S3C2410_PA_IIS + S3C2410_IISFIFO,
++ .dma_size = 2,
++#else
++ .dma_addr = S3C6400_PA_IIS + S3C2410_IISFIFO,
++ .dma_size = 4,
++#endif
++};
++
++static struct s3c24xx_pcm_dma_params s3c24xx_i2s_pcm_stereo_in = {
++ .client = &s3c24xx_dma_client_in,
++ .channel = DMACH_I2S_IN,
++#if !defined (CONFIG_CPU_S3C6400) && !defined (CONFIG_CPU_S3C6410)
++ .dma_addr = S3C2410_PA_IIS + S3C2410_IISFIFORX,
++ .dma_size = 2,
++#else
++ .dma_addr = S3C6400_PA_IIS + S3C2410_IISFIFORX,
++ .dma_size = 4,
++#endif
++};
++
++struct s3c24xx_i2s_info {
++ void __iomem *regs;
++ struct clk *iis_clk;
++ int master;
++};
++static struct s3c24xx_i2s_info s3c24xx_i2s;
++
++static void s3c24xx_snd_txctrl(int on)
++{
++ u32 iisfcon;
++ u32 iiscon;
++ u32 iismod;
++
++ s3cdbg("Entered %s : on = %d \n", __FUNCTION__, on);
++
++ iiscon = readl(s3c24xx_i2s.regs + S3C2410_IISCON);
++ iismod = readl(s3c24xx_i2s.regs + S3C2410_IISMOD);
++ iisfcon = readl(s3c24xx_i2s.regs + S3C2410_IISFCON);
++
++ s3cdbg("r: IISCON: %x IISMOD: %x IISFCON: %x\n", iiscon, iismod, iisfcon);
++
++ if (on) {
++#if !defined (CONFIG_CPU_S3C6400) && !defined (CONFIG_CPU_S3C6410)
++ iisfcon |= S3C2410_IISFCON_TXDMA | S3C2410_IISFCON_TXENABLE;
++ iiscon |= S3C2410_IISCON_TXDMAEN | S3C2410_IISCON_IISEN;
++ iiscon &= ~S3C2410_IISCON_TXIDLE;
++ iismod |= S3C2410_IISMOD_TXMODE;
++#else
++ iiscon |= S3C_IIS0CON_I2SACTIVE;
++#endif
++ writel(iismod, s3c24xx_i2s.regs + S3C2410_IISMOD);
++ writel(iisfcon, s3c24xx_i2s.regs + S3C2410_IISFCON);
++ writel(iiscon, s3c24xx_i2s.regs + S3C2410_IISCON);
++ } else {
++ /* note, we have to disable the FIFOs otherwise bad things
++ * seem to happen when the DMA stops. According to the
++ * Samsung supplied kernel, this should allow the DMA
++ * engine and FIFOs to reset. If this isn't allowed, the
++ * DMA engine will simply freeze randomly.
++ */
++
++#if !defined (CONFIG_CPU_S3C6400) && !defined (CONFIG_CPU_S3C6410)
++ iisfcon &= ~S3C2410_IISFCON_TXENABLE;
++ iisfcon &= ~S3C2410_IISFCON_TXDMA;
++ iiscon |= S3C2410_IISCON_TXIDLE;
++ iiscon &= ~S3C2410_IISCON_TXDMAEN;
++ iismod &= ~S3C2410_IISMOD_TXMODE;
++#else
++ iiscon &=~(S3C_IIS0CON_I2SACTIVE);
++ iismod &= ~S3C_IIS0MOD_TXMODE;
++#endif
++
++ writel(iiscon, s3c24xx_i2s.regs + S3C2410_IISCON);
++ writel(iisfcon, s3c24xx_i2s.regs + S3C2410_IISFCON);
++ writel(iismod, s3c24xx_i2s.regs + S3C2410_IISMOD);
++ }
++
++ s3cdbg("w: IISCON: %x IISMOD: %x IISFCON: %x\n", iiscon, iismod, iisfcon);
++}
++
++static void s3c24xx_snd_rxctrl(int on)
++{
++ u32 iisfcon;
++ u32 iiscon;
++ u32 iismod;
++
++ s3cdbg("Entered %s: on = %d\n", __FUNCTION__, on);
++
++ iisfcon = readl(s3c24xx_i2s.regs + S3C2410_IISFCON);
++ iiscon = readl(s3c24xx_i2s.regs + S3C2410_IISCON);
++ iismod = readl(s3c24xx_i2s.regs + S3C2410_IISMOD);
++
++ s3cdbg("r: IISCON: %x IISMOD: %x IISFCON: %x\n", iiscon, iismod, iisfcon);
++
++ if (on) {
++#if !defined (CONFIG_CPU_S3C6400) && !defined (CONFIG_CPU_S3C6410)
++ iisfcon |= S3C2410_IISFCON_RXDMA | S3C2410_IISFCON_RXENABLE;
++ iiscon |= S3C2410_IISCON_RXDMAEN | S3C2410_IISCON_IISEN;
++ iiscon &= ~S3C2410_IISCON_RXIDLE;
++ iismod |= S3C2410_IISMOD_RXMODE;
++#else
++ iiscon |= S3C_IIS0CON_I2SACTIVE;
++#endif
++ writel(iismod, s3c24xx_i2s.regs + S3C2410_IISMOD);
++ writel(iisfcon, s3c24xx_i2s.regs + S3C2410_IISFCON);
++ writel(iiscon, s3c24xx_i2s.regs + S3C2410_IISCON);
++ } else {
++ /* note, we have to disable the FIFOs otherwise bad things
++ * seem to happen when the DMA stops. According to the
++ * Samsung supplied kernel, this should allow the DMA
++ * engine and FIFOs to reset. If this isn't allowed, the
++ * DMA engine will simply freeze randomly.
++ */
++
++#if !defined (CONFIG_CPU_S3C6400) && !defined (CONFIG_CPU_S3C6410)
++ iisfcon &= ~S3C2410_IISFCON_RXENABLE;
++ iisfcon &= ~S3C2410_IISFCON_RXDMA;
++ iiscon |= S3C2410_IISCON_RXIDLE;
++ iiscon &= ~S3C2410_IISCON_RXDMAEN;
++ iismod &= ~S3C2410_IISMOD_RXMODE;
++#else
++ iiscon &=~ S3C_IIS0CON_I2SACTIVE;
++ iismod &= ~S3C_IIS0MOD_RXMODE;
++#endif
++ writel(iisfcon, s3c24xx_i2s.regs + S3C2410_IISFCON);
++ writel(iiscon, s3c24xx_i2s.regs + S3C2410_IISCON);
++ writel(iismod, s3c24xx_i2s.regs + S3C2410_IISMOD);
++
++ }
++ s3cdbg("w: IISCON: %x IISMOD: %x IISFCON: %x\n", iiscon, iismod, iisfcon);
++}
++
++/*
++ * Wait for the LR signal to allow synchronisation to the L/R clock
++ * from the codec. May only be needed for slave mode.
++ */
++static int s3c24xx_snd_lrsync(void)
++{
++ u32 iiscon;
++ unsigned long timeout = jiffies + msecs_to_jiffies(5);
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ while (1) {
++ iiscon = readl(s3c24xx_i2s.regs + S3C2410_IISCON);
++ if (iiscon & S3C2410_IISCON_LRINDEX)
++ break;
++
++ if (timeout < jiffies)
++ return -ETIMEDOUT;
++ }
++
++ return 0;
++}
++
++/*
++ * Check whether CPU is the master or slave
++ */
++static inline int s3c24xx_snd_is_clkmaster(void)
++{
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ return (readl(s3c24xx_i2s.regs + S3C2410_IISMOD) & S3C2410_IISMOD_SLAVE) ? 0:1;
++}
++
++/*
++ * Set S3C24xx I2S DAI format
++ */
++static int s3c_i2s_set_fmt(struct snd_soc_cpu_dai *cpu_dai,
++ unsigned int fmt)
++{
++#if 0
++ u32 iismod;
++
++ s3cdbg("Entered %s: fmt = %d\n", __FUNCTION__, fmt);
++
++ iismod = readl(s3c24xx_i2s.regs + S3C2410_IISMOD);
++
++ switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
++ case SND_SOC_DAIFMT_CBM_CFM:
++#if !defined (CONFIG_CPU_S3C6400) && !defined (CONFIG_CPU_S3C6410)
++ iismod |= S3C2410_IISMOD_SLAVE;
++#else
++ iismod |= S3C2410_IISMOD_MASTER;
++#endif
++ break;
++ case SND_SOC_DAIFMT_CBS_CFS:
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
++ case SND_SOC_DAIFMT_LEFT_J:
++#if !defined (CONFIG_CPU_S3C6400) && !defined (CONFIG_CPU_S3C6410)
++ iismod |= S3C2410_IISMOD_MSB;
++#else
++ iismod |= S3C_IIS0MOD_MSB;
++#endif
++ break;
++ case SND_SOC_DAIFMT_I2S:
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ writel(iismod, s3c24xx_i2s.regs + S3C2410_IISMOD);
++#endif
++ return 0;
++
++}
++
++static int s3c_i2s_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++
++ unsigned long iiscon;
++ unsigned long iismod;
++ unsigned long iisfcon;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ /*Set I2C port to controll WM8753 codec*/
++ gpio_pullup(S3C_GPB5, 0);
++ gpio_pullup(S3C_GPB6, 0);
++ gpio_set_pin(S3C_GPB5, S3C_GPB5_I2C_SCL);
++ gpio_set_pin(S3C_GPB6, S3C_GPB6_I2C_SDA);
++
++ s3c24xx_i2s.master = 1;
++
++ /* Configure the I2S pins in correct mode */
++ gpio_set_pin(S3C_GPD2,S3C_GPD2_I2S_LRCLK0);
++
++ if (s3c24xx_i2s.master && !extclk){
++ s3cdbg("Setting Clock Output as we are Master\n");
++ gpio_set_pin(S3C_GPD0,S3C_GPD0_I2S_CLK0);
++
++ }
++ gpio_set_pin(S3C_GPD1,S3C_GPD1_I2S_CDCLK0);
++ gpio_set_pin(S3C_GPD3,S3C_GPD3_I2S_DI0);
++ gpio_set_pin(S3C_GPD4,S3C_GPD4_I2S_DO0);
++
++ /* pull-up-enable, pull-down-disable*/
++ gpio_pullup(S3C_GPD0, 0x2);
++ gpio_pullup(S3C_GPD1, 0x2);
++ gpio_pullup(S3C_GPD2, 0x2);
++ gpio_pullup(S3C_GPD3, 0x2);
++ gpio_pullup(S3C_GPD4, 0x2);
++
++ s3cdbg("substream->stream : %d\n", substream->stream);
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
++ rtd->dai->cpu_dai->dma_data = &s3c24xx_i2s_pcm_stereo_out;
++ } else {
++ rtd->dai->cpu_dai->dma_data = &s3c24xx_i2s_pcm_stereo_in;
++ }
++
++ /* Working copies of registers */
++ iiscon = readl(Ss3c24xx_i2s.regs + S3C_IIS0CON);
++ iismod = readl(S3C_IIS0MOD);
++ iisfcon = readl(S3C_IIS0FIC);
++ /* is port used by another stream */
++ if (!(iiscon & S3C_IIS0CON_I2SACTIVE)) {
++
++ // Clear BFS field [2:1]
++ iismod &= ~(0x3<<1);
++ iismod |= S3C_IIS0MOD_32FS | S3C_IIS0MOD_INTERNAL_CLK;
++
++ if (!s3c24xx_i2s.master)
++ iismod |= S3C_IIS0MOD_IMS_SLAVE;
++ else
++ iismod |= S3C_IIS0MOD_IMS_EXTERNAL_MASTER;
++ }
++
++ /* enable TX & RX all to support Full-duplex */
++ iismod |= S3C_IIS0MOD_TXRXMODE;
++ iiscon |= S3C_IIS0CON_TXDMACTIVE;
++ iisfcon |= S3C_IIS_TX_FLUSH;
++ iiscon |= S3C_IIS0CON_RXDMACTIVE;
++ iisfcon |= S3C_IIS_RX_FLUSH;
++
++ writel(iiscon, S3C_IIS0CON);
++ writel(iismod, S3C_IIS0MOD);
++ writel(iisfcon, S3C_IIS0FIC);
++
++ // Tx, Rx fifo flush bit clear
++ iisfcon &= ~(S3C_IIS_TX_FLUSH | S3C_IIS_RX_FLUSH);
++ writel(iisfcon, S3C_IIS0FIC);
++
++ s3cdbg("IISCON: %lx IISMOD: %lx", iiscon, iismod);
++
++ return 0;
++
++}
++
++static int s3c_i2s_trigger(struct snd_pcm_substream *substream, int cmd)
++{
++ int ret = 0;
++
++ s3cdbg("Entered %s: cmd = %d\n", __FUNCTION__, cmd);
++
++ switch (cmd) {
++ case SNDRV_PCM_TRIGGER_START:
++ case SNDRV_PCM_TRIGGER_RESUME:
++ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
++ if (!s3c24xx_snd_is_clkmaster()) {
++ ret = s3c24xx_snd_lrsync();
++ if (ret)
++ goto exit_err;
++ }
++
++ if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ s3c24xx_snd_rxctrl(1);
++ else
++ s3c24xx_snd_txctrl(1);
++ break;
++ case SNDRV_PCM_TRIGGER_STOP:
++ case SNDRV_PCM_TRIGGER_SUSPEND:
++ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
++ if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ s3c24xx_snd_rxctrl(0);
++ else
++ s3c24xx_snd_txctrl(0);
++ break;
++ default:
++ ret = -EINVAL;
++ break;
++ }
++
++exit_err:
++ return ret;
++}
++
++static void s3c64xx_i2s_shutdown(struct snd_pcm_substream *substream)
++{
++ unsigned long iismod, iiscon;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ iismod=readl(S3C_IIS0MOD);
++
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
++ iismod &= ~S3C_IIS0MOD_TXMODE;
++ } else {
++ iismod &= ~S3C_IIS0MOD_RXMODE;
++ }
++
++ writel(iismod,S3C_IIS0MOD);
++
++ iiscon=readl(S3C_IIS0CON);
++ iiscon &= !S3C_IIS0CON_I2SACTIVE;
++ writel(iiscon,S3C_IIS0CON);
++
++ /* Clock disable
++ * PCLK & SCLK gating disable
++ */
++ __raw_writel(__raw_readl(S3C_PCLK_GATE)&~(S3C_CLKCON_PCLK_IIS0), S3C_PCLK_GATE);
++ __raw_writel(__raw_readl(S3C_SCLK_GATE)&~(S3C_CLKCON_SCLK_AUDIO0), S3C_SCLK_GATE);
++
++ /* EPLL disable */
++ __raw_writel(__raw_readl(S3C_EPLL_CON0)&~(1<<31) ,S3C_EPLL_CON0);
++
++}
++
++
++/*
++ * Set S3C24xx Clock source
++ */
++static int s3c_i2s_set_sysclk(struct snd_soc_cpu_dai *cpu_dai,
++ int clk_id, unsigned int freq, int dir)
++{
++ u32 iismod = readl(s3c24xx_i2s.regs + S3C2410_IISMOD);
++
++ s3cdbg("Entered %s : clk_id = %d\n", __FUNCTION__, clk_id);
++
++ iismod &= ~S3C2440_IISMOD_MPLL;
++
++ switch (clk_id) {
++ case S3C24XX_CLKSRC_PCLK:
++ break;
++ case S3C24XX_CLKSRC_MPLL:
++ iismod |= S3C2440_IISMOD_MPLL;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ writel(iismod, s3c24xx_i2s.regs + S3C2410_IISMOD);
++ return 0;
++}
++
++/*
++ * Set S3C24xx Clock dividers
++ */
++static int s3c_i2s_set_clkdiv(struct snd_soc_cpu_dai *cpu_dai,
++ int div_id, int div)
++{
++ u32 reg;
++
++ s3cdbg("Entered %s : div_id = %d, div = %d\n", __FUNCTION__, div_id, div);
++
++ switch (div_id) {
++ case S3C24XX_DIV_MCLK:
++#if !defined (CONFIG_CPU_S3C6400) && !defined (CONFIG_CPU_S3C6410)
++ reg = readl(s3c24xx_i2s.regs + S3C2410_IISMOD) & ~S3C2410_IISMOD_FS_MASK;
++ writel(reg | div, s3c24xx_i2s.regs + S3C2410_IISMOD);
++#endif
++ break;
++ case S3C24XX_DIV_BCLK:
++ reg = readl(s3c24xx_i2s.regs + S3C2410_IISMOD) & ~(S3C2410_IISMOD_384FS);
++ writel(reg | div, s3c24xx_i2s.regs + S3C2410_IISMOD);
++ break;
++ case S3C24XX_DIV_PRESCALER:
++#if !defined (CONFIG_CPU_S3C6400) && !defined (CONFIG_CPU_S3C6410)
++ writel(div, s3c24xx_i2s.regs + S3C2410_IISPSR);
++ reg = readl(s3c24xx_i2s.regs + S3C2410_IISCON);
++ writel(reg | S3C2410_IISCON_PSCEN, s3c24xx_i2s.regs + S3C2410_IISCON);
++#else
++ writel(div|(1<<15),S3C_IIS0PSR);
++#endif
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++#if !defined (CONFIG_CPU_S3C6400) && !defined (CONFIG_CPU_S3C6410)
++/*
++ * To avoid duplicating clock code, allow machine driver to
++ * get the clockrate from here.
++ */
++u32 s3c24xx_i2s_get_clockrate(void)
++{
++ return clk_get_rate(s3c24xx_i2s.iis_clk);
++}
++EXPORT_SYMBOL_GPL(s3c24xx_i2s_get_clockrate);
++#endif
++
++static int s3c_i2s_probe(struct platform_device *pdev)
++{
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ s3c24xx_i2s.regs = ioremap(S3C24XX_PA_IIS, 0x100);
++ if (s3c24xx_i2s.regs == NULL)
++ return -ENXIO;
++
++#if !defined (CONFIG_CPU_S3C6400) && !defined (CONFIG_CPU_S3C6410)
++ s3c24xx_i2s.iis_clk=clk_get(&pdev->dev, "iis");
++ if (s3c24xx_i2s.iis_clk == NULL) {
++ s3cdbg("failed to get iis_clock\n");
++ return -ENODEV;
++ }
++ clk_enable(s3c24xx_i2s.iis_clk);
++
++ /* Configure the I2S pins in correct mode */
++ s3c2410_gpio_cfgpin(S3C2410_GPE0, S3C2410_GPE0_I2SLRCK);
++ s3c2410_gpio_cfgpin(S3C2410_GPE1, S3C2410_GPE1_I2SSCLK);
++ s3c2410_gpio_cfgpin(S3C2410_GPE2, S3C2410_GPE2_CDCLK);
++ s3c2410_gpio_cfgpin(S3C2410_GPE3, S3C2410_GPE3_I2SSDI);
++ s3c2410_gpio_cfgpin(S3C2410_GPE4, S3C2410_GPE4_I2SSDO);
++
++ writel(S3C2410_IISCON_IISEN, s3c24xx_i2s.regs + S3C2410_IISCON);
++
++ /* Configure the I2S pins in correct mode */
++ gpio_set_pin(S3C_GPD2,S3C_GPD2_I2S_LRCLK0);
++
++ gpio_set_pin(S3C_GPD0,S3C_GPD0_I2S_CLK0);
++
++ gpio_set_pin(S3C_GPD1,S3C_GPD1_I2S_CDCLK0);
++ gpio_set_pin(S3C_GPD3,S3C_GPD3_I2S_DI0);
++ gpio_set_pin(S3C_GPD4,S3C_GPD4_I2S_DO0);
++
++ /* pull-up-enable, pull-down-disable*/
++ gpio_pullup(S3C_GPD0, 0x2);
++ gpio_pullup(S3C_GPD1, 0x2);
++ gpio_pullup(S3C_GPD2, 0x2);
++ gpio_pullup(S3C_GPD3, 0x2);
++ gpio_pullup(S3C_GPD4, 0x2);
++
++ writel(S3C2410_IISCON_IISEN, s3c24xx_i2s.regs + S3C2410_IISCON);
++ s3c24xx_snd_txctrl(0);
++ s3c24xx_snd_rxctrl(0);
++#endif
++
++ return 0;
++}
++
++#ifdef CONFIG_PM
++static int s3c_i2s_suspend(struct platform_device *dev,
++ struct snd_soc_cpu_dai *dai)
++{
++ s3cdbg("Entered %s\n", __FUNCTION__);
++ return 0;
++}
++
++static int s3c_i2s_resume(struct platform_device *pdev,
++ struct snd_soc_cpu_dai *dai)
++{
++ s3cdbg("Entered %s\n", __FUNCTION__);
++ return 0;
++}
++
++#else
++#define s3c_i2s_suspend NULL
++#define s3c_i2s_resume NULL
++#endif
++
++
++#define S3C24XX_I2S_RATES \
++ (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | SNDRV_PCM_RATE_16000 | \
++ SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | \
++ SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000)
++
++struct snd_soc_cpu_dai s3c_i2s_dai = {
++ .name = "s3c-i2s",
++ .id = 0,
++ .type = SND_SOC_DAI_I2S,
++ .probe = s3c_i2s_probe,
++ .suspend = s3c_i2s_suspend,
++ .resume = s3c_i2s_resume,
++ .playback = {
++ .channels_min = 2,
++ .channels_max = 2,
++ .rates = S3C24XX_I2S_RATES,
++ .formats = SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_S16_LE,},
++ .capture = {
++ .channels_min = 2,
++ .channels_max = 2,
++ .rates = S3C24XX_I2S_RATES,
++ .formats = SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_S16_LE,},
++ .ops = {
++ .shutdown = s3c64xx_i2s_shutdown,
++ .trigger = s3c_i2s_trigger,
++ .hw_params = s3c_i2s_hw_params,},
++ .dai_ops = {
++ .set_fmt = s3c_i2s_set_fmt,
++ .set_clkdiv = s3c_i2s_set_clkdiv,
++ .set_sysclk = s3c_i2s_set_sysclk,
++ },
++};
++EXPORT_SYMBOL_GPL(s3c_i2s_dai);
++
++/* Module information */
++MODULE_AUTHOR("Ben Dooks, <ben@simtec.co.uk>");
++MODULE_DESCRIPTION("s3c24xx I2S SoC Interface");
++MODULE_LICENSE("GPL");
+diff --git a/sound/soc/s3c24xx/s3c-i2s.h b/sound/soc/s3c24xx/s3c-i2s.h
+new file mode 100644
+index 0000000..534f3be
+--- /dev/null
++++ b/sound/soc/s3c24xx/s3c-i2s.h
+@@ -0,0 +1,43 @@
++/*
++ * s3c24xx-i2s.c -- ALSA Soc Audio Layer
++ *
++ * Copyright 2005 Wolfson Microelectronics PLC.
++ * Author: Graeme Gregory
++ * graeme.gregory@wolfsonmicro.com or linux@wolfsonmicro.com
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * Revision history
++ * 10th Nov 2006 Initial version.
++ */
++
++#ifndef S3C24XXI2S_H_
++#define S3C24XXI2S_H_
++
++/* clock sources */
++#define S3C24XX_CLKSRC_PCLK 0
++#define S3C24XX_CLKSRC_MPLL 1
++
++/* Clock dividers */
++#define S3C24XX_DIV_MCLK 0
++#define S3C24XX_DIV_BCLK 1
++#define S3C24XX_DIV_PRESCALER 2
++
++/* prescaler */
++#if !defined(CONFIG_CPU_S3C6400) && !defined(CONFIG_CPU_S3C6410)
++#define S3C24XX_PRESCALE(a,b) \
++ (((a - 1) << S3C2410_IISPSR_INTSHIFT) | ((b - 1) << S3C2410_IISPSR_EXTSHFIT))
++#else
++#define S3C24XX_PRESCALE(a,b) \
++ (((a - 1) << S3C_IISPSR_INTSHIFT) | ((b - 1) << S3C_IISPSR_INTSHIFT))
++#endif
++
++u32 s3c24xx_i2s_get_clockrate(void);
++
++extern struct snd_soc_cpu_dai s3c_i2s_dai;
++extern struct snd_soc_cpu_dai s3c_i2s_v40_dai;
++
++#endif /*S3C24XXI2S_H_*/
+diff --git a/sound/soc/s3c24xx/s3c-pcm.c b/sound/soc/s3c24xx/s3c-pcm.c
+new file mode 100644
+index 0000000..a0d4d37
+--- /dev/null
++++ b/sound/soc/s3c24xx/s3c-pcm.c
+@@ -0,0 +1,544 @@
++/*
++ * s3c-pcm.c -- ALSA Soc Audio Layer
++ *
++ * (c) 2006 Wolfson Microelectronics PLC.
++ * Graeme Gregory graeme.gregory@wolfsonmicro.com or linux@wolfsonmicro.com
++ *
++ * (c) 2004-2005 Simtec Electronics
++ * http://armlinux.simtec.co.uk/
++ * Ben Dooks <ben@simtec.co.uk>
++ * Ryu Euiyoul <ryu.real@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * Revision history
++ * 11th Dec 2006 Merged with Simtec driver
++ * 10th Nov 2006 Initial version.
++ */
++
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/slab.h>
++#include <linux/dma-mapping.h>
++
++#include <sound/driver.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/pcm_params.h>
++#include <sound/soc.h>
++
++#include <asm/dma.h>
++#include <asm/io.h>
++#include <asm/hardware.h>
++#include <asm/arch/dma.h>
++#include <asm/arch/audio.h>
++
++#include "s3c-pcm.h"
++
++#if defined CONFIG_SND_S3C6400_SOC_AC97
++#define MAIN_DMA_CH 1
++#else /*S3C6400 I2S */
++#define MAIN_DMA_CH 0
++#endif
++
++#ifdef CONFIG_SND_DEBUG
++#define s3cdbg(x...) printk(x)
++#else
++#define s3cdbg(x...)
++#endif
++
++static const struct snd_pcm_hardware s3c24xx_pcm_hardware = {
++ .info = SNDRV_PCM_INFO_INTERLEAVED |
++ SNDRV_PCM_INFO_BLOCK_TRANSFER |
++ SNDRV_PCM_INFO_MMAP |
++ SNDRV_PCM_INFO_MMAP_VALID,
++ .formats = SNDRV_PCM_FMTBIT_S16_LE |
++ SNDRV_PCM_FMTBIT_U16_LE |
++ SNDRV_PCM_FMTBIT_U8 |
++ SNDRV_PCM_FMTBIT_S24_LE |
++ SNDRV_PCM_FMTBIT_S8,
++ .channels_min = 2,
++ .channels_max = 2,
++ .buffer_bytes_max = 128*1024,
++ .period_bytes_min = PAGE_SIZE,
++ .period_bytes_max = PAGE_SIZE*2,
++ .periods_min = 2,
++ .periods_max = 128,
++ .fifo_size = 32,
++};
++
++struct s3c24xx_runtime_data {
++ spinlock_t lock;
++ int state;
++ unsigned int dma_loaded;
++ unsigned int dma_limit;
++ unsigned int dma_period;
++ dma_addr_t dma_start;
++ dma_addr_t dma_pos;
++ dma_addr_t dma_end;
++ struct s3c24xx_pcm_dma_params *params;
++};
++
++/* s3c24xx_pcm_enqueue
++ *
++ * place a dma buffer onto the queue for the dma system
++ * to handle.
++*/
++static void s3c24xx_pcm_enqueue(struct snd_pcm_substream *substream)
++{
++ struct s3c24xx_runtime_data *prtd = substream->runtime->private_data;
++ dma_addr_t pos = prtd->dma_pos;
++ int ret;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ while (prtd->dma_loaded < prtd->dma_limit) {
++ unsigned long len = prtd->dma_period;
++
++ s3cdbg("dma_loaded: %d\n",prtd->dma_loaded);
++
++ if ((pos + len) > prtd->dma_end) {
++ len = prtd->dma_end - pos;
++ s3cdbg(KERN_DEBUG "%s: corrected dma len %ld\n",
++ __FUNCTION__, len);
++ }
++
++ ret = s3c2410_dma_enqueue(prtd->params->channel,
++ substream, pos, len);
++
++ if (ret == 0) {
++ prtd->dma_loaded++;
++ pos += prtd->dma_period;
++ if (pos >= prtd->dma_end)
++ pos = prtd->dma_start;
++ } else
++ break;
++ }
++
++ prtd->dma_pos = pos;
++}
++
++static void s3c24xx_audio_buffdone(struct s3c2410_dma_chan *channel,
++ void *dev_id, int size,
++ enum s3c2410_dma_buffresult result)
++{
++ struct snd_pcm_substream *substream = dev_id;
++ struct s3c24xx_runtime_data *prtd;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ if (result == S3C2410_RES_ABORT || result == S3C2410_RES_ERR)
++ return;
++ else {
++ prtd = substream->runtime->private_data;
++
++ if (substream)
++ snd_pcm_period_elapsed(substream);
++ else
++ return;
++
++ spin_lock(&prtd->lock);
++ if (prtd->state & ST_RUNNING) {
++ prtd->dma_loaded--;
++ s3c24xx_pcm_enqueue(substream);
++ }
++
++ spin_unlock(&prtd->lock);
++ }
++#if 0
++ struct snd_pcm_substream *substream = dev_id;
++ struct s3c24xx_runtime_data *prtd = substream->runtime->private_data;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ if (result == S3C2410_RES_ABORT || result == S3C2410_RES_ERR)
++ return;
++
++ snd_pcm_period_elapsed(substream);
++
++ spin_lock(&prtd->lock);
++ if (prtd->state & ST_RUNNING) {
++ prtd->dma_loaded--;
++ s3c24xx_pcm_enqueue(substream);
++ }
++
++ spin_unlock(&prtd->lock);
++#endif
++}
++
++static int s3c24xx_pcm_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct s3c24xx_runtime_data *prtd = runtime->private_data;
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct s3c24xx_pcm_dma_params *dma = rtd->dai->cpu_dai->dma_data;
++ unsigned long totbytes = params_buffer_bytes(params);
++ int ret=0;
++
++ s3cdbg("Entered %s, params = %p \n", __FUNCTION__, prtd->params);
++
++ /* return if this is a bufferless transfer e.g.
++ * codec <--> BT codec or GSM modem -- lg FIXME */
++ if (!dma)
++ return 0;
++
++ /* this may get called several times by oss emulation
++ * with different params */
++ if (prtd->params == NULL) {
++ prtd->params = dma;
++ s3cdbg("params %p, client %p, channel %d\n", prtd->params,
++ prtd->params->client, prtd->params->channel);
++
++
++ /* prepare DMA */
++ ret = s3c2410_dma_request(prtd->params->channel,
++ prtd->params->client, NULL);
++
++ if (ret) {
++ printk(KERN_ERR "failed to get dma channel\n");
++ return ret;
++ }
++ } else if (prtd->params != dma) {
++ s3c2410_dma_free(prtd->params->channel, prtd->params->client);
++ prtd->params = dma;
++ s3cdbg("params %p, client %p, channel %d\n", prtd->params,
++ prtd->params->client, prtd->params->channel);
++
++
++ /* prepare DMA */
++ ret = s3c2410_dma_request(prtd->params->channel,
++ prtd->params->client, NULL);
++
++ if (ret) {
++ printk(KERN_ERR "failed to get dma channel\n");
++ return ret;
++ }
++ }
++
++ /* channel needs configuring for mem=>device, increment memory addr,
++ * sync to pclk, half-word transfers to the IIS-FIFO. */
++#if !defined (CONFIG_CPU_S3C6400) && !defined (CONFIG_CPU_S3C6410)
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
++ s3c2410_dma_devconfig(prtd->params->channel,
++ S3C2410_DMASRC_MEM, S3C2410_DISRCC_INC |
++ S3C2410_DISRCC_APB, prtd->params->dma_addr);
++
++ s3c2410_dma_config(prtd->params->channel,
++ prtd->params->dma_size,
++ S3C2410_DCON_SYNC_PCLK |
++ S3C2410_DCON_HANDSHAKE);
++ } else {
++ s3c2410_dma_config(prtd->params->channel,
++ prtd->params->dma_size,
++ S3C2410_DCON_HANDSHAKE |
++ S3C2410_DCON_SYNC_PCLK);
++
++ s3c2410_dma_devconfig(prtd->params->channel,
++ S3C2410_DMASRC_HW, 0x3,
++ prtd->params->dma_addr);
++ }
++
++#else
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
++ s3c2410_dma_devconfig(prtd->params->channel,
++ S3C2410_DMASRC_MEM, 0,
++ prtd->params->dma_addr);
++
++ s3c2410_dma_config(prtd->params->channel,
++ prtd->params->dma_size, 0);
++ } else {
++ s3c2410_dma_devconfig(prtd->params->channel,
++ S3C2410_DMASRC_HW, 0,
++ prtd->params->dma_addr);
++
++ s3c2410_dma_config(prtd->params->channel,
++ prtd->params->dma_size, 0);
++ }
++#endif
++
++ s3c2410_dma_set_buffdone_fn(prtd->params->channel,
++ s3c24xx_audio_buffdone);
++
++ snd_pcm_set_runtime_buffer(substream, &substream->dma_buffer);
++
++ runtime->dma_bytes = totbytes;
++
++ spin_lock_irq(&prtd->lock);
++ prtd->dma_loaded = 0;
++ prtd->dma_limit = runtime->hw.periods_min;
++ prtd->dma_period = params_period_bytes(params);
++ prtd->dma_start = runtime->dma_addr;
++ prtd->dma_pos = prtd->dma_start;
++ prtd->dma_end = prtd->dma_start + totbytes;
++ spin_unlock_irq(&prtd->lock);
++
++ s3cdbg("Entered %s, line %d \n", __FUNCTION__, __LINE__);
++ return 0;
++}
++
++static int s3c24xx_pcm_hw_free(struct snd_pcm_substream *substream)
++{
++ struct s3c24xx_runtime_data *prtd = substream->runtime->private_data;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ /* TODO - do we need to ensure DMA flushed */
++ snd_pcm_set_runtime_buffer(substream, NULL);
++
++ if (prtd->params) {
++ s3c2410_dma_free(prtd->params->channel, prtd->params->client);
++ prtd->params = NULL;
++ }
++
++ return 0;
++}
++
++static int s3c24xx_pcm_prepare(struct snd_pcm_substream *substream)
++{
++ struct s3c24xx_runtime_data *prtd = substream->runtime->private_data;
++ int ret = 0;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++#if !defined (CONFIG_CPU_S3C6400) && !defined (CONFIG_CPU_S3C6410)
++ /* return if this is a bufferless transfer e.g.
++ * codec <--> BT codec or GSM modem -- lg FIXME */
++ if (!prtd->params)
++ return 0;
++#endif
++
++ /* flush the DMA channel */
++ s3c2410_dma_ctrl(prtd->params->channel, S3C2410_DMAOP_FLUSH);
++
++ prtd->dma_loaded = 0;
++
++ prtd->dma_pos = prtd->dma_start;
++
++ /* enqueue dma buffers */
++ s3c24xx_pcm_enqueue(substream);
++
++ return ret;
++}
++
++static int s3c24xx_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
++{
++ struct s3c24xx_runtime_data *prtd = substream->runtime->private_data;
++ int ret = 0;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ spin_lock(&prtd->lock);
++
++ switch (cmd) {
++ case SNDRV_PCM_TRIGGER_START:
++ case SNDRV_PCM_TRIGGER_RESUME:
++ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
++ prtd->state |= ST_RUNNING;
++ s3c2410_dma_ctrl(prtd->params->channel, S3C2410_DMAOP_START);
++#if !defined (CONFIG_CPU_S3C6400) && !defined (CONFIG_CPU_S3C6410)
++ s3c2410_dma_ctrl(prtd->params->channel, S3C2410_DMAOP_STARTED);
++#endif
++ break;
++
++ case SNDRV_PCM_TRIGGER_STOP:
++ case SNDRV_PCM_TRIGGER_SUSPEND:
++ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
++ prtd->state &= ~ST_RUNNING;
++ s3c2410_dma_ctrl(prtd->params->channel, S3C2410_DMAOP_STOP);
++ break;
++
++ default:
++ ret = -EINVAL;
++ break;
++ }
++
++ spin_unlock(&prtd->lock);
++
++ return ret;
++}
++
++static snd_pcm_uframes_t
++ s3c24xx_pcm_pointer(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct s3c24xx_runtime_data *prtd = runtime->private_data;
++ unsigned long res;
++ dma_addr_t src, dst;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ spin_lock(&prtd->lock);
++
++ s3c2410_dma_getposition(prtd->params->channel, &src, &dst);
++
++ if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ res = dst - prtd->dma_start;
++ else
++ res = src - prtd->dma_start;
++
++ spin_unlock(&prtd->lock);
++
++ s3cdbg("Pointer %x %x\n",src,dst);
++
++ /* we seem to be getting the odd error from the pcm library due
++ * to out-of-bounds pointers. this is maybe due to the dma engine
++ * not having loaded the new values for the channel before being
++ * callled... (todo - fix )
++ */
++
++ if (res >= snd_pcm_lib_buffer_bytes(substream)) {
++ if (res == snd_pcm_lib_buffer_bytes(substream))
++ res = 0;
++ }
++
++ return bytes_to_frames(substream->runtime, res);
++}
++
++static int s3c24xx_pcm_open(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct s3c24xx_runtime_data *prtd;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ snd_soc_set_runtime_hwparams(substream, &s3c24xx_pcm_hardware);
++
++ prtd = kzalloc(sizeof(struct s3c24xx_runtime_data), GFP_KERNEL);
++ if (prtd == NULL)
++ return -ENOMEM;
++
++ spin_lock_init(&prtd->lock);
++
++ runtime->private_data = prtd;
++ return 0;
++}
++
++static int s3c24xx_pcm_close(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct s3c24xx_runtime_data *prtd = runtime->private_data;
++
++ s3cdbg("Entered %s, prtd = %p\n", __FUNCTION__, prtd);
++
++ if (prtd)
++ kfree(prtd);
++ else
++ printk("s3c24xx_pcm_close called with prtd == NULL\n");
++
++ return 0;
++}
++
++static int s3c24xx_pcm_mmap(struct snd_pcm_substream *substream,
++ struct vm_area_struct *vma)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ return dma_mmap_writecombine(substream->pcm->card->dev, vma,
++ runtime->dma_area,
++ runtime->dma_addr,
++ runtime->dma_bytes);
++}
++
++static struct snd_pcm_ops s3c24xx_pcm_ops = {
++ .open = s3c24xx_pcm_open,
++ .close = s3c24xx_pcm_close,
++ .ioctl = snd_pcm_lib_ioctl,
++ .hw_params = s3c24xx_pcm_hw_params,
++ .hw_free = s3c24xx_pcm_hw_free,
++ .prepare = s3c24xx_pcm_prepare,
++ .trigger = s3c24xx_pcm_trigger,
++ .pointer = s3c24xx_pcm_pointer,
++ .mmap = s3c24xx_pcm_mmap,
++};
++
++static int s3c24xx_pcm_preallocate_dma_buffer(struct snd_pcm *pcm, int stream)
++{
++ struct snd_pcm_substream *substream = pcm->streams[stream].substream;
++ struct snd_dma_buffer *buf = &substream->dma_buffer;
++ size_t size = s3c24xx_pcm_hardware.buffer_bytes_max;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ buf->dev.type = SNDRV_DMA_TYPE_DEV;
++ buf->dev.dev = pcm->card->dev;
++ buf->private_data = NULL;
++ buf->area = dma_alloc_writecombine(pcm->card->dev, size,
++ &buf->addr, GFP_KERNEL);
++ if (!buf->area)
++ return -ENOMEM;
++ buf->bytes = size;
++ return 0;
++}
++
++static void s3c24xx_pcm_free_dma_buffers(struct snd_pcm *pcm)
++{
++ struct snd_pcm_substream *substream;
++ struct snd_dma_buffer *buf;
++ int stream;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ for (stream = 0; stream < 2; stream++) {
++ substream = pcm->streams[stream].substream;
++ if (!substream)
++ continue;
++
++ buf = &substream->dma_buffer;
++ if (!buf->area)
++ continue;
++
++ dma_free_writecombine(pcm->card->dev, buf->bytes,
++ buf->area, buf->addr);
++ buf->area = NULL;
++ }
++}
++
++static u64 s3c24xx_pcm_dmamask = DMA_32BIT_MASK;
++
++static int s3c24xx_pcm_new(struct snd_card *card,
++ struct snd_soc_codec_dai *dai, struct snd_pcm *pcm)
++{
++ int ret = 0;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ if (!card->dev->dma_mask)
++ card->dev->dma_mask = &s3c24xx_pcm_dmamask;
++ if (!card->dev->coherent_dma_mask)
++ card->dev->coherent_dma_mask = 0xffffffff;
++
++ if (dai->playback.channels_min) {
++ ret = s3c24xx_pcm_preallocate_dma_buffer(pcm,
++ SNDRV_PCM_STREAM_PLAYBACK);
++ if (ret)
++ goto out;
++ }
++
++ if (dai->capture.channels_min) {
++ ret = s3c24xx_pcm_preallocate_dma_buffer(pcm,
++ SNDRV_PCM_STREAM_CAPTURE);
++ if (ret)
++ goto out;
++ }
++ out:
++ return ret;
++}
++
++struct snd_soc_platform s3c24xx_soc_platform = {
++ .name = "s3c24xx-audio",
++ .pcm_ops = &s3c24xx_pcm_ops,
++ .pcm_new = s3c24xx_pcm_new,
++ .pcm_free = s3c24xx_pcm_free_dma_buffers,
++};
++
++EXPORT_SYMBOL_GPL(s3c24xx_soc_platform);
++
++MODULE_AUTHOR("Ben Dooks, <ben@simtec.co.uk>");
++MODULE_DESCRIPTION("Samsung S3C24XX PCM DMA module");
++MODULE_LICENSE("GPL");
+diff --git a/sound/soc/s3c24xx/s3c-pcm.h b/sound/soc/s3c24xx/s3c-pcm.h
+new file mode 100644
+index 0000000..674d010
+--- /dev/null
++++ b/sound/soc/s3c24xx/s3c-pcm.h
+@@ -0,0 +1,40 @@
++/*
++ * s3c24xx-pcm.h --
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * ALSA PCM interface for the Samsung S3C24xx CPU
++ */
++
++#ifndef _S3C24XX_PCM_H
++#define _S3C24XX_PCM_H
++
++#define ST_RUNNING (1<<0)
++#define ST_OPENED (1<<1)
++
++struct s3c24xx_pcm_dma_params {
++ struct s3c2410_dma_client *client; /* stream identifier */
++ int channel; /* Channel ID */
++ dma_addr_t dma_addr;
++ int dma_size; /* Size of the DMA transfer */
++};
++
++#define S3C24XX_DAI_I2S 0
++
++#if defined (CONFIG_CPU_S3C6400) || defined (CONFIG_CPU_S3C6410)
++#define S3CPCM_DCON 0
++#define S3CPCM_HWCFG 0
++#else
++//#include <asm/arch/dma.h>
++#define S3CPCM_DCON S3C2410_DCON_SYNC_PCLK|S3C2410_DCON_HANDSHAKE
++#define S3CPCM_HWCFG S3C2410_DISRCC_INC|S3C2410_DISRCC_APB
++#endif
++
++/* platform data */
++extern struct snd_soc_platform s3c24xx_soc_platform;
++extern struct snd_ac97_bus_ops s3c24xx_ac97_ops;
++
++#endif
+diff --git a/sound/soc/s3c24xx/s3c2443-ac97.c b/sound/soc/s3c24xx/s3c2443-ac97.c
+index 758a263..f9a5c78 100644
+--- a/sound/soc/s3c24xx/s3c2443-ac97.c
++++ b/sound/soc/s3c24xx/s3c2443-ac97.c
+@@ -39,7 +39,7 @@
+ #include <asm/dma.h>
+ #include <asm/arch/dma.h>
+
+-#include "s3c24xx-pcm.h"
++#include "s3c-pcm.h"
+ #include "s3c24xx-ac97.h"
+
+ struct s3c24xx_ac97_info {
+diff --git a/sound/soc/s3c24xx/s3c2450-ac97.c b/sound/soc/s3c24xx/s3c2450-ac97.c
+new file mode 100644
+index 0000000..1f0378c
+--- /dev/null
++++ b/sound/soc/s3c24xx/s3c2450-ac97.c
+@@ -0,0 +1,561 @@
++/*
++ * s3c2450-ac97.c -- ALSA Soc Audio Layer
++ *
++ * (c) 2007 Wolfson Microelectronics PLC.
++ * Graeme Gregory graeme.gregory@wolfsonmicro.com or linux@wolfsonmicro.com
++ *
++ * Copyright (C) 2007, Ryu Euiyoul <ryu.real@gmail.com>
++ * All rights reserved.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * Revision history
++ * 21st Mar 2007 Initial Version
++ */
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/platform_device.h>
++#include <linux/interrupt.h>
++#include <linux/wait.h>
++#include <linux/delay.h>
++#include <linux/clk.h>
++
++#include <sound/driver.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/ac97_codec.h>
++#include <sound/initval.h>
++#include <sound/soc.h>
++
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm-arm/plat-s3c/regs-ac97.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm-arm/arch/regs-s3c-clock.h>
++#include <asm/arch/audio.h>
++#include <asm/dma.h>
++#include <asm/arch/dma.h>
++
++#include "s3c-pcm.h"
++#include "s3c24xx-ac97.h"
++
++#ifdef CONFIG_SND_DEBUG
++#define s3cdbg(x...) printk(x)
++#else
++#define s3cdbg(x...)
++#endif
++
++extern struct clk *clk_get(struct device *dev, const char *id);
++extern int clk_enable(struct clk *clk);
++extern void clk_disable(struct clk *clk);
++
++struct s3c24xx_ac97_info {
++ void __iomem *regs;
++ struct clk *ac97_clk;
++};
++static struct s3c24xx_ac97_info s3c24xx_ac97;
++
++static u32 codec_ready;
++static DEFINE_MUTEX(ac97_mutex);
++static DECLARE_WAIT_QUEUE_HEAD(gsr_wq);
++
++static unsigned short s3c24xx_ac97_read(struct snd_ac97 *ac97,
++ unsigned short reg)
++{
++ u32 ac_glbctrl;
++ u32 ac_codec_cmd;
++ u32 stat, addr, data;
++
++ s3cdbg("Entered %s: reg=0x%x\n", __FUNCTION__, reg);
++
++ mutex_lock(&ac97_mutex);
++
++ codec_ready = S3C_AC97_GLBSTAT_CODECREADY;
++ ac_codec_cmd = S3C_AC97_CODEC_CMD_READ | AC_CMD_ADDR(reg);
++ writel(ac_codec_cmd, s3c24xx_ac97.regs + S3C_AC97_CODEC_CMD);
++
++ udelay(1000);
++
++ ac_glbctrl = readl(s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ ac_glbctrl |= S3C_AC97_GLBCTRL_CODECREADYIE;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++
++ stat = readl(s3c24xx_ac97.regs + S3C_AC97_STAT);
++ addr = (stat >> 16) & 0x7f;
++ data = (stat & 0xffff);
++
++ wait_event_timeout(gsr_wq,addr==reg,1);
++ if(addr!=reg){
++ printk(KERN_ERR"AC97: read error (ac97_reg=%x addr=%x)\n", reg, addr);
++ printk(KERN_ERR"Check audio codec jumpper settings\n\n");
++ goto out;
++ }
++
++out: mutex_unlock(&ac97_mutex);
++ return (unsigned short)data;
++}
++
++static void s3c24xx_ac97_write(struct snd_ac97 *ac97, unsigned short reg,
++ unsigned short val)
++{
++ u32 ac_glbctrl;
++ u32 ac_codec_cmd;
++ u32 stat, data;
++
++ s3cdbg("Entered %s: reg=0x%x, val=0x%x\n", __FUNCTION__,reg,val);
++
++ mutex_lock(&ac97_mutex);
++
++ codec_ready = S3C_AC97_GLBSTAT_CODECREADY;
++ ac_codec_cmd = AC_CMD_ADDR(reg) | AC_CMD_DATA(val);
++ writel(ac_codec_cmd, s3c24xx_ac97.regs + S3C_AC97_CODEC_CMD);
++
++ udelay(50);
++
++ ac_glbctrl = readl(s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ ac_glbctrl |= S3C_AC97_GLBCTRL_CODECREADYIE;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++
++ ac_codec_cmd |= S3C_AC97_CODEC_CMD_READ;
++ writel(ac_codec_cmd, s3c24xx_ac97.regs + S3C_AC97_CODEC_CMD);
++
++ stat = readl(s3c24xx_ac97.regs + S3C_AC97_CODEC_CMD);
++ data = (stat & 0xffff);
++
++ wait_event_timeout(gsr_wq,data==val,1);
++ if(data!=val){
++ printk("%s: write error (ac97_val=%x data=%x)\n",
++ __FUNCTION__, val, data);
++ }
++
++ mutex_unlock(&ac97_mutex);
++}
++
++static void s3c24xx_ac97_warm_reset(struct snd_ac97 *ac97)
++{
++ u32 ac_glbctrl;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ ac_glbctrl = readl(s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ ac_glbctrl |= S3C_AC97_GLBCTRL_WARMRESET;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ msleep(1);
++
++ ac_glbctrl &= ~S3C_AC97_GLBCTRL_WARMRESET;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ msleep(1);
++
++ ac_glbctrl = S3C_AC97_GLBCTRL_ACLINKON;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ msleep(1);
++
++ ac_glbctrl = S3C_AC97_GLBCTRL_TRANSFERDATAENABLE;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ msleep(1);
++
++ ac_glbctrl |= S3C_AC97_GLBCTRL_PCMOUTTM_DMA |
++ S3C_AC97_GLBCTRL_PCMINTM_DMA | S3C_AC97_GLBCTRL_MICINTM_DMA;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++
++ ac_glbctrl = readl(s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ ac_glbctrl |= S3C_AC97_GLBCTRL_ACLINKON;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ udelay(1000);
++}
++
++static void s3c24xx_ac97_cold_reset(struct snd_ac97 *ac97)
++{
++ u32 ac_glbctrl;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ ac_glbctrl = S3C_AC97_GLBCTRL_COLDRESET;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ msleep(1);
++
++ ac_glbctrl &= ~S3C_AC97_GLBCTRL_COLDRESET;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ msleep(1);
++
++ ac_glbctrl = S3C_AC97_GLBCTRL_COLDRESET;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ msleep(1);
++
++ ac_glbctrl &= ~S3C_AC97_GLBCTRL_COLDRESET;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ msleep(1);
++}
++
++static irqreturn_t s3c24xx_ac97_irq(int irq, void *dev_id)
++{
++ int status;
++ u32 ac_glbctrl, ac_glbstat;
++
++ ac_glbstat = readl(s3c24xx_ac97.regs + S3C_AC97_GLBSTAT);
++
++ s3cdbg("Entered %s: AC_GLBSTAT = 0x%x\n", __FUNCTION__, ac_glbstat);
++
++ status = ac_glbstat & codec_ready;
++
++
++ if (status) {
++ ac_glbctrl = readl(s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ ac_glbctrl &= ~S3C_AC97_GLBCTRL_CODECREADYIE;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ wake_up(&gsr_wq);
++ }
++ return IRQ_HANDLED;
++}
++
++struct snd_ac97_bus_ops soc_ac97_ops = {
++ .read = s3c24xx_ac97_read,
++ .write = s3c24xx_ac97_write,
++ .warm_reset = s3c24xx_ac97_warm_reset,
++ .reset = s3c24xx_ac97_cold_reset,
++};
++
++static struct s3c2410_dma_client s3c24xx_dma_client_out = {
++ .name = "AC97 PCM Stereo out"
++};
++
++static struct s3c24xx_pcm_dma_params s3c24xx_ac97_pcm_stereo_out = {
++ .client = &s3c24xx_dma_client_out,
++ .channel = DMACH_PCM_OUT,
++ .dma_addr = S3C2440_PA_AC97 + S3C_AC97_PCM_DATA,
++ .dma_size = 4,
++};
++
++#ifdef CONFIG_SOUND_INPUT_STREAM_MIC
++static struct s3c2410_dma_client s3c24xx_dma_client_micin = {
++ .name = "AC97 Mic Mono in"
++};
++
++static struct s3c24xx_pcm_dma_params s3c24xx_ac97_mic_mono_in = {
++ .client = &s3c24xx_dma_client_micin,
++ .channel = DMACH_MIC_IN,
++ .dma_addr = S3C2440_PA_AC97 + S3C_AC97_MIC_DATA,
++ .dma_size = 4,
++};
++#else /* Input Stream is LINE-IN */
++static struct s3c2410_dma_client s3c24xx_dma_client_in = {
++ .name = "AC97 PCM Stereo Line in"
++};
++
++static struct s3c24xx_pcm_dma_params s3c24xx_ac97_pcm_stereo_in = {
++ .client = &s3c24xx_dma_client_in,
++ .channel = DMACH_PCM_IN,
++ .dma_addr = S3C2440_PA_AC97 + S3C_AC97_PCM_DATA,
++ .dma_size = 4,
++};
++#endif
++
++static int s3c24xx_ac97_probe(struct platform_device *pdev)
++{
++ int ret;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ s3c24xx_ac97.regs = ioremap(S3C2440_PA_AC97, 0x100);
++ if (s3c24xx_ac97.regs == NULL)
++ return -ENXIO;
++
++ s3c24xx_ac97.ac97_clk = clk_get(&pdev->dev, "ac97");
++ if (s3c24xx_ac97.ac97_clk == NULL) {
++ printk(KERN_ERR "s3c24xx-ac97 failed to get ac97_clock\n");
++ iounmap(s3c24xx_ac97.regs);
++ return -ENODEV;
++ }
++ clk_enable(s3c24xx_ac97.ac97_clk);
++
++ s3c2410_gpio_cfgpin(S3C2410_GPE0, S3C2443_GPE0_AC_nRESET);
++ s3c2410_gpio_cfgpin(S3C2410_GPE1, S3C2443_GPE1_AC_SYNC);
++ s3c2410_gpio_cfgpin(S3C2410_GPE2, S3C2443_GPE2_AC_BITCLK);
++ s3c2410_gpio_cfgpin(S3C2410_GPE3, S3C2443_GPE3_AC_SDI);
++ s3c2410_gpio_cfgpin(S3C2410_GPE4, S3C2443_GPE4_AC_SDO);
++
++ ret = request_irq(IRQ_S3C2443_AC97, s3c24xx_ac97_irq,
++ IRQF_DISABLED, "AC97", NULL);
++ if (ret < 0) {
++ printk(KERN_ERR "s3c24xx-ac97: interrupt request failed.\n");
++ clk_disable(s3c24xx_ac97.ac97_clk);
++ clk_put(s3c24xx_ac97.ac97_clk);
++ iounmap(s3c24xx_ac97.regs);
++ }
++
++ return ret;
++}
++
++static void s3c24xx_ac97_remove(struct platform_device *pdev)
++{
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ free_irq(IRQ_S3C2443_AC97, NULL);
++ clk_disable(s3c24xx_ac97.ac97_clk);
++ clk_put(s3c24xx_ac97.ac97_clk);
++ iounmap(s3c24xx_ac97.regs);
++}
++
++static int s3c24xx_ac97_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
++ cpu_dai->dma_data = &s3c24xx_ac97_pcm_stereo_out;
++ else
++#ifdef CONFIG_SOUND_INPUT_STREAM_MIC
++ cpu_dai->dma_data = &s3c24xx_ac97_mic_mono_in;
++#else /* Input Stream is LINE-IN */
++ cpu_dai->dma_data = &s3c24xx_ac97_pcm_stereo_in;
++#endif
++
++ return 0;
++}
++
++static int s3c24xx_ac97_hifi_prepare(struct snd_pcm_substream *substream)
++{
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ /*
++ * register 26h : standard power down control register
++ * now set 0x0 is all power on. Need to optimize if reduce power condition
++ */
++ s3c24xx_ac97_write(0,0x26,0x0);
++
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
++ /*
++ * register 02h : speaker volume
++ * now set 0x8080 is mute speaker left and right.
++ */
++ s3c24xx_ac97_write(0,0x02,0x8080);
++
++ /*
++ * register 04h : Headphone volume
++ * now set 0x0606 is Un-Mute headphone and volume set.
++ */
++ s3c24xx_ac97_write(0,0x04,0x0606);
++
++ /*
++ * register 0Ch : DAC Volume
++ * now set 0x6808 is only ON the path to headphone mixer
++ * and set the DAC volume.
++ */
++ s3c24xx_ac97_write(0,0x0c,0x6808);
++
++ /*
++ * register 1Ch : Output PGA Mux select
++ * now set 0x00aa is headphone mixer and OUT3, OUT4 enable
++ * to roud sound?
++ */
++ s3c24xx_ac97_write(0,0x1c,0x00aa);
++
++ /*
++ * register 3Ch : Power management
++ * now set 0xf933 enables headphone mixer, DAC, PLL and Vref.
++ */
++ s3c24xx_ac97_write(0,0x3c,0xf933);
++
++ /*
++ * register 3Eh : Power management
++ * now set 0xf9ff only enables headphone output PGA.
++ */
++ s3c24xx_ac97_write(0,0x3e,0xf9ff);
++ }
++ else
++ {
++ /*
++ * register 0Ch : DAC Volume
++ * now set 0xe808 is Mute DAC path to headphone,speaker,mono mixer
++ * and set the DAC volume.
++ */
++ s3c24xx_ac97_write(0,0x0c,0xe808);
++
++ /*
++ * register 12h : Record Gain
++ * 0x0F0F set right and left ADC recording volume as +22.5dB.
++ */
++ s3c24xx_ac97_write(0,0x12,0x0f0f);
++
++ /*
++ * register 3Ch : Power management
++ * now set 0xf933 enables ADC, PLL and Vref.
++ */
++ s3c24xx_ac97_write(0,0x3c,0xf8cf);
++
++#ifdef CONFIG_SOUND_INPUT_STREAM_MIC
++ /*
++ * register 5Ch : ADC SLOT Mapping
++ * now set 0x2 is Left = slot7, Right = slot8.
++ */
++ s3c24xx_ac97_write(0,0x5c,0x2);
++
++ /*
++ * register 22h : MIC input select
++ */
++ s3c24xx_ac97_write(0,0x22,0x4060);
++
++ /*
++ * register 10h : MIC Routing
++ */
++ s3c24xx_ac97_write(0,0x10,0x68);
++
++ /*
++ * register 14h : Record Routing & Mux select
++ * Default value 0xD600 is MIC
++ */
++ s3c24xx_ac97_write(0,0x14,0xfe00);
++
++ /*
++ * register 3Eh : Power management
++ * now set 0xff9f only enables LINE PGA.
++ */
++ s3c24xx_ac97_write(0,0x3e,0xbff0);
++#else /* Input Stream is LINE-IN */
++ /*
++ * register 14h : Record Routing & Mux select
++ * 0xD612 set record mux source as LINE
++ * and mute headphone, mono mixer path.
++ * Default value 0xD600 is MIC
++ */
++ s3c24xx_ac97_write(0,0x14,0xd612);
++
++ /*
++ * register 3Eh : Power management
++ * now set 0xff9f only enables LINE PGA.
++ */
++ s3c24xx_ac97_write(0,0x3e,0xff9f);
++#endif
++ }
++
++ return 0;
++}
++
++static int s3c24xx_ac97_trigger(struct snd_pcm_substream *substream, int cmd)
++{
++ u32 ac_glbctrl;
++
++ s3cdbg("Entered %s: cmd = %d\n", __FUNCTION__, cmd);
++
++ ac_glbctrl = readl(s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ switch(cmd) {
++ case SNDRV_PCM_TRIGGER_START:
++ case SNDRV_PCM_TRIGGER_RESUME:
++ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
++ if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ ac_glbctrl |= S3C_AC97_GLBCTRL_PCMINTM_DMA;
++ else
++ ac_glbctrl |= S3C_AC97_GLBCTRL_PCMOUTTM_DMA;
++ break;
++ case SNDRV_PCM_TRIGGER_STOP:
++ case SNDRV_PCM_TRIGGER_SUSPEND:
++ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
++ if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ ac_glbctrl &= ~S3C_AC97_GLBCTRL_PCMINTM_MASK;
++ else
++ ac_glbctrl &= ~S3C_AC97_GLBCTRL_PCMOUTTM_MASK;
++ break;
++ }
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++
++ return 0;
++}
++
++#if 0
++static int s3c24xx_ac97_hw_mic_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai;
++
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
++ return -ENODEV;
++ else
++ cpu_dai->dma_data = &s3c24xx_ac97_mic_mono_in;
++
++ return 0;
++}
++
++static int s3c24xx_ac97_mic_trigger(struct snd_pcm_substream *substream,
++ int cmd)
++{
++ u32 ac_glbctrl;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ ac_glbctrl = readl(s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ switch(cmd) {
++ case SNDRV_PCM_TRIGGER_START:
++ case SNDRV_PCM_TRIGGER_RESUME:
++ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
++ ac_glbctrl |= S3C_AC97_GLBCTRL_PCMINTM_DMA;
++ break;
++ case SNDRV_PCM_TRIGGER_STOP:
++ case SNDRV_PCM_TRIGGER_SUSPEND:
++ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
++ ac_glbctrl &= ~S3C_AC97_GLBCTRL_PCMINTM_MASK;
++ }
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++
++ return 0;
++}
++#endif
++
++#define s3c24xx_AC97_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |\
++ SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 | \
++ SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000)
++
++struct snd_soc_cpu_dai s3c24xx_ac97_dai[] = {
++{
++ .name = "s3c24xx-ac97",
++ .id = 0,
++ .type = SND_SOC_DAI_AC97,
++ .probe = s3c24xx_ac97_probe,
++ .remove = s3c24xx_ac97_remove,
++ .playback = {
++ .stream_name = "AC97 Playback",
++ .channels_min = 2,
++ .channels_max = 2,
++ .rates = s3c24xx_AC97_RATES,
++ .formats = SNDRV_PCM_FMTBIT_S16_LE,},
++ .capture = {
++ .stream_name = "AC97 Capture",
++ .channels_min = 2,
++ .channels_max = 2,
++ .rates = s3c24xx_AC97_RATES,
++ .formats = SNDRV_PCM_FMTBIT_S16_LE,},
++ .ops = {
++ .hw_params = s3c24xx_ac97_hw_params,
++ .prepare = s3c24xx_ac97_hifi_prepare,
++ .trigger = s3c24xx_ac97_trigger},
++},
++#if 0
++{
++ .name = "s3c24xx-ac97-mic",
++ .id = 1,
++ .type = SND_SOC_DAI_AC97,
++ .capture = {
++ .stream_name = "AC97 Mic Capture",
++ .channels_min = 1,
++ .channels_max = 1,
++ .rates = s3c24xx_AC97_RATES,
++ .formats = SNDRV_PCM_FMTBIT_S16_LE,},
++ .ops = {
++ .hw_params = s3c24xx_ac97_hw_mic_params,
++ .trigger = s3c24xx_ac97_mic_trigger,},
++},
++#endif
++};
++
++EXPORT_SYMBOL_GPL(s3c24xx_ac97_dai);
++EXPORT_SYMBOL_GPL(soc_ac97_ops);
++
++MODULE_AUTHOR("Ryu Euiyoul");
++MODULE_DESCRIPTION("AC97 driver for the Samsung s3c24xx chip");
++MODULE_LICENSE("GPL");
+diff --git a/sound/soc/s3c24xx/s3c2450-i2s.c b/sound/soc/s3c24xx/s3c2450-i2s.c
+new file mode 100644
+index 0000000..f67caaf
+--- /dev/null
++++ b/sound/soc/s3c24xx/s3c2450-i2s.c
+@@ -0,0 +1,556 @@
++/*
++ * s3c-i2s.c -- ALSA Soc Audio Layer
++ *
++ * (c) 2006 Wolfson Microelectronics PLC.
++ * Graeme Gregory graeme.gregory@wolfsonmicro.com or linux@wolfsonmicro.com
++ *
++ * (c) 2004-2005 Simtec Electronics
++ * http://armlinux.simtec.co.uk/
++ * Ben Dooks <ben@simtec.co.uk>
++ * Ryu Euiyoul <ryu.real@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ *
++ * Revision history
++ * 11th Dec 2006 Merged with Simtec driver
++ * 10th Nov 2006 Initial version.
++ */
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/device.h>
++#include <linux/delay.h>
++#include <linux/clk.h>
++#include <sound/driver.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/pcm_params.h>
++#include <sound/initval.h>
++#include <sound/soc.h>
++
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/dma.h>
++
++//#include <asm/arch/regs-iis.h>
++#include <asm-arm/plat-s3c24xx/regs-iis.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-gpioj.h>
++#include <asm/arch/audio.h>
++#include <asm/arch/dma.h>
++
++#include <asm/arch/regs-s3c-clock.h>
++//#include <asm/arch/regs-s3c2450-clock.h>
++
++#include "s3c-pcm.h"
++#include "s3c-i2s.h"
++
++#ifdef CONFIG_SND_DEBUG
++#define s3cdbg(x...) printk(x)
++#else
++#define s3cdbg(x...)
++#endif
++
++/* used to disable sysclk if external crystal is used */
++static int extclk = 0;
++module_param(extclk, int, 0);
++MODULE_PARM_DESC(extclk, "set to 1 to disable s3c24XX i2s sysclk");
++
++static struct s3c2410_dma_client s3c24xx_dma_client_out = {
++ .name = "I2S PCM Stereo out"
++};
++
++static struct s3c2410_dma_client s3c24xx_dma_client_in = {
++ .name = "I2S PCM Stereo in"
++};
++
++static struct s3c24xx_pcm_dma_params s3c24xx_i2s_pcm_stereo_out = {
++ .client = &s3c24xx_dma_client_out,
++#if defined CONFIG_SND_SOC_I2S_V32
++ .channel = DMACH_I2S_OUT_1,
++ .dma_addr = S3C2450_PA_IIS_1 + S3C2410_IISFIFO,
++#elif defined CONFIG_SND_SOC_I2S_V40
++ .channel = DMACH_I2S_OUT,
++ .dma_addr = S3C2410_PA_IIS + S3C2410_IISFIFO,
++#endif
++ .dma_size = 4,
++};
++
++static struct s3c24xx_pcm_dma_params s3c24xx_i2s_pcm_stereo_in = {
++ .client = &s3c24xx_dma_client_in,
++#if defined CONFIG_SND_SOC_I2S_V32
++ .channel = DMACH_I2S_IN_1,
++ .dma_addr = S3C2450_PA_IIS_1 + S3C2410_IISFIFORX,
++#elif defined CONFIG_SND_SOC_I2S_V40
++ .channel = DMACH_I2S_IN,
++ .dma_addr = S3C2410_PA_IIS + S3C2410_IISFIFORX,
++#endif
++ .dma_size = 4,
++};
++
++struct s3c24xx_i2s_info {
++ void __iomem *regs;
++ struct clk *iis_clk;
++ int master;
++};
++static struct s3c24xx_i2s_info s3c24xx_i2s;
++
++static void s3c24xx_snd_txctrl(int on)
++{
++ u32 iiscon;
++
++ s3cdbg("Entered %s : on = %d \n", __FUNCTION__, on);
++
++ iiscon = readl(s3c24xx_i2s.regs + S3C2410_IISCON);
++
++ if (on) {
++
++ iiscon |= S3C2450_IIS0CON_I2SACTIVE;
++ writel(iiscon, s3c24xx_i2s.regs + S3C2410_IISCON);
++
++ } else {
++ /* note, we have to disable the FIFOs otherwise bad things
++ * seem to happen when the DMA stops. According to the
++ * Samsung supplied kernel, this should allow the DMA
++ * engine and FIFOs to reset. If this isn't allowed, the
++ * DMA engine will simply freeze randomly.
++ */
++
++ iiscon &= ~S3C2450_IIS0CON_I2SACTIVE;
++
++ writel(iiscon, s3c24xx_i2s.regs + S3C2410_IISCON);
++ }
++}
++
++static void s3c24xx_snd_rxctrl(int on)
++{
++ u32 iiscon;
++
++ s3cdbg("Entered %s: on = %d\n", __FUNCTION__, on);
++
++ iiscon = readl(s3c24xx_i2s.regs + S3C2410_IISCON);
++
++ if (on) {
++ iiscon |= S3C2450_IIS0CON_I2SACTIVE;
++ writel(iiscon, s3c24xx_i2s.regs + S3C2410_IISCON);
++ } else {
++ /* note, we have to disable the FIFOs otherwise bad things
++ * seem to happen when the DMA stops. According to the
++ * Samsung supplied kernel, this should allow the DMA
++ * engine and FIFOs to reset. If this isn't allowed, the
++ * DMA engine will simply freeze randomly.
++ */
++ iiscon &= ~S3C2450_IIS0CON_I2SACTIVE;
++
++ writel(iiscon, s3c24xx_i2s.regs + S3C2410_IISCON);
++ }
++}
++
++/*
++ * Wait for the LR signal to allow synchronisation to the L/R clock
++ * from the codec. May only be needed for slave mode.
++ */
++static int s3c24xx_snd_lrsync(void)
++{
++ u32 iiscon;
++ unsigned long timeout = jiffies + msecs_to_jiffies(5);
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ while (1) {
++ iiscon = readl(s3c24xx_i2s.regs + S3C2410_IISCON);
++ if (iiscon & S3C2450_IISCON_LRINDEX)
++ break;
++
++ if (timeout < jiffies)
++ return -ETIMEDOUT;
++ }
++
++ return 0;
++}
++
++/*
++ * Check whether CPU is the master or slave
++ */
++static inline int s3c24xx_snd_is_clkmaster(void)
++{
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ return (readl(s3c24xx_i2s.regs + S3C2410_IISMOD) & S3C2450_IIS0MOD_IMS_SLAVE) ? 0:1;
++}
++
++/*
++ * Set S3C24xx I2S DAI format
++ */
++static int s3c_i2s_set_fmt(struct snd_soc_cpu_dai *cpu_dai,
++ unsigned int fmt)
++{
++ u32 iismod;
++
++ iismod = readl(s3c24xx_i2s.regs + S3C2410_IISMOD);
++
++ iismod &= ~S3C2450_IIS0MOD_FS_MASK;
++ iismod |= S3C2450_IIS0MOD_384FS;
++
++#if defined CONFIG_SND_SOC_I2S_V40
++ /* 24bit enable */
++// iismod &= ~S3C2450_IIS0MOD_BLC_MASK;
++// iismod |= S3C_IIS0MOD_BLC_24BIT;
++#endif
++
++ writel(iismod, s3c24xx_i2s.regs + S3C2410_IISMOD);
++
++ return 0;
++
++}
++
++static int s3c_i2s_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++
++ unsigned long iiscon;
++ unsigned long iismod;
++ unsigned long iisfcon;
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ writel((readl(S3C2410_MISCCR) & ~(7<<8))|(1<<8), S3C2410_MISCCR);
++
++ /*Set I2C port to controll WM8753 codec*/
++ s3c2410_gpio_pullup(S3C2410_GPE15, 0);
++ s3c2410_gpio_pullup(S3C2410_GPE14, 0);
++ s3c2410_gpio_cfgpin(S3C2410_GPE15, S3C2410_GPE15_IICSDA);
++ s3c2410_gpio_cfgpin(S3C2410_GPE14, S3C2410_GPE14_IICSCL);
++
++#if defined CONFIG_SND_SOC_I2S_V40
++ /* Configure the I2S pins in correct mode */
++ writel(0x0, S3C2450_GPESEL);
++
++ s3c2410_gpio_cfgpin(S3C2410_GPE0, S3C2410_GPE0_I2SLRCK);
++ s3c2410_gpio_cfgpin(S3C2410_GPE1, S3C2410_GPE1_I2SSCLK);
++ s3c2410_gpio_cfgpin(S3C2410_GPE2, S3C2410_GPE2_CDCLK);
++ s3c2410_gpio_cfgpin(S3C2410_GPE3, S3C2410_GPE3_I2SSDI);
++ s3c2410_gpio_cfgpin(S3C2410_GPE4, S3C2410_GPE4_I2SSDO);
++
++ writel(readl(S3C2410_GPEUP)| 0x3ff, S3C2410_GPEUP);
++
++ writel(readl(S3C2450_GPBSEL)|(0x3<<3), S3C2450_GPBSEL);
++ writel(readl(S3C2410_GPBUP)|(0xF<<18), S3C2410_GPBUP);
++
++#elif defined CONFIG_SND_SOC_I2S_V32
++ /* Configure the I2S pins in correct mode */
++ writel(0x0, S3C2450_GPLSEL);
++
++ s3c2410_gpio_cfgpin(S3C2410_GPL4, S3C2450_GPL4_I2S1_SCLK);
++ s3c2410_gpio_cfgpin(S3C2410_GPL5, S3C2450_GPL5_I2S1_CDCLK);
++ s3c2410_gpio_cfgpin(S3C2410_GPL6, S3C2450_GPL6_I2S1_SDI);
++ s3c2410_gpio_cfgpin(S3C2410_GPL7, S3C2450_GPL7_I2S1_SDO);
++ s3c2410_gpio_cfgpin(S3C2443_GPJ13, S3C2450_GPJ13_I2S1_LRCK);
++
++ writel(readl(S3C2410_GPLUP)| (0xf<<4), S3C2410_GPLUP);
++ writel(readl(S3C2443_GPJDN)| (0x3<<26), S3C2443_GPJDN);
++
++#else
++ printk("Error: S3C2450 I2S configration \n",);
++#endif
++
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
++ rtd->dai->cpu_dai->dma_data = &s3c24xx_i2s_pcm_stereo_out;
++ } else {
++ rtd->dai->cpu_dai->dma_data = &s3c24xx_i2s_pcm_stereo_in;
++ }
++
++ /* Working copies of registers */
++ iiscon = readl(s3c24xx_i2s.regs + S3C2410_IISCON);
++ iismod = readl(s3c24xx_i2s.regs + S3C2410_IISMOD);
++ iisfcon = readl(s3c24xx_i2s.regs + S3C2450_IIS0FIC);
++
++ iiscon |= S3C2450_IIS0CON_TXDMACTIVE;
++ iiscon |= S3C2450_IIS0CON_RXDMACTIVE;
++
++ iismod &= ~S3C2450_IIS0MOD_CLK_MASK;
++ iismod |= S3C2450_IIS0MOD_IMS_EXTERNAL_MASTER | S3C2450_IIS0MOD_INTERNAL_CLK;
++ iismod &= ~S3C2450_IIS0MOD_MODE_MASK;
++ iismod |= S3C2450_IIS0MOD_TXRXMODE;
++
++ /* Multi channel enable */
++ iismod &= ~S3C2450_IIS0MOD_DCE_MASK;
++ switch (params_channels(params)) {
++ case 6:
++ printk("s3c i2s: 5.1channel\n");
++ iismod |= S3C2450_IIS0MOD_DCE_SD1;
++ iismod |= S3C2450_IIS0MOD_DCE_SD2;
++ break;
++ case 4:
++ printk("s3c i2s: 4 channel\n");
++ iismod |= S3C2450_IIS0MOD_DCE_SD1;
++ break;
++ case 2:
++ printk("s3c i2s: 2 channel\n");
++ break;
++ default:
++ printk(KERN_ERR "s3c-i2s-v40: %d channels unsupported\n",
++ params_channels(params));
++ return -EINVAL;
++ }
++
++ /* Set the bit rate */
++#if 0
++ iismod &= ~0x6000;
++#endif
++ switch (params_format(params)) {
++ case SNDRV_PCM_FORMAT_S8:
++ iismod |= S3C2450_IIS0MOD_BLC_08BIT;
++ iismod &= ~S3C2450_IIS0MOD_BFS_MASK;
++ iismod |= S3C2450_IIS0MOD_32FS;
++ iismod &= ~S3C2450_IIS0MOD_FS_MASK;
++ iismod |= S3C2450_IIS0MOD_384FS;
++ break;
++ case SNDRV_PCM_FORMAT_S16_LE:
++ iismod &= ~S3C2450_IIS0MOD_FS_MASK;
++ iismod &= ~S3C2450_IIS0MOD_BFS_MASK;
++ iismod |= S3C2450_IIS0MOD_384FS | S3C2450_IIS0MOD_32FS;
++ iismod &= ~S3C2450_IIS0MOD_BLC_MASK;
++ iismod |= S3C2450_IIS0MOD_16BIT;
++ break;
++ case SNDRV_PCM_FORMAT_S24_LE:
++ iismod &= ~S3C2450_IIS0MOD_FS_MASK;
++ iismod &= ~S3C2450_IIS0MOD_BFS_MASK;
++ iismod |= S3C2450_IIS0MOD_384FS | S3C2450_IIS0MOD_48FS;
++ iismod &= ~S3C2450_IIS0MOD_BLC_MASK;
++ iismod |= S3C2450_IIS0MOD_24BIT;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++
++ iisfcon |= S3C2450_IIS_TX_FLUSH;
++ iisfcon |= S3C2450_IIS_RX_FLUSH;
++
++ writel(iiscon, s3c24xx_i2s.regs + S3C2410_IISCON);
++ iismod &= ~S3C2450_IIS0MOD_FM_MASK;
++ writel(iismod, s3c24xx_i2s.regs + S3C2410_IISMOD);
++ writel(iisfcon, s3c24xx_i2s.regs + S3C2450_IIS0FIC);
++
++ /* Tx, Rx fifo flush bit clear */
++ iisfcon &= ~(S3C2450_IIS_TX_FLUSH | S3C2450_IIS_RX_FLUSH);
++ writel(iisfcon, s3c24xx_i2s.regs + S3C2450_IIS0FIC);
++
++ s3cdbg("s3c iis mode: 0x%08x\n", readl(s3c24xx_i2s.regs + S3C2410_IISMOD));
++ s3cdbg("s3c: params_channels %d\n", params_channels(params));
++ s3cdbg("s3c: params_format %d\n", params_format(params));
++ s3cdbg("s3c: params_subformat %d\n", params_subformat(params));
++ s3cdbg("s3c: params_period_size %d\n", params_period_size(params));
++ s3cdbg("s3c: params_period_bytes %d\n", params_period_bytes(params));
++ s3cdbg("s3c: params_periods %d\n", params_periods(params));
++ s3cdbg("s3c: params_buffer_size %d\n", params_buffer_size(params));
++ s3cdbg("s3c: params_buffer_bytes %d\n", params_buffer_bytes(params));
++ s3cdbg("s3c: params_tick_time %d\n", params_tick_time(params));
++
++ return 0;
++}
++
++static int s3c_i2s_trigger(struct snd_pcm_substream *substream, int cmd)
++{
++ int ret = 0;
++
++ s3cdbg("Entered %s: cmd = %d\n", __FUNCTION__, cmd);
++
++ switch (cmd) {
++ case SNDRV_PCM_TRIGGER_START:
++ case SNDRV_PCM_TRIGGER_RESUME:
++ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
++ if (!s3c24xx_snd_is_clkmaster()) {
++ ret = s3c24xx_snd_lrsync();
++ if (ret)
++ goto exit_err;
++ }
++
++ if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ s3c24xx_snd_rxctrl(1);
++ else
++ s3c24xx_snd_txctrl(1);
++ break;
++ case SNDRV_PCM_TRIGGER_STOP:
++ case SNDRV_PCM_TRIGGER_SUSPEND:
++ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
++ if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ s3c24xx_snd_rxctrl(0);
++ else
++ s3c24xx_snd_txctrl(0);
++ break;
++ default:
++ ret = -EINVAL;
++ break;
++ }
++
++exit_err:
++ return ret;
++}
++
++static void s3c64xx_i2s_shutdown(struct snd_pcm_substream *substream)
++{
++ unsigned long iiscon;
++
++ iiscon=readl(s3c24xx_i2s.regs + S3C2410_IISCON);
++ iiscon &= ~S3C2450_IIS0CON_I2SACTIVE;
++
++ writel(iiscon, s3c24xx_i2s.regs + S3C2410_IISCON);
++}
++
++
++/*
++ * Set S3C24xx Clock source
++ */
++static int s3c_i2s_set_sysclk(struct snd_soc_cpu_dai *cpu_dai,
++ int clk_id, unsigned int freq, int dir)
++{
++ u32 iismod = readl(s3c24xx_i2s.regs + S3C2410_IISMOD);
++
++ switch (clk_id) {
++ case S3C24XX_CLKSRC_PCLK:
++ break;
++ case S3C24XX_CLKSRC_MPLL:
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ writel(iismod, s3c24xx_i2s.regs + S3C2410_IISMOD);
++ return 0;
++}
++
++/*
++ * Set S3C24xx Clock dividers
++ */
++static int s3c_i2s_set_clkdiv(struct snd_soc_cpu_dai *cpu_dai,
++ int div_id, int div)
++{
++ u32 reg;
++
++ s3cdbg("Entered %s : div_id = %d, div = %d\n", __FUNCTION__, div_id, div);
++
++ switch (div_id) {
++ case S3C24XX_DIV_MCLK:
++ //reg = readl(s3c24xx_i2s.regs + S3C2410_IISMOD) & ~S3C2410_IISMOD_BFS_MASK;
++ reg = readl(s3c24xx_i2s.regs + S3C2410_IISMOD) & ~S3C2450_IIS0MOD_BFS_MASK;
++ writel(reg | div, s3c24xx_i2s.regs + S3C2410_IISMOD);
++ break;
++ case S3C24XX_DIV_BCLK:
++ reg = readl(s3c24xx_i2s.regs + S3C2410_IISMOD) & ~(S3C2450_IIS0MOD_FS_MASK);
++ writel(reg | div, s3c24xx_i2s.regs + S3C2410_IISMOD);
++ break;
++ case S3C24XX_DIV_PRESCALER:
++ reg = readl(s3c24xx_i2s.regs + S3C2450_IIS0PSR);
++ reg &= ~(S3C2450_IISPSR_PS_MASK|S3C2450_IISPSR_PSRAEN);
++ writel(reg , s3c24xx_i2s.regs + S3C2450_IIS0PSR);
++ reg |= (div|S3C2450_IISPSR_PSRAEN);
++ writel(reg, s3c24xx_i2s.regs + S3C2450_IIS0PSR);
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++/*
++ * To avoid duplicating clock code, allow machine driver to
++ * get the clockrate from here.
++ */
++u32 s3c_i2s_get_clockrate(void)
++{
++ return clk_get_rate(s3c24xx_i2s.iis_clk);
++}
++EXPORT_SYMBOL_GPL(s3c_i2s_get_clockrate);
++
++static int s3c_i2s_probe(struct platform_device *pdev)
++{
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++#if defined CONFIG_SND_SOC_I2S_V32
++ s3c24xx_i2s.regs = ioremap(S3C2450_PA_IIS_1, 0x100);
++ if (s3c24xx_i2s.regs == NULL)
++ return -ENXIO;
++#elif defined CONFIG_SND_SOC_I2S_V40
++ s3c24xx_i2s.regs = ioremap(S3C2410_PA_IIS, 0x100);
++ if (s3c24xx_i2s.regs == NULL)
++ return -ENXIO;
++#endif
++
++ s3c24xx_i2s.iis_clk=clk_get(&pdev->dev, "iis");
++ if (s3c24xx_i2s.iis_clk == NULL) {
++ s3cdbg("failed to get iis_clock\n");
++ return -ENODEV;
++ }
++ clk_enable(s3c24xx_i2s.iis_clk);
++
++ return 0;
++}
++
++#ifdef CONFIG_PM
++static int s3c_i2s_suspend(struct platform_device *dev,
++ struct snd_soc_cpu_dai *dai)
++{
++ s3cdbg("Entered %s\n", __FUNCTION__);
++ return 0;
++}
++
++static int s3c_i2s_resume(struct platform_device *pdev,
++ struct snd_soc_cpu_dai *dai)
++{
++ s3cdbg("Entered %s\n", __FUNCTION__);
++ return 0;
++}
++
++#else
++#define s3c_i2s_suspend NULL
++#define s3c_i2s_resume NULL
++#endif
++
++
++#define S3C24XX_I2S_RATES \
++ (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | SNDRV_PCM_RATE_16000 | \
++ SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | \
++ SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000)
++
++struct snd_soc_cpu_dai s3c_i2s_dai = {
++ .name = "s3c-i2s",
++ .id = 0,
++ .type = SND_SOC_DAI_I2S,
++ .probe = s3c_i2s_probe,
++ .suspend = s3c_i2s_suspend,
++ .resume = s3c_i2s_resume,
++ .playback = {
++ .channels_min = 2,
++ .channels_max = 6,
++ .rates = S3C24XX_I2S_RATES,
++ .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE | SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE,},
++
++ .capture = {
++ .channels_min = 2,
++ .channels_max = 6,
++ .rates = S3C24XX_I2S_RATES,
++ .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE | SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE,},
++
++ .ops = {
++ .shutdown = s3c64xx_i2s_shutdown,
++ .trigger = s3c_i2s_trigger,
++ .hw_params = s3c_i2s_hw_params,},
++ .dai_ops = {
++ .set_fmt = s3c_i2s_set_fmt,
++ .set_clkdiv = s3c_i2s_set_clkdiv,
++ .set_sysclk = s3c_i2s_set_sysclk,
++ },
++};
++EXPORT_SYMBOL_GPL(s3c_i2s_dai);
++
++/* Module information */
++MODULE_AUTHOR("Ryu, <ryu.real@gmail.com>");
++MODULE_DESCRIPTION("s3c2450 I2S SoC Interface");
++MODULE_LICENSE("GPL");
+diff --git a/sound/soc/s3c24xx/s3c24xx-ac97.h b/sound/soc/s3c24xx/s3c24xx-ac97.h
+index 2b835e8..daa58eb 100644
+--- a/sound/soc/s3c24xx/s3c24xx-ac97.h
++++ b/sound/soc/s3c24xx/s3c24xx-ac97.h
+@@ -22,4 +22,6 @@
+
+ extern struct snd_soc_cpu_dai s3c2443_ac97_dai[];
+
++extern struct snd_soc_cpu_dai s3c24xx_ac97_dai[];
++
+ #endif /*S3C24XXAC97_H_*/
+diff --git a/sound/soc/s3c24xx/s3c24xx-i2s.c b/sound/soc/s3c24xx/s3c24xx-i2s.c
+index cd89c41..6674db4 100644
+--- a/sound/soc/s3c24xx/s3c24xx-i2s.c
++++ b/sound/soc/s3c24xx/s3c24xx-i2s.c
+@@ -40,7 +40,7 @@
+ #include <asm/dma.h>
+ #include <asm/arch/dma.h>
+
+-#include "s3c24xx-pcm.h"
++#include "s3c-pcm.h"
+ #include "s3c24xx-i2s.h"
+
+ #define S3C24XX_I2S_DEBUG 0
+diff --git a/sound/soc/s3c24xx/smdk2443_wm9710.c b/sound/soc/s3c24xx/smdk2443_wm9710.c
+index d46cd81..17f7026 100644
+--- a/sound/soc/s3c24xx/smdk2443_wm9710.c
++++ b/sound/soc/s3c24xx/smdk2443_wm9710.c
+@@ -24,7 +24,7 @@
+ #include <sound/soc-dapm.h>
+
+ #include "../codecs/ac97.h"
+-#include "s3c24xx-pcm.h"
++#include "s3c-pcm.h"
+ #include "s3c24xx-ac97.h"
+
+ static struct snd_soc_machine smdk2443;
+diff --git a/sound/soc/s3c24xx/smdk2450_wm8580.c b/sound/soc/s3c24xx/smdk2450_wm8580.c
+new file mode 100644
+index 0000000..a39e25b
+--- /dev/null
++++ b/sound/soc/s3c24xx/smdk2450_wm8580.c
+@@ -0,0 +1,395 @@
++/*
++ * smdk2450_wm8580.c -- SoC audio for Neo1973
++ *
++ * Copyright 2007 Wolfson Microelectronics PLC.
++ * Author: Graeme Gregory
++ * graeme.gregory@wolfsonmicro.com or linux@wolfsonmicro.com
++ *
++ * Copyright (C) 2007, Ryu Euiyoul <ryu.real@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * Revision history
++ * 20th Jan 2007 Initial version.
++ * 05th Feb 2007 Rename all to Neo1973
++ *
++ */
++
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/timer.h>
++#include <linux/interrupt.h>
++#include <linux/platform_device.h>
++#include <linux/i2c.h>
++#include <sound/driver.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++
++#include <asm/mach-types.h>
++#include <asm/hardware/scoop.h>
++#include <asm-arm/plat-s3c24xx/regs-iis.h>
++
++#include <asm/arch/regs-gpio.h>
++#include <asm/hardware.h>
++#include <asm/arch/audio.h>
++#include <asm/io.h>
++#include <asm/arch/spi-gpio.h>
++#include <asm/arch/regs-s3c-clock.h>
++
++#include "../codecs/wm8580.h"
++#include "s3c-pcm.h"
++#include "s3c-i2s.h"
++
++/* define the scenarios */
++#define SMDK_AUDIO_OFF 0
++#define SMDK_CAPTURE_MIC1 3
++#define SMDK_STEREO_TO_HEADPHONES 2
++#define SMDK_CAPTURE_LINE_IN 1
++
++#ifdef CONFIG_SND_DEBUG
++#define s3cdbg(x...) printk(x)
++#else
++#define s3cdbg(x...)
++#endif
++
++static int smdk_hifi_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ //struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai;
++ struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai;
++ unsigned int pll_out = 0;
++ int ret = 0;
++ unsigned int regs;
++ unsigned int prescaler=0;
++
++ s3cdbg("Entered %s, rate = %d\n", __FUNCTION__, params_rate(params));
++
++ /* Select Clock source EPLL */
++ regs = readl(S3C2443_CLKSRC);
++ regs &= ~(3<<14);
++ regs |= S3C2443_CLKSRC_I2S_EPLLDIV;
++ regs = (regs & ~(3<<7))|(2<<7);
++ writel(regs, S3C2443_CLKSRC);
++ regs |= (1<<6);
++ writel(regs, S3C2443_CLKSRC);
++
++ regs = readl(S3C2443_SCLKCON);
++ regs |= S3C2443_SCLKCON_I2SCLK;
++ writel(regs, S3C2443_SCLKCON);
++
++ s3cdbg("%s: %d , params = %d \n", __FUNCTION__, __LINE__, params_rate(params));
++
++ switch (params_rate(params)) {
++ case 8000:
++ case 16000:
++ case 32000:
++ case 48000:
++ case 64000:
++ case 96000:
++ writel(9962, S3C2450_EPLLCON_K);
++ writel((49<<16)|(1<<8)|(3<<0) ,S3C2443_EPLLCON);
++ break;
++ case 11025:
++ case 22050:
++ case 44100:
++ case 88200:
++ writel(10381, S3C2450_EPLLCON_K);
++ writel((45<<16)|(1<<8)|(2<<0) ,S3C2443_EPLLCON);
++ break;
++ default:
++ printk("Unsupported rate = %d\n", params_rate(params));
++ break;
++ }
++
++ switch (params_rate(params)) {
++ case 8000:
++ pll_out = 18432000;
++ prescaler = 24;
++ break;
++ case 11025:
++ pll_out = 16934400;
++ prescaler = 32;
++ break;
++ case 16000:
++ pll_out = 18432000;
++ prescaler = 12;
++ break;
++ case 22050:
++ pll_out = 16934400;
++ prescaler = 16;
++ break;
++ case 32000:
++ pll_out = 18432000;
++ prescaler = 6;
++ break;
++ case 44100:
++ pll_out = 16934400;
++ prescaler = 8;
++ break;
++ case 48000:
++ pll_out = 18432000;
++ prescaler = 4;
++ break;
++ case 64000:
++ pll_out = 18432000;
++ prescaler = 3;
++ break;
++ case 88200:
++ pll_out = 16934400;
++ prescaler = 4;
++ break;
++ case 96000:
++ pll_out = 18432000;
++ prescaler = 2;
++ break;
++ }
++
++ /* set cpu DAI configuration */
++ ret = cpu_dai->dai_ops.set_fmt(cpu_dai,
++ SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
++ SND_SOC_DAIFMT_CBS_CFS );
++ if (ret < 0)
++ return ret;
++
++ /* set MCLK division for sample rate */
++ ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_MCLK,
++ S3C2410_IISMOD_32FS );
++ if (ret < 0)
++ return ret;
++
++ /* set prescaler division for sample rate */
++ ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_PRESCALER,
++ // ((prescaler/2 - 1) << 0x8));
++ ((prescaler - 1) << 0x8));
++ if (ret < 0)
++ return ret;
++
++ return 0;
++
++}
++
++static int smdk_hifi_hw_free(struct snd_pcm_substream *substream)
++{
++// struct snd_soc_pcm_runtime *rtd = substream->private_data;
++// struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai;
++
++ /* disable the PLL */
++ //return codec_dai->dai_ops.set_pll(codec_dai, WM8580_PLL1, 0, 0);
++ //return codec_dai->dai_ops.set_pll(codec_dai, 0, 0, 0);
++ return 0;
++}
++
++/*
++ * Neo1973 WM8580 HiFi DAI opserations.
++ */
++static struct snd_soc_ops smdk_hifi_ops = {
++ .hw_params = smdk_hifi_hw_params,
++ .hw_free = smdk_hifi_hw_free,
++};
++
++static int smdk_scenario = 0;
++
++static int smdk_get_scenario(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ ucontrol->value.integer.value[0] = smdk_scenario;
++ return 0;
++}
++
++static int set_scenario_endpoints(struct snd_soc_codec *codec, int scenario)
++{
++ switch(smdk_scenario) {
++ case SMDK_AUDIO_OFF:
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 0);
++ snd_soc_dapm_set_endpoint(codec, "Mic1 Jack", 0);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 0);
++ break;
++ case SMDK_STEREO_TO_HEADPHONES:
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Mic1 Jack", 0);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 0);
++ break;
++ case SMDK_CAPTURE_MIC1:
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 0);
++ snd_soc_dapm_set_endpoint(codec, "Mic1 Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 0);
++ break;
++ case SMDK_CAPTURE_LINE_IN:
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 0);
++ snd_soc_dapm_set_endpoint(codec, "Mic1 Jack", 0);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 1);
++ break;
++ default:
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Mic1 Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 1);
++ break;
++ }
++
++ snd_soc_dapm_sync_endpoints(codec);
++
++ return 0;
++}
++
++static int smdk_set_scenario(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
++
++ if (smdk_scenario == ucontrol->value.integer.value[0])
++ return 0;
++
++ smdk_scenario = ucontrol->value.integer.value[0];
++ set_scenario_endpoints(codec, smdk_scenario);
++ return 1;
++}
++
++static const struct snd_soc_dapm_widget wm8580_dapm_widgets[] = {
++ SND_SOC_DAPM_HP("Headphone Jack", NULL),
++ SND_SOC_DAPM_MIC("Mic1 Jack", NULL),
++ SND_SOC_DAPM_LINE("Line In Jack", NULL),
++};
++
++
++/* example machine audio_mapnections */
++static const char* audio_map[][3] = {
++
++ {"Headphone Jack", NULL, "LOUT1"},
++ {"Headphone Jack", NULL, "ROUT1"},
++
++ /* mic is connected to mic1 - with bias */
++ /* mic is connected to mic1 - with bias */
++ {"MIC1", NULL, "Mic1 Jack"},
++
++ {"LINE1", NULL, "Line In Jack"},
++ {"LINE2", NULL, "Line In Jack"},
++
++ /* Connect the ALC pins */
++ {"ACIN", NULL, "ACOP"},
++
++ {NULL, NULL, NULL},
++};
++
++static const char *smdk_scenarios[] = {
++ "Off",
++ "Capture Line In",
++ "Headphones",
++ "Capture Mic1",
++};
++
++static const struct soc_enum smdk_scenario_enum[] = {
++ SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(smdk_scenarios),smdk_scenarios),
++};
++
++static const struct snd_kcontrol_new wm8580_smdk_controls[] = {
++ SOC_ENUM_EXT("SMDK Mode", smdk_scenario_enum[0],
++ smdk_get_scenario, smdk_set_scenario),
++};
++
++/*
++ * This is an example machine initialisation for a wm8580 connected to a
++ * smdk2450. It is missing logic to detect hp/mic insertions and logic
++ * to re-route the audio in such an event.
++ */
++static int smdk_wm8580_init(struct snd_soc_codec *codec)
++{
++ int i, err;
++
++ /* set endpoints to default mode */
++ set_scenario_endpoints(codec, SMDK_AUDIO_OFF);
++
++ /* Add smdk2450 specific widgets */
++ for (i = 0; i < ARRAY_SIZE(wm8580_dapm_widgets); i++)
++ snd_soc_dapm_new_control(codec, &wm8580_dapm_widgets[i]);
++
++ /* add smdk2450 specific controls */
++ for (i = 0; i < ARRAY_SIZE(wm8580_smdk_controls); i++) {
++ err = snd_ctl_add(codec->card,
++ snd_soc_cnew(&wm8580_smdk_controls[i],
++ codec, NULL));
++ if (err < 0)
++ return err;
++ }
++
++ /* set up smdk2450 specific audio path audio_mapnects */
++ for (i = 0; audio_map[i][0] != NULL; i++) {
++ snd_soc_dapm_connect_input(codec, audio_map[i][0],
++ audio_map[i][1], audio_map[i][2]);
++ }
++
++ /* always connected */
++ snd_soc_dapm_set_endpoint(codec, "Mic1 Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 1);
++
++ snd_soc_dapm_sync_endpoints(codec);
++ return 0;
++}
++
++static struct snd_soc_dai_link smdk_dai[] = {
++{ /* Hifi Playback - for similatious use with voice below */
++ .name = "WM8580",
++ .stream_name = "WM8580 HiFi",
++ .cpu_dai = &s3c_i2s_dai,
++ .codec_dai = &wm8580_dai[0],
++ .init = smdk_wm8580_init,
++ .ops = &smdk_hifi_ops,
++},
++};
++
++static struct snd_soc_machine smdk2450 = {
++ .name = "smdk2450",
++ .dai_link = smdk_dai,
++ .num_links = ARRAY_SIZE(smdk_dai),
++};
++
++static struct wm8580_setup_data smdk_wm8580_setup = {
++ /* wm8580 i2c address 0x36 for write*/
++ .i2c_address = 0x1b,
++};
++
++static struct snd_soc_device smdk_snd_devdata = {
++ .machine = &smdk2450,
++ .platform = &s3c24xx_soc_platform,
++ .codec_dev = &soc_codec_dev_wm8580,
++ .codec_data = &smdk_wm8580_setup,
++};
++
++static struct platform_device *smdk_snd_device;
++
++static int __init s3c_init(void)
++{
++ int ret;
++
++ smdk_snd_device = platform_device_alloc("soc-audio", -1);
++ if (!smdk_snd_device)
++ return -ENOMEM;
++
++ platform_set_drvdata(smdk_snd_device, &smdk_snd_devdata);
++ smdk_snd_devdata.dev = &smdk_snd_device->dev;
++ ret = platform_device_add(smdk_snd_device);
++
++ if (ret)
++ platform_device_put(smdk_snd_device);
++
++ return ret;
++}
++
++static void __exit s3c_exit(void)
++{
++ platform_device_unregister(smdk_snd_device);
++}
++
++module_init(s3c_init);
++module_exit(s3c_exit);
++
++/* Module information */
++MODULE_AUTHOR("Ryu Euiyoul");
++MODULE_DESCRIPTION("ALSA SoC WM8580 SMDK");
++MODULE_LICENSE("GPL");
+diff --git a/sound/soc/s3c24xx/smdk2450_wm9713.c b/sound/soc/s3c24xx/smdk2450_wm9713.c
+new file mode 100644
+index 0000000..1377764
+--- /dev/null
++++ b/sound/soc/s3c24xx/smdk2450_wm9713.c
+@@ -0,0 +1,88 @@
++/*
++ * smdk2450_wm9713.c -- SoC audio for smdk2450
++ *
++ * Copyright (C) 2007, Ryu Euiyoul <ryu.real@gmail.com>
++ *
++ * Copyright 2007 Wolfson Microelectronics PLC.
++ * Author: Graeme Gregory
++ * graeme.gregory@wolfsonmicro.com or linux@wolfsonmicro.com
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * Revision history
++ * 8th Mar 2007 Initial version.
++ * 20th Sep 2007 Apply at smdk2450
++ *
++ */
++
++#include <linux/module.h>
++#include <linux/device.h>
++#include <sound/driver.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++
++#include "../codecs/wm9713.h"
++#include "s3c-pcm.h"
++#include "s3c24xx-ac97.h"
++
++static struct snd_soc_machine smdk2450;
++
++static struct snd_soc_dai_link smdk2450_dai[] = {
++{
++ .name = "AC97",
++ .stream_name = "AC97 HiFi",
++ .cpu_dai = &s3c24xx_ac97_dai[0],
++ .codec_dai = &wm9713_dai[WM9713_DAI_AC97_HIFI],
++},
++};
++
++static struct snd_soc_machine smdk2450 = {
++ .name = "SMDK2450",
++ .dai_link = smdk2450_dai,
++ .num_links = ARRAY_SIZE(smdk2450_dai),
++};
++
++static struct snd_soc_device smdk2450_snd_ac97_devdata = {
++ .machine = &smdk2450,
++ .platform = &s3c24xx_soc_platform,
++ .codec_dev = &soc_codec_dev_wm9713,
++};
++
++static struct platform_device *smdk2450_snd_ac97_device;
++
++static int __init smdk2450_init(void)
++{
++ int ret;
++
++ smdk2450_snd_ac97_device = platform_device_alloc("soc-audio", -1);
++ if (!smdk2450_snd_ac97_device)
++ return -ENOMEM;
++
++ platform_set_drvdata(smdk2450_snd_ac97_device,
++ &smdk2450_snd_ac97_devdata);
++ smdk2450_snd_ac97_devdata.dev = &smdk2450_snd_ac97_device->dev;
++ ret = platform_device_add(smdk2450_snd_ac97_device);
++
++ if (ret)
++ platform_device_put(smdk2450_snd_ac97_device);
++
++ return ret;
++}
++
++static void __exit smdk2450_exit(void)
++{
++ platform_device_unregister(smdk2450_snd_ac97_device);
++}
++
++module_init(smdk2450_init);
++module_exit(smdk2450_exit);
++
++/* Module information */
++MODULE_AUTHOR("Ryu Euiyoul");
++MODULE_DESCRIPTION("ALSA SoC WM9713 SMDK2450");
++MODULE_LICENSE("GPL");
+diff --git a/sound/soc/s3c64xx/Kconfig b/sound/soc/s3c64xx/Kconfig
+new file mode 100644
+index 0000000..705c677
+--- /dev/null
++++ b/sound/soc/s3c64xx/Kconfig
+@@ -0,0 +1,110 @@
++menu "SoC Audio for the Samsung S3C"
++ depends on PLAT_S3C64XX && ARCH_S3C2410 && SND_SOC
++
++config SND_S3C_SOC
++ tristate "SoC Audio for the Samsung S3C chips"
++ depends on ARCH_S3C2410 && SND_SOC
++ select SND_PCM
++ help
++ Say Y or M if you want to add support for codecs attached to
++ the S3C AC97, I2S or SSP interface. You will also need
++ to select the audio interfaces to support below.
++
++
++config SND_S3C_SOC_I2S
++ tristate
++
++config SND_S3C6410_SOC_I2S_V32
++ tristate
++
++config SND_S3C6410_SOC_I2S
++ tristate
++
++config SND_SOC_I2S_V40
++ tristate
++
++config SND_S3C64XX_SOC_SMDK6410_WM9713
++ tristate "SoC AC97 Audio support for SMDK6410 - WM9713"
++ depends on SND_S3C_SOC && (MACH_SMDK6410)
++ select SND_S3C6410_SOC_AC97
++ select SND_SOC_WM9713
++ help
++ Say Y if you want to add support for SoC audio on smdk6410
++ with the WM9713.
++
++choice
++ prompt "SMDK Record Path Select"
++ depends on SND_S3C64XX_SOC_SMDK6400_WM9713 || SND_S3C64XX_SOC_SMDK6410_WM9713
++
++config SOUND_WM9713_INPUT_STREAM_LINE
++ bool "Input Stream is LINE-IN"
++ depends on SND_S3C64XX_SOC_SMDK6400_WM9713 || SND_S3C64XX_SOC_SMDK6410_WM9713
++ help
++ Say Y here to make input stream as LINE-IN.
++
++config SOUND_WM9713_INPUT_STREAM_MIC
++ bool "Input Stream is MIC"
++ depends on SND_S3C64XX_SOC_SMDK6400_WM9713 || SND_S3C64XX_SOC_SMDK6410_WM9713
++ help
++ Say Y here to make input stream as MIC.
++endchoice
++
++config SND_S3C6410_SOC_AC97
++ tristate
++ select AC97_BUS
++ select SND_AC97_CODEC
++ select SND_SOC_AC97_BUS
++
++config SND_S3C6410_SOC_SMDK6410_WM8580
++ tristate "SoC I2S Audio support for SMDK6410 - WM8580"
++ depends on SND_S3C_SOC && (MACH_SMDK6410 || MACH_SMDK6430)
++ select SND_S3C6410_SOC_I2S
++ select SND_SOC_WM8580
++ help
++ Say Y if you want to add support for SoC audio on smdk6410
++ with the WM8580.
++
++choice
++ prompt "SMDK Record Path Select"
++ depends on SND_S3C6410_SOC_SMDK6410_WM8580 || SND_S3C24XX_SOC_SMDK2450_WM8580
++
++config SOUND_WM8580_INPUT_STREAM_LINE
++ bool "Input Stream is LINE-IN"
++ depends on SND_S3C6410_SOC_SMDK6410_WM8580 || SND_S3C24XX_SOC_SMDK2450_WM8580
++ help
++ Say Y here to make input stream as LINE-IN.
++
++config SOUND_WM8580_INPUT_STREAM_MIC
++ bool "Input Stream is MIC"
++ depends on SND_S3C6410_SOC_SMDK6410_WM8580 || SND_S3C24XX_SOC_SMDK2450_WM8580
++ help
++ Say Y here to make input stream as MIC.
++endchoice
++
++config SND_S3C64XX_SOC_SMDK6410_WM8990
++ tristate "SoC I2S Audio support for SMDK6410 - WM8990"
++ depends on SND_S3C_SOC && (MACH_SMDK6410)
++ select SND_S3C6410_SOC_I2S_V32
++ select SND_SOC_WM8990
++ help
++ Say Y if you want to add support for SoC audio on smdk6410
++ with the WM8990.
++
++choice
++ prompt "SMDK Record Path Select"
++ depends on SND_S3C64XX_SOC_SMDK6410_WM8990 || SND_S3C64XX_SOC_SMDK6400_WM8990
++
++config SOUND_WM8990_INPUT_STREAM_LINE_IN
++ bool "Input Stream is LINE-IN"
++ depends on SND_S3C64XX_SOC_SMDK6410_WM8990 || SND_S3C64XX_SOC_SMDK6400_WM8990
++ help
++ Say Y here to make input stream as LINE-IN.
++
++config SOUND_WM8990_INPUT_STREAM_MIC_IN
++ bool "Input Stream is MIC"
++ depends on SND_S3C64XX_SOC_SMDK6410_WM8990 || SND_S3C64XX_SOC_SMDK6400_WM8990
++ help
++ Say Y here to make input stream as MIC.
++endchoice
++
++endmenu
+diff --git a/sound/soc/s3c64xx/Makefile b/sound/soc/s3c64xx/Makefile
+new file mode 100644
+index 0000000..2865391
+--- /dev/null
++++ b/sound/soc/s3c64xx/Makefile
+@@ -0,0 +1,18 @@
++# S3c24XX Platform Support
++snd-soc-s3c64xx-ac97-objs := s3c64xx-ac97.o
++snd-soc-s3c6410-i2s-objs := s3c6410-i2s-v40.o
++snd-soc-s3c6410-i2s-v32-objs := s3c6410-i2s-v32.o
++
++obj-$(CONFIG_SND_S3C6410_SOC_AC97) += snd-soc-s3c64xx-ac97.o
++obj-$(CONFIG_SND_S3C6410_SOC_I2S) += snd-soc-s3c6410-i2s.o
++obj-$(CONFIG_SND_S3C6410_SOC_I2S_V32) += snd-soc-s3c6410-i2s-v32.o
++
++# S3C24XX Machine Support
++snd-soc-neo1973-wm8753-objs := neo1973_wm8753.o
++snd-soc-smdk64xx-wm9713-objs := smdk64xx_wm9713.o
++snd-soc-smdk6410-wm8580-objs := smdk6410_wm8580.o
++snd-soc-smdk6410-wm8990-objs := smdk6410_wm8990.o
++
++obj-$(CONFIG_SND_S3C64XX_SOC_SMDK6410_WM9713) += snd-soc-smdk64xx-wm9713.o
++obj-$(CONFIG_SND_S3C6410_SOC_SMDK6410_WM8580) += snd-soc-smdk6410-wm8580.o
++obj-$(CONFIG_SND_S3C64XX_SOC_SMDK6410_WM8990) += snd-soc-smdk6410-wm8990.o
+diff --git a/sound/soc/s3c64xx/s3c6410-i2s-v32.c b/sound/soc/s3c64xx/s3c6410-i2s-v32.c
+new file mode 100644
+index 0000000..6c7446e
+--- /dev/null
++++ b/sound/soc/s3c64xx/s3c6410-i2s-v32.c
+@@ -0,0 +1,528 @@
++/*
++ * s3c-i2s.c -- ALSA Soc Audio Layer
++ *
++ * (c) 2006 Wolfson Microelectronics PLC.
++ * Graeme Gregory graeme.gregory@wolfsonmicro.com or linux@wolfsonmicro.com
++ *
++ * (c) 2004-2005 Simtec Electronics
++ * http://armlinux.simtec.co.uk/
++ * Ben Dooks <ben@simtec.co.uk>
++ * Ryu Euiyoul <ryu.real@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ *
++ * Revision history
++ * 11th Dec 2006 Merged with Simtec driver
++ * 10th Nov 2006 Initial version.
++ */
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/device.h>
++#include <linux/delay.h>
++#include <linux/clk.h>
++#include <sound/driver.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/pcm_params.h>
++#include <sound/initval.h>
++#include <sound/soc.h>
++
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/dma.h>
++
++#include <asm-arm/plat-s3c64xx/regs-iis.h>
++//#include <asm/arch/regs-iis.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/audio.h>
++#include <asm/arch/dma.h>
++#include <asm/arch/regs-s3c-clock.h>
++
++#include "../s3c24xx/s3c-pcm.h"
++#include "../s3c24xx/s3c-i2s.h"
++
++#ifdef CONFIG_SND_DEBUG
++#define s3cdbg(x...) printk(x)
++#else
++#define s3cdbg(x...)
++#endif
++
++/* used to disable sysclk if external crystal is used */
++static int extclk = 0;
++module_param(extclk, int, 0);
++MODULE_PARM_DESC(extclk, "set to 1 to disable s3c24XX i2s sysclk");
++
++static struct s3c2410_dma_client s3c24xx_dma_client_out = {
++ .name = "I2S PCM Stereo out"
++};
++
++static struct s3c2410_dma_client s3c24xx_dma_client_in = {
++ .name = "I2S PCM Stereo in"
++};
++
++static struct s3c24xx_pcm_dma_params s3c24xx_i2s_pcm_stereo_out = {
++ .client = &s3c24xx_dma_client_out,
++ .channel = DMACH_I2S_OUT,
++ .dma_addr = S3C6400_PA_IIS + S3C64XX_IISFIFO,
++ .dma_size = 4,
++};
++
++static struct s3c24xx_pcm_dma_params s3c24xx_i2s_pcm_stereo_in = {
++ .client = &s3c24xx_dma_client_in,
++ .channel = DMACH_I2S_IN,
++ .dma_addr = S3C6400_PA_IIS + S3C64XX_IISFIFORX,
++ .dma_size = 4,
++};
++
++struct s3c24xx_i2s_info {
++ void __iomem *regs;
++ struct clk *iis_clk;
++ int master;
++};
++static struct s3c24xx_i2s_info s3c24xx_i2s;
++
++static void s3c24xx_snd_txctrl(int on)
++{
++ u32 iisfcon;
++ u32 iiscon;
++ u32 iismod;
++
++ s3cdbg("Entered %s : on = %d \n", __FUNCTION__, on);
++
++ iiscon = readl(s3c24xx_i2s.regs + S3C64XX_IIS0CON);
++ iismod = readl(s3c24xx_i2s.regs + S3C64XX_IIS0MOD);
++ iisfcon = readl(s3c24xx_i2s.regs + S3C64XX_IISFCON);
++
++ s3cdbg("r: IISCON: %x IISMOD: %x IISFCON: %x\n", iiscon, iismod, iisfcon);
++
++ if (on) {
++ iiscon |= S3C64XX_IIS0CON_I2SACTIVE;
++ writel(iismod, s3c24xx_i2s.regs + S3C64XX_IIS0MOD);
++ writel(iisfcon, s3c24xx_i2s.regs + S3C64XX_IISFCON);
++ writel(iiscon, s3c24xx_i2s.regs + S3C64XX_IIS0CON);
++ } else {
++ /* note, we have to disable the FIFOs otherwise bad things
++ * seem to happen when the DMA stops. According to the
++ * Samsung supplied kernel, this should allow the DMA
++ * engine and FIFOs to reset. If this isn't allowed, the
++ * DMA engine will simply freeze randomly.
++ */
++
++ iiscon &=~(S3C64XX_IIS0CON_I2SACTIVE);
++ iismod &= ~S3C64XX_IIS0MOD_TXMODE;
++
++ writel(iiscon, s3c24xx_i2s.regs + S3C64XX_IIS0CON);
++ writel(iisfcon, s3c24xx_i2s.regs + S3C64XX_IISFCON);
++ writel(iismod, s3c24xx_i2s.regs + S3C64XX_IIS0MOD);
++ }
++
++ s3cdbg("w: IISCON: %x IISMOD: %x IISFCON: %x\n", iiscon, iismod, iisfcon);
++}
++
++static void s3c24xx_snd_rxctrl(int on)
++{
++ u32 iisfcon;
++ u32 iiscon;
++ u32 iismod;
++
++ s3cdbg("Entered %s: on = %d\n", __FUNCTION__, on);
++
++ iisfcon = readl(s3c24xx_i2s.regs + S3C64XX_IISFCON);
++ iiscon = readl(s3c24xx_i2s.regs + S3C64XX_IIS0CON);
++ iismod = readl(s3c24xx_i2s.regs + S3C64XX_IIS0MOD);
++
++ s3cdbg("r: IISCON: %x IISMOD: %x IISFCON: %x\n", iiscon, iismod, iisfcon);
++
++ if (on) {
++
++ iiscon |= S3C64XX_IIS0CON_I2SACTIVE;
++
++ writel(iismod, s3c24xx_i2s.regs + S3C64XX_IIS0MOD);
++ writel(iisfcon, s3c24xx_i2s.regs + S3C64XX_IISFCON);
++ writel(iiscon, s3c24xx_i2s.regs + S3C64XX_IIS0CON);
++ } else {
++ /* note, we have to disable the FIFOs otherwise bad things
++ * seem to happen when the DMA stops. According to the
++ * Samsung supplied kernel, this should allow the DMA
++ * engine and FIFOs to reset. If this isn't allowed, the
++ * DMA engine will simply freeze randomly.
++ */
++
++#if !defined (CONFIG_CPU_S3C6400) && !defined (CONFIG_CPU_S3C6410)
++ iisfcon &= ~S3C2410_IISFCON_RXENABLE;
++ iisfcon &= ~S3C2410_IISFCON_RXDMA;
++ iiscon |= S3C2410_IISCON_RXIDLE;
++ iiscon &= ~S3C2410_IISCON_RXDMAEN;
++ iismod &= ~S3C2410_IISMOD_RXMODE;
++#else
++ iiscon &=~ S3C64XX_IIS0CON_I2SACTIVE;
++ iismod &= ~S3C64XX_IIS0MOD_RXMODE;
++#endif
++ writel(iisfcon, s3c24xx_i2s.regs + S3C64XX_IISFCON);
++ writel(iiscon, s3c24xx_i2s.regs + S3C64XX_IIS0CON);
++ writel(iismod, s3c24xx_i2s.regs + S3C64XX_IIS0MOD);
++
++ }
++ s3cdbg("w: IISCON: %x IISMOD: %x IISFCON: %x\n", iiscon, iismod, iisfcon);
++}
++
++/*
++ * Wait for the LR signal to allow synchronisation to the L/R clock
++ * from the codec. May only be needed for slave mode.
++ */
++static int s3c24xx_snd_lrsync(void)
++{
++ u32 iiscon;
++ unsigned long timeout = jiffies + msecs_to_jiffies(5);
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ while (1) {
++ iiscon = readl(s3c24xx_i2s.regs + S3C64XX_IIS0CON);
++ if (iiscon & S3C64XX_IISCON_LRINDEX)
++ break;
++
++ if (timeout < jiffies)
++ return -ETIMEDOUT;
++ }
++
++ return 0;
++}
++
++/*
++ * Check whether CPU is the master or slave
++ */
++static inline int s3c24xx_snd_is_clkmaster(void)
++{
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ return (readl(s3c24xx_i2s.regs + S3C64XX_IIS0MOD) & S3C64XX_IISMOD_SLAVE) ? 0:1;
++}
++
++/*
++ * Set S3C24xx I2S DAI format
++ */
++static int s3c_i2s_set_fmt(struct snd_soc_cpu_dai *cpu_dai,
++ unsigned int fmt)
++{
++#if 0
++ u32 iismod;
++
++ s3cdbg("Entered %s: fmt = %d\n", __FUNCTION__, fmt);
++
++ iismod = readl(s3c24xx_i2s.regs + S3C64XX_IIS0MOD);
++
++ switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
++ case SND_SOC_DAIFMT_CBM_CFM:
++#if !defined (CONFIG_CPU_S3C6400) && !defined (CONFIG_CPU_S3C6410)
++ iismod |= S3C64XX_IISMOD_SLAVE;
++#else
++ iismod |= S3C2410_IISMOD_MASTER;
++#endif
++ break;
++ case SND_SOC_DAIFMT_CBS_CFS:
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
++ case SND_SOC_DAIFMT_LEFT_J:
++#if !defined (CONFIG_CPU_S3C6400) && !defined (CONFIG_CPU_S3C6410)
++ iismod |= S3C2410_IISMOD_MSB;
++#else
++ iismod |= S3C_IIS0MOD_MSB;
++#endif
++ break;
++ case SND_SOC_DAIFMT_I2S:
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ writel(iismod, s3c24xx_i2s.regs + S3C64XX_IIS0MOD);
++#endif
++ return 0;
++
++}
++
++static int s3c_i2s_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++
++ unsigned long iiscon;
++ unsigned long iismod;
++ unsigned long iisfcon;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ /*Set I2C port to controll WM8753 codec*/
++ s3c_gpio_pullup(S3C_GPB5, 0);
++ s3c_gpio_pullup(S3C_GPB6, 0);
++ s3c_gpio_cfgpin(S3C_GPB5, S3C_GPB5_I2C_SCL);
++ s3c_gpio_cfgpin(S3C_GPB6, S3C_GPB6_I2C_SDA);
++
++ s3c24xx_i2s.master = 1;
++
++ /* Configure the I2S pins in correct mode */
++ s3c_gpio_cfgpin(S3C_GPD2,S3C_GPD2_I2S_LRCLK0);
++
++ if (s3c24xx_i2s.master && !extclk){
++ s3cdbg("Setting Clock Output as we are Master\n");
++ s3c_gpio_cfgpin(S3C_GPD0,S3C_GPD0_I2S_CLK0);
++
++ }
++ s3c_gpio_cfgpin(S3C_GPD1,S3C_GPD1_I2S_CDCLK0);
++ s3c_gpio_cfgpin(S3C_GPD3,S3C_GPD3_I2S_DI0);
++ s3c_gpio_cfgpin(S3C_GPD4,S3C_GPD4_I2S_DO0);
++
++ /* pull-up-enable, pull-down-disable*/
++ s3c_gpio_pullup(S3C_GPD0, 0x2);
++ s3c_gpio_pullup(S3C_GPD1, 0x2);
++ s3c_gpio_pullup(S3C_GPD2, 0x2);
++ s3c_gpio_pullup(S3C_GPD3, 0x2);
++ s3c_gpio_pullup(S3C_GPD4, 0x2);
++
++ s3cdbg("substream->stream : %d\n", substream->stream);
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
++ rtd->dai->cpu_dai->dma_data = &s3c24xx_i2s_pcm_stereo_out;
++ } else {
++ rtd->dai->cpu_dai->dma_data = &s3c24xx_i2s_pcm_stereo_in;
++ }
++
++ /* Working copies of registers */
++ iiscon = readl(s3c24xx_i2s.regs + S3C64XX_IIS0CON);
++ iismod = readl(s3c24xx_i2s.regs + S3C64XX_IIS0MOD);
++ iisfcon = readl(s3c24xx_i2s.regs + S3C64XX_IIS0FIC);
++ /* is port used by another stream */
++ if (!(iiscon & S3C64XX_IIS0CON_I2SACTIVE)) {
++
++ // Clear BFS field [2:1]
++ iismod &= ~(0x3<<1);
++ iismod |= S3C64XX_IIS0MOD_32FS | S3C64XX_IIS0MOD_INTERNAL_CLK;
++
++ if (!s3c24xx_i2s.master)
++ iismod |= S3C64XX_IIS0MOD_IMS_SLAVE;
++ else
++ iismod |= S3C64XX_IIS0MOD_IMS_EXTERNAL_MASTER;
++ }
++
++ /* enable TX & RX all to support Full-duplex */
++ iismod |= S3C64XX_IIS0MOD_TXRXMODE;
++ iiscon |= S3C64XX_IIS0CON_TXDMACTIVE;
++ iisfcon |= S3C64XX_IIS_TX_FLUSH;
++ iiscon |= S3C64XX_IIS0CON_RXDMACTIVE;
++ iisfcon |= S3C64XX_IIS_RX_FLUSH;
++
++ writel(iiscon, s3c24xx_i2s.regs + S3C64XX_IIS0CON);
++ writel(iismod, s3c24xx_i2s.regs + S3C64XX_IIS0MOD);
++ writel(iisfcon, s3c24xx_i2s.regs + S3C64XX_IIS0FIC);
++
++ // Tx, Rx fifo flush bit clear
++ iisfcon &= ~(S3C64XX_IIS_TX_FLUSH | S3C64XX_IIS_RX_FLUSH);
++ writel(iisfcon, s3c24xx_i2s.regs + S3C64XX_IIS0FIC);
++
++ s3cdbg("IISCON: %lx IISMOD: %lx", iiscon, iismod);
++
++ return 0;
++
++}
++
++static int s3c_i2s_trigger(struct snd_pcm_substream *substream, int cmd)
++{
++ int ret = 0;
++
++ s3cdbg("Entered %s: cmd = %d\n", __FUNCTION__, cmd);
++
++ switch (cmd) {
++ case SNDRV_PCM_TRIGGER_START:
++ case SNDRV_PCM_TRIGGER_RESUME:
++ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
++ if (!s3c24xx_snd_is_clkmaster()) {
++ ret = s3c24xx_snd_lrsync();
++ if (ret)
++ goto exit_err;
++ }
++
++ if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ s3c24xx_snd_rxctrl(1);
++ else
++ s3c24xx_snd_txctrl(1);
++ break;
++ case SNDRV_PCM_TRIGGER_STOP:
++ case SNDRV_PCM_TRIGGER_SUSPEND:
++ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
++ if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ s3c24xx_snd_rxctrl(0);
++ else
++ s3c24xx_snd_txctrl(0);
++ break;
++ default:
++ ret = -EINVAL;
++ break;
++ }
++
++exit_err:
++ return ret;
++}
++
++static void s3c64xx_i2s_shutdown(struct snd_pcm_substream *substream)
++{
++ unsigned long iismod, iiscon;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ iismod=readl(s3c24xx_i2s.regs + S3C64XX_IIS0MOD);
++
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
++ iismod &= ~S3C64XX_IIS0MOD_TXMODE;
++ } else {
++ iismod &= ~S3C64XX_IIS0MOD_RXMODE;
++ }
++
++ writel(iismod,s3c24xx_i2s.regs + S3C64XX_IIS0MOD);
++
++ iiscon=readl(s3c24xx_i2s.regs + S3C64XX_IIS0CON);
++ iiscon &= !S3C64XX_IIS0CON_I2SACTIVE;
++ writel(iiscon,s3c24xx_i2s.regs + S3C64XX_IIS0CON);
++
++ /* Clock disable
++ * PCLK & SCLK gating disable
++ */
++ __raw_writel(__raw_readl(S3C_PCLK_GATE)&~(S3C_CLKCON_PCLK_IIS0), S3C_PCLK_GATE);
++ __raw_writel(__raw_readl(S3C_SCLK_GATE)&~(S3C_CLKCON_SCLK_AUDIO0), S3C_SCLK_GATE);
++
++ /* EPLL disable */
++ __raw_writel(__raw_readl(S3C_EPLL_CON0)&~(1<<31) ,S3C_EPLL_CON0);
++
++}
++
++
++/*
++ * Set S3C24xx Clock source
++ */
++static int s3c_i2s_set_sysclk(struct snd_soc_cpu_dai *cpu_dai,
++ int clk_id, unsigned int freq, int dir)
++{
++ u32 iismod = readl(s3c24xx_i2s.regs + S3C64XX_IIS0MOD);
++
++ s3cdbg("Entered %s : clk_id = %d\n", __FUNCTION__, clk_id);
++
++ iismod &= ~S3C64XX_IISMOD_MPLL;
++
++ switch (clk_id) {
++ case S3C24XX_CLKSRC_PCLK:
++ break;
++ case S3C24XX_CLKSRC_MPLL:
++ iismod |= S3C64XX_IISMOD_MPLL;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ writel(iismod, s3c24xx_i2s.regs + S3C64XX_IIS0MOD);
++ return 0;
++}
++
++/*
++ * Set S3C24xx Clock dividers
++ */
++static int s3c_i2s_set_clkdiv(struct snd_soc_cpu_dai *cpu_dai,
++ int div_id, int div)
++{
++ u32 reg;
++
++ s3cdbg("Entered %s : div_id = %d, div = %d\n", __FUNCTION__, div_id, div);
++
++ switch (div_id) {
++ case S3C24XX_DIV_MCLK:
++ break;
++ case S3C24XX_DIV_BCLK:
++ reg = readl(s3c24xx_i2s.regs + S3C64XX_IIS0MOD) & ~(S3C64XX_IISMOD_384FS);
++ writel(reg | div, s3c24xx_i2s.regs + S3C64XX_IIS0MOD);
++ break;
++ case S3C24XX_DIV_PRESCALER:
++ writel(div|(1<<15),s3c24xx_i2s.regs + S3C64XX_IIS0PSR);
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++static int s3c_i2s_probe(struct platform_device *pdev)
++{
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ s3c24xx_i2s.regs = ioremap(S3C24XX_PA_IIS, 0x100);
++ if (s3c24xx_i2s.regs == NULL)
++ return -ENXIO;
++ return 0;
++}
++
++#ifdef CONFIG_PM
++static int s3c_i2s_suspend(struct platform_device *dev,
++ struct snd_soc_cpu_dai *dai)
++{
++ s3cdbg("Entered %s\n", __FUNCTION__);
++ return 0;
++}
++
++static int s3c_i2s_resume(struct platform_device *pdev,
++ struct snd_soc_cpu_dai *dai)
++{
++ s3cdbg("Entered %s\n", __FUNCTION__);
++ return 0;
++}
++
++#else
++#define s3c_i2s_suspend NULL
++#define s3c_i2s_resume NULL
++#endif
++
++
++#define S3C24XX_I2S_RATES \
++ (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | SNDRV_PCM_RATE_16000 | \
++ SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | \
++ SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000)
++
++struct snd_soc_cpu_dai s3c_i2s_dai = {
++ .name = "s3c-i2s",
++ .id = 0,
++ .type = SND_SOC_DAI_I2S,
++ .probe = s3c_i2s_probe,
++ .suspend = s3c_i2s_suspend,
++ .resume = s3c_i2s_resume,
++ .playback = {
++ .channels_min = 2,
++ .channels_max = 2,
++ .rates = S3C24XX_I2S_RATES,
++ .formats = SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_S16_LE,},
++ .capture = {
++ .channels_min = 2,
++ .channels_max = 2,
++ .rates = S3C24XX_I2S_RATES,
++ .formats = SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_S16_LE,},
++ .ops = {
++ .shutdown = s3c64xx_i2s_shutdown,
++ .trigger = s3c_i2s_trigger,
++ .hw_params = s3c_i2s_hw_params,},
++ .dai_ops = {
++ .set_fmt = s3c_i2s_set_fmt,
++ .set_clkdiv = s3c_i2s_set_clkdiv,
++ .set_sysclk = s3c_i2s_set_sysclk,
++ },
++};
++EXPORT_SYMBOL_GPL(s3c_i2s_dai);
++
++/* Module information */
++MODULE_AUTHOR("Ben Dooks, <ben@simtec.co.uk>");
++MODULE_DESCRIPTION("s3c24xx I2S SoC Interface");
++MODULE_LICENSE("GPL");
+diff --git a/sound/soc/s3c64xx/s3c6410-i2s-v40.c b/sound/soc/s3c64xx/s3c6410-i2s-v40.c
+new file mode 100644
+index 0000000..8a32afe
+--- /dev/null
++++ b/sound/soc/s3c64xx/s3c6410-i2s-v40.c
+@@ -0,0 +1,604 @@
++/*
++ * s3c-i2s.c -- ALSA Soc Audio Layer
++ *
++ * (c) 2006 Wolfson Microelectronics PLC.
++ * Graeme Gregory graeme.gregory@wolfsonmicro.com or linux@wolfsonmicro.com
++ *
++ * (c) 2004-2005 Simtec Electronics
++ * http://armlinux.simtec.co.uk/
++ * Ben Dooks <ben@simtec.co.uk>
++ * Ryu Euiyoul <ryu.real@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ *
++ * Revision history
++ * 11th Dec 2006 Merged with Simtec driver
++ * 10th Nov 2006 Initial version.
++ */
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/device.h>
++#include <linux/delay.h>
++#include <linux/interrupt.h>
++#include <linux/clk.h>
++#include <sound/driver.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/pcm_params.h>
++#include <sound/initval.h>
++#include <sound/soc.h>
++
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/dma.h>
++
++#include <asm-arm/plat-s3c64xx/regs-iis.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/audio.h>
++#include <asm/arch/dma.h>
++
++#include <asm/arch/regs-s3c-clock.h>
++
++#include "../s3c24xx/s3c-pcm.h"
++#include "../s3c24xx/s3c-i2s.h"
++
++#ifdef CONFIG_SND_DEBUG
++#define s3cdbg(x...) printk(x)
++#else
++#define s3cdbg(x...)
++#endif
++
++/* used to disable sysclk if external crystal is used */
++static int extclk = 0;
++module_param(extclk, int, 0);
++MODULE_PARM_DESC(extclk, "set to 1 to disable s3c24XX i2s sysclk");
++
++static struct s3c2410_dma_client s3c24xx_dma_client_out = {
++ .name = "I2S PCM Stereo out"
++};
++
++static struct s3c2410_dma_client s3c24xx_dma_client_in = {
++ .name = "I2S PCM Stereo in"
++};
++
++static struct s3c24xx_pcm_dma_params s3c64xx_i2s_pcm_stereo_out = {
++ .client = &s3c24xx_dma_client_out,
++ .channel = DMACH_I2S_V40_OUT,
++ .dma_addr = S3C6410_PA_IIS_V40 + S3C64XX_IISFIFO,
++ .dma_size = 4,
++};
++
++static struct s3c24xx_pcm_dma_params s3c64xx_i2s_pcm_stereo_in = {
++ .client = &s3c24xx_dma_client_in,
++ .channel = DMACH_I2S_V40_IN,
++ .dma_addr = S3C6410_PA_IIS_V40 + S3C64XX_IISFIFORX,
++ .dma_size = 4,
++};
++
++struct s3c64xx_i2s_info {
++ void __iomem *regs;
++ struct clk *iis_clk;
++ int master;
++};
++static struct s3c64xx_i2s_info s3c64xx_i2s;
++
++static void s3c24xx_snd_txctrl(int on)
++{
++ u32 iiscon;
++ u32 iismod;
++
++ s3cdbg("Entered %s : on = %d \n", __FUNCTION__, on);
++
++ iiscon = readl(s3c64xx_i2s.regs + S3C64XX_IIS0CON);
++ iismod = readl(s3c64xx_i2s.regs + S3C64XX_IIS0MOD);
++
++ s3cdbg("r: IISCON: %x IISMOD: %x\n", iiscon, iismod);
++
++ if (on) {
++ iiscon |= S3C64XX_IIS0CON_I2SACTIVE;
++
++ writel(iismod, s3c64xx_i2s.regs + S3C64XX_IIS0MOD);
++ writel(iiscon, s3c64xx_i2s.regs + S3C64XX_IIS0CON);
++
++ } else {
++ /* note, we have to disable the FIFOs otherwise bad things
++ * seem to happen when the DMA stops. According to the
++ * Samsung supplied kernel, this should allow the DMA
++ * engine and FIFOs to reset. If this isn't allowed, the
++ * DMA engine will simply freeze randomly.
++ */
++ iiscon &=~(S3C64XX_IIS0CON_I2SACTIVE);
++ iismod &= ~S3C64XX_IIS0MOD_TXMODE;
++
++ writel(iiscon, s3c64xx_i2s.regs + S3C64XX_IIS0CON);
++ writel(iismod, s3c64xx_i2s.regs + S3C64XX_IIS0MOD);
++ }
++
++ s3cdbg("w: IISCON: %x IISMOD: %x\n", iiscon, iismod);
++}
++
++static void s3c24xx_snd_rxctrl(int on)
++{
++ u32 iisfcon;
++ u32 iiscon;
++ u32 iismod;
++
++ s3cdbg("Entered %s: on = %d\n", __FUNCTION__, on);
++
++ iisfcon = readl(s3c64xx_i2s.regs + S3C64XX_IIS0FIC);
++ iiscon = readl(s3c64xx_i2s.regs + S3C64XX_IIS0CON);
++ iismod = readl(s3c64xx_i2s.regs + S3C64XX_IIS0MOD);
++
++ s3cdbg("r: IISCON: %x IISMOD: %x IISFCON: %x\n", iiscon, iismod, iisfcon);
++
++ if (on) {
++ iiscon |= S3C64XX_IIS0CON_I2SACTIVE;
++
++ writel(iismod, s3c64xx_i2s.regs + S3C64XX_IIS0MOD);
++ writel(iisfcon, s3c64xx_i2s.regs + S3C64XX_IIS0FIC);
++ writel(iiscon, s3c64xx_i2s.regs + S3C64XX_IIS0CON);
++ } else {
++ /* note, we have to disable the FIFOs otherwise bad things
++ * seem to happen when the DMA stops. According to the
++ * Samsung supplied kernel, this should allow the DMA
++ * engine and FIFOs to reset. If this isn't allowed, the
++ * DMA engine will simply freeze randomly.
++ */
++
++ iiscon &=~ S3C64XX_IIS0CON_I2SACTIVE;
++ iismod &= ~S3C64XX_IIS0MOD_RXMODE;
++
++ writel(iisfcon, s3c64xx_i2s.regs + S3C64XX_IIS0FIC);
++ writel(iiscon, s3c64xx_i2s.regs + S3C64XX_IIS0CON);
++ writel(iismod, s3c64xx_i2s.regs + S3C64XX_IIS0MOD);
++
++ }
++ s3cdbg("w: IISCON: %x IISMOD: %x IISFCON: %x\n", iiscon, iismod, iisfcon);
++}
++
++/*
++ * Wait for the LR signal to allow synchronisation to the L/R clock
++ * from the codec. May only be needed for slave mode.
++ */
++static int s3c24xx_snd_lrsync(void)
++{
++ u32 iiscon;
++ unsigned long timeout = jiffies + msecs_to_jiffies(5);
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ while (1) {
++ iiscon = readl(s3c64xx_i2s.regs + S3C64XX_IIS0CON);
++ if (iiscon & S3C64XX_IISCON_LRINDEX)
++ break;
++
++ if (timeout < jiffies)
++ return -ETIMEDOUT;
++ }
++
++ return 0;
++}
++
++/*
++ * Check whether CPU is the master or slave
++ */
++static inline int s3c24xx_snd_is_clkmaster(void)
++{
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ return (readl(s3c64xx_i2s.regs + S3C64XX_IIS0MOD) & S3C64XX_IISMOD_SLAVE) ? 0:1;
++}
++
++/*
++ * Set S3C24xx I2S DAI format
++ */
++static int s3c_i2s_v40_set_fmt(struct snd_soc_cpu_dai *cpu_dai,
++ unsigned int fmt)
++{
++#if 0
++ u32 iismod;
++
++ s3cdbg("Entered %s: fmt = %d\n", __FUNCTION__, fmt);
++
++ iismod = readl(s3c64xx_i2s.regs + S3C64XX_IIS0MOD);
++
++ switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
++ case SND_SOC_DAIFMT_CBM_CFM:
++#ifndef CONFIG_CPU_S3C6400
++ iismod |= S3C_IIS0MOD_SLAVE;
++#else
++ iismod |= S3C_IIS0MOD_MASTER;
++#endif
++ break;
++ case SND_SOC_DAIFMT_CBS_CFS:
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
++ case SND_SOC_DAIFMT_LEFT_J:
++#ifndef CONFIG_CPU_S3C6400
++ iismod |= S3C_IIS0MOD_MSB;
++#else
++ iismod |= S3C_IIS0MOD_MSB;
++#endif
++ break;
++ case SND_SOC_DAIFMT_I2S:
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ writel(iismod, s3c64xx_i2s.regs + S3C64XX_IIS0MOD);
++#endif
++ return 0;
++
++}
++
++static int s3c_i2s_v40_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++
++ unsigned long iiscon;
++ unsigned long iismod;
++ unsigned long iisfcon;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ s3c64xx_i2s.master = 1;
++
++ /* Configure the I2S pins in correct mode */
++ s3c_gpio_cfgpin(S3C_GPH8,S3C_GPH8_I2S_V40_LRCLK);
++
++ if (s3c64xx_i2s.master && !extclk){
++ s3cdbg("Setting Clock Output as we are Master\n");
++ s3c_gpio_cfgpin(S3C_GPH6,S3C_GPH6_I2S_V40_BCLK);
++ }
++
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
++ rtd->dai->cpu_dai->dma_data = &s3c64xx_i2s_pcm_stereo_out;
++ } else {
++ rtd->dai->cpu_dai->dma_data = &s3c64xx_i2s_pcm_stereo_in;
++ }
++
++ /* Working copies of registers */
++ iiscon = readl(s3c64xx_i2s.regs + S3C64XX_IIS0CON);
++ iismod = readl(s3c64xx_i2s.regs + S3C64XX_IIS0MOD);
++ iisfcon = readl(s3c64xx_i2s.regs + S3C64XX_IIS0FIC);
++
++ /* is port used by another stream */
++ if (!(iiscon & S3C64XX_IIS0CON_I2SACTIVE)) {
++
++ /* Clear BFS field [2:1] */
++ iismod &= ~(0x3<<1);
++ iismod |= S3C64XX_IIS0MOD_32FS | S3C64XX_IIS0MOD_INTERNAL_CLK;
++
++ if (!s3c64xx_i2s.master)
++ iismod |= S3C64XX_IISMOD_SLAVE;
++ else
++ iismod |= S3C64XX_IIS0MOD_IMS_EXTERNAL_MASTER;
++ }
++
++ iiscon |= S3C64XX_IISCON_FTXURINTEN;
++ iiscon |= S3C64XX_IIS0CON_TXDMACTIVE;
++ iiscon |= S3C64XX_IIS0CON_RXDMACTIVE;
++
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
++ iismod |= S3C64XX_IIS0MOD_TXMODE;
++ iisfcon |= S3C64XX_IIS_TX_FLUSH;
++ } else {
++ iismod |= S3C64XX_IIS0MOD_RXMODE;
++ iisfcon |= S3C64XX_IIS_RX_FLUSH;
++ }
++
++ /* Multi channel enable */
++ iismod &= ~S3C64XX_IIS0MOD_DCE_MASK;
++ switch (params_channels(params)) {
++ case 6:
++ printk("s3c i2s: 5.1channel\n");
++ iismod |= S3C64XX_IIS0MOD_DCE_SD2;
++ iismod |= S3C64XX_IIS0MOD_DCE_SD2;
++ break;
++ case 4:
++ printk("s3c i2s: 4 channel\n");
++ iismod |= S3C64XX_IIS0MOD_DCE_SD2;
++ break;
++ case 2:
++ printk("s3c i2s: 2 channel\n");
++ break;
++ default:
++ printk(KERN_ERR "s3c-i2s-v40: %d channels unsupported\n",
++ params_channels(params));
++ return -EINVAL;
++ }
++
++ /* Set the bit rate */
++ iismod &= ~0x6000;
++ switch (params_format(params)) {
++ case SNDRV_PCM_FORMAT_S16_LE:
++ iismod &= ~S3C64XX_IIS0MOD_FS_MASK;
++ iismod |= S3C64XX_IIS0MOD_256FS | S3C64XX_IIS0MOD_32FS;
++ iismod &= ~(0x3<<13);
++ iismod |= S3C64XX_IIS0MOD_16BIT;
++ break;
++ case SNDRV_PCM_FORMAT_S8:
++ iismod |= S3C64XX_IIS0MOD_8BIT;
++ break;
++ case SNDRV_PCM_FORMAT_S24_LE:
++ iismod &= ~S3C64XX_IIS0MOD_FS_MASK;
++ iismod |= S3C64XX_IIS0MOD_384FS | S3C64XX_IIS0MOD_48FS;
++ iismod &= ~(0x3<<13);
++ iismod |= S3C64XX_IIS0MOD_24BIT;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ writel(iisfcon, s3c64xx_i2s.regs + S3C64XX_IIS0FIC);
++ writel(iiscon, s3c64xx_i2s.regs + S3C64XX_IIS0CON);
++ writel(iismod, s3c64xx_i2s.regs + S3C64XX_IIS0MOD);
++
++ // Tx, Rx fifo flush bit clear
++ iisfcon &= ~(S3C64XX_IIS_TX_FLUSH | S3C64XX_IIS_RX_FLUSH);
++ writel(iisfcon, s3c64xx_i2s.regs + S3C64XX_IIS0FIC);
++
++ s3cdbg("s3c iis mode: 0x%08x\n", readl(s3c64xx_i2s.regs + S3C64XX_IIS0MOD));
++ s3cdbg("s3c: params_channels %d\n", params_channels(params));
++ s3cdbg("s3c: params_format %d\n", params_format(params));
++ s3cdbg("s3c: params_subformat %d\n", params_subformat(params));
++ s3cdbg("s3c: params_period_size %d\n", params_period_size(params));
++ s3cdbg("s3c: params_period_bytes %d\n", params_period_bytes(params));
++ s3cdbg("s3c: params_periods %d\n", params_periods(params));
++ s3cdbg("s3c: params_buffer_size %d\n", params_buffer_size(params));
++ s3cdbg("s3c: params_buffer_bytes %d\n", params_buffer_bytes(params));
++ s3cdbg("s3c: params_tick_time %d\n", params_tick_time(params));
++ s3cdbg("hw_params: IISCON: %lx IISMOD: %lx\n", iiscon, iismod);
++
++ return 0;
++
++}
++
++static int s3c_i2s_v40_trigger(struct snd_pcm_substream *substream, int cmd)
++{
++ int ret = 0;
++
++ s3cdbg("Entered %s: cmd = %d\n", __FUNCTION__, cmd);
++
++ switch (cmd) {
++ case SNDRV_PCM_TRIGGER_START:
++ case SNDRV_PCM_TRIGGER_RESUME:
++ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
++ if (!s3c24xx_snd_is_clkmaster()) {
++ ret = s3c24xx_snd_lrsync();
++ if (ret)
++ goto exit_err;
++ }
++
++ if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ s3c24xx_snd_rxctrl(1);
++ else
++ s3c24xx_snd_txctrl(1);
++ break;
++ case SNDRV_PCM_TRIGGER_STOP:
++ case SNDRV_PCM_TRIGGER_SUSPEND:
++ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
++ if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ s3c24xx_snd_rxctrl(0);
++ else
++ s3c24xx_snd_txctrl(0);
++ break;
++ default:
++ ret = -EINVAL;
++ break;
++ }
++
++exit_err:
++ return ret;
++}
++
++static void s3c64xx_i2s_shutdown(struct snd_pcm_substream *substream)
++{
++ unsigned long iismod, iiscon;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ iismod=readl(s3c64xx_i2s.regs + S3C64XX_IIS0MOD);
++
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
++ iismod &= ~S3C64XX_IIS0MOD_TXMODE;
++ } else {
++ iismod &= ~S3C64XX_IIS0MOD_RXMODE;
++ }
++
++ writel(iismod, s3c64xx_i2s.regs + S3C64XX_IIS0MOD);
++
++ iiscon=readl(s3c64xx_i2s.regs + S3C64XX_IIS0CON);
++ iiscon &= !S3C64XX_IIS0CON_I2SACTIVE;
++ writel(iiscon, s3c64xx_i2s.regs + S3C64XX_IIS0CON);
++
++ /* Clock disable
++ * PCLK & SCLK gating disable
++ */
++ __raw_writel(__raw_readl(S3C_PCLK_GATE)&~(S3C_CLKCON_PCLK_IIS0), S3C_PCLK_GATE);
++ __raw_writel(__raw_readl(S3C_SCLK_GATE)&~(S3C_CLKCON_SCLK_AUDIO0), S3C_SCLK_GATE);
++
++ /* EPLL disable */
++ __raw_writel(__raw_readl(S3C_EPLL_CON0)&~(1<<31) ,S3C_EPLL_CON0);
++
++}
++
++
++/*
++ * Set S3C24xx Clock source
++ */
++static int s3c_i2s_v40_set_sysclk(struct snd_soc_cpu_dai *cpu_dai,
++ int clk_id, unsigned int freq, int dir)
++{
++ u32 iismod = readl(s3c64xx_i2s.regs + S3C64XX_IIS0MOD);
++
++ s3cdbg("Entered %s : clk_id = %d\n", __FUNCTION__, clk_id);
++
++ iismod &= ~S3C64XX_IISMOD_MPLL;
++
++ switch (clk_id) {
++ case S3C24XX_CLKSRC_PCLK:
++ break;
++ case S3C24XX_CLKSRC_MPLL:
++ iismod |= S3C64XX_IISMOD_MPLL;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ writel(iismod, s3c64xx_i2s.regs + S3C64XX_IIS0MOD);
++ return 0;
++}
++
++/*
++ * Set S3C24xx Clock dividers
++ */
++static int s3c_i2s_v40_set_clkdiv(struct snd_soc_cpu_dai *cpu_dai,
++ int div_id, int div)
++{
++ u32 reg;
++
++ s3cdbg("Entered %s : div_id = %d, div = %x\n", __FUNCTION__, div_id, div);
++
++ switch (div_id) {
++ case S3C24XX_DIV_MCLK:
++ break;
++ case S3C24XX_DIV_BCLK:
++ reg = readl(s3c64xx_i2s.regs + S3C64XX_IIS0MOD) & ~(S3C64XX_IIS0MOD_FS_MASK);
++ writel(reg | div, s3c64xx_i2s.regs + S3C64XX_IIS0MOD);
++ break;
++ case S3C24XX_DIV_PRESCALER:
++ if (div)
++ div |= 1 << 15;
++ writel(div, s3c64xx_i2s.regs + S3C64XX_IIS0PSR);
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++/*
++ * To avoid duplicating clock code, allow machine driver to
++ * get the clockrate from here.
++ */
++u32 s3c_i2s_v40_get_clockrate(void)
++{
++ return clk_get_rate(s3c64xx_i2s.iis_clk);
++}
++EXPORT_SYMBOL_GPL(s3c_i2s_v40_get_clockrate);
++
++static irqreturn_t s3c_iis_irq(int irqno, void *dev_id)
++{
++ u32 iiscon;
++
++ iiscon = readl(s3c64xx_i2s.regs + S3C64XX_IIS0CON);
++ if((1<<17) & iiscon) {
++ iiscon &= ~(1<<16);
++ iiscon |= (1<<17);
++ writel(iiscon, s3c64xx_i2s.regs + S3C64XX_IIS0CON);
++ printk("underrun interrupt IISCON = 0x%08x\n", readl(s3c64xx_i2s.regs + S3C64XX_IIS0CON));
++ }
++
++ return IRQ_HANDLED;
++}
++
++static int s3c_i2s_v40_probe(struct platform_device *pdev)
++{
++ int ret;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ s3c64xx_i2s.regs = ioremap(S3C6410_PA_IIS_V40, 0x100);
++ if (s3c64xx_i2s.regs == NULL)
++ return -ENXIO;
++
++ s3c64xx_i2s.iis_clk=clk_get(&pdev->dev, "iis");
++ if (s3c64xx_i2s.iis_clk == NULL) {
++ printk("failed to get iis_clock\n");
++ iounmap(s3c64xx_i2s.regs);
++ return -ENODEV;
++ }
++ clk_enable(s3c64xx_i2s.iis_clk);
++
++ ret = request_irq(IRQ_IIS, s3c_iis_irq, 0,
++ "s3c-i2s-v40", pdev);
++ if (ret < 0) {
++ printk("fail to claim i2s irq , ret = %d\n", ret);
++ return -ENODEV;
++ }
++
++ return 0;
++}
++
++#ifdef CONFIG_PM
++static int s3c_i2s_v40_suspend(struct platform_device *dev,
++ struct snd_soc_cpu_dai *dai)
++{
++ s3cdbg("Entered %s\n", __FUNCTION__);
++ return 0;
++}
++
++static int s3c_i2s_v40_resume(struct platform_device *pdev,
++ struct snd_soc_cpu_dai *dai)
++{
++ s3cdbg("Entered %s\n", __FUNCTION__);
++ return 0;
++}
++
++#else
++#define s3c_i2s_v40_suspend NULL
++#define s3c_i2s_v40_resume NULL
++#endif
++
++
++#define S3C24XX_I2S_RATES \
++ (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | SNDRV_PCM_RATE_16000 | \
++ SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | \
++ SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000)
++
++struct snd_soc_cpu_dai s3c_i2s_v40_dai = {
++ .name = "s3c-i2s-v40",
++ .id = 0,
++ .type = SND_SOC_DAI_I2S,
++ .probe = s3c_i2s_v40_probe,
++ .suspend = s3c_i2s_v40_suspend,
++ .resume = s3c_i2s_v40_resume,
++ .playback = {
++ .channels_min = 2,
++ .channels_max = 6,
++ .rates = S3C24XX_I2S_RATES,
++ .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE | SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE,},
++ .capture = {
++ .channels_min = 2,
++ .channels_max = 2,
++ .rates = S3C24XX_I2S_RATES,
++ .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE | SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE,},
++ .ops = {
++ .shutdown = s3c64xx_i2s_shutdown,
++ .trigger = s3c_i2s_v40_trigger,
++ .hw_params = s3c_i2s_v40_hw_params,},
++ .dai_ops = {
++ .set_fmt = s3c_i2s_v40_set_fmt,
++ .set_clkdiv = s3c_i2s_v40_set_clkdiv,
++ .set_sysclk = s3c_i2s_v40_set_sysclk,
++ },
++};
++EXPORT_SYMBOL_GPL(s3c_i2s_v40_dai);
++
++/* Module information */
++MODULE_AUTHOR("Ben Dooks, <ben@simtec.co.uk>");
++MODULE_DESCRIPTION("s3c24xx I2S SoC Interface");
++MODULE_LICENSE("GPL");
+diff --git a/sound/soc/s3c64xx/s3c64xx-ac97.c b/sound/soc/s3c64xx/s3c64xx-ac97.c
+new file mode 100644
+index 0000000..c274b1c
+--- /dev/null
++++ b/sound/soc/s3c64xx/s3c64xx-ac97.c
+@@ -0,0 +1,487 @@
++/*
++ * s3c6400-ac97.c -- ALSA Soc Audio Layer
++ *
++ * Copyright (C) 2007, Ryu Euiyoul <ryu.real@gmail.com>
++ *
++ * (c) 2007 Wolfson Microelectronics PLC.
++ * Graeme Gregory graeme.gregory@wolfsonmicro.com or linux@wolfsonmicro.com
++ *
++ * Copyright (C) 2007, Ryu Euiyoul <ryu.real@gmail.com>
++ * All rights reserved.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * Revision history
++ * 21st Mar 2007 Initial Version
++ * 20th Sep 2007 Apply at s3c6400
++ */
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/platform_device.h>
++#include <linux/interrupt.h>
++#include <linux/wait.h>
++#include <linux/delay.h>
++#include <linux/clk.h>
++
++#include <sound/driver.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/ac97_codec.h>
++#include <sound/initval.h>
++#include <sound/soc.h>
++
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/plat-s3c/regs-ac97.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-s3c-clock.h>
++#include <asm/arch/audio.h>
++#include <asm/dma.h>
++#include <asm/arch/dma.h>
++
++#include "../s3c24xx/s3c-pcm.h"
++#include "s3c64xx-ac97.h"
++
++#ifdef CONFIG_SND_DEBUG
++#define s3cdbg(x...) printk(x)
++#else
++#define s3cdbg(x...)
++#endif
++
++extern struct clk *clk_get(struct device *dev, const char *id);
++extern int clk_enable(struct clk *clk);
++extern void clk_disable(struct clk *clk);
++
++struct s3c24xx_ac97_info {
++ void __iomem *regs;
++ struct clk *ac97_clk;
++};
++static struct s3c24xx_ac97_info s3c24xx_ac97;
++
++static u32 codec_ready;
++static DEFINE_MUTEX(ac97_mutex);
++static DECLARE_WAIT_QUEUE_HEAD(gsr_wq);
++
++static unsigned short s3c6400_ac97_read(struct snd_ac97 *ac97,
++ unsigned short reg)
++{
++ u32 ac_glbctrl;
++ u32 ac_codec_cmd;
++ u32 stat, addr, data;
++
++ s3cdbg("Entered %s: reg=0x%x\n", __FUNCTION__, reg);
++
++ mutex_lock(&ac97_mutex);
++
++ codec_ready = S3C_AC97_GLBSTAT_CODECREADY;
++ ac_codec_cmd = S3C_AC97_CODEC_CMD_READ | AC_CMD_ADDR(reg);
++ writel(ac_codec_cmd, s3c24xx_ac97.regs + S3C_AC97_CODEC_CMD);
++
++ udelay(1000);
++
++ ac_glbctrl = readl(s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ ac_glbctrl |= S3C_AC97_GLBCTRL_CODECREADYIE;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++
++ stat = readl(s3c24xx_ac97.regs + S3C_AC97_STAT);
++ addr = (stat >> 16) & 0x7f;
++ data = (stat & 0xffff);
++
++ wait_event_timeout(gsr_wq,addr==reg,1);
++ if(addr!=reg){
++ printk(KERN_ERR"AC97: read error (ac97_reg=%x addr=%x)\n", reg, addr);
++ printk(KERN_ERR"Check audio codec jumpper settings\n\n");
++ goto out;
++ }
++
++out: mutex_unlock(&ac97_mutex);
++ return (unsigned short)data;
++}
++
++static void s3c6400_ac97_write(struct snd_ac97 *ac97, unsigned short reg,
++ unsigned short val)
++{
++ u32 ac_glbctrl;
++ u32 ac_codec_cmd;
++ u32 stat, data;
++
++ s3cdbg("Entered %s: reg=0x%x, val=0x%x\n", __FUNCTION__,reg,val);
++
++ mutex_lock(&ac97_mutex);
++
++ codec_ready = S3C_AC97_GLBSTAT_CODECREADY;
++ ac_codec_cmd = AC_CMD_ADDR(reg) | AC_CMD_DATA(val);
++ writel(ac_codec_cmd, s3c24xx_ac97.regs + S3C_AC97_CODEC_CMD);
++
++ udelay(50);
++
++ ac_glbctrl = readl(s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ ac_glbctrl |= S3C_AC97_GLBCTRL_CODECREADYIE;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++
++ ac_codec_cmd |= S3C_AC97_CODEC_CMD_READ;
++ writel(ac_codec_cmd, s3c24xx_ac97.regs + S3C_AC97_CODEC_CMD);
++
++ stat = readl(s3c24xx_ac97.regs + S3C_AC97_CODEC_CMD);
++ data = (stat & 0xffff);
++
++ wait_event_timeout(gsr_wq,data==val,1);
++ if(data!=val){
++ printk("%s: write error (ac97_val=%x data=%x)\n",
++ __FUNCTION__, val, data);
++ }
++
++ mutex_unlock(&ac97_mutex);
++}
++
++static void s3c6400_ac97_warm_reset(struct snd_ac97 *ac97)
++{
++ u32 ac_glbctrl;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ ac_glbctrl = readl(s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ ac_glbctrl |= S3C_AC97_GLBCTRL_WARMRESET;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ msleep(1);
++
++ ac_glbctrl &= ~S3C_AC97_GLBCTRL_WARMRESET;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ msleep(1);
++
++ ac_glbctrl = S3C_AC97_GLBCTRL_ACLINKON;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ msleep(1);
++
++ ac_glbctrl = S3C_AC97_GLBCTRL_TRANSFERDATAENABLE;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ msleep(1);
++
++ ac_glbctrl |= S3C_AC97_GLBCTRL_PCMOUTTM_DMA |
++ S3C_AC97_GLBCTRL_PCMINTM_DMA | S3C_AC97_GLBCTRL_MICINTM_DMA;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++
++ ac_glbctrl = readl(s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ ac_glbctrl |= S3C_AC97_GLBCTRL_ACLINKON;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ udelay(1000);
++}
++
++static void s3c6400_ac97_cold_reset(struct snd_ac97 *ac97)
++{
++ u32 ac_glbctrl;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ ac_glbctrl = S3C_AC97_GLBCTRL_COLDRESET;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ msleep(1);
++
++ ac_glbctrl &= ~S3C_AC97_GLBCTRL_COLDRESET;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ msleep(1);
++
++ ac_glbctrl = S3C_AC97_GLBCTRL_COLDRESET;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ msleep(1);
++
++ ac_glbctrl &= ~S3C_AC97_GLBCTRL_COLDRESET;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ msleep(1);
++}
++
++static irqreturn_t s3c6400_ac97_irq(int irq, void *dev_id)
++{
++ int status;
++ u32 ac_glbctrl, ac_glbstat;
++
++ ac_glbstat = readl(s3c24xx_ac97.regs + S3C_AC97_GLBSTAT);
++
++ s3cdbg("Entered %s: AC_GLBSTAT = 0x%x\n", __FUNCTION__, ac_glbstat);
++
++ status = ac_glbstat & codec_ready;
++
++
++ if (status) {
++ ac_glbctrl = readl(s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ ac_glbctrl &= ~S3C_AC97_GLBCTRL_CODECREADYIE;
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ wake_up(&gsr_wq);
++ }
++ return IRQ_HANDLED;
++}
++
++struct snd_ac97_bus_ops soc_ac97_ops = {
++ .read = s3c6400_ac97_read,
++ .write = s3c6400_ac97_write,
++ .warm_reset = s3c6400_ac97_warm_reset,
++ .reset = s3c6400_ac97_cold_reset,
++};
++
++static struct s3c2410_dma_client s3c6400_dma_client_out = {
++ .name = "AC97 PCM Stereo out"
++};
++
++static struct s3c24xx_pcm_dma_params s3c6400_ac97_pcm_stereo_out = {
++ .client = &s3c6400_dma_client_out,
++ .channel = DMACH_AC97_PCM_OUT,
++ .dma_addr = S3C6400_PA_AC97 + S3C_AC97_PCM_DATA,
++ .dma_size = 4,
++};
++
++#ifdef CONFIG_SOUND_WM9713_INPUT_STREAM_MIC
++static struct s3c2410_dma_client s3c6400_dma_client_micin = {
++ .name = "AC97 Mic Mono in"
++};
++
++static struct s3c24xx_pcm_dma_params s3c6400_ac97_mic_mono_in = {
++ .client = &s3c6400_dma_client_micin,
++ .channel = DMACH_AC97_MIC_IN,
++ .dma_addr = S3C6400_PA_AC97 + S3C_AC97_MIC_DATA,
++ .dma_size = 4,
++};
++#else /* Input Stream is LINE-IN */
++static struct s3c2410_dma_client s3c6400_dma_client_in = {
++ .name = "AC97 PCM Stereo Line in"
++};
++
++static struct s3c24xx_pcm_dma_params s3c6400_ac97_pcm_stereo_in = {
++ .client = &s3c6400_dma_client_in,
++ .channel = DMACH_AC97_PCM_IN,
++ .dma_addr = S3C6400_PA_AC97 + S3C_AC97_PCM_DATA,
++ .dma_size = 4,
++};
++#endif
++
++static int s3c6400_ac97_probe(struct platform_device *pdev)
++{
++ int ret;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ s3c24xx_ac97.regs = ioremap(S3C6400_PA_AC97, 0x100);
++ if (s3c24xx_ac97.regs == NULL)
++ return -ENXIO;
++
++ s3c24xx_ac97.ac97_clk = clk_get(&pdev->dev, "ac97");
++ if (s3c24xx_ac97.ac97_clk == NULL) {
++ printk(KERN_ERR "s3c6400-ac97 failed to get ac97_clock\n");
++ iounmap(s3c24xx_ac97.regs);
++ return -ENODEV;
++ }
++ clk_enable(s3c24xx_ac97.ac97_clk);
++
++ s3c_gpio_cfgpin(S3C_GPD0,S3C_GPD0_AC97_BITCLK);
++ s3c_gpio_cfgpin(S3C_GPD1,S3C_GPD1_AC97_RESET);
++ s3c_gpio_cfgpin(S3C_GPD2,S3C_GPD2_AC97_SYNC);
++ s3c_gpio_cfgpin(S3C_GPD3,S3C_GPD3_AC97_SDI);
++ s3c_gpio_cfgpin(S3C_GPD4,S3C_GPD4_AC97_SDO);
++
++ s3c_gpio_pullup(S3C_GPD0,0);
++ s3c_gpio_pullup(S3C_GPD1,0);
++ s3c_gpio_pullup(S3C_GPD2,0);
++ s3c_gpio_pullup(S3C_GPD3,0);
++ s3c_gpio_pullup(S3C_GPD4,0);
++
++ ret = request_irq(IRQ_AC97, s3c6400_ac97_irq,
++ IRQF_DISABLED, "AC97", NULL);
++ if (ret < 0) {
++ printk(KERN_ERR "s3c24xx-ac97: interrupt request failed.\n");
++ clk_disable(s3c24xx_ac97.ac97_clk);
++ clk_put(s3c24xx_ac97.ac97_clk);
++ iounmap(s3c24xx_ac97.regs);
++ }
++
++ return ret;
++}
++
++static void s3c6400_ac97_remove(struct platform_device *pdev)
++{
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ free_irq(IRQ_AC97, NULL);
++ clk_disable(s3c24xx_ac97.ac97_clk);
++ clk_put(s3c24xx_ac97.ac97_clk);
++ iounmap(s3c24xx_ac97.regs);
++}
++
++static int s3c6400_ac97_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
++ cpu_dai->dma_data = &s3c6400_ac97_pcm_stereo_out;
++ else
++#ifdef CONFIG_SOUND_WM9713_INPUT_STREAM_MIC
++ cpu_dai->dma_data = &s3c6400_ac97_mic_mono_in;
++#else /* Input Stream is LINE-IN */
++ cpu_dai->dma_data = &s3c6400_ac97_pcm_stereo_in;
++#endif
++
++
++ return 0;
++}
++
++static int s3c6400_ac97_hifi_prepare(struct snd_pcm_substream *substream)
++{
++ /*
++ * To support full duplex
++ * Tested by cat /dev/dsp > /dev/dsp
++ */
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ s3c6400_ac97_write(0,0x26,0x0);
++ s3c6400_ac97_write(0, 0x0c, 0x0808);
++ s3c6400_ac97_write(0,0x3c, 0xf803);
++ s3c6400_ac97_write(0,0x3e,0xb990);
++
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
++ s3c6400_ac97_write(0,0x02, 0x8080);
++ s3c6400_ac97_write(0, 0x04, 0x0606);
++ s3c6400_ac97_write(0,0x1c, 0x00aa);
++ }
++ else
++ {
++ s3c6400_ac97_write(0, 0x12, 0x0f0f);
++#ifdef CONFIG_SOUND_WM9713_INPUT_STREAM_MIC
++ s3c6400_ac97_write(0,0x5c,0x2);
++ s3c6400_ac97_write(0,0x10,0x68);
++ s3c6400_ac97_write(0,0x14,0xfe00);
++#else /* Input Stream is LINE-IN */
++ s3c6400_ac97_write(0, 0x14, 0xd612);
++#endif
++ }
++
++ return 0;
++}
++
++
++static int s3c6400_ac97_trigger(struct snd_pcm_substream *substream, int cmd)
++{
++ u32 ac_glbctrl;
++
++ s3cdbg("Entered %s: cmd = %d\n", __FUNCTION__, cmd);
++
++ ac_glbctrl = readl(s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ switch(cmd) {
++ case SNDRV_PCM_TRIGGER_START:
++ case SNDRV_PCM_TRIGGER_RESUME:
++ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
++ if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ ac_glbctrl |= S3C_AC97_GLBCTRL_PCMINTM_DMA;
++ else
++ ac_glbctrl |= S3C_AC97_GLBCTRL_PCMOUTTM_DMA;
++ break;
++ case SNDRV_PCM_TRIGGER_STOP:
++ case SNDRV_PCM_TRIGGER_SUSPEND:
++ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
++ if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ ac_glbctrl &= ~S3C_AC97_GLBCTRL_PCMINTM_MASK;
++ else
++ ac_glbctrl &= ~S3C_AC97_GLBCTRL_PCMOUTTM_MASK;
++ break;
++ }
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++
++ return 0;
++}
++
++#if 0
++static int s3c6400_ac97_hw_mic_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai;
++
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
++ return -ENODEV;
++ else
++ cpu_dai->dma_data = &s3c6400_ac97_mic_mono_in;
++
++ return 0;
++}
++
++static int s3c6400_ac97_mic_trigger(struct snd_pcm_substream *substream,
++ int cmd)
++{
++ u32 ac_glbctrl;
++
++ s3cdbg("Entered %s\n", __FUNCTION__);
++
++ ac_glbctrl = readl(s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++ switch(cmd) {
++ case SNDRV_PCM_TRIGGER_START:
++ case SNDRV_PCM_TRIGGER_RESUME:
++ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
++ ac_glbctrl |= S3C_AC97_GLBCTRL_PCMINTM_DMA;
++ break;
++ case SNDRV_PCM_TRIGGER_STOP:
++ case SNDRV_PCM_TRIGGER_SUSPEND:
++ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
++ ac_glbctrl &= ~S3C_AC97_GLBCTRL_PCMINTM_MASK;
++ }
++ writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
++
++ return 0;
++}
++#endif
++
++#define s3c6400_AC97_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |\
++ SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 | \
++ SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000)
++
++struct snd_soc_cpu_dai s3c6400_ac97_dai[] = {
++{
++ .name = "s3c64xx-ac97",
++ .id = 0,
++ .type = SND_SOC_DAI_AC97,
++ .probe = s3c6400_ac97_probe,
++ .remove = s3c6400_ac97_remove,
++ .playback = {
++ .stream_name = "AC97 Playback",
++ .channels_min = 2,
++ .channels_max = 2,
++ .rates = s3c6400_AC97_RATES,
++ .formats = SNDRV_PCM_FMTBIT_S16_LE,},
++ .capture = {
++ .stream_name = "AC97 Capture",
++ .channels_min = 2,
++ .channels_max = 2,
++ .rates = s3c6400_AC97_RATES,
++ .formats = SNDRV_PCM_FMTBIT_S16_LE,},
++ .ops = {
++ .hw_params = s3c6400_ac97_hw_params,
++ .prepare = s3c6400_ac97_hifi_prepare,
++ .trigger = s3c6400_ac97_trigger},
++},
++#if 0
++{
++ .name = "s3c6400-ac97-mic",
++ .id = 1,
++ .type = SND_SOC_DAI_AC97,
++ .capture = {
++ .stream_name = "AC97 Mic Capture",
++ .channels_min = 1,
++ .channels_max = 1,
++ .rates = s3c6400_AC97_RATES,
++ .formats = SNDRV_PCM_FMTBIT_S16_LE,},
++ .ops = {
++ .hw_params = s3c6400_ac97_hw_mic_params,
++ .trigger = s3c6400_ac97_mic_trigger,},
++},
++#endif
++};
++
++EXPORT_SYMBOL_GPL(s3c6400_ac97_dai);
++EXPORT_SYMBOL_GPL(soc_ac97_ops);
++
++MODULE_AUTHOR("Ryu Euiyoul");
++MODULE_DESCRIPTION("AC97 driver for the Samsung s3c6400 chip");
++MODULE_LICENSE("GPL");
+diff --git a/sound/soc/s3c64xx/s3c64xx-ac97.h b/sound/soc/s3c64xx/s3c64xx-ac97.h
+new file mode 100644
+index 0000000..9cc4ca9
+--- /dev/null
++++ b/sound/soc/s3c64xx/s3c64xx-ac97.h
+@@ -0,0 +1,25 @@
++/*
++ * s3c24xx-ac97.c -- ALSA Soc Audio Layer
++ *
++ * (c) 2007 Wolfson Microelectronics PLC.
++ * Author: Graeme Gregory
++ * graeme.gregory@wolfsonmicro.com or linux@wolfsonmicro.com
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * Revision history
++ * 10th Nov 2006 Initial version.
++ */
++
++#ifndef S3C6400AC97_H_
++#define S3C6400AC97_H_
++
++#define AC_CMD_ADDR(x) (x << 16)
++#define AC_CMD_DATA(x) (x & 0xffff)
++
++extern struct snd_soc_cpu_dai s3c6400_ac97_dai[];
++
++#endif /*S3C6400AC97_H_*/
+diff --git a/sound/soc/s3c64xx/smdk6400_wm8753.c b/sound/soc/s3c64xx/smdk6400_wm8753.c
+new file mode 100644
+index 0000000..da26913
+--- /dev/null
++++ b/sound/soc/s3c64xx/smdk6400_wm8753.c
+@@ -0,0 +1,436 @@
++/*
++ * smdk6400_wm8753.c -- SoC audio for Neo1973
++ *
++ * Copyright 2007 Wolfson Microelectronics PLC.
++ * Author: Graeme Gregory
++ * graeme.gregory@wolfsonmicro.com or linux@wolfsonmicro.com
++ *
++ * Copyright (C) 2007, Ryu Euiyoul <ryu.real@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * Revision history
++ * 20th Jan 2007 Initial version.
++ * 05th Feb 2007 Rename all to Neo1973
++ *
++ */
++
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/timer.h>
++#include <linux/interrupt.h>
++#include <linux/platform_device.h>
++#include <linux/i2c.h>
++#include <sound/driver.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++
++#include <asm/mach-types.h>
++#include <asm/hardware/scoop.h>
++#include <asm/arch/regs-iis.h>
++
++#include <asm/arch/regs-gpio.h>
++#include <asm/hardware.h>
++#include <asm/arch/audio.h>
++#include <asm/io.h>
++#include <asm/arch/spi-gpio.h>
++#include <asm/arch/regs-s3c-clock.h>
++
++#include "../codecs/wm8753.h"
++#include "s3c-pcm.h"
++#include "s3c-i2s.h"
++
++/* define the scenarios */
++#define SMDK6400_AUDIO_OFF 0
++#define SMDK6400_CAPTURE_MIC1 3
++#define SMDK6400_STEREO_TO_HEADPHONES 2
++#define SMDK6400_CAPTURE_LINE_IN 1
++
++#ifdef CONFIG_SND_DEBUG
++#define s3cdbg(x...) printk(x)
++#else
++#define s3cdbg(x...)
++#endif
++
++static int smdk6400_hifi_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai;
++ struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai;
++ unsigned int pll_out = 0, bclk = 0;
++ int ret = 0;
++ unsigned int iispsr, iismod;
++ unsigned int prescaler = 4;
++
++ s3cdbg("Entered %s, rate = %d\n", __FUNCTION__, params_rate(params));
++
++ /*PCLK & SCLK gating enable*/
++ writel(readl(S3C_PCLK_GATE)|S3C_CLKCON_PCLK_IIS0, S3C_PCLK_GATE);
++ writel(readl(S3C_SCLK_GATE)|S3C_CLKCON_SCLK_AUDIO0, S3C_SCLK_GATE);
++
++ iismod = readl(S3C_IIS0MOD);
++ iismod &=~(0x3<<3);
++
++ /*Clear I2S prescaler value [13:8] and disable prescaler*/
++ iispsr = readl(S3C_IIS0PSR);
++ iispsr &=~((0x3f<<8)|(1<<15));
++ writel(iispsr, S3C_IIS0PSR);
++
++ s3cdbg("%s: %d , params = %d \n", __FUNCTION__, __LINE__, params_rate(params));
++
++ switch (params_rate(params)) {
++ case 16000:
++ case 32000:
++ writel(0, S3C_EPLL_CON1);
++ writel((1<<31)|(128<<16)|(25<<8)|(0<<0) ,S3C_EPLL_CON0);
++ break;
++ //case 8000:
++ // prescaler = 0xe;
++ case 48000:
++ writel(0, S3C_EPLL_CON1);
++ writel((1<<31)|(192<<16)|(25<<8)|(0<<0) ,S3C_EPLL_CON0);
++ break;
++ case 11025:
++ prescaler = 9;
++ case 8000:
++ case 22050:
++ case 44100:
++ writel(0, S3C_EPLL_CON1);
++ writel((1<<31)|(254<<16)|(9<<8)|(2<<0) ,S3C_EPLL_CON0);
++ break;
++ default:
++ /* somtimes 32000 rate comes to 96000
++ default values are same as 32000 */
++ writel(0, S3C_EPLL_CON1);
++ writel((1<<31)|(128<<16)|(25<<8)|(0<<0) ,S3C_EPLL_CON0);
++
++ /* for 96000 rate : error 0.3%
++ * prescaler = 1;
++ * writel((1<<31)|(154<<16)|(25<<8)|(0<<0) ,S3C_EPLL_CON0);
++ */
++ break;
++ }
++
++ s3cdbg("%s, IISCON: %x IISMOD: %x,IISFIC: %x,IISPSR: %x",
++ __FUNCTION__ , readl(S3C_IIS0CON), readl(S3C_IIS0MOD),
++ readl(S3C_IIS0FIC), readl(S3C_IIS0PSR));
++
++ while(!(__raw_readl(S3C_EPLL_CON0)&(1<<30)));
++
++ /* MUXepll : FOUTepll */
++ writel(readl(S3C_CLK_SRC)|S3C_CLKSRC_EPLL_CLKSEL, S3C_CLK_SRC);
++ /* AUDIO0 sel : FOUTepll */
++ writel((readl(S3C_CLK_SRC)&~(0x7<<7))|(0<<7), S3C_CLK_SRC);
++
++ /* CLK_DIV2 setting */
++ writel(0x0,S3C_CLK_DIV2);
++
++ switch (params_rate(params)) {
++// case 8000:
++// iismod |= S3C_IIS0MOD_768FS;
++// pll_out = 12288000;
++// break;
++ case 11025:
++ iismod |= S3C_IIS0MOD_768FS;
++ bclk = WM8753_BCLK_DIV_16;
++ pll_out = 16934400;
++ break;
++ case 16000:
++ iismod |= S3C_IIS0MOD_768FS;
++ bclk = WM8753_BCLK_DIV_2;
++ pll_out = 12288000;
++ break;
++ case 22050:
++ iismod |= S3C_IIS0MOD_768FS;
++ bclk = WM8753_BCLK_DIV_8;
++ pll_out = 16934400;
++ break;
++ case 32000:
++ iismod |= S3C_IIS0MOD_384FS;
++ bclk = WM8753_BCLK_DIV_2;
++ pll_out = 12288000;
++ break;
++ case 44100:
++ case 8000:
++ iismod |= S3C_IIS0MOD_384FS;
++ bclk = WM8753_BCLK_DIV_4;
++ pll_out = 16934400;
++ break;
++ case 48000:
++ iismod |= S3C_IIS0MOD_384FS;
++ bclk = WM8753_BCLK_DIV_4;
++ pll_out = 18432000;
++ break;
++ default:
++ /* somtimes 32000 rate comes to 96000
++ default values are same as 32000 */
++ iismod |= S3C_IIS0MOD_384FS;
++ bclk = WM8753_BCLK_DIV_2;
++ pll_out = 12288000;
++ break;
++ }
++
++ writel(iismod , S3C_IIS0MOD);
++
++ /* set codec DAI configuration */
++ ret = codec_dai->dai_ops.set_fmt(codec_dai,
++ SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
++ SND_SOC_DAIFMT_CBS_CFS );
++ if (ret < 0)
++ return ret;
++
++ /* set cpu DAI configuration */
++ ret = cpu_dai->dai_ops.set_fmt(cpu_dai,
++ SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
++ SND_SOC_DAIFMT_CBS_CFS );
++ if (ret < 0)
++ return ret;
++
++ /* set the codec system clock for DAC and ADC */
++ ret = codec_dai->dai_ops.set_sysclk(codec_dai, WM8753_MCLK, pll_out,
++ SND_SOC_CLOCK_IN);
++ if (ret < 0)
++ return ret;
++
++ /* set MCLK division for sample rate */
++ ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_MCLK,
++ S3C2410_IISMOD_32FS );
++ if (ret < 0)
++ return ret;
++
++ /* set codec BCLK division for sample rate */
++ ret = codec_dai->dai_ops.set_clkdiv(codec_dai, WM8753_BCLKDIV, bclk);
++ if (ret < 0)
++ return ret;
++
++ /* set prescaler division for sample rate */
++ ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_PRESCALER,
++ (prescaler << 0x8));
++ if (ret < 0)
++ return ret;
++
++ return 0;
++}
++
++static int smdk6400_hifi_hw_free(struct snd_pcm_substream *substream)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai;
++
++ /* disable the PLL */
++ return codec_dai->dai_ops.set_pll(codec_dai, WM8753_PLL1, 0, 0);
++}
++
++/*
++ * Neo1973 WM8753 HiFi DAI opserations.
++ */
++static struct snd_soc_ops smdk6400_hifi_ops = {
++ .hw_params = smdk6400_hifi_hw_params,
++ .hw_free = smdk6400_hifi_hw_free,
++};
++
++static int smdk6400_scenario = 0;
++
++static int smdk6400_get_scenario(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ ucontrol->value.integer.value[0] = smdk6400_scenario;
++ return 0;
++}
++
++static int set_scenario_endpoints(struct snd_soc_codec *codec, int scenario)
++{
++ switch(smdk6400_scenario) {
++ case SMDK6400_AUDIO_OFF:
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 0);
++ snd_soc_dapm_set_endpoint(codec, "Mic1 Jack", 0);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 0);
++ break;
++ case SMDK6400_STEREO_TO_HEADPHONES:
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Mic1 Jack", 0);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 0);
++ break;
++ case SMDK6400_CAPTURE_MIC1:
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 0);
++ snd_soc_dapm_set_endpoint(codec, "Mic1 Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 0);
++ break;
++ case SMDK6400_CAPTURE_LINE_IN:
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 0);
++ snd_soc_dapm_set_endpoint(codec, "Mic1 Jack", 0);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 1);
++ break;
++ default:
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Mic1 Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 1);
++ break;
++ }
++
++ snd_soc_dapm_sync_endpoints(codec);
++
++ return 0;
++}
++
++static int smdk6400_set_scenario(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
++
++ if (smdk6400_scenario == ucontrol->value.integer.value[0])
++ return 0;
++
++ smdk6400_scenario = ucontrol->value.integer.value[0];
++ set_scenario_endpoints(codec, smdk6400_scenario);
++ return 1;
++}
++
++static const struct snd_soc_dapm_widget wm8753_dapm_widgets[] = {
++ SND_SOC_DAPM_HP("Headphone Jack", NULL),
++ SND_SOC_DAPM_MIC("Mic1 Jack", NULL),
++ SND_SOC_DAPM_LINE("Line In Jack", NULL),
++};
++
++
++/* example machine audio_mapnections */
++static const char* audio_map[][3] = {
++
++ {"Headphone Jack", NULL, "LOUT1"},
++ {"Headphone Jack", NULL, "ROUT1"},
++
++ /* mic is connected to mic1 - with bias */
++ /* mic is connected to mic1 - with bias */
++ {"MIC1", NULL, "Mic1 Jack"},
++
++ {"LINE1", NULL, "Line In Jack"},
++ {"LINE2", NULL, "Line In Jack"},
++
++ /* Connect the ALC pins */
++ {"ACIN", NULL, "ACOP"},
++
++ {NULL, NULL, NULL},
++};
++
++static const char *smdk_scenarios[] = {
++ "Off",
++ "Capture Line In",
++ "Headphones",
++ "Capture Mic1",
++};
++
++static const struct soc_enum smdk_scenario_enum[] = {
++ SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(smdk_scenarios),smdk_scenarios),
++};
++
++static const struct snd_kcontrol_new wm8753_smdk6400_controls[] = {
++ SOC_ENUM_EXT("SMDK Mode", smdk_scenario_enum[0],
++ smdk6400_get_scenario, smdk6400_set_scenario),
++};
++
++/*
++ * This is an example machine initialisation for a wm8753 connected to a
++ * smdk6400. It is missing logic to detect hp/mic insertions and logic
++ * to re-route the audio in such an event.
++ */
++static int smdk6400_wm8753_init(struct snd_soc_codec *codec)
++{
++ int i, err;
++
++ /* set endpoints to default mode */
++ set_scenario_endpoints(codec, SMDK6400_AUDIO_OFF);
++
++ /* Add smdk6400 specific widgets */
++ for (i = 0; i < ARRAY_SIZE(wm8753_dapm_widgets); i++)
++ snd_soc_dapm_new_control(codec, &wm8753_dapm_widgets[i]);
++
++ /* add smdk6400 specific controls */
++ for (i = 0; i < ARRAY_SIZE(wm8753_smdk6400_controls); i++) {
++ err = snd_ctl_add(codec->card,
++ snd_soc_cnew(&wm8753_smdk6400_controls[i],
++ codec, NULL));
++ if (err < 0)
++ return err;
++ }
++
++ /* set up smdk6400 specific audio path audio_mapnects */
++ for (i = 0; audio_map[i][0] != NULL; i++) {
++ snd_soc_dapm_connect_input(codec, audio_map[i][0],
++ audio_map[i][1], audio_map[i][2]);
++ }
++
++ /* always connected */
++ snd_soc_dapm_set_endpoint(codec, "Mic1 Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 1);
++
++ snd_soc_dapm_sync_endpoints(codec);
++ return 0;
++}
++
++static struct snd_soc_dai_link smdk6400_dai[] = {
++{ /* Hifi Playback - for similatious use with voice below */
++ .name = "WM8753",
++ .stream_name = "WM8753 HiFi",
++ .cpu_dai = &s3c_i2s_dai,
++ .codec_dai = &wm8753_dai[WM8753_DAI_HIFI],
++ .init = smdk6400_wm8753_init,
++ .ops = &smdk6400_hifi_ops,
++},
++};
++
++static struct snd_soc_machine smdk6400 = {
++ .name = "smdk6400",
++ .dai_link = smdk6400_dai,
++ .num_links = ARRAY_SIZE(smdk6400_dai),
++};
++
++static struct wm8753_setup_data smdk6400_wm8753_setup = {
++ .i2c_address = 0x1a,
++};
++
++static struct snd_soc_device smdk6400_snd_devdata = {
++ .machine = &smdk6400,
++ .platform = &s3c24xx_soc_platform,
++ .codec_dev = &soc_codec_dev_wm8753,
++ .codec_data = &smdk6400_wm8753_setup,
++};
++
++static struct platform_device *smdk6400_snd_device;
++
++static int __init smdk6400_init(void)
++{
++ int ret;
++
++ smdk6400_snd_device = platform_device_alloc("soc-audio", -1);
++ if (!smdk6400_snd_device)
++ return -ENOMEM;
++
++ platform_set_drvdata(smdk6400_snd_device, &smdk6400_snd_devdata);
++ smdk6400_snd_devdata.dev = &smdk6400_snd_device->dev;
++ ret = platform_device_add(smdk6400_snd_device);
++
++ if (ret)
++ platform_device_put(smdk6400_snd_device);
++
++ return ret;
++}
++
++static void __exit smdk6400_exit(void)
++{
++ platform_device_unregister(smdk6400_snd_device);
++}
++
++module_init(smdk6400_init);
++module_exit(smdk6400_exit);
++
++/* Module information */
++MODULE_AUTHOR("Ryu Euiyoul");
++MODULE_DESCRIPTION("ALSA SoC WM8753 Neo1973");
++MODULE_LICENSE("GPL");
+diff --git a/sound/soc/s3c64xx/smdk6410_wm8580.c b/sound/soc/s3c64xx/smdk6410_wm8580.c
+new file mode 100644
+index 0000000..9b78cfe
+--- /dev/null
++++ b/sound/soc/s3c64xx/smdk6410_wm8580.c
+@@ -0,0 +1,365 @@
++/*
++ * smdk6400_wm8580.c
++ *
++ * Copyright 2007, 2008 Wolfson Microelectronics PLC.
++ *
++ * Copyright (C) 2007, Ryu Euiyoul <ryu.real@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ */
++
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/timer.h>
++#include <linux/interrupt.h>
++#include <linux/platform_device.h>
++#include <linux/i2c.h>
++#include <sound/driver.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/pcm_params.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++
++#include <asm/mach-types.h>
++#include <asm-arm/plat-s3c64xx/regs-iis.h>
++
++#include <asm/arch/regs-gpio.h>
++#include <asm/hardware.h>
++#include <asm/arch/audio.h>
++#include <asm/io.h>
++#include <asm/arch/spi-gpio.h>
++#include <asm-arm/arch-s3c2410/regs-s3c-clock.h>
++
++#include "../codecs/wm8580.h"
++#include "../s3c24xx/s3c-pcm.h"
++#include "../s3c24xx/s3c-i2s.h"
++
++#ifdef CONFIG_SND_DEBUG
++#define s3cdbg(x...) printk(x)
++#else
++#define s3cdbg(x...)
++#endif
++
++static int smdk6410_hifi_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ //struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai;
++ struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai;
++ unsigned int pll_out = 0; /*bclk = 0; */
++ int ret = 0;
++ unsigned int prescaler;
++
++ s3cdbg("Entered %s, rate = %d\n", __FUNCTION__, params_rate(params));
++
++ /*PCLK & SCLK gating enable*/
++ writel(readl(S3C_PCLK_GATE)|S3C_CLKCON_PCLK_IIS2, S3C_PCLK_GATE);
++ writel(readl(S3C_SCLK_GATE)|S3C_CLKCON_SCLK_AUDIO0, S3C_SCLK_GATE);
++
++ /*Clear I2S prescaler value [13:8] and disable prescaler*/
++ /* set prescaler division for sample rate */
++ ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_PRESCALER, 0);
++ if (ret < 0)
++ return ret;
++
++ s3cdbg("%s: %d , params = %d\n", __FUNCTION__, __LINE__, params_rate(params));
++
++ switch (params_rate(params)) {
++ case 8000:
++ case 16000:
++ case 32000:
++ case 64100:
++ writel(50332, S3C_EPLL_CON1);
++ writel((1<<31)|(32<<16)|(1<<8)|(3<<0) ,S3C_EPLL_CON0);
++ break;
++ case 11025:
++ case 22050:
++ case 44100:
++ case 88200:
++ /* K=10398, M=45, P=1, S=3 -- Fout=67.738 */
++ writel(10398, S3C_EPLL_CON1);
++ writel((1<<31)|(45<<16)|(1<<8)|(3<<0) ,S3C_EPLL_CON0);
++ break;
++ case 48000:
++ case 96000:
++ /* K=9961, M=49, P=1, S=3 -- Fin=12, Fout=73.728; r=1536 */
++ writel(9961, S3C_EPLL_CON1);
++ writel((1<<31)|(49<<16)|(1<<8)|(3<<0) ,S3C_EPLL_CON0);
++ break;
++ default:
++ writel(0, S3C_EPLL_CON1);
++ writel((1<<31)|(128<<16)|(25<<8)|(0<<0) ,S3C_EPLL_CON0);
++ break;
++ }
++
++ while(!(__raw_readl(S3C_EPLL_CON0)&(1<<30)));
++
++ /* MUXepll : FOUTepll */
++ writel(readl(S3C_CLK_SRC)|S3C_CLKSRC_EPLL_CLKSEL, S3C_CLK_SRC);
++
++ /* AUDIO2 sel : FOUTepll */
++ writel((readl(S3C_CLK_SRC2)&~(0x7<<0))|(0<<0), S3C_CLK_SRC2);
++
++ /* CLK_DIV2 setting */
++ writel(0x0,S3C_CLK_DIV2);
++
++ switch (params_rate(params)) {
++ case 8000:
++ pll_out = 2048000;
++ prescaler = 8;
++ break;
++ case 11025:
++ pll_out = 2822400;
++ prescaler = 8;
++ break;
++ case 16000:
++ pll_out = 4096000;
++ prescaler = 4;
++ break;
++ case 22050:
++ pll_out = 5644800;
++ prescaler = 4;
++ break;
++ case 32000:
++ pll_out = 8192000;
++ prescaler = 2;
++ break;
++ case 44100:
++ /* Fout=73.728 */
++ pll_out = 11289600;
++ prescaler = 2;
++ break;
++ case 48000:
++ /* Fout=67.738 */
++ pll_out = 12288000;
++ prescaler = 2;
++ break;
++ case 88200:
++ pll_out = 22579200;
++ prescaler = 1;
++ break;
++ case 96000:
++ pll_out = 24576000;
++ prescaler = 1;
++ break;
++ default:
++ /* somtimes 32000 rate comes to 96000
++ default values are same as 32000 */
++ prescaler = 4;
++ pll_out = 12288000;
++ break;
++ }
++
++ /* set MCLK division for sample rate */
++ switch (params_format(params)) {
++ case SNDRV_PCM_FORMAT_S8:
++ case SNDRV_PCM_FORMAT_S16_LE:
++ prescaler *= 3;
++ break;
++ case SNDRV_PCM_FORMAT_S24_3LE:
++ prescaler *= 2;
++ break;
++ case SNDRV_PCM_FORMAT_S24_LE:
++ prescaler *= 2;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ prescaler = prescaler - 1;
++
++#if 0
++ /* set codec DAI configuration */
++ ret = codec_dai->dai_ops.set_fmt(codec_dai,
++ SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
++ SND_SOC_DAIFMT_CBS_CFS);
++ if (ret < 0)
++ return ret;
++#endif
++
++ /* set cpu DAI configuration */
++ ret = cpu_dai->dai_ops.set_fmt(cpu_dai,
++ SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
++ SND_SOC_DAIFMT_CBS_CFS);
++ if (ret < 0)
++ return ret;
++
++#if 0
++ ret = codec_dai->dai_ops.set_clkdiv(codec_dai, WM8580_DAC_CLKSEL,
++ WM8580_CLKSRC_MCLK);
++ if (ret < 0)
++ return ret;
++#endif
++
++ ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_BCLK,
++ S3C64XX_IIS0MOD_256FS);
++ if (ret < 0)
++ return ret;
++
++ /* set prescaler division for sample rate */
++ ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_PRESCALER,
++ (prescaler << 0x8));
++ if (ret < 0)
++ return ret;
++
++ return 0;
++}
++
++/*
++ * WM8580 HiFi DAI opserations.
++ */
++static struct snd_soc_ops smdk6410_hifi_ops = {
++ .hw_params = smdk6410_hifi_hw_params,
++};
++
++static const struct snd_soc_dapm_widget wm8580_dapm_widgets[] = {
++ SND_SOC_DAPM_LINE("I2S Front Jack", NULL),
++ SND_SOC_DAPM_LINE("I2S Center Jack", NULL),
++ SND_SOC_DAPM_LINE("I2S Rear Jack", NULL),
++ SND_SOC_DAPM_LINE("Line In Jack", NULL),
++};
++
++/* example machine audio_mapnections */
++static const char* audio_map[][3] = {
++
++ { "I2S Front Jack", NULL, "VOUT1L" },
++ { "I2S Front Jack", NULL, "VOUT1R" },
++
++ { "I2S Center Jack", NULL, "VOUT2L" },
++ { "I2S Center Jack", NULL, "VOUT2R" },
++
++ { "I2S Rear Jack", NULL, "VOUT3L" },
++ { "I2S Rear Jack", NULL, "VOUT3R" },
++
++ { "AINL", NULL, "Line In Jack" },
++ { "AINR", NULL, "Line In Jack" },
++
++ {NULL, NULL, NULL},
++};
++
++static int smdk6410_wm8580_init(struct snd_soc_codec *codec)
++{
++ int i;
++
++ /* Add smdk6410 specific widgets */
++ for (i = 0; i < ARRAY_SIZE(wm8580_dapm_widgets); i++)
++ snd_soc_dapm_new_control(codec, &wm8580_dapm_widgets[i]);
++
++ /* set up smdk6410 specific audio paths */
++ for (i = 0; audio_map[i][0] != NULL; i++) {
++ snd_soc_dapm_connect_input(codec, audio_map[i][0],
++ audio_map[i][1], audio_map[i][2]);
++ }
++
++ /* No jack detect - mark all jacks as enabled */
++ for (i = 0; i < ARRAY_SIZE(wm8580_dapm_widgets); i++)
++ snd_soc_dapm_set_endpoint(codec,
++ wm8580_dapm_widgets[i].name, 1);
++
++ snd_soc_dapm_sync_endpoints(codec);
++
++ return 0;
++}
++
++static struct snd_soc_dai_link smdk6410_dai[] = {
++{
++ .name = "WM8580",
++ .stream_name = "WM8580 HiFi Playback",
++ .cpu_dai = &s3c_i2s_v40_dai,
++ .codec_dai = &wm8580_dai[WM8580_DAI_PAIFRX],
++ .init = smdk6410_wm8580_init,
++ .ops = &smdk6410_hifi_ops,
++},
++#if 0
++{
++ .name = "WM8580",
++ .stream_name = "WM8580 HiFi Capture",
++ .cpu_dai = &s3c_i2s_v40_dai,
++ .codec_dai = &wm8580_dai[WM8580_DAI_PAIFTX],
++ .init = smdk6410_wm8580_init,
++ .ops = &smdk6410_hifi_ops,
++},
++#endif
++};
++
++static struct snd_soc_machine smdk6410 = {
++ .name = "smdk6410",
++ .dai_link = smdk6410_dai,
++ .num_links = ARRAY_SIZE(smdk6410_dai),
++};
++
++static struct wm8580_setup_data smdk6410_wm8580_setup = {
++ .i2c_address = 0x1b,
++};
++
++static struct snd_soc_device smdk6410_snd_devdata = {
++ .machine = &smdk6410,
++ .platform = &s3c24xx_soc_platform,
++ .codec_dev = &soc_codec_dev_wm8580,
++ .codec_data = &smdk6410_wm8580_setup,
++};
++
++static struct platform_device *smdk6410_snd_device;
++
++static int __init smdk6410_init(void)
++{
++ int ret;
++
++#if 0
++ /* Set up GPIOs to enable I2SV40 pin */
++ s3c_gpio_cfgpin(S3C_GPC4, S3C_GPC4_I2S_V40_DO0);
++ s3c_gpio_cfgpin(S3C_GPC5, S3C_GPC5_I2S_V40_DO1);
++ s3c_gpio_cfgpin(S3C_GPC7, S3C_GPC7_I2S_V40_DO2);
++ s3c_gpio_cfgpin(S3C_GPH6, S3C_GPH6_I2S_V40_BCLK);
++ s3c_gpio_cfgpin(S3C_GPH7, S3C_GPH7_I2S_V40_CDCLK);
++ s3c_gpio_cfgpin(S3C_GPH8, S3C_GPH8_I2S_V40_LRCLK);
++ s3c_gpio_cfgpin(S3C_GPH9, S3C_GPH9_I2S_V40_DI);
++#endif
++
++ s3c_gpio_cfgpin(S3C_GPH6, S3C_GPH6_I2S_V40_BCLK);
++ s3c_gpio_cfgpin(S3C_GPH7, S3C_GPH7_I2S_V40_CDCLK);
++ s3c_gpio_cfgpin(S3C_GPH8, S3C_GPH8_I2S_V40_LRCLK);
++ s3c_gpio_cfgpin(S3C_GPH9, S3C_GPH9_I2S_V40_DI);
++ s3c_gpio_cfgpin(S3C_GPC4, S3C_GPC4_I2S_V40_DO0);
++ s3c_gpio_cfgpin(S3C_GPC5, S3C_GPC5_I2S_V40_DO1);
++ s3c_gpio_cfgpin(S3C_GPC7, S3C_GPC7_I2S_V40_DO2);
++
++ /* pull-up-enable, pull-down-disable*/
++ s3c_gpio_pullup(S3C_GPH6, 0x2);
++ s3c_gpio_pullup(S3C_GPH7, 0x2);
++ s3c_gpio_pullup(S3C_GPH8, 0x2);
++ s3c_gpio_pullup(S3C_GPH9, 0x2);
++ s3c_gpio_pullup(S3C_GPC4, 0x2);
++ s3c_gpio_pullup(S3C_GPC5, 0x2);
++ s3c_gpio_pullup(S3C_GPC7, 0x2);
++
++ smdk6410_snd_device = platform_device_alloc("soc-audio", -1);
++ if (!smdk6410_snd_device)
++ return -ENOMEM;
++
++ platform_set_drvdata(smdk6410_snd_device, &smdk6410_snd_devdata);
++ smdk6410_snd_devdata.dev = &smdk6410_snd_device->dev;
++ ret = platform_device_add(smdk6410_snd_device);
++
++ if (ret)
++ platform_device_put(smdk6410_snd_device);
++
++ return ret;
++}
++
++static void __exit smdk6410_exit(void)
++{
++ platform_device_unregister(smdk6410_snd_device);
++}
++
++module_init(smdk6410_init);
++module_exit(smdk6410_exit);
++
++/* Module information */
++MODULE_AUTHOR("Mark Brown");
++MODULE_DESCRIPTION("ALSA SoC SMDK6410 WM8580");
++MODULE_LICENSE("GPL");
+diff --git a/sound/soc/s3c64xx/smdk6410_wm8990.c b/sound/soc/s3c64xx/smdk6410_wm8990.c
+new file mode 100644
+index 0000000..0d75100
+--- /dev/null
++++ b/sound/soc/s3c64xx/smdk6410_wm8990.c
+@@ -0,0 +1,439 @@
++/*
++* smdk6410_wm8990.c -- SoC audio for SMDK6410 with WM8990
++ *
++ * Copyright 2007, 2008 Wolfson Microelectronics PLC.
++ * Author: Liam Girdwood
++ * lg@opensource.wolfsonmicro.com or linux@wolfsonmicro.com
++ *
++ * Copyright (C) 2007, Ryu Euiyoul <ryu.real@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * Revision history
++ * 28th Feb 2008 Initial version.
++ *
++ */
++
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/timer.h>
++#include <linux/interrupt.h>
++#include <linux/platform_device.h>
++#include <linux/i2c.h>
++#include <sound/driver.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/pcm_params.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++
++#include <asm/mach-types.h>
++#include <asm/hardware/scoop.h>
++#include <asm-arm/plat-s3c64xx/regs-iis.h>
++//#include <asm/arch/regs-iis.h>
++
++#include <asm/arch/regs-gpio.h>
++#include <asm/hardware.h>
++#include <asm/arch/audio.h>
++#include <asm/io.h>
++#include <asm/arch/spi-gpio.h>
++#include <asm/arch/regs-s3c-clock.h>
++//#include <asm/arch/regs-s3c6410-clock.h>
++
++#include "../codecs/wm8990.h"
++#include "../s3c24xx/s3c-pcm.h"
++#include "../s3c24xx/s3c-i2s.h"
++
++/* define the scenarios */
++#define SMDK6410_AUDIO_OFF 0
++#define SMDK6410_CAPTURE_MIC1 3
++#define SMDK6410_STEREO_TO_HEADPHONES 2
++#define SMDK6410_CAPTURE_LINE_IN 1
++
++#ifdef CONFIG_SND_DEBUG
++#define s3cdbg(x...) printk(x)
++#else
++#define s3cdbg(x...)
++#endif
++
++/*
++ * TODO: - We need to work out PLL values for 256FS for every rate.
++ */
++static int smdk6410_hifi_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai;
++ struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai;
++ unsigned int pll_out = 0, bclk = 0;
++ int ret = 0;
++ unsigned int iispsr, iismod;
++ unsigned int prescaler = 4;
++
++ u32* regs;
++ regs = ioremap(S3C6400_PA_IIS, 0x100);
++
++ s3cdbg("Entered %s, rate = %d\n", __FUNCTION__, params_rate(params));
++
++ /*PCLK & SCLK gating enable*/
++ writel(readl(S3C_PCLK_GATE)|S3C_CLKCON_PCLK_IIS0, S3C_PCLK_GATE);
++ writel(readl(S3C_SCLK_GATE)|S3C_CLKCON_SCLK_AUDIO0, S3C_SCLK_GATE);
++
++ iismod = readl(regs + S3C64XX_IIS0MOD);
++ iismod &= ~S3C64XX_IIS0MOD_FS_MASK;
++ iismod &= ~S3C64XX_IIS0MOD_BFS_MASK;
++
++ /*Clear I2S prescaler value [13:8] and disable prescaler*/
++ iispsr = readl(regs + S3C64XX_IIS0PSR);
++ iispsr &=~((0x3f<<8)|(1<<15));
++ writel(iispsr, regs + S3C64XX_IIS0PSR);
++
++ s3cdbg("%s: %d , params = %d\n", __FUNCTION__, __LINE__, params_rate(params));
++
++ switch (params_rate(params)) {
++ case 8000:
++ case 16000:
++ case 32000:
++ case 64100:
++ writel(50332, S3C_EPLL_CON1);
++ writel((1<<31)|(32<<16)|(1<<8)|(3<<0) ,S3C_EPLL_CON0);
++ break;
++ case 11025:
++ case 22050:
++ case 44100:
++ case 88200:
++ writel(10398, S3C_EPLL_CON1);
++ writel((1<<31)|(45<<16)|(1<<8)|(3<<0) ,S3C_EPLL_CON0);
++ break;
++ case 48000:
++ case 96000:
++ writel(9961, S3C_EPLL_CON1);
++ writel((1<<31)|(49<<16)|(1<<8)|(3<<0) ,S3C_EPLL_CON0);
++ break;
++ default:
++ writel(0, S3C_EPLL_CON1);
++ writel((1<<31)|(128<<16)|(25<<8)|(0<<0) ,S3C_EPLL_CON0);
++ break;
++ }
++
++ s3cdbg("%s, IISCON: %x IISMOD: %x,IISFIC: %x,IISPSR: %x\n",
++ __FUNCTION__ , readl(S3C_IIS0CON), readl(S3C_IIS0MOD),
++ readl(S3C_IIS0FIC), readl(S3C_IIS0PSR));
++
++ while(!(__raw_readl(S3C_EPLL_CON0)&(1<<30)));
++
++ /* MUXepll : FOUTepll */
++ writel(readl(S3C_CLK_SRC)|S3C_CLKSRC_EPLL_CLKSEL, S3C_CLK_SRC);
++ /* AUDIO0 sel : FOUTepll */
++ writel((readl(S3C_CLK_SRC)&~(0x7<<7))|(0<<7), S3C_CLK_SRC);
++
++ /* CLK_DIV2 setting */
++ writel(0x0,S3C_CLK_DIV2);
++
++ switch (params_rate(params)) {
++ case 8000:
++ pll_out = 2048000;
++ prescaler = 8;
++ break;
++ case 11025:
++ pll_out = 2822400;
++ prescaler = 8;
++ break;
++ case 16000:
++ pll_out = 4096000;
++ prescaler = 4;
++ break;
++ case 22050:
++ pll_out = 5644800;
++ prescaler = 4;
++ break;
++ case 32000:
++ pll_out = 8192000;
++ prescaler = 2;
++ break;
++ case 44100:
++ pll_out = 11289600;
++ //prescaler = 6;
++ prescaler = 2;
++ break;
++ case 48000:
++ pll_out = 12288000;
++ prescaler = 2;
++ break;
++ case 88200:
++ pll_out = 22579200;
++ prescaler = 1;
++ break;
++ case 96000:
++ pll_out = 24576000;
++ prescaler = 1;
++ break;
++ default:
++ /* somtimes 32000 rate comes to 96000
++ default values are same as 32000 */
++ iismod |= S3C64XX_IIS0MOD_384FS;
++ pll_out = 12288000;
++ break;
++ }
++
++ /* set MCLK division for sample rate */
++ switch (params_format(params)) {
++ case SNDRV_PCM_FORMAT_S8:
++ case SNDRV_PCM_FORMAT_S16_LE:
++ iismod |= S3C64XX_IIS0MOD_256FS | S3C64XX_IIS0MOD_32FS;
++ prescaler *= 3;
++ break;
++ case SNDRV_PCM_FORMAT_S24_LE:
++ iismod |= S3C64XX_IIS0MOD_384FS | S3C64XX_IIS0MOD_48FS;
++ prescaler *= 2;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ prescaler = prescaler - 1;
++ writel(iismod , regs + S3C64XX_IIS0MOD);
++
++ /* set codec DAI configuration */
++ ret = codec_dai->dai_ops.set_fmt(codec_dai,
++ SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
++ SND_SOC_DAIFMT_CBS_CFS );
++ if (ret < 0)
++ return ret;
++
++ /* set cpu DAI configuration */
++ ret = cpu_dai->dai_ops.set_fmt(cpu_dai,
++ SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
++ SND_SOC_DAIFMT_CBS_CFS );
++ if (ret < 0)
++ return ret;
++
++ /* set the codec system clock for DAC and ADC */
++ ret = codec_dai->dai_ops.set_sysclk(codec_dai, WM8990_MCLK, pll_out,
++ SND_SOC_CLOCK_IN);
++ if (ret < 0)
++ return ret;
++
++ /* set prescaler division for sample rate */
++ ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_PRESCALER,
++ (prescaler << 0x8));
++ if (ret < 0)
++ return ret;
++
++ return 0;
++}
++
++/*
++ * Neo1973 WM8990 HiFi DAI opserations.
++ */
++static struct snd_soc_ops smdk6410_hifi_ops = {
++ .hw_params = smdk6410_hifi_hw_params,
++};
++
++static int smdk6410_scenario = 0;
++
++static int smdk6410_get_scenario(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ ucontrol->value.integer.value[0] = smdk6410_scenario;
++ return 0;
++}
++
++static int set_scenario_endpoints(struct snd_soc_codec *codec, int scenario)
++{
++ smdk6410_scenario = scenario;
++ switch (smdk6410_scenario) {
++ case SMDK6410_AUDIO_OFF:
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 0);
++ snd_soc_dapm_set_endpoint(codec, "Mic1 Jack", 0);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 0);
++ break;
++ case SMDK6410_STEREO_TO_HEADPHONES:
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Mic1 Jack", 0);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 0);
++ break;
++ case SMDK6410_CAPTURE_MIC1:
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 0);
++ snd_soc_dapm_set_endpoint(codec, "Mic1 Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 0);
++ break;
++ case SMDK6410_CAPTURE_LINE_IN:
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 0);
++ snd_soc_dapm_set_endpoint(codec, "Mic1 Jack", 0);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 1);
++ break;
++ default:
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Mic1 Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 1);
++ break;
++ }
++
++ snd_soc_dapm_sync_endpoints(codec);
++ return 0;
++}
++
++static int smdk6410_set_scenario(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
++
++ if (smdk6410_scenario == ucontrol->value.integer.value[0])
++ return 0;
++
++ set_scenario_endpoints(codec, ucontrol->value.integer.value[0]);
++ return 1;
++}
++
++static const struct snd_soc_dapm_widget wm8990_dapm_widgets[] = {
++ SND_SOC_DAPM_HP("Headphone Jack", NULL),
++ SND_SOC_DAPM_MIC("Mic1 Jack", NULL),
++ SND_SOC_DAPM_LINE("Line In Jack", NULL),
++};
++
++/* example machine audio_mapnections */
++static const char* audio_map[][3] = {
++
++ /* no irq jack detect */
++ {"Headphone Jack", NULL, "LOUT"},
++ {"Headphone Jack", NULL, "ROUT"},
++
++ /* mic is connected to LIN1 and LIN2 - with bias */
++ {"LIN1", NULL, "Mic1 Jack"},
++ //{"LIN2", NULL, "Mic1 Jack"},
++
++ {"LIN2", NULL, "Line In Jack"},
++ {"RIN2", NULL, "Line In Jack"},
++
++ {NULL, NULL, NULL},
++};
++
++static const char *smdk_scenarios[] = {
++ "Off",
++ "Capture Line In",
++ "Headphones",
++ "Capture Mic1",
++};
++
++static const struct soc_enum smdk_scenario_enum[] = {
++ SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(smdk_scenarios),smdk_scenarios),
++};
++
++static const struct snd_kcontrol_new wm8990_smdk6410_controls[] = {
++ SOC_ENUM_EXT("SMDK Mode", smdk_scenario_enum[0],
++ smdk6410_get_scenario, smdk6410_set_scenario),
++};
++
++/*
++ * This is an example machine initialisation for a wm8990 connected to a
++ * smdk6410. It is missing logic to detect hp/mic insertions and logic
++ * to re-route the audio in such an event.
++ */
++static int smdk6410_wm8990_init(struct snd_soc_codec *codec)
++{
++ int i, err;
++
++ /* Add smdk6410 specific widgets */
++ for (i = 0; i < ARRAY_SIZE(wm8990_dapm_widgets); i++)
++ snd_soc_dapm_new_control(codec, &wm8990_dapm_widgets[i]);
++
++ /* add smdk6410 specific controls */
++ for (i = 0; i < ARRAY_SIZE(wm8990_smdk6410_controls); i++) {
++ err = snd_ctl_add(codec->card,
++ snd_soc_cnew(&wm8990_smdk6410_controls[i],
++ codec, NULL));
++ if (err < 0)
++ return err;
++ }
++
++ /* set up smdk6410 specific audio paths */
++ for (i = 0; audio_map[i][0] != NULL; i++) {
++ snd_soc_dapm_connect_input(codec, audio_map[i][0],
++ audio_map[i][1], audio_map[i][2]);
++ }
++
++ /* not connected */
++ snd_soc_dapm_set_endpoint(codec, "RIN1", 0);
++ snd_soc_dapm_set_endpoint(codec, "LIN3", 0);
++ snd_soc_dapm_set_endpoint(codec, "LIN4", 0);
++ snd_soc_dapm_set_endpoint(codec, "RIN3", 0);
++ snd_soc_dapm_set_endpoint(codec, "RIN4", 0);
++ snd_soc_dapm_set_endpoint(codec, "OUT3", 0);
++ snd_soc_dapm_set_endpoint(codec, "OUT4", 0);
++ snd_soc_dapm_set_endpoint(codec, "SPKP", 0);
++ snd_soc_dapm_set_endpoint(codec, "SPKN", 0);
++ snd_soc_dapm_set_endpoint(codec, "ROP", 0);
++ snd_soc_dapm_set_endpoint(codec, "RON", 0);
++ snd_soc_dapm_set_endpoint(codec, "LOP", 0);
++ snd_soc_dapm_set_endpoint(codec, "LON", 0);
++
++ /* set endpoints to default mode & sync with DAPM */
++ set_scenario_endpoints(codec, SMDK6410_STEREO_TO_HEADPHONES);
++
++ return 0;
++}
++
++static struct snd_soc_dai_link smdk6410_dai[] = {
++{ /* Hifi Playback - for similatious use with voice below */
++ .name = "WM8990",
++ .stream_name = "WM8990 HiFi",
++ .cpu_dai = &s3c_i2s_dai,
++ .codec_dai = &wm8990_dai,
++ .init = smdk6410_wm8990_init,
++ .ops = &smdk6410_hifi_ops,
++},
++};
++
++static struct snd_soc_machine smdk6410 = {
++ .name = "smdk6410",
++ .dai_link = smdk6410_dai,
++ .num_links = ARRAY_SIZE(smdk6410_dai),
++};
++
++static struct wm8990_setup_data smdk6410_wm8990_setup = {
++ .i2c_address = 0x1b,
++};
++
++static struct snd_soc_device smdk6410_snd_devdata = {
++ .machine = &smdk6410,
++ .platform = &s3c24xx_soc_platform,
++ .codec_dev = &soc_codec_dev_wm8990,
++ .codec_data = &smdk6410_wm8990_setup,
++};
++
++static struct platform_device *smdk6410_snd_device;
++
++static int __init smdk6410_init(void)
++{
++ int ret;
++
++ smdk6410_snd_device = platform_device_alloc("soc-audio", -1);
++ if (!smdk6410_snd_device)
++ return -ENOMEM;
++
++ platform_set_drvdata(smdk6410_snd_device, &smdk6410_snd_devdata);
++ smdk6410_snd_devdata.dev = &smdk6410_snd_device->dev;
++ ret = platform_device_add(smdk6410_snd_device);
++
++ if (ret)
++ platform_device_put(smdk6410_snd_device);
++
++ return ret;
++}
++
++static void __exit smdk6410_exit(void)
++{
++ platform_device_unregister(smdk6410_snd_device);
++}
++
++module_init(smdk6410_init);
++module_exit(smdk6410_exit);
++
++/* Module information */
++MODULE_AUTHOR("Liam Girdwood");
++MODULE_DESCRIPTION("ALSA SoC WM8990 SMDK6410");
++MODULE_LICENSE("GPL");
+diff --git a/sound/soc/s3c64xx/smdk64xx_wm9713.c b/sound/soc/s3c64xx/smdk64xx_wm9713.c
+new file mode 100644
+index 0000000..09e44d2
+--- /dev/null
++++ b/sound/soc/s3c64xx/smdk64xx_wm9713.c
+@@ -0,0 +1,88 @@
++/*
++ * smdk6400_wm9713.c -- SoC audio for smdk6400
++ *
++ * Copyright (C) 2007, Ryu Euiyoul <ryu.real@gmail.com>
++ *
++ * Copyright 2007 Wolfson Microelectronics PLC.
++ * Author: Graeme Gregory
++ * graeme.gregory@wolfsonmicro.com or linux@wolfsonmicro.com
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * Revision history
++ * 8th Mar 2007 Initial version.
++ * 20th Sep 2007 Apply at smdk6400
++ *
++ */
++
++#include <linux/module.h>
++#include <linux/device.h>
++#include <sound/driver.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++
++#include "../codecs/wm9713.h"
++#include "../s3c24xx/s3c-pcm.h"
++#include "s3c64xx-ac97.h"
++
++static struct snd_soc_machine smdk6400;
++
++static struct snd_soc_dai_link smdk6400_dai[] = {
++{
++ .name = "AC97",
++ .stream_name = "AC97 HiFi",
++ .cpu_dai = &s3c6400_ac97_dai[0],
++ .codec_dai = &wm9713_dai[WM9713_DAI_AC97_HIFI],
++},
++};
++
++static struct snd_soc_machine smdk6400 = {
++ .name = "SMDK6400",
++ .dai_link = smdk6400_dai,
++ .num_links = ARRAY_SIZE(smdk6400_dai),
++};
++
++static struct snd_soc_device smdk6400_snd_ac97_devdata = {
++ .machine = &smdk6400,
++ .platform = &s3c24xx_soc_platform,
++ .codec_dev = &soc_codec_dev_wm9713,
++};
++
++static struct platform_device *smdk6400_snd_ac97_device;
++
++static int __init smdk6400_init(void)
++{
++ int ret;
++
++ smdk6400_snd_ac97_device = platform_device_alloc("soc-audio", -1);
++ if (!smdk6400_snd_ac97_device)
++ return -ENOMEM;
++
++ platform_set_drvdata(smdk6400_snd_ac97_device,
++ &smdk6400_snd_ac97_devdata);
++ smdk6400_snd_ac97_devdata.dev = &smdk6400_snd_ac97_device->dev;
++ ret = platform_device_add(smdk6400_snd_ac97_device);
++
++ if (ret)
++ platform_device_put(smdk6400_snd_ac97_device);
++
++ return ret;
++}
++
++static void __exit smdk6400_exit(void)
++{
++ platform_device_unregister(smdk6400_snd_ac97_device);
++}
++
++module_init(smdk6400_init);
++module_exit(smdk6400_exit);
++
++/* Module information */
++MODULE_AUTHOR("Samsung: Ryu");
++MODULE_DESCRIPTION("ALSA SoC WM9713 SMDK6400");
++MODULE_LICENSE("GPL");
+--
+1.6.2.4
+
diff --git a/recipes/linux/linux-2.6.24/smartq5/base/0002-Apply-smartq-patch.patch b/recipes/linux/linux-2.6.24/smartq5/base/0002-Apply-smartq-patch.patch
new file mode 100644
index 0000000000..142250db3c
--- /dev/null
+++ b/recipes/linux/linux-2.6.24/smartq5/base/0002-Apply-smartq-patch.patch
@@ -0,0 +1,94756 @@
+From 00f370ce61f903ba8697709d58dc459fd65579f5 Mon Sep 17 00:00:00 2001
+From: YouSheng <david.ysh@gmail.com>
+Date: Tue, 21 Jul 2009 14:56:03 +0800
+Subject: [PATCH 2/4] Apply smartq patch
+
+---
+ .gitignore | 3 +
+ Makefile | 6 +-
+ arch/arm/Makefile | 4 +
+ arch/arm/boot/.gitignore | 3 +
+ arch/arm/configs/hhs3c6410_4_3_defconfig | 1592 ++++
+ arch/arm/configs/hhs3c6410_7_defconfig | 1592 ++++
+ arch/arm/mach-s3c6400/Makefile | 4 +-
+ arch/arm/mach-s3c6400/leds-s3c6400.c | 2 +-
+ arch/arm/mach-s3c6400/leds.c | 12 +-
+ arch/arm/mach-s3c6400/mach-smdk6400.c | 68 +-
+ arch/arm/mach-s3c6410/Makefile | 4 +-
+ arch/arm/mach-s3c6410/clock.c | 22 +-
+ arch/arm/mach-s3c6410/leds-s3c6410.c | 2 +-
+ arch/arm/mach-s3c6410/leds.c | 12 +-
+ arch/arm/mach-s3c6410/mach-smdk6410.c | 228 +-
+ arch/arm/mach-s3c6410/pwm/pwm-s3c6410.c | 5 +-
+ arch/arm/plat-s3c24xx/devs.c | 11 +
+ arch/arm/plat-s3c24xx/gpio.c | 21 +-
+ arch/arm/plat-s3c64xx/Makefile | 2 +-
+ arch/arm/plat-s3c64xx/irq-pl192.c | 94 +-
+ arch/arm/plat-s3c64xx/pm.c | 80 +-
+ arch/arm/plat-s3c64xx/s3c64xx-cpufreq.c | 7 +-
+ arch/arm/vfp/entry.S | 8 +-
+ arch/arm/vfp/vfp.h | 6 +-
+ arch/arm/vfp/vfphw.S | 96 +-
+ arch/arm/vfp/vfpinstr.h | 6 +-
+ arch/arm/vfp/vfpmodule.c | 164 +-
+ drivers/Makefile | 2 +-
+ drivers/bluetooth/Kconfig | 11 +-
+ drivers/bluetooth/bcm203x.c | 9 +-
+ drivers/bluetooth/bfusb.c | 13 +-
+ drivers/bluetooth/bluecard_cs.c | 10 +-
+ drivers/bluetooth/bpa10x.c | 17 +-
+ drivers/bluetooth/bt3c_cs.c | 136 +-
+ drivers/bluetooth/btsdio.c | 6 +-
+ drivers/bluetooth/btuart_cs.c | 134 +-
+ drivers/bluetooth/btusb.c | 482 ++-
+ drivers/bluetooth/dtl1_cs.c | 74 +-
+ drivers/bluetooth/hci_bcsp.c | 62 +-
+ drivers/bluetooth/hci_ldisc.c | 24 +-
+ drivers/bluetooth/hci_usb.c | 44 +-
+ drivers/bluetooth/hci_usb.h | 26 +-
+ drivers/bluetooth/hci_vhci.c | 16 +-
+ drivers/char/Kconfig | 13 +
+ drivers/char/Makefile | 4 +-
+ drivers/char/apm-emulation.c | 8 +
+ drivers/char/hhtech_gpio.c | 883 +++
+ drivers/input/keyboard/gpio_keys.c | 158 +-
+ drivers/input/keyboard/s3c-keypad.c | 9 +-
+ drivers/input/keyboard/s3c-keypad.h | 37 +-
+ drivers/input/mousedev.c | 3 +
+ drivers/input/touchscreen/s3c-ts.c | 90 +-
+ drivers/misc/Kconfig | 5 +
+ drivers/misc/Makefile | 1 +
+ drivers/misc/smartq5_encrypt/Makefile | 3 +
+ drivers/misc/smartq5_encrypt/lib_Crypto.h | 1426 ++++
+ drivers/misc/smartq5_encrypt/smartq5_encrypt.c | 117 +
+ drivers/mmc/card/block.c | 13 +
+ drivers/mmc/core/sdio_cis.c | 4 +
+ drivers/mmc/host/s3c-hsmmc.c | 58 +-
+ drivers/net/dm9000.c | 13 +-
+ drivers/net/wireless/Kconfig | 22 +
+ drivers/net/wireless/Makefile | 2 +
+ drivers/net/wireless/libertas/Makefile | 2 +-
+ drivers/net/wireless/libertas/cmd.c | 6 +
+ drivers/net/wireless/libertas/cmdresp.c | 5 +-
+ drivers/net/wireless/libertas/ioctl.c | 1046 +++
+ drivers/net/wireless/libertas/main.c | 8 +-
+ drivers/net/wireless/libertas/scan.c | 4 +-
+ drivers/net/wireless/libertas/wext.c | 151 +-
+ drivers/net/wireless/libertas/wext.h | 41 +
+ drivers/net/wireless/marvell8686/Makefile | 15 +
+ drivers/net/wireless/marvell8686/README | 1587 ++++
+ drivers/net/wireless/marvell8686/host.h | 349 +
+ drivers/net/wireless/marvell8686/hostcmd.h | 1052 +++
+ drivers/net/wireless/marvell8686/if_sdio.c | 1379 ++++
+ drivers/net/wireless/marvell8686/if_sdio.h | 97 +
+ drivers/net/wireless/marvell8686/include.h | 42 +
+ drivers/net/wireless/marvell8686/os_defs.h | 42 +
+ drivers/net/wireless/marvell8686/os_headers.h | 69 +
+ drivers/net/wireless/marvell8686/os_macros.h | 165 +
+ drivers/net/wireless/marvell8686/os_timers.h | 83 +
+ drivers/net/wireless/marvell8686/release_version.h | 5 +
+ drivers/net/wireless/marvell8686/sbi.h | 111 +
+ drivers/net/wireless/marvell8686/sdio.h | 112 +
+ drivers/net/wireless/marvell8686/wlan_11d.c | 893 +++
+ drivers/net/wireless/marvell8686/wlan_11d.h | 110 +
+ drivers/net/wireless/marvell8686/wlan_cmd.c | 2501 ++++++
+ drivers/net/wireless/marvell8686/wlan_cmdresp.c | 1595 ++++
+ drivers/net/wireless/marvell8686/wlan_debug.c | 281 +
+ drivers/net/wireless/marvell8686/wlan_decl.h | 109 +
+ drivers/net/wireless/marvell8686/wlan_defs.h | 623 ++
+ drivers/net/wireless/marvell8686/wlan_dev.h | 468 ++
+ drivers/net/wireless/marvell8686/wlan_fops.c | 217 +
+ drivers/net/wireless/marvell8686/wlan_fw.c | 532 ++
+ drivers/net/wireless/marvell8686/wlan_join.c | 2031 +++++
+ drivers/net/wireless/marvell8686/wlan_join.h | 84 +
+ drivers/net/wireless/marvell8686/wlan_main.c | 1359 ++++
+ drivers/net/wireless/marvell8686/wlan_proc.c | 213 +
+ drivers/net/wireless/marvell8686/wlan_rx.c | 367 +
+ drivers/net/wireless/marvell8686/wlan_scan.c | 3226 ++++++++
+ drivers/net/wireless/marvell8686/wlan_scan.h | 284 +
+ drivers/net/wireless/marvell8686/wlan_thread.h | 58 +
+ drivers/net/wireless/marvell8686/wlan_tx.c | 286 +
+ drivers/net/wireless/marvell8686/wlan_types.h | 1050 +++
+ drivers/net/wireless/marvell8686/wlan_version.h | 18 +
+ drivers/net/wireless/marvell8686/wlan_wext.c | 8045 ++++++++++++++++++++
+ drivers/net/wireless/marvell8686/wlan_wext.h | 406 +
+ drivers/net/wireless/marvell8686/wlan_wmm.c | 1666 ++++
+ drivers/net/wireless/marvell8686/wlan_wmm.h | 111 +
+ drivers/rtc/rtc-s3c.c | 18 +-
+ drivers/serial/s3c6400.c | 10 +-
+ drivers/usb/core/driver.c | 11 +-
+ drivers/usb/gadget/Kconfig | 6 +-
+ drivers/usb/gadget/s3c-udc-otg-hs.c | 2 +-
+ drivers/usb/host/ohci-s3c2410.c | 61 +-
+ drivers/usb/host/s3c-otg/s3c-otg-hcdi-hcd.c | 49 +-
+ drivers/usb/host/s3c-otg/s3c-otg-hcdi-hcd.h | 2 +-
+ drivers/usb/host/s3c-otg/s3c-otg-isr.c | 10 +
+ drivers/usb/host/s3c-otg/s3c-otg-oci.c | 2 +-
+ drivers/usb/host/s3c-otg/s3c-otg-roothub.c | 12 +-
+ drivers/usb/misc/Kconfig | 9 +
+ drivers/usb/misc/Makefile | 1 +
+ drivers/usb/serial/option.c | 442 +-
+ drivers/video/Kconfig | 10 +
+ drivers/video/s3c/Makefile | 2 +
+ drivers/video/s3c/colorbar.c | 423 +
+ drivers/video/s3c/s3cfb.c | 49 +-
+ drivers/video/s3c/s3cfb.h | 5 +-
+ drivers/video/s3c/s3cfb_a070vw04.c | 263 +
+ drivers/video/s3c/s3cfb_fimd4x.c | 27 +-
+ drivers/video/s3c/s3cfb_td043mtex.c | 279 +
+ drivers/watchdog/s3c2410_wdt.c | 15 +
+ fs/Kconfig | 7 +
+ fs/Makefile | 6 +
+ fs/aufs/Kconfig | 283 +
+ fs/aufs/Makefile | 70 +
+ fs/aufs/aufs.h | 118 +
+ fs/aufs/br_fuse.c | 80 +
+ fs/aufs/br_nfs.c | 390 +
+ fs/aufs/br_xfs.c | 74 +
+ fs/aufs/branch.c | 1036 +++
+ fs/aufs/branch.h | 443 ++
+ fs/aufs/cpup.c | 1138 +++
+ fs/aufs/cpup.h | 95 +
+ fs/aufs/dcsub.c | 250 +
+ fs/aufs/dcsub.h | 54 +
+ fs/aufs/debug.c | 539 ++
+ fs/aufs/debug.h | 337 +
+ fs/aufs/dentry.c | 960 +++
+ fs/aufs/dentry.h | 398 +
+ fs/aufs/dinfo.c | 436 ++
+ fs/aufs/dir.c | 558 ++
+ fs/aufs/dir.h | 154 +
+ fs/aufs/dlgt.c | 112 +
+ fs/aufs/export.c | 809 ++
+ fs/aufs/f_op.c | 813 ++
+ fs/aufs/file.c | 806 ++
+ fs/aufs/file.h | 262 +
+ fs/aufs/finfo.c | 186 +
+ fs/aufs/getattr.c | 133 +
+ fs/aufs/hin_or_dlgt.c | 736 ++
+ fs/aufs/hinode.h | 184 +
+ fs/aufs/hinotify.c | 1146 +++
+ fs/aufs/i_op.c | 954 +++
+ fs/aufs/i_op_add.c | 757 ++
+ fs/aufs/i_op_del.c | 566 ++
+ fs/aufs/i_op_ren.c | 1261 +++
+ fs/aufs/iinfo.c | 284 +
+ fs/aufs/inode.c | 430 ++
+ fs/aufs/inode.h | 593 ++
+ fs/aufs/misc.c | 325 +
+ fs/aufs/misc.h | 244 +
+ fs/aufs/module.c | 295 +
+ fs/aufs/module.h | 81 +
+ fs/aufs/opts.c | 1622 ++++
+ fs/aufs/opts.h | 269 +
+ fs/aufs/plink.c | 364 +
+ fs/aufs/robr.c | 117 +
+ fs/aufs/sbinfo.c | 223 +
+ fs/aufs/super.c | 1032 +++
+ fs/aufs/super.h | 579 ++
+ fs/aufs/sysaufs.c | 752 ++
+ fs/aufs/sysaufs.h | 211 +
+ fs/aufs/sysrq.c | 296 +
+ fs/aufs/vdir.c | 941 +++
+ fs/aufs/vfsub.c | 682 ++
+ fs/aufs/vfsub.h | 600 ++
+ fs/aufs/wbr_policy.c | 702 ++
+ fs/aufs/whout.c | 1162 +++
+ fs/aufs/whout.h | 134 +
+ fs/aufs/wkq.c | 385 +
+ fs/aufs/wkq.h | 128 +
+ fs/aufs/xino.c | 1276 ++++
+ fs/yaffs2/Kconfig | 156 +
+ fs/yaffs2/Makefile | 10 +
+ fs/yaffs2/devextras.h | 199 +
+ fs/yaffs2/moduleconfig.h | 65 +
+ fs/yaffs2/yaffs_checkptrw.c | 405 +
+ fs/yaffs2/yaffs_checkptrw.h | 35 +
+ fs/yaffs2/yaffs_ecc.c | 331 +
+ fs/yaffs2/yaffs_ecc.h | 44 +
+ fs/yaffs2/yaffs_fs.c | 2393 ++++++
+ fs/yaffs2/yaffs_getblockinfo.h | 34 +
+ fs/yaffs2/yaffs_guts.c | 7676 +++++++++++++++++++
+ fs/yaffs2/yaffs_guts.h | 906 +++
+ fs/yaffs2/yaffs_mtdif.c | 241 +
+ fs/yaffs2/yaffs_mtdif.h | 32 +
+ fs/yaffs2/yaffs_mtdif1.c | 369 +
+ fs/yaffs2/yaffs_mtdif1.h | 28 +
+ fs/yaffs2/yaffs_mtdif2.c | 248 +
+ fs/yaffs2/yaffs_mtdif2.h | 29 +
+ fs/yaffs2/yaffs_nand.c | 135 +
+ fs/yaffs2/yaffs_nand.h | 44 +
+ fs/yaffs2/yaffs_nandemul2k.h | 39 +
+ fs/yaffs2/yaffs_packedtags1.c | 52 +
+ fs/yaffs2/yaffs_packedtags1.h | 37 +
+ fs/yaffs2/yaffs_packedtags2.c | 208 +
+ fs/yaffs2/yaffs_packedtags2.h | 43 +
+ fs/yaffs2/yaffs_qsort.c | 160 +
+ fs/yaffs2/yaffs_qsort.h | 23 +
+ fs/yaffs2/yaffs_tagscompat.c | 547 ++
+ fs/yaffs2/yaffs_tagscompat.h | 41 +
+ fs/yaffs2/yaffs_tagsvalidity.c | 28 +
+ fs/yaffs2/yaffs_tagsvalidity.h | 24 +
+ fs/yaffs2/yaffsinterface.h | 21 +
+ fs/yaffs2/yportenv.h | 202 +
+ include/asm-arm/arch-s3c2410/gpio.h | 1 +
+ include/asm-arm/arch-s3c2410/hardware.h | 4 +-
+ include/asm-arm/arch-s3c2410/hsmmc.h | 5 +-
+ include/asm-arm/arch-s3c2410/regs-s3c6410-clock.h | 262 +
+ include/asm-arm/arch-s3c2410/reserved_mem.h | 2 +-
+ include/asm-arm/arch-s3c2410/system.h | 3 +-
+ include/asm-arm/plat-s3c24xx/devs.h | 2 +
+ include/asm-arm/plat-s3c64xx/hhtech_gpio.h | 64 +
+ include/asm-arm/vfp.h | 36 +-
+ include/asm-arm/vfpmacros.h | 20 +-
+ include/linux/aufs_type.h | 127 +
+ include/linux/gpio_keys.h | 2 +
+ kernel/power/main.c | 38 +-
+ sound/soc/codecs/Kconfig | 6 +-
+ sound/soc/codecs/Makefile | 2 +
+ sound/soc/codecs/wm8987.c | 1330 ++++
+ sound/soc/codecs/wm8987.h | 110 +
+ sound/soc/s3c64xx/Kconfig | 25 +-
+ sound/soc/s3c64xx/Makefile | 2 +
+ sound/soc/s3c64xx/s3c6410-i2s-v32.c | 4 +-
+ sound/soc/s3c64xx/smdk6410_wm8987.c | 623 ++
+ 248 files changed, 89139 insertions(+), 813 deletions(-)
+ create mode 100644 arch/arm/configs/hhs3c6410_4_3_defconfig
+ create mode 100644 arch/arm/configs/hhs3c6410_7_defconfig
+ create mode 100644 drivers/char/hhtech_gpio.c
+ create mode 100644 drivers/misc/smartq5_encrypt/Makefile
+ create mode 100644 drivers/misc/smartq5_encrypt/lib_Crypto.h
+ create mode 100644 drivers/misc/smartq5_encrypt/smartq5_encrypt.c
+ create mode 100644 drivers/net/wireless/libertas/ioctl.c
+ create mode 100644 drivers/net/wireless/marvell8686/Makefile
+ create mode 100644 drivers/net/wireless/marvell8686/README
+ create mode 100644 drivers/net/wireless/marvell8686/host.h
+ create mode 100644 drivers/net/wireless/marvell8686/hostcmd.h
+ create mode 100644 drivers/net/wireless/marvell8686/if_sdio.c
+ create mode 100644 drivers/net/wireless/marvell8686/if_sdio.h
+ create mode 100644 drivers/net/wireless/marvell8686/include.h
+ create mode 100644 drivers/net/wireless/marvell8686/os_defs.h
+ create mode 100644 drivers/net/wireless/marvell8686/os_headers.h
+ create mode 100644 drivers/net/wireless/marvell8686/os_macros.h
+ create mode 100644 drivers/net/wireless/marvell8686/os_timers.h
+ create mode 100644 drivers/net/wireless/marvell8686/release_version.h
+ create mode 100644 drivers/net/wireless/marvell8686/sbi.h
+ create mode 100644 drivers/net/wireless/marvell8686/sdio.h
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_11d.c
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_11d.h
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_cmd.c
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_cmdresp.c
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_debug.c
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_decl.h
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_defs.h
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_dev.h
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_fops.c
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_fw.c
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_join.c
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_join.h
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_main.c
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_proc.c
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_rx.c
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_scan.c
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_scan.h
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_thread.h
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_tx.c
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_types.h
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_version.h
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_wext.c
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_wext.h
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_wmm.c
+ create mode 100644 drivers/net/wireless/marvell8686/wlan_wmm.h
+ create mode 100644 drivers/video/s3c/colorbar.c
+ create mode 100644 drivers/video/s3c/s3cfb_a070vw04.c
+ create mode 100644 drivers/video/s3c/s3cfb_td043mtex.c
+ create mode 100644 fs/aufs/Kconfig
+ create mode 100644 fs/aufs/Makefile
+ create mode 100644 fs/aufs/aufs.h
+ create mode 100644 fs/aufs/br_fuse.c
+ create mode 100644 fs/aufs/br_nfs.c
+ create mode 100644 fs/aufs/br_xfs.c
+ create mode 100644 fs/aufs/branch.c
+ create mode 100644 fs/aufs/branch.h
+ create mode 100644 fs/aufs/cpup.c
+ create mode 100644 fs/aufs/cpup.h
+ create mode 100644 fs/aufs/dcsub.c
+ create mode 100644 fs/aufs/dcsub.h
+ create mode 100644 fs/aufs/debug.c
+ create mode 100644 fs/aufs/debug.h
+ create mode 100644 fs/aufs/dentry.c
+ create mode 100644 fs/aufs/dentry.h
+ create mode 100644 fs/aufs/dinfo.c
+ create mode 100644 fs/aufs/dir.c
+ create mode 100644 fs/aufs/dir.h
+ create mode 100644 fs/aufs/dlgt.c
+ create mode 100644 fs/aufs/export.c
+ create mode 100644 fs/aufs/f_op.c
+ create mode 100644 fs/aufs/file.c
+ create mode 100644 fs/aufs/file.h
+ create mode 100644 fs/aufs/finfo.c
+ create mode 100644 fs/aufs/getattr.c
+ create mode 100644 fs/aufs/hin_or_dlgt.c
+ create mode 100644 fs/aufs/hinode.h
+ create mode 100644 fs/aufs/hinotify.c
+ create mode 100644 fs/aufs/i_op.c
+ create mode 100644 fs/aufs/i_op_add.c
+ create mode 100644 fs/aufs/i_op_del.c
+ create mode 100644 fs/aufs/i_op_ren.c
+ create mode 100644 fs/aufs/iinfo.c
+ create mode 100644 fs/aufs/inode.c
+ create mode 100644 fs/aufs/inode.h
+ create mode 100644 fs/aufs/misc.c
+ create mode 100644 fs/aufs/misc.h
+ create mode 100644 fs/aufs/module.c
+ create mode 100644 fs/aufs/module.h
+ create mode 100644 fs/aufs/opts.c
+ create mode 100644 fs/aufs/opts.h
+ create mode 100644 fs/aufs/plink.c
+ create mode 100644 fs/aufs/robr.c
+ create mode 100644 fs/aufs/sbinfo.c
+ create mode 100644 fs/aufs/super.c
+ create mode 100644 fs/aufs/super.h
+ create mode 100644 fs/aufs/sysaufs.c
+ create mode 100644 fs/aufs/sysaufs.h
+ create mode 100644 fs/aufs/sysrq.c
+ create mode 100644 fs/aufs/vdir.c
+ create mode 100644 fs/aufs/vfsub.c
+ create mode 100644 fs/aufs/vfsub.h
+ create mode 100644 fs/aufs/wbr_policy.c
+ create mode 100644 fs/aufs/whout.c
+ create mode 100644 fs/aufs/whout.h
+ create mode 100644 fs/aufs/wkq.c
+ create mode 100644 fs/aufs/wkq.h
+ create mode 100644 fs/aufs/xino.c
+ create mode 100644 fs/yaffs2/Kconfig
+ create mode 100644 fs/yaffs2/Makefile
+ create mode 100644 fs/yaffs2/devextras.h
+ create mode 100644 fs/yaffs2/moduleconfig.h
+ create mode 100644 fs/yaffs2/yaffs_checkptrw.c
+ create mode 100644 fs/yaffs2/yaffs_checkptrw.h
+ create mode 100644 fs/yaffs2/yaffs_ecc.c
+ create mode 100644 fs/yaffs2/yaffs_ecc.h
+ create mode 100644 fs/yaffs2/yaffs_fs.c
+ create mode 100644 fs/yaffs2/yaffs_getblockinfo.h
+ create mode 100644 fs/yaffs2/yaffs_guts.c
+ create mode 100644 fs/yaffs2/yaffs_guts.h
+ create mode 100644 fs/yaffs2/yaffs_mtdif.c
+ create mode 100644 fs/yaffs2/yaffs_mtdif.h
+ create mode 100644 fs/yaffs2/yaffs_mtdif1.c
+ create mode 100644 fs/yaffs2/yaffs_mtdif1.h
+ create mode 100644 fs/yaffs2/yaffs_mtdif2.c
+ create mode 100644 fs/yaffs2/yaffs_mtdif2.h
+ create mode 100644 fs/yaffs2/yaffs_nand.c
+ create mode 100644 fs/yaffs2/yaffs_nand.h
+ create mode 100644 fs/yaffs2/yaffs_nandemul2k.h
+ create mode 100644 fs/yaffs2/yaffs_packedtags1.c
+ create mode 100644 fs/yaffs2/yaffs_packedtags1.h
+ create mode 100644 fs/yaffs2/yaffs_packedtags2.c
+ create mode 100644 fs/yaffs2/yaffs_packedtags2.h
+ create mode 100644 fs/yaffs2/yaffs_qsort.c
+ create mode 100644 fs/yaffs2/yaffs_qsort.h
+ create mode 100644 fs/yaffs2/yaffs_tagscompat.c
+ create mode 100644 fs/yaffs2/yaffs_tagscompat.h
+ create mode 100644 fs/yaffs2/yaffs_tagsvalidity.c
+ create mode 100644 fs/yaffs2/yaffs_tagsvalidity.h
+ create mode 100644 fs/yaffs2/yaffsinterface.h
+ create mode 100644 fs/yaffs2/yportenv.h
+ create mode 100644 include/asm-arm/arch-s3c2410/regs-s3c6410-clock.h
+ create mode 100644 include/asm-arm/plat-s3c64xx/hhtech_gpio.h
+ create mode 100644 include/linux/aufs_type.h
+ create mode 100644 sound/soc/codecs/wm8987.c
+ create mode 100644 sound/soc/codecs/wm8987.h
+ create mode 100644 sound/soc/s3c64xx/smdk6410_wm8987.c
+
+diff --git a/.gitignore b/.gitignore
+index 8d14531..7320219 100644
+--- a/.gitignore
++++ b/.gitignore
+@@ -52,3 +52,6 @@ cscope.*
+
+ *.orig
+ *.rej
++
++*.order
++
+diff --git a/Makefile b/Makefile
+index 21bd152..e63ae19 100644
+--- a/Makefile
++++ b/Makefile
+@@ -2,9 +2,9 @@ VERSION = 2
+ PATCHLEVEL = 6
+ SUBLEVEL = 24
+ EXTRAVERSION = .7
+-EXTRAVERSION += $(shell echo ''; \
+- sed -n '/[dr][e][vl]-*[0-9]-*[0-9]-*[0-9]/p' Changelog | \
+- awk 'BEGIN {FS=":"} {last=$$1} END {print last}')
++#EXTRAVERSION += $(shell echo ''; \
++# sed -n '/[dr][e][vl]-*[0-9]-*[0-9]-*[0-9]/p' Changelog | \
++# awk 'BEGIN {FS=":"} {last=$$1} END {print last}')
+ NAME = Err Metey! A Heury Beelge-a Ret!
+
+ # *DOCUMENTATION*
+diff --git a/arch/arm/Makefile b/arch/arm/Makefile
+index d19cd22..4073783 100644
+--- a/arch/arm/Makefile
++++ b/arch/arm/Makefile
+@@ -76,7 +76,11 @@ tune-$(CONFIG_CPU_SA110) :=-mtune=strongarm110
+ tune-$(CONFIG_CPU_SA1100) :=-mtune=strongarm1100
+ tune-$(CONFIG_CPU_XSCALE) :=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
+ tune-$(CONFIG_CPU_XSC3) :=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
++ifeq ($(CONFIG_PLAT_S3C64XX),y)
++tune-$(CONFIG_CPU_V6) :=$(call cc-option,-mtune=arm1176jzf-s,-mtune=strongarm)
++else
+ tune-$(CONFIG_CPU_V6) :=$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm)
++endif
+
+ ifeq ($(CONFIG_AEABI),y)
+ CFLAGS_ABI :=-mabi=aapcs-linux -mno-thumb-interwork
+diff --git a/arch/arm/boot/.gitignore b/arch/arm/boot/.gitignore
+index ce1c5ff..1e6d563 100644
+--- a/arch/arm/boot/.gitignore
++++ b/arch/arm/boot/.gitignore
+@@ -3,3 +3,6 @@ zImage
+ xipImage
+ bootpImage
+ uImage
++
++rootfs.*
++
+diff --git a/arch/arm/configs/hhs3c6410_4_3_defconfig b/arch/arm/configs/hhs3c6410_4_3_defconfig
+new file mode 100644
+index 0000000..aa1758a
+--- /dev/null
++++ b/arch/arm/configs/hhs3c6410_4_3_defconfig
+@@ -0,0 +1,1592 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.24.7
++# Tue Jun 16 10:48:11 2009
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_LOCK_KERNEL=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++# CONFIG_LOCALVERSION_AUTO is not set
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_AUDIT is not set
++CONFIG_IKCONFIG=m
++CONFIG_IKCONFIG_PROC=y
++CONFIG_LOG_BUF_SHIFT=13
++# CONFIG_CGROUPS is not set
++# CONFIG_FAIR_GROUP_SCHED is not set
++# CONFIG_SYSFS_DEPRECATED is not set
++# CONFIG_RELAY is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
++CONFIG_SYSCTL=y
++CONFIG_EMBEDDED=y
++# CONFIG_UID16 is not set
++CONFIG_SYSCTL_SYSCALL=y
++# CONFIG_KALLSYMS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++# CONFIG_BUG is not set
++# CONFIG_ELF_CORE is not set
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_EVENTFD=y
++# CONFIG_SHMEM is not set
++# CONFIG_VM_EVENT_COUNTERS is not set
++# CONFIG_SLUB_DEBUG is not set
++# CONFIG_SLAB is not set
++CONFIG_SLUB=y
++# CONFIG_SLOB is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++CONFIG_TINY_SHMEM=y
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++CONFIG_MODULE_FORCE_UNLOAD=y
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++# CONFIG_IOSCHED_AS is not set
++# CONFIG_IOSCHED_DEADLINE is not set
++CONFIG_IOSCHED_CFQ=y
++# CONFIG_DEFAULT_AS is not set
++# CONFIG_DEFAULT_DEADLINE is not set
++CONFIG_DEFAULT_CFQ=y
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="cfq"
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++CONFIG_PLAT_S3C64XX=y
++CONFIG_S3C64XX_DMA=y
++# CONFIG_S3C64XX_ADC is not set
++CONFIG_PLAT_S3C=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_WATCHDOG is not set
++CONFIG_S3C_BOOT_ERROR_RESET=y
++
++#
++# Power management
++#
++# CONFIG_S3C2410_PM_DEBUG is not set
++# CONFIG_S3C2410_PM_CHECK is not set
++CONFIG_S3C_LOWLEVEL_UART_PORT=0
++CONFIG_MACH_SMDK=y
++
++#
++# S3C2400 Machines
++#
++
++#
++# S3C2410 Machines
++#
++# CONFIG_ARCH_SMDK2410 is not set
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++
++#
++# S3C2440 Machines
++#
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++# CONFIG_ARCH_S3C2440 is not set
++# CONFIG_MACH_NEXCODER_2440 is not set
++
++#
++# S3C2442 Machines
++#
++
++#
++# S3C2443 Machines
++#
++# CONFIG_MACH_SMDK2443 is not set
++
++#
++# S3C2450 Machines
++#
++# CONFIG_MACH_SMDK2450 is not set
++
++#
++# S3C2416 Machines
++#
++# CONFIG_MACH_SMDK2416 is not set
++
++#
++# S3C6400 Machines
++#
++# CONFIG_MACH_SMDK6400 is not set
++
++#
++# S3C6410 Machines
++#
++CONFIG_MACH_SMDK6410=y
++# CONFIG_MACH_SMDK6430 is not set
++CONFIG_S3C6410_PDFW=m
++CONFIG_S3C6410_PDFW_PROC=y
++CONFIG_S3C6410_KDPMD=m
++CONFIG_CPU_S3C6410=y
++CONFIG_S3C6410_PM=y
++
++#
++# S5PC100 Machines
++#
++# CONFIG_MACH_SMDKC100 is not set
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_V6=y
++CONFIG_CPU_32v6K=y
++CONFIG_CPU_32v6=y
++CONFIG_CPU_ABRT_EV6=y
++CONFIG_CPU_CACHE_V6=y
++CONFIG_CPU_CACHE_VIPT=y
++CONFIG_CPU_COPY_V6=y
++CONFIG_CPU_TLB_V6=y
++CONFIG_CPU_HAS_ASID=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++CONFIG_ARM_THUMB=y
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_BPREDICT_DISABLE is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++CONFIG_ISA=y
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++CONFIG_PREEMPT=y
++CONFIG_NO_IDLE_HZ=y
++CONFIG_HZ=200
++CONFIG_AEABI=y
++# CONFIG_OABI_COMPAT is not set
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++# CONFIG_LEDS is not set
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="console=ttySAC0,115200n8 root=/dev/mmcblk0p1 rootwait splash"
++# CONFIG_XIP_KERNEL is not set
++CONFIG_KEXEC=y
++
++#
++# CPU Frequency scaling
++#
++CONFIG_CPU_FREQ=y
++CONFIG_CPU_FREQ_TABLE=y
++# CONFIG_CPU_FREQ_DEBUG is not set
++CONFIG_CPU_FREQ_STAT=y
++# CONFIG_CPU_FREQ_STAT_DETAILS is not set
++CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
++# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
++# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
++# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
++CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
++# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
++CONFIG_CPU_FREQ_GOV_USERSPACE=m
++CONFIG_CPU_FREQ_GOV_ONDEMAND=m
++CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_VFP=y
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++# CONFIG_BINFMT_AOUT is not set
++CONFIG_BINFMT_MISC=m
++
++#
++# Power management options
++#
++CONFIG_PM=y
++# CONFIG_PM_LEGACY is not set
++# CONFIG_PM_DEBUG is not set
++CONFIG_PM_SLEEP=y
++CONFIG_SUSPEND_UP_POSSIBLE=y
++CONFIG_SUSPEND=y
++CONFIG_APM_EMULATION=m
++
++#
++# DVFS support
++#
++CONFIG_S3C64XX_DVFS=m
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++CONFIG_PACKET=m
++CONFIG_PACKET_MMAP=y
++CONFIG_UNIX=y
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++CONFIG_IP_PNP=y
++CONFIG_IP_PNP_DHCP=y
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
++# CONFIG_INET_XFRM_MODE_TUNNEL is not set
++# CONFIG_INET_XFRM_MODE_BEET is not set
++CONFIG_INET_LRO=m
++CONFIG_INET_DIAG=m
++CONFIG_INET_TCP_DIAG=m
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IP_VS is not set
++# CONFIG_IPV6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_NETWORK_SECMARK is not set
++CONFIG_NETFILTER=y
++# CONFIG_NETFILTER_DEBUG is not set
++
++#
++# Core Netfilter Configuration
++#
++# CONFIG_NETFILTER_NETLINK is not set
++# CONFIG_NF_CONNTRACK_ENABLED is not set
++# CONFIG_NF_CONNTRACK is not set
++CONFIG_NETFILTER_XTABLES=m
++# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
++# CONFIG_NETFILTER_XT_TARGET_MARK is not set
++# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
++# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
++# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
++# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
++# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
++# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
++# CONFIG_NETFILTER_XT_MATCH_ESP is not set
++# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
++# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
++# CONFIG_NETFILTER_XT_MATCH_MAC is not set
++# CONFIG_NETFILTER_XT_MATCH_MARK is not set
++# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
++# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
++# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
++# CONFIG_NETFILTER_XT_MATCH_REALM is not set
++# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
++# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
++# CONFIG_NETFILTER_XT_MATCH_STRING is not set
++# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
++# CONFIG_NETFILTER_XT_MATCH_TIME is not set
++# CONFIG_NETFILTER_XT_MATCH_U32 is not set
++# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
++
++#
++# IP: Netfilter Configuration
++#
++# CONFIG_IP_NF_QUEUE is not set
++# CONFIG_IP_NF_IPTABLES is not set
++# CONFIG_IP_NF_ARPTABLES is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++CONFIG_NET_SCH_FIFO=y
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_IRDA is not set
++CONFIG_BT=m
++CONFIG_BT_L2CAP=m
++CONFIG_BT_SCO=m
++CONFIG_BT_RFCOMM=m
++CONFIG_BT_RFCOMM_TTY=y
++CONFIG_BT_BNEP=m
++CONFIG_BT_BNEP_MC_FILTER=y
++CONFIG_BT_BNEP_PROTO_FILTER=y
++CONFIG_BT_HIDP=m
++
++#
++# Bluetooth device drivers
++#
++CONFIG_BT_HCIBTUSB=m
++# CONFIG_BT_HCIBTSDIO is not set
++# CONFIG_BT_HCIUART is not set
++# CONFIG_BT_HCIBCM203X is not set
++# CONFIG_BT_HCIBPA10X is not set
++# CONFIG_BT_HCIBFUSB is not set
++# CONFIG_BT_HCIVHCI is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++CONFIG_CFG80211=m
++CONFIG_NL80211=y
++CONFIG_WIRELESS_EXT=y
++CONFIG_MAC80211=m
++CONFIG_MAC80211_RCSIMPLE=y
++CONFIG_MAC80211_LEDS=y
++# CONFIG_MAC80211_DEBUG is not set
++CONFIG_IEEE80211=m
++# CONFIG_IEEE80211_DEBUG is not set
++CONFIG_IEEE80211_CRYPT_WEP=m
++# CONFIG_IEEE80211_CRYPT_CCMP is not set
++# CONFIG_IEEE80211_CRYPT_TKIP is not set
++# CONFIG_IEEE80211_SOFTMAC is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++CONFIG_FW_LOADER=y
++# CONFIG_SYS_HYPERVISOR is not set
++CONFIG_CONNECTOR=m
++# CONFIG_MTD is not set
++# CONFIG_PARPORT is not set
++# CONFIG_PNP is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=m
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++# CONFIG_BLK_DEV_NBD is not set
++# CONFIG_BLK_DEV_UB is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=2
++CONFIG_BLK_DEV_RAM_SIZE=8192
++CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
++# CONFIG_CDROM_PKTCDVD is not set
++# CONFIG_ATA_OVER_ETH is not set
++CONFIG_MISC_DEVICES=y
++CONFIG_SMARTQ5_ENCRYPT=y
++# CONFIG_EEPROM_93CX6 is not set
++# CONFIG_IDE is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++CONFIG_SCSI=m
++CONFIG_SCSI_DMA=y
++# CONFIG_SCSI_TGT is not set
++# CONFIG_SCSI_NETLINK is not set
++CONFIG_SCSI_PROC_FS=y
++
++#
++# SCSI support type (disk, tape, CD-ROM)
++#
++CONFIG_BLK_DEV_SD=m
++# CONFIG_CHR_DEV_ST is not set
++# CONFIG_CHR_DEV_OSST is not set
++CONFIG_BLK_DEV_SR=m
++# CONFIG_BLK_DEV_SR_VENDOR is not set
++# CONFIG_CHR_DEV_SG is not set
++# CONFIG_CHR_DEV_SCH is not set
++
++#
++# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
++#
++# CONFIG_SCSI_MULTI_LUN is not set
++# CONFIG_SCSI_CONSTANTS is not set
++# CONFIG_SCSI_LOGGING is not set
++# CONFIG_SCSI_SCAN_ASYNC is not set
++CONFIG_SCSI_WAIT_SCAN=m
++
++#
++# SCSI Transports
++#
++# CONFIG_SCSI_SPI_ATTRS is not set
++# CONFIG_SCSI_FC_ATTRS is not set
++# CONFIG_SCSI_ISCSI_ATTRS is not set
++# CONFIG_SCSI_SAS_LIBSAS is not set
++# CONFIG_SCSI_SRP_ATTRS is not set
++# CONFIG_SCSI_LOWLEVEL is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++CONFIG_TUN=m
++# CONFIG_VETH is not set
++# CONFIG_ARCNET is not set
++# CONFIG_PHYLIB is not set
++CONFIG_NET_ETHERNET=y
++CONFIG_MII=m
++# CONFIG_AX88796 is not set
++# CONFIG_NET_VENDOR_3COM is not set
++# CONFIG_NET_VENDOR_SMC is not set
++# CONFIG_SMC91X is not set
++CONFIG_DM9000=m
++# CONFIG_SMC911X is not set
++# CONFIG_NET_VENDOR_RACAL is not set
++# CONFIG_AT1700 is not set
++# CONFIG_DEPCA is not set
++# CONFIG_HP100 is not set
++# CONFIG_NET_ISA is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++# CONFIG_NET_PCI is not set
++# CONFIG_B44 is not set
++# CONFIG_NETDEV_1000 is not set
++# CONFIG_NETDEV_10000 is not set
++# CONFIG_TR is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++CONFIG_WLAN_80211=y
++# CONFIG_LIBERTAS is not set
++CONFIG_MARVELL_8686_SDIO=m
++CONFIG_MARVELL_8686_PROC_FS=y
++CONFIG_MARVELL_8686_DEBUG=y
++# CONFIG_USB_ZD1201 is not set
++# CONFIG_RTL8187 is not set
++# CONFIG_P54_COMMON is not set
++# CONFIG_HOSTAP is not set
++# CONFIG_B43 is not set
++# CONFIG_B43LEGACY is not set
++# CONFIG_RT2X00 is not set
++
++#
++# USB Network Adapters
++#
++CONFIG_USB_CATC=m
++CONFIG_USB_KAWETH=m
++CONFIG_USB_PEGASUS=m
++CONFIG_USB_RTL8150=m
++CONFIG_USB_USBNET=m
++CONFIG_USB_NET_AX8817X=m
++CONFIG_USB_NET_CDCETHER=m
++CONFIG_USB_NET_DM9601=m
++CONFIG_USB_NET_GL620A=m
++CONFIG_USB_NET_NET1080=m
++CONFIG_USB_NET_PLUSB=m
++CONFIG_USB_NET_MCS7830=m
++CONFIG_USB_NET_RNDIS_HOST=m
++CONFIG_USB_NET_CDC_SUBSET=m
++CONFIG_USB_ALI_M5632=y
++CONFIG_USB_AN2720=y
++CONFIG_USB_BELKIN=y
++CONFIG_USB_ARMLINUX=y
++CONFIG_USB_EPSON2888=y
++CONFIG_USB_KC2190=y
++CONFIG_USB_NET_ZAURUS=m
++# CONFIG_WAN is not set
++CONFIG_PPP=m
++# CONFIG_PPP_MULTILINK is not set
++# CONFIG_PPP_FILTER is not set
++CONFIG_PPP_ASYNC=m
++CONFIG_PPP_SYNC_TTY=m
++CONFIG_PPP_DEFLATE=m
++CONFIG_PPP_BSDCOMP=m
++CONFIG_PPP_MPPE=m
++# CONFIG_PPPOE is not set
++# CONFIG_PPPOL2TP is not set
++# CONFIG_SLIP is not set
++CONFIG_SLHC=m
++# CONFIG_SHAPER is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=m
++# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=800
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=480
++# CONFIG_INPUT_JOYDEV is not set
++# CONFIG_INPUT_TSDEV is not set
++CONFIG_INPUT_EVDEV=y
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++# CONFIG_KEYBOARD_ATKBD is not set
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++CONFIG_KEYBOARD_GPIO=y
++CONFIG_KEYPAD_S3C=m
++CONFIG_INPUT_MOUSE=y
++# CONFIG_MOUSE_PS2 is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_APPLETOUCH is not set
++# CONFIG_MOUSE_INPORT is not set
++# CONFIG_MOUSE_LOGIBM is not set
++# CONFIG_MOUSE_PC110PAD is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_MOUSE_GPIO is not set
++# CONFIG_INPUT_JOYSTICK is not set
++CONFIG_INPUT_TABLET=y
++# CONFIG_TABLET_USB_ACECAD is not set
++# CONFIG_TABLET_USB_AIPTEK is not set
++# CONFIG_TABLET_USB_GTCO is not set
++# CONFIG_TABLET_USB_KBTAB is not set
++# CONFIG_TABLET_USB_WACOM is not set
++CONFIG_INPUT_TOUCHSCREEN=y
++CONFIG_TOUCHSCREEN_S3C=y
++# CONFIG_TOUCHSCREEN_NEW is not set
++# CONFIG_TOUCHSCREEN_FUJITSU is not set
++# CONFIG_TOUCHSCREEN_GUNZE is not set
++# CONFIG_TOUCHSCREEN_ELO is not set
++# CONFIG_TOUCHSCREEN_MTOUCH is not set
++# CONFIG_TOUCHSCREEN_MK712 is not set
++# CONFIG_TOUCHSCREEN_PENMOUNT is not set
++# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
++# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
++# CONFIG_TOUCHSCREEN_UCB1400 is not set
++# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
++CONFIG_INPUT_MISC=y
++# CONFIG_INPUT_ATI_REMOTE is not set
++# CONFIG_INPUT_ATI_REMOTE2 is not set
++# CONFIG_INPUT_KEYSPAN_REMOTE is not set
++# CONFIG_INPUT_POWERMATE is not set
++# CONFIG_INPUT_YEALINK is not set
++CONFIG_INPUT_UINPUT=m
++
++#
++# Hardware I/O ports
++#
++# CONFIG_SERIO is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++CONFIG_VT_HW_CONSOLE_BINDING=y
++# CONFIG_SERIAL_NONSTANDARD is not set
++
++#
++# Serial drivers
++#
++# CONFIG_SERIAL_8250 is not set
++
++#
++# Non-8250 serial port support
++#
++# CONFIG_SERIAL_S3C2410 is not set
++CONFIG_SERIAL_S3C6400=y
++CONFIG_SERIAL_S3C64XX_CONSOLE=y
++# CONFIG_SERIAL_S3C64XX_HS_UART is not set
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++# CONFIG_LEGACY_PTYS is not set
++# CONFIG_IPMI_HANDLER is not set
++# CONFIG_HW_RANDOM is not set
++# CONFIG_NVRAM is not set
++# CONFIG_S3C_ADC is not set
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_DEVPORT=y
++CONFIG_S3C_MEM=y
++CONFIG_LCD_4=y
++# CONFIG_LCD_7 is not set
++CONFIG_I2C=y
++CONFIG_I2C_BOARDINFO=y
++CONFIG_I2C_CHARDEV=m
++
++#
++# I2C Algorithms
++#
++# CONFIG_I2C_ALGOBIT is not set
++# CONFIG_I2C_ALGOPCF is not set
++# CONFIG_I2C_ALGOPCA is not set
++
++#
++# I2C Hardware Bus support
++#
++# CONFIG_I2C_ELEKTOR is not set
++# CONFIG_I2C_GPIO is not set
++# CONFIG_I2C_OCORES is not set
++# CONFIG_I2C_PARPORT_LIGHT is not set
++CONFIG_I2C_S3C64XX=y
++# CONFIG_I2C_SIMTEC is not set
++# CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_STUB is not set
++# CONFIG_I2C_TINY_USB is not set
++# CONFIG_I2C_PCA_ISA is not set
++
++#
++# Miscellaneous I2C Chip support
++#
++# CONFIG_SENSORS_DS1337 is not set
++# CONFIG_SENSORS_DS1374 is not set
++# CONFIG_DS1682 is not set
++# CONFIG_SENSORS_EEPROM is not set
++# CONFIG_SENSORS_PCF8574 is not set
++# CONFIG_SENSORS_PCA9539 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_SENSORS_MAX6875 is not set
++# CONFIG_SENSORS_TSL2550 is not set
++# CONFIG_I2C_DEBUG_CORE is not set
++# CONFIG_I2C_DEBUG_ALGO is not set
++# CONFIG_I2C_DEBUG_BUS is not set
++# CONFIG_I2C_DEBUG_CHIP is not set
++
++#
++# SPI support
++#
++# CONFIG_SPI is not set
++# CONFIG_SPI_MASTER is not set
++# CONFIG_W1 is not set
++CONFIG_POWER_SUPPLY=m
++# CONFIG_POWER_SUPPLY_DEBUG is not set
++CONFIG_PDA_POWER=m
++CONFIG_APM_POWER=m
++# CONFIG_BATTERY_DS2760 is not set
++CONFIG_HWMON=m
++# CONFIG_HWMON_VID is not set
++# CONFIG_SENSORS_AD7418 is not set
++# CONFIG_SENSORS_ADM1021 is not set
++# CONFIG_SENSORS_ADM1025 is not set
++# CONFIG_SENSORS_ADM1026 is not set
++# CONFIG_SENSORS_ADM1029 is not set
++# CONFIG_SENSORS_ADM1031 is not set
++# CONFIG_SENSORS_ADM9240 is not set
++# CONFIG_SENSORS_ADT7470 is not set
++# CONFIG_SENSORS_ATXP1 is not set
++# CONFIG_SENSORS_DS1621 is not set
++# CONFIG_SENSORS_F71805F is not set
++# CONFIG_SENSORS_F71882FG is not set
++# CONFIG_SENSORS_F75375S is not set
++# CONFIG_SENSORS_GL518SM is not set
++# CONFIG_SENSORS_GL520SM is not set
++# CONFIG_SENSORS_IT87 is not set
++# CONFIG_SENSORS_LM63 is not set
++# CONFIG_SENSORS_LM75 is not set
++# CONFIG_SENSORS_LM77 is not set
++# CONFIG_SENSORS_LM78 is not set
++# CONFIG_SENSORS_LM80 is not set
++# CONFIG_SENSORS_LM83 is not set
++# CONFIG_SENSORS_LM85 is not set
++# CONFIG_SENSORS_LM87 is not set
++# CONFIG_SENSORS_LM90 is not set
++# CONFIG_SENSORS_LM92 is not set
++# CONFIG_SENSORS_LM93 is not set
++# CONFIG_SENSORS_MAX1619 is not set
++# CONFIG_SENSORS_MAX6650 is not set
++# CONFIG_SENSORS_PC87360 is not set
++# CONFIG_SENSORS_PC87427 is not set
++# CONFIG_SENSORS_DME1737 is not set
++# CONFIG_SENSORS_SMSC47M1 is not set
++# CONFIG_SENSORS_SMSC47M192 is not set
++# CONFIG_SENSORS_SMSC47B397 is not set
++# CONFIG_SENSORS_THMC50 is not set
++# CONFIG_SENSORS_VT1211 is not set
++# CONFIG_SENSORS_W83781D is not set
++# CONFIG_SENSORS_W83791D is not set
++# CONFIG_SENSORS_W83792D is not set
++# CONFIG_SENSORS_W83793 is not set
++# CONFIG_SENSORS_W83L785TS is not set
++# CONFIG_SENSORS_W83627HF is not set
++# CONFIG_SENSORS_W83627EHF is not set
++# CONFIG_HWMON_DEBUG_CHIP is not set
++CONFIG_WATCHDOG=y
++# CONFIG_WATCHDOG_NOWAYOUT is not set
++
++#
++# Watchdog Device Drivers
++#
++# CONFIG_SOFT_WATCHDOG is not set
++CONFIG_S3C2410_WATCHDOG=y
++
++#
++# ISA-based Watchdog Cards
++#
++# CONFIG_PCWATCHDOG is not set
++# CONFIG_MIXCOMWD is not set
++# CONFIG_WDT is not set
++
++#
++# USB-based Watchdog Cards
++#
++# CONFIG_USBPCWATCHDOG is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++# CONFIG_DAB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++CONFIG_VIDEO_OUTPUT_CONTROL=m
++CONFIG_FB=y
++# CONFIG_FIRMWARE_EDID is not set
++# CONFIG_FB_DDC is not set
++CONFIG_FB_CFB_FILLRECT=y
++CONFIG_FB_CFB_COPYAREA=y
++CONFIG_FB_CFB_IMAGEBLIT=y
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++# CONFIG_FB_MODE_HELPERS is not set
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++CONFIG_FB_S3C=y
++# CONFIG_FB_S3C_LTE480WV is not set
++# CONFIG_FB_S3C_LTV350QV is not set
++# CONFIG_FB_S3C_LTS222QV is not set
++# CONFIG_FB_S3C_A070VW04 is not set
++CONFIG_FB_S3C_TD043MTEX=y
++CONFIG_FB_S3C_BPP=y
++# CONFIG_FB_S3C_BPP_8 is not set
++CONFIG_FB_S3C_BPP_16=y
++# CONFIG_FB_S3C_BPP_24 is not set
++# CONFIG_FB_S3C_BPP_32 is not set
++CONFIG_FB_S3C_NUM=1
++# CONFIG_FB_S3C_VIRTUAL_SCREEN is not set
++# CONFIG_FB_S3C_DOUBLE_BUFFERING is not set
++# CONFIG_FB_UVESA is not set
++# CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_S3C2410 is not set
++# CONFIG_FB_VIRTUAL is not set
++CONFIG_BACKLIGHT_LCD_SUPPORT=y
++CONFIG_LCD_CLASS_DEVICE=m
++CONFIG_BACKLIGHT_CLASS_DEVICE=m
++# CONFIG_BACKLIGHT_CORGI is not set
++CONFIG_BACKLIGHT_SMDK=m
++
++#
++# Display device support
++#
++CONFIG_DISPLAY_SUPPORT=m
++
++#
++# Display hardware drivers
++#
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++# CONFIG_MDA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=m
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++# CONFIG_LOGO_LINUX_CLUT224 is not set
++CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224=y
++
++#
++# Sound
++#
++CONFIG_SOUND=y
++
++#
++# Advanced Linux Sound Architecture
++#
++CONFIG_SND=y
++CONFIG_SND_TIMER=y
++CONFIG_SND_PCM=y
++# CONFIG_SND_SEQUENCER is not set
++CONFIG_SND_OSSEMUL=y
++CONFIG_SND_MIXER_OSS=y
++CONFIG_SND_PCM_OSS=y
++CONFIG_SND_PCM_OSS_PLUGINS=y
++# CONFIG_SND_DYNAMIC_MINORS is not set
++# CONFIG_SND_SUPPORT_OLD_API is not set
++# CONFIG_SND_VERBOSE_PROCFS is not set
++# CONFIG_SND_VERBOSE_PRINTK is not set
++# CONFIG_SND_DEBUG is not set
++
++#
++# Generic devices
++#
++# CONFIG_SND_DUMMY is not set
++# CONFIG_SND_MTPAV is not set
++# CONFIG_SND_SERIAL_U16550 is not set
++# CONFIG_SND_MPU401 is not set
++
++#
++# ALSA ARM devices
++#
++
++#
++# USB devices
++#
++# CONFIG_SND_USB_AUDIO is not set
++# CONFIG_SND_USB_CAIAQ is not set
++
++#
++# System on Chip audio support
++#
++CONFIG_SND_SOC=y
++CONFIG_SND_S3C_SOC=y
++
++#
++# SoC Audio for the Samsung S3C
++#
++CONFIG_SND_S3C6410_SOC_I2S_V32=y
++# CONFIG_SND_S3C64XX_SOC_SMDK6410_WM9713 is not set
++# CONFIG_SND_S3C6410_SOC_AC97 is not set
++# CONFIG_SND_S3C6410_SOC_SMDK6410_WM8580 is not set
++CONFIG_SND_S3C64XX_SOC_SMDK6410_WM8987=y
++CONFIG_AUDIO_CODEC_PROCFS=y
++# CONFIG_SND_S3C64XX_SOC_SMDK6410_WM8990 is not set
++CONFIG_SND_SOC_WM8987=y
++
++#
++# Open Sound System
++#
++# CONFIG_SOUND_PRIME is not set
++CONFIG_HID_SUPPORT=y
++CONFIG_HID=m
++CONFIG_HID_DEBUG=y
++CONFIG_HIDRAW=y
++
++#
++# USB Input Devices
++#
++CONFIG_USB_HID=m
++# CONFIG_USB_HIDINPUT_POWERBOOK is not set
++# CONFIG_HID_FF is not set
++CONFIG_USB_HIDDEV=y
++
++#
++# USB HID Boot Protocol drivers
++#
++# CONFIG_USB_KBD is not set
++# CONFIG_USB_MOUSE is not set
++CONFIG_USB_SUPPORT=y
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
++# CONFIG_USB_ARCH_HAS_EHCI is not set
++CONFIG_USB=y
++# CONFIG_USB_DEBUG is not set
++
++#
++# Miscellaneous USB options
++#
++CONFIG_USB_DEVICEFS=y
++# CONFIG_USB_DEVICE_CLASS is not set
++# CONFIG_USB_DYNAMIC_MINORS is not set
++CONFIG_USB_SUSPEND=y
++# CONFIG_USB_PERSIST is not set
++# CONFIG_USB_OTG is not set
++
++#
++# USB Host Controller Drivers
++#
++# CONFIG_USB_ISP116X_HCD is not set
++CONFIG_USB_OHCI_HCD=m
++# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
++# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
++CONFIG_USB_OHCI_LITTLE_ENDIAN=y
++# CONFIG_USB_SL811_HCD is not set
++# CONFIG_USB_R8A66597_HCD is not set
++CONFIG_USB_S3C_OTG_HOST=m
++
++#
++# USB Device Class drivers
++#
++CONFIG_USB_ACM=m
++# CONFIG_USB_PRINTER is not set
++
++#
++# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
++#
++
++#
++# may also be needed; see USB_STORAGE Help for more information
++#
++CONFIG_USB_STORAGE=m
++# CONFIG_USB_STORAGE_DEBUG is not set
++# CONFIG_USB_STORAGE_DATAFAB is not set
++CONFIG_USB_STORAGE_FREECOM=y
++CONFIG_USB_STORAGE_ISD200=y
++# CONFIG_USB_STORAGE_DPCM is not set
++CONFIG_USB_STORAGE_USBAT=y
++# CONFIG_USB_STORAGE_SDDR09 is not set
++# CONFIG_USB_STORAGE_SDDR55 is not set
++# CONFIG_USB_STORAGE_JUMPSHOT is not set
++# CONFIG_USB_STORAGE_ALAUDA is not set
++# CONFIG_USB_STORAGE_KARMA is not set
++# CONFIG_USB_LIBUSUAL is not set
++
++#
++# USB Imaging devices
++#
++# CONFIG_USB_MDC800 is not set
++# CONFIG_USB_MICROTEK is not set
++CONFIG_USB_MON=y
++
++#
++# USB port drivers
++#
++
++#
++# USB Serial Converter support
++#
++CONFIG_USB_SERIAL=m
++CONFIG_USB_SERIAL_GENERIC=y
++# CONFIG_USB_SERIAL_AIRCABLE is not set
++# CONFIG_USB_SERIAL_AIRPRIME is not set
++# CONFIG_USB_SERIAL_ARK3116 is not set
++# CONFIG_USB_SERIAL_BELKIN is not set
++# CONFIG_USB_SERIAL_CH341 is not set
++# CONFIG_USB_SERIAL_WHITEHEAT is not set
++# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
++# CONFIG_USB_SERIAL_CP2101 is not set
++# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
++# CONFIG_USB_SERIAL_EMPEG is not set
++# CONFIG_USB_SERIAL_FTDI_SIO is not set
++# CONFIG_USB_SERIAL_FUNSOFT is not set
++# CONFIG_USB_SERIAL_VISOR is not set
++# CONFIG_USB_SERIAL_IPAQ is not set
++# CONFIG_USB_SERIAL_IR is not set
++# CONFIG_USB_SERIAL_EDGEPORT is not set
++# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
++# CONFIG_USB_SERIAL_GARMIN is not set
++# CONFIG_USB_SERIAL_IPW is not set
++# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
++# CONFIG_USB_SERIAL_KEYSPAN is not set
++# CONFIG_USB_SERIAL_KLSI is not set
++# CONFIG_USB_SERIAL_KOBIL_SCT is not set
++# CONFIG_USB_SERIAL_MCT_U232 is not set
++# CONFIG_USB_SERIAL_MOS7720 is not set
++# CONFIG_USB_SERIAL_MOS7840 is not set
++# CONFIG_USB_SERIAL_NAVMAN is not set
++# CONFIG_USB_SERIAL_PL2303 is not set
++# CONFIG_USB_SERIAL_OTI6858 is not set
++# CONFIG_USB_SERIAL_HP4X is not set
++# CONFIG_USB_SERIAL_SAFE is not set
++# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
++# CONFIG_USB_SERIAL_TI is not set
++# CONFIG_USB_SERIAL_CYBERJACK is not set
++# CONFIG_USB_SERIAL_XIRCOM is not set
++CONFIG_USB_SERIAL_OPTION=m
++# CONFIG_USB_SERIAL_OMNINET is not set
++# CONFIG_USB_SERIAL_DEBUG is not set
++
++#
++# USB Miscellaneous drivers
++#
++# CONFIG_USB_JZ4755 is not set
++# CONFIG_USB_EMI62 is not set
++# CONFIG_USB_EMI26 is not set
++# CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_AUERSWALD is not set
++# CONFIG_USB_RIO500 is not set
++# CONFIG_USB_LEGOTOWER is not set
++# CONFIG_USB_LCD is not set
++# CONFIG_USB_BERRY_CHARGE is not set
++# CONFIG_USB_LED is not set
++# CONFIG_USB_CYPRESS_CY7C63 is not set
++# CONFIG_USB_CYTHERM is not set
++# CONFIG_USB_PHIDGET is not set
++# CONFIG_USB_IDMOUSE is not set
++# CONFIG_USB_FTDI_ELAN is not set
++# CONFIG_USB_APPLEDISPLAY is not set
++# CONFIG_USB_LD is not set
++# CONFIG_USB_TRANCEVIBRATOR is not set
++# CONFIG_USB_IOWARRIOR is not set
++# CONFIG_USB_TEST is not set
++
++#
++# USB DSL modem support
++#
++
++#
++# USB Gadget Support
++#
++CONFIG_USB_GADGET=y
++# CONFIG_USB_GADGET_DEBUG_FILES is not set
++CONFIG_USB_GADGET_SELECTED=y
++# CONFIG_USB_GADGET_AMD5536UDC is not set
++# CONFIG_USB_GADGET_ATMEL_USBA is not set
++# CONFIG_USB_GADGET_FSL_USB2 is not set
++# CONFIG_USB_GADGET_NET2280 is not set
++# CONFIG_USB_GADGET_PXA2XX is not set
++# CONFIG_USB_GADGET_M66592 is not set
++# CONFIG_USB_GADGET_GOKU is not set
++# CONFIG_USB_GADGET_LH7A40X is not set
++# CONFIG_USB_GADGET_OMAP is not set
++# CONFIG_USB_GADGET_S3C_FS is not set
++# CONFIG_USB_GADGET_S3C_HS is not set
++CONFIG_USB_GADGET_S3C_OTGD_HS=y
++CONFIG_USB_S3C=y
++# CONFIG_USB_GADGET_S3C2410 is not set
++# CONFIG_USB_GADGET_AT91 is not set
++# CONFIG_USB_GADGET_DUMMY_HCD is not set
++
++#
++# NOTE: S3C OTG device role enables the controller driver below
++#
++CONFIG_USB_S3C_OTGD_HS=y
++CONFIG_USB_GADGET_S3C_OTGD_HS_DMA_MODE=y
++# CONFIG_USB_GADGET_S3C_OTGD_HS_SLAVE_MODE is not set
++CONFIG_USB_GADGET_DUALSPEED=y
++# CONFIG_USB_ZERO is not set
++CONFIG_USB_ETH=m
++CONFIG_USB_ETH_RNDIS=y
++# CONFIG_USB_GADGETFS is not set
++CONFIG_USB_FILE_STORAGE=m
++# CONFIG_USB_FILE_STORAGE_TEST is not set
++# CONFIG_USB_G_SERIAL is not set
++# CONFIG_USB_MIDI_GADGET is not set
++CONFIG_MMC=y
++# CONFIG_MMC_DEBUG is not set
++CONFIG_MMC_UNSAFE_RESUME=y
++
++#
++# MMC/SD Card Drivers
++#
++CONFIG_MMC_BLOCK=y
++# CONFIG_MMC_BLOCK_BOUNCE is not set
++CONFIG_SDIO_UART=m
++
++#
++# MMC/SD Host Controller Drivers
++#
++CONFIG_HSMMC_S3C=y
++CONFIG_USE_MMC_AS_ROOT=y
++CONFIG_HSMMC_S3C_IRQ_WORKAROUND=y
++CONFIG_HSMMC_SCATTERGATHER=y
++# CONFIG_S3CMMC_DEBUG is not set
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=m
++
++#
++# LED drivers
++#
++# CONFIG_LEDS_S3C24XX is not set
++CONFIG_LEDS_GPIO=m
++
++#
++# LED Triggers
++#
++CONFIG_LEDS_TRIGGERS=y
++CONFIG_LEDS_TRIGGER_TIMER=m
++CONFIG_LEDS_TRIGGER_HEARTBEAT=m
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# I2C RTC drivers
++#
++# CONFIG_RTC_DRV_DS1307 is not set
++# CONFIG_RTC_DRV_DS1374 is not set
++# CONFIG_RTC_DRV_DS1672 is not set
++# CONFIG_RTC_DRV_MAX6900 is not set
++# CONFIG_RTC_DRV_RS5C372 is not set
++# CONFIG_RTC_DRV_ISL1208 is not set
++# CONFIG_RTC_DRV_X1205 is not set
++# CONFIG_RTC_DRV_PCF8563 is not set
++# CONFIG_RTC_DRV_PCF8583 is not set
++# CONFIG_RTC_DRV_M41T80 is not set
++
++#
++# SPI RTC drivers
++#
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_S3C=y
++
++#
++# Pulse Width Modulation Timer
++#
++CONFIG_PWM=y
++CONFIG_S3C6410_PWM=y
++
++#
++# File systems
++#
++# CONFIG_EXT2_FS is not set
++CONFIG_EXT3_FS=y
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
++# CONFIG_EXT4DEV_FS is not set
++CONFIG_JBD=y
++CONFIG_FS_MBCACHE=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_MINIX_FS is not set
++# CONFIG_ROMFS_FS is not set
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++CONFIG_FUSE_FS=m
++
++#
++# CD-ROM/DVD Filesystems
++#
++CONFIG_ISO9660_FS=m
++# CONFIG_JOLIET is not set
++# CONFIG_ZISOFS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++# CONFIG_MSDOS_FS is not set
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="cp437"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++# CONFIG_TMPFS is not set
++# CONFIG_HUGETLB_PAGE is not set
++CONFIG_CONFIGFS_FS=m
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_AUFS=y
++
++#
++# These options are for 2.6.24.7
++#
++CONFIG_AUFS_BRANCH_MAX_127=y
++# CONFIG_AUFS_BRANCH_MAX_511 is not set
++# CONFIG_AUFS_BRANCH_MAX_1023 is not set
++# CONFIG_AUFS_BRANCH_MAX_32767 is not set
++CONFIG_AUFS_SYSAUFS=y
++# CONFIG_AUFS_HINOTIFY is not set
++
++#
++# EXPORTFS and AUFS_EXPORT are disabled
++#
++# CONFIG_AUFS_ROBR is not set
++# CONFIG_AUFS_DLGT is not set
++# CONFIG_AUFS_SHWH is not set
++CONFIG_AUFS_RR_SQUASHFS=y
++
++#
++# SECURITY and AUFS_SEC_PERM_PATCH are disabled
++#
++# CONFIG_AUFS_SPLICE_PATCH is not set
++# CONFIG_AUFS_LHASH_PATCH is not set
++
++#
++# NFS_V4 and AUFS_PUT_FILP_PATCH are disabled
++#
++# CONFIG_AUFS_WORKAROUND_FUSE is not set
++# CONFIG_AUFS_DEBUG is not set
++# CONFIG_AUFS_COMPAT is not set
++# CONFIG_AUFS_UNIONFS23_PATCH is not set
++# CONFIG_CRAMFS is not set
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=m
++CONFIG_NFS_V3=y
++# CONFIG_NFS_V3_ACL is not set
++# CONFIG_NFS_V4 is not set
++CONFIG_NFS_DIRECTIO=y
++# CONFIG_NFSD is not set
++CONFIG_LOCKD=m
++CONFIG_LOCKD_V4=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=m
++# CONFIG_SUNRPC_BIND34 is not set
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++# CONFIG_PARTITION_ADVANCED is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="cp437"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++# CONFIG_NLS_ASCII is not set
++# CONFIG_NLS_ISO8859_1 is not set
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++CONFIG_NLS_UTF8=y
++# CONFIG_DLM is not set
++CONFIG_INSTRUMENTATION=y
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++# CONFIG_MAGIC_SYSRQ is not set
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++# CONFIG_DEBUG_KERNEL is not set
++CONFIG_FRAME_POINTER=y
++# CONFIG_SAMPLES is not set
++# CONFIG_DEBUG_USER is not set
++CONFIG_DEBUG_S3C_UART=0
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++CONFIG_CRYPTO=y
++CONFIG_CRYPTO_ALGAPI=m
++CONFIG_CRYPTO_BLKCIPHER=m
++CONFIG_CRYPTO_MANAGER=m
++# CONFIG_CRYPTO_HMAC is not set
++# CONFIG_CRYPTO_XCBC is not set
++# CONFIG_CRYPTO_NULL is not set
++# CONFIG_CRYPTO_MD4 is not set
++# CONFIG_CRYPTO_MD5 is not set
++CONFIG_CRYPTO_SHA1=m
++# CONFIG_CRYPTO_SHA256 is not set
++# CONFIG_CRYPTO_SHA512 is not set
++# CONFIG_CRYPTO_WP512 is not set
++# CONFIG_CRYPTO_TGR192 is not set
++# CONFIG_CRYPTO_GF128MUL is not set
++CONFIG_CRYPTO_ECB=m
++# CONFIG_CRYPTO_CBC is not set
++# CONFIG_CRYPTO_PCBC is not set
++# CONFIG_CRYPTO_LRW is not set
++# CONFIG_CRYPTO_XTS is not set
++# CONFIG_CRYPTO_CRYPTD is not set
++# CONFIG_CRYPTO_DES is not set
++# CONFIG_CRYPTO_FCRYPT is not set
++# CONFIG_CRYPTO_BLOWFISH is not set
++# CONFIG_CRYPTO_TWOFISH is not set
++# CONFIG_CRYPTO_SERPENT is not set
++CONFIG_CRYPTO_AES=m
++# CONFIG_CRYPTO_CAST5 is not set
++# CONFIG_CRYPTO_CAST6 is not set
++# CONFIG_CRYPTO_TEA is not set
++CONFIG_CRYPTO_ARC4=m
++# CONFIG_CRYPTO_KHAZAD is not set
++# CONFIG_CRYPTO_ANUBIS is not set
++# CONFIG_CRYPTO_SEED is not set
++# CONFIG_CRYPTO_DEFLATE is not set
++# CONFIG_CRYPTO_MICHAEL_MIC is not set
++# CONFIG_CRYPTO_CRC32C is not set
++# CONFIG_CRYPTO_CAMELLIA is not set
++# CONFIG_CRYPTO_TEST is not set
++# CONFIG_CRYPTO_AUTHENC is not set
++CONFIG_CRYPTO_HW=y
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=m
++CONFIG_CRC_CCITT=m
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=m
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=m
++CONFIG_ZLIB_DEFLATE=m
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff --git a/arch/arm/configs/hhs3c6410_7_defconfig b/arch/arm/configs/hhs3c6410_7_defconfig
+new file mode 100644
+index 0000000..2d3147a
+--- /dev/null
++++ b/arch/arm/configs/hhs3c6410_7_defconfig
+@@ -0,0 +1,1592 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.24.7
++# Tue Jun 16 10:44:09 2009
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++CONFIG_NO_IOPORT=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_LOCK_KERNEL=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++# CONFIG_LOCALVERSION_AUTO is not set
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_AUDIT is not set
++CONFIG_IKCONFIG=m
++CONFIG_IKCONFIG_PROC=y
++CONFIG_LOG_BUF_SHIFT=13
++# CONFIG_CGROUPS is not set
++# CONFIG_FAIR_GROUP_SCHED is not set
++# CONFIG_SYSFS_DEPRECATED is not set
++# CONFIG_RELAY is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
++CONFIG_SYSCTL=y
++CONFIG_EMBEDDED=y
++# CONFIG_UID16 is not set
++CONFIG_SYSCTL_SYSCALL=y
++# CONFIG_KALLSYMS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++# CONFIG_BUG is not set
++# CONFIG_ELF_CORE is not set
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_EVENTFD=y
++# CONFIG_SHMEM is not set
++# CONFIG_VM_EVENT_COUNTERS is not set
++# CONFIG_SLUB_DEBUG is not set
++# CONFIG_SLAB is not set
++CONFIG_SLUB=y
++# CONFIG_SLOB is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++CONFIG_TINY_SHMEM=y
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++CONFIG_MODULE_FORCE_UNLOAD=y
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++# CONFIG_IOSCHED_AS is not set
++# CONFIG_IOSCHED_DEADLINE is not set
++CONFIG_IOSCHED_CFQ=y
++# CONFIG_DEFAULT_AS is not set
++# CONFIG_DEFAULT_DEADLINE is not set
++CONFIG_DEFAULT_CFQ=y
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="cfq"
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++CONFIG_ARCH_S3C2410=y
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++CONFIG_PLAT_S3C64XX=y
++CONFIG_S3C64XX_DMA=y
++# CONFIG_S3C64XX_ADC is not set
++CONFIG_PLAT_S3C=y
++
++#
++# Boot options
++#
++# CONFIG_S3C_BOOT_WATCHDOG is not set
++CONFIG_S3C_BOOT_ERROR_RESET=y
++
++#
++# Power management
++#
++# CONFIG_S3C2410_PM_DEBUG is not set
++# CONFIG_S3C2410_PM_CHECK is not set
++CONFIG_S3C_LOWLEVEL_UART_PORT=0
++CONFIG_MACH_SMDK=y
++
++#
++# S3C2400 Machines
++#
++
++#
++# S3C2410 Machines
++#
++# CONFIG_ARCH_SMDK2410 is not set
++# CONFIG_ARCH_H1940 is not set
++# CONFIG_MACH_N30 is not set
++# CONFIG_ARCH_BAST is not set
++# CONFIG_MACH_OTOM is not set
++# CONFIG_MACH_AML_M5900 is not set
++# CONFIG_MACH_VR1000 is not set
++# CONFIG_MACH_QT2410 is not set
++
++#
++# S3C2412 Machines
++#
++# CONFIG_MACH_SMDK2413 is not set
++# CONFIG_MACH_SMDK2412 is not set
++# CONFIG_MACH_VSTMS is not set
++
++#
++# S3C2440 Machines
++#
++# CONFIG_MACH_ANUBIS is not set
++# CONFIG_MACH_OSIRIS is not set
++# CONFIG_MACH_RX3715 is not set
++# CONFIG_ARCH_S3C2440 is not set
++# CONFIG_MACH_NEXCODER_2440 is not set
++
++#
++# S3C2442 Machines
++#
++
++#
++# S3C2443 Machines
++#
++# CONFIG_MACH_SMDK2443 is not set
++
++#
++# S3C2450 Machines
++#
++# CONFIG_MACH_SMDK2450 is not set
++
++#
++# S3C2416 Machines
++#
++# CONFIG_MACH_SMDK2416 is not set
++
++#
++# S3C6400 Machines
++#
++# CONFIG_MACH_SMDK6400 is not set
++
++#
++# S3C6410 Machines
++#
++CONFIG_MACH_SMDK6410=y
++# CONFIG_MACH_SMDK6430 is not set
++CONFIG_S3C6410_PDFW=m
++CONFIG_S3C6410_PDFW_PROC=y
++CONFIG_S3C6410_KDPMD=m
++CONFIG_CPU_S3C6410=y
++CONFIG_S3C6410_PM=y
++
++#
++# S5PC100 Machines
++#
++# CONFIG_MACH_SMDKC100 is not set
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_V6=y
++CONFIG_CPU_32v6K=y
++CONFIG_CPU_32v6=y
++CONFIG_CPU_ABRT_EV6=y
++CONFIG_CPU_CACHE_V6=y
++CONFIG_CPU_CACHE_VIPT=y
++CONFIG_CPU_COPY_V6=y
++CONFIG_CPU_TLB_V6=y
++CONFIG_CPU_HAS_ASID=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++CONFIG_ARM_THUMB=y
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_BPREDICT_DISABLE is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++CONFIG_ISA=y
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++CONFIG_PREEMPT=y
++CONFIG_NO_IDLE_HZ=y
++CONFIG_HZ=200
++CONFIG_AEABI=y
++# CONFIG_OABI_COMPAT is not set
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++# CONFIG_LEDS is not set
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="console=ttySAC0,115200n8 root=/dev/mmcblk0p1 rootwait splash"
++# CONFIG_XIP_KERNEL is not set
++CONFIG_KEXEC=y
++
++#
++# CPU Frequency scaling
++#
++CONFIG_CPU_FREQ=y
++CONFIG_CPU_FREQ_TABLE=y
++# CONFIG_CPU_FREQ_DEBUG is not set
++CONFIG_CPU_FREQ_STAT=y
++# CONFIG_CPU_FREQ_STAT_DETAILS is not set
++CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
++# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
++# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
++# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
++CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
++# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
++CONFIG_CPU_FREQ_GOV_USERSPACE=m
++CONFIG_CPU_FREQ_GOV_ONDEMAND=m
++CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_VFP=y
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++# CONFIG_BINFMT_AOUT is not set
++CONFIG_BINFMT_MISC=m
++
++#
++# Power management options
++#
++CONFIG_PM=y
++# CONFIG_PM_LEGACY is not set
++# CONFIG_PM_DEBUG is not set
++CONFIG_PM_SLEEP=y
++CONFIG_SUSPEND_UP_POSSIBLE=y
++CONFIG_SUSPEND=y
++CONFIG_APM_EMULATION=m
++
++#
++# DVFS support
++#
++CONFIG_S3C64XX_DVFS=m
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++CONFIG_PACKET=m
++CONFIG_PACKET_MMAP=y
++CONFIG_UNIX=y
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++CONFIG_IP_PNP=y
++CONFIG_IP_PNP_DHCP=y
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
++# CONFIG_INET_XFRM_MODE_TUNNEL is not set
++# CONFIG_INET_XFRM_MODE_BEET is not set
++CONFIG_INET_LRO=m
++CONFIG_INET_DIAG=m
++CONFIG_INET_TCP_DIAG=m
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IP_VS is not set
++# CONFIG_IPV6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_NETWORK_SECMARK is not set
++CONFIG_NETFILTER=y
++# CONFIG_NETFILTER_DEBUG is not set
++
++#
++# Core Netfilter Configuration
++#
++# CONFIG_NETFILTER_NETLINK is not set
++# CONFIG_NF_CONNTRACK_ENABLED is not set
++# CONFIG_NF_CONNTRACK is not set
++CONFIG_NETFILTER_XTABLES=m
++# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
++# CONFIG_NETFILTER_XT_TARGET_MARK is not set
++# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
++# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
++# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
++# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
++# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
++# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
++# CONFIG_NETFILTER_XT_MATCH_ESP is not set
++# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
++# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
++# CONFIG_NETFILTER_XT_MATCH_MAC is not set
++# CONFIG_NETFILTER_XT_MATCH_MARK is not set
++# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
++# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
++# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
++# CONFIG_NETFILTER_XT_MATCH_REALM is not set
++# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
++# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
++# CONFIG_NETFILTER_XT_MATCH_STRING is not set
++# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
++# CONFIG_NETFILTER_XT_MATCH_TIME is not set
++# CONFIG_NETFILTER_XT_MATCH_U32 is not set
++# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
++
++#
++# IP: Netfilter Configuration
++#
++# CONFIG_IP_NF_QUEUE is not set
++# CONFIG_IP_NF_IPTABLES is not set
++# CONFIG_IP_NF_ARPTABLES is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++CONFIG_NET_SCH_FIFO=y
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_IRDA is not set
++CONFIG_BT=m
++CONFIG_BT_L2CAP=m
++CONFIG_BT_SCO=m
++CONFIG_BT_RFCOMM=m
++CONFIG_BT_RFCOMM_TTY=y
++CONFIG_BT_BNEP=m
++CONFIG_BT_BNEP_MC_FILTER=y
++CONFIG_BT_BNEP_PROTO_FILTER=y
++CONFIG_BT_HIDP=m
++
++#
++# Bluetooth device drivers
++#
++CONFIG_BT_HCIBTUSB=m
++# CONFIG_BT_HCIBTSDIO is not set
++# CONFIG_BT_HCIUART is not set
++# CONFIG_BT_HCIBCM203X is not set
++# CONFIG_BT_HCIBPA10X is not set
++# CONFIG_BT_HCIBFUSB is not set
++# CONFIG_BT_HCIVHCI is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++CONFIG_CFG80211=m
++CONFIG_NL80211=y
++CONFIG_WIRELESS_EXT=y
++CONFIG_MAC80211=m
++CONFIG_MAC80211_RCSIMPLE=y
++CONFIG_MAC80211_LEDS=y
++# CONFIG_MAC80211_DEBUG is not set
++CONFIG_IEEE80211=m
++# CONFIG_IEEE80211_DEBUG is not set
++CONFIG_IEEE80211_CRYPT_WEP=m
++# CONFIG_IEEE80211_CRYPT_CCMP is not set
++# CONFIG_IEEE80211_CRYPT_TKIP is not set
++# CONFIG_IEEE80211_SOFTMAC is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++CONFIG_FW_LOADER=y
++# CONFIG_SYS_HYPERVISOR is not set
++CONFIG_CONNECTOR=m
++# CONFIG_MTD is not set
++# CONFIG_PARPORT is not set
++# CONFIG_PNP is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=m
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++# CONFIG_BLK_DEV_NBD is not set
++# CONFIG_BLK_DEV_UB is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=2
++CONFIG_BLK_DEV_RAM_SIZE=8192
++CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
++# CONFIG_CDROM_PKTCDVD is not set
++# CONFIG_ATA_OVER_ETH is not set
++CONFIG_MISC_DEVICES=y
++CONFIG_SMARTQ5_ENCRYPT=y
++# CONFIG_EEPROM_93CX6 is not set
++# CONFIG_IDE is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++CONFIG_SCSI=m
++CONFIG_SCSI_DMA=y
++# CONFIG_SCSI_TGT is not set
++# CONFIG_SCSI_NETLINK is not set
++CONFIG_SCSI_PROC_FS=y
++
++#
++# SCSI support type (disk, tape, CD-ROM)
++#
++CONFIG_BLK_DEV_SD=m
++# CONFIG_CHR_DEV_ST is not set
++# CONFIG_CHR_DEV_OSST is not set
++CONFIG_BLK_DEV_SR=m
++# CONFIG_BLK_DEV_SR_VENDOR is not set
++# CONFIG_CHR_DEV_SG is not set
++# CONFIG_CHR_DEV_SCH is not set
++
++#
++# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
++#
++# CONFIG_SCSI_MULTI_LUN is not set
++# CONFIG_SCSI_CONSTANTS is not set
++# CONFIG_SCSI_LOGGING is not set
++# CONFIG_SCSI_SCAN_ASYNC is not set
++CONFIG_SCSI_WAIT_SCAN=m
++
++#
++# SCSI Transports
++#
++# CONFIG_SCSI_SPI_ATTRS is not set
++# CONFIG_SCSI_FC_ATTRS is not set
++# CONFIG_SCSI_ISCSI_ATTRS is not set
++# CONFIG_SCSI_SAS_LIBSAS is not set
++# CONFIG_SCSI_SRP_ATTRS is not set
++# CONFIG_SCSI_LOWLEVEL is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++CONFIG_TUN=m
++# CONFIG_VETH is not set
++# CONFIG_ARCNET is not set
++# CONFIG_PHYLIB is not set
++CONFIG_NET_ETHERNET=y
++CONFIG_MII=m
++# CONFIG_AX88796 is not set
++# CONFIG_NET_VENDOR_3COM is not set
++# CONFIG_NET_VENDOR_SMC is not set
++# CONFIG_SMC91X is not set
++CONFIG_DM9000=m
++# CONFIG_SMC911X is not set
++# CONFIG_NET_VENDOR_RACAL is not set
++# CONFIG_AT1700 is not set
++# CONFIG_DEPCA is not set
++# CONFIG_HP100 is not set
++# CONFIG_NET_ISA is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++# CONFIG_NET_PCI is not set
++# CONFIG_B44 is not set
++# CONFIG_NETDEV_1000 is not set
++# CONFIG_NETDEV_10000 is not set
++# CONFIG_TR is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++CONFIG_WLAN_80211=y
++# CONFIG_LIBERTAS is not set
++CONFIG_MARVELL_8686_SDIO=m
++CONFIG_MARVELL_8686_PROC_FS=y
++CONFIG_MARVELL_8686_DEBUG=y
++# CONFIG_USB_ZD1201 is not set
++# CONFIG_RTL8187 is not set
++# CONFIG_P54_COMMON is not set
++# CONFIG_HOSTAP is not set
++# CONFIG_B43 is not set
++# CONFIG_B43LEGACY is not set
++# CONFIG_RT2X00 is not set
++
++#
++# USB Network Adapters
++#
++CONFIG_USB_CATC=m
++CONFIG_USB_KAWETH=m
++CONFIG_USB_PEGASUS=m
++CONFIG_USB_RTL8150=m
++CONFIG_USB_USBNET=m
++CONFIG_USB_NET_AX8817X=m
++CONFIG_USB_NET_CDCETHER=m
++CONFIG_USB_NET_DM9601=m
++CONFIG_USB_NET_GL620A=m
++CONFIG_USB_NET_NET1080=m
++CONFIG_USB_NET_PLUSB=m
++CONFIG_USB_NET_MCS7830=m
++CONFIG_USB_NET_RNDIS_HOST=m
++CONFIG_USB_NET_CDC_SUBSET=m
++CONFIG_USB_ALI_M5632=y
++CONFIG_USB_AN2720=y
++CONFIG_USB_BELKIN=y
++CONFIG_USB_ARMLINUX=y
++CONFIG_USB_EPSON2888=y
++CONFIG_USB_KC2190=y
++CONFIG_USB_NET_ZAURUS=m
++# CONFIG_WAN is not set
++CONFIG_PPP=m
++# CONFIG_PPP_MULTILINK is not set
++# CONFIG_PPP_FILTER is not set
++CONFIG_PPP_ASYNC=m
++CONFIG_PPP_SYNC_TTY=m
++CONFIG_PPP_DEFLATE=m
++CONFIG_PPP_BSDCOMP=m
++CONFIG_PPP_MPPE=m
++# CONFIG_PPPOE is not set
++# CONFIG_PPPOL2TP is not set
++# CONFIG_SLIP is not set
++CONFIG_SLHC=m
++# CONFIG_SHAPER is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=m
++# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=800
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=480
++# CONFIG_INPUT_JOYDEV is not set
++# CONFIG_INPUT_TSDEV is not set
++CONFIG_INPUT_EVDEV=y
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++# CONFIG_KEYBOARD_ATKBD is not set
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++CONFIG_KEYBOARD_GPIO=y
++CONFIG_KEYPAD_S3C=m
++CONFIG_INPUT_MOUSE=y
++# CONFIG_MOUSE_PS2 is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_APPLETOUCH is not set
++# CONFIG_MOUSE_INPORT is not set
++# CONFIG_MOUSE_LOGIBM is not set
++# CONFIG_MOUSE_PC110PAD is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_MOUSE_GPIO is not set
++# CONFIG_INPUT_JOYSTICK is not set
++CONFIG_INPUT_TABLET=y
++# CONFIG_TABLET_USB_ACECAD is not set
++# CONFIG_TABLET_USB_AIPTEK is not set
++# CONFIG_TABLET_USB_GTCO is not set
++# CONFIG_TABLET_USB_KBTAB is not set
++# CONFIG_TABLET_USB_WACOM is not set
++CONFIG_INPUT_TOUCHSCREEN=y
++CONFIG_TOUCHSCREEN_S3C=y
++# CONFIG_TOUCHSCREEN_NEW is not set
++# CONFIG_TOUCHSCREEN_FUJITSU is not set
++# CONFIG_TOUCHSCREEN_GUNZE is not set
++# CONFIG_TOUCHSCREEN_ELO is not set
++# CONFIG_TOUCHSCREEN_MTOUCH is not set
++# CONFIG_TOUCHSCREEN_MK712 is not set
++# CONFIG_TOUCHSCREEN_PENMOUNT is not set
++# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
++# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
++# CONFIG_TOUCHSCREEN_UCB1400 is not set
++# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
++CONFIG_INPUT_MISC=y
++# CONFIG_INPUT_ATI_REMOTE is not set
++# CONFIG_INPUT_ATI_REMOTE2 is not set
++# CONFIG_INPUT_KEYSPAN_REMOTE is not set
++# CONFIG_INPUT_POWERMATE is not set
++# CONFIG_INPUT_YEALINK is not set
++CONFIG_INPUT_UINPUT=m
++
++#
++# Hardware I/O ports
++#
++# CONFIG_SERIO is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++CONFIG_VT_HW_CONSOLE_BINDING=y
++# CONFIG_SERIAL_NONSTANDARD is not set
++
++#
++# Serial drivers
++#
++# CONFIG_SERIAL_8250 is not set
++
++#
++# Non-8250 serial port support
++#
++# CONFIG_SERIAL_S3C2410 is not set
++CONFIG_SERIAL_S3C6400=y
++CONFIG_SERIAL_S3C64XX_CONSOLE=y
++# CONFIG_SERIAL_S3C64XX_HS_UART is not set
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++# CONFIG_LEGACY_PTYS is not set
++# CONFIG_IPMI_HANDLER is not set
++# CONFIG_HW_RANDOM is not set
++# CONFIG_NVRAM is not set
++# CONFIG_S3C_ADC is not set
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_DEVPORT=y
++CONFIG_S3C_MEM=y
++# CONFIG_LCD_4 is not set
++CONFIG_LCD_7=y
++CONFIG_I2C=y
++CONFIG_I2C_BOARDINFO=y
++CONFIG_I2C_CHARDEV=m
++
++#
++# I2C Algorithms
++#
++# CONFIG_I2C_ALGOBIT is not set
++# CONFIG_I2C_ALGOPCF is not set
++# CONFIG_I2C_ALGOPCA is not set
++
++#
++# I2C Hardware Bus support
++#
++# CONFIG_I2C_ELEKTOR is not set
++# CONFIG_I2C_GPIO is not set
++# CONFIG_I2C_OCORES is not set
++# CONFIG_I2C_PARPORT_LIGHT is not set
++CONFIG_I2C_S3C64XX=y
++# CONFIG_I2C_SIMTEC is not set
++# CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_STUB is not set
++# CONFIG_I2C_TINY_USB is not set
++# CONFIG_I2C_PCA_ISA is not set
++
++#
++# Miscellaneous I2C Chip support
++#
++# CONFIG_SENSORS_DS1337 is not set
++# CONFIG_SENSORS_DS1374 is not set
++# CONFIG_DS1682 is not set
++# CONFIG_SENSORS_EEPROM is not set
++# CONFIG_SENSORS_PCF8574 is not set
++# CONFIG_SENSORS_PCA9539 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_SENSORS_MAX6875 is not set
++# CONFIG_SENSORS_TSL2550 is not set
++# CONFIG_I2C_DEBUG_CORE is not set
++# CONFIG_I2C_DEBUG_ALGO is not set
++# CONFIG_I2C_DEBUG_BUS is not set
++# CONFIG_I2C_DEBUG_CHIP is not set
++
++#
++# SPI support
++#
++# CONFIG_SPI is not set
++# CONFIG_SPI_MASTER is not set
++# CONFIG_W1 is not set
++CONFIG_POWER_SUPPLY=m
++# CONFIG_POWER_SUPPLY_DEBUG is not set
++CONFIG_PDA_POWER=m
++CONFIG_APM_POWER=m
++# CONFIG_BATTERY_DS2760 is not set
++CONFIG_HWMON=m
++# CONFIG_HWMON_VID is not set
++# CONFIG_SENSORS_AD7418 is not set
++# CONFIG_SENSORS_ADM1021 is not set
++# CONFIG_SENSORS_ADM1025 is not set
++# CONFIG_SENSORS_ADM1026 is not set
++# CONFIG_SENSORS_ADM1029 is not set
++# CONFIG_SENSORS_ADM1031 is not set
++# CONFIG_SENSORS_ADM9240 is not set
++# CONFIG_SENSORS_ADT7470 is not set
++# CONFIG_SENSORS_ATXP1 is not set
++# CONFIG_SENSORS_DS1621 is not set
++# CONFIG_SENSORS_F71805F is not set
++# CONFIG_SENSORS_F71882FG is not set
++# CONFIG_SENSORS_F75375S is not set
++# CONFIG_SENSORS_GL518SM is not set
++# CONFIG_SENSORS_GL520SM is not set
++# CONFIG_SENSORS_IT87 is not set
++# CONFIG_SENSORS_LM63 is not set
++# CONFIG_SENSORS_LM75 is not set
++# CONFIG_SENSORS_LM77 is not set
++# CONFIG_SENSORS_LM78 is not set
++# CONFIG_SENSORS_LM80 is not set
++# CONFIG_SENSORS_LM83 is not set
++# CONFIG_SENSORS_LM85 is not set
++# CONFIG_SENSORS_LM87 is not set
++# CONFIG_SENSORS_LM90 is not set
++# CONFIG_SENSORS_LM92 is not set
++# CONFIG_SENSORS_LM93 is not set
++# CONFIG_SENSORS_MAX1619 is not set
++# CONFIG_SENSORS_MAX6650 is not set
++# CONFIG_SENSORS_PC87360 is not set
++# CONFIG_SENSORS_PC87427 is not set
++# CONFIG_SENSORS_DME1737 is not set
++# CONFIG_SENSORS_SMSC47M1 is not set
++# CONFIG_SENSORS_SMSC47M192 is not set
++# CONFIG_SENSORS_SMSC47B397 is not set
++# CONFIG_SENSORS_THMC50 is not set
++# CONFIG_SENSORS_VT1211 is not set
++# CONFIG_SENSORS_W83781D is not set
++# CONFIG_SENSORS_W83791D is not set
++# CONFIG_SENSORS_W83792D is not set
++# CONFIG_SENSORS_W83793 is not set
++# CONFIG_SENSORS_W83L785TS is not set
++# CONFIG_SENSORS_W83627HF is not set
++# CONFIG_SENSORS_W83627EHF is not set
++# CONFIG_HWMON_DEBUG_CHIP is not set
++CONFIG_WATCHDOG=y
++# CONFIG_WATCHDOG_NOWAYOUT is not set
++
++#
++# Watchdog Device Drivers
++#
++# CONFIG_SOFT_WATCHDOG is not set
++CONFIG_S3C2410_WATCHDOG=y
++
++#
++# ISA-based Watchdog Cards
++#
++# CONFIG_PCWATCHDOG is not set
++# CONFIG_MIXCOMWD is not set
++# CONFIG_WDT is not set
++
++#
++# USB-based Watchdog Cards
++#
++# CONFIG_USBPCWATCHDOG is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++# CONFIG_DAB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++CONFIG_VIDEO_OUTPUT_CONTROL=m
++CONFIG_FB=y
++# CONFIG_FIRMWARE_EDID is not set
++# CONFIG_FB_DDC is not set
++CONFIG_FB_CFB_FILLRECT=y
++CONFIG_FB_CFB_COPYAREA=y
++CONFIG_FB_CFB_IMAGEBLIT=y
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++# CONFIG_FB_MODE_HELPERS is not set
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++CONFIG_FB_S3C=y
++# CONFIG_FB_S3C_LTE480WV is not set
++# CONFIG_FB_S3C_LTV350QV is not set
++# CONFIG_FB_S3C_LTS222QV is not set
++CONFIG_FB_S3C_A070VW04=y
++# CONFIG_FB_S3C_TD043MTEX is not set
++CONFIG_FB_S3C_BPP=y
++# CONFIG_FB_S3C_BPP_8 is not set
++CONFIG_FB_S3C_BPP_16=y
++# CONFIG_FB_S3C_BPP_24 is not set
++# CONFIG_FB_S3C_BPP_32 is not set
++CONFIG_FB_S3C_NUM=1
++# CONFIG_FB_S3C_VIRTUAL_SCREEN is not set
++# CONFIG_FB_S3C_DOUBLE_BUFFERING is not set
++# CONFIG_FB_UVESA is not set
++# CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_S3C2410 is not set
++# CONFIG_FB_VIRTUAL is not set
++CONFIG_BACKLIGHT_LCD_SUPPORT=y
++CONFIG_LCD_CLASS_DEVICE=m
++CONFIG_BACKLIGHT_CLASS_DEVICE=m
++# CONFIG_BACKLIGHT_CORGI is not set
++CONFIG_BACKLIGHT_SMDK=m
++
++#
++# Display device support
++#
++CONFIG_DISPLAY_SUPPORT=m
++
++#
++# Display hardware drivers
++#
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++# CONFIG_MDA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=m
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++# CONFIG_LOGO_LINUX_CLUT224 is not set
++CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224=y
++
++#
++# Sound
++#
++CONFIG_SOUND=y
++
++#
++# Advanced Linux Sound Architecture
++#
++CONFIG_SND=y
++CONFIG_SND_TIMER=y
++CONFIG_SND_PCM=y
++# CONFIG_SND_SEQUENCER is not set
++CONFIG_SND_OSSEMUL=y
++CONFIG_SND_MIXER_OSS=y
++CONFIG_SND_PCM_OSS=y
++CONFIG_SND_PCM_OSS_PLUGINS=y
++# CONFIG_SND_DYNAMIC_MINORS is not set
++# CONFIG_SND_SUPPORT_OLD_API is not set
++# CONFIG_SND_VERBOSE_PROCFS is not set
++# CONFIG_SND_VERBOSE_PRINTK is not set
++# CONFIG_SND_DEBUG is not set
++
++#
++# Generic devices
++#
++# CONFIG_SND_DUMMY is not set
++# CONFIG_SND_MTPAV is not set
++# CONFIG_SND_SERIAL_U16550 is not set
++# CONFIG_SND_MPU401 is not set
++
++#
++# ALSA ARM devices
++#
++
++#
++# USB devices
++#
++# CONFIG_SND_USB_AUDIO is not set
++# CONFIG_SND_USB_CAIAQ is not set
++
++#
++# System on Chip audio support
++#
++CONFIG_SND_SOC=y
++CONFIG_SND_S3C_SOC=y
++
++#
++# SoC Audio for the Samsung S3C
++#
++CONFIG_SND_S3C6410_SOC_I2S_V32=y
++# CONFIG_SND_S3C64XX_SOC_SMDK6410_WM9713 is not set
++# CONFIG_SND_S3C6410_SOC_AC97 is not set
++# CONFIG_SND_S3C6410_SOC_SMDK6410_WM8580 is not set
++CONFIG_SND_S3C64XX_SOC_SMDK6410_WM8987=y
++CONFIG_AUDIO_CODEC_PROCFS=y
++# CONFIG_SND_S3C64XX_SOC_SMDK6410_WM8990 is not set
++CONFIG_SND_SOC_WM8987=y
++
++#
++# Open Sound System
++#
++# CONFIG_SOUND_PRIME is not set
++CONFIG_HID_SUPPORT=y
++CONFIG_HID=m
++CONFIG_HID_DEBUG=y
++CONFIG_HIDRAW=y
++
++#
++# USB Input Devices
++#
++CONFIG_USB_HID=m
++# CONFIG_USB_HIDINPUT_POWERBOOK is not set
++# CONFIG_HID_FF is not set
++CONFIG_USB_HIDDEV=y
++
++#
++# USB HID Boot Protocol drivers
++#
++# CONFIG_USB_KBD is not set
++# CONFIG_USB_MOUSE is not set
++CONFIG_USB_SUPPORT=y
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
++# CONFIG_USB_ARCH_HAS_EHCI is not set
++CONFIG_USB=y
++# CONFIG_USB_DEBUG is not set
++
++#
++# Miscellaneous USB options
++#
++CONFIG_USB_DEVICEFS=y
++# CONFIG_USB_DEVICE_CLASS is not set
++# CONFIG_USB_DYNAMIC_MINORS is not set
++CONFIG_USB_SUSPEND=y
++# CONFIG_USB_PERSIST is not set
++# CONFIG_USB_OTG is not set
++
++#
++# USB Host Controller Drivers
++#
++# CONFIG_USB_ISP116X_HCD is not set
++CONFIG_USB_OHCI_HCD=m
++# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
++# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
++CONFIG_USB_OHCI_LITTLE_ENDIAN=y
++# CONFIG_USB_SL811_HCD is not set
++# CONFIG_USB_R8A66597_HCD is not set
++CONFIG_USB_S3C_OTG_HOST=m
++
++#
++# USB Device Class drivers
++#
++CONFIG_USB_ACM=m
++# CONFIG_USB_PRINTER is not set
++
++#
++# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
++#
++
++#
++# may also be needed; see USB_STORAGE Help for more information
++#
++CONFIG_USB_STORAGE=m
++# CONFIG_USB_STORAGE_DEBUG is not set
++# CONFIG_USB_STORAGE_DATAFAB is not set
++CONFIG_USB_STORAGE_FREECOM=y
++CONFIG_USB_STORAGE_ISD200=y
++# CONFIG_USB_STORAGE_DPCM is not set
++CONFIG_USB_STORAGE_USBAT=y
++# CONFIG_USB_STORAGE_SDDR09 is not set
++# CONFIG_USB_STORAGE_SDDR55 is not set
++# CONFIG_USB_STORAGE_JUMPSHOT is not set
++# CONFIG_USB_STORAGE_ALAUDA is not set
++# CONFIG_USB_STORAGE_KARMA is not set
++# CONFIG_USB_LIBUSUAL is not set
++
++#
++# USB Imaging devices
++#
++# CONFIG_USB_MDC800 is not set
++# CONFIG_USB_MICROTEK is not set
++CONFIG_USB_MON=y
++
++#
++# USB port drivers
++#
++
++#
++# USB Serial Converter support
++#
++CONFIG_USB_SERIAL=m
++CONFIG_USB_SERIAL_GENERIC=y
++# CONFIG_USB_SERIAL_AIRCABLE is not set
++# CONFIG_USB_SERIAL_AIRPRIME is not set
++# CONFIG_USB_SERIAL_ARK3116 is not set
++# CONFIG_USB_SERIAL_BELKIN is not set
++# CONFIG_USB_SERIAL_CH341 is not set
++# CONFIG_USB_SERIAL_WHITEHEAT is not set
++# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
++# CONFIG_USB_SERIAL_CP2101 is not set
++# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
++# CONFIG_USB_SERIAL_EMPEG is not set
++# CONFIG_USB_SERIAL_FTDI_SIO is not set
++# CONFIG_USB_SERIAL_FUNSOFT is not set
++# CONFIG_USB_SERIAL_VISOR is not set
++# CONFIG_USB_SERIAL_IPAQ is not set
++# CONFIG_USB_SERIAL_IR is not set
++# CONFIG_USB_SERIAL_EDGEPORT is not set
++# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
++# CONFIG_USB_SERIAL_GARMIN is not set
++# CONFIG_USB_SERIAL_IPW is not set
++# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
++# CONFIG_USB_SERIAL_KEYSPAN is not set
++# CONFIG_USB_SERIAL_KLSI is not set
++# CONFIG_USB_SERIAL_KOBIL_SCT is not set
++# CONFIG_USB_SERIAL_MCT_U232 is not set
++# CONFIG_USB_SERIAL_MOS7720 is not set
++# CONFIG_USB_SERIAL_MOS7840 is not set
++# CONFIG_USB_SERIAL_NAVMAN is not set
++# CONFIG_USB_SERIAL_PL2303 is not set
++# CONFIG_USB_SERIAL_OTI6858 is not set
++# CONFIG_USB_SERIAL_HP4X is not set
++# CONFIG_USB_SERIAL_SAFE is not set
++# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
++# CONFIG_USB_SERIAL_TI is not set
++# CONFIG_USB_SERIAL_CYBERJACK is not set
++# CONFIG_USB_SERIAL_XIRCOM is not set
++CONFIG_USB_SERIAL_OPTION=m
++# CONFIG_USB_SERIAL_OMNINET is not set
++# CONFIG_USB_SERIAL_DEBUG is not set
++
++#
++# USB Miscellaneous drivers
++#
++# CONFIG_USB_JZ4755 is not set
++# CONFIG_USB_EMI62 is not set
++# CONFIG_USB_EMI26 is not set
++# CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_AUERSWALD is not set
++# CONFIG_USB_RIO500 is not set
++# CONFIG_USB_LEGOTOWER is not set
++# CONFIG_USB_LCD is not set
++# CONFIG_USB_BERRY_CHARGE is not set
++# CONFIG_USB_LED is not set
++# CONFIG_USB_CYPRESS_CY7C63 is not set
++# CONFIG_USB_CYTHERM is not set
++# CONFIG_USB_PHIDGET is not set
++# CONFIG_USB_IDMOUSE is not set
++# CONFIG_USB_FTDI_ELAN is not set
++# CONFIG_USB_APPLEDISPLAY is not set
++# CONFIG_USB_LD is not set
++# CONFIG_USB_TRANCEVIBRATOR is not set
++# CONFIG_USB_IOWARRIOR is not set
++# CONFIG_USB_TEST is not set
++
++#
++# USB DSL modem support
++#
++
++#
++# USB Gadget Support
++#
++CONFIG_USB_GADGET=y
++# CONFIG_USB_GADGET_DEBUG_FILES is not set
++CONFIG_USB_GADGET_SELECTED=y
++# CONFIG_USB_GADGET_AMD5536UDC is not set
++# CONFIG_USB_GADGET_ATMEL_USBA is not set
++# CONFIG_USB_GADGET_FSL_USB2 is not set
++# CONFIG_USB_GADGET_NET2280 is not set
++# CONFIG_USB_GADGET_PXA2XX is not set
++# CONFIG_USB_GADGET_M66592 is not set
++# CONFIG_USB_GADGET_GOKU is not set
++# CONFIG_USB_GADGET_LH7A40X is not set
++# CONFIG_USB_GADGET_OMAP is not set
++# CONFIG_USB_GADGET_S3C_FS is not set
++# CONFIG_USB_GADGET_S3C_HS is not set
++CONFIG_USB_GADGET_S3C_OTGD_HS=y
++CONFIG_USB_S3C=y
++# CONFIG_USB_GADGET_S3C2410 is not set
++# CONFIG_USB_GADGET_AT91 is not set
++# CONFIG_USB_GADGET_DUMMY_HCD is not set
++
++#
++# NOTE: S3C OTG device role enables the controller driver below
++#
++CONFIG_USB_S3C_OTGD_HS=m
++CONFIG_USB_GADGET_S3C_OTGD_HS_DMA_MODE=y
++# CONFIG_USB_GADGET_S3C_OTGD_HS_SLAVE_MODE is not set
++CONFIG_USB_GADGET_DUALSPEED=y
++# CONFIG_USB_ZERO is not set
++CONFIG_USB_ETH=m
++CONFIG_USB_ETH_RNDIS=y
++# CONFIG_USB_GADGETFS is not set
++CONFIG_USB_FILE_STORAGE=m
++# CONFIG_USB_FILE_STORAGE_TEST is not set
++# CONFIG_USB_G_SERIAL is not set
++# CONFIG_USB_MIDI_GADGET is not set
++CONFIG_MMC=y
++# CONFIG_MMC_DEBUG is not set
++CONFIG_MMC_UNSAFE_RESUME=y
++
++#
++# MMC/SD Card Drivers
++#
++CONFIG_MMC_BLOCK=y
++# CONFIG_MMC_BLOCK_BOUNCE is not set
++CONFIG_SDIO_UART=m
++
++#
++# MMC/SD Host Controller Drivers
++#
++CONFIG_HSMMC_S3C=y
++CONFIG_USE_MMC_AS_ROOT=y
++CONFIG_HSMMC_S3C_IRQ_WORKAROUND=y
++CONFIG_HSMMC_SCATTERGATHER=y
++# CONFIG_S3CMMC_DEBUG is not set
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=m
++
++#
++# LED drivers
++#
++# CONFIG_LEDS_S3C24XX is not set
++CONFIG_LEDS_GPIO=m
++
++#
++# LED Triggers
++#
++CONFIG_LEDS_TRIGGERS=y
++CONFIG_LEDS_TRIGGER_TIMER=m
++CONFIG_LEDS_TRIGGER_HEARTBEAT=m
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# I2C RTC drivers
++#
++# CONFIG_RTC_DRV_DS1307 is not set
++# CONFIG_RTC_DRV_DS1374 is not set
++# CONFIG_RTC_DRV_DS1672 is not set
++# CONFIG_RTC_DRV_MAX6900 is not set
++# CONFIG_RTC_DRV_RS5C372 is not set
++# CONFIG_RTC_DRV_ISL1208 is not set
++# CONFIG_RTC_DRV_X1205 is not set
++# CONFIG_RTC_DRV_PCF8563 is not set
++# CONFIG_RTC_DRV_PCF8583 is not set
++# CONFIG_RTC_DRV_M41T80 is not set
++
++#
++# SPI RTC drivers
++#
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_S3C=y
++
++#
++# Pulse Width Modulation Timer
++#
++CONFIG_PWM=y
++CONFIG_S3C6410_PWM=y
++
++#
++# File systems
++#
++# CONFIG_EXT2_FS is not set
++CONFIG_EXT3_FS=y
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
++# CONFIG_EXT4DEV_FS is not set
++CONFIG_JBD=y
++CONFIG_FS_MBCACHE=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_MINIX_FS is not set
++# CONFIG_ROMFS_FS is not set
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++CONFIG_FUSE_FS=m
++
++#
++# CD-ROM/DVD Filesystems
++#
++CONFIG_ISO9660_FS=m
++# CONFIG_JOLIET is not set
++# CONFIG_ZISOFS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++# CONFIG_MSDOS_FS is not set
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="cp437"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++# CONFIG_TMPFS is not set
++# CONFIG_HUGETLB_PAGE is not set
++CONFIG_CONFIGFS_FS=m
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_AUFS=y
++
++#
++# These options are for 2.6.24.7
++#
++CONFIG_AUFS_BRANCH_MAX_127=y
++# CONFIG_AUFS_BRANCH_MAX_511 is not set
++# CONFIG_AUFS_BRANCH_MAX_1023 is not set
++# CONFIG_AUFS_BRANCH_MAX_32767 is not set
++CONFIG_AUFS_SYSAUFS=y
++# CONFIG_AUFS_HINOTIFY is not set
++
++#
++# EXPORTFS and AUFS_EXPORT are disabled
++#
++# CONFIG_AUFS_ROBR is not set
++# CONFIG_AUFS_DLGT is not set
++# CONFIG_AUFS_SHWH is not set
++CONFIG_AUFS_RR_SQUASHFS=y
++
++#
++# SECURITY and AUFS_SEC_PERM_PATCH are disabled
++#
++# CONFIG_AUFS_SPLICE_PATCH is not set
++# CONFIG_AUFS_LHASH_PATCH is not set
++
++#
++# NFS_V4 and AUFS_PUT_FILP_PATCH are disabled
++#
++# CONFIG_AUFS_WORKAROUND_FUSE is not set
++# CONFIG_AUFS_DEBUG is not set
++# CONFIG_AUFS_COMPAT is not set
++# CONFIG_AUFS_UNIONFS23_PATCH is not set
++# CONFIG_CRAMFS is not set
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=m
++CONFIG_NFS_V3=y
++# CONFIG_NFS_V3_ACL is not set
++# CONFIG_NFS_V4 is not set
++CONFIG_NFS_DIRECTIO=y
++# CONFIG_NFSD is not set
++CONFIG_LOCKD=m
++CONFIG_LOCKD_V4=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=m
++# CONFIG_SUNRPC_BIND34 is not set
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++# CONFIG_PARTITION_ADVANCED is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="cp437"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++# CONFIG_NLS_ASCII is not set
++# CONFIG_NLS_ISO8859_1 is not set
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++CONFIG_NLS_UTF8=y
++# CONFIG_DLM is not set
++CONFIG_INSTRUMENTATION=y
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++# CONFIG_MAGIC_SYSRQ is not set
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++# CONFIG_DEBUG_KERNEL is not set
++CONFIG_FRAME_POINTER=y
++# CONFIG_SAMPLES is not set
++# CONFIG_DEBUG_USER is not set
++CONFIG_DEBUG_S3C_UART=0
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++CONFIG_CRYPTO=y
++CONFIG_CRYPTO_ALGAPI=m
++CONFIG_CRYPTO_BLKCIPHER=m
++CONFIG_CRYPTO_MANAGER=m
++# CONFIG_CRYPTO_HMAC is not set
++# CONFIG_CRYPTO_XCBC is not set
++# CONFIG_CRYPTO_NULL is not set
++# CONFIG_CRYPTO_MD4 is not set
++# CONFIG_CRYPTO_MD5 is not set
++CONFIG_CRYPTO_SHA1=m
++# CONFIG_CRYPTO_SHA256 is not set
++# CONFIG_CRYPTO_SHA512 is not set
++# CONFIG_CRYPTO_WP512 is not set
++# CONFIG_CRYPTO_TGR192 is not set
++# CONFIG_CRYPTO_GF128MUL is not set
++CONFIG_CRYPTO_ECB=m
++# CONFIG_CRYPTO_CBC is not set
++# CONFIG_CRYPTO_PCBC is not set
++# CONFIG_CRYPTO_LRW is not set
++# CONFIG_CRYPTO_XTS is not set
++# CONFIG_CRYPTO_CRYPTD is not set
++# CONFIG_CRYPTO_DES is not set
++# CONFIG_CRYPTO_FCRYPT is not set
++# CONFIG_CRYPTO_BLOWFISH is not set
++# CONFIG_CRYPTO_TWOFISH is not set
++# CONFIG_CRYPTO_SERPENT is not set
++CONFIG_CRYPTO_AES=m
++# CONFIG_CRYPTO_CAST5 is not set
++# CONFIG_CRYPTO_CAST6 is not set
++# CONFIG_CRYPTO_TEA is not set
++CONFIG_CRYPTO_ARC4=m
++# CONFIG_CRYPTO_KHAZAD is not set
++# CONFIG_CRYPTO_ANUBIS is not set
++# CONFIG_CRYPTO_SEED is not set
++# CONFIG_CRYPTO_DEFLATE is not set
++# CONFIG_CRYPTO_MICHAEL_MIC is not set
++# CONFIG_CRYPTO_CRC32C is not set
++# CONFIG_CRYPTO_CAMELLIA is not set
++# CONFIG_CRYPTO_TEST is not set
++# CONFIG_CRYPTO_AUTHENC is not set
++CONFIG_CRYPTO_HW=y
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=m
++CONFIG_CRC_CCITT=m
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=m
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=m
++CONFIG_ZLIB_DEFLATE=m
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_DMA=y
+diff --git a/arch/arm/mach-s3c6400/Makefile b/arch/arm/mach-s3c6400/Makefile
+index 8319eb1..9aa12da 100644
+--- a/arch/arm/mach-s3c6400/Makefile
++++ b/arch/arm/mach-s3c6400/Makefile
+@@ -5,7 +5,7 @@
+
+ # Object file lists.
+ obj-y :=
+-led-y := leds.o
++led-y :=
+ obj-n :=
+ obj- :=
+
+@@ -20,6 +20,6 @@ obj-$(CONFIG_S3C6400_PM) += pm.o
+ obj-$(CONFIG_MACH_SMDK6400) += mach-smdk6400.o
+
+ # LEDs support
+-led-$(CONFIG_MACH_SMDK6400) += leds-s3c6400.o
++led-$(CONFIG_MACH_SMDK6400) += leds.o leds-s3c6400.o
+ obj-$(CONFIG_LEDS) += $(led-y)
+
+diff --git a/arch/arm/mach-s3c6400/leds-s3c6400.c b/arch/arm/mach-s3c6400/leds-s3c6400.c
+index 96e7774..4baa7e2 100644
+--- a/arch/arm/mach-s3c6400/leds-s3c6400.c
++++ b/arch/arm/mach-s3c6400/leds-s3c6400.c
+@@ -19,7 +19,7 @@
+ #include <asm/system.h>
+ #include <asm/mach-types.h>
+
+-#include <asm/arch/regs-gpio.h>
++#include <asm/arch/gpio.h>
+
+ #include "leds.h"
+
+diff --git a/arch/arm/mach-s3c6400/leds.c b/arch/arm/mach-s3c6400/leds.c
+index 557bd42..33fe606 100644
+--- a/arch/arm/mach-s3c6400/leds.c
++++ b/arch/arm/mach-s3c6400/leds.c
+@@ -22,12 +22,12 @@
+ #include <asm/leds.h>
+ #include <asm/mach-types.h>
+
+-#include <asm/arch/regs-gpio.h>
++#include <asm/arch/gpio.h>
+ #include <asm/arch/irqs.h>
+ #include <asm/mach/irq.h>
+ #include "leds.h"
+
+-static irqreturn_t eint9_switch(int irq, void *dev_id, struct pt_regs *regs)
++static irqreturn_t eint9_switch(int irq, void *dev_id)
+ {
+
+ printk("EINT9 interrupt occures!!!\n");
+@@ -47,25 +47,25 @@ s3c6400_leds_init(void)
+ {
+ /*GPN12~15 used for LED*/
+ /*Set GPN12~15 to output mode */
+- gpio_direction_output(S3C_GPN12);
++ gpio_direction_output(S3C_GPN12, 1);
+ if (gpio_get_pin(S3C_GPN12) == 0)
+ {
+ printk(KERN_WARNING "LED: can't set GPN12 output mode\n");
+ }
+
+- gpio_direction_output(S3C_GPN13);
++ gpio_direction_output(S3C_GPN13, 1);
+ if (gpio_get_pin(S3C_GPN13) == 0)
+ {
+ printk(KERN_WARNING "LED: can't set GPN13 output mode\n");
+ }
+
+- gpio_direction_output(S3C_GPN14);
++ gpio_direction_output(S3C_GPN14, 1);
+ if (gpio_get_pin(S3C_GPN14) == 0)
+ {
+ printk(KERN_WARNING "LED: can't set GPN14 output mode\n");
+ }
+
+- gpio_direction_output(S3C_GPN15);
++ gpio_direction_output(S3C_GPN15, 1);
+ if (gpio_get_pin(S3C_GPN15) == 0)
+ {
+ printk(KERN_WARNING "LED: can't set GPN15 output mode\n");
+diff --git a/arch/arm/mach-s3c6400/mach-smdk6400.c b/arch/arm/mach-s3c6400/mach-smdk6400.c
+index 6284fd7..e76a10d 100644
+--- a/arch/arm/mach-s3c6400/mach-smdk6400.c
++++ b/arch/arm/mach-s3c6400/mach-smdk6400.c
+@@ -65,14 +65,6 @@
+ #include <asm/plat-s3c24xx/common-smdk.h>
+ #include <asm/arch-s3c2410/reserved_mem.h>
+
+-#if defined(CONFIG_RTC_DRV_S3C)
+-#include <asm/plat-s3c/regs-rtc.h>
+-#endif
+-
+-#if defined(CONFIG_USB_GADGET_S3C_OTGD_HS) || defined(CONFIG_USB_OHCI_HCD)
+-#include <asm/arch-s3c2410/regs-usb-otg-hs.h>
+-#endif
+-
+ #include <asm/plat-s3c/regs-adc.h>
+ #include <asm/plat-s3c/ts.h>
+
+@@ -146,6 +138,46 @@ static struct s3c2410_uartcfg smdk6400_uartcfgs[] = {
+
+ };
+
++static struct resource s3c64xx_i2c0_resource[] = {
++ [0] = {
++ .start = S3C6400_PA_IIC0,
++ .end = S3C6400_PA_IIC0 + S3C24XX_SZ_IIC - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_IIC0,
++ .end = IRQ_IIC0,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++static struct platform_device s3c64xx_device_i2c0 = {
++ .name = "s3c64xx-i2c",
++ .id = 0, /* This is so the driver gets forced to use bus 0. */
++ .num_resources = ARRAY_SIZE(s3c64xx_i2c0_resource),
++ .resource = s3c64xx_i2c0_resource,
++};
++
++static struct resource s3c64xx_i2c1_resource[] = {
++ [0] = {
++ .start = S3C6400_PA_IIC1,
++ .end = S3C6400_PA_IIC1 + S3C24XX_SZ_IIC - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_IIC1,
++ .end = IRQ_IIC1,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++static struct platform_device s3c64xx_device_i2c1 = {
++ .name = "s3c64xx-i2c",
++ .id = 1, /* This is so the driver gets forced to use bus 0. */
++ .num_resources = ARRAY_SIZE(s3c64xx_i2c1_resource),
++ .resource = s3c64xx_i2c1_resource,
++};
++
+
+
+ /*add devices as drivers are integrated*/
+@@ -155,7 +187,8 @@ static struct platform_device *smdk6400_devices[] __initdata = {
+ &s3c_device_iis,
+ &s3c_device_adc,
+ &s3c_device_ts,
+- &s3c_device_i2c,
++ &s3c64xx_device_i2c0,
++ //&s3c64xx_device_i2c1,
+ &s3c_device_usb,
+ &s3c_device_usbgadget,
+ &s3c_device_usb_otghcd,
+@@ -467,7 +500,9 @@ struct s3c_hsmmc_cfg s3c_hsmmc2_platform = {
+ },
+ };
+
+-#if defined(CONFIG_RTC_DRV_S3C)
++#if defined(CONFIG_RTC_DRV_S3C) || defined(CONFIG_RTC_DRV_S3C_MODULE)
++#include <asm/plat-s3c/regs-rtc.h>
++
+ /* rtc function */
+ unsigned int s3c_rtc_set_bit_byte(void __iomem *base, uint offset, uint val)
+ {
+@@ -475,11 +510,13 @@ unsigned int s3c_rtc_set_bit_byte(void __iomem *base, uint offset, uint val)
+
+ return 0;
+ }
++EXPORT_SYMBOL(s3c_rtc_set_bit_byte);
+
+ unsigned int s3c_rtc_read_alarm_status(void __iomem *base)
+ {
+ return 1;
+ }
++EXPORT_SYMBOL(s3c_rtc_read_alarm_status);
+
+ void s3c_rtc_set_pie(void __iomem *base, uint to)
+ {
+@@ -493,6 +530,7 @@ void s3c_rtc_set_pie(void __iomem *base, uint to)
+ writew(tmp, base + S3C2410_RTCCON);
+
+ }
++EXPORT_SYMBOL(s3c_rtc_set_pie);
+
+ void s3c_rtc_set_freq_regs(void __iomem *base, uint freq, uint *s3c_freq)
+ {
+@@ -504,6 +542,7 @@ void s3c_rtc_set_freq_regs(void __iomem *base, uint freq, uint *s3c_freq)
+ tmp = (32768 / freq)-1;
+ writew(tmp, base + S3C2410_TICNT);
+ }
++EXPORT_SYMBOL(s3c_rtc_set_freq_regs);
+
+ void s3c_rtc_enable_set(struct platform_device *pdev,void __iomem *base, int en)
+ {
+@@ -536,9 +575,13 @@ void s3c_rtc_enable_set(struct platform_device *pdev,void __iomem *base, int en)
+ }
+ }
+ }
++EXPORT_SYMBOL(s3c_rtc_enable_set);
+ #endif
+
+-#if defined(CONFIG_USB_GADGET_S3C_OTGD_HS) || defined(CONFIG_USB_OHCI_HCD)
++#if defined(CONFIG_USB_GADGET_S3C_OTGD_HS) || \
++ defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
++#include <asm/arch-s3c2410/regs-usb-otg-hs.h>
++
+ /* Initializes OTG Phy. */
+ void otg_phy_init(u32 otg_phy_clk) {
+
+@@ -561,7 +604,7 @@ void otg_phy_off(void) {
+ }
+ #endif
+
+-#ifdef CONFIG_USB_OHCI_HCD
++#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
+ void usb_host_clk_en(int usb_host_clksrc, u32 otg_phy_clk) {
+ switch (usb_host_clksrc) {
+ case 0: /* epll clk */
+@@ -591,6 +634,7 @@ void usb_host_clk_en(int usb_host_clksrc, u32 otg_phy_clk) {
+ writel(readl(S3C_SCLK_GATE)|S3C_CLKCON_SCLK_UHOST, S3C_SCLK_GATE);
+
+ }
++EXPORT_SYMBOL(usb_host_clk_en);
+ #endif
+
+ /* smdk6410 adc common function */
+diff --git a/arch/arm/mach-s3c6410/Makefile b/arch/arm/mach-s3c6410/Makefile
+index 7e65ecb..287c6a6 100644
+--- a/arch/arm/mach-s3c6410/Makefile
++++ b/arch/arm/mach-s3c6410/Makefile
+@@ -5,7 +5,7 @@
+
+ # Object file lists.
+ obj-y :=
+-led-y := leds.o
++led-y :=
+ obj-n :=
+ obj- :=
+
+@@ -20,7 +20,7 @@ obj-$(CONFIG_S3C6410_PM) += pm.o
+ # Power Management support
+
+ # LEDs support
+-led-$(CONFIG_MACH_SMDK6410) += leds-s3c6410.o
++led-$(CONFIG_MACH_SMDK6410) += leds.o leds-s3c6410.o
+ obj-$(CONFIG_LEDS) += $(led-y)
+
+ # PWM Support
+diff --git a/arch/arm/mach-s3c6410/clock.c b/arch/arm/mach-s3c6410/clock.c
+index 235c07a..1268a73 100644
+--- a/arch/arm/mach-s3c6410/clock.c
++++ b/arch/arm/mach-s3c6410/clock.c
+@@ -56,7 +56,7 @@
+ #include <asm/arch/regs-usb-otg-hs.h>
+ #endif
+
+-#define HCLK_GATING_ON_LIST S3C_CLKCON_HCLK_BUS | S3C_CLKCON_HCLK_DDR1 | S3C_CLKCON_HCLK_DDR0 |\
++#define HCLK_GATING_ON_LIST /*S3C_CLKCON_HCLK_BUS |*/ S3C_CLKCON_HCLK_DDR1 | S3C_CLKCON_HCLK_DDR0 |\
+ S3C_CLKCON_HCLK_MEM1 | S3C_CLKCON_HCLK_MEM0 | S3C_CLKCON_HCLK_DMA0 |\
+ S3C_CLKCON_HCLK_DMA1 | S3C_CLKCON_HCLK_INTC | S3C_CLKCON_HCLK_LCD |\
+ S3C_CLKCON_HCLK_DHOST | S3C_CLKCON_HCLK_POST0 | S3C_CLKCON_HCLK_MFC
+@@ -349,7 +349,7 @@ static unsigned long s3c6410_getrate_DOUTmpll_hsmmc_clk(struct clk *clk)
+ {
+ unsigned long parent_rate = clk_get_rate(clk->parent);
+ unsigned long div = readl(S3C_CLK_DIV1);
+- div &= ~S3C_CLKDIV1_HSMMCDIV_MASK;
++ div &= ~S3C_CLKDIV1_HSMMCDIV0_MASK;
+
+ /* MMC_RATIO = 2+1 */
+ div |= 0x2;
+@@ -373,6 +373,22 @@ static unsigned long s3c6410_getrate_DOUTmpll_hsmmc1_clk(struct clk *clk)
+ return parent_rate / (0x2 + 1);
+ }
+
++static unsigned long s3c6410_getrate_DOUTmpll_hsmmc2_clk(struct clk *clk)
++{
++ unsigned long parent_rate = clk_get_rate(clk->parent);
++ unsigned long div = readl(S3C_CLK_DIV1);
++ div &= ~S3C_CLKDIV1_HSMMCDIV2_MASK;
++
++ /* MMC1_RATIO = 2+1 */
++ div |= (0x2<<S3C_CLKDIV1_HSMMCDIV2_SHIFT);
++
++ writel(div, S3C_CLK_DIV1);
++
++ return parent_rate / (0x2 + 1);
++}
++
++
++
+ static struct clk clk_hsmmc_DOUTmpll_mmc0 = {
+ .name = "sclk_DOUTmpll_mmc0",
+ .id = -1,
+@@ -399,7 +415,7 @@ static struct clk clk_hsmmc_DOUTmpll_mmc2 = {
+ .parent = &clk_mpll_dout,
+ .enable = s3c6410_clkcon_enable_s,
+ .ctrlbit = S3C_CLKCON_SCLK_MMC2,
+- .get_rate = s3c6410_getrate_DOUTmpll_hsmmc_clk,
++ .get_rate = s3c6410_getrate_DOUTmpll_hsmmc2_clk,
+ .usage = 0,
+ };
+
+diff --git a/arch/arm/mach-s3c6410/leds-s3c6410.c b/arch/arm/mach-s3c6410/leds-s3c6410.c
+index bc1347f..ce7e54d 100644
+--- a/arch/arm/mach-s3c6410/leds-s3c6410.c
++++ b/arch/arm/mach-s3c6410/leds-s3c6410.c
+@@ -19,7 +19,7 @@
+ #include <asm/system.h>
+ #include <asm/mach-types.h>
+
+-#include <asm/arch/regs-gpio.h>
++#include <asm/arch/gpio.h>
+
+ #include "leds.h"
+
+diff --git a/arch/arm/mach-s3c6410/leds.c b/arch/arm/mach-s3c6410/leds.c
+index 8113540..07435b9 100644
+--- a/arch/arm/mach-s3c6410/leds.c
++++ b/arch/arm/mach-s3c6410/leds.c
+@@ -22,12 +22,12 @@
+ #include <asm/leds.h>
+ #include <asm/mach-types.h>
+
+-#include <asm/arch/regs-gpio.h>
++#include <asm/arch/gpio.h>
+ #include <asm/arch/irqs.h>
+ #include <asm/mach/irq.h>
+ #include "leds.h"
+
+-static irqreturn_t eint9_switch(int irq, void *dev_id, struct pt_regs *regs)
++static irqreturn_t eint9_switch(int irq, void *dev_id)
+ {
+
+ printk("EINT9 interrupt occures!!!\n");
+@@ -47,25 +47,25 @@ s3c6410_leds_init(void)
+ {
+ /*GPN12~15 used for LED*/
+ /*Set GPN12~15 to output mode */
+- gpio_direction_output(S3C_GPN12);
++ gpio_direction_output(S3C_GPN12, 1);
+ if(gpio_get_pin(S3C_GPN12) == 0)
+ {
+ printk(KERN_WARNING "LED: can't set GPN12 output mode\n");
+ }
+
+- gpio_direction_output(S3C_GPN13);
++ gpio_direction_output(S3C_GPN13, 1);
+ if(gpio_get_pin(S3C_GPN13) == 0)
+ {
+ printk(KERN_WARNING "LED: can't set GPN13 output mode\n");
+ }
+
+- gpio_direction_output(S3C_GPN14);
++ gpio_direction_output(S3C_GPN14, 1);
+ if(gpio_get_pin(S3C_GPN14) == 0)
+ {
+ printk(KERN_WARNING "LED: can't set GPN14 output mode\n");
+ }
+
+- gpio_direction_output(S3C_GPN15);
++ gpio_direction_output(S3C_GPN15, 1);
+ if(gpio_get_pin(S3C_GPN15) == 0)
+ {
+ printk(KERN_WARNING "LED: can't set GPN15 output mode\n");
+diff --git a/arch/arm/mach-s3c6410/mach-smdk6410.c b/arch/arm/mach-s3c6410/mach-smdk6410.c
+index ec86f3e..74dadd1 100644
+--- a/arch/arm/mach-s3c6410/mach-smdk6410.c
++++ b/arch/arm/mach-s3c6410/mach-smdk6410.c
+@@ -80,6 +80,10 @@
+
+ #include <asm/plat-s3c/regs-adc.h>
+ #include <asm/plat-s3c/ts.h>
++#include <linux/gpio_keys.h> //HHTECH wk
++#include <linux/input.h> //HHTECH wk
++#include <linux/reboot.h>
++#include <asm/plat-s3c64xx/hhtech_gpio.h>
+
+ extern struct sys_timer s3c_timer;
+
+@@ -264,6 +268,138 @@ static struct i2c_board_info i2c_devs1[] __initdata = {
+ { I2C_BOARD_INFO("24c128", 0x57), },
+ };
+
++#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
++static struct resource dm9000_resources[] = {
++ [0] = {
++ .start = S3C24XX_VA_CS8900 + 0x300,
++ .end = S3C24XX_VA_CS8900 + S3C24XX_SZ_CS8900 - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_EINT10,
++ .end = IRQ_EINT10,
++ .flags = IORESOURCE_MEM,
++ },
++};
++
++static struct platform_device s3c_device_dm9000 = {
++ .name = "dm9000",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(dm9000_resources),
++ .resource = dm9000_resources,
++};
++#endif
++/////////////////////////////////////////////////////HHTECH wk////////////////
++/*
++ * GPIO Buttons
++ */
++#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
++//static struct gpio_keys_button hhmid_buttons[] __initdata = {
++static struct gpio_keys_button hhmid_buttons[] = {
++#if defined (CONFIG_LCD_4)
++ {
++ .gpio = S3C_GPN2, //32*16 + 2
++ .code = KEY_PAGEDOWN,
++ .desc = "Button 0",
++ .active_low = 1,
++ .debounce_interval = 5,
++ },
++ {
++ .gpio = S3C_GPN12,
++ .code = KEY_PAGEUP,
++ .desc = "Button 3",
++ .active_low = 1,
++ .debounce_interval = 5,
++ },
++ {
++ .gpio = S3C_GPN15,
++ .code = KEY_LEFTALT,
++ .desc = "Button 4",
++ .active_low = 1,
++ .debounce_interval = 5,
++ },
++#else
++ {
++ .gpio = S3C_GPN4,
++ .code = KEY_PAGEUP,
++ .desc = "Button 0",
++ .active_low = 1,
++ .debounce_interval = 5,
++ },
++ {
++ .gpio = S3C_GPN3,
++ .code = KEY_PAGEDOWN,
++ .desc = "Button 1",
++ .active_low = 1,
++ .debounce_interval = 5,
++ },
++ {
++ .gpio = S3C_GPN2, //32*16 + 2
++ .code = KEY_LEFTALT,
++ .desc = "Button 2",
++ .active_low = 1,
++ .debounce_interval = 5,
++ },
++ {
++ .gpio = S3C_GPN15,
++ .code = KEY_ENTER,
++ .desc = "Button 3",
++ .active_low = 1,
++ .debounce_interval = 5,
++ },
++ {
++ .gpio = S3C_GPN12,
++ .code = KEY_ESC,
++ .desc = "Button 4",
++ .active_low = 1,
++ .debounce_interval = 5,
++ },
++#endif
++};
++
++//static struct gpio_keys_platform_data hhmid_button_data __initdata = {
++static struct gpio_keys_platform_data hhmid_button_data = {
++ .buttons = hhmid_buttons,
++ .nbuttons = ARRAY_SIZE(hhmid_buttons),
++};
++
++static struct platform_device hhmid_button_device = {
++ .name = "gpio-keys",
++ .id = 0,
++ .num_resources = 0,
++ .dev = {
++ .platform_data = &hhmid_button_data,
++ }
++};
++
++//*************************************************************************************
++static struct gpio_keys_button hhmid_buttons_2[] = {
++ {
++ .gpio = S3C_GPL14,
++ .code = KEY_POWER,
++ .desc = "Button 5",
++ .active_low = 1,
++ .debounce_interval = 5,
++ },
++
++};
++static struct gpio_keys_platform_data hhmid_button_data_2 = {
++ .buttons = hhmid_buttons_2,
++ .nbuttons = ARRAY_SIZE(hhmid_buttons_2),
++ .rep = 1,
++};
++
++static struct platform_device hhmid_button_device_2 = {
++ .name = "gpio-keys",
++ .id = 1,
++ .num_resources = 0,
++ .dev = {
++ .platform_data = &hhmid_button_data_2,
++ }
++};
++#endif
++/* HHTECH wk */
++
+ /* Add devices as drivers are integrated */
+ static struct platform_device *smdk6410_devices[] __initdata = {
+ &s3c_device_rtc,
+@@ -273,13 +409,16 @@ static struct platform_device *smdk6410_devices[] __initdata = {
+ &s3c_device_adc,
+ &s3c64xx_device_i2c0,
+ &s3c64xx_device_i2c1,
++ &hhmid_button_device,
++ &hhmid_button_device_2,
++ &s3c_gpio,
+ &s3c_device_usb,
+ &s3c_device_usbgadget,
+ &s3c_device_usb_otghcd,
+ &s3c_device_tvenc,
+ &s3c_device_tvscaler,
++ &s3c_device_hsmmc1, /* INAND initialize before SD card */
+ &s3c_device_hsmmc0,
+- &s3c_device_hsmmc1,
+ &s3c_device_hsmmc2,
+ &s3c_device_wdt,
+ &s3c_device_jpeg,
+@@ -294,11 +433,33 @@ static struct platform_device *smdk6410_devices[] __initdata = {
+ &s3c_device_mfc,
+ &s3c_device_g3d,
+ &s3c_device_rotator,
++#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
++ &s3c_device_dm9000,
++#endif
+ };
+
++extern void s3cfb_clear_lcd(int flag);
++
++static void s3c6410_power_off(void)
++{
++ int dc_status = 0;
++#if defined (CONFIG_LCD_4)
++ dc_status = gpio_get_value(GPIO_DC_DETE);
++#else
++ dc_status = !gpio_get_value(GPIO_DC_DETE);
++#endif
++
++ if(dc_status)
++ machine_restart(NULL);
++ else {
++ s3cfb_clear_lcd(0); // clear the LCD screen to white
++ gpio_direction_output(S3C_GPK15, 1);
++ }
++}
+
+ static void __init smdk6410_map_io(void)
+ {
++ pm_power_off = s3c6410_power_off;
+ s3c24xx_init_io(smdk6410_iodesc, ARRAY_SIZE(smdk6410_iodesc));
+ s3c24xx_init_clocks(0);
+ s3c24xx_init_uarts(smdk6410_uartcfgs, ARRAY_SIZE(smdk6410_uartcfgs));
+@@ -366,14 +527,16 @@ static void __init smdk6410_fixup (struct machine_desc *desc, struct tag *tags,
+ static void smdk6410_hsmmc_init (void)
+ {
+ /* hsmmc data strength */
+- writel(readl(S3C_SPCON) | (0x3 << 26), S3C_SPCON);
++ writel(readl(S3C_SPCON) | (0x3 << 26) | (0x3 << 18), S3C_SPCON);
+
+ /* jsgood: hsmmc0/1 card detect pin should be high before setup gpio. (GPG6 to Input) */
+ writel(readl(S3C_GPGCON) & 0xf0ffffff, S3C_GPGCON);
+
++ #if 0
+ /* GPIO N 13 (external interrupt) : Chip detect */
+ gpio_set_pin(S3C_GPN13, S3C_GPN13_EXTINT13); /* GPN13 to EINT13 */
+ gpio_pullup(S3C_GPN13, 0x2); /* Pull-up Enable */
++ #endif
+
+ /* jsgood: MUXmmc# to DOUTmpll for MPLL Clock Source */
+ writel((readl(S3C_CLK_SRC) & ~(0x3f << 18)) | (0x15 << 18), S3C_CLK_SRC);
+@@ -433,7 +596,6 @@ static void __init smdk6410_machine_init (void)
+ }
+
+ smdk_machine_init();
+-
+ smdk6410_hsmmc_init();
+ smdk6410_set_qos();
+ }
+@@ -473,7 +635,7 @@ void hsmmc_set_gpio (uint channel, uint width)
+ gpio_pullup(S3C_GPG1, 0x0); /* Pull-up/down disable */
+
+ /* GPIO G : Chip detect + LED */
+- gpio_set_pin(S3C_GPG6, S3C_GPG6_MMC_CD1);
++ gpio_set_pin(S3C_GPG6, S3C_GPG6_MMC_CD0);
+ gpio_pullup(S3C_GPG6, 0x2); /* Pull-up Enable */
+
+ if (width == 1) {
+@@ -506,8 +668,10 @@ void hsmmc_set_gpio (uint channel, uint width)
+ gpio_pullup(S3C_GPH1, 0x0); /* Pull-up/down disable */
+
+ /* GPIO G : Chip detect + LED */
++ #if 0
+ gpio_set_pin(S3C_GPG6, S3C_GPG6_MMC_CD1);
+ gpio_pullup(S3C_GPG6, 0x2); /* Pull-up Enable */
++ #endif
+
+ if (width == 1) {
+ /* GPIO H : MMC DATA1[0] */
+@@ -552,15 +716,18 @@ void hsmmc_set_gpio (uint channel, uint width)
+ /* can supports 1 and 4 bit bus, no irq_cd */
+ case 2:
+ /* GPIO H : Command, Clock */
+- gpio_set_pin(S3C_GPH0, S3C_GPH0_MMC_CLK1);
+- gpio_set_pin(S3C_GPH1, S3C_GPH1_MMC_CMD1);
+
+- gpio_pullup(S3C_GPH0, 0x0); /* Pull-up/down disable */
+- gpio_pullup(S3C_GPH1, 0x0); /* Pull-up/down disable */
++ gpio_set_pin(S3C_GPC4, S3C_GPC4_MMC_CMD2);
++ gpio_set_pin(S3C_GPC5, S3C_GPC5_MMC_CLK2);
+
++ gpio_pullup(S3C_GPC4, 0x0); /* Pull-up/down disable */
++ gpio_pullup(S3C_GPC5, 0x0); /* Pull-up/down disable */
++
++ #if 0
+ /* GPIO G : Chip detect + LED */
+ gpio_set_pin(S3C_GPG6, S3C_GPG6_MMC_CD1);
+ gpio_pullup(S3C_GPG6, 0x2); /* Pull-up Enable */
++ #endif
+
+ if (width == 1) {
+ /* GPIO H : MMC DATA1[0] */
+@@ -580,7 +747,6 @@ void hsmmc_set_gpio (uint channel, uint width)
+ gpio_pullup(S3C_GPH8, 0x0); /* Pull-up/down disable */
+ gpio_pullup(S3C_GPH9, 0x0); /* Pull-up/down disable */
+ }
+-
+ break;
+
+ default:
+@@ -596,10 +762,11 @@ EXPORT_SYMBOL(hsmmc_set_gpio);
+
+ struct s3c_hsmmc_cfg s3c_hsmmc0_platform = {
+ .hwport = 0,
+- .enabled = 0,
++ .enabled = 1,
+ .host_caps = HOST_CAPS,
+ .bus_width = 4,
+- .highspeed = 0,
++ .highspeed = 0, /* High speed for mmc channel 0, SD clock up to 50M*/
++ .max_clock = 50 * 1000 * 1000,
+
+ /* ctrl for mmc */
+ .fd_ctrl[MMC_TYPE_MMC] = {
+@@ -617,6 +784,13 @@ struct s3c_hsmmc_cfg s3c_hsmmc0_platform = {
+ .ctrl4 = 0x3,
+ },
+
++ .fd_ctrl[MMC_TYPE_SDIO] = {
++ .ctrl2 = 0xC0004100, /* ctrl2 for sdio */
++ .ctrl3[SPEED_NORMAL] = 0x80808080, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0x00008080, /* ctrl3 for high speed */
++ .ctrl4 = 0x3,
++ },
++
+ .clocks[0] = {
+ .name = "sclk_DOUTmpll_mmc0",
+ .src = 0x2,
+@@ -632,6 +806,7 @@ struct s3c_hsmmc_cfg s3c_hsmmc1_platform = {
+ //.bus_width = 8,
+
+ .highspeed = 0,
++ .max_clock = 25 * 1000 * 1000,
+
+ /* ctrl for mmc */
+ .fd_ctrl[MMC_TYPE_MMC] = {
+@@ -649,6 +824,13 @@ struct s3c_hsmmc_cfg s3c_hsmmc1_platform = {
+ .ctrl4 = 0x3,
+ },
+
++ .fd_ctrl[MMC_TYPE_SDIO] = {
++ .ctrl2 = 0xC0004100, /* ctrl2 for sdio */
++ .ctrl3[SPEED_NORMAL] = 0x80808080, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0x00008080, /* ctrl3 for high speed */
++ .ctrl4 = 0x3,
++ },
++
+ .clocks[0] = {
+ .name = "sclk_DOUTmpll_mmc1",
+ .src = 0x2,
+@@ -657,10 +839,11 @@ struct s3c_hsmmc_cfg s3c_hsmmc1_platform = {
+
+ struct s3c_hsmmc_cfg s3c_hsmmc2_platform = {
+ .hwport = 2,
+- .enabled = 0,
+- .host_caps = HOST_CAPS,
++ .enabled = 1,
++ .host_caps = HOST_CAPS | MMC_CAP_SDIO_IRQ,
+ .bus_width = 4,
+ .highspeed = 0,
++ .max_clock = 25 * 1000 * 1000,
+
+ /* ctrl for mmc */
+ .fd_ctrl[MMC_TYPE_MMC] = {
+@@ -678,6 +861,13 @@ struct s3c_hsmmc_cfg s3c_hsmmc2_platform = {
+ .ctrl4 = 0x3,
+ },
+
++ .fd_ctrl[MMC_TYPE_SDIO] = {
++ .ctrl2 = 0xC0004100, /* ctrl2 for sdio */
++ .ctrl3[SPEED_NORMAL] = 0x80808080, /* ctrl3 for low speed */
++ .ctrl3[SPEED_HIGH] = 0x00008080, /* ctrl3 for high speed */
++ .ctrl4 = 0x3,
++ },
++
+ .clocks[0] = {
+ .name = "sclk_DOUTmpll_mmc2",
+ .src = 0x2,
+@@ -774,7 +964,6 @@ void otg_phy_init(u32 otg_phy_clk) {
+ writel(0x0, S3C_USBOTG_RSTCON);
+ udelay(50);
+ }
+-
+ EXPORT_SYMBOL(otg_phy_init);
+
+ /* USB Control request data struct must be located here for DMA transfer */
+@@ -783,10 +972,11 @@ EXPORT_SYMBOL(usb_ctrl);
+
+ /* OTG PHY Power Off */
+ void otg_phy_off(void) {
++#if 0 /* Prevent usb host can't work by BXL */
+ writel(readl(S3C_USBOTG_PHYPWR)|(0x1F<<1), S3C_USBOTG_PHYPWR);
+ writel(readl(S3C_OTHERS)&~S3C_OTHERS_USB_SIG_MASK, S3C_OTHERS);
++#endif
+ }
+-
+ EXPORT_SYMBOL(otg_phy_off);
+ #endif
+
+@@ -828,7 +1018,7 @@ EXPORT_SYMBOL(usb_host_clk_en);
+ struct s3c_adc_cfg s3c_adc_platform={
+ /* s3c6410 support 12-bit resolution */
+ .delay = 10000,
+- .presc = 49,
++ .presc = 99,
+ .resolution = 12,
+ };
+
+@@ -860,9 +1050,9 @@ EXPORT_SYMBOL(s3c_adc_convert);
+
+
+ struct s3c_ts_mach_info s3c_ts_platform = {
+- .delay = 10000,
+- .presc = 49,
+- .oversampling_shift = 2,
++ .delay = 65535,
++ .presc = 99,
++ .oversampling_shift = 4,
+ .resol_bit = 12,
+ };
+
+diff --git a/arch/arm/mach-s3c6410/pwm/pwm-s3c6410.c b/arch/arm/mach-s3c6410/pwm/pwm-s3c6410.c
+index f6203ce..17a4fe2 100644
+--- a/arch/arm/mach-s3c6410/pwm/pwm-s3c6410.c
++++ b/arch/arm/mach-s3c6410/pwm/pwm-s3c6410.c
+@@ -93,7 +93,7 @@ int s3c6410_timer_setup (int channel, int usec, unsigned long g_tcnt, unsigned l
+ unsigned long pclk;
+ struct clk *clk;
+
+- printk("PWM channel %d set g_tcnt = %ld, g_tcmp = %ld \n", channel, g_tcnt, g_tcmp);
++ //printk("PWM channel %d set g_tcnt = %ld, g_tcmp = %ld \n", channel, g_tcnt, g_tcmp);
+
+ tcnt = 0xffffffff; /* default value for tcnt */
+
+@@ -134,7 +134,7 @@ int s3c6410_timer_setup (int channel, int usec, unsigned long g_tcnt, unsigned l
+ tcfg1 |= S3C_TCFG1_MUX1_DIV2;
+
+ tcfg0 &= ~S3C_TCFG_PRESCALER0_MASK;
+- tcfg0 |= (PRESCALER) << S3C_TCFG_PRESCALER0_SHIFT;
++ tcfg0 |= (0) << S3C_TCFG_PRESCALER0_SHIFT;
+
+ tcon &= ~(7<<8);
+ tcon |= S3C_TCON_T1RELOAD;
+@@ -216,6 +216,7 @@ int s3c6410_timer_setup (int channel, int usec, unsigned long g_tcnt, unsigned l
+
+ return 0;
+ }
++EXPORT_SYMBOL(s3c6410_timer_setup);
+
+
+ static irqreturn_t s3c6410_pwm_irq(int irq, void *devpw)
+diff --git a/arch/arm/plat-s3c24xx/devs.c b/arch/arm/plat-s3c24xx/devs.c
+index 10007c8..5a69455 100644
+--- a/arch/arm/plat-s3c24xx/devs.c
++++ b/arch/arm/plat-s3c24xx/devs.c
+@@ -1078,12 +1078,14 @@ static struct resource s3c_hsmmc0_resource[] = {
+ .end = IRQ_HSMMC0,
+ .flags = IORESOURCE_IRQ,
+ },
++ #if 0
+ /* To detect a card inserted, use an external interrupt */
+ [2] = {
+ .start = IRQ_EINT13,
+ .end = IRQ_EINT13,
+ .flags = IORESOURCE_IRQ,
+ }
++ #endif
+ };
+
+ static struct resource s3c_hsmmc1_resource[] = {
+@@ -1110,11 +1112,13 @@ static struct resource s3c_hsmmc2_resource[] = {
+ .end = IRQ_HSMMC2,
+ .flags = IORESOURCE_IRQ,
+ },
++ #if 0
+ [2] = {
+ .start = IRQ_EINT15,
+ .end = IRQ_EINT15,
+ .flags = IORESOURCE_IRQ,
+ }
++ #endif
+ };
+
+ struct platform_device s3c_device_hsmmc0 = {
+@@ -1453,5 +1457,12 @@ struct platform_device s3c_device_smc911x = {
+ .resource = s3c_smc911x_resources,
+ };
+ EXPORT_SYMBOL(s3c_device_smc911x);
++
++struct platform_device s3c_gpio = {
++ .name = "hhtech_gpio",
++ .id = -1,
++ .num_resources = 0,
++};
++EXPORT_SYMBOL(s3c_gpio);
+ #endif
+
+diff --git a/arch/arm/plat-s3c24xx/gpio.c b/arch/arm/plat-s3c24xx/gpio.c
+index 28f1dc0..b2c986b 100644
+--- a/arch/arm/plat-s3c24xx/gpio.c
++++ b/arch/arm/plat-s3c24xx/gpio.c
+@@ -377,6 +377,7 @@ unsigned int s3c_gpio_getpin(unsigned int pin)
+ {
+ void __iomem *base = gpio_base_offset[S3C_GPIO_BASE(pin)];
+ unsigned long offs = S3C_GPIO_OFFSET(pin);
++ unsigned long dat; //HHTECH wk
+
+ if((pin>=S3C_GPH0 && pin<=S3C_GPH9)||\
+ (pin>=S3C_GPK0 && pin<=S3C_GPK15)||\
+@@ -384,17 +385,29 @@ unsigned int s3c_gpio_getpin(unsigned int pin)
+ {
+ base = base+0x04;
+ }
+- return __raw_readl(base + 0x04) & (1<< offs);
++ //return __raw_readl(base + 0x04) & (1<< offs); //HHTECH wk orign
++ dat = __raw_readl(base + 0x04) & (1<< offs); //HHTECH wk
++// printk("get GPXDAT pin status!\n"); //HHTECH wk
++ return (dat >> offs);
+ }
+-
+ EXPORT_SYMBOL(s3c_gpio_getpin);
+
+ int s3c_gpio_getirq(unsigned int pin)
+ {
+-
+ /* mandatory */
+ /* Implement this function */
+- return 0;
++//return 0;
++// printk("gpio->irq begin *****************************\n"); //HHTECH wk
++ if (pin >=S3C_GPN0 && pin <=S3C_GPN15)
++ return ((pin-S3C_GPN0) + 64);
++ else
++ {if(pin >= S3C_GPL8 && pin <= S3C_GPL14)
++ return ((pin - S3C_GPL8) + 80); // include/asm-arm/arch-s3c2410/irqs.h
++ else
++ { printk("Plese implement other GPIO interrupts except GPN0~GPN15\n");
++ return -1;
++ }
++ }
+ }
+
+ EXPORT_SYMBOL(s3c_gpio_getirq);
+diff --git a/arch/arm/plat-s3c64xx/Makefile b/arch/arm/plat-s3c64xx/Makefile
+index bce4072..0e442b5 100644
+--- a/arch/arm/plat-s3c64xx/Makefile
++++ b/arch/arm/plat-s3c64xx/Makefile
+@@ -28,4 +28,4 @@ obj-$(CONFIG_PM) += pm.o
+ obj-$(CONFIG_PM) += sleep.o
+ obj-$(CONFIG_S3C64XX_DVFS) += s3c64xx-dvfs.o
+ obj-$(CONFIG_CPU_FREQ) += s3c64xx-cpufreq.o
+-obj-$(CONFIG_CPU_FREQ) += ltc3714.o
++#obj-$(CONFIG_CPU_FREQ) += ltc3714.o
+diff --git a/arch/arm/plat-s3c64xx/irq-pl192.c b/arch/arm/plat-s3c64xx/irq-pl192.c
+index 52d0234..e078316 100644
+--- a/arch/arm/plat-s3c64xx/irq-pl192.c
++++ b/arch/arm/plat-s3c64xx/irq-pl192.c
+@@ -270,6 +270,61 @@ s3c_irqext_type(unsigned int irq, unsigned int type)
+ }
+
+ switch (irq) {
++////////////////////////////////HHTECH wk //////////////////////////////////
++
++ case IRQ_EINT0:
++ gpio_set_pin(S3C_GPN0, S3C_GPN0_EXTINT0);
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 0)) |
++ (newvalue << 0), S3C_EINTCON0);
++ break;
++
++ case IRQ_EINT1:
++ gpio_set_pin(S3C_GPN1, S3C_GPN1_EXTINT1);
++ __raw_writel((__raw_readl(S3C_EINTCON1) & ~(0x7 << 0)) |
++ (newvalue << 0), S3C_EINTCON0);
++ break;
++
++ case IRQ_EINT2:
++ gpio_set_pin(S3C_GPN2, S3C_GPN2_EXTINT2);
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 4)) |
++ (newvalue << 4), S3C_EINTCON0);
++ break;
++
++ case IRQ_EINT3:
++ gpio_set_pin(S3C_GPN3, S3C_GPN3_EXTINT3);
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 4)) |
++ (newvalue << 4), S3C_EINTCON0);
++ break;
++
++ case IRQ_EINT4:
++ gpio_set_pin(S3C_GPN4, S3C_GPN4_EXTINT4);
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 8)) |
++ (newvalue << 8), S3C_EINTCON0);
++ break;
++ case IRQ_EINT5:
++ gpio_set_pin(S3C_GPN5, S3C_GPN5_EXTINT5);
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 8)) |
++ (newvalue << 8), S3C_EINTCON0);
++ break;
++ case IRQ_EINT6:
++ gpio_set_pin(S3C_GPN6, S3C_GPN6_EXTINT6);
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 12)) |
++ (newvalue << 12), S3C_EINTCON0);
++ break;
++
++ case IRQ_EINT7:
++ gpio_set_pin(S3C_GPN7, S3C_GPN7_EXTINT7);
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 12)) |
++ (newvalue << 12), S3C_EINTCON0);
++ break;
++
++ case IRQ_EINT8:
++ gpio_set_pin(S3C_GPN8, S3C_GPN8_EXTINT8);
++ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 16)) |
++ (newvalue << 16), S3C_EINTCON0);
++ break;
++////////////////////////////////HHTECH wk //////////////////////////////////
++
+ case IRQ_EINT9:
+ gpio_set_pin(S3C_GPN9, S3C_GPN9_EXTINT9);
+ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 16)) |
+@@ -293,26 +348,39 @@ s3c_irqext_type(unsigned int irq, unsigned int type)
+ (newvalue << 24), S3C_EINTCON0);
+ break;
+
+- case IRQ_EINT13:
+- gpio_set_pin(S3C_GPN13, S3C_GPN13_EXTINT13);
+- __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 24)) |
+- (newvalue << 24), S3C_EINTCON0);
+- break;
+-
+- case IRQ_EINT14:
+- gpio_set_pin(S3C_GPN14, S3C_GPN14_EXTINT14);
+- __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 28)) |
+- (newvalue << 28), S3C_EINTCON0);
+- break;
+-
+ case IRQ_EINT15:
+ gpio_set_pin(S3C_GPN15, S3C_GPN15_EXTINT15);
+ __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 28)) |
+ (newvalue << 28), S3C_EINTCON0);
+ break;
++////////////////////////////////////////////////////////////////
++ case IRQ_EINT18:
++ gpio_set_pin(S3C_GPL10, S3C_GPL10_EXTINT18);
++ __raw_writel((__raw_readl(S3C_EINTCON1) & ~(0xf << 4)) |
++ (newvalue << 4), S3C_EINTCON1);
++ break;
++
++ case IRQ_EINT19:
++ gpio_set_pin(S3C_GPL11, S3C_GPL11_EXTINT19);
++ __raw_writel((__raw_readl(S3C_EINTCON1) & ~(0xf << 4)) |
++ (newvalue << 4), S3C_EINTCON1);
++ break;
++
++ case IRQ_EINT20:
++ gpio_set_pin(S3C_GPL12, S3C_GPL12_EXTINT20);
++ __raw_writel((__raw_readl(S3C_EINTCON1) & ~(0xf << 8)) |
++ (newvalue << 8), S3C_EINTCON1);
++ break;
++
++ case IRQ_EINT22:
++ gpio_set_pin(S3C_GPL14, S3C_GPL14_EXTINT22);
++ __raw_writel((__raw_readl(S3C_EINTCON1) & ~(0xf << 12)) |
++ (newvalue << 12), S3C_EINTCON1);
++ break;
++/////////////////////////////////////////////////////////////////////////
+ default:
+ printk(KERN_ERR
+- "s3c_irqext_type : Only support EINT9,10,11,12,13,14,15 interrupt.\n");
++ "ttttttttttttttttttttt s3c_irqext_type : Only support EINT9,10,11,12,13,14,15,22 interrupt.\n");
+ break;
+
+ }
+diff --git a/arch/arm/plat-s3c64xx/pm.c b/arch/arm/plat-s3c64xx/pm.c
+index 08efe07..8f8ce9a 100644
+--- a/arch/arm/plat-s3c64xx/pm.c
++++ b/arch/arm/plat-s3c64xx/pm.c
+@@ -30,6 +30,7 @@
+ #include <linux/suspend.h>
+ #include <linux/errno.h>
+ #include <linux/time.h>
++#include <linux/jiffies.h>
+ #include <linux/interrupt.h>
+ #include <linux/crc32.h>
+ #include <linux/ioport.h>
+@@ -53,6 +54,8 @@
+
+ #include <asm/plat-s3c24xx/pm.h>
+ #include <asm/mach/irq.h>
++#include <linux/rtc.h>
++#include <asm/plat-s3c64xx/hhtech_gpio.h>
+
+ /* for external use */
+
+@@ -237,6 +240,22 @@ static struct sleep_save sromc_save[] = {
+ SAVE_ITEM(S3C_SROM_BC5),
+ };
+
++static struct sleep_save clock_save[] = {
++ SAVE_ITEM(S3C_APLL_CON),
++ SAVE_ITEM(S3C_MPLL_CON),
++ SAVE_ITEM(S3C_EPLL_CON0),
++ SAVE_ITEM(S3C_EPLL_CON1),
++ SAVE_ITEM(S3C_CLK_SRC),
++ SAVE_ITEM(S3C_CLK_SRC2),
++ SAVE_ITEM(S3C_CLK_DIV0),
++ SAVE_ITEM(S3C_CLK_DIV1),
++ SAVE_ITEM(S3C_CLK_DIV2),
++ SAVE_ITEM(S3C_CLK_OUT),
++ SAVE_ITEM(S3C_HCLK_GATE),
++ SAVE_ITEM(S3C_PCLK_GATE),
++ SAVE_ITEM(S3C_SCLK_GATE),
++};
++
+ #endif
+
+ #ifdef CONFIG_S3C2410_PM_DEBUG
+@@ -603,26 +622,46 @@ static void s3c2410_pm_show_resume_irqs(int start, unsigned long which,
+ extern int s3c_irqext_type(unsigned int irq, unsigned int type);
+ extern void s3c_irqext_unmaskack(unsigned int irqno);
+ #endif
++extern void s3c_rtc_setaie(int to);
++extern int s3c_rtc_gettime(struct device *dev, struct rtc_time *rtc_tm);
++extern int s3c_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm);
++extern unsigned long rtc_wakeup_time;
+
+ static void s3c6410_pm_configure_extint(void)
+ {
++ int dc_status;
++ struct timeval tv;
++ unsigned long now_seconds, alrm_seconds;
++ struct rtc_time now_time, alrm_time;
++ struct rtc_wkalrm wkalrm;
++
++#if defined (CONFIG_LCD_4)
++ dc_status = gpio_get_value(GPIO_DC_DETE) ? 1 : 0;
++#else
++ dc_status = gpio_get_value(GPIO_DC_DETE) ? 0 : 1;
++#endif
+
+- /* for each of the external interrupts (EINT0..EINT15) we
+- * need to check wether it is an external interrupt source,
+- * and then configure it as an input if it is not
+- */
+-
+- gpio_set_pin(S3C_GPN10, S3C_GPN10_EXTINT10);
+- gpio_pullup(S3C_GPN10, 2);
+- udelay(50);
+-
+- __raw_writel((__raw_readl(S3C_EINTCON0) & ~(0x7 << 20)) |
+- (S3C_EXTINT_FALLEDGE << 20), S3C_EINTCON0);
+-
+- __raw_writel(1UL << (IRQ_EINT10 - IRQ_EINT0), S3C_EINTPEND);
+- __raw_writel(__raw_readl(S3C_EINTMASK)&~(1UL << (IRQ_EINT10 - IRQ_EINT0)), S3C_EINTMASK);
++ if(0 == dc_status) {
++ /* make system wake up after rtc_wakeup_time seconds by RTC alarm */
++ s3c_rtc_gettime(NULL, &now_time);
++ rtc_tm_to_time(&now_time, &now_seconds);
++ alrm_seconds = now_seconds + rtc_wakeup_time;
++ rtc_time_to_tm(alrm_seconds, &alrm_time);
++ wkalrm.enabled = 1;
++ wkalrm.pending = 0;
++ wkalrm.time = alrm_time;
++ s3c_rtc_setalarm(NULL, &wkalrm);
++ s3c_rtc_setaie(1);
++ }
+
+- __raw_writel((0x0fffffff&~(3<<9)), S3C_EINT_MASK);
++ /* make the POWER key: GPL14 the wakeup source, but the other keys are excluded */
++ set_irq_wake(IRQ_EINT12, 0); // GPN12 is excluded
++ set_irq_wake(IRQ_EINT15, 0); // GPN15 is excluded
++ set_irq_wake(IRQ_EINT2, 0); // GPN2 is excluded
++#if defined (CONFIG_LCD_7)
++ set_irq_wake(IRQ_EINT3, 0); // GPN3 is excluded
++ set_irq_wake(IRQ_EINT4, 0); // GPN4 is excluded
++#endif
+ }
+
+ void (*pm_cpu_prep)(void);
+@@ -654,10 +693,12 @@ static int s3c6410_pm_enter(suspend_state_t state)
+ s3c2410_sleep_save_phys = virt_to_phys(regs_save);
+
+ /* save all necessary core registers not covered by the drivers */
++ //gpio_direction_output(S3C_GPF15, 0); // close the backlight of LCD
+ s3c2410_pm_do_save(gpio_save, ARRAY_SIZE(gpio_save));
+ s3c2410_pm_do_save(irq_save, ARRAY_SIZE(irq_save));
+ s3c2410_pm_do_save(core_save, ARRAY_SIZE(core_save));
+ s3c2410_pm_do_save(sromc_save, ARRAY_SIZE(sromc_save));
++ s3c2410_pm_do_save(clock_save, ARRAY_SIZE(clock_save));
+
+ /* ensure INF_REG0 has the resume address */
+ __raw_writel(virt_to_phys(s3c2410_cpu_resume), S3C_INFORM0);
+@@ -721,6 +762,7 @@ static int s3c6410_pm_enter(suspend_state_t state)
+ cpu_init();
+
+ /* restore the system state */
++ s3c2410_pm_do_restore(clock_save, ARRAY_SIZE(clock_save));
+ s3c2410_pm_do_restore_core(core_save, ARRAY_SIZE(core_save));
+ s3c2410_pm_do_restore(sromc_save, ARRAY_SIZE(sromc_save));
+ s3c2410_pm_do_restore(gpio_save, ARRAY_SIZE(gpio_save));
+@@ -733,6 +775,14 @@ static int s3c6410_pm_enter(suspend_state_t state)
+
+ s3c2410_pm_check_restore();
+
++ /* Enable all the keys function after waken up from sleep mode */
++ set_irq_wake(IRQ_EINT12, 1);
++ set_irq_wake(IRQ_EINT15, 1);
++ set_irq_wake(IRQ_EINT2, 1);
++#if defined (CONFIG_LCD_7)
++ set_irq_wake(IRQ_EINT3, 1);
++ set_irq_wake(IRQ_EINT4, 1);
++#endif
+ /* ok, let's return from sleep */
+ DBG("S3C6400 PM Resume (post-restore)\n");
+ return 0;
+diff --git a/arch/arm/plat-s3c64xx/s3c64xx-cpufreq.c b/arch/arm/plat-s3c64xx/s3c64xx-cpufreq.c
+index 2e10ea9..a509071 100644
+--- a/arch/arm/plat-s3c64xx/s3c64xx-cpufreq.c
++++ b/arch/arm/plat-s3c64xx/s3c64xx-cpufreq.c
+@@ -27,9 +27,10 @@
+ #include <asm/system.h>
+
+ #define USE_FREQ_TABLE
+-#define USE_DVS
++//#define USE_DVS
+ #define VERY_HI_RATE 532*1000*1000
+ #define APLL_GEN_CLK 532*1000 //khz
++#define APLL_GEN_CLK2 400*1000 //khz
+ #define KHZ_T 1000
+
+ #define MPU_CLK "fclk"
+@@ -43,9 +44,13 @@ extern int ltc3714_init(void);
+
+ /* frequency */
+ static struct cpufreq_frequency_table s3c6410_freq_table[] = {
++ {APLL_GEN_CLK, 667*1000},
+ {APLL_GEN_CLK, APLL_GEN_CLK},
++ {APLL_GEN_CLK, APLL_GEN_CLK2},
+ {APLL_GEN_CLK, APLL_GEN_CLK/2},
++ {APLL_GEN_CLK, APLL_GEN_CLK2/2},
+ {APLL_GEN_CLK, APLL_GEN_CLK/4},
++ {APLL_GEN_CLK, APLL_GEN_CLK2/4},
+ {0, CPUFREQ_TABLE_END},
+ };
+
+diff --git a/arch/arm/vfp/entry.S b/arch/arm/vfp/entry.S
+index 806ce26..ba592a9 100644
+--- a/arch/arm/vfp/entry.S
++++ b/arch/arm/vfp/entry.S
+@@ -21,13 +21,13 @@
+ #include <asm/assembler.h>
+ #include <asm/vfpmacros.h>
+
+- .globl do_vfp
+-do_vfp:
++ENTRY(do_vfp)
+ enable_irq
+ ldr r4, .LCvfp
+ ldr r11, [r10, #TI_CPU] @ CPU number
+ add r10, r10, #TI_VFPSTATE @ r10 = workspace
+ ldr pc, [r4] @ call VFP entry point
++ENDPROC(do_vfp)
+
+ ENTRY(vfp_null_entry)
+ mov pc, lr
+@@ -40,11 +40,11 @@ ENDPROC(vfp_null_entry)
+ @ failure to the VFP initialisation code.
+
+ __INIT
+- .globl vfp_testing_entry
+-vfp_testing_entry:
++ENTRY(vfp_testing_entry)
+ ldr r0, VFP_arch_address
+ str r5, [r0] @ known non-zero value
+ mov pc, r9 @ we have handled the fault
++ENDPROC(vfp_testing_entry)
+
+ VFP_arch_address:
+ .word VFP_arch
+diff --git a/arch/arm/vfp/vfp.h b/arch/arm/vfp/vfp.h
+index 791d023..8de86e4 100644
+--- a/arch/arm/vfp/vfp.h
++++ b/arch/arm/vfp/vfp.h
+@@ -265,7 +265,11 @@ struct vfp_double {
+ * which returns (double)0.0. This is useful for the compare with
+ * zero instructions.
+ */
++#ifdef CONFIG_VFPv3
++#define VFP_REG_ZERO 32
++#else
+ #define VFP_REG_ZERO 16
++#endif
+ extern u64 vfp_get_double(unsigned int reg);
+ extern void vfp_put_double(u64 val, unsigned int reg);
+
+@@ -373,6 +377,6 @@ struct op {
+ u32 flags;
+ };
+
+-#ifdef CONFIG_SMP
++#if defined(CONFIG_SMP) || defined(CONFIG_PM)
+ extern void vfp_save_state(void *location, u32 fpexc);
+ #endif
+diff --git a/arch/arm/vfp/vfphw.S b/arch/arm/vfp/vfphw.S
+index 0ac022f..c92a08b 100644
+--- a/arch/arm/vfp/vfphw.S
++++ b/arch/arm/vfp/vfphw.S
+@@ -68,8 +68,7 @@
+ @ r11 = CPU number
+ @ lr = failure return
+
+- .globl vfp_support_entry
+-vfp_support_entry:
++ENTRY(vfp_support_entry)
+ DBGSTR3 "instr %08x pc %08x state %p", r0, r2, r10
+
+ VFPFMRX r1, FPEXC @ Is the VFP enabled?
+@@ -99,12 +98,15 @@ vfp_support_entry:
+ DBGSTR1 "save old state %p", r4
+ cmp r4, #0
+ beq no_old_VFP_process
++ VFPFSTMIA r4, r5 @ save the working registers
+ VFPFMRX r5, FPSCR @ current status
+- VFPFMRX r6, FPINST @ FPINST (always there, rev0 onwards)
+- tst r1, #FPEXC_FPV2 @ is there an FPINST2 to read?
+- VFPFMRX r8, FPINST2, NE @ FPINST2 if needed - avoids reading
+- @ nonexistant reg on rev0
+- VFPFSTMIA r4 @ save the working registers
++ tst r1, #FPEXC_EX @ is there additional state to save?
++ beq 1f
++ VFPFMRX r6, FPINST @ FPINST (only if FPEXC.EX is set)
++ tst r1, #FPEXC_FP2V @ is there an FPINST2 to read?
++ beq 1f
++ VFPFMRX r8, FPINST2 @ FPINST2 if needed (and present)
++1:
+ stmia r4, {r1, r5, r6, r8} @ save FPEXC, FPSCR, FPINST, FPINST2
+ @ and point r4 at the word at the
+ @ start of the register dump
+@@ -114,13 +116,16 @@ no_old_VFP_process:
+ DBGSTR1 "load state %p", r10
+ str r10, [r3, r11, lsl #2] @ update the last_VFP_context pointer
+ @ Load the saved state back into the VFP
+- VFPFLDMIA r10 @ reload the working registers while
++ VFPFLDMIA r10, r5 @ reload the working registers while
+ @ FPEXC is in a safe state
+ ldmia r10, {r1, r5, r6, r8} @ load FPEXC, FPSCR, FPINST, FPINST2
+- tst r1, #FPEXC_FPV2 @ is there an FPINST2 to write?
+- VFPFMXR FPINST2, r8, NE @ FPINST2 if needed - avoids writing
+- @ nonexistant reg on rev0
+- VFPFMXR FPINST, r6
++ tst r1, #FPEXC_EX @ is there additional state to restore?
++ beq 1f
++ VFPFMXR FPINST, r6 @ restore FPINST (only if FPEXC.EX is set)
++ tst r1, #FPEXC_FP2V @ is there an FPINST2 to write?
++ beq 1f
++ VFPFMXR FPINST2, r8 @ FPINST2 if needed (and present)
++1:
+ VFPFMXR FPSCR, r5 @ restore status
+
+ check_for_exception:
+@@ -136,10 +141,14 @@ check_for_exception:
+
+
+ look_for_VFP_exceptions:
+- tst r1, #FPEXC_EX
++ @ Check for synchronous or asynchronous exception
++ tst r1, #FPEXC_EX | FPEXC_DEX
+ bne process_exception
++ @ On some implementations of the VFP subarch 1, setting FPSCR.IXE
++ @ causes all the CDP instructions to be bounced synchronously without
++ @ setting the FPEXC.EX bit
+ VFPFMRX r5, FPSCR
+- tst r5, #FPSCR_IXE @ IXE doesn't set FPEXC_EX !
++ tst r5, #FPSCR_IXE
+ bne process_exception
+
+ @ Fall into hand on to next handler - appropriate coproc instr
+@@ -150,10 +159,6 @@ look_for_VFP_exceptions:
+
+ process_exception:
+ DBGSTR "bounce"
+- sub r2, r2, #4
+- str r2, [sp, #S_PC] @ retry the instruction on exit from
+- @ the imprecise exception handling in
+- @ the support code
+ mov r2, sp @ nothing stacked - regdump is at TOS
+ mov lr, r9 @ setup for a return to the user code.
+
+@@ -161,34 +166,36 @@ process_exception:
+ @ r0 holds the trigger instruction
+ @ r1 holds the FPEXC value
+ @ r2 pointer to register dump
+- b VFP9_bounce @ we have handled this - the support
++ b VFP_bounce @ we have handled this - the support
+ @ code will raise an exception if
+ @ required. If not, the user code will
+ @ retry the faulted instruction
++ENDPROC(vfp_support_entry)
+
+-#ifdef CONFIG_SMP
+- .globl vfp_save_state
+- .type vfp_save_state, %function
+-vfp_save_state:
++#if defined(CONFIG_SMP) || defined(CONFIG_PM)
++ENTRY(vfp_save_state)
+ @ Save the current VFP state
+ @ r0 - save location
+ @ r1 - FPEXC
+ DBGSTR1 "save VFP state %p", r0
++ VFPFSTMIA r0, r2 @ save the working registers
+ VFPFMRX r2, FPSCR @ current status
+- VFPFMRX r3, FPINST @ FPINST (always there, rev0 onwards)
+- tst r1, #FPEXC_FPV2 @ is there an FPINST2 to read?
+- VFPFMRX r12, FPINST2, NE @ FPINST2 if needed - avoids reading
+- @ nonexistant reg on rev0
+- VFPFSTMIA r0 @ save the working registers
++ tst r1, #FPEXC_EX @ is there additional state to save?
++ beq 1f
++ VFPFMRX r3, FPINST @ FPINST (only if FPEXC.EX is set)
++ tst r1, #FPEXC_FP2V @ is there an FPINST2 to read?
++ beq 1f
++ VFPFMRX r12, FPINST2 @ FPINST2 if needed (and present)
++1:
+ stmia r0, {r1, r2, r3, r12} @ save FPEXC, FPSCR, FPINST, FPINST2
+ mov pc, lr
++ENDPROC(vfp_save_state)
+ #endif
+
+ last_VFP_context_address:
+ .word last_VFP_context
+
+- .globl vfp_get_float
+-vfp_get_float:
++ENTRY(vfp_get_float)
+ add pc, pc, r0, lsl #3
+ mov r0, r0
+ .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
+@@ -197,9 +204,9 @@ vfp_get_float:
+ mrc p10, 0, r0, c\dr, c0, 4 @ fmrs r0, s1
+ mov pc, lr
+ .endr
++ENDPROC(vfp_get_float)
+
+- .globl vfp_put_float
+-vfp_put_float:
++ENTRY(vfp_put_float)
+ add pc, pc, r1, lsl #3
+ mov r0, r0
+ .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
+@@ -208,26 +215,41 @@ vfp_put_float:
+ mcr p10, 0, r0, c\dr, c0, 4 @ fmsr r0, s1
+ mov pc, lr
+ .endr
++ENDPROC(vfp_put_float)
+
+- .globl vfp_get_double
+-vfp_get_double:
++ENTRY(vfp_get_double)
+ add pc, pc, r0, lsl #3
+ mov r0, r0
+ .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
+ fmrrd r0, r1, d\dr
+ mov pc, lr
+ .endr
++#ifdef CONFIG_VFPv3
++ @ d16 - d31 registers
++ .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
++ mrrc p11, 3, r0, r1, c\dr @ fmrrd r0, r1, d\dr
++ mov pc, lr
++ .endr
++#endif
+
+- @ virtual register 16 for compare with zero
++ @ virtual register 16 (or 32 if VFPv3) for compare with zero
+ mov r0, #0
+ mov r1, #0
+ mov pc, lr
++ENDPROC(vfp_get_double)
+
+- .globl vfp_put_double
+-vfp_put_double:
++ENTRY(vfp_put_double)
+ add pc, pc, r2, lsl #3
+ mov r0, r0
+ .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
+ fmdrr d\dr, r0, r1
+ mov pc, lr
+ .endr
++#ifdef CONFIG_VFPv3
++ @ d16 - d31 registers
++ .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
++ mcrr p11, 3, r1, r2, c\dr @ fmdrr r1, r2, d\dr
++ mov pc, lr
++ .endr
++#endif
++ENDPROC(vfp_put_double)
+diff --git a/arch/arm/vfp/vfpinstr.h b/arch/arm/vfp/vfpinstr.h
+index 7f343a4..15b95b5 100644
+--- a/arch/arm/vfp/vfpinstr.h
++++ b/arch/arm/vfp/vfpinstr.h
+@@ -52,11 +52,11 @@
+ #define FEXT_TO_IDX(inst) ((inst & 0x000f0000) >> 15 | (inst & (1 << 7)) >> 7)
+
+ #define vfp_get_sd(inst) ((inst & 0x0000f000) >> 11 | (inst & (1 << 22)) >> 22)
+-#define vfp_get_dd(inst) ((inst & 0x0000f000) >> 12)
++#define vfp_get_dd(inst) ((inst & 0x0000f000) >> 12 | (inst & (1 << 22)) >> 18)
+ #define vfp_get_sm(inst) ((inst & 0x0000000f) << 1 | (inst & (1 << 5)) >> 5)
+-#define vfp_get_dm(inst) ((inst & 0x0000000f))
++#define vfp_get_dm(inst) ((inst & 0x0000000f) | (inst & (1 << 5)) >> 1)
+ #define vfp_get_sn(inst) ((inst & 0x000f0000) >> 15 | (inst & (1 << 7)) >> 7)
+-#define vfp_get_dn(inst) ((inst & 0x000f0000) >> 16)
++#define vfp_get_dn(inst) ((inst & 0x000f0000) >> 16 | (inst & (1 << 7)) >> 3)
+
+ #define vfp_single(inst) (((inst) & 0x0000f00) == 0xa00)
+
+diff --git a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c
+index b4e210d..00d2562 100644
+--- a/arch/arm/vfp/vfpmodule.c
++++ b/arch/arm/vfp/vfpmodule.c
+@@ -125,13 +125,13 @@ void vfp_raise_sigfpe(unsigned int sicode, struct pt_regs *regs)
+ send_sig_info(SIGFPE, &info, current);
+ }
+
+-static void vfp_panic(char *reason)
++static void vfp_panic(char *reason, u32 inst)
+ {
+ int i;
+
+ printk(KERN_ERR "VFP: Error: %s\n", reason);
+ printk(KERN_ERR "VFP: EXC 0x%08x SCR 0x%08x INST 0x%08x\n",
+- fmrx(FPEXC), fmrx(FPSCR), fmrx(FPINST));
++ fmrx(FPEXC), fmrx(FPSCR), inst);
+ for (i = 0; i < 32; i += 2)
+ printk(KERN_ERR "VFP: s%2u: 0x%08x s%2u: 0x%08x\n",
+ i, vfp_get_float(i), i+1, vfp_get_float(i+1));
+@@ -147,19 +147,16 @@ static void vfp_raise_exceptions(u32 exceptions, u32 inst, u32 fpscr, struct pt_
+ pr_debug("VFP: raising exceptions %08x\n", exceptions);
+
+ if (exceptions == VFP_EXCEPTION_ERROR) {
+- vfp_panic("unhandled bounce");
++ vfp_panic("unhandled bounce", inst);
+ vfp_raise_sigfpe(0, regs);
+ return;
+ }
+
+ /*
+- * If any of the status flags are set, update the FPSCR.
++ * Update the FPSCR with the additional exception flags.
+ * Comparison instructions always return at least one of
+ * these flags set.
+ */
+- if (exceptions & (FPSCR_N|FPSCR_Z|FPSCR_C|FPSCR_V))
+- fpscr &= ~(FPSCR_N|FPSCR_Z|FPSCR_C|FPSCR_V);
+-
+ fpscr |= exceptions;
+
+ fmxr(FPSCR, fpscr);
+@@ -220,35 +217,64 @@ static u32 vfp_emulate_instruction(u32 inst, u32 fpscr, struct pt_regs *regs)
+ /*
+ * Package up a bounce condition.
+ */
+-void VFP9_bounce(u32 trigger, u32 fpexc, struct pt_regs *regs)
++void VFP_bounce(u32 trigger, u32 fpexc, struct pt_regs *regs)
+ {
+- u32 fpscr, orig_fpscr, exceptions, inst;
++ u32 fpscr, orig_fpscr, fpsid, exceptions;
+
+ pr_debug("VFP: bounce: trigger %08x fpexc %08x\n", trigger, fpexc);
+
+ /*
+- * Enable access to the VFP so we can handle the bounce.
++ * At this point, FPEXC can have the following configuration:
++ *
++ * EX DEX IXE
++ * 0 1 x - synchronous exception
++ * 1 x 0 - asynchronous exception
++ * 1 x 1 - sychronous on VFP subarch 1 and asynchronous on later
++ * 0 0 1 - synchronous on VFP9 (non-standard subarch 1
++ * implementation), undefined otherwise
++ *
++ * Clear various bits and enable access to the VFP so we can
++ * handle the bounce.
+ */
+- fmxr(FPEXC, fpexc & ~(FPEXC_EX|FPEXC_FPV2|FPEXC_INV|FPEXC_UFC|FPEXC_OFC|FPEXC_IOC));
++ fmxr(FPEXC, fpexc & ~(FPEXC_EX|FPEXC_DEX|FPEXC_FP2V|FPEXC_VV|FPEXC_TRAP_MASK));
+
++ fpsid = fmrx(FPSID);
+ orig_fpscr = fpscr = fmrx(FPSCR);
+
+ /*
+- * If we are running with inexact exceptions enabled, we need to
+- * emulate the trigger instruction. Note that as we're emulating
+- * the trigger instruction, we need to increment PC.
++ * Check for the special VFP subarch 1 and FPSCR.IXE bit case
+ */
+- if (fpscr & FPSCR_IXE) {
+- regs->ARM_pc += 4;
++ if ((fpsid & FPSID_ARCH_MASK) == (1 << FPSID_ARCH_BIT)
++ && (fpscr & FPSCR_IXE)) {
++ /*
++ * Synchronous exception, emulate the trigger instruction
++ */
+ goto emulate;
+ }
+
+- barrier();
++ if (fpexc & FPEXC_EX) {
++ /*
++ * Asynchronous exception. The instruction is read from FPINST
++ * and the interrupted instruction has to be restarted.
++ */
++ trigger = fmrx(FPINST);
++ regs->ARM_pc -= 4;
++ } else if (!(fpexc & FPEXC_DEX)) {
++ /*
++ * Illegal combination of bits. It can be caused by an
++ * unallocated VFP instruction but with FPSCR.IXE set and not
++ * on VFP subarch 1.
++ */
++ vfp_raise_exceptions(VFP_EXCEPTION_ERROR, trigger, fpscr, regs);
++ return;
++ }
+
+ /*
+- * Modify fpscr to indicate the number of iterations remaining
++ * Modify fpscr to indicate the number of iterations remaining.
++ * If FPEXC.EX is 0, FPEXC.DEX is 1 and the FPEXC.VV bit indicates
++ * whether FPEXC.VECITR or FPSCR.LEN is used.
+ */
+- if (fpexc & FPEXC_EX) {
++ if (fpexc & (FPEXC_EX | FPEXC_VV)) {
+ u32 len;
+
+ len = fpexc + (1 << FPEXC_LENGTH_BIT);
+@@ -262,15 +288,15 @@ void VFP9_bounce(u32 trigger, u32 fpexc, struct pt_regs *regs)
+ * FPEXC bounce reason, but this appears to be unreliable.
+ * Emulate the bounced instruction instead.
+ */
+- inst = fmrx(FPINST);
+- exceptions = vfp_emulate_instruction(inst, fpscr, regs);
++ exceptions = vfp_emulate_instruction(trigger, fpscr, regs);
+ if (exceptions)
+- vfp_raise_exceptions(exceptions, inst, orig_fpscr, regs);
++ vfp_raise_exceptions(exceptions, trigger, orig_fpscr, regs);
+
+ /*
+- * If there isn't a second FP instruction, exit now.
++ * If there isn't a second FP instruction, exit now. Note that
++ * the FPEXC.FP2V bit is valid only if FPEXC.EX is 1.
+ */
+- if (!(fpexc & FPEXC_FPV2))
++ if (fpexc ^ (FPEXC_EX | FPEXC_FP2V))
+ return;
+
+ /*
+@@ -279,10 +305,9 @@ void VFP9_bounce(u32 trigger, u32 fpexc, struct pt_regs *regs)
+ */
+ barrier();
+ trigger = fmrx(FPINST2);
+- orig_fpscr = fpscr = fmrx(FPSCR);
+
+ emulate:
+- exceptions = vfp_emulate_instruction(trigger, fpscr, regs);
++ exceptions = vfp_emulate_instruction(trigger, orig_fpscr, regs);
+ if (exceptions)
+ vfp_raise_exceptions(exceptions, trigger, orig_fpscr, regs);
+ }
+@@ -297,6 +322,62 @@ static void vfp_enable(void *unused)
+ set_copro_access(access | CPACC_FULL(10) | CPACC_FULL(11));
+ }
+
++#ifdef CONFIG_PM
++#include <linux/sysdev.h>
++
++static int vfp_pm_suspend(struct sys_device *dev, pm_message_t state)
++{
++ struct thread_info *ti = current_thread_info();
++ u32 fpexc = fmrx(FPEXC);
++
++ /* if vfp is on, then save state for resumption */
++ if (fpexc & FPEXC_EN) {
++ printk(KERN_DEBUG "%s: saving vfp state\n", __func__);
++ vfp_save_state(&ti->vfpstate, fpexc);
++
++ /* disable, just in case */
++ fmxr(FPEXC, fmrx(FPEXC) & ~FPEXC_EN);
++ }
++
++ /* clear any information we had about last context state */
++ memset(last_VFP_context, 0, sizeof(last_VFP_context));
++
++ return 0;
++}
++
++static int vfp_pm_resume(struct sys_device *dev)
++{
++ /* ensure we have access to the vfp */
++ vfp_enable(NULL);
++
++ /* and disable it to ensure the next usage restores the state */
++ fmxr(FPEXC, fmrx(FPEXC) & ~FPEXC_EN);
++
++ return 0;
++}
++
++static struct sysdev_class vfp_pm_sysclass = {
++ //.name = "vfp",
++ set_kset_name("vfp"),
++ .suspend = vfp_pm_suspend,
++ .resume = vfp_pm_resume,
++};
++
++static struct sys_device vfp_pm_sysdev = {
++ .cls = &vfp_pm_sysclass,
++};
++
++static void vfp_pm_init(void)
++{
++ sysdev_class_register(&vfp_pm_sysclass);
++ sysdev_register(&vfp_pm_sysdev);
++}
++
++
++#else
++static inline void vfp_pm_init(void) { }
++#endif /* CONFIG_PM */
++
+ #include <linux/smp.h>
+
+ /*
+@@ -306,16 +387,9 @@ static int __init vfp_init(void)
+ {
+ unsigned int vfpsid;
+ unsigned int cpu_arch = cpu_architecture();
+- u32 access = 0;
+-
+- if (cpu_arch >= CPU_ARCH_ARMv6) {
+- access = get_copro_access();
+
+- /*
+- * Enable full access to VFP (cp10 and cp11)
+- */
+- set_copro_access(access | CPACC_FULL(10) | CPACC_FULL(11));
+- }
++ if (cpu_arch >= CPU_ARCH_ARMv6)
++ vfp_enable(NULL);
+
+ /*
+ * First check that there is a VFP that we can use.
+@@ -329,15 +403,9 @@ static int __init vfp_init(void)
+ vfp_vector = vfp_null_entry;
+
+ printk(KERN_INFO "VFP support v0.3: ");
+- if (VFP_arch) {
++ if (VFP_arch)
+ printk("not present\n");
+-
+- /*
+- * Restore the copro access register.
+- */
+- if (cpu_arch >= CPU_ARCH_ARMv6)
+- set_copro_access(access);
+- } else if (vfpsid & FPSID_NODOUBLE) {
++ else if (vfpsid & FPSID_NODOUBLE) {
+ printk("no double precision support\n");
+ } else {
+ smp_call_function(vfp_enable, NULL, 1, 1);
+@@ -353,12 +421,22 @@ static int __init vfp_init(void)
+ vfp_vector = vfp_support_entry;
+
+ thread_register_notifier(&vfp_notifier_block);
++ vfp_pm_init();
+
+ /*
+ * We detected VFP, and the support code is
+ * in place; report VFP support to userspace.
+ */
+ elf_hwcap |= HWCAP_VFP;
++#ifdef CONFIG_NEON
++ /*
++ * Check for the presence of the Advanced SIMD
++ * load/store instructions, integer and single
++ * precision floating point operations.
++ */
++ if ((fmrx(MVFR1) & 0x000fff00) == 0x00011100)
++ elf_hwcap |= HWCAP_NEON;
++#endif
+ }
+ return 0;
+ }
+diff --git a/drivers/Makefile b/drivers/Makefile
+index 8cb37e3..3672a9f 100644
+--- a/drivers/Makefile
++++ b/drivers/Makefile
+@@ -19,6 +19,7 @@ obj-$(CONFIG_XEN) += xen/
+
+ # char/ comes before serial/ etc so that the VT console is the boot-time
+ # default.
++obj-$(CONFIG_INPUT) += input/
+ obj-y += char/
+
+ obj-$(CONFIG_CONNECTOR) += connector/
+@@ -58,7 +59,6 @@ obj-$(CONFIG_PCI) += usb/
+ obj-$(CONFIG_USB_GADGET) += usb/gadget/
+ obj-$(CONFIG_SERIO) += input/serio/
+ obj-$(CONFIG_GAMEPORT) += input/gameport/
+-obj-$(CONFIG_INPUT) += input/
+ obj-$(CONFIG_I2O) += message/
+ obj-$(CONFIG_RTC_LIB) += rtc/
+ obj-y += i2c/
+diff --git a/drivers/bluetooth/Kconfig b/drivers/bluetooth/Kconfig
+index 075598e..7cb4029 100644
+--- a/drivers/bluetooth/Kconfig
++++ b/drivers/bluetooth/Kconfig
+@@ -3,8 +3,8 @@ menu "Bluetooth device drivers"
+ depends on BT
+
+ config BT_HCIUSB
+- tristate "HCI USB driver"
+- depends on USB
++ tristate "HCI USB driver (old version)"
++ depends on USB && BT_HCIBTUSB=n
+ help
+ Bluetooth HCI USB driver.
+ This driver is required if you want to use Bluetooth devices with
+@@ -23,15 +23,13 @@ config BT_HCIUSB_SCO
+ Say Y here to compile support for SCO over HCI USB.
+
+ config BT_HCIBTUSB
+- tristate "HCI USB driver (alternate version)"
+- depends on USB && EXPERIMENTAL && BT_HCIUSB=n
++ tristate "HCI USB driver"
++ depends on USB
+ help
+ Bluetooth HCI USB driver.
+ This driver is required if you want to use Bluetooth devices with
+ USB interface.
+
+- This driver is still experimental and has no SCO support.
+-
+ Say Y here to compile support for Bluetooth USB devices into the
+ kernel or say M to compile it as module (btusb).
+
+@@ -71,6 +69,7 @@ config BT_HCIUART_H4
+ config BT_HCIUART_BCSP
+ bool "BCSP protocol support"
+ depends on BT_HCIUART
++ select BITREVERSE
+ help
+ BCSP (BlueCore Serial Protocol) is serial protocol for communication
+ between Bluetooth device and host. This protocol is required for non
+diff --git a/drivers/bluetooth/bcm203x.c b/drivers/bluetooth/bcm203x.c
+index 8919ccf..ee40201 100644
+--- a/drivers/bluetooth/bcm203x.c
++++ b/drivers/bluetooth/bcm203x.c
+@@ -42,9 +42,7 @@
+ #define BT_DBG(D...)
+ #endif
+
+-#define VERSION "1.1"
+-
+-static int ignore = 0;
++#define VERSION "1.2"
+
+ static struct usb_device_id bcm203x_table[] = {
+ /* Broadcom Blutonium (BCM2033) */
+@@ -175,7 +173,7 @@ static int bcm203x_probe(struct usb_interface *intf, const struct usb_device_id
+
+ BT_DBG("intf %p id %p", intf, id);
+
+- if (ignore || (intf->cur_altsetting->desc.bInterfaceNumber != 0))
++ if (intf->cur_altsetting->desc.bInterfaceNumber != 0)
+ return -ENODEV;
+
+ data = kzalloc(sizeof(*data), GFP_KERNEL);
+@@ -300,9 +298,6 @@ static void __exit bcm203x_exit(void)
+ module_init(bcm203x_init);
+ module_exit(bcm203x_exit);
+
+-module_param(ignore, bool, 0644);
+-MODULE_PARM_DESC(ignore, "Ignore devices from the matching table");
+-
+ MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
+ MODULE_DESCRIPTION("Broadcom Blutonium firmware driver ver " VERSION);
+ MODULE_VERSION(VERSION);
+diff --git a/drivers/bluetooth/bfusb.c b/drivers/bluetooth/bfusb.c
+index b990805..90a0946 100644
+--- a/drivers/bluetooth/bfusb.c
++++ b/drivers/bluetooth/bfusb.c
+@@ -43,9 +43,7 @@
+ #define BT_DBG(D...)
+ #endif
+
+-#define VERSION "1.1"
+-
+-static int ignore = 0;
++#define VERSION "1.2"
+
+ static struct usb_driver bfusb_driver;
+
+@@ -566,7 +564,8 @@ static int bfusb_ioctl(struct hci_dev *hdev, unsigned int cmd, unsigned long arg
+ return -ENOIOCTLCMD;
+ }
+
+-static int bfusb_load_firmware(struct bfusb_data *data, unsigned char *firmware, int count)
++static int bfusb_load_firmware(struct bfusb_data *data,
++ const unsigned char *firmware, int count)
+ {
+ unsigned char *buf;
+ int err, pipe, len, size, sent = 0;
+@@ -655,9 +654,6 @@ static int bfusb_probe(struct usb_interface *intf, const struct usb_device_id *i
+
+ BT_DBG("intf %p id %p", intf, id);
+
+- if (ignore)
+- return -ENODEV;
+-
+ /* Check number of endpoints */
+ if (intf->cur_altsetting->desc.bNumEndpoints < 2)
+ return -EIO;
+@@ -794,9 +790,6 @@ static void __exit bfusb_exit(void)
+ module_init(bfusb_init);
+ module_exit(bfusb_exit);
+
+-module_param(ignore, bool, 0644);
+-MODULE_PARM_DESC(ignore, "Ignore devices from the matching table");
+-
+ MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
+ MODULE_DESCRIPTION("BlueFRITZ! USB driver ver " VERSION);
+ MODULE_VERSION(VERSION);
+diff --git a/drivers/bluetooth/bluecard_cs.c b/drivers/bluetooth/bluecard_cs.c
+index bcf5792..b0e569b 100644
+--- a/drivers/bluetooth/bluecard_cs.c
++++ b/drivers/bluetooth/bluecard_cs.c
+@@ -867,7 +867,7 @@ static int bluecard_probe(struct pcmcia_device *link)
+
+ link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
+ link->io.NumPorts1 = 8;
+- link->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT;
++ link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_HANDLE_PRESENT;
+ link->irq.IRQInfo1 = IRQ_LEVEL_ID;
+
+ link->irq.Handler = bluecard_interrupt;
+@@ -901,23 +901,23 @@ static int bluecard_config(struct pcmcia_device *link)
+ for (n = 0; n < 0x400; n += 0x40) {
+ link->io.BasePort1 = n ^ 0x300;
+ i = pcmcia_request_io(link, &link->io);
+- if (i == CS_SUCCESS)
++ if (i == 0)
+ break;
+ }
+
+- if (i != CS_SUCCESS) {
++ if (i != 0) {
+ cs_error(link, RequestIO, i);
+ goto failed;
+ }
+
+ i = pcmcia_request_irq(link, &link->irq);
+- if (i != CS_SUCCESS) {
++ if (i != 0) {
+ cs_error(link, RequestIRQ, i);
+ link->irq.AssignedIRQ = 0;
+ }
+
+ i = pcmcia_request_configuration(link, &link->conf);
+- if (i != CS_SUCCESS) {
++ if (i != 0) {
+ cs_error(link, RequestConfiguration, i);
+ goto failed;
+ }
+diff --git a/drivers/bluetooth/bpa10x.c b/drivers/bluetooth/bpa10x.c
+index 1375b53..b936d8c 100644
+--- a/drivers/bluetooth/bpa10x.c
++++ b/drivers/bluetooth/bpa10x.c
+@@ -40,9 +40,7 @@
+ #define BT_DBG(D...)
+ #endif
+
+-#define VERSION "0.9"
+-
+-static int ignore = 0;
++#define VERSION "0.10"
+
+ static struct usb_device_id bpa10x_table[] = {
+ /* Tektronix BPA 100/105 (Digianswer) */
+@@ -258,7 +256,6 @@ static inline int bpa10x_submit_intr_urb(struct hci_dev *hdev)
+ BT_ERR("%s urb %p submission failed (%d)",
+ hdev->name, urb, -err);
+ usb_unanchor_urb(urb);
+- kfree(buf);
+ }
+
+ usb_free_urb(urb);
+@@ -300,7 +297,6 @@ static inline int bpa10x_submit_bulk_urb(struct hci_dev *hdev)
+ BT_ERR("%s urb %p submission failed (%d)",
+ hdev->name, urb, -err);
+ usb_unanchor_urb(urb);
+- kfree(buf);
+ }
+
+ usb_free_urb(urb);
+@@ -423,6 +419,7 @@ static int bpa10x_send_frame(struct sk_buff *skb)
+ break;
+
+ default:
++ usb_free_urb(urb);
+ return -EILSEQ;
+ }
+
+@@ -446,8 +443,8 @@ static void bpa10x_destruct(struct hci_dev *hdev)
+
+ BT_DBG("%s", hdev->name);
+
+- kfree(data->rx_skb[0]);
+- kfree(data->rx_skb[1]);
++ kfree_skb(data->rx_skb[0]);
++ kfree_skb(data->rx_skb[1]);
+ kfree(data);
+ }
+
+@@ -459,9 +456,6 @@ static int bpa10x_probe(struct usb_interface *intf, const struct usb_device_id *
+
+ BT_DBG("intf %p id %p", intf, id);
+
+- if (ignore)
+- return -ENODEV;
+-
+ if (intf->cur_altsetting->desc.bInterfaceNumber != 0)
+ return -ENODEV;
+
+@@ -545,9 +539,6 @@ static void __exit bpa10x_exit(void)
+ module_init(bpa10x_init);
+ module_exit(bpa10x_exit);
+
+-module_param(ignore, bool, 0644);
+-MODULE_PARM_DESC(ignore, "Ignore devices from the matching table");
+-
+ MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
+ MODULE_DESCRIPTION("Digianswer Bluetooth USB driver ver " VERSION);
+ MODULE_VERSION(VERSION);
+diff --git a/drivers/bluetooth/bt3c_cs.c b/drivers/bluetooth/bt3c_cs.c
+index a18f9b8..b3e4d07 100644
+--- a/drivers/bluetooth/bt3c_cs.c
++++ b/drivers/bluetooth/bt3c_cs.c
+@@ -60,7 +60,7 @@
+ /* ======================== Module parameters ======================== */
+
+
+-MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>, Jose Orlando Pereira <jop@di.uminho.pt>");
++MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
+ MODULE_DESCRIPTION("Bluetooth driver for the 3Com Bluetooth PCMCIA card");
+ MODULE_LICENSE("GPL");
+ MODULE_FIRMWARE("BT3CPCC.bin");
+@@ -343,6 +343,7 @@ static irqreturn_t bt3c_interrupt(int irq, void *dev_inst)
+ bt3c_info_t *info = dev_inst;
+ unsigned int iobase;
+ int iir;
++ irqreturn_t r = IRQ_NONE;
+
+ BUG_ON(!info->hdev);
+
+@@ -374,11 +375,12 @@ static irqreturn_t bt3c_interrupt(int irq, void *dev_inst)
+
+ outb(iir, iobase + CONTROL);
+ }
++ r = IRQ_HANDLED;
+ }
+
+ spin_unlock(&(info->lock));
+
+- return IRQ_HANDLED;
++ return r;
+ }
+
+
+@@ -470,7 +472,8 @@ static int bt3c_hci_ioctl(struct hci_dev *hdev, unsigned int cmd, unsigned long
+ /* ======================== Card services HCI interaction ======================== */
+
+
+-static int bt3c_load_firmware(bt3c_info_t *info, unsigned char *firmware, int count)
++static int bt3c_load_firmware(bt3c_info_t *info, const unsigned char *firmware,
++ int count)
+ {
+ char *ptr = (char *) firmware;
+ char b[9];
+@@ -656,7 +659,7 @@ static int bt3c_probe(struct pcmcia_device *link)
+
+ link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
+ link->io.NumPorts1 = 8;
+- link->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT;
++ link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_HANDLE_PRESENT;
+ link->irq.IRQInfo1 = IRQ_LEVEL_ID;
+
+ link->irq.Handler = bt3c_interrupt;
+@@ -677,101 +680,78 @@ static void bt3c_detach(struct pcmcia_device *link)
+ kfree(info);
+ }
+
+-static int get_tuple(struct pcmcia_device *handle, tuple_t *tuple, cisparse_t *parse)
++static int bt3c_check_config(struct pcmcia_device *p_dev,
++ cistpl_cftable_entry_t *cf,
++ cistpl_cftable_entry_t *dflt,
++ unsigned int vcc,
++ void *priv_data)
+ {
+- int i;
+-
+- i = pcmcia_get_tuple_data(handle, tuple);
+- if (i != CS_SUCCESS)
+- return i;
+-
+- return pcmcia_parse_tuple(handle, tuple, parse);
+-}
+-
+-static int first_tuple(struct pcmcia_device *handle, tuple_t *tuple, cisparse_t *parse)
+-{
+- if (pcmcia_get_first_tuple(handle, tuple) != CS_SUCCESS)
+- return CS_NO_MORE_ITEMS;
+- return get_tuple(handle, tuple, parse);
++ unsigned long try = (unsigned long) priv_data;
++
++ if (cf->vpp1.present & (1 << CISTPL_POWER_VNOM))
++ p_dev->conf.Vpp = cf->vpp1.param[CISTPL_POWER_VNOM] / 10000;
++ if ((cf->io.nwin > 0) && (cf->io.win[0].len == 8) &&
++ (cf->io.win[0].base != 0)) {
++ p_dev->io.BasePort1 = cf->io.win[0].base;
++ p_dev->io.IOAddrLines = (try == 0) ? 16 :
++ cf->io.flags & CISTPL_IO_LINES_MASK;
++ if (!pcmcia_request_io(p_dev, &p_dev->io))
++ return 0;
++ }
++ return -ENODEV;
+ }
+
+-static int next_tuple(struct pcmcia_device *handle, tuple_t *tuple, cisparse_t *parse)
++static int bt3c_check_config_notpicky(struct pcmcia_device *p_dev,
++ cistpl_cftable_entry_t *cf,
++ cistpl_cftable_entry_t *dflt,
++ unsigned int vcc,
++ void *priv_data)
+ {
+- if (pcmcia_get_next_tuple(handle, tuple) != CS_SUCCESS)
+- return CS_NO_MORE_ITEMS;
+- return get_tuple(handle, tuple, parse);
++ static unsigned int base[5] = { 0x3f8, 0x2f8, 0x3e8, 0x2e8, 0x0 };
++ int j;
++
++ if ((cf->io.nwin > 0) && ((cf->io.flags & CISTPL_IO_LINES_MASK) <= 3)) {
++ for (j = 0; j < 5; j++) {
++ p_dev->io.BasePort1 = base[j];
++ p_dev->io.IOAddrLines = base[j] ? 16 : 3;
++ if (!pcmcia_request_io(p_dev, &p_dev->io))
++ return 0;
++ }
++ }
++ return -ENODEV;
+ }
+
+ static int bt3c_config(struct pcmcia_device *link)
+ {
+- static kio_addr_t base[5] = { 0x3f8, 0x2f8, 0x3e8, 0x2e8, 0x0 };
+ bt3c_info_t *info = link->priv;
+- tuple_t tuple;
+- u_short buf[256];
+- cisparse_t parse;
+- cistpl_cftable_entry_t *cf = &parse.cftable_entry;
+- int i, j, try;
+-
+- /* First pass: look for a config entry that looks normal. */
+- tuple.TupleData = (cisdata_t *)buf;
+- tuple.TupleOffset = 0;
+- tuple.TupleDataMax = 255;
+- tuple.Attributes = 0;
+- tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY;
+- /* Two tries: without IO aliases, then with aliases */
+- for (try = 0; try < 2; try++) {
+- i = first_tuple(link, &tuple, &parse);
+- while (i != CS_NO_MORE_ITEMS) {
+- if (i != CS_SUCCESS)
+- goto next_entry;
+- if (cf->vpp1.present & (1 << CISTPL_POWER_VNOM))
+- link->conf.Vpp = cf->vpp1.param[CISTPL_POWER_VNOM] / 10000;
+- if ((cf->io.nwin > 0) && (cf->io.win[0].len == 8) && (cf->io.win[0].base != 0)) {
+- link->conf.ConfigIndex = cf->index;
+- link->io.BasePort1 = cf->io.win[0].base;
+- link->io.IOAddrLines = (try == 0) ? 16 : cf->io.flags & CISTPL_IO_LINES_MASK;
+- i = pcmcia_request_io(link, &link->io);
+- if (i == CS_SUCCESS)
+- goto found_port;
+- }
+-next_entry:
+- i = next_tuple(link, &tuple, &parse);
+- }
+- }
++ int i;
++ unsigned long try;
++
++ /* First pass: look for a config entry that looks normal.
++ Two tries: without IO aliases, then with aliases */
++ for (try = 0; try < 2; try++)
++ if (!pcmcia_loop_config(link, bt3c_check_config, (void *) try))
++ goto found_port;
+
+ /* Second pass: try to find an entry that isn't picky about
+ its base address, then try to grab any standard serial port
+ address, and finally try to get any free port. */
+- i = first_tuple(link, &tuple, &parse);
+- while (i != CS_NO_MORE_ITEMS) {
+- if ((i == CS_SUCCESS) && (cf->io.nwin > 0) && ((cf->io.flags & CISTPL_IO_LINES_MASK) <= 3)) {
+- link->conf.ConfigIndex = cf->index;
+- for (j = 0; j < 5; j++) {
+- link->io.BasePort1 = base[j];
+- link->io.IOAddrLines = base[j] ? 16 : 3;
+- i = pcmcia_request_io(link, &link->io);
+- if (i == CS_SUCCESS)
+- goto found_port;
+- }
+- }
+- i = next_tuple(link, &tuple, &parse);
+- }
++ if (!pcmcia_loop_config(link, bt3c_check_config_notpicky, NULL))
++ goto found_port;
+
+-found_port:
+- if (i != CS_SUCCESS) {
+- BT_ERR("No usable port range found");
+- cs_error(link, RequestIO, i);
+- goto failed;
+- }
++ BT_ERR("No usable port range found");
++ cs_error(link, RequestIO, -ENODEV);
++ goto failed;
+
++found_port:
+ i = pcmcia_request_irq(link, &link->irq);
+- if (i != CS_SUCCESS) {
++ if (i != 0) {
+ cs_error(link, RequestIRQ, i);
+ link->irq.AssignedIRQ = 0;
+ }
+
+ i = pcmcia_request_configuration(link, &link->conf);
+- if (i != CS_SUCCESS) {
++ if (i != 0) {
+ cs_error(link, RequestConfiguration, i);
+ goto failed;
+ }
+diff --git a/drivers/bluetooth/btsdio.c b/drivers/bluetooth/btsdio.c
+index b786f61..cda6c7c 100644
+--- a/drivers/bluetooth/btsdio.c
++++ b/drivers/bluetooth/btsdio.c
+@@ -152,7 +152,7 @@ static int btsdio_rx_packet(struct btsdio_data *data)
+
+ err = sdio_readsb(data->func, skb->data, REG_RDAT, len - 4);
+ if (err < 0) {
+- kfree(skb);
++ kfree_skb(skb);
+ return err;
+ }
+
+@@ -162,10 +162,8 @@ static int btsdio_rx_packet(struct btsdio_data *data)
+ bt_cb(skb)->pkt_type = hdr[3];
+
+ err = hci_recv_frame(skb);
+- if (err < 0) {
+- kfree(skb);
++ if (err < 0)
+ return err;
+- }
+
+ sdio_writeb(data->func, 0x00, REG_PC_RRT, NULL);
+
+diff --git a/drivers/bluetooth/btuart_cs.c b/drivers/bluetooth/btuart_cs.c
+index 08f48d5..efd689a 100644
+--- a/drivers/bluetooth/btuart_cs.c
++++ b/drivers/bluetooth/btuart_cs.c
+@@ -293,6 +293,7 @@ static irqreturn_t btuart_interrupt(int irq, void *dev_inst)
+ unsigned int iobase;
+ int boguscount = 0;
+ int iir, lsr;
++ irqreturn_t r = IRQ_NONE;
+
+ BUG_ON(!info->hdev);
+
+@@ -302,6 +303,7 @@ static irqreturn_t btuart_interrupt(int irq, void *dev_inst)
+
+ iir = inb(iobase + UART_IIR) & UART_IIR_ID;
+ while (iir) {
++ r = IRQ_HANDLED;
+
+ /* Clear interrupt */
+ lsr = inb(iobase + UART_LSR);
+@@ -335,7 +337,7 @@ static irqreturn_t btuart_interrupt(int irq, void *dev_inst)
+
+ spin_unlock(&(info->lock));
+
+- return IRQ_HANDLED;
++ return r;
+ }
+
+
+@@ -383,7 +385,7 @@ static void btuart_change_speed(btuart_info_t *info, unsigned int speed)
+ outb(lcr, iobase + UART_LCR); /* Set 8N1 */
+ outb(fcr, iobase + UART_FCR); /* Enable FIFO's */
+
+- /* Turn on interrups */
++ /* Turn on interrupts */
+ outb(UART_IER_RLSI | UART_IER_RDI | UART_IER_THRI, iobase + UART_IER);
+
+ spin_unlock_irqrestore(&(info->lock), flags);
+@@ -586,7 +588,7 @@ static int btuart_probe(struct pcmcia_device *link)
+
+ link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
+ link->io.NumPorts1 = 8;
+- link->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT;
++ link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_HANDLE_PRESENT;
+ link->irq.IRQInfo1 = IRQ_LEVEL_ID;
+
+ link->irq.Handler = btuart_interrupt;
+@@ -607,102 +609,78 @@ static void btuart_detach(struct pcmcia_device *link)
+ kfree(info);
+ }
+
+-static int get_tuple(struct pcmcia_device *handle, tuple_t *tuple, cisparse_t *parse)
+-{
+- int i;
+-
+- i = pcmcia_get_tuple_data(handle, tuple);
+- if (i != CS_SUCCESS)
+- return i;
+-
+- return pcmcia_parse_tuple(handle, tuple, parse);
+-}
+-
+-static int first_tuple(struct pcmcia_device *handle, tuple_t *tuple, cisparse_t *parse)
++static int btuart_check_config(struct pcmcia_device *p_dev,
++ cistpl_cftable_entry_t *cf,
++ cistpl_cftable_entry_t *dflt,
++ unsigned int vcc,
++ void *priv_data)
+ {
+- if (pcmcia_get_first_tuple(handle, tuple) != CS_SUCCESS)
+- return CS_NO_MORE_ITEMS;
+- return get_tuple(handle, tuple, parse);
++ int *try = priv_data;
++
++ if (cf->vpp1.present & (1 << CISTPL_POWER_VNOM))
++ p_dev->conf.Vpp = cf->vpp1.param[CISTPL_POWER_VNOM] / 10000;
++ if ((cf->io.nwin > 0) && (cf->io.win[0].len == 8) &&
++ (cf->io.win[0].base != 0)) {
++ p_dev->io.BasePort1 = cf->io.win[0].base;
++ p_dev->io.IOAddrLines = (*try == 0) ? 16 :
++ cf->io.flags & CISTPL_IO_LINES_MASK;
++ if (!pcmcia_request_io(p_dev, &p_dev->io))
++ return 0;
++ }
++ return -ENODEV;
+ }
+
+-static int next_tuple(struct pcmcia_device *handle, tuple_t *tuple, cisparse_t *parse)
++static int btuart_check_config_notpicky(struct pcmcia_device *p_dev,
++ cistpl_cftable_entry_t *cf,
++ cistpl_cftable_entry_t *dflt,
++ unsigned int vcc,
++ void *priv_data)
+ {
+- if (pcmcia_get_next_tuple(handle, tuple) != CS_SUCCESS)
+- return CS_NO_MORE_ITEMS;
+- return get_tuple(handle, tuple, parse);
++ static unsigned int base[5] = { 0x3f8, 0x2f8, 0x3e8, 0x2e8, 0x0 };
++ int j;
++
++ if ((cf->io.nwin > 0) && ((cf->io.flags & CISTPL_IO_LINES_MASK) <= 3)) {
++ for (j = 0; j < 5; j++) {
++ p_dev->io.BasePort1 = base[j];
++ p_dev->io.IOAddrLines = base[j] ? 16 : 3;
++ if (!pcmcia_request_io(p_dev, &p_dev->io))
++ return 0;
++ }
++ }
++ return -ENODEV;
+ }
+
+ static int btuart_config(struct pcmcia_device *link)
+ {
+- static kio_addr_t base[5] = { 0x3f8, 0x2f8, 0x3e8, 0x2e8, 0x0 };
+ btuart_info_t *info = link->priv;
+- tuple_t tuple;
+- u_short buf[256];
+- cisparse_t parse;
+- cistpl_cftable_entry_t *cf = &parse.cftable_entry;
+- int i, j, try;
+-
+- /* First pass: look for a config entry that looks normal. */
+- tuple.TupleData = (cisdata_t *) buf;
+- tuple.TupleOffset = 0;
+- tuple.TupleDataMax = 255;
+- tuple.Attributes = 0;
+- tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY;
+- /* Two tries: without IO aliases, then with aliases */
+- for (try = 0; try < 2; try++) {
+- i = first_tuple(link, &tuple, &parse);
+- while (i != CS_NO_MORE_ITEMS) {
+- if (i != CS_SUCCESS)
+- goto next_entry;
+- if (cf->vpp1.present & (1 << CISTPL_POWER_VNOM))
+- link->conf.Vpp = cf->vpp1.param[CISTPL_POWER_VNOM] / 10000;
+- if ((cf->io.nwin > 0) && (cf->io.win[0].len == 8) && (cf->io.win[0].base != 0)) {
+- link->conf.ConfigIndex = cf->index;
+- link->io.BasePort1 = cf->io.win[0].base;
+- link->io.IOAddrLines = (try == 0) ? 16 : cf->io.flags & CISTPL_IO_LINES_MASK;
+- i = pcmcia_request_io(link, &link->io);
+- if (i == CS_SUCCESS)
+- goto found_port;
+- }
+-next_entry:
+- i = next_tuple(link, &tuple, &parse);
+- }
+- }
++ int i;
++ int try;
++
++ /* First pass: look for a config entry that looks normal.
++ Two tries: without IO aliases, then with aliases */
++ for (try = 0; try < 2; try++)
++ if (!pcmcia_loop_config(link, btuart_check_config, &try))
++ goto found_port;
+
+ /* Second pass: try to find an entry that isn't picky about
+ its base address, then try to grab any standard serial port
+ address, and finally try to get any free port. */
+- i = first_tuple(link, &tuple, &parse);
+- while (i != CS_NO_MORE_ITEMS) {
+- if ((i == CS_SUCCESS) && (cf->io.nwin > 0)
+- && ((cf->io.flags & CISTPL_IO_LINES_MASK) <= 3)) {
+- link->conf.ConfigIndex = cf->index;
+- for (j = 0; j < 5; j++) {
+- link->io.BasePort1 = base[j];
+- link->io.IOAddrLines = base[j] ? 16 : 3;
+- i = pcmcia_request_io(link, &link->io);
+- if (i == CS_SUCCESS)
+- goto found_port;
+- }
+- }
+- i = next_tuple(link, &tuple, &parse);
+- }
++ if (!pcmcia_loop_config(link, btuart_check_config_notpicky, NULL))
++ goto found_port;
+
+-found_port:
+- if (i != CS_SUCCESS) {
+- BT_ERR("No usable port range found");
+- cs_error(link, RequestIO, i);
+- goto failed;
+- }
++ BT_ERR("No usable port range found");
++ cs_error(link, RequestIO, -ENODEV);
++ goto failed;
+
++found_port:
+ i = pcmcia_request_irq(link, &link->irq);
+- if (i != CS_SUCCESS) {
++ if (i != 0) {
+ cs_error(link, RequestIRQ, i);
+ link->irq.AssignedIRQ = 0;
+ }
+
+ i = pcmcia_request_configuration(link, &link->conf);
+- if (i != CS_SUCCESS) {
++ if (i != 0) {
+ cs_error(link, RequestConfiguration, i);
+ goto failed;
+ }
+diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
+index 12e1089..64238b0 100644
+--- a/drivers/bluetooth/btusb.c
++++ b/drivers/bluetooth/btusb.c
+@@ -2,7 +2,7 @@
+ *
+ * Generic Bluetooth USB driver
+ *
+- * Copyright (C) 2005-2007 Marcel Holtmann <marcel@holtmann.org>
++ * Copyright (C) 2005-2008 Marcel Holtmann <marcel@holtmann.org>
+ *
+ *
+ * This program is free software; you can redistribute it and/or modify
+@@ -41,27 +41,144 @@
+ #define BT_DBG(D...)
+ #endif
+
+-#define VERSION "0.1"
++#define VERSION "0.3"
++
++static int ignore_dga;
++static int ignore_csr;
++static int ignore_sniffer;
++static int disable_scofix;
++static int force_scofix;
++static int reset;
++
++static struct usb_driver btusb_driver;
++
++#define BTUSB_IGNORE 0x01
++#define BTUSB_RESET 0x02
++#define BTUSB_DIGIANSWER 0x04
++#define BTUSB_CSR 0x08
++#define BTUSB_SNIFFER 0x10
++#define BTUSB_BCM92035 0x20
++#define BTUSB_BROKEN_ISOC 0x40
++#define BTUSB_WRONG_SCO_MTU 0x80
+
+ static struct usb_device_id btusb_table[] = {
+ /* Generic Bluetooth USB device */
+ { USB_DEVICE_INFO(0xe0, 0x01, 0x01) },
+
++ /* AVM BlueFRITZ! USB v2.0 */
++ { USB_DEVICE(0x057c, 0x3800) },
++
++ /* Bluetooth Ultraport Module from IBM */
++ { USB_DEVICE(0x04bf, 0x030a) },
++
++ /* ALPS Modules with non-standard id */
++ { USB_DEVICE(0x044e, 0x3001) },
++ { USB_DEVICE(0x044e, 0x3002) },
++
++ /* Ericsson with non-standard id */
++ { USB_DEVICE(0x0bdb, 0x1002) },
++
++ /* Canyon CN-BTU1 with HID interfaces */
++ { USB_DEVICE(0x0c10, 0x0000), .driver_info = BTUSB_RESET },
++
+ { } /* Terminating entry */
+ };
+
+ MODULE_DEVICE_TABLE(usb, btusb_table);
+
+ static struct usb_device_id blacklist_table[] = {
++ /* CSR BlueCore devices */
++ { USB_DEVICE(0x0a12, 0x0001), .driver_info = BTUSB_CSR },
++
++ /* Broadcom BCM2033 without firmware */
++ { USB_DEVICE(0x0a5c, 0x2033), .driver_info = BTUSB_IGNORE },
++
++ /* Broadcom BCM2035 */
++ { USB_DEVICE(0x0a5c, 0x2035), .driver_info = BTUSB_RESET | BTUSB_WRONG_SCO_MTU },
++ { USB_DEVICE(0x0a5c, 0x200a), .driver_info = BTUSB_RESET | BTUSB_WRONG_SCO_MTU },
++
++ /* Broadcom BCM2045 */
++ { USB_DEVICE(0x0a5c, 0x2039), .driver_info = BTUSB_RESET | BTUSB_WRONG_SCO_MTU },
++ { USB_DEVICE(0x0a5c, 0x2101), .driver_info = BTUSB_RESET | BTUSB_WRONG_SCO_MTU },
++
++ /* Broadcom BCM2046 */
++ { USB_DEVICE(0x0a5c, 0x2146), .driver_info = BTUSB_RESET },
++ { USB_DEVICE(0x0a5c, 0x2151), .driver_info = BTUSB_RESET },
++
++ /* Apple MacBook Pro with Broadcom chip */
++ { USB_DEVICE(0x05ac, 0x820f), .driver_info = BTUSB_RESET },
++
++ /* IBM/Lenovo ThinkPad with Broadcom chip */
++ { USB_DEVICE(0x0a5c, 0x201e), .driver_info = BTUSB_RESET | BTUSB_WRONG_SCO_MTU },
++ { USB_DEVICE(0x0a5c, 0x2110), .driver_info = BTUSB_RESET | BTUSB_WRONG_SCO_MTU },
++
++ /* Targus ACB10US */
++ { USB_DEVICE(0x0a5c, 0x2100), .driver_info = BTUSB_RESET },
++ { USB_DEVICE(0x0a5c, 0x2154), .driver_info = BTUSB_RESET },
++
++ /* ANYCOM Bluetooth USB-200 and USB-250 */
++ { USB_DEVICE(0x0a5c, 0x2111), .driver_info = BTUSB_RESET },
++
++ /* HP laptop with Broadcom chip */
++ { USB_DEVICE(0x03f0, 0x171d), .driver_info = BTUSB_RESET | BTUSB_WRONG_SCO_MTU },
++
++ /* Dell laptop with Broadcom chip */
++ { USB_DEVICE(0x413c, 0x8126), .driver_info = BTUSB_RESET | BTUSB_WRONG_SCO_MTU },
++
++ /* Dell Wireless 370 */
++ { USB_DEVICE(0x413c, 0x8156), .driver_info = BTUSB_RESET | BTUSB_WRONG_SCO_MTU },
++
++ /* Dell Wireless 410 */
++ { USB_DEVICE(0x413c, 0x8152), .driver_info = BTUSB_RESET | BTUSB_WRONG_SCO_MTU },
++
++ /* Microsoft Wireless Transceiver for Bluetooth 2.0 */
++ { USB_DEVICE(0x045e, 0x009c), .driver_info = BTUSB_RESET },
++
++ /* Kensington Bluetooth USB adapter */
++ { USB_DEVICE(0x047d, 0x105d), .driver_info = BTUSB_RESET },
++ { USB_DEVICE(0x047d, 0x105e), .driver_info = BTUSB_RESET | BTUSB_WRONG_SCO_MTU },
++
++ /* ISSC Bluetooth Adapter v3.1 */
++ { USB_DEVICE(0x1131, 0x1001), .driver_info = BTUSB_RESET },
++
++ /* RTX Telecom based adapters with buggy SCO support */
++ { USB_DEVICE(0x0400, 0x0807), .driver_info = BTUSB_BROKEN_ISOC },
++ { USB_DEVICE(0x0400, 0x080a), .driver_info = BTUSB_BROKEN_ISOC },
++
++ /* CONWISE Technology based adapters with buggy SCO support */
++ { USB_DEVICE(0x0e5e, 0x6622), .driver_info = BTUSB_BROKEN_ISOC },
++
++ /* Belkin F8T012 and F8T013 devices */
++ { USB_DEVICE(0x050d, 0x0012), .driver_info = BTUSB_RESET | BTUSB_WRONG_SCO_MTU },
++ { USB_DEVICE(0x050d, 0x0013), .driver_info = BTUSB_RESET | BTUSB_WRONG_SCO_MTU },
++
++ /* Belkin F8T016 device */
++ { USB_DEVICE(0x050d, 0x016a), .driver_info = BTUSB_RESET },
++
++ /* Digianswer devices */
++ { USB_DEVICE(0x08fd, 0x0001), .driver_info = BTUSB_DIGIANSWER },
++ { USB_DEVICE(0x08fd, 0x0002), .driver_info = BTUSB_IGNORE },
++
++ /* CSR BlueCore Bluetooth Sniffer */
++ { USB_DEVICE(0x0a12, 0x0002), .driver_info = BTUSB_SNIFFER },
++
++ /* Frontline ComProbe Bluetooth Sniffer */
++ { USB_DEVICE(0x16d3, 0x0002), .driver_info = BTUSB_SNIFFER },
++
+ { } /* Terminating entry */
+ };
+
++#define BTUSB_MAX_ISOC_FRAMES 10
++
+ #define BTUSB_INTR_RUNNING 0
+ #define BTUSB_BULK_RUNNING 1
++#define BTUSB_ISOC_RUNNING 2
+
+ struct btusb_data {
+ struct hci_dev *hdev;
+ struct usb_device *udev;
++ struct usb_interface *intf;
++ struct usb_interface *isoc;
+
+ spinlock_t lock;
+
+@@ -72,10 +189,15 @@ struct btusb_data {
+ struct usb_anchor tx_anchor;
+ struct usb_anchor intr_anchor;
+ struct usb_anchor bulk_anchor;
++ struct usb_anchor isoc_anchor;
+
+ struct usb_endpoint_descriptor *intr_ep;
+ struct usb_endpoint_descriptor *bulk_tx_ep;
+ struct usb_endpoint_descriptor *bulk_rx_ep;
++ struct usb_endpoint_descriptor *isoc_tx_ep;
++ struct usb_endpoint_descriptor *isoc_rx_ep;
++
++ int isoc_altsetting;
+ };
+
+ static void btusb_intr_complete(struct urb *urb)
+@@ -91,6 +213,8 @@ static void btusb_intr_complete(struct urb *urb)
+ return;
+
+ if (urb->status == 0) {
++ hdev->stat.byte_rx += urb->actual_length;
++
+ if (hci_recv_fragment(hdev, HCI_EVENT_PKT,
+ urb->transfer_buffer,
+ urb->actual_length) < 0) {
+@@ -112,7 +236,7 @@ static void btusb_intr_complete(struct urb *urb)
+ }
+ }
+
+-static inline int btusb_submit_intr_urb(struct hci_dev *hdev)
++static int btusb_submit_intr_urb(struct hci_dev *hdev)
+ {
+ struct btusb_data *data = hdev->driver_data;
+ struct urb *urb;
+@@ -122,6 +246,9 @@ static inline int btusb_submit_intr_urb(struct hci_dev *hdev)
+
+ BT_DBG("%s", hdev->name);
+
++ if (!data->intr_ep)
++ return -ENODEV;
++
+ urb = usb_alloc_urb(0, GFP_ATOMIC);
+ if (!urb)
+ return -ENOMEM;
+@@ -149,7 +276,6 @@ static inline int btusb_submit_intr_urb(struct hci_dev *hdev)
+ BT_ERR("%s urb %p submission failed (%d)",
+ hdev->name, urb, -err);
+ usb_unanchor_urb(urb);
+- kfree(buf);
+ }
+
+ usb_free_urb(urb);
+@@ -170,6 +296,8 @@ static void btusb_bulk_complete(struct urb *urb)
+ return;
+
+ if (urb->status == 0) {
++ hdev->stat.byte_rx += urb->actual_length;
++
+ if (hci_recv_fragment(hdev, HCI_ACLDATA_PKT,
+ urb->transfer_buffer,
+ urb->actual_length) < 0) {
+@@ -191,7 +319,7 @@ static void btusb_bulk_complete(struct urb *urb)
+ }
+ }
+
+-static inline int btusb_submit_bulk_urb(struct hci_dev *hdev)
++static int btusb_submit_bulk_urb(struct hci_dev *hdev)
+ {
+ struct btusb_data *data = hdev->driver_data;
+ struct urb *urb;
+@@ -201,6 +329,9 @@ static inline int btusb_submit_bulk_urb(struct hci_dev *hdev)
+
+ BT_DBG("%s", hdev->name);
+
++ if (!data->bulk_rx_ep)
++ return -ENODEV;
++
+ urb = usb_alloc_urb(0, GFP_KERNEL);
+ if (!urb)
+ return -ENOMEM;
+@@ -227,7 +358,126 @@ static inline int btusb_submit_bulk_urb(struct hci_dev *hdev)
+ BT_ERR("%s urb %p submission failed (%d)",
+ hdev->name, urb, -err);
+ usb_unanchor_urb(urb);
+- kfree(buf);
++ }
++
++ usb_free_urb(urb);
++
++ return err;
++}
++
++static void btusb_isoc_complete(struct urb *urb)
++{
++ struct hci_dev *hdev = urb->context;
++ struct btusb_data *data = hdev->driver_data;
++ int i, err;
++
++ BT_DBG("%s urb %p status %d count %d", hdev->name,
++ urb, urb->status, urb->actual_length);
++
++ if (!test_bit(HCI_RUNNING, &hdev->flags))
++ return;
++
++ if (urb->status == 0) {
++ for (i = 0; i < urb->number_of_packets; i++) {
++ unsigned int offset = urb->iso_frame_desc[i].offset;
++ unsigned int length = urb->iso_frame_desc[i].actual_length;
++
++ if (urb->iso_frame_desc[i].status)
++ continue;
++
++ hdev->stat.byte_rx += length;
++
++ if (hci_recv_fragment(hdev, HCI_SCODATA_PKT,
++ urb->transfer_buffer + offset,
++ length) < 0) {
++ BT_ERR("%s corrupted SCO packet", hdev->name);
++ hdev->stat.err_rx++;
++ }
++ }
++ }
++
++ if (!test_bit(BTUSB_ISOC_RUNNING, &data->flags))
++ return;
++
++ usb_anchor_urb(urb, &data->isoc_anchor);
++
++ err = usb_submit_urb(urb, GFP_ATOMIC);
++ if (err < 0) {
++ BT_ERR("%s urb %p failed to resubmit (%d)",
++ hdev->name, urb, -err);
++ usb_unanchor_urb(urb);
++ }
++}
++
++static void inline __fill_isoc_descriptor(struct urb *urb, int len, int mtu)
++{
++ int i, offset = 0;
++
++ BT_DBG("len %d mtu %d", len, mtu);
++
++ for (i = 0; i < BTUSB_MAX_ISOC_FRAMES && len >= mtu;
++ i++, offset += mtu, len -= mtu) {
++ urb->iso_frame_desc[i].offset = offset;
++ urb->iso_frame_desc[i].length = mtu;
++ }
++
++ if (len && i < BTUSB_MAX_ISOC_FRAMES) {
++ urb->iso_frame_desc[i].offset = offset;
++ urb->iso_frame_desc[i].length = len;
++ i++;
++ }
++
++ urb->number_of_packets = i;
++}
++
++static int btusb_submit_isoc_urb(struct hci_dev *hdev)
++{
++ struct btusb_data *data = hdev->driver_data;
++ struct urb *urb;
++ unsigned char *buf;
++ unsigned int pipe;
++ int err, size;
++
++ BT_DBG("%s", hdev->name);
++
++ if (!data->isoc_rx_ep)
++ return -ENODEV;
++
++ urb = usb_alloc_urb(BTUSB_MAX_ISOC_FRAMES, GFP_KERNEL);
++ if (!urb)
++ return -ENOMEM;
++
++ size = le16_to_cpu(data->isoc_rx_ep->wMaxPacketSize) *
++ BTUSB_MAX_ISOC_FRAMES;
++
++ buf = kmalloc(size, GFP_KERNEL);
++ if (!buf) {
++ usb_free_urb(urb);
++ return -ENOMEM;
++ }
++
++ pipe = usb_rcvisocpipe(data->udev, data->isoc_rx_ep->bEndpointAddress);
++
++ urb->dev = data->udev;
++ urb->pipe = pipe;
++ urb->context = hdev;
++ urb->complete = btusb_isoc_complete;
++ urb->interval = data->isoc_rx_ep->bInterval;
++
++ urb->transfer_flags = URB_FREE_BUFFER | URB_ISO_ASAP;
++ urb->transfer_buffer = buf;
++ urb->transfer_buffer_length = size;
++
++ __fill_isoc_descriptor(urb, size,
++ le16_to_cpu(data->isoc_rx_ep->wMaxPacketSize));
++
++ usb_anchor_urb(urb, &data->isoc_anchor);
++
++ err = usb_submit_urb(urb, GFP_KERNEL);
++ if (err < 0) {
++ BT_ERR("%s urb %p submission failed (%d)",
++ hdev->name, urb, -err);
++ usb_unanchor_urb(urb);
+ }
+
+ usb_free_urb(urb);
+@@ -272,7 +522,7 @@ static int btusb_open(struct hci_dev *hdev)
+
+ err = btusb_submit_intr_urb(hdev);
+ if (err < 0) {
+- clear_bit(BTUSB_INTR_RUNNING, &hdev->flags);
++ clear_bit(BTUSB_INTR_RUNNING, &data->flags);
+ clear_bit(HCI_RUNNING, &hdev->flags);
+ }
+
+@@ -288,6 +538,11 @@ static int btusb_close(struct hci_dev *hdev)
+ if (!test_and_clear_bit(HCI_RUNNING, &hdev->flags))
+ return 0;
+
++ cancel_work_sync(&data->work);
++
++ clear_bit(BTUSB_ISOC_RUNNING, &data->flags);
++ usb_kill_anchored_urbs(&data->isoc_anchor);
++
+ clear_bit(BTUSB_BULK_RUNNING, &data->flags);
+ usb_kill_anchored_urbs(&data->bulk_anchor);
+
+@@ -349,6 +604,9 @@ static int btusb_send_frame(struct sk_buff *skb)
+ break;
+
+ case HCI_ACLDATA_PKT:
++ if (!data->bulk_tx_ep || hdev->conn_hash.acl_num < 1)
++ return -ENODEV;
++
+ urb = usb_alloc_urb(0, GFP_ATOMIC);
+ if (!urb)
+ return -ENOMEM;
+@@ -363,9 +621,31 @@ static int btusb_send_frame(struct sk_buff *skb)
+ break;
+
+ case HCI_SCODATA_PKT:
++ if (!data->isoc_tx_ep || hdev->conn_hash.sco_num < 1)
++ return -ENODEV;
++
++ urb = usb_alloc_urb(BTUSB_MAX_ISOC_FRAMES, GFP_ATOMIC);
++ if (!urb)
++ return -ENOMEM;
++
++ pipe = usb_sndisocpipe(data->udev,
++ data->isoc_tx_ep->bEndpointAddress);
++
++ urb->dev = data->udev;
++ urb->pipe = pipe;
++ urb->context = skb;
++ urb->complete = btusb_tx_complete;
++ urb->interval = data->isoc_tx_ep->bInterval;
++
++ urb->transfer_flags = URB_ISO_ASAP;
++ urb->transfer_buffer = skb->data;
++ urb->transfer_buffer_length = skb->len;
++
++ __fill_isoc_descriptor(urb, skb->len,
++ le16_to_cpu(data->isoc_tx_ep->wMaxPacketSize));
++
+ hdev->stat.sco_tx++;
+- kfree_skb(skb);
+- return 0;
++ break;
+
+ default:
+ return -EILSEQ;
+@@ -404,22 +684,86 @@ static void btusb_notify(struct hci_dev *hdev, unsigned int evt)
+ schedule_work(&data->work);
+ }
+
++static int inline __set_isoc_interface(struct hci_dev *hdev, int altsetting)
++{
++ struct btusb_data *data = hdev->driver_data;
++ struct usb_interface *intf = data->isoc;
++ struct usb_endpoint_descriptor *ep_desc;
++ int i, err;
++
++ if (!data->isoc)
++ return -ENODEV;
++
++ err = usb_set_interface(data->udev, 1, altsetting);
++ if (err < 0) {
++ BT_ERR("%s setting interface failed (%d)", hdev->name, -err);
++ return err;
++ }
++
++ data->isoc_altsetting = altsetting;
++
++ data->isoc_tx_ep = NULL;
++ data->isoc_rx_ep = NULL;
++
++ for (i = 0; i < intf->cur_altsetting->desc.bNumEndpoints; i++) {
++ ep_desc = &intf->cur_altsetting->endpoint[i].desc;
++
++ if (!data->isoc_tx_ep && usb_endpoint_is_isoc_out(ep_desc)) {
++ data->isoc_tx_ep = ep_desc;
++ continue;
++ }
++
++ if (!data->isoc_rx_ep && usb_endpoint_is_isoc_in(ep_desc)) {
++ data->isoc_rx_ep = ep_desc;
++ continue;
++ }
++ }
++
++ if (!data->isoc_tx_ep || !data->isoc_rx_ep) {
++ BT_ERR("%s invalid SCO descriptors", hdev->name);
++ return -ENODEV;
++ }
++
++ return 0;
++}
++
+ static void btusb_work(struct work_struct *work)
+ {
+ struct btusb_data *data = container_of(work, struct btusb_data, work);
+ struct hci_dev *hdev = data->hdev;
+
+- if (hdev->conn_hash.acl_num == 0) {
++ if (hdev->conn_hash.acl_num > 0) {
++ if (!test_and_set_bit(BTUSB_BULK_RUNNING, &data->flags)) {
++ if (btusb_submit_bulk_urb(hdev) < 0)
++ clear_bit(BTUSB_BULK_RUNNING, &data->flags);
++ else
++ btusb_submit_bulk_urb(hdev);
++ }
++ } else {
+ clear_bit(BTUSB_BULK_RUNNING, &data->flags);
+ usb_kill_anchored_urbs(&data->bulk_anchor);
+- return;
+ }
+
+- if (!test_and_set_bit(BTUSB_BULK_RUNNING, &data->flags)) {
+- if (btusb_submit_bulk_urb(hdev) < 0)
+- clear_bit(BTUSB_BULK_RUNNING, &data->flags);
+- else
+- btusb_submit_bulk_urb(hdev);
++ if (hdev->conn_hash.sco_num > 0) {
++ if (data->isoc_altsetting != 2) {
++ clear_bit(BTUSB_ISOC_RUNNING, &data->flags);
++ usb_kill_anchored_urbs(&data->isoc_anchor);
++
++ if (__set_isoc_interface(hdev, 2) < 0)
++ return;
++ }
++
++ if (!test_and_set_bit(BTUSB_ISOC_RUNNING, &data->flags)) {
++ if (btusb_submit_isoc_urb(hdev) < 0)
++ clear_bit(BTUSB_ISOC_RUNNING, &data->flags);
++ else
++ btusb_submit_isoc_urb(hdev);
++ }
++ } else {
++ clear_bit(BTUSB_ISOC_RUNNING, &data->flags);
++ usb_kill_anchored_urbs(&data->isoc_anchor);
++
++ __set_isoc_interface(hdev, 0);
+ }
+ }
+
+@@ -433,6 +777,7 @@ static int btusb_probe(struct usb_interface *intf,
+
+ BT_DBG("intf %p id %p", intf, id);
+
++ /* interface numbers are hardcoded in the spec */
+ if (intf->cur_altsetting->desc.bInterfaceNumber != 0)
+ return -ENODEV;
+
+@@ -443,6 +788,18 @@ static int btusb_probe(struct usb_interface *intf,
+ id = match;
+ }
+
++ if (id->driver_info == BTUSB_IGNORE)
++ return -ENODEV;
++
++ if (ignore_dga && id->driver_info & BTUSB_DIGIANSWER)
++ return -ENODEV;
++
++ if (ignore_csr && id->driver_info & BTUSB_CSR)
++ return -ENODEV;
++
++ if (ignore_sniffer && id->driver_info & BTUSB_SNIFFER)
++ return -ENODEV;
++
+ data = kzalloc(sizeof(*data), GFP_KERNEL);
+ if (!data)
+ return -ENOMEM;
+@@ -472,6 +829,7 @@ static int btusb_probe(struct usb_interface *intf,
+ }
+
+ data->udev = interface_to_usbdev(intf);
++ data->intf = intf;
+
+ spin_lock_init(&data->lock);
+
+@@ -480,6 +838,7 @@ static int btusb_probe(struct usb_interface *intf,
+ init_usb_anchor(&data->tx_anchor);
+ init_usb_anchor(&data->intr_anchor);
+ init_usb_anchor(&data->bulk_anchor);
++ init_usb_anchor(&data->isoc_anchor);
+
+ hdev = hci_alloc_dev();
+ if (!hdev) {
+@@ -503,7 +862,49 @@ static int btusb_probe(struct usb_interface *intf,
+
+ hdev->owner = THIS_MODULE;
+
+- set_bit(HCI_QUIRK_RESET_ON_INIT, &hdev->quirks);
++ /* interface numbers are hardcoded in the spec */
++ data->isoc = usb_ifnum_to_if(data->udev, 1);
++
++ if (reset || id->driver_info & BTUSB_RESET)
++ set_bit(HCI_QUIRK_RESET_ON_INIT, &hdev->quirks);
++
++ if (force_scofix || id->driver_info & BTUSB_WRONG_SCO_MTU) {
++ if (!disable_scofix)
++ set_bit(HCI_QUIRK_FIXUP_BUFFER_SIZE, &hdev->quirks);
++ }
++
++ if (id->driver_info & BTUSB_BROKEN_ISOC)
++ data->isoc = NULL;
++
++ if (id->driver_info & BTUSB_SNIFFER) {
++ struct usb_device *udev = data->udev;
++
++ if (le16_to_cpu(udev->descriptor.bcdDevice) > 0x997)
++ set_bit(HCI_QUIRK_RAW_DEVICE, &hdev->quirks);
++
++ data->isoc = NULL;
++ }
++
++ if (id->driver_info & BTUSB_BCM92035) {
++ unsigned char cmd[] = { 0x3b, 0xfc, 0x01, 0x00 };
++ struct sk_buff *skb;
++
++ skb = bt_skb_alloc(sizeof(cmd), GFP_KERNEL);
++ if (skb) {
++ memcpy(skb_put(skb, sizeof(cmd)), cmd, sizeof(cmd));
++ skb_queue_tail(&hdev->driver_init, skb);
++ }
++ }
++
++ if (data->isoc) {
++ err = usb_driver_claim_interface(&btusb_driver,
++ data->isoc, data);
++ if (err < 0) {
++ hci_free_dev(hdev);
++ kfree(data);
++ return err;
++ }
++ }
+
+ err = hci_register_dev(hdev);
+ if (err < 0) {
+@@ -529,18 +930,45 @@ static void btusb_disconnect(struct usb_interface *intf)
+
+ hdev = data->hdev;
+
+- usb_set_intfdata(intf, NULL);
++ __hci_dev_hold(hdev);
++
++ usb_set_intfdata(data->intf, NULL);
++
++ if (data->isoc)
++ usb_set_intfdata(data->isoc, NULL);
+
+ hci_unregister_dev(hdev);
+
++ if (intf == data->isoc)
++ usb_driver_release_interface(&btusb_driver, data->intf);
++ else if (data->isoc)
++ usb_driver_release_interface(&btusb_driver, data->isoc);
++
++ __hci_dev_put(hdev);
++
+ hci_free_dev(hdev);
+ }
+
++#ifdef CONFIG_PM
++static int btusb_suspend(struct usb_interface *intf, pm_message_t message)
++{
++ return 0;
++}
++
++static int btusb_resume(struct usb_interface *intf)
++{
++ return 0;
++}
++#endif
+ static struct usb_driver btusb_driver = {
+ .name = "btusb",
+ .probe = btusb_probe,
+ .disconnect = btusb_disconnect,
+ .id_table = btusb_table,
++#ifdef CONFIG_PM
++ .suspend = btusb_suspend,
++ .resume = btusb_resume,
++#endif
+ };
+
+ static int __init btusb_init(void)
+@@ -558,6 +986,24 @@ static void __exit btusb_exit(void)
+ module_init(btusb_init);
+ module_exit(btusb_exit);
+
++module_param(ignore_dga, bool, 0644);
++MODULE_PARM_DESC(ignore_dga, "Ignore devices with id 08fd:0001");
++
++module_param(ignore_csr, bool, 0644);
++MODULE_PARM_DESC(ignore_csr, "Ignore devices with id 0a12:0001");
++
++module_param(ignore_sniffer, bool, 0644);
++MODULE_PARM_DESC(ignore_sniffer, "Ignore devices with id 0a12:0002");
++
++module_param(disable_scofix, bool, 0644);
++MODULE_PARM_DESC(disable_scofix, "Disable fixup of wrong SCO buffer size");
++
++module_param(force_scofix, bool, 0644);
++MODULE_PARM_DESC(force_scofix, "Force fixup of wrong SCO buffers size");
++
++module_param(reset, bool, 0644);
++MODULE_PARM_DESC(reset, "Send HCI reset command on initialization");
++
+ MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
+ MODULE_DESCRIPTION("Generic Bluetooth USB driver ver " VERSION);
+ MODULE_VERSION(VERSION);
+diff --git a/drivers/bluetooth/dtl1_cs.c b/drivers/bluetooth/dtl1_cs.c
+index dae45cd..901bdd9 100644
+--- a/drivers/bluetooth/dtl1_cs.c
++++ b/drivers/bluetooth/dtl1_cs.c
+@@ -297,6 +297,7 @@ static irqreturn_t dtl1_interrupt(int irq, void *dev_inst)
+ unsigned char msr;
+ int boguscount = 0;
+ int iir, lsr;
++ irqreturn_t r = IRQ_NONE;
+
+ BUG_ON(!info->hdev);
+
+@@ -307,6 +308,7 @@ static irqreturn_t dtl1_interrupt(int irq, void *dev_inst)
+ iir = inb(iobase + UART_IIR) & UART_IIR_ID;
+ while (iir) {
+
++ r = IRQ_HANDLED;
+ /* Clear interrupt */
+ lsr = inb(iobase + UART_LSR);
+
+@@ -343,11 +345,12 @@ static irqreturn_t dtl1_interrupt(int irq, void *dev_inst)
+ info->ri_latch = msr & UART_MSR_RI;
+ clear_bit(XMIT_WAITING, &(info->tx_state));
+ dtl1_write_wakeup(info);
++ r = IRQ_HANDLED;
+ }
+
+ spin_unlock(&(info->lock));
+
+- return IRQ_HANDLED;
++ return r;
+ }
+
+
+@@ -568,7 +571,7 @@ static int dtl1_probe(struct pcmcia_device *link)
+
+ link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
+ link->io.NumPorts1 = 8;
+- link->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT;
++ link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_HANDLE_PRESENT;
+ link->irq.IRQInfo1 = IRQ_LEVEL_ID;
+
+ link->irq.Handler = dtl1_interrupt;
+@@ -590,75 +593,40 @@ static void dtl1_detach(struct pcmcia_device *link)
+ kfree(info);
+ }
+
+-static int get_tuple(struct pcmcia_device *handle, tuple_t *tuple, cisparse_t *parse)
++static int dtl1_confcheck(struct pcmcia_device *p_dev,
++ cistpl_cftable_entry_t *cf,
++ cistpl_cftable_entry_t *dflt,
++ unsigned int vcc,
++ void *priv_data)
+ {
+- int i;
+-
+- i = pcmcia_get_tuple_data(handle, tuple);
+- if (i != CS_SUCCESS)
+- return i;
+-
+- return pcmcia_parse_tuple(handle, tuple, parse);
+-}
+-
+-static int first_tuple(struct pcmcia_device *handle, tuple_t *tuple, cisparse_t *parse)
+-{
+- if (pcmcia_get_first_tuple(handle, tuple) != CS_SUCCESS)
+- return CS_NO_MORE_ITEMS;
+- return get_tuple(handle, tuple, parse);
+-}
+-
+-static int next_tuple(struct pcmcia_device *handle, tuple_t *tuple, cisparse_t *parse)
+-{
+- if (pcmcia_get_next_tuple(handle, tuple) != CS_SUCCESS)
+- return CS_NO_MORE_ITEMS;
+- return get_tuple(handle, tuple, parse);
++ if ((cf->io.nwin == 1) && (cf->io.win[0].len > 8)) {
++ p_dev->io.BasePort1 = cf->io.win[0].base;
++ p_dev->io.NumPorts1 = cf->io.win[0].len; /*yo */
++ p_dev->io.IOAddrLines = cf->io.flags & CISTPL_IO_LINES_MASK;
++ if (!pcmcia_request_io(p_dev, &p_dev->io))
++ return 0;
++ }
++ return -ENODEV;
+ }
+
+ static int dtl1_config(struct pcmcia_device *link)
+ {
+ dtl1_info_t *info = link->priv;
+- tuple_t tuple;
+- u_short buf[256];
+- cisparse_t parse;
+- cistpl_cftable_entry_t *cf = &parse.cftable_entry;
+ int i;
+
+- tuple.TupleData = (cisdata_t *)buf;
+- tuple.TupleOffset = 0;
+- tuple.TupleDataMax = 255;
+- tuple.Attributes = 0;
+- tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY;
+-
+ /* Look for a generic full-sized window */
+ link->io.NumPorts1 = 8;
+- i = first_tuple(link, &tuple, &parse);
+- while (i != CS_NO_MORE_ITEMS) {
+- if ((i == CS_SUCCESS) && (cf->io.nwin == 1) && (cf->io.win[0].len > 8)) {
+- link->conf.ConfigIndex = cf->index;
+- link->io.BasePort1 = cf->io.win[0].base;
+- link->io.NumPorts1 = cf->io.win[0].len; /*yo */
+- link->io.IOAddrLines = cf->io.flags & CISTPL_IO_LINES_MASK;
+- i = pcmcia_request_io(link, &link->io);
+- if (i == CS_SUCCESS)
+- break;
+- }
+- i = next_tuple(link, &tuple, &parse);
+- }
+-
+- if (i != CS_SUCCESS) {
+- cs_error(link, RequestIO, i);
++ if (!pcmcia_loop_config(link, dtl1_confcheck, NULL))
+ goto failed;
+- }
+
+ i = pcmcia_request_irq(link, &link->irq);
+- if (i != CS_SUCCESS) {
++ if (i != 0) {
+ cs_error(link, RequestIRQ, i);
+ link->irq.AssignedIRQ = 0;
+ }
+
+ i = pcmcia_request_configuration(link, &link->conf);
+- if (i != CS_SUCCESS) {
++ if (i != 0) {
+ cs_error(link, RequestConfiguration, i);
+ goto failed;
+ }
+diff --git a/drivers/bluetooth/hci_bcsp.c b/drivers/bluetooth/hci_bcsp.c
+index 696f752..7938062 100644
+--- a/drivers/bluetooth/hci_bcsp.c
++++ b/drivers/bluetooth/hci_bcsp.c
+@@ -39,6 +39,8 @@
+ #include <linux/signal.h>
+ #include <linux/ioctl.h>
+ #include <linux/skbuff.h>
++#include <linux/bitrev.h>
++#include <asm/unaligned.h>
+
+ #include <net/bluetooth/bluetooth.h>
+ #include <net/bluetooth/hci_core.h>
+@@ -124,27 +126,6 @@ static void bcsp_crc_update(u16 *crc, u8 d)
+ *crc = reg;
+ }
+
+-/*
+- Get reverse of generated crc
+-
+- Implementation note
+- The crc generator (bcsp_crc_init() and bcsp_crc_update())
+- creates a reversed crc, so it needs to be swapped back before
+- being passed on.
+-*/
+-static u16 bcsp_crc_reverse(u16 crc)
+-{
+- u16 b, rev;
+-
+- for (b = 0, rev = 0; b < 16; b++) {
+- rev = rev << 1;
+- rev |= (crc & 1);
+- crc = crc >> 1;
+- }
+-
+- return (rev);
+-}
+-
+ /* ---- BCSP core ---- */
+
+ static void bcsp_slip_msgdelim(struct sk_buff *skb)
+@@ -235,10 +216,10 @@ static struct sk_buff *bcsp_prepare_pkt(struct bcsp_struct *bcsp, u8 *data,
+ }
+
+ if (hciextn && chan == 5) {
+- struct hci_command_hdr *hdr = (struct hci_command_hdr *) data;
++ __le16 opcode = ((struct hci_command_hdr *)data)->opcode;
+
+ /* Vendor specific commands */
+- if (hci_opcode_ogf(__le16_to_cpu(hdr->opcode)) == 0x3f) {
++ if (hci_opcode_ogf(__le16_to_cpu(opcode)) == 0x3f) {
+ u8 desc = *(data + HCI_COMMAND_HDR_SIZE);
+ if ((desc & 0xf0) == 0xc0) {
+ data += HCI_COMMAND_HDR_SIZE + 1;
+@@ -296,7 +277,7 @@ static struct sk_buff *bcsp_prepare_pkt(struct bcsp_struct *bcsp, u8 *data,
+
+ /* Put CRC */
+ if (bcsp->use_crc) {
+- bcsp_txmsg_crc = bcsp_crc_reverse(bcsp_txmsg_crc);
++ bcsp_txmsg_crc = bitrev16(bcsp_txmsg_crc);
+ bcsp_slip_one_byte(nskb, (u8) ((bcsp_txmsg_crc >> 8) & 0x00ff));
+ bcsp_slip_one_byte(nskb, (u8) (bcsp_txmsg_crc & 0x00ff));
+ }
+@@ -371,14 +352,14 @@ static int bcsp_flush(struct hci_uart *hu)
+ /* Remove ack'ed packets */
+ static void bcsp_pkt_cull(struct bcsp_struct *bcsp)
+ {
++ struct sk_buff *skb, *tmp;
+ unsigned long flags;
+- struct sk_buff *skb;
+ int i, pkts_to_be_removed;
+ u8 seqno;
+
+ spin_lock_irqsave(&bcsp->unack.lock, flags);
+
+- pkts_to_be_removed = bcsp->unack.qlen;
++ pkts_to_be_removed = skb_queue_len(&bcsp->unack);
+ seqno = bcsp->msgq_txseq;
+
+ while (pkts_to_be_removed) {
+@@ -392,19 +373,19 @@ static void bcsp_pkt_cull(struct bcsp_struct *bcsp)
+ BT_ERR("Peer acked invalid packet");
+
+ BT_DBG("Removing %u pkts out of %u, up to seqno %u",
+- pkts_to_be_removed, bcsp->unack.qlen, (seqno - 1) & 0x07);
++ pkts_to_be_removed, skb_queue_len(&bcsp->unack),
++ (seqno - 1) & 0x07);
+
+- for (i = 0, skb = ((struct sk_buff *) &bcsp->unack)->next; i < pkts_to_be_removed
+- && skb != (struct sk_buff *) &bcsp->unack; i++) {
+- struct sk_buff *nskb;
++ i = 0;
++ skb_queue_walk_safe(&bcsp->unack, skb, tmp) {
++ if (i++ >= pkts_to_be_removed)
++ break;
+
+- nskb = skb->next;
+ __skb_unlink(skb, &bcsp->unack);
+ kfree_skb(skb);
+- skb = nskb;
+ }
+
+- if (bcsp->unack.qlen == 0)
++ if (skb_queue_empty(&bcsp->unack))
+ del_timer(&bcsp->tbcsp);
+
+ spin_unlock_irqrestore(&bcsp->unack.lock, flags);
+@@ -566,6 +547,11 @@ static void bcsp_complete_rx_pkt(struct hci_uart *hu)
+ bcsp->rx_skb = NULL;
+ }
+
++static u16 bscp_get_crc(struct bcsp_struct *bcsp)
++{
++ return get_unaligned_be16(&bcsp->rx_skb->data[bcsp->rx_skb->len - 2]);
++}
++
+ /* Recv data */
+ static int bcsp_recv(struct hci_uart *hu, void *data, int count)
+ {
+@@ -624,14 +610,10 @@ static int bcsp_recv(struct hci_uart *hu, void *data, int count)
+ continue;
+
+ case BCSP_W4_CRC:
+- if (bcsp_crc_reverse(bcsp->message_crc) !=
+- (bcsp->rx_skb->data[bcsp->rx_skb->len - 2] << 8) +
+- bcsp->rx_skb->data[bcsp->rx_skb->len - 1]) {
+-
++ if (bitrev16(bcsp->message_crc) != bscp_get_crc(bcsp)) {
+ BT_ERR ("Checksum failed: computed %04x received %04x",
+- bcsp_crc_reverse(bcsp->message_crc),
+- (bcsp->rx_skb-> data[bcsp->rx_skb->len - 2] << 8) +
+- bcsp->rx_skb->data[bcsp->rx_skb->len - 1]);
++ bitrev16(bcsp->message_crc),
++ bscp_get_crc(bcsp));
+
+ kfree_skb(bcsp->rx_skb);
+ bcsp->rx_state = BCSP_W4_PKT_DELIMITER;
+diff --git a/drivers/bluetooth/hci_ldisc.c b/drivers/bluetooth/hci_ldisc.c
+index e68821d..4426bb5 100644
+--- a/drivers/bluetooth/hci_ldisc.c
++++ b/drivers/bluetooth/hci_ldisc.c
+@@ -143,7 +143,7 @@ restart:
+ int len;
+
+ set_bit(TTY_DO_WRITE_WAKEUP, &tty->flags);
+- len = tty->driver->write(tty, skb->data, skb->len);
++ len = tty->ops->write(tty, skb->data, skb->len);
+ hdev->stat.byte_tx += len;
+
+ skb_pull(skb, len);
+@@ -190,8 +190,7 @@ static int hci_uart_flush(struct hci_dev *hdev)
+
+ /* Flush any pending characters in the driver and discipline. */
+ tty_ldisc_flush(tty);
+- if (tty->driver && tty->driver->flush_buffer)
+- tty->driver->flush_buffer(tty);
++ tty_driver_flush_buffer(tty);
+
+ if (test_bit(HCI_UART_PROTO_SET, &hu->flags))
+ hu->proto->flush(hu);
+@@ -208,6 +207,7 @@ static int hci_uart_close(struct hci_dev *hdev)
+ return 0;
+
+ hci_uart_flush(hdev);
++ hdev->flush = NULL;
+ return 0;
+ }
+
+@@ -282,11 +282,9 @@ static int hci_uart_tty_open(struct tty_struct *tty)
+ /* FIXME: why is this needed. Note don't use ldisc_ref here as the
+ open path is before the ldisc is referencable */
+
+- if (tty->ldisc.flush_buffer)
+- tty->ldisc.flush_buffer(tty);
+-
+- if (tty->driver && tty->driver->flush_buffer)
+- tty->driver->flush_buffer(tty);
++ if (tty->ldisc.ops->flush_buffer)
++ tty->ldisc.ops->flush_buffer(tty);
++ tty_driver_flush_buffer(tty);
+
+ return 0;
+ }
+@@ -372,9 +370,7 @@ static void hci_uart_tty_receive(struct tty_struct *tty, const u8 *data, char *f
+ hu->hdev->stat.byte_rx += count;
+ spin_unlock(&hu->rx_lock);
+
+- if (test_and_clear_bit(TTY_THROTTLED, &tty->flags) &&
+- tty->driver->unthrottle)
+- tty->driver->unthrottle(tty);
++ tty_unthrottle(tty);
+ }
+
+ static int hci_uart_register_dev(struct hci_uart *hu)
+@@ -488,7 +484,7 @@ static int hci_uart_tty_ioctl(struct tty_struct *tty, struct file * file,
+ return -EUNATCH;
+
+ default:
+- err = n_tty_ioctl(tty, file, cmd, arg);
++ err = n_tty_ioctl_helper(tty, file, cmd, arg);
+ break;
+ };
+
+@@ -518,7 +514,7 @@ static unsigned int hci_uart_tty_poll(struct tty_struct *tty,
+
+ static int __init hci_uart_init(void)
+ {
+- static struct tty_ldisc hci_uart_ldisc;
++ static struct tty_ldisc_ops hci_uart_ldisc;
+ int err;
+
+ BT_INFO("HCI UART driver ver %s", VERSION);
+@@ -581,7 +577,7 @@ module_exit(hci_uart_exit);
+ module_param(reset, bool, 0644);
+ MODULE_PARM_DESC(reset, "Send HCI reset command on initialization");
+
+-MODULE_AUTHOR("Maxim Krasnyansky <maxk@qualcomm.com>, Marcel Holtmann <marcel@holtmann.org>");
++MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
+ MODULE_DESCRIPTION("Bluetooth HCI UART driver ver " VERSION);
+ MODULE_VERSION(VERSION);
+ MODULE_LICENSE("GPL");
+diff --git a/drivers/bluetooth/hci_usb.c b/drivers/bluetooth/hci_usb.c
+index 98a9cde..3c45392 100644
+--- a/drivers/bluetooth/hci_usb.c
++++ b/drivers/bluetooth/hci_usb.c
+@@ -62,19 +62,18 @@
+ #define URB_ZERO_PACKET 0
+ #endif
+
+-static int ignore = 0;
+-static int ignore_dga = 0;
+-static int ignore_csr = 0;
+-static int ignore_sniffer = 0;
+-static int disable_scofix = 0;
+-static int force_scofix = 0;
+-static int reset = 0;
++static int ignore_dga;
++static int ignore_csr;
++static int ignore_sniffer;
++static int disable_scofix;
++static int force_scofix;
++static int reset;
+
+ #ifdef CONFIG_BT_HCIUSB_SCO
+ static int isoc = 2;
+ #endif
+
+-#define VERSION "2.9"
++#define VERSION "2.10"
+
+ static struct usb_driver hci_usb_driver;
+
+@@ -111,10 +110,12 @@ static struct usb_device_id blacklist_ids[] = {
+ { USB_DEVICE(0x0a5c, 0x2033), .driver_info = HCI_IGNORE },
+
+ /* Broadcom BCM2035 */
++ { USB_DEVICE(0x0a5c, 0x2035), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU },
+ { USB_DEVICE(0x0a5c, 0x200a), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU },
+ { USB_DEVICE(0x0a5c, 0x2009), .driver_info = HCI_BCM92035 },
+
+ /* Broadcom BCM2045 */
++ { USB_DEVICE(0x0a5c, 0x2039), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU },
+ { USB_DEVICE(0x0a5c, 0x2101), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU },
+
+ /* IBM/Lenovo ThinkPad with Broadcom chip */
+@@ -132,6 +133,13 @@ static struct usb_device_id blacklist_ids[] = {
+
+ /* Dell laptop with Broadcom chip */
+ { USB_DEVICE(0x413c, 0x8126), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU },
++ /* Dell Wireless 370 */
++ { USB_DEVICE(0x413c, 0x8156), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU },
++ /* Dell Wireless 410 */
++ { USB_DEVICE(0x413c, 0x8152), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU },
++
++ /* Broadcom 2046 */
++ { USB_DEVICE(0x0a5c, 0x2151), .driver_info = HCI_RESET },
+
+ /* Microsoft Wireless Transceiver for Bluetooth 2.0 */
+ { USB_DEVICE(0x045e, 0x009c), .driver_info = HCI_RESET },
+@@ -147,6 +155,9 @@ static struct usb_device_id blacklist_ids[] = {
+ { USB_DEVICE(0x0400, 0x0807), .driver_info = HCI_BROKEN_ISOC },
+ { USB_DEVICE(0x0400, 0x080a), .driver_info = HCI_BROKEN_ISOC },
+
++ /* CONWISE Technology based adapters with buggy SCO support */
++ { USB_DEVICE(0x0e5e, 0x6622), .driver_info = HCI_BROKEN_ISOC },
++
+ /* Belkin F8T012 and F8T013 devices */
+ { USB_DEVICE(0x050d, 0x0012), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU },
+ { USB_DEVICE(0x050d, 0x0013), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU },
+@@ -260,7 +271,7 @@ static int hci_usb_intr_rx_submit(struct hci_usb *husb)
+ BT_ERR("%s intr rx submit failed urb %p err %d",
+ husb->hdev->name, urb, err);
+ _urb_unlink(_urb);
+- _urb_free(_urb);
++ kfree(_urb);
+ kfree(buf);
+ }
+ return err;
+@@ -297,7 +308,7 @@ static int hci_usb_bulk_rx_submit(struct hci_usb *husb)
+ BT_ERR("%s bulk rx submit failed urb %p err %d",
+ husb->hdev->name, urb, err);
+ _urb_unlink(_urb);
+- _urb_free(_urb);
++ kfree(_urb);
+ kfree(buf);
+ }
+ return err;
+@@ -348,7 +359,7 @@ static int hci_usb_isoc_rx_submit(struct hci_usb *husb)
+ BT_ERR("%s isoc rx submit failed urb %p err %d",
+ husb->hdev->name, urb, err);
+ _urb_unlink(_urb);
+- _urb_free(_urb);
++ kfree(_urb);
+ kfree(buf);
+ }
+ return err;
+@@ -426,7 +437,7 @@ static void hci_usb_unlink_urbs(struct hci_usb *husb)
+ husb->hdev->name, _urb, _urb->type, urb);
+ kfree(urb->setup_packet);
+ kfree(urb->transfer_buffer);
+- _urb_free(_urb);
++ kfree(_urb);
+ }
+ }
+ }
+@@ -485,7 +496,7 @@ static inline int hci_usb_send_ctrl(struct hci_usb *husb, struct sk_buff *skb)
+
+ dr = kmalloc(sizeof(*dr), GFP_ATOMIC);
+ if (!dr) {
+- _urb_free(_urb);
++ kfree(_urb);
+ return -ENOMEM;
+ }
+ } else
+@@ -789,7 +800,7 @@ static int hci_usb_probe(struct usb_interface *intf, const struct usb_device_id
+ id = match;
+ }
+
+- if (ignore || id->driver_info & HCI_IGNORE)
++ if (id->driver_info & HCI_IGNORE)
+ return -ENODEV;
+
+ if (ignore_dga && id->driver_info & HCI_DIGIANSWER)
+@@ -1096,9 +1107,6 @@ static void __exit hci_usb_exit(void)
+ module_init(hci_usb_init);
+ module_exit(hci_usb_exit);
+
+-module_param(ignore, bool, 0644);
+-MODULE_PARM_DESC(ignore, "Ignore devices from the matching table");
+-
+ module_param(ignore_dga, bool, 0644);
+ MODULE_PARM_DESC(ignore_dga, "Ignore devices with id 08fd:0001");
+
+@@ -1122,7 +1130,7 @@ module_param(isoc, int, 0644);
+ MODULE_PARM_DESC(isoc, "Set isochronous transfers for SCO over HCI support");
+ #endif
+
+-MODULE_AUTHOR("Maxim Krasnyansky <maxk@qualcomm.com>, Marcel Holtmann <marcel@holtmann.org>");
++MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
+ MODULE_DESCRIPTION("Bluetooth HCI USB driver ver " VERSION);
+ MODULE_VERSION(VERSION);
+ MODULE_LICENSE("GPL");
+diff --git a/drivers/bluetooth/hci_usb.h b/drivers/bluetooth/hci_usb.h
+index 56cd3a9..8e65991 100644
+--- a/drivers/bluetooth/hci_usb.h
++++ b/drivers/bluetooth/hci_usb.h
+@@ -60,11 +60,6 @@ struct _urb {
+ struct urb urb;
+ };
+
+-static inline void _urb_free(struct _urb *_urb)
+-{
+- kfree(_urb);
+-}
+-
+ static inline void _urb_queue_init(struct _urb_queue *q)
+ {
+ INIT_LIST_HEAD(&q->head);
+@@ -75,7 +70,8 @@ static inline void _urb_queue_head(struct _urb_queue *q, struct _urb *_urb)
+ {
+ unsigned long flags;
+ spin_lock_irqsave(&q->lock, flags);
+- list_add(&_urb->list, &q->head); _urb->queue = q;
++ /* _urb_unlink needs to know which spinlock to use, thus smp_mb(). */
++ _urb->queue = q; smp_mb(); list_add(&_urb->list, &q->head);
+ spin_unlock_irqrestore(&q->lock, flags);
+ }
+
+@@ -83,19 +79,23 @@ static inline void _urb_queue_tail(struct _urb_queue *q, struct _urb *_urb)
+ {
+ unsigned long flags;
+ spin_lock_irqsave(&q->lock, flags);
+- list_add_tail(&_urb->list, &q->head); _urb->queue = q;
++ /* _urb_unlink needs to know which spinlock to use, thus smp_mb(). */
++ _urb->queue = q; smp_mb(); list_add_tail(&_urb->list, &q->head);
+ spin_unlock_irqrestore(&q->lock, flags);
+ }
+
+ static inline void _urb_unlink(struct _urb *_urb)
+ {
+- struct _urb_queue *q = _urb->queue;
++ struct _urb_queue *q;
+ unsigned long flags;
+- if (q) {
+- spin_lock_irqsave(&q->lock, flags);
+- list_del(&_urb->list); _urb->queue = NULL;
+- spin_unlock_irqrestore(&q->lock, flags);
+- }
++
++ smp_mb();
++ q = _urb->queue;
++ /* If q is NULL, it will die at easy-to-debug NULL pointer dereference.
++ No need to BUG(). */
++ spin_lock_irqsave(&q->lock, flags);
++ list_del(&_urb->list); _urb->queue = NULL;
++ spin_unlock_irqrestore(&q->lock, flags);
+ }
+
+ struct hci_usb {
+diff --git a/drivers/bluetooth/hci_vhci.c b/drivers/bluetooth/hci_vhci.c
+index 0638730..7320a71 100644
+--- a/drivers/bluetooth/hci_vhci.c
++++ b/drivers/bluetooth/hci_vhci.c
+@@ -28,6 +28,7 @@
+ #include <linux/kernel.h>
+ #include <linux/init.h>
+ #include <linux/slab.h>
++#include <linux/smp_lock.h>
+ #include <linux/types.h>
+ #include <linux/errno.h>
+ #include <linux/sched.h>
+@@ -263,9 +264,11 @@ static int vhci_open(struct inode *inode, struct file *file)
+ skb_queue_head_init(&data->readq);
+ init_waitqueue_head(&data->read_wait);
+
++ lock_kernel();
+ hdev = hci_alloc_dev();
+ if (!hdev) {
+ kfree(data);
++ unlock_kernel();
+ return -ENOMEM;
+ }
+
+@@ -286,10 +289,12 @@ static int vhci_open(struct inode *inode, struct file *file)
+ BT_ERR("Can't register HCI device");
+ kfree(data);
+ hci_free_dev(hdev);
++ unlock_kernel();
+ return -EBUSY;
+ }
+
+ file->private_data = data;
++ unlock_kernel();
+
+ return nonseekable_open(inode, file);
+ }
+@@ -313,18 +318,21 @@ static int vhci_release(struct inode *inode, struct file *file)
+ static int vhci_fasync(int fd, struct file *file, int on)
+ {
+ struct vhci_data *data = file->private_data;
+- int err;
++ int err = 0;
+
++ lock_kernel();
+ err = fasync_helper(fd, file, on, &data->fasync);
+ if (err < 0)
+- return err;
++ goto out;
+
+ if (on)
+ data->flags |= VHCI_FASYNC;
+ else
+ data->flags &= ~VHCI_FASYNC;
+
+- return 0;
++out:
++ unlock_kernel();
++ return err;
+ }
+
+ static const struct file_operations vhci_fops = {
+@@ -369,7 +377,7 @@ module_exit(vhci_exit);
+ module_param(minor, int, 0444);
+ MODULE_PARM_DESC(minor, "Miscellaneous minor device number");
+
+-MODULE_AUTHOR("Maxim Krasnyansky <maxk@qualcomm.com>, Marcel Holtmann <marcel@holtmann.org>");
++MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
+ MODULE_DESCRIPTION("Bluetooth virtual HCI driver ver " VERSION);
+ MODULE_VERSION(VERSION);
+ MODULE_LICENSE("GPL");
+diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
+index 5696162..ecdea3c 100644
+--- a/drivers/char/Kconfig
++++ b/drivers/char/Kconfig
+@@ -1055,5 +1055,18 @@ config S3C_MEM
+
+ If unsure, say Y.
+
++choice
++ prompt "HHTECH MID GPIO"
++ help
++ Select LCD either 4.3'' or 7 ''
++ config LCD_4
++ bool "Support for 4.3 inch LCD"
++ help
++ for HHTECH 4.3 inch, provide sysfs interface to APP
++ config LCD_7
++ bool "Support for 7 inch LCD"
++ help
++ for HHTECH 7 inch LCD
++endchoice
+ endmenu
+
+diff --git a/drivers/char/Makefile b/drivers/char/Makefile
+index 8846ea7..7e08964 100644
+--- a/drivers/char/Makefile
++++ b/drivers/char/Makefile
+@@ -7,7 +7,7 @@
+ #
+ FONTMAPFILE = cp437.uni
+
+-obj-y += mem.o random.o tty_io.o n_tty.o tty_ioctl.o
++obj-y += mem.o random.o tty_io.o n_tty.o tty_ioctl.o
+
+ obj-$(CONFIG_LEGACY_PTYS) += pty.o
+ obj-$(CONFIG_UNIX98_PTYS) += pty.o
+@@ -112,6 +112,8 @@ obj-$(CONFIG_JS_RTC) += js-rtc.o
+ js-rtc-y = rtc.o
+
+ obj-$(CONFIG_S3C_MEM) += s3c_mem.o
++obj-$(CONFIG_LCD_4) += hhtech_gpio.o
++obj-$(CONFIG_LCD_7) += hhtech_gpio.o
+
+ # Files generated that shall be removed upon make clean
+ clean-files := consolemap_deftbl.c defkeymap.c
+diff --git a/drivers/char/apm-emulation.c b/drivers/char/apm-emulation.c
+index 17d5431..fe9f638 100644
+--- a/drivers/char/apm-emulation.c
++++ b/drivers/char/apm-emulation.c
+@@ -108,6 +108,7 @@ static DEFINE_MUTEX(state_lock);
+ static const char driver_version[] = "1.13"; /* no spaces */
+
+
++extern unsigned int s3c_adc_value(unsigned int s3c_adc_port);
+
+ /*
+ * Compatibility cruft until the IPAQ people move over to the new
+@@ -115,6 +116,13 @@ static const char driver_version[] = "1.13"; /* no spaces */
+ */
+ static void __apm_get_power_status(struct apm_power_info *info)
+ {
++ int battery_current_charge = s3c_adc_value(0);
++ int battery_reference_charge = s3c_adc_value(1);
++ while(battery_reference_charge > 3050 || battery_reference_charge < 3020) {
++ battery_current_charge = s3c_adc_value(0);
++ battery_reference_charge = s3c_adc_value(1);
++ }
++ info->battery_life = battery_current_charge * 100 / battery_reference_charge;
+ }
+
+ /*
+diff --git a/drivers/char/hhtech_gpio.c b/drivers/char/hhtech_gpio.c
+new file mode 100644
+index 0000000..b3a2fd8
+--- /dev/null
++++ b/drivers/char/hhtech_gpio.c
+@@ -0,0 +1,883 @@
++/*
++ * S3C64XX GPIO Driver
++ *
++ * Copyright (C) 2008 - 2009 HHTECH.
++ *
++ * Author: <wk@hhcn.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this progSoftwareram; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++#include <linux/module.h>
++#include <linux/version.h>
++#include <linux/platform_device.h>
++#include <linux/workqueue.h>
++#include <linux/sysfs.h>
++#include <linux/sysdev.h>
++#include <linux/fs.h>
++#include <linux/gpio_keys.h>
++#include <asm/gpio.h>
++#include <linux/delay.h>
++#include <asm/io.h>
++#include <linux/interrupt.h>
++#include <linux/init.h>
++
++#include <asm/plat-s3c/regs-rtc.h>
++#include <asm/plat-s3c24xx/pm.h>
++#include <linux/reboot.h>
++#include <linux/suspend.h>
++#include <asm/plat-s3c64xx/hhtech_gpio.h>
++
++#if defined(CONFIG_LCD_4)
++static unsigned int system_flag = 0;
++#else
++static unsigned int system_flag = 1;
++#endif
++
++static struct delayed_work headp_detect_work;
++static struct delayed_work battery_work;
++int current_battery = 0;
++EXPORT_SYMBOL(current_battery);
++static int user_disable_speaker = 0;
++
++unsigned long rtc_wakeup_time = 30 * 60;
++EXPORT_SYMBOL(rtc_wakeup_time);
++
++unsigned int wakeup_status = 0; // 0: waked up by external IRQ; 1: waked up by RTC
++EXPORT_SYMBOL(wakeup_status);
++
++/* ################# setting ################## */
++
++// HHTECH set system power enable
++static void set_sys_power(int sw)
++{
++ if (sw)
++ gpio_set_value(GPIO_PWR_EN, 0); //power on
++ else
++ gpio_set_value(GPIO_PWR_EN, 1); //pwoer off
++}
++
++// HHTECH set Charging mode
++static void set_charge_mode(int sw)
++{
++ if (sw)
++ gpio_set_value(GPIO_CHARGER_EN, 1); //860ma
++ else
++ gpio_set_value(GPIO_CHARGER_EN, 0); //200ma
++}
++
++// HHTECH set backlight MP1530 enable
++static void set_backlight_en(int sw)
++{
++ if (sw)
++ gpio_set_value(GPIO_LCD_BLIGHT_EN, 1); //enable
++ else
++ gpio_set_value(GPIO_LCD_BLIGHT_EN, 0); //disable
++}
++
++
++// HHTECH set Vidoe amplifier switch
++static void set_video_amp(int sw)
++{
++ if (sw)
++ gpio_set_value(GPIO_VIDEOAMP_EN, 1); //open
++ else
++ gpio_set_value(GPIO_VIDEOAMP_EN, 0); //close
++}
++
++// HHTECH set USB system (HOST and OTG) power enable
++static void set_usb_syspwr_en(int sw)
++{
++ if (sw)
++ gpio_set_value(GPIO_USB_EN, 1); //open
++ else
++ gpio_set_value(GPIO_USB_EN, 0); //close
++}
++
++// HHTECH set USB HOST power enable
++static void set_usb_hostpwr_en(int sw)
++{
++ if (sw)
++ gpio_set_value(GPIO_USB_HOSTPWR_EN, 1); //open
++ else
++ gpio_set_value(GPIO_USB_HOSTPWR_EN, 0); //close
++}
++
++// HHTECH set USB OTG DRV enable
++static void set_usb_otgdrv_en(int sw)
++{
++ if (sw)
++ gpio_set_value(GPIO_USB_OTGDRV_EN, 1); //open
++ else
++ gpio_set_value(GPIO_USB_OTGDRV_EN, 0); //close
++}
++
++// HHTECH set power hold enable
++static void set_pwr_key(int sw)
++{
++ if (sw)
++ gpio_set_value(GPIO_PWR_HOLD, 1);
++ else
++ gpio_set_value(GPIO_PWR_HOLD, 0);
++}
++
++// HHTECH set speaker
++static void set_speaker_en(int sw)
++{
++ if (sw)
++ gpio_set_value(GPIO_SPEAKER_EN, 1); //open
++ else
++ gpio_set_value(GPIO_SPEAKER_EN, 0); //close
++}
++
++// HHTECH set wifi
++static void set_wifi_en(int sw)
++{
++ if (sw) {
++ gpio_set_value(GPIO_WIFI_EN, 1); //open
++ gpio_direction_output(GPIO_WIFI_RESET, 0);
++ mdelay(100);
++ gpio_set_value(GPIO_WIFI_RESET, 1);
++ //Release reset
++ gpio_direction_input(GPIO_WIFI_RESET);
++ } else
++ gpio_set_value(GPIO_WIFI_EN, 0); //close
++}
++
++// HHTECH set led1 and led2
++static void set_led1_en(int sw)
++{
++ if (sw)
++ gpio_set_value(GPIO_LED1_EN, 0); //turn on
++ else
++ gpio_set_value(GPIO_LED1_EN, 1); //turn off
++}
++
++static void set_led2_en(int sw)
++{
++ if (sw)
++ gpio_set_value(GPIO_LED2_EN, 0);
++ else
++ gpio_set_value(GPIO_LED2_EN, 1);
++}
++
++/*@@@@@@@@@@@@@@@@@@@@@@@ sysfs interface @@@@@@@@@@@*/
++
++#ifdef CONFIG_SYSFS
++static ssize_t hhtech_sysfs_show_dc(struct device *dev,
++ struct device_attribute *attr, char *buf)
++{
++#if defined (CONFIG_LCD_4)
++ strcpy(buf, gpio_get_value(GPIO_DC_DETE) ? "on" : "off");
++#else
++ strcpy(buf, gpio_get_value(GPIO_DC_DETE) ? "off" : "on");
++#endif
++ strcat(buf, "\n");
++ return strlen(buf);
++}
++
++static ssize_t hhtech_sysfs_show_sd(struct device *dev,
++ struct device_attribute *attr, char *buf)
++{
++ strcpy(buf, gpio_get_value(GPIO_SD_WP) ? "off" : "on");
++ strcat(buf, "\n");
++ return strlen(buf);
++}
++
++static ssize_t hhtech_sysfs_show_system_flag(struct device *dev,
++ struct device_attribute *attr, char *buf)
++{
++ strcpy(buf, system_flag ? "1" : "0");
++ strcat(buf, "\n");
++ return strlen(buf);
++}
++
++static ssize_t hhtech_sysfs_show_headp(struct device *dev,
++ struct device_attribute *attr, char *buf)
++{
++ strcpy(buf, gpio_get_value(GPIO_HEADPHONE_S) ? "on" : "off");
++ strcat(buf, "\n");
++ return strlen(buf);
++}
++
++static ssize_t hhtech_sysfs_show_blight_s(struct device *dev,
++ struct device_attribute *attr, char *buf)
++{
++ strcpy(buf, gpio_get_value(GPIO_LCD_BLIGHT_S) ? "on" : "off");
++ strcat(buf, "\n");
++ return strlen(buf);
++}
++
++extern unsigned int s3c_adc_value(unsigned int s3c_adc_port);
++static int read_battery(void)
++{
++ int battery_life = 0, reference_value = 0;
++ static int old_battery_life = 0, old_reference_value = 0;
++
++ //ref voltage:2.4V,battery max :4.2V
++ if ((battery_life = s3c_adc_value(0)) == 0) {
++ if (old_battery_life == 0) {
++ while (!(battery_life = s3c_adc_value(0)));
++ old_battery_life = battery_life;
++ } else
++ battery_life = old_battery_life;
++ }
++ if ((reference_value = s3c_adc_value(1)) == 0) {
++ if (old_reference_value == 0) {
++ while (!(reference_value = s3c_adc_value(1)));
++ old_reference_value = reference_value;
++ } else
++ reference_value = old_reference_value;
++ }
++ battery_life = (battery_life * 24000) / (reference_value * 42);
++
++ return battery_life;
++}
++
++static int get_battery_life(void)
++{
++ int i;
++ int count = 0;
++ int battery_life = 1000;//Default max power
++ int battery_life_sum = 0;
++ for (i = 0; i < 10; i++) {
++ int tmp = read_battery();
++ if (tmp < 700 || tmp > 1000)
++ continue;
++ battery_life_sum += tmp;
++ count++;
++ }
++ if (count)
++ battery_life = battery_life_sum / count;
++ return battery_life;
++}
++
++extern void battery_update_work(struct work_struct* work)
++{
++ int dc_status;
++
++#if defined (CONFIG_LCD_4)
++ dc_status = gpio_get_value(GPIO_DC_DETE) ? 1 : 0;
++#else
++ dc_status = gpio_get_value(GPIO_DC_DETE) ? 0 : 1;
++#endif
++
++ current_battery = get_battery_life();
++ if (current_battery < 785 && dc_status == 0)
++ set_sys_power(0);
++ schedule_delayed_work(&battery_work, 30 * HZ);
++}
++
++static ssize_t hhtech_sysfs_show_battery(struct device *dev,
++ struct device_attribute *attr, char *buf)
++{
++ char s[20];
++
++ // printk("ADC voltage value=%u,conference voltage =%u \n",s3c_adc_value(0),s3c_adc_value(1));//HHTECH wk
++ sprintf(s,"%d", current_battery);
++ strcpy(buf, s);
++ strcat(buf, "\n");
++ return strlen(buf);
++}
++
++static ssize_t hhtech_sysfs_show_usbhost(struct device *dev,
++ struct device_attribute *attr, char *buf)
++{
++ strcpy(buf, gpio_get_value(GPIO_USB_HOST_STATUS) ? "on" : "off");
++ strcat(buf, "\n");
++ return strlen(buf);
++}
++
++static ssize_t hhtech_sysfs_show_usbotg(struct device *dev,
++ struct device_attribute *attr, char *buf)
++{
++ strcpy(buf, gpio_get_value(GPIO_USB_OTG_STATUS) ? "on" : "off");
++ strcat(buf, "\n");
++ return strlen(buf);
++}
++
++static ssize_t hhtech_sysfs_charge_s(struct device *dev,
++ struct device_attribute *attr, char *buf)
++{
++ int s=(gpio_get_value(GPIO_CHARG_S1)<<1) + gpio_get_value(GPIO_CHARG_S2);
++ switch (s) {
++ case 0:
++ strcpy(buf,"0");
++ break;
++ case 1:
++ strcpy(buf,"1");
++ break;
++ case 2:
++ strcpy(buf,"2");
++ break;
++ case 3:
++ strcpy(buf,"3");
++ break;
++ }
++ strcat(buf, "\n");
++ return strlen(buf);
++}
++
++static int hhtech_sysfs_show_power(struct device *dev, struct device_attribute *attr, char *buf)
++{
++ return snprintf(buf, PAGE_SIZE, "%d\n", gpio_get_value(GPIO_PWR_EN));
++}
++
++static ssize_t hhtech_sysfs_store_power(struct device *dev,
++ struct device_attribute *attr, const char *buf, size_t len)
++{
++// int val = simple_strtoul(buf, NULL, 0);
++ if (len < 1)
++ return -EINVAL;
++
++ if (strnicmp(buf, "on", 2) == 0 || strnicmp(buf, "1", 1) == 0)
++ set_sys_power(1); //poweron
++ else if (strnicmp(buf, "off", 3) == 0 || strnicmp(buf, "0", 1) == 0)
++ set_sys_power(0); //poweroff
++ else
++ return -EINVAL;
++ return len;
++}
++
++static int hhtech_sysfs_show_charge(struct device *dev, struct device_attribute *attr, char *buf)
++{
++ return snprintf(buf, PAGE_SIZE, "%d\n", gpio_get_value(GPIO_CHARGER_EN));
++}
++
++static ssize_t hhtech_sysfs_store_charge(struct device *dev,
++ struct device_attribute *attr, const char *buf, size_t len)
++{
++ if (len < 1)
++ return -EINVAL;
++
++ if (strnicmp(buf, "on", 2) == 0 || strnicmp(buf, "1", 1) == 0)
++ set_charge_mode(1); //860ma
++ else if (strnicmp(buf, "off", 3) == 0 || strnicmp(buf, "0", 1) == 0)
++ set_charge_mode(0); //200ma
++ else
++ return -EINVAL;
++ return len;
++}
++
++static int hhtech_sysfs_show_blight(struct device *dev, struct device_attribute *attr, char *buf)
++{
++ return snprintf(buf, PAGE_SIZE, "%d\n", gpio_get_value(GPIO_LCD_BLIGHT_EN));
++}
++
++static ssize_t hhtech_sysfs_store_blight(struct device *dev,
++ struct device_attribute *attr, const char *buf, size_t len)
++{
++ if (len < 1)
++ return -EINVAL;
++
++ if (strnicmp(buf, "on", 2) == 0 || strnicmp(buf, "1", 1) == 0)
++ set_backlight_en(1); // enable MP1530
++ else if (strnicmp(buf, "off", 3) == 0 || strnicmp(buf, "0", 1) == 0)
++ set_backlight_en(0); //disable
++ else
++ return -EINVAL;
++ return len;
++}
++
++static int hhtech_sysfs_show_amp(struct device *dev, struct device_attribute *attr, char *buf)
++{
++ return snprintf(buf, PAGE_SIZE, "%d\n", gpio_get_value(GPIO_VIDEOAMP_EN));
++}
++
++static ssize_t hhtech_sysfs_store_amp(struct device *dev,
++ struct device_attribute *attr, const char *buf, size_t len)
++{
++ if (len < 1)
++ return -EINVAL;
++
++ if (strnicmp(buf, "on", 2) == 0 || strnicmp(buf, "1", 1) == 0)
++ set_video_amp(1); // open Vidoe amplifier output
++ else if (strnicmp(buf, "off", 3) == 0 || strnicmp(buf, "0", 1) == 0)
++ set_video_amp(0); // close
++ else
++ return -EINVAL;
++ return len;
++}
++
++static int hhtech_sysfs_show_usbpwr(struct device *dev, struct device_attribute *attr, char *buf)
++{
++ return snprintf(buf, PAGE_SIZE, "%d\n", gpio_get_value(GPIO_USB_EN));
++}
++
++static ssize_t hhtech_sysfs_store_usbpwr(struct device *dev,
++ struct device_attribute *attr, const char *buf, size_t len)
++{
++ if (len < 1)
++ return -EINVAL;
++
++ if (strnicmp(buf, "on", 2) == 0 || strnicmp(buf, "1", 1) == 0)
++ set_usb_syspwr_en(1); // USB system power enable
++ else if (strnicmp(buf, "off", 3) == 0 || strnicmp(buf, "0", 1) == 0)
++ set_usb_syspwr_en(0); // disable
++ else
++ return -EINVAL;
++ return len;
++}
++
++static int hhtech_sysfs_show_usbhostpwr(struct device *dev, struct device_attribute *attr, char *buf)
++{
++ return snprintf(buf, PAGE_SIZE, "%d\n", gpio_get_value(GPIO_USB_HOSTPWR_EN));
++}
++
++static ssize_t hhtech_sysfs_store_usbhostpwr(struct device *dev,
++ struct device_attribute *attr, const char *buf, size_t len)
++{
++ if (len < 1)
++ return -EINVAL;
++
++ if (strnicmp(buf, "on", 2) == 0 || strnicmp(buf, "1", 1) == 0)
++ set_usb_hostpwr_en(1); // USB system power enable
++ else if (strnicmp(buf, "off", 3) == 0 || strnicmp(buf, "0", 1) == 0)
++ set_usb_hostpwr_en(0); // disable
++ else
++ return -EINVAL;
++ return len;
++}
++
++static int hhtech_sysfs_show_usbotgdrv(struct device *dev, struct device_attribute *attr, char *buf)
++{
++ return snprintf(buf, PAGE_SIZE, "%d\n", gpio_get_value(GPIO_USB_OTGDRV_EN));
++}
++
++static ssize_t hhtech_sysfs_store_usbotgdrv(struct device *dev,
++ struct device_attribute *attr, const char *buf, size_t len)
++{
++ if (len < 1)
++ return -EINVAL;
++
++ if (strnicmp(buf, "on", 2) == 0 || strnicmp(buf, "1", 1) == 0)
++ set_usb_otgdrv_en(1);
++ else if (strnicmp(buf, "off", 3) == 0 || strnicmp(buf, "0", 1) == 0)
++ set_usb_otgdrv_en(0);
++ else
++ return -EINVAL;
++ return len;
++}
++
++static int hhtech_sysfs_show_speaker(struct device *dev, struct device_attribute *attr, char *buf)
++{
++ return snprintf(buf, PAGE_SIZE, "%d\n", gpio_get_value(GPIO_SPEAKER_EN));
++}
++
++static ssize_t hhtech_sysfs_store_speaker(struct device *dev,
++ struct device_attribute *attr, const char *buf, size_t len)
++{
++ if (len < 1)
++ return -EINVAL;
++
++ if (strnicmp(buf, "on", 2) == 0 || strnicmp(buf, "1", 1) == 0) {
++ if (!gpio_get_value(GPIO_HEADPHONE_S))
++ set_speaker_en(1); // speaker enable
++ user_disable_speaker = 0;
++ } else if (strnicmp(buf, "off", 3) == 0 || strnicmp(buf, "0", 1) == 0) {
++ set_speaker_en(0); // disable
++ user_disable_speaker = 1;
++ } else
++ return -EINVAL;
++ return len;
++}
++
++static int hhtech_sysfs_show_wifi(struct device *dev, struct device_attribute *attr, char *buf)
++{
++ return snprintf(buf, PAGE_SIZE, "%d\n", gpio_get_value(GPIO_WIFI_EN));
++}
++
++static ssize_t hhtech_sysfs_store_wifi(struct device *dev,
++ struct device_attribute *attr, const char *buf, size_t len)
++{
++ if (len < 1)
++ return -EINVAL;
++
++ if (strnicmp(buf, "on", 2) == 0 || strnicmp(buf, "1", 1) == 0)
++ set_wifi_en(1); // wifi enable
++ else if (strnicmp(buf, "off", 3) == 0 || strnicmp(buf, "0", 1) == 0)
++ set_wifi_en(0); // disable
++ else
++ return -EINVAL;
++ return len;
++}
++
++static int hhtech_sysfs_show_led1(struct device *dev, struct device_attribute *attr, char *buf)
++{
++ return snprintf(buf, PAGE_SIZE, "%d\n", gpio_get_value(GPIO_LED1_EN));
++}
++
++static ssize_t hhtech_sysfs_store_led1(struct device *dev,
++ struct device_attribute *attr, const char *buf, size_t len)
++{
++ if (len < 1)
++ return -EINVAL;
++
++ if (strnicmp(buf, "on", 2) == 0 || strnicmp(buf, "1", 1) == 0)
++ set_led1_en(1);
++ else if (strnicmp(buf, "off", 3) == 0 || strnicmp(buf, "0", 1) == 0)
++ set_led1_en(0);
++ else
++ return -EINVAL;
++ return len;
++}
++
++static int hhtech_sysfs_show_led2(struct device *dev, struct device_attribute *attr, char *buf)
++{
++ return snprintf(buf, PAGE_SIZE, "%d\n", gpio_get_value(GPIO_LED2_EN));
++}
++
++static ssize_t hhtech_sysfs_store_led2(struct device *dev,
++ struct device_attribute *attr, const char *buf, size_t len)
++{
++ if (len < 1)
++ return -EINVAL;
++
++ if (strnicmp(buf, "on", 2) == 0 || strnicmp(buf, "1", 1) == 0)
++ set_led2_en(1);
++ else if (strnicmp(buf, "off", 3) == 0 || strnicmp(buf, "0", 1) == 0)
++ set_led2_en(0);
++ else
++ return -EINVAL;
++ return len;
++}
++
++static int hhtech_sysfs_show_rtc_wk_time(struct device *dev, struct device_attribute *attr, char *buf)
++{
++ return snprintf(buf, PAGE_SIZE, "%d\n", rtc_wakeup_time);
++}
++
++static ssize_t hhtech_sysfs_store_rtc_wk_time(struct device *dev,
++ struct device_attribute *attr, const char *buf, size_t len)
++{
++ unsigned long value = simple_strtoul(buf, NULL, 10);
++
++ if (len < 1)
++ return -EINVAL;
++
++ if (value < 0 || value > 2 * 60 * 60)
++ return -ERANGE;
++ else
++ rtc_wakeup_time = value;
++ return len;
++}
++
++static int hhtech_sysfs_show_wk_status(struct device *dev, struct device_attribute *attr, char *buf)
++{
++ return snprintf(buf, PAGE_SIZE, "%d\n", wakeup_status);
++}
++
++ #if defined (CONFIG_LCD_7)
++/* USB host protect status change Interrupt handle */
++static irqreturn_t usbhost_status_irq(int irq, void *dev_id)
++{
++ int pin_level = gpio_get_value(GPIO_USB_HOST_STATUS);
++ __raw_writel(__raw_readl(S3C_EINTMASK)&(~(0x1 << 18)), S3C_EINTMASK); // mask the irq
++ printk(KERN_DEBUG "Usb host status: %d\n", pin_level);
++ if (0 == pin_level) {
++ gpio_direction_output(GPIO_USB_OTGDRV_EN, 0);
++ gpio_direction_output(GPIO_USB_EN, 0);
++ __raw_writel((__raw_readl(S3C_EINTCON1) & ~(0xf << 4)) |
++ (S3C_EXTINT_FALLEDGE << 4), S3C_EINTCON1); // enable the irq again
++ }
++
++ return IRQ_HANDLED;
++}
++ #endif
++
++/* USB otg protect status change Interrupt handle */
++static irqreturn_t usbotg_status_irq(int irq, void *dev_id)
++{
++ int pin_level = gpio_get_value(GPIO_USB_OTG_STATUS);
++ __raw_writel(__raw_readl(S3C_EINTMASK)&(~(0x1 << 19)), S3C_EINTMASK); // mask the irq
++ printk(KERN_DEBUG "Usb otg status: %d\n", pin_level);
++ if (0 == pin_level) {
++ gpio_direction_output(GPIO_USB_HOSTPWR_EN, 0);
++ gpio_direction_output(GPIO_USB_EN, 0);
++ __raw_writel((__raw_readl(S3C_EINTCON1) & ~(0xf << 4)) |
++ (S3C_EXTINT_FALLEDGE << 4), S3C_EINTCON1); // enable the irq again
++ }
++
++ return IRQ_HANDLED;
++}
++
++extern void headp_update_volume(struct work_struct* work);
++
++/* headphone plug in and out Interrupt handle */
++static irqreturn_t headp_irq(int irq, void *dev_id)
++{
++ int pin_level = gpio_get_value(GPIO_HEADPHONE_S);
++ __raw_writel(__raw_readl(S3C_EINTMASK)&(~(0x1 << 20)), S3C_EINTMASK);
++ if (user_disable_speaker == 0) {
++ if (pin_level)
++ gpio_set_value(GPIO_SPEAKER_EN, 0);
++ else
++ gpio_set_value(GPIO_SPEAKER_EN, 1);
++ }
++ cancel_delayed_work(&headp_detect_work);
++ schedule_delayed_work(&headp_detect_work, msecs_to_jiffies(80));
++ return IRQ_HANDLED;
++}
++
++static DEVICE_ATTR(system_flag, 0444, hhtech_sysfs_show_system_flag, NULL);
++static DEVICE_ATTR(headphone_s, 0444, hhtech_sysfs_show_headp, NULL);
++static DEVICE_ATTR(dc_s, 0444, hhtech_sysfs_show_dc, NULL);
++static DEVICE_ATTR(sd_s, 0444, hhtech_sysfs_show_sd, NULL);
++static DEVICE_ATTR(charge_s, 0444,hhtech_sysfs_charge_s , NULL);
++static DEVICE_ATTR(backlight_s, 0444, hhtech_sysfs_show_blight_s, NULL);
++static DEVICE_ATTR(usbhost_s, 0444, hhtech_sysfs_show_usbhost, NULL);
++static DEVICE_ATTR(usbotg_s, 0444, hhtech_sysfs_show_usbotg, NULL);
++static DEVICE_ATTR(battery_s, 0444, hhtech_sysfs_show_battery, NULL);
++static DEVICE_ATTR(pwr_en, 0666, hhtech_sysfs_show_power, hhtech_sysfs_store_power);
++static DEVICE_ATTR(charge_en, 0666, hhtech_sysfs_show_charge, hhtech_sysfs_store_charge);
++static DEVICE_ATTR(backlight_en, 0666,hhtech_sysfs_show_blight, hhtech_sysfs_store_blight);
++static DEVICE_ATTR(amp_en, 0666,hhtech_sysfs_show_amp, hhtech_sysfs_store_amp);
++static DEVICE_ATTR(usbpwr_en, 0666, hhtech_sysfs_show_usbpwr, hhtech_sysfs_store_usbpwr);
++static DEVICE_ATTR(usbhostpwr_en, 0666, hhtech_sysfs_show_usbhostpwr, hhtech_sysfs_store_usbhostpwr);
++static DEVICE_ATTR(usbotgdrv_en, 0666, hhtech_sysfs_show_usbotgdrv, hhtech_sysfs_store_usbotgdrv);
++static DEVICE_ATTR(speaker_en, 0666, hhtech_sysfs_show_speaker, hhtech_sysfs_store_speaker);
++static DEVICE_ATTR(wifi_en, 0666, hhtech_sysfs_show_wifi, hhtech_sysfs_store_wifi);
++static DEVICE_ATTR(led1_en, 0666, hhtech_sysfs_show_led1, hhtech_sysfs_store_led1);
++static DEVICE_ATTR(led2_en, 0666, hhtech_sysfs_show_led2, hhtech_sysfs_store_led2);
++static DEVICE_ATTR(rtc_wk_time, 0666, hhtech_sysfs_show_rtc_wk_time, hhtech_sysfs_store_rtc_wk_time);
++static DEVICE_ATTR(wk_status, 0666, hhtech_sysfs_show_wk_status, NULL);
++
++static struct attribute *attrs[] = {
++ &dev_attr_system_flag.attr,
++ &dev_attr_headphone_s.attr,
++ &dev_attr_dc_s.attr,
++ &dev_attr_sd_s.attr,
++ &dev_attr_charge_s.attr,
++ &dev_attr_backlight_s.attr,
++ &dev_attr_usbhost_s.attr,
++ &dev_attr_usbotg_s.attr,
++ &dev_attr_battery_s.attr,
++ &dev_attr_pwr_en.attr,
++ &dev_attr_charge_en.attr,
++ &dev_attr_backlight_en.attr,
++ &dev_attr_amp_en.attr,
++ &dev_attr_usbpwr_en.attr,
++ &dev_attr_usbhostpwr_en.attr,
++ &dev_attr_usbotgdrv_en.attr,
++ &dev_attr_speaker_en.attr,
++ &dev_attr_wifi_en.attr,
++ &dev_attr_led1_en.attr,
++ &dev_attr_led2_en.attr,
++ &dev_attr_rtc_wk_time.attr,
++ &dev_attr_wk_status.attr,
++ NULL,
++};
++
++static struct attribute_group attr_group = {
++ .attrs = attrs,
++};
++
++static int hhtech_gpio_sysfs_register(struct device* dev)
++{
++ return sysfs_create_group(&dev->kobj, &attr_group);
++}
++#else
++static int hhtech_gpio_sysfs_register(struct device* dev)
++{
++ return 0;
++}
++#endif
++
++static int hhtech_gpio_probe(struct platform_device *pdev)
++{
++ int retval;
++
++ retval = hhtech_gpio_sysfs_register(&pdev->dev);
++ if (retval < 0) {
++ printk(KERN_ERR "Create sys fs fail\n");
++ return -1;
++ }
++ gpio_direction_input(GPIO_SD_WP); //S3C_GPK0
++#if defined (CONFIG_LCD_7)
++ gpio_direction_input(GPIO_USB_HOST_STATUS); //S3C_GPL10
++ gpio_set_pin(GPIO_USB_HOST_STATUS, S3C_GPL10_EXTINT18);
++#endif
++ gpio_direction_input(GPIO_USB_OTG_STATUS); //S3C_GPL11
++ gpio_set_pin(GPIO_USB_OTG_STATUS, S3C_GPL11_EXTINT19);
++ gpio_direction_input(GPIO_HEADPHONE_S); //S3C_GPL12
++ gpio_set_pin(GPIO_HEADPHONE_S, S3C_GPL12_EXTINT20);
++
++ gpio_direction_input(GPIO_LCD_BLIGHT_S); //S3C_GPM4
++ gpio_direction_input(GPIO_DC_DETE); //S3C_GPL13
++ gpio_direction_input(GPIO_CHARG_S1); //S3C_GPK4
++ gpio_direction_input(GPIO_CHARG_S2); //S3C_GPK5
++ gpio_direction_input(GPIO_PWR_HOLD); //S3C_GPL14
++#if defined (CONFIG_LCD_4)
++ gpio_direction_output(GPIO_USB_EN, 0); //S3C_GPL0 : close
++ gpio_direction_output(GPIO_USB_HOSTPWR_EN, 0); //S3C_GPL1 : close
++#else
++ gpio_direction_output(GPIO_USB_EN, 1); //S3C_GPL0 : open
++ gpio_direction_output(GPIO_USB_HOSTPWR_EN, 1); //S3C_GPL1 : open
++#endif
++ //gpio_direction_output(GPIO_LCD_BLIGHT_EN, 1); //S3C_GPM3 : open
++ gpio_direction_output(GPIO_CHARGER_EN, 0); //S3C_GPK6 : 200ma
++ gpio_direction_output(GPIO_PWR_EN, 0); //S3C_GPK15 : open normal it's low
++ gpio_direction_output(GPIO_VIDEOAMP_EN, 0); //S3C_GPK13 : close
++ gpio_direction_output(GPIO_SPEAKER_EN, 0); //S3C_GPK12 : close
++ gpio_direction_output(GPIO_WIFI_EN, 1); //S3C_GPK1 : open
++ gpio_direction_output(GPIO_WIFI_RESET, 0); //S3C_GPK2 : open
++ mdelay(100);
++ gpio_set_value(GPIO_WIFI_RESET, 1);
++ gpio_direction_input(GPIO_WIFI_RESET);
++ gpio_direction_output(GPIO_USB_OTGDRV_EN, 0); //S3C_GPL8 : close
++ gpio_direction_output(GPIO_LED1_EN, 0); //S3C_GPN8 : turn on
++ if (NULL == strstr(saved_command_line, "rdinit"))
++ gpio_direction_output(GPIO_LED2_EN, 1); //S3C_GPN9 : turn off
++ else
++ gpio_direction_output(GPIO_LED2_EN, 0); //S3C_GPN9 : turn on
++ udelay(10);
++
++ //retval = request_irq(gpio_to_irq(GPIO_HEADPHONE_S), headp_irq,
++ retval = request_irq(gpio_to_irq(GPIO_HEADPHONE_S), headp_irq,
++ IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, "Headphone detect", NULL);
++ if (retval) {
++ printk(KERN_ERR "Request headphone detect fail\n");
++ goto error1;
++ }
++
++ retval = request_irq(gpio_to_irq(GPIO_USB_OTG_STATUS), usbotg_status_irq,
++ IRQF_TRIGGER_FALLING, "Usb otg status detect", NULL);
++ if (retval) {
++ printk(KERN_ERR "Request usb otg status detect fail\n");
++ goto error2;
++ }
++
++#if defined (CONFIG_LCD_7)
++ /*retval = request_irq(gpio_to_irq(GPIO_USB_HOST_STATUS), usbhost_status_irq,
++ IRQF_TRIGGER_FALLING, "Usb host status detect", NULL);
++ if (retval) {
++ printk(KERN_ERR "Request usb host status detect fail\n");
++ goto error3;
++ }*/
++#endif
++ INIT_DELAYED_WORK(&headp_detect_work, headp_update_volume);
++ INIT_DELAYED_WORK(&battery_work, battery_update_work);
++ battery_update_work(NULL);
++
++ return 0;
++
++ error3:
++ free_irq(gpio_to_irq(GPIO_USB_HOST_STATUS), NULL);
++ error2:
++ free_irq(gpio_to_irq(GPIO_HEADPHONE_S), NULL);
++ error1:
++ return retval;
++}
++
++static int hhtech_gpio_remove(struct platform_device *dev)
++{
++ free_irq(gpio_to_irq(GPIO_HEADPHONE_S), NULL);
++#if defined (CONFIG_LCD_7)
++ free_irq(gpio_to_irq(GPIO_USB_HOST_STATUS), NULL);
++#endif
++ free_irq(gpio_to_irq(GPIO_USB_OTG_STATUS), NULL);
++
++ return 0;
++}
++
++#ifdef CONFIG_PM
++static struct sleep_save_phy save_gpio[] = {
++ SAVE_ITEM(GPIO_USB_HOSTPWR_EN),
++ SAVE_ITEM(GPIO_USB_OTGDRV_EN),
++ SAVE_ITEM(GPIO_USB_EN),
++};
++
++static void gpio_do_save(struct sleep_save_phy *ptr, int count)
++{
++ for (; count > 0; count--, ptr++)
++ ptr->val = gpio_get_value(ptr->reg);
++}
++
++static void gpio_do_load(struct sleep_save_phy *ptr, int count)
++{
++ for (; count > 0; count--, ptr++)
++ gpio_set_value(ptr->reg, ptr->val);
++}
++
++static int hhtech_gpio_suspend(struct platform_device *dev, pm_message_t state)
++{
++ /* Becareful: MMC must be suspended after this driver */
++ set_wifi_en(0);
++ /* Close USB Power */
++ gpio_do_save(save_gpio, ARRAY_SIZE(save_gpio));
++ set_usb_hostpwr_en(0);
++ set_usb_otgdrv_en(0);
++ set_usb_syspwr_en(0);
++ return 0;
++}
++extern void __iomem *s3c_rtc_base;
++
++static int hhtech_gpio_resume(struct platform_device *dev)
++{
++ int dc_status;
++
++#if defined (CONFIG_LCD_4)
++ dc_status = gpio_get_value(GPIO_DC_DETE) ? 1 : 0;
++#else
++ dc_status = gpio_get_value(GPIO_DC_DETE) ? 0 : 1;
++#endif
++ wakeup_status = 0;
++
++ if (0 == dc_status) {
++ if (get_battery_life() < 833) // battery volume < 3.5 V
++ set_sys_power(0);
++ if (readb(s3c_rtc_base + S3C_INTP) & S3C_INTP_ALM)
++ wakeup_status = 1;
++ }
++
++ gpio_do_load(save_gpio, ARRAY_SIZE(save_gpio));
++ set_wifi_en(1);
++ return 0;
++}
++#else
++#define hhtech_gpio_suspend NULL
++#define hhtech_gpio_resume NULL
++#endif
++
++
++static struct platform_driver hhtech_gpio = {
++ .probe = hhtech_gpio_probe,
++ .remove = hhtech_gpio_remove,
++ .suspend = hhtech_gpio_suspend,
++ .resume = hhtech_gpio_resume,
++ .driver = {
++ .name = "hhtech_gpio",
++ .owner = THIS_MODULE,
++ },
++};
++
++static int __init hhtech_gpio_init(void)
++{
++ user_disable_speaker = 0;
++ return platform_driver_register(&hhtech_gpio);
++}
++
++static void __exit hhtech_gpio_exit(void)
++{
++ platform_driver_unregister(&hhtech_gpio);
++}
++
++module_init(hhtech_gpio_init);
++module_exit(hhtech_gpio_exit);
++
++//EXPORT_SYMBOL(set_sys_power);
++
++MODULE_AUTHOR("Wangkang");
++MODULE_DESCRIPTION("S3C64xx GPIO driver");
++MODULE_LICENSE("GPL");
+diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c
+index 6a9ca4b..8e224fe 100644
+--- a/drivers/input/keyboard/gpio_keys.c
++++ b/drivers/input/keyboard/gpio_keys.c
+@@ -9,7 +9,6 @@
+ */
+
+ #include <linux/module.h>
+-#include <linux/version.h>
+
+ #include <linux/init.h>
+ #include <linux/fs.h>
+@@ -26,25 +25,47 @@
+
+ #include <asm/gpio.h>
+
+-static irqreturn_t gpio_keys_isr(int irq, void *dev_id)
++struct gpio_button_data {
++ struct gpio_keys_button *button;
++ struct input_dev *input;
++ struct timer_list timer;
++};
++
++struct gpio_keys_drvdata {
++ struct input_dev *input;
++ struct gpio_button_data data[0];
++};
++
++static void gpio_keys_report_event(struct gpio_button_data *bdata)
+ {
+- int i;
+- struct platform_device *pdev = dev_id;
+- struct gpio_keys_platform_data *pdata = pdev->dev.platform_data;
+- struct input_dev *input = platform_get_drvdata(pdev);
++ struct gpio_keys_button *button = bdata->button;
++ struct input_dev *input = bdata->input;
++ unsigned int type = button->type ?: EV_KEY;
++ int state = (gpio_get_value(button->gpio) ? 1 : 0) ^ button->active_low;
+
+- for (i = 0; i < pdata->nbuttons; i++) {
+- struct gpio_keys_button *button = &pdata->buttons[i];
+- int gpio = button->gpio;
++ input_event(input, type, button->code, !!state);
++ input_sync(input);
++}
+
+- if (irq == gpio_to_irq(gpio)) {
+- unsigned int type = button->type ?: EV_KEY;
+- int state = (gpio_get_value(gpio) ? 1 : 0) ^ button->active_low;
++static void gpio_check_button(unsigned long _data)
++{
++ struct gpio_button_data *data = (struct gpio_button_data *)_data;
+
+- input_event(input, type, button->code, !!state);
+- input_sync(input);
+- }
+- }
++ gpio_keys_report_event(data);
++}
++
++static irqreturn_t gpio_keys_isr(int irq, void *dev_id)
++{
++ struct gpio_button_data *bdata = dev_id;
++ struct gpio_keys_button *button = bdata->button;
++
++ BUG_ON(irq != gpio_to_irq(button->gpio));
++
++ if (button->debounce_interval)
++ mod_timer(&bdata->timer,
++ jiffies + msecs_to_jiffies(button->debounce_interval));
++ else
++ gpio_keys_report_event(bdata);
+
+ return IRQ_HANDLED;
+ }
+@@ -52,17 +73,20 @@ static irqreturn_t gpio_keys_isr(int irq, void *dev_id)
+ static int __devinit gpio_keys_probe(struct platform_device *pdev)
+ {
+ struct gpio_keys_platform_data *pdata = pdev->dev.platform_data;
++ struct gpio_keys_drvdata *ddata;
+ struct input_dev *input;
+ int i, error;
+- int wakeup = 0;
+
++ ddata = kzalloc(sizeof(struct gpio_keys_drvdata) +
++ pdata->nbuttons * sizeof(struct gpio_button_data),
++ GFP_KERNEL);
+ input = input_allocate_device();
+- if (!input)
+- return -ENOMEM;
+-
+- platform_set_drvdata(pdev, input);
++ if (!ddata || !input) {
++ error = -ENOMEM;
++ goto fail1;
++ }
+
+- input->evbit[0] = BIT_MASK(EV_KEY);
++ platform_set_drvdata(pdev, ddata);
+
+ input->name = pdev->name;
+ input->phys = "gpio-keys/input0";
+@@ -73,16 +97,28 @@ static int __devinit gpio_keys_probe(struct platform_device *pdev)
+ input->id.product = 0x0001;
+ input->id.version = 0x0100;
+
++ /* Enable auto repeat feature of Linux input subsystem */
++ if (pdata->rep)
++ __set_bit(EV_REP, input->evbit);
++
++ ddata->input = input;
++
+ for (i = 0; i < pdata->nbuttons; i++) {
+ struct gpio_keys_button *button = &pdata->buttons[i];
++ struct gpio_button_data *bdata = &ddata->data[i];
+ int irq;
+ unsigned int type = button->type ?: EV_KEY;
+
++ bdata->input = input;
++ bdata->button = button;
++ setup_timer(&bdata->timer,
++ gpio_check_button, (unsigned long)bdata);
++
+ error = gpio_request(button->gpio, button->desc ?: "gpio_keys");
+ if (error < 0) {
+ pr_err("gpio-keys: failed to request GPIO %d,"
+ " error %d\n", button->gpio, error);
+- goto fail;
++ goto fail2;
+ }
+
+ error = gpio_direction_input(button->gpio);
+@@ -91,7 +127,7 @@ static int __devinit gpio_keys_probe(struct platform_device *pdev)
+ " direction for GPIO %d, error %d\n",
+ button->gpio, error);
+ gpio_free(button->gpio);
+- goto fail;
++ goto fail2;
+ }
+
+ irq = gpio_to_irq(button->gpio);
+@@ -101,24 +137,21 @@ static int __devinit gpio_keys_probe(struct platform_device *pdev)
+ " for GPIO %d, error %d\n",
+ button->gpio, error);
+ gpio_free(button->gpio);
+- goto fail;
++ goto fail2;
+ }
+
+ error = request_irq(irq, gpio_keys_isr,
+ IRQF_SAMPLE_RANDOM | IRQF_TRIGGER_RISING |
+ IRQF_TRIGGER_FALLING,
+ button->desc ? button->desc : "gpio_keys",
+- pdev);
++ bdata);
+ if (error) {
+ pr_err("gpio-keys: Unable to claim irq %d; error %d\n",
+ irq, error);
+ gpio_free(button->gpio);
+- goto fail;
++ goto fail2;
+ }
+
+- if (button->wakeup)
+- wakeup = 1;
+-
+ input_set_capability(input, type, button->code);
+ }
+
+@@ -126,21 +159,23 @@ static int __devinit gpio_keys_probe(struct platform_device *pdev)
+ if (error) {
+ pr_err("gpio-keys: Unable to register input device, "
+ "error: %d\n", error);
+- goto fail;
++ goto fail2;
+ }
+
+- device_init_wakeup(&pdev->dev, wakeup);
+-
+ return 0;
+
+- fail:
++ fail2:
+ while (--i >= 0) {
+- free_irq(gpio_to_irq(pdata->buttons[i].gpio), pdev);
++ free_irq(gpio_to_irq(pdata->buttons[i].gpio), &ddata->data[i]);
++ if (pdata->buttons[i].debounce_interval)
++ del_timer_sync(&ddata->data[i].timer);
+ gpio_free(pdata->buttons[i].gpio);
+ }
+
+ platform_set_drvdata(pdev, NULL);
++ fail1:
+ input_free_device(input);
++ kfree(ddata);
+
+ return error;
+ }
+@@ -148,14 +183,15 @@ static int __devinit gpio_keys_probe(struct platform_device *pdev)
+ static int __devexit gpio_keys_remove(struct platform_device *pdev)
+ {
+ struct gpio_keys_platform_data *pdata = pdev->dev.platform_data;
+- struct input_dev *input = platform_get_drvdata(pdev);
++ struct gpio_keys_drvdata *ddata = platform_get_drvdata(pdev);
++ struct input_dev *input = ddata->input;
+ int i;
+
+- device_init_wakeup(&pdev->dev, 0);
+-
+ for (i = 0; i < pdata->nbuttons; i++) {
+ int irq = gpio_to_irq(pdata->buttons[i].gpio);
+- free_irq(irq, pdev);
++ free_irq(irq, &ddata->data[i]);
++ if (pdata->buttons[i].debounce_interval)
++ del_timer_sync(&ddata->data[i].timer);
+ gpio_free(pdata->buttons[i].gpio);
+ }
+
+@@ -165,54 +201,17 @@ static int __devexit gpio_keys_remove(struct platform_device *pdev)
+ }
+
+
+-#ifdef CONFIG_PM
+-static int gpio_keys_suspend(struct platform_device *pdev, pm_message_t state)
+-{
+- struct gpio_keys_platform_data *pdata = pdev->dev.platform_data;
+- int i;
+-
+- if (device_may_wakeup(&pdev->dev)) {
+- for (i = 0; i < pdata->nbuttons; i++) {
+- struct gpio_keys_button *button = &pdata->buttons[i];
+- if (button->wakeup) {
+- int irq = gpio_to_irq(button->gpio);
+- enable_irq_wake(irq);
+- }
+- }
+- }
+-
+- return 0;
+-}
+-
+-static int gpio_keys_resume(struct platform_device *pdev)
+-{
+- struct gpio_keys_platform_data *pdata = pdev->dev.platform_data;
+- int i;
+-
+- if (device_may_wakeup(&pdev->dev)) {
+- for (i = 0; i < pdata->nbuttons; i++) {
+- struct gpio_keys_button *button = &pdata->buttons[i];
+- if (button->wakeup) {
+- int irq = gpio_to_irq(button->gpio);
+- disable_irq_wake(irq);
+- }
+- }
+- }
+-
+- return 0;
+-}
+-#else
+ #define gpio_keys_suspend NULL
+ #define gpio_keys_resume NULL
+-#endif
+
+-struct platform_driver gpio_keys_device_driver = {
++static struct platform_driver gpio_keys_device_driver = {
+ .probe = gpio_keys_probe,
+ .remove = __devexit_p(gpio_keys_remove),
+ .suspend = gpio_keys_suspend,
+ .resume = gpio_keys_resume,
+ .driver = {
+ .name = "gpio-keys",
++ .owner = THIS_MODULE,
+ }
+ };
+
+@@ -226,9 +225,10 @@ static void __exit gpio_keys_exit(void)
+ platform_driver_unregister(&gpio_keys_device_driver);
+ }
+
+-module_init(gpio_keys_init);
++late_initcall(gpio_keys_init);
+ module_exit(gpio_keys_exit);
+
+ MODULE_LICENSE("GPL");
+ MODULE_AUTHOR("Phil Blundell <pb@handhelds.org>");
+ MODULE_DESCRIPTION("Keyboard driver for CPU GPIOs");
++MODULE_ALIAS("platform:gpio-keys");
+diff --git a/drivers/input/keyboard/s3c-keypad.c b/drivers/input/keyboard/s3c-keypad.c
+index 7bd73a2..e12b83a 100644
+--- a/drivers/input/keyboard/s3c-keypad.c
++++ b/drivers/input/keyboard/s3c-keypad.c
+@@ -51,7 +51,7 @@ static int keypad_scan(u32 *keymask_low, u32 *keymask_high)
+
+ for (i=0; i<KEYPAD_COLUMNS; i++) {
+ cval = readl(key_base+S3C_KEYIFCOL) | KEYCOL_DMASK;
+- cval &= ~(1 << i);
++ cval &= ~(1 << (i + 6));
+ writel(cval, key_base+S3C_KEYIFCOL);
+
+ udelay(KEYPAD_DELAY);
+@@ -272,14 +272,15 @@ out:
+
+ static int s3c_keypad_remove(struct platform_device *pdev)
+ {
+- struct input_dev *input_dev = platform_get_drvdata(pdev);
++ struct s3c_keypad *s3c_keypad = platform_get_drvdata(pdev);
++ struct input_dev *input_dev = s3c_keypad->dev;
+ writel(KEYIFCON_CLEAR, key_base+S3C_KEYIFCON);
+
+ input_unregister_device(input_dev);
+- kfree(pdev->dev.platform_data);
++ kfree(s3c_keypad);
+ free_irq(IRQ_KEYPAD, (void *) pdev);
+
+- del_timer(&keypad_timer);
++ del_timer(&keypad_timer);
+ printk(DEVICE_NAME " Removed.\n");
+ return 0;
+ }
+diff --git a/drivers/input/keyboard/s3c-keypad.h b/drivers/input/keyboard/s3c-keypad.h
+index 4207bfa..e1e4113 100644
+--- a/drivers/input/keyboard/s3c-keypad.h
++++ b/drivers/input/keyboard/s3c-keypad.h
+@@ -9,12 +9,12 @@
+ static void __iomem *key_base;
+
+ #if defined(CONFIG_CPU_S3C6400) || defined (CONFIG_CPU_S3C6410)
+-#define KEYPAD_COLUMNS 8
+-#define KEYPAD_ROWS 8
+-#define MAX_KEYPAD_NR 64 /* 8*8 */
++#define KEYPAD_COLUMNS 2
++#define KEYPAD_ROWS 8
++#define MAX_KEYPAD_NR 16 /* 8*8 */
+ #define MAX_KEYMASK_NR 32
+
+-int keypad_keycode[] = {
++/*int keypad_keycode[] = {
+ 1, 2, KEY_1, KEY_Q, KEY_A, 6, 7, KEY_LEFT,
+ 9, 10, KEY_2, KEY_W, KEY_S, KEY_Z, KEY_RIGHT, 16,
+ 17, 18, KEY_3, KEY_E, KEY_D, KEY_X, 23, KEY_UP,
+@@ -24,22 +24,39 @@ int keypad_keycode[] = {
+ KEY_M, KEY_L, KEY_7, KEY_U, KEY_J, KEY_N, 55, KEY_ENTER,
+ KEY_LEFTSHIFT, KEY_9, KEY_8, KEY_I, KEY_K, KEY_B, 63, KEY_COMMA
+ };
++*/
++int keypad_keycode[] = {
++ 1,2,3,4,5,6,7,8,
++ 9,10,11,12,13,14,15,16,
++ 17,18,19,20,21,22,23,24,
++ 25,26,27,28,29,30,31,32,
++ 33,34,35,36,37,38,39,40,
++ 41,42,43,44,45,46,47,48,
++ 49,50,51,52,53,54,55,56,
++ 57,58,59,60,61,62,63,64
++ };
+
+
+ #define KEYPAD_DELAY (50)
+-#define KEYPAD_ROW_GPIOCON S3C_GPK1CON
+-#define KEYPAD_ROW_GPIOPUD S3C_GPKPU
++//#define KEYPAD_ROW_GPIOCON S3C_GPK1CON //HHTECH wk
++//#define KEYPAD_ROW_GPIOPUD S3C_GPKPU //HHTECH wk
++#define KEYPAD_ROW_GPIOCON S3C_GPNCON //HHTECH wk
++#define KEYPAD_ROW_GPIOPUD S3C_GPNPU //HHTECH wk
+ #define KEYPAD_COL_GPIOCON S3C_GPL0CON
+ #define KEYPAD_COL_GPIOPUD S3C_GPLPU
+
+ #define KEYPAD_ROW_GPIO_SET \
+- ((readl(KEYPAD_ROW_GPIOCON) & ~(0xfffffff)) | 0x33333333)
++ ((readl(KEYPAD_ROW_GPIOCON) & ~(0xffff)) | 0xffff)
++ //((readl(KEYPAD_ROW_GPIOCON) & ~(0xfffffff)) | 0x33333333)
+
+ #define KEYPAD_COL_GPIO_SET \
+- ((readl(KEYPAD_COL_GPIOCON) & ~(0xfffffff)) | 0x33333333)
++ ((readl(KEYPAD_COL_GPIOCON) & ~(0xff000000)) | 0x33000000)
++// ((readl(KEYPAD_COL_GPIOCON) & ~(0xfffffff)) | 0x33333333)
+
+-#define KEYPAD_ROW_GPIOPUD_DIS (readl(KEYPAD_ROW_GPIOPUD) & ~(0xffff<<16))
+-#define KEYPAD_COL_GPIOPUD_DIS (readl(KEYPAD_COL_GPIOPUD) & ~0xffff)
++//#define KEYPAD_ROW_GPIOPUD_DIS (readl(KEYPAD_ROW_GPIOPUD) & ~(0xffff<<16))
++#define KEYPAD_ROW_GPIOPUD_DIS (readl(KEYPAD_ROW_GPIOPUD) & ~(0xffff)) //GPN0,GPN1,...GPN7
++//#define KEYPAD_COL_GPIOPUD_DIS (readl(KEYPAD_COL_GPIOPUD) & ~0xffff)
++#define KEYPAD_COL_GPIOPUD_DIS (readl(KEYPAD_COL_GPIOPUD) & ~0xf000) //GPL6,GPL7 //HHTECH wk
+
+ #define KEYIFCOL_CLEAR (readl(key_base+S3C_KEYIFCOL) & ~0xffff)
+ #define KEYIFCON_CLEAR (readl(key_base+S3C_KEYIFCON) & ~0x1f)
+diff --git a/drivers/input/mousedev.c b/drivers/input/mousedev.c
+index be83516..5484774 100644
+--- a/drivers/input/mousedev.c
++++ b/drivers/input/mousedev.c
+@@ -131,6 +131,7 @@ static void mousedev_touchpad_event(struct input_dev *dev,
+ {
+ int size, tmp;
+ enum { FRACTION_DENOM = 128 };
++return;
+
+ switch (code) {
+
+@@ -318,6 +319,7 @@ static void mousedev_notify_readers(struct mousedev *mousedev,
+
+ static void mousedev_touchpad_touch(struct mousedev *mousedev, int value)
+ {
++return;
+ if (!value) {
+ if (mousedev->touch &&
+ time_before(jiffies,
+@@ -378,6 +380,7 @@ static void mousedev_event(struct input_handle *handle,
+ break;
+
+ case EV_SYN:
++if (test_bit(BTN_TOOL_FINGER, handle->dev->keybit)) return;
+ if (code == SYN_REPORT) {
+ if (mousedev->touch) {
+ mousedev->pkt_count++;
+diff --git a/drivers/input/touchscreen/s3c-ts.c b/drivers/input/touchscreen/s3c-ts.c
+index e04228f..c16d441 100644
+--- a/drivers/input/touchscreen/s3c-ts.c
++++ b/drivers/input/touchscreen/s3c-ts.c
+@@ -82,10 +82,10 @@
+
+ /* Touchscreen default configuration */
+ struct s3c_ts_mach_info s3c_ts_default_cfg __initdata = {
+- .delay = 10000,
++ .delay = 50000,
+ .presc = 49,
+- .oversampling_shift = 2,
+- .resol_bit = 10,
++ .oversampling_shift = 4,
++ .resol_bit = 12,
+ };
+
+ /*
+@@ -98,6 +98,70 @@ static struct resource *ts_irq;
+ static struct clk *ts_clock;
+ static struct s3c_ts *ts;
+
++static unsigned long data_for_ADCCON;
++static unsigned long data_for_ADCTSC;
++static int ts_pressed = 0;
++
++static void touch_timer_fire(unsigned long data);
++
++static struct timer_list touch_timer =
++ TIMER_INITIALIZER(touch_timer_fire, 0, 0);
++
++static void s3c_adc_save_SFR_on_ADC(void) {
++
++ data_for_ADCCON = readl(ts_base+S3C2410_ADCCON);
++ data_for_ADCTSC = readl(ts_base+S3C2410_ADCTSC);
++}
++
++static void s3c_adc_restore_SFR_on_ADC(void) {
++
++ writel(data_for_ADCCON, ts_base+S3C2410_ADCCON);
++ writel(data_for_ADCTSC, ts_base+S3C2410_ADCTSC);
++}
++
++unsigned int s3c_adc_value(unsigned int s3c_adc_port)
++{
++ unsigned int adc_return = 0;
++ unsigned long data0;
++ unsigned long data1;
++
++ if (ts_pressed)
++ return 0;
++
++ disable_irq(IRQ_ADC);
++ disable_irq(IRQ_TC);
++
++ if (timer_pending(&touch_timer) || ts_pressed)
++ goto out;
++
++ s3c_adc_save_SFR_on_ADC();
++
++ writel(0x58, ts_base+S3C2410_ADCTSC);
++
++ writel(readl(ts_base+S3C2410_ADCCON)|S3C2410_ADCCON_SELMUX(s3c_adc_port), ts_base+S3C2410_ADCCON);
++ udelay(10);
++
++ writel(readl(ts_base+S3C2410_ADCCON)|S3C2410_ADCCON_ENABLE_START, ts_base+S3C2410_ADCCON);
++
++ do {
++ data0 = readl(ts_base+S3C2410_ADCCON);
++ } while(!(data0 & S3C2410_ADCCON_ECFLG));
++
++ data1 = readl(ts_base+S3C2410_ADCDAT0);
++
++ s3c_adc_restore_SFR_on_ADC();
++
++ adc_return = data1 & S3C_ADCDAT0_XPDATA_MASK_12BIT;
++ __raw_writel(0x0, ts_base+S3C6400_ADCCLRWK);
++ __raw_writel(0x0, ts_base+S3C6400_ADCCLRINT);
++out:
++ enable_irq(IRQ_TC);
++ enable_irq(IRQ_ADC);
++
++ return adc_return;
++}
++EXPORT_SYMBOL(s3c_adc_value);
++
+ static void touch_timer_fire(unsigned long data)
+ {
+ unsigned long data0;
+@@ -120,8 +184,8 @@ static void touch_timer_fire(unsigned long data)
+ }
+ #endif
+
+- input_report_abs(ts->dev, ABS_X, ts->xp);
+- input_report_abs(ts->dev, ABS_Y, ts->yp);
++ input_report_abs(ts->dev, ABS_X, ts->xp / ts->count);
++ input_report_abs(ts->dev, ABS_Y, ts->yp / ts->count);
+
+ input_report_key(ts->dev, BTN_TOUCH, 1);
+ input_report_abs(ts->dev, ABS_PRESSURE, 1);
+@@ -144,12 +208,10 @@ static void touch_timer_fire(unsigned long data)
+ input_sync(ts->dev);
+
+ writel(WAIT4INT(0), ts_base+S3C2410_ADCTSC);
++ ts_pressed = 0;
+ }
+ }
+
+-static struct timer_list touch_timer =
+- TIMER_INITIALIZER(touch_timer_fire, 0, 0);
+-
+ static irqreturn_t stylus_updown(int irqno, void *param)
+ {
+ unsigned long data0;
+@@ -184,6 +246,7 @@ static irqreturn_t stylus_action(int irqno, void *param)
+ {
+ unsigned long data0;
+ unsigned long data1;
++ ts_pressed = 1;
+
+ data0 = readl(ts_base+S3C2410_ADCDAT0);
+ data1 = readl(ts_base+S3C2410_ADCDAT1);
+@@ -210,6 +273,7 @@ static irqreturn_t stylus_action(int irqno, void *param)
+ writel(WAIT4INT(1), ts_base+S3C2410_ADCTSC);
+ }
+
++end:
+ #if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
+ __raw_writel(0x0, ts_base+S3C6400_ADCCLRWK);
+ __raw_writel(0x0, ts_base+S3C6400_ADCCLRINT);
+@@ -268,6 +332,8 @@ static int __init s3c_ts_probe(struct platform_device *pdev)
+ clk_enable(ts_clock);
+
+ s3c_ts_cfg = s3c_ts_get_platdata(&pdev->dev);
++
++ //writel(S3C2410_ADCCON_STDBM, ts_base+S3C2410_ADCCON); mdelay(10);
+
+ if ((s3c_ts_cfg->presc&0xff) > 0)
+ writel(S3C2410_ADCCON_PRSCEN | S3C2410_ADCCON_PRSCVL(s3c_ts_cfg->presc&0xFF),\
+@@ -303,6 +369,7 @@ static int __init s3c_ts_probe(struct platform_device *pdev)
+
+ ts->dev->evbit[0] = ts->dev->evbit[0] = BIT_MASK(EV_SYN) | BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
+ ts->dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
++ts->dev->keybit[BIT_WORD(BTN_TOOL_FINGER)] = BIT_MASK(BTN_TOOL_FINGER);
+
+ #if defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C6410) || defined(CONFIG_CPU_S3C2416)
+ input_set_abs_params(ts->dev, ABS_X, 0, 0xFFF, 0, 0);
+@@ -332,14 +399,14 @@ static int __init s3c_ts_probe(struct platform_device *pdev)
+ goto err_clk;
+ }
+
+- ret = request_irq(ts_irq->start, stylus_updown, IRQF_SAMPLE_RANDOM, "s3c_updown", ts);
++ ret = request_irq(ts_irq->start, stylus_updown, IRQF_SAMPLE_RANDOM, "s3c_updown", ts->dev);
+ if (ret != 0) {
+ printk(KERN_ERR "s3c_ts.c: Could not allocate ts IRQ_TC !\n");
+ ret = -EIO;
+ goto err_clk;
+ }
+
+- ret = request_irq(ts_irq->end, stylus_action, IRQF_SAMPLE_RANDOM, "s3c_action", ts);
++ ret = request_irq(ts_irq->end, stylus_action, IRQF_SAMPLE_RANDOM, "s3c_action", ts->dev);
+ if (ret != 0) {
+ printk(KERN_ERR "s3c_ts.c: Could not allocate ts IRQ_ADC !\n");
+ ret = -EIO;
+@@ -397,6 +464,9 @@ static int s3c_ts_remove(struct platform_device *dev)
+
+ input_unregister_device(ts->dev);
+ iounmap(ts_base);
++ kfree(ts);
++ release_resource(ts_mem);
++ kfree(ts_mem);
+
+ return 0;
+ }
+diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
+index b5e67c0..2a060ce 100644
+--- a/drivers/misc/Kconfig
++++ b/drivers/misc/Kconfig
+@@ -13,6 +13,11 @@ menuconfig MISC_DEVICES
+
+ if MISC_DEVICES
+
++config SMARTQ5_ENCRYPT
++ tristate "AT88SC5211C CryptoMemory Device driver for SmartQ5"
++ depends on MACH_SMDK6410
++ ---help---
++
+ config IBM_ASM
+ tristate "Device driver for IBM RSA service processor"
+ depends on X86 && PCI && INPUT && EXPERIMENTAL
+diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
+index 87f2685..71f4d76 100644
+--- a/drivers/misc/Makefile
++++ b/drivers/misc/Makefile
+@@ -3,6 +3,7 @@
+ #
+ obj- := misc.o # Dummy rule to force built-in.o to be made
+
++obj-$(CONFIG_SMARTQ5_ENCRYPT) += smartq5_encrypt/
+ obj-$(CONFIG_IBM_ASM) += ibmasm/
+ obj-$(CONFIG_HDPU_FEATURES) += hdpuftrs/
+ obj-$(CONFIG_MSI_LAPTOP) += msi-laptop.o
+diff --git a/drivers/misc/smartq5_encrypt/Makefile b/drivers/misc/smartq5_encrypt/Makefile
+new file mode 100644
+index 0000000..3dd6858
+--- /dev/null
++++ b/drivers/misc/smartq5_encrypt/Makefile
+@@ -0,0 +1,3 @@
++
++obj-$(CONFIG_SMARTQ5_ENCRYPT) := smartq5_encrypt.o
++
+diff --git a/drivers/misc/smartq5_encrypt/lib_Crypto.h b/drivers/misc/smartq5_encrypt/lib_Crypto.h
+new file mode 100644
+index 0000000..9e6b634
+--- /dev/null
++++ b/drivers/misc/smartq5_encrypt/lib_Crypto.h
+@@ -0,0 +1,1426 @@
++/** \file
++ * \brief Definitions and declarations for external reference into CrytoMemory
++ * and Companion CryptoMemory Library.
++ */
++/*
++*******************************************************************************
++* |
++* File Name | lib_Crypto.h
++*------------------------------------------------------------------------------
++* Project | CryptoMemory and Companion CryptoMemory
++*------------------------------------------------------------------------------
++* Created | October 02, 2006
++*-----------------|-----------------------------------------------------------
++* Description | This file contains all the definitions and function which
++* | are used to reference to/from CryptoMemory and its
++* | Companion library.
++*-----------------|------------------------------------------------------------
++* | Copyright (c) 2006 Atmel Corp.
++* | All Rights Reserved.
++* |
++******************************************************************************
++*/
++#ifndef LIB_CRYPTO_H
++#define LIB_CRYPTO_H
++
++typedef unsigned char uchar;
++
++/** \mainpage Crypto-Memory Library Documentation
++ *
++ * \section intro_sec Introduction
++ *
++ * The CryptoMemory family is a high performance secure memory devices
++ * providing 1K to 256K bits of user memory with advanced security and
++ * cryptographic features built in. The memory is divided into 4, 8 or 16
++ * user zones each of which may be individually set with different security
++ * access rights or used together to provide space for one or multiple data
++ * files. A configuration zone contains registers to define the security
++ * rights for each user zone and space for passwords and secret keys used by
++ * the security logic of CryptoMemory.
++ *
++ * The CryptoRF family integrates a 13.56 MHz RFinterface into a CryptoMemory,
++ * resulting in a Contactless Smart Card with advanced security and
++ * cryptographic features. This device is optimized as a contactless secure
++ * memory, for multi-application RF smart card, and secure identification for
++ * electronic data transfer, without the requirement of an interal
++ * microprocessor. The CryptoRF devices provide 1K to 64K bits of user memory.
++ *
++ * The CryptoCompanion Chip is designed as the mate to Atmel`s CryptoRF and
++ * CryptoMemory chips.
++ *
++ * This Library supports the synchronous interface most useful in embedded
++ * systems. While similar to the Two Wire Interface, it is not 100% compatable.
++ *
++ * \section embedded_app Embedded Applications
++ *
++ * Through dynamic, symmetric-mutual authentication, data encryption, and
++ * the use of encrypted checksums, CryptoMemory provides a secure place for
++ * storage of sensitive information within an embedded system.
++ *
++ * A 2-wire serial interface running at 1.0 MHz is used for fast and efficient
++ * communications with up to 15 devices that may be individually addressed.
++ *
++ * \section rf_app RF Applications
++ *
++ * For communications, the RF interface utilizes the ISO 14443-2 and -3 Type B
++ * bit timing and signal modulation schemes, and the ISO 14443-3 Slot-MARKER
++ * Anticollision Protocol. Data is exchanged half duplex at a 106-kbit/s rate,
++ * with a two-byte CRC_B providing error detection capability. The maximum
++ * communication range between the reader antenna and contactless card is
++ * approximately 10 cm when used with an RFID reader that transmits the maximum
++ * ISO 14443-2 RF power level.
++ *
++ * \section detail_sec Details
++ *
++ * To enable the security features of CryptoMemory, the device must first be
++ * personalized to set up registers and load in the appropriate passwords
++ * and keys. This is accomplished though programming the configuration zone
++ * of CryptoMemory using simple write and read commands. To gain access to
++ * the configuration zone, the secure code (write 7 password) must
++ * be successfully presented. After writing and verifying data in the
++ * configuration zone, the security fuses must be blown to lock this
++ * information in the device.
++ *
++ * \subsection subsection1 Configuration Memory
++ *
++ * The configuration memory consists of 2048 bits of EEPROM memory used for
++ * storing passwords, keys, codes and defining security levels to be used for
++ * each User Zone. Access rights to the configuration memory are defined in
++ * the control logic and may not be altered by the user. These access rights
++ * include the ability to program certain portions of the Configuration Zone
++ * and then lock the data written through use of the Security Fuses. The
++ * configuration memory for each CryptoMemory device is identical with the
++ * exception of the number of Access Registers and Password/Key Registers used.
++ *
++ * Unused registers become reserved space to ensure the other components of
++ * the configuration memory remain at the same address location regardless of
++ * the number of User Zones in a device.
++ *
++ * \subsection subsection2 Communication Security Modes
++ *
++ * Communication between the device and host operates in three basic modes.
++ * Standard mode is the default mode for the device after power-up.
++ * Authentication mode is activated by a successful authentication sequence.
++ * Encryption mode is activated by a successful encryption activation following
++ * a successful authentication.
++ *
++ * \subsection subsection3 Security Operations
++ *
++ * \subsubsection subsubsection1 Password Verification
++ *
++ * Passwords may be used to protect read and write access to the user zones.
++ * Any one of 8 password sets may be assigned to any user zone through the
++ * access registers. Separate 24 bit read and write passwords are provided.
++ * A read password will only allow data to be read from the protected zone,
++ * a write password allows both read and write access. When a password is
++ * successfully presented using the verify password command it remains active
++ * until another verify password command is issued or the device is reset.
++ * Only one password may be active at a time. When an incorrect password is
++ * presented the password attempts counter (PAC) will decrement. When the
++ * PAC reaches a value of 0x00 the associated password is permanently disabled
++ * and the protected user zone(s) cannot be accessed.
++ *
++ * \subsubsection subsubsection2 Authentication Protocol
++ *
++ * An authentication protocol may be used to protect access to the user zones.
++ * Any one of 4 key sets may be assigned to any user zone through the access
++ * registers. Each key set consists of a secret seed, cryptogram and session
++ * key. When the authentication communication mode is successfully entered
++ * with the verify authentication command the specific key set remains active
++ * until another verify authentication command is issued or the device is
++ * reset. An unsuccessful verify authentication command will deactivate the
++ * key set. Only one key set may be active at a time. When an incorrect
++ * authentication attempt is made the authentication attempts counter (AAC)
++ * will decrement. When the AAC reaches a value of 0x00 the associated key set
++ * is permanently disabled and the protected user zone(s) cannot be accessed.
++ *
++ * \subsubsection subsubsection3 Data Encryption
++ *
++ * The data exchanged between the CryptoMemory device and the host logic
++ * during read, write and verify password commands may be encrypted to ensure
++ * data confidentiality. This may be accomplished at the option of the host
++ * logic by executing the verify encryption command after a successful
++ * authentication using the same key set. Encryption may be required for any
++ * data exchange to a specific user zone by the proper setting of the access
++ * registers. In this case the successful completion of verify authentication
++ * and verify encryption commands is required before any data may be read
++ * from or written to the protected user zone. Data read from the
++ * configuration zone is never encrypted.
++ *
++ * When the encryption communication mode is successfully entered with the
++ * verify encryption command the specific key set remains active until another
++ * verify authentication command is issued or the device is reset. An
++ * unsuccessful verify encryption command will deactivate the key set and
++ * reset device security. Only one key set may be active at a time. When an
++ * incorrect encryption attempt is made the authentication attempts counter
++ * (AAC) will decrement. When the AAC reaches a value of 0x00 the associated
++ * key set is permanently disabled and the protected user zone(s) cannot be
++ * accessed. The process to activate encryption is very similar to that used
++ * to verify authentication, a calculated session key replaces the secret
++ * seed in the sequence.
++ *
++ * \subsubsection subsubsection4 Encrypted Checksum
++ *
++ * CryptoMemory implements a data validity check function in the form of an
++ * encrypted checksum. This checksum provides a bi-directional data integrity
++ * check and data origin authentication capability in the form of a Message
++ * Authentication Code (MAC): only the host/device that carried out a valid
++ * authentication is capable of computing a valid MAC. When writing data to
++ * the CryptoMemory device in authentication or encryption communication modes
++ * a valid checksum must be sent to the device immediately following the write
++ * command for data to actually be written. If the checksum sent is not
++ * correct, data will not be written to the device and security will be reset
++ * requiring a new verify authentication command to be issued to continue.
++ * When reading data the use of a checksum is optional. The read checksum
++ * command will reset device security so it is recommended to only be used
++ * after all data has been read from the device.
++ *
++ * \subsection subsection_default CryptoMemory Default Values
++ *
++ * \htmlonly
++ <TABLE CELLSPACING=10 > <TBODY> <TR>
++ <TD><B>Device</B></TD> <TD><B>ATR</B></TD>
++ <TD><B>Fab Code</B></TD> <TD><B>Lot History Code</B></TD>
++ <TD><B>Write 7 Password (Secure Code)</B></TD> </TR>
++ <TR> <TD ALIGN=CENTER>AT88SC0104C</TD>
++ <TD ALIGN=CENTER>3B B2 11 00 10 80 00 01</TD>
++ <TD ALIGN=CENTER>10 10</TD> <TD ALIGN=CENTER>Variable, locked</TD>
++ <TD ALIGN=CENTER>DD 42 97</TD> </TR>
++ <TR> <TD ALIGN=CENTER>AT88SC0204C</TD>
++ <TD ALIGN=CENTER>3B B2 11 00 10 80 00 02</TD>
++ <TD ALIGN=CENTER>20 20</TD> <TD ALIGN=CENTER>Variable, locked</TD>
++ <TD ALIGN=CENTER>E5 47 47</TD> </TR>
++ <TR> <TD ALIGN=CENTER>AT88SC0404C</TD>
++ <TD ALIGN=CENTER>3B B2 11 00 10 80 00 04</TD>
++ <TD ALIGN=CENTER>40 40</TD> <TD ALIGN=CENTER>Variable, locked</TD>
++ <TD ALIGN=CENTER>60 57 34</TD> </TR>
++ <TR><TD ALIGN=CENTER>AT88SC0808C</TD>
++ <TD ALIGN=CENTER>3B B2 11 00 10 80 00 08</TD>
++ <TD ALIGN=CENTER>80 60</TD> <TD ALIGN=CENTER>Variable, locked</TD>
++ <TD ALIGN=CENTER>22 E8 3F</TD> </TR>
++ <TR><TD ALIGN=CENTER>AT88SC1616C</TD>
++ <TD ALIGN=CENTER>3B B2 11 00 10 80 00 16</TD>
++ <TD ALIGN=CENTER>16 80</TD> <TD ALIGN=CENTER>Variable, locked</TD>
++ <TD ALIGN=CENTER>20 0C E0</TD> </TR>
++ <TR><TD ALIGN=CENTER>AT88SC3216C</TD>
++ <TD ALIGN=CENTER>3B B3 11 00 00 00 00 32</TD>
++ <TD ALIGN=CENTER>32 10</TD> <TD ALIGN=CENTER>Variable, locked</TD>
++ <TD ALIGN=CENTER>CB 28 50</TD> </TR>
++ <TR><TD ALIGN=CENTER>AT88SC6416C</TD>
++ <TD ALIGN=CENTER>3B B3 11 00 00 00 00 64</TD>
++ <TD ALIGN=CENTER>64 40</TD> <TD ALIGN=CENTER>Variable, locked</TD>
++ <TD ALIGN=CENTER>F7 62 0B</TD> </TR>
++ <TR><TD ALIGN=CENTER>AT88SC12816C</TD>
++ <TD ALIGN=CENTER>3B B3 11 00 00 00 01 28</TD>
++ <TD ALIGN=CENTER>28 60</TD> <TD ALIGN=CENTER>Variable, locked</TD>
++ <TD ALIGN=CENTER>22 EF 67</TD> </TR>
++ <TR><TD ALIGN=CENTER>AT88SC25616C</TD>
++ <TD ALIGN=CENTER>3B B3 11 00 00 00 02 56</TD>
++ <TD ALIGN=CENTER>58 60</TD> <TD ALIGN=CENTER>Variable, locked</TD>
++ <TD ALIGN=CENTER>17 C3 3A</TD> </TR>
++ <TR></TR> </TBODY> </TABLE> \endhtmlonly
++ *
++ * \subsection subsection_default1 CryptoRF Default Values
++ *
++ * \htmlonly
++ <TABLE CELLSPACING=10 > <TBODY> <TR>
++ <TD><B>Device</B></TD> <TD><B>Density Code</B></TD>
++ <TD><B>RBmax Code</B></TD> <TD><B>Lot History Code</B></TD>
++ <TD><B>Write 7 Password (Secure Code)</B></TD> </TR>
++ <TR> <TD ALIGN=CENTER>AT88SC0104CRF</TD>
++ <TD ALIGN=CENTER>02</TD>
++ <TD ALIGN=CENTER>10</TD> <TD ALIGN=CENTER>Variable, locked</TD>
++ <TD ALIGN=CENTER>10 14 7C</TD> </TR>
++ <TR> <TD ALIGN=CENTER>AT88SC0204CRF</TD>
++ <TD ALIGN=CENTER>12</TD>
++ <TD ALIGN=CENTER>10</TD> <TD ALIGN=CENTER>Variable, locked</TD>
++ <TD ALIGN=CENTER>20 C2 8B</TD> </TR>
++ <TR> <TD ALIGN=CENTER>AT88SC0404CRF</TD>
++ <TD ALIGN=CENTER>22</TD>
++ <TD ALIGN=CENTER>10</TD> <TD ALIGN=CENTER>Variable, locked</TD>
++ <TD ALIGN=CENTER>30 1D D2</TD> </TR>
++ <TR><TD ALIGN=CENTER>AT88SC0808CRF</TD>
++ <TD ALIGN=CENTER>33</TD>
++ <TD ALIGN=CENTER>10</TD> <TD ALIGN=CENTER>Variable, locked</TD>
++ <TD ALIGN=CENTER>40 7F AB</TD> </TR>
++ <TR><TD ALIGN=CENTER>AT88SC1616CRF</TD>
++ <TD ALIGN=CENTER>44</TD>
++ <TD ALIGN=CENTER>10</TD> <TD ALIGN=CENTER>Variable, locked</TD>
++ <TD ALIGN=CENTER>50 44 72</TD> </TR>
++ <TR><TD ALIGN=CENTER>AT88SC3216CRF</TD>
++ <TD ALIGN=CENTER>54</TD>
++ <TD ALIGN=CENTER>30</TD> <TD ALIGN=CENTER>Variable, locked</TD>
++ <TD ALIGN=CENTER>60 78 AF</TD> </TR>
++ <TR><TD ALIGN=CENTER>AT88SC6416CRF</TD>
++ <TD ALIGN=CENTER>64</TD>
++ <TD ALIGN=CENTER>30</TD> <TD ALIGN=CENTER>Variable, locked</TD>
++ <TD ALIGN=CENTER>70 BA 2E</TD> </TR>
++ <TR></TR> </TBODY> </TABLE> \endhtmlonly
++ *
++ * \section integrate-sec Integration Guide
++ * The supplied CryptoMemory Library supports the APIs list
++ * below. The following describes how to build a simple
++ * application using this library.
++ *
++ * \subsection subsection5 Files To Include.
++ * Below are files must add to system software.\n
++ *
++ * lib_Crypto.h:
++ *
++ * In your top level source file (probably the one that
++ * interface to lib_CMC.a or lib_CM.a), you will need to include lib_Crypto.h.
++ * This header file contained all external refernce APIs,
++ * defines and enumerations which are used by library or
++ * application. This file must be retained as is and no
++ * modification should be made.\n
++ *
++ * lib_CMC.a or lib_CM.a:
++ *
++ * In your IDE or makefile, you need to add lib_CMC.a or lib_CM.a for
++ * linker to link this library into your system software. This
++ * library archived from all object files generated by GNU
++ * compiler for AVR processor. If you use different
++ * processor other than AVR, you need request Atmel to
++ * generate a library to fit your environment and processor.
++ *
++ * lib_Support.c
++ *
++ * This file contains all APIs which library refers at compiler
++ * time and calls at run-time. Since this file is used as a
++ * reference file, you might change logic within these API but
++ * must retain all API names, input and output parameters as
++ * defined. Below are definitions, tables and routines which
++ * defined and implemented by Atmel. You can use them as
++ * implemented or modify to fit your system. Below are
++ * sections in the lib_Support.c file which needed to examine
++ * to fit your system software environment.
++ *
++ * \subsection subsection6 Definitions (lib_Support.c)
++ * Below are defintions must define to fit system enviroment.
++ *
++ * CM_NUM_DEVICE\n
++ * This definition is defined how many CM devices are in system
++ * \if CMC_DOXY
++ * CMC_NUM_DEVICE\n
++ * This definition is defined how many CMC devices are in
++ * system
++ * \endif
++ * \subsection subsection7 Tables (lib_Support.c)
++ * Below are tables must define to fit system enviroment.\n
++ *
++ * cm_device_addresses[]\n
++ * This table defined all CM device addresses in system with
++ * last entry must be "0". For CM, default address is 0x0B.
++ * Each device on the bus has a unique address programmed into
++ * its DCR register. CryptoMemory device always response to
++ * address "0x0B" no matter what address is programmed into the
++ * DCR. The CM device address is defined to program from bit
++ * 0-3 only.
++ * \if CMC_DOXY
++ * cmc_device_addresses[]\n
++ * This table defined all CMC device addresses in system with
++ * last entry must be "0". The CMC device address is defined to
++ * program from bit 1-7.
++ * \endif
++ * sDeviceTypeInfoTBL[]\n
++ * This table defined all possible CM device types which are
++ * supported by Atmel.
++ *
++ * \subsection subsection8 Routines (lib_Support.c)
++ * Below are routines that can be used as implemented or
++ * modified to meet system software needed. These routines
++ * will call by library at run-time.\n
++ *
++ * cm_FindDeviceIndex(uchar ucCmDevAddr)\n
++ * This routine returns a CM index from CM device address table
++ * that based from CM device address.
++ *
++ * getCMDevAddr(uchar ucIndex)\n
++ * This rotuine returns a CM device address from CM device
++ * address table that based from CM device index.
++ *
++ * getCMDevType(uchar ucIndex)\n
++ * This routine returns a CM device type from CM device type
++ * table that based from CM device index.
++ *
++ * cmc_FindDeviceIndex(uchar ucDevAddr)\n
++ * This routine returns a CMC index from CMC device address
++ * table that based from CMC device address.
++ *
++ * getCMCDevAddr(uchar ucIndex)\n
++ * This rotuine returns a CMC device address from CMC device
++ * address table that based from CMC device index.
++ *
++ * WaitForNotBusy(uchar ucDevAddr)\n
++ * This routine waits for the CMC "BUSY" bit to CLEAR.
++ *
++ * WaitForData(uchar ucDevAddr)\n
++ * This routine waits for the CMC "DATA AVAILABLE" bit to SET.
++ *
++ * WaitForStartupDone(uchar ucDevAddr)\n
++ * This routine waits for the CMC "STARTUPDONE" bit to SET.
++ *
++ * lib_memcpy(puchar pucDesMem, puchar pucSrcMem, uint uiCnt)\n
++ * This routine calls standard C library to copy number of
++ * bytes from source to destination memory.
++ *
++ * lib_memcmp(puchar pucMem1, puchar pucMem2, uint ucCnt)\n
++ * This routine calls standard C library to compare two
++ * strings.
++ *
++ * lib_malloc(uchar ucBytes)\n
++ * This rouitne calls standard C library to allocate a buffer
++ * from memeory pool.
++ *
++ * lib_free(puchar pucBuff)\n
++ * This rouitne calls standard C library to deallocate a buffer
++ * back to memeory pool.
++ *
++ * lib_rand(void)\n
++ * This rouitne calls standard C library to get a random
++ * byte.\n
++ *
++ * \subsection subsection9 APIs in library (lib_CMC.a or lib_CM.a)
++ * Below are APIs in library which avialable for other layers
++ * to call.\n
++ *
++ * getLibVersNum(void)\n
++ * Get library version
++ *
++ * cm_Init(void)\n
++ * Initializes Crypto devices.
++ *
++ * cm_WriteUserZone(uchar ucDevAddr, uint uiCryptoAddr, puchar pucBuffer, uchar ucCount)\n
++ * Writes data into the (previously set) CM user zone
++ *
++ * cm_ReadUserZone(uchar ucDevAddr, uint uiCryptoAddr, puchar pucBuffer, uchar ucCount)\n
++ * Reads data from the (previously set) CM user
++ * zone
++ *
++ * cm_WriteConfigZone(uchar ucDevAddr, uchar ucCryptoAddr, puchar pucBuffer, uchar ucCount, uchar ucAntiTearing)\n
++ * Write data into the CM Configuration Memory
++ *
++ * cm_WriteFuse(uchar ucDevAddr, uchar ucFuze)\n
++ * Writes Fuse Byte to the specified CM device address
++ *
++ * cm_SetUserZone(uchar ucDevAddr, uchar ucZoneNumber, uchar ucAntiTearing)\n
++ * Sets CM user zone
++ *
++ * cm_ReadConfigZone(uchar ucDevAddr, uchar ucCryptoAddr, puchar pucBuffer, uchar ucCount)\n
++ * Reads data from the CM Configuration Zone
++ *
++ * cm_ReadFuse(uchar ucDevAddr, puchar pucFuze)\n
++ * Reads Fuse Byte from CM device
++ *
++ * cm_ReadChecksum(uchar ucDevAddr, puchar pucChkSum)\n
++ * Reads Checksum
++ *
++ * cm_SendChecksum(uchar ucDevAddr, puchar pucChkSum)\n
++ * Sends checksum
++ *
++ * cm_VerifyCrypto(uchar ucDevAddr, uchar ucKeySet, puchar pucBuff, puchar pucBuff2, uchar ucEncrypt)\n
++ * Activates Authentication and (optionally) Encryption mode
++ *
++ * cm_ResetCrypto(uchar ucDevAddr)\n
++ * Reset authentication and encryption and resets the
++ * cryptoengine
++ *
++ * cm_VerifyPassword(uchar ucDevAddr, puchar pucPassword, uchar ucSet, uchar ucRW)\n
++ * Verifies Password.
++ * \if CMC_DOXY
++ * cmc_VerifyFlash(uchar ucCmcDevAddr, puchar pucExtDigest, puchar pucIntDigest)\n
++ * Verifies System Digest
++ *
++ * cmc_StartChallenge(uchar ucCmcDevAddr, puchar pucCmcChallenge, puchar pucCmcSeed, puchar pucSystemSeed)\n
++ * Verify Start Challenge
++ *
++ * cmc_GetRandom(uchar ucCmcDevAddr, puchar pucData)\n
++ * Gets a 20 byte random number from the Companion Chip
++ *
++ * cmc_IncrementCounter(uchar ucCmcDevAddr, uchar ucSelector)\n
++ * Increments the value of the specified counter by 1
++ *
++ * cmc_ReadCounter(uchar ucCmcDevAddr, uchar ucSelector, puchar pucData)\n
++ * Reads 32 bits of the specified counter
++ *
++ * cmc_WriteMemory(uchar ucCmcDevAddr, uint uiAddress, uchar ucCount, puchar pucData)\n
++ * Writes the contents of the specified address
++ *
++ * cmc_WriteMemoryAuthorized(uchar ucCmcDevAddr, uint uiAddress, uchar ucData, puchar pucF0)\n
++ * Authorizes to writes a single byte in the first 16 bytes of
++ * the ReadOnly section at the specified address
++ *
++ * cmc_WriteMemoryEncrypted(uchar ucCmcDevAddr, uint uiAddress,puchar pucData, puchar pucNonce)\n
++ * Writes 16 byte page of EEPROM with encryption.
++ *
++ * cmc_ReadMemory(uchar ucCmcDevAddr, uint uiAddress, uchar ucCount, puchar pucData)\n
++ * Reads the contents of the specified address.
++ *
++ * cmc_ReadMemoryDigest(uchar ucCmcDevAddr, uint uiAddress, puchar pucData)\n
++ * Reads the specified 32 byte block and computes the SHA-1
++ * digest.
++ *
++ * cmc_ReadManufID(uchar ucCmcDevAddr, puchar pucData)\n
++ * Reads the contents of the Manufacturing ID and Lock Byte
++ *
++ * cmc_Lock(uchar ucCmcDevAddr)\n
++ * Locks the current memory values into the Companion Chip.
++ *
++ * cmc_Status(uchar ucCmcDevAddr)\n
++ * Reads Status byte from CMC
++ *
++ * cmc_SHA1(puchar pucInData, uchar ucLen, puchar pucOutData)\n
++ * Calculates digest with SHA-1 algorithm\n
++ * \endif
++ */
++
++
++/*
++****************************************************
++* Defintions for CryptoMemory and Companion
++****************************************************
++*/
++// Basic Datatypes
++typedef unsigned char *puchar;
++typedef signed char schar;
++typedef signed char *pschar;
++typedef unsigned short *pushort;
++typedef signed short sushort;
++typedef signed short *pshort;
++typedef unsigned int *puint;
++typedef signed int sint;
++typedef signed int *psint;
++
++#ifdef __AVR__
++ #ifdef __GNUC__
++ #include <avr/io.h>
++ #include <avr/pgmspace.h>
++ #define ROM_READ(addr) pgm_read_word(addr)
++///< Read of program space (flash) in AVR is different from RAM read
++ #define ROM_READ_BYTE(addr) pgm_read_byte(addr)
++///< Read of program space (flash) in AVR is different from RAM read
++ #define ROM_READ_DWORD(addr) pgm_read_dword(addr)
++///< Read of program space (flash) in AVR is different from RAM read
++ #else
++ #define ROM_READ(addr) *addr
++///< Read of program space (flash) in AVR is different from RAM read
++ #define ROM_READ_BYTE(addr) *addr
++///< Read of program space (flash) in AVR is different from RAM read
++ #define ROM_READ_DWORD(addr) *addr
++///< Read of program space (flash) in AVR is different from RAM read
++ #define PROGMEM ///< Needed in GCC to differentiate ROM from RAM
++ #endif
++#else
++ #define ROM_READ(addr) *addr
++///< Read of program space (flash) in AVR is different from RAM read
++ #define ROM_READ_BYTE(addr) *addr
++///< Read of program space (flash) in AVR is different from RAM read
++ #define ROM_READ_DWORD(addr) *addr
++///< Read of program space (flash) in AVR is different from RAM read
++ #define PROGMEM ///< Needed in GCC to differentiate ROM from RAM
++#endif
++
++
++
++// Basic Definations (if not available elsewhere)
++#ifndef FALSE
++#define FALSE (0)
++#define TRUE (!FALSE)
++#endif
++#ifndef NULL
++#define NULL ((void *)0)
++#endif
++
++/** \brief Status Return Codes */
++typedef enum {
++ SUCCESS = 0x00, ///< General OK, no error
++#ifdef CMC
++ CMC_RST_LOCKED = 0x01, ///< CMC Reset Locked, disabled until power or reset cycle
++ CMC_BAD_CMD = 0x02, ///< CMC Command format or operand bad
++ CMC_TIME_DELAY = 0x03, ///< CMC Disabled for a time delay (Power or Security)
++ CMC_AUTH_FAIL = 0x04, ///< CMC Authentication required or failed
++ CMC_PERM_LOCKED = 0x07, ///< CMC Permanently locked
++ CMC_RESPONSE_FAILED = 0x0A, ///< CMC and System fail StartUp State
++ CMC_BUSY = 0x0B, ///< CMC Busy
++ CMC_DATA_NOT_AVAIL = 0x0C, ///< CMC Data Not Available
++ CMC_STARTUP_NOT_DONE =0x0D, ///< CMC and Ssytem fail Challengence State
++#endif
++ FAILED = 0x14, ///< General failure
++ FAIL_CMDSTART = 0x15, ///< Command start failed
++ FAIL_CMDSEND = 0x16, ///< Failed to send a command
++ FAIL_WRDATA = 0x17, ///< Failed to write data
++ FAIL_RDDATA = 0x18, ///< Failed to read data
++ UNKNOWN_DEVICE = 0x19, ///< Invalid device number
++ WRITE_CMD_ERROR = 0x1A, ///< Write Command Error
++ READ_CMD_ERROR = 0x1B, ///< Read Command Error
++ PASSWORD_NOT_ACCEPTED = 0x1C, ///< Write password not accepted
++ INVALID_USER_ZONE = 0x1D, ///< Wrong user zone
++ INVALID_NUM_BYTES_2WRITE = 0x1E,///< Number of bytes to write too large
++ INVALID_NUM_BYTES_2READ = 0x1F, ///< Number of bytes to read too large
++ ERROR_MAX = 255 ///< Maximum error
++
++} RETURN_CODE;
++
++
++/** \brief Below are defined of Crypto Memory device type */
++
++typedef enum {
++ UNKNOWN_DEVICE_TYPE,
++ AT88SC0104C, /// < 1 KBits User Zone
++ AT88SC0204C, /// < 2 KBits User Zone
++ AT88SC0404C, /// < 4 KBits User Zone
++ AT88SC0808C, /// < 8 KBits User Zone
++ AT88SC1616C, /// < 16 KBits User Zone
++ AT88SC3216C, /// < 32 KBits User Zone
++ AT88SC6416C, /// < 64 KBits User Zone
++ AT88SC12816C, /// < 128 KBits User Zone
++ AT88SC25616C, /// < 256 KBits User Zone
++ AT88SCRF, /// < CM for RF
++ MAX_CM_DEVICE_TYPE /// < Maximum device type
++} CM_DEVICE_TYPE;
++
++/** \brief Maximum of CM device addresses
++*/
++#define CM_MAX_DEV_ADDR 0x0F
++
++#ifdef CMC
++/** \if CMC_DOXY
++ * \brief Maximum of CMC device addresses
++ * \endif
++*/
++#define CMC_MAX_DEV_ADDR 0xFE
++#endif
++
++/*
++****************************************************
++* CryptoMemory Function Prototypes
++****************************************************
++*/
++/** \brief Initializes the CrytpoMemory
++ *
++ * Resets the crypto engines and parameters associated with them
++ * for each device in the cm_device_addresses table.
++ * This function should be called immediately after calling the low level
++ * function ll_PowerOn(). If the return value is not SUCCESS, use of
++ * the CryptoMemory device(s) may not continue.
++ * If system runs with CryptoMemory Companion chip then this cm_Init will
++ * initialize them in this init state.
++ *
++ * \return Returns SUCCESS if device_address is in cm_device_addresses,
++ * UNKNOWN_DEVICE otherwise.
++ *
++ * \remarks Example: if (cm_Init() != SUCCESS) return 0; \n
++ * Initializes all devices in the cm_device_addresses table.
++ */
++extern RETURN_CODE cm_Init (void);
++
++/** \brief Writes data into the (previously set) user zone
++ *
++ * This function is the main memory write function, and will automatically
++ * include encryption or anti-tearing (if enabled).
++ *
++ * \param ucDevAddr - Device address (a nibble) corresponding to the default
++ * value (0xb) or the device configuration register lower nibble.
++ * \param uiCryptoAddr - 2 byte address within the zone to write
++ * \param pucBuffer - pointer to the buffer with the write data
++ * \param ucCount - how many bytes to write
++ *
++ * \return Returns the results of ll_SendCommand() and ll_SendData().
++ *
++ * \remarks Example: ucReturn = cm_WriteUserZone(DEFAULT_ADDRESS, 0, ucData,
++ * 16);\n
++ * Writes 16 bytes from ucData at address 0 to device at DEFAULT_ADDRESS.\n
++ * Return SUCCESS or the result of ll_SendCommand() or
++ * ll_SendData().
++ */
++extern RETURN_CODE cm_WriteUserZone(uchar ucDevAddr, uint uiCryptoAddr, \
++ puchar pucBuffer, uchar ucCount);
++
++/** \brief Reads data from the (previously set) user zone
++ *
++ * This function is the main memory read function, and will automatically
++ * include encryption (if enabled).
++ *
++ * \param ucDevAddr - Device address (a nibble) corresponding to the default
++ * value (0xb) or the device configuration register lower nibble.
++ * \param uiCryptoAddr - 2 byte address within the zone to read
++ * \param pucBuffer - pointer to a buffer to receive data
++ * \param ucCount - the number of bytes to read
++ *
++ * \return Returns the results of ll_SendCommand() and ll_ReceiveData().
++ *
++ * \remarks Example: ucReturn = cm_ReadUserZone(DEFAULT_ADDRESS, 0, ucData, 16);\n
++ * Reads 16 bytes into ucData from address 0 in device at DEFAULT_ADDRESS.\n
++ * Return SUCCESS or the result of ll_SendCommand() or
++ * ll_ReceiveData().
++ */
++extern RETURN_CODE cm_ReadUserZone(uchar ucDevAddr, uint uiCryptoAddr, \
++ puchar pucBuffer, uchar ucCount);
++
++/** \brief Write data into the Configuration Memory
++ *
++ * The input parameters determine which device address to write, which
++ * starting address in the configuration memory to write to, how many
++ * bytes to write, where the data to write is, and whether to use
++ * the anti-tearing option.
++ *
++ * \param ucDevAddr- Device Address (a nibble) corresponding to the
++ * default value (0xb) or the device configuration register lower
++ * nibble.
++ * \param ucCryptoAddr - Configuration Memory address - see the Configuration
++ * Memory map for the specific CryptoMemory Device to determine the address
++ * of the appropriate parameter.
++ * \param pucBuffer - Pointer to buffer containing write data.
++ * \param ucCount - the number of bytes to write
++ * \param ucAntiTearing - antitearing flag. If TRUE, anti-tearing is
++ * enabled. Anti-tearing should not be used unless required, as it
++ * causes more write cycles than necessary.
++ *
++ * \return Return value of ll_SendCommand() or ll_SendData().
++ *
++ * \remarks
++ * Example: \n
++ * ucReturn = cm_WriteConfigZone(DEFAULT_ADDRESS, 0x0A, ucData, 2, FALSE);\n
++ * Writes 2 bytes from ucData at CryptoMemory address 0x0A to the CryptoMemory
++ * device at DEFAULT_ADDRESS (0xb).
++ * Anti-tearing is not enabled. \n
++ * Return SUCCESS or the result of ll_SendCommand() or
++ * ll_SendData().
++ *
++ */
++extern RETURN_CODE cm_WriteConfigZone(uchar ucDevAddr, uchar ucCryptoAddr, \
++ puchar pucBuffer, uchar ucCount, \
++ uchar ucAntiTearing);
++
++/** \brief Writes Fuse Byte to the specified device address
++ *
++ * Fuse values are (in bit order from 3 to 0):
++ * - SEC (blown by Atmel before shipment, locks Lot History Code)
++ * - FAB (locks Answer to Reset and Fab Code)
++ * - CMA (locks Card Manufacturer Code)
++ * - PER (locks the remaining portions of the System Zone)
++ *
++ * \param ucDevAddr - Device Address (a nibble) corresponding to the
++ * default value (0xb) or the device configuration register lower
++ * nibble.
++ * \param ucFuze - A byte holding the fuse data
++ * \return SUCCESS or ll_SendCommand() result.
++ *
++ * \remarks Example: ucReturn = WriteFuse(DEFAULT_ADDRESS, ucData);\n
++ * Writes fuse data in ucData to device at DEFAULT_ADDRESS.
++ * Return SUCCESS or the result of ll_SendCommand()
++ */
++extern RETURN_CODE cm_WriteFuse(uchar ucDevAddr, uchar ucFuze);
++
++/** \brief System Write to set the user zone for following commands
++ *
++ * When reading or writing the main EEPROM memory of the CryptoMemory device,
++ * the supplied address refers to an offset within a user zone (refer to
++ * the User Zone map for the specific CryptoMemory Device to determine the
++ * number of zones and zone size.) This function sets the user zone.
++ *
++ * \param ucDevAddr - Device address (a nibble) corresponding to the default
++ * value (0xb) or the device configuration register lower nibble.
++ * \param ucZoneNumber - user zone number to set
++ * \param ucAntiTearing - antitearing flag. If TRUE, anti-tearing is enabled.
++ * Anti-tearing should not be used unless required, as it causes more write
++ * cycles than necessary.
++ *
++ * \return Result of ll_SendCommand().
++ *
++ * \remarks Example: ucReturn = cm_SetUserZone(DEFAULT_ADDRESS, 3, FALSE);\n
++ * Sets the device at the default address (0xb) to user zone 3; anti-tearing
++ * is not enabled.
++ * Return SUCCESS or the result of ll_SendCommand()
++ */
++extern RETURN_CODE cm_SetUserZone(uchar ucDevAddr, uchar ucZoneNumber, \
++ uchar ucAntiTearing);
++
++/** \brief Read data from the Configuration Zone
++ *
++ * The input parameters determine which device address to read, which
++ * starting address in the configuration zone to read from, how many
++ * bytes to read, and where to place the returned data.
++ *
++ * \param ucDevAddr - Device Address (a nibble) corresponding to the
++ * default value (0xb) or the device configuration register lower
++ * nibble.
++ * \param ucCryptoAddr - Configuration Zone address - see the Configuration
++ * Zone map for the specific CryptoMemory Device to determine the address
++ * of the appropriate parameter.
++ * \param pucBuffer - Pointer to buffer to contain returned data,
++ * which must be large enough to hold ucCount bytes.
++ * \param ucCount - the number of bytes to read
++ * \return SUCCESS or the result of ll_SendCommand() or ll_ReceiveData()
++ *
++ * \remarks
++ * Example: ucReturn = cm_ReadConfigZone(DEFAULT_ADDRESS, 0x0A, ucData, 2);\n
++ * Reads 2 bytes at address 0x0A from the DEFAULT_ADDRESS (0xb) into ucData.\n
++ * Return SUCCESS or the result of ll_SendCommand() or
++ * ll_ReceiveData().
++ */
++extern RETURN_CODE cm_ReadConfigZone(uchar ucDevAddr, uchar ucCryptoAddr, \
++ puchar pucBuffer, uchar ucCount);
++
++/** \brief Read Fuse Byte from the device specified by ucDevAddr
++ *
++ * Fuse values are (in bit order from 3 to 0):
++ * - SEC (blown by Atmel before shipment, locks Lot History Code)
++ * - FAB (locks Answer to Reset and Fab Code)
++ * - CMA (locks Card Manufacturer Code)
++ * - PER (locks the remaining portions of the Configuration Zone)
++ *
++ * \param ucDevAddr - Device Address (a nibble) corresponding to the
++ * default value (0xb) or the device configuration register lower
++ * nibble.
++ * \param pucFuze - A pointer to a byte to hold the fuse data
++ * \return SUCCESS or ll_SendCommand() or ll_ReceiveData() result.
++ *
++ * \remarks Example: ucReturn = ReadFuse(DEFAULT_ADDRESS, ucData);\n
++ * Reads fuse data from device at DEFAULT_ADDRESS into
++ * ucData.
++ * Return SUCCESS or the result of ll_SendCommand() or
++ * ll_ReceiveData().
++ */
++extern RETURN_CODE cm_ReadFuse(uchar ucDevAddr, puchar pucFuze);
++
++/** \brief Read Checksum
++ *
++ * If the UCR bit in the Device Configuration Register is 1, the cryptographic
++ * engine will be reset. If UCR = 0, it will not be reset.\n
++ * This function provides a method to check on the synchronicity of the host
++ * and device cryptoengines without affecting the attempts counters.
++ *
++ * \param ucDevAddr - Device Address (a nibble) corresponding to the
++ * default value (0xb) or the device configuration register lower
++ * nibble.
++ * \param pucChkSum - pointer to 2 bytes to store calculated CheckSum
++ * \return SUCCESS or the results of ll_SendCommand() or ll_ReceiveData().
++ *
++ * \remarks Example: ucReturn = cm_ReadChecksum(DEFAULT_ADDRESS, ucData);\n
++ * Reads the checksum value into ucData for the device at
++ * DEFAULT_ADDRESS.
++ * Return SUCCESS or the result of ll_SendCommand() or or
++ * ll_ReceiveData().
++ */
++extern RETURN_CODE cm_ReadChecksum(uchar ucDevAddr, puchar pucChkSum);
++
++/** \brief Send checksum.
++ *
++ * If device is in authentication mode, any user zone write must be followed
++ * with a cm_SendChecksum command with the proper checksum. Otherwise the
++ * device will not complete the write. An invalid checksum will also clear
++ * authentication.
++ *
++ * \param ucDevAddr - Device Address (a nibble) corresponding to the
++ * default value (0xb) or the device configuration register lower
++ * nibble.
++ * \param pucChkSum - pointer to 2 byte array holding checksum.
++ * Always pass NULL so that function will calculate the appropriate checksum.
++ *
++ * \return Results of ll_SendCommand() or ll_SendData()
++ *
++ * \remarks Example: ucReturn = cm_SendChecksum(DEFAULT_ADDRESS, NULL);\n
++ * Sends the correct checksum to the device at the DEFAULT_ADDRESS.
++ * Return SUCCESS or the result of ll_SendCommand() or or
++ * ll_SendData().
++ */
++extern RETURN_CODE cm_SendChecksum(uchar ucDevAddr, puchar pucChkSum);
++
++/** \brief This routine activates Authentication and (optionally)
++ * Encryption modes.
++ *
++ * When called the function:
++ * - reads the current cryptogram (C<SUB>i</SUB>) of the specified key set,
++ * \if CMC_DOXY
++ * - computes the next cryptogram (C<SUP>A</SUP>) based on the secret
++ * KID pucKey (KID) and the random number (Q).
++ * \else
++ * - computes the next cryptogram (C<SUP>A</SUP>) based on the secret
++ * seed pucKey (G) and the random number (Q).
++ * \endif
++ * - sends the (CH<SUP>A</SUP>) (crypto challenge) and the random number to the
++ * CryptoMemory device,
++ * - Reads the chip's newly calculated cryptogram (C<SUB>i</SUB><SUP>A</SUP>)
++ * and compares it with C<SUP>A</SUP>.
++ *
++ * If C<SUP>A</SUP> matches C<SUB>i</SUB><SUP>A</SUP> then
++ * authentication is successful AND:
++ * - both host (function) and device save the new Cryptogram and
++ * calculate new Session Keys.
++ *
++ * In addition, if ucEncrypt is TRUE the function, using the new Session Key
++ * and a new random number
++ * - computes a new challenge (CH<SUP>E</SUP>), a new cryptogram
++ * (C<SUP>E</SUP>) and a new Session Key (S<SUP>E</SUP>),
++ * - sends the challenge (CH<SUP>E</SUP>) and random number (Q) to the
++ * CryptoMemory device,
++ * - reads the device's newly calculated cryptogram (C<SUB>i</SUB><SUP>E</SUP>)
++ * and compares it with C<SUP>E</SUP>.
++ *
++ * If the two match then encryption is activated.
++ *
++ * \param ucDevAddr - Device Address (a nibble) corresponding to the
++ * default value (0xb) or the device configuration register lower
++ * nibble.
++ * \if CMC_DOXY
++ * \param ucKeySet - index number of the current key set to be used for
++ * authentication / encryption. Upper nible is contained F index and lower
++ * is contained G index.
++ * \param pucBuff1 - pointer to 16 bytes Secret KID.
++ * \param pucBuff2 - pointer to 8 bytes uniqui serial or
++ * identification number of CM.
++ * \else
++ * \param ucKeySet - index number of the current key set to be used for
++ * authentication / encryption. Upper nible is ignored and
++ * lower is contained G index.
++ * \param pucBuff1 - pointer to the Secret Seed (G) associated
++ * with this key set.
++ * \param pucBuff2 - random number. If NULL, the function will
++ * calculate new random numbers for both actions.)
++ * \endif
++ * \param ucEncrypt - if TRUE command the device to enter encryption mode also
++ * (with the same key set).
++ *
++ * \return SUCCESS or the results of ll_SendCommand(), ll_ReceiveData()
++ * or ll_SendData() result.
++ *
++ * \remarks Example: \n
++ * ucReturn = cm_VerifyCrypto(DEFAULT_ADDRESS, 1, ucData, NULL, TRUE);\n
++ * Enter authentication mode with key set 1, secret seed in ucData,
++ * calculate a random number for the user, and enter the encryption mode.\n
++ * Return SUCCESS or the result of ll_SendCommand() or
++ * ll_SendData() or ll_ReceiveData().
++ */
++extern RETURN_CODE cm_VerifyCrypto(uchar ucDevAddr, uchar ucKeySet, \
++ puchar pucBuff1, puchar pucBuff2, \
++ uchar ucEncrypt);
++
++/** \brief This routine reset active password
++ *
++ * When called the function:
++ * - sends the Verify Password Command with the second byte set to 0xFF.
++ *
++ * \param ucDevAddr - Device Address (a nibble) corresponding to the
++ * default value (0xb) or the device configuration register lower
++ * nibble.
++ *
++ * \return SUCCESS or the results of ll_SendCommand() or ll_SendData().
++ *
++ * \remarks Example: \n
++ * ucReturn = cm_ResetPassword(DEFAULT_ADDRESS);\n
++ * Reset active password for device at address
++ * DEFAULT_ADDRESS.
++ * Return SUCCESS or the result of ll_SendCommand() or or
++ * ll_SendData().
++ */
++extern RETURN_CODE cm_ResetPassword(uchar ucDevAddr);
++
++/** \brief This routine reset authentication and encryption
++ * and resets the cryptoengine.
++ *
++ * When called the function:
++ * - sends the Verify Crypto Command with no arguments and
++ * - Resets the CryptoEngine in firmware.
++ *
++ * \param ucDevAddr - Device Address (a nibble) corresponding to the
++ * default value (0xb) or the device configuration register lower
++ * nibble.
++ *
++ * \return SUCCESS or the results of ll_SendCommand() or ll_SendData().
++ *
++ * \remarks Example: \n
++ * ucReturn = cm_ResetCrypto(DEFAULT_ADDRESS);\n
++ * Leave authentication and encryption mode for device at address
++ * DEFAULT_ADDRESS.
++ * Return SUCCESS or the result of ll_SendCommand() or or
++ * ll_SendData().
++ */
++extern RETURN_CODE cm_ResetCrypto(uchar ucDevAddr);
++
++/** \brief Verifies Password.
++ *
++ * Using the verify password command, send either the "write" or "read"
++ * password to the appropriate address. Then read the password location
++ * in the config zone and see if the password attempts counter = 0xff
++ * (passed).\n
++ * If Authentication mode is active, then this function encrypts passwords
++ * automatically.
++ *
++ * \param ucDevAddr - Device Address (a nibble) corresponding to the
++ * default value (0xb) or the device configuration register lower
++ * nibble.
++ * \if CMC_DOXY
++ * \param pucPassword - pointer to password to verify and only valid if authentication
++ * is not required.
++ * \param ucSet - index number of the password set
++ * system with Companion devie: bit 0-3: CM password index
++ * bit 4-7: companion pwd index.
++ * \else
++ * \param pucPassword - pointer to password to verify.
++ * \param ucSet - index number of the password set
++ * system without Companion device, bit 0-3: CM password index
++ * bit 4-7 are ignore.
++ * system with Companion devie: bit 0-3: CM password index
++ * bit 4-7: companion pwd index.
++ * \endif
++ * \param ucRW - whether it's the read or write password. Read = 1, Write = 0.
++ *
++ * \return SUCCESS or the results of ll_SendCommand() or ll_SendData() or
++ * ll_ReceiveData()
++ *
++ * \remarks
++ * Example: ucReturn = cm_VerifyPassword(DEFAULT_ADDRESS, ucData, 7, 0);\n
++ * Verify the write password number 7 at the DEFAULT_ADDRESS.\n
++ * Return SUCCESS or the result of ll_SendCommand() or
++ * ll_SendData() or ll_ReceiveData().
++ */
++extern RETURN_CODE cm_VerifyPassword(uchar ucDevAddr, puchar pucPassword, \
++ uchar ucSet, uchar ucRW);
++
++#ifdef CMC
++/*
++****************************************************
++* CryptoMemory Companion (CMC) Function Prototypes
++****************************************************
++*/
++
++/**\if CMC_DOXY
++ * \brief Verifies System Digest
++ *
++ * If Mode bit 0 = 0, simply verifies that *pucDigest matches FlashDigest.
++ * If Mode bit 0 = 1, verifies that SHA-1(Digest, FlashDigest) = *pucSignature.
++ *
++ * \param ucCmcDevAddr - CMC device address
++ * \param pucExtDigest - pointer to 20 bytes of external Digest
++ * \param pucIntDigest - pointer to 20 bytes of internal EEPROM Flash Digest.
++ *
++ * \return SUCCESS or the result of cmc_Status()
++ * \endif
++ */
++extern RETURN_CODE cmc_VerifyFlash(uchar ucCmcDevAddr, puchar pucExtDigest, \
++ puchar pucIntDigest);
++
++/** \if CMC_DOXY
++ * \brief Start Challenge
++ *
++ * This API will use to verify the mutually authenticate between system processor and
++ * compnaion device. If either CMC or System secret seeds is not the same as in EEPROM,
++ * then CMC will return FAIL. If both secret seeds are the same as in EEPROM, CMC will
++ * return SUCCESS.
++ *
++ * \param ucCmcDevAddr - CMC device address
++ * \param pucCmcChallenge - pointer to 20 bytes of CMC Challenge
++ * \param pucCmcSeed - pointer to 16 bytes of CMC secret seed. This CMC secret seed bytes
++ * must be the same as CMCSeed in EEPROM
++ * \param pucSystemSeed - pointer to 16 bytes of System secret seed. This System secret
++ * seed bytes must be the same as SystemSeed in EEPROM.
++ *
++ * \return SUCCESS or the result of cmc_Status()
++ * \endif
++ */
++extern RETURN_CODE cmc_StartChallenge(uchar ucCmcDevAddr, puchar pucCmcChallenge, \
++ puchar pucCmcSeed, puchar pucSystemSeed);
++
++/** \if CMC_DOXY
++ * \brief Gets a 20 byte random number from the Companion Chip
++ *
++ * \param ucCmcDevAddr - CMC device address
++ * \param pucData - pointer to returned 20 byte random number.
++ *
++ * \return SUCCESS or the result of cmc_Status()
++ * \endif
++ */
++extern RETURN_CODE cmc_GetRandom(uchar ucCmcDevAddr, puchar pucData) ;
++
++/** \if CMC_DOXY
++ * \brief Increments the value of the specified counter by 1
++ *
++ * \param ucCmcDevAddr - CMC device address
++ * \param ucSelector - Counter to increment (0 - 3).
++ *
++ * \return SUCCESS or the result of cmc_Status()
++ * \endif
++ */
++extern RETURN_CODE cmc_IncrementCounter(uchar ucCmcDevAddr, uchar ucSelector) ;
++
++/** \if CMC_DOXY
++ * \brief Returns the least 32 bits of the specified counter.
++ *
++ * \param ucCmcDevAddr - CMC device address
++ * \param ucSelector - Counter to read (0 - 3).
++ * \param pucData - pointer to least significant 4 bytes of counter data.
++ *
++ * \return SUCCESS or the result of cmc_Status()
++ * \endif
++ */
++extern RETURN_CODE cmc_ReadCounter(uchar ucCmcDevAddr, uchar ucSelector, \
++ puchar pucData) ;
++
++/** \if CMC_DOXY
++ * \brief Writes the contents of the specified address.
++ *
++ * Writes up to the end of the read/write memory space.
++ * After locking, only the read/write space can be written.
++ * Up to 16 bytes may be written with a single operation
++ *
++ * \param ucCmcDevAddr - CMC device address
++ * \param uiAddress - Address of first byte to write. 7 most sig. bits ignored.
++ * \param ucCount - Write ucCount bytes to EEPROM (data
++ * follows).
++ * \param pucData - pointer to clear text data to write.
++ *
++ * \return SUCCESS or the result of cmc_Status()
++ * \endif
++ */
++extern RETURN_CODE cmc_WriteMemory(uchar ucCmcDevAddr, uint uiAddress, \
++ uchar ucCount, puchar pucData) ;
++
++/** \if CMC_DOXY
++ * \brief Authorize to writes a single byte in the first 16
++ * bytes of the ReadOnly section at the specified address.
++ *
++ * Address must point to one of the first 16 bytes within the ReadOnly
++ * section of memory. This command only works if Mode:Bit2 = 1.
++ * Only one byte may be written with a each operation
++ *
++ * \param ucCmcDevAddr - CMC ddevice address
++ * \param uiAddress - Address of byte to write. 7 most sig. bits ignored.
++ * \param ucData - clear text data to write.
++ * \param pucF0 - pointer to buffer that contained 8 bytes
++ * of F0
++ * \return SUCCESS or the result of cmc_Status()
++ * \endif
++ */
++extern RETURN_CODE cmc_WriteMemoryAuthorized(uchar ucCmcDevAddr, uint uiAddress, \
++ uchar ucData, puchar pucF0) ;
++
++/** \if CMC_DOXY
++ * \brief Writes 16 byte page of EEPROM with encryption.
++ *
++ * Writes 16 byte pages up to the end of the read/write memory space.
++ * Uses the SHA-1 of (Address || EncKey || Nonce).
++ * Smaller blocks than 16 bytes cannot be written with this command.
++ * Cannot be executed after Companion Chip is locked.
++ *
++ * \param ucCmcDevAddr - CMC ddevice address
++ * \param uiAddress - Address of the 16 byte page to write. 7 most significant
++ * and 4 least significant bits ignored.
++ * \param pucData - pointer to 16 bytes of clear data to write.
++ * \param pucNonce - Random value encryption seed.
++ *
++ * \return SUCCESS or the result of cmc_Status()
++ * \endif
++ */
++extern RETURN_CODE cmc_WriteMemoryEncrypted(uchar ucCmcDevAddr, uint uiAddress, \
++ puchar pucData, puchar pucNonce) ;
++
++/** \if CMC_DOXY
++ * \brief Read the contents of the specified address.
++ *
++ * Reads up to the end of the read/write memory space.
++ * After locking, only the read only and the read/write space can be read.
++ * Up to 16 bytes may be read with a single operation
++ *
++ * \param ucCmcDevAddr - CMC ddevice address
++ * \param uiAddress - Address of first byte to read. 7 most sig. bits ignored.
++ * \param ucCount - Read ucCount+1 bytes from EEPROM.
++ * \param pucData - pointer to clear text data read from Companion Chip.
++ *
++ * \return SUCCESS or the result of cmc_Status()
++ * \endif
++ */
++extern RETURN_CODE cmc_ReadMemory(uchar ucCmcDevAddr, uint uiAddress, \
++ uchar ucCount, puchar pucData) ;
++
++/** \if CMC_DOXY
++ * \brief Read the specified 32 byte block and computes the
++ * SHA-1 digest.
++ *
++ * Provides a mechanism of verifying that the personalization of the chip
++ * completed correctly before locked.
++ * Note that verifying the digest of 0 requires knowing EncKey.
++ * Cannot be executed after Companion Chip is locked.
++ *
++ * \param ucCmcDevAddr - CMC ddevice address
++ * \param uiAddress - Address of the 32 byte page to read. 7 most significant
++ * and 5 least significant bits ignored.
++ * \param pucData - pointer to 20 byte digest
++ *
++ * \return SUCCESS or the result of cmc_Status()
++ * \endif
++ */
++extern RETURN_CODE cmc_ReadMemoryDigest(uchar ucCmcDevAddr, uint uiAddress, \
++ puchar pucData) ;
++
++/** \if CMC_DOXY
++ * \brief Read the contents of the Manufacturing ID and Lock
++ * Byte.
++ *
++ * \param ucCmcDevAddr - CMC ddevice address
++ *
++ * \param pucData - pointer to 16 byte Manufacturing ID and Lock Byte.
++ *
++ * \return SUCCESS or the result of cmc_Status()
++ * \endif
++ */
++extern RETURN_CODE cmc_ReadManufID(uchar ucCmcDevAddr, puchar pucData) ;
++
++/** \if CMC_DOXY
++ * \brief Lock the current memory values.
++ *
++ * \param ucCmcDevAddr - CMC ddevice address.
++ *
++ * \return SUCCESS or the result of cmc_Status()
++ * \endif
++ */
++extern RETURN_CODE cmc_Lock(uchar ucCmcDevAddr) ;
++
++/** \if CMC_DOXY
++ * \brief Returns the status byte from a CMC device.
++ *
++ * \param ucCmcDevAddr - CMC ddevice address
++ *
++ * \return uchar - status from a CMC device
++ * \endif
++*/
++extern uchar cmc_Status(uchar ucCmcDevAddr) ;
++
++#endif /* CMC */
++
++/**
++ * \brief Send command bytes to a device.
++ *
++ * This routine is external reference by library
++ *
++ * \param pucInsBuf - pointer to buffer of command bytes to
++ * send.
++ * \param ucLen - number of command bytes to send.
++ *
++ * \return SUCCESS or the result of cmc_Status()
++ */
++extern RETURN_CODE ll_SendCommand(puchar pucInsBuf, uchar ucLen);
++
++/** \if CMC_DOXY
++ * \brief Receive data bytes from a CMC device.
++ *
++ * This routine is external reference by library.
++ *
++ * \param pucRecBuf - pointer to buffer of receving data bytes
++ * \param ucLen - number of data bytes to receive
++ *
++ * \return SUCCESS or the result of cmc_Status()
++ * \endif
++ */
++#ifdef CMC
++extern RETURN_CODE ll_CmcReceiveData(puchar pucRecBuf, uchar ucLen);
++#endif
++
++/** \brief Receive data bytes from a CM device.
++ *
++ * This routine is external reference by library.
++ *
++ * \param pucRecBuf - pointer to buffer of receving data bytes
++ * \param ucLen - number of data bytes to receive
++ *
++ * \return SUCCESS or the result of cmc_Status()
++ */
++extern RETURN_CODE ll_ReceiveData(puchar pucRecBuf, uchar ucLen);
++
++/** \brief Send data bytes to a device.
++ *
++ * This routine is external reference by library.
++ *
++ * \param pucSendBuf - pointer to buffer of data bytes to send
++ * \param ucLen - number of data bytes to send
++ *
++ * \return SUCCESS or the result of cmc_Status()
++ */
++extern RETURN_CODE ll_SendData(puchar pucSendBuf, uchar ucLen);
++
++/**
++ * \brief Wait for number of clock ticks
++ * This routine is external reference by library.
++ *
++ * \param ucLoop - number of (Start + 15 clocks + Stop) to loop
++ */
++extern void ll_WaitClock(uchar ucLoop);
++
++/**
++ * \brief Copy number of bytes from source to destination
++ * locations.
++ *
++ * This routine is external reference by library.
++ *
++ * \param pucDestMem - destination buffer
++ * \param pucSrcMem - source buffer
++ * \param uiCnt - number of bytes to copy
++ */
++extern void lib_memcpy(puchar pucDestMem, puchar pucSrcMem, uint uiCnt);
++
++/**
++ * \brief Compare two strings.
++ *
++ * This routine is external reference by library.
++ *
++ * \param pucMem1 - string 1 buffer
++ * \param pucMem2 - string 2 buffer
++ * \param uiCnt - number of bytes to compare
++ */
++extern uchar lib_memcmp(puchar pucMem1, puchar pucMem2, uint uiCnt);
++
++/**
++ * \brief Allocate memory from memory pool.
++ *
++ * This routine is external reference by library.
++ *
++ * \param ucBytes - number of bytes to allocate
++ *
++ * \return puchar - pointer to allocated buffer
++ *
++ */
++extern puchar lib_malloc(uchar ucBytes);
++
++/** \brief Deallocate memory back to memory pool.
++ *
++ * This routine is external reference by library.
++ *
++ * \param pucBuff - pointer to deallocated buffer
++ */
++extern void lib_free(puchar pucBuff);
++
++/** \brief Get random byte.
++ *
++ * This routine is external reference by library.
++ *
++ * \return uchar - random byte
++ */
++extern uchar lib_rand(void);
++
++/** \brief Get CM device address based from device index.
++ *
++ * This routine is external reference by library.
++ *
++ * \param ucIndex - CM device index
++ *
++ * \return uchar - CM device address
++ */
++extern uchar getCMDevAddr(uchar ucIndex);
++
++/** \brief Get CM device index based from device address.
++ *
++ * This routine is external reference by library.
++ *
++ * \param ucCmDevAddr - CM device address
++ *
++ * \return uchar - CM device index
++ */
++extern uchar cm_FindDeviceIndex(uchar ucCmDevAddr);
++
++/** \brief Get CM device type based from device index.
++ *
++ * This routine is external reference by library.
++ *
++ * \param ucIndex - CM device index
++ *
++ * \return CM_DEVICE_TYPE - CM device type
++ */
++extern CM_DEVICE_TYPE getCMDevType(uchar ucIndex);
++
++/** \brief Get number CM device.
++ *
++ * This routine is external reference by library.
++ *
++ * \return uchar - number of CM devices
++ */
++extern uchar getNumCmDev(void);
++
++
++/** \brief Get library version number.
++ *
++ * \return puchar - pointer to string of characters
++ */
++extern puchar getLibVersNum(void);
++
++#ifdef CMC
++
++/** \if CMC_DOXY
++ * \brief Wait for BUSY bit from CMC status to CLEAR.
++ *
++ * This routine is external reference by library.
++ *
++ * \param ucCmcDevAddr - CMC device address
++ *
++ * \return SUCCESS or the result of cmc_Status()
++ * \endif
++ */
++extern uchar WaitForNotBusy(uchar ucCmcDevAddr);
++
++/** \if CMC_DOXY
++ * \brief Wait for DATA bit from CMC status to SET.
++ *
++ * This routine is external reference by library.
++ *
++ * \param ucCmcDevAddr - CMC device address
++ *
++ * \return SUCCESS or the result of cmc_Status()
++ * \endif
++ */
++extern uchar WaitForData(uchar ucCmcDevAddr);
++
++/** \brief Wait for STARTUPDONE bit from CMC status to SET.
++ *
++ * This routine is external reference by library.
++ *
++ * \param ucCmcDevAddr - CMC device address
++ *
++ * \return SUCCESS or the result of cmc_Status()
++ */
++extern uchar WaitForStartupDone(uchar ucCmcDevAddr);
++
++/** \if CMC_DOXY
++ * \brief Get CMC device index based from device address.
++ *
++ * This routine is external reference by library.
++ *
++ * \param ucCmcDevAddr - CMC device address
++ *
++ * \return uchar - CMC device index
++ * \endif
++ */
++extern uchar cmc_FindDeviceIndex(uchar ucCmcDevAddr);
++
++/** \if CMC_DOXY
++ * \brief Get CMC device address based from device index.
++ *
++ * This routine is external reference by library.
++ *
++ * \param ucIndex - CMC device index
++ *
++ * \return uchar - CMC Cdevice address
++ * \endif
++ */
++extern uchar getCMCDevAddr(uchar ucIndex);
++
++
++/** \if CMC_DOXY
++ * \brief Reset CMC device.
++ *
++ * This routine is external reference by library.
++ * \endif
++ */
++extern void cmc_Reset(void);
++
++/** \if CMC_DOXY
++ * \brief SHA-1 processing
++ *
++ * \param pucChallenge - First input to SHA-1 algorithm
++ * \param ucLen - Length of pucChallenge
++ * \param pucResponse - Output from SHA-1 algorithm
++ * \endif
++ */
++extern void cmc_SHA1(puchar pucInData, uchar ucLen, puchar pucOutData);
++#endif
++
++#endif
++
+diff --git a/drivers/misc/smartq5_encrypt/smartq5_encrypt.c b/drivers/misc/smartq5_encrypt/smartq5_encrypt.c
+new file mode 100644
+index 0000000..3626fa7
+--- /dev/null
++++ b/drivers/misc/smartq5_encrypt/smartq5_encrypt.c
+@@ -0,0 +1,117 @@
++/****************************************************************
++ * $ID: smartq5_encrypt.c Sun, 22 Mar 2009 15:48:25 +0800 root $ *
++ * *
++ * Description: *
++ * *
++ * Maintainer: (Meihui Fan) <mhfan@hhcn.com> *
++ * *
++ * Copyright (C) 2009 HHTech *
++ * www.hhcn.com, www.hhcn.org *
++ * All rights reserved. *
++ * *
++ * This file is free software; *
++ * you are free to modify and/or redistribute it *
++ * under the terms of the GNU General Public Licence (GPL). *
++ * *
++ * Last modified: Wed, 25 Mar 2009 15:38:46 +0800 by root #
++ ****************************************************************/
++#include <linux/module.h>
++#include <linux/poll.h>
++#include <linux/slab.h>
++#include <linux/proc_fs.h>
++#include <linux/miscdevice.h>
++#include <linux/apm_bios.h>
++#include <linux/capability.h>
++#include <linux/sched.h>
++#include <linux/suspend.h>
++#include <linux/apm-emulation.h>
++#include <linux/freezer.h>
++#include <linux/device.h>
++#include <linux/kernel.h>
++#include <linux/list.h>
++#include <linux/init.h>
++#include <linux/completion.h>
++#include <linux/kthread.h>
++#include <linux/delay.h>
++#include <asm/arch/regs-gpio.h>
++#include <asm-arm/arch-s3c2410/gpio.h>
++#include <asm/system.h>
++
++typedef enum {
++ SCL_HIGH,
++ SCL_LOW,
++ SDA_HIGH,
++ SDA_LOW,
++ SDA_DATA
++} I2C_CMD;
++
++#define GPIO_SCL S3C_GPN0
++#define GPIO_SDA S3C_GPN1
++
++/*
++ * The smartq5_encrypt device is one of the misc char devices.
++ * This is its minor number.
++ */
++#define SMARTQ5_ENCRYPT_DEV_MINOR 234
++
++static int smartq5_encrypt_open(struct inode * inode, struct file * filp)
++{
++ return 0;
++}
++
++static int smartq5_encrypt_ioctl(struct inode * inode, struct file *filp, u_int cmd, u_long arg)
++{
++ int ret = 0;
++ switch (cmd) {
++ case SCL_HIGH:
++ gpio_direction_output(GPIO_SCL, 1);
++ break;
++ case SCL_LOW:
++ gpio_direction_output(GPIO_SCL, 0);
++ break;
++ case SDA_HIGH:
++ gpio_direction_input(GPIO_SDA); // important!
++ break;
++ case SDA_LOW:
++ gpio_direction_output(GPIO_SDA, 0);
++ break;
++ case SDA_DATA:
++ gpio_direction_input(GPIO_SDA);
++ ret = gpio_get_value(GPIO_SDA);
++ break;
++ }
++ return ret;
++}
++
++static struct file_operations smartq5_encrypt_fops = {
++ .owner = THIS_MODULE,
++ .ioctl = smartq5_encrypt_ioctl,
++ .open = smartq5_encrypt_open,
++};
++
++static struct miscdevice smartq5_encrypt_device = {
++ .minor = SMARTQ5_ENCRYPT_DEV_MINOR,
++ .name = "smartq5_encrypt",
++ .fops = &smartq5_encrypt_fops
++};
++
++static int __init smartq5_encrypt_init(void)
++{
++ return misc_register(&smartq5_encrypt_device);
++}
++
++static void __exit smartq5_encrypt_exit(void)
++{
++ misc_deregister(&smartq5_encrypt_device);
++}
++
++module_init(smartq5_encrypt_init);
++module_exit(smartq5_encrypt_exit);
++
++MODULE_AUTHOR("Guoqiang Wang");
++MODULE_DESCRIPTION("Encypt module for SmartQ5");
++MODULE_LICENSE("GPL");
++
++
++/**************** End Of File: smartq5_encrypt.c ****************/
++// vim:sts=4:ts=8:
+diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
+index aeb32a9..2816b81 100644
+--- a/drivers/mmc/card/block.c
++++ b/drivers/mmc/card/block.c
+@@ -424,7 +424,16 @@ static struct mmc_blk_data *mmc_blk_alloc(struct mmc_card *card)
+ struct mmc_blk_data *md;
+ int devidx, ret;
+
++#ifdef CONFIG_MACH_SMDK6410 /* XXX: Make sure inand devidx = 0 */
++ if (card->host->index == 0) {
++ devidx = 0;
++ } else {
++ __set_bit(0, dev_use);
++ devidx = find_first_zero_bit(dev_use, MMC_NUM_MINORS);
++ }
++#else
+ devidx = find_first_zero_bit(dev_use, MMC_NUM_MINORS);
++#endif
+ if (devidx >= MMC_NUM_MINORS)
+ return ERR_PTR(-ENOSPC);
+ __set_bit(devidx, dev_use);
+@@ -470,6 +479,10 @@ static struct mmc_blk_data *mmc_blk_alloc(struct mmc_card *card)
+ md->disk->fops = &mmc_bdops;
+ md->disk->private_data = md;
+ md->disk->queue = md->queue.queue;
++#ifdef CONFIG_MACH_SMDK6410 /* XXX: SD Card removable */
++ if (devidx != 0)
++ md->disk->flags |= GENHD_FL_REMOVABLE;
++#endif
+ md->disk->driverfs_dev = &card->dev;
+
+ /*
+diff --git a/drivers/mmc/core/sdio_cis.c b/drivers/mmc/core/sdio_cis.c
+index d5e51b1..8a92533 100644
+--- a/drivers/mmc/core/sdio_cis.c
++++ b/drivers/mmc/core/sdio_cis.c
+@@ -249,6 +249,10 @@ static int sdio_read_cis(struct mmc_card *card, struct sdio_func *func)
+ printk(KERN_DEBUG
+ "%s: queuing CIS tuple 0x%02x length %u\n",
+ mmc_hostname(card->host), tpl_code, tpl_link);
++ /* HACK: break this loop */
++ ret = -EINVAL;
++ kfree(this);
++ /* END HACK */
+ } else {
+ const struct cis_tpl *tpl = cis_tpl_list + i;
+ if (tpl_link < tpl->min_size) {
+diff --git a/drivers/mmc/host/s3c-hsmmc.c b/drivers/mmc/host/s3c-hsmmc.c
+index 3d8c68e..236878c 100644
+--- a/drivers/mmc/host/s3c-hsmmc.c
++++ b/drivers/mmc/host/s3c-hsmmc.c
+@@ -691,6 +691,7 @@ static irqreturn_t s3c_hsmmc_irq (int irq, void *dev_id)
+ struct s3c_hsmmc_host *host = dev_id;
+ struct mmc_request *mrq;
+ u32 intsts;
++ int cardint = 0;
+
+ #ifdef CONFIG_HSMMC_S3C_IRQ_WORKAROUND
+ uint i, org_irq_sts;
+@@ -802,10 +803,10 @@ static irqreturn_t s3c_hsmmc_irq (int irq, void *dev_id)
+ s3c_hsmmc_finish_command(host);
+ s3c_hsmmc_data_irq(host, intsts & S3C_HSMMC_INT_DATA_MASK);
+ }
+-
+- intsts &= ~(S3C_HSMMC_INT_CMD_MASK | S3C_HSMMC_INT_DATA_MASK);
+ }
+
++ intsts &= ~(S3C_HSMMC_INT_CMD_MASK | S3C_HSMMC_INT_DATA_MASK);
++ intsts &= ~S3C_HSMMC_NIS_ERR;
+ /* XXX: fix later by scsuh */
+ #if 0
+ if (intsts & S3C_HSMMC_INT_BUS_POWER) {
+@@ -815,6 +816,12 @@ static irqreturn_t s3c_hsmmc_irq (int irq, void *dev_id)
+ }
+
+ intsts &= S3C_HSMMC_INT_BUS_POWER;
++#endif
++
++ if (intsts & S3C_HSMMC_INT_CARD_INT) {
++ intsts &= ~S3C_HSMMC_INT_CARD_INT;
++ cardint = 1;
++ }
+
+ if (intsts) {
+ printk(KERN_ERR "%s: Unexpected interrupt 0x%08x.\n",
+@@ -822,7 +829,6 @@ static irqreturn_t s3c_hsmmc_irq (int irq, void *dev_id)
+
+ s3c_hsmmc_writel(intsts, S3C_HSMMC_NORINTSTS);
+ }
+-#endif
+
+ #ifdef CONFIG_HSMMC_S3C_IRQ_WORKAROUND
+ for (i=0; i<0x1000; i++) {
+@@ -838,6 +844,9 @@ insert:
+ out:
+ spin_unlock(&host->lock);
+
++ if (cardint)
++ mmc_signal_sdio_irq(host->mmc);
++
+ return result;
+ }
+
+@@ -868,7 +877,7 @@ static irqreturn_t s3c_hsmmc_irq_cd (int irq, void *dev_id)
+ return IRQ_HANDLED;
+
+
+- tasklet_schedule(&host->card_tasklet);
++ tasklet_schedule(&host->card_tasklet);
+ mmiowb();
+
+ spin_unlock(&host->lock);
+@@ -899,7 +908,8 @@ static void s3c_hsmmc_request (struct mmc_host *mmc, struct mmc_request *mrq)
+
+ host->mrq = mrq;
+
+- if ((s3c_hsmmc_readl(S3C_HSMMC_PRNSTS) & S3C_HSMMC_CARD_PRESENT) || card_detect) {
++ if ((s3c_hsmmc_readl(S3C_HSMMC_PRNSTS) & S3C_HSMMC_CARD_PRESENT) || card_detect
++ || host->plat_data->hwport == 2 || host->plat_data->hwport == 1) {
+ s3c_hsmmc_send_command(host, mrq->cmd);
+ } else {
+ host->mrq->cmd->error = -ENOMEDIUM;
+@@ -1085,9 +1095,41 @@ static void s3c_hsmmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
+ spin_unlock_irqrestore(&host->lock, iflags);
+ }
+
++static void s3c_hsmmc_sdio_irq(struct mmc_host *mmc, int enable)
++{
++ struct s3c_hsmmc_host *host;
++ unsigned long flags;
++ u16 stsen;
++ u16 sigen;
++
++ host = mmc_priv(mmc);
++
++ spin_lock_irqsave(&host->lock, flags);
++
++ stsen = s3c_hsmmc_readw(S3C_HSMMC_NORINTSTSEN);
++ sigen = s3c_hsmmc_readw(S3C_HSMMC_NORINTSIGEN);
++
++ stsen &= ~S3C_HSMMC_INT_CARD_INT;
++ sigen &= ~S3C_HSMMC_INT_CARD_INT;
++
++ if (enable) {
++ s3c_hsmmc_writew(S3C_HSMMC_INT_CARD_INT, S3C_HSMMC_NORINTSTS);
++ stsen |= S3C_HSMMC_INT_CARD_INT;
++ sigen |= S3C_HSMMC_INT_CARD_INT;
++ }
++
++ s3c_hsmmc_writew(stsen, S3C_HSMMC_NORINTSTSEN);
++ s3c_hsmmc_writew(sigen, S3C_HSMMC_NORINTSIGEN);
++
++ mmiowb();
++
++ spin_unlock_irqrestore(&host->lock, flags);
++}
++
+ static struct mmc_host_ops s3c_hsmmc_ops = {
+ .request = s3c_hsmmc_request,
+ .set_ios = s3c_hsmmc_set_ios,
++ .enable_sdio_irq= s3c_hsmmc_sdio_irq,
+ };
+
+ static int s3c_hsmmc_probe (struct platform_device *pdev)
+@@ -1142,6 +1184,7 @@ static int s3c_hsmmc_probe (struct platform_device *pdev)
+ goto untasklet;
+ }
+
++ #if 0
+ /* To detect a card inserted on channel 0, an external interrupt is used. */
+ if ((plat_data->enabled == 1) && (plat_data->hwport == 0)) {
+ host->irq_cd = platform_get_irq(pdev, 1);
+@@ -1156,6 +1199,7 @@ static int s3c_hsmmc_probe (struct platform_device *pdev)
+ set_irq_type(host->irq_cd, IRQT_LOW);
+ #endif
+ }
++ #endif
+
+ host->flags |= S3C_HSMMC_USE_DMA;
+
+@@ -1196,7 +1240,7 @@ static int s3c_hsmmc_probe (struct platform_device *pdev)
+ /* you must make sure that our hsmmc block can support
+ * up to 52MHz. by scsuh
+ */
+- mmc->f_max = 100 * MHZ;
++ mmc->f_max = plat_data->max_clock;
+ mmc->caps = plat_data->host_caps;
+ DBG("mmc->caps: %08x\n", mmc->caps);
+
+@@ -1249,11 +1293,13 @@ static int s3c_hsmmc_probe (struct platform_device *pdev)
+ if (ret)
+ goto untasklet;
+
++ #if 0
+ if ((plat_data->enabled == 1) && (plat_data->hwport == 0)) {
+ ret = request_irq(host->irq_cd, s3c_hsmmc_irq_cd, 0, DRIVER_NAME, host);
+ if (ret)
+ goto untasklet;
+ }
++ #endif
+
+ s3c_hsmmc_ios_init(host);
+
+diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c
+index 3286d2a..aa93ba4 100644
+--- a/drivers/net/dm9000.c
++++ b/drivers/net/dm9000.c
+@@ -112,8 +112,8 @@
+ #define writesw outsw
+ #define writesl outsl
+ #define DM9000_IRQ_FLAGS (IRQF_SHARED | IRQF_TRIGGER_HIGH)
+-#else
+-#define DM9000_IRQ_FLAGS IRQF_SHARED
++#else// XXX: for HHTech platform
++#define DM9000_IRQ_FLAGS (IRQF_SHARED | IRQF_TRIGGER_HIGH)
+ #endif
+
+ /*
+@@ -588,9 +588,12 @@ dm9000_probe(struct platform_device *pdev)
+ ndev->dev_addr[i] = ior(db, i+DM9000_PAR);
+ }
+
+- if (!is_valid_ether_addr(ndev->dev_addr))
+- printk("%s: Invalid ethernet MAC address. Please "
+- "set using ifconfig\n", ndev->name);
++ if (!is_valid_ether_addr(ndev->dev_addr)) {
++ random_ether_addr(ndev->dev_addr);
++
++ //printk("%s: Invalid ethernet MAC address. Please "
++ // "set using ifconfig\n", ndev->name);
++ } else get_random_bytes(&ndev->dev_addr[5], 1);
+
+ platform_set_drvdata(pdev, ndev);
+ ret = register_netdev(ndev);
+diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
+index 2c08c0a..784e6c0 100644
+--- a/drivers/net/wireless/Kconfig
++++ b/drivers/net/wireless/Kconfig
+@@ -295,6 +295,28 @@ config LIBERTAS_DEBUG
+ ---help---
+ Debugging support.
+
++config MARVELL_8686_SDIO
++ tristate "Official driver for Marvell SDIO 8686"
++ depends on WLAN_80211 && MMC
++ select WIRELESS_EXT
++ select IEEE80211
++ select FW_LOADER
++ ---help---
++ Official driver for Marvell 8686 devices.
++
++config MARVELL_8686_PROC_FS
++ bool "Enable proc-fs support for official marvell 8686 module."
++ depends on MARVELL_8686_SDIO
++ ---help---
++ Proc-fs support.
++
++config MARVELL_8686_DEBUG
++ bool "Enable full debugging output in the official marvell 8686 module."
++ depends on MARVELL_8686_SDIO
++ ---help---
++ Debugging support.
++
++
+ config AIRO
+ tristate "Cisco/Aironet 34X/35X/4500/4800 ISA and PCI cards"
+ depends on ISA_DMA_API && WLAN_80211 && (PCI || BROKEN)
+diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile
+index 6f32b53..867b829 100644
+--- a/drivers/net/wireless/Makefile
++++ b/drivers/net/wireless/Makefile
+@@ -47,6 +47,8 @@ obj-$(CONFIG_PCMCIA_WL3501) += wl3501_cs.o
+ obj-$(CONFIG_USB_ZD1201) += zd1201.o
+ obj-$(CONFIG_LIBERTAS) += libertas/
+
++obj-$(CONFIG_MARVELL_8686_SDIO) += marvell8686/
++
+ rtl8187-objs := rtl8187_dev.o rtl8187_rtl8225.o
+ obj-$(CONFIG_RTL8187) += rtl8187.o
+
+diff --git a/drivers/net/wireless/libertas/Makefile b/drivers/net/wireless/libertas/Makefile
+index 0e27876..e4c8cd3 100644
+--- a/drivers/net/wireless/libertas/Makefile
++++ b/drivers/net/wireless/libertas/Makefile
+@@ -2,7 +2,7 @@ libertas-objs := main.o wext.o \
+ rx.o tx.o cmd.o \
+ cmdresp.o scan.o \
+ join.o 11d.o \
+- debugfs.o \
++ ioctl.o debugfs.o \
+ ethtool.o assoc.o
+
+ usb8xxx-objs += if_usb.o
+diff --git a/drivers/net/wireless/libertas/cmd.c b/drivers/net/wireless/libertas/cmd.c
+index be5cfd8..8b2c34c 100644
+--- a/drivers/net/wireless/libertas/cmd.c
++++ b/drivers/net/wireless/libertas/cmd.c
+@@ -1400,6 +1400,12 @@ int libertas_prepare_and_send_command(wlan_private * priv,
+ S_DS_GEN);
+ ret = 0;
+ break;
++ case CMD_802_11_TX_RATE_QUERY:
++ cmdptr->command = cpu_to_le16(CMD_802_11_TX_RATE_QUERY);
++ cmdptr->size = cpu_to_le16(sizeof(struct cmd_tx_rate_query) + S_DS_GEN);
++ adapter->cur_rate = 0;
++ ret = 0;
++ break;
+ default:
+ lbs_deb_host("PREP_CMD: unknown command 0x%04x\n", cmd_no);
+ ret = -1;
+diff --git a/drivers/net/wireless/libertas/cmdresp.c b/drivers/net/wireless/libertas/cmdresp.c
+index 8f90892..a413f88 100644
+--- a/drivers/net/wireless/libertas/cmdresp.c
++++ b/drivers/net/wireless/libertas/cmdresp.c
+@@ -194,6 +194,9 @@ static int wlan_ret_get_hw_spec(wlan_private * priv,
+ lbs_pr_info("unidentified region code; using the default (USA)\n");
+ }
+
++ /* HACK IT MAKE regioncode always equals 0x30 */
++ adapter->regioncode = 0x30;
++
+ if (adapter->current_addr[0] == 0xff)
+ memmove(adapter->current_addr, hwspec->permanentaddr, ETH_ALEN);
+
+@@ -310,7 +313,7 @@ static int wlan_ret_802_11_key_material(wlan_private * priv,
+ lbs_deb_enter(LBS_DEB_CMD);
+
+ /* Copy the returned key to driver private data */
+- if (action == CMD_ACT_GET) {
++ if (action == CMD_ACT_SET) {
+ u8 * buf_ptr = (u8 *) &pkeymaterial->keyParamSet;
+ u8 * resp_end = (u8 *) (resp + le16_to_cpu(resp->size));
+
+diff --git a/drivers/net/wireless/libertas/ioctl.c b/drivers/net/wireless/libertas/ioctl.c
+new file mode 100644
+index 0000000..369ffc4
+--- /dev/null
++++ b/drivers/net/wireless/libertas/ioctl.c
+@@ -0,0 +1,1046 @@
++/**
++ * This file contains ioctl functions
++ */
++
++#include <linux/ctype.h>
++#include <linux/delay.h>
++#include <linux/if.h>
++#include <linux/if_arp.h>
++#include <linux/wireless.h>
++
++#include <net/iw_handler.h>
++#include <net/ieee80211.h>
++
++#include "host.h"
++#include "radiotap.h"
++#include "decl.h"
++#include "defs.h"
++#include "dev.h"
++#include "join.h"
++#include "wext.h"
++
++#define MAX_SCAN_CELL_SIZE (IW_EV_ADDR_LEN + \
++ IW_ESSID_MAX_SIZE + \
++ IW_EV_UINT_LEN + IW_EV_FREQ_LEN + \
++ IW_EV_QUAL_LEN + IW_ESSID_MAX_SIZE + \
++ IW_EV_PARAM_LEN + 40) /* 40 for WPAIE */
++
++#define WAIT_FOR_SCAN_RRESULT_MAX_TIME (10 * HZ)
++
++#define ENTER()
++#define LEAVE()
++#define lbs_pr_debug lbs_deb_ioctl
++
++static int wlan_set_region(wlan_private * priv, u16 region_code)
++{
++ int i;
++
++ for (i = 0; i < MRVDRV_MAX_REGION_CODE; i++) {
++ // use the region code to search for the index
++ if (region_code == libertas_region_code_to_index[i]) {
++ //priv->adapter->regiontableindex = (u16) i;
++ priv->adapter->regioncode = region_code;
++ break;
++ }
++ }
++
++ // if it's unidentified region code
++ if (i >= MRVDRV_MAX_REGION_CODE) {
++ lbs_pr_debug(1, "region Code not identified\n");
++ LEAVE();
++ return -1;
++ }
++
++ if (libertas_set_regiontable(priv, priv->adapter->regioncode, 0)) {
++ LEAVE();
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++static inline int hex2int(char c)
++{
++ if (c >= '0' && c <= '9')
++ return (c - '0');
++ if (c >= 'a' && c <= 'f')
++ return (c - 'a' + 10);
++ if (c >= 'A' && c <= 'F')
++ return (c - 'A' + 10);
++ return -1;
++}
++
++/* Convert a string representation of a MAC address ("xx:xx:xx:xx:xx:xx")
++ into binary format (6 bytes).
++
++ This function expects that each byte is represented with 2 characters
++ (e.g., 11:2:11:11:11:11 is invalid)
++
++ */
++static char *eth_str2addr(char *ethstr, u8 * addr)
++{
++ int i, val, val2;
++ char *pos = ethstr;
++
++ /* get rid of initial blanks */
++ while (*pos == ' ' || *pos == '\t')
++ ++pos;
++
++ for (i = 0; i < 6; i++) {
++ val = hex2int(*pos++);
++ if (val < 0)
++ return NULL;
++ val2 = hex2int(*pos++);
++ if (val2 < 0)
++ return NULL;
++ addr[i] = (val * 16 + val2) & 0xff;
++
++ if (i < 5 && *pos++ != ':')
++ return NULL;
++ }
++ return pos;
++}
++
++/* this writes xx:xx:xx:xx:xx:xx into ethstr
++ (ethstr must have space for 18 chars) */
++static int eth_addr2str(u8 * addr, char *ethstr)
++{
++ int i;
++ char *pos = ethstr;
++
++ for (i = 0; i < 6; i++) {
++ sprintf(pos, "%02x", addr[i] & 0xff);
++ pos += 2;
++ if (i < 5)
++ *pos++ = ':';
++ }
++ return 17;
++}
++
++/**
++ * @brief Add an entry to the BT table
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return 0 --success, otherwise fail
++ */
++static int wlan_bt_add_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ struct iwreq *wrq = (struct iwreq *)req;
++ char ethaddrs_str[18];
++ char *pos;
++ u8 ethaddr[ETH_ALEN];
++
++ ENTER();
++ if (copy_from_user(ethaddrs_str, wrq->u.data.pointer,
++ sizeof(ethaddrs_str)))
++ return -EFAULT;
++
++ if ((pos = eth_str2addr(ethaddrs_str, ethaddr)) == NULL) {
++ lbs_pr_info("BT_ADD: Invalid MAC address\n");
++ return -EINVAL;
++ }
++
++ lbs_pr_debug(1, "BT: adding %s\n", ethaddrs_str);
++ LEAVE();
++ return (libertas_prepare_and_send_command(priv, CMD_BT_ACCESS,
++ CMD_ACT_BT_ACCESS_ADD,
++ CMD_OPTION_WAITFORRSP, 0, ethaddr));
++}
++
++/**
++ * @brief Delete an entry from the BT table
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return 0 --success, otherwise fail
++ */
++static int wlan_bt_del_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ struct iwreq *wrq = (struct iwreq *)req;
++ char ethaddrs_str[18];
++ u8 ethaddr[ETH_ALEN];
++ char *pos;
++
++ ENTER();
++ if (copy_from_user(ethaddrs_str, wrq->u.data.pointer,
++ sizeof(ethaddrs_str)))
++ return -EFAULT;
++
++ if ((pos = eth_str2addr(ethaddrs_str, ethaddr)) == NULL) {
++ lbs_pr_info("Invalid MAC address\n");
++ return -EINVAL;
++ }
++
++ lbs_pr_debug(1, "BT: deleting %s\n", ethaddrs_str);
++
++ return (libertas_prepare_and_send_command(priv,
++ CMD_BT_ACCESS,
++ CMD_ACT_BT_ACCESS_DEL,
++ CMD_OPTION_WAITFORRSP, 0, ethaddr));
++ LEAVE();
++ return 0;
++}
++
++/**
++ * @brief Reset all entries from the BT table
++ * @param priv A pointer to wlan_private structure
++ * @return 0 --success, otherwise fail
++ */
++static int wlan_bt_reset_ioctl(wlan_private * priv)
++{
++ ENTER();
++
++ lbs_pr_alert( "BT: resetting\n");
++
++ return (libertas_prepare_and_send_command(priv,
++ CMD_BT_ACCESS,
++ CMD_ACT_BT_ACCESS_RESET,
++ CMD_OPTION_WAITFORRSP, 0, NULL));
++
++ LEAVE();
++ return 0;
++}
++
++/**
++ * @brief List an entry from the BT table
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return 0 --success, otherwise fail
++ */
++static int wlan_bt_list_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ int pos;
++ char *addr1;
++ struct iwreq *wrq = (struct iwreq *)req;
++ /* used to pass id and store the bt entry returned by the FW */
++ union {
++ int id;
++ char addr1addr2[2 * ETH_ALEN];
++ } param;
++ static char outstr[64];
++ char *pbuf = outstr;
++ int ret;
++
++ ENTER();
++
++ if (copy_from_user(outstr, wrq->u.data.pointer, sizeof(outstr))) {
++ lbs_pr_debug(1, "Copy from user failed\n");
++ return -1;
++ }
++ param.id = simple_strtoul(outstr, NULL, 10);
++ pos = sprintf(pbuf, "%d: ", param.id);
++ pbuf += pos;
++
++ ret = libertas_prepare_and_send_command(priv, CMD_BT_ACCESS,
++ CMD_ACT_BT_ACCESS_LIST,
++ CMD_OPTION_WAITFORRSP, 0,
++ (char *)&param);
++
++ if (ret == 0) {
++ addr1 = param.addr1addr2;
++
++ pos = sprintf(pbuf, "ignoring traffic from ");
++ pbuf += pos;
++ pos = eth_addr2str(addr1, pbuf);
++ pbuf += pos;
++ } else {
++ sprintf(pbuf, "(null)");
++ pbuf += pos;
++ }
++
++ wrq->u.data.length = strlen(outstr);
++ if (copy_to_user(wrq->u.data.pointer, (char *)outstr,
++ wrq->u.data.length)) {
++ lbs_pr_debug(1, "BT_LIST: Copy to user failed!\n");
++ return -EFAULT;
++ }
++
++ LEAVE();
++ return 0;
++}
++
++/**
++ * @brief Find the next parameter in an input string
++ * @param ptr A pointer to the input parameter string
++ * @return A pointer to the next parameter, or 0 if no parameters left.
++ */
++static char * next_param(char * ptr)
++{
++ if (!ptr) return NULL;
++ while (*ptr == ' ' || *ptr == '\t') ++ptr;
++ return (*ptr == '\0') ? NULL : ptr;
++}
++
++/**
++ * @brief Add an entry to the FWT table
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return 0 --success, otherwise fail
++ */
++static int wlan_fwt_add_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ struct iwreq *wrq = (struct iwreq *)req;
++ char in_str[128];
++ static struct cmd_ds_fwt_access fwt_access;
++ char *ptr;
++
++ ENTER();
++ if (copy_from_user(in_str, wrq->u.data.pointer, sizeof(in_str)))
++ return -EFAULT;
++
++ if ((ptr = eth_str2addr(in_str, fwt_access.da)) == NULL) {
++ lbs_pr_alert( "FWT_ADD: Invalid MAC address 1\n");
++ return -EINVAL;
++ }
++
++ if ((ptr = eth_str2addr(ptr, fwt_access.ra)) == NULL) {
++ lbs_pr_alert( "FWT_ADD: Invalid MAC address 2\n");
++ return -EINVAL;
++ }
++
++ if ((ptr = next_param(ptr)))
++ fwt_access.metric =
++ cpu_to_le32(simple_strtoul(ptr, &ptr, 10));
++ else
++ fwt_access.metric = FWT_DEFAULT_METRIC;
++
++ if ((ptr = next_param(ptr)))
++ fwt_access.dir = (u8)simple_strtoul(ptr, &ptr, 10);
++ else
++ fwt_access.dir = FWT_DEFAULT_DIR;
++
++ if ((ptr = next_param(ptr)))
++ fwt_access.ssn =
++ cpu_to_le32(simple_strtoul(ptr, &ptr, 10));
++ else
++ fwt_access.ssn = FWT_DEFAULT_SSN;
++
++ if ((ptr = next_param(ptr)))
++ fwt_access.dsn =
++ cpu_to_le32(simple_strtoul(ptr, &ptr, 10));
++ else
++ fwt_access.dsn = FWT_DEFAULT_DSN;
++
++ if ((ptr = next_param(ptr)))
++ fwt_access.hopcount = simple_strtoul(ptr, &ptr, 10);
++ else
++ fwt_access.hopcount = FWT_DEFAULT_HOPCOUNT;
++
++ if ((ptr = next_param(ptr)))
++ fwt_access.ttl = simple_strtoul(ptr, &ptr, 10);
++ else
++ fwt_access.ttl = FWT_DEFAULT_TTL;
++
++ if ((ptr = next_param(ptr)))
++ fwt_access.expiration =
++ cpu_to_le32(simple_strtoul(ptr, &ptr, 10));
++ else
++ fwt_access.expiration = FWT_DEFAULT_EXPIRATION;
++
++ if ((ptr = next_param(ptr)))
++ fwt_access.sleepmode = (u8)simple_strtoul(ptr, &ptr, 10);
++ else
++ fwt_access.sleepmode = FWT_DEFAULT_SLEEPMODE;
++
++ if ((ptr = next_param(ptr)))
++ fwt_access.snr =
++ cpu_to_le32(simple_strtoul(ptr, &ptr, 10));
++ else
++ fwt_access.snr = FWT_DEFAULT_SNR;
++
++#ifdef DEBUG
++ {
++ char ethaddr1_str[18], ethaddr2_str[18];
++ eth_addr2str(fwt_access.da, ethaddr1_str);
++ eth_addr2str(fwt_access.ra, ethaddr2_str);
++ lbs_pr_debug(1, "FWT_ADD: adding (da:%s,%i,ra:%s)\n", ethaddr1_str,
++ fwt_access.dir, ethaddr2_str);
++ lbs_pr_debug(1, "FWT_ADD: ssn:%u dsn:%u met:%u hop:%u ttl:%u exp:%u slp:%u snr:%u\n",
++ fwt_access.ssn, fwt_access.dsn, fwt_access.metric,
++ fwt_access.hopcount, fwt_access.ttl, fwt_access.expiration,
++ fwt_access.sleepmode, fwt_access.snr);
++ }
++#endif
++
++ LEAVE();
++ return (libertas_prepare_and_send_command(priv, CMD_FWT_ACCESS,
++ CMD_ACT_FWT_ACCESS_ADD,
++ CMD_OPTION_WAITFORRSP, 0,
++ (void *)&fwt_access));
++}
++
++/**
++ * @brief Delete an entry from the FWT table
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return 0 --success, otherwise fail
++ */
++static int wlan_fwt_del_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ struct iwreq *wrq = (struct iwreq *)req;
++ char in_str[64];
++ static struct cmd_ds_fwt_access fwt_access;
++ char *ptr;
++
++ ENTER();
++ if (copy_from_user(in_str, wrq->u.data.pointer, sizeof(in_str)))
++ return -EFAULT;
++
++ if ((ptr = eth_str2addr(in_str, fwt_access.da)) == NULL) {
++ lbs_pr_alert( "FWT_DEL: Invalid MAC address 1\n");
++ return -EINVAL;
++ }
++
++ if ((ptr = eth_str2addr(ptr, fwt_access.ra)) == NULL) {
++ lbs_pr_alert( "FWT_DEL: Invalid MAC address 2\n");
++ return -EINVAL;
++ }
++
++ if ((ptr = next_param(ptr)))
++ fwt_access.dir = (u8)simple_strtoul(ptr, &ptr, 10);
++ else
++ fwt_access.dir = FWT_DEFAULT_DIR;
++
++#ifdef DEBUG
++ {
++ char ethaddr1_str[18], ethaddr2_str[18];
++ lbs_pr_debug(1, "FWT_DEL: line is %s\n", in_str);
++ eth_addr2str(fwt_access.da, ethaddr1_str);
++ eth_addr2str(fwt_access.ra, ethaddr2_str);
++ lbs_pr_debug(1, "FWT_DEL: removing (da:%s,ra:%s,dir:%d)\n", ethaddr1_str,
++ ethaddr2_str, fwt_access.dir);
++ }
++#endif
++
++ LEAVE();
++ return (libertas_prepare_and_send_command(priv,
++ CMD_FWT_ACCESS,
++ CMD_ACT_FWT_ACCESS_DEL,
++ CMD_OPTION_WAITFORRSP, 0,
++ (void *)&fwt_access));
++}
++
++
++/**
++ * @brief Print route parameters
++ * @param fwt_access struct cmd_ds_fwt_access with route info
++ * @param buf destination buffer for route info
++ */
++static void print_route(struct cmd_ds_fwt_access fwt_access, char *buf)
++{
++ buf += sprintf(buf, " ");
++ buf += eth_addr2str(fwt_access.da, buf);
++ buf += sprintf(buf, " ");
++ buf += eth_addr2str(fwt_access.ra, buf);
++ buf += sprintf(buf, " %u", le32_to_cpu(fwt_access.metric));
++ buf += sprintf(buf, " %u", fwt_access.dir);
++ buf += sprintf(buf, " %u", le32_to_cpu(fwt_access.ssn));
++ buf += sprintf(buf, " %u", le32_to_cpu(fwt_access.dsn));
++ buf += sprintf(buf, " %u", fwt_access.hopcount);
++ buf += sprintf(buf, " %u", fwt_access.ttl);
++ buf += sprintf(buf, " %u", le32_to_cpu(fwt_access.expiration));
++ buf += sprintf(buf, " %u", fwt_access.sleepmode);
++ buf += sprintf(buf, " %u", le32_to_cpu(fwt_access.snr));
++}
++
++/**
++ * @brief Lookup an entry in the FWT table
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return 0 --success, otherwise fail
++ */
++static int wlan_fwt_lookup_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ struct iwreq *wrq = (struct iwreq *)req;
++ char in_str[64];
++ char *ptr;
++ static struct cmd_ds_fwt_access fwt_access;
++ static char out_str[128];
++ int ret;
++
++ ENTER();
++ if (copy_from_user(in_str, wrq->u.data.pointer, sizeof(in_str)))
++ return -EFAULT;
++
++ if ((ptr = eth_str2addr(in_str, fwt_access.da)) == NULL) {
++ lbs_pr_alert( "FWT_LOOKUP: Invalid MAC address\n");
++ return -EINVAL;
++ }
++
++#ifdef DEBUG
++ {
++ char ethaddr1_str[18];
++ lbs_pr_debug(1, "FWT_LOOKUP: line is %s\n", in_str);
++ eth_addr2str(fwt_access.da, ethaddr1_str);
++ lbs_pr_debug(1, "FWT_LOOKUP: looking for (da:%s)\n", ethaddr1_str);
++ }
++#endif
++
++ ret = libertas_prepare_and_send_command(priv,
++ CMD_FWT_ACCESS,
++ CMD_ACT_FWT_ACCESS_LOOKUP,
++ CMD_OPTION_WAITFORRSP, 0,
++ (void *)&fwt_access);
++
++ if (ret == 0)
++ print_route(fwt_access, out_str);
++ else
++ sprintf(out_str, "(null)");
++
++ wrq->u.data.length = strlen(out_str);
++ if (copy_to_user(wrq->u.data.pointer, (char *)out_str,
++ wrq->u.data.length)) {
++ lbs_pr_debug(1, "FWT_LOOKUP: Copy to user failed!\n");
++ return -EFAULT;
++ }
++
++ LEAVE();
++ return 0;
++}
++
++/**
++ * @brief Reset all entries from the FWT table
++ * @param priv A pointer to wlan_private structure
++ * @return 0 --success, otherwise fail
++ */
++static int wlan_fwt_reset_ioctl(wlan_private * priv)
++{
++ lbs_pr_debug(1, "FWT: resetting\n");
++
++ return (libertas_prepare_and_send_command(priv,
++ CMD_FWT_ACCESS,
++ CMD_ACT_FWT_ACCESS_RESET,
++ CMD_OPTION_WAITFORRSP, 0, NULL));
++}
++
++/**
++ * @brief List an entry from the FWT table
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return 0 --success, otherwise fail
++ */
++static int wlan_fwt_list_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ struct iwreq *wrq = (struct iwreq *)req;
++ char in_str[8];
++ static struct cmd_ds_fwt_access fwt_access;
++ char *ptr = in_str;
++ static char out_str[128];
++ char *pbuf = out_str;
++ int ret;
++
++ ENTER();
++ if (copy_from_user(in_str, wrq->u.data.pointer, sizeof(in_str)))
++ return -EFAULT;
++
++ fwt_access.id = cpu_to_le32(simple_strtoul(ptr, &ptr, 10));
++
++#ifdef DEBUG
++ {
++ lbs_pr_debug(1, "FWT_LIST: line is %s\n", in_str);
++ lbs_pr_debug(1, "FWT_LIST: listing id:%i\n", le32_to_cpu(fwt_access.id));
++ }
++#endif
++
++ ret = libertas_prepare_and_send_command(priv, CMD_FWT_ACCESS,
++ CMD_ACT_FWT_ACCESS_LIST,
++ CMD_OPTION_WAITFORRSP, 0, (void *)&fwt_access);
++
++ if (ret == 0)
++ print_route(fwt_access, pbuf);
++ else
++ pbuf += sprintf(pbuf, " (null)");
++
++ wrq->u.data.length = strlen(out_str);
++ if (copy_to_user(wrq->u.data.pointer, (char *)out_str,
++ wrq->u.data.length)) {
++ lbs_pr_debug(1, "FWT_LIST: Copy to user failed!\n");
++ return -EFAULT;
++ }
++
++ LEAVE();
++ return 0;
++}
++
++/**
++ * @brief List an entry from the FRT table
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return 0 --success, otherwise fail
++ */
++static int wlan_fwt_list_route_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ struct iwreq *wrq = (struct iwreq *)req;
++ char in_str[64];
++ static struct cmd_ds_fwt_access fwt_access;
++ char *ptr = in_str;
++ static char out_str[128];
++ char *pbuf = out_str;
++ int ret;
++
++ ENTER();
++ if (copy_from_user(in_str, wrq->u.data.pointer, sizeof(in_str)))
++ return -EFAULT;
++
++ fwt_access.id = cpu_to_le32(simple_strtoul(ptr, &ptr, 10));
++
++#ifdef DEBUG
++ {
++ lbs_pr_debug(1, "FWT_LIST_ROUTE: line is %s\n", in_str);
++ lbs_pr_debug(1, "FWT_LIST_ROUTE: listing id:%i\n", le32_to_cpu(fwt_access.id));
++ }
++#endif
++
++ ret = libertas_prepare_and_send_command(priv, CMD_FWT_ACCESS,
++ CMD_ACT_FWT_ACCESS_LIST_route,
++ CMD_OPTION_WAITFORRSP, 0, (void *)&fwt_access);
++
++ if (ret == 0) {
++ pbuf += sprintf(pbuf, " ");
++ pbuf += eth_addr2str(fwt_access.da, pbuf);
++ pbuf += sprintf(pbuf, " %u", le32_to_cpu(fwt_access.metric));
++ pbuf += sprintf(pbuf, " %u", fwt_access.dir);
++ /* note that the firmware returns the nid in the id field */
++ pbuf += sprintf(pbuf, " %u", le32_to_cpu(fwt_access.id));
++ pbuf += sprintf(pbuf, " %u", le32_to_cpu(fwt_access.ssn));
++ pbuf += sprintf(pbuf, " %u", le32_to_cpu(fwt_access.dsn));
++ pbuf += sprintf(pbuf, " hop %u", fwt_access.hopcount);
++ pbuf += sprintf(pbuf, " ttl %u", fwt_access.ttl);
++ pbuf += sprintf(pbuf, " %u", le32_to_cpu(fwt_access.expiration));
++ } else
++ pbuf += sprintf(pbuf, " (null)");
++
++ wrq->u.data.length = strlen(out_str);
++ if (copy_to_user(wrq->u.data.pointer, (char *)out_str,
++ wrq->u.data.length)) {
++ lbs_pr_debug(1, "FWT_LIST_ROUTE: Copy to user failed!\n");
++ return -EFAULT;
++ }
++
++ LEAVE();
++ return 0;
++}
++
++/**
++ * @brief List an entry from the FNT table
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return 0 --success, otherwise fail
++ */
++static int wlan_fwt_list_neighbor_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ struct iwreq *wrq = (struct iwreq *)req;
++ char in_str[8];
++ static struct cmd_ds_fwt_access fwt_access;
++ char *ptr = in_str;
++ static char out_str[128];
++ char *pbuf = out_str;
++ int ret;
++
++ ENTER();
++ if (copy_from_user(in_str, wrq->u.data.pointer, sizeof(in_str)))
++ return -EFAULT;
++
++ memset(&fwt_access, 0, sizeof(fwt_access));
++ fwt_access.id = cpu_to_le32(simple_strtoul(ptr, &ptr, 10));
++
++#ifdef DEBUG
++ {
++ lbs_pr_debug(1, "FWT_LIST_NEIGHBOR: line is %s\n", in_str);
++ lbs_pr_debug(1, "FWT_LIST_NEIGHBOR: listing id:%i\n", le32_to_cpu(fwt_access.id));
++ }
++#endif
++
++ ret = libertas_prepare_and_send_command(priv, CMD_FWT_ACCESS,
++ CMD_ACT_FWT_ACCESS_LIST_neighbor,
++ CMD_OPTION_WAITFORRSP, 0,
++ (void *)&fwt_access);
++
++ if (ret == 0) {
++ pbuf += sprintf(pbuf, " ra ");
++ pbuf += eth_addr2str(fwt_access.ra, pbuf);
++ pbuf += sprintf(pbuf, " slp %u", fwt_access.sleepmode);
++ pbuf += sprintf(pbuf, " snr %u", le32_to_cpu(fwt_access.snr));
++ pbuf += sprintf(pbuf, " ref %u", le32_to_cpu(fwt_access.references));
++ } else
++ pbuf += sprintf(pbuf, " (null)");
++
++ wrq->u.data.length = strlen(out_str);
++ if (copy_to_user(wrq->u.data.pointer, (char *)out_str,
++ wrq->u.data.length)) {
++ lbs_pr_debug(1, "FWT_LIST_NEIGHBOR: Copy to user failed!\n");
++ return -EFAULT;
++ }
++
++ LEAVE();
++ return 0;
++}
++
++/**
++ * @brief Cleans up the route (FRT) and neighbor (FNT) tables
++ * (Garbage Collection)
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return 0 --success, otherwise fail
++ */
++static int wlan_fwt_cleanup_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ static struct cmd_ds_fwt_access fwt_access;
++ int ret;
++
++ ENTER();
++
++ lbs_pr_debug(1, "FWT: cleaning up\n");
++
++ memset(&fwt_access, 0, sizeof(fwt_access));
++
++ ret = libertas_prepare_and_send_command(priv, CMD_FWT_ACCESS,
++ CMD_ACT_FWT_ACCESS_CLEANUP,
++ CMD_OPTION_WAITFORRSP, 0,
++ (void *)&fwt_access);
++
++ if (ret == 0)
++ req->ifr_data = (char *)(le32_to_cpu(fwt_access.references));
++ else
++ return -EFAULT;
++
++ LEAVE();
++ return 0;
++}
++
++/**
++ * @brief Gets firmware internal time (debug purposes)
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return 0 --success, otherwise fail
++ */
++static int wlan_fwt_time_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ static struct cmd_ds_fwt_access fwt_access;
++ int ret;
++
++ ENTER();
++
++ lbs_pr_debug(1, "FWT: getting time\n");
++
++ memset(&fwt_access, 0, sizeof(fwt_access));
++
++ ret = libertas_prepare_and_send_command(priv, CMD_FWT_ACCESS,
++ CMD_ACT_FWT_ACCESS_TIME,
++ CMD_OPTION_WAITFORRSP, 0,
++ (void *)&fwt_access);
++
++ if (ret == 0)
++ req->ifr_data = (char *)(le32_to_cpu(fwt_access.references));
++ else
++ return -EFAULT;
++
++ LEAVE();
++ return 0;
++}
++
++/**
++ * @brief Gets mesh ttl from firmware
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return 0 --success, otherwise fail
++ */
++static int wlan_mesh_get_ttl_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ struct cmd_ds_mesh_access mesh_access;
++ int ret;
++
++ ENTER();
++
++ memset(&mesh_access, 0, sizeof(mesh_access));
++
++ ret = libertas_prepare_and_send_command(priv, CMD_MESH_ACCESS,
++ CMD_ACT_MESH_GET_TTL,
++ CMD_OPTION_WAITFORRSP, 0,
++ (void *)&mesh_access);
++
++ if (ret == 0) {
++ req->ifr_data = (char *)(le32_to_cpu(mesh_access.data[0]));
++ }
++ else
++ return -EFAULT;
++
++ LEAVE();
++ return 0;
++}
++
++/**
++ * @brief Gets mesh ttl from firmware
++ * @param priv A pointer to wlan_private structure
++ * @param ttl New ttl value
++ * @return 0 --success, otherwise fail
++ */
++static int wlan_mesh_set_ttl_ioctl(wlan_private * priv, int ttl)
++{
++ struct cmd_ds_mesh_access mesh_access;
++ int ret;
++
++ ENTER();
++
++ if( (ttl > 0xff) || (ttl < 0) )
++ return -EINVAL;
++
++ memset(&mesh_access, 0, sizeof(mesh_access));
++ mesh_access.data[0] = ttl;
++
++ ret = libertas_prepare_and_send_command(priv, CMD_MESH_ACCESS,
++ CMD_ACT_MESH_SET_TTL,
++ CMD_OPTION_WAITFORRSP, 0,
++ (void *)&mesh_access);
++
++ if (ret != 0)
++ ret = -EFAULT;
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Get/Set inactivity timeout
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to iwreq structure
++ * @return 0 --success, otherwise fail
++ */
++static int wlan_inactivity_timeout(wlan_private * priv, struct iwreq *wrq)
++{
++ int ret;
++ int data = 0;
++ u16 timeout = 0;
++
++ ENTER();
++ if (wrq->u.data.length > 1)
++ return -ENOTSUPP;
++
++ if (wrq->u.data.length == 0) {
++ /* Get */
++ ret = libertas_prepare_and_send_command(priv,
++ CMD_802_11_INACTIVITY_TIMEOUT,
++ CMD_ACT_GET,
++ CMD_OPTION_WAITFORRSP, 0,
++ &timeout);
++ data = timeout;
++ if (copy_to_user(wrq->u.data.pointer, &data, sizeof(int))) {
++ lbs_pr_debug(1, "Copy to user failed\n");
++ return -EFAULT;
++ }
++ } else {
++ /* Set */
++ if (copy_from_user(&data, wrq->u.data.pointer, sizeof(int))) {
++ lbs_pr_debug(1, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ timeout = data;
++ ret = libertas_prepare_and_send_command(priv,
++ CMD_802_11_INACTIVITY_TIMEOUT,
++ CMD_ACT_SET,
++ CMD_OPTION_WAITFORRSP, 0,
++ &timeout);
++ }
++
++ wrq->u.data.length = 1;
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief ioctl function - entry point
++ *
++ * @param dev A pointer to net_device structure
++ * @param req A pointer to ifreq structure
++ * @param cmd command
++ * @return 0--success, otherwise fail
++ */
++int libertas_do_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
++{
++ int subcmd = 0;
++ int idata = 0;
++ int *pdata;
++ int ret = 0;
++ wlan_private *priv = dev->priv;
++ wlan_adapter *adapter = priv->adapter;
++ struct iwreq *wrq = (struct iwreq *)req;
++
++ ENTER();
++
++ lbs_pr_debug(1, "libertas_do_ioctl: ioctl cmd = 0x%x\n", cmd);
++ switch (cmd) {
++ case WLAN_SETNONE_GETNONE: /* set WPA mode on/off ioctl #20 */
++ switch (wrq->u.data.flags) {
++ case WLAN_SUBCMD_BT_RESET: /* bt_reset */
++ wlan_bt_reset_ioctl(priv);
++ break;
++ case WLAN_SUBCMD_FWT_RESET: /* fwt_reset */
++ wlan_fwt_reset_ioctl(priv);
++ break;
++ } /* End of switch */
++ break;
++
++ case WLAN_SETONEINT_GETNONE:
++ /* The first 4 bytes of req->ifr_data is sub-ioctl number
++ * after 4 bytes sits the payload.
++ */
++ subcmd = wrq->u.data.flags; //from wpa_supplicant subcmd
++
++ if (!subcmd)
++ subcmd = (int)req->ifr_data; //from iwpriv subcmd
++
++ switch (subcmd) {
++ case WLANSETREGION:
++ idata = SUBCMD_DATA(wrq);
++ ret = wlan_set_region(priv, (u16) idata);
++ break;
++ case WLAN_SUBCMD_MESH_SET_TTL:
++ idata = SUBCMD_DATA(wrq);
++ ret = wlan_mesh_set_ttl_ioctl(priv, idata);
++ break;
++
++ default:
++ ret = -EOPNOTSUPP;
++ break;
++ }
++
++ break;
++
++ case WLAN_SET128CHAR_GET128CHAR:
++ switch ((int)wrq->u.data.flags) {
++ case WLAN_SUBCMD_BT_ADD:
++ ret = wlan_bt_add_ioctl(priv, req);
++ break;
++ case WLAN_SUBCMD_BT_DEL:
++ ret = wlan_bt_del_ioctl(priv, req);
++ break;
++ case WLAN_SUBCMD_BT_LIST:
++ ret = wlan_bt_list_ioctl(priv, req);
++ break;
++ case WLAN_SUBCMD_FWT_ADD:
++ ret = wlan_fwt_add_ioctl(priv, req);
++ break;
++ case WLAN_SUBCMD_FWT_DEL:
++ ret = wlan_fwt_del_ioctl(priv, req);
++ break;
++ case WLAN_SUBCMD_FWT_LOOKUP:
++ ret = wlan_fwt_lookup_ioctl(priv, req);
++ break;
++ case WLAN_SUBCMD_FWT_LIST_NEIGHBOR:
++ ret = wlan_fwt_list_neighbor_ioctl(priv, req);
++ break;
++ case WLAN_SUBCMD_FWT_LIST:
++ ret = wlan_fwt_list_ioctl(priv, req);
++ break;
++ case WLAN_SUBCMD_FWT_LIST_ROUTE:
++ ret = wlan_fwt_list_route_ioctl(priv, req);
++ break;
++ }
++ break;
++
++ case WLAN_SETNONE_GETONEINT:
++ switch ((int)req->ifr_data) {
++ case WLANGETREGION:
++ pdata = (int *)wrq->u.name;
++ *pdata = (int)adapter->regioncode;
++ break;
++ case WLAN_SUBCMD_FWT_CLEANUP: /* fwt_cleanup */
++ ret = wlan_fwt_cleanup_ioctl(priv, req);
++ break;
++
++ case WLAN_SUBCMD_FWT_TIME: /* fwt_time */
++ ret = wlan_fwt_time_ioctl(priv, req);
++ break;
++
++ case WLAN_SUBCMD_MESH_GET_TTL:
++ ret = wlan_mesh_get_ttl_ioctl(priv, req);
++ break;
++
++ default:
++ ret = -EOPNOTSUPP;
++
++ }
++
++ break;
++
++ case WLAN_SET_GET_SIXTEEN_INT:
++ switch ((int)wrq->u.data.flags) {
++ case WLAN_LED_GPIO_CTRL:
++ {
++ int i;
++ int data[16];
++
++ struct cmd_ds_802_11_led_ctrl ctrl;
++ struct mrvlietypes_ledgpio *gpio =
++ (struct mrvlietypes_ledgpio *) ctrl.data;
++
++ memset(&ctrl, 0, sizeof(ctrl));
++ if (wrq->u.data.length > MAX_LEDS * 2)
++ return -ENOTSUPP;
++ if ((wrq->u.data.length % 2) != 0)
++ return -ENOTSUPP;
++ if (wrq->u.data.length == 0) {
++ ctrl.action =
++ cpu_to_le16
++ (CMD_ACT_GET);
++ } else {
++ if (copy_from_user
++ (data, wrq->u.data.pointer,
++ sizeof(int) *
++ wrq->u.data.length)) {
++ lbs_pr_debug(1,
++ "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ ctrl.action =
++ cpu_to_le16
++ (CMD_ACT_SET);
++ ctrl.numled = cpu_to_le16(0);
++ gpio->header.type =
++ cpu_to_le16(TLV_TYPE_LED_GPIO);
++ gpio->header.len = wrq->u.data.length;
++ for (i = 0; i < wrq->u.data.length;
++ i += 2) {
++ gpio->ledpin[i / 2].led =
++ data[i];
++ gpio->ledpin[i / 2].pin =
++ data[i + 1];
++ }
++ }
++ ret =
++ libertas_prepare_and_send_command(priv,
++ CMD_802_11_LED_GPIO_CTRL,
++ 0,
++ CMD_OPTION_WAITFORRSP,
++ 0, (void *)&ctrl);
++ for (i = 0; i < gpio->header.len; i += 2) {
++ data[i] = gpio->ledpin[i / 2].led;
++ data[i + 1] = gpio->ledpin[i / 2].pin;
++ }
++ if (copy_to_user(wrq->u.data.pointer, data,
++ sizeof(int) *
++ gpio->header.len)) {
++ lbs_pr_debug(1, "Copy to user failed\n");
++ return -EFAULT;
++ }
++
++ wrq->u.data.length = gpio->header.len;
++ }
++ break;
++ case WLAN_INACTIVITY_TIMEOUT:
++ ret = wlan_inactivity_timeout(priv, wrq);
++ break;
++ }
++ break;
++
++ default:
++ ret = -EINVAL;
++ break;
++ }
++ LEAVE();
++ return ret;
++}
++
++
+diff --git a/drivers/net/wireless/libertas/main.c b/drivers/net/wireless/libertas/main.c
+index 1823b48..47b0288 100644
+--- a/drivers/net/wireless/libertas/main.c
++++ b/drivers/net/wireless/libertas/main.c
+@@ -36,6 +36,7 @@ unsigned int libertas_debug = 0;
+ module_param(libertas_debug, int, 0644);
+ EXPORT_SYMBOL_GPL(libertas_debug);
+
++int libertas_do_ioctl(struct net_device *dev, struct ifreq *req, int i);
+
+ #define WLAN_TX_PWR_DEFAULT 20 /*100mW */
+ #define WLAN_TX_PWR_US_DEFAULT 20 /*100mW */
+@@ -945,9 +946,8 @@ static int wlan_setup_firmware(wlan_private * priv)
+ libertas_set_mac_packet_filter(priv);
+
+ /* Get the supported Data rates */
+- ret = libertas_prepare_and_send_command(priv, CMD_802_11_DATA_RATE,
+- CMD_ACT_GET_TX_RATE,
+- CMD_OPTION_WAITFORRSP, 0, NULL);
++ ret = libertas_prepare_and_send_command(priv, CMD_802_11_TX_RATE_QUERY,
++ CMD_ACT_GET, CMD_OPTION_WAITFORRSP, 0, NULL);
+
+ if (ret) {
+ ret = -1;
+@@ -1156,6 +1156,7 @@ wlan_private *libertas_add_card(void *card, struct device *dmdev)
+ /* Setup the OS Interface to our functions */
+ dev->open = libertas_open;
+ dev->hard_start_xmit = libertas_pre_start_xmit;
++ dev->do_ioctl = libertas_do_ioctl;
+ dev->stop = libertas_close;
+ dev->set_mac_address = libertas_set_mac_address;
+ dev->tx_timeout = libertas_tx_timeout;
+@@ -1334,6 +1335,7 @@ int libertas_add_mesh(wlan_private *priv, struct device *dev)
+
+ mesh_dev->open = libertas_mesh_open;
+ mesh_dev->hard_start_xmit = libertas_mesh_pre_start_xmit;
++ mesh_dev->do_ioctl = libertas_do_ioctl;
+ mesh_dev->stop = libertas_mesh_close;
+ mesh_dev->get_stats = libertas_get_stats;
+ mesh_dev->set_mac_address = libertas_set_mac_address;
+diff --git a/drivers/net/wireless/libertas/scan.c b/drivers/net/wireless/libertas/scan.c
+index ad1e67d..748358e 100644
+--- a/drivers/net/wireless/libertas/scan.c
++++ b/drivers/net/wireless/libertas/scan.c
+@@ -361,7 +361,7 @@ void libertas_scan_worker(struct work_struct *work)
+ {
+ wlan_private *priv = container_of(work, wlan_private, scan_work.work);
+
+- wlan_scan_networks(priv, NULL, 0);
++ wlan_scan_networks(priv, NULL, 1);
+ }
+
+
+@@ -633,8 +633,10 @@ static int wlan_scan_channel_list(wlan_private * priv,
+ /* Set the temp channel struct pointer to the start of the desired list */
+ ptmpchan = pscanchanlist;
+
++#if 0 //We always do full scan
+ if (priv->adapter->last_scanned_channel && !puserscanin)
+ ptmpchan += priv->adapter->last_scanned_channel;
++#endif
+
+ /* Loop through the desired channel list, sending a new firmware scan
+ * commands for each maxchanperscan channels (or for 1,6,11 individually
+diff --git a/drivers/net/wireless/libertas/wext.c b/drivers/net/wireless/libertas/wext.c
+index 395b788..a1acb7c 100644
+--- a/drivers/net/wireless/libertas/wext.c
++++ b/drivers/net/wireless/libertas/wext.c
+@@ -995,8 +995,14 @@ static int wlan_set_rate(struct net_device *dev, struct iw_request_info *info,
+ adapter->auto_rate = 0;
+ }
+
+- ret = libertas_prepare_and_send_command(priv, CMD_802_11_DATA_RATE,
+- action, CMD_OPTION_WAITFORRSP, 0, NULL);
++ /* Try the newer command first (Firmware Spec 5.1 and above) */
++ ret = libertas_prepare_and_send_command(priv, CMD_802_11_RATE_ADAPT_RATESET,
++ CMD_ACT_SET, CMD_OPTION_WAITFORRSP, 0, NULL);
++
++ /* Fallback to older version */
++ if (ret)
++ ret = libertas_prepare_and_send_command(priv, CMD_802_11_DATA_RATE,
++ action, CMD_OPTION_WAITFORRSP, 0, NULL);
+
+ out:
+ lbs_deb_leave_args(LBS_DEB_WEXT, "ret %d", ret);
+@@ -2010,6 +2016,139 @@ void libertas_get_fwversion(wlan_adapter * adapter, char *fwversion, int maxlen)
+ snprintf(fwversion, maxlen, fwver);
+ }
+
++static const iw_handler wlan_private_handler[] = {
++ NULL, /* SIOCIWFIRSTPRIV */
++};
++
++static const struct iw_priv_args wlan_private_args[] = {
++ /*
++ * { cmd, set_args, get_args, name }
++ */
++ /* Using iwpriv sub-command feature */
++ {
++ WLAN_SETONEINT_GETNONE, /* IOCTL: 24 */
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_NONE,
++ ""},
++ {
++ WLANSETREGION,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_NONE,
++ "setregioncode"},
++ {
++ WLAN_SUBCMD_MESH_SET_TTL,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_NONE,
++ "mesh_set_ttl"},
++ {
++ WLAN_SETNONE_GETONEINT,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ ""},
++ {
++ WLANGETREGION,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ "getregioncode"},
++ {
++ WLAN_SUBCMD_FWT_CLEANUP,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ "fwt_cleanup"},
++ {
++ WLAN_SUBCMD_FWT_TIME,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ "fwt_time"},
++ {
++ WLAN_SUBCMD_MESH_GET_TTL,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ "mesh_get_ttl"},
++ {
++ WLAN_SETNONE_GETNONE,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_NONE,
++ ""},
++ {
++ WLAN_SUBCMD_FWT_RESET,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_NONE,
++ "fwt_reset"},
++ {
++ WLAN_SUBCMD_BT_RESET,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_NONE,
++ "bt_reset"},
++ {
++ WLAN_SET128CHAR_GET128CHAR,
++ IW_PRIV_TYPE_CHAR | 128,
++ IW_PRIV_TYPE_CHAR | 128,
++ ""},
++ /* BT Management */
++ {
++ WLAN_SUBCMD_BT_ADD,
++ IW_PRIV_TYPE_CHAR | 128,
++ IW_PRIV_TYPE_CHAR | 128,
++ "bt_add"},
++ {
++ WLAN_SUBCMD_BT_DEL,
++ IW_PRIV_TYPE_CHAR | 128,
++ IW_PRIV_TYPE_CHAR | 128,
++ "bt_del"},
++ {
++ WLAN_SUBCMD_BT_LIST,
++ IW_PRIV_TYPE_CHAR | 128,
++ IW_PRIV_TYPE_CHAR | 128,
++ "bt_list"},
++ /* FWT Management */
++ {
++ WLAN_SUBCMD_FWT_ADD,
++ IW_PRIV_TYPE_CHAR | 128,
++ IW_PRIV_TYPE_CHAR | 128,
++ "fwt_add"},
++ {
++ WLAN_SUBCMD_FWT_DEL,
++ IW_PRIV_TYPE_CHAR | 128,
++ IW_PRIV_TYPE_CHAR | 128,
++ "fwt_del"},
++ {
++ WLAN_SUBCMD_FWT_LOOKUP,
++ IW_PRIV_TYPE_CHAR | 128,
++ IW_PRIV_TYPE_CHAR | 128,
++ "fwt_lookup"},
++ {
++ WLAN_SUBCMD_FWT_LIST_NEIGHBOR,
++ IW_PRIV_TYPE_CHAR | 128,
++ IW_PRIV_TYPE_CHAR | 128,
++ "fwt_list_neigh"},
++ {
++ WLAN_SUBCMD_FWT_LIST,
++ IW_PRIV_TYPE_CHAR | 128,
++ IW_PRIV_TYPE_CHAR | 128,
++ "fwt_list"},
++ {
++ WLAN_SUBCMD_FWT_LIST_ROUTE,
++ IW_PRIV_TYPE_CHAR | 128,
++ IW_PRIV_TYPE_CHAR | 128,
++ "fwt_list_route"},
++ {
++ WLAN_SET_GET_SIXTEEN_INT,
++ IW_PRIV_TYPE_INT | 16,
++ IW_PRIV_TYPE_INT | 16,
++ ""},
++ {
++ WLAN_LED_GPIO_CTRL,
++ IW_PRIV_TYPE_INT | 16,
++ IW_PRIV_TYPE_INT | 16,
++ "ledgpio"},
++ {
++ WLAN_INACTIVITY_TIMEOUT,
++ IW_PRIV_TYPE_INT | 16,
++ IW_PRIV_TYPE_INT | 16,
++ "inactivityto"},
++};
++
+
+ /*
+ * iwconfig settable callbacks
+@@ -2131,12 +2270,20 @@ static const iw_handler mesh_wlan_handler[] = {
+ };
+ struct iw_handler_def libertas_handler_def = {
+ .num_standard = ARRAY_SIZE(wlan_handler),
++ .num_private = ARRAY_SIZE(wlan_private_handler),
++ .num_private_args = ARRAY_SIZE(wlan_private_args),
+ .standard = (iw_handler *) wlan_handler,
++ .private = (iw_handler *) wlan_private_handler,
++ .private_args = (struct iw_priv_args *)wlan_private_args,
+ .get_wireless_stats = wlan_get_wireless_stats,
+ };
+
+ struct iw_handler_def mesh_handler_def = {
+ .num_standard = ARRAY_SIZE(mesh_wlan_handler),
++ .num_private = ARRAY_SIZE(wlan_private_handler),
++ .num_private_args = ARRAY_SIZE(wlan_private_args),
+ .standard = (iw_handler *) mesh_wlan_handler,
++ .private = (iw_handler *) wlan_private_handler,
++ .private_args = (struct iw_priv_args *)wlan_private_args,
+ .get_wireless_stats = wlan_get_wireless_stats,
+ };
+diff --git a/drivers/net/wireless/libertas/wext.h b/drivers/net/wireless/libertas/wext.h
+index 6aa444c..6a8c1d4 100644
+--- a/drivers/net/wireless/libertas/wext.h
++++ b/drivers/net/wireless/libertas/wext.h
+@@ -4,6 +4,47 @@
+ #ifndef _WLAN_WEXT_H_
+ #define _WLAN_WEXT_H_
+
++#define SUBCMD_OFFSET 4
++#define SUBCMD_DATA(x) *((int *)(x->u.name + SUBCMD_OFFSET))
++
++/** PRIVATE CMD ID */
++#define WLANIOCTL SIOCIWFIRSTPRIV
++
++#define WLAN_SETNONE_GETNONE (WLANIOCTL + 8)
++#define WLAN_SUBCMD_BT_RESET 13
++#define WLAN_SUBCMD_FWT_RESET 14
++
++#define WLAN_SETNONE_GETONEINT (WLANIOCTL + 15)
++#define WLANGETREGION 1
++
++#define WLAN_SUBCMD_FWT_CLEANUP 15
++#define WLAN_SUBCMD_FWT_TIME 16
++#define WLAN_SUBCMD_MESH_GET_TTL 17
++
++#define WLAN_SETONEINT_GETNONE (WLANIOCTL + 24)
++#define WLANSETREGION 8
++#define WLAN_SUBCMD_MESH_SET_TTL 18
++
++#define WLAN_SET128CHAR_GET128CHAR (WLANIOCTL + 25)
++#define WLAN_SUBCMD_BT_ADD 18
++#define WLAN_SUBCMD_BT_DEL 19
++#define WLAN_SUBCMD_BT_LIST 20
++#define WLAN_SUBCMD_FWT_ADD 21
++#define WLAN_SUBCMD_FWT_DEL 22
++#define WLAN_SUBCMD_FWT_LOOKUP 23
++#define WLAN_SUBCMD_FWT_LIST_NEIGHBOR 24
++#define WLAN_SUBCMD_FWT_LIST 25
++#define WLAN_SUBCMD_FWT_LIST_ROUTE 26
++
++#define WLAN_SET_GET_SIXTEEN_INT (WLANIOCTL + 29)
++#define WLAN_LED_GPIO_CTRL 5
++#define WLAN_INACTIVITY_TIMEOUT 9
++
++#define WLAN_LINKMODE_802_3 0
++#define WLAN_LINKMODE_802_11 2
++#define WLAN_RADIOMODE_NONE 0
++#define WLAN_RADIOMODE_RADIOTAP 2
++
+ /** wlan_ioctl_regrdwr */
+ struct wlan_ioctl_regrdwr {
+ /** Which register to access */
+diff --git a/drivers/net/wireless/marvell8686/Makefile b/drivers/net/wireless/marvell8686/Makefile
+new file mode 100644
+index 0000000..e443661
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/Makefile
+@@ -0,0 +1,15 @@
++ifeq ($(CONFIG_MARVELL_8686_PROC_FS),y)
++ sd8686-objs += wlan_proc.o
++endif
++
++ifeq ($(CONFIG_MARVELL_8686_DEBUG),y)
++ sd8686-objs += wlan_debug.o
++endif
++
++sd8686-objs += wlan_main.o wlan_fw.o \
++ wlan_wext.o wlan_rx.o wlan_tx.o \
++ wlan_cmd.o wlan_cmdresp.o wlan_scan.o \
++ wlan_join.o wlan_wmm.o wlan_11d.o wlan_fops.o \
++ if_sdio.o
++obj-$(CONFIG_MARVELL_8686_SDIO) += sd8686.o
++
+diff --git a/drivers/net/wireless/marvell8686/README b/drivers/net/wireless/marvell8686/README
+new file mode 100644
+index 0000000..5dca07e
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/README
+@@ -0,0 +1,1587 @@
++===============================================================================
++ U S E R M A N U A L
++
++1) FOR DRIVER BUILD
++
++ Goto source code directory src_xxxx.
++ make [clean] build
++ The driver and utility binaries can be found in ../bin_xxxx directory.
++
++2) FOR DRIVER INSTALL
++
++ a) Copy helper_sd.bin and sd8xxx.bin to /lib/firmware/mrvl/ directory,
++ create the directory if it doesn't exist.
++ b) insmod sdio.o (or sdio.ko) [clkrate=5|10|20] [intmode=0|1] [gpiopin=n]
++ The default SDIO clock frequency is 20 MHz. It can be changed to 10 MHz or 5 MHz.
++ intmode -- 0 for SDIO (default)
++ intmode -- 1 for GPIO, gpiopin for GPIO pin# has to be specified in this mode.
++ c) insmod sd8xxx.o (or sd8xxx.ko) helper_name=/lib/firmware/mrvl/helper_sd.bin \
++ fw_name=/lib/firmware/mrvl/sd8xxx.bin
++
++ To install SD8xxx Driver with user-specified helper file /lib/firmware/mrvl/helper_sd.bin and
++ MFG firmware file /lib/firmware/mrvl/sd8xxxmfg.bin, using the following command:
++ insmod sdio.o (or sdio.ko)
++ insmod sd8xxx.o (or sd8xxx.ko) mfgmode=1 helper_name=/lib/firmware/mrvl/helper_sd.bin \
++ fw_name=/lib/firmware/mrvl/sd8xxxmfg.bin
++
++3) FOR DRIVER PROC & DEBUG
++
++ The following info are provided in /proc/net/wlan/info,
++
++ driver_name = "wlan"
++ driver_version = <chip id, firmware version and driver version>
++ InterfaceName = "ethX"
++ Mode = "Ad-hoc" | "Managed" | "Auto" | "Unknown"
++ State = "Disconnected" | "Connected"
++ MACAddress = <6-byte adapter MAC address>
++ MCCount = <multicast address count>
++ ESSID = <current SSID>
++ Channel = <current channel>
++ region_code = <current region code>
++ MCAddr[n] = <multicast address>
++ num_tx_bytes = <number of bytes sent to device>
++ num_rx_bytes = <number of bytes received from device and sent to kernel>
++ num_tx_pkts = <number of packets sent to device>
++ num_rx_pkts = <number of packets received from device and sent to kernel>
++ num_tx_pkts_dropped = <number of tx packets dropped by driver>
++ num_rx_pkts_dropped = <number of rx packets dropped by driver>
++ num_tx_pkts_err = <number of tx packets failed to send to device>
++ num_rx_pkts_err = <number of rx packets failed to receive from device>
++ carrier "on" | "off"
++ tx queue "stopped" | "started"
++ CurCmd "NULL" | <current command id and action>
++
++ The following debug info are provided in /proc/net/wlan/debug,
++
++ IntCounter = <interrupt count, cleared when interrupt handled>
++ ConnectStatus = <0/1, disconnected/connected>
++ wmmQStp = <0/1, WMM queue started/stopped>
++ wmmPkts = <number of tx packets in WMM queues>
++ wmmAcVo = <number of packets sent to device from WMM AcVo queue>
++ wmmAcVi = <number of packets sent to device from WMM AcVi queue>
++ wmmAcBE = <number of packets sent to device from WMM AcBE queue>
++ wmmAcBK = <number of packets sent to device from WMM AcBK queue>
++ PSMode = <0/1, CAM mode/PS mode>
++ PSState = <0/1/2/3, full power state/awake state/pre-sleep state/sleep state>
++ IsDeepSleep = <0/1, not deep sleep state/deep sleep state>
++ IsAutoDeepSleepEnabled = <0/1, not auto deep sleep mode/auto deep sleep mode>
++ WakeupDevReq = <0/1, wakeup device not required/required>
++ WakeupTries = <wakeup device count, cleared when device awake>
++ HS_Configured = <0/1, host sleep not configured/configured>
++ HS_Activated = <0/1, extended host sleep not activated/activated>
++ num_tx_timeout = <number of tx timeout>
++ num_cmd_timeout = <number of timeout commands>
++ TimeoutCmdId = <command id of the last timeout command>
++ TimeoutCmdAct = <command action of the last timeout command>
++ LastCmdId = <command id of the last several commands sent to device>
++ LastCmdAct = <command action of the last several commands sent to device>
++ LastCmdIndex = <0 based last command index>
++ LastCmdRespId = <command id of the last several command responses received from device>
++ LastCmdRespIndex = <0 based last command response index>
++ LastEvent = <event id of the last several events received from device>
++ LastEventIndex = <0 based last event index>
++ num_cmd_h2c_fail = <number of commands failed to send to device>
++ num_cmd_sleep_cfm_fail = <number of sleep confirm failed to send to device>
++ num_tx_h2c_fail = <number of data packets failed to send to device>
++ num_evt_deauth = <number of deauthenticated events received from device>
++ num_evt_disassoc = <number of disassociated events received from device>
++ num_evt_link_lost = <number of link lost events received from device>
++ num_cmd_deauth = <number of deauthenticate commands sent to device>
++ num_cmd_assoc_ok = <number of associate commands with success return>
++ num_cmd_assoc_fail = <number of associate commands with failure return>
++ dnld_sent = <0/1/2, send resources available/sending data to device/sending command to device>
++
++ Use dmesg or cat /var/log/debug to check driver debug messages.
++
++ Update /proc/sys/kernel/printk to change message log levels.
++ For example,
++ echo 6 > /proc/sys/kernel/printk (messages with a higher priority than 6
++ will be printed to the console)
++ echo 15 > /proc/sys/kernel/printk (all messages will be printed to console)
++
++4) FOR IWPRIV COMMAND
++
++NAME
++ This manual describes the usage of private commands used in Marvell WLAN
++ Linux Driver. All the commands available in Wlanconfig will not be available
++ in the iwpriv.
++
++ To use parameters as hex format, a'0x' must precede it for the parameters to
++ be parsed properly.
++
++SYNOPSIS
++ iwpriv <ethX> <command> [sub-command] ...
++
++ iwpriv ethX version
++ iwpriv ethX verext
++ iwpriv ethX scantype [sub-command]
++ iwpriv ethX getSNR <n>
++ iwpriv ethX getNF <n>
++ iwpriv ethX getRSSI <n>
++ iwpriv ethX setrxant <n>
++ iwpriv ethX getrxant
++ iwpriv ethX settxant <n>
++ iwpriv ethX gettxant
++ iwpriv ethX authalgs <n>
++ iwpriv ethX encryptionmode <n>
++ iwpriv ethX setregioncode <n>
++ iwpriv ethX getregioncode
++ iwpriv ethX setbcnavg <n>
++ iwpriv ethX getbcnavg
++ iwpriv ethX setdataavg <n>
++ iwpriv ethX getdataavg
++ iwpriv ethX setlisteninter <n>
++ iwpriv ethX getlisteninter
++ iwpriv ethX setmultipledtim <n>
++ iwpriv ethX getmultipledtim
++ iwpriv ethX atimwindow <n>
++ iwpriv ethX deepsleep <n>
++ iwpriv ethX autodeepsleep <n>
++ iwpriv ethX hscfg <n>
++ iwpriv ethX hssetpara <n>
++ iwpriv ethX deauth
++ iwpriv ethX adhocstop
++ iwpriv ethX radioon
++ iwpriv ethX radiooff
++ iwpriv ethX reasso-on
++ iwpriv ethX reasso-off
++ iwpriv ethX scanmode [sub-command]
++ iwpriv ethX setwpaie <n>
++ iwpriv ethX setaeskey <n>
++ iwpriv ethX getaeskey
++ iwpriv ethX rmaeskey
++ iwpriv ethX getcis
++ iwpriv ethX getlog
++ iwpriv ethX getadhocstatus
++ iwpriv ethX adhocgrate <n>
++
++Version 4 Command:
++ iwpriv ethX inactivityto <n>
++ iwpriv ethX sleeppd <n>
++ iwpriv ethX enable11d <n>
++ iwpriv ethX bgscan <n>
++ iwpriv ethX wmm <n>
++ iwpriv ethX tpccfg <n>
++ iwpriv ethX sdioclock <n>
++
++Version 5 Command:
++ iwpriv ethX ledgpio <n>
++ iwpriv ethX wmm_qosinfo <n>
++ iwpriv ethX scanprobes <n>
++ iwpriv ethX lolisteninter <n>
++ iwpriv ethX rateadapt <n> <m> <l> <k>
++ iwpriv ethX fwwakeupmethod <n>
++ iwpriv ethX txcontrol <n>
++ iwpriv ethX uapsdnullgen <n>
++ iwpriv ethX psnullinterval <n>
++ iwpriv ethX getrxinfo
++ iwpriv ethX gettxrate
++ iwpriv ethX bcninterval [n]
++ iwpriv ethX setcoalescing <n>
++ iwpriv ethX bcnmisto <n>
++ iwpriv ethX adhocawakepd <n>
++ iwpriv ethX sdiopullctrl <m> <n>
++ iwpriv ethX scantime [s] [a] [p]
++ iwpriv ethX ldocfg [n]
++ iwpriv ethX dataevtcfg [a] [b] [c] [d] [e] [f] [g] [h] [i]
++ iwpriv ethX sdiomode [n]
++ iwpriv ethX rtsctsctrl [n]
++ iwpriv ethX drvdbg [n] [m]
++ iwpriv ethX adhocgprot [n]
++ iwpriv ethX getrate
++ iwpriv ethX associate <n>
++ iwpriv ethX getdtim
++
++DESCRIPTION
++ Those commands are used to send additional commands to the Marvell WLAN
++ card via the Linux device driver.
++
++ The ethX parameter specifies the network device that is to be used to
++ perform this command on. it could be eth0, eth1 etc.
++
++version
++ This is used to get the current version of the driver and the firmware.
++
++verext
++ Retrieve and display an extended version string from the firmware
++
++ Usage:
++ iwpriv ethX verext [#]
++
++ where [#] is an optional argument to retrieve a specific version string,
++ omission of the argument retrieves the 0 indexed string
++
++scantype
++ This command is used to set the scan type to be used by the driver in
++ the scan command. This setting will not be used while performing a scan
++ for a specific SSID, as it is always done with scan type being active.
++
++ where the sub-commands are: -
++ active -- to set the scan type to active
++ passive -- to set the scan type to passive
++ get -- to get the scan type set in the driver
++
++getSNR
++ This command gets the average and non average value of Signal to Noise
++ Ratio of Beacon and Data.
++
++ where value is:
++ 0 -- Beacon non-average.
++ 1 -- Beacon average.
++ 2 -- Data non-average.
++ 3 -- Data average.
++
++ If no value is given, all four values are returned in the order mentioned
++ above.
++
++ Note: This command is available only when STA is connected.
++
++getRSSI
++ This command gets the average and non average value os Receive Signal
++ Strength of Beacon and Data.
++
++ where value is:
++ 0 -- Beacon non-average.
++ 1 -- Beacon average.
++ 2 -- Data non-average.
++ 3 -- Data average.
++
++ Note: This command is available only when STA is connected.
++
++getNF
++ This command gets the average and non average value of Noise Floor of
++ Beacon and Data.
++
++ where value is:
++ 0 -- Beacon non-average.
++ 1 -- Beacon average.
++ 2 -- Data non-average.
++ 3 -- Data average.
++
++ Note: This command is available only when STA is connected.
++
++setrxant
++ This command is used to set the mode for Rx antenna.
++
++ The options that can be sent are:-
++ 1 -- Antenna 1.
++ 2 -- Antenna 2.
++ 0xFFFF -- Diversity.
++
++ Usage:
++ iwpriv ethX setrxant 0x01: select Antenna 1.
++
++getrxant
++ This command is used to get the mode for Rx antenna.
++
++settxant
++ This command is used to set the mode for Tx antenna.
++ The options that can be sent are:-
++ 1 -- Antenna 1.
++ 2 -- Antenna 2.
++ 0xFFFF -- Diversity.
++ Usage:
++ iwpriv ethX settxant 0x01: select Antenna 1.
++
++gettxant
++ This command is used to get the mode for Tx antenna.
++
++authalgs
++ This command is used by the WPA supplicant to set the authentication
++ algorithms in the station.
++
++encryptionmode
++ This command is used by the WPA supplicant to set the encryption algorithm.
++
++ where values can be:-
++ 0 -- NONE
++ 1 -- WEP40
++ 2 -- TKIP
++ 3 -- CCMP
++ 4 -- WEP104
++
++setregioncode
++ This command is used to set the region code in the station.
++ where value is 'region code' for various regions like
++ USA FCC, Canada IC, France, Europe ETSI, Japan ...
++
++ Usage:
++ iwpriv ethX setregioncode 0x10: set region code to USA (0x10).
++
++getregioncode
++ This command is used to get the region code information set in the
++ station.
++
++setbcnavg
++ Set the weighting factor for calculating beacon average RSSI and SNR.
++ where value can be:
++ 0 -- default beacon averaging factor (8)
++ 1-8 -- beacon averaging factor
++ Usage:
++ iwpriv ethX setbcnavg 0
++ iwpriv ethX setbcnavg 8
++
++getbcnavg
++ Get the weighting factor for calculating beacon average RSSI and SNR.
++ Usage:
++ iwpriv ethX getbcnavg
++
++setdataavg
++ Set the weighting factor for calculating data average RSSI and SNR.
++ where value can be:
++ 0 -- default data averaging factor (8)
++ 1-8 -- data averaging factor
++ Usage:
++ iwpriv ethX setdataavg 0
++ iwpriv ethX setdataavg 8
++
++getdataavg
++ Get the weighting factor for calculating data average RSSI and SNR.
++ Usage:
++ iwpriv ethX getdataavg
++
++setlisteninter
++ This command is used to set the listen interval in the
++ station.
++
++ where the value ranges between 1 - 255
++
++getlisteninter
++ This command is used to get the listen interval value set in the
++ station.
++
++setmultipledtim
++ This command is used to set the multiple dtim value in the
++ station.
++ where the value is 1,2,3,4,5,0xfffe
++ 65534 (0xfffe) means that the dtim will be ignored in firmware,
++ listen interval or local listen interval will be used.
++
++getmultipledtim
++ This command is used to get the multiple dtim value set in the station.
++
++atimwindow
++ This command is used to set atim value in the station when an argument is given,
++ return the atim value set by the user and the current atim value if adapter is in connected state.
++ The valid atimwindow is between 0 - 50.
++
++ Usage:
++ iwpriv ethX atimwindow 0 (set atimwindow to 0)
++
++ not connected:
++ iwpriv ethX atimwindow (get atimwindow value set by user)
++
++ connected:
++ iwpriv ethX atimwindow (get atimwindow set by user previously
++ and current atimwindow)
++
++deauth
++ This command is used to send the de-authentication to the AP with which
++ the station is associated. This command is valid only when
++ station is in Infrastructure mode.
++
++ Note: This command is available only when STA is connected.
++
++reasso-on
++ This command is used to enable re-association function in dirver.
++
++reasso-off
++ This command is used to disable re-association function in driver
++
++adhocstop
++ This command is used to stop beacon transmission from the station and
++ go into idle state in ad-hoc mode.
++
++ Note: This command is available only when STA is connected.
++
++radioon
++ This command is used to turn on the RF antenna.
++
++radiooff
++ This command is sued to turn off the RF antenna.
++
++scanmode
++ This command is used to set the station to scan for either IBSS
++ networks or BSS networks or both BSS and IBSS networks. This
++ command can be used with sub commands,
++
++ where the value for
++ bss -- Scan All the BSS networks.
++ ibss -- Scan All the IBSS networks.
++ any -- Scan both BSS and IBSS networks.
++
++deepsleep
++ This command is used to configure the station in deepsleep mode.
++
++ where the option is:
++ 1 -- Enable deepsleep mode
++ 0 -- Disable deepsleep mode
++ 2 -- Display deepsleep setting
++ Usage:
++ iwpriv ethX deepsleep 1
++ Enable deepsleep mode
++ iwpriv ethX deepsleep 0
++ Disable deepsleep mode
++ iwpriv ethX deepsleep 2
++ Display deepsleep setting
++
++autodeepsleep
++ This command is used to configure the station in auto deepsleep mode.
++
++ where the option is:
++ 1 -- Enable auto deepsleep mode
++ 0 -- Disable auto deepsleep mode
++ Usage:
++ iwpriv ethX autodeepsleep
++ Read the current auto deepsleep setting
++ iwpriv ethX autodeepsleep 1
++ Enable auto deepsleep mode
++ iwpriv ethX autodeepsleep 0
++ Disable auto deepsleep mode
++
++hscfg
++ This command is used to configure the host sleep parameters.
++
++ iwpriv ethX hscfg Condition [GPIO# [Gap]]
++
++ Note:
++
++ 1) This command takes one (Condition) or two (Condition and GPIO#) or three (Condition, GPIO# and gap)
++ parameters.
++
++ where Condition is:
++ bit 0 = 1 -- broadcast data
++ bit 1 = 1 -- unicast data
++ bit 2 = 1 -- mac event
++ bit 3 = 1 -- multicast packet
++
++ where GPIO is the pin number of GPIO used to wakeup the host. It could be any valid
++ GPIO pin# (e.g. 0-7) or 0xff (Interface, e.g. SDIO will be used instead).
++
++ where Gap is the gap in milli seconds between wakeup signal and wakeup event
++ or 0xff for special setting.
++
++ 2) the Host Sleep mode will be cancelled if condition is set to -1.
++
++ 3) Usage:
++ iwpriv eth1 hscfg -1 # cancel host sleep mode
++
++ iwpriv eth1 hscfg 3 # broadcast and unicast data
++ # use GPIO and GAP set previously
++
++ iwpriv eth1 hscfg 2 0x3 # unicast data
++ # use GPIO 3
++ # use GAP set previously
++
++ iwpriv eth1 hscfg 2 1 0xa0 # unicast data
++ # use GPIO 1
++ # gap: 160 ms
++
++ iwpriv eth1 hscfg 2 0xff # unicast data
++ # use Interface (e.g. SDIO)
++ # use GAP set previously
++
++ iwpriv eth1 hscfg 0x2 0x3 0xff # unicast data
++ # use GPIO 3
++ # special host sleep mode
++
++ iwpriv eth1 hscfg 0x2 0xff 0xff # unicast data
++ # use Interface (e.g. SDIO)
++ # special host sleep mode
++
++hssetpara
++ This command is used to set host sleep parameters.
++
++ iwpriv ethX hssetpara Condition [GPIO# [Gap]]
++
++ Note:
++ 1) The usages of parameters are the same as "hscfg" command.
++ 2) The parameters will be saved in the driver and be usded when host suspends.
++
++setwpaie
++ This command is used by WPA supplicant to send the WPA-IE to the driver.
++
++setaeskey
++ This command is used to set the AES key, when the station is in Ad-hoc
++ mode.
++
++ where value can be any 16 byte value.
++
++ Usage:
++ iwpriv ethX setaeskey 12345678901234567890123456789012
++
++getaeskey
++ This command is used to get the AES key, when the station is in Ad-hoc
++ mode.
++
++rmaeskey
++ This command is used to remove the Ad-Hoc AES key that is previously set.
++ It will disable ad-hoc AES as well.
++
++getcis
++ This command is used to read the Card Info Structure Table.
++
++getlog
++ This command is used to get the 802.11 statistics available in the
++ station.
++
++ Note: This command is available only when STA is connected.
++
++getadhocstatus
++ This command is used to get the ad-hoc Network Status.
++
++ The various status codes are:
++ AdhocStarted
++ AdhocJoined
++ AdhocIdle
++ InfraMode
++ AutoUnknownMode
++
++ Note: This command is available only when STA is connected.
++
++adhocgrate
++ This command is used to enable(1) g_rate, Disable(0) g_rate
++ and request(2) the status which g_rate is disabled/enabled,
++ for Ad-hoc creator.
++
++ where value is:
++ 0 -- Disable
++ 1 -- Enable
++ 2 -- Get
++
++ledgpio
++ This command is used to set/get LED settings.
++
++ iwpriv ethX ledgpio <LEDs>
++ will set the corresponding LED for the GPIO Line.
++
++ iwpriv ethX ledgpio
++ will get the current LEDs settings.
++
++ Usage:
++ iwpriv eth1 ledgpio 1 0 2 1 3 16
++ LED 1 -> GPIO 0
++ LED 2 -> GPIO 1
++ LED 3 -> disable
++
++ iwpriv eth1 ledgpio
++ shows LED information in the format as mentioned above.
++
++ Note: LED 0 is invalid
++ Maximum Number of LEDs are 3.
++
++inactivityto
++ This command is used by the host to set/get the inactivity timeout value,
++ which specifies when WLAN device is put to sleep.
++
++ Usage:
++ iwpriv ethX inactivityto [<timeout>]
++
++ where the parameter are:
++ timeout: timeout value in milliseconds.
++
++ Example:
++ iwpriv eth1 inactivityto
++ "get the timeout value"
++
++ iwpriv eth1 inactivityto X
++ "set timeout value to X ms"
++
++sleeppd
++ This command is used to configure the sleep period of the WLAN device.
++
++ Usage:
++ iwpriv ethX sleeppd [<sleep period>]
++
++ where the parameter are:
++ Period: sleep period in milliseconds. Range 10~60.
++
++ Example:
++ iwpriv eth1 sleeppd 10
++ "set period as 10 ms"
++ iwpriv eth1 sleeppd
++ "get the sleep period configuration"
++
++enable11d
++ This command is used to control 11d
++ where value is:
++ 1 -- Enable
++ 0 -- Disable
++ 2 -- Get
++
++wmm
++ This command is used to control WMM
++
++ where value is:
++ 0 -- Disable
++ 1 -- Enable
++ 2 -- Get
++
++
++bgscan
++ Enables or disables the Background scan.
++
++ The configuration for bg scan must be set using wlanconfig
++
++ Usage:
++ wlanconfig ethX bgscanconfig bg_scan_config.conf
++ iwpriv ethX bgscan 0 (disable)
++ iwpriv ethX bgscan 1 (enable)
++ iwpriv ethX bgscan 2 (display enable or disable)
++
++tpccfg
++ Enables or disables automatic transmit power control.
++
++ The first parameter turns this feature on (1) or off (0). When turning
++ on, the user must also supply four more parameters in the following
++ order:
++ -UseSNR (Use SNR (in addition to PER) for TPC algorithm),
++ -P0 (P0 power level for TPC),
++ -P1 (P1 power level for TPC),
++ -P2 (P2 power level for TPC).
++
++ Usage:
++ iwpriv ethX tpccfg: Get current configuration
++ iwpriv ethX tpccfg 0: disable auto TPC
++ iwpriv ethX tpccfg 0x01 0x00 0x05 0x0a 0x0d: enable auto TPC; do not use SNR;
++ P0=0x05; P1=0x0a; P2=0x0d;
++ iwpriv ethX tpccfg 0x01 0x01 0x05 0x0a 0x0d: enable auto TPC; use SNR;
++ P0=0x05; P1=0x0a; P2=0x0d.
++
++sdioclock
++ Turn On(1) or Off(0) the SDIO clock.
++
++ Usage:
++ iwpriv ethX sdioclock 1 (on)
++ iwpriv ethX sdioclock 0 (off)
++
++wmm_qosinfo
++ This command sets WMM IE QOS info when an argument is given, and gets current WMM
++ IE QOS info when no argument is given.
++
++ Usage:
++ iwpriv ethX wmm_qosinfo 0x0f (set WMM IE QOS info to 0x0f)
++ iwpriv ethX wmm_qosinfo (get WMM IE QOS info)
++
++scanprobes
++ This command sets number of probe requests per channel.
++
++ Usage:
++ iwpriv ethX scanprobes 3 (set scan probes to 3)
++ iwpriv ethX scanprobes (get scan probes)
++
++lolisteninter
++ This command sets the value of listen interval.
++
++ Usage:
++ iwpriv ethX lolisteninter 234 (set the lolisteninter to 234)
++ iwpriv ethX lolisteninter (get the lolisteninter value)
++
++rateadapt
++ This command sets the data rates bitmap.
++ Where <n>
++ 0: no HW rate drop
++ 1: HW table rate drop
++ 2: HW single rate drop
++ <m>
++ data rate bitmap
++ Bit Data rate
++ 0 1 Mbps
++ 1 2 Mbps
++ 2 5.5 Mbps
++ 3 11 Mbps
++ 4 Reserved
++ 5 6 Mbps
++ 6 9 Mbps
++ 7 12 Mbps
++ 8 18 Mbps
++ 9 24 Mbps
++ 10 36 Mbps
++ 11 48 Mbps
++ 12 54 Mbps
++ 12-15 Reserved
++ <l> Threshold, Number of same rate retries before switch to Final rate.
++ Used only if HW single rate drop is selected. Typical values are from 3 to 6.
++
++ <k> Final Rate, This value is used only if HW single rate drop is selected.
++ value Data rate
++ 0 1 Mbps
++ 1 2 Mbps
++ 2 5.5 Mbps
++ 3 11 Mbps
++ 4 Reserved
++ 5 6 Mbps
++ 6 9 Mbps
++ 7 12 Mbps
++ 8 18 Mbps
++ 9 24 Mbps
++ 10 36 Mbps
++ 11 48 Mbps
++ 12 54 Mbps
++ 13-15 Reserved
++ Usage:
++ iwpriv ethX rateadapt
++ read the currect data rate setting
++ iwpriv ethX rateadapt 1 0x07
++ enable hardware auto data rate adapt and
++ data rates are 1Mbps, 2Mbsp and 5.5Mbps
++ iwpriv ethX rateadapt 2 0x0f 6 2
++ use HW single rate drop, data rates are 1Mbps, 2Mbsp and 5.5Mbps, 11Mbps
++ Threshold is 6, Final Rate is 5.5 Mbps
++
++fwwakeupmethod
++ This command is used to set the firmware wakeup method.
++
++ where value <n> is:
++ 0 -- Leave the current method to wakeup firmware unchanged
++ 1 -- Firmware wakeup through the interface command interrupt
++ -- (default setting for SDIO/GSPI)
++ 2 -- Firmware wakeup through the GPIO pin
++ -- (default setting for CF)
++
++ Usage:
++ iwpriv ethX fwwakeupmethod
++ Read the current firmware wakeup method setting
++ iwpriv ethX fwwakeupmethod 0
++ Leave the current method to wakeup firmware unchanged
++ iwpriv ethX fwwakeupmethod 1
++ Firmware wakeup through the interface command interrupt
++ iwpriv ethX fwwakeupmethod 2
++ Firmware wakeup through the GPIO pin
++
++txcontrol [DefaultFlags (if no UP setting)] [UserPriority] [UserPriorityFlags]
++ This command is used to set/get the TX rate, WMM ack policy, and
++ retry limit for all packets, or selectively the packets with a specific
++ user priority.
++
++ The DefaultFlags setting is ignored for any command with 2 or more
++ arguments.
++
++ The value of the u32 txcontrol flags returned and input for
++ DefaultFlags or UserPriorityFlags specific settings is given by the
++ following bitmap:
++
++ bit[4:0], if bit[4] == 1:
++ bit[3:0] -- 0 1 2 3 4 5 6 7 8 9 10 11 12 13-16
++ Data Rate(Mbps) -- 1 2 5.5 11 Rsv 6 9 12 18 24 36 48 54 Rsv
++
++ bit[12:8]
++ if bit[12] == 1, bit[11:8] specifies the Tx retry limit.
++
++ bit[14:13] specifies per packet ack policy:
++ if bit[14] == 1, bit[13] == 1 specifies No Ack Policy
++
++ All unused and reserved bits should be set to zero for the entire
++ u32 field.
++
++ Usage:
++ Number of arguments given:
++
++ 0: Return the default setting for the txcontrol flags
++ > iwpriv eth1 txcontrol
++
++ 1: Set the default value for the txcontrol flags
++ > iwpriv eth1 txcontrol 0x6013 - No ACK, 11Mbps
++ > iwpriv eth1 txcontrol 0x151A - 5 retries, 36Mbps
++
++ 2: Return a specific User Priority setting. If the UP setting is zero,
++ the default value will be used and returned:
++ > iwpriv eth1 txcontrol 0 7 - Return UP 7 txcontrol value (UP7 = VO)
++
++ 3: Set a User Priority specific value for the txcontrol flags. A value
++ of zero will revert to the default setting:
++ > iwpriv eth1 txcontrol 0 5 0x6013 - (UP5 = VI), No ACK 11Mbps.
++
++uapsdnullgen
++ This command is used to enable(1) UAPSD null package generation,
++ Disable(0) UAPSD null package generation, and request(2) the status
++ which null package generation is disabled/enabled,
++ for Ad-hoc creator.
++
++ where value is:
++ 0 -- Disable
++ 1 -- Enable
++ 2 -- Get
++
++psnullinterval
++ This command is used to set/request NULL package interval for Power Save
++ under infrastructure mode.
++
++ where value is:
++ -1 -- Disable
++ n>0 -- Set interval as n (seconds)
++
++getrxinfo
++ This command gets non average value of Signal to Noise Ratio of Data and rate index.
++
++ The following table shows RateIndex and Rate
++
++ RateIndex Data rate
++ 0 1 Mbps
++ 1 2 Mbps
++ 2 5.5 Mbps
++ 3 11 Mbps
++ 4 Reserved
++ 5 6 Mbps
++ 6 9 Mbps
++ 7 12 Mbps
++ 8 18 Mbps
++ 9 24 Mbps
++ 10 36 Mbps
++ 11 48 Mbps
++ 12 54 Mbps
++ 13-15 Reserved
++
++gettxrate
++ This command gets current Tx rate index of the first packet associated with Rate Adaptation.
++
++ The following table shows RateIndex and Rate
++
++ RateIndex Data rate
++ 0 1 Mbps
++ 1 2 Mbps
++ 2 5.5 Mbps
++ 3 11 Mbps
++ 4 Reserved
++ 5 6 Mbps
++ 6 9 Mbps
++ 7 12 Mbps
++ 8 18 Mbps
++ 9 24 Mbps
++ 10 36 Mbps
++ 11 48 Mbps
++ 12 54 Mbps
++ 13-15 Reserved
++
++bcninterval
++ This command is used to set beacon interval in adhoc mode when an argument is given,
++ return the value set by the user and the current adhoc beacon interval if adapter is in connected state.
++ The valid beacon interval is between 20 - 1000, default beacon interval is 100.
++
++ Usage:
++ iwpriv ethX bcninterval 100 (set adhoc beacon interval to 100)
++
++ not connected:
++ iwpriv ethX bcninterval (get adhoc beacon interval set by user)
++
++ connected:
++ iwpriv ethX bcninterval (get adhoc beacon interval set by user previously
++ and current beacon interval)
++
++setcoalescing
++ This command is used to disable/enable IBSS coalescing function, and get IBSS coalescing status.
++
++ where value is:
++ 0 -- Disable IBSS coalescing function
++ 1 -- Enable IBSS coalescing function
++ 2 -- Get current IBSS coalescing status
++
++bcnmisto
++ This command is used to set/get beacon miss timeout for Power Save
++ under infrastructure mode.
++
++ where value is:
++ 0xffff -- Disabled
++ 0 -- no change
++ 1--50 (miliseconds)
++
++adhocawakepd
++ This command is used to set/get adhoc awake period for Power Save Mode.
++
++ where value is:
++ 0xff -- firmware will go to sleep after send out beacon
++ 0--no change
++ 1--31 (beacon interval)
++
++sdiopullctrl
++ This command is used to set/get seting of pulling up and pulling down of SDIO lines,
++ The PullUp is the delay before pulling SDIO lines up. The PullDown is the
++ delay before pull SDIO lines down. the unit is us for both PullUp and PullDown.
++
++ where <m> PullUp
++ 0--no delay is needed
++ 0xffff--no pulling up is needed
++
++ <n> PullDown
++ 0--no delay is needed
++ 0xffff--no pulling up is needed
++
++ Usage:
++ iwpriv ethX sdiopullctrl
++ Read the currect firmware SDIO PullUp and PullDown settings
++ iwpriv ethX sdiopullctrl 5 5
++ Set SDIO PullUp/PullDown to 5 us
++ iwpriv ethX sdiopullctrl 0xffff 0xffff
++ Disable SDIO PullUp and PullDown
++
++scantime
++ This command is used to set/get scan time per channel in milliseconds.
++ The current setting will be returned every time.
++
++ Usage:
++ iwpriv ethX scantime [s] [a] [p]
++
++ where the parameters are,
++ [s]: specific SSID/BSSID scan time, default 100 ms, max 500 ms
++ [a]: active scan time, default 100 ms, max 500 ms
++ [p]: passive scan time, default 100 ms, max 2000 ms
++ No change if the parameter is 0 or the parameter is not provided.
++
++ For example:
++ iwpriv ethX scantime 30 (set specific scan time to 30 ms)
++ iwpriv ethX scantime 0 100 (set active scan time to 100 ms)
++ iwpriv ethX scantime 30 80 200 (set specific scan time to 30 ms,
++ set active scan time to 80 ms,
++ set passive scan time to 200 ms)
++
++ldocfg
++ This command is used to set/get internal/external core power voltage source.
++ By default firmware uses internal LDO for 1.2V core power supply.
++ The current setting will be returned if no parameter provided.
++
++ Usage:
++ iwpriv ethX ldocfg [n]
++
++ where the parameter is,
++ 0 -- internal
++ 1 -- external
++
++dataevtcfg
++ This command is used to set/get the subscription of low RSSI, low SNR, high RSSI and
++ high SNR events in data packet.
++
++ Where value <a> is:
++ Events bitmap
++ Bit
++ 0 RSSI_LOW RSSI_LOW event is generated when avg data RSSI is below threshold
++ 1 SNR_LOW SNR_LOW event is generated when avg data SNR is below threshold
++ 2 RSSI_HIGH RSSI_HIGH event is generated when avg data RSSI go above threshold
++ 3 SNR_HIGH SNR_HIGH event is generated when avg data SNR go above threshold
++
++ Where value <b> is:
++ RSSI_LOW threshold (Absolute value, the actual value should be negative)
++ Where value <c> is:
++ RSSI_LOW reporting frequency. if set to 0, event will only report once.
++ if set to 1, event will be reported every time it occur.
++ if set to N, event will be reported only when the condition happens N consecutive times.
++
++ Where value <d> is:
++ SNR_LOW threshold
++ Where value <e> is:
++ SNR_LOW reporting frequency. if set to 0, event will only report once.
++ if set to 1, event will be reported every time it occur.
++ if set to N, event will be reported only when the condition happens N consecutive times.
++
++ Where value <f> is:
++ RSSI_HIGH threshold (Absolute value, the actual value should be negative)
++ Where value <g> is:
++ RSSI_HIGH reporting frequency. if set to 0, event will only report once.
++ if set to 1, event will be reported every time it occur.
++ if set to N, event will be reported only when the condition happens N consecutive times.
++
++ Where value <h> is:
++ SNR_HIGH threshold
++ Where value <i> is:
++ SNR_HIGH reporting frequency. if set to 0, event will only report once.
++ if set to 1, event will be reported every time it occur.
++ if set to N, event will be reported only when the condition happens N consecutive times.
++
++ Usage:
++ iwpriv ethX dataevtcfg (get current data subscribe event settings)
++ iwpriv ethX dataevtcfg 15 70 1 56 0 40 5 86 0
++ (set current data subscribe event,
++ when avg data RSSI below -70, such as -80,
++ RSSI_LOW event will be generated every time;
++ when avg data RSSI above -40 happens 5 consecutive times,
++ such as -30,-32,-34,-29,-33, RSSI_HIGH event will be generated 1 times;
++ when avg data SNR below 56 or above 86,
++ SNR_LOW or SNR_HIGHT event will be generated once)
++
++sdiomode
++ This command is used to set/get sdio mode.
++ The setting will take effect when next command 53 is issued.
++
++ where the parameter <n> is,
++ 1 -- set sdio to 1 bit mode
++ 4 -- set sdio to 4 bit mode
++
++ Usage:
++ iwpriv ethX sdiomode (get current sdio mode)
++ iwpriv ethX sdiomode 1 (set to 1 bit mode)
++ iwpriv ethX sdiomode 4 (set to 4 bit mode)
++
++rtsctsctrl
++ This command is used to set/get the RTS/CTS or CTS To SELF for g rate protection to the firmware.
++ where the parameter <n> is,
++ 1 -- set RTS/CTS for g rate protection to the firmware.
++ 0 -- set CTS To SELF for g rate protection to the firmware.
++
++ Usage:
++ iwpriv ethX rtsctsctrl (gets the RTS/CTS or CTS To SELF)
++ iwpriv ethX rtsctsctrl 1 (set RTS/CTS for g rate protection to the firmware.)
++ iwpriv ethX rtsctsctrl 0 (set CTS To SELF for g rate protection to the firmware.)
++
++drvdbg
++ This command is used to set/get the bit masks of driver debug message control.
++
++ Usage:
++ iwpriv ethX drvdbg [n] [m]
++
++ Where the parameter <n> is the generic debug message control bit mask.
++ The following types of driver debug messages can be dynamically enabled or
++ disabled by setting or clearing the corresponding bits,
++ bit 0: MSG PRINTM(MSG,...)
++ bit 1: FATAL PRINTM(FATAL,...)
++ bit 2: ERROR PRINTM(ERROR,...)
++ bit 3: DATA PRINTM(DATA,...)
++ bit 4: CMND PRINTM(CMND,...)
++ bit 5: EVENT PRINTM(EVENT,...)
++ bit 6: INTR PRINTM(INTR,...)
++ ...
++ bit 16: DAT_D PRINTM(DAT_D,...), DBG_HEXDUMP(DAT_D,...)
++ bit 17: CMD_D PRINTM(CMD_D,...), DBG_HEXDUMP(CMD_D,...)
++ bit 18: FW_D PRINTM(FW_D,...)
++ ...
++ bit 28: ENTRY PRINTM(ENTRY,...), ENTER(), LEAVE()
++ bit 29: WARN PRINTM(WARN,...)
++ bit 30: INFO PRINTM(INFO,...)
++
++ Where the parameter <m> is the extended interface module debug message control
++ bit mask. The following types of debug messages can be controlled.
++
++ bit 0: IF_D PRINTM(IF_D,...), DBG_HEXDUMP(IF_D,...)
++
++ If CONFIG_DEBUG=2, all kinds of debug messages can be configured.
++ By default all debug messages are enabled except for EVENT and IF_D.
++
++ If CONFIG_DEBUG=1, all kinds of debug messages can be configured except
++ for ENTRY, WARN and INFO. By default MSG and FATAL are enabled.
++
++ Some special debug messages,
++ '*' // WLAN driver ISR is called (bit 6 INTR enabled)
++ '|' // PS awake event is received (bit 5 EVENT enabled)
++ '_' // PS sleep event is received (bit 5 EVENT enabled)
++ '+' // PS sleep confirm is sent (bit 5 EVENT enabled)
++
++ For example:
++ iwpriv ethX drvdbg (get the current driver debug masks)
++ iwpriv ethX drvdbg 0 0 (disable all the debug messages)
++ iwpriv ethX drvdbg 7 (enable MSG, FATAL and ERROR messages,
++ no change for if debug control)
++ iwpriv ethX drvdbg 3 1 (enable MSG and FATAL messages,
++ enable IF_D message)
++ iwpriv ethX drvdbg -1 -1 (enable all the debug messages)
++
++adhocgprot
++ This command is used to set/get 802.11g ad-hoc protection state.
++
++ where value is:
++ 0 -- Disable
++ 1 -- Enable
++ 2 -- Get
++ Usage:
++ iwpriv ethX adhocgprot 0 (disable 802.11g ad-hoc g protection)
++ iwpriv ethX adhocgprot 1 (enable 802.11g ad-hoc g protection)
++ iwpriv ethX adhocgprot 2 (get 802.11g ad-hoc g protection state)
++
++getrate
++ This command is used to get the supported rates. Returned rates are in 0.5M unit.
++
++associate <scan table index>
++ Associate to a specific BSS entry in the scan table. The enumeration
++ of the entries in the scan table is determined by the
++ getscantable API or from the iwlist scan results. A re-scan is not
++ performed before the association attempt is made.
++
++getdtim
++ This command is used to get the current DTIM value.
++ Note: This command is available only when STA is connected.
++
++
++===============================================================================
++
++ U S E R M A N U A L F O R W L A N _ C O N F I G
++
++NAME
++wlanconfig - configure the additional parameters available for the Marvell
++ WLAN Linux Driver.
++
++SYNOPSIS
++wlanconfig -v
++wlanconfig <ethX> <command> [parameters] ...
++
++wlanconfig ethX version
++wlanconfig ethX <rdmac|rdbbp|rdrf> <offset>
++wlanconfig ethX <wrmac|wrbbp|wrrf> <offset> <n>
++wlanconfig ethX sdcmd52r <FN no.> <address>
++wlanconfig ethX sdcmd52w <FN no.> <address> <data>
++wlanconfig ethX caldataext <filename>
++wlanconfig ethX rdeeprom <offset> <length>
++wlanconfig ethX sleepparams <config values>
++wlanconfig ethX bca-ts <config values>
++wlanconfig ethX extscan <ssid>
++wlanconfig ethX getscanlist
++
++Version 4 Command:
++wlanconfig ethX bgscanconfig <filename>
++
++Version 5 Command:
++wlanconfig ethX hostcmd <hostcmd.conf> <subevent_get>
++wlanconfig ethX hostcmd <hostcmd.conf> <subevent_set>
++
++Version 6 Command:
++wlanconfig ethX setuserscan [ARGS]
++wlanconfig ethX getscantable
++wlanconfig ethX getassocrsp
++
++Version 8
++wlanconfig ethX addts <filename.conf> <section# of tspec> <timeout in ms>
++wlanconfig ethX delts <filename.conf> <section# of tspec>
++wlanconfig ethX qconfig set msdu <lifetime in TUs> [Queue Id: 0-3]
++wlanconfig ethX qconfig get [Queue Id: 0-3]
++wlanconfig ethX qconfig def [Queue Id: 0-3]
++wlanconfig ethX qstats on [Queue Id: 0-3]
++wlanconfig ethX qstats off [Queue Id: 0-3]
++wlanconfig ethX qstats get [Queue Id: 0-3]
++wlanconfig ethX hostcmd <hostcmd.conf> <pa_cfg_ext_get>
++wlanconfig ethX hostcmd <hostcmd.conf> <pa_cfg_ext_set>
++wlanconfig ethX hostcmd <hostcmd.conf> <arp_filter>
++wlanconfig ethX hostcmd <hostcmd.conf> <auto_tx_get>
++wlanconfig ethX hostcmd <hostcmd.conf> <NatKeepAlive>
++wlanconfig ethX hostcmd <hostcmd.conf> <auto_tx_unreg>
++wlanconfig ethX hostcmd <hostcmd.conf> <ledctrl_get>
++wlanconfig ethX hstest
++wlanconfig ethX getcfptable [region]
++
++Version 9
++wlanconfig ethX gettsf
++wlanconfig ethX arpfilter <arpfilter.conf>
++wlanconfig ethX txpktstats
++
++DESCRIPTION
++
++those commands are used in Marvell specic applicaion called wlanconfig.
++
++===========
++-v
++ This command is used to display the version of wlanconfig utility.
++ Usage:
++ wlanconfig -v
++
++rdmac
++rdbbp
++rdrf
++ These commands are used to read the MAC, BBP and RF registers from the
++ card. These commands take one parameter that specifies the offset
++ location that is to be read. This parameter can be specified either in
++ decimal or in hexadecimal (by preceding the number with a "0x").
++
++ Usage:
++ wlanconfig ethX rdmac 0xa123
++ wlanconfig ethX rdbbp 0x0123
++ wlanconfig ethX rdrf 0x0123
++
++wrmac
++wrbbp
++wrrf
++ These commands are used to write the MAC, BBP and RF registers in the
++ card. These commands take two parameters that specify the offset
++ location and the value that is to be written. This parameters can be
++ specified either in decimal or in hexadecimal (by preceding the number
++ with a "0x").
++
++ Usage:
++ wlanconfig ethX wrmac 0xa123 0xaa
++ wlanconfig ethX wrbbp 0x0123 0xaa
++ wlanconfig ethX wrrf 0x0123 0xaa
++
++sdcmd52r
++ This command is used to read a controller register in
++ Secure Digital I/O Interfaces.
++
++ wlanconfig eth1 sdcmd52r <function number> <register address>
++
++ Usage:
++ wlanconfig eth1 sdcmd52r 0x00 0x07
++
++sdcmd52w
++ This command is used to write to a controller register in
++ Secure Digital I/O Interfaces.
++
++ wlanconfig eth1 sdcmd52w <function number> <register address> <value>
++
++ Usage:
++ wlanconfig eth1 sdcmd52w 0x00 0x02 0x0a
++
++caldataext
++ In order to overcome the situation without EEPROM in the WLAN module,
++ we send the extension calibration command to modify the existing
++ hardware-spec command. This command takes one parameter that specifies
++ the file name of the configuration file.
++
++ Usage:
++ wlanconfig eth1 caldataext <cal_data_ext_set_<version>.conf>
++ cal_data_ext_set_<version>.conf is a configuration file to the
++ wlanconfig to set the calibration values. The 3 existing
++ versions are v5, vA and v7.
++ Example:
++ wlanconfig eth1 caldataext cal_data_ext_set_v5.conf
++ Edit this file for changing calibration values.
++
++rdeeprom
++ To read the EEPROM contents of the card.
++
++ Usage:
++ wlanconfig ethX rdeeprom 0x00 0x10
++
++sleepparams
++ This command is used to set the sleepclock configurations
++
++ Usage:
++ wlanconfig ethX sleepparams get: reads the current sleepclock configuration
++
++ wlanconfig ethX sleepparams set p1 p2 p3 p4 p5 p6: writes the sleepclock configuration.
++
++ where:
++ p1 is Sleep clock error in ppm (0-65535)
++ p2 is Wakeup offset in usec (0-65535)
++ p3 is Clock stabilization time in usec (0-65535)
++ p4 is Control periodic calibration (0-2)
++ p5 is Control the use of external sleep clock (0-2)
++ p6 is reserved for debug (0-65535)
++
++bca-ts
++ This command is used to set/get the BCA timeshare parameters.
++
++ This command only works after BCA been enabled.
++
++ Usage:
++ wlanconfig ethX bca-ts <Traffic Type> <TimeShareInterval> <BTTime>
++
++ where:
++ Traffic Type 0 - Wlan and bluetooth are low priority.
++ 1 - Wlan and bluetooth are high priority.
++
++ TimeShareInterval value is not multiple of 10 then floor value
++ is taken and the valid range is < 20 ... 60,000 > in milliseconds.
++
++ BTTime value is not multiple of 10 then floor value is
++ taken and the valid range is < 0 ... TimeShareInterval value >
++ in milliseconds.
++
++ Example:
++ wlanconfig ethX bca-ts get 1
++ get the BCA timeshare settings when wlan and bluetooth are set to high priority.
++
++ wlanconfig ethX bca-ts set 1 30 20
++ set wlan and bluetooth to high priority, wlan TimeShareInterval to 30ms, BTTime to 20ms.
++
++
++bgscanconfig
++ This will configure the various parameters for background scan.
++
++ wlanconfig ethX bgscanconfig bg_scan_config.conf
++
++ bg_scan_config.conf is the configuration file to wlanconfig
++
++ Edit this file for changing bg scan values.
++
++hostcmd <hostcmd.conf> <subevent_get>
++hostcmd <hostcmd.conf> <subevent_set>
++ This command is used to set the configurations for
++ event descriptor interface command.
++ hostcmd.conf is a generic configuration file containing multiple configuration enties
++ for subscrive event API
++ subsvent_get: get subscribed event parameters
++ subsvent_set: set subscribed event parameters
++
++ Usage:
++ wlanconfig ethX hostcmd hostcmd.conf subevent_get
++ wlanconfig ethX hostcmd hostcmd.conf subevent_set
++
++extscan
++ This command is used to do a specific scan.
++
++ Usage: wlanconfig ethX extscan <SSID>
++
++ Example:
++ wlanconfig ethX extscan LINKSYS-AP
++
++ To see the results of use getscanlist command.
++
++getscanlist
++ This command is used to get the scan results.
++
++ Usage: wlanconfig ethX getscanlist
++
++ Example:
++ wlanconfig ethX getscanlist
++
++setuserscan
++ Initiate a customized scan and retrieve the results
++
++ Usage:
++ wlanconfig ethX setuserscan [ARGS]
++
++ where [ARGS]:
++
++ chan=[chan#][band][mode] where band is [a,b,g] and mode is
++ blank for active or 'p' for passive
++ bssid=xx:xx:xx:xx:xx:xx specify a BSSID filter for the scan
++ ssid="[SSID]" specify a SSID filter for the scan
++ wc="[WILDCARD SSID]" specify a UNIX pattern matching filter (using *
++ and ?) for SSIDs found in a broadcast probe
++ keep=[0 or 1] keep the previous scan results (1), discard (0)
++ dur=[scan time] time to scan for each channel in milliseconds
++ probes=[#] number of probe requests to send on each chan
++ for each broadcast probe required and each SSID
++ specific probe required
++ type=[1,2,3] BSS type: 1 (Infra), 2(Adhoc), 3(Any)
++
++ Any combination of the above arguments can be supplied on the command line.
++ If the chan token is absent, a full channel scan will be completed by
++ the driver. If the dur or probes tokens are absent, the driver default
++ setting will be used. The bssid and ssid fields, if blank,
++ will produce an unfiltered scan. The type field will default to 3 (Any)
++ and the keep field will default to 0 (Discard).
++
++ Examples:
++ 1) Perform an active scan on channels 1, 6, and 11 in the 'g' band:
++ setuserscan chan=1g,6g,11g
++
++ 2) Perform a passive scan on channel 11 for 20 ms:
++ setuserscan chan=11gp dur=20
++
++ 3) Perform an active scan on channels 1, 6, and 11; and a passive scan on
++ channel 36 in the 'a' band:
++ setuserscan chan=1g,6g,11g,36ap
++
++ 4) Perform an active scan on channel 6 and 36 for a specific SSID:
++ setuserscan chan=6g,36a ssid="TestAP"
++
++ 5) Scan all available channels (B/G, A bands) for a specific BSSID, keep
++ the current scan table intact, update existing or append new scan data:
++ setuserscan bssid=00:50:43:20:12:82 keep=1
++
++ 6) Scan channel 6, for all infrastructure networks, sending two probe
++ requests. Keep the previous scan table intact. Update any duplicate
++ BSSID/SSID matches with the new scan data:
++ setuserscan chan=6g type=1 probes=2 keep=1
++
++ 7) Scan channel 1 and 6, for all networks matching the Mrvl*AP
++ or AP*Mrvl? patterns and for MrvlTst SSID. Generate 3 broadcast
++ probes for the patterns and 3 SSID specific probes for MrvlTst on
++ both channel 1 and channel 6.
++ chan=1g,6g probes=3 wc="Mrvl*AP" wc="AP*Mrvl?" ssid="MrvlTst"
++
++ All entries in the scan table (not just the new scan data when keep=1)
++ will be displayed upon completion by use of the getscantable ioctl.
++
++getscantable
++ Display the current contents of the driver scan table
++
++ Usage:
++ wlanconfig ethX getscantable
++ wlanconfig ethX getscantable [#]
++ wlanconfig ethX getscantable tsf
++ wlanconfig ethX getscantable help
++
++ 1) Without argument, the entire scantable is displayed.
++ 2) Specifying a # will display detailed information about a specific scan
++ table entry. '0' displays driver cached information regarding the
++ current association (if any).
++ 3) The tsf argument will display the entire scan table with the recorded
++ TSF timestamp for the entry.
++ 4) The help argument will display the legend for the capability field
++
++getassocrsp
++ Display the contents of the driver association response buffer. The
++ driver buffer is cleared after the response is returned to prevent
++ state response buffer returns.
++
++ Usage:
++ wlanconfig ethX getassocrsp
++
++setmrvltlv
++ Setup a test Marvell TLV for the driver to insert in the next
++ association command to the firmware.
++
++ wlanconfig will provision a test TLV that can be verified in the assoc.
++ response to the AP. Used to test the IOCTL functionality.
++
++ Usage:
++ wlanconfig ethX setmrvltlv
++
++addts
++ Send an ADDTS command to the associated AP.
++
++ Process a given conf file for a specific TSPEC data block. Send the
++ TSPEC along with any other IEs to the driver/firmware for transmission
++ in an ADDTS request to the associated AP.
++
++ Return the execution status of the command as well as the ADDTS response
++ from the AP if any.
++
++ Usage:
++ wlanconfig ethX addts <filename.conf> <section# of tspec> <timeout(ms)>
++
++delts
++ Send a DELTS command to the associated AP.
++
++ Process a given conf file for a specific TSPEC data block. Send the
++ TSPEC along with any other IEs to the driver/firmware for transmission
++ in a DELTS request to the associated AP.
++
++ Return the execution status of the command. There is no response to a
++ DELTS from the AP.
++
++ Usage:
++ wlanconfig ethX delts <filename.conf> <section# of tspec>
++
++qconfig
++ Send a WMM AC Queue configuration command to get/set/default params
++
++ Configure or get the parameters of a WMM AC queue. The command takes
++ an optional Queue Id as a last parameter. Without the queue id, all
++ queues will be acted upon.
++
++ Usage:
++ wlanconfig ethX qconfig set msdu <lifetime in TUs> [Queue Id: 0-3]
++ wlanconfig ethX qconfig get [Queue Id: 0-3]
++ wlanconfig ethX qconfig def [Queue Id: 0-3]
++
++qstats
++ Turn on/off or retrieve and clear the queue statistics for an AC
++
++ Turn the queue statistics collection on/off for a given AC or retrieve the
++ current accumulated stats and clear them from the firmware. The command
++ takes an optional Queue Id as a last parameter. Without the queue id,
++ all queues will be acted upon.
++
++ Usage:
++ wlanconfig ethX qstats on [Queue Id: 0-3]
++ wlanconfig ethX qstats off [Queue Id: 0-3]
++ wlanconfig ethX qstats get [Queue Id: 0-3]
++
++hostcmd <hostcmd.conf> <pa_cfg_ext_get>
++hostcmd <hostcmd.conf> <pa_cfg_ext_set>
++ This configures the power adaptation paramemters
++
++ Usage:
++ wlanconfig ethX hostcmd hostcmd.conf pa_cfg_ext_get
++ wlanconfig ethX hostcmd hostcmd.conf pa_cfg_ext_set
++
++ hostcmd.conf is a generic configuration file containing multiple configuration enties
++ for power adapation
++ pa_cfg_ext_get: get pa_cfg_ext parameters
++ pa_cfg_ext_set: set pa_cfg_ext parameters
++
++ The following table shows the bitmap of the rates (bit 0 is the least significant bit):
++
++ Bit Data rate
++ 0 1 Mbps
++ 1 2 Mbps
++ 2 5.5 Mbps
++ 3 11 Mbps
++ 4 Reserved
++ 5 6 Mbps
++ 6 9 Mbps
++ 7 12 Mbps
++ 8 18 Mbps
++ 9 24 Mbps
++ 10 36 Mbps
++ 11 48 Mbps
++ 12 54 Mbps
++ 13-15 Reserved
++
++ Up to 5 power level groups are supported.
++
++ The default power adaptation groups:
++
++ Power Level Rate Bitmap (Mbps)
++ 13 dbm 0x1800 (54, 48)
++ 15 dbm 0x07e0 (36, 24, 18, 12, 9, 6)
++ 18 dbm 0x000f (11, 5.5, 2, 1)
++
++ Edit the hostcmd.conf file to change the settings
++
++hostcmd <hostcmd.conf> <arp_filter>
++ This is an extended host_sleep_cfg command to configure the ARP filtering parameters.
++
++ Usage:
++ wlanconfig ethX hostcmd hostcmd.conf arp_filter
++
++ Edit the arp_filter section in hostcmd.conf file to change the settings
++
++hostcmd <hostcmd.conf> <auto_tx_get>
++hostcmd <hostcmd.conf> <NatKeepAlive>
++hostcmd <hostcmd.conf> <auto_tx_unreg>
++ This configures the Frame Auto Transmission paramemters
++
++ Usage:
++ wlanconfig ethX hostcmd hostcmd.conf auto_tx_get
++ wlanconfig ethX hostcmd hostcmd.conf NatKeepAlive
++ wlanconfig ethX hostcmd hostcmd.conf auto_tx_unreg
++
++ hostcmd.conf is a generic configuration file containing multiple configuration enties
++ for Frame Auto Transmission
++ auto_tx_get: get auto_tx parameters
++ NatKeepAlive: register to firmware for sending NAT Keep Alive packet
++ auto_tx_unreg: unregister to firmware auto_tx
++
++ Edit the auto_tx section in hostcmd.conf file to change the settings
++
++hostcmd <hostcmd.conf> <ledctrl_get>
++ This command is used to set/get LED control.
++
++ Usage:
++ wlanconfig ethX hostcmd hostcmd.conf ledctrl_get
++ wlanconfig ethX hostcmd hostcmd.conf ledctrl_set
++
++ hostcmd.conf is a generic configuration file containing multiple configuration enties
++ for LED Ctrl
++ led_ctrl_get: get auto_tx parameters
++ led_ctrl_set: set auto_tx parameters
++
++ Edit the ledctrl section in hostcmd.conf file to change the settings
++
++hstest
++ This command runs in the background to handle GPIO/SDIO interrupt events
++ in HOST SLEEP mode.
++
++ Usage:
++ wlanconfig ethX hstest &
++
++getcfptable
++ This command is used to get Channel-Freq-MaxTxPower table based on the region code.
++ If no parameter provided, the CFP table for current region code will be returned.
++
++ Usage:
++ wlanconfig ethX getcfptable [region]
++
++gettsf
++ Display the current MAC TSF value.
++
++arpfilter <arpfilter.conf>
++ This command is used to configure the ARP filtering parameters.
++
++ Usage:
++ wlanconfig ethX arpfilter arpfilter.conf
++
++ Edit arpfilter.conf file to change the settings
++
++txpktstats
++ Retrieve and clear transmit packet statistics collected by the firmware:
++
++ The API displays the following statistics for each rate:
++ - Number of packets initially queued using the rate
++ - Number of total attempts for the packets queued using this initial
++ rate. This includes attempts at other rates in case of hardware or
++ single rate drop modes.
++ - Number of retry exhaustion failures for packets queued using this
++ initial rate.
++ - Number of MSDU lifetime expiry failures for packets queued using
++ this initial rate.
++ - Number of packets successfully completed at this rate
++
++==============================================================================
+diff --git a/drivers/net/wireless/marvell8686/host.h b/drivers/net/wireless/marvell8686/host.h
+new file mode 100644
+index 0000000..cf4562a
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/host.h
+@@ -0,0 +1,349 @@
++/** @file host.h
++ *
++ * @brief This file contains definitions of WLAN commands.
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2007
++ */
++/********************************************************
++Change log:
++ 10/11/05: Add Doxygen format comments
++ 01/11/06: Remove assoc response codes; full IEEE assoc resp now returned
++ 04/06/06: Add TSPEC, queue metrics, and MSDU expiry support
++ 04/10/06: Add power_adapt_cfg_ext command
++ 04/18/06: Remove old Subscrive Event and add new Subscribe Event
++ implementation through generic hostcmd API
++ 05/03/06: Add auto_tx hostcmd
++ 05/04/06: Add IBSS coalescing related new hostcmd and event
++ 08/28/06: Add LED_CTRL hostcmd
++********************************************************/
++
++#ifndef _HOST_H_
++#define _HOST_H_
++
++/** PUBLIC DEFINITIONS */
++#define DEFAULT_AD_HOC_CHANNEL 6
++#define DEFAULT_AD_HOC_CHANNEL_A 36
++/** The first valid channel for use */
++#define FIRST_VALID_CHANNEL 0xff
++
++/** IEEE 802.11 OIDs */
++#define OID_802_11_INFRASTRUCTURE_MODE 0x00008001
++#define OID_802_11_FRAGMENTATION_THRESHOLD 0x00008002
++#define OID_802_11_RTS_THRESHOLD 0x00008003
++#define OID_802_11_ADD_WEP 0x00008004
++#define OID_802_11_REMOVE_WEP 0x00008005
++#define OID_802_11_TX_RETRYCOUNT 0x00008006
++#define OID_802_11D_ENABLE 0x00008007
++#define OID_802_11_DTIM 0x00008009
++
++#define HostCmd_OPTION_WAITFORRSP 0x0002
++
++/** Host Command ID */
++#define HostCmd_CMD_GET_HW_SPEC 0x0003
++#define HostCmd_CMD_802_11_RESET 0x0005
++#define HostCmd_CMD_802_11_SCAN 0x0006
++#define HostCmd_CMD_802_11_GET_LOG 0x000b
++#define HostCmd_CMD_MAC_MULTICAST_ADR 0x0010
++#define HostCmd_CMD_802_11_EEPROM_ACCESS 0x0059
++#define HostCmd_CMD_802_11_ASSOCIATE 0x0012
++#define HostCmd_CMD_802_11_SET_WEP 0x0013
++#define HostCmd_CMD_802_11_SNMP_MIB 0x0016
++#define HostCmd_CMD_MAC_REG_ACCESS 0x0019
++#define HostCmd_CMD_BBP_REG_ACCESS 0x001a
++#define HostCmd_CMD_RF_REG_ACCESS 0x001b
++#define HostCmd_CMD_802_11_RADIO_CONTROL 0x001c
++#define HostCmd_CMD_802_11_RF_CHANNEL 0x001d
++#define HostCmd_CMD_802_11_RF_TX_POWER 0x001e
++#define HostCmd_CMD_802_11_RSSI 0x001f
++#define HostCmd_CMD_802_11_RF_ANTENNA 0x0020
++
++#define HostCmd_CMD_802_11_PS_MODE 0x0021
++
++#define HostCmd_CMD_802_11_DEAUTHENTICATE 0x0024
++#define HostCmd_CMD_MAC_CONTROL 0x0028
++#define HostCmd_CMD_802_11_AD_HOC_START 0x002b
++#define HostCmd_CMD_802_11_AD_HOC_JOIN 0x002c
++
++#define HostCmd_CMD_802_11_KEY_MATERIAL 0x005e
++
++#define HostCmd_CMD_802_11_DEEP_SLEEP 0x003e
++
++#define HostCmd_CMD_802_11_AD_HOC_STOP 0x0040
++
++#define HostCmd_CMD_802_11_HOST_SLEEP_CFG 0x0043
++#define HostCmd_CMD_802_11_WAKEUP_CONFIRM 0x0044
++#define HostCmd_CMD_802_11_HOST_SLEEP_ACTIVATE 0x0045
++
++#define HostCmd_CMD_802_11_MAC_ADDRESS 0x004D
++#define HostCmd_CMD_802_11_EEPROM_ACCESS 0x0059
++
++#define HostCmd_CMD_802_11_BAND_CONFIG 0x0058
++
++#define HostCmd_CMD_802_11D_DOMAIN_INFO 0x005b
++
++#define HostCmd_CMD_802_11_SLEEP_PARAMS 0x0066
++
++#define HostCmd_CMD_802_11_INACTIVITY_TIMEOUT 0x0067
++
++#define HostCmd_CMD_802_11_SLEEP_PERIOD 0x0068
++#define HostCmd_CMD_802_11_BCA_CONFIG_TIMESHARE 0x0069
++
++#define HostCmd_CMD_802_11_BG_SCAN_CONFIG 0x006b
++#define HostCmd_CMD_802_11_BG_SCAN_QUERY 0x006c
++
++#define HostCmd_CMD_802_11_CAL_DATA_EXT 0x006d
++
++#define HostCmd_CMD_WMM_ADDTS_REQ 0x006E
++#define HostCmd_CMD_WMM_DELTS_REQ 0x006F
++#define HostCmd_CMD_WMM_QUEUE_CONFIG 0x0070
++#define HostCmd_CMD_WMM_GET_STATUS 0x0071
++
++#define HostCmd_CMD_802_11_TPC_CFG 0x0072
++
++#define HostCmd_CMD_802_11_FW_WAKE_METHOD 0x0074
++
++#define HostCmd_CMD_802_11_LED_CONTROL 0x004e
++
++#define HostCmd_CMD_802_11_SUBSCRIBE_EVENT 0x0075
++
++#define HostCmd_CMD_802_11_RATE_ADAPT_RATESET 0x0076
++
++#define HostCmd_CMD_802_11_TX_RATE_QUERY 0x007f
++
++#define HostCmd_CMD_802_11_POWER_ADAPT_CFG_EXT 0x007e
++
++#define HostCmd_CMD_GET_TSF 0x0080
++
++#define HostCmd_CMD_WMM_QUEUE_STATS 0x0081
++
++#define HostCmd_CMD_802_11_AUTO_TX 0x0082
++#define HostCmd_CMD_802_11_IBSS_COALESCING_STATUS 0x0083
++
++#define HostCmd_CMD_MEM_ACCESS 0x0086
++
++#define HostCmd_CMD_SDIO_GPIO_INT_CONFIG (0x0088)
++
++#ifdef MFG_CMD_SUPPORT
++#define HostCmd_CMD_MFG_COMMAND 0x0089
++#define HostCmd_RET_MFG_COMMAND 0x8089
++#endif
++
++#define HostCmd_CMD_TX_PKT_STATS 0x008d
++
++#define HostCmd_CMD_SDIO_PULL_CTRL 0x0093
++
++#define HostCmd_CMD_802_11_LDO_CONFIG 0x0096
++
++#define HostCmd_CMD_VERSION_EXT 0x0097
++
++/* For the IEEE Power Save */
++#define HostCmd_SubCmd_Enter_PS 0x0030
++#define HostCmd_SubCmd_Exit_PS 0x0031
++#define HostCmd_SubCmd_Sleep_Confirmed 0x0034
++#define HostCmd_SubCmd_Full_PowerDown 0x0035
++#define HostCmd_SubCmd_Full_PowerUp 0x0036
++
++/* Command RET code, MSB is set to 1 */
++#define HostCmd_RET_HW_SPEC_INFO 0x8003
++#define HostCmd_RET_802_11_RESET 0x8005
++#define HostCmd_RET_802_11_SCAN 0x8006
++#define HostCmd_RET_802_11_GET_LOG 0x800b
++#define HostCmd_RET_MAC_CONTROL 0x8028
++#define HostCmd_RET_MAC_MULTICAST_ADR 0x8010
++#define HostCmd_RET_802_11_DEAUTHENTICATE 0x8024
++#define HostCmd_RET_802_11_ASSOCIATE 0x8012
++#define HostCmd_RET_802_11_SET_WEP 0x8013
++#define HostCmd_RET_802_3_STAT 0x8015
++#define HostCmd_RET_802_11_SNMP_MIB 0x8016
++#define HostCmd_RET_MAC_REG_ACCESS 0x8019
++#define HostCmd_RET_BBP_REG_ACCESS 0x801a
++#define HostCmd_RET_RF_REG_ACCESS 0x801b
++#define HostCmd_RET_802_11_RADIO_CONTROL 0x801c
++#define HostCmd_RET_802_11_RF_CHANNEL 0x801d
++#define HostCmd_RET_802_11_RSSI 0x801f
++#define HostCmd_RET_802_11_RF_TX_POWER 0x801e
++#define HostCmd_RET_802_11_RF_ANTENNA 0x8020
++#define HostCmd_RET_802_11_PS_MODE 0x8021
++
++#define HostCmd_RET_802_11_AD_HOC_START 0x802B
++#define HostCmd_RET_802_11_AD_HOC_JOIN 0x802C
++
++#define HostCmd_RET_802_11_KEY_MATERIAL 0x805e
++
++#define HostCmd_ACT_SET 0x0001
++#define HostCmd_ACT_GET 0x0000
++
++#define HostCmd_RET_802_11_AD_HOC_STOP 0x8040
++
++#define HostCmd_RET_802_11_HOST_SLEEP_CFG 0x8043
++#define HostCmd_RET_802_11_WAKEUP_CONFIRM 0x8044
++#define HostCmd_RET_802_11_HOST_SLEEP_ACTIVATE 0x8045
++
++#define HostCmd_RET_802_11_MAC_ADDRESS 0x804D
++#define HostCmd_RET_802_11_EEPROM_ACCESS 0x8059
++
++#define HostCmd_RET_802_11_BAND_CONFIG 0x8058
++
++#define HostCmd_RET_802_11_SLEEP_PARAMS 0x8066
++
++#define HostCmd_RET_802_11_INACTIVITY_TIMEOUT 0x8067
++
++#define HostCmd_RET_802_11_SLEEP_PERIOD 0x8068
++#define HostCmd_RET_802_11_BCA_CONFIG_TIMESHARE 0x8069
++
++#define HostCmd_RET_802_11D_DOMAIN_INFO 0x805B
++
++#define HostCmd_RET_802_11_BG_SCAN_CONFIG 0x806b
++#define HostCmd_RET_802_11_BG_SCAN_QUERY 0x806c
++
++#define HostCmd_RET_802_11_CAL_DATA_EXT 0x806d
++
++#define HostCmd_RET_WMM_ADDTS_REQ 0x806E
++#define HostCmd_RET_WMM_DELTS_REQ 0x806F
++#define HostCmd_RET_WMM_QUEUE_CONFIG 0x8070
++#define HostCmd_RET_WMM_GET_STATUS 0x8071
++
++#define HostCmd_RET_802_11_TPC_CFG 0x8072
++
++#define HostCmd_RET_802_11_LED_CONTROL 0x804e
++
++#define HostCmd_RET_802_11_FW_WAKE_METHOD 0x8074
++
++#define HostCmd_RET_802_11_SUBSCRIBE_EVENT 0x8075
++
++#define HostCmd_RET_802_11_RATE_ADAPT_RATESET 0x8076
++
++#define HostCmd_RTE_802_11_TX_RATE_QUERY 0x807f
++
++#define HostCmd_RET_GET_TSF 0x8080
++
++#define HostCmd_RET_WMM_QUEUE_STATS 0x8081
++
++#define HostCmd_RET_802_11_POWER_ADAPT_CFG_EXT 0x807e
++
++#define HostCmd_RET_802_11_AUTO_TX 0x8082
++
++#define HostCmd_RET_802_11_IBSS_COALESCING_STATUS 0x8083
++
++#define HostCmd_RET_MEM_ACCESS 0x8086
++
++#define HostCmd_RET_SDIO_GPIO_INT_CONFIG (0x8088)
++
++#define HostCmd_RET_TX_PKT_STATS 0x808d
++
++#define HostCmd_RET_SDIO_PULL_CTRL 0x8093
++
++#define HostCmd_RET_802_11_LDO_CONFIG 0x8096
++
++#define HostCmd_RET_VERSION_EXT 0x8097
++
++/** General Result Code*/
++/* OK */
++#define HostCmd_RESULT_OK 0x0000
++/* Genenral error */
++#define HostCmd_RESULT_ERROR 0x0001
++/* Command is not valid */
++#define HostCmd_RESULT_NOT_SUPPORT 0x0002
++/* Command is pending */
++#define HostCmd_RESULT_PENDING 0x0003
++/* System is busy (command ignored) */
++#define HostCmd_RESULT_BUSY 0x0004
++/* Data buffer is not big enough */
++#define HostCmd_RESULT_PARTIAL_DATA 0x0005
++
++/* Definition of action or option for each command */
++
++/* Define general purpose action */
++#define HostCmd_ACT_GEN_READ 0x0000
++#define HostCmd_ACT_GEN_WRITE 0x0001
++#define HostCmd_ACT_GEN_GET 0x0000
++#define HostCmd_ACT_GEN_SET 0x0001
++#define HostCmd_ACT_GEN_REMOVE 0x0002
++#define HostCmd_ACT_GEN_OFF 0x0000
++#define HostCmd_ACT_GEN_ON 0x0001
++
++/* Define action or option for HostCmd_CMD_802_11_SET_WEP */
++#define HostCmd_ACT_ADD 0x0002
++#define HostCmd_ACT_REMOVE 0x0004
++
++#define HostCmd_TYPE_WEP_40_BIT 0x0001
++#define HostCmd_TYPE_WEP_104_BIT 0x0002
++
++#define HostCmd_WEP_KEY_INDEX_MASK 0x3fff
++
++/* Define action or option for HostCmd_CMD_802_11_SCAN */
++#define HostCmd_BSS_TYPE_BSS 0x0001
++#define HostCmd_BSS_TYPE_IBSS 0x0002
++#define HostCmd_BSS_TYPE_ANY 0x0003
++
++/* Define action or option for HostCmd_CMD_802_11_SCAN */
++#define HostCmd_SCAN_TYPE_ACTIVE 0x0000
++#define HostCmd_SCAN_TYPE_PASSIVE 0x0001
++
++/* Radio type definitions for the channel TLV */
++#define HostCmd_SCAN_RADIO_TYPE_BG 0
++#define HostCmd_SCAN_RADIO_TYPE_A 1
++
++/* Define action or option for HostCmd_CMD_MAC_CONTROL */
++#define HostCmd_ACT_MAC_RX_ON 0x0001
++#define HostCmd_ACT_MAC_TX_ON 0x0002
++#define HostCmd_ACT_MAC_LOOPBACK_ON 0x0004
++#define HostCmd_ACT_MAC_WEP_ENABLE 0x0008
++#define HostCmd_ACT_MAC_ETHERNETII_ENABLE 0x0010
++#define HostCmd_ACT_MAC_PROMISCUOUS_ENABLE 0x0080
++#define HostCmd_ACT_MAC_ALL_MULTICAST_ENABLE 0x0100
++#define HostCmd_ACT_MAC_RTS_CTS_ENABLE 0x0200
++#define HostCmd_ACT_MAC_STRICT_PROTECTION_ENABLE 0x0400
++#define HostCmd_ACT_MAC_ADHOC_G_PROTECTION_ON 0x2000
++
++/* Define action or option or constant for HostCmd_CMD_MAC_MULTICAST_ADR */
++#define HostCmd_SIZE_MAC_ADR 6
++#define HostCmd_MAX_MCAST_ADRS 32
++
++#define RADIO_ON 0x01
++#define RADIO_OFF 0x00
++
++/* Define action or option for CMD_802_11_RF_CHANNEL */
++#define HostCmd_OPT_802_11_RF_CHANNEL_GET 0x00
++#define HostCmd_OPT_802_11_RF_CHANNEL_SET 0x01
++
++#define HostCmd_ACT_SET_RX 0x0001
++#define HostCmd_ACT_SET_TX 0x0002
++#define HostCmd_ACT_SET_BOTH 0x0003
++#define HostCmd_ACT_GET_RX 0x0004
++#define HostCmd_ACT_GET_TX 0x0008
++#define HostCmd_ACT_GET_BOTH 0x000c
++
++/** Card Event definition */
++#define MACREG_INT_CODE_DUMMY_HOST_WAKEUP_SIGNAL 0x00000001
++#define MACREG_INT_CODE_LINK_LOST_WITH_SCAN 0x00000002
++#define MACREG_INT_CODE_LINK_LOST 0x00000003
++#define MACREG_INT_CODE_LINK_SENSED 0x00000004
++#define MACREG_INT_CODE_MIB_CHANGED 0x00000006
++#define MACREG_INT_CODE_INIT_DONE 0x00000007
++#define MACREG_INT_CODE_DEAUTHENTICATED 0x00000008
++#define MACREG_INT_CODE_DISASSOCIATED 0x00000009
++#define MACREG_INT_CODE_PS_AWAKE 0x0000000a
++#define MACREG_INT_CODE_PS_SLEEP 0x0000000b
++#define MACREG_INT_CODE_MIC_ERR_MULTICAST 0x0000000d
++#define MACREG_INT_CODE_MIC_ERR_UNICAST 0x0000000e
++#define MACREG_INT_CODE_WM_AWAKE 0x0000000f
++#define MACREG_INT_CODE_DEEP_SLEEP_AWAKE 0x00000010
++#define MACREG_INT_CODE_ADHOC_BCN_LOST 0x00000011
++#define MACREG_INT_CODE_HOST_SLEEP_AWAKE 0x00000012
++#define MACREG_INT_CODE_WMM_STATUS_CHANGE 0x00000017
++#define MACREG_INT_CODE_BG_SCAN_REPORT 0x00000018
++#define MACREG_INT_CODE_RSSI_LOW 0x00000019
++#define MACREG_INT_CODE_SNR_LOW 0x0000001a
++#define MACREG_INT_CODE_MAX_FAIL 0x0000001b
++#define MACREG_INT_CODE_RSSI_HIGH 0x0000001c
++#define MACREG_INT_CODE_SNR_HIGH 0x0000001d
++#define MACREG_INT_CODE_IBSS_COALESCED 0x0000001e
++#define MACREG_INT_CODE_PRE_BEACON_LOST 0x00000031
++
++/* Define bitmap conditions for HOST_SLEEP_CFG */
++#define HOST_SLEEP_CFG_CANCEL 0xffffffff
++#define HOST_SLEEP_CFG_WAKEUP_THRU_INTERFACE 0xff
++#define HOST_SLEEP_CFG_GAP_FF 0xff
++
++#endif /* _HOST_H_ */
+diff --git a/drivers/net/wireless/marvell8686/hostcmd.h b/drivers/net/wireless/marvell8686/hostcmd.h
+new file mode 100644
+index 0000000..9f189bb
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/hostcmd.h
+@@ -0,0 +1,1052 @@
++/** @file hostcmd.h
++ *
++ * @brief This file contains the function prototypes, data structure
++ * and defines for all the host/station commands
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2007
++ */
++/********************************************************
++Change log:
++ 10/11/05: Add Doxygen format comments
++ 01/11/06: Update association struct to reflect IEEE passthrough response
++ Conditionalize new scan/join structures
++ 04/10/06: Add hostcmd generic API and power_adapt_cfg_ext command
++ 04/18/06: Remove old Subscrive Event and add new Subscribe Event
++ implementation through generic hostcmd API
++ 05/03/06: Add auto_tx hostcmd
++ 05/04/06: Add IBSS coalescing related new hostcmd
++ 08/28/06: Add LED_CTRL hostcmd
++ 08/29/06: Add ledgpio private command
++********************************************************/
++
++#ifndef __HOSTCMD__H
++#define __HOSTCMD__H
++
++/* 802.11-related definitions */
++
++/** TxPD descriptor */
++typedef struct _TxPD
++{
++ /** Current Tx packet status */
++ u32 TxStatus;
++ /** Tx Control */
++ u32 TxControl;
++ u32 TxPacketLocation;
++ /** Tx packet length */
++ u16 TxPacketLength;
++ /**Destination MAC address */
++ u8 TxDestAddr[MRVDRV_ETH_ADDR_LEN];
++ /** Pkt Priority */
++ u8 Priority;
++ /** Trasnit Pkt Flags*/
++ u8 Flags;
++ /** Amount of time the packet has been queued in the driver (units = 2ms)*/
++ u8 PktDelay_2ms;
++ /** Reserved */
++ u8 Reserved1;
++
++} __ATTRIB_PACK__ TxPD, *PTxPD;
++
++/** RxPD Descriptor */
++typedef struct _RxPD
++{
++ /** Current Rx packet status */
++ u16 RxStatus;
++
++ /** SNR */
++ u8 SNR;
++
++ /** Tx Control */
++ u8 RxControl;
++
++ /** Pkt Length */
++ u16 PktLen;
++
++ /** Noise Floor */
++ u8 NF;
++
++ /** Rx Packet Rate */
++ u8 RxRate;
++
++ /** Pkt offset */
++ u32 PktOffset;
++ u8 RxPacketType;
++ u8 Reserved_1[3];
++ /** Pkt Priority */
++ u8 Priority;
++ u8 Reserved[3];
++
++} __ATTRIB_PACK__ RxPD, *PRxPD;
++
++#if defined(__KERNEL__)
++
++/** CmdCtrlNode */
++typedef struct _CmdCtrlNode
++{
++ /* CMD link list */
++ struct list_head list;
++
++ u32 Status;
++
++ /* CMD ID */
++ WLAN_OID cmd_oid;
++
++ /*CMD wait option: wait for finish or no wait */
++ u16 wait_option;
++
++ /* command parameter */
++ void *pdata_buf;
++
++ /*command data */
++ u8 *BufVirtualAddr;
++
++ u16 CmdFlags;
++
++ /* wait queue */
++ u16 CmdWaitQWoken;
++ wait_queue_head_t cmdwait_q __ATTRIB_ALIGN__;
++} __ATTRIB_PACK__ CmdCtrlNode, *PCmdCtrlNode;
++
++#endif
++
++/** MRVL_WEP_KEY */
++typedef struct _MRVL_WEP_KEY
++{
++ u32 Length;
++ u32 KeyIndex;
++ u32 KeyLength;
++ u8 KeyMaterial[MRVL_KEY_BUFFER_SIZE_IN_BYTE];
++} __ATTRIB_PACK__ MRVL_WEP_KEY, *PMRVL_WEP_KEY;
++
++typedef ULONGLONG WLAN_802_11_KEY_RSC;
++
++/** WLAN_802_11_KEY */
++typedef struct _WLAN_802_11_KEY
++{
++ u32 Length;
++ u32 KeyIndex;
++ u32 KeyLength;
++ WLAN_802_11_MAC_ADDRESS BSSID;
++ WLAN_802_11_KEY_RSC KeyRSC;
++ u8 KeyMaterial[MRVL_MAX_KEY_WPA_KEY_LENGTH];
++} __ATTRIB_PACK__ WLAN_802_11_KEY;
++
++/** MRVL_WPA_KEY */
++typedef struct _MRVL_WPA_KEY
++{
++ u32 KeyIndex;
++ u32 KeyLength;
++ u32 KeyRSC;
++ u8 KeyMaterial[MRVL_MAX_KEY_WPA_KEY_LENGTH];
++} MRVL_WPA_KEY, *PMRVL_WPA_KEY;
++
++/** MRVL_WLAN_WPA_KEY */
++typedef struct _MRVL_WLAN_WPA_KEY
++{
++ u8 EncryptionKey[16];
++ u8 MICKey1[8];
++ u8 MICKey2[8];
++} MRVL_WLAN_WPA_KEY, *PMRVL_WLAN_WPA_KEY;
++
++/* Received Signal Strength Indication in dBm*/
++typedef LONG WLAN_802_11_RSSI;
++
++/** WLAN_802_11_WEP */
++typedef struct _WLAN_802_11_WEP
++{
++ /* Length of this structure */
++ u32 Length;
++
++ /* 0 is the per-client key, 1-N are the global keys */
++ u32 KeyIndex;
++
++ /* length of key in bytes */
++ u32 KeyLength;
++
++ /* variable length depending on above field */
++ u8 KeyMaterial[1];
++} __ATTRIB_PACK__ WLAN_802_11_WEP;
++
++/** WLAN_802_11_SSID */
++typedef struct _WLAN_802_11_SSID
++{
++ /* SSID Length */
++ u32 SsidLength;
++
++ /* SSID information field */
++ u8 Ssid[WLAN_MAX_SSID_LENGTH];
++} __ATTRIB_PACK__ WLAN_802_11_SSID;
++
++typedef u32 WLAN_802_11_FRAGMENTATION_THRESHOLD;
++typedef u32 WLAN_802_11_RTS_THRESHOLD;
++typedef u32 WLAN_802_11_ANTENNA;
++
++/** wlan_offset_value */
++typedef struct _wlan_offset_value
++{
++ u32 offset;
++ u32 value;
++} wlan_offset_value;
++
++/** WLAN_802_11_FIXED_IEs */
++typedef struct _WLAN_802_11_FIXED_IEs
++{
++ u8 Timestamp[8];
++ u16 BeaconInterval;
++ u16 Capabilities;
++} WLAN_802_11_FIXED_IEs;
++
++/** WLAN_802_11_VARIABLE_IEs */
++typedef struct _WLAN_802_11_VARIABLE_IEs
++{
++ u8 ElementID;
++ u8 Length;
++ u8 data[1];
++} WLAN_802_11_VARIABLE_IEs;
++
++/** WLAN_802_11_AI_RESFI */
++typedef struct _WLAN_802_11_AI_RESFI
++{
++ u16 Capabilities;
++ u16 StatusCode;
++ u16 AssociationId;
++} WLAN_802_11_AI_RESFI;
++
++/** WLAN_802_11_AI_REQFI */
++typedef struct _WLAN_802_11_AI_REQFI
++{
++ u16 Capabilities;
++ u16 ListenInterval;
++ WLAN_802_11_MAC_ADDRESS CurrentAPAddress;
++} WLAN_802_11_AI_REQFI;
++
++/* Define general data structure */
++/** HostCmd_DS_GEN */
++typedef struct _HostCmd_DS_GEN
++{
++ u16 Command;
++ u16 Size;
++ u16 SeqNum;
++ u16 Result;
++} __ATTRIB_PACK__ HostCmd_DS_GEN, HostCmd_DS_802_11_DEEP_SLEEP;
++
++#define S_DS_GEN sizeof(HostCmd_DS_GEN)
++/*
++ * Define data structure for HostCmd_CMD_GET_HW_SPEC
++ * This structure defines the response for the GET_HW_SPEC command
++ */
++/** HostCmd_DS_GET_HW_SPEC */
++typedef struct _HostCmd_DS_GET_HW_SPEC
++{
++ /* HW Interface version number */
++ u16 HWIfVersion;
++
++ /* HW version number */
++ u16 Version;
++
++ /* Max number of TxPD FW can handle */
++ u16 NumOfTxPD;
++
++ /* Max no of Multicast address */
++ u16 NumOfMCastAdr;
++
++ /* MAC address */
++ u8 PermanentAddr[6];
++
++ /* Region Code */
++ u16 RegionCode;
++
++ /* Number of antenna used */
++ u16 NumberOfAntenna;
++
++ /* FW release number, example 0x1234=1.2.3.4 */
++ u32 FWReleaseNumber;
++
++ u32 Reserved_1;
++
++ u32 Reserved_2;
++
++ u32 Reserved_3;
++
++ /*FW/HW Capability */
++ u32 fwCapInfo;
++} __ATTRIB_PACK__ HostCmd_DS_GET_HW_SPEC;
++
++typedef struct _HostCmd_DS_802_11_SUBSCRIBE_EVENT
++{
++ u16 Action;
++ u16 Events;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_SUBSCRIBE_EVENT;
++
++/*
++ * This scan handle Country Information IE(802.11d compliant)
++ * Define data structure for HostCmd_CMD_802_11_SCAN
++ */
++/** HostCmd_DS_802_11_SCAN */
++typedef struct _HostCmd_DS_802_11_SCAN
++{
++ u8 BSSType;
++ u8 BSSID[ETH_ALEN];
++ u8 TlvBuffer[1];
++ /* MrvlIEtypes_SsIdParamSet_t SsIdParamSet;
++ * MrvlIEtypes_ChanListParamSet_t ChanListParamSet;
++ * MrvlIEtypes_RatesParamSet_t OpRateSet;
++ * */
++} __ATTRIB_PACK__ HostCmd_DS_802_11_SCAN;
++
++typedef struct _HostCmd_DS_802_11_SCAN_RSP
++{
++ u16 BSSDescriptSize;
++ u8 NumberOfSets;
++ u8 BssDescAndTlvBuffer[1];
++
++} __ATTRIB_PACK__ HostCmd_DS_802_11_SCAN_RSP;
++
++/** HostCmd_CMD_802_11_GET_LOG */
++typedef struct _HostCmd_DS_802_11_GET_LOG
++{
++ u32 mcasttxframe;
++ u32 failed;
++ u32 retry;
++ u32 multiretry;
++ u32 framedup;
++ u32 rtssuccess;
++ u32 rtsfailure;
++ u32 ackfailure;
++ u32 rxfrag;
++ u32 mcastrxframe;
++ u32 fcserror;
++ u32 txframe;
++ u32 reserved;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_GET_LOG;
++
++/** HostCmd_CMD_MAC_CONTROL */
++typedef struct _HostCmd_DS_MAC_CONTROL
++{
++ u16 Action;
++ u16 Reserved;
++} __ATTRIB_PACK__ HostCmd_DS_MAC_CONTROL;
++
++/** HostCmd_CMD_MAC_MULTICAST_ADR */
++typedef struct _HostCmd_DS_MAC_MULTICAST_ADR
++{
++ u16 Action;
++ u16 NumOfAdrs;
++ u8 MACList[MRVDRV_ETH_ADDR_LEN * MRVDRV_MAX_MULTICAST_LIST_SIZE];
++} __ATTRIB_PACK__ HostCmd_DS_MAC_MULTICAST_ADR;
++
++/** HostCmd_CMD_802_11_DEAUTHENTICATE */
++typedef struct _HostCmd_DS_802_11_DEAUTHENTICATE
++{
++ u8 MacAddr[6];
++ u16 ReasonCode;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_DEAUTHENTICATE;
++
++/** HostCmd_DS_802_11_ASSOCIATE */
++typedef struct _HostCmd_DS_802_11_ASSOCIATE
++{
++ u8 PeerStaAddr[6];
++ IEEEtypes_CapInfo_t CapInfo;
++ u16 ListenInterval;
++ u8 Reserved1[3];
++
++ /*
++ * MrvlIEtypes_SsIdParamSet_t SsIdParamSet;
++ * MrvlIEtypes_PhyParamSet_t PhyParamSet;
++ * MrvlIEtypes_SsParamSet_t SsParamSet;
++ * MrvlIEtypes_RatesParamSet_t RatesParamSet;
++ */
++} __ATTRIB_PACK__ HostCmd_DS_802_11_ASSOCIATE;
++
++/** HostCmd_RET_802_11_ASSOCIATE */
++typedef struct
++{
++ IEEEtypes_AssocRsp_t assocRsp;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_ASSOCIATE_RSP;
++
++/** HostCmd_RET_802_11_AD_HOC_JOIN */
++typedef struct _HostCmd_DS_802_11_AD_HOC_RESULT
++{
++ u8 PAD[3];
++ u8 BSSID[MRVDRV_ETH_ADDR_LEN];
++} __ATTRIB_PACK__ HostCmd_DS_802_11_AD_HOC_RESULT;
++
++/** HostCmd_CMD_802_11_SET_WEP */
++typedef struct _HostCmd_DS_802_11_SET_WEP
++{
++ /* ACT_ADD, ACT_REMOVE or ACT_ENABLE */
++ u16 Action;
++
++ /* Key Index selected for Tx */
++ u16 KeyIndex;
++
++ /* 40, 128bit or TXWEP */
++ u8 WEPTypeForKey1;
++
++ u8 WEPTypeForKey2;
++ u8 WEPTypeForKey3;
++ u8 WEPTypeForKey4;
++ u8 WEP1[16];
++ u8 WEP2[16];
++ u8 WEP3[16];
++ u8 WEP4[16];
++} __ATTRIB_PACK__ HostCmd_DS_802_11_SET_WEP;
++
++/** HostCmd_DS_802_11_AD_HOC_STOP */
++typedef struct _HostCmd_DS_802_11_AD_HOC_STOP
++{
++
++} __ATTRIB_PACK__ HostCmd_DS_802_11_AD_HOC_STOP;
++
++/** HostCmd_CMD_802_11_SNMP_MIB */
++typedef struct _HostCmd_DS_802_11_SNMP_MIB
++{
++ u16 QueryType;
++ u16 OID;
++ u16 BufSize;
++ u8 Value[128];
++} __ATTRIB_PACK__ HostCmd_DS_802_11_SNMP_MIB;
++
++/** HostCmd_CMD_MAC_REG_ACCESS */
++typedef struct _HostCmd_DS_MAC_REG_ACCESS
++{
++ u16 Action;
++ u16 Offset;
++ u32 Value;
++} __ATTRIB_PACK__ HostCmd_DS_MAC_REG_ACCESS;
++
++/** HostCmd_CMD_BBP_REG_ACCESS */
++typedef struct _HostCmd_DS_BBP_REG_ACCESS
++{
++ u16 Action;
++ u16 Offset;
++ u8 Value;
++ u8 Reserved[3];
++} __ATTRIB_PACK__ HostCmd_DS_BBP_REG_ACCESS;
++
++/** HostCmd_CMD_RF_REG_ACCESS */
++typedef struct _HostCmd_DS_RF_REG_ACCESS
++{
++ u16 Action;
++ u16 Offset;
++ u8 Value;
++ u8 Reserved[3];
++} __ATTRIB_PACK__ HostCmd_DS_RF_REG_ACCESS;
++
++/** HostCmd_CMD_802_11_RADIO_CONTROL */
++typedef struct _HostCmd_DS_802_11_RADIO_CONTROL
++{
++ u16 Action;
++ u16 Control;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_RADIO_CONTROL;
++
++/* HostCmd_DS_802_11_SLEEP_PARAMS */
++typedef struct _HostCmd_DS_802_11_SLEEP_PARAMS
++{
++ /* ACT_GET/ACT_SET */
++ u16 Action;
++
++ /* Sleep clock error in ppm */
++ u16 Error;
++
++ /* Wakeup offset in usec */
++ u16 Offset;
++
++ /* Clock stabilization time in usec */
++ u16 StableTime;
++
++ /* Control periodic calibration */
++ u8 CalControl;
++
++ /* Control the use of external sleep clock */
++ u8 ExternalSleepClk;
++
++ /* Reserved field, should be set to zero */
++ u16 Reserved;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_SLEEP_PARAMS;
++
++/* HostCmd_DS_802_11_SLEEP_PERIOD */
++typedef struct _HostCmd_DS_802_11_SLEEP_PERIOD
++{
++ /* ACT_GET/ACT_SET */
++ u16 Action;
++
++ /* Sleep Period in msec */
++ u16 Period;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_SLEEP_PERIOD;
++
++/* HostCmd_DS_802_11_BCA_TIMESHARE */
++typedef struct _HostCmd_DS_802_11_BCA_TIMESHARE
++{
++ /* ACT_GET/ACT_SET */
++ u16 Action;
++
++ /* Type: WLAN, BT */
++ u16 TrafficType;
++
++ /* 20msec - 60000msec */
++ u32 TimeShareInterval;
++
++ /* PTA arbiter time in msec */
++ u32 BTTime;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_BCA_TIMESHARE;
++
++/* HostCmd_DS_802_11_INACTIVITY_TIMEOUT */
++typedef struct _HostCmd_DS_802_11_INACTIVITY_TIMEOUT
++{
++ /* ACT_GET/ACT_SET */
++ u16 Action;
++
++ /* Inactivity timeout in msec */
++ u16 Timeout;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_INACTIVITY_TIMEOUT;
++
++/** HostCmd_CMD_802_11_RF_CHANNEL */
++typedef struct _HostCmd_DS_802_11_RF_CHANNEL
++{
++ u16 Action;
++ u16 CurrentChannel;
++ u16 RFType;
++ u16 Reserved;
++ u8 ChannelList[32];
++} __ATTRIB_PACK__ HostCmd_DS_802_11_RF_CHANNEL;
++
++/** HostCmd_CMD_802_11_RSSI */
++typedef struct _HostCmd_DS_802_11_RSSI
++{
++ /* weighting factor */
++ u16 N;
++
++ u16 Reserved_0;
++ u16 Reserved_1;
++ u16 Reserved_2;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_RSSI;
++
++/** HostCmd_DS_802_11_RSSI_RSP */
++typedef struct _HostCmd_DS_802_11_RSSI_RSP
++{
++ u16 SNR;
++ u16 NoiseFloor;
++ u16 AvgSNR;
++ u16 AvgNoiseFloor;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_RSSI_RSP;
++
++/** HostCmd_DS_802_11_MAC_ADDRESS */
++typedef struct _HostCmd_DS_802_11_MAC_ADDRESS
++{
++ u16 Action;
++ u8 MacAdd[ETH_ALEN];
++} __ATTRIB_PACK__ HostCmd_DS_802_11_MAC_ADDRESS;
++
++/** HostCmd_CMD_802_11_RF_TX_POWER */
++typedef struct _HostCmd_DS_802_11_RF_TX_POWER
++{
++ u16 Action;
++ u16 CurrentLevel;
++ u8 MaxPower;
++ u8 MinPower;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_RF_TX_POWER;
++
++/** HostCmd_CMD_802_11_RF_ANTENNA */
++typedef struct _HostCmd_DS_802_11_RF_ANTENNA
++{
++ u16 Action;
++
++ /* Number of antennas or 0xffff(diversity) */
++ u16 AntennaMode;
++
++} __ATTRIB_PACK__ HostCmd_DS_802_11_RF_ANTENNA;
++
++/** HostCmd_CMD_802_11_PS_MODE */
++typedef struct _HostCmd_DS_802_11_PS_MODE
++{
++ u16 Action;
++ u16 NullPktInterval;
++ u16 MultipleDtim;
++ u16 BCNMissTimeOut;
++ u16 LocalListenInterval;
++ u16 AdhocAwakePeriod;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_PS_MODE;
++
++/** PS_CMD_ConfirmSleep */
++typedef struct _PS_CMD_ConfirmSleep
++{
++ u16 Command;
++ u16 Size;
++ u16 SeqNum;
++ u16 Result;
++
++ u16 Action;
++ u16 Reserved1;
++ u16 MultipleDtim;
++ u16 Reserved;
++ u16 LocalListenInterval;
++} __ATTRIB_PACK__ PS_CMD_ConfirmSleep, *PPS_CMD_ConfirmSleep;
++
++/** HostCmd_CMD_802_11_FW_WAKE_METHOD */
++typedef struct _HostCmd_DS_802_11_FW_WAKEUP_METHOD
++{
++ u16 Action;
++ u16 Method;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_FW_WAKEUP_METHOD;
++
++/** HostCmd_DS_802_11_RATE_ADAPT_RATESET */
++typedef struct _HostCmd_DS_802_11_RATE_ADAPT_RATESET
++{
++ u16 Action;
++ u16 HWRateDropMode;
++ u16 Bitmap;
++ u16 Threshold;
++ u16 FinalRate;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_RATE_ADAPT_RATESET;
++
++/** HostCmd_DS_802_11_AD_HOC_START*/
++typedef struct _HostCmd_DS_802_11_AD_HOC_START
++{
++ u8 SSID[MRVDRV_MAX_SSID_LENGTH];
++ u8 BSSType;
++ u16 BeaconPeriod;
++ u8 DTIMPeriod;
++ IEEEtypes_SsParamSet_t SsParamSet;
++ IEEEtypes_PhyParamSet_t PhyParamSet;
++ u16 Reserved1;
++ IEEEtypes_CapInfo_t Cap;
++ u8 DataRate[HOSTCMD_SUPPORTED_RATES];
++} __ATTRIB_PACK__ HostCmd_DS_802_11_AD_HOC_START;
++
++/** AdHoc_BssDesc_t */
++typedef struct _AdHoc_BssDesc_t
++{
++ u8 BSSID[6];
++ u8 SSID[32];
++ u8 BSSType;
++ u16 BeaconPeriod;
++ u8 DTIMPeriod;
++ u8 TimeStamp[8];
++ u8 LocalTime[8];
++ IEEEtypes_PhyParamSet_t PhyParamSet;
++ IEEEtypes_SsParamSet_t SsParamSet;
++ IEEEtypes_CapInfo_t Cap;
++ u8 DataRates[HOSTCMD_SUPPORTED_RATES];
++
++ /* DO NOT ADD ANY FIELDS TO THIS STRUCTURE. It is used below in the
++ * Adhoc join command and will cause a binary layout mismatch with
++ * the firmware
++ */
++} __ATTRIB_PACK__ AdHoc_BssDesc_t;
++
++/** HostCmd_DS_802_11_AD_HOC_JOIN */
++typedef struct _HostCmd_DS_802_11_AD_HOC_JOIN
++{
++ AdHoc_BssDesc_t BssDescriptor;
++ u16 Reserved1;
++ u16 Reserved2;
++
++} __ATTRIB_PACK__ HostCmd_DS_802_11_AD_HOC_JOIN;
++
++typedef union _KeyInfo_WEP_t
++{
++ u8 Reserved;
++
++ /* bits 1-4: Specifies the index of key */
++ u8 WepKeyIndex;
++
++ /* bit 0: Specifies that this key is
++ * to be used as the default for TX data packets
++ * */
++ u8 isWepDefaultKey;
++} __ATTRIB_PACK__ KeyInfo_WEP_t;
++
++typedef union _KeyInfo_TKIP_t
++{
++ u8 Reserved;
++
++ /* bit 2: Specifies that this key is
++ * enabled and valid to use */
++ u8 isKeyEnabled;
++
++ /* bit 1: Specifies that this key is
++ * to be used as the unicast key */
++ u8 isUnicastKey;
++
++ /* bit 0: Specifies that this key is
++ * to be used as the multicast key */
++ u8 isMulticastKey;
++} __ATTRIB_PACK__ KeyInfo_TKIP_t;
++
++typedef union _KeyInfo_AES_t
++{
++ u8 Reserved;
++
++ /* bit 2: Specifies that this key is
++ * enabled and valid to use */
++ u8 isKeyEnabled;
++
++ /* bit 1: Specifies that this key is
++ * to be used as the unicast key */
++ u8 isUnicastKey;
++
++ /* bit 0: Specifies that this key is
++ * to be used as the multicast key */
++ u8 isMulticastKey;
++} __ATTRIB_PACK__ KeyInfo_AES_t;
++
++/** KeyMaterial_TKIP_t */
++typedef struct _KeyMaterial_TKIP_t
++{
++ /* TKIP encryption/decryption key */
++ u8 TkipKey[16];
++
++ /* TKIP TX MIC Key */
++ u8 TkipTxMicKey[16];
++
++ /* TKIP RX MIC Key */
++ u8 TkipRxMicKey[16];
++} __ATTRIB_PACK__ KeyMaterial_TKIP_t, *PKeyMaterial_TKIP_t;
++
++/** KeyMaterial_AES_t */
++typedef struct _KeyMaterial_AES_t
++{
++ /* AES encryption/decryption key */
++ u8 AesKey[16];
++} __ATTRIB_PACK__ KeyMaterial_AES_t, *PKeyMaterial_AES_t;
++
++/** MrvlIEtype_KeyParamSet_t */
++typedef struct _MrvlIEtype_KeyParamSet_t
++{
++ /* Type ID */
++ u16 Type;
++
++ /* Length of Payload */
++ u16 Length;
++
++ /* Type of Key: WEP=0, TKIP=1, AES=2 */
++ u16 KeyTypeId;
++
++ /* Key Control Info specific to a KeyTypeId */
++ u16 KeyInfo;
++
++ /* Length of key */
++ u16 KeyLen;
++
++ /* Key material of size KeyLen */
++ u8 Key[32];
++} __ATTRIB_PACK__ MrvlIEtype_KeyParamSet_t, *PMrvlIEtype_KeyParamSet_t;
++
++/** HostCmd_DS_802_11_KEY_MATERIAL */
++typedef struct _HostCmd_DS_802_11_KEY_MATERIAL
++{
++ u16 Action;
++
++ MrvlIEtype_KeyParamSet_t KeyParamSet;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_KEY_MATERIAL;
++
++/** HostCmd_DS_802_11_HOST_SLEEP_CFG */
++typedef struct _HostCmd_DS_HOST_802_11_HOST_SLEEP_CFG
++{
++ /* bit0=1: non-unicast data
++ * bit1=1: unicast data
++ * bit2=1: mac events
++ * bit3=1: magic packet
++ */
++ u32 conditions;
++
++ u8 gpio;
++
++ /* in milliseconds */
++ u8 gap;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_HOST_SLEEP_CFG;
++
++#define CAL_DATA_HEADER_LEN 6 /* sizeof(HostCmd_DS_802_11_CAL_DATA_EXT)-sizeof(CalData) */
++
++/** HostCmd_DS_802_11_CAL_DATA_EXT */
++typedef struct _HostCmd_DS_802_11_CAL_DATA_EXT
++{
++ u16 Action;
++ u16 Revision;
++ u16 CalDataLen;
++ u8 CalData[1];
++} __ATTRIB_PACK__ HostCmd_DS_802_11_CAL_DATA_EXT;
++
++/** HostCmd_DS_802_11_EEPROM_ACCESS */
++typedef struct _HostCmd_DS_802_11_EEPROM_ACCESS
++{
++ u16 Action;
++
++ /* multiple 4 */
++ u16 Offset;
++ u16 ByteCount;
++ u8 Value;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_EEPROM_ACCESS;
++
++/** HostCmd_DS_802_11_BG_SCAN_CONFIG */
++typedef struct _HostCmd_DS_802_11_BG_SCAN_CONFIG
++{
++ /** Action */
++ u16 Action;
++
++ /**
++ * Enable/Disable
++ * 0 - Disable
++ * 1 - Enable
++ */
++ u8 Enable;
++
++ /**
++ * bssType
++ * 1 - Infrastructure
++ * 2 - IBSS
++ * 3 - any
++ */
++ u8 BssType;
++
++ /**
++ * ChannelsPerScan
++ * Number of channels to scan during a single scanning opportunity
++ */
++ u8 ChannelsPerScan;
++
++ u8 Reserved1[3];
++
++ /** ScanInterval */
++ u32 ScanInterval;
++
++ /**
++ * StoreCondition
++ * - SSID Match
++ * - SSID Match & Exceed SNR Threshold
++ */
++ u32 StoreCondition;
++
++ /**
++ * ReportConditions
++ * - SSID Match
++ * - SSID Match & Exceed SNR Threshold
++ */
++ u32 ReportConditions;
++
++ u16 Reserved2;
++
++ /* Attach TLV based parameters as needed:
++ *
++ * MrvlIEtypes_SsIdParamSet_t Set specific SSID filter
++ * MrvlIEtypes_ChanListParamSet_t Set the channels & channel params
++ * MrvlIEtypes_NumProbes_t Number of probes per SSID/broadcast
++ * MrvlIEtypes_WildCardSsIdParamSet_t Wildcard SSID matching patterns
++ * MrvlIEtypes_SnrThreshold_t SNR Threshold for match/report
++ */
++
++} __ATTRIB_PACK__ HostCmd_DS_802_11_BG_SCAN_CONFIG;
++
++/** HostCmd_DS_802_11_BG_SCAN_QUERY */
++typedef struct _HostCmd_DS_802_11_BG_SCAN_QUERY
++{
++ u8 Flush;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_BG_SCAN_QUERY;
++
++/** HostCmd_DS_802_11_BG_SCAN_QUERY_RSP */
++typedef struct _HostCmd_DS_802_11_BG_SCAN_QUERY_RSP
++{
++ u32 ReportCondition;
++ HostCmd_DS_802_11_SCAN_RSP scanresp;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_BG_SCAN_QUERY_RSP;
++
++/** HostCmd_DS_802_11_TPC_CFG */
++typedef struct _HostCmd_DS_802_11_TPC_CFG
++{
++ u16 Action;
++ u8 Enable;
++ s8 P0;
++ s8 P1;
++ s8 P2;
++ u8 UseSNR;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_TPC_CFG;
++
++/** HostCmd_DS_802_11_LED_CTRL */
++typedef struct _HostCmd_DS_802_11_LED_CTRL
++{
++ u16 Action; /* 0 = ACT_GET; 1 = ACT_SET; */
++ u16 LedNums; /* Numbers of LEDs supported */
++ MrvlIEtypes_LedGpio_t LedGpio;
++ MrvlIEtypes_LedBehavior_t LedBehavior[1];
++} __ATTRIB_PACK__ HostCmd_DS_802_11_LED_CTRL;
++
++/** HostCmd_DS_802_11_POWER_ADAPT_CFG_EXT */
++typedef struct _HostCmd_DS_802_11_POWER_ADAPT_CFG_EXT
++{
++ /** Action */
++ u16 Action; /* 0 = ACT_GET; 1 = ACT_SET; */
++ u16 EnablePA; /* 0 = disable; 1 = enable; */
++ MrvlIEtypes_PowerAdapt_Group_t PowerAdaptGroup;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_POWER_ADAPT_CFG_EXT;
++
++typedef struct _HostCmd_DS_SDIO_INT_CONFIG
++{
++ u16 Action; /* 0: get; 1: set */
++ u16 Gpio_pin;
++ u16 Gpio_int_edge; /*1: failing edge; 0: rasing edge */
++ u16 Gpio_pulse_width; /* in usec units */
++} __ATTRIB_PACK__ HostCmd_DS_SDIO_INT_CONFIG;
++
++typedef struct _HostCmd_DS_SDIO_PULL_CTRL
++{
++ u16 Action; /* 0: get; 1: set */
++ u16 PullUp; /* the delay of pulling up in us */
++ u16 PullDown; /* the delay of pulling down in us */
++} __ATTRIB_PACK__ HostCmd_DS_SDIO_PULL_CTRL;
++typedef struct _HostCmd_DS_802_11_IBSS_Status
++{
++ u16 Action;
++ u16 Enable;
++ u8 BSSID[ETH_ALEN];
++ u16 BeaconInterval;
++ u16 ATIMWindow;
++ u16 UseGRateProtection;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_IBSS_Status;
++
++typedef struct _HostCmd_TX_RATE_QUERY
++{
++ u16 TxRate;
++} __ATTRIB_PACK__ HostCmd_TX_RATE_QUERY;
++
++/** HostCmd_DS_802_11_AUTO_TX */
++typedef struct _HostCmd_DS_802_11_AUTO_TX
++{
++ /** Action */
++ u16 Action; /* 0 = ACT_GET; 1 = ACT_SET; */
++ MrvlIEtypes_AutoTx_t AutoTx;
++} __ATTRIB_PACK__ HostCmd_DS_802_11_AUTO_TX;
++
++/** HostCmd_MEM_ACCESS */
++typedef struct _HostCmd_DS_MEM_ACCESS
++{
++ /** Action */
++ u16 Action; /* 0 = ACT_GET; 1 = ACT_SET; */
++ u16 Reserved;
++ u32 Addr;
++ u32 Value;
++} __ATTRIB_PACK__ HostCmd_DS_MEM_ACCESS;
++
++typedef struct
++{
++ u64 TsfValue;
++} __ATTRIB_PACK__ HostCmd_DS_GET_TSF;
++
++#define LDO_INTERNAL 0
++#define LDO_EXTERNAL 1
++
++typedef struct _HostCmd_DS_802_11_LDO_CONFIG
++{
++ u16 Action; /* 0 = ACT_GET; 1 = ACT_SET; */
++ u16 PMSource; /* 0 = LDO_INTERNAL; 1 = LDO_EXTERNAL */
++} __ATTRIB_PACK__ HostCmd_DS_802_11_LDO_CONFIG;
++
++typedef struct _HostCmd_DS_VERSION_EXT
++{
++ u8 versionStrSel;
++ char versionStr[128];
++} __ATTRIB_PACK__ HostCmd_DS_VERSION_EXT;
++
++/** Define data structure for HostCmd_CMD_802_11D_DOMAIN_INFO */
++typedef struct _HostCmd_DS_802_11D_DOMAIN_INFO
++{
++ u16 Action;
++ MrvlIEtypes_DomainParamSet_t Domain;
++} __ATTRIB_PACK__ HostCmd_DS_802_11D_DOMAIN_INFO;
++
++/** Define data structure for HostCmd_RET_802_11D_DOMAIN_INFO */
++typedef struct _HostCmd_DS_802_11D_DOMAIN_INFO_RSP
++{
++ u16 Action;
++ MrvlIEtypes_DomainParamSet_t Domain;
++} __ATTRIB_PACK__ HostCmd_DS_802_11D_DOMAIN_INFO_RSP;
++
++typedef struct
++{
++ u32 PktInitCnt;
++ u32 PktSuccessCnt;
++ u32 TxAttempts;
++ u32 RetryFailure;
++ u32 ExpiryFailure;
++} __ATTRIB_PACK__ HostCmd_DS_TX_PKT_STAT_Entry;
++
++typedef struct
++{
++ HostCmd_DS_TX_PKT_STAT_Entry StatEntry[HOSTCMD_SUPPORTED_RATES];
++} __ATTRIB_PACK__ HostCmd_DS_TX_PKT_STATS;
++
++/** _HostCmd_DS_COMMAND*/
++struct _HostCmd_DS_COMMAND
++{
++
++ /** Command Header */
++ u16 Command;
++ u16 Size;
++ u16 SeqNum;
++ u16 Result;
++
++ /** Command Body */
++ union
++ {
++ HostCmd_DS_GET_HW_SPEC hwspec;
++ HostCmd_DS_802_11_PS_MODE psmode;
++ HostCmd_DS_802_11_SCAN scan;
++ HostCmd_DS_802_11_SCAN_RSP scanresp;
++ HostCmd_DS_MAC_CONTROL macctrl;
++ HostCmd_DS_802_11_ASSOCIATE associate;
++ HostCmd_DS_802_11_ASSOCIATE_RSP associatersp;
++ HostCmd_DS_802_11_DEAUTHENTICATE deauth;
++ HostCmd_DS_802_11_SET_WEP wep;
++ HostCmd_DS_802_11_AD_HOC_START ads;
++ HostCmd_DS_802_11_AD_HOC_RESULT result;
++ HostCmd_DS_802_11_GET_LOG glog;
++ HostCmd_DS_802_11_SNMP_MIB smib;
++ HostCmd_DS_802_11_RF_TX_POWER txp;
++ HostCmd_DS_802_11_RF_ANTENNA rant;
++ HostCmd_DS_802_11_RATE_ADAPT_RATESET rateset;
++ HostCmd_DS_MAC_MULTICAST_ADR madr;
++ HostCmd_DS_802_11_AD_HOC_JOIN adj;
++ HostCmd_DS_802_11_RADIO_CONTROL radio;
++ HostCmd_DS_802_11_RF_CHANNEL rfchannel;
++ HostCmd_DS_802_11_RSSI rssi;
++ HostCmd_DS_802_11_RSSI_RSP rssirsp;
++ HostCmd_DS_802_11_AD_HOC_STOP adhoc_stop;
++ HostCmd_DS_802_11_MAC_ADDRESS macadd;
++ HostCmd_DS_802_11_KEY_MATERIAL keymaterial;
++ HostCmd_DS_MAC_REG_ACCESS macreg;
++ HostCmd_DS_BBP_REG_ACCESS bbpreg;
++ HostCmd_DS_RF_REG_ACCESS rfreg;
++ HostCmd_DS_802_11_CAL_DATA_EXT caldataext;
++ HostCmd_DS_802_11_HOST_SLEEP_CFG hostsleepcfg;
++ HostCmd_DS_802_11_EEPROM_ACCESS rdeeprom;
++
++ HostCmd_DS_802_11D_DOMAIN_INFO domaininfo;
++ HostCmd_DS_802_11D_DOMAIN_INFO_RSP domaininforesp;
++ HostCmd_DS_802_11_BG_SCAN_CONFIG bgscancfg;
++ HostCmd_DS_802_11_BG_SCAN_QUERY bgscanquery;
++ HostCmd_DS_802_11_BG_SCAN_QUERY_RSP bgscanqueryresp;
++ HostCmd_DS_WMM_GET_STATUS getWmmStatus;
++ HostCmd_DS_WMM_ADDTS_REQ addTsReq;
++ HostCmd_DS_WMM_DELTS_REQ delTsReq;
++ HostCmd_DS_WMM_QUEUE_CONFIG queueConfig;
++ HostCmd_DS_WMM_QUEUE_STATS queueStats;
++ HostCmd_DS_TX_PKT_STATS txPktStats;
++ HostCmd_DS_802_11_SLEEP_PARAMS sleep_params;
++ HostCmd_DS_802_11_BCA_TIMESHARE bca_timeshare;
++ HostCmd_DS_802_11_INACTIVITY_TIMEOUT inactivity_timeout;
++ HostCmd_DS_802_11_SLEEP_PERIOD ps_sleeppd;
++ HostCmd_DS_802_11_TPC_CFG tpccfg;
++ HostCmd_DS_802_11_LED_CTRL ledgpio;
++ HostCmd_DS_802_11_FW_WAKEUP_METHOD fwwakeupmethod;
++
++ HostCmd_TX_RATE_QUERY txrate;
++ HostCmd_DS_GET_TSF gettsf;
++ HostCmd_DS_802_11_IBSS_Status ibssCoalescing;
++ HostCmd_DS_SDIO_INT_CONFIG sdio_int;
++ HostCmd_DS_SDIO_PULL_CTRL sdiopullctl;
++ HostCmd_DS_802_11_LDO_CONFIG ldocfg;
++ HostCmd_DS_VERSION_EXT verext;
++ } params;
++} __ATTRIB_PACK__;
++
++#endif
+diff --git a/drivers/net/wireless/marvell8686/if_sdio.c b/drivers/net/wireless/marvell8686/if_sdio.c
+new file mode 100644
+index 0000000..2384e05
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/if_sdio.c
+@@ -0,0 +1,1379 @@
++/** @file if_sdio.c
++ * @brief This file contains SDIO IF (interface) module
++ * related functions.
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2007
++ */
++/****************************************************
++Change log:
++ 10/14/05: add Doxygen format comments
++ 01/05/06: add kernel 2.6.x support
++ 01/23/06: add fw downlaod
++ 06/06/06: add macro SD_BLOCK_SIZE_FW_DL for firmware download
++ add macro ALLOC_BUF_SIZE for cmd resp/Rx data skb buffer allocation
++****************************************************/
++#include <linux/mmc/card.h>
++#include <linux/mmc/sdio_func.h>
++#include <linux/mmc/sdio_ids.h>
++
++#include "if_sdio.h"
++
++//#undef PRINTM
++//#define PRINTM(INFO, msg...) printk(msg)
++
++/* define SD block size for firmware download */
++#define SD_BLOCK_SIZE_FW_DL 32
++
++/* define SD block size for data Tx/Rx */
++#define SD_BLOCK_SIZE 320 /* To minimize the overhead of ethernet frame
++ with 1514 bytes, 320 bytes block size is used */
++
++#define ALLOC_BUF_SIZE (((MAX(MRVDRV_ETH_RX_PACKET_BUFFER_SIZE, \
++ MRVDRV_SIZE_OF_CMD_BUFFER) + SDIO_HEADER_LEN \
++ + SD_BLOCK_SIZE - 1) / SD_BLOCK_SIZE) * SD_BLOCK_SIZE)
++
++/* Max retry number of CMD53 write */
++#define MAX_WRITE_IOMEM_RETRY 2
++
++/********************************************************
++ Local Variables
++********************************************************/
++
++/********************************************************
++ Global Variables
++********************************************************/
++
++struct if_sdio_card {
++ struct sdio_func *func;
++ wlan_private *priv;
++ int model;
++
++ u8 int_cause;
++
++ u8 chiprev;
++ u8 async_int_mode;
++ u8 block_size_512;
++ card_capability info;
++};
++
++extern wlan_private *wlanpriv;
++const char *helper_name;
++const char *fw_name;
++/********************************************************
++ Local Functions
++********************************************************/
++
++/**
++ * @brief This function adds the card
++ *
++ * @param card A pointer to the card
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++sbi_add_card(void *card)
++{
++ struct if_sdio_card *sdio_card = (struct if_sdio_card*)card;
++ sdio_card->priv = wlan_add_card(card);
++ if (sdio_card->priv)
++ return WLAN_STATUS_SUCCESS;
++ else
++ return WLAN_STATUS_FAILURE;
++}
++
++/**
++ * @brief This function removes the card
++ *
++ * @param card A pointer to the card
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++sbi_remove_card(void *card)
++{
++ return wlan_remove_card(card);
++}
++
++/**
++ * @brief This function reads scratch registers
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param dat A pointer to keep returned data
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++mv_sdio_read_scratch(wlan_private * priv, u16 * dat)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ u8 scr0;
++ u8 scr1;
++ struct if_sdio_card* card = (struct if_sdio_card*)priv->wlan_dev.card;
++
++ scr0 = sdio_readb(card->func, CARD_OCR_0_REG, &ret);
++ if (ret)
++ return WLAN_STATUS_FAILURE;
++
++ scr1 = sdio_readb(card->func, CARD_OCR_1_REG, &ret);
++ PRINTM(INFO, "CARD_OCR_0_REG = 0x%x, CARD_OCR_1_REG = 0x%x\n", scr0,
++ scr1);
++ if (ret)
++ return WLAN_STATUS_FAILURE;
++
++ *dat = (((u16) scr1) << 8) | scr0;
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function polls the card status register.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param bits the bit mask
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++mv_sdio_poll_card_status(wlan_private * priv, u8 bits)
++{
++ int tries;
++ int rval;
++ u8 cs;
++ struct if_sdio_card* card = (struct if_sdio_card*)priv->wlan_dev.card;
++
++ for (tries = 0; tries < MAX_POLL_TRIES; tries++) {
++ cs = sdio_readb(card->func, CARD_STATUS_REG, &rval);
++ if (rval == 0 && (cs & bits) == bits) {
++ return WLAN_STATUS_SUCCESS;
++ }
++
++ mdelay(1);
++ }
++
++ PRINTM(WARN, "mv_sdio_poll_card_status: FAILED!:%d\n", rval);
++ return WLAN_STATUS_FAILURE;
++}
++
++/**
++ * @brief This function programs the firmware image.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param firmware A pointer to the buffer of firmware image
++ * @param firmwarelen the length of firmware image
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++sbi_prog_firmware_image(wlan_private * priv,
++ const u8 * firmware, int firmwarelen)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ u16 firmwarestat;
++ u8 *fwbuf = priv->adapter->TmpTxBuf;
++ int fwblknow;
++ u32 tx_len;
++ struct if_sdio_card* card = (struct if_sdio_card*)priv->wlan_dev.card;
++#ifdef FW_DOWNLOAD_SPEED
++ u32 tv1, tv2;
++#endif
++
++ ENTER();
++
++ sdio_claim_host(card->func);
++ ret = sdio_set_block_size(card->func, SD_BLOCK_SIZE_FW_DL);
++ if (ret) {
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ if ((ret = mv_sdio_read_scratch(priv, &firmwarestat)) < 0) {
++ PRINTM(INFO, "read scratch returned <0\n");
++ goto done;
++ }
++
++ if (firmwarestat == FIRMWARE_READY) {
++ PRINTM(INFO, "FW already downloaded!\n");
++ ret = WLAN_STATUS_SUCCESS;
++ goto done;
++ }
++
++ PRINTM(INFO, "Downloading helper image (%d bytes), block size %d bytes\n",
++ firmwarelen, SD_BLOCK_SIZE_FW_DL);
++
++#ifdef FW_DOWNLOAD_SPEED
++ tv1 = get_utimeofday();
++#endif
++ /* Perform firmware data transfer */
++ tx_len =
++ (FIRMWARE_TRANSFER_NBLOCK * SD_BLOCK_SIZE_FW_DL) - SDIO_HEADER_LEN;
++ for (fwblknow = 0; fwblknow < firmwarelen; fwblknow += tx_len) {
++
++ /* The host polls for the DN_LD_CARD_RDY and CARD_IO_READY bits */
++ ret = mv_sdio_poll_card_status(priv, CARD_IO_READY | DN_LD_CARD_RDY);
++ if (ret < 0) {
++ PRINTM(FATAL, "FW download died @ %d\n", fwblknow);
++ goto done;
++ }
++
++ /* Set blocksize to transfer - checking for last block */
++ if (firmwarelen - fwblknow < tx_len)
++ tx_len = firmwarelen - fwblknow;
++
++ fwbuf[0] = ((tx_len & 0x000000ff) >> 0); /* Little-endian */
++ fwbuf[1] = ((tx_len & 0x0000ff00) >> 8);
++ fwbuf[2] = ((tx_len & 0x00ff0000) >> 16);
++ fwbuf[3] = ((tx_len & 0xff000000) >> 24);
++
++ /* Copy payload to buffer */
++ memcpy(&fwbuf[SDIO_HEADER_LEN], &firmware[fwblknow], tx_len);
++
++ PRINTM(INFO, ".");
++
++ /* Send data */
++ ret = sdio_writesb(card->func, priv->wlan_dev.ioport,
++ fwbuf, FIRMWARE_TRANSFER_NBLOCK * SD_BLOCK_SIZE_FW_DL);
++
++ if (ret) {
++ PRINTM(FATAL, "IO error: transferring block @ %d\n", fwblknow);
++ goto done;
++ }
++ }
++
++#ifdef FW_DOWNLOAD_SPEED
++ tv2 = get_utimeofday();
++ PRINTM(INFO, "helper: %ld.%03ld.%03ld ", tv1 / 1000000,
++ (tv1 % 1000000) / 1000, tv1 % 1000);
++ PRINTM(INFO, " -> %ld.%03ld.%03ld ", tv2 / 1000000,
++ (tv2 % 1000000) / 1000, tv2 % 1000);
++ tv2 -= tv1;
++ PRINTM(INFO, " == %ld.%03ld.%03ld\n", tv2 / 1000000,
++ (tv2 % 1000000) / 1000, tv2 % 1000);
++#endif
++
++ /* Write last EOF data */
++ PRINTM(INFO, "\nTransferring EOF block\n");
++ memset(fwbuf, 0x0, SD_BLOCK_SIZE_FW_DL);
++ ret = sdio_writesb(card->func, priv->wlan_dev.ioport, fwbuf, SD_BLOCK_SIZE_FW_DL);
++
++ if (ret) {
++ PRINTM(FATAL, "IO error in writing EOF FW block\n");
++ goto done;
++ }
++
++ ret = WLAN_STATUS_SUCCESS;
++
++done:
++ sdio_set_block_size(card->func, 0);
++ sdio_release_host(card->func);
++ return ret;
++}
++
++/**
++ * @brief This function downloads firmware image to the card.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param firmware A pointer to firmware image buffer
++ * @param firmwarelen the length of firmware image
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++sbi_download_wlan_fw_image(wlan_private * priv,
++ const u8 * firmware, int firmwarelen)
++{
++ u8 base0;
++ u8 base1;
++ int ret = WLAN_STATUS_SUCCESS;
++ int offset;
++ u8 *fwbuf = priv->adapter->TmpTxBuf;
++ int timeout = 5000;
++ u16 len;
++ int txlen = 0;
++ int tx_blocks = 0;
++ int i = 0;
++ struct if_sdio_card* card = (struct if_sdio_card*)priv->wlan_dev.card;
++#ifdef FW_DOWNLOAD_SPEED
++ u32 tv1, tv2;
++#endif
++
++ ENTER();
++
++ PRINTM(INFO, "Downloading FW image (%d bytes)\n", firmwarelen);
++
++#ifdef FW_DOWNLOAD_SPEED
++ tv1 = get_utimeofday();
++#endif
++ sdio_claim_host(card->func);
++
++ ret = sdio_set_block_size(card->func, SD_BLOCK_SIZE_FW_DL);
++ if (ret) {
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ /* Wait initially for the first non-zero value */
++ do {
++ base0 = sdio_readb(card->func, HOST_F1_RD_BASE_0, &ret);
++ if (ret) {
++ PRINTM(WARN, "Dev BASE0 register read failed:"
++ " base0=0x%04X(%d)\n", base0, base0);
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++ base1 = sdio_readb(card->func, HOST_F1_RD_BASE_1, &ret);
++ if (ret) {
++ PRINTM(WARN, "Dev BASE1 register read failed:"
++ " base1=0x%04X(%d)\n", base1, base1);
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++ len = (((u16) base1) << 8) | base0;
++ mdelay(1);
++ } while (!len && --timeout);
++
++ if (!timeout) {
++ PRINTM(MSG, "Helper downloading finished.\n");
++ PRINTM(MSG, "Timeout for FW downloading!\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ /* The host polls for the DN_LD_CARD_RDY and CARD_IO_READY bits */
++ ret = mv_sdio_poll_card_status(priv, CARD_IO_READY | DN_LD_CARD_RDY);
++ if (ret < 0) {
++ PRINTM(FATAL, "FW download died, helper not ready\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ len &= ~B_BIT_0;
++
++ /* Perform firmware data transfer */
++ for (offset = 0; offset < firmwarelen; offset += txlen) {
++ txlen = len;
++
++ /* Set blocksize to transfer - checking for last block */
++ if (firmwarelen - offset < txlen) {
++ txlen = firmwarelen - offset;
++ }
++ /* PRINTM(INFO, "fw: offset=%d, txlen = 0x%04X(%d)\n",
++ offset,txlen,txlen); */
++ PRINTM(INFO, ".");
++
++ tx_blocks = (txlen + SD_BLOCK_SIZE_FW_DL - 1) / SD_BLOCK_SIZE_FW_DL;
++
++ /* Copy payload to buffer */
++ memcpy(fwbuf, &firmware[offset], txlen);
++
++ /* Send data */
++ ret = sdio_writesb(card->func, priv->wlan_dev.ioport,
++ fwbuf, tx_blocks * SD_BLOCK_SIZE_FW_DL);
++
++ if (ret) {
++ PRINTM(ERROR, "FW download, write iomem (%d) failed: %d\n", i,
++ ret);
++ sdio_writeb(card->func, 0x04, CONFIGURATION_REG, &ret);
++ if (ret) {
++ PRINTM(ERROR, "write ioreg failed (FN1 CFG)\n");
++ }
++ }
++
++ /* The host polls for the DN_LD_CARD_RDY and CARD_IO_READY bits */
++ ret = mv_sdio_poll_card_status(priv, CARD_IO_READY | DN_LD_CARD_RDY);
++ if (ret < 0) {
++ PRINTM(FATAL, "FW download with helper died @ %d\n", offset);
++ goto done;
++ }
++
++ base0 = sdio_readb(card->func, HOST_F1_RD_BASE_0, &ret);
++ if (ret) {
++ PRINTM(WARN, "Dev BASE0 register read failed:"
++ " base0=0x%04X(%d)\n", base0, base0);
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++ base1 = sdio_readb(card->func, HOST_F1_RD_BASE_1, &ret);
++ if (ret) {
++ PRINTM(WARN, "Dev BASE1 register read failed:"
++ " base1=0x%04X(%d)\n", base1, base1);
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++ len = (((u16) base1) << 8) | base0;
++
++ if (!len) {
++ break;
++ }
++
++ if (len & B_BIT_0) {
++ i++;
++ if (i > MAX_WRITE_IOMEM_RETRY) {
++ PRINTM(FATAL, "FW download failure, over max retry count\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++ PRINTM(ERROR, "CRC error indicated by the helper:"
++ " len = 0x%04X, txlen = %d\n", len, txlen);
++ len &= ~B_BIT_0;
++ /* Setting this to 0 to resend from same offset */
++ txlen = 0;
++ }
++ else
++ i = 0;
++ }
++ PRINTM(INFO, "\nFW download over, size %d bytes\n", firmwarelen);
++
++ ret = WLAN_STATUS_SUCCESS;
++done:
++ sdio_set_block_size(card->func, 0);
++ sdio_release_host(card->func);
++#ifdef FW_DOWNLOAD_SPEED
++ tv2 = get_utimeofday();
++ PRINTM(INFO, "FW: %ld.%03ld.%03ld ", tv1 / 1000000,
++ (tv1 % 1000000) / 1000, tv1 % 1000);
++ PRINTM(INFO, " -> %ld.%03ld.%03ld ", tv2 / 1000000,
++ (tv2 % 1000000) / 1000, tv2 % 1000);
++ tv2 -= tv1;
++ PRINTM(INFO, " == %ld.%03ld.%03ld\n", tv2 / 1000000,
++ (tv2 % 1000000) / 1000, tv2 % 1000);
++#endif
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function reads data from the card.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param type A pointer to keep type as data or command
++ * @param nb A pointer to keep the data/cmd length retured in buffer
++ * @param payload A pointer to the data/cmd buffer
++ * @param nb the length of data/cmd buffer
++ * @param npayload the length of data/cmd buffer
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++mv_sdio_card_to_host(wlan_private * priv,
++ u32 * type, int *nb, u8 * payload, int npayload)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ u16 buf_len = 0;
++ int buf_block_len;
++ int blksz;
++ u32 *pevent;
++ struct if_sdio_card* card = (struct if_sdio_card*)priv->wlan_dev.card;
++
++ ENTER();
++
++ if (!payload) {
++ PRINTM(WARN, "payload NULL pointer received!\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto exit;
++ }
++
++ /* Read the length of data to be transferred */
++ ret = mv_sdio_read_scratch(priv, &buf_len);
++ if (ret < 0) {
++ PRINTM(ERROR, "card_to_host, read RX length failed\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto exit;
++ }
++
++ if (buf_len <= SDIO_HEADER_LEN || buf_len > npayload) {
++ PRINTM(ERROR, "card_to_host, invalid packet length: %d\n", buf_len);
++ ret = WLAN_STATUS_FAILURE;
++ goto exit;
++ }
++
++ ret = mv_sdio_poll_card_status(priv, CARD_IO_READY);
++ if (ret < 0) {
++ PRINTM(FATAL, "MV card status fail\n");
++ goto exit;
++ }
++
++ /* Allocate buffer */
++ blksz = SD_BLOCK_SIZE;
++ buf_block_len = (buf_len + blksz - 1) / blksz;
++
++ ret = sdio_set_block_size(card->func, blksz);
++ if (ret) {
++ ret = WLAN_STATUS_FAILURE;
++ goto exit;
++ }
++
++ ret = sdio_readsb(card->func, payload, priv->wlan_dev.ioport, buf_block_len * blksz);
++
++ if (ret) {
++ PRINTM(ERROR, "card_to_host, read iomem failed: %d\n", ret);
++ ret = WLAN_STATUS_FAILURE;
++ goto exit;
++ }
++ *nb = buf_len;
++
++ DBG_HEXDUMP(IF_D, "SDIO Blk Rd", payload, blksz * buf_block_len);
++
++ *type = (payload[2] | (payload[3] << 8));
++ if (*type == MVSD_EVENT) {
++ pevent = (u32 *) & payload[4];
++ priv->adapter->EventCause = MVSD_EVENT | (((u16) (*pevent)) << 3);
++ }
++
++exit:
++ sdio_set_block_size(card->func, 0);
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function enables the host interrupts mask
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param mask the interrupt mask
++ * @return WLAN_STATUS_SUCCESS
++ */
++static int
++enable_host_int_mask(wlan_private * priv, u8 mask)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ struct if_sdio_card* card = (struct if_sdio_card*)priv->wlan_dev.card;
++
++ sdio_claim_host(card->func);
++ /* Simply write the mask to the register */
++ sdio_writeb(card->func, mask, HOST_INT_MASK_REG, &ret);
++ sdio_release_host(card->func);
++
++ if (ret) {
++ PRINTM(WARN, "ret = %d\n", ret);
++ ret = WLAN_STATUS_FAILURE;
++ }
++
++ priv->adapter->HisRegCpy = 1;
++
++ return ret;
++}
++
++/** @brief This function disables the host interrupts mask.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param mask the interrupt mask
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++disable_host_int_mask(wlan_private * priv, u8 mask)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ u8 host_int_mask;
++ struct if_sdio_card* card = (struct if_sdio_card*)priv->wlan_dev.card;
++
++ sdio_claim_host(card->func);
++ /* Read back the host_int_mask register */
++ host_int_mask = sdio_readb(card->func, HOST_INT_MASK_REG, &ret);
++ if (ret) {
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ /* Update with the mask and write back to the register */
++ host_int_mask &= ~mask;
++ sdio_writeb(card->func, host_int_mask, HOST_INT_MASK_REG, &ret);
++ if (ret) {
++ PRINTM(WARN, "Unable to diable the host interrupt!\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++done:
++ sdio_release_host(card->func);
++ return ret;
++}
++
++/********************************************************
++ Global Functions
++********************************************************/
++
++/**
++ * @brief This function handles the interrupt.
++ *
++ * @param irq The irq of device.
++ * @param dev_id A pointer to net_device structure
++ * @param fp A pointer to pt_regs structure
++ * @return n/a
++ */
++static void sbi_interrupt(struct sdio_func *func)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ u8 sdio_ireg = 0;
++ u8 *cmdBuf;
++ wlan_private *priv;
++ wlan_dev_t *wlan_dev;
++ struct sk_buff *skb;
++ struct if_sdio_card* card = NULL;
++ ENTER();
++
++ priv = wlanpriv;
++ wlan_dev = &priv->wlan_dev;
++ card = (struct if_sdio_card*)wlan_dev->card;
++
++ sdio_ireg = sdio_readb(func, HOST_INTSTATUS_REG, &ret);
++ if (ret) {
++ PRINTM(WARN, "sdio_read_ioreg: read int status register failed\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ sdio_writeb(func, (~sdio_ireg) & (DN_LD_HOST_INT_STATUS | UP_LD_HOST_INT_STATUS),
++ HOST_INTSTATUS_REG, &ret);
++ if (ret) {
++ PRINTM(WARN, "sdio_write_ioreg: clear int status register failed\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ if (sdio_ireg & DN_LD_HOST_INT_STATUS) { /* tx_done INT */
++ if (!priv->wlan_dev.dnld_sent) { /* tx_done already received */
++ PRINTM(INFO, "warning: tx_done already received:"
++ " dnld_sent=0x%x int status=0x%x\n",
++ priv->wlan_dev.dnld_sent, sdio_ireg);
++ }
++ else {
++ wmm_process_fw_iface_tx_xfer_end(priv);
++ priv->wlan_dev.dnld_sent = DNLD_RES_RECEIVED;
++ }
++ OS_INT_DISABLE;
++ card->int_cause |= HIS_TxDnLdRdy;
++ wlan_interrupt(wlan_dev->netdev);
++ OS_INT_RESTORE;
++ }
++
++ if (sdio_ireg & UP_LD_HOST_INT_STATUS) {
++
++ /*
++ * DMA read data is by block alignment,so we need alloc extra block
++ * to avoid wrong memory access.
++ */
++ if (!(skb = dev_alloc_skb(ALLOC_BUF_SIZE))) {
++ PRINTM(WARN, "No free skb\n");
++ priv->stats.rx_dropped++;
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ /*
++ * Transfer data from card
++ * skb->tail is passed as we are calling skb_put after we
++ * are reading the data
++ */
++ if (mv_sdio_card_to_host(priv, &wlan_dev->upld_typ,
++ (int *) &wlan_dev->upld_len, skb->tail,
++ ALLOC_BUF_SIZE) < 0) {
++ u8 cr = 0;
++
++ PRINTM(ERROR, "Card to host failed: int status=0x%x\n",
++ sdio_ireg);
++ cr = sdio_readb(func, CONFIGURATION_REG, &ret);
++ if (ret)
++ PRINTM(ERROR, "read ioreg failed (FN1 CFG)\n");
++
++ PRINTM(INFO, "Config Reg val = %d\n", cr);
++ sdio_writeb(func, cr | 0x04, CONFIGURATION_REG, &ret);
++ if (ret)
++ PRINTM(ERROR, "write ioreg failed (FN1 CFG)\n");
++
++ PRINTM(INFO, "write success\n");
++ cr = sdio_readb(func, CONFIGURATION_REG, &ret);
++ if (ret)
++ PRINTM(ERROR, "read ioreg failed (FN1 CFG)\n");
++
++ PRINTM(INFO, "Config reg val =%x\n", cr);
++ ret = WLAN_STATUS_FAILURE;
++ kfree_skb(skb);
++ goto done;
++ }
++
++ OS_INT_DISABLE;
++ switch (wlan_dev->upld_typ) {
++ case MVSD_DAT:
++ PRINTM(DATA, "Data <= FW\n");
++ card->int_cause |= HIS_RxUpLdRdy;
++ skb_put(skb, priv->wlan_dev.upld_len);
++ skb_pull(skb, SDIO_HEADER_LEN);
++ list_add_tail((struct list_head *) skb,
++ (struct list_head *) &priv->adapter->RxSkbQ);
++ /* skb will be freed by kernel later */
++ break;
++
++ case MVSD_CMD:
++ PRINTM(DATA, "CMD\n");
++
++ /* take care of CurCmd = NULL case */
++ if (!priv->adapter->CurCmd) {
++ cmdBuf = priv->wlan_dev.upld_buf;
++ }
++ else {
++ cmdBuf = priv->adapter->CurCmd->BufVirtualAddr;
++ }
++
++ priv->wlan_dev.upld_len -= SDIO_HEADER_LEN;
++ memcpy(cmdBuf, skb->data + SDIO_HEADER_LEN,
++ MIN(MRVDRV_SIZE_OF_CMD_BUFFER, priv->wlan_dev.upld_len));
++ kfree_skb(skb);
++ card->int_cause |= HIS_CmdUpLdRdy;
++ break;
++
++ case MVSD_EVENT:
++ /* event cause has been saved to priv->adapter->EventCause */
++ kfree_skb(skb);
++ card->int_cause |= HIS_CardEvent;
++ break;
++
++ default:
++ PRINTM(ERROR, "SDIO unknown upld type = 0x%x\n",
++ wlan_dev->upld_typ);
++ kfree_skb(skb);
++ break;
++ }
++ wlan_interrupt(wlan_dev->netdev);
++ OS_INT_RESTORE;
++ }
++
++ ret = WLAN_STATUS_SUCCESS;
++done:
++ LEAVE();
++ return;
++}
++
++/**
++ * @brief This function reads the IO register.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param func funcion number
++ * @param reg register to be read
++ * @param dat A pointer to variable that keeps returned value
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++sbi_read_ioreg(wlan_private * priv, u8 func, u32 reg, u8 * dat)
++{
++ int ret;
++ struct if_sdio_card* card = (struct if_sdio_card*)priv->wlan_dev.card;
++ sdio_claim_host(card->func);
++ if (func == 0)
++ *dat = sdio_f0_readb(card->func, reg, &ret);
++ else
++ *dat = sdio_readb(card->func, reg, &ret);
++ sdio_release_host(card->func);
++ return ret;
++}
++
++/**
++ * @brief This function writes the IO register.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param func funcion number
++ * @param reg register to be written
++ * @param dat the value to be written
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++sbi_write_ioreg(wlan_private * priv, u8 func, u32 reg, u8 dat)
++{
++ int ret;
++ struct if_sdio_card* card = (struct if_sdio_card*)priv->wlan_dev.card;
++ sdio_claim_host(card->func);
++ if (func == 0)
++ sdio_f0_writeb(card->func, dat, reg, &ret);
++ else
++ sdio_writeb(card->func, dat, reg, &ret);
++ sdio_release_host(card->func);
++ return ret;
++}
++
++/**
++ * @brief This function checks the interrupt status and handle it accordingly.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param ireg A pointer to variable that keeps returned value
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++sbi_get_int_status(wlan_private * priv, u8 * ireg)
++{
++ struct if_sdio_card* card = (struct if_sdio_card*)priv->wlan_dev.card;
++ OS_INT_DISABLE;
++ *ireg = card->int_cause;
++ card->int_cause = 0;
++ OS_INT_RESTORE;
++ return WLAN_STATUS_SUCCESS;
++
++}
++
++/**
++ * @brief This function is a dummy function.
++ *
++ * @return WLAN_STATUS_SUCCESS
++ */
++int
++sbi_card_to_host(wlan_private * priv, u32 type,
++ u32 * nb, u8 * payload, u16 npayload)
++{
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @return WLAN_STATUS_SUCCESS
++ */
++int
++sbi_read_event_cause(wlan_private * priv)
++{
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function disables the host interrupts.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++sbi_disable_host_int(wlan_private * priv)
++{
++ return disable_host_int_mask(priv, HIM_DISABLE);
++}
++
++/**
++ * @brief This function enables the host interrupts.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS
++ */
++int
++sbi_enable_host_int(wlan_private * priv)
++{
++ return enable_host_int_mask(priv, HIM_ENABLE);
++}
++
++/**
++ * @brief This function de-registers the device.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS
++ */
++int
++sbi_unregister_dev(wlan_private * priv)
++{
++ ENTER();
++
++ if (priv->wlan_dev.card != NULL) {
++ /* Release the SDIO IRQ */
++ PRINTM(WARN, "Making the sdio dev card as NULL\n");
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function registers the device.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++sbi_register_dev(wlan_private * priv)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ u8 reg;
++ struct if_sdio_card* card = (struct if_sdio_card*)priv->wlan_dev.card;
++
++ ENTER();
++
++ /* Initialize the private structure */
++ strncpy(priv->wlan_dev.name, "sdio0", sizeof(priv->wlan_dev.name));
++ priv->wlan_dev.ioport = 0;
++ priv->wlan_dev.upld_rcv = 0;
++ priv->wlan_dev.upld_typ = 0;
++ priv->wlan_dev.upld_len = 0;
++
++ sdio_claim_host(card->func);
++ /* Read the IO port */
++ reg = sdio_readb(card->func, IO_PORT_0_REG, &ret);
++ if (ret)
++ goto failed;
++ else
++ priv->wlan_dev.ioport |= reg;
++
++ reg = sdio_readb(card->func, IO_PORT_1_REG, &ret);
++ if (ret)
++ goto failed;
++ else
++ priv->wlan_dev.ioport |= (reg << 8);
++
++ reg = sdio_readb(card->func, IO_PORT_2_REG, &ret);
++ if (ret)
++ goto failed;
++ else
++ priv->wlan_dev.ioport |= (reg << 16);
++ sdio_release_host(card->func);
++
++ PRINTM(INFO, "SDIO FUNC1 IO port: 0x%x\n", priv->wlan_dev.ioport);
++
++ /* Disable host interrupt first. */
++ if ((ret = disable_host_int_mask(priv, 0xff)) < 0) {
++ PRINTM(WARN, "Warning: unable to disable host interrupt!\n");
++ }
++
++ priv->adapter->chip_rev = card->chiprev;
++ priv->adapter->sdiomode = 4;
++
++ return WLAN_STATUS_SUCCESS;
++
++failed:
++ sdio_release_host(card->func);
++ priv->wlan_dev.card = NULL;
++
++ return WLAN_STATUS_FAILURE;
++}
++
++/**
++ * @brief This function sends data to the card.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param type data or command
++ * @param payload A pointer to the data/cmd buffer
++ * @param nb the length of data/cmd
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++sbi_host_to_card(wlan_private * priv, u8 type, u8 * payload, u16 nb)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ int buf_block_len;
++ int blksz;
++ int i = 0;
++ struct if_sdio_card* card = (struct if_sdio_card*)priv->wlan_dev.card;
++
++ ENTER();
++
++ sdio_claim_host(card->func);
++ priv->adapter->HisRegCpy = 0;
++
++ /* Allocate buffer and copy payload */
++ blksz = SD_BLOCK_SIZE;
++ buf_block_len = (nb + SDIO_HEADER_LEN + blksz - 1) / blksz;
++
++ /* This is SDIO specific header
++ * length: byte[1][0],
++ * type: byte[3][2] (MVSD_DAT = 0, MVSD_CMD = 1, MVSD_EVENT = 3)
++ */
++ priv->adapter->TmpTxBuf[0] = (nb + SDIO_HEADER_LEN) & 0xff;
++ priv->adapter->TmpTxBuf[1] = ((nb + SDIO_HEADER_LEN) >> 8) & 0xff;
++ priv->adapter->TmpTxBuf[2] = type;
++ priv->adapter->TmpTxBuf[3] = 0x0;
++
++ if (payload != NULL &&
++ (nb > 0 &&
++ nb <= (sizeof(priv->adapter->TmpTxBuf) - SDIO_HEADER_LEN))) {
++ if (type == MVMS_CMD)
++ memcpy(&priv->adapter->TmpTxBuf[SDIO_HEADER_LEN], payload, nb);
++ }
++ else {
++ PRINTM(WARN, "sbi_host_to_card(): Error: payload=%p, nb=%d\n",
++ payload, nb);
++ }
++
++ if (type == MVSD_DAT)
++ priv->wlan_dev.dnld_sent = DNLD_DATA_SENT;
++ else
++ priv->wlan_dev.dnld_sent = DNLD_CMD_SENT;
++
++ ret = sdio_set_block_size(card->func, blksz);
++ if (ret) {
++ ret = WLAN_STATUS_FAILURE;
++ goto exit;
++ }
++
++ do {
++ /* Transfer data to card */
++ ret = sdio_writesb(card->func, priv->wlan_dev.ioport,
++ priv->adapter->TmpTxBuf, blksz * buf_block_len);
++ if (ret) {
++ i++;
++
++ PRINTM(ERROR, "host_to_card, write iomem (%d) failed: %d\n", i,
++ ret);
++ sdio_writeb(card->func, 0x04, CONFIGURATION_REG, &ret);
++ if (ret) {
++ PRINTM(ERROR, "write ioreg failed (FN1 CFG)\n");
++ }
++ ret = WLAN_STATUS_FAILURE;
++ if (i > MAX_WRITE_IOMEM_RETRY) {
++ priv->wlan_dev.dnld_sent = DNLD_RES_RECEIVED;
++ goto exit;
++ }
++ }
++ else {
++ DBG_HEXDUMP(IF_D, "SDIO Blk Wr", priv->adapter->TmpTxBuf,
++ blksz * buf_block_len);
++ }
++ } while (ret == WLAN_STATUS_FAILURE);
++
++exit:
++ sdio_set_block_size(card->func, 0);
++ sdio_release_host(card->func);
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function reads CIS informaion.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++sbi_get_cis_info(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ u8 tupledata[255];
++ ENTER();
++
++ /* TODO using sdio tuple data */
++
++ /* Copy the CIS Table to Adapter */
++ memset(Adapter->CisInfoBuf, 0x0, sizeof(Adapter->CisInfoBuf));
++ memcpy(Adapter->CisInfoBuf, tupledata, sizeof(tupledata));
++ Adapter->CisInfoLen = sizeof(tupledata);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function probes the card.
++ *
++ * @param card_p A pointer to the card
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++sbi_probe_card(void *card_p)
++{
++ struct if_sdio_card* card = (struct if_sdio_card*)card_p;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ if (!card) {
++ ret = -ENODEV; //WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ /* Check for MANFID */
++ PRINTM(INFO, "Marvell SDIO card detected!\n");
++
++ sdio_claim_host(card->func);
++ /* read Revision Register to get the hw revision number */
++ card->chiprev = sdio_readb(card->func, CARD_REVISION_REG, &ret);
++ if (ret) {
++ PRINTM(FATAL, "cannot read CARD_REVISION_REG\n");
++ }
++ else {
++ PRINTM(INFO, "revision=0x%x\n", card->chiprev);
++ switch (card->chiprev) {
++ default:
++ card->block_size_512 = TRUE;
++ card->async_int_mode = TRUE;
++ break;
++ }
++ }
++
++ ret = WLAN_STATUS_SUCCESS;
++done:
++ sdio_release_host(card->func);
++ return ret;
++}
++
++/**
++ * @brief This function calls sbi_download_wlan_fw_image to download
++ * firmware image to the card.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++sbi_prog_firmware_w_helper(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ if (Adapter->fmimage != NULL) {
++ return sbi_download_wlan_fw_image(priv,
++ Adapter->fmimage,
++ Adapter->fmimage_len);
++ }
++ else {
++ PRINTM(MSG, "No external FW image\n");
++ return WLAN_STATUS_FAILURE;
++ }
++}
++
++/**
++ * @brief This function programs helper image.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++sbi_prog_helper(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ if (Adapter->helper != NULL) {
++ return sbi_prog_firmware_image(priv,
++ Adapter->helper, Adapter->helper_len);
++ }
++ else {
++ PRINTM(MSG, "No external helper image\n");
++ return WLAN_STATUS_FAILURE;
++ }
++}
++
++/**
++ * @brief This function checks if the firmware is ready to accept
++ * command or not.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++sbi_verify_fw_download(wlan_private * priv)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ u16 firmwarestat;
++ int tries;
++ struct if_sdio_card* card = (struct if_sdio_card*)priv->wlan_dev.card;
++
++ sdio_claim_host(card->func);
++ /* Wait for firmware initialization event */
++ for (tries = 0; tries < MAX_FIRMWARE_POLL_TRIES; tries++) {
++ if ((ret = mv_sdio_read_scratch(priv, &firmwarestat)) < 0)
++ continue;
++
++ if (firmwarestat == FIRMWARE_READY) {
++ ret = WLAN_STATUS_SUCCESS;
++ break;
++ }
++ else {
++ mdelay(10);
++ ret = WLAN_STATUS_FAILURE;
++ }
++ }
++
++ if (ret < 0) {
++ PRINTM(MSG, "Timeout waiting for FW to become active\n");
++ goto done;
++ }
++
++ ret = WLAN_STATUS_SUCCESS;
++done:
++ sdio_release_host(card->func);
++ return ret;
++}
++
++/**
++ * @brief This function set bus clock on/off
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param option TRUE--on , FALSE--off
++ * @return WLAN_STATUS_SUCCESS
++ */
++int
++sbi_set_bus_clock(wlan_private * priv, u8 option)
++{
++/* if (option == TRUE)
++ start_bus_clock(((mmc_card_t) ((priv->wlan_dev).card))->ctrlr);
++ else
++ stop_bus_clock_2(((mmc_card_t) ((priv->wlan_dev).card))->ctrlr); */
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function makes firmware exiting from deep sleep.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++sbi_exit_deep_sleep(wlan_private * priv)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ struct if_sdio_card* card = (struct if_sdio_card*)priv->wlan_dev.card;
++
++ sbi_set_bus_clock(priv, TRUE);
++
++ sdio_claim_host(card->func);
++ sdio_writeb(card->func, HOST_POWER_UP, CONFIGURATION_REG, &ret);
++ sdio_release_host(card->func);
++
++ return ret;
++}
++
++/**
++ * @brief This function resets the setting of deep sleep.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++sbi_reset_deepsleep_wakeup(wlan_private * priv)
++{
++
++ int ret = WLAN_STATUS_SUCCESS;
++ struct if_sdio_card* card = (struct if_sdio_card*)priv->wlan_dev.card;
++
++ ENTER();
++
++ sdio_claim_host(card->func);
++ sdio_writeb(card->func, 0, CONFIGURATION_REG, &ret);
++ sdio_release_host(card->func);
++
++ LEAVE();
++
++ return ret;
++}
++
++static const struct sdio_device_id if_sdio_ids[] = {
++ { SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SDIO_DEVICE_ID_MARVELL_LIBERTAS)},
++ { /* end: all zeroes */},
++};
++
++MODULE_DEVICE_TABLE(sdio, if_sdio_ids);
++struct if_sdio_model
++{
++ int model;
++ const char *helper;
++ const char *firmware;
++};
++
++static struct if_sdio_model if_sdio_models[] = {
++ {
++ /* 8686 */
++ .model = 0x0B,
++ .helper = "/lib/firmware/sd8686_helper.bin",
++ .firmware = "/lib/firmware/sd8686.bin",
++ },
++};
++
++static int if_sdio_probe(struct sdio_func *func,
++ const struct sdio_device_id *id)
++{
++ struct if_sdio_card *card;
++ int ret, i;
++ unsigned int model;
++
++ card = kzalloc(sizeof(struct if_sdio_card), GFP_KERNEL);
++
++ for (i = 0;i < func->card->num_info;i++) {
++ if (sscanf(func->card->info[i],
++ "802.11 SDIO ID: %x", &model) == 1)
++ break;
++ if (sscanf(func->card->info[i],
++ "ID: %x", &model) == 1)
++ break;
++ if (!strcmp(func->card->info[i], "IBIS Wireless SDIO Card")) {
++ model = 4;
++ break;
++ }
++ }
++
++ if (i == func->card->num_info) {
++ printk("unable to identify card model\n");
++ return -ENODEV;
++ }
++
++ card->func = func;
++ card->model = model;
++
++ for (i = 0;i < ARRAY_SIZE(if_sdio_models);i++) {
++ if (card->model == if_sdio_models[i].model)
++ break;
++ }
++
++ if (i == ARRAY_SIZE(if_sdio_models)) {
++ printk("unknown card model 0x%x\n", card->model);
++ ret = -ENODEV;
++ goto free;
++ }
++
++ helper_name = if_sdio_models[i].helper;
++ fw_name = if_sdio_models[i].firmware;
++
++ sdio_claim_host(func);
++
++ ret = sdio_enable_func(func);
++ if (ret)
++ goto release;
++
++ sdio_writeb(func, 0x00, HOST_INT_MASK_REG, &ret);
++ if (ret) {
++ PRINTM(WARN, "Unable to diable the host interrupt!\n");
++ goto reclaim;
++ }
++
++ ret = sdio_claim_irq(func, sbi_interrupt);
++ if (ret)
++ goto disable;
++
++ sdio_release_host(func);
++
++ sdio_set_drvdata(func, card);
++
++ ret = sbi_add_card(card);
++ if (ret)
++ goto reclaim;
++
++out:
++ return ret;
++
++reclaim:
++ sdio_claim_host(func);
++ sdio_release_irq(func);
++disable:
++ sdio_disable_func(func);
++release:
++ sdio_release_host(func);
++free:
++ kfree(card);
++ goto out;
++}
++
++static void if_sdio_remove(struct sdio_func *func)
++{
++ struct if_sdio_card *card = sdio_get_drvdata(func);
++ sbi_remove_card(card);
++ sdio_claim_host(func);
++ sdio_release_irq(func);
++ sdio_disable_func(func);
++ sdio_release_host(func);
++ kfree(card);
++ return;
++}
++
++static struct sdio_driver if_sdio_driver = {
++ .name = "sd8686_sdio",
++ .id_table = if_sdio_ids,
++ .probe = if_sdio_probe,
++ .remove = if_sdio_remove,
++};
++
++static int if_sdio_init_module(void)
++{
++ int ret = 0;
++
++ printk(KERN_INFO "8686 sdio: sd 8686 driver\n");
++ printk(KERN_INFO "8686 sdio: Copyright HHCN 2009\n");
++
++ ret = sdio_register_driver(&if_sdio_driver);
++
++ return ret;
++}
++
++static void if_sdio_exit_module(void)
++{
++ sdio_unregister_driver(&if_sdio_driver);
++}
++
++module_init(if_sdio_init_module);
++module_exit(if_sdio_exit_module);
++
++MODULE_DESCRIPTION("Marvell SD8686 SDIO WLAN Driver");
++MODULE_AUTHOR("You Sheng");
++MODULE_LICENSE("GPL");
+diff --git a/drivers/net/wireless/marvell8686/if_sdio.h b/drivers/net/wireless/marvell8686/if_sdio.h
+new file mode 100644
+index 0000000..d059ccf
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/if_sdio.h
+@@ -0,0 +1,97 @@
++/** @file if_sdio.h
++ * @brief This file contains SDIO IF (interface) module
++ * related macros, enum, and structure.
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2006
++ */
++/****************************************************
++Change log:
++ 10/12/05: add Doxygen format comments
++****************************************************/
++
++#ifndef _IF_SDIO_H_
++#define _IF_SDIO_H_
++
++#include "include.h"
++#include "sdio.h"
++
++#define SD_BUS_WIDTH_1 0x00
++#define SD_BUS_WIDTH_4 0x02
++#define SD_BUS_WIDTH_MASK 0x03
++#define ASYNC_INT_MODE 0x20
++
++/* Host Control Registers */
++#define IO_PORT_0_REG 0x00
++#define IO_PORT_1_REG 0x01
++#define IO_PORT_2_REG 0x02
++#define CONFIGURATION_REG 0x03
++#define HOST_WO_CMD53_FINISH_HOST (0x1U << 2)
++#define HOST_POWER_UP (0x1U << 1)
++#define HOST_POWER_DOWN (0x1U << 0)
++#define HOST_INT_MASK_REG 0x04
++#define UP_LD_HOST_INT_MASK (0x1U)
++#define DN_LD_HOST_INT_MASK (0x2U)
++#define HOST_INTSTATUS_REG 0x05
++#define UP_LD_HOST_INT_STATUS (0x1U)
++#define DN_LD_HOST_INT_STATUS (0x2U)
++#define HOST_INT_RSR_REG 0x06
++#define UP_LD_HOST_INT_RSR (0x1U)
++#define HOST_INT_STATUS_REG 0x07
++#define UP_LD_CRC_ERR (0x1U << 2)
++#define UP_LD_RESTART (0x1U << 1)
++#define DN_LD_RESTART (0x1U << 0)
++
++/* Card Control Registers */
++#define SQ_READ_BASE_ADDRESS_A0_REG 0x10
++#define SQ_READ_BASE_ADDRESS_A1_REG 0x11
++#define SQ_READ_BASE_ADDRESS_A2_REG 0x12
++#define SQ_READ_BASE_ADDRESS_A3_REG 0x13
++#define SQ_READ_BASE_ADDRESS_B0_REG 0x14
++#define SQ_READ_BASE_ADDRESS_B1_REG 0x15
++#define SQ_READ_BASE_ADDRESS_B2_REG 0x16
++#define SQ_READ_BASE_ADDRESS_B3_REG 0x17
++#define CARD_STATUS_REG 0x20
++#define CARD_IO_READY (0x1U << 3)
++#define CIS_CARD_RDY (0x1U << 2)
++#define UP_LD_CARD_RDY (0x1U << 1)
++#define DN_LD_CARD_RDY (0x1U << 0)
++#define HOST_INTERRUPT_MASK_REG 0x24
++#define HOST_POWER_INT_MASK (0x1U << 3)
++#define ABORT_CARD_INT_MASK (0x1U << 2)
++#define UP_LD_CARD_INT_MASK (0x1U << 1)
++#define DN_LD_CARD_INT_MASK (0x1U << 0)
++#define CARD_INTERRUPT_STATUS_REG 0x28
++#define POWER_UP_INT (0x1U << 4)
++#define POWER_DOWN_INT (0x1U << 3)
++#define CARD_INTERRUPT_RSR_REG 0x2c
++#define POWER_UP_RSR (0x1U << 4)
++#define POWER_DOWN_RSR (0x1U << 3)
++#define DEBUG_0_REG 0x30
++#define SD_TESTBUS0 (0x1U)
++#define DEBUG_1_REG 0x31
++#define SD_TESTBUS1 (0x1U)
++#define DEBUG_2_REG 0x32
++#define SD_TESTBUS2 (0x1U)
++#define DEBUG_3_REG 0x33
++#define SD_TESTBUS3 (0x1U)
++#define CARD_OCR_0_REG 0x34
++#define CARD_OCR_1_REG 0x35
++#define CARD_OCR_3_REG 0x36
++#define CARD_CONFIG_REG 0x38
++#define CARD_REVISION_REG 0x3c
++#define CMD53_FINISH_GBUS (0x1U << 1)
++#define SD_NEG_EDGE (0x1U << 0)
++
++/* Special registers in function 0 of the SDxx card */
++#define SCRATCH_0_REG 0x80fe
++#define SCRATCH_1_REG 0x80ff
++
++#define HOST_F1_RD_BASE_0 0x0010
++#define HOST_F1_RD_BASE_1 0x0011
++#define HOST_F1_CARD_RDY 0x0020
++
++/********************************************************
++ Global Functions
++********************************************************/
++
++#endif /* _IF_SDIO_H */
+diff --git a/drivers/net/wireless/marvell8686/include.h b/drivers/net/wireless/marvell8686/include.h
+new file mode 100644
+index 0000000..6bf9abe
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/include.h
+@@ -0,0 +1,42 @@
++/** @file include.h
++ *
++ * @brief This file contains all the necessary include file.
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2007
++ */
++/********************************************************
++Change log:
++ 10/11/05: Add Doxygen format comments
++ 01/11/06: Conditional include file removal/addition
++ 01/30/06: Add kernel 2.6 support
++
++********************************************************/
++
++#ifndef _INCLUDE_H_
++#define _INCLUDE_H_
++
++#include "os_headers.h"
++#include "wlan_types.h"
++#include "wlan_defs.h"
++#include "wlan_thread.h"
++
++#include "wlan_wmm.h"
++#include "wlan_11d.h"
++
++#include "os_timers.h"
++
++#include "host.h"
++#include "hostcmd.h"
++
++#include "wlan_scan.h"
++#include "wlan_join.h"
++
++#include "wlan_dev.h"
++#include "os_macros.h"
++#include "sbi.h"
++
++#include "sdio.h"
++
++#include "wlan_wext.h"
++#include "wlan_decl.h"
++#endif /* _INCLUDE_H_ */
+diff --git a/drivers/net/wireless/marvell8686/os_defs.h b/drivers/net/wireless/marvell8686/os_defs.h
+new file mode 100644
+index 0000000..0529bdd
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/os_defs.h
+@@ -0,0 +1,42 @@
++/*
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2006
++ */
++
++#ifndef _OS_HEADER1_
++#define _OS_HEADER1_
++
++typedef char CHAR;
++typedef char *PCHAR;
++typedef u8 *PUCHAR;
++typedef u16 *PUSHORT;
++typedef long *PLONG;
++typedef PLONG LONG_PTR;
++typedef u32 *ULONG_PTR;
++typedef u32 *Pu32;
++typedef unsigned int UINT;
++typedef UINT *PUINT;
++typedef void VOID;
++typedef VOID *PVOID;
++typedef int WLAN_STATUS;
++typedef u8 BOOLEAN;
++typedef BOOLEAN *PBOOLEAN;
++typedef PVOID PDRIVER_OBJECT;
++typedef PUCHAR PUNICODE_STRING;
++typedef long long LONGLONG;
++typedef LONGLONG *PLONGLONG;
++typedef unsigned long long *PULONGLONG;
++typedef PUCHAR ANSI_STRING;
++typedef ANSI_STRING *PANSI_STRING;
++typedef unsigned short WCHAR;
++typedef WCHAR *PWCHAR;
++typedef WCHAR *LPWCH, *PWCH;
++typedef WCHAR *NWPSTR;
++typedef WCHAR *LPWSTR, *PWSTR;
++typedef struct semaphore SEMAPHORE;
++
++#ifdef __KERNEL__
++typedef irqreturn_t IRQ_RET_TYPE;
++#define IRQ_RET return IRQ_HANDLED
++#endif /* __KERNEL__ */
++
++#endif /* _OS_HEADER1 */
+diff --git a/drivers/net/wireless/marvell8686/os_headers.h b/drivers/net/wireless/marvell8686/os_headers.h
+new file mode 100644
+index 0000000..d01c604
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/os_headers.h
+@@ -0,0 +1,69 @@
++/*
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2006
++ */
++
++#ifndef _OS_HEADERS_H
++#define _OS_HEADERS_H
++
++#ifndef __ATTRIB_ALIGN__
++#define __ATTRIB_ALIGN__ __attribute__((aligned(4)))
++#endif
++
++#ifndef __ATTRIB_PACK__
++#define __ATTRIB_PACK__ __attribute__ ((packed))
++#endif
++
++/* Linux header files */
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/version.h>
++#include <linux/param.h>
++#include <linux/delay.h>
++#include <linux/slab.h>
++#include <linux/mm.h>
++#include <linux/types.h>
++#include <linux/sched.h>
++#include <linux/timer.h>
++#include <linux/types.h>
++#include <linux/ioport.h>
++#include <linux/pci.h>
++#include <linux/ctype.h>
++#include <linux/proc_fs.h>
++#include <linux/ptrace.h>
++#include <linux/string.h>
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
++#include <linux/config.h>
++#endif
++
++#include <linux/ioport.h>
++
++/* New Code to synchronize between IEEE Power save and PM*/
++#ifdef ENABLE_PM
++#include <linux/pm.h>
++#endif
++
++/* ASM files */
++#include <asm/semaphore.h>
++#include <asm/byteorder.h>
++#include <asm/irq.h>
++#include <asm/uaccess.h>
++#include <asm/io.h>
++#include <asm/system.h>
++
++/* Net header files */
++#include <linux/wireless.h>
++#include <linux/netdevice.h>
++#include <linux/net.h>
++#include <linux/ip.h>
++#include <linux/skbuff.h>
++#include <linux/if_arp.h>
++#include <linux/if_ether.h>
++#include <linux/etherdevice.h>
++#include <net/arp.h>
++#include <linux/rtnetlink.h>
++
++/* Wireless header */
++#include <net/iw_handler.h>
++#endif
+diff --git a/drivers/net/wireless/marvell8686/os_macros.h b/drivers/net/wireless/marvell8686/os_macros.h
+new file mode 100644
+index 0000000..945c609
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/os_macros.h
+@@ -0,0 +1,165 @@
++/*
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2006
++ */
++#ifndef _OS_MACROS_H
++#define _OS_MACROS_H
++
++#define os_time_get() jiffies
++
++extern spinlock_t driver_lock;
++extern unsigned long driver_flags;
++#define OS_INT_DISABLE spin_lock_irqsave(&driver_lock, driver_flags)
++#define OS_INT_RESTORE spin_unlock_irqrestore(&driver_lock, driver_flags); \
++ driver_lock = SPIN_LOCK_UNLOCKED
++
++#define UpdateTransStart(dev) { \
++ dev->trans_start = jiffies; \
++}
++
++#define OS_SET_THREAD_STATE(x) set_current_state(x)
++
++#define MODULE_GET if(try_module_get(THIS_MODULE)==0) return WLAN_STATUS_FAILURE;
++#define MODULE_PUT module_put(THIS_MODULE)
++
++#define OS_INIT_SEMAPHORE(x) init_MUTEX(x)
++#define OS_ACQ_SEMAPHORE_BLOCK(x) down_interruptible(x)
++#define OS_ACQ_SEMAPHORE_NOBLOCK(x) down_trylock(x)
++#define OS_REL_SEMAPHORE(x) up(x)
++
++/* Definitions below are needed for other OS like threadx */
++#define TX_DISABLE
++#define TX_RESTORE
++#define ConfigureThreadPriority()
++#define OS_INTERRUPT_SAVE_AREA
++#define OS_FREE_LOCK(x)
++#define TX_EVENT_FLAGS_SET(x, y, z)
++
++#define os_wait_interruptible_timeout(waitq, cond, timeout) \
++ wait_event_interruptible_timeout(waitq, cond, timeout)
++
++static inline void
++os_sched_timeout(u32 millisec)
++{
++ set_current_state(TASK_INTERRUPTIBLE);
++
++ schedule_timeout((millisec * HZ) / 1000);
++}
++
++static inline void
++os_schedule(u32 millisec)
++{
++ schedule_timeout((millisec * HZ) / 1000);
++}
++
++static inline int
++CopyMulticastAddrs(wlan_adapter * Adapter, struct net_device *dev)
++{
++ int i = 0;
++ struct dev_mc_list *mcptr = dev->mc_list;
++
++ for (i = 0; i < dev->mc_count; i++) {
++ memcpy(&Adapter->MulticastList[i], mcptr->dmi_addr, ETH_ALEN);
++ mcptr = mcptr->next;
++ }
++
++ return i;
++}
++
++static inline u32
++get_utimeofday(void)
++{
++ struct timeval t;
++ u32 ut;
++
++ do_gettimeofday(&t);
++ ut = (u32) t.tv_sec * 1000000 + ((u32) t.tv_usec);
++ return ut;
++}
++
++static inline int
++os_upload_rx_packet(wlan_private * priv, struct sk_buff *skb)
++{
++
++#define IPFIELD_ALIGN_OFFSET 2
++
++ skb->dev = priv->wlan_dev.netdev;
++ skb->protocol = eth_type_trans(skb, priv->wlan_dev.netdev);
++ skb->ip_summed = CHECKSUM_UNNECESSARY;
++
++ netif_rx(skb);
++
++ return 0;
++}
++
++static inline void
++os_free_tx_packet(wlan_private * priv)
++{
++ ulong flags;
++
++ if (priv->adapter->CurrentTxSkb) {
++ kfree_skb(priv->adapter->CurrentTxSkb);
++ spin_lock_irqsave(&priv->adapter->CurrentTxLock, flags);
++ priv->adapter->CurrentTxSkb = NULL;
++ spin_unlock_irqrestore(&priv->adapter->CurrentTxLock, flags);
++ }
++}
++
++/*
++ * netif carrier_on/off and start(wake)/stop_queue handling
++ *
++ * carrier_on carrier_off start_queue stop_queue
++ * open x(connect) x(disconnect) x
++ * close x x
++ * assoc x x
++ * deauth x x
++ * adhoc-start
++ * adhoc-join
++ * adhoc-link x x
++ * adhoc-bcnlost x x
++ * scan-begin x x
++ * scan-end x x
++ * ds-enter x x
++ * ds-exit x x
++ * xmit x
++ * xmit-done x
++ * tx-timeout
++ */
++static inline void
++os_carrier_on(wlan_private * priv)
++{
++ if (!netif_carrier_ok(priv->wlan_dev.netdev) &&
++ (priv->adapter->MediaConnectStatus == WlanMediaStateConnected) &&
++ ((priv->adapter->InfrastructureMode != Wlan802_11IBSS) ||
++ (priv->adapter->AdhocLinkSensed))) {
++ netif_carrier_on(priv->wlan_dev.netdev);
++ }
++}
++
++static inline void
++os_carrier_off(wlan_private * priv)
++{
++ if (netif_carrier_ok(priv->wlan_dev.netdev)) {
++ netif_carrier_off(priv->wlan_dev.netdev);
++ }
++}
++
++static inline void
++os_start_queue(wlan_private * priv)
++{
++ if (netif_queue_stopped(priv->wlan_dev.netdev) &&
++ (priv->adapter->MediaConnectStatus == WlanMediaStateConnected) &&
++ ((priv->adapter->InfrastructureMode != Wlan802_11IBSS) ||
++ (priv->adapter->AdhocLinkSensed))) {
++ netif_wake_queue(priv->wlan_dev.netdev);
++ }
++}
++
++static inline void
++os_stop_queue(wlan_private * priv)
++{
++ if (!netif_queue_stopped(priv->wlan_dev.netdev)) {
++ netif_stop_queue(priv->wlan_dev.netdev);
++ }
++}
++
++#endif /* _OS_MACROS_H */
+diff --git a/drivers/net/wireless/marvell8686/os_timers.h b/drivers/net/wireless/marvell8686/os_timers.h
+new file mode 100644
+index 0000000..b31387f
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/os_timers.h
+@@ -0,0 +1,83 @@
++/*
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2006
++ */
++
++#ifndef _OS_TIMERS_H
++#define _OS_TIMERS_H
++
++typedef struct __WLAN_DRV_TIMER
++{
++ struct timer_list tl;
++ void (*timer_function) (void *context);
++ void *function_context;
++ UINT time_period;
++ BOOLEAN timer_is_periodic;
++ BOOLEAN timer_is_canceled;
++} __ATTRIB_PACK__ WLAN_DRV_TIMER, *PWLAN_DRV_TIMER;
++
++static inline void
++TimerHandler(unsigned long fcontext)
++{
++ PWLAN_DRV_TIMER timer = (PWLAN_DRV_TIMER) fcontext;
++
++ timer->timer_function(timer->function_context);
++
++ if (timer->timer_is_periodic == TRUE) {
++ mod_timer(&timer->tl, jiffies + ((timer->time_period * HZ) / 1000));
++ }
++}
++
++static inline void
++InitializeTimer(PWLAN_DRV_TIMER timer,
++ void (*TimerFunction) (void *context), void *FunctionContext)
++{
++ // first, setup the timer to trigger the WlanTimerHandler proxy
++ init_timer(&timer->tl);
++ timer->tl.function = TimerHandler;
++ timer->tl.data = (u32) timer;
++
++ // then tell the proxy which function to call and what to pass it
++ timer->timer_function = TimerFunction;
++ timer->function_context = FunctionContext;
++ timer->timer_is_canceled = FALSE;
++}
++
++static inline void
++SetTimer(PWLAN_DRV_TIMER timer, UINT MillisecondPeriod)
++{
++ timer->time_period = MillisecondPeriod;
++ timer->timer_is_periodic = FALSE;
++ timer->tl.expires = jiffies + (MillisecondPeriod * HZ) / 1000;
++ add_timer(&timer->tl);
++ timer->timer_is_canceled = FALSE;
++}
++
++static inline void
++ModTimer(PWLAN_DRV_TIMER timer, UINT MillisecondPeriod)
++{
++ timer->time_period = MillisecondPeriod;
++ timer->timer_is_periodic = FALSE;
++ mod_timer(&timer->tl, jiffies + (MillisecondPeriod * HZ) / 1000);
++ timer->timer_is_canceled = FALSE;
++}
++
++static inline void
++SetPeriodicTimer(PWLAN_DRV_TIMER timer, UINT MillisecondPeriod)
++{
++ timer->time_period = MillisecondPeriod;
++ timer->timer_is_periodic = TRUE;
++ timer->tl.expires = jiffies + (MillisecondPeriod * HZ) / 1000;
++ add_timer(&timer->tl);
++ timer->timer_is_canceled = FALSE;
++}
++
++#define FreeTimer(x) do {} while (0)
++
++static inline void
++CancelTimer(WLAN_DRV_TIMER * timer)
++{
++ del_timer(&timer->tl);
++ timer->timer_is_canceled = TRUE;
++}
++
++#endif /* _OS_TIMERS_H */
+diff --git a/drivers/net/wireless/marvell8686/release_version.h b/drivers/net/wireless/marvell8686/release_version.h
+new file mode 100644
+index 0000000..161da80
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/release_version.h
+@@ -0,0 +1,5 @@
++/**
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2006
++ */
++
++#define DRIVER_RELEASE_VERSION "26409.p60"
+diff --git a/drivers/net/wireless/marvell8686/sbi.h b/drivers/net/wireless/marvell8686/sbi.h
+new file mode 100644
+index 0000000..65cf3f8
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/sbi.h
+@@ -0,0 +1,111 @@
++/** @file sbi.h
++ *
++ * @brief This file contains IF layer definitions.
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2006
++ */
++/********************************************************
++Change log:
++ 10/11/05: Add Doxygen format comments
++ 01/05/06: Add kernel 2.6.x support
++
++********************************************************/
++
++#ifndef _SBI_H_
++#define _SBI_H_
++
++/**Bit Definition*/
++#define B_BIT_0 0x01
++#define B_BIT_1 0x02
++#define B_BIT_2 0x04
++#define B_BIT_3 0x08
++#define B_BIT_4 0x10
++#define B_BIT_5 0x20
++#define B_BIT_6 0x40
++#define B_BIT_7 0x80
++#define B_BIT_8 0x100
++#define B_BIT_9 0X200
++#define B_BIT_10 0x400
++
++/** INT Status Bit Definition*/
++#define HIS_RxUpLdRdy B_BIT_0
++#define HIS_TxDnLdRdy B_BIT_1
++#define HIS_CmdDnLdRdy B_BIT_2
++#define HIS_CardEvent B_BIT_3
++#define HIS_CmdUpLdRdy B_BIT_4
++#define HIS_WrFifoOvrflow B_BIT_5
++#define HIS_RdFifoUndrflow B_BIT_6
++#define HIS_WlanReady B_BIT_7
++
++#define HIM_DISABLE 0xff
++#define HIM_ENABLE 0x03
++
++#define FIRMWARE_READY 0xfedc
++#ifndef DEV_NAME_LEN
++#define DEV_NAME_LEN 32
++#endif
++#define MAXKEYLEN 13
++
++/* The number of times to try when polling for status bits */
++#define MAX_POLL_TRIES 1000
++
++/* The number of times to try when waiting for downloaded firmware to
++ become active. (polling the scratch register). */
++
++#define MAX_FIRMWARE_POLL_TRIES 1000
++
++#define FIRMWARE_TRANSFER_NBLOCK 1
++#define SBI_EVENT_CAUSE_SHIFT 3
++
++typedef enum _mv_sd_type
++{
++ MVSD_DAT = 0,
++ MVSD_CMD = 1,
++ MVSD_EVENT = 3
++} mv_sd_type;
++
++/** Function Prototype Declaration */
++typedef wlan_private *(*wlan_notifier_fn_add) (void *dev_id);
++typedef int (*wlan_notifier_fn_remove) (void *dev_id);
++
++typedef IRQ_RET_TYPE(*isr_notifier_fn_t) (s32 irq, void *dev_id,
++ struct pt_regs * reg);
++typedef IRQ_RET_TYPE(*handler_fn_t) (s32 irq, void *dev_id, struct pt_regs *);
++
++/* Probe and Check if the card is present*/
++int sbi_probe_card(void *card);
++int *sbi_register(wlan_notifier_fn_add, wlan_notifier_fn_remove, void *);
++int sbi_register_dev(wlan_private * priv);
++int sbi_unregister_dev(wlan_private *);
++int sbi_disable_host_int(wlan_private * priv);
++int sbi_get_int_status(wlan_private * priv, u8 *);
++void sbi_unregister(void);
++int sbi_prog_firmware(wlan_private *);
++int sbi_verify_fw_download(wlan_private *);
++
++int sbi_prog_helper(wlan_private *);
++int sbi_prog_firmware_w_helper(wlan_private *);
++
++int sbi_read_event_cause(wlan_private *);
++int sbi_host_to_card(wlan_private * priv, u8 type, u8 * payload, u16 nb);
++int sbi_card_to_host(wlan_private * priv, u32 type, u32 * nb, u8 * payload,
++ u16 npayload);
++int sbi_enable_host_int(wlan_private *);
++
++int sbi_exit_deep_sleep(wlan_private *);
++int sbi_reset_deepsleep_wakeup(wlan_private *);
++#ifdef ENABLE_PM
++int sbi_suspend(wlan_private *);
++int sbi_resume(wlan_private *);
++#endif
++
++int sbi_read_ioreg(wlan_private * priv, u8 func, u32 reg, u8 * dat);
++int sbi_write_ioreg(wlan_private * priv, u8 func, u32 reg, u8 dat);
++int sbi_set_bus_clock(wlan_private * priv, u8 option);
++
++int sbi_get_cis_info(wlan_private * priv);
++
++int wlan_remove_card(void *card);
++wlan_private* wlan_add_card(void *card);
++
++#endif /* _SBI_H */
+diff --git a/drivers/net/wireless/marvell8686/sdio.h b/drivers/net/wireless/marvell8686/sdio.h
+new file mode 100644
+index 0000000..3e2e60d
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/sdio.h
+@@ -0,0 +1,112 @@
++/*File sdio.h
++ * This file contains the structure definations for the low level driver
++ * And the error response related code
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2006
++ */
++
++#ifndef __SDIO_H__
++#define __SDIO_H__
++
++#include <linux/spinlock.h> /* For read write semaphores */
++#include <asm/semaphore.h>
++#include <linux/completion.h>
++#include <asm/dma.h>
++#ifdef CONFIG_MARVELL_8686_PROC_FS
++ #include <linux/proc_fs.h>
++#endif
++
++#include "os_defs.h"
++
++#ifdef DEBUG_SDIO_LEVEL2
++#ifndef DEBUG_LEVEL1
++#define DEBUG_LEVEL1
++#endif
++#define _ENTER() printk(KERN_DEBUG "Enter: %s, %s linux %i\n", __FUNCTION__, \
++ __FILE__, __LINE__)
++#define _LEAVE() printk(KERN_DEBUG "Leave: %s, %s linux %i\n", __FUNCTION__, \
++ __FILE__, __LINE__)
++#else
++#define _ENTER()
++#define _LEAVE()
++#endif
++
++#ifdef DEBUG_SDIO_LEVEL1
++#define _DBGMSG(x...) printk(KERN_DEBUG x)
++#define _WARNING(x...) printk(KERN_DEBUG x)
++#else
++#define _DBGMSG(x...)
++#define _WARNING(x...)
++#endif
++
++#ifdef DEBUG_SDIO_LEVEL0
++#define _PRINTK(x...) printk(x)
++#define _ERROR(x...) printk(KERN_ERR x)
++#else
++#define _PRINTK(x...)
++#define _ERROR(x...)
++#endif
++
++typedef struct _card_capability
++{
++ u8 num_of_io_funcs; /* Number of i/o functions */
++ u8 memory_yes; /* Memory present ? */
++ u16 rca; /* Relative Card Address */
++ u32 ocr; /* Operation Condition register */
++ u16 fnblksz[8];
++ u32 cisptr[8];
++} card_capability;
++
++typedef struct _dummy_tmpl
++{
++ int irq_line;
++} dummy_tmpl;
++
++typedef struct _sdio_host *mmc_controller_t;
++
++typedef enum _sdio_fsm
++{
++ SDIO_FSM_IDLE = 1,
++ SDIO_FSM_CLK_OFF,
++ SDIO_FSM_END_CMD,
++ SDIO_FSM_BUFFER_IN_TRANSIT,
++ SDIO_FSM_END_BUFFER,
++ SDIO_FSM_END_IO,
++ SDIO_FSM_END_PRG,
++ SDIO_FSM_ERROR
++} sdio_fsm_state;
++
++typedef struct _sdio_host
++{
++ char name[16];
++ int bus_width;
++} __attribute__ ((aligned)) sdio_ctrller;
++
++typedef struct _sdio_operations
++{
++ char name[16];
++} sdio_operations;
++
++typedef struct _iorw_extended_t
++{
++ u8 rw_flag; /** If 0 command is READ; else if 1 command is WRITE */
++ u8 func_num;
++ u8 blkmode;
++ u8 op_code;
++ u32 reg_addr;
++ u32 byte_cnt;
++ u32 blk_size;
++ u8 *buf;
++} iorw_extended_t;
++
++#define BUS_INTERFACE_CONTROL_REG 0x07
++#define CARD_CAPABILITY_REG 0x08
++#define COMMON_CIS_POINTER_0_REG 0x09
++#define COMMON_CIS_POINTER_1_REG 0x0a
++#define COMMON_CIS_POINTER_2_REG 0x0b
++#define BUS_SUSPEND_REG 0x0c
++#define FUNCTION_SELECT_REG 0x0d
++#define EXEC_FLAGS_REG 0x0e
++#define READY_FLAGS_REG 0x0f
++
++#endif /* __SDIO__H */
+diff --git a/drivers/net/wireless/marvell8686/wlan_11d.c b/drivers/net/wireless/marvell8686/wlan_11d.c
+new file mode 100644
+index 0000000..0dbcf49
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_11d.c
+@@ -0,0 +1,893 @@
++/** @file wlan_11d.c
++ * @brief This file contains functions for 802.11D.
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2006
++ */
++/********************************************************
++Change log:
++ 10/04/05: Add Doxygen format comments
++
++********************************************************/
++#include "include.h"
++
++/********************************************************
++ Local Variables
++********************************************************/
++#define TX_PWR_DEFAULT 10
++
++static region_code_mapping_t region_code_mapping[] = {
++ {"US ", 0x10}, /* US FCC */
++ {"CA ", 0x20}, /* IC Canada */
++ {"SG ", 0x10}, /* Singapore */
++ {"EU ", 0x30}, /* ETSI */
++ {"AU ", 0x30}, /* Australia */
++ {"KR ", 0x30}, /* Republic Of Korea */
++ {"FR ", 0x32}, /* France */
++ {"JP ", 0x40}, /* Japan */
++ {"JP ", 0x41}, /* Japan */
++};
++
++/********************************************************
++ Global Variables
++********************************************************/
++/* Following 2 structure defines the supported channels */
++CHANNEL_FREQ_POWER channel_freq_power_UN_BG[] = {
++ {1, 2412, TX_PWR_DEFAULT},
++ {2, 2417, TX_PWR_DEFAULT},
++ {3, 2422, TX_PWR_DEFAULT},
++ {4, 2427, TX_PWR_DEFAULT},
++ {5, 2432, TX_PWR_DEFAULT},
++ {6, 2437, TX_PWR_DEFAULT},
++ {7, 2442, TX_PWR_DEFAULT},
++ {8, 2447, TX_PWR_DEFAULT},
++ {9, 2452, TX_PWR_DEFAULT},
++ {10, 2457, TX_PWR_DEFAULT},
++ {11, 2462, TX_PWR_DEFAULT},
++ {12, 2467, TX_PWR_DEFAULT},
++ {13, 2472, TX_PWR_DEFAULT},
++ {14, 2484, TX_PWR_DEFAULT}
++};
++
++CHANNEL_FREQ_POWER channel_freq_power_UN_AJ[] = {
++ {8, 5040, TX_PWR_DEFAULT},
++ {12, 5060, TX_PWR_DEFAULT},
++ {16, 5080, TX_PWR_DEFAULT},
++ {34, 5170, TX_PWR_DEFAULT},
++ {38, 5190, TX_PWR_DEFAULT},
++ {42, 5210, TX_PWR_DEFAULT},
++ {46, 5230, TX_PWR_DEFAULT},
++ {36, 5180, TX_PWR_DEFAULT},
++ {40, 5200, TX_PWR_DEFAULT},
++ {44, 5220, TX_PWR_DEFAULT},
++ {48, 5240, TX_PWR_DEFAULT},
++ {52, 5260, TX_PWR_DEFAULT},
++ {56, 5280, TX_PWR_DEFAULT},
++ {60, 5300, TX_PWR_DEFAULT},
++ {64, 5320, TX_PWR_DEFAULT},
++ {100, 5500, TX_PWR_DEFAULT},
++ {104, 5520, TX_PWR_DEFAULT},
++ {108, 5540, TX_PWR_DEFAULT},
++ {112, 5560, TX_PWR_DEFAULT},
++ {116, 5580, TX_PWR_DEFAULT},
++ {120, 5600, TX_PWR_DEFAULT},
++ {124, 5620, TX_PWR_DEFAULT},
++ {128, 5640, TX_PWR_DEFAULT},
++ {132, 5660, TX_PWR_DEFAULT},
++ {136, 5680, TX_PWR_DEFAULT},
++ {140, 5700, TX_PWR_DEFAULT},
++ {149, 5745, TX_PWR_DEFAULT},
++ {153, 5765, TX_PWR_DEFAULT},
++ {157, 5785, TX_PWR_DEFAULT},
++ {161, 5805, TX_PWR_DEFAULT},
++ {165, 5825, TX_PWR_DEFAULT},
++/* {240, 4920, TX_PWR_DEFAULT},
++ {244, 4940, TX_PWR_DEFAULT},
++ {248, 4960, TX_PWR_DEFAULT},
++ {252, 4980, TX_PWR_DEFAULT},
++channels for 11J JP 10M channel gap */
++};
++
++extern CHANNEL_FREQ_POWER *wlan_get_region_cfp_table(u8 region,
++ u8 band, int *cfp_no);
++
++/********************************************************
++ Local Functions
++********************************************************/
++/**
++ * @brief This function convert Region string to code integer
++ * @param region region string
++ * @return region id
++*/
++static u8
++wlan_region_2_code(s8 * region)
++{
++ u8 i;
++ u8 size = sizeof(region_code_mapping) / sizeof(region_code_mapping_t);
++
++ for (i = 0; i < COUNTRY_CODE_LEN && region[i]; i++)
++ region[i] = toupper(region[i]);
++
++ for (i = 0; i < size; i++) {
++ if (!memcmp(region, region_code_mapping[i].region, COUNTRY_CODE_LEN))
++ return (region_code_mapping[i].code);
++ }
++
++ /* default is US */
++ return (region_code_mapping[0].code);
++}
++
++/**
++ * @brief This function converts interger code to region string
++ * @param code region code
++ * @return region string
++*/
++static u8 *
++wlan_code_2_region(u8 code)
++{
++ u8 i;
++ u8 size = sizeof(region_code_mapping) / sizeof(region_code_mapping_t);
++ for (i = 0; i < size; i++) {
++ if (region_code_mapping[i].code == code)
++ return (region_code_mapping[i].region);
++ }
++ /* default is US */
++ return (region_code_mapping[0].region);
++}
++
++/**
++ * @brief This function finds the NoOfChan-th chan after the firstChan
++ * @param band band
++ * @param firstChan first channel number
++ * @param NoOfChan number of channels
++ * @return the NoOfChan-th chan number
++*/
++static BOOLEAN
++wlan_get_chan_11d(u8 band, u8 firstChan, u8 NoOfChan, u8 * chan)
++/*find the NoOfChan-th chan after the firstChan*/
++{
++ u8 i;
++ CHANNEL_FREQ_POWER *cfp;
++ u8 cfp_no;
++
++ ENTER();
++
++ {
++ cfp = channel_freq_power_UN_BG;
++ cfp_no = sizeof(channel_freq_power_UN_BG) /
++ sizeof(CHANNEL_FREQ_POWER);
++ }
++
++ for (i = 0; i < cfp_no; i++) {
++ if ((cfp + i)->Channel == firstChan) {
++ PRINTM(INFO, "firstChan found\n");
++ break;
++ }
++ }
++
++ if (i < cfp_no) {
++ /*if beyond the boundary */
++ if (i + NoOfChan < cfp_no) {
++ *chan = (cfp + i + NoOfChan)->Channel;
++ return TRUE;
++ }
++ }
++
++ LEAVE();
++ return FALSE;
++}
++
++/**
++ * @brief This function Checks if chan txpwr is learned from AP/IBSS
++ * @param chan chan number
++ * @param parsed_region_chan pointer to parsed_region_chan_11d_t
++ * @return TRUE; FALSE
++*/
++BOOLEAN
++wlan_channel_known_11d(u8 chan, parsed_region_chan_11d_t * parsed_region_chan)
++{
++ chan_power_11d_t *chanPwr = parsed_region_chan->chanPwr;
++ u8 NoOfChan = parsed_region_chan->NoOfChan;
++ u8 i = 0;
++
++ ENTER();
++ HEXDUMP("11D:parsed_region_chan:", (char *) chanPwr,
++ sizeof(chan_power_11d_t) * NoOfChan);
++
++ for (i = 0; i < NoOfChan; i++) {
++ if (chan == chanPwr[i].chan) {
++ PRINTM(INFO, "11D: Found Chan:%d\n", chan);
++ LEAVE();
++ return TRUE;
++ }
++ }
++
++ PRINTM(INFO, "11D: Not Find Chan:%d\n", chan);
++ LEAVE();
++ return FALSE;
++}
++
++/********************************************************
++ Global Functions
++********************************************************/
++
++/**
++ * @brief This function Converts chan to frequency
++ * @param chan channel number
++ * @param band band
++ * @return channel frequency
++*/
++u32
++chan_2_freq(u8 chan, u8 band)
++{
++ CHANNEL_FREQ_POWER *cf;
++ u16 cnt;
++ u16 i;
++ u32 freq = 0;
++
++ ENTER();
++
++ {
++ cf = channel_freq_power_UN_BG;
++ cnt = sizeof(channel_freq_power_UN_BG) / sizeof(CHANNEL_FREQ_POWER);
++ }
++
++ for (i = 0; i < cnt; i++) {
++ if (chan == cf[i].Channel)
++ freq = cf[i].Freq;
++ }
++
++ LEAVE();
++ return freq;
++}
++
++/**
++ * @brief This function generates domaininfo from parsed_region_chan
++ * @param parsed_region_chan pointer to parsed_region_chan_11d_t
++ * @param domaininfo pointer to wlan_802_11d_domain_reg_t
++ * @return WLAN_STATUS_SUCCESS
++*/
++int
++wlan_generate_domain_info_11d(parsed_region_chan_11d_t * parsed_region_chan,
++ wlan_802_11d_domain_reg_t * domaininfo)
++{
++ u8 NoOfSubband = 0;
++
++ u8 NoOfChan = parsed_region_chan->NoOfChan;
++ u8 NoOfParsedChan = 0;
++
++ u8 firstChan = 0, nextChan = 0, maxPwr = 0;
++
++ u8 i, flag = 0;
++
++ ENTER();
++
++ memcpy(domaininfo->CountryCode, parsed_region_chan->CountryCode,
++ COUNTRY_CODE_LEN);
++
++ PRINTM(INFO, "11D:NoOfChan=%d\n", NoOfChan);
++ HEXDUMP("11D:parsed_region_chan:", (char *) parsed_region_chan,
++ sizeof(parsed_region_chan_11d_t));
++
++ for (i = 0; i < NoOfChan; i++) {
++ if (!flag) {
++ flag = 1;
++ nextChan = firstChan = parsed_region_chan->chanPwr[i].chan;
++ maxPwr = parsed_region_chan->chanPwr[i].pwr;
++ NoOfParsedChan = 1;
++ continue;
++ }
++
++ if (parsed_region_chan->chanPwr[i].chan == nextChan + 1 &&
++ parsed_region_chan->chanPwr[i].pwr == maxPwr) {
++ nextChan++;
++ NoOfParsedChan++;
++ } else {
++ domaininfo->Subband[NoOfSubband].FirstChan = firstChan;
++ domaininfo->Subband[NoOfSubband].NoOfChan = NoOfParsedChan;
++ domaininfo->Subband[NoOfSubband].MaxTxPwr = maxPwr;
++ NoOfSubband++;
++ NoOfParsedChan = 1;
++ nextChan = firstChan = parsed_region_chan->chanPwr[i].chan;
++ maxPwr = parsed_region_chan->chanPwr[i].pwr;
++ }
++ }
++
++ if (flag) {
++ domaininfo->Subband[NoOfSubband].FirstChan = firstChan;
++ domaininfo->Subband[NoOfSubband].NoOfChan = NoOfParsedChan;
++ domaininfo->Subband[NoOfSubband].MaxTxPwr = maxPwr;
++ NoOfSubband++;
++ }
++ domaininfo->NoOfSubband = NoOfSubband;
++
++ PRINTM(INFO, "NoOfSubband=%x\n", domaininfo->NoOfSubband);
++ HEXDUMP("11D:domaininfo:", (char *) domaininfo,
++ COUNTRY_CODE_LEN + 1 +
++ sizeof(IEEEtypes_SubbandSet_t) * NoOfSubband);
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function generates parsed_region_chan from Domain Info learned from AP/IBSS
++ * @param region_chan pointer to REGION_CHANNEL
++ * @param *parsed_region_chan pointer to parsed_region_chan_11d_t
++ * @return N/A
++*/
++void
++wlan_generate_parsed_region_chan_11d(REGION_CHANNEL * region_chan,
++ parsed_region_chan_11d_t *
++ parsed_region_chan)
++{
++ u8 i;
++ CHANNEL_FREQ_POWER *cfp;
++
++ ENTER();
++
++ if (region_chan == NULL) {
++ PRINTM(INFO, "11D: region_chan is NULL\n");
++ return;
++ }
++
++ cfp = region_chan->CFP;
++ if (cfp == NULL) {
++ PRINTM(INFO, "11D: cfp equal NULL \n");
++ return;
++ }
++
++ parsed_region_chan->band = region_chan->Band;
++ parsed_region_chan->region = region_chan->Region;
++ memcpy(parsed_region_chan->CountryCode,
++ wlan_code_2_region(region_chan->Region), COUNTRY_CODE_LEN);
++
++ PRINTM(INFO, "11D: region[0x%x] band[%d]\n", parsed_region_chan->region,
++ parsed_region_chan->band);
++
++ for (i = 0; i < region_chan->NrCFP; i++, cfp++) {
++ parsed_region_chan->chanPwr[i].chan = cfp->Channel;
++ parsed_region_chan->chanPwr[i].pwr = cfp->MaxTxPower;
++ PRINTM(INFO, "11D: Chan[%d] Pwr[%d]\n",
++ parsed_region_chan->chanPwr[i].chan,
++ parsed_region_chan->chanPwr[i].pwr);
++ }
++ parsed_region_chan->NoOfChan = region_chan->NrCFP;
++
++ PRINTM(INFO, "11D: NoOfChan[%d]\n", parsed_region_chan->NoOfChan);
++
++ LEAVE();
++ return;
++}
++
++/**
++ * @brief generate parsed_region_chan from Domain Info learned from AP/IBSS
++ * @param region region ID
++ * @param band band
++ * @param chan chan
++ * @return TRUE;FALSE
++*/
++BOOLEAN
++wlan_region_chan_supported_11d(u8 region, u8 band, u8 chan)
++{
++ CHANNEL_FREQ_POWER *cfp;
++ int cfp_no;
++ u8 idx;
++
++ ENTER();
++
++ if ((cfp = wlan_get_region_cfp_table(region, band, &cfp_no)) == NULL) {
++ return FALSE;
++ }
++
++ for (idx = 0; idx < cfp_no; idx++) {
++ if (chan == (cfp + idx)->Channel) {
++ /* If Mrvl Chip Supported? */
++ if ((cfp + idx)->Unsupported) {
++ return FALSE;
++ } else {
++ return TRUE;
++ }
++ }
++ }
++
++ /*chan is not in the region table */
++ LEAVE();
++ return FALSE;
++}
++
++/**
++ * @brief This function checks if chan txpwr is learned from AP/IBSS
++ * @param chan chan number
++ * @param parsed_region_chan pointer to parsed_region_chan_11d_t
++ * @return WLAN_STATUS_SUCCESS
++*/
++int
++wlan_parse_domain_info_11d(IEEEtypes_CountryInfoFullSet_t * CountryInfo,
++ u8 band,
++ parsed_region_chan_11d_t * parsed_region_chan)
++{
++ u8 NoOfSubband, NoOfChan;
++ u8 lastChan, firstChan, curChan;
++ u8 region;
++
++ u8 idx = 0; /*chan index in parsed_region_chan */
++
++ u8 j, i;
++
++ ENTER();
++
++ /*Validation Rules:
++ 1. Valid Region Code
++ 2. First Chan increment
++ 3. Channel range no overlap
++ 4. Channel is valid?
++ 5. Channel is supported by Region?
++ 6. Others
++ */
++
++ HEXDUMP("CountryInfo:", (s8 *) CountryInfo, 30);
++
++ if ((*(CountryInfo->CountryCode)) == 0 ||
++ (CountryInfo->Len <= COUNTRY_CODE_LEN)) {
++ /* No region Info or Wrong region info: treat as No 11D info */
++ LEAVE();
++ return WLAN_STATUS_FAILURE;
++ }
++
++ /*Step1: check region_code */
++ parsed_region_chan->region = region =
++ wlan_region_2_code((s8 *) CountryInfo->CountryCode);
++
++ PRINTM(INFO, "regioncode=%x\n", (u8) parsed_region_chan->region);
++ HEXDUMP("CountryCode:", (char *) CountryInfo->CountryCode,
++ COUNTRY_CODE_LEN);
++
++ parsed_region_chan->band = band;
++
++ memcpy(parsed_region_chan->CountryCode, CountryInfo->CountryCode,
++ COUNTRY_CODE_LEN);
++
++ NoOfSubband = (CountryInfo->Len - COUNTRY_CODE_LEN) /
++ sizeof(IEEEtypes_SubbandSet_t);
++
++ for (j = 0, lastChan = 0; j < NoOfSubband; j++) {
++
++ if (CountryInfo->Subband[j].FirstChan <= lastChan) {
++ /*Step2&3. Check First Chan Num increment and no overlap */
++ PRINTM(INFO, "11D: Chan[%d>%d] Overlap\n",
++ CountryInfo->Subband[j].FirstChan, lastChan);
++ continue;
++ }
++
++ firstChan = CountryInfo->Subband[j].FirstChan;
++ NoOfChan = CountryInfo->Subband[j].NoOfChan;
++
++ for (i = 0; idx < MAX_NO_OF_CHAN && i < NoOfChan; i++) {
++ /*step4: channel is supported? */
++
++ if (wlan_get_chan_11d(band, firstChan, i, &curChan)
++ == FALSE) {
++ /* Chan is not found in UN table */
++ PRINTM(INFO, "chan is not supported: %d \n", i);
++ break;
++ }
++
++ lastChan = curChan;
++
++ /*step5: We don't need to Check if curChan is supported by mrvl in region */
++ parsed_region_chan->chanPwr[idx].chan = curChan;
++ parsed_region_chan->chanPwr[idx].pwr =
++ CountryInfo->Subband[j].MaxTxPwr;
++ idx++;
++ }
++
++ /*Step6: Add other checking if any */
++
++ }
++
++ parsed_region_chan->NoOfChan = idx;
++
++ PRINTM(INFO, "NoOfChan=%x\n", parsed_region_chan->NoOfChan);
++ HEXDUMP("11D:parsed_region_chan:", (s8 *) parsed_region_chan,
++ 2 + COUNTRY_CODE_LEN + sizeof(parsed_region_chan_11d_t) * idx);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function calculates the scan type for channels
++ * @param chan chan number
++ * @param parsed_region_chan pointer to parsed_region_chan_11d_t
++ * @return PASSIVE if chan is unknown; ACTIVE if chan is known
++*/
++u8
++wlan_get_scan_type_11d(u8 chan, parsed_region_chan_11d_t * parsed_region_chan)
++{
++ u8 scan_type = HostCmd_SCAN_TYPE_PASSIVE;
++
++ ENTER();
++
++ if (wlan_channel_known_11d(chan, parsed_region_chan)) {
++ PRINTM(INFO, "11D: Found and do Active Scan\n");
++ scan_type = HostCmd_SCAN_TYPE_ACTIVE;
++ } else {
++ PRINTM(INFO, "11D: Not Find and do Passive Scan\n");
++ }
++
++ LEAVE();
++ return scan_type;
++
++}
++
++/**
++ * @brief This function gets if 11D is enabled
++ * @param priv pointer to wlan_private
++ * @return ENABLE_11D;DISABLE_11D
++*/
++state_11d_t
++wlan_get_state_11d(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ wlan_802_11d_state_t *state = &Adapter->State11D;
++ return (state->Enable11D);
++}
++
++/**
++ * @brief initialize internal variable for 11D
++ * @param priv pointer to wlan_private
++ * @return N/A
++*/
++void
++wlan_init_11d(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ wlan_802_11d_state_t *state = &Adapter->State11D;
++
++ state->Enable11D = DISABLE_11D;
++
++ memset(&(priv->adapter->parsed_region_chan), 0,
++ sizeof(parsed_region_chan_11d_t));
++
++ return;
++}
++
++/**
++ * @brief This function enable/disable 11D
++ * @param priv pointer to wlan_private
++ * @param flag enable/disable flag
++ * @return WLAN_STATUS_SUCCESS; WLAN_STATUS_FAILURE
++*/
++int
++wlan_enable_11d(wlan_private * priv, state_11d_t flag)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ wlan_802_11d_state_t *state = &Adapter->State11D;
++ int ret;
++ state_11d_t enable = flag;
++
++ ENTER();
++
++ state->Enable11D = flag;
++
++ /* send cmd to FW to enable/disable 11D fucntion in FW */
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_SNMP_MIB,
++ HostCmd_ACT_SET,
++ HostCmd_OPTION_WAITFORRSP,
++ OID_802_11D_ENABLE, &enable);
++ if (ret) {
++ PRINTM(INFO, "11D: Fail to enable 11D \n");
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function sets DOMAIN INFO to FW
++ * @param priv pointer to wlan_private
++ * @return WLAN_STATUS_SUCCESS; WLAN_STATUS_FAILURE
++*/
++int
++wlan_set_domain_info_11d(wlan_private * priv)
++{
++ int ret;
++
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_802_11D_DOMAIN_INFO,
++ HostCmd_ACT_GEN_SET,
++ HostCmd_OPTION_WAITFORRSP, 0, NULL);
++ if (ret) {
++ PRINTM(INFO, "11D: Fail to dnld domain Info\n");
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function setups scan channels
++ * @param priv pointer to wlan_private
++ * @param band band
++ * @return WLAN_STATUS_SUCCESS
++*/
++int
++wlan_set_universaltable(wlan_private * priv, u8 band)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ u16 size = sizeof(CHANNEL_FREQ_POWER);
++ u16 i = 0;
++
++ ENTER();
++
++ memset(Adapter->universal_channel, 0, sizeof(Adapter->universal_channel));
++
++ {
++ Adapter->universal_channel[i].NrCFP =
++ sizeof(channel_freq_power_UN_BG) / size;
++ PRINTM(INFO, "11D: BG-band NrCFP=%d\n",
++ Adapter->universal_channel[i].NrCFP);
++
++ Adapter->universal_channel[i].CFP = channel_freq_power_UN_BG;
++ Adapter->universal_channel[i].Valid = TRUE;
++ Adapter->universal_channel[i].Region = UNIVERSAL_REGION_CODE;
++ Adapter->universal_channel[i].Band = band;
++ i++;
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function implements command CMD_802_11D_DOMAIN_INFO
++ * @param priv pointer to wlan_private
++ * @param cmd pointer to cmd buffer
++ * @param cmdno cmd ID
++ * @param CmdOption cmd action
++ * @return WLAN_STATUS_SUCCESS
++*/
++int
++wlan_cmd_802_11d_domain_info(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, u16 cmdno,
++ u16 CmdOption)
++{
++ HostCmd_DS_802_11D_DOMAIN_INFO *pDomainInfo = &cmd->params.domaininfo;
++ MrvlIEtypes_DomainParamSet_t *domain = &pDomainInfo->Domain;
++ wlan_adapter *Adapter = priv->adapter;
++ u8 NoOfSubband = Adapter->DomainReg.NoOfSubband;
++
++ ENTER();
++
++ PRINTM(INFO, "NoOfSubband=%x\n", NoOfSubband);
++
++ cmd->Command = wlan_cpu_to_le16(cmdno);
++ pDomainInfo->Action = wlan_cpu_to_le16(CmdOption);
++ if (CmdOption == HostCmd_ACT_GET) {
++ cmd->Size = wlan_cpu_to_le16(sizeof(pDomainInfo->Action) + S_DS_GEN);
++ HEXDUMP("11D: 802_11D_DOMAIN_INFO:", (u8 *) cmd, (int) (cmd->Size));
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++ }
++
++ domain->Header.Type = wlan_cpu_to_le16(TLV_TYPE_DOMAIN);
++ memcpy(domain->CountryCode, Adapter->DomainReg.CountryCode,
++ sizeof(domain->CountryCode));
++
++ domain->Header.Len =
++ wlan_cpu_to_le16(NoOfSubband * sizeof(IEEEtypes_SubbandSet_t) +
++ sizeof(domain->CountryCode));
++
++ if (NoOfSubband) {
++ memcpy(domain->Subband, Adapter->DomainReg.Subband,
++ NoOfSubband * sizeof(IEEEtypes_SubbandSet_t));
++
++ cmd->Size = wlan_cpu_to_le16(sizeof(pDomainInfo->Action) +
++ domain->Header.Len +
++ sizeof(MrvlIEtypesHeader_t) + S_DS_GEN);
++ } else {
++ cmd->Size = wlan_cpu_to_le16(sizeof(pDomainInfo->Action) + S_DS_GEN);
++ }
++
++ HEXDUMP("11D:802_11D_DOMAIN_INFO:", (u8 *) cmd, (int) (cmd->Size));
++
++ LEAVE();
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function implements private cmd: enable/disable 11D
++ * @param priv pointer to wlan_private
++ * @param wrq pointer to user data
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_cmd_enable_11d(wlan_private * priv, struct iwreq *wrq)
++{
++ int data = 0;
++ int *val;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ data = *((int *) (wrq->u.name + SUBCMD_OFFSET));
++
++ PRINTM(INFO, "Enable 11D: %s\n",
++ (data == CMD_ENABLED) ? "Enable" : "Disable");
++ switch (data) {
++ case CMD_ENABLED:
++ wlan_enable_11d(priv, ENABLE_11D);
++ break;
++ case CMD_DISABLED:
++ wlan_enable_11d(priv, DISABLE_11D);
++ break;
++ default:
++ break;
++ }
++
++ data =
++ (Adapter->State11D.Enable11D ==
++ ENABLE_11D) ? CMD_ENABLED : CMD_DISABLED;
++ val = (int *) wrq->u.name;
++ *val = data;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function parses countryinfo from AP and download country info to FW
++ * @param priv pointer to wlan_private
++ * @param resp pointer to command response buffer
++ * @return WLAN_STATUS_SUCCESS; WLAN_STATUS_FAILURE
++ */
++int
++wlan_ret_802_11d_domain_info(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ HostCmd_DS_802_11D_DOMAIN_INFO_RSP
++ * domaininfo = &resp->params.domaininforesp;
++ MrvlIEtypes_DomainParamSet_t * domain = &domaininfo->Domain;
++ u16 Action = wlan_le16_to_cpu(domaininfo->Action);
++ s16 ret = WLAN_STATUS_SUCCESS;
++ u8 NoOfSubband = 0;
++
++ ENTER();
++
++ HEXDUMP("11D DOMAIN Info Rsp Data:", (u8 *) resp, resp->Size);
++
++ NoOfSubband =
++ (wlan_le16_to_cpu(domain->Header.Len) -
++ 3) / sizeof(IEEEtypes_SubbandSet_t);
++ /* countrycode 3 bytes */
++
++ PRINTM(INFO, "11D Domain Info Resp: NoOfSubband=%d\n", NoOfSubband);
++
++ if (NoOfSubband > MRVDRV_MAX_SUBBAND_802_11D) {
++ PRINTM(INFO, "Invalid Numrer of Subband returned!!\n");
++ return WLAN_STATUS_FAILURE;
++ }
++
++ switch (Action) {
++ case HostCmd_ACT_SET: /*Proc Set Action */
++ break;
++
++ case HostCmd_ACT_GET:
++ break;
++ default:
++ PRINTM(INFO, "Invalid Action:%d\n", domaininfo->Action);
++ ret = WLAN_STATUS_FAILURE;
++ break;
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function parses countryinfo from AP and download country info to FW
++ * @param priv pointer to wlan_private
++ * @return WLAN_STATUS_SUCCESS; WLAN_STATUS_FAILURE
++ */
++int
++wlan_parse_dnld_countryinfo_11d(wlan_private * priv)
++{
++ int ret;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ /* Skip new 11d download when roaming */
++ return WLAN_STATUS_SUCCESS;
++ }
++
++ if (wlan_get_state_11d(priv) == ENABLE_11D) {
++
++ memset(&Adapter->parsed_region_chan, 0,
++ sizeof(parsed_region_chan_11d_t));
++
++ ret =
++ wlan_parse_domain_info_11d(&Adapter->pAttemptedBSSDesc->
++ CountryInfo, 0,
++ &Adapter->parsed_region_chan);
++
++ if (ret == WLAN_STATUS_FAILURE) {
++ PRINTM(INFO, "11D: No region info in the AP BssDesc..\n");
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++ }
++
++ memset(&Adapter->DomainReg, 0, sizeof(wlan_802_11d_domain_reg_t));
++ wlan_generate_domain_info_11d(&Adapter->parsed_region_chan,
++ &Adapter->DomainReg);
++
++ ret = wlan_set_domain_info_11d(priv);
++
++ if (ret) {
++ PRINTM(INFO, "11D: Err set domainInfo to FW\n");
++ LEAVE();
++ return ret;
++ }
++ }
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function generates 11D info from user specified regioncode and download to FW
++ * @param priv pointer to wlan_private
++ * @return WLAN_STATUS_SUCCESS; WLAN_STATUS_FAILURE
++ */
++int
++wlan_create_dnld_countryinfo_11d(wlan_private * priv, u8 band)
++{
++ int ret;
++ wlan_adapter *Adapter = priv->adapter;
++ REGION_CHANNEL *region_chan;
++ u8 j;
++
++ ENTER();
++ PRINTM(INFO, "11D:Band[%d]\n", band);
++
++ /* update parsed_region_chan_11; dnld domaininf to FW */
++
++ for (j = 0; j < sizeof(Adapter->region_channel) /
++ sizeof(Adapter->region_channel[0]); j++) {
++ region_chan = &Adapter->region_channel[j];
++
++ PRINTM(INFO, "11D:[%d] region_chan->Band[%d]\n", j,
++ region_chan->Band);
++
++ if (!region_chan || !region_chan->Valid || !region_chan->CFP)
++ continue;
++ if (region_chan->Band != band)
++ continue;
++ break;
++ }
++
++ if (j >= sizeof(Adapter->region_channel) /
++ sizeof(Adapter->region_channel[0])) {
++ PRINTM(INFO, "11D:region_chan not found. Band[%d]\n", band);
++ LEAVE();
++ return WLAN_STATUS_FAILURE;
++ }
++
++ memset(&Adapter->parsed_region_chan, 0, sizeof(parsed_region_chan_11d_t));
++ wlan_generate_parsed_region_chan_11d(region_chan,
++ &Adapter->parsed_region_chan);
++
++ memset(&Adapter->DomainReg, 0, sizeof(wlan_802_11d_domain_reg_t));
++ wlan_generate_domain_info_11d(&Adapter->parsed_region_chan,
++ &Adapter->DomainReg);
++
++ ret = wlan_set_domain_info_11d(priv);
++
++ if (ret) {
++ PRINTM(INFO, "11D: Err set domainInfo to FW\n");
++ LEAVE();
++ return ret;
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
+diff --git a/drivers/net/wireless/marvell8686/wlan_11d.h b/drivers/net/wireless/marvell8686/wlan_11d.h
+new file mode 100644
+index 0000000..208f64b
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_11d.h
+@@ -0,0 +1,110 @@
++/** @file wlan_11d.h
++ * @brief This header file contains data structures and
++ * function declarations of 802.11d
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2006
++ */
++/*************************************************************
++Change log:
++ 09/26/05: add Doxygen format comments
++ ************************************************************/
++
++#ifndef _WLAN_11D_
++#define _WLAN_11D_
++
++#define MAX_CHAN_NUM 255
++
++#define UNIVERSAL_REGION_CODE 0xff
++
++/** (Beaconsize(256)-5(IEId,len,contrystr(3))/3(FirstChan,NoOfChan,MaxPwr)
++ */
++#define MAX_NO_OF_CHAN 40
++
++typedef struct _REGION_CHANNEL *PREGION_CHANNEL;
++
++typedef enum
++{
++ DISABLE_11D = 0,
++ ENABLE_11D = 1,
++} state_11d_t;
++
++/** domain regulatory information */
++typedef struct _wlan_802_11d_domain_reg
++{
++ /** country Code*/
++ u8 CountryCode[COUNTRY_CODE_LEN];
++ /** No. of subband*/
++ u8 NoOfSubband;
++ IEEEtypes_SubbandSet_t Subband[MRVDRV_MAX_SUBBAND_802_11D];
++} wlan_802_11d_domain_reg_t;
++
++typedef struct _chan_power_11d
++{
++ u8 chan;
++ u8 pwr;
++} __ATTRIB_PACK__ chan_power_11d_t;
++
++typedef struct _parsed_region_chan_11d
++{
++ u8 band;
++ u8 region;
++ s8 CountryCode[COUNTRY_CODE_LEN];
++ chan_power_11d_t chanPwr[MAX_NO_OF_CHAN];
++ u8 NoOfChan;
++} __ATTRIB_PACK__ parsed_region_chan_11d_t;
++
++/** Data for state machine */
++typedef struct _wlan_802_11d_state
++{
++ /** True for Enabling 11D*/
++ BOOLEAN Enable11D;
++} wlan_802_11d_state_t;
++
++typedef struct _region_code_mapping
++{
++ s8 region[COUNTRY_CODE_LEN];
++ u8 code;
++} region_code_mapping_t;
++
++/* function prototypes*/
++int wlan_generate_domain_info_11d(parsed_region_chan_11d_t *
++ parsed_region_chan,
++ wlan_802_11d_domain_reg_t * domaininfo);
++
++int wlan_parse_domain_info_11d(IEEEtypes_CountryInfoFullSet_t * CountryInfo,
++ u8 band,
++ parsed_region_chan_11d_t * parsed_region_chan);
++
++u8 wlan_get_scan_type_11d(u8 chan,
++ parsed_region_chan_11d_t * parsed_region_chan);
++
++u32 chan_2_freq(u8 chan, u8 band);
++
++int wlan_set_domain_info_11d(wlan_private * priv);
++
++state_11d_t wlan_get_state_11d(wlan_private * priv);
++
++void wlan_init_11d(wlan_private * priv);
++
++int wlan_enable_11d(wlan_private * priv, state_11d_t flag);
++
++int wlan_set_universaltable(wlan_private * priv, u8 band);
++
++void wlan_generate_parsed_region_chan_11d(PREGION_CHANNEL region_chan,
++ parsed_region_chan_11d_t *
++ parsed_region_chan);
++
++int wlan_cmd_802_11d_domain_info(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, u16 cmdno,
++ u16 CmdOption);
++
++int wlan_cmd_enable_11d(wlan_private * priv, struct iwreq *wrq);
++
++int wlan_ret_802_11d_domain_info(wlan_private * priv,
++ HostCmd_DS_COMMAND * resp);
++
++int wlan_parse_dnld_countryinfo_11d(wlan_private * priv);
++
++int wlan_create_dnld_countryinfo_11d(wlan_private * priv, u8 band);
++
++#endif /* _WLAN_11D_ */
+diff --git a/drivers/net/wireless/marvell8686/wlan_cmd.c b/drivers/net/wireless/marvell8686/wlan_cmd.c
+new file mode 100644
+index 0000000..2d5bf55
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_cmd.c
+@@ -0,0 +1,2501 @@
++/** @file wlan_cmd.c
++ *
++ * @brief This file contains the handling of command.
++ * it prepares command and sends it to firmware when
++ * it is ready.
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2007
++ *
++ */
++/********************************************************
++Change log:
++ 10/04/05: Add Doxygen format comments
++ 01/05/06: Add kernel 2.6.x support
++ 01/11/06: Conditionalize new scan/join structures
++ 01/31/06: Add support to selectively enabe the FW Scan channel filter
++ 02/16/06: Clear scan in progress flag when scan command failed and dropped
++ 04/06/06: Add TSPEC, queue metrics, and MSDU expiry support
++ 04/18/06: Remove old Subscrive Event and add new Subscribe Event
++ implementation through generic hostcmd API
++ 05/04/06: Add IBSS coalescing related new hostcmd handling
++ 08/29/06: Add ledgpio private command
++********************************************************/
++
++#include "include.h"
++
++/********************************************************
++ Local Variables
++********************************************************/
++
++static u16 Commands_Allowed_In_PS[] = {
++ HostCmd_CMD_802_11_RSSI,
++ HostCmd_CMD_802_11_HOST_SLEEP_CFG,
++ HostCmd_CMD_802_11_WAKEUP_CONFIRM,
++};
++
++/********************************************************
++ Global Variables
++********************************************************/
++
++/********************************************************
++ Local Functions
++********************************************************/
++
++/**
++ * @brief This function checks if the commans is allowed
++ * in PS mode not.
++ *
++ * @param Command the command ID
++ * @return TRUE or FALSE
++ */
++static BOOLEAN
++Is_Command_Allowed_In_PS(u16 Command)
++{
++ int count = sizeof(Commands_Allowed_In_PS)
++ / sizeof(Commands_Allowed_In_PS[0]);
++ int i;
++
++ for (i = 0; i < count; i++) {
++ if (Command == wlan_cpu_to_le16(Commands_Allowed_In_PS[i]))
++ return TRUE;
++ }
++
++ return FALSE;
++}
++
++/**
++ * @brief This function prepares command of get_hw_spec.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_hw_spec(wlan_private * priv, HostCmd_DS_COMMAND * cmd)
++{
++ HostCmd_DS_GET_HW_SPEC *hwspec = &cmd->params.hwspec;
++
++ ENTER();
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_GET_HW_SPEC);
++ cmd->Size = wlan_cpu_to_le16(sizeof(HostCmd_DS_GET_HW_SPEC) + S_DS_GEN);
++ memcpy(hwspec->PermanentAddr, priv->adapter->CurrentAddr, ETH_ALEN);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function prepares command of ps_mode.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param cmd_action the action: GET or SET
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_802_11_ps_mode(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, u16 cmd_action)
++{
++ HostCmd_DS_802_11_PS_MODE *psm = &cmd->params.psmode;
++ u16 Action = cmd_action;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_PS_MODE);
++ cmd->Size =
++ wlan_cpu_to_le16(sizeof(HostCmd_DS_802_11_PS_MODE) + S_DS_GEN);
++ psm->Action = wlan_cpu_to_le16(cmd_action);
++ psm->MultipleDtim = 0;
++ switch (Action) {
++ case HostCmd_SubCmd_Enter_PS:
++ PRINTM(INFO, "PS Command:" "SubCode- Enter PS\n");
++ PRINTM(INFO, "LocalListenInterval = %d\n",
++ Adapter->LocalListenInterval);
++
++ psm->LocalListenInterval =
++ wlan_cpu_to_le16(Adapter->LocalListenInterval);
++ psm->NullPktInterval = wlan_cpu_to_le16(Adapter->NullPktInterval);
++ psm->MultipleDtim = wlan_cpu_to_le16(priv->adapter->MultipleDtim);
++ psm->BCNMissTimeOut = wlan_cpu_to_le16(priv->adapter->BCNMissTimeOut);
++ if (priv->adapter->InfrastructureMode == Wlan802_11IBSS)
++ psm->AdhocAwakePeriod =
++ wlan_cpu_to_le16(priv->adapter->AdhocAwakePeriod);
++ break;
++
++ case HostCmd_SubCmd_Exit_PS:
++ PRINTM(INFO, "PS Command:" "SubCode- Exit PS\n");
++ break;
++
++ case HostCmd_SubCmd_Sleep_Confirmed:
++ PRINTM(INFO, "PS Command: SubCode- sleep confirm\n");
++ break;
++
++ default:
++ break;
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function prepares command of fw_wakeup_method.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param cmd_action the action: GET or SET
++ * @param pdata_buf A pointer to data buffer
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_802_11_fw_wakeup_method(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd,
++ int cmd_action, void *pdata_buf)
++{
++ HostCmd_DS_802_11_FW_WAKEUP_METHOD *fwwm = &cmd->params.fwwakeupmethod;
++ u16 action = (u16) cmd_action;
++ u16 method = *((u16 *) pdata_buf);
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_FW_WAKE_METHOD);
++ cmd->Size =
++ wlan_cpu_to_le16(sizeof(HostCmd_DS_802_11_FW_WAKEUP_METHOD) +
++ S_DS_GEN);
++ fwwm->Action = wlan_cpu_to_le16(action);
++ switch (action) {
++ case HostCmd_ACT_SET:
++ fwwm->Method = wlan_cpu_to_le16(method);
++ break;
++ case HostCmd_ACT_GET:
++ default:
++ fwwm->Method = 0;
++ break;
++ }
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function sends the HS_Activated event to the application
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_host_sleep_activated_event(wlan_private * priv)
++{
++ ENTER();
++
++ priv->adapter->HS_Activated = TRUE;
++ os_carrier_off(priv);
++ os_stop_queue(priv);
++ wmm_stop_queue(priv);
++
++#if WIRELESS_EXT > 14
++ send_iwevcustom_event(priv, CUS_EVT_HS_ACTIVATED);
++#endif /* WIRELESS_EXT */
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function sends the HS_DeActivated event to the application
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_host_sleep_deactivated_event(wlan_private * priv)
++{
++ ENTER();
++
++ priv->adapter->HS_Activated = FALSE;
++
++#if WIRELESS_EXT > 14
++ send_iwevcustom_event(priv, CUS_EVT_HS_DEACTIVATED);
++#endif /* WIRELESS_EXT */
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function sends the HS_GPIO_INT event to the application
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++int
++wlan_host_sleep_gpio_int_event(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ if (Adapter->bHostSleepConfigured) {
++#if WIRELESS_EXT > 14
++ send_iwevcustom_event(priv, CUS_EVT_HS_GPIO_INT);
++#endif /* WIRELESS_EXT */
++ } else {
++ PRINTM(INFO, "hs_gpio_int: HS not configured !!!\n");
++ }
++
++ LEAVE();
++
++ return ret;
++}
++
++/**
++ * @brief This function prepares command of host_sleep_cfg.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param pdata_buf A pointer to HostCmd_DS_802_11_HOST_SLEEP_CFG structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_802_11_host_sleep_cfg(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd,
++ HostCmd_DS_802_11_HOST_SLEEP_CFG * pdata_buf)
++{
++ HostCmd_DS_802_11_HOST_SLEEP_CFG *phwuc = &cmd->params.hostsleepcfg;
++
++ ENTER();
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_HOST_SLEEP_CFG);
++ if ((pdata_buf->conditions != HOST_SLEEP_CFG_CANCEL)
++ && ((priv->adapter->ArpFilterSize > 0)
++ && (priv->adapter->ArpFilterSize <= ARP_FILTER_MAX_BUF_SIZE))) {
++ PRINTM(INFO, "Attach %d bytes ArpFilter to HSCfg cmd\n",
++ priv->adapter->ArpFilterSize);
++ memcpy(((u8 *) phwuc) + sizeof(HostCmd_DS_802_11_HOST_SLEEP_CFG),
++ priv->adapter->ArpFilter, priv->adapter->ArpFilterSize);
++ cmd->Size =
++ wlan_cpu_to_le16(priv->adapter->ArpFilterSize +
++ sizeof(HostCmd_DS_802_11_HOST_SLEEP_CFG) +
++ S_DS_GEN);
++ } else
++ cmd->Size =
++ wlan_cpu_to_le16(sizeof(HostCmd_DS_802_11_HOST_SLEEP_CFG) +
++ S_DS_GEN);
++ phwuc->conditions = wlan_cpu_to_le32(pdata_buf->conditions);
++ phwuc->gpio = pdata_buf->gpio;
++ phwuc->gap = pdata_buf->gap;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function prepares command of inactivity_timeout.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param cmd_action Action: GET SET
++ * @param pdata_buf A pointer to data buffer
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_802_11_inactivity_timeout(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd,
++ u16 cmd_action, void *pdata_buf)
++{
++ u16 *timeout = (u16 *) pdata_buf;
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_INACTIVITY_TIMEOUT);
++ cmd->Size =
++ wlan_cpu_to_le16(sizeof(HostCmd_DS_802_11_INACTIVITY_TIMEOUT) +
++ S_DS_GEN);
++
++ cmd->params.inactivity_timeout.Action = wlan_cpu_to_le16(cmd_action);
++
++ if (cmd_action)
++ cmd->params.inactivity_timeout.Timeout = wlan_cpu_to_le16(*timeout);
++ else
++ cmd->params.inactivity_timeout.Timeout = 0;
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function prepares command of sleep_period.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param cmd_action the action: GET or SET
++ * @param pdata_buf A pointer to data buffer
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_802_11_sleep_period(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd,
++ u16 cmd_action, void *pdata_buf)
++{
++ HostCmd_DS_802_11_SLEEP_PERIOD *pSleepPeriod = &cmd->params.ps_sleeppd;
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_SLEEP_PERIOD);
++ cmd->Size = wlan_cpu_to_le16(sizeof(HostCmd_DS_802_11_SLEEP_PERIOD) +
++ S_DS_GEN);
++ memmove(pSleepPeriod, pdata_buf, sizeof(HostCmd_DS_802_11_SLEEP_PERIOD));
++ pSleepPeriod->Action = wlan_cpu_to_le16(pSleepPeriod->Action);
++ pSleepPeriod->Period = wlan_cpu_to_le16(pSleepPeriod->Period);
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function prepares command of sleep_params.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param cmd_action the action: GET or SET
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_802_11_sleep_params(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, u16 cmd_action)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ HostCmd_DS_802_11_SLEEP_PARAMS *sp = &cmd->params.sleep_params;
++
++ ENTER();
++
++ cmd->Size = wlan_cpu_to_le16((sizeof(HostCmd_DS_802_11_SLEEP_PARAMS)) +
++ S_DS_GEN);
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_SLEEP_PARAMS);
++
++ if (cmd_action == HostCmd_ACT_GEN_GET) {
++ memset(&Adapter->sp, 0, sizeof(SleepParams));
++ memset(sp, 0, sizeof(HostCmd_DS_802_11_SLEEP_PARAMS));
++ sp->Action = wlan_cpu_to_le16(cmd_action);
++ } else if (cmd_action == HostCmd_ACT_GEN_SET) {
++ sp->Action = wlan_cpu_to_le16(cmd_action);
++ sp->Error = wlan_cpu_to_le16(Adapter->sp.sp_error);
++ sp->Offset = wlan_cpu_to_le16(Adapter->sp.sp_offset);
++ sp->StableTime = wlan_cpu_to_le16(Adapter->sp.sp_stabletime);
++ sp->CalControl = (u8) Adapter->sp.sp_calcontrol;
++ sp->ExternalSleepClk = (u8) Adapter->sp.sp_extsleepclk;
++ sp->Reserved = wlan_cpu_to_le16(Adapter->sp.sp_reserved);
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++#define WEP_40_BIT_LEN 5
++#define WEP_104_BIT_LEN 13
++
++/**
++ * @brief This function prepares command of set_wep.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param cmd_oid OID: ADD_WEP KEY or REMOVE_WEP KEY
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_802_11_set_wep(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, u32 cmd_oid)
++{
++ HostCmd_DS_802_11_SET_WEP *wep = &cmd->params.wep;
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ if (cmd_oid == OID_802_11_ADD_WEP) {
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_SET_WEP);
++ cmd->Size =
++ wlan_cpu_to_le16((sizeof(HostCmd_DS_802_11_SET_WEP)) + S_DS_GEN);
++ wep->Action = wlan_cpu_to_le16(HostCmd_ACT_ADD);
++
++ /* default tx key index */
++ wep->KeyIndex = wlan_cpu_to_le16(Adapter->CurrentWepKeyIndex &
++ HostCmd_WEP_KEY_INDEX_MASK);
++
++ PRINTM(INFO, "Tx Key Index: %u\n", wep->KeyIndex);
++
++ switch (Adapter->WepKey[0].KeyLength) {
++ case WEP_40_BIT_LEN:
++ wep->WEPTypeForKey1 = HostCmd_TYPE_WEP_40_BIT;
++ memmove(wep->WEP1, Adapter->WepKey[0].KeyMaterial,
++ Adapter->WepKey[0].KeyLength);
++ break;
++ case WEP_104_BIT_LEN:
++ wep->WEPTypeForKey1 = HostCmd_TYPE_WEP_104_BIT;
++ memmove(wep->WEP1, Adapter->WepKey[0].KeyMaterial,
++ Adapter->WepKey[0].KeyLength);
++ break;
++ case 0:
++ break;
++ default:
++ PRINTM(INFO, "Key1 Length = %d is incorrect\n",
++ Adapter->WepKey[0].KeyLength);
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ switch (Adapter->WepKey[1].KeyLength) {
++ case WEP_40_BIT_LEN:
++ wep->WEPTypeForKey2 = HostCmd_TYPE_WEP_40_BIT;
++ memmove(wep->WEP2, Adapter->WepKey[1].KeyMaterial,
++ Adapter->WepKey[1].KeyLength);
++ break;
++ case WEP_104_BIT_LEN:
++ wep->WEPTypeForKey2 = HostCmd_TYPE_WEP_104_BIT;
++ memmove(wep->WEP2, Adapter->WepKey[1].KeyMaterial,
++ Adapter->WepKey[1].KeyLength);
++ break;
++ case 0:
++ break;
++ default:
++ PRINTM(INFO, "Key2 Length = %d is incorrect\n",
++ Adapter->WepKey[1].KeyLength);
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ switch (Adapter->WepKey[2].KeyLength) {
++ case WEP_40_BIT_LEN:
++ wep->WEPTypeForKey3 = HostCmd_TYPE_WEP_40_BIT;
++ memmove(wep->WEP3, Adapter->WepKey[2].KeyMaterial,
++ Adapter->WepKey[2].KeyLength);
++ break;
++ case WEP_104_BIT_LEN:
++ wep->WEPTypeForKey3 = HostCmd_TYPE_WEP_104_BIT;
++ memmove(wep->WEP3, Adapter->WepKey[2].KeyMaterial,
++ Adapter->WepKey[2].KeyLength);
++ break;
++ case 0:
++ break;
++ default:
++ PRINTM(INFO, "Key3 Length = %d is incorrect\n",
++ Adapter->WepKey[2].KeyLength);
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ switch (Adapter->WepKey[3].KeyLength) {
++ case WEP_40_BIT_LEN:
++ wep->WEPTypeForKey4 = HostCmd_TYPE_WEP_40_BIT;
++ memmove(wep->WEP4, Adapter->WepKey[3].KeyMaterial,
++ Adapter->WepKey[3].KeyLength);
++ break;
++ case WEP_104_BIT_LEN:
++ wep->WEPTypeForKey4 = HostCmd_TYPE_WEP_104_BIT;
++ memmove(wep->WEP4, Adapter->WepKey[3].KeyMaterial,
++ Adapter->WepKey[3].KeyLength);
++ break;
++ case 0:
++ break;
++ default:
++ PRINTM(INFO, "Key4 Length = %d is incorrect\n",
++ Adapter->WepKey[3].KeyLength);
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++ } else if (cmd_oid == OID_802_11_REMOVE_WEP) {
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_SET_WEP);
++ cmd->Size =
++ wlan_cpu_to_le16((sizeof(HostCmd_DS_802_11_SET_WEP)) + S_DS_GEN);
++ wep->Action = wlan_cpu_to_le16(HostCmd_ACT_REMOVE);
++
++ /* default tx key index */
++ wep->KeyIndex = wlan_cpu_to_le16((u16) (Adapter->CurrentWepKeyIndex &
++ (u32)
++ HostCmd_WEP_KEY_INDEX_MASK));
++ }
++
++ ret = WLAN_STATUS_SUCCESS;
++ done:
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function prepares command of key_material.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param cmd_action the action: GET or SET
++ * @param cmd_oid OID: ENABLE or DISABLE
++ * @param pdata_buf A pointer to data buffer
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_802_11_key_material(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd,
++ u16 cmd_action,
++ WLAN_OID cmd_oid, void *pdata_buf)
++{
++ HostCmd_DS_802_11_KEY_MATERIAL *pKeyMaterial = &cmd->params.keymaterial;
++ WLAN_802_11_KEY *pKey = (WLAN_802_11_KEY *) pdata_buf;
++ u16 KeyParamSet_len;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_KEY_MATERIAL);
++ pKeyMaterial->Action = wlan_cpu_to_le16(cmd_action);
++
++ if (cmd_action == HostCmd_ACT_GET) {
++ cmd->Size = wlan_cpu_to_le16(2 + S_DS_GEN);
++ ret = WLAN_STATUS_SUCCESS;
++ goto done;
++ }
++
++ memset(&pKeyMaterial->KeyParamSet, 0, sizeof(MrvlIEtype_KeyParamSet_t));
++
++ if (pKey->KeyLength == WPA_AES_KEY_LEN) {
++ PRINTM(INFO, "WPA_AES\n");
++ pKeyMaterial->KeyParamSet.KeyTypeId =
++ wlan_cpu_to_le16(KEY_TYPE_ID_AES);
++
++ if (cmd_oid == (WLAN_OID) KEY_INFO_ENABLED)
++ pKeyMaterial->KeyParamSet.KeyInfo =
++ wlan_cpu_to_le16(KEY_INFO_AES_ENABLED);
++ else
++ pKeyMaterial->KeyParamSet.KeyInfo =
++ !(wlan_cpu_to_le16(KEY_INFO_AES_ENABLED));
++
++ if (pKey->KeyIndex & 0x40000000) //AES pairwise key: unicast
++ pKeyMaterial->KeyParamSet.KeyInfo |=
++ wlan_cpu_to_le16(KEY_INFO_AES_UNICAST);
++ else //AES group key: multicast
++ pKeyMaterial->KeyParamSet.KeyInfo |=
++ wlan_cpu_to_le16(KEY_INFO_AES_MCAST);
++ } else if (pKey->KeyLength == WPA_TKIP_KEY_LEN) {
++ PRINTM(INFO, "WPA_TKIP\n");
++ pKeyMaterial->KeyParamSet.KeyTypeId =
++ wlan_cpu_to_le16(KEY_TYPE_ID_TKIP);
++ pKeyMaterial->KeyParamSet.KeyInfo =
++ wlan_cpu_to_le16(KEY_INFO_TKIP_ENABLED);
++
++ if (pKey->KeyIndex & 0x40000000) //TKIP pairwise key: unicast
++ pKeyMaterial->KeyParamSet.KeyInfo |=
++ wlan_cpu_to_le16(KEY_INFO_TKIP_UNICAST);
++ else //TKIP group key: multicast
++ pKeyMaterial->KeyParamSet.KeyInfo |=
++ wlan_cpu_to_le16(KEY_INFO_TKIP_MCAST);
++ }
++
++ if (pKeyMaterial->KeyParamSet.KeyTypeId) {
++ pKeyMaterial->KeyParamSet.Type =
++ wlan_cpu_to_le16(TLV_TYPE_KEY_MATERIAL);
++ pKeyMaterial->KeyParamSet.KeyLen = wlan_cpu_to_le16(pKey->KeyLength);
++ memcpy(pKeyMaterial->KeyParamSet.Key,
++ pKey->KeyMaterial, pKey->KeyLength);
++ pKeyMaterial->KeyParamSet.Length =
++ wlan_cpu_to_le16(pKey->KeyLength + 6);
++
++#define TYPE_LEN_FIELDS_LEN 4
++ KeyParamSet_len = (pKey->KeyLength + 6) + TYPE_LEN_FIELDS_LEN;
++#define ACTION_FIELD_LEN 2
++ cmd->Size =
++ wlan_cpu_to_le16(KeyParamSet_len + ACTION_FIELD_LEN + S_DS_GEN);
++ }
++
++ ret = WLAN_STATUS_SUCCESS;
++ done:
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function prepares command of get_log.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_802_11_get_log(wlan_private * priv, HostCmd_DS_COMMAND * cmd)
++{
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_GET_LOG);
++ cmd->Size =
++ wlan_cpu_to_le16(sizeof(HostCmd_DS_802_11_GET_LOG) + S_DS_GEN);
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function prepares command of snmp_mib.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param cmd_action the action: GET or SET
++ * @param cmd_oid the OID of SNMP MIB
++ * @param pdata_buf the pointer to data buffer
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_802_11_snmp_mib(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd,
++ int cmd_action, int cmd_oid, void *pdata_buf)
++{
++ HostCmd_DS_802_11_SNMP_MIB *pSNMPMIB = &cmd->params.smib;
++ wlan_adapter *Adapter = priv->adapter;
++ u8 ucTemp;
++
++ ENTER();
++
++ PRINTM(INFO, "SNMP_CMD: cmd_oid = 0x%x\n", cmd_oid);
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_SNMP_MIB);
++ cmd->Size =
++ wlan_cpu_to_le16(sizeof(HostCmd_DS_802_11_SNMP_MIB) + S_DS_GEN);
++
++ switch (cmd_oid) {
++ case OID_802_11_INFRASTRUCTURE_MODE:
++ pSNMPMIB->QueryType = wlan_cpu_to_le16(HostCmd_ACT_GEN_SET);
++ pSNMPMIB->OID = wlan_cpu_to_le16((u16) DesiredBssType_i);
++ pSNMPMIB->BufSize = wlan_cpu_to_le16(sizeof(u8));
++ if (Adapter->InfrastructureMode == Wlan802_11Infrastructure)
++ ucTemp = SNMP_MIB_VALUE_INFRA;
++ else
++ ucTemp = SNMP_MIB_VALUE_ADHOC;
++
++ memmove(pSNMPMIB->Value, &ucTemp, sizeof(u8));
++
++ break;
++
++ case OID_802_11D_ENABLE:
++ {
++ u32 ulTemp;
++
++ pSNMPMIB->OID = wlan_cpu_to_le16((u16) Dot11D_i);
++
++ if (cmd_action == HostCmd_ACT_SET) {
++ pSNMPMIB->QueryType = wlan_cpu_to_le16(HostCmd_ACT_GEN_SET);
++ pSNMPMIB->BufSize = wlan_cpu_to_le16(sizeof(u16));
++ ulTemp = *(u32 *) pdata_buf;
++ *((PUSHORT) (pSNMPMIB->Value)) =
++ wlan_cpu_to_le16((u16) ulTemp);
++ }
++ break;
++ }
++
++ case OID_802_11_FRAGMENTATION_THRESHOLD:
++ {
++ WLAN_802_11_FRAGMENTATION_THRESHOLD ulTemp;
++
++ pSNMPMIB->OID = wlan_cpu_to_le16((u16) FragThresh_i);
++
++ if (cmd_action == HostCmd_ACT_GET) {
++ pSNMPMIB->QueryType = wlan_cpu_to_le16(HostCmd_ACT_GEN_GET);
++ } else if (cmd_action == HostCmd_ACT_SET) {
++ pSNMPMIB->QueryType = wlan_cpu_to_le16(HostCmd_ACT_GEN_SET);
++ pSNMPMIB->BufSize = wlan_cpu_to_le16(sizeof(u16));
++ ulTemp = *((WLAN_802_11_FRAGMENTATION_THRESHOLD *)
++ pdata_buf);
++ *((PUSHORT) (pSNMPMIB->Value)) =
++ wlan_cpu_to_le16((u16) ulTemp);
++
++ }
++
++ break;
++ }
++
++ case OID_802_11_RTS_THRESHOLD:
++ {
++
++ WLAN_802_11_RTS_THRESHOLD ulTemp;
++ pSNMPMIB->OID = wlan_cpu_to_le16((u16) RtsThresh_i);
++
++ if (cmd_action == HostCmd_ACT_GET) {
++ pSNMPMIB->QueryType = wlan_cpu_to_le16(HostCmd_ACT_GEN_GET);
++ } else if (cmd_action == HostCmd_ACT_SET) {
++ pSNMPMIB->QueryType = wlan_cpu_to_le16(HostCmd_ACT_GEN_SET);
++ pSNMPMIB->BufSize = wlan_cpu_to_le16(sizeof(u16));
++ ulTemp = *((WLAN_802_11_RTS_THRESHOLD *)
++ pdata_buf);
++ *(PUSHORT) (pSNMPMIB->Value) = wlan_cpu_to_le16((u16) ulTemp);
++ }
++ break;
++ }
++ case OID_802_11_TX_RETRYCOUNT:
++ pSNMPMIB->OID = wlan_cpu_to_le16((u16) ShortRetryLim_i);
++
++ if (cmd_action == HostCmd_ACT_GET) {
++ pSNMPMIB->QueryType = wlan_cpu_to_le16(HostCmd_ACT_GEN_GET);
++ } else if (cmd_action == HostCmd_ACT_SET) {
++ pSNMPMIB->QueryType = wlan_cpu_to_le16(HostCmd_ACT_GEN_SET);
++ pSNMPMIB->BufSize = wlan_cpu_to_le16(sizeof(u16));
++ *((PUSHORT) (pSNMPMIB->Value)) =
++ wlan_cpu_to_le16((u16) Adapter->TxRetryCount);
++ }
++ break;
++
++ case OID_802_11_DTIM:
++ pSNMPMIB->OID = wlan_cpu_to_le16((u16) DtimPeriod_i);
++
++ if (cmd_action == HostCmd_ACT_GET) {
++ pSNMPMIB->QueryType = wlan_cpu_to_le16(HostCmd_ACT_GEN_GET);
++ }
++ break;
++
++ default:
++ break;
++ }
++
++ PRINTM(INFO,
++ "SNMP_CMD: Command=0x%x, Size=0x%x, SeqNum=0x%x, Result=0x%x\n",
++ cmd->Command, cmd->Size, cmd->SeqNum, cmd->Result);
++
++ PRINTM(INFO,
++ "SNMP_CMD: Action=0x%x, OID=0x%x, OIDSize=0x%x, Value=0x%x\n",
++ pSNMPMIB->QueryType, pSNMPMIB->OID, pSNMPMIB->BufSize,
++ *(u16 *) pSNMPMIB->Value);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function prepares command of radio_control.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param cmd_action the action: GET or SET
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_802_11_radio_control(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, int cmd_action)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ HostCmd_DS_802_11_RADIO_CONTROL *pRadioControl = &cmd->params.radio;
++
++ ENTER();
++
++ cmd->Size = wlan_cpu_to_le16((sizeof(HostCmd_DS_802_11_RADIO_CONTROL))
++ + S_DS_GEN);
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_RADIO_CONTROL);
++
++ pRadioControl->Action = wlan_cpu_to_le16(cmd_action);
++ pRadioControl->Control = wlan_cpu_to_le16(Adapter->RadioOn);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function prepares command of bca_timeshare.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param cmd_action the action: GET or SET
++ * @param user_bca_ts A pointer to HostCmd_DS_802_11_BCA_TIMESHARE structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_802_11_bca_timeshare(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd,
++ u16 cmd_action,
++ HostCmd_DS_802_11_BCA_TIMESHARE * user_bca_ts)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ HostCmd_DS_802_11_BCA_TIMESHARE *bca_ts = &cmd->params.bca_timeshare;
++
++ ENTER();
++
++ cmd->Size = wlan_cpu_to_le16((sizeof(HostCmd_DS_802_11_BCA_TIMESHARE)) +
++ S_DS_GEN);
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_BCA_CONFIG_TIMESHARE);
++
++ if (cmd_action == HostCmd_ACT_GEN_GET) {
++ memset(&Adapter->bca_ts, 0, sizeof(bca_ts));
++ memset(bca_ts, 0, sizeof(HostCmd_DS_802_11_BCA_TIMESHARE));
++ bca_ts->Action = wlan_cpu_to_le16(cmd_action);
++ bca_ts->TrafficType = wlan_cpu_to_le16(user_bca_ts->TrafficType);
++ } else if (cmd_action == HostCmd_ACT_GEN_SET) {
++ bca_ts->Action = wlan_cpu_to_le16(cmd_action);
++ bca_ts->TrafficType = wlan_cpu_to_le16(user_bca_ts->TrafficType);
++ bca_ts->TimeShareInterval =
++ wlan_cpu_to_le32(user_bca_ts->TimeShareInterval);
++ bca_ts->BTTime = wlan_cpu_to_le32(user_bca_ts->BTTime);
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function prepares command of rf_tx_power.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param cmd_action the action: GET or SET
++ * @param pdata_buf A pointer to data buffer
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_802_11_rf_tx_power(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd,
++ u16 cmd_action, void *pdata_buf)
++{
++
++ HostCmd_DS_802_11_RF_TX_POWER *pRTP = &cmd->params.txp;
++
++ ENTER();
++
++ cmd->Size =
++ wlan_cpu_to_le16((sizeof(HostCmd_DS_802_11_RF_TX_POWER)) + S_DS_GEN);
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_RF_TX_POWER);
++ pRTP->Action = cmd_action;
++
++ PRINTM(INFO, "RF_TX_POWER_CMD: Size:%d Cmd:0x%x Act:%d\n", cmd->Size,
++ cmd->Command, pRTP->Action);
++
++ switch (cmd_action) {
++ case HostCmd_ACT_GEN_GET:
++ pRTP->Action = wlan_cpu_to_le16(HostCmd_ACT_GEN_GET);
++ pRTP->CurrentLevel = 0;
++ break;
++
++ case HostCmd_ACT_GEN_SET:
++ pRTP->Action = wlan_cpu_to_le16(HostCmd_ACT_GEN_SET);
++ pRTP->CurrentLevel = wlan_cpu_to_le16(*((u16 *) pdata_buf));
++ break;
++ }
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function prepares command of rf_antenna.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param cmd_action the action: GET or SET
++ * @param pdata_buf A pointer to data buffer
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_802_11_rf_antenna(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd,
++ u16 cmd_action, void *pdata_buf)
++{
++ HostCmd_DS_802_11_RF_ANTENNA *rant = &cmd->params.rant;
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_RF_ANTENNA);
++ cmd->Size =
++ wlan_cpu_to_le16(sizeof(HostCmd_DS_802_11_RF_ANTENNA) + S_DS_GEN);
++
++ rant->Action = wlan_cpu_to_le16(cmd_action);
++ if ((cmd_action == HostCmd_ACT_SET_RX) ||
++ (cmd_action == HostCmd_ACT_SET_TX)) {
++ rant->AntennaMode =
++ wlan_cpu_to_le16((u16) (*(WLAN_802_11_ANTENNA *) pdata_buf));
++ }
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function prepares command of rate_adapt_rateset.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param cmd_action the action: GET or SET
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_802_11_rate_adapt_rateset(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, u16 cmd_action)
++{
++ HostCmd_DS_802_11_RATE_ADAPT_RATESET * rateadapt = &cmd->params.rateset;
++ wlan_adapter *Adapter = priv->adapter;
++
++ cmd->Size =
++ wlan_cpu_to_le16(sizeof(HostCmd_DS_802_11_RATE_ADAPT_RATESET) +
++ S_DS_GEN);
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_RATE_ADAPT_RATESET);
++
++ ENTER();
++
++ rateadapt->Action = wlan_cpu_to_le16(cmd_action);
++ rateadapt->HWRateDropMode = wlan_cpu_to_le16(Adapter->HWRateDropMode);
++ rateadapt->Threshold = wlan_cpu_to_le16(Adapter->Threshold);
++ rateadapt->FinalRate = wlan_cpu_to_le16(Adapter->FinalRate);
++ rateadapt->Bitmap = wlan_cpu_to_le16(Adapter->RateBitmap);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function prepares command of mac_multicast_adr.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param cmd_action the action: GET or SET
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_mac_multicast_adr(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, u16 cmd_action)
++{
++ HostCmd_DS_MAC_MULTICAST_ADR *pMCastAdr = &cmd->params.madr;
++ wlan_adapter *Adapter = priv->adapter;
++
++ cmd->Size =
++ wlan_cpu_to_le16(sizeof(HostCmd_DS_MAC_MULTICAST_ADR) + S_DS_GEN);
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_MAC_MULTICAST_ADR);
++
++ pMCastAdr->Action = wlan_cpu_to_le16(cmd_action);
++ pMCastAdr->NumOfAdrs =
++ wlan_cpu_to_le16((u16) Adapter->NumOfMulticastMACAddr);
++ memcpy(pMCastAdr->MACList, Adapter->MulticastList,
++ Adapter->NumOfMulticastMACAddr * ETH_ALEN);
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function prepares command of rf_channel.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param cmd_action the action: GET or SET
++ * @param pdata_buf A pointer to data buffer
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_802_11_rf_channel(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd,
++ int option, void *pdata_buf)
++{
++ HostCmd_DS_802_11_RF_CHANNEL *rfchan = &cmd->params.rfchannel;
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_RF_CHANNEL);
++ cmd->Size = wlan_cpu_to_le16(sizeof(HostCmd_DS_802_11_RF_CHANNEL)
++ + S_DS_GEN);
++
++ if (option == HostCmd_OPT_802_11_RF_CHANNEL_SET) {
++ rfchan->CurrentChannel = wlan_cpu_to_le16(*((u16 *) pdata_buf));
++ }
++
++ rfchan->Action = wlan_cpu_to_le16(option);
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function prepares command of rssi.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_802_11_rssi(wlan_private * priv, HostCmd_DS_COMMAND * cmd)
++{
++ wlan_adapter *Adapter = priv->adapter;
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_RSSI);
++ cmd->Size = wlan_cpu_to_le16(sizeof(HostCmd_DS_802_11_RSSI) + S_DS_GEN);
++ cmd->params.rssi.N = wlan_cpu_to_le16(Adapter->bcn_avg_factor);
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function prepares command of reg_access.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param cmd_action the action: GET or SET
++ * @param pdata_buf A pointer to data buffer
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_reg_access(wlan_private * priv,
++ HostCmd_DS_COMMAND * CmdPtr,
++ u8 cmd_action, void *pdata_buf)
++{
++ wlan_offset_value *offval;
++
++ ENTER();
++
++ offval = (wlan_offset_value *) pdata_buf;
++
++ switch (CmdPtr->Command) {
++ case HostCmd_CMD_MAC_REG_ACCESS:
++ {
++ HostCmd_DS_MAC_REG_ACCESS *macreg;
++
++ CmdPtr->Size =
++ wlan_cpu_to_le16(sizeof(HostCmd_DS_MAC_REG_ACCESS) +
++ S_DS_GEN);
++ macreg = (HostCmd_DS_MAC_REG_ACCESS *) & CmdPtr->params.macreg;
++
++ macreg->Action = wlan_cpu_to_le16(cmd_action);
++ macreg->Offset = wlan_cpu_to_le16((u16) offval->offset);
++ macreg->Value = wlan_cpu_to_le32(offval->value);
++
++ break;
++ }
++
++ case HostCmd_CMD_BBP_REG_ACCESS:
++ {
++ HostCmd_DS_BBP_REG_ACCESS *bbpreg;
++
++ CmdPtr->Size =
++ wlan_cpu_to_le16(sizeof(HostCmd_DS_BBP_REG_ACCESS) +
++ S_DS_GEN);
++ bbpreg = (HostCmd_DS_BBP_REG_ACCESS *) & CmdPtr->params.bbpreg;
++
++ bbpreg->Action = wlan_cpu_to_le16(cmd_action);
++ bbpreg->Offset = wlan_cpu_to_le16((u16) offval->offset);
++ bbpreg->Value = (u8) offval->value;
++
++ break;
++ }
++
++ case HostCmd_CMD_RF_REG_ACCESS:
++ {
++ HostCmd_DS_RF_REG_ACCESS *rfreg;
++
++ CmdPtr->Size =
++ wlan_cpu_to_le16(sizeof(HostCmd_DS_RF_REG_ACCESS) + S_DS_GEN);
++ rfreg = (HostCmd_DS_RF_REG_ACCESS *) & CmdPtr->params.rfreg;
++
++ rfreg->Action = wlan_cpu_to_le16(cmd_action);
++ rfreg->Offset = wlan_cpu_to_le16((u16) offval->offset);
++ rfreg->Value = (u8) offval->value;
++
++ break;
++ }
++
++ default:
++ break;
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function prepares command of mac_address.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param cmd_action the action: GET or SET
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_802_11_mac_address(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, u16 cmd_action)
++{
++ wlan_adapter *Adapter = priv->adapter;
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_MAC_ADDRESS);
++ cmd->Size = wlan_cpu_to_le16(sizeof(HostCmd_DS_802_11_MAC_ADDRESS) +
++ S_DS_GEN);
++ cmd->Result = 0;
++
++ cmd->params.macadd.Action = wlan_cpu_to_le16(cmd_action);
++
++ if (cmd_action == HostCmd_ACT_SET) {
++ memcpy(cmd->params.macadd.MacAdd, Adapter->CurrentAddr, ETH_ALEN);
++ HEXDUMP("SET_CMD: MAC ADDRESS-", Adapter->CurrentAddr, 6);
++ }
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function prepares command of cal_data_ext.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param pdata_buf A pointer to data buffer
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_802_11_cal_data_ext(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, void *pdata_buf)
++{
++ HostCmd_DS_802_11_CAL_DATA_EXT *PCalDataext = pdata_buf;
++
++ HostCmd_DS_802_11_CAL_DATA_EXT *pCmdCalData =
++ (HostCmd_DS_802_11_CAL_DATA_EXT *) & cmd->params.caldataext;
++
++ ENTER();
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_CAL_DATA_EXT);
++
++ PRINTM(INFO, "CalDataLen = %d(d)\n", PCalDataext->CalDataLen);
++
++ if (PCalDataext->CalDataLen >
++ MAX_SETGET_CONF_CMD_LEN - CAL_DATA_HEADER_LEN) {
++ PRINTM(MSG, "CAL_DATA_EXT: Cal data lenght too large!\n");
++ return WLAN_STATUS_FAILURE;
++ }
++
++ memcpy(pCmdCalData, PCalDataext,
++ PCalDataext->CalDataLen + CAL_DATA_HEADER_LEN);
++
++ pCmdCalData->Action = wlan_cpu_to_le16(pCmdCalData->Action);
++ pCmdCalData->Revision = wlan_cpu_to_le16(pCmdCalData->Revision);
++ pCmdCalData->CalDataLen = wlan_cpu_to_le16(pCmdCalData->CalDataLen);
++
++ cmd->Size = wlan_cpu_to_le16(PCalDataext->CalDataLen +
++ CAL_DATA_HEADER_LEN + S_DS_GEN);
++
++ PRINTM(INFO, "CAL_DATA_EXT: cmd->Size = %d(d)\n", cmd->Size);
++
++ cmd->Result = 0;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function prepares command of eeprom_access.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param cmd_action the action: GET or SET
++ * @param pdata_buf A pointer to data buffer
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_802_11_eeprom_access(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd,
++ int cmd_action, void *pdata_buf)
++{
++ wlan_ioctl_regrdwr *ea = pdata_buf;
++
++ ENTER();
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_EEPROM_ACCESS);
++ cmd->Size =
++ wlan_cpu_to_le16(sizeof(HostCmd_DS_802_11_EEPROM_ACCESS) + S_DS_GEN);
++ cmd->Result = 0;
++
++ cmd->params.rdeeprom.Action = wlan_cpu_to_le16(ea->Action);
++ cmd->params.rdeeprom.Offset = wlan_cpu_to_le16(ea->Offset);
++ cmd->params.rdeeprom.ByteCount = wlan_cpu_to_le16(ea->NOB);
++ cmd->params.rdeeprom.Value = 0;
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++static int
++wlan_cmd_802_11_IBSS_Coalesced_Status(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd,
++ int cmd_action, void *pdata_buf)
++{
++ HostCmd_DS_802_11_IBSS_Status *pIBSSReq = &(cmd->params.ibssCoalescing);
++ u16 *enable = pdata_buf;
++
++ PRINTM(INFO, "HostCmd_CMD_802_11_BSSID_QUERY request");
++
++ cmd->Command =
++ wlan_cpu_to_le16(HostCmd_CMD_802_11_IBSS_COALESCING_STATUS);
++ cmd->Size =
++ wlan_cpu_to_le16(sizeof(HostCmd_DS_802_11_IBSS_Status) + S_DS_GEN);
++ cmd->Result = 0;
++ pIBSSReq->Action = wlan_cpu_to_le16(cmd_action);
++
++ switch (cmd_action) {
++ case HostCmd_ACT_SET:
++ pIBSSReq->Enable = wlan_cpu_to_le16(*enable);
++ break;
++
++ /* In other case.. Noting to do */
++ case HostCmd_ACT_GET:
++ default:
++ break;
++ }
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function queues the command to cmd list.
++ *
++ * @param Adapter A pointer to wlan_adapter structure
++ * @param CmdNode A pointer to CmdCtrlNode structure
++ * @param addtail specify if the cmd needs to be queued in the header or tail
++ * @return n/a
++ */
++void
++QueueCmd(wlan_adapter * Adapter, CmdCtrlNode * CmdNode, BOOLEAN addtail)
++{
++ ulong flags;
++ HostCmd_DS_COMMAND *CmdPtr;
++ u16 command;
++
++ ENTER();
++
++ if (!CmdNode) {
++ PRINTM(WARN, "QUEUE_CMD: CmdNode is NULL\n");
++ goto done;
++ }
++
++ CmdPtr = (HostCmd_DS_COMMAND *) CmdNode->BufVirtualAddr;
++ if (!CmdPtr) {
++ PRINTM(WARN, "QUEUE_CMD: CmdPtr is NULL\n");
++ goto done;
++ }
++
++ command = wlan_le16_to_cpu(CmdPtr->Command);
++
++ /* Exit_PS command needs to be queued in the header always. */
++ if (command == HostCmd_CMD_802_11_PS_MODE) {
++ HostCmd_DS_802_11_PS_MODE *psm = &CmdPtr->params.psmode;
++ if (wlan_le16_to_cpu(psm->Action) == HostCmd_SubCmd_Exit_PS) {
++ if (Adapter->PSState != PS_STATE_FULL_POWER)
++ addtail = FALSE;
++ }
++ }
++
++ if ((command == HostCmd_CMD_802_11_WAKEUP_CONFIRM)
++ || (command == HostCmd_CMD_802_11_HOST_SLEEP_ACTIVATE)
++ || (command == HostCmd_CMD_802_11_HOST_SLEEP_CFG)
++ ) {
++ addtail = FALSE;
++ }
++
++ spin_lock_irqsave(&Adapter->QueueSpinLock, flags);
++
++ if (addtail)
++ list_add_tail((struct list_head *) CmdNode, &Adapter->CmdPendingQ);
++ else
++ list_add((struct list_head *) CmdNode, &Adapter->CmdPendingQ);
++
++ spin_unlock_irqrestore(&Adapter->QueueSpinLock, flags);
++
++ PRINTM(INFO, "QUEUE_CMD: cmd=0x%x is queued\n", command);
++
++ done:
++ LEAVE();
++ return;
++}
++
++#ifdef MFG_CMD_SUPPORT
++/**
++ * @brief This function sends general command to firmware.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param pdata_buf A pointer to data buffer
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_mfg_cmd(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, void *pdata_buf)
++{
++ HostCmd_DS_GEN *pCmdPtr;
++
++ ENTER();
++
++ pCmdPtr = (HostCmd_DS_GEN *) pdata_buf;
++
++ /* copy the MFG command to command buffer */
++ memcpy((void *) cmd, pdata_buf, pCmdPtr->Size);
++
++ PRINTM(INFO, "MFG command size = %d\n", pCmdPtr->Size);
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_MFG_COMMAND);
++ cmd->Size = wlan_cpu_to_le16(cmd->Size);
++ cmd->Result = 0;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++#endif
++
++/**
++ * @brief This function downloads the command to firmware.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param CmdNode A pointer to CmdCtrlNode structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++DownloadCommandToStation(wlan_private * priv, CmdCtrlNode * CmdNode)
++{
++ ulong flags;
++ HostCmd_DS_COMMAND *CmdPtr;
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++ u16 CmdSize;
++ u16 Command;
++
++ OS_INTERRUPT_SAVE_AREA;
++
++ ENTER();
++
++ if (!Adapter || !CmdNode) {
++ PRINTM(ERROR, "DNLD_CMD: Adapter = %#x, CmdNode = %#x\n",
++ (int) Adapter, (int) CmdNode);
++ if (CmdNode)
++ CleanupAndInsertCmd(priv, CmdNode);
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ CmdPtr = (HostCmd_DS_COMMAND *) CmdNode->BufVirtualAddr;
++
++ if (!CmdPtr || !CmdPtr->Size) {
++ PRINTM(ERROR, "DNLD_CMD: CmdPtr is Null or Cmd Size is Zero, "
++ "Not sending\n");
++ CleanupAndInsertCmd(priv, CmdNode);
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ /* Set command sequence number */
++ Adapter->SeqNum++;
++ CmdPtr->SeqNum = wlan_cpu_to_le16(Adapter->SeqNum);
++
++ spin_lock_irqsave(&Adapter->QueueSpinLock, flags);
++ Adapter->CurCmd = CmdNode;
++ spin_unlock_irqrestore(&Adapter->QueueSpinLock, flags);
++
++ Command = wlan_le16_to_cpu(CmdPtr->Command);
++ CmdSize = wlan_le16_to_cpu(CmdPtr->Size);
++
++ CmdNode->CmdWaitQWoken = FALSE;
++
++ ret = sbi_host_to_card(priv, MVMS_CMD, (u8 *) CmdPtr, CmdSize);
++
++ /* clear TxDone interrupt bit */
++ OS_INT_DISABLE;
++ Adapter->HisRegCpy &= ~HIS_TxDnLdRdy;
++ OS_INT_RESTORE;
++
++ if (ret != 0) {
++ PRINTM(ERROR, "DNLD_CMD: Host to Card Failed\n");
++ /* set error code that will be transferred back to PrepareAndSendCommand() */
++ Adapter->CurCmdRetCode = WLAN_STATUS_FAILURE;
++ CleanupAndInsertCmd(priv, Adapter->CurCmd);
++ spin_lock_irqsave(&Adapter->QueueSpinLock, flags);
++ Adapter->CurCmd = NULL;
++ spin_unlock_irqrestore(&Adapter->QueueSpinLock, flags);
++ Adapter->dbg.num_cmd_host_to_card_failure++;
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ /* Save the last command id and action to debug log */
++ Adapter->dbg.LastCmdIndex = (Adapter->dbg.LastCmdIndex + 1) % DBG_CMD_NUM;
++ Adapter->dbg.LastCmdId[Adapter->dbg.LastCmdIndex] = Command;
++ Adapter->dbg.LastCmdAct[Adapter->dbg.LastCmdIndex] =
++ wlan_le16_to_cpu(*(u16 *) ((u8 *) CmdPtr + S_DS_GEN));
++
++ PRINTM(CMND, "DNLD_CMD: 0x%x, act 0x%x, len %d, seqno %d @ %lu\n",
++ Command, wlan_le16_to_cpu(*(u16 *) ((u8 *) CmdPtr + S_DS_GEN)),
++ CmdSize, wlan_le16_to_cpu(CmdPtr->SeqNum), os_time_get());
++ DBG_HEXDUMP(CMD_D, "DNLD_CMD", CmdNode->BufVirtualAddr, CmdSize);
++
++ /* Setup the timer after transmit command */
++ if (Command == HostCmd_CMD_802_11_SCAN
++ || Command == HostCmd_CMD_802_11_DEAUTHENTICATE
++ || Command == HostCmd_CMD_802_11_ASSOCIATE
++ || Command == HostCmd_CMD_WMM_ADDTS_REQ) {
++ ModTimer(&Adapter->MrvDrvCommandTimer, MRVDRV_TIMER_10S);
++ } else {
++ ModTimer(&Adapter->MrvDrvCommandTimer, MRVDRV_TIMER_5S);
++ }
++
++ Adapter->CommandTimerIsSet = TRUE;
++
++ if (Command == HostCmd_CMD_802_11_DEEP_SLEEP) {
++ if (Adapter->IntCounter || Adapter->CurrentTxSkb)
++ PRINTM(INFO, "DNLD_CMD: DS- IntCnt=%d CurTxSkb=%s\n",
++ Adapter->IntCounter, (Adapter->CurrentTxSkb) ? "Y" : "N");
++
++ if (Adapter->IntCounter) {
++ OS_INT_DISABLE;
++ Adapter->IntCounterSaved = Adapter->IntCounter;
++ Adapter->IntCounter = 0;
++ OS_INT_RESTORE;
++ }
++ if (Adapter->CurrentTxSkb) {
++ kfree_skb(Adapter->CurrentTxSkb);
++ OS_INT_DISABLE;
++ Adapter->CurrentTxSkb = NULL;
++ OS_INT_RESTORE;
++ priv->stats.tx_dropped++;
++ }
++ /* 1. change the PS state to DEEP_SLEEP
++ * 2. since there is no response for this command, so
++ * delete the command timer and free the Node. */
++
++ Adapter->IsDeepSleep = TRUE;
++
++ CleanupAndInsertCmd(priv, CmdNode);
++ spin_lock_irqsave(&Adapter->QueueSpinLock, flags);
++ Adapter->CurCmd = NULL;
++ spin_unlock_irqrestore(&Adapter->QueueSpinLock, flags);
++
++ if (Adapter->CommandTimerIsSet) {
++ CancelTimer(&Adapter->MrvDrvCommandTimer);
++ Adapter->CommandTimerIsSet = FALSE;
++ }
++
++ if (!Adapter->IsAutoDeepSleepEnabled
++ || (Adapter->bHostSleepConfigured &&
++ (Adapter->HSCfg.gpio != HOST_SLEEP_CFG_WAKEUP_THRU_INTERFACE))
++ )
++ /* stop clock to save more power */
++ sbi_set_bus_clock(priv, FALSE);
++
++ if (Adapter->IsAutoDeepSleepEnabled) {
++ Adapter->bWakeupDevRequired = TRUE;
++ /* For auto deep sleep mode, after entering deep sleep state,
++ * dnld_sent flag should be cleared so that the commands in
++ * pending queue can be handled by main thread. */
++ priv->wlan_dev.dnld_sent = DNLD_RES_RECEIVED;
++ }
++
++ if (Adapter->bHostSleepConfigured) {
++ Adapter->bWakeupDevRequired = TRUE;
++ wlan_host_sleep_activated_event(priv);
++ }
++
++ }
++
++ ret = WLAN_STATUS_SUCCESS;
++
++ done:
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function prepares command of mac_control.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_cmd_mac_control(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, void *InfoBuf)
++{
++ HostCmd_DS_MAC_CONTROL *mac = &cmd->params.macctrl;
++ u16 Action = *((u16 *) InfoBuf);
++
++ ENTER();
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_MAC_CONTROL);
++ cmd->Size = wlan_cpu_to_le16(sizeof(HostCmd_DS_MAC_CONTROL) + S_DS_GEN);
++ mac->Action = wlan_cpu_to_le16(Action);
++
++ PRINTM(INFO, "wlan_cmd_mac_control(): Action=0x%X Size=%d\n",
++ mac->Action, cmd->Size);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/********************************************************
++ Global Functions
++********************************************************/
++
++/**
++ * @brief This function inserts command node to CmdFreeQ
++ * after cleans it.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param pTempCmd A pointer to CmdCtrlNode structure
++ * @return n/a
++ */
++void
++CleanupAndInsertCmd(wlan_private * priv, CmdCtrlNode * pTempCmd)
++{
++ ulong flags;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (!pTempCmd)
++ goto done;
++
++ spin_lock_irqsave(&Adapter->QueueSpinLock, flags);
++ CleanUpCmdCtrlNode(pTempCmd);
++ list_add_tail((struct list_head *) pTempCmd, &Adapter->CmdFreeQ);
++ spin_unlock_irqrestore(&Adapter->QueueSpinLock, flags);
++
++ done:
++ LEAVE();
++}
++
++/**
++ * @brief This function prepare the command before send to firmware.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd_no command number
++ * @param cmd_action command action: GET or SET
++ * @param wait_option wait option: wait response or not
++ * @param cmd_oid cmd oid: treated as sub command
++ * @param pdata_buf A pointer to informaion buffer
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++PrepareAndSendCommand(wlan_private * priv,
++ u16 cmd_no,
++ u16 cmd_action,
++ u16 wait_option, WLAN_OID cmd_oid, void *pdata_buf)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_adapter *Adapter = priv->adapter;
++ CmdCtrlNode *CmdNode;
++ HostCmd_DS_COMMAND *CmdPtr;
++
++ ENTER();
++
++ if (!Adapter) {
++ PRINTM(ERROR, "PREP_CMD: Adapter is Null\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ if (Adapter->SurpriseRemoved) {
++ PRINTM(ERROR, "PREP_CMD: Card is Removed\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ CmdNode = GetFreeCmdCtrlNode(priv);
++
++ if (CmdNode == NULL) {
++ PRINTM(MSG, "PREP_CMD: No free CmdNode\n");
++
++ /* Wake up main thread to execute next command */
++ wake_up_interruptible(&priv->MainThread.waitQ);
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ SetCmdCtrlNode(priv, CmdNode, cmd_oid, wait_option, pdata_buf);
++
++ CmdPtr = (HostCmd_DS_COMMAND *) CmdNode->BufVirtualAddr;
++
++ if (!CmdPtr) {
++ PRINTM(MSG, "PREP_CMD: BufVirtualAddr of CmdNode is NULL\n");
++ CleanupAndInsertCmd(priv, CmdNode);
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ CmdPtr->Command = cmd_no;
++ CmdPtr->Result = 0;
++
++ TX_EVENT_FLAGS_SET(&CmdNode->cmdwait_q, 0, TX_AND);
++ switch (cmd_no) {
++ case HostCmd_CMD_GET_HW_SPEC:
++ ret = wlan_cmd_hw_spec(priv, CmdPtr);
++ break;
++ case HostCmd_CMD_802_11_PS_MODE:
++ ret = wlan_cmd_802_11_ps_mode(priv, CmdPtr, cmd_action);
++ break;
++
++ case HostCmd_CMD_802_11_SCAN:
++ ret = wlan_cmd_802_11_scan(priv, CmdPtr, pdata_buf);
++ break;
++
++ case HostCmd_CMD_MAC_CONTROL:
++ ret = wlan_cmd_mac_control(priv, CmdPtr, pdata_buf);
++ break;
++
++ case HostCmd_CMD_802_11_ASSOCIATE:
++ ret = wlan_cmd_802_11_associate(priv, CmdPtr, pdata_buf);
++ break;
++
++ case HostCmd_CMD_802_11_DEAUTHENTICATE:
++ ret = wlan_cmd_802_11_deauthenticate(priv, CmdPtr);
++ break;
++
++ case HostCmd_CMD_802_11_SET_WEP:
++ ret = wlan_cmd_802_11_set_wep(priv, CmdPtr, cmd_oid);
++ break;
++
++ case HostCmd_CMD_802_11_AD_HOC_START:
++ ret = wlan_cmd_802_11_ad_hoc_start(priv, CmdPtr, pdata_buf);
++ break;
++ case HostCmd_CMD_802_11_RESET:
++ CmdPtr->Command = wlan_cpu_to_le16(cmd_no);
++ CmdPtr->Size = wlan_cpu_to_le16(S_DS_GEN);
++ break;
++
++ case HostCmd_CMD_802_11_GET_LOG:
++ ret = wlan_cmd_802_11_get_log(priv, CmdPtr);
++ break;
++
++ case HostCmd_CMD_802_11_SNMP_MIB:
++ ret = wlan_cmd_802_11_snmp_mib(priv, CmdPtr,
++ cmd_action, cmd_oid, pdata_buf);
++ break;
++
++ case HostCmd_CMD_MAC_REG_ACCESS:
++ case HostCmd_CMD_BBP_REG_ACCESS:
++ case HostCmd_CMD_RF_REG_ACCESS:
++ ret = wlan_cmd_reg_access(priv, CmdPtr, cmd_action, pdata_buf);
++ break;
++
++ case HostCmd_CMD_802_11_RF_CHANNEL:
++ ret = wlan_cmd_802_11_rf_channel(priv, CmdPtr, cmd_action, pdata_buf);
++ break;
++
++ case HostCmd_CMD_802_11_RF_TX_POWER:
++ ret = wlan_cmd_802_11_rf_tx_power(priv, CmdPtr,
++ cmd_action, pdata_buf);
++ break;
++
++ case HostCmd_CMD_802_11_RADIO_CONTROL:
++ ret = wlan_cmd_802_11_radio_control(priv, CmdPtr, cmd_action);
++ break;
++
++ case HostCmd_CMD_802_11_RF_ANTENNA:
++ ret = wlan_cmd_802_11_rf_antenna(priv, CmdPtr, cmd_action, pdata_buf);
++ break;
++
++ case HostCmd_CMD_802_11_RATE_ADAPT_RATESET:
++ ret = wlan_cmd_802_11_rate_adapt_rateset(priv, CmdPtr, cmd_action);
++ break;
++
++ case HostCmd_CMD_MAC_MULTICAST_ADR:
++ ret = wlan_cmd_mac_multicast_adr(priv, CmdPtr, cmd_action);
++ break;
++
++ case HostCmd_CMD_802_11_AD_HOC_JOIN:
++ ret = wlan_cmd_802_11_ad_hoc_join(priv, CmdPtr, pdata_buf);
++ break;
++
++ case HostCmd_CMD_802_11_RSSI:
++ ret = wlan_cmd_802_11_rssi(priv, CmdPtr);
++ break;
++
++ case HostCmd_CMD_802_11_AD_HOC_STOP:
++ ret = wlan_cmd_802_11_ad_hoc_stop(priv, CmdPtr);
++ break;
++ case HostCmd_CMD_802_11_KEY_MATERIAL:
++ ret = wlan_cmd_802_11_key_material(priv, CmdPtr,
++ cmd_action, cmd_oid, pdata_buf);
++ break;
++
++ case HostCmd_CMD_802_11_MAC_ADDRESS:
++ ret = wlan_cmd_802_11_mac_address(priv, CmdPtr, cmd_action);
++ break;
++ case HostCmd_CMD_802_11_CAL_DATA_EXT:
++ ret = wlan_cmd_802_11_cal_data_ext(priv, CmdPtr, pdata_buf);
++ break;
++
++ case HostCmd_CMD_802_11_DEEP_SLEEP:
++ CmdPtr->Command = wlan_cpu_to_le16(cmd_no);
++ CmdPtr->Size = wlan_cpu_to_le16((u16)
++ (sizeof
++ (HostCmd_DS_802_11_DEEP_SLEEP)));
++ break;
++
++ case HostCmd_CMD_802_11_HOST_SLEEP_CFG:
++ ret = wlan_cmd_802_11_host_sleep_cfg(priv, CmdPtr, pdata_buf);
++ break;
++ case HostCmd_CMD_802_11_WAKEUP_CONFIRM:
++ case HostCmd_CMD_802_11_HOST_SLEEP_ACTIVATE:
++ CmdPtr->Command = wlan_cpu_to_le16(cmd_no);
++ CmdPtr->Size = wlan_cpu_to_le16(S_DS_GEN);
++ break;
++
++ case HostCmd_CMD_802_11_EEPROM_ACCESS:
++ ret = wlan_cmd_802_11_eeprom_access(priv, CmdPtr,
++ cmd_action, pdata_buf);
++ break;
++
++#ifdef MFG_CMD_SUPPORT
++ case HostCmd_CMD_MFG_COMMAND:
++ ret = wlan_cmd_mfg_cmd(priv, CmdPtr, pdata_buf);
++ break;
++#endif
++
++ case HostCmd_CMD_802_11D_DOMAIN_INFO:
++ ret = wlan_cmd_802_11d_domain_info(priv, CmdPtr, cmd_no, cmd_action);
++ break;
++
++ case HostCmd_CMD_802_11_SLEEP_PARAMS:
++ ret = wlan_cmd_802_11_sleep_params(priv, CmdPtr, cmd_action);
++ break;
++ case HostCmd_CMD_802_11_BCA_CONFIG_TIMESHARE:
++ ret = wlan_cmd_802_11_bca_timeshare(priv, CmdPtr,
++ cmd_action, pdata_buf);
++ break;
++ case HostCmd_CMD_802_11_INACTIVITY_TIMEOUT:
++ ret = wlan_cmd_802_11_inactivity_timeout(priv, CmdPtr,
++ cmd_action, pdata_buf);
++ break;
++ case HostCmd_CMD_802_11_BG_SCAN_CONFIG:
++ ret = wlan_cmd_802_11_bg_scan_config(priv, CmdPtr,
++ cmd_action, pdata_buf);
++ break;
++
++ case HostCmd_CMD_802_11_BG_SCAN_QUERY:
++ ret = wlan_cmd_802_11_bg_scan_query(priv, CmdPtr);
++ break;
++
++ case HostCmd_CMD_802_11_FW_WAKE_METHOD:
++ ret = wlan_cmd_802_11_fw_wakeup_method(priv, CmdPtr,
++ cmd_action, pdata_buf);
++ break;
++
++ case HostCmd_CMD_WMM_GET_STATUS:
++ ret = wlan_cmd_wmm_get_status(priv, CmdPtr, pdata_buf);
++ break;
++
++ case HostCmd_CMD_WMM_ADDTS_REQ:
++ ret = wlan_cmd_wmm_addts_req(priv, CmdPtr, pdata_buf);
++ break;
++ case HostCmd_CMD_WMM_DELTS_REQ:
++ ret = wlan_cmd_wmm_delts_req(priv, CmdPtr, pdata_buf);
++ break;
++ case HostCmd_CMD_WMM_QUEUE_CONFIG:
++ ret = wlan_cmd_wmm_queue_config(priv, CmdPtr, pdata_buf);
++ break;
++ case HostCmd_CMD_WMM_QUEUE_STATS:
++ ret = wlan_cmd_wmm_queue_stats(priv, CmdPtr, pdata_buf);
++ break;
++ case HostCmd_CMD_TX_PKT_STATS:
++ CmdPtr->Command = wlan_cpu_to_le16(HostCmd_CMD_TX_PKT_STATS);
++ CmdPtr->Size = wlan_cpu_to_le16(S_DS_GEN);
++ ret = WLAN_STATUS_SUCCESS;
++ break;
++ case HostCmd_CMD_802_11_TPC_CFG:
++ CmdPtr->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_TPC_CFG);
++ CmdPtr->Size =
++ wlan_cpu_to_le16(sizeof(HostCmd_DS_802_11_TPC_CFG) + S_DS_GEN);
++
++ memmove(&CmdPtr->params.tpccfg,
++ pdata_buf, sizeof(HostCmd_DS_802_11_TPC_CFG));
++ CmdPtr->params.tpccfg.Action =
++ wlan_cpu_to_le16(CmdPtr->params.tpccfg.Action);
++
++ ret = WLAN_STATUS_SUCCESS;
++ break;
++ case HostCmd_CMD_802_11_LED_CONTROL:
++ {
++ HostCmd_DS_802_11_LED_CTRL *pLedCtrl = &CmdPtr->params.ledgpio;
++ MrvlIEtypes_LedGpio_t *gpio = &pLedCtrl->LedGpio;
++ MrvlIEtypes_LedBehavior_t *pLedBehavior = pLedCtrl->LedBehavior;
++
++ memmove(&CmdPtr->params.ledgpio,
++ pdata_buf, sizeof(HostCmd_DS_802_11_LED_CTRL));
++
++ CmdPtr->Command =
++ wlan_cpu_to_le16(HostCmd_CMD_802_11_LED_CONTROL);
++
++#define ACTION_NUMLED_TLVTYPE_LEN_FIELDS_LEN 8
++ CmdPtr->Size = wlan_cpu_to_le16(gpio->Header.Len + S_DS_GEN
++ +
++ ACTION_NUMLED_TLVTYPE_LEN_FIELDS_LEN);
++
++ pLedCtrl->Action = wlan_cpu_to_le16(pLedCtrl->Action);
++ pLedCtrl->LedNums = wlan_cpu_to_le16(pLedCtrl->LedNums);
++
++ gpio->Header.Type = wlan_cpu_to_le16(gpio->Header.Type);
++ gpio->Header.Len = wlan_cpu_to_le16(gpio->Header.Len);
++
++ pLedBehavior->Header.Type =
++ wlan_cpu_to_le16(pLedBehavior->Header.Type);
++ pLedBehavior->Header.Len =
++ wlan_cpu_to_le16(pLedBehavior->Header.Len);
++
++ ret = WLAN_STATUS_SUCCESS;
++ break;
++ }
++ case HostCmd_CMD_802_11_SLEEP_PERIOD:
++ ret = wlan_cmd_802_11_sleep_period(priv, CmdPtr,
++ cmd_action, pdata_buf);
++ break;
++ case HostCmd_CMD_GET_TSF:
++ CmdPtr->Command = wlan_cpu_to_le16(HostCmd_CMD_GET_TSF);
++ CmdPtr->Size = wlan_cpu_to_le16(sizeof(HostCmd_DS_GET_TSF)
++ + S_DS_GEN);
++ ret = WLAN_STATUS_SUCCESS;
++ break;
++ case HostCmd_CMD_802_11_TX_RATE_QUERY:
++ CmdPtr->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_TX_RATE_QUERY);
++ CmdPtr->Size =
++ wlan_cpu_to_le16(sizeof(HostCmd_TX_RATE_QUERY) + S_DS_GEN);
++ Adapter->TxRate = 0;
++ ret = WLAN_STATUS_SUCCESS;
++ break;
++ case HostCmd_CMD_802_11_IBSS_COALESCING_STATUS:
++ ret =
++ wlan_cmd_802_11_IBSS_Coalesced_Status(priv, CmdPtr, cmd_action,
++ pdata_buf);
++ break;
++
++ case HostCmd_CMD_SDIO_GPIO_INT_CONFIG:
++ {
++ HostCmd_DS_SDIO_INT_CONFIG *pSdioIntConf =
++ &CmdPtr->params.sdio_int;
++
++ CmdPtr->Command =
++ wlan_cpu_to_le16(HostCmd_CMD_SDIO_GPIO_INT_CONFIG);
++ CmdPtr->Size =
++ wlan_cpu_to_le16(sizeof(HostCmd_DS_SDIO_INT_CONFIG) +
++ S_DS_GEN);
++
++ memcpy(pSdioIntConf, pdata_buf,
++ sizeof(HostCmd_DS_SDIO_INT_CONFIG));
++ pSdioIntConf->Action = wlan_cpu_to_le16(pSdioIntConf->Action);
++ pSdioIntConf->Gpio_pin = wlan_cpu_to_le16(pSdioIntConf->Gpio_pin);
++ pSdioIntConf->Gpio_int_edge =
++ wlan_cpu_to_le16(pSdioIntConf->Gpio_int_edge);
++ pSdioIntConf->Gpio_pulse_width =
++ wlan_cpu_to_le16(pSdioIntConf->Gpio_pulse_width);
++
++ ret = WLAN_STATUS_SUCCESS;
++ break;
++ }
++
++ case HostCmd_CMD_SDIO_PULL_CTRL:
++ {
++ HostCmd_DS_SDIO_PULL_CTRL *pSdiopullctl =
++ &CmdPtr->params.sdiopullctl;
++
++ CmdPtr->Command = wlan_cpu_to_le16(HostCmd_CMD_SDIO_PULL_CTRL);
++ CmdPtr->Size =
++ wlan_cpu_to_le16(sizeof(HostCmd_DS_SDIO_PULL_CTRL) +
++ S_DS_GEN);
++
++ memcpy(pSdiopullctl, pdata_buf,
++ sizeof(HostCmd_DS_SDIO_PULL_CTRL));
++ pSdiopullctl->Action = wlan_cpu_to_le16(pSdiopullctl->Action);
++ pSdiopullctl->PullUp = wlan_cpu_to_le16(pSdiopullctl->PullUp);
++ pSdiopullctl->PullDown = wlan_cpu_to_le16(pSdiopullctl->PullDown);
++
++ ret = WLAN_STATUS_SUCCESS;
++ break;
++ }
++
++ case HostCmd_CMD_802_11_LDO_CONFIG:
++ CmdPtr->Command = wlan_cpu_to_le16(cmd_no);
++ CmdPtr->Size =
++ wlan_cpu_to_le16(sizeof(HostCmd_DS_802_11_LDO_CONFIG) + S_DS_GEN);
++ memcpy(&CmdPtr->params.ldocfg, pdata_buf,
++ sizeof(HostCmd_DS_802_11_LDO_CONFIG));
++ CmdPtr->params.ldocfg.Action =
++ wlan_cpu_to_le16(CmdPtr->params.ldocfg.Action);
++ CmdPtr->params.ldocfg.PMSource =
++ wlan_cpu_to_le16(CmdPtr->params.ldocfg.PMSource);
++ break;
++
++ case HostCmd_CMD_VERSION_EXT:
++ CmdPtr->Command = wlan_cpu_to_le16(cmd_no);
++ memcpy(&CmdPtr->params, pdata_buf, sizeof(HostCmd_DS_VERSION_EXT));
++ CmdPtr->Size = wlan_cpu_to_le16(sizeof(HostCmd_DS_VERSION_EXT)
++ + S_DS_GEN);
++ break;
++
++ default:
++ PRINTM(INFO, "PREP_CMD: unknown command- %#x\n", cmd_no);
++ ret = WLAN_STATUS_FAILURE;
++ break;
++ }
++
++ /* return error, since the command preparation failed */
++ if (ret != WLAN_STATUS_SUCCESS) {
++ PRINTM(ERROR, "PREP_CMD: Command 0x%x preparation failed\n", cmd_no);
++ CleanupAndInsertCmd(priv, CmdNode);
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ PRINTM(CMND, "PREP_CMD: 0x%x\n", cmd_no);
++
++ CmdNode->CmdWaitQWoken = FALSE;
++ QueueCmd(Adapter, CmdNode, TRUE);
++ wake_up_interruptible(&priv->MainThread.waitQ);
++
++ if (wait_option & HostCmd_OPTION_WAITFORRSP) {
++ PRINTM(INFO, "PREP_CMD: Wait for CMD response...\n");
++ wait_event_interruptible(CmdNode->cmdwait_q, CmdNode->CmdWaitQWoken);
++ if (Adapter->CurCmdRetCode) {
++ PRINTM(INFO, "PREP_CMD: Command failed with return code=%d\n",
++ Adapter->CurCmdRetCode);
++ Adapter->CurCmdRetCode = 0;
++ ret = WLAN_STATUS_FAILURE;
++ }
++ }
++
++ done:
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function allocates the command buffer and link
++ * it to command free queue.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++AllocateCmdBuffer(wlan_private * priv)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ u32 ulBufSize;
++ u32 i;
++ CmdCtrlNode *TempCmdArray;
++ u8 *pTempVirtualAddr;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ /* Allocate and initialize CmdCtrlNode */
++ ulBufSize = sizeof(CmdCtrlNode) * MRVDRV_NUM_OF_CMD_BUFFER;
++
++ if (!(TempCmdArray = kmalloc(ulBufSize, GFP_KERNEL))) {
++ PRINTM(INFO, "ALLOC_CMD_BUF: Failed to allocate TempCmdArray\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ Adapter->CmdArray = TempCmdArray;
++ memset(Adapter->CmdArray, 0, ulBufSize);
++
++ /* Allocate and initialize command buffers */
++ ulBufSize = MRVDRV_SIZE_OF_CMD_BUFFER;
++ for (i = 0; i < MRVDRV_NUM_OF_CMD_BUFFER; i++) {
++ if (!(pTempVirtualAddr = kmalloc(ulBufSize, GFP_KERNEL))) {
++ PRINTM(INFO, "ALLOC_CMD_BUF: pTempVirtualAddr: out of memory\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ memset(pTempVirtualAddr, 0, ulBufSize);
++
++ /* Update command buffer virtual */
++ TempCmdArray[i].BufVirtualAddr = pTempVirtualAddr;
++ }
++
++ for (i = 0; i < MRVDRV_NUM_OF_CMD_BUFFER; i++) {
++ init_waitqueue_head(&TempCmdArray[i].cmdwait_q);
++ CleanupAndInsertCmd(priv, &TempCmdArray[i]);
++ }
++
++ ret = WLAN_STATUS_SUCCESS;
++ done:
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function frees the command buffer.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++FreeCmdBuffer(wlan_private * priv)
++{
++ u32 ulBufSize;
++ UINT i;
++ CmdCtrlNode *TempCmdArray;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ /* need to check if cmd array is allocated or not */
++ if (Adapter->CmdArray == NULL) {
++ PRINTM(INFO, "FREE_CMD_BUF: CmdArray is Null\n");
++ goto done;
++ }
++
++ TempCmdArray = Adapter->CmdArray;
++
++ /* Release shared memory buffers */
++ ulBufSize = MRVDRV_SIZE_OF_CMD_BUFFER;
++ for (i = 0; i < MRVDRV_NUM_OF_CMD_BUFFER; i++) {
++ if (TempCmdArray[i].BufVirtualAddr) {
++ PRINTM(INFO, "Free all the array\n");
++ kfree(TempCmdArray[i].BufVirtualAddr);
++ TempCmdArray[i].BufVirtualAddr = NULL;
++ }
++ }
++
++ /* Release CmdCtrlNode */
++ if (Adapter->CmdArray) {
++ PRINTM(INFO, "Free CmdArray\n");
++ kfree(Adapter->CmdArray);
++ Adapter->CmdArray = NULL;
++ }
++
++ done:
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function gets a free command node if available in
++ * command free queue.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return CmdCtrlNode A pointer to CmdCtrlNode structure or NULL
++ */
++CmdCtrlNode *
++GetFreeCmdCtrlNode(wlan_private * priv)
++{
++ CmdCtrlNode *TempNode;
++ wlan_adapter *Adapter = priv->adapter;
++ ulong flags;
++
++ ENTER();
++
++ if (!Adapter)
++ return NULL;
++
++ spin_lock_irqsave(&Adapter->QueueSpinLock, flags);
++
++ if (!list_empty(&Adapter->CmdFreeQ)) {
++ TempNode = (CmdCtrlNode *) Adapter->CmdFreeQ.next;
++ list_del((struct list_head *) TempNode);
++ } else {
++ PRINTM(WARN, "GET_CMD_NODE: CmdCtrlNode is not available\n");
++ TempNode = NULL;
++ }
++
++ spin_unlock_irqrestore(&Adapter->QueueSpinLock, flags);
++
++ if (TempNode) {
++ CleanUpCmdCtrlNode(TempNode);
++ }
++
++ LEAVE();
++ return TempNode;
++}
++
++/**
++ * @brief This function cleans command node.
++ *
++ * @param pTempNode A pointer to CmdCtrlNode structure
++ * @return n/a
++ */
++void
++CleanUpCmdCtrlNode(CmdCtrlNode * pTempNode)
++{
++ ENTER();
++
++ if (!pTempNode)
++ return;
++ pTempNode->CmdWaitQWoken = TRUE;
++
++ if (pTempNode->wait_option & HostCmd_OPTION_WAITFORRSP) {
++ wake_up_interruptible(&pTempNode->cmdwait_q);
++ }
++ pTempNode->Status = 0;
++ pTempNode->cmd_oid = (WLAN_OID) 0;
++ pTempNode->wait_option = 0;
++ pTempNode->CmdFlags = 0;
++ pTempNode->pdata_buf = NULL;
++
++ if (pTempNode->BufVirtualAddr != NULL)
++ memset(pTempNode->BufVirtualAddr, 0, MRVDRV_SIZE_OF_CMD_BUFFER);
++
++ LEAVE();
++ return;
++}
++
++/**
++ * @brief This function initializes the command node.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param pTempNode A pointer to CmdCtrlNode structure
++ * @param cmd_oid cmd oid: treated as sub command
++ * @param wait_option wait option: wait response or not
++ * @param pdata_buf A pointer to informaion buffer
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++void
++SetCmdCtrlNode(wlan_private * priv,
++ CmdCtrlNode * pTempNode,
++ WLAN_OID cmd_oid, u16 wait_option, void *pdata_buf)
++{
++ ENTER();
++
++ if (!pTempNode)
++ return;
++
++ pTempNode->cmd_oid = cmd_oid;
++ pTempNode->wait_option = wait_option;
++ pTempNode->pdata_buf = pdata_buf;
++
++ LEAVE();
++}
++
++/**
++ * @brief This function executes next command in command
++ * pending queue. It will put fimware back to PS mode
++ * if applicable.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++ExecuteNextCommand(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ CmdCtrlNode *CmdNode = NULL;
++ HostCmd_DS_COMMAND *CmdPtr;
++ ulong flags;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ if (!Adapter) {
++ PRINTM(MSG, "EXEC_NEXT_CMD: Adapter is NULL\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ spin_lock_irqsave(&Adapter->QueueSpinLock, flags);
++
++ if (Adapter->CurCmd) {
++ PRINTM(MSG, "EXEC_NEXT_CMD: there is command in processing!\n");
++ spin_unlock_irqrestore(&Adapter->QueueSpinLock, flags);
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ if (!list_empty(&Adapter->CmdPendingQ)) {
++ CmdNode = (CmdCtrlNode *)
++ Adapter->CmdPendingQ.next;
++ }
++
++ spin_unlock_irqrestore(&Adapter->QueueSpinLock, flags);
++
++ if (CmdNode) {
++ CmdPtr = (HostCmd_DS_COMMAND *) CmdNode->BufVirtualAddr;
++
++ if (Is_Command_Allowed_In_PS(CmdPtr->Command)) {
++ if ((Adapter->PSState == PS_STATE_SLEEP)
++ || (Adapter->PSState == PS_STATE_PRE_SLEEP)
++ ) {
++ PRINTM(INFO,
++ "EXEC_NEXT_CMD: Cannot send cmd 0x%x in PSState %d\n",
++ CmdPtr->Command, Adapter->PSState);
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++ PRINTM(INFO, "EXEC_NEXT_CMD: OK to send command "
++ "0x%x in PSState %d\n", CmdPtr->Command, Adapter->PSState);
++ } else if (Adapter->PSState != PS_STATE_FULL_POWER) {
++ /*
++ * 1. Non-PS command:
++ * Queue it. set NeedToWakeup to TRUE if current state
++ * is SLEEP, otherwise call PSWakeup to send Exit_PS.
++ * 2. PS command but not Exit_PS:
++ * Ignore it.
++ * 3. PS command Exit_PS:
++ * Set NeedToWakeup to TRUE if current state is SLEEP,
++ * otherwise send this command down to firmware
++ * immediately.
++ */
++ if (CmdPtr->Command !=
++ wlan_cpu_to_le16(HostCmd_CMD_802_11_PS_MODE)) {
++ /* Prepare to send Exit PS,
++ * this non PS command will be sent later */
++ if ((Adapter->PSState == PS_STATE_SLEEP)
++ || (Adapter->PSState == PS_STATE_PRE_SLEEP)
++ ) {
++ /* w/ new scheme, it will not reach here.
++ since it is blocked in main_thread. */
++ Adapter->NeedToWakeup = TRUE;
++ } else
++ PSWakeup(priv, 0);
++
++ ret = WLAN_STATUS_SUCCESS;
++ goto done;
++ } else {
++ /*
++ * PS command. Ignore it if it is not Exit_PS.
++ * otherwise send it down immediately.
++ */
++ HostCmd_DS_802_11_PS_MODE *psm = &CmdPtr->params.psmode;
++
++ PRINTM(INFO, "EXEC_NEXT_CMD: PS cmd- Action=0x%x\n",
++ psm->Action);
++ if (psm->Action != wlan_cpu_to_le16(HostCmd_SubCmd_Exit_PS)) {
++ PRINTM(INFO, "EXEC_NEXT_CMD: Ignore Enter PS cmd\n");
++ list_del((struct list_head *) CmdNode);
++ CleanupAndInsertCmd(priv, CmdNode);
++
++ ret = WLAN_STATUS_SUCCESS;
++ goto done;
++ }
++
++ if ((Adapter->PSState == PS_STATE_SLEEP)
++ || (Adapter->PSState == PS_STATE_PRE_SLEEP)
++ ) {
++ PRINTM(INFO,
++ "EXEC_NEXT_CMD: Ignore ExitPS cmd in sleep\n");
++ list_del((struct list_head *) CmdNode);
++ CleanupAndInsertCmd(priv, CmdNode);
++ Adapter->NeedToWakeup = TRUE;
++
++ ret = WLAN_STATUS_SUCCESS;
++ goto done;
++ }
++
++ PRINTM(INFO, "EXEC_NEXT_CMD: Sending Exit_PS down...\n");
++ }
++ }
++ list_del((struct list_head *) CmdNode);
++ DownloadCommandToStation(priv, CmdNode);
++ } else {
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ /*
++ * check if in power save mode, if yes, put the device back
++ * to PS mode
++ */
++ if ((Adapter->PSMode != Wlan802_11PowerModeCAM) &&
++ (Adapter->PSState == PS_STATE_FULL_POWER)) {
++ if (Adapter->SecInfo.WPAEnabled
++ || Adapter->SecInfo.WPA2Enabled) {
++ if (Adapter->IsGTK_SET) {
++ PRINTM(INFO, "EXEC_NEXT_CMD: WPA enabled and GTK_SET"
++ " go back to PS_SLEEP");
++ PSSleep(priv, 0);
++ }
++ } else {
++ if ((Adapter->InfrastructureMode != Wlan802_11IBSS)
++ || Adapter->CurBssParams.BSSDescriptor.ATIMWindow) {
++ PRINTM(INFO, "EXEC_NEXT_CMD: Command PendQ is empty,"
++ " go back to PS_SLEEP");
++ PSSleep(priv, 0);
++ }
++ }
++ }
++ } else {
++ /*
++ * check if in auto deep sleep mode, if yes, put the device back
++ * to DS mode
++ */
++ if (Adapter->IsAutoDeepSleepEnabled && !Adapter->IntCounter) {
++ PRINTM(INFO, "Entering Auto Deep Sleep mode...\n");
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_DEEP_SLEEP, 0,
++ 0, 0, NULL);
++ }
++ }
++ /* The hs_activate command is sent when Host Sleep is configured
++ and de-activated in full power mode. */
++ if (Adapter->bHostSleepConfigured && !Adapter->HS_Activated
++ && ((Adapter->MediaConnectStatus == WlanMediaStateConnected)
++ || (!Adapter->IsAutoDeepSleepEnabled))
++ && (((Adapter->PSMode == Wlan802_11PowerModeCAM)
++ && (Adapter->PSState == PS_STATE_FULL_POWER))
++ || ((Adapter->InfrastructureMode == Wlan802_11IBSS)
++ && !Adapter->CurBssParams.BSSDescriptor.ATIMWindow)
++ )) {
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_HOST_SLEEP_ACTIVATE,
++ 0, 0, 0, NULL);
++ }
++ }
++
++ ret = WLAN_STATUS_SUCCESS;
++ done:
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function handles the timeout of command sending.
++ * It will re-send the same command again.
++ *
++ * @param FunctionContext A pointer to FunctionContext
++ * @return n/a
++ */
++void
++MrvDrvCommandTimerFunction(void *FunctionContext)
++{
++ wlan_private *priv = (wlan_private *) FunctionContext;
++ wlan_adapter *Adapter = priv->adapter;
++ CmdCtrlNode *pTempNode;
++ HostCmd_DS_COMMAND *CmdPtr;
++
++ ENTER();
++
++ PRINTM(CMND, "Command timeout.\n");
++
++ Adapter->CommandTimerIsSet = FALSE;
++
++ if (!Adapter->num_cmd_timeout)
++ Adapter->dbg.num_cmd_timeout++;
++
++ pTempNode = Adapter->CurCmd;
++
++ if (pTempNode == NULL) {
++ PRINTM(INFO, "CurCmd Empty\n");
++ goto exit;
++ }
++
++ CmdPtr = (HostCmd_DS_COMMAND *) pTempNode->BufVirtualAddr;
++ if (CmdPtr == NULL) {
++ goto exit;
++ }
++
++ if (CmdPtr->Size) {
++ Adapter->dbg.TimeoutCmdId = wlan_cpu_to_le16(CmdPtr->Command);
++ Adapter->dbg.TimeoutCmdAct =
++ wlan_cpu_to_le16(*(u16 *) ((u8 *) CmdPtr + S_DS_GEN));
++ PRINTM(CMND, "Timeout cmd = 0x%x, act = 0x%x\n",
++ Adapter->dbg.TimeoutCmdId, Adapter->dbg.TimeoutCmdAct);
++ }
++#define MAX_CMD_TIMEOUT_COUNT 3
++ Adapter->num_cmd_timeout++;
++ if (Adapter->num_cmd_timeout > MAX_CMD_TIMEOUT_COUNT) {
++ PRINTM(FATAL, "num_cmd_timeout=%d\n", Adapter->num_cmd_timeout);
++ goto exit;
++ }
++
++ /* Restart the timer to trace command response again */
++ ModTimer(&Adapter->MrvDrvCommandTimer, MRVDRV_TIMER_1S);
++ Adapter->CommandTimerIsSet = TRUE;
++
++ /* Wake up main thread to read int status register */
++ Adapter->IntCounter++;
++ wake_up_interruptible(&priv->MainThread.waitQ);
++
++ exit:
++ LEAVE();
++ return;
++}
++
++/**
++ * @brief This function sends sleep confirm command to firmware.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmdptr A pointer to the command
++ * @param size the size of command
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++SendConfirmSleep(wlan_private * priv, u8 * CmdPtr, u16 size)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++ static u32 i = 0;
++
++ ENTER();
++
++ HEXDUMP("SLEEP_CFM", CmdPtr, size);
++
++ ret = sbi_host_to_card(priv, MVMS_CMD, CmdPtr, size);
++ priv->wlan_dev.dnld_sent = DNLD_RES_RECEIVED;
++
++ if (ret) {
++ PRINTM(MSG, "SLEEP_CFM: sbi_host_to_card() failed\n");
++ Adapter->dbg.num_cmd_sleep_cfm_host_to_card_failure++;
++ } else {
++ Adapter->PSState = PS_STATE_SLEEP;
++
++ if (Adapter->bHostSleepConfigured &&
++ (Adapter->sleep_period.period == 0)) {
++ Adapter->bWakeupDevRequired = TRUE;
++
++ wlan_host_sleep_activated_event(priv);
++ }
++#define NUM_SC_PER_LINE 16
++ if (++i % NUM_SC_PER_LINE == 0) {
++ PRINTM(EVENT, "+\n");
++ } else {
++ PRINTM(EVENT, "+");
++ }
++
++ /* check if interrupt is received after sleep confirm */
++ if (Adapter->IntCounter) {
++ PRINTM(INFO, "SLEEP_CFM: After sent, IntCnt=%d\n",
++ Adapter->IntCounter);
++ Adapter->PSState = PS_STATE_AWAKE;
++
++ }
++
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function sends Enter_PS command to firmware.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wait_option wait response or not
++ * @return n/a
++ */
++void
++PSSleep(wlan_private * priv, int wait_option)
++{
++
++ ENTER();
++
++ PrepareAndSendCommand(priv, HostCmd_CMD_802_11_PS_MODE,
++ HostCmd_SubCmd_Enter_PS, wait_option, 0, NULL);
++
++ LEAVE();
++ return;
++}
++
++/**
++ * @brief This function sends Eixt_PS command to firmware.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wait_option wait response or not
++ * @return n/a
++ */
++void
++PSWakeup(wlan_private * priv, int wait_option)
++{
++ WLAN_802_11_POWER_MODE LocalPSMode;
++
++ ENTER();
++
++ LocalPSMode = Wlan802_11PowerModeCAM;
++
++ PrepareAndSendCommand(priv, HostCmd_CMD_802_11_PS_MODE,
++ HostCmd_SubCmd_Exit_PS,
++ wait_option, 0, &LocalPSMode);
++
++ LEAVE();
++ return;
++}
++
++/**
++ * @brief This function checks condition and prepares to
++ * send sleep confirm command to firmware if ok.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param PSMode Power Saving mode
++ * @return n/a
++ */
++void
++PSConfirmSleep(wlan_private * priv, u16 PSMode)
++{
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (!priv->wlan_dev.dnld_sent && !Adapter->CurCmd && !Adapter->IntCounter) {
++ SendConfirmSleep(priv, (u8 *) & Adapter->PSConfirmSleep,
++ sizeof(PS_CMD_ConfirmSleep));
++
++ os_start_queue(priv);
++ } else {
++ PRINTM(INFO, "Delay Sleep Confirm (%s%s%s)\n",
++ (priv->wlan_dev.dnld_sent) ? "D" : "",
++ (Adapter->CurCmd) ? "C" : "",
++ (Adapter->IntCounter) ? "I" : "");
++ }
++
++ LEAVE();
++}
+diff --git a/drivers/net/wireless/marvell8686/wlan_cmdresp.c b/drivers/net/wireless/marvell8686/wlan_cmdresp.c
+new file mode 100644
+index 0000000..780c997
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_cmdresp.c
+@@ -0,0 +1,1595 @@
++/** @file wlan_cmdresp.c
++ * @brief This file contains the handling of command
++ * responses as well as events generated by firmware.
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2007
++ */
++/********************************************************
++Change log:
++ 10/10/05: Add Doxygen format comments
++ 11/11/05: Add support for WMM Status change event
++ 12/13/05: Add Proprietary periodic sleep support
++ 12/23/05: Fix bug in adhoc start where the current index was
++ not properly being assigned before it was used.
++ 01/05/06: Add kernel 2.6.x support
++ 01/11/06: Conditionalize new scan/join structures.
++ Update assoc response handling; entire IEEE response returned
++ 04/06/06: Add TSPEC, queue metrics, and MSDU expiry support
++ 04/10/06: Add hostcmd generic API
++ 04/18/06: Remove old Subscrive Event and add new Subscribe Event
++ implementation through generic hostcmd API
++ 05/04/06: Add IBSS coalescing related new hostcmd response handling
++ 05/08/06: Remove PermanentAddr from Adapter
++ 06/08/06: Remove function HandleMICFailureEvent()
++ 08/29/06: Add ledgpio private command
++********************************************************/
++
++#include "include.h"
++
++/********************************************************
++ Local Variables
++********************************************************/
++
++/********************************************************
++ Global Variables
++********************************************************/
++
++/********************************************************
++ Local Functions
++********************************************************/
++
++/**
++ * @brief This function handles disconnect event. it
++ * reports disconnect to upper layer, clean tx/rx packets,
++ * reset link state etc.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return n/a
++ */
++void
++MacEventDisconnected(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ union iwreq_data wrqu;
++
++ ENTER();
++
++ if (Adapter->MediaConnectStatus != WlanMediaStateConnected)
++ return;
++
++ PRINTM(INFO, "Handles disconnect event.\n");
++
++ /* Free Tx and Rx packets, report disconnect to upper layer */
++ wlan_clean_txrx(priv);
++
++ memset(wrqu.ap_addr.sa_data, 0x00, ETH_ALEN);
++ wrqu.ap_addr.sa_family = ARPHRD_ETHER;
++
++ wireless_send_event(priv->wlan_dev.netdev, SIOCGIWAP, &wrqu, NULL);
++
++ /* reset SNR/NF/RSSI values */
++ memset(Adapter->SNR, 0x00, sizeof(Adapter->SNR));
++ memset(Adapter->NF, 0x00, sizeof(Adapter->NF));
++ memset(Adapter->RSSI, 0x00, sizeof(Adapter->RSSI));
++ memset(Adapter->rawSNR, 0x00, sizeof(Adapter->rawSNR));
++ memset(Adapter->rawNF, 0x00, sizeof(Adapter->rawNF));
++ Adapter->nextSNRNF = 0;
++ Adapter->numSNRNF = 0;
++ Adapter->RxPDRate = 0;
++ PRINTM(INFO, "Current SSID=%s, Ssid Length=%u\n",
++ Adapter->CurBssParams.BSSDescriptor.Ssid.Ssid,
++ Adapter->CurBssParams.BSSDescriptor.Ssid.SsidLength);
++ PRINTM(INFO, "Previous SSID=%s, Ssid Length=%u\n",
++ Adapter->PreviousSSID.Ssid, Adapter->PreviousSSID.SsidLength);
++
++ Adapter->SecInfo.WPAEnabled = FALSE;
++ Adapter->SecInfo.WPA2Enabled = FALSE;
++ Adapter->Wpa_ie_len = 0;
++ Adapter->SecInfo.EncryptionMode = CIPHER_NONE;
++
++ Adapter->MediaConnectStatus = WlanMediaStateDisconnected;
++
++ Adapter->AdhocLinkSensed = FALSE;
++
++ /*
++ * memorize the previous SSID and BSSID
++ * it could be used for re-assoc
++ */
++ memcpy(&Adapter->PreviousSSID,
++ &Adapter->CurBssParams.BSSDescriptor.Ssid,
++ sizeof(WLAN_802_11_SSID));
++ memcpy(Adapter->PreviousBSSID,
++ Adapter->CurBssParams.BSSDescriptor.MacAddress, ETH_ALEN);
++
++ /* need to erase the current SSID and BSSID info */
++ memset(&Adapter->CurBssParams, 0x00, sizeof(Adapter->CurBssParams));
++
++ if (Adapter->PSState != PS_STATE_FULL_POWER) {
++ /* make firmware to exit PS mode */
++ PRINTM(INFO, "Disconnected, so exit PS mode.\n");
++ PSWakeup(priv, 0);
++ }
++
++ LEAVE();
++}
++
++/**
++ * @brief This function handles link lost, deauth and
++ * disassoc events.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return n/a
++ */
++static void
++HandleDisconnectEvent(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ MacEventDisconnected(priv);
++#ifdef REASSOCIATION
++ if (Adapter->Reassoc_on == TRUE) {
++ PRINTM(INFO, "RE-ASSOC: trigger the timer\n");
++ Adapter->ReassocTimerIsSet = TRUE;
++ ModTimer(&Adapter->MrvDrvTimer, 0);
++ }
++#endif /* REASSOCIATION */
++ }
++}
++
++/**
++ * @brief This function handles the command response of reg_access
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param type the type of reg access (MAC, BBP or RF)
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_reg_access(wlan_private * priv, u16 type, HostCmd_DS_COMMAND * resp)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ wlan_offset_value *pOffsetValue =
++ (wlan_offset_value *) Adapter->CurCmd->pdata_buf;
++
++ ENTER();
++
++ switch (type) {
++ case HostCmd_RET_MAC_REG_ACCESS:
++ {
++ HostCmd_DS_MAC_REG_ACCESS *reg;
++
++ reg = (HostCmd_DS_MAC_REG_ACCESS *) & resp->params.macreg;
++
++ pOffsetValue->offset = wlan_le16_to_cpu(reg->Offset);
++ pOffsetValue->value = wlan_le32_to_cpu(reg->Value);
++ break;
++ }
++
++ case HostCmd_RET_BBP_REG_ACCESS:
++ {
++ HostCmd_DS_BBP_REG_ACCESS *reg;
++ reg = (HostCmd_DS_BBP_REG_ACCESS *) & resp->params.bbpreg;
++
++ pOffsetValue->offset = wlan_le16_to_cpu(reg->Offset);
++ pOffsetValue->value = (u8) reg->Value;
++ break;
++ }
++
++ case HostCmd_RET_RF_REG_ACCESS:
++ {
++ HostCmd_DS_RF_REG_ACCESS *reg;
++ reg = (HostCmd_DS_RF_REG_ACCESS *) & resp->params.rfreg;
++
++ pOffsetValue->offset = wlan_le16_to_cpu(reg->Offset);
++ pOffsetValue->value = (u8) reg->Value;
++ break;
++ }
++
++ default:
++ LEAVE();
++ return WLAN_STATUS_FAILURE;
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function handles the command response of get_hw_spec
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_get_hw_spec(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ u32 i;
++ HostCmd_DS_GET_HW_SPEC *hwspec = &resp->params.hwspec;
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ Adapter->fwCapInfo = wlan_le32_to_cpu(hwspec->fwCapInfo);
++
++ Adapter->FWReleaseNumber = wlan_le32_to_cpu(hwspec->FWReleaseNumber);
++
++ PRINTM(INFO, "GET_HW_SPEC: FWReleaseVersion- 0x%X\n",
++ Adapter->FWReleaseNumber);
++ PRINTM(INFO, "GET_HW_SPEC: Permanent addr- %2x:%2x:%2x:%2x:%2x:%2x\n",
++ hwspec->PermanentAddr[0], hwspec->PermanentAddr[1],
++ hwspec->PermanentAddr[2], hwspec->PermanentAddr[3],
++ hwspec->PermanentAddr[4], hwspec->PermanentAddr[5]);
++ PRINTM(INFO, "GET_HW_SPEC: HWIfVersion=0x%X Version=0x%X\n",
++ wlan_le16_to_cpu(hwspec->HWIfVersion),
++ wlan_le16_to_cpu(hwspec->Version));
++
++ Adapter->RegionCode = wlan_le16_to_cpu(hwspec->RegionCode);
++
++ for (i = 0; i < MRVDRV_MAX_REGION_CODE; i++) {
++ /* use the region code to search for the index */
++ if (Adapter->RegionCode == RegionCodeToIndex[i]) {
++ break;
++ }
++ }
++
++ /* if it's unidentified region code, use the default (USA) */
++ if (i >= MRVDRV_MAX_REGION_CODE) {
++ Adapter->RegionCode = 0x10;
++ PRINTM(WARN, "unidentified region code, use the default (USA)\n");
++ }
++
++ /* HACK IT MAKE RegionCode always equals 0x30 */
++ Adapter->RegionCode = 0x30;
++
++ if (Adapter->CurrentAddr[0] == 0xff) {
++ memmove(Adapter->CurrentAddr, hwspec->PermanentAddr, ETH_ALEN);
++ }
++ /* HACK PermanentAddr[0] Equals 0xFF */
++ if (Adapter->CurrentAddr[0] == 0xff) {
++ Adapter->CurrentAddr[0] = 0x00;
++ Adapter->CurrentAddr[1] = 0x1a;
++ Adapter->CurrentAddr[2] = 0x6b;
++ }
++ memcpy(priv->wlan_dev.netdev->dev_addr, Adapter->CurrentAddr, ETH_ALEN);
++
++ if (wlan_set_regiontable(priv, Adapter->RegionCode, 0)) {
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ if (wlan_set_universaltable(priv, 0)) {
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ done:
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function handles the command response of host_sleep_cfg
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_host_sleep_cfg(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ HostCmd_DS_802_11_HOST_SLEEP_CFG *hscfg = &resp->params.hostsleepcfg;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ if (hscfg->conditions != HOST_SLEEP_CFG_CANCEL) {
++ Adapter->bHostSleepConfigured = TRUE;
++ } else {
++ Adapter->bHostSleepConfigured = FALSE;
++ if (Adapter->PSState == PS_STATE_FULL_POWER && Adapter->HS_Activated) {
++ wlan_host_sleep_deactivated_event(priv);
++ }
++ os_start_queue(priv);
++ os_carrier_on(priv);
++ wmm_start_queue(priv);
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function handles the command response of fw_wakeup_method
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_fw_wakeup_method(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ HostCmd_DS_802_11_FW_WAKEUP_METHOD *fwwm = &resp->params.fwwakeupmethod;
++ u16 action;
++
++ ENTER();
++
++ action = wlan_le16_to_cpu(fwwm->Action);
++
++ switch (action) {
++ case HostCmd_ACT_GET:
++ case HostCmd_ACT_SET:
++ Adapter->fwWakeupMethod = wlan_le16_to_cpu(fwwm->Method);
++ break;
++ default:
++ break;
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function handles the command response of sleep_params
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_802_11_sleep_params(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ HostCmd_DS_802_11_SLEEP_PARAMS *sp = &resp->params.sleep_params;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ PRINTM(INFO, "error=%x offset=%x stabletime=%x calcontrol=%x\n"
++ " extsleepclk=%x\n", sp->Error, sp->Offset,
++ sp->StableTime, sp->CalControl, sp->ExternalSleepClk);
++ Adapter->sp.sp_error = wlan_le16_to_cpu(sp->Error);
++ Adapter->sp.sp_offset = wlan_le16_to_cpu(sp->Offset);
++ Adapter->sp.sp_stabletime = wlan_le16_to_cpu(sp->StableTime);
++ Adapter->sp.sp_calcontrol = wlan_le16_to_cpu(sp->CalControl);
++ Adapter->sp.sp_extsleepclk = wlan_le16_to_cpu(sp->ExternalSleepClk);
++ Adapter->sp.sp_reserved = wlan_le16_to_cpu(sp->Reserved);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function handles the command response of sleep_params
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_802_11_sleep_period(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ HostCmd_DS_802_11_SLEEP_PERIOD *sp_period = &resp->params.ps_sleeppd;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ Adapter->sleep_period.period = wlan_le16_to_cpu(sp_period->Period);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function handles the command response of bca_timeshare
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_802_11_bca_timeshare(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ HostCmd_DS_802_11_BCA_TIMESHARE *bca_ts = &resp->params.bca_timeshare;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ PRINTM(MSG, "TrafficType=%x TimeShareInterva=%x BTTime=%x\n",
++ bca_ts->TrafficType, bca_ts->TimeShareInterval, bca_ts->BTTime);
++
++ Adapter->bca_ts.TrafficType = wlan_le16_to_cpu(bca_ts->TrafficType);
++ Adapter->bca_ts.TimeShareInterval =
++ wlan_le32_to_cpu(bca_ts->TimeShareInterval);
++ Adapter->bca_ts.BTTime = wlan_le32_to_cpu(bca_ts->BTTime);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function handles the command response of mac_control
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_mac_control(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function handles the command response of set_wep
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_802_11_set_wep(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function handles the command response of reset
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_802_11_reset(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ ENTER();
++ PRINTM(INFO, "HWAC - Reset command successful\n");
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function handles the command response of snmp_mib
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_802_11_snmp_mib(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ HostCmd_DS_802_11_SNMP_MIB *smib = &resp->params.smib;
++ u16 OID = wlan_le16_to_cpu(smib->OID);
++ u16 QueryType = wlan_le16_to_cpu(smib->QueryType);
++
++ ENTER();
++
++ PRINTM(INFO, "SNMP_RESP: value of the OID = %x, QueryType=%x\n", OID,
++ QueryType);
++ PRINTM(INFO, "SNMP_RESP: Buf size = %x\n",
++ wlan_le16_to_cpu(smib->BufSize));
++
++ if (QueryType == HostCmd_ACT_GEN_GET) {
++ switch (OID) {
++ case FragThresh_i:
++ priv->adapter->FragThsd =
++ wlan_le16_to_cpu(*((PUSHORT) (smib->Value)));
++ PRINTM(INFO, "SNMP_RESP: FragThsd =%u\n",
++ priv->adapter->FragThsd);
++ break;
++ case RtsThresh_i:
++ priv->adapter->RTSThsd =
++ wlan_le16_to_cpu(*((PUSHORT) (smib->Value)));
++ PRINTM(INFO, "SNMP_RESP: RTSThsd =%u\n", priv->adapter->RTSThsd);
++ break;
++ case ShortRetryLim_i:
++ priv->adapter->TxRetryCount =
++ wlan_le16_to_cpu(*((PUSHORT) (smib->Value)));
++ PRINTM(INFO, "SNMP_RESP: TxRetryCount =%u\n",
++ priv->adapter->RTSThsd);
++ break;
++ case DtimPeriod_i:
++ priv->adapter->Dtim =
++ wlan_le16_to_cpu(*((PUSHORT) (smib->Value)));
++ PRINTM(INFO, "SNMP_RESP: DtimPeriod =%u\n", priv->adapter->Dtim);
++ break;
++ default:
++ break;
++ }
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function handles the command response of radio_control
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_802_11_radio_control(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ ENTER();
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function handles the command response of key_material
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_802_11_key_material(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ HostCmd_DS_802_11_KEY_MATERIAL *pKey = &resp->params.keymaterial;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (wlan_le16_to_cpu(pKey->Action) == HostCmd_ACT_SET) {
++ if ((wlan_le16_to_cpu(pKey->KeyParamSet.KeyInfo) &
++ KEY_INFO_TKIP_MCAST)
++ || (wlan_le16_to_cpu(pKey->KeyParamSet.KeyInfo) &
++ KEY_INFO_AES_MCAST)) {
++ PRINTM(INFO, "Key: GTK is set\n");
++ Adapter->IsGTK_SET = TRUE;
++ }
++ }
++
++ memcpy(Adapter->aeskey.KeyParamSet.Key, pKey->KeyParamSet.Key,
++ sizeof(pKey->KeyParamSet.Key));
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function handles the command response of mac_address
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_802_11_mac_address(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ HostCmd_DS_802_11_MAC_ADDRESS *MacAdd = &resp->params.macadd;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ memcpy(Adapter->CurrentAddr, MacAdd->MacAdd, ETH_ALEN);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function handles the command response of rf_tx_power
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_802_11_rf_tx_power(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ HostCmd_DS_802_11_RF_TX_POWER *rtp = &resp->params.txp;
++ wlan_adapter *Adapter = priv->adapter;
++ u16 Action = wlan_le16_to_cpu(rtp->Action);
++
++ ENTER();
++
++ Adapter->TxPowerLevel = wlan_le16_to_cpu(rtp->CurrentLevel);
++
++ if (Action == HostCmd_ACT_GET) {
++ Adapter->MaxTxPowerLevel = rtp->MaxPower;
++ Adapter->MinTxPowerLevel = rtp->MinPower;
++ }
++
++ PRINTM(INFO, "Current TxPower Level = %d,Max Power=%d, Min Power=%d\n",
++ Adapter->TxPowerLevel, Adapter->MaxTxPowerLevel,
++ Adapter->MinTxPowerLevel);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function handles the command response of rf_antenna
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_802_11_rf_antenna(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ HostCmd_DS_802_11_RF_ANTENNA *pAntenna = &resp->params.rant;
++ wlan_adapter *Adapter = priv->adapter;
++ u16 Action = wlan_le16_to_cpu(pAntenna->Action);
++
++ if (Action == HostCmd_ACT_GET_RX)
++ Adapter->RxAntennaMode = wlan_le16_to_cpu(pAntenna->AntennaMode);
++
++ if (Action == HostCmd_ACT_GET_TX)
++ Adapter->TxAntennaMode = wlan_le16_to_cpu(pAntenna->AntennaMode);
++
++ PRINTM(INFO, "RF_ANT_RESP: Action = 0x%x, Mode = 0x%04x\n",
++ Action, wlan_le16_to_cpu(pAntenna->AntennaMode));
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function handles the command response of multicast_address
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_mac_multicast_adr(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function handles the command response of rate_adapt_rateset
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_802_11_rate_adapt_rateset(wlan_private * priv,
++ HostCmd_DS_COMMAND * resp)
++{
++ HostCmd_DS_802_11_RATE_ADAPT_RATESET *rates = &resp->params.rateset;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (wlan_le16_to_cpu(rates->Action) == HostCmd_ACT_GET) {
++ Adapter->HWRateDropMode = wlan_le16_to_cpu(rates->HWRateDropMode);
++ Adapter->Threshold = wlan_le16_to_cpu(rates->Threshold);
++ Adapter->FinalRate = wlan_le16_to_cpu(rates->FinalRate);
++ Adapter->RateBitmap = wlan_le16_to_cpu(rates->Bitmap);
++ }
++
++ LEAVE();
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function handles the command response of rf_channel
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_802_11_rf_channel(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ HostCmd_DS_802_11_RF_CHANNEL *rfchannel = &resp->params.rfchannel;
++ wlan_adapter *Adapter = priv->adapter;
++ u16 Action = wlan_le16_to_cpu(rfchannel->Action);
++ u16 newChannel = wlan_le16_to_cpu(rfchannel->CurrentChannel);
++
++ ENTER();
++
++ if (Action == HostCmd_OPT_802_11_RF_CHANNEL_GET
++ && Adapter->CurBssParams.BSSDescriptor.Channel != newChannel) {
++ PRINTM(INFO, "Channel Switch: %d to %d\n",
++ Adapter->CurBssParams.BSSDescriptor.Channel, newChannel);
++
++ /* Update the channel again */
++ Adapter->CurBssParams.BSSDescriptor.Channel = newChannel;
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function handles the command response of rssi
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_802_11_rssi(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ HostCmd_DS_802_11_RSSI_RSP *rssirsp = &resp->params.rssirsp;
++ wlan_adapter *Adapter = priv->adapter;
++
++ /* store the non average value */
++ Adapter->SNR[TYPE_BEACON][TYPE_NOAVG] = wlan_le16_to_cpu(rssirsp->SNR);
++ Adapter->NF[TYPE_BEACON][TYPE_NOAVG] =
++ wlan_le16_to_cpu(rssirsp->NoiseFloor);
++
++ Adapter->SNR[TYPE_BEACON][TYPE_AVG] = wlan_le16_to_cpu(rssirsp->AvgSNR);
++ Adapter->NF[TYPE_BEACON][TYPE_AVG] =
++ wlan_le16_to_cpu(rssirsp->AvgNoiseFloor);
++
++ Adapter->RSSI[TYPE_BEACON][TYPE_NOAVG] =
++ CAL_RSSI(Adapter->SNR[TYPE_BEACON][TYPE_NOAVG],
++ Adapter->NF[TYPE_BEACON][TYPE_NOAVG]);
++
++ Adapter->RSSI[TYPE_BEACON][TYPE_AVG] =
++ CAL_RSSI(Adapter->SNR[TYPE_BEACON][TYPE_AVG] / AVG_SCALE,
++ Adapter->NF[TYPE_BEACON][TYPE_AVG] / AVG_SCALE);
++
++ PRINTM(INFO, "Beacon RSSI value = 0x%x\n",
++ Adapter->RSSI[TYPE_BEACON][TYPE_AVG]);
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++#ifdef MFG_CMD_SUPPORT
++/**
++ * @brief This function handles the command response of mfg_cmd
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_mfg_cmd(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ PRINTM(INFO, "MFG command response size = %d\n", resp->Size);
++
++ resp->Size = MIN(resp->Size, MRVDRV_SIZE_OF_CMD_BUFFER);
++ memcpy(Adapter->CurCmd->pdata_buf, (void *) resp, resp->Size);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++#endif /* MFG_CMD_SUPPORT */
++
++/**
++ * @brief This function handles the command response of cal_data_ext.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_802_11_cal_data_ext(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ HostCmd_DS_802_11_CAL_DATA_EXT *pCalDataExt = &resp->params.caldataext;
++
++ ENTER();
++
++ if (wlan_le16_to_cpu(pCalDataExt->Action) == HostCmd_ACT_GEN_GET) {
++ pCalDataExt->Action = wlan_le16_to_cpu(pCalDataExt->Action);
++ pCalDataExt->Revision = wlan_le16_to_cpu(pCalDataExt->Revision);
++ pCalDataExt->CalDataLen = wlan_le16_to_cpu(pCalDataExt->CalDataLen);
++
++ memmove(Adapter->CurCmd->pdata_buf,
++ pCalDataExt, pCalDataExt->CalDataLen + CAL_DATA_HEADER_LEN);
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function handles the command response of eeprom_access
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_ret_802_11_eeprom_access(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ wlan_ioctl_regrdwr *pBuf =
++ (wlan_ioctl_regrdwr *) Adapter->CurCmd->pdata_buf;
++
++ PRINTM(INFO, "eeprom read len=%x\n",
++ wlan_le16_to_cpu(resp->params.rdeeprom.ByteCount));
++ if (pBuf->NOB < wlan_le16_to_cpu(resp->params.rdeeprom.ByteCount)) {
++ pBuf->NOB = 0;
++ PRINTM(INFO, "eeprom read return length is too big\n");
++ return WLAN_STATUS_FAILURE;
++ }
++ pBuf->NOB = wlan_le16_to_cpu(resp->params.rdeeprom.ByteCount);
++ if (pBuf->NOB > 0) {
++ memcpy(&pBuf->Value, (u8 *) & resp->params.rdeeprom.Value, pBuf->NOB);
++ HEXDUMP("EEPROM", (char *) &pBuf->Value, pBuf->NOB);
++ }
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function handles the command response of get_log
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_ret_get_log(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ HostCmd_DS_802_11_GET_LOG *LogMessage =
++ (HostCmd_DS_802_11_GET_LOG *) & resp->params.glog;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ /* TODO Convert it to Big Endian before copy */
++ memcpy(&Adapter->LogMsg, LogMessage, sizeof(HostCmd_DS_802_11_GET_LOG));
++ endian_convert_GET_LOG(Adapter->LogMsg);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++static void
++wlan_ret_802_11_IBSS_Coalesced_Status(wlan_private * priv,
++ HostCmd_DS_COMMAND * resp)
++{
++ HostCmd_DS_802_11_IBSS_Status *IBSSStatusRsp;
++ wlan_adapter *Adapter;
++ union iwreq_data wrqu;
++ u8 nullMac[6] = { 0, 0, 0, 0, 0, 0 };
++
++ Adapter = priv->adapter;
++ IBSSStatusRsp = &(resp->params.ibssCoalescing);
++
++ if (Adapter->CurCmd->pdata_buf)
++ *(int *) Adapter->CurCmd->pdata_buf = IBSSStatusRsp->Enable;
++
++ if (wlan_le16_to_cpu(IBSSStatusRsp->Action) == HostCmd_ACT_SET) {
++ return;
++ }
++
++ PRINTM(INFO, "New BSSID %x:%x:%x:%x:%x:%x\n",
++ IBSSStatusRsp->BSSID[0],
++ IBSSStatusRsp->BSSID[1],
++ IBSSStatusRsp->BSSID[2],
++ IBSSStatusRsp->BSSID[3],
++ IBSSStatusRsp->BSSID[4], IBSSStatusRsp->BSSID[5]);
++
++ /* if rsp has NULL BSSID, Just return.. No Action */
++ if (!memcmp(IBSSStatusRsp->BSSID, nullMac, MRVDRV_ETH_ADDR_LEN)) {
++ PRINTM(MSG, "New BSSID is NULL\n");
++ return;
++ }
++
++ /* if BSSID is diff, Send evnet to Linux */
++ if (memcmp(Adapter->CurBssParams.BSSDescriptor.MacAddress,
++ IBSSStatusRsp->BSSID, ETH_ALEN)) {
++ memcpy((void *) Adapter->CurBssParams.BSSDescriptor.MacAddress,
++ (void *) IBSSStatusRsp->BSSID, MRVDRV_ETH_ADDR_LEN);
++
++ /* Beacon Interval and ATIM window */
++ Adapter->CurBssParams.BSSDescriptor.BeaconPeriod
++ = IBSSStatusRsp->BeaconInterval;
++ Adapter->CurBssParams.BSSDescriptor.ATIMWindow
++ = IBSSStatusRsp->ATIMWindow;
++ //ERP Information
++ Adapter->CurBssParams.BSSDescriptor.ERPFlags =
++ (u8) IBSSStatusRsp->UseGRateProtection;
++
++ memset(&wrqu, 0, sizeof(wrqu));
++ memcpy(wrqu.ap_addr.sa_data,
++ Adapter->CurBssParams.BSSDescriptor.MacAddress, ETH_ALEN);
++ wrqu.ap_addr.sa_family = ARPHRD_ETHER;
++
++ wireless_send_event(priv->wlan_dev.netdev, SIOCGIWAP, &wrqu, NULL);
++
++ }
++}
++
++/********************************************************
++ Global Functions
++********************************************************/
++
++/**
++ * @brief This function stop tx/rx queue and free skb
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++void
++wlan_clean_txrx(wlan_private * priv)
++{
++ os_stop_queue(priv);
++ os_carrier_off(priv);
++
++ wmm_stop_queue(priv);
++ wmm_cleanup_queues(priv);
++
++ /* Free Tx and Rx packets */
++ os_free_tx_packet(priv);
++ wlan_send_rxskbQ(priv);
++}
++
++/**
++ * @brief This function handles the command response
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_process_rx_command(wlan_private * priv)
++{
++ u16 RespCmd;
++ HostCmd_DS_COMMAND *resp;
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++ ulong flags;
++ u16 Result;
++
++ ENTER();
++
++ /* Now we got response from FW, cancel the command timer */
++ if (Adapter->CommandTimerIsSet) {
++ CancelTimer(&Adapter->MrvDrvCommandTimer);
++ Adapter->CommandTimerIsSet = FALSE;
++ }
++
++ if (!Adapter->CurCmd) {
++ resp = (HostCmd_DS_COMMAND *) priv->wlan_dev.upld_buf;
++ resp->Command = wlan_le16_to_cpu(resp->Command);
++ PRINTM(ERROR, "CMD_RESP: NULL CurCmd, 0x%x\n", resp->Command);
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++ Adapter->num_cmd_timeout = 0;
++
++ DBG_HEXDUMP(CMD_D, "CMD_RESP", Adapter->CurCmd->BufVirtualAddr,
++ priv->wlan_dev.upld_len);
++
++ resp = (HostCmd_DS_COMMAND *) (Adapter->CurCmd->BufVirtualAddr);
++
++ resp->Command = wlan_le16_to_cpu(resp->Command);
++ resp->Size = wlan_le16_to_cpu(resp->Size);
++ resp->SeqNum = wlan_le16_to_cpu(resp->SeqNum);
++ resp->Result = wlan_le16_to_cpu(resp->Result);
++
++ RespCmd = resp->Command;
++ Result = resp->Result;
++
++ /* Save the last command response to debug log */
++ Adapter->dbg.LastCmdRespIndex =
++ (Adapter->dbg.LastCmdRespIndex + 1) % DBG_CMD_NUM;
++ Adapter->dbg.LastCmdRespId[Adapter->dbg.LastCmdRespIndex] = RespCmd;
++
++ PRINTM(CMND, "CMD_RESP: 0x%x, result %d, len %d, seqno %d @ %lu\n",
++ RespCmd, Result, resp->Size, resp->SeqNum, os_time_get());
++
++ if (!(RespCmd & 0x8000)) {
++ PRINTM(ERROR, "CMD_RESP: Invalid response to command!");
++ Adapter->CurCmdRetCode = WLAN_STATUS_FAILURE;
++ CleanupAndInsertCmd(priv, Adapter->CurCmd);
++ spin_lock_irqsave(&Adapter->QueueSpinLock, flags);
++ Adapter->CurCmd = NULL;
++ spin_unlock_irqrestore(&Adapter->QueueSpinLock, flags);
++
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ /* Store the response code to CurCmdRetCode. */
++ Adapter->CurCmdRetCode = resp->Result;
++
++ if (RespCmd == HostCmd_RET_802_11_PS_MODE) {
++ HostCmd_DS_802_11_PS_MODE *psmode;
++
++ psmode = &resp->params.psmode;
++ PRINTM(INFO, "CMD_RESP: PS_MODE cmd reply result=%#x action=0x%X\n",
++ resp->Result, psmode->Action);
++ psmode->Action = wlan_cpu_to_le16(psmode->Action);
++
++ if (Result) {
++ PRINTM(ERROR, "CMD_RESP: PS command failed- %#x \n",
++ resp->Result);
++ if (Adapter->InfrastructureMode == Wlan802_11IBSS) {
++ /*
++ * We should not re-try enter-ps command in
++ * ad-hoc mode. It takes place in
++ * ExecuteNextCommand().
++ */
++ if (psmode->Action == HostCmd_SubCmd_Enter_PS)
++ Adapter->PSMode = Wlan802_11PowerModeCAM;
++ }
++ } else if (psmode->Action == HostCmd_SubCmd_Enter_PS) {
++ Adapter->NeedToWakeup = FALSE;
++ Adapter->PSState = PS_STATE_AWAKE;
++
++ if (Adapter->MediaConnectStatus != WlanMediaStateConnected) {
++ /*
++ * When Deauth Event received before Enter_PS command
++ * response, We need to wake up the firmware.
++ */
++ PRINTM(INFO,
++ "CMD_RESP: Disconnected, Going to invoke PSWakeup\n");
++ PSWakeup(priv, 0);
++ }
++ } else if (psmode->Action == HostCmd_SubCmd_Exit_PS) {
++ Adapter->NeedToWakeup = FALSE;
++ Adapter->PSState = PS_STATE_FULL_POWER;
++
++ } else {
++ PRINTM(INFO, "CMD_RESP: PS- Action=0x%X\n", psmode->Action);
++ }
++
++ CleanupAndInsertCmd(priv, Adapter->CurCmd);
++ spin_lock_irqsave(&Adapter->QueueSpinLock, flags);
++ Adapter->CurCmd = NULL;
++ spin_unlock_irqrestore(&Adapter->QueueSpinLock, flags);
++
++ ret = WLAN_STATUS_SUCCESS;
++ goto done;
++ }
++
++ if (Adapter->CurCmd->CmdFlags & CMD_F_HOSTCMD) {
++ /* Copy the response back to response buffer */
++ memcpy(Adapter->CurCmd->pdata_buf, resp, resp->Size);
++
++ Adapter->CurCmd->CmdFlags &= ~CMD_F_HOSTCMD;
++
++ if ((Result == HostCmd_RESULT_OK)
++ && (RespCmd == HostCmd_RET_802_11_HOST_SLEEP_CFG)) {
++ ret = wlan_ret_host_sleep_cfg(priv, resp);
++ }
++ } else {
++ /* If the command is not successful, cleanup and return failure */
++ if ((Result != HostCmd_RESULT_OK || !(RespCmd & 0x8000))) {
++ PRINTM(ERROR, "CMD_RESP: cmd %#x error, result=%#x\n",
++ resp->Command, resp->Result);
++ /*
++ * Handling errors here
++ */
++ switch (RespCmd) {
++ case HostCmd_RET_HW_SPEC_INFO:
++ PRINTM(INFO, "CMD_RESP: HW spec command Failed\n");
++ break;
++
++ }
++
++ CleanupAndInsertCmd(priv, Adapter->CurCmd);
++ spin_lock_irqsave(&Adapter->QueueSpinLock, flags);
++ Adapter->CurCmd = NULL;
++ spin_unlock_irqrestore(&Adapter->QueueSpinLock, flags);
++
++ return WLAN_STATUS_FAILURE;
++ }
++
++ switch (RespCmd) {
++ case HostCmd_RET_MAC_REG_ACCESS:
++ case HostCmd_RET_BBP_REG_ACCESS:
++ case HostCmd_RET_RF_REG_ACCESS:
++ ret = wlan_ret_reg_access(priv, RespCmd, resp);
++
++ break;
++
++ case HostCmd_RET_HW_SPEC_INFO:
++ ret = wlan_ret_get_hw_spec(priv, resp);
++ break;
++
++ case HostCmd_RET_802_11_BG_SCAN_QUERY:
++ {
++ union iwreq_data wrqu;
++
++ ret = wlan_ret_802_11_scan(priv, resp);
++ memset(&wrqu, 0, sizeof(union iwreq_data));
++ wireless_send_event(priv->wlan_dev.netdev, SIOCGIWSCAN, &wrqu,
++ NULL);
++ PRINTM(INFO, "CMD_RESP: BG_SCAN result is ready!\n");
++ break;
++ }
++ case HostCmd_RET_802_11_SCAN:
++ ret = wlan_ret_802_11_scan(priv, resp);
++ break;
++
++ case HostCmd_RET_MAC_CONTROL:
++ ret = wlan_ret_mac_control(priv, resp);
++ break;
++
++ case HostCmd_RET_802_11_GET_LOG:
++ ret = wlan_ret_get_log(priv, resp);
++ break;
++
++ case HostCmd_RET_802_11_ASSOCIATE:
++ ret = wlan_ret_802_11_associate(priv, resp);
++ break;
++
++ case HostCmd_RET_802_11_DEAUTHENTICATE:
++ ret = wlan_ret_802_11_disassociate(priv, resp);
++ break;
++
++ case HostCmd_RET_802_11_SET_WEP:
++ ret = wlan_ret_802_11_set_wep(priv, resp);
++ break;
++
++ case HostCmd_RET_802_11_AD_HOC_START:
++ case HostCmd_RET_802_11_AD_HOC_JOIN:
++ ret = wlan_ret_802_11_ad_hoc(priv, resp);
++ break;
++
++ case HostCmd_RET_802_11_RESET:
++ ret = wlan_ret_802_11_reset(priv, resp);
++ break;
++
++ case HostCmd_RET_802_11_SNMP_MIB:
++ ret = wlan_ret_802_11_snmp_mib(priv, resp);
++ break;
++
++ case HostCmd_RET_802_11_RF_TX_POWER:
++ ret = wlan_ret_802_11_rf_tx_power(priv, resp);
++ break;
++
++ case HostCmd_RET_802_11_RADIO_CONTROL:
++ ret = wlan_ret_802_11_radio_control(priv, resp);
++ break;
++
++ case HostCmd_RET_802_11_HOST_SLEEP_CFG:
++ ret = wlan_ret_host_sleep_cfg(priv, resp);
++ break;
++ case HostCmd_RET_802_11_WAKEUP_CONFIRM:
++ wlan_host_sleep_deactivated_event(priv);
++ break;
++ case HostCmd_RET_802_11_HOST_SLEEP_ACTIVATE:
++ if (Adapter->bHostSleepConfigured
++ && Adapter->HSCfg.gap == HOST_SLEEP_CFG_GAP_FF)
++ Adapter->bWakeupDevRequired = TRUE;
++ wlan_host_sleep_activated_event(priv);
++ break;
++
++ case HostCmd_RET_802_11_RF_ANTENNA:
++ ret = wlan_ret_802_11_rf_antenna(priv, resp);
++ break;
++
++ case HostCmd_RET_MAC_MULTICAST_ADR:
++ ret = wlan_ret_mac_multicast_adr(priv, resp);
++ break;
++
++ case HostCmd_RET_802_11_RATE_ADAPT_RATESET:
++ ret = wlan_ret_802_11_rate_adapt_rateset(priv, resp);
++ break;
++ case HostCmd_RET_802_11_RF_CHANNEL:
++ ret = wlan_ret_802_11_rf_channel(priv, resp);
++ break;
++
++ case HostCmd_RET_802_11_RSSI:
++ ret = wlan_ret_802_11_rssi(priv, resp);
++ break;
++
++ case HostCmd_RET_802_11_MAC_ADDRESS:
++ ret = wlan_ret_802_11_mac_address(priv, resp);
++ break;
++
++#ifdef MFG_CMD_SUPPORT
++ case HostCmd_RET_MFG_COMMAND:
++ ret = wlan_ret_mfg_cmd(priv, resp);
++ break;
++#endif
++ case HostCmd_RET_802_11_AD_HOC_STOP:
++ ret = wlan_ret_802_11_ad_hoc_stop(priv, resp);
++ break;
++
++ case HostCmd_RET_802_11_CAL_DATA_EXT:
++ ret = wlan_ret_802_11_cal_data_ext(priv, resp);
++ break;
++
++ case HostCmd_RET_802_11_KEY_MATERIAL:
++ ret = wlan_ret_802_11_key_material(priv, resp);
++ break;
++
++ case HostCmd_RET_802_11_EEPROM_ACCESS:
++ ret = wlan_ret_802_11_eeprom_access(priv, resp);
++ break;
++
++ case HostCmd_RET_802_11D_DOMAIN_INFO:
++ ret = wlan_ret_802_11d_domain_info(priv, resp);
++ break;
++
++ case HostCmd_RET_802_11_SLEEP_PARAMS:
++ ret = wlan_ret_802_11_sleep_params(priv, resp);
++ break;
++ case HostCmd_RET_802_11_BCA_CONFIG_TIMESHARE:
++ ret = wlan_ret_802_11_bca_timeshare(priv, resp);
++ break;
++ case HostCmd_RET_802_11_INACTIVITY_TIMEOUT:
++ *((u16 *) Adapter->CurCmd->pdata_buf) =
++ wlan_le16_to_cpu(resp->params.inactivity_timeout.Timeout);
++ break;
++ case HostCmd_RET_802_11_BG_SCAN_CONFIG:
++ break;
++
++ case HostCmd_RET_802_11_FW_WAKE_METHOD:
++ ret = wlan_ret_fw_wakeup_method(priv, resp);
++ break;
++
++ case HostCmd_RET_802_11_SLEEP_PERIOD:
++ ret = wlan_ret_802_11_sleep_period(priv, resp);
++ break;
++ case HostCmd_RET_WMM_GET_STATUS:
++ ret = wlan_cmdresp_wmm_get_status(priv, resp);
++ break;
++ case HostCmd_RET_WMM_ADDTS_REQ:
++ ret = wlan_cmdresp_wmm_addts_req(priv, resp);
++ break;
++ case HostCmd_RET_WMM_DELTS_REQ:
++ ret = wlan_cmdresp_wmm_delts_req(priv, resp);
++ break;
++ case HostCmd_RET_WMM_QUEUE_CONFIG:
++ ret = wlan_cmdresp_wmm_queue_config(priv, resp);
++ break;
++ case HostCmd_RET_WMM_QUEUE_STATS:
++ ret = wlan_cmdresp_wmm_queue_stats(priv, resp);
++ break;
++ case HostCmd_RET_TX_PKT_STATS:
++ memcpy(Adapter->CurCmd->pdata_buf,
++ &resp->params.txPktStats, sizeof(HostCmd_DS_TX_PKT_STATS));
++ ret = WLAN_STATUS_SUCCESS;
++ break;
++ case HostCmd_RET_802_11_TPC_CFG:
++ memmove(Adapter->CurCmd->pdata_buf,
++ &resp->params.tpccfg, sizeof(HostCmd_DS_802_11_TPC_CFG));
++ break;
++ case HostCmd_RET_802_11_LED_CONTROL:
++ {
++ HostCmd_DS_802_11_LED_CTRL *pLedCtrl = &resp->params.ledgpio;
++ MrvlIEtypes_LedGpio_t *pGpio = &pLedCtrl->LedGpio;
++ MrvlIEtypes_LedBehavior_t *pBehavior = pLedCtrl->LedBehavior;
++
++ pLedCtrl->Action = wlan_le16_to_cpu(pLedCtrl->Action);
++ pLedCtrl->LedNums = wlan_le16_to_cpu(pLedCtrl->LedNums);
++ pGpio->Header.Type = wlan_le16_to_cpu(pGpio->Header.Type);
++ pGpio->Header.Len = wlan_le16_to_cpu(pGpio->Header.Len);
++ pBehavior->Header.Type =
++ wlan_le16_to_cpu(pBehavior->Header.Type);
++ pBehavior->Header.Len =
++ wlan_le16_to_cpu(pBehavior->Header.Len);
++ memmove(Adapter->CurCmd->pdata_buf, &resp->params.ledgpio,
++ sizeof(HostCmd_DS_802_11_LED_CTRL));
++ break;
++ }
++
++ case HostCmd_RET_GET_TSF:
++ resp->params.gettsf.TsfValue =
++ wlan_le64_to_cpu(resp->params.gettsf.TsfValue);
++ memcpy(priv->adapter->CurCmd->pdata_buf,
++ &resp->params.gettsf.TsfValue, sizeof(u64));
++ break;
++ case HostCmd_RTE_802_11_TX_RATE_QUERY:
++ priv->adapter->TxRate =
++ wlan_le16_to_cpu(resp->params.txrate.TxRate);
++ break;
++ case HostCmd_RET_802_11_IBSS_COALESCING_STATUS:
++ wlan_ret_802_11_IBSS_Coalesced_Status(priv, resp);
++ break;
++
++ case HostCmd_RET_SDIO_GPIO_INT_CONFIG:
++ memmove(Adapter->CurCmd->pdata_buf,
++ &resp->params.sdio_int,
++ sizeof(HostCmd_DS_SDIO_INT_CONFIG));
++ break;
++
++ case HostCmd_RET_SDIO_PULL_CTRL:
++ memmove(Adapter->CurCmd->pdata_buf,
++ &resp->params.sdiopullctl,
++ sizeof(HostCmd_DS_SDIO_PULL_CTRL));
++ break;
++
++ case HostCmd_RET_802_11_LDO_CONFIG:
++ resp->params.ldocfg.Action =
++ wlan_le16_to_cpu(resp->params.ldocfg.Action);
++ resp->params.ldocfg.PMSource =
++ wlan_le16_to_cpu(resp->params.ldocfg.PMSource);
++ memmove(Adapter->CurCmd->pdata_buf, &resp->params.ldocfg,
++ sizeof(HostCmd_DS_802_11_LDO_CONFIG));
++ break;
++
++ case HostCmd_RET_VERSION_EXT:
++ memcpy(Adapter->CurCmd->pdata_buf,
++ &resp->params.verext, sizeof(HostCmd_DS_VERSION_EXT));
++ break;
++
++ default:
++ PRINTM(INFO, "CMD_RESP: Unknown command response %#x\n",
++ resp->Command);
++ break;
++ }
++ }
++
++ if (Adapter->CurCmd) {
++ /* Clean up and Put current command back to CmdFreeQ */
++ CleanupAndInsertCmd(priv, Adapter->CurCmd);
++ spin_lock_irqsave(&Adapter->QueueSpinLock, flags);
++ Adapter->CurCmd = NULL;
++ spin_unlock_irqrestore(&Adapter->QueueSpinLock, flags);
++ }
++
++ done:
++ LEAVE();
++ return ret;
++}
++
++#if WIRELESS_EXT >= 18
++/**
++ * @brief This function sends mic error event to application.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @para event MIC ERROR EVENT.
++ * @return n/a
++ */
++void
++send_mic_error_event(wlan_private * priv, u32 event)
++{
++ union iwreq_data iwrq;
++ struct iw_michaelmicfailure mic;
++
++ ENTER();
++
++ memset(&iwrq, 0, sizeof(iwrq));
++ memset(&mic, 0, sizeof(mic));
++ if (event == MACREG_INT_CODE_MIC_ERR_UNICAST) {
++ mic.flags = IW_MICFAILURE_PAIRWISE;
++ } else {
++ mic.flags = IW_MICFAILURE_GROUP;
++ }
++
++ iwrq.data.pointer = &mic;
++ iwrq.data.length = sizeof(mic);
++
++ wireless_send_event(priv->wlan_dev.netdev, IWEVMICHAELMICFAILURE, &iwrq,
++ (u8 *) & mic);
++
++ LEAVE();
++ return;
++}
++#endif
++
++/**
++ * @brief This function handles events generated by firmware
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_process_event(wlan_private * priv)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_adapter *Adapter = priv->adapter;
++ u32 eventcause = Adapter->EventCause >> SBI_EVENT_CAUSE_SHIFT;
++
++ ENTER();
++
++ /* Save the last event to debug log */
++ Adapter->dbg.LastEventIndex =
++ (Adapter->dbg.LastEventIndex + 1) % DBG_CMD_NUM;
++ Adapter->dbg.LastEvent[Adapter->dbg.LastEventIndex] = eventcause;
++
++ if (eventcause != MACREG_INT_CODE_PS_SLEEP &&
++ eventcause != MACREG_INT_CODE_PS_AWAKE)
++ PRINTM(EVENT, "EVENT: 0x%x @ %lu\n", eventcause, os_time_get());
++
++ switch (eventcause) {
++ case MACREG_INT_CODE_DUMMY_HOST_WAKEUP_SIGNAL:
++ PRINTM(INFO, "EVENT: DUMMY_HOST_WAKEUP_SIGNAL\n");
++ if (!priv->adapter->HS_Activated) {
++ PRINTM(WARN, "DUMMY_HOST_WAKEUP_SIGNAL (HS_Deactivated)\n");
++ } else {
++ wlan_host_sleep_gpio_int_event(priv);
++ }
++ break;
++ case MACREG_INT_CODE_LINK_SENSED:
++ PRINTM(INFO, "EVENT: LINK_SENSED\n");
++ Adapter->AdhocLinkSensed = TRUE;
++ os_carrier_on(priv);
++ os_start_queue(priv);
++ wmm_start_queue(priv);
++ send_iwevcustom_event(priv, CUS_EVT_ADHOC_LINK_SENSED);
++ break;
++
++ case MACREG_INT_CODE_DEAUTHENTICATED:
++ PRINTM(INFO, "EVENT: Deauthenticated\n");
++ Adapter->dbg.num_event_deauth++;
++ HandleDisconnectEvent(priv);
++ break;
++
++ case MACREG_INT_CODE_DISASSOCIATED:
++ PRINTM(INFO, "EVENT: Disassociated\n");
++ Adapter->dbg.num_event_disassoc++;
++ HandleDisconnectEvent(priv);
++ break;
++
++ case MACREG_INT_CODE_LINK_LOST:
++ PRINTM(INFO, "EVENT: Link lost\n");
++ Adapter->dbg.num_event_link_lost++;
++ HandleDisconnectEvent(priv);
++ break;
++
++ case MACREG_INT_CODE_PS_SLEEP:
++ PRINTM(INFO, "EVENT: SLEEP\n");
++ PRINTM(EVENT, "_");
++
++ /* handle unexpected PS SLEEP event */
++ if (Adapter->PSState == PS_STATE_FULL_POWER) {
++ PRINTM(INFO, "EVENT: In FULL POWER mode - ignore PS SLEEP\n");
++ break;
++ }
++ Adapter->PSState = PS_STATE_PRE_SLEEP;
++ PSConfirmSleep(priv, (u16) Adapter->PSMode);
++ break;
++
++ case MACREG_INT_CODE_PS_AWAKE:
++ PRINTM(INFO, "EVENT: AWAKE \n");
++ PRINTM(EVENT, "|");
++
++ /* handle unexpected PS AWAKE event */
++ if (Adapter->PSState == PS_STATE_FULL_POWER) {
++ PRINTM(INFO, "EVENT: In FULL POWER mode - ignore PS AWAKE\n");
++ break;
++ }
++
++ Adapter->TxLockFlag = FALSE;
++ if (TRUE == CheckLastPacketIndication(priv)) {
++ if (!priv->wlan_dev.dnld_sent && Adapter->gen_null_pkg) {
++ SendNullPacket(priv, MRVDRV_TxPD_POWER_MGMT_NULL_PACKET |
++ MRVDRV_TxPD_POWER_MGMT_LAST_PACKET);
++ Adapter->TxLockFlag = TRUE;
++ }
++ }
++
++ Adapter->PSState = PS_STATE_AWAKE;
++
++ if (Adapter->NeedToWakeup == TRUE) {
++ /*
++ * wait for the command processing to finish
++ * before resuming sending
++ * Adapter->NeedToWakeup will be set to FALSE
++ * in PSWakup()
++ */
++ PRINTM(INFO, "Waking up...\n");
++ PSWakeup(priv, 0);
++ }
++ break;
++
++ case MACREG_INT_CODE_DEEP_SLEEP_AWAKE:
++ sbi_reset_deepsleep_wakeup(priv);
++ PRINTM(INFO, "EVENT: DS_AWAKE\n");
++ if (priv->adapter->IsDeepSleep == TRUE) {
++ Adapter->IsDeepSleep = FALSE;
++ Adapter->bWakeupDevRequired = FALSE;
++ Adapter->WakeupTries = 0;
++
++ /*
++ * For auto DS + BGS case, some delay is needed to
++ * avoid going back to DS before getting BGS result
++ */
++ if (Adapter->IsAutoDeepSleepEnabled &&
++ Adapter->bgScanConfig->Enable)
++ os_sched_timeout(10);
++ priv->wlan_dev.dnld_sent = DNLD_RES_RECEIVED;
++ priv->adapter->HisRegCpy |= HIS_TxDnLdRdy;
++ }
++ send_iwevcustom_event(priv, CUS_EVT_DEEP_SLEEP_AWAKE);
++ wake_up_interruptible(&Adapter->ds_awake_q);
++ break;
++
++ case MACREG_INT_CODE_HOST_SLEEP_AWAKE:
++ PRINTM(INFO, "EVENT: HS_AWAKE\n");
++ Adapter->bWakeupDevRequired = FALSE;
++
++ Adapter->WakeupTries = 0;
++
++ sbi_reset_deepsleep_wakeup(priv);
++
++ /*
++ * in BG SCAN mode w/ deep sleep, WAKE UP event
++ * will be sent first, Deep Sleep Awake will
++ * be sent later.
++ */
++ if (priv->adapter->IsDeepSleep == TRUE) {
++ priv->adapter->IsDeepSleep = FALSE;
++ priv->wlan_dev.dnld_sent = DNLD_RES_RECEIVED;
++ priv->adapter->HisRegCpy |= HIS_TxDnLdRdy;
++ }
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_WAKEUP_CONFIRM,
++ 0, 0, 0, NULL);
++ break;
++
++ case MACREG_INT_CODE_MIC_ERR_UNICAST:
++ PRINTM(INFO, "EVENT: UNICAST MIC ERROR\n");
++#if WIRELESS_EXT >= 18
++ send_mic_error_event(priv, MACREG_INT_CODE_MIC_ERR_UNICAST);
++#else
++ send_iwevcustom_event(priv, CUS_EVT_MLME_MIC_ERR_UNI);
++#endif
++ break;
++
++ case MACREG_INT_CODE_MIC_ERR_MULTICAST:
++ PRINTM(INFO, "EVENT: MULTICAST MIC ERROR\n");
++#if WIRELESS_EXT >= 18
++ send_mic_error_event(priv, MACREG_INT_CODE_MIC_ERR_MULTICAST);
++#else
++ send_iwevcustom_event(priv, CUS_EVT_MLME_MIC_ERR_MUL);
++#endif
++ break;
++ case MACREG_INT_CODE_MIB_CHANGED:
++ case MACREG_INT_CODE_INIT_DONE:
++ break;
++
++ case MACREG_INT_CODE_ADHOC_BCN_LOST:
++ PRINTM(INFO, "EVENT: ADHOC_BCN_LOST\n");
++ Adapter->AdhocLinkSensed = FALSE;
++ wlan_clean_txrx(priv);
++ send_iwevcustom_event(priv, CUS_EVT_ADHOC_BCN_LOST);
++ break;
++
++ case MACREG_INT_CODE_BG_SCAN_REPORT:
++ PRINTM(INFO, "EVENT: BGS_REPORT\n");
++ Adapter->bgScanConfig->Enable = FALSE;
++ ret = sendBgScanQueryCmd(priv);
++ break;
++ case MACREG_INT_CODE_WMM_STATUS_CHANGE:
++ PRINTM(INFO, "EVENT: WMM status changed\n");
++ ret = sendWMMStatusChangeCmd(priv);
++ break;
++
++ case MACREG_INT_CODE_RSSI_LOW:
++ PRINTM(INFO, "EVENT: RSSI_LOW\n");
++ send_iwevcustom_event(priv, CUS_EVT_BEACON_RSSI_LOW);
++ break;
++ case MACREG_INT_CODE_SNR_LOW:
++ PRINTM(INFO, "EVENT: SNR_LOW\n");
++ send_iwevcustom_event(priv, CUS_EVT_BEACON_SNR_LOW);
++ break;
++ case MACREG_INT_CODE_MAX_FAIL:
++ PRINTM(INFO, "EVENT: MAX_FAIL\n");
++ send_iwevcustom_event(priv, CUS_EVT_MAX_FAIL);
++ break;
++ case MACREG_INT_CODE_RSSI_HIGH:
++ PRINTM(INFO, "EVENT: RSSI_HIGH\n");
++ send_iwevcustom_event(priv, CUS_EVT_BEACON_RSSI_HIGH);
++ break;
++ case MACREG_INT_CODE_SNR_HIGH:
++ PRINTM(INFO, "EVENT: SNR_HIGH\n");
++ send_iwevcustom_event(priv, CUS_EVT_BEACON_SNR_HIGH);
++ break;
++ case MACREG_INT_CODE_PRE_BEACON_LOST:
++ PRINTM(INFO, "EVENT: Pre-Beacon Lost\n");
++ send_iwevcustom_event(priv, CUS_EVT_PRE_BEACON_LOST);
++ break;
++ case MACREG_INT_CODE_IBSS_COALESCED:
++ PRINTM(INFO, "EVENT: IBSS_COALESCED\n");
++ ret = sendADHOCBSSIDQuery(priv);
++ break;
++ default:
++ PRINTM(INFO, "EVENT: unknown event id: %#x\n", eventcause);
++ break;
++ }
++
++ Adapter->EventCause = 0;
++ LEAVE();
++ return ret;
++}
+diff --git a/drivers/net/wireless/marvell8686/wlan_debug.c b/drivers/net/wireless/marvell8686/wlan_debug.c
+new file mode 100644
+index 0000000..8a980aa
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_debug.c
+@@ -0,0 +1,281 @@
++/** @file wlan_debug.c
++ * @brief This file contains functions for debug proc file.
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2007
++ */
++/********************************************************
++Change log:
++ 10/04/05: Add Doxygen format comments
++ 01/05/06: Add kernel 2.6.x support
++
++********************************************************/
++
++#include "include.h"
++
++#ifdef CONFIG_MARVELL_8686_PROC_FS
++/********************************************************
++ Local Variables
++********************************************************/
++
++#define item_size(n) (sizeof ((wlan_adapter *)0)->n)
++#define item_addr(n) ((u32) &((wlan_adapter *)0)->n)
++
++#define item_dbg_size(n) (sizeof (((wlan_adapter *)0)->dbg.n))
++#define item_dbg_addr(n) ((u32) &(((wlan_adapter *)0)->dbg.n))
++
++#define item1_size(n) (sizeof ((wlan_dev_t *)0)->n)
++#define item1_addr(n) ((u32) &((wlan_dev_t *)0)->n)
++
++struct debug_data
++{
++ char name[32];
++ u32 size;
++ u32 addr;
++ u32 offset;
++};
++
++/* To debug any member of wlan_adapter or wlan_dev_t, simply add one line here.
++ */
++#define ITEMS_FROM_WLAN_DEV 1
++
++static struct debug_data items[] = {
++ {"IntCounter", item_size(IntCounter), 0, item_addr(IntCounter)},
++ {"ConnectStatus", item_size(MediaConnectStatus), 0,
++ item_addr(MediaConnectStatus)},
++ {"wmmQStp", item_size(wmm.queueStopped), 0, item_addr(wmm.queueStopped)},
++ {"wmmPkts", item_size(wmm.packetsQueued), 0,
++ item_addr(wmm.packetsQueued)},
++ {"wmmAcVo", item_size(wmm.packetsOut[WMM_AC_VO]), 0,
++ item_addr(wmm.packetsOut[WMM_AC_VO])},
++ {"wmmAcVi", item_size(wmm.packetsOut[WMM_AC_VI]), 0,
++ item_addr(wmm.packetsOut[WMM_AC_VI])},
++ {"wmmAcBE", item_size(wmm.packetsOut[WMM_AC_BE]), 0,
++ item_addr(wmm.packetsOut[WMM_AC_BE])},
++ {"wmmAcBK", item_size(wmm.packetsOut[WMM_AC_BK]), 0,
++ item_addr(wmm.packetsOut[WMM_AC_BK])},
++ {"PSMode", item_size(PSMode), 0, item_addr(PSMode)},
++ {"PSState", item_size(PSState), 0, item_addr(PSState)},
++ {"IsDeepSleep", item_size(IsDeepSleep), 0, item_addr(IsDeepSleep)},
++ {"IsAutoDeepSleepEnabled", item_size(IsAutoDeepSleepEnabled), 0,
++ item_addr(IsAutoDeepSleepEnabled)},
++ {"WakeupDevReq", item_size(bWakeupDevRequired), 0,
++ item_addr(bWakeupDevRequired)},
++ {"WakeupTries", item_size(WakeupTries), 0, item_addr(WakeupTries)},
++ {"HS_Configured", item_size(bHostSleepConfigured), 0,
++ item_addr(bHostSleepConfigured)},
++ {"HS_Activated", item_size(HS_Activated), 0, item_addr(HS_Activated)},
++ {"num_tx_timeout", item_dbg_size(num_tx_timeout), 0,
++ item_dbg_addr(num_tx_timeout)},
++ {"num_cmd_timeout", item_dbg_size(num_cmd_timeout), 0,
++ item_dbg_addr(num_cmd_timeout)},
++ {"TimeoutCmdId", item_dbg_size(TimeoutCmdId), 0,
++ item_dbg_addr(TimeoutCmdId)},
++ {"TimeoutCmdAct", item_dbg_size(TimeoutCmdAct), 0,
++ item_dbg_addr(TimeoutCmdAct)},
++ {"LastCmdId", item_dbg_size(LastCmdId), 0, item_dbg_addr(LastCmdId)},
++ {"LastCmdAct", item_dbg_size(LastCmdAct), 0, item_dbg_addr(LastCmdAct)},
++ {"LastCmdIndex", item_dbg_size(LastCmdIndex), 0,
++ item_dbg_addr(LastCmdIndex)},
++ {"LastCmdRespId", item_dbg_size(LastCmdRespId), 0,
++ item_dbg_addr(LastCmdRespId)},
++ {"LastCmdRespIndex", item_dbg_size(LastCmdRespIndex), 0,
++ item_dbg_addr(LastCmdRespIndex)},
++ {"LastEvent", item_dbg_size(LastEvent), 0, item_dbg_addr(LastEvent)},
++ {"LastEventIndex", item_dbg_size(LastEventIndex), 0,
++ item_dbg_addr(LastEventIndex)},
++ {"num_cmd_h2c_fail", item_dbg_size(num_cmd_host_to_card_failure), 0,
++ item_dbg_addr(num_cmd_host_to_card_failure)},
++ {"num_cmd_sleep_cfm_fail",
++ item_dbg_size(num_cmd_sleep_cfm_host_to_card_failure), 0,
++ item_dbg_addr(num_cmd_sleep_cfm_host_to_card_failure)},
++ {"num_tx_h2c_fail", item_dbg_size(num_tx_host_to_card_failure), 0,
++ item_dbg_addr(num_tx_host_to_card_failure)},
++ {"num_evt_deauth", item_dbg_size(num_event_deauth), 0,
++ item_dbg_addr(num_event_deauth)},
++ {"num_evt_disassoc", item_dbg_size(num_event_disassoc), 0,
++ item_dbg_addr(num_event_disassoc)},
++ {"num_evt_link_lost", item_dbg_size(num_event_link_lost), 0,
++ item_dbg_addr(num_event_link_lost)},
++ {"num_cmd_deauth", item_dbg_size(num_cmd_deauth), 0,
++ item_dbg_addr(num_cmd_deauth)},
++ {"num_cmd_assoc_ok", item_dbg_size(num_cmd_assoc_success), 0,
++ item_dbg_addr(num_cmd_assoc_success)},
++ {"num_cmd_assoc_fail", item_dbg_size(num_cmd_assoc_failure), 0,
++ item_dbg_addr(num_cmd_assoc_failure)},
++
++ {"dnld_sent", item1_size(dnld_sent), 0, item1_addr(dnld_sent)},
++};
++
++static int num_of_items = sizeof(items) / sizeof(items[0]);
++
++/********************************************************
++ Global Variables
++********************************************************/
++
++/********************************************************
++ Local Functions
++********************************************************/
++/**
++ * @brief proc read function
++ *
++ * @param page pointer to buffer
++ * @param s read data starting position
++ * @param off offset
++ * @param cnt counter
++ * @param eof end of file flag
++ * @param data data to output
++ * @return number of output data
++ */
++static int
++wlan_debug_read(char *page, char **s, off_t off, int cnt, int *eof,
++ void *data)
++{
++ int val = 0;
++ char *p = page;
++ int i;
++
++ struct debug_data *d = (struct debug_data *) data;
++
++ MODULE_GET;
++
++ for (i = 0; i < num_of_items; i++) {
++ if (d[i].size == 1)
++ val = *((u8 *) d[i].addr);
++ else if (d[i].size == 2)
++ val = *((u16 *) d[i].addr);
++ else if (d[i].size == 4)
++ val = *((u32 *) d[i].addr);
++ else {
++ int j;
++ p += sprintf(p, "%s=", d[i].name);
++ for (j = 0; j < d[i].size; j += 2) {
++ val = *(u16 *) (d[i].addr + j);
++ p += sprintf(p, "0x%x ", val);
++ }
++ p += sprintf(p, "\n");
++ continue;
++ }
++
++ if (strstr(d[i].name, "Id"))
++ p += sprintf(p, "%s=0x%x\n", d[i].name, val);
++ else
++ p += sprintf(p, "%s=%d\n", d[i].name, val);
++ }
++ MODULE_PUT;
++ return p - page;
++}
++
++/**
++ * @brief proc write function
++ *
++ * @param f file pointer
++ * @param buf pointer to data buffer
++ * @param cnt data number to write
++ * @param data data to write
++ * @return number of data
++ */
++static int
++wlan_debug_write(struct file *f, const char *buf, unsigned long cnt,
++ void *data)
++{
++ int r, i;
++ char *pdata;
++ char *p;
++ char *p0;
++ char *p1;
++ char *p2;
++ struct debug_data *d = (struct debug_data *) data;
++
++ MODULE_GET;
++
++ pdata = (char *) kmalloc(cnt, GFP_KERNEL);
++ if (pdata == NULL) {
++ MODULE_PUT;
++ return 0;
++ }
++
++ if (copy_from_user(pdata, buf, cnt)) {
++ PRINTM(INFO, "Copy from user failed\n");
++ kfree(pdata);
++ MODULE_PUT;
++ return 0;
++ }
++
++ p0 = pdata;
++ for (i = 0; i < num_of_items; i++) {
++ do {
++ p = strstr(p0, d[i].name);
++ if (p == NULL)
++ break;
++ p1 = strchr(p, '\n');
++ if (p1 == NULL)
++ break;
++ p0 = p1++;
++ p2 = strchr(p, '=');
++ if (!p2)
++ break;
++ p2++;
++ r = string_to_number(p2);
++ if (d[i].size == 1)
++ *((u8 *) d[i].addr) = (u8) r;
++ else if (d[i].size == 2)
++ *((u16 *) d[i].addr) = (u16) r;
++ else if (d[i].size == 4)
++ *((u32 *) d[i].addr) = (u32) r;
++ break;
++ } while (TRUE);
++ }
++ kfree(pdata);
++ MODULE_PUT;
++ return cnt;
++}
++
++/********************************************************
++ Global Functions
++********************************************************/
++/**
++ * @brief create debug proc file
++ *
++ * @param priv pointer wlan_private
++ * @param dev pointer net_device
++ * @return N/A
++ */
++void
++wlan_debug_entry(wlan_private * priv, struct net_device *dev)
++{
++ int i;
++ struct proc_dir_entry *r;
++
++ if (priv->proc_entry == NULL)
++ return;
++
++ for (i = 0; i < (num_of_items - ITEMS_FROM_WLAN_DEV); i++) {
++ items[i].addr = items[i].offset + (u32) priv->adapter;
++ }
++ for (i = num_of_items - ITEMS_FROM_WLAN_DEV; i < num_of_items; i++) {
++ items[i].addr = items[i].offset + (u32) & priv->wlan_dev;
++ }
++ r = create_proc_entry("debug", 0644, priv->proc_entry);
++ if (r == NULL)
++ return;
++
++ r->data = &items[0];
++ r->read_proc = wlan_debug_read;
++ r->write_proc = wlan_debug_write;
++ r->owner = THIS_MODULE;
++
++}
++
++/**
++ * @brief remove proc file
++ *
++ * @param priv pointer wlan_private
++ * @return N/A
++ */
++void
++wlan_debug_remove(wlan_private * priv)
++{
++ remove_proc_entry("debug", priv->proc_entry);
++}
++
++#endif
+diff --git a/drivers/net/wireless/marvell8686/wlan_decl.h b/drivers/net/wireless/marvell8686/wlan_decl.h
+new file mode 100644
+index 0000000..73aaad4
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_decl.h
+@@ -0,0 +1,109 @@
++/** @file wlan_decl.h
++ * @brief This file contains declaration referring to
++ * functions defined in other source files
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2007
++ */
++/******************************************************
++Change log:
++ 09/29/05: add Doxygen format comments
++ 01/05/06: Add kernel 2.6.x support
++ 01/11/06: Conditionalize new scan/join structures.
++ Move wlan_wext statics to their source file.
++******************************************************/
++
++#ifndef _WLAN_DECL_H_
++#define _WLAN_DECL_H_
++
++/** Function Prototype Declaration */
++int wlan_init_fw(wlan_private * priv);
++int wlan_tx_packet(wlan_private * priv, struct sk_buff *skb);
++void wlan_free_adapter(wlan_private * priv);
++
++int SendNullPacket(wlan_private * priv, u8 flags);
++BOOLEAN CheckLastPacketIndication(wlan_private * priv);
++
++void Wep_encrypt(wlan_private * priv, u8 * Buf, u32 Len);
++int FreeCmdBuffer(wlan_private * priv);
++void CleanUpCmdCtrlNode(CmdCtrlNode * pTempNode);
++CmdCtrlNode *GetFreeCmdCtrlNode(wlan_private * priv);
++
++void SetCmdCtrlNode(wlan_private * priv,
++ CmdCtrlNode * pTempNode,
++ WLAN_OID cmd_oid, u16 wait_option, void *pdata_buf);
++
++BOOLEAN Is_Command_Allowed(wlan_private * priv);
++
++int PrepareAndSendCommand(wlan_private * priv,
++ u16 cmd_no,
++ u16 cmd_action,
++ u16 wait_option, WLAN_OID cmd_oid, void *pdata_buf);
++
++void QueueCmd(wlan_adapter * Adapter, CmdCtrlNode * CmdNode, BOOLEAN addtail);
++
++int SetDeepSleep(wlan_private * priv, BOOLEAN bDeepSleep);
++int AllocateCmdBuffer(wlan_private * priv);
++int ExecuteNextCommand(wlan_private * priv);
++int wlan_process_event(wlan_private * priv);
++void wlan_interrupt(struct net_device *);
++u32 index_to_data_rate(u8 index);
++u8 data_rate_to_index(u32 rate);
++void HexDump(char *prompt, u8 * data, int len);
++void get_version(wlan_adapter * adapter, char *version, int maxlen);
++void wlan_read_write_rfreg(wlan_private * priv);
++
++#ifdef CONFIG_MARVELL_8686_PROC_FS
++/** The proc fs interface */
++void wlan_proc_entry(wlan_private * priv, struct net_device *dev);
++void wlan_proc_remove(wlan_private * priv);
++int string_to_number(char *s);
++#ifdef CONFIG_MARVELL_8686_DEBUG
++void wlan_debug_entry(wlan_private * priv, struct net_device *dev);
++void wlan_debug_remove(wlan_private * priv);
++#endif
++#endif
++int wlan_process_rx_command(wlan_private * priv);
++void wlan_process_tx(wlan_private * priv);
++void CleanupAndInsertCmd(wlan_private * priv, CmdCtrlNode * pTempCmd);
++void MrvDrvCommandTimerFunction(void *FunctionContext);
++
++#ifdef REASSOCIATION
++void MrvDrvReassocTimerFunction(void *FunctionContext);
++#endif /* REASSOCIATION */
++
++int wlan_set_essid(struct net_device *dev, struct iw_request_info *info,
++ struct iw_point *dwrq, char *extra);
++int wlan_set_regiontable(wlan_private * priv, u8 region, u8 band);
++
++void wlan_clean_txrx(wlan_private * priv);
++
++int wlan_host_sleep_activated_event(wlan_private * priv);
++int wlan_host_sleep_deactivated_event(wlan_private * priv);
++int wlan_host_sleep_gpio_int_event(wlan_private * priv);
++int wlan_deep_sleep_ioctl(wlan_private * priv, struct ifreq *rq);
++
++int ProcessRxedPacket(wlan_private * priv, struct sk_buff *);
++
++void PSSleep(wlan_private * priv, int wait_option);
++void PSConfirmSleep(wlan_private * priv, u16 PSMode);
++void PSWakeup(wlan_private * priv, int wait_option);
++
++void wlan_send_rxskbQ(wlan_private * priv);
++
++extern CHANNEL_FREQ_POWER *find_cfp_by_band_and_channel(wlan_adapter *
++ adapter, u8 band,
++ u16 channel);
++extern CHANNEL_FREQ_POWER *get_cfp_by_band_and_channel(u8 band, u16 channel,
++ REGION_CHANNEL *
++ region_channnel);
++
++extern void MacEventDisconnected(wlan_private * priv);
++
++#if WIRELESS_EXT > 14
++void send_iwevcustom_event(wlan_private * priv, s8 * str);
++#endif
++
++int fw_read(const char *name, u8 ** addr, u32 * len);
++void fw_buffer_free(u8 * addr);
++
++#endif /* _WLAN_DECL_H_ */
+diff --git a/drivers/net/wireless/marvell8686/wlan_defs.h b/drivers/net/wireless/marvell8686/wlan_defs.h
+new file mode 100644
+index 0000000..0f6202b
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_defs.h
+@@ -0,0 +1,623 @@
++/** @file wlan_defs.h
++ * @brief This header file contains global constant/enum definitions,
++ * global variable declaration.
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2007
++ */
++/*************************************************************
++Change log:
++ 10/11/05: add Doxygen format comments
++ 01/11/06: Add NELEMENTS, BAND_XX defines
++ 04/10/06: Add hostcmd generic API and power_adapt_cfg_ext command
++************************************************************/
++
++#ifndef _WLAN_DEFS_H_
++#define _WLAN_DEFS_H_
++
++#include "os_defs.h"
++
++/** Double-Word(32Bit) Bit definition */
++#define DW_BIT_0 0x00000001
++#define DW_BIT_1 0x00000002
++#define DW_BIT_2 0x00000004
++#define DW_BIT_3 0x00000008
++#define DW_BIT_4 0x00000010
++#define DW_BIT_5 0x00000020
++#define DW_BIT_6 0x00000040
++#define DW_BIT_7 0x00000080
++#define DW_BIT_8 0x00000100
++#define DW_BIT_9 0x00000200
++#define DW_BIT_10 0x00000400
++#define DW_BIT_11 0x00000800
++#define DW_BIT_12 0x00001000
++#define DW_BIT_13 0x00002000
++#define DW_BIT_14 0x00004000
++#define DW_BIT_15 0x00008000
++#define DW_BIT_16 0x00010000
++#define DW_BIT_17 0x00020000
++#define DW_BIT_18 0x00040000
++#define DW_BIT_19 0x00080000
++#define DW_BIT_20 0x00100000
++#define DW_BIT_21 0x00200000
++#define DW_BIT_22 0x00400000
++#define DW_BIT_23 0x00800000
++#define DW_BIT_24 0x01000000
++#define DW_BIT_25 0x02000000
++#define DW_BIT_26 0x04000000
++#define DW_BIT_27 0x08000000
++#define DW_BIT_28 0x10000000
++#define DW_BIT_29 0x20000000
++#define DW_BIT_30 0x40000000
++#define DW_BIT_31 0x80000000
++
++/** Word (16bit) Bit Definition*/
++#define W_BIT_0 0x0001
++#define W_BIT_1 0x0002
++#define W_BIT_2 0x0004
++#define W_BIT_3 0x0008
++#define W_BIT_4 0x0010
++#define W_BIT_5 0x0020
++#define W_BIT_6 0x0040
++#define W_BIT_7 0x0080
++#define W_BIT_8 0x0100
++#define W_BIT_9 0x0200
++#define W_BIT_10 0x0400
++#define W_BIT_11 0x0800
++#define W_BIT_12 0x1000
++#define W_BIT_13 0x2000
++#define W_BIT_14 0x4000
++#define W_BIT_15 0x8000
++
++/** Byte (8Bit) Bit definition*/
++#define B_BIT_0 0x01
++#define B_BIT_1 0x02
++#define B_BIT_2 0x04
++#define B_BIT_3 0x08
++#define B_BIT_4 0x10
++#define B_BIT_5 0x20
++#define B_BIT_6 0x40
++#define B_BIT_7 0x80
++
++/** Debug Macro definition*/
++#ifdef DEBUG_LEVEL1
++
++extern u32 drvdbg;
++extern u32 ifdbg;
++
++/* Debug message control bit definition for drvdbg */
++#define DBG_MSG DW_BIT_0
++#define DBG_FATAL DW_BIT_1
++#define DBG_ERROR DW_BIT_2
++#define DBG_DATA DW_BIT_3
++#define DBG_CMND DW_BIT_4
++#define DBG_EVENT DW_BIT_5
++#define DBG_INTR DW_BIT_6
++
++#define DBG_DAT_D DW_BIT_16
++#define DBG_CMD_D DW_BIT_17
++#define DBG_FW_D DW_BIT_18
++
++#define DBG_ENTRY DW_BIT_28
++#define DBG_WARN DW_BIT_29
++#define DBG_INFO DW_BIT_30
++
++/* Debug message control bit definition for ifdbg */
++#define DBG_IF_D DW_BIT_0
++
++#ifdef DEBUG_LEVEL2
++#define PRINTM_INFO(msg...) {if (drvdbg & DBG_INFO) printk(KERN_DEBUG msg);}
++#define PRINTM_WARN(msg...) {if (drvdbg & DBG_WARN) printk(KERN_DEBUG msg);}
++#define PRINTM_ENTRY(msg...) {if (drvdbg & DBG_ENTRY) printk(KERN_DEBUG msg);}
++#else
++#define PRINTM_INFO(msg...) do {} while (0)
++#define PRINTM_WARN(msg...) do {} while (0)
++#define PRINTM_ENTRY(msg...) do {} while (0)
++#endif /* DEBUG_LEVEL2 */
++
++#define PRINTM_FW_D(msg...) {if (drvdbg & DBG_FW_D) printk(KERN_DEBUG msg);}
++#define PRINTM_CMD_D(msg...) {if (drvdbg & DBG_CMD_D) printk(KERN_DEBUG msg);}
++#define PRINTM_DAT_D(msg...) {if (drvdbg & DBG_DAT_D) printk(KERN_DEBUG msg);}
++
++#define PRINTM_INTR(msg...) {if (drvdbg & DBG_INTR) printk(KERN_DEBUG msg);}
++#define PRINTM_EVENT(msg...) {if (drvdbg & DBG_EVENT) printk(msg);}
++#define PRINTM_CMND(msg...) {if (drvdbg & DBG_CMND) printk(KERN_DEBUG msg);}
++#define PRINTM_DATA(msg...) {if (drvdbg & DBG_DATA) printk(KERN_DEBUG msg);}
++#define PRINTM_ERROR(msg...) {if (drvdbg & DBG_ERROR) printk(KERN_DEBUG msg);}
++#define PRINTM_FATAL(msg...) {if (drvdbg & DBG_FATAL) printk(KERN_DEBUG msg);}
++#define PRINTM_MSG(msg...) {if (drvdbg & DBG_MSG) printk(KERN_ALERT msg);}
++
++#define PRINTM_IF_D(msg...) {if (ifdbg & DBG_IF_D) printk(KERN_DEBUG msg);}
++
++#define PRINTM(level,msg...) PRINTM_##level(msg)
++
++#else
++
++#define PRINTM(level,msg...) do {} while (0)
++
++#endif /* DEBUG_LEVEL1 */
++
++#define ASSERT(cond) \
++do { \
++ if (!(cond)) \
++ PRINTM(INFO, "ASSERT: %s, %s:%i\n", \
++ __FUNCTION__, __FILE__, __LINE__); \
++} while(0)
++
++#define ENTER() PRINTM(ENTRY, "Enter: %s, %s:%i\n", __FUNCTION__, \
++ __FILE__, __LINE__)
++#define LEAVE() PRINTM(ENTRY, "Leave: %s, %s:%i\n", __FUNCTION__, \
++ __FILE__, __LINE__)
++
++#if defined(DEBUG_LEVEL1) && defined(__KERNEL__)
++#define DBG_DUMP_BUF_LEN 64
++#define MAX_DUMP_PER_LINE 16
++#define MAX_DATA_DUMP_LEN 48
++
++static inline void
++hexdump(char *prompt, u8 * buf, int len)
++{
++ int i;
++ char dbgdumpbuf[DBG_DUMP_BUF_LEN];
++ char *ptr = dbgdumpbuf;
++
++ printk(KERN_DEBUG "%s:\n", prompt);
++ for (i = 1; i <= len; i++) {
++ ptr += sprintf(ptr, "%02x ", *buf);
++ buf++;
++ if (i % MAX_DUMP_PER_LINE == 0) {
++ *ptr = 0;
++ printk(KERN_DEBUG "%s\n", dbgdumpbuf);
++ ptr = dbgdumpbuf;
++ }
++ }
++ if (len % MAX_DUMP_PER_LINE) {
++ *ptr = 0;
++ printk(KERN_DEBUG "%s\n", dbgdumpbuf);
++ }
++}
++
++#define DBG_HEXDUMP_CMD_D(x,y,z) {if (drvdbg & DBG_CMD_D) hexdump(x,y,z);}
++#define DBG_HEXDUMP_DAT_D(x,y,z) {if (drvdbg & DBG_DAT_D) hexdump(x,y,z);}
++#define DBG_HEXDUMP_IF_D(x,y,z) {if (ifdbg & DBG_IF_D) hexdump(x,y,z);}
++#define DBG_HEXDUMP_FW_D(x,y,z) {if (drvdbg & DBG_FW_D) hexdump(x,y,z);}
++
++#define DBG_HEXDUMP(level,x,y,z) DBG_HEXDUMP_##level(x,y,z)
++
++#else
++#define DBG_HEXDUMP(level,x,y,z) do {} while (0)
++#endif
++
++#if defined(DEBUG_LEVEL2) && defined(__KERNEL__)
++#define HEXDUMP(x,y,z) {if (drvdbg & DBG_INFO) hexdump(x,y,z);}
++#else
++#define HEXDUMP(x,y,z) do {} while (0)
++#endif
++
++#ifndef TRUE
++#define TRUE 1
++#endif
++#ifndef FALSE
++#define FALSE 0
++#endif
++
++#ifndef MIN
++#define MIN(a,b) ((a) < (b) ? (a) : (b))
++#endif
++
++#ifndef MAX
++#define MAX(a,b) ((a) > (b) ? (a) : (b))
++#endif
++
++#ifndef NELEMENTS
++#define NELEMENTS(x) (sizeof(x)/sizeof(x[0]))
++#endif
++
++/** Buffer Constants */
++
++/* The size of SQ memory PPA, DPA are 8 DWORDs, that keep the physical
++* addresses of TxPD buffers. Station has only 8 TxPD available, Whereas
++* driver has more local TxPDs. Each TxPD on the host memory is associated
++* with a Tx control node. The driver maintains 8 RxPD descriptors for
++* station firmware to store Rx packet information.
++*
++* Current version of MAC has a 32x6 multicast address buffer.
++*
++* 802.11b can have up to 14 channels, the driver keeps the
++* BSSID(MAC address) of each APs or Ad hoc stations it has sensed.
++*/
++
++#define MRVDRV_SIZE_OF_PPA 0x00000008
++#define MRVDRV_SIZE_OF_DPA 0x00000008
++#define MRVDRV_NUM_OF_TxPD 0x00000020
++#define MRVDRV_NUM_OF_CMD_BUFFER 10
++#define MRVDRV_SIZE_OF_CMD_BUFFER (2 * 1024)
++#define MRVDRV_MAX_BSSID_LIST 64
++#define MRVDRV_TIMER_10S 10000
++#define MRVDRV_TIMER_5S 5000
++#define MRVDRV_TIMER_1S 1000
++#define MRVDRV_SNAP_HEADER_LEN 8
++#define MRVDRV_ETH_HEADER_SIZE 14
++
++#define ARP_FILTER_MAX_BUF_SIZE 68
++
++#define WLAN_UPLD_SIZE 2312
++#define DEV_NAME_LEN 32
++
++#ifndef ETH_ALEN
++#define ETH_ALEN 6
++#endif
++
++/** Misc constants */
++/* This section defines 802.11 specific contants */
++#define SDIO_HEADER_LEN 4
++
++#define MRVDRV_MAX_REGION_CODE 6
++#define MRVDRV_IGNORE_MULTIPLE_DTIM 0xfffe
++#define MRVDRV_MIN_MULTIPLE_DTIM 1
++#define MRVDRV_MAX_MULTIPLE_DTIM 5
++#define MRVDRV_DEFAULT_MULTIPLE_DTIM 1
++
++#define MRVDRV_DEFAULT_LISTEN_INTERVAL 10
++#define MRVDRV_DEFAULT_LOCAL_LISTEN_INTERVAL 0
++
++#define MRVDRV_CHANNELS_PER_ACTIVE_SCAN 14
++#define MRVDRV_MIN_BEACON_INTERVAL 20
++#define MRVDRV_MAX_BEACON_INTERVAL 1000
++#define MRVDRV_BEACON_INTERVAL 100
++
++#define MRVDRV_DEFAULT_WATCHDOG_TIMEOUT (5 * HZ)
++#define MRVDRV_SCAN_WATCHDOG_TIMEOUT (10 * HZ)
++#define MRVDRV_DEEP_SLEEP_EXIT_TIMEOUT (10 * HZ)
++
++/** TxPD Status */
++
++/* Station firmware use TxPD status field to report final Tx transmit
++* result, Bit masks are used to present combined situations.
++*/
++
++#define MRVDRV_TxPD_POWER_MGMT_NULL_PACKET 0x01
++#define MRVDRV_TxPD_POWER_MGMT_LAST_PACKET 0x08
++
++/** Tx control node status */
++
++#define MRVDRV_TX_CTRL_NODE_STATUS_IDLE 0x0000
++
++/* Link spped */
++#define MRVDRV_LINK_SPEED_1mbps 10000 /* in unit of 100bps */
++#define MRVDRV_LINK_SPEED_11mbps 110000
++
++/** RSSI-related defines */
++/* RSSI constants are used to implement 802.11 RSSI threshold
++* indication. if the Rx packet signal got too weak for 5 consecutive
++* times, miniport driver (driver) will report this event to wrapper
++*/
++
++#define MRVDRV_NF_DEFAULT_SCAN_VALUE (-96)
++
++/** RTS/FRAG related defines */
++#define MRVDRV_RTS_MIN_VALUE 0
++#define MRVDRV_RTS_MAX_VALUE 2347
++#define MRVDRV_FRAG_MIN_VALUE 256
++#define MRVDRV_FRAG_MAX_VALUE 2346
++
++/* Fixed IE size is 8 bytes time stamp + 2 bytes beacon interval +
++ * 2 bytes cap */
++#define MRVL_FIXED_IE_SIZE 12
++
++/* This is for firmware specific length */
++#define EXTRA_LEN 36
++#define MRVDRV_MAXIMUM_ETH_PACKET_SIZE 1514
++
++#define MRVDRV_ETH_TX_PACKET_BUFFER_SIZE \
++ (MRVDRV_MAXIMUM_ETH_PACKET_SIZE + sizeof(TxPD) + EXTRA_LEN)
++
++#define MRVDRV_ETH_RX_PACKET_BUFFER_SIZE \
++ (MRVDRV_MAXIMUM_ETH_PACKET_SIZE + sizeof(RxPD) \
++ + MRVDRV_SNAP_HEADER_LEN + EXTRA_LEN)
++
++#define CMD_F_HOSTCMD (1 << 0)
++
++/* to resolve CISCO AP extension */
++#define MRVDRV_SCAN_LIST_VAR_IE_SPACE 256
++#define FW_IS_WPA_ENABLED(_adapter) \
++ (_adapter->fwCapInfo & FW_CAPINFO_WPA)
++
++#define FW_CAPINFO_WPA (1 << 0)
++#define WLAN_802_11_AI_REQFI_CAPABILITIES 1
++#define WLAN_802_11_AI_REQFI_LISTENINTERVAL 2
++#define WLAN_802_11_AI_REQFI_CURRENTAPADDRESS 4
++
++#define WLAN_802_11_AI_RESFI_CAPABILITIES 1
++#define WLAN_802_11_AI_RESFI_STATUSCODE 2
++#define WLAN_802_11_AI_RESFI_ASSOCIATIONID 4
++
++#define MRVL_NUM_WEP_KEY 4
++
++/** WPA Key LENGTH*/
++/* Support 4 keys per key set */
++#define MRVL_NUM_WPA_KEY_PER_SET 4
++#define MRVL_MAX_WPA_KEY_LENGTH 32
++
++#define WPA_AES_KEY_LEN 16
++#define WPA_TKIP_KEY_LEN 32
++
++/* A few details needed for WEP (Wireless Equivalent Privacy) */
++/* 104 bits */
++#define MAX_WEP_KEY_SIZE 13
++/*40 bits RC4 - WEP*/
++#define MIN_WEP_KEY_SIZE 5
++
++#define RF_ANTENNA_1 0x1
++#define RF_ANTENNA_2 0x2
++#define RF_ANTENNA_AUTO 0xFFFF
++
++#define KEY_INFO_ENABLED 0x01
++
++#define SNR_BEACON 0
++#define SNR_RXPD 1
++#define NF_BEACON 2
++#define NF_RXPD 3
++
++/** MACRO DEFINITIONS */
++#define CAL_NF(NF) ((s32)(-(s32)(NF)))
++#define CAL_RSSI(SNR, NF) ((s32)((s32)(SNR) + CAL_NF(NF)))
++#define SCAN_RSSI(RSSI) (0x100 - ((u8)(RSSI)))
++
++#define DEFAULT_BCN_AVG_FACTOR 8
++#define DEFAULT_DATA_AVG_FACTOR 8
++#define MIN_BCN_AVG_FACTOR 1
++#define MAX_BCN_AVG_FACTOR 8
++#define MIN_DATA_AVG_FACTOR 1
++#define MAX_DATA_AVG_FACTOR 8
++#define AVG_SCALE 100
++#define CAL_AVG_SNR_NF(AVG, SNRNF, N) \
++ (((AVG) == 0) ? ((u16)(SNRNF) * AVG_SCALE) : \
++ ((((int)(AVG) * (N -1)) + ((u16)(SNRNF) * \
++ AVG_SCALE)) / N))
++
++#define WLAN_STATUS_SUCCESS (0)
++#define WLAN_STATUS_FAILURE (-1)
++#define WLAN_STATUS_NOT_ACCEPTED (-2)
++
++#define MAX_LEDS 3
++#define LED_DISABLED 16
++#define LED_BLINKING 2
++
++/* S_SWAP : To swap 2 u8 */
++#define S_SWAP(a,b) do { \
++ u8 t = SArr[a]; \
++ SArr[a] = SArr[b]; SArr[b] = t; \
++ } while(0)
++
++/* SWAP: swap u8 */
++#define SWAP_U8(a,b) {u8 t; t=a; a=b; b=t;}
++
++/* SWAP: swap u8 */
++#define SWAP_U16(a,b) {u16 t; t=a; a=b; b=t;}
++
++#define wlan_le16_to_cpu(x) x
++#define wlan_le32_to_cpu(x) x
++#define wlan_le64_to_cpu(x) x
++#define wlan_cpu_to_le16(x) x
++#define wlan_cpu_to_le32(x) x
++#define wlan_cpu_to_le64(x) x
++
++#define endian_convert_TxPD(x)
++#define endian_convert_RxPD(x)
++#define endian_convert_GET_LOG(x)
++
++/** Global Varibale Declaration */
++typedef struct _wlan_private wlan_private;
++typedef struct _wlan_adapter wlan_adapter;
++typedef struct _HostCmd_DS_COMMAND HostCmd_DS_COMMAND;
++
++extern u32 DSFreqList[15];
++extern const char driver_version[];
++extern u32 DSFreqList[];
++extern u16 RegionCodeToIndex[MRVDRV_MAX_REGION_CODE];
++
++extern u8 WlanDataRates[WLAN_SUPPORTED_RATES];
++
++extern u8 SupportedRates[G_SUPPORTED_RATES];
++
++extern u8 AdhocRates_G[G_SUPPORTED_RATES];
++
++extern u8 AdhocRates_B[4];
++extern wlan_private *wlanpriv;
++
++#ifdef MFG_CMD_SUPPORT
++#define SIOCCFMFG SIOCDEVPRIVATE
++#endif /* MFG_CMD_SUPPORT */
++
++#define INTMODE_SDIO 0
++#define INTMODE_GPIO 1
++extern int intmode;
++extern int gpiopin;
++
++/** ENUM definition*/
++/** SNRNF_TYPE */
++typedef enum _SNRNF_TYPE
++{
++ TYPE_BEACON = 0,
++ TYPE_RXPD,
++ MAX_TYPE_B
++} SNRNF_TYPE;
++
++/** SNRNF_DATA*/
++typedef enum _SNRNF_DATA
++{
++ TYPE_NOAVG = 0,
++ TYPE_AVG,
++ MAX_TYPE_AVG
++} SNRNF_DATA;
++
++/** WLAN_802_11_AUTH_ALG*/
++typedef enum _WLAN_802_11_AUTH_ALG
++{
++ AUTH_ALG_OPEN_SYSTEM = 1,
++ AUTH_ALG_SHARED_KEY = 2,
++ AUTH_ALG_NETWORK_EAP = 8,
++} WLAN_802_11_AUTH_ALG;
++
++/** WLAN_802_11_ENCRYPTION_MODE */
++typedef enum _WLAN_802_11_ENCRYPTION_MODE
++{
++ CIPHER_NONE,
++ CIPHER_WEP40,
++ CIPHER_TKIP,
++ CIPHER_CCMP,
++ CIPHER_WEP104,
++} WLAN_802_11_ENCRYPTION_MODE;
++
++/** WLAN_802_11_POWER_MODE */
++typedef enum _WLAN_802_11_POWER_MODE
++{
++ Wlan802_11PowerModeCAM,
++ Wlan802_11PowerModeMAX_PSP,
++ Wlan802_11PowerModeFast_PSP,
++
++ /*not a real mode, defined as an upper bound */
++ Wlan802_11PowerModeMax
++} WLAN_802_11_POWER_MODE;
++
++/** PS_STATE */
++typedef enum _PS_STATE
++{
++ PS_STATE_FULL_POWER,
++ PS_STATE_AWAKE,
++ PS_STATE_PRE_SLEEP,
++ PS_STATE_SLEEP
++} PS_STATE;
++
++/** DNLD_STATE */
++typedef enum _DNLD_STATE
++{
++ DNLD_RES_RECEIVED,
++ DNLD_DATA_SENT,
++ DNLD_CMD_SENT
++} DNLD_STATE;
++
++/** WLAN_MEDIA_STATE */
++typedef enum _WLAN_MEDIA_STATE
++{
++ WlanMediaStateDisconnected,
++ WlanMediaStateConnected
++} WLAN_MEDIA_STATE;
++
++/** WLAN_802_11_PRIVACY_FILTER */
++typedef enum _WLAN_802_11_PRIVACY_FILTER
++{
++ Wlan802_11PrivFilterAcceptAll,
++ Wlan802_11PrivFilter8021xWEP
++} WLAN_802_11_PRIVACY_FILTER;
++
++/** mv_ms_type */
++typedef enum _mv_ms_type
++{
++ MVMS_DAT = 0,
++ MVMS_CMD = 1,
++ /* 2: reserved */
++ MVMS_EVENT = 3
++} mv_ms_type;
++
++/* Hardware status codes */
++typedef enum _WLAN_HARDWARE_STATUS
++{
++ WlanHardwareStatusReady,
++ WlanHardwareStatusInitializing,
++ WlanHardwareStatusReset,
++ WlanHardwareStatusClosing,
++ WlanHardwareStatusNotReady
++} WLAN_HARDWARE_STATUS;
++
++/** WLAN_802_11_AUTHENTICATION_MODE */
++typedef enum _WLAN_802_11_AUTHENTICATION_MODE
++{
++ Wlan802_11AuthModeOpen = 0x00,
++ Wlan802_11AuthModeShared = 0x01,
++ Wlan802_11AuthModeNetworkEAP = 0x80,
++} WLAN_802_11_AUTHENTICATION_MODE;
++
++/** WLAN_802_11_WEP_STATUS */
++typedef enum _WLAN_802_11_WEP_STATUS
++{
++ Wlan802_11WEPEnabled,
++ Wlan802_11WEPDisabled,
++ Wlan802_11WEPKeyAbsent,
++ Wlan802_11WEPNotSupported
++} WLAN_802_11_WEP_STATUS;
++
++/** SNMP_MIB_INDEX_e */
++typedef enum _SNMP_MIB_INDEX_e
++{
++ DesiredBssType_i = 0,
++ OpRateSet_i,
++ BcnPeriod_i,
++ DtimPeriod_i,
++ AssocRspTimeOut_i,
++ RtsThresh_i,
++ ShortRetryLim_i,
++ LongRetryLim_i,
++ FragThresh_i,
++ Dot11D_i,
++ Dot11H_i,
++ ManufId_i,
++ ProdId_i,
++ ManufOui_i,
++ ManufName_i,
++ ManufProdName_i,
++ ManufProdVer_i
++} SNMP_MIB_INDEX_e;
++
++/** KEY_TYPE_ID */
++typedef enum _KEY_TYPE_ID
++{
++ KEY_TYPE_ID_WEP = 0,
++ KEY_TYPE_ID_TKIP,
++ KEY_TYPE_ID_AES
++} KEY_TYPE_ID;
++
++/** KEY_INFO_WEP*/
++typedef enum _KEY_INFO_WEP
++{
++ KEY_INFO_WEP_DEFAULT_KEY = 0x01
++} KEY_INFO_WEP;
++
++/** KEY_INFO_TKIP */
++typedef enum _KEY_INFO_TKIP
++{
++ KEY_INFO_TKIP_MCAST = 0x01,
++ KEY_INFO_TKIP_UNICAST = 0x02,
++ KEY_INFO_TKIP_ENABLED = 0x04
++} KEY_INFO_TKIP;
++
++/** KEY_INFO_AES*/
++typedef enum _KEY_INFO_AES
++{
++ KEY_INFO_AES_MCAST = 0x01,
++ KEY_INFO_AES_UNICAST = 0x02,
++ KEY_INFO_AES_ENABLED = 0x04
++} KEY_INFO_AES;
++
++/** SNMP_MIB_VALUE_e */
++typedef enum _SNMP_MIB_VALUE_e
++{
++ SNMP_MIB_VALUE_INFRA = 1,
++ SNMP_MIB_VALUE_ADHOC
++} SNMP_MIB_VALUE_e;
++
++/** HWRateDropMode */
++typedef enum _HWRateDropMode
++{
++ NO_HW_RATE_DROP,
++ HW_TABLE_RATE_DROP,
++ HW_SINGLE_RATE_DROP
++} HWRateDropMode;
++
++#ifdef __KERNEL__
++extern struct iw_handler_def wlan_handler_def;
++struct iw_statistics *wlan_get_wireless_stats(struct net_device *dev);
++int wlan_do_ioctl(struct net_device *dev, struct ifreq *req, int i);
++#endif
++
++#endif /* _WLAN_DEFS_H_ */
+diff --git a/drivers/net/wireless/marvell8686/wlan_dev.h b/drivers/net/wireless/marvell8686/wlan_dev.h
+new file mode 100644
+index 0000000..c818b0c
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_dev.h
+@@ -0,0 +1,468 @@
++/** @file wlan_dev.h
++ * @brief This file contains definitions and data structures specific
++ * to Marvell 802.11 NIC. It contains the Device Information
++ * structure wlan_adapter.
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2007
++ */
++/*************************************************************
++Change log:
++ 09/26/05: add Doxygen format comments
++ 01/11/06: Conditionalize new scan/join structures.
++ 04/18/06: Remove old Subscrive Event and add new Subscribe Event
++ implementation through generic hostcmd API
++ 05/08/06: Remove PermanentAddr from Adapter
++
++ ************************************************************/
++
++#ifndef _WLAN_DEV_H_
++#define _WLAN_DEV_H_
++
++#define MAX_BSSID_PER_CHANNEL 16
++
++/* For the extended Scan */
++#define MAX_EXTENDED_SCAN_BSSID_LIST MAX_BSSID_PER_CHANNEL * \
++ MRVDRV_MAX_CHANNEL_SIZE + 1
++
++typedef struct _PER_CHANNEL_BSSID_LIST_DATA
++{
++ u8 ucStart;
++ u8 ucNumEntry;
++} PER_CHANNEL_BSSID_LIST_DATA, *PPER_CHANNEL_BSSID_LIST_DATA;
++
++typedef struct _MRV_BSSID_IE_LIST
++{
++ WLAN_802_11_FIXED_IEs FixedIE;
++ u8 VariableIE[MRVDRV_SCAN_LIST_VAR_IE_SPACE];
++} MRV_BSSID_IE_LIST, *PMRV_BSSID_IE_LIST;
++
++#define MAX_REGION_CHANNEL_NUM 2
++
++/** Chan-Freq-TxPower mapping table*/
++typedef struct _CHANNEL_FREQ_POWER
++{
++ /** Channel Number */
++ u16 Channel;
++ /** Frequency of this Channel */
++ u32 Freq;
++ /** Max allowed Tx power level */
++ u16 MaxTxPower;
++ /** TRUE:channel unsupported; FLASE:supported*/
++ BOOLEAN Unsupported;
++} CHANNEL_FREQ_POWER;
++
++/** region-band mapping table*/
++typedef struct _REGION_CHANNEL
++{
++ /** TRUE if this entry is valid */
++ BOOLEAN Valid;
++ /** Region code for US, Japan ... */
++ u8 Region;
++ /** Band B/G/A, used for BAND_CONFIG cmd */
++ u8 Band;
++ /** Actual No. of elements in the array below */
++ u8 NrCFP;
++ /** chan-freq-txpower mapping table*/
++ CHANNEL_FREQ_POWER *CFP;
++} REGION_CHANNEL;
++
++typedef struct _wlan_802_11_security_t
++{
++ BOOLEAN WPAEnabled;
++ BOOLEAN WPA2Enabled;
++ WLAN_802_11_WEP_STATUS WEPStatus;
++ WLAN_802_11_AUTHENTICATION_MODE AuthenticationMode;
++ WLAN_802_11_ENCRYPTION_MODE EncryptionMode;
++} wlan_802_11_security_t;
++
++/** Current Basic Service Set State Structure */
++typedef struct
++{
++ BSSDescriptor_t BSSDescriptor;
++
++ /** band */
++ u8 band;
++
++ /** number of rates supported */
++ int NumOfRates;
++
++ /** supported rates*/
++ u8 DataRates[WLAN_SUPPORTED_RATES];
++
++ /** wmm enable? */
++ u8 wmm_enabled;
++
++ /** uapsd enable?*/
++ u8 wmm_uapsd_enabled;
++} CurrentBSSParams_t;
++
++/** sleep_params */
++typedef struct SleepParams
++{
++ u16 sp_error;
++ u16 sp_offset;
++ u16 sp_stabletime;
++ u8 sp_calcontrol;
++ u8 sp_extsleepclk;
++ u16 sp_reserved;
++} SleepParams;
++
++/** sleep_period */
++typedef struct SleepPeriod
++{
++ u16 period;
++ u16 reserved;
++} SleepPeriod;
++
++#define DBG_CMD_NUM 5
++
++/** info for debug purpose */
++typedef struct _wlan_dbg
++{
++ u32 num_cmd_host_to_card_failure;
++ u32 num_cmd_sleep_cfm_host_to_card_failure;
++ u32 num_tx_host_to_card_failure;
++ u32 num_event_deauth;
++ u32 num_event_disassoc;
++ u32 num_event_link_lost;
++ u32 num_cmd_deauth;
++ u32 num_cmd_assoc_success;
++ u32 num_cmd_assoc_failure;
++ u32 num_tx_timeout;
++ u32 num_cmd_timeout;
++ u16 TimeoutCmdId;
++ u16 TimeoutCmdAct;
++ u16 LastCmdId[DBG_CMD_NUM];
++ u16 LastCmdAct[DBG_CMD_NUM];
++ u16 LastCmdIndex;
++ u16 LastCmdRespId[DBG_CMD_NUM];
++ u16 LastCmdRespIndex;
++ u16 LastEvent[DBG_CMD_NUM];
++ u16 LastEventIndex;
++} wlan_dbg;
++
++/** Data structure for the Marvell WLAN device */
++typedef struct _wlan_dev
++{
++ /** device name */
++ char name[DEV_NAME_LEN];
++ /** card pointer */
++ void *card;
++ /** IO port */
++ u32 ioport;
++ /** Upload received */
++ u32 upld_rcv;
++ /** Upload type */
++ u32 upld_typ;
++ /** Upload length */
++ u32 upld_len;
++ /** netdev pointer */
++ struct net_device *netdev;
++ /* Upload buffer */
++ u8 upld_buf[WLAN_UPLD_SIZE];
++ /* Download sent:
++ bit0 1/0=data_sent/data_tx_done,
++ bit1 1/0=cmd_sent/cmd_tx_done,
++ all other bits reserved 0 */
++ u8 dnld_sent;
++} wlan_dev_t, *pwlan_dev_t;
++
++/* Data structure for WPS information */
++typedef struct
++{
++ IEEEtypes_VendorSpecific_t wpsIe;
++ BOOLEAN SessionEnable;
++} wps_t;
++
++/** Private structure for the MV device */
++struct _wlan_private
++{
++ int open;
++
++ wlan_adapter *adapter;
++ wlan_dev_t wlan_dev;
++
++ struct net_device_stats stats;
++
++ struct iw_statistics wstats;
++#ifdef CONFIG_MARVELL_8686_PROC_FS
++ struct proc_dir_entry *proc_entry;
++ struct proc_dir_entry *proc_dev;
++#endif
++
++ /** thread to service interrupts */
++ wlan_thread MainThread;
++
++#ifdef REASSOCIATION
++ /** thread to service mac events */
++ wlan_thread ReassocThread;
++#endif /* REASSOCIATION */
++};
++
++/** Wlan Adapter data structure*/
++struct _wlan_adapter
++{
++ u8 TmpTxBuf[WLAN_UPLD_SIZE] __ATTRIB_ALIGN__;
++ /** STATUS variables */
++ WLAN_HARDWARE_STATUS HardwareStatus;
++ u32 FWReleaseNumber;
++ u32 fwCapInfo;
++ u8 chip_rev;
++
++ /** Command-related variables */
++ u16 SeqNum;
++ CmdCtrlNode *CmdArray;
++ /** Current Command */
++ CmdCtrlNode *CurCmd;
++ int CurCmdRetCode;
++
++ /** Command Queues */
++ /** Free command buffers */
++ struct list_head CmdFreeQ;
++ /** Pending command buffers */
++ struct list_head CmdPendingQ;
++
++ /** Variables brought in from private structure */
++ int irq;
++
++ /** Async and Sync Event variables */
++ u32 IntCounter;
++ u32 IntCounterSaved; /* save int for DS/PS */
++ u32 EventCause;
++ u8 nodeName[16]; /* nickname */
++
++ /** spin locks */
++ spinlock_t QueueSpinLock __ATTRIB_ALIGN__;
++
++ /** Timers */
++ WLAN_DRV_TIMER MrvDrvCommandTimer __ATTRIB_ALIGN__;
++ BOOLEAN CommandTimerIsSet;
++
++#ifdef REASSOCIATION
++ /**Reassociation timer*/
++ BOOLEAN ReassocTimerIsSet;
++ WLAN_DRV_TIMER MrvDrvTimer __ATTRIB_ALIGN__;
++#endif /* REASSOCIATION */
++
++ /** Event Queues */
++ wait_queue_head_t ds_awake_q __ATTRIB_ALIGN__;
++
++ u8 HisRegCpy;
++
++ /** bg scan related variable */
++ HostCmd_DS_802_11_BG_SCAN_CONFIG *bgScanConfig;
++ u32 bgScanConfigSize;
++
++ /** WMM related variable*/
++ WMM_DESC wmm;
++
++ /** current ssid/bssid related parameters*/
++ CurrentBSSParams_t CurBssParams;
++
++ WLAN_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode;
++
++ BSSDescriptor_t *pAttemptedBSSDesc;
++
++ WLAN_802_11_SSID AttemptedSSIDBeforeScan;
++ WLAN_802_11_SSID PreviousSSID;
++ u8 PreviousBSSID[MRVDRV_ETH_ADDR_LEN];
++
++ BSSDescriptor_t *ScanTable;
++ u32 NumInScanTable;
++
++ u8 ScanType;
++ u32 ScanMode;
++ u16 SpecificScanTime;
++ u16 ActiveScanTime;
++ u16 PassiveScanTime;
++
++ u16 BeaconPeriod;
++ u8 AdhocCreate;
++ BOOLEAN AdhocLinkSensed;
++
++#ifdef REASSOCIATION
++ /** Reassociation on and off */
++ BOOLEAN Reassoc_on;
++ SEMAPHORE ReassocSem;
++#endif /* REASSOCIATION */
++
++ BOOLEAN ATIMEnabled;
++
++ /** MAC address information */
++ u8 CurrentAddr[MRVDRV_ETH_ADDR_LEN];
++ u8 MulticastList[MRVDRV_MAX_MULTICAST_LIST_SIZE]
++ [MRVDRV_ETH_ADDR_LEN];
++ u32 NumOfMulticastMACAddr;
++
++ u16 HWRateDropMode;
++ u16 RateBitmap;
++ u16 Threshold;
++ u16 FinalRate;
++ /** control G Rates */
++ BOOLEAN adhoc_grate_enabled;
++
++ WLAN_802_11_ANTENNA TxAntenna;
++ WLAN_802_11_ANTENNA RxAntenna;
++
++ u8 AdhocChannel;
++ WLAN_802_11_FRAGMENTATION_THRESHOLD FragThsd;
++ WLAN_802_11_RTS_THRESHOLD RTSThsd;
++
++ u32 DataRate;
++ BOOLEAN Is_DataRate_Auto;
++
++ /** number of association attempts for the current SSID cmd */
++ u16 ListenInterval;
++ u16 TxRetryCount;
++
++ u16 Dtim;
++
++ /** Tx-related variables (for single packet tx) */
++ struct sk_buff *CurrentTxSkb;
++ struct sk_buff RxSkbQ;
++ BOOLEAN TxLockFlag;
++ u16 gen_null_pkg;
++ spinlock_t CurrentTxLock __ATTRIB_ALIGN__;
++
++ /** NIC Operation characteristics */
++ u16 CurrentPacketFilter;
++ u32 MediaConnectStatus;
++ u16 RegionCode;
++ u16 TxPowerLevel;
++ u8 MaxTxPowerLevel;
++ u8 MinTxPowerLevel;
++
++ /** POWER MANAGEMENT AND PnP SUPPORT */
++ BOOLEAN SurpriseRemoved;
++ u16 AtimWindow;
++
++ u16 PSMode; /* Wlan802_11PowerModeCAM=disable
++ Wlan802_11PowerModeMAX_PSP=enable */
++ u16 MultipleDtim;
++ u16 BCNMissTimeOut;
++ u32 PSState;
++ BOOLEAN NeedToWakeup;
++
++ PS_CMD_ConfirmSleep PSConfirmSleep;
++ u16 LocalListenInterval;
++ u16 NullPktInterval;
++ u16 AdhocAwakePeriod;
++ u16 fwWakeupMethod;
++ BOOLEAN IsDeepSleep;
++ BOOLEAN IsAutoDeepSleepEnabled;
++ BOOLEAN bWakeupDevRequired;
++ u32 WakeupTries;
++ BOOLEAN bHostSleepConfigured;
++ HostCmd_DS_802_11_HOST_SLEEP_CFG HSCfg;
++ /** ARP filter related variable */
++ u8 ArpFilter[ARP_FILTER_MAX_BUF_SIZE];
++ u32 ArpFilterSize;
++ BOOLEAN HS_Activated;
++
++ /** Encryption parameter */
++ wlan_802_11_security_t SecInfo;
++
++ MRVL_WEP_KEY WepKey[MRVL_NUM_WEP_KEY];
++ u16 CurrentWepKeyIndex;
++
++ /** Buffer for TLVs passed from the application to be inserted into the
++ * association request to firmware
++ */
++ u8 mrvlAssocTlvBuffer[MRVDRV_ASSOC_TLV_BUF_SIZE];
++
++ /** Length of the data stored in mrvlAssocTlvBuffer*/
++ u8 mrvlAssocTlvBufferLen;
++
++ /** Buffer to store the association response for application retrieval */
++ u8 assocRspBuffer[MRVDRV_ASSOC_RSP_BUF_SIZE];
++
++ /** Length of the data stored in assocRspBuffer */
++ int assocRspSize;
++
++ /** Generice IEEE IEs passed from the application to be inserted into the
++ * association request to firmware
++ */
++ u8 genIeBuffer[MRVDRV_GENIE_BUF_SIZE];
++
++ /** Length of the data stored in genIeBuffer */
++ u8 genIeBufferLen;
++
++ BOOLEAN IsGTK_SET;
++
++ /** Encryption Key*/
++ u8 Wpa_ie[256];
++ u8 Wpa_ie_len;
++
++ HostCmd_DS_802_11_KEY_MATERIAL aeskey;
++
++ /* Advanced Encryption Standard */
++ BOOLEAN AdhocAESEnabled;
++ wait_queue_head_t cmd_EncKey __ATTRIB_ALIGN__;
++
++ u16 RxAntennaMode;
++ u16 TxAntennaMode;
++
++ /** Requested Signal Strength*/
++ u16 bcn_avg_factor;
++ u16 data_avg_factor;
++ u16 SNR[MAX_TYPE_B][MAX_TYPE_AVG];
++ u16 NF[MAX_TYPE_B][MAX_TYPE_AVG];
++ u8 RSSI[MAX_TYPE_B][MAX_TYPE_AVG];
++ u8 rawSNR[DEFAULT_DATA_AVG_FACTOR];
++ u8 rawNF[DEFAULT_DATA_AVG_FACTOR];
++ u16 nextSNRNF;
++ u16 numSNRNF;
++ u32 RxPDAge;
++ u16 RxPDRate;
++
++ BOOLEAN RadioOn;
++
++ /** Blue Tooth Co-existence Arbitration */
++ HostCmd_DS_802_11_BCA_TIMESHARE bca_ts;
++
++ /** sleep_params */
++ SleepParams sp;
++
++ /** sleep_period (Enhanced Power Save) */
++ SleepPeriod sleep_period;
++
++#define MAX_REGION_CHANNEL_NUM 2
++ /** Region Channel data */
++ REGION_CHANNEL region_channel[MAX_REGION_CHANNEL_NUM];
++
++ REGION_CHANNEL universal_channel[MAX_REGION_CHANNEL_NUM];
++
++ /** 11D and Domain Regulatory Data */
++ wlan_802_11d_domain_reg_t DomainReg;
++ parsed_region_chan_11d_t parsed_region_chan;
++
++ /** FSM variable for 11d support */
++ wlan_802_11d_state_t State11D;
++ u8 beaconBuffer[MAX_SCAN_BEACON_BUFFER];
++ u8 *pBeaconBufEnd;
++
++ /** MISCELLANEOUS */
++ /* Card Information Structure */
++ u8 CisInfoBuf[512];
++ u16 CisInfoLen;
++
++ HostCmd_DS_802_11_GET_LOG LogMsg;
++ u16 ScanProbes;
++
++ u32 PktTxCtrl;
++
++ u8 *helper;
++ u32 helper_len;
++ u8 *fmimage;
++ u32 fmimage_len;
++ u16 TxRate;
++
++ wps_t wps;
++
++ wlan_dbg dbg;
++ wlan_subscribe_event subevent;
++ u8 sdiomode;
++ u32 num_cmd_timeout;
++};
++
++#endif /* _WLAN_DEV_H_ */
+diff --git a/drivers/net/wireless/marvell8686/wlan_fops.c b/drivers/net/wireless/marvell8686/wlan_fops.c
+new file mode 100644
+index 0000000..1e27d6f
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_fops.c
+@@ -0,0 +1,217 @@
++/** @file wlan_fops.c
++ * @brief This file contains the file read functions
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2006
++ */
++/********************************************************
++Change log:
++ 01/06/06: Add Doxygen format comments
++
++********************************************************/
++
++#include "include.h"
++
++#include <linux/fs.h>
++#include <asm/uaccess.h>
++#include <asm/fcntl.h>
++#include <linux/vmalloc.h>
++
++/********************************************************
++ Local Variables
++********************************************************/
++
++/********************************************************
++ Global Variables
++********************************************************/
++
++/********************************************************
++ Local Functions
++********************************************************/
++
++/**
++ * @brief This function opens/create a file in kernel mode.
++ *
++ * @param filename Name of the file to be opened
++ * @param flags File flags
++ * @param mode File permissions
++ * @return file pointer if successful or NULL if failed.
++ */
++static struct file *
++wlan_fopen(const char *filename, unsigned int flags, int mode)
++{
++ int orgfsuid, orgfsgid;
++ struct file *file_ret;
++
++ /* Save uid and gid used for filesystem access. */
++
++ orgfsuid = current->fsuid;
++ orgfsgid = current->fsgid;
++
++ /* Set user and group to 0 (root) */
++ current->fsuid = 0;
++ current->fsgid = 0;
++
++ /* Open the file in kernel mode */
++ file_ret = filp_open(filename, flags, mode);
++
++ /* Restore the uid and gid */
++ current->fsuid = orgfsuid;
++ current->fsgid = orgfsgid;
++
++ /* Check if the file was opened successfully
++ and return the file pointer of it was. */
++ return ((IS_ERR(file_ret)) ? NULL : file_ret);
++}
++
++/**
++ * @brief This function closes a file in kernel mode.
++ *
++ * @param file_ptr File pointer
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_fclose(struct file *file_ptr)
++{
++ int orgfsuid, orgfsgid;
++ int file_ret;
++
++ if ((NULL == file_ptr) || (IS_ERR(file_ptr)))
++ return -ENOENT;
++
++ /* Save uid and gid used for filesystem access. */
++ orgfsuid = current->fsuid;
++ orgfsgid = current->fsgid;
++
++ /* Set user and group to 0 (root) */
++ current->fsuid = 0;
++ current->fsgid = 0;
++
++ /* Close the file in kernel mode (user_id = 0) */
++ file_ret = filp_close(file_ptr, 0);
++
++ /* Restore the uid and gid */
++ current->fsuid = orgfsuid;
++ current->fsgid = orgfsgid;
++
++ return (file_ret);
++}
++
++/**
++ * @brief This function reads data from files in kernel mode.
++ *
++ * @param file_ptr File pointer
++ * @param buf Buffers to read data into
++ * @param len Length of buffer
++ * @return number of characters read
++ */
++static int
++wlan_fread(struct file *file_ptr, char *buf, int len)
++{
++ int orgfsuid, orgfsgid;
++ int file_ret;
++ mm_segment_t orgfs;
++
++ /* Check if the file pointer is valid */
++ if ((NULL == file_ptr) || (IS_ERR(file_ptr)))
++ return -ENOENT;
++
++ /* Check for a valid file read function */
++ if (file_ptr->f_op->read == NULL)
++ return -ENOSYS;
++
++ /* Check for access permissions */
++ if (((file_ptr->f_flags & O_ACCMODE) & (O_RDONLY | O_RDWR)) == 0)
++ return -EACCES;
++
++ /* Check if there is a valid length */
++ if (0 >= len)
++ return -EINVAL;
++
++ /* Save uid and gid used for filesystem access. */
++ orgfsuid = current->fsuid;
++ orgfsgid = current->fsgid;
++
++ /* Set user and group to 0 (root) */
++ current->fsuid = 0;
++ current->fsgid = 0;
++
++ /* Save FS register and set FS register to kernel
++ space, needed for read and write to accept
++ buffer in kernel space. */
++ orgfs = get_fs();
++
++ /* Set the FS register to KERNEL mode. */
++ set_fs(KERNEL_DS);
++
++ /* Read the actual data from the file */
++ file_ret = file_ptr->f_op->read(file_ptr, buf, len, &file_ptr->f_pos);
++
++ /* Restore the FS register */
++ set_fs(orgfs);
++
++ /* Restore the uid and gid */
++ current->fsuid = orgfsuid;
++ current->fsgid = orgfsgid;
++
++ return (file_ret);
++}
++
++/********************************************************
++ Global Functions
++********************************************************/
++
++/**
++ * @brief This function free FW/Helper buffer.
++ *
++ * @param addr Pointer to buffer storing FW/Helper
++ * @return None
++ */
++void
++fw_buffer_free(u8 * addr)
++{
++ vfree(addr);
++}
++
++/**
++ * @brief This function reads FW/Helper.
++ *
++ * @param name File name
++ * @param addr Pointer to buffer storing FW/Helper
++ * @param len Pointer to length of FW/Helper
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++fw_read(const char *name, u8 ** addr, u32 * len)
++{
++ struct file *fp;
++ int ret;
++ u8 *ptr;
++
++ fp = wlan_fopen(name, O_RDWR, 0);
++
++ if (fp == NULL) {
++ PRINTM(MSG, "Could not open file:%s\n", name);
++ return WLAN_STATUS_FAILURE;
++ }
++
++ /*calculate file length */
++ *len = fp->f_dentry->d_inode->i_size - fp->f_pos;
++
++ ptr = (u8 *) vmalloc(*len + 1023);
++ if (ptr == NULL) {
++ PRINTM(MSG, "vmalloc failure\n");
++ return WLAN_STATUS_FAILURE;
++ }
++ if (wlan_fread(fp, ptr, *len) > 0) {
++ *addr = ptr;
++ ret = WLAN_STATUS_SUCCESS;
++ } else {
++ fw_buffer_free(ptr);
++ *addr = NULL;
++ PRINTM(MSG, "fail to read the file %s \n", name);
++ ret = WLAN_STATUS_FAILURE;
++ }
++
++ wlan_fclose(fp);
++ return ret;
++}
+diff --git a/drivers/net/wireless/marvell8686/wlan_fw.c b/drivers/net/wireless/marvell8686/wlan_fw.c
+new file mode 100644
+index 0000000..0fc258d
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_fw.c
+@@ -0,0 +1,532 @@
++/** @file wlan_fw.c
++ * @brief This file contains the initialization for FW
++ * and HW
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2007
++ */
++/********************************************************
++Change log:
++ 09/28/05: Add Doxygen format comments
++ 01/05/06: Add kernel 2.6.x support
++ 01/11/06: Conditionalize new scan/join functions.
++ Cleanup association response handler initialization.
++ 01/06/05: Add FW file read
++ 05/08/06: Remove the 2nd GET_HW_SPEC command and TempAddr/PermanentAddr
++ 06/30/06: replaced MODULE_PARM(name, type) with module_param(name, type, perm)
++
++********************************************************/
++
++#include "include.h"
++#include <linux/vmalloc.h>
++
++/********************************************************
++ Local Variables
++********************************************************/
++
++extern const char *helper_name;
++extern const char *fw_name;
++
++#if 0
++module_param(helper_name, charp, 0);
++module_param(fw_name, charp, 0);
++#endif
++
++#ifdef MFG_CMD_SUPPORT
++int mfgmode = 0;
++module_param(mfgmode, int, 0);
++#endif
++
++/********************************************************
++ Global Variables
++********************************************************/
++
++/********************************************************
++ Local Functions
++********************************************************/
++
++/**
++ * @brief This function downloads firmware image, gets
++ * HW spec from firmware and set basic parameters to
++ * firmware.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_setup_station_hw(wlan_private * priv)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_adapter *adapter = priv->adapter;
++ u8 *ptr = NULL;
++ u32 len = 0;
++
++ //HostCmd_DS_SDIO_INT_CONFIG sdio_int_cfg;
++
++ ENTER();
++
++ sbi_disable_host_int(priv);
++
++#if 0
++ if ((intmode == INTMODE_GPIO) && (gpiopin == 0)) {
++ PRINTM(MSG, "Invalid gpio pin#\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++#endif
++
++ adapter->fmimage = NULL;
++ adapter->fmimage_len = 0;
++ adapter->helper = NULL;
++ adapter->helper_len = 0;
++
++ if (helper_name != NULL) {
++ if (fw_read(helper_name, &ptr, &len) != WLAN_STATUS_FAILURE) {
++ adapter->helper = ptr;
++ adapter->helper_len = len;
++ PRINTM(INFO, "helper read success, len=%x\n", len);
++ } else {
++ PRINTM(MSG, "helper %s read fail.\n", helper_name);
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++ }
++
++ if (fw_name != NULL) {
++ if (fw_read(fw_name, &ptr, &len) != WLAN_STATUS_FAILURE) {
++ adapter->fmimage = ptr;
++ adapter->fmimage_len = len;
++ PRINTM(INFO, "fw read success, len=%x\n", len);
++ } else {
++ PRINTM(MSG, "fw %s read fail.\n", fw_name);
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++ }
++
++ /* Download the helper */
++ ret = sbi_prog_helper(priv);
++
++ if (ret) {
++ PRINTM(INFO, "Bootloader in invalid state!\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++ /* Download the main firmware via the helper firmware */
++ if (sbi_prog_firmware_w_helper(priv)) {
++ PRINTM(INFO, "Wlan FW download failed!\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ /* check if the fimware is downloaded successfully or not */
++ if (sbi_verify_fw_download(priv)) {
++ PRINTM(INFO, "FW failed to be active in time!\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++#define RF_REG_OFFSET 0x07
++#define RF_REG_VALUE 0xc8
++
++ sbi_enable_host_int(priv);
++
++#define INT_RASING_EDGE 0
++#define INT_FALLING_EDGE 1
++
++#define DELAY_1_US 1
++#if 0
++ if (intmode == INTMODE_GPIO) {
++ /* This command should be issued first */
++ sdio_int_cfg.Action = HostCmd_ACT_GEN_SET;
++ sdio_int_cfg.Gpio_pin = gpiopin;
++ sdio_int_cfg.Gpio_int_edge = INT_FALLING_EDGE;
++ sdio_int_cfg.Gpio_pulse_width = DELAY_1_US;
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_SDIO_GPIO_INT_CONFIG,
++ 0, HostCmd_OPTION_WAITFORRSP,
++ 0, &sdio_int_cfg);
++ }
++#endif
++#ifdef MFG_CMD_SUPPORT
++ if (mfgmode == 0) {
++#endif
++
++ /*
++ * Read MAC address from HW
++ */
++ memset(adapter->CurrentAddr, 0xff, MRVDRV_ETH_ADDR_LEN);
++
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_GET_HW_SPEC,
++ 0, HostCmd_OPTION_WAITFORRSP, 0, NULL);
++
++ if (ret) {
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_MAC_CONTROL,
++ 0, HostCmd_OPTION_WAITFORRSP, 0,
++ &adapter->CurrentPacketFilter);
++
++ if (ret) {
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_FW_WAKE_METHOD,
++ HostCmd_ACT_GET,
++ HostCmd_OPTION_WAITFORRSP, 0,
++ &priv->adapter->fwWakeupMethod);
++
++ if (ret) {
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++#ifdef MFG_CMD_SUPPORT
++ }
++#endif
++
++#ifdef MFG_CMD_SUPPORT
++ if (mfgmode == 0) {
++#endif
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_RATE_ADAPT_RATESET,
++ HostCmd_ACT_GEN_GET,
++ HostCmd_OPTION_WAITFORRSP, 0, NULL);
++ if (ret) {
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++ priv->adapter->DataRate = 0;
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_RF_TX_POWER,
++ HostCmd_ACT_GEN_GET,
++ HostCmd_OPTION_WAITFORRSP, 0, NULL);
++
++ if (ret) {
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++#ifdef MFG_CMD_SUPPORT
++ }
++#endif
++
++ ret = WLAN_STATUS_SUCCESS;
++ done:
++ if (adapter->helper != NULL) {
++ fw_buffer_free(adapter->helper);
++ }
++ if (adapter->fmimage != NULL) {
++ fw_buffer_free(adapter->fmimage);
++ }
++
++ LEAVE();
++
++ return (ret);
++}
++
++/**
++ * @brief This function initializes timers.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return n/a
++ */
++static void
++init_sync_objects(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++
++ InitializeTimer(&Adapter->MrvDrvCommandTimer,
++ MrvDrvCommandTimerFunction, priv);
++ Adapter->CommandTimerIsSet = FALSE;
++
++#ifdef REASSOCIATION
++ /* Initialize the timer for the reassociation */
++ InitializeTimer(&Adapter->MrvDrvTimer, MrvDrvReassocTimerFunction, priv);
++ Adapter->ReassocTimerIsSet = FALSE;
++#endif /* REASSOCIATION */
++
++ return;
++}
++
++/**
++ * @brief This function allocates buffer for the member of adapter
++ * structure like command buffer and BSSID list.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_allocate_adapter(wlan_private * priv)
++{
++ u32 ulBufSize;
++ wlan_adapter *Adapter = priv->adapter;
++
++ BSSDescriptor_t *pTempScanTable;
++
++ /* Allocate buffer to store the BSSID list */
++ ulBufSize = sizeof(BSSDescriptor_t) * MRVDRV_MAX_BSSID_LIST;
++ if (!(pTempScanTable = kmalloc(ulBufSize, GFP_KERNEL))) {
++ return WLAN_STATUS_FAILURE;
++ }
++
++ Adapter->ScanTable = pTempScanTable;
++ memset(Adapter->ScanTable, 0, ulBufSize);
++
++ if (!(Adapter->bgScanConfig =
++ kmalloc(sizeof(HostCmd_DS_802_11_BG_SCAN_CONFIG), GFP_KERNEL))) {
++ return WLAN_STATUS_FAILURE;
++ }
++ Adapter->bgScanConfigSize = sizeof(HostCmd_DS_802_11_BG_SCAN_CONFIG);
++ memset(Adapter->bgScanConfig, 0, Adapter->bgScanConfigSize);
++
++ spin_lock_init(&Adapter->QueueSpinLock);
++
++ /* Allocate the command buffers */
++ if (AllocateCmdBuffer(priv) != WLAN_STATUS_SUCCESS) {
++ return WLAN_STATUS_FAILURE;
++ }
++
++ memset(&Adapter->PSConfirmSleep, 0, sizeof(PS_CMD_ConfirmSleep));
++ Adapter->PSConfirmSleep.SeqNum = wlan_cpu_to_le16(++Adapter->SeqNum);
++ Adapter->PSConfirmSleep.Command =
++ wlan_cpu_to_le16(HostCmd_CMD_802_11_PS_MODE);
++ Adapter->PSConfirmSleep.Size =
++ wlan_cpu_to_le16(sizeof(PS_CMD_ConfirmSleep));
++ Adapter->PSConfirmSleep.Result = 0;
++ Adapter->PSConfirmSleep.Action =
++ wlan_cpu_to_le16(HostCmd_SubCmd_Sleep_Confirmed);
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function initializes the adapter structure
++ * and set default value to the member of adapter.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return n/a
++ */
++static void
++wlan_init_adapter(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int i;
++
++ Adapter->ScanProbes = 0;
++
++ Adapter->bcn_avg_factor = DEFAULT_BCN_AVG_FACTOR;
++ Adapter->data_avg_factor = DEFAULT_DATA_AVG_FACTOR;
++
++ /* ATIM params */
++ Adapter->AtimWindow = 0;
++ Adapter->ATIMEnabled = FALSE;
++
++ Adapter->MediaConnectStatus = WlanMediaStateDisconnected;
++
++ memset(Adapter->CurrentAddr, 0xff, MRVDRV_ETH_ADDR_LEN);
++
++ /* Status variables */
++ Adapter->HardwareStatus = WlanHardwareStatusInitializing;
++
++ /* scan type */
++ Adapter->ScanType = HostCmd_SCAN_TYPE_ACTIVE;
++
++ /* scan mode */
++ Adapter->ScanMode = HostCmd_BSS_TYPE_ANY;
++
++ /* scan time */
++ Adapter->SpecificScanTime = MRVDRV_SPECIFIC_SCAN_CHAN_TIME;
++ Adapter->ActiveScanTime = MRVDRV_ACTIVE_SCAN_CHAN_TIME;
++ Adapter->PassiveScanTime = MRVDRV_PASSIVE_SCAN_CHAN_TIME;
++
++ /* 802.11 specific */
++ Adapter->SecInfo.WEPStatus = Wlan802_11WEPDisabled;
++ for (i = 0; i < sizeof(Adapter->WepKey) / sizeof(Adapter->WepKey[0]); i++)
++ memset(&Adapter->WepKey[i], 0, sizeof(MRVL_WEP_KEY));
++ Adapter->CurrentWepKeyIndex = 0;
++ Adapter->SecInfo.AuthenticationMode = Wlan802_11AuthModeOpen;
++ Adapter->SecInfo.EncryptionMode = CIPHER_NONE;
++ Adapter->AdhocAESEnabled = FALSE;
++ Adapter->InfrastructureMode = Wlan802_11Infrastructure;
++
++ Adapter->NumInScanTable = 0;
++ Adapter->pAttemptedBSSDesc = NULL;
++#ifdef REASSOCIATION
++ OS_INIT_SEMAPHORE(&Adapter->ReassocSem);
++#endif
++ Adapter->pBeaconBufEnd = Adapter->beaconBuffer;
++
++ Adapter->HisRegCpy |= HIS_TxDnLdRdy;
++
++ memset(&Adapter->CurBssParams, 0, sizeof(Adapter->CurBssParams));
++
++ /* PnP and power profile */
++ Adapter->SurpriseRemoved = FALSE;
++
++ Adapter->CurrentPacketFilter =
++ HostCmd_ACT_MAC_RTS_CTS_ENABLE |
++ HostCmd_ACT_MAC_RX_ON | HostCmd_ACT_MAC_TX_ON;
++
++ Adapter->RadioOn = RADIO_ON;
++#ifdef REASSOCIATION
++#if (WIRELESS_EXT >= 18)
++ Adapter->Reassoc_on = FALSE;
++#else
++ Adapter->Reassoc_on = TRUE;
++#endif
++#endif /* REASSOCIATION */
++ Adapter->TxAntenna = RF_ANTENNA_2;
++ Adapter->RxAntenna = RF_ANTENNA_AUTO;
++
++ Adapter->HWRateDropMode = HW_TABLE_RATE_DROP;
++ Adapter->Is_DataRate_Auto = TRUE;
++ Adapter->BeaconPeriod = MRVDRV_BEACON_INTERVAL;
++
++ Adapter->AdhocChannel = DEFAULT_AD_HOC_CHANNEL;
++
++ Adapter->PSMode = Wlan802_11PowerModeCAM;
++ Adapter->MultipleDtim = MRVDRV_DEFAULT_MULTIPLE_DTIM;
++
++ Adapter->ListenInterval = MRVDRV_DEFAULT_LISTEN_INTERVAL;
++
++ Adapter->PSState = PS_STATE_FULL_POWER;
++
++ Adapter->NeedToWakeup = FALSE;
++ Adapter->LocalListenInterval = 0; /* default value in firmware will be used */
++ Adapter->fwWakeupMethod = WAKEUP_FW_UNCHANGED;
++
++ Adapter->IsDeepSleep = FALSE;
++ Adapter->IsAutoDeepSleepEnabled = FALSE;
++
++ Adapter->bWakeupDevRequired = FALSE;
++
++ Adapter->WakeupTries = 0;
++ Adapter->bHostSleepConfigured = FALSE;
++
++ Adapter->HSCfg.conditions = HOST_SLEEP_CFG_CANCEL;
++ Adapter->HSCfg.gpio = 0;
++ Adapter->HSCfg.gap = 0;
++
++ Adapter->DataRate = 0; // Initially indicate the rate as auto
++
++ Adapter->adhoc_grate_enabled = FALSE;
++
++ Adapter->IntCounter = Adapter->IntCounterSaved = 0;
++
++ INIT_LIST_HEAD((struct list_head *) &Adapter->RxSkbQ);
++
++ Adapter->gen_null_pkg = TRUE; /*Enable NULL Pkg generation */
++
++ init_waitqueue_head(&Adapter->cmd_EncKey);
++
++ spin_lock_init(&Adapter->CurrentTxLock);
++
++ Adapter->CurrentTxSkb = NULL;
++ Adapter->PktTxCtrl = 0;
++
++ return;
++}
++
++/********************************************************
++ Global Functions
++********************************************************/
++
++/**
++ * @brief This function initializes firmware
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_init_fw(wlan_private * priv)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ /* Allocate adapter structure */
++ if ((ret = wlan_allocate_adapter(priv)) != WLAN_STATUS_SUCCESS) {
++ goto done;
++ }
++
++ /* init adapter structure */
++ wlan_init_adapter(priv);
++
++ /* init timer etc. */
++ init_sync_objects(priv);
++
++ /* download fimrware etc. */
++ if ((ret = wlan_setup_station_hw(priv)) != WLAN_STATUS_SUCCESS) {
++ Adapter->HardwareStatus = WlanHardwareStatusNotReady;
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++ /* init 802.11d */
++ wlan_init_11d(priv);
++
++ Adapter->HardwareStatus = WlanHardwareStatusReady;
++ ret = WLAN_STATUS_SUCCESS;
++ done:
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function frees the structure of adapter
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return n/a
++ */
++void
++wlan_free_adapter(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (!Adapter) {
++ PRINTM(INFO, "Why double free adapter?:)\n");
++ return;
++ }
++
++ PRINTM(INFO, "Free Command buffer\n");
++ FreeCmdBuffer(priv);
++
++ PRINTM(INFO, "Free CommandTimer\n");
++ if (Adapter->CommandTimerIsSet) {
++ CancelTimer(&Adapter->MrvDrvCommandTimer);
++ Adapter->CommandTimerIsSet = FALSE;
++ }
++ FreeTimer(&Adapter->MrvDrvCommandTimer);
++#ifdef REASSOCIATION
++ PRINTM(INFO, "Free MrvDrvTimer\n");
++ if (Adapter->ReassocTimerIsSet) {
++ CancelTimer(&Adapter->MrvDrvTimer);
++ Adapter->ReassocTimerIsSet = FALSE;
++ }
++ FreeTimer(&Adapter->MrvDrvTimer);
++#endif /* REASSOCIATION */
++
++ if (Adapter->bgScanConfig) {
++ kfree(Adapter->bgScanConfig);
++ Adapter->bgScanConfig = NULL;
++ }
++
++ OS_FREE_LOCK(&Adapter->CurrentTxLock);
++ OS_FREE_LOCK(&Adapter->QueueSpinLock);
++
++ PRINTM(INFO, "Free ScanTable\n");
++ if (Adapter->ScanTable) {
++ kfree(Adapter->ScanTable);
++ Adapter->ScanTable = NULL;
++ }
++
++ PRINTM(INFO, "Free Adapter\n");
++
++ /* Free the adapter object itself */
++ kfree(Adapter);
++ priv->adapter = NULL;
++ LEAVE();
++}
+diff --git a/drivers/net/wireless/marvell8686/wlan_join.c b/drivers/net/wireless/marvell8686/wlan_join.c
+new file mode 100644
+index 0000000..46d5961
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_join.c
+@@ -0,0 +1,2031 @@
++/** @file wlan_join.c
++ *
++ * @brief Functions implementing wlan infrastructure and adhoc join routines
++ *
++ * IOCTL handlers as well as command preperation and response routines
++ * for sending adhoc start, adhoc join, and association commands
++ * to the firmware.
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2006
++ *
++ * @sa wlan_join.h
++ */
++/*************************************************************
++Change Log:
++ 01/11/06: Initial revision. Match new scan code, relocate related functions
++ 01/19/06: Fix failure to save adhoc ssid as current after adhoc start
++ 03/16/06: Add a semaphore to protect reassociation thread
++
++************************************************************/
++
++#include "include.h"
++
++/**
++ * @brief This function finds out the common rates between rate1 and rate2.
++ *
++ * It will fill common rates in rate1 as output if found.
++ *
++ * NOTE: Setting the MSB of the basic rates need to be taken
++ * care, either before or after calling this function
++ *
++ * @param Adapter A pointer to wlan_adapter structure
++ * @param rate1 the buffer which keeps input and output
++ * @param rate1_size the size of rate1 buffer
++ * @param rate2 the buffer which keeps rate2
++ * @param rate2_size the size of rate2 buffer.
++ *
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++get_common_rates(wlan_adapter * Adapter, u8 * rate1,
++ int rate1_size, u8 * rate2, int rate2_size)
++{
++ u8 *ptr = rate1;
++ int ret = WLAN_STATUS_SUCCESS;
++ u8 *tmp = NULL;
++ int i, j;
++
++ if (!(tmp = kmalloc(rate1_size, GFP_KERNEL))) {
++ PRINTM(WARN, "Allocate buffer for common rates failed\n");
++ return -ENOMEM;
++ }
++
++ memcpy(tmp, rate1, rate1_size);
++ memset(rate1, 0, rate1_size);
++
++ for (i = 0; rate2[i] && i < rate2_size; i++) {
++ for (j = 0; tmp[j] && j < rate1_size; j++) {
++ /* Check common rate, excluding the bit for basic rate */
++ if ((rate2[i] & 0x7F) == (tmp[j] & 0x7F)) {
++ *rate1++ = tmp[j];
++ break;
++ }
++ }
++ }
++
++ HEXDUMP("rate1 (AP) Rates", tmp, rate1_size);
++ HEXDUMP("rate2 (Card) Rates", rate2, rate2_size);
++ HEXDUMP("Common Rates", ptr, rate1 - ptr);
++ PRINTM(INFO, "Tx DataRate is set to 0x%X\n", Adapter->DataRate);
++
++ if (!Adapter->Is_DataRate_Auto) {
++ while (*ptr) {
++ if ((*ptr & 0x7f) == Adapter->DataRate) {
++ ret = WLAN_STATUS_SUCCESS;
++ goto done;
++ }
++ ptr++;
++ }
++ PRINTM(MSG, "Previously set fixed data rate %#x isn't "
++ "compatible with the network.\n", Adapter->DataRate);
++
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ ret = WLAN_STATUS_SUCCESS;
++ done:
++ kfree(tmp);
++ return ret;
++}
++
++/**
++ * @brief Create the intersection of the rates supported by a target BSS and
++ * our Adapter settings for use in an assoc/join command.
++ *
++ * @param Adapter A pointer to wlan_adapter structure
++ * @param pBSSDesc BSS Descriptor whose rates are used in the setup
++ * @param pOutRates Output: Octet array of rates common between the BSS
++ * and the Adapter supported rates settings
++ * @param pOutRatesSize Output: Number of rates/octets set in pOutRates
++ *
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ *
++ */
++static int
++setup_rates_from_bssdesc(wlan_adapter * Adapter,
++ BSSDescriptor_t * pBSSDesc,
++ u8 * pOutRates, int *pOutRatesSize)
++{
++ u8 *card_rates;
++ int card_rates_size;
++
++ ENTER();
++
++ memcpy(pOutRates, pBSSDesc->SupportedRates, WLAN_SUPPORTED_RATES);
++
++ card_rates = SupportedRates;
++ card_rates_size = sizeof(SupportedRates);
++
++ if (get_common_rates(Adapter, pOutRates, WLAN_SUPPORTED_RATES,
++ card_rates, card_rates_size)) {
++ *pOutRatesSize = 0;
++ PRINTM(INFO, "get_common_rates failed\n");
++ LEAVE();
++ return WLAN_STATUS_FAILURE;
++ }
++
++ *pOutRatesSize = MIN(strlen(pOutRates), WLAN_SUPPORTED_RATES);
++
++ LEAVE();
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Retrieve the association response
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++int
++wlan_get_assoc_rsp_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int copySize;
++
++ /*
++ * Set the amount to copy back to the application as the minimum of the
++ * available assoc resp data or the buffer provided by the application
++ */
++ copySize = MIN(Adapter->assocRspSize, wrq->u.data.length);
++
++ /* Copy the (re)association response back to the application */
++ if (copy_to_user(wrq->u.data.pointer, Adapter->assocRspBuffer, copySize)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++
++ /* Returned copy length */
++ wrq->u.data.length = copySize;
++
++ /* Reset assoc buffer */
++ Adapter->assocRspSize = 0;
++
++ /* No error on return */
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Set an opaque block of Marvell TLVs for insertion into the
++ * association command
++ *
++ * Pass an opaque block of data, expected to be Marvell TLVs, to the driver
++ * for eventual passthrough to the firmware in an associate/join
++ * (and potentially start) command.
++ *
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++int
++wlan_set_mrvl_tlv_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ /* If the passed length is zero, reset the buffer */
++ if (wrq->u.data.length == 0) {
++ Adapter->mrvlAssocTlvBufferLen = 0;
++ } else {
++ /*
++ * Verify that the passed length is not larger than the available
++ * space remaining in the buffer
++ */
++ if (wrq->u.data.length < (sizeof(Adapter->mrvlAssocTlvBuffer)
++ - Adapter->mrvlAssocTlvBufferLen)) {
++ /* Append the passed data to the end of the mrvlAssocTlvBuffer */
++ if (copy_from_user(Adapter->mrvlAssocTlvBuffer
++ + Adapter->mrvlAssocTlvBufferLen,
++ wrq->u.data.pointer, wrq->u.data.length)) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ /* Increment the stored buffer length by the size passed */
++ Adapter->mrvlAssocTlvBufferLen += wrq->u.data.length;
++ } else {
++ /* Passed data does not fit in the remaining buffer space */
++ ret = WLAN_STATUS_FAILURE;
++ }
++ }
++
++ /* Return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE */
++ return ret;
++}
++
++/**
++ * @brief Stop Adhoc Network
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++int
++wlan_do_adhocstop_ioctl(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ if (Adapter->InfrastructureMode == Wlan802_11IBSS &&
++ Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++
++ ret = StopAdhocNetwork(priv);
++
++ } else {
++ LEAVE();
++ return -ENOTSUPP;
++ }
++
++ LEAVE();
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Set essid
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param dwrq A pointer to iw_point structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS--success, otherwise--fail
++ */
++int
++wlan_set_essid(struct net_device *dev, struct iw_request_info *info,
++ struct iw_point *dwrq, char *extra)
++{
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++ WLAN_802_11_SSID reqSSID;
++ int i;
++
++ ENTER();
++
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++
++ /* Clear any past association response stored for application retrieval */
++ Adapter->assocRspSize = 0;
++
++#ifdef REASSOCIATION
++ // cancel re-association timer if there's one
++ if (Adapter->ReassocTimerIsSet == TRUE) {
++ CancelTimer(&Adapter->MrvDrvTimer);
++ Adapter->ReassocTimerIsSet = FALSE;
++ }
++
++ if (OS_ACQ_SEMAPHORE_BLOCK(&Adapter->ReassocSem)) {
++ PRINTM(ERROR, "Acquire semaphore error, wlan_set_essid\n");
++ return -EBUSY;
++ }
++#endif /* REASSOCIATION */
++
++ /* Check the size of the string */
++ if (dwrq->length > IW_ESSID_MAX_SIZE + 1) {
++ ret = -E2BIG;
++ goto setessid_ret;
++ }
++
++ memset(&reqSSID, 0, sizeof(WLAN_802_11_SSID));
++
++ /*
++ * Check if we asked for `any' or 'particular'
++ */
++ if (!dwrq->flags) {
++ if (FindBestNetworkSsid(priv, &reqSSID)) {
++ PRINTM(INFO, "Could not find best network\n");
++ ret = WLAN_STATUS_SUCCESS;
++ goto setessid_ret;
++ }
++ } else {
++ /* Set the SSID */
++#if WIRELESS_EXT > 20
++ reqSSID.SsidLength = dwrq->length;
++#else
++ reqSSID.SsidLength = dwrq->length - 1;
++#endif
++ memcpy(reqSSID.Ssid, extra,
++ MIN(reqSSID.SsidLength, reqSSID.SsidLength));
++
++ }
++
++ PRINTM(INFO, "Requested new SSID = %s\n",
++ (reqSSID.SsidLength > 0) ? (char *) reqSSID.Ssid : "NULL");
++ if (!reqSSID.SsidLength || reqSSID.Ssid[0] < 0x20) {
++ PRINTM(INFO, "Invalid SSID - aborting set_essid\n");
++ ret = -EINVAL;
++ goto setessid_ret;
++ }
++
++ if (Adapter->InfrastructureMode == Wlan802_11Infrastructure) {
++ /* infrastructure mode */
++ PRINTM(INFO, "SSID requested = %s\n", reqSSID.Ssid);
++
++ if ((dwrq->flags & IW_ENCODE_INDEX) > 1) {
++ i = (dwrq->flags & IW_ENCODE_INDEX) - 1; /* convert to 0 based */
++
++ PRINTM(INFO, "Request SSID by index = %d\n", i);
++
++ if (i > Adapter->NumInScanTable) {
++ /* Failed to find in table since index is > current max. */
++ i = -EINVAL;
++ }
++ } else {
++ SendSpecificSSIDScan(priv, &reqSSID);
++ i = FindSSIDInList(Adapter,
++ &reqSSID, NULL, Wlan802_11Infrastructure);
++ }
++
++ if (i >= 0) {
++ PRINTM(INFO, "SSID found in scan list ... associating...\n");
++
++ ret = wlan_associate(priv, &Adapter->ScanTable[i]);
++
++ if (ret) {
++ goto setessid_ret;
++ }
++ } else { /* i >= 0 */
++ ret = i; /* return -ENETUNREACH, passed from FindSSIDInList */
++ goto setessid_ret;
++ }
++ } else {
++ /* ad hoc mode */
++ /* If the requested SSID matches current SSID return */
++ if (!SSIDcmp(&Adapter->CurBssParams.BSSDescriptor.Ssid, &reqSSID)) {
++ ret = WLAN_STATUS_SUCCESS;
++ goto setessid_ret;
++ }
++
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ /*
++ * Exit Adhoc mode
++ */
++ PRINTM(INFO, "Sending Adhoc Stop\n");
++ ret = StopAdhocNetwork(priv);
++
++ if (ret) {
++ goto setessid_ret;
++ }
++ }
++ Adapter->AdhocLinkSensed = FALSE;
++
++ if ((dwrq->flags & IW_ENCODE_INDEX) > 1) {
++ i = (dwrq->flags & IW_ENCODE_INDEX) - 1; /* 0 based */
++ if (i > Adapter->NumInScanTable) {
++ /* Failed to find in table since index is > current max. */
++ i = -EINVAL;
++ }
++ } else {
++ /* Scan for the network */
++ SendSpecificSSIDScan(priv, &reqSSID);
++
++ /* Search for the requested SSID in the scan table */
++ i = FindSSIDInList(Adapter, &reqSSID, NULL, Wlan802_11IBSS);
++ }
++
++ if (i >= 0) {
++ PRINTM(INFO, "SSID found at %d in List, so join\n", i);
++ JoinAdhocNetwork(priv, &Adapter->ScanTable[i]);
++ } else {
++ /* else send START command */
++ PRINTM(INFO, "SSID not found in list, "
++ "so creating adhoc with ssid = %s\n", reqSSID.Ssid);
++
++ StartAdhocNetwork(priv, &reqSSID);
++ } /* end of else (START command) */
++ } /* end of else (Ad hoc mode) */
++
++ /*
++ * The MediaConnectStatus change can be removed later when
++ * the ret code is being properly returned.
++ */
++ /* Check to see if we successfully connected */
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ ret = WLAN_STATUS_SUCCESS;
++ } else {
++ ret = -ENETDOWN;
++ }
++
++ setessid_ret:
++#ifdef REASSOCIATION
++ OS_REL_SEMAPHORE(&Adapter->ReassocSem);
++#endif
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Connect to the AP or Ad-hoc Network with specific bssid
++ *
++ * NOTE: Scan should be issued by application before this function is called
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param awrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++int
++wlan_set_wap(struct net_device *dev, struct iw_request_info *info,
++ struct sockaddr *awrq, char *extra)
++{
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++ const u8 bcast[ETH_ALEN] = { 255, 255, 255, 255, 255, 255 };
++ u8 reqBSSID[ETH_ALEN];
++ int i;
++
++ ENTER();
++
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++
++ /* Clear any past association response stored for application retrieval */
++ Adapter->assocRspSize = 0;
++
++ if (awrq->sa_family != ARPHRD_ETHER)
++ return -EINVAL;
++
++ PRINTM(INFO, "ASSOC: WAP: sa_data: %02x:%02x:%02x:%02x:%02x:%02x\n",
++ (u8) awrq->sa_data[0], (u8) awrq->sa_data[1],
++ (u8) awrq->sa_data[2], (u8) awrq->sa_data[3],
++ (u8) awrq->sa_data[4], (u8) awrq->sa_data[5]);
++#ifdef REASSOCIATION
++ // cancel re-association timer if there's one
++ if (Adapter->ReassocTimerIsSet == TRUE) {
++ CancelTimer(&Adapter->MrvDrvTimer);
++ Adapter->ReassocTimerIsSet = FALSE;
++ }
++#endif /* REASSOCIATION */
++
++ if (!memcmp(bcast, awrq->sa_data, ETH_ALEN)) {
++ i = FindBestSSIDInList(Adapter);
++ } else {
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ if (memcmp
++ (awrq->sa_data,
++ Adapter->CurBssParams.BSSDescriptor.MacAddress,
++ ETH_ALEN) == 0)
++ return WLAN_STATUS_SUCCESS;
++ }
++ memcpy(reqBSSID, awrq->sa_data, ETH_ALEN);
++
++ PRINTM(INFO, "ASSOC: WAP: Bssid = %02x:%02x:%02x:%02x:%02x:%02x\n",
++ reqBSSID[0], reqBSSID[1], reqBSSID[2],
++ reqBSSID[3], reqBSSID[4], reqBSSID[5]);
++
++ /* Search for index position in list for requested MAC */
++ i = FindBSSIDInList(Adapter, reqBSSID, Adapter->InfrastructureMode);
++ }
++
++ if (i < 0) {
++ PRINTM(INFO, "ASSOC: WAP: MAC address not found in BSSID List\n");
++ return -ENETUNREACH;
++ }
++
++ if (Adapter->InfrastructureMode == Wlan802_11Infrastructure) {
++
++ ret = wlan_associate(priv, &Adapter->ScanTable[i]);
++
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++ } else {
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ /* Exit Adhoc mode */
++ ret = StopAdhocNetwork(priv);
++
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++ }
++ Adapter->AdhocLinkSensed = FALSE;
++
++ JoinAdhocNetwork(priv, &Adapter->ScanTable[i]);
++ }
++
++ /* Check to see if we successfully connected */
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ ret = WLAN_STATUS_SUCCESS;
++ } else {
++ ret = -ENETDOWN;
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Associated to a specific BSS discovered in a scan
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param pBSSDesc Pointer to the BSS descriptor to associate with.
++ *
++ * @return WLAN_STATUS_SUCCESS-success, otherwise fail
++ */
++int
++wlan_associate(wlan_private * priv, BSSDescriptor_t * pBSSDesc)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int enableData = TRUE;
++ union iwreq_data wrqu;
++ int ret;
++ IEEEtypes_AssocRsp_t *pAssocRsp;
++ u8 currentBSSID[MRVDRV_ETH_ADDR_LEN];
++ int reassocAttempt = FALSE;
++
++ ENTER();
++
++ /* Return error if the Adapter or table entry is not marked as infra */
++ if ((Adapter->InfrastructureMode != Wlan802_11Infrastructure)
++ || (pBSSDesc->InfrastructureMode != Wlan802_11Infrastructure)) {
++ LEAVE();
++ return -EINVAL;
++ }
++
++ memcpy(&currentBSSID,
++ &Adapter->CurBssParams.BSSDescriptor.MacAddress,
++ sizeof(currentBSSID));
++
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ reassocAttempt = TRUE;
++ PRINTM(INFO, "Attempting reassociation, stopping wmm queues\n");
++ wmm_stop_queue(priv);
++ }
++
++ /* Clear any past association response stored for application retrieval */
++ Adapter->assocRspSize = 0;
++
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_802_11_ASSOCIATE,
++ 0, HostCmd_OPTION_WAITFORRSP, 0, pBSSDesc);
++
++ if (Adapter->wmm.enabled) {
++ /* Don't re-enable carrier until we get the WMM_GET_STATUS event */
++ enableData = FALSE;
++ } else {
++ /* Since WMM is not enabled, setup the queues with the defaults */
++ wmm_setup_queues(priv);
++ }
++
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++
++ if (reassocAttempt
++ && (memcmp(&currentBSSID,
++ &Adapter->CurBssParams.BSSDescriptor.MacAddress,
++ sizeof(currentBSSID)) == 0)) {
++
++ /* Reassociation attempt failed, still associated to old AP,
++ ** no need to wait for WMM notification to restart data
++ */
++ enableData = TRUE;
++ }
++ if (enableData) {
++ PRINTM(INFO, "Post association, re-enabling data flow\n");
++ wmm_start_queue(priv);
++ os_carrier_on(priv);
++ os_start_queue(priv);
++ }
++ } else {
++ PRINTM(INFO, "Post association, stopping data flow\n");
++ os_carrier_off(priv);
++ os_stop_queue(priv);
++ }
++
++ memcpy(wrqu.ap_addr.sa_data,
++ &Adapter->CurBssParams.BSSDescriptor.MacAddress, ETH_ALEN);
++ wrqu.ap_addr.sa_family = ARPHRD_ETHER;
++ wireless_send_event(priv->wlan_dev.netdev, SIOCGIWAP, &wrqu, NULL);
++
++ pAssocRsp = (IEEEtypes_AssocRsp_t *) Adapter->assocRspBuffer;
++
++ if (ret || pAssocRsp->StatusCode) {
++ ret = -ENETUNREACH;
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Associated to a specific indexed entry in the ScanTable
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param tableIdx Index into the ScanTable to associate to, index parameter
++ * base value is 1. No scanning is done before the
++ * association attempt.
++ *
++ * @return WLAN_STATUS_SUCCESS-success, otherwise fail
++ */
++int
++wlan_associate_to_table_idx(wlan_private * priv, int tableIdx)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int ret;
++
++ ENTER();
++
++#ifdef REASSOCIATION
++ if (OS_ACQ_SEMAPHORE_BLOCK(&Adapter->ReassocSem)) {
++ PRINTM(ERROR, "Acquire semaphore error\n");
++ return -EBUSY;
++ }
++#endif
++
++ PRINTM(INFO, "ASSOC: iwpriv: Index = %d, NumInScanTable = %d\n",
++ tableIdx, Adapter->NumInScanTable);
++
++ /* Check index in table, subtract 1 if within range and call association
++ * sub-function. ScanTable[] is 0 based, parameter is 1 based to
++ * conform with IW_ENCODE_INDEX flag parameter passing in iwconfig/iwlist
++ */
++ if (tableIdx && (tableIdx <= Adapter->NumInScanTable)) {
++ ret = wlan_associate(priv, &Adapter->ScanTable[tableIdx - 1]);
++ } else {
++ ret = -EINVAL;
++ }
++
++#ifdef REASSOCIATION
++ OS_REL_SEMAPHORE(&Adapter->ReassocSem);
++#endif
++ LEAVE();
++
++ return ret;
++}
++
++/**
++ * @brief Start an Adhoc Network
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param AdhocSSID The ssid of the Adhoc Network
++ * @return WLAN_STATUS_SUCCESS--success, WLAN_STATUS_FAILURE--fail
++ */
++int
++StartAdhocNetwork(wlan_private * priv, WLAN_802_11_SSID * AdhocSSID)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ Adapter->AdhocCreate = TRUE;
++
++ PRINTM(INFO, "Adhoc Channel = %d\n", Adapter->AdhocChannel);
++ PRINTM(INFO, "CurBssParams.channel = %d\n",
++ Adapter->CurBssParams.BSSDescriptor.Channel);
++ PRINTM(INFO, "CurBssParams.band = %d\n", Adapter->CurBssParams.band);
++
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_802_11_AD_HOC_START,
++ 0, HostCmd_OPTION_WAITFORRSP, 0, AdhocSSID);
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Join an adhoc network found in a previous scan
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param pBSSDesc Pointer to a BSS descriptor found in a previous scan
++ * to attempt to join
++ *
++ * @return WLAN_STATUS_SUCCESS--success, WLAN_STATUS_FAILURE--fail
++ */
++int
++JoinAdhocNetwork(wlan_private * priv, BSSDescriptor_t * pBSSDesc)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ PRINTM(INFO, "JoinAdhocNetwork: CurBss.ssid =%s\n",
++ Adapter->CurBssParams.BSSDescriptor.Ssid.Ssid);
++ PRINTM(INFO, "JoinAdhocNetwork: CurBss.ssid_len =%u\n",
++ Adapter->CurBssParams.BSSDescriptor.Ssid.SsidLength);
++ PRINTM(INFO, "JoinAdhocNetwork: ssid =%s\n", pBSSDesc->Ssid.Ssid);
++ PRINTM(INFO, "JoinAdhocNetwork: ssid len =%u\n",
++ pBSSDesc->Ssid.SsidLength);
++
++ /* check if the requested SSID is already joined */
++ if (Adapter->CurBssParams.BSSDescriptor.Ssid.SsidLength
++ && !SSIDcmp(&pBSSDesc->Ssid,
++ &Adapter->CurBssParams.BSSDescriptor.Ssid)
++ && (Adapter->CurBssParams.BSSDescriptor.InfrastructureMode ==
++ Wlan802_11IBSS)) {
++
++ PRINTM(INFO,
++ "ADHOC_J_CMD: New ad-hoc SSID is the same as current, "
++ "not attempting to re-join");
++
++ return WLAN_STATUS_FAILURE;
++ }
++
++ PRINTM(INFO, "CurBssParams.channel = %d\n",
++ Adapter->CurBssParams.BSSDescriptor.Channel);
++ PRINTM(INFO, "CurBssParams.band = %c\n", Adapter->CurBssParams.band);
++
++ Adapter->AdhocCreate = FALSE;
++
++ // store the SSID info temporarily
++ memset(&Adapter->AttemptedSSIDBeforeScan, 0, sizeof(WLAN_802_11_SSID));
++ memcpy(&Adapter->AttemptedSSIDBeforeScan,
++ &pBSSDesc->Ssid, sizeof(WLAN_802_11_SSID));
++
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_802_11_AD_HOC_JOIN,
++ 0, HostCmd_OPTION_WAITFORRSP, 0, pBSSDesc);
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Stop the Adhoc Network
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS--success, WLAN_STATUS_FAILURE--fail
++ */
++int
++StopAdhocNetwork(wlan_private * priv)
++{
++ return PrepareAndSendCommand(priv, HostCmd_CMD_802_11_AD_HOC_STOP,
++ 0, HostCmd_OPTION_WAITFORRSP, 0, NULL);
++}
++
++/**
++ * @brief Send Deauthentication Request
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS--success, WLAN_STATUS_FAILURE--fail
++ */
++int
++SendDeauthentication(wlan_private * priv)
++{
++ return PrepareAndSendCommand(priv, HostCmd_CMD_802_11_DEAUTHENTICATE,
++ 0, HostCmd_OPTION_WAITFORRSP, 0, NULL);
++}
++
++/**
++ * @brief Set Idle Off
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++int
++wlanidle_off(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++ const u8 zeroMac[] = { 0, 0, 0, 0, 0, 0 };
++ int i;
++
++ ENTER();
++
++ if (Adapter->MediaConnectStatus == WlanMediaStateDisconnected) {
++ if (Adapter->InfrastructureMode == Wlan802_11Infrastructure) {
++ if (memcmp(Adapter->PreviousBSSID, zeroMac, sizeof(zeroMac)) != 0) {
++
++ PRINTM(INFO, "Previous SSID = %s\n",
++ Adapter->PreviousSSID.Ssid);
++ PRINTM(INFO, "Previous BSSID = "
++ "%02x:%02x:%02x:%02x:%02x:%02x:\n",
++ Adapter->PreviousBSSID[0], Adapter->PreviousBSSID[1],
++ Adapter->PreviousBSSID[2], Adapter->PreviousBSSID[3],
++ Adapter->PreviousBSSID[4], Adapter->PreviousBSSID[5]);
++
++ i = FindSSIDInList(Adapter,
++ &Adapter->PreviousSSID,
++ Adapter->PreviousBSSID,
++ Adapter->InfrastructureMode);
++
++ if (i < 0) {
++ SendSpecificBSSIDScan(priv, Adapter->PreviousBSSID);
++ i = FindSSIDInList(Adapter,
++ &Adapter->PreviousSSID,
++ Adapter->PreviousBSSID,
++ Adapter->InfrastructureMode);
++ }
++
++ if (i < 0) {
++ /* If the BSSID could not be found, try just the SSID */
++ i = FindSSIDInList(Adapter,
++ &Adapter->PreviousSSID,
++ NULL, Adapter->InfrastructureMode);
++ }
++
++ if (i < 0) {
++ SendSpecificSSIDScan(priv, &Adapter->PreviousSSID);
++ i = FindSSIDInList(Adapter,
++ &Adapter->PreviousSSID,
++ NULL, Adapter->InfrastructureMode);
++ }
++
++ if (i >= 0) {
++ ret = wlan_associate(priv, &Adapter->ScanTable[i]);
++ }
++ }
++ } else if (Adapter->InfrastructureMode == Wlan802_11IBSS) {
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_AD_HOC_START,
++ 0, HostCmd_OPTION_WAITFORRSP,
++ 0, &Adapter->PreviousSSID);
++ }
++ }
++ /* else it is connected */
++
++ PRINTM(INFO, "\nwlanidle is off");
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Set Idle On
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++int
++wlanidle_on(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ if (Adapter->InfrastructureMode == Wlan802_11Infrastructure) {
++ PRINTM(INFO, "Previous SSID = %s\n", Adapter->PreviousSSID.Ssid);
++ memcpy(&Adapter->PreviousSSID,
++ &Adapter->CurBssParams.BSSDescriptor.Ssid,
++ sizeof(WLAN_802_11_SSID));
++ SendDeauthentication(priv);
++
++ } else if (Adapter->InfrastructureMode == Wlan802_11IBSS) {
++ ret = StopAdhocNetwork(priv);
++ }
++
++ }
++#ifdef REASSOCIATION
++ if (Adapter->ReassocTimerIsSet == TRUE) {
++ CancelTimer(&Adapter->MrvDrvTimer);
++ Adapter->ReassocTimerIsSet = FALSE;
++ }
++#endif /* REASSOCIATION */
++
++ PRINTM(INFO, "\nwlanidle is on");
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Append a generic IE as a passthrough TLV to a TLV buffer.
++ *
++ * This function is called from the network join command prep. routine.
++ * If the IE buffer has been setup by the application, this routine appends
++ * the buffer as a passthrough TLV type to the request.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param ppBuffer pointer to command buffer pointer
++ *
++ * @return bytes added to the buffer
++ */
++static int
++wlan_cmd_append_generic_ie(wlan_private * priv, u8 ** ppBuffer)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int retLen = 0;
++ MrvlIEtypesHeader_t ieHeader;
++
++ /* Null Checks */
++ if (ppBuffer == 0)
++ return 0;
++ if (*ppBuffer == 0)
++ return 0;
++
++ /*
++ * If there is a generic ie buffer setup, append it to the return
++ * parameter buffer pointer.
++ */
++ if (Adapter->genIeBufferLen) {
++ PRINTM(INFO, "append generic %d to %p\n", Adapter->genIeBufferLen,
++ *ppBuffer);
++
++ /* Wrap the generic IE buffer with a passthrough TLV type */
++ ieHeader.Type = wlan_cpu_to_le16(TLV_TYPE_PASSTHROUGH);
++ ieHeader.Len = wlan_cpu_to_le16(Adapter->genIeBufferLen);
++ memcpy(*ppBuffer, &ieHeader, sizeof(ieHeader));
++
++ /* Increment the return size and the return buffer pointer param */
++ *ppBuffer += sizeof(ieHeader);
++ retLen += sizeof(ieHeader);
++
++ /* Copy the generic IE buffer to the output buffer, advance pointer */
++ memcpy(*ppBuffer, Adapter->genIeBuffer, Adapter->genIeBufferLen);
++
++ /* Increment the return size and the return buffer pointer param */
++ *ppBuffer += Adapter->genIeBufferLen;
++ retLen += Adapter->genIeBufferLen;
++
++ /* Reset the generic IE buffer */
++ Adapter->genIeBufferLen = 0;
++ }
++
++ /* return the length appended to the buffer */
++ return retLen;
++}
++
++/**
++ * @brief Append any application provided Marvell TLVs to a TLV buffer.
++ *
++ * This function is called from the network join command prep. routine.
++ * If the Marvell TLV buffer has been setup by the application, this routine
++ * appends the buffer to the request.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param ppBuffer pointer to command buffer pointer
++ *
++ * @return bytes added to the buffer
++ */
++static int
++wlan_cmd_append_marvell_tlv(wlan_private * priv, u8 ** ppBuffer)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int retLen = 0;
++
++ /* Null Checks */
++ if (ppBuffer == 0)
++ return 0;
++ if (*ppBuffer == 0)
++ return 0;
++
++ /*
++ * If there is a Marvell TLV buffer setup, append it to the return
++ * parameter buffer pointer.
++ */
++ if (Adapter->mrvlAssocTlvBufferLen) {
++ PRINTM(INFO, "append tlv %d to %p\n",
++ Adapter->mrvlAssocTlvBufferLen, *ppBuffer);
++
++ /* Copy the TLV buffer to the output buffer, advance pointer */
++ memcpy(*ppBuffer,
++ Adapter->mrvlAssocTlvBuffer, Adapter->mrvlAssocTlvBufferLen);
++
++ /* Increment the return size and the return buffer pointer param */
++ *ppBuffer += Adapter->mrvlAssocTlvBufferLen;
++ retLen += Adapter->mrvlAssocTlvBufferLen;
++
++ /* Reset the Marvell TLV buffer */
++ Adapter->mrvlAssocTlvBufferLen = 0;
++ }
++
++ /* return the length appended to the buffer */
++ return retLen;
++}
++
++/**
++ * @brief Append TSF tracking info from the scan table for the target AP
++ *
++ * This function is called from the network join command prep. routine.
++ * The TSF table TSF sent to the firmware contians two TSF values:
++ * - the TSF of the target AP from its previous beacon/probe response
++ * - the TSF timestamp of our local MAC at the time we observed the
++ * beacon/probe response.
++ *
++ * The firmware uses the timestamp values to set an initial TSF value
++ * in the MAC for the new association after a reassociation attempt.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param ppBuffer A pointer to command buffer pointer
++ * @param pBSSDesc A pointer to the BSS Descriptor from the scan table of
++ * the AP we are trying to join
++ *
++ * @return bytes added to the buffer
++ */
++static int
++wlan_cmd_append_tsf_tlv(wlan_private * priv, u8 ** ppBuffer,
++ BSSDescriptor_t * pBSSDesc)
++{
++ MrvlIEtypes_TsfTimestamp_t tsfTlv;
++ u64 tsfVal;
++
++ /* Null Checks */
++ if (ppBuffer == 0)
++ return 0;
++ if (*ppBuffer == 0)
++ return 0;
++
++ memset(&tsfTlv, 0x00, sizeof(MrvlIEtypes_TsfTimestamp_t));
++
++ tsfTlv.Header.Type = wlan_cpu_to_le16(TLV_TYPE_TSFTIMESTAMP);
++ tsfTlv.Header.Len = wlan_cpu_to_le16(2 * sizeof(tsfVal));
++
++ memcpy(*ppBuffer, &tsfTlv, sizeof(tsfTlv.Header));
++ *ppBuffer += sizeof(tsfTlv.Header);
++
++ /* TSF timestamp from the firmware TSF when the bcn/prb rsp was received */
++ tsfVal = wlan_cpu_to_le64(pBSSDesc->networkTSF);
++ memcpy(*ppBuffer, &tsfVal, sizeof(tsfVal));
++ *ppBuffer += sizeof(tsfVal);
++
++ memcpy(&tsfVal, pBSSDesc->TimeStamp, sizeof(tsfVal));
++
++ PRINTM(INFO, "ASSOC: TSF offset calc: %016llx - %016llx\n",
++ tsfVal, pBSSDesc->networkTSF);
++
++ tsfVal = wlan_cpu_to_le64(tsfVal);
++ memcpy(*ppBuffer, &tsfVal, sizeof(tsfVal));
++ *ppBuffer += sizeof(tsfVal);
++
++ return (sizeof(tsfTlv.Header) + (2 * sizeof(tsfVal)));
++}
++
++/**
++ * @brief This function prepares command of deauthenticate.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_cmd_802_11_deauthenticate(wlan_private * priv, HostCmd_DS_COMMAND * cmd)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ HostCmd_DS_802_11_DEAUTHENTICATE *dauth = &cmd->params.deauth;
++
++ ENTER();
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_DEAUTHENTICATE);
++ cmd->Size =
++ wlan_cpu_to_le16(sizeof(HostCmd_DS_802_11_DEAUTHENTICATE) + S_DS_GEN);
++
++ /* set AP MAC address */
++ memcpy(dauth->MacAddr,
++ &Adapter->CurBssParams.BSSDescriptor.MacAddress, ETH_ALEN);
++
++ /* Reason code 3 = Station is leaving */
++#define REASON_CODE_STA_LEAVING 3
++ dauth->ReasonCode = wlan_cpu_to_le16(REASON_CODE_STA_LEAVING);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function prepares command of association.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param pdata_buf Void cast of BSSDescriptor_t from the scan table to assoc
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_cmd_802_11_associate(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, void *pdata_buf)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ HostCmd_DS_802_11_ASSOCIATE *pAsso = &cmd->params.associate;
++ int ret = WLAN_STATUS_SUCCESS;
++ BSSDescriptor_t *pBSSDesc;
++ WLAN_802_11_RATES rates;
++ int ratesSize;
++ u8 *pos;
++ u16 TmpCap;
++ MrvlIEtypes_SsIdParamSet_t *pSsidTlv;
++ MrvlIEtypes_PhyParamSet_t *pPhyTlv;
++ MrvlIEtypes_SsParamSet_t *pSsTlv;
++ MrvlIEtypes_RatesParamSet_t *pRatesTlv;
++ MrvlIEtypes_AuthType_t *pAuthTlv;
++ MrvlIEtypes_RsnParamSet_t *pRsnTlv;
++
++ ENTER();
++
++ pBSSDesc = (BSSDescriptor_t *) pdata_buf;
++ pos = (u8 *) pAsso;
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_ASSOCIATE);
++
++ /* Save so we know which BSS Desc to use in the response handler */
++ Adapter->pAttemptedBSSDesc = pBSSDesc;
++
++ memcpy(pAsso->PeerStaAddr,
++ pBSSDesc->MacAddress, sizeof(pAsso->PeerStaAddr));
++ pos += sizeof(pAsso->PeerStaAddr);
++
++ /* set the listen interval */
++ pAsso->ListenInterval = wlan_cpu_to_le16(Adapter->ListenInterval);
++
++ pos += sizeof(pAsso->CapInfo);
++ pos += sizeof(pAsso->ListenInterval);
++ pos += sizeof(pAsso->Reserved1);
++
++ pSsidTlv = (MrvlIEtypes_SsIdParamSet_t *) pos;
++ pSsidTlv->Header.Type = wlan_cpu_to_le16(TLV_TYPE_SSID);
++ pSsidTlv->Header.Len = pBSSDesc->Ssid.SsidLength;
++ memcpy(pSsidTlv->SsId, pBSSDesc->Ssid.Ssid, pSsidTlv->Header.Len);
++ pos += sizeof(pSsidTlv->Header) + pSsidTlv->Header.Len;
++ pSsidTlv->Header.Len = wlan_cpu_to_le16(pSsidTlv->Header.Len);
++
++ pPhyTlv = (MrvlIEtypes_PhyParamSet_t *) pos;
++ pPhyTlv->Header.Type = wlan_cpu_to_le16(TLV_TYPE_PHY_DS);
++ pPhyTlv->Header.Len = sizeof(pPhyTlv->fh_ds.DsParamSet);
++ memcpy(&pPhyTlv->fh_ds.DsParamSet,
++ &pBSSDesc->PhyParamSet.DsParamSet.CurrentChan,
++ sizeof(pPhyTlv->fh_ds.DsParamSet));
++ pos += sizeof(pPhyTlv->Header) + pPhyTlv->Header.Len;
++ pPhyTlv->Header.Len = wlan_cpu_to_le16(pPhyTlv->Header.Len);
++
++ pSsTlv = (MrvlIEtypes_SsParamSet_t *) pos;
++ pSsTlv->Header.Type = wlan_cpu_to_le16(TLV_TYPE_CF);
++ pSsTlv->Header.Len = sizeof(pSsTlv->cf_ibss.CfParamSet);
++ pos += sizeof(pSsTlv->Header) + pSsTlv->Header.Len;
++ pSsTlv->Header.Len = wlan_cpu_to_le16(pSsTlv->Header.Len);
++
++ /* Get the common rates supported between the driver and the BSS Desc */
++ if (setup_rates_from_bssdesc(Adapter, pBSSDesc, rates, &ratesSize)) {
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ /* Setup the Rates TLV in the association command */
++ pRatesTlv = (MrvlIEtypes_RatesParamSet_t *) pos;
++ pRatesTlv->Header.Type = wlan_cpu_to_le16(TLV_TYPE_RATES);
++ pRatesTlv->Header.Len = wlan_cpu_to_le16(ratesSize);
++ memcpy(pRatesTlv->Rates, rates, ratesSize);
++ pos += sizeof(pRatesTlv->Header) + ratesSize;
++ PRINTM(INFO, "ASSOC_CMD: Rates size = %d\n", ratesSize);
++
++ /* Add the Authentication type to be used for Auth frames if needed */
++ pAuthTlv = (MrvlIEtypes_AuthType_t *) pos;
++ pAuthTlv->Header.Type = wlan_cpu_to_le16(TLV_TYPE_AUTH_TYPE);
++ pAuthTlv->Header.Len = sizeof(pAuthTlv->AuthType);
++ pAuthTlv->AuthType = Adapter->SecInfo.AuthenticationMode;
++ pos += sizeof(pAuthTlv->Header) + pAuthTlv->Header.Len;
++ pAuthTlv->Header.Len = wlan_cpu_to_le16(pAuthTlv->Header.Len);
++
++ if (!Adapter->wps.SessionEnable) {
++ if (Adapter->SecInfo.WPAEnabled || Adapter->SecInfo.WPA2Enabled) {
++ pRsnTlv = (MrvlIEtypes_RsnParamSet_t *) pos;
++ pRsnTlv->Header.Type = (u16) Adapter->Wpa_ie[0]; /* WPA_IE or WPA2_IE */
++ pRsnTlv->Header.Type = pRsnTlv->Header.Type & 0x00FF;
++ pRsnTlv->Header.Type = wlan_cpu_to_le16(pRsnTlv->Header.Type);
++ pRsnTlv->Header.Len = (u16) Adapter->Wpa_ie[1];
++ pRsnTlv->Header.Len = pRsnTlv->Header.Len & 0x00FF;
++ if (pRsnTlv->Header.Len <= (sizeof(Adapter->Wpa_ie) - 2)) {
++ memcpy(pRsnTlv->RsnIE, &Adapter->Wpa_ie[2],
++ pRsnTlv->Header.Len);
++ } else {
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ HEXDUMP("ASSOC_CMD: RSN IE", (u8 *) pRsnTlv,
++ sizeof(pRsnTlv->Header) + pRsnTlv->Header.Len);
++ pos += sizeof(pRsnTlv->Header) + pRsnTlv->Header.Len;
++ pRsnTlv->Header.Len = wlan_cpu_to_le16(pRsnTlv->Header.Len);
++ }
++ }
++
++ wlan_wmm_process_association_req(priv, &pos, &pBSSDesc->wmmIE);
++
++ wlan_cmd_append_generic_ie(priv, &pos);
++
++ wlan_cmd_append_marvell_tlv(priv, &pos);
++
++ wlan_cmd_append_tsf_tlv(priv, &pos, pBSSDesc);
++
++ if (wlan_create_dnld_countryinfo_11d(priv, 0)) {
++ PRINTM(INFO, "Dnld_countryinfo_11d failed\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++ if (wlan_parse_dnld_countryinfo_11d(priv)) {
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ cmd->Size = wlan_cpu_to_le16((u16) (pos - (u8 *) pAsso) + S_DS_GEN);
++
++ /* set the Capability info at last */
++ memcpy(&TmpCap, &pBSSDesc->Cap, sizeof(pAsso->CapInfo));
++ TmpCap &= CAPINFO_MASK;
++ PRINTM(INFO, "ASSOC_CMD: TmpCap=%4X CAPINFO_MASK=%4X\n",
++ TmpCap, CAPINFO_MASK);
++ TmpCap = wlan_cpu_to_le16(TmpCap);
++ memcpy(&pAsso->CapInfo, &TmpCap, sizeof(pAsso->CapInfo));
++
++ done:
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function prepares command of ad_hoc_start.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param pssid A pointer to WLAN_802_11_SSID structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_cmd_802_11_ad_hoc_start(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, void *pssid)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ HostCmd_DS_802_11_AD_HOC_START *adhs = &cmd->params.ads;
++ int ret = WLAN_STATUS_SUCCESS;
++ int cmdAppendSize = 0;
++ int i;
++ u16 TmpCap;
++ BSSDescriptor_t *pBSSDesc;
++
++ ENTER();
++
++ if (!Adapter) {
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_AD_HOC_START);
++
++ pBSSDesc = &Adapter->CurBssParams.BSSDescriptor;
++ Adapter->pAttemptedBSSDesc = pBSSDesc;
++
++ /*
++ * Fill in the parameters for 2 data structures:
++ * 1. HostCmd_DS_802_11_AD_HOC_START Command
++ * 2. pBSSDesc
++ *
++ * Driver will fill up SSID, BSSType,IBSS param, Physical Param,
++ * probe delay, and Cap info.
++ *
++ * Firmware will fill up beacon period, Basic rates
++ * and operational rates.
++ */
++
++ memset(adhs->SSID, 0, MRVDRV_MAX_SSID_LENGTH);
++
++ memcpy(adhs->SSID, ((WLAN_802_11_SSID *) pssid)->Ssid,
++ ((WLAN_802_11_SSID *) pssid)->SsidLength);
++
++ PRINTM(INFO, "ADHOC_S_CMD: SSID = %s\n", adhs->SSID);
++
++ memset(pBSSDesc->Ssid.Ssid, 0, MRVDRV_MAX_SSID_LENGTH);
++ memcpy(pBSSDesc->Ssid.Ssid,
++ ((WLAN_802_11_SSID *) pssid)->Ssid,
++ ((WLAN_802_11_SSID *) pssid)->SsidLength);
++
++ pBSSDesc->Ssid.SsidLength = ((WLAN_802_11_SSID *) pssid)->SsidLength;
++
++ /* set the BSS type */
++ adhs->BSSType = HostCmd_BSS_TYPE_IBSS;
++ pBSSDesc->InfrastructureMode = Wlan802_11IBSS;
++ adhs->BeaconPeriod = wlan_cpu_to_le16(Adapter->BeaconPeriod);
++ pBSSDesc->BeaconPeriod = Adapter->BeaconPeriod;
++
++ /* set Physical param set */
++#define DS_PARA_IE_ID 3
++#define DS_PARA_IE_LEN 1
++
++ adhs->PhyParamSet.DsParamSet.ElementId = DS_PARA_IE_ID;
++ adhs->PhyParamSet.DsParamSet.Len = DS_PARA_IE_LEN;
++
++ if (!get_cfp_by_band_and_channel
++ (0, (u16) Adapter->AdhocChannel, Adapter->region_channel)) {
++ CHANNEL_FREQ_POWER *cfp;
++ cfp =
++ get_cfp_by_band_and_channel(0, FIRST_VALID_CHANNEL,
++ Adapter->region_channel);
++ if (cfp)
++ Adapter->AdhocChannel = cfp->Channel;
++ }
++
++ ASSERT(Adapter->AdhocChannel);
++
++ PRINTM(INFO, "ADHOC_S_CMD: Creating ADHOC on Channel %d\n",
++ Adapter->AdhocChannel);
++
++ Adapter->CurBssParams.BSSDescriptor.Channel = Adapter->AdhocChannel;
++
++ pBSSDesc->Channel = Adapter->AdhocChannel;
++ adhs->PhyParamSet.DsParamSet.CurrentChan = Adapter->AdhocChannel;
++
++ memcpy(&pBSSDesc->PhyParamSet,
++ &adhs->PhyParamSet, sizeof(IEEEtypes_PhyParamSet_t));
++
++ pBSSDesc->NetworkTypeInUse = Wlan802_11DS;
++
++ /* set IBSS param set */
++#define IBSS_PARA_IE_ID 6
++#define IBSS_PARA_IE_LEN 2
++
++ adhs->SsParamSet.IbssParamSet.ElementId = IBSS_PARA_IE_ID;
++ adhs->SsParamSet.IbssParamSet.Len = IBSS_PARA_IE_LEN;
++ adhs->SsParamSet.IbssParamSet.AtimWindow
++ = wlan_cpu_to_le16(Adapter->AtimWindow);
++ pBSSDesc->ATIMWindow = Adapter->AtimWindow;
++ memcpy(&pBSSDesc->SsParamSet,
++ &adhs->SsParamSet, sizeof(IEEEtypes_SsParamSet_t));
++
++ /* set Capability info */
++ adhs->Cap.Ess = 0;
++ adhs->Cap.Ibss = 1;
++ pBSSDesc->Cap.Ibss = 1;
++
++ /* set up privacy in pBSSDesc */
++ if (Adapter->SecInfo.WEPStatus == Wlan802_11WEPEnabled
++ || Adapter->AdhocAESEnabled) {
++
++#define AD_HOC_CAP_PRIVACY_ON 1
++ PRINTM(INFO, "ADHOC_S_CMD: WEPStatus set, Privacy to WEP\n");
++ pBSSDesc->Privacy = Wlan802_11PrivFilter8021xWEP;
++ adhs->Cap.Privacy = AD_HOC_CAP_PRIVACY_ON;
++ } else {
++ PRINTM(INFO, "ADHOC_S_CMD: WEPStatus NOT set, Setting "
++ "Privacy to ACCEPT ALL\n");
++ pBSSDesc->Privacy = Wlan802_11PrivFilterAcceptAll;
++ }
++
++ memset(adhs->DataRate, 0, sizeof(adhs->DataRate));
++
++ if (Adapter->adhoc_grate_enabled == TRUE) {
++ memcpy(adhs->DataRate, AdhocRates_G,
++ MIN(sizeof(adhs->DataRate), sizeof(AdhocRates_G)));
++ if (Adapter->
++ CurrentPacketFilter & HostCmd_ACT_MAC_ADHOC_G_PROTECTION_ON) {
++ ret =
++ PrepareAndSendCommand(priv, HostCmd_CMD_MAC_CONTROL, 0,
++ HostCmd_OPTION_WAITFORRSP, 0,
++ &Adapter->CurrentPacketFilter);
++ if (ret) {
++ PRINTM(INFO, "ADHOC_S_CMD: G Protection config failed\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++ }
++ } else {
++ memcpy(adhs->DataRate, AdhocRates_B,
++ MIN(sizeof(adhs->DataRate), sizeof(AdhocRates_B)));
++ }
++
++ /* Find the last non zero */
++ for (i = 0; i < sizeof(adhs->DataRate) && adhs->DataRate[i]; i++);
++
++ Adapter->CurBssParams.NumOfRates = i;
++
++ /* Copy the ad-hoc creating rates into Current BSS state structure */
++ memcpy(&Adapter->CurBssParams.DataRates,
++ &adhs->DataRate, Adapter->CurBssParams.NumOfRates);
++
++ PRINTM(INFO, "ADHOC_S_CMD: Rates=%02x %02x %02x %02x \n",
++ adhs->DataRate[0], adhs->DataRate[1],
++ adhs->DataRate[2], adhs->DataRate[3]);
++
++ PRINTM(INFO, "ADHOC_S_CMD: AD HOC Start command is ready\n");
++
++ if (wlan_create_dnld_countryinfo_11d(priv, Adapter->CurBssParams.band)) {
++ PRINTM(INFO, "ADHOC_S_CMD: dnld_countryinfo_11d failed\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ cmd->Size = wlan_cpu_to_le16(sizeof(HostCmd_DS_802_11_AD_HOC_START)
++ + S_DS_GEN + cmdAppendSize);
++
++ memcpy(&TmpCap, &adhs->Cap, sizeof(u16));
++ TmpCap = wlan_cpu_to_le16(TmpCap);
++ memcpy(&adhs->Cap, &TmpCap, sizeof(u16));
++
++ ret = WLAN_STATUS_SUCCESS;
++ done:
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function prepares command of ad_hoc_stop.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_cmd_802_11_ad_hoc_stop(wlan_private * priv, HostCmd_DS_COMMAND * cmd)
++{
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_AD_HOC_STOP);
++ cmd->Size = wlan_cpu_to_le16(sizeof(HostCmd_DS_802_11_AD_HOC_STOP)
++ + S_DS_GEN);
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function prepares command of ad_hoc_join.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param pdata_buf Void cast of BSSDescriptor_t from the scan table to join
++ *
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_cmd_802_11_ad_hoc_join(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, void *pdata_buf)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ HostCmd_DS_802_11_AD_HOC_JOIN *pAdHocJoin = &cmd->params.adj;
++ BSSDescriptor_t *pBSSDesc = (BSSDescriptor_t *) pdata_buf;
++ int cmdAppendSize = 0;
++ int ret = WLAN_STATUS_SUCCESS;
++ WLAN_802_11_RATES rates;
++ int ratesSize;
++ u16 TmpCap;
++ u16 CurrentPacketFilter;
++
++ ENTER();
++
++#define USE_G_PROTECTION 0x02
++ if (pBSSDesc->ERPFlags & USE_G_PROTECTION) {
++ CurrentPacketFilter =
++ Adapter->
++ CurrentPacketFilter | HostCmd_ACT_MAC_ADHOC_G_PROTECTION_ON;
++ ret =
++ PrepareAndSendCommand(priv, HostCmd_CMD_MAC_CONTROL, 0,
++ HostCmd_OPTION_WAITFORRSP, 0,
++ &CurrentPacketFilter);
++ if (ret) {
++ PRINTM(INFO, "ADHOC_S_CMD: G Protection config failed\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++ }
++ Adapter->pAttemptedBSSDesc = pBSSDesc;
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_AD_HOC_JOIN);
++
++ pAdHocJoin->BssDescriptor.BSSType = HostCmd_BSS_TYPE_IBSS;
++
++ pAdHocJoin->BssDescriptor.BeaconPeriod
++ = wlan_cpu_to_le16(pBSSDesc->BeaconPeriod);
++
++ memcpy(&pAdHocJoin->BssDescriptor.BSSID,
++ &pBSSDesc->MacAddress, MRVDRV_ETH_ADDR_LEN);
++
++ memcpy(&pAdHocJoin->BssDescriptor.SSID,
++ &pBSSDesc->Ssid.Ssid, pBSSDesc->Ssid.SsidLength);
++
++ memcpy(&pAdHocJoin->BssDescriptor.PhyParamSet,
++ &pBSSDesc->PhyParamSet, sizeof(IEEEtypes_PhyParamSet_t));
++
++ memcpy(&pAdHocJoin->BssDescriptor.SsParamSet,
++ &pBSSDesc->SsParamSet, sizeof(IEEEtypes_SsParamSet_t));
++
++ memcpy(&TmpCap, &pBSSDesc->Cap, sizeof(IEEEtypes_CapInfo_t));
++
++ TmpCap &= CAPINFO_MASK;
++
++ PRINTM(INFO, "ADHOC_J_CMD: TmpCap=%4X CAPINFO_MASK=%4X\n",
++ TmpCap, CAPINFO_MASK);
++ memcpy(&pAdHocJoin->BssDescriptor.Cap, &TmpCap,
++ sizeof(IEEEtypes_CapInfo_t));
++
++ /* information on BSSID descriptor passed to FW */
++ PRINTM(INFO,
++ "ADHOC_J_CMD: BSSID = %02x-%02x-%02x-%02x-%02x-%02x, SSID = %s\n",
++ pAdHocJoin->BssDescriptor.BSSID[0],
++ pAdHocJoin->BssDescriptor.BSSID[1],
++ pAdHocJoin->BssDescriptor.BSSID[2],
++ pAdHocJoin->BssDescriptor.BSSID[3],
++ pAdHocJoin->BssDescriptor.BSSID[4],
++ pAdHocJoin->BssDescriptor.BSSID[5],
++ pAdHocJoin->BssDescriptor.SSID);
++
++ /* Get the common rates supported between the driver and the BSS Desc */
++ if (setup_rates_from_bssdesc(Adapter, pBSSDesc, rates, &ratesSize)) {
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ /* Copy Data Rates from the Rates recorded in scan response */
++ memset(pAdHocJoin->BssDescriptor.DataRates, 0,
++ sizeof(pAdHocJoin->BssDescriptor.DataRates));
++ memcpy(pAdHocJoin->BssDescriptor.DataRates, rates, ratesSize);
++
++ /* Copy the adhoc join rates into Current BSS state structure */
++ Adapter->CurBssParams.NumOfRates = ratesSize;
++ memcpy(&Adapter->CurBssParams.DataRates, rates, ratesSize);
++
++ /* Copy the channel information */
++ Adapter->CurBssParams.BSSDescriptor.Channel = pBSSDesc->Channel;
++
++ if (Adapter->SecInfo.WEPStatus == Wlan802_11WEPEnabled
++ || Adapter->AdhocAESEnabled) {
++ pAdHocJoin->BssDescriptor.Cap.Privacy = AD_HOC_CAP_PRIVACY_ON;
++ }
++
++ if (Adapter->PSMode == Wlan802_11PowerModeMAX_PSP) {
++ /* wake up first */
++ WLAN_802_11_POWER_MODE LocalPSMode;
++
++ LocalPSMode = Wlan802_11PowerModeCAM;
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_PS_MODE,
++ HostCmd_ACT_GEN_SET, 0, 0, &LocalPSMode);
++
++ if (ret) {
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++ }
++
++ if (wlan_create_dnld_countryinfo_11d(priv, 0)) {
++ PRINTM(INFO, "Dnld_countryinfo_11d failed\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ if (wlan_parse_dnld_countryinfo_11d(priv)) {
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ cmd->Size = wlan_cpu_to_le16(sizeof(HostCmd_DS_802_11_AD_HOC_JOIN)
++ + S_DS_GEN + cmdAppendSize);
++
++ memcpy(&TmpCap, &pAdHocJoin->BssDescriptor.Cap,
++ sizeof(IEEEtypes_CapInfo_t));
++ TmpCap = wlan_cpu_to_le16(TmpCap);
++
++ memcpy(&pAdHocJoin->BssDescriptor.Cap,
++ &TmpCap, sizeof(IEEEtypes_CapInfo_t));
++
++ done:
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Association firmware command response handler
++ *
++ * The response buffer for the association command has the following
++ * memory layout.
++ *
++ * For cases where an association response was not received (indicated
++ * by the CapInfo and AId field):
++ *
++ * .------------------------------------------------------------.
++ * | Header(4 * sizeof(u16)): Standard command response hdr |
++ * .------------------------------------------------------------.
++ * | CapInfo/Error Return(u16): |
++ * | 0xFFFF(-1): Internal error |
++ * | 0xFFFE(-2): Authentication unhandled message |
++ * | 0xFFFD(-3): Authentication refused |
++ * | 0xFFFC(-4): Timeout waiting for AP response |
++ * .------------------------------------------------------------.
++ * | StatusCode(u16): |
++ * | If CapInfo is -1: |
++ * | An internal firmware failure prevented the |
++ * | command from being processed. The StatusCode |
++ * | will be set to 1. |
++ * | |
++ * | If CapInfo is -2: |
++ * | An authentication frame was received but was |
++ * | not handled by the firmware. IEEE Status |
++ * | code for the failure is returned. |
++ * | |
++ * | If CapInfo is -3: |
++ * | An authentication frame was received and the |
++ * | StatusCode is the IEEE Status reported in the |
++ * | response. |
++ * | |
++ * | If CapInfo is -4: |
++ * | (1) Association response timeout |
++ * | (2) Authentication response timeout |
++ * .------------------------------------------------------------.
++ * | AId(u16): 0xFFFF |
++ * .------------------------------------------------------------.
++ *
++ *
++ * For cases where an association response was received, the IEEE
++ * standard association response frame is returned:
++ *
++ * .------------------------------------------------------------.
++ * | Header(4 * sizeof(u16)): Standard command response hdr |
++ * .------------------------------------------------------------.
++ * | CapInfo(u16): IEEE Capability |
++ * .------------------------------------------------------------.
++ * | StatusCode(u16): IEEE Status Code |
++ * .------------------------------------------------------------.
++ * | AId(u16): IEEE Association ID |
++ * .------------------------------------------------------------.
++ * | IEEE IEs(variable): Any received IEs comprising the |
++ * | remaining portion of a received |
++ * | association response frame. |
++ * .------------------------------------------------------------.
++ *
++ * For simplistic handling, the StatusCode field can be used to determine
++ * an association success (0) or failure (non-zero).
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_ret_802_11_associate(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++ IEEEtypes_AssocRsp_t *pAssocRsp;
++ BSSDescriptor_t *pBSSDesc;
++ WLAN_802_11_RATES rates;
++ int ratesSize;
++
++ ENTER();
++
++ pAssocRsp = (IEEEtypes_AssocRsp_t *) & resp->params;
++
++ HEXDUMP("ASSOC_RESP:", (void *) &resp->params,
++ wlan_le16_to_cpu(resp->Size) - S_DS_GEN);
++
++ Adapter->assocRspSize = MIN(wlan_le16_to_cpu(resp->Size) - S_DS_GEN,
++ sizeof(Adapter->assocRspBuffer));
++
++ memcpy(Adapter->assocRspBuffer, &resp->params, Adapter->assocRspSize);
++
++ if (pAssocRsp->StatusCode) {
++ priv->adapter->dbg.num_cmd_assoc_failure++;
++
++ PRINTM(CMND, "ASSOC_RESP: Association Failed, "
++ "status code = %d, error = %d\n",
++ pAssocRsp->StatusCode, *(short *) &pAssocRsp->Capability);
++ ret = WLAN_STATUS_FAILURE;
++
++ goto done;
++ }
++
++ /* Send a Media Connected event, according to the Spec */
++ Adapter->MediaConnectStatus = WlanMediaStateConnected;
++
++ /* Set the attempted BSSID Index to current */
++ pBSSDesc = Adapter->pAttemptedBSSDesc;
++
++ PRINTM(INFO, "ASSOC_RESP: %s\n", pBSSDesc->Ssid.Ssid);
++
++ /* Make a copy of current BSSID descriptor */
++ memcpy(&Adapter->CurBssParams.BSSDescriptor,
++ pBSSDesc, sizeof(BSSDescriptor_t));
++
++ /* update CurBssParams */
++ Adapter->CurBssParams.BSSDescriptor.Channel
++ = pBSSDesc->PhyParamSet.DsParamSet.CurrentChan;
++
++ if (setup_rates_from_bssdesc(Adapter, pBSSDesc, rates, &ratesSize)) {
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ /* Copy the infra. association rates into Current BSS state structure */
++ Adapter->CurBssParams.NumOfRates = ratesSize;
++ memcpy(&Adapter->CurBssParams.DataRates, rates, ratesSize);
++
++ /* Adjust the timestamps in the scan table to be relative to the newly
++ * associated AP's TSF
++ */
++ wlan_scan_update_tsf_timestamps(priv, pBSSDesc);
++
++ if (pBSSDesc->wmmIE.VendHdr.ElementId == WMM_IE) {
++ Adapter->CurBssParams.wmm_enabled = TRUE;
++ } else {
++ Adapter->CurBssParams.wmm_enabled = FALSE;
++ }
++
++ if (Adapter->wmm.required && Adapter->CurBssParams.wmm_enabled) {
++ Adapter->wmm.enabled = TRUE;
++ } else {
++ Adapter->wmm.enabled = FALSE;
++ }
++
++ Adapter->CurBssParams.wmm_uapsd_enabled = FALSE;
++
++ if (Adapter->wmm.enabled == TRUE) {
++ Adapter->CurBssParams.wmm_uapsd_enabled
++ = pBSSDesc->wmmIE.QoSInfo.QosUAPSD;
++ }
++
++ PRINTM(INFO, "ASSOC_RESP: CurrentPacketFilter is %x\n",
++ Adapter->CurrentPacketFilter);
++
++ if (Adapter->SecInfo.WPAEnabled || Adapter->SecInfo.WPA2Enabled)
++ Adapter->IsGTK_SET = FALSE;
++
++ Adapter->SNR[TYPE_RXPD][TYPE_AVG] = 0;
++ Adapter->NF[TYPE_RXPD][TYPE_AVG] = 0;
++
++ memset(Adapter->rawSNR, 0x00, sizeof(Adapter->rawSNR));
++ memset(Adapter->rawNF, 0x00, sizeof(Adapter->rawNF));
++ Adapter->nextSNRNF = 0;
++ Adapter->numSNRNF = 0;
++
++ priv->adapter->dbg.num_cmd_assoc_success++;
++
++ PRINTM(INFO, "ASSOC_RESP: Associated \n");
++
++ done:
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function handles the command response of disassociate
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_ret_802_11_disassociate(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ ENTER();
++
++ priv->adapter->dbg.num_cmd_deauth++;
++ MacEventDisconnected(priv);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function handles the command response of ad_hoc_start and
++ * ad_hoc_join
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_ret_802_11_ad_hoc(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++ u16 Command = resp->Command;
++ u16 Result = resp->Result;
++ HostCmd_DS_802_11_AD_HOC_RESULT *pAdHocResult;
++ union iwreq_data wrqu;
++ BSSDescriptor_t *pBSSDesc;
++
++ ENTER();
++
++ pAdHocResult = &resp->params.result;
++
++ pBSSDesc = Adapter->pAttemptedBSSDesc;
++
++ /*
++ * Join result code 0 --> SUCCESS
++ */
++ if (Result) {
++ PRINTM(INFO, "ADHOC_RESP Failed\n");
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ MacEventDisconnected(priv);
++ }
++
++ memset(&Adapter->CurBssParams.BSSDescriptor,
++ 0x00, sizeof(Adapter->CurBssParams.BSSDescriptor));
++
++ LEAVE();
++ return WLAN_STATUS_FAILURE;
++ }
++
++ /* Send a Media Connected event, according to the Spec */
++ Adapter->MediaConnectStatus = WlanMediaStateConnected;
++
++ if (Command == HostCmd_RET_802_11_AD_HOC_START) {
++ PRINTM(INFO, "ADHOC_S_RESP %s\n", pBSSDesc->Ssid.Ssid);
++
++ /* Update the created network descriptor with the new BSSID */
++ memcpy(pBSSDesc->MacAddress,
++ pAdHocResult->BSSID, MRVDRV_ETH_ADDR_LEN);
++ } else {
++ /*
++ * Now the join cmd should be successful
++ * If BSSID has changed use SSID to compare instead of BSSID
++ */
++ PRINTM(INFO, "ADHOC_J_RESP %s\n", pBSSDesc->Ssid.Ssid);
++
++ /* Make a copy of current BSSID descriptor, only needed for join since
++ * the current descriptor is already being used for adhoc start
++ */
++ memcpy(&Adapter->CurBssParams.BSSDescriptor,
++ pBSSDesc, sizeof(BSSDescriptor_t));
++ }
++
++ memset(&wrqu, 0, sizeof(wrqu));
++ memcpy(wrqu.ap_addr.sa_data,
++ &Adapter->CurBssParams.BSSDescriptor.MacAddress, ETH_ALEN);
++ wrqu.ap_addr.sa_family = ARPHRD_ETHER;
++ wireless_send_event(priv->wlan_dev.netdev, SIOCGIWAP, &wrqu, NULL);
++
++ PRINTM(INFO, "ADHOC_RESP: Channel = %d\n", Adapter->AdhocChannel);
++ PRINTM(INFO, "ADHOC_RESP: BSSID = %02x:%02x:%02x:%02x:%02x:%02x\n",
++ Adapter->CurBssParams.BSSDescriptor.MacAddress[0],
++ Adapter->CurBssParams.BSSDescriptor.MacAddress[1],
++ Adapter->CurBssParams.BSSDescriptor.MacAddress[2],
++ Adapter->CurBssParams.BSSDescriptor.MacAddress[3],
++ Adapter->CurBssParams.BSSDescriptor.MacAddress[4],
++ Adapter->CurBssParams.BSSDescriptor.MacAddress[5]);
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function handles the command response of ad_hoc_stop
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_ret_802_11_ad_hoc_stop(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ ENTER();
++
++ MacEventDisconnected(priv);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++#ifdef REASSOCIATION
++/**
++ * @brief This function handles re-association. it is triggered
++ * by re-assoc timer.
++ *
++ * @param data A pointer to wlan_thread structure
++ * @return WLAN_STATUS_SUCCESS
++ */
++int
++wlan_reassociation_thread(void *data)
++{
++ wlan_thread *thread = data;
++ wlan_private *priv = thread->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ wait_queue_t wait;
++ int i;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ OS_INTERRUPT_SAVE_AREA;
++
++ ENTER();
++
++ wlan_activate_thread(thread);
++ init_waitqueue_entry(&wait, current);
++
++ current->flags |= PF_NOFREEZE;
++
++ for (;;) {
++ add_wait_queue(&thread->waitQ, &wait);
++ OS_SET_THREAD_STATE(TASK_INTERRUPTIBLE);
++
++ PRINTM(INFO, "Reassoc: Thread sleeping...\n");
++
++ schedule();
++
++ OS_SET_THREAD_STATE(TASK_RUNNING);
++ remove_wait_queue(&thread->waitQ, &wait);
++
++ if (Adapter->SurpriseRemoved) {
++ break;
++ }
++
++ if (kthread_should_stop()) {
++ break;
++ }
++
++ PRINTM(INFO, "Reassoc: Thread waking up...\n");
++
++ if (Adapter->InfrastructureMode != Wlan802_11Infrastructure ||
++ Adapter->HardwareStatus != WlanHardwareStatusReady) {
++ PRINTM(MSG, "Reassoc: mode or hardware status is not correct\n");
++ continue;
++ }
++
++ /* The semaphore is used to avoid reassociation thread and
++ wlan_set_scan/wlan_set_essid interrupting each other.
++ Reassociation should be disabled completely by application if
++ wlan_set_user_scan_ioctl/wlan_set_wap is used.
++ */
++ if (OS_ACQ_SEMAPHORE_BLOCK(&Adapter->ReassocSem)) {
++ PRINTM(ERROR, "Acquire semaphore error, reassociation thread\n");
++ goto settimer;
++ }
++
++ if (Adapter->MediaConnectStatus != WlanMediaStateDisconnected) {
++ OS_REL_SEMAPHORE(&Adapter->ReassocSem);
++ PRINTM(MSG, "Reassoc: Adapter->MediaConnectStatus is wrong\n");
++ continue;
++ }
++
++ PRINTM(INFO, "Reassoc: Required ESSID: %s\n",
++ Adapter->PreviousSSID.Ssid);
++
++ PRINTM(INFO, "Reassoc: Performing Active Scan @ %lu\n",
++ os_time_get());
++ SendSpecificSSIDScan(priv, &Adapter->PreviousSSID);
++
++ i = FindSSIDInList(Adapter,
++ &Adapter->PreviousSSID,
++ Adapter->PreviousBSSID,
++ Adapter->InfrastructureMode);
++
++ if (i < 0) {
++ /* If the SSID could not be found, try just the SSID */
++ i = FindSSIDInList(Adapter,
++ &Adapter->PreviousSSID,
++ NULL, Adapter->InfrastructureMode);
++ }
++
++ if (i >= 0) {
++ if (Adapter->SecInfo.WEPStatus == Wlan802_11WEPEnabled) {
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_SET_WEP,
++ 0, HostCmd_OPTION_WAITFORRSP,
++ OID_802_11_ADD_WEP, NULL);
++ if (ret)
++ PRINTM(INFO, "Ressoc: Fail to set WEP KEY\n");
++ }
++ wlan_associate(priv, &Adapter->ScanTable[i]);
++ }
++
++ OS_REL_SEMAPHORE(&Adapter->ReassocSem);
++
++ settimer:
++ if (Adapter->MediaConnectStatus == WlanMediaStateDisconnected) {
++ PRINTM(INFO, "Reassoc: No AP found or assoc failed."
++ "Restarting re-assoc Timer @ %lu\n", os_time_get());
++
++ Adapter->ReassocTimerIsSet = TRUE;
++ ModTimer(&Adapter->MrvDrvTimer, MRVDRV_TIMER_10S);
++ }
++ }
++
++ wlan_deactivate_thread(thread);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function triggers re-association by waking up
++ * re-assoc thread.
++ *
++ * @param FunctionContext A pointer to FunctionContext
++ * @return n/a
++ */
++void
++MrvDrvReassocTimerFunction(void *FunctionContext)
++{
++ wlan_private *priv = (wlan_private *) FunctionContext;
++ wlan_adapter *Adapter = priv->adapter;
++ OS_INTERRUPT_SAVE_AREA;
++
++ ENTER();
++
++ PRINTM(INFO, "MrvDrvReassocTimer fired.\n");
++ Adapter->ReassocTimerIsSet = FALSE;
++ if (Adapter->PSState != PS_STATE_FULL_POWER) {
++ /* wait until Exit_PS command returns */
++ Adapter->ReassocTimerIsSet = TRUE;
++ ModTimer(&Adapter->MrvDrvTimer, MRVDRV_TIMER_1S);
++ PRINTM(INFO, "MrvDrvTimerFunction(PSState=%d) waiting"
++ "for Exit_PS done\n", Adapter->PSState);
++ LEAVE();
++ return;
++ }
++
++ PRINTM(INFO, "Waking Up the Reassoc Thread\n");
++
++ wake_up_interruptible(&priv->ReassocThread.waitQ);
++
++ LEAVE();
++ return;
++}
++#endif /* REASSOCIATION */
++
++int
++sendADHOCBSSIDQuery(wlan_private * priv)
++{
++ return PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_IBSS_COALESCING_STATUS,
++ HostCmd_ACT_GET, 0, 0, NULL);
++}
+diff --git a/drivers/net/wireless/marvell8686/wlan_join.h b/drivers/net/wireless/marvell8686/wlan_join.h
+new file mode 100644
+index 0000000..ffb944e
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_join.h
+@@ -0,0 +1,84 @@
++/** @file wlan_join.h
++ *
++ * @brief Interface for the wlan infrastructure and adhoc join routines
++ *
++ * Driver interface functions and type declarations for the join module
++ * implemented in wlan_join.c. Process all start/join requests for
++ * both adhoc and infrastructure networks
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2006
++ *
++ * @sa wlan_join.c
++ */
++/*************************************************************
++Change Log:
++ 01/11/06: Initial revision. Match new scan code, relocate related functions
++
++************************************************************/
++
++#ifndef _WLAN_JOIN_H
++#define _WLAN_JOIN_H
++
++//! Size of buffer allocated to store the association response from firmware
++#define MRVDRV_ASSOC_RSP_BUF_SIZE 500
++
++//! Size of buffer allocated to store IEs passed to firmware in the assoc req
++#define MRVDRV_GENIE_BUF_SIZE 256
++
++//! Size of buffer allocated to store TLVs passed to firmware in the assoc req
++#define MRVDRV_ASSOC_TLV_BUF_SIZE 256
++
++extern int wlan_cmd_802_11_authenticate(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd,
++ void *pdata_buf);
++extern int wlan_cmd_802_11_ad_hoc_join(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd,
++ void *pdata_buf);
++extern int wlan_cmd_802_11_ad_hoc_stop(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd);
++extern int wlan_cmd_802_11_ad_hoc_start(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd,
++ void *pssid);
++extern int wlan_cmd_802_11_deauthenticate(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd);
++extern int wlan_cmd_802_11_associate(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd,
++ void *pdata_buf);
++extern int wlan_ret_802_11_authenticate(wlan_private * priv,
++ HostCmd_DS_COMMAND * resp);
++extern int wlan_ret_802_11_ad_hoc(wlan_private * priv,
++ HostCmd_DS_COMMAND * resp);
++extern int wlan_ret_802_11_ad_hoc_stop(wlan_private * priv,
++ HostCmd_DS_COMMAND * resp);
++extern int wlan_ret_802_11_disassociate(wlan_private * priv,
++ HostCmd_DS_COMMAND * resp);
++extern int wlan_ret_802_11_associate(wlan_private * priv,
++ HostCmd_DS_COMMAND * resp);
++
++extern int wlan_associate(wlan_private * priv, BSSDescriptor_t * pBSSDesc);
++extern int wlan_associate_to_table_idx(wlan_private * priv, int tableIdx);
++
++extern int wlanidle_on(wlan_private * priv);
++extern int wlanidle_off(wlan_private * priv);
++
++extern int wlan_do_adhocstop_ioctl(wlan_private * priv);
++extern int wlan_reassociation_thread(void *data);
++
++extern int StartAdhocNetwork(wlan_private * priv,
++ WLAN_802_11_SSID * AdhocSSID);
++extern int JoinAdhocNetwork(wlan_private * priv, BSSDescriptor_t * pBSSDesc);
++extern int StopAdhocNetwork(wlan_private * priv);
++extern int SendDeauthentication(wlan_private * priv);
++
++extern int wlan_do_adhocstop_ioctl(wlan_private * priv);
++extern int wlan_get_assoc_rsp_ioctl(wlan_private * priv, struct iwreq *wrq);
++extern int wlan_set_mrvl_tlv_ioctl(wlan_private * priv, struct iwreq *wrq);
++
++#ifdef __KERNEL__
++extern int wlan_set_wap(struct net_device *dev, struct iw_request_info *info,
++ struct sockaddr *awrq, char *extra);
++#endif
++
++extern int sendADHOCBSSIDQuery(wlan_private * priv);
++
++#endif
+diff --git a/drivers/net/wireless/marvell8686/wlan_main.c b/drivers/net/wireless/marvell8686/wlan_main.c
+new file mode 100644
+index 0000000..c938cee
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_main.c
+@@ -0,0 +1,1359 @@
++/** @file wlan_main.c
++ *
++ * @brief This file contains the major functions in WLAN
++ * driver. It includes init, exit, open, close and main
++ * thread etc..
++ *
++ */
++/**
++ * @mainpage M-WLAN Linux Driver
++ *
++ * @section overview_sec Overview
++ *
++ * The M-WLAN is a Linux reference driver for Marvell
++ * 802.11 (a/b/g) WLAN chipset.
++ *
++ * @section copyright_sec Copyright
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2007
++ *
++ */
++/********************************************************
++Change log:
++ 09/30/05: Add Doxygen format comments
++ 12/09/05: Add TX_QUEUE support
++ 01/05/06: Add kernel 2.6.x support
++ 01/11/06: Conditionalize new scan/join functions.
++ 01/12/06: Add TxLockFlag for UAPSD power save mode
++ and Proprietary Periodic sleep support
++********************************************************/
++
++#include "include.h"
++
++/********************************************************
++ Local Variables
++********************************************************/
++
++#ifdef ENABLE_PM
++#define WLAN_PM_DRV_NAME "wlan_pm_drv"
++
++static int wlan_pm_suspend(struct device *pmdev, u32 state, u32 level);
++static int wlan_pm_resume(struct device *pmdev, u32 level);
++static void wlan_pm_release(struct device *pmdev);
++
++/*!
++ * This structure contains pointers to the power management callback functions.
++ */
++static struct device_driver wlan_pm_driver = {
++ .name = WLAN_PM_DRV_NAME,
++ .bus = &platform_bus_type,
++ .suspend = wlan_pm_suspend,
++ .resume = wlan_pm_resume,
++};
++
++/*! Device Definition for WLAN */
++static struct platform_device wlan_pm_platform_device = {
++ .name = WLAN_PM_DRV_NAME,
++ .id = 0,
++ .dev.release = wlan_pm_release,
++};
++#endif
++
++spinlock_t driver_lock = SPIN_LOCK_UNLOCKED;
++ulong driver_flags;
++
++#define WLAN_TX_PWR_DEFAULT 20 /*100mW */
++#define WLAN_TX_PWR_US_DEFAULT 20 /*100mW */
++#define WLAN_TX_PWR_JP_DEFAULT 16 /*50mW */
++#define WLAN_TX_PWR_FR_100MW 20 /*100mW */
++#define WLAN_TX_PWR_FR_10MW 10 /*10mW */
++#define WLAN_TX_PWR_EMEA_DEFAULT 20 /*100mW */
++
++/* Format { Channel, Frequency (MHz), MaxTxPower } */
++/* Band: 'B/G', Region: USA FCC/Canada IC */
++static CHANNEL_FREQ_POWER channel_freq_power_US_BG[] = {
++ {1, 2412, WLAN_TX_PWR_US_DEFAULT},
++ {2, 2417, WLAN_TX_PWR_US_DEFAULT},
++ {3, 2422, WLAN_TX_PWR_US_DEFAULT},
++ {4, 2427, WLAN_TX_PWR_US_DEFAULT},
++ {5, 2432, WLAN_TX_PWR_US_DEFAULT},
++ {6, 2437, WLAN_TX_PWR_US_DEFAULT},
++ {7, 2442, WLAN_TX_PWR_US_DEFAULT},
++ {8, 2447, WLAN_TX_PWR_US_DEFAULT},
++ {9, 2452, WLAN_TX_PWR_US_DEFAULT},
++ {10, 2457, WLAN_TX_PWR_US_DEFAULT},
++ {11, 2462, WLAN_TX_PWR_US_DEFAULT}
++};
++
++/* Band: 'B/G', Region: Europe ETSI */
++static CHANNEL_FREQ_POWER channel_freq_power_EU_BG[] = {
++ {1, 2412, WLAN_TX_PWR_EMEA_DEFAULT},
++ {2, 2417, WLAN_TX_PWR_EMEA_DEFAULT},
++ {3, 2422, WLAN_TX_PWR_EMEA_DEFAULT},
++ {4, 2427, WLAN_TX_PWR_EMEA_DEFAULT},
++ {5, 2432, WLAN_TX_PWR_EMEA_DEFAULT},
++ {6, 2437, WLAN_TX_PWR_EMEA_DEFAULT},
++ {7, 2442, WLAN_TX_PWR_EMEA_DEFAULT},
++ {8, 2447, WLAN_TX_PWR_EMEA_DEFAULT},
++ {9, 2452, WLAN_TX_PWR_EMEA_DEFAULT},
++ {10, 2457, WLAN_TX_PWR_EMEA_DEFAULT},
++ {11, 2462, WLAN_TX_PWR_EMEA_DEFAULT},
++ {12, 2467, WLAN_TX_PWR_EMEA_DEFAULT},
++ {13, 2472, WLAN_TX_PWR_EMEA_DEFAULT}
++};
++
++/* Band: 'B/G', Region: France */
++static CHANNEL_FREQ_POWER channel_freq_power_FR_BG[] = {
++ {1, 2412, WLAN_TX_PWR_FR_100MW},
++ {2, 2417, WLAN_TX_PWR_FR_100MW},
++ {3, 2422, WLAN_TX_PWR_FR_100MW},
++ {4, 2427, WLAN_TX_PWR_FR_100MW},
++ {5, 2432, WLAN_TX_PWR_FR_100MW},
++ {6, 2437, WLAN_TX_PWR_FR_100MW},
++ {7, 2442, WLAN_TX_PWR_FR_100MW},
++ {8, 2447, WLAN_TX_PWR_FR_100MW},
++ {9, 2452, WLAN_TX_PWR_FR_100MW},
++ {10, 2457, WLAN_TX_PWR_FR_10MW},
++ {11, 2462, WLAN_TX_PWR_FR_10MW},
++ {12, 2467, WLAN_TX_PWR_FR_10MW},
++ {13, 2472, WLAN_TX_PWR_FR_10MW}
++};
++
++/* Band: 'B/G', Region: Japan */
++static CHANNEL_FREQ_POWER channel_freq_power_JPN41_BG[] = {
++ {1, 2412, WLAN_TX_PWR_JP_DEFAULT},
++ {2, 2417, WLAN_TX_PWR_JP_DEFAULT},
++ {3, 2422, WLAN_TX_PWR_JP_DEFAULT},
++ {4, 2427, WLAN_TX_PWR_JP_DEFAULT},
++ {5, 2432, WLAN_TX_PWR_JP_DEFAULT},
++ {6, 2437, WLAN_TX_PWR_JP_DEFAULT},
++ {7, 2442, WLAN_TX_PWR_JP_DEFAULT},
++ {8, 2447, WLAN_TX_PWR_JP_DEFAULT},
++ {9, 2452, WLAN_TX_PWR_JP_DEFAULT},
++ {10, 2457, WLAN_TX_PWR_JP_DEFAULT},
++ {11, 2462, WLAN_TX_PWR_JP_DEFAULT},
++ {12, 2467, WLAN_TX_PWR_JP_DEFAULT},
++ {13, 2472, WLAN_TX_PWR_JP_DEFAULT}
++};
++
++/* Band: 'B/G', Region: Japan */
++static CHANNEL_FREQ_POWER channel_freq_power_JPN40_BG[] = {
++ {14, 2484, WLAN_TX_PWR_JP_DEFAULT}
++};
++
++/********************************************************
++ Global Variables
++********************************************************/
++
++/**
++ * the structure for channel, frequency and power
++ */
++typedef struct _region_cfp_table
++{
++ u8 region;
++ CHANNEL_FREQ_POWER *cfp_BG;
++ int cfp_no_BG;
++} region_cfp_table_t;
++
++/**
++ * the structure for the mapping between region and CFP
++ */
++region_cfp_table_t region_cfp_table[] = {
++ {0x10, /*US FCC */
++ channel_freq_power_US_BG,
++ sizeof(channel_freq_power_US_BG) / sizeof(CHANNEL_FREQ_POWER),
++ }
++ ,
++ {0x20, /*CANADA IC */
++ channel_freq_power_US_BG,
++ sizeof(channel_freq_power_US_BG) / sizeof(CHANNEL_FREQ_POWER),
++ }
++ ,
++ {0x30, /*EU*/ channel_freq_power_EU_BG,
++ sizeof(channel_freq_power_EU_BG) / sizeof(CHANNEL_FREQ_POWER),
++ }
++ ,
++ {0x32, /*FRANCE*/ channel_freq_power_FR_BG,
++ sizeof(channel_freq_power_FR_BG) / sizeof(CHANNEL_FREQ_POWER),
++ }
++ ,
++ {0x40, /*JAPAN*/ channel_freq_power_JPN40_BG,
++ sizeof(channel_freq_power_JPN40_BG) / sizeof(CHANNEL_FREQ_POWER),
++ }
++ ,
++ {0x41, /*JAPAN*/ channel_freq_power_JPN41_BG,
++ sizeof(channel_freq_power_JPN41_BG) / sizeof(CHANNEL_FREQ_POWER),
++ }
++ ,
++/*Add new region here */
++};
++
++/**
++ * the rates supported by the card
++ */
++u8 WlanDataRates[WLAN_SUPPORTED_RATES] =
++ { 0x02, 0x04, 0x0B, 0x16, 0x00, 0x0C, 0x12,
++ 0x18, 0x24, 0x30, 0x48, 0x60, 0x6C, 0x00
++};
++
++/**
++ * the rates supported
++ */
++u8 SupportedRates[G_SUPPORTED_RATES] =
++ { 0x82, 0x84, 0x8b, 0x96, 0x0c, 0x12, 0x18, 0x24, 0x30, 0x48,
++ 0x60, 0x6c, 0
++};
++
++/**
++ * the rates supported for ad-hoc G mode
++ */
++u8 AdhocRates_G[G_SUPPORTED_RATES] =
++ { 0x82, 0x84, 0x8b, 0x96, 0x0c, 0x12, 0x18, 0x24, 0x30, 0x48, 0x60, 0x6c,
++0 };
++
++/**
++ * the rates supported for ad-hoc B mode
++ */
++u8 AdhocRates_B[4] = { 0x82, 0x84, 0x8b, 0x96 };
++
++/**
++ * the global variable of a pointer to wlan_private
++ * structure variable
++ */
++wlan_private *wlanpriv = NULL;
++
++u32 DSFreqList[15] = {
++ 0, 2412000, 2417000, 2422000, 2427000, 2432000, 2437000, 2442000,
++ 2447000, 2452000, 2457000, 2462000, 2467000, 2472000, 2484000
++};
++
++/**
++ * the table to keep region code
++ */
++u16 RegionCodeToIndex[MRVDRV_MAX_REGION_CODE] =
++ { 0x10, 0x20, 0x30, 0x32, 0x40, 0x41 };
++
++/********************************************************
++ Local Functions
++********************************************************/
++
++/**
++ * @brief This function opens the network device
++ *
++ * @param dev A pointer to net_device structure
++ * @return WLAN_STATUS_SUCCESS
++ */
++static int
++wlan_open(struct net_device *dev)
++{
++ wlan_private *priv = (wlan_private *) dev->priv;
++ wlan_adapter *adapter = priv->adapter;
++
++ ENTER();
++
++ MODULE_GET;
++
++ priv->open = TRUE;
++
++ if ((adapter->MediaConnectStatus == WlanMediaStateConnected)
++ && (adapter->InfrastructureMode != Wlan802_11IBSS
++ || adapter->AdhocLinkSensed == TRUE))
++ os_carrier_on(priv);
++ else
++ os_carrier_off(priv);
++
++ os_start_queue(priv);
++ wmm_start_queue(priv);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function closes the network device
++ *
++ * @param dev A pointer to net_device structure
++ * @return WLAN_STATUS_SUCCESS
++ */
++static int
++wlan_close(struct net_device *dev)
++{
++ wlan_private *priv = dev->priv;
++
++ ENTER();
++
++ if (priv->adapter)
++ wlan_clean_txrx(priv);
++
++ MODULE_PUT;
++
++ priv->open = FALSE;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++#ifdef ENABLE_PM
++/**
++ * @brief
++ * This function is called to put the SDHC in a low power state. Refer to the
++ * document driver-model/driver.txt in the kernel source tree for more
++ * information.
++ *
++ * @param dev the device structure used to give information on which SDHC
++ * to suspend
++ * @param state the power state the device is entering
++ * @param level the stage in device suspension process that we want the
++ * device to be put in
++ *
++ * @return 0 : go to sleep mode
++ * -1 : do not accept to go to sleep mode.
++ */
++static int
++wlan_pm_suspend(struct device *pmdev, u32 state, u32 level)
++{
++ wlan_private *priv = wlanpriv;
++ wlan_adapter *Adapter = priv->adapter;
++ struct net_device *dev = priv->wlan_dev.netdev;
++
++ switch (level) {
++
++ case SUSPEND_DISABLE:
++ PRINTM(INFO, "WIFI_PM_SUSPEND_CALLBACK: enter SUSPEND_DISABLE.\n");
++
++ /* in associated mode : check that chipset is in IEEE PS and well configured to wake up the host if needed */
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ if ((Adapter->PSState != PS_STATE_SLEEP)
++ || (!Adapter->bWakeupDevRequired)
++ || (Adapter->WakeupTries != 0)) {
++ PRINTM(INFO, "WIFI_PM_SUSPEND_CALLBACK: can't enter sleep mode because \
++ PSstate=%d, bWakeupDevRequired=%d, wakeupTries=%d\n",
++ Adapter->PSState, Adapter->bWakeupDevRequired, Adapter->WakeupTries);
++ return WLAN_STATUS_FAILURE;
++ }
++
++ else {
++
++ /*
++ * Detach the network interface
++ * if the network is running
++ */
++ if (netif_running(dev)) {
++ netif_device_detach(dev);
++ PRINTM(INFO, "netif_device_detach().\n");
++ }
++ /* Stop bus clock */
++ sbi_set_bus_clock(priv, FALSE);
++ }
++ }
++
++ /* in non associated mode : check that chipset is in Deepsleep mode */
++ else {
++ if (Adapter->IsDeepSleep == FALSE) {
++ PRINTM(INFO,
++ "WIFI_PM_SUSPEND_CALLBACK: No allowed to enter sleep while in FW in full power.\n");
++ return WLAN_STATUS_FAILURE;
++ }
++ /*
++ * Detach the network interface
++ * if the network is running
++ */
++ if (netif_running(dev)) {
++ netif_device_detach(dev);
++ }
++ }
++ break;
++
++ case SUSPEND_SAVE_STATE:
++
++ PRINTM(INFO, "WIFI_PM_SUSPEND_CALLBACK: enter SUSPEND_SAVE_STATE.\n");
++ /* Save bus state to restore it when waking up */
++ sbi_suspend(priv);
++
++ break;
++
++ case SUSPEND_POWER_DOWN:
++
++ PRINTM(INFO, "WIFI_PM_SUSPEND_CALLBACK: enter SUSPEND_POWER_DOWN.\n");
++ /* nothing to do */
++ break;
++
++ default:
++
++ break;
++
++ }
++
++ return WLAN_STATUS_SUCCESS;
++
++}
++
++/**
++ * @brief
++ * This function is called to bring the SDHC back from a low power state. Refer
++ * to the document driver-model/driver.txt in the kernel source tree for more
++ * information.
++ *
++ * @param dev the device structure used to give information on which SDHC
++ * to resume
++ * @param level the stage in device resumption process that we want the
++ * device to be put in
++ *
++ * @return The function always returns 0.
++ */
++static int
++wlan_pm_resume(struct device *pmdev, u32 level)
++{
++ wlan_private *priv = wlanpriv;
++ wlan_adapter *Adapter = priv->adapter;
++ struct net_device *dev = priv->wlan_dev.netdev;
++
++ switch (level) {
++
++ case RESUME_POWER_ON:
++
++ PRINTM(INFO, "WIFI_PM_RESUME_CALLBACK: enter RESUME_POWER_ON.\n");
++ /* nothing to do */
++ break;
++
++ case RESUME_RESTORE_STATE:
++
++ PRINTM(INFO,
++ "WIFI_PM_RESUME_CALLBACK: enter RESUME_RESTORE_STATE.\n");
++ /* Restore bus state */
++ sbi_resume(priv);
++ break;
++
++ case RESUME_ENABLE:
++
++ PRINTM(INFO, "WIFI_PM_RESUME_CALLBACK: enter RESUME_ENABLE.\n");
++
++ /* in associated mode */
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++
++ if (Adapter->bWakeupDevRequired == FALSE) {
++ /* could never happen */
++ PRINTM(MSG, "WIFI_PM_RESUME_CALLBACK: serious error.\n");
++ } else {
++ /*
++ * Start bus clock
++ */
++ sbi_set_bus_clock(priv, TRUE);
++ /*
++ * Attach the network interface
++ * if the network is running
++ */
++ if (netif_running(dev)) {
++ netif_device_attach(dev);
++ PRINTM(INFO, "WIFI_PM : after netif_device_attach().\n");
++ }
++ PRINTM(INFO,
++ "WIFI_PM : After netif attach, in associated mode.\n");
++ }
++ }
++
++ /* in non associated mode */
++ else {
++ if (netif_running(dev)) {
++ netif_device_attach(dev);
++ }
++
++ PRINTM(INFO,
++ "WIFI_PM : after netif attach, in NON associated mode.\n");
++ }
++ break;
++
++ default:
++ break;
++
++ }
++ return WLAN_STATUS_SUCCESS;
++
++}
++
++/**
++ * @brief
++ * Dummy function to be compliant with Linux Power Management framework.
++ *
++ * @param pmdev the device structure used to give information on which SDHC
++ * to use
++ *
++ * @return None.
++ */
++static void
++wlan_pm_release(struct device *pmdev)
++{
++ PRINTM(INFO, "WIFI_PM_DRIVER : Into pm_device release function\n");
++ return;
++}
++
++#endif /* ENABLE_PM */
++
++/**
++ * @brief This function handles packet transmission
++ *
++ * @param skb A pointer to sk_buff structure
++ * @param dev A pointer to net_device structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
++{
++ int ret;
++ wlan_private *priv = dev->priv;
++
++ ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ PRINTM(DATA, "Data <= kernel\n");
++
++ if (wlan_tx_packet(priv, skb)) {
++ /* Transmit failed */
++ ret = WLAN_STATUS_FAILURE;
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function handles the timeout of packet
++ * transmission
++ *
++ * @param dev A pointer to net_device structure
++ * @return n/a
++ */
++static void
++wlan_tx_timeout(struct net_device *dev)
++{
++ wlan_private *priv = (wlan_private *) dev->priv;
++
++ ENTER();
++
++ PRINTM(DATA, "Tx timeout\n");
++ UpdateTransStart(dev);
++
++ priv->adapter->dbg.num_tx_timeout++;
++
++ priv->adapter->IntCounter++;
++ wake_up_interruptible(&priv->MainThread.waitQ);
++
++ LEAVE();
++}
++
++/**
++ * @brief This function returns the network statistics
++ *
++ * @param dev A pointer to wlan_private structure
++ * @return A pointer to net_device_stats structure
++ */
++static struct net_device_stats *
++wlan_get_stats(struct net_device *dev)
++{
++ wlan_private *priv = (wlan_private *) dev->priv;
++
++ return &priv->stats;
++}
++
++/**
++ * @brief This function sets the MAC address to firmware.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param pRxPD A pointer to RxPD structure of received packet
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++wlan_set_mac_address(struct net_device *dev, void *addr)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_private *priv = (wlan_private *) dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ struct sockaddr *pHwAddr = (struct sockaddr *) addr;
++
++ ENTER();
++
++ memset(Adapter->CurrentAddr, 0, MRVDRV_ETH_ADDR_LEN);
++
++ /* dev->dev_addr is 8 bytes */
++ HEXDUMP("dev->dev_addr:", dev->dev_addr, ETH_ALEN);
++
++ HEXDUMP("addr:", pHwAddr->sa_data, ETH_ALEN);
++ memcpy(Adapter->CurrentAddr, pHwAddr->sa_data, ETH_ALEN);
++
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_802_11_MAC_ADDRESS,
++ HostCmd_ACT_SET,
++ HostCmd_OPTION_WAITFORRSP, 0, NULL);
++
++ if (ret) {
++ PRINTM(INFO, "set mac address failed.\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ HEXDUMP("Adapter->MacAddr:", Adapter->CurrentAddr, ETH_ALEN);
++ memcpy(dev->dev_addr, Adapter->CurrentAddr, ETH_ALEN);
++
++ done:
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function sets multicast addresses to firmware
++ *
++ * @param dev A pointer to net_device structure
++ * @return n/a
++ */
++static void
++wlan_set_multicast_list(struct net_device *dev)
++{
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ int OldPacketFilter;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ OldPacketFilter = Adapter->CurrentPacketFilter;
++
++ if (dev->flags & IFF_PROMISC) {
++ PRINTM(INFO, "Enable Promiscuous mode\n");
++ Adapter->CurrentPacketFilter |= HostCmd_ACT_MAC_PROMISCUOUS_ENABLE;
++ Adapter->CurrentPacketFilter &= ~HostCmd_ACT_MAC_ALL_MULTICAST_ENABLE;
++ } else {
++ /* Multicast */
++ Adapter->CurrentPacketFilter &= ~HostCmd_ACT_MAC_PROMISCUOUS_ENABLE;
++
++ if (dev->flags & IFF_ALLMULTI || dev->mc_count >
++ MRVDRV_MAX_MULTICAST_LIST_SIZE) {
++ PRINTM(INFO, "Enabling All Multicast!\n");
++ Adapter->CurrentPacketFilter |=
++ HostCmd_ACT_MAC_ALL_MULTICAST_ENABLE;
++ } else {
++ Adapter->CurrentPacketFilter &=
++ ~HostCmd_ACT_MAC_ALL_MULTICAST_ENABLE;
++
++ if (!dev->mc_count) {
++ PRINTM(INFO, "No multicast addresses - "
++ "disabling multicast!\n");
++
++ } else {
++ int i;
++
++ Adapter->NumOfMulticastMACAddr =
++ CopyMulticastAddrs(Adapter, dev);
++
++ PRINTM(INFO, "Multicast addresses: %d\n", dev->mc_count);
++
++ for (i = 0; i < dev->mc_count; i++) {
++ PRINTM(INFO, "Multicast address %d:"
++ "%x %x %x %x %x %x\n", i,
++ Adapter->MulticastList[i][0],
++ Adapter->MulticastList[i][1],
++ Adapter->MulticastList[i][2],
++ Adapter->MulticastList[i][3],
++ Adapter->MulticastList[i][4],
++ Adapter->MulticastList[i][5]);
++ }
++ /* set multicast addresses to firmware */
++ ret =
++ PrepareAndSendCommand(priv, HostCmd_CMD_MAC_MULTICAST_ADR,
++ HostCmd_ACT_GEN_SET, 0, 0, NULL);
++ }
++ }
++ }
++
++ if (Adapter->CurrentPacketFilter != OldPacketFilter) {
++ if (ret == WLAN_STATUS_SUCCESS)
++ PrepareAndSendCommand(priv,
++ HostCmd_CMD_MAC_CONTROL,
++ 0, 0, 0, &Adapter->CurrentPacketFilter);
++ }
++
++ LEAVE();
++}
++
++/**
++ * @brief This function pops rx_skb from the rx queue.
++ *
++ * @param RxSkbQ A pointer to rx_skb queue
++ * @return A pointer to skb
++ */
++static struct sk_buff *
++wlan_pop_rx_skb(struct sk_buff *RxSkbQ)
++{
++ struct sk_buff *skb_data = NULL;
++
++ if (!list_empty((struct list_head *) RxSkbQ)) {
++ skb_data = RxSkbQ->next;
++ list_del((struct list_head *) RxSkbQ->next);
++ }
++
++ return skb_data;
++}
++
++/**
++ * @brief This function hanldes the major job in WLAN driver.
++ * it handles the event generated by firmware, rx data received
++ * from firmware and tx data sent from kernel.
++ *
++ * @param data A pointer to wlan_thread structure
++ * @return WLAN_STATUS_SUCCESS
++ */
++static int
++wlan_service_main_thread(void *data)
++{
++ wlan_thread *thread = data;
++ wlan_private *priv = thread->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ wait_queue_t wait;
++ u8 ireg = 0;
++ u8 runCmd = 1;
++
++ OS_INTERRUPT_SAVE_AREA;
++
++ ENTER();
++
++ wlan_activate_thread(thread);
++
++ init_waitqueue_entry(&wait, current);
++
++ current->flags |= PF_NOFREEZE;
++
++ wmm_init(priv);
++
++ for (;;) {
++ add_wait_queue(&thread->waitQ, &wait);
++ OS_SET_THREAD_STATE(TASK_INTERRUPTIBLE);
++
++ runCmd = 1;
++ TX_DISABLE;
++
++ if ((Adapter->WakeupTries) ||
++ (Adapter->PSState == PS_STATE_SLEEP
++ && !Adapter->bWakeupDevRequired) ||
++ (!Adapter->IntCounter &&
++ Adapter->PSState == PS_STATE_PRE_SLEEP) ||
++ (!Adapter->IntCounter
++ && (priv->wlan_dev.dnld_sent || Adapter->TxLockFlag
++ || wmm_lists_empty(priv) || wmm_is_queue_stopped(priv))
++ && (priv->wlan_dev.dnld_sent || !Adapter->CurrentTxSkb)
++ && (priv->wlan_dev.dnld_sent || Adapter->CurCmd ||
++ list_empty(&Adapter->CmdPendingQ))
++ )
++ ) {
++ PRINTM(INFO, "main-thread sleeping... "
++ "HS_Act=%s WakeupReq=%s Conn=%s PS_Mode=%d PS_State=%d\n",
++ (Adapter->HS_Activated) ? "Y" : "N",
++ (Adapter->bWakeupDevRequired) ? "Y" : "N",
++ (Adapter->MediaConnectStatus) ? "Y" : "N",
++ Adapter->PSMode, Adapter->PSState);
++
++#ifdef _MAINSTONE
++ MST_LEDDAT1 = get_utimeofday();
++#endif
++ TX_RESTORE;
++ schedule();
++ PRINTM(INFO, "main-thread waking up: IntCnt=%d "
++ "CurCmd=%s CmdPending=%s\n"
++ " Connect=%s "
++ "CurTxSkb=%s dnld_sent=%d\n",
++ Adapter->IntCounter,
++ (Adapter->CurCmd) ? "Y" : "N",
++ list_empty(&Adapter->CmdPendingQ) ? "N" : "Y",
++ (Adapter->MediaConnectStatus) ? "Y" : "N",
++ (Adapter->CurrentTxSkb) ? "Y" : "N",
++ priv->wlan_dev.dnld_sent);
++ } else {
++ TX_RESTORE;
++ }
++
++ OS_SET_THREAD_STATE(TASK_RUNNING);
++ remove_wait_queue(&thread->waitQ, &wait);
++
++ if (kthread_should_stop() || Adapter->SurpriseRemoved) {
++ PRINTM(INFO, "main-thread: break from main thread: "
++ "SurpriseRemoved=0x%x\n", Adapter->SurpriseRemoved);
++ break;
++ }
++
++ if (Adapter->IntCounter) {
++ OS_INT_DISABLE;
++ Adapter->IntCounter = 0;
++ OS_INT_RESTORE;
++
++ if (sbi_get_int_status(priv, &ireg)) {
++ PRINTM(ERROR,
++ "main-thread: reading HOST_INT_STATUS_REG failed\n");
++ continue;
++ }
++ OS_INT_DISABLE;
++ Adapter->HisRegCpy |= ireg;
++ OS_INT_RESTORE;
++ PRINTM(INTR, "INT: status = 0x%x\n", Adapter->HisRegCpy);
++ } else if (Adapter->bWakeupDevRequired
++ && (Adapter->HS_Activated || (Adapter->IsDeepSleep)
++ )
++ ) {
++ Adapter->WakeupTries++;
++ PRINTM(CMND,
++ "Wakeup device... WakeupReq=%s Conn=%s PS_Mode=%d PS_State=%d\n",
++ (Adapter->bWakeupDevRequired) ? "Y" : "N",
++ (priv->adapter->MediaConnectStatus) ? "Y" : "N",
++ priv->adapter->PSMode, priv->adapter->PSState);
++
++ /* Wake up device */
++ if (sbi_exit_deep_sleep(priv))
++ PRINTM(MSG, "main-thread: wakeup dev failed\n");
++ continue;
++ }
++
++ /* Command response? */
++ if (Adapter->HisRegCpy & HIS_CmdUpLdRdy) {
++ OS_INT_DISABLE;
++ Adapter->HisRegCpy &= ~HIS_CmdUpLdRdy;
++ OS_INT_RESTORE;
++
++ wlan_process_rx_command(priv);
++ }
++
++ /* Any received data? */
++ if (Adapter->HisRegCpy & HIS_RxUpLdRdy) {
++ OS_INT_DISABLE;
++ Adapter->HisRegCpy &= ~HIS_RxUpLdRdy;
++ OS_INT_RESTORE;
++
++ wlan_send_rxskbQ(priv);
++ runCmd = 0;
++ }
++
++ /* Any Card Event */
++ if (Adapter->HisRegCpy & HIS_CardEvent) {
++ OS_INT_DISABLE;
++ Adapter->HisRegCpy &= ~HIS_CardEvent;
++ OS_INT_RESTORE;
++
++ if (sbi_read_event_cause(priv)) {
++ PRINTM(ERROR, "main-thread: sbi_read_event_cause failed.\n");
++ continue;
++ }
++ wlan_process_event(priv);
++ }
++
++ /* Check if we need to confirm Sleep Request received previously */
++ if (Adapter->PSState == PS_STATE_PRE_SLEEP) {
++ if (!priv->wlan_dev.dnld_sent && !Adapter->CurCmd) {
++ ASSERT(Adapter->MediaConnectStatus ==
++ WlanMediaStateConnected);
++ PSConfirmSleep(priv, (u16) Adapter->PSMode);
++ }
++ }
++
++ /* The PS state is changed during processing of
++ * Sleep Request event above
++ */
++ if ((Adapter->PSState == PS_STATE_SLEEP)
++ || (Adapter->PSState == PS_STATE_PRE_SLEEP)) {
++ continue;
++ }
++
++ if (Adapter->IsDeepSleep)
++ continue;
++
++ /* The HS_Activated flag is changed during processing of
++ HS_Activate command resp */
++ /* We cannot send command or data if HS_Activated and
++ WakeupDevRequired are TRUE */
++ if (Adapter->HS_Activated && Adapter->bWakeupDevRequired) {
++ PRINTM(INFO, "main-thread: cannot send command or data, "
++ "HS_Activated=%d\n", Adapter->HS_Activated);
++ continue;
++ }
++
++ /* Execute the next command */
++ if (!priv->wlan_dev.dnld_sent && !Adapter->CurCmd && runCmd == 1) {
++ ExecuteNextCommand(priv);
++ }
++
++ if (!priv->wlan_dev.dnld_sent
++ && !wmm_lists_empty(priv) && !wmm_is_queue_stopped(priv)) {
++ if ((Adapter->PSState == PS_STATE_FULL_POWER)
++ || (Adapter->sleep_period.period == 0)
++ || (Adapter->TxLockFlag == FALSE)) {
++ wmm_process_tx(priv);
++ }
++ }
++
++ }
++
++ wlan_deactivate_thread(thread);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function adds the card. it will probe the
++ * card, allocate the wlan_priv and initialize the device.
++ *
++ * @param card A pointer to card
++ * @return A pointer to wlan_private structure
++ */
++wlan_private *
++wlan_add_card(void *card)
++{
++ struct net_device *dev = NULL;
++ wlan_private *priv = NULL;
++
++ ENTER();
++
++ /* probe the card */
++ if (sbi_probe_card(card) < 0) {
++ PRINTM(MSG, "NO card found!\n");
++ return NULL;
++ }
++
++ /* Allocate an Ethernet device and register it */
++ if (!(dev = alloc_etherdev(sizeof(wlan_private)))) {
++ PRINTM(MSG, "Init ethernet device failed!\n");
++ return NULL;
++ }
++
++ priv = dev->priv;
++
++ /* allocate buffer for wlan_adapter */
++ if (!(priv->adapter = kmalloc(sizeof(wlan_adapter), GFP_KERNEL))) {
++ PRINTM(MSG, "Allocate buffer for wlan_adapter failed!\n");
++ goto err_kmalloc;
++ }
++
++ /* init wlan_adapter */
++ memset(priv->adapter, 0, sizeof(wlan_adapter));
++
++ priv->wlan_dev.netdev = dev;
++ priv->wlan_dev.card = card;
++ wlanpriv = priv;
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
++ SET_MODULE_OWNER(dev);
++#endif
++
++ /* Setup the OS Interface to our functions */
++ dev->open = wlan_open;
++ dev->hard_start_xmit = wlan_hard_start_xmit;
++ dev->stop = wlan_close;
++ dev->do_ioctl = wlan_do_ioctl;
++ dev->set_mac_address = wlan_set_mac_address;
++
++ dev->tx_timeout = wlan_tx_timeout;
++ dev->get_stats = wlan_get_stats;
++ dev->watchdog_timeo = MRVDRV_DEFAULT_WATCHDOG_TIMEOUT;
++
++#ifdef WIRELESS_EXT
++#if WIRELESS_EXT > 17
++ wlan_handler_def.get_wireless_stats = wlan_get_wireless_stats;
++#else
++ dev->get_wireless_stats = wlan_get_wireless_stats;
++#endif
++ dev->wireless_handlers = (struct iw_handler_def *) &wlan_handler_def;
++#endif
++#define NETIF_F_DYNALLOC 16
++ dev->features |= NETIF_F_DYNALLOC;
++ dev->flags |= IFF_BROADCAST | IFF_MULTICAST;
++ dev->set_multicast_list = wlan_set_multicast_list;
++
++ init_waitqueue_head(&priv->adapter->ds_awake_q);
++
++#ifdef ENABLE_PM
++ /* register Driver to Linux Power Management system. */
++ if (!driver_register(&wlan_pm_driver)) {
++ /* Register one device to Linux Power Management system. */
++ if (platform_device_register(&wlan_pm_platform_device)) {
++ PRINTM(MSG,
++ "WiFi driver, wlan_main : error when registering device to Linux Power Managment.\n");
++ driver_unregister(&wlan_pm_driver);
++ } else {
++ PRINTM(INFO,
++ "WiFi device and driver registered to Linux Power Managment.\n");
++ }
++ } else {
++ PRINTM(MSG,
++ "WiFi driver, wlan_main : error when registering driver to Linux Power Managment.\n");
++ }
++
++#endif
++
++ INIT_LIST_HEAD(&priv->adapter->CmdFreeQ);
++ INIT_LIST_HEAD(&priv->adapter->CmdPendingQ);
++
++ PRINTM(INFO, "Starting kthread...\n");
++ priv->MainThread.priv = priv;
++ wlan_create_thread(wlan_service_main_thread,
++ &priv->MainThread, "wlan_main_service");
++
++ ConfigureThreadPriority();
++
++#ifdef REASSOCIATION
++ priv->ReassocThread.priv = priv;
++ wlan_create_thread(wlan_reassociation_thread,
++ &priv->ReassocThread, "wlan_reassoc_service");
++#endif /* REASSOCIATION */
++
++ /*
++ * Register the device. Fillup the private data structure with
++ * relevant information from the card and request for the required
++ * IRQ.
++ */
++
++ if (sbi_register_dev(priv) < 0) {
++ PRINTM(FATAL, "Failed to register wlan device!\n");
++ goto err_registerdev;
++ }
++
++ PRINTM(WARN, "%s: Marvell Wlan 802.11 Adapter "
++ "revision 0x%02X at IRQ %i\n", dev->name,
++ priv->adapter->chip_rev, dev->irq);
++
++#ifdef CONFIG_MARVELL_8686_PROC_FS
++ wlan_proc_entry(priv, dev);
++#ifdef CONFIG_MARVELL_8686_DEBUG
++ wlan_debug_entry(priv, dev);
++#endif
++#endif
++
++ /* Get the CIS Table */
++ sbi_get_cis_info(priv);
++
++ /* init FW and HW */
++ if (wlan_init_fw(priv)) {
++ PRINTM(FATAL, "Firmware Init Failed\n");
++ goto err_init_fw;
++ }
++
++ if (register_netdev(dev)) {
++ printk(KERN_ERR "Cannot register network device!\n");
++ goto err_netdev;
++ }
++
++ LEAVE();
++ return priv;
++
++err_netdev:
++ unregister_netdev(dev);
++
++err_init_fw:
++ sbi_unregister_dev(priv);
++
++#ifdef CONFIG_MARVELL_8686_PROC_FS
++#ifdef CONFIG_MARVELL_8686_DEBUG
++ wlan_debug_remove(priv);
++#endif
++ wlan_proc_remove(priv);
++#endif
++
++err_registerdev:
++ /* Stop the thread servicing the interrupts */
++ wake_up_interruptible(&priv->MainThread.waitQ);
++ wlan_terminate_thread(&priv->MainThread);
++
++#ifdef REASSOCIATION
++ wake_up_interruptible(&priv->ReassocThread.waitQ);
++ wlan_terminate_thread(&priv->ReassocThread);
++#endif /* REASSOCIATION */
++
++err_kmalloc:
++ free_netdev(dev);
++ wlan_free_adapter(priv);
++ wlanpriv = NULL;
++
++ LEAVE();
++ return NULL;
++}
++
++/**
++ * @brief This function removes the card.
++ *
++ * @param priv A pointer to card
++ * @return WLAN_STATUS_SUCCESS
++ */
++int
++wlan_remove_card(void *card)
++{
++ wlan_private *priv = wlanpriv;
++ wlan_adapter *Adapter;
++ struct net_device *dev;
++ union iwreq_data wrqu;
++
++ ENTER();
++
++ if (!priv) {
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++ }
++
++ Adapter = priv->adapter;
++
++ if (!Adapter) {
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++ }
++
++ dev = priv->wlan_dev.netdev;
++
++ wake_up_interruptible(&Adapter->ds_awake_q);
++
++ if (Adapter->CurCmd) {
++ PRINTM(INFO, "Wake up current cmdwait_q\n");
++ wake_up_interruptible(&Adapter->CurCmd->cmdwait_q);
++ }
++
++ Adapter->CurCmd = NULL;
++
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ wlan_clean_txrx(priv);
++ Adapter->MediaConnectStatus = WlanMediaStateDisconnected;
++ }
++ Adapter->IsAutoDeepSleepEnabled = FALSE;
++ if (Adapter->IsDeepSleep == TRUE) {
++ sbi_exit_deep_sleep(priv);
++ if (Adapter->IsDeepSleep == TRUE) {
++ if (os_wait_interruptible_timeout(Adapter->ds_awake_q,
++ !Adapter->IsDeepSleep,
++ MRVDRV_DEEP_SLEEP_EXIT_TIMEOUT)
++ == 0) {
++ PRINTM(MSG, "ds_awake_q: timer expired\n");
++ }
++ }
++ }
++
++ if (Adapter->PSMode == Wlan802_11PowerModeMAX_PSP) {
++ Adapter->PSMode = Wlan802_11PowerModeCAM;
++ PSWakeup(priv, HostCmd_OPTION_WAITFORRSP);
++ }
++
++ memset(wrqu.ap_addr.sa_data, 0xaa, ETH_ALEN);
++ wrqu.ap_addr.sa_family = ARPHRD_ETHER;
++ wireless_send_event(priv->wlan_dev.netdev, SIOCGIWAP, &wrqu, NULL);
++
++ /* Disable interrupts on the card as we cannot handle them after RESET */
++ sbi_disable_host_int(priv);
++
++ PrepareAndSendCommand(priv, HostCmd_CMD_802_11_RESET, 0, 0, 0, NULL);
++
++ os_sched_timeout(500);
++
++#ifdef ENABLE_PM
++ /* unregister driver and device from Linux Power Management system. */
++ platform_device_unregister(&wlan_pm_platform_device);
++ driver_unregister(&wlan_pm_driver);
++#endif
++
++ Adapter->SurpriseRemoved = TRUE;
++
++ /* Stop the thread servicing the interrupts */
++ wake_up_interruptible(&priv->MainThread.waitQ);
++
++#ifdef REASSOCIATION
++ wake_up_interruptible(&priv->ReassocThread.waitQ);
++#endif /* REASSOCIATION */
++
++#ifdef CONFIG_MARVELL_8686_PROC_FS
++#ifdef CONFIG_MARVELL_8686_DEBUG
++ wlan_debug_remove(priv);
++#endif
++ wlan_proc_remove(priv);
++#endif
++
++ PRINTM(INFO, "unregester dev\n");
++ sbi_unregister_dev(priv);
++
++ /* Last reference is our one */
++ PRINTM(INFO, "refcnt = %d\n", atomic_read(&dev->refcnt));
++
++ PRINTM(INFO, "netdev_finish_unregister: %s%s.\n", dev->name,
++ (dev->features & NETIF_F_DYNALLOC) ? "" : ", old style");
++
++ unregister_netdev(dev);
++
++ PRINTM(INFO, "Unregister finish\n");
++
++ priv->wlan_dev.netdev = NULL;
++ PRINTM(INFO, "Free Adapter\n");
++ wlan_free_adapter(priv);
++ free_netdev(dev);
++ wlanpriv = NULL;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/********************************************************
++ Global Functions
++********************************************************/
++
++/**
++ * @brief This function sends the rx packets to the os from the skb queue
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return n/a
++ */
++void
++wlan_send_rxskbQ(wlan_private * priv)
++{
++ struct sk_buff *skb;
++
++ ENTER();
++ if (priv->adapter) {
++ while ((skb = wlan_pop_rx_skb(&priv->adapter->RxSkbQ))) {
++ if (ProcessRxedPacket(priv, skb) == -ENOMEM)
++ break;
++ }
++ }
++ LEAVE();
++}
++
++/**
++ * @brief This function finds the CFP in
++ * region_cfp_table based on region and band parameter.
++ *
++ * @param region The region code
++ * @param band The band
++ * @param cfp_no A pointer to CFP number
++ * @return A pointer to CFP
++ */
++CHANNEL_FREQ_POWER *
++wlan_get_region_cfp_table(u8 region, u8 band, int *cfp_no)
++{
++ int i;
++
++ ENTER();
++
++ for (i = 0; i < sizeof(region_cfp_table) / sizeof(region_cfp_table_t);
++ i++) {
++ PRINTM(INFO, "region_cfp_table[i].region=%d\n",
++ region_cfp_table[i].region);
++ if (region_cfp_table[i].region == region) {
++ {
++ *cfp_no = region_cfp_table[i].cfp_no_BG;
++ LEAVE();
++ return region_cfp_table[i].cfp_BG;
++ }
++ }
++ }
++
++ LEAVE();
++ return NULL;
++}
++
++/**
++ * @brief This function sets region table.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param region The region code
++ * @param band The band
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_set_regiontable(wlan_private * priv, u8 region, u8 band)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int i = 0;
++
++ CHANNEL_FREQ_POWER *cfp;
++ int cfp_no;
++
++ ENTER();
++
++ memset(Adapter->region_channel, 0, sizeof(Adapter->region_channel));
++
++ {
++ cfp = wlan_get_region_cfp_table(region, band, &cfp_no);
++ if (cfp != NULL) {
++ Adapter->region_channel[i].NrCFP = cfp_no;
++ Adapter->region_channel[i].CFP = cfp;
++ } else {
++ PRINTM(INFO, "wrong region code %#x in Band B-G\n", region);
++ return WLAN_STATUS_FAILURE;
++ }
++ Adapter->region_channel[i].Valid = TRUE;
++ Adapter->region_channel[i].Region = region;
++ Adapter->region_channel[i].Band = band;
++ i++;
++ }
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function handles the interrupt. it will change PS
++ * state if applicable. it will wake up main_thread to handle
++ * the interrupt event as well.
++ *
++ * @param dev A pointer to net_device structure
++ * @return n/a
++ */
++void
++wlan_interrupt(struct net_device *dev)
++{
++ wlan_private *priv = dev->priv;
++
++ priv->adapter->IntCounter++;
++
++ PRINTM(INTR, "*\n");
++
++ priv->adapter->WakeupTries = 0;
++
++ if (priv->adapter->PSState == PS_STATE_SLEEP) {
++ priv->adapter->PSState = PS_STATE_AWAKE;
++ }
++
++ wake_up_interruptible(&priv->MainThread.waitQ);
++}
++
++#if 0
++/**
++ * @brief This function initializes module.
++ *
++ * @param n/a A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_init_module(void)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ if (sbi_register(wlan_add_card, wlan_remove_card, NULL) == NULL) {
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ done:
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function cleans module
++ *
++ * @param priv n/a
++ * @return n/a
++ */
++void
++wlan_cleanup_module(void)
++{
++ ENTER();
++
++ sbi_unregister();
++
++ LEAVE();
++}
++
++module_init(wlan_init_module);
++module_exit(wlan_cleanup_module);
++#endif
++
++MODULE_DESCRIPTION("M-WLAN Driver");
++MODULE_AUTHOR("Marvell International Ltd.");
+diff --git a/drivers/net/wireless/marvell8686/wlan_proc.c b/drivers/net/wireless/marvell8686/wlan_proc.c
+new file mode 100644
+index 0000000..99604dd
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_proc.c
+@@ -0,0 +1,213 @@
++/** @file wlan_proc.c
++ * @brief This file contains functions for proc fin proc file.
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2006
++ */
++/********************************************************
++Change log:
++ 10/04/05: Add Doxygen format comments
++ 01/05/06: Add kernel 2.6.x support
++
++********************************************************/
++#include "include.h"
++
++#ifdef CONFIG_MARVELL_8686_PROC_FS
++/********************************************************
++ Local Variables
++********************************************************/
++
++static char *szModes[] = {
++ "Ad-hoc",
++ "Managed",
++ "Auto",
++ "Unknown"
++};
++
++/********************************************************
++ Global Variables
++********************************************************/
++
++/********************************************************
++ Local Functions
++********************************************************/
++
++/**
++ * @brief proc read function
++ *
++ * @param page pointer to buffer
++ * @param start read data starting position
++ * @param offset offset
++ * @param count counter
++ * @param eof end of file flag
++ * @param data data to output
++ * @return number of output data
++ */
++static int
++wlan_proc_read(char *page, char **start, off_t offset,
++ int count, int *eof, void *data)
++{
++ int i;
++ char *p = page;
++ struct net_device *netdev = data;
++ struct dev_mc_list *mcptr = netdev->mc_list;
++ char fmt[64];
++ wlan_private *priv = netdev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ ulong flags;
++
++ if (offset != 0) {
++ *eof = 1;
++ goto exit;
++ }
++
++ get_version(Adapter, fmt, sizeof(fmt) - 1);
++
++ p += sprintf(p, "driver_name = " "\"wlan\"\n");
++ p += sprintf(p, "driver_version = %s", fmt);
++ p += sprintf(p, "\nInterfaceName=\"%s\"\n", netdev->name);
++ p += sprintf(p, "Mode=\"%s\"\n", szModes[Adapter->InfrastructureMode]);
++ p += sprintf(p, "State=\"%s\"\n",
++ ((Adapter->MediaConnectStatus ==
++ WlanMediaStateDisconnected) ? "Disconnected" :
++ "Connected"));
++ p += sprintf(p, "MACAddress=\"%02x:%02x:%02x:%02x:%02x:%02x\"\n",
++ netdev->dev_addr[0], netdev->dev_addr[1],
++ netdev->dev_addr[2], netdev->dev_addr[3],
++ netdev->dev_addr[4], netdev->dev_addr[5]);
++
++ p += sprintf(p, "MCCount=\"%d\"\n", netdev->mc_count);
++ p += sprintf(p, "ESSID=\"%s\"\n",
++ (u8 *) Adapter->CurBssParams.BSSDescriptor.Ssid.Ssid);
++ p += sprintf(p, "Channel=\"%d\"\n",
++ Adapter->CurBssParams.BSSDescriptor.Channel);
++ p += sprintf(p, "region_code = \"%02x\"\n", (u32) Adapter->RegionCode);
++
++ /*
++ * Put out the multicast list
++ */
++ for (i = 0; i < netdev->mc_count; i++) {
++ p += sprintf(p,
++ "MCAddr[%d]=\"%02x:%02x:%02x:%02x:%02x:%02x\"\n",
++ i,
++ mcptr->dmi_addr[0], mcptr->dmi_addr[1],
++ mcptr->dmi_addr[2], mcptr->dmi_addr[3],
++ mcptr->dmi_addr[4], mcptr->dmi_addr[5]);
++
++ mcptr = mcptr->next;
++ }
++ p += sprintf(p, "num_tx_bytes = %lu\n", priv->stats.tx_bytes);
++ p += sprintf(p, "num_rx_bytes = %lu\n", priv->stats.rx_bytes);
++ p += sprintf(p, "num_tx_pkts = %lu\n", priv->stats.tx_packets);
++ p += sprintf(p, "num_rx_pkts = %lu\n", priv->stats.rx_packets);
++ p += sprintf(p, "num_tx_pkts_dropped = %lu\n", priv->stats.tx_dropped);
++ p += sprintf(p, "num_rx_pkts_dropped = %lu\n", priv->stats.rx_dropped);
++ p += sprintf(p, "num_tx_pkts_err = %lu\n", priv->stats.tx_errors);
++ p += sprintf(p, "num_rx_pkts_err = %lu\n", priv->stats.rx_errors);
++ p += sprintf(p, "carrier %s\n",
++ ((netif_carrier_ok(priv->wlan_dev.netdev)) ? "on" : "off"));
++ p += sprintf(p, "tx queue %s\n",
++ ((netif_queue_stopped(priv->wlan_dev.netdev)) ? "stopped" :
++ "started"));
++
++ spin_lock_irqsave(&Adapter->QueueSpinLock, flags);
++ if (Adapter->CurCmd) {
++ HostCmd_DS_COMMAND *CmdPtr =
++ (HostCmd_DS_COMMAND *) Adapter->CurCmd->BufVirtualAddr;
++ p += sprintf(p, "CurCmd ID = 0x%x, 0x%x\n",
++ wlan_cpu_to_le16(CmdPtr->Command),
++ wlan_cpu_to_le16(*(u16 *) ((u8 *) CmdPtr + S_DS_GEN)));
++ } else {
++ p += sprintf(p, "CurCmd NULL\n");
++ }
++ spin_unlock_irqrestore(&Adapter->QueueSpinLock, flags);
++
++ exit:
++ return (p - page);
++}
++
++/********************************************************
++ Global Functions
++********************************************************/
++
++/**
++ * @brief create wlan proc file
++ *
++ * @param priv pointer wlan_private
++ * @param dev pointer net_device
++ * @return N/A
++ */
++void
++wlan_proc_entry(wlan_private * priv, struct net_device *dev)
++{
++
++ PRINTM(INFO, "Creating Proc Interface\n");
++
++ if (!priv->proc_entry) {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
++ priv->proc_entry = proc_mkdir("wlan", init_net.proc_net);
++#else
++ priv->proc_entry = proc_mkdir("wlan", proc_net);
++#endif
++
++
++ if (priv->proc_entry) {
++ priv->proc_dev = create_proc_read_entry
++ ("info", 0, priv->proc_entry, wlan_proc_read, dev);
++ }
++ }
++}
++
++/**
++ * @brief remove proc file
++ *
++ * @param priv pointer wlan_private
++ * @return N/A
++ */
++void
++wlan_proc_remove(wlan_private * priv)
++{
++
++ if (priv->proc_entry) {
++ remove_proc_entry("info", priv->proc_entry);
++ }
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
++ remove_proc_entry("wlan", init_net.proc_net);
++#else
++ remove_proc_entry("wlan", proc_net);
++#endif
++
++}
++
++/**
++ * @brief convert string to number
++ *
++ * @param s pointer to numbered string
++ * @return converted number from string s
++ */
++int
++string_to_number(char *s)
++{
++ int r = 0;
++ int base = 0;
++
++ if ((strncmp(s, "0x", 2) == 0) || (strncmp(s, "0X", 2) == 0))
++ base = 16;
++ else
++ base = 10;
++ if (base == 16)
++ s += 2;
++ for (s = s; *s != 0; s++) {
++ if ((*s >= 48) && (*s <= 57))
++ r = (r * base) + (*s - 48);
++ else if ((*s >= 65) && (*s <= 70))
++ r = (r * base) + (*s - 55);
++ else if ((*s >= 97) && (*s <= 102))
++ r = (r * base) + (*s - 87);
++ else
++ break;
++ }
++
++ return r;
++}
++
++#endif
+diff --git a/drivers/net/wireless/marvell8686/wlan_rx.c b/drivers/net/wireless/marvell8686/wlan_rx.c
+new file mode 100644
+index 0000000..9a55ca1
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_rx.c
+@@ -0,0 +1,367 @@
++/** @file wlan_rx.c
++ * @brief This file contains the handling of RX in wlan
++ * driver.
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2006
++ */
++/********************************************************
++Change log:
++ 09/28/05: Add Doxygen format comments
++ 12/09/05: ADD Sliding window SNR/NF Average Calculation support
++
++********************************************************/
++
++#include "include.h"
++
++/********************************************************
++ Local Variables
++********************************************************/
++
++typedef struct
++{
++ u8 dest_addr[6];
++ u8 src_addr[6];
++ u16 h803_len;
++
++} __ATTRIB_PACK__ Eth803Hdr_t;
++
++typedef struct
++{
++ u8 llc_dsap;
++ u8 llc_ssap;
++ u8 llc_ctrl;
++ u8 snap_oui[3];
++ u16 snap_type;
++
++} __ATTRIB_PACK__ Rfc1042Hdr_t;
++
++typedef struct
++{
++ Eth803Hdr_t eth803_hdr;
++ Rfc1042Hdr_t rfc1042_hdr;
++
++} __ATTRIB_PACK__ RxPacketHdr_t;
++
++typedef struct
++{
++ u8 dest_addr[6];
++ u8 src_addr[6];
++ u16 ethertype;
++
++} __ATTRIB_PACK__ EthII_Hdr_t;
++
++/********************************************************
++ Global Variables
++********************************************************/
++
++/********************************************************
++ Local Functions
++********************************************************/
++
++/**
++ * @brief This function computes the AvgSNR .
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return AvgSNR
++ */
++static u8
++wlan_getAvgSNR(wlan_private * priv)
++{
++ u8 i;
++ u16 temp = 0;
++ wlan_adapter *Adapter = priv->adapter;
++ if (Adapter->numSNRNF == 0)
++ return 0;
++ for (i = 0; i < Adapter->numSNRNF; i++)
++ temp += Adapter->rawSNR[i];
++ return (u8) (temp / Adapter->numSNRNF);
++
++}
++
++/**
++ * @brief This function computes the AvgNF
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return AvgNF
++ */
++static u8
++wlan_getAvgNF(wlan_private * priv)
++{
++ u8 i;
++ u16 temp = 0;
++ wlan_adapter *Adapter = priv->adapter;
++ if (Adapter->numSNRNF == 0)
++ return 0;
++ for (i = 0; i < Adapter->numSNRNF; i++)
++ temp += Adapter->rawNF[i];
++ return (u8) (temp / Adapter->numSNRNF);
++
++}
++
++/**
++ * @brief This function save the raw SNR/NF to our internel buffer
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param pRxPD A pointer to RxPD structure of received packet
++ * @return n/a
++ */
++static void
++wlan_save_rawSNRNF(wlan_private * priv, RxPD * pRxPD)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ if (Adapter->numSNRNF < Adapter->data_avg_factor)
++ Adapter->numSNRNF++;
++ Adapter->rawSNR[Adapter->nextSNRNF] = pRxPD->SNR;
++ Adapter->rawNF[Adapter->nextSNRNF] = pRxPD->NF;
++ Adapter->nextSNRNF++;
++ if (Adapter->nextSNRNF >= Adapter->data_avg_factor)
++ Adapter->nextSNRNF = 0;
++ return;
++}
++
++#define DATA_RSSI_LOW_BIT 0x01
++#define DATA_SNR_LOW_BIT 0x02
++#define DATA_RSSI_HIGH_BIT 0x04
++#define DATA_SNR_HIGH_BIT 0x08
++/**
++ * @brief This function computes the RSSI in received packet.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return n/a
++ */
++static void
++wlan_check_subscribe_event(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int temp;
++ if (Adapter->subevent.EventsBitmap == 0)
++ return;
++ if ((Adapter->subevent.EventsBitmap & DATA_RSSI_LOW_BIT) ||
++ (Adapter->subevent.EventsBitmap & DATA_RSSI_HIGH_BIT)) {
++ temp =
++ -CAL_RSSI(Adapter->SNR[TYPE_RXPD][TYPE_AVG] / AVG_SCALE,
++ Adapter->NF[TYPE_RXPD][TYPE_AVG] / AVG_SCALE);
++ if (Adapter->subevent.EventsBitmap & DATA_RSSI_LOW_BIT) {
++ if (temp > Adapter->subevent.Rssi_low.value) {
++ if (!Adapter->subevent.Rssi_low.Freq) {
++ Adapter->subevent.EventsBitmap &= ~DATA_RSSI_LOW_BIT;
++ send_iwevcustom_event(priv, CUS_EVT_DATA_RSSI_LOW);
++ } else {
++ Adapter->subevent.Rssi_low_count++;
++ if (Adapter->subevent.Rssi_low_count >=
++ Adapter->subevent.Rssi_low.Freq) {
++ Adapter->subevent.Rssi_low_count = 0;
++ send_iwevcustom_event(priv, CUS_EVT_DATA_RSSI_LOW);
++ }
++ }
++ } else
++ Adapter->subevent.Rssi_low_count = 0;
++ }
++ if (Adapter->subevent.EventsBitmap & DATA_RSSI_HIGH_BIT) {
++ if (temp < Adapter->subevent.Rssi_high.value) {
++ if (!Adapter->subevent.Rssi_high.Freq) {
++ Adapter->subevent.EventsBitmap &= ~DATA_RSSI_HIGH_BIT;
++ send_iwevcustom_event(priv, CUS_EVT_DATA_RSSI_HIGH);
++ } else {
++ Adapter->subevent.Rssi_high_count++;
++ if (Adapter->subevent.Rssi_high_count >=
++ Adapter->subevent.Rssi_high.Freq) {
++ Adapter->subevent.Rssi_high_count = 0;
++ send_iwevcustom_event(priv, CUS_EVT_DATA_RSSI_HIGH);
++ }
++ }
++ } else
++ Adapter->subevent.Rssi_high_count = 0;
++ }
++ }
++ if ((Adapter->subevent.EventsBitmap & DATA_SNR_LOW_BIT) ||
++ (Adapter->subevent.EventsBitmap & DATA_SNR_HIGH_BIT)) {
++ temp = Adapter->SNR[TYPE_RXPD][TYPE_AVG] / AVG_SCALE;
++ if (Adapter->subevent.EventsBitmap & DATA_SNR_LOW_BIT) {
++ if (temp < Adapter->subevent.Snr_low.value) {
++ if (!Adapter->subevent.Snr_low.Freq) {
++ send_iwevcustom_event(priv, CUS_EVT_DATA_SNR_LOW);
++ Adapter->subevent.EventsBitmap &= ~DATA_SNR_LOW_BIT;
++ } else {
++ Adapter->subevent.Snr_low_count++;
++ if (Adapter->subevent.Snr_low_count >=
++ Adapter->subevent.Snr_low.Freq) {
++ Adapter->subevent.Snr_low_count = 0;
++ send_iwevcustom_event(priv, CUS_EVT_DATA_SNR_LOW);
++ }
++ }
++ } else
++ Adapter->subevent.Snr_low_count = 0;
++ }
++ if (Adapter->subevent.EventsBitmap & DATA_SNR_HIGH_BIT) {
++ if (temp > Adapter->subevent.Snr_high.value) {
++ if (!Adapter->subevent.Snr_high.Freq) {
++ Adapter->subevent.EventsBitmap &= ~DATA_SNR_HIGH_BIT;
++ send_iwevcustom_event(priv, CUS_EVT_DATA_SNR_HIGH);
++ } else {
++ Adapter->subevent.Snr_high_count++;
++ if (Adapter->subevent.Snr_high_count >=
++ Adapter->subevent.Snr_high.Freq) {
++ Adapter->subevent.Snr_high_count = 0;
++ send_iwevcustom_event(priv, CUS_EVT_DATA_SNR_HIGH);
++ }
++ }
++
++ } else
++ Adapter->subevent.Snr_high_count = 0;
++ }
++ }
++ return;
++}
++
++/**
++ * @brief This function computes the RSSI in received packet.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param pRxPD A pointer to RxPD structure of received packet
++ * @return n/a
++ */
++static void
++wlan_compute_rssi(wlan_private * priv, RxPD * pRxPD)
++{
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ PRINTM(INFO, "RxPD: SNR = %d, NF = %d\n", pRxPD->SNR, pRxPD->NF);
++
++ Adapter->SNR[TYPE_RXPD][TYPE_NOAVG] = pRxPD->SNR;
++ Adapter->NF[TYPE_RXPD][TYPE_NOAVG] = pRxPD->NF;
++ wlan_save_rawSNRNF(priv, pRxPD);
++
++ Adapter->RxPDAge = os_time_get();
++ Adapter->RxPDRate = pRxPD->RxRate;
++
++ Adapter->SNR[TYPE_RXPD][TYPE_AVG] = wlan_getAvgSNR(priv) * AVG_SCALE;
++ Adapter->NF[TYPE_RXPD][TYPE_AVG] = wlan_getAvgNF(priv) * AVG_SCALE;
++ PRINTM(INFO, "SNR-avg = %d, NF-avg = %d\n",
++ Adapter->SNR[TYPE_RXPD][TYPE_AVG] / AVG_SCALE,
++ Adapter->NF[TYPE_RXPD][TYPE_AVG] / AVG_SCALE);
++
++ Adapter->RSSI[TYPE_RXPD][TYPE_NOAVG] =
++ CAL_RSSI(Adapter->SNR[TYPE_RXPD][TYPE_NOAVG],
++ Adapter->NF[TYPE_RXPD][TYPE_NOAVG]);
++
++ Adapter->RSSI[TYPE_RXPD][TYPE_AVG] =
++ CAL_RSSI(Adapter->SNR[TYPE_RXPD][TYPE_AVG] / AVG_SCALE,
++ Adapter->NF[TYPE_RXPD][TYPE_AVG] / AVG_SCALE);
++ wlan_check_subscribe_event(priv);
++ LEAVE();
++}
++
++/********************************************************
++ Global functions
++********************************************************/
++
++/**
++ * @brief This function processes received packet and forwards it
++ * to kernel/upper layer
++ *
++ * @param priv A pointer to wlan_private
++ * @param skb A pointer to skb which includes the received packet
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++ProcessRxedPacket(wlan_private * priv, struct sk_buff *skb)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++
++ RxPacketHdr_t *pRxPkt;
++ RxPD *pRxPD;
++
++ int hdrChop;
++ EthII_Hdr_t *pEthHdr;
++ u32 u32SkbLen = skb->len;
++
++ const u8 rfc1042_eth_hdr[] = { 0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00 };
++
++ ENTER();
++
++ pRxPD = (RxPD *) skb->data;
++ pRxPkt = (RxPacketHdr_t *) ((u8 *) pRxPD + pRxPD->PktOffset);
++
++ DBG_HEXDUMP(DAT_D, "Rx", skb->data, MIN(skb->len, MAX_DATA_DUMP_LEN));
++
++ endian_convert_RxPD(pRxPD);
++
++ if (skb->len < (ETH_HLEN + 8 + pRxPD->PktOffset)) {
++ PRINTM(ERROR, "RX Error: FRAME RECEIVED WITH BAD LENGTH\n");
++ priv->stats.rx_length_errors++;
++ ret = WLAN_STATUS_SUCCESS;
++ kfree_skb(skb);
++ goto done;
++ }
++
++ PRINTM(INFO, "RX Data: skb->len - pRxPD->PktOffset = %d - %d = %d\n",
++ skb->len, pRxPD->PktOffset, skb->len - pRxPD->PktOffset);
++
++ HEXDUMP("RX Data: Dest", pRxPkt->eth803_hdr.dest_addr,
++ sizeof(pRxPkt->eth803_hdr.dest_addr));
++ HEXDUMP("RX Data: Src", pRxPkt->eth803_hdr.src_addr,
++ sizeof(pRxPkt->eth803_hdr.src_addr));
++
++ if (memcmp(&pRxPkt->rfc1042_hdr,
++ rfc1042_eth_hdr, sizeof(rfc1042_eth_hdr)) == 0) {
++ /*
++ * Replace the 803 header and rfc1042 header (llc/snap) with an
++ * EthernetII header, keep the src/dst and snap_type (ethertype)
++ *
++ * The firmware only passes up SNAP frames converting
++ * all RX Data from 802.11 to 802.2/LLC/SNAP frames.
++ *
++ * To create the Ethernet II, just move the src, dst address right
++ * before the snap_type.
++ */
++ pEthHdr = (EthII_Hdr_t *)
++ ((u8 *) & pRxPkt->eth803_hdr
++ + sizeof(pRxPkt->eth803_hdr) + sizeof(pRxPkt->rfc1042_hdr)
++ - sizeof(pRxPkt->eth803_hdr.dest_addr)
++ - sizeof(pRxPkt->eth803_hdr.src_addr)
++ - sizeof(pRxPkt->rfc1042_hdr.snap_type));
++
++ memcpy(pEthHdr->src_addr, pRxPkt->eth803_hdr.src_addr,
++ sizeof(pEthHdr->src_addr));
++ memcpy(pEthHdr->dest_addr, pRxPkt->eth803_hdr.dest_addr,
++ sizeof(pEthHdr->dest_addr));
++
++ /* Chop off the RxPD + the excess memory from the 802.2/llc/snap header
++ * that was removed
++ */
++ hdrChop = (u8 *) pEthHdr - (u8 *) pRxPD;
++ } else {
++ HEXDUMP("RX Data: LLC/SNAP",
++ (u8 *) & pRxPkt->rfc1042_hdr, sizeof(pRxPkt->rfc1042_hdr));
++
++ /* Chop off the RxPD */
++ hdrChop = (u8 *) & pRxPkt->eth803_hdr - (u8 *) pRxPD;
++ }
++
++ /* Chop off the leading header bytes so the skb points to the start of
++ * either the reconstructed EthII frame or the 802.2/llc/snap frame
++ */
++ skb_pull(skb, hdrChop);
++
++ u32SkbLen = skb->len;
++ wlan_compute_rssi(priv, pRxPD);
++
++ if (os_upload_rx_packet(priv, skb)) {
++ PRINTM(ERROR, "RX Error: os_upload_rx_packet" " returns failure\n");
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++ priv->stats.rx_bytes += u32SkbLen;
++ priv->stats.rx_packets++;
++
++ PRINTM(DATA, "Data => kernel\n");
++
++ ret = WLAN_STATUS_SUCCESS;
++ done:
++ LEAVE();
++
++ return (ret);
++}
+diff --git a/drivers/net/wireless/marvell8686/wlan_scan.c b/drivers/net/wireless/marvell8686/wlan_scan.c
+new file mode 100644
+index 0000000..5ce08d3
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_scan.c
+@@ -0,0 +1,3226 @@
++/** @file wlan_scan.c
++ *
++ * @brief Functions implementing wlan scan IOCTL and firmware command APIs
++ *
++ * IOCTL handlers as well as command preperation and response routines
++ * for sending scan commands to the firmware.
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2007
++ *
++ * @sa wlan_scan.h
++ */
++/********************************************************
++Change Log:
++ 01/11/06: Initial revision. New scan code, relocate related functions
++ 01/19/06: Update specific scan routines to discard old results for adhoc
++ 01/31/06: Add support for selectively enabling the FW Scan channel filter
++
++************************************************************/
++
++#include "include.h"
++
++/********************************************************
++ Local Constants
++********************************************************/
++
++//! Approximate amount of data needed to pass a scan result back to iwlist
++#define MAX_SCAN_CELL_SIZE (IW_EV_ADDR_LEN \
++ + MRVDRV_MAX_SSID_LENGTH \
++ + IW_EV_UINT_LEN \
++ + IW_EV_FREQ_LEN \
++ + IW_EV_QUAL_LEN \
++ + MRVDRV_MAX_SSID_LENGTH \
++ + IW_EV_PARAM_LEN \
++ + 40) /* 40 for WPAIE */
++
++//! Memory needed to store a max sized Channel List TLV for a firmware scan
++#define CHAN_TLV_MAX_SIZE (sizeof(MrvlIEtypesHeader_t) \
++ + (MRVDRV_MAX_CHANNELS_PER_SCAN \
++ * sizeof(ChanScanParamSet_t)))
++
++//! Memory needed to store a max number/size SSID TLV for a firmware scan
++#define SSID_TLV_MAX_SIZE (1 * sizeof(MrvlIEtypes_SsIdParamSet_t))
++
++//! WPS TLV MAX size is MAX IE size plus 2 bytes for u16 MRVL TLV extension
++#define WPS_TLV_MAX_SIZE (sizeof(IEEEtypes_VendorSpecific_t) + 2)
++
++//! Maximum memory needed for a wlan_scan_cmd_config with all TLVs at max
++#define MAX_SCAN_CFG_ALLOC (sizeof(wlan_scan_cmd_config) \
++ + sizeof(MrvlIEtypes_NumProbes_t) \
++ + CHAN_TLV_MAX_SIZE \
++ + SSID_TLV_MAX_SIZE \
++ + WPS_TLV_MAX_SIZE)
++
++//! The maximum number of channels the firmware can scan per command
++#define MRVDRV_MAX_CHANNELS_PER_SCAN 14
++
++/**
++ * @brief Number of channels to scan per firmware scan command issuance.
++ *
++ * Number restricted to prevent hitting the limit on the amount of scan data
++ * returned in a single firmware scan command.
++ */
++#define MRVDRV_CHANNELS_PER_SCAN_CMD 4
++
++//! Macro to enable/disable SSID checking before storing a scan table
++#ifdef DISCARD_BAD_SSID
++#define CHECK_SSID_IS_VALID(x) ssid_valid(&bssidEntry.Ssid)
++#else
++#define CHECK_SSID_IS_VALID(x) TRUE
++#endif
++
++/********************************************************
++ Local Variables and Types
++********************************************************/
++
++/**
++ * @brief Interally used to send a configured scan cmd between driver routines
++ */
++typedef union
++{
++ wlan_scan_cmd_config config; //!< Scan configuration (variable length)
++ u8 configAllocBuf[MAX_SCAN_CFG_ALLOC]; //!< Max allocated block
++} wlan_scan_cmd_config_tlv;
++
++/**
++ * @brief Check if a scanned network compatible with the driver settings
++ *
++ * WEP WPA WPA2 ad-hoc encrypt Network
++ * enabled enabled enabled AES mode Privacy WPA WPA2 Compatible
++ * 0 0 0 0 NONE 0 0 0 yes No security
++ * 0 1 0 0 x 1x 1 x yes WPA
++ * 0 0 1 0 x 1x x 1 yes WPA2
++ * 0 0 0 1 NONE 1 0 0 yes Ad-hoc AES
++ *
++ * 1 0 0 0 NONE 1 0 0 yes Static WEP
++ * 0 0 0 0 !=NONE 1 0 0 yes Dynamic WEP
++ *
++ *
++ * @param Adapter A pointer to wlan_adapter
++ * @param index Index in ScanTable to check against current driver settings
++ * @param mode Network mode: Infrastructure or IBSS
++ *
++ * @return Index in ScanTable, or error code if negative
++ */
++static int
++IsNetworkCompatible(wlan_adapter * Adapter, int index, int mode)
++{
++ BSSDescriptor_t *pBSSDesc;
++
++ ENTER();
++
++ pBSSDesc = &Adapter->ScanTable[index];
++
++ /* Don't check for compatibility if roaming */
++ if ((Adapter->MediaConnectStatus == WlanMediaStateConnected)
++ && (Adapter->InfrastructureMode == Wlan802_11Infrastructure)
++ && (pBSSDesc->InfrastructureMode == Wlan802_11Infrastructure)) {
++ LEAVE();
++ return index;
++ }
++
++ if (Adapter->wps.SessionEnable == TRUE) {
++ PRINTM(INFO, "Return success directly in WPS period\n");
++ LEAVE();
++ return index;
++ }
++
++ if (pBSSDesc->InfrastructureMode == mode) {
++ if (Adapter->SecInfo.WEPStatus == Wlan802_11WEPDisabled
++ && !Adapter->SecInfo.WPAEnabled
++ && !Adapter->SecInfo.WPA2Enabled
++ && pBSSDesc->wpaIE.VendHdr.ElementId != WPA_IE
++ && pBSSDesc->rsnIE.IeeeHdr.ElementId != RSN_IE
++ && !Adapter->AdhocAESEnabled
++ && Adapter->SecInfo.EncryptionMode == CIPHER_NONE
++ && !pBSSDesc->Privacy) {
++ /* no security */
++ LEAVE();
++ return index;
++ } else if (Adapter->SecInfo.WEPStatus == Wlan802_11WEPEnabled
++ && !Adapter->SecInfo.WPAEnabled
++ && !Adapter->SecInfo.WPA2Enabled
++ && !Adapter->AdhocAESEnabled && pBSSDesc->Privacy) {
++ /* static WEP enabled */
++ LEAVE();
++ return index;
++ } else if (Adapter->SecInfo.WEPStatus == Wlan802_11WEPDisabled
++ && Adapter->SecInfo.WPAEnabled
++ && !Adapter->SecInfo.WPA2Enabled
++ && (pBSSDesc->wpaIE.VendHdr.ElementId == WPA_IE)
++ && !Adapter->AdhocAESEnabled
++ /* Privacy bit may NOT be set in some APs like LinkSys WRT54G
++ && pBSSDesc->Privacy */
++ ) {
++ /* WPA enabled */
++ PRINTM(INFO, "IsNetworkCompatible() WPA: index=%d wpa_ie=%#x "
++ "wpa2_ie=%#x WEP=%s WPA=%s WPA2=%s EncMode=%#x "
++ "privacy=%#x\n",
++ index,
++ pBSSDesc->wpaIE.VendHdr.ElementId,
++ pBSSDesc->rsnIE.IeeeHdr.ElementId,
++ (Adapter->SecInfo.WEPStatus ==
++ Wlan802_11WEPEnabled) ? "e" : "d",
++ (Adapter->SecInfo.WPAEnabled) ? "e" : "d",
++ (Adapter->SecInfo.WPA2Enabled) ? "e" : "d",
++ Adapter->SecInfo.EncryptionMode, pBSSDesc->Privacy);
++ LEAVE();
++ return index;
++ } else if (Adapter->SecInfo.WEPStatus == Wlan802_11WEPDisabled
++ && !Adapter->SecInfo.WPAEnabled
++ && Adapter->SecInfo.WPA2Enabled
++ && (pBSSDesc->rsnIE.IeeeHdr.ElementId == RSN_IE)
++ && !Adapter->AdhocAESEnabled
++ /* Privacy bit may NOT be set in some APs like LinkSys WRT54G
++ && pBSSDesc->Privacy */
++ ) {
++ /* WPA2 enabled */
++ PRINTM(INFO, "IsNetworkCompatible() WPA2: index=%d wpa_ie=%#x "
++ "wpa2_ie=%#x WEP=%s WPA=%s WPA2=%s EncMode=%#x "
++ "privacy=%#x\n",
++ index,
++ pBSSDesc->wpaIE.VendHdr.ElementId,
++ pBSSDesc->rsnIE.IeeeHdr.ElementId,
++ (Adapter->SecInfo.WEPStatus ==
++ Wlan802_11WEPEnabled) ? "e" : "d",
++ (Adapter->SecInfo.WPAEnabled) ? "e" : "d",
++ (Adapter->SecInfo.WPA2Enabled) ? "e" : "d",
++ Adapter->SecInfo.EncryptionMode, pBSSDesc->Privacy);
++ LEAVE();
++ return index;
++ } else if (Adapter->SecInfo.WEPStatus == Wlan802_11WEPDisabled
++ && !Adapter->SecInfo.WPAEnabled
++ && !Adapter->SecInfo.WPA2Enabled
++ && (pBSSDesc->wpaIE.VendHdr.ElementId != WPA_IE)
++ && (pBSSDesc->rsnIE.IeeeHdr.ElementId != RSN_IE)
++ && Adapter->AdhocAESEnabled
++ && Adapter->SecInfo.EncryptionMode == CIPHER_NONE
++ && pBSSDesc->Privacy) {
++ /* Ad-hoc AES enabled */
++ LEAVE();
++ return index;
++ } else if (Adapter->SecInfo.WEPStatus == Wlan802_11WEPDisabled
++ && !Adapter->SecInfo.WPAEnabled
++ && !Adapter->SecInfo.WPA2Enabled
++ && (pBSSDesc->wpaIE.VendHdr.ElementId != WPA_IE)
++ && (pBSSDesc->rsnIE.IeeeHdr.ElementId != RSN_IE)
++ && !Adapter->AdhocAESEnabled
++ && Adapter->SecInfo.EncryptionMode != CIPHER_NONE
++ && pBSSDesc->Privacy) {
++ /* dynamic WEP enabled */
++ PRINTM(INFO, "IsNetworkCompatible() dynamic WEP: index=%d "
++ "wpa_ie=%#x wpa2_ie=%#x EncMode=%#x privacy=%#x\n",
++ index,
++ pBSSDesc->wpaIE.VendHdr.ElementId,
++ pBSSDesc->rsnIE.IeeeHdr.ElementId,
++ Adapter->SecInfo.EncryptionMode, pBSSDesc->Privacy);
++ LEAVE();
++ return index;
++ }
++
++ /* security doesn't match */
++ PRINTM(INFO, "IsNetworkCompatible() FAILED: index=%d wpa_ie=%#x "
++ "wpa2_ie=%#x WEP=%s WPA=%s WPA2=%s EncMode=%#x privacy=%#x\n",
++ index,
++ pBSSDesc->wpaIE.VendHdr.ElementId,
++ pBSSDesc->rsnIE.IeeeHdr.ElementId,
++ (Adapter->SecInfo.WEPStatus ==
++ Wlan802_11WEPEnabled) ? "e" : "d",
++ (Adapter->SecInfo.WPAEnabled) ? "e" : "d",
++ (Adapter->SecInfo.WPA2Enabled) ? "e" : "d",
++ Adapter->SecInfo.EncryptionMode, pBSSDesc->Privacy);
++ LEAVE();
++ return -ECONNREFUSED;
++ }
++
++ /* mode doesn't match */
++ LEAVE();
++ return -ENETUNREACH;
++}
++
++/**
++ * @brief This function validates a SSID as being able to be printed
++ *
++ * @param pSsid SSID structure to validate
++ *
++ * @return TRUE or FALSE
++ */
++static BOOLEAN
++ssid_valid(WLAN_802_11_SSID * pSsid)
++{
++ int ssidIdx;
++
++ for (ssidIdx = 0; ssidIdx < pSsid->SsidLength; ssidIdx++) {
++ if (!isprint(pSsid->Ssid[ssidIdx])) {
++ return FALSE;
++ }
++ }
++
++ return TRUE;
++}
++
++/**
++ * @brief Post process the scan table after a new scan command has completed
++ *
++ * Inspect each entry of the scan table and try to find an entry that
++ * matches our current associated/joined network from the scan. If
++ * one is found, update the stored copy of the BSSDescriptor for our
++ * current network.
++ *
++ * Debug dump the current scan table contents if compiled accordingly.
++ *
++ * @param priv A pointer to wlan_private structure
++ *
++ * @return void
++ */
++static void
++wlan_scan_process_results(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int i;
++ int foundCurrent;
++
++ foundCurrent = FALSE;
++
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ Adapter->CurBssParams.BSSDescriptor.pBeaconBuf = NULL;
++ Adapter->CurBssParams.BSSDescriptor.beaconBufSize = 0;
++ Adapter->CurBssParams.BSSDescriptor.beaconBufSizeMax = 0;
++ i = FindSSIDInList(Adapter,
++ &Adapter->CurBssParams.BSSDescriptor.Ssid,
++ Adapter->CurBssParams.BSSDescriptor.MacAddress,
++ Adapter->InfrastructureMode);
++
++ if (i >= 0) {
++ PRINTM(INFO, "Found current ssid/bssid in list @ index #%d\n", i);
++ /* Make a copy of current BSSID descriptor */
++ memcpy(&Adapter->CurBssParams.BSSDescriptor,
++ &Adapter->ScanTable[i],
++ sizeof(Adapter->CurBssParams.BSSDescriptor));
++ }
++ }
++
++ for (i = 0; i < Adapter->NumInScanTable; i++) {
++ PRINTM(INFO, "Scan:(%02d) %02x:%02x:%02x:%02x:%02x:%02x, "
++ "RSSI[%03d], SSID[%s]\n",
++ i,
++ Adapter->ScanTable[i].MacAddress[0],
++ Adapter->ScanTable[i].MacAddress[1],
++ Adapter->ScanTable[i].MacAddress[2],
++ Adapter->ScanTable[i].MacAddress[3],
++ Adapter->ScanTable[i].MacAddress[4],
++ Adapter->ScanTable[i].MacAddress[5],
++ (s32) Adapter->ScanTable[i].Rssi,
++ Adapter->ScanTable[i].Ssid.Ssid);
++
++ }
++}
++
++/**
++ * @brief Create a channel list for the driver to scan based on region info
++ *
++ * Use the driver region/band information to construct a comprehensive list
++ * of channels to scan. This routine is used for any scan that is not
++ * provided a specific channel list to scan.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param scanChanList Output parameter: Resulting channel list to scan
++ * @param filteredScan Flag indicating whether or not a BSSID or SSID filter
++ * is being sent in the command to firmware. Used to
++ * increase the number of channels sent in a scan
++ * command and to disable the firmware channel scan
++ * filter.
++ *
++ * @return void
++ */
++static void
++wlan_scan_create_channel_list(wlan_private * priv,
++ ChanScanParamSet_t * scanChanList,
++ BOOLEAN filteredScan)
++{
++
++ wlan_adapter *Adapter = priv->adapter;
++ REGION_CHANNEL *scanRegion;
++ CHANNEL_FREQ_POWER *cfp;
++ int rgnIdx;
++ int chanIdx;
++ int nextChan;
++ u8 scanType;
++
++ chanIdx = 0;
++
++ /* Set the default scan type to the user specified type, will later
++ * be changed to passive on a per channel basis if restricted by
++ * regulatory requirements (11d or 11h)
++ */
++ scanType = Adapter->ScanType;
++
++ for (rgnIdx = 0; rgnIdx < NELEMENTS(Adapter->region_channel); rgnIdx++) {
++ if (wlan_get_state_11d(priv) == ENABLE_11D &&
++ Adapter->MediaConnectStatus != WlanMediaStateConnected) {
++ /* Scan all the supported chan for the first scan */
++ if (!Adapter->universal_channel[rgnIdx].Valid)
++ continue;
++ scanRegion = &Adapter->universal_channel[rgnIdx];
++
++ /* clear the parsed_region_chan for the first scan */
++ memset(&Adapter->parsed_region_chan, 0x00,
++ sizeof(Adapter->parsed_region_chan));
++ } else {
++ if (!Adapter->region_channel[rgnIdx].Valid)
++ continue;
++ scanRegion = &Adapter->region_channel[rgnIdx];
++ }
++
++ for (nextChan = 0;
++ nextChan < scanRegion->NrCFP; nextChan++, chanIdx++) {
++
++ cfp = scanRegion->CFP + nextChan;
++
++ if (wlan_get_state_11d(priv) == ENABLE_11D) {
++ scanType =
++ wlan_get_scan_type_11d(cfp->Channel,
++ &Adapter->parsed_region_chan);
++ }
++
++ switch (scanRegion->Band) {
++ case BAND_B:
++ case BAND_G:
++ default:
++ scanChanList[chanIdx].RadioType = HostCmd_SCAN_RADIO_TYPE_BG;
++ break;
++ }
++
++ if (scanType == HostCmd_SCAN_TYPE_PASSIVE) {
++ scanChanList[chanIdx].MaxScanTime =
++ wlan_cpu_to_le16(Adapter->PassiveScanTime);
++ scanChanList[chanIdx].ChanScanMode.PassiveScan = TRUE;
++ } else {
++ scanChanList[chanIdx].MaxScanTime =
++ wlan_cpu_to_le16(Adapter->ActiveScanTime);
++ scanChanList[chanIdx].ChanScanMode.PassiveScan = FALSE;
++ }
++
++ scanChanList[chanIdx].ChanNumber = cfp->Channel;
++
++ if (filteredScan) {
++ scanChanList[chanIdx].MaxScanTime =
++ wlan_cpu_to_le16(Adapter->SpecificScanTime);
++ scanChanList[chanIdx].ChanScanMode.DisableChanFilt = TRUE;
++ }
++ }
++ }
++}
++
++static void
++wlan_add_wps_probe_request_ie(wlan_private * priv, u8 ** ppTlvOut)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ MrvlIEtypesHeader_t *tlv;
++
++ if (Adapter->wps.wpsIe.VendHdr.Len) {
++ tlv = (MrvlIEtypesHeader_t *) * ppTlvOut;
++ tlv->Type = wlan_cpu_to_le16(TLV_TYPE_WPS_ENROLLEE_PROBE_REQ_TLV);
++ tlv->Len = wlan_cpu_to_le16(Adapter->wps.wpsIe.VendHdr.Len);
++ *ppTlvOut += sizeof(MrvlIEtypesHeader_t);
++ memcpy(*ppTlvOut,
++ Adapter->wps.wpsIe.VendHdr.Oui,
++ Adapter->wps.wpsIe.VendHdr.Len);
++ *ppTlvOut += (Adapter->wps.wpsIe.VendHdr.Len
++ + sizeof(MrvlIEtypesHeader_t));
++ }
++}
++
++/**
++ * @brief Construct a wlan_scan_cmd_config structure to use in issue scan cmds
++ *
++ * Application layer or other functions can invoke wlan_scan_networks
++ * with a scan configuration supplied in a wlan_ioctl_user_scan_cfg struct.
++ * This structure is used as the basis of one or many wlan_scan_cmd_config
++ * commands that are sent to the command processing module and sent to
++ * firmware.
++ *
++ * Create a wlan_scan_cmd_config based on the following user supplied
++ * parameters (if present):
++ * - SSID filter
++ * - BSSID filter
++ * - Number of Probes to be sent
++ * - Channel list
++ *
++ * If the SSID or BSSID filter is not present, disable/clear the filter.
++ * If the number of probes is not set, use the adapter default setting
++ * Qualify the channel
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param pUserScanIn NULL or pointer to scan configuration parameters
++ * @param pScanCfgOut Output parameter: Resulting scan configuration
++ * @param ppChanTlvOut Output parameter: Pointer to the start of the
++ * channel TLV portion of the output scan config
++ * @param pScanChanList Output parameter: Pointer to the resulting channel
++ * list to scan
++ * @param pMaxChanPerScan Output parameter: Number of channels to scan for
++ * each issuance of the firmware scan command
++ * @param pFilteredScan Output parameter: Flag indicating whether or not
++ * a BSSID or SSID filter is being sent in the
++ * command to firmware. Used to increase the number
++ * of channels sent in a scan command and to
++ * disable the firmware channel scan filter.
++ * @param pScanCurrentOnly Output parameter: Flag indicating whether or not
++ * we are only scanning our current active channel
++ *
++ * @return void
++ */
++static void
++wlan_scan_setup_scan_config(wlan_private * priv,
++ const wlan_ioctl_user_scan_cfg * pUserScanIn,
++ wlan_scan_cmd_config * pScanCfgOut,
++ MrvlIEtypes_ChanListParamSet_t ** ppChanTlvOut,
++ ChanScanParamSet_t * pScanChanList,
++ int *pMaxChanPerScan,
++ BOOLEAN * pFilteredScan,
++ BOOLEAN * pScanCurrentOnly)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ const u8 zeroMac[ETH_ALEN] = { 0, 0, 0, 0, 0, 0 };
++ MrvlIEtypes_NumProbes_t *pNumProbesTlv;
++ u8 *pTlvPos;
++ u16 numProbes;
++ u16 ssidLen;
++ int chanIdx;
++ int scanType;
++ int scanDur;
++ int channel;
++ int radioType;
++ int ssidIdx;
++ BOOLEAN ssidFilter;
++
++ MrvlIEtypes_WildCardSsIdParamSet_t *pWildCardSsidTlv;
++
++ /* The tlvBufferLen is calculated for each scan command. The TLVs added
++ * in this routine will be preserved since the routine that sends
++ * the command will append channelTLVs at *ppChanTlvOut. The difference
++ * between the *ppChanTlvOut and the tlvBuffer start will be used
++ * to calculate the size of anything we add in this routine.
++ */
++ pScanCfgOut->tlvBufferLen = 0;
++
++ /* Running tlv pointer. Assigned to ppChanTlvOut at end of function
++ * so later routines know where channels can be added to the command buf
++ */
++ pTlvPos = pScanCfgOut->tlvBuffer;
++
++ /*
++ * Set the initial scan paramters for progressive scanning. If a specific
++ * BSSID or SSID is used, the number of channels in the scan command
++ * will be increased to the absolute maximum
++ */
++ *pMaxChanPerScan = MRVDRV_MAX_CHANNELS_PER_SCAN;
++
++ /* Initialize the scan as un-filtered; the flag is later set to
++ * TRUE below if a SSID or BSSID filter is sent in the command
++ */
++ *pFilteredScan = FALSE;
++
++ /* Initialize the scan as not being only on the current channel. If
++ * the channel list is customized, only contains one channel, and
++ * is the active channel, this is set true and data flow is not halted.
++ */
++ *pScanCurrentOnly = FALSE;
++
++ if (pUserScanIn) {
++
++ /* Default the ssidFilter flag to TRUE, set false under certain
++ * wildcard conditions and qualified by the existence of an SSID
++ * list before marking the scan as filtered
++ */
++ ssidFilter = TRUE;
++
++ /* Set the bss type scan filter, use Adapter setting if unset */
++ pScanCfgOut->bssType = (pUserScanIn->bssType ? pUserScanIn->bssType :
++ Adapter->ScanMode);
++
++ /* Set the number of probes to send, use Adapter setting if unset */
++ numProbes = (pUserScanIn->numProbes ? pUserScanIn->numProbes :
++ Adapter->ScanProbes);
++
++ /*
++ * Set the BSSID filter to the incoming configuration,
++ * if non-zero. If not set, it will remain disabled (all zeros).
++ */
++ memcpy(pScanCfgOut->specificBSSID,
++ pUserScanIn->specificBSSID,
++ sizeof(pScanCfgOut->specificBSSID));
++
++ for (ssidIdx = 0; ((ssidIdx < NELEMENTS(pUserScanIn->ssidList))
++ && (*pUserScanIn->ssidList[ssidIdx].ssid
++ || pUserScanIn->ssidList[ssidIdx].maxLen));
++ ssidIdx++) {
++
++ ssidLen = strlen(pUserScanIn->ssidList[ssidIdx].ssid) + 1;
++
++ pWildCardSsidTlv = (MrvlIEtypes_WildCardSsIdParamSet_t *) pTlvPos;
++ pWildCardSsidTlv->Header.Type
++ = wlan_cpu_to_le16(TLV_TYPE_WILDCARDSSID);
++ pWildCardSsidTlv->Header.Len
++ = ssidLen + sizeof(pWildCardSsidTlv->MaxSsidLength);
++ pWildCardSsidTlv->MaxSsidLength
++ = pUserScanIn->ssidList[ssidIdx].maxLen;
++
++ memcpy(pWildCardSsidTlv->SsId,
++ pUserScanIn->ssidList[ssidIdx].ssid, ssidLen);
++
++ pTlvPos += (sizeof(pWildCardSsidTlv->Header)
++ + pWildCardSsidTlv->Header.Len);
++
++ pWildCardSsidTlv->Header.Len
++ = wlan_cpu_to_le16(pWildCardSsidTlv->Header.Len);
++
++ PRINTM(INFO, "Scan: ssidList[%d]: %s, %d\n",
++ ssidIdx,
++ pWildCardSsidTlv->SsId, pWildCardSsidTlv->MaxSsidLength);
++
++ /* Empty wildcard ssid with a maxlen will match many or potentially
++ * all SSIDs (maxlen == 32), therefore do not treat the scan
++ * as filtered.
++ */
++ if ((ssidLen == 0) && pWildCardSsidTlv->MaxSsidLength) {
++ ssidFilter = FALSE;
++ }
++ }
++
++ /*
++ * The default number of channels sent in the command is low to
++ * ensure the response buffer from the firmware does not truncate
++ * scan results. That is not an issue with an SSID or BSSID
++ * filter applied to the scan results in the firmware.
++ */
++ if ((ssidIdx && ssidFilter)
++ || memcmp(pScanCfgOut->specificBSSID, &zeroMac, sizeof(zeroMac))) {
++ *pFilteredScan = TRUE;
++ }
++
++ } else {
++ pScanCfgOut->bssType = Adapter->ScanMode;
++ numProbes = Adapter->ScanProbes;
++ }
++
++ /* If the input config or adapter has the number of Probes set, add tlv */
++ if (numProbes) {
++
++ PRINTM(INFO, "Scan: numProbes = %d\n", numProbes);
++
++ pNumProbesTlv = (MrvlIEtypes_NumProbes_t *) pTlvPos;
++ pNumProbesTlv->Header.Type = wlan_cpu_to_le16(TLV_TYPE_NUMPROBES);
++ pNumProbesTlv->Header.Len = sizeof(pNumProbesTlv->NumProbes);
++ pNumProbesTlv->NumProbes = wlan_cpu_to_le16(numProbes);
++
++ pTlvPos += sizeof(pNumProbesTlv->Header) + pNumProbesTlv->Header.Len;
++
++ pNumProbesTlv->Header.Len =
++ wlan_cpu_to_le16(pNumProbesTlv->Header.Len);
++ }
++
++ wlan_add_wps_probe_request_ie(priv, &pTlvPos);
++
++ /*
++ * Set the output for the channel TLV to the address in the tlv buffer
++ * past any TLVs that were added in this fuction (SSID, numProbes).
++ * Channel TLVs will be added past this for each scan command, preserving
++ * the TLVs that were previously added.
++ */
++ *ppChanTlvOut = (MrvlIEtypes_ChanListParamSet_t *) pTlvPos;
++
++ if (pUserScanIn && pUserScanIn->chanList[0].chanNumber) {
++
++ PRINTM(INFO, "Scan: Using supplied channel list\n");
++
++ for (chanIdx = 0;
++ chanIdx < WLAN_IOCTL_USER_SCAN_CHAN_MAX
++ && pUserScanIn->chanList[chanIdx].chanNumber; chanIdx++) {
++
++ channel = pUserScanIn->chanList[chanIdx].chanNumber;
++ (pScanChanList + chanIdx)->ChanNumber = channel;
++
++ radioType = pUserScanIn->chanList[chanIdx].radioType;
++ (pScanChanList + chanIdx)->RadioType = radioType;
++
++ scanType = pUserScanIn->chanList[chanIdx].scanType;
++
++ if (scanType == HostCmd_SCAN_TYPE_PASSIVE) {
++ (pScanChanList + chanIdx)->ChanScanMode.PassiveScan = TRUE;
++ } else {
++ (pScanChanList + chanIdx)->ChanScanMode.PassiveScan = FALSE;
++ }
++
++ if (pUserScanIn->chanList[chanIdx].scanTime) {
++ scanDur = pUserScanIn->chanList[chanIdx].scanTime;
++ } else {
++ if (scanType == HostCmd_SCAN_TYPE_PASSIVE) {
++ scanDur = Adapter->PassiveScanTime;
++ } else if (*pFilteredScan) {
++ scanDur = Adapter->SpecificScanTime;
++ } else {
++ scanDur = Adapter->ActiveScanTime;
++ }
++ }
++
++ (pScanChanList + chanIdx)->MinScanTime =
++ wlan_cpu_to_le16(scanDur);
++ (pScanChanList + chanIdx)->MaxScanTime =
++ wlan_cpu_to_le16(scanDur);
++ }
++
++ /* Check if we are only scanning the current channel */
++ if ((chanIdx == 1)
++ && (pUserScanIn->chanList[0].chanNumber
++ == priv->adapter->CurBssParams.BSSDescriptor.Channel)) {
++ *pScanCurrentOnly = TRUE;
++ PRINTM(INFO, "Scan: Scanning current channel only");
++ }
++
++ } else {
++ PRINTM(INFO, "Scan: Creating full region channel list\n");
++ wlan_scan_create_channel_list(priv, pScanChanList, *pFilteredScan);
++ }
++}
++
++/**
++ * @brief Construct and send multiple scan config commands to the firmware
++ *
++ * Previous routines have created a wlan_scan_cmd_config with any requested
++ * TLVs. This function splits the channel TLV into maxChanPerScan lists
++ * and sends the portion of the channel TLV along with the other TLVs
++ * to the wlan_cmd routines for execution in the firmware.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param maxChanPerScan Maximum number channels to be included in each
++ * scan command sent to firmware
++ * @param filteredScan Flag indicating whether or not a BSSID or SSID
++ * filter is being used for the firmware command
++ * scan command sent to firmware
++ * @param pScanCfgOut Scan configuration used for this scan.
++ * @param pChanTlvOut Pointer in the pScanCfgOut where the channel TLV
++ * should start. This is past any other TLVs that
++ * must be sent down in each firmware command.
++ * @param pScanChanList List of channels to scan in maxChanPerScan segments
++ *
++ * @return WLAN_STATUS_SUCCESS or error return otherwise
++ */
++static int
++wlan_scan_channel_list(wlan_private * priv,
++ int maxChanPerScan,
++ BOOLEAN filteredScan,
++ wlan_scan_cmd_config * pScanCfgOut,
++ MrvlIEtypes_ChanListParamSet_t * pChanTlvOut,
++ ChanScanParamSet_t * pScanChanList)
++{
++ ChanScanParamSet_t *pTmpChan;
++ ChanScanParamSet_t *pStartChan;
++ u8 scanBand;
++ int doneEarly;
++ int tlvIdx;
++ int totalscantime;
++ int ret;
++
++ ENTER();
++
++ if (pScanCfgOut == 0 || pChanTlvOut == 0 || pScanChanList == 0) {
++ PRINTM(INFO, "Scan: Null detect: %p, %p, %p\n",
++ pScanCfgOut, pChanTlvOut, pScanChanList);
++ return WLAN_STATUS_FAILURE;
++ }
++
++ ret = WLAN_STATUS_SUCCESS;
++
++ pChanTlvOut->Header.Type = wlan_cpu_to_le16(TLV_TYPE_CHANLIST);
++
++ /* Set the temp channel struct pointer to the start of the desired list */
++ pTmpChan = pScanChanList;
++
++ /* Loop through the desired channel list, sending a new firmware scan
++ * commands for each maxChanPerScan channels (or for 1,6,11 individually
++ * if configured accordingly)
++ */
++ while (pTmpChan->ChanNumber) {
++
++ tlvIdx = 0;
++ totalscantime = 0;
++ pChanTlvOut->Header.Len = 0;
++ scanBand = pTmpChan->RadioType;
++ pStartChan = pTmpChan;
++ doneEarly = FALSE;
++
++ /* Construct the Channel TLV for the scan command. Continue to
++ * insert channel TLVs until:
++ * - the tlvIdx hits the maximum configured per scan command
++ * - the next channel to insert is 0 (end of desired channel list)
++ * - doneEarly is set (controlling individual scanning of 1,6,11)
++ */
++ while (tlvIdx < maxChanPerScan && pTmpChan->ChanNumber && !doneEarly) {
++
++ PRINTM(INFO, "Scan: Chan(%3d), Radio(%d), Mode(%d,%d), Dur(%d)\n",
++ pTmpChan->ChanNumber,
++ pTmpChan->RadioType,
++ pTmpChan->ChanScanMode.PassiveScan,
++ pTmpChan->ChanScanMode.DisableChanFilt,
++ pTmpChan->MaxScanTime);
++
++ /* Copy the current channel TLV to the command being prepared */
++ memcpy(pChanTlvOut->ChanScanParam + tlvIdx,
++ pTmpChan, sizeof(pChanTlvOut->ChanScanParam));
++
++ /* Increment the TLV header length by the size appended */
++ pChanTlvOut->Header.Len += sizeof(pChanTlvOut->ChanScanParam);
++
++ /*
++ * The tlv buffer length is set to the number of bytes of the
++ * between the channel tlv pointer and the start of the
++ * tlv buffer. This compensates for any TLVs that were appended
++ * before the channel list.
++ */
++ pScanCfgOut->tlvBufferLen = ((u8 *) pChanTlvOut
++ - pScanCfgOut->tlvBuffer);
++
++ /* Add the size of the channel tlv header and the data length */
++ pScanCfgOut->tlvBufferLen += (sizeof(pChanTlvOut->Header)
++ + pChanTlvOut->Header.Len);
++
++ /* Increment the index to the channel tlv we are constructing */
++ tlvIdx++;
++
++ /* Count the total scan time per command */
++ totalscantime += pTmpChan->MaxScanTime;
++
++ doneEarly = FALSE;
++
++ /* Stop the loop if the *current* channel is in the 1,6,11 set
++ * and we are not filtering on a BSSID or SSID.
++ */
++ if (!filteredScan && (pTmpChan->ChanNumber == 1
++ || pTmpChan->ChanNumber == 6
++ || pTmpChan->ChanNumber == 11)) {
++ doneEarly = TRUE;
++ }
++
++ /* Increment the tmp pointer to the next channel to be scanned */
++ pTmpChan++;
++
++ /* Stop the loop if the *next* channel is in the 1,6,11 set.
++ * This will cause it to be the only channel scanned on the next
++ * interation
++ */
++ if (!filteredScan && (pTmpChan->ChanNumber == 1
++ || pTmpChan->ChanNumber == 6
++ || pTmpChan->ChanNumber == 11)) {
++ doneEarly = TRUE;
++ }
++ }
++
++ /* The total scan time should be less than scan command timeout value */
++ if (totalscantime > MRVDRV_MAX_TOTAL_SCAN_TIME) {
++ PRINTM(MSG,
++ "Total scan time %d ms is over limit (%d ms), scan skipped\n",
++ totalscantime, MRVDRV_MAX_TOTAL_SCAN_TIME);
++ ret = WLAN_STATUS_FAILURE;
++ break;
++ }
++
++ pChanTlvOut->Header.Len = wlan_cpu_to_le16(pChanTlvOut->Header.Len);
++
++ /* Send the scan command to the firmware with the specified cfg */
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_802_11_SCAN, 0,
++ HostCmd_OPTION_WAITFORRSP, 0,
++ pScanCfgOut);
++ }
++
++ LEAVE();
++
++ if (ret) {
++ return WLAN_STATUS_FAILURE;
++ }
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Internal function used to start a scan based on an input config
++ *
++ * Use the input user scan configuration information when provided in
++ * order to send the appropriate scan commands to firmware to populate or
++ * update the internal driver scan table
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param pUserScanIn Pointer to the input configuration for the requested
++ * scan.
++ *
++ * @return WLAN_STATUS_SUCCESS or < 0 if error
++ */
++static int
++wlan_scan_networks(wlan_private * priv,
++ const wlan_ioctl_user_scan_cfg * pUserScanIn)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ MrvlIEtypes_ChanListParamSet_t *pChanTlvOut;
++
++ ChanScanParamSet_t scanChanList[WLAN_IOCTL_USER_SCAN_CHAN_MAX];
++ wlan_scan_cmd_config_tlv scanCfgOut;
++ BOOLEAN keepPreviousScan;
++ BOOLEAN filteredScan;
++ BOOLEAN scanCurrentChanOnly;
++ int maxChanPerScan;
++ int ret;
++ BOOLEAN bBgScan;
++
++ ENTER();
++
++ memset(scanChanList, 0x00, sizeof(scanChanList));
++ memset(&scanCfgOut, 0x00, sizeof(scanCfgOut));
++
++ keepPreviousScan = FALSE;
++
++ wlan_scan_setup_scan_config(priv,
++ pUserScanIn,
++ &scanCfgOut.config,
++ &pChanTlvOut,
++ scanChanList,
++ &maxChanPerScan,
++ &filteredScan, &scanCurrentChanOnly);
++
++ if (pUserScanIn) {
++ keepPreviousScan = pUserScanIn->keepPreviousScan;
++ }
++
++ if (keepPreviousScan == FALSE) {
++ memset(Adapter->ScanTable, 0x00,
++ sizeof(BSSDescriptor_t) * MRVDRV_MAX_BSSID_LIST);
++ Adapter->NumInScanTable = 0;
++ Adapter->pBeaconBufEnd = Adapter->beaconBuffer;
++ }
++
++ /* Keep the data path active if we are only scanning our current channel */
++ if (!scanCurrentChanOnly) {
++ PRINTM(INFO, "Scan: WMM Queue stop\n");
++ priv->wlan_dev.netdev->watchdog_timeo = MRVDRV_SCAN_WATCHDOG_TIMEOUT;
++ /* If WMM queues are in use, only stop the internal data queues */
++ wmm_stop_queue(priv);
++ }
++
++ bBgScan = priv->adapter->bgScanConfig->Enable;
++ if (priv->adapter->bgScanConfig->Enable == TRUE) {
++ wlan_bg_scan_enable(priv, FALSE);
++ }
++
++ ret = wlan_scan_channel_list(priv,
++ maxChanPerScan,
++ filteredScan,
++ &scanCfgOut.config,
++ pChanTlvOut, scanChanList);
++
++ /* Process the resulting scan table:
++ * - Remove any bad ssids
++ * - Update our current BSS information from scan data
++ */
++ wlan_scan_process_results(priv);
++
++ if (bBgScan == TRUE) {
++ wlan_bg_scan_enable(priv, TRUE);
++ }
++
++ PRINTM(INFO, "Scan: WMM Queue start\n");
++
++ priv->wlan_dev.netdev->watchdog_timeo = MRVDRV_DEFAULT_WATCHDOG_TIMEOUT;
++
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ wmm_start_queue(priv);
++ }
++ os_carrier_on(priv);
++ os_start_queue(priv);
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Create a brief scan resp to relay basic BSS info to the app layer
++ *
++ * When the beacon/probe response has not been buffered, use the saved BSS
++ * information available to provide a minimum response for the application
++ * ioctl retrieval routines. Include:
++ * - Timestamp
++ * - Beacon Period
++ * - Capabilities (including WMM Element if available)
++ * - SSID
++ *
++ * @param ppBuffer Output parameter: Buffer used to create basic scan rsp
++ * @param pBSSDesc Pointer to a BSS entry in the scan table to create
++ * scan response from for delivery to the application layer
++ *
++ * @return void
++ */
++static void
++wlan_scan_create_brief_table_entry(u8 ** ppBuffer, BSSDescriptor_t * pBSSDesc)
++{
++ u8 *pTmpBuf = *ppBuffer;
++ u8 tmpSSIDHdr[2];
++ u8 ieLen;
++
++ if (copy_to_user(pTmpBuf, pBSSDesc->TimeStamp,
++ sizeof(pBSSDesc->TimeStamp))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return;
++ }
++ pTmpBuf += sizeof(pBSSDesc->TimeStamp);
++
++ if (copy_to_user(pTmpBuf, &pBSSDesc->BeaconPeriod,
++ sizeof(pBSSDesc->BeaconPeriod))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return;
++ }
++ pTmpBuf += sizeof(pBSSDesc->BeaconPeriod);
++
++ if (copy_to_user(pTmpBuf, &pBSSDesc->Cap, sizeof(pBSSDesc->Cap))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return;
++ }
++ pTmpBuf += sizeof(pBSSDesc->Cap);
++
++ tmpSSIDHdr[0] = 0; /* Element ID for SSID is zero */
++ tmpSSIDHdr[1] = pBSSDesc->Ssid.SsidLength;
++ if (copy_to_user(pTmpBuf, tmpSSIDHdr, sizeof(tmpSSIDHdr))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return;
++ }
++ pTmpBuf += sizeof(tmpSSIDHdr);
++
++ if (copy_to_user(pTmpBuf, pBSSDesc->Ssid.Ssid, pBSSDesc->Ssid.SsidLength)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return;
++ }
++ pTmpBuf += pBSSDesc->Ssid.SsidLength;
++
++ if (pBSSDesc->wmmIE.VendHdr.ElementId == WMM_IE) {
++ ieLen = sizeof(IEEEtypes_Header_t) + pBSSDesc->wmmIE.VendHdr.Len;
++ if (copy_to_user(pTmpBuf, &pBSSDesc->wmmIE, ieLen)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return;
++ }
++
++ pTmpBuf += ieLen;
++ }
++
++ if (pBSSDesc->wpaIE.VendHdr.ElementId == WPA_IE) {
++ ieLen = sizeof(IEEEtypes_Header_t) + pBSSDesc->wpaIE.VendHdr.Len;
++ if (copy_to_user(pTmpBuf, &pBSSDesc->wpaIE, ieLen)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return;
++ }
++
++ pTmpBuf += ieLen;
++ }
++
++ if (pBSSDesc->rsnIE.IeeeHdr.ElementId == RSN_IE) {
++ ieLen = sizeof(IEEEtypes_Header_t) + pBSSDesc->rsnIE.IeeeHdr.Len;
++ if (copy_to_user(pTmpBuf, &pBSSDesc->rsnIE, ieLen)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return;
++ }
++
++ pTmpBuf += ieLen;
++ }
++
++ *ppBuffer = pTmpBuf;
++}
++
++/**
++ * @brief Inspect the scan response buffer for pointers to expected TLVs
++ *
++ * TLVs can be included at the end of the scan response BSS information.
++ * Parse the data in the buffer for pointers to TLVs that can potentially
++ * be passed back in the response
++ *
++ * @param pTlv Pointer to the start of the TLV buffer to parse
++ * @param tlvBufSize Size of the TLV buffer
++ * @param ppTsfTlv Output parameter: Pointer to the TSF TLV if found
++ *
++ * @return void
++ */
++static void
++wlan_ret_802_11_scan_get_tlv_ptrs(MrvlIEtypes_Data_t * pTlv,
++ int tlvBufSize,
++ MrvlIEtypes_TsfTimestamp_t ** ppTsfTlv)
++{
++ MrvlIEtypes_Data_t *pCurrentTlv;
++ int tlvBufLeft;
++ u16 tlvType;
++ u16 tlvLen;
++
++ pCurrentTlv = pTlv;
++ tlvBufLeft = tlvBufSize;
++ *ppTsfTlv = NULL;
++
++ PRINTM(INFO, "SCAN_RESP: tlvBufSize = %d\n", tlvBufSize);
++ HEXDUMP("SCAN_RESP: TLV Buf", (u8 *) pTlv, tlvBufSize);
++
++ while (tlvBufLeft >= sizeof(MrvlIEtypesHeader_t)) {
++ tlvType = wlan_le16_to_cpu(pCurrentTlv->Header.Type);
++ tlvLen = wlan_le16_to_cpu(pCurrentTlv->Header.Len);
++
++ switch (tlvType) {
++ case TLV_TYPE_TSFTIMESTAMP:
++ PRINTM(INFO, "SCAN_RESP: TSF Timestamp TLV, len = %d\n", tlvLen);
++ *ppTsfTlv = (MrvlIEtypes_TsfTimestamp_t *) pCurrentTlv;
++ break;
++
++ default:
++ PRINTM(INFO, "SCAN_RESP: Unhandled TLV = %d\n", tlvType);
++ /* Give up, this seems corrupted */
++ return;
++ } /* switch */
++
++ tlvBufLeft -= (sizeof(pTlv->Header) + tlvLen);
++ pCurrentTlv = (MrvlIEtypes_Data_t *) (pCurrentTlv->Data + tlvLen);
++ } /* while */
++}
++
++/**
++ * @brief Interpret a BSS scan response returned from the firmware
++ *
++ * Parse the various fixed fields and IEs passed back for a a BSS probe
++ * response or beacon from the scan command. Record information as needed
++ * in the scan table BSSDescriptor_t for that entry.
++ *
++ * @param pBSSIDEntry Output parameter: Pointer to the BSS Entry
++ *
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++InterpretBSSDescriptionWithIE(BSSDescriptor_t * pBSSEntry,
++ u8 ** pBeaconInfo, int *bytesLeft)
++{
++ IEEEtypes_ElementId_e elemID;
++ IEEEtypes_FhParamSet_t *pFH;
++ IEEEtypes_DsParamSet_t *pDS;
++ IEEEtypes_CfParamSet_t *pCF;
++ IEEEtypes_IbssParamSet_t *pIbss;
++ IEEEtypes_CapInfo_t *pCap;
++ WLAN_802_11_FIXED_IEs fixedIE;
++ u8 *pCurrentPtr;
++ u8 *pRate;
++ u8 elemLen;
++ u16 totalIeLen;
++ u8 bytesToCopy;
++ u8 rateSize;
++ u16 beaconSize;
++ BOOLEAN foundDataRateIE;
++ int bytesLeftForCurrentBeacon;
++ IEEEtypes_ERPInfo_t *pERPInfo;
++
++ IEEEtypes_VendorSpecific_t *pVendorIe;
++ const u8 wpa_oui[4] = { 0x00, 0x50, 0xf2, 0x01 };
++ const u8 wmm_oui[4] = { 0x00, 0x50, 0xf2, 0x02 };
++ const u8 wps_oui[4] = { 0x00, 0x50, 0xf2, 0x04 };
++
++ IEEEtypes_CountryInfoSet_t *pcountryinfo;
++
++ ENTER();
++
++ foundDataRateIE = FALSE;
++ rateSize = 0;
++ beaconSize = 0;
++
++ if (*bytesLeft >= sizeof(beaconSize)) {
++ /* Extract & convert beacon size from the command buffer */
++ memcpy(&beaconSize, *pBeaconInfo, sizeof(beaconSize));
++ beaconSize = wlan_le16_to_cpu(beaconSize);
++ *bytesLeft -= sizeof(beaconSize);
++ *pBeaconInfo += sizeof(beaconSize);
++ }
++
++ if (beaconSize == 0 || beaconSize > *bytesLeft) {
++
++ *pBeaconInfo += *bytesLeft;
++ *bytesLeft = 0;
++
++ return WLAN_STATUS_FAILURE;
++ }
++
++ /* Initialize the current working beacon pointer for this BSS iteration */
++ pCurrentPtr = *pBeaconInfo;
++
++ /* Advance the return beacon pointer past the current beacon */
++ *pBeaconInfo += beaconSize;
++ *bytesLeft -= beaconSize;
++
++ bytesLeftForCurrentBeacon = beaconSize;
++
++ memcpy(pBSSEntry->MacAddress, pCurrentPtr, MRVDRV_ETH_ADDR_LEN);
++ PRINTM(INFO, "InterpretIE: AP MAC Addr-%02x:%02x:%02x:%02x:%02x:%02x\n",
++ pBSSEntry->MacAddress[0], pBSSEntry->MacAddress[1],
++ pBSSEntry->MacAddress[2], pBSSEntry->MacAddress[3],
++ pBSSEntry->MacAddress[4], pBSSEntry->MacAddress[5]);
++
++ pCurrentPtr += MRVDRV_ETH_ADDR_LEN;
++ bytesLeftForCurrentBeacon -= MRVDRV_ETH_ADDR_LEN;
++
++ if (bytesLeftForCurrentBeacon < 12) {
++ PRINTM(INFO, "InterpretIE: Not enough bytes left\n");
++ return WLAN_STATUS_FAILURE;
++ }
++
++ /*
++ * next 4 fields are RSSI, time stamp, beacon interval,
++ * and capability information
++ */
++
++ /* RSSI is 1 byte long */
++ pBSSEntry->Rssi = wlan_le32_to_cpu((LONG) (*pCurrentPtr));
++ PRINTM(INFO, "InterpretIE: RSSI=%02X\n", *pCurrentPtr);
++ pCurrentPtr += 1;
++ bytesLeftForCurrentBeacon -= 1;
++
++ /*
++ * The RSSI is not part of the beacon/probe response. After we have
++ * advanced pCurrentPtr past the RSSI field, save the remaining
++ * data for use at the application layer
++ */
++ pBSSEntry->pBeaconBuf = pCurrentPtr;
++ pBSSEntry->beaconBufSize = bytesLeftForCurrentBeacon;
++
++ /* time stamp is 8 bytes long */
++ memcpy(fixedIE.Timestamp, pCurrentPtr, 8);
++ memcpy(pBSSEntry->TimeStamp, pCurrentPtr, 8);
++ pCurrentPtr += 8;
++ bytesLeftForCurrentBeacon -= 8;
++
++ /* beacon interval is 2 bytes long */
++ memcpy(&fixedIE.BeaconInterval, pCurrentPtr, 2);
++ pBSSEntry->BeaconPeriod = wlan_le16_to_cpu(fixedIE.BeaconInterval);
++ pCurrentPtr += 2;
++ bytesLeftForCurrentBeacon -= 2;
++
++ /* capability information is 2 bytes long */
++ memcpy(&fixedIE.Capabilities, pCurrentPtr, 2);
++ PRINTM(INFO, "InterpretIE: fixedIE.Capabilities=0x%X\n",
++ fixedIE.Capabilities);
++ fixedIE.Capabilities = wlan_le16_to_cpu(fixedIE.Capabilities);
++ pCap = (IEEEtypes_CapInfo_t *) & fixedIE.Capabilities;
++ memcpy(&pBSSEntry->Cap, pCap, sizeof(IEEEtypes_CapInfo_t));
++ pCurrentPtr += 2;
++ bytesLeftForCurrentBeacon -= 2;
++
++ /* rest of the current buffer are IE's */
++ PRINTM(INFO, "InterpretIE: IELength for this AP = %d\n",
++ bytesLeftForCurrentBeacon);
++
++ HEXDUMP("InterpretIE: IE info", (u8 *) pCurrentPtr,
++ bytesLeftForCurrentBeacon);
++
++ if (pCap->Privacy) {
++ PRINTM(INFO, "InterpretIE: AP WEP enabled\n");
++ pBSSEntry->Privacy = Wlan802_11PrivFilter8021xWEP;
++ } else {
++ pBSSEntry->Privacy = Wlan802_11PrivFilterAcceptAll;
++ }
++
++ if (pCap->Ibss == 1) {
++ pBSSEntry->InfrastructureMode = Wlan802_11IBSS;
++ } else {
++ pBSSEntry->InfrastructureMode = Wlan802_11Infrastructure;
++ }
++
++ /* process variable IE */
++ while (bytesLeftForCurrentBeacon >= 2) {
++ elemID = (IEEEtypes_ElementId_e) (*((u8 *) pCurrentPtr));
++ elemLen = *((u8 *) pCurrentPtr + 1);
++ totalIeLen = elemLen + sizeof(IEEEtypes_Header_t);
++
++ if (bytesLeftForCurrentBeacon < elemLen) {
++ PRINTM(INFO, "InterpretIE: Error in processing IE, "
++ "bytes left < IE length\n");
++ bytesLeftForCurrentBeacon = 0;
++ continue;
++ }
++
++ switch (elemID) {
++
++ case SSID:
++ pBSSEntry->Ssid.SsidLength = elemLen;
++ memcpy(pBSSEntry->Ssid.Ssid, (pCurrentPtr + 2), elemLen);
++ PRINTM(INFO, "InterpretIE: Ssid: %-32s\n", pBSSEntry->Ssid.Ssid);
++ break;
++
++ case SUPPORTED_RATES:
++ memcpy(pBSSEntry->DataRates, pCurrentPtr + 2, elemLen);
++ memcpy(pBSSEntry->SupportedRates, pCurrentPtr + 2, elemLen);
++ HEXDUMP("InterpretIE: SupportedRates:",
++ pBSSEntry->SupportedRates, elemLen);
++ rateSize = elemLen;
++ foundDataRateIE = TRUE;
++ break;
++
++ case EXTRA_IE:
++ PRINTM(INFO, "InterpretIE: EXTRA_IE Found!\n");
++ pBSSEntry->extra_ie = 1;
++ break;
++
++ case FH_PARAM_SET:
++ pFH = (IEEEtypes_FhParamSet_t *) pCurrentPtr;
++ pBSSEntry->NetworkTypeInUse = Wlan802_11FH;
++ memcpy(&pBSSEntry->PhyParamSet.FhParamSet, pFH,
++ sizeof(IEEEtypes_FhParamSet_t));
++ pBSSEntry->PhyParamSet.FhParamSet.DwellTime
++ =
++ wlan_le16_to_cpu(pBSSEntry->PhyParamSet.FhParamSet.DwellTime);
++ break;
++
++ case DS_PARAM_SET:
++ pDS = (IEEEtypes_DsParamSet_t *) pCurrentPtr;
++
++ pBSSEntry->NetworkTypeInUse = Wlan802_11DS;
++ pBSSEntry->Channel = pDS->CurrentChan;
++
++ memcpy(&pBSSEntry->PhyParamSet.DsParamSet, pDS,
++ sizeof(IEEEtypes_DsParamSet_t));
++ break;
++
++ case CF_PARAM_SET:
++ pCF = (IEEEtypes_CfParamSet_t *) pCurrentPtr;
++ memcpy(&pBSSEntry->SsParamSet.CfParamSet, pCF,
++ sizeof(IEEEtypes_CfParamSet_t));
++ break;
++
++ case IBSS_PARAM_SET:
++ pIbss = (IEEEtypes_IbssParamSet_t *) pCurrentPtr;
++ pBSSEntry->ATIMWindow = wlan_le32_to_cpu(pIbss->AtimWindow);
++ memcpy(&pBSSEntry->SsParamSet.IbssParamSet, pIbss,
++ sizeof(IEEEtypes_IbssParamSet_t));
++ break;
++
++ /* Handle Country Info IE */
++ case COUNTRY_INFO:
++ pcountryinfo = (IEEEtypes_CountryInfoSet_t *) pCurrentPtr;
++
++ if (pcountryinfo->Len < sizeof(pcountryinfo->CountryCode) ||
++ pcountryinfo->Len + 2 >
++ sizeof(IEEEtypes_CountryInfoFullSet_t)) {
++ PRINTM(INFO,
++ "InterpretIE: 11D- Err "
++ "CountryInfo len =%d min=%d max=%d\n",
++ pcountryinfo->Len, sizeof(pcountryinfo->CountryCode),
++ sizeof(IEEEtypes_CountryInfoFullSet_t));
++ LEAVE();
++ return WLAN_STATUS_FAILURE;
++ }
++
++ memcpy(&pBSSEntry->CountryInfo,
++ pcountryinfo, pcountryinfo->Len + 2);
++ HEXDUMP("InterpretIE: 11D- CountryInfo:",
++ (u8 *) pcountryinfo, (u32) (pcountryinfo->Len + 2));
++ break;
++ case ERP_INFO:
++ pERPInfo = (IEEEtypes_ERPInfo_t *) pCurrentPtr;
++ pBSSEntry->ERPFlags = pERPInfo->ERPFlags;
++ break;
++ case EXTENDED_SUPPORTED_RATES:
++ /*
++ * only process extended supported rate
++ * if data rate is already found.
++ * data rate IE should come before
++ * extended supported rate IE
++ */
++ if (foundDataRateIE) {
++ if ((elemLen + rateSize) > WLAN_SUPPORTED_RATES) {
++ bytesToCopy = (WLAN_SUPPORTED_RATES - rateSize);
++ } else {
++ bytesToCopy = elemLen;
++ }
++
++ pRate = (u8 *) pBSSEntry->DataRates;
++ pRate += rateSize;
++ memcpy(pRate, pCurrentPtr + 2, bytesToCopy);
++
++ pRate = (u8 *) pBSSEntry->SupportedRates;
++ pRate += rateSize;
++ memcpy(pRate, pCurrentPtr + 2, bytesToCopy);
++ }
++ HEXDUMP("InterpretIE: ExtSupportedRates:",
++ pBSSEntry->SupportedRates, elemLen + rateSize);
++ break;
++
++ case VENDOR_SPECIFIC_221:
++ pVendorIe = (IEEEtypes_VendorSpecific_t *) pCurrentPtr;
++
++ if ((!memcmp
++ (pVendorIe->VendHdr.Oui, wpa_oui,
++ sizeof(pVendorIe->VendHdr.Oui)))
++ && (pVendorIe->VendHdr.OuiType == wpa_oui[3])) {
++ pBSSEntry->wpaIE.VendHdr.Len
++ = (MIN(totalIeLen, sizeof(pBSSEntry->wpaIE))
++ - sizeof(IEEEtypes_Header_t));
++
++ memcpy(&pBSSEntry->wpaIE,
++ pCurrentPtr,
++ (pBSSEntry->wpaIE.VendHdr.Len
++ + sizeof(IEEEtypes_Header_t)));
++
++ HEXDUMP("InterpretIE: Resp WPA_IE",
++ (u8 *) & pBSSEntry->wpaIE,
++ (pBSSEntry->wpaIE.VendHdr.Len
++ + sizeof(IEEEtypes_Header_t)));
++ } else
++ if ((!memcmp
++ (pVendorIe->VendHdr.Oui, wmm_oui,
++ sizeof(pVendorIe->VendHdr.Oui)))
++ && (pVendorIe->VendHdr.OuiType == wmm_oui[3])) {
++ if (totalIeLen == sizeof(IEEEtypes_WmmParameter_t)
++ || totalIeLen == sizeof(IEEEtypes_WmmInfo_t)) {
++
++ /* Only accept and copy the WMM IE if it matches
++ * the size expected for the WMM Info IE or the
++ * WMM Parameter IE.
++ */
++ memcpy((u8 *) & pBSSEntry->wmmIE, pCurrentPtr,
++ totalIeLen);
++ HEXDUMP("InterpretIE: Resp WMM_IE",
++ (u8 *) & pBSSEntry->wmmIE, totalIeLen);
++ }
++ } else
++ if ((!memcmp
++ (pVendorIe->VendHdr.Oui, wps_oui,
++ sizeof(pVendorIe->VendHdr.Oui)))
++ && (pVendorIe->VendHdr.OuiType == wps_oui[3])) {
++ memcpy((u8 *) & pBSSEntry->wpsIE, pCurrentPtr, totalIeLen);
++ HEXDUMP("InterpretIE: Resp WPS_IE",
++ (u8 *) & pBSSEntry->wpsIE, totalIeLen);
++ }
++ break;
++ case RSN_IE:
++ pBSSEntry->rsnIE.IeeeHdr.Len
++ = (MIN(totalIeLen, sizeof(pBSSEntry->rsnIE))
++ - sizeof(IEEEtypes_Header_t));
++
++ memcpy(&pBSSEntry->rsnIE,
++ pCurrentPtr,
++ pBSSEntry->rsnIE.IeeeHdr.Len + sizeof(IEEEtypes_Header_t));
++
++ HEXDUMP("InterpretIE: Resp RSN_IE",
++ (u8 *) & pBSSEntry->rsnIE,
++ pBSSEntry->rsnIE.IeeeHdr.Len +
++ sizeof(IEEEtypes_Header_t));
++ break;
++ }
++
++ pCurrentPtr += elemLen + 2;
++
++ /* need to account for IE ID and IE Len */
++ bytesLeftForCurrentBeacon -= (elemLen + 2);
++
++ } /* while (bytesLeftForCurrentBeacon > 2) */
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Compare two SSIDs
++ *
++ * @param ssid1 A pointer to ssid to compare
++ * @param ssid2 A pointer to ssid to compare
++ *
++ * @return 0--ssid is same, otherwise is different
++ */
++int
++SSIDcmp(WLAN_802_11_SSID * ssid1, WLAN_802_11_SSID * ssid2)
++{
++ if (!ssid1 || !ssid2)
++ return -1;
++
++ if (ssid1->SsidLength != ssid2->SsidLength)
++ return -1;
++
++ return memcmp(ssid1->Ssid, ssid2->Ssid, ssid1->SsidLength);
++}
++
++/**
++ * @brief This function finds a specific compatible BSSID in the scan list
++ *
++ * @param Adapter A pointer to wlan_adapter
++ * @param bssid BSSID to find in the scan list
++ * @param mode Network mode: Infrastructure or IBSS
++ *
++ * @return index in BSSID list, or error return code (< 0)
++ */
++int
++FindBSSIDInList(wlan_adapter * Adapter, u8 * bssid, int mode)
++{
++ int ret = -ENETUNREACH;
++ int i;
++
++ if (!bssid)
++ return -EFAULT;
++
++ PRINTM(INFO, "FindBSSID: Num of BSSIDs = %d\n", Adapter->NumInScanTable);
++
++ /* Look through the scan table for a compatible match. The ret return
++ * variable will be equal to the index in the scan table (greater
++ * than zero) if the network is compatible. The loop will continue
++ * past a matched bssid that is not compatible in case there is an
++ * AP with multiple SSIDs assigned to the same BSSID
++ */
++ for (i = 0; ret < 0 && i < Adapter->NumInScanTable; i++) {
++ if (!memcmp(Adapter->ScanTable[i].MacAddress, bssid, ETH_ALEN)) {
++ switch (mode) {
++ case Wlan802_11Infrastructure:
++ case Wlan802_11IBSS:
++ ret = IsNetworkCompatible(Adapter, i, mode);
++ break;
++ default:
++ ret = i;
++ break;
++ }
++ }
++ }
++
++ if (ret >= 0) {
++ if (find_cfp_by_band_and_channel
++ (Adapter, 0, Adapter->ScanTable[ret].Channel) == NULL) {
++ ret = -ENETUNREACH;
++ }
++ }
++ return ret;
++}
++
++/**
++ * @brief This function finds ssid in ssid list.
++ *
++ * @param Adapter A pointer to wlan_adapter
++ * @param ssid SSID to find in the list
++ * @param bssid BSSID to qualify the SSID selection (if provided)
++ * @param mode Network mode: Infrastructure or IBSS
++ *
++ * @return index in BSSID list
++ */
++int
++FindSSIDInList(wlan_adapter * Adapter, WLAN_802_11_SSID * ssid,
++ u8 * bssid, int mode)
++{
++ int net = -ENETUNREACH;
++ u8 bestrssi = 0;
++ int i, j;
++
++ PRINTM(INFO, "Num of Entries in Table = %d\n", Adapter->NumInScanTable);
++
++ /* Loop through the table until the maximum is reached or until a match
++ * is found based on the bssid field comparison
++ */
++ for (i = 0;
++ i < Adapter->NumInScanTable && (bssid == NULL || (bssid && net < 0));
++ i++) {
++
++ if (!SSIDcmp(&Adapter->ScanTable[i].Ssid, ssid) && ((bssid == NULL)
++ ||
++ !memcmp(Adapter->
++ ScanTable
++ [i].
++ MacAddress,
++ bssid,
++ ETH_ALEN)))
++ {
++ switch (mode) {
++ case Wlan802_11Infrastructure:
++ case Wlan802_11IBSS:
++ j = IsNetworkCompatible(Adapter, i, mode);
++
++ if (j >= 0) {
++ if (SCAN_RSSI(Adapter->ScanTable[i].Rssi) > bestrssi) {
++ bestrssi = SCAN_RSSI(Adapter->ScanTable[i].Rssi);
++ net = i;
++ }
++ } else {
++ if (net == -ENETUNREACH) {
++ net = j;
++ }
++ }
++ break;
++ case Wlan802_11AutoUnknown:
++ default:
++ /* Do not check compatibility if the mode requested is
++ * AutoUnknown. Allows generic find to work without
++ * verifying against the Adapter security settings
++ */
++ if (SCAN_RSSI(Adapter->ScanTable[i].Rssi) > bestrssi) {
++ bestrssi = SCAN_RSSI(Adapter->ScanTable[i].Rssi);
++ net = i;
++ }
++ break;
++ }
++ }
++ }
++ if (net >= 0) {
++ if (find_cfp_by_band_and_channel
++ (Adapter, 0, Adapter->ScanTable[net].Channel) == NULL) {
++ net = -ENETUNREACH;
++ }
++ }
++ return net;
++}
++
++/**
++ * @brief This function finds the best SSID in the Scan List
++ *
++ * Search the scan table for the best SSID that also matches the current
++ * adapter network preference (infrastructure or adhoc)
++ *
++ * @param Adapter A pointer to wlan_adapter
++ *
++ * @return index in BSSID list
++ */
++int
++FindBestSSIDInList(wlan_adapter * Adapter)
++{
++ int mode = Adapter->InfrastructureMode;
++ int bestnet = -ENETUNREACH;
++ u8 bestrssi = 0;
++ int i;
++
++ ENTER();
++
++ PRINTM(INFO, "Num of BSSIDs = %d\n", Adapter->NumInScanTable);
++
++ for (i = 0; i < Adapter->NumInScanTable; i++) {
++ switch (mode) {
++ case Wlan802_11Infrastructure:
++ case Wlan802_11IBSS:
++ if (IsNetworkCompatible(Adapter, i, mode) >= 0) {
++ if (SCAN_RSSI(Adapter->ScanTable[i].Rssi) > bestrssi) {
++ bestrssi = SCAN_RSSI(Adapter->ScanTable[i].Rssi);
++ bestnet = i;
++ }
++ }
++ break;
++ case Wlan802_11AutoUnknown:
++ default:
++ if (SCAN_RSSI(Adapter->ScanTable[i].Rssi) > bestrssi) {
++ bestrssi = SCAN_RSSI(Adapter->ScanTable[i].Rssi);
++ bestnet = i;
++ }
++ break;
++ }
++ }
++
++ LEAVE();
++ return bestnet;
++}
++
++/**
++ * @brief Find the AP with specific ssid in the scan list
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param pSSID A pointer to AP's ssid
++ *
++ * @return WLAN_STATUS_SUCCESS--success, otherwise--fail
++ */
++int
++FindBestNetworkSsid(wlan_private * priv, WLAN_802_11_SSID * pSSID)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++ BSSDescriptor_t *pReqBSSID;
++ int i;
++
++ ENTER();
++
++ memset(pSSID, 0, sizeof(WLAN_802_11_SSID));
++
++ wlan_scan_networks(priv, NULL);
++
++ i = FindBestSSIDInList(Adapter);
++
++ if (i >= 0) {
++
++ pReqBSSID = &Adapter->ScanTable[i];
++ memcpy(pSSID, &pReqBSSID->Ssid, sizeof(WLAN_802_11_SSID));
++
++ /* Make sure we are in the right mode */
++ if (Adapter->InfrastructureMode == Wlan802_11AutoUnknown) {
++ Adapter->InfrastructureMode = pReqBSSID->InfrastructureMode;
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_SNMP_MIB,
++ HostCmd_ACT_SET,
++ HostCmd_OPTION_WAITFORRSP,
++ OID_802_11_INFRASTRUCTURE_MODE, NULL);
++
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++ }
++ }
++
++ if (!pSSID->SsidLength) {
++ ret = WLAN_STATUS_FAILURE;
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Delete a specific indexed entry from the scan table.
++ *
++ * Delete the scan table entry indexed by tableIdx. Compact the remaining
++ * entries and adjust any buffering of beacon/probe response data
++ * if needed.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param tableIdx Scan table entry index to delete from the table
++ *
++ * @return void
++ *
++ * @pre tableIdx must be an index to a valid entry
++ */
++static void
++wlan_scan_delete_table_entry(wlan_private * priv, int tableIdx)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int delIdx;
++ uint beaconBufAdj;
++ u8 *pBeaconBuf;
++
++ /* Shift the saved beacon buffer data for the scan table back over the
++ * entry being removed. Update the end of buffer pointer. Save the
++ * deleted buffer allocation size for pointer adjustments for entries
++ * compacted after the deleted index.
++ */
++ beaconBufAdj = Adapter->ScanTable[tableIdx].beaconBufSizeMax;
++
++ PRINTM(INFO, "Scan: Delete Entry %d, beacon buffer removal = %d bytes\n",
++ tableIdx, beaconBufAdj);
++
++ /* Check if the table entry had storage allocated for its beacon */
++ if (beaconBufAdj) {
++ pBeaconBuf = Adapter->ScanTable[tableIdx].pBeaconBuf;
++
++ /* Remove the entry's buffer space, decrement the table end pointer
++ * by the amount we are removing
++ */
++ Adapter->pBeaconBufEnd -= beaconBufAdj;
++
++ PRINTM(INFO,
++ "Scan: Delete Entry %d, compact data: %p <- %p (sz = %d)\n",
++ tableIdx,
++ pBeaconBuf,
++ pBeaconBuf + beaconBufAdj,
++ Adapter->pBeaconBufEnd - pBeaconBuf);
++
++ /* Compact data storage. Copy all data after the deleted entry's
++ * end address (pBeaconBuf + beaconBufAdj) back to the original
++ * start address (pBeaconBuf).
++ *
++ * Scan table entries affected by the move will have their entry
++ * pointer adjusted below.
++ *
++ * Use memmove since the dest/src memory regions overlap.
++ */
++ memmove(pBeaconBuf,
++ pBeaconBuf + beaconBufAdj,
++ Adapter->pBeaconBufEnd - pBeaconBuf);
++ }
++
++ PRINTM(INFO, "Scan: Delete Entry %d, NumInScanTable = %d\n",
++ tableIdx, Adapter->NumInScanTable);
++
++ /* Shift all of the entries after the tableIdx back by one, compacting
++ * the table and removing the requested entry
++ */
++ for (delIdx = tableIdx; (delIdx + 1) < Adapter->NumInScanTable; delIdx++) {
++ /* Copy the next entry over this one */
++ memcpy(Adapter->ScanTable + delIdx,
++ Adapter->ScanTable + delIdx + 1, sizeof(BSSDescriptor_t));
++
++ /* Adjust this entry's pointer to its beacon buffer based on the
++ * removed/compacted entry from the deleted index. Don't decrement
++ * if the buffer pointer is NULL (no data stored for this entry).
++ */
++ if (Adapter->ScanTable[delIdx].pBeaconBuf) {
++ Adapter->ScanTable[delIdx].pBeaconBuf -= beaconBufAdj;
++ }
++ }
++
++ /* The last entry is invalid now that it has been deleted or moved back */
++ memset(Adapter->ScanTable + Adapter->NumInScanTable - 1,
++ 0x00, sizeof(BSSDescriptor_t));
++
++ Adapter->NumInScanTable--;
++}
++
++/**
++ * @brief Delete all occurrences of a given SSID from the scan table
++ *
++ * Iterate through the scan table and delete all entries that match a given
++ * SSID. Compact the remaining scan table entries.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param pDelSSID Pointer to an SSID struct to use in deleting all
++ * matching SSIDs from the scan table
++ *
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ *
++ */
++static int
++wlan_scan_delete_ssid_table_entry(wlan_private * priv,
++ WLAN_802_11_SSID * pDelSSID)
++{
++ int tableIdx;
++ int retval = WLAN_STATUS_FAILURE;
++
++ ENTER();
++
++ PRINTM(INFO, "Scan: Delete Ssid Entry: %-32s\n", pDelSSID->Ssid);
++
++ /* If the requested SSID is found in the table, delete it. Then keep
++ * searching the table for multiple entires for the SSID until no
++ * more are found
++ */
++ while ((tableIdx = FindSSIDInList(priv->adapter,
++ pDelSSID,
++ NULL, Wlan802_11AutoUnknown)) >= 0) {
++ PRINTM(INFO, "Scan: Delete Ssid Entry: Found Idx = %d\n", tableIdx);
++ retval = WLAN_STATUS_SUCCESS;
++ wlan_scan_delete_table_entry(priv, tableIdx);
++ }
++
++ LEAVE();
++
++ return retval;
++}
++
++/**
++ * @brief Scan Network
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ *
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++int
++wlan_set_scan(struct net_device *dev, struct iw_request_info *info,
++ struct iw_param *vwrq, char *extra)
++{
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ union iwreq_data wrqu;
++#if WIRELESS_EXT >= 18
++ struct iw_scan_req *req;
++ struct iw_point *dwrq = (struct iw_point *) vwrq;
++ wlan_ioctl_user_scan_cfg scanCfg;
++#endif
++ ENTER();
++
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++#ifdef REASSOCIATION
++ if (OS_ACQ_SEMAPHORE_BLOCK(&Adapter->ReassocSem)) {
++ PRINTM(ERROR, "Acquire semaphore error, wlan_set_scan\n");
++ return -EBUSY;
++ }
++#endif
++#if WIRELESS_EXT >= 18
++ if ((dwrq->flags & IW_SCAN_THIS_ESSID) &&
++ (dwrq->length == sizeof(struct iw_scan_req))) {
++ req = (struct iw_scan_req *) extra;
++ if (req->essid_len <= WLAN_MAX_SSID_LENGTH) {
++ memset(&scanCfg, 0x00, sizeof(scanCfg));
++ memcpy(scanCfg.ssidList[0].ssid, (u8 *) req->essid,
++ req->essid_len);
++ if (!wlan_scan_networks(priv, &scanCfg)) {
++ memset(&wrqu, 0, sizeof(union iwreq_data));
++ wireless_send_event(priv->wlan_dev.netdev, SIOCGIWSCAN, &wrqu,
++ NULL);
++
++ }
++ }
++ } else {
++#endif
++
++ if (!wlan_scan_networks(priv, NULL)) {
++ memset(&wrqu, 0, sizeof(union iwreq_data));
++ wireless_send_event(priv->wlan_dev.netdev, SIOCGIWSCAN, &wrqu,
++ NULL);
++
++ }
++#if WIRELESS_EXT >= 18
++ }
++#endif
++
++#ifdef REASSOCIATION
++ OS_REL_SEMAPHORE(&Adapter->ReassocSem);
++#endif
++
++ if (Adapter->SurpriseRemoved)
++ return WLAN_STATUS_FAILURE;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Send a scan command for all available channels filtered on a spec
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param pRequestedSSID A pointer to AP's ssid
++ *
++ * @return WLAN_STATUS_SUCCESS-success, otherwise fail
++ */
++int
++SendSpecificSSIDScan(wlan_private * priv, WLAN_802_11_SSID * pRequestedSSID)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ wlan_ioctl_user_scan_cfg scanCfg;
++
++ ENTER();
++
++ if (pRequestedSSID == NULL) {
++ return WLAN_STATUS_FAILURE;
++ }
++
++ wlan_scan_delete_ssid_table_entry(priv, pRequestedSSID);
++
++ memset(&scanCfg, 0x00, sizeof(scanCfg));
++
++ memcpy(scanCfg.ssidList[0].ssid,
++ pRequestedSSID->Ssid, pRequestedSSID->SsidLength);
++ scanCfg.keepPreviousScan = TRUE;
++
++ wlan_scan_networks(priv, &scanCfg);
++
++ if (Adapter->SurpriseRemoved)
++ return WLAN_STATUS_FAILURE;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief scan an AP with specific BSSID
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param bssid A pointer to AP's bssid
++ *
++ * @return WLAN_STATUS_SUCCESS-success, otherwise fail
++ */
++int
++SendSpecificBSSIDScan(wlan_private * priv, u8 * bssid)
++{
++ wlan_ioctl_user_scan_cfg scanCfg;
++
++ ENTER();
++
++ if (bssid == NULL) {
++ return WLAN_STATUS_FAILURE;
++ }
++
++ memset(&scanCfg, 0x00, sizeof(scanCfg));
++ memcpy(scanCfg.specificBSSID, bssid, sizeof(scanCfg.specificBSSID));
++ scanCfg.keepPreviousScan = TRUE;
++
++ wlan_scan_networks(priv, &scanCfg);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Retrieve the scan table entries via wireless tools IOCTL call
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param dwrq A pointer to iw_point structure
++ * @param extra A pointer to extra data buf
++ *
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++int
++wlan_get_scan(struct net_device *dev, struct iw_request_info *info,
++ struct iw_point *dwrq, char *extra)
++{
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++ char *current_ev = extra;
++ char *end_buf = extra + IW_SCAN_MAX_DATA;
++ CHANNEL_FREQ_POWER *cfp;
++ BSSDescriptor_t *pScanTable;
++ char *current_val; /* For rates */
++ struct iw_event iwe; /* Temporary buffer */
++ int i;
++ int j;
++ int rate;
++
++ u8 buf[16 + 256 * 2];
++ u8 *ptr;
++ u8 *pRawData;
++#define PERFECT_RSSI ((u8)50)
++#define WORST_RSSI ((u8)0)
++#define RSSI_DIFF ((u8)(PERFECT_RSSI - WORST_RSSI))
++ u8 rssi;
++
++ ENTER();
++
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ PRINTM(INFO, "Current Ssid: %-32s\n",
++ Adapter->CurBssParams.BSSDescriptor.Ssid.Ssid);
++ }
++
++ PRINTM(INFO, "Scan: Get: NumInScanTable = %d\n", Adapter->NumInScanTable);
++
++#if WIRELESS_EXT > 13
++ /* The old API using SIOCGIWAPLIST had a hard limit of IW_MAX_AP.
++ * The new API using SIOCGIWSCAN is only limited by buffer size
++ * WE-14 -> WE-16 the buffer is limited to IW_SCAN_MAX_DATA bytes
++ * which is 4096.
++ */
++ for (i = 0; i < Adapter->NumInScanTable; i++) {
++ if ((current_ev + MAX_SCAN_CELL_SIZE) >= end_buf) {
++ PRINTM(INFO, "i=%d break out: current_ev=%p end_buf=%p "
++ "MAX_SCAN_CELL_SIZE=%d\n",
++ i, current_ev, end_buf, MAX_SCAN_CELL_SIZE);
++ break;
++ }
++
++ pScanTable = &Adapter->ScanTable[i];
++
++ PRINTM(INFO, "i=%d Ssid: %-32s\n", i, pScanTable->Ssid.Ssid);
++
++ cfp =
++ find_cfp_by_band_and_channel(Adapter, 0,
++ (u16) pScanTable->Channel);
++ if (!cfp) {
++ PRINTM(INFO, "Invalid channel number %d\n", pScanTable->Channel);
++ continue;
++ }
++
++ if (ssid_valid(&Adapter->ScanTable[i].Ssid) == FALSE) {
++ continue;
++ }
++
++ /* First entry *MUST* be the AP MAC address */
++ iwe.cmd = SIOCGIWAP;
++ iwe.u.ap_addr.sa_family = ARPHRD_ETHER;
++ memcpy(iwe.u.ap_addr.sa_data,
++ &Adapter->ScanTable[i].MacAddress, ETH_ALEN);
++
++ iwe.len = IW_EV_ADDR_LEN;
++ current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, iwe.len);
++
++ //Add the ESSID
++ iwe.u.data.length = Adapter->ScanTable[i].Ssid.SsidLength;
++
++ if (iwe.u.data.length > 32) {
++ iwe.u.data.length = 32;
++ }
++
++ iwe.cmd = SIOCGIWESSID;
++ iwe.u.essid.flags = (i + 1) & IW_ENCODE_INDEX;
++ iwe.len = IW_EV_POINT_LEN + iwe.u.data.length;
++ current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe,
++ (s8 *) Adapter->ScanTable[i].Ssid.
++ Ssid);
++
++ //Add mode
++ iwe.cmd = SIOCGIWMODE;
++ iwe.u.mode = Adapter->ScanTable[i].InfrastructureMode + 1;
++ iwe.len = IW_EV_UINT_LEN;
++ current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, iwe.len);
++
++ //frequency
++ iwe.cmd = SIOCGIWFREQ;
++ iwe.u.freq.m = (long) cfp->Freq * 100000;
++ iwe.u.freq.e = 1;
++ iwe.len = IW_EV_FREQ_LEN;
++ current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, iwe.len);
++
++ /* Add quality statistics */
++ iwe.cmd = IWEVQUAL;
++ iwe.u.qual.updated = IW_QUAL_ALL_UPDATED;
++ iwe.u.qual.level = SCAN_RSSI(Adapter->ScanTable[i].Rssi);
++
++ rssi = iwe.u.qual.level - MRVDRV_NF_DEFAULT_SCAN_VALUE;
++ iwe.u.qual.qual =
++ (100 * RSSI_DIFF * RSSI_DIFF - (PERFECT_RSSI - rssi) *
++ (15 * (RSSI_DIFF) + 62 * (PERFECT_RSSI - rssi))) /
++ (RSSI_DIFF * RSSI_DIFF);
++ if (iwe.u.qual.qual > 100)
++ iwe.u.qual.qual = 100;
++
++ if (Adapter->NF[TYPE_BEACON][TYPE_NOAVG] == 0) {
++ iwe.u.qual.noise = MRVDRV_NF_DEFAULT_SCAN_VALUE;
++ } else {
++ iwe.u.qual.noise = CAL_NF(Adapter->NF[TYPE_BEACON][TYPE_NOAVG]);
++ }
++ if ((Adapter->InfrastructureMode == Wlan802_11IBSS) &&
++ !SSIDcmp(&Adapter->CurBssParams.BSSDescriptor.Ssid,
++ &Adapter->ScanTable[i].Ssid)
++ && Adapter->AdhocCreate) {
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_RSSI,
++ 0, HostCmd_OPTION_WAITFORRSP, 0,
++ NULL);
++
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++ iwe.u.qual.level =
++ CAL_RSSI(Adapter->SNR[TYPE_RXPD][TYPE_AVG] / AVG_SCALE,
++ Adapter->NF[TYPE_RXPD][TYPE_AVG] / AVG_SCALE);
++ }
++
++ iwe.len = IW_EV_QUAL_LEN;
++ current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, iwe.len);
++
++ /* Add encryption capability */
++ iwe.cmd = SIOCGIWENCODE;
++ if (Adapter->ScanTable[i].Privacy) {
++ iwe.u.data.flags = IW_ENCODE_ENABLED | IW_ENCODE_NOKEY;
++ } else {
++ iwe.u.data.flags = IW_ENCODE_DISABLED;
++ }
++ iwe.u.data.length = 0;
++ iwe.len = IW_EV_POINT_LEN + iwe.u.data.length;
++ current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, NULL);
++
++ current_val = current_ev + IW_EV_LCP_LEN;
++
++ iwe.cmd = SIOCGIWRATE;
++
++ iwe.u.bitrate.fixed = 0;
++ iwe.u.bitrate.disabled = 0;
++ iwe.u.bitrate.value = 0;
++
++ /* Bit rate given in 500 kb/s units (+ 0x80) */
++ for (j = 0; j < sizeof(Adapter->ScanTable[i].SupportedRates); j++) {
++ if (Adapter->ScanTable[i].SupportedRates[j] == 0) {
++ break;
++ }
++ rate = (Adapter->ScanTable[i].SupportedRates[j] & 0x7F) * 500000;
++ if (rate > iwe.u.bitrate.value) {
++ iwe.u.bitrate.value = rate;
++ }
++
++ iwe.u.bitrate.value = (Adapter->ScanTable[i].SupportedRates[j]
++ & 0x7f) * 500000;
++ iwe.len = IW_EV_PARAM_LEN;
++ current_ev =
++ iwe_stream_add_value(current_ev, current_val, end_buf, &iwe,
++ iwe.len);
++
++ }
++ if ((Adapter->ScanTable[i].InfrastructureMode == Wlan802_11IBSS) &&
++ !SSIDcmp(&Adapter->CurBssParams.BSSDescriptor.Ssid,
++ &Adapter->ScanTable[i].Ssid)
++ && Adapter->AdhocCreate) {
++ iwe.u.bitrate.value = 22 * 500000;
++ }
++ iwe.len = IW_EV_PARAM_LEN;
++ current_ev = iwe_stream_add_value(current_ev, current_val, end_buf,
++ &iwe, iwe.len);
++
++ /* Add new value to event */
++ current_val = current_ev + IW_EV_LCP_LEN;
++
++ if (Adapter->ScanTable[i].rsnIE.IeeeHdr.ElementId == RSN_IE) {
++ pRawData = (u8 *) & Adapter->ScanTable[i].rsnIE;
++ memset(&iwe, 0, sizeof(iwe));
++ memset(buf, 0, sizeof(buf));
++ ptr = buf;
++#if WIRELESS_EXT >= 18
++ memcpy(buf, pRawData,
++ Adapter->ScanTable[i].rsnIE.IeeeHdr.Len + 2);
++ iwe.cmd = IWEVGENIE;
++ iwe.u.data.length = Adapter->ScanTable[i].rsnIE.IeeeHdr.Len + 2;
++#else
++ ptr += sprintf(ptr, "rsn_ie=");
++
++ for (j = 0;
++ j < (Adapter->ScanTable[i].rsnIE.IeeeHdr.Len
++ + sizeof(IEEEtypes_Header_t)); j++) {
++ ptr += sprintf(ptr, "%02x", *(pRawData + j));
++ }
++ iwe.u.data.length = strlen(buf);
++
++ PRINTM(INFO, "iwe.u.data.length %d\n", iwe.u.data.length);
++ PRINTM(INFO, "WPA2 BUF: %s \n", buf);
++
++ iwe.cmd = IWEVCUSTOM;
++#endif
++ iwe.len = IW_EV_POINT_LEN + iwe.u.data.length;
++ current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, buf);
++ }
++ if (Adapter->ScanTable[i].wpaIE.VendHdr.ElementId == WPA_IE) {
++ pRawData = (u8 *) & Adapter->ScanTable[i].wpaIE;
++ memset(&iwe, 0, sizeof(iwe));
++ memset(buf, 0, sizeof(buf));
++ ptr = buf;
++#if WIRELESS_EXT >= 18
++ memcpy(buf, pRawData,
++ Adapter->ScanTable[i].wpaIE.VendHdr.Len + 2);
++ iwe.cmd = IWEVGENIE;
++ iwe.u.data.length = Adapter->ScanTable[i].wpaIE.VendHdr.Len + 2;
++#else
++ ptr += sprintf(ptr, "wpa_ie=");
++
++ for (j = 0;
++ j < (Adapter->ScanTable[i].wpaIE.VendHdr.Len
++ + sizeof(IEEEtypes_Header_t)); j++) {
++ ptr += sprintf(ptr, "%02x", *(pRawData + j));
++ }
++ iwe.u.data.length = strlen(buf);
++
++ PRINTM(INFO, "iwe.u.data.length %d\n", iwe.u.data.length);
++ PRINTM(INFO, "WPA BUF: %s \n", buf);
++
++ iwe.cmd = IWEVCUSTOM;
++#endif
++ iwe.len = IW_EV_POINT_LEN + iwe.u.data.length;
++ current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, buf);
++ }
++ if (Adapter->ScanTable[i].wpsIE.VendHdr.ElementId == WPS_IE) {
++ pRawData = (u8 *) & Adapter->ScanTable[i].wpsIE;
++ memset(&iwe, 0, sizeof(iwe));
++ memset(buf, 0, sizeof(buf));
++ ptr = buf;
++ ptr += sprintf(ptr, "wps_ie=");
++
++ for (j = 0;
++ j < (Adapter->ScanTable[i].wpsIE.VendHdr.Len
++ + sizeof(IEEEtypes_Header_t)); j++) {
++ ptr += sprintf(ptr, "%02x", *(pRawData + j));
++ }
++ iwe.u.data.length = strlen(buf);
++
++ PRINTM(INFO, "iwe.u.data.length %d\n", iwe.u.data.length);
++ PRINTM(INFO, "WPS BUF: %s \n", buf);
++
++ iwe.cmd = IWEVCUSTOM;
++ iwe.len = IW_EV_POINT_LEN + iwe.u.data.length;
++ current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, buf);
++ }
++
++#if WIRELESS_EXT > 14
++
++ if (Adapter->ScanTable[i].extra_ie != 0) {
++ memset(&iwe, 0, sizeof(iwe));
++ memset(buf, 0, sizeof(buf));
++ ptr = buf;
++ ptr += sprintf(ptr, "extra_ie");
++ iwe.u.data.length = strlen(buf);
++
++ PRINTM(INFO, "iwe.u.data.length %d\n", iwe.u.data.length);
++ PRINTM(INFO, "BUF: %s \n", buf);
++
++ iwe.cmd = IWEVCUSTOM;
++ iwe.len = IW_EV_POINT_LEN + iwe.u.data.length;
++ current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, buf);
++ }
++#endif
++
++ current_val = current_ev + IW_EV_LCP_LEN;
++
++ /*
++ * Check if we added any event
++ */
++ if ((current_val - current_ev) > IW_EV_LCP_LEN)
++ current_ev = current_val;
++ }
++
++ dwrq->length = (current_ev - extra);
++ dwrq->flags = 0;
++
++ LEAVE();
++#endif
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Create a wlan_ioctl_get_scan_table_entry for a given BSS
++ * Descriptor for inclusion in the ioctl response to the user space
++ * application.
++ *
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param pBSSDesc Pointer to a BSS entry in the scan table to form
++ * scan response from for delivery to the application layer
++ * @param ppBuffer Output parameter: Buffer used to output scan return struct
++ * @param pSpaceLeft Output parameter: Number of bytes available in the
++ * response buffer.
++ *
++ * @return WLAN_STATUS_SUCCESS, or < 0 with IOCTL error code
++ */
++static int
++wlan_get_scan_table_ret_entry(wlan_private * priv,
++ BSSDescriptor_t * pBSSDesc,
++ u8 ** ppBuffer, int *pSpaceLeft)
++{
++ wlan_adapter *Adapter;
++ wlan_ioctl_get_scan_table_entry *pRspEntry;
++ wlan_ioctl_get_scan_table_entry tmpRspEntry;
++ int spaceNeeded;
++ u8 *pCurrent;
++ int variableSize;
++
++ const int fixedSize = (sizeof(tmpRspEntry.fixedFieldLength)
++ + sizeof(tmpRspEntry.fixedFields)
++ + sizeof(tmpRspEntry.bssInfoLength));
++
++ ENTER();
++
++ Adapter = priv->adapter;
++ pCurrent = *ppBuffer;
++
++ /* The variable size returned is the stored beacon size */
++ variableSize = pBSSDesc->beaconBufSize;
++
++ /* If we stored a beacon and its size was zero, set the variable
++ * size return value to the size of the brief scan response
++ * wlan_scan_create_brief_table_entry creates. Also used if
++ * we are not configured to store beacons in the first place
++ */
++ if (variableSize == 0) {
++ variableSize = pBSSDesc->Ssid.SsidLength + 2;
++ variableSize += (sizeof(pBSSDesc->BeaconPeriod)
++ + sizeof(pBSSDesc->TimeStamp)
++ + sizeof(pBSSDesc->Cap));
++ if (pBSSDesc->wmmIE.VendHdr.ElementId == WMM_IE) {
++ variableSize += (sizeof(IEEEtypes_Header_t)
++ + pBSSDesc->wmmIE.VendHdr.Len);
++ }
++
++ if (pBSSDesc->wpaIE.VendHdr.ElementId == WPA_IE) {
++ variableSize += (sizeof(IEEEtypes_Header_t)
++ + pBSSDesc->wpaIE.VendHdr.Len);
++ }
++
++ if (pBSSDesc->rsnIE.IeeeHdr.ElementId == RSN_IE) {
++ variableSize += (sizeof(IEEEtypes_Header_t)
++ + pBSSDesc->rsnIE.IeeeHdr.Len);
++ }
++ }
++
++ spaceNeeded = fixedSize + variableSize;
++
++ PRINTM(INFO, "GetScanTable: need(%d), left(%d)\n",
++ spaceNeeded, *pSpaceLeft);
++
++ if (spaceNeeded >= *pSpaceLeft) {
++ *pSpaceLeft = 0;
++ LEAVE();
++ return -E2BIG;
++ }
++
++ *pSpaceLeft -= spaceNeeded;
++
++ tmpRspEntry.fixedFieldLength = sizeof(pRspEntry->fixedFields);
++
++ memcpy(tmpRspEntry.fixedFields.bssid,
++ pBSSDesc->MacAddress, sizeof(pRspEntry->fixedFields.bssid));
++
++ tmpRspEntry.fixedFields.rssi = pBSSDesc->Rssi;
++ tmpRspEntry.fixedFields.channel = pBSSDesc->Channel;
++ tmpRspEntry.fixedFields.networkTSF = pBSSDesc->networkTSF;
++ tmpRspEntry.bssInfoLength = variableSize;
++
++ /*
++ * Copy fixed fields to user space
++ */
++ if (copy_to_user(pCurrent, &tmpRspEntry, fixedSize)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ LEAVE();
++ return -EFAULT;
++ }
++
++ pCurrent += fixedSize;
++
++ if (pBSSDesc->pBeaconBuf) {
++ /*
++ * Copy variable length elements to user space
++ */
++ if (copy_to_user(pCurrent, pBSSDesc->pBeaconBuf,
++ pBSSDesc->beaconBufSize)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ LEAVE();
++ return -EFAULT;
++ }
++
++ pCurrent += pBSSDesc->beaconBufSize;
++ } else {
++ wlan_scan_create_brief_table_entry(&pCurrent, pBSSDesc);
++ }
++
++ *ppBuffer = pCurrent;
++
++ LEAVE();
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Retrieve the scan response/beacon table
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to iwreq structure
++ *
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++int
++wlan_get_scan_table_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_adapter *Adapter;
++ BSSDescriptor_t *pBSSDesc;
++ wlan_ioctl_get_scan_table_info *pRspInfo;
++ int retcode;
++ int retlen;
++ int spaceLeft;
++ u8 *pCurrent;
++ u8 *pBufferEnd;
++ u32 scanStart;
++ u32 numScansDone;
++
++ numScansDone = 0;
++ retcode = WLAN_STATUS_SUCCESS;
++ Adapter = priv->adapter;
++
++ if (copy_from_user(&scanStart,
++ wrq->u.data.pointer, sizeof(scanStart)) != 0) {
++ /* copy_from_user failed */
++ PRINTM(INFO, "GetScanTable: copy from user failed\n");
++ return -EFAULT;
++ }
++
++ pRspInfo = (wlan_ioctl_get_scan_table_info *) wrq->u.data.pointer;
++ pCurrent = pRspInfo->scan_table_entry_buffer;
++ pBufferEnd = wrq->u.data.pointer + wrq->u.data.length - 1;
++ spaceLeft = pBufferEnd - pCurrent;
++ PRINTM(INFO, "GetScanTable: scanStart req = %d\n", scanStart);
++ PRINTM(INFO, "GetScanTable: length avail = %d\n", wrq->u.data.length);
++
++ if (scanStart == 0) {
++ PRINTM(INFO, "GetScanTable: get current BSS Descriptor\n");
++
++ /* Use to get current association saved descriptor */
++ pBSSDesc = &Adapter->CurBssParams.BSSDescriptor;
++
++ retcode = wlan_get_scan_table_ret_entry(priv,
++ pBSSDesc,
++ &pCurrent, &spaceLeft);
++
++ if (retcode == WLAN_STATUS_SUCCESS) {
++ numScansDone = 1;
++ }
++
++ } else {
++ scanStart--;
++
++ while (spaceLeft
++ && (scanStart + numScansDone < Adapter->NumInScanTable)
++ && (retcode == WLAN_STATUS_SUCCESS)) {
++
++ pBSSDesc = &Adapter->ScanTable[scanStart + numScansDone];
++
++ PRINTM(INFO, "GetScanTable: get current BSS Descriptor [%d]\n",
++ scanStart + numScansDone);
++
++ retcode = wlan_get_scan_table_ret_entry(priv,
++ pBSSDesc,
++ &pCurrent, &spaceLeft);
++
++ if (retcode == WLAN_STATUS_SUCCESS) {
++ numScansDone++;
++ }
++ }
++ }
++
++ pRspInfo->scanNumber = numScansDone;
++ retlen = pCurrent - (u8 *) wrq->u.data.pointer;
++
++ wrq->u.data.length = retlen;
++
++ /* Return retcode (EFAULT or E2BIG) in the case where no scan results were
++ * successfully encoded.
++ */
++
++ return (numScansDone ? WLAN_STATUS_SUCCESS : retcode);
++}
++
++/**
++ * @brief Update the scan entry TSF timestamps to reflect a new association
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param pNewBssDesc A pointer to the newly associated AP's scan table entry
++ *
++ * @return void
++ */
++void
++wlan_scan_update_tsf_timestamps(wlan_private * priv,
++ BSSDescriptor_t * pNewBssDesc)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int tableIdx;
++ u64 newTsfBase;
++ s64 tsfDelta;
++
++ memcpy(&newTsfBase, pNewBssDesc->TimeStamp, sizeof(newTsfBase));
++
++ tsfDelta = newTsfBase - pNewBssDesc->networkTSF;
++
++ PRINTM(INFO, "TSF: Update TSF timestamps, 0x%016llx -> 0x%016llx\n",
++ pNewBssDesc->networkTSF, newTsfBase);
++
++ for (tableIdx = 0; tableIdx < Adapter->NumInScanTable; tableIdx++) {
++ Adapter->ScanTable[tableIdx].networkTSF += tsfDelta;
++ }
++}
++
++/**
++ * @brief Private IOCTL entry to perform an app configured immediate scan
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to iwreq structure containing the
++ * wlan_ioctl_user_scan_cfg requesting this scan
++ *
++ * @return 0 if successful; IOCTL error code otherwise
++ */
++int
++wlan_set_user_scan_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_ioctl_user_scan_cfg scanReq;
++ int retcode;
++ union iwreq_data wrqu;
++
++#ifdef REASSOCIATION
++ if (OS_ACQ_SEMAPHORE_BLOCK(&priv->adapter->ReassocSem)) {
++ PRINTM(ERROR, "Acquire semaphore error, wlan_extscan_ioctl\n");
++ return -EBUSY;
++ }
++#endif
++
++ memset(&scanReq, 0x00, sizeof(scanReq));
++
++ if (copy_from_user(&scanReq,
++ wrq->u.data.pointer,
++ MIN(wrq->u.data.length, sizeof(scanReq))) != 0) {
++ /* copy_from_user failed */
++ PRINTM(INFO, "SetUserScan: copy from user failed\n");
++ retcode = -EFAULT;
++
++ } else {
++
++ retcode = wlan_scan_networks(priv, &scanReq);
++
++ memset(&wrqu, 0x00, sizeof(union iwreq_data));
++ wireless_send_event(priv->wlan_dev.netdev, SIOCGIWSCAN, &wrqu, NULL);
++
++ }
++
++#ifdef REASSOCIATION
++ OS_REL_SEMAPHORE(&priv->adapter->ReassocSem);
++#endif
++
++ return retcode;
++}
++
++/**
++ * @brief Prepare a scan command to be sent to the firmware
++ *
++ * Use the wlan_scan_cmd_config sent to the command processing module in
++ * the PrepareAndSendCommand to configure a HostCmd_DS_802_11_SCAN command
++ * struct to send to firmware.
++ *
++ * The fixed fields specifying the BSS type and BSSID filters as well as a
++ * variable number/length of TLVs are sent in the command to firmware.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure to be sent to
++ * firmware with the HostCmd_DS_801_11_SCAN structure
++ * @param pdata_buf Void pointer cast of a wlan_scan_cmd_config struct used
++ * to set the fields/TLVs for the command sent to firmware
++ *
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ *
++ * @sa wlan_scan_create_channel_list
++ */
++int
++wlan_cmd_802_11_scan(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, void *pdata_buf)
++{
++ HostCmd_DS_802_11_SCAN *pScan = &cmd->params.scan;
++ wlan_scan_cmd_config *pScanCfg;
++
++ ENTER();
++
++ pScanCfg = (wlan_scan_cmd_config *) pdata_buf;
++
++ /* Set fixed field variables in scan command */
++ pScan->BSSType = pScanCfg->bssType;
++ memcpy(pScan->BSSID, pScanCfg->specificBSSID, sizeof(pScan->BSSID));
++ memcpy(pScan->TlvBuffer, pScanCfg->tlvBuffer, pScanCfg->tlvBufferLen);
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_SCAN);
++
++ /* Size is equal to the sizeof(fixed portions) + the TLV len + header */
++ cmd->Size = wlan_cpu_to_le16(sizeof(pScan->BSSType)
++ + sizeof(pScan->BSSID)
++ + pScanCfg->tlvBufferLen + S_DS_GEN);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Store a beacon or probe response for a BSS returned in the scan
++ *
++ * Store a new scan response or an update for a previous scan response. New
++ * entries need to verify that they do not exceed the total amount of
++ * memory allocated for the table.
++
++ * Replacement entries need to take into consideration the amount of space
++ * currently allocated for the beacon/probe response and adjust the entry
++ * as needed.
++ *
++ * A small amount of extra pad (SCAN_BEACON_ENTRY_PAD) is generally reserved
++ * for an entry in case it is a beacon since a probe response for the
++ * network will by larger per the standard. This helps to reduce the
++ * amount of memory copying to fit a new probe response into an entry
++ * already occupied by a network's previously stored beacon.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param beaconIdx Index in the scan table to store this entry; may be
++ * replacing an older duplicate entry for this BSS
++ * @param numInTable Number of entries currently in the table
++ * @param pNewBeacon Pointer to the new beacon/probe response to save
++ *
++ * @return void
++ */
++void
++wlan_ret_802_11_scan_store_beacon(wlan_private * priv,
++ int beaconIdx,
++ int numInTable,
++ BSSDescriptor_t * pNewBeacon)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ u8 *pBcnStore;
++ int newBcnSize;
++ int oldBcnSize;
++ int bcnSpace;
++ int adjIdx;
++
++ if (Adapter->ScanTable[beaconIdx].pBeaconBuf != NULL) {
++
++ newBcnSize = pNewBeacon->beaconBufSize;
++ oldBcnSize = Adapter->ScanTable[beaconIdx].beaconBufSize;
++ bcnSpace = Adapter->ScanTable[beaconIdx].beaconBufSizeMax;
++ pBcnStore = Adapter->ScanTable[beaconIdx].pBeaconBuf;
++
++ /* Set the max to be the same as current entry unless changed below */
++ pNewBeacon->beaconBufSizeMax = bcnSpace;
++
++ if (newBcnSize == oldBcnSize) {
++ /*
++ * Beacon is the same size as the previous entry.
++ * Replace the previous contents with the scan result
++ */
++ memcpy(pBcnStore,
++ pNewBeacon->pBeaconBuf, pNewBeacon->beaconBufSize);
++
++ } else if (newBcnSize <= bcnSpace) {
++ /*
++ * New beacon size will fit in the amount of space
++ * we have previously allocated for it
++ */
++
++ /* Copy the new beacon buffer entry over the old one */
++ memcpy(pBcnStore, pNewBeacon->pBeaconBuf, newBcnSize);
++
++ /* If the old beacon size was less than the maximum
++ * we had alloted for the entry, and the new entry
++ * is even smaller, reset the max size to the old beacon
++ * entry and compress the storage space (leaving a new
++ * pad space of (oldBcnSize - newBcnSize).
++ */
++ if (oldBcnSize < bcnSpace && newBcnSize != bcnSpace) {
++ /*
++ * Old Beacon size is smaller than the alloted storage size.
++ * Shrink the alloted storage space.
++ */
++ PRINTM(INFO, "AppControl: Smaller Duplicate Beacon (%d), "
++ "old = %d, new = %d, space = %d, left = %d\n",
++ beaconIdx, oldBcnSize, newBcnSize, bcnSpace,
++ (sizeof(Adapter->beaconBuffer) -
++ (Adapter->pBeaconBufEnd - Adapter->beaconBuffer)));
++
++ /* memmove (since the memory overlaps) the data
++ * after the beacon we just stored to the end of
++ * the current beacon. This cleans up any unused
++ * space the old larger beacon was using in the buffer
++ */
++ memmove(pBcnStore + oldBcnSize,
++ pBcnStore + bcnSpace,
++ Adapter->pBeaconBufEnd - (pBcnStore + bcnSpace));
++
++ /* Decrement the end pointer by the difference between
++ * the old larger size and the new smaller size since
++ * we are using less space due to the new beacon being
++ * smaller
++ */
++ Adapter->pBeaconBufEnd -= (bcnSpace - oldBcnSize);
++
++ /* Set the maximum storage size to the old beacon size */
++ pNewBeacon->beaconBufSizeMax = oldBcnSize;
++
++ /* Adjust beacon buffer pointers that are past the current */
++ for (adjIdx = 0; adjIdx < numInTable; adjIdx++) {
++ if (Adapter->ScanTable[adjIdx].pBeaconBuf > pBcnStore) {
++ Adapter->ScanTable[adjIdx].pBeaconBuf
++ -= (bcnSpace - oldBcnSize);
++ }
++ }
++ }
++ } else if (Adapter->pBeaconBufEnd + (newBcnSize - bcnSpace)
++ < (Adapter->beaconBuffer + sizeof(Adapter->beaconBuffer))) {
++ /*
++ * Beacon is larger than space previously allocated (bcnSpace)
++ * and there is enough space left in the beaconBuffer to store
++ * the additional data
++ */
++ PRINTM(INFO, "AppControl: Larger Duplicate Beacon (%d), "
++ "old = %d, new = %d, space = %d, left = %d\n",
++ beaconIdx, oldBcnSize, newBcnSize, bcnSpace,
++ (sizeof(Adapter->beaconBuffer) -
++ (Adapter->pBeaconBufEnd - Adapter->beaconBuffer)));
++
++ /* memmove (since the memory overlaps) the data
++ * after the beacon we just stored to the end of
++ * the current beacon. This moves the data for
++ * the beacons after this further in memory to
++ * make space for the new larger beacon we are
++ * about to copy in.
++ */
++ memmove(pBcnStore + newBcnSize,
++ pBcnStore + bcnSpace,
++ Adapter->pBeaconBufEnd - (pBcnStore + bcnSpace));
++
++ /* Copy the new beacon buffer entry over the old one */
++ memcpy(pBcnStore, pNewBeacon->pBeaconBuf, newBcnSize);
++
++ /* Move the beacon end pointer by the amount of new
++ * beacon data we are adding
++ */
++ Adapter->pBeaconBufEnd += (newBcnSize - bcnSpace);
++
++ /* This entry is bigger than the alloted max space
++ * previously reserved. Increase the max space to
++ * be equal to the new beacon size
++ */
++ pNewBeacon->beaconBufSizeMax = newBcnSize;
++
++ /* Adjust beacon buffer pointers that are past the current */
++ for (adjIdx = 0; adjIdx < numInTable; adjIdx++) {
++ if (Adapter->ScanTable[adjIdx].pBeaconBuf > pBcnStore) {
++ Adapter->ScanTable[adjIdx].pBeaconBuf
++ += (newBcnSize - bcnSpace);
++ }
++ }
++ } else {
++ /*
++ * Beacon is larger than the previously allocated space, but
++ * there is not enough free space to store the additional data
++ */
++ PRINTM(INFO,
++ "AppControl: Failed: Larger Duplicate Beacon (%d),"
++ " old = %d, new = %d, space = %d, left = %d\n",
++ beaconIdx, oldBcnSize, newBcnSize, bcnSpace,
++ (sizeof(Adapter->beaconBuffer) -
++ (Adapter->pBeaconBufEnd - Adapter->beaconBuffer)));
++
++ /* Storage failure, keep old beacon intact */
++ pNewBeacon->beaconBufSize = oldBcnSize;
++ }
++
++ /* Point the new entry to its permanent storage space */
++ pNewBeacon->pBeaconBuf = pBcnStore;
++
++ } else {
++ /* No existing beacon data exists for this entry, check to see
++ * if we can fit it in the remaining space
++ */
++ if (Adapter->pBeaconBufEnd + pNewBeacon->beaconBufSize +
++ SCAN_BEACON_ENTRY_PAD < (Adapter->beaconBuffer +
++ sizeof(Adapter->beaconBuffer))) {
++
++ /* Copy the beacon buffer data from the local entry to the
++ * adapter dev struct buffer space used to store the raw
++ * beacon data for each entry in the scan table
++ */
++ memcpy(Adapter->pBeaconBufEnd, pNewBeacon->pBeaconBuf,
++ pNewBeacon->beaconBufSize);
++
++ /* Update the beacon ptr to point to the table save area */
++ pNewBeacon->pBeaconBuf = Adapter->pBeaconBufEnd;
++ pNewBeacon->beaconBufSizeMax = (pNewBeacon->beaconBufSize
++ + SCAN_BEACON_ENTRY_PAD);
++
++ /* Increment the end pointer by the size reserved */
++ Adapter->pBeaconBufEnd += pNewBeacon->beaconBufSizeMax;
++
++ PRINTM(INFO, "AppControl: Beacon[%02d] sz=%03d,"
++ " used = %04d, left = %04d\n",
++ beaconIdx,
++ pNewBeacon->beaconBufSize,
++ (Adapter->pBeaconBufEnd - Adapter->beaconBuffer),
++ (sizeof(Adapter->beaconBuffer) -
++ (Adapter->pBeaconBufEnd - Adapter->beaconBuffer)));
++ } else {
++ /*
++ * No space for new beacon
++ */
++ PRINTM(INFO, "AppControl: No space beacon (%d): "
++ "%02x:%02x:%02x:%02x:%02x:%02x; sz=%03d, left=%03d\n",
++ beaconIdx,
++ pNewBeacon->MacAddress[0], pNewBeacon->MacAddress[1],
++ pNewBeacon->MacAddress[2], pNewBeacon->MacAddress[3],
++ pNewBeacon->MacAddress[4], pNewBeacon->MacAddress[5],
++ pNewBeacon->beaconBufSize,
++ (sizeof(Adapter->beaconBuffer) -
++ (Adapter->pBeaconBufEnd - Adapter->beaconBuffer)));
++
++ /* Storage failure; clear storage records for this bcn */
++ pNewBeacon->pBeaconBuf = NULL;
++ pNewBeacon->beaconBufSize = 0;
++ pNewBeacon->beaconBufSizeMax = 0;
++ }
++ }
++}
++
++/**
++ * @brief This function handles the command response of scan
++ *
++ * The response buffer for the scan command has the following
++ * memory layout:
++ *
++ * .-----------------------------------------------------------.
++ * | Header (4 * sizeof(u16)): Standard command response hdr |
++ * .-----------------------------------------------------------.
++ * | BufSize (u16) : sizeof the BSS Description data |
++ * .-----------------------------------------------------------.
++ * | NumOfSet (u8) : Number of BSS Descs returned |
++ * .-----------------------------------------------------------.
++ * | BSSDescription data (variable, size given in BufSize) |
++ * .-----------------------------------------------------------.
++ * | TLV data (variable, size calculated using Header->Size, |
++ * | BufSize and sizeof the fixed fields above) |
++ * .-----------------------------------------------------------.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param resp A pointer to HostCmd_DS_COMMAND
++ *
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_ret_802_11_scan(wlan_private * priv, HostCmd_DS_COMMAND * resp)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ HostCmd_DS_802_11_SCAN_RSP *pScan;
++ BSSDescriptor_t newBssEntry;
++ MrvlIEtypes_Data_t *pTlv;
++ MrvlIEtypes_TsfTimestamp_t *pTsfTlv;
++ u8 *pBssInfo;
++ u16 scanRespSize;
++ int bytesLeft;
++ int numInTable;
++ int bssIdx;
++ int idx;
++ int tlvBufSize;
++ u64 tsfVal;
++ BOOLEAN bgScanResp;
++
++ ENTER();
++
++ bgScanResp = (resp->Command == HostCmd_RET_802_11_BG_SCAN_QUERY);
++ if (bgScanResp) {
++ pScan = &resp->params.bgscanqueryresp.scanresp;
++ } else {
++ pScan = &resp->params.scanresp;
++ }
++
++ if (pScan->NumberOfSets > MRVDRV_MAX_BSSID_LIST) {
++ PRINTM(INFO, "SCAN_RESP: Invalid number of AP returned (%d)!!\n",
++ pScan->NumberOfSets);
++ LEAVE();
++ return WLAN_STATUS_FAILURE;
++ }
++
++ bytesLeft = wlan_le16_to_cpu(pScan->BSSDescriptSize);
++ PRINTM(INFO, "SCAN_RESP: BSSDescriptSize %d\n", bytesLeft);
++
++ scanRespSize = resp->Size;
++
++ PRINTM(CMND, "SCAN_RESP: returned %d APs before parsing\n",
++ pScan->NumberOfSets);
++
++ numInTable = Adapter->NumInScanTable;
++ pBssInfo = pScan->BssDescAndTlvBuffer;
++
++ /* The size of the TLV buffer is equal to the entire command response
++ * size (scanRespSize) minus the fixed fields (sizeof()'s), the
++ * BSS Descriptions (BSSDescriptSize as bytesLef) and the command
++ * response header (S_DS_GEN)
++ */
++ tlvBufSize = scanRespSize - (bytesLeft + sizeof(pScan->BSSDescriptSize)
++ + sizeof(pScan->NumberOfSets)
++ + S_DS_GEN);
++
++ pTlv = (MrvlIEtypes_Data_t *) (pScan->BssDescAndTlvBuffer + bytesLeft);
++
++ /* Search the TLV buffer space in the scan response for any valid TLVs */
++ wlan_ret_802_11_scan_get_tlv_ptrs(pTlv, tlvBufSize, &pTsfTlv);
++
++ /*
++ * Process each scan response returned (pScan->NumberOfSets). Save
++ * the information in the newBssEntry and then insert into the
++ * driver scan table either as an update to an existing entry
++ * or as an addition at the end of the table
++ */
++ for (idx = 0; idx < pScan->NumberOfSets && bytesLeft; idx++) {
++ /* Zero out the newBssEntry we are about to store info in */
++ memset(&newBssEntry, 0x00, sizeof(newBssEntry));
++
++ /* Process the data fields and IEs returned for this BSS */
++ if ((InterpretBSSDescriptionWithIE(&newBssEntry,
++ &pBssInfo,
++ &bytesLeft) == WLAN_STATUS_SUCCESS)
++ && CHECK_SSID_IS_VALID(&newBssEntry.Ssid)) {
++
++ PRINTM(INFO, "SCAN_RESP: BSSID = %02x:%02x:%02x:%02x:%02x:%02x\n",
++ newBssEntry.MacAddress[0], newBssEntry.MacAddress[1],
++ newBssEntry.MacAddress[2], newBssEntry.MacAddress[3],
++ newBssEntry.MacAddress[4], newBssEntry.MacAddress[5]);
++
++ /*
++ * Search the scan table for the same bssid
++ */
++ for (bssIdx = 0; bssIdx < numInTable; bssIdx++) {
++ if (memcmp(newBssEntry.MacAddress,
++ Adapter->ScanTable[bssIdx].MacAddress,
++ sizeof(newBssEntry.MacAddress)) == 0) {
++ /*
++ * If the SSID matches as well, it is a duplicate of
++ * this entry. Keep the bssIdx set to this
++ * entry so we replace the old contents in the table
++ */
++ if ((newBssEntry.Ssid.SsidLength ==
++ Adapter->ScanTable[bssIdx].Ssid.SsidLength)
++ && (memcmp(newBssEntry.Ssid.Ssid,
++ Adapter->ScanTable[bssIdx].Ssid.Ssid,
++ newBssEntry.Ssid.SsidLength) == 0)) {
++ PRINTM(INFO, "SCAN_RESP: Duplicate of index: %d\n",
++ bssIdx);
++ break;
++ }
++ }
++ }
++ /*
++ * If the bssIdx is equal to the number of entries in the table,
++ * the new entry was not a duplicate; append it to the scan
++ * table
++ */
++ if (bssIdx == numInTable) {
++ /* Range check the bssIdx, keep it limited to the last entry */
++ if (bssIdx == MRVDRV_MAX_BSSID_LIST) {
++ bssIdx--;
++ } else {
++ numInTable++;
++ }
++ }
++
++ /*
++ * Save the beacon/probe response returned for later application
++ * retrieval. Duplicate beacon/probe responses are updated if
++ * possible
++ */
++ wlan_ret_802_11_scan_store_beacon(priv,
++ bssIdx,
++ numInTable, &newBssEntry);
++ /*
++ * If the TSF TLV was appended to the scan results, save
++ * this entry's TSF value in the networkTSF field. The
++ * networkTSF is the firmware's TSF value at the time the
++ * beacon or probe response was received.
++ */
++ if (pTsfTlv) {
++ memcpy(&tsfVal, &pTsfTlv->tsfTable[idx], sizeof(tsfVal));
++ tsfVal = wlan_le64_to_cpu(tsfVal);
++
++ memcpy(&newBssEntry.networkTSF,
++ &tsfVal, sizeof(newBssEntry.networkTSF));
++ }
++
++ /* Copy the locally created newBssEntry to the scan table */
++ memcpy(&Adapter->ScanTable[bssIdx],
++ &newBssEntry, sizeof(Adapter->ScanTable[bssIdx]));
++
++ } else {
++
++ /* Error parsing/interpreting the scan response, skipped */
++ PRINTM(INFO, "SCAN_RESP: "
++ "InterpretBSSDescriptionWithIE returned ERROR\n");
++ }
++ }
++
++ PRINTM(CMND, "SCAN_RESP: Scanned %2d APs, %d valid, %d total\n",
++ pScan->NumberOfSets, numInTable - Adapter->NumInScanTable,
++ numInTable);
++
++ /* Update the total number of BSSIDs in the scan table */
++ Adapter->NumInScanTable = numInTable;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief scan network with specific ssid
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ *
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++int
++wlan_extscan_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ WLAN_802_11_SSID Ext_Scan_SSID;
++ wlan_ioctl_user_scan_cfg scanCfg;
++ union iwreq_data wrqu;
++
++ ENTER();
++
++ if (copy_from_user(&Ext_Scan_SSID, req->ifr_data, sizeof(Ext_Scan_SSID))) {
++ PRINTM(INFO, "copy of SSID for ext scan from user failed \n");
++ LEAVE();
++ return -EFAULT;
++ }
++#ifdef REASSOCIATION
++ if (OS_ACQ_SEMAPHORE_BLOCK(&Adapter->ReassocSem)) {
++ PRINTM(ERROR, "Acquire semaphore error, wlan_extscan_ioctl\n");
++ return -EBUSY;
++ }
++#endif
++
++ memset(&scanCfg, 0x00, sizeof(scanCfg));
++
++ memcpy(scanCfg.ssidList[0].ssid, Ext_Scan_SSID.Ssid,
++ Ext_Scan_SSID.SsidLength);
++
++ wlan_scan_networks(priv, &scanCfg);
++
++ memset(&wrqu, 0, sizeof(union iwreq_data));
++ wireless_send_event(priv->wlan_dev.netdev, SIOCGIWSCAN, &wrqu, NULL);
++
++#ifdef REASSOCIATION
++ OS_REL_SEMAPHORE(&Adapter->ReassocSem);
++#endif
++
++ if (Adapter->SurpriseRemoved)
++ return WLAN_STATUS_FAILURE;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function sends BG_SCAN query command to firmware.
++ *
++ * @param priv A pointer to wlan_private structure
++ *
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++sendBgScanQueryCmd(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++
++ /* Clear the previous scan result */
++ memset(Adapter->ScanTable, 0x00,
++ sizeof(BSSDescriptor_t) * MRVDRV_MAX_BSSID_LIST);
++ Adapter->NumInScanTable = 0;
++ Adapter->pBeaconBufEnd = Adapter->beaconBuffer;
++
++ return PrepareAndSendCommand(priv, HostCmd_CMD_802_11_BG_SCAN_QUERY,
++ 0, 0, 0, NULL);
++}
++
++/**
++ * @brief Enable/Disable BG Scan
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param enable TRUE-enable, FALSE-disable
++ *
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++int
++wlan_bg_scan_enable(wlan_private * priv, BOOLEAN enable)
++{
++ int ret;
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_BG_SCAN_CONFIG,
++ 0, HostCmd_OPTION_WAITFORRSP, 0, &enable);
++ return ret;
++}
++
++/**
++ * @brief config BGSCAN parameter
++
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ *
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++int
++wlan_do_bg_scan_config_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++ u8 action;
++ u8 *buf = NULL;
++ HostCmd_DS_802_11_BG_SCAN_CONFIG *tmp;
++
++ ENTER();
++
++ action = *((u8 *) req->ifr_data + SKIP_CMDNUM + SKIP_SIZE);
++ PRINTM(INFO, "Action = %d\n", action);
++
++ switch (action) {
++ case HostCmd_ACT_GEN_GET:
++ buf = kmalloc(Adapter->bgScanConfigSize + SKIP_TYPE_SIZE, GFP_KERNEL);
++ if (!buf) {
++ PRINTM(MSG, "kmalloc no memory !!\n");
++ return -ENOMEM;
++ }
++ memcpy(buf, &Adapter->bgScanConfigSize, SKIP_SIZE);
++ memcpy(buf + SKIP_TYPE_SIZE, Adapter->bgScanConfig,
++ Adapter->bgScanConfigSize);
++
++ if (copy_to_user(req->ifr_data, buf,
++ Adapter->bgScanConfigSize + SKIP_TYPE_SIZE)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ kfree(buf);
++ return -EFAULT;
++ }
++
++ kfree(buf);
++
++ break;
++
++ case HostCmd_ACT_GEN_SET:
++ Adapter->bgScanConfigSize = *(u16 *) (req->ifr_data + SKIP_CMDNUM);
++ PRINTM(INFO, "bgscanConfigSize = %d\n", Adapter->bgScanConfigSize);
++
++ if (!(tmp = kmalloc(Adapter->bgScanConfigSize, GFP_KERNEL))) {
++ PRINTM(MSG, "kmalloc no memory !!\n");
++ Adapter->bgScanConfigSize = 0;
++ return -ENOMEM;
++ }
++
++ HEXDUMP("treq", req->ifr_data + SKIP_CMDNUM + SKIP_SIZE,
++ Adapter->bgScanConfigSize);
++
++ if (copy_from_user(tmp, req->ifr_data + SKIP_CMDNUM + SKIP_SIZE,
++ Adapter->bgScanConfigSize)) {
++ PRINTM(INFO, "Copy from user failed\n");
++ kfree(tmp);
++ return -EFAULT;
++ }
++
++ if (Adapter->bgScanConfig) {
++ tmp->Enable = Adapter->bgScanConfig->Enable;
++ buf = (u8 *) Adapter->bgScanConfig;
++ }
++ Adapter->bgScanConfig = tmp;
++ if (buf)
++ kfree(buf);
++
++ break;
++ }
++
++ LEAVE();
++
++ return ret;
++}
++
++/**
++ * @brief This function prepares command of bg_scan_config.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ * @param cmd_action the action: GET or SET
++ * @param pdata_buf A pointer to data buffer
++ *
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_cmd_802_11_bg_scan_config(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd,
++ int cmd_action, void *pdata_buf)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ HostCmd_DS_802_11_BG_SCAN_CONFIG *bgcfg = &cmd->params.bgscancfg;
++ BOOLEAN enable = *((BOOLEAN *) pdata_buf);
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_BG_SCAN_CONFIG);
++ cmd->Size =
++ wlan_cpu_to_le16((priv->adapter->bgScanConfigSize) + S_DS_GEN);
++
++ Adapter->bgScanConfig->Enable = enable;
++
++ memcpy(bgcfg, Adapter->bgScanConfig, Adapter->bgScanConfigSize);
++
++ bgcfg->Action = wlan_cpu_to_le16(bgcfg->Action);
++ bgcfg->ScanInterval = wlan_cpu_to_le32(bgcfg->ScanInterval);
++ bgcfg->StoreCondition = wlan_cpu_to_le32(bgcfg->StoreCondition);
++ bgcfg->ReportConditions = wlan_cpu_to_le32(bgcfg->ReportConditions);
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief This function prepares command of bg_scan_query.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param cmd A pointer to HostCmd_DS_COMMAND structure
++ *
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_cmd_802_11_bg_scan_query(wlan_private * priv, HostCmd_DS_COMMAND * cmd)
++{
++ HostCmd_DS_802_11_BG_SCAN_QUERY *bgquery = &cmd->params.bgscanquery;
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_802_11_BG_SCAN_QUERY);
++ cmd->Size =
++ wlan_cpu_to_le16(sizeof(HostCmd_DS_802_11_BG_SCAN_QUERY) + S_DS_GEN);
++
++ bgquery->Flush = 1;
++
++ return WLAN_STATUS_SUCCESS;
++}
+diff --git a/drivers/net/wireless/marvell8686/wlan_scan.h b/drivers/net/wireless/marvell8686/wlan_scan.h
+new file mode 100644
+index 0000000..2274cd3
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_scan.h
+@@ -0,0 +1,284 @@
++/** @file wlan_scan.h
++ *
++ * @brief Interface for the wlan network scan routines
++ *
++ * Driver interface functions and type declarations for the scan module
++ * implemented in wlan_scan.c.
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2006
++ *
++ * @sa wlan_scan.c
++ */
++/*************************************************************
++Change Log:
++ 01/11/06: Initial revision. New scan code, relocate related functions
++
++************************************************************/
++
++#ifndef _WLAN_SCAN_H
++#define _WLAN_SCAN_H
++
++//! Infrastructure BSS scan type in wlan_scan_cmd_config
++#define WLAN_SCAN_BSS_TYPE_BSS 1
++
++//! Adhoc BSS scan type in wlan_scan_cmd_config
++#define WLAN_SCAN_BSS_TYPE_IBSS 2
++
++//! Adhoc or Infrastructure BSS scan type in wlan_scan_cmd_config, no filter
++#define WLAN_SCAN_BSS_TYPE_ANY 3
++
++/** @brief Maximum buffer space for beacons retrieved from scan responses
++ * 4000 has successfully stored up to 40 beacons
++ * 6000 has successfully stored the max scan results (max 64)
++ */
++#define MAX_SCAN_BEACON_BUFFER 6000
++
++/**
++ * @brief Buffer pad space for newly allocated beacons/probe responses
++ *
++ * Beacons are typically 6 bytes longer than an equivalent probe response.
++ * For each scan response stored, allocate an extra byte pad at the end to
++ * allow easy expansion to store a beacon in the same memory a probe reponse
++ * previously contained
++ */
++#define SCAN_BEACON_ENTRY_PAD 6
++
++//! Scan time specified in the channel TLV for each channel for passive scans
++#define MRVDRV_PASSIVE_SCAN_CHAN_TIME 100
++
++//! Scan time specified in the channel TLV for each channel for active scans
++#define MRVDRV_ACTIVE_SCAN_CHAN_TIME 100
++
++//! Scan time specified in the channel TLV for each channel for specific scans
++#define MRVDRV_SPECIFIC_SCAN_CHAN_TIME 100
++
++//! Max passive scan time for each channel in milliseconds
++#define MRVDRV_MAX_PASSIVE_SCAN_CHAN_TIME 2000
++
++//! Max active scan time for each channel in milliseconds
++#define MRVDRV_MAX_ACTIVE_SCAN_CHAN_TIME 500
++
++/**
++ * Max total scan time in milliseconds
++ * The total scan time should be less than scan command timeout value (10s)
++ */
++#define MRVDRV_MAX_TOTAL_SCAN_TIME (MRVDRV_TIMER_10S - MRVDRV_TIMER_1S)
++
++/**
++ * @brief Structure used internally in the wlan driver to configure a scan.
++ *
++ * Sent to the command processing module to configure the firmware
++ * scan command prepared by wlan_cmd_802_11_scan.
++ *
++ * @sa wlan_scan_networks
++ *
++ */
++typedef struct
++{
++ /**
++ * @brief BSS Type to be sent in the firmware command
++ *
++ * Field can be used to restrict the types of networks returned in the
++ * scan. Valid settings are:
++ *
++ * - WLAN_SCAN_BSS_TYPE_BSS (infrastructure)
++ * - WLAN_SCAN_BSS_TYPE_IBSS (adhoc)
++ * - WLAN_SCAN_BSS_TYPE_ANY (unrestricted, adhoc and infrastructure)
++ */
++ u8 bssType;
++
++ /**
++ * @brief Specific BSSID used to filter scan results in the firmware
++ */
++ u8 specificBSSID[MRVDRV_ETH_ADDR_LEN];
++
++ /**
++ * @brief Length of TLVs sent in command starting at tlvBuffer
++ */
++ int tlvBufferLen;
++
++ /**
++ * @brief SSID TLV(s) and ChanList TLVs to be sent in the firmware command
++ *
++ * @sa TLV_TYPE_CHANLIST, MrvlIEtypes_ChanListParamSet_t
++ * @sa TLV_TYPE_SSID, MrvlIEtypes_SsIdParamSet_t
++ */
++ u8 tlvBuffer[1]; //!< SSID TLV(s) and ChanList TLVs are stored here
++} wlan_scan_cmd_config;
++
++/**
++ * @brief Sub-structure passed in wlan_ioctl_get_scan_table_entry for each BSS
++ *
++ * Fixed field information returned for the scan response in the IOCTL
++ * response.
++ */
++typedef struct
++{
++ u8 bssid[6]; //!< BSSID of this network
++ u8 channel; //!< Channel this beacon/probe response was detected
++ u8 rssi; //!< RSSI for the received packet
++ u64 networkTSF; //!< TSF value from the firmware at packet reception
++} __ATTRIB_PACK__ wlan_ioctl_get_scan_table_fixed;
++
++/**
++ * @brief Structure passed in the wlan_ioctl_get_scan_table_info for each
++ * BSS returned in the WLAN_GET_SCAN_RESP IOCTL
++ *
++ * @sa wlan_get_scan_table_ioctl
++ */
++typedef struct
++{
++
++ /**
++ * @brief Fixed field length included in the response.
++ *
++ * Length value is included so future fixed fields can be added to the
++ * response without breaking backwards compatibility. Use the length
++ * to find the offset for the bssInfoLength field, not a sizeof() calc.
++ */
++ u32 fixedFieldLength;
++
++ /**
++ * @brief Always present, fixed length data fields for the BSS
++ */
++ wlan_ioctl_get_scan_table_fixed fixedFields;
++
++ /**
++ * @brief Length of the BSS Information (probe resp or beacon) that
++ * follows starting at bssInfoBuffer
++ */
++ u32 bssInfoLength;
++
++ /**
++ * @brief Probe response or beacon scanned for the BSS.
++ *
++ * Field layout:
++ * - TSF 8 octets
++ * - Beacon Interval 2 octets
++ * - Capability Info 2 octets
++ *
++ * - IEEE Infomation Elements; variable number & length per 802.11 spec
++ */
++ u8 bssInfoBuffer[1];
++} __ATTRIB_PACK__ wlan_ioctl_get_scan_table_entry;
++
++/**
++ * @brief WLAN_GET_SCAN_RESP private IOCTL struct to retrieve the scan table
++ *
++ * @sa wlan_get_scan_table_ioctl
++ */
++typedef struct
++{
++
++ /**
++ * - Zero based scan entry to start retrieval in command request
++ * - Number of scans entires returned in command response
++ */
++ u32 scanNumber;
++
++ /**
++ * Buffer marker for multiple wlan_ioctl_get_scan_table_entry structures.
++ * Each struct is padded to the nearest 32 bit boundary.
++ */
++ u8 scan_table_entry_buffer[1];
++
++} __ATTRIB_PACK__ wlan_ioctl_get_scan_table_info;
++
++/**
++ * @brief Structure used to store information for each beacon/probe response
++ */
++typedef struct
++{
++ WLAN_802_11_MAC_ADDRESS MacAddress;
++
++ WLAN_802_11_SSID Ssid;
++
++ /* WEP encryption requirement */
++ u32 Privacy;
++
++ /* receive signal strength in dBm */
++ WLAN_802_11_RSSI Rssi;
++
++ u32 Channel;
++
++ u16 BeaconPeriod;
++
++ u32 ATIMWindow;
++ u8 ERPFlags;
++
++ WLAN_802_11_NETWORK_TYPE NetworkTypeInUse;
++ WLAN_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode;
++ WLAN_802_11_RATES SupportedRates;
++ IEEEtypes_WmmParameter_t wmmIE;
++
++ int extra_ie;
++
++ u8 TimeStamp[8]; //!< TSF value included in the beacon/probe response
++
++ IEEEtypes_PhyParamSet_t PhyParamSet;
++ IEEEtypes_SsParamSet_t SsParamSet;
++ IEEEtypes_CapInfo_t Cap;
++
++ u8 DataRates[WLAN_SUPPORTED_RATES];
++
++ u64 networkTSF; //!< TSF timestamp from the current firmware TSF
++
++ IEEEtypes_CountryInfoFullSet_t CountryInfo;
++
++ IEEEtypes_VendorSpecific_t wpaIE;
++ IEEEtypes_Generic_t rsnIE;
++
++ IEEEtypes_VendorSpecific_t wpsIE;
++
++ u8 *pBeaconBuf; //!< Pointer to the returned scan response
++ uint beaconBufSize; //!< Length of the stored scan response
++ uint beaconBufSizeMax; //!< Max allocated size for updated scan response
++
++} BSSDescriptor_t;
++
++extern int SSIDcmp(WLAN_802_11_SSID * ssid1, WLAN_802_11_SSID * ssid2);
++extern int FindSSIDInList(wlan_adapter * Adapter, WLAN_802_11_SSID * ssid,
++ u8 * bssid, int mode);
++extern int FindBestSSIDInList(wlan_adapter * Adapter);
++extern int FindBSSIDInList(wlan_adapter * Adapter, u8 * bssid, int mode);
++
++extern int FindBestNetworkSsid(wlan_private * priv, WLAN_802_11_SSID * pSSID);
++
++extern int SendSpecificSSIDScan(wlan_private * priv,
++ WLAN_802_11_SSID * pRequestedSSID);
++extern int SendSpecificBSSIDScan(wlan_private * priv, u8 * bssid);
++
++extern int wlan_get_scan_table_ioctl(wlan_private * priv, struct iwreq *wrq);
++extern int wlan_set_user_scan_ioctl(wlan_private * priv, struct iwreq *wrq);
++
++extern int wlan_associate(wlan_private * priv, BSSDescriptor_t * pBSSDesc);
++
++extern int wlan_cmd_802_11_scan(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, void *pdata_buf);
++
++extern void wlan_scan_update_tsf_timestamps(wlan_private * priv,
++ BSSDescriptor_t * pNewBssDesc);
++
++extern int wlan_ret_802_11_scan(wlan_private * priv,
++ HostCmd_DS_COMMAND * resp);
++
++extern int wlan_extscan_ioctl(wlan_private * priv, struct ifreq *req);
++
++extern int sendBgScanQueryCmd(wlan_private * priv);
++extern int wlan_bg_scan_enable(wlan_private * priv, BOOLEAN enable);
++extern int wlan_do_bg_scan_config_ioctl(wlan_private * priv,
++ struct ifreq *req);
++extern int wlan_cmd_802_11_bg_scan_config(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd,
++ int cmd_action, void *pdata_buf);
++extern int wlan_cmd_802_11_bg_scan_query(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd);
++
++#ifdef __KERNEL__
++extern int wlan_get_scan(struct net_device *dev, struct iw_request_info *info,
++ struct iw_point *dwrq, char *extra);
++extern int wlan_set_scan(struct net_device *dev, struct iw_request_info *info,
++ struct iw_param *vwrq, char *extra);
++#endif
++
++#endif /* _WLAN_SCAN_H */
+diff --git a/drivers/net/wireless/marvell8686/wlan_thread.h b/drivers/net/wireless/marvell8686/wlan_thread.h
+new file mode 100644
+index 0000000..3d9c01c
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_thread.h
+@@ -0,0 +1,58 @@
++/*
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2006
++ */
++
++#ifndef __WLAN_THREAD_H_
++#define __WLAN_THREAD_H_
++
++#include <linux/kthread.h>
++
++typedef struct
++{
++ struct task_struct *task;
++ wait_queue_head_t waitQ;
++ pid_t pid;
++ void *priv;
++} wlan_thread;
++
++static inline void
++wlan_activate_thread(wlan_thread * thr)
++{
++ /** Record the thread pid */
++ thr->pid = current->pid;
++
++ /** Initialize the wait queue */
++ init_waitqueue_head(&thr->waitQ);
++}
++
++static inline void
++wlan_deactivate_thread(wlan_thread * thr)
++{
++ ENTER();
++
++ LEAVE();
++}
++
++static inline void
++wlan_create_thread(int (*wlanfunc) (void *), wlan_thread * thr, char *name)
++{
++ thr->task = kthread_run(wlanfunc, thr, "%s", name);
++}
++
++static inline int
++wlan_terminate_thread(wlan_thread * thr)
++{
++ ENTER();
++
++ /* Check if the thread is active or not */
++ if (!thr->pid) {
++ PRINTM(INFO, "Thread does not exist\n");
++ return -1;
++ }
++ kthread_stop(thr->task);
++
++ LEAVE();
++ return 0;
++}
++
++#endif
+diff --git a/drivers/net/wireless/marvell8686/wlan_tx.c b/drivers/net/wireless/marvell8686/wlan_tx.c
+new file mode 100644
+index 0000000..f04f6e1
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_tx.c
+@@ -0,0 +1,286 @@
++/** @file wlan_tx.c
++ * @brief This file contains the handling of TX in wlan
++ * driver.
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2006
++ */
++/********************************************************
++Change log:
++ 09/28/05: Add Doxygen format comments
++ 12/13/05: Add Proprietary periodic sleep support
++ 01/05/06: Add kernel 2.6.x support
++ 04/06/06: Add TSPEC, queue metrics, and MSDU expiry support
++********************************************************/
++
++#include "include.h"
++
++/********************************************************
++ Local Variables
++********************************************************/
++
++/********************************************************
++ Global Variables
++********************************************************/
++
++/********************************************************
++ Local Functions
++********************************************************/
++
++/**
++ * @brief This function processes a single packet and sends
++ * to IF layer
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param skb A pointer to skb which includes TX packet
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++static int
++SendSinglePacket(wlan_private * priv, struct sk_buff *skb)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++ TxPD LocalTxPD;
++ TxPD *pLocalTxPD = &LocalTxPD;
++ u8 *ptr = Adapter->TmpTxBuf;
++
++ ENTER();
++
++ if (!skb->len || (skb->len > MRVDRV_ETH_TX_PACKET_BUFFER_SIZE)) {
++ PRINTM(ERROR, "Tx Error: Bad skb length %d : %d\n",
++ skb->len, MRVDRV_ETH_TX_PACKET_BUFFER_SIZE);
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ memset(pLocalTxPD, 0, sizeof(TxPD));
++
++ pLocalTxPD->TxPacketLength = skb->len;
++
++ if (Adapter->wmm.enabled) {
++ /*
++ * original skb->priority has been overwritten
++ * by wmm_map_and_add_skb()
++ */
++ pLocalTxPD->Priority = (u8) skb->priority;
++
++ pLocalTxPD->PktDelay_2ms = wmm_compute_driver_packet_delay(skb);
++ }
++
++ if (pLocalTxPD->Priority < NELEMENTS(Adapter->wmm.userPriPktTxCtrl)) {
++ /*
++ * Set the priority specific TxControl field, setting of 0 will
++ * cause the default value to be used later in this function
++ */
++ pLocalTxPD->TxControl
++ = Adapter->wmm.userPriPktTxCtrl[pLocalTxPD->Priority];
++ }
++
++ if (Adapter->PSState != PS_STATE_FULL_POWER) {
++ if (TRUE == CheckLastPacketIndication(priv)) {
++ Adapter->TxLockFlag = TRUE;
++ pLocalTxPD->Flags = MRVDRV_TxPD_POWER_MGMT_LAST_PACKET;
++ }
++ }
++
++ /* offset of actual data */
++ pLocalTxPD->TxPacketLocation = sizeof(TxPD);
++
++ if (pLocalTxPD->TxControl == 0) {
++ /* TxCtrl set by user or default */
++ pLocalTxPD->TxControl = Adapter->PktTxCtrl;
++ }
++
++ endian_convert_TxPD(pLocalTxPD);
++
++ memcpy((u8 *) pLocalTxPD->TxDestAddr, skb->data, MRVDRV_ETH_ADDR_LEN);
++
++ ptr += SDIO_HEADER_LEN;
++ memcpy(ptr, pLocalTxPD, sizeof(TxPD));
++
++ ptr += sizeof(TxPD);
++
++ memcpy(ptr, skb->data, skb->len);
++
++ ret = sbi_host_to_card(priv, MVMS_DAT, Adapter->TmpTxBuf,
++ skb->len + sizeof(TxPD));
++ if (ret) {
++ PRINTM(ERROR,
++ "SendSinglePacket Error: sbi_host_to_card failed: 0x%X\n",
++ ret);
++ Adapter->dbg.num_tx_host_to_card_failure++;
++ goto done;
++ }
++
++ PRINTM(DATA, "Data => FW\n");
++ DBG_HEXDUMP(DAT_D, "Tx", ptr - sizeof(TxPD),
++ MIN(skb->len + sizeof(TxPD), MAX_DATA_DUMP_LEN));
++
++ wmm_process_fw_iface_tx_xfer_start(priv);
++
++ done:
++ if (!ret) {
++ priv->stats.tx_packets++;
++ priv->stats.tx_bytes += skb->len;
++ } else {
++ priv->stats.tx_dropped++;
++ priv->stats.tx_errors++;
++ }
++
++ /* need to be freed in all cases */
++ os_free_tx_packet(priv);
++
++ LEAVE();
++ return ret;
++}
++
++/********************************************************
++ Global functions
++********************************************************/
++
++/**
++ * @brief This function checks the conditions and sends packet to IF
++ * layer if everything is ok.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return n/a
++ */
++void
++wlan_process_tx(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ OS_INTERRUPT_SAVE_AREA;
++
++ if (priv->wlan_dev.dnld_sent) {
++ PRINTM(MSG, "TX Error: dnld_sent = %d, not sending\n",
++ priv->wlan_dev.dnld_sent);
++ goto done;
++ }
++
++ SendSinglePacket(priv, Adapter->CurrentTxSkb);
++ OS_INT_DISABLE;
++ priv->adapter->HisRegCpy &= ~HIS_TxDnLdRdy;
++ OS_INT_RESTORE;
++
++ done:
++ LEAVE();
++}
++
++/**
++ * @brief This function queues the packet received from
++ * kernel/upper layer and wake up the main thread to handle it.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param skb A pointer to skb which includes TX packet
++ * @return WLAN_STATUS_SUCCESS or WLAN_STATUS_FAILURE
++ */
++int
++wlan_tx_packet(wlan_private * priv, struct sk_buff *skb)
++{
++ ulong flags;
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ HEXDUMP("TX Data", skb->data, MIN(skb->len, 100));
++
++ spin_lock_irqsave(&Adapter->CurrentTxLock, flags);
++
++ wmm_map_and_add_skb(priv, skb);
++ wake_up_interruptible(&priv->MainThread.waitQ);
++ spin_unlock_irqrestore(&Adapter->CurrentTxLock, flags);
++
++ LEAVE();
++
++ return ret;
++}
++
++/**
++ * @brief This function tells firmware to send a NULL data packet.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param flags Trasnit Pkt Flags
++ * @return n/a
++ */
++int
++SendNullPacket(wlan_private * priv, u8 flags)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ TxPD txpd = { 0 };
++ int ret = WLAN_STATUS_SUCCESS;
++ u8 *ptr = Adapter->TmpTxBuf;
++
++ ENTER();
++
++ if (Adapter->SurpriseRemoved == TRUE) {
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ if (Adapter->MediaConnectStatus == WlanMediaStateDisconnected) {
++ ret = WLAN_STATUS_FAILURE;
++ goto done;
++ }
++
++ memset(&txpd, 0, sizeof(TxPD));
++
++ txpd.TxControl = Adapter->PktTxCtrl;
++ txpd.Flags = flags;
++ txpd.Priority = WMM_HIGHEST_PRIORITY;
++ txpd.TxPacketLocation = sizeof(TxPD);
++
++ endian_convert_TxPD(&txpd);
++
++ ptr += SDIO_HEADER_LEN;
++ memcpy(ptr, &txpd, sizeof(TxPD));
++
++ ret = sbi_host_to_card(priv, MVMS_DAT, Adapter->TmpTxBuf, sizeof(TxPD));
++
++ if (ret != 0) {
++ PRINTM(ERROR, "TX Error: SendNullPacket failed!\n");
++ Adapter->dbg.num_tx_host_to_card_failure++;
++ goto done;
++ }
++ PRINTM(DATA, "Null data => FW\n");
++ DBG_HEXDUMP(DAT_D, "Tx", ptr, sizeof(TxPD));
++
++ done:
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief This function check if we need send last packet indication.
++ *
++ * @param priv A pointer to wlan_private structure
++ *
++ * @return TRUE or FALSE
++ */
++BOOLEAN
++CheckLastPacketIndication(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ BOOLEAN ret = FALSE;
++ BOOLEAN prop_ps = TRUE;
++
++ ENTER();
++
++ if (Adapter->sleep_period.period == 0 || Adapter->gen_null_pkg == FALSE /* for UPSD certification tests */
++ ) {
++ LEAVE();
++ return ret;
++ }
++
++ if (wmm_lists_empty(priv)) {
++ if (((Adapter->CurBssParams.wmm_uapsd_enabled == TRUE)
++ && (Adapter->wmm.qosinfo != 0)) || prop_ps) {
++ ret = TRUE;
++ }
++ }
++
++ LEAVE();
++ return ret;
++}
+diff --git a/drivers/net/wireless/marvell8686/wlan_types.h b/drivers/net/wireless/marvell8686/wlan_types.h
+new file mode 100644
+index 0000000..76e4f25
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_types.h
+@@ -0,0 +1,1050 @@
++/** @file wlan_types.h
++ * @brief This header file contains definition for global types
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2007
++ */
++/*************************************************************
++Change log:
++ 10/11/05: add Doxygen format comments
++ 01/11/06: Add IEEE Association response type. Add TSF TLV information.
++ 01/31/06: Add support to selectively enabe the FW Scan channel filter
++ 04/10/06: Add power_adapt_cfg_ext command
++ 04/18/06: Remove old Subscrive Event and add new Subscribe Event
++ implementation through generic hostcmd API
++ 05/03/06: Add auto_tx hostcmd
++ 08/28/06: Add LED_CTRL hostcmd
++************************************************************/
++
++#ifndef _WLAN_TYPES_
++#define _WLAN_TYPES_
++
++#ifndef __KERNEL__
++typedef char s8;
++typedef unsigned char u8;
++
++typedef signed short s16;
++typedef unsigned short u16;
++
++typedef signed long s32;
++typedef unsigned long u32;
++
++typedef signed long long s64;
++typedef unsigned long long u64;
++
++typedef u32 dma_addr_t;
++typedef u32 dma64_addr_t;
++/* Dma addresses are 32-bits wide. */
++#ifndef __ATTRIB_ALIGN__
++#define __ATTRIB_ALIGN__ __attribute__((aligned(4)))
++#endif
++
++#ifndef __ATTRIB_PACK__
++#define __ATTRIB_PACK__ __attribute__ ((packed))
++#endif
++#endif
++
++typedef long LONG;
++typedef unsigned long long ULONGLONG;
++typedef u32 WLAN_OID;
++
++#define MRVDRV_MAX_MULTICAST_LIST_SIZE 32
++#define MRVDRV_MAX_CHANNEL_SIZE 14
++#define MRVDRV_ETH_ADDR_LEN 6
++#define MRVDRV_MAX_SSID_LENGTH 32
++#define MRVDRV_MAX_BSS_DESCRIPTS 16
++/** WEP list macros & data structures */
++#define MRVL_KEY_BUFFER_SIZE_IN_BYTE 16
++#define MRVL_MAX_KEY_WPA_KEY_LENGTH 32
++
++#define HOSTCMD_SUPPORTED_RATES G_SUPPORTED_RATES
++
++#define BAND_B (0x01)
++#define BAND_G (0x02)
++#define ALL_802_11_BANDS (BAND_B | BAND_G)
++
++#define B_SUPPORTED_RATES 8
++#define G_SUPPORTED_RATES 14
++
++#define WLAN_SUPPORTED_RATES 14
++#define WLAN_MAX_SSID_LENGTH 32
++
++#define MAX_POWER_ADAPT_GROUP 5
++
++#define MRVDRV_MAX_SSID_LIST_LENGTH 10
++
++typedef u8 WLAN_802_11_RATES[WLAN_SUPPORTED_RATES];
++typedef u8 WLAN_802_11_MAC_ADDRESS[ETH_ALEN];
++
++/** WLAN_802_11_NETWORK_TYPE */
++typedef enum _WLAN_802_11_NETWORK_TYPE
++{
++ Wlan802_11FH,
++ Wlan802_11DS,
++ /*defined as upper bound */
++ Wlan802_11NetworkTypeMax
++} WLAN_802_11_NETWORK_TYPE, *PWLAN_802_11_NETWORK_TYPE;
++
++/** WLAN_802_11_NETWORK_INFRASTRUCTURE */
++typedef enum _WLAN_802_11_NETWORK_INFRASTRUCTURE
++{
++ Wlan802_11IBSS,
++ Wlan802_11Infrastructure,
++ Wlan802_11AutoUnknown,
++ /*defined as upper bound */
++ Wlan802_11InfrastructureMax
++} WLAN_802_11_NETWORK_INFRASTRUCTURE, *PWLAN_802_11_NETWORK_INFRASTRUCTURE;
++
++#define IEEE_MAX_IE_SIZE 256
++
++/** IEEE Type definitions */
++typedef enum _IEEEtypes_ElementId_e
++{
++ SSID = 0,
++ SUPPORTED_RATES = 1,
++ FH_PARAM_SET = 2,
++ DS_PARAM_SET = 3,
++ CF_PARAM_SET = 4,
++
++ IBSS_PARAM_SET = 6,
++
++ COUNTRY_INFO = 7,
++
++ ERP_INFO = 42,
++ EXTENDED_SUPPORTED_RATES = 50,
++
++ VENDOR_SPECIFIC_221 = 221,
++ WMM_IE = VENDOR_SPECIFIC_221,
++
++ WPS_IE = VENDOR_SPECIFIC_221,
++
++ WPA_IE = VENDOR_SPECIFIC_221,
++ RSN_IE = 48,
++
++ EXTRA_IE = 133,
++} __ATTRIB_PACK__ IEEEtypes_ElementId_e;
++
++#define CAPINFO_MASK (~( W_BIT_15 | W_BIT_14 | \
++ W_BIT_12 | W_BIT_11 | W_BIT_9) )
++
++typedef struct _IEEEtypes_CapInfo_t
++{
++ u8 Ess:1;
++ u8 Ibss:1;
++ u8 CfPollable:1;
++ u8 CfPollRqst:1;
++ u8 Privacy:1;
++ u8 ShortPreamble:1;
++ u8 Pbcc:1;
++ u8 ChanAgility:1;
++ u8 SpectrumMgmt:1;
++ u8 Rsrvd3:1;
++ u8 ShortSlotTime:1;
++ u8 Apsd:1;
++ u8 Rsvrd2:1;
++ u8 DSSSOFDM:1;
++ u8 Rsrvd1:2;
++} __ATTRIB_PACK__ IEEEtypes_CapInfo_t;
++
++typedef struct
++{
++ u8 ElementId;
++ u8 Len;
++} __ATTRIB_PACK__ IEEEtypes_Header_t;
++
++/** IEEEtypes_CfParamSet_t */
++typedef struct _IEEEtypes_CfParamSet_t
++{
++ u8 ElementId;
++ u8 Len;
++ u8 CfpCnt;
++ u8 CfpPeriod;
++ u16 CfpMaxDuration;
++ u16 CfpDurationRemaining;
++} __ATTRIB_PACK__ IEEEtypes_CfParamSet_t;
++
++typedef struct IEEEtypes_IbssParamSet_t
++{
++ u8 ElementId;
++ u8 Len;
++ u16 AtimWindow;
++} __ATTRIB_PACK__ IEEEtypes_IbssParamSet_t;
++
++/** IEEEtypes_SsParamSet_t */
++typedef union _IEEEtypes_SsParamSet_t
++{
++ IEEEtypes_CfParamSet_t CfParamSet;
++ IEEEtypes_IbssParamSet_t IbssParamSet;
++} __ATTRIB_PACK__ IEEEtypes_SsParamSet_t;
++
++/** IEEEtypes_FhParamSet_t */
++typedef struct _IEEEtypes_FhParamSet_t
++{
++ u8 ElementId;
++ u8 Len;
++ u16 DwellTime;
++ u8 HopSet;
++ u8 HopPattern;
++ u8 HopIndex;
++} __ATTRIB_PACK__ IEEEtypes_FhParamSet_t;
++
++typedef struct _IEEEtypes_DsParamSet_t
++{
++ u8 ElementId;
++ u8 Len;
++ u8 CurrentChan;
++} __ATTRIB_PACK__ IEEEtypes_DsParamSet_t;
++
++/** IEEEtypes_DsParamSet_t */
++typedef union IEEEtypes_PhyParamSet_t
++{
++ IEEEtypes_FhParamSet_t FhParamSet;
++ IEEEtypes_DsParamSet_t DsParamSet;
++} __ATTRIB_PACK__ IEEEtypes_PhyParamSet_t;
++
++typedef struct _IEEEtypes_ERPInfo_t
++{
++ u8 ElementId;
++ u8 Len;
++ u8 ERPFlags;
++} __ATTRIB_PACK__ IEEEtypes_ERPInfo_t;
++
++typedef u16 IEEEtypes_AId_t;
++typedef u16 IEEEtypes_StatusCode_t;
++
++typedef struct
++{
++ IEEEtypes_CapInfo_t Capability;
++ IEEEtypes_StatusCode_t StatusCode;
++ IEEEtypes_AId_t AId;
++ u8 IEBuffer[1];
++} __ATTRIB_PACK__ IEEEtypes_AssocRsp_t;
++
++typedef struct
++{
++ u8 ElementId;
++ u8 Len;
++ u8 Oui[3];
++ u8 OuiType;
++ u8 OuiSubtype;
++ u8 Version;
++} __ATTRIB_PACK__ IEEEtypes_VendorHeader_t;
++
++typedef struct
++{
++ IEEEtypes_VendorHeader_t VendHdr;
++
++ /* IE Max - size of previous fields */
++ u8 Data[IEEE_MAX_IE_SIZE - sizeof(IEEEtypes_VendorHeader_t)];
++
++}
++__ATTRIB_PACK__ IEEEtypes_VendorSpecific_t;
++
++typedef struct
++{
++ IEEEtypes_Header_t IeeeHdr;
++
++ /* IE Max - size of previous fields */
++ u8 Data[IEEE_MAX_IE_SIZE - sizeof(IEEEtypes_Header_t)];
++
++}
++__ATTRIB_PACK__ IEEEtypes_Generic_t;
++
++/** TLV type ID definition */
++#define PROPRIETARY_TLV_BASE_ID 0x0100
++
++/* Terminating TLV Type */
++#define MRVL_TERMINATE_TLV_ID 0xffff
++
++#define TLV_TYPE_SSID 0x0000
++#define TLV_TYPE_RATES 0x0001
++#define TLV_TYPE_PHY_FH 0x0002
++#define TLV_TYPE_PHY_DS 0x0003
++#define TLV_TYPE_CF 0x0004
++#define TLV_TYPE_IBSS 0x0006
++
++#define TLV_TYPE_DOMAIN 0x0007
++
++#define TLV_TYPE_POWER_CAPABILITY 0x0021
++
++#define TLV_TYPE_KEY_MATERIAL (PROPRIETARY_TLV_BASE_ID + 0)
++#define TLV_TYPE_CHANLIST (PROPRIETARY_TLV_BASE_ID + 1)
++#define TLV_TYPE_NUMPROBES (PROPRIETARY_TLV_BASE_ID + 2)
++#define TLV_TYPE_RSSI_LOW (PROPRIETARY_TLV_BASE_ID + 4)
++#define TLV_TYPE_SNR_LOW (PROPRIETARY_TLV_BASE_ID + 5)
++#define TLV_TYPE_FAILCOUNT (PROPRIETARY_TLV_BASE_ID + 6)
++#define TLV_TYPE_BCNMISS (PROPRIETARY_TLV_BASE_ID + 7)
++#define TLV_TYPE_LED_GPIO (PROPRIETARY_TLV_BASE_ID + 8)
++#define TLV_TYPE_LEDBEHAVIOR (PROPRIETARY_TLV_BASE_ID + 9)
++#define TLV_TYPE_PASSTHROUGH (PROPRIETARY_TLV_BASE_ID + 10)
++#define TLV_TYPE_POWER_TBL_2_4GHZ (PROPRIETARY_TLV_BASE_ID + 12)
++#define TLV_TYPE_POWER_TBL_5GHZ (PROPRIETARY_TLV_BASE_ID + 13)
++#define TLV_TYPE_WMMQSTATUS (PROPRIETARY_TLV_BASE_ID + 16)
++#define TLV_TYPE_WILDCARDSSID (PROPRIETARY_TLV_BASE_ID + 18)
++#define TLV_TYPE_TSFTIMESTAMP (PROPRIETARY_TLV_BASE_ID + 19)
++#define TLV_TYPE_POWERADAPTCFGEXT (PROPRIETARY_TLV_BASE_ID + 20)
++#define TLV_TYPE_RSSI_HIGH (PROPRIETARY_TLV_BASE_ID + 22)
++#define TLV_TYPE_SNR_HIGH (PROPRIETARY_TLV_BASE_ID + 23)
++#define TLV_TYPE_AUTO_TX (PROPRIETARY_TLV_BASE_ID + 24)
++#define TLV_TYPE_WPS_ENROLLEE_PROBE_REQ_TLV (PROPRIETARY_TLV_BASE_ID + 27)
++#define TLV_TYPE_STARTBGSCANLATER (PROPRIETARY_TLV_BASE_ID + 30)
++#define TLV_TYPE_AUTH_TYPE (PROPRIETARY_TLV_BASE_ID + 31)
++#define TLV_TYPE_PRE_BEACON_LOST (PROPRIETARY_TLV_BASE_ID + 73)
++
++/** TLV related data structures*/
++/** MrvlIEtypesHeader_t */
++typedef struct _MrvlIEtypesHeader
++{
++ u16 Type;
++ u16 Len;
++} __ATTRIB_PACK__ MrvlIEtypesHeader_t;
++
++/** MrvlIEtypes_Data_t */
++typedef struct _MrvlIEtypes_Data_t
++{
++ MrvlIEtypesHeader_t Header;
++ u8 Data[1];
++} __ATTRIB_PACK__ MrvlIEtypes_Data_t;
++
++/** MrvlIEtypes_RatesParamSet_t */
++typedef struct _MrvlIEtypes_RatesParamSet_t
++{
++ MrvlIEtypesHeader_t Header;
++ u8 Rates[1];
++} __ATTRIB_PACK__ MrvlIEtypes_RatesParamSet_t;
++
++/** MrvlIEtypes_SsIdParamSet_t */
++typedef struct _MrvlIEtypes_SsIdParamSet_t
++{
++ MrvlIEtypesHeader_t Header;
++ u8 SsId[1];
++} __ATTRIB_PACK__ MrvlIEtypes_SsIdParamSet_t;
++
++/** MrvlIEtypes_WildCardSsIdParamSet_t */
++typedef struct _MrvlIEtypes_WildCardSsIdParamSet_t
++{
++ MrvlIEtypesHeader_t Header;
++ u8 MaxSsidLength;
++ u8 SsId[1];
++} __ATTRIB_PACK__ MrvlIEtypes_WildCardSsIdParamSet_t;
++
++/** ChanScanMode_t */
++typedef struct
++{
++ u8 PassiveScan:1;
++ u8 DisableChanFilt:1;
++ u8 Reserved_2_7:6;
++} __ATTRIB_PACK__ ChanScanMode_t;
++
++/** ChanScanParamSet_t */
++typedef struct _ChanScanParamSet_t
++{
++ u8 RadioType;
++ u8 ChanNumber;
++ ChanScanMode_t ChanScanMode;
++ u16 MinScanTime;
++ u16 MaxScanTime;
++} __ATTRIB_PACK__ ChanScanParamSet_t;
++
++/** MrvlIEtypes_ChanListParamSet_t */
++typedef struct _MrvlIEtypes_ChanListParamSet_t
++{
++ MrvlIEtypesHeader_t Header;
++ ChanScanParamSet_t ChanScanParam[1];
++} __ATTRIB_PACK__ MrvlIEtypes_ChanListParamSet_t;
++
++/** CfParamSet_t */
++typedef struct _CfParamSet_t
++{
++ u8 CfpCnt;
++ u8 CfpPeriod;
++ u16 CfpMaxDuration;
++ u16 CfpDurationRemaining;
++} __ATTRIB_PACK__ CfParamSet_t;
++
++/** IbssParamSet_t */
++typedef struct _IbssParamSet_t
++{
++ u16 AtimWindow;
++} __ATTRIB_PACK__ IbssParamSet_t;
++
++/** MrvlIEtypes_SsParamSet_t */
++typedef struct _MrvlIEtypes_SsParamSet_t
++{
++ MrvlIEtypesHeader_t Header;
++ union
++ {
++ CfParamSet_t CfParamSet[1];
++ IbssParamSet_t IbssParamSet[1];
++ } cf_ibss;
++} __ATTRIB_PACK__ MrvlIEtypes_SsParamSet_t;
++
++/** FhParamSet_t */
++typedef struct _FhParamSet_t
++{
++ u16 DwellTime;
++ u8 HopSet;
++ u8 HopPattern;
++ u8 HopIndex;
++} __ATTRIB_PACK__ FhParamSet_t;
++
++/** DsParamSet_t */
++typedef struct _DsParamSet_t
++{
++ u8 CurrentChan;
++} __ATTRIB_PACK__ DsParamSet_t;
++
++/** MrvlIEtypes_PhyParamSet_t */
++typedef struct _MrvlIEtypes_PhyParamSet_t
++{
++ MrvlIEtypesHeader_t Header;
++ union
++ {
++ FhParamSet_t FhParamSet[1];
++ DsParamSet_t DsParamSet[1];
++ } fh_ds;
++} __ATTRIB_PACK__ MrvlIEtypes_PhyParamSet_t;
++
++/** MrvlIEtypes_RsnParamSet_t */
++typedef struct _MrvlIEtypes_RsnParamSet_t
++{
++ MrvlIEtypesHeader_t Header;
++ u8 RsnIE[1];
++} __ATTRIB_PACK__ MrvlIEtypes_RsnParamSet_t;
++
++/** MrvlIEtypes_WmmParamSet_t */
++typedef struct _MrvlIEtypes_WmmParamSet_t
++{
++ MrvlIEtypesHeader_t Header;
++ u8 WmmIE[1];
++} __ATTRIB_PACK__ MrvlIEtypes_WmmParamSet_t;
++
++typedef struct
++{
++ MrvlIEtypesHeader_t Header;
++ u8 QueueIndex;
++ u8 Disabled;
++ u8 Reserved1;
++ u8 Reserved2;
++ u8 FlowRequired;
++ u8 FlowCreated;
++ u32 Reserved3;
++} __ATTRIB_PACK__ MrvlIEtypes_WmmQueueStatus_t;
++
++/** Table of TSF values returned in the scan result */
++typedef struct
++{
++ MrvlIEtypesHeader_t Header;
++ u64 tsfTable[1];
++} __ATTRIB_PACK__ MrvlIEtypes_TsfTimestamp_t;
++
++/** Local Power Capability */
++typedef struct _MrvlIEtypes_PowerCapability_t
++{
++ MrvlIEtypesHeader_t Header;
++ s8 MinPower;
++ s8 MaxPower;
++} __ATTRIB_PACK__ MrvlIEtypes_PowerCapability_t;
++
++/** MrvlIEtypes_RssiParamSet_t */
++typedef struct _MrvlIEtypes_RssiThreshold_t
++{
++ MrvlIEtypesHeader_t Header;
++ u8 RSSIValue;
++ u8 RSSIFreq;
++} __ATTRIB_PACK__ MrvlIEtypes_RssiThreshold_t;
++
++/** MrvlIEtypes_SnrThreshold_t */
++typedef struct _MrvlIEtypes_SnrThreshold_t
++{
++ MrvlIEtypesHeader_t Header;
++ u8 SNRValue;
++ u8 SNRFreq;
++} __ATTRIB_PACK__ MrvlIEtypes_SnrThreshold_t;
++
++/** MrvlIEtypes_PreBeaconLost_t */
++typedef struct _MrvlIEtypes_PreBeaconLost_t
++{
++ MrvlIEtypesHeader_t Header;
++ u8 PreBeaconLost;
++ u8 Reserved;
++} __ATTRIB_PACK__ MrvlIEtypes_PreBeaconLost_t;
++
++/** MrvlIEtypes_FailureCount_t */
++typedef struct _MrvlIEtypes_FailureCount_t
++{
++ MrvlIEtypesHeader_t Header;
++ u8 FailValue;
++ u8 FailFreq;
++} __ATTRIB_PACK__ MrvlIEtypes_FailureCount_t;
++
++/** MrvlIEtypes_BeaconsMissed_t */
++typedef struct _MrvlIEtypes_BeaconsMissed_t
++{
++ MrvlIEtypesHeader_t Header;
++ u8 BeaconMissed;
++ u8 Reserved;
++} __ATTRIB_PACK__ MrvlIEtypes_BeaconsMissed_t;
++
++/** MrvlIEtypes_NumProbes_t */
++typedef struct _MrvlIEtypes_NumProbes_t
++{
++ MrvlIEtypesHeader_t Header;
++ u16 NumProbes;
++} __ATTRIB_PACK__ MrvlIEtypes_NumProbes_t;
++
++/** MrvlIEtypes_StartBGScanLater_t */
++typedef struct _MrvlIEtypes_StartBGScanLater_t
++{
++ MrvlIEtypesHeader_t Header;
++ u16 StartLater;
++} __ATTRIB_PACK__ MrvlIEtypes_StartBGScanLater_t;
++
++typedef struct _LedGpio_t
++{
++ u8 LedNum; /* LED # mapped to GPIO pin # below */
++ u8 GpioNum; /* GPIO pin # used to control LED # above */
++} __ATTRIB_PACK__ LedGpio_t;
++
++/** MrvlIEtypes_LedGpio_t */
++typedef struct _MrvlIEtypes_LedGpio_t
++{
++ MrvlIEtypesHeader_t Header;
++ LedGpio_t LedGpio[1];
++} __ATTRIB_PACK__ MrvlIEtypes_LedGpio_t;
++
++/** MrvlIEtypes_LedBehavior_t */
++typedef struct _MrvlIEtypes_LedBehavior_t
++{
++ MrvlIEtypesHeader_t Header;
++ u8 FirmwareState; /* Firmware State */
++ u8 LedNum; /* LED # */
++ u8 LedState; /* LED State corresponding to Firmware State */
++ u8 LedArgs; /* Arguments for LED State */
++} __ATTRIB_PACK__ MrvlIEtypes_LedBehavior_t;
++
++typedef struct _PA_Group_t
++{
++ u16 PowerAdaptLevel;
++ u16 RateBitmap;
++ u32 Reserved;
++} __ATTRIB_PACK__ PA_Group_t;
++
++/** MrvlIEtypes_PA_Group_t */
++typedef struct _MrvlIEtypes_PowerAdapt_Group_t
++{
++ MrvlIEtypesHeader_t Header;
++ PA_Group_t PA_Group[MAX_POWER_ADAPT_GROUP];
++} __ATTRIB_PACK__ MrvlIEtypes_PowerAdapt_Group_t;
++
++typedef struct _AutoTx_MacFrame_t
++{
++ u16 Interval; /* in seconds */
++ u8 Priority; /* User Priority: 0~7, ignored if non-WMM */
++ u8 Reserved; /* set to 0 */
++ u16 FrameLen; /* Length of MAC frame payload */
++ u8 DestMacAddr[ETH_ALEN];
++ u8 SrcMacAddr[ETH_ALEN];
++ u8 Payload[];
++} __ATTRIB_PACK__ AutoTx_MacFrame_t;
++
++/** MrvlIEtypes_AutoTx_t */
++typedef struct _MrvlIEtypes_AutoTx_t
++{
++ MrvlIEtypesHeader_t Header;
++ AutoTx_MacFrame_t AutoTx_MacFrame;
++} __ATTRIB_PACK__ MrvlIEtypes_AutoTx_t;
++
++typedef struct
++{
++ u8 value;
++ u8 Freq;
++} Threshold;
++
++typedef struct
++{
++ u16 EventsBitmap; /* bit 0: RSSI low, bit 1: SNR low,
++ * bit 2: RSSI high, bit 3: SNR high
++ */
++ Threshold Rssi_low;
++ Threshold Snr_low;
++ Threshold Rssi_high;
++ Threshold Snr_high;
++ u8 Rssi_low_count;
++ u8 Snr_low_count;
++ u8 Rssi_high_count;
++ u8 Snr_high_count;
++} wlan_subscribe_event;
++
++/** Auth type to be used in the Authentication portion of an Assoc seq */
++typedef struct
++{
++ MrvlIEtypesHeader_t Header;
++ u16 AuthType;
++} __ATTRIB_PACK__ MrvlIEtypes_AuthType_t;
++
++#define MRVDRV_MAX_SUBBAND_802_11D 83
++#define COUNTRY_CODE_LEN 3
++
++/** Data structure for Country IE*/
++typedef struct _IEEEtypes_SubbandSet
++{
++ u8 FirstChan;
++ u8 NoOfChan;
++ u8 MaxTxPwr;
++} __ATTRIB_PACK__ IEEEtypes_SubbandSet_t;
++
++typedef struct _IEEEtypes_CountryInfoSet
++{
++ u8 ElementId;
++ u8 Len;
++ u8 CountryCode[COUNTRY_CODE_LEN];
++ IEEEtypes_SubbandSet_t Subband[1];
++} __ATTRIB_PACK__ IEEEtypes_CountryInfoSet_t;
++
++typedef struct _IEEEtypes_CountryInfoFullSet
++{
++ u8 ElementId;
++ u8 Len;
++ u8 CountryCode[COUNTRY_CODE_LEN];
++ IEEEtypes_SubbandSet_t Subband[MRVDRV_MAX_SUBBAND_802_11D];
++} __ATTRIB_PACK__ IEEEtypes_CountryInfoFullSet_t;
++
++typedef struct _MrvlIEtypes_DomainParamSet
++{
++ MrvlIEtypesHeader_t Header;
++ u8 CountryCode[COUNTRY_CODE_LEN];
++ IEEEtypes_SubbandSet_t Subband[1];
++} __ATTRIB_PACK__ MrvlIEtypes_DomainParamSet_t;
++
++/** Size of a TSPEC. Used to allocate necessary buffer space in commands */
++#define WMM_TSPEC_SIZE 63
++
++/** Extra IE bytes allocated in messages for appended IEs after a TSPEC */
++#define WMM_ADDTS_EXTRA_IE_BYTES 256
++
++/** Extra TLV bytes allocated in messages for configuring WMM Queues */
++#define WMM_QUEUE_CONFIG_EXTRA_TLV_BYTES 64
++/** Maximum number of AC QOS queues available in the driver/firmware */
++#define MAX_AC_QUEUES 4
++
++/** enum of WMM AC_QUEUES */
++typedef enum
++{
++ WMM_AC_BK,
++ WMM_AC_BE,
++ WMM_AC_VI,
++ WMM_AC_VO,
++} __ATTRIB_PACK__ wlan_wmm_ac_e;
++
++/** data structure of WMM QoS information */
++typedef struct
++{
++ u8 ParaSetCount:4;
++ u8 Reserved:3;
++ u8 QosUAPSD:1;
++} __ATTRIB_PACK__ IEEEtypes_WmmQosInfo_t;
++
++typedef struct
++{
++ u8 Aifsn:4;
++ u8 Acm:1;
++ u8 Aci:2;
++ u8 Reserved:1;
++} __ATTRIB_PACK__ IEEEtypes_WmmAciAifsn_t;
++
++/** data structure of WMM ECW */
++typedef struct
++{
++ u8 EcwMin:4;
++ u8 EcwMax:4;
++} __ATTRIB_PACK__ IEEEtypes_WmmEcw_t;
++
++/** data structure of WMM AC parameters */
++typedef struct
++{
++ IEEEtypes_WmmAciAifsn_t AciAifsn;
++ IEEEtypes_WmmEcw_t Ecw;
++ u16 TxopLimit;
++} __ATTRIB_PACK__ IEEEtypes_WmmAcParameters_t;
++
++/** data structure of WMM Info IE */
++typedef struct
++{
++
++ /**
++ * WMM Info IE - Vendor Specific Header:
++ * ElementId [221/0xdd]
++ * Len [7]
++ * Oui [00:50:f2]
++ * OuiType [2]
++ * OuiSubType [0]
++ * Version [1]
++ */
++ IEEEtypes_VendorHeader_t VendHdr;
++
++ IEEEtypes_WmmQosInfo_t QoSInfo;
++
++} __ATTRIB_PACK__ IEEEtypes_WmmInfo_t;
++
++/** data structure of WMM parameter IE */
++typedef struct
++{
++ /**
++ * WMM Parameter IE - Vendor Specific Header:
++ * ElementId [221/0xdd]
++ * Len [24]
++ * Oui [00:50:f2]
++ * OuiType [2]
++ * OuiSubType [1]
++ * Version [1]
++ */
++ IEEEtypes_VendorHeader_t VendHdr;
++
++ IEEEtypes_WmmQosInfo_t QoSInfo;
++ u8 Reserved;
++
++ /** AC Parameters Record WMM_AC_BE, WMM_AC_BK, WMM_AC_VI, WMM_AC_VO */
++ IEEEtypes_WmmAcParameters_t AcParams[MAX_AC_QUEUES];
++
++} __ATTRIB_PACK__ IEEEtypes_WmmParameter_t;
++
++/**
++ * @brief Firmware command structure to retrieve the firmware WMM status.
++ *
++ * Used to retrieve the status of each WMM AC Queue in TLV
++ * format (MrvlIEtypes_WmmQueueStatus_t) as well as the current WMM
++ * parameter IE advertised by the AP.
++ *
++ * Used in response to a MACREG_INT_CODE_WMM_STATUS_CHANGE event signalling
++ * a QOS change on one of the ACs or a change in the WMM Parameter in
++ * the Beacon.
++ *
++ * TLV based command, byte arrays used for max sizing purpose. There are no
++ * arguments sent in the command, the TLVs are returned by the firmware.
++ */
++typedef struct
++{
++ u8 queueStatusTlv[sizeof(MrvlIEtypes_WmmQueueStatus_t) * MAX_AC_QUEUES];
++ u8 wmmParamTlv[sizeof(IEEEtypes_WmmParameter_t) + 2];
++
++}
++__ATTRIB_PACK__ HostCmd_DS_WMM_GET_STATUS;
++
++/**
++ * @brief Enumeration for the command result from an ADDTS or DELTS command
++ */
++typedef enum
++{
++ TSPEC_RESULT_SUCCESS = 0,
++ TSPEC_RESULT_EXEC_FAILURE = 1,
++ TSPEC_RESULT_TIMEOUT = 2,
++ TSPEC_RESULT_DATA_INVALID = 3,
++
++} __ATTRIB_PACK__ wlan_wmm_tspec_result_e;
++
++/**
++ * @brief IOCTL structure to send an ADDTS request and retrieve the response.
++ *
++ * IOCTL structure from the application layer relayed to firmware to
++ * instigate an ADDTS management frame with an appropriate TSPEC IE as well
++ * as any additional IEs appended in the ADDTS Action frame.
++ *
++ * @sa wlan_wmm_addts_req_ioctl
++ */
++typedef struct
++{
++ wlan_wmm_tspec_result_e commandResult;
++ u32 timeout_ms;
++
++ u8 ieeeStatusCode;
++
++ u8 tspecData[WMM_TSPEC_SIZE];
++
++ u8 addtsExtraIEBuf[WMM_ADDTS_EXTRA_IE_BYTES];
++
++} __ATTRIB_PACK__ wlan_ioctl_wmm_addts_req_t;
++
++/**
++ * @brief IOCTL structure to send a DELTS request.
++ *
++ * IOCTL structure from the application layer relayed to firmware to
++ * instigate an DELTS management frame with an appropriate TSPEC IE.
++ *
++ * @sa wlan_wmm_delts_req_ioctl
++ */
++typedef struct
++{
++ wlan_wmm_tspec_result_e commandResult; //!< Firmware execution result
++
++ u8 ieeeReasonCode; //!< IEEE reason code sent, unused for WMM
++
++ u8 tspecData[WMM_TSPEC_SIZE]; //!< TSPEC to send in the DELTS
++
++} __ATTRIB_PACK__ wlan_ioctl_wmm_delts_req_t;
++
++/**
++ * @brief Internal command structure used in executing an ADDTS command.
++ *
++ * Relay information between the IOCTL layer and the firmware command and
++ * command response procedures.
++ *
++ * @sa wlan_wmm_addts_req_ioctl
++ * @sa wlan_cmd_wmm_addts_req
++ * @sa wlan_cmdresp_wmm_addts_req
++ */
++typedef struct
++{
++ wlan_wmm_tspec_result_e commandResult;
++ u32 timeout_ms;
++
++ u8 dialogToken;
++ u8 ieeeStatusCode;
++
++ int tspecDataLen;
++ u8 tspecData[WMM_TSPEC_SIZE];
++ u8 addtsExtraIEBuf[WMM_ADDTS_EXTRA_IE_BYTES];
++
++} wlan_cmd_wmm_addts_req_t;
++
++/**
++ * @brief Internal command structure used in executing an DELTS command.
++ *
++ * Relay information between the IOCTL layer and the firmware command and
++ * command response procedures.
++ *
++ * @sa wlan_wmm_delts_req_ioctl
++ * @sa wlan_cmd_wmm_delts_req
++ * @sa wlan_cmdresp_wmm_delts_req
++ */
++typedef struct
++{
++ wlan_wmm_tspec_result_e commandResult;
++
++ u8 dialogToken;
++
++ u8 ieeeReasonCode;
++
++ int tspecDataLen;
++ u8 tspecData[WMM_TSPEC_SIZE];
++
++} wlan_cmd_wmm_delts_req_t;
++
++/**
++ * @brief Command structure for the HostCmd_CMD_WMM_ADDTS_REQ firmware command
++ *
++ */
++typedef struct
++{
++ wlan_wmm_tspec_result_e commandResult;
++ u32 timeout_ms;
++
++ u8 dialogToken;
++ u8 ieeeStatusCode;
++ u8 tspecData[WMM_TSPEC_SIZE];
++ u8 addtsExtraIEBuf[WMM_ADDTS_EXTRA_IE_BYTES];
++
++} __ATTRIB_PACK__ HostCmd_DS_WMM_ADDTS_REQ;
++
++/**
++ * @brief Command structure for the HostCmd_CMD_WMM_DELTS_REQ firmware command
++ */
++typedef struct
++{
++ wlan_wmm_tspec_result_e commandResult;
++ u8 dialogToken;
++ u8 ieeeReasonCode;
++ u8 tspecData[WMM_TSPEC_SIZE];
++
++} __ATTRIB_PACK__ HostCmd_DS_WMM_DELTS_REQ;
++
++/**
++ * @brief Enumeration for the action field in the Queue configure command
++ */
++typedef enum
++{
++ WMM_QUEUE_CONFIG_ACTION_GET = 0,
++ WMM_QUEUE_CONFIG_ACTION_SET = 1,
++ WMM_QUEUE_CONFIG_ACTION_DEFAULT = 2,
++
++ WMM_QUEUE_CONFIG_ACTION_MAX
++} __ATTRIB_PACK__ wlan_wmm_queue_config_action_e;
++
++/**
++ * @brief Command structure for the HostCmd_CMD_WMM_QUEUE_CONFIG firmware cmd
++ *
++ * Set/Get/Default the Queue parameters for a specific AC in the firmware.
++ *
++ */
++typedef struct
++{
++ wlan_wmm_queue_config_action_e action; //!< Set, Get, or Default
++ wlan_wmm_ac_e accessCategory; //!< WMM_AC_BK(0) to WMM_AC_VO(3)
++
++ /** @brief MSDU lifetime expiry per 802.11e
++ *
++ * - Ignored if 0 on a set command
++ * - Set to the 802.11e specified 500 TUs when defaulted
++ */
++ u16 msduLifetimeExpiry;
++
++ u8 tlvBuffer[WMM_QUEUE_CONFIG_EXTRA_TLV_BYTES]; //!< Not supported yet
++
++} __ATTRIB_PACK__ HostCmd_DS_WMM_QUEUE_CONFIG;
++
++/**
++ * @brief Internal command structure used in executing a queue config command.
++ *
++ * Relay information between the IOCTL layer and the firmware command and
++ * command response procedures.
++ *
++ * @sa wlan_wmm_queue_config_ioctl
++ * @sa wlan_cmd_wmm_queue_config
++ * @sa wlan_cmdresp_wmm_queue_config
++ */
++typedef struct
++{
++ wlan_wmm_queue_config_action_e action; //!< Set, Get, or Default
++ wlan_wmm_ac_e accessCategory; //!< WMM_AC_BK(0) to WMM_AC_VO(3)
++ u16 msduLifetimeExpiry; //!< lifetime expiry in TUs
++
++ int tlvBufLen; //!< Not supported yet
++ u8 tlvBuffer[WMM_QUEUE_CONFIG_EXTRA_TLV_BYTES]; //!< Not supported yet
++
++} wlan_cmd_wmm_queue_config_t;
++
++/**
++ * @brief IOCTL structure to configure a specific AC Queue's parameters
++ *
++ * IOCTL structure from the application layer relayed to firmware to
++ * get, set, or default the WMM AC queue parameters.
++ *
++ * - msduLifetimeExpiry is ignored if set to 0 on a set command
++ *
++ * @sa wlan_wmm_queue_config_ioctl
++ */
++typedef struct
++{
++ wlan_wmm_queue_config_action_e action; //!< Set, Get, or Default
++ wlan_wmm_ac_e accessCategory; //!< WMM_AC_BK(0) to WMM_AC_VO(3)
++ u16 msduLifetimeExpiry; //!< lifetime expiry in TUs
++
++ u8 supportedRates[10]; //!< Not supported yet
++
++} __ATTRIB_PACK__ wlan_ioctl_wmm_queue_config_t;
++
++/**
++ * @brief Enumeration for the action field in the queue stats command
++ */
++typedef enum
++{
++ WMM_STATS_ACTION_START = 0,
++ WMM_STATS_ACTION_STOP = 1,
++ WMM_STATS_ACTION_GET_CLR = 2,
++ WMM_STATS_ACTION_SET_CFG = 3, /* Not currently used */
++ WMM_STATS_ACTION_GET_CFG = 4, /* Not currently used */
++
++ WMM_STATS_ACTION_MAX
++} __ATTRIB_PACK__ wlan_wmm_stats_action_e;
++
++/** Number of bins in the histogram for the HostCmd_DS_WMM_QUEUE_STATS */
++#define WMM_STATS_PKTS_HIST_BINS 7
++
++/**
++ * @brief Command structure for the HostCmd_CMD_WMM_QUEUE_STATS firmware cmd
++ *
++ * Turn statistical collection on/off for a given AC or retrieve the
++ * accumulated stats for an AC and clear them in the firmware.
++ */
++typedef struct
++{
++ wlan_wmm_stats_action_e action; //!< Start, Stop, or Get
++ wlan_wmm_ac_e accessCategory; //!< WMM_AC_BK(0) to WMM_AC_VO(3)
++
++ u16 pktCount; //!< Number of successful packets transmitted
++ u16 pktLoss; //!< Packets lost; not included in pktCount
++ u32 avgQueueDelay; //!< Average Queue delay in microseconds
++ u32 avgTxDelay; //!< Average Transmission delay in microseconds
++ u32 usedTime; //!< Calculated medium time - Not currently used
++
++ /** @brief Queue Delay Histogram; number of packets per queue delay range
++ *
++ * [0] - 0ms <= delay < 5ms
++ * [1] - 5ms <= delay < 10ms
++ * [2] - 10ms <= delay < 20ms
++ * [3] - 20ms <= delay < 30ms
++ * [4] - 30ms <= delay < 40ms
++ * [5] - 40ms <= delay < 50ms
++ * [6] - 50ms <= delay < msduLifetime (TUs)
++ */
++ u16 delayHistogram[WMM_STATS_PKTS_HIST_BINS];
++
++ u16 reserved_u16_1;
++
++} __ATTRIB_PACK__ HostCmd_DS_WMM_QUEUE_STATS;
++
++/**
++ * @brief IOCTL structure to start, stop, and get statistics for a WMM AC
++ *
++ * IOCTL structure from the application layer relayed to firmware to
++ * start or stop statistical collection for a given AC. Also used to
++ * retrieve and clear the collected stats on a given AC.
++ *
++ * @sa wlan_wmm_queue_stats_ioctl
++ */
++typedef struct
++{
++ wlan_wmm_stats_action_e action; //!< Start, Stop, or Get
++ wlan_wmm_ac_e accessCategory; //!< WMM_AC_BK(0) to WMM_AC_VO(3)
++ u16 pktCount; //!< Number of successful packets transmitted
++ u16 pktLoss; //!< Packets lost; not included in pktCount
++ u32 avgQueueDelay; //!< Average Queue delay in microseconds
++ u32 avgTxDelay; //!< Average Transmission delay in microseconds
++ u32 usedTime; //!< Calculated medium time
++
++ /** @brief Queue Delay Histogram; number of packets per queue delay range
++ *
++ * [0] - 0ms <= delay < 5ms
++ * [1] - 5ms <= delay < 10ms
++ * [2] - 10ms <= delay < 20ms
++ * [3] - 20ms <= delay < 30ms
++ * [4] - 30ms <= delay < 40ms
++ * [5] - 40ms <= delay < 50ms
++ * [6] - 50ms <= delay < msduLifetime (TUs)
++ */
++ u16 delayHistogram[WMM_STATS_PKTS_HIST_BINS];
++} __ATTRIB_PACK__ wlan_ioctl_wmm_queue_stats_t;
++
++/**
++ * @brief IOCTL sub structure for a specific WMM AC Status
++ */
++typedef struct
++{
++ u8 wmmAcm;
++ u8 flowRequired;
++ u8 flowCreated;
++ u8 disabled;
++} __ATTRIB_PACK__ wlan_ioctl_wmm_queue_status_ac_t;
++
++/**
++ * @brief IOCTL structure to retrieve the WMM AC Queue status
++ *
++ * IOCTL structure from the application layer to retrieve:
++ * - ACM bit setting for the AC
++ * - Firmware status (flow required, flow created, flow disabled)
++ *
++ * @sa wlan_wmm_queue_status_ioctl
++ */
++typedef struct
++{
++ wlan_ioctl_wmm_queue_status_ac_t acStatus[MAX_AC_QUEUES];
++} __ATTRIB_PACK__ wlan_ioctl_wmm_queue_status_t;
++
++/** Firmware status for a specific AC */
++typedef struct
++{
++ u8 Disabled;
++ u8 FlowRequired;
++ u8 FlowCreated;
++} WmmAcStatus_t;
++
++#endif /* _WLAN_TYPES_ */
+diff --git a/drivers/net/wireless/marvell8686/wlan_version.h b/drivers/net/wireless/marvell8686/wlan_version.h
+new file mode 100644
+index 0000000..bacedd5
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_version.h
+@@ -0,0 +1,18 @@
++/** @file wlan_version.h
++ * @brief This file contains wlan driver version number.
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2006
++ */
++/********************************************************
++Change log:
++ 10/04/05: Add Doxygen format comments
++
++********************************************************/
++#include "release_version.h"
++
++const char driver_version[] =
++ "sd8686-%s-" DRIVER_RELEASE_VERSION "-(" "FP" "4" ")"
++#ifdef DEBUG_LEVEL2
++ "-dbg"
++#endif
++ " ";
+diff --git a/drivers/net/wireless/marvell8686/wlan_wext.c b/drivers/net/wireless/marvell8686/wlan_wext.c
+new file mode 100644
+index 0000000..85ee593
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_wext.c
+@@ -0,0 +1,8045 @@
++/** @file wlan_wext.c
++ * @brief This file contains ioctl functions
++ *
++ * Copyright ?Marvell International Ltd. and/or its affiliates, 2003-2007
++ */
++/********************************************************
++Change log:
++ 10/10/05: Add Doxygen format comments
++ 12/23/05: Modify FindBSSIDInList to search entire table for
++ duplicate BSSIDs when earlier matches are not compatible
++ 12/26/05: Remove errant memcpy in wlanidle_off; overwriting stack space
++ 01/05/06: Add kernel 2.6.x support
++ 01/11/06: Conditionalize new scan/join functions.
++ Update statics/externs. Move forward decl. from wlan_decl.h
++ 04/06/06: Add TSPEC, queue metrics, and MSDU expiry support
++ 04/10/06: Add hostcmd generic API
++ 04/18/06: Remove old Subscrive Event and add new Subscribe Event
++ implementation through generic hostcmd API
++ 05/04/06: Add IBSS coalescing related new iwpriv command
++ 08/29/06: Add ledgpio private command
++ 10/23/06: Validate setbcnavg/setdataavg command parameters and
++ return error if out of range
++********************************************************/
++
++#include "include.h"
++
++#include "wlan_version.h"
++
++#define GETLOG_BUFSIZE 512
++
++#define MAX_SCAN_CELL_SIZE (IW_EV_ADDR_LEN + \
++ MRVDRV_MAX_SSID_LENGTH + \
++ IW_EV_UINT_LEN + IW_EV_FREQ_LEN + \
++ IW_EV_QUAL_LEN + MRVDRV_MAX_SSID_LENGTH + \
++ IW_EV_PARAM_LEN + 40) /* 40 for WPAIE */
++
++typedef struct _ioctl_cmd
++{
++ int cmd;
++ int subcmd;
++ BOOLEAN fixsize;
++} ioctl_cmd;
++
++static ioctl_cmd Commands_Allowed_In_DeepSleep[] = {
++ {.cmd = WLANDEEPSLEEP,.subcmd = 0,.fixsize = FALSE},
++ {.cmd = WLAN_SETONEINT_GETWORDCHAR,.subcmd = WLANVERSION,.fixsize =
++ FALSE},
++ {.cmd = WLAN_SETINT_GETINT,.subcmd = WLANSDIOCLOCK,.fixsize = TRUE},
++ {.cmd = WLAN_SET_GET_2K,.subcmd = WLAN_GET_CFP_TABLE,.fixsize = FALSE},
++#ifdef DEBUG_LEVEL1
++ {.cmd = WLAN_SET_GET_SIXTEEN_INT,.subcmd = WLAN_DRV_DBG,.fixsize = FALSE},
++#endif
++};
++
++static ioctl_cmd Commands_Allowed_In_HostSleep[] = {
++ {.cmd = WLAN_SETONEINT_GETWORDCHAR,.subcmd = WLANVERSION,.fixsize =
++ FALSE},
++ {.cmd = WLANDEEPSLEEP,.subcmd = 1,.fixsize = FALSE},
++ {.cmd = WLANDEEPSLEEP,.subcmd = 0,.fixsize = FALSE},
++ {.cmd = WLAN_SETINT_GETINT,.subcmd = WLANSDIOCLOCK,.fixsize = TRUE},
++ {.cmd = WLAN_SET_GET_2K,.subcmd = WLAN_GET_CFP_TABLE,.fixsize = FALSE},
++#ifdef DEBUG_LEVEL1
++ {.cmd = WLAN_SET_GET_SIXTEEN_INT,.subcmd = WLAN_DRV_DBG,.fixsize = FALSE},
++#endif
++};
++
++/********************************************************
++ Local Variables
++********************************************************/
++
++/********************************************************
++ Global Variables
++********************************************************/
++#ifdef DEBUG_LEVEL1
++#ifdef DEBUG_LEVEL2
++#define DEFAULT_DEBUG_MASK (0xffffffff & ~DBG_EVENT)
++#else
++#define DEFAULT_DEBUG_MASK (DBG_MSG | DBG_FATAL | DBG_ERROR)
++#endif
++u32 drvdbg = DEFAULT_DEBUG_MASK;
++u32 ifdbg = 0;
++#endif
++
++/********************************************************
++ Local Functions
++********************************************************/
++static int wlan_set_rate(struct net_device *dev, struct iw_request_info *info,
++ struct iw_param *vwrq, char *extra);
++static int wlan_get_rate(struct net_device *dev, struct iw_request_info *info,
++ struct iw_param *vwrq, char *extra);
++
++static int wlan_get_essid(struct net_device *dev,
++ struct iw_request_info *info, struct iw_point *dwrq,
++ char *extra);
++
++static int wlan_set_freq(struct net_device *dev, struct iw_request_info *info,
++ struct iw_freq *fwrq, char *extra);
++static int wlan_get_freq(struct net_device *dev, struct iw_request_info *info,
++ struct iw_freq *fwrq, char *extra);
++
++static int wlan_set_mode(struct net_device *dev, struct iw_request_info *info,
++ u32 * uwrq, char *extra);
++static int wlan_get_mode(struct net_device *dev, struct iw_request_info *info,
++ u32 * uwrq, char *extra);
++
++static int wlan_set_encode(struct net_device *dev,
++ struct iw_request_info *info,
++ struct iw_point *dwrq, char *extra);
++static int wlan_get_encode(struct net_device *dev,
++ struct iw_request_info *info,
++ struct iw_point *dwrq, u8 * extra);
++
++static int wlan_set_txpow(struct net_device *dev,
++ struct iw_request_info *info, struct iw_param *vwrq,
++ char *extra);
++static int wlan_get_txpow(struct net_device *dev,
++ struct iw_request_info *info, struct iw_param *vwrq,
++ char *extra);
++
++static int wlan_set_coalescing_ioctl(wlan_private * priv, struct iwreq *wrq);
++
++extern CHANNEL_FREQ_POWER *wlan_get_region_cfp_table(u8 region, u8 band,
++ int *cfp_no);
++
++/**
++ * @brief This function checks if the commans is allowed
++ * in deepsleep/hostsleep mode or not.
++ *
++ * @param req A pointer to ifreq structure
++ * @param cmd the command ID
++ * @return TRUE or FALSE
++ */
++static BOOLEAN
++Is_Command_Allowed_In_Sleep(struct ifreq *req, int cmd,
++ ioctl_cmd * allowed_cmds, int count)
++{
++ int subcmd = 0;
++ struct iwreq *wrq = (struct iwreq *) req;
++ int i;
++
++ for (i = 0; i < count; i++) {
++ if (cmd == allowed_cmds[i].cmd) {
++ if (allowed_cmds[i].subcmd == 0)
++ return TRUE;
++ if (allowed_cmds[i].fixsize == TRUE)
++ subcmd = (int) req->ifr_data;
++ else
++ subcmd = wrq->u.data.flags;
++ if (allowed_cmds[i].subcmd == subcmd)
++ return TRUE;
++ }
++ }
++ return FALSE;
++}
++
++/**
++ * @brief This function checks if the command is allowed.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return TRUE or FALSE
++ */
++BOOLEAN
++Is_Command_Allowed(wlan_private * priv)
++{
++ BOOLEAN ret = TRUE;
++
++ if (priv->adapter->bHostSleepConfigured) {
++ PRINTM(INFO, "IOCTLS called when WLAN access is blocked\n");
++ ret = FALSE;
++ }
++ if (!priv->adapter->IsAutoDeepSleepEnabled) {
++ if ((priv->adapter->IsDeepSleep == TRUE)) {
++ PRINTM(INFO, "IOCTLS called when station is in DeepSleep\n");
++ ret = FALSE;
++ }
++ }
++
++ return ret;
++}
++
++/**
++ * @brief Find a character in a string.
++ *
++ * @param s A pointer to string
++ * @param c Character to be located
++ * @param dlen the length of string
++ * @return A pointer to the first occurrence of c in string, or NULL if c is not found.
++ */
++static void *
++wlan_memchr(void *s, int c, int n)
++{
++ const u8 *p = s;
++
++ while (n-- != 0) {
++ if ((u8) c == *p++) {
++ return (void *) (p - 1);
++ }
++ }
++ return NULL;
++}
++
++#if WIRELESS_EXT > 14
++/**
++ * @brief Convert mw value to dbm value
++ *
++ * @param mw the value of mw
++ * @return the value of dbm
++ */
++static int
++mw_to_dbm(int mw)
++{
++ if (mw < 2)
++ return 0;
++ else if (mw < 3)
++ return 3;
++ else if (mw < 4)
++ return 5;
++ else if (mw < 6)
++ return 7;
++ else if (mw < 7)
++ return 8;
++ else if (mw < 8)
++ return 9;
++ else if (mw < 10)
++ return 10;
++ else if (mw < 13)
++ return 11;
++ else if (mw < 16)
++ return 12;
++ else if (mw < 20)
++ return 13;
++ else if (mw < 25)
++ return 14;
++ else if (mw < 32)
++ return 15;
++ else if (mw < 40)
++ return 16;
++ else if (mw < 50)
++ return 17;
++ else if (mw < 63)
++ return 18;
++ else if (mw < 79)
++ return 19;
++ else if (mw < 100)
++ return 20;
++ else
++ return 21;
++}
++
++/**
++ * @brief This function sends customized event to application.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @para str A pointer to event string
++ * @return n/a
++ */
++void
++send_iwevcustom_event(wlan_private * priv, s8 * str)
++{
++ union iwreq_data iwrq;
++ u8 buf[50];
++
++ ENTER();
++
++ memset(&iwrq, 0, sizeof(union iwreq_data));
++ memset(buf, 0, sizeof(buf));
++
++ snprintf(buf, sizeof(buf) - 1, "%s", str);
++
++ iwrq.data.pointer = buf;
++ iwrq.data.length = strlen(buf) + 1 + IW_EV_LCP_LEN;
++
++ /* Send Event to upper layer */
++ wireless_send_event(priv->wlan_dev.netdev, IWEVCUSTOM, &iwrq, buf);
++ PRINTM(INFO, "Wireless event %s is sent to app\n", str);
++
++ LEAVE();
++ return;
++}
++#endif
++
++/**
++ * @brief Find the channel frequency power info with specific channel
++ *
++ * @param adapter A pointer to wlan_adapter structure
++ * @param band it can be BAND_A, BAND_G or BAND_B
++ * @param channel the channel for looking
++ * @return A pointer to CHANNEL_FREQ_POWER structure or NULL if not find.
++ */
++CHANNEL_FREQ_POWER *
++find_cfp_by_band_and_channel(wlan_adapter * adapter, u8 band, u16 channel)
++{
++ CHANNEL_FREQ_POWER *cfp = NULL;
++
++ ENTER();
++
++ if (adapter->State11D.Enable11D == ENABLE_11D)
++ cfp =
++ get_cfp_by_band_and_channel(band, channel,
++ adapter->universal_channel);
++ else
++ cfp =
++ get_cfp_by_band_and_channel(band, channel,
++ adapter->region_channel);
++
++ return cfp;
++}
++
++/**
++ * @brief Find the channel frequency power info with specific frequency
++ *
++ * @param adapter A pointer to wlan_adapter structure
++ * @param band it can be BAND_A, BAND_G or BAND_B
++ * @param freq the frequency for looking
++ * @return Pointer to CHANNEL_FREQ_POWER structure; NULL if not found
++ */
++static CHANNEL_FREQ_POWER *
++find_cfp_by_band_and_freq(wlan_adapter * adapter, u8 band, u32 freq)
++{
++ CHANNEL_FREQ_POWER *cfp = NULL;
++ REGION_CHANNEL *rc;
++ int count = sizeof(adapter->region_channel) /
++ sizeof(adapter->region_channel[0]);
++ int i, j;
++
++ for (j = 0; !cfp && (j < count); j++) {
++ rc = &adapter->region_channel[j];
++
++ if (adapter->State11D.Enable11D == ENABLE_11D) {
++ rc = &adapter->universal_channel[j];
++ }
++
++ if (!rc->Valid || !rc->CFP)
++ continue;
++ if (rc->Band != band)
++ continue;
++ for (i = 0; i < rc->NrCFP; i++) {
++ if (rc->CFP[i].Freq == freq) {
++ cfp = &rc->CFP[i];
++ break;
++ }
++ }
++ }
++
++ if (!cfp && freq)
++ PRINTM(INFO, "find_cfp_by_band_and_freql(): cannot find cfp by "
++ "band %d & freq %d\n", band, freq);
++
++ return cfp;
++}
++
++#ifdef MFG_CMD_SUPPORT
++/**
++ * @brief Manufacturing command ioctl function
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS--success, otherwise--fail
++ */
++static int
++wlan_mfg_command(wlan_private * priv, struct iwreq *wrq)
++{
++ HostCmd_DS_GEN *pCmdPtr;
++ u8 *mfg_cmd;
++ u16 mfg_cmd_len;
++ int ret;
++
++ ENTER();
++
++ /* allocate MFG command buffer */
++ if (!(mfg_cmd = kmalloc(MRVDRV_SIZE_OF_CMD_BUFFER, GFP_KERNEL))) {
++ PRINTM(INFO, "allocate MFG command buffer failed!\n");
++ return -ENOMEM;
++ }
++
++ /* get MFG command header */
++ if (copy_from_user(mfg_cmd, wrq->u.data.pointer, sizeof(HostCmd_DS_GEN))) {
++ PRINTM(INFO, "copy from user failed: MFG command header\n");
++ ret = -EFAULT;
++ goto mfg_exit;
++ }
++
++ /* get the command size */
++ pCmdPtr = (HostCmd_DS_GEN *) mfg_cmd;
++ mfg_cmd_len = pCmdPtr->Size;
++ PRINTM(INFO, "MFG command len = %d\n", mfg_cmd_len);
++
++ if (mfg_cmd_len > MRVDRV_SIZE_OF_CMD_BUFFER) {
++ ret = -EINVAL;
++ goto mfg_exit;
++ }
++
++ /* get the whole command from user */
++ if (copy_from_user(mfg_cmd, wrq->u.data.pointer, mfg_cmd_len)) {
++ PRINTM(INFO, "copy from user failed: MFG command\n");
++ ret = -EFAULT;
++ goto mfg_exit;
++ }
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_MFG_COMMAND,
++ 0, HostCmd_OPTION_WAITFORRSP, 0, mfg_cmd);
++
++ /* copy the response back to user */
++ if (!ret && pCmdPtr->Size) {
++ mfg_cmd_len = MIN(pCmdPtr->Size, mfg_cmd_len);
++ if (copy_to_user(wrq->u.data.pointer, mfg_cmd, mfg_cmd_len)) {
++ PRINTM(INFO, "copy to user failed: MFG command\n");
++ ret = -EFAULT;
++ }
++ wrq->u.data.length = mfg_cmd_len;
++ }
++
++ mfg_exit:
++ kfree(mfg_cmd);
++ LEAVE();
++ return ret;
++}
++#endif
++
++/**
++ * @brief Check if Rate Auto
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return TRUE/FALSE
++ */
++BOOLEAN
++Is_Rate_Auto(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int i;
++ int ratenum = 0;
++ int bitsize = 0;
++ bitsize = sizeof(Adapter->RateBitmap) * 8;
++ for (i = 0; i < bitsize; i++) {
++ if (Adapter->RateBitmap & (1 << i))
++ ratenum++;
++ if (ratenum > 1)
++ break;
++ }
++ if (ratenum > 1)
++ return TRUE;
++ else
++ return FALSE;
++}
++
++/**
++ * @brief Covert Rate Bitmap to Rate index
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return TRUE/FALSE
++ */
++int
++GetRateIndex(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int bitsize = sizeof(Adapter->RateBitmap) * 8;
++ int i;
++ for (i = 0; i < bitsize; i++) {
++ if (Adapter->RateBitmap & (1 << i))
++ return i;
++ }
++ return 0;
++}
++
++/**
++ * @brief Update Current Channel
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS--success, WLAN_STATUS_FAILURE--fail
++ */
++static int
++UpdateCurrentChannel(wlan_private * priv)
++{
++ int ret;
++
++ /*
++ ** the channel in f/w could be out of sync, get the current channel
++ */
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_802_11_RF_CHANNEL,
++ HostCmd_OPT_802_11_RF_CHANNEL_GET,
++ HostCmd_OPTION_WAITFORRSP, 0, NULL);
++
++ PRINTM(INFO, "Current Channel = %d\n",
++ priv->adapter->CurBssParams.BSSDescriptor.Channel);
++
++ return ret;
++}
++
++/**
++ * @brief Set Current Channel
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param channel The channel to be set.
++ * @return WLAN_STATUS_SUCCESS--success, WLAN_STATUS_FAILURE--fail
++ */
++static int
++SetCurrentChannel(wlan_private * priv, int channel)
++{
++ PRINTM(INFO, "Set Channel = %d\n", channel);
++
++ /*
++ ** Current channel is not set to AdhocChannel requested, set channel
++ */
++ return (PrepareAndSendCommand(priv, HostCmd_CMD_802_11_RF_CHANNEL,
++ HostCmd_OPT_802_11_RF_CHANNEL_SET,
++ HostCmd_OPTION_WAITFORRSP, 0, &channel));
++}
++
++/**
++ * @brief Change Adhoc Channel
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param channel The channel to be set.
++ * @return WLAN_STATUS_SUCCESS--success, WLAN_STATUS_FAILURE--fail
++ */
++static int
++ChangeAdhocChannel(wlan_private * priv, int channel)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_adapter *Adapter = priv->adapter;
++
++ Adapter->AdhocChannel = channel;
++
++ UpdateCurrentChannel(priv);
++
++ if (Adapter->CurBssParams.BSSDescriptor.Channel == Adapter->AdhocChannel) {
++ /* AdhocChannel is set to the current Channel already */
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++ }
++
++ PRINTM(INFO, "Updating Channel from %d to %d\n",
++ Adapter->CurBssParams.BSSDescriptor.Channel,
++ Adapter->AdhocChannel);
++
++ SetCurrentChannel(priv, Adapter->AdhocChannel);
++
++ UpdateCurrentChannel(priv);
++
++ if (Adapter->CurBssParams.BSSDescriptor.Channel != Adapter->AdhocChannel) {
++ PRINTM(INFO, "Failed to updated Channel to %d, channel = %d\n",
++ Adapter->AdhocChannel,
++ Adapter->CurBssParams.BSSDescriptor.Channel);
++ LEAVE();
++ return WLAN_STATUS_FAILURE;
++ }
++
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ int i;
++ WLAN_802_11_SSID curAdhocSsid;
++
++ PRINTM(INFO, "Channel Changed while in an IBSS\n");
++
++ /* Copy the current ssid */
++ memcpy(&curAdhocSsid,
++ &Adapter->CurBssParams.BSSDescriptor.Ssid,
++ sizeof(WLAN_802_11_SSID));
++
++ /* Exit Adhoc mode */
++ PRINTM(INFO, "In ChangeAdhocChannel(): Sending Adhoc Stop\n");
++ ret = StopAdhocNetwork(priv);
++
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++
++ /* Scan for the network */
++ SendSpecificSSIDScan(priv, &curAdhocSsid);
++
++ // find out the BSSID that matches the current SSID
++ i = FindSSIDInList(Adapter, &curAdhocSsid, NULL, Wlan802_11IBSS);
++
++ if (i >= 0) {
++ PRINTM(INFO, "SSID found at %d in List," "so join\n", i);
++ JoinAdhocNetwork(priv, &Adapter->ScanTable[i]);
++ } else {
++ // else send START command
++ PRINTM(INFO, "SSID not found in list, "
++ "so creating adhoc with ssid = %s\n", curAdhocSsid.Ssid);
++ StartAdhocNetwork(priv, &curAdhocSsid);
++ } // end of else (START command)
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Set/Get WPA IE
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param ie_data_ptr A pointer to IE
++ * @param ie_len Length of the IE
++ *
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_set_wpa_ie_helper(wlan_private * priv, u8 * ie_data_ptr, u16 ie_len)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ if (ie_len) {
++ if (ie_len > sizeof(Adapter->Wpa_ie)) {
++ PRINTM(INFO, "failed to copy WPA IE, too big \n");
++ return -EFAULT;
++ }
++ if (copy_from_user(Adapter->Wpa_ie, ie_data_ptr, ie_len)) {
++ PRINTM(INFO, "failed to copy WPA IE \n");
++ return -EFAULT;
++ }
++ Adapter->Wpa_ie_len = ie_len;
++ PRINTM(INFO, "Set Wpa_ie_len=%d IE=%#x\n",
++ Adapter->Wpa_ie_len, Adapter->Wpa_ie[0]);
++ HEXDUMP("Wpa_ie", Adapter->Wpa_ie, Adapter->Wpa_ie_len);
++
++ if (Adapter->Wpa_ie[0] == WPA_IE) {
++ Adapter->SecInfo.WPAEnabled = TRUE;
++ } else if (Adapter->Wpa_ie[0] == RSN_IE) {
++ Adapter->SecInfo.WPA2Enabled = TRUE;
++ } else {
++ Adapter->SecInfo.WPAEnabled = FALSE;
++ Adapter->SecInfo.WPA2Enabled = FALSE;
++ }
++ } else {
++ memset(Adapter->Wpa_ie, 0, sizeof(Adapter->Wpa_ie));
++ Adapter->Wpa_ie_len = ie_len;
++ PRINTM(INFO, "Reset Wpa_ie_len=%d IE=%#x\n",
++ Adapter->Wpa_ie_len, Adapter->Wpa_ie[0]);
++ Adapter->SecInfo.WPAEnabled = FALSE;
++ Adapter->SecInfo.WPA2Enabled = FALSE;
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Set/Get WPA IE
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ *
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_set_wpa_ie_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ struct iwreq *wrq = (struct iwreq *) req;
++
++ return wlan_set_wpa_ie_helper(priv,
++ wrq->u.data.pointer, wrq->u.data.length);
++}
++
++/**
++ * @brief Set WPA key
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_set_encode_wpa(struct net_device *dev,
++ struct iw_request_info *info,
++ struct iw_point *dwrq, char *extra)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_private *priv = dev->priv;
++ WLAN_802_11_KEY *pKey;
++
++ ENTER();
++
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++
++ pKey = (WLAN_802_11_KEY *) extra;
++
++ HEXDUMP("Key buffer: ", extra, dwrq->length);
++
++ // current driver only supports key length of up to 32 bytes
++ if (pKey->KeyLength > MRVL_MAX_WPA_KEY_LENGTH) {
++ PRINTM(INFO, " Error in key length \n");
++ return WLAN_STATUS_FAILURE;
++ }
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_KEY_MATERIAL,
++ HostCmd_ACT_SET,
++ HostCmd_OPTION_WAITFORRSP,
++ KEY_INFO_ENABLED, pKey);
++
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/*
++ * iwconfig ethX key on: WEPEnabled;
++ * iwconfig ethX key off: WEPDisabled;
++ * iwconfig ethX key [x]: CurrentWepKeyIndex = x; WEPEnabled;
++ * iwconfig ethX key [x] kstr: WepKey[x] = kstr;
++ * iwconfig ethX key kstr: WepKey[CurrentWepKeyIndex] = kstr;
++ *
++ * all: Send command SET_WEP;
++ SetMacPacketFilter;
++ */
++
++/**
++ * @brief Set WEP key
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_set_encode_nonwpa(struct net_device *dev,
++ struct iw_request_info *info,
++ struct iw_point *dwrq, char *extra)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ MRVL_WEP_KEY *pWep;
++ int index, PrevAuthMode;
++
++ ENTER();
++
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++
++ if (Adapter->CurrentWepKeyIndex >= MRVL_NUM_WEP_KEY)
++ Adapter->CurrentWepKeyIndex = 0;
++ pWep = &Adapter->WepKey[Adapter->CurrentWepKeyIndex];
++ PrevAuthMode = Adapter->SecInfo.AuthenticationMode;
++
++ index = (dwrq->flags & IW_ENCODE_INDEX) - 1;
++
++ if (index >= 4) {
++ PRINTM(INFO, "Key index #%d out of range.\n", index + 1);
++ return -EINVAL;
++ }
++
++ PRINTM(INFO, "Flags=0x%x, Length=%d Index=%d CurrentWepKeyIndex=%d\n",
++ dwrq->flags, dwrq->length, index, Adapter->CurrentWepKeyIndex);
++
++ if (dwrq->length > 0) {
++ /* iwconfig ethX key [n] xxxxxxxxxxx
++ * Key has been provided by the user
++ */
++
++ /*
++ * Check the size of the key
++ */
++
++ if (dwrq->length > MAX_WEP_KEY_SIZE) {
++ return -EINVAL;
++ }
++
++ /*
++ * Check the index (none -> use current)
++ */
++
++ if (index < 0 || index > 3) //invalid index or no index
++ index = Adapter->CurrentWepKeyIndex;
++ else //index is given & valid
++ pWep = &Adapter->WepKey[index];
++
++ /*
++ * Check if the key is not marked as invalid
++ */
++ if (!(dwrq->flags & IW_ENCODE_NOKEY)) {
++ /* Cleanup */
++ memset(pWep, 0, sizeof(MRVL_WEP_KEY));
++
++ /* Copy the key in the driver */
++ memcpy(pWep->KeyMaterial, extra, dwrq->length);
++
++ /* Set the length */
++ if (dwrq->length > MIN_WEP_KEY_SIZE) {
++ pWep->KeyLength = MAX_WEP_KEY_SIZE;
++ } else {
++ if (dwrq->length > 0) {
++ pWep->KeyLength = MIN_WEP_KEY_SIZE;
++ } else {
++ /* Disable the key */
++ pWep->KeyLength = 0;
++ }
++ }
++ pWep->KeyIndex = index;
++
++ if (Adapter->SecInfo.WEPStatus != Wlan802_11WEPEnabled) {
++ /*
++ * The status is set as Key Absent
++ * so as to make sure we display the
++ * keys when iwlist ethX key is used
++ */
++ Adapter->SecInfo.WEPStatus = Wlan802_11WEPKeyAbsent;
++ }
++
++ PRINTM(INFO, "KeyIndex=%u KeyLength=%u\n",
++ pWep->KeyIndex, pWep->KeyLength);
++ HEXDUMP("WepKey", (u8 *) pWep->KeyMaterial, pWep->KeyLength);
++ }
++ } else {
++ /*
++ * No key provided so it is either enable key,
++ * on or off */
++ if (dwrq->flags & IW_ENCODE_DISABLED) {
++ PRINTM(INFO, "*** iwconfig ethX key off ***\n");
++
++ Adapter->SecInfo.WEPStatus = Wlan802_11WEPDisabled;
++ if (Adapter->SecInfo.AuthenticationMode ==
++ Wlan802_11AuthModeShared)
++ Adapter->SecInfo.AuthenticationMode = Wlan802_11AuthModeOpen;
++ } else {
++ /* iwconfig ethX key [n]
++ * iwconfig ethX key on
++ * Do we want to just set the transmit key index ?
++ */
++
++ if (index < 0 || index > 3) {
++ PRINTM(INFO, "*** iwconfig ethX key on ***\n");
++ index = Adapter->CurrentWepKeyIndex;
++ } else {
++ PRINTM(INFO, "*** iwconfig ethX key [x=%d] ***\n", index);
++ Adapter->CurrentWepKeyIndex = index;
++ }
++
++ /* Copy the required key as the current key */
++ pWep = &Adapter->WepKey[index];
++
++ if (!pWep->KeyLength) {
++ PRINTM(INFO, "Key not set,so cannot enable it\n");
++ return -EPERM;
++ }
++
++ Adapter->SecInfo.WEPStatus = Wlan802_11WEPEnabled;
++
++ HEXDUMP("KeyMaterial", (u8 *) pWep->KeyMaterial, pWep->KeyLength);
++ }
++ }
++
++ if (pWep->KeyLength) {
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_SET_WEP,
++ 0, HostCmd_OPTION_WAITFORRSP,
++ OID_802_11_ADD_WEP, NULL);
++
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++ }
++
++ if (Adapter->SecInfo.WEPStatus == Wlan802_11WEPEnabled) {
++ Adapter->CurrentPacketFilter |= HostCmd_ACT_MAC_WEP_ENABLE;
++ } else {
++ Adapter->CurrentPacketFilter &= ~HostCmd_ACT_MAC_WEP_ENABLE;
++ }
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_MAC_CONTROL,
++ 0, HostCmd_OPTION_WAITFORRSP,
++ 0, &Adapter->CurrentPacketFilter);
++
++ if (dwrq->flags & IW_ENCODE_RESTRICTED) {
++ /* iwconfig ethX restricted key [1] */
++ Adapter->SecInfo.AuthenticationMode = Wlan802_11AuthModeShared;
++ PRINTM(INFO, "Auth mode restricted!\n");
++ } else if (dwrq->flags & IW_ENCODE_OPEN) {
++ /* iwconfig ethX key [2] open */
++ Adapter->SecInfo.AuthenticationMode = Wlan802_11AuthModeOpen;
++ PRINTM(INFO, "Auth mode open!\n");
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Set RX Antenna
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param Mode RF antenna mode
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++SetRxAntenna(wlan_private * priv, int Mode)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_adapter *Adapter = priv->adapter;
++
++ if (Mode != RF_ANTENNA_1 && Mode != RF_ANTENNA_2
++ && Mode != RF_ANTENNA_AUTO) {
++ return -EINVAL;
++ }
++
++ Adapter->RxAntennaMode = Mode;
++
++ PRINTM(INFO, "SET RX Antenna Mode to 0x%04x\n", Adapter->RxAntennaMode);
++
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_802_11_RF_ANTENNA,
++ HostCmd_ACT_SET_RX, HostCmd_OPTION_WAITFORRSP,
++ 0, &Adapter->RxAntennaMode);
++ return ret;
++}
++
++/**
++ * @brief Set TX Antenna
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param Mode RF antenna mode
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++SetTxAntenna(wlan_private * priv, int Mode)
++{
++ int ret = 0;
++ wlan_adapter *Adapter = priv->adapter;
++
++ if ((Mode != RF_ANTENNA_1) && (Mode != RF_ANTENNA_2)
++ && (Mode != RF_ANTENNA_AUTO)) {
++ return -EINVAL;
++ }
++
++ Adapter->TxAntennaMode = Mode;
++
++ PRINTM(INFO, "SET TX Antenna Mode to 0x%04x\n", Adapter->TxAntennaMode);
++
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_802_11_RF_ANTENNA,
++ HostCmd_ACT_SET_TX, HostCmd_OPTION_WAITFORRSP,
++ 0, &Adapter->TxAntennaMode);
++
++ return ret;
++}
++
++/**
++ * @brief Get RX Antenna
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param buf A pointer to recieve antenna mode
++ * @return length of buf
++ */
++static int
++GetRxAntenna(wlan_private * priv, char *buf)
++{
++ int ret = 0;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ // clear it, so we will know if the value
++ // returned below is correct or not.
++ Adapter->RxAntennaMode = 0;
++
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_802_11_RF_ANTENNA,
++ HostCmd_ACT_GET_RX, HostCmd_OPTION_WAITFORRSP,
++ 0, NULL);
++
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++
++ PRINTM(INFO, "Get Rx Antenna Mode:0x%04x\n", Adapter->RxAntennaMode);
++
++ LEAVE();
++
++ return sprintf(buf, "0x%04x", Adapter->RxAntennaMode) + 1;
++}
++
++/**
++ * @brief Get TX Antenna
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param buf A pointer to recieve antenna mode
++ * @return length of buf
++ */
++static int
++GetTxAntenna(wlan_private * priv, char *buf)
++{
++ int ret = 0;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ // clear it, so we will know if the value
++ // returned below is correct or not.
++ Adapter->TxAntennaMode = 0;
++
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_802_11_RF_ANTENNA,
++ HostCmd_ACT_GET_TX, HostCmd_OPTION_WAITFORRSP,
++ 0, NULL);
++
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++
++ PRINTM(INFO, "Get Tx Antenna Mode:0x%04x\n", Adapter->TxAntennaMode);
++
++ LEAVE();
++
++ return sprintf(buf, "0x%04x", Adapter->TxAntennaMode) + 1;
++}
++
++/**
++ * @brief Set Radio On/OFF
++ *
++ * @param priv A pointer to wlan_private structure
++ * @option Radio Option
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_radio_ioctl(wlan_private * priv, u8 option)
++{
++ int ret = 0;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (Adapter->RadioOn != option) {
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ PRINTM(MSG, "Cannot turn radio off in connected state.\n");
++ LEAVE();
++ return -EINVAL;
++ }
++
++ PRINTM(INFO, "Switching %s the Radio\n", option ? "On" : "Off");
++ Adapter->RadioOn = option;
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_RADIO_CONTROL,
++ HostCmd_ACT_GEN_SET,
++ HostCmd_OPTION_WAITFORRSP, 0, NULL);
++ }
++
++ LEAVE();
++ return ret;
++}
++
++#ifdef REASSOCIATION
++/**
++ * @brief Set Auto Reassociation On
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++reassociation_on(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ Adapter->Reassoc_on = TRUE;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Set Auto Reassociation Off
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++reassociation_off(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (Adapter->ReassocTimerIsSet == TRUE) {
++ CancelTimer(&Adapter->MrvDrvTimer);
++ Adapter->ReassocTimerIsSet = FALSE;
++ }
++
++ Adapter->Reassoc_on = FALSE;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++#endif /* REASSOCIATION */
++
++/**
++ * @brief Set Region
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param region_code region code
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_set_region(wlan_private * priv, u16 region_code)
++{
++ int i;
++
++ ENTER();
++
++ for (i = 0; i < MRVDRV_MAX_REGION_CODE; i++) {
++ // use the region code to search for the index
++ if (region_code == RegionCodeToIndex[i]) {
++ priv->adapter->RegionCode = region_code;
++ break;
++ }
++ }
++
++ // if it's unidentified region code
++ if (i >= MRVDRV_MAX_REGION_CODE) {
++ PRINTM(INFO, "Region Code not identified\n");
++ LEAVE();
++ return WLAN_STATUS_FAILURE;
++ }
++
++ if (wlan_set_regiontable(priv, priv->adapter->RegionCode, 0)) {
++ LEAVE();
++ return -EINVAL;
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Copy Rates
++ *
++ * @param dest A pointer to Dest Buf
++ * @param src A pointer to Src Buf
++ * @param len The len of Src Buf
++ * @return Number of Rates copyed
++ */
++static inline int
++CopyRates(u8 * dest, int pos, u8 * src, int len)
++{
++ int i;
++
++ for (i = 0; i < len && src[i]; i++, pos++) {
++ if (pos >= sizeof(WLAN_802_11_RATES))
++ break;
++ dest[pos] = src[i];
++ }
++
++ return pos;
++}
++
++/**
++ * @brief Get active data rates
++ *
++ * @param Adapter A pointer to wlan_adapter structure
++ * @param rate The buf to return the active rates
++ * @return The number of Rates
++ */
++static int
++get_active_data_rates(wlan_adapter * Adapter, WLAN_802_11_RATES rates)
++{
++ int k = 0;
++
++ ENTER();
++
++ if (Adapter->MediaConnectStatus != WlanMediaStateConnected) {
++ if (Adapter->InfrastructureMode == Wlan802_11Infrastructure) {
++ //Infra. mode
++ PRINTM(INFO, "Infra\n");
++ k = CopyRates(rates, k, SupportedRates, sizeof(SupportedRates));
++ } else {
++ //ad-hoc mode
++ PRINTM(INFO, "Adhoc G\n");
++ k = CopyRates(rates, k, AdhocRates_G, sizeof(AdhocRates_G));
++ }
++ } else {
++ k = CopyRates(rates, 0, Adapter->CurBssParams.DataRates,
++ Adapter->CurBssParams.NumOfRates);
++ }
++
++ LEAVE();
++
++ return k;
++}
++
++/**
++ * @brief Get/Set Per packet TX Control flags
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to user data
++ * @return WLAN_STATUS_SUCCESS--success, otherwise fail
++ */
++static int
++wlan_txcontrol(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int data[3];
++ int ret;
++
++ ENTER();
++
++ ret = WLAN_STATUS_SUCCESS;
++
++ switch (wrq->u.data.length) {
++ case 0:
++ /*
++ * Get the Global setting for TxCtrl
++ */
++ if (copy_to_user(wrq->u.data.pointer,
++ &Adapter->PktTxCtrl, sizeof(u32))) {
++ PRINTM(INFO, "copy_to_user failed!\n");
++ ret = -EFAULT;
++ } else {
++ wrq->u.data.length = 1;
++ }
++ break;
++
++ case 1:
++ /*
++ * Set the Global setting for TxCtrl
++ */
++ if (copy_from_user(&data, wrq->u.data.pointer, sizeof(int))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ ret = -EFAULT;
++ } else {
++ Adapter->PktTxCtrl = data[0];
++ PRINTM(INFO, "PktTxCtrl set: 0x%08x\n", Adapter->PktTxCtrl);
++ }
++ break;
++
++ case 2:
++ /*
++ * Get the per User Priority setting for TxCtrl for the given UP
++ */
++ if (copy_from_user(data, wrq->u.data.pointer, sizeof(int) * 2)) {
++ PRINTM(INFO, "Copy from user failed\n");
++ ret = -EFAULT;
++
++ } else if (data[1] >= NELEMENTS(Adapter->wmm.userPriPktTxCtrl)) {
++ /* Range check the UP input from user space */
++ PRINTM(INFO, "User priority out of range\n");
++ ret = -EINVAL;
++
++ } else if (Adapter->wmm.userPriPktTxCtrl[data[1]]) {
++ data[2] = Adapter->wmm.userPriPktTxCtrl[data[1]];
++
++ /* User priority setting is valid, return it */
++ if (copy_to_user(wrq->u.data.pointer, data, sizeof(int) * 3)) {
++ PRINTM(INFO, "copy_to_user failed!\n");
++ ret = -EFAULT;
++ } else {
++ wrq->u.data.length = 3;
++ }
++
++ } else {
++ /* Return the global setting since the UP set is zero */
++ data[2] = Adapter->PktTxCtrl;
++
++ if (copy_to_user(wrq->u.data.pointer, data, sizeof(int) * 3)) {
++ PRINTM(INFO, "copy_to_user failed!\n");
++ ret = -EFAULT;
++ } else {
++ wrq->u.data.length = 3;
++ }
++ }
++ break;
++
++ case 3:
++ /*
++ * Set the per User Priority setting for TxCtrl for the given UP
++ */
++
++ if (copy_from_user(data, wrq->u.data.pointer, sizeof(int) * 3)) {
++ PRINTM(INFO, "Copy from user failed\n");
++ ret = -EFAULT;
++ } else if (data[1] >= NELEMENTS(Adapter->wmm.userPriPktTxCtrl)) {
++ PRINTM(INFO, "User priority out of range\n");
++ ret = -EINVAL;
++ } else {
++ Adapter->wmm.userPriPktTxCtrl[data[1]] = data[2];
++
++ if (Adapter->wmm.userPriPktTxCtrl[data[1]] == 0) {
++ /* Return the global setting since the UP set is zero */
++ data[2] = Adapter->PktTxCtrl;
++ }
++
++ if (copy_to_user(wrq->u.data.pointer, data, sizeof(int) * 3)) {
++ PRINTM(INFO, "copy_to_user failed!\n");
++ ret = -EFAULT;
++ } else {
++ wrq->u.data.length = 3;
++ }
++ }
++ break;
++
++ default:
++ ret = -EINVAL;
++ break;
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Enable/Disable atim uapsd null package generation
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to user data
++ * @return WLAN_STATUS_SUCCESS--success, otherwise fail
++ */
++static int
++wlan_null_pkg_gen(wlan_private * priv, struct iwreq *wrq)
++{
++ int data;
++ wlan_adapter *Adapter = priv->adapter;
++ int *val;
++
++ ENTER();
++
++ data = *((int *) (wrq->u.name + SUBCMD_OFFSET));
++ PRINTM(INFO, "Enable UAPSD NULL PKG: %s\n",
++ (data == CMD_ENABLED) ? "Enable" : "Disable");
++ switch (data) {
++ case CMD_ENABLED:
++ Adapter->gen_null_pkg = TRUE;
++ break;
++ case CMD_DISABLED:
++ Adapter->gen_null_pkg = FALSE;
++ break;
++ default:
++ break;
++ }
++
++ data = (Adapter->gen_null_pkg == TRUE) ? CMD_ENABLED : CMD_DISABLED;
++ val = (int *) wrq->u.name;
++ *val = data;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get/Set NULL Package generation interval
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to user data
++ * @return WLAN_STATUS_SUCCESS--success, otherwise fail
++ */
++static int
++wlan_null_pkt_interval(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int data;
++ ENTER();
++
++ if ((int) wrq->u.data.length == 0) {
++ data = Adapter->NullPktInterval;
++
++ if (copy_to_user(wrq->u.data.pointer, &data, sizeof(int))) {
++ PRINTM(MSG, "copy_to_user failed!\n");
++ return -EFAULT;
++ }
++ } else {
++ if ((int) wrq->u.data.length > 1) {
++ PRINTM(MSG, "ioctl too many args!\n");
++ return -EFAULT;
++ }
++ if (copy_from_user(&data, wrq->u.data.pointer, sizeof(int))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ Adapter->NullPktInterval = data;
++ }
++
++ wrq->u.data.length = 1;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get/Set Adhoc awake period
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_adhoc_awake_period(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int data;
++ ENTER();
++
++ if ((int) wrq->u.data.length == 0) {
++ data = Adapter->AdhocAwakePeriod;
++ if (copy_to_user(wrq->u.data.pointer, &data, sizeof(int))) {
++ PRINTM(MSG, "copy_to_user failed!\n");
++ return -EFAULT;
++ }
++ } else {
++ if ((int) wrq->u.data.length > 1) {
++ PRINTM(MSG, "ioctl too many args!\n");
++ return -EFAULT;
++ }
++ if (copy_from_user(&data, wrq->u.data.pointer, sizeof(int))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++#define AWAKE_PERIOD_MIN 1
++#define AWAKE_PERIOD_MAX 31
++#define DISABLE_AWAKE_PERIOD 0xff
++ if ((((data & 0xff) >= AWAKE_PERIOD_MIN) &&
++ ((data & 0xff) <= AWAKE_PERIOD_MAX)) ||
++ ((data & 0xff) == DISABLE_AWAKE_PERIOD))
++ Adapter->AdhocAwakePeriod = (u16) data;
++ else {
++ PRINTM(INFO,
++ "Invalid parameter, AdhocAwakePeriod not changed.\n");
++ return -EINVAL;
++
++ }
++ }
++ wrq->u.data.length = 1;
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get/Set bcn missing timeout
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_bcn_miss_timeout(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int data;
++ ENTER();
++
++ if ((int) wrq->u.data.length == 0) {
++ data = Adapter->BCNMissTimeOut;
++ if (copy_to_user(wrq->u.data.pointer, &data, sizeof(int))) {
++ PRINTM(MSG, "copy_to_user failed!\n");
++ return -EFAULT;
++ }
++ } else {
++ if ((int) wrq->u.data.length > 1) {
++ PRINTM(MSG, "ioctl too many args!\n");
++ return -EFAULT;
++ }
++ if (copy_from_user(&data, wrq->u.data.pointer, sizeof(int))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++ if (((data >= 0) && (data <= 50)) || (data == 0xffff))
++ Adapter->BCNMissTimeOut = (u16) data;
++ else {
++ PRINTM(INFO,
++ "Invalid parameter, BCN Missing timeout not changed.\n");
++ return -EINVAL;
++
++ }
++ }
++
++ wrq->u.data.length = 1;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get/Set adhoc g proctection
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_adhoc_g_protection(wlan_private * priv, struct iwreq *wrq)
++{
++ int data;
++ int *val;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++#define ADHOC_G_PROTECTION_ON 1
++#define ADHOC_G_PROTECTION_OFF 0
++ data = *((int *) (wrq->u.name + SUBCMD_OFFSET));
++
++ switch (data) {
++ case CMD_DISABLED:
++ Adapter->CurrentPacketFilter &=
++ ~HostCmd_ACT_MAC_ADHOC_G_PROTECTION_ON;
++ break;
++ case CMD_ENABLED:
++ Adapter->CurrentPacketFilter |= HostCmd_ACT_MAC_ADHOC_G_PROTECTION_ON;
++ break;
++
++ case CMD_GET:
++ if (Adapter->
++ CurrentPacketFilter & HostCmd_ACT_MAC_ADHOC_G_PROTECTION_ON)
++ data = ADHOC_G_PROTECTION_ON;
++ else
++ data = ADHOC_G_PROTECTION_OFF;
++ break;
++
++ default:
++ return -EINVAL;
++ }
++
++ val = (int *) wrq->u.name;
++ *val = data;
++
++ LEAVE();
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++#define USE_RTS_CTS 1
++#define USE_CTS_TO_SELF 0
++/**
++ * @brief GetSet RTS/CTS or CTS to self.
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_rts_cts_ctrl(wlan_private * priv, struct iwreq *wrq)
++{
++ int data;
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = 0;
++ ENTER();
++
++ if ((int) wrq->u.data.length == 0) {
++ if (Adapter->CurrentPacketFilter & HostCmd_ACT_MAC_RTS_CTS_ENABLE)
++ data = USE_RTS_CTS;
++ else
++ data = USE_CTS_TO_SELF;
++ if (copy_to_user(wrq->u.data.pointer, &data, sizeof(int))) {
++ PRINTM(MSG, "copy_to_user failed!\n");
++ return -EFAULT;
++ }
++ } else {
++ if ((int) wrq->u.data.length > 1) {
++ PRINTM(MSG, "ioctl too many args!\n");
++ return -EFAULT;
++ }
++ if (copy_from_user(&data, wrq->u.data.pointer, sizeof(int))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++ if (data == USE_RTS_CTS) {
++ Adapter->CurrentPacketFilter |= HostCmd_ACT_MAC_RTS_CTS_ENABLE;
++ } else {
++ Adapter->CurrentPacketFilter &= ~HostCmd_ACT_MAC_RTS_CTS_ENABLE;
++ }
++ PRINTM(INFO, "Adapter->CurrentPacketFilter=0x%x\n",
++ Adapter->CurrentPacketFilter);
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_MAC_CONTROL,
++ 0, HostCmd_OPTION_WAITFORRSP,
++ 0, &Adapter->CurrentPacketFilter);
++ }
++ wrq->u.data.length = 1;
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Get/Set sdio mode
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_sdio_mode(wlan_private * priv, struct iwreq *wrq)
++{
++ int data;
++ int bus_width;
++ wlan_adapter *Adapter = priv->adapter;
++ ENTER();
++
++ if ((int) wrq->u.data.length == 0) {
++ data = 4;
++ if (copy_to_user(wrq->u.data.pointer, &data, sizeof(int))) {
++ PRINTM(MSG, "copy_to_user failed!\n");
++ return -EFAULT;
++ }
++ } else {
++ if ((int) wrq->u.data.length > 1) {
++ PRINTM(MSG, "ioctl too many args!\n");
++ return -EFAULT;
++ }
++ if (copy_from_user(&data, wrq->u.data.pointer, sizeof(int))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++ if ((data != 1) && (data != 4))
++ return -EFAULT;
++ bus_width = 4;
++ if (bus_width != data)
++ Adapter->sdiomode = (u8) data;
++ }
++ wrq->u.data.length = 1;
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get/Set LDO config
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to wrq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_ldo_config(wlan_private * priv, struct iwreq *wrq)
++{
++ HostCmd_DS_802_11_LDO_CONFIG ldocfg;
++ int data = 0;
++ u16 action;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ if (wrq->u.data.length == 0) {
++ action = HostCmd_ACT_GEN_GET;
++ } else if (wrq->u.data.length > 1) {
++ PRINTM(MSG, "ioctl too many args!\n");
++ ret = -EFAULT;
++ goto ldoexit;
++ } else {
++ if (copy_from_user(&data, wrq->u.data.pointer, sizeof(int))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ ret = -EFAULT;
++ goto ldoexit;
++ }
++ if (data != LDO_INTERNAL && data != LDO_EXTERNAL) {
++ PRINTM(MSG, "Invalid parameter, LDO config not changed.\n");
++ ret = -EFAULT;
++ goto ldoexit;
++ }
++ action = HostCmd_ACT_GEN_SET;
++ }
++ ldocfg.Action = action;
++ ldocfg.PMSource = (u16) data;
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_LDO_CONFIG,
++ action, HostCmd_OPTION_WAITFORRSP,
++ 0, (void *) &ldocfg);
++
++ if (!ret && action == HostCmd_ACT_GEN_GET) {
++ data = (int) ldocfg.PMSource;
++ if (copy_to_user(wrq->u.data.pointer, &data, sizeof(int))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ ret = -EFAULT;
++ goto ldoexit;
++ }
++ wrq->u.data.length = 1;
++ }
++
++ ldoexit:
++ LEAVE();
++ return ret;
++}
++
++#ifdef DEBUG_LEVEL1
++/**
++ * @brief Get/Set the bit mask of driver debug message control
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to wrq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_drv_dbg(wlan_private * priv, struct iwreq *wrq)
++{
++ int data[4];
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ if (wrq->u.data.length == 0) {
++ data[0] = drvdbg;
++ data[1] = ifdbg;
++ /* Return the current driver debug bit masks */
++ if (copy_to_user(wrq->u.data.pointer, data, sizeof(int) * 2)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ ret = -EFAULT;
++ goto drvdbgexit;
++ }
++ wrq->u.data.length = 2;
++ } else if (wrq->u.data.length < 3) {
++ /* Get the driver debug bit masks */
++ if (copy_from_user
++ (data, wrq->u.data.pointer, sizeof(int) * wrq->u.data.length)) {
++ PRINTM(INFO, "Copy from user failed\n");
++ ret = -EFAULT;
++ goto drvdbgexit;
++ }
++ drvdbg = data[0];
++ if (wrq->u.data.length == 2)
++ ifdbg = data[1];
++ } else {
++ PRINTM(INFO, "Invalid parameter number\n");
++ goto drvdbgexit;
++ }
++
++ printk(KERN_ALERT "drvdbg = 0x%x\n", drvdbg);
++#ifdef DEBUG_LEVEL2
++ printk(KERN_ALERT "INFO (%08x) %s\n", DBG_INFO,
++ (drvdbg & DBG_INFO) ? "X" : "");
++ printk(KERN_ALERT "WARN (%08x) %s\n", DBG_WARN,
++ (drvdbg & DBG_WARN) ? "X" : "");
++ printk(KERN_ALERT "ENTRY (%08x) %s\n", DBG_ENTRY,
++ (drvdbg & DBG_ENTRY) ? "X" : "");
++#endif
++ printk(KERN_ALERT "FW_D (%08x) %s\n", DBG_FW_D,
++ (drvdbg & DBG_FW_D) ? "X" : "");
++ printk(KERN_ALERT "CMD_D (%08x) %s\n", DBG_CMD_D,
++ (drvdbg & DBG_CMD_D) ? "X" : "");
++ printk(KERN_ALERT "DAT_D (%08x) %s\n", DBG_DAT_D,
++ (drvdbg & DBG_DAT_D) ? "X" : "");
++
++ printk(KERN_ALERT "INTR (%08x) %s\n", DBG_INTR,
++ (drvdbg & DBG_INTR) ? "X" : "");
++ printk(KERN_ALERT "EVENT (%08x) %s\n", DBG_EVENT,
++ (drvdbg & DBG_EVENT) ? "X" : "");
++ printk(KERN_ALERT "CMND (%08x) %s\n", DBG_CMND,
++ (drvdbg & DBG_CMND) ? "X" : "");
++ printk(KERN_ALERT "DATA (%08x) %s\n", DBG_DATA,
++ (drvdbg & DBG_DATA) ? "X" : "");
++ printk(KERN_ALERT "ERROR (%08x) %s\n", DBG_ERROR,
++ (drvdbg & DBG_ERROR) ? "X" : "");
++ printk(KERN_ALERT "FATAL (%08x) %s\n", DBG_FATAL,
++ (drvdbg & DBG_FATAL) ? "X" : "");
++ printk(KERN_ALERT "MSG (%08x) %s\n", DBG_MSG,
++ (drvdbg & DBG_MSG) ? "X" : "");
++ printk(KERN_ALERT "ifdbg = 0x%x\n", ifdbg);
++ printk(KERN_ALERT "IF_D (%08x) %s\n", DBG_IF_D,
++ (ifdbg & DBG_IF_D) ? "X" : "");
++
++ drvdbgexit:
++ LEAVE();
++ return ret;
++}
++#endif
++
++/**
++ * @brief Commit handler: called after a bunch of SET operations
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_config_commit(struct net_device *dev,
++ struct iw_request_info *info, char *cwrq, char *extra)
++{
++ ENTER();
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get protocol name
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_name(struct net_device *dev, struct iw_request_info *info,
++ char *cwrq, char *extra)
++{
++ const char *cp;
++ char comm[6] = { "COMM-" };
++ char mrvl[6] = { "MRVL-" };
++ int cnt;
++
++ ENTER();
++
++ strcpy(cwrq, mrvl);
++
++ cp = strstr(driver_version, comm);
++ if (cp == driver_version) //skip leading "COMM-"
++ cp = driver_version + strlen(comm);
++ else
++ cp = driver_version;
++
++ cnt = strlen(mrvl);
++ cwrq += cnt;
++ while (cnt < 16 && (*cp != '-')) {
++ *cwrq++ = toupper(*cp++);
++ cnt++;
++ }
++ *cwrq = '\0';
++
++ LEAVE();
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get frequency
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param fwrq A pointer to iw_freq structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_freq(struct net_device *dev, struct iw_request_info *info,
++ struct iw_freq *fwrq, char *extra)
++{
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ CHANNEL_FREQ_POWER *cfp;
++
++ ENTER();
++
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++
++ cfp = find_cfp_by_band_and_channel(Adapter, 0,
++ (u16) Adapter->CurBssParams.
++ BSSDescriptor.Channel);
++
++ if (!cfp) {
++ if (Adapter->CurBssParams.BSSDescriptor.Channel) {
++ PRINTM(INFO, "Invalid channel=%d\n",
++ Adapter->CurBssParams.BSSDescriptor.Channel);
++ }
++ return -EINVAL;
++ }
++
++ fwrq->m = (long) cfp->Freq * 100000;
++ fwrq->e = 1;
++
++ PRINTM(INFO, "freq=%u\n", fwrq->m);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get current BSSID
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param awrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_wap(struct net_device *dev, struct iw_request_info *info,
++ struct sockaddr *awrq, char *extra)
++{
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ memcpy(awrq->sa_data,
++ Adapter->CurBssParams.BSSDescriptor.MacAddress, ETH_ALEN);
++ } else {
++ memset(awrq->sa_data, 0, ETH_ALEN);
++ }
++ awrq->sa_family = ARPHRD_ETHER;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Set Adapter Node Name
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_set_nick(struct net_device *dev, struct iw_request_info *info,
++ struct iw_point *dwrq, char *extra)
++{
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ /*
++ * Check the size of the string
++ */
++
++ if (dwrq->length > 16) {
++ return -E2BIG;
++ }
++
++ memset(Adapter->nodeName, 0, sizeof(Adapter->nodeName));
++ memcpy(Adapter->nodeName, extra, dwrq->length);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get Adapter Node Name
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_nick(struct net_device *dev, struct iw_request_info *info,
++ struct iw_point *dwrq, char *extra)
++{
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ /*
++ * Get the Nick Name saved
++ */
++
++ strncpy(extra, Adapter->nodeName, 16);
++
++ extra[16] = '\0';
++
++ /*
++ * If none, we may want to get the one that was set
++ */
++
++ /*
++ * Push it out !
++ */
++#if WIRELESS_EXT > 20
++ dwrq->length = strlen(extra);
++#else
++ dwrq->length = strlen(extra) + 1;
++#endif
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Set RTS threshold
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_set_rts(struct net_device *dev, struct iw_request_info *info,
++ struct iw_param *vwrq, char *extra)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ int rthr = vwrq->value;
++
++ ENTER();
++
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++
++ if (vwrq->disabled) {
++ Adapter->RTSThsd = rthr = MRVDRV_RTS_MAX_VALUE;
++ } else {
++ if (rthr < MRVDRV_RTS_MIN_VALUE || rthr > MRVDRV_RTS_MAX_VALUE)
++ return -EINVAL;
++ Adapter->RTSThsd = rthr;
++ }
++
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_802_11_SNMP_MIB,
++ HostCmd_ACT_SET, HostCmd_OPTION_WAITFORRSP,
++ OID_802_11_RTS_THRESHOLD, &rthr);
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Get RTS threshold
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_rts(struct net_device *dev, struct iw_request_info *info,
++ struct iw_param *vwrq, char *extra)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++
++ Adapter->RTSThsd = 0;
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_802_11_SNMP_MIB,
++ HostCmd_ACT_GET, HostCmd_OPTION_WAITFORRSP,
++ OID_802_11_RTS_THRESHOLD, NULL);
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++
++ vwrq->value = Adapter->RTSThsd;
++ vwrq->disabled = ((vwrq->value < MRVDRV_RTS_MIN_VALUE)
++ || (vwrq->value > MRVDRV_RTS_MAX_VALUE));
++ vwrq->fixed = 1;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Set Fragment threshold
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_set_frag(struct net_device *dev, struct iw_request_info *info,
++ struct iw_param *vwrq, char *extra)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ int fthr = vwrq->value;
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++
++ if (vwrq->disabled) {
++ Adapter->FragThsd = fthr = MRVDRV_FRAG_MAX_VALUE;
++ } else {
++ if (fthr < MRVDRV_FRAG_MIN_VALUE || fthr > MRVDRV_FRAG_MAX_VALUE)
++ return -EINVAL;
++ Adapter->FragThsd = fthr;
++ }
++
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_802_11_SNMP_MIB,
++ HostCmd_ACT_SET, HostCmd_OPTION_WAITFORRSP,
++ OID_802_11_FRAGMENTATION_THRESHOLD, &fthr);
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Get Fragment threshold
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_frag(struct net_device *dev, struct iw_request_info *info,
++ struct iw_param *vwrq, char *extra)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++
++ Adapter->FragThsd = 0;
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_SNMP_MIB, HostCmd_ACT_GET,
++ HostCmd_OPTION_WAITFORRSP,
++ OID_802_11_FRAGMENTATION_THRESHOLD, NULL);
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++
++ vwrq->value = Adapter->FragThsd;
++ vwrq->disabled = ((vwrq->value < MRVDRV_FRAG_MIN_VALUE)
++ || (vwrq->value > MRVDRV_FRAG_MAX_VALUE));
++ vwrq->fixed = 1;
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Get Wlan Mode
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_mode(struct net_device *dev,
++ struct iw_request_info *info, u32 * uwrq, char *extra)
++{
++ wlan_private *priv = dev->priv;
++ wlan_adapter *adapter = priv->adapter;
++
++ ENTER();
++
++ switch (adapter->InfrastructureMode) {
++ case Wlan802_11IBSS:
++ *uwrq = IW_MODE_ADHOC;
++ break;
++
++ case Wlan802_11Infrastructure:
++ *uwrq = IW_MODE_INFRA;
++ break;
++
++ default:
++ case Wlan802_11AutoUnknown:
++ *uwrq = IW_MODE_AUTO;
++ break;
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get Encryption key
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_encode(struct net_device *dev,
++ struct iw_request_info *info,
++ struct iw_point *dwrq, u8 * extra)
++{
++
++ wlan_private *priv = dev->priv;
++ wlan_adapter *adapter = priv->adapter;
++ int index = (dwrq->flags & IW_ENCODE_INDEX);
++
++ ENTER();
++
++ PRINTM(INFO, "flags=0x%x index=%d length=%d CurrentWepKeyIndex=%d\n",
++ dwrq->flags, index, dwrq->length, adapter->CurrentWepKeyIndex);
++ if (index < 0 || index > 4) {
++ PRINTM(INFO, "Key index #%d out of range.\n", index);
++ LEAVE();
++ return -EINVAL;
++ }
++ if (adapter->CurrentWepKeyIndex >= MRVL_NUM_WEP_KEY)
++ adapter->CurrentWepKeyIndex = 0;
++ dwrq->flags = 0;
++
++ /*
++ * Check encryption mode
++ */
++
++ switch (adapter->SecInfo.AuthenticationMode) {
++ case Wlan802_11AuthModeOpen:
++ dwrq->flags = IW_ENCODE_OPEN;
++ break;
++
++ case Wlan802_11AuthModeShared:
++ case Wlan802_11AuthModeNetworkEAP:
++ dwrq->flags = IW_ENCODE_RESTRICTED;
++ break;
++ default:
++ dwrq->flags = IW_ENCODE_DISABLED | IW_ENCODE_OPEN;
++ break;
++ }
++
++ if ((adapter->SecInfo.WEPStatus == Wlan802_11WEPEnabled)
++ || (adapter->SecInfo.WEPStatus == Wlan802_11WEPKeyAbsent)
++ || adapter->SecInfo.WPAEnabled || adapter->SecInfo.WPA2Enabled) {
++ dwrq->flags &= ~IW_ENCODE_DISABLED;
++ } else {
++ dwrq->flags |= IW_ENCODE_DISABLED;
++ }
++
++ memset(extra, 0, 16);
++
++ if (!index) {
++ /* Handle current key request */
++ if ((adapter->WepKey[adapter->CurrentWepKeyIndex].KeyLength) &&
++ (adapter->SecInfo.WEPStatus == Wlan802_11WEPEnabled)) {
++ index = adapter->WepKey[adapter->CurrentWepKeyIndex].KeyIndex;
++ memcpy(extra, adapter->WepKey[index].KeyMaterial,
++ adapter->WepKey[index].KeyLength);
++ dwrq->length = adapter->WepKey[index].KeyLength;
++ /* return current key */
++ dwrq->flags |= (index + 1);
++ /* return WEP enabled */
++ dwrq->flags &= ~IW_ENCODE_DISABLED;
++ } else if ((adapter->SecInfo.WPAEnabled)
++ || (adapter->SecInfo.WPA2Enabled)
++ ) {
++ /* return WPA enabled */
++ dwrq->flags &= ~IW_ENCODE_DISABLED;
++ } else {
++ dwrq->flags |= IW_ENCODE_DISABLED;
++ }
++ } else {
++ /* Handle specific key requests */
++ index--;
++ if (adapter->WepKey[index].KeyLength) {
++ memcpy(extra, adapter->WepKey[index].KeyMaterial,
++ adapter->WepKey[index].KeyLength);
++ dwrq->length = adapter->WepKey[index].KeyLength;
++ /* return current key */
++ dwrq->flags |= (index + 1);
++ /* return WEP enabled */
++ dwrq->flags &= ~IW_ENCODE_DISABLED;
++ } else if ((adapter->SecInfo.WPAEnabled)
++ || (adapter->SecInfo.WPA2Enabled)
++ ) {
++ /* return WPA enabled */
++ dwrq->flags &= ~IW_ENCODE_DISABLED;
++ } else {
++ dwrq->flags |= IW_ENCODE_DISABLED;
++ }
++ }
++
++ dwrq->flags |= IW_ENCODE_NOKEY;
++
++ PRINTM(INFO, "Key:%02x:%02x:%02x:%02x:%02x:%02x KeyLen=%d\n",
++ extra[0], extra[1], extra[2],
++ extra[3], extra[4], extra[5], dwrq->length);
++
++ PRINTM(INFO, "Return flags=0x%x\n", dwrq->flags);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get TX Power
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_txpow(struct net_device *dev,
++ struct iw_request_info *info,
++ struct iw_param *vwrq, char *extra)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_RF_TX_POWER,
++ HostCmd_ACT_GEN_GET,
++ HostCmd_OPTION_WAITFORRSP, 0, NULL);
++
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++
++ PRINTM(INFO, "TXPOWER GET %d dbm.\n", Adapter->TxPowerLevel);
++ vwrq->value = Adapter->TxPowerLevel;
++ vwrq->fixed = 1;
++ if (Adapter->RadioOn) {
++ vwrq->disabled = 0;
++ vwrq->flags = IW_TXPOW_DBM;
++ } else {
++ vwrq->disabled = 1;
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Set TX Retry Count
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_set_retry(struct net_device *dev, struct iw_request_info *info,
++ struct iw_param *vwrq, char *extra)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_private *priv = dev->priv;
++ wlan_adapter *adapter = priv->adapter;
++
++ ENTER();
++
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++
++ if (vwrq->flags == IW_RETRY_LIMIT) {
++ /* The MAC has a 4-bit Total_Tx_Count register
++ Total_Tx_Count = 1 + Tx_Retry_Count */
++#define TX_RETRY_MIN 0
++#define TX_RETRY_MAX 14
++ if (vwrq->value < TX_RETRY_MIN || vwrq->value > TX_RETRY_MAX)
++ return -EINVAL;
++
++ /* Set Tx retry count */
++ adapter->TxRetryCount = vwrq->value + 1;
++
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_802_11_SNMP_MIB,
++ HostCmd_ACT_SET,
++ HostCmd_OPTION_WAITFORRSP,
++ OID_802_11_TX_RETRYCOUNT, NULL);
++
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++ } else {
++ return -EOPNOTSUPP;
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get TX Retry Count
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_retry(struct net_device *dev, struct iw_request_info *info,
++ struct iw_param *vwrq, char *extra)
++{
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++
++ Adapter->TxRetryCount = 0;
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_SNMP_MIB, HostCmd_ACT_GET,
++ HostCmd_OPTION_WAITFORRSP,
++ OID_802_11_TX_RETRYCOUNT, NULL);
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++ vwrq->disabled = 0;
++ if (!vwrq->flags) {
++ vwrq->flags = IW_RETRY_LIMIT;
++ /* Get Tx retry count */
++ vwrq->value = Adapter->TxRetryCount - 1;
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Sort Channels
++ *
++ * @param freq A pointer to iw_freq structure
++ * @param num number of Channels
++ * @return NA
++ */
++static inline void
++sort_channels(struct iw_freq *freq, int num)
++{
++ int i, j;
++ struct iw_freq temp;
++
++ for (i = 0; i < num; i++)
++ for (j = i + 1; j < num; j++)
++ if (freq[i].i > freq[j].i) {
++ temp.i = freq[i].i;
++ temp.m = freq[i].m;
++
++ freq[i].i = freq[j].i;
++ freq[i].m = freq[j].m;
++
++ freq[j].i = temp.i;
++ freq[j].m = temp.m;
++ }
++}
++
++/* data rate listing
++ MULTI_BANDS:
++ abg a b b/g
++ Infra G(12) A(8) B(4) G(12)
++ Adhoc A+B(12) A(8) B(4) B(4)
++
++ non-MULTI_BANDS:
++ b b/g
++ Infra B(4) G(12)
++ Adhoc B(4) B(4)
++ */
++/**
++ * @brief Get Range Info
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_range(struct net_device *dev, struct iw_request_info *info,
++ struct iw_point *dwrq, char *extra)
++{
++ int i, j;
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ struct iw_range *range = (struct iw_range *) extra;
++ CHANNEL_FREQ_POWER *cfp;
++ WLAN_802_11_RATES rates;
++
++ ENTER();
++
++ dwrq->length = sizeof(struct iw_range);
++ memset(range, 0, sizeof(struct iw_range));
++
++ range->min_nwid = 0;
++ range->max_nwid = 0;
++
++ memset(rates, 0, sizeof(rates));
++ range->num_bitrates = get_active_data_rates(Adapter, rates);
++ if (range->num_bitrates > sizeof(rates))
++ range->num_bitrates = sizeof(rates);
++
++ for (i = 0; i < MIN(range->num_bitrates, IW_MAX_BITRATES) && rates[i];
++ i++) {
++ range->bitrate[i] = (rates[i] & 0x7f) * 500000;
++ }
++ range->num_bitrates = i;
++ PRINTM(INFO, "IW_MAX_BITRATES=%d num_bitrates=%d\n", IW_MAX_BITRATES,
++ range->num_bitrates);
++
++ range->num_frequency = 0;
++ if (wlan_get_state_11d(priv) == ENABLE_11D &&
++ Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ u8 chan_no;
++ u8 band;
++
++ parsed_region_chan_11d_t *parsed_region_chan =
++ &Adapter->parsed_region_chan;
++
++ band = parsed_region_chan->band;
++ PRINTM(INFO, "band=%d NoOfChan=%d\n", band,
++ parsed_region_chan->NoOfChan);
++
++ for (i = 0; (range->num_frequency < IW_MAX_FREQUENCIES)
++ && (i < parsed_region_chan->NoOfChan); i++) {
++ chan_no = parsed_region_chan->chanPwr[i].chan;
++ PRINTM(INFO, "chan_no=%d\n", chan_no);
++ range->freq[range->num_frequency].i = (long) chan_no;
++ range->freq[range->num_frequency].m =
++ (long) chan_2_freq(chan_no, band) * 100000;
++ range->freq[range->num_frequency].e = 1;
++ range->num_frequency++;
++ }
++ } else {
++ for (j = 0; (range->num_frequency < IW_MAX_FREQUENCIES)
++ && (j < sizeof(Adapter->region_channel)
++ / sizeof(Adapter->region_channel[0])); j++) {
++ cfp = Adapter->region_channel[j].CFP;
++ for (i = 0; (range->num_frequency < IW_MAX_FREQUENCIES)
++ && Adapter->region_channel[j].Valid
++ && cfp && (i < Adapter->region_channel[j].NrCFP); i++) {
++ range->freq[range->num_frequency].i = (long) cfp->Channel;
++ range->freq[range->num_frequency].m =
++ (long) cfp->Freq * 100000;
++ range->freq[range->num_frequency].e = 1;
++ cfp++;
++ range->num_frequency++;
++ }
++ }
++ }
++
++ PRINTM(INFO, "IW_MAX_FREQUENCIES=%d num_frequency=%d\n",
++ IW_MAX_FREQUENCIES, range->num_frequency);
++
++ range->num_channels = range->num_frequency;
++
++ sort_channels(&range->freq[0], range->num_frequency);
++
++ /*
++ * Set an indication of the max TCP throughput in bit/s that we can
++ * expect using this interface
++ */
++ if (i > 2)
++ range->throughput = 5000 * 1000;
++ else
++ range->throughput = 1500 * 1000;
++
++ range->min_rts = MRVDRV_RTS_MIN_VALUE;
++ range->max_rts = MRVDRV_RTS_MAX_VALUE;
++ range->min_frag = MRVDRV_FRAG_MIN_VALUE;
++ range->max_frag = MRVDRV_FRAG_MAX_VALUE;
++
++ range->encoding_size[0] = 5;
++ range->encoding_size[1] = 13;
++ range->num_encoding_sizes = 2;
++ range->max_encoding_tokens = 4;
++
++#define IW_POWER_PERIOD_MIN 1000000 /* 1 sec */
++#define IW_POWER_PERIOD_MAX 120000000 /* 2 min */
++#define IW_POWER_TIMEOUT_MIN 1000 /* 1 ms */
++#define IW_POWER_TIMEOUT_MAX 1000000 /* 1 sec */
++
++ /* Power Management duration & timeout */
++ range->min_pmp = IW_POWER_PERIOD_MIN;
++ range->max_pmp = IW_POWER_PERIOD_MAX;
++ range->min_pmt = IW_POWER_TIMEOUT_MIN;
++ range->max_pmt = IW_POWER_TIMEOUT_MAX;
++ range->pmp_flags = IW_POWER_PERIOD;
++ range->pmt_flags = IW_POWER_TIMEOUT;
++ range->pm_capa = IW_POWER_PERIOD | IW_POWER_TIMEOUT | IW_POWER_ALL_R;
++
++ /*
++ * Minimum version we recommend
++ */
++ range->we_version_source = 15;
++
++ /*
++ * Version we are compiled with
++ */
++ range->we_version_compiled = WIRELESS_EXT;
++
++ range->retry_capa = IW_RETRY_LIMIT;
++ range->retry_flags = IW_RETRY_LIMIT | IW_RETRY_MAX;
++
++ range->min_retry = TX_RETRY_MIN;
++ range->max_retry = TX_RETRY_MAX;
++
++ /*
++ * Set the qual, level and noise range values
++ */
++ /*
++ * need to put the right values here
++ */
++#define IW_MAX_QUAL_PERCENT 100
++#define IW_AVG_QUAL_PERCENT 70
++ range->max_qual.qual = IW_MAX_QUAL_PERCENT;
++ range->max_qual.level = 0;
++ range->max_qual.noise = 0;
++
++ range->avg_qual.qual = IW_AVG_QUAL_PERCENT;
++ range->avg_qual.level = 0;
++ range->avg_qual.noise = 0;
++
++ range->sensitivity = 0;
++ /*
++ * Setup the supported power level ranges
++ */
++ memset(range->txpower, 0, sizeof(range->txpower));
++ range->txpower[0] = Adapter->MinTxPowerLevel;
++ range->txpower[1] = Adapter->MaxTxPowerLevel;
++ range->num_txpower = 2;
++ range->txpower_capa = IW_TXPOW_DBM | IW_TXPOW_RANGE;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Set power management
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++int
++wlan_set_power(struct net_device *dev, struct iw_request_info *info,
++ struct iw_param *vwrq, char *extra)
++{
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++
++ /* PS is currently supported only in Infrastructure Mode
++ * Remove this check if it is to be supported in IBSS mode also
++ */
++
++ if (vwrq->disabled) {
++ Adapter->PSMode = Wlan802_11PowerModeCAM;
++ if (Adapter->PSState != PS_STATE_FULL_POWER) {
++ PSWakeup(priv, HostCmd_OPTION_WAITFORRSP);
++ }
++
++ return 0;
++ }
++
++ if ((vwrq->flags & IW_POWER_TYPE) == IW_POWER_TIMEOUT) {
++ PRINTM(INFO, "Setting power timeout command is not supported\n");
++ return -EINVAL;
++ } else if ((vwrq->flags & IW_POWER_TYPE) == IW_POWER_PERIOD) {
++ PRINTM(INFO, "Setting power period command is not supported\n");
++ return -EINVAL;
++ }
++
++ if (Adapter->PSMode != Wlan802_11PowerModeCAM) {
++ return WLAN_STATUS_SUCCESS;
++ }
++
++ Adapter->PSMode = Wlan802_11PowerModeMAX_PSP;
++
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ PSSleep(priv, HostCmd_OPTION_WAITFORRSP);
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get power management
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_power(struct net_device *dev, struct iw_request_info *info,
++ struct iw_param *vwrq, char *extra)
++{
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ int mode;
++
++ ENTER();
++
++ mode = Adapter->PSMode;
++
++ if ((vwrq->disabled = (mode == Wlan802_11PowerModeCAM))
++ || Adapter->MediaConnectStatus == WlanMediaStateDisconnected) {
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++ }
++
++ vwrq->value = 0;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Set sensitivity threshold
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_set_sens(struct net_device *dev, struct iw_request_info *info,
++ struct iw_param *vwrq, char *extra)
++{
++ ENTER();
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get sensitivity threshold
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_FAILURE
++ */
++static int
++wlan_get_sens(struct net_device *dev,
++ struct iw_request_info *info, struct iw_param *vwrq,
++ char *extra)
++{
++ ENTER();
++ LEAVE();
++ return WLAN_STATUS_FAILURE;
++}
++
++/**
++ * @brief Append/Reset IE buffer.
++ *
++ * Pass an opaque block of data, expected to be IEEE IEs, to the driver
++ * for eventual passthrough to the firmware in an associate/join
++ * (and potentially start) command. This function is the main body
++ * for both wlan_set_gen_ie_ioctl and wlan_set_gen_ie
++ *
++ * Data is appended to an existing buffer and then wrapped in a passthrough
++ * TLV in the command API to the firmware. The firmware treats the data
++ * as a transparent passthrough to the transmitted management frame.
++ *
++ * @param Adapter A pointer to wlan_private structure
++ * @param ie_data_ptr A pointer to iwreq structure
++ * @param ie_len Length of the IE or IE block passed in ie_data_ptr
++ *
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_set_gen_ie_helper(wlan_private * priv, u8 * ie_data_ptr, u16 ie_len)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_adapter *Adapter = priv->adapter;
++ IEEEtypes_VendorHeader_t *pVendorIe;
++ const u8 wpa_oui[] = { 0x00, 0x50, 0xf2, 0x01 };
++ const u8 wps_oui[] = { 0x00, 0x50, 0xf2, 0x04 };
++ /* If the passed length is zero, reset the buffer */
++ if (ie_len == 0) {
++ Adapter->genIeBufferLen = 0;
++
++ } else if (ie_data_ptr == NULL) {
++ /* NULL check */
++ ret = -EINVAL;
++ } else {
++
++ pVendorIe = (IEEEtypes_VendorHeader_t *) ie_data_ptr;
++
++ /* Test to see if it is a WPA IE, if not, then it is a gen IE */
++ if ((pVendorIe->ElementId == RSN_IE)
++ || ((pVendorIe->ElementId == WPA_IE)
++ && (pVendorIe->OuiType == wpa_oui[3])
++ && (memcmp(pVendorIe->Oui, wpa_oui, sizeof(pVendorIe->Oui)) ==
++ 0))) {
++
++ /* IE is a WPA/WPA2 IE so call set_wpa function */
++ ret = wlan_set_wpa_ie_helper(priv, ie_data_ptr, ie_len);
++ } else if ((pVendorIe->ElementId == WPS_IE)
++ && (memcmp(pVendorIe->Oui, wps_oui, sizeof(pVendorIe->Oui))
++ == 0)
++ && (pVendorIe->OuiType == wps_oui[3])) {
++ /*
++ * Discard first two byte (Element ID and Length)
++ * because they are not needed in the case of setting WPS_IE
++ */
++ if (pVendorIe->Len > 4) {
++ memcpy((u8 *) & Adapter->wps.wpsIe, ie_data_ptr, ie_len);
++ HEXDUMP("wpsIe",
++ (u8 *) & Adapter->wps.wpsIe,
++ Adapter->wps.wpsIe.VendHdr.Len + 2);
++
++ } else {
++ /* Only wps oui exist, reset driver wps buffer */
++ memset((u8 *) & Adapter->wps.wpsIe,
++ 0x00, sizeof(Adapter->wps.wpsIe));
++ PRINTM(INFO, "wpsIe cleared\n");
++ }
++ } else {
++ /*
++ * Verify that the passed length is not larger than the available
++ * space remaining in the buffer
++ */
++ if (ie_len < (sizeof(Adapter->genIeBuffer)
++ - Adapter->genIeBufferLen)) {
++
++ /* Append the passed data to the end of the genIeBuffer */
++ if (copy_from_user((Adapter->genIeBuffer
++ + Adapter->genIeBufferLen),
++ ie_data_ptr, ie_len)) {
++ PRINTM(INFO, "Copy from user failed\n");
++ ret = -EFAULT;
++
++ } else {
++ /* Increment the stored buffer length by the size passed */
++ Adapter->genIeBufferLen += ie_len;
++ }
++
++ } else {
++ /* Passed data does not fit in the remaining buffer space */
++ ret = WLAN_STATUS_FAILURE;
++ }
++ }
++ }
++
++ /* Return WLAN_STATUS_SUCCESS, or < 0 for error case */
++ return ret;
++}
++
++/**
++ * @brief Get IE buffer from driver
++ *
++ * Used to pass an opaque block of data, expected to be IEEE IEs,
++ * back to the application. Currently the data block passed
++ * back to the application is the saved association response retrieved
++ * from the firmware.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param ie_data_ptr A pointer to the IE or IE block
++ * @param ie_len_ptr In/Out parameter pointer for the buffer length passed
++ * in ie_data_ptr and the resulting data length copied
++ *
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_gen_ie_helper(wlan_private * priv,
++ u8 * ie_data_ptr, u16 * ie_len_ptr)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ IEEEtypes_AssocRsp_t *pAssocRsp;
++ int copySize;
++
++ pAssocRsp = (IEEEtypes_AssocRsp_t *) Adapter->assocRspBuffer;
++
++ /*
++ * Set the amount to copy back to the application as the minimum of the
++ * available IE data or the buffer provided by the application
++ */
++ copySize = (Adapter->assocRspSize - sizeof(pAssocRsp->Capability) -
++ -sizeof(pAssocRsp->StatusCode) - sizeof(pAssocRsp->AId));
++ copySize = MIN(copySize, *ie_len_ptr);
++
++ /* Copy the IEEE TLVs in the assoc response back to the application */
++ if (copy_to_user(ie_data_ptr, (u8 *) pAssocRsp->IEBuffer, copySize)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++
++ /* Returned copy length */
++ *ie_len_ptr = copySize;
++
++ /* No error on return */
++ return WLAN_STATUS_SUCCESS;
++}
++
++#if (WIRELESS_EXT >= 18)
++/**
++ * @brief Set IE
++ *
++ * Calls main function set_gen_ie_fuct that adds the inputted IE
++ * to the genie buffer
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param dwrq A pointer to iw_point structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_set_gen_ie(struct net_device *dev,
++ struct iw_request_info *info,
++ struct iw_point *dwrq, char *extra)
++{
++ return wlan_set_gen_ie_helper(dev->priv, dwrq->pointer, dwrq->length);
++}
++
++/**
++ * @brief Get IE
++ *
++ * Calls main function get_gen_ie_fuct that retrieves expected IEEE IEs
++ * and places then in the iw_point structure
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param dwrq A pointer to iw_point structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_gen_ie(struct net_device *dev,
++ struct iw_request_info *info,
++ struct iw_point *dwrq, char *extra)
++{
++ return wlan_get_gen_ie_helper(dev->priv, dwrq->pointer, &dwrq->length);
++}
++
++/**
++ * @brief Set authentication mode
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_setauthalg(wlan_private * priv, int alg)
++{
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ PRINTM(INFO, "auth alg is %#x\n", alg);
++
++ switch (alg) {
++ case IW_AUTH_ALG_SHARED_KEY:
++ Adapter->SecInfo.AuthenticationMode = Wlan802_11AuthModeShared;
++ break;
++ case IW_AUTH_ALG_LEAP:
++ //clear WPA IE
++ wlan_set_wpa_ie_helper(priv, NULL, 0);
++ Adapter->SecInfo.AuthenticationMode = Wlan802_11AuthModeNetworkEAP;
++ break;
++ case IW_AUTH_ALG_OPEN_SYSTEM:
++ default:
++ Adapter->SecInfo.AuthenticationMode = Wlan802_11AuthModeOpen;
++ break;
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief set authentication mode params
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_set_auth(struct net_device *dev, struct iw_request_info *info,
++ struct iw_param *vwrq, char *extra)
++{
++ wlan_private *priv = dev->priv;
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++ switch (vwrq->flags & IW_AUTH_INDEX) {
++ case IW_AUTH_CIPHER_PAIRWISE:
++ case IW_AUTH_CIPHER_GROUP:
++ if (vwrq->value & IW_AUTH_CIPHER_NONE)
++ priv->adapter->SecInfo.EncryptionMode = CIPHER_NONE;
++ else if (vwrq->value & IW_AUTH_CIPHER_WEP40)
++ priv->adapter->SecInfo.EncryptionMode = CIPHER_WEP40;
++ else if (vwrq->value & IW_AUTH_CIPHER_TKIP)
++ priv->adapter->SecInfo.EncryptionMode = CIPHER_TKIP;
++ else if (vwrq->value & IW_AUTH_CIPHER_CCMP)
++ priv->adapter->SecInfo.EncryptionMode = CIPHER_CCMP;
++ else if (vwrq->value & IW_AUTH_CIPHER_WEP104)
++ priv->adapter->SecInfo.EncryptionMode = CIPHER_WEP104;
++ break;
++ case IW_AUTH_80211_AUTH_ALG:
++ wlan_setauthalg(priv, vwrq->value);
++ break;
++ case IW_AUTH_WPA_ENABLED:
++ if (vwrq->value == FALSE)
++ wlan_set_wpa_ie_helper(priv, NULL, 0);
++ break;
++ case IW_AUTH_WPA_VERSION:
++ case IW_AUTH_KEY_MGMT:
++ case IW_AUTH_TKIP_COUNTERMEASURES:
++ case IW_AUTH_DROP_UNENCRYPTED:
++ case IW_AUTH_RX_UNENCRYPTED_EAPOL:
++ case IW_AUTH_ROAMING_CONTROL:
++ case IW_AUTH_PRIVACY_INVOKED:
++ default:
++ break;
++ }
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief get authentication mode params
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_auth(struct net_device *dev, struct iw_request_info *info,
++ struct iw_param *vwrq, char *extra)
++{
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++ ENTER();
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++ switch (vwrq->flags & IW_AUTH_INDEX) {
++ case IW_AUTH_CIPHER_PAIRWISE:
++ case IW_AUTH_CIPHER_GROUP:
++ if (priv->adapter->SecInfo.EncryptionMode == CIPHER_NONE)
++ vwrq->value = IW_AUTH_CIPHER_NONE;
++ else if (priv->adapter->SecInfo.EncryptionMode == CIPHER_WEP40)
++ vwrq->value = IW_AUTH_CIPHER_WEP40;
++ else if (priv->adapter->SecInfo.EncryptionMode == CIPHER_TKIP)
++ vwrq->value = IW_AUTH_CIPHER_TKIP;
++ else if (priv->adapter->SecInfo.EncryptionMode == CIPHER_CCMP)
++ vwrq->value = IW_AUTH_CIPHER_CCMP;
++ else if (priv->adapter->SecInfo.EncryptionMode == CIPHER_WEP104)
++ vwrq->value = IW_AUTH_CIPHER_WEP104;
++ break;
++ case IW_AUTH_80211_AUTH_ALG:
++ if (Adapter->SecInfo.AuthenticationMode == Wlan802_11AuthModeShared)
++ vwrq->value = IW_AUTH_ALG_SHARED_KEY;
++ else if (Adapter->SecInfo.AuthenticationMode ==
++ Wlan802_11AuthModeNetworkEAP)
++ vwrq->value = IW_AUTH_ALG_LEAP;
++ else
++ vwrq->value = IW_AUTH_ALG_OPEN_SYSTEM;
++ break;
++ case IW_AUTH_WPA_ENABLED:
++ if (Adapter->Wpa_ie_len > 0)
++ vwrq->value = TRUE;
++ else
++ vwrq->value = FALSE;
++ break;
++ case IW_AUTH_WPA_VERSION:
++ case IW_AUTH_KEY_MGMT:
++ case IW_AUTH_TKIP_COUNTERMEASURES:
++ case IW_AUTH_DROP_UNENCRYPTED:
++ case IW_AUTH_RX_UNENCRYPTED_EAPOL:
++ case IW_AUTH_ROAMING_CONTROL:
++ case IW_AUTH_PRIVACY_INVOKED:
++ default:
++ ret = -EOPNOTSUPP;
++ break;
++ }
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Request MLME operation
++ *
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param dwrq A pointer to iw_point structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_set_mlme(struct net_device *dev,
++ struct iw_request_info *info,
++ struct iw_point *dwrq, char *extra)
++{
++ struct iw_mlme *mlme = (struct iw_mlme *) extra;
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++ if ((mlme->cmd == IW_MLME_DEAUTH) || (mlme->cmd == IW_MLME_DISASSOC)) {
++ if (Adapter->InfrastructureMode == Wlan802_11Infrastructure &&
++ Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ SendDeauthentication(priv);
++ } else if (Adapter->InfrastructureMode == Wlan802_11IBSS &&
++ Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ StopAdhocNetwork(priv);
++ }
++ }
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Extended version of encoding configuration
++ *
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param dwrq A pointer to iw_point structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_set_encode_ext(struct net_device *dev,
++ struct iw_request_info *info,
++ struct iw_point *dwrq, char *extra)
++{
++ struct iw_encode_ext *ext = (struct iw_encode_ext *) extra;
++ wlan_private *priv = dev->priv;
++ WLAN_802_11_KEY *pkey;
++ int keyindex;
++ u8 *pKeyMaterial = NULL;
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++ keyindex = dwrq->flags & IW_ENCODE_INDEX;
++ if (keyindex > 4)
++ return -EINVAL;
++ if (ext->key_len > (dwrq->length - sizeof(struct iw_encode_ext)))
++ return -EINVAL;
++ pKeyMaterial = (u8 *) (ext + 1);
++ //Disable Key
++ if ((dwrq->flags & IW_ENCODE_DISABLED) && (ext->key_len == 0)) {
++ dwrq->length = 0;
++ wlan_set_encode_nonwpa(dev, info, dwrq, extra);
++ return WLAN_STATUS_SUCCESS;
++ }
++ //Set WEP key
++ if (ext->key_len <= MAX_WEP_KEY_SIZE) {
++ dwrq->length = ext->key_len;
++ wlan_set_encode_nonwpa(dev, info, dwrq, pKeyMaterial);
++ if (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY) {
++ dwrq->length = 0;
++ wlan_set_encode_nonwpa(dev, info, dwrq, extra);
++ }
++ } else {
++ pkey = kmalloc(sizeof(WLAN_802_11_KEY) + ext->key_len, GFP_KERNEL);
++ if (!pkey) {
++ PRINTM(INFO, "allocate key buffer failed!\n");
++ return -ENOMEM;
++ }
++ memset(pkey, 0, sizeof(WLAN_802_11_KEY) + ext->key_len);
++ memcpy((u8 *) pkey->BSSID, (u8 *) ext->addr.sa_data, ETH_ALEN);
++ pkey->KeyLength = ext->key_len;
++ memcpy(pkey->KeyMaterial, pKeyMaterial, ext->key_len);
++ pkey->KeyIndex = keyindex - 1;
++ if (pkey->KeyIndex == 0)
++ pkey->KeyIndex = 0x40000000;
++ if (ext->ext_flags & IW_ENCODE_EXT_RX_SEQ_VALID)
++ memcpy((u8 *) & pkey->KeyRSC, ext->rx_seq,
++ IW_ENCODE_SEQ_MAX_SIZE);
++ pkey->Length = sizeof(WLAN_802_11_KEY) + ext->key_len;
++ wlan_set_encode_wpa(dev, info, dwrq, (u8 *) pkey);
++ kfree(pkey);
++ }
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Extended version of encoding configuration
++ *
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param dwrq A pointer to iw_point structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_encode_ext(struct net_device *dev,
++ struct iw_request_info *info,
++ struct iw_point *dwrq, char *extra)
++{
++ return -EOPNOTSUPP;
++}
++#endif /* #if (WIRELESS_EXT >= 18) */
++
++/**
++ * @brief Append/Reset IE buffer.
++ *
++ * Pass an opaque block of data, expected to be IEEE IEs, to the driver
++ * for eventual passthrough to the firmware in an associate/join
++ * (and potentially start) command.
++ *
++ * Data is appended to an existing buffer and then wrapped in a passthrough
++ * TLV in the command API to the firmware. The firmware treats the data
++ * as a transparent passthrough to the transmitted management frame.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_set_gen_ie_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ return wlan_set_gen_ie_helper(priv,
++ wrq->u.data.pointer, wrq->u.data.length);
++}
++
++/**
++ * @brief Get IE buffer from driver
++ *
++ * Used to pass an opaque block of data, expected to be IEEE IEs,
++ * back to the application. Currently the data block passed
++ * back to the application is the saved association response retrieved
++ * from the firmware.
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to iwreq structure
++ *
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_gen_ie_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ return wlan_get_gen_ie_helper(priv,
++ wrq->u.data.pointer, &wrq->u.data.length);
++}
++
++/*
++ * iwconfig settable callbacks
++ */
++static const iw_handler wlan_handler[] = {
++ (iw_handler) wlan_config_commit, /* SIOCSIWCOMMIT */
++ (iw_handler) wlan_get_name, /* SIOCGIWNAME */
++ (iw_handler) NULL, /* SIOCSIWNWID */
++ (iw_handler) NULL, /* SIOCGIWNWID */
++ (iw_handler) wlan_set_freq, /* SIOCSIWFREQ */
++ (iw_handler) wlan_get_freq, /* SIOCGIWFREQ */
++ (iw_handler) wlan_set_mode, /* SIOCSIWMODE */
++ (iw_handler) wlan_get_mode, /* SIOCGIWMODE */
++ (iw_handler) wlan_set_sens, /* SIOCSIWSENS */
++ (iw_handler) wlan_get_sens, /* SIOCGIWSENS */
++ (iw_handler) NULL, /* SIOCSIWRANGE */
++ (iw_handler) wlan_get_range, /* SIOCGIWRANGE */
++ (iw_handler) NULL, /* SIOCSIWPRIV */
++ (iw_handler) NULL, /* SIOCGIWPRIV */
++ (iw_handler) NULL, /* SIOCSIWSTATS */
++ (iw_handler) NULL, /* SIOCGIWSTATS */
++#if WIRELESS_EXT > 15
++ iw_handler_set_spy, /* SIOCSIWSPY */
++ iw_handler_get_spy, /* SIOCGIWSPY */
++ iw_handler_set_thrspy, /* SIOCSIWTHRSPY */
++ iw_handler_get_thrspy, /* SIOCGIWTHRSPY */
++#else /* WIRELESS_EXT > 15 */
++#ifdef WIRELESS_SPY
++ (iw_handler) wlan_set_spy, /* SIOCSIWSPY */
++ (iw_handler) wlan_get_spy, /* SIOCGIWSPY */
++#else /* WIRELESS_SPY */
++ (iw_handler) NULL, /* SIOCSIWSPY */
++ (iw_handler) NULL, /* SIOCGIWSPY */
++#endif /* WIRELESS_SPY */
++ (iw_handler) NULL, /* -- hole -- */
++ (iw_handler) NULL, /* -- hole -- */
++#endif /* WIRELESS_EXT > 15 */
++ (iw_handler) wlan_set_wap, /* SIOCSIWAP */
++ (iw_handler) wlan_get_wap, /* SIOCGIWAP */
++#if WIRELESS_EXT >= 18
++ (iw_handler) wlan_set_mlme, /* SIOCSIWMLME */
++#else
++ (iw_handler) NULL, /* -- hole -- */
++#endif
++ //(iw_handler) wlan_get_aplist, /* SIOCGIWAPLIST */
++ NULL, /* SIOCGIWAPLIST */
++#if WIRELESS_EXT > 13
++ (iw_handler) wlan_set_scan, /* SIOCSIWSCAN */
++ (iw_handler) wlan_get_scan, /* SIOCGIWSCAN */
++#else /* WIRELESS_EXT > 13 */
++ (iw_handler) NULL, /* SIOCSIWSCAN */
++ (iw_handler) NULL, /* SIOCGIWSCAN */
++#endif /* WIRELESS_EXT > 13 */
++ (iw_handler) wlan_set_essid, /* SIOCSIWESSID */
++ (iw_handler) wlan_get_essid, /* SIOCGIWESSID */
++ (iw_handler) wlan_set_nick, /* SIOCSIWNICKN */
++ (iw_handler) wlan_get_nick, /* SIOCGIWNICKN */
++ (iw_handler) NULL, /* -- hole -- */
++ (iw_handler) NULL, /* -- hole -- */
++ (iw_handler) wlan_set_rate, /* SIOCSIWRATE */
++ (iw_handler) wlan_get_rate, /* SIOCGIWRATE */
++ (iw_handler) wlan_set_rts, /* SIOCSIWRTS */
++ (iw_handler) wlan_get_rts, /* SIOCGIWRTS */
++ (iw_handler) wlan_set_frag, /* SIOCSIWFRAG */
++ (iw_handler) wlan_get_frag, /* SIOCGIWFRAG */
++ (iw_handler) wlan_set_txpow, /* SIOCSIWTXPOW */
++ (iw_handler) wlan_get_txpow, /* SIOCGIWTXPOW */
++ (iw_handler) wlan_set_retry, /* SIOCSIWRETRY */
++ (iw_handler) wlan_get_retry, /* SIOCGIWRETRY */
++ (iw_handler) NULL, /* -- hole -- */
++ (iw_handler) wlan_get_encode, /* SIOCGIWENCODE */
++ (iw_handler) wlan_set_power, /* SIOCSIWPOWER */
++ (iw_handler) wlan_get_power, /* SIOCGIWPOWER */
++#if (WIRELESS_EXT >= 18)
++ (iw_handler) NULL, /* -- hole -- */
++ (iw_handler) NULL, /* -- hole -- */
++ (iw_handler) wlan_set_gen_ie, /* SIOCSIWGENIE */
++ (iw_handler) wlan_get_gen_ie, /* SIOCGIWGENIE */
++ (iw_handler) wlan_set_auth, /* SIOCSIWAUTH */
++ (iw_handler) wlan_get_auth, /* SIOCGIWAUTH */
++ (iw_handler) wlan_set_encode_ext, /* SIOCSIWENCODEEXT */
++ (iw_handler) wlan_get_encode_ext, /* SIOCGIWENCODEEXT */
++#endif /* WIRELESSS_EXT >= 18 */
++};
++
++/*
++ * iwpriv settable callbacks
++ */
++
++static const iw_handler wlan_private_handler[] = {
++ NULL, /* SIOCIWFIRSTPRIV */
++};
++
++static const struct iw_priv_args wlan_private_args[] = {
++ /*
++ * { cmd, set_args, get_args, name }
++ */
++ {
++ WLANEXTSCAN,
++ IW_PRIV_TYPE_INT,
++ IW_PRIV_TYPE_CHAR | 2,
++ "extscan"},
++ {
++ WLANHOSTCMD,
++ IW_PRIV_TYPE_BYTE | 2047,
++ IW_PRIV_TYPE_BYTE | 2047,
++ "hostcmd"},
++ {
++ WLANARPFILTER,
++ IW_PRIV_TYPE_BYTE | 2047,
++ IW_PRIV_TYPE_BYTE | 2047,
++ "arpfilter"},
++ {
++ WLANREGRDWR,
++ IW_PRIV_TYPE_CHAR | 256,
++ IW_PRIV_TYPE_CHAR | 256,
++ "regrdwr"},
++ {
++ WLANCMD52RDWR,
++ IW_PRIV_TYPE_BYTE | 7,
++ IW_PRIV_TYPE_BYTE | 7,
++ "sdcmd52rw"},
++ {
++ WLANCMD53RDWR,
++ IW_PRIV_TYPE_CHAR | 32,
++ IW_PRIV_TYPE_CHAR | 32,
++ "sdcmd53rw"},
++ {
++ WLAN_SETCONF_GETCONF,
++ IW_PRIV_TYPE_BYTE | MAX_SETGET_CONF_SIZE,
++ IW_PRIV_TYPE_BYTE | MAX_SETGET_CONF_SIZE,
++ "setgetconf"},
++ {
++ WLANCISDUMP,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_BYTE | 512,
++ "getcis"},
++ {
++ WLANSCAN_TYPE,
++ IW_PRIV_TYPE_CHAR | 8,
++ IW_PRIV_TYPE_CHAR | 8,
++ "scantype"},
++ {
++ WLAN_SETINT_GETINT,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ ""},
++ {
++ WLANNF,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ "getNF"},
++ {
++ WLANRSSI,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ "getRSSI"},
++ {
++ WLANBGSCAN,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ "bgscan"},
++ {
++ WLANENABLE11D,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ "enable11d"},
++ {
++ WLANADHOCGRATE,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ "adhocgrate"},
++ {
++ WLANSDIOCLOCK,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ "sdioclock"},
++ {
++ WLANWMM_ENABLE,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ "wmm"},
++ {
++ WLANNULLGEN,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ "uapsdnullgen"},
++ {
++ WLANADHOCCSET,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ "setcoalescing"},
++ {
++ WLAN_ADHOC_G_PROT,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ "adhocgprot"},
++
++ {
++ WLAN_SETONEINT_GETONEINT,
++ IW_PRIV_TYPE_INT | 1,
++ IW_PRIV_TYPE_INT | 1,
++ ""},
++ {
++ WLAN_WMM_QOSINFO,
++ IW_PRIV_TYPE_INT | 1,
++ IW_PRIV_TYPE_INT | 1,
++ "wmm_qosinfo"},
++ {
++ WLAN_LISTENINTRVL,
++ IW_PRIV_TYPE_INT | 1,
++ IW_PRIV_TYPE_INT | 1,
++ "lolisteninter"},
++ {
++ WLAN_FW_WAKEUP_METHOD,
++ IW_PRIV_TYPE_INT | 1,
++ IW_PRIV_TYPE_INT | 1,
++ "fwwakeupmethod"},
++ {
++ WLAN_NULLPKTINTERVAL,
++ IW_PRIV_TYPE_INT | 1,
++ IW_PRIV_TYPE_INT | 1,
++ "psnullinterval"},
++ {
++ WLAN_BCN_MISS_TIMEOUT,
++ IW_PRIV_TYPE_INT | 1,
++ IW_PRIV_TYPE_INT | 1,
++ "bcnmisto"},
++ {
++ WLAN_ADHOC_AWAKE_PERIOD,
++ IW_PRIV_TYPE_INT | 1,
++ IW_PRIV_TYPE_INT | 1,
++ "adhocawakepd"},
++ {
++ WLAN_LDO,
++ IW_PRIV_TYPE_INT | 1,
++ IW_PRIV_TYPE_INT | 1,
++ "ldocfg"},
++ {
++ WLAN_SDIO_MODE,
++ IW_PRIV_TYPE_INT | 1,
++ IW_PRIV_TYPE_INT | 1,
++ "sdiomode"},
++ {
++ WLAN_RTS_CTS_CTRL,
++ IW_PRIV_TYPE_INT | 1,
++ IW_PRIV_TYPE_INT | 1,
++ "rtsctsctrl"},
++ {
++ WLAN_AUTODEEPSLEEP,
++ IW_PRIV_TYPE_INT | 1,
++ IW_PRIV_TYPE_INT | 1,
++ "autodeepsleep"},
++ {
++ WLAN_WAKEUP_MT,
++ IW_PRIV_TYPE_INT | 1,
++ IW_PRIV_TYPE_INT | 1,
++ "wakeupmt"},
++ /* Using iwpriv sub-command feature */
++ {
++ WLAN_SETONEINT_GETNONE,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_NONE,
++ ""},
++ {
++ WLAN_SUBCMD_SETRXANTENNA,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_NONE,
++ "setrxant"},
++ {
++ WLAN_SUBCMD_SETTXANTENNA,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_NONE,
++ "settxant"},
++ {
++ WLANSETAUTHALG,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_NONE,
++ "authalgs",
++ },
++ {
++ WLANSETENCRYPTIONMODE,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_NONE,
++ "encryptionmode",
++ },
++ {
++ WLANSETREGION,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_NONE,
++ "setregioncode"},
++ {
++ WLAN_SET_LISTEN_INTERVAL,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_NONE,
++ "setlisteninter"},
++ {
++ WLAN_SET_MULTIPLE_DTIM,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_NONE,
++ "setmultipledtim"},
++ {
++ WLANSETBCNAVG,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_NONE,
++ "setbcnavg"},
++ {
++ WLANSETDATAAVG,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_NONE,
++ "setdataavg"},
++ {
++ WLANASSOCIATE,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ IW_PRIV_TYPE_NONE,
++ "associate"},
++ {
++ WLAN_SETNONE_GETONEINT,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ ""},
++ {
++ WLANGETREGION,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ "getregioncode"},
++ {
++ WLAN_GET_LISTEN_INTERVAL,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ "getlisteninter"},
++ {
++ WLAN_GET_MULTIPLE_DTIM,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ "getmultipledtim"},
++ {
++ WLAN_GET_TX_RATE,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ "gettxrate"},
++ {
++ WLANGETBCNAVG,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ "getbcnavg"},
++ {
++ WLANGETDATAAVG,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ "getdataavg"},
++ {
++ WLANGETDTIM,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
++ "getdtim"},
++ {
++ WLAN_SETNONE_GETTWELVE_CHAR,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_CHAR | 12,
++ ""},
++ {
++ WLAN_SUBCMD_GETRXANTENNA,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_CHAR | 12,
++ "getrxant"},
++ {
++ WLAN_SUBCMD_GETTXANTENNA,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_CHAR | 12,
++ "gettxant"},
++ {
++ WLAN_GET_TSF,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_CHAR | 12,
++ "gettsf"},
++ {
++ WLAN_WPS_SESSION,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_CHAR | 12,
++ "wpssession"},
++ {
++ WLANDEEPSLEEP,
++ IW_PRIV_TYPE_CHAR | 1,
++ IW_PRIV_TYPE_CHAR | 6,
++ "deepsleep"},
++ {
++ WLANHOSTSLEEPCFG,
++ IW_PRIV_TYPE_CHAR | 31,
++ IW_PRIV_TYPE_NONE,
++ "hostsleepcfg"},
++ {
++ WLAN_SETNONE_GETNONE,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_NONE,
++ ""},
++ {
++ WLANDEAUTH,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_NONE,
++ "deauth"},
++ {
++ WLANADHOCSTOP,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_NONE,
++ "adhocstop"},
++ {
++ WLANRADIOON,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_NONE,
++ "radioon"},
++ {
++ WLANRADIOOFF,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_NONE,
++ "radiooff"},
++ {
++ WLANREMOVEADHOCAES,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_NONE,
++ "rmaeskey"},
++#ifdef REASSOCIATION
++ {
++ WLANREASSOCIATIONAUTO,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_NONE,
++ "reasso-on"},
++ {
++ WLANREASSOCIATIONUSER,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_NONE,
++ "reasso-off"},
++#endif /* REASSOCIATION */
++ {
++ WLANWLANIDLEON,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_NONE,
++ "wlanidle-on"},
++ {
++ WLANWLANIDLEOFF,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_NONE,
++ "wlanidle-off"},
++ {
++ WLAN_SET64CHAR_GET64CHAR,
++ IW_PRIV_TYPE_CHAR | 64,
++ IW_PRIV_TYPE_CHAR | 64,
++ ""},
++ {
++ WLANSLEEPPARAMS,
++ IW_PRIV_TYPE_CHAR | 64,
++ IW_PRIV_TYPE_CHAR | 64,
++ "sleepparams"},
++
++ {
++ WLAN_BCA_TIMESHARE,
++ IW_PRIV_TYPE_CHAR | 64,
++ IW_PRIV_TYPE_CHAR | 64,
++ "bca-ts"},
++ {
++ WLANSCAN_MODE,
++ IW_PRIV_TYPE_CHAR | 64,
++ IW_PRIV_TYPE_CHAR | 64,
++ "scanmode"},
++ {
++ WLAN_GET_ADHOC_STATUS,
++ IW_PRIV_TYPE_CHAR | 64,
++ IW_PRIV_TYPE_CHAR | 64,
++ "getadhocstatus"},
++ {
++ WLAN_SET_GEN_IE,
++ IW_PRIV_TYPE_CHAR | 64,
++ IW_PRIV_TYPE_CHAR | 64,
++ "setgenie"},
++ {
++ WLAN_GET_GEN_IE,
++ IW_PRIV_TYPE_CHAR | 64,
++ IW_PRIV_TYPE_CHAR | 64,
++ "getgenie"},
++ {
++ WLAN_WMM_QUEUE_STATUS,
++ IW_PRIV_TYPE_CHAR | 64,
++ IW_PRIV_TYPE_CHAR | 64,
++ "qstatus"},
++ {
++ WLAN_SETWORDCHAR_GETNONE,
++ IW_PRIV_TYPE_CHAR | 32,
++ IW_PRIV_TYPE_NONE,
++ ""},
++ {
++ WLANSETADHOCAES,
++ IW_PRIV_TYPE_CHAR | 32,
++ IW_PRIV_TYPE_NONE,
++ "setaeskey"},
++ {
++ WLAN_SETONEINT_GETWORDCHAR,
++ IW_PRIV_TYPE_INT | 1,
++ IW_PRIV_TYPE_CHAR | 128,
++ ""},
++ {
++ WLANGETADHOCAES,
++ IW_PRIV_TYPE_INT | 1,
++ IW_PRIV_TYPE_CHAR | 128,
++ "getaeskey"},
++ {
++ WLANVERSION,
++ IW_PRIV_TYPE_INT | 1,
++ IW_PRIV_TYPE_CHAR | 128,
++ "version"},
++ {
++ WLANVEREXT,
++ IW_PRIV_TYPE_INT | 1,
++ IW_PRIV_TYPE_CHAR | 128,
++ "verext"},
++ {
++ WLANSETWPAIE,
++ IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | 24,
++ IW_PRIV_TYPE_NONE,
++ "setwpaie"},
++ {
++ WLANGETLOG,
++ IW_PRIV_TYPE_NONE,
++ IW_PRIV_TYPE_CHAR | GETLOG_BUFSIZE,
++ "getlog"},
++ {
++ WLAN_SET_GET_SIXTEEN_INT,
++ IW_PRIV_TYPE_INT | 16,
++ IW_PRIV_TYPE_INT | 16,
++ ""},
++ {
++ WLAN_TPCCFG,
++ IW_PRIV_TYPE_INT | 16,
++ IW_PRIV_TYPE_INT | 16,
++ "tpccfg"},
++ {
++ WLAN_SCANPROBES,
++ IW_PRIV_TYPE_INT | 16,
++ IW_PRIV_TYPE_INT | 16,
++ "scanprobes"},
++ {
++ WLAN_LED_GPIO_CTRL,
++ IW_PRIV_TYPE_INT | 16,
++ IW_PRIV_TYPE_INT | 16,
++ "ledgpio"},
++ {
++ WLAN_SLEEP_PERIOD,
++ IW_PRIV_TYPE_INT | 16,
++ IW_PRIV_TYPE_INT | 16,
++ "sleeppd"},
++ {
++ WLAN_ADAPT_RATESET,
++ IW_PRIV_TYPE_INT | 16,
++ IW_PRIV_TYPE_INT | 16,
++ "rateadapt"},
++
++ {
++ WLAN_INACTIVITY_TIMEOUT,
++ IW_PRIV_TYPE_INT | 16,
++ IW_PRIV_TYPE_INT | 16,
++ "inactivityto"},
++ {
++ WLANSNR,
++ IW_PRIV_TYPE_INT | 16,
++ IW_PRIV_TYPE_INT | 16,
++ "getSNR"},
++ {
++ WLAN_GET_RATE,
++ IW_PRIV_TYPE_INT | 16,
++ IW_PRIV_TYPE_INT | 16,
++ "getrate"},
++ {
++ WLAN_GET_RXINFO,
++ IW_PRIV_TYPE_INT | 16,
++ IW_PRIV_TYPE_INT | 16,
++ "getrxinfo"},
++ {
++ WLAN_SET_ATIM_WINDOW,
++ IW_PRIV_TYPE_INT | 16,
++ IW_PRIV_TYPE_INT | 16,
++ "atimwindow"},
++ {
++ WLAN_BEACON_INTERVAL,
++ IW_PRIV_TYPE_INT | 16,
++ IW_PRIV_TYPE_INT | 16,
++ "bcninterval"},
++ {
++ WLAN_SDIO_PULL_CTRL,
++ IW_PRIV_TYPE_INT | 16,
++ IW_PRIV_TYPE_INT | 16,
++ "sdiopullctrl"},
++ {
++ WLAN_SCAN_TIME,
++ IW_PRIV_TYPE_INT | 16,
++ IW_PRIV_TYPE_INT | 16,
++ "scantime"},
++ {
++ WLAN_DATA_SUBSCRIBE_EVENT,
++ IW_PRIV_TYPE_INT | 16,
++ IW_PRIV_TYPE_INT | 16,
++ "dataevtcfg"},
++ {
++ WLAN_TXCONTROL,
++ IW_PRIV_TYPE_INT | 16,
++ IW_PRIV_TYPE_INT | 16,
++ "txcontrol"},
++ {
++ WLANHSCFG,
++ IW_PRIV_TYPE_INT | 16,
++ IW_PRIV_TYPE_INT | 16,
++ "hscfg"},
++ {
++ WLANHSSETPARA,
++ IW_PRIV_TYPE_INT | 16,
++ IW_PRIV_TYPE_INT | 16,
++ "hssetpara"},
++#ifdef DEBUG_LEVEL1
++ {
++ WLAN_DRV_DBG,
++ IW_PRIV_TYPE_INT | 16,
++ IW_PRIV_TYPE_INT | 16,
++ "drvdbg"},
++#endif
++ {
++ WLAN_SET_GET_2K,
++ IW_PRIV_TYPE_BYTE | 2000,
++ IW_PRIV_TYPE_BYTE | 2000,
++ ""},
++ {
++ WLAN_SET_USER_SCAN,
++ IW_PRIV_TYPE_BYTE | 2000,
++ IW_PRIV_TYPE_BYTE | 2000,
++ "setuserscan"},
++ {
++ WLAN_GET_SCAN_TABLE,
++ IW_PRIV_TYPE_BYTE | 2000,
++ IW_PRIV_TYPE_BYTE | 2000,
++ "getscantable"},
++ {
++ WLAN_SET_MRVL_TLV,
++ IW_PRIV_TYPE_BYTE | 2000,
++ IW_PRIV_TYPE_BYTE | 2000,
++ "setmrvltlv"},
++ {
++ WLAN_GET_ASSOC_RSP,
++ IW_PRIV_TYPE_BYTE | 2000,
++ IW_PRIV_TYPE_BYTE | 2000,
++ "getassocrsp"},
++ {
++ WLAN_ADDTS_REQ,
++ IW_PRIV_TYPE_BYTE | 2000,
++ IW_PRIV_TYPE_BYTE | 2000,
++ "addts"},
++ {
++ WLAN_DELTS_REQ,
++ IW_PRIV_TYPE_BYTE | 2000,
++ IW_PRIV_TYPE_BYTE | 2000,
++ "delts"},
++ {
++ WLAN_QUEUE_CONFIG,
++ IW_PRIV_TYPE_BYTE | 2000,
++ IW_PRIV_TYPE_BYTE | 2000,
++ "qconfig"},
++ {
++ WLAN_QUEUE_STATS,
++ IW_PRIV_TYPE_BYTE | 2000,
++ IW_PRIV_TYPE_BYTE | 2000,
++ "qstats"},
++ {
++ WLAN_TX_PKT_STATS,
++ IW_PRIV_TYPE_BYTE | 2000,
++ IW_PRIV_TYPE_BYTE | 2000,
++ "txpktstats"},
++ {
++ WLAN_GET_CFP_TABLE,
++ IW_PRIV_TYPE_BYTE | 2000,
++ IW_PRIV_TYPE_BYTE | 2000,
++ "getcfptable"},
++};
++
++struct iw_handler_def wlan_handler_def = {
++ num_standard:sizeof(wlan_handler) / sizeof(iw_handler),
++ num_private:sizeof(wlan_private_handler) / sizeof(iw_handler),
++ num_private_args:sizeof(wlan_private_args) /
++ sizeof(struct iw_priv_args),
++ standard:(iw_handler *) wlan_handler,
++ private:(iw_handler *) wlan_private_handler,
++ private_args:(struct iw_priv_args *) wlan_private_args,
++};
++
++/**
++ * @brief get the channel frequency power info with specific channel
++ *
++ * @param band it can be BAND_A, BAND_G or BAND_B
++ * @param channel the channel for looking
++ * @param region_channel A pointer to REGION_CHANNEL structure
++ * @return A pointer to CHANNEL_FREQ_POWER structure or NULL if not find.
++ */
++
++CHANNEL_FREQ_POWER *
++get_cfp_by_band_and_channel(u8 band, u16 channel,
++ REGION_CHANNEL * region_channnel)
++{
++ REGION_CHANNEL *rc;
++ CHANNEL_FREQ_POWER *cfp = NULL;
++ int i, j;
++
++ for (j = 0; !cfp && (j < MAX_REGION_CHANNEL_NUM); j++) {
++ rc = &region_channnel[j];
++
++ if (!rc->Valid || !rc->CFP)
++ continue;
++ if (rc->Band != band)
++ continue;
++ if (channel == FIRST_VALID_CHANNEL)
++ cfp = &rc->CFP[0];
++ else {
++ for (i = 0; i < rc->NrCFP; i++) {
++ if (rc->CFP[i].Channel == channel) {
++ cfp = &rc->CFP[i];
++ break;
++ }
++ }
++ }
++ }
++
++ if (!cfp && channel)
++ PRINTM(INFO, "get_cfp_by_band_and_channel(): cannot find "
++ "cfp by band %d & channel %d\n", band, channel);
++
++ LEAVE();
++ return cfp;
++}
++
++/**
++ * @brief wlan hostcmd ioctl handler
++ *
++ * @param dev A pointer to net_device structure
++ * @param req A pointer to ifreq structure
++ * @param cmd command
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_hostcmd_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
++{
++ u8 *tempResponseBuffer;
++ CmdCtrlNode *pCmdNode;
++ HostCmd_DS_GEN *pCmdPtr;
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ u16 wait_option = 0;
++ struct iwreq *wrq = (struct iwreq *) req;
++
++ ENTER();
++
++ if ((wrq->u.data.pointer == NULL) || (wrq->u.data.length < S_DS_GEN)) {
++ PRINTM(INFO,
++ "wlan_hostcmd_ioctl() corrupt data: pointer=%p, length=%d\n",
++ wrq->u.data.pointer, wrq->u.data.length);
++ return -EFAULT;
++ }
++
++ /*
++ * Get a free command control node
++ */
++ if (!(pCmdNode = GetFreeCmdCtrlNode(priv))) {
++ PRINTM(INFO, "Failed GetFreeCmdCtrlNode\n");
++ return -ENOMEM;
++ }
++
++ if (!
++ (tempResponseBuffer =
++ kmalloc(MRVDRV_SIZE_OF_CMD_BUFFER, GFP_KERNEL))) {
++ PRINTM(INFO, "ERROR: Failed to allocate response buffer!\n");
++ CleanupAndInsertCmd(priv, pCmdNode);
++ return -ENOMEM;
++ }
++
++ wait_option |= HostCmd_OPTION_WAITFORRSP;
++
++ SetCmdCtrlNode(priv, pCmdNode, 0, wait_option, NULL);
++ init_waitqueue_head(&pCmdNode->cmdwait_q);
++
++ pCmdPtr = (HostCmd_DS_GEN *) pCmdNode->BufVirtualAddr;
++
++ /*
++ * Copy the whole command into the command buffer
++ */
++ if (copy_from_user(pCmdPtr, wrq->u.data.pointer, wrq->u.data.length)) {
++ PRINTM(INFO, "Copy from user failed\n");
++ kfree(tempResponseBuffer);
++ CleanupAndInsertCmd(priv, pCmdNode);
++ return -EFAULT;
++ }
++
++ if (pCmdPtr->Size < S_DS_GEN) {
++ PRINTM(INFO, "wlan_hostcmd_ioctl() invalid cmd size: Size=%d\n",
++ pCmdPtr->Size);
++ kfree(tempResponseBuffer);
++ CleanupAndInsertCmd(priv, pCmdNode);
++ return -EFAULT;
++ }
++
++ pCmdNode->pdata_buf = tempResponseBuffer;
++ pCmdNode->CmdFlags |= CMD_F_HOSTCMD;
++
++ pCmdPtr->Result = 0;
++
++ PRINTM(INFO, "HOSTCMD Command: 0x%04x Size: %d\n",
++ pCmdPtr->Command, pCmdPtr->Size);
++ HEXDUMP("Command Data", (u8 *) (pCmdPtr), MIN(32, pCmdPtr->Size));
++ PRINTM(INFO, "Copying data from : (user)0x%p -> 0x%p(driver)\n",
++ req->ifr_data, pCmdPtr);
++
++ pCmdNode->CmdWaitQWoken = FALSE;
++ pCmdPtr->Command = wlan_cpu_to_le16(pCmdPtr->Command);
++ pCmdPtr->Size = wlan_cpu_to_le16(pCmdPtr->Size);
++ QueueCmd(Adapter, pCmdNode, TRUE);
++ wake_up_interruptible(&priv->MainThread.waitQ);
++
++ if (wait_option & HostCmd_OPTION_WAITFORRSP) {
++ /* Sleep until response is generated by FW */
++ wait_event_interruptible(pCmdNode->cmdwait_q,
++ pCmdNode->CmdWaitQWoken);
++ }
++
++ /* Copy the response back to user space */
++ pCmdPtr = (HostCmd_DS_GEN *) tempResponseBuffer;
++
++ if (copy_to_user(wrq->u.data.pointer, tempResponseBuffer, pCmdPtr->Size))
++ PRINTM(INFO, "ERROR: copy_to_user failed!\n");
++ wrq->u.data.length = pCmdPtr->Size;
++ kfree(tempResponseBuffer);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief wlan arpfilter ioctl handler
++ *
++ * @param dev A pointer to net_device structure
++ * @param req A pointer to ifreq structure
++ * @param cmd command
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_arpfilter_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
++{
++ wlan_private *priv = dev->priv;
++ struct iwreq *wrq = (struct iwreq *) req;
++ wlan_adapter *Adapter = priv->adapter;
++ MrvlIEtypesHeader_t hdr;
++
++ ENTER();
++
++ if ((wrq->u.data.pointer == NULL)
++ || (wrq->u.data.length < sizeof(MrvlIEtypesHeader_t))
++ || (wrq->u.data.length > sizeof(Adapter->ArpFilter))) {
++ PRINTM(INFO,
++ "wlan_arpfilter_ioctl() corrupt data: pointer=%p, length=%d\n",
++ wrq->u.data.pointer, wrq->u.data.length);
++ return -EFAULT;
++ }
++
++ if (copy_from_user(&hdr, wrq->u.data.pointer, sizeof(hdr))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ if (hdr.Len == 0) {
++ Adapter->ArpFilterSize = 0;
++ memset(Adapter->ArpFilter, 0, sizeof(Adapter->ArpFilter));
++ } else {
++ Adapter->ArpFilterSize = wrq->u.data.length;
++
++ PRINTM(INFO, "Copying data from : (user)0x%p -> 0x%p(driver)\n",
++ wrq->u.data.pointer, Adapter->ArpFilter);
++ if (copy_from_user(Adapter->ArpFilter, wrq->u.data.pointer,
++ Adapter->ArpFilterSize)) {
++ Adapter->ArpFilterSize = 0;
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ HEXDUMP("ArpFilter", Adapter->ArpFilter, Adapter->ArpFilterSize);
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get Rx Info
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wreq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS --success
++ */
++static int
++wlan_get_rxinfo(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int data[2];
++ ENTER();
++ data[0] = Adapter->SNR[TYPE_RXPD][TYPE_NOAVG];
++ data[1] = Adapter->RxPDRate;
++ if (copy_to_user(wrq->u.data.pointer, data, sizeof(int) * 2)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++ wrq->u.data.length = 2;
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get SNR
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wreq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_snr(wlan_private * priv, struct iwreq *wrq)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_adapter *Adapter = priv->adapter;
++ int data[4];
++
++ ENTER();
++
++ memset(data, 0, sizeof(data));
++ if (wrq->u.data.length) {
++ if (copy_from_user
++ (data, wrq->u.data.pointer,
++ MIN(wrq->u.data.length, 4) * sizeof(int))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++ }
++ if ((wrq->u.data.length == 0) || (data[0] == 0) || (data[0] == 1)) {
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_RSSI,
++ 0, HostCmd_OPTION_WAITFORRSP,
++ 0, NULL);
++
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++ }
++ }
++
++ if (wrq->u.data.length == 0) {
++ data[0] = Adapter->SNR[TYPE_BEACON][TYPE_NOAVG];
++ data[1] = Adapter->SNR[TYPE_BEACON][TYPE_AVG];
++ if ((jiffies - Adapter->RxPDAge) > HZ) //data expired after 1 second
++ data[2] = 0;
++ else
++ data[2] = Adapter->SNR[TYPE_RXPD][TYPE_NOAVG];
++ data[3] = Adapter->SNR[TYPE_RXPD][TYPE_AVG] / AVG_SCALE;
++ if (copy_to_user(wrq->u.data.pointer, data, sizeof(int) * 4)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++ wrq->u.data.length = 4;
++ } else if (data[0] == 0) {
++ data[0] = Adapter->SNR[TYPE_BEACON][TYPE_NOAVG];
++ if (copy_to_user(wrq->u.data.pointer, data, sizeof(int))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++ wrq->u.data.length = 1;
++ } else if (data[0] == 1) {
++ data[0] = Adapter->SNR[TYPE_BEACON][TYPE_AVG];
++ if (copy_to_user(wrq->u.data.pointer, data, sizeof(int))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++ wrq->u.data.length = 1;
++ } else if (data[0] == 2) {
++ if ((jiffies - Adapter->RxPDAge) > HZ) //data expired after 1 second
++ data[0] = 0;
++ else
++ data[0] = Adapter->SNR[TYPE_RXPD][TYPE_NOAVG];
++ if (copy_to_user(wrq->u.data.pointer, data, sizeof(int))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++ wrq->u.data.length = 1;
++ } else if (data[0] == 3) {
++ data[0] = Adapter->SNR[TYPE_RXPD][TYPE_AVG] / AVG_SCALE;
++ if (copy_to_user(wrq->u.data.pointer, data, sizeof(int))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++ wrq->u.data.length = 1;
++ } else {
++ return -ENOTSUPP;
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get/Set SDIO PULL CTRL
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wreq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_sdio_pull_ctrl(wlan_private * priv, struct iwreq *wrq)
++{
++ int data[2];
++ HostCmd_DS_SDIO_PULL_CTRL sdio_pull_ctrl;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++ memset(&sdio_pull_ctrl, 0, sizeof(sdio_pull_ctrl));
++ if (wrq->u.data.length > 0) {
++ if (copy_from_user(data, wrq->u.data.pointer, sizeof(data))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++ PRINTM(INFO, "WLAN SET SDIO PULL CTRL: %d %d\n", data[0], data[1]);
++ sdio_pull_ctrl.Action = HostCmd_ACT_GEN_SET;
++ sdio_pull_ctrl.PullUp = data[0];
++ sdio_pull_ctrl.PullDown = data[1];
++ } else {
++ sdio_pull_ctrl.Action = HostCmd_ACT_GEN_GET;
++ }
++
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_SDIO_PULL_CTRL,
++ 0, HostCmd_OPTION_WAITFORRSP,
++ 0, (void *) &sdio_pull_ctrl);
++ data[0] = sdio_pull_ctrl.PullUp;
++ data[1] = sdio_pull_ctrl.PullDown;
++ wrq->u.data.length = 2;
++ if (copy_to_user
++ (wrq->u.data.pointer, data, sizeof(int) * wrq->u.data.length)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get/Set scan time
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wreq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_scan_time(wlan_private * priv, struct iwreq *wrq)
++{
++ int data[3] = { 0, 0, 0 };
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (wrq->u.data.length > 0 && wrq->u.data.length <= 3) {
++ if (copy_from_user
++ (data, wrq->u.data.pointer, sizeof(int) * wrq->u.data.length)) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ PRINTM(INFO,
++ "WLAN SET Scan Time: Specific %d, Active %d, Passive %d\n",
++ data[0], data[1], data[2]);
++ if (data[0]) {
++ if (data[0] > MRVDRV_MAX_ACTIVE_SCAN_CHAN_TIME) {
++ PRINTM(MSG,
++ "Invalid parameter, max specific scan time is %d ms\n",
++ MRVDRV_MAX_ACTIVE_SCAN_CHAN_TIME);
++ return -EINVAL;
++ }
++ Adapter->SpecificScanTime = data[0];
++ }
++ if (data[1]) {
++ if (data[1] > MRVDRV_MAX_ACTIVE_SCAN_CHAN_TIME) {
++ PRINTM(MSG,
++ "Invalid parameter, max active scan time is %d ms\n",
++ MRVDRV_MAX_ACTIVE_SCAN_CHAN_TIME);
++ return -EINVAL;
++ }
++ Adapter->ActiveScanTime = data[1];
++ }
++ if (data[2]) {
++ if (data[2] > MRVDRV_MAX_PASSIVE_SCAN_CHAN_TIME) {
++ PRINTM(MSG,
++ "Invalid parameter, max passive scan time is %d ms\n",
++ MRVDRV_MAX_PASSIVE_SCAN_CHAN_TIME);
++ return -EINVAL;
++ }
++ Adapter->PassiveScanTime = data[2];
++ }
++ }
++
++ data[0] = Adapter->SpecificScanTime;
++ data[1] = Adapter->ActiveScanTime;
++ data[2] = Adapter->PassiveScanTime;
++ wrq->u.data.length = 3;
++ if (copy_to_user
++ (wrq->u.data.pointer, data, sizeof(int) * wrq->u.data.length)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get/Set Adhoc beacon Interval
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wreq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_beacon_interval(wlan_private * priv, struct iwreq *wrq)
++{
++ int data[2];
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (wrq->u.data.length > 0) {
++ if (copy_from_user(data, wrq->u.data.pointer, sizeof(int))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ PRINTM(INFO, "WLAN SET BEACON INTERVAL: %d\n", data[0]);
++ if ((data[0] > MRVDRV_MAX_BEACON_INTERVAL) ||
++ (data[0] < MRVDRV_MIN_BEACON_INTERVAL))
++ return -ENOTSUPP;
++ Adapter->BeaconPeriod = data[0];
++ }
++ data[0] = Adapter->BeaconPeriod;
++ wrq->u.data.length = 1;
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ data[1] = Adapter->CurBssParams.BSSDescriptor.BeaconPeriod;
++ wrq->u.data.length = 2;
++ }
++ if (copy_to_user
++ (wrq->u.data.pointer, data, sizeof(int) * wrq->u.data.length)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get/Set Adhoc ATIM Window
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wreq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_ATIM_Window(wlan_private * priv, struct iwreq *wrq)
++{
++ int data[2];
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (wrq->u.data.length > 0) {
++ if (copy_from_user(data, wrq->u.data.pointer, sizeof(int))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ PRINTM(INFO, "WLAN SET ATIM WINDOW: %d\n", data[0]);
++ Adapter->AtimWindow = data[0];
++ Adapter->AtimWindow = MIN(Adapter->AtimWindow, 50);
++ }
++ data[0] = Adapter->AtimWindow;
++ wrq->u.data.length = 1;
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ data[1] = Adapter->CurBssParams.BSSDescriptor.ATIMWindow;
++ wrq->u.data.length = 2;
++ }
++ if (copy_to_user
++ (wrq->u.data.pointer, data, sizeof(int) * wrq->u.data.length)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get/Set data subscribe event
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wreq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_data_subscribe_event(wlan_private * priv, struct iwreq *wrq)
++{
++ int data[9];
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ memset(data, 0, sizeof(data));
++ if (wrq->u.data.length > 9)
++ return -EFAULT;
++ if (wrq->u.data.length > 0) {
++ if (copy_from_user
++ (data, wrq->u.data.pointer, sizeof(int) * wrq->u.data.length)) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++ memset(&Adapter->subevent, 0, sizeof(Adapter->subevent));
++ Adapter->subevent.EventsBitmap = (u16) data[0];
++ Adapter->subevent.Rssi_low.value = (u8) data[1];
++ Adapter->subevent.Rssi_low.Freq = (u8) data[2];
++ Adapter->subevent.Snr_low.value = (u8) data[3];
++ Adapter->subevent.Snr_low.Freq = (u8) data[4];
++ Adapter->subevent.Rssi_high.value = (u8) data[5];
++ Adapter->subevent.Rssi_high.Freq = (u8) data[6];
++ Adapter->subevent.Snr_high.value = (u8) data[7];
++ Adapter->subevent.Snr_high.Freq = (u8) data[8];
++ } else {
++ data[0] = (int) Adapter->subevent.EventsBitmap;
++ data[1] = (int) Adapter->subevent.Rssi_low.value;
++ data[2] = (int) Adapter->subevent.Rssi_low.Freq;
++ data[3] = (int) Adapter->subevent.Snr_low.value;
++ data[4] = (int) Adapter->subevent.Snr_low.Freq;
++ data[5] = (int) Adapter->subevent.Rssi_high.value;
++ data[6] = (int) Adapter->subevent.Rssi_high.Freq;
++ data[7] = (int) Adapter->subevent.Snr_high.value;
++ data[8] = (int) Adapter->subevent.Snr_high.Freq;
++ }
++ wrq->u.data.length = 9;
++ if (copy_to_user(wrq->u.data.pointer, data, sizeof(data))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get RSSI
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wreq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_rssi(wlan_private * priv, struct iwreq *wrq)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_adapter *Adapter = priv->adapter;
++ int temp;
++ int data = 0;
++ int *val;
++
++ ENTER();
++ data = *((int *) (wrq->u.name + SUBCMD_OFFSET));
++ if ((data == 0) || (data == 1)) {
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_RSSI,
++ 0, HostCmd_OPTION_WAITFORRSP, 0, NULL);
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++ }
++
++ switch (data) {
++ case 0:
++
++ temp = CAL_RSSI(Adapter->SNR[TYPE_BEACON][TYPE_NOAVG],
++ Adapter->NF[TYPE_BEACON][TYPE_NOAVG]);
++ break;
++ case 1:
++ temp = CAL_RSSI(Adapter->SNR[TYPE_BEACON][TYPE_AVG],
++ Adapter->NF[TYPE_BEACON][TYPE_AVG]);
++ break;
++ case 2:
++ if ((jiffies - Adapter->RxPDAge) > HZ) //data expired after 1 second
++ temp = 0;
++ else
++ temp = CAL_RSSI(Adapter->SNR[TYPE_RXPD][TYPE_NOAVG],
++ Adapter->NF[TYPE_RXPD][TYPE_NOAVG]);
++ break;
++ case 3:
++ temp = CAL_RSSI(Adapter->SNR[TYPE_RXPD][TYPE_AVG] / AVG_SCALE,
++ Adapter->NF[TYPE_RXPD][TYPE_AVG] / AVG_SCALE);
++ break;
++ default:
++ return -ENOTSUPP;
++ }
++ val = (int *) wrq->u.name;
++ *val = temp;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get NF
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wreq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_nf(wlan_private * priv, struct iwreq *wrq)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_adapter *Adapter = priv->adapter;
++ int temp;
++ int data = 0;
++ int *val;
++
++ ENTER();
++ data = *((int *) (wrq->u.name + SUBCMD_OFFSET));
++ if ((data == 0) || (data == 1)) {
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_RSSI,
++ 0, HostCmd_OPTION_WAITFORRSP, 0, NULL);
++
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++ }
++
++ switch (data) {
++ case 0:
++ temp = Adapter->NF[TYPE_BEACON][TYPE_NOAVG];
++ break;
++ case 1:
++ temp = Adapter->NF[TYPE_BEACON][TYPE_AVG];
++ break;
++ case 2:
++ if ((jiffies - Adapter->RxPDAge) > HZ) //data expired after 1 second
++ temp = 0;
++ else
++ temp = Adapter->NF[TYPE_RXPD][TYPE_NOAVG];
++ break;
++ case 3:
++ temp = Adapter->NF[TYPE_RXPD][TYPE_AVG] / AVG_SCALE;
++ break;
++ default:
++ return -ENOTSUPP;
++ }
++
++ temp = CAL_NF(temp);
++
++ PRINTM(INFO, "***temp = %d\n", temp);
++ val = (int *) wrq->u.name;
++ *val = temp;
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Remove AES key
++ *
++ * @param priv A pointer to wlan_private structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_remove_aes(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ WLAN_802_11_KEY key;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ if (Adapter->InfrastructureMode != Wlan802_11IBSS ||
++ Adapter->MediaConnectStatus == WlanMediaStateConnected)
++ return -EOPNOTSUPP;
++
++ Adapter->AdhocAESEnabled = FALSE;
++
++ memset(&key, 0, sizeof(WLAN_802_11_KEY));
++ PRINTM(INFO, "WPA2: DISABLE AES_KEY\n");
++ key.KeyLength = WPA_AES_KEY_LEN;
++ key.KeyIndex = 0x40000000;
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_KEY_MATERIAL,
++ HostCmd_ACT_SET,
++ HostCmd_OPTION_WAITFORRSP,
++ !(KEY_INFO_ENABLED), &key);
++
++ LEAVE();
++
++ return ret;
++}
++
++/**
++ * @brief Get Support Rates
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_getrate_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ WLAN_802_11_RATES rates;
++ int rate[sizeof(rates)];
++ int i;
++
++ ENTER();
++
++ memset(rates, 0, sizeof(rates));
++ memset(rate, 0, sizeof(rate));
++ wrq->u.data.length = get_active_data_rates(Adapter, rates);
++ if (wrq->u.data.length > sizeof(rates))
++ wrq->u.data.length = sizeof(rates);
++
++ for (i = 0; i < wrq->u.data.length; i++) {
++ rates[i] &= ~0x80;
++ rate[i] = rates[i];
++ }
++
++ if (copy_to_user
++ (wrq->u.data.pointer, rate, wrq->u.data.length * sizeof(int))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get TxRate
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_txrate_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int *pdata;
++ struct iwreq *wrq = (struct iwreq *) req;
++ int ret = WLAN_STATUS_SUCCESS;
++ ENTER();
++ Adapter->TxRate = 0;
++ PRINTM(INFO, "wlan_get_txrate_ioctl\n");
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_802_11_TX_RATE_QUERY,
++ HostCmd_ACT_GET, HostCmd_OPTION_WAITFORRSP,
++ 0, NULL);
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++ pdata = (int *) wrq->u.name;
++ *pdata = (int) Adapter->TxRate;
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get DTIM
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_dtim_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ struct iwreq *wrq = (struct iwreq *) req;
++ int *pdata;
++ int ret = WLAN_STATUS_FAILURE;
++
++ ENTER();
++
++ /* The DTIM value is valid only in connected state */
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ Adapter->Dtim = 0;
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_802_11_SNMP_MIB,
++ HostCmd_ACT_GET,
++ HostCmd_OPTION_WAITFORRSP,
++ OID_802_11_DTIM, NULL);
++ if (!ret) {
++ pdata = (int *) wrq->u.name;
++ *pdata = (int) Adapter->Dtim;
++ }
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Get Adhoc Status
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_get_adhoc_status_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ char status[64];
++ wlan_adapter *Adapter = priv->adapter;
++
++ memset(status, 0, sizeof(status));
++
++ switch (Adapter->InfrastructureMode) {
++ case Wlan802_11IBSS:
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ if (Adapter->AdhocCreate == TRUE)
++ strcpy(status, "AdhocStarted");
++ else
++ strcpy(status, "AdhocJoined");
++ } else {
++ strcpy(status, "AdhocIdle");
++ }
++ break;
++ case Wlan802_11Infrastructure:
++ strcpy(status, "InfraMode");
++ break;
++ default:
++ strcpy(status, "AutoUnknownMode");
++ break;
++ }
++
++ PRINTM(INFO, "Status = %s\n", status);
++ wrq->u.data.length = strlen(status) + 1;
++
++ if (wrq->u.data.pointer) {
++ if (copy_to_user(wrq->u.data.pointer, &status, wrq->u.data.length))
++ return -EFAULT;
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get Driver Version
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_version_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ int len;
++ char buf[128];
++ struct iwreq *wrq = (struct iwreq *) req;
++
++ ENTER();
++
++ get_version(priv->adapter, buf, sizeof(buf) - 1);
++
++ len = strlen(buf);
++ if (wrq->u.data.pointer) {
++ if (copy_to_user(wrq->u.data.pointer, buf, len)) {
++ PRINTM(INFO, "CopyToUser failed\n");
++ return -EFAULT;
++ }
++ wrq->u.data.length = len;
++ }
++
++ PRINTM(INFO, "wlan version: %s\n", buf);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get Driver and FW version
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_verext_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ HostCmd_DS_VERSION_EXT versionExtCmd;
++ int len;
++
++ ENTER();
++
++ memset(&versionExtCmd, 0x00, sizeof(versionExtCmd));
++
++ if (wrq->u.data.flags == 0) {
++ //from iwpriv subcmd
++ versionExtCmd.versionStrSel =
++ *((int *) (wrq->u.name + SUBCMD_OFFSET));
++ } else {
++ if (copy_from_user(&versionExtCmd.versionStrSel,
++ wrq->u.data.pointer,
++ sizeof(versionExtCmd.versionStrSel))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++ }
++
++ PrepareAndSendCommand(priv,
++ HostCmd_CMD_VERSION_EXT, 0,
++ HostCmd_OPTION_WAITFORRSP, 0, &versionExtCmd);
++
++ len = strlen(versionExtCmd.versionStr) + 1;
++ if (wrq->u.data.pointer) {
++ if (copy_to_user(wrq->u.data.pointer, versionExtCmd.versionStr, len)) {
++ PRINTM(INFO, "CopyToUser failed\n");
++ return -EFAULT;
++ }
++ wrq->u.data.length = len;
++ }
++
++ PRINTM(INFO, "Version: %s\n", versionExtCmd.versionStr);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Read/Write adapter registers
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_regrdwr_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ wlan_ioctl_regrdwr regrdwr;
++ wlan_offset_value offval;
++ u8 *pRdeeprom;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ if (copy_from_user(&regrdwr, req->ifr_data, sizeof(regrdwr))) {
++ PRINTM(INFO,
++ "copy of regrdwr for wlan_regrdwr_ioctl from user failed \n");
++ LEAVE();
++ return -EFAULT;
++ }
++
++ if (regrdwr.WhichReg == REG_EEPROM) {
++ PRINTM(INFO, "Inside RDEEPROM\n");
++ pRdeeprom =
++ (char *) kmalloc((regrdwr.NOB + sizeof(regrdwr)), GFP_KERNEL);
++ if (!pRdeeprom) {
++ PRINTM(INFO, "allocate memory for EEPROM read failed\n");
++ return -ENOMEM;
++ }
++ memcpy(pRdeeprom, &regrdwr, sizeof(regrdwr));
++ PRINTM(INFO, "Action: %d, Offset: %x, NOB: %02x\n",
++ regrdwr.Action, regrdwr.Offset, regrdwr.NOB);
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_EEPROM_ACCESS,
++ regrdwr.Action, HostCmd_OPTION_WAITFORRSP,
++ 0, pRdeeprom);
++
++ /*
++ * Return the result back to the user
++ */
++ if (!ret && regrdwr.Action == HostCmd_ACT_GEN_READ) {
++ if (copy_to_user
++ (req->ifr_data, pRdeeprom, sizeof(regrdwr) + regrdwr.NOB)) {
++ PRINTM(INFO,
++ "copy of regrdwr for wlan_regrdwr_ioctl to user failed \n");
++ ret = -EFAULT;
++ }
++ }
++
++ kfree(pRdeeprom);
++
++ LEAVE();
++ return ret;
++ }
++
++ offval.offset = regrdwr.Offset;
++ offval.value = (regrdwr.Action) ? regrdwr.Value : 0x00;
++
++ PRINTM(INFO, "RegAccess: %02x Action:%d "
++ "Offset: %04x Value: %04x\n",
++ regrdwr.WhichReg, regrdwr.Action, offval.offset, offval.value);
++
++ /*
++ * regrdwr.WhichReg should contain the command that
++ * corresponds to which register access is to be
++ * performed HostCmd_CMD_MAC_REG_ACCESS 0x0019
++ * HostCmd_CMD_BBP_REG_ACCESS 0x001a
++ * HostCmd_CMD_RF_REG_ACCESS 0x001b
++ */
++ if (regrdwr.WhichReg == REG_MAC ||
++ regrdwr.WhichReg == REG_BBP || regrdwr.WhichReg == REG_RF) {
++ ret = PrepareAndSendCommand(priv, regrdwr.WhichReg,
++ regrdwr.Action, HostCmd_OPTION_WAITFORRSP,
++ 0, &offval);
++ } else
++ ret = -EINVAL;
++
++ /*
++ * Return the result back to the user
++ */
++ if (!ret && regrdwr.Action == HostCmd_ACT_GEN_READ) {
++ regrdwr.Value = offval.value;
++ if (copy_to_user(req->ifr_data, &regrdwr, sizeof(regrdwr))) {
++ PRINTM(INFO,
++ "copy of regrdwr for wlan_regrdwr_ioctl to user failed \n");
++ ret = -EFAULT;
++ }
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Cmd52 read/write register
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_cmd52rdwr_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ u8 buf[7];
++ u8 rw, func, dat = 0xff;
++ u32 reg;
++
++ ENTER();
++
++ if (copy_from_user(buf, req->ifr_data, sizeof(buf))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ rw = buf[0];
++ func = buf[1];
++ reg = buf[5];
++ reg = (reg << 8) + buf[4];
++ reg = (reg << 8) + buf[3];
++ reg = (reg << 8) + buf[2];
++
++ if (rw != 0)
++ dat = buf[6];
++
++ PRINTM(INFO, "rw=%d func=%d reg=0x%08X dat=0x%02X\n", rw, func, reg, dat);
++
++ if (rw == 0) {
++ if (sbi_read_ioreg(priv, func, reg, &dat) < 0) {
++ PRINTM(INFO, "sdio_read_ioreg: reading register 0x%X failed\n",
++ reg);
++ dat = 0xff;
++ }
++ } else {
++ if (sbi_write_ioreg(priv, func, reg, dat) < 0) {
++ PRINTM(INFO, "sdio_read_ioreg: writing register 0x%X failed\n",
++ reg);
++ dat = 0xff;
++ }
++ }
++ if (copy_to_user(req->ifr_data, &dat, sizeof(dat))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Cmd53 read/write register
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_cmd53rdwr_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ return -EINVAL;
++}
++
++/**
++ * @brief Convert ascii string to Hex integer
++ *
++ * @param d A pointer to integer buf
++ * @param s A pointer to ascii string
++ * @param dlen the length o fascii string
++ * @return number of integer
++ */
++static int
++ascii2hex(u8 * d, char *s, u32 dlen)
++{
++ int i;
++ u8 n;
++
++ memset(d, 0x00, dlen);
++
++ for (i = 0; i < dlen * 2; i++) {
++ if ((s[i] >= 48) && (s[i] <= 57))
++ n = s[i] - 48;
++ else if ((s[i] >= 65) && (s[i] <= 70))
++ n = s[i] - 55;
++ else if ((s[i] >= 97) && (s[i] <= 102))
++ n = s[i] - 87;
++ else
++ break;
++ if ((i % 2) == 0)
++ n = n * 16;
++ d[i / 2] += n;
++ }
++
++ return i;
++}
++
++/**
++ * @brief Set adhoc aes key
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_setadhocaes_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ u8 key_ascii[32];
++ u8 key_hex[16];
++ int ret = 0;
++ struct iwreq *wrq = (struct iwreq *) req;
++ wlan_adapter *Adapter = priv->adapter;
++
++ WLAN_802_11_KEY key;
++
++ ENTER();
++
++ if (Adapter->InfrastructureMode != Wlan802_11IBSS)
++ return -EOPNOTSUPP;
++
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected)
++ return -EOPNOTSUPP;
++
++ if (copy_from_user(key_ascii, wrq->u.data.pointer, sizeof(key_ascii))) {
++ PRINTM(INFO, "wlan_setadhocaes_ioctl copy from user failed \n");
++ LEAVE();
++ return -EFAULT;
++ }
++
++ Adapter->AdhocAESEnabled = TRUE;
++ ascii2hex(key_hex, key_ascii, sizeof(key_hex));
++
++ HEXDUMP("wlan_setadhocaes_ioctl", key_hex, sizeof(key_hex));
++
++ PRINTM(INFO, "WPA2: ENABLE AES_KEY\n");
++ key.KeyLength = WPA_AES_KEY_LEN;
++ key.KeyIndex = 0x40000000;
++ memcpy(key.KeyMaterial, key_hex, key.KeyLength);
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_KEY_MATERIAL,
++ HostCmd_ACT_SET,
++ HostCmd_OPTION_WAITFORRSP,
++ KEY_INFO_ENABLED, &key);
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Get adhoc aes key
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_getadhocaes_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ u8 *tmp;
++ u8 key_ascii[33];
++ u8 key_hex[16];
++ int i, ret = 0;
++ struct iwreq *wrq = (struct iwreq *) req;
++ wlan_adapter *Adapter = priv->adapter;
++ WLAN_802_11_KEY key;
++
++ ENTER();
++
++ memset(key_hex, 0x00, sizeof(key_hex));
++
++ PRINTM(INFO, "WPA2: ENABLE AES_KEY\n");
++ key.KeyLength = WPA_AES_KEY_LEN;
++ key.KeyIndex = 0x40000000;
++ memcpy(key.KeyMaterial, key_hex, key.KeyLength);
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_KEY_MATERIAL,
++ HostCmd_ACT_GET,
++ HostCmd_OPTION_WAITFORRSP,
++ KEY_INFO_ENABLED, &key);
++
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++
++ memcpy(key_hex, Adapter->aeskey.KeyParamSet.Key, sizeof(key_hex));
++
++ HEXDUMP("wlan_getadhocaes_ioctl", key_hex, sizeof(key_hex));
++
++ wrq->u.data.length = sizeof(key_ascii) + 1;
++
++ memset(key_ascii, 0x00, sizeof(key_ascii));
++ tmp = key_ascii;
++
++ for (i = 0; i < sizeof(key_hex); i++)
++ tmp += sprintf(tmp, "%02x", key_hex[i]);
++
++ if (wrq->u.data.pointer) {
++ if (copy_to_user(wrq->u.data.pointer, &key_ascii, sizeof(key_ascii))) {
++ PRINTM(INFO, "copy_to_user failed\n");
++ return -EFAULT;
++ }
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Set multiple dtim
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_set_multiple_dtim_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ struct iwreq *wrq = (struct iwreq *) req;
++ u32 mdtim;
++ int idata;
++ int ret = -EINVAL;
++
++ ENTER();
++
++ idata = *((int *) (wrq->u.name + SUBCMD_OFFSET));
++ mdtim = (u32) idata;
++ if (((mdtim >= MRVDRV_MIN_MULTIPLE_DTIM) &&
++ (mdtim <= MRVDRV_MAX_MULTIPLE_DTIM))
++ || (mdtim == MRVDRV_IGNORE_MULTIPLE_DTIM)) {
++ priv->adapter->MultipleDtim = mdtim;
++ ret = WLAN_STATUS_SUCCESS;
++ }
++ if (ret)
++ PRINTM(INFO, "Invalid parameter, MultipleDtim not changed.\n");
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Set authentication mode
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_setauthalg_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ int alg;
++ struct iwreq *wrq = (struct iwreq *) req;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (wrq->u.data.flags == 0) {
++ //from iwpriv subcmd
++ alg = *((int *) (wrq->u.name + SUBCMD_OFFSET));
++ } else {
++ //from wpa_supplicant subcmd
++ if (copy_from_user(&alg, wrq->u.data.pointer, sizeof(alg))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++ }
++
++ PRINTM(INFO, "auth alg is %#x\n", alg);
++
++ switch (alg) {
++ case AUTH_ALG_SHARED_KEY:
++ Adapter->SecInfo.AuthenticationMode = Wlan802_11AuthModeShared;
++ break;
++ case AUTH_ALG_NETWORK_EAP:
++ Adapter->SecInfo.AuthenticationMode = Wlan802_11AuthModeNetworkEAP;
++ break;
++ case AUTH_ALG_OPEN_SYSTEM:
++ default:
++ Adapter->SecInfo.AuthenticationMode = Wlan802_11AuthModeOpen;
++ break;
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Set Encryption mode
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_setencryptionmode_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ int mode;
++ struct iwreq *wrq = (struct iwreq *) req;
++
++ ENTER();
++
++ if (wrq->u.data.flags == 0) {
++ //from iwpriv subcmd
++ mode = *((int *) (wrq->u.name + SUBCMD_OFFSET));
++ } else {
++ //from wpa_supplicant subcmd
++ if (copy_from_user(&mode, wrq->u.data.pointer, sizeof(int))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++ }
++ PRINTM(INFO, "encryption mode is %#x\n", mode);
++ priv->adapter->SecInfo.EncryptionMode = mode;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get Rx antenna
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_subcmd_getrxantenna_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ int len;
++ char buf[8];
++ struct iwreq *wrq = (struct iwreq *) req;
++
++ ENTER();
++
++ PRINTM(INFO, "WLAN_SUBCMD_GETRXANTENNA\n");
++ len = GetRxAntenna(priv, buf);
++
++ wrq->u.data.length = len;
++ if (wrq->u.data.pointer) {
++ if (copy_to_user(wrq->u.data.pointer, &buf, len)) {
++ PRINTM(INFO, "CopyToUser failed\n");
++ return -EFAULT;
++ }
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get Tx antenna
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_subcmd_gettxantenna_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ int len;
++ char buf[8];
++ struct iwreq *wrq = (struct iwreq *) req;
++
++ ENTER();
++
++ PRINTM(INFO, "WLAN_SUBCMD_GETTXANTENNA\n");
++ len = GetTxAntenna(priv, buf);
++
++ wrq->u.data.length = len;
++ if (wrq->u.data.pointer) {
++ if (copy_to_user(wrq->u.data.pointer, &buf, len)) {
++ PRINTM(INFO, "CopyToUser failed\n");
++ return -EFAULT;
++ }
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get the MAC TSF value from the firmware
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to iwreq structure containing buffer
++ * space to store a TSF value retrieved from the firmware
++ *
++ * @return 0 if successful; IOCTL error code otherwise
++ */
++static int
++wlan_get_tsf_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ u64 tsfVal = 0;
++ int ret;
++
++ ENTER();
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_GET_TSF,
++ 0, HostCmd_OPTION_WAITFORRSP, 0, &tsfVal);
++
++ PRINTM(INFO, "IOCTL: Get TSF = 0x%016llx\n", tsfVal);
++
++ if (ret != WLAN_STATUS_SUCCESS) {
++ PRINTM(INFO, "IOCTL: Get TSF; Command exec failed\n");
++ ret = -EFAULT;
++ } else {
++ if (copy_to_user(wrq->u.data.pointer,
++ &tsfVal,
++ MIN(wrq->u.data.length, sizeof(tsfVal))) != 0) {
++
++ PRINTM(INFO, "IOCTL: Get TSF; Copy to user failed\n");
++ ret = -EFAULT;
++ } else {
++ ret = 0;
++ }
++ }
++
++ LEAVE();
++
++ return ret;
++}
++
++/**
++ * @brief Control WPS Session Enable/Disable
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_do_wps_session_ioctl(wlan_private * priv, struct iwreq *req)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ char buf[8];
++ struct iwreq *wrq = (struct iwreq *) req;
++
++ ENTER();
++
++ PRINTM(INFO, "WLAN_WPS_SESSION\n");
++
++ memset(buf, 0, sizeof(buf));
++ if (copy_from_user(buf, wrq->u.data.pointer,
++ MIN(sizeof(buf) - 1, wrq->u.data.length))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ if (buf[0] == 1)
++ Adapter->wps.SessionEnable = TRUE;
++ else
++ Adapter->wps.SessionEnable = FALSE;
++
++ PRINTM(INFO, "Adapter->wps.SessionEnable = %d\n",
++ Adapter->wps.SessionEnable);
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get/Set DeepSleep mode
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_deepsleep_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ char status[128];
++ struct iwreq *wrq = (struct iwreq *) req;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ PRINTM(MSG, "Cannot enter Deep Sleep mode in connected state.\n");
++ return -EINVAL;
++ }
++
++ if (*(char *) req->ifr_data == '0') {
++ PRINTM(INFO, "Exit Deep Sleep Mode.\n");
++ sprintf(status, "setting to off ");
++ SetDeepSleep(priv, FALSE);
++ } else if (*(char *) req->ifr_data == '1') {
++ PRINTM(INFO, "Enter Deep Sleep Mode.\n");
++ sprintf(status, "setting to on ");
++ SetDeepSleep(priv, TRUE);
++ } else if (*(char *) req->ifr_data == '2') {
++ PRINTM(INFO, "Get Deep Sleep Mode.\n");
++ if (Adapter->IsDeepSleep == TRUE) {
++ sprintf(status, "on ");
++ } else {
++ sprintf(status, "off ");
++ }
++ } else {
++ PRINTM(INFO, "unknown option = %d\n", *(u8 *) req->ifr_data);
++ return -EINVAL;
++ }
++
++ if (wrq->u.data.pointer) {
++ if (copy_to_user(wrq->u.data.pointer, &status, strlen(status)))
++ return -EFAULT;
++ wrq->u.data.length = strlen(status);
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Config hostsleep parameter
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_do_hostsleepcfg_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ char buf[32];
++ int ret = WLAN_STATUS_SUCCESS;
++ int gpio, gap;
++
++ memset(buf, 0, sizeof(buf));
++ if (copy_from_user(buf, wrq->u.data.pointer,
++ MIN(sizeof(buf) - 1, wrq->u.data.length))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++ buf[sizeof(buf) - 1] = 0;
++
++ if (sscanf(buf, "%x %x %x", &Adapter->HSCfg.conditions, &gpio, &gap) != 3) {
++ PRINTM(MSG, "Invalid parameters\n");
++ return -EINVAL;
++ }
++
++ if (Adapter->HSCfg.conditions != HOST_SLEEP_CFG_CANCEL) {
++ Adapter->HSCfg.gpio = (u8) gpio;
++ Adapter->HSCfg.gap = (u8) gap;
++ }
++
++ PRINTM(INFO,
++ "hostsleepcfg: cond=%#x gpio=%#x gap=%#x PSState=%d HS_Activated=%d\n",
++ Adapter->HSCfg.conditions, Adapter->HSCfg.gpio, Adapter->HSCfg.gap,
++ Adapter->PSState, Adapter->HS_Activated);
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_HOST_SLEEP_CFG,
++ 0, HostCmd_OPTION_WAITFORRSP, 0,
++ &Adapter->HSCfg);
++
++ return ret;
++}
++
++/**
++ * @brief Config Host Sleep parameters
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wreq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_hscfg_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int data[3] = { -1, 0xff, 0xff };
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ if (wrq->u.data.length >= 1 && wrq->u.data.length <= 3) {
++ if (copy_from_user
++ (data, wrq->u.data.pointer, sizeof(int) * wrq->u.data.length)) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++ PRINTM(INFO,
++ "wlan_hscfg_ioctl: data[0]=%#08x, data[1]=%#02x, data[2]=%#02x\n",
++ data[0], data[1], data[2]);
++ } else {
++ PRINTM(MSG, "Invalid Argument\n");
++ return -EINVAL;
++ }
++
++ Adapter->HSCfg.conditions = data[0];
++ if (Adapter->HSCfg.conditions != HOST_SLEEP_CFG_CANCEL) {
++ if (wrq->u.data.length == 2) {
++ Adapter->HSCfg.gpio = (u8) data[1];
++ } else if (wrq->u.data.length == 3) {
++ Adapter->HSCfg.gpio = (u8) data[1];
++ Adapter->HSCfg.gap = (u8) data[2];
++ }
++ }
++
++ PRINTM(INFO,
++ "hscfg: cond=%#x gpio=%#x gap=%#x PSState=%d HS_Activated=%d\n",
++ Adapter->HSCfg.conditions, Adapter->HSCfg.gpio, Adapter->HSCfg.gap,
++ Adapter->PSState, Adapter->HS_Activated);
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_HOST_SLEEP_CFG,
++ 0, HostCmd_OPTION_WAITFORRSP, 0,
++ &Adapter->HSCfg);
++
++ data[0] = Adapter->HSCfg.conditions;
++ data[1] = Adapter->HSCfg.gpio;
++ data[2] = Adapter->HSCfg.gap;
++ wrq->u.data.length = 3;
++ if (copy_to_user
++ (wrq->u.data.pointer, data, sizeof(int) * wrq->u.data.length)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Set Host Sleep parameters
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wreq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_hssetpara_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int data[3] = { -1, 0xff, 0xff };
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ if (wrq->u.data.length >= 1 && wrq->u.data.length <= 3) {
++ if (copy_from_user
++ (data, wrq->u.data.pointer, sizeof(int) * wrq->u.data.length)) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++ PRINTM(INFO,
++ "wlan_hssetpara_ioctl: data[0]=%#08x, data[1]=%#02x, data[2]=%#02x\n",
++ data[0], data[1], data[2]);
++ }
++
++ Adapter->HSCfg.conditions = data[0];
++ if (Adapter->HSCfg.conditions != HOST_SLEEP_CFG_CANCEL) {
++ if (wrq->u.data.length == 2) {
++ Adapter->HSCfg.gpio = (u8) data[1];
++ } else if (wrq->u.data.length == 3) {
++ Adapter->HSCfg.gpio = (u8) data[1];
++ Adapter->HSCfg.gap = (u8) data[2];
++ }
++ }
++
++ PRINTM(INFO,
++ "hssetpara: cond=%#x gpio=%#x gap=%#x PSState=%d HS_Activated=%d\n",
++ Adapter->HSCfg.conditions, Adapter->HSCfg.gpio, Adapter->HSCfg.gap,
++ Adapter->PSState, Adapter->HS_Activated);
++
++ data[0] = Adapter->HSCfg.conditions;
++ data[1] = Adapter->HSCfg.gpio;
++ data[2] = Adapter->HSCfg.gap;
++ wrq->u.data.length = 3;
++ if (copy_to_user
++ (wrq->u.data.pointer, data, sizeof(int) * wrq->u.data.length)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Get/Set Cal data ext
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_do_caldata_ext_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ HostCmd_DS_802_11_CAL_DATA_EXT *pCalData = NULL;
++ int ret = WLAN_STATUS_SUCCESS;
++ u16 action;
++
++ ENTER();
++
++ if (!(pCalData = kmalloc(MAX_SETGET_CONF_CMD_LEN, GFP_KERNEL))) {
++ PRINTM(INFO, "Allocate memory failed\n");
++ ret = -ENOMEM;
++ goto calexit;
++ }
++ memset(pCalData, 0, MAX_SETGET_CONF_CMD_LEN);
++
++ if (copy_from_user(pCalData, req->ifr_data + SKIP_CMDNUM,
++ MAX_SETGET_CONF_CMD_LEN)) {
++ PRINTM(INFO, "Copy from user failed\n");
++ kfree(pCalData);
++ ret = -EFAULT;
++ goto calexit;
++ }
++
++ action = (pCalData->Action == HostCmd_ACT_GEN_SET) ?
++ HostCmd_ACT_GEN_SET : HostCmd_ACT_GEN_GET;
++
++ HEXDUMP("Cal data ext", (u8 *) pCalData, MAX_SETGET_CONF_CMD_LEN);
++
++ PRINTM(INFO, "CalData Action = 0x%0X\n", action);
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_CAL_DATA_EXT,
++ action,
++ HostCmd_OPTION_WAITFORRSP, 0, pCalData);
++
++ if (!ret && action == HostCmd_ACT_GEN_GET) {
++ if (copy_to_user(req->ifr_data + SKIP_CMDNUM, pCalData,
++ MAX_SETGET_CONF_CMD_LEN)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ ret = -EFAULT;
++ }
++ }
++
++ kfree(pCalData);
++ calexit:
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Get/Set sleep period
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_sleep_period(wlan_private * priv, struct iwreq *wrq)
++{
++ int ret;
++ int data;
++ wlan_adapter *Adapter = priv->adapter;
++ HostCmd_DS_802_11_SLEEP_PERIOD sleeppd;
++
++ ENTER();
++
++ if (wrq->u.data.length > 1)
++ return -ENOTSUPP;
++
++ memset(&sleeppd, 0, sizeof(sleeppd));
++ memset(&Adapter->sleep_period, 0, sizeof(SleepPeriod));
++
++ if (wrq->u.data.length == 0) {
++ sleeppd.Action = HostCmd_ACT_GEN_GET;
++ } else {
++ if (copy_from_user(&data, wrq->u.data.pointer, sizeof(int))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ /* sleep period is 0 or 10~60 in milliseconds */
++#define MIN_SLEEP_PERIOD 10
++#define MAX_SLEEP_PERIOD 60
++#define SLEEP_PERIOD_RESERVED_FF 0xFF
++ if ((data <= MAX_SLEEP_PERIOD && data >= MIN_SLEEP_PERIOD) ||
++ (data == 0)
++ || (data == SLEEP_PERIOD_RESERVED_FF) /* for UPSD certification tests */
++ ) {
++ sleeppd.Action = HostCmd_ACT_GEN_SET;
++ sleeppd.Period = data;
++ } else
++ return -EINVAL;
++ }
++
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_802_11_SLEEP_PERIOD,
++ 0, HostCmd_OPTION_WAITFORRSP,
++ 0, (void *) &sleeppd);
++
++ data = (int) Adapter->sleep_period.period;
++ if (copy_to_user(wrq->u.data.pointer, &data, sizeof(int))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++ wrq->u.data.length = 1;
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Get/Set adapt rate
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_adapt_rateset(wlan_private * priv, struct iwreq *wrq)
++{
++ int ret;
++ wlan_adapter *Adapter = priv->adapter;
++ int data[4];
++ int rateindex;
++
++ ENTER();
++ memset(data, 0, sizeof(data));
++ if (!wrq->u.data.length) {
++ PRINTM(INFO, "Get ADAPT RATE SET\n");
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_RATE_ADAPT_RATESET,
++ HostCmd_ACT_GEN_GET,
++ HostCmd_OPTION_WAITFORRSP, 0, NULL);
++ data[0] = Adapter->HWRateDropMode;
++ data[2] = Adapter->Threshold;
++ data[3] = Adapter->FinalRate;
++ wrq->u.data.length = 4;
++ data[1] = Adapter->RateBitmap;
++ if (copy_to_user
++ (wrq->u.data.pointer, data, sizeof(int) * wrq->u.data.length)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++
++ } else {
++ PRINTM(INFO, "Set ADAPT RATE SET\n");
++ if (wrq->u.data.length > 4)
++ return -EINVAL;
++ if (copy_from_user
++ (data, wrq->u.data.pointer, sizeof(int) * wrq->u.data.length)) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ if (data[0] > HW_SINGLE_RATE_DROP)
++ return -EINVAL;
++ Adapter->HWRateDropMode = data[0];
++ Adapter->Threshold = data[2];
++ Adapter->FinalRate = data[3];
++ Adapter->RateBitmap = data[1];
++ Adapter->Is_DataRate_Auto = Is_Rate_Auto(priv);
++ if (Adapter->Is_DataRate_Auto)
++ Adapter->DataRate = 0;
++ else {
++ rateindex = GetRateIndex(priv);
++ Adapter->DataRate = index_to_data_rate(rateindex);
++ }
++ PRINTM(INFO, "RateBitmap=%x,IsRateAuto=%d,DataRate=%d\n",
++ Adapter->RateBitmap, Adapter->Is_DataRate_Auto,
++ Adapter->DataRate);
++ ret =
++ PrepareAndSendCommand(priv, HostCmd_CMD_802_11_RATE_ADAPT_RATESET,
++ HostCmd_ACT_GEN_SET,
++ HostCmd_OPTION_WAITFORRSP, 0, NULL);
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Get/Set inactivity timeout
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_inactivity_timeout(wlan_private * priv, struct iwreq *wrq)
++{
++ int ret;
++ int data = 0;
++ u16 timeout = 0;
++
++ ENTER();
++ if (wrq->u.data.length > 1)
++ return -ENOTSUPP;
++
++ if (wrq->u.data.length == 0) {
++ /* Get */
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_INACTIVITY_TIMEOUT,
++ HostCmd_ACT_GET,
++ HostCmd_OPTION_WAITFORRSP, 0, &timeout);
++ data = timeout;
++ if (copy_to_user(wrq->u.data.pointer, &data, sizeof(int))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++ } else {
++ /* Set */
++ if (copy_from_user(&data, wrq->u.data.pointer, sizeof(int))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ timeout = data;
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_INACTIVITY_TIMEOUT,
++ HostCmd_ACT_SET,
++ HostCmd_OPTION_WAITFORRSP, 0, &timeout);
++ }
++
++ wrq->u.data.length = 1;
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Get LOG
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to iwreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_do_getlog_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ int ret;
++ char *buf = NULL;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ PRINTM(INFO, " GET STATS\n");
++
++ if (!(buf = kmalloc(GETLOG_BUFSIZE, GFP_KERNEL))) {
++ PRINTM(INFO, "kmalloc failed!\n");
++ return -ENOMEM;
++ }
++
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_802_11_GET_LOG,
++ 0, HostCmd_OPTION_WAITFORRSP, 0, NULL);
++
++ if (!ret && wrq->u.data.pointer) {
++ sprintf(buf, "\n"
++ "mcasttxframe %u\n"
++ "failed %u\n"
++ "retry %u\n"
++ "multiretry %u\n"
++ "framedup %u\n"
++ "rtssuccess %u\n"
++ "rtsfailure %u\n"
++ "ackfailure %u\n"
++ "rxfrag %u\n"
++ "mcastrxframe %u\n"
++ "fcserror %u\n"
++ "txframe %u\n",
++ Adapter->LogMsg.mcasttxframe,
++ Adapter->LogMsg.failed,
++ Adapter->LogMsg.retry,
++ Adapter->LogMsg.multiretry,
++ Adapter->LogMsg.framedup,
++ Adapter->LogMsg.rtssuccess,
++ Adapter->LogMsg.rtsfailure,
++ Adapter->LogMsg.ackfailure,
++ Adapter->LogMsg.rxfrag,
++ Adapter->LogMsg.mcastrxframe,
++ Adapter->LogMsg.fcserror, Adapter->LogMsg.txframe);
++
++ wrq->u.data.length = strlen(buf) + 1;
++ if (copy_to_user(wrq->u.data.pointer, buf, wrq->u.data.length)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ ret = -EFAULT;
++ }
++ }
++
++ kfree(buf);
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief config sleep parameters
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_sleep_params_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ int ret;
++ wlan_adapter *Adapter = priv->adapter;
++ wlan_ioctl_sleep_params_config sp;
++
++ ENTER();
++
++ memset(&sp, 0, sizeof(sp));
++
++ if (!wrq->u.data.pointer)
++ return -EFAULT;
++ if (copy_from_user(&sp, wrq->u.data.pointer,
++ MIN(sizeof(sp), wrq->u.data.length))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ memcpy(&Adapter->sp, &sp.Error, sizeof(SleepParams));
++
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_802_11_SLEEP_PARAMS,
++ sp.Action, HostCmd_OPTION_WAITFORRSP,
++ 0, NULL);
++
++ if (!ret && !sp.Action) {
++ memcpy(&sp.Error, &Adapter->sp, sizeof(SleepParams));
++ if (copy_to_user(wrq->u.data.pointer, &sp, sizeof(sp))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++ wrq->u.data.length = sizeof(sp);
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Read the CIS Table
++ * @param priv A pointer to wlan_private structure
++ * @param req A pointer to ifreq structure
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_do_getcis_ioctl(wlan_private * priv, struct ifreq *req)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ struct iwreq *wrq = (struct iwreq *) req;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (wrq->u.data.pointer) {
++ if (copy_to_user(wrq->u.data.pointer, Adapter->CisInfoBuf,
++ Adapter->CisInfoLen)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++ wrq->u.data.length = Adapter->CisInfoLen;
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Set BCA timeshare
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to user data
++ * @return WLAN_STATUS_SUCCESS--success, otherwise fail
++ */
++static int
++wlan_bca_timeshare_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ int ret;
++ wlan_adapter *Adapter = priv->adapter;
++ wlan_ioctl_bca_timeshare_config bca_ts;
++
++ ENTER();
++
++ memset(&bca_ts, 0, sizeof(HostCmd_DS_802_11_BCA_TIMESHARE));
++
++ if (!wrq->u.data.pointer)
++ return -EFAULT;
++ if (copy_from_user(&bca_ts, wrq->u.data.pointer,
++ MIN(sizeof(bca_ts), wrq->u.data.length))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ PRINTM(INFO, "TrafficType=%x TimeShareInterva=%x BTTime=%x\n",
++ bca_ts.TrafficType, bca_ts.TimeShareInterval, bca_ts.BTTime);
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_BCA_CONFIG_TIMESHARE,
++ bca_ts.Action, HostCmd_OPTION_WAITFORRSP,
++ 0, &bca_ts);
++
++ if (!ret && !bca_ts.Action) {
++ if (copy_to_user(wrq->u.data.pointer, &Adapter->bca_ts,
++ sizeof(bca_ts))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++ wrq->u.data.length = sizeof(HostCmd_DS_802_11_BCA_TIMESHARE);
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Set scan type
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to user data
++ * @return WLAN_STATUS_SUCCESS--success, otherwise fail
++ */
++static int
++wlan_scan_type_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ u8 buf[12];
++ u8 *option[] = { "active", "passive", "get", };
++ int i, max_options = (sizeof(option) / sizeof(option[0]));
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (wlan_get_state_11d(priv) == ENABLE_11D) {
++ PRINTM(INFO, "11D: Cannot set scantype when 11D enabled\n");
++ return -EFAULT;
++ }
++
++ memset(buf, 0, sizeof(buf));
++
++ if (copy_from_user(buf, wrq->u.data.pointer, MIN(sizeof(buf),
++ wrq->u.data.length))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ PRINTM(INFO, "Scan Type Option = %s\n", buf);
++
++ buf[sizeof(buf) - 1] = '\0';
++
++ for (i = 0; i < max_options; i++) {
++ if (!strcmp(buf, option[i]))
++ break;
++ }
++
++ switch (i) {
++ case 0:
++ Adapter->ScanType = HostCmd_SCAN_TYPE_ACTIVE;
++
++ break;
++ case 1:
++ Adapter->ScanType = HostCmd_SCAN_TYPE_PASSIVE;
++ break;
++ case 2:
++ wrq->u.data.length = strlen(option[Adapter->ScanType]) + 1;
++
++ if (copy_to_user(wrq->u.data.pointer,
++ option[Adapter->ScanType], wrq->u.data.length)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ ret = -EFAULT;
++ }
++
++ break;
++ default:
++ PRINTM(INFO, "Invalid Scan Type Ioctl Option\n");
++ ret = -EINVAL;
++ break;
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Set scan mode
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to user data
++ * @return WLAN_STATUS_SUCCESS--success, otherwise fail
++ */
++static int
++wlan_scan_mode_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ u8 buf[12];
++ u8 *option[] = { "bss", "ibss", "any", "get" };
++ int i, max_options = (sizeof(option) / sizeof(option[0]));
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ memset(buf, 0, sizeof(buf));
++
++ if (copy_from_user(buf, wrq->u.data.pointer, MIN(sizeof(buf),
++ wrq->u.data.length))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ PRINTM(INFO, "Scan Mode Option = %s\n", buf);
++
++ buf[sizeof(buf) - 1] = '\0';
++
++ for (i = 0; i < max_options; i++) {
++ if (!strcmp(buf, option[i]))
++ break;
++ }
++
++ switch (i) {
++
++ case 0:
++ Adapter->ScanMode = HostCmd_BSS_TYPE_BSS;
++ break;
++ case 1:
++ Adapter->ScanMode = HostCmd_BSS_TYPE_IBSS;
++ break;
++ case 2:
++ Adapter->ScanMode = HostCmd_BSS_TYPE_ANY;
++ break;
++ case 3:
++
++ wrq->u.data.length = strlen(option[Adapter->ScanMode - 1]) + 1;
++
++ PRINTM(INFO, "Get Scan Mode Option = %s\n",
++ option[Adapter->ScanMode - 1]);
++
++ PRINTM(INFO, "Scan Mode Length %d\n", wrq->u.data.length);
++
++ if (copy_to_user(wrq->u.data.pointer,
++ option[Adapter->ScanMode - 1], wrq->u.data.length)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ ret = -EFAULT;
++ }
++ PRINTM(INFO, "GET Scan Type Option after copy = %s\n",
++ (char *) wrq->u.data.pointer);
++
++ break;
++
++ default:
++ PRINTM(INFO, "Invalid Scan Mode Ioctl Option\n");
++ ret = -EINVAL;
++ break;
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Get/Set Adhoc G Rate
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to user data
++ * @return WLAN_STATUS_SUCCESS--success, otherwise fail
++ */
++static int
++wlan_do_set_grate_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int data, data1;
++ int *val;
++
++ ENTER();
++
++ data1 = *((int *) (wrq->u.name + SUBCMD_OFFSET));
++ switch (data1) {
++ case 0:
++ Adapter->adhoc_grate_enabled = FALSE;
++ break;
++ case 1:
++ Adapter->adhoc_grate_enabled = TRUE;
++ break;
++ case 2:
++ break;
++ default:
++ return -EINVAL;
++ }
++ data = Adapter->adhoc_grate_enabled;
++ val = (int *) wrq->u.name;
++ *val = data;
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get/Set Firmware wakeup method
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to user data
++ * @return WLAN_STATUS_SUCCESS--success, otherwise fail
++ */
++static int
++wlan_cmd_fw_wakeup_method(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ u16 action;
++ u16 method;
++ int ret;
++ int data;
++
++ ENTER();
++
++ if (wrq->u.data.length == 0 || !wrq->u.data.pointer) {
++ action = HostCmd_ACT_GET;
++ method = Adapter->fwWakeupMethod;
++ } else {
++ action = HostCmd_ACT_SET;
++ if (copy_from_user(&data, wrq->u.data.pointer, sizeof(int))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ switch (data) {
++ case 0:
++ method = WAKEUP_FW_UNCHANGED;
++ break;
++ case 1:
++ method = WAKEUP_FW_THRU_INTERFACE;
++ break;
++ case 2:
++ method = WAKEUP_FW_THRU_GPIO;
++ break;
++ default:
++ return -EINVAL;
++ }
++ }
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_FW_WAKE_METHOD, action,
++ HostCmd_OPTION_WAITFORRSP, 0, &method);
++
++ if (action == HostCmd_ACT_GET) {
++ method = Adapter->fwWakeupMethod;
++ if (copy_to_user(wrq->u.data.pointer, &method, sizeof(method))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++ wrq->u.data.length = 1;
++ }
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Get/Set Auto Deep Sleep mode
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to user data
++ * @return WLAN_STATUS_SUCCESS--success, otherwise fail
++ */
++static int
++wlan_auto_deep_sleep(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int data;
++
++ ENTER();
++
++ if (wrq->u.data.length > 0 && wrq->u.data.pointer) {
++ if (copy_from_user(&data, wrq->u.data.pointer, sizeof(int))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ switch (data) {
++ case 0:
++ if (Adapter->IsAutoDeepSleepEnabled) {
++ Adapter->IsAutoDeepSleepEnabled = FALSE;
++ /* Try to exit DS if auto DS disabled */
++ SetDeepSleep(priv, FALSE);
++ }
++ break;
++ case 1:
++ if (!Adapter->IsAutoDeepSleepEnabled) {
++ Adapter->IsAutoDeepSleepEnabled = TRUE;
++ /* Wakeup main thread to enter DS if auto DS enabled */
++ wake_up_interruptible(&priv->MainThread.waitQ);
++ }
++ break;
++ default:
++ return -EINVAL;
++ }
++ }
++
++ data = Adapter->IsAutoDeepSleepEnabled;
++ if (copy_to_user(wrq->u.data.pointer, &data, sizeof(data))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++ wrq->u.data.length = 1;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get the CFP table based on the region code
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to iwreq structure
++ *
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++int
++wlan_get_cfp_table_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ pwlan_ioctl_cfp_table ioctl_cfp;
++ CHANNEL_FREQ_POWER *cfp;
++ int cfp_no;
++ int regioncode;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ if (wrq->u.data.length == 0 || !wrq->u.data.pointer) {
++ ret = -EINVAL;
++ goto cfpexit;
++ }
++
++ ioctl_cfp = (pwlan_ioctl_cfp_table) wrq->u.data.pointer;
++
++ if (copy_from_user(&regioncode, &ioctl_cfp->region, sizeof(int))) {
++ PRINTM(INFO, "Get CFP table: copy from user failed\n");
++ ret = -EFAULT;
++ goto cfpexit;
++ }
++
++ if (!regioncode)
++ regioncode = Adapter->RegionCode;
++
++ cfp =
++ wlan_get_region_cfp_table((u8) regioncode, BAND_G | BAND_B, &cfp_no);
++
++ if (cfp == NULL) {
++ PRINTM(MSG, "No related CFP table found, region code = 0x%x\n",
++ regioncode);
++ ret = -EFAULT;
++ goto cfpexit;
++ }
++
++ if (copy_to_user(&ioctl_cfp->cfp_no, &cfp_no, sizeof(int))) {
++ PRINTM(INFO, "Get CFP table: copy to user failed\n");
++ ret = -EFAULT;
++ goto cfpexit;
++ }
++
++ if (copy_to_user
++ (ioctl_cfp->cfp, cfp, sizeof(CHANNEL_FREQ_POWER) * cfp_no)) {
++ PRINTM(INFO, "Get CFP table: copy to user failed\n");
++ ret = -EFAULT;
++ goto cfpexit;
++ }
++
++ wrq->u.data.length =
++ sizeof(int) * 2 + sizeof(CHANNEL_FREQ_POWER) * cfp_no;
++
++ cfpexit:
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Retrieve transmit packet statistics from the firmware
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param wrq A pointer to iwreq structure
++ *
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++int
++wlan_tx_pkt_stats_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ HostCmd_DS_TX_PKT_STATS txPktStats;
++ int ret;
++
++ ENTER();
++
++ if (wrq->u.data.length == 0 || !wrq->u.data.pointer) {
++ LEAVE();
++ return -EINVAL;
++ }
++
++ if (wrq->u.data.length < sizeof(txPktStats)) {
++ LEAVE();
++ return -E2BIG;
++ }
++
++ memset(&txPktStats, 0x00, sizeof(txPktStats));
++
++ if ((ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_TX_PKT_STATS, 0,
++ HostCmd_OPTION_WAITFORRSP,
++ 0, &txPktStats))) {
++ LEAVE();
++ return ret;
++ }
++
++ if (copy_to_user(wrq->u.data.pointer,
++ (u8 *) & txPktStats, sizeof(txPktStats))) {
++ PRINTM(INFO, "TxPktStats: copy to user failed\n");
++ return -EFAULT;
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/********************************************************
++ Global Functions
++********************************************************/
++/**
++ * @brief ioctl function - entry point
++ *
++ * @param dev A pointer to net_device structure
++ * @param req A pointer to ifreq structure
++ * @param cmd command
++ * @return WLAN_STATUS_SUCCESS--success, otherwise fail
++ */
++int
++wlan_do_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
++{
++ int subcmd = 0;
++ int idata = 0;
++ int *pdata;
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ struct iwreq *wrq = (struct iwreq *) req;
++
++ ENTER();
++
++ if (Adapter->bHostSleepConfigured) {
++ BOOLEAN cmd_allowed = FALSE;
++ int count = sizeof(Commands_Allowed_In_HostSleep)
++ / sizeof(Commands_Allowed_In_HostSleep[0]);
++
++ if (cmd == WLANHOSTSLEEPCFG) {
++ char buf[32];
++ u32 cond;
++
++ memset(buf, 0, sizeof(buf));
++ if (copy_from_user(buf, wrq->u.data.pointer,
++ MIN(sizeof(buf) - 1, wrq->u.data.length))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++ buf[sizeof(buf) - 1] = 0;
++ sscanf(buf, "%x ", &cond);
++ if (cond == HOST_SLEEP_CFG_CANCEL) {
++ cmd_allowed = TRUE;
++ if (Adapter->IsDeepSleep) {
++ SetDeepSleep(priv, FALSE);
++ }
++ }
++ } else if (cmd == WLAN_SET_GET_SIXTEEN_INT &&
++ ((int) wrq->u.data.flags == WLANHSCFG)) {
++ u32 cond;
++ if (copy_from_user(&cond, wrq->u.data.pointer, sizeof(cond))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ if (cond == HOST_SLEEP_CFG_CANCEL) {
++ cmd_allowed = TRUE;
++ if (Adapter->IsDeepSleep) {
++ SetDeepSleep(priv, FALSE);
++ }
++ }
++ } else
++ if (Is_Command_Allowed_In_Sleep
++ (req, cmd, Commands_Allowed_In_HostSleep, count)) {
++ cmd_allowed = TRUE;
++ }
++ if (!cmd_allowed) {
++ PRINTM(MSG, "%s IOCTLS called when WLAN access is blocked\n",
++ __FUNCTION__);
++ return -EBUSY;
++ }
++ }
++
++ if (!Adapter->IsAutoDeepSleepEnabled) {
++ if (Adapter->IsDeepSleep) {
++ int count = sizeof(Commands_Allowed_In_DeepSleep)
++ / sizeof(Commands_Allowed_In_DeepSleep[0]);
++
++ if (!Is_Command_Allowed_In_Sleep
++ (req, cmd, Commands_Allowed_In_DeepSleep, count)) {
++ PRINTM(MSG,
++ "():%s IOCTLS called when station is"
++ " in DeepSleep\n", __FUNCTION__);
++ return -EBUSY;
++ }
++ }
++ } else if (cmd == WLANDEEPSLEEP) {
++ PRINTM(MSG,
++ "DeepSleep command is not allowed in AutoDeepSleep mode\n");
++ return -EBUSY;
++ }
++
++ PRINTM(INFO, "wlan_do_ioctl: ioctl cmd = 0x%x\n", cmd);
++ switch (cmd) {
++ case WLANEXTSCAN:
++ ret = wlan_extscan_ioctl(priv, req);
++ break;
++ case WLANHOSTCMD:
++ ret = wlan_hostcmd_ioctl(dev, req, cmd);
++ break;
++ case WLANARPFILTER:
++ ret = wlan_arpfilter_ioctl(dev, req, cmd);
++ break;
++
++ case WLANCISDUMP: /* Read CIS Table */
++ ret = wlan_do_getcis_ioctl(priv, req);
++ break;
++
++ case WLANSCAN_TYPE:
++ PRINTM(INFO, "Scan Type Ioctl\n");
++ ret = wlan_scan_type_ioctl(priv, wrq);
++ break;
++
++#ifdef MFG_CMD_SUPPORT
++ case WLANMANFCMD:
++ PRINTM(INFO, "Entering the Manufacturing ioctl SIOCCFMFG\n");
++ ret = wlan_mfg_command(priv, wrq);
++
++ PRINTM(INFO, "Manufacturing Ioctl %s\n",
++ (ret) ? "failed" : "success");
++ break;
++#endif
++
++ case WLANREGRDWR: /* Register read write command */
++ ret = wlan_regrdwr_ioctl(priv, req);
++ break;
++
++ case WLANCMD52RDWR: /* CMD52 read/write command */
++ ret = wlan_cmd52rdwr_ioctl(priv, req);
++ break;
++
++ case WLANCMD53RDWR: /* CMD53 read/write command */
++ ret = wlan_cmd53rdwr_ioctl(priv, req);
++ break;
++
++ case SIOCSIWENCODE: /* set encoding token & mode for WPA */
++ ret = wlan_set_encode(dev, NULL, &(wrq->u.data), wrq->u.data.pointer);
++ break;
++ case WLAN_SETNONE_GETNONE: /* set WPA mode on/off ioctl #20 */
++ switch (wrq->u.data.flags) {
++ case WLANDEAUTH:
++ PRINTM(INFO, "Deauth\n");
++ if (Adapter->InfrastructureMode == Wlan802_11Infrastructure &&
++ Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ SendDeauthentication(priv);
++ } else if (Adapter->InfrastructureMode == Wlan802_11IBSS &&
++ Adapter->MediaConnectStatus ==
++ WlanMediaStateConnected) {
++ StopAdhocNetwork(priv);
++ }
++ break;
++
++ case WLANADHOCSTOP:
++ PRINTM(INFO, "Adhoc stop\n");
++ ret = wlan_do_adhocstop_ioctl(priv);
++ break;
++
++ case WLANRADIOON:
++ wlan_radio_ioctl(priv, RADIO_ON);
++ break;
++
++ case WLANRADIOOFF:
++ ret = wlan_radio_ioctl(priv, RADIO_OFF);
++ break;
++ case WLANREMOVEADHOCAES:
++ ret = wlan_remove_aes(priv);
++ break;
++#ifdef REASSOCIATION
++ case WLANREASSOCIATIONAUTO:
++ reassociation_on(priv);
++ break;
++ case WLANREASSOCIATIONUSER:
++ reassociation_off(priv);
++ break;
++#endif /* REASSOCIATION */
++ case WLANWLANIDLEON:
++ wlanidle_on(priv);
++ break;
++ case WLANWLANIDLEOFF:
++ wlanidle_off(priv);
++ break;
++ } /* End of switch */
++ break;
++
++ case WLAN_SETWORDCHAR_GETNONE:
++ switch (wrq->u.data.flags) {
++ case WLANSETADHOCAES:
++ ret = wlan_setadhocaes_ioctl(priv, req);
++ break;
++ }
++ break;
++
++ case WLAN_SETONEINT_GETWORDCHAR:
++ switch (wrq->u.data.flags) {
++ case WLANGETADHOCAES:
++ ret = wlan_getadhocaes_ioctl(priv, req);
++ break;
++ case WLANVERSION: /* Get driver version */
++ ret = wlan_version_ioctl(priv, req);
++ break;
++ case WLANVEREXT:
++ ret = wlan_verext_ioctl(priv, wrq);
++ break;
++ }
++ break;
++
++ case WLANSETWPAIE:
++ ret = wlan_set_wpa_ie_ioctl(priv, req);
++ break;
++ case WLAN_SETINT_GETINT:
++ /* The first 4 bytes of req->ifr_data is sub-ioctl number
++ * after 4 bytes sits the payload.
++ */
++ subcmd = (int) req->ifr_data; //from iwpriv subcmd
++ switch (subcmd) {
++ case WLANNF:
++ ret = wlan_get_nf(priv, wrq);
++ break;
++ case WLANRSSI:
++ ret = wlan_get_rssi(priv, wrq);
++ break;
++ case WLANBGSCAN:
++ {
++ int data, data1;
++ int *val;
++ data1 = *((int *) (wrq->u.name + SUBCMD_OFFSET));
++ switch (data1) {
++ case CMD_DISABLED:
++ PRINTM(INFO, "Background scan is set to disable\n");
++ ret = wlan_bg_scan_enable(priv, FALSE);
++ val = (int *) wrq->u.name;
++ *val = data1;
++ break;
++ case CMD_ENABLED:
++ PRINTM(INFO, "Background scan is set to enable\n");
++ ret = wlan_bg_scan_enable(priv, TRUE);
++ val = (int *) wrq->u.name;
++ *val = data1;
++ break;
++ case CMD_GET:
++ data = (Adapter->bgScanConfig->Enable == TRUE) ?
++ CMD_ENABLED : CMD_DISABLED;
++ val = (int *) wrq->u.name;
++ *val = data;
++ break;
++ default:
++ ret = -EINVAL;
++ PRINTM(INFO, "Background scan: wrong parameter\n");
++ break;
++ }
++ }
++ break;
++ case WLANENABLE11D:
++ ret = wlan_cmd_enable_11d(priv, wrq);
++ break;
++ case WLANADHOCGRATE:
++ ret = wlan_do_set_grate_ioctl(priv, wrq);
++ break;
++ case WLANSDIOCLOCK:
++ {
++ int data;
++ int *val;
++ data = *((int *) (wrq->u.name + SUBCMD_OFFSET));
++ switch (data) {
++ case CMD_DISABLED:
++ PRINTM(INFO, "SDIO clock is turned off\n");
++ ret = sbi_set_bus_clock(priv, FALSE);
++ break;
++ case CMD_ENABLED:
++ PRINTM(INFO, "SDIO clock is turned on\n");
++ ret = sbi_set_bus_clock(priv, TRUE);
++ break;
++ case CMD_GET: /* need an API in sdio.c to get STRPCL */
++ default:
++ ret = -EINVAL;
++ PRINTM(INFO, "sdioclock: wrong parameter\n");
++ break;
++ }
++ val = (int *) wrq->u.name;
++ *val = data;
++ }
++ break;
++ case WLANWMM_ENABLE:
++ ret = wlan_wmm_enable_ioctl(priv, wrq);
++ break;
++ case WLANNULLGEN:
++ ret = wlan_null_pkg_gen(priv, wrq);
++ /* enable/disable null pkg generation */
++ break;
++ case WLANADHOCCSET:
++ ret = wlan_set_coalescing_ioctl(priv, wrq);
++ break;
++ case WLAN_ADHOC_G_PROT:
++ ret = wlan_adhoc_g_protection(priv, wrq);
++ break;
++
++ }
++ break;
++
++ case WLAN_SETONEINT_GETONEINT:
++ switch (wrq->u.data.flags) {
++
++ case WLAN_WMM_QOSINFO:
++ {
++ int data;
++ if (wrq->u.data.length == 1) {
++ if (copy_from_user
++ (&data, wrq->u.data.pointer, sizeof(int))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++ Adapter->wmm.qosinfo = (u8) data;
++ } else {
++ data = (int) Adapter->wmm.qosinfo;
++ if (copy_to_user(wrq->u.data.pointer, &data, sizeof(int))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++ wrq->u.data.length = 1;
++ }
++ }
++ break;
++ case WLAN_LISTENINTRVL:
++ if (!wrq->u.data.length) {
++ int data;
++ PRINTM(INFO, "Get LocalListenInterval Value\n");
++#define GET_ONE_INT 1
++ data = Adapter->LocalListenInterval;
++ if (copy_to_user(wrq->u.data.pointer, &data, sizeof(int))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++
++ wrq->u.data.length = GET_ONE_INT;
++ } else {
++ int data;
++ if (copy_from_user(&data, wrq->u.data.pointer, sizeof(int))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ PRINTM(INFO, "Set LocalListenInterval = %d\n", data);
++#define MAX_U16_VAL 65535
++ if (data > MAX_U16_VAL) {
++ PRINTM(INFO, "Exceeds U16 value\n");
++ return -EINVAL;
++ }
++ Adapter->LocalListenInterval = data;
++ }
++ break;
++ case WLAN_FW_WAKEUP_METHOD:
++ ret = wlan_cmd_fw_wakeup_method(priv, wrq);
++ break;
++ case WLAN_NULLPKTINTERVAL:
++ ret = wlan_null_pkt_interval(priv, wrq);
++ break;
++ case WLAN_BCN_MISS_TIMEOUT:
++ ret = wlan_bcn_miss_timeout(priv, wrq);
++ break;
++ case WLAN_ADHOC_AWAKE_PERIOD:
++ ret = wlan_adhoc_awake_period(priv, wrq);
++ break;
++ case WLAN_LDO:
++ ret = wlan_ldo_config(priv, wrq);
++ break;
++ case WLAN_SDIO_MODE:
++ ret = wlan_sdio_mode(priv, wrq);
++ break;
++ case WLAN_RTS_CTS_CTRL:
++ ret = wlan_rts_cts_ctrl(priv, wrq);
++ break;
++ case WLAN_AUTODEEPSLEEP:
++ ret = wlan_auto_deep_sleep(priv, wrq);
++ break;
++ case WLAN_WAKEUP_MT:
++ if (wrq->u.data.length > 0)
++ Adapter->IntCounter++;
++ wake_up_interruptible(&priv->MainThread.waitQ);
++ break;
++ default:
++ ret = -EOPNOTSUPP;
++ break;
++ }
++ break;
++
++ case WLAN_SETONEINT_GETNONE:
++ /* The first 4 bytes of req->ifr_data is sub-ioctl number
++ * after 4 bytes sits the payload.
++ */
++ subcmd = wrq->u.data.flags; //from wpa_supplicant subcmd
++
++ if (!subcmd)
++ subcmd = (int) req->ifr_data; //from iwpriv subcmd
++
++ idata = *((int *) (wrq->u.name + SUBCMD_OFFSET));
++
++ switch (subcmd) {
++ case WLAN_SUBCMD_SETRXANTENNA: /* SETRXANTENNA */
++ ret = SetRxAntenna(priv, idata);
++ break;
++ case WLAN_SUBCMD_SETTXANTENNA: /* SETTXANTENNA */
++ ret = SetTxAntenna(priv, idata);
++ break;
++
++ case WLANSETBCNAVG:
++ if (idata == 0)
++ Adapter->bcn_avg_factor = DEFAULT_BCN_AVG_FACTOR;
++ else if (idata > MAX_BCN_AVG_FACTOR || idata < MIN_BCN_AVG_FACTOR) {
++ PRINTM(MSG, "The value '%u' is out of the range (0-%u).\n",
++ idata, MAX_BCN_AVG_FACTOR);
++ return -EINVAL;
++ } else
++ Adapter->bcn_avg_factor = idata;
++ break;
++ case WLANSETDATAAVG:
++ if (idata == 0)
++ Adapter->data_avg_factor = DEFAULT_DATA_AVG_FACTOR;
++ else if (idata > MAX_DATA_AVG_FACTOR
++ || idata < MIN_DATA_AVG_FACTOR) {
++ PRINTM(MSG, "The value '%u' is out of the range (0-%u).\n",
++ idata, MAX_DATA_AVG_FACTOR);
++ return -EINVAL;
++ } else
++ Adapter->data_avg_factor = idata;
++ memset(Adapter->rawSNR, 0x00, sizeof(Adapter->rawSNR));
++ memset(Adapter->rawNF, 0x00, sizeof(Adapter->rawNF));
++ Adapter->nextSNRNF = 0;
++ Adapter->numSNRNF = 0;
++ break;
++ case WLANASSOCIATE:
++ ret = wlan_associate_to_table_idx(priv, idata);
++ break;
++
++ case WLANSETREGION:
++ ret = wlan_set_region(priv, (u16) idata);
++ break;
++
++ case WLAN_SET_LISTEN_INTERVAL:
++ Adapter->ListenInterval = (u16) idata;
++ break;
++
++ case WLAN_SET_MULTIPLE_DTIM:
++ ret = wlan_set_multiple_dtim_ioctl(priv, req);
++ break;
++
++ case WLANSETAUTHALG:
++ ret = wlan_setauthalg_ioctl(priv, req);
++ break;
++
++ case WLANSETENCRYPTIONMODE:
++ ret = wlan_setencryptionmode_ioctl(priv, req);
++ break;
++
++ default:
++ ret = -EOPNOTSUPP;
++ break;
++ }
++
++ break;
++
++ case WLAN_SETNONE_GETTWELVE_CHAR: /* Get Antenna settings */
++ /*
++ * We've not used IW_PRIV_TYPE_FIXED so sub-ioctl number is
++ * in flags of iwreq structure, otherwise it will be in
++ * mode member of iwreq structure.
++ */
++ switch ((int) wrq->u.data.flags) {
++ case WLAN_SUBCMD_GETRXANTENNA: /* Get Rx Antenna */
++ ret = wlan_subcmd_getrxantenna_ioctl(priv, req);
++ break;
++
++ case WLAN_SUBCMD_GETTXANTENNA: /* Get Tx Antenna */
++ ret = wlan_subcmd_gettxantenna_ioctl(priv, req);
++ break;
++
++ case WLAN_GET_TSF:
++ ret = wlan_get_tsf_ioctl(priv, wrq);
++ break;
++
++ case WLAN_WPS_SESSION:
++ ret = wlan_do_wps_session_ioctl(priv, wrq);
++ break;
++ }
++ break;
++
++ case WLANDEEPSLEEP:
++ ret = wlan_deepsleep_ioctl(priv, req);
++ break;
++
++ case WLANHOSTSLEEPCFG:
++ ret = wlan_do_hostsleepcfg_ioctl(priv, wrq);
++ break;
++
++ case WLAN_SET64CHAR_GET64CHAR:
++ switch ((int) wrq->u.data.flags) {
++
++ case WLANSLEEPPARAMS:
++ ret = wlan_sleep_params_ioctl(priv, wrq);
++ break;
++
++ case WLAN_BCA_TIMESHARE:
++ ret = wlan_bca_timeshare_ioctl(priv, wrq);
++ break;
++ case WLANSCAN_MODE:
++ PRINTM(INFO, "Scan Mode Ioctl\n");
++ ret = wlan_scan_mode_ioctl(priv, wrq);
++ break;
++
++ case WLAN_GET_ADHOC_STATUS:
++ ret = wlan_get_adhoc_status_ioctl(priv, wrq);
++ break;
++ case WLAN_SET_GEN_IE:
++ ret = wlan_set_gen_ie_ioctl(priv, wrq);
++ break;
++ case WLAN_GET_GEN_IE:
++ ret = wlan_get_gen_ie_ioctl(priv, wrq);
++ break;
++ case WLAN_WMM_QUEUE_STATUS:
++ ret = wlan_wmm_queue_status_ioctl(priv, wrq);
++ break;
++ }
++ break;
++
++ case WLAN_SETCONF_GETCONF:
++ PRINTM(INFO, "The WLAN_SETCONF_GETCONF=0x%x is %d\n",
++ WLAN_SETCONF_GETCONF, *(u8 *) req->ifr_data);
++ switch (*(u8 *) req->ifr_data) {
++ case CAL_DATA_EXT_CONFIG:
++ ret = wlan_do_caldata_ext_ioctl(priv, req);
++ break;
++ case BG_SCAN_CONFIG:
++ ret = wlan_do_bg_scan_config_ioctl(priv, req);
++ break;
++ }
++ break;
++
++ case WLAN_SETNONE_GETONEINT:
++ switch ((int) req->ifr_data) {
++ case WLANGETBCNAVG:
++ pdata = (int *) wrq->u.name;
++ *pdata = (int) Adapter->bcn_avg_factor;
++ break;
++
++ case WLANGETDATAAVG:
++ pdata = (int *) wrq->u.name;
++ *pdata = (int) Adapter->data_avg_factor;
++ break;
++
++ case WLANGETREGION:
++ pdata = (int *) wrq->u.name;
++ *pdata = (int) Adapter->RegionCode;
++ break;
++
++ case WLAN_GET_LISTEN_INTERVAL:
++ pdata = (int *) wrq->u.name;
++ *pdata = (int) Adapter->ListenInterval;
++ break;
++
++ case WLAN_GET_MULTIPLE_DTIM:
++ pdata = (int *) wrq->u.name;
++ *pdata = (int) Adapter->MultipleDtim;
++ break;
++ case WLAN_GET_TX_RATE:
++ ret = wlan_get_txrate_ioctl(priv, req);
++ break;
++ case WLANGETDTIM:
++ ret = wlan_get_dtim_ioctl(priv, req);
++ break;
++ default:
++ ret = -EOPNOTSUPP;
++
++ }
++
++ break;
++
++ case WLANGETLOG:
++ ret = wlan_do_getlog_ioctl(priv, wrq);
++ break;
++
++ case WLAN_SET_GET_SIXTEEN_INT:
++ switch ((int) wrq->u.data.flags) {
++ case WLAN_TPCCFG:
++ {
++ int data[5];
++ HostCmd_DS_802_11_TPC_CFG cfg;
++ memset(&cfg, 0, sizeof(cfg));
++ if ((wrq->u.data.length > 1) && (wrq->u.data.length != 5))
++ return WLAN_STATUS_FAILURE;
++
++ if (wrq->u.data.length == 0) {
++ cfg.Action = HostCmd_ACT_GEN_GET;
++ } else {
++ if (copy_from_user(data,
++ wrq->u.data.pointer,
++ sizeof(int) * 5)) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ cfg.Action = HostCmd_ACT_GEN_SET;
++ cfg.Enable = data[0];
++ cfg.UseSNR = data[1];
++#define TPC_DATA_NO_CHANG 0x7f
++ if (wrq->u.data.length == 1) {
++ cfg.P0 = TPC_DATA_NO_CHANG;
++ cfg.P1 = TPC_DATA_NO_CHANG;
++ cfg.P2 = TPC_DATA_NO_CHANG;
++ } else {
++ cfg.P0 = data[2];
++ cfg.P1 = data[3];
++ cfg.P2 = data[4];
++ }
++ }
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_TPC_CFG, 0,
++ HostCmd_OPTION_WAITFORRSP, 0,
++ (void *) &cfg);
++
++ data[0] = cfg.Enable;
++ data[1] = cfg.UseSNR;
++ data[2] = cfg.P0;
++ data[3] = cfg.P1;
++ data[4] = cfg.P2;
++ if (copy_to_user(wrq->u.data.pointer, data, sizeof(int) * 5)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++
++ wrq->u.data.length = 5;
++ }
++ break;
++
++ case WLAN_SCANPROBES:
++ {
++ int data;
++ if (wrq->u.data.length > 0) {
++ if (copy_from_user
++ (&data, wrq->u.data.pointer, sizeof(int))) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ Adapter->ScanProbes = data;
++ } else {
++ data = Adapter->ScanProbes;
++ if (copy_to_user(wrq->u.data.pointer, &data, sizeof(int))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++ }
++ wrq->u.data.length = 1;
++ }
++ break;
++ case WLAN_LED_GPIO_CTRL:
++ {
++ int i;
++ int data[MAX_LEDS * 2];
++ HostCmd_DS_802_11_LED_CTRL ctrl;
++ MrvlIEtypes_LedGpio_t *gpio;
++
++ gpio = (MrvlIEtypes_LedGpio_t *) & ctrl.LedGpio;
++
++ if ((wrq->u.data.length > MAX_LEDS * 2) ||
++ (wrq->u.data.length % 2) != 0) {
++ PRINTM(MSG, "invalid ledgpio parameters\n");
++ return -EINVAL;
++ }
++
++ memset(&ctrl, 0, sizeof(ctrl));
++ if (wrq->u.data.length == 0) {
++ ctrl.Action = HostCmd_ACT_GEN_GET;
++ } else {
++ if (copy_from_user(data, wrq->u.data.pointer,
++ sizeof(int) * wrq->u.data.length)) {
++ PRINTM(INFO, "Copy from user failed\n");
++ return -EFAULT;
++ }
++
++ ctrl.Action = HostCmd_ACT_GEN_SET;
++ ctrl.LedNums = 0;
++ gpio->Header.Type = TLV_TYPE_LED_GPIO;
++ gpio->Header.Len = wrq->u.data.length;
++ for (i = 0; i < wrq->u.data.length; i += 2) {
++ gpio->LedGpio[i / 2].LedNum = data[i];
++ gpio->LedGpio[i / 2].GpioNum = data[i + 1];
++ }
++ }
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_LED_CONTROL, 0,
++ HostCmd_OPTION_WAITFORRSP,
++ 0, (void *) &ctrl);
++
++ for (i = 0; i < gpio->Header.Len; i += 2) {
++ data[i] = gpio->LedGpio[i / 2].LedNum;
++ data[i + 1] = gpio->LedGpio[i / 2].GpioNum;
++ }
++ if (copy_to_user(wrq->u.data.pointer, data,
++ sizeof(int) * gpio->Header.Len)) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++
++ wrq->u.data.length = gpio->Header.Len;
++ }
++ break;
++ case WLAN_SLEEP_PERIOD:
++ ret = wlan_sleep_period(priv, wrq);
++ break;
++ case WLAN_ADAPT_RATESET:
++ ret = wlan_adapt_rateset(priv, wrq);
++ break;
++ case WLAN_INACTIVITY_TIMEOUT:
++ ret = wlan_inactivity_timeout(priv, wrq);
++ break;
++ case WLANSNR:
++ ret = wlan_get_snr(priv, wrq);
++ break;
++ case WLAN_GET_RATE:
++ ret = wlan_getrate_ioctl(priv, wrq);
++ break;
++ case WLAN_GET_RXINFO:
++ ret = wlan_get_rxinfo(priv, wrq);
++ break;
++ case WLAN_SET_ATIM_WINDOW:
++ ret = wlan_ATIM_Window(priv, wrq);
++ break;
++ case WLAN_BEACON_INTERVAL:
++ ret = wlan_beacon_interval(priv, wrq);
++ break;
++ case WLAN_SDIO_PULL_CTRL:
++ ret = wlan_sdio_pull_ctrl(priv, wrq);
++ break;
++ case WLAN_SCAN_TIME:
++ ret = wlan_scan_time(priv, wrq);
++ break;
++ case WLAN_DATA_SUBSCRIBE_EVENT:
++ ret = wlan_data_subscribe_event(priv, wrq);
++ break;
++ case WLAN_TXCONTROL:
++ ret = wlan_txcontrol(priv, wrq);
++ break;
++ case WLANHSCFG:
++ ret = wlan_hscfg_ioctl(priv, wrq);
++ break;
++ case WLANHSSETPARA:
++ ret = wlan_hssetpara_ioctl(priv, wrq);
++ break;
++#ifdef DEBUG_LEVEL1
++ case WLAN_DRV_DBG:
++ ret = wlan_drv_dbg(priv, wrq);
++ break;
++#endif
++ }
++ break;
++
++ case WLAN_SET_GET_2K:
++ switch ((int) wrq->u.data.flags) {
++ case WLAN_SET_USER_SCAN:
++ ret = wlan_set_user_scan_ioctl(priv, wrq);
++ break;
++ case WLAN_GET_SCAN_TABLE:
++ ret = wlan_get_scan_table_ioctl(priv, wrq);
++ break;
++ case WLAN_SET_MRVL_TLV:
++ ret = wlan_set_mrvl_tlv_ioctl(priv, wrq);
++ break;
++ case WLAN_GET_ASSOC_RSP:
++ ret = wlan_get_assoc_rsp_ioctl(priv, wrq);
++ break;
++ case WLAN_ADDTS_REQ:
++ ret = wlan_wmm_addts_req_ioctl(priv, wrq);
++ break;
++ case WLAN_DELTS_REQ:
++ ret = wlan_wmm_delts_req_ioctl(priv, wrq);
++ break;
++ case WLAN_QUEUE_CONFIG:
++ ret = wlan_wmm_queue_config_ioctl(priv, wrq);
++ break;
++ case WLAN_QUEUE_STATS:
++ ret = wlan_wmm_queue_stats_ioctl(priv, wrq);
++ break;
++ case WLAN_TX_PKT_STATS:
++ ret = wlan_tx_pkt_stats_ioctl(priv, wrq);
++ break;
++ case WLAN_GET_CFP_TABLE:
++ ret = wlan_get_cfp_table_ioctl(priv, wrq);
++ break;
++ default:
++ ret = -EOPNOTSUPP;
++ }
++ break;
++
++ default:
++ ret = -EINVAL;
++ break;
++ }
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Get wireless statistics
++ *
++ * NOTE: If PrepareAndSendCommand() with wait option is issued
++ * in this function, a kernel dump (scheduling while atomic)
++ * issue may happen on some versions of kernels.
++ *
++ * @param dev A pointer to net_device structure
++ * @return A pointer to iw_statistics buf
++ */
++struct iw_statistics *
++wlan_get_wireless_stats(struct net_device *dev)
++{
++ enum {
++ POOR = 30,
++ FAIR = 60,
++ GOOD = 80,
++ VERY_GOOD = 90,
++ EXCELLENT = 95,
++ PERFECT = 100
++ };
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++ u8 rssi;
++ u32 rssi_qual;
++ u32 tx_qual;
++ u32 quality = 0;
++ u32 tx_retries;
++
++ ENTER();
++
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return NULL;
++ }
++
++ priv->wstats.status = Adapter->InfrastructureMode;
++ priv->wstats.discard.retries = priv->stats.tx_errors;
++
++ priv->wstats.qual.level =
++ CAL_RSSI(Adapter->SNR[TYPE_BEACON][TYPE_NOAVG],
++ Adapter->NF[TYPE_BEACON][TYPE_NOAVG]);
++ priv->wstats.qual.noise = CAL_NF(Adapter->NF[TYPE_BEACON][TYPE_NOAVG]);
++ if (Adapter->NF[TYPE_BEACON][TYPE_NOAVG] == 0
++ && Adapter->MediaConnectStatus == WlanMediaStateConnected)
++ priv->wstats.qual.noise = MRVDRV_NF_DEFAULT_SCAN_VALUE;
++ else
++ priv->wstats.qual.noise =
++ CAL_NF(Adapter->NF[TYPE_BEACON][TYPE_NOAVG]);
++
++ rssi = priv->wstats.qual.level - priv->wstats.qual.noise;
++ if (rssi < 15)
++ rssi_qual = rssi * POOR / 10;
++ else if (rssi < 20)
++ rssi_qual = (rssi - 15) * (FAIR - POOR) / 5 + POOR;
++ else if (rssi < 30)
++ rssi_qual = (rssi - 20) * (GOOD - FAIR) / 5 + FAIR;
++ else if (rssi < 40)
++ rssi_qual = (rssi - 30) * (VERY_GOOD - GOOD) / 10 + GOOD;
++ else
++ rssi_qual = (rssi - 40) * (PERFECT - VERY_GOOD) / 10 + VERY_GOOD;
++ quality = rssi_qual;
++
++ tx_retries = Adapter->LogMsg.retry;
++
++ if (tx_retries > 75)
++ tx_qual = (90 - tx_retries) * POOR / 15;
++ else if (tx_retries > 70)
++ tx_qual = (75 - tx_retries) * (FAIR - POOR) / 5 + POOR;
++ else if (tx_retries > 65)
++ tx_qual = (70 - tx_retries) * (GOOD - FAIR) / 5 + FAIR;
++ else if (tx_retries > 50)
++ tx_qual = (65 - tx_retries) * (VERY_GOOD - GOOD) / 15 + GOOD;
++ else
++ tx_qual = (50 - tx_retries) * (PERFECT - VERY_GOOD) / 50 + VERY_GOOD;
++ quality = min(quality, tx_qual);
++
++ priv->wstats.qual.qual = min_t(u8, quality, 100);
++ priv->wstats.qual.updated = IW_QUAL_ALL_UPDATED | IW_QUAL_DBM;
++
++ PRINTM(INFO, "Signal Level = %#x\n", priv->wstats.qual.level);
++ PRINTM(INFO, "Noise = %#x\n", priv->wstats.qual.noise);
++
++ /* send RSSI command to get beacon RSSI/NF, valid only if associated */
++ PrepareAndSendCommand(priv, HostCmd_CMD_802_11_RSSI, 0, 0, 0, NULL);
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_802_11_GET_LOG, 0,
++ 0, 0, NULL);
++
++ if (!ret) {
++ priv->wstats.discard.code = 0;
++ priv->wstats.discard.fragment = Adapter->LogMsg.fcserror;
++ priv->wstats.discard.retries = Adapter->LogMsg.retry;
++ priv->wstats.discard.misc = Adapter->LogMsg.ackfailure;
++ }
++
++ return &priv->wstats;
++}
++
++static int
++wlan_set_coalescing_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ int data;
++ int *val;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ data = *((int *) (wrq->u.name + SUBCMD_OFFSET));
++
++ switch (data) {
++ case CMD_DISABLED:
++ case CMD_ENABLED:
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_IBSS_COALESCING_STATUS,
++ HostCmd_ACT_SET,
++ HostCmd_OPTION_WAITFORRSP, 0, &data);
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++ break;
++
++ case CMD_GET:
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_IBSS_COALESCING_STATUS,
++ HostCmd_ACT_GET,
++ HostCmd_OPTION_WAITFORRSP, 0, &data);
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++ break;
++
++ default:
++ return -EINVAL;
++ }
++
++ val = (int *) wrq->u.name;
++ *val = data;
++
++ LEAVE();
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Set frequency
++ *
++ * @param priv A pointer to wlan_private structure
++ * @param info A pointer to iw_request_info structure
++ * @param fwrq A pointer to iw_freq structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS--success, otherwise--fail
++ */
++int
++wlan_set_freq(struct net_device *dev, struct iw_request_info *info,
++ struct iw_freq *fwrq, char *extra)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ int rc = -EINPROGRESS; /* Call commit handler */
++ CHANNEL_FREQ_POWER *cfp;
++
++ ENTER();
++
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++ if (Adapter->InfrastructureMode != Wlan802_11IBSS)
++ return -EOPNOTSUPP;
++
++ /*
++ * If setting by frequency, convert to a channel
++ */
++ if (fwrq->e == 1) {
++
++ long f = fwrq->m / 100000;
++ int c = 0;
++
++ cfp = find_cfp_by_band_and_freq(Adapter, 0, f);
++ if (!cfp) {
++ PRINTM(INFO, "Invalid freq=%ld\n", f);
++ return -EINVAL;
++ }
++
++ c = (int) cfp->Channel;
++
++ if (c < 0)
++ return -EINVAL;
++
++ fwrq->e = 0;
++ fwrq->m = c;
++ }
++
++ /*
++ * Setting by channel number
++ */
++ if (fwrq->m > 1000 || fwrq->e > 0) {
++ rc = -EOPNOTSUPP;
++ } else {
++ int channel = fwrq->m;
++
++ cfp = find_cfp_by_band_and_channel(Adapter, 0, (u16) channel);
++ if (!cfp) {
++ rc = -EINVAL;
++ } else {
++ rc = ChangeAdhocChannel(priv, channel);
++ /* If station is WEP enabled, send the
++ * command to set WEP in firmware
++ */
++ if (Adapter->SecInfo.WEPStatus == Wlan802_11WEPEnabled) {
++ PRINTM(INFO, "set_freq: WEP Enabled\n");
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_SET_WEP,
++ 0, HostCmd_OPTION_WAITFORRSP,
++ OID_802_11_ADD_WEP, NULL);
++
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++ Adapter->CurrentPacketFilter |= HostCmd_ACT_MAC_WEP_ENABLE;
++
++ PrepareAndSendCommand(priv,
++ HostCmd_CMD_MAC_CONTROL,
++ 0, HostCmd_OPTION_WAITFORRSP,
++ 0, &Adapter->CurrentPacketFilter);
++ }
++ }
++ }
++
++ LEAVE();
++ return rc;
++}
++
++/**
++ * @brief Set Deep Sleep
++ *
++ * @param adapter A pointer to wlan_private structure
++ * @param bDeepSleep TRUE--enalbe deepsleep, FALSE--disable deepsleep
++ * @return WLAN_STATUS_SUCCESS-success, otherwise fail
++ */
++
++int
++SetDeepSleep(wlan_private * priv, BOOLEAN bDeepSleep)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_adapter *Adapter = priv->adapter;
++
++ ENTER();
++
++ if (bDeepSleep == TRUE) {
++ if (Adapter->IsDeepSleep != TRUE) {
++ PRINTM(INFO, "Deep Sleep: sleep\n");
++
++ // note: the command could be queued and executed later
++ // if there is command in prigressing.
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_DEEP_SLEEP, 0,
++ HostCmd_OPTION_WAITFORRSP, 0, NULL);
++
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++ wmm_stop_queue(priv);
++ os_stop_queue(priv);
++ os_carrier_off(priv);
++ }
++ } else {
++ if (Adapter->IsDeepSleep == TRUE) {
++ PRINTM(CMND, "Deep Sleep: wakeup\n");
++
++ if (Adapter->IntCounterSaved) {
++ Adapter->IntCounter = Adapter->IntCounterSaved;
++ Adapter->IntCounterSaved = 0;
++ }
++
++ if (sbi_exit_deep_sleep(priv))
++ PRINTM(ERROR, "Deep Sleep : wakeup failed\n");
++
++ if (Adapter->IsDeepSleep == TRUE) {
++
++ if (os_wait_interruptible_timeout(Adapter->ds_awake_q,
++ !Adapter->IsDeepSleep,
++ MRVDRV_DEEP_SLEEP_EXIT_TIMEOUT)
++ == 0) {
++ PRINTM(MSG, "ds_awake_q: timer expired\n");
++ }
++ }
++
++ if (Adapter->IntCounter)
++ wake_up_interruptible(&priv->MainThread.waitQ);
++ }
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief use index to get the data rate
++ *
++ * @param index The index of data rate
++ * @return data rate or 0
++ */
++u32
++index_to_data_rate(u8 index)
++{
++ if (index >= sizeof(WlanDataRates))
++ index = 0;
++
++ return WlanDataRates[index];
++}
++
++/**
++ * @brief use rate to get the index
++ *
++ * @param rate data rate
++ * @return index or 0
++ */
++u8
++data_rate_to_index(u32 rate)
++{
++ u8 *ptr;
++
++ if (rate)
++ if ((ptr = wlan_memchr(WlanDataRates, (u8) rate,
++ sizeof(WlanDataRates))))
++ return (ptr - WlanDataRates);
++
++ return 0;
++}
++
++/**
++ * @brief set data rate
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++
++int
++wlan_set_rate(struct net_device *dev, struct iw_request_info *info,
++ struct iw_param *vwrq, char *extra)
++{
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ u32 data_rate;
++ int ret = WLAN_STATUS_SUCCESS;
++ WLAN_802_11_RATES rates;
++ u8 *rate;
++
++ ENTER();
++
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++
++ PRINTM(INFO, "Vwrq->value = %d\n", vwrq->value);
++
++ if (vwrq->value == -1) {
++ Adapter->DataRate = 0;
++ Adapter->RateBitmap = 0;
++ memset(rates, 0, sizeof(rates));
++ get_active_data_rates(Adapter, rates);
++ rate = rates;
++ while (*rate) {
++ Adapter->RateBitmap |= 1 << (data_rate_to_index(*rate & 0x7f));
++ rate++;
++ }
++ Adapter->Is_DataRate_Auto = TRUE;
++ } else {
++ if ((vwrq->value % 500000)) {
++ return -EINVAL;
++ }
++
++ data_rate = vwrq->value / 500000;
++
++ memset(rates, 0, sizeof(rates));
++ get_active_data_rates(Adapter, rates);
++ rate = rates;
++ while (*rate) {
++ PRINTM(INFO, "Rate=0x%X Wanted=0x%X\n", *rate, data_rate);
++ if ((*rate & 0x7f) == (data_rate & 0x7f))
++ break;
++ rate++;
++ }
++ if (!*rate) {
++ PRINTM(MSG, "The fixed data rate 0x%X is out "
++ "of range.\n", data_rate);
++ return -EINVAL;
++ }
++
++ Adapter->DataRate = data_rate;
++ Adapter->RateBitmap = 1 << (data_rate_to_index(Adapter->DataRate));
++ Adapter->Is_DataRate_Auto = FALSE;
++ }
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_RATE_ADAPT_RATESET,
++ HostCmd_ACT_GEN_SET,
++ HostCmd_OPTION_WAITFORRSP, 0, NULL);
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief get data rate
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++int
++wlan_get_rate(struct net_device *dev, struct iw_request_info *info,
++ struct iw_param *vwrq, char *extra)
++{
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ ENTER();
++
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++
++ if (Adapter->Is_DataRate_Auto)
++ vwrq->fixed = 0;
++ else
++ vwrq->fixed = 1;
++
++ Adapter->TxRate = 0;
++
++ ret = PrepareAndSendCommand(priv, HostCmd_CMD_802_11_TX_RATE_QUERY,
++ HostCmd_ACT_GET, HostCmd_OPTION_WAITFORRSP,
++ 0, NULL);
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++ vwrq->value = index_to_data_rate(Adapter->TxRate) * 500000;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief set wireless mode
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++int
++wlan_set_mode(struct net_device *dev,
++ struct iw_request_info *info, u32 * uwrq, char *extra)
++{
++ int ret = WLAN_STATUS_SUCCESS;
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++
++ WLAN_802_11_NETWORK_INFRASTRUCTURE WantedMode;
++
++ ENTER();
++
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++
++ switch (*uwrq) {
++ case IW_MODE_ADHOC:
++ PRINTM(INFO, "Wanted Mode is ad-hoc: current DataRate=%#x\n",
++ Adapter->DataRate);
++ WantedMode = Wlan802_11IBSS;
++ break;
++
++ case IW_MODE_INFRA:
++ PRINTM(INFO, "Wanted Mode is Infrastructure\n");
++ WantedMode = Wlan802_11Infrastructure;
++ break;
++
++ case IW_MODE_AUTO:
++ PRINTM(INFO, "Wanted Mode is Auto\n");
++ WantedMode = Wlan802_11AutoUnknown;
++ break;
++
++ default:
++ PRINTM(INFO, "Wanted Mode is Unknown: 0x%x\n", *uwrq);
++ return -EINVAL;
++ }
++
++ if (Adapter->InfrastructureMode == WantedMode ||
++ WantedMode == Wlan802_11AutoUnknown) {
++ PRINTM(INFO, "Already set to required mode! No change!\n");
++
++ Adapter->InfrastructureMode = WantedMode;
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++ }
++
++ if (Adapter->InfrastructureMode == Wlan802_11Infrastructure) {
++ if (Adapter->PSState != PS_STATE_FULL_POWER) {
++ PSWakeup(priv, HostCmd_OPTION_WAITFORRSP);
++ }
++ Adapter->PSMode = Wlan802_11PowerModeCAM;
++ }
++
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ if (Adapter->InfrastructureMode == Wlan802_11Infrastructure) {
++ ret = SendDeauthentication(priv);
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++ } else if (Adapter->InfrastructureMode == Wlan802_11IBSS) {
++ /* If current mode is Adhoc, clean stale information */
++ ret = StopAdhocNetwork(priv);
++
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++ }
++ }
++
++ Adapter->SecInfo.AuthenticationMode = Wlan802_11AuthModeOpen;
++
++ Adapter->InfrastructureMode = WantedMode;
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_SNMP_MIB,
++ 0, HostCmd_OPTION_WAITFORRSP,
++ OID_802_11_INFRASTRUCTURE_MODE, NULL);
++
++ if (ret) {
++ LEAVE();
++ return ret;
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Set Encryption key
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++wlan_set_encode(struct net_device *dev,
++ struct iw_request_info *info,
++ struct iw_point *dwrq, char *extra)
++{
++
++ WLAN_802_11_KEY *pKey = NULL;
++ int retval = -EINVAL;
++
++ ENTER();
++
++ if (dwrq->length > MAX_WEP_KEY_SIZE) {
++ pKey = (WLAN_802_11_KEY *) extra;
++ if (pKey->KeyLength <= MAX_WEP_KEY_SIZE) {
++ //dynamic WEP
++ dwrq->length = pKey->KeyLength;
++ dwrq->flags = pKey->KeyIndex + 1;
++ retval = wlan_set_encode_nonwpa(dev, info, dwrq,
++ pKey->KeyMaterial);
++ } else {
++ //WPA
++ retval = wlan_set_encode_wpa(dev, info, dwrq, extra);
++ }
++ } else {
++ //static WEP
++ PRINTM(INFO, "Setting WEP\n");
++ retval = wlan_set_encode_nonwpa(dev, info, dwrq, extra);
++ }
++
++ return retval;
++}
++
++/**
++ * @brief set tx power
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++int
++wlan_set_txpow(struct net_device *dev, struct iw_request_info *info,
++ struct iw_param *vwrq, char *extra)
++{
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ int ret = WLAN_STATUS_SUCCESS;
++
++ u16 dbm;
++
++ ENTER();
++
++ if (!Is_Command_Allowed(priv)) {
++ PRINTM(MSG, "%s: not allowed\n", __FUNCTION__);
++ return -EBUSY;
++ }
++
++ if (vwrq->disabled) {
++ wlan_radio_ioctl(priv, RADIO_OFF);
++ return WLAN_STATUS_SUCCESS;
++ }
++
++ wlan_radio_ioctl(priv, RADIO_ON);
++
++#if WIRELESS_EXT > 14
++ if ((vwrq->flags & IW_TXPOW_TYPE) == IW_TXPOW_MWATT) {
++ dbm = (u16) mw_to_dbm(vwrq->value);
++ } else
++#endif
++ dbm = (u16) vwrq->value;
++
++ if ((dbm < Adapter->MinTxPowerLevel) || (dbm > Adapter->MaxTxPowerLevel)) {
++ PRINTM(MSG,
++ "The set txpower value %d dBm is out of range (%d dBm-%d dBm)!\n",
++ dbm, Adapter->MinTxPowerLevel, Adapter->MaxTxPowerLevel);
++ LEAVE();
++ return -EINVAL;
++ }
++
++ /* auto tx power control */
++
++ if (vwrq->fixed == 0)
++ dbm = 0xffff;
++
++ PRINTM(INFO, "<1>TXPOWER SET %d dbm.\n", dbm);
++
++ ret = PrepareAndSendCommand(priv,
++ HostCmd_CMD_802_11_RF_TX_POWER,
++ HostCmd_ACT_GEN_SET,
++ HostCmd_OPTION_WAITFORRSP, 0, (void *) &dbm);
++
++ LEAVE();
++ return ret;
++}
++
++/**
++ * @brief Get current essid
++ *
++ * @param dev A pointer to net_device structure
++ * @param info A pointer to iw_request_info structure
++ * @param vwrq A pointer to iw_param structure
++ * @param extra A pointer to extra data buf
++ * @return WLAN_STATUS_SUCCESS --success, otherwise fail
++ */
++int
++wlan_get_essid(struct net_device *dev, struct iw_request_info *info,
++ struct iw_point *dwrq, char *extra)
++{
++ wlan_private *priv = dev->priv;
++ wlan_adapter *Adapter = priv->adapter;
++ int tblIdx = -1;
++ BSSDescriptor_t *pBSSDesc;
++
++ ENTER();
++
++ pBSSDesc = &Adapter->CurBssParams.BSSDescriptor;
++
++ /*
++ * Get the current SSID
++ */
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++
++ tblIdx = FindSSIDInList(Adapter,
++ &pBSSDesc->Ssid,
++ pBSSDesc->MacAddress,
++ Adapter->InfrastructureMode);
++
++ memcpy(extra, &pBSSDesc->Ssid.Ssid, pBSSDesc->Ssid.SsidLength);
++ extra[pBSSDesc->Ssid.SsidLength] = '\0';
++
++ } else {
++ memset(extra, 0, 32);
++ extra[pBSSDesc->Ssid.SsidLength] = '\0';
++ }
++
++ /* To make the driver backward compatible with WPA supplicant v0.2.4 */
++ if (dwrq->length == 32) {
++ dwrq->length = MIN(pBSSDesc->Ssid.SsidLength, IW_ESSID_MAX_SIZE);
++ } else {
++#if WIRELESS_EXT > 20
++ dwrq->length = pBSSDesc->Ssid.SsidLength;
++#else
++ dwrq->length = pBSSDesc->Ssid.SsidLength + 1;
++#endif
++ }
++
++ /* If the current network is in the table, return the table index */
++ if (tblIdx >= 0) {
++ dwrq->flags = (tblIdx + 1) & IW_ENCODE_INDEX;
++ } else {
++ dwrq->flags = 1;
++ }
++
++ LEAVE();
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Get version
++ *
++ * @param adapter A pointer to wlan_adapter structure
++ * @param version A pointer to version buffer
++ * @param maxlen max length of version buffer
++ * @return NA
++ */
++void
++get_version(wlan_adapter * adapter, char *version, int maxlen)
++{
++ union
++ {
++ u32 l;
++ u8 c[4];
++ } ver;
++ char fwver[32];
++
++ ver.l = adapter->FWReleaseNumber;
++ if (ver.c[3] == 0)
++ sprintf(fwver, "%u.%u.%u", ver.c[2], ver.c[1], ver.c[0]);
++ else
++ sprintf(fwver, "%u.%u.%u.p%u",
++ ver.c[2], ver.c[1], ver.c[0], ver.c[3]);
++
++ snprintf(version, maxlen, driver_version, fwver);
++}
+diff --git a/drivers/net/wireless/marvell8686/wlan_wext.h b/drivers/net/wireless/marvell8686/wlan_wext.h
+new file mode 100644
+index 0000000..d1d40d1
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_wext.h
+@@ -0,0 +1,406 @@
++/** @file wlan_wext.h
++ * @brief This file contains definition for IOCTL call.
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2007
++ */
++/********************************************************
++Change log:
++ 10/11/05: Add Doxygen format comments
++ 12/19/05: Correct a typo in structure _wlan_ioctl_wmm_tspec
++ 01/11/06: Conditionalize new scan/join ioctls
++ 04/10/06: Add hostcmd generic API
++ 04/18/06: Remove old Subscrive Event and add new Subscribe Event
++ implementation through generic hostcmd API
++ 06/08/06: Add definitions of custom events
++ 08/29/06: Add ledgpio private command
++********************************************************/
++
++#ifndef _WLAN_WEXT_H_
++#define _WLAN_WEXT_H_
++
++#include "wlan_types.h"
++
++#define SUBCMD_OFFSET 4
++/** PRIVATE CMD ID */
++#define WLANIOCTL 0x8BE0
++
++#define WLANSETWPAIE (WLANIOCTL + 0)
++#define WLANCISDUMP (WLANIOCTL + 1)
++#ifdef MFG_CMD_SUPPORT
++#define WLANMANFCMD (WLANIOCTL + 2)
++#endif
++#define WLANREGRDWR (WLANIOCTL + 3)
++#define MAX_EEPROM_DATA 256
++#define WLANHOSTCMD (WLANIOCTL + 4)
++
++#define WLANHOSTSLEEPCFG (WLANIOCTL + 5)
++#define WLANARPFILTER (WLANIOCTL + 6)
++
++#define WLAN_SETINT_GETINT (WLANIOCTL + 7)
++#define WLANNF 1
++#define WLANRSSI 2
++#define WLANBGSCAN 4
++#define WLANENABLE11D 5
++#define WLANADHOCGRATE 6
++#define WLANSDIOCLOCK 7
++#define WLANWMM_ENABLE 8
++#define WLANNULLGEN 10
++#define WLANADHOCCSET 11
++#define WLAN_ADHOC_G_PROT 12
++
++#define WLAN_SETNONE_GETNONE (WLANIOCTL + 8)
++#define WLANDEAUTH 1
++#define WLANRADIOON 2
++#define WLANRADIOOFF 3
++#define WLANREMOVEADHOCAES 4
++#define WLANADHOCSTOP 5
++#ifdef REASSOCIATION
++#define WLANREASSOCIATIONAUTO 8
++#define WLANREASSOCIATIONUSER 9
++#endif /* REASSOCIATION */
++#define WLANWLANIDLEON 10
++#define WLANWLANIDLEOFF 11
++
++#define WLANGETLOG (WLANIOCTL + 9)
++#define WLAN_SETCONF_GETCONF (WLANIOCTL + 10)
++
++#define BG_SCAN_CONFIG 1
++#define CAL_DATA_EXT_CONFIG 2
++
++#define WLANSCAN_TYPE (WLANIOCTL + 11)
++
++#define WLAN_SET_GET_2K (WLANIOCTL + 13)
++#define WLAN_SET_USER_SCAN 1
++#define WLAN_GET_SCAN_TABLE 2
++#define WLAN_SET_MRVL_TLV 3
++#define WLAN_GET_ASSOC_RSP 4
++#define WLAN_ADDTS_REQ 5
++#define WLAN_DELTS_REQ 6
++#define WLAN_QUEUE_CONFIG 7
++#define WLAN_QUEUE_STATS 8
++#define WLAN_GET_CFP_TABLE 9
++#define WLAN_TX_PKT_STATS 12
++
++#define WLAN_SETNONE_GETONEINT (WLANIOCTL + 15)
++#define WLANGETREGION 1
++#define WLAN_GET_LISTEN_INTERVAL 2
++#define WLAN_GET_MULTIPLE_DTIM 3
++#define WLAN_GET_TX_RATE 4
++#define WLANGETBCNAVG 5
++#define WLANGETDATAAVG 6
++#define WLANGETDTIM 7
++
++#define WLAN_SETNONE_GETTWELVE_CHAR (WLANIOCTL + 19)
++#define WLAN_SUBCMD_GETRXANTENNA 1
++#define WLAN_SUBCMD_GETTXANTENNA 2
++#define WLAN_GET_TSF 3
++#define WLAN_WPS_SESSION 4
++
++#define WLAN_SETWORDCHAR_GETNONE (WLANIOCTL + 20)
++#define WLANSETADHOCAES 1
++
++#define WLAN_SETONEINT_GETWORDCHAR (WLANIOCTL + 21)
++#define WLANGETADHOCAES 1
++#define WLANVERSION 2
++#define WLANVEREXT 3
++
++#define WLAN_SETONEINT_GETONEINT (WLANIOCTL + 23)
++#define WLAN_WMM_QOSINFO 2
++#define WLAN_LISTENINTRVL 3
++#define WLAN_FW_WAKEUP_METHOD 4
++#define WAKEUP_FW_UNCHANGED 0
++#define WAKEUP_FW_THRU_INTERFACE 1
++#define WAKEUP_FW_THRU_GPIO 2
++
++#define WLAN_NULLPKTINTERVAL 5
++#define WLAN_BCN_MISS_TIMEOUT 6
++#define WLAN_ADHOC_AWAKE_PERIOD 7
++#define WLAN_LDO 8
++#define WLAN_SDIO_MODE 9
++#define WLAN_AUTODEEPSLEEP 12
++#define WLAN_WAKEUP_MT 13
++
++#define WLAN_RTS_CTS_CTRL 14
++
++#define WLAN_SETONEINT_GETNONE (WLANIOCTL + 24)
++#define WLAN_SUBCMD_SETRXANTENNA 1
++#define WLAN_SUBCMD_SETTXANTENNA 2
++#define WLANSETAUTHALG 4
++#define WLANSETENCRYPTIONMODE 5
++#define WLANSETREGION 6
++#define WLAN_SET_LISTEN_INTERVAL 7
++
++#define WLAN_SET_MULTIPLE_DTIM 8
++
++#define WLANSETBCNAVG 9
++#define WLANSETDATAAVG 10
++#define WLANASSOCIATE 11
++
++#define WLAN_SET64CHAR_GET64CHAR (WLANIOCTL + 25)
++#define WLANSLEEPPARAMS 2
++#define WLAN_BCA_TIMESHARE 3
++#define WLANSCAN_MODE 6
++
++#define WLAN_GET_ADHOC_STATUS 9
++
++#define WLAN_SET_GEN_IE 10
++#define WLAN_GET_GEN_IE 11
++
++#define WLAN_WMM_QUEUE_STATUS 13
++
++#define WLANEXTSCAN (WLANIOCTL + 26)
++#define WLANDEEPSLEEP (WLANIOCTL + 27)
++#define DEEP_SLEEP_ENABLE 1
++#define DEEP_SLEEP_DISABLE 0
++
++#define WLAN_SET_GET_SIXTEEN_INT (WLANIOCTL + 29)
++#define WLAN_TPCCFG 1
++#define WLAN_LED_GPIO_CTRL 5
++#define WLAN_SCANPROBES 6
++#define WLAN_SLEEP_PERIOD 7
++#define WLAN_ADAPT_RATESET 8
++#define WLAN_INACTIVITY_TIMEOUT 9
++#define WLANSNR 10
++#define WLAN_GET_RATE 11
++#define WLAN_GET_RXINFO 12
++#define WLAN_SET_ATIM_WINDOW 13
++#define WLAN_BEACON_INTERVAL 14
++#define WLAN_SDIO_PULL_CTRL 15
++#define WLAN_SCAN_TIME 16
++#define WLAN_DATA_SUBSCRIBE_EVENT 18
++#define WLAN_TXCONTROL 19
++#define WLANHSCFG 21
++#define WLANHSSETPARA 22
++#ifdef DEBUG_LEVEL1
++#define WLAN_DRV_DBG 25
++#endif
++
++#define WLANCMD52RDWR (WLANIOCTL + 30)
++#define WLANCMD53RDWR (WLANIOCTL + 31)
++#define CMD53BUFLEN 32
++
++#define REG_MAC 0x19
++#define REG_BBP 0x1a
++#define REG_RF 0x1b
++#define REG_EEPROM 0x59
++
++#define CMD_DISABLED 0
++#define CMD_ENABLED 1
++#define CMD_GET 2
++#define SKIP_CMDNUM 4
++#define SKIP_TYPE 1
++#define SKIP_SIZE 2
++#define SKIP_ACTION 2
++#define SKIP_TYPE_SIZE (SKIP_TYPE + SKIP_SIZE)
++#define SKIP_TYPE_ACTION (SKIP_TYPE + SKIP_ACTION)
++
++#define MAX_SETGET_CONF_SIZE 2000 /* less than MRVDRV_SIZE_OF_CMD_BUFFER */
++#define MAX_SETGET_CONF_CMD_LEN (MAX_SETGET_CONF_SIZE - SKIP_CMDNUM)
++
++/* define custom events */
++#define CUS_EVT_HS_ACTIVATED "HS_ACTIVATED "
++#define CUS_EVT_HS_DEACTIVATED "HS_DEACTIVATED "
++#define CUS_EVT_HS_GPIO_INT "HS_GPIO_INT "
++#define CUS_EVT_BEACON_RSSI_LOW "EVENT=BEACON_RSSI_LOW"
++#define CUS_EVT_BEACON_SNR_LOW "EVENT=BEACON_SNR_LOW"
++#define CUS_EVT_BEACON_RSSI_HIGH "EVENT=BEACON_RSSI_HIGH"
++#define CUS_EVT_BEACON_SNR_HIGH "EVENT=BEACON_SNR_HIGH"
++#define CUS_EVT_MAX_FAIL "EVENT=MAX_FAIL"
++#define CUS_EVT_MLME_MIC_ERR_UNI "MLME-MICHAELMICFAILURE.indication unicast "
++#define CUS_EVT_MLME_MIC_ERR_MUL "MLME-MICHAELMICFAILURE.indication multicast "
++
++#define CUS_EVT_DATA_RSSI_LOW "EVENT=DATA_RSSI_LOW"
++#define CUS_EVT_DATA_SNR_LOW "EVENT=DATA_SNR_LOW"
++#define CUS_EVT_DATA_RSSI_HIGH "EVENT=DATA_RSSI_HIGH"
++#define CUS_EVT_DATA_SNR_HIGH "EVENT=DATA_SNR_HIGH"
++#define CUS_EVT_PRE_BEACON_LOST "EVENT=PRE_BEACON_LOST"
++
++#define CUS_EVT_DEEP_SLEEP_AWAKE "EVENT=DS_AWAKE"
++
++#define CUS_EVT_ADHOC_LINK_SENSED "EVENT=ADHOC_LINK_SENSED"
++#define CUS_EVT_ADHOC_BCN_LOST "EVENT=ADHOC_BCN_LOST"
++
++/**
++ * @brief Maximum number of channels that can be sent in a setuserscan ioctl
++ *
++ * @sa wlan_ioctl_user_scan_cfg
++ */
++#define WLAN_IOCTL_USER_SCAN_CHAN_MAX 50
++
++/** wlan_ioctl */
++typedef struct _wlan_ioctl
++{
++ /** Command ID */
++ u16 command;
++ /** data length */
++ u16 len;
++ /** data pointer */
++ u8 *data;
++} wlan_ioctl;
++
++/** wlan_ioctl_rfantenna */
++typedef struct _wlan_ioctl_rfantenna
++{
++ u16 Action;
++ u16 AntennaMode;
++} wlan_ioctl_rfantenna;
++
++/** wlan_ioctl_regrdwr */
++typedef struct _wlan_ioctl_regrdwr
++{
++ /** Which register to access */
++ u16 WhichReg;
++ /** Read or Write */
++ u16 Action;
++ u32 Offset;
++ u16 NOB;
++ u32 Value;
++} wlan_ioctl_regrdwr;
++
++/** wlan_ioctl_cfregrdwr */
++typedef struct _wlan_ioctl_cfregrdwr
++{
++ /** Read or Write */
++ u8 Action;
++ /** register address */
++ u16 Offset;
++ /** register value */
++ u16 Value;
++} wlan_ioctl_cfregrdwr;
++
++/** wlan_ioctl_adhoc_key_info */
++typedef struct _wlan_ioctl_adhoc_key_info
++{
++ u16 action;
++ u8 key[16];
++ u8 tkiptxmickey[16];
++ u8 tkiprxmickey[16];
++} wlan_ioctl_adhoc_key_info;
++
++/** sleep_params */
++typedef struct _wlan_ioctl_sleep_params_config
++{
++ u16 Action;
++ u16 Error;
++ u16 Offset;
++ u16 StableTime;
++ u8 CalControl;
++ u8 ExtSleepClk;
++ u16 Reserved;
++} __ATTRIB_PACK__ wlan_ioctl_sleep_params_config,
++ *pwlan_ioctl_sleep_params_config;
++
++/** BCA TIME SHARE */
++typedef struct _wlan_ioctl_bca_timeshare_config
++{
++ /** ACT_GET/ACT_SET */
++ u16 Action;
++ /** Type: WLAN, BT */
++ u16 TrafficType;
++ /** Interval: 20msec - 60000msec */
++ u32 TimeShareInterval;
++ /** PTA arbiter time in msec */
++ u32 BTTime;
++} __ATTRIB_PACK__ wlan_ioctl_bca_timeshare_config,
++ *pwlan_ioctl_bca_timeshare_config;
++
++#define MAX_CFP_LIST_NUM 64
++
++/** wlan_ioctl_cfp_table */
++typedef struct _wlan_ioctl_cfp_table
++{
++ u32 region;
++ u32 cfp_no;
++ struct
++ {
++ u16 Channel;
++ u32 Freq;
++ u16 MaxTxPower;
++ u8 Unsupported;
++ } cfp[MAX_CFP_LIST_NUM];
++} __ATTRIB_PACK__ wlan_ioctl_cfp_table, *pwlan_ioctl_cfp_table;
++
++/**
++ * @brief IOCTL channel sub-structure sent in wlan_ioctl_user_scan_cfg
++ *
++ * Multiple instances of this structure are included in the IOCTL command
++ * to configure a instance of a scan on the specific channel.
++ */
++typedef struct
++{
++ u8 chanNumber; //!< Channel Number to scan
++ u8 radioType; //!< Radio type: 'B/G' Band = 0, 'A' Band = 1
++ u8 scanType; //!< Scan type: Active = 0, Passive = 1
++ u8 reserved;
++ u16 scanTime; //!< Scan duration in milliseconds; if 0 default used
++} __ATTRIB_PACK__ wlan_ioctl_user_scan_chan;
++/**
++ * @brief IOCTL SSID List sub-structure sent in wlan_ioctl_user_scan_cfg
++ *
++ * Used to specify SSID specific filters as well as SSID pattern matching
++ * filters for scan result processing in firmware.
++ */
++typedef struct
++{
++ char ssid[MRVDRV_MAX_SSID_LENGTH + 1];
++ u8 maxLen;
++} __ATTRIB_PACK__ wlan_ioctl_user_scan_ssid;
++
++/**
++ * @brief IOCTL input structure to configure an immediate scan cmd to firmware
++ *
++ * Used in the setuserscan (WLAN_SET_USER_SCAN) private ioctl. Specifies
++ * a number of parameters to be used in general for the scan as well
++ * as a channel list (wlan_ioctl_user_scan_chan) for each scan period
++ * desired.
++ *
++ * @sa wlan_set_user_scan_ioctl
++ */
++typedef struct
++{
++
++ /**
++ * @brief Flag set to keep the previous scan table intact
++ *
++ * If set, the scan results will accumulate, replacing any previous
++ * matched entries for a BSS with the new scan data
++ */
++ u8 keepPreviousScan; //!< Do not erase the existing scan results
++
++ /**
++ * @brief BSS Type to be sent in the firmware command
++ *
++ * Field can be used to restrict the types of networks returned in the
++ * scan. Valid settings are:
++ *
++ * - WLAN_SCAN_BSS_TYPE_BSS (infrastructure)
++ * - WLAN_SCAN_BSS_TYPE_IBSS (adhoc)
++ * - WLAN_SCAN_BSS_TYPE_ANY (unrestricted, adhoc and infrastructure)
++ */
++ u8 bssType;
++
++ /**
++ * @brief Configure the number of probe requests for active chan scans
++ */
++ u8 numProbes;
++
++ u8 reserved;
++
++ /**
++ * @brief BSSID filter sent in the firmware command to limit the results
++ */
++ u8 specificBSSID[MRVDRV_ETH_ADDR_LEN];
++
++ /**
++ * @brief SSID filter list used in the to limit the scan results
++ */
++ wlan_ioctl_user_scan_ssid ssidList[MRVDRV_MAX_SSID_LIST_LENGTH];
++
++ /**
++ * @brief Variable number (fixed maximum) of channels to scan up
++ */
++ wlan_ioctl_user_scan_chan chanList[WLAN_IOCTL_USER_SCAN_CHAN_MAX];
++
++} __ATTRIB_PACK__ wlan_ioctl_user_scan_cfg;
++
++#endif /* _WLAN_WEXT_H_ */
+diff --git a/drivers/net/wireless/marvell8686/wlan_wmm.c b/drivers/net/wireless/marvell8686/wlan_wmm.c
+new file mode 100644
+index 0000000..789ad2e
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_wmm.c
+@@ -0,0 +1,1666 @@
++/** @file wlan_wmm.c
++ * @brief This file contains functions for WMM.
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2006
++ */
++/********************************************************
++Change log:
++ 10/04/05: Add Doxygen format comments
++ 11/11/05: Add support for WMM Status change event
++ 01/05/06: Add kernel 2.6.x support
++ 01/11/06: Conditionalize new scan/join code modifications.
++ 04/06/06: Add TSPEC, queue metrics, and MSDU expiry support
++********************************************************/
++#include "include.h"
++
++/********************************************************
++ Local Variables
++********************************************************/
++
++/** Maximum value FW can accept for driver delay in packet transmission */
++#define DRV_PKT_DELAY_TO_FW_MAX 512
++
++/** Set limit of driver packet delay for use in MSDU lifetime expiry and
++ * traffic stream metrics.
++ *
++ * - Set to 0 to disable driver delay in firmware
++ * - Set to DRV_PKT_DELAY_TO_FW_MAX to enable all possible values
++ */
++#define DRV_PKT_DELAY_TO_FW_LIMIT 0
++
++/** Upper and Lower threshold for packet queuing in the driver
++ *
++ * - When the number of packets queued reaches the upper limit,
++ * the driver will stop the net queue in the app/kernel space.
++ *
++ * - When the number of packets drops beneath the lower limit after
++ * having reached the upper limit, the driver will restart the net
++ * queue.
++ */
++#define WMM_QUEUED_PACKET_LOWER_LIMIT 40
++#define WMM_QUEUED_PACKET_UPPER_LIMIT 50
++
++#define IPTOS_OFFSET 5
++
++static const u8 wmm_info_ie[] = { WMM_IE, 0x07,
++ 0x00, 0x50, 0xf2, 0x02,
++ 0x00, 0x01, 0x00
++};
++
++/********************************************************
++ Local Functions
++********************************************************/
++#ifdef DEBUG_LEVEL2
++/**
++ * @brief Debug print function to display the priority parameters for a WMM AC
++ *
++ * @param acStr String pointer giving the AC enumeration (BK, BE, VI, VO)
++ * @param pACParam Pointer to the AC paramters to display
++ *
++ * @return void
++ */
++static void
++wmm_debugPrintAC(wlan_wmm_ac_e acVal,
++ const IEEEtypes_WmmAcParameters_t * pACParam)
++{
++ const char *acStr[] = { "BK", "BE", "VI", "VO" };
++
++ PRINTM(INFO, "WMM AC_%s: ACI=%d, ACM=%d, Aifsn=%d, "
++ "EcwMin=%d, EcwMax=%d, TxopLimit=%d\n",
++ acStr[acVal], pACParam->AciAifsn.Aci, pACParam->AciAifsn.Acm,
++ pACParam->AciAifsn.Aifsn, pACParam->Ecw.EcwMin,
++ pACParam->Ecw.EcwMax, wlan_le16_to_cpu(pACParam->TxopLimit));
++}
++
++#define PRINTM_AC(acStr, pACParam) wmm_debugPrintAC(acStr, pACParam)
++#else
++#define PRINTM_AC(acStr, pACParam)
++#endif
++
++/**
++ * @brief Compute the difference between two timestamps.
++ *
++ * @param pTv1 Pointer to timestamp1
++ * @param pTv2 Pointer to timestamp2
++ *
++ * @return Time difference in ms between pTv1 and pTv2 (pTv1 - pTv2)
++ */
++static int
++timeval_diff_in_ms(const struct timeval *pTv1, const struct timeval *pTv2)
++{
++ int diff_ms;
++
++ diff_ms = (pTv1->tv_sec - pTv2->tv_sec) * 1000;
++ diff_ms += (pTv1->tv_usec - pTv2->tv_usec) / 1000;
++
++ return diff_ms;
++}
++
++/**
++ * @brief Set the WMM queue priorities to their default values
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ *
++ * @return void
++ */
++static void
++wmm_default_queue_priorities(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++
++ /* default queue priorities: VO->VI->BE->BK */
++ Adapter->wmm.queuePriority[0] = WMM_AC_VO;
++ Adapter->wmm.queuePriority[1] = WMM_AC_VI;
++ Adapter->wmm.queuePriority[2] = WMM_AC_BE;
++ Adapter->wmm.queuePriority[3] = WMM_AC_BK;
++}
++
++/**
++ * @brief Initialize WMM priority queues
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ *
++ * @return void
++ */
++static void
++wmm_setup_queue_priorities(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ IEEEtypes_WmmParameter_t *pWmmIe;
++ wlan_wmm_ac_e acOrder[4] = { WMM_AC_BE, WMM_AC_BK,
++ WMM_AC_VI, WMM_AC_VO
++ };
++
++ u16 cwmax, cwmin, avg_back_off, tmp[4];
++ int i, j, numAc;
++
++ if (Adapter->wmm.enabled == FALSE) {
++ /* WMM is not enabled, just set the defaults and return */
++ wmm_default_queue_priorities(priv);
++ return;
++ }
++
++ pWmmIe = &Adapter->CurBssParams.BSSDescriptor.wmmIE;
++
++ HEXDUMP("WMM: setup_queue_priorities: param IE",
++ (u8 *) pWmmIe, sizeof(IEEEtypes_WmmParameter_t));
++
++ PRINTM(INFO, "WMM Parameter IE: version=%d, "
++ "QoSInfo Parameter Set Count=%d, Reserved=%#x\n",
++ pWmmIe->VendHdr.Version, pWmmIe->QoSInfo.ParaSetCount,
++ pWmmIe->Reserved);
++
++ for (numAc = 0; numAc < NELEMENTS(acOrder); numAc++) {
++ cwmax = (1 << pWmmIe->AcParams[numAc].Ecw.EcwMax) - 1;
++ cwmin = (1 << pWmmIe->AcParams[numAc].Ecw.EcwMin) - 1;
++ avg_back_off = (cwmin >> 1) + pWmmIe->AcParams[numAc].AciAifsn.Aifsn;
++ Adapter->wmm.queuePriority[numAc] = acOrder[numAc];
++ tmp[numAc] = avg_back_off;
++
++ PRINTM(INFO, "WMM: CWmax=%d CWmin=%d Avg Back-off=%d\n",
++ cwmax, cwmin, avg_back_off);
++ PRINTM_AC(acOrder[numAc], &pWmmIe->AcParams[numAc]);
++ }
++
++ HEXDUMP("WMM: avg_back_off", (u8 *) tmp, sizeof(tmp));
++ HEXDUMP("WMM: queuePriority", Adapter->wmm.queuePriority,
++ sizeof(Adapter->wmm.queuePriority));
++
++ /* bubble sort */
++ for (i = 0; i < numAc; i++) {
++ for (j = 1; j < numAc - i; j++) {
++ if (tmp[j - 1] > tmp[j]) {
++ SWAP_U16(tmp[j - 1], tmp[j]);
++ SWAP_U8(Adapter->wmm.queuePriority[j - 1],
++ Adapter->wmm.queuePriority[j]);
++ } else if (tmp[j - 1] == tmp[j]) {
++ if (Adapter->wmm.queuePriority[j - 1]
++ < Adapter->wmm.queuePriority[j]) {
++ SWAP_U8(Adapter->wmm.queuePriority[j - 1],
++ Adapter->wmm.queuePriority[j]);
++ }
++ }
++ }
++ }
++
++ HEXDUMP("WMM: avg_back_off, sort", (u8 *) tmp, sizeof(tmp));
++ HEXDUMP("WMM: queuePriority, sort", Adapter->wmm.queuePriority,
++ sizeof(Adapter->wmm.queuePriority));
++}
++
++/**
++ * @brief pop up the highest skb from wmm queue
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ *
++ * @return void
++ */
++static void
++wmm_pop_highest_prio_skb(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int i;
++ u8 ac;
++
++ ENTER();
++
++ for (i = 0; i < MAX_AC_QUEUES; i++) {
++ ac = Adapter->wmm.queuePriority[i];
++ if (!list_empty((struct list_head *) &Adapter->wmm.txSkbQ[ac])) {
++ PRINTM(DATA, "WMM: Highest prio pkt in AC Queue %d\n", i);
++ Adapter->CurrentTxSkb = Adapter->wmm.txSkbQ[ac].next;
++ Adapter->wmm.packetsOut[ac]++;
++ list_del((struct list_head *) Adapter->wmm.txSkbQ[ac].next);
++ break;
++ }
++ }
++
++ LEAVE();
++}
++
++/**
++ * @brief Evaluate whether or not an AC is to be downgraded
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ * @param evalAC AC to evaluate for downgrading
++ *
++ * @return WMM AC the evalAC traffic is to be sent on.
++ */
++static wlan_wmm_ac_e
++wmm_eval_downgrade_ac(wlan_private * priv, wlan_wmm_ac_e evalAC)
++{
++ wlan_wmm_ac_e downAC;
++ wlan_wmm_ac_e retAC;
++ WmmAcStatus_t *pACStatus;
++
++ pACStatus = &priv->adapter->wmm.acStatus[evalAC];
++
++ if (pACStatus->Disabled == FALSE) {
++ /* Okay to use this AC, its enabled */
++ return evalAC;
++ }
++
++ /* Setup a default return value of the lowest priority */
++ retAC = WMM_AC_BK;
++
++ /*
++ * Find the highest AC that is enabled and does not require admission
++ * control. The spec disallows downgarding to an AC which is enabled
++ * due to a completed admission control. Unadmitted traffic is not
++ * to be sent on an AC with admitted traffic.
++ */
++ for (downAC = WMM_AC_BK; downAC < evalAC; downAC++) {
++ pACStatus = &priv->adapter->wmm.acStatus[downAC];
++
++ if ((pACStatus->Disabled == FALSE)
++ && (pACStatus->FlowRequired == FALSE)) {
++ /* AC is enabled and does not require admission control */
++ retAC = downAC;
++ }
++ }
++
++ return retAC;
++}
++
++/**
++ * @brief Downgrade WMM priority queue
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ *
++ * @return void
++ */
++static void
++wmm_setup_ac_downgrade(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ wlan_wmm_ac_e acVal;
++
++ PRINTM(INFO, "WMM: AC Priorities: BK(0), BE(1), VI(2), VO(3)\n");
++
++ if (Adapter->wmm.enabled == FALSE) {
++ /* WMM is not enabled, default priorities */
++ for (acVal = WMM_AC_BK; acVal <= WMM_AC_VO; acVal++) {
++ for (acVal = WMM_AC_BK; acVal <= WMM_AC_VO; acVal++) {
++ Adapter->wmm.acDowngradedVals[acVal] = acVal;
++ }
++ }
++ } else {
++ for (acVal = WMM_AC_BK; acVal <= WMM_AC_VO; acVal++) {
++ Adapter->wmm.acDowngradedVals[acVal]
++ = wmm_eval_downgrade_ac(priv, acVal);
++ PRINTM(INFO, "WMM: AC PRIO %d maps to %d\n",
++ acVal, Adapter->wmm.acDowngradedVals[acVal]);
++ }
++ }
++}
++
++/**
++ * @brief Convert the IP TOS field to an WMM AC Queue assignment
++ *
++ * @param tos IP TOS field
++ *
++ * @return WMM AC Queue mapping of the IP TOS field
++ */
++wlan_wmm_ac_e
++wmm_convert_tos_to_ac(int tos)
++{
++ u8 tosIdx;
++
++ /* Map of TOS UP values to WMM AC */
++ const wlan_wmm_ac_e tos_to_ac[] = { WMM_AC_BE,
++ WMM_AC_BK,
++ WMM_AC_BK,
++ WMM_AC_BE,
++ WMM_AC_VI,
++ WMM_AC_VI,
++ WMM_AC_VO,
++ WMM_AC_VO
++ };
++
++ tosIdx = tos >> IPTOS_OFFSET;
++
++ if (tosIdx >= NELEMENTS(tos_to_ac)) {
++ return WMM_AC_BE;
++ }
++
++ return tos_to_ac[tosIdx];
++}
++
++/**
++ * @brief Evaluate a given AC and downgrade it to a lower AC if the
++ * WMM Parameter IE received from the AP indicates that the AP
++ * is disabled (due to call admission control (ACM bit)
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ * @param acVal AC to evaulate for downgrading
++ *
++ * @return Same AC as input if downgrading not required or
++ * the AC the traffic for the given AC should be downgraded to
++ */
++wlan_wmm_ac_e
++wmm_downgrade_ac(wlan_private * priv, wlan_wmm_ac_e acVal)
++{
++ wlan_adapter *Adapter = priv->adapter;
++
++ return (Adapter->wmm.acDowngradedVals[acVal]);
++}
++
++/**
++ * @brief Map the IP TOS field to a user priority value
++ *
++ * @param tos IP TOS field
++ *
++ * @return User priority tos input parameter maps to
++ */
++static u8
++wmm_tos_to_priority(u8 tos)
++{
++ u8 tosIdx;
++ const u8 tos_to_priority[] = {
++ /* Priority DSCP_P2 DSCP_P1 DSCP_P0 WMM_AC */
++ 0x00, /* 0 0 0 AC_BE */
++ 0x01, /* 0 0 1 AC_BK */
++ 0x02, /* 0 1 0 AC_BK */
++ 0x03, /* 0 1 1 AC_BE */
++ 0x04, /* 1 0 0 AC_VI */
++ 0x05, /* 1 0 1 AC_VI */
++ 0x06, /* 1 1 0 AC_VO */
++ 0x07 /* 1 1 1 AC_VO */
++ };
++
++ tosIdx = tos >> IPTOS_OFFSET;
++
++ if (tosIdx >= NELEMENTS(tos_to_priority)) {
++ return WMM_AC_BE;
++ }
++
++ return tos_to_priority[tosIdx];
++}
++
++/**
++ * @brief Process a transfer of a data packet to the firmware from the
++ * driver queue in order to manipulate flow control in the driver.
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ *
++ * @return void
++ */
++void
++wmm_process_fw_iface_tx_xfer_start(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++
++ if (--Adapter->wmm.packetsQueued < WMM_QUEUED_PACKET_LOWER_LIMIT) {
++ PRINTM(DATA, "WMM: FW OS+: %d\n", Adapter->wmm.packetsQueued);
++ os_start_queue(priv);
++ }
++}
++
++/**
++ * @brief Process the completion of a data packet transfer to the firmware
++ * from the driver queue in order to manipulate flow control in the
++ * driver.
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ *
++ * @return void
++ *
++ */
++void
++wmm_process_fw_iface_tx_xfer_end(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++
++ if (Adapter->wmm.packetsQueued) {
++ PRINTM(DATA, "WMM: FW OS-: %d\n", Adapter->wmm.packetsQueued);
++ os_stop_queue(priv);
++ }
++}
++
++/**
++ * @brief Process a transfer of a data packet from the OS to the driver
++ * queue in order to manipulate flow control in the driver.
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ *
++ * @return void
++ */
++void
++wmm_process_app_iface_tx(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++
++ Adapter->wmm.packetsQueued++;
++
++ if ((!priv->wlan_dev.dnld_sent && (Adapter->PSState != PS_STATE_SLEEP))
++ || (Adapter->wmm.packetsQueued >= WMM_QUEUED_PACKET_UPPER_LIMIT)) {
++ PRINTM(DATA, "WMM: APP OS-: %d\n", Adapter->wmm.packetsQueued);
++ os_stop_queue(priv);
++ }
++}
++
++/**
++ * @brief Stop the WMM data queues. Traffic is still accepted from the
++ * OS until the buffer limits are reached.
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ *
++ * @return void
++ */
++void
++wmm_stop_queue(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++
++ PRINTM(DATA, "WMM: Q-: %d\n", Adapter->wmm.packetsQueued);
++ Adapter->wmm.queueStopped = TRUE;
++}
++
++/**
++ * @brief Start/re-start the WMM data queues and indicate to the OS layer
++ * that data is being accepted again.
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ *
++ * @return void
++ */
++void
++wmm_start_queue(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++
++ PRINTM(DATA, "WMM: Q+: %d\n", Adapter->wmm.packetsQueued);
++ Adapter->wmm.queueStopped = FALSE;
++ if (Adapter->wmm.packetsQueued) {
++ wake_up_interruptible(&priv->MainThread.waitQ);
++ }
++ os_carrier_on(priv);
++ os_start_queue(priv);
++}
++
++/**
++ * @brief Query the status of the WMM queues. Determine if the driver data
++ * path is active or not.
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ *
++ * @return TRUE if WMM queues have been stopped, FALSE if still active
++ */
++int
++wmm_is_queue_stopped(wlan_private * priv)
++{
++ return (priv->adapter->wmm.queueStopped == TRUE);
++}
++
++/**
++ * @brief Initialize the WMM state information and the WMM data path queues.
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ *
++ * @return void
++ */
++void
++wmm_init(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ int i;
++ memset(&Adapter->wmm, 0x00, sizeof(Adapter->wmm));
++
++ for (i = 0; i < MAX_AC_QUEUES; i++) {
++ INIT_LIST_HEAD((struct list_head *) &Adapter->wmm.txSkbQ[i]);
++ }
++
++ Adapter->wmm.required = FALSE;
++
++ Adapter->gen_null_pkg = TRUE; /*Enable NULL Pkg generation */
++}
++
++/**
++ * @brief Setup the queue priorities and downgrade any queues as required
++ * by the WMM info. Setups default values if WMM is not active
++ * for this association.
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ *
++ * @return void
++ */
++void
++wmm_setup_queues(wlan_private * priv)
++{
++ wmm_setup_queue_priorities(priv);
++ wmm_setup_ac_downgrade(priv);
++}
++
++/**
++ * @brief implement WMM enable command
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ * @param wrq Pointer to user data
++ *
++ * @return WLAN_STATUS_SUCCESS if success; otherwise <0
++ */
++int
++wlan_wmm_enable_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ ulong flags;
++ int data, data1;
++ int *val;
++
++ ENTER();
++
++ data = *((int *) (wrq->u.name + SUBCMD_OFFSET));
++ switch (data) {
++ case CMD_DISABLED: /* disable */
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ return -EPERM;
++ }
++
++ spin_lock_irqsave(&Adapter->CurrentTxLock, flags);
++ Adapter->wmm.required = FALSE;
++ if (!Adapter->wmm.enabled) {
++ spin_unlock_irqrestore(&Adapter->CurrentTxLock, flags);
++ data1 = Adapter->wmm.required;
++ val = (int *) wrq->u.name;
++ *val = data;
++ return WLAN_STATUS_SUCCESS;
++ } else {
++ Adapter->wmm.enabled = 0;
++ }
++
++ if (Adapter->CurrentTxSkb) {
++ kfree_skb(Adapter->CurrentTxSkb);
++ OS_INT_DISABLE;
++ Adapter->CurrentTxSkb = NULL;
++ OS_INT_RESTORE;
++ priv->stats.tx_dropped++;
++ }
++
++ spin_unlock_irqrestore(&Adapter->CurrentTxLock, flags);
++ break;
++
++ case CMD_ENABLED: /* enable */
++ if (Adapter->MediaConnectStatus == WlanMediaStateConnected) {
++ return -EPERM;
++ }
++ spin_lock_irqsave(&Adapter->CurrentTxLock, flags);
++ Adapter->wmm.required = TRUE;
++ spin_unlock_irqrestore(&Adapter->CurrentTxLock, flags);
++ break;
++
++ case CMD_GET:
++ break;
++ default:
++ PRINTM(INFO, "Invalid option\n");
++ return -EINVAL;
++ }
++
++ data = Adapter->wmm.required;
++ val = (int *) wrq->u.name;
++ *val = data;
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Implement cmd HostCmd_CMD_WMM_GET_STATUS
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ * @param cmd Pointer to CMD buffer
++ * @param InfoBuf Pointer to cmd data
++ *
++ * @return WLAN_STATUS_SUCCESS
++ */
++int
++wlan_cmd_wmm_get_status(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, void *InfoBuf)
++{
++ PRINTM(INFO, "WMM: WMM_GET_STATUS cmd sent\n");
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_WMM_GET_STATUS);
++ cmd->Size =
++ wlan_cpu_to_le16(sizeof(HostCmd_DS_WMM_GET_STATUS) + S_DS_GEN);
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Send a command to firmware to retrieve the current WMM status
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ *
++ * @return WLAN_STATUS_SUCCESS; WLAN_STATUS_FAILURE
++ */
++int
++sendWMMStatusChangeCmd(wlan_private * priv)
++{
++ return PrepareAndSendCommand(priv, HostCmd_CMD_WMM_GET_STATUS,
++ 0, 0, 0, NULL);
++}
++
++/**
++ * @brief Check if wmm TX queue is empty
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ *
++ * @return FALSE if not empty; TRUE if empty
++ */
++int
++wmm_lists_empty(wlan_private * priv)
++{
++ int i;
++
++ for (i = 0; i < MAX_AC_QUEUES; i++) {
++ if (!list_empty((struct list_head *) &priv->adapter->wmm.txSkbQ[i])) {
++ return FALSE;
++ }
++ }
++ return TRUE;
++}
++
++/**
++ * @brief Cleanup wmm TX queue
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ *
++ * @return void
++ */
++void
++wmm_cleanup_queues(wlan_private * priv)
++{
++ int i;
++ struct sk_buff *delNode, *Q;
++
++ ENTER();
++
++ for (i = 0; i < MAX_AC_QUEUES; i++) {
++ Q = &priv->adapter->wmm.txSkbQ[i];
++
++ while (!list_empty((struct list_head *) Q)) {
++ delNode = Q->next;
++ list_del((struct list_head *) delNode);
++ kfree_skb(delNode);
++ }
++ }
++
++ priv->adapter->wmm.packetsQueued = 0;
++
++ LEAVE();
++}
++
++/**
++ * @brief Add skb to WMM queue
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ * @param skb Pointer to sk_buff
++ *
++ * @return void
++ */
++void
++wmm_map_and_add_skb(wlan_private * priv, struct sk_buff *skb)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ struct ethhdr *eth;
++ struct timeval tstamp;
++ u8 tos;
++ wlan_wmm_ac_e ac;
++ wlan_wmm_ac_e ac_down;
++
++ eth = (struct ethhdr *) skb->data;
++
++ switch (eth->h_proto) {
++ case __constant_htons(ETH_P_IP):
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
++ PRINTM(INFO, "packet type ETH_P_IP: %04x, tos=%#x prio=%#x\n",
++ eth->h_proto, ip_hdr(skb)->tos, skb->priority);
++ tos = IPTOS_PREC(ip_hdr(skb)->tos) >> IPTOS_OFFSET;
++#else
++ PRINTM(DATA, "packet type ETH_P_IP: %04x, tos=%#x prio=%#x\n",
++ eth->h_proto, skb->nh.iph->tos, skb->priority);
++ tos = IPTOS_PREC(skb->nh.iph->tos);
++#endif
++ break;
++ case __constant_htons(ETH_P_ARP):
++ PRINTM(DATA, "ARP packet %04x\n", eth->h_proto);
++ default:
++ tos = 0;
++ break;
++ }
++
++ ac = wmm_convert_tos_to_ac(tos);
++ ac_down = wmm_downgrade_ac(priv, ac);
++
++ skb->priority = wmm_tos_to_priority(tos);
++ PRINTM(DATA, "wmm_map: tos=%#x, ac=%#x ac_down=%#x, priority=%#x\n",
++ tos, ac, ac_down, skb->priority);
++
++ list_add_tail((struct list_head *) skb,
++ (struct list_head *) &Adapter->wmm.txSkbQ[ac_down]);
++
++ wmm_process_app_iface_tx(priv);
++
++ /* Record the current time the packet was queued; used to determine
++ * the amount of time the packet was queued in the driver before it
++ * was sent to the firmware. The delay is then sent along with the
++ * packet to the firmware for aggregate delay calculation for stats
++ * and MSDU lifetime expiry.
++ */
++ do_gettimeofday(&tstamp);
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
++ skb->tstamp = timeval_to_ktime(tstamp);
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14)
++ skb_set_timestamp(skb, &tstamp);
++#else
++ memcpy(&skb->stamp, &tstamp, sizeof(skb->stamp));
++#endif
++}
++
++/**
++ * @brief Process the GET_WMM_STATUS command response from firmware
++ *
++ * The GET_WMM_STATUS command returns multiple TLVs for:
++ * - Each AC Queue status
++ * - Current WMM Parameter IE
++ *
++ * This function parses the TLVs and then calls further functions
++ * to process any changes in the queue prioritization or state.
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ * @param resp Pointer to the command response buffer including TLVs
++ * TLVs for each queue and the WMM Parameter IE.
++ *
++ * @return WLAN_STATUS_SUCCESS
++ */
++int
++wlan_cmdresp_wmm_get_status(wlan_private * priv,
++ const HostCmd_DS_COMMAND * resp)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ u8 *pCurrent = (u8 *) & resp->params.getWmmStatus;
++ u32 respLen = resp->Size;
++ int valid = TRUE;
++ int enableData = TRUE;
++
++ MrvlIEtypes_Data_t *pTlvHdr;
++ MrvlIEtypes_WmmQueueStatus_t *pTlvWmmQStatus;
++ IEEEtypes_WmmParameter_t *pWmmParamIe;
++ WmmAcStatus_t *pACStatus;
++
++ PRINTM(INFO, "WMM: WMM_GET_STATUS cmdresp received: %d\n", respLen);
++ HEXDUMP("CMD_RESP: WMM_GET_STATUS", pCurrent, respLen);
++
++ while ((respLen >= sizeof(pTlvHdr->Header)) && valid) {
++ pTlvHdr = (MrvlIEtypes_Data_t *) pCurrent;
++ pTlvHdr->Header.Len = wlan_le16_to_cpu(pTlvHdr->Header.Len);
++
++ switch (wlan_le16_to_cpu(pTlvHdr->Header.Type)) {
++ case TLV_TYPE_WMMQSTATUS:
++ pTlvWmmQStatus = (MrvlIEtypes_WmmQueueStatus_t *) pTlvHdr;
++ PRINTM(INFO,
++ "CMD_RESP: WMM_GET_STATUS: QSTATUS TLV: %d, %d, %d\n",
++ pTlvWmmQStatus->QueueIndex, pTlvWmmQStatus->FlowRequired,
++ pTlvWmmQStatus->Disabled);
++
++ pACStatus = &Adapter->wmm.acStatus[pTlvWmmQStatus->QueueIndex];
++ pACStatus->Disabled = pTlvWmmQStatus->Disabled;
++ pACStatus->FlowRequired = pTlvWmmQStatus->FlowRequired;
++ pACStatus->FlowCreated = pTlvWmmQStatus->FlowCreated;
++ break;
++
++ case WMM_IE:
++ /*
++ * Point the regular IEEE IE 2 bytes into the Marvell IE
++ * and setup the IEEE IE type and length byte fields
++ */
++
++ HEXDUMP("WMM: WMM TLV:", (u8 *) pTlvHdr, pTlvHdr->Header.Len + 4);
++
++ pWmmParamIe = (IEEEtypes_WmmParameter_t *) (pCurrent + 2);
++ pWmmParamIe->VendHdr.Len = pTlvHdr->Header.Len;
++ pWmmParamIe->VendHdr.ElementId = WMM_IE;
++
++ PRINTM(INFO, "CMD_RESP: WMM_GET_STATUS: WMM Parameter Set: %d\n",
++ pWmmParamIe->QoSInfo.ParaSetCount);
++
++ memcpy((u8 *) & Adapter->CurBssParams.BSSDescriptor.wmmIE,
++ pWmmParamIe, pWmmParamIe->VendHdr.Len + 2);
++
++ break;
++
++ default:
++ valid = FALSE;
++ break;
++ }
++
++ pCurrent += (pTlvHdr->Header.Len + sizeof(pTlvHdr->Header));
++ respLen -= (pTlvHdr->Header.Len + sizeof(pTlvHdr->Header));
++ }
++
++ wmm_setup_queue_priorities(priv);
++ wmm_setup_ac_downgrade(priv);
++
++ if (enableData) {
++ wmm_start_queue(priv);
++ os_carrier_on(priv);
++ os_start_queue(priv);
++ }
++
++ send_iwevcustom_event(priv, WMM_CONFIG_CHANGE_INDICATION);
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Call back from the command module to allow insertion of a WMM TLV
++ *
++ * If the BSS we are associating to supports WMM, add the required WMM
++ * Information IE to the association request command buffer in the form
++ * of a Marvell extended IEEE IE.
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ * @param ppAssocBuf Output parameter: Pointer to the TLV output buffer,
++ * modified on return to point after the appended WMM TLV
++ * @param pWmmIE Pointer to the WMM IE for the BSS we are joining
++ *
++ * @return Length of data appended to the association tlv buffer
++ */
++u32
++wlan_wmm_process_association_req(wlan_private * priv,
++ u8 ** ppAssocBuf,
++ IEEEtypes_WmmParameter_t * pWmmIE)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ MrvlIEtypes_WmmParamSet_t *pWmmTlv;
++ u32 retLen = 0;
++
++ /* Null checks */
++ if (ppAssocBuf == 0)
++ return 0;
++ if (*ppAssocBuf == 0)
++ return 0;
++ if (pWmmIE == 0)
++ return 0;
++
++ PRINTM(INFO, "WMM: process assoc req: bss->wmmIe=%x\n",
++ pWmmIE->VendHdr.ElementId);
++
++ if (Adapter->wmm.required && pWmmIE->VendHdr.ElementId == WMM_IE) {
++ pWmmTlv = (MrvlIEtypes_WmmParamSet_t *) * ppAssocBuf;
++ pWmmTlv->Header.Type = (u16) wmm_info_ie[0];
++ pWmmTlv->Header.Type = wlan_cpu_to_le16(pWmmTlv->Header.Type);
++ pWmmTlv->Header.Len = (u16) wmm_info_ie[1];
++ pWmmTlv->Header.Len = wlan_cpu_to_le16(pWmmTlv->Header.Len);
++
++ memcpy(pWmmTlv->WmmIE, &wmm_info_ie[2], pWmmTlv->Header.Len);
++#define QOS_INFO_PARA_MASK 0x0f
++ if (pWmmIE->QoSInfo.QosUAPSD
++ && ((Adapter->wmm.qosinfo & QOS_INFO_PARA_MASK) != 0)) {
++ memcpy((u8 *) (pWmmTlv->WmmIE + pWmmTlv->Header.Len
++ - sizeof(Adapter->wmm.qosinfo)),
++ &Adapter->wmm.qosinfo, sizeof(Adapter->wmm.qosinfo));
++ }
++ retLen = sizeof(pWmmTlv->Header) + pWmmTlv->Header.Len;
++
++ HEXDUMP("ASSOC_CMD: WMM IE", (u8 *) pWmmTlv, retLen);
++ *ppAssocBuf += retLen;
++ }
++
++ return retLen;
++}
++
++/**
++ * @brief Compute the time delay in the driver queues for a given skb.
++ *
++ * When the skb is received at the OS/Driver interface, the current
++ * time is set in the skb structure. The difference between the present
++ * time and that received time is computed in this function and limited
++ * based on pre-compiled limits in the driver.
++ *
++ * @param skb Pointer to a sk_buff which has been previously timestamped
++ *
++ * @return Time delay of the packet in 2ms units after having limit applied
++ */
++u8
++wmm_compute_driver_packet_delay(const struct sk_buff * skb)
++{
++ u8 retVal;
++ struct timeval in_tv;
++ struct timeval out_tv;
++ int queue_delay;
++
++ retVal = 0;
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14)
++ skb_get_timestamp(skb, &in_tv);
++#else
++ memcpy(&in_tv, &skb->stamp, sizeof(in_tv));
++#endif
++ do_gettimeofday(&out_tv);
++
++ queue_delay = timeval_diff_in_ms(&out_tv, &in_tv);
++
++ /* Queue delay is passed as a uint8 in units of 2ms (ms shifted
++ * by 1). Min value (other than 0) is therefore 2ms, max is 510ms.
++ *
++ * Pass max value if queue_delay is beyond the uint8 range
++ */
++ retVal = MIN(queue_delay, DRV_PKT_DELAY_TO_FW_LIMIT) >> 1;
++
++ PRINTM(DATA, "WMM: Pkt Delay: %d ms, %d ms sent to FW\n",
++ queue_delay, retVal);
++
++ return retVal;
++}
++
++/**
++ * @brief Transmit the highest priority packet awaiting in the WMM Queues
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ *
++ * @return void
++ */
++void
++wmm_process_tx(wlan_private * priv)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ ulong flags;
++
++ OS_INTERRUPT_SAVE_AREA;
++
++ ENTER();
++
++ if ((Adapter->PSState == PS_STATE_SLEEP)
++ || (Adapter->PSState == PS_STATE_PRE_SLEEP)) {
++ PRINTM(INFO, "In PS State %d"
++ " - Not sending the packet\n", Adapter->PSState);
++ LEAVE();
++
++ return;
++ }
++
++ spin_lock_irqsave(&Adapter->CurrentTxLock, flags);
++
++ if (priv->wlan_dev.dnld_sent) {
++ spin_unlock_irqrestore(&Adapter->CurrentTxLock, flags);
++
++ LEAVE();
++
++ return;
++ }
++
++ UpdateTransStart(priv->wlan_dev.netdev);
++ wmm_pop_highest_prio_skb(priv);
++
++ spin_unlock_irqrestore(&Adapter->CurrentTxLock, flags);
++
++ if (Adapter->CurrentTxSkb) {
++ wlan_process_tx(priv);
++ }
++
++ LEAVE();
++}
++
++/**
++ * @brief Private IOCTL entry to get the status of the WMM queues
++ *
++ * Return the following information for each WMM AC:
++ * - WMM IE Acm Required
++ * - Firmware Flow Required
++ * - Firmware Flow Established
++ * - Firmware Queue Enabled
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ * @param wrq A pointer to iwreq structure containing the
++ * wlan_ioctl_wmm_queue_status_t struct for request
++ *
++ * @return 0 if successful; IOCTL error code otherwise
++ */
++int
++wlan_wmm_queue_status_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_adapter *Adapter = priv->adapter;
++ wlan_ioctl_wmm_queue_status_t qstatus;
++ wlan_wmm_ac_e acVal;
++ WmmAcStatus_t *pACStatus;
++ IEEEtypes_WmmAcParameters_t *pWmmIeAC;
++
++ for (acVal = WMM_AC_BK; acVal <= WMM_AC_VO; acVal++) {
++ pACStatus = &Adapter->wmm.acStatus[acVal];
++ pWmmIeAC = &Adapter->CurBssParams.BSSDescriptor.wmmIE.AcParams[acVal];
++
++ /* Acm bit */
++ qstatus.acStatus[acVal].wmmAcm = pWmmIeAC->AciAifsn.Acm;
++
++ /* Firmware status */
++ qstatus.acStatus[acVal].flowRequired = pACStatus->FlowRequired;
++ qstatus.acStatus[acVal].flowCreated = pACStatus->FlowCreated;
++ qstatus.acStatus[acVal].disabled = pACStatus->Disabled;
++ }
++
++ if (copy_to_user(wrq->u.data.pointer, &qstatus, sizeof(qstatus))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Private IOCTL entry to send an ADDTS TSPEC
++ *
++ * Receive a ADDTS command from the application. The command structure
++ * contains a TSPEC and timeout in milliseconds. The timeout is performed
++ * in the firmware after the ADDTS command frame is sent.
++ *
++ * The TSPEC is received in the API as an opaque block whose length is
++ * calculated from the IOCTL data length. The firmware will send the
++ * entire data block, including the bytes after the TSPEC. This is done
++ * to allow extra IEs to be packaged with the TSPEC in the ADDTS action
++ * frame.
++ *
++ * The IOCTL structure contains two return fields:
++ * - The firmware command result which indicates failure and timeouts
++ * - The IEEE Status code which contains the corresponding value from
++ * any ADDTS response frame received.
++ *
++ * In addition, the opaque TSPEC data block passed in is replaced with the
++ * TSPEC recieved in the ADDTS response frame. In case of failure, the
++ * AP may modify the TSPEC on return and in the case of success, the
++ * medium time is returned as calculated by the AP. Along with the TSPEC,
++ * any IEs that are sent in the ADDTS response are also returned and can be
++ * parsed using the IOCTL length as an indicator of extra elements.
++ *
++ * The return value to the application layer indicates a driver execution
++ * success or failure. A successful return could still indicate a firmware
++ * failure or AP negotiation failure via the commandResult field copied
++ * back to the application.
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ * @param wrq A pointer to iwreq structure containing the
++ * wlan_ioctl_wmm_addts_req_t struct for this ADDTS request
++ *
++ * @return 0 if successful; IOCTL error code otherwise
++ */
++int
++wlan_wmm_addts_req_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ static u8 dialogTok = 0;
++ wlan_ioctl_wmm_addts_req_t addtsIoctl;
++ wlan_cmd_wmm_addts_req_t addtsCmd;
++ int retcode;
++
++ if (copy_from_user(&addtsIoctl,
++ wrq->u.data.pointer,
++ MIN(wrq->u.data.length, sizeof(addtsIoctl))) != 0) {
++ /* copy_from_user failed */
++ PRINTM(INFO, "TSPEC: ADDTS copy from user failed\n");
++ retcode = -EFAULT;
++
++ } else {
++ memset(&addtsCmd, 0x00, sizeof(addtsCmd));
++ if ((++dialogTok) == 0)
++ dialogTok = 1;
++
++ addtsCmd.dialogToken = dialogTok;
++ addtsCmd.timeout_ms = addtsIoctl.timeout_ms;
++ addtsCmd.tspecDataLen = (wrq->u.data.length
++ - sizeof(addtsCmd.timeout_ms)
++ - sizeof(addtsCmd.commandResult)
++ - sizeof(addtsCmd.ieeeStatusCode));
++ memcpy(addtsCmd.tspecData,
++ addtsIoctl.tspecData, addtsCmd.tspecDataLen);
++
++ retcode = PrepareAndSendCommand(priv,
++ HostCmd_CMD_WMM_ADDTS_REQ, 0,
++ HostCmd_OPTION_WAITFORRSP, 0,
++ &addtsCmd);
++
++ wrq->u.data.length = (sizeof(addtsIoctl.timeout_ms)
++ + sizeof(addtsIoctl.commandResult)
++ + sizeof(addtsIoctl.ieeeStatusCode)
++ + addtsCmd.tspecDataLen);
++
++ addtsIoctl.commandResult = addtsCmd.commandResult;
++ addtsIoctl.ieeeStatusCode = addtsCmd.ieeeStatusCode;
++ memcpy(addtsIoctl.tspecData,
++ addtsCmd.tspecData, addtsCmd.tspecDataLen);
++
++ if (copy_to_user(wrq->u.data.pointer,
++ &addtsIoctl, sizeof(addtsIoctl))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++
++ if (retcode) {
++ return -EFAULT;
++ }
++ }
++
++ return retcode;
++}
++
++/**
++ * @brief Private IOCTL entry to send a DELTS TSPEC
++ *
++ * Receive a DELTS command from the application. The command structure
++ * contains a TSPEC and reason code along with space for a command result
++ * to be returned. The information is packaged is sent to the wlan_cmd.c
++ * firmware command prep and send routines for execution in the firmware.
++ *
++ * The reason code is not used for WMM implementations but is indicated in
++ * the 802.11e specification.
++ *
++ * The return value to the application layer indicates a driver execution
++ * success or failure. A successful return could still indicate a firmware
++ * failure via the commandResult field copied back to the application.
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ * @param wrq A pointer to iwreq structure containing the
++ * wlan_ioctl_wmm_delts_req_t struct for this DELTS request
++ *
++ * @return 0 if successful; IOCTL error code otherwise
++ */
++int
++wlan_wmm_delts_req_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_ioctl_wmm_delts_req_t deltsIoctl;
++ wlan_cmd_wmm_delts_req_t deltsCmd;
++ int retcode;
++
++ if (copy_from_user(&deltsIoctl,
++ wrq->u.data.pointer,
++ MIN(wrq->u.data.length, sizeof(deltsIoctl))) != 0) {
++ /* copy_from_user failed */
++ PRINTM(INFO, "TSPEC: DELTS copy from user failed\n");
++ retcode = -EFAULT;
++
++ } else {
++ memset(&deltsCmd, 0x00, sizeof(deltsCmd));
++
++ /* Dialog token unused for WMM implementations */
++ deltsCmd.dialogToken = 0;
++
++ deltsCmd.ieeeReasonCode = deltsIoctl.ieeeReasonCode;
++
++ /* Calculate the length of the TSPEC and any other IEs */
++ deltsCmd.tspecDataLen = (wrq->u.data.length
++ - sizeof(deltsCmd.commandResult)
++ - sizeof(deltsCmd.ieeeReasonCode));
++ memcpy(deltsCmd.tspecData,
++ deltsIoctl.tspecData, deltsCmd.tspecDataLen);
++
++ /* Send the DELTS request to firmware, wait for a response */
++ retcode = PrepareAndSendCommand(priv,
++ HostCmd_CMD_WMM_DELTS_REQ, 0,
++ HostCmd_OPTION_WAITFORRSP, 0,
++ &deltsCmd);
++
++ /* Return the firmware command result back to the application layer */
++ deltsIoctl.commandResult = deltsCmd.commandResult;
++
++ if (copy_to_user(wrq->u.data.pointer,
++ &deltsCmd,
++ MIN(wrq->u.data.length, sizeof(deltsIoctl)))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ return -EFAULT;
++ }
++
++ if (retcode) {
++ retcode = -EFAULT;
++ }
++ }
++
++ return retcode;
++}
++
++/**
++ * @brief Process the ADDTS_REQ command response from firmware
++ *
++ * Return the ADDTS firmware response to the calling thread that sent
++ * the command. The result is then relayed back the app layer.
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ * @param resp Pointer to the command response buffer including the
++ * command result and any returned ADDTS response TSPEC
++ * elements
++ *
++ * @return WLAN_STATUS_SUCCESS
++ *
++ * @sa wlan_wmm_addts_req_ioctl
++ */
++int
++wlan_cmdresp_wmm_addts_req(wlan_private * priv,
++ const HostCmd_DS_COMMAND * resp)
++{
++ wlan_cmd_wmm_addts_req_t *pAddTsCmd;
++ const HostCmd_DS_WMM_ADDTS_REQ *pCmdResp;
++
++ /* Cast the NULL pointer of the buffer the IOCTL sent in the command req */
++ pAddTsCmd = (wlan_cmd_wmm_addts_req_t *) priv->adapter->CurCmd->pdata_buf;
++
++ /* Convenience variable for the ADDTS response from the firmware */
++ pCmdResp = &resp->params.addTsReq;
++
++ /* Assign return data */
++ pAddTsCmd->commandResult = pCmdResp->commandResult;
++
++ if (pCmdResp->commandResult == TSPEC_RESULT_SUCCESS) {
++ pAddTsCmd->dialogToken = pCmdResp->dialogToken;
++ pAddTsCmd->ieeeStatusCode = pCmdResp->ieeeStatusCode;
++
++ /* The tspecData field is potentially variable in size due to extra IEs
++ * that may have been in the ADDTS response action frame. Calculate
++ * the data length from the firmware command response.
++ */
++ pAddTsCmd->tspecDataLen = (resp->Size
++ - sizeof(pCmdResp->commandResult)
++ - sizeof(pCmdResp->timeout_ms)
++ - sizeof(pCmdResp->dialogToken)
++ - sizeof(pCmdResp->ieeeStatusCode)
++ - S_DS_GEN);
++
++ /* Copy the TSPEC data include any extra IEs after the TSPEC */
++ memcpy(pAddTsCmd->tspecData,
++ pCmdResp->tspecData,
++ MIN(pAddTsCmd->tspecDataLen, sizeof(pAddTsCmd->tspecData)
++ + sizeof(pAddTsCmd->addtsExtraIEBuf)));
++ } else {
++ pAddTsCmd->dialogToken = 0;
++ pAddTsCmd->ieeeStatusCode = 0;
++ pAddTsCmd->tspecDataLen = 0;
++ }
++
++ PRINTM(INFO, "TSPEC: ADDTS ret = %d,%d sz=%d\n",
++ pAddTsCmd->commandResult, pAddTsCmd->ieeeStatusCode,
++ pAddTsCmd->tspecDataLen);
++
++ HEXDUMP("TSPEC: ADDTS data",
++ pAddTsCmd->tspecData, pAddTsCmd->tspecDataLen);
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Process the DELTS_REQ command response from firmware
++ *
++ * Return the DELTS firmware response to the calling thread that sent
++ * the command. The result is then relayed back the app layer.
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ * @param resp Pointer to the command response buffer with the command
++ * result. No other response information is passed back
++ * to the driver.
++ *
++ * @return WLAN_STATUS_SUCCESS
++ *
++ * @sa wlan_wmm_delts_req_ioctl
++ */
++int
++wlan_cmdresp_wmm_delts_req(wlan_private * priv,
++ const HostCmd_DS_COMMAND * resp)
++{
++ wlan_cmd_wmm_delts_req_t *pDelTsCmd;
++
++ /* Cast the NULL pointer of the buffer the IOCTL sent in the command req */
++ pDelTsCmd = (wlan_cmd_wmm_delts_req_t *) priv->adapter->CurCmd->pdata_buf;
++
++ pDelTsCmd->commandResult =
++ wlan_le16_to_cpu(resp->params.delTsReq.commandResult);
++
++ PRINTM(INFO, "TSPEC: DELTS result = %d\n", pDelTsCmd->commandResult);
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Implement cmd HostCmd_DS_WMM_ADDTS_REQ
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ * @param cmd Pointer to CMD buffer
++ * @param InfoBuf Pointer to cmd data
++ *
++ * @return WLAN_STATUS_SUCCESS
++ *
++ * @sa wlan_wmm_addts_req_ioctl
++ */
++int
++wlan_cmd_wmm_addts_req(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, void *InfoBuf)
++{
++ wlan_cmd_wmm_addts_req_t *pAddTsCmd;
++ int tspecCopySize;
++
++ pAddTsCmd = (wlan_cmd_wmm_addts_req_t *) InfoBuf;
++
++ cmd->params.addTsReq.timeout_ms = pAddTsCmd->timeout_ms;
++ cmd->params.addTsReq.dialogToken = pAddTsCmd->dialogToken;
++
++ tspecCopySize = MIN(pAddTsCmd->tspecDataLen,
++ sizeof(cmd->params.addTsReq.tspecData));
++ memcpy(&cmd->params.addTsReq.tspecData,
++ pAddTsCmd->tspecData, tspecCopySize);
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_WMM_ADDTS_REQ);
++ cmd->Size = wlan_cpu_to_le16(sizeof(cmd->params.addTsReq.dialogToken)
++ + sizeof(cmd->params.addTsReq.timeout_ms)
++ + sizeof(cmd->params.addTsReq.commandResult)
++ + sizeof(cmd->params.addTsReq.ieeeStatusCode)
++ + tspecCopySize + S_DS_GEN);
++
++ cmd->params.addTsReq.timeout_ms
++ = wlan_cpu_to_le32(cmd->params.addTsReq.timeout_ms);
++
++ PRINTM(INFO, "WMM: ADDTS Cmd: Data Len = %d\n", pAddTsCmd->tspecDataLen);
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Implement cmd HostCmd_DS_WMM_DELTS_REQ
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ * @param cmd Pointer to CMD buffer
++ * @param InfoBuf Void pointer cast of a wlan_cmd_wmm_delts_req_t struct
++ *
++ * @return WLAN_STATUS_SUCCESS
++ *
++ * @sa wlan_wmm_delts_req_ioctl
++ */
++int
++wlan_cmd_wmm_delts_req(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, void *InfoBuf)
++{
++ wlan_cmd_wmm_delts_req_t *pDelTsCmd;
++ int tspecCopySize;
++
++ pDelTsCmd = (wlan_cmd_wmm_delts_req_t *) InfoBuf;
++
++ cmd->params.delTsReq.dialogToken = pDelTsCmd->dialogToken;
++ cmd->params.delTsReq.ieeeReasonCode = pDelTsCmd->ieeeReasonCode;
++
++ tspecCopySize = MIN(pDelTsCmd->tspecDataLen,
++ sizeof(cmd->params.delTsReq.tspecData));
++ memcpy(&cmd->params.delTsReq.tspecData,
++ pDelTsCmd->tspecData, tspecCopySize);
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_WMM_DELTS_REQ);
++ cmd->Size = wlan_cpu_to_le16(sizeof(cmd->params.delTsReq.dialogToken)
++ + sizeof(cmd->params.delTsReq.commandResult)
++ + sizeof(cmd->params.delTsReq.ieeeReasonCode)
++ + tspecCopySize + S_DS_GEN);
++
++ PRINTM(INFO, "WMM: DELTS Cmd prepared\n");
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Prepare the firmware command buffer for the WMM_QUEUE_CONFIG command
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ * @param cmd Pointer to CMD buffer
++ * @param InfoBuf Void pointer cast of a wlan_cmd_wmm_queue_config_t struct
++ *
++ * @return WLAN_STATUS_SUCCESS
++ */
++int
++wlan_cmd_wmm_queue_config(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, void *InfoBuf)
++{
++ wlan_cmd_wmm_queue_config_t *pQConfigCmd;
++ int tlvCopySize;
++
++ pQConfigCmd = (wlan_cmd_wmm_queue_config_t *) InfoBuf;
++
++ cmd->params.queueConfig.action = pQConfigCmd->action;
++ cmd->params.queueConfig.accessCategory = pQConfigCmd->accessCategory;
++ cmd->params.queueConfig.msduLifetimeExpiry
++ = wlan_cpu_to_le16(pQConfigCmd->msduLifetimeExpiry);
++
++ tlvCopySize = MIN(pQConfigCmd->tlvBufLen,
++ sizeof(cmd->params.queueConfig.tlvBuffer));
++ memcpy(&cmd->params.queueConfig.tlvBuffer,
++ pQConfigCmd->tlvBuffer, tlvCopySize);
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_WMM_QUEUE_CONFIG);
++ cmd->Size = wlan_cpu_to_le16(sizeof(cmd->params.queueConfig.action)
++ +
++ sizeof(cmd->params.queueConfig.
++ accessCategory)
++ +
++ sizeof(cmd->params.queueConfig.
++ msduLifetimeExpiry)
++ + tlvCopySize + S_DS_GEN);
++
++ PRINTM(INFO, "WMM: QUEUE CONFIG Cmd prepared\n");
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Process the WMM_QUEUE_CONFIG command response from firmware
++ *
++ * Return the firmware command response to the blocked IOCTL caller function.
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ * @param resp Pointer to the command response buffer with:
++ * - action code
++ * - access category
++ * - collected statistics if requested
++ *
++ * @return WLAN_STATUS_SUCCESS
++ *
++ * @sa wlan_wmm_queue_config_ioctl
++ */
++int
++wlan_cmdresp_wmm_queue_config(wlan_private * priv,
++ const HostCmd_DS_COMMAND * resp)
++{
++ wlan_cmd_wmm_queue_config_t *pQConfigCmd;
++ const HostCmd_DS_WMM_QUEUE_CONFIG *pCmdResp;
++
++ pQConfigCmd =
++ (wlan_cmd_wmm_queue_config_t *) (priv->adapter->CurCmd->pdata_buf);
++ pCmdResp = &resp->params.queueConfig;
++
++ pQConfigCmd->action = pCmdResp->action;
++ pQConfigCmd->accessCategory = pCmdResp->accessCategory;
++ pQConfigCmd->msduLifetimeExpiry
++ = wlan_le16_to_cpu(pCmdResp->msduLifetimeExpiry);
++
++ pQConfigCmd->tlvBufLen = (resp->Size - sizeof(pCmdResp->action)
++ - sizeof(pCmdResp->accessCategory)
++ - sizeof(pCmdResp->msduLifetimeExpiry)
++ - S_DS_GEN);
++
++ memcpy(pQConfigCmd->tlvBuffer,
++ pCmdResp->tlvBuffer, pQConfigCmd->tlvBufLen);
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Private IOCTL entry to get/set a specified AC Queue's parameters
++ *
++ * Receive a AC Queue configuration command which is used to get, set, or
++ * default the parameters associated with a specific WMM AC Queue.
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ * @param wrq A pointer to iwreq structure containing the
++ * wlan_ioctl_wmm_queue_config_t struct
++ *
++ * @return 0 if successful; IOCTL error code otherwise
++ */
++int
++wlan_wmm_queue_config_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_ioctl_wmm_queue_config_t queueConfigIoctl;
++ wlan_cmd_wmm_queue_config_t queueConfigCmd;
++ int retcode;
++
++ PRINTM(INFO, "WMM: Queue Config IOCTL Enter\n");
++
++ if (copy_from_user(&queueConfigIoctl,
++ wrq->u.data.pointer,
++ MIN(wrq->u.data.length,
++ sizeof(queueConfigIoctl))) != 0) {
++ /* copy_from_user failed */
++ PRINTM(INFO, "WMM: Queue Config: copy from user failed\n");
++ retcode = -EFAULT;
++
++ } else {
++ memset(&queueConfigCmd, 0x00, sizeof(queueConfigCmd));
++
++ queueConfigCmd.action = queueConfigIoctl.action;
++ queueConfigCmd.accessCategory = queueConfigIoctl.accessCategory;
++ queueConfigCmd.msduLifetimeExpiry
++ = queueConfigIoctl.msduLifetimeExpiry;
++
++ /* Create a rates TLV from the supportedRates[] ioctl field */
++ queueConfigCmd.tlvBufLen = 0;
++
++ retcode = PrepareAndSendCommand(priv,
++ HostCmd_CMD_WMM_QUEUE_CONFIG, 0,
++ HostCmd_OPTION_WAITFORRSP, 0,
++ &queueConfigCmd);
++ if (retcode) {
++ retcode = -EFAULT;
++ } else {
++ memset(&queueConfigIoctl, 0x00, sizeof(queueConfigIoctl));
++
++ queueConfigIoctl.action = queueConfigCmd.action;
++ queueConfigIoctl.accessCategory = queueConfigCmd.accessCategory;
++ queueConfigIoctl.msduLifetimeExpiry
++ = queueConfigCmd.msduLifetimeExpiry;
++
++ wrq->u.data.length = sizeof(queueConfigIoctl);
++
++ if (copy_to_user(wrq->u.data.pointer,
++ &queueConfigIoctl, sizeof(queueConfigIoctl))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ retcode = -EFAULT;
++ }
++ }
++ }
++
++ return retcode;
++}
++
++/**
++ * @brief Prepare the firmware command buffer for the WMM_QUEUE_STATS command
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ * @param cmd pointer to CMD buffer
++ * @param InfoBuf void pointer cast of a HostCmd_CMD_WMM_QUEUE_STATS struct
++ *
++ * @return WLAN_STATUS_SUCCESS
++ */
++int
++wlan_cmd_wmm_queue_stats(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, void *InfoBuf)
++{
++ memcpy(&cmd->params.queueStats, InfoBuf, sizeof(cmd->params.queueStats));
++
++ cmd->Command = wlan_cpu_to_le16(HostCmd_CMD_WMM_QUEUE_STATS);
++ cmd->Size = wlan_cpu_to_le16(sizeof(HostCmd_DS_WMM_QUEUE_STATS)
++ + S_DS_GEN);
++
++ PRINTM(INFO, "WMM: QUEUE STATS Cmd prepared\n");
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Process the WMM_QUEUE_STATS command response from firmware
++ *
++ * Return the firmware command response to the blocked IOCTL caller function.
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ * @param resp Pointer to the command response buffer with:
++ * - action code
++ * - access category
++ * - collected statistics if requested
++ *
++ * @return WLAN_STATUS_SUCCESS
++ *
++ * @sa wlan_wmm_queue_stats_ioctl
++ */
++int
++wlan_cmdresp_wmm_queue_stats(wlan_private * priv,
++ const HostCmd_DS_COMMAND * resp)
++{
++ HostCmd_DS_WMM_QUEUE_STATS *pQueueStats =
++ (HostCmd_DS_WMM_QUEUE_STATS *) priv->adapter->CurCmd->pdata_buf;
++
++ memcpy(pQueueStats, &resp->params.queueStats, (resp->Size - S_DS_GEN));
++
++ pQueueStats->pktCount = wlan_le16_to_cpu(pQueueStats->pktCount);
++ pQueueStats->pktLoss = wlan_le16_to_cpu(pQueueStats->pktLoss);
++ pQueueStats->avgQueueDelay = wlan_le32_to_cpu(pQueueStats->avgQueueDelay);
++ pQueueStats->avgTxDelay = wlan_le32_to_cpu(pQueueStats->avgTxDelay);
++ pQueueStats->usedTime = wlan_le32_to_cpu(pQueueStats->usedTime);
++
++ PRINTM(INFO, "WMM: Queue Stats response: %d\n", resp->Size - S_DS_GEN);
++
++ return WLAN_STATUS_SUCCESS;
++}
++
++/**
++ * @brief Private IOCTL entry to get and start/stop queue stats on a WMM AC
++ *
++ * Receive a AC Queue statistics command from the application for a specific
++ * WMM AC. The command can:
++ * - Turn stats on
++ * - Turn stats off
++ * - Collect and clear the stats
++ *
++ * @param priv Pointer to the wlan_private driver data struct
++ * @param wrq A pointer to iwreq structure containing the
++ * wlan_ioctl_wmm_queue_stats_t struct
++ *
++ * @return 0 if successful; IOCTL error code otherwise
++ */
++int
++wlan_wmm_queue_stats_ioctl(wlan_private * priv, struct iwreq *wrq)
++{
++ wlan_ioctl_wmm_queue_stats_t queueStatsIoctl;
++ HostCmd_DS_WMM_QUEUE_STATS queueStatsCmd;
++ int retcode;
++
++ if (copy_from_user(&queueStatsIoctl,
++ wrq->u.data.pointer,
++ MIN(wrq->u.data.length,
++ sizeof(queueStatsIoctl))) != 0) {
++ /* copy_from_user failed */
++ PRINTM(INFO, "WMM: Queue Stats: copy from user failed\n");
++ retcode = -EFAULT;
++
++ } else {
++ memcpy(&queueStatsCmd, &queueStatsIoctl, sizeof(queueStatsIoctl));
++
++ PRINTM(INFO, "WMM: QUEUE STATS Ioctl: %d, %d\n",
++ queueStatsCmd.action, queueStatsCmd.accessCategory);
++
++ retcode = PrepareAndSendCommand(priv,
++ HostCmd_CMD_WMM_QUEUE_STATS, 0,
++ HostCmd_OPTION_WAITFORRSP, 0,
++ &queueStatsCmd);
++ if (retcode) {
++ retcode = -EFAULT;
++ } else {
++ if (copy_to_user(wrq->u.data.pointer,
++ &queueStatsCmd,
++ MIN(wrq->u.data.length,
++ sizeof(queueStatsCmd)))) {
++ PRINTM(INFO, "Copy to user failed\n");
++ retcode = -EFAULT;
++ }
++ }
++ }
++
++ if (retcode != WLAN_STATUS_SUCCESS) {
++ PRINTM(INFO, "WMM: QUEUE STATS Ioctl FAILED: %d, %d\n",
++ queueStatsIoctl.action, queueStatsIoctl.accessCategory);
++ }
++
++ return retcode;
++}
+diff --git a/drivers/net/wireless/marvell8686/wlan_wmm.h b/drivers/net/wireless/marvell8686/wlan_wmm.h
+new file mode 100644
+index 0000000..97c24db
+--- /dev/null
++++ b/drivers/net/wireless/marvell8686/wlan_wmm.h
+@@ -0,0 +1,111 @@
++/** @file wlan_wmm.h
++ * @brief This file contains related macros, enum, and struct
++ * of wmm functionalities
++ *
++ * Copyright © Marvell International Ltd. and/or its affiliates, 2003-2006
++ */
++/****************************************************
++Change log:
++ 09/26/05: add Doxygen format comments
++ 04/06/06: Add TSPEC, queue metrics, and MSDU expiry support
++****************************************************/
++
++#ifndef __WLAN_WMM_H
++#define __WLAN_WMM_H
++
++/** Custom indiciation message sent to the application layer for WMM changes */
++#define WMM_CONFIG_CHANGE_INDICATION "WMM_CONFIG_CHANGE.indication"
++
++/** Highest priority setting for a packet (uses voice AC) */
++#define WMM_HIGHEST_PRIORITY 7
++
++#ifdef __KERNEL__
++
++/** struct of WMM DESC */
++typedef struct
++{
++ u8 required;
++ u8 enabled;
++ u8 packetsQueued;
++ u8 queueStopped;
++ u32 packetsOut[MAX_AC_QUEUES];
++ u32 userPriPktTxCtrl[WMM_HIGHEST_PRIORITY + 1]; /* UP: 0 to 7 */
++
++ struct sk_buff txSkbQ[MAX_AC_QUEUES];
++ WmmAcStatus_t acStatus[MAX_AC_QUEUES];
++ wlan_wmm_ac_e acDowngradedVals[MAX_AC_QUEUES];
++
++ /** wmm queue priority table*/
++ u8 queuePriority[MAX_AC_QUEUES];
++
++ u8 qosinfo;
++} __ATTRIB_PACK__ WMM_DESC;
++
++extern void wmm_map_and_add_skb(wlan_private * priv, struct sk_buff *);
++extern u8 wmm_compute_driver_packet_delay(const struct sk_buff *skb);
++#endif
++
++extern int sendWMMStatusChangeCmd(wlan_private * priv);
++extern int wmm_lists_empty(wlan_private * priv);
++extern void wmm_cleanup_queues(wlan_private * priv);
++extern void wmm_process_tx(wlan_private * priv);
++
++extern void wmm_init(wlan_private * priv);
++extern void wmm_setup_queues(wlan_private * priv);
++extern void wmm_start_queue(wlan_private * priv);
++extern void wmm_stop_queue(wlan_private * priv);
++extern int wmm_is_queue_stopped(wlan_private * priv);
++
++extern void wmm_process_fw_iface_tx_xfer_start(wlan_private * priv);
++extern void wmm_process_fw_iface_tx_xfer_end(wlan_private * priv);
++extern void wmm_process_app_iface_tx(wlan_private * priv);
++extern wlan_wmm_ac_e wmm_convert_tos_to_ac(int tos);
++extern wlan_wmm_ac_e wmm_downgrade_ac(wlan_private * priv,
++ wlan_wmm_ac_e acVal);
++
++extern u32 wlan_wmm_process_association_req(wlan_private * priv,
++ u8 ** ppAssocBuf,
++ IEEEtypes_WmmParameter_t *
++ pWmmIE);
++
++/*
++ * Functions used in the cmd handling routine
++ */
++extern int wlan_cmd_wmm_get_status(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, void *InfoBuf);
++extern int wlan_cmd_wmm_addts_req(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, void *InfoBuf);
++extern int wlan_cmd_wmm_delts_req(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, void *InfoBuf);
++extern int wlan_cmd_wmm_queue_config(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, void *InfoBuf);
++extern int wlan_cmd_wmm_queue_stats(wlan_private * priv,
++ HostCmd_DS_COMMAND * cmd, void *InfoBuf);
++
++/*
++ * Functions used in the cmdresp handling routine
++ */
++extern int wlan_cmdresp_wmm_get_status(wlan_private * priv,
++ const HostCmd_DS_COMMAND * resp);
++extern int wlan_cmdresp_wmm_addts_req(wlan_private * priv,
++ const HostCmd_DS_COMMAND * resp);
++extern int wlan_cmdresp_wmm_delts_req(wlan_private * priv,
++ const HostCmd_DS_COMMAND * resp);
++extern int wlan_cmdresp_wmm_queue_config(wlan_private * priv,
++ const HostCmd_DS_COMMAND * resp);
++extern int wlan_cmdresp_wmm_queue_stats(wlan_private * priv,
++ const HostCmd_DS_COMMAND * resp);
++
++/*
++ * IOCTLs
++ */
++extern int wlan_wmm_enable_ioctl(wlan_private * priv, struct iwreq *wrq);
++extern int wlan_wmm_queue_status_ioctl(wlan_private * priv,
++ struct iwreq *wrq);
++
++extern int wlan_wmm_addts_req_ioctl(wlan_private * priv, struct iwreq *wrq);
++extern int wlan_wmm_delts_req_ioctl(wlan_private * priv, struct iwreq *wrq);
++extern int wlan_wmm_queue_config_ioctl(wlan_private * priv,
++ struct iwreq *wrq);
++extern int wlan_wmm_queue_stats_ioctl(wlan_private * priv, struct iwreq *wrq);
++#endif /* __WLAN_WMM_H */
+diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c
+index de5dbcd..41001fa 100644
+--- a/drivers/rtc/rtc-s3c.c
++++ b/drivers/rtc/rtc-s3c.c
+@@ -36,7 +36,8 @@
+
+ static struct resource *s3c_rtc_mem;
+
+-static void __iomem *s3c_rtc_base;
++void __iomem *s3c_rtc_base;
++EXPORT_SYMBOL(s3c_rtc_base);
+ static int s3c_rtc_alarmno = NO_IRQ;
+ static int s3c_rtc_tickno = NO_IRQ;
+ static int s3c_rtc_freq = 1;
+@@ -77,7 +78,7 @@ static irqreturn_t s3c_rtc_tickirq(int irq, void *id)
+ }
+
+ /* Update control registers */
+-static void s3c_rtc_setaie(int to)
++void s3c_rtc_setaie(int to)
+ {
+ unsigned int tmp;
+
+@@ -97,6 +98,7 @@ static void s3c_rtc_setaie(int to)
+ disable_irq_wake(s3c_rtc_alarmno);
+
+ }
++EXPORT_SYMBOL(s3c_rtc_setaie);
+
+ static void s3c_rtc_setpie(int to)
+ {
+@@ -120,7 +122,7 @@ static void s3c_rtc_setfreq(int freq)
+
+ /* Time read/write */
+
+-static int s3c_rtc_gettime(struct device *dev, struct rtc_time *rtc_tm)
++int s3c_rtc_gettime(struct device *dev, struct rtc_time *rtc_tm)
+ {
+ unsigned int have_retried = 0;
+ void __iomem *base = s3c_rtc_base;
+@@ -159,6 +161,7 @@ static int s3c_rtc_gettime(struct device *dev, struct rtc_time *rtc_tm)
+
+ return 0;
+ }
++EXPORT_SYMBOL(s3c_rtc_gettime);
+
+ static int s3c_rtc_settime(struct device *dev, struct rtc_time *tm)
+ {
+@@ -172,10 +175,8 @@ static int s3c_rtc_settime(struct device *dev, struct rtc_time *tm)
+
+ /* we get around y2k by simply not supporting it */
+
+- if (year < 0 || year >= 100) {
+- dev_err(dev, "rtc only supports 100 years\n");
+- return -EINVAL;
+- }
++ if(year < 0) year = 0;
++ if(year >= 100) year = 99;
+
+ writeb(BIN2BCD(tm->tm_sec), base + S3C2410_RTCSEC);
+ writeb(BIN2BCD(tm->tm_min), base + S3C2410_RTCMIN);
+@@ -247,7 +248,7 @@ static int s3c_rtc_getalarm(struct device *dev, struct rtc_wkalrm *alrm)
+ return 0;
+ }
+
+-static int s3c_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)
++int s3c_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)
+ {
+ struct rtc_time *tm = &alrm->time;
+ void __iomem *base = s3c_rtc_base;
+@@ -290,6 +291,7 @@ static int s3c_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)
+
+ return 0;
+ }
++EXPORT_SYMBOL(s3c_rtc_setalarm);
+
+ static int s3c_rtc_ioctl(struct device *dev,
+ unsigned int cmd, unsigned long arg)
+diff --git a/drivers/serial/s3c6400.c b/drivers/serial/s3c6400.c
+index 89e15c7..2238df2 100644
+--- a/drivers/serial/s3c6400.c
++++ b/drivers/serial/s3c6400.c
+@@ -797,10 +797,11 @@ static int s3c_serial_calcbaud(struct baud_calc *calc,
+ calc->quot = tempdiv/1000;
+ calc->calc = (rate / (calc->quot * 16));
+ calc->slot = nSlotTable[nslot];
++
++return 1;
+ printk(KERN_DEBUG "FOUND quot %d, calc %d, slot 0x%x, nslot %ld\n",
+ calc->quot, calc->calc ,
+ calc->slot, nslot);
+- return 1;
+ }
+
+ static unsigned int s3c_serial_getclk(struct uart_port *port,
+@@ -882,15 +883,14 @@ static unsigned int s3c_serial_getclk(struct uart_port *port,
+ printk(KERN_DEBUG "The best clksrc among candidate clksrc: %p(%s) (deviation: %d bps)\n", best, best->clksrc->name, deviation);
+ }
+
+- printk(KERN_DEBUG "Selected clock is %p (%s) quot %d, calc %d\n",
+- best->clksrc, best->clksrc->name, best->quot, best->calc);
+-
+ /* store results to pass back */
+ *clksrc = best->clksrc;
+ *clk = best->src;
+ *slot = best->slot;
+
+- return best->quot;
++return best->quot;
++ printk(KERN_DEBUG "Selected clock is %p (%s) quot %d, calc %d\n",
++ best->clksrc, best->clksrc->name, best->quot, best->calc);
+ }
+
+ static void s3c_serial_set_termios(struct uart_port *port,
+diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c
+index b469718..64d182d 100644
+--- a/drivers/usb/core/driver.c
++++ b/drivers/usb/core/driver.c
+@@ -26,9 +26,13 @@
+ #include <linux/usb.h>
+ #include <linux/usb/quirks.h>
+ #include <linux/workqueue.h>
++#include <linux/module.h>
+ #include "hcd.h"
+ #include "usb.h"
+
++struct usb_device *sr_udev;
++EXPORT_SYMBOL(sr_udev);
++
+
+ #ifdef CONFIG_HOTPLUG
+
+@@ -1224,13 +1228,13 @@ static int usb_autopm_do_device(struct usb_device *udev, int inc_usage_cnt)
+ usb_pm_unlock(udev);
+ return status;
+ }
+-
++EXPORT_SYMBOL(usb_autopm_do_device);
+ /* usb_autosuspend_work - callback routine to autosuspend a USB device */
+ void usb_autosuspend_work(struct work_struct *work)
+ {
+ struct usb_device *udev =
+ container_of(work, struct usb_device, autosuspend.work);
+-
++ sr_udev = udev;
+ usb_autopm_do_device(udev, 0);
+ }
+
+@@ -1282,7 +1286,7 @@ void usb_try_autosuspend_device(struct usb_device *udev)
+ dev_vdbg(&udev->dev, "%s: cnt %d\n",
+ __FUNCTION__, udev->pm_usage_cnt);
+ }
+-
++EXPORT_SYMBOL(usb_try_autosuspend_device);
+ /**
+ * usb_autoresume_device - immediately autoresume a USB device and its interfaces
+ * @udev: the usb_device to autoresume
+@@ -1511,6 +1515,7 @@ int usb_external_resume_device(struct usb_device *udev)
+ usb_try_autosuspend_device(udev);
+ return status;
+ }
++EXPORT_SYMBOL(usb_external_resume_device);
+
+ static int usb_suspend(struct device *dev, pm_message_t message)
+ {
+diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
+index 10e2993..f71d038 100644
+--- a/drivers/usb/gadget/Kconfig
++++ b/drivers/usb/gadget/Kconfig
+@@ -297,7 +297,7 @@ config USB_GADGET_S3C_HS
+
+ config USB_GADGET_S3C_OTGD_HS
+ boolean "S3C USB OTG controller"
+- depends on PLAT_S3C64XX && !(USB_S3C_OTG_HOST)
++ depends on PLAT_S3C64XX #&& !(USB_S3C_OTG_HOST) # XXX: mhfan
+ select USB_GADGET_SELECTED
+ select USB_GADGET_DUALSPEED
+ help
+@@ -307,7 +307,7 @@ config USB_GADGET_S3C_OTGD_HS
+
+ config USB_S3C
+ tristate
+- depends on USB_GADGET_S3C_FS && USB_GADGET_S3C_HS && USB_GADGET_S3C_OTGD_HS
++ depends on USB_GADGET_S3C_FS || USB_GADGET_S3C_HS || USB_GADGET_S3C_OTGD_HS
+ default USB_GADGET
+ select USB_GADGET_SELECTED
+
+@@ -401,7 +401,7 @@ comment "NOTE: S3C OTG device role enables the controller driver below"
+
+ config USB_S3C_OTGD_HS
+ tristate "S3C high speed(2.0, dual-speed) USB OTG device"
+- depends on USB_GADGET && USB_GADGET_S3C_OTGD_HS && !(USB_S3C_OTG_HOST)
++ depends on USB_GADGET && USB_GADGET_S3C_OTGD_HS
+ default y
+ help
+ Say "y" to link the driver statically, or "m" to build a
+diff --git a/drivers/usb/gadget/s3c-udc-otg-hs.c b/drivers/usb/gadget/s3c-udc-otg-hs.c
+index 7b95e2c..6408c21 100644
+--- a/drivers/usb/gadget/s3c-udc-otg-hs.c
++++ b/drivers/usb/gadget/s3c-udc-otg-hs.c
+@@ -128,7 +128,7 @@ static u32 ep_fifo_size2 = 1024;
+ static int reset_available = 1;
+
+ /* extern declarations in arch/arm/mach-s3c64xx*/
+-#define OTGD_PHY_CLK_VALUE (0x20) /* UTMI Interface, Oscillator */
++#define OTGD_PHY_CLK_VALUE (0x02) /* UTMI Interface, Oscillator */
+ extern void otg_phy_init(u32 otg_phy_clk);
+ extern void otg_phy_off(void);
+ extern struct usb_ctrlrequest usb_ctrl;
+diff --git a/drivers/usb/host/ohci-s3c2410.c b/drivers/usb/host/ohci-s3c2410.c
+index c214ef5..c3401db 100644
+--- a/drivers/usb/host/ohci-s3c2410.c
++++ b/drivers/usb/host/ohci-s3c2410.c
+@@ -35,8 +35,11 @@
+ static struct clk *clk;
+ static struct clk *usb_clk;
+
+-#undef USB_HOST_PORT2_EN
+-//#define USB_HOST_PORT2_EN
++#if defined (CONFIG_LCD_7)
++#undef USB_HOST_PORT2_EN
++#else
++#define USB_HOST_PORT2_EN
++#endif
+
+ #if defined(CONFIG_PLAT_S3C64XX)
+ #define S3C_USB_CLKSRC_EPLL 0
+@@ -45,9 +48,9 @@ extern void usb_host_clk_en(int usb_host_clksrc, u32 otg_phy_clk);
+
+ #ifdef USB_HOST_PORT2_EN
+ static struct clk *otg_clk;
+-#define OTGH_PHY_CLK_VALUE (0x60) /* Serial Interface, Oscillator */
++#define OTGH_PHY_CLK_VALUE (0x42) /* Serial Interface, Oscillator */
+ #else
+-#define OTGH_PHY_CLK_VALUE (0x20) /* UTMI Interface, Oscillator */
++#define OTGH_PHY_CLK_VALUE (0x02) /* UTMI Interface, Oscillator */
+ #endif
+ #endif
+
+@@ -580,12 +583,58 @@ static int ohci_hcd_s3c2410_drv_remove(struct platform_device *pdev)
+ return 0;
+ }
+
++#ifdef CONFIG_PM
++static int ohci_hcd_s3c2410_drv_suspend(struct platform_device *pdev, pm_message_t state)
++{
++ struct usb_hcd *hcd = platform_get_drvdata(pdev);
++ struct ohci_hcd *ohci = hcd_to_ohci(hcd);
++
++ if (time_before(jiffies, ohci->next_statechange))
++ msleep(5);
++ ohci->next_statechange = jiffies;
++
++ s3c2410_stop_hc(pdev);
++ hcd->state = HC_STATE_SUSPENDED;
++ pdev->dev.power.power_state = PMSG_SUSPEND;
++
++ return 0;
++}
++
++static int ohci_hcd_s3c2410_drv_resume(struct platform_device *pdev)
++{
++ struct usb_hcd *hcd = platform_get_drvdata(pdev);
++ struct ohci_hcd *ohci = hcd_to_ohci(hcd);
++
++ if (time_before(jiffies, ohci->next_statechange))
++ msleep(5);
++ ohci->next_statechange = jiffies;
++
++#if defined(CONFIG_PLAT_S3C64XX)
++ usb_host_clk_en(S3C_USB_CLKSRC_48M, OTGH_PHY_CLK_VALUE);
++#endif
++
++ s3c2410_usb_set_power(pdev->dev.platform_data, 1, 1);
++ s3c2410_usb_set_power(pdev->dev.platform_data, 2, 1);
++
++ s3c2410_start_hc(pdev, hcd);
++
++ ohci_hcd_init(hcd_to_ohci(hcd));
++
++ pdev->dev.power.power_state = PMSG_ON;
++ usb_hcd_resume_root_hub(hcd);
++
++ return 0;
++}
++#endif
++
+ static struct platform_driver ohci_hcd_s3c2410_driver = {
+ .probe = ohci_hcd_s3c2410_drv_probe,
+ .remove = ohci_hcd_s3c2410_drv_remove,
+ .shutdown = usb_hcd_platform_shutdown,
+- /*.suspend = ohci_hcd_s3c2410_drv_suspend, */
+- /*.resume = ohci_hcd_s3c2410_drv_resume, */
++#ifdef CONFIG_PM
++ .suspend = ohci_hcd_s3c2410_drv_suspend,
++ .resume = ohci_hcd_s3c2410_drv_resume,
++#endif
+ .driver = {
+ .owner = THIS_MODULE,
+ .name = "s3c2410-ohci",
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-hcdi-hcd.c b/drivers/usb/host/s3c-otg/s3c-otg-hcdi-hcd.c
+index cfb8590..efca605 100644
+--- a/drivers/usb/host/s3c-otg/s3c-otg-hcdi-hcd.c
++++ b/drivers/usb/host/s3c-otg/s3c-otg-hcdi-hcd.c
+@@ -29,9 +29,43 @@
+ ****************************************************************************/
+
+ #include "s3c-otg-hcdi-hcd.h"
++#include <linux/workqueue.h>
++#include <linux/delay.h>
++#include <linux/module.h>
+
+ static SPINLOCK_t otg_hcd_spin_lock = SPIN_LOCK_INIT;
+
++struct work_struct port_work;
++struct work_struct disconnect_work;
++int suspend_yet;
++extern struct usb_device *sr_udev;
++extern void usb_try_autosuspend_device(struct usb_device *udev);
++extern int usb_external_resume_device(struct usb_device *udev);
++extern int usb_autopm_do_device(struct usb_device *udev, int inc_usage_cnt);
++
++void do_port_work(struct work_struct* work)
++{
++ if(suspend_yet == 0)
++ return;
++ else
++ usb_external_resume_device(sr_udev);
++ return;
++}
++
++void do_disconnect_work(struct work_struct* work)
++{
++ if(suspend_yet == 1)
++ return;
++ else
++ usb_try_autosuspend_device(sr_udev);
++ return;
++}
++
++EXPORT_SYMBOL(suspend_yet);
++EXPORT_SYMBOL(do_port_work);
++EXPORT_SYMBOL(do_disconnect_work);
++EXPORT_SYMBOL(port_work);
++EXPORT_SYMBOL(disconnect_work);
+ /**
+ * otg_hcd_init_modules()
+ *
+@@ -44,6 +78,8 @@ int otg_hcd_init_modules(void)
+ {
+ u32 spin_lock_flag = 0;
+
++ INIT_WORK(&port_work, do_port_work);
++ INIT_WORK(&disconnect_work, do_disconnect_work);
+ otg_dbg(OTG_DBG_OTGHCDI_DRIVER, "OTGHCD_InitModuless \n");
+ spin_lock_irg_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
+
+@@ -60,7 +96,7 @@ int otg_hcd_init_modules(void)
+ * void otg_hcd_deinit_modules(void)
+ *
+ * @brief call other modules' de-init functions
+- *
++ * i
+ * @return PASS : If success \n
+ * FAIL : If fail \n
+ */
+@@ -165,6 +201,10 @@ void s3c6410_otghcd_stop(struct usb_hcd *hcd)
+ }
+ //-------------------------------------------------------------------------------
+
++void s3c6410_otghcd_resume(struct usb_hcd *usb_hcd_p)
++{
++}
++
+ /**
+ * void s3c6410_otghcd_shutdown(struct usb_hcd *hcd)
+ *
+@@ -174,8 +214,7 @@ void s3c6410_otghcd_stop(struct usb_hcd *hcd)
+ *
+ */
+ void s3c6410_otghcd_shutdown(struct usb_hcd *usb_hcd_p)
+-{
+-
++{
+ u32 spin_lock_flag = 0;
+
+ otg_dbg(OTG_DBG_OTGHCDI_HCD, "s3c6410_otghcd_shutdown \n");
+@@ -583,7 +622,6 @@ s3c6410_otghcd_hub_control
+ int s3c6410_otghcd_bus_suspend(struct usb_hcd *hcd)
+ {
+ u32 spin_lock_flag = 0;
+-
+ otg_dbg(OTG_DBG_OTGHCDI_HCD, "s3c6410_otghcd_bus_suspend \n");
+ spin_lock_irg_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
+ bus_suspend();
+@@ -603,9 +641,8 @@ int s3c6410_otghcd_bus_suspend(struct usb_hcd *hcd)
+ * @return USB_ERR_SUCCESS \n
+ */
+ int s3c6410_otghcd_bus_resume(struct usb_hcd *hcd)
+-{
++{
+ u32 spin_lock_flag = 0;
+-
+ otg_dbg(OTG_DBG_OTGHCDI_HCD, "s3c6410_otghcd_bus_resume \n");
+ spin_lock_irg_save_otg(&otg_hcd_spin_lock, spin_lock_flag);
+ if(bus_resume() != USB_ERR_SUCCESS)
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-hcdi-hcd.h b/drivers/usb/host/s3c-otg/s3c-otg-hcdi-hcd.h
+index 031ebf6..f670990 100644
+--- a/drivers/usb/host/s3c-otg/s3c-otg-hcdi-hcd.h
++++ b/drivers/usb/host/s3c-otg/s3c-otg-hcdi-hcd.h
+@@ -132,7 +132,7 @@ static const struct hc_driver s3c6410_otg_hc_driver = {
+ .hub_status_data = s3c6410_otghcd_hub_status_data,
+ .hub_control = s3c6410_otghcd_hub_control,
+ //.hub_irq_enable =
+- .bus_suspend = s3c6410_otghcd_bus_suspend,
++ //.bus_suspend = s3c6410_otghcd_bus_suspend,
+ .bus_resume = s3c6410_otghcd_bus_resume,
+ .start_port_reset = s3c6410_otghcd_start_port_reset,
+ };
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-isr.c b/drivers/usb/host/s3c-otg/s3c-otg-isr.c
+index b2946a5..ba2c359 100644
+--- a/drivers/usb/host/s3c-otg/s3c-otg-isr.c
++++ b/drivers/usb/host/s3c-otg/s3c-otg-isr.c
+@@ -28,6 +28,9 @@
+ ****************************************************************************/
+
+ #include "s3c-otg-isr.h"
++#include <linux/workqueue.h>
++#include <linux/delay.h>
++#include <linux/module.h>
+
+ /**
+ * void otg_handle_interrupt(void)
+@@ -44,6 +47,9 @@
+
+ extern port_flags_t port_flag;
+ extern bool ch_halt;
++extern int suspend_yet;
++extern struct work_struct port_work;
++extern struct work_struct disconnect_work;
+
+ __inline__ void otg_handle_interrupt(void)
+ {
+@@ -64,6 +70,8 @@ __inline__ void otg_handle_interrupt(void)
+ port_flag.b.port_connect_status_change = 1;
+ port_flag.b.port_connect_status = 0;
+ clearIntr.b.disconnect = 1;
++ if(suspend_yet == 0)
++ schedule_work(&disconnect_work);
+ }
+
+ if (gintsts.b.conidstschng)
+@@ -89,6 +97,8 @@ __inline__ void otg_handle_interrupt(void)
+ // Read Only
+ //otg_dbg(OTG_DBG_ISR, "Port Interrupt\n");
+ process_port_intr();
++ if(suspend_yet == 1)
++ schedule_work(&port_work);
+ }
+
+
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-oci.c b/drivers/usb/host/s3c-otg/s3c-otg-oci.c
+index 5e927c0..d054660 100644
+--- a/drivers/usb/host/s3c-otg/s3c-otg-oci.c
++++ b/drivers/usb/host/s3c-otg/s3c-otg-oci.c
+@@ -609,7 +609,7 @@ int oci_sys_init(void)
+ syscon_reg->HCLK_GATE |= (0x1<<20);
+ syscon_reg->OTHERS |= (0x1<<16);
+ otgphy_reg->OPHYPWR = 0x0;
+- otgphy_reg->OPHYCLK = 0x20;
++ otgphy_reg->OPHYCLK = 0x02;
+
+ otgphy_reg->ORSTCON = 0x1;
+ mdelay(80);
+diff --git a/drivers/usb/host/s3c-otg/s3c-otg-roothub.c b/drivers/usb/host/s3c-otg/s3c-otg-roothub.c
+index c38d115..e2fbf0f 100644
+--- a/drivers/usb/host/s3c-otg/s3c-otg-roothub.c
++++ b/drivers/usb/host/s3c-otg/s3c-otg-roothub.c
+@@ -30,7 +30,7 @@
+ #include "s3c-otg-roothub.h"
+
+ port_flags_t port_flag;
+-
++extern int suspend_yet;
+ /**
+ * int get_otg_port_status(const u8 port, char* status)
+ *
+@@ -393,6 +393,7 @@ __inline__ int root_hub_feature(const u8 port,
+ */
+ void bus_suspend(void)
+ {
++ suspend_yet = 1;
+ hprt_t hprt;
+ pcgcctl_t pcgcctl;
+
+@@ -402,14 +403,6 @@ void bus_suspend(void)
+ hprt.b.prtsusp = 1;
+ update_reg_32(HPRT, hprt.d32);
+
+- pcgcctl.b.pwrclmp = 1;
+- update_reg_32(PCGCCTL,pcgcctl.d32);
+- udelay(1);
+-
+- pcgcctl.b.rstpdwnmodule = 1;
+- update_reg_32(PCGCCTL,pcgcctl.d32);
+- udelay(1);
+-
+ pcgcctl.b.stoppclk = 1;
+ update_reg_32(PCGCCTL,pcgcctl.d32);
+ udelay(1);
+@@ -430,6 +423,7 @@ void bus_suspend(void)
+ */
+ int bus_resume(void)
+ {
++ suspend_yet = 0;
+ /*
+ hprt_t hprt;
+ pcgcctl_t pcgcctl;
+diff --git a/drivers/usb/misc/Kconfig b/drivers/usb/misc/Kconfig
+index 9c7eb61..055c299 100644
+--- a/drivers/usb/misc/Kconfig
++++ b/drivers/usb/misc/Kconfig
+@@ -4,6 +4,15 @@
+ comment "USB Miscellaneous drivers"
+ depends on USB
+
++config USB_JZ4755
++ tristate "JZ4755 USB Boot interface support"
++ depends on USB
++ ---help---
++ This driver loads firmware to JZ4755.
++
++ After firmware load the JZ4755 can run Mplayer.
++
++
+ config USB_EMI62
+ tristate "EMI 6|2m USB Audio interface support"
+ depends on USB
+diff --git a/drivers/usb/misc/Makefile b/drivers/usb/misc/Makefile
+index b68e6b7..85f3131 100644
+--- a/drivers/usb/misc/Makefile
++++ b/drivers/usb/misc/Makefile
+@@ -26,6 +26,7 @@ obj-$(CONFIG_USB_RIO500) += rio500.o
+ obj-$(CONFIG_USB_TEST) += usbtest.o
+ obj-$(CONFIG_USB_TRANCEVIBRATOR) += trancevibrator.o
+ obj-$(CONFIG_USB_USS720) += uss720.o
++obj-$(CONFIG_USB_JZ4755) += jz4755.o
+
+ obj-$(CONFIG_USB_SISUSBVGA) += sisusbvga/
+
+diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
+index bbbe1b9..73b969a 100644
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -83,43 +83,236 @@ static int option_send_setup(struct usb_serial_port *port);
+ #define OPTION_PRODUCT_VIPER 0x6600
+ #define OPTION_PRODUCT_VIPER_BUS 0x6601
+ #define OPTION_PRODUCT_GT_MAX_READY 0x6701
+-#define OPTION_PRODUCT_GT_MAX 0x6711
+ #define OPTION_PRODUCT_FUJI_MODEM_LIGHT 0x6721
+ #define OPTION_PRODUCT_FUJI_MODEM_GT 0x6741
+ #define OPTION_PRODUCT_FUJI_MODEM_EX 0x6761
+-#define OPTION_PRODUCT_FUJI_NETWORK_LIGHT 0x6731
+-#define OPTION_PRODUCT_FUJI_NETWORK_GT 0x6751
+-#define OPTION_PRODUCT_FUJI_NETWORK_EX 0x6771
+ #define OPTION_PRODUCT_KOI_MODEM 0x6800
+-#define OPTION_PRODUCT_KOI_NETWORK 0x6811
+ #define OPTION_PRODUCT_SCORPION_MODEM 0x6901
+-#define OPTION_PRODUCT_SCORPION_NETWORK 0x6911
+ #define OPTION_PRODUCT_ETNA_MODEM 0x7001
+-#define OPTION_PRODUCT_ETNA_NETWORK 0x7011
+ #define OPTION_PRODUCT_ETNA_MODEM_LITE 0x7021
+ #define OPTION_PRODUCT_ETNA_MODEM_GT 0x7041
+ #define OPTION_PRODUCT_ETNA_MODEM_EX 0x7061
+-#define OPTION_PRODUCT_ETNA_NETWORK_LITE 0x7031
+-#define OPTION_PRODUCT_ETNA_NETWORK_GT 0x7051
+-#define OPTION_PRODUCT_ETNA_NETWORK_EX 0x7071
+ #define OPTION_PRODUCT_ETNA_KOI_MODEM 0x7100
+-#define OPTION_PRODUCT_ETNA_KOI_NETWORK 0x7111
++#define OPTION_PRODUCT_GTM380_MODEM 0x7201
+
+ #define HUAWEI_VENDOR_ID 0x12D1
+ #define HUAWEI_PRODUCT_E600 0x1001
+ #define HUAWEI_PRODUCT_E220 0x1003
+ #define HUAWEI_PRODUCT_E220BIS 0x1004
++#define HUAWEI_PRODUCT_E1401 0x1401
++#define HUAWEI_PRODUCT_E1402 0x1402
++#define HUAWEI_PRODUCT_E1403 0x1403
++#define HUAWEI_PRODUCT_E1404 0x1404
++#define HUAWEI_PRODUCT_E1405 0x1405
++#define HUAWEI_PRODUCT_E1406 0x1406
++#define HUAWEI_PRODUCT_E1407 0x1407
++#define HUAWEI_PRODUCT_E1408 0x1408
++#define HUAWEI_PRODUCT_E1409 0x1409
++#define HUAWEI_PRODUCT_E140A 0x140A
++#define HUAWEI_PRODUCT_E140B 0x140B
++#define HUAWEI_PRODUCT_E140C 0x140C
++#define HUAWEI_PRODUCT_E140D 0x140D
++#define HUAWEI_PRODUCT_E140E 0x140E
++#define HUAWEI_PRODUCT_E140F 0x140F
++#define HUAWEI_PRODUCT_E1410 0x1410
++#define HUAWEI_PRODUCT_E1411 0x1411
++#define HUAWEI_PRODUCT_E1412 0x1412
++#define HUAWEI_PRODUCT_E1413 0x1413
++#define HUAWEI_PRODUCT_E1414 0x1414
++#define HUAWEI_PRODUCT_E1415 0x1415
++#define HUAWEI_PRODUCT_E1416 0x1416
++#define HUAWEI_PRODUCT_E1417 0x1417
++#define HUAWEI_PRODUCT_E1418 0x1418
++#define HUAWEI_PRODUCT_E1419 0x1419
++#define HUAWEI_PRODUCT_E141A 0x141A
++#define HUAWEI_PRODUCT_E141B 0x141B
++#define HUAWEI_PRODUCT_E141C 0x141C
++#define HUAWEI_PRODUCT_E141D 0x141D
++#define HUAWEI_PRODUCT_E141E 0x141E
++#define HUAWEI_PRODUCT_E141F 0x141F
++#define HUAWEI_PRODUCT_E1420 0x1420
++#define HUAWEI_PRODUCT_E1421 0x1421
++#define HUAWEI_PRODUCT_E1422 0x1422
++#define HUAWEI_PRODUCT_E1423 0x1423
++#define HUAWEI_PRODUCT_E1424 0x1424
++#define HUAWEI_PRODUCT_E1425 0x1425
++#define HUAWEI_PRODUCT_E1426 0x1426
++#define HUAWEI_PRODUCT_E1427 0x1427
++#define HUAWEI_PRODUCT_E1428 0x1428
++#define HUAWEI_PRODUCT_E1429 0x1429
++#define HUAWEI_PRODUCT_E142A 0x142A
++#define HUAWEI_PRODUCT_E142B 0x142B
++#define HUAWEI_PRODUCT_E142C 0x142C
++#define HUAWEI_PRODUCT_E142D 0x142D
++#define HUAWEI_PRODUCT_E142E 0x142E
++#define HUAWEI_PRODUCT_E142F 0x142F
++#define HUAWEI_PRODUCT_E1430 0x1430
++#define HUAWEI_PRODUCT_E1431 0x1431
++#define HUAWEI_PRODUCT_E1432 0x1432
++#define HUAWEI_PRODUCT_E1433 0x1433
++#define HUAWEI_PRODUCT_E1434 0x1434
++#define HUAWEI_PRODUCT_E1435 0x1435
++#define HUAWEI_PRODUCT_E1436 0x1436
++#define HUAWEI_PRODUCT_E1437 0x1437
++#define HUAWEI_PRODUCT_E1438 0x1438
++#define HUAWEI_PRODUCT_E1439 0x1439
++#define HUAWEI_PRODUCT_E143A 0x143A
++#define HUAWEI_PRODUCT_E143B 0x143B
++#define HUAWEI_PRODUCT_E143C 0x143C
++#define HUAWEI_PRODUCT_E143D 0x143D
++#define HUAWEI_PRODUCT_E143E 0x143E
++#define HUAWEI_PRODUCT_E143F 0x143F
++
++#define QUANTA_VENDOR_ID 0x0408
++#define QUANTA_PRODUCT_Q101 0xEA02
++#define QUANTA_PRODUCT_Q111 0xEA03
++#define QUANTA_PRODUCT_GLX 0xEA04
++#define QUANTA_PRODUCT_GKE 0xEA05
++#define QUANTA_PRODUCT_GLE 0xEA06
+
+ #define NOVATELWIRELESS_VENDOR_ID 0x1410
++
++/* YISO PRODUCTS */
++
++#define YISO_VENDOR_ID 0x0EAB
++#define YISO_PRODUCT_U893 0xC893
++
++/* MERLIN EVDO PRODUCTS */
++#define NOVATELWIRELESS_PRODUCT_V640 0x1100
++#define NOVATELWIRELESS_PRODUCT_V620 0x1110
++#define NOVATELWIRELESS_PRODUCT_V740 0x1120
++#define NOVATELWIRELESS_PRODUCT_V720 0x1130
++
++/* MERLIN HSDPA/HSPA PRODUCTS */
++#define NOVATELWIRELESS_PRODUCT_U730 0x1400
++#define NOVATELWIRELESS_PRODUCT_U740 0x1410
++#define NOVATELWIRELESS_PRODUCT_U870 0x1420
++#define NOVATELWIRELESS_PRODUCT_XU870 0x1430
++#define NOVATELWIRELESS_PRODUCT_X950D 0x1450
++
++/* EXPEDITE PRODUCTS */
++#define NOVATELWIRELESS_PRODUCT_EV620 0x2100
++#define NOVATELWIRELESS_PRODUCT_ES720 0x2110
++#define NOVATELWIRELESS_PRODUCT_E725 0x2120
++#define NOVATELWIRELESS_PRODUCT_ES620 0x2130
++#define NOVATELWIRELESS_PRODUCT_EU730 0x2400
++#define NOVATELWIRELESS_PRODUCT_EU740 0x2410
++#define NOVATELWIRELESS_PRODUCT_EU870D 0x2420
++
++/* OVATION PRODUCTS */
++#define NOVATELWIRELESS_PRODUCT_MC727 0x4100
++#define NOVATELWIRELESS_PRODUCT_MC950D 0x4400
++#define NOVATELWIRELESS_PRODUCT_U727 0x5010
++#define NOVATELWIRELESS_PRODUCT_MC760 0x6000
++
++/* FUTURE NOVATEL PRODUCTS */
++#define NOVATELWIRELESS_PRODUCT_EVDO_HIGHSPEED 0X6001
++#define NOVATELWIRELESS_PRODUCT_HSPA_FULLSPEED 0X7000
++#define NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED 0X7001
++#define NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_FULLSPEED 0X8000
++#define NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_HIGHSPEED 0X8001
++#define NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_FULLSPEED 0X9000
++#define NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_HIGHSPEED 0X9001
++#define NOVATELWIRELESS_PRODUCT_GLOBAL 0XA001
++
++/* AMOI PRODUCTS */
++#define AMOI_VENDOR_ID 0x1614
++#define AMOI_PRODUCT_H01 0x0800
++#define AMOI_PRODUCT_H01A 0x7002
++#define AMOI_PRODUCT_H02 0x0802
++
+ #define DELL_VENDOR_ID 0x413C
+
++/* Dell modems */
++#define DELL_PRODUCT_5700_MINICARD 0x8114
++#define DELL_PRODUCT_5500_MINICARD 0x8115
++#define DELL_PRODUCT_5505_MINICARD 0x8116
++#define DELL_PRODUCT_5700_EXPRESSCARD 0x8117
++#define DELL_PRODUCT_5510_EXPRESSCARD 0x8118
++
++#define DELL_PRODUCT_5700_MINICARD_SPRINT 0x8128
++#define DELL_PRODUCT_5700_MINICARD_TELUS 0x8129
++
++#define DELL_PRODUCT_5720_MINICARD_VZW 0x8133
++#define DELL_PRODUCT_5720_MINICARD_SPRINT 0x8134
++#define DELL_PRODUCT_5720_MINICARD_TELUS 0x8135
++#define DELL_PRODUCT_5520_MINICARD_CINGULAR 0x8136
++#define DELL_PRODUCT_5520_MINICARD_GENERIC_L 0x8137
++#define DELL_PRODUCT_5520_MINICARD_GENERIC_I 0x8138
++
++#define DELL_PRODUCT_5730_MINICARD_SPRINT 0x8180
++#define DELL_PRODUCT_5730_MINICARD_TELUS 0x8181
++#define DELL_PRODUCT_5730_MINICARD_VZW 0x8182
++
++#define KYOCERA_VENDOR_ID 0x0c88
++#define KYOCERA_PRODUCT_KPC650 0x17da
++#define KYOCERA_PRODUCT_KPC680 0x180a
++
+ #define ANYDATA_VENDOR_ID 0x16d5
++#define ANYDATA_PRODUCT_ADU_620UW 0x6202
+ #define ANYDATA_PRODUCT_ADU_E100A 0x6501
+ #define ANYDATA_PRODUCT_ADU_500A 0x6502
+
++#define AXESSTEL_VENDOR_ID 0x1726
++#define AXESSTEL_PRODUCT_MV110H 0x1000
++
++#define ONDA_VENDOR_ID 0x19d2
++#define ONDA_PRODUCT_MSA501HS 0x0001
++#define ONDA_PRODUCT_ET502HS 0x0002
++#define ONDA_PRODUCT_MT503HS 0x2000
++
+ #define BANDRICH_VENDOR_ID 0x1A8D
+ #define BANDRICH_PRODUCT_C100_1 0x1002
+ #define BANDRICH_PRODUCT_C100_2 0x1003
++#define BANDRICH_PRODUCT_1004 0x1004
++#define BANDRICH_PRODUCT_1005 0x1005
++#define BANDRICH_PRODUCT_1006 0x1006
++#define BANDRICH_PRODUCT_1007 0x1007
++#define BANDRICH_PRODUCT_1008 0x1008
++#define BANDRICH_PRODUCT_1009 0x1009
++#define BANDRICH_PRODUCT_100A 0x100a
++
++#define BANDRICH_PRODUCT_100B 0x100b
++#define BANDRICH_PRODUCT_100C 0x100c
++#define BANDRICH_PRODUCT_100D 0x100d
++#define BANDRICH_PRODUCT_100E 0x100e
++
++#define BANDRICH_PRODUCT_100F 0x100f
++#define BANDRICH_PRODUCT_1010 0x1010
++#define BANDRICH_PRODUCT_1011 0x1011
++#define BANDRICH_PRODUCT_1012 0x1012
++
++#define AMOI_VENDOR_ID 0x1614
++#define AMOI_PRODUCT_9508 0x0800
++
++#define QUALCOMM_VENDOR_ID 0x05C6
++
++#define MAXON_VENDOR_ID 0x16d8
++
++#define TELIT_VENDOR_ID 0x1bc7
++#define TELIT_PRODUCT_UC864E 0x1003
++
++/* ZTE PRODUCTS */
++#define ZTE_VENDOR_ID 0x19d2
++#define ZTE_PRODUCT_MF622 0x0001
++#define ZTE_PRODUCT_MU350 0x0003
++#define ZTE_PRODUCT_MF628 0x0015
++#define ZTE_PRODUCT_MF626 0x0031
++#define ZTE_PRODUCT_AC560 0x0073
++#define ZTE_PRODUCT_CDMA_TECH 0xfffe
++
++#define BENQ_VENDOR_ID 0x04a5
++#define BENQ_PRODUCT_H10 0x4068
++
++#define DLINK_VENDOR_ID 0x1186
++#define DLINK_PRODUCT_DWM_652 0x3e04
++
++#define DTT_VENDOR_ID 0x1ab7
++#define DTT_PRODUCT_AIRCARD_901 0x2000
++
++/* TOSHIBA PRODUCTS */
++#define TOSHIBA_VENDOR_ID 0x0930
++#define TOSHIBA_PRODUCT_HSDPA_MINICARD 0x1302
+
+ static struct usb_device_id option_ids[] = {
+ { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
+@@ -136,56 +329,213 @@ static struct usb_device_id option_ids[] = {
+ { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_VIPER) },
+ { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_VIPER_BUS) },
+ { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_GT_MAX_READY) },
+- { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_GT_MAX) },
+ { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_MODEM_LIGHT) },
+ { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_MODEM_GT) },
+ { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_MODEM_EX) },
+- { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_NETWORK_LIGHT) },
+- { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_NETWORK_GT) },
+- { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_NETWORK_EX) },
+ { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_KOI_MODEM) },
+- { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_KOI_NETWORK) },
+ { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_SCORPION_MODEM) },
+- { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_SCORPION_NETWORK) },
+ { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM) },
+- { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_NETWORK) },
+ { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_LITE) },
+ { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_GT) },
+ { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_EX) },
+- { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_NETWORK_LITE) },
+- { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_NETWORK_GT) },
+- { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_NETWORK_EX) },
+ { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_KOI_MODEM) },
+- { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_KOI_NETWORK) },
+- { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600) },
++ { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_GTM380_MODEM) },
++ { USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_Q101) },
++ { USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_Q111) },
++ { USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLX) },
++ { USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GKE) },
++ { USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600, 0xff, 0xff, 0xff) },
+ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220, 0xff, 0xff, 0xff) },
+ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220BIS, 0xff, 0xff, 0xff) },
+- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1100) }, /* Novatel Merlin XS620/S640 */
+- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1110) }, /* Novatel Merlin S620 */
+- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1120) }, /* Novatel Merlin EX720 */
+- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1130) }, /* Novatel Merlin S720 */
+- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1400) }, /* Novatel U730 */
+- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1410) }, /* Novatel U740 */
+- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1420) }, /* Novatel EU870 */
+- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1430) }, /* Novatel Merlin XU870 HSDPA/3G */
+- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x2100) }, /* Novatel EV620 CDMA/EV-DO */
+- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x2110) }, /* Novatel Merlin ES620 / Merlin ES720 / Ovation U720 */
+- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x2130) }, /* Novatel Merlin ES620 SM Bus */
+- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x2410) }, /* Novatel EU740 */
+- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x4100) }, /* Novatel U727 */
+- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x4400) }, /* Novatel MC950 */
+- { USB_DEVICE(DELL_VENDOR_ID, 0x8114) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite EV620 CDMA/EV-DO */
+- { USB_DEVICE(DELL_VENDOR_ID, 0x8115) }, /* Dell Wireless 5500 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */
+- { USB_DEVICE(DELL_VENDOR_ID, 0x8116) }, /* Dell Wireless 5505 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */
+- { USB_DEVICE(DELL_VENDOR_ID, 0x8117) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO ExpressCard == Novatel Merlin XV620 CDMA/EV-DO */
+- { USB_DEVICE(DELL_VENDOR_ID, 0x8118) }, /* Dell Wireless 5510 Mobile Broadband HSDPA ExpressCard == Novatel Merlin XU870 HSDPA/3G */
+- { USB_DEVICE(DELL_VENDOR_ID, 0x8128) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite E720 CDMA/EV-DO */
+- { USB_DEVICE(DELL_VENDOR_ID, 0x8136) }, /* Dell Wireless HSDPA 5520 == Novatel Expedite EU860D */
+- { USB_DEVICE(DELL_VENDOR_ID, 0x8137) }, /* Dell Wireless HSDPA 5520 */
+- { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1401, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1402, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1403, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1404, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1405, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1406, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1407, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1408, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1409, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140A, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140B, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140C, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140D, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140E, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140F, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1410, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1411, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1412, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1413, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1414, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1415, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1416, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1417, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1418, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1419, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141A, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141B, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141C, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141D, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141E, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141F, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1420, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1421, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1422, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1423, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1424, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1425, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1426, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1427, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1428, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1429, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142A, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142B, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142C, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142D, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142E, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142F, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1430, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1431, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1432, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1433, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1434, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1435, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1436, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1437, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1438, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1439, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143A, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143B, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143C, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143D, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143E, 0xff, 0xff, 0xff) },
++ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143F, 0xff, 0xff, 0xff) },
++ { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_9508) },
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, /* Novatel Merlin V640/XV620 */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V620) }, /* Novatel Merlin V620/S620 */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V740) }, /* Novatel Merlin EX720/V740/X720 */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V720) }, /* Novatel Merlin V720/S720/PC720 */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_U730) }, /* Novatel U730/U740 (VF version) */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_U740) }, /* Novatel U740 */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_U870) }, /* Novatel U870 */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_XU870) }, /* Novatel Merlin XU870 HSDPA/3G */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_X950D) }, /* Novatel X950D */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EV620) }, /* Novatel EV620/ES620 CDMA/EV-DO */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_ES720) }, /* Novatel ES620/ES720/U720/USB720 */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_E725) }, /* Novatel E725/E726 */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_ES620) }, /* Novatel Merlin ES620 SM Bus */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EU730) }, /* Novatel EU730 and Vodafone EU740 */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EU740) }, /* Novatel non-Vodafone EU740 */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EU870D) }, /* Novatel EU850D/EU860D/EU870D */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC950D) }, /* Novatel MC930D/MC950D */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC727) }, /* Novatel MC727/U727/USB727 */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_U727) }, /* Novatel MC727/U727/USB727 */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC760) }, /* Novatel MC760/U760/USB760 */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_FULLSPEED) }, /* Novatel HSPA product */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_FULLSPEED) }, /* Novatel EVDO Embedded product */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_FULLSPEED) }, /* Novatel HSPA Embedded product */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_HIGHSPEED) }, /* Novatel EVDO product */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED) }, /* Novatel HSPA product */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_HIGHSPEED) }, /* Novatel EVDO Embedded product */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_HIGHSPEED) }, /* Novatel HSPA Embedded product */
++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_GLOBAL) }, /* Novatel Global product */
++
++ { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H01) },
++ { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H01A) },
++ { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H02) },
++
++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5700_MINICARD) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite EV620 CDMA/EV-DO */
++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5500_MINICARD) }, /* Dell Wireless 5500 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */
++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5505_MINICARD) }, /* Dell Wireless 5505 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */
++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5700_EXPRESSCARD) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO ExpressCard == Novatel Merlin XV620 CDMA/EV-DO */
++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5510_EXPRESSCARD) }, /* Dell Wireless 5510 Mobile Broadband HSDPA ExpressCard == Novatel Merlin XU870 HSDPA/3G */
++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5700_MINICARD_SPRINT) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite E720 CDMA/EV-DO */
++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5700_MINICARD_TELUS) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite ET620 CDMA/EV-DO */
++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5720_MINICARD_VZW) }, /* Dell Wireless 5720 == Novatel EV620 CDMA/EV-DO */
++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5720_MINICARD_SPRINT) }, /* Dell Wireless 5720 == Novatel EV620 CDMA/EV-DO */
++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5720_MINICARD_TELUS) }, /* Dell Wireless 5720 == Novatel EV620 CDMA/EV-DO */
++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5520_MINICARD_CINGULAR) }, /* Dell Wireless HSDPA 5520 == Novatel Expedite EU860D */
++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5520_MINICARD_GENERIC_L) }, /* Dell Wireless HSDPA 5520 */
++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5520_MINICARD_GENERIC_I) }, /* Dell Wireless 5520 Voda I Mobile Broadband (3G HSDPA) Minicard */
++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5730_MINICARD_SPRINT) }, /* Dell Wireless 5730 Mobile Broadband EVDO/HSPA Mini-Card */
++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5730_MINICARD_TELUS) }, /* Dell Wireless 5730 Mobile Broadband EVDO/HSPA Mini-Card */
++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5730_MINICARD_VZW) }, /* Dell Wireless 5730 Mobile Broadband EVDO/HSPA Mini-Card */
++ { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) }, /* ADU-E100, ADU-310 */
+ { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) },
++ { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_620UW) },
++ { USB_DEVICE(AXESSTEL_VENDOR_ID, AXESSTEL_PRODUCT_MV110H) },
++ /*{ USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_MSA501HS) },
++ { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_ET502HS) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0003) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0004) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0005) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0006) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0007) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0008) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0009) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x000a) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x000b) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x000c) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x000d) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x000e) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x000f) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0010) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0011) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0012) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0013) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0014) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0015) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0016) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0017) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0018) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0019) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0020) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0021) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0022) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0023) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0024) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0025) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0026) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0027) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0028) },
++ { USB_DEVICE(ONDA_VENDOR_ID, 0x0029) },
++ { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_MT503HS) }, */
++ { USB_DEVICE(YISO_VENDOR_ID, YISO_PRODUCT_U893) },
+ { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_1) },
+ { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_2) },
++ { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1004) },
++ { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1005) },
++ { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1006) },
++ { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1007) },
++ { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1008) },
++ { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1009) },
++ { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_100A) },
++ { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_100B) },
++ { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_100C) },
++ { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_100D) },
++ { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_100E) },
++ { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_100F) },
++ { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1010) },
++ { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1011) },
++ { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1012) },
++ { USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC650) },
++ { USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC680) },
++ { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6000)}, /* ZTE AC8700 */
++ { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */
++ { USB_DEVICE(MAXON_VENDOR_ID, 0x6280) }, /* BP3-USB & BP3-EXT HSDPA */
++ { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) },
++ { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622) },
++ { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MU350) },
++ { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF626) },
++ { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_AC560) },
++ { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628) },
++ { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH) },
++ { USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) },
++ { USB_DEVICE(DLINK_VENDOR_ID, DLINK_PRODUCT_DWM_652) },
++ { USB_DEVICE(DTT_VENDOR_ID, DTT_PRODUCT_AIRCARD_901) },
++ { USB_DEVICE(0x1da5, 0x4515) }, /* BenQ H20 */
++ { USB_DEVICE(TOSHIBA_VENDOR_ID, TOSHIBA_PRODUCT_HSDPA_MINICARD ) }, /* Toshiba 3G HSDPA == Novatel Expedite EU870D MiniCard */
+ { } /* Terminating entry */
+ };
+ MODULE_DEVICE_TABLE(usb, option_ids);
+diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
+index 4212cd0..ae66ace 100644
+--- a/drivers/video/Kconfig
++++ b/drivers/video/Kconfig
+@@ -231,6 +231,16 @@ config FB_S3C_LTS222QV
+ ---help---
+ TBA
+
++config FB_S3C_A070VW04
++ bool "A070VW04"
++ ---help---
++ TBA
++
++config FB_S3C_TD043MTEX
++ bool "TD043MTEX"
++ ---help---
++ TBA
++
+ endchoice
+
+ config FB_S3C_BPP
+diff --git a/drivers/video/s3c/Makefile b/drivers/video/s3c/Makefile
+index 3f52d72..cb6c218 100644
+--- a/drivers/video/s3c/Makefile
++++ b/drivers/video/s3c/Makefile
+@@ -9,4 +9,6 @@ obj-$(CONFIG_PLAT_S5PC1XX) += s5pfb_fimd5x.o
+ obj-$(CONFIG_FB_S3C_LTS222QV) += s3cfb_lts222qv.o
+ obj-$(CONFIG_FB_S3C_LTV350QV) += s3cfb_ltv350qv.o
+ obj-$(CONFIG_FB_S3C_LTE480WV) += s3cfb_lte480wv.o
++obj-$(CONFIG_FB_S3C_A070VW04) += s3cfb_a070vw04.o
++obj-$(CONFIG_FB_S3C_TD043MTEX) += s3cfb_td043mtex.o
+
+diff --git a/drivers/video/s3c/colorbar.c b/drivers/video/s3c/colorbar.c
+new file mode 100644
+index 0000000..69e7400
+--- /dev/null
++++ b/drivers/video/s3c/colorbar.c
+@@ -0,0 +1,423 @@
++/****************************************************************
++ * $ID: colorbar.c Sun, 23 Dec 2007 21:01:11 +0800 mhfan $ *
++ * *
++ * Description: *
++ * *
++ * Maintainer: ·¶ÃÀ»Ô(MeiHui FAN) <mhfan@hhcn.com> *
++ * *
++ * Copyright (C) 2007~2008 HHTech *
++ * www.hhcn.com, www.hhcn.org *
++ * All rights reserved. *
++ * *
++ * This file is free software; *
++ * you are free to modify and/or redistribute it *
++ * under the terms of the GNU General Public Licence (GPL). *
++ ****************************************************************/
++
++
++static inline void memset32(uint32_t* ptr, uint32_t val, int32_t siz)
++{
++ for (siz >>= 4; 0 < siz--; ptr += 4) {
++ ptr[0] = val; ptr[1] = val; ptr[2] = val; ptr[3] = val;
++ }
++}
++
++
++#define UYVY_WHITE (0xEB80EB80)
++#define UYVY_YELLOW (0xD292D210)
++#define UYVY_CYAN (0xAA10AAA6)
++#define UYVY_GREEN (0x91229136)
++#define UYVY_MAGENTA (0x6ADE6ACA)
++#define UYVY_RED (0x51F0515A)
++#define UYVY_BLUE (0x296E29F0)
++#define UYVY_BLACK (0x10801080)
++
++
++#ifdef CONFIG_ITU656_OUTPUT
++#ifdef NTSC
++#define FIELD1_VBL_START (1)
++#define FIELD1_VBL_FINISH (20)
++#define FIELD2_VBL_START (264)
++#define FIELD2_VBL_FINISH (283)
++#define FIELD1_START_LINE (4)
++#define FIELD2_START_LINE (266)
++
++#define LINES_PER_VBL (20) // XXX: 19.5
++#define LINES_PER_FIELD (243)
++#define LINES_PER_FRAME (525)
++
++#define LINE_BLANK_BYTES (268)
++#define FRAMES_PER_SECOND (30)
++
++#elif defined(PAL)
++
++#define FIELD1_VBL_START (624)
++#define FIELD1_VBL_FINISH (23)
++#define FIELD2_VBL_START (311)
++#define FIELD2_VBL_FINISH (336)
++#define FIELD1_START_LINE (1)
++#define FIELD2_START_LINE (313)
++
++#define LINES_PER_VBL (24) // XXX: 24.5
++#define LINES_PER_FIELD (288)
++#define LINES_PER_FRAME (625)
++
++#define LINE_BLANK_BYTES (280)
++#define FRAMES_PER_SECOND (25)
++
++#else
++#error "Please define `NTSC' or `PAL'!"
++#endif//NTSC
++
++#ifdef ACTIVE_VIDEO_ONLY
++#undef LINES_PER_FRAME
++#undef FIELD1_VBL_START
++#undef FIELD2_VBL_START
++#undef FIELD1_VBL_FINISH
++#undef FIELD2_VBL_FINISH
++#undef FIELD1_START_LINE
++#undef FIELD2_START_LINE
++#undef LINE_BLANK_BYTES
++#undef LINES_PER_VBL
++
++#define FIELD1_VBL_START (0)
++#define FIELD2_VBL_START (0)
++#define FIELD1_VBL_FINISH (0)
++#define FIELD2_VBL_FINISH (0)
++#define FIELD1_START_LINE (1)
++#define FIELD2_START_LINE (289)
++#define LINE_BLANK_BYTES (0)
++#define LINES_PER_VBL (0)
++
++#define LINES_PER_FRAME (FRAME_ACTIVE_LINES)
++#define SAV_BYTES (0)
++#define EAV_BYTES (0)
++
++#else// XXX:
++#define SAV_BYTES (4)
++#define EAV_BYTES (4)
++#endif//ACTIVE_VIDEO_ONLY
++
++#define BITS_PER_PIXEL (16)
++#define PIXELS_PER_LINE (720)
++
++#define FRAME_ACTIVE_LINES (LINES_PER_FIELD << 1)
++#define LINE_ACTIVE_BYTES (PIXELS_PER_LINE << 1)
++#define BYTES_PER_PIXEL ((BITS_PER_PIXEL + 7) >> 3)
++#define LINE_CONTROL_BYTES (SAV_BYTES + LINE_BLANK_BYTES + EAV_BYTES)
++#define BYTES_PER_LINE (LINE_CONTROL_BYTES + (PIXELS_PER_LINE << 1))
++#define BYTES_PER_FIELD (BYTES_PER_LINE * LINES_PER_FIELD)
++#define BYTES_PER_FRAME (BYTES_PER_LINE * LINES_PER_FRAME)
++
++static inline unsigned* itu656_line(unsigned* ptr, int init)
++{
++/*
++ * Offsets for ITU656/CCIR601 frame line definition:
++ *
++ * |<--EAV-->|<----BLANKING---->|<--SAV-->|<--------ACTIVE FIELD-------->|
++ * 4 268/280 4 1440
++ */
++ short i;
++#ifdef ACTIVE_VIDEO_ONLY
++ short V = 0;
++#else
++ static short L = 0, V = 1, F = 1;
++
++ switch (++L) {
++ // F-digital field identification:
++ case FIELD1_START_LINE : F = 0; break;
++ case FIELD2_START_LINE : F = 1; break;
++ // V-digital field blanking:
++ case FIELD1_VBL_START : V = 1; break;
++ case FIELD1_VBL_FINISH : V = 0; break;
++ case FIELD2_VBL_START : V = 1; break;
++ case FIELD2_VBL_FINISH : V = 0; break;
++ // finished a frame:
++ case LINES_PER_FRAME : L = 0; break;
++ }
++
++ // End Active Video (EAV):
++ *ptr++ = F ? (V ? 0xF10000FF : 0xDA0000FF) :
++ (V ? 0xB60000FF : 0x9D0000FF);
++
++ // Blanking Code:
++ if (init) for (i = (LINE_BLANK_BYTES >> 2) + 1; --i; )
++ *ptr++ = UYVY_BLACK;
++ else ptr += (LINE_BLANK_BYTES >> 2);
++
++ // Start Active Video (SAV):
++ *ptr++ = F ? (V ? 0xEC0000FF : 0xC70000FF) :
++ (V ? 0xAB0000FF : 0x800000FF);
++#endif//ACTIVE_VIDEO_ONLY
++
++ if (init) {
++ if (V) { // Video Blanking Line:
++ for (i = (LINE_ACTIVE_BYTES >> 2) + 1; --i; )
++ *ptr++ = UYVY_BLACK;
++ } else { // Active Video Line Code:
++ for (i = ((LINE_ACTIVE_BYTES >> 2) >> 3) + 1; --i; )
++ *ptr++ = UYVY_WHITE;
++ for (i = ((LINE_ACTIVE_BYTES >> 2) >> 3) + 1; --i; )
++ *ptr++ = UYVY_YELLOW;
++ for (i = ((LINE_ACTIVE_BYTES >> 2) >> 3) + 1; --i; )
++ *ptr++ = UYVY_CYAN;
++ for (i = ((LINE_ACTIVE_BYTES >> 2) >> 3) + 1; --i; )
++ *ptr++ = UYVY_GREEN;
++ for (i = ((LINE_ACTIVE_BYTES >> 2) >> 3) + 1; --i; )
++ *ptr++ = UYVY_MAGENTA;
++ for (i = ((LINE_ACTIVE_BYTES >> 2) >> 3) + 1; --i; )
++ *ptr++ = UYVY_RED;
++ for (i = ((LINE_ACTIVE_BYTES >> 2) >> 3) + 1; --i; )
++ *ptr++ = UYVY_BLUE;
++ for (i = ((LINE_ACTIVE_BYTES >> 2) >> 3) + 1; --i; )
++ *ptr++ = UYVY_BLACK;
++ }
++ } else ptr += (LINE_ACTIVE_BYTES >> 2);
++
++ return ptr;
++}
++#endif//CONFIG_ITU656_OUTPUT
++
++#ifdef CONFIG_FB_COLORBAR
++void __init draw_colorbar(struct fb_info* fbi)
++{
++ u16 s, r, w, h;
++ u32* pixels = (u32*)fbi->screen_base;
++ struct fb_var_screeninfo* var = &fbi->var;
++
++#define HORIZON_LINES (2)
++#define CURSOR_PIXELS (32)
++
++ printk("var->nonstd:%d, var->bits_per_pixel:%d\n", var->nonstd, var->bits_per_pixel);
++ if(var->bits_per_pixel == 24) var->bits_per_pixel = 32;
++ if (var->nonstd/* == FB_PIXEL_YUV*/) {
++ for (s = (var->xres >> 1) + 1, h = HORIZON_LINES + 1; --h; )
++ for (w = s; --w; ) *pixels++ = UYVY_BLUE; // margin
++
++ s = (var->xres >> 4) + 1, r = ((var->xres - ((s - 1) << 4)) >> 1);
++ for (h = var->yres - (HORIZON_LINES << 1) + 1; --h; ) {
++ for (w = s; --w; ) *pixels++ = UYVY_RED;
++ for (w = s; --w; ) *pixels++ = UYVY_GREEN;
++ for (w = s; --w; ) *pixels++ = UYVY_BLUE;
++ for (w = s; --w; ) *pixels++ = UYVY_BLACK;
++ for (w = s; --w; ) *pixels++ = UYVY_WHITE;
++ for (w = s; --w; ) *pixels++ = UYVY_YELLOW;
++ for (w = s; --w; ) *pixels++ = UYVY_MAGENTA;
++ for (w = s; --w; ) *pixels++ = UYVY_CYAN;
++ pixels += r;
++ }
++
++ for (s = (var->xres >> 1) + 1, h = HORIZON_LINES + 1; --h; )
++ for (w = s; --w; ) *pixels++ = UYVY_YELLOW;// margin
++ } else
++
++ if (var->bits_per_pixel < 9) /*dtrace*/; else
++ if (var->bits_per_pixel < 17) {
++ for (s = (var->xres >> 1) + 1, h = HORIZON_LINES + 1; --h; )
++ for (w = s; --w; ) *pixels++ = 0x001f001f; // Blue margin
++
++ s = (var->xres >> 4) + 1, r = ((var->xres - ((s - 1) << 4)) >> 1);
++ for (h = var->yres - (HORIZON_LINES << 1) + 1; --h; ) {
++ for (w = s; --w; ) *pixels++ = 0xf800f800; // Red
++ for (w = s; --w; ) *pixels++ = 0x07e007e0; // Green
++ for (w = s; --w; ) *pixels++ = 0x001f001f; // Blue
++ for (w = s; --w; ) *pixels++ = 0x00000000; // Black
++ for (w = s; --w; ) *pixels++ = 0xffffffff; // White
++ for (w = s; --w; ) *pixels++ = 0xffe0ffe0; // R + G
++ for (w = s; --w; ) *pixels++ = 0x07ff07ff; // G + B
++ for (w = s; --w; ) *pixels++ = 0xf81ff81f; // B + R
++ pixels += r;
++ }
++
++ for (s = (var->xres >> 1) + 1, h = HORIZON_LINES + 1; --h; )
++ for (w = s; --w; ) *pixels++ = 0xffe0ffe0; // Yellow
++ } else
++
++ if (var->bits_per_pixel < 25) {
++ for (s = (var->xres >> 2) + 1, h = HORIZON_LINES + 1; --h; ) {
++ for (w = s; --w; ) *pixels++ = 0x00ff0000, // Blue margin
++ *pixels++ = 0x0000ff00, *pixels++ = 0xff0000ff;
++#ifndef CONFIG_DELTA_LCD
++continue;
++#endif
++ --h; // even line:
++ for (w = s; --w; ) *pixels++ = 0x0000ff00, // Green
++ *pixels++ = 0xff0000ff, *pixels++ = 0x00ff0000;
++ }
++
++ s = (var->xres >> 5) + 1;
++ r = (((var->xres - ((s - 1) << 5)) * 3) >> 2);
++ for (h = var->yres - (HORIZON_LINES << 1) + 1; --h; ) {
++#if 0
++ unsigned t = 0xff - h;
++ for (w = s; --w; ) *pixels++ = 0x01000001 * t,
++ *pixels++ = 0x00010000 * t, *pixels++ = 0x00000100 * t;
++ for (w = s; --w; ) *pixels++ = 0x00000100 * t,
++ *pixels++ = 0x01000001 * t, *pixels++ = 0x00010000 * t;
++ for (w = s; --w; ) *pixels++ = 0x00010000 * t,
++ *pixels++ = 0x00000100 * t, *pixels++ = 0x01000001 * t;
++ for (w = s; --w; ) *pixels++ = 0x00000000 * t,
++ *pixels++ = 0x00000000 * t, *pixels++ = 0x00000000 * t;
++ for (w = s; --w; ) *pixels++ = 0x01010101 * t,
++ *pixels++ = 0x01010101 * t, *pixels++ = 0x01010101 * t;
++ for (w = s; --w; ) *pixels++ = 0x01000101 * t,
++ *pixels++ = 0x01010001 * t, *pixels++ = 0x00010100 * t;
++ for (w = s; --w; ) *pixels++ = 0x00010100 * t,
++ *pixels++ = 0x01000101 * t, *pixels++ = 0x01010001 * t;
++ for (w = s; --w; ) *pixels++ = 0x01010001 * t,
++ *pixels++ = 0x00010100 * t, *pixels++ = 0x01000101 * t;
++#else
++ for (w = s; --w; ) *pixels++ = 0xff0000ff, // Red
++ *pixels++ = 0x00ff0000, *pixels++ = 0x0000ff00;
++ for (w = s; --w; ) *pixels++ = 0x0000ff00, // Green
++ *pixels++ = 0xff0000ff, *pixels++ = 0x00ff0000;
++ for (w = s; --w; ) *pixels++ = 0x00ff0000, // Blue
++ *pixels++ = 0x0000ff00, *pixels++ = 0xff0000ff;
++ for (w = s; --w; ) *pixels++ = 0x00000000, // Black
++ *pixels++ = 0x00000000, *pixels++ = 0x00000000;
++ for (w = s; --w; ) *pixels++ = 0xffffffff, // White
++ *pixels++ = 0xffffffff, *pixels++ = 0xffffffff;
++ for (w = s; --w; ) *pixels++ = 0xff00ffff, // R + G
++ *pixels++ = 0xffff00ff, *pixels++ = 0x00ffff00;
++ for (w = s; --w; ) *pixels++ = 0x00ffff00, // G + B
++ *pixels++ = 0xff00ffff, *pixels++ = 0xffff00ff;
++ for (w = s; --w; ) *pixels++ = 0xffff00ff, // B + R
++ *pixels++ = 0x00ffff00, *pixels++ = 0xff00ffff;
++#endif
++ pixels += r;
++#ifndef CONFIG_DELTA_LCD
++continue; // The colorbar sequence is according the first line.
++#endif
++ --h; // even line:
++
++#if 0
++ t = 0xff - h;
++ for (w = s; --w; ) *pixels++ = 0x00010000 * t,
++ *pixels++ = 0x00000100 * t, *pixels++ = 0x01000001 * t;
++ for (w = s; --w; ) *pixels++ = 0x01000001 * t,
++ *pixels++ = 0x00010000 * t, *pixels++ = 0x00000100 * t;
++ for (w = s; --w; ) *pixels++ = 0x00000100 * t,
++ *pixels++ = 0x01000001 * t, *pixels++ = 0x00010000 * t;
++ for (w = s; --w; ) *pixels++ = 0x00000000 * t,
++ *pixels++ = 0x00000000 * t, *pixels++ = 0x00000000 * t;
++ for (w = s; --w; ) *pixels++ = 0x01010101 * t,
++ *pixels++ = 0x01010101 * t, *pixels++ = 0x01010101 * t;
++ for (w = s; --w; ) *pixels++ = 0x01010001 * t,
++ *pixels++ = 0x00010100 * t, *pixels++ = 0x01000101 * t;
++ for (w = s; --w; ) *pixels++ = 0x01000101 * t,
++ *pixels++ = 0x01010001 * t, *pixels++ = 0x00010100 * t;
++ for (w = s; --w; ) *pixels++ = 0x00010100 * t,
++ *pixels++ = 0x01000101 * t, *pixels++ = 0x01010001 * t;
++#else
++ for (w = s; --w; ) *pixels++ = 0x00ff0000, // Blue
++ *pixels++ = 0x0000ff00, *pixels++ = 0xff0000ff;
++ for (w = s; --w; ) *pixels++ = 0xff0000ff, // Red
++ *pixels++ = 0x00ff0000, *pixels++ = 0x0000ff00;
++ for (w = s; --w; ) *pixels++ = 0x0000ff00, // Green
++ *pixels++ = 0xff0000ff, *pixels++ = 0x00ff0000;
++ for (w = s; --w; ) *pixels++ = 0x00000000, // Black
++ *pixels++ = 0x00000000, *pixels++ = 0x00000000;
++ for (w = s; --w; ) *pixels++ = 0xffffffff, // White
++ *pixels++ = 0xffffffff, *pixels++ = 0xffffffff;
++ for (w = s; --w; ) *pixels++ = 0xffff00ff, // B + R
++ *pixels++ = 0x00ffff00, *pixels++ = 0xff00ffff;
++ for (w = s; --w; ) *pixels++ = 0xff00ffff, // R + G
++ *pixels++ = 0xffff00ff, *pixels++ = 0x00ffff00;
++ for (w = s; --w; ) *pixels++ = 0x00ffff00, // G + B
++ *pixels++ = 0xff00ffff, *pixels++ = 0xffff00ff;
++#endif
++ pixels += r;
++ }
++
++ for (s = (var->xres >> 2) + 1, h = HORIZON_LINES + 1; --h; ) {
++ for (w = s; --w; ) *pixels++ = 0xff00ffff, // Yellow
++ *pixels++ = 0xffff00ff, *pixels++ = 0x00ffff00;
++#ifndef CONFIG_DELTA_LCD
++continue;
++#endif
++ --h; // even line:
++ for (w = s; --w; ) *pixels++ = 0xffff00ff, // B + R
++ *pixels++ = 0x00ffff00, *pixels++ = 0xff00ffff;
++ }
++
++#ifdef CONFIG_DELTA_LCD
++ /*
++ * For Delta LCD(e.g.: A025DL01), the RGB sequence is:
++ * R-G-B for odd line, and G-B-R for even line.
++ *
++ * For best visual effect, the recommented RGB sequence is:
++ * G-B-R for odd line, and B-R-G for even line.
++ */
++ pixels = (u32*)fbi->screen_base;
++ for (s = (var->xres * 3) >> 2, h = var->yres + 1; --h; ) { u32 lva;
++#if 0
++ for (w = s, lva = *pixels; --w; ) {
++ u32 nva = pixels[1]; // shift the line data left:
++ *pixels++ = (lva >> 8) | (nva << 24); lva = nva;
++ } *pixels++ = lva >> 8;
++#else
++ for (w = s + 1, lva = 0; --w; ) {
++ u32 nva =*pixels; // shift the line data right:
++ *pixels++ = (nva << 8) | (lva >> 24); lva = nva;
++ }
++#endif
++ }
++#endif//CONFIG_DELTA_LCD
++
++#if 0
++{ unsigned char* ptr = (unsigned char*)fbi->screen_base +
++ ((var->xres >> 1) + 10) * 3;
++ for (h = var->yres + 1; --h; ) {
++ if (h % 2) ptr[2] = 0xff, ptr[1] = 0x00, ptr[3] = 0x00;
++ else ptr[2] = 0x00, ptr[1] = 0x00, ptr[3] = 0xff;
++ ptr[37] = ptr[38] = ptr[39] = 0x00;
++ ptr += var->xres * 3;
++ }
++}
++#endif
++ } else if (var->bits_per_pixel < 33) {
++ for (s = (var->xres >> 0) + 1, h = HORIZON_LINES + 1; --h; )
++ for (w = s; --w; ) *pixels++ = 0x000000ff; // Blue margin
++
++ s = (var->xres >> 3) + 1, r = ((var->xres - ((s - 1) << 3)) >> 0);
++ for (h = var->yres - (HORIZON_LINES << 1) + 1; --h; ) {
++ for (w = s; --w; ) *pixels++ = 0x00ff0000; // Red
++ for (w = s; --w; ) *pixels++ = 0x0000ff00; // Green
++ for (w = s; --w; ) *pixels++ = 0x000000ff; // Blue
++ for (w = s; --w; ) *pixels++ = 0x00000000; // Black
++ for (w = s; --w; ) *pixels++ = 0xffffffff; // White
++ for (w = s; --w; ) *pixels++ = 0x00ffff00; // G + R
++ for (w = s; --w; ) *pixels++ = 0x0000ffff; // B + G
++ for (w = s; --w; ) *pixels++ = 0x00ff00ff; // R + B
++ pixels += r;
++ }
++
++ for (s = (var->xres >> 0) + 1, h = HORIZON_LINES + 1; --h; )
++ for (w = s; --w; ) *pixels++ = 0x00ffff00; // Yellow
++ } else {
++ unsigned size = fbi->var.yres * fbi->fix.line_length / 2;
++
++ memset32(pixels, 0x00000000, size); // Black/
++ pixels = (void*)((unsigned char*)pixels + size);
++
++ memset32(pixels, 0xffffffff, size); // White/
++ pixels = (void*)((unsigned char*)pixels + size);
++
++ //dtrace;
++ }
++
++ BUG_ON((char*)pixels != fbi->screen_base +
++ fbi->var.yres * fbi->fix.line_length);
++
++ // draw a white cursor on top-left corner
++ pixels = (u32*)fbi->screen_base;
++ for (s = CURSOR_PIXELS; --s; ) {
++ memset32(pixels, 0xffffffff, CURSOR_PIXELS);
++ pixels = (u32*)((unsigned char*)pixels + fbi->fix.line_length);
++ }
++}
++#else
++#define draw_colorbar(...)
++#endif//CONFIG_FB_COLORBAR
++
++// vim:sts=4:ts=8:
+diff --git a/drivers/video/s3c/s3cfb.c b/drivers/video/s3c/s3cfb.c
+index d9b8196..19ab25f 100644
+--- a/drivers/video/s3c/s3cfb.c
++++ b/drivers/video/s3c/s3cfb.c
+@@ -40,6 +40,9 @@
+
+ #include "s3cfb.h"
+
++//#define CONFIG_FB_COLORBAR 1
++#include "colorbar.c"
++
+ /*
+ * Globals
+ */
+@@ -50,7 +53,7 @@ s3c_vsync_info_t s3c_vsync_info;
+ s3c_vs_info_t s3c_vs_info;
+ #endif
+
+-static int backlight_level = S3C_FB_DEFAULT_BACKLIGHT_LEVEL;
++static int backlight_level = S3C_FB_MIN_BACKLIGHT_LEVEL;
+ static int backlight_power = 1;
+ static int lcd_power = 1;
+ static int s3c_palette_win;
+@@ -63,13 +66,14 @@ static void s3cfb_set_lcd_power(int to)
+ (s3c_fimd.set_lcd_power)(to);
+ }
+
+-static void s3cfb_set_backlight_power(int to)
++void s3cfb_set_backlight_power(int to)
+ {
+ backlight_power = to;
+
+ if (s3c_fimd.set_backlight_power)
+ (s3c_fimd.set_backlight_power)(to);
+ }
++EXPORT_SYMBOL(s3cfb_set_backlight_power);
+
+ static void s3cfb_set_backlight_level(int to)
+ {
+@@ -91,7 +95,7 @@ static int __init s3cfb_map_video_memory(s3c_fb_info_t *fbi)
+ /* prevent initial garbage on screen */
+ printk("Window[%d] - FB1: map_video_memory: clear %p:%08x\n",
+ fbi->win_id, fbi->map_cpu_f1, fbi->map_size_f1);
+- memset(fbi->map_cpu_f1, 0xf0, fbi->map_size_f1);
++ memset(fbi->map_cpu_f1, 0xff, fbi->map_size_f1);
+
+ fbi->screen_dma_f1 = fbi->map_dma_f1;
+ fbi->fb.screen_base = fbi->map_cpu_f1;
+@@ -198,7 +202,8 @@ static int s3cfb_set_par(struct fb_info *info)
+ struct fb_var_screeninfo *var = &info->var;
+ s3c_fb_info_t *fbi = (s3c_fb_info_t *) info;
+
+- if (var->bits_per_pixel == 16 || var->bits_per_pixel == 24)
++ if (var->bits_per_pixel == 16 || var->bits_per_pixel == 24
++ || var->bits_per_pixel == 32)
+ fbi->fb.fix.visual = FB_VISUAL_TRUECOLOR;
+ else
+ fbi->fb.fix.visual = FB_VISUAL_PSEUDOCOLOR;
+@@ -264,16 +269,16 @@ static int s3cfb_blank(int blank_mode, struct fb_info *info)
+
+ switch (blank_mode) {
+ case VESA_NO_BLANKING: /* lcd on, backlight on */
+- s3cfb_set_lcd_power(1);
+- s3cfb_set_backlight_power(1);
++ if(!backlight_power)
++ s3cfb_set_backlight_power(1);
+ break;
+
+ case VESA_VSYNC_SUSPEND: /* lcd on, backlight off */
+ case VESA_HSYNC_SUSPEND:
+- s3cfb_set_lcd_power(1);
+ s3cfb_set_backlight_power(0);
+ break;
+
++ case VESA_POWERDOWN + 1: // XXX: compatible with X
+ case VESA_POWERDOWN: /* lcd and backlight off */
+ s3cfb_set_lcd_power(0);
+ s3cfb_set_backlight_power(0);
+@@ -472,6 +477,17 @@ static int s3cfb_set_bpp(s3c_fb_info_t *fbi, int bpp)
+ return 0;
+ }
+
++void s3cfb_clear_lcd(int flag)
++{
++ if(flag) // clear the LCD screen to black
++ memset((s3c_fb_info[0].fb).screen_base, 0x0,
++ (s3c_fb_info[0].fb).var.bits_per_pixel / 8 * (s3c_fb_info[0].fb).var.xres * (s3c_fb_info[0].fb).var.yres);
++ else // clear the LCD screen to white
++ memset((s3c_fb_info[0].fb).screen_base, 0xff,
++ (s3c_fb_info[0].fb).var.bits_per_pixel / 8 * (s3c_fb_info[0].fb).var.xres * (s3c_fb_info[0].fb).var.yres);
++}
++EXPORT_SYMBOL(s3cfb_clear_lcd);
++
+ void s3cfb_stop_lcd(void)
+ {
+ unsigned long flags;
+@@ -494,8 +510,11 @@ void s3cfb_start_lcd(void)
+
+ local_irq_save(flags);
+
++ do {
+ tmp = readl(S3C_VIDCON0);
+ writel(tmp | S3C_VIDCON0_ENVID_ENABLE | S3C_VIDCON0_ENVID_F_ENABLE, S3C_VIDCON0);
++ tmp = readl(S3C_VIDCON0) & (S3C_VIDCON0_ENVID_ENABLE | S3C_VIDCON0_ENVID_F_ENABLE);
++ } while(tmp != (S3C_VIDCON0_ENVID_ENABLE | S3C_VIDCON0_ENVID_F_ENABLE));
+
+ local_irq_restore(flags);
+ }
+@@ -664,15 +683,15 @@ static int s3cfb_sysfs_store_backlight_level(struct device *dev, struct device_a
+ return len;
+ }
+
+-static DEVICE_ATTR(lcd_power, 0644,
++static DEVICE_ATTR(lcd_power, 0666,
+ s3cfb_sysfs_show_lcd_power,
+ s3cfb_sysfs_store_lcd_power);
+
+-static DEVICE_ATTR(backlight_power, 0644,
++static DEVICE_ATTR(backlight_power, 0666,
+ s3cfb_sysfs_show_backlight_power,
+ s3cfb_sysfs_store_backlight_power);
+
+-static DEVICE_ATTR(backlight_level, 0644,
++static DEVICE_ATTR(backlight_level, 0666,
+ s3cfb_sysfs_show_backlight_level,
+ s3cfb_sysfs_store_backlight_level);
+
+@@ -686,7 +705,7 @@ struct fb_ops s3cfb_ops = {
+ .fb_fillrect = cfb_fillrect,
+ .fb_copyarea = cfb_copyarea,
+ .fb_imageblit = cfb_imageblit,
+- .fb_cursor = soft_cursor,
++ //.fb_cursor = soft_cursor,
+ .fb_ioctl = s3cfb_ioctl,
+ };
+
+@@ -772,7 +791,6 @@ static int __init s3cfb_probe(struct platform_device *pdev)
+ struct resource *res;
+ struct fb_info *fbinfo;
+ s3c_fb_info_t *info;
+-
+ char driver_name[] = "s3cfb";
+ int index = 0, ret, size;
+
+@@ -812,9 +830,6 @@ static int __init s3cfb_probe(struct platform_device *pdev)
+ }
+
+ s3cfb_pre_init();
+- s3cfb_set_backlight_power(1);
+- s3cfb_set_lcd_power(1);
+- s3cfb_set_backlight_level(S3C_FB_DEFAULT_BACKLIGHT_LEVEL);
+
+ #if defined(CONFIG_PLAT_S5PC1XX)
+ info->clk = clk_get(NULL, "hclkd1");
+@@ -906,6 +921,10 @@ static int __init s3cfb_probe(struct platform_device *pdev)
+ if (ret < 0)
+ printk(KERN_WARNING "s3cfb: failed to add entries\n");
+
++ s3cfb_set_par(&(s3c_fb_info[0].fb));
++ mdelay(10);
++ //draw_colorbar(&(s3c_fb_info[0].fb));
++
+ return 0;
+
+ free_video_memory:
+diff --git a/drivers/video/s3c/s3cfb.h b/drivers/video/s3c/s3cfb.h
+index cf66ec4..fbff811 100644
+--- a/drivers/video/s3c/s3cfb.h
++++ b/drivers/video/s3c/s3cfb.h
+@@ -65,7 +65,9 @@ extern int s3c6410_timer_setup (int channel, int usec, unsigned long g_tcnt, uns
+ #define S3C_FB_PALETTE_BUFF_CLEAR (0x80000000) /* entry is clear/invalid */
+ #define S3C_FB_COLOR_KEY_DIR_BG 0
+ #define S3C_FB_COLOR_KEY_DIR_FG 1
+-#define S3C_FB_DEFAULT_BACKLIGHT_LEVEL 2
++#define S3C_FB_MIN_BACKLIGHT_LEVEL 0
++#define S3C_FB_MAX_BACKLIGHT_LEVEL 100
++#define S3C_FB_DEFAULT_BACKLIGHT_LEVEL 50
+ #define S3C_FB_MAX_DISPLAY_OFFSET 200
+ #define S3C_FB_DEFAULT_DISPLAY_OFFSET 100
+ #define S3C_FB_MAX_ALPHA_LEVEL 0xf
+@@ -476,6 +478,7 @@ extern int s3cfb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg
+ extern void s3cfb_activate_var(s3c_fb_info_t *fbi, struct fb_var_screeninfo *var);
+ extern void s3cfb_set_fb_addr(s3c_fb_info_t *fbi);
+ extern void s3cfb_init_hw(void);
++extern void lcd_init_hw(void);
+ extern irqreturn_t s3cfb_irq(int irqno, void *param);
+ extern int s3cfb_init_registers(s3c_fb_info_t *fbi);
+ extern int s3cfb_set_win_position(s3c_fb_info_t *fbi, int left_x, int top_y, int width, int height);
+diff --git a/drivers/video/s3c/s3cfb_a070vw04.c b/drivers/video/s3c/s3cfb_a070vw04.c
+new file mode 100644
+index 0000000..58d2af1
+--- /dev/null
++++ b/drivers/video/s3c/s3cfb_a070vw04.c
+@@ -0,0 +1,263 @@
++/*
++ * drivers/video/s3c/s3cfb_a070vw04.c
++ *
++ * $Id: s3cfb_lte480wv.c,v 1.12 2008/06/05 02:13:24 jsgood Exp $
++ *
++ * Copyright (C) 2008 Jinsung Yang <jsgood.yang@samsung.com>
++ *
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file COPYING in the main directory of this archive for
++ * more details.
++ *
++ * S3C Frame Buffer Driver
++ * based on skeletonfb.c, sa1100fb.h, s3c2410fb.c
++ */
++
++#include <linux/wait.h>
++#include <linux/fb.h>
++#include <linux/delay.h>
++#include <linux/platform_device.h>
++
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-lcd.h>
++
++#include "s3cfb.h"
++#include <asm-arm/arch-s3c2410/gpio.h>
++
++#define S3C_FB_HFP 3 /* front porch */
++#define S3C_FB_HSW 10 /* Hsync width */
++#define S3C_FB_HBP 5 /* Back porch */
++
++#define S3C_FB_VFP 1 /* front porch */
++#define S3C_FB_VSW 3 /* Vsync width */
++#define S3C_FB_VBP 20 /* Back porch */
++
++#define S3C_FB_HRES 800 /* horizon pixel x resolition */
++#define S3C_FB_VRES 480 /* line cnt y resolution */
++
++#define S3C_FB_HRES_VIRTUAL 800 /* horizon pixel x resolition */
++#define S3C_FB_VRES_VIRTUAL 480 /* line cnt y resolution */
++
++#define S3C_FB_HRES_OSD 800 /* horizon pixel x resolition */
++#define S3C_FB_VRES_OSD 480 /* line cnt y resolution */
++
++#define S3C_FB_VFRAME_FREQ 60 /* frame rate freq */
++
++#define S3C_FB_PIXEL_CLOCK (S3C_FB_VFRAME_FREQ * (S3C_FB_HFP + S3C_FB_HSW + S3C_FB_HBP + S3C_FB_HRES) * (S3C_FB_VFP + S3C_FB_VSW + S3C_FB_VBP + S3C_FB_VRES))
++
++#define LCD_SCEN S3C_GPM0
++#define LCD_SCL S3C_GPM1
++#define LCD_SDA S3C_GPM2
++
++static void set_lcd_power(int val)
++{
++ if(val > 0) {
++ /* Display On */
++ s3cfb_init_hw();
++ s3cfb_start_lcd();
++ } else {
++ /* Direct Off */
++ s3cfb_stop_lcd();
++ }
++}
++
++#define WAITTIME (10 * HZ / 1000) // 10ms
++static int old_display_brightness = S3C_FB_MIN_BACKLIGHT_LEVEL;
++
++static void __set_brightness(int val)
++{
++ int channel = 1; // must use channel-1
++ int usec = 0; // don't care value
++ unsigned long tcnt=1000;
++ unsigned long tcmp=0;
++
++ if(val == S3C_FB_MAX_BACKLIGHT_LEVEL)
++ gpio_direction_output(S3C_GPF15, 1);
++ else if(val == S3C_FB_MIN_BACKLIGHT_LEVEL)
++ gpio_direction_output(S3C_GPF15, 0);
++ else {
++ tcmp = val * 10;
++#if defined(CONFIG_S3C6410_PWM) && defined(CONFIG_PWM)
++ s3c6410_timer_setup (channel, usec, tcnt, tcmp);
++#endif
++ }
++}
++
++static void set_brightness(int val)
++{
++ int old_val = old_display_brightness;
++
++ if(val < 0) val = 0;
++ if(val > S3C_FB_MAX_BACKLIGHT_LEVEL) val = S3C_FB_MAX_BACKLIGHT_LEVEL;
++
++ if(val > old_val) {
++ while((++old_val) < val) {
++ __set_brightness(old_val);
++ set_current_state(TASK_INTERRUPTIBLE);
++ schedule_timeout(WAITTIME);
++ }
++ } else {
++ while((--old_val) > val) {
++ __set_brightness(old_val);
++ set_current_state(TASK_INTERRUPTIBLE);
++ schedule_timeout(WAITTIME);
++ }
++ }
++
++ __set_brightness(val);
++ old_display_brightness = val;
++}
++
++static void set_backlight_power(int val)
++{
++ if(val > 0)
++ __set_brightness(old_display_brightness);
++ else
++ __set_brightness(S3C_FB_MIN_BACKLIGHT_LEVEL);
++}
++
++static void s3cfb_set_fimd_info(void)
++{
++ s3c_fimd.vidcon1 = S3C_VIDCON1_IHSYNC_INVERT | S3C_VIDCON1_IVSYNC_INVERT | S3C_VIDCON1_IVDEN_NORMAL | S3C_VIDCON1_IVCLK_RISE_EDGE;
++ s3c_fimd.vidtcon0 = S3C_VIDTCON0_VBPD(S3C_FB_VBP - 1) | S3C_VIDTCON0_VFPD(S3C_FB_VFP - 1) | S3C_VIDTCON0_VSPW(S3C_FB_VSW - 1);
++ s3c_fimd.vidtcon1 = S3C_VIDTCON1_HBPD(S3C_FB_HBP - 1) | S3C_VIDTCON1_HFPD(S3C_FB_HFP - 1) | S3C_VIDTCON1_HSPW(S3C_FB_HSW - 1);
++ s3c_fimd.vidtcon2 = S3C_VIDTCON2_LINEVAL(S3C_FB_VRES - 1) | S3C_VIDTCON2_HOZVAL(S3C_FB_HRES - 1);
++
++ s3c_fimd.vidosd0a = S3C_VIDOSDxA_OSD_LTX_F(0) | S3C_VIDOSDxA_OSD_LTY_F(0);
++ s3c_fimd.vidosd0b = S3C_VIDOSDxB_OSD_RBX_F(S3C_FB_HRES - 1) | S3C_VIDOSDxB_OSD_RBY_F(S3C_FB_VRES - 1);
++
++ s3c_fimd.vidosd1a = S3C_VIDOSDxA_OSD_LTX_F(0) | S3C_VIDOSDxA_OSD_LTY_F(0);
++ s3c_fimd.vidosd1b = S3C_VIDOSDxB_OSD_RBX_F(S3C_FB_HRES_OSD - 1) | S3C_VIDOSDxB_OSD_RBY_F(S3C_FB_VRES_OSD - 1);
++
++ s3c_fimd.width = S3C_FB_HRES;
++ s3c_fimd.height = S3C_FB_VRES;
++ s3c_fimd.xres = S3C_FB_HRES;
++ s3c_fimd.yres = S3C_FB_VRES;
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++ s3c_fimd.xres_virtual = S3C_FB_HRES_VIRTUAL;
++ s3c_fimd.yres_virtual = S3C_FB_VRES_VIRTUAL;
++#else
++ s3c_fimd.xres_virtual = S3C_FB_HRES;
++ s3c_fimd.yres_virtual = S3C_FB_VRES;
++#endif
++
++ s3c_fimd.osd_width = S3C_FB_HRES_OSD;
++ s3c_fimd.osd_height = S3C_FB_VRES_OSD;
++ s3c_fimd.osd_xres = S3C_FB_HRES_OSD;
++ s3c_fimd.osd_yres = S3C_FB_VRES_OSD;
++
++ s3c_fimd.osd_xres_virtual = S3C_FB_HRES_OSD;
++ s3c_fimd.osd_yres_virtual = S3C_FB_VRES_OSD;
++
++ s3c_fimd.pixclock = S3C_FB_PIXEL_CLOCK;
++
++ s3c_fimd.hsync_len = S3C_FB_HSW;
++ s3c_fimd.vsync_len = S3C_FB_VSW;
++ s3c_fimd.left_margin = S3C_FB_HFP;
++ s3c_fimd.upper_margin = S3C_FB_VFP;
++ s3c_fimd.right_margin = S3C_FB_HBP;
++ s3c_fimd.lower_margin = S3C_FB_VBP;
++
++ s3c_fimd.set_lcd_power = set_lcd_power;
++ s3c_fimd.set_backlight_power = set_backlight_power;
++ s3c_fimd.set_brightness = set_brightness;
++ s3c_fimd.backlight_min = S3C_FB_MIN_BACKLIGHT_LEVEL;
++ s3c_fimd.backlight_max = S3C_FB_MAX_BACKLIGHT_LEVEL;
++}
++
++void s3cfb_init_hw(void)
++{
++ printk(KERN_INFO "LCD TYPE :: A070VW04 will be initialized\n");
++
++ s3cfb_set_fimd_info();
++ s3cfb_set_gpio();
++ lcd_init_hw();
++ set_brightness(old_display_brightness);
++}
++
++static void us_delay(unsigned int dly)
++{
++ udelay(dly);
++}
++
++static void write_bit(unsigned char val)
++{
++ gpio_set_value(S3C_GPM1, 0); // SCL = 0
++ gpio_set_value(S3C_GPM2, val); // SDA = val
++ us_delay(1000);
++ gpio_set_value(S3C_GPM1, 1); // SCL = 1
++ us_delay(1000);
++}
++
++static unsigned int read_bit()
++{
++ gpio_set_value(S3C_GPM1, 0); // SCL = 0
++ unsigned int data = s3c2410_gpio_getpin(S3C_GPM2); // SDA
++ us_delay(1000);
++ gpio_set_value(S3C_GPM1, 1); // SCL = 1
++ us_delay(1000);
++ return data;
++}
++
++static void write_reg(unsigned char addr, unsigned short data)
++{
++ unsigned char i;
++ gpio_set_value(LCD_SCEN, 0); // CSB pin of LCD = 0
++ /* transfer the register address bits (4 bit) */
++ for(i=0; i<4; i++) {
++ if(addr & 0x8)
++ write_bit(1);
++ else
++ write_bit(0);
++ addr <<= 1;
++ }
++ /* transfer the write mode bit (1 bit) */
++ write_bit(0);
++ /* transfer the data bits (11 bits) */
++ write_bit(0);
++ for(i=0; i<10; i++) {
++ if(data & 0x200)
++ write_bit(1);
++ else
++ write_bit(0);
++ data <<= 1;
++ }
++ gpio_set_value(LCD_SCEN, 1); // CSB pin of LCD = 1
++}
++
++static unsigned int read_reg(unsigned char addr)
++{
++ unsigned char i;
++ unsigned int data = 0x0;
++ gpio_set_value(LCD_SCEN, 0); // CSB pin of LCD = 0
++ /* transfer the register address bits (4 bit) */
++ for(i=0; i<4; i++) {
++ if(addr & 0x8)
++ write_bit(1);
++ else
++ write_bit(0);
++ addr <<= 1;
++ }
++ /* transfer the read or read mode (1 bit) */
++ write_bit(1);
++ /* transfer the data (11 bits) */
++ write_bit(0);
++ for(i=0; i<10; i++) {
++ data |= (read_bit() << i);
++ }
++ gpio_set_value(LCD_SCEN, 1); // CSB pin of LCD = 1
++
++ return data;
++}
++
++void lcd_init_hw(void)
++{
++ gpio_direction_output(LCD_SCEN, 1); // GPM0 <---> CSB pin of LCD
++ gpio_direction_output(S3C_GPM1, 1); // GPM1 <---> SCL pin of LCD
++ gpio_direction_output(S3C_GPM2, 1); // GPM2 <---> SDA pin of LCD
++ write_reg(0x0, 0x2d3);
++ //write_reg(0x1, 0x181);
++ write_reg(0x4, 0x19f);
++}
++
+diff --git a/drivers/video/s3c/s3cfb_fimd4x.c b/drivers/video/s3c/s3cfb_fimd4x.c
+index c2ff1e8..79d857b 100644
+--- a/drivers/video/s3c/s3cfb_fimd4x.c
++++ b/drivers/video/s3c/s3cfb_fimd4x.c
+@@ -126,7 +126,6 @@ s3c_fimd_info_t s3c_fimd = {
+ .cmap_static = 1,
+ };
+
+-#if defined(CONFIG_S3C6410_PWM)
+ void s3cfb_set_brightness(int val)
+ {
+ int channel = 1; /* must use channel-1 */
+@@ -143,9 +142,11 @@ void s3cfb_set_brightness(int val)
+ s3c_display_brightness = val;
+ tcmp = val * 5;
+
++#if defined(CONFIG_S3C6410_PWM) && defined(CONFIG_PWM)
+ s3c6410_timer_setup (channel, usec, tcnt, tcmp);
+-}
+ #endif
++}
++EXPORT_SYMBOL(s3cfb_set_brightness);
+
+ #if defined(CONFIG_FB_S3C_DOUBLE_BUFFERING)
+
+@@ -554,6 +555,9 @@ void s3cfb_activate_var(s3c_fb_info_t *fbi, struct fb_var_screeninfo *var)
+ break;
+ }
+
++ s3c_fimd.vidtcon1 &= ~S3C_VIDTCON1_HBPD(0xff);
++ s3c_fimd.vidtcon1 |= S3C_VIDTCON1_HBPD(var->right_margin);
++
+ /* write new registers */
+ writel(s3c_fimd.wincon0, S3C_WINCON0);
+ writel(s3c_fimd.wincon1, S3C_WINCON1);
+@@ -561,6 +565,7 @@ void s3cfb_activate_var(s3c_fb_info_t *fbi, struct fb_var_screeninfo *var)
+ writel(s3c_fimd.wincon3, S3C_WINCON3);
+ writel(s3c_fimd.wincon4, S3C_WINCON4);
+ writel(s3c_fimd.wpalcon, S3C_WPALCON);
++ writel(s3c_fimd.vidtcon1, S3C_VIDTCON1);
+ writel(s3c_fimd.wincon0 | S3C_WINCONx_ENWIN_F_ENABLE, S3C_WINCON0);
+ writel(s3c_fimd.vidcon0 | S3C_VIDCON0_ENVID_ENABLE | S3C_VIDCON0_ENVID_F_ENABLE, S3C_VIDCON0);
+ }
+@@ -779,9 +784,7 @@ int s3cfb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
+ struct fb_var_screeninfo *var= &fbi->fb.var;
+ unsigned int crt, alpha_level, alpha_mode;
+
+-#if defined(CONFIG_S3C6410_PWM)
+ int brightness;
+-#endif
+
+ #if defined(CONFIG_FB_S3C_DOUBLE_BUFFERING)
+ unsigned int f_num_val;
+@@ -971,14 +974,12 @@ int s3cfb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
+ return -EFAULT;
+ break;
+
+-#if defined(CONFIG_S3C6410_PWM)
+ case S3C_FB_SET_BRIGHTNESS:
+ if (copy_from_user(&brightness, (int *) arg, sizeof(int)))
+ return -EFAULT;
+
+ s3cfb_set_brightness(brightness);
+ break;
+-#endif
+
+ #if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
+ case S3C_FB_VS_START:
+@@ -1053,6 +1054,9 @@ void s3cfb_pre_init(void)
+ s3c_fimd.vidintcon0 |= S3C_VIDINTCON0_INTFRMEN_ENABLE;
+
+ writel(s3c_fimd.vidintcon0, S3C_VIDINTCON0);
++
++ /* open the power of LCD */
++ gpio_direction_output(S3C_GPM3, 1);
+ }
+
+ void s3cfb_set_gpio(void)
+@@ -1103,9 +1107,6 @@ void s3cfb_set_gpio(void)
+ gpio_set_pin(S3C_GPJ10, S3C_GPJ10_LCD_VDEN);
+ gpio_set_pin(S3C_GPJ11, S3C_GPJ11_LCD_VCLK);
+
+- /* backlight ON */
+- gpio_direction_output(S3C_GPF15, 1);
+-
+ /* module reset */
+ gpio_direction_output(S3C_GPN5, 1);
+ mdelay(100);
+@@ -1240,6 +1241,8 @@ static struct sleep_save s3c_lcd_save[] = {
+ SAVE_ITEM(S3C_W4PDATA23),
+ };
+
++extern void s3cfb_set_backlight_power(int to);
++extern void s3cfb_clear_lcd(int flag);
+ /*
+ * Suspend
+ */
+@@ -1248,6 +1251,8 @@ int s3cfb_suspend(struct platform_device *dev, pm_message_t state)
+ struct fb_info *fbinfo = platform_get_drvdata(dev);
+ s3c_fb_info_t *info = fbinfo->par;
+
++ s3cfb_set_backlight_power(0); // close the backlight of LCD
++ s3cfb_clear_lcd(0); // clear the LCD screen to white
+ s3cfb_stop_lcd();
+ s3c2410_pm_do_save(s3c_lcd_save, ARRAY_SIZE(s3c_lcd_save));
+
+@@ -1272,9 +1277,13 @@ int s3cfb_resume(struct platform_device *dev)
+ clk_enable(info->clk);
+ msleep(1);
+ s3c2410_pm_do_restore(s3c_lcd_save, ARRAY_SIZE(s3c_lcd_save));
++ mdelay(1);
+
+ s3cfb_init_hw();
++ mdelay(10);
++ s3cfb_clear_lcd(1); // clear the LCD screen to black
+ s3cfb_start_lcd();
++ mdelay(10);
+
+ return 0;
+ }
+diff --git a/drivers/video/s3c/s3cfb_td043mtex.c b/drivers/video/s3c/s3cfb_td043mtex.c
+new file mode 100644
+index 0000000..86aab2f
+--- /dev/null
++++ b/drivers/video/s3c/s3cfb_td043mtex.c
+@@ -0,0 +1,279 @@
++/*
++ * drivers/video/s3c/s3cfb_a070vw04.c
++ *
++ * $Id: s3cfb_lte480wv.c,v 1.12 2008/06/05 02:13:24 jsgood Exp $
++ *
++ * Copyright (C) 2008 Jinsung Yang <jsgood.yang@samsung.com>
++ *
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file COPYING in the main directory of this archive for
++ * more details.
++ *
++ * S3C Frame Buffer Driver
++ * based on skeletonfb.c, sa1100fb.h, s3c2410fb.c
++ */
++
++#include <linux/wait.h>
++#include <linux/fb.h>
++#include <linux/delay.h>
++#include <linux/platform_device.h>
++
++#include <asm/arch/regs-gpio.h>
++#include <asm/arch/regs-lcd.h>
++
++#include "s3cfb.h"
++#include <asm-arm/arch-s3c2410/gpio.h>
++
++#define S3C_FB_HFP 40 /* front porch */
++#define S3C_FB_HSW 1 /* Hsync width */
++#define S3C_FB_HBP 216 /* Back porch */
++
++#define S3C_FB_VFP 10 /* front porch */
++#define S3C_FB_VSW 1 /* Vsync width */
++#define S3C_FB_VBP 35 /* Back porch */
++
++#define S3C_FB_HRES 800 /* horizon pixel x resolition */
++#define S3C_FB_VRES 480 /* line cnt y resolution */
++
++#define S3C_FB_HRES_VIRTUAL 800 /* horizon pixel x resolition */
++#define S3C_FB_VRES_VIRTUAL 960 /* line cnt y resolution */
++
++#define S3C_FB_HRES_OSD 800 /* horizon pixel x resolition */
++#define S3C_FB_VRES_OSD 480 /* line cnt y resolution */
++
++#define S3C_FB_VFRAME_FREQ 60 /* frame rate freq */
++
++#define S3C_FB_PIXEL_CLOCK (S3C_FB_VFRAME_FREQ * (S3C_FB_HFP + S3C_FB_HSW + S3C_FB_HBP + S3C_FB_HRES) * (S3C_FB_VFP + S3C_FB_VSW + S3C_FB_VBP + S3C_FB_VRES))
++
++static void set_lcd_power(int val)
++{
++ if(val > 0) {
++ /* Display On */
++ s3cfb_start_lcd();
++ } else {
++ /* Direct Off */
++ s3cfb_stop_lcd();
++ }
++}
++
++#define WAITTIME (10 * HZ / 1000) // 10ms
++static int old_display_brightness = S3C_FB_MIN_BACKLIGHT_LEVEL;
++
++static void __set_brightness(int val)
++{
++ int channel = 1; // must use channel-1
++ int usec = 0; // don't care value
++ unsigned long tcnt=1000;
++ unsigned long tcmp=0;
++
++ if(val == S3C_FB_MAX_BACKLIGHT_LEVEL)
++ gpio_direction_output(S3C_GPF15, 1);
++ else if(val == S3C_FB_MIN_BACKLIGHT_LEVEL)
++ gpio_direction_output(S3C_GPF15, 0);
++ else {
++ tcmp = val * 10;
++#if defined(CONFIG_S3C6410_PWM) && defined(CONFIG_PWM)
++ s3c6410_timer_setup (channel, usec, tcnt, tcmp);
++#endif
++ }
++}
++
++static void set_brightness(int val)
++{
++ int old_val = old_display_brightness;
++
++ if(val < 0) val = 0;
++ if(val > S3C_FB_MAX_BACKLIGHT_LEVEL) val = S3C_FB_MAX_BACKLIGHT_LEVEL;
++
++ if(val > old_val) {
++ while((++old_val) < val) {
++ __set_brightness(old_val);
++ set_current_state(TASK_INTERRUPTIBLE);
++ schedule_timeout(WAITTIME);
++ }
++ } else {
++ while((--old_val) > val) {
++ __set_brightness(old_val);
++ set_current_state(TASK_INTERRUPTIBLE);
++ schedule_timeout(WAITTIME);
++ }
++ }
++
++ __set_brightness(val);
++ old_display_brightness = val;
++}
++
++static void set_backlight_power(int val)
++{
++ if(val > 0)
++ __set_brightness(old_display_brightness);
++ else
++ __set_brightness(S3C_FB_MIN_BACKLIGHT_LEVEL);
++}
++
++static void s3cfb_set_fimd_info(void)
++{
++ s3c_fimd.vidcon1 = S3C_VIDCON1_IHSYNC_INVERT | S3C_VIDCON1_IVSYNC_INVERT |S3C_VIDCON1_IVDEN_INVERT;
++ s3c_fimd.vidtcon0 = S3C_VIDTCON0_VBPD(S3C_FB_VBP - 1) | S3C_VIDTCON0_VFPD(S3C_FB_VFP - 1) | S3C_VIDTCON0_VSPW(S3C_FB_VSW - 1);
++ s3c_fimd.vidtcon1 = S3C_VIDTCON1_HBPD(S3C_FB_HBP - 1) | S3C_VIDTCON1_HFPD(S3C_FB_HFP - 1) | S3C_VIDTCON1_HSPW(S3C_FB_HSW - 1);
++ s3c_fimd.vidtcon2 = S3C_VIDTCON2_LINEVAL(S3C_FB_VRES - 1) | S3C_VIDTCON2_HOZVAL(S3C_FB_HRES - 1);
++
++ s3c_fimd.vidosd0a = S3C_VIDOSDxA_OSD_LTX_F(0) | S3C_VIDOSDxA_OSD_LTY_F(0);
++ s3c_fimd.vidosd0b = S3C_VIDOSDxB_OSD_RBX_F(S3C_FB_HRES - 1) | S3C_VIDOSDxB_OSD_RBY_F(S3C_FB_VRES - 1);
++
++ s3c_fimd.vidosd1a = S3C_VIDOSDxA_OSD_LTX_F(0) | S3C_VIDOSDxA_OSD_LTY_F(0);
++ s3c_fimd.vidosd1b = S3C_VIDOSDxB_OSD_RBX_F(S3C_FB_HRES_OSD - 1) | S3C_VIDOSDxB_OSD_RBY_F(S3C_FB_VRES_OSD - 1);
++
++ s3c_fimd.width = S3C_FB_HRES;
++ s3c_fimd.height = S3C_FB_VRES;
++ s3c_fimd.xres = S3C_FB_HRES;
++ s3c_fimd.yres = S3C_FB_VRES;
++
++#if defined(CONFIG_FB_S3C_VIRTUAL_SCREEN)
++ s3c_fimd.xres_virtual = S3C_FB_HRES_VIRTUAL;
++ s3c_fimd.yres_virtual = S3C_FB_VRES_VIRTUAL;
++#else
++ s3c_fimd.xres_virtual = S3C_FB_HRES;
++ s3c_fimd.yres_virtual = S3C_FB_VRES;
++#endif
++
++ s3c_fimd.osd_width = S3C_FB_HRES_OSD;
++ s3c_fimd.osd_height = S3C_FB_VRES_OSD;
++ s3c_fimd.osd_xres = S3C_FB_HRES_OSD;
++ s3c_fimd.osd_yres = S3C_FB_VRES_OSD;
++
++ s3c_fimd.osd_xres_virtual = S3C_FB_HRES_OSD;
++ s3c_fimd.osd_yres_virtual = S3C_FB_VRES_OSD;
++
++ s3c_fimd.pixclock = S3C_FB_PIXEL_CLOCK;
++
++ s3c_fimd.hsync_len = S3C_FB_HSW;
++ s3c_fimd.vsync_len = S3C_FB_VSW;
++ s3c_fimd.left_margin = S3C_FB_HFP;
++ s3c_fimd.upper_margin = S3C_FB_VFP;
++ s3c_fimd.right_margin = S3C_FB_HBP;
++ s3c_fimd.lower_margin = S3C_FB_VBP;
++
++ s3c_fimd.set_lcd_power = set_lcd_power;
++ s3c_fimd.set_backlight_power = set_backlight_power;
++ s3c_fimd.set_brightness = set_brightness;
++ s3c_fimd.backlight_min = S3C_FB_MIN_BACKLIGHT_LEVEL;
++ s3c_fimd.backlight_max = S3C_FB_MAX_BACKLIGHT_LEVEL;
++}
++
++#define LCD_SCEN S3C_GPM0
++#define LCD_SCL S3C_GPM1
++#define LCD_SDA S3C_GPM2
++#define S3C_GPIO_OUTP 1
++#define S3C_GPIO_INP 0
++
++static int lcd_write(unsigned char,unsigned char);
++static void lcd_spi_stop(void);
++static void lcd_spi_start(void);
++static void lcd_spi_start(void)
++{
++ //set scen output 0
++ s3c_gpio_cfgpin(LCD_SCEN,S3C_GPIO_OUTP);
++ s3c_gpio_setpin(LCD_SCEN,0);
++}
++
++static void lcd_spi_stop(void)
++{
++ //set scen output 1
++ s3c_gpio_cfgpin(LCD_SCEN,S3C_GPIO_OUTP);
++ s3c_gpio_setpin(LCD_SCEN,1);
++ s3c_gpio_setpin(LCD_SCL,0);
++ s3c_gpio_setpin(LCD_SDA,0);
++ s3c_gpio_cfgpin(LCD_SCL,S3C_GPIO_INP);
++ s3c_gpio_cfgpin(LCD_SDA,S3C_GPIO_INP);
++}
++static int lcd_write(unsigned char addr,unsigned char data)
++{
++ unsigned char myaddr,mydata,i;
++ myaddr = (addr&0x3f)<<1 ;
++ myaddr <<= 1;
++ myaddr |= 0x1;
++ lcd_spi_start();
++
++ s3c_gpio_cfgpin(LCD_SCL,S3C_GPIO_OUTP);
++ s3c_gpio_setpin(LCD_SCL,0);
++ s3c_gpio_cfgpin(LCD_SDA,S3C_GPIO_OUTP);
++ for(i=0;i<8;i++){
++ s3c_gpio_setpin(LCD_SCL,0);
++ udelay(1);
++ s3c_gpio_setpin(LCD_SDA,(myaddr&0x80)>>7);
++ myaddr <<= 1 ;
++ udelay(1);
++ s3c_gpio_setpin(LCD_SCL,1);
++ udelay(1);
++ } //8nd is null turn
++ mydata = data;
++ for(i=0;i<8;i++){
++ s3c_gpio_setpin(LCD_SCL,0);
++ udelay(1);
++ s3c_gpio_setpin(LCD_SDA,(mydata&0x80)>>7);
++ mydata <<= 1;
++ udelay(1);
++ s3c_gpio_setpin(LCD_SCL,1);
++ udelay(1);
++ }
++
++ lcd_spi_stop();
++
++ return 0;
++}
++
++void s3cfb_init_hw(void)
++{
++ printk(KERN_INFO "LCD TYPE :: TD043MTEX will be initialized\n");
++
++ s3cfb_set_fimd_info();
++ s3cfb_set_gpio();
++ lcd_init_hw();
++}
++
++void lcd_init_hw(void)
++{
++#if 1
++ lcd_spi_stop();
++
++ lcd_write(0x02,0x07);
++ lcd_write(0x03,0x5f);
++ lcd_write(0x04,0x17);
++
++ lcd_write(0x05,0x20);
++ lcd_write(0x06,0x08);
++
++ lcd_write(0x07,0x20);
++ lcd_write(0x08,0x20);
++ lcd_write(0x09,0x20);
++ lcd_write(0x0a,0x20);
++
++ lcd_write(0x0b,0x20);
++ lcd_write(0x0c,0x20);
++ lcd_write(0x0d,0x22);
++
++ lcd_write(0x0e,0x10);
++ lcd_write(0x0f,0x10);
++ lcd_write(0x10,0x10);
++
++ lcd_write(0x11,0x15);
++ lcd_write(0x12,0xaa);
++ lcd_write(0x13,0xff);
++ lcd_write(0x14,0x86);
++ lcd_write(0x15,0x89);
++ lcd_write(0x16,0xc6);
++ lcd_write(0x17,0xea);
++ lcd_write(0x18,0x0c);
++ lcd_write(0x19,0x33);
++ lcd_write(0x1a,0x5e);
++ lcd_write(0x1b,0xd0);
++ lcd_write(0x1c,0x33);
++ lcd_write(0x1d,0x7e);
++ lcd_write(0x1e,0xb3);
++ lcd_write(0x1f,0xff);
++ lcd_write(0x20,0xf0);
++ lcd_write(0x21,0xf0);
++ lcd_write(0x22,0x08);
++#endif
++}
+diff --git a/drivers/watchdog/s3c2410_wdt.c b/drivers/watchdog/s3c2410_wdt.c
+index 5d1c15f..abd77f7 100644
+--- a/drivers/watchdog/s3c2410_wdt.c
++++ b/drivers/watchdog/s3c2410_wdt.c
+@@ -153,6 +153,21 @@ static int s3c2410wdt_start(void)
+ return 0;
+ }
+
++int s3c2410wdt_reboot(void)
++{
++ writel(0, wdt_base + S3C2410_WTCON); /* disable watchdog, to be safe */
++
++ /* put initial values into count and data */
++ writel(0x100, wdt_base + S3C2410_WTCNT);
++ writel(0x100, wdt_base + S3C2410_WTDAT);
++
++ /* set the watchdog to go and reset... */
++ writel(S3C2410_WTCON_ENABLE|S3C2410_WTCON_DIV16|S3C2410_WTCON_RSTEN |
++ S3C2410_WTCON_PRESCALE(0x20), wdt_base + S3C2410_WTCON);
++ return 0;
++}
++EXPORT_SYMBOL(s3c2410wdt_reboot);
++
+ static int s3c2410wdt_set_heartbeat(int timeout)
+ {
+ unsigned int freq = clk_get_rate(wdt_clock);
+diff --git a/fs/Kconfig b/fs/Kconfig
+index 781b47d..7049712 100644
+--- a/fs/Kconfig
++++ b/fs/Kconfig
+@@ -1196,6 +1196,13 @@ config EFS_FS
+ To compile the EFS file system support as a module, choose M here: the
+ module will be called efs.
+
++
++# Patched by YAFFS
++source "fs/yaffs2/Kconfig"
++
++# Patched by AUFS
++source "fs/aufs/Kconfig"
++
+ config JFFS2_FS
+ tristate "Journalling Flash File System v2 (JFFS2) support"
+ select CRC32
+diff --git a/fs/Makefile b/fs/Makefile
+index 500cf15..0dc75db 100644
+--- a/fs/Makefile
++++ b/fs/Makefile
+@@ -118,3 +118,9 @@ obj-$(CONFIG_HPPFS) += hppfs/
+ obj-$(CONFIG_DEBUG_FS) += debugfs/
+ obj-$(CONFIG_OCFS2_FS) += ocfs2/
+ obj-$(CONFIG_GFS2_FS) += gfs2/
++
++# Patched by YAFFS
++obj-$(CONFIG_YAFFS_FS) += yaffs2/
++
++# Patched by AUFS
++obj-$(CONFIG_AUFS) += aufs/
+diff --git a/fs/aufs/Kconfig b/fs/aufs/Kconfig
+new file mode 100644
+index 0000000..f609923
+--- /dev/null
++++ b/fs/aufs/Kconfig
+@@ -0,0 +1,283 @@
++config AUFS
++ tristate "Another unionfs"
++ help
++ Aufs is a stackable unification filesystem such as Unionfs,
++ which unifies several directories and provides a merged single
++ directory.
++ In the early days, aufs was entirely re-designed and
++ re-implemented Unionfs Version 1.x series. After many original
++ ideas, approaches and improvements, it becomes totally
++ different from Unionfs while keeping the basic features.
++ See Unionfs for the basic features.
++if AUFS
++comment "These options are for 2.6.24.7"
++choice
++ prompt "Maximum number of branches"
++ default AUFS_BRANCH_MAX_127
++ help
++ Specifies the maximum number of branches (or member directories) in a single aufs. The larger value consumes more system resources and has an impact to performance.
++config AUFS_BRANCH_MAX_127
++ bool "127"
++ help
++ Specifies the maximum number of branches (or member directories) in a single aufs. The larger value consumes more system resources and has an impact to performance.
++config AUFS_BRANCH_MAX_511
++ bool "511"
++ help
++ Specifies the maximum number of branches (or member directories) in a single aufs. The larger value consumes more system resources and has an impact to performance.
++config AUFS_BRANCH_MAX_1023
++ bool "1023"
++ help
++ Specifies the maximum number of branches (or member directories) in a single aufs. The larger value consumes more system resources and has an impact to performance.
++config AUFS_BRANCH_MAX_32767
++ bool "32767"
++ help
++ Specifies the maximum number of branches (or member directories) in a single aufs. The larger value consumes more system resources and has an impact to performance.
++endchoice
++config AUFS_SYSAUFS
++ bool "Use <sysfs>/fs/aufs"
++ depends on SYSFS
++ default y
++ help
++ Aufs creates some files under sysfs for various purposes.
++ If the number of your branches is large or their path is long
++ and you meet the limitation of mount(8) or /etc/mtab, you need
++ to enable this option and set aufs module parameter brs=1.
++ See detail in aufs.5.
++comment "SYSFS and AUFS_SYSAUFS are disabled"
++ depends on SYSFS = n
++config AUFS_HINOTIFY
++ bool "Use inotify to detect actions on a branch"
++ depends on INOTIFY
++ help
++ If you want to modify files on branches directly, eg. bypassing aufs,
++ and want aufs to detect the changes of them fully, then enable this
++ option and use 'udba=inotify' mount option.
++ It will have a negative impact to the performance.
++ See detail in aufs.5.
++comment "INOTIFY and AUFS_HINOTIFY are disabled"
++ depends on INOTIFY = n
++config AUFS_EXPORT
++ bool "NFS-exportable aufs"
++ depends on (AUFS = y && EXPORTFS = y) || (AUFS = m && EXPORTFS)
++ help
++ If you want to export your mounted aufs, then enable this
++ option. There are several requirements for this configuration.
++ See detail in aufs.5.
++comment "EXPORTFS and AUFS_EXPORT are disabled"
++ depends on EXPORTFS = n
++comment "AUFS_EXPORT is disabled since EXPORTFS is a module but AUFS"
++ depends on EXPORTFS = m && AUFS = y
++config AUFS_INO_T_64
++ bool
++ depends on 64BIT && !(ALPHA || S390)
++ default y
++config AUFS_ROBR
++ bool "Aufs as an readonly branch of another aufs mount"
++ help
++ If you want make your aufs to be a part of another aufs, then
++ enable this option. In other words, you can specify your aufs
++ path in 'br:' mount option for another aufs, but cannot
++ specify 'rw' as the branch permission.
++ It will have a negative impact to the performance.
++ See detail in aufs.5.
++config AUFS_DLGT
++ bool "Delegate the internal branch access the kernel thread"
++ help
++ If you want aufs to delegate
++ the internal access to the branches which is made by aufs, to
++ the kernel thread, in order to hide the access issued by your
++ application from your LSM or something or make your
++ application to be traced strictly by the task I/O accounting,
++ then enable this option and use 'dlgt' mount option.
++ It will have a negative impact to the performance.
++ See detail in aufs.5.
++config AUFS_HIN_OR_DLGT
++ bool
++ depends on AUFS_HINOTIFY || AUFS_DLGT
++ default y
++ help
++ Automatic configuration for internal use.
++config AUFS_SHWH
++ bool "Show whiteouts"
++ help
++ If you want to make the whiteouts in aufs visible, then enable
++ this option and specify 'shwh' mount option. Although it may
++ sounds like philosophy or something, but in technically it
++ simply shows the name of whiteout with keeping its behaviour.
++config AUFS_RR_SQUASHFS
++ bool "Make squashfs branch RR (real readonly) by default"
++ default y
++ help
++ If you use squashfs or LZMA patched squashfs as an aufs branch
++ and want to set '=rr' to it by default, then enable this
++ configuration.
++ 'rr' stands for real readonly and it optimizes some aspects of
++ 'ro.'
++ See detail in aufs.5.
++config AUFS_SEC_PERM_PATCH
++ bool "sec_perm-2.6.24.patch was applied or not"
++ depends on AUFS = m
++ depends on SECURITY
++ help
++ If you build aufs as a module and enabled CONFIG_SECURITY,
++ then you need to apply the patch
++ 'CVS_TREE/aufs/patch/sec_perm-2.6.24.patch' to your kernel
++ source, and enable this configuration.
++ The sec_perm-2.6.24.patch exports a kernel function
++ security_inode_permission() to modules.
++comment "SECURITY and AUFS_SEC_PERM_PATCH are disabled"
++ depends on SECURITY = n
++config AUFS_SPLICE_PATCH
++ bool "splice.patch for sendfile(2) and splice(2)"
++ help
++ If you use 'loopback mount' on a fs-image file, or use
++ splice(2) or sendfile(2) systemcall in aufs, then you need to
++ apply the patch 'CVS_TREE/aufs/patch/splice.patch' to your
++ kernel source, and enable this configuration.
++ The splice.patch makes the kernel function do_splice_to/from()
++ global and exports them to modules.
++config AUFS_LHASH_PATCH
++ bool "lhash.patch for NFS branch"
++ depends on NFS_FS
++ help
++ If you use mounted NFS as an aufs branch filesystem, then you
++ need to apply the patch 'CVS_TREE/aufs/patch/lhash.patch' (or
++ lhash-2.6.22.patch for linux-2.6.22 and later) to your kernel
++ source, and enable this configuration.
++ The patch file makes the kernel function __lookup_hash() global
++ and exports it to modules.
++comment "NFS_FS and AUFS_LHASH_PATCH are disabled"
++ depends on NFS_FS = n
++config AUFS_PUT_FILP_PATCH
++ bool "put_filp.patch for 'atomic open'"
++ depends on AUFS = m && NFS_V4
++ help
++ If you build aufs as a module and use a filesystem which
++ operates 'atomic open' (for instance NFSv4) as an aufs branch
++ filesystem, then you need to apply the patch
++ 'CVS_TREE/aufs/patch/put_filp.patch' to your kernel source,
++ and enable this configuration.
++ The put_filp.patch exports a kernel function put_filp() to
++ modules.
++comment "NFS_V4 and AUFS_PUT_FILP_PATCH are disabled"
++ depends on NFS_V4 = n
++config AUFS_BR_NFS
++ bool
++ depends on NFS_FS
++ depends on AUFS_LHASH_PATCH
++ default y
++ help
++ Automatic configuration for internal use.
++ When aufs supports NFS branch, enabled automatically.
++config AUFS_BR_NFS_V4
++ bool
++ depends on NFS_V4 && AUFS_BR_NFS
++ depends on AUFS = y || (AUFS = m && AUFS_PUT_FILP_PATCH)
++ default y
++ help
++ Automatic configuration for internal use.
++ When aufs supports a branch filesystem which operates
++ 'atomic_open', for instance NFSv4, this configuration is enabled
++ automatically.
++config AUFS_BR_XFS
++ bool
++ depends on XFS_FS
++ default y
++ help
++ Automatic configuration for internal use.
++ When aufs supports XFS branch, enabled automatically.
++config AUFS_FSYNC_SUPER_PATCH
++ bool "fsync_super-2.6.xx.patch was applied or not"
++ depends on AUFS = m
++ help
++ If you build aufs as a module and want to flush everything for
++ branch filesystems which are not marked as 'rr' nor 'rr+wh' at
++ umount or remount time, then you need to apply the patch
++ 'CVS_TREE/aufs/patch/fsync_super-2.6.16.patch' or
++ '...-2.6.19.patch' to your kernel source, and enable this
++ configuration.
++ It may be helpful at shutdown time in case of your aufs is a
++ root filesystem. But this behaviour will not guarantee the
++ consistency of branch filesystems. To guarantee it, try the
++ approach described in the aufs manual, and do not forget
++ installing auplink script.
++ The fsync_super-2.6.xx.patch does nothing but exports a kernel
++ function fsync_super() to modules.
++config AUFS_DENY_WRITE_ACCESS_PATCH
++ bool "deny_write_access.patch was applied or not"
++ depends on AUFS = m
++ help
++ A security enhancement to deny writing to a running executable
++ which exists on an aufs branch filesystem and executed through
++ aufs. If you applied
++ 'CVS_TREE/aufs/patch/deny_write_access.patch' to your kernel
++ and you are compiling aufs as a module, then enable this
++ option.
++ The write_deny_access.patch does nothing but export the
++ function.
++config AUFS_WORKAROUND_FUSE
++ bool "Special handling for FUSE-based filesystem"
++ depends on FUSE_FS
++ help
++ A FUSE-based filesystem may not initialize its inode
++ attributes and the FUSE developer thinks the inode attributes
++ in a positive dentry which is returned by VFS lookup operation
++ are not reliable.
++ If you use a FUSE-based filesystem as an aufs branch, and it
++ customizes the inode attribute on it without overriding
++ fuse_lowlevel_ops.lookup, probably you need to enable this
++ configuration.
++ If you enable this configuration, aufs calls getattr operation
++ in every lookup and revalidate operation for the FUSE-based
++ filesystem branch.
++ It will have a negative impact to the performance even if you do
++ not use a FUSE-based filesystem branch.
++config AUFS_GETATTR
++ bool
++ depends on AUFS_HINOTIFY || AUFS_WORKAROUND_FUSE || AUFS_BR_NFS
++ default y
++ help
++ Automatic configuration for internal use.
++config AUFS_DEBUG
++ bool "Debug aufs"
++ default y
++ help
++ Enable this to compile aufs internal debug code.
++ It will have a negative impact to the performance.
++config AUFS_MAGIC_SYSRQ
++ bool
++ depends on AUFS_DEBUG && MAGIC_SYSRQ
++ depends on AUFS_SYSAUFS
++ default y
++ help
++ Automatic configuration for internal use.
++ When aufs supports Magic SysRq, enabled automatically.
++config AUFS_DEBUG_LOCK
++ bool "Show lock status in Magic SysRq"
++ depends on AUFS_MAGIC_SYSRQ
++ help
++ For developers only. Sometimes it is useful when a deadlock
++ occurs in aufs. Trace every aufs lock acquire and release, and
++ print them when Magic SysRq-<AUFS> key is pressed.
++ It will have a huge negative impact to the performance.
++config AUFS_COMPAT
++ bool "Compatibility with Unionfs (obsolete)"
++ help
++ This makes aufs compatible with unionfs-style mount options and some
++ behaviours.
++ The dirs= mount option and =nfsro branch permission flag are always
++ interpreted as br: mount option and =ro flag respectively. The
++ 'debug', 'delete' and 'imap' mount options are ignored.
++ If you disable this option, you will get,
++ - aufs issues a warning about the ignored mount options
++ - the default branch permission flag is set. RW for the first branch,
++ and RO for the rests.
++ - the name of a internal file which represents the directory is
++ 'opaque', becomes '.wh..wh..opq'
++ - the 'diropq=w' mount option is set by default
++config AUFS_UNIONFS23_PATCH
++ bool "Unionfs-2.3 or later patch is applied or not (obsolete)"
++ select AUFS_SPLICE_PATCH
++ help
++ Unionfs version 2.3 (and later) patch introduces some changes in VFS layer which has an impact to aufs. If you have applied such patch to your kernel, you need to enable this configuration even if you disabled CONFIG_UNIONFS.
++endif
+diff --git a/fs/aufs/Makefile b/fs/aufs/Makefile
+new file mode 100644
+index 0000000..f529b6f
+--- /dev/null
++++ b/fs/aufs/Makefile
+@@ -0,0 +1,70 @@
++# AUFS Makefile for the Linux 2.6.16 - 2.6.24
++# $Id: Makefile,v 1.49 2008/09/29 03:43:19 sfjro Exp $
++
++# the environment variables are not inherited since 2.6.23
++ifdef AUFS_EXTRA_CFLAGS
++ccflags-y += ${AUFS_EXTRA_CFLAGS}
++endif
++
++########################################
++
++ifdef CONFIG_AUFS_RR_SQUASHFS
++# cf. squashfs3.2-r2 and sqlzma patch.
++ccflags-y += -DSQUASHFS_MAGIC=0x73717368
++ccflags-y += -DSQUASHFS_MAGIC_SWAP=0x68737173
++ccflags-y += -DSQUASHFS_MAGIC_LZMA=0x71736873
++ccflags-y += -DSQUASHFS_MAGIC_LZMA_SWAP=0x73687371
++endif
++
++# defined in ${srctree}/fs/fuse/inode.c
++ccflags-$(CONFIG_AUFS_WORKAROUND_FUSE) += -DFUSE_SUPER_MAGIC=0x65735546
++
++# defined in ${srctree}/fs/xfs/xfs_sb.h
++# tristate
++ifdef CONFIG_XFS_FS
++ccflags-y += -DXFS_SB_MAGIC=0x58465342
++endif
++
++# defined in ${srctree}/mm/shmem.c
++# tristate
++ifdef CONFIG_TMPFS
++ccflags-y += -DTMPFS_MAGIC=0x01021994
++endif
++
++# defined in ${srctree}fs/sysfs/mount.c
++# bool
++ccflags-$(CONFIG_SYSFS) += -DSYSFS_MAGIC=0x62656572
++
++-include $(dir $(lastword ${MAKEFILE_LIST}))priv.mk
++EXTRA_CFLAGS += ${ccflags-y}
++#$(warning ${EXTRA_CFLAGS})
++
++########################################
++
++obj-$(CONFIG_AUFS) += aufs.o
++aufs-y := module.o super.o sbinfo.o branch.o xino.o opts.o \
++ wkq.o vfsub.o dcsub.o \
++ cpup.o whout.o plink.o wbr_policy.o \
++ dentry.o dinfo.o \
++ file.o f_op.o finfo.o \
++ dir.o vdir.o \
++ inode.o i_op.o i_op_add.o i_op_del.o i_op_ren.o iinfo.o \
++ misc.o
++
++aufs-$(CONFIG_AUFS_SYSAUFS) += sysaufs.o
++ifeq ($(strip $(shell test ${SUBLEVEL} -ge 19 && echo t)),t)
++aufs-$(CONFIG_AUFS_BR_NFS) += br_nfs.o
++endif
++aufs-$(CONFIG_AUFS_BR_XFS) += br_xfs.o
++aufs-$(CONFIG_AUFS_WORKAROUND_FUSE) += br_fuse.o
++aufs-$(CONFIG_AUFS_DLGT) += dlgt.o
++aufs-$(CONFIG_AUFS_HINOTIFY) += hinotify.o
++aufs-$(CONFIG_AUFS_HIN_OR_DLGT) += hin_or_dlgt.o
++aufs-$(CONFIG_AUFS_GETATTR) += getattr.o
++aufs-$(CONFIG_AUFS_EXPORT) += export.o
++aufs-$(CONFIG_AUFS_ROBR) += robr.o
++# reserved for future use
++#aufs-$(CONFIG_AUFS_XATTR) += xattr.o
++#aufs-$(CONFIG_DEBUGFS) += dbgfs.o
++aufs-$(CONFIG_AUFS_DEBUG) += debug.o
++aufs-$(CONFIG_AUFS_MAGIC_SYSRQ) += sysrq.o
+diff --git a/fs/aufs/aufs.h b/fs/aufs/aufs.h
+new file mode 100644
+index 0000000..ab271b0
+--- /dev/null
++++ b/fs/aufs/aufs.h
+@@ -0,0 +1,118 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * main header files
++ *
++ * $Id: aufs.h,v 1.51 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#ifndef __AUFS_H__
++#define __AUFS_H__
++
++#ifdef __KERNEL__
++
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
++#include <linux/uaccess.h>
++#else
++#include <asm/uaccess.h>
++#endif
++
++#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 24)
++#error you got wrong version
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++/* limited support before 2.6.16, curretly 2.6.15 only. */
++#include <linux/time.h>
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 16)
++#define timespec_to_ns(ts) ({ (long long)(ts)->tv_sec; })
++#define D_CHILD d_child
++#else
++#define D_CHILD d_u.d_child
++#endif
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 17)
++#include <linux/types.h>
++typedef unsigned long blkcnt_t;
++#endif
++
++/* introduced linux-2.6.17 */
++#include <linux/fs.h>
++#ifndef FMODE_EXEC
++#define FMODE_EXEC 0
++#endif
++
++/* introduced in linux-2.6.21 */
++#include <linux/compiler.h>
++#ifndef __packed
++#define __packed __attribute__((packed))
++#endif
++#ifndef __aligned
++#define __aligned(x) __attribute__((aligned(x)))
++#endif
++
++/* introduced in linux-2.6.25 */
++#ifndef noinline_for_stack
++#define noinline_for_stack /* */
++#endif
++
++/* introduced in linux-2.6.27 */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 27)
++#define WARN_ONCE(cond, fmt ...) WARN_ON(cond)
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++#include "debug.h"
++
++#include "branch.h"
++#include "cpup.h"
++#include "dcsub.h"
++#include "dentry.h"
++#include "dir.h"
++#include "file.h"
++#include "hinode.h"
++#include "inode.h"
++#include "misc.h"
++#include "module.h"
++#include "opts.h"
++#include "super.h"
++#include "sysaufs.h"
++#include "vfsub.h"
++#include "whout.h"
++#include "wkq.h"
++/* reserved for future use */
++/* #include "xattr.h" */
++
++/* ---------------------------------------------------------------------- */
++
++#ifdef CONFIG_AUFS_MODULE
++
++/* call ksize() or not */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 22) \
++ && !defined(CONFIG_AUFS_KSIZE_PATCH)
++#define ksize(p) (0U)
++#endif
++
++#endif /* CONFIG_AUFS_MODULE */
++
++#endif /* __KERNEL__ */
++#endif /* __AUFS_H__ */
+diff --git a/fs/aufs/br_fuse.c b/fs/aufs/br_fuse.c
+new file mode 100644
+index 0000000..9b614b6
+--- /dev/null
++++ b/fs/aufs/br_fuse.c
+@@ -0,0 +1,80 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * special handling for inode attributes on FUSE branch
++ *
++ * $Id: br_fuse.c,v 1.7 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++/* h_mnt can be NULL, is it safe? */
++int au_update_fuse_h_inode(struct vfsmount *h_mnt, struct dentry *h_dentry)
++{
++ int err;
++ struct kstat st;
++
++ LKTRTrace("%.*s\n", AuDLNPair(h_dentry));
++
++ err = 0;
++ if (h_dentry->d_inode
++ /* && atomic_read(&h_dentry->d_inode->i_count) */
++ && au_test_fuse(h_dentry->d_sb)) {
++ err = vfsub_getattr(h_mnt, h_dentry, &st, /*dlgt*/0);
++ if (unlikely(err)) {
++ AuDbg("err %d\n", err);
++ au_debug_on();
++ AuDbgDentry(h_dentry);
++ au_debug_off();
++ WARN_ON(err);
++ }
++ }
++ return err;
++}
++
++#if 0 /* temp */
++/*
++ * This function was born after a discussion with the FUSE developer.
++ * The inode attributes on a filesystem who defines i_op->getattr()
++ * is unreliable since such fs may not maintain the attributes at lookup.
++ * This function doesn't want the result of stat, instead wants the side-effect
++ * which refreshes the attributes.
++ * Hmm, there seems to be no such filesystem except fuse.
++ */
++int vfsub_i_attr(struct vfsmount *mnt, struct dentry *dentry, int dlgt)
++{
++ int err;
++ struct inode *inode;
++ struct inode_operations *op;
++ struct kstat st;
++
++ inode = dentry->d_inode;
++ AuDebugOn(!inode);
++
++ err = 0;
++ op = inode->i_op;
++ if (op && op->getattr && !au_test_aufs(dentry->d_sb)) {
++ err = security_inode_getattr(mnt, dentry);
++ if (!err)
++ err = op->getattr(mnt, dentry, &st);
++ }
++ AuTraceErr(err);
++ return err;
++}
++#endif
+diff --git a/fs/aufs/br_nfs.c b/fs/aufs/br_nfs.c
+new file mode 100644
+index 0000000..74e34f2
+--- /dev/null
++++ b/fs/aufs/br_nfs.c
+@@ -0,0 +1,390 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * lookup functions for NFS branch in linux-2.6.19 and later
++ *
++ * $Id: br_nfs.c,v 1.8 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19) \
++ || !defined(CONFIG_AUFS_BR_NFS)
++#error mis-configuraion or Makefile
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++static struct file *au_find_h_intent(struct au_hdentry *hd, struct file *file)
++{
++ struct file *h_file, *hf;
++ struct au_hdintent *hdi, *tmp, *do_free;
++
++ LKTRTrace("%.*s\n", AuDLNPair(hd->hd_dentry));
++
++ h_file = NULL;
++ do_free = NULL;
++ spin_lock(&hd->hd_lock);
++ list_for_each_entry_safe(hdi, tmp, hd->hd_intent_list, hdi_list) {
++ hf = hdi->hdi_file[AuIntent_BRANCH];
++ if (hdi->hdi_file[AuIntent_AUFS] == file
++ && hf->f_dentry == hd->hd_dentry) {
++ h_file = hf;
++ do_free = hdi;
++ list_del(&hdi->hdi_list);
++ break;
++ }
++ }
++ spin_unlock(&hd->hd_lock);
++ kfree(do_free);
++
++ return h_file;
++}
++
++struct file *au_h_intent(struct dentry *dentry, aufs_bindex_t bindex,
++ struct file *file)
++{
++ struct file *h_file;
++ struct au_hdentry *hd = au_di(dentry)->di_hdentry + bindex;
++
++ LKTRTrace("%.*s, b%d, f %p\n", AuDLNPair(dentry), bindex, file);
++ DiMustAnyLock(dentry);
++ AuDebugOn(bindex < au_di(dentry)->di_bstart
++ || bindex > au_di(dentry)->di_bend);
++
++ h_file = NULL;
++ if (!hd->hd_intent_list || !file)
++ return h_file; /* success */
++
++ /* AuDebugOn(au_test_wkq(current)); */
++ h_file = au_find_h_intent(hd, file);
++ return h_file;
++}
++
++static int au_set_h_intent(struct dentry *dentry, aufs_bindex_t bindex,
++ struct file *file, struct file *h_file)
++{
++ int err;
++ struct au_hdentry *hd = au_di(dentry)->di_hdentry + bindex;
++ struct au_hdintent *hdi;
++ struct file *hf;
++
++ LKTRTrace("%.*s, b%d, f %p\n", AuDLNPair(dentry), bindex, file);
++ /* d_revalidate() holds read_lock */
++ /* DiMustWriteLock(dentry); */
++ AuDebugOn(bindex < au_di(dentry)->di_bstart
++ || bindex > au_di(dentry)->di_bend
++ || !file
++ || !h_file
++ /* || au_test_wkq(current) */);
++
++ err = -ENOMEM;
++ if (hd->hd_intent_list) {
++ while (1) {
++ hf = au_find_h_intent(hd, file);
++ if (!hf)
++ break;
++ fput(hf);
++ AuWarn("freed hfile %.*s b%d left\n",
++ AuDLNPair(dentry), bindex);
++ }
++ } else {
++ spin_lock(&hd->hd_lock);
++ if (!hd->hd_intent_list) {
++ hd->hd_intent_list
++ = kmalloc(sizeof(*hd->hd_intent_list),
++ GFP_ATOMIC);
++ if (unlikely(!hd->hd_intent_list)) {
++ spin_unlock(&hd->hd_lock);
++ goto out;
++ }
++ INIT_LIST_HEAD(hd->hd_intent_list);
++ }
++ spin_unlock(&hd->hd_lock);
++ }
++
++ hdi = kmalloc(sizeof(*hdi), GFP_NOFS);
++ if (unlikely(!hdi))
++ goto out;
++
++ err = 0;
++ /* hdi->hdi_pid = current->pid; */
++ hdi->hdi_file[AuIntent_AUFS] = file;
++ hdi->hdi_file[AuIntent_BRANCH] = h_file;
++ spin_lock(&hd->hd_lock);
++ list_add(&hdi->hdi_list, hd->hd_intent_list);
++ spin_unlock(&hd->hd_lock);
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++int au_br_nfs_h_intent(struct file *nd_file, struct dentry *dentry,
++ aufs_bindex_t bindex, struct nameidata *nd)
++{
++ int err;
++
++ AuTraceEnter();
++
++ err = 0;
++ if (!nd_file)
++ goto out;
++
++ AuDebugOn(!nd);
++ err = au_set_h_intent(dentry, bindex, nd->intent.open.file, nd_file);
++ if (unlikely(err)) {
++ fput(nd_file);
++ au_set_h_dptr(dentry, bindex, NULL);
++ /* todo: update bstart and bend? */
++ }
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++void au_hintent_put(struct au_hdentry *hd, int do_free)
++{
++ struct au_hdintent *hdi, *tmp;
++ struct file *hf;
++
++ if (hd->hd_intent_list) {
++ /* no spin lock */
++ list_for_each_entry_safe(hdi, tmp, hd->hd_intent_list,
++ hdi_list) {
++ LKTRTrace("hdi %p\n", hdi);
++ hf = hdi->hdi_file[AuIntent_BRANCH];
++ if (hf)
++ fput(hf);
++ /* list_del(&hdi->hdi_list); */
++ kfree(hdi);
++ }
++ if (do_free)
++ kfree(hd->hd_intent_list);
++ }
++}
++
++/* ---------------------------------------------------------------------- */
++
++#if 0
++/* subset of nameidata */
++struct au_ndsub {
++ struct dentry *dentry;
++ struct vfsmount *mnt;
++ unsigned int flags;
++
++ union {
++ struct open_intent open;
++ } intent;
++};
++
++static void au_ndsub_restore(struct nameidata *nd, struct au_ndsub *save)
++{
++ nd->dentry = save->dentry;
++ nd->mnt = save->mnt;
++ nd->flags = save->flags;
++ nd->intent = save->intent;
++}
++#endif
++
++int au_fake_intent(/* struct au_ndsub *save, */struct nameidata *nd,
++ struct au_branch *br)
++{
++ int err;
++
++ LKTRTrace("perm %d\n", br->br_perm);
++
++ err = 0;
++#if 0
++ save->dentry = nd->dentry;
++ save->mnt = nd->mnt;
++ save->flags = nd->flags;
++ save->intent = nd->intent;
++#endif
++
++ nd->intent.open.file = NULL;
++ if (nd->flags & LOOKUP_OPEN) {
++ if (au_test_fs_intent(br->br_mnt->mnt_sb)) {
++ err = -ENFILE;
++ nd->intent.open.file = get_empty_filp();
++ if (unlikely(!nd->intent.open.file))
++ goto out;
++ err = 0;
++ }
++ if (!au_br_writable(br->br_perm)) {
++ nd->intent.open.flags = FMODE_READ
++ | au_file_roflags(nd->intent.open.flags);
++ nd->flags &= ~LOOKUP_CREATE;
++ }
++ }
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++static void au_put_filp(struct file *file)
++{
++#if !defined(CONFIG_AUFS_MODULE) || defined(CONFIG_AUFS_PUT_FILP_PATCH)
++ if (unlikely(file))
++ put_filp(file);
++#else
++ WARN_ONCE(file, "unexpected put_fillp() call");
++#endif
++}
++
++int au_hin_after_reval(struct nameidata *nd, struct dentry *dentry,
++ aufs_bindex_t bindex, struct file *file)
++{
++ int err;
++
++ LKTRTrace("nd %p, %.*s, b%d, f %d\n",
++ nd, AuDLNPair(dentry), bindex, !!file);
++
++ err = 0;
++ if ((nd->flags & LOOKUP_OPEN)
++ && nd->intent.open.file
++ && !IS_ERR(nd->intent.open.file)) {
++ if (nd->intent.open.file->f_dentry) {
++ err = au_set_h_intent(dentry, bindex, file,
++ nd->intent.open.file);
++ if (!err)
++ nd->intent.open.file = NULL;
++ }
++ au_put_filp(nd->intent.open.file);
++ }
++
++ return err;
++}
++
++#ifdef CONFIG_AUFS_DLGT
++struct au_lookup_hash_args {
++ struct dentry **errp;
++ struct qstr *name;
++ struct dentry *base;
++ struct nameidata *nd;
++};
++
++static void au_call_lookup_hash(void *args)
++{
++ struct au_lookup_hash_args *a = args;
++ *a->errp = vfsub__lookup_hash(a->name, a->base, a->nd);
++}
++
++static struct dentry *
++au_lkup_hash_dlgt(struct qstr *this, struct dentry *parent,
++ struct nameidata *nd, unsigned int flags)
++{
++ struct dentry *dentry;
++ int dirperm1;
++
++ dirperm1 = au_ftest_ndx(flags, DIRPERM1);
++ if (!dirperm1 && !au_ftest_ndx(flags, DLGT))
++ dentry = vfsub__lookup_hash(this, parent, nd);
++ else {
++ int wkq_err;
++ struct au_lookup_hash_args args = {
++ .errp = &dentry,
++ .name = this,
++ .base = parent,
++ .nd = nd
++ };
++ wkq_err = au_wkq_wait(au_call_lookup_hash, &args,
++ /*dlgt*/!dirperm1);
++ if (unlikely(wkq_err))
++ dentry = ERR_PTR(wkq_err);
++ }
++
++ AuTraceErrPtr(dentry);
++ return dentry;
++}
++#else
++static struct dentry *
++au_lkup_hash_dlgt(struct qstr *this, struct dentry *parent,
++ struct nameidata *nd, unsigned int flags)
++{
++ return vfsub__lookup_hash(this, parent, nd);
++}
++#endif /* CONFIG_AUFS_DLGT */
++
++struct dentry *au_lkup_hash(const char *name, struct dentry *parent,
++ int len, struct au_ndx *ndx)
++{
++ struct dentry *dentry;
++ char *p;
++ unsigned long hash;
++ struct qstr this;
++ unsigned int c;
++ struct nameidata tmp_nd, *ndo;
++ int err;
++
++ LKTRTrace("%.*s/%.*s\n", AuDLNPair(parent), len, name);
++
++ /* todo: export and call __lookup_one_len() in fs/namei.c? */
++ dentry = ERR_PTR(-EACCES);
++ this.name = name;
++ this.len = len;
++ if (unlikely(!len))
++ goto out;
++
++ p = (void *)name;
++ hash = init_name_hash();
++ while (len--) {
++ c = *p++;
++ if (unlikely(c == '/' || c == '\0'))
++ goto out;
++ hash = partial_name_hash(c, hash);
++ }
++ this.hash = end_name_hash(hash);
++
++ ndo = ndx->nd;
++ if (ndo) {
++ tmp_nd = *ndo;
++ err = au_fake_intent(&tmp_nd, ndx->br);
++ dentry = ERR_PTR(err);
++ if (unlikely(err))
++ goto out_intent;
++ } else
++ memset(&tmp_nd, 0, sizeof(tmp_nd));
++
++ tmp_nd.dentry = dget(parent);
++ tmp_nd.mnt = mntget(ndx->nfsmnt);
++ dentry = au_lkup_hash_dlgt(&this, parent, &tmp_nd, ndx->flags);
++ if (!IS_ERR(dentry)) {
++ /* why negative dentry for a new dir was unhashed? */
++ if (unlikely(d_unhashed(dentry)))
++ d_rehash(dentry);
++ if (tmp_nd.intent.open.file
++ && tmp_nd.intent.open.file->f_dentry) {
++ ndx->nd_file = tmp_nd.intent.open.file;
++ tmp_nd.intent.open.file = NULL;
++ /* au_br_get(ndx->br); */
++ }
++ }
++ path_release(&tmp_nd);
++
++ out_intent:
++ au_put_filp(tmp_nd.intent.open.file);
++ out:
++ AuTraceErrPtr(dentry);
++ return dentry;
++}
+diff --git a/fs/aufs/br_xfs.c b/fs/aufs/br_xfs.c
+new file mode 100644
+index 0000000..b4f7421
+--- /dev/null
++++ b/fs/aufs/br_xfs.c
+@@ -0,0 +1,74 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * special handling inode attributes on XFS branch in linux-2.6.24 and later
++ *
++ * $Id: br_xfs.c,v 1.4 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24) \
++ || (!defined(CONFIG_XFS_FS) && !defined(CONFIG_XFS_FS_MODULE))
++#error mis-configuraion or Makefile
++#endif
++
++/* h_mnt can be NULL, is it safe? */
++dev_t au_h_rdev(struct inode *h_inode, struct vfsmount *h_mnt,
++ struct dentry *h_dentry)
++{
++ dev_t rdev;
++ int err;
++ struct kstat st;
++
++ LKTRTrace("hi%lu\n", h_inode->i_ino);
++ if (h_dentry)
++ LKTRTrace("%.*s\n", AuDLNPair(h_dentry));
++
++ rdev = h_inode->i_rdev;
++ if (!rdev || !au_test_xfs(h_inode->i_sb))
++ goto out;
++
++ rdev = 0;
++ if (!h_dentry) {
++ err = 0;
++ h_dentry = d_find_alias(h_inode);
++ if (unlikely(!h_dentry))
++ goto failure;
++ err = PTR_ERR(h_dentry);
++ if (IS_ERR(h_dentry)) {
++ h_dentry = NULL;
++ goto failure;
++ }
++ LKTRTrace("%.*s\n", AuDLNPair(h_dentry));
++ } else
++ dget(h_dentry);
++
++ err = vfsub_getattr(h_mnt, h_dentry, &st, /*dlgt*/0);
++ dput(h_dentry);
++ if (!err) {
++ rdev = st.rdev;
++ goto out; /* success */
++ }
++
++ failure:
++ AuIOErr("failed rdev for XFS inode, hi%lu, %d\n", h_inode->i_ino, err);
++ out:
++ return rdev;
++}
+diff --git a/fs/aufs/branch.c b/fs/aufs/branch.c
+new file mode 100644
+index 0000000..bcf1a3d
+--- /dev/null
++++ b/fs/aufs/branch.c
+@@ -0,0 +1,1036 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * branch management
++ *
++ * $Id: branch.c,v 1.90 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include <linux/iso_fs.h>
++#include <linux/loop.h>
++#include <linux/romfs_fs.h>
++#include <linux/smp_lock.h>
++#include "aufs.h"
++
++static void au_br_do_free(struct au_branch *br)
++{
++ int i;
++ struct au_wbr *wbr;
++
++ AuTraceEnter();
++
++ if (br->br_xino.xi_file)
++ fput(br->br_xino.xi_file);
++ mutex_destroy(&br->br_xino.xi_nondir_mtx);
++ wbr = br->br_wbr;
++ if (wbr)
++ for (i = 0; i < AuBrWh_Last; i++)
++ dput(wbr->wbr_wh[i]);
++ /* do not call au_br_nfs_lockdep_off() here */
++ if (br->br_mnt && !au_test_nfs(br->br_mnt->mnt_sb))
++ mntput(br->br_mnt);
++ else {
++ lockdep_off();
++ mntput(br->br_mnt);
++ lockdep_on();
++ }
++ AuDebugOn(au_br_count(br));
++ if (wbr) {
++ AuDebugOn(atomic_read(&wbr->wbr_wh_running));
++ au_rwsem_destroy(&wbr->wbr_wh_rwsem);
++ }
++ sysaufs_br_put(br);
++ kfree(wbr);
++ kfree(br);
++}
++
++/*
++ * frees all branches
++ */
++void au_br_free(struct au_sbinfo *sbinfo)
++{
++ aufs_bindex_t bmax;
++ struct au_branch **br;
++
++ AuTraceEnter();
++ bmax = sbinfo->si_bend + 1;
++ br = sbinfo->si_branch;
++ while (bmax--)
++ au_br_do_free(*br++);
++}
++
++/*
++ * find the index of a branch which is specified by @br_id.
++ */
++int au_br_index(struct super_block *sb, aufs_bindex_t br_id)
++{
++ aufs_bindex_t bindex, bend;
++
++ AuTraceEnter();
++
++ bend = au_sbend(sb);
++ for (bindex = 0; bindex <= bend; bindex++)
++ if (au_sbr_id(sb, bindex) == br_id)
++ return bindex;
++ return -1;
++}
++
++/*
++ * test if the @h_sb is real-readonly.
++ */
++int au_test_def_rr(struct super_block *h_sb)
++{
++ switch (h_sb->s_magic) {
++#ifdef CONFIG_AUFS_RR_SQUASHFS
++ case SQUASHFS_MAGIC_LZMA:
++ case SQUASHFS_MAGIC:
++ case SQUASHFS_MAGIC_LZMA_SWAP:
++ case SQUASHFS_MAGIC_SWAP:
++ return 1; /* real readonly */
++#endif
++
++#if defined(CONFIG_ISO9660_FS) || defined(CONFIG_ISO9660_FS_MODULE)
++ case ISOFS_SUPER_MAGIC:
++ return 1;
++#endif
++
++#if defined(CONFIG_CRAMFS) || defined(CONFIG_CRAMFS_MODULE)
++ case CRAMFS_MAGIC:
++ return 1;
++#endif
++
++#if defined(CONFIG_ROMFS_FS) || defined(CONFIG_ROMFS_FS_MODULE)
++ case ROMFS_MAGIC:
++ return 1;
++#endif
++
++ default:
++ return 0;
++ }
++}
++
++/* ---------------------------------------------------------------------- */
++
++/*
++ * test if two hidden_dentries have overlapping branches.
++ */
++static int do_test_overlap(struct super_block *sb, struct dentry *h_d1,
++ struct dentry *h_d2)
++{
++ struct dentry *d;
++
++ LKTRTrace("%.*s, %.*s\n", AuDLNPair(h_d1), AuDLNPair(h_d2));
++
++ d = au_test_subdir(h_d1, h_d2);
++ if (unlikely(d)) {
++ AuDbgDentry(h_d1);
++ AuDbgDentry(h_d2);
++ }
++ return !!d;
++}
++
++static int test_overlap_loopback(struct super_block *sb, struct dentry *h_d1,
++ struct dentry *h_d2)
++{
++#if defined(CONFIG_BLK_DEV_LOOP) || defined(CONFIG_BLK_DEV_LOOP_MODULE)
++ struct inode *h_inode;
++ struct loop_device *l;
++
++ LKTRTrace("%.*s, %.*s\n", AuDLNPair(h_d1), AuDLNPair(h_d2));
++ AuDbgDentry(h_d1);
++ AuDbgDentry(h_d2);
++ AuDbgSb(h_d1->d_sb);
++ AuDbgSb(h_d2->d_sb);
++
++ h_inode = h_d1->d_inode;
++ if (MAJOR(h_inode->i_sb->s_dev) != LOOP_MAJOR)
++ return 0;
++
++ l = h_inode->i_sb->s_bdev->bd_disk->private_data;
++ h_d1 = l->lo_backing_file->f_dentry;
++ /* h_d1 can be local NFS. in this case aufs cannot detect the loop */
++ AuDbgDentry(h_d1);
++ AuDbgDentry(h_d2);
++ AuDbgSb(h_d1->d_sb);
++ AuDbgSb(h_d2->d_sb);
++ if (unlikely(h_d1->d_sb == sb))
++ return 1;
++ return do_test_overlap(sb, h_d1, h_d2);
++#else
++ return 0;
++#endif
++}
++
++static int test_overlap(struct super_block *sb, struct dentry *h_d1,
++ struct dentry *h_d2)
++{
++ LKTRTrace("d1 %.*s, d2 %.*s\n", AuDLNPair(h_d1), AuDLNPair(h_d2));
++
++ if (unlikely(h_d1 == h_d2)) {
++ AuDbgDentry(h_d1);
++ AuDbgDentry(h_d2);
++ return 1;
++ }
++ return do_test_overlap(sb, h_d1, h_d2)
++ || do_test_overlap(sb, h_d2, h_d1)
++ || test_overlap_loopback(sb, h_d1, h_d2)
++ || test_overlap_loopback(sb, h_d2, h_d1);
++}
++
++/* ---------------------------------------------------------------------- */
++
++static int au_br_init_wh(struct super_block *sb, aufs_bindex_t bindex,
++ struct au_branch *br, int new_perm,
++ struct dentry *h_root, struct vfsmount *h_mnt)
++{
++ int err, old_perm;
++ struct inode *h_dir;
++ struct au_wbr *wbr;
++
++ LKTRTrace("b%d, new_perm %d\n", bindex, new_perm);
++ SiMustWriteLock(sb);
++
++ wbr = br->br_wbr;
++ h_dir = h_root->d_inode;
++ old_perm = br->br_perm;
++ vfsub_i_lock_nested(h_dir, AuLsc_I_PARENT);
++ if (wbr)
++ wbr_wh_write_lock(wbr);
++ br->br_perm = new_perm;
++ err = au_wh_init(h_root, br, h_mnt, sb, bindex);
++ br->br_perm = old_perm;
++ if (wbr)
++ wbr_wh_write_unlock(wbr);
++ vfsub_i_unlock(h_dir);
++ if (!err && wbr && !au_br_writable(new_perm)) {
++ AuDebugOn(wbr->wbr_whbase);
++ AuDebugOn(wbr->wbr_plink);
++ AuDebugOn(wbr->wbr_tmp);
++ kfree(wbr);
++ br->br_wbr = NULL;
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/*
++ * returns a newly allocated branch. @new_nbranch is a number of branches
++ * after adding a branch.
++ */
++static struct au_branch *alloc_addbr(struct super_block *sb, int new_nbranch,
++ int perm)
++{
++ struct au_branch **branchp, *add_branch;
++ int sz;
++ void *p;
++ struct dentry *root;
++ struct inode *inode;
++ struct au_hinode *hinodep;
++ struct au_hdentry *hdentryp;
++
++ LKTRTrace("new_nbranch %d\n", new_nbranch);
++ SiMustWriteLock(sb);
++ root = sb->s_root;
++ DiMustWriteLock(root);
++ inode = root->d_inode;
++ IiMustWriteLock(inode);
++
++ add_branch = kmalloc(sizeof(*add_branch), GFP_NOFS);
++ if (unlikely(!add_branch))
++ goto out;
++ add_branch->br_sabr = sysaufs_br_alloc();
++ if (unlikely(!add_branch->br_sabr))
++ goto out;
++ add_branch->br_wbr = NULL;
++ if (au_br_writable(perm)) {
++ add_branch->br_wbr = kmalloc(sizeof(*add_branch->br_wbr),
++ GFP_NOFS);
++ if (unlikely(!add_branch->br_wbr))
++ goto out_sabr;
++ }
++
++ sz = sizeof(*branchp) * (new_nbranch - 1);
++ if (unlikely(!sz))
++ sz = sizeof(*branchp);
++ p = au_sbi(sb)->si_branch;
++ branchp = au_kzrealloc(p, sz, sizeof(*branchp) * new_nbranch, GFP_NOFS);
++ if (unlikely(!branchp))
++ goto out_wbr;
++ au_sbi(sb)->si_branch = branchp;
++
++ sz = sizeof(*hdentryp) * (new_nbranch - 1);
++ if (unlikely(!sz))
++ sz = sizeof(*hdentryp);
++ p = au_di(root)->di_hdentry;
++ hdentryp = au_kzrealloc(p, sz, sizeof(*hdentryp) * new_nbranch,
++ GFP_NOFS);
++ if (unlikely(!hdentryp))
++ goto out_wbr;
++ au_di(root)->di_hdentry = hdentryp;
++
++ sz = sizeof(*hinodep) * (new_nbranch - 1);
++ if (unlikely(!sz))
++ sz = sizeof(*hinodep);
++ p = au_ii(inode)->ii_hinode;
++ hinodep = au_kzrealloc(p, sz, sizeof(*hinodep) * new_nbranch, GFP_NOFS);
++ if (unlikely(!hinodep))
++ goto out_wbr;
++ au_ii(inode)->ii_hinode = hinodep;
++ return add_branch; /* success */
++
++ out_wbr:
++ kfree(add_branch->br_wbr);
++ out_sabr:
++ sysaufs_br_put(add_branch);
++ out:
++ kfree(add_branch);
++ AuTraceErr(-ENOMEM);
++ return ERR_PTR(-ENOMEM);
++}
++
++/*
++ * test if the branch permission is legal or not.
++ */
++static int test_br(struct super_block *sb, struct inode *inode, int brperm,
++ char *path)
++{
++ int err;
++
++ err = 0;
++ if (unlikely(au_br_writable(brperm) && IS_RDONLY(inode))) {
++ AuErr("write permission for readonly fs or inode, %s\n", path);
++ err = -EINVAL;
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++static int au_unsupported_fs(struct super_block *sb)
++{
++ return sb->s_magic == PROC_SUPER_MAGIC
++#ifdef SYSFS_MAGIC
++ || sb->s_magic == SYSFS_MAGIC
++#endif
++ || !strcmp(au_sbtype(sb), "unionfs");
++}
++
++/*
++ * returns:
++ * 0: success, the caller will add it
++ * plus: success, it is already unified, the caller should ignore it
++ * minus: error
++ */
++static int test_add(struct super_block *sb, struct au_opt_add *add, int remount)
++{
++ int err;
++ struct dentry *root;
++ struct inode *inode, *h_inode;
++ aufs_bindex_t bend, bindex;
++
++ LKTRTrace("%s, remo%d\n", add->path, remount);
++
++ root = sb->s_root;
++ bend = au_sbend(sb);
++ if (unlikely(bend >= 0 && au_find_dbindex(root, add->nd.dentry) >= 0)) {
++ err = 1;
++ if (!remount) {
++ err = -EINVAL;
++ AuErr("%s duplicated\n", add->path);
++ }
++ goto out;
++ }
++
++ err = -ENOSPC; /* -E2BIG; */
++ if (unlikely(AUFS_BRANCH_MAX <= add->bindex
++ || AUFS_BRANCH_MAX - 1 <= bend)) {
++ AuErr("number of branches exceeded %s\n", add->path);
++ goto out;
++ }
++
++ err = -EDOM;
++ if (unlikely(add->bindex < 0 || bend + 1 < add->bindex)) {
++ AuErr("bad index %d\n", add->bindex);
++ goto out;
++ }
++
++ inode = add->nd.dentry->d_inode;
++ AuDebugOn(!inode || !S_ISDIR(inode->i_mode));
++ err = -ENOENT;
++ if (unlikely(!inode->i_nlink)) {
++ AuErr("no existence %s\n", add->path);
++ goto out;
++ }
++
++ err = -EINVAL;
++ if (unlikely(inode->i_sb == sb)) {
++ AuErr("%s must be outside\n", add->path);
++ goto out;
++ }
++
++ if (unlikely(au_test_nested(inode->i_sb))) {
++ AuErr("nested " AUFS_NAME " %s\n", add->path);
++ goto out;
++ }
++
++ if (unlikely(au_unsupported_fs(inode->i_sb))) {
++ AuErr("unsupported filesystem, %s\n", add->path);
++ goto out;
++ }
++
++ if (unlikely(au_test_unsupported_nfs(inode->i_sb))) {
++ AuErr(AuNoNfsBranchMsg " %s\n", add->path);
++ goto out;
++ }
++
++ if (unlikely(au_test_unsupported_nfs4(inode->i_sb))) {
++ AuErr(AuNoNfsv4BranchMsg " %s\n", add->path);
++ goto out;
++ }
++
++ err = test_br(sb, add->nd.dentry->d_inode, add->perm, add->path);
++ if (unlikely(err))
++ goto out;
++
++ if (bend < 0)
++ return 0; /* success */
++
++ err = -EINVAL;
++ for (bindex = 0; bindex <= bend; bindex++)
++ if (unlikely(test_overlap(sb, add->nd.dentry,
++ au_h_dptr(root, bindex)))) {
++ AuErr("%s is overlapped\n", add->path);
++ goto out;
++ }
++
++ err = 0;
++ h_inode = au_h_dptr(root, 0)->d_inode;
++ if (unlikely(au_opt_test(au_mntflags(sb), WARN_PERM)
++ && ((h_inode->i_mode & S_IALLUGO)
++ != (inode->i_mode & S_IALLUGO)
++ || h_inode->i_uid != inode->i_uid
++ || h_inode->i_gid != inode->i_gid)))
++ AuWarn("uid/gid/perm %s %u/%u/0%o, %u/%u/0%o\n",
++ add->path,
++ inode->i_uid, inode->i_gid, (inode->i_mode & S_IALLUGO),
++ h_inode->i_uid, h_inode->i_gid,
++ (h_inode->i_mode & S_IALLUGO));
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++static int au_wbr_init(struct au_branch *br, struct super_block *sb,
++ int perm, struct dentry *dentry, struct vfsmount *mnt)
++{
++ int err;
++ struct au_wbr *wbr;
++
++ AuTraceEnter();
++ wbr = br->br_wbr;
++ AuDebugOn(!wbr);
++
++ au_rw_init_nolock(&wbr->wbr_wh_rwsem);
++ memset(wbr->wbr_wh, 0, sizeof(wbr->wbr_wh));
++ atomic_set(&wbr->wbr_wh_running, 0);
++ wbr->wbr_bytes = 0;
++
++ err = au_br_init_wh(sb, /*bindex*/-1, br, perm, dentry, mnt);
++
++ AuTraceErr(err);
++ return err;
++}
++
++static int au_br_init(struct au_branch *br, struct super_block *sb,
++ struct au_opt_add *add)
++{
++ int err;
++ unsigned int mnt_flags;
++
++ AuTraceEnter();
++
++ err = 0;
++ br->br_mnt = NULL;
++ br->br_xino.xi_file = NULL;
++ mutex_init(&br->br_xino.xi_nondir_mtx);
++ atomic_set(&br->br_xino_running, 0);
++ atomic_set(&br->br_count, 0);
++
++ if (au_br_writable(add->perm)) {
++ err = au_wbr_init(br, sb, add->perm, add->nd.dentry,
++ add->nd.mnt);
++ if (unlikely(err))
++ goto out;
++ }
++
++ br->br_mnt = mntget(add->nd.mnt);
++ mnt_flags = au_mntflags(sb);
++ if (au_opt_test(mnt_flags, XINO)) {
++ err = au_xino_br(sb, br, add->nd.dentry->d_inode->i_ino,
++ au_sbr(sb, 0)->br_xino.xi_file, /*do_test*/1);
++ if (unlikely(err)) {
++ AuDebugOn(br->br_xino.xi_file);
++ goto out;
++ }
++#if 0 /* reserved for future use */
++ } else if (au_opt_test(mnt_flags, XINODIR)) {
++ err = au_xinodir_br(sb, br, add->nd.dentry->d_inode->i_ino,
++ /*do_test*/1);
++ if (unlikely(err)) {
++ AuDebugOn(br->br_xino.xi_file);
++ goto out;
++ }
++#endif
++ }
++
++ br->br_id = au_new_br_id(sb);
++ br->br_perm = add->perm;
++ br->br_xino_upper = AUFS_XINO_TRUNC_INIT;
++ br->br_generation = au_sigen(sb);
++ /* smp_mb(); */ /* atomic_set */
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++int au_br_add(struct super_block *sb, struct au_opt_add *add, int remount)
++{
++ int err, amount;
++ aufs_bindex_t bend, add_bindex;
++ struct dentry *root, *dentry;
++ struct au_iinfo *iinfo;
++ struct au_sbinfo *sbinfo;
++ struct au_dinfo *dinfo;
++ struct inode *root_inode;
++ unsigned long long maxb;
++ struct au_branch **branchp, *add_branch;
++ struct au_hdentry *hdentryp;
++ struct au_hinode *hinodep;
++
++ dentry = add->nd.dentry;
++ LKTRTrace("b%d, %s, 0x%x, %.*s\n",
++ add->bindex, add->path, add->perm, AuDLNPair(dentry));
++ SiMustWriteLock(sb);
++ root = sb->s_root;
++ DiMustWriteLock(root);
++ root_inode = root->d_inode;
++ IMustLock(root_inode);
++ IiMustWriteLock(root_inode);
++
++ err = test_add(sb, add, remount);
++ if (unlikely(err < 0))
++ goto out;
++ if (err) {
++ err = 0;
++ goto out; /* success */
++ }
++
++ bend = au_sbend(sb);
++ add_branch = alloc_addbr(sb, bend + 2, add->perm);
++ err = PTR_ERR(add_branch);
++ if (IS_ERR(add_branch))
++ goto out;
++ err = au_br_init(add_branch, sb, add);
++ if (unlikely(err)) {
++ au_br_do_free(add_branch);
++ goto out;
++ }
++
++ add_bindex = add->bindex;
++ if (remount)
++ sysaufs_brs_del(sb);
++
++ sbinfo = au_sbi(sb);
++ dinfo = au_di(root);
++ iinfo = au_ii(root_inode);
++
++ amount = bend + 1 - add_bindex;
++ branchp = sbinfo->si_branch + add_bindex;
++ memmove(branchp + 1, branchp, sizeof(*branchp) * amount);
++ *branchp = add_branch;
++ hdentryp = dinfo->di_hdentry + add_bindex;
++ memmove(hdentryp + 1, hdentryp, sizeof(*hdentryp) * amount);
++ au_h_dentry_init(hdentryp);
++ hinodep = iinfo->ii_hinode + add_bindex;
++ memmove(hinodep + 1, hinodep, sizeof(*hinodep) * amount);
++ hinodep->hi_inode = NULL;
++ au_hin_init(hinodep, NULL);
++
++ sbinfo->si_bend++;
++ dinfo->di_bend++;
++ iinfo->ii_bend++;
++ if (unlikely(bend < 0)) {
++ sbinfo->si_bend = 0;
++ dinfo->di_bstart = 0;
++ iinfo->ii_bstart = 0;
++ }
++ au_set_h_dptr(root, add_bindex, dget(dentry));
++ au_set_h_iptr(root_inode, add_bindex, au_igrab(dentry->d_inode), 0);
++ if (!add_bindex)
++ au_cpup_attr_all(root_inode, /*force*/1);
++ else
++ au_add_nlink(root_inode, dentry->d_inode);
++ maxb = dentry->d_sb->s_maxbytes;
++ if (sb->s_maxbytes < maxb)
++ sb->s_maxbytes = maxb;
++
++ if (remount)
++ sysaufs_brs_add(sb);
++
++ /* safe d_parent reference */
++ if (!au_xino_def_br(sbinfo)
++ && add_branch->br_xino.xi_file
++ && add_branch->br_xino.xi_file->f_dentry->d_parent == dentry)
++ au_xino_def_br_set(add_branch, sbinfo);
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++#define AuVerbose(do_info, fmt, args...) do { \
++ if (!do_info) \
++ LKTRTrace(fmt, ##args); \
++ else \
++ AuInfo(fmt, ##args); \
++} while (0)
++
++/*
++ * test if the branch is deletable or not.
++ */
++static int test_dentry_busy(struct dentry *root, aufs_bindex_t bindex,
++ au_gen_t sigen)
++{
++ int err, i, j, ndentry;
++ struct au_dcsub_pages dpages;
++ struct au_dpage *dpage;
++ struct dentry *d;
++ aufs_bindex_t bstart, bend;
++ unsigned char verbose;
++ struct inode *inode;
++
++ LKTRTrace("b%d, gen%d\n", bindex, sigen);
++ SiMustWriteLock(root->d_sb);
++
++ err = au_dpages_init(&dpages, GFP_NOFS);
++ if (unlikely(err))
++ goto out;
++ err = au_dcsub_pages(&dpages, root, NULL, NULL);
++ if (unlikely(err))
++ goto out_dpages;
++
++ verbose = !!au_opt_test(au_mntflags(root->d_sb), VERBOSE);
++ for (i = 0; !err && i < dpages.ndpage; i++) {
++ dpage = dpages.dpages + i;
++ ndentry = dpage->ndentry;
++ for (j = 0; !err && j < ndentry; j++) {
++ d = dpage->dentries[j];
++ AuDebugOn(!atomic_read(&d->d_count));
++ inode = d->d_inode;
++ AuDebugOn(!inode);
++ if (au_digen(d) == sigen
++ && au_iigen(inode) == sigen)
++ di_read_lock_child(d, AuLock_IR);
++ else {
++ di_write_lock_child(d);
++ err = au_reval_dpath(d, sigen);
++ if (!err)
++ di_downgrade_lock(d, AuLock_IR);
++ else {
++ di_write_unlock(d);
++ break;
++ }
++ }
++
++ bstart = au_dbstart(d);
++ bend = au_dbend(d);
++ if (bstart <= bindex
++ && bindex <= bend
++ && au_h_dptr(d, bindex)
++ && (!S_ISDIR(d->d_inode->i_mode)
++ || bstart == bend)) {
++ err = -EBUSY;
++ AuVerbose(verbose, "busy %.*s\n", AuDLNPair(d));
++ }
++ di_read_unlock(d, AuLock_IR);
++ }
++ }
++
++ out_dpages:
++ au_dpages_free(&dpages);
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++static int test_inode_busy(struct super_block *sb, aufs_bindex_t bindex,
++ au_gen_t sigen)
++{
++ int err;
++ struct inode *i;
++ aufs_bindex_t bstart, bend;
++ unsigned char verbose;
++
++ LKTRTrace("b%d, gen%d\n", bindex, sigen);
++ SiMustWriteLock(sb);
++
++ err = 0;
++ verbose = !!au_opt_test(au_mntflags(sb), VERBOSE);
++ list_for_each_entry(i, &sb->s_inodes, i_sb_list) {
++ AuDebugOn(!atomic_read(&i->i_count));
++ if (!list_empty(&i->i_dentry))
++ continue;
++
++ if (au_iigen(i) == sigen)
++ ii_read_lock_child(i);
++ else {
++ ii_write_lock_child(i);
++ err = au_refresh_hinode_self(i);
++ if (!err)
++ ii_downgrade_lock(i);
++ else {
++ ii_write_unlock(i);
++ break;
++ }
++ }
++
++ bstart = au_ibstart(i);
++ bend = au_ibend(i);
++ if (bstart <= bindex
++ && bindex <= bend
++ && au_h_iptr(i, bindex)
++ && (!S_ISDIR(i->i_mode) || bstart == bend)) {
++ err = -EBUSY;
++ AuVerbose(verbose, "busy i%lu\n", i->i_ino);
++ ii_read_unlock(i);
++ break;
++ }
++ ii_read_unlock(i);
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++static int test_children_busy(struct dentry *root, aufs_bindex_t bindex)
++{
++ int err;
++ au_gen_t sigen;
++
++ LKTRTrace("b%d\n", bindex);
++ SiMustWriteLock(root->d_sb);
++ DiMustWriteLock(root);
++ /* dont trust BKL */
++ AuDebugOn(!kernel_locked());
++
++ sigen = au_sigen(root->d_sb);
++ DiMustNoWaiters(root);
++ IiMustNoWaiters(root->d_inode);
++ di_write_unlock(root);
++ err = test_dentry_busy(root, bindex, sigen);
++ if (!err)
++ err = test_inode_busy(root->d_sb, bindex, sigen);
++ di_write_lock_child(root); /* aufs_write_lock() calls ..._child() */
++
++ AuTraceErr(err);
++ return err;
++}
++
++int au_br_del(struct super_block *sb, struct au_opt_del *del, int remount)
++{
++ int err, rerr, i;
++ aufs_bindex_t bindex, bend, br_id;
++ unsigned char do_wh, verbose;
++ struct au_sbinfo *sbinfo;
++ struct au_dinfo *dinfo;
++ struct au_iinfo *iinfo;
++ struct au_branch *br, **brp;
++ struct au_wbr *wbr;
++ struct au_hdentry *hdp;
++ struct au_hinode *hip;
++
++ LKTRTrace("%s, %.*s\n", del->path, AuDLNPair(del->h_root));
++ SiMustWriteLock(sb);
++ DiMustWriteLock(sb->s_root);
++ IiMustWriteLock(sb->s_root->d_inode);
++
++ err = 0;
++ bindex = au_find_dbindex(sb->s_root, del->h_root);
++ if (bindex < 0) {
++ if (remount)
++ goto out; /* success */
++ err = -ENOENT;
++ AuErr("%s no such branch\n", del->path);
++ goto out;
++ }
++ LKTRTrace("bindex b%d\n", bindex);
++
++ err = -EBUSY;
++ verbose = !!au_opt_test(au_mntflags(sb), VERBOSE);
++ bend = au_sbend(sb);
++ if (unlikely(!bend)) {
++ AuVerbose(verbose, "no more branches left\n");
++ goto out;
++ }
++ br = au_sbr(sb, bindex);
++ if (unlikely(au_br_count(br))) {
++ AuVerbose(verbose, "%d file(s) opened\n", au_br_count(br));
++ goto out;
++ }
++
++ wbr = br->br_wbr;
++ do_wh = wbr && (wbr->wbr_whbase || wbr->wbr_plink || wbr->wbr_tmp);
++ if (do_wh) {
++#if 0 /* reserved for future use */
++ /* remove whiteout base */
++ err = au_br_init_wh(sb, bindex, br, AuBr_RO, del->h_root,
++ br->br_mnt);
++ if (unlikely(err))
++ goto out;
++#else
++ for (i = 0; i < AuBrWh_Last; i++) {
++ dput(wbr->wbr_wh[i]);
++ wbr->wbr_wh[i] = NULL;
++ }
++#endif
++ }
++
++ err = test_children_busy(sb->s_root, bindex);
++ if (unlikely(err)) {
++ if (do_wh)
++ goto out_wh;
++ goto out;
++ }
++
++ err = 0;
++ if (remount)
++ sysaufs_brs_del(sb);
++ sbinfo = au_sbi(sb);
++ dinfo = au_di(sb->s_root);
++ iinfo = au_ii(sb->s_root->d_inode);
++
++ dput(au_h_dptr(sb->s_root, bindex));
++ au_hiput(iinfo->ii_hinode + bindex);
++ br_id = br->br_id;
++ au_br_do_free(br);
++
++ /* todo: realloc and shrink memory? */
++ if (bindex < bend) {
++ const aufs_bindex_t n = bend - bindex;
++
++ brp = sbinfo->si_branch + bindex;
++ memmove(brp, brp + 1, sizeof(*brp) * n);
++ hdp = dinfo->di_hdentry + bindex;
++ memmove(hdp, hdp + 1, sizeof(*hdp) * n);
++ hip = iinfo->ii_hinode + bindex;
++ memmove(hip, hip + 1, sizeof(*hip) * n);
++ }
++ sbinfo->si_branch[0 + bend] = NULL;
++ dinfo->di_hdentry[0 + bend].hd_dentry = NULL;
++ iinfo->ii_hinode[0 + bend].hi_inode = NULL;
++ au_hin_init(iinfo->ii_hinode + bend, NULL);
++
++ sbinfo->si_bend--;
++ dinfo->di_bend--;
++ iinfo->ii_bend--;
++ if (!bindex)
++ au_cpup_attr_all(sb->s_root->d_inode, /*force*/1);
++ else
++ au_sub_nlink(sb->s_root->d_inode, del->h_root->d_inode);
++ if (au_opt_test(au_mntflags(sb), PLINK))
++ au_plink_half_refresh(sb, br_id);
++
++ if (sb->s_maxbytes == del->h_root->d_sb->s_maxbytes) {
++ bend--;
++ sb->s_maxbytes = 0;
++ for (bindex = 0; bindex <= bend; bindex++) {
++ unsigned long long maxb;
++ maxb = au_sbr_sb(sb, bindex)->s_maxbytes;
++ if (sb->s_maxbytes < maxb)
++ sb->s_maxbytes = maxb;
++ }
++ }
++ if (remount)
++ sysaufs_brs_add(sb);
++
++ if (au_xino_def_br(sbinfo) == br)
++ au_xino_def_br_set(NULL, sbinfo);
++ goto out; /* success */
++
++ out_wh:
++ /* revert */
++ rerr = au_br_init_wh(sb, bindex, br, br->br_perm, del->h_root,
++ br->br_mnt);
++ if (rerr)
++ AuWarn("failed re-creating base whiteout, %s. (%d)\n",
++ del->path, rerr);
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++static int do_need_sigen_inc(int a, int b)
++{
++ return au_br_whable(a) && !au_br_whable(b);
++}
++
++static int need_sigen_inc(int old, int new)
++{
++ return do_need_sigen_inc(old, new)
++ || do_need_sigen_inc(new, old);
++}
++
++static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex)
++{
++ int err;
++ struct file *file, *hf;
++
++ AuTraceEnter();
++ SiMustWriteLock(sb);
++
++ /* no need file_list_lock() since sbinfo is locked */
++ err = 0;
++ list_for_each_entry(file, &sb->s_files, f_u.fu_list) {
++ LKTRTrace("%.*s\n", AuDLNPair(file->f_dentry));
++ if (!au_test_aufs_file(file))
++ continue;
++
++ fi_read_lock(file);
++ if (!S_ISREG(file->f_dentry->d_inode->i_mode)
++ || !(file->f_mode & FMODE_WRITE)
++ || au_fbstart(file) != bindex) {
++ FiMustNoWaiters(file);
++ fi_read_unlock(file);
++ continue;
++ }
++
++ if (unlikely(au_test_mmapped(file))) {
++ err = -EBUSY;
++ FiMustNoWaiters(file);
++ fi_read_unlock(file);
++ break;
++ }
++
++ /* todo: already flushed? */
++ hf = au_h_fptr(file, au_fbstart(file));
++ hf->f_flags = au_file_roflags(hf->f_flags);
++ hf->f_mode &= ~FMODE_WRITE;
++ put_write_access(hf->f_dentry->d_inode);
++ FiMustNoWaiters(file);
++ fi_read_unlock(file);
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++int au_br_mod(struct super_block *sb, struct au_opt_mod *mod, int remount,
++ int *do_update)
++{
++ int err;
++ struct dentry *root;
++ aufs_bindex_t bindex;
++ struct au_branch *br;
++ struct inode *hidden_dir;
++
++ LKTRTrace("%s, %.*s, 0x%x\n",
++ mod->path, AuDLNPair(mod->h_root), mod->perm);
++ SiMustWriteLock(sb);
++ root = sb->s_root;
++ DiMustWriteLock(root);
++ IiMustWriteLock(root->d_inode);
++
++ bindex = au_find_dbindex(root, mod->h_root);
++ if (bindex < 0) {
++ if (remount)
++ return 0; /* success */
++ err = -ENOENT;
++ AuErr("%s no such branch\n", mod->path);
++ goto out;
++ }
++ LKTRTrace("bindex b%d\n", bindex);
++
++ hidden_dir = mod->h_root->d_inode;
++ err = test_br(sb, hidden_dir, mod->perm, mod->path);
++ if (unlikely(err))
++ goto out;
++
++ br = au_sbr(sb, bindex);
++ if (br->br_perm == mod->perm)
++ return 0; /* success */
++
++ if (au_br_writable(br->br_perm)) {
++#if 1
++ /* remove whiteout base */
++ err = au_br_init_wh(sb, bindex, br, mod->perm, mod->h_root,
++ br->br_mnt);
++ if (unlikely(err))
++ goto out;
++#else /* reserved for future use */
++ struct au_wbr *wbr;
++ wbr = br->wbr;
++ if (wbr)
++ for (i = 0; i < AuBrWh_Last; i++) {
++ dput(wbr->wbr_wh[i]);
++ wbr->wbr_wh[i] = NULL;
++ }
++#endif
++
++ if (!au_br_writable(mod->perm)) {
++ /* rw --> ro, file might be mmapped */
++
++#if 1 /* todo: test more? */
++ DiMustNoWaiters(root);
++ IiMustNoWaiters(root->d_inode);
++ di_write_unlock(root);
++ err = au_br_mod_files_ro(sb, bindex);
++ /* aufs_write_lock() calls ..._child() */
++ di_write_lock_child(root);
++#endif
++ }
++ } else if (au_br_writable(mod->perm)) {
++ /* ro --> rw */
++ err = -ENOMEM;
++ br->br_wbr = kmalloc(sizeof(*br->br_wbr), GFP_NOFS);
++ if (br->br_wbr) {
++ err = au_wbr_init(br, sb, mod->perm, mod->h_root,
++ br->br_mnt);
++ if (unlikely(err)) {
++ kfree(br->br_wbr);
++ br->br_wbr = NULL;
++ }
++ }
++ }
++
++ if (!err) {
++ *do_update |= need_sigen_inc(br->br_perm, mod->perm);
++ br->br_perm = mod->perm;
++ }
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
+diff --git a/fs/aufs/branch.h b/fs/aufs/branch.h
+new file mode 100644
+index 0000000..ece9b51
+--- /dev/null
++++ b/fs/aufs/branch.h
+@@ -0,0 +1,443 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * branch filesystems and xino for them
++ *
++ * $Id: branch.h,v 1.64 2009/01/26 06:23:47 sfjro Exp $
++ */
++
++#ifndef __AUFS_BRANCH_H__
++#define __AUFS_BRANCH_H__
++
++#ifdef __KERNEL__
++
++#include <linux/fs.h>
++#include <linux/mount.h>
++#include <linux/aufs_type.h>
++#include "misc.h"
++#include "super.h"
++
++/* ---------------------------------------------------------------------- */
++
++/* an entry in a xino file */
++struct au_xino_entry {
++ ino_t ino;
++ /* __u32 h_gen; */ /* reserved for future use */
++} __packed;
++
++/* reserved for future use */
++/* #define AuXino_INVALID_HGEN (-1) */
++
++/* a xino file */
++struct au_xino_file {
++ struct file *xi_file;
++ struct mutex xi_nondir_mtx;
++
++ /* reserved for future use */
++#if 0
++ struct file **xi_file;
++
++ /* array management */
++ unsigned long long xi_limit; /* Max xino file size */
++ unsigned long long xi_size; /* s_maxbytes */
++
++ /* truncation */
++ unsigned long long xi_upper; /* watermark in bytes */
++ unsigned long long xi_step; /* to next watermark in bytes */
++
++ /* truncation */
++ blkcnt_t xi_upper; /* watermark in blocks */
++ atomic_t xi_running;
++#endif
++};
++
++/* members for writable branch only */
++enum {AuBrWh_BASE, AuBrWh_PLINK, AuBrWh_TMP, AuBrWh_Last};
++struct au_wbr {
++ struct au_rwsem wbr_wh_rwsem;
++ struct dentry *wbr_wh[AuBrWh_Last];
++ atomic_t wbr_wh_running;
++#define wbr_whbase wbr_wh[AuBrWh_BASE] /* whiteout base */
++#define wbr_plink wbr_wh[AuBrWh_PLINK] /* pseudo-link dir */
++#define wbr_tmp wbr_wh[AuBrWh_TMP] /* temporary dir */
++
++ /* mfs mode */
++ unsigned long long wbr_bytes;
++};
++
++/* protected by superblock rwsem */
++struct sysaufs_br;
++struct au_branch {
++ struct au_xino_file br_xino;
++
++ aufs_bindex_t br_id;
++
++ int br_perm;
++ struct vfsmount *br_mnt;
++ atomic_t br_count;
++
++ struct au_wbr *br_wbr;
++
++#if 1 /* reserved for future use */
++ /* xino truncation */
++ blkcnt_t br_xino_upper; /* watermark in blocks */
++ atomic_t br_xino_running;
++#endif
++
++
++ au_gen_t br_generation;
++
++ /* an entry under sysfs per mount-point */
++ struct sysaufs_br *br_sabr;
++};
++
++/* ---------------------------------------------------------------------- */
++
++/* branch permission and attribute */
++enum {
++ AuBrPerm_RW, /* writable, linkable wh */
++ AuBrPerm_RO, /* readonly, no wh */
++ AuBrPerm_RR, /* natively readonly, no wh */
++
++ AuBrPerm_RWNoLinkWH, /* un-linkable whiteouts */
++
++ AuBrPerm_ROWH,
++ AuBrPerm_RRWH, /* whiteout-able */
++
++ AuBrPerm_Last
++};
++
++static inline int au_br_writable(int brperm)
++{
++ return brperm == AuBrPerm_RW || brperm == AuBrPerm_RWNoLinkWH;
++}
++
++static inline int au_br_whable(int brperm)
++{
++ return brperm == AuBrPerm_RW
++ || brperm == AuBrPerm_ROWH
++ || brperm == AuBrPerm_RRWH;
++}
++
++#if 0 /* reserved for future use */
++static inline int au_br_linkable_wh(int brperm)
++{
++ return brperm == AuBrPerm_RW;
++}
++#endif
++
++static inline int au_br_hinotifyable(int brperm)
++{
++#ifdef CONFIG_AUFS_HINOTIFY
++ return brperm != AuBrPerm_RR && brperm != AuBrPerm_RRWH;
++#else
++ return 0;
++#endif
++}
++
++/* ---------------------------------------------------------------------- */
++
++/* branch.c */
++struct au_sbinfo;
++void au_br_free(struct au_sbinfo *sinfo);
++int au_test_def_rr(struct super_block *h_sb);
++int au_br_index(struct super_block *sb, aufs_bindex_t br_id);
++struct au_opt_add;
++int au_br_add(struct super_block *sb, struct au_opt_add *add, int remount);
++struct au_opt_del;
++int au_br_del(struct super_block *sb, struct au_opt_del *del, int remount);
++struct au_opt_mod;
++int au_br_mod(struct super_block *sb, struct au_opt_mod *mod, int remount,
++ int *do_update);
++
++/* xino.c */
++#ifndef LLONG_MAX /* before linux-2.6.18 */
++#define LLONG_MAX ((long long)(~0ULL >> 1))
++#endif
++#define Au_LOFF_MAX ((loff_t)LLONG_MAX)
++int au_xib_trunc(struct super_block *sb);
++ssize_t xino_fread(au_readf_t func, struct file *file, void *buf, size_t size,
++ loff_t *pos);
++ssize_t xino_fwrite(au_writef_t func, struct file *file, void *buf, size_t size,
++ loff_t *pos);
++struct file *au_xino_create(struct super_block *sb, char *fname, int silent);
++struct file *au_xino_create2(struct super_block *sb, struct file *base_file,
++ struct file *copy_src);
++ino_t au_xino_new_ino(struct super_block *sb);
++int au_xino_write0(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
++ ino_t ino);
++int au_xino_write(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
++ struct au_xino_entry *xinoe);
++int au_xino_read(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
++ struct au_xino_entry *xinoe);
++int au_xino_br(struct super_block *sb, struct au_branch *br, ino_t hino,
++ struct file *base_file, int do_test);
++int au_xino_trunc(struct super_block *sb, aufs_bindex_t bindex);
++
++struct au_opt_xino;
++int au_xino_set(struct super_block *sb, struct au_opt_xino *xino, int remount);
++void au_xino_clr(struct super_block *sb);
++struct file *au_xino_def(struct super_block *sb);
++
++struct au_opt_xinodir;
++#if 0 /* def CONFIG_AUFS_EXPORT */ /* reserved for future use */
++/* export.c */
++int au_xinodir_br(struct super_block *sb, struct au_branch *br, ino_t hino,
++ int do_test);
++int au_xinodir_set(struct super_block *sb, struct au_opt_xinodir *xinodir,
++ int remount);
++#else
++static inline
++int au_xinodir_br(struct super_block *sb, struct au_branch *br, ino_t hino,
++ int do_test)
++{
++ return 0;
++}
++
++static inline
++int au_xinodir_set(struct super_block *sb, struct au_opt_xinodir *xinodir,
++ int remount)
++{
++ return 0;
++}
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++/* todo: memory barrier? */
++static inline int au_br_count(struct au_branch *br)
++{
++ return atomic_read(&br->br_count);
++}
++
++static inline int au_br_get(struct au_branch *br)
++{
++ return atomic_inc_return(&br->br_count);
++}
++
++static inline int au_br_put(struct au_branch *br)
++{
++ return atomic_dec_return(&br->br_count);
++}
++
++static inline au_gen_t au_br_gen(struct au_branch *br)
++{
++ return br->br_generation;
++}
++
++/*
++ * test if the @br is readonly or not.
++ */
++static inline int au_br_rdonly(struct au_branch *br)
++{
++ return ((br->br_mnt->mnt_sb->s_flags & MS_RDONLY)
++ || !au_br_writable(br->br_perm))
++ ? -EROFS : 0;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/* Superblock to branch */
++static inline
++aufs_bindex_t au_sbr_id(struct super_block *sb, aufs_bindex_t bindex)
++{
++ return au_sbr(sb, bindex)->br_id;
++}
++
++static inline
++struct vfsmount *au_sbr_mnt(struct super_block *sb, aufs_bindex_t bindex)
++{
++ return au_sbr(sb, bindex)->br_mnt;
++}
++
++static inline
++struct super_block *au_sbr_sb(struct super_block *sb, aufs_bindex_t bindex)
++{
++ return au_sbr_mnt(sb, bindex)->mnt_sb;
++}
++
++#if 0 /* reserved for future use */
++static inline int au_sbr_count(struct super_block *sb, aufs_bindex_t bindex)
++{
++ return au_br_count(au_sbr(sb, bindex));
++}
++
++static inline void au_sbr_get(struct super_block *sb, aufs_bindex_t bindex)
++{
++ au_br_get(au_sbr(sb, bindex));
++}
++#endif
++
++static inline void au_sbr_put(struct super_block *sb, aufs_bindex_t bindex)
++{
++ au_br_put(au_sbr(sb, bindex));
++}
++
++static inline int au_sbr_perm(struct super_block *sb, aufs_bindex_t bindex)
++{
++ return au_sbr(sb, bindex)->br_perm;
++}
++
++static inline int au_sbr_whable(struct super_block *sb, aufs_bindex_t bindex)
++{
++ return au_br_whable(au_sbr_perm(sb, bindex));
++}
++
++static inline int au_br_want_write(struct au_branch *br)
++{
++ int err;
++
++ AuDebugOn(!au_br_writable(br->br_perm));
++ err = au_mnt_want_write(br->br_mnt);
++ AuTraceErr(err);
++ return err;
++}
++
++static inline void au_br_drop_write(struct au_branch *br)
++{
++ AuDebugOn(!au_br_writable(br->br_perm));
++ au_mnt_drop_write(br->br_mnt);
++}
++
++static inline int au_test_trunc_xino(struct super_block *sb)
++{
++ return au_test_tmpfs(sb);
++}
++
++/* temporary support for i#1 in cramfs */
++static inline int au_test_unique_ino(struct dentry *h_dentry, ino_t h_ino)
++{
++#if defined(CONFIG_CRAMFS) || defined(CONFIG_CRAMFS_MODULE)
++ if (unlikely(h_dentry->d_sb->s_magic == CRAMFS_MAGIC))
++ return h_ino != 1;
++#endif
++ return 1;
++}
++
++static inline struct vfsmount *au_do_nfsmnt(struct vfsmount *h_mnt)
++{
++ if (!au_test_nfs(h_mnt->mnt_sb)
++ && !au_test_ecryptfs(h_mnt->mnt_sb))
++ return NULL;
++ return h_mnt;
++}
++
++static inline void au_br_nfs_lockdep_off(struct super_block *sb)
++{
++ if (au_test_nfs(sb))
++ lockdep_off();
++}
++
++static inline void au_br_nfs_lockdep_on(struct super_block *sb)
++{
++ /* hoping this condition will be optimized... */
++ if (au_test_nfs(sb))
++ lockdep_on();
++}
++
++#ifdef CONFIG_AUFS_BR_NFS
++static inline int au_test_unsupported_nfs(struct super_block *h_sb)
++{
++ return 0;
++}
++
++/* it doesn't mntget() */
++static inline
++struct vfsmount *au_nfsmnt(struct super_block *sb, aufs_bindex_t bindex)
++{
++ return au_do_nfsmnt(au_sbr_mnt(sb, bindex));
++}
++
++#define AuNoNfsBranchMsg "dummy"
++
++#else
++static inline int au_test_unsupported_nfs(struct super_block *h_sb)
++{
++ return h_sb->s_magic == NFS_SUPER_MAGIC;
++}
++
++/* it doesn't mntget() */
++static inline
++struct vfsmount *au_nfsmnt(struct super_block *sb, aufs_bindex_t bindex)
++{
++ return NULL;
++}
++
++#define _AuNoNfsBranchMsg "NFS branch is not supported"
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 16)
++#define AuNoNfsBranchMsg _AuNoNfsBranchMsg "."
++#else //if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19)
++#define AuNoNfsBranchMsg _AuNoNfsBranchMsg \
++ ", try some configurations and patches included in aufs source CVS."
++#endif
++
++#endif /* CONFIG_AUFS_BR_NFS */
++
++#ifdef CONFIG_AUFS_BR_NFS_V4
++static inline int au_test_unsupported_nfs4(struct super_block *h_sb)
++{
++ return 0;
++}
++
++#define AuNoNfsv4BranchMsg "dummy"
++
++#else
++static inline int au_test_unsupported_nfs4(struct super_block *h_sb)
++{
++ return h_sb->s_magic == NFS_SUPER_MAGIC
++ && !strcmp(h_sb->s_type->name, "nfs4");
++}
++
++#define AuNoNfsv4BranchMsg "NFSv4 branch is not supported" \
++ ", try some configurations and patches included in aufs source CVS."
++
++#endif /* CONFIG_AUFS_BR_NFS_v4 */
++
++/* support atomic open */
++static inline int au_test_fs_intent(struct super_block *h_sb)
++{
++ return au_test_nfs4(h_sb) /*|| au_test_fuse(h_sb)*/;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/*
++ * br_wh_read_lock, br_wh_write_lock
++ * br_wh_read_unlock, br_wh_write_unlock, br_wh_downgrade_lock
++ */
++AuSimpleRwsemFuncs(wbr_wh, struct au_wbr *wbr, wbr->wbr_wh_rwsem);
++
++/* to debug easier, do not make them inlined functions */
++#define WbrWhMustReadLock(wbr) do { \
++ /* SiMustAnyLock(sb); */ \
++ AuRwMustReadLock(&(wbr)->wbr_wh_rwsem); \
++} while (0)
++
++#define WbrWhMustWriteLock(wbr) do { \
++ /* SiMustAnyLock(sb); */ \
++ AuRwMustWriteLock(&(wbr)->wbr_wh_rwsem); \
++} while (0)
++
++#define WbrWhMustAnyLock(br) do { \
++ /* SiMustAnyLock(sb); */ \
++ AuRwMustAnyLock(&(wbr)->wbr_wh_rwsem); \
++} while (0)
++
++#endif /* __KERNEL__ */
++#endif /* __AUFS_BRANCH_H__ */
+diff --git a/fs/aufs/cpup.c b/fs/aufs/cpup.c
+new file mode 100644
+index 0000000..60e55e0
+--- /dev/null
++++ b/fs/aufs/cpup.c
+@@ -0,0 +1,1138 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * copy-up functions, see wbr_policy.c for copy-down
++ *
++ * $Id: cpup.c,v 1.79 2009/01/26 06:23:51 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++/* todo? violent cpup_attr_*() functions don't care inode lock */
++
++void au_cpup_attr_timesizes(struct inode *inode)
++{
++ struct inode *h_inode;
++
++ LKTRTrace("i%lu\n", inode->i_ino);
++ /* todo? IMustLock(inode); */
++ h_inode = au_h_iptr(inode, au_ibstart(inode));
++ AuDebugOn(!h_inode);
++ /* todo? IMustLock(!h_inode); */
++
++ inode->i_atime = h_inode->i_atime;
++ inode->i_mtime = h_inode->i_mtime;
++ inode->i_ctime = h_inode->i_ctime;
++ spin_lock(&inode->i_lock);
++ i_size_write(inode, i_size_read(h_inode));
++ inode->i_blocks = h_inode->i_blocks;
++ spin_unlock(&inode->i_lock);
++}
++
++void au_cpup_attr_nlink(struct inode *inode, int force)
++{
++ struct inode *h_inode;
++ struct super_block *sb;
++ aufs_bindex_t bindex, bend;
++
++ LKTRTrace("i%lu\n", inode->i_ino);
++ /* todo? IMustLock(inode); */
++ AuDebugOn(!inode->i_mode);
++
++ sb = inode->i_sb;
++ bindex = au_ibstart(inode);
++ h_inode = au_h_iptr(inode, bindex);
++
++ if (!force
++ && !S_ISDIR(h_inode->i_mode)
++ && au_opt_test(au_mntflags(sb), PLINK)
++ && au_plink_test(sb, inode))
++ return;
++
++ inode->i_nlink = h_inode->i_nlink;
++
++ /*
++ * fewer nlink makes find(1) noisy, but larger nlink doesn't.
++ * it may includes whplink directory.
++ */
++ if (S_ISDIR(h_inode->i_mode)) {
++ bend = au_ibend(inode);
++ for (bindex++; bindex <= bend; bindex++) {
++ h_inode = au_h_iptr(inode, bindex);
++ if (h_inode)
++ au_add_nlink(inode, h_inode);
++ }
++ }
++}
++
++void au_cpup_attr_changeable(struct inode *inode)
++{
++ struct inode *h_inode;
++
++ LKTRTrace("i%lu\n", inode->i_ino);
++ /* todo? IMustLock(inode); */
++ h_inode = au_h_iptr(inode, au_ibstart(inode));
++ AuDebugOn(!h_inode);
++
++ inode->i_mode = h_inode->i_mode;
++ inode->i_uid = h_inode->i_uid;
++ inode->i_gid = h_inode->i_gid;
++ au_cpup_attr_timesizes(inode);
++ au_cpup_attr_flags(inode, h_inode);
++}
++
++void au_cpup_igen(struct inode *inode, struct inode *h_inode)
++{
++ struct au_iinfo *iinfo = au_ii(inode);
++ iinfo->ii_higen = h_inode->i_generation;
++ iinfo->ii_hsb1 = h_inode->i_sb;
++}
++
++void au_cpup_attr_all(struct inode *inode, int force)
++{
++ struct inode *h_inode;
++
++ LKTRTrace("i%lu\n", inode->i_ino);
++ /* todo? IMustLock(inode); */
++ h_inode = au_h_iptr(inode, au_ibstart(inode));
++ AuDebugOn(!h_inode);
++
++ au_cpup_attr_changeable(inode);
++ if (inode->i_nlink > 0)
++ au_cpup_attr_nlink(inode, force);
++
++ switch (inode->i_mode & S_IFMT) {
++ case S_IFBLK:
++ case S_IFCHR:
++ inode->i_rdev = au_h_rdev(h_inode, /*h_mnt*/NULL,
++ /*h_dentry*/NULL);
++ }
++ inode->i_blkbits = h_inode->i_blkbits;
++ au_cpup_attr_blksize(inode, h_inode);
++ au_cpup_igen(inode, h_inode);
++}
++
++/* ---------------------------------------------------------------------- */
++
++/* Note: dt_dentry and dt_hidden_dentry are not dget/dput-ed */
++
++/* keep the timestamps of the parent dir when cpup */
++void au_dtime_store(struct au_dtime *dt, struct dentry *dentry,
++ struct dentry *h_dentry, struct au_hinode *hinode,
++ struct au_hinode *hdir)
++{
++ struct inode *h_inode;
++
++ LKTRTrace("%.*s, hdir %d\n", AuDLNPair(dentry), !!hdir);
++ AuDebugOn(!dentry || !h_dentry || !h_dentry->d_inode);
++
++ dt->dt_dentry = dentry;
++ dt->dt_h_dentry = h_dentry;
++ dt->dt_hinode = hinode;
++ dt->dt_hdir = hdir;
++ h_inode = h_dentry->d_inode;
++ dt->dt_atime = h_inode->i_atime;
++ dt->dt_mtime = h_inode->i_mtime;
++ /* smp_mb(); */
++}
++
++void au_dtime_revert(struct au_dtime *dt)
++{
++ struct iattr attr;
++ int err;
++ struct au_hin_ignore ign[2];
++ struct vfsub_args vargs;
++
++ LKTRTrace("%.*s\n", AuDLNPair(dt->dt_dentry));
++
++ attr.ia_atime = dt->dt_atime;
++ attr.ia_mtime = dt->dt_mtime;
++ attr.ia_valid = ATTR_FORCE | ATTR_MTIME | ATTR_MTIME_SET
++ | ATTR_ATIME | ATTR_ATIME_SET;
++
++ vfsub_args_init(&vargs, ign,
++ au_test_dlgt(au_mntflags(dt->dt_dentry->d_sb)), 0);
++ /*
++ * IN_ATTRIB should be divided into
++ * IN_ATTRIB_ATIME, IN_ATTRIB_MTIME ...,
++ * and define all ORed new IN_ATTRIB macro.
++ */
++ vfsub_ign_hinode(&vargs, IN_ATTRIB, dt->dt_hinode);
++ vfsub_ign_hinode(&vargs, IN_ATTRIB, dt->dt_hdir);
++ err = vfsub_notify_change(dt->dt_h_dentry, &attr, &vargs);
++ if (unlikely(err))
++ AuWarn("restoring timestamps failed(%d). ignored\n", err);
++}
++
++/* ---------------------------------------------------------------------- */
++
++static noinline_for_stack
++int cpup_iattr(struct dentry *dst, aufs_bindex_t bindex, struct dentry *h_src,
++ struct au_hinode *hdir, struct vfsub_args *vargs)
++{
++ int err, sbits;
++ struct dentry *h_dst;
++ struct iattr ia;
++ struct inode *h_isrc, *h_idst;
++
++ h_dst = au_h_dptr(dst, bindex);
++ LKTRTrace("%.*s\n", AuDLNPair(h_dst));
++ h_idst = h_dst->d_inode;
++ /* todo? IMustLock(h_idst); */
++ h_isrc = h_src->d_inode;
++ /* todo? IMustLock(h_isrc); */
++
++ ia.ia_valid = ATTR_FORCE | ATTR_MODE | ATTR_UID | ATTR_GID
++ | ATTR_ATIME | ATTR_MTIME
++ | ATTR_ATIME_SET | ATTR_MTIME_SET;
++ ia.ia_mode = h_isrc->i_mode;
++ ia.ia_uid = h_isrc->i_uid;
++ ia.ia_gid = h_isrc->i_gid;
++ ia.ia_atime = h_isrc->i_atime;
++ ia.ia_mtime = h_isrc->i_mtime;
++ sbits = !!(ia.ia_mode & (S_ISUID | S_ISGID));
++ au_cpup_attr_flags(h_idst, h_isrc);
++
++ vfsub_args_reinit(vargs);
++ vfsub_ign_hinode(vargs, IN_ATTRIB, hdir);
++ err = vfsub_notify_change(h_dst, &ia, vargs);
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 24)
++ /* is this nfs only? */
++ if (!err && sbits && au_test_nfs(h_dst->d_sb)) {
++ ia.ia_valid = ATTR_FORCE | ATTR_MODE;
++ ia.ia_mode = h_isrc->i_mode;
++ vfsub_args_reinit(vargs);
++ vfsub_ign_hinode(vargs, IN_ATTRIB, hdir);
++ err = vfsub_notify_change(h_dst, &ia, vargs);
++ }
++#endif
++
++ AuTraceErr(err);
++ return err;
++}
++
++/*
++ * to support a sparse file which is opened with O_APPEND,
++ * we need to close the file.
++ */
++static noinline_for_stack
++int cpup_regular(struct dentry *dentry, aufs_bindex_t bdst, aufs_bindex_t bsrc,
++ loff_t len, struct au_hinode *hdir, struct vfsub_args *vargs)
++{
++ int err, i;
++ struct super_block *sb;
++ struct inode *h_inode;
++ enum { SRC, DST };
++ struct {
++ aufs_bindex_t bindex;
++ unsigned int flags;
++ struct dentry *dentry;
++ struct file *file;
++ void *label, *label_file;
++ } *h, hidden[] = {
++ {
++ .bindex = bsrc,
++ .flags = O_RDONLY | O_NOATIME | O_LARGEFILE,
++ .file = NULL,
++ .label = &&out,
++ .label_file = &&out_src_file
++ },
++ {
++ .bindex = bdst,
++ .flags = O_WRONLY | O_NOATIME | O_LARGEFILE,
++ .file = NULL,
++ .label = &&out_src_file,
++ .label_file = &&out_dst_file
++ }
++ };
++
++ LKTRTrace("dentry %.*s, bdst %d, bsrc %d, len %lld\n",
++ AuDLNPair(dentry), bdst, bsrc, len);
++ AuDebugOn(bsrc <= bdst);
++ AuDebugOn(!len);
++ sb = dentry->d_sb;
++ AuDebugOn(au_test_ro(sb, bdst, dentry->d_inode));
++ /* bsrc branch can be ro/rw. */
++
++ h = hidden;
++ for (i = 0; i < 2; i++, h++) {
++ h->dentry = au_h_dptr(dentry, h->bindex);
++ AuDebugOn(!h->dentry);
++ h_inode = h->dentry->d_inode;
++ AuDebugOn(!h_inode || !S_ISREG(h_inode->i_mode));
++ h->file = au_h_open(dentry, h->bindex, h->flags, /*file*/NULL);
++ err = PTR_ERR(h->file);
++ if (IS_ERR(h->file))
++ goto *h->label;
++ err = -EINVAL;
++ if (unlikely(!h->file->f_op))
++ goto *h->label_file;
++ }
++
++ /* stop updating while we copyup */
++ IMustLock(hidden[SRC].dentry->d_inode);
++ err = au_copy_file(hidden[DST].file, hidden[SRC].file, len, hdir, sb,
++ vargs);
++
++ out_dst_file:
++ fput(hidden[DST].file);
++ au_sbr_put(sb, hidden[DST].bindex);
++ out_src_file:
++ fput(hidden[SRC].file);
++ au_sbr_put(sb, hidden[SRC].bindex);
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++static int au_do_cpup_regular(struct dentry *dentry, aufs_bindex_t bdst,
++ aufs_bindex_t bsrc, loff_t len,
++ struct au_hinode *hdir, struct dentry *h_dst,
++ struct vfsub_args *vargs)
++{
++ int err, rerr;
++ loff_t l;
++
++ AuTraceEnter();
++
++ err = 0;
++ l = i_size_read(au_h_iptr(dentry->d_inode, bsrc));
++ if (len == -1 || l < len)
++ len = l;
++ if (len)
++ err = cpup_regular(dentry, bdst, bsrc, len, hdir, vargs);
++ if (!err)
++ goto out; /* success */
++
++ vfsub_args_reinit(vargs);
++ vfsub_ign_hinode(vargs, IN_DELETE, hdir);
++ rerr = vfsub_unlink(hdir->hi_inode, h_dst, vargs);
++ if (rerr) {
++ AuIOErr("failed unlinking cpup-ed %.*s(%d, %d)\n",
++ AuDLNPair(h_dst), err, rerr);
++ err = -EIO;
++ }
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++static int au_do_cpup_symlink(struct dentry *h_dst, struct dentry *h_src,
++ struct inode *h_dir, umode_t mode,
++ struct vfsub_args *vargs)
++{
++ int err, symlen;
++ char *sym;
++ mm_segment_t old_fs;
++
++ AuTraceEnter();
++
++ err = -ENOMEM;
++ sym = __getname();
++ if (unlikely(!sym))
++ goto out;
++
++ old_fs = get_fs();
++ set_fs(KERNEL_DS);
++ symlen = h_src->d_inode->i_op->readlink(h_src, (char __user *)sym,
++ PATH_MAX);
++ err = symlen;
++ set_fs(old_fs);
++
++ if (symlen > 0) {
++ sym[symlen] = 0;
++ err = vfsub_symlink(h_dir, h_dst, sym, mode, vargs);
++ }
++ __putname(sym);
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/* return with hidden dst inode is locked */
++static noinline_for_stack
++int cpup_entry(struct dentry *dentry, aufs_bindex_t bdst, aufs_bindex_t bsrc,
++ loff_t len, unsigned int flags, struct dentry *dst_parent,
++ struct vfsub_args *vargs)
++{
++ int err;
++ unsigned char isdir, hinotify;
++ struct dentry *h_src, *h_dst, *h_parent, *gparent;
++ struct inode *h_inode, *h_dir;
++ struct au_dtime dt;
++ umode_t mode;
++ struct super_block *sb;
++ struct au_hinode *hgdir, *hdir;
++ unsigned int mnt_flags;
++ const int do_dt = au_ftest_cpup(flags, DTIME);
++
++ LKTRTrace("%.*s, i%lu, bdst %d, bsrc %d, len %lld, dtime %u\n",
++ AuDLNPair(dentry), dentry->d_inode->i_ino, bdst, bsrc, len,
++ do_dt);
++ sb = dentry->d_sb;
++ AuDebugOn(bdst >= bsrc || au_test_ro(sb, bdst, NULL));
++ /* bsrc branch can be ro/rw. */
++
++ h_src = au_h_dptr(dentry, bsrc);
++ AuDebugOn(!h_src);
++ h_inode = h_src->d_inode;
++ AuDebugOn(!h_inode);
++ AuDebugOn(h_inode != au_h_iptr(dentry->d_inode, bsrc));
++
++ /* stop referencing while we are creating */
++ h_dst = au_h_dptr(dentry, bdst);
++ AuDebugOn(h_dst && h_dst->d_inode);
++ h_parent = h_dst->d_parent; /* dir inode is locked */
++ h_dir = h_parent->d_inode;
++ IMustLock(h_dir);
++ AuDebugOn(h_parent != h_dst->d_parent);
++
++ hdir = NULL;
++ mnt_flags = au_mntflags(sb);
++ hinotify = !!au_opt_test(mnt_flags, UDBA_INOTIFY);
++ if (hinotify) {
++ hdir = au_hi(dst_parent->d_inode, bdst);
++ AuDebugOn(hdir->hi_inode != h_dir);
++ }
++
++ if (do_dt) {
++ hgdir = NULL;
++ if (hinotify && !IS_ROOT(dst_parent)) {
++ gparent = dget_parent(dst_parent);
++ hgdir = au_hi(gparent->d_inode, bdst);
++ IMustLock(hgdir->hi_inode);
++ dput(gparent);
++ }
++ au_dtime_store(&dt, dst_parent, h_parent, hdir, hgdir);
++ }
++
++ isdir = 0;
++ vfsub_args_reinit(vargs);
++ vfsub_ign_hinode(vargs, IN_CREATE, hdir);
++ mode = h_inode->i_mode;
++ switch (mode & S_IFMT) {
++ case S_IFREG:
++ /* stop updating while we are referencing */
++ IMustLock(h_inode);
++ err = au_h_create(h_dir, h_dst, mode | S_IWUSR, vargs, NULL,
++ au_nfsmnt(sb, bdst));
++ if (!err)
++ err = au_do_cpup_regular(dentry, bdst, bsrc, len,
++ hdir, h_dst, vargs);
++ break;
++ case S_IFDIR:
++ isdir = 1;
++ err = vfsub_mkdir(h_dir, h_dst, mode, vargs);
++ if (!err) {
++ /* setattr case: dir is not locked */
++ if (0 && au_ibstart(dst_parent->d_inode) == bdst)
++ au_cpup_attr_nlink(dst_parent->d_inode,
++ /*force*/1);
++ au_cpup_attr_nlink(dentry->d_inode, /*force*/1);
++ }
++ break;
++ case S_IFLNK:
++ err = au_do_cpup_symlink(h_dst, h_src, h_dir, mode, vargs);
++ break;
++ case S_IFCHR:
++ case S_IFBLK:
++ AuDebugOn(!capable(CAP_MKNOD));
++ /*FALLTHROUGH*/
++ case S_IFIFO:
++ case S_IFSOCK:
++ err = vfsub_mknod(h_dir, h_dst, mode,
++ au_h_rdev(h_inode, /*h_mnt*/NULL, h_src),
++ vargs);
++ break;
++ default:
++ AuIOErr("Unknown inode type 0%o\n", mode);
++ err = -EIO;
++ }
++
++ if (hinotify
++ && !isdir
++ && au_opt_test_xino(mnt_flags)
++ && h_inode->i_nlink == 1
++ /* todo: unnecessary? */
++ /* && dentry->d_inode->i_nlink == 1 */
++ && bdst < bsrc
++ && !au_ftest_cpup(flags, KEEPLINO))
++ au_xino_write0(sb, bsrc, h_inode->i_ino, /*ino*/0);
++ /* ignore this error */
++
++ if (do_dt)
++ au_dtime_revert(&dt);
++ AuTraceErr(err);
++ return err;
++}
++
++/*
++ * copyup the @dentry from @bsrc to @bdst.
++ * the caller must set the both of hidden dentries.
++ * @len is for truncating when it is -1 copyup the entire file.
++ */
++static int au_cpup_single(struct dentry *dentry, aufs_bindex_t bdst,
++ aufs_bindex_t bsrc, loff_t len, unsigned int flags,
++ struct dentry *dst_parent, struct vfsub_args *vargs)
++{
++ int err, rerr;
++ unsigned int mnt_flags;
++ aufs_bindex_t old_ibstart;
++ unsigned char isdir, plink, hinotify;
++ struct au_dtime dt;
++ struct dentry *h_src, *h_dst, *h_parent, *gparent;
++ struct inode *dst_inode, *h_dir, *inode;
++ struct super_block *sb;
++ struct au_hinode *hgdir, *hdir;
++
++ LKTRTrace("%.*s, i%lu, bdst %d, bsrc %d, len %lld, flags 0x%x\n",
++ AuDLNPair(dentry), dentry->d_inode->i_ino, bdst, bsrc, len,
++ flags);
++ sb = dentry->d_sb;
++ AuDebugOn(bsrc <= bdst);
++ h_dst = au_h_dptr(dentry, bdst);
++ AuDebugOn(!h_dst || h_dst->d_inode);
++ h_parent = h_dst->d_parent; /* dir inode is locked */
++ h_dir = h_parent->d_inode;
++ IMustLock(h_dir);
++ h_src = au_h_dptr(dentry, bsrc);
++ AuDebugOn(!h_src || !h_src->d_inode);
++ inode = dentry->d_inode;
++ IiMustWriteLock(inode);
++ if (!dst_parent)
++ dst_parent = dget_parent(dentry);
++ else
++ dget(dst_parent);
++
++ mnt_flags = au_mntflags(sb);
++ plink = !!au_opt_test(mnt_flags, PLINK);
++ hinotify = !!au_opt_test(mnt_flags, UDBA_INOTIFY);
++ hdir = NULL;
++ if (hinotify)
++ hdir = au_hi(dst_parent->d_inode, bdst);
++ dst_inode = au_h_iptr(inode, bdst);
++ if (dst_inode) {
++ if (unlikely(!plink)) {
++ err = -EIO;
++ AuIOErr("i%lu exists on a upper branch "
++ "but plink is disabled\n", inode->i_ino);
++ goto out;
++ }
++
++ if (dst_inode->i_nlink) {
++ const int do_dt = au_ftest_cpup(flags, DTIME);
++
++ h_src = au_plink_lkup(sb, bdst, inode);
++ err = PTR_ERR(h_src);
++ if (IS_ERR(h_src))
++ goto out;
++ if (unlikely(!h_src->d_inode)) {
++ err = -EIO;
++ AuIOErr("i%lu exists on a upper branch "
++ "but plink is broken\n", inode->i_ino);
++ dput(h_src);
++ goto out;
++ }
++
++ if (do_dt) {
++ hgdir = NULL;
++ if (hinotify && !IS_ROOT(dst_parent)) {
++ gparent = dget_parent(dst_parent);
++ hgdir = au_hi(gparent->d_inode, bdst);
++ IMustLock(hgdir->hi_inode);
++ dput(gparent);
++ }
++ au_dtime_store(&dt, dst_parent, h_parent, hdir,
++ hgdir);
++ }
++ vfsub_args_reinit(vargs);
++ vfsub_ign_hinode(vargs, IN_CREATE, hdir);
++ err = vfsub_link(h_src, h_dir, h_dst, vargs);
++ if (do_dt)
++ au_dtime_revert(&dt);
++ dput(h_src);
++ goto out;
++ } else
++ /* todo: cpup_wh_file? */
++ /* udba work */
++ au_update_brange(inode, 1);
++ }
++
++ old_ibstart = au_ibstart(inode);
++ err = cpup_entry(dentry, bdst, bsrc, len, flags, dst_parent, vargs);
++ if (unlikely(err))
++ goto out;
++ dst_inode = h_dst->d_inode;
++ vfsub_i_lock_nested(dst_inode, AuLsc_I_CHILD2);
++
++ /* todo: test dlgt? */
++ err = cpup_iattr(dentry, bdst, h_src, hdir, vargs);
++#if 0 /* reserved for future use */
++ if (0 && !err)
++ err = cpup_xattrs(h_src, h_dst);
++#endif
++ isdir = S_ISDIR(dst_inode->i_mode);
++ if (!err) {
++ if (bdst < old_ibstart)
++ au_set_ibstart(inode, bdst);
++ au_set_h_iptr(inode, bdst, au_igrab(dst_inode),
++ au_hi_flags(inode, isdir));
++ vfsub_i_unlock(dst_inode);
++ if (!isdir
++ && h_src->d_inode->i_nlink > 1
++ && plink)
++ au_plink_append(sb, inode, h_dst, bdst);
++ goto out; /* success */
++ }
++
++ /* revert */
++ vfsub_i_unlock(dst_inode);
++ hgdir = NULL;
++ if (au_opt_test(mnt_flags, UDBA_INOTIFY) && !IS_ROOT(dst_parent)) {
++ gparent = dget_parent(dst_parent);
++ hgdir = au_hi(gparent->d_inode, bdst);
++ dput(gparent);
++ }
++ au_dtime_store(&dt, dst_parent, h_parent, hdir, hgdir);
++ vfsub_args_reinit(vargs);
++ vfsub_ign_hinode(vargs, IN_DELETE, hdir);
++ if (!isdir)
++ rerr = vfsub_unlink(h_dir, h_dst, vargs);
++ else
++ rerr = vfsub_rmdir(h_dir, h_dst, vargs);
++ au_dtime_revert(&dt);
++ if (rerr) {
++ AuIOErr("failed removing broken entry(%d, %d)\n", err, rerr);
++ err = -EIO;
++ }
++
++ out:
++ dput(dst_parent);
++ AuTraceErr(err);
++ return err;
++}
++
++struct au_cpup_single_args {
++ int *errp;
++ struct dentry *dentry;
++ aufs_bindex_t bdst, bsrc;
++ loff_t len;
++ unsigned int flags;
++ struct dentry *dst_parent;
++ struct vfsub_args *vargs;
++};
++
++static void au_call_cpup_single(void *args)
++{
++ struct au_cpup_single_args *a = args;
++ *a->errp = au_cpup_single(a->dentry, a->bdst, a->bsrc, a->len,
++ a->flags, a->dst_parent, a->vargs);
++}
++
++int au_sio_cpup_single(struct dentry *dentry, aufs_bindex_t bdst,
++ aufs_bindex_t bsrc, loff_t len, unsigned int flags,
++ struct dentry *dst_parent)
++{
++ int err, wkq_err;
++ struct dentry *h_dentry;
++ umode_t mode;
++ struct au_hin_ignore ign;
++ struct vfsub_args vargs;
++
++ LKTRTrace("%.*s, i%lu, bdst %d, bsrc %d, len %lld, flags 0x%x\n",
++ AuDLNPair(dentry), dentry->d_inode->i_ino, bdst, bsrc, len,
++ flags);
++
++ vfsub_args_init(&vargs, &ign, au_test_dlgt(au_mntflags(dentry->d_sb)),
++ /*force_unlink*/0);
++ h_dentry = au_h_dptr(dentry, bsrc);
++ mode = h_dentry->d_inode->i_mode & S_IFMT;
++ if ((mode != S_IFCHR && mode != S_IFBLK)
++ || capable(CAP_MKNOD))
++ err = au_cpup_single(dentry, bdst, bsrc, len, flags,
++ dst_parent, &vargs);
++ else {
++ struct au_cpup_single_args args = {
++ .errp = &err,
++ .dentry = dentry,
++ .bdst = bdst,
++ .bsrc = bsrc,
++ .len = len,
++ .flags = flags,
++ .dst_parent = dst_parent,
++ .vargs = &vargs
++ };
++ vfsub_fclr(vargs.flags, DLGT);
++ wkq_err = au_wkq_wait(au_call_cpup_single, &args, /*dlgt*/0);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++/*
++ * copyup the @dentry from the first active hidden branch to @bdst,
++ * using au_cpup_single().
++ */
++static int au_cpup_simple(struct dentry *dentry, aufs_bindex_t bdst, loff_t len,
++ unsigned int flags, struct vfsub_args *vargs)
++{
++ int err;
++ struct inode *inode;
++ aufs_bindex_t bsrc, bend;
++
++ LKTRTrace("%.*s, bdst %d, len %lld, flags 0x%x\n",
++ AuDLNPair(dentry), bdst, len, flags);
++ inode = dentry->d_inode;
++ AuDebugOn(!S_ISDIR(inode->i_mode) && au_dbstart(dentry) < bdst);
++
++ bend = au_dbend(dentry);
++ for (bsrc = bdst + 1; bsrc <= bend; bsrc++)
++ if (au_h_dptr(dentry, bsrc))
++ break;
++ AuDebugOn(!au_h_dptr(dentry, bsrc));
++
++ err = au_lkup_neg(dentry, bdst);
++ if (!err) {
++ err = au_cpup_single(dentry, bdst, bsrc, len, flags, NULL,
++ vargs);
++ if (!err)
++ return 0; /* success */
++
++ /* revert */
++ au_set_h_dptr(dentry, bdst, NULL);
++ au_set_dbstart(dentry, bsrc);
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++struct au_cpup_simple_args {
++ int *errp;
++ struct dentry *dentry;
++ aufs_bindex_t bdst;
++ loff_t len;
++ unsigned int flags;
++ struct vfsub_args *vargs;
++};
++
++static void au_call_cpup_simple(void *args)
++{
++ struct au_cpup_simple_args *a = args;
++ *a->errp = au_cpup_simple(a->dentry, a->bdst, a->len, a->flags,
++ a->vargs);
++}
++
++int au_sio_cpup_simple(struct dentry *dentry, aufs_bindex_t bdst, loff_t len,
++ unsigned int flags)
++{
++ int err, wkq_err;
++ unsigned char do_sio, dlgt;
++ struct dentry *parent;
++ struct inode *h_dir, *dir;
++ struct au_hin_ignore ign;
++ struct vfsub_args vargs;
++
++ LKTRTrace("%.*s, b%d, len %lld, flags 0x%x\n",
++ AuDLNPair(dentry), bdst, len, flags);
++
++ parent = dget_parent(dentry);
++ dir = parent->d_inode;
++ h_dir = au_h_iptr(dir, bdst);
++ dlgt = !!au_test_dlgt(au_mntflags(dir->i_sb));
++ do_sio = !!au_test_h_perm_sio(h_dir, MAY_EXEC | MAY_WRITE, dlgt);
++ if (!do_sio) {
++ /*
++ * testing CAP_MKNOD is for generic fs,
++ * but CAP_FSETID is for xfs only, currently.
++ */
++ umode_t mode = dentry->d_inode->i_mode;
++ do_sio = (((mode & (S_IFCHR | S_IFBLK))
++ && !capable(CAP_MKNOD))
++ || ((mode & (S_ISUID | S_ISGID))
++ && !capable(CAP_FSETID)));
++ }
++ vfsub_args_init(&vargs, &ign, dlgt, /*force_unlink*/0);
++ if (!do_sio)
++ err = au_cpup_simple(dentry, bdst, len, flags, &vargs);
++ else {
++ struct au_cpup_simple_args args = {
++ .errp = &err,
++ .dentry = dentry,
++ .bdst = bdst,
++ .len = len,
++ .flags = flags,
++ .vargs = &vargs
++ };
++ vfsub_fclr(vargs.flags, DLGT);
++ wkq_err = au_wkq_wait(au_call_cpup_simple, &args, /*dlgt*/0);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ }
++
++ dput(parent);
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++static int au_do_cpup_wh(struct dentry *dentry, aufs_bindex_t bdst,
++ struct dentry *wh_dentry, struct file *file,
++ loff_t len, struct vfsub_args *vargs)
++{
++ int err;
++ struct au_dinfo *dinfo;
++ aufs_bindex_t bstart;
++ struct dentry *h_d_bdst, *h_d_bstart;
++
++ AuTraceEnter();
++
++ dinfo = au_di(dentry);
++ bstart = dinfo->di_bstart;
++ h_d_bdst = dinfo->di_hdentry[0 + bdst].hd_dentry;
++ dinfo->di_bstart = bdst;
++ dinfo->di_hdentry[0 + bdst].hd_dentry = wh_dentry;
++ h_d_bstart = dinfo->di_hdentry[0 + bstart].hd_dentry;
++ if (file)
++ dinfo->di_hdentry[0 + bstart].hd_dentry
++ = au_h_fptr(file, au_fbstart(file))->f_dentry;
++ err = au_cpup_single(dentry, bdst, bstart, len, !AuCpup_DTIME,
++ /*h_parent*/NULL, vargs);
++ if (!err && file) {
++ err = au_reopen_nondir(file);
++ dinfo->di_hdentry[0 + bstart].hd_dentry = h_d_bstart;
++ }
++ dinfo->di_hdentry[0 + bdst].hd_dentry = h_d_bdst;
++ dinfo->di_bstart = bstart;
++
++ AuTraceErr(err);
++ return err;
++}
++
++/*
++ * copyup the deleted file for writing.
++ */
++static int au_cpup_wh(struct dentry *dentry, aufs_bindex_t bdst, loff_t len,
++ struct file *file)
++{
++ int err;
++ unsigned char dlgt;
++ struct dentry *parent, *h_parent, *wh_dentry;
++ struct super_block *sb;
++ unsigned int mnt_flags;
++ struct au_dtime dt;
++ struct au_hin_ignore ign;
++ struct vfsub_args vargs;
++ struct au_hinode *hgdir, *hdir;
++ struct au_ndx ndx = {
++ .nd = NULL,
++ .flags = 0,
++ /* .br = NULL */
++ };
++
++ LKTRTrace("%.*s, bdst %d, len %llu\n", AuDLNPair(dentry), bdst, len);
++ AuDebugOn(S_ISDIR(dentry->d_inode->i_mode)
++ || (file && !(file->f_mode & FMODE_WRITE)));
++ DiMustWriteLock(dentry);
++
++ parent = dget_parent(dentry);
++ IiMustAnyLock(parent->d_inode);
++ h_parent = au_h_dptr(parent, bdst);
++ AuDebugOn(!h_parent);
++
++ sb = parent->d_sb;
++ mnt_flags = au_mntflags(sb);
++ dlgt = 0;
++ ndx.nfsmnt = au_nfsmnt(sb, bdst);
++ if (au_test_dlgt(mnt_flags)) {
++ dlgt = 1;
++ au_fset_ndx(ndx.flags, DLGT);
++ }
++ wh_dentry = au_whtmp_lkup(h_parent, &dentry->d_name, &ndx);
++ err = PTR_ERR(wh_dentry);
++ if (IS_ERR(wh_dentry))
++ goto out;
++
++ hdir = NULL;
++ hgdir = NULL;
++ if (au_opt_test(mnt_flags, UDBA_INOTIFY)) {
++ hdir = au_hi(parent->d_inode, bdst);
++ if (!IS_ROOT(parent)) {
++ struct dentry *gparent;
++ gparent = dget_parent(parent);
++ hgdir = au_hi(gparent->d_inode, bdst);
++ dput(gparent);
++ }
++ }
++ au_dtime_store(&dt, parent, h_parent, hdir, hgdir);
++ vfsub_args_init(&vargs, &ign, dlgt, /*force_unlink*/0);
++ err = au_do_cpup_wh(dentry, bdst, wh_dentry, file, len, &vargs);
++ if (unlikely(err))
++ goto out_wh;
++
++ AuDebugOn(!d_unhashed(dentry));
++ /* dget first to force sillyrename on nfs */
++ dget(wh_dentry);
++ vfsub_args_reinit(&vargs);
++ vfsub_ign_hinode(&vargs, IN_DELETE, hdir);
++ err = vfsub_unlink(h_parent->d_inode, wh_dentry, &vargs);
++ if (unlikely(err)) {
++ AuIOErr("failed remove copied-up tmp file %.*s(%d)\n",
++ AuDLNPair(wh_dentry), err);
++ err = -EIO;
++ }
++ au_dtime_revert(&dt);
++ au_set_hi_wh(dentry->d_inode, bdst, wh_dentry);
++
++ out_wh:
++ dput(wh_dentry);
++ out:
++ dput(parent);
++ AuTraceErr(err);
++ return err;
++}
++
++struct au_cpup_wh_args {
++ int *errp;
++ struct dentry *dentry;
++ aufs_bindex_t bdst;
++ loff_t len;
++ struct file *file;
++};
++
++static void au_call_cpup_wh(void *args)
++{
++ struct au_cpup_wh_args *a = args;
++ *a->errp = au_cpup_wh(a->dentry, a->bdst, a->len, a->file);
++}
++
++int au_sio_cpup_wh(struct dentry *dentry, aufs_bindex_t bdst, loff_t len,
++ struct file *file)
++{
++ int err, wkq_err;
++ struct dentry *parent, *h_tmp, *h_parent, *h_dentry;
++ struct inode *dir, *h_dir, *h_tmpdir, *h_inode;
++ struct au_wbr *wbr;
++
++ AuTraceEnter();
++ parent = dget_parent(dentry);
++ dir = parent->d_inode;
++ IiMustAnyLock(dir);
++
++ h_tmp = NULL;
++ h_parent = NULL;
++ h_dir = au_igrab(au_h_iptr(dir, bdst));
++ h_tmpdir = h_dir;
++ if (!h_dir->i_nlink) {
++ DiMustWriteLock(parent);
++ wbr = au_sbr(dentry->d_sb, bdst)->br_wbr;
++ AuDebugOn(!wbr);
++ h_tmp = wbr->wbr_tmp;
++
++ h_parent = dget(au_h_dptr(parent, bdst));
++ au_set_h_dptr(parent, bdst, NULL);
++ au_set_h_dptr(parent, bdst, dget(h_tmp));
++ h_tmpdir = h_tmp->d_inode;
++ au_set_h_iptr(dir, bdst, NULL, 0);
++ au_set_h_iptr(dir, bdst, au_igrab(h_tmpdir), /*flags*/0);
++
++ /* this temporary unlock is safe */
++ if (file)
++ h_dentry = au_h_fptr(file, au_fbstart(file))->f_dentry;
++ else
++ h_dentry = au_h_dptr(dentry, au_dbstart(dentry));
++ h_inode = h_dentry->d_inode;
++ IMustLock(h_inode);
++ vfsub_i_unlock(h_inode);
++ vfsub_i_lock_nested(h_tmpdir, AuLsc_I_PARENT3);
++ vfsub_i_lock_nested(h_inode, AuLsc_I_CHILD);
++ }
++
++ if (!au_test_h_perm_sio
++ (h_tmpdir, MAY_EXEC | MAY_WRITE,
++ au_test_dlgt(au_mntflags(dentry->d_sb))))
++ err = au_cpup_wh(dentry, bdst, len, file);
++ else {
++ struct au_cpup_wh_args args = {
++ .errp = &err,
++ .dentry = dentry,
++ .bdst = bdst,
++ .len = len,
++ .file = file
++ };
++ wkq_err = au_wkq_wait(au_call_cpup_wh, &args, /*dlgt*/0);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ }
++
++ /* todo: is this restore safe? */
++ if (h_tmp) {
++ vfsub_i_unlock(h_tmpdir);
++ au_set_h_iptr(dir, bdst, NULL, 0);
++ au_set_h_iptr(dir, bdst, au_igrab(h_dir), /*flags*/0);
++ au_set_h_dptr(parent, bdst, NULL);
++ au_set_h_dptr(parent, bdst, h_parent);
++ }
++ iput(h_dir);
++ dput(parent);
++
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/*
++ * generic routine for both of copy-up and copy-down.
++ * Although I've tried building a path by dcsub, I gave up this approach.
++ * Since the ancestor directory may be moved/renamed during copy.
++ */
++/* cf. revalidate function in file.c */
++int au_cp_dirs(struct dentry *dentry, aufs_bindex_t bdst,
++ int (*cp)(struct dentry *dentry, aufs_bindex_t bdst,
++ struct dentry *h_parent, void *arg),
++ void *arg)
++{
++ int err;
++ unsigned char pin_flags;
++ struct au_pin pin;
++ struct super_block *sb;
++ struct dentry *d, *parent, *h_parent, *real_parent;
++
++ LKTRTrace("%.*s, b%d, parent i%lu\n",
++ AuDLNPair(dentry), bdst, (unsigned long)parent_ino(dentry));
++ sb = dentry->d_sb;
++ AuDebugOn(au_test_ro(sb, bdst, NULL));
++ err = 0;
++ parent = dget_parent(dentry);
++ IiMustWriteLock(parent->d_inode);
++ if (IS_ROOT(parent))
++ goto out;
++
++ pin_flags = AuPin_MNT_WRITE;
++ if (au_opt_test(au_mntflags(sb), UDBA_INOTIFY))
++ au_fset_pin(pin_flags, DO_GPARENT);
++ au_pin_init(&pin, dentry, bdst, AuLsc_DI_PARENT3, AuLsc_I_PARENT2,
++ pin_flags);
++
++ /* do not use au_dpage */
++ real_parent = parent;
++ while (1) {
++ dput(parent);
++ parent = dget_parent(dentry);
++ h_parent = au_h_dptr(parent, bdst);
++ if (h_parent)
++ goto out; /* success */
++
++ /* find top dir which is needed to cpup */
++ do {
++ d = parent;
++ dput(parent);
++ parent = dget_parent(d);
++ di_read_lock_parent3(parent, !AuLock_IR);
++ h_parent = au_h_dptr(parent, bdst);
++ di_read_unlock(parent, !AuLock_IR);
++ } while (!h_parent);
++
++ if (d != real_parent)
++ di_write_lock_child3(d);
++
++ /* somebody else might create while we were sleeping */
++ if (!au_h_dptr(d, bdst) || !au_h_dptr(d, bdst)->d_inode) {
++ if (au_h_dptr(d, bdst))
++ au_update_dbstart(d);
++
++ au_pin_do_set_dentry(pin.pin + AuPin_PARENT, d);
++ err = au_do_pin(pin.pin + AuPin_PARENT,
++ au_pin_gp(&pin));
++ if (!err) {
++ err = cp(d, bdst, h_parent, arg);
++ au_unpin(&pin);
++ }
++ }
++
++ if (d != real_parent)
++ di_write_unlock(d);
++ if (unlikely(err))
++ break;
++ }
++
++ out:
++ dput(parent);
++ AuTraceErr(err);
++ return err;
++}
++
++static int au_cpup_dir(struct dentry *dentry, aufs_bindex_t bdst,
++ struct dentry *h_parent, void *arg)
++{
++ int err;
++
++ err = au_sio_cpup_simple(dentry, bdst, -1, AuCpup_DTIME);
++
++ AuTraceErr(err);
++ return err;
++}
++
++int au_cpup_dirs(struct dentry *dentry, aufs_bindex_t bdst)
++{
++ int err;
++
++ err = au_cp_dirs(dentry, bdst, au_cpup_dir, NULL);
++
++ AuTraceErr(err);
++ return err;
++}
++
++int au_test_and_cpup_dirs(struct dentry *dentry, aufs_bindex_t bdst)
++{
++ int err;
++ struct dentry *parent;
++ struct inode *dir;
++
++ parent = dget_parent(dentry);
++ dir = parent->d_inode;
++ LKTRTrace("%.*s, b%d, parent i%lu\n",
++ AuDLNPair(dentry), bdst, dir->i_ino);
++ DiMustReadLock(parent);
++ IiMustReadLock(dir);
++
++ err = 0;
++ if (au_h_iptr(dir, bdst))
++ goto out;
++
++ di_read_unlock(parent, AuLock_IR);
++ di_write_lock_parent(parent);
++ /* someone else might change our inode while we were sleeping */
++ if (!au_h_iptr(dir, bdst))
++ err = au_cpup_dirs(dentry, bdst);
++ di_downgrade_lock(parent, AuLock_IR);
++
++ out:
++ dput(parent);
++ AuTraceErr(err);
++ return err;
++}
+diff --git a/fs/aufs/cpup.h b/fs/aufs/cpup.h
+new file mode 100644
+index 0000000..2ae810d
+--- /dev/null
++++ b/fs/aufs/cpup.h
+@@ -0,0 +1,95 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * copy-up/down functions
++ *
++ * $Id: cpup.h,v 1.36 2009/01/26 06:23:51 sfjro Exp $
++ */
++
++#ifndef __AUFS_CPUP_H__
++#define __AUFS_CPUP_H__
++
++#ifdef __KERNEL__
++
++#include <linux/fs.h>
++#include <linux/version.h>
++#include <linux/aufs_type.h>
++
++static inline
++void au_cpup_attr_blksize(struct inode *inode, struct inode *h_inode)
++{
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
++ inode->i_blksize = h_inode->i_blksize;
++#endif
++}
++
++void au_cpup_attr_timesizes(struct inode *inode);
++void au_cpup_attr_nlink(struct inode *inode, int force);
++void au_cpup_attr_changeable(struct inode *inode);
++void au_cpup_igen(struct inode *inode, struct inode *h_inode);
++void au_cpup_attr_all(struct inode *inode, int force);
++
++/* ---------------------------------------------------------------------- */
++
++/* cpup flags */
++#define AuCpup_DTIME 1 /* do dtime_store/revert */
++#define AuCpup_KEEPLINO (1 << 1) /* do not clear the lower xino,
++ for link(2) */
++#define au_ftest_cpup(flags, name) ((flags) & AuCpup_##name)
++#define au_fset_cpup(flags, name) { (flags) |= AuCpup_##name; }
++#define au_fclr_cpup(flags, name) { (flags) &= ~AuCpup_##name; }
++
++int au_sio_cpup_single(struct dentry *dentry, aufs_bindex_t bdst,
++ aufs_bindex_t bsrc, loff_t len, unsigned int flags,
++ struct dentry *dst_parent);
++int au_sio_cpup_simple(struct dentry *dentry, aufs_bindex_t bdst, loff_t len,
++ unsigned int flags);
++int au_sio_cpup_wh(struct dentry *dentry, aufs_bindex_t bdst, loff_t len,
++ struct file *file);
++
++int au_cp_dirs(struct dentry *dentry, aufs_bindex_t bdst,
++ int (*cp)(struct dentry *dentry, aufs_bindex_t bdst,
++ struct dentry *h_parent, void *arg),
++ void *arg);
++int au_cpup_dirs(struct dentry *dentry, aufs_bindex_t bdst);
++int au_test_and_cpup_dirs(struct dentry *dentry, aufs_bindex_t bdst);
++
++/* ---------------------------------------------------------------------- */
++
++/* keep timestamps when copyup */
++struct au_dtime {
++ struct dentry *dt_dentry, *dt_h_dentry;
++ struct au_hinode *dt_hinode, *dt_hdir;
++ struct timespec dt_atime, dt_mtime;
++};
++void au_dtime_store(struct au_dtime *dt, struct dentry *dentry,
++ struct dentry *h_dentry, struct au_hinode *hinode,
++ struct au_hinode *hdir);
++void au_dtime_revert(struct au_dtime *dt);
++
++/* ---------------------------------------------------------------------- */
++
++static inline void au_cpup_attr_flags(struct inode *inode,
++ struct inode *h_inode)
++{
++ inode->i_flags |= h_inode->i_flags & ~(S_DEAD | S_PRIVATE);
++}
++
++#endif /* __KERNEL__ */
++#endif /* __AUFS_CPUP_H__ */
+diff --git a/fs/aufs/dcsub.c b/fs/aufs/dcsub.c
+new file mode 100644
+index 0000000..184eced
+--- /dev/null
++++ b/fs/aufs/dcsub.c
+@@ -0,0 +1,250 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * sub-routines for dentry cache
++ *
++ * $Id: dcsub.c,v 1.16 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++static void au_dpage_free(struct au_dpage *dpage)
++{
++ int i;
++
++ AuTraceEnter();
++ AuDebugOn(!dpage);
++
++ for (i = 0; i < dpage->ndentry; i++)
++ dput(dpage->dentries[i]);
++ free_page((unsigned long)dpage->dentries);
++}
++
++int au_dpages_init(struct au_dcsub_pages *dpages, gfp_t gfp)
++{
++ int err;
++ void *p;
++
++ AuTraceEnter();
++
++ err = -ENOMEM;
++ dpages->dpages = kmalloc(sizeof(*dpages->dpages), gfp);
++ if (unlikely(!dpages->dpages))
++ goto out;
++ p = (void *)__get_free_page(gfp);
++ if (unlikely(!p))
++ goto out_dpages;
++ dpages->dpages[0].ndentry = 0;
++ dpages->dpages[0].dentries = p;
++ dpages->ndpage = 1;
++ return 0; /* success */
++
++ out_dpages:
++ kfree(dpages->dpages);
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++void au_dpages_free(struct au_dcsub_pages *dpages)
++{
++ int i;
++
++ AuTraceEnter();
++
++ for (i = 0; i < dpages->ndpage; i++)
++ au_dpage_free(dpages->dpages + i);
++ kfree(dpages->dpages);
++}
++
++static int au_dpages_append(struct au_dcsub_pages *dpages,
++ struct dentry *dentry, gfp_t gfp)
++{
++ int err, sz;
++ struct au_dpage *dpage;
++ void *p;
++
++ /* AuTraceEnter(); */
++
++ dpage = dpages->dpages + dpages->ndpage - 1;
++ AuDebugOn(!dpage);
++ sz = PAGE_SIZE / sizeof(dentry);
++ if (unlikely(dpage->ndentry >= sz)) {
++ LKTRLabel(new dpage);
++ err = -ENOMEM;
++ sz = dpages->ndpage * sizeof(*dpages->dpages);
++ p = au_kzrealloc(dpages->dpages, sz,
++ sz + sizeof(*dpages->dpages), gfp);
++ if (unlikely(!p))
++ goto out;
++ dpages->dpages = p;
++ dpage = dpages->dpages + dpages->ndpage;
++ p = (void *)__get_free_page(gfp);
++ if (unlikely(!p))
++ goto out;
++ dpage->ndentry = 0;
++ dpage->dentries = p;
++ dpages->ndpage++;
++ }
++
++ dpage->dentries[dpage->ndentry++] = dget(dentry);
++ return 0; /* success */
++
++ out:
++ /* AuTraceErr(err); */
++ return err;
++}
++
++int au_dcsub_pages(struct au_dcsub_pages *dpages, struct dentry *root,
++ au_dpages_test test, void *arg)
++{
++ int err;
++ struct dentry *this_parent = root;
++ struct list_head *next;
++ struct super_block *sb = root->d_sb;
++
++ AuTraceEnter();
++
++ err = 0;
++ spin_lock(&dcache_lock);
++ repeat:
++ next = this_parent->d_subdirs.next;
++ resume:
++ if (this_parent->d_sb == sb
++ && !IS_ROOT(this_parent)
++ && atomic_read(&this_parent->d_count)
++ && this_parent->d_inode
++ && (!test || test(this_parent, arg))) {
++ err = au_dpages_append(dpages, this_parent, GFP_ATOMIC);
++ if (unlikely(err))
++ goto out;
++ }
++
++ while (next != &this_parent->d_subdirs) {
++ struct list_head *tmp = next;
++ struct dentry *dentry = list_entry(tmp, struct dentry, D_CHILD);
++ next = tmp->next;
++ if (/*d_unhashed(dentry) || */!dentry->d_inode)
++ continue;
++ if (!list_empty(&dentry->d_subdirs)) {
++ this_parent = dentry;
++ goto repeat;
++ }
++ if (dentry->d_sb == sb
++ && atomic_read(&dentry->d_count)
++ && (!test || test(dentry, arg))) {
++ err = au_dpages_append(dpages, dentry, GFP_ATOMIC);
++ if (unlikely(err))
++ goto out;
++ }
++ }
++
++ if (this_parent != root) {
++ next = this_parent->D_CHILD.next;
++ this_parent = this_parent->d_parent; /* dcache_lock is locked */
++ goto resume;
++ }
++ out:
++ spin_unlock(&dcache_lock);
++#if 0 /* debug */
++ if (!err) {
++ int i, j;
++ j = 0;
++ for (i = 0; i < dpages->ndpage; i++) {
++ if ((dpages->dpages + i)->ndentry)
++ AuDbg("%d: %d\n",
++ i, (dpages->dpages + i)->ndentry);
++ j += (dpages->dpages + i)->ndentry;
++ }
++ if (j)
++ AuDbg("ndpage %d, %d\n", dpages->ndpage, j);
++ }
++#endif
++ AuTraceErr(err);
++ return err;
++}
++
++int au_dcsub_pages_rev(struct au_dcsub_pages *dpages, struct dentry *dentry,
++ int do_include, au_dpages_test test, void *arg)
++{
++ int err;
++
++ AuTraceEnter();
++
++ err = 0;
++ spin_lock(&dcache_lock);
++ if (do_include && (!test || test(dentry, arg))) {
++ err = au_dpages_append(dpages, dentry, GFP_ATOMIC);
++ if (unlikely(err))
++ goto out;
++ }
++ while (!IS_ROOT(dentry)) {
++ dentry = dentry->d_parent; /* dcache_lock is locked */
++ if (!test || test(dentry, arg)) {
++ err = au_dpages_append(dpages, dentry, GFP_ATOMIC);
++ if (unlikely(err))
++ break;
++ }
++ }
++
++ out:
++ spin_unlock(&dcache_lock);
++
++ AuTraceErr(err);
++ return err;
++}
++
++struct dentry *au_test_subdir(struct dentry *d1, struct dentry *d2)
++{
++ struct dentry *trap, **dentries;
++ int err, i, j;
++ struct au_dcsub_pages dpages;
++ struct au_dpage *dpage;
++
++ LKTRTrace("%.*s, %.*s\n", AuDLNPair(d1), AuDLNPair(d2));
++
++ trap = ERR_PTR(-ENOMEM);
++ err = au_dpages_init(&dpages, GFP_NOFS);
++ if (unlikely(err))
++ goto out;
++ err = au_dcsub_pages_rev(&dpages, d1, /*do_include*/1, NULL, NULL);
++ if (unlikely(err))
++ goto out_dpages;
++
++ trap = d1;
++ for (i = 0; !err && i < dpages.ndpage; i++) {
++ dpage = dpages.dpages + i;
++ dentries = dpage->dentries;
++ for (j = 0; !err && j < dpage->ndentry; j++) {
++ struct dentry *d;
++ d = dentries[j];
++ err = (d == d2);
++ if (!err)
++ trap = d;
++ }
++ }
++ if (!err)
++ trap = NULL;
++
++ out_dpages:
++ au_dpages_free(&dpages);
++ out:
++ AuTraceErrPtr(trap);
++ return trap;
++}
+diff --git a/fs/aufs/dcsub.h b/fs/aufs/dcsub.h
+new file mode 100644
+index 0000000..c437986
+--- /dev/null
++++ b/fs/aufs/dcsub.h
+@@ -0,0 +1,54 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * sub-routines for dentry cache
++ *
++ * $Id: dcsub.h,v 1.9 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#ifndef __AUFS_DCSUB_H__
++#define __AUFS_DCSUB_H__
++
++#ifdef __KERNEL__
++
++#include <linux/dcache.h>
++
++struct au_dpage {
++ int ndentry;
++ struct dentry **dentries;
++};
++
++struct au_dcsub_pages {
++ int ndpage;
++ struct au_dpage *dpages;
++};
++
++/* ---------------------------------------------------------------------- */
++
++int au_dpages_init(struct au_dcsub_pages *dpages, gfp_t gfp);
++void au_dpages_free(struct au_dcsub_pages *dpages);
++typedef int (*au_dpages_test)(struct dentry *dentry, void *arg);
++int au_dcsub_pages(struct au_dcsub_pages *dpages, struct dentry *root,
++ au_dpages_test test, void *arg);
++int au_dcsub_pages_rev(struct au_dcsub_pages *dpages, struct dentry *dentry,
++ int do_include, au_dpages_test test, void *arg);
++struct dentry *au_test_subdir(struct dentry *d1, struct dentry *d2);
++
++#endif /* __KERNEL__ */
++#endif /* __AUFS_DCSUB_H__ */
+diff --git a/fs/aufs/debug.c b/fs/aufs/debug.c
+new file mode 100644
+index 0000000..2591694
+--- /dev/null
++++ b/fs/aufs/debug.c
+@@ -0,0 +1,539 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * debug print functions
++ *
++ * $Id: debug.c,v 1.59 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include <linux/errno.h>
++#include "aufs.h"
++
++atomic_t au_cond = ATOMIC_INIT(0);
++
++char *au_plevel = KERN_DEBUG;
++#define dpri(fmt, arg...) do { \
++ if (LktrCond) \
++ printk("%s" fmt, au_plevel, ##arg); \
++} while (0)
++
++/* ---------------------------------------------------------------------- */
++
++void au_dpri_whlist(struct au_nhash *whlist)
++{
++ int i;
++ struct hlist_head *head;
++ struct au_vdir_wh *tpos;
++ struct hlist_node *pos;
++
++ for (i = 0; i < AuSize_NHASH; i++) {
++ head = whlist->heads + i;
++ hlist_for_each_entry(tpos, pos, head, wh_hash)
++ dpri("b%d, %.*s, %d\n",
++ tpos->wh_bindex,
++ tpos->wh_str.len, tpos->wh_str.name,
++ tpos->wh_str.len);
++ }
++}
++
++void au_dpri_vdir(struct au_vdir *vdir)
++{
++ int i;
++ union au_vdir_deblk_p p;
++ unsigned char *o;
++
++ if (!vdir || IS_ERR(vdir)) {
++ dpri("err %ld\n", PTR_ERR(vdir));
++ return;
++ }
++
++ dpri("nblk %d, deblk %p, last{%d, %p}, ver %lu\n",
++ vdir->vd_nblk, vdir->vd_deblk,
++ vdir->vd_last.i, vdir->vd_last.p.p, vdir->vd_version);
++ for (i = 0; i < vdir->vd_nblk; i++) {
++ p.deblk = vdir->vd_deblk[i];
++ o = p.p;
++ dpri("[%d]: %p\n", i, o);
++#if 0 // verbose
++ int j;
++ for (j = 0; j < 8; j++) {
++ dpri("%p(+%d) {%02x %02x %02x %02x %02x %02x %02x %02x "
++ "%02x %02x %02x %02x %02x %02x %02x %02x}\n",
++ p.p, p.p - o,
++ p.p[0], p.p[1], p.p[2], p.p[3],
++ p.p[4], p.p[5], p.p[6], p.p[7],
++ p.p[8], p.p[9], p.p[10], p.p[11],
++ p.p[12], p.p[13], p.p[14], p.p[15]);
++ p.p += 16;
++ }
++#endif
++ }
++}
++
++static int do_pri_inode(aufs_bindex_t bindex, struct inode *inode,
++ struct dentry *wh)
++{
++ char *n = NULL;
++ int l = 0, ntfy = 0;
++
++ if (!inode || IS_ERR(inode)) {
++ dpri("i%d: err %ld\n", bindex, PTR_ERR(inode));
++ return -1;
++ }
++
++ /* the type of i_blocks depends upon CONFIG_LSF */
++ BUILD_BUG_ON(sizeof(inode->i_blocks) != sizeof(unsigned long)
++ && sizeof(inode->i_blocks) != sizeof(u64));
++ if (wh) {
++ n = (void *)wh->d_name.name;
++ l = wh->d_name.len;
++ }
++
++ ntfy = au_test_inotify(inode);
++ dpri("i%d: i%lu, %s, cnt %d, nl %u, 0%o, ntfy %d, sz %llu, blk %llu,"
++ " ct %lld, np %lu, st 0x%lx, f 0x%x, g %x%s%.*s\n",
++ bindex,
++ inode->i_ino, inode->i_sb ? au_sbtype(inode->i_sb) : "??",
++ atomic_read(&inode->i_count), inode->i_nlink, inode->i_mode,
++ ntfy,
++ i_size_read(inode), (unsigned long long)inode->i_blocks,
++ (long long)timespec_to_ns(&inode->i_ctime) & 0x0ffff,
++ inode->i_mapping ? inode->i_mapping->nrpages : 0,
++ inode->i_state, inode->i_flags, inode->i_generation,
++ l ? ", wh " : "", l, n);
++ return 0;
++}
++
++void au_dpri_inode(struct inode *inode)
++{
++ struct au_iinfo *iinfo;
++ aufs_bindex_t bindex;
++ int err;
++
++ err = do_pri_inode(-1, inode, NULL);
++ if (err || !au_test_aufs(inode->i_sb))
++ return;
++
++ iinfo = au_ii(inode);
++ if (!iinfo)
++ return;
++ dpri("i-1: bstart %d, bend %d, gen %d\n",
++ iinfo->ii_bstart, iinfo->ii_bend, au_iigen(inode));
++ if (iinfo->ii_bstart < 0)
++ return;
++ for (bindex = iinfo->ii_bstart; bindex <= iinfo->ii_bend; bindex++)
++ do_pri_inode(bindex, iinfo->ii_hinode[0 + bindex].hi_inode,
++ iinfo->ii_hinode[0 + bindex].hi_whdentry);
++}
++
++static int do_pri_dentry(aufs_bindex_t bindex, struct dentry *dentry,
++ struct list_head *intent)
++{
++ struct dentry *wh = NULL;
++
++ if (!dentry || IS_ERR(dentry)) {
++ dpri("d%d: err %ld\n", bindex, PTR_ERR(dentry));
++ return -1;
++ }
++ /* do not call dget_parent() here */
++ dpri("d%d: %.*s?/%.*s, %s, cnt %d, flags 0x%x, intent %d\n",
++ bindex,
++ AuDLNPair(dentry->d_parent), AuDLNPair(dentry),
++ dentry->d_sb ? au_sbtype(dentry->d_sb) : "??",
++ atomic_read(&dentry->d_count), dentry->d_flags, !!intent);
++ if (bindex >= 0 && dentry->d_inode && au_test_aufs(dentry->d_sb)) {
++ struct au_iinfo *iinfo = au_ii(dentry->d_inode);
++ if (iinfo)
++ wh = iinfo->ii_hinode[0 + bindex].hi_whdentry;
++ }
++ do_pri_inode(bindex, dentry->d_inode, wh);
++ return 0;
++}
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) \
++ && defined(CONFIG_AUFS_BR_NFS)
++static struct list_head *au_dbg_h_intent(struct au_dinfo *dinfo,
++ aufs_bindex_t bindex)
++{
++ return dinfo->di_hdentry[0 + bindex].hd_intent_list;
++}
++#else
++static struct list_head *au_dbg_h_intent(struct au_dinfo *dinfo,
++ aufs_bindex_t bindex)
++{
++ return NULL;
++}
++#endif
++
++void au_dpri_dentry(struct dentry *dentry)
++{
++ struct au_dinfo *dinfo;
++ aufs_bindex_t bindex;
++ int err;
++
++ err = do_pri_dentry(-1, dentry, NULL);
++ if (err || !au_test_aufs(dentry->d_sb))
++ return;
++
++ dinfo = au_di(dentry);
++ if (!dinfo)
++ return;
++ dpri("d-1: bstart %d, bend %d, bwh %d, bdiropq %d, gen %d\n",
++ dinfo->di_bstart, dinfo->di_bend,
++ dinfo->di_bwh, dinfo->di_bdiropq, au_digen(dentry));
++ if (dinfo->di_bstart < 0)
++ return;
++ for (bindex = dinfo->di_bstart; bindex <= dinfo->di_bend; bindex++)
++ do_pri_dentry(bindex, dinfo->di_hdentry[0 + bindex].hd_dentry,
++ au_dbg_h_intent(dinfo, bindex));
++}
++
++static int do_pri_file(aufs_bindex_t bindex, struct file *file)
++{
++ char a[32];
++
++ if (!file || IS_ERR(file)) {
++ dpri("f%d: err %ld\n", bindex, PTR_ERR(file));
++ return -1;
++ }
++ a[0] = 0;
++ if (bindex < 0
++ && file->f_dentry
++ && au_test_aufs(file->f_dentry->d_sb)
++ && au_fi(file))
++ snprintf(a, sizeof(a), ", mmapped %d", au_test_mmapped(file));
++ dpri("f%d: mode 0x%x, flags 0%o, cnt %ld, pos %llu%s\n",
++ bindex, file->f_mode, file->f_flags, (long)file_count(file),
++ file->f_pos, a);
++ if (file->f_dentry)
++ do_pri_dentry(bindex, file->f_dentry, NULL);
++ return 0;
++}
++
++void au_dpri_file(struct file *file)
++{
++ struct au_finfo *finfo;
++ aufs_bindex_t bindex;
++ int err;
++
++ err = do_pri_file(-1, file);
++ if (err || !file->f_dentry || !au_test_aufs(file->f_dentry->d_sb))
++ return;
++
++ finfo = au_fi(file);
++ if (!finfo)
++ return;
++ if (finfo->fi_bstart < 0)
++ return;
++ for (bindex = finfo->fi_bstart; bindex <= finfo->fi_bend; bindex++) {
++ struct au_hfile *hf;
++ hf = finfo->fi_hfile + bindex;
++ do_pri_file(bindex, hf ? hf->hf_file : NULL);
++ }
++}
++
++static int do_pri_br(aufs_bindex_t bindex, struct au_branch *br)
++{
++ struct vfsmount *mnt;
++ struct super_block *sb;
++
++ if (!br || IS_ERR(br)
++ || !(mnt = br->br_mnt) || IS_ERR(mnt)
++ || !(sb = mnt->mnt_sb) || IS_ERR(sb)) {
++ dpri("s%d: err %ld\n", bindex, PTR_ERR(br));
++ return -1;
++ }
++
++ dpri("s%d: {perm 0x%x, cnt %d, wbr %p}, "
++ "%s, dev 0x%02x%02x, flags 0x%lx, cnt(BIAS) %d, active %d, "
++ "xino %d\n",
++ bindex, br->br_perm, au_br_count(br), br->br_wbr,
++ au_sbtype(sb), MAJOR(sb->s_dev), MINOR(sb->s_dev),
++ sb->s_flags, sb->s_count - S_BIAS,
++ atomic_read(&sb->s_active), !!br->br_xino.xi_file);
++ return 0;
++}
++
++void au_dpri_sb(struct super_block *sb)
++{
++ struct au_sbinfo *sbinfo;
++ aufs_bindex_t bindex;
++ int err;
++ /* to reuduce stack size */
++ struct {
++ struct vfsmount mnt;
++ struct au_branch fake;
++ } *a;
++
++ /* this function can be called from magic sysrq */
++ a = kzalloc(sizeof(*a), GFP_ATOMIC);
++ if (unlikely(!a)) {
++ dpri("no memory\n");
++ return;
++ }
++
++ a->mnt.mnt_sb = sb;
++ a->fake.br_perm = 0;
++ a->fake.br_mnt = &a->mnt;
++ a->fake.br_xino.xi_file = NULL;
++ atomic_set(&a->fake.br_count, 0);
++ smp_mb(); /* atomic_set */
++ err = do_pri_br(-1, &a->fake);
++ kfree(a);
++ dpri("dev 0x%x\n", sb->s_dev);
++ if (err || !au_test_aufs(sb))
++ return;
++
++ sbinfo = au_sbi(sb);
++ if (!sbinfo)
++ return;
++ dpri("nw %d, gen %u\n",
++ atomic_read(&sbinfo->si_nowait.nw_len), sbinfo->si_generation);
++ for (bindex = 0; bindex <= sbinfo->si_bend; bindex++)
++ do_pri_br(bindex, sbinfo->si_branch[0 + bindex]);
++}
++
++/* ---------------------------------------------------------------------- */
++
++void au_dbg_sleep(int sec)
++{
++ static DECLARE_WAIT_QUEUE_HEAD(wq);
++ wait_event_timeout(wq, 0, sec * HZ);
++}
++
++void au_dbg_sleep_jiffy(int jiffy)
++{
++ static DECLARE_WAIT_QUEUE_HEAD(wq);
++ wait_event_timeout(wq, 0, jiffy);
++}
++
++void au_dbg_iattr(struct iattr *ia)
++{
++#define AuBit(name) if (ia->ia_valid & ATTR_ ## name) \
++ dpri(#name "\n")
++ AuBit(MODE);
++ AuBit(UID);
++ AuBit(GID);
++ AuBit(SIZE);
++ AuBit(ATIME);
++ AuBit(MTIME);
++ AuBit(CTIME);
++ AuBit(ATIME_SET);
++ AuBit(MTIME_SET);
++ AuBit(FORCE);
++ AuBit(ATTR_FLAG);
++ AuBit(KILL_SUID);
++ AuBit(KILL_SGID);
++ AuBit(FILE);
++ AuBit(KILL_PRIV);
++ AuBit(OPEN);
++#undef AuBit
++ dpri("ia_file %p\n", ia->ia_file);
++}
++
++/* ---------------------------------------------------------------------- */
++
++void au_debug_sbinfo_init(struct au_sbinfo *sbinfo)
++{
++#ifdef ForceInotify
++ au_opt_set_udba(sbinfo->si_mntflags, UDBA_INOTIFY);
++#endif
++#ifdef ForceDlgt
++ au_opt_set(sbinfo->si_mntflags, DLGT);
++#endif
++#ifdef ForceNoPlink
++ au_opt_clr(sbinfo->si_mntflags, PLINK);
++#endif
++#ifdef ForceNoXino
++ au_opt_clr(sbinfo->si_mntflags, XINO);
++#endif
++#ifdef ForceNoRefrof
++ au_opt_clr(sbinfo->si_mntflags, REFROF);
++#endif
++#ifdef ForceShwh
++ au_opt_set(sbinfo->si_mntflags, SHWH);
++#endif
++
++#ifdef CONFIG_AUFS_DEBUG_LOCK
++ {
++ int i;
++ for (i = 0; i < AuDbgLock_Last; i++)
++ au_spl_init(sbinfo->si_dbg_lock + i);
++ }
++#endif
++}
++
++int __init au_debug_init(void)
++{
++ aufs_bindex_t bindex;
++ struct au_vdir_destr destr;
++
++ bindex = -1;
++ AuDebugOn(bindex >= 0);
++
++ destr.len = -1;
++ AuDebugOn(destr.len < NAME_MAX);
++
++#ifdef CONFIG_4KSTACKS
++ AuWarn("CONFIG_4KSTACKS is defined.\n");
++#endif
++
++#ifdef ForceBrs
++ sysaufs_brs = 1;
++#endif
++
++#if 0 /* verbose debug */
++ {
++ union {
++ struct au_branch *br;
++ struct au_dinfo *di;
++ struct au_finfo *fi;
++ struct au_iinfo *ii;
++ struct au_hinode *hi;
++ struct au_sbinfo *si;
++ struct au_vdir_destr *destr;
++ struct au_vdir_de *de;
++ struct au_vdir_wh *wh;
++ struct au_vdir *vd;
++ } u;
++
++ pr_info("br{"
++ "xino %d, "
++ "id %d, perm %d, mnt %d, count %d, "
++ "wbr %d, "
++ "xup %d, xrun %d, "
++ "gen %d, "
++ "sa %d} %d\n",
++ offsetof(typeof(*u.br), br_xino),
++ offsetof(typeof(*u.br), br_id),
++ offsetof(typeof(*u.br), br_perm),
++ offsetof(typeof(*u.br), br_mnt),
++ offsetof(typeof(*u.br), br_count),
++ offsetof(typeof(*u.br), wbr),
++ offsetof(typeof(*u.br), br_xino_upper),
++ offsetof(typeof(*u.br), br_xino_running),
++ offsetof(typeof(*u.br), br_generation),
++ offsetof(typeof(*u.br), br_sabr),
++ sizeof(*u.br));
++ pr_info("di{gen %d, rwsem %d, bstart %d, bend %d, bwh %d, "
++ "bdiropq %d, hdentry %d} %d\n",
++ offsetof(typeof(*u.di), di_generation),
++ offsetof(typeof(*u.di), di_rwsem),
++ offsetof(typeof(*u.di), di_bstart),
++ offsetof(typeof(*u.di), di_bend),
++ offsetof(typeof(*u.di), di_bwh),
++ offsetof(typeof(*u.di), di_bdiropq),
++ offsetof(typeof(*u.di), di_hdentry),
++ sizeof(*u.di));
++ pr_info("fi{gen %d, rwsem %d, hfile %d, bstart %d, bend %d, "
++ "h_vm_ops %d, vdir_cach %d} %d\n",
++ offsetof(typeof(*u.fi), fi_generation),
++ offsetof(typeof(*u.fi), fi_rwsem),
++ offsetof(typeof(*u.fi), fi_hfile),
++ offsetof(typeof(*u.fi), fi_bstart),
++ offsetof(typeof(*u.fi), fi_bend),
++ offsetof(typeof(*u.fi), fi_h_vm_ops),
++ offsetof(typeof(*u.fi), fi_vdir_cache),
++ sizeof(*u.fi));
++ pr_info("ii{gen %d, hsb %d, "
++ "rwsem %d, bstart %d, bend %d, hinode %d, vdir %d} "
++ "%d\n",
++ offsetof(typeof(*u.ii), ii_generation),
++ offsetof(typeof(*u.ii), ii_hsb1),
++ offsetof(typeof(*u.ii), ii_rwsem),
++ offsetof(typeof(*u.ii), ii_bstart),
++ offsetof(typeof(*u.ii), ii_bend),
++ offsetof(typeof(*u.ii), ii_hinode),
++ offsetof(typeof(*u.ii), ii_vdir),
++ sizeof(*u.ii));
++ pr_info("hi{inode %d, id %d, notify %d, wh %d} %d\n",
++ offsetof(typeof(*u.hi), hi_inode),
++ offsetof(typeof(*u.hi), hi_id),
++ offsetof(typeof(*u.hi), hi_notify),
++ offsetof(typeof(*u.hi), hi_whdentry),
++ sizeof(*u.hi));
++ pr_info("si{nwt %d, rwsem %d, gen %d, stat %d, "
++ "bend %d, last id %d, br %d, "
++ "cpup %d, creat %d, ops %d, ops %d, "
++ "rr %d, mfs %d, "
++ "mntflags %d, "
++ "xread %d, xwrite %d, xib %d, xmtx %d, buf %d, "
++ "xlast %d, xnext %d, "
++ "rdcache %d, "
++ "dirwh %d, "
++ "pl %d, "
++ "mnt %d, "
++ "sys %d, "
++ /* "lvma_l %d, lvma %d" */
++ "} %d\n",
++ offsetof(typeof(*u.si), si_nowait),
++ offsetof(typeof(*u.si), si_rwsem),
++ offsetof(typeof(*u.si), si_generation),
++ offsetof(typeof(*u.si), au_si_status),
++ offsetof(typeof(*u.si), si_bend),
++ offsetof(typeof(*u.si), si_last_br_id),
++ offsetof(typeof(*u.si), si_branch),
++ offsetof(typeof(*u.si), si_wbr_copyup),
++ offsetof(typeof(*u.si), si_wbr_create),
++ offsetof(typeof(*u.si), si_wbr_copyup_ops),
++ offsetof(typeof(*u.si), si_wbr_create_ops),
++ offsetof(typeof(*u.si), si_wbr_rr_next),
++ offsetof(typeof(*u.si), si_wbr_mfs),
++ offsetof(typeof(*u.si), si_mntflags),
++ offsetof(typeof(*u.si), si_xread),
++ offsetof(typeof(*u.si), si_xwrite),
++ offsetof(typeof(*u.si), si_xib),
++ offsetof(typeof(*u.si), si_xib_mtx),
++ offsetof(typeof(*u.si), si_xib_buf),
++ offsetof(typeof(*u.si), si_xib_last_pindex),
++ offsetof(typeof(*u.si), si_xib_next_bit),
++ offsetof(typeof(*u.si), si_rdcache),
++ offsetof(typeof(*u.si), si_dirwh),
++ offsetof(typeof(*u.si), si_plink),
++ offsetof(typeof(*u.si), si_mnt),
++ offsetof(typeof(*u.si), si_sa),
++ /*offsetof(typeof(*u.si), si_lvma_lock),
++ offsetof(typeof(*u.si), si_lvma),*/
++ sizeof(*u.si));
++ pr_info("destr{len %d, name %d} %d\n",
++ offsetof(typeof(*u.destr), len),
++ offsetof(typeof(*u.destr), name),
++ sizeof(*u.destr));
++ pr_info("de{ino %d, type %d, str %d} %d\n",
++ offsetof(typeof(*u.de), de_ino),
++ offsetof(typeof(*u.de), de_type),
++ offsetof(typeof(*u.de), de_str),
++ sizeof(*u.de));
++ pr_info("wh{hash %d, bindex %d, str %d} %d\n",
++ offsetof(typeof(*u.wh), wh_hash),
++ offsetof(typeof(*u.wh), wh_bindex),
++ offsetof(typeof(*u.wh), wh_str),
++ sizeof(*u.wh));
++ pr_info("vd{deblk %d, nblk %d, last %d, ver %d, jiffy %d} %d\n",
++ offsetof(typeof(*u.vd), vd_deblk),
++ offsetof(typeof(*u.vd), vd_nblk),
++ offsetof(typeof(*u.vd), vd_last),
++ offsetof(typeof(*u.vd), vd_version),
++ offsetof(typeof(*u.vd), vd_jiffy),
++ sizeof(*u.vd));
++ }
++#endif
++
++ return 0;
++}
+diff --git a/fs/aufs/debug.h b/fs/aufs/debug.h
+new file mode 100644
+index 0000000..a7bba3c
+--- /dev/null
++++ b/fs/aufs/debug.h
+@@ -0,0 +1,337 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * debug print functions
++ *
++ * $Id: debug.h,v 1.54 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#ifndef __AUFS_DEBUG_H__
++#define __AUFS_DEBUG_H__
++
++#ifdef __KERNEL__
++
++#include <linux/fs.h>
++#include <linux/kd.h>
++#include <linux/vt_kern.h>
++#include <linux/sysrq.h>
++
++/* to debug easier, do not make it an inlined function */
++#define MtxMustLock(mtx) AuDebugOn(!mutex_is_locked(mtx))
++
++#ifdef CONFIG_AUFS_DEBUG
++/* sparse warns about pointer */
++#define AuDebugOn(a) BUG_ON(!!(a))
++extern atomic_t au_cond;
++#define au_debug_on() atomic_inc_return(&au_cond)
++#define au_debug_off() atomic_dec_return(&au_cond)
++static inline int au_debug_test(void)
++{
++ return atomic_read(&au_cond);
++}
++#else
++#define AuDebugOn(a) do {} while (0)
++#define au_debug_on() do {} while (0)
++#define au_debug_off() do {} while (0)
++static inline int au_debug_test(void)
++{
++ return 0;
++}
++#endif /* CONFIG_AUFS_DEBUG */
++
++/* ---------------------------------------------------------------------- */
++
++/* debug print */
++#if defined(CONFIG_LKTR) || defined(CONFIG_LKTR_MODULE)
++#include <linux/lktr.h>
++#ifdef CONFIG_AUFS_DEBUG
++#undef LktrCond
++#define LktrCond unlikely(au_debug_test() || (lktr_cond && lktr_cond()))
++#endif
++#else
++#define LktrCond au_debug_test()
++#define LKTRDumpVma(pre, vma, suf) do {} while (0)
++#define LKTRDumpStack() do {} while (0)
++#define LKTRTrace(fmt, args...) do { \
++ if (LktrCond) \
++ AuDbg(fmt, ##args); \
++} while (0)
++#define LKTRLabel(label) LKTRTrace("%s\n", #label)
++#endif /* CONFIG_LKTR */
++
++#define AuTraceErr(e) do { \
++ if (unlikely((e) < 0)) \
++ LKTRTrace("err %d\n", (int)(e)); \
++} while (0)
++
++#define AuTraceErrPtr(p) do { \
++ if (IS_ERR(p)) \
++ LKTRTrace("err %ld\n", PTR_ERR(p)); \
++} while (0)
++
++#define AuTraceEnter() LKTRLabel(enter)
++
++/* dirty macros for debug print, use with "%.*s" and caution */
++#define AuLNPair(qstr) (qstr)->len, (qstr)->name
++#define AuDLNPair(d) AuLNPair(&(d)->d_name)
++
++/* ---------------------------------------------------------------------- */
++
++#define AuDpri(lvl, fmt, arg...) \
++ printk(lvl AUFS_NAME " %s:%d:%s[%d]: " fmt, \
++ __func__, __LINE__, current->comm, current->pid, ##arg)
++#define AuDbg(fmt, arg...) AuDpri(KERN_DEBUG, fmt, ##arg)
++#define AuInfo(fmt, arg...) AuDpri(KERN_INFO, fmt, ##arg)
++#define AuWarn(fmt, arg...) AuDpri(KERN_WARNING, fmt, ##arg)
++#define AuErr(fmt, arg...) AuDpri(KERN_ERR, fmt, ##arg)
++#define AuIOErr(fmt, arg...) AuErr("I/O Error, " fmt, ##arg)
++#define AuIOErrWhck(fmt, arg...) AuErr("I/O Error, try whck. " fmt, ##arg)
++#define AuWarn1(fmt, arg...) do { \
++ static unsigned char _c; \
++ if (!_c++) \
++ AuWarn(fmt, ##arg); \
++} while (0)
++
++#define AuErr1(fmt, arg...) do { \
++ static unsigned char _c; \
++ if (!_c++) \
++ AuErr(fmt, ##arg); \
++} while (0)
++
++#define AuIOErr1(fmt, arg...) do { \
++ static unsigned char _c; \
++ if (!_c++) \
++ AuIOErr(fmt, ##arg); \
++} while (0)
++
++#define AuUnsupportMsg "This operation is not supported." \
++ " Please report this application to aufs-users ML."
++#define AuUnsupport(fmt, args...) do { \
++ AuErr(AuUnsupportMsg "\n" fmt, ##args); \
++ dump_stack(); \
++} while (0)
++
++/* ---------------------------------------------------------------------- */
++
++struct au_sbinfo;
++#ifdef CONFIG_AUFS_DEBUG
++extern char *au_plevel;
++struct au_nhash;
++void au_dpri_whlist(struct au_nhash *whlist);
++struct au_vdir;
++void au_dpri_vdir(struct au_vdir *vdir);
++void au_dpri_inode(struct inode *inode);
++void au_dpri_dentry(struct dentry *dentry);
++void au_dpri_file(struct file *filp);
++void au_dpri_sb(struct super_block *sb);
++void au_dbg_sleep(int sec);
++void au_dbg_sleep_jiffy(int jiffy);
++
++#ifndef ATTR_OPEN
++#define ATTR_OPEN 0
++#endif
++#ifndef ATTR_KILL_PRIV
++#define ATTR_KILL_PRIV 0
++#endif
++void au_dbg_iattr(struct iattr *ia);
++int __init au_debug_init(void);
++void au_debug_sbinfo_init(struct au_sbinfo *sbinfo);
++#define AuDbgWhlist(w) do { \
++ LKTRTrace(#w "\n"); \
++ au_dpri_whlist(w); \
++} while (0)
++
++#define AuDbgVdir(v) do { \
++ LKTRTrace(#v "\n"); \
++ au_dpri_vdir(v); \
++} while (0)
++
++#define AuDbgInode(i) do { \
++ LKTRTrace(#i "\n"); \
++ au_dpri_inode(i); \
++} while (0)
++
++#define AuDbgDentry(d) do { \
++ LKTRTrace(#d "\n"); \
++ au_dpri_dentry(d); \
++} while (0)
++
++#define AuDbgFile(f) do { \
++ LKTRTrace(#f "\n"); \
++ au_dpri_file(f); \
++} while (0)
++
++#define AuDbgSb(sb) do { \
++ LKTRTrace(#sb "\n"); \
++ au_dpri_sb(sb); \
++} while (0)
++
++#define AuDbgSleep(sec) do { \
++ AuDbg("sleep %d sec\n", sec); \
++ au_dbg_sleep(sec); \
++} while (0)
++
++#define AuDbgSleepJiffy(jiffy) do { \
++ AuDbg("sleep %d jiffies\n", jiffy); \
++ au_dbg_sleep_jiffy(jiffy); \
++} while (0)
++
++#define AuDbgIAttr(ia) do { \
++ AuDbg("ia_valid 0x%x\n", (ia)->ia_valid); \
++ au_dbg_iattr(ia); \
++} while (0)
++#else
++static inline int au_debug_init(void)
++{
++ return 0;
++}
++static inline void au_debug_sbinfo_init(struct au_sbinfo *sbinfo)
++{
++ /* empty */
++}
++#define AuDbgWhlist(w) do {} while (0)
++#define AuDbgVdir(v) do {} while (0)
++#define AuDbgInode(i) do {} while (0)
++#define AuDbgDentry(d) do {} while (0)
++#define AuDbgFile(f) do {} while (0)
++#define AuDbgSb(sb) do {} while (0)
++#define AuDbgSleep(sec) do {} while (0)
++#define AuDbgSleepJiffy(jiffy) do {} while (0)
++#define AuDbgIAttr(ia) do {} while (0)
++#endif /* CONFIG_AUFS_DEBUG */
++
++#ifdef DbgUdbaRace
++#define AuDbgSleep_UdbaRace() AuDbgSleep(DbgUdbaRace)
++#else
++#define AuDbgSleep_UdbaRace() do {} while (0)
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++#ifdef CONFIG_AUFS_MAGIC_SYSRQ
++int __init au_sysrq_init(void);
++void au_sysrq_fin(void);
++
++#if defined(CONFIG_HW_CONSOLE) \
++ && LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19)
++#define au_dbg_blocked() do { \
++ WARN_ON(1); \
++ handle_sysrq('w', vc_cons[fg_console].d->vc_tty); \
++} while (0)
++#else
++#define au_dbg_blocked() do {} while (0)
++#endif
++
++#else
++static inline int au_sysrq_init(void)
++{
++ return 0;
++}
++#define au_sysrq_fin() do {} while (0)
++#define au_dbg_blocked() do {} while (0)
++#endif /* CONFIG_AUFS_MAGIC_SYSRQ */
++
++enum {
++ AuDbgLock_SI_LOCKING,
++ AuDbgLock_SI_LOCKED,
++ AuDbgLock_DI_LOCKING,
++ AuDbgLock_DI_LOCKED,
++ AuDbgLock_II_LOCKING,
++ AuDbgLock_II_LOCKED,
++ AuDbgLock_Last
++};
++#ifdef CONFIG_AUFS_DEBUG_LOCK
++void au_dbg_locking_si_reg(struct super_block *sb, int flags);
++void au_dbg_locking_si_unreg(struct super_block *sb, int flags);
++void au_dbg_locked_si_reg(struct super_block *sb, int flags);
++void au_dbg_locked_si_unreg(struct super_block *sb, int flags);
++void au_dbg_locking_di_reg(struct dentry *d, int flags, unsigned int lsc);
++void au_dbg_locking_di_unreg(struct dentry *d, int flags);
++void au_dbg_locked_di_reg(struct dentry *d, int flags, unsigned int lsc);
++void au_dbg_locked_di_unreg(struct dentry *d, int flags);
++void au_dbg_locking_ii_reg(struct inode *i, int flags, unsigned int lsc);
++void au_dbg_locking_ii_unreg(struct inode *i, int flags);
++void au_dbg_locked_ii_reg(struct inode *i, int flags, unsigned int lsc);
++void au_dbg_locked_ii_unreg(struct inode *i, int flags);
++#else
++static inline
++void au_dbg_locking_si_reg(struct super_block *sb, int flags)
++{
++ /* empty */
++}
++static inline
++void au_dbg_locking_si_unreg(struct super_block *sb, int flags)
++{
++ /* empty */
++}
++static inline
++void au_dbg_locked_si_reg(struct super_block *sb, int flags)
++{
++ /* empty */
++}
++static inline
++void au_dbg_locked_si_unreg(struct super_block *sb, int flags)
++{
++ /* empty */
++}
++
++static inline
++void au_dbg_locking_di_reg(struct dentry *d, int flags, unsigned int lsc)
++{
++ /* empty */
++}
++static inline
++void au_dbg_locking_di_unreg(struct dentry *d, int flags)
++{
++ /* empty */
++}
++static inline
++void au_dbg_locked_di_reg(struct dentry *d, int flags, unsigned int lsc)
++{
++ /* empty */
++}
++static inline
++void au_dbg_locked_di_unreg(struct dentry *d, int flags)
++{
++ /* empty */
++}
++static inline
++void au_dbg_locking_ii_reg(struct inode *i, int flags, unsigned int lsc)
++{
++ /* empty */
++}
++static inline
++void au_dbg_locking_ii_unreg(struct inode *i, int flags)
++{
++ /* empty */
++}
++static inline
++void au_dbg_locked_ii_reg(struct inode *i, int flags, unsigned int lsc)
++{
++ /* empty */
++}
++static inline
++void au_dbg_locked_ii_unreg(struct inode *i, int flags)
++{
++ /* empty */
++}
++#endif /* CONFIG_AUFS_DEBUG_LOCK */
++
++#endif /* __KERNEL__ */
++#endif /* __AUFS_DEBUG_H__ */
+diff --git a/fs/aufs/dentry.c b/fs/aufs/dentry.c
+new file mode 100644
+index 0000000..e1d992e
+--- /dev/null
++++ b/fs/aufs/dentry.c
+@@ -0,0 +1,960 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * lookup and dentry operations
++ *
++ * $Id: dentry.c,v 1.86 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++/* ---------------------------------------------------------------------- */
++
++/*
++ * au_lkup_one() is a generic abstract entry function which calls
++ * lookup_one_len() or __lookup_hash() finally. it is some condisions that makes
++ * lookup complicated, which are nfs branch, open-intent and dlgt mode.
++ */
++
++#if defined(CONFIG_AUFS_BR_NFS) || defined(CONFIG_AUFS_DLGT)
++/* cf. lookup_one_len() in linux/fs/namei.c */
++struct dentry *au_lkup_one(const char *name, struct dentry *parent, int len,
++ struct au_ndx *ndx)
++{
++ struct dentry *dentry;
++
++ LKTRTrace("%.*s/%.*s, ndx{%d, 0x%x}\n",
++ AuDLNPair(parent), len, name, !!ndx->nfsmnt, ndx->flags);
++
++ ndx->nd_file = NULL;
++ if (!ndx->nfsmnt)
++ dentry = au_lkup_one_dlgt(name, parent, len, ndx->flags);
++ else
++ dentry = au_lkup_hash(name, parent, len, ndx);
++
++ AuTraceErrPtr(dentry);
++ return dentry;
++}
++#endif /* CONFIG_AUFS_BR_NFS || CONFIG_AUFS_DLGT */
++
++struct au_lkup_one_args {
++ struct dentry **errp;
++ const char *name;
++ struct dentry *parent;
++ int len;
++ struct au_ndx *ndx;
++};
++
++static void au_call_lkup_one(void *args)
++{
++ struct au_lkup_one_args *a = args;
++ *a->errp = au_lkup_one(a->name, a->parent, a->len, a->ndx);
++}
++
++#define AuLkup_ALLOW_NEG 1
++#define AuLkup_DLGT (1 << 1)
++#define AuLkup_DIRPERM1 (1 << 2)
++#define au_ftest_lkup(flags, name) ((flags) & AuLkup_##name)
++#define au_fset_lkup(flags, name) { (flags) |= AuLkup_##name; }
++#define au_fclr_lkup(flags, name) { (flags) &= ~AuLkup_##name; }
++#ifndef CONFIG_AUFS_DLGT
++#undef AuLkup_DLGT
++#define AuLkup_DLGT 0
++#undef AuLkup_DIRPERM1
++#define AuLkup_DIRPERM1 0
++#endif
++
++struct au_do_lookup_args {
++ unsigned int flags;
++ mode_t type;
++ struct nameidata *nd;
++};
++
++/*
++ * returns positive/negative dentry, NULL or an error.
++ * NULL means whiteout-ed or not-found.
++ */
++static /* noinline_for_stack */
++struct dentry *au_do_lookup(struct dentry *h_parent, struct dentry *dentry,
++ aufs_bindex_t bindex, struct qstr *wh_name,
++ struct au_do_lookup_args *args)
++{
++ struct dentry *h_dentry;
++ int err, wh_found, opq;
++ unsigned char wh_able;
++ struct inode *h_dir, *h_inode, *inode;
++ struct qstr *name;
++ struct super_block *sb;
++ unsigned int nd_flags;
++ struct au_ndx ndx = {
++ .flags = 0,
++ .nd = args->nd
++ };
++ const int allow_neg = au_ftest_lkup(args->flags, ALLOW_NEG);
++
++ LKTRTrace("%.*s/%.*s, b%d, {flags 0x%x, type 0%o, nd %d}\n",
++ AuDLNPair(h_parent), AuDLNPair(dentry), bindex,
++ args->flags, args->type, !!args->nd);
++ if (args->nd)
++ LKTRTrace("nd{0x%x}\n", args->nd->flags);
++ AuDebugOn(IS_ROOT(dentry));
++ h_dir = h_parent->d_inode;
++
++ nd_flags = 0;
++ wh_found = 0;
++ sb = dentry->d_sb;
++ ndx.nfsmnt = au_nfsmnt(sb, bindex);
++ if (au_ftest_lkup(args->flags, DLGT))
++ au_fset_ndx(ndx.flags, DLGT);
++ if (au_ftest_lkup(args->flags, DIRPERM1))
++ au_fset_ndx(ndx.flags, DIRPERM1);
++ LKTRTrace("nfsmnt %p\n", ndx.nfsmnt);
++ ndx.br = au_sbr(sb, bindex);
++ wh_able = !!au_br_whable(ndx.br->br_perm);
++ name = &dentry->d_name;
++ if (wh_able)
++ wh_found = au_test_robr_wh(name, h_parent, wh_name,
++ /*try_sio*/0, &ndx);
++ h_dentry = ERR_PTR(wh_found);
++ if (!wh_found)
++ goto real_lookup;
++ if (unlikely(wh_found < 0))
++ goto out;
++
++ /* We found a whiteout */
++ /* au_set_dbend(dentry, bindex); */
++ au_set_dbwh(dentry, bindex);
++ if (!allow_neg)
++ return NULL; /* success */
++ if (ndx.nd
++ && au_test_nfs(h_parent->d_sb)
++ && (ndx.nd->flags & LOOKUP_CREATE)) {
++ nd_flags = ndx.nd->flags;
++ ndx.nd->flags &= ~(LOOKUP_OPEN | LOOKUP_CREATE);
++ }
++
++ real_lookup:
++ /* do not superio. */
++ h_dentry = au_lkup_one(name->name, h_parent, name->len, &ndx);
++ if (IS_ERR(h_dentry))
++ goto out;
++ AuDebugOn(d_unhashed(h_dentry));
++ h_inode = h_dentry->d_inode;
++ if (!h_inode) {
++ if (!allow_neg)
++ goto out_neg;
++ } else if (wh_found
++ || (args->type && args->type != (h_inode->i_mode & S_IFMT)))
++ goto out_neg;
++
++ if (au_dbend(dentry) <= bindex)
++ au_set_dbend(dentry, bindex);
++ if (au_dbstart(dentry) < 0 || bindex < au_dbstart(dentry))
++ au_set_dbstart(dentry, bindex);
++ au_set_h_dptr(dentry, bindex, h_dentry);
++
++ err = au_br_nfs_h_intent(ndx.nd_file, dentry, bindex, args->nd);
++ if (unlikely(err)) {
++ h_dentry = ERR_PTR(err);
++ goto out;
++ }
++
++ inode = dentry->d_inode;
++ if (!h_inode || !S_ISDIR(h_inode->i_mode) || !wh_able
++ || (inode && !S_ISDIR(inode->i_mode)))
++ goto out; /* success */
++
++ vfsub_i_lock_nested(h_inode, AuLsc_I_CHILD);
++ opq = au_diropq_test(h_dentry, &ndx);
++ vfsub_i_unlock(h_inode);
++ if (opq > 0)
++ au_set_dbdiropq(dentry, bindex);
++ else if (unlikely(opq < 0)) {
++ au_set_h_dptr(dentry, bindex, NULL);
++ h_dentry = ERR_PTR(opq);
++ }
++ goto out;
++
++ out_neg:
++ dput(h_dentry);
++ h_dentry = NULL;
++ out:
++ if (nd_flags)
++ ndx.nd->flags |= (nd_flags & (LOOKUP_OPEN | LOOKUP_CREATE));
++ AuTraceErrPtr(h_dentry);
++ return h_dentry;
++}
++
++/*
++ * returns the number of hidden positive dentries,
++ * otherwise an error.
++ * can be called at unlinking with @type is zero.
++ */
++int au_lkup_dentry(struct dentry *dentry, aufs_bindex_t bstart, mode_t type,
++ struct nameidata *nd)
++{
++ int npositive, err;
++ unsigned int mnt_flags;
++ aufs_bindex_t bindex, btail, bdiropq;
++ unsigned char isdir;
++ struct qstr whname;
++ struct au_do_lookup_args args = {
++ .type = type,
++ .nd = nd
++ };
++ const struct qstr *name = &dentry->d_name;
++ struct dentry *parent;
++ struct super_block *sb;
++ struct inode *inode;
++
++ LKTRTrace("%.*s, b%d, type 0%o\n", AuLNPair(name), bstart, type);
++ AuDebugOn(bstart < 0 || IS_ROOT(dentry));
++
++ /* dir may not be locked */
++ parent = dget_parent(dentry);
++
++ err = au_test_robr_shwh(dentry->d_sb, name);
++ if (unlikely(err))
++ goto out;
++
++ err = au_wh_name_alloc(name->name, name->len, &whname);
++ if (unlikely(err))
++ goto out;
++
++ sb = dentry->d_sb;
++ mnt_flags = au_mntflags(sb);
++ inode = dentry->d_inode;
++ isdir = !!(inode && S_ISDIR(inode->i_mode));
++ args.flags = 0;
++ if (au_test_dlgt(mnt_flags))
++ au_fset_lkup(args.flags, DLGT);
++ if (au_test_dirperm1(mnt_flags))
++ au_fset_lkup(args.flags, DIRPERM1);
++ if (!type)
++ au_fset_lkup(args.flags, ALLOW_NEG);
++ npositive = 0;
++ btail = au_dbtaildir(parent);
++ for (bindex = bstart; bindex <= btail; bindex++) {
++ struct dentry *h_parent, *h_dentry;
++ struct inode *h_inode, *h_dir;
++
++ h_dentry = au_h_dptr(dentry, bindex);
++ if (h_dentry) {
++ if (h_dentry->d_inode)
++ npositive++;
++ if (type != S_IFDIR)
++ break;
++ continue;
++ }
++ h_parent = au_h_dptr(parent, bindex);
++ if (!h_parent)
++ continue;
++ h_dir = h_parent->d_inode;
++ if (!h_dir || !S_ISDIR(h_dir->i_mode))
++ continue;
++
++ vfsub_i_lock_nested(h_dir, AuLsc_I_PARENT);
++ h_dentry = au_do_lookup(h_parent, dentry, bindex, &whname,
++ &args);
++ vfsub_i_unlock(h_dir);
++ err = PTR_ERR(h_dentry);
++ if (IS_ERR(h_dentry))
++ goto out_wh;
++ au_fclr_lkup(args.flags, ALLOW_NEG);
++
++ if (au_dbwh(dentry) >= 0)
++ break;
++ if (!h_dentry)
++ continue;
++ h_inode = h_dentry->d_inode;
++ if (!h_inode)
++ continue;
++ npositive++;
++ if (!args.type)
++ args.type = h_inode->i_mode & S_IFMT;
++ if (args.type != S_IFDIR)
++ break;
++ else if (isdir) {
++ /* the type of lowers may be different */
++ bdiropq = au_dbdiropq(dentry);
++ if (bdiropq >= 0 && bdiropq <= bindex)
++ break;
++ }
++ }
++
++ if (npositive) {
++ LKTRLabel(positive);
++ au_update_dbstart(dentry);
++ }
++ err = npositive;
++ if (!au_opt_test(mnt_flags, UDBA_NONE) && au_dbstart(dentry) < 0)
++ /* both of real entry and whiteout found */
++ err = -EIO;
++
++ out_wh:
++ au_wh_name_free(&whname);
++ out:
++ dput(parent);
++ AuTraceErr(err);
++ return err;
++}
++
++struct dentry *au_sio_lkup_one(const char *name, struct dentry *parent, int len,
++ struct au_ndx *ndx)
++{
++ struct dentry *dentry;
++ int wkq_err;
++
++ LKTRTrace("%.*s/%.*s\n", AuDLNPair(parent), len, name);
++
++ if (!au_test_h_perm_sio(parent->d_inode, MAY_EXEC,
++ au_ftest_ndx(ndx->flags, DLGT)))
++ dentry = au_lkup_one(name, parent, len, ndx);
++ else {
++ /* todo: ugly? */
++ unsigned int flags = ndx->flags;
++ struct au_lkup_one_args args = {
++ .errp = &dentry,
++ .name = name,
++ .parent = parent,
++ .len = len,
++ .ndx = ndx
++ };
++
++ au_fclr_ndx(ndx->flags, DLGT);
++ au_fclr_ndx(ndx->flags, DIRPERM1);
++ wkq_err = au_wkq_wait(au_call_lkup_one, &args, /*dlgt*/0);
++ if (unlikely(wkq_err))
++ dentry = ERR_PTR(wkq_err);
++ ndx->flags = flags;
++ }
++
++ AuTraceErrPtr(dentry);
++ return dentry;
++}
++
++/*
++ * lookup @dentry on @bindex which should be negative.
++ */
++int au_lkup_neg(struct dentry *dentry, aufs_bindex_t bindex)
++{
++ int err;
++ struct dentry *parent, *h_parent, *h_dentry;
++ struct inode *h_dir;
++ struct au_ndx ndx = {
++ .flags = 0,
++ .nd = NULL,
++ /* .br = NULL */
++ };
++ struct super_block *sb;
++ unsigned int mnt_flags;
++
++ LKTRTrace("%.*s, b%d\n", AuDLNPair(dentry), bindex);
++ /* dir may not be locked */
++ parent = dget_parent(dentry);
++ AuDebugOn(!parent || !parent->d_inode
++ || !S_ISDIR(parent->d_inode->i_mode));
++ h_parent = au_h_dptr(parent, bindex);
++ AuDebugOn(!h_parent);
++ h_dir = h_parent->d_inode;
++ AuDebugOn(!h_dir || !S_ISDIR(h_dir->i_mode));
++
++ sb = dentry->d_sb;
++ mnt_flags = au_mntflags(sb);
++ ndx.nfsmnt = au_nfsmnt(sb, bindex);
++ if (au_test_dlgt(mnt_flags))
++ au_fset_ndx(ndx.flags, DLGT);
++ if (au_test_dirperm1(mnt_flags))
++ au_fset_ndx(ndx.flags, DIRPERM1);
++ h_dentry = au_sio_lkup_one(dentry->d_name.name, h_parent,
++ dentry->d_name.len, &ndx);
++ err = PTR_ERR(h_dentry);
++ if (IS_ERR(h_dentry))
++ goto out;
++ if (unlikely(h_dentry->d_inode)) {
++ err = -EIO;
++ AuIOErr("b%d %.*s should be negative.\n",
++ bindex, AuDLNPair(h_dentry));
++ dput(h_dentry);
++ goto out;
++ }
++
++ if (bindex < au_dbstart(dentry))
++ au_set_dbstart(dentry, bindex);
++ if (au_dbend(dentry) < bindex)
++ au_set_dbend(dentry, bindex);
++ au_set_h_dptr(dentry, bindex, h_dentry);
++ err = 0;
++
++ out:
++ dput(parent);
++ AuTraceErr(err);
++ return err;
++}
++
++/*
++ * returns the number of found hidden positive dentries,
++ * otherwise an error.
++ */
++int au_refresh_hdentry(struct dentry *dentry, mode_t type)
++{
++ int npositive, new_sz;
++ struct au_dinfo *dinfo;
++ struct super_block *sb;
++ struct dentry *parent;
++ aufs_bindex_t bindex, parent_bend, parent_bstart, bwh, bdiropq, bend;
++ struct au_hdentry *p;
++ au_gen_t sgen;
++
++ LKTRTrace("%.*s, type 0%o\n", AuDLNPair(dentry), type);
++ DiMustWriteLock(dentry);
++ sb = dentry->d_sb;
++ AuDebugOn(IS_ROOT(dentry));
++ sgen = au_sigen(sb);
++ parent = dget_parent(dentry);
++ AuDebugOn(au_digen(parent) != sgen
++ || au_iigen(parent->d_inode) != sgen);
++
++ npositive = -ENOMEM;
++ new_sz = sizeof(*dinfo->di_hdentry) * (au_sbend(sb) + 1);
++ dinfo = au_di(dentry);
++ p = au_kzrealloc(dinfo->di_hdentry, sizeof(*p) * (dinfo->di_bend + 1),
++ new_sz, GFP_NOFS);
++ if (unlikely(!p))
++ goto out;
++ dinfo->di_hdentry = p;
++
++ bend = dinfo->di_bend;
++ bwh = dinfo->di_bwh;
++ bdiropq = dinfo->di_bdiropq;
++ p += dinfo->di_bstart;
++ for (bindex = dinfo->di_bstart; bindex <= bend; bindex++, p++) {
++ struct dentry *hd, *hdp;
++ struct au_hdentry tmp, *q;
++ aufs_bindex_t new_bindex;
++
++ hd = p->hd_dentry;
++ if (!hd)
++ continue;
++ hdp = dget_parent(hd);
++ if (hdp == au_h_dptr(parent, bindex)) {
++ dput(hdp);
++ continue;
++ }
++
++ new_bindex = au_find_dbindex(parent, hdp);
++ dput(hdp);
++ AuDebugOn(new_bindex == bindex);
++ if (dinfo->di_bwh == bindex)
++ bwh = new_bindex;
++ if (dinfo->di_bdiropq == bindex)
++ bdiropq = new_bindex;
++ /* todo: test more? */
++ if (new_bindex < 0) {
++ au_hdput(p, /*do_free*/0);
++ p->hd_dentry = NULL;
++ continue;
++ }
++ /* swap two hidden dentries, and loop again */
++ q = dinfo->di_hdentry + new_bindex;
++ tmp = *q;
++ *q = *p;
++ *p = tmp;
++ if (tmp.hd_dentry) {
++ bindex--;
++ p--;
++ }
++ }
++
++ /* todo: test more? */
++ dinfo->di_bwh = -1;
++ if (bwh >= 0 && bwh <= au_sbend(sb) && au_sbr_whable(sb, bwh))
++ dinfo->di_bwh = bwh;
++ dinfo->di_bdiropq = -1;
++ if (bdiropq >= 0
++ && bdiropq <= au_sbend(sb)
++ && au_sbr_whable(sb, bdiropq))
++ dinfo->di_bdiropq = bdiropq;
++ parent_bend = au_dbend(parent);
++ p = dinfo->di_hdentry;
++ for (bindex = 0; bindex <= parent_bend; bindex++, p++)
++ if (p->hd_dentry) {
++ dinfo->di_bstart = bindex;
++ break;
++ }
++ p = dinfo->di_hdentry + parent_bend;
++ for (bindex = parent_bend; bindex >= 0; bindex--, p--)
++ if (p->hd_dentry) {
++ dinfo->di_bend = bindex;
++ break;
++ }
++
++ npositive = 0;
++ parent_bstart = au_dbstart(parent);
++ if (type != S_IFDIR && dinfo->di_bstart == parent_bstart)
++ goto out_dgen; /* success */
++
++ npositive = au_lkup_dentry(dentry, parent_bstart, type, /*nd*/NULL);
++ if (npositive < 0)
++ goto out;
++ if (dinfo->di_bwh >= 0 && dinfo->di_bwh <= dinfo->di_bstart)
++ d_drop(dentry);
++
++ out_dgen:
++ au_update_digen(dentry);
++ out:
++ dput(parent);
++ AuTraceErr(npositive);
++ return npositive;
++}
++
++static int au_lock_nd(struct dentry *dentry, struct nameidata *nd)
++{
++ int locked = 0;
++ if (nd && dentry != nd->dentry) {
++ di_read_lock_parent(nd->dentry, 0);
++ locked = 1;
++ }
++ return locked;
++}
++
++static void au_unlock_nd(int locked, struct nameidata *nd)
++{
++ if (locked)
++ di_read_unlock(nd->dentry, 0);
++}
++
++/* #define TestingFuse */
++static noinline_for_stack
++int au_do_h_d_reval(struct dentry *dentry, aufs_bindex_t bindex,
++ struct nameidata *nd, struct dentry *h_dentry)
++{
++ int err, valid, e;
++ int (*reval)(struct dentry *, struct nameidata *);
++ struct super_block *sb;
++ struct nameidata fake_nd, *p;
++
++ LKTRTrace("%.*s, b%d, nd %d\n", AuDLNPair(dentry), bindex, !!nd);
++
++ err = 0;
++ reval = NULL;
++ if (h_dentry->d_op)
++ reval = h_dentry->d_op->d_revalidate;
++ if (!reval)
++ goto out;
++
++ sb = dentry->d_sb;
++ if (nd) {
++ memcpy(&fake_nd, nd, sizeof(*nd));
++ err = au_fake_intent(&fake_nd, au_sbr(sb, bindex));
++ if (unlikely(err)) {
++ err = -EINVAL;
++ goto out;
++ }
++ }
++ p = au_fake_dm(&fake_nd, nd, sb, bindex);
++ AuDebugOn(IS_ERR(p));
++ AuDebugOn(nd && p != &fake_nd);
++ LKTRTrace("b%d\n", bindex);
++
++ /* it may return tri-state */
++ valid = reval(h_dentry, p);
++ if (unlikely(valid < 0))
++ err = valid;
++ else if (!valid)
++ err = -EINVAL;
++ else
++ AuDebugOn(err);
++
++ if (p) {
++ AuDebugOn(!nd);
++ e = au_hin_after_reval(p, dentry, bindex, nd->intent.open.file);
++#ifndef TestingFuse
++ au_update_fuse_h_inode(p->mnt, h_dentry); /*ignore*/
++#endif
++ if (unlikely(e && !err))
++ err = e;
++ }
++#ifndef TestingFuse
++ else
++ au_update_fuse_h_inode(NULL, h_dentry); /*ignore*/
++#endif
++ au_fake_dm_release(p);
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++static noinline_for_stack
++int h_d_revalidate(struct dentry *dentry, struct inode *inode,
++ struct nameidata *nd, int do_udba)
++{
++ int err;
++ aufs_bindex_t bindex, btail, bstart, ibs, ibe;
++ unsigned char plus, locked, unhashed, is_root, h_plus;
++ struct super_block *sb;
++ struct inode *first, *h_inode, *h_cached_inode;
++ umode_t mode, h_mode;
++ struct dentry *h_dentry;
++ struct qstr *name;
++
++ LKTRTrace("%.*s, nd %d\n", AuDLNPair(dentry), !!nd);
++ AuDebugOn(inode && au_digen(dentry) != au_iigen(inode));
++
++ err = 0;
++ sb = dentry->d_sb;
++ plus = 0;
++ mode = 0;
++ first = NULL;
++ ibs = -1;
++ ibe = -1;
++ unhashed = !!d_unhashed(dentry);
++ is_root = !!IS_ROOT(dentry);
++ name = &dentry->d_name;
++
++ /*
++ * Theoretically, REVAL test should be unnecessary in case of INOTIFY.
++ * But inotify doesn't fire some necessary events,
++ * IN_ATTRIB for atime/nlink/pageio
++ * IN_DELETE for NFS dentry
++ * Let's do REVAL test too.
++ */
++ if (do_udba && inode) {
++ mode = (inode->i_mode & S_IFMT);
++ plus = (inode->i_nlink > 0);
++ first = au_h_iptr(inode, au_ibstart(inode));
++ ibs = au_ibstart(inode);
++ ibe = au_ibend(inode);
++ }
++
++ bstart = au_dbstart(dentry);
++ btail = bstart;
++ if (inode && S_ISDIR(inode->i_mode))
++ btail = au_dbtaildir(dentry);
++ locked = !!au_lock_nd(dentry, nd);
++ for (bindex = bstart; bindex <= btail; bindex++) {
++ h_dentry = au_h_dptr(dentry, bindex);
++ if (!h_dentry)
++ continue;
++
++ LKTRTrace("b%d, %.*s\n", bindex, AuDLNPair(h_dentry));
++#ifdef TestingFuse
++ /* force re-lookup for fuse, in order to update attributes */
++ if (au_test_fuse(h_dentry->d_sb))
++ goto err;
++#endif
++
++ if (unlikely(do_udba
++ && !is_root
++ && (unhashed != !!d_unhashed(h_dentry)
++ || name->len != h_dentry->d_name.len
++ || memcmp(name->name, h_dentry->d_name.name,
++ name->len)
++ ))) {
++ LKTRTrace("unhash 0x%x 0x%x, %.*s %.*s\n",
++ unhashed, d_unhashed(h_dentry),
++ AuDLNPair(dentry), AuDLNPair(h_dentry));
++ goto err;
++ }
++
++ err = au_do_h_d_reval(dentry, bindex, nd, h_dentry);
++ if (unlikely(err))
++ /* do not goto err, to keep the errno */
++ break;
++
++ /* todo: plink too? */
++ if (!do_udba)
++ continue;
++
++ /* UDBA tests */
++ h_inode = h_dentry->d_inode;
++ if (unlikely(!!inode != !!h_inode))
++ goto err;
++
++ h_plus = plus;
++ h_mode = mode;
++ h_cached_inode = h_inode;
++ if (h_inode) {
++ h_mode = (h_inode->i_mode & S_IFMT);
++ h_plus = (h_inode->i_nlink > 0);
++ }
++ if (inode && ibs <= bindex && bindex <= ibe)
++ h_cached_inode = au_h_iptr(inode, bindex);
++
++ LKTRTrace("{%d, 0%o, %p}, h{%d, 0%o, %p}\n",
++ plus, mode, h_cached_inode,
++ h_plus, h_mode, h_inode);
++ if (unlikely(plus != h_plus
++ || mode != h_mode
++ || h_cached_inode != h_inode))
++ goto err;
++ continue;
++
++ err:
++ err = -EINVAL;
++ break;
++ }
++ au_unlock_nd(locked, nd);
++
++ /*
++ * judging by timestamps is meaningless since some filesystem uses
++ * CURRENT_TIME_SEC instead of CURRENT_TIME.
++ */
++ /*
++ * NFS may stop IN_DELETE because of DCACHE_NFSFS_RENAMED.
++ */
++
++ AuTraceErr(err);
++ return err;
++}
++
++static int simple_reval_dpath(struct dentry *dentry, au_gen_t sgen)
++{
++ int err;
++ mode_t type;
++ struct dentry *parent;
++ struct inode *inode;
++
++ LKTRTrace("%.*s, sgen %d\n", AuDLNPair(dentry), sgen);
++ SiMustAnyLock(dentry->d_sb);
++ DiMustWriteLock(dentry);
++ inode = dentry->d_inode;
++ AuDebugOn(!inode);
++
++ if (au_digen(dentry) == sgen && au_iigen(inode) == sgen)
++ return 0;
++
++ parent = dget_parent(dentry);
++ di_read_lock_parent(parent, AuLock_IR);
++ AuDebugOn(au_digen(parent) != sgen
++ || au_iigen(parent->d_inode) != sgen);
++#ifdef CONFIG_AUFS_DEBUG
++ {
++ int i, j;
++ struct au_dcsub_pages dpages;
++ struct au_dpage *dpage;
++ struct dentry **dentries;
++
++ err = au_dpages_init(&dpages, GFP_NOFS);
++ AuDebugOn(err);
++ err = au_dcsub_pages_rev(&dpages, parent, /*do_include*/1, NULL,
++ NULL);
++ AuDebugOn(err);
++ for (i = dpages.ndpage - 1; !err && i >= 0; i--) {
++ dpage = dpages.dpages + i;
++ dentries = dpage->dentries;
++ for (j = dpage->ndentry - 1; !err && j >= 0; j--)
++ AuDebugOn(au_digen(dentries[j]) != sgen);
++ }
++ au_dpages_free(&dpages);
++ }
++#endif
++ type = (inode->i_mode & S_IFMT);
++ /* returns a number of positive dentries */
++ err = au_refresh_hdentry(dentry, type);
++ if (err >= 0)
++ err = au_refresh_hinode(inode, dentry);
++ di_read_unlock(parent, AuLock_IR);
++ dput(parent);
++ AuTraceErr(err);
++ return err;
++}
++
++int au_reval_dpath(struct dentry *dentry, au_gen_t sgen)
++{
++ int err;
++ struct dentry *d, *parent;
++ struct inode *inode;
++
++ LKTRTrace("%.*s, sgen %d\n", AuDLNPair(dentry), sgen);
++ AuDebugOn(!dentry->d_inode);
++ DiMustWriteLock(dentry);
++
++ if (!au_ftest_si(au_sbi(dentry->d_sb), FAILED_REFRESH_DIRS))
++ return simple_reval_dpath(dentry, sgen);
++
++ /* slow loop, keep it simple and stupid */
++ /* cf: au_cpup_dirs() */
++ err = 0;
++ parent = NULL;
++ while (au_digen(dentry) != sgen || au_iigen(dentry->d_inode) != sgen) {
++ d = dentry;
++ while (1) {
++ dput(parent);
++ parent = dget_parent(d);
++ if (au_digen(parent) == sgen
++ && au_iigen(parent->d_inode) == sgen)
++ break;
++ d = parent;
++ }
++
++ inode = d->d_inode;
++ if (d != dentry)
++ di_write_lock_child(d);
++
++ /* someone might update our dentry while we were sleeping */
++ if (au_digen(d) != sgen || au_iigen(d->d_inode) != sgen) {
++ di_read_lock_parent(parent, AuLock_IR);
++ /* returns a number of positive dentries */
++ err = au_refresh_hdentry(d, inode->i_mode & S_IFMT);
++ if (err >= 0)
++ err = au_refresh_hinode(inode, d);
++ di_read_unlock(parent, AuLock_IR);
++ }
++
++ if (d != dentry)
++ di_write_unlock(d);
++ dput(parent);
++ if (unlikely(err))
++ break;
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++/*
++ * THIS IS A BOOLEAN FUNCTION: returns 1 if valid, 0 otherwise.
++ * nfsd passes NULL as nameidata.
++ */
++static int aufs_d_revalidate(struct dentry *dentry, struct nameidata *nd)
++{
++ int valid, err;
++ au_gen_t sgen;
++ unsigned char do_udba;
++ struct nameidata tmp_nd, *ndp;
++ struct super_block *sb;
++ struct inode *inode;
++
++ LKTRTrace("dentry %.*s\n", AuDLNPair(dentry));
++ if (nd && nd->dentry)
++ LKTRTrace("nd{%.*s, 0x%x}\n",
++ AuDLNPair(nd->dentry), nd->flags);
++ /*
++ * dir case: AuDebugOn(dentry->d_parent != nd->dentry);
++ * remove failure case:AuDebugOn(!IS_ROOT(dentry)
++ * && d_unhashed(dentry));
++ */
++ AuDebugOn(!dentry->d_fsdata);
++
++ err = -EINVAL;
++ sb = dentry->d_sb;
++ aufs_read_lock(dentry, AuLock_FLUSH | AuLock_DW);
++ inode = dentry->d_inode;
++ sgen = au_sigen(sb);
++ if (au_digen(dentry) != sgen) {
++ AuDebugOn(IS_ROOT(dentry));
++#ifdef ForceInotify
++ AuDbg("UDBA or digen, %.*s\n", AuDLNPair(dentry));
++#endif
++ if (inode)
++ err = au_reval_dpath(dentry, sgen);
++ if (unlikely(err))
++ goto out_dgrade;
++ AuDebugOn(au_digen(dentry) != sgen);
++ }
++ if (inode && au_iigen(inode) != sgen) {
++ AuDebugOn(IS_ROOT(dentry));
++#ifdef ForceInotify
++ AuDbg("UDBA or survived, %.*s\n", AuDLNPair(dentry));
++#endif
++ err = au_refresh_hinode(inode, dentry);
++ if (unlikely(err))
++ goto out_dgrade;
++ AuDebugOn(au_iigen(inode) != sgen);
++ }
++ di_downgrade_lock(dentry, AuLock_IR);
++
++#if 0 /* todo: support it? */
++ /* parent dir i_nlink is not updated in the case of setattr */
++ if (S_ISDIR(inode->i_mode)) {
++ vfsub_i_lock(inode);
++ ii_write_lock(inode);
++ au_cpup_attr_nlink(inode);
++ ii_write_unlock(inode);
++ vfsub_i_unlock(inode);
++ }
++#endif
++
++ AuDebugOn(au_digen(dentry) != sgen);
++ AuDebugOn(inode && au_iigen(inode) != sgen);
++ err = -EINVAL;
++ do_udba = !au_opt_test(au_mntflags(sb), UDBA_NONE);
++ if (do_udba && inode) {
++ aufs_bindex_t bstart = au_ibstart(inode);
++ if (bstart >= 0
++ && au_test_higen(inode, au_h_iptr(inode, bstart)))
++ goto out;
++ }
++ ndp = au_dup_nd(au_sbi(sb), &tmp_nd, nd);
++ err = h_d_revalidate(dentry, inode, ndp, do_udba);
++ if (unlikely(!err && do_udba && au_dbstart(dentry) < 0))
++ /* both of real entry and whiteout found */
++ err = -EIO;
++ goto out;
++
++ out_dgrade:
++ di_downgrade_lock(dentry, AuLock_IR);
++ out:
++ au_store_fmode_exec(nd, inode);
++ aufs_read_unlock(dentry, AuLock_IR);
++ AuTraceErr(err);
++ valid = !err;
++ if (!valid)
++ LKTRTrace("%.*s invalid\n", AuDLNPair(dentry));
++ return valid;
++}
++
++static void aufs_d_release(struct dentry *dentry)
++{
++ struct au_dinfo *dinfo;
++ aufs_bindex_t bend, bindex;
++
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++ AuDebugOn(!d_unhashed(dentry));
++
++ dinfo = dentry->d_fsdata;
++ if (!dinfo)
++ return;
++
++ /* dentry may not be revalidated */
++ bindex = dinfo->di_bstart;
++ if (bindex >= 0) {
++ struct au_hdentry *p;
++ bend = dinfo->di_bend;
++ AuDebugOn(bend < bindex);
++ p = dinfo->di_hdentry + bindex;
++ while (bindex++ <= bend) {
++ if (p->hd_dentry)
++ au_hdput(p, /*do_free*/1);
++ p++;
++ }
++ }
++ kfree(dinfo->di_hdentry);
++ au_rwsem_destroy(&dinfo->di_rwsem);
++ au_cache_free_dinfo(dinfo);
++ au_hin_di_reinit(dentry);
++}
++
++struct dentry_operations aufs_dop = {
++ .d_revalidate = aufs_d_revalidate,
++ .d_release = aufs_d_release,
++ /* never use d_delete, especially in case of nfs server */
++};
+diff --git a/fs/aufs/dentry.h b/fs/aufs/dentry.h
+new file mode 100644
+index 0000000..3a8092f
+--- /dev/null
++++ b/fs/aufs/dentry.h
+@@ -0,0 +1,398 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * lookup and dentry operations
++ *
++ * $Id: dentry.h,v 1.49 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#ifndef __AUFS_DENTRY_H__
++#define __AUFS_DENTRY_H__
++
++#ifdef __KERNEL__
++
++#include <linux/fs.h>
++#include <linux/namei.h>
++#include <linux/version.h>
++#include <linux/aufs_type.h>
++#include "misc.h"
++#include "vfsub.h"
++
++/* nameidata open_intent */
++enum {
++ AuIntent_AUFS,
++ AuIntent_BRANCH,
++ AuIntent_Last
++};
++
++struct au_hdintent {
++ struct list_head hdi_list;
++ struct file *hdi_file[AuIntent_Last];
++};
++
++struct au_hdentry {
++ struct dentry *hd_dentry;
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) \
++ && defined(CONFIG_AUFS_BR_NFS)
++ spinlock_t hd_lock; /* intest_list */
++ struct list_head *hd_intent_list;
++#endif
++};
++
++struct au_dinfo {
++ atomic_t di_generation;
++
++ struct au_rwsem di_rwsem;
++ aufs_bindex_t di_bstart, di_bend, di_bwh, di_bdiropq;
++ struct au_hdentry *di_hdentry;
++};
++
++/* nameidata extension flags */
++#define AuNdx_DLGT 1
++#define AuNdx_DIRPERM1 (1 << 1)
++#define au_ftest_ndx(flags, name) ((flags) & AuNdx_##name)
++#define au_fset_ndx(flags, name) { (flags) |= AuNdx_##name; }
++#define au_fclr_ndx(flags, name) { (flags) &= ~AuNdx_##name; }
++#ifndef CONFIG_AUFS_DLGT
++#undef AuNdx_DLGT
++#define AuNdx_DLGT 0
++#undef AuNdx_DIRPERM1
++#define AuNdx_DIRPERM1 0
++#endif
++
++struct au_ndx {
++ struct vfsmount *nfsmnt;
++ unsigned int flags;
++ struct nameidata *nd;
++ struct au_branch *br;
++ struct file *nd_file;
++};
++
++/* ---------------------------------------------------------------------- */
++
++static inline void au_do_h_dentry_init(struct au_hdentry *hdentry)
++{
++ hdentry->hd_dentry = NULL;
++}
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) \
++ && defined(CONFIG_AUFS_BR_NFS)
++static inline void au_h_dentry_init(struct au_hdentry *hdentry)
++{
++ au_do_h_dentry_init(hdentry);
++ spin_lock_init(&hdentry->hd_lock);
++}
++
++static inline void au_h_dentry_init_all(struct au_hdentry *hdentry, int n)
++{
++ while (n--)
++ spin_lock_init(&hdentry[n].hd_lock);
++}
++
++/* br_nfs.c */
++struct file *au_h_intent(struct dentry *dentry, aufs_bindex_t bindex,
++ struct file *file);
++int au_br_nfs_h_intent(struct file *nd_file, struct dentry *dentry,
++ aufs_bindex_t bindex, struct nameidata *nd);
++void au_hintent_put(struct au_hdentry *hd, int do_free);
++int au_fake_intent(struct nameidata *nd, struct au_branch *br);
++int au_hin_after_reval(struct nameidata *nd, struct dentry *dentry,
++ aufs_bindex_t bindex, struct file *file);
++struct dentry *au_lkup_hash(const char *name, struct dentry *parent, int len,
++ struct au_ndx *ndx);
++#else
++
++static inline void au_h_dentry_init(struct au_hdentry *hdentry)
++{
++ au_do_h_dentry_init(hdentry);
++}
++
++static inline void au_h_dentry_init_all(struct au_hdentry *hdentry, int n)
++{
++ /* nothing */
++}
++
++static inline
++struct file *au_h_intent(struct dentry *dentry, aufs_bindex_t bindex,
++ struct file *file)
++{
++ /* return ERR_PTR(-ENOSYS); */
++ return NULL;
++}
++
++static inline
++int au_br_nfs_h_intent(struct file *nd_file, struct dentry *dentry,
++ aufs_bindex_t bindex, struct nameidata *nd)
++{
++ return 0;
++}
++
++static inline void au_hintent_put(struct au_hdentry *hd, int do_free)
++{
++ /* empty */
++}
++
++static inline int au_fake_intent(struct nameidata *nd, struct au_branch *br)
++{
++ return 0;
++}
++
++static inline
++int au_hin_after_reval(struct nameidata *nd, struct dentry *dentry,
++ aufs_bindex_t bindex, struct file *file)
++{
++ return 0;
++}
++
++#if defined(CONFIG_AUFS_BR_NFS) || defined(CONFIG_AUFS_DLGT)
++static inline
++struct dentry *au_lkup_hash(const char *name, struct dentry *parent, int len,
++ struct au_ndx *ndx)
++{
++ /* return ERR_PTR(-ENOSYS); */
++ return vfsub_lookup_one_len(name, parent, len);
++}
++#endif
++#endif /* >= 2.6.19 && CONFIG_AUFS_BR_NFS */
++
++#ifdef CONFIG_AUFS_DLGT
++/* dlgt.c */
++struct dentry *au_lkup_one_dlgt(const char *name, struct dentry *parent,
++ int len, unsigned int flags);
++#elif defined(CONFIG_AUFS_BR_NFS)
++/* regardelss kernel version */
++static inline
++struct dentry *au_lkup_one_dlgt(const char *name, struct dentry *parent,
++ int len, unsigned int flags)
++{
++ return vfsub_lookup_one_len(name, parent, len);
++}
++#endif
++
++/* dentry.c */
++extern struct dentry_operations aufs_dop;
++#if defined(CONFIG_AUFS_BR_NFS) || defined(CONFIG_AUFS_DLGT)
++struct dentry *au_lkup_one(const char *name, struct dentry *parent, int len,
++ struct au_ndx *ndx);
++#else
++static inline
++struct dentry *au_lkup_one(const char *name, struct dentry *parent, int len,
++ struct au_ndx *ndx)
++{
++ /* todo? ndx->nd_file = NULL; */
++ return vfsub_lookup_one_len(name, parent, len);
++}
++#endif
++struct dentry *au_sio_lkup_one(const char *name, struct dentry *parent, int len,
++ struct au_ndx *ndx);
++int au_lkup_dentry(struct dentry *dentry, aufs_bindex_t bstart, mode_t type,
++ struct nameidata *nd);
++int au_lkup_neg(struct dentry *dentry, aufs_bindex_t bindex);
++int au_refresh_hdentry(struct dentry *dentry, mode_t type);
++int au_reval_dpath(struct dentry *dentry, au_gen_t sgen);
++
++/* dinfo.c */
++int au_alloc_dinfo(struct dentry *dentry);
++struct au_dinfo *au_di(struct dentry *dentry);
++
++void di_read_lock(struct dentry *d, int flags, unsigned int lsc);
++void di_read_unlock(struct dentry *d, int flags);
++void di_downgrade_lock(struct dentry *d, int flags);
++void di_write_lock(struct dentry *d, unsigned int lsc);
++void di_write_unlock(struct dentry *d);
++void di_write_lock2_child(struct dentry *d1, struct dentry *d2, int isdir);
++void di_write_lock2_parent(struct dentry *d1, struct dentry *d2, int isdir);
++void di_write_unlock2(struct dentry *d1, struct dentry *d2);
++
++struct dentry *au_h_dptr(struct dentry *dentry, aufs_bindex_t bindex);
++
++aufs_bindex_t au_dbtail(struct dentry *dentry);
++aufs_bindex_t au_dbtaildir(struct dentry *dentry);
++#if 0 /* reserved for future use */
++aufs_bindex_t au_dbtail_generic(struct dentry *dentry);
++#endif
++
++void au_set_dbdiropq(struct dentry *dentry, aufs_bindex_t bindex);
++void au_set_h_dptr(struct dentry *dentry, aufs_bindex_t bindex,
++ struct dentry *h_dentry);
++
++void au_update_dbrange(struct dentry *dentry, int do_put_zero);
++void au_update_dbstart(struct dentry *dentry);
++void au_update_dbend(struct dentry *dentry);
++int au_find_dbindex(struct dentry *dentry, struct dentry *h_dentry);
++
++/* ---------------------------------------------------------------------- */
++
++/* todo: memory barrier? */
++static inline au_gen_t au_digen(struct dentry *d)
++{
++ return atomic_read(&au_di(d)->di_generation);
++}
++
++#ifdef CONFIG_AUFS_HINOTIFY
++static inline au_gen_t au_digen_dec(struct dentry *d)
++{
++ return atomic_dec_return(&au_di(d)->di_generation);
++}
++
++static inline void au_hin_di_reinit(struct dentry *d)
++{
++ d->d_fsdata = NULL;
++}
++#else
++static inline void au_hin_di_reinit(struct dentry *d)
++{
++ /* empty */
++}
++#endif /* CONFIG_AUFS_HINOTIFY */
++
++/* ---------------------------------------------------------------------- */
++
++/* lock subclass for dinfo */
++enum {
++ AuLsc_DI_CHILD, /* child first */
++ AuLsc_DI_CHILD2, /* rename(2), link(2), and cpup at hinotify */
++ AuLsc_DI_CHILD3, /* copyup dirs */
++ AuLsc_DI_PARENT,
++ AuLsc_DI_PARENT2,
++ AuLsc_DI_PARENT3,
++ AuLsc_DI_PARENT4
++};
++
++/*
++ * di_read_lock_child, di_write_lock_child,
++ * di_read_lock_child2, di_write_lock_child2,
++ * di_read_lock_child3, di_write_lock_child3,
++ * di_read_lock_parent, di_write_lock_parent,
++ * di_read_lock_parent2, di_write_lock_parent2,
++ * di_read_lock_parent3, di_write_lock_parent3,
++ * di_read_lock_parent4, di_write_lock_parent4,
++ */
++#define AuReadLockFunc(name, lsc) \
++static inline void di_read_lock_##name(struct dentry *d, int flags) \
++{ di_read_lock(d, flags, AuLsc_DI_##lsc); }
++
++#define AuWriteLockFunc(name, lsc) \
++static inline void di_write_lock_##name(struct dentry *d) \
++{ di_write_lock(d, AuLsc_DI_##lsc); }
++
++#define AuRWLockFuncs(name, lsc) \
++ AuReadLockFunc(name, lsc) \
++ AuWriteLockFunc(name, lsc)
++
++AuRWLockFuncs(child, CHILD);
++AuRWLockFuncs(child2, CHILD2);
++AuRWLockFuncs(child3, CHILD3);
++AuRWLockFuncs(parent, PARENT);
++AuRWLockFuncs(parent2, PARENT2);
++AuRWLockFuncs(parent3, PARENT3);
++AuRWLockFuncs(parent4, PARENT4);
++
++#undef AuReadLockFunc
++#undef AuWriteLockFunc
++#undef AuRWLockFuncs
++
++/* to debug easier, do not make them inlined functions */
++#define DiMustReadLock(d) do { \
++ SiMustAnyLock((d)->d_sb); \
++ AuRwMustReadLock(&au_di(d)->di_rwsem); \
++} while (0)
++
++#define DiMustWriteLock(d) do { \
++ SiMustAnyLock((d)->d_sb); \
++ AuRwMustWriteLock(&au_di(d)->di_rwsem); \
++} while (0)
++
++#define DiMustAnyLock(d) do { \
++ SiMustAnyLock((d)->d_sb); \
++ AuRwMustAnyLock(&au_di(d)->di_rwsem); \
++} while (0)
++
++#define DiMustNoWaiters(d) AuRwMustNoWaiters(&au_di(d)->di_rwsem)
++
++/* ---------------------------------------------------------------------- */
++
++static inline aufs_bindex_t au_dbstart(struct dentry *dentry)
++{
++ DiMustAnyLock(dentry);
++ return au_di(dentry)->di_bstart;
++}
++
++static inline aufs_bindex_t au_dbend(struct dentry *dentry)
++{
++ DiMustAnyLock(dentry);
++ return au_di(dentry)->di_bend;
++}
++
++static inline aufs_bindex_t au_dbwh(struct dentry *dentry)
++{
++ DiMustAnyLock(dentry);
++ return au_di(dentry)->di_bwh;
++}
++
++static inline aufs_bindex_t au_dbdiropq(struct dentry *dentry)
++{
++ DiMustAnyLock(dentry);
++ AuDebugOn(dentry->d_inode
++ && dentry->d_inode->i_mode
++ && !S_ISDIR(dentry->d_inode->i_mode));
++ return au_di(dentry)->di_bdiropq;
++}
++
++/* todo: hard/soft set? */
++static inline void au_set_dbstart(struct dentry *dentry, aufs_bindex_t bindex)
++{
++ DiMustWriteLock(dentry);
++ AuDebugOn(au_sbend(dentry->d_sb) < bindex);
++ /* */
++ au_di(dentry)->di_bstart = bindex;
++}
++
++static inline void au_set_dbend(struct dentry *dentry, aufs_bindex_t bindex)
++{
++ DiMustWriteLock(dentry);
++ AuDebugOn(au_sbend(dentry->d_sb) < bindex
++ || bindex < au_dbstart(dentry));
++ au_di(dentry)->di_bend = bindex;
++}
++
++static inline void au_set_dbwh(struct dentry *dentry, aufs_bindex_t bindex)
++{
++ DiMustWriteLock(dentry);
++ AuDebugOn(au_sbend(dentry->d_sb) < bindex);
++ /* dbwh can be outside of bstart - bend range */
++ au_di(dentry)->di_bwh = bindex;
++}
++
++static inline void au_hdput(struct au_hdentry *hd, int do_free)
++{
++ au_hintent_put(hd, do_free);
++ dput(hd->hd_dentry);
++}
++
++static inline void au_update_digen(struct dentry *dentry)
++{
++ AuDebugOn(!dentry->d_sb);
++ atomic_set(&au_di(dentry)->di_generation, au_sigen(dentry->d_sb));
++ /* smp_mb(); */ /* atomic_set */
++}
++
++#endif /* __KERNEL__ */
++#endif /* __AUFS_DENTRY_H__ */
+diff --git a/fs/aufs/dinfo.c b/fs/aufs/dinfo.c
+new file mode 100644
+index 0000000..909d1c5
+--- /dev/null
++++ b/fs/aufs/dinfo.c
+@@ -0,0 +1,436 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * dentry private data
++ *
++ * $Id: dinfo.c,v 1.47 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++int au_alloc_dinfo(struct dentry *dentry)
++{
++ struct au_dinfo *dinfo;
++ struct super_block *sb;
++ int nbr;
++
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++ AuDebugOn(dentry->d_fsdata);
++
++ dinfo = au_cache_alloc_dinfo();
++ if (dinfo) {
++ sb = dentry->d_sb;
++ nbr = au_sbend(sb) + 1;
++ if (nbr <= 0)
++ nbr = 1;
++ dinfo->di_hdentry = kcalloc(nbr, sizeof(*dinfo->di_hdentry),
++ GFP_NOFS);
++ if (dinfo->di_hdentry) {
++ au_h_dentry_init_all(dinfo->di_hdentry, nbr);
++ atomic_set(&dinfo->di_generation, au_sigen(sb));
++ /* smp_mb(); */ /* atomic_set */
++ au_rw_init_wlock_nested(&dinfo->di_rwsem,
++ AuLsc_DI_CHILD);
++ au_dbg_locked_di_reg(dentry, AuLock_DW, AuLsc_DI_CHILD);
++ dinfo->di_bstart = -1;
++ dinfo->di_bend = -1;
++ dinfo->di_bwh = -1;
++ dinfo->di_bdiropq = -1;
++
++ dentry->d_fsdata = dinfo;
++ dentry->d_op = &aufs_dop;
++ return 0; /* success */
++ }
++ au_cache_free_dinfo(dinfo);
++ }
++ AuTraceErr(-ENOMEM);
++ return -ENOMEM;
++}
++
++struct au_dinfo *au_di(struct dentry *dentry)
++{
++ struct au_dinfo *dinfo = dentry->d_fsdata;
++ AuDebugOn(!dinfo
++ || !dinfo->di_hdentry
++ /* || au_sbi(dentry->d_sb)->si_bend < dinfo->di_bend */
++ || dinfo->di_bend < dinfo->di_bstart
++ /* dbwh can be outside of this range */
++ || (0 <= dinfo->di_bdiropq
++ && (dinfo->di_bdiropq < dinfo->di_bstart
++ /* || dinfo->di_bend < dinfo->di_bdiropq */))
++ );
++ return dinfo;
++}
++
++/* ---------------------------------------------------------------------- */
++
++static void do_ii_write_lock(struct inode *inode, unsigned int lsc)
++{
++ switch (lsc) {
++ case AuLsc_DI_CHILD:
++ ii_write_lock_child(inode);
++ break;
++ case AuLsc_DI_CHILD2:
++ ii_write_lock_child2(inode);
++ break;
++ case AuLsc_DI_CHILD3:
++ ii_write_lock_child3(inode);
++ break;
++ case AuLsc_DI_PARENT:
++ ii_write_lock_parent(inode);
++ break;
++ case AuLsc_DI_PARENT2:
++ ii_write_lock_parent2(inode);
++ break;
++ case AuLsc_DI_PARENT3:
++ ii_write_lock_parent3(inode);
++ break;
++ case AuLsc_DI_PARENT4:
++ ii_write_lock_parent4(inode);
++ break;
++ default:
++ BUG();
++ }
++}
++
++static void do_ii_read_lock(struct inode *inode, unsigned int lsc)
++{
++ switch (lsc) {
++ case AuLsc_DI_CHILD:
++ ii_read_lock_child(inode);
++ break;
++ case AuLsc_DI_CHILD2:
++ ii_read_lock_child2(inode);
++ break;
++ case AuLsc_DI_CHILD3:
++ ii_read_lock_child3(inode);
++ break;
++ case AuLsc_DI_PARENT:
++ ii_read_lock_parent(inode);
++ break;
++ case AuLsc_DI_PARENT2:
++ ii_read_lock_parent2(inode);
++ break;
++ case AuLsc_DI_PARENT3:
++ ii_read_lock_parent3(inode);
++ break;
++ case AuLsc_DI_PARENT4:
++ ii_read_lock_parent4(inode);
++ break;
++ default:
++ BUG();
++ }
++}
++
++void di_read_lock(struct dentry *d, int flags, unsigned int lsc)
++{
++ LKTRTrace("%.*s, %u\n", AuDLNPair(d), lsc);
++ SiMustAnyLock(d->d_sb);
++
++ /* todo: always nested? */
++ au_dbg_locking_di_reg(d, flags, lsc);
++ au_rw_read_lock_nested(&au_di(d)->di_rwsem, lsc);
++ au_dbg_locking_di_unreg(d, flags);
++ au_dbg_locked_di_reg(d, flags, lsc);
++ if (d->d_inode) {
++ if (au_ftest_lock(flags, IW))
++ do_ii_write_lock(d->d_inode, lsc);
++ else if (au_ftest_lock(flags, IR))
++ do_ii_read_lock(d->d_inode, lsc);
++ }
++}
++
++void di_read_unlock(struct dentry *d, int flags)
++{
++ LKTRTrace("%.*s\n", AuDLNPair(d));
++ SiMustAnyLock(d->d_sb);
++
++ if (d->d_inode) {
++ if (au_ftest_lock(flags, IW))
++ ii_write_unlock(d->d_inode);
++ else if (au_ftest_lock(flags, IR))
++ ii_read_unlock(d->d_inode);
++ }
++ au_rw_read_unlock(&au_di(d)->di_rwsem);
++ au_dbg_locked_di_unreg(d, flags);
++}
++
++void di_downgrade_lock(struct dentry *d, int flags)
++{
++ SiMustAnyLock(d->d_sb);
++
++ au_rw_dgrade_lock(&au_di(d)->di_rwsem);
++ if (d->d_inode && au_ftest_lock(flags, IR))
++ ii_downgrade_lock(d->d_inode);
++}
++
++void di_write_lock(struct dentry *d, unsigned int lsc)
++{
++ LKTRTrace("%.*s, %u\n", AuDLNPair(d), lsc);
++ SiMustAnyLock(d->d_sb);
++
++ /* todo: always nested? */
++ au_dbg_locking_di_reg(d, AuLock_IW, lsc);
++ au_rw_write_lock_nested(&au_di(d)->di_rwsem, lsc);
++ au_dbg_locking_di_unreg(d, AuLock_IW);
++ au_dbg_locked_di_reg(d, AuLock_IW, lsc);
++ if (d->d_inode)
++ do_ii_write_lock(d->d_inode, lsc);
++}
++
++void di_write_unlock(struct dentry *d)
++{
++ LKTRTrace("%.*s\n", AuDLNPair(d));
++ SiMustAnyLock(d->d_sb);
++
++ if (d->d_inode)
++ ii_write_unlock(d->d_inode);
++ au_rw_write_unlock(&au_di(d)->di_rwsem);
++ au_dbg_locked_di_unreg(d, AuLock_IW);
++}
++
++void di_write_lock2_child(struct dentry *d1, struct dentry *d2, int isdir)
++{
++ AuTraceEnter();
++ AuDebugOn(d1 == d2
++ || d1->d_inode == d2->d_inode
++ || d1->d_sb != d2->d_sb);
++
++ if (isdir && au_test_subdir(d1, d2)) {
++ di_write_lock_child(d1);
++ di_write_lock_child2(d2);
++ } else {
++ /* there should be no races */
++ di_write_lock_child(d2);
++ di_write_lock_child2(d1);
++ }
++}
++
++void di_write_lock2_parent(struct dentry *d1, struct dentry *d2, int isdir)
++{
++ AuTraceEnter();
++ AuDebugOn(d1 == d2
++ || d1->d_inode == d2->d_inode
++ || d1->d_sb != d2->d_sb);
++
++ if (isdir && au_test_subdir(d1, d2)) {
++ di_write_lock_parent(d1);
++ di_write_lock_parent2(d2);
++ } else {
++ /* there should be no races */
++ di_write_lock_parent(d2);
++ di_write_lock_parent2(d1);
++ }
++}
++
++void di_write_unlock2(struct dentry *d1, struct dentry *d2)
++{
++ di_write_unlock(d1);
++ if (d1->d_inode == d2->d_inode) {
++ au_rw_write_unlock(&au_di(d2)->di_rwsem);
++ au_dbg_locked_di_unreg(d2, AuLock_IW);
++ } else
++ di_write_unlock(d2);
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct dentry *au_h_dptr(struct dentry *dentry, aufs_bindex_t bindex)
++{
++ struct dentry *d;
++
++ DiMustAnyLock(dentry);
++ if (au_dbstart(dentry) < 0 || bindex < au_dbstart(dentry))
++ return NULL;
++ AuDebugOn(bindex < 0
++ /* || bindex > au_sbend(dentry->d_sb) */);
++ d = au_di(dentry)->di_hdentry[0 + bindex].hd_dentry;
++ AuDebugOn(d && (atomic_read(&d->d_count) <= 0));
++ return d;
++}
++
++aufs_bindex_t au_dbtail(struct dentry *dentry)
++{
++ aufs_bindex_t bend, bwh;
++
++ bend = au_dbend(dentry);
++ if (0 <= bend) {
++ bwh = au_dbwh(dentry);
++ if (!bwh)
++ return bwh;
++ if (0 < bwh && bwh < bend)
++ return bwh - 1;
++ }
++ return bend;
++}
++
++aufs_bindex_t au_dbtaildir(struct dentry *dentry)
++{
++ aufs_bindex_t bend, bopq;
++
++ AuDebugOn(dentry->d_inode
++ && dentry->d_inode->i_mode
++ && !S_ISDIR(dentry->d_inode->i_mode));
++
++ bend = au_dbtail(dentry);
++ if (0 <= bend) {
++ bopq = au_dbdiropq(dentry);
++ AuDebugOn(bend < bopq);
++ if (0 <= bopq && bopq < bend)
++ bend = bopq;
++ }
++ return bend;
++}
++
++#if 0 /* reserved for future use */
++aufs_bindex_t au_dbtail_generic(struct dentry *dentry)
++{
++ struct inode *inode;
++
++ inode = dentry->d_inode;
++ if (inode && S_ISDIR(inode->i_mode))
++ return au_dbtaildir(dentry);
++ else
++ return au_dbtail(dentry);
++}
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++void au_set_dbdiropq(struct dentry *dentry, aufs_bindex_t bindex)
++{
++ DiMustWriteLock(dentry);
++ AuDebugOn(au_sbend(dentry->d_sb) < bindex);
++ AuDebugOn((bindex >= 0
++ && (bindex < au_dbstart(dentry)
++ || au_dbend(dentry) < bindex))
++ || (dentry->d_inode
++ && dentry->d_inode->i_mode
++ && !S_ISDIR(dentry->d_inode->i_mode)));
++ au_di(dentry)->di_bdiropq = bindex;
++}
++
++void au_set_h_dptr(struct dentry *dentry, aufs_bindex_t bindex,
++ struct dentry *h_dentry)
++{
++ struct au_hdentry *hd = au_di(dentry)->di_hdentry + bindex;
++ DiMustWriteLock(dentry);
++ AuDebugOn(bindex < au_di(dentry)->di_bstart
++ || bindex > au_di(dentry)->di_bend
++ || (h_dentry && atomic_read(&h_dentry->d_count) <= 0)
++ || (h_dentry && hd->hd_dentry)
++ );
++ if (hd->hd_dentry)
++ au_hdput(hd, /*do_free*/0);
++ hd->hd_dentry = h_dentry;
++}
++
++/* ---------------------------------------------------------------------- */
++
++void au_update_dbrange(struct dentry *dentry, int do_put_zero)
++{
++ struct au_dinfo *dinfo;
++ aufs_bindex_t bindex;
++ struct dentry *h_d;
++
++ LKTRTrace("%.*s, %d\n", AuDLNPair(dentry), do_put_zero);
++ DiMustWriteLock(dentry);
++
++ dinfo = au_di(dentry);
++ if (!dinfo || dinfo->di_bstart < 0)
++ return;
++
++ if (do_put_zero) {
++ for (bindex = dinfo->di_bstart; bindex <= dinfo->di_bend;
++ bindex++) {
++ h_d = dinfo->di_hdentry[0 + bindex].hd_dentry;
++ if (h_d && !h_d->d_inode)
++ au_set_h_dptr(dentry, bindex, NULL);
++ }
++ }
++
++ dinfo->di_bstart = -1;
++ while (++dinfo->di_bstart <= dinfo->di_bend)
++ if (dinfo->di_hdentry[0 + dinfo->di_bstart].hd_dentry)
++ break;
++ if (dinfo->di_bstart > dinfo->di_bend) {
++ dinfo->di_bstart = -1;
++ dinfo->di_bend = -1;
++ return;
++ }
++
++ dinfo->di_bend++;
++ while (0 <= --dinfo->di_bend)
++ if (dinfo->di_hdentry[0 + dinfo->di_bend].hd_dentry)
++ break;
++ AuDebugOn(dinfo->di_bstart > dinfo->di_bend || dinfo->di_bend < 0);
++}
++
++void au_update_dbstart(struct dentry *dentry)
++{
++ aufs_bindex_t bindex,
++ bstart = au_dbstart(dentry),
++ bend = au_dbend(dentry);
++ struct dentry *h_dentry;
++
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++ DiMustWriteLock(dentry);
++
++ for (bindex = bstart; bindex <= bend; bindex++) {
++ h_dentry = au_h_dptr(dentry, bindex);
++ if (!h_dentry)
++ continue;
++ if (h_dentry->d_inode) {
++ au_set_dbstart(dentry, bindex);
++ return;
++ }
++ au_set_h_dptr(dentry, bindex, NULL);
++ }
++}
++
++void au_update_dbend(struct dentry *dentry)
++{
++ aufs_bindex_t bindex,
++ bstart = au_dbstart(dentry),
++ bend = au_dbend(dentry);
++ struct dentry *h_dentry;
++
++ DiMustWriteLock(dentry);
++ for (bindex = bend; bindex <= bstart; bindex--) {
++ h_dentry = au_h_dptr(dentry, bindex);
++ if (!h_dentry)
++ continue;
++ if (h_dentry->d_inode) {
++ au_set_dbend(dentry, bindex);
++ return;
++ }
++ au_set_h_dptr(dentry, bindex, NULL);
++ }
++}
++
++int au_find_dbindex(struct dentry *dentry, struct dentry *h_dentry)
++{
++ aufs_bindex_t bindex, bend;
++
++ bend = au_dbend(dentry);
++ for (bindex = au_dbstart(dentry); bindex <= bend; bindex++)
++ if (au_h_dptr(dentry, bindex) == h_dentry)
++ return bindex;
++ return -1;
++}
+diff --git a/fs/aufs/dir.c b/fs/aufs/dir.c
+new file mode 100644
+index 0000000..6dbe3ff
+--- /dev/null
++++ b/fs/aufs/dir.c
+@@ -0,0 +1,558 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * directory operations
++ *
++ * $Id: dir.c,v 1.69 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++static int reopen_dir(struct file *file)
++{
++ int err;
++ struct dentry *dentry, *h_dentry;
++ aufs_bindex_t bindex, btail, bstart;
++ struct file *h_file;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++ AuDebugOn(!S_ISDIR(dentry->d_inode->i_mode));
++
++ /* open all hidden dirs */
++ bstart = au_dbstart(dentry);
++#if 1 /* todo: necessary? */
++ for (bindex = au_fbstart(file); bindex < bstart; bindex++)
++ au_set_h_fptr(file, bindex, NULL);
++#endif
++ au_set_fbstart(file, bstart);
++ btail = au_dbtaildir(dentry);
++#if 1 /* todo: necessary? */
++ for (bindex = au_fbend(file); btail < bindex; bindex--)
++ au_set_h_fptr(file, bindex, NULL);
++#endif
++ au_set_fbend(file, btail);
++ for (bindex = bstart; bindex <= btail; bindex++) {
++ h_dentry = au_h_dptr(dentry, bindex);
++ if (!h_dentry)
++ continue;
++ h_file = au_h_fptr(file, bindex);
++ if (h_file) {
++ AuDebugOn(h_file->f_dentry != h_dentry);
++ continue;
++ }
++
++ h_file = au_h_open(dentry, bindex, file->f_flags, file);
++ err = PTR_ERR(h_file);
++ if (IS_ERR(h_file))
++ goto out; /* close all? */
++ /* cpup_file_flags(h_file, file); */
++ au_set_h_fptr(file, bindex, h_file);
++ }
++ au_update_figen(file);
++ /* todo: necessary? */
++ /* file->f_ra = h_file->f_ra; */
++ err = 0;
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++static int do_open_dir(struct file *file, int flags)
++{
++ int err;
++ aufs_bindex_t bindex, btail;
++ struct dentry *dentry, *h_dentry;
++ struct file *h_file;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s, 0x%x\n", AuDLNPair(dentry), flags);
++ AuDebugOn(!dentry->d_inode || !S_ISDIR(dentry->d_inode->i_mode));
++
++ err = 0;
++ au_set_fvdir_cache(file, NULL);
++ file->f_version = dentry->d_inode->i_version;
++ bindex = au_dbstart(dentry);
++ au_set_fbstart(file, bindex);
++ btail = au_dbtaildir(dentry);
++ au_set_fbend(file, btail);
++ for (; !err && bindex <= btail; bindex++) {
++ h_dentry = au_h_dptr(dentry, bindex);
++ if (!h_dentry)
++ continue;
++
++ h_file = au_h_open(dentry, bindex, flags, file);
++ if (IS_ERR(h_file)) {
++ err = PTR_ERR(h_file);
++ break;
++ }
++ au_set_h_fptr(file, bindex, h_file);
++ }
++ au_update_figen(file);
++ /* todo: necessary? */
++ /* file->f_ra = h_file->f_ra; */
++ if (!err)
++ return 0; /* success */
++
++ /* close all */
++ for (bindex = au_fbstart(file); bindex <= btail; bindex++)
++ au_set_h_fptr(file, bindex, NULL);
++ au_set_fbstart(file, -1);
++ au_set_fbend(file, -1);
++ return err;
++}
++
++static int aufs_open_dir(struct inode *inode, struct file *file)
++{
++ LKTRTrace("i%lu, %.*s\n", inode->i_ino, AuDLNPair(file->f_dentry));
++
++ return au_do_open(inode, file, do_open_dir);
++}
++
++static int aufs_release_dir(struct inode *inode, struct file *file)
++{
++ struct au_vdir *vdir_cache;
++ struct super_block *sb;
++
++ LKTRTrace("i%lu, %.*s\n", inode->i_ino, AuDLNPair(file->f_dentry));
++
++ sb = file->f_dentry->d_sb;
++ si_noflush_read_lock(sb);
++ fi_write_lock(file);
++ vdir_cache = au_fvdir_cache(file);
++ if (vdir_cache)
++ au_vdir_free(vdir_cache);
++ fi_write_unlock(file);
++ au_finfo_fin(file);
++ si_read_unlock(sb);
++ return 0;
++}
++
++static int fsync_dir(struct dentry *dentry, int datasync)
++{
++ int err;
++ struct inode *inode;
++ struct super_block *sb;
++ aufs_bindex_t bend, bindex;
++
++ LKTRTrace("%.*s, %d\n", AuDLNPair(dentry), datasync);
++ DiMustAnyLock(dentry);
++ sb = dentry->d_sb;
++ SiMustAnyLock(sb);
++ inode = dentry->d_inode;
++ IMustLock(inode);
++ IiMustAnyLock(inode);
++
++ err = 0;
++ bend = au_dbend(dentry);
++ for (bindex = au_dbstart(dentry); !err && bindex <= bend; bindex++) {
++ struct dentry *h_dentry;
++ struct inode *h_inode;
++ struct file_operations *fop;
++
++ if (au_test_ro(sb, bindex, inode))
++ continue;
++ h_dentry = au_h_dptr(dentry, bindex);
++ if (!h_dentry)
++ continue;
++ h_inode = h_dentry->d_inode;
++ if (!h_inode)
++ continue;
++
++ /* no mnt_want_write() */
++ /* cf. fs/nsfd/vfs.c and fs/nfsd/nfs4recover.c */
++ vfsub_i_lock(h_inode);
++ /* todo: inotiry fired? */
++ fop = (void *)h_inode->i_fop;
++ err = filemap_fdatawrite(h_inode->i_mapping);
++ if (!err && fop && fop->fsync)
++ err = fop->fsync(NULL, h_dentry, datasync);
++ if (!err)
++ err = filemap_fdatawrite(h_inode->i_mapping);
++ if (!err)
++ au_update_fuse_h_inode(NULL, h_dentry); /*ignore*/
++ vfsub_i_unlock(h_inode);
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++/*
++ * @file may be NULL
++ */
++static int aufs_fsync_dir(struct file *file, struct dentry *dentry,
++ int datasync)
++{
++ int err;
++ struct inode *inode;
++ struct file *h_file;
++ struct super_block *sb;
++ aufs_bindex_t bend, bindex;
++
++ LKTRTrace("%.*s, %d\n", AuDLNPair(dentry), datasync);
++ inode = dentry->d_inode;
++ IMustLock(inode);
++
++ err = 0;
++ sb = dentry->d_sb;
++ si_noflush_read_lock(sb);
++ if (file) {
++ err = au_reval_and_lock_fdi(file, reopen_dir, /*wlock*/1,
++ /*locked*/1);
++ if (unlikely(err))
++ goto out;
++ } else
++ di_write_lock_child(dentry);
++
++ if (file) {
++ bend = au_fbend(file);
++ for (bindex = au_fbstart(file); !err && bindex <= bend;
++ bindex++) {
++ h_file = au_h_fptr(file, bindex);
++ if (!h_file || au_test_ro(sb, bindex, inode))
++ continue;
++
++ err = -EINVAL;
++ if (h_file->f_op && h_file->f_op->fsync) {
++ /* todo: try do_fsync() in fs/sync.c? */
++ vfsub_i_lock(h_file->f_mapping->host);
++ err = h_file->f_op->fsync
++ (h_file, h_file->f_dentry, datasync);
++ if (!err)
++ au_update_fuse_h_inode
++ (h_file->f_vfsmnt,
++ h_file->f_dentry);
++ /*ignore*/
++ vfsub_i_unlock(h_file->f_mapping->host);
++ }
++ }
++ } else
++ err = fsync_dir(dentry, datasync);
++ au_cpup_attr_timesizes(inode);
++ di_write_unlock(dentry);
++ if (file)
++ fi_write_unlock(file);
++
++ out:
++ si_read_unlock(sb);
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++static int aufs_readdir(struct file *file, void *dirent, filldir_t filldir)
++{
++ int err;
++ struct dentry *dentry;
++ struct inode *inode;
++ struct super_block *sb;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s, pos %lld\n", AuDLNPair(dentry), file->f_pos);
++ inode = dentry->d_inode;
++ IMustLock(inode);
++
++ sb = dentry->d_sb;
++ si_read_lock(sb, AuLock_FLUSH);
++ err = au_reval_and_lock_fdi(file, reopen_dir, /*wlock*/1, /*locked*/1);
++ if (unlikely(err))
++ goto out;
++ err = au_vdir_init(file);
++ di_downgrade_lock(dentry, AuLock_IR);
++ if (unlikely(err))
++ goto out_unlock;
++
++ if (!au_test_nfsd(current)) {
++ err = au_vdir_fill_de(file, dirent, filldir);
++ } else {
++ /*
++ * nfsd filldir may call lookup_one_len(), vfs_getattr(),
++ * encode_fh() and others.
++ */
++ struct inode *h_inode = au_h_iptr(inode, au_ibstart(inode));
++
++ di_read_unlock(dentry, AuLock_IR);
++ si_read_unlock(sb);
++ lockdep_off();
++ err = au_vdir_fill_de(file, dirent, filldir);
++ lockdep_on();
++ inode->i_atime = h_inode->i_atime;
++ fi_write_unlock(file);
++
++ AuTraceErr(err);
++ return err;
++ }
++
++ inode->i_atime = au_h_iptr(inode, au_ibstart(inode))->i_atime;
++
++ out_unlock:
++ di_read_unlock(dentry, AuLock_IR);
++ fi_write_unlock(file);
++ out:
++ si_read_unlock(sb);
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++#define AuTestEmpty_WHONLY 1
++#define AuTestEmpty_DLGT (1 << 1)
++#define AuTestEmpty_DIRPERM1 (1 << 2)
++#define AuTestEmpty_CALLED (1 << 3)
++#define AuTestEmpty_SHWH (1 << 4)
++#define au_ftest_testempty(flags, name) ((flags) & AuTestEmpty_##name)
++#define au_fset_testempty(flags, name) { (flags) |= AuTestEmpty_##name; }
++#define au_fclr_testempty(flags, name) { (flags) &= ~AuTestEmpty_##name; }
++#ifndef CONFIG_AUFS_DLGT
++#undef AuTestEmpty_DLGT
++#define AuTestEmpty_DLGT 0
++#undef AuTestEmpty_DIRPERM1
++#define AuTestEmpty_DIRPERM1 0
++#endif
++#ifndef CONFIG_AUFS_SHWH
++#undef AuTestEmpty_SHWH
++#define AuTestEmpty_SHWH 0
++#endif
++
++struct test_empty_arg {
++ struct au_nhash *whlist;
++ unsigned int flags;
++ int err;
++ aufs_bindex_t bindex;
++};
++
++static int test_empty_cb(void *__arg, const char *__name, int namelen,
++ loff_t offset, au_filldir_ino_t ino,
++ unsigned int d_type)
++{
++ struct test_empty_arg *arg = __arg;
++ char *name = (void *)__name;
++
++ LKTRTrace("%.*s\n", namelen, name);
++
++ arg->err = 0;
++ au_fset_testempty(arg->flags, CALLED);
++ /* smp_mb(); */
++ if (name[0] == '.'
++ && (namelen == 1 || (name[1] == '.' && namelen == 2)))
++ return 0; /* success */
++
++ if (namelen <= AUFS_WH_PFX_LEN
++ || memcmp(name, AUFS_WH_PFX, AUFS_WH_PFX_LEN)) {
++ if (au_ftest_testempty(arg->flags, WHONLY)
++ && !au_nhash_test_known_wh(arg->whlist, name, namelen))
++ arg->err = -ENOTEMPTY;
++ goto out;
++ }
++
++ name += AUFS_WH_PFX_LEN;
++ namelen -= AUFS_WH_PFX_LEN;
++ if (!au_nhash_test_known_wh(arg->whlist, name, namelen))
++ arg->err = au_nhash_append_wh
++ (arg->whlist, name, namelen, ino, d_type, arg->bindex,
++ au_ftest_testempty(arg->flags, SHWH));
++
++ out:
++ /* smp_mb(); */
++ AuTraceErr(arg->err);
++ return arg->err;
++}
++
++static int do_test_empty(struct dentry *dentry, struct test_empty_arg *arg)
++{
++ int err, dlgt;
++ struct file *h_file;
++
++ LKTRTrace("%.*s, {%p, 0x%x, %d}\n",
++ AuDLNPair(dentry), arg->whlist, arg->flags, arg->bindex);
++
++ h_file = au_h_open(dentry, arg->bindex,
++ O_RDONLY | O_NONBLOCK | O_DIRECTORY | O_LARGEFILE,
++ /*file*/NULL);
++ err = PTR_ERR(h_file);
++ if (IS_ERR(h_file))
++ goto out;
++ err = 0;
++ if (au_opt_test(au_mntflags(dentry->d_sb), UDBA_INOTIFY)
++ && !h_file->f_dentry->d_inode->i_nlink)
++ goto out_put;
++
++ dlgt = au_ftest_testempty(arg->flags, DLGT);
++ do {
++ arg->err = 0;
++ au_fclr_testempty(arg->flags, CALLED);
++ /* smp_mb(); */
++ err = vfsub_readdir(h_file, test_empty_cb, arg, dlgt);
++ if (err >= 0)
++ err = arg->err;
++ } while (!err && au_ftest_testempty(arg->flags, CALLED));
++
++ out_put:
++ fput(h_file);
++ au_sbr_put(dentry->d_sb, arg->bindex);
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++struct do_test_empty_args {
++ int *errp;
++ struct dentry *dentry;
++ struct test_empty_arg *arg;
++};
++
++static void call_do_test_empty(void *args)
++{
++ struct do_test_empty_args *a = args;
++ *a->errp = do_test_empty(a->dentry, a->arg);
++}
++
++static int sio_test_empty(struct dentry *dentry, struct test_empty_arg *arg)
++{
++ int err, wkq_err;
++ struct dentry *h_dentry;
++ struct inode *h_inode;
++
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++ h_dentry = au_h_dptr(dentry, arg->bindex);
++ AuDebugOn(!h_dentry);
++ h_inode = h_dentry->d_inode;
++ AuDebugOn(!h_inode);
++
++ vfsub_i_lock_nested(h_inode, AuLsc_I_CHILD);
++ err = au_test_h_perm_sio(h_inode, MAY_EXEC | MAY_READ,
++ au_test_dlgt(au_mntflags(dentry->d_sb)));
++ vfsub_i_unlock(h_inode);
++ if (!err)
++ err = do_test_empty(dentry, arg);
++ else {
++ struct do_test_empty_args args = {
++ .errp = &err,
++ .dentry = dentry,
++ .arg = arg
++ };
++ unsigned int flags = arg->flags;
++
++ au_fclr_testempty(arg->flags, DLGT);
++ au_fclr_testempty(arg->flags, DIRPERM1);
++ wkq_err = au_wkq_wait(call_do_test_empty, &args, /*dlgt*/0);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ arg->flags = flags;
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++int au_test_empty_lower(struct dentry *dentry)
++{
++ int err;
++ struct inode *inode;
++ struct test_empty_arg arg;
++ struct au_nhash *whlist;
++ aufs_bindex_t bindex, bstart, btail;
++ unsigned int mnt_flags;
++
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++ inode = dentry->d_inode;
++ AuDebugOn(!inode || !S_ISDIR(inode->i_mode));
++
++ whlist = au_nhash_new(GFP_NOFS);
++ err = PTR_ERR(whlist);
++ if (IS_ERR(whlist))
++ goto out;
++
++ bstart = au_dbstart(dentry);
++ mnt_flags = au_mntflags(dentry->d_sb);
++ arg.whlist = whlist;
++ arg.flags = 0;
++ if (au_test_dlgt(mnt_flags))
++ au_fset_testempty(arg.flags, DLGT);
++ if (au_opt_test(mnt_flags, SHWH))
++ au_fset_testempty(arg.flags, SHWH);
++ arg.bindex = bstart;
++ err = do_test_empty(dentry, &arg);
++ if (unlikely(err))
++ goto out_whlist;
++
++ au_fset_testempty(arg.flags, WHONLY);
++ if (au_test_dirperm1(mnt_flags))
++ au_fset_testempty(arg.flags, DIRPERM1);
++ btail = au_dbtaildir(dentry);
++ for (bindex = bstart + 1; !err && bindex <= btail; bindex++) {
++ struct dentry *h_dentry;
++ h_dentry = au_h_dptr(dentry, bindex);
++ if (h_dentry && h_dentry->d_inode) {
++ arg.bindex = bindex;
++ err = do_test_empty(dentry, &arg);
++ }
++ }
++
++ out_whlist:
++ au_nhash_del(whlist);
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++int au_test_empty(struct dentry *dentry, struct au_nhash *whlist)
++{
++ int err;
++ struct inode *inode;
++ struct test_empty_arg arg;
++ aufs_bindex_t bindex, btail;
++
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++ inode = dentry->d_inode;
++ AuDebugOn(!inode || !S_ISDIR(inode->i_mode));
++
++ err = 0;
++ arg.whlist = whlist;
++ arg.flags = AuTestEmpty_WHONLY;
++ if (au_opt_test(au_mntflags(dentry->d_sb), SHWH))
++ au_fset_testempty(arg.flags, SHWH);
++ btail = au_dbtaildir(dentry);
++ for (bindex = au_dbstart(dentry); !err && bindex <= btail; bindex++) {
++ struct dentry *h_dentry;
++ h_dentry = au_h_dptr(dentry, bindex);
++ if (h_dentry && h_dentry->d_inode) {
++ arg.bindex = bindex;
++ err = sio_test_empty(dentry, &arg);
++ }
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct file_operations aufs_dir_fop = {
++ .read = generic_read_dir,
++ .readdir = aufs_readdir,
++ .open = aufs_open_dir,
++ .release = aufs_release_dir,
++ .flush = aufs_flush,
++ .fsync = aufs_fsync_dir,
++};
+diff --git a/fs/aufs/dir.h b/fs/aufs/dir.h
+new file mode 100644
+index 0000000..1870601
+--- /dev/null
++++ b/fs/aufs/dir.h
+@@ -0,0 +1,154 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * directory operations
++ *
++ * $Id: dir.h,v 1.33 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#ifndef __AUFS_DIR_H__
++#define __AUFS_DIR_H__
++
++#ifdef __KERNEL__
++
++#include <linux/fs.h>
++#include <linux/version.h>
++#include <linux/aufs_type.h>
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19)
++typedef u64 au_filldir_ino_t;
++#else
++typedef ino_t au_filldir_ino_t;
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++/* need to be faster and smaller */
++
++/* todo: changeable? */
++#define AuSize_DEBLK 512
++#define AuSize_NHASH 32
++#if AuSize_DEBLK < NAME_MAX || PAGE_SIZE < AuSize_DEBLK
++#error invalid size AuSize_DEBLK
++#endif
++
++typedef char au_vdir_deblk_t[AuSize_DEBLK];
++
++struct au_nhash {
++ struct hlist_head heads[AuSize_NHASH];
++};
++
++struct au_vdir_destr {
++ unsigned char len;
++ char name[0];
++} __packed;
++
++struct au_vdir_dehstr {
++ struct hlist_node hash;
++ struct au_vdir_destr *str;
++};
++
++struct au_vdir_de {
++ ino_t de_ino;
++ unsigned char de_type;
++ /* caution: packed */
++ struct au_vdir_destr de_str;
++} __packed;
++
++struct au_vdir_wh {
++ struct hlist_node wh_hash;
++ aufs_bindex_t wh_bindex;
++#ifdef CONFIG_AUFS_SHWH
++ ino_t wh_ino;
++ unsigned char wh_type;
++ /* caution: packed */
++#endif
++ struct au_vdir_destr wh_str;
++} __packed;
++
++union au_vdir_deblk_p {
++ unsigned char *p;
++ au_vdir_deblk_t *deblk;
++ struct au_vdir_de *de;
++};
++
++struct au_vdir {
++ au_vdir_deblk_t **vd_deblk;
++ int vd_nblk;
++ struct {
++ int i;
++ union au_vdir_deblk_p p;
++ } vd_last;
++
++ unsigned long vd_version;
++ unsigned long vd_jiffy;
++};
++
++/* ---------------------------------------------------------------------- */
++
++/* dir.c */
++extern struct file_operations aufs_dir_fop;
++int au_test_empty_lower(struct dentry *dentry);
++int au_test_empty(struct dentry *dentry, struct au_nhash *whlist);
++
++/* vdir.c */
++struct au_nhash *au_nhash_new(gfp_t gfp);
++void au_nhash_del(struct au_nhash *nhash);
++void au_nhash_init(struct au_nhash *nhash);
++void au_nhash_move(struct au_nhash *dst, struct au_nhash *src);
++void au_nhash_fin(struct au_nhash *nhash);
++int au_nhash_test_longer_wh(struct au_nhash *whlist, aufs_bindex_t btgt,
++ int limit);
++int au_nhash_test_known_wh(struct au_nhash *whlist, char *name, int namelen);
++int au_nhash_append_wh(struct au_nhash *whlist, char *name, int namelen,
++ ino_t ino, unsigned int d_type, aufs_bindex_t bindex,
++ unsigned char shwh);
++void au_vdir_free(struct au_vdir *vdir);
++int au_vdir_init(struct file *file);
++int au_vdir_fill_de(struct file *file, void *dirent, filldir_t filldir);
++
++/* ---------------------------------------------------------------------- */
++
++static inline
++void au_shwh_init_wh(struct au_vdir_wh *wh, ino_t ino, unsigned char d_type)
++{
++#ifdef CONFIG_AUFS_SHWH
++ wh->wh_ino = ino;
++ wh->wh_type = d_type;
++#endif
++}
++
++static inline void au_add_nlink(struct inode *dir, struct inode *h_dir)
++{
++ AuDebugOn(!S_ISDIR(dir->i_mode) || !S_ISDIR(h_dir->i_mode));
++ dir->i_nlink += h_dir->i_nlink - 2;
++ if (h_dir->i_nlink < 2)
++ dir->i_nlink += 2;
++}
++
++static inline void au_sub_nlink(struct inode *dir, struct inode *h_dir)
++{
++ AuDebugOn(!S_ISDIR(dir->i_mode) || !S_ISDIR(h_dir->i_mode));
++ dir->i_nlink -= h_dir->i_nlink - 2;
++ if (h_dir->i_nlink < 2)
++ dir->i_nlink -= 2;
++}
++
++#endif /* __KERNEL__ */
++#endif /* __AUFS_DIR_H__ */
+diff --git a/fs/aufs/dlgt.c b/fs/aufs/dlgt.c
+new file mode 100644
+index 0000000..6eea1b5
+--- /dev/null
++++ b/fs/aufs/dlgt.c
+@@ -0,0 +1,112 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * lookup functions in 'delegate' mode
++ *
++ * $Id: dlgt.c,v 1.4 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++/* ---------------------------------------------------------------------- */
++
++struct au_lookup_one_len_args {
++ struct dentry **errp;
++ const char *name;
++ struct dentry *parent;
++ int len;
++};
++
++static void au_call_lookup_one_len(void *args)
++{
++ struct au_lookup_one_len_args *a = args;
++ *a->errp = vfsub_lookup_one_len(a->name, a->parent, a->len);
++}
++
++struct dentry *au_lkup_one_dlgt(const char *name, struct dentry *parent,
++ int len, unsigned int flags)
++{
++ struct dentry *dentry;
++ int dirperm1;
++
++ LKTRTrace("%.*s/%.*s, 0x%x\n", AuDLNPair(parent), len, name, flags);
++
++ dirperm1 = au_ftest_ndx(flags, DIRPERM1);
++ if (!dirperm1 && !au_ftest_ndx(flags, DLGT))
++ dentry = vfsub_lookup_one_len(name, parent, len);
++ else {
++ int wkq_err;
++ struct au_lookup_one_len_args args = {
++ .errp = &dentry,
++ .name = name,
++ .parent = parent,
++ .len = len
++ };
++ wkq_err = au_wkq_wait(au_call_lookup_one_len, &args,
++ /*dlgt*/!dirperm1);
++ if (unlikely(wkq_err))
++ dentry = ERR_PTR(wkq_err);
++ }
++
++ AuTraceErrPtr(dentry);
++ return dentry;
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct security_inode_permission_args {
++ int *errp;
++ struct inode *h_inode;
++ int mask;
++ struct nameidata *fake_nd;
++};
++
++static void call_security_inode_permission(void *args)
++{
++ struct security_inode_permission_args *a = args;
++ LKTRTrace("fsuid %d\n", current->fsuid);
++ *a->errp = security_inode_permission(a->h_inode, a->mask, a->fake_nd);
++}
++
++int au_security_inode_permission(struct inode *h_inode, int mask,
++ struct nameidata *fake_nd, int dlgt)
++{
++ int err;
++
++ AuTraceEnter();
++
++ if (!dlgt)
++ err = security_inode_permission(h_inode, mask, fake_nd);
++ else {
++ int wkq_err;
++ struct security_inode_permission_args args = {
++ .errp = &err,
++ .h_inode = h_inode,
++ .mask = mask,
++ .fake_nd = fake_nd
++ };
++ wkq_err = au_wkq_wait(call_security_inode_permission, &args,
++ /*dlgt*/1);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ }
++
++ AuTraceErr(err);
++ return err;
++}
+diff --git a/fs/aufs/export.c b/fs/aufs/export.c
+new file mode 100644
+index 0000000..d2d474c
+--- /dev/null
++++ b/fs/aufs/export.c
+@@ -0,0 +1,809 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * export via nfs
++ *
++ * $Id: export.c,v 1.43 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23)
++#include <linux/exportfs.h>
++#else
++#include <linux/fs.h>
++#endif
++#include <linux/random.h>
++#include "aufs.h"
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23)
++static struct dentry *
++au_call_decode_fh(struct vfsmount *h_mnt, __u32 *fh, int fh_len, int fh_type,
++ int (*acceptable)(void *, struct dentry *), void *context)
++{
++ /* in linux-2.6.24, it takes struct fid * as file handle */
++ return exportfs_decode_fh(h_mnt, (void *)fh, fh_len, fh_type,
++ acceptable, context);
++}
++
++static int
++au_call_encode_fh(struct dentry *h_dentry, __u32 *fh, int *max_len,
++ int connectable)
++{
++ /* in linux-2.6.24, it takes struct fid * as file handle */
++ return exportfs_encode_fh(h_dentry, (void *)fh, max_len, connectable);
++}
++#else
++extern struct export_operations export_op_default;
++#define CALL(ops, func) \
++ (((ops)->func) ? ((ops)->func) : export_op_default.func)
++
++static struct dentry *
++au_call_decode_fh(struct vfsmount *h_mnt, __u32 *fh, int fh_len, int fh_type,
++ int (*acceptable)(void *, struct dentry *), void *context)
++{
++ return CALL(h_mnt->mnt_sb->s_export_op, decode_fh)
++ (h_mnt->mnt_sb, fh, fh_len, fh_type, acceptable, context);
++}
++
++static int
++au_call_encode_fh(struct dentry *h_dentry, __u32 *fh, int *max_len,
++ int connectable)
++{
++ return CALL(h_dentry->d_sb->s_export_op, encode_fh)
++ (h_dentry, fh, max_len, connectable);
++}
++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23) */
++
++/* ---------------------------------------------------------------------- */
++
++union conv {
++#ifdef CONFIG_AUFS_INO_T_64
++ __u32 a[2];
++#else
++ __u32 a[1];
++#endif
++ ino_t ino;
++};
++
++static ino_t decode_ino(__u32 *a)
++{
++ union conv u;
++
++ BUILD_BUG_ON(sizeof(u.ino) != sizeof(u.a));
++ u.a[0] = a[0];
++#ifdef CONFIG_AUFS_INO_T_64
++ u.a[1] = a[1];
++#endif
++ return u.ino;
++}
++
++static void encode_ino(__u32 *a, ino_t ino)
++{
++ union conv u;
++
++ u.ino = ino;
++ a[0] = u.a[0];
++#ifdef CONFIG_AUFS_INO_T_64
++ a[1] = u.a[1];
++#endif
++}
++
++/* NFS file handle */
++enum {
++ Fh_br_id,
++ Fh_sigen,
++#ifdef CONFIG_AUFS_INO_T_64
++ /* support 64bit inode number */
++ Fh_ino1,
++ Fh_ino2,
++ Fh_dir_ino1,
++ Fh_dir_ino2,
++#else
++ Fh_ino1,
++ Fh_dir_ino1,
++#endif
++ Fh_igen,
++ Fh_h_type,
++ Fh_tail,
++
++ Fh_ino = Fh_ino1,
++ Fh_dir_ino = Fh_dir_ino1
++};
++
++static int au_test_anon(struct dentry *dentry)
++{
++ return !!(dentry->d_flags & DCACHE_DISCONNECTED);
++}
++
++/* ---------------------------------------------------------------------- */
++/* inode generation external table */
++
++int au_xigen_inc(struct inode *inode)
++{
++ int err;
++ loff_t pos;
++ ssize_t sz;
++ __u32 igen;
++ struct super_block *sb;
++ struct au_sbinfo *sbinfo;
++
++ LKTRTrace("i%lu\n", (unsigned long)inode->i_ino);
++
++ err = 0;
++ sb = inode->i_sb;
++ if (unlikely(!au_opt_test_xino(au_mntflags(sb))))
++ goto out;
++
++ pos = inode->i_ino;
++ pos *= sizeof(igen);
++ igen = inode->i_generation + 1;
++ sbinfo = au_sbi(sb);
++ sz = xino_fwrite(sbinfo->si_xwrite, sbinfo->si_xigen, &igen,
++ sizeof(igen), &pos);
++ if (sz == sizeof(igen))
++ goto out; /* success */
++
++ err = sz;
++ if (unlikely(sz >= 0)) {
++ err = -EIO;
++ AuIOErr("xigen error (%zd)\n", sz);
++ }
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++int au_xigen_new(struct inode *inode)
++{
++ int err;
++ loff_t pos;
++ ssize_t sz;
++ struct super_block *sb;
++ struct au_sbinfo *sbinfo;
++ struct file *file;
++
++ LKTRTrace("i%lu\n", inode->i_ino);
++
++ err = 0;
++ /* todo: dirty, at mount time */
++ if (inode->i_ino == AUFS_ROOT_INO)
++ goto out;
++ sb = inode->i_sb;
++ if (unlikely(!au_opt_test_xino(au_mntflags(sb))))
++ goto out;
++
++ err = -EFBIG;
++ pos = inode->i_ino;
++ if (unlikely(Au_LOFF_MAX / sizeof(inode->i_generation) - 1 < pos)) {
++ AuIOErr1("too large i%lld\n", pos);
++ goto out;
++ }
++ pos *= sizeof(inode->i_generation);
++
++ err = 0;
++ sbinfo = au_sbi(sb);
++ file = sbinfo->si_xigen;
++ BUG_ON(!file);
++
++ if (i_size_read(file->f_dentry->d_inode)
++ < pos + sizeof(inode->i_generation)) {
++ inode->i_generation = atomic_inc_return(&sbinfo->si_xigen_next);
++ sz = xino_fwrite(sbinfo->si_xwrite, file, &inode->i_generation,
++ sizeof(inode->i_generation), &pos);
++ } else
++ sz = xino_fread(sbinfo->si_xread, file, &inode->i_generation,
++ sizeof(inode->i_generation), &pos);
++ if (sz == sizeof(inode->i_generation))
++ goto out; /* success */
++
++ err = sz;
++ if (unlikely(sz >= 0)) {
++ err = -EIO;
++ AuIOErr("xigen error (%zd)\n", sz);
++ }
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++int au_xigen_set(struct super_block *sb, struct file *base)
++{
++ int err;
++ struct au_sbinfo *sbinfo;
++ struct file *file;
++
++ LKTRTrace("%.*s\n", AuDLNPair(base->f_dentry));
++ SiMustWriteLock(sb);
++
++ sbinfo = au_sbi(sb);
++ file = au_xino_create2(sb, base, sbinfo->si_xigen);
++ err = PTR_ERR(file);
++ if (IS_ERR(file))
++ goto out;
++ err = 0;
++ if (sbinfo->si_xigen)
++ fput(sbinfo->si_xigen);
++ sbinfo->si_xigen = file;
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++void au_xigen_clr(struct super_block *sb)
++{
++ struct au_sbinfo *sbinfo;
++
++ sbinfo = au_sbi(sb);
++ if (sbinfo->si_xigen) {
++ fput(sbinfo->si_xigen);
++ sbinfo->si_xigen = NULL;
++ }
++}
++
++/* ---------------------------------------------------------------------- */
++
++static struct dentry *decode_by_ino(struct super_block *sb, ino_t ino,
++ ino_t dir_ino)
++{
++ struct dentry *dentry, *d;
++ struct inode *inode;
++ au_gen_t sigen;
++
++ LKTRTrace("i%lu, diri%lu\n",
++ (unsigned long)ino, (unsigned long)dir_ino);
++
++ dentry = NULL;
++ inode = ilookup(sb, ino);
++ if (!inode)
++ goto out;
++
++ dentry = ERR_PTR(-ESTALE);
++ sigen = au_sigen(sb);
++ if (unlikely(is_bad_inode(inode)
++ || IS_DEADDIR(inode)
++ || sigen != au_iigen(inode)))
++ goto out_iput;
++
++ dentry = NULL;
++ if (!dir_ino || S_ISDIR(inode->i_mode))
++ dentry = d_find_alias(inode);
++ else {
++ spin_lock(&dcache_lock);
++ list_for_each_entry(d, &inode->i_dentry, d_alias)
++ if (!au_test_anon(d)
++ && d->d_parent->d_inode->i_ino == dir_ino) {
++ dentry = dget_locked(d);
++ break;
++ }
++ spin_unlock(&dcache_lock);
++ }
++ if (unlikely(dentry && sigen != au_digen(dentry))) {
++ dput(dentry);
++ dentry = ERR_PTR(-ESTALE);
++ }
++
++ out_iput:
++ iput(inode);
++ out:
++ AuTraceErrPtr(dentry);
++ return dentry;
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct au_nfsd_si_lock {
++ const au_gen_t sigen;
++ const aufs_bindex_t br_id;
++ unsigned char force_lock;
++};
++
++static aufs_bindex_t si_nfsd_read_lock(struct super_block *sb,
++ struct au_nfsd_si_lock *nsi_lock)
++{
++ aufs_bindex_t bindex;
++
++ si_read_lock(sb, AuLock_FLUSH);
++
++ /* branch id may be wrapped around */
++ bindex = au_br_index(sb, nsi_lock->br_id);
++ LKTRTrace("b%d\n", bindex);
++ if (bindex >= 0 && nsi_lock->sigen + AUFS_BRANCH_MAX > au_sigen(sb))
++ goto out; /* success */
++
++ if (!nsi_lock->force_lock)
++ si_read_unlock(sb);
++ bindex = -1;
++
++ out:
++ return bindex;
++}
++
++struct find_name_by_ino {
++ int called, found;
++ ino_t ino;
++ char *name;
++ int namelen;
++};
++
++static int
++find_name_by_ino(void *arg, const char *name, int namelen, loff_t offset,
++ au_filldir_ino_t ino, unsigned int d_type)
++{
++ struct find_name_by_ino *a = arg;
++
++ a->called++;
++ if (a->ino != ino)
++ return 0;
++
++ memcpy(a->name, name, namelen);
++ a->namelen = namelen;
++ a->found = 1;
++ return 1;
++}
++
++static struct dentry *au_lkup_by_ino(struct path *path, ino_t ino,
++ struct au_nfsd_si_lock *nsi_lock)
++{
++ struct dentry *dentry, *parent;
++ struct file *file;
++ struct inode *dir;
++ struct find_name_by_ino arg;
++ int err;
++
++ parent = path->dentry;
++ LKTRTrace("%.*s, i%lu\n", AuDLNPair(parent), (unsigned long)ino);
++
++ if (nsi_lock)
++ si_read_unlock(parent->d_sb);
++ path_get(path);
++ file = dentry_open(parent, path->mnt, au_dir_roflags);
++ dentry = (void *)file;
++ if (IS_ERR(file))
++ goto out;
++
++ dentry = ERR_PTR(-ENOMEM);
++ arg.name = __getname();
++ if (unlikely(!arg.name))
++ goto out_file;
++ arg.ino = ino;
++ arg.found = 0;
++ do {
++ arg.called = 0;
++ /* smp_mb(); */
++ err = vfsub_readdir(file, find_name_by_ino, &arg, /*dlgt*/0);
++ } while (!err && !arg.found && arg.called);
++ dentry = ERR_PTR(err);
++ if (unlikely(err))
++ goto out_name;
++ dentry = ERR_PTR(-ENOENT);
++ if (!arg.found)
++ goto out_name;
++
++ /* do not call au_lkup_one(), nor dlgt */
++ dir = parent->d_inode;
++ vfsub_i_lock(dir);
++ dentry = vfsub_lookup_one_len(arg.name, parent, arg.namelen);
++ vfsub_i_unlock(dir);
++ AuTraceErrPtr(dentry);
++ if (IS_ERR(dentry))
++ goto out_name;
++ AuDebugOn(au_test_anon(dentry));
++ if (unlikely(!dentry->d_inode)) {
++ dput(dentry);
++ dentry = ERR_PTR(-ENOENT);
++ }
++
++ out_name:
++ __putname(arg.name);
++ out_file:
++ fput(file);
++ out:
++ if (unlikely(nsi_lock
++ && si_nfsd_read_lock(parent->d_sb, nsi_lock) < 0))
++ if (!IS_ERR(dentry)) {
++ dput(dentry);
++ dentry = ERR_PTR(-ESTALE);
++ }
++ AuTraceErrPtr(dentry);
++ return dentry;
++}
++
++static /* noinline_for_stack */
++struct dentry *decode_by_dir_ino(struct super_block *sb, ino_t ino,
++ ino_t dir_ino, struct au_nfsd_si_lock *nsi_lock)
++{
++ struct dentry *dentry, *parent;
++ struct path path;
++
++ LKTRTrace("i%lu, diri%lu\n",
++ (unsigned long)ino, (unsigned long)dir_ino);
++
++ parent = sb->s_root;
++ if (dir_ino != AUFS_ROOT_INO) {
++ parent = decode_by_ino(sb, dir_ino, 0);
++ dentry = parent;
++ if (!parent)
++ goto out;
++ if (IS_ERR(parent))
++ goto out;
++ AuDebugOn(au_test_anon(parent));
++ } else
++ dget(parent);
++
++ path.dentry = parent;
++ path.mnt = au_sbi(sb)->si_mnt;
++ dentry = au_lkup_by_ino(&path, ino, nsi_lock);
++ dput(parent);
++
++ out:
++ AuTraceErrPtr(dentry);
++ return dentry;
++}
++
++/* ---------------------------------------------------------------------- */
++
++static int h_acceptable(void *expv, struct dentry *dentry)
++{
++ return 1;
++}
++
++static char *au_build_path(struct dentry *h_parent, struct path *h_rootpath,
++ char *buf, int len, struct super_block *sb)
++{
++ char *p;
++ int n;
++
++ AuTraceEnter();
++
++ p = d_path(h_rootpath->dentry, h_rootpath->mnt, buf, len);
++ if (IS_ERR(p))
++ goto out;
++ n = strlen(p);
++
++ p = d_path(h_parent, h_rootpath->mnt, buf, len);
++ if (IS_ERR(p))
++ goto out;
++ LKTRTrace("%s\n", p);
++ if (n != 1)
++ p += n;
++ LKTRTrace("%p, %s, %ld\n",
++ p, p, (long)(p - buf));
++
++ p = d_path(sb->s_root, au_sbi(sb)->si_mnt, buf, len - strlen(p));
++ if (IS_ERR(p))
++ goto out;
++ if (n != 1)
++ p[strlen(p)] = '/';
++ LKTRTrace("%s\n", p);
++
++ out:
++ AuTraceErrPtr(p);
++ return p;
++}
++
++static noinline_for_stack
++struct dentry *decode_by_path(struct super_block *sb, aufs_bindex_t bindex,
++ ino_t ino, __u32 *fh, int fh_len,
++ struct au_nfsd_si_lock *nsi_lock)
++{
++ struct dentry *dentry, *h_parent, *root;
++ struct super_block *h_sb;
++ char *pathname, *p;
++ struct vfsmount *h_mnt;
++ struct au_branch *br;
++ int err;
++ struct nameidata nd;
++ struct path path;
++
++ LKTRTrace("b%d\n", bindex);
++ SiMustAnyLock(sb);
++
++ br = au_sbr(sb, bindex);
++ /* au_br_get(br); */
++ h_mnt = br->br_mnt;
++ h_sb = h_mnt->mnt_sb;
++ LKTRTrace("%s, h_decode_fh\n", au_sbtype(h_sb));
++ h_parent = au_call_decode_fh(h_mnt, fh + Fh_tail, fh_len - Fh_tail,
++ fh[Fh_h_type], h_acceptable,
++ /*context*/NULL);
++ dentry = h_parent;
++ if (unlikely(!h_parent || IS_ERR(h_parent))) {
++ AuWarn1("%s decode_fh failed, %ld\n",
++ au_sbtype(h_sb), PTR_ERR(h_parent));
++ goto out;
++ }
++ dentry = NULL;
++ if (unlikely(au_test_anon(h_parent))) {
++ AuWarn1("%s decode_fh returned a disconnected dentry\n",
++ au_sbtype(h_sb));
++ goto out_h_parent;
++ }
++
++ dentry = ERR_PTR(-ENOMEM);
++ pathname = (void *)__get_free_page(GFP_NOFS);
++ if (unlikely(!pathname))
++ goto out_h_parent;
++
++ root = sb->s_root;
++ path.mnt = h_mnt;
++ di_read_lock_parent(root, !AuLock_IR);
++ path.dentry = au_h_dptr(root, bindex);
++ di_read_unlock(root, !AuLock_IR);
++ p = au_build_path(h_parent, &path, pathname, PAGE_SIZE, sb);
++ dentry = (void *)p;
++ if (IS_ERR(p))
++ goto out_pathname;
++
++ LKTRTrace("%s\n", p);
++ si_read_unlock(sb);
++ err = vfsub_path_lookup(p, LOOKUP_FOLLOW | LOOKUP_DIRECTORY, &nd);
++ dentry = ERR_PTR(err);
++ if (unlikely(err))
++ goto out_relock;
++
++ dentry = ERR_PTR(-ENOENT);
++ AuDebugOn(au_test_anon(nd.dentry));
++ if (unlikely(!nd.dentry->d_inode))
++ goto out_nd;
++
++ if (ino != nd.dentry->d_inode->i_ino) {
++ path.mnt = nd.mnt;
++ path.dentry = nd.dentry;
++ dentry = au_lkup_by_ino(&path, ino, /*nsi_lock*/NULL);
++ } else
++ dentry = dget(nd.dentry);
++
++ out_nd:
++ path_release(&nd);
++ out_relock:
++ if (unlikely(si_nfsd_read_lock(sb, nsi_lock) < 0))
++ if (!IS_ERR(dentry)) {
++ dput(dentry);
++ dentry = ERR_PTR(-ESTALE);
++ }
++ out_pathname:
++ free_page((unsigned long)pathname);
++ out_h_parent:
++ dput(h_parent);
++ out:
++ /* au_br_put(br); */
++ AuTraceErrPtr(dentry);
++ return dentry;
++}
++
++/* ---------------------------------------------------------------------- */
++
++static struct dentry *
++aufs_decode_fh(struct super_block *sb, __u32 *fh, int fh_len, int fh_type,
++ int (*acceptable)(void *context, struct dentry *de),
++ void *context)
++{
++ struct dentry *dentry;
++ ino_t ino, dir_ino;
++ aufs_bindex_t bindex;
++ struct au_nfsd_si_lock nsi_lock = {
++ .sigen = fh[Fh_sigen],
++ .br_id = fh[Fh_br_id],
++ .force_lock = 0
++ };
++
++ LKTRTrace("%d, fh{br_id %u, sigen %u, i%u, diri%u, g%u}\n",
++ fh_type, fh[Fh_br_id], fh[Fh_sigen], fh[Fh_ino],
++ fh[Fh_dir_ino], fh[Fh_igen]);
++ AuDebugOn(fh_len < Fh_tail);
++
++ dentry = ERR_PTR(-ESTALE);
++ /* branch id may be wrapped around */
++ bindex = si_nfsd_read_lock(sb, &nsi_lock);
++ if (unlikely(bindex < 0))
++ goto out;
++ nsi_lock.force_lock = 1;
++
++ /* is this inode still cached? */
++ ino = decode_ino(fh + Fh_ino);
++ AuDebugOn(ino == AUFS_ROOT_INO);
++ dir_ino = decode_ino(fh + Fh_dir_ino);
++ dentry = decode_by_ino(sb, ino, dir_ino);
++ if (IS_ERR(dentry))
++ goto out_unlock;
++ if (dentry)
++ goto accept;
++
++ /* is the parent dir cached? */
++ dentry = decode_by_dir_ino(sb, ino, dir_ino, &nsi_lock);
++ if (IS_ERR(dentry))
++ goto out_unlock;
++ if (dentry)
++ goto accept;
++
++ /* lookup path */
++ dentry = decode_by_path(sb, bindex, ino, fh, fh_len, &nsi_lock);
++ if (IS_ERR(dentry))
++ goto out_unlock;
++ if (unlikely(!dentry))
++ goto out_unlock;
++
++ accept:
++ LKTRLabel(accept);
++ if (dentry->d_inode->i_generation == fh[Fh_igen]
++ && acceptable(context, dentry))
++ goto out_unlock; /* success */
++
++ LKTRLabel(stale);
++ dput(dentry);
++ dentry = ERR_PTR(-ESTALE);
++ out_unlock:
++ LKTRLabel(out_unlock);
++ si_read_unlock(sb);
++ out:
++ LKTRLabel(out);
++ if (0 && IS_ERR(dentry))
++ dentry = ERR_PTR(-ESTALE);
++ AuTraceErrPtr(dentry);
++ return dentry;
++}
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 24)
++static struct dentry *
++aufs_fh_to_dentry(struct super_block *sb, struct fid *fid, int fh_len,
++ int fh_type)
++{
++ return aufs_decode_fh(sb, fid->raw, fh_len, fh_type, h_acceptable,
++ /*context*/NULL);
++}
++#endif /* KERNEL_VERSION */
++
++/* ---------------------------------------------------------------------- */
++
++static int aufs_encode_fh(struct dentry *dentry, __u32 *fh, int *max_len,
++ int connectable)
++{
++ int err;
++ aufs_bindex_t bindex, bend;
++ struct super_block *sb, *h_sb;
++ struct inode *inode;
++ struct dentry *parent, *h_parent;
++ struct au_branch *br;
++
++ LKTRTrace("%.*s, max %d, conn %d\n",
++ AuDLNPair(dentry), *max_len, connectable);
++ AuDebugOn(au_test_anon(dentry));
++
++ parent = NULL;
++ err = -ENOSPC;
++ if (unlikely(*max_len <= Fh_tail)) {
++ AuWarn1("NFSv2 client (max_len %d)?\n", *max_len);
++ goto out;
++ }
++
++ err = 0; //FILEID_ROOT;
++ if (IS_ROOT(dentry)) {
++ AuDebugOn(dentry->d_inode->i_ino != AUFS_ROOT_INO);
++ goto out;
++ }
++
++ err = -EIO;
++ h_parent = NULL;
++ sb = dentry->d_sb;
++ aufs_read_lock(dentry, AuLock_FLUSH | AuLock_IR);
++ parent = dget_parent(dentry);
++ di_read_lock_parent(parent, !AuLock_IR);
++ inode = dentry->d_inode;
++ AuDebugOn(!inode);
++#ifdef CONFIG_AUFS_DEBUG
++ {
++ unsigned int mnt_flags = au_mntflags(sb);
++
++ if (unlikely(!au_opt_test_xino(mnt_flags)))
++ AuWarn1("NFS-exporting requires xino\n");
++ if (unlikely(0 && !au_opt_test(mnt_flags, UDBA_INOTIFY)))
++ AuWarn1("udba=inotify is recommended "
++ "for NFS-exporting\n");
++ }
++#endif
++
++ bend = au_dbtaildir(parent);
++ for (bindex = au_dbstart(parent); bindex <= bend; bindex++) {
++ h_parent = au_h_dptr(parent, bindex);
++ if (h_parent) {
++ dget(h_parent);
++ break;
++ }
++ }
++ if (unlikely(!h_parent))
++ goto out_unlock;
++ LKTRTrace("b%d\n", bindex);
++
++ err = -EPERM;
++ br = au_sbr(sb, bindex);
++ h_sb = br->br_mnt->mnt_sb;
++ if (unlikely(!h_sb->s_export_op)) {
++ AuErr1("%s branch is not exportable\n", au_sbtype(h_sb));
++ goto out_dput;
++ }
++
++ fh[Fh_br_id] = br->br_id;
++ fh[Fh_sigen] = au_sigen(sb);
++ encode_ino(fh + Fh_ino, inode->i_ino);
++ encode_ino(fh + Fh_dir_ino, parent->d_inode->i_ino);
++ fh[Fh_igen] = inode->i_generation;
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24)
++ /* it should be set at exporting time */
++ if (unlikely(!h_sb->s_export_op->find_exported_dentry)) {
++ AuWarn("set default find_exported_dentry for %s\n",
++ au_sbtype(h_sb));
++ h_sb->s_export_op->find_exported_dentry = find_exported_dentry;
++ }
++#endif
++
++ *max_len -= Fh_tail;
++ fh[Fh_h_type] = au_call_encode_fh(h_parent, fh + Fh_tail, max_len,
++ /*connectable or subtreecheck*/0);
++ err = fh[Fh_h_type];
++ *max_len += Fh_tail;
++ /* todo: macros? */
++ if (err != 255)
++ err = 99;
++ else
++ AuWarn1("%s encode_fh failed\n", au_sbtype(h_sb));
++
++ out_dput:
++ dput(h_parent);
++ out_unlock:
++ di_read_unlock(parent, !AuLock_IR);
++ dput(parent);
++ aufs_read_unlock(dentry, AuLock_IR);
++ out:
++ AuTraceErr(err);
++ if (unlikely(err < 0))
++ err = 255;
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++static struct export_operations aufs_export_op = {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 24)
++ .fh_to_dentry = aufs_fh_to_dentry,
++#else
++ .decode_fh = aufs_decode_fh,
++#endif
++ .encode_fh = aufs_encode_fh
++};
++
++void au_export_init(struct super_block *sb)
++{
++ struct au_sbinfo *sbinfo;
++ __u32 u;
++
++ AuTraceEnter();
++ SiMustWriteLock(sb);
++
++ sb->s_export_op = &aufs_export_op;
++ sbinfo = au_sbi(sb);
++ sbinfo->si_xigen = NULL;
++ get_random_bytes(&u, sizeof(u));
++ BUILD_BUG_ON(sizeof(u) != sizeof(int));
++ atomic_set(&sbinfo->si_xigen_next, u);
++ //memset(&sbinfo->si_xinodir, 0, sizeof(struct path));
++}
+diff --git a/fs/aufs/f_op.c b/fs/aufs/f_op.c
+new file mode 100644
+index 0000000..df38c61
+--- /dev/null
++++ b/fs/aufs/f_op.c
+@@ -0,0 +1,813 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * file and vm operations
++ *
++ * $Id: f_op.c,v 1.60 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include <linux/fsnotify.h>
++#include <linux/pagemap.h>
++#include <linux/poll.h>
++#include <linux/security.h>
++#include <linux/version.h>
++#include "aufs.h"
++
++/* common function to regular file and dir */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
++#define FlushArgs h_file, id
++int aufs_flush(struct file *file, fl_owner_t id)
++#else
++#define FlushArgs h_file
++int aufs_flush(struct file *file)
++#endif
++{
++ int err;
++ struct dentry *dentry;
++ aufs_bindex_t bindex, bend;
++ struct file *h_file;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++
++ si_noflush_read_lock(dentry->d_sb);
++ fi_read_lock(file);
++ di_read_lock_child(dentry, AuLock_IW);
++
++ err = 0;
++ bend = au_fbend(file);
++ for (bindex = au_fbstart(file); !err && bindex <= bend; bindex++) {
++ h_file = au_h_fptr(file, bindex);
++ if (h_file && h_file->f_op && h_file->f_op->flush) {
++ err = h_file->f_op->flush(FlushArgs);
++ if (!err)
++ au_update_fuse_h_inode
++ (h_file->f_vfsmnt, h_file->f_dentry);
++ /*ignore*/
++ }
++ }
++ au_cpup_attr_timesizes(dentry->d_inode);
++
++ di_read_unlock(dentry, AuLock_IW);
++ fi_read_unlock(file);
++ si_read_unlock(dentry->d_sb);
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++static int do_open_nondir(struct file *file, int flags)
++{
++ int err;
++ aufs_bindex_t bindex;
++ struct super_block *sb;
++ struct file *h_file;
++ struct dentry *dentry;
++ struct inode *inode;
++ struct au_finfo *finfo;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s, flags 0%o\n", AuDLNPair(dentry), flags);
++ FiMustWriteLock(file);
++ inode = dentry->d_inode;
++ AuDebugOn(!inode || S_ISDIR(inode->i_mode));
++
++ err = 0;
++ finfo = au_fi(file);
++ finfo->fi_h_vm_ops = NULL;
++ sb = dentry->d_sb;
++ bindex = au_dbstart(dentry);
++ AuDebugOn(!au_h_dptr(dentry, bindex)->d_inode);
++ /* O_TRUNC is processed already */
++ BUG_ON(au_test_ro(sb, bindex, inode) && (flags & O_TRUNC));
++
++ h_file = au_h_open(dentry, bindex, flags, file);
++ if (IS_ERR(h_file))
++ err = PTR_ERR(h_file);
++ else {
++ au_set_fbstart(file, bindex);
++ au_set_fbend(file, bindex);
++ au_set_h_fptr(file, bindex, h_file);
++ au_update_figen(file);
++ /* todo: necessary? */
++ /* file->f_ra = h_file->f_ra; */
++ err = 0;
++ }
++ AuTraceErr(err);
++ return err;
++}
++
++static int aufs_open_nondir(struct inode *inode, struct file *file)
++{
++ LKTRTrace("i%lu, %.*s\n", inode->i_ino, AuDLNPair(file->f_dentry));
++
++ return au_do_open(inode, file, do_open_nondir);
++}
++
++static int aufs_release_nondir(struct inode *inode, struct file *file)
++{
++ struct super_block *sb = file->f_dentry->d_sb;
++
++ LKTRTrace("i%lu, %.*s\n", inode->i_ino, AuDLNPair(file->f_dentry));
++
++ si_noflush_read_lock(sb);
++ au_finfo_fin(file);
++ si_read_unlock(sb);
++ return 0;
++}
++
++/* ---------------------------------------------------------------------- */
++
++static ssize_t aufs_read(struct file *file, char __user *buf, size_t count,
++ loff_t *ppos)
++{
++ ssize_t err;
++ struct dentry *dentry;
++ struct file *h_file;
++ struct super_block *sb;
++ struct inode *h_inode;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s, cnt %zu, pos %lld\n", AuDLNPair(dentry), count, *ppos);
++
++ sb = dentry->d_sb;
++ si_read_lock(sb, AuLock_FLUSH);
++ err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/0,
++ /*locked*/0);
++ if (unlikely(err))
++ goto out;
++
++ /* support LSM and notify */
++ h_file = au_h_fptr(file, au_fbstart(file));
++ h_inode = h_file->f_dentry->d_inode;
++ err = vfsub_read_u(h_file, buf, count, ppos,
++ au_test_dlgt(au_mntflags(sb)));
++ /* todo: necessary? */
++ /* file->f_ra = h_file->f_ra; */
++ dentry->d_inode->i_atime = h_file->f_dentry->d_inode->i_atime;
++
++ di_read_unlock(dentry, AuLock_IR);
++ fi_read_unlock(file);
++ out:
++ si_read_unlock(sb);
++ AuTraceErr(err);
++ return err;
++}
++
++static ssize_t aufs_write(struct file *file, const char __user *ubuf,
++ size_t count, loff_t *ppos)
++{
++ ssize_t err;
++ struct dentry *dentry;
++ struct inode *inode;
++ struct super_block *sb;
++ unsigned int mnt_flags;
++ struct file *h_file;
++ char __user *buf = (char __user *)ubuf;
++ struct au_hin_ignore ign;
++ struct vfsub_args vargs;
++ aufs_bindex_t bstart;
++ int hinotify;
++ struct au_pin pin;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s, cnt %zu, pos %lld\n", AuDLNPair(dentry), count, *ppos);
++
++ inode = dentry->d_inode;
++ vfsub_i_lock(inode);
++ sb = dentry->d_sb;
++ si_read_lock(sb, AuLock_FLUSH);
++ mnt_flags = au_mntflags(sb);
++ hinotify = !!au_opt_test(mnt_flags, UDBA_INOTIFY);
++ vfsub_args_init(&vargs, &ign, au_test_dlgt(mnt_flags), 0);
++
++ err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1,
++ /*locked*/1);
++ if (unlikely(err))
++ goto out;
++ err = au_ready_to_write(file, -1, &pin);
++ di_downgrade_lock(dentry, AuLock_IR);
++ if (unlikely(err))
++ goto out_unlock;
++
++ bstart = au_fbstart(file);
++ h_file = au_h_fptr(file, bstart);
++ if (!hinotify) {
++ au_unpin(&pin);
++ err = vfsub_write_u(h_file, buf, count, ppos, &vargs);
++ } else {
++ vfsub_ign_hinode(&vargs, IN_MODIFY, au_pinned_hdir(&pin));
++ err = vfsub_write_u(h_file, buf, count, ppos, &vargs);
++ au_unpin(&pin);
++ }
++ au_cpup_attr_timesizes(inode);
++
++ out_unlock:
++ di_read_unlock(dentry, AuLock_IR);
++ fi_write_unlock(file);
++ out:
++ si_read_unlock(sb);
++ vfsub_i_unlock(inode);
++ AuTraceErr(err);
++ return err;
++}
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23) \
++ || defined(CONFIG_AUFS_SPLICE_PATCH)
++static int au_test_loopback(void)
++{
++ const char c = current->comm[4];
++ /* true if a kernel thread named 'loop[0-9].*' accesses a file */
++ const int loopback = (current->mm == NULL
++ && '0' <= c && c <= '9'
++ && strncmp(current->comm, "loop", 4) == 0);
++ return loopback;
++}
++#endif
++
++#ifdef CONFIG_AUFS_SPLICE_PATCH
++static ssize_t aufs_splice_read(struct file *file, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags)
++{
++ ssize_t err;
++ struct file *h_file;
++ struct dentry *dentry;
++ struct super_block *sb;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s, pos %lld, len %zu\n", AuDLNPair(dentry), *ppos, len);
++
++ sb = dentry->d_sb;
++ si_read_lock(sb, AuLock_FLUSH);
++ err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/0,
++ /*locked*/0);
++ if (unlikely(err))
++ goto out;
++
++ err = -EINVAL;
++ /* support LSM and notify */
++ h_file = au_h_fptr(file, au_fbstart(file));
++ if (au_test_loopback()) {
++ file->f_mapping = h_file->f_mapping;
++ smp_mb(); /* unnecessary? */
++ }
++ err = vfsub_splice_to(h_file, ppos, pipe, len, flags,
++ au_test_dlgt(au_mntflags(sb)));
++ /* todo: necessasry? */
++ /* file->f_ra = h_file->f_ra; */
++ dentry->d_inode->i_atime = h_file->f_dentry->d_inode->i_atime;
++ di_read_unlock(dentry, AuLock_IR);
++ fi_read_unlock(file);
++
++ out:
++ si_read_unlock(sb);
++ AuTraceErr(err);
++ return err;
++}
++
++static ssize_t
++aufs_splice_write(struct pipe_inode_info *pipe, struct file *file, loff_t *ppos,
++ size_t len, unsigned int flags)
++{
++ ssize_t err;
++ struct dentry *dentry;
++ struct inode *inode, *h_inode;
++ struct super_block *sb;
++ struct file *h_file;
++ /* struct au_hin_ignore ign; */
++ struct vfsub_args vargs;
++ unsigned int mnt_flags;
++ struct au_pin pin;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s, len %zu, pos %lld\n", AuDLNPair(dentry), len, *ppos);
++
++ inode = dentry->d_inode;
++ vfsub_i_lock(inode);
++ sb = dentry->d_sb;
++ si_read_lock(sb, AuLock_FLUSH);
++ mnt_flags = au_mntflags(sb);
++ vfsub_args_init(&vargs, /*&ign*/NULL, au_test_dlgt(mnt_flags), 0);
++
++ err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1,
++ /*locked*/1);
++ if (unlikely(err))
++ goto out;
++ err = au_ready_to_write(file, -1, &pin);
++ di_downgrade_lock(dentry, AuLock_IR);
++ if (unlikely(err))
++ goto out_unlock;
++
++ /* support LSM and notify */
++ /* current vfs_splice_from() doesn't fire up the inotify event */
++ h_file = au_h_fptr(file, au_fbstart(file));
++ h_inode = h_file->f_dentry->d_inode;
++ if (1 || !au_opt_test(mnt_flags, UDBA_INOTIFY)) {
++ au_unpin(&pin);
++ err = vfsub_splice_from(pipe, h_file, ppos, len, flags, &vargs);
++ }
++#if 0 /* reserved for future use */
++ else {
++ struct dentry *parent = dget_parent(dentry);
++ vfsub_ign_hinode(&vargs, IN_MODIFY, au_pinned_hdir(&pin));
++ err = vfsub_splice_from(pipe, h_file, ppos, len, flags, &vargs);
++ au_unpin(&pin);
++ }
++#endif
++ au_cpup_attr_timesizes(inode);
++
++ out_unlock:
++ di_read_unlock(dentry, AuLock_IR);
++ fi_write_unlock(file);
++ out:
++ si_read_unlock(sb);
++ vfsub_i_unlock(inode);
++ AuTraceErr(err);
++ return err;
++}
++#endif /* CONFIG_AUFS_SPLICE_PATCH */
++
++/* ---------------------------------------------------------------------- */
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23)
++static int aufs_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
++{
++ int err;
++ struct dentry *dentry;
++ struct file *file, *h_file;
++ struct inode *inode;
++ static DECLARE_WAIT_QUEUE_HEAD(wq);
++ struct au_finfo *finfo;
++
++ AuTraceEnter();
++ AuDebugOn(!vma || !vma->vm_file);
++ /* todo: non-robr mode, user vm_file as it is? */
++ wait_event(wq, (file = au_robr_safe_file(vma)));
++ AuDebugOn(!au_test_aufs(file->f_dentry->d_sb));
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++ inode = dentry->d_inode;
++ AuDebugOn(!S_ISREG(inode->i_mode));
++
++ /* do not revalidate, no si lock */
++ finfo = au_fi(file);
++ h_file = finfo->fi_hfile[0 + finfo->fi_bstart].hf_file;
++ AuDebugOn(!h_file || !au_test_mmapped(file));
++ fi_write_lock(file);
++ vma->vm_file = h_file;
++ err = finfo->fi_h_vm_ops->fault(vma, vmf);
++ /* todo: necessary? */
++ /* file->f_ra = h_file->f_ra; */
++ au_robr_reset_file(vma, file);
++ fi_write_unlock(file);
++#if 0 /* def CONFIG_SMP */
++ /* wake_up_nr(&wq, online_cpu - 1); */
++ wake_up_all(&wq);
++#else
++ wake_up(&wq);
++#endif
++
++ if (!(err & VM_FAULT_ERROR)) {
++#if 0 /* debug */
++ struct page *page;
++ page = vmf->page;
++ AuDbg("%p, %d\n", page, page_mapcount(page));
++
++ page->mapping = file->f_mapping;
++ get_page(page);
++ file->f_mapping = h_file->f_mapping;
++ touch_atime(NULL, dentry);
++ inode->i_atime = h_file->f_dentry->d_inode->i_atime;
++#endif
++ }
++ AuTraceErr(err);
++ return err;
++}
++#else
++static struct page *aufs_nopage(struct vm_area_struct *vma, unsigned long addr,
++ int *type)
++{
++ struct page *page;
++ struct dentry *dentry;
++ struct file *file, *h_file;
++ struct inode *inode;
++ static DECLARE_WAIT_QUEUE_HEAD(wq);
++ struct au_finfo *finfo;
++
++ AuTraceEnter();
++ AuDebugOn(!vma || !vma->vm_file);
++ wait_event(wq, (file = au_robr_safe_file(vma)));
++ AuDebugOn(!au_test_aufs(file->f_dentry->d_sb));
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s, addr %lx\n", AuDLNPair(dentry), addr);
++ inode = dentry->d_inode;
++ AuDebugOn(!S_ISREG(inode->i_mode));
++
++ /* do not revalidate, no si lock */
++ finfo = au_fi(file);
++ h_file = finfo->fi_hfile[0 + finfo->fi_bstart].hf_file;
++ AuDebugOn(!h_file || !au_test_mmapped(file));
++ fi_write_lock(file);
++ vma->vm_file = h_file;
++ page = finfo->fi_h_vm_ops->nopage(vma, addr, type);
++ //file->f_ra = h_file->f_ra; //??
++ au_robr_reset_file(vma, file);
++ fi_write_unlock(file);
++#if 0 //def CONFIG_SMP
++ //wake_up_nr(&wq, online_cpu - 1);
++ wake_up_all(&wq);
++#else
++ wake_up(&wq);
++#endif
++ if (page && !IS_ERR(page)) {
++ //AuDbg("%p, %d\n", page, page_mapcount(page));
++ //page->mapping = file->f_mapping;
++ //get_page(page);
++ //file->f_mapping = h_file->f_mapping;
++ //touch_atime(NULL, dentry);
++ //inode->i_atime = h_file->f_dentry->d_inode->i_atime;
++ }
++ AuTraceErrPtr(page);
++ return page;
++}
++
++static int aufs_populate(struct vm_area_struct *vma, unsigned long addr,
++ unsigned long len, pgprot_t prot, unsigned long pgoff,
++ int nonblock)
++{
++ AuUnsupport();
++ return au_fi(vma->vm_file)->fi_h_vm_ops->populate
++ (vma, addr, len, prot, pgoff, nonblock);
++}
++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23) */
++
++static struct vm_operations_struct aufs_vm_ops = {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23)
++ .fault = aufs_fault,
++#else
++ .nopage = aufs_nopage,
++ .populate = aufs_populate,
++#endif
++#if 0 // rfu
++ unsigned long (*nopfn)(struct vm_area_struct *area,
++ unsigned long address);
++ page_mkwrite(struct vm_area_struct *vma, struct page *page)
++#endif
++};
++
++/* ---------------------------------------------------------------------- */
++
++static struct vm_operations_struct *au_vm_ops(struct file *h_file,
++ struct vm_area_struct *vma)
++{
++ struct vm_operations_struct *vm_ops;
++ int err;
++
++ AuTraceEnter();
++
++ if (!au_test_nfs(h_file->f_vfsmnt->mnt_sb))
++ err = h_file->f_op->mmap(h_file, vma);
++ else {
++ lockdep_off();
++ err = h_file->f_op->mmap(h_file, vma);
++ lockdep_on();
++ }
++ vm_ops = ERR_PTR(err);
++ if (unlikely(err))
++ goto out;
++ vm_ops = vma->vm_ops;
++ err = do_munmap(current->mm, vma->vm_start,
++ vma->vm_end - vma->vm_start);
++ if (unlikely(err)) {
++ AuIOErr("failed internal unmapping %.*s, %d\n",
++ AuDLNPair(h_file->f_dentry), err);
++ vm_ops = ERR_PTR(-EIO);
++ }
++
++ out:
++ AuTraceErrPtr(vm_ops);
++ return vm_ops;
++}
++
++static int aufs_mmap(struct file *file, struct vm_area_struct *vma)
++{
++ int err;
++ unsigned char wlock, mmapped;
++ struct dentry *dentry;
++ struct super_block *sb;
++ struct file *h_file;
++ struct vm_operations_struct *vm_ops;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s, %lx, len %lu\n",
++ AuDLNPair(dentry), vma->vm_start,
++ vma->vm_end - vma->vm_start);
++ AuDebugOn(!S_ISREG(dentry->d_inode->i_mode));
++ AuDebugOn(down_write_trylock(&vma->vm_mm->mmap_sem));
++
++ mmapped = au_test_mmapped(file); /* can be harmless race condition */
++ wlock = !!(file->f_mode & FMODE_WRITE);
++ sb = dentry->d_sb;
++ si_read_lock(sb, AuLock_FLUSH);
++ err = au_reval_and_lock_fdi(file, au_reopen_nondir, wlock | !mmapped,
++ /*locked*/0);
++ if (unlikely(err))
++ goto out;
++
++ if (wlock) {
++ struct au_pin pin;
++
++ err = au_ready_to_write(file, -1, &pin);
++ di_downgrade_lock(dentry, AuLock_IR);
++ if (unlikely(err))
++ goto out_unlock;
++ au_unpin(&pin);
++ } else if (!mmapped)
++ di_downgrade_lock(dentry, AuLock_IR);
++
++ h_file = au_h_fptr(file, au_fbstart(file));
++ if (au_test_fuse(h_file->f_dentry->d_sb)) {
++ /*
++ * by this assignment, f_mapping will differs from aufs inode
++ * i_mapping.
++ * if someone else mixes the use of f_dentry->d_inode and
++ * f_mapping->host, then a problem may arise.
++ */
++ file->f_mapping = h_file->f_mapping;
++ }
++
++ if (0 && h_file->f_op->mmap == generic_file_mmap) {
++ err = generic_file_mmap(file, vma); /* instead of h_file */
++ if (unlikely(err))
++ goto out_unlock;
++ au_fi(file)->fi_h_vm_ops = vma->vm_ops;
++ } else {
++ vm_ops = NULL;
++ if (!mmapped) {
++ vm_ops = au_vm_ops(h_file, vma);
++ err = PTR_ERR(vm_ops);
++ if (IS_ERR(vm_ops))
++ goto out_unlock;
++ }
++
++ err = generic_file_mmap(file, vma);
++ if (unlikely(err))
++ goto out_unlock;
++ vma->vm_ops = &aufs_vm_ops;
++ /* test again */
++ if (!au_test_mmapped(file)) {
++ FiMustWriteLock(file);
++ au_fi(file)->fi_h_vm_ops = vm_ops;
++ }
++ }
++
++ file_accessed(h_file);
++ au_update_fuse_h_inode(h_file->f_vfsmnt, h_file->f_dentry); /*ignore*/
++ dentry->d_inode->i_atime = h_file->f_dentry->d_inode->i_atime;
++
++ out_unlock:
++ di_read_unlock(dentry, AuLock_IR);
++ if (!wlock && mmapped)
++ fi_read_unlock(file);
++ else
++ fi_write_unlock(file);
++ out:
++ si_read_unlock(sb);
++ AuTraceErr(err);
++ return err;
++}
++
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 22)
++// todo: try do_sendfile() in fs/read_write.c
++static ssize_t aufs_sendfile(struct file *file, loff_t *ppos,
++ size_t count, read_actor_t actor, void *target)
++{
++ ssize_t err;
++ struct file *h_file;
++ struct dentry *dentry;
++ struct super_block *sb;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s, pos %Ld, cnt %lu\n",
++ AuDLNPair(dentry), *ppos, (unsigned long)count);
++
++ sb = dentry->d_sb;
++ si_read_lock(sb, AuLock_FLUSH);
++ err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/0,
++ /*locked*/0);
++ if (unlikely(err))
++ goto out;
++
++ err = -EINVAL;
++ h_file = au_h_fptr(file, au_fbstart(file));
++ if (h_file->f_op && h_file->f_op->sendfile) {
++ if (/* unlikely */(au_test_loopback())) {
++ file->f_mapping = h_file->f_mapping;
++ smp_mb(); /* unnecessary? */
++ }
++ if (!au_test_nfs(h_file->f_vfsmnt->mnt_sb))
++ err = h_file->f_op->sendfile(h_file, ppos, count, actor,
++ target);
++ else {
++ lockdep_off();
++ err = h_file->f_op->sendfile(h_file, ppos, count, actor,
++ target);
++ lockdep_on();
++ }
++ if (!err)
++ au_update_fuse_h_inode(h_file->f_vfsmnt,
++ h_file->f_dentry);
++ /*ignore*/
++ dentry->d_inode->i_atime = h_file->f_dentry->d_inode->i_atime;
++ }
++ di_read_unlock(dentry, AuLock_IR);
++ fi_read_unlock(file);
++
++ out:
++ si_read_unlock(sb);
++ AuTraceErr(err);
++ return err;
++}
++#endif /* LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 22) */
++
++/* ---------------------------------------------------------------------- */
++
++/* linux-2.6.22 and earlier */
++#ifndef DEFAULT_POLLMASK
++/* copied from linux/fs/select.h, must match */
++#define DEFAULT_POLLMASK (POLLIN | POLLOUT | POLLRDNORM | POLLWRNORM)
++#endif
++
++static unsigned int aufs_poll(struct file *file, poll_table *wait)
++{
++ unsigned int mask;
++ struct file *h_file;
++ int err;
++ struct dentry *dentry;
++ struct super_block *sb;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s, wait %p\n", AuDLNPair(dentry), wait);
++ AuDebugOn(S_ISDIR(dentry->d_inode->i_mode));
++
++ /* We should pretend an error happened. */
++ mask = POLLERR /* | POLLIN | POLLOUT */;
++ sb = dentry->d_sb;
++ si_read_lock(sb, AuLock_FLUSH);
++ err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/0,
++ /*locked*/0);
++ if (unlikely(err))
++ goto out;
++
++ /* it is not an error of hidden_file has no operation */
++ mask = DEFAULT_POLLMASK;
++ h_file = au_h_fptr(file, au_fbstart(file));
++ if (h_file->f_op && h_file->f_op->poll)
++ mask = h_file->f_op->poll(h_file, wait);
++ di_read_unlock(dentry, AuLock_IR);
++ fi_read_unlock(file);
++
++ out:
++ si_read_unlock(sb);
++ AuTraceErr((int)mask);
++ return mask;
++}
++
++static int aufs_fsync_nondir(struct file *file, struct dentry *dentry,
++ int datasync)
++{
++ int err, my_lock;
++ struct inode *inode;
++ struct file *h_file;
++ struct super_block *sb;
++ struct au_pin pin;
++
++ LKTRTrace("%.*s, %d\n", AuDLNPair(dentry), datasync);
++ inode = dentry->d_inode;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 17)
++ IMustLock(file->f_mapping->host);
++ if (inode != file->f_mapping->host) {
++ vfsub_i_unlock(file->f_mapping->host);
++ vfsub_i_lock(inode);
++ }
++ IMustLock(inode);
++ my_lock = 0;
++#else
++ /* before 2.6.17,
++ * msync(2) calls me without locking i_sem/i_mutex, but fsync(2).
++ */
++ my_lock = vfsub_i_trylock(inode);
++#endif
++
++ sb = dentry->d_sb;
++ si_read_lock(sb, AuLock_FLUSH);
++ err = 0; /* -EBADF; */ /* posix? */
++ if (unlikely(!(file->f_mode & FMODE_WRITE)))
++ goto out;
++ err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1,
++ /*locked*/1);
++ if (unlikely(err))
++ goto out;
++ err = au_ready_to_write(file, -1, &pin);
++ di_downgrade_lock(dentry, AuLock_IR);
++ if (unlikely(err))
++ goto out_unlock;
++ au_unpin(&pin);
++
++ err = -EINVAL;
++ h_file = au_h_fptr(file, au_fbstart(file));
++ if (h_file->f_op && h_file->f_op->fsync) {
++ vfsub_i_lock_nested(h_file->f_dentry->d_inode, AuLsc_I_CHILD);
++ err = h_file->f_op->fsync(h_file, h_file->f_dentry, datasync);
++ if (!err)
++ au_update_fuse_h_inode(h_file->f_vfsmnt,
++ h_file->f_dentry);
++ au_cpup_attr_timesizes(inode);
++ vfsub_i_unlock(h_file->f_dentry->d_inode);
++ }
++
++ out_unlock:
++ di_read_unlock(dentry, AuLock_IR);
++ fi_write_unlock(file);
++ out:
++ si_read_unlock(sb);
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 17)
++ if (inode != file->f_mapping->host) {
++ vfsub_i_unlock(inode);
++ vfsub_i_lock(file->f_mapping->host);
++ }
++#else
++ if (my_lock)
++ vfsub_i_unlock(inode);
++#endif
++ AuTraceErr(err);
++ return err;
++}
++
++static int aufs_fasync(int fd, struct file *file, int flag)
++{
++ int err;
++ struct file *h_file;
++ struct dentry *dentry;
++ struct super_block *sb;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s, %d\n", AuDLNPair(dentry), flag);
++
++ sb = dentry->d_sb;
++ si_read_lock(sb, AuLock_FLUSH);
++ err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/0,
++ /*locked*/0);
++ if (unlikely(err))
++ goto out;
++
++ h_file = au_h_fptr(file, au_fbstart(file));
++ if (h_file->f_op && h_file->f_op->fasync)
++ err = h_file->f_op->fasync(fd, h_file, flag);
++ di_read_unlock(dentry, AuLock_IR);
++ fi_read_unlock(file);
++
++ out:
++ si_read_unlock(sb);
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct file_operations aufs_file_fop = {
++ .read = aufs_read,
++ .write = aufs_write,
++ .poll = aufs_poll,
++ .mmap = aufs_mmap,
++ .open = aufs_open_nondir,
++ .flush = aufs_flush,
++ .release = aufs_release_nondir,
++ .fsync = aufs_fsync_nondir,
++ .fasync = aufs_fasync,
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 22)
++ .sendfile = aufs_sendfile,
++#endif
++#ifdef CONFIG_AUFS_SPLICE_PATCH
++ .splice_write = aufs_splice_write,
++ .splice_read = aufs_splice_read,
++#endif
++};
+diff --git a/fs/aufs/file.c b/fs/aufs/file.c
+new file mode 100644
+index 0000000..1ad2fd8
+--- /dev/null
++++ b/fs/aufs/file.c
+@@ -0,0 +1,806 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * handling file/dir, and address_space operation
++ *
++ * $Id: file.c,v 1.83 2009/01/26 06:23:56 sfjro Exp $
++ */
++
++//#include <linux/fsnotify.h>
++#include <linux/pagemap.h>
++//#include <linux/poll.h>
++//#include <linux/security.h>
++#include "aufs.h"
++
++/*
++ * a dirty trick for handling FMODE_EXEC and deny_write_access().
++ * because FMODE_EXEC flag is not passed to f_op->open(),
++ * set it to file->private_data temporary.
++ */
++#if !defined(CONFIG_AUFS_MODULE) || defined(CONFIG_AUFS_DENY_WRITE_ACCESS_PATCH)
++int au_store_fmode_exec(struct nameidata *nd, struct inode *inode)
++{
++ int err;
++ union {
++ void *p;
++ unsigned long ul;
++ } u;
++
++ err = 0;
++ if (nd
++ && (nd->flags & LOOKUP_OPEN)
++ && nd->intent.open.file
++ && (nd->intent.open.flags & FMODE_EXEC)
++ && inode
++ && S_ISREG(inode->i_mode)) {
++ u.ul = nd->intent.open.flags;
++ nd->intent.open.file->private_data = u.p;
++ /* smp_mb(); */
++ err = 1;
++ }
++
++ return err;
++}
++#endif
++
++/* drop flags for writing */
++unsigned int au_file_roflags(unsigned int flags)
++{
++ flags &= ~(O_WRONLY | O_RDWR | O_APPEND | O_CREAT | O_TRUNC);
++ flags |= O_RDONLY | O_NOATIME;
++ return flags;
++}
++
++/* common functions to regular file and dir */
++struct file *au_h_open(struct dentry *dentry, aufs_bindex_t bindex, int flags,
++ struct file *file)
++{
++ struct file *h_file;
++ struct dentry *h_dentry;
++ struct inode *h_inode;
++ struct super_block *sb;
++ struct au_branch *br;
++ int err;
++
++ LKTRTrace("%.*s, b%d, flags 0%o, f %d\n",
++ AuDLNPair(dentry), bindex, flags, !!file);
++ h_dentry = au_h_dptr(dentry, bindex);
++ AuDebugOn(!h_dentry);
++ h_inode = h_dentry->d_inode;
++
++ /* a race condition can happen between open and unlink/rmdir */
++ h_file = ERR_PTR(-ENOENT);
++ if (unlikely((!d_unhashed(dentry) && d_unhashed(h_dentry))
++ || !h_inode))
++ goto out;
++
++ sb = dentry->d_sb;
++ br = au_sbr(sb, bindex);
++ au_br_get(br);
++ /* drop flags for writing */
++ if (au_test_ro(sb, bindex, dentry->d_inode))
++ flags = au_file_roflags(flags);
++ flags &= ~O_CREAT;
++
++ h_file = NULL;
++ if (file && au_test_nfs(h_dentry->d_sb))
++ h_file = au_h_intent(dentry, bindex, file);
++ if (!h_file)
++ h_file = dentry_open(dget(h_dentry), mntget(br->br_mnt), flags);
++
++ /*
++ * a dirty trick for handling FMODE_EXEC and deny_write_access().
++ */
++ if (file && (file->f_mode & FMODE_EXEC)) {
++ h_file->f_mode |= FMODE_EXEC;
++ smp_mb(); /* flush f_mode */
++ err = au_deny_write_access(h_file);
++ if (unlikely(err)) {
++ fput(h_file);
++ h_file = ERR_PTR(err);
++ }
++ }
++ if (IS_ERR(h_file))
++ au_br_put(br);
++
++out:
++ AuTraceErrPtr(h_file);
++ return h_file;
++}
++
++static int do_coo(struct dentry *dentry, aufs_bindex_t bstart)
++{
++ int err;
++ aufs_bindex_t bcpup;
++ unsigned char pin_flags;
++ struct au_pin pin;
++ struct dentry *parent;
++ struct inode *h_inode;
++ struct super_block *sb;
++
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++ AuDebugOn(IS_ROOT(dentry));
++ DiMustWriteLock(dentry);
++
++ parent = dget_parent(dentry);
++ di_write_lock_parent(parent);
++ sb = dentry->d_sb;
++ err = AuWbrCopyup(au_sbi(sb), dentry);
++ bcpup = err;
++ if (err < 0) {
++ err = 0; /* stop copyup, it is not an error */
++ goto out_dgrade;
++ }
++ err = 0;
++
++ if (!au_h_dptr(parent, bcpup)) {
++ err = au_cpup_dirs(dentry, bcpup);
++ if (unlikely(err))
++ goto out_dgrade;
++ }
++
++ di_downgrade_lock(parent, AuLock_IR);
++ pin_flags = AuPin_DI_LOCKED | AuPin_MNT_WRITE;
++ if (au_opt_test(au_mntflags(sb), UDBA_INOTIFY))
++ au_fset_pin(pin_flags, DO_GPARENT);
++ err = au_pin(&pin, dentry, bcpup, pin_flags);
++ if (unlikely(err))
++ goto out;
++ h_inode = au_h_dptr(dentry, bstart)->d_inode;
++ vfsub_i_lock_nested(h_inode, AuLsc_I_CHILD);
++ AuDebugOn(au_h_dptr(dentry, bcpup));
++ err = au_sio_cpup_simple(dentry, bcpup, -1, AuCpup_DTIME);
++ AuTraceErr(err);
++ vfsub_i_unlock(h_inode);
++ au_unpin(&pin);
++ goto out;
++
++ out_dgrade:
++ di_downgrade_lock(parent, AuLock_IR);
++ out:
++ di_read_unlock(parent, AuLock_IR);
++ dput(parent);
++ AuTraceErr(err);
++ return err;
++}
++
++int au_do_open(struct inode *inode, struct file *file,
++ int (*open)(struct file *file, int flags))
++{
++ int err;
++ struct dentry *dentry;
++ struct super_block *sb;
++ aufs_bindex_t bstart;
++ unsigned char coo;
++
++ dentry = file->f_dentry;
++ LKTRTrace("i%lu, %.*s\n", inode->i_ino, AuDLNPair(dentry));
++
++ sb = dentry->d_sb;
++ si_read_lock(sb, AuLock_FLUSH);
++ coo = 0;
++ if (!(sb->s_flags & MS_RDONLY))
++ switch (au_mntflags(sb) & AuOptMask_COO) {
++ case AuOpt_COO_LEAF:
++ coo = !S_ISDIR(inode->i_mode);
++ break;
++ case AuOpt_COO_ALL:
++ coo = 1;
++ break;
++ }
++ err = au_finfo_init(file);
++ if (unlikely(err))
++ goto out;
++
++ if (!coo)
++ di_read_lock_child(dentry, AuLock_IR);
++ else {
++ di_write_lock_child(dentry);
++ bstart = au_dbstart(dentry);
++ if (au_test_ro(sb, bstart, dentry->d_inode)) {
++ err = do_coo(dentry, bstart);
++ if (err) {
++ di_write_unlock(dentry);
++ goto out_finfo;
++ }
++ }
++ di_downgrade_lock(dentry, AuLock_IR);
++ }
++
++ err = open(file, file->f_flags);
++ di_read_unlock(dentry, AuLock_IR);
++
++ out_finfo:
++ fi_write_unlock(file);
++ if (unlikely(err))
++ au_finfo_fin(file);
++ out:
++ si_read_unlock(sb);
++ AuTraceErr(err);
++ return err;
++}
++
++int au_reopen_nondir(struct file *file)
++{
++ int err;
++ aufs_bindex_t bstart, bindex, bend;
++ struct dentry *dentry;
++ struct file *h_file, *h_file_tmp;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++ bstart = au_dbstart(dentry);
++ //bstart = au_ibstart(inode);
++ AuDebugOn(S_ISDIR(dentry->d_inode->i_mode)
++ || !au_h_dptr(dentry, bstart)->d_inode);
++
++ h_file_tmp = NULL;
++ if (au_fbstart(file) == bstart) {
++ h_file = au_h_fptr(file, bstart);
++ if (file->f_mode == h_file->f_mode)
++ return 0; /* success */
++ h_file_tmp = h_file;
++ get_file(h_file_tmp);
++ au_set_h_fptr(file, bstart, NULL);
++ }
++ AuDebugOn(au_fbstart(file) < bstart
++ || au_fi(file)->fi_hfile[0 + bstart].hf_file);
++
++ h_file = au_h_open(dentry, bstart, file->f_flags & ~O_TRUNC, file);
++ err = PTR_ERR(h_file);
++ if (IS_ERR(h_file))
++ goto out; /* todo: close all? */
++ err = 0;
++ /* cpup_file_flags(h_file, file); */
++ au_set_fbstart(file, bstart);
++ au_set_h_fptr(file, bstart, h_file);
++ au_update_figen(file);
++ /* todo: necessary? */
++ /* file->f_ra = h_file->f_ra; */
++
++ /* close lower files */
++ bend = au_fbend(file);
++ for (bindex = bstart + 1; bindex <= bend; bindex++)
++ au_set_h_fptr(file, bindex, NULL);
++ au_set_fbend(file, bstart);
++
++ out:
++ if (h_file_tmp)
++ fput(h_file_tmp);
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++static int au_ready_to_write_wh(struct file *file, loff_t len,
++ aufs_bindex_t bcpup)
++{
++ int err;
++ aufs_bindex_t old_bstart;
++ struct inode *inode;
++ struct dentry *dentry, *hi_wh, *old_h_dentry;
++ struct au_dinfo *dinfo;
++ struct super_block *sb;
++
++ AuTraceEnter();
++
++ dentry = file->f_dentry;
++ inode = dentry->d_inode;
++ hi_wh = au_hi_wh(inode, bcpup);
++ if (!hi_wh)
++ err = au_sio_cpup_wh(dentry, bcpup, len, file);
++ else {
++ /* already copied-up after unlink */
++ dinfo = au_di(dentry);
++ old_bstart = dinfo->di_bstart;
++ dinfo->di_bstart = bcpup;
++ old_h_dentry = dinfo->di_hdentry[0 + bcpup].hd_dentry;
++ dinfo->di_hdentry[0 + bcpup].hd_dentry = hi_wh;
++ err = au_reopen_nondir(file);
++ dinfo->di_hdentry[0 + bcpup].hd_dentry = old_h_dentry;
++ dinfo->di_bstart = old_bstart;
++ }
++
++ sb = dentry->d_sb;
++ if (!err && inode->i_nlink > 1 && au_opt_test(au_mntflags(sb), PLINK))
++ au_plink_append(sb, inode, au_h_dptr(dentry, bcpup), bcpup);
++
++ AuTraceErr(err);
++ return err;
++}
++
++/*
++ * prepare the @file for writing.
++ */
++int au_ready_to_write(struct file *file, loff_t len, struct au_pin *pin)
++{
++ int err;
++ unsigned char pin_flags;
++ aufs_bindex_t bstart, bcpup;
++ struct dentry *dentry, *parent, *h_dentry;
++ struct inode *h_inode, *inode;
++ struct super_block *sb;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s, len %lld\n", AuDLNPair(dentry), len);
++ FiMustWriteLock(file);
++
++ sb = dentry->d_sb;
++ bstart = au_fbstart(file);
++ AuDebugOn(au_fbr(file, bstart) != au_sbr(sb, bstart));
++
++ inode = dentry->d_inode;
++ AuDebugOn(S_ISDIR(inode->i_mode));
++ LKTRTrace("rdonly %d, bstart %d\n",
++ au_test_ro(sb, bstart, inode), bstart);
++
++ err = au_test_ro(sb, bstart, inode);
++ if (!err && (au_h_fptr(file, bstart)->f_mode & FMODE_WRITE)) {
++ err = au_pin(pin, dentry, bstart, /*flags*/0);
++ goto out;
++ }
++
++ /* need to cpup */
++ parent = dget_parent(dentry);
++ di_write_lock_parent(parent);
++ err = AuWbrCopyup(au_sbi(sb), dentry);
++ bcpup = err;
++ if (unlikely(err < 0))
++ goto out_dgrade;
++ err = 0;
++
++ if (!au_h_dptr(parent, bcpup)) {
++ err = au_cpup_dirs(dentry, bcpup);
++ if (unlikely(err))
++ goto out_dgrade;
++ }
++
++ pin_flags = AuPin_DI_LOCKED | AuPin_MNT_WRITE;
++ if (au_opt_test(au_mntflags(sb), UDBA_INOTIFY))
++ au_fset_pin(pin_flags, DO_GPARENT);
++ err = au_pin(pin, dentry, bcpup, pin_flags);
++ if (unlikely(err))
++ goto out_dgrade;
++
++ AuDebugOn(au_fbstart(file) != bstart);
++ h_dentry = au_h_fptr(file, bstart)->f_dentry;
++ h_inode = h_dentry->d_inode;
++ vfsub_i_lock_nested(h_inode, AuLsc_I_CHILD);
++ if (d_unhashed(dentry) /* || d_unhashed(h_dentry) */
++ /* || !h_inode->i_nlink */) {
++ err = au_ready_to_write_wh(file, len, bcpup);
++ di_downgrade_lock(parent, AuLock_IR);
++ } else {
++ di_downgrade_lock(parent, AuLock_IR);
++ if (!au_h_dptr(dentry, bcpup))
++ err = au_sio_cpup_simple(dentry, bcpup, len,
++ AuCpup_DTIME);
++ AuTraceErr(err);
++ if (!err)
++ err = au_reopen_nondir(file);
++ AuTraceErr(err);
++ }
++ vfsub_i_unlock(h_inode);
++
++ if (!err) {
++ au_unpin_gp(pin);
++ au_pin_set_parent_lflag(pin, /*lflag*/0);
++ goto out_dput; /* success */
++ }
++ au_unpin(pin);
++ goto out_unlock;
++
++ out_dgrade:
++ di_downgrade_lock(parent, AuLock_IR);
++ out_unlock:
++ di_read_unlock(parent, AuLock_IR);
++ out_dput:
++ dput(parent);
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++static int au_file_refresh_by_inode(struct file *file, int *need_reopen)
++{
++ int err;
++ unsigned int mnt_flags;
++ unsigned char pin_flags;
++ aufs_bindex_t bstart, new_bstart, old_bstart;
++ struct au_pin pin;
++ struct au_finfo *finfo;
++ struct dentry *dentry, *parent, *old_h_dentry, *hi_wh;
++ struct inode *inode, *dir;
++ struct super_block *sb;
++ struct au_dinfo *dinfo;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++ FiMustWriteLock(file);
++
++ err = 0;
++ finfo = au_fi(file);
++ inode = dentry->d_inode;
++ sb = dentry->d_sb;
++ mnt_flags = au_mntflags(sb);
++ pin_flags = AuPin_DI_LOCKED | AuPin_MNT_WRITE;
++ if (au_opt_test(mnt_flags, UDBA_INOTIFY))
++ au_fset_pin(pin_flags, DO_GPARENT);
++ again:
++ bstart = au_ibstart(inode);
++ if (bstart == finfo->fi_bstart)
++ goto out;
++
++ new_bstart = bstart;
++ parent = dget_parent(dentry);
++ dir = parent->d_inode;
++ if (au_test_ro(sb, bstart, inode)) {
++ di_read_lock_parent(parent, !AuLock_IR);
++ err = AuWbrCopyup(au_sbi(sb), dentry);
++ new_bstart = err;
++ di_read_unlock(parent, !AuLock_IR);
++ if (unlikely(err < 0))
++ goto out_dput;
++ err = 0;
++ }
++ /* someone else might change our inode while we were sleeping */
++ /* todo: test more? */
++ if (bstart != au_ibstart(inode)) {
++ err = 0;
++ dput(parent);
++ goto again;
++ }
++ di_read_lock_parent(parent, AuLock_IR);
++ bstart = new_bstart;
++
++ hi_wh = au_hi_wh(inode, bstart);
++ if (au_opt_test(mnt_flags, PLINK)
++ && au_plink_test(sb, inode)
++ && !d_unhashed(dentry)) {
++ err = au_test_and_cpup_dirs(dentry, bstart);
++ if (unlikely(err))
++ goto out_unlock;
++
++ /* always superio. */
++#if 1
++ err = au_pin(&pin, dentry, bstart, pin_flags);
++ if (!err)
++ err = au_sio_cpup_simple(dentry, bstart, -1,
++ AuCpup_DTIME);
++ au_unpin(&pin);
++#else /* reserved for future use */
++ if (!au_test_wkq(current)) {
++ int wkq_err;
++ struct cpup_pseudo_link_args args = {
++ .errp = &err,
++ .dentry = dentry,
++ .bdst = bstart,
++ .do_lock = 1
++ };
++ wkq_err = au_wkq_wait(call_cpup_pseudo_link, &args);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ } else
++ err = cpup_pseudo_link(dentry, bstart, /*do_lock*/1);
++#endif
++ } else if (hi_wh) {
++ /* already copied-up after unlink */
++ dinfo = au_di(dentry);
++ old_bstart = dinfo->di_bstart;
++ dinfo->di_bstart = bstart;
++ old_h_dentry = dinfo->di_hdentry[0 + bstart].hd_dentry;
++ dinfo->di_hdentry[0 + bstart].hd_dentry = hi_wh;
++ err = au_reopen_nondir(file);
++ dinfo->di_hdentry[0 + bstart].hd_dentry = old_h_dentry;
++ dinfo->di_bstart = old_bstart;
++ *need_reopen = 0;
++ }
++
++ out_unlock:
++ di_read_unlock(parent, AuLock_IR);
++ out_dput:
++ dput(parent);
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/*
++ * after branch manipulating, refresh the file.
++ */
++static int refresh_file(struct file *file, int (*reopen)(struct file *file))
++{
++ int err, new_sz, need_reopen;
++ struct dentry *dentry;
++ aufs_bindex_t bend, bindex, brid;
++ struct au_hfile *p;
++ struct au_finfo *finfo;
++ struct super_block *sb;
++ struct inode *inode;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++ FiMustWriteLock(file);
++ DiMustAnyLock(dentry);
++ inode = dentry->d_inode;
++ IiMustAnyLock(inode);
++
++ err = -ENOMEM;
++ sb = dentry->d_sb;
++ finfo = au_fi(file);
++ new_sz = sizeof(*finfo->fi_hfile) * (au_sbend(sb) + 1);
++ p = au_kzrealloc(finfo->fi_hfile, sizeof(*p) * (finfo->fi_bend + 1),
++ new_sz, GFP_NOFS);
++ if (unlikely(!p))
++ goto out;
++ finfo->fi_hfile = p;
++
++ p += finfo->fi_bstart;
++ brid = p->hf_br->br_id;
++ bend = finfo->fi_bend;
++ for (bindex = finfo->fi_bstart; bindex <= bend; bindex++, p++) {
++ struct au_hfile tmp, *q;
++ aufs_bindex_t new_bindex;
++
++ if (!p->hf_file)
++ continue;
++ new_bindex = au_find_bindex(sb, p->hf_br);
++ if (new_bindex == bindex)
++ continue;
++ /* todo: test more? */
++ if (new_bindex < 0) {
++ au_set_h_fptr(file, bindex, NULL);
++ continue;
++ }
++
++ /* swap two hidden inode, and loop again */
++ q = finfo->fi_hfile + new_bindex;
++ tmp = *q;
++ *q = *p;
++ *p = tmp;
++ if (tmp.hf_file) {
++ bindex--;
++ p--;
++ }
++ }
++ {
++ aufs_bindex_t s = finfo->fi_bstart, e = finfo->fi_bend;
++ finfo->fi_bstart = 0;
++ finfo->fi_bend = au_sbend(sb);
++ finfo->fi_bstart = s;
++ finfo->fi_bend = e;
++ }
++
++ p = finfo->fi_hfile;
++ if (!au_test_mmapped(file) && !d_unhashed(dentry)) {
++ bend = au_sbend(sb);
++ for (finfo->fi_bstart = 0; finfo->fi_bstart <= bend;
++ finfo->fi_bstart++, p++)
++ if (p->hf_file) {
++ if (p->hf_file->f_dentry
++ && p->hf_file->f_dentry->d_inode)
++ break;
++ else
++ au_hfput(p);
++ }
++ } else {
++ bend = au_br_index(sb, brid);
++ for (finfo->fi_bstart = 0; finfo->fi_bstart < bend;
++ finfo->fi_bstart++, p++)
++ if (p->hf_file)
++ au_hfput(p);
++ bend = au_sbend(sb);
++ }
++
++ p = finfo->fi_hfile + bend;
++ for (finfo->fi_bend = bend; finfo->fi_bend >= finfo->fi_bstart;
++ finfo->fi_bend--, p--)
++ if (p->hf_file) {
++ if (p->hf_file->f_dentry
++ && p->hf_file->f_dentry->d_inode)
++ break;
++ else
++ au_hfput(p);
++ }
++ AuDebugOn(finfo->fi_bend < finfo->fi_bstart);
++
++ err = 0;
++ need_reopen = 1;
++ if (!au_test_mmapped(file))
++ err = au_file_refresh_by_inode(file, &need_reopen);
++ if (!err && need_reopen && !d_unhashed(dentry))
++ err = reopen(file);
++ if (!err) {
++ au_update_figen(file);
++ return 0; /* success */
++ }
++
++ /* error, close all hidden files */
++ bend = au_fbend(file);
++ for (bindex = au_fbstart(file); bindex <= bend; bindex++)
++ au_set_h_fptr(file, bindex, NULL);
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/* common function to regular file and dir */
++int au_reval_and_lock_fdi(struct file *file, int (*reopen)(struct file *file),
++ int wlock, int locked)
++{
++ int err;
++ struct dentry *dentry;
++ struct super_block *sb;
++ aufs_bindex_t bstart;
++ unsigned char pseudo_link;
++ au_gen_t sgen, fgen;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s, w %d, l %d\n", AuDLNPair(dentry), wlock, locked);
++ sb = dentry->d_sb;
++ SiMustAnyLock(sb);
++
++ err = 0;
++ sgen = au_sigen(sb);
++ fi_write_lock(file);
++ fgen = au_figen(file);
++ di_write_lock_child(dentry);
++ bstart = au_dbstart(dentry);
++ pseudo_link = (bstart != au_ibstart(dentry->d_inode));
++ if (sgen == fgen && !pseudo_link && au_fbstart(file) == bstart) {
++ if (!wlock) {
++ di_downgrade_lock(dentry, AuLock_IR);
++ fi_downgrade_lock(file);
++ }
++ goto out; /* success */
++ }
++
++ LKTRTrace("sgen %d, fgen %d\n", sgen, fgen);
++ if (sgen != au_digen(dentry)
++ || sgen != au_iigen(dentry->d_inode)) {
++ /*
++ * d_path() and path_lookup() is a simple and good approach
++ * to revalidate. but si_rwsem in DEBUG_RWSEM will cause a
++ * deadlock. removed the code.
++ */
++ err = au_reval_dpath(dentry, sgen);
++ if (unlikely(err < 0))
++ goto out;
++ AuDebugOn(au_digen(dentry) != sgen
++ || au_iigen(dentry->d_inode) != sgen);
++ }
++
++ err = refresh_file(file, reopen
++ /* , au_opt_test(au_mnt_flags(sb), REFROF) */);
++ if (!err) {
++ if (!wlock) {
++ di_downgrade_lock(dentry, AuLock_IR);
++ fi_downgrade_lock(file);
++ }
++ } else {
++ di_write_unlock(dentry);
++ fi_write_unlock(file);
++ }
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/* cf. aufs_nopage() */
++/* for madvise(2) */
++static int aufs_readpage(struct file *file, struct page *page)
++{
++ AuTraceEnter();
++ unlock_page(page);
++ return 0;
++}
++
++/* they will never be called. */
++#ifdef CONFIG_AUFS_DEBUG
++static int aufs_prepare_write(struct file *file, struct page *page,
++ unsigned from, unsigned to)
++{ AuUnsupport(); return 0; }
++static int aufs_commit_write(struct file *file, struct page *page,
++ unsigned from, unsigned to)
++{ AuUnsupport(); return 0; }
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 24)
++static int aufs_write_begin(struct file *file, struct address_space *mapping,
++ loff_t pos, unsigned len, unsigned flags,
++ struct page **pagep, void **fsdata)
++{ AuUnsupport(); return 0; }
++static int aufs_write_end(struct file *file, struct address_space *mapping,
++ loff_t pos, unsigned len, unsigned copied,
++ struct page *page, void *fsdata)
++{ AuUnsupport(); return 0; }
++#endif
++static int aufs_writepage(struct page *page, struct writeback_control *wbc)
++{ AuUnsupport(); return 0; }
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 17)
++static void aufs_sync_page(struct page *page)
++{ AuUnsupport(); }
++#else
++static int aufs_sync_page(struct page *page)
++{ AuUnsupport(); return 0; }
++#endif
++
++#if 0 // comment
++static int aufs_writepages(struct address_space *mapping,
++ struct writeback_control *wbc)
++{ AuUnsupport(); return 0; }
++static int aufs_readpages(struct file *filp, struct address_space *mapping,
++ struct list_head *pages, unsigned nr_pages)
++{ AuUnsupport(); return 0; }
++static sector_t aufs_bmap(struct address_space *mapping, sector_t block)
++{ AuUnsupport(); return 0; }
++#endif
++
++static int aufs_set_page_dirty(struct page *page)
++{ AuUnsupport(); return 0; }
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 17)
++static void aufs_invalidatepage(struct page *page, unsigned long offset)
++{ AuUnsupport(); }
++#else
++static int aufs_invalidatepage(struct page *page, unsigned long offset)
++{ AuUnsupport(); return 0; }
++#endif
++static int aufs_releasepage(struct page *page, gfp_t gfp)
++{ AuUnsupport(); return 0; }
++static ssize_t aufs_direct_IO(int rw, struct kiocb *iocb,
++ const struct iovec *iov, loff_t offset,
++ unsigned long nr_segs)
++{ AuUnsupport(); return 0; }
++static struct page *aufs_get_xip_page(struct address_space *mapping,
++ sector_t offset, int create)
++{ AuUnsupport(); return NULL; }
++//static int aufs_migratepage (struct page *newpage, struct page *page)
++//{ AuUnsupport(); return 0; }
++#if 0 //LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20)
++int (*launder_page) (struct page *);
++#endif
++#endif /* CONFIG_AUFS_DEBUG */
++
++struct address_space_operations aufs_aop = {
++ .readpage = aufs_readpage,
++#ifdef CONFIG_AUFS_DEBUG
++ .writepage = aufs_writepage,
++ .sync_page = aufs_sync_page,
++ //.writepages = aufs_writepages,
++ .set_page_dirty = aufs_set_page_dirty,
++ //.readpages = aufs_readpages,
++ .prepare_write = aufs_prepare_write,
++ .commit_write = aufs_commit_write,
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 24)
++ .write_begin = aufs_write_begin,
++ .write_end = aufs_write_end,
++#endif
++ //.bmap = aufs_bmap,
++ .invalidatepage = aufs_invalidatepage,
++ .releasepage = aufs_releasepage,
++ .direct_IO = aufs_direct_IO,
++ .get_xip_page = aufs_get_xip_page,
++ //.migratepage = aufs_migratepage
++#endif /* CONFIG_AUFS_DEBUG */
++};
+diff --git a/fs/aufs/file.h b/fs/aufs/file.h
+new file mode 100644
+index 0000000..a974284
+--- /dev/null
++++ b/fs/aufs/file.h
+@@ -0,0 +1,262 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * file operations
++ *
++ * $Id: file.h,v 1.40 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#ifndef __AUFS_FILE_H__
++#define __AUFS_FILE_H__
++
++#ifdef __KERNEL__
++
++#include <linux/file.h>
++#include <linux/fs.h>
++#include <linux/mm.h>
++#include <linux/version.h>
++#include <linux/aufs_type.h>
++#include "misc.h"
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
++/* SEEK_xxx are defined in linux/fs.h */
++#else
++enum {
++ SEEK_SET, SEEK_CUR, SEEK_END
++};
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++struct au_branch;
++struct au_hfile {
++ struct file *hf_file;
++ struct au_branch *hf_br;
++};
++
++struct au_vdir;
++struct au_finfo {
++ atomic_t fi_generation;
++
++ struct au_rwsem fi_rwsem;
++ struct au_hfile *fi_hfile;
++ aufs_bindex_t fi_bstart, fi_bend;
++
++ union {
++ struct vm_operations_struct *fi_h_vm_ops;
++ struct au_vdir *fi_vdir_cache;
++ };
++};
++
++/* ---------------------------------------------------------------------- */
++
++/* file.c */
++extern struct address_space_operations aufs_aop;
++unsigned int au_file_roflags(unsigned int flags);
++struct file *au_h_open(struct dentry *dentry, aufs_bindex_t bindex, int flags,
++ struct file *file);
++int au_do_open(struct inode *inode, struct file *file,
++ int (*open)(struct file *file, int flags));
++int au_reopen_nondir(struct file *file);
++struct au_pin;
++int au_ready_to_write(struct file *file, loff_t len, struct au_pin *pin);
++int au_reval_and_lock_fdi(struct file *file, int (*reopen)(struct file *file),
++ int wlock, int locked);
++
++/* f_op.c */
++extern struct file_operations aufs_file_fop;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
++int aufs_flush(struct file *file, fl_owner_t id);
++#else
++int aufs_flush(struct file *file);
++#endif
++
++/* finfo.c */
++struct au_finfo *au_fi(struct file *file);
++struct au_branch *au_fbr(struct file *file, aufs_bindex_t bindex);
++struct file *au_h_fptr(struct file *file, aufs_bindex_t bindex);
++
++void au_hfput(struct au_hfile *hf);
++void au_set_h_fptr(struct file *file, aufs_bindex_t bindex,
++ struct file *h_file);
++
++void au_finfo_fin(struct file *file);
++int au_finfo_init(struct file *file);
++
++#ifdef CONFIG_AUFS_ROBR
++/* robr.c */
++struct file *au_robr_safe_file(struct vm_area_struct *vma);
++void au_robr_reset_file(struct vm_area_struct *vma, struct file *file);
++#else
++static inline struct file *au_robr_safe_file(struct vm_area_struct *vma)
++{
++ struct file *file;
++
++ file = vma->vm_file;
++ if (file->private_data && au_test_aufs(file->f_dentry->d_sb))
++ return file;
++ return NULL;
++}
++
++static inline
++void au_robr_reset_file(struct vm_area_struct *vma, struct file *file)
++{
++ vma->vm_file = file;
++ /* smp_mb(); */ /* flush vm_file */
++}
++#endif /* CONFIG_AUFS_ROBR */
++
++/* ---------------------------------------------------------------------- */
++
++/* todo: memory barrier? */
++static inline au_gen_t au_figen(struct file *f)
++{
++ return atomic_read(&au_fi(f)->fi_generation);
++}
++
++static inline int au_test_mmapped(struct file *f)
++{
++ return !!(au_fi(f)->fi_h_vm_ops);
++}
++
++static inline int au_test_aufs_file(struct file *f)
++{
++ return !(f->f_dentry->d_inode->i_mode
++ & (S_IFCHR | S_IFBLK | S_IFIFO | S_IFSOCK));
++}
++
++/* ---------------------------------------------------------------------- */
++
++#if !defined(CONFIG_AUFS_MODULE) || defined(CONFIG_AUFS_DENY_WRITE_ACCESS_PATCH)
++int au_store_fmode_exec(struct nameidata *nd, struct inode *inode);
++
++static inline int au_deny_write_access(struct file *h_file)
++{
++ LKTRTrace("%.*s\n", AuDLNPair(h_file->f_dentry));
++ return deny_write_access(h_file);
++}
++
++static inline void au_allow_write_access(struct file *h_file)
++{
++ allow_write_access(h_file);
++}
++
++#else
++
++static inline int au_store_fmode_exec(struct nameidata *nd, struct inode *inode)
++{
++ /* nothing */
++ return 0;
++}
++
++static inline int au_deny_write_access(struct file *h_file)
++{
++ /* nothing */
++ return 0;
++}
++
++static inline void au_allow_write_access(struct file *h_file)
++{
++ /* nothing */
++}
++#endif /* CONFIG_AUFS_DENY_WRITE_ACCESS_PATCH */
++
++/* ---------------------------------------------------------------------- */
++
++/*
++ * fi_read_lock, fi_write_lock,
++ * fi_read_unlock, fi_write_unlock, fi_downgrade_lock
++ */
++AuSimpleRwsemFuncs(fi, struct file *f, au_fi(f)->fi_rwsem);
++
++/* to debug easier, do not make them inlined functions */
++#define FiMustReadLock(f) do { \
++ SiMustAnyLock((f)->f_dentry->d_sb); \
++ AuRwMustReadLock(&au_fi(f)->fi_rwsem); \
++} while (0)
++
++#define FiMustWriteLock(f) do { \
++ SiMustAnyLock((f)->f_dentry->d_sb); \
++ AuRwMustWriteLock(&au_fi(f)->fi_rwsem); \
++} while (0)
++
++#define FiMustAnyLock(f) do { \
++ SiMustAnyLock((f)->f_dentry->d_sb); \
++ AuRwMustAnyLock(&au_fi(f)->fi_rwsem); \
++} while (0)
++
++#define FiMustNoWaiters(f) AuRwMustNoWaiters(&au_fi(f)->fi_rwsem)
++
++/* ---------------------------------------------------------------------- */
++
++/* todo: hard/soft set? */
++static inline aufs_bindex_t au_fbstart(struct file *file)
++{
++ FiMustAnyLock(file);
++ return au_fi(file)->fi_bstart;
++}
++
++static inline aufs_bindex_t au_fbend(struct file *file)
++{
++ FiMustAnyLock(file);
++ return au_fi(file)->fi_bend;
++}
++
++static inline struct au_vdir *au_fvdir_cache(struct file *file)
++{
++#ifdef CONFIG_AUFS_EXPORT
++ AuRwMustAnyLock(&au_fi(file)->fi_rwsem);
++#else
++ FiMustAnyLock(file);
++#endif
++ return au_fi(file)->fi_vdir_cache;
++}
++
++static inline void au_set_fbstart(struct file *file, aufs_bindex_t bindex)
++{
++ FiMustWriteLock(file);
++ AuDebugOn(au_sbend(file->f_dentry->d_sb) < bindex);
++ au_fi(file)->fi_bstart = bindex;
++}
++
++static inline void au_set_fbend(struct file *file, aufs_bindex_t bindex)
++{
++ FiMustWriteLock(file);
++ AuDebugOn(au_sbend(file->f_dentry->d_sb) < bindex
++ || bindex < au_fbstart(file));
++ au_fi(file)->fi_bend = bindex;
++}
++
++static inline void au_set_fvdir_cache(struct file *file,
++ struct au_vdir *vdir_cache)
++{
++ FiMustWriteLock(file);
++ AuDebugOn(!S_ISDIR(file->f_dentry->d_inode->i_mode)
++ || (au_fi(file)->fi_vdir_cache && vdir_cache));
++ au_fi(file)->fi_vdir_cache = vdir_cache;
++}
++
++static inline void au_update_figen(struct file *file)
++{
++ atomic_set(&au_fi(file)->fi_generation, au_digen(file->f_dentry));
++ /* smp_mb(); */ /* atomic_set */
++}
++
++#endif /* __KERNEL__ */
++#endif /* __AUFS_FILE_H__ */
+diff --git a/fs/aufs/finfo.c b/fs/aufs/finfo.c
+new file mode 100644
+index 0000000..928c0f4
+--- /dev/null
++++ b/fs/aufs/finfo.c
+@@ -0,0 +1,186 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * file private data
++ *
++ * $Id: finfo.c,v 1.37 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++struct au_finfo *au_fi(struct file *file)
++{
++ struct au_finfo *finfo = file->private_data;
++ AuDebugOn(!finfo
++ || !finfo->fi_hfile
++ || (0 < finfo->fi_bend
++ && (/* au_sbi(file->f_dentry->d_sb)->si_bend
++ < finfo->fi_bend
++ || */ finfo->fi_bend < finfo->fi_bstart)));
++ return finfo;
++}
++
++struct au_branch *au_fbr(struct file *file, aufs_bindex_t bindex)
++{
++ struct au_finfo *finfo = au_fi(file);
++ struct au_hfile *hf;
++
++ FiMustAnyLock(file);
++ AuDebugOn(!finfo
++ || finfo->fi_bstart < 0
++ || bindex < finfo->fi_bstart
++ || finfo->fi_bend < bindex);
++ hf = finfo->fi_hfile + bindex;
++ AuDebugOn(hf->hf_br && au_br_count(hf->hf_br) <= 0);
++ return hf->hf_br;
++}
++
++struct file *au_h_fptr(struct file *file, aufs_bindex_t bindex)
++{
++ struct au_finfo *finfo = au_fi(file);
++ struct au_hfile *hf;
++
++ FiMustAnyLock(file);
++ AuDebugOn(!finfo
++ || finfo->fi_bstart < 0
++ || bindex < finfo->fi_bstart
++ || finfo->fi_bend < bindex);
++ hf = finfo->fi_hfile + bindex;
++ AuDebugOn(hf->hf_file
++ && file_count(hf->hf_file) <= 0
++ && au_br_count(hf->hf_br) <= 0);
++ return hf->hf_file;
++}
++
++void au_hfput(struct au_hfile *hf)
++{
++ if (hf->hf_file->f_mode & FMODE_EXEC)
++ au_allow_write_access(hf->hf_file);
++ fput(hf->hf_file);
++ hf->hf_file = NULL;
++ AuDebugOn(!hf->hf_br);
++ au_br_put(hf->hf_br);
++ hf->hf_br = NULL;
++}
++
++void au_set_h_fptr(struct file *file, aufs_bindex_t bindex, struct file *val)
++{
++ struct au_finfo *finfo = au_fi(file);
++ struct au_hfile *hf;
++
++ FiMustWriteLock(file);
++ AuDebugOn(!finfo
++ || finfo->fi_bstart < 0
++ || bindex < finfo->fi_bstart
++ || finfo->fi_bend < bindex);
++ AuDebugOn(val && file_count(val) <= 0);
++ hf = finfo->fi_hfile + bindex;
++ AuDebugOn(val && hf->hf_file);
++ if (hf->hf_file)
++ au_hfput(hf);
++ if (val) {
++ hf->hf_file = val;
++ hf->hf_br = au_sbr(file->f_dentry->d_sb, bindex);
++ }
++}
++
++void au_finfo_fin(struct file *file)
++{
++ struct au_finfo *finfo;
++ struct dentry *dentry;
++ aufs_bindex_t bindex, bend;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++ SiMustAnyLock(dentry->d_sb);
++
++ fi_write_lock(file);
++ bend = au_fbend(file);
++ bindex = au_fbstart(file);
++ if (bindex >= 0)
++ for (; bindex <= bend; bindex++)
++ au_set_h_fptr(file, bindex, NULL);
++
++ finfo = au_fi(file);
++#ifdef CONFIG_AUFS_DEBUG
++ if (finfo->fi_bstart >= 0) {
++ bend = au_fbend(file);
++ for (bindex = finfo->fi_bstart; bindex <= bend; bindex++) {
++ struct au_hfile *hf;
++ hf = finfo->fi_hfile + bindex;
++ AuDebugOn(hf->hf_file || hf->hf_br);
++ }
++ }
++#endif
++
++ kfree(finfo->fi_hfile);
++ fi_write_unlock(file);
++ au_rwsem_destroy(&finfo->fi_rwsem);
++ au_cache_free_finfo(finfo);
++}
++
++int au_finfo_init(struct file *file)
++{
++ struct au_finfo *finfo;
++ struct dentry *dentry;
++ union {
++ void *p;
++ unsigned long ul;
++ } u;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++ AuDebugOn(!dentry->d_inode);
++
++ finfo = au_cache_alloc_finfo();
++ if (finfo) {
++ finfo->fi_hfile = kcalloc(au_sbend(dentry->d_sb) + 1,
++ sizeof(*finfo->fi_hfile), GFP_NOFS);
++ if (finfo->fi_hfile) {
++ au_rw_init_wlock(&finfo->fi_rwsem);
++ //au_dbg_lock_fi_reg(file);
++ finfo->fi_bstart = -1;
++ finfo->fi_bend = -1;
++ atomic_set(&finfo->fi_generation, au_digen(dentry));
++ /* smp_mb(); */ /* atomic_set */
++
++ /*
++ * a dirty trick for handling FMODE_EXEC and
++ * deny_write_access().
++ * because FMODE_EXEC flag is not passed to
++ * f_op->open(),
++ * aufs set it to file->private_data temporary in lookup
++ * or dentry revalidation operations.
++ * restore the flag to f_mode here.
++ */
++ u.p = file->private_data;
++ if (u.ul & FMODE_EXEC) {
++ file->f_mode |= FMODE_EXEC;
++ smp_mb(); /* flush f_mode */
++ }
++
++ file->private_data = finfo;
++ return 0; /* success */
++ }
++ au_cache_free_finfo(finfo);
++ }
++
++ AuTraceErr(-ENOMEM);
++ return -ENOMEM;
++}
+diff --git a/fs/aufs/getattr.c b/fs/aufs/getattr.c
+new file mode 100644
+index 0000000..d424a09
+--- /dev/null
++++ b/fs/aufs/getattr.c
+@@ -0,0 +1,133 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * inode attributes on NFS/FUSE branch or HINOTIFY
++ *
++ * $Id: getattr.c,v 1.5 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++static struct dentry *
++au_h_dget_any(struct dentry *dentry, aufs_bindex_t *bindex)
++{
++ struct dentry *h_dentry;
++ struct inode *inode, *h_inode;
++ struct super_block *sb;
++ aufs_bindex_t ib, db;
++
++ /* must be positive dentry */
++ inode = dentry->d_inode;
++ LKTRTrace("%.*s, i%lu\n", AuDLNPair(dentry), inode->i_ino);
++
++ sb = dentry->d_sb;
++ db = au_dbstart(dentry);
++ ib = au_ibstart(inode);
++ if (db == ib) {
++ *bindex = db;
++ h_dentry = dget(au_h_dptr(dentry, db));
++ if (h_dentry)
++ goto out; /* success */
++ }
++
++ *bindex = ib;
++ h_inode = au_h_iptr(inode, ib);
++ h_dentry = d_find_alias(h_inode);
++ if (h_dentry)
++ goto out; /* success */
++
++#if 0
++ if (au_opt_test(au_mntflags(sb), PLINK)
++ && au_plink_test(sb, inode)) {
++ h_dentry = au_plink_lkup(sb, ib, inode);
++ if (IS_ERR(h_dentry))
++ goto out;
++ AuDebugOn(!h_dentry->d_inode);
++ goto out; /* success */
++ }
++#endif
++
++ h_dentry = dget(au_hi_wh(inode, ib));
++
++ out:
++ AuTraceErrPtr(h_dentry);
++ return h_dentry;
++}
++
++int aufs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *st)
++{
++ int err;
++ unsigned int mnt_flags;
++ aufs_bindex_t bindex;
++ unsigned char did_lock;
++ struct inode *inode;
++ struct dentry *h_dentry;
++ struct super_block *sb, *h_sb;
++
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++
++ err = 0;
++ sb = dentry->d_sb;
++ si_read_lock(sb, AuLock_FLUSH);
++ mnt_flags = au_mntflags(sb);
++ if (dentry != sb->s_root) {
++ di_read_lock_parent(dentry, AuLock_IR);
++ inode = dentry->d_inode;
++ did_lock = 1;
++
++ /* todo: test bit inotify option too? */
++ bindex = au_ibstart(inode);
++ h_sb = au_sbr_sb(sb, bindex);
++ /* todo: fix this condition */
++ if ((au_opt_test(mnt_flags, PLINK) && au_plink_test(sb, inode))
++ /* au_iigen(inode) == au_sigen(sb) */
++ || (!au_test_fuse(h_sb) && !au_test_nfs(h_sb)))
++ goto fill;
++
++ h_dentry = au_h_dget_any(dentry, &bindex);
++ err = PTR_ERR(h_dentry);
++ if (IS_ERR(h_dentry))
++ goto out;
++ } else {
++ /* lock free root dinfo */
++ did_lock = 0;
++ bindex = 0;
++ inode = dentry->d_inode;
++ h_dentry = dget(au_di(dentry)->di_hdentry->hd_dentry);
++ }
++
++ err = -EIO;
++ if (h_dentry && h_dentry->d_inode)
++ err = vfsub_getattr(au_sbr_mnt(sb, bindex), h_dentry, st,
++ au_test_dlgt(mnt_flags));
++ dput(h_dentry);
++ if (!err) {
++ /* todo: I don't like this approach */
++ au_cpup_attr_all(inode, /*force*/0);
++ fill:
++ generic_fillattr(inode, st);
++ }
++
++ out:
++ if (did_lock)
++ di_read_unlock(dentry, AuLock_IR);
++ si_read_unlock(sb);
++ AuTraceErr(err);
++ return err;
++}
+diff --git a/fs/aufs/hin_or_dlgt.c b/fs/aufs/hin_or_dlgt.c
+new file mode 100644
+index 0000000..172fc34
+--- /dev/null
++++ b/fs/aufs/hin_or_dlgt.c
+@@ -0,0 +1,736 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * sub-routines for vfs in hinotify or dlgt mode
++ *
++ * $Id: hin_or_dlgt.c,v 1.7 2009/01/26 06:24:45 sfjro Exp $
++ */
++// I'm going to slightly mad
++
++#include "aufs.h"
++
++#if !defined(CONFIG_AUFS_HINOTIFY) && !defined(CONFIG_AUFS_DLGT)
++#error mis-configuraion or Makefile
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++struct permission_args {
++ int *errp;
++ struct inode *inode;
++ int mask;
++ struct nameidata *nd;
++};
++
++static void call_permission(void *args)
++{
++ struct permission_args *a = args;
++ *a->errp = do_vfsub_permission(a->inode, a->mask, a->nd);
++}
++
++int vfsub_permission(struct inode *inode, int mask, struct nameidata *nd,
++ int dlgt)
++{
++ if (!dlgt)
++ return do_vfsub_permission(inode, mask, nd);
++ else {
++ int err, wkq_err;
++ struct permission_args args = {
++ .errp = &err,
++ .inode = inode,
++ .mask = mask,
++ .nd = nd
++ };
++ wkq_err = au_wkq_wait(call_permission, &args, /*dlgt*/1);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ return err;
++ }
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct create_args {
++ int *errp;
++ struct inode *dir;
++ struct dentry *dentry;
++ int mode;
++ struct nameidata *nd;
++ struct vfsub_args *vargs;
++};
++
++static void call_create(void *args)
++{
++ struct create_args *a = args;
++ vfsub_ignore(a->vargs);
++ *a->errp = do_vfsub_create(a->dir, a->dentry, a->mode, a->nd);
++ if (unlikely(*a->errp))
++ vfsub_unignore(a->vargs);
++ au_dbg_hin_list(a->vargs);
++}
++
++int vfsub_create(struct inode *dir, struct dentry *dentry, int mode,
++ struct nameidata *nd, struct vfsub_args *vargs)
++{
++ int err;
++ struct create_args args = {
++ .errp = &err,
++ .dir = dir,
++ .dentry = dentry,
++ .mode = mode,
++ .nd = nd,
++ .vargs = vargs
++ };
++
++ if (!vfsub_ftest(vargs->flags, DLGT))
++ call_create(&args);
++ else {
++ int wkq_err;
++ wkq_err = au_wkq_wait(call_create, &args, /*dlgt*/1);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ }
++ return err;
++}
++
++struct symlink_args {
++ int *errp;
++ struct inode *dir;
++ struct dentry *dentry;
++ const char *symname;
++ int mode;
++ struct vfsub_args *vargs;
++};
++
++static void call_symlink(void *args)
++{
++ struct symlink_args *a = args;
++ vfsub_ignore(a->vargs);
++ *a->errp = do_vfsub_symlink(a->dir, a->dentry, a->symname, a->mode);
++ if (unlikely(*a->errp))
++ vfsub_unignore(a->vargs);
++ au_dbg_hin_list(a->vargs);
++}
++
++int vfsub_symlink(struct inode *dir, struct dentry *dentry, const char *symname,
++ int mode, struct vfsub_args *vargs)
++{
++ int err;
++ struct symlink_args args = {
++ .errp = &err,
++ .dir = dir,
++ .dentry = dentry,
++ .symname = symname,
++ .mode = mode,
++ .vargs = vargs
++ };
++
++ if (!vfsub_ftest(vargs->flags, DLGT))
++ call_symlink(&args);
++ else {
++ int wkq_err;
++ wkq_err = au_wkq_wait(call_symlink, &args, /*dlgt*/1);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ }
++ return err;
++}
++
++struct mknod_args {
++ int *errp;
++ struct inode *dir;
++ struct dentry *dentry;
++ int mode;
++ dev_t dev;
++ struct vfsub_args *vargs;
++};
++
++static void call_mknod(void *args)
++{
++ struct mknod_args *a = args;
++ vfsub_ignore(a->vargs);
++ *a->errp = do_vfsub_mknod(a->dir, a->dentry, a->mode, a->dev);
++ if (unlikely(*a->errp))
++ vfsub_unignore(a->vargs);
++ au_dbg_hin_list(a->vargs);
++}
++
++int vfsub_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev,
++ struct vfsub_args *vargs)
++{
++ int err;
++ struct mknod_args args = {
++ .errp = &err,
++ .dir = dir,
++ .dentry = dentry,
++ .mode = mode,
++ .dev = dev,
++ .vargs = vargs
++ };
++
++ if (!vfsub_ftest(vargs->flags, DLGT))
++ call_mknod(&args);
++ else {
++ int wkq_err;
++ wkq_err = au_wkq_wait(call_mknod, &args, /*dlgt*/1);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ }
++ return err;
++}
++
++struct mkdir_args {
++ int *errp;
++ struct inode *dir;
++ struct dentry *dentry;
++ int mode;
++ struct vfsub_args *vargs;
++};
++
++static void call_mkdir(void *args)
++{
++ struct mkdir_args *a = args;
++ vfsub_ignore(a->vargs);
++ *a->errp = do_vfsub_mkdir(a->dir, a->dentry, a->mode);
++ if (unlikely(*a->errp))
++ vfsub_unignore(a->vargs);
++ au_dbg_hin_list(a->vargs);
++}
++
++int vfsub_mkdir(struct inode *dir, struct dentry *dentry, int mode,
++ struct vfsub_args *vargs)
++{
++ int err;
++ struct mkdir_args args = {
++ .errp = &err,
++ .dir = dir,
++ .dentry = dentry,
++ .mode = mode,
++ .vargs = vargs
++ };
++
++ if (!vfsub_ftest(vargs->flags, DLGT))
++ call_mkdir(&args);
++ else {
++ int wkq_err;
++ wkq_err = au_wkq_wait(call_mkdir, &args, /*dlgt*/1);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ }
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct link_args {
++ int *errp;
++ struct inode *dir;
++ struct dentry *src_dentry, *dentry;
++ struct vfsub_args *vargs;
++};
++
++static void call_link(void *args)
++{
++ struct link_args *a = args;
++ vfsub_ignore(a->vargs);
++ *a->errp = do_vfsub_link(a->src_dentry, a->dir, a->dentry);
++ if (unlikely(*a->errp))
++ vfsub_unignore(a->vargs);
++ au_dbg_hin_list(a->vargs);
++}
++
++int vfsub_link(struct dentry *src_dentry, struct inode *dir,
++ struct dentry *dentry, struct vfsub_args *vargs)
++{
++ int err;
++ struct link_args args = {
++ .errp = &err,
++ .src_dentry = src_dentry,
++ .dir = dir,
++ .dentry = dentry,
++ .vargs = vargs
++ };
++
++ if (!vfsub_ftest(vargs->flags, DLGT))
++ call_link(&args);
++ else {
++ int wkq_err;
++ wkq_err = au_wkq_wait(call_link, &args, /*dlgt*/1);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ }
++ return err;
++}
++
++struct rename_args {
++ int *errp;
++ struct inode *src_dir, *dir;
++ struct dentry *src_dentry, *dentry;
++ struct vfsub_args *vargs;
++};
++
++static void call_rename(void *args)
++{
++ struct rename_args *a = args;
++ vfsub_ignore(a->vargs);
++ *a->errp = do_vfsub_rename(a->src_dir, a->src_dentry, a->dir,
++ a->dentry);
++ if (unlikely(*a->errp))
++ vfsub_unignore(a->vargs);
++ au_dbg_hin_list(a->vargs);
++}
++
++int vfsub_rename(struct inode *src_dir, struct dentry *src_dentry,
++ struct inode *dir, struct dentry *dentry,
++ struct vfsub_args *vargs)
++{
++ int err;
++ struct rename_args args = {
++ .errp = &err,
++ .src_dir = src_dir,
++ .src_dentry = src_dentry,
++ .dir = dir,
++ .dentry = dentry,
++ .vargs = vargs
++ };
++
++ if (!vfsub_ftest(vargs->flags, DLGT))
++ call_rename(&args);
++ else {
++ int wkq_err;
++ wkq_err = au_wkq_wait(call_rename, &args, /*dlgt*/1);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ }
++ return err;
++}
++
++struct rmdir_args {
++ int *errp;
++ struct inode *dir;
++ struct dentry *dentry;
++ struct vfsub_args *vargs;
++};
++
++static void call_rmdir(void *args)
++{
++ struct rmdir_args *a = args;
++ vfsub_ignore(a->vargs);
++ *a->errp = do_vfsub_rmdir(a->dir, a->dentry);
++ if (unlikely(*a->errp))
++ vfsub_unignore(a->vargs);
++ au_dbg_hin_list(a->vargs);
++}
++
++int vfsub_rmdir(struct inode *dir, struct dentry *dentry,
++ struct vfsub_args *vargs)
++{
++ int err;
++ struct rmdir_args args = {
++ .errp = &err,
++ .dir = dir,
++ .dentry = dentry,
++ .vargs = vargs
++ };
++
++ if (!vfsub_ftest(vargs->flags, DLGT))
++ call_rmdir(&args);
++ else {
++ int wkq_err;
++ wkq_err = au_wkq_wait(call_rmdir, &args, /*dlgt*/1);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ }
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct read_args {
++ ssize_t *errp;
++ struct file *file;
++ union {
++ void *kbuf;
++ char __user *ubuf;
++ };
++ size_t count;
++ loff_t *ppos;
++};
++
++static void call_read_k(void *args)
++{
++ struct read_args *a = args;
++ LKTRTrace("%.*s, cnt %zu, pos %lld\n",
++ AuDLNPair(a->file->f_dentry), a->count, *a->ppos);
++ *a->errp = do_vfsub_read_k(a->file, a->kbuf, a->count, a->ppos);
++}
++
++ssize_t vfsub_read_u(struct file *file, char __user *ubuf, size_t count,
++ loff_t *ppos, int dlgt)
++{
++ if (!dlgt)
++ return do_vfsub_read_u(file, ubuf, count, ppos);
++ else {
++ int wkq_err;
++ ssize_t err, read;
++ struct read_args args = {
++ .errp = &err,
++ .file = file,
++ .count = count,
++ .ppos = ppos
++ };
++
++ if (!count)
++ return 0;
++
++ /*
++ * workaround an application bug.
++ * generally, read(2) or write(2) may return the value shorter
++ * than requested. But many applications don't support it,
++ * for example bash.
++ */
++ err = -ENOMEM;
++ if (args.count > PAGE_SIZE)
++ args.count = PAGE_SIZE;
++ args.kbuf = kmalloc(args.count, GFP_NOFS);
++ if (unlikely(!args.kbuf))
++ goto out;
++
++ read = 0;
++ do {
++ wkq_err = au_wkq_wait(call_read_k, &args, /*dlgt*/1);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ if (unlikely(err > 0
++ && copy_to_user(ubuf, args.kbuf, err))) {
++ err = -EFAULT;
++ goto out_free;
++ } else if (!err)
++ break;
++ else if (unlikely(err < 0))
++ goto out_free;
++ count -= err;
++ /* do not read too much because of file i/o pointer */
++ if (count < args.count)
++ args.count = count;
++ ubuf += err;
++ read += err;
++ } while (count);
++ smp_mb(); /* flush ubuf */
++ err = read;
++
++ out_free:
++ kfree(args.kbuf);
++ out:
++ return err;
++ }
++}
++
++ssize_t vfsub_read_k(struct file *file, void *kbuf, size_t count, loff_t *ppos,
++ int dlgt)
++{
++ if (!dlgt)
++ return do_vfsub_read_k(file, kbuf, count, ppos);
++ else {
++ ssize_t err;
++ int wkq_err;
++ struct read_args args = {
++ .errp = &err,
++ .file = file,
++ .count = count,
++ .ppos = ppos
++ };
++ args.kbuf = kbuf;
++ wkq_err = au_wkq_wait(call_read_k, &args, /*dlgt*/1);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ return err;
++ }
++}
++
++struct write_args {
++ ssize_t *errp;
++ struct file *file;
++ union {
++ void *kbuf;
++ const char __user *ubuf;
++ };
++ size_t count;
++ loff_t *ppos;
++ struct vfsub_args *vargs;
++};
++
++static void call_write_k(void *args)
++{
++ struct write_args *a = args;
++ vfsub_ignore(a->vargs);
++ *a->errp = do_vfsub_write_k(a->file, a->kbuf, a->count, a->ppos);
++ if (unlikely(*a->errp <= 0))
++ vfsub_unignore(a->vargs);
++ au_dbg_hin_list(a->vargs);
++}
++
++ssize_t vfsub_write_u(struct file *file, const char __user *ubuf, size_t count,
++ loff_t *ppos, struct vfsub_args *vargs)
++{
++ ssize_t err;
++
++ if (!vfsub_ftest(vargs->flags, DLGT)) {
++ vfsub_ignore(vargs);
++ err = do_vfsub_write_u(file, ubuf, count, ppos);
++ if (unlikely(err <= 0))
++ vfsub_unignore(vargs);
++ au_dbg_hin_list(vargs);
++ } else {
++ ssize_t written;
++ int wkq_err;
++ struct write_args args = {
++ .errp = &err,
++ .file = file,
++ .count = count,
++ .ppos = ppos,
++ .vargs = vargs
++ };
++
++ if (!count)
++ return 0;
++
++ /*
++ * workaround an application bug.
++ * generally, read(2) or write(2) may return the value shorter
++ * than requested. But many applications don't support it,
++ * for example bash.
++ */
++ err = -ENOMEM;
++ if (args.count > PAGE_SIZE)
++ args.count = PAGE_SIZE;
++ args.kbuf = kmalloc(args.count, GFP_NOFS);
++ if (unlikely(!args.kbuf))
++ goto out;
++
++ written = 0;
++ do {
++ if (unlikely(copy_from_user(args.kbuf, ubuf,
++ args.count))) {
++ err = -EFAULT;
++ goto out_free;
++ }
++
++ wkq_err = au_wkq_wait(call_write_k, &args, /*dlgt*/1);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ if (err > 0) {
++ count -= err;
++ if (count < args.count)
++ args.count = count;
++ ubuf += err;
++ written += err;
++ } else if (!err)
++ break;
++ else if (unlikely(err < 0))
++ goto out_free;
++ } while (count);
++ err = written;
++
++ out_free:
++ kfree(args.kbuf);
++ }
++ out:
++ return err;
++}
++
++ssize_t vfsub_write_k(struct file *file, void *kbuf, size_t count, loff_t *ppos,
++ struct vfsub_args *vargs)
++{
++ ssize_t err;
++ struct write_args args = {
++ .errp = &err,
++ .file = file,
++ .count = count,
++ .ppos = ppos,
++ .vargs = vargs
++ };
++
++ args.kbuf = kbuf;
++ if (!vfsub_ftest(vargs->flags, DLGT))
++ call_write_k(&args);
++ else {
++ int wkq_err;
++ wkq_err = au_wkq_wait(call_write_k, &args, /*dlgt*/1);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ }
++ return err;
++}
++
++struct readdir_args {
++ int *errp;
++ struct file *file;
++ filldir_t filldir;
++ void *arg;
++};
++
++static void call_readdir(void *args)
++{
++ struct readdir_args *a = args;
++ *a->errp = do_vfsub_readdir(a->file, a->filldir, a->arg);
++}
++
++int vfsub_readdir(struct file *file, filldir_t filldir, void *arg, int dlgt)
++{
++ if (!dlgt)
++ return do_vfsub_readdir(file, filldir, arg);
++ else {
++ int err, wkq_err;
++ struct readdir_args args = {
++ .errp = &err,
++ .file = file,
++ .filldir = filldir,
++ .arg = arg
++ };
++ wkq_err = au_wkq_wait(call_readdir, &args, /*dlgt*/1);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ return err;
++ }
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct splice_to_args {
++ long *errp;
++ struct file *in;
++ loff_t *ppos;
++ struct pipe_inode_info *pipe;
++ size_t len;
++ unsigned int flags;
++};
++
++static void call_splice_to(void *args)
++{
++ struct splice_to_args *a = args;
++ *a->errp = do_vfsub_splice_to(a->in, a->ppos, a->pipe, a->len,
++ a->flags);
++}
++
++long vfsub_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags, int dlgt)
++{
++ if (!dlgt)
++ return do_vfsub_splice_to(in, ppos, pipe, len, flags);
++ else {
++ long err;
++ int wkq_err;
++ struct splice_to_args args = {
++ .errp = &err,
++ .in = in,
++ .ppos = ppos,
++ .pipe = pipe,
++ .len = len,
++ .flags = flags
++ };
++ wkq_err = au_wkq_wait(call_splice_to, &args, /*dlgt*/1);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ return err;
++ }
++}
++
++struct splice_from_args {
++ long *errp;
++ struct pipe_inode_info *pipe;
++ struct file *out;
++ loff_t *ppos;
++ size_t len;
++ unsigned int flags;
++ struct vfsub_args *vargs;
++};
++
++static void call_splice_from(void *args)
++{
++ struct splice_from_args *a = args;
++ vfsub_ignore(a->vargs);
++ *a->errp = do_vfsub_splice_from(a->pipe, a->out, a->ppos, a->len,
++ a->flags);
++ if (unlikely(*a->errp < 0))
++ vfsub_unignore(a->vargs);
++ au_dbg_hin_list(a->vargs);
++}
++
++long vfsub_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags,
++ struct vfsub_args *vargs)
++{
++ long err;
++ struct splice_from_args args = {
++ .errp = &err,
++ .pipe = pipe,
++ .out = out,
++ .ppos = ppos,
++ .len = len,
++ .flags = flags,
++ .vargs = vargs
++ };
++
++ if (!vfsub_ftest(vargs->flags, DLGT))
++ call_splice_from(&args);
++ else {
++ int wkq_err;
++ wkq_err = au_wkq_wait(call_splice_from, &args, /*dlgt*/1);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ }
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct getattr_args {
++ int *errp;
++ struct vfsmount *mnt;
++ struct dentry *dentry;
++ struct kstat *st;
++};
++
++static void call_getattr(void *args)
++{
++ struct getattr_args *a = args;
++ *a->errp = do_vfsub_getattr(a->mnt, a->dentry, a->st);
++}
++
++int vfsub_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *st,
++ int dlgt)
++{
++ if (!dlgt)
++ return do_vfsub_getattr(mnt, dentry, st);
++ else {
++ int err, wkq_err;
++ struct getattr_args args = {
++ .errp = &err,
++ .mnt = mnt,
++ .dentry = dentry,
++ .st = st
++ };
++ wkq_err = au_wkq_wait(call_getattr, &args, /*dlgt*/1);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ return err;
++ }
++}
+diff --git a/fs/aufs/hinode.h b/fs/aufs/hinode.h
+new file mode 100644
+index 0000000..f14b664
+--- /dev/null
++++ b/fs/aufs/hinode.h
+@@ -0,0 +1,184 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * lower (branch filesystem) inode and setting inotify
++ *
++ * $Id: hinode.h,v 1.15 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#ifndef __AUFS_HINODE_H__
++#define __AUFS_HINODE_H__
++
++#ifdef __KERNEL__
++
++#include <linux/fs.h>
++#include <linux/inotify.h>
++#include <linux/version.h>
++#include <linux/aufs_type.h>
++//#include "branch.h"
++//#include "inode.h"
++//#include "vfsub.h"
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
++#else
++struct inotify_watch {
++ /* empty */
++};
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++struct au_hinotify {
++#ifdef CONFIG_AUFS_HINOTIFY
++ struct au_splhead hin_ignore;
++ struct inotify_watch hin_watch;
++ struct inode *hin_aufs_inode; /* no get/put */
++#endif
++};
++
++struct au_hinode {
++ struct inode *hi_inode;
++ aufs_bindex_t hi_id;
++#ifdef CONFIG_AUFS_HINOTIFY
++ struct au_hinotify *hi_notify;
++#endif
++
++ /* reference to the copied-up whiteout with get/put */
++ struct dentry *hi_whdentry;
++};
++
++struct au_hin_ignore {
++#ifdef CONFIG_AUFS_HINOTIFY
++ struct list_head ign_list;
++
++ pid_t ign_pid;
++ __u32 ign_events, ign_handled;
++ struct au_hinode *ign_hinode;
++#endif
++};
++
++/* ---------------------------------------------------------------------- */
++
++#ifdef CONFIG_AUFS_HINOTIFY
++/* inotify events */
++static const __u32 AuInMask = (IN_MOVE | IN_DELETE | IN_CREATE
++ /* | IN_ACCESS */
++ | IN_MODIFY | IN_ATTRIB
++ /* | IN_DELETE_SELF | IN_MOVE_SELF */
++ );
++
++static inline
++void au_hin_init(struct au_hinode *hinode, struct au_hinotify *val)
++{
++ hinode->hi_notify = val;
++}
++
++/* hinotify.c */
++int au_hin_alloc(struct au_hinode *hinode, struct inode *inode,
++ struct inode *h_inode);
++void au_hin_free(struct au_hinode *hinode);
++void au_hin_ctl(struct au_hinode *hinode, const __u32 mask);
++void au_reset_hinotify(struct inode *inode, unsigned int flags);
++
++int au_hin_verify_gen(struct dentry *dentry);
++
++int __init au_inotify_init(void);
++void au_inotify_fin(void);
++
++static inline void au_hin_suspend(struct au_hinode *hinode)
++{
++ au_hin_ctl(hinode, 0);
++}
++
++static inline void au_hin_resume(struct au_hinode *hinode)
++{
++ au_hin_ctl(hinode, AuInMask);
++}
++
++#else
++
++static inline
++void au_hin_init(struct au_hinode *hinode, struct au_hinotify *val)
++{
++ /* empty */
++}
++
++static inline
++int au_hin_alloc(struct au_hinode *hinode, struct inode *inode,
++ struct inode *h_inode)
++{
++ return -EOPNOTSUPP;
++}
++
++static inline void au_hin_free(struct au_hinode *hinode)
++{
++ /* nothing */
++}
++
++static inline void au_reset_hinotify(struct inode *inode, unsigned int flags)
++{
++ /* nothing */
++}
++
++static inline int au_hin_verify_gen(struct dentry *dentry)
++{
++ return 0;
++}
++
++static inline int au_inotify_init(void)
++{
++ return 0;
++}
++
++#define au_inotify_fin() do {} while (0)
++
++static inline void au_hin_suspend(struct au_hinode *hinode)
++{
++ /* empty */
++}
++
++static inline void au_hin_resume(struct au_hinode *hinode)
++{
++ /* empty */
++}
++#endif /* CONFIG_AUFS_HINOTIFY */
++
++#if defined(CONFIG_AUFS_HINOTIFY) && defined(CONFIG_AUFS_DEBUG)
++static inline void au_hin_list_del(struct list_head *e)
++{
++ list_del_init(e);
++}
++
++void au_dbg_hin_list(struct vfsub_args *vargs);
++#else
++static inline void au_hin_list_del(struct list_head *e)
++{
++ list_del(e);
++}
++
++static inline void au_dbg_hin_list(struct vfsub_args *vargs)
++{
++ /* empty */
++}
++#endif /* CONFIG_AUFS_DEBUG */
++
++/* ---------------------------------------------------------------------- */
++
++#endif /* __KERNEL__ */
++#endif /* __AUFS_HINODE_H__ */
+diff --git a/fs/aufs/hinotify.c b/fs/aufs/hinotify.c
+new file mode 100644
+index 0000000..036fd43
+--- /dev/null
++++ b/fs/aufs/hinotify.c
+@@ -0,0 +1,1146 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * internal/hidden inotify handler
++ *
++ * $Id: hinotify.c,v 1.62 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++/*
++#ifdef DbgInotify
++#define AuDbgHin(args...) AuDbg(##args)
++#else
++#define AuDbgHin(args...) do {} while ()
++#endif
++*/
++
++static struct inotify_handle *in_handle;
++
++AuCacheFuncs(hinotify, AuCache_HINOTIFY);
++
++int au_hin_alloc(struct au_hinode *hinode, struct inode *inode,
++ struct inode *h_inode)
++{
++ int err;
++ struct au_hinotify *hin;
++ s32 wd;
++
++ LKTRTrace("i%lu, hi%lu\n", inode->i_ino, h_inode->i_ino);
++
++ err = -ENOMEM;
++ hin = au_cache_alloc_hinotify();
++ if (hin) {
++ AuDebugOn(hinode->hi_notify);
++ hinode->hi_notify = hin;
++ au_spl_init(&hin->hin_ignore);
++ hin->hin_aufs_inode = inode;
++
++ inotify_init_watch(&hin->hin_watch);
++ wd = inotify_add_watch(in_handle, &hin->hin_watch, h_inode,
++ AuInMask);
++ if (wd >= 0)
++ return 0; /* success */
++
++ err = wd;
++ put_inotify_watch(&hin->hin_watch);
++ au_cache_free_hinotify(hin);
++ hinode->hi_notify = NULL;
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++void au_hin_free(struct au_hinode *hinode)
++{
++ int err;
++ struct au_hinotify *hin;
++
++ AuTraceEnter();
++
++ hin = hinode->hi_notify;
++ if (hin) {
++ err = 0;
++ if (atomic_read(&hin->hin_watch.count))
++ err = inotify_rm_watch(in_handle, &hin->hin_watch);
++ if (unlikely(err))
++ /* it means the watch is already removed */
++ LKTRTrace("failed inotify_rm_watch() %d\n", err);
++ au_cache_free_hinotify(hin);
++ hinode->hi_notify = NULL;
++ }
++}
++
++/* ---------------------------------------------------------------------- */
++
++void au_hin_ctl(struct au_hinode *hinode, const __u32 mask)
++{
++ struct inode *h_inode;
++ struct inotify_watch *watch;
++
++ h_inode = hinode->hi_inode;
++ LKTRTrace("hi%lu, sb %p, 0x%x\n", h_inode->i_ino, h_inode->i_sb, mask);
++ IMustLock(h_inode);
++ if (!hinode->hi_notify)
++ return;
++
++ watch = &hinode->hi_notify->hin_watch;
++#if 0 /* reserved for future use */
++ {
++ u32 wd;
++ wd = inotify_find_update_watch(in_handle, h_inode, mask);
++ AuTraceErr(wd);
++ /* ignore an err; */
++ }
++#else
++ /* struct inotify_handle is hidden */
++ mutex_lock(&h_inode->inotify_mutex);
++ /* mutex_lock(&watch->ih->mutex); */
++ watch->mask = mask;
++ /* mutex_unlock(&watch->ih->mutex); */
++ mutex_unlock(&h_inode->inotify_mutex);
++#endif
++ LKTRTrace("watch %p, mask %u\n", watch, watch->mask);
++}
++
++void au_reset_hinotify(struct inode *inode, unsigned int flags)
++{
++ aufs_bindex_t bindex, bend;
++ struct inode *hi;
++ struct dentry *iwhdentry;
++
++ LKTRTrace("i%lu, 0x%x\n", inode->i_ino, flags);
++
++ bend = au_ibend(inode);
++ for (bindex = au_ibstart(inode); bindex <= bend; bindex++) {
++ hi = au_h_iptr(inode, bindex);
++ if (hi) {
++ //vfsub_i_lock_nested(hi, AuLsc_I_CHILD);
++ iwhdentry = au_hi_wh(inode, bindex);
++ if (iwhdentry)
++ dget(iwhdentry);
++ au_igrab(hi);
++ au_set_h_iptr(inode, bindex, NULL, 0);
++ au_set_h_iptr(inode, bindex, au_igrab(hi),
++ flags & ~AuHi_XINO);
++ iput(hi);
++ dput(iwhdentry);
++ //vfsub_i_unlock(hi);
++ }
++ }
++}
++
++/* ---------------------------------------------------------------------- */
++
++void au_unpin_gp(struct au_pin *args)
++{
++ struct au_pin1 *gp;
++
++ gp = au_pin_gp(args);
++ AuDebugOn(!gp);
++ if (gp->dentry)
++ LKTRTrace("%.*s\n", AuDLNPair(gp->dentry));
++ else
++ AuTraceEnter();
++
++ au_do_unpin(gp, NULL);
++}
++
++int au_hin_verify_gen(struct dentry *dentry)
++{
++ struct super_block *sb = dentry->d_sb;
++ au_gen_t sigen;
++ struct inode *inode;
++
++ if (!au_opt_test(au_mntflags(sb), UDBA_INOTIFY))
++ return 0;
++
++ sigen = au_sigen(dentry->d_sb);
++ inode = dentry->d_inode;
++ return au_digen(dentry) != sigen
++ || (inode && au_iigen(inode) != sigen);
++}
++
++/* ---------------------------------------------------------------------- */
++
++/* cf. fsnotify_change() */
++__u32 vfsub_events_notify_change(struct iattr *ia)
++{
++ __u32 events;
++ const unsigned int amtime = (ATTR_ATIME | ATTR_MTIME);
++
++ events = 0;
++ if ((ia->ia_valid & (ATTR_UID | ATTR_GID | ATTR_MODE))
++ || (ia->ia_valid & amtime) == amtime)
++ events |= IN_ATTRIB;
++ if ((ia->ia_valid & ATTR_SIZE)
++ || (ia->ia_valid & amtime) == ATTR_MTIME)
++ events |= IN_MODIFY;
++ return events;
++}
++
++void vfsub_ign_hinode(struct vfsub_args *vargs, __u32 events,
++ struct au_hinode *hinode)
++{
++ struct au_hinotify *hin;
++ struct super_block *sb;
++ struct au_hin_ignore *ign;
++
++ if (!hinode)
++ return;
++
++ hin = hinode->hi_notify;
++ if (!hin || !hin->hin_watch.mask)
++ return;
++
++ sb = hin->hin_aufs_inode->i_sb;
++ AuDebugOn(!au_opt_test(au_mntflags(sb), UDBA_INOTIFY));
++
++ ign = vargs->ignore + vargs->nignore++;
++ ign->ign_events = events;
++ ign->ign_handled = 0;
++ ign->ign_hinode = hinode;
++
++ {
++ struct inode *h_inode;
++ h_inode = hinode->hi_inode;
++ if (vfsub_i_trylock(h_inode))
++ au_dbg_blocked();
++ IMustLock(h_inode);
++ }
++}
++
++static void au_hin_ignore(struct au_hin_ignore *ign)
++{
++ struct au_hinode *hinode;
++ __u32 events;
++ struct au_hinotify *hin;
++ struct inode *h_inode;
++
++ hinode = ign->ign_hinode;
++ events = ign->ign_events;
++ LKTRTrace("0x%x\n", events);
++ AuDebugOn(!hinode || !events);
++
++ hin = hinode->hi_notify;
++ h_inode = hinode->hi_inode;
++ if (h_inode && hin) {
++ LKTRTrace("hi%lu\n", h_inode->i_ino);
++#ifdef DbgInotify
++ AuDbg("hi%lu, 0x%x\n", h_inode->i_ino, events);
++#endif
++
++ au_spl_add(&ign->ign_list, &hin->hin_ignore);
++ /* AuDbg("list_add %p, 0x%x\n", ign, events); */
++ }
++#if 1 /* todo: test dlgt */
++ else
++ /*
++ * it may happen by this scenario.
++ * - a file and its parent dir exist on two branches
++ * - a file on the upper branch is opened
++ * - the parent dir and the file are removed by udba
++ * - the parent is re-accessed, and new dentry/inode in
++ * aufs is generated for it, based upon the one on the lower
++ * branch
++ * - the opened file is re-accessed, re-validated, and it may be
++ * re-connected to the new parent dentry
++ * it means the file in aufs cannot get the actual removed
++ * parent dir on the branch.
++ */
++ INIT_LIST_HEAD(&ign->ign_list);
++#endif
++}
++
++static void au_hin_unignore(struct au_hin_ignore *ign)
++{
++ struct au_hinode *hinode;
++ __u32 events;
++ struct au_hinotify *hin;
++ struct inode *h_inode;
++
++ hinode = ign->ign_hinode;
++ events = ign->ign_events;
++ LKTRTrace("0x%x\n", events);
++ /* AuDbg("0x%x\n", events); */
++ AuDebugOn(!hinode || !events);
++
++ hin = hinode->hi_notify;
++ h_inode = hinode->hi_inode;
++ if (!h_inode || !hin)
++ return;
++ LKTRTrace("hi%lu\n", h_inode->i_ino);
++#ifdef DbgInotify
++ AuDbg("hi%lu, 0x%x\n", h_inode->i_ino, events);
++#endif
++
++ spin_lock(&hin->hin_ignore.spin);
++ au_hin_list_del(&ign->ign_list);
++ spin_unlock(&hin->hin_ignore.spin);
++ /* AuDbg("list_del %p, 0x%x\n", ign, events); */
++}
++
++static int au_hin_test_ignore(u32 mask, struct au_hinotify *hin)
++{
++ int do_ignore;
++ u32 events;
++ struct au_hin_ignore *ign, *tmp;
++ struct list_head *head;
++
++ do_ignore = 0;
++ head = &hin->hin_ignore.head;
++ spin_lock(&hin->hin_ignore.spin);
++ list_for_each_entry_safe(ign, tmp, head, ign_list) {
++ /* AuDbg("ign %p\n", ign); */
++ if (ign->ign_pid == current->pid) {
++ events = (mask & ign->ign_events);
++ if (events) {
++ do_ignore = 1;
++ ign->ign_handled |= events;
++ if (ign->ign_events == ign->ign_handled) {
++ list_del_init(&ign->ign_list);
++ /*
++ AuDbg("list_del %p, 0x%x\n",
++ ign, events);
++ */
++ }
++ break;
++ }
++ }
++ }
++ spin_unlock(&hin->hin_ignore.spin);
++
++ return do_ignore;
++}
++
++void vfsub_ignore(struct vfsub_args *vargs)
++{
++ int n;
++ struct au_hin_ignore *ign;
++ struct super_block *sb;
++ struct au_hinode *hinode;
++ struct inode *h_inode;
++
++ n = vargs->nignore;
++ if (!n)
++ return;
++
++ ign = vargs->ignore;
++ hinode = ign->ign_hinode;
++ sb = hinode->hi_notify->hin_aufs_inode->i_sb;
++ h_inode = hinode->hi_inode;
++ if (au_opt_test(au_mntflags(sb), UDBA_INOTIFY)) {
++ if (vfsub_i_trylock(h_inode))
++ au_dbg_blocked();
++ IMustLock(h_inode);
++ }
++ while (n-- > 0) {
++ ign->ign_pid = current->pid;
++ au_hin_ignore(ign++);
++ }
++}
++
++void vfsub_unignore(struct vfsub_args *vargs)
++{
++ int n;
++ struct au_hin_ignore *ign;
++
++ n = vargs->nignore;
++ if (!n)
++ return;
++
++ ign = vargs->ignore;
++ while (n-- > 0)
++ au_hin_unignore(ign++);
++}
++
++#ifdef CONFIG_AUFS_DEBUG
++void au_dbg_hin_list(struct vfsub_args *vargs)
++{
++ int n;
++ struct au_hin_ignore *ign;
++
++ n = vargs->nignore;
++ if (!n)
++ return;
++
++ ign = vargs->ignore;
++ while (n-- > 0) {
++ /* AuDebugOn(!list_empty(&ign++->ign_list)); */
++ if (list_empty(&ign++->ign_list))
++ continue;
++ ign--;
++ AuDbg("%d: pid %d, 0x%x\n",
++ n + 1, ign->ign_pid, ign->ign_events);
++ au_hin_unignore(ign);
++ ign++;
++ au_dbg_blocked();
++ }
++}
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++static char *in_name(u32 mask)
++{
++#ifdef CONFIG_AUFS_DEBUG
++#define test_ret(flag) if (mask & flag) \
++ return #flag;
++ test_ret(IN_ACCESS);
++ test_ret(IN_MODIFY);
++ test_ret(IN_ATTRIB);
++ test_ret(IN_CLOSE_WRITE);
++ test_ret(IN_CLOSE_NOWRITE);
++ test_ret(IN_OPEN);
++ test_ret(IN_MOVED_FROM);
++ test_ret(IN_MOVED_TO);
++ test_ret(IN_CREATE);
++ test_ret(IN_DELETE);
++ test_ret(IN_DELETE_SELF);
++ test_ret(IN_MOVE_SELF);
++ test_ret(IN_UNMOUNT);
++ test_ret(IN_Q_OVERFLOW);
++ test_ret(IN_IGNORED);
++ return "";
++#undef test_ret
++#else
++ return "??";
++#endif
++}
++
++/* ---------------------------------------------------------------------- */
++
++static struct dentry *lookup_wlock_by_name(char *name, unsigned int nlen,
++ struct inode *dir)
++{
++ struct dentry *dentry, *d, *parent;
++ struct qstr *dname;
++
++ LKTRTrace("%.*s, dir%lu\n", nlen, name, dir->i_ino);
++
++ parent = d_find_alias(dir);
++ if (!parent)
++ return NULL;
++
++ dentry = NULL;
++ spin_lock(&dcache_lock);
++ list_for_each_entry(d, &parent->d_subdirs, d_u.d_child) {
++ LKTRTrace("%.*s\n", AuDLNPair(d));
++ dname = &d->d_name;
++ if (dname->len != nlen || memcmp(dname->name, name, nlen))
++ continue;
++ if (!atomic_read(&d->d_count) || !d->d_fsdata) {
++ spin_lock(&d->d_lock);
++ __d_drop(d);
++ spin_unlock(&d->d_lock);
++ continue;
++ }
++
++ dentry = dget(d);
++ break;
++ }
++ spin_unlock(&dcache_lock);
++ dput(parent);
++
++ if (dentry) {
++#if 0
++ lktr_set_pid(current->pid, LktrArrayPid);
++ AuDbgDentry(dentry);
++ lktr_clear_pid(current->pid, LktrArrayPid);
++#endif
++ di_write_lock_child(dentry);
++ }
++ return dentry;
++}
++
++static struct inode *lookup_wlock_by_ino(struct super_block *sb,
++ aufs_bindex_t bindex, ino_t h_ino)
++{
++ struct inode *inode;
++ struct au_xino_entry xinoe;
++ int err;
++
++ LKTRTrace("b%d, hi%lu\n", bindex, (unsigned long)h_ino);
++ AuDebugOn(!au_opt_test_xino(au_mntflags(sb)));
++
++ inode = NULL;
++ err = au_xino_read(sb, bindex, h_ino, &xinoe);
++ if (!err && xinoe.ino)
++ inode = ilookup(sb, xinoe.ino);
++ if (!inode)
++ goto out;
++ if (unlikely(inode->i_ino == AUFS_ROOT_INO)) {
++ AuWarn("wrong root branch\n");
++ iput(inode);
++ inode = NULL;
++ goto out;
++ }
++
++ ii_write_lock_child(inode);
++
++ out:
++ return inode;
++}
++
++static int hin_xino(struct inode *inode, struct inode *h_inode)
++{
++ int err;
++ aufs_bindex_t bindex, bend, bfound, bstart;
++ struct inode *h_i;
++
++ LKTRTrace("i%lu, hi%lu\n", inode->i_ino, h_inode->i_ino);
++
++ err = 0;
++ if (unlikely(inode->i_ino == AUFS_ROOT_INO)) {
++ AuWarn("branch root dir was changed\n");
++ goto out;
++ }
++
++ bfound = -1;
++ bend = au_ibend(inode);
++ bstart = au_ibstart(inode);
++#if 0 /* reserved for future use */
++ if (bindex == bend) {
++ /* keep this ino in rename case */
++ goto out;
++ }
++#endif
++ for (bindex = bstart; bindex <= bend; bindex++) {
++ if (au_h_iptr(inode, bindex) == h_inode) {
++ bfound = bindex;
++ break;
++ }
++ }
++ if (bfound < 0)
++ goto out;
++
++ for (bindex = bstart; bindex <= bend; bindex++) {
++ h_i = au_h_iptr(inode, bindex);
++ if (h_i)
++ err = au_xino_write0(inode->i_sb, bindex, h_i->i_ino,
++ 0);
++ /* ignore this error */
++ /* bad action? */
++ }
++
++ /* children inode number will be broken */
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++static int hin_gen_tree(struct dentry *dentry)
++{
++ int err, i, j, ndentry;
++ struct au_dcsub_pages dpages;
++ struct au_dpage *dpage;
++ struct dentry **dentries;
++
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++
++ err = au_dpages_init(&dpages, GFP_NOFS);
++ if (unlikely(err))
++ goto out;
++ err = au_dcsub_pages(&dpages, dentry, NULL, NULL);
++ if (unlikely(err))
++ goto out_dpages;
++
++ for (i = 0; i < dpages.ndpage; i++) {
++ dpage = dpages.dpages + i;
++ dentries = dpage->dentries;
++ ndentry = dpage->ndentry;
++ for (j = 0; j < ndentry; j++) {
++ struct dentry *d;
++ d = dentries[j];
++ LKTRTrace("%.*s\n", AuDLNPair(d));
++ if (IS_ROOT(d))
++ continue;
++
++ d_drop(d);
++ au_digen_dec(d);
++ if (d->d_inode)
++ /* todo: reset children xino?
++ cached children only? */
++ au_iigen_dec(d->d_inode);
++ }
++ }
++
++ out_dpages:
++ au_dpages_free(&dpages);
++
++ /* discard children */
++ dentry_unhash(dentry);
++ dput(dentry);
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/*
++ * return 0 if processed.
++ */
++static int hin_gen_by_inode(char *name, unsigned int nlen, struct inode *inode,
++ const unsigned int isdir)
++{
++ int err;
++ struct dentry *d;
++ struct qstr *dname;
++
++ LKTRTrace("%.*s, i%lu\n", nlen, name, inode->i_ino);
++
++ err = 1;
++ if (unlikely(inode->i_ino == AUFS_ROOT_INO)) {
++ AuWarn("branch root dir was changed\n");
++ err = 0;
++ goto out;
++ }
++
++ if (!isdir) {
++ AuDebugOn(!name);
++ au_iigen_dec(inode);
++ spin_lock(&dcache_lock);
++ list_for_each_entry(d, &inode->i_dentry, d_alias) {
++ dname = &d->d_name;
++ if (dname->len != nlen
++ && memcmp(dname->name, name, nlen))
++ continue;
++ err = 0;
++ spin_lock(&d->d_lock);
++ __d_drop(d);
++ au_digen_dec(d);
++ spin_unlock(&d->d_lock);
++ break;
++ }
++ spin_unlock(&dcache_lock);
++ } else {
++ au_fset_si(au_sbi(inode->i_sb), FAILED_REFRESH_DIRS);
++ d = d_find_alias(inode);
++ if (!d) {
++ au_iigen_dec(inode);
++ goto out;
++ }
++
++ dname = &d->d_name;
++ if (dname->len == nlen && !memcmp(dname->name, name, nlen))
++ err = hin_gen_tree(d);
++ dput(d);
++ }
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++static int hin_gen_by_name(struct dentry *dentry, const unsigned int isdir)
++{
++ int err;
++ struct inode *inode;
++
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++
++ inode = dentry->d_inode;
++ if (IS_ROOT(dentry)
++ /* || (inode && inode->i_ino == AUFS_ROOT_INO) */
++ ) {
++ AuWarn("branch root dir was changed\n");
++ return 0;
++ }
++
++ err = 0;
++ if (!isdir) {
++ d_drop(dentry);
++ au_digen_dec(dentry);
++ if (inode)
++ au_iigen_dec(inode);
++ } else {
++ au_fset_si(au_sbi(dentry->d_sb), FAILED_REFRESH_DIRS);
++ if (inode)
++ err = hin_gen_tree(dentry);
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++static void hin_attr(struct inode *inode, struct inode *h_inode)
++{
++ struct dentry *h_dentry;
++
++ LKTRTrace("i%lu, hi%lu\n", inode->i_ino, h_inode->i_ino);
++
++ if (au_h_iptr(inode, au_ibstart(inode)) != h_inode)
++ return;
++
++ h_dentry = d_find_alias(h_inode);
++ if (h_dentry) {
++ au_update_fuse_h_inode(NULL, h_dentry);
++ /* ignore an error*/
++ dput(h_dentry);
++ }
++
++ au_cpup_attr_all(inode, /*force*/1);
++}
++
++/* ---------------------------------------------------------------------- */
++
++/* hinotify job flags */
++#define AuHinJob_XINO0 1
++#define AuHinJob_GEN (1 << 1)
++#define AuHinJob_DIRENT (1 << 2)
++#define AuHinJob_ATTR (1 << 3)
++#define AuHinJob_ISDIR (1 << 4)
++#define AuHinJob_TRYXINO0 (1 << 5)
++#define AuHinJob_MNTPNT (1 << 6)
++#define au_ftest_hinjob(flags, name) ((flags) & AuHinJob_##name)
++#define au_fset_hinjob(flags, name) { (flags) |= AuHinJob_##name; }
++#define au_fclr_hinjob(flags, name) { (flags) &= ~AuHinJob_##name; }
++
++struct hin_job_args {
++ unsigned int flags;
++ struct inode *inode, *h_inode, *dir, *h_dir;
++ struct dentry *dentry;
++ char *h_name;
++ int h_nlen;
++};
++
++static int hin_job(struct hin_job_args *a)
++{
++ const unsigned int isdir = au_ftest_hinjob(a->flags, ISDIR);
++
++ /* reset xino */
++ if (au_ftest_hinjob(a->flags, XINO0) && a->inode)
++ hin_xino(a->inode, a->h_inode);
++ /* ignore this error */
++
++ if (au_ftest_hinjob(a->flags, TRYXINO0)
++ && a->inode
++ && a->h_inode) {
++ vfsub_i_lock_nested(a->h_inode, AuLsc_I_CHILD);
++ if (!a->h_inode->i_nlink)
++ hin_xino(a->inode, a->h_inode);
++ /* ignore this error */
++ vfsub_i_unlock(a->h_inode);
++ }
++
++ /* make the generation obsolete */
++ if (au_ftest_hinjob(a->flags, GEN)) {
++ int err = -1;
++ if (a->inode)
++ err = hin_gen_by_inode(a->h_name, a->h_nlen, a->inode,
++ isdir);
++ if (err && a->dentry)
++ hin_gen_by_name(a->dentry, isdir);
++ /* ignore this error */
++ }
++
++ /* make dir entries obsolete */
++ if (au_ftest_hinjob(a->flags, DIRENT) && a->inode) {
++ struct au_vdir *vdir;
++ IiMustWriteLock(a->inode);
++ vdir = au_ivdir(a->inode);
++ if (vdir)
++ vdir->vd_jiffy = 0;
++ /* IMustLock(a->inode); */
++ /* a->inode->i_version++; */
++ }
++
++ /* update the attr */
++ if (au_ftest_hinjob(a->flags, ATTR) && a->inode && a->h_inode) {
++ mutex_lock_nested(&a->h_inode->i_mutex, AuLsc_I_CHILD);
++ hin_attr(a->inode, a->h_inode);
++ mutex_unlock(&a->h_inode->i_mutex);
++ }
++
++ /* can do nothing but warn */
++ if (au_ftest_hinjob(a->flags, MNTPNT)
++ && a->dentry
++ && d_mountpoint(a->dentry))
++ AuWarn("mount-point %.*s is removed or renamed\n",
++ AuDLNPair(a->dentry));
++
++ return 0;
++}
++
++/* ---------------------------------------------------------------------- */
++
++enum { CHILD, PARENT };
++struct postproc_args {
++ struct inode *h_dir, *dir, *h_child_inode;
++ u32 mask;
++ unsigned int flags[2];
++ unsigned int h_child_nlen;
++ char h_child_name[];
++};
++
++static void postproc(void *_args)
++{
++ struct postproc_args *a = _args;
++ struct super_block *sb;
++ aufs_bindex_t bindex, bend, bfound;
++ unsigned char xino, try_iput;
++ int err;
++ struct inode *inode;
++ ino_t h_ino;
++ struct hin_job_args args;
++ struct dentry *dentry;
++ struct au_sbinfo *sbinfo;
++
++ AuDebugOn(!_args);
++ AuDebugOn(!a->h_dir);
++ AuDebugOn(!a->dir);
++ AuDebugOn(!a->mask);
++ LKTRTrace("mask 0x%x %s, i%lu, hi%lu, hci%lu\n",
++ a->mask, in_name(a->mask), a->dir->i_ino, a->h_dir->i_ino,
++ a->h_child_inode ? a->h_child_inode->i_ino : 0);
++
++ inode = NULL;
++ dentry = NULL;
++ /*
++ * do not lock a->dir->i_mutex here
++ * because of d_revalidate() may cause a deadlock.
++ */
++#if 0
++ /*
++ * just wait for the dir becoming non-busy.
++ * for instance, prevent NFSD lookup from "nlink == 0" message.
++ * but it is not guranteed.
++ */
++ mutex_lock(&a->dir->i_mutex);
++ mutex_unlock(&a->dir->i_mutex);
++#endif
++
++ sb = a->dir->i_sb;
++ AuDebugOn(!sb);
++ sbinfo = au_sbi(sb);
++ AuDebugOn(!sbinfo);
++ /* big aufs lock */
++ si_noflush_write_lock(sb);
++
++ ii_read_lock_parent(a->dir);
++ bfound = -1;
++ bend = au_ibend(a->dir);
++ for (bindex = au_ibstart(a->dir); bindex <= bend; bindex++)
++ if (au_h_iptr(a->dir, bindex) == a->h_dir) {
++ bfound = bindex;
++ break;
++ }
++ ii_read_unlock(a->dir);
++ if (unlikely(bfound < 0))
++ goto out;
++
++ xino = !!au_opt_test_xino(au_mntflags(sb));
++ h_ino = 0;
++ if (a->h_child_inode)
++ h_ino = a->h_child_inode->i_ino;
++
++ if (a->h_child_nlen
++ && (au_ftest_hinjob(a->flags[CHILD], GEN)
++ || au_ftest_hinjob(a->flags[CHILD], MNTPNT)))
++ dentry = lookup_wlock_by_name(a->h_child_name, a->h_child_nlen,
++ a->dir);
++ try_iput = 0;
++ if (dentry)
++ inode = dentry->d_inode;
++ if (xino && !inode && h_ino
++ && (au_ftest_hinjob(a->flags[CHILD], XINO0)
++ || au_ftest_hinjob(a->flags[CHILD], TRYXINO0)
++ || au_ftest_hinjob(a->flags[CHILD], GEN)
++ || au_ftest_hinjob(a->flags[CHILD], ATTR))) {
++ inode = lookup_wlock_by_ino(sb, bfound, h_ino);
++ try_iput = 1;
++ }
++
++ args.flags = a->flags[CHILD];
++ args.dentry = dentry;
++ args.inode = inode;
++ args.h_inode = a->h_child_inode;
++ args.dir = a->dir;
++ args.h_dir = a->h_dir;
++ args.h_name = a->h_child_name;
++ args.h_nlen = a->h_child_nlen;
++ err = hin_job(&args);
++ if (dentry) {
++ if (dentry->d_fsdata)
++ di_write_unlock(dentry);
++ dput(dentry);
++ }
++ if (inode && try_iput) {
++ ii_write_unlock(inode);
++ iput(inode);
++ }
++
++ ii_write_lock_parent(a->dir);
++ args.flags = a->flags[PARENT];
++ args.dentry = NULL;
++ args.inode = a->dir;
++ args.h_inode = a->h_dir;
++ args.dir = NULL;
++ args.h_dir = NULL;
++ args.h_name = NULL;
++ args.h_nlen = 0;
++ err = hin_job(&args);
++ ii_write_unlock(a->dir);
++
++ out:
++ au_nwt_done(&sbinfo->si_nowait);
++ si_write_unlock(sb);
++
++ iput(a->h_child_inode);
++ iput(a->h_dir);
++ iput(a->dir);
++ kfree(a);
++}
++
++static void aufs_inotify(struct inotify_watch *watch, u32 wd, u32 mask,
++ u32 cookie, const char *h_child_name,
++ struct inode *h_child_inode)
++{
++ struct au_hinotify *hinotify;
++ struct postproc_args *args;
++ int len, wkq_err;
++ unsigned char isdir, isroot, wh;
++ char *p;
++ struct inode *dir;
++ unsigned int flags[2];
++
++ LKTRTrace("i%lu, wd %d, mask 0x%x %s, cookie 0x%x, hcname %s, hi%lu\n",
++ watch->inode->i_ino, wd, mask, in_name(mask), cookie,
++ h_child_name ? h_child_name : "",
++ h_child_inode ? h_child_inode->i_ino : 0);
++
++ /* if IN_UNMOUNT happens, there must be another bug */
++ if (mask & (IN_IGNORED | IN_UNMOUNT)) {
++ put_inotify_watch(watch);
++ return;
++ }
++
++#ifdef DbgInotify
++ if (!h_child_name || strcmp(h_child_name, AUFS_XINO_FNAME))
++ AuDbg("i%lu, wd %d, mask 0x%x %s, cookie 0x%x, hcname %s,"
++ " hi%lu\n",
++ watch->inode->i_ino, wd, mask, in_name(mask), cookie,
++ h_child_name ? h_child_name : "",
++ h_child_inode ? h_child_inode->i_ino : 0);
++#endif
++
++ hinotify = container_of(watch, struct au_hinotify, hin_watch);
++ AuDebugOn(!hinotify || !hinotify->hin_aufs_inode);
++ if (au_hin_test_ignore(mask, hinotify)) {
++#ifdef DbgInotify
++ AuDbg("ignored\n");
++#endif
++ return;
++ }
++#if 0 /* tmp debug */
++ if (h_child_name && !strcmp(h_child_name, AUFS_XINO_FNAME)) {
++ AuDbg("i%lu, wd %d, mask 0x%x %s, cookie 0x%x, hcname %s, hi%lu\n",
++ watch->inode->i_ino, wd, mask, in_name(mask), cookie,
++ h_child_name ? h_child_name : "",
++ h_child_inode ? h_child_inode->i_ino : 0);
++ //au_dbg_blocked();
++ }
++#endif
++
++ dir = igrab(hinotify->hin_aufs_inode);
++ if (!dir)
++ return;
++ isroot = (dir->i_ino == AUFS_ROOT_INO);
++ len = 0;
++ wh = 0;
++ if (h_child_name) {
++ len = strlen(h_child_name);
++ if (!memcmp(h_child_name, AUFS_WH_PFX, AUFS_WH_PFX_LEN)) {
++ h_child_name += AUFS_WH_PFX_LEN;
++ len -= AUFS_WH_PFX_LEN;
++ wh = 1;
++ }
++ }
++
++ isdir = 0;
++ if (h_child_inode)
++ isdir = !!S_ISDIR(h_child_inode->i_mode);
++ flags[PARENT] = AuHinJob_ISDIR;
++ flags[CHILD] = 0;
++ if (isdir)
++ flags[CHILD] = AuHinJob_ISDIR;
++ switch (mask & IN_ALL_EVENTS) {
++ case IN_MODIFY:
++ /*FALLTHROUGH*/
++ case IN_ATTRIB:
++ if (h_child_inode) {
++ if (!wh)
++ au_fset_hinjob(flags[CHILD], ATTR);
++ } else
++ au_fset_hinjob(flags[PARENT], ATTR);
++ break;
++
++ /* IN_MOVED_FROM is the first event in rename(2) */
++ case IN_MOVED_FROM:
++ case IN_MOVED_TO:
++ AuDebugOn(!h_child_name || !h_child_inode);
++ au_fset_hinjob(flags[CHILD], GEN);
++ au_fset_hinjob(flags[CHILD], ATTR);
++ if (1 || isdir)
++ au_fset_hinjob(flags[CHILD], XINO0);
++ au_fset_hinjob(flags[CHILD], MNTPNT);
++
++ au_fset_hinjob(flags[PARENT], ATTR);
++ au_fset_hinjob(flags[PARENT], DIRENT);
++ break;
++
++ case IN_CREATE:
++ AuDebugOn(!h_child_name || !h_child_inode);
++ au_fset_hinjob(flags[PARENT], ATTR);
++ au_fset_hinjob(flags[PARENT], DIRENT);
++ au_fset_hinjob(flags[CHILD], GEN);
++ /* hard link */
++ if (!isdir && h_child_inode->i_nlink > 1)
++ au_fset_hinjob(flags[CHILD], ATTR);
++ break;
++
++ case IN_DELETE:
++ /*
++ * aufs never be able to get this child inode.
++ * revalidation should be in d_revalidate()
++ * by checking i_nlink, i_generation or d_unhashed().
++ */
++ AuDebugOn(!h_child_name);
++ au_fset_hinjob(flags[PARENT], ATTR);
++ au_fset_hinjob(flags[PARENT], DIRENT);
++ au_fset_hinjob(flags[CHILD], GEN);
++ au_fset_hinjob(flags[CHILD], TRYXINO0);
++ au_fset_hinjob(flags[CHILD], MNTPNT);
++ break;
++
++ case IN_DELETE_SELF:
++#if 0
++ if (!isroot)
++ au_fset_hinjob(flags[PARENT], GEN);
++ /*FALLTHROUGH*/
++#endif
++
++ case IN_MOVE_SELF:
++#if 0
++ /*
++ * when an inotify is set to an aufs inode,
++ * such inode can be isolated and this event can be fired
++ * solely.
++ */
++ AuDebugOn(h_child_name || h_child_inode);
++ if (unlikely(isroot)) {
++ AuWarn("root branch was moved\n");
++ iput(dir);
++ return;
++ }
++ au_fset_hinjob(flags[PARENT], XINO0);
++ au_fset_hinjob(flags[PARENT], GEN);
++ au_fset_hinjob(flags[PARENT], ATTR);
++ au_fset_hinjob(flags[PARENT], DIRENT);
++ /* au_fset_hinjob(flags[PARENT], MNTPNT); */
++ break;
++#endif
++
++ case IN_ACCESS:
++ default:
++ AuDebugOn(1);
++ }
++
++ if (wh)
++ h_child_inode = NULL;
++
++ /* iput() and kfree() will be called in postproc() */
++ /*
++ * inotify_mutex is already acquired and kmalloc/prune_icache may lock
++ * iprune_mutex. strange.
++ */
++ lockdep_off();
++ args = kmalloc(sizeof(*args) + len + 1, GFP_NOFS);
++ lockdep_on();
++ if (unlikely(!args)) {
++ AuErr1("no memory\n");
++ iput(dir);
++ return;
++ }
++ args->flags[PARENT] = flags[PARENT];
++ args->flags[CHILD] = flags[CHILD];
++ args->mask = mask;
++ args->dir = dir;
++ args->h_dir = igrab(watch->inode);
++ if (h_child_inode)
++ h_child_inode = igrab(h_child_inode); /* can be NULL */
++ args->h_child_inode = h_child_inode;
++ args->h_child_nlen = len;
++ if (len) {
++ p = (void *)args;
++ p += sizeof(*args);
++ memcpy(p, h_child_name, len + 1);
++ }
++
++ lockdep_off();
++ wkq_err = au_wkq_nowait(postproc, args, dir->i_sb, /*dlgt*/0);
++ lockdep_on();
++ if (unlikely(wkq_err))
++ AuErr("wkq %d\n", wkq_err);
++}
++
++static void aufs_inotify_destroy(struct inotify_watch *watch)
++{
++ return;
++}
++
++static struct inotify_operations aufs_inotify_ops = {
++ .handle_event = aufs_inotify,
++ .destroy_watch = aufs_inotify_destroy
++};
++
++/* ---------------------------------------------------------------------- */
++
++static void au_hin_destroy_cache(void)
++{
++ kmem_cache_destroy(au_cachep[AuCache_HINOTIFY]);
++ au_cachep[AuCache_HINOTIFY] = NULL;
++}
++
++int __init au_inotify_init(void)
++{
++ int err;
++
++ err = -ENOMEM;
++ au_cachep[AuCache_HINOTIFY] = AuCache(au_hinotify);
++ if (au_cachep[AuCache_HINOTIFY]) {
++ err = 0;
++ in_handle = inotify_init(&aufs_inotify_ops);
++ if (IS_ERR(in_handle)) {
++ err = PTR_ERR(in_handle);
++ au_hin_destroy_cache();
++ }
++ }
++ AuTraceErr(err);
++ return err;
++}
++
++void au_inotify_fin(void)
++{
++ inotify_destroy(in_handle);
++ if (au_cachep[AuCache_HINOTIFY])
++ au_hin_destroy_cache();
++}
+diff --git a/fs/aufs/i_op.c b/fs/aufs/i_op.c
+new file mode 100644
+index 0000000..3153263
+--- /dev/null
++++ b/fs/aufs/i_op.c
+@@ -0,0 +1,954 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * inode operations (except add/del/rename)
++ *
++ * $Id: i_op.c,v 1.79 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++//#include <linux/fs.h>
++//#include <linux/namei.h>
++#include <linux/mm.h>
++#include "aufs.h"
++
++static int silly_lock(struct inode *inode, struct nameidata *nd)
++{
++ int locked = 0;
++ struct super_block *sb = inode->i_sb;
++
++ LKTRTrace("i%lu, nd %p\n", inode->i_ino, nd);
++
++ if (!nd || !nd->dentry) {
++ si_read_lock(sb, AuLock_FLUSH);
++ ii_read_lock_child(inode);
++ } else if (nd->dentry->d_inode != inode) {
++ locked = 1;
++ /* lock child first, then parent */
++ si_read_lock(sb, AuLock_FLUSH);
++ ii_read_lock_child(inode);
++ di_read_lock_parent(nd->dentry, 0);
++ } else {
++ locked = 2;
++ aufs_read_lock(nd->dentry, AuLock_FLUSH | AuLock_IR);
++ }
++ return locked;
++}
++
++static void silly_unlock(int locked, struct inode *inode, struct nameidata *nd)
++{
++ struct super_block *sb = inode->i_sb;
++
++ LKTRTrace("locked %d, i%lu, nd %p\n", locked, inode->i_ino, nd);
++
++ switch (locked) {
++ case 0:
++ ii_read_unlock(inode);
++ si_read_unlock(sb);
++ break;
++ case 1:
++ di_read_unlock(nd->dentry, 0);
++ ii_read_unlock(inode);
++ si_read_unlock(sb);
++ break;
++ case 2:
++ aufs_read_unlock(nd->dentry, AuLock_FLUSH | AuLock_IR);
++ break;
++ default:
++ BUG();
++ }
++}
++
++static int h_permission(struct inode *h_inode, int mask,
++ struct nameidata *fake_nd, int brperm, int dlgt)
++{
++ int err, submask;
++ const int write_mask = (mask & (MAY_WRITE | MAY_APPEND));
++
++ LKTRTrace("ino %lu, mask 0x%x, brperm 0x%x\n",
++ h_inode->i_ino, mask, brperm);
++
++ err = -EACCES;
++ if ((write_mask && IS_IMMUTABLE(h_inode))
++ || ((mask & MAY_EXEC) && S_ISREG(h_inode->i_mode)
++ && fake_nd && fake_nd->mnt
++ && (fake_nd->mnt->mnt_flags & MNT_NOEXEC)))
++ goto out;
++
++ /*
++ * - skip hidden fs test in the case of write to ro branch.
++ * - nfs dir permission write check is optimized, but a policy for
++ * link/rename requires a real check.
++ */
++ submask = mask & ~MAY_APPEND;
++ if ((write_mask && !au_br_writable(brperm))
++ || (au_test_nfs(h_inode->i_sb) && S_ISDIR(h_inode->i_mode)
++ && write_mask && !(mask & MAY_READ))
++ || !h_inode->i_op
++ || !h_inode->i_op->permission) {
++ /* LKTRLabel(generic_permission); */
++ err = generic_permission(h_inode, submask, NULL);
++ } else {
++ /* LKTRLabel(h_inode->permission); */
++ err = h_inode->i_op->permission(h_inode, submask, fake_nd);
++ AuTraceErr(err);
++ }
++
++#if 1 /* todo: export? */
++ if (!err)
++ err = au_security_inode_permission(h_inode, mask, fake_nd,
++ dlgt);
++#endif
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++static int aufs_permission(struct inode *inode, int mask, struct nameidata *nd)
++{
++ int err;
++ aufs_bindex_t bindex, bend;
++ unsigned char locked, dlgt, do_nd;
++ const unsigned char isdir = S_ISDIR(inode->i_mode);
++ struct inode *h_inode;
++ struct super_block *sb;
++ unsigned int mnt_flags;
++ struct path path;
++ const int write_mask = (mask & (MAY_WRITE | MAY_APPEND));
++
++ LKTRTrace("ino %lu, mask 0x%x, isdir %d, write_mask %d, "
++ "nd %d{%d, %d}\n",
++ inode->i_ino, mask, isdir, write_mask,
++ !!nd, nd ? !!nd->dentry : 0, nd ? !!nd->mnt : 0);
++
++ sb = inode->i_sb;
++ locked = silly_lock(inode, nd);
++ do_nd = (nd && locked >= 1);
++ mnt_flags = au_mntflags(sb);
++ dlgt = !!au_test_dlgt(mnt_flags);
++
++ if (!isdir || write_mask || au_test_dirperm1(mnt_flags)) {
++ h_inode = au_h_iptr(inode, au_ibstart(inode));
++ AuDebugOn(!h_inode
++ || ((h_inode->i_mode & S_IFMT)
++ != (inode->i_mode & S_IFMT)));
++ err = 0;
++ bindex = au_ibstart(inode);
++ LKTRTrace("b%d\n", bindex);
++ if (do_nd) {
++ path.mnt = nd->mnt;
++ path.dentry = nd->dentry;
++ nd->mnt = mntget(au_sbr_mnt(sb, bindex));
++ nd->dentry = dget(au_h_dptr(nd->dentry, bindex));
++ err = h_permission(h_inode, mask, nd,
++ au_sbr_perm(sb, bindex), dlgt);
++ path_release(nd);
++ nd->mnt = path.mnt;
++ nd->dentry = path.dentry;
++ } else {
++ AuDebugOn(nd && nd->mnt);
++ err = h_permission(h_inode, mask, nd,
++ au_sbr_perm(sb, bindex), dlgt);
++ }
++
++ if (write_mask && !err) {
++ /* test whether the upper writable branch exists */
++ err = -EROFS;
++ for (; bindex >= 0; bindex--)
++ if (!au_br_rdonly(au_sbr(sb, bindex))) {
++ err = 0;
++ break;
++ }
++ }
++ goto out;
++ }
++
++ /* non-write to dir */
++ if (do_nd) {
++ path.mnt = nd->mnt;
++ path.dentry = nd->dentry;
++ } else {
++ path.mnt = NULL;
++ path.dentry = NULL;
++ }
++ err = 0;
++ bend = au_ibend(inode);
++ for (bindex = au_ibstart(inode); !err && bindex <= bend; bindex++) {
++ h_inode = au_h_iptr(inode, bindex);
++ if (!h_inode)
++ continue;
++ AuDebugOn(!S_ISDIR(h_inode->i_mode));
++
++ LKTRTrace("b%d\n", bindex);
++ if (do_nd) {
++ nd->mnt = mntget(au_sbr_mnt(sb, bindex));
++ nd->dentry = dget(au_h_dptr(path.dentry, bindex));
++ err = h_permission(h_inode, mask, nd,
++ au_sbr_perm(sb, bindex), dlgt);
++ path_release(nd);
++ } else {
++ AuDebugOn(nd && nd->mnt);
++ err = h_permission(h_inode, mask, nd,
++ au_sbr_perm(sb, bindex), dlgt);
++ }
++ }
++ if (do_nd) {
++ nd->mnt = path.mnt;
++ nd->dentry = path.dentry;
++ }
++
++ out:
++ silly_unlock(locked, inode, nd);
++ AuTraceErr(err);
++ if (unlikely(err == -EBUSY && au_test_nfsd(current)))
++ err = -ESTALE;
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++static struct dentry *aufs_lookup(struct inode *dir, struct dentry *dentry,
++ struct nameidata *nd)
++{
++ struct dentry *ret, *parent;
++ int err, npositive;
++ struct inode *inode, *h_inode;
++ struct nameidata tmp_nd, *ndp;
++ aufs_bindex_t bstart;
++ struct mutex *mtx;
++ struct super_block *sb;
++
++ LKTRTrace("dir %lu, %.*s, nd{0x%x}\n",
++ dir->i_ino, AuDLNPair(dentry), nd ? nd->flags : 0);
++ AuDebugOn(IS_ROOT(dentry));
++ IMustLock(dir);
++
++ sb = dir->i_sb;
++ si_read_lock(sb, AuLock_FLUSH);
++ err = au_alloc_dinfo(dentry);
++ ret = ERR_PTR(err);
++ if (unlikely(err))
++ goto out;
++
++ /* nd can be NULL */
++ ndp = au_dup_nd(au_sbi(sb), &tmp_nd, nd);
++ parent = dentry->d_parent; /* dir inode is locked */
++ di_read_lock_parent(parent, AuLock_IR);
++ npositive = au_lkup_dentry(dentry, au_dbstart(parent), /*type*/0, ndp);
++ di_read_unlock(parent, AuLock_IR);
++ err = npositive;
++ ret = ERR_PTR(err);
++ if (unlikely(err < 0))
++ goto out_unlock;
++
++ inode = NULL;
++ if (npositive) {
++ bstart = au_dbstart(dentry);
++ h_inode = au_h_dptr(dentry, bstart)->d_inode;
++ AuDebugOn(!h_inode);
++ if (!S_ISDIR(h_inode->i_mode)) {
++ /*
++ * stop 'race'-ing between hardlinks under different
++ * parents.
++ */
++ mtx = &au_sbr(sb, bstart)->br_xino.xi_nondir_mtx;
++ mutex_lock(mtx);
++ inode = au_new_inode(dentry, /*must_new*/0);
++ mutex_unlock(mtx);
++ } else
++ inode = au_new_inode(dentry, /*must_new*/0);
++ ret = (void *)inode;
++ }
++ if (!IS_ERR(inode)) {
++ ret = d_splice_alias(inode, dentry);
++ if (unlikely(IS_ERR(ret) && inode))
++ ii_write_unlock(inode);
++ AuDebugOn(nd
++ && (nd->flags & LOOKUP_OPEN)
++ && nd->intent.open.file
++ && nd->intent.open.file->f_dentry);
++ au_store_fmode_exec(nd, inode);
++ }
++
++ out_unlock:
++ di_write_unlock(dentry);
++ out:
++ si_read_unlock(sb);
++ AuTraceErrPtr(ret);
++ if (unlikely(err == -EBUSY && au_test_nfsd(current)))
++ err = -ESTALE;
++ return ret;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/*
++ * decide the branch and the parent dir where we will create a new entry.
++ * returns new bindex or an error.
++ * copyup the parent dir if needed.
++ */
++int au_wr_dir(struct dentry *dentry, struct dentry *src_dentry,
++ struct au_wr_dir_args *args)
++{
++ int err;
++ aufs_bindex_t bcpup, bstart, src_bstart;
++ struct super_block *sb;
++ struct dentry *parent;
++ struct au_sbinfo *sbinfo;
++ const int add_entry = au_ftest_wrdir(args->flags, ADD_ENTRY);
++
++ LKTRTrace("%.*s, src %p, {%d, 0x%x}\n",
++ AuDLNPair(dentry), src_dentry, args->force_btgt, args->flags);
++
++ sb = dentry->d_sb;
++ sbinfo = au_sbi(sb);
++ parent = dget_parent(dentry);
++ bstart = au_dbstart(dentry);
++ bcpup = bstart;
++ if (args->force_btgt < 0) {
++ if (src_dentry) {
++ src_bstart = au_dbstart(src_dentry);
++ if (src_bstart < bstart)
++ bcpup = src_bstart;
++ } else if (add_entry) {
++ err = AuWbrCreate(sbinfo, dentry,
++ au_ftest_wrdir(args->flags, ISDIR));
++ bcpup = err;
++ }
++
++ if (bcpup < 0 || au_test_ro(sb, bcpup, dentry->d_inode)) {
++ if (add_entry)
++ err = AuWbrCopyup(sbinfo, dentry);
++ else {
++ if (!IS_ROOT(dentry)) {
++ di_read_lock_parent(parent, !AuLock_IR);
++ err = AuWbrCopyup(sbinfo, dentry);
++ di_read_unlock(parent, !AuLock_IR);
++ } else
++ err = AuWbrCopyup(sbinfo, dentry);
++ }
++ bcpup = err;
++ if (unlikely(err < 0))
++ goto out;
++ }
++ } else {
++ bcpup = args->force_btgt;
++ AuDebugOn(au_test_ro(sb, bcpup, dentry->d_inode));
++ }
++ LKTRTrace("bstart %d, bcpup %d\n", bstart, bcpup);
++ if (bstart < bcpup)
++ au_update_dbrange(dentry, /*do_put_zero*/1);
++
++ err = bcpup;
++ if (bcpup == bstart)
++ goto out; /* success */
++
++ /* copyup the new parent into the branch we process */
++ if (add_entry) {
++ au_update_dbstart(dentry);
++ IMustLock(parent->d_inode);
++ DiMustWriteLock(parent);
++ IiMustWriteLock(parent->d_inode);
++ } else
++ di_write_lock_parent(parent);
++
++ err = 0;
++ if (!au_h_dptr(parent, bcpup)) {
++ if (bstart < bcpup)
++ err = au_cpdown_dirs(dentry, bcpup);
++ else
++ err = au_cpup_dirs(dentry, bcpup);
++ }
++ if (!err && add_entry) {
++ struct dentry *h_parent;
++ struct inode *h_dir;
++
++ h_parent = au_h_dptr(parent, bcpup);
++ AuDebugOn(!h_parent);
++ h_dir = h_parent->d_inode;
++ AuDebugOn(!h_dir);
++ vfsub_i_lock_nested(h_parent->d_inode, AuLsc_I_PARENT);
++ err = au_lkup_neg(dentry, bcpup);
++ vfsub_i_unlock(h_parent->d_inode);
++ if (bstart < bcpup && au_dbstart(dentry) < 0) {
++ au_set_dbstart(dentry, 0);
++ au_update_dbrange(dentry, /*do_put_zero*/0);
++ }
++ }
++
++ if (!add_entry)
++ di_write_unlock(parent);
++ if (!err)
++ err = bcpup; /* success */
++ out:
++ dput(parent);
++ LKTRTrace("err %d\n", err);
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct dentry *au_do_pinned_h_parent(struct au_pin1 *pin)
++{
++ if (pin && pin->parent)
++ return au_h_dptr(pin->parent, pin->bindex);
++ return NULL;
++}
++
++void au_do_unpin(struct au_pin1 *p, struct au_pin1 *gp)
++{
++ if (p->dentry)
++ LKTRTrace("%.*s\n", AuDLNPair(p->dentry));
++ LKTRTrace("p{%d, %d, %d, %d, 0x%x}, gp %p\n",
++ p->lsc_di, p->lsc_hi, !!p->parent, !!p->h_dir, p->flags, gp);
++
++ if (au_ftest_pin(p->flags, MNT_WRITE))
++ au_br_drop_write(au_sbr(p->dentry->d_sb, p->bindex));
++ if (au_ftest_pin(p->flags, VFS_RENAME))
++ vfsub_unlock_rename_mutex(au_sbr_sb(p->dentry->d_sb,
++ p->bindex));
++ if (!p->h_dir)
++ return;
++
++ vfsub_i_unlock(p->h_dir);
++ if (gp)
++ au_do_unpin(gp, NULL);
++ if (!au_ftest_pin(p->flags, DI_LOCKED))
++ di_read_unlock(p->parent, AuLock_IR);
++ iput(p->h_dir);
++ dput(p->parent);
++ p->parent = NULL;
++ p->h_dir = NULL;
++}
++
++int au_do_pin(struct au_pin1 *p, struct au_pin1 *gp)
++{
++ int err;
++ struct dentry *h_dentry;
++
++ LKTRTrace("%.*s, %d, b%d, 0x%x\n",
++ AuDLNPair(p->dentry), !!gp, p->bindex, p->flags);
++ AuDebugOn(au_ftest_pin(p->flags, DO_GPARENT) && !gp);
++ /* AuDebugOn(!do_gp && gp); */
++
++ err = 0;
++ if (IS_ROOT(p->dentry)) {
++ if (au_ftest_pin(p->flags, VFS_RENAME))
++ vfsub_lock_rename_mutex(au_sbr_sb(p->dentry->d_sb,
++ p->bindex));
++ if (au_ftest_pin(p->flags, MNT_WRITE)) {
++ err = au_br_want_write(au_sbr(p->dentry->d_sb,
++ p->bindex));
++ if (unlikely(err))
++ au_fclr_pin(p->flags, MNT_WRITE);
++ }
++ goto out;
++ }
++
++ h_dentry = NULL;
++ if (p->bindex <= au_dbend(p->dentry))
++ h_dentry = au_h_dptr(p->dentry, p->bindex);
++
++ p->parent = dget_parent(p->dentry);
++ if (!au_ftest_pin(p->flags, DI_LOCKED))
++ di_read_lock(p->parent, AuLock_IR, p->lsc_di);
++ else
++ DiMustAnyLock(p->parent);
++ AuDebugOn(!p->parent->d_inode);
++ p->h_dir = au_igrab(au_h_iptr(p->parent->d_inode, p->bindex));
++ /* udba case */
++ if (unlikely(au_ftest_pin(p->flags, VERIFY) && !p->h_dir)) {
++ err = -EIO;
++ if (!au_ftest_pin(p->flags, DI_LOCKED))
++ di_read_unlock(p->parent, AuLock_IR);
++ dput(p->parent);
++ p->parent = NULL;
++ goto out;
++ }
++
++ if (au_ftest_pin(p->flags, DO_GPARENT)) {
++ gp->dentry = p->parent;
++ err = au_do_pin(gp, NULL);
++ if (unlikely(err))
++ gp->dentry = NULL;
++ }
++ if (au_ftest_pin(p->flags, VFS_RENAME))
++ vfsub_lock_rename_mutex(p->h_dir->i_sb);
++ vfsub_i_lock_nested(p->h_dir, p->lsc_hi);
++ if (!err) {
++ /* todo: call d_revalidate() here? */
++#if 0
++ if (h_dentry && h_dentry->d_op && h_dentry->d_op->d_revalidate
++ && !h_dentry->d_op->d_revalidate(h_dentry, NULL))
++ err = -EIO;
++#endif
++ if (!h_dentry
++ || !au_ftest_pin(p->flags, VERIFY)
++ || !au_verify_parent(h_dentry, p->h_dir)) {
++ if (au_ftest_pin(p->flags, MNT_WRITE)) {
++ err = au_br_want_write(au_sbr(p->dentry->d_sb,
++ p->bindex));
++ if (unlikely(err))
++ au_fclr_pin(p->flags, MNT_WRITE);
++ }
++ if (!err)
++ goto out; /* success */
++ } else
++ err = -EIO;
++ }
++
++ AuDbgDentry(p->dentry);
++ AuDbgDentry(h_dentry);
++ AuDbgDentry(p->parent);
++ AuDbgInode(p->h_dir);
++ if (h_dentry)
++ AuDbgDentry(h_dentry->d_parent);
++
++ au_do_unpin(p, gp);
++ if (au_ftest_pin(p->flags, DO_GPARENT))
++ gp->dentry = NULL;
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++void au_pin_init(struct au_pin *args, struct dentry *dentry,
++ aufs_bindex_t bindex, int lsc_di, int lsc_hi,
++ unsigned char flags)
++{
++ struct au_pin1 *p;
++ unsigned char f;
++
++ AuTraceEnter();
++
++ memset(args, 0, sizeof(*args));
++ p = args->pin + AuPin_PARENT;
++ p->dentry = dentry;
++ p->lsc_di = lsc_di;
++ p->lsc_hi = lsc_hi;
++ p->flags = flags;
++ p->bindex = bindex;
++ if (!au_opt_test(au_mntflags(dentry->d_sb), UDBA_NONE))
++ au_fset_pin(p->flags, VERIFY);
++ if (!au_ftest_pin(flags, DO_GPARENT))
++ return;
++
++ f = p->flags;
++ p = au_pin_gp(args);
++ if (p) {
++ p->lsc_di = lsc_di + 1; /* child first */
++ p->lsc_hi = lsc_hi - 1; /* parent first */
++ p->bindex = bindex;
++ p->flags = f & ~(AuPin_MNT_WRITE
++ | AuPin_DO_GPARENT
++ | AuPin_DI_LOCKED);
++ }
++}
++
++int au_pin(struct au_pin *args, struct dentry *dentry, aufs_bindex_t bindex,
++ unsigned char flags)
++{
++ LKTRTrace("%.*s, b%d, 0x%x\n",
++ AuDLNPair(dentry), bindex, flags);
++
++ au_pin_init(args, dentry, bindex, AuLsc_DI_PARENT, AuLsc_I_PARENT2,
++ flags);
++ return au_do_pin(args->pin + AuPin_PARENT, au_pin_gp(args));
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct au_icpup_args {
++ unsigned char isdir, hinotify, did_cpup; /* flags */
++ unsigned char pin_flags;
++ aufs_bindex_t btgt;
++ struct au_pin pin;
++ struct au_hin_ignore ign[2];
++ struct vfsub_args vargs;
++ struct dentry *h_dentry;
++ struct inode *h_inode;
++};
++
++/* todo: refine it */
++static int au_lock_and_icpup(struct dentry *dentry, loff_t sz,
++ struct au_icpup_args *a)
++{
++ int err;
++ aufs_bindex_t bstart;
++ struct super_block *sb;
++ struct dentry *hi_wh, *parent;
++ struct inode *inode;
++ struct au_wr_dir_args wr_dir_args = {
++ .force_btgt = -1,
++ .flags = 0
++ };
++
++ LKTRTrace("%.*s, %lld\n", AuDLNPair(dentry), sz);
++
++ di_write_lock_child(dentry);
++ bstart = au_dbstart(dentry);
++ sb = dentry->d_sb;
++ inode = dentry->d_inode;
++ a->isdir = !!S_ISDIR(inode->i_mode);
++ if (a->isdir)
++ au_fset_wrdir(wr_dir_args.flags, ISDIR);
++ /* plink or hi_wh() */
++ if (bstart != au_ibstart(inode))
++ wr_dir_args.force_btgt = au_ibstart(inode);
++ err = au_wr_dir(dentry, /*src_dentry*/NULL, &wr_dir_args);
++ if (unlikely(err < 0))
++ goto out_dentry;
++ a->btgt = err;
++ a->did_cpup = (err != bstart);
++ err = 0;
++
++ /* crazy udba locks */
++ a->pin_flags = AuPin_MNT_WRITE;
++ a->hinotify = !!au_opt_test(au_mntflags(sb), UDBA_INOTIFY);
++ if (a->hinotify)
++ au_fset_pin(a->pin_flags, DO_GPARENT);
++ parent = NULL;
++ if (!IS_ROOT(dentry)) {
++ au_fset_pin(a->pin_flags, DI_LOCKED);
++ parent = dget_parent(dentry);
++ di_write_lock_parent(parent);
++ }
++ err = au_pin(&a->pin, dentry, a->btgt, a->pin_flags);
++ if (unlikely(err)) {
++ if (parent) {
++ di_write_unlock(parent);
++ dput(parent);
++ }
++ goto out_dentry;
++ }
++ a->h_dentry = au_h_dptr(dentry, bstart);
++ a->h_inode = a->h_dentry->d_inode;
++ AuDebugOn(!a->h_inode);
++ vfsub_i_lock_nested(a->h_inode, AuLsc_I_CHILD);
++ if (!a->did_cpup) {
++ au_unpin_gp(&a->pin);
++ if (parent) {
++ au_pin_set_parent_lflag(&a->pin, /*lflag*/0);
++ di_downgrade_lock(parent, AuLock_IR);
++ dput(parent);
++ }
++ goto out; /* success */
++ }
++
++ hi_wh = NULL;
++ if (!d_unhashed(dentry)) {
++ if (parent) {
++ au_pin_set_parent_lflag(&a->pin, /*lflag*/0);
++ di_downgrade_lock(parent, AuLock_IR);
++ dput(parent);
++ }
++ err = au_sio_cpup_simple(dentry, a->btgt, sz, AuCpup_DTIME);
++ if (!err)
++ a->h_dentry = au_h_dptr(dentry, a->btgt);
++ } else {
++ hi_wh = au_hi_wh(inode, a->btgt);
++ if (!hi_wh) {
++ err = au_sio_cpup_wh(dentry, a->btgt, sz,
++ /*file*/NULL);
++ if (!err)
++ hi_wh = au_hi_wh(inode, a->btgt);
++ /* todo: revalidate hi_wh? */
++ }
++ if (parent) {
++ au_pin_set_parent_lflag(&a->pin, /*lflag*/0);
++ di_downgrade_lock(parent, AuLock_IR);
++ dput(parent);
++ }
++ if (!hi_wh)
++ a->h_dentry = au_h_dptr(dentry, a->btgt);
++ else
++ a->h_dentry = hi_wh; /* do not dget here */
++ }
++
++ vfsub_i_unlock(a->h_inode);
++ a->h_inode = a->h_dentry->d_inode;
++ AuDebugOn(!a->h_inode);
++ if (!err) {
++ vfsub_i_lock_nested(a->h_inode, AuLsc_I_CHILD);
++ au_unpin_gp(&a->pin);
++ goto out; /* success */
++ }
++
++ au_unpin(&a->pin);
++
++ out_dentry:
++ di_write_unlock(dentry);
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++static int aufs_setattr(struct dentry *dentry, struct iattr *ia)
++{
++ int err;
++ struct inode *inode;
++ struct super_block *sb;
++ __u32 events;
++ struct file *file;
++ loff_t sz;
++ struct au_icpup_args *a;
++
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++ inode = dentry->d_inode;
++ IMustLock(inode);
++
++ err = -ENOMEM;
++ a = kzalloc(sizeof(*a), GFP_NOFS);
++ if (unlikely(!a))
++ goto out;
++
++ file = NULL;
++ sb = dentry->d_sb;
++ si_read_lock(sb, AuLock_FLUSH);
++ vfsub_args_init(&a->vargs, a->ign, au_test_dlgt(au_mntflags(sb)), 0);
++
++ if (ia->ia_valid & ATTR_FILE) {
++ /* currently ftruncate(2) only */
++ file = ia->ia_file;
++ fi_write_lock(file);
++ ia->ia_file = au_h_fptr(file, au_fbstart(file));
++ }
++
++ sz = -1;
++ if ((ia->ia_valid & ATTR_SIZE)
++ && ia->ia_size < i_size_read(inode))
++ sz = ia->ia_size;
++ err = au_lock_and_icpup(dentry, sz, a);
++ if (unlikely(err < 0))
++ goto out_si;
++ if (a->did_cpup) {
++ ia->ia_file = NULL;
++ ia->ia_valid &= ~ATTR_FILE;
++ }
++
++ if ((ia->ia_valid & ATTR_SIZE)
++ && ia->ia_size < i_size_read(inode)) {
++ err = vmtruncate(inode, ia->ia_size);
++ if (unlikely(err))
++ goto out_unlock;
++ }
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 24)
++ if (ia->ia_valid & (ATTR_KILL_SUID | ATTR_KILL_SGID))
++ ia->ia_valid &= ~ATTR_MODE;
++#endif
++
++ events = 0;
++ if (a->hinotify) {
++ events = vfsub_events_notify_change(ia);
++ if (events) {
++ if (a->isdir)
++ vfsub_ign_hinode(&a->vargs, events,
++ au_hi(inode, a->btgt));
++ vfsub_ign_hinode(&a->vargs, events,
++ au_pinned_hdir(&a->pin));
++ }
++ }
++ err = vfsub_notify_change(a->h_dentry, ia, &a->vargs);
++ if (!err)
++ au_cpup_attr_changeable(inode);
++
++ out_unlock:
++ vfsub_i_unlock(a->h_inode);
++ au_unpin(&a->pin);
++ di_write_unlock(dentry);
++ out_si:
++ if (file) {
++ fi_write_unlock(file);
++ ia->ia_file = file;
++ ia->ia_valid |= ATTR_FILE;
++ }
++ si_read_unlock(sb);
++ kfree(a);
++ out:
++ AuTraceErr(err);
++ if (unlikely(err == -EBUSY && au_test_nfsd(current)))
++ err = -ESTALE;
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++static int h_readlink(struct dentry *dentry, int bindex, char __user *buf,
++ int bufsiz)
++{
++ struct super_block *sb;
++ struct dentry *h_dentry;
++
++ LKTRTrace("%.*s, b%d, %d\n", AuDLNPair(dentry), bindex, bufsiz);
++
++ h_dentry = au_h_dptr(dentry, bindex);
++ if (unlikely(/* !h_dentry
++ || !h_dentry->d_inode
++ || */
++ !h_dentry->d_inode->i_op
++ || !h_dentry->d_inode->i_op->readlink))
++ return -EINVAL;
++
++ sb = dentry->d_sb;
++ if (!au_test_ro(sb, bindex, dentry->d_inode)) {
++ touch_atime(au_sbr_mnt(sb, bindex), h_dentry);
++ au_update_fuse_h_inode(NULL, h_dentry); /*ignore*/
++ dentry->d_inode->i_atime = h_dentry->d_inode->i_atime;
++ }
++ return h_dentry->d_inode->i_op->readlink(h_dentry, buf, bufsiz);
++}
++
++static int aufs_readlink(struct dentry *dentry, char __user *buf, int bufsiz)
++{
++ int err;
++
++ LKTRTrace("%.*s, %d\n", AuDLNPair(dentry), bufsiz);
++
++ aufs_read_lock(dentry, AuLock_IR);
++ err = h_readlink(dentry, au_dbstart(dentry), buf, bufsiz);
++ aufs_read_unlock(dentry, AuLock_IR);
++ AuTraceErr(err);
++ if (unlikely(err == -EBUSY && au_test_nfsd(current)))
++ err = -ESTALE;
++ return err;
++}
++
++static void *aufs_follow_link(struct dentry *dentry, struct nameidata *nd)
++{
++ int err;
++ char *buf;
++ mm_segment_t old_fs;
++
++ LKTRTrace("%.*s, nd %.*s\n",
++ AuDLNPair(dentry), AuDLNPair(nd->dentry));
++
++ err = -ENOMEM;
++ buf = __getname();
++ if (unlikely(!buf))
++ goto out;
++
++ aufs_read_lock(dentry, AuLock_IR);
++ old_fs = get_fs();
++ set_fs(KERNEL_DS);
++ err = h_readlink(dentry, au_dbstart(dentry), (char __user *)buf,
++ PATH_MAX);
++ set_fs(old_fs);
++ aufs_read_unlock(dentry, AuLock_IR);
++
++ if (err >= 0) {
++ buf[err] = 0;
++ /* will be freed by put_link */
++ nd_set_link(nd, buf);
++ return NULL; /* success */
++ }
++ __putname(buf);
++
++ out:
++ path_release(nd);
++ AuTraceErr(err);
++ if (unlikely(err == -EBUSY && au_test_nfsd(current)))
++ err = -ESTALE;
++ return ERR_PTR(err);
++}
++
++static void aufs_put_link(struct dentry *dentry, struct nameidata *nd,
++ void *cookie)
++{
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++ __putname(nd_get_link(nd));
++}
++
++/* ---------------------------------------------------------------------- */
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22)
++static void aufs_truncate_range(struct inode *inode, loff_t start, loff_t end)
++{
++ AuUnsupport();
++}
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++struct inode_operations aufs_symlink_iop = {
++ .permission = aufs_permission,
++ .setattr = aufs_setattr,
++#ifdef CONFIG_AUFS_GETATTR
++ .getattr = aufs_getattr,
++#endif
++
++ .readlink = aufs_readlink,
++ .follow_link = aufs_follow_link,
++ .put_link = aufs_put_link
++};
++
++struct inode_operations aufs_dir_iop = {
++ .create = aufs_create,
++ .lookup = aufs_lookup,
++ .link = aufs_link,
++ .unlink = aufs_unlink,
++ .symlink = aufs_symlink,
++ .mkdir = aufs_mkdir,
++ .rmdir = aufs_rmdir,
++ .mknod = aufs_mknod,
++ .rename = aufs_rename,
++
++ .permission = aufs_permission,
++ .setattr = aufs_setattr,
++#ifdef CONFIG_AUFS_GETATTR
++ .getattr = aufs_getattr,
++#endif
++
++#if 0 /* reserved for future use */
++ .setxattr = aufs_setxattr,
++ .getxattr = aufs_getxattr,
++ .listxattr = aufs_listxattr,
++ .removexattr = aufs_removexattr,
++#endif
++
++#if 0 //LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23)
++ .fallocate = aufs_fallocate
++#endif
++};
++
++struct inode_operations aufs_iop = {
++ .permission = aufs_permission,
++ .setattr = aufs_setattr,
++#ifdef CONFIG_AUFS_GETATTR
++ .getattr = aufs_getattr,
++#endif
++
++#if 0 /* reserved for future use */
++ .setxattr = aufs_setxattr,
++ .getxattr = aufs_getxattr,
++ .listxattr = aufs_listxattr,
++ .removexattr = aufs_removexattr,
++#endif
++
++ //void (*truncate) (struct inode *);
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22)
++ .truncate_range = aufs_truncate_range,
++#endif
++
++#if 0 //LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23)
++ .fallocate = aufs_fallocate
++#endif
++};
+diff --git a/fs/aufs/i_op_add.c b/fs/aufs/i_op_add.c
+new file mode 100644
+index 0000000..cebc07f
+--- /dev/null
++++ b/fs/aufs/i_op_add.c
+@@ -0,0 +1,757 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * inode operations (add entry)
++ *
++ * $Id: i_op_add.c,v 1.74 2009/01/26 06:24:01 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++/*
++ * final procedure of adding a new entry, except link(2).
++ * remove whiteout, instantiate, copyup the parent dir's times and size
++ * and update version.
++ * if it failed, re-create the removed whiteout.
++ */
++static int epilog(struct inode *dir, aufs_bindex_t bindex,
++ struct dentry *wh_dentry, struct dentry *dentry)
++{
++ int err, rerr;
++ aufs_bindex_t bwh;
++ struct inode *inode, *h_dir;
++ struct dentry *wh;
++ struct au_ndx ndx;
++ struct super_block *sb;
++
++ LKTRTrace("wh %p, %.*s\n", wh_dentry, AuDLNPair(dentry));
++
++ sb = dentry->d_sb;
++ bwh = -1;
++ if (wh_dentry) {
++ h_dir = wh_dentry->d_parent->d_inode; /* dir inode is locked */
++ IMustLock(h_dir);
++ AuDebugOn(au_h_iptr(dir, bindex) != h_dir);
++ bwh = au_dbwh(dentry);
++ err = au_wh_unlink_dentry(au_hi(dir, bindex), wh_dentry, dentry,
++ /*dlgt*/0);
++ if (unlikely(err))
++ goto out;
++ }
++
++ inode = au_new_inode(dentry, /*must_new*/1);
++ if (!IS_ERR(inode)) {
++ d_instantiate(dentry, inode);
++ dir = dentry->d_parent->d_inode; /* dir inode is locked */
++ IMustLock(dir);
++ /* or always cpup dir mtime? */
++ if (au_ibstart(dir) == au_dbstart(dentry))
++ au_cpup_attr_timesizes(dir);
++ dir->i_version++;
++ return 0; /* success */
++ }
++
++ err = PTR_ERR(inode);
++ if (!wh_dentry)
++ goto out;
++
++ /* revert */
++ ndx.flags = 0;
++ if (au_test_dlgt(au_mntflags(sb)))
++ au_fset_ndx(ndx.flags, DLGT);
++ ndx.nfsmnt = au_nfsmnt(sb, bwh);
++ ndx.nd = NULL;
++ /* ndx.br = NULL; */
++ /* dir inode is locked */
++ wh = au_wh_create(dentry, bwh, wh_dentry->d_parent, &ndx);
++ rerr = PTR_ERR(wh);
++ if (IS_ERR(wh)) {
++ AuIOErr("%.*s reverting whiteout failed(%d, %d)\n",
++ AuDLNPair(dentry), err, rerr);
++ err = -EIO;
++ } else
++ dput(wh);
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/*
++ * simple tests for the adding inode operations.
++ * following the checks in vfs, plus the parent-child relationship.
++ */
++int au_may_add(struct dentry *dentry, aufs_bindex_t bindex,
++ struct dentry *h_parent, int isdir, struct au_ndx *ndx)
++{
++ int err, exist;
++ struct dentry *h_dentry;
++ struct inode *h_inode;
++ umode_t h_mode;
++
++ LKTRTrace("%.*s/%.*s, b%d, dir %d\n",
++ AuDLNPair(h_parent), AuDLNPair(dentry), bindex, isdir);
++
++ exist = !!dentry->d_inode;
++ h_dentry = au_h_dptr(dentry, bindex);
++ h_inode = h_dentry->d_inode;
++ if (!exist) {
++ err = -EEXIST;
++ if (unlikely(h_inode))
++ goto out;
++ } else {
++ /* rename(2) case */
++ err = -EIO;
++ if (unlikely(!h_inode || !h_inode->i_nlink))
++ goto out;
++
++ h_mode = h_inode->i_mode;
++ if (!isdir) {
++ err = -EISDIR;
++ if (unlikely(S_ISDIR(h_mode)))
++ goto out;
++ } else if (unlikely(!S_ISDIR(h_mode))) {
++ err = -ENOTDIR;
++ goto out;
++ }
++ }
++
++ err = -EIO;
++ /* expected parent dir is locked */
++ if (unlikely(h_parent != h_dentry->d_parent))
++ goto out;
++ err = 0;
++
++ if (au_opt_test(au_mntflags(dentry->d_sb), UDBA_INOTIFY)) {
++ struct dentry *h_latest;
++ struct qstr *qstr = &dentry->d_name;
++
++ err = -EACCES;
++ if (unlikely(au_test_h_perm
++ (h_parent->d_inode, MAY_EXEC | MAY_WRITE,
++ au_ftest_ndx(ndx->flags, DLGT))))
++ goto out;
++
++ h_latest = au_sio_lkup_one(qstr->name, h_parent, qstr->len,
++ ndx);
++ err = PTR_ERR(h_latest);
++ if (IS_ERR(h_latest))
++ goto out;
++ err = -EIO;
++ dput(h_latest);
++ /* fuse d_revalidate always return 0 for negative dentries */
++ if (h_latest == h_dentry || au_test_fuse(h_dentry->d_sb))
++ err = 0;
++ }
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/*
++ * initial procedure of adding a new entry.
++ * prepare writable branch and the parent dir, lock it,
++ * lookup whiteout for the new entry.
++ */
++static struct dentry*
++lock_hdir_lkup_wh(struct dentry *dentry, struct au_dtime *dt,
++ struct dentry *src_dentry, struct au_pin *pin,
++ struct au_wr_dir_args *wr_dir_args)
++{
++ struct dentry *wh_dentry, *h_parent;
++ struct super_block *sb;
++ int err;
++ unsigned int mnt_flags;
++ unsigned char pin_flags;
++ aufs_bindex_t bstart, bcpup;
++ struct au_ndx ndx;
++
++ LKTRTrace("%.*s, src %p\n", AuDLNPair(dentry), src_dentry);
++
++ bstart = au_dbstart(dentry);
++ err = au_wr_dir(dentry, src_dentry, wr_dir_args);
++ bcpup = err;
++ wh_dentry = ERR_PTR(err);
++ if (unlikely(err < 0))
++ goto out;
++
++ sb = dentry->d_sb;
++ mnt_flags = au_mntflags(sb);
++ pin_flags = AuPin_DI_LOCKED | AuPin_MNT_WRITE;
++ if (dt && au_opt_test(mnt_flags, UDBA_INOTIFY))
++ au_fset_pin(pin_flags, DO_GPARENT);
++ err = au_pin(pin, dentry, bcpup, pin_flags);
++ wh_dentry = ERR_PTR(err);
++ if (unlikely(err))
++ goto out;
++
++ ndx.nfsmnt = au_nfsmnt(sb, bcpup);
++ ndx.flags = 0;
++ if (au_test_dlgt(mnt_flags))
++ au_fset_ndx(ndx.flags, DLGT);
++ ndx.nd = NULL;
++ /* ndx.br = NULL; */
++ /* ndx.nd_file = NULL; */
++
++ h_parent = au_pinned_h_parent(pin);
++ if (!au_opt_test(mnt_flags, UDBA_NONE) && au_dbstart(dentry) == bcpup) {
++ struct nameidata nd;
++
++ if (ndx.nfsmnt) {
++ /* todo: dirty? */
++ ndx.nd = &nd;
++ ndx.br = au_sbr(sb, bcpup);
++ memset(&nd, 0, sizeof(nd));
++ nd.flags = LOOKUP_CREATE;
++ nd.intent.open.flags = O_EXCL;
++ }
++ err = au_may_add(dentry, bcpup, h_parent,
++ au_ftest_wrdir(wr_dir_args->flags, ISDIR),
++ &ndx);
++ wh_dentry = ERR_PTR(err);
++ if (unlikely(err))
++ goto out_unpin;
++ ndx.nd = NULL;
++ ndx.br = NULL;
++ }
++
++ if (dt)
++ au_dtime_store(dt, au_pinned_parent(pin), h_parent,
++ au_pinned_hdir(pin), au_pinned_hgdir(pin));
++
++ wh_dentry = NULL;
++ if (/* bcpup != bstart || */ bcpup != au_dbwh(dentry))
++ goto out; /* success */
++
++ wh_dentry = au_wh_lkup(h_parent, &dentry->d_name, &ndx);
++
++ out_unpin:
++ if (IS_ERR(wh_dentry))
++ au_unpin(pin);
++ out:
++ AuTraceErrPtr(wh_dentry);
++ return wh_dentry;
++}
++
++/* ---------------------------------------------------------------------- */
++
++enum { Mknod, Symlink, Creat };
++struct simple_arg {
++ int type;
++ union {
++ struct {
++ int mode;
++ struct nameidata *nd;
++ } c;
++ struct {
++ const char *symname;
++ } s;
++ struct {
++ int mode;
++ dev_t dev;
++ } m;
++ } u;
++};
++
++static int add_simple(struct inode *dir, struct dentry *dentry,
++ struct simple_arg *arg)
++{
++ int err;
++ struct dentry *h_dentry, *wh_dentry, *parent;
++ struct inode *h_dir;
++ struct au_dtime dt;
++ struct vfsub_args vargs;
++ struct super_block *sb;
++ aufs_bindex_t bstart;
++ unsigned char created;
++ struct au_hin_ignore ign;
++ struct au_pin pin;
++ struct au_wr_dir_args wr_dir_args = {
++ .force_btgt = -1,
++ .flags = AuWrDir_ADD_ENTRY
++ };
++
++ LKTRTrace("type %d, %.*s\n", arg->type, AuDLNPair(dentry));
++ IMustLock(dir);
++
++ sb = dir->i_sb;
++ parent = dentry->d_parent; /* dir inode is locked */
++ aufs_read_lock(dentry, AuLock_DW);
++ vfsub_args_init(&vargs, &ign, !!au_test_dlgt(au_mntflags(sb)), 0);
++ di_write_lock_parent(parent);
++ wh_dentry = lock_hdir_lkup_wh(dentry, &dt, /*src_dentry*/NULL, &pin,
++ &wr_dir_args);
++ err = PTR_ERR(wh_dentry);
++ if (IS_ERR(wh_dentry))
++ goto out;
++
++ bstart = au_dbstart(dentry);
++ h_dentry = au_h_dptr(dentry, bstart);
++ h_dir = au_pinned_h_dir(&pin);
++ vfsub_ign_hinode(&vargs, IN_CREATE, au_pinned_hdir(&pin));
++
++ switch (arg->type) {
++ case Creat:
++ AuDebugOn(au_test_nfs(h_dir->i_sb) && !arg->u.c.nd);
++ err = au_h_create(h_dir, h_dentry, arg->u.c.mode, &vargs,
++ arg->u.c.nd, au_nfsmnt(sb, bstart));
++ break;
++ case Symlink:
++ err = vfsub_symlink(h_dir, h_dentry, arg->u.s.symname,
++ S_IALLUGO, &vargs);
++ break;
++ case Mknod:
++ err = vfsub_mknod(h_dir, h_dentry, arg->u.m.mode, arg->u.m.dev,
++ &vargs);
++ break;
++ default:
++ BUG();
++ }
++ created = !err;
++ if (!err)
++ err = epilog(dir, bstart, wh_dentry, dentry);
++
++ /* revert */
++ if (unlikely(created && err && h_dentry->d_inode)) {
++ int rerr;
++ vfsub_args_reinit(&vargs);
++ vfsub_ign_hinode(&vargs, IN_DELETE, au_pinned_hdir(&pin));
++ rerr = vfsub_unlink(h_dir, h_dentry, &vargs);
++ if (rerr) {
++ AuIOErr("%.*s revert failure(%d, %d)\n",
++ AuDLNPair(dentry), err, rerr);
++ err = -EIO;
++ }
++ /* todo: inotify will be fired to the grand parent dir? */
++ au_dtime_revert(&dt);
++ d_drop(dentry);
++ }
++
++ au_unpin(&pin);
++ dput(wh_dentry);
++
++ out:
++ if (unlikely(err)) {
++ au_update_dbstart(dentry);
++ d_drop(dentry);
++ }
++ di_write_unlock(parent);
++ aufs_read_unlock(dentry, AuLock_DW);
++ AuTraceErr(err);
++ if (unlikely(err == -EBUSY && au_test_nfsd(current)))
++ err = -ESTALE;
++ return err;
++}
++
++int aufs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev)
++{
++ struct simple_arg arg = {
++ .type = Mknod,
++ .u.m = {
++ .mode = mode,
++ .dev = dev
++ }
++ };
++ return add_simple(dir, dentry, &arg);
++}
++
++int aufs_symlink(struct inode *dir, struct dentry *dentry, const char *symname)
++{
++ struct simple_arg arg = {
++ .type = Symlink,
++ .u.s.symname = symname
++ };
++ return add_simple(dir, dentry, &arg);
++}
++
++int aufs_create(struct inode *dir, struct dentry *dentry, int mode,
++ struct nameidata *nd)
++{
++ struct simple_arg arg = {
++ .type = Creat,
++ .u.c = {
++ .mode = mode,
++ .nd = nd
++ }
++ };
++ return add_simple(dir, dentry, &arg);
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct au_link_args {
++ unsigned int mnt_flags;
++ unsigned char pin_flags;
++ aufs_bindex_t bdst, bsrc;
++ struct vfsub_args vargs;
++ struct au_pin pin;
++ struct au_hin_ignore ign;
++ struct dentry *h_dentry;
++ struct dentry *src_parent, *parent;
++};
++
++static int au_cpup_before_link(struct dentry *src_dentry, struct inode *dir,
++ struct dentry *dentry, struct au_link_args *a)
++{
++ int err;
++ struct inode *h_inode;
++ const int hinotify = au_opt_test(a->mnt_flags, UDBA_INOTIFY);
++
++ LKTRTrace("src %.*s, i%lu, dst %.*s\n",
++ AuDLNPair(src_dentry), dir->i_ino, AuDLNPair(dentry));
++
++ di_read_lock_parent(a->src_parent, AuLock_IR);
++ err = au_test_and_cpup_dirs(src_dentry, a->bdst);
++ if (unlikely(err))
++ goto out;
++
++ AuDebugOn(au_dbstart(src_dentry) != a->bsrc);
++ h_inode = au_h_dptr(src_dentry, a->bsrc)->d_inode;
++ a->pin_flags = AuPin_DI_LOCKED | AuPin_MNT_WRITE;
++ if (hinotify)
++ au_fset_pin(a->pin_flags, DO_GPARENT);
++ err = au_pin(&a->pin, src_dentry, a->bdst, a->pin_flags);
++ if (unlikely(err))
++ goto out;
++ vfsub_i_lock_nested(h_inode, AuLsc_I_CHILD);
++ /* todo: no KEEPLINO because of noplink? */
++ err = au_sio_cpup_simple(src_dentry, a->bdst, -1,
++ AuCpup_DTIME /* | AuCpup_KEEPLINO */);
++ vfsub_i_unlock(h_inode);
++ au_unpin(&a->pin);
++
++ out:
++ di_read_unlock(a->src_parent, AuLock_IR);
++ AuTraceErr(err);
++ return err;
++}
++
++static int au_cpup_or_link(struct dentry *src_dentry, struct au_link_args *a)
++{
++ int err;
++ struct inode *h_inode;
++ aufs_bindex_t bstart;
++ struct dentry *h_src_dentry;
++
++ AuTraceEnter();
++ AuDebugOn(au_dbstart(src_dentry) != a->bsrc);
++
++ bstart = au_ibstart(src_dentry->d_inode);
++ h_inode = NULL;
++ if (bstart <= a->bdst)
++ h_inode = au_h_iptr(src_dentry->d_inode, a->bdst);
++ if (!h_inode || !h_inode->i_nlink) {
++ /* copyup src_dentry as the name of dentry. */
++ au_set_dbstart(src_dentry, a->bdst);
++ au_set_h_dptr(src_dentry, a->bdst, dget(a->h_dentry));
++ h_inode = au_h_dptr(src_dentry, a->bsrc)->d_inode;
++ vfsub_i_lock_nested(h_inode, AuLsc_I_CHILD);
++ err = au_sio_cpup_single(src_dentry, a->bdst, a->bsrc, -1,
++ AuCpup_KEEPLINO, a->parent);
++ vfsub_i_unlock(h_inode);
++ au_set_h_dptr(src_dentry, a->bdst, NULL);
++ au_set_dbstart(src_dentry, a->bsrc);
++ } else {
++ /* the inode of src_dentry already exists on a.bdst branch */
++ h_src_dentry = d_find_alias(h_inode);
++ if (h_src_dentry) {
++ /* vfsub_args_reinit(&a->vargs); */
++ vfsub_ign_hinode(&a->vargs, IN_CREATE,
++ au_pinned_hdir(&a->pin));
++ err = vfsub_link(h_src_dentry, au_pinned_h_dir(&a->pin),
++ a->h_dentry, &a->vargs);
++ dput(h_src_dentry);
++ } else {
++ AuIOErr("no dentry found for i%lu on b%d\n",
++ h_inode->i_ino, a->bdst);
++ err = -EIO;
++ }
++ }
++
++ if (!err)
++ au_plink_append(src_dentry->d_sb, src_dentry->d_inode,
++ a->h_dentry, a->bdst);
++
++ AuTraceErr(err);
++ return err;
++}
++
++int aufs_link(struct dentry *src_dentry, struct inode *dir,
++ struct dentry *dentry)
++{
++ int err, rerr;
++ struct au_dtime dt;
++ struct super_block *sb;
++ struct au_link_args *a;
++ struct au_wr_dir_args wr_dir_args = {
++ /* .force_btgt = -1, */
++ .flags = AuWrDir_ADD_ENTRY
++ };
++ struct dentry *wh_dentry, *h_src_dentry;
++ struct inode *inode;
++
++ LKTRTrace("src %.*s, i%lu, dst %.*s\n",
++ AuDLNPair(src_dentry), dir->i_ino, AuDLNPair(dentry));
++ IMustLock(dir);
++ inode = src_dentry->d_inode;
++ IMustLock(inode);
++ AuDebugOn(S_ISDIR(inode->i_mode));
++
++ err = -ENOMEM;
++ a = kzalloc(sizeof(*a), GFP_NOFS);
++ if (unlikely(!a))
++ goto out;
++
++ sb = dentry->d_sb;
++ a->parent = dentry->d_parent; /* dir inode is locked */
++ aufs_read_and_write_lock2(dentry, src_dentry, /*AuLock_FLUSH*/0);
++ a->src_parent = dget_parent(src_dentry);
++ wr_dir_args.force_btgt = au_dbstart(src_dentry);
++ a->mnt_flags = au_mntflags(sb);
++ vfsub_args_init(&a->vargs, &a->ign, au_test_dlgt(a->mnt_flags), 0);
++
++ di_write_lock_parent(a->parent);
++ wr_dir_args.force_btgt = au_wbr(dentry, wr_dir_args.force_btgt);
++ wh_dentry = lock_hdir_lkup_wh(dentry, &dt, src_dentry, &a->pin,
++ &wr_dir_args);
++ err = PTR_ERR(wh_dentry);
++ if (IS_ERR(wh_dentry))
++ goto out_unlock;
++ err = 0;
++
++ a->bdst = au_dbstart(dentry);
++ a->h_dentry = au_h_dptr(dentry, a->bdst);
++
++ /* todo: minor optimize,
++ their sb may be same while their bindex differs? */
++ a->bsrc = au_dbstart(src_dentry);
++ if (au_opt_test(a->mnt_flags, PLINK)) {
++ if (a->bdst < a->bsrc
++ /* && h_src_dentry->d_sb != a->h_dentry->d_sb */)
++ err = au_cpup_or_link(src_dentry, a);
++ else {
++ h_src_dentry = au_h_dptr(src_dentry, a->bdst);
++ AuDebugOn(!h_src_dentry);
++ AuDebugOn(!h_src_dentry->d_inode);
++ vfsub_ign_hinode(&a->vargs, IN_CREATE,
++ au_pinned_hdir(&a->pin));
++ err = vfsub_link(h_src_dentry, au_pinned_h_dir(&a->pin),
++ a->h_dentry, &a->vargs);
++ }
++ } else {
++ /*
++ * copyup src_dentry to the branch we process,
++ * and then link(2) to it.
++ */
++ if (a->bdst < a->bsrc
++ /* && h_src_dentry->d_sb != a->h_dentry->d_sb */) {
++ au_unpin(&a->pin);
++ di_write_unlock(a->parent);
++ err = au_cpup_before_link(src_dentry, dir, dentry, a);
++ if (!err) {
++ a->pin_flags
++ = AuPin_DI_LOCKED | AuPin_MNT_WRITE;
++ if (au_opt_test(a->mnt_flags, UDBA_INOTIFY))
++ au_fset_pin(a->pin_flags, DO_GPARENT);
++ di_write_lock_parent(a->parent);
++ err = au_pin(&a->pin, dentry, a->bdst,
++ a->pin_flags);
++ if (unlikely(err))
++ goto out_wh;
++ }
++ }
++ if (!err) {
++ /* vfsub_args_reinit(&a->vargs); */
++ vfsub_ign_hinode(&a->vargs, IN_CREATE,
++ au_pinned_hdir(&a->pin));
++ h_src_dentry = au_h_dptr(src_dentry, a->bdst);
++ err = vfsub_link(h_src_dentry, au_pinned_h_dir(&a->pin),
++ a->h_dentry, &a->vargs);
++ }
++ }
++ if (unlikely(err))
++ goto out_unpin;
++
++ if (wh_dentry) {
++ err = au_wh_unlink_dentry(au_pinned_hdir(&a->pin), wh_dentry,
++ dentry, /*dlgt*/0);
++ if (unlikely(err))
++ goto out_revert;
++ }
++
++#if 0 /* cannot support it */
++ /* fuse has different memory inode for the same inode number */
++ if (au_test_fuse(a->h_dentry->d_sb)) {
++ LKTRLabel(here);
++ d_drop(a->h_dentry);
++ /*d_drop(h_src_dentry);
++ d_drop(src_dentry);*/
++ a->inode->i_nlink++;
++ a->inode->i_ctime = dir->i_ctime;
++ }
++#endif
++
++ dir->i_version++;
++ if (au_ibstart(dir) == au_dbstart(dentry))
++ au_cpup_attr_timesizes(dir);
++ if (!d_unhashed(a->h_dentry)
++ /* || h_old_inode->i_nlink <= nlink */
++ /* || SB_NFS(h_src_dentry->d_sb) */) {
++ d_instantiate(dentry, au_igrab(inode));
++ inode->i_nlink++;
++ inode->i_ctime = dir->i_ctime;
++ } else
++ /* nfs case (< 2.6.15) */
++ d_drop(dentry);
++ goto out_unpin; /* success */
++
++ out_revert:
++ vfsub_args_reinit(&a->vargs);
++ vfsub_ign_hinode(&a->vargs, IN_DELETE, au_pinned_hdir(&a->pin));
++ rerr = vfsub_unlink(au_pinned_h_dir(&a->pin), a->h_dentry, &a->vargs);
++ if (!rerr)
++ goto out_dt;
++ AuIOErr("%.*s reverting failed(%d, %d)\n",
++ AuDLNPair(dentry), err, rerr);
++ err = -EIO;
++ out_dt:
++ d_drop(dentry);
++ au_dtime_revert(&dt);
++ out_unpin:
++ au_unpin(&a->pin);
++ out_wh:
++ dput(wh_dentry);
++ out_unlock:
++ if (unlikely(err)) {
++ au_update_dbstart(dentry);
++ d_drop(dentry);
++ }
++ di_write_unlock(a->parent);
++ dput(a->src_parent);
++ aufs_read_and_write_unlock2(dentry, src_dentry);
++ kfree(a);
++ out:
++ AuTraceErr(err);
++ if (unlikely(err == -EBUSY && au_test_nfsd(current)))
++ err = -ESTALE;
++ return err;
++}
++
++int aufs_mkdir(struct inode *dir, struct dentry *dentry, int mode)
++{
++ int err, rerr;
++ struct dentry *h_dentry, *wh_dentry, *parent, *opq_dentry;
++ struct inode *h_inode;
++ struct au_dtime dt;
++ aufs_bindex_t bindex;
++ unsigned char diropq, dlgt;
++ unsigned int mnt_flags;
++ struct au_hin_ignore ign;
++ struct vfsub_args vargs;
++ struct au_pin pin;
++ struct au_wr_dir_args wr_dir_args = {
++ .force_btgt = -1,
++ .flags = AuWrDir_ADD_ENTRY | AuWrDir_ISDIR
++ };
++
++ LKTRTrace("i%lu, %.*s, mode 0%o\n",
++ dir->i_ino, AuDLNPair(dentry), mode);
++ IMustLock(dir);
++
++ aufs_read_lock(dentry, AuLock_DW);
++ parent = dentry->d_parent; /* dir inode is locked */
++ mnt_flags = au_mntflags(dentry->d_sb);
++ dlgt = !!au_test_dlgt(mnt_flags);
++ vfsub_args_init(&vargs, &ign, dlgt, 0);
++
++ di_write_lock_parent(parent);
++ wh_dentry = lock_hdir_lkup_wh(dentry, &dt, /*src_dentry*/NULL, &pin,
++ &wr_dir_args);
++ err = PTR_ERR(wh_dentry);
++ if (IS_ERR(wh_dentry))
++ goto out;
++
++ bindex = au_dbstart(dentry);
++ h_dentry = au_h_dptr(dentry, bindex);
++ vfsub_ign_hinode(&vargs, IN_CREATE, au_pinned_hdir(&pin));
++ err = vfsub_mkdir(au_pinned_h_dir(&pin), h_dentry, mode, &vargs);
++ if (unlikely(err))
++ goto out_unlock;
++
++ /* make the dir opaque */
++ diropq = 0;
++ h_inode = h_dentry->d_inode;
++ if (wh_dentry || au_opt_test(mnt_flags, ALWAYS_DIROPQ)) {
++ vfsub_i_lock_nested(h_inode, AuLsc_I_CHILD);
++ opq_dentry = au_diropq_create(dentry, bindex, /*dlgt*/0);
++ vfsub_i_unlock(h_inode);
++ err = PTR_ERR(opq_dentry);
++ if (IS_ERR(opq_dentry))
++ goto out_dir;
++ dput(opq_dentry);
++ diropq = 1;
++ }
++
++ err = epilog(dir, bindex, wh_dentry, dentry);
++ if (!err) {
++ dir->i_nlink++;
++ goto out_unlock; /* success */
++ }
++
++ /* revert */
++ if (diropq) {
++ LKTRLabel(revert opq);
++ vfsub_i_lock_nested(h_inode, AuLsc_I_CHILD);
++ rerr = au_diropq_remove(dentry, bindex, dlgt);
++ vfsub_i_unlock(h_inode);
++ if (rerr) {
++ AuIOErr("%.*s reverting diropq failed(%d, %d)\n",
++ AuDLNPair(dentry), err, rerr);
++ err = -EIO;
++ }
++ }
++
++ out_dir:
++ LKTRLabel(revert dir);
++ vfsub_args_reinit(&vargs);
++ vfsub_ign_hinode(&vargs, IN_DELETE, au_pinned_hdir(&pin));
++ rerr = vfsub_rmdir(au_pinned_h_dir(&pin), h_dentry, &vargs);
++ if (rerr) {
++ AuIOErr("%.*s reverting dir failed(%d, %d)\n",
++ AuDLNPair(dentry), err, rerr);
++ err = -EIO;
++ }
++ d_drop(dentry);
++ au_dtime_revert(&dt);
++ out_unlock:
++ au_unpin(&pin);
++ dput(wh_dentry);
++ out:
++ if (unlikely(err)) {
++ au_update_dbstart(dentry);
++ d_drop(dentry);
++ }
++ di_write_unlock(parent);
++ aufs_read_unlock(dentry, AuLock_DW);
++ AuTraceErr(err);
++ if (unlikely(err == -EBUSY && au_test_nfsd(current)))
++ err = -ESTALE;
++ return err;
++}
+diff --git a/fs/aufs/i_op_del.c b/fs/aufs/i_op_del.c
+new file mode 100644
+index 0000000..e2ce684
+--- /dev/null
++++ b/fs/aufs/i_op_del.c
+@@ -0,0 +1,566 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * inode operations (del entry)
++ *
++ * $Id: i_op_del.c,v 1.71 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++/* returns,
++ * 0: wh is unnecessary
++ * plus: wh is necessary
++ * minus: error
++ */
++int au_wr_dir_need_wh(struct dentry *dentry, int isdir, aufs_bindex_t *bcpup)
++{
++ int need_wh, err;
++ aufs_bindex_t bstart;
++ struct dentry *h_dentry;
++ struct super_block *sb;
++
++ LKTRTrace("%.*s, isdir %d, *bcpup %d\n",
++ AuDLNPair(dentry), isdir, *bcpup);
++ sb = dentry->d_sb;
++
++ bstart = au_dbstart(dentry);
++ LKTRTrace("bcpup %d, bstart %d\n", *bcpup, bstart);
++ h_dentry = au_h_dptr(dentry, bstart);
++ if (*bcpup < 0) {
++ *bcpup = bstart;
++ if (au_test_ro(sb, bstart, dentry->d_inode)) {
++ err = AuWbrCopyup(au_sbi(sb), dentry);
++ *bcpup = err;
++ if (unlikely(err < 0))
++ goto out;
++ }
++ } else
++ AuDebugOn(bstart < *bcpup
++ || au_test_ro(sb, *bcpup, dentry->d_inode));
++ LKTRTrace("bcpup %d, bstart %d\n", *bcpup, bstart);
++
++ if (*bcpup != bstart) {
++ err = au_cpup_dirs(dentry, *bcpup);
++ if (unlikely(err))
++ goto out;
++ need_wh = 1;
++ } else {
++ aufs_bindex_t old_bend, new_bend, bdiropq = -1;
++ old_bend = au_dbend(dentry);
++ if (isdir) {
++ bdiropq = au_dbdiropq(dentry);
++ au_set_dbdiropq(dentry, -1);
++ }
++ need_wh = au_lkup_dentry(dentry, bstart + 1, /*type*/0,
++ /*nd*/NULL);
++ err = need_wh;
++ if (isdir)
++ au_set_dbdiropq(dentry, bdiropq);
++ if (unlikely(err < 0))
++ goto out;
++ new_bend = au_dbend(dentry);
++ if (!need_wh && old_bend != new_bend) {
++ au_set_h_dptr(dentry, new_bend, NULL);
++ au_set_dbend(dentry, old_bend);
++#if 0 /* todo: remove this? */
++ } else if (!au_h_dptr(dentry, new_bend)->d_inode) {
++ LKTRTrace("negative\n");
++ au_set_h_dptr(dentry, new_bend, NULL);
++ au_set_dbend(dentry, old_bend);
++ need_wh = 0;
++#endif
++ }
++ }
++ LKTRTrace("need_wh %d\n", need_wh);
++ err = need_wh;
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/*
++ * simple tests for the removal inode operations.
++ * following the checks in vfs, plus the parent-child relationship.
++ */
++int au_may_del(struct dentry *dentry, aufs_bindex_t bindex,
++ struct dentry *h_parent, int isdir, struct au_ndx *ndx)
++{
++ int err, exist;
++ struct super_block *sb;
++ struct dentry *h_dentry;
++ struct inode *h_inode;
++ umode_t h_mode;
++
++ LKTRTrace("%.*s/%.*s, b%d, dir %d\n",
++ AuDLNPair(h_parent), AuDLNPair(dentry), bindex, isdir);
++
++ sb = dentry->d_sb;
++ exist = !!dentry->d_inode;
++ h_dentry = au_h_dptr(dentry, bindex);
++ h_inode = h_dentry->d_inode;
++ if (exist) {
++ err = -ENOENT;
++ if (unlikely(!h_inode || !h_inode->i_nlink))
++ goto out;
++
++ h_mode = h_inode->i_mode;
++ if (!isdir) {
++ err = -EISDIR;
++ if (unlikely(S_ISDIR(h_mode)))
++ goto out;
++ } else if (unlikely(!S_ISDIR(h_mode))) {
++ err = -ENOTDIR;
++ goto out;
++ }
++ } else {
++ /* rename(2) case */
++ err = -EIO;
++ if (unlikely(h_inode))
++ goto out;
++ }
++
++ err = -ENOENT;
++ /* expected parent dir is locked */
++ if (unlikely(h_parent != h_dentry->d_parent))
++ goto out;
++ err = 0;
++
++ /*
++ * some filesystem may unlink a dir and corrupt its consistency.
++ * so let's try heavy test.
++ */
++ if (1 /*au_opt_test(au_mntflags(sb), UDBA_INOTIFY)*/) {
++ struct dentry *h_latest;
++ struct qstr *qstr = &dentry->d_name;
++
++ err = -EACCES;
++ if (unlikely(au_test_h_perm(h_parent->d_inode,
++ MAY_EXEC | MAY_WRITE,
++ au_ftest_ndx(ndx->flags, DLGT))))
++ goto out;
++
++ h_latest = au_sio_lkup_one(qstr->name, h_parent, qstr->len,
++ ndx);
++ err = -EIO;
++ if (IS_ERR(h_latest))
++ goto out;
++ dput(h_latest);
++ if (h_latest == h_dentry)
++ err = 0;
++ }
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++static struct dentry *
++lock_hdir_create_wh(struct dentry *dentry, int isdir, aufs_bindex_t *rbcpup,
++ struct au_dtime *dt, struct au_pin *pin)
++{
++ struct dentry *wh_dentry, *h_parent;
++ struct super_block *sb;
++ int err, need_wh;
++ unsigned int mnt_flags;
++ unsigned char pin_flags;
++ aufs_bindex_t bcpup;
++ struct au_ndx ndx;
++
++ LKTRTrace("%.*s, isdir %d\n", AuDLNPair(dentry), isdir);
++
++ need_wh = au_wr_dir_need_wh(dentry, isdir, rbcpup);
++ err = need_wh;
++ wh_dentry = ERR_PTR(err);
++ if (unlikely(err < 0))
++ goto out;
++
++ sb = dentry->d_sb;
++ mnt_flags = au_mntflags(sb);
++ bcpup = *rbcpup;
++ pin_flags = AuPin_DI_LOCKED | AuPin_MNT_WRITE;
++ if (au_opt_test(mnt_flags, UDBA_INOTIFY))
++ au_fset_pin(pin_flags, DO_GPARENT);
++ err = au_pin(pin, dentry, bcpup, pin_flags);
++ wh_dentry = ERR_PTR(err);
++ if (unlikely(err))
++ goto out;
++ h_parent = au_pinned_h_parent(pin);
++ if (!au_opt_test(mnt_flags, UDBA_NONE) && au_dbstart(dentry) == bcpup) {
++ ndx.nfsmnt = au_nfsmnt(sb, bcpup);
++ ndx.flags = 0;
++ if (au_test_dlgt(mnt_flags))
++ au_fset_ndx(ndx.flags, DLGT);
++ ndx.nd = NULL;
++ /* ndx.br = au_sbr(sb, bcpup); */
++ /* ndx.nd_file = NULL; */
++ err = au_may_del(dentry, bcpup, h_parent, isdir, &ndx);
++ wh_dentry = ERR_PTR(err);
++ if (unlikely(err))
++ goto out_unpin;
++ }
++
++ au_dtime_store(dt, au_pinned_parent(pin), h_parent, au_pinned_hdir(pin),
++ au_pinned_hgdir(pin));
++ wh_dentry = NULL;
++ if (!need_wh)
++ goto out; /* success, no need to create whiteout */
++
++ ndx.nfsmnt = au_nfsmnt(sb, bcpup);
++ ndx.flags = 0;
++ if (au_test_dlgt(mnt_flags))
++ au_fset_ndx(ndx.flags, DLGT);
++ ndx.nd = NULL;
++ /* ndx.br = NULL; */
++ wh_dentry = au_wh_create(dentry, bcpup, h_parent, &ndx);
++ if (!IS_ERR(wh_dentry))
++ goto out; /* success */
++ /* returns with the parent is locked and wh_dentry is DGETed */
++
++ out_unpin:
++ au_unpin(pin);
++ out:
++ AuTraceErrPtr(wh_dentry);
++ return wh_dentry;
++}
++
++static int renwh_and_rmdir(struct dentry *dentry, aufs_bindex_t bindex,
++ struct au_nhash *whlist, struct inode *dir)
++{
++ int rmdir_later, err;
++ struct dentry *h_dentry;
++ struct inode *inode, *h_inode;
++ struct super_block *sb;
++
++ LKTRTrace("%.*s, b%d\n", AuDLNPair(dentry), bindex);
++
++ inode = NULL;
++ h_inode = NULL;
++ sb = dentry->d_sb;
++ if (au_opt_test(au_mntflags(sb), UDBA_INOTIFY)) {
++ inode = dentry->d_inode;
++ h_inode = au_h_iptr(inode, bindex);
++ vfsub_i_lock_nested(h_inode, AuLsc_I_CHILD);
++ }
++ h_dentry = au_h_dptr(dentry, bindex);
++ err = au_whtmp_ren(dir, bindex, h_dentry);
++ if (inode) {
++ /* todo: bad approach? */
++ if (!err)
++ au_hin_suspend(au_hi(inode, bindex));
++ vfsub_i_unlock(h_inode);
++ }
++ if (unlikely(err))
++ goto out;
++
++ if (!au_test_nfs(h_dentry->d_sb)) {
++ const int dirwh = au_sbi(sb)->si_dirwh;
++ rmdir_later = (dirwh <= 1);
++ if (!rmdir_later)
++ rmdir_later = au_nhash_test_longer_wh(whlist, bindex,
++ dirwh);
++ if (rmdir_later)
++ return rmdir_later;
++ }
++
++ err = au_whtmp_rmdir(dir, bindex, h_dentry, whlist);
++ if (unlikely(err)) {
++ AuIOErr("rmdir %.*s, b%d failed, %d. ignored\n",
++ AuDLNPair(h_dentry), bindex, err);
++ /* we do not revert the inotify watch */
++ err = 0;
++ }
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++static void epilog(struct inode *dir, struct dentry *dentry,
++ aufs_bindex_t bindex)
++{
++ /* todo: unnecessary? */
++ d_drop(dentry);
++ dentry->d_inode->i_ctime = dir->i_ctime;
++
++ if (atomic_read(&dentry->d_count) == 1) {
++ au_set_h_dptr(dentry, au_dbstart(dentry), NULL);
++ au_update_dbstart(dentry);
++ }
++ if (au_ibstart(dir) == bindex)
++ au_cpup_attr_timesizes(dir);
++ dir->i_version++;
++}
++
++/* revert flags */
++#define AuRev_DLGT 1
++#define au_ftest_rev(flags, name) ((flags) & AuRev_##name)
++#define au_fset_rev(flags, name) { (flags) |= AuRev_##name; }
++#define au_fclr_rev(flags, name) { (flags) &= ~AuRev_##name; }
++#ifndef CONFIG_AUFS_DLGT
++#undef AuRev_DLGT
++#define AuRev_DLGT 0
++#endif
++
++static int do_revert(int err, struct inode *dir, aufs_bindex_t bwh,
++ struct dentry *wh_dentry, struct dentry *dentry,
++ struct au_dtime *dt, unsigned int flags)
++{
++ int rerr;
++
++ rerr = au_wh_unlink_dentry(au_hi(dir, bwh), wh_dentry, dentry,
++ au_ftest_rev(flags, DLGT));
++ if (!rerr) {
++ au_set_dbwh(dentry, bwh);
++ au_dtime_revert(dt);
++ return 0;
++ }
++
++ AuIOErr("%.*s reverting whiteout failed(%d, %d)\n",
++ AuDLNPair(dentry), err, rerr);
++ return -EIO;
++}
++
++/* ---------------------------------------------------------------------- */
++
++int aufs_unlink(struct inode *dir, struct dentry *dentry)
++{
++ int err;
++ struct inode *inode, *h_dir;
++ struct dentry *parent, *wh_dentry, *h_dentry;
++ struct au_dtime dt;
++ aufs_bindex_t bwh, bindex, bstart;
++ unsigned char dlgt;
++ struct super_block *sb;
++ struct au_hin_ignore ign;
++ struct vfsub_args vargs;
++ struct au_pin pin;
++
++ LKTRTrace("i%lu, %.*s\n", dir->i_ino, AuDLNPair(dentry));
++ IMustLock(dir);
++ inode = dentry->d_inode;
++ if (unlikely(!inode))
++ return -ENOENT; /* possible? */
++ IMustLock(inode);
++
++ aufs_read_lock(dentry, AuLock_DW);
++ parent = dentry->d_parent; /* dir inode is locked */
++ di_write_lock_parent(parent);
++
++ bstart = au_dbstart(dentry);
++ bwh = au_dbwh(dentry);
++ bindex = -1;
++ wh_dentry = lock_hdir_create_wh(dentry, /*isdir*/0, &bindex, &dt, &pin);
++ err = PTR_ERR(wh_dentry);
++ if (IS_ERR(wh_dentry))
++ goto out;
++
++ sb = dir->i_sb;
++ dlgt = !!au_test_dlgt(au_mntflags(sb));
++ AuDebugOn(au_dbstart(dentry) != bstart);
++ h_dentry = au_h_dptr(dentry, bstart);
++ dget(h_dentry);
++
++ if (bindex == bstart) {
++ vfsub_args_init(&vargs, &ign, dlgt, 0);
++ vfsub_ign_hinode(&vargs, IN_DELETE, au_pinned_hdir(&pin));
++ h_dir = au_pinned_h_dir(&pin);
++ err = vfsub_unlink(h_dir, h_dentry, &vargs);
++ } else {
++ /* dir inode is locked */
++ AuDebugOn(!wh_dentry
++ || wh_dentry->d_parent != au_h_dptr(parent, bindex));
++ h_dir = wh_dentry->d_parent->d_inode;
++ IMustLock(h_dir);
++ err = 0;
++ }
++
++ if (!err) {
++ inode->i_nlink--;
++#if 0 /* todo: update plink? */
++ if (!inode->i_nlink
++ && au_opt_test(p->a.mnt_flags, PLINK)
++ && au_plink_test(sb, inode)
++ /* && atomic_read(&inode->i_count) == 2) */) {
++ au_debug_on();
++ DbgInode(inode);
++ au_debug_off();
++ }
++#endif
++ /*
++ * although this is not a dir,
++ * set it here since we need to detect the dead inode.
++ */
++ if (!inode->i_nlink)
++ inode->i_flags |= S_DEAD;
++ epilog(dir, dentry, bindex);
++
++ /* update target timestamps */
++ if (bindex == bstart) {
++ au_update_fuse_h_inode(NULL, h_dentry); /*ignore*/
++ inode->i_ctime = h_dentry->d_inode->i_ctime;
++ } else
++ /* todo: this timestamp may be reverted later */
++ inode->i_ctime = h_dir->i_ctime;
++ goto out_unlock; /* success */
++ }
++
++ /* revert */
++ if (wh_dentry) {
++ int rerr;
++ unsigned int rev_flags;
++
++ rev_flags = 0;
++ if (dlgt)
++ au_fset_rev(rev_flags, DLGT);
++ rerr = do_revert(err, dir, bwh, wh_dentry, dentry, &dt,
++ rev_flags);
++ if (rerr)
++ err = rerr;
++ }
++
++ out_unlock:
++ au_unpin(&pin);
++ dput(wh_dentry);
++ dput(h_dentry);
++ out:
++ di_write_unlock(parent);
++ aufs_read_unlock(dentry, AuLock_DW);
++ AuTraceErr(err);
++ if (unlikely(err == -EBUSY && au_test_nfsd(current)))
++ err = -ESTALE;
++ return err;
++}
++
++int aufs_rmdir(struct inode *dir, struct dentry *dentry)
++{
++ int err, rmdir_later;
++ struct inode *inode;
++ struct dentry *parent, *wh_dentry, *h_dentry;
++ struct au_dtime dt;
++ aufs_bindex_t bwh, bindex, bstart;
++ struct au_whtmp_rmdir_args *args;
++ struct au_nhash *whlist;
++ struct super_block *sb;
++ unsigned int mnt_flags;
++ struct au_pin pin;
++
++ LKTRTrace("i%lu, %.*s\n", dir->i_ino, AuDLNPair(dentry));
++ IMustLock(dir);
++ inode = dentry->d_inode;
++ err = -ENOENT; /* possible? */
++ if (unlikely(!inode))
++ goto out;
++ IMustLock(inode);
++
++ whlist = au_nhash_new(GFP_NOFS);
++ err = PTR_ERR(whlist);
++ if (IS_ERR(whlist))
++ goto out;
++
++ err = -ENOMEM;
++ args = kmalloc(sizeof(*args), GFP_NOFS);
++ if (unlikely(!args))
++ goto out_whlist;
++
++ aufs_read_lock(dentry, AuLock_DW);
++ parent = dentry->d_parent; /* dir inode is locked */
++ di_write_lock_parent(parent);
++ err = au_test_empty(dentry, whlist);
++ if (unlikely(err))
++ goto out_args;
++
++ bstart = au_dbstart(dentry);
++ bwh = au_dbwh(dentry);
++ bindex = -1;
++ wh_dentry = lock_hdir_create_wh(dentry, /*isdir*/1, &bindex, &dt, &pin);
++ err = PTR_ERR(wh_dentry);
++ if (IS_ERR(wh_dentry))
++ goto out_args;
++
++ AuDebugOn(au_dbstart(dentry) != bstart);
++ h_dentry = au_h_dptr(dentry, bstart);
++ dget(h_dentry);
++
++ rmdir_later = 0;
++ if (bindex == bstart) {
++ err = renwh_and_rmdir(dentry, bstart, whlist, dir);
++ if (err > 0) {
++ rmdir_later = err;
++ err = 0;
++ }
++ } else {
++ /* dir inode is locked */
++ AuDebugOn(!wh_dentry
++ || wh_dentry->d_parent != au_h_dptr(parent, bindex));
++ IMustLock(wh_dentry->d_parent->d_inode);
++ err = 0;
++ }
++
++ sb = dentry->d_sb;
++ mnt_flags = au_mntflags(sb);
++ if (!err) {
++ if (au_opt_test(mnt_flags, UDBA_INOTIFY) && rmdir_later)
++ au_reset_hinotify(inode, /*flags*/0);
++ inode->i_nlink = 0;
++ inode->i_flags |= S_DEAD;
++ au_set_dbdiropq(dentry, -1);
++ epilog(dir, dentry, bindex);
++
++ if (rmdir_later) {
++ au_whtmp_kick_rmdir(dir, bstart, h_dentry, whlist,
++ args);
++ args = NULL;
++ }
++
++ goto out_unlock; /* success */
++ }
++
++ /* revert */
++ LKTRLabel(revert);
++ if (wh_dentry) {
++ int rerr;
++ unsigned int rev_flags;
++
++ rev_flags = 0;
++ if (au_test_dlgt(mnt_flags))
++ au_fset_rev(rev_flags, DLGT);
++ rerr = do_revert(err, dir, bwh, wh_dentry, dentry, &dt,
++ rev_flags);
++ if (rerr)
++ err = rerr;
++ }
++
++ out_unlock:
++ au_unpin(&pin);
++ dput(wh_dentry);
++ dput(h_dentry);
++ out_args:
++ di_write_unlock(parent);
++ aufs_read_unlock(dentry, AuLock_DW);
++ kfree(args);
++ out_whlist:
++ au_nhash_del(whlist);
++ out:
++ AuTraceErr(err);
++ if (unlikely(err == -EBUSY && au_test_nfsd(current)))
++ err = -ESTALE;
++ return err;
++}
+diff --git a/fs/aufs/i_op_ren.c b/fs/aufs/i_op_ren.c
+new file mode 100644
+index 0000000..89706ca
+--- /dev/null
++++ b/fs/aufs/i_op_ren.c
+@@ -0,0 +1,1261 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * inode operation (rename entry)
++ * todo: this is crazy monster
++ *
++ * $Id: i_op_ren.c,v 1.82 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++enum { SRC, DST };
++
++#define AuRen_ISDIR 1
++#define AuRen_ISSAMEDIR (1 << 1)
++#define AuRen_WHSRC (1 << 2)
++#define AuRen_WHDST (1 << 3)
++#define AuRen_DLGT (1 << 4)
++#define AuRen_VFSLOCK (1 << 5)
++#define AuRen_PINNED (1 << 6)
++#define AuRen_MNT_WRITE 0 //(1 << 7)
++#define au_ftest_ren(flags, name) ((flags) & AuRen_##name)
++#define au_fset_ren(flags, name) { (flags) |= AuRen_##name; }
++#define au_fclr_ren(flags, name) { (flags) &= ~AuRen_##name; }
++#ifndef CONFIG_AUFS_DLGT
++#undef AuRen_DLGT
++#define AuRen_DLGT 0
++#endif
++
++struct au_ren_args {
++ /* original args */
++ struct dentry *src_dentry, *dentry;
++ struct inode *src_dir, *dir;
++
++ struct dentry *h_dentry[2], *h_parent[2], *h_trap, *h_locked[2];
++ /* todo: remove them */
++ struct dentry *parent[2], *gparent[2];
++ struct au_pin pin[2];
++ struct au_nhash whlist;
++ aufs_bindex_t btgt, bstart[2];
++ /* do_rename() only */
++ unsigned char need_diropq, bycpup;
++ struct super_block *sb;
++ unsigned int flags;
++ unsigned int mnt_flags;
++ struct au_ndx ndx;
++
++ /* do_rename() only */
++#ifdef CONFIG_AUFS_BR_NFS
++ struct au_hin_ignore ign[3];
++#else
++ struct au_hin_ignore ign[2];
++#endif
++ struct vfsub_args vargs;
++ struct au_whtmp_rmdir_args *thargs;
++ struct dentry *wh_dentry[2], *h_dst, *h_src;
++};
++
++/* ---------------------------------------------------------------------- */
++
++#define RevertFailure(fmt, args...) do { \
++ AuIOErrWhck("revert failure: " fmt " (%d, %d)\n", \
++ ##args, err, rerr); \
++ err = -EIO; \
++ } while (0)
++
++static noinline_for_stack
++void au_ren_rev_diropq(int err, struct au_ren_args *a)
++{
++ int rerr;
++ struct inode *h_inode;
++
++ /* lock inode simply since inotify is not set to h_inode. */
++ h_inode = au_h_dptr(a->src_dentry, a->btgt)->d_inode;
++ vfsub_i_lock_nested(h_inode, AuLsc_I_CHILD);
++ rerr = au_diropq_remove(a->src_dentry, a->btgt,
++ au_ftest_ren(a->flags, DLGT));
++ vfsub_i_unlock(h_inode);
++ if (rerr)
++ RevertFailure("remove diropq %.*s", AuDLNPair(a->src_dentry));
++}
++
++static noinline_for_stack
++void au_ren_rev_rename(int err, struct au_ren_args *a)
++{
++ int rerr;
++ struct dentry *h_d;
++ struct qstr *name = &a->src_dentry->d_name;
++
++ h_d = au_lkup_one(name->name, a->h_parent[SRC], name->len, &a->ndx);
++ rerr = PTR_ERR(h_d);
++ if (IS_ERR(h_d)) {
++ RevertFailure("au_lkup_one %.*s", AuDLNPair(a->src_dentry));
++ return;
++ }
++
++ AuDebugOn(h_d->d_inode);
++ vfsub_args_reinit(&a->vargs);
++ vfsub_ign_hinode(&a->vargs, IN_MOVED_FROM,
++ au_pinned_hdir(a->pin + DST));
++ vfsub_ign_hinode(&a->vargs, IN_MOVED_TO, au_pinned_hdir(a->pin + SRC));
++ rerr = vfsub_rename(au_pinned_h_dir(a->pin + DST),
++ au_h_dptr(a->src_dentry, a->btgt),
++ au_pinned_h_dir(a->pin + SRC), h_d, &a->vargs);
++ d_drop(h_d);
++ dput(h_d);
++ /* au_set_h_dptr(a->src_dentry, a->btgt, NULL); */
++ if (rerr)
++ RevertFailure("rename %.*s", AuDLNPair(a->src_dentry));
++}
++
++static noinline_for_stack
++void au_ren_rev_cpup(int err, struct au_ren_args *a)
++{
++ int rerr;
++
++ vfsub_args_reinit(&a->vargs);
++ vfsub_ign_hinode(&a->vargs, IN_DELETE, au_pinned_hdir(a->pin + DST));
++ rerr = vfsub_unlink(au_pinned_h_dir(a->pin + DST), a->h_dentry[DST],
++ &a->vargs);
++ au_set_h_dptr(a->src_dentry, a->btgt, NULL);
++ au_set_dbstart(a->src_dentry, a->bstart[SRC]);
++ if (rerr)
++ RevertFailure("unlink %.*s", AuDLNPair(a->h_dentry[DST]));
++}
++
++static noinline_for_stack
++void au_ren_rev_whtmp(int err, struct au_ren_args *a)
++{
++ int rerr;
++ struct dentry *h_d;
++ struct inode *h_inode;
++ struct qstr *name = &a->dentry->d_name;
++
++ h_d = au_lkup_one(name->name, a->h_parent[DST], name->len, &a->ndx);
++ rerr = PTR_ERR(h_d);
++ if (IS_ERR(h_d)) {
++ RevertFailure("lookup %.*s", AuLNPair(name));
++ return;
++ }
++ if (h_d->d_inode) {
++ d_drop(h_d);
++ dput(h_d);
++ return;
++ }
++
++ h_inode = a->h_dst->d_inode;
++ vfsub_i_lock_nested(h_inode, AuLsc_I_CHILD);
++ au_hin_resume(au_hi(a->src_dentry->d_inode, a->btgt));
++ vfsub_i_unlock(h_inode);
++ vfsub_args_reinit(&a->vargs);
++ vfsub_ign_hinode(&a->vargs, IN_MOVED_TO | IN_MOVED_FROM,
++ au_pinned_hdir(a->pin + DST));
++ rerr = vfsub_rename(au_pinned_h_dir(a->pin + DST), a->h_dst,
++ au_pinned_h_dir(a->pin + DST), h_d, &a->vargs);
++ d_drop(h_d);
++ dput(h_d);
++ if (!rerr) {
++ au_set_h_dptr(a->dentry, a->btgt, NULL);
++ au_set_h_dptr(a->dentry, a->btgt, dget(a->h_dst));
++ } else
++ RevertFailure("rename %.*s", AuDLNPair(a->h_dst));
++}
++
++static noinline_for_stack
++void au_ren_rev_whsrc(int err, struct au_ren_args *a)
++{
++ int rerr;
++
++ rerr = au_wh_unlink_dentry(au_pinned_hdir(a->pin + SRC),
++ a->wh_dentry[SRC], a->src_dentry, /*dlgt*/0);
++ if (rerr)
++ RevertFailure("unlink %.*s", AuDLNPair(a->wh_dentry[SRC]));
++}
++#undef RevertFailure
++
++/* ---------------------------------------------------------------------- */
++
++static /* noinline_for_stack */
++int au_ren_or_cpup(struct au_ren_args *a)
++{
++ int err;
++
++ AuTraceEnter();
++
++ if (au_dbstart(a->src_dentry) == a->btgt) {
++ if (a->need_diropq && au_dbdiropq(a->src_dentry) == a->btgt)
++ a->need_diropq = 0;
++ vfsub_ign_hinode(&a->vargs, IN_MOVED_FROM,
++ au_pinned_hdir(a->pin + SRC));
++ vfsub_ign_hinode(&a->vargs, IN_MOVED_TO,
++ au_pinned_hdir(a->pin + DST));
++ /* nfs_rename() calls d_delete() */
++ if (au_test_nfs(au_pinned_h_dir(a->pin + DST)->i_sb)
++ && a->h_dentry[DST]->d_inode
++ && (S_ISDIR(a->h_dentry[DST]->d_inode->i_mode)
++ || atomic_read(&a->h_dentry[DST]->d_count) <= 2))
++ vfsub_ign_hinode(&a->vargs, IN_DELETE,
++ au_pinned_hdir(a->pin + DST));
++ AuDebugOn(au_dbstart(a->src_dentry) != a->btgt);
++ err = vfsub_rename(au_pinned_h_dir(a->pin + SRC),
++ au_h_dptr(a->src_dentry, a->btgt),
++ au_pinned_h_dir(a->pin + DST),
++ a->h_dentry[DST], &a->vargs);
++ } else {
++ struct inode *h_inode = a->h_dentry[SRC]->d_inode;
++
++ a->bycpup = 1;
++ vfsub_i_lock_nested(h_inode, AuLsc_I_CHILD);
++ au_set_dbstart(a->src_dentry, a->btgt);
++ au_set_h_dptr(a->src_dentry, a->btgt, dget(a->h_dentry[DST]));
++ err = au_sio_cpup_single(a->src_dentry, a->btgt, a->bstart[SRC],
++ -1, !AuCpup_DTIME, a->parent[DST]);
++ if (unlikely(err)) {
++ au_set_h_dptr(a->src_dentry, a->btgt, NULL);
++ au_set_dbstart(a->src_dentry, a->bstart[SRC]);
++ }
++ vfsub_i_unlock(h_inode);
++ }
++
++ return err;
++}
++
++static /* noinline_for_stack */
++int au_ren_del_whtmp(struct au_ren_args *a)
++{
++ int err;
++
++ AuTraceEnter();
++
++ if (au_test_nfs(a->h_dst->d_sb)
++ || !au_nhash_test_longer_wh(&a->whlist, a->btgt,
++ au_sbi(a->sb)->si_dirwh)) {
++ err = au_whtmp_rmdir(a->dir, a->btgt, a->h_dst, &a->whlist);
++ if (unlikely(err))
++ AuWarn("failed removing whtmp dir %.*s (%d), "
++ "ignored.\n", AuDLNPair(a->h_dst), err);
++ } else {
++ au_whtmp_kick_rmdir(a->dir, a->btgt, a->h_dst, &a->whlist,
++ a->thargs);
++ dput(a->h_dst);
++ a->thargs = NULL;
++ }
++
++ return 0;
++}
++
++static /* noinline_for_stack */
++int au_ren_diropq(struct au_ren_args *a)
++{
++ int err;
++ struct dentry *diropq;
++ struct inode *h_inode;
++
++ AuTraceEnter();
++
++ err = 0;
++ h_inode = au_h_dptr(a->src_dentry, a->btgt)->d_inode;
++ vfsub_i_lock_nested(h_inode, AuLsc_I_CHILD);
++ diropq = au_diropq_create(a->src_dentry, a->btgt,
++ au_ftest_ren(a->flags, DLGT));
++ vfsub_i_unlock(h_inode);
++ if (IS_ERR(diropq))
++ err = PTR_ERR(diropq);
++ dput(diropq);
++
++ return err;
++}
++
++static /* noinline_for_stack */
++int do_rename(struct au_ren_args *a)
++{
++ int err;
++ aufs_bindex_t bindex, bend;
++ struct dentry *h_d;
++
++ LKTRTrace("%.*s/%.*s, %.*s/%.*s, "
++ "hd{%p, %p}, hp{%p, %p}, wh %p, btgt %d, bstart{%d, %d}, "
++ "flags 0x%x\n",
++ AuDLNPair(a->parent[SRC]), AuDLNPair(a->src_dentry),
++ AuDLNPair(a->parent[DST]), AuDLNPair(a->dentry),
++ a->h_dentry[SRC], a->h_dentry[DST],
++ a->h_parent[SRC], a->h_parent[DST],
++ &a->whlist, a->btgt,
++ a->bstart[SRC], a->bstart[DST],
++ a->flags);
++
++ /* prepare workqueue args */
++ if (au_ftest_ren(a->flags, ISDIR) && a->h_dentry[DST]->d_inode) {
++ err = -ENOMEM;
++ a->thargs = kmalloc(sizeof(*a->thargs), GFP_NOFS);
++ if (unlikely(!a->thargs))
++ goto out;
++ a->h_dst = dget(a->h_dentry[DST]);
++ }
++
++ a->ndx.nfsmnt = au_nfsmnt(a->sb, a->btgt);
++ if (au_ftest_ren(a->flags, DLGT))
++ au_fset_ndx(a->ndx.flags, DLGT);
++
++ /* create whiteout for src_dentry */
++ if (au_ftest_ren(a->flags, WHSRC)) {
++ a->wh_dentry[SRC] = au_wh_create(a->src_dentry, a->btgt,
++ a->h_parent[SRC], &a->ndx);
++ err = PTR_ERR(a->wh_dentry[SRC]);
++ if (IS_ERR(a->wh_dentry[SRC]))
++ goto out_thargs;
++ }
++
++ /* lookup whiteout for dentry */
++ if (au_ftest_ren(a->flags, WHDST)) {
++ h_d = au_wh_lkup(a->h_parent[DST], &a->dentry->d_name, &a->ndx);
++ err = PTR_ERR(h_d);
++ if (IS_ERR(h_d))
++ goto out_whsrc;
++ if (!h_d->d_inode)
++ dput(h_d);
++ else
++ a->wh_dentry[DST] = h_d;
++ }
++
++ /* rename dentry to tmpwh */
++ if (a->thargs) {
++ struct au_hinode *hinode;
++
++ AuDbgDentry(a->h_dentry[DST]);
++ err = au_whtmp_ren(a->dir, a->btgt, a->h_dentry[DST]);
++ if (unlikely(err))
++ goto out_whdst;
++ AuDbgDentry(a->h_dentry[DST]);
++ hinode = au_hi(a->dentry->d_inode, a->btgt);
++ /* todo: bad approach? */
++ vfsub_i_lock_nested(hinode->hi_inode, AuLsc_I_CHILD);
++ au_hin_suspend(hinode);
++ vfsub_i_unlock(hinode->hi_inode);
++ au_set_h_dptr(a->dentry, a->btgt, NULL);
++ AuDbgDentry(a->h_dentry[DST]);
++ err = au_lkup_neg(a->dentry, a->btgt);
++ if (unlikely(err))
++ goto out_whtmp;
++ a->h_dentry[DST] = au_h_dptr(a->dentry, a->btgt);
++ }
++
++ /* cpup src */
++ if (a->h_dentry[DST]->d_inode && a->bstart[SRC] != a->btgt) {
++ struct inode *h_inode = a->h_dentry[SRC]->d_inode;
++
++ vfsub_i_lock_nested(h_inode, AuLsc_I_CHILD);
++ err = au_sio_cpup_simple(a->src_dentry, a->btgt, -1,
++ !AuCpup_DTIME);
++ vfsub_i_unlock(h_inode);
++ if (unlikely(err))
++ goto out_whtmp;
++ }
++
++ /* rename by vfs_rename or cpup */
++ a->need_diropq = au_ftest_ren(a->flags, ISDIR)
++ && (a->wh_dentry[DST]
++ || au_dbdiropq(a->dentry) == a->btgt
++ /* hide the lower to keep xino */
++ || a->btgt < au_dbend(a->dentry)
++ || au_opt_test(a->mnt_flags, ALWAYS_DIROPQ));
++ a->bycpup = 0;
++ vfsub_args_init(&a->vargs, a->ign, au_ftest_ren(a->flags, DLGT), 0);
++ err = au_ren_or_cpup(a);
++ if (unlikely(err))
++ goto out_whtmp;
++
++ /* make dir opaque */
++ if (a->need_diropq) {
++ err = au_ren_diropq(a);
++ if (unlikely(err))
++ goto out_rename;
++ }
++
++ /* update target timestamps */
++ AuDebugOn(au_dbstart(a->src_dentry) != a->btgt);
++ a->h_src = au_h_dptr(a->src_dentry, a->btgt);
++ au_update_fuse_h_inode(NULL, a->h_src); /*ignore*/
++ /* src_dentry->d_inode->i_atime = h_src->d_inode->i_atime; */
++ a->src_dentry->d_inode->i_ctime = a->h_src->d_inode->i_ctime;
++
++ /* remove whiteout for dentry */
++ if (a->wh_dentry[DST]) {
++ err = au_wh_unlink_dentry(au_pinned_hdir(a->pin + DST),
++ a->wh_dentry[DST], a->dentry,
++ /*dlgt*/0);
++ if (unlikely(err))
++ goto out_diropq;
++ }
++
++ /* remove whtmp */
++ if (a->thargs)
++ /* ignore this error */
++ au_ren_del_whtmp(a);
++
++ err = 0;
++ goto out_success;
++
++ out_diropq:
++ if (a->need_diropq)
++ au_ren_rev_diropq(err, a);
++ out_rename:
++ if (!a->bycpup)
++ au_ren_rev_rename(err, a);
++ else
++ au_ren_rev_cpup(err, a);
++ out_whtmp:
++ if (a->thargs)
++ au_ren_rev_whtmp(err, a);
++ out_whdst:
++ dput(a->wh_dentry[DST]);
++ a->wh_dentry[DST] = NULL;
++ out_whsrc:
++ if (a->wh_dentry[SRC])
++ au_ren_rev_whsrc(err, a);
++ d_drop(a->src_dentry);
++ bend = au_dbend(a->src_dentry);
++ for (bindex = au_dbstart(a->src_dentry); bindex <= bend; bindex++) {
++ h_d = au_h_dptr(a->src_dentry, bindex);
++ if (h_d)
++ d_drop(h_d);
++ }
++ d_drop(a->dentry);
++ bend = au_dbend(a->dentry);
++ for (bindex = au_dbstart(a->dentry); bindex <= bend; bindex++) {
++ h_d = au_h_dptr(a->dentry, bindex);
++ if (h_d)
++ d_drop(h_d);
++ }
++ au_update_dbstart(a->dentry);
++ if (a->thargs)
++ d_drop(a->h_dst);
++ out_success:
++ dput(a->wh_dentry[SRC]);
++ dput(a->wh_dentry[DST]);
++ out_thargs:
++ if (a->thargs) {
++ dput(a->h_dst);
++ kfree(a->thargs);
++ }
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/*
++ * test if @dentry dir can be rename destination or not.
++ * success means, it is a logically empty dir.
++ */
++static int may_rename_dstdir(struct dentry *dentry, aufs_bindex_t btgt,
++ struct au_nhash *whlist)
++{
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++
++ return au_test_empty(dentry, whlist);
++}
++
++/*
++ * test if @dentry dir can be rename source or not.
++ * if it can, return 0 and @children is filled.
++ * success means,
++ * - or, it is a logically empty dir.
++ * - or, it exists on writable branch and has no children including whiteouts
++ * on the lower branch.
++ */
++static int may_rename_srcdir(struct dentry *dentry, aufs_bindex_t btgt)
++{
++ int err;
++ aufs_bindex_t bstart;
++
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++
++ bstart = au_dbstart(dentry);
++ if (bstart != btgt) {
++ struct au_nhash *whlist;
++
++ whlist = au_nhash_new(GFP_NOFS);
++ err = PTR_ERR(whlist);
++ if (IS_ERR(whlist))
++ goto out;
++ err = au_test_empty(dentry, whlist);
++ au_nhash_del(whlist);
++ goto out;
++ }
++
++ if (bstart == au_dbtaildir(dentry))
++ return 0; /* success */
++
++ err = au_test_empty_lower(dentry);
++
++ out:
++ if (/* unlikely */(err == -ENOTEMPTY)) {
++ AuWarn1("renaming dir who has child(ren) on multiple branches,"
++ " is not supported\n");
++ err = -EXDEV;
++ }
++ AuTraceErr(err);
++ return err;
++}
++
++/* mainly for link(2) and rename(2) */
++int au_wbr(struct dentry *dentry, aufs_bindex_t btgt)
++{
++ aufs_bindex_t bdiropq, bwh;
++ struct dentry *parent;
++
++ LKTRTrace("%.*s, b%d\n", AuDLNPair(dentry), btgt);
++ parent = dentry->d_parent;
++ IMustLock(parent->d_inode); /* dir is locked */
++
++ bdiropq = au_dbdiropq(parent);
++ bwh = au_dbwh(dentry);
++ if (au_br_rdonly(au_sbr(dentry->d_sb, btgt))
++ || (0 <= bdiropq && bdiropq < btgt)
++ || (0 <= bwh && bwh < btgt))
++ btgt = -1;
++
++ LKTRTrace("btgt %d\n", btgt);
++ return btgt;
++}
++
++/*
++ * simple tests for rename.
++ * following the checks in vfs, plus the parent-child relationship.
++ */
++static int au_may_ren(struct au_ren_args *a)
++{
++ int err;
++ struct inode *h_inode;
++
++ AuTraceEnter();
++
++ if (a->bstart[SRC] == a->btgt) {
++ err = au_may_del(a->src_dentry, a->btgt, a->h_parent[SRC],
++ au_ftest_ren(a->flags, ISDIR), &a->ndx);
++ if (unlikely(err))
++ goto out;
++ err = -EINVAL;
++ if (unlikely(a->h_dentry[SRC] == a->h_trap))
++ goto out;
++ }
++
++ err = 0;
++ if (a->bstart[DST] != a->btgt)
++ goto out;
++
++ err = -EIO;
++ h_inode = a->h_dentry[DST]->d_inode;
++ if (!a->dentry->d_inode) {
++ if (unlikely(h_inode))
++ goto out;
++ err = au_may_add(a->dentry, a->btgt, a->h_parent[DST],
++ au_ftest_ren(a->flags, ISDIR), &a->ndx);
++ } else {
++ if (unlikely(!h_inode || !h_inode->i_nlink))
++ goto out;
++ err = au_may_del(a->dentry, a->btgt, a->h_parent[DST],
++ au_ftest_ren(a->flags, ISDIR), &a->ndx);
++ if (unlikely(err))
++ goto out;
++ err = -ENOTEMPTY;
++ if (unlikely(a->h_dentry[DST] == a->h_trap))
++ goto out;
++ err = 0;
++ }
++
++ out:
++ if (unlikely(err == -ENOENT || err == -EEXIST))
++ err = -EIO;
++ AuTraceErr(err);
++ return err;
++}
++
++/*
++ * locking order
++ * (VFS)
++ * - src_dir and dir by lock_rename()
++ * - inode if exitsts
++ * (aufs)
++ * - lock all
++ * + src_dentry and dentry by aufs_read_and_write_lock2() which calls,
++ * + si_read_lock
++ * + di_write_lock2_child()
++ * + di_write_lock_child()
++ * + ii_write_lock_child()
++ * + di_write_lock_child2()
++ * + ii_write_lock_child2()
++ * + src_parent and parent
++ * + di_write_lock_parent()
++ * + ii_write_lock_parent()
++ * + di_write_lock_parent2()
++ * + ii_write_lock_parent2()
++ * + if udab=inotify is specified, lock grand parents (crazy)
++ * + di_read_lock_gparent()
++ * + ii_read_lock_gparent()
++ * + di_read_lock_gparent2()
++ * + ii_read_lock_gparent2()
++ * + mutex_lock(s_vfs_rename_mutex)
++ * + mutex_lock_gparent()
++ * + mutex_lock_gparent2()
++ * + mutex_lock_parent()
++ * + mutex_lock_parent2()
++ * + else lower src_dir and dir by vfsub_lock_rename()
++ * + verify the every relations between child, parent and grand parent. if any
++ * of them failed, unlock all and return -EBUSY.
++ */
++static void au_ren_pin_init(struct au_pin *first, struct dentry *d1,
++ struct au_pin *next, struct dentry *d2,
++ aufs_bindex_t bindex)
++{
++ AuTraceEnter();
++
++ /* AuLsc_DI_PARENT3 is for higher gparent initially */
++ au_pin_init(first, d1, bindex, AuLsc_DI_PARENT2, AuLsc_I_PARENT2,
++ AuPin_DI_LOCKED | AuPin_DO_GPARENT);
++ /* AuLsc_DI_PARENT4 is for lower gparent initially */
++ au_pin_init(next, d2, bindex, AuLsc_DI_PARENT3, AuLsc_I_PARENT4,
++ AuPin_DI_LOCKED | AuPin_DO_GPARENT);
++}
++
++static void au_ren_fake_pin(struct au_ren_args *a)
++{
++ int i;
++ struct au_pin1 *p;
++ struct inode *h_i;
++
++ AuTraceEnter();
++
++ /* they increment the ref counter */
++ for (i = 0; i < 2; i++) {
++ p = a->pin[i].pin + AuPin_PARENT;
++ au_pin_set_parent(a->pin + i, a->parent[i]);
++ dput(a->parent[i]);
++ h_i = a->h_parent[i]->d_inode;
++ au_pin_set_h_dir(a->pin + i, h_i);
++ iput(h_i);
++
++ if (!a->gparent[i]) {
++ au_pin_set_gparent(a->pin + i, NULL);
++ au_pin_set_h_gdir(a->pin + i, NULL);
++ } else {
++ au_pin_set_gparent(a->pin + i, a->gparent[i]);
++ dput(a->gparent[i]);
++ h_i = au_h_iptr(a->gparent[i]->d_inode, a->btgt);
++ au_pin_set_h_gdir(a->pin + i, h_i);
++ iput(h_i);
++ }
++ }
++}
++
++/* crazy */
++/* cf. i_op.c: au_do_pin() */
++static int au_ren_pin4(int higher, int lower, struct au_ren_args *a)
++{
++ int err, i, lsc;
++ struct au_pin *p;
++ struct au_pin1 *p4[4];
++ struct inode *h_dir;
++
++#if 0
++ lktr_set_pid(current->pid, LktrArrayPid);
++ LKTRTrace("i%lu, %.*s, i%lu, %.*s\n",
++ a->src_dir->i_ino, AuDLNPair(a->src_dentry),
++ a->dir->i_ino, AuDLNPair(a->dentry));
++ lktr_clear_pid(current->pid, LktrArrayPid);
++#endif
++ LKTRTrace("%d, %d\n", higher, lower);
++
++ err = 0;
++ p = a->pin + higher;
++ p4[0] = au_pin_gp(p); /* highest */
++ p4[1] = p->pin + AuPin_PARENT;
++ p = a->pin + lower;
++ p4[2] = au_pin_gp(p);
++ p4[3] = p->pin + AuPin_PARENT;
++
++ if (a->gparent[higher]) {
++ au_pin_do_set_parent(p4[0], a->gparent[higher]);
++ au_pin_do_set_dentry(p4[0], a->parent[higher]);
++ }
++ au_pin_do_set_parent(p4[1], a->parent[higher]);
++ if (a->gparent[lower]) {
++ au_pin_do_set_parent(p4[2], a->gparent[lower]);
++ au_pin_do_set_dentry(p4[2], a->parent[lower]);
++ }
++ au_pin_do_set_parent(p4[3], a->parent[lower]);
++
++#if 0
++ lktr_set_pid(current->pid, LktrArrayPid);
++ for (i = 0; i < 4; i++)
++ AuDbgDentry(p4[i]->parent);
++#endif
++ DiMustWriteLock(p4[3]->parent);
++ di_write_unlock(p4[1]->parent);
++ if (p4[2]->parent)
++ di_read_lock_parent2(p4[2]->parent, AuLock_IR);
++ di_write_lock_parent3(p4[1]->parent);
++ if (p4[0]->parent)
++ di_read_lock_parent4(p4[0]->parent, AuLock_IR);
++ //lktr_clear_pid(current->pid, LktrArrayPid);
++
++ vfsub_lock_rename_mutex(au_sbr_sb(a->dentry->d_sb, a->btgt));
++ au_fset_ren(a->flags, VFSLOCK);
++
++ lsc = AuLsc_I_PARENT;
++ for (i = 0; i < 4; i++, lsc++) {
++ if (p4[i]->parent) {
++ h_dir = au_h_iptr(p4[i]->parent->d_inode, a->btgt);
++ au_pin_do_set_h_dir(p4[i], h_dir);
++ vfsub_i_lock_nested(p4[i]->h_dir, lsc);
++ }
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++static struct dentry *au_ren_pin3(int higher, int lower, struct au_ren_args *a)
++{
++ struct dentry *h_trap;
++ struct au_pin *p;
++ int err;
++
++ LKTRTrace("%d, %d\n", higher, lower);
++
++ p = a->pin + higher;
++ AuDebugOn(!au_pin_gp(p));
++ au_fset_pin(au_pin_gp(p)->flags, VFS_RENAME);
++ err = au_do_pin(p->pin + AuPin_PARENT, au_pin_gp(p));
++ h_trap = ERR_PTR(err);
++ if (unlikely(err))
++ goto out;
++ p = a->pin + lower;
++ au_fclr_pin(p->pin[AuPin_PARENT].flags, DO_GPARENT);
++ err = au_do_pin(p->pin + AuPin_PARENT, NULL);
++ h_trap = ERR_PTR(err);
++ if (unlikely(err)) {
++ p = a->pin + higher;
++ au_do_unpin(p->pin + AuPin_PARENT, au_pin_gp(p));
++ goto out;
++ }
++ h_trap = au_pinned_h_parent(p);
++
++ out:
++ AuTraceErrPtr(h_trap);
++ return h_trap;
++}
++
++static struct dentry *au_ren_pin(struct au_ren_args *a)
++{
++ struct dentry *h_trap;
++ struct inode *h_gdir;
++ int err, i, same_gp;
++
++ //lktr_set_pid(current->pid, LktrArrayPid);
++ AuTraceEnter();
++ AuDebugOn(!au_opt_test(a->mnt_flags, UDBA_INOTIFY));
++
++ /* gdir is not locked */
++ same_gp = 0;
++ if (!IS_ROOT(a->parent[SRC]))
++ a->gparent[SRC] = dget_parent(a->parent[SRC]);
++ if (!IS_ROOT(a->parent[DST])) {
++ a->gparent[DST] = dget_parent(a->parent[DST]);
++ same_gp = (a->gparent[SRC] == a->gparent[DST]);
++ }
++
++ /*
++ * patterns
++ * - gparent[SRC] is parent[DST]
++ * - parent[SRC] is gparent[DST]
++ * - gparent[SRC] is gparent[DST]
++ * - gparent[SRC] is a descendant of parent[DST]
++ * - parent[SRC] is an ancestor of gparent[DST]
++ * - not within grand parent range
++ */
++ err = 0;
++ h_trap = ERR_PTR(-EBUSY);
++ if (a->gparent[SRC] == a->parent[DST]) {
++ //AuDbg("here\n");
++ LKTRLabel(here);
++ au_ren_pin_init(a->pin + DST, a->dentry, a->pin + SRC,
++ a->src_dentry, a->btgt);
++ h_trap = au_ren_pin3(DST, SRC, a);
++ if (!IS_ERR(h_trap)) {
++ h_gdir = au_pinned_h_dir(a->pin + DST);
++ err = au_verify_parent(a->h_parent[SRC], h_gdir);
++ if (unlikely(err))
++ h_trap = ERR_PTR(-EBUSY);
++ }
++ } else if (a->parent[SRC] == a->gparent[DST] || same_gp) {
++ //AuDbg("here\n");
++ LKTRLabel(here);
++ au_ren_pin_init(a->pin + SRC, a->src_dentry, a->pin + DST,
++ a->dentry, a->btgt);
++ h_trap = au_ren_pin3(SRC, DST, a);
++ if (!IS_ERR(h_trap)) {
++ if (!same_gp)
++ h_gdir = au_pinned_h_dir(a->pin + SRC);
++ else
++ h_gdir = au_pinned_h_gdir(a->pin + SRC);
++ err = au_verify_parent(a->h_parent[DST], h_gdir);
++ if (unlikely(err))
++ h_trap = ERR_PTR(-EBUSY);
++ }
++ } else if (a->gparent[SRC]
++ && (h_trap = au_test_subdir(a->gparent[SRC],
++ a->parent[DST]))) {
++ //AuDbg("here\n");
++ LKTRLabel(here);
++ au_ren_pin_init(a->pin + DST, a->dentry, a->pin + SRC,
++ a->src_dentry, a->btgt);
++ if (a->gparent[DST]) {
++ err = au_ren_pin4(DST, SRC, a);
++ if (unlikely(err))
++ h_trap = ERR_PTR(err);
++ } else {
++ struct dentry *t;
++ t = au_ren_pin3(DST, SRC, a);
++ AuDebugOn(t == h_trap);
++ }
++#if 1
++ } else if (a->gparent[DST]
++ && (h_trap = au_test_subdir(a->gparent[DST],
++ a->parent[SRC]))) {
++ /* todo: is this really necessary? */
++ //AuDbg("here\n");
++ LKTRLabel(here);
++ au_ren_pin_init(a->pin + SRC, a->src_dentry, a->pin + DST,
++ a->dentry, a->btgt);
++ if (a->gparent[SRC]) {
++ err = au_ren_pin4(SRC, DST, a);
++ if (unlikely(err))
++ h_trap = ERR_PTR(err);
++ } else {
++ struct dentry *t;
++ t = au_ren_pin3(SRC, DST, a);
++ AuDebugOn(t == h_trap);
++ }
++#endif
++ } else /* if (a->gparent[DST]
++ && (h_trap = au_test_subdir(a->gparent[DST],
++ a->parent[SRC]))) */ {
++ //AuDbg("here\n");
++ LKTRLabel(here);
++ h_trap = NULL;
++ if (a->gparent[DST])
++ h_trap = au_test_subdir(a->gparent[DST],
++ a->parent[SRC]);
++ au_ren_pin_init(a->pin + SRC, a->src_dentry, a->pin + DST,
++ a->dentry, a->btgt);
++ err = au_ren_pin4(SRC, DST, a);
++ if (unlikely(err))
++ h_trap = ERR_PTR(err);
++ }
++ au_fset_ren(a->flags, PINNED);
++
++ if (!IS_ERR(h_trap)) {
++ err = 0;
++ for (i = 0; !err && i < 2; i++) {
++ h_gdir = au_pinned_h_gdir(a->pin + i);
++ if (h_gdir)
++ err = au_verify_parent(a->h_parent[i], h_gdir);
++ }
++ if (unlikely(err)) {
++ h_trap = ERR_PTR(err);
++ //AuDbg("here\n");
++ }
++ }
++
++ dput(a->gparent[SRC]);
++ dput(a->gparent[DST]);
++ memset(a->gparent, 0, sizeof(a->gparent));
++ AuTraceErrPtr(h_trap);
++ //lktr_clear_pid(current->pid, LktrArrayPid);
++ return h_trap;
++}
++
++static void au_ren_unlock(struct au_ren_args *a)
++{
++ int i;
++
++ AuTraceEnter();
++
++ if (au_ftest_ren(a->flags, MNT_WRITE))
++ au_mnt_drop_write(au_sbr_mnt(a->dentry->d_sb, a->btgt));
++ if (a->h_locked[0])
++ vfsub_unlock_rename(a->h_locked[0], a->h_locked[1]);
++ if (au_ftest_ren(a->flags, PINNED)) {
++ au_unpin(a->pin + SRC);
++ au_unpin(a->pin + DST);
++ memset(a->gparent, 0, sizeof(a->gparent));
++ }
++ if (au_ftest_ren(a->flags, VFSLOCK))
++ vfsub_unlock_rename_mutex(au_sbr_sb(a->dentry->d_sb, a->btgt));
++ for (i = 0; i < 2; i++)
++ if (a->gparent[i]) {
++ di_read_unlock(a->gparent[i], AuLock_IR);
++ dput(a->gparent[i]);
++ }
++}
++
++static int au_ren_lock(struct au_ren_args *a)
++{
++ int err;
++ const int hinotify = au_opt_test(a->mnt_flags, UDBA_INOTIFY);
++
++ AuTraceEnter();
++
++ err = 0;
++ if (!hinotify
++ || (au_ftest_ren(a->flags, ISSAMEDIR) && IS_ROOT(a->parent[SRC]))) {
++ au_ren_pin_init(a->pin + SRC, a->src_dentry, a->pin + DST,
++ a->dentry, a->btgt);
++ LKTRLabel(here);
++ a->h_locked[0] = a->h_parent[SRC];
++ a->h_locked[1] = a->h_parent[DST];
++ a->h_trap = vfsub_lock_rename(a->h_locked[0], a->h_locked[1]);
++ au_ren_fake_pin(a);
++ } else if (au_ftest_ren(a->flags, ISSAMEDIR)
++ && !IS_ROOT(a->parent[SRC])) {
++ /* this and next block should not be compiled when
++ hinotify is disabled */
++ /* irregular/tricky rename lock */
++ LKTRLabel(here);
++ au_ren_pin_init(a->pin + SRC, a->src_dentry, a->pin + DST,
++ a->dentry, a->btgt);
++ a->gparent[SRC] = dget_parent(a->parent[SRC]);
++ di_read_lock_parent2(a->gparent[SRC], AuLock_IR);
++ a->h_locked[0] = a->h_parent[SRC];
++ a->h_locked[1] = dget_parent(a->h_parent[SRC]);
++ a->h_trap = vfsub_lock_rename(a->h_locked[0], a->h_locked[1]);
++ err = au_verify_parent(a->h_parent[SRC],
++ a->h_locked[1]->d_inode);
++ dput(a->h_locked[1]);
++ if (!err)
++ au_ren_fake_pin(a);
++ } else {
++ /* 3 or 4 dir locks. crazy */
++ LKTRLabel(here);
++ a->h_trap = au_ren_pin(a);
++ if (IS_ERR(a->h_trap))
++ err = PTR_ERR(a->h_trap);
++ }
++
++ if (!err && au_dbstart(a->src_dentry) == a->btgt)
++ err = au_verify_parent(a->h_dentry[SRC],
++ a->h_parent[SRC]->d_inode);
++ if (!err && au_dbstart(a->dentry) == a->btgt)
++ err = au_verify_parent(a->h_dentry[DST],
++ a->h_parent[DST]->d_inode);
++ if (!err) {
++ err = au_br_want_write(au_sbr(a->dentry->d_sb, a->btgt));
++ if (unlikely(err))
++ goto out_unlock;
++ au_fset_ren(a->flags, MNT_WRITE);
++ goto out; /* success */
++ }
++
++ err = -EBUSY;
++
++ out_unlock:
++ au_ren_unlock(a);
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++int aufs_rename(struct inode *src_dir, struct dentry *src_dentry,
++ struct inode *dir, struct dentry *dentry)
++{
++ int err;
++ aufs_bindex_t bend, bindex;
++ unsigned char do_dt_dstdir, hinotify;
++ struct inode *inode[2];
++ enum { PARENT, CHILD };
++ /* reduce stack space */
++ struct {
++ struct au_ren_args a;
++ struct au_dtime dt[2][2];
++ } *p;
++ struct au_wr_dir_args wr_dir_args = {
++ /* .force_btgt = -1, */
++ .flags = AuWrDir_ADD_ENTRY
++ };
++
++ LKTRTrace("i%lu, %.*s, i%lu, %.*s\n",
++ src_dir->i_ino, AuDLNPair(src_dentry),
++ dir->i_ino, AuDLNPair(dentry));
++ AuDebugOn(IS_ROOT(src_dentry) || IS_ROOT(dentry));
++ IMustLock(src_dir);
++ IMustLock(dir);
++ inode[DST] = dentry->d_inode;
++ if (inode[DST]) {
++ IMustLock(inode[DST]);
++ au_igrab(inode[DST]);
++ }
++
++ err = -ENOMEM;
++ BUILD_BUG_ON(sizeof(*p) > PAGE_SIZE);
++ p = kzalloc(sizeof(*p), GFP_NOFS);
++ if (unlikely(!p))
++ goto out;
++
++ err = -ENOTDIR;
++ p->a.src_dir = src_dir;
++ p->a.src_dentry = src_dentry;
++ p->a.dir = dir;
++ p->a.dentry = dentry;
++ p->a.sb = src_dentry->d_sb;
++ inode[SRC] = src_dentry->d_inode;
++ p->a.flags = 0;
++ if (S_ISDIR(inode[SRC]->i_mode)) {
++ au_fset_ren(p->a.flags, ISDIR);
++ if (unlikely(inode[DST] && !S_ISDIR(inode[DST]->i_mode)))
++ goto out_free;
++ aufs_read_and_write_lock2(dentry, src_dentry, AuLock_DIR);
++ } else
++ aufs_read_and_write_lock2(dentry, src_dentry, 0);
++
++ p->a.mnt_flags = au_mntflags(p->a.sb);
++ if (au_test_dlgt(p->a.mnt_flags))
++ au_fset_ren(p->a.flags, DLGT);
++ p->a.parent[SRC] = src_dentry->d_parent; /* dir inode is locked */
++ p->a.parent[DST] = dentry->d_parent; /* dir inode is locked */
++ au_fset_ren(p->a.flags, ISSAMEDIR); /* temporary */
++ di_write_lock_parent(p->a.parent[DST]);
++
++ /* which branch we process */
++ p->a.bstart[SRC] = au_dbstart(src_dentry);
++ p->a.bstart[DST] = au_dbstart(dentry);
++ if (au_ftest_ren(p->a.flags, ISDIR))
++ au_fset_wrdir(wr_dir_args.flags, ISDIR);
++ wr_dir_args.force_btgt = p->a.bstart[SRC];
++ if (dentry->d_inode && p->a.bstart[DST] < p->a.bstart[SRC])
++ wr_dir_args.force_btgt = p->a.bstart[DST];
++ wr_dir_args.force_btgt = au_wbr(dentry, wr_dir_args.force_btgt);
++ err = au_wr_dir(dentry, src_dentry, &wr_dir_args);
++ p->a.btgt = err;
++ if (unlikely(err < 0))
++ goto out_unlock;
++
++ /* are they available to be renamed */
++ err = 0;
++ au_nhash_init(&p->a.whlist);
++ if (au_ftest_ren(p->a.flags, ISDIR) && inode[DST]) {
++ au_set_dbstart(dentry, p->a.bstart[DST]);
++ err = may_rename_dstdir(dentry, p->a.btgt, &p->a.whlist);
++ au_set_dbstart(dentry, p->a.btgt);
++ }
++ p->a.h_dentry[DST] = au_h_dptr(dentry, au_dbstart(dentry));
++ if (unlikely(err))
++ goto out_unlock;
++ /* todo: minor optimize,
++ their sb may be same while their bindex differs? */
++ p->a.h_dentry[SRC] = au_h_dptr(src_dentry, au_dbstart(src_dentry));
++ if (au_ftest_ren(p->a.flags, ISDIR)) {
++ err = may_rename_srcdir(src_dentry, p->a.btgt);
++ if (unlikely(err))
++ goto out_children;
++ }
++
++ /* prepare the writable parent dir on the same branch */
++ if (p->a.bstart[DST] == p->a.btgt) {
++ au_fset_ren(p->a.flags, WHDST);
++ } else {
++ err = au_cpup_dirs(dentry, p->a.btgt);
++ if (unlikely(err))
++ goto out_children;
++ }
++
++ if (src_dir != dir) {
++ /*
++ * this temporary unlock is safe,
++ * because both dir->i_mutex are locked.
++ */
++ di_write_unlock(p->a.parent[DST]);
++ di_write_lock_parent(p->a.parent[SRC]);
++ err = au_wr_dir_need_wh
++ (src_dentry, au_ftest_ren(p->a.flags, ISDIR),
++ &p->a.btgt);
++ di_write_unlock(p->a.parent[SRC]);
++ di_write_lock2_parent(p->a.parent[SRC], p->a.parent[DST],
++ /*isdir*/1);
++ au_fclr_ren(p->a.flags, ISSAMEDIR);
++ } else
++ err = au_wr_dir_need_wh
++ (src_dentry, au_ftest_ren(p->a.flags, ISDIR),
++ &p->a.btgt);
++ if (unlikely(err < 0))
++ goto out_children;
++ if (err)
++ au_fset_ren(p->a.flags, WHSRC);
++
++ hinotify = au_opt_test(p->a.mnt_flags, UDBA_INOTIFY);
++ p->a.h_parent[SRC] = au_h_dptr(p->a.parent[SRC], p->a.btgt);
++ p->a.h_parent[DST] = au_h_dptr(p->a.parent[DST], p->a.btgt);
++ err = au_ren_lock(&p->a);
++ if (unlikely(err))
++ goto out_children;
++
++ if (!au_opt_test(p->a.mnt_flags, UDBA_NONE)) {
++ p->a.ndx.nfsmnt = au_nfsmnt(p->a.sb, p->a.btgt);
++ if (au_ftest_ren(p->a.flags, DLGT))
++ au_fset_ndx(p->a.ndx.flags, DLGT);
++ err = au_may_ren(&p->a);
++ if (unlikely(err))
++ goto out_hdir;
++ memset(&p->a.ndx, 0, sizeof(p->a.ndx));
++ }
++
++ /* store timestamps to be revertible */
++ au_dtime_store(p->dt[PARENT] + SRC, p->a.parent[SRC],
++ p->a.h_parent[SRC], au_pinned_hdir(p->a.pin + SRC),
++ au_pinned_hgdir(p->a.pin + SRC)
++ /* hgdir[SRC] */);
++ if (!au_ftest_ren(p->a.flags, ISSAMEDIR))
++ au_dtime_store(p->dt[PARENT] + DST, p->a.parent[DST],
++ p->a.h_parent[DST],
++ au_pinned_hdir(p->a.pin + DST),
++ au_pinned_hgdir(p->a.pin + DST)
++ /* hgdir[DST] */);
++ do_dt_dstdir = 0;
++ if (au_ftest_ren(p->a.flags, ISDIR)) {
++ au_dtime_store(p->dt[CHILD] + SRC, src_dentry,
++ p->a.h_dentry[SRC], au_hi(inode[SRC], p->a.btgt),
++ au_pinned_hdir(p->a.pin + SRC));
++ if (p->a.h_dentry[DST]->d_inode) {
++ do_dt_dstdir = 1;
++ au_dtime_store(p->dt[CHILD] + DST, dentry,
++ p->a.h_dentry[DST],
++ au_hi(inode[DST], p->a.btgt),
++ au_pinned_hdir(p->a.pin + DST));
++ }
++ }
++
++ err = do_rename(&p->a);
++ if (unlikely(err))
++ goto out_dt;
++
++ /* update dir attributes */
++ dir->i_version++;
++ if (au_ftest_ren(p->a.flags, ISDIR)) {
++ /* is this updating defined in POSIX? */
++ //vfsub_i_lock(inode[SRC]);
++ au_cpup_attr_timesizes(inode[SRC]);
++ //vfsub_i_unlock(inode[SRC]);
++
++ au_cpup_attr_nlink(dir, /*force*/1);
++ if (inode[DST]) {
++ inode[DST]->i_nlink = 0;
++ au_cpup_attr_timesizes(inode[DST]);
++ }
++ }
++ if (au_ibstart(dir) == p->a.btgt)
++ au_cpup_attr_timesizes(dir);
++
++ if (!au_ftest_ren(p->a.flags, ISSAMEDIR)) {
++ src_dir->i_version++;
++ if (au_ftest_ren(p->a.flags, ISDIR))
++ au_cpup_attr_nlink(src_dir, /*force*/1);
++ if (au_ibstart(src_dir) == p->a.btgt)
++ au_cpup_attr_timesizes(src_dir);
++ }
++
++ /* todo: simple d_drop(src_dentry) is not enough? */
++ /* dput/iput all lower dentries */
++ au_set_dbwh(src_dentry, -1);
++ bend = au_dbend(src_dentry);
++ for (bindex = p->a.btgt + 1; bindex <= bend; bindex++) {
++ struct dentry *hd;
++ hd = au_h_dptr(src_dentry, bindex);
++ if (hd)
++ au_set_h_dptr(src_dentry, bindex, NULL);
++ }
++ au_set_dbend(src_dentry, p->a.btgt);
++
++ if (au_opt_test(p->a.mnt_flags, PLINK)
++ && au_plink_test(src_dentry->d_sb, inode[SRC]))
++ goto out_hdir; /* success */
++ bend = au_ibend(inode[SRC]);
++ for (bindex = p->a.btgt + 1; bindex <= bend; bindex++) {
++ struct inode *hi;
++ hi = au_h_iptr(inode[SRC], bindex);
++ if (hi) {
++ au_xino_write0(p->a.sb, bindex, hi->i_ino, 0);
++ /* ignore this error */
++ au_set_h_iptr(inode[SRC], bindex, NULL, 0);
++ }
++ }
++ au_set_ibend(inode[SRC], p->a.btgt);
++ goto out_hdir; /* success */
++
++ out_dt:
++ au_dtime_revert(p->dt[PARENT] + SRC);
++ if (!au_ftest_ren(p->a.flags, ISSAMEDIR))
++ au_dtime_revert(p->dt[PARENT] + DST);
++ if (au_ftest_ren(p->a.flags, ISDIR) && err != -EIO) {
++ struct dentry *hd;
++
++ hd = p->dt[CHILD][SRC].dt_h_dentry;
++ vfsub_i_lock_nested(hd->d_inode, AuLsc_I_CHILD);
++ au_dtime_revert(p->dt[CHILD] + SRC);
++ vfsub_i_unlock(hd->d_inode);
++ if (do_dt_dstdir) {
++ hd = p->dt[CHILD][DST].dt_h_dentry;
++ vfsub_i_lock_nested(hd->d_inode, AuLsc_I_CHILD);
++ au_dtime_revert(p->dt[CHILD] + DST);
++ vfsub_i_unlock(hd->d_inode);
++ }
++ }
++ out_hdir:
++ au_ren_unlock(&p->a);
++ out_children:
++ au_nhash_fin(&p->a.whlist);
++ out_unlock:
++ if (unlikely(err && au_ftest_ren(p->a.flags, ISDIR))) {
++ au_update_dbstart(dentry);
++ d_drop(dentry);
++ }
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19)
++ if (!err) {
++ d_move(src_dentry, dentry);
++ if (inode[DST]
++ && (inode[DST]->i_nlink == 1
++ || au_ftest_ren(p->a.flags, ISDIR)))
++ inode[DST]->i_flags |= S_DEAD;
++ }
++#endif
++ if (au_ftest_ren(p->a.flags, ISSAMEDIR))
++ di_write_unlock(p->a.parent[DST]);
++ else
++ di_write_unlock2(p->a.parent[SRC], p->a.parent[DST]);
++ aufs_read_and_write_unlock2(dentry, src_dentry);
++ out_free:
++ kfree(p);
++ out:
++ iput(inode[DST]);
++ AuTraceErr(err);
++ //lktr_clear_pid(current->pid, LktrArrayPid);
++ if (unlikely(err == -EBUSY && au_test_nfsd(current)))
++ err = -ESTALE;
++ return err;
++}
+diff --git a/fs/aufs/iinfo.c b/fs/aufs/iinfo.c
+new file mode 100644
+index 0000000..f6cf01c
+--- /dev/null
++++ b/fs/aufs/iinfo.c
+@@ -0,0 +1,284 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * inode private data
++ *
++ * $Id: iinfo.c,v 1.59 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++struct au_iinfo *au_ii(struct inode *inode)
++{
++ struct au_iinfo *iinfo;
++
++ iinfo = &(container_of(inode, struct aufs_icntnr, vfs_inode)->iinfo);
++ /* bad_inode case */
++ if (unlikely(!iinfo->ii_hinode))
++ return NULL;
++ AuDebugOn(!iinfo->ii_hinode
++ /* || au_sbi(inode->i_sb)->si_bend < iinfo->ii_bend */
++ || iinfo->ii_bend < iinfo->ii_bstart);
++ return iinfo;
++}
++
++struct inode *au_h_iptr(struct inode *inode, aufs_bindex_t bindex)
++{
++ struct inode *hidden_inode;
++
++ /* lock free root dinfo/inode */
++ if (inode->i_ino != AUFS_ROOT_INO) {
++ IiMustAnyLock(inode);
++ AuDebugOn(bindex < 0 || au_ibend(inode) < bindex);
++ } else {
++ SiMustAnyLock(inode->i_sb);
++ AuDebugOn(bindex < 0 || au_sbend(inode->i_sb) < bindex);
++ }
++ hidden_inode = au_ii(inode)->ii_hinode[0 + bindex].hi_inode;
++ AuDebugOn(hidden_inode && atomic_read(&hidden_inode->i_count) <= 0);
++ return hidden_inode;
++}
++
++aufs_bindex_t au_ii_br_id(struct inode *inode, aufs_bindex_t bindex)
++{
++ IiMustAnyLock(inode);
++ AuDebugOn(bindex < 0
++ || au_ibend(inode) < bindex
++ || !au_ii(inode)->ii_hinode[0 + bindex].hi_inode);
++ return au_ii(inode)->ii_hinode[0 + bindex].hi_id;
++}
++
++/* todo: hard/soft set? */
++void au_set_ibstart(struct inode *inode, aufs_bindex_t bindex)
++{
++ struct au_iinfo *iinfo = au_ii(inode);
++ struct inode *h_inode;
++
++ IiMustWriteLock(inode);
++ AuDebugOn(au_sbend(inode->i_sb) < bindex);
++ iinfo->ii_bstart = bindex;
++ h_inode = iinfo->ii_hinode[bindex + 0].hi_inode;
++ if (h_inode)
++ au_cpup_igen(inode, h_inode);
++}
++
++unsigned int au_hi_flags(struct inode *inode, int isdir)
++{
++ unsigned int flags;
++ const unsigned int mnt_flags = au_mntflags(inode->i_sb);
++
++ flags = 0;
++ if (au_opt_test_xino(mnt_flags))
++ au_fset_hi(flags, XINO);
++ if (isdir && au_opt_test(mnt_flags, UDBA_INOTIFY))
++ au_fset_hi(flags, NOTIFY);
++ return flags;
++}
++
++void au_set_h_iptr(struct inode *inode, aufs_bindex_t bindex,
++ struct inode *h_inode, unsigned int flags)
++{
++ struct au_hinode *hinode;
++ struct inode *hi;
++ struct au_iinfo *iinfo = au_ii(inode);
++
++ LKTRTrace("i%lu, b%d, hi%lu, flags 0x%x\n",
++ inode->i_ino, bindex, h_inode ? h_inode->i_ino : 0, flags);
++ IiMustWriteLock(inode);
++ hinode = iinfo->ii_hinode + bindex;
++ hi = hinode->hi_inode;
++ AuDebugOn(bindex < au_ibstart(inode) || au_ibend(inode) < bindex);
++ AuDebugOn(h_inode && atomic_read(&h_inode->i_count) <= 0);
++ AuDebugOn(h_inode && hi);
++
++ if (hi)
++ au_hiput(hinode);
++ hinode->hi_inode = h_inode;
++ if (h_inode) {
++ int err;
++ struct super_block *sb = inode->i_sb;
++
++ if (bindex == iinfo->ii_bstart)
++ au_cpup_igen(inode, h_inode);
++ hinode->hi_id = au_sbr_id(sb, bindex);
++ if (au_ftest_hi(flags, XINO)) {
++ struct au_xino_entry xinoe = {
++ .ino = inode->i_ino,
++ /* .h_gen = h_inode->i_generation */
++ };
++ err = au_xino_write(sb, bindex, h_inode->i_ino, &xinoe);
++ if (unlikely(err))
++ AuIOErr1("failed au_xino_write() %d\n", err);
++ }
++
++ if (au_ftest_hi(flags, NOTIFY)
++ && au_br_hinotifyable(au_sbr_perm(sb, bindex))) {
++ err = au_hin_alloc(hinode, inode, h_inode);
++ if (unlikely(err))
++ AuIOErr1("au_hin_alloc() %d\n", err);
++ }
++ }
++}
++
++void au_set_hi_wh(struct inode *inode, aufs_bindex_t bindex,
++ struct dentry *h_wh)
++{
++ struct au_hinode *hinode;
++
++ IiMustWriteLock(inode);
++ hinode = au_ii(inode)->ii_hinode + bindex;
++ AuDebugOn(hinode->hi_whdentry);
++ hinode->hi_whdentry = h_wh;
++}
++
++void au_update_iigen(struct inode *inode)
++{
++ AuDebugOn(!inode->i_sb);
++ atomic_set(&au_ii(inode)->ii_generation, au_sigen(inode->i_sb));
++ /* smp_mb(); */ /* atomic_set */
++}
++
++/* it may be called at remount time, too */
++void au_update_brange(struct inode *inode, int do_put_zero)
++{
++ struct au_iinfo *iinfo;
++
++ LKTRTrace("i%lu, %d\n", inode->i_ino, do_put_zero);
++ IiMustWriteLock(inode);
++
++ iinfo = au_ii(inode);
++ if (!iinfo || iinfo->ii_bstart < 0)
++ return;
++
++ if (do_put_zero) {
++ aufs_bindex_t bindex;
++ for (bindex = iinfo->ii_bstart; bindex <= iinfo->ii_bend;
++ bindex++) {
++ struct inode *h_i;
++ h_i = iinfo->ii_hinode[0 + bindex].hi_inode;
++ if (h_i && !h_i->i_nlink)
++ au_set_h_iptr(inode, bindex, NULL, 0);
++ }
++ }
++
++ iinfo->ii_bstart = -1;
++ while (++iinfo->ii_bstart <= iinfo->ii_bend)
++ if (iinfo->ii_hinode[0 + iinfo->ii_bstart].hi_inode)
++ break;
++ if (iinfo->ii_bstart > iinfo->ii_bend) {
++ iinfo->ii_bstart = -1;
++ iinfo->ii_bend = -1;
++ return;
++ }
++
++ iinfo->ii_bend++;
++ while (0 <= --iinfo->ii_bend)
++ if (iinfo->ii_hinode[0 + iinfo->ii_bend].hi_inode)
++ break;
++ AuDebugOn(iinfo->ii_bstart > iinfo->ii_bend || iinfo->ii_bend < 0);
++}
++
++/* ---------------------------------------------------------------------- */
++
++int au_iinfo_init(struct inode *inode)
++{
++ struct au_iinfo *iinfo;
++ struct super_block *sb;
++ int nbr, i;
++
++ sb = inode->i_sb;
++ AuDebugOn(!sb);
++ iinfo = &(container_of(inode, struct aufs_icntnr, vfs_inode)->iinfo);
++ AuDebugOn(iinfo->ii_hinode);
++ nbr = au_sbend(sb) + 1;
++ if (nbr <= 0)
++ nbr = 1;
++ iinfo->ii_hinode = kcalloc(nbr, sizeof(*iinfo->ii_hinode), GFP_NOFS);
++ if (iinfo->ii_hinode) {
++ for (i = 0; i < nbr; i++)
++ iinfo->ii_hinode[i].hi_id = -1;
++ atomic_set(&iinfo->ii_generation, au_sigen(sb));
++ /* smp_mb(); */ /* atomic_set */
++ au_rw_init_nolock(&iinfo->ii_rwsem);
++ iinfo->ii_bstart = -1;
++ iinfo->ii_bend = -1;
++ iinfo->ii_vdir = NULL;
++ return 0;
++ }
++ return -ENOMEM;
++}
++
++static int au_iinfo_write0(struct super_block *sb, struct au_hinode *hinode,
++ ino_t ino)
++{
++ int err, locked;
++ aufs_bindex_t bindex;
++
++ err = 0;
++ locked = si_noflush_read_trylock(sb); /* crucio! */
++ bindex = au_br_index(sb, hinode->hi_id);
++ if (bindex >= 0)
++ err = au_xino_write0(sb, bindex, hinode->hi_inode->i_ino, ino);
++ /* error action? */
++ if (locked)
++ si_read_unlock(sb);
++ return err;
++}
++
++void au_iinfo_fin(struct inode *inode)
++{
++ struct au_iinfo *iinfo;
++ aufs_bindex_t bend;
++ unsigned char unlinked;
++ struct au_hinode *hi;
++ struct super_block *sb;
++ ino_t ino;
++
++ iinfo = au_ii(inode);
++ /* bad_inode case */
++ if (!iinfo)
++ return;
++
++ if (iinfo->ii_vdir)
++ au_vdir_free(iinfo->ii_vdir);
++
++ if (iinfo->ii_bstart >= 0) {
++ sb = inode->i_sb;
++ unlinked = !inode->i_nlink;
++ ino = 0;
++ if (unlinked)
++ ino = inode->i_ino;
++ hi = iinfo->ii_hinode + iinfo->ii_bstart;
++ bend = iinfo->ii_bend;
++ while (iinfo->ii_bstart++ <= bend) {
++ if (hi->hi_inode) {
++ if (unlinked || !hi->hi_inode->i_nlink) {
++ au_iinfo_write0(sb, hi, ino);
++ /* ignore this error */
++ ino = 0;
++ }
++ au_hiput(hi);
++ }
++ hi++;
++ }
++ }
++
++ kfree(iinfo->ii_hinode);
++ au_rwsem_destroy(&iinfo->ii_rwsem);
++}
+diff --git a/fs/aufs/inode.c b/fs/aufs/inode.c
+new file mode 100644
+index 0000000..023fb27
+--- /dev/null
++++ b/fs/aufs/inode.c
+@@ -0,0 +1,430 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * inode functions
++ *
++ * $Id: inode.c,v 1.55 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++int au_refresh_hinode_self(struct inode *inode)
++{
++ int err, new_sz, update;
++ struct inode *first;
++ struct au_hinode *p, *q, tmp;
++ struct super_block *sb;
++ struct au_iinfo *iinfo;
++ aufs_bindex_t bindex, bend, new_bindex;
++
++ LKTRTrace("i%lu\n", inode->i_ino);
++ IiMustWriteLock(inode);
++
++ err = -ENOMEM;
++ update = 0;
++ sb = inode->i_sb;
++ bend = au_sbend(sb);
++ new_sz = sizeof(*iinfo->ii_hinode) * (bend + 1);
++ iinfo = au_ii(inode);
++ p = au_kzrealloc(iinfo->ii_hinode, sizeof(*p) * (iinfo->ii_bend + 1),
++ new_sz, GFP_NOFS);
++ if (unlikely(!p))
++ goto out;
++
++ iinfo->ii_hinode = p;
++ p = iinfo->ii_hinode + iinfo->ii_bstart;
++ first = p->hi_inode;
++ err = 0;
++ for (bindex = iinfo->ii_bstart; bindex <= iinfo->ii_bend;
++ bindex++, p++) {
++ if (!p->hi_inode)
++ continue;
++
++ new_bindex = au_br_index(sb, p->hi_id);
++ if (new_bindex == bindex)
++ continue;
++ if (new_bindex < 0) {
++ update++;
++ au_hiput(p);
++ p->hi_inode = NULL;
++ continue;
++ }
++
++ if (new_bindex < iinfo->ii_bstart)
++ iinfo->ii_bstart = new_bindex;
++ if (iinfo->ii_bend < new_bindex)
++ iinfo->ii_bend = new_bindex;
++ /* swap two hidden inode, and loop again */
++ q = iinfo->ii_hinode + new_bindex;
++ tmp = *q;
++ *q = *p;
++ *p = tmp;
++ if (tmp.hi_inode) {
++ bindex--;
++ p--;
++ }
++ }
++ au_update_brange(inode, /*do_put_zero*/0);
++
++ if (unlikely(err))
++ goto out;
++
++ if (1 || first != au_h_iptr(inode, iinfo->ii_bstart))
++ au_cpup_attr_all(inode, /*force*/0);
++ if (update && S_ISDIR(inode->i_mode))
++ inode->i_version++;
++ au_update_iigen(inode);
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++int au_refresh_hinode(struct inode *inode, struct dentry *dentry)
++{
++ int err, update;
++ struct inode *first;
++ struct au_hinode *p;
++ struct super_block *sb;
++ struct au_iinfo *iinfo;
++ aufs_bindex_t bindex, bend;
++ unsigned char isdir;
++ unsigned int flags;
++
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++ IiMustWriteLock(inode);
++
++ err = au_refresh_hinode_self(inode);
++ if (unlikely(err))
++ goto out;
++
++ sb = dentry->d_sb;
++ bend = au_sbend(sb);
++ iinfo = au_ii(inode);
++ update = 0;
++ p = iinfo->ii_hinode + iinfo->ii_bstart;
++ first = p->hi_inode;
++ isdir = S_ISDIR(inode->i_mode);
++ flags = au_hi_flags(inode, isdir);
++ bend = au_dbend(dentry);
++ for (bindex = au_dbstart(dentry); bindex <= bend; bindex++) {
++ struct inode *hi;
++ struct dentry *hd;
++
++ hd = au_h_dptr(dentry, bindex);
++ if (!hd || !hd->d_inode)
++ continue;
++
++ if (iinfo->ii_bstart <= bindex && bindex <= iinfo->ii_bend) {
++ hi = au_h_iptr(inode, bindex);
++ if (hi) {
++ if (hi == hd->d_inode)
++ continue;
++ err = -ESTALE;
++ break;
++ }
++ }
++ if (bindex < iinfo->ii_bstart)
++ iinfo->ii_bstart = bindex;
++ if (iinfo->ii_bend < bindex)
++ iinfo->ii_bend = bindex;
++ au_set_h_iptr(inode, bindex, au_igrab(hd->d_inode), flags);
++ update++;
++ }
++ au_update_brange(inode, /*do_put_zero*/0);
++
++ if (unlikely(err))
++ goto out;
++
++ if (1 || first != au_h_iptr(inode, iinfo->ii_bstart))
++ au_cpup_attr_all(inode, /*force*/0);
++ if (update && isdir)
++ inode->i_version++;
++ au_update_iigen(inode);
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++static int set_inode(struct inode *inode, struct dentry *dentry)
++{
++ int err;
++ struct dentry *h_dentry;
++ struct inode *h_inode;
++ umode_t mode;
++ aufs_bindex_t bindex, bstart, btail;
++ unsigned char isdir;
++ struct au_iinfo *iinfo;
++ unsigned int flags;
++
++ LKTRTrace("i%lu, %.*s\n", inode->i_ino, AuDLNPair(dentry));
++ AuDebugOn(!(inode->i_state & I_NEW));
++ IiMustWriteLock(inode);
++ bstart = au_dbstart(dentry);
++ h_dentry = au_h_dptr(dentry, bstart);
++ AuDebugOn(!h_dentry);
++ h_inode = h_dentry->d_inode;
++ AuDebugOn(!h_inode);
++
++ err = 0;
++ isdir = 0;
++ mode = h_inode->i_mode;
++ switch (mode & S_IFMT) {
++ case S_IFREG:
++ btail = au_dbtail(dentry);
++ inode->i_op = &aufs_iop;
++ inode->i_fop = &aufs_file_fop;
++ inode->i_mapping->a_ops = &aufs_aop;
++ break;
++ case S_IFDIR:
++ isdir = 1;
++ btail = au_dbtaildir(dentry);
++ inode->i_op = &aufs_dir_iop;
++ inode->i_fop = &aufs_dir_fop;
++ break;
++ case S_IFLNK:
++ btail = au_dbtail(dentry);
++ inode->i_op = &aufs_symlink_iop;
++ /* inode->i_fop = &aufs_file_fop; */
++ break;
++ case S_IFBLK:
++ case S_IFCHR:
++ case S_IFIFO:
++ case S_IFSOCK:
++ btail = au_dbtail(dentry);
++ inode->i_op = &aufs_iop;
++ init_special_inode(inode, mode,
++ au_h_rdev(h_inode, /*h_mnt*/NULL, h_dentry));
++ break;
++ default:
++ AuIOErr("Unknown file type 0%o\n", mode);
++ err = -EIO;
++ goto out;
++ }
++
++ /* do not set inotify for whiteouted dirs (SHWH mode) */
++ flags = au_hi_flags(inode, isdir);
++ if (au_opt_test(au_mntflags(dentry->d_sb), SHWH)
++ && au_ftest_hi(flags, NOTIFY)
++ && dentry->d_name.len > AUFS_WH_PFX_LEN
++ && !memcmp(dentry->d_name.name, AUFS_WH_PFX, AUFS_WH_PFX_LEN))
++ au_fclr_hi(flags, NOTIFY);
++ iinfo = au_ii(inode);
++ iinfo->ii_bstart = bstart;
++ iinfo->ii_bend = btail;
++ for (bindex = bstart; bindex <= btail; bindex++) {
++ h_dentry = au_h_dptr(dentry, bindex);
++ if (!h_dentry)
++ continue;
++ AuDebugOn(!h_dentry->d_inode);
++ au_set_h_iptr(inode, bindex, au_igrab(h_dentry->d_inode),
++ flags);
++ }
++ au_cpup_attr_all(inode, /*force*/1);
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/* successful returns with iinfo write_locked */
++/* todo: return with unlocked? */
++static int reval_inode(struct inode *inode, struct dentry *dentry, int *matched)
++{
++ int err;
++ struct inode *h_inode, *h_dinode;
++ aufs_bindex_t bindex, bend;
++
++ LKTRTrace("i%lu, %.*s\n", inode->i_ino, AuDLNPair(dentry));
++
++ *matched = 0;
++
++ /*
++ * before this function, if aufs got any iinfo lock, it must be only
++ * one, the parent dir.
++ * it can happen by UDBA and the obsoleted inode number.
++ */
++ err = -EIO;
++ if (unlikely(inode->i_ino == parent_ino(dentry)))
++ goto out;
++
++ h_dinode = au_h_dptr(dentry, au_dbstart(dentry))->d_inode;
++ //vfsub_i_lock_nested(inode, AuLsc_I_CHILD);
++ ii_write_lock_new_child(inode);
++ /* it happend */
++ if (unlikely(IS_DEADDIR(inode)))
++ goto out_unlock;
++
++ err = 0;
++ bend = au_ibend(inode);
++ for (bindex = au_ibstart(inode); bindex <= bend; bindex++) {
++ h_inode = au_h_iptr(inode, bindex);
++ if (h_inode && h_inode == h_dinode) {
++ /* && (ibs != bstart
++ || !au_test_higen(inode, h_inode))); */
++ *matched = 1;
++ err = 0;
++ if (au_iigen(inode) != au_digen(dentry))
++ err = au_refresh_hinode(inode, dentry);
++ break;
++ }
++ }
++
++ out_unlock:
++ if (unlikely(err))
++ ii_write_unlock(inode);
++ //vfsub_i_unlock(inode);
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/* successful returns with iinfo write_locked */
++/* todo: return with unlocked? */
++struct inode *au_new_inode(struct dentry *dentry, int must_new)
++{
++ struct inode *inode, *h_inode;
++ struct dentry *h_dentry;
++ struct super_block *sb;
++ ino_t h_ino;
++ int err, match;
++ aufs_bindex_t bstart;
++ struct au_xino_entry xinoe;
++
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++ sb = dentry->d_sb;
++ bstart = au_dbstart(dentry);
++ h_dentry = au_h_dptr(dentry, bstart);
++ AuDebugOn(!h_dentry);
++ h_inode = h_dentry->d_inode;
++ AuDebugOn(!h_inode);
++
++ h_ino = h_inode->i_ino;
++ err = au_xino_read(sb, bstart, h_ino, &xinoe);
++ inode = ERR_PTR(err);
++ if (unlikely(err))
++ goto out;
++ new_ino:
++ if (!xinoe.ino) {
++ xinoe.ino = au_xino_new_ino(sb);
++ if (!xinoe.ino) {
++ inode = ERR_PTR(-EIO);
++ goto out;
++ }
++ }
++
++ LKTRTrace("i%lu\n", (unsigned long)xinoe.ino);
++ err = -ENOMEM;
++ inode = iget_locked(sb, xinoe.ino);
++ if (unlikely(!inode))
++ goto out;
++ err = PTR_ERR(inode);
++ if (IS_ERR(inode))
++ goto out;
++ err = -ENOMEM;
++ if (unlikely(is_bad_inode(inode)))
++ goto out_iput;
++
++ LKTRTrace("%lx, new %d\n", inode->i_state, !!(inode->i_state & I_NEW));
++ if (inode->i_state & I_NEW) {
++ sb->s_op->read_inode(inode);
++ if (!is_bad_inode(inode)) {
++ ii_write_lock_new_child(inode);
++ err = set_inode(inode, dentry);
++ //err = -1;
++ }
++ unlock_new_inode(inode);
++ if (!err)
++ goto out; /* success */
++ if (!is_bad_inode(inode))
++ ii_write_unlock(inode);
++ goto out_iput;
++ } else if (!must_new) {
++ err = reval_inode(inode, dentry, &match);
++ if (!err)
++ goto out; /* success */
++ else if (match)
++ goto out_iput;
++ }
++
++ if (unlikely(au_test_unique_ino(h_dentry, h_ino)))
++ AuWarn1("Un-notified UDBA or repeatedly renamed dir,"
++ " b%d, %s, %.*s, hi%lu, i%lu.\n",
++ bstart, au_sbtype(h_dentry->d_sb), AuDLNPair(dentry),
++ (unsigned long)h_ino, (unsigned long)xinoe.ino);
++ xinoe.ino = 0;
++ err = au_xino_write0(sb, bstart, h_ino, 0);
++ if (!err) {
++ iput(inode);
++ goto new_ino;
++ }
++ /* force noxino? */
++
++ out_iput:
++ iput(inode);
++ inode = ERR_PTR(err);
++ out:
++ AuTraceErrPtr(inode);
++ return inode;
++}
++
++/* ---------------------------------------------------------------------- */
++
++int au_test_ro(struct super_block *sb, aufs_bindex_t bindex,
++ struct inode *inode)
++{
++ int err;
++
++ err = au_br_rdonly(au_sbr(sb, bindex));
++
++ /* pseudo-link after flushed may out of bounds */
++ if (!err
++ && inode
++ && au_ibstart(inode) <= bindex
++ && bindex <= au_ibend(inode)) {
++ /*
++ * permission check is unnecessary since vfsub routine
++ * will be called later
++ */
++ struct inode *hi = au_h_iptr(inode, bindex);
++ if (hi)
++ err = IS_IMMUTABLE(hi) ? -EROFS : 0;
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++int au_test_h_perm(struct inode *h_inode, int mask, int dlgt)
++{
++ if (!current->fsuid)
++ return 0;
++ /* todo: fake nameidata? */
++ return vfsub_permission(h_inode, mask, NULL, dlgt);
++}
++
++int au_test_h_perm_sio(struct inode *h_inode, int mask, int dlgt)
++{
++ if (au_test_nfs(h_inode->i_sb)
++ && (mask & MAY_WRITE)
++ && S_ISDIR(h_inode->i_mode))
++ mask |= MAY_READ; /* force permission check */
++ return au_test_h_perm(h_inode, mask, dlgt);
++}
+diff --git a/fs/aufs/inode.h b/fs/aufs/inode.h
+new file mode 100644
+index 0000000..7f7e9a3
+--- /dev/null
++++ b/fs/aufs/inode.h
+@@ -0,0 +1,593 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * inode operations
++ *
++ * $Id: inode.h,v 1.66 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#ifndef __AUFS_INODE_H__
++#define __AUFS_INODE_H__
++
++#ifdef __KERNEL__
++
++#include <linux/fs.h>
++#include <linux/namei.h>
++#include <linux/security.h>
++#include <linux/aufs_type.h>
++#include "misc.h"
++
++struct au_hinode;
++struct au_vdir;
++struct au_iinfo {
++ atomic_t ii_generation;
++ struct super_block *ii_hsb1; /* no get/put */
++
++ struct au_rwsem ii_rwsem;
++ aufs_bindex_t ii_bstart, ii_bend;
++ __u32 ii_higen;
++ struct au_hinode *ii_hinode;
++ struct au_vdir *ii_vdir;
++};
++
++struct aufs_icntnr {
++ struct au_iinfo iinfo;
++ struct inode vfs_inode;
++};
++
++/* au_pin flags */
++#define AuPin_DI_LOCKED 1
++#define AuPin_DO_GPARENT (1 << 1)
++#define AuPin_MNT_WRITE 0 //(1 << 2)
++#define AuPin_VFS_RENAME (1 << 3)
++/* will be set automatically */
++#define AuPin_VERIFY (1 << 4)
++#define au_ftest_pin(flags, name) ((flags) & AuPin_##name)
++#define au_fset_pin(flags, name) { (flags) |= AuPin_##name; }
++#define au_fclr_pin(flags, name) { (flags) &= ~AuPin_##name; }
++
++struct au_pin1 {
++ /* input */
++ struct dentry *dentry;
++ unsigned char lsc_di, lsc_hi, flags;
++ aufs_bindex_t bindex;
++
++ /* output */
++ struct dentry *parent;
++ struct inode *h_dir;
++};
++
++enum {AuPin_PARENT, AuPin_GPARENT};
++struct au_pin {
++#ifdef CONFIG_AUFS_HINOTIFY
++ struct au_pin1 pin[2];
++#else
++ struct au_pin1 pin[1]; /* no grand parent */
++#endif
++};
++
++/* ---------------------------------------------------------------------- */
++
++/* inode.c */
++int au_refresh_hinode_self(struct inode *inode);
++int au_refresh_hinode(struct inode *inode, struct dentry *dentry);
++struct inode *au_new_inode(struct dentry *dentry, int must_new);
++int au_test_ro(struct super_block *sb, aufs_bindex_t bindex,
++ struct inode *inode);
++int au_test_h_perm(struct inode *h_inode, int mask, int dlgt);
++int au_test_h_perm_sio(struct inode *h_inode, int mask, int dlgt);
++
++/* i_op.c */
++extern struct inode_operations aufs_iop, aufs_symlink_iop, aufs_dir_iop;
++
++/* au_wr_dir flags */
++#define AuWrDir_ADD_ENTRY 1
++#define AuWrDir_ISDIR (1 << 1)
++#define au_ftest_wrdir(flags, name) ((flags) & AuWrDir_##name)
++#define au_fset_wrdir(flags, name) { (flags) |= AuWrDir_##name; }
++#define au_fclr_wrdir(flags, name) { (flags) &= ~AuWrDir_##name; }
++
++struct au_wr_dir_args {
++ aufs_bindex_t force_btgt;
++ unsigned char flags;
++};
++int au_wr_dir(struct dentry *dentry, struct dentry *src_dentry,
++ struct au_wr_dir_args *args);
++
++void au_pin_init(struct au_pin *args, struct dentry *dentry,
++ aufs_bindex_t bindex, int lsc_di, int lsc_hi,
++ unsigned char flags);
++int au_pin(struct au_pin *args, struct dentry *dentry, aufs_bindex_t bindex,
++ unsigned char flags) __must_check;
++int au_do_pin(struct au_pin1 *p, struct au_pin1 *gp) __must_check;
++void au_do_unpin(struct au_pin1 *p, struct au_pin1 *gp);
++
++/* i_op_add.c */
++struct au_ndx;
++int au_may_add(struct dentry *dentry, aufs_bindex_t bindex,
++ struct dentry *h_parent, int isdir, struct au_ndx *ndx);
++int aufs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev);
++int aufs_symlink(struct inode *dir, struct dentry *dentry, const char *symname);
++int aufs_create(struct inode *dir, struct dentry *dentry, int mode,
++ struct nameidata *nd);
++int aufs_link(struct dentry *src_dentry, struct inode *dir,
++ struct dentry *dentry);
++int aufs_mkdir(struct inode *dir, struct dentry *dentry, int mode);
++
++/* i_op_del.c */
++int au_wr_dir_need_wh(struct dentry *dentry, int isdir, aufs_bindex_t *bcpup);
++int au_may_del(struct dentry *dentry, aufs_bindex_t bindex,
++ struct dentry *h_parent, int isdir, struct au_ndx *ndx);
++int aufs_unlink(struct inode *dir, struct dentry *dentry);
++int aufs_rmdir(struct inode *dir, struct dentry *dentry);
++
++/* i_op_ren.c */
++int au_wbr(struct dentry *dentry, aufs_bindex_t btgt);
++int aufs_rename(struct inode *src_dir, struct dentry *src_dentry,
++ struct inode *dir, struct dentry *dentry);
++
++#ifdef CONFIG_AUFS_DLGT
++/* dlgt.c */
++int au_security_inode_permission(struct inode *h_inode, int mask,
++ struct nameidata *fake_nd, int dlgt);
++#else
++static inline
++int au_security_inode_permission(struct inode *h_inode, int mask,
++ struct nameidata *fake_nd, int dlgt)
++{
++ return security_inode_permission(h_inode, mask, fake_nd);
++}
++#endif /* CONFIG_AUFS_DLGT */
++
++#ifdef CONFIG_AUFS_GETATTR
++/* getattr.c */
++int aufs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *st);
++#endif
++
++#if 0 /* reserved for future use */
++/* xattr.c */
++int aufs_setxattr(struct dentry *dentry, const char *name, const void *value,
++ size_t sz, int flags);
++ssize_t aufs_getxattr(struct dentry *dentry, const char *name, void *value,
++ size_t sz);
++ssize_t aufs_listxattr(struct dentry *dentry, char *list, size_t sz);
++int aufs_removexattr(struct dentry *dentry, const char *name);
++#endif
++
++/* iinfo.c */
++struct au_iinfo *au_ii(struct inode *inode);
++struct inode *au_h_iptr(struct inode *inode, aufs_bindex_t bindex);
++aufs_bindex_t au_ii_br_id(struct inode *inode, aufs_bindex_t bindex);
++
++void au_set_ibstart(struct inode *inode, aufs_bindex_t bindex);
++void au_set_hi_wh(struct inode *inode, aufs_bindex_t bindex,
++ struct dentry *h_wh);
++unsigned int au_hi_flags(struct inode *inode, int isdir);
++
++/* hinode flags */
++#define AuHi_XINO 1
++#define AuHi_NOTIFY (1 << 1)
++#define au_ftest_hi(flags, name) ((flags) & AuHi_##name)
++#define au_fset_hi(flags, name) { (flags) |= AuHi_##name; }
++#define au_fclr_hi(flags, name) { (flags) &= ~AuHi_##name; }
++#ifndef CONFIG_AUFS_HINOTIFY
++#undef AuHi_NOTIFY
++#define AuHi_NOTIFY 0
++#endif
++
++void au_set_h_iptr(struct inode *inode, aufs_bindex_t bindex,
++ struct inode *h_inode, unsigned int flags);
++
++void au_update_iigen(struct inode *inode);
++void au_update_brange(struct inode *inode, int do_put_zero);
++
++int au_iinfo_init(struct inode *inode);
++void au_iinfo_fin(struct inode *inode);
++
++/* plink.c */
++#ifdef CONFIG_AUFS_DEBUG
++void au_plink_list(struct super_block *sb);
++#else
++static inline void au_plink_list(struct super_block *sb)
++{
++ /* nothing */
++}
++#endif
++int au_plink_test(struct super_block *sb, struct inode *inode);
++struct dentry *au_plink_lkup(struct super_block *sb, aufs_bindex_t bindex,
++ struct inode *inode);
++void au_plink_append(struct super_block *sb, struct inode *inode,
++ struct dentry *h_dentry, aufs_bindex_t bindex);
++void au_plink_put(struct super_block *sb);
++void au_plink_half_refresh(struct super_block *sb, aufs_bindex_t br_id);
++
++/* ---------------------------------------------------------------------- */
++
++/* lock subclass for iinfo */
++enum {
++ AuLsc_II_CHILD, /* child first */
++ AuLsc_II_CHILD2, /* rename(2), link(2), and cpup at hinotify */
++ AuLsc_II_CHILD3, /* copyup dirs */
++ AuLsc_II_PARENT, /* see AuLsc_I_PARENT in vfsub.h */
++ AuLsc_II_PARENT2,
++ AuLsc_II_PARENT3,
++ AuLsc_II_PARENT4,
++ AuLsc_II_NEW_CHILD,
++};
++
++/*
++ * ii_read_lock_child, ii_write_lock_child,
++ * ii_read_lock_child2, ii_write_lock_child2,
++ * ii_read_lock_child3, ii_write_lock_child3,
++ * ii_read_lock_parent, ii_write_lock_parent,
++ * ii_read_lock_parent2, ii_write_lock_parent2,
++ * ii_read_lock_parent3, ii_write_lock_parent3,
++ * ii_read_lock_parent4, ii_write_lock_parent4,
++ * ii_read_lock_new_child, ii_write_lock_new_child,
++ */
++#define AuReadLockFunc(name, lsc) \
++static inline void ii_read_lock_##name(struct inode *i) \
++{ \
++ au_dbg_locking_ii_reg(i, 0, AuLsc_II_##lsc); \
++ au_rw_read_lock_nested(&au_ii(i)->ii_rwsem, AuLsc_II_##lsc); \
++ au_dbg_locking_ii_unreg(i, 0); \
++ au_dbg_locked_ii_reg(i, 0, AuLsc_II_##lsc); \
++}
++
++#define AuWriteLockFunc(name, lsc) \
++static inline void ii_write_lock_##name(struct inode *i) \
++{ \
++ au_dbg_locking_ii_reg(i, 1, AuLsc_II_##lsc); \
++ au_rw_write_lock_nested(&au_ii(i)->ii_rwsem, AuLsc_II_##lsc); \
++ au_dbg_locking_ii_unreg(i, 1); \
++ au_dbg_locked_ii_reg(i, 1, AuLsc_II_##lsc); \
++}
++
++#define AuRWLockFuncs(name, lsc) \
++ AuReadLockFunc(name, lsc) \
++ AuWriteLockFunc(name, lsc)
++
++AuRWLockFuncs(child, CHILD);
++AuRWLockFuncs(child2, CHILD2);
++AuRWLockFuncs(child3, CHILD3);
++AuRWLockFuncs(parent, PARENT);
++AuRWLockFuncs(parent2, PARENT2);
++AuRWLockFuncs(parent3, PARENT3);
++AuRWLockFuncs(parent4, PARENT4);
++AuRWLockFuncs(new_child, NEW_CHILD);
++
++#undef AuReadLockFunc
++#undef AuWriteLockFunc
++#undef AuRWLockFuncs
++
++/*
++ * ii_read_unlock, ii_write_unlock, ii_downgrade_lock
++ */
++AuSimpleUnlockRwsemFuncs(ii_do, struct inode *i, au_ii(i)->ii_rwsem);
++static inline void ii_read_unlock(struct inode *i)
++{
++ ii_do_read_unlock(i);
++ au_dbg_locked_ii_unreg(i, 0);
++}
++
++static inline void ii_write_unlock(struct inode *i)
++{
++ ii_do_write_unlock(i);
++ au_dbg_locked_ii_unreg(i, 0);
++}
++
++static inline void ii_downgrade_lock(struct inode *i)
++{
++ ii_do_downgrade_lock(i);
++}
++
++/* to debug easier, do not make them inlined functions */
++#define IiMustReadLock(i) do { \
++ SiMustAnyLock((i)->i_sb); \
++ AuRwMustReadLock(&au_ii(i)->ii_rwsem); \
++} while (0)
++
++#define IiMustWriteLock(i) do { \
++ SiMustAnyLock((i)->i_sb); \
++ AuRwMustWriteLock(&au_ii(i)->ii_rwsem); \
++} while (0)
++
++#define IiMustAnyLock(i) do { \
++ SiMustAnyLock((i)->i_sb); \
++ AuRwMustAnyLock(&au_ii(i)->ii_rwsem); \
++} while (0)
++
++#define IiMustNoWaiters(i) AuRwMustNoWaiters(&au_ii(i)->ii_rwsem)
++
++/* ---------------------------------------------------------------------- */
++
++static inline struct inode *au_igrab(struct inode *inode)
++{
++ if (inode) {
++ AuDebugOn(!atomic_read(&inode->i_count));
++ atomic_inc_return(&inode->i_count);
++ }
++ return inode;
++}
++
++/* ---------------------------------------------------------------------- */
++
++static inline aufs_bindex_t au_ibstart(struct inode *inode)
++{
++ /* lock free root dinfo/inode */
++ if (inode->i_ino != AUFS_ROOT_INO)
++ IiMustAnyLock(inode);
++ else
++ SiMustAnyLock(inode->i_sb);
++ return au_ii(inode)->ii_bstart;
++}
++
++static inline aufs_bindex_t au_ibend(struct inode *inode)
++{
++ /* lock free root dinfo/inode */
++ if (inode->i_ino != AUFS_ROOT_INO)
++ IiMustAnyLock(inode);
++ else
++ SiMustAnyLock(inode->i_sb);
++ return au_ii(inode)->ii_bend;
++}
++
++static inline struct au_vdir *au_ivdir(struct inode *inode)
++{
++ IiMustAnyLock(inode);
++ AuDebugOn(!S_ISDIR(inode->i_mode));
++ return au_ii(inode)->ii_vdir;
++}
++
++static inline struct dentry *au_hi_wh(struct inode *inode, aufs_bindex_t bindex)
++{
++ struct au_hinode *hinode;
++ IiMustAnyLock(inode);
++ hinode = au_ii(inode)->ii_hinode + bindex;
++ return hinode->hi_whdentry;
++}
++
++static inline void au_set_ibend(struct inode *inode, aufs_bindex_t bindex)
++{
++ IiMustWriteLock(inode);
++ AuDebugOn(au_sbend(inode->i_sb) < bindex || bindex < au_ibstart(inode));
++ au_ii(inode)->ii_bend = bindex;
++}
++
++static inline void au_set_ivdir(struct inode *inode, struct au_vdir *vdir)
++{
++ IiMustWriteLock(inode);
++ AuDebugOn(!S_ISDIR(inode->i_mode) || (au_ii(inode)->ii_vdir && vdir));
++ au_ii(inode)->ii_vdir = vdir;
++}
++
++static inline void au_hiput(struct au_hinode *hinode)
++{
++ au_hin_free(hinode);
++ dput(hinode->hi_whdentry);
++ iput(hinode->hi_inode);
++}
++
++static inline struct au_hinode *au_hi(struct inode *inode, aufs_bindex_t bindex)
++{
++ /* todo: this lock check causes some unnecessary locks in callers. */
++ IiMustAnyLock(inode);
++ return au_ii(inode)->ii_hinode + bindex;
++}
++
++/* tiny test for inode number */
++/* tmpfs generation is too rough */
++static inline int au_test_higen(struct inode *inode, struct inode *h_inode)
++{
++ struct au_iinfo *iinfo;
++
++ IiMustAnyLock(inode);
++
++ iinfo = au_ii(inode);
++ return !(iinfo->ii_hsb1 == h_inode->i_sb
++ && iinfo->ii_higen == h_inode->i_generation);
++}
++
++static inline au_gen_t au_iigen(struct inode *inode)
++{
++ return atomic_read(&au_ii(inode)->ii_generation);
++}
++
++#ifdef CONFIG_AUFS_HINOTIFY
++static inline au_gen_t au_iigen_dec(struct inode *inode)
++{
++ /* AuDbg("i%lu\n", inode->i_ino); */
++ return atomic_dec_return(&au_ii(inode)->ii_generation);
++}
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++#ifdef CONFIG_AUFS_HINOTIFY
++static inline struct au_pin1 *au_pin_gp(struct au_pin *args)
++{
++ return args->pin + AuPin_GPARENT;
++}
++
++/* hinotify.c */
++void au_unpin_gp(struct au_pin *args);
++
++#else
++
++static inline struct au_pin1 *au_pin_gp(struct au_pin *args)
++{
++ return NULL;
++}
++
++static inline void au_unpin_gp(struct au_pin *args)
++{
++ /* empty */
++}
++#endif /* HINOTIFY */
++
++static inline void au_unpin(struct au_pin *args)
++{
++ au_do_unpin(args->pin + AuPin_PARENT, au_pin_gp(args));
++}
++
++static inline
++struct au_hinode *au_do_pinned_hdir(struct au_pin1 *pin)
++{
++ if (pin && pin->parent)
++ return au_hi(pin->parent->d_inode, pin->bindex);
++ return NULL;
++}
++
++struct dentry *au_do_pinned_h_parent(struct au_pin1 *pin);
++
++static inline struct dentry *au_do_pinned_parent(struct au_pin1 *pin)
++{
++ if (pin)
++ return pin->parent;
++ return NULL;
++}
++
++static inline struct inode *au_do_pinned_h_dir(struct au_pin1 *pin)
++{
++ if (pin)
++ return pin->h_dir;
++ return NULL;
++}
++
++static inline
++void au_pin_do_set_dentry(struct au_pin1 *pin, struct dentry *dentry)
++{
++ if (pin)
++ pin->dentry = dentry;
++}
++
++static inline
++void au_pin_do_set_parent(struct au_pin1 *pin, struct dentry *parent)
++{
++ if (pin) {
++ dput(pin->parent);
++ pin->parent = dget(parent);
++ }
++}
++
++static inline void au_pin_do_set_h_dir(struct au_pin1 *pin, struct inode *h_dir)
++{
++ if (pin) {
++ iput(pin->h_dir);
++ pin->h_dir = au_igrab(h_dir);
++ }
++}
++
++static inline
++void au_pin_do_set_parent_lflag(struct au_pin1 *pin, unsigned char lflag)
++{
++ if (pin) {
++ /* dirty macros require brackets */
++ if (lflag) {
++ au_fset_pin(pin->flags, DI_LOCKED);
++ } else {
++ au_fclr_pin(pin->flags, DI_LOCKED);
++ }
++ }
++}
++
++static inline
++struct au_hinode *au_pinned_hdir(struct au_pin *args)
++{
++ return au_do_pinned_hdir(args->pin + AuPin_PARENT);
++}
++
++static inline
++struct au_hinode *au_pinned_hgdir(struct au_pin *args)
++{
++ return au_do_pinned_hdir(au_pin_gp(args));
++}
++
++static inline
++struct dentry *au_pinned_h_parent(struct au_pin *args)
++{
++ return au_do_pinned_h_parent(args->pin + AuPin_PARENT);
++}
++
++#if 0 /* reserved for future use */
++static inline
++struct dentry *au_pinned_h_gparent(struct au_pin *args)
++{
++ return au_do_pinned_h_parent(au_pin_gp(args));
++}
++#endif
++
++static inline
++struct dentry *au_pinned_parent(struct au_pin *args)
++{
++ return au_do_pinned_parent(args->pin + AuPin_PARENT);
++}
++
++static inline
++struct dentry *au_pinned_gparent(struct au_pin *args)
++{
++ return au_do_pinned_parent(au_pin_gp(args));
++}
++
++static inline
++struct inode *au_pinned_h_dir(struct au_pin *args)
++{
++ return au_do_pinned_h_dir(args->pin + AuPin_PARENT);
++}
++
++static inline
++struct inode *au_pinned_h_gdir(struct au_pin *args)
++{
++ return au_do_pinned_h_dir(au_pin_gp(args));
++}
++
++static inline void au_pin_set_parent(struct au_pin *args, struct dentry *d)
++{
++ au_pin_do_set_parent(args->pin + AuPin_PARENT, d);
++}
++
++static inline void au_pin_set_gparent(struct au_pin *args, struct dentry *d)
++{
++ au_pin_do_set_parent(au_pin_gp(args), d);
++}
++
++static inline void au_pin_set_h_dir(struct au_pin *args, struct inode *h_dir)
++{
++ au_pin_do_set_h_dir(args->pin + AuPin_PARENT, h_dir);
++}
++
++static inline void au_pin_set_h_gdir(struct au_pin *args, struct inode *h_dir)
++{
++ au_pin_do_set_h_dir(au_pin_gp(args), h_dir);
++}
++
++static inline
++void au_pin_set_parent_lflag(struct au_pin *args, unsigned char lflag)
++{
++ au_pin_do_set_parent_lflag(args->pin + AuPin_PARENT, lflag);
++}
++
++static inline
++void au_pin_set_gparent_lflag(struct au_pin *args, unsigned char lflag)
++{
++ au_pin_do_set_parent_lflag(au_pin_gp(args), lflag);
++}
++
++#endif /* __KERNEL__ */
++#endif /* __AUFS_INODE_H__ */
+diff --git a/fs/aufs/misc.c b/fs/aufs/misc.c
+new file mode 100644
+index 0000000..7caf178
+--- /dev/null
++++ b/fs/aufs/misc.c
+@@ -0,0 +1,325 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * $Id: misc.c,v 1.65 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++void *au_kzrealloc(void *p, unsigned int nused, unsigned int new_sz, gfp_t gfp)
++{
++ void *q;
++
++ LKTRTrace("p %p, nused %d, sz %d\n", p, nused, new_sz);
++ AuDebugOn(new_sz <= 0);
++ if (new_sz <= nused)
++ return p;
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22)
++ q = krealloc(p, new_sz, gfp);
++ if (q)
++ memset(q + nused, 0, new_sz - nused);
++ return q;
++#else
++ LKTRTrace("ksize %d\n", ksize(p));
++ if (new_sz <= ksize(p)) {
++ memset(p + nused, 0, new_sz - nused);
++ return p;
++ }
++
++ q = kmalloc(new_sz, gfp);
++ //q = NULL;
++ if (unlikely(!q))
++ return NULL;
++ memcpy(q, p, nused);
++ memset(q + nused, 0, new_sz - nused);
++ //smp_mb();
++ kfree(p);
++ return q;
++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22) */
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct nameidata *au_dup_nd(struct au_sbinfo *sbinfo, struct nameidata *dst,
++ struct nameidata *src)
++{
++ LKTRTrace("src %p\n", src);
++
++ if (src) {
++ *dst = *src;
++ dst->flags &= ~LOOKUP_PARENT;
++ if (sbinfo->si_wbr_create == AuWbrCreate_TDP) {
++ if ((dst->flags & LOOKUP_CREATE)
++ && !(dst->intent.open.flags & O_CREAT))
++ dst->flags &= ~LOOKUP_CREATE;
++ } else {
++ dst->flags &= ~LOOKUP_CREATE;
++ dst->intent.open.flags &= ~O_CREAT;
++ }
++ } else
++ dst = NULL;
++
++ return dst;
++}
++
++struct nameidata *au_fake_dm(struct nameidata *fake_nd, struct nameidata *nd,
++ struct super_block *sb, aufs_bindex_t bindex)
++{
++ LKTRTrace("nd %p, b%d\n", nd, bindex);
++
++ if (!nd)
++ return NULL;
++
++ DiMustAnyLock(nd->dentry);
++
++ fake_nd->dentry = NULL;
++ fake_nd->mnt = NULL;
++
++ if (bindex <= au_dbend(nd->dentry))
++ fake_nd->dentry = au_h_dptr(nd->dentry, bindex);
++ if (fake_nd->dentry) {
++ dget(fake_nd->dentry);
++ fake_nd->mnt = au_sbr_mnt(sb, bindex);
++ AuDebugOn(!fake_nd->mnt);
++ mntget(fake_nd->mnt);
++ } else
++ fake_nd = ERR_PTR(-ENOENT);
++
++ AuTraceErrPtr(fake_nd);
++ return fake_nd;
++}
++
++void au_fake_dm_release(struct nameidata *fake_nd)
++{
++ if (fake_nd)
++ path_release(fake_nd);
++}
++
++int au_h_create(struct inode *h_dir, struct dentry *h_dentry, int mode,
++ struct vfsub_args *vargs, struct nameidata *nd,
++ struct vfsmount *nfsmnt)
++{
++ int err;
++
++ LKTRTrace("hi%lu, %.*s, 0%o, nd %d, nfsmnt %d\n",
++ h_dir->i_ino, AuDLNPair(h_dentry), mode, !!nd, !!nfsmnt);
++
++ err = -ENOSYS;
++ if (!nfsmnt)
++ err = vfsub_create(h_dir, h_dentry, mode, /*nd*/NULL, vargs);
++ else {
++ struct nameidata fake_nd;
++
++ if (nd)
++ fake_nd = *nd;
++ else
++ memset(&fake_nd, 0, sizeof(fake_nd));
++ fake_nd.dentry = dget(h_dentry);
++ fake_nd.mnt = mntget(nfsmnt);
++ fake_nd.flags = LOOKUP_CREATE;
++ fake_nd.intent.open.flags = O_CREAT | FMODE_READ;
++ fake_nd.intent.open.create_mode = mode;
++
++ err = vfsub_create(h_dir, h_dentry, mode, &fake_nd, vargs);
++ path_release(&fake_nd);
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/* empty_zero_page is not exported before 2.6.24 */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 24)
++static char *au_zp_alloc(void)
++{
++ return page_address(ZERO_PAGE(0));
++}
++
++static void au_zp_free(char *p)
++{
++ /* empty */
++}
++#else
++static char *au_zp_alloc(void)
++{
++ return (void *)get_zeroed_page(GFP_NOFS);
++}
++
++static void au_zp_free(char *p)
++{
++ if (p)
++ free_page((unsigned long)p);
++}
++#endif
++
++int au_copy_file(struct file *dst, struct file *src, loff_t len,
++ struct au_hinode *hdir, struct super_block *sb,
++ struct vfsub_args *vargs)
++{
++ int err, all_zero, do_kfree;
++ unsigned long blksize;
++ char *buf, *zp;
++ /* reduce stack usage */
++ struct iattr *ia;
++
++ LKTRTrace("%.*s, %.*s\n",
++ AuDLNPair(dst->f_dentry), AuDLNPair(src->f_dentry));
++ AuDebugOn(!(dst->f_mode & FMODE_WRITE));
++#ifdef CONFIG_AUFS_DEBUG
++ {
++ struct dentry *parent;
++ parent = dget_parent(dst->f_dentry);
++ IMustLock(parent->d_inode);
++ dput(parent);
++ }
++#endif
++
++ err = -ENOMEM;
++ zp = au_zp_alloc();
++ if (unlikely(!zp))
++ goto out;
++ blksize = dst->f_dentry->d_sb->s_blocksize;
++ if (!blksize || PAGE_SIZE < blksize)
++ blksize = PAGE_SIZE;
++ LKTRTrace("blksize %lu\n", blksize);
++ do_kfree = (blksize != PAGE_SIZE && blksize >= sizeof(*ia));
++ if (do_kfree)
++ buf = kmalloc(blksize, GFP_NOFS);
++ else
++ buf = (void *)__get_free_page(GFP_NOFS);
++ if (unlikely(!buf))
++ goto out;
++
++#ifdef CONFIG_AUFS_DEBUG
++ if (len > (1 << 22))
++ AuWarn("copying a large file %lld\n", (long long)len);
++#endif
++ err = 0;
++ all_zero = 0;
++ src->f_pos = 0;
++ dst->f_pos = 0;
++ while (len) {
++ size_t sz, rbytes, wbytes;
++ char *p;
++
++ LKTRTrace("len %lld\n", len);
++ sz = blksize;
++ if (len < blksize)
++ sz = len;
++
++ /* support LSM and notify */
++ rbytes = 0;
++ /* todo: signal_pending? */
++ while (!rbytes || err == -EAGAIN || err == -EINTR) {
++ rbytes = vfsub_read_k(src, buf, sz, &src->f_pos,
++ vfsub_ftest(vargs->flags, DLGT));
++ err = rbytes;
++ }
++ if (unlikely(err < 0))
++ break;
++
++ all_zero = 0;
++ if (len >= rbytes && rbytes == blksize) {
++#if 1
++ all_zero = !memcmp(buf, zp, rbytes);
++#else /* reserved for future use */
++ unsigned long long *ullp;
++ size_t n, i;
++
++ all_zero = 1;
++ ullp = (void *)buf;
++ n = rbytes / sizeof(*ullp);
++ i = n;
++ while (n-- > 0 && all_zero)
++ all_zero = !*ullp++;
++ p = (void *)ullp;
++ i *= sizeof(*ullp);
++ for (; all_zero && i < rbytes; i++)
++ all_zero = !*p++;
++#endif
++ }
++ if (!all_zero) {
++ wbytes = rbytes;
++ p = buf;
++ while (wbytes) {
++ size_t b;
++ /* support LSM and notify */
++ vfsub_args_reinit(vargs);
++ vfsub_ign_hinode(vargs, IN_MODIFY, hdir);
++ b = vfsub_write_k(dst, p, wbytes, &dst->f_pos,
++ vargs);
++ err = b;
++ /* todo: signal_pending? */
++ if (unlikely(err == -EAGAIN || err == -EINTR))
++ continue;
++ if (unlikely(err < 0))
++ break;
++ wbytes -= b;
++ p += b;
++ }
++ } else {
++ loff_t res;
++ LKTRLabel(hole);
++ res = vfsub_llseek(dst, rbytes, SEEK_CUR);
++ err = res;
++ if (unlikely(res < 0))
++ break;
++ }
++ len -= rbytes;
++ err = 0;
++ }
++
++ /* the last block may be a hole */
++ if (!err && all_zero) {
++ struct dentry *h_d = dst->f_dentry;
++ struct inode *h_i = h_d->d_inode;
++
++ LKTRLabel(last hole);
++ do {
++ /* todo: signal_pending? */
++ vfsub_args_reinit(vargs);
++ vfsub_ign_hinode(vargs, IN_MODIFY, hdir);
++ err = vfsub_write_k(dst, "\0", 1, &dst->f_pos, vargs);
++ } while (err == -EAGAIN || err == -EINTR);
++ if (err == 1) {
++ ia = (void *)buf;
++ ia->ia_size = dst->f_pos;
++ ia->ia_valid = ATTR_SIZE | ATTR_FILE;
++ ia->ia_file = dst;
++ vfsub_args_reinit(vargs);
++ vfsub_ign_hinode(vargs, vfsub_events_notify_change(ia),
++ hdir);
++ vfsub_i_lock_nested(h_i, AuLsc_I_CHILD2);
++ err = vfsub_notify_change(h_d, ia, vargs);
++ vfsub_i_unlock(h_i);
++ }
++ }
++ if (do_kfree)
++ kfree(buf);
++ else
++ free_page((unsigned long)buf);
++
++ out:
++ au_zp_free(zp);
++ AuTraceErr(err);
++ return err;
++}
+diff --git a/fs/aufs/misc.h b/fs/aufs/misc.h
+new file mode 100644
+index 0000000..d50bed1
+--- /dev/null
++++ b/fs/aufs/misc.h
+@@ -0,0 +1,244 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * $Id: misc.h,v 1.50 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#ifndef __AUFS_MISC_H__
++#define __AUFS_MISC_H__
++
++#ifdef __KERNEL__
++
++#include <linux/fs.h>
++#include <linux/namei.h>
++#include <linux/version.h>
++#include <linux/aufs_type.h>
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18)
++#define I_MUTEX_QUOTA 0
++#define lockdep_off() do {} while (0)
++#define lockdep_on() do {} while (0)
++#define mutex_lock_nested(mtx, lsc) mutex_lock(mtx)
++#define down_write_nested(rw, lsc) down_write(rw)
++#define down_read_nested(rw, lsc) down_read(rw)
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++typedef unsigned int au_gen_t;
++/* see linux/include/linux/jiffies.h */
++#define AuGenYounger(a, b) ((int)(b) - (int)(a) < 0)
++#define AuGenOlder(a, b) AufsGenYounger(b, a)
++
++/* ---------------------------------------------------------------------- */
++
++struct au_splhead {
++ spinlock_t spin;
++ struct list_head head;
++};
++
++static inline void au_spl_init(struct au_splhead *spl)
++{
++ spin_lock_init(&spl->spin);
++ INIT_LIST_HEAD(&spl->head);
++}
++
++static inline void au_spl_add(struct list_head *list, struct au_splhead *spl)
++{
++ spin_lock(&spl->spin);
++ list_add(list, &spl->head);
++ spin_unlock(&spl->spin);
++}
++
++static inline void au_spl_del(struct list_head *list, struct au_splhead *spl)
++{
++ spin_lock(&spl->spin);
++ list_del(list);
++ spin_unlock(&spl->spin);
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct au_rwsem {
++ struct rw_semaphore rwsem;
++#ifdef CONFIG_AUFS_DEBUG
++ atomic_t rcnt;
++#endif
++};
++
++#ifdef CONFIG_AUFS_DEBUG
++#define AuDbgRcntInit(rw) do { \
++ atomic_set(&(rw)->rcnt, 0); \
++ smp_mb(); /* atomic set */ \
++} while (0)
++
++#define AuDbgRcntInc(rw) atomic_inc_return(&(rw)->rcnt)
++#define AuDbgRcntDec(rw) WARN_ON(atomic_dec_return(&(rw)->rcnt) < 0)
++#else
++#define AuDbgRcntInit(rw) do {} while (0)
++#define AuDbgRcntInc(rw) do {} while (0)
++#define AuDbgRcntDec(rw) do {} while (0)
++#endif /* CONFIG_AUFS_DEBUG */
++
++#define au_rwsem_destroy(rw) AuDebugOn(rwsem_is_locked(&(rw)->rwsem))
++
++static inline void au_rw_init_nolock(struct au_rwsem *rw)
++{
++ AuDbgRcntInit(rw);
++ init_rwsem(&rw->rwsem);
++}
++
++static inline void au_rw_init_wlock(struct au_rwsem *rw)
++{
++ au_rw_init_nolock(rw);
++ down_write(&rw->rwsem);
++}
++
++static inline void au_rw_init_wlock_nested(struct au_rwsem *rw,
++ unsigned int lsc)
++{
++ au_rw_init_nolock(rw);
++ down_write_nested(&rw->rwsem, lsc);
++}
++
++static inline void au_rw_read_lock(struct au_rwsem *rw)
++{
++ down_read(&rw->rwsem);
++ AuDbgRcntInc(rw);
++}
++
++static inline void au_rw_read_lock_nested(struct au_rwsem *rw, unsigned int lsc)
++{
++ down_read_nested(&rw->rwsem, lsc);
++ AuDbgRcntInc(rw);
++}
++
++static inline void au_rw_read_unlock(struct au_rwsem *rw)
++{
++ AuDbgRcntDec(rw);
++ up_read(&rw->rwsem);
++}
++
++static inline void au_rw_dgrade_lock(struct au_rwsem *rw)
++{
++ AuDbgRcntInc(rw);
++ downgrade_write(&rw->rwsem);
++}
++
++static inline void au_rw_write_lock(struct au_rwsem *rw)
++{
++ down_write(&rw->rwsem);
++}
++
++static inline void au_rw_write_lock_nested(struct au_rwsem *rw,
++ unsigned int lsc)
++{
++ down_write_nested(&rw->rwsem, lsc);
++}
++
++static inline void au_rw_write_unlock(struct au_rwsem *rw)
++{
++ up_write(&rw->rwsem);
++}
++
++/* why is not _nested version defined */
++static inline int au_rw_read_trylock(struct au_rwsem *rw)
++{
++ int ret = down_read_trylock(&rw->rwsem);
++ if (ret)
++ AuDbgRcntInc(rw);
++ return ret;
++}
++
++static inline int au_rw_write_trylock(struct au_rwsem *rw)
++{
++ return down_write_trylock(&rw->rwsem);
++}
++
++#undef AuDbgRcntInit
++#undef AuDbgRcntInc
++#undef AuDbgRcntDec
++
++/* to debug easier, do not make them inlined functions */
++#define AuRwMustNoWaiters(rw) AuDebugOn(!list_empty(&(rw)->rwsem.wait_list))
++#define AuRwMustAnyLock(rw) AuDebugOn(down_write_trylock(&(rw)->rwsem))
++#ifdef CONFIG_AUFS_DEBUG
++#define AuRwMustReadLock(rw) do { \
++ AuRwMustAnyLock(rw); \
++ AuDebugOn(!atomic_read(&(rw)->rcnt)); \
++} while (0)
++
++#define AuRwMustWriteLock(rw) do { \
++ AuRwMustAnyLock(rw); \
++ AuDebugOn(atomic_read(&(rw)->rcnt)); \
++} while (0)
++#else
++#define AuRwMustReadLock(rw) AuRwMustAnyLock(rw)
++#define AuRwMustWriteLock(rw) AuRwMustAnyLock(rw)
++#endif /* CONFIG_AUFS_DEBUG */
++
++#define AuSimpleLockRwsemFuncs(prefix, param, rwsem) \
++static inline void prefix##_read_lock(param) \
++{ au_rw_read_lock(&(rwsem)); } \
++static inline void prefix##_write_lock(param) \
++{ au_rw_write_lock(&(rwsem)); } \
++static inline int prefix##_read_trylock(param) \
++{ return au_rw_read_trylock(&(rwsem)); } \
++static inline int prefix##_write_trylock(param) \
++{ return au_rw_write_trylock(&(rwsem)); }
++/* static inline void prefix##_read_trylock_nested(param, lsc)
++{au_rw_read_trylock_nested(&(rwsem, lsc));}
++static inline void prefix##_write_trylock_nestd(param, lsc)
++{au_rw_write_trylock_nested(&(rwsem), nested);} */
++
++#define AuSimpleUnlockRwsemFuncs(prefix, param, rwsem) \
++static inline void prefix##_read_unlock(param) \
++{ au_rw_read_unlock(&(rwsem)); } \
++static inline void prefix##_write_unlock(param) \
++{ au_rw_write_unlock(&(rwsem)); } \
++static inline void prefix##_downgrade_lock(param) \
++{ au_rw_dgrade_lock(&(rwsem)); }
++
++#define AuSimpleRwsemFuncs(prefix, param, rwsem) \
++ AuSimpleLockRwsemFuncs(prefix, param, rwsem) \
++ AuSimpleUnlockRwsemFuncs(prefix, param, rwsem)
++
++/* ---------------------------------------------------------------------- */
++
++void *au_kzrealloc(void *p, unsigned int nused, unsigned int new_sz, gfp_t gfp);
++
++struct au_sbinfo;
++struct nameidata *au_dup_nd(struct au_sbinfo *sbinfo, struct nameidata *dst,
++ struct nameidata *src);
++
++struct nameidata *au_fake_dm(struct nameidata *fake_nd, struct nameidata *nd,
++ struct super_block *sb, aufs_bindex_t bindex);
++void au_fake_dm_release(struct nameidata *fake_nd);
++struct vfsub_args;
++int au_h_create(struct inode *h_dir, struct dentry *h_dentry, int mode,
++ struct vfsub_args *vargs, struct nameidata *nd,
++ struct vfsmount *nfsmnt);
++
++struct au_hinode;
++int au_copy_file(struct file *dst, struct file *src, loff_t len,
++ struct au_hinode *hdir, struct super_block *sb,
++ struct vfsub_args *vargs);
++
++#endif /* __KERNEL__ */
++#endif /* __AUFS_MISC_H__ */
+diff --git a/fs/aufs/module.c b/fs/aufs/module.c
+new file mode 100644
+index 0000000..030fa3b
+--- /dev/null
++++ b/fs/aufs/module.c
+@@ -0,0 +1,295 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * module global variables and operations
++ *
++ * $Id: module.c,v 1.38 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include <linux/module.h>
++#include "aufs.h"
++
++/* ---------------------------------------------------------------------- */
++
++/*
++ * aufs caches
++ */
++struct kmem_cache *au_cachep[AuCache_Last];
++static int __init create_cache(void)
++{
++ au_cachep[AuCache_DINFO] = AuCache(au_dinfo);
++ if (au_cachep[AuCache_DINFO])
++ au_cachep[AuCache_ICNTNR] = AuCache(aufs_icntnr);
++ if (au_cachep[AuCache_ICNTNR])
++ au_cachep[AuCache_FINFO] = AuCache(au_finfo);
++ //au_cachep[AuCache_FINFO] = NULL;
++ if (au_cachep[AuCache_FINFO])
++ au_cachep[AuCache_VDIR] = AuCache(au_vdir);
++ if (au_cachep[AuCache_VDIR])
++ au_cachep[AuCache_DEHSTR] = AuCache(au_vdir_dehstr);
++ if (au_cachep[AuCache_DEHSTR])
++ return 0;
++
++ return -ENOMEM;
++}
++
++static void destroy_cache(void)
++{
++ int i;
++ for (i = 0; i < AuCache_Last; i++)
++ if (au_cachep[i]) {
++ kmem_cache_destroy(au_cachep[i]);
++ au_cachep[i] = NULL;
++ }
++}
++
++/* ---------------------------------------------------------------------- */
++
++char au_esc_chars[0x20 + 3]; /* 0x01-0x20, backslash, del, and NULL */
++int au_dir_roflags;
++
++/*
++ * functions for module interface.
++ */
++MODULE_LICENSE("GPL");
++/* MODULE_LICENSE("GPL v2"); */
++MODULE_AUTHOR("Junjiro Okajima");
++MODULE_DESCRIPTION(AUFS_NAME " -- Another unionfs");
++MODULE_VERSION(AUFS_VERSION);
++
++/* it should be 'byte', but param_set_byte() prints it by "%c" */
++short aufs_nwkq = AUFS_NWKQ_DEF;
++MODULE_PARM_DESC(nwkq, "the number of workqueue thread, " AUFS_WKQ_NAME);
++module_param_named(nwkq, aufs_nwkq, short, S_IRUGO);
++
++int sysaufs_brs;
++MODULE_PARM_DESC(brs, "use <sysfs>/fs/aufs/sbi_*/brN");
++module_param_named(brs, sysaufs_brs, int, S_IRUGO);
++
++/* ---------------------------------------------------------------------- */
++
++static int __init aufs_init(void)
++{
++ int err, i;
++ char *p;
++
++ au_debug_init();
++#ifdef CONFIG_AUFS_INO_T_64
++ BUILD_BUG_ON(sizeof(ino_t) != sizeof(long long));
++#else
++ BUILD_BUG_ON(sizeof(ino_t) != sizeof(int));
++#endif
++
++ p = au_esc_chars;
++ for (i = 1; i <= ' '; i++)
++ *p++ = i;
++ *p++ = '\\';
++ *p++ = '\x7f';
++ *p = 0;
++
++ au_dir_roflags = au_file_roflags(O_DIRECTORY | O_LARGEFILE);
++
++ err = -EINVAL;
++ if (unlikely(aufs_nwkq <= 0))
++ goto out;
++
++ err = sysaufs_init();
++ if (unlikely(err))
++ goto out;
++ err = au_wkq_init();
++ if (unlikely(err))
++ goto out_sysaufs;
++ err = au_inotify_init();
++ if (unlikely(err))
++ goto out_wkq;
++ err = au_sysrq_init();
++ if (unlikely(err))
++ goto out_inotify;
++
++ err = create_cache();
++ if (unlikely(err))
++ goto out_sysrq;
++
++ err = register_filesystem(&aufs_fs_type);
++ if (unlikely(err))
++ goto out_cache;
++ pr_info(AUFS_NAME " " AUFS_VERSION "\n");
++ return 0; /* success */
++
++ out_cache:
++ destroy_cache();
++ out_sysrq:
++ au_sysrq_fin();
++ out_inotify:
++ au_inotify_fin();
++ out_wkq:
++ au_wkq_fin();
++ out_sysaufs:
++ sysaufs_fin();
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++static void __exit aufs_exit(void)
++{
++ unregister_filesystem(&aufs_fs_type);
++ destroy_cache();
++
++ au_sysrq_fin();
++ au_inotify_fin();
++ au_wkq_fin();
++ sysaufs_fin();
++}
++
++module_init(aufs_init);
++module_exit(aufs_exit);
++
++/* ---------------------------------------------------------------------- */
++
++/* fake Kconfig */
++#if 1
++
++#if AUFS_BRANCH_MAX > 511 && PAGE_SIZE > 4096
++#warning pagesize is larger than 4kb, \
++ CONFIG_AUFS_BRANCH_MAX_511 or smaller is recommended.
++#endif
++
++#ifdef CONFIG_AUFS_SYSAUFS
++#ifndef CONFIG_SYSFS
++#error CONFIG_AUFS_SYSAUFS requires CONFIG_SYSFS.
++#endif
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18)
++#error CONFIG_AUFS_SYSAUFS requires linux-2.6.18 and later.
++#endif
++#endif /* CONFIG_AUFS_SYSAUFS */
++
++#ifdef CONFIG_AUFS_HINOTIFY
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18)
++#error CONFIG_AUFS_HINOTIFY is supported in linux-2.6.18 and later.
++#endif
++#ifndef CONFIG_INOTIFY
++#error enable CONFIG_INOTIFY to use CONFIG_AUFS_HINOTIFY.
++#endif
++#endif /* CONFIG_AUFS_HINOTIFY */
++
++#ifdef CONFIG_AUFS_EXPORT
++#if !defined(CONFIG_EXPORTFS) && !defined(CONFIG_EXPORTFS_MODULE)
++#error CONFIG_AUFS_EXPORT requires CONFIG_EXPORTFS
++#endif
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18)
++#error CONFIG_AUFS_EXPORT requires linux-2.6.18 and later.
++#endif
++#if defined(CONFIG_EXPORTFS_MODULE) && defined(CONFIG_AUFS)
++#error need CONFIG_EXPORTFS = y to link aufs statically with CONFIG_AUFS_EXPORT
++#endif
++#endif /* CONFIG_AUFS_EXPORT */
++
++#ifdef CONFIG_AUFS_SEC_PERM_PATCH
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24)
++#warning CONFIG_AUFS_SEC_PERM_PATCH does not support before linux-2.6.24.
++#endif
++#ifndef CONFIG_SECURITY
++#warning AUFS_SEC_PERM_PATCH is unnecessary since SECURITY is disabled.
++#endif
++#ifdef CONFIG_AUFS
++#warning AUFS_SEC_PERM_PATCH is unnecessary since AUFS is not a module.
++#endif
++#endif
++
++#if defined(CONFIG_AUFS_SPLICE_PATCH) \
++ && LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23)
++#error CONFIG_AUFS_SPLICE_PATCH is supported linux-2.6.23 and later.
++#endif
++
++#ifdef CONFIG_AUFS_LHASH_PATCH
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
++#error CONFIG_AUFS_LHASH_PATCH does not support before linux-2.6.19.
++#endif
++#if !defined(CONFIG_NFS_FS) && !defined(CONFIG_NFS_FS_MODULE)
++#warning CONFIG_AUFS_LHASH_PATCH is unnecessary since CONFIG_NFS_FS is disabled.
++#endif
++#endif
++
++#ifdef CONFIG_AUFS_PUT_FILP_PATCH
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
++#warning CONFIG_AUFS_PUT_FILP_PATCH does not support before linux-2.6.19.
++#endif
++#ifndef CONFIG_NFS_V4
++#warning AUFS_PUT_FILP_PATCH is unnecessary since NFS_V4 is disabled.
++#endif
++#ifdef CONFIG_AUFS
++#warning AUFS_PUT_FILP_PATCH is unnecessary since AUFS is not a module.
++#endif
++#endif /* CONFIG_AUFS_PUT_FILP_PATCH */
++
++#ifdef CONFIG_AUFS_FSYNC_SUPER_PATCH
++#ifdef CONFIG_AUFS
++#warning AUFS_FSYNC_SUPER_PATCH is unnecessary since AUFS is not a module.
++#endif
++#endif
++
++#ifdef CONFIG_DENY_WRITE_ACCESS_PATCH
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 17)
++#warning AUFS_DENY_WRITE_ACCESS_PATCH is supported in linux-2.6.17 and later.
++#endif
++#ifdef CONFIG_AUFS
++#warning AUFS_DENY_WRITE_ACCESS_PATCH is unnecessary since AUFS is not a module.
++#endif
++#endif
++
++#ifdef CONFIG_AUFS_KSIZE_PATCH
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22)
++#warning CONFIG_AUFS_KSIZE_PATCH is unnecessary for linux-2.6.22 and later.
++#endif
++#ifdef CONFIG_AUFS
++#warning CONFIG_AUFS_KSIZE_PATCH is unnecessary since AUFS is not a module.
++#endif
++#endif
++
++#ifdef CONFIG_AUFS_WORKAROUND_FUSE
++#if !defined(CONFIG_FUSE_FS) && !defined(CONFIG_FUSE_FS_MODULE)
++#warning CONFIG_AUFS_WORKAROUND_FUSE is enabled while FUSE is disabled.
++#endif
++#endif
++
++#ifdef CONFIG_AUFS_DEBUG_LOCK
++#ifndef CONFIG_AUFS_MAGIC_SYSRQ
++#warning CONFIG_AUFS_DEBUG_LOCK is enabled but CONFIG_AUFS_MAGIC_SYSRQ.
++#endif
++#endif
++
++#ifdef CONFIG_AUFS_COMPAT
++#warning CONFIG_AUFS_COMPAT will be removed in the near future.
++#endif
++
++#ifdef CONFIG_AUFS_UNIONFS23_PATCH
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23) \
++ && !defined(CONFIG_AUFS_SPLICE_PATCH)
++#error mis-config. AUFS_UNIONFS23_PATCH is enabled but AUFS_SPLICE_PATCH.
++#endif
++#endif
++
++#ifdef CONFIG_DEBUG_PROVE_LOCKING
++#if MAX_LOCKDEP_SUBCLASSES < AuLsc_I_End
++#warning lockdep will not work since aufs uses deeper locks.
++#endif
++#endif
++
++#endif
+diff --git a/fs/aufs/module.h b/fs/aufs/module.h
+new file mode 100644
+index 0000000..6fc1a1a
+--- /dev/null
++++ b/fs/aufs/module.h
+@@ -0,0 +1,81 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * module initialization and module-global
++ *
++ * $Id: module.h,v 1.22 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#ifndef __AUFS_MODULE_H__
++#define __AUFS_MODULE_H__
++
++#ifdef __KERNEL__
++
++#include <linux/slab.h>
++
++/* ---------------------------------------------------------------------- */
++
++/* module parameters */
++extern short aufs_nwkq;
++extern int sysaufs_brs;
++
++/* ---------------------------------------------------------------------- */
++
++extern char au_esc_chars[];
++extern int au_dir_roflags;
++
++/* kmem cache */
++enum {
++ AuCache_DINFO,
++ AuCache_ICNTNR,
++ AuCache_FINFO,
++ AuCache_VDIR,
++ AuCache_DEHSTR,
++#ifdef CONFIG_AUFS_HINOTIFY
++ AuCache_HINOTIFY,
++#endif
++ AuCache_Last
++};
++
++extern struct kmem_cache *au_cachep[];
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23)
++#define AuCacheArgs(type, sz) (type), (sz), 0, SLAB_RECLAIM_ACCOUNT, NULL
++#else
++#define AuCacheArgs(type, sz) (type), (sz), 0, SLAB_RECLAIM_ACCOUNT, NULL, NULL
++#endif
++#define AuCache(type) \
++ kmem_cache_create(AuCacheArgs(#type, sizeof(struct type)))
++
++/* ---------------------------------------------------------------------- */
++
++#define AuCacheFuncs(name, index) \
++static inline void *au_cache_alloc_##name(void) \
++{ return kmem_cache_alloc(au_cachep[index], GFP_NOFS); } \
++static inline void au_cache_free_##name(void *p) \
++{ kmem_cache_free(au_cachep[index], p); }
++
++AuCacheFuncs(dinfo, AuCache_DINFO);
++AuCacheFuncs(icntnr, AuCache_ICNTNR);
++AuCacheFuncs(finfo, AuCache_FINFO);
++AuCacheFuncs(vdir, AuCache_VDIR);
++AuCacheFuncs(dehstr, AuCache_DEHSTR);
++
++#endif /* __KERNEL__ */
++#endif /* __AUFS_MODULE_H__ */
+diff --git a/fs/aufs/opts.c b/fs/aufs/opts.c
+new file mode 100644
+index 0000000..c4e1412
+--- /dev/null
++++ b/fs/aufs/opts.c
+@@ -0,0 +1,1622 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * mount options/flags
++ *
++ * $Id: opts.c,v 1.72 2009/01/26 06:24:05 sfjro Exp $
++ */
++
++#include <linux/types.h> /* a distribution requires */
++#include <linux/parser.h>
++#include "aufs.h"
++
++/* ---------------------------------------------------------------------- */
++
++enum {
++ Opt_br,
++ Opt_add, Opt_del, Opt_mod, Opt_reorder, Opt_append, Opt_prepend,
++ Opt_idel, Opt_imod, Opt_ireorder,
++ Opt_dirwh, Opt_rdcache, Opt_deblk, Opt_nhash, Opt_rendir,
++ Opt_xino, Opt_zxino, Opt_noxino,
++ Opt_trunc_xino, Opt_trunc_xino_v, Opt_notrunc_xino,
++ Opt_trunc_xino_path, Opt_itrunc_xino,
++ Opt_xinodir,
++ Opt_trunc_xib, Opt_notrunc_xib,
++ Opt_dirperm1, Opt_nodirperm1,
++ Opt_shwh, Opt_noshwh,
++ Opt_plink, Opt_noplink, Opt_list_plink, Opt_clean_plink,
++ Opt_udba,
++ /* Opt_lock, Opt_unlock, */
++ Opt_cmd, Opt_cmd_args,
++ Opt_diropq_a, Opt_diropq_w,
++ Opt_warn_perm, Opt_nowarn_perm,
++ Opt_wbr_copyup, Opt_wbr_create,
++ Opt_coo,
++ Opt_dlgt, Opt_nodlgt,
++ Opt_refrof, Opt_norefrof,
++ Opt_verbose, Opt_noverbose,
++ Opt_sum, Opt_nosum, Opt_wsum,
++ Opt_tail, Opt_ignore, Opt_ignore_silent, Opt_err
++};
++
++static match_table_t options = {
++ {Opt_br, "br=%s"},
++ {Opt_br, "br:%s"},
++
++ {Opt_add, "add=%d:%s"},
++ {Opt_add, "add:%d:%s"},
++ {Opt_add, "ins=%d:%s"},
++ {Opt_add, "ins:%d:%s"},
++ {Opt_append, "append=%s"},
++ {Opt_append, "append:%s"},
++ {Opt_prepend, "prepend=%s"},
++ {Opt_prepend, "prepend:%s"},
++
++ {Opt_del, "del=%s"},
++ {Opt_del, "del:%s"},
++ /* {Opt_idel, "idel:%d"}, */
++ {Opt_mod, "mod=%s"},
++ {Opt_mod, "mod:%s"},
++ {Opt_imod, "imod:%d:%s"},
++
++ {Opt_dirwh, "dirwh=%d"},
++ {Opt_dirwh, "dirwh:%d"},
++
++ {Opt_xino, "xino=%s"},
++ {Opt_xino, "xino:%s"},
++#if 0 /* def CONFIG_AUFS_EXPORT */ /* reserved for futur use */
++ {Opt_xinodir, "xinodir=%s"},
++ {Opt_xinodir, "xinodir:%s"},
++#endif
++ {Opt_noxino, "noxino"},
++ {Opt_trunc_xino, "trunc_xino"},
++ {Opt_trunc_xino_v, "trunc_xino_v=%d:%d"},
++ {Opt_notrunc_xino, "notrunc_xino"},
++ {Opt_trunc_xino_path, "trunc_xino=%s"},
++ {Opt_trunc_xino_path, "trunc_xino:%s"},
++ {Opt_itrunc_xino, "itrunc_xino=%d"},
++ {Opt_itrunc_xino, "itrunc_xino:%d"},
++ /* {Opt_zxino, "zxino=%s"}, */
++ {Opt_trunc_xib, "trunc_xib"},
++ {Opt_notrunc_xib, "notrunc_xib"},
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 16)
++ {Opt_plink, "plink"},
++ {Opt_noplink, "noplink"},
++#ifdef CONFIG_AUFS_DEBUG
++ {Opt_list_plink, "list_plink"},
++#endif
++ {Opt_clean_plink, "clean_plink"},
++#endif
++
++ {Opt_udba, "udba=%s"},
++
++ {Opt_diropq_a, "diropq=always"},
++ {Opt_diropq_a, "diropq=a"},
++ {Opt_diropq_w, "diropq=whiteouted"},
++ {Opt_diropq_w, "diropq=w"},
++
++ {Opt_warn_perm, "warn_perm"},
++ {Opt_nowarn_perm, "nowarn_perm"},
++
++#ifdef CONFIG_AUFS_DLGT
++ {Opt_dlgt, "dlgt"},
++ {Opt_dirperm1, "dirperm1"},
++#endif
++ {Opt_nodlgt, "nodlgt"},
++ {Opt_nodirperm1, "nodirperm1"},
++
++#ifdef CONFIG_AUFS_SHWH
++ {Opt_shwh, "shwh"},
++#endif
++ {Opt_noshwh, "noshwh"},
++
++ {Opt_rendir, "rendir=%d"},
++ {Opt_rendir, "rendir:%d"},
++
++ {Opt_refrof, "refrof"},
++ {Opt_norefrof, "norefrof"},
++
++ {Opt_verbose, "verbose"},
++ {Opt_verbose, "v"},
++ {Opt_noverbose, "noverbose"},
++ {Opt_noverbose, "quiet"},
++ {Opt_noverbose, "q"},
++ {Opt_noverbose, "silent"},
++
++ {Opt_sum, "sum"},
++ {Opt_nosum, "nosum"},
++ {Opt_wsum, "wsum"},
++
++ {Opt_rdcache, "rdcache=%d"},
++ {Opt_rdcache, "rdcache:%d"},
++
++ {Opt_coo, "coo=%s"},
++
++ {Opt_wbr_create, "create=%s"},
++ {Opt_wbr_create, "create:%s"},
++ {Opt_wbr_create, "create_policy=%s"},
++ {Opt_wbr_create, "create_policy:%s"},
++ {Opt_wbr_copyup, "cpup=%s"},
++ {Opt_wbr_copyup, "cpup:%s"},
++ {Opt_wbr_copyup, "copyup=%s"},
++ {Opt_wbr_copyup, "copyup:%s"},
++ {Opt_wbr_copyup, "copyup_policy=%s"},
++ {Opt_wbr_copyup, "copyup_policy:%s"},
++
++ /* internal use for the scripts */
++ {Opt_ignore_silent, "si=%s"},
++
++#if 0 /* reserved for future use */
++ {Opt_deblk, "deblk=%d"},
++ {Opt_deblk, "deblk:%d"},
++ {Opt_nhash, "nhash=%d"},
++ {Opt_nhash, "nhash:%d"},
++#endif
++
++ {Opt_br, "dirs=%s"},
++ {Opt_ignore, "debug=%d"},
++ {Opt_ignore, "delete=whiteout"},
++ {Opt_ignore, "delete=all"},
++ {Opt_ignore, "imap=%s"},
++
++ {Opt_err, NULL}
++};
++
++/* ---------------------------------------------------------------------- */
++
++static au_parser_pattern_t au_parser_pattern(int val, struct match_token *token)
++{
++ while (token->pattern) {
++ if (token->token == val)
++ return token->pattern;
++ token++;
++ }
++ BUG();
++ return "??";
++}
++
++/* ---------------------------------------------------------------------- */
++
++#define RW "rw"
++#define RO "ro"
++#define WH "wh"
++#define RR "rr"
++#define NoLinkWH "nolwh"
++
++static match_table_t brperms = {
++ {AuBrPerm_RR, RR},
++ {AuBrPerm_RO, RO},
++ {AuBrPerm_RW, RW},
++
++ {AuBrPerm_RRWH, RR "+" WH},
++ {AuBrPerm_ROWH, RO "+" WH},
++ {AuBrPerm_RWNoLinkWH, RW "+" NoLinkWH},
++
++ {AuBrPerm_ROWH, "nfsro"},
++ {AuBrPerm_RO, NULL}
++};
++
++static noinline_for_stack int br_perm_val(char *perm)
++{
++ int val;
++ substring_t args[MAX_OPT_ARGS];
++
++ AuDebugOn(!perm || !*perm);
++ LKTRTrace("perm %s\n", perm);
++ val = match_token(perm, brperms, args);
++ AuTraceErr(val);
++ return val;
++}
++
++au_parser_pattern_t au_optstr_br_perm(int brperm)
++{
++ return au_parser_pattern(brperm, brperms);
++}
++
++/* ---------------------------------------------------------------------- */
++
++static match_table_t udbalevel = {
++ {AuOpt_UDBA_REVAL, "reval"},
++#ifdef CONFIG_AUFS_HINOTIFY
++ {AuOpt_UDBA_INOTIFY, "inotify"},
++#endif
++ {AuOpt_UDBA_NONE, "none"},
++ {-1, NULL}
++};
++
++static noinline_for_stack int udba_val(char *str)
++{
++ substring_t args[MAX_OPT_ARGS];
++ return match_token(str, udbalevel, args);
++}
++
++au_parser_pattern_t au_optstr_udba(int udba)
++{
++ return au_parser_pattern(udba, udbalevel);
++}
++
++/* ---------------------------------------------------------------------- */
++
++static match_table_t coolevel = {
++ {AuOpt_COO_NONE, "none"},
++ {AuOpt_COO_LEAF, "leaf"},
++ {AuOpt_COO_ALL, "all"},
++ {-1, NULL}
++};
++
++static noinline_for_stack int coo_val(char *str)
++{
++ substring_t args[MAX_OPT_ARGS];
++ return match_token(str, coolevel, args);
++}
++
++au_parser_pattern_t au_optstr_coo(int coo)
++{
++ return au_parser_pattern(coo, coolevel);
++}
++
++/* ---------------------------------------------------------------------- */
++
++static match_table_t au_wbr_create_policy = {
++ {AuWbrCreate_TDP, "tdp"},
++ {AuWbrCreate_TDP, "top-down-parent"},
++ {AuWbrCreate_RR, "rr"},
++ {AuWbrCreate_RR, "round-robin"},
++ {AuWbrCreate_MFS, "mfs"},
++ {AuWbrCreate_MFS, "most-free-space"},
++ {AuWbrCreate_MFSV, "mfs:%d"},
++ {AuWbrCreate_MFSV, "most-free-space:%d"},
++
++ {AuWbrCreate_MFSRR, "mfsrr:%d"},
++ {AuWbrCreate_MFSRRV, "mfsrr:%d:%d"},
++ {AuWbrCreate_PMFS, "pmfs"},
++ {AuWbrCreate_PMFSV, "pmfs:%d"},
++
++ {-1, NULL}
++};
++
++/* cf. linux/lib/parser.c */
++static int au_match_ull(substring_t *s, unsigned long long *result)
++{
++ int err;
++ unsigned int len;
++ char a[32];
++ char *endp;
++
++ err = -ERANGE;
++ len = s->to - s->from;
++ if (len + 1 <= sizeof(a)) {
++ memcpy(a, s->from, len);
++ a[len] = '\0';
++#if 1
++ *result = simple_strtoull(a, &endp, 0);
++ err = 0;
++ if (endp == a)
++ err = -EINVAL;
++#else
++ char *next;
++ *result = memparse(a, &next);
++ err = *result;
++ if (!IS_ERR((void *)err))
++ err = 0;
++#endif
++ }
++ return err;
++}
++
++static int au_wbr_mfs_wmark(substring_t *arg, char *str,
++ struct au_opt_wbr_create *create)
++{
++ int err;
++ unsigned long long ull;
++
++ err = 0;
++ if (!au_match_ull(arg, &ull))
++ create->mfsrr_watermark = ull;
++ else {
++ AuErr("bad integer in %s\n", str);
++ err = -EINVAL;
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++static int au_wbr_mfs_sec(substring_t *arg, char *str,
++ struct au_opt_wbr_create *create)
++{
++ int n, err;
++
++ err = 0;
++ if (!match_int(arg, &n) && 0 <= n)
++ create->mfs_second = n;
++ else {
++ AuErr("bad integer in %s\n", str);
++ err = -EINVAL;
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++static noinline_for_stack
++int au_wbr_create_val(char *str, struct au_opt_wbr_create *create)
++{
++ int err, e;
++ substring_t args[MAX_OPT_ARGS];
++
++ err = match_token(str, au_wbr_create_policy, args);
++ create->wbr_create = err;
++ switch (err) {
++ case AuWbrCreate_MFSRRV:
++ e = au_wbr_mfs_wmark(&args[0], str, create);
++ if (!e)
++ e = au_wbr_mfs_sec(&args[1], str, create);
++ if (unlikely(e))
++ err = e;
++ break;
++ case AuWbrCreate_MFSRR:
++ e = au_wbr_mfs_wmark(&args[0], str, create);
++ if (unlikely(e)) {
++ err = e;
++ break;
++ }
++ /*FALLTHROUGH*/
++ case AuWbrCreate_MFS:
++ case AuWbrCreate_PMFS:
++ create->mfs_second = AUFS_MFS_SECOND_DEF;
++ break;
++ case AuWbrCreate_MFSV:
++ case AuWbrCreate_PMFSV:
++ e = au_wbr_mfs_sec(&args[0], str, create);
++ if (unlikely(e))
++ err = e;
++ break;
++ }
++
++ return err;
++}
++
++au_parser_pattern_t au_optstr_wbr_create(int wbr_create)
++{
++ return au_parser_pattern(wbr_create, au_wbr_create_policy);
++}
++
++static match_table_t au_wbr_copyup_policy = {
++ {AuWbrCopyup_TDP, "tdp"},
++ {AuWbrCopyup_TDP, "top-down-parent"},
++ {AuWbrCopyup_BUP, "bup"},
++ {AuWbrCopyup_BUP, "bottom-up-parent"},
++ {AuWbrCopyup_BU, "bu"},
++ {AuWbrCopyup_BU, "bottom-up"},
++ {-1, NULL}
++};
++
++static noinline_for_stack int au_wbr_copyup_val(char *str)
++{
++ substring_t args[MAX_OPT_ARGS];
++ return match_token(str, au_wbr_copyup_policy, args);
++}
++
++au_parser_pattern_t au_optstr_wbr_copyup(int wbr_copyup)
++{
++ return au_parser_pattern(wbr_copyup, au_wbr_copyup_policy);
++}
++
++/* ---------------------------------------------------------------------- */
++
++static const int lkup_dirflags = LOOKUP_FOLLOW | LOOKUP_DIRECTORY;
++
++static void dump_opts(struct au_opts *opts)
++{
++#ifdef CONFIG_AUFS_DEBUG
++ /* reduce stack space */
++ union {
++ struct au_opt_add *add;
++ struct au_opt_del *del;
++ struct au_opt_mod *mod;
++ struct au_opt_xino *xino;
++ struct au_opt_xinodir *xinodir;
++ struct au_opt_xino_itrunc *xino_itrunc;
++ struct au_opt_wbr_create *create;
++ } u;
++ struct au_opt *opt;
++
++ AuTraceEnter();
++
++ opt = opts->opt;
++ while (/* opt < opts_tail && */ opt->type != Opt_tail) {
++ switch (opt->type) {
++ case Opt_add:
++ u.add = &opt->add;
++ LKTRTrace("add {b%d, %s, 0x%x, %p}\n",
++ u.add->bindex, u.add->path, u.add->perm,
++ u.add->nd.dentry);
++ break;
++ case Opt_del:
++ case Opt_idel:
++ u.del = &opt->del;
++ LKTRTrace("del {%s, %p}\n", u.del->path, u.del->h_root);
++ break;
++ case Opt_mod:
++ case Opt_imod:
++ u.mod = &opt->mod;
++ LKTRTrace("mod {%s, 0x%x, %p}\n",
++ u.mod->path, u.mod->perm, u.mod->h_root);
++ break;
++ case Opt_append:
++ u.add = &opt->add;
++ LKTRTrace("append {b%d, %s, 0x%x, %p}\n",
++ u.add->bindex, u.add->path, u.add->perm,
++ u.add->nd.dentry);
++ break;
++ case Opt_prepend:
++ u.add = &opt->add;
++ LKTRTrace("prepend {b%d, %s, 0x%x, %p}\n",
++ u.add->bindex, u.add->path, u.add->perm,
++ u.add->nd.dentry);
++ break;
++ case Opt_dirwh:
++ LKTRTrace("dirwh %d\n", opt->dirwh);
++ break;
++ case Opt_rdcache:
++ LKTRTrace("rdcache %d\n", opt->rdcache);
++ break;
++ case Opt_xino:
++ u.xino = &opt->xino;
++ LKTRTrace("xino {%s %.*s}\n",
++ u.xino->path,
++ AuDLNPair(u.xino->file->f_dentry));
++ break;
++#if 0 /* reserved for future use */
++ case Opt_xinodir:
++ u.xinodir = &opt->xinodir;
++ LKTRTrace("xinodir {%s %.*s}\n",
++ u.xinodir->name,
++ AuDLNPair(u.xinodir->path.dentry));
++ break;
++#endif
++ case Opt_trunc_xino:
++ LKTRLabel(trunc_xino);
++ break;
++ case Opt_notrunc_xino:
++ LKTRLabel(notrunc_xino);
++ break;
++ case Opt_trunc_xino_path:
++ case Opt_itrunc_xino:
++ u.xino_itrunc = &opt->xino_itrunc;
++ LKTRTrace("trunc_xino %d\n", u.xino_itrunc->bindex);
++ break;
++
++ case Opt_noxino:
++ LKTRLabel(noxino);
++ break;
++ case Opt_trunc_xib:
++ LKTRLabel(trunc_xib);
++ break;
++ case Opt_notrunc_xib:
++ LKTRLabel(notrunc_xib);
++ break;
++ case Opt_dirperm1:
++ LKTRLabel(dirperm1);
++ break;
++ case Opt_nodirperm1:
++ LKTRLabel(nodirperm1);
++ break;
++ case Opt_shwh:
++ LKTRLabel(shwh);
++ break;
++ case Opt_noshwh:
++ LKTRLabel(noshwh);
++ break;
++ case Opt_plink:
++ LKTRLabel(plink);
++ break;
++ case Opt_noplink:
++ LKTRLabel(noplink);
++ break;
++ case Opt_list_plink:
++ LKTRLabel(list_plink);
++ break;
++ case Opt_clean_plink:
++ LKTRLabel(clean_plink);
++ break;
++ case Opt_udba:
++ LKTRTrace("udba %d, %s\n",
++ opt->udba, au_optstr_udba(opt->udba));
++ break;
++ case Opt_diropq_a:
++ LKTRLabel(diropq_a);
++ break;
++ case Opt_diropq_w:
++ LKTRLabel(diropq_w);
++ break;
++ case Opt_warn_perm:
++ LKTRLabel(warn_perm);
++ break;
++ case Opt_nowarn_perm:
++ LKTRLabel(nowarn_perm);
++ break;
++ case Opt_dlgt:
++ LKTRLabel(dlgt);
++ break;
++ case Opt_nodlgt:
++ LKTRLabel(nodlgt);
++ break;
++ case Opt_refrof:
++ LKTRLabel(refrof);
++ break;
++ case Opt_norefrof:
++ LKTRLabel(norefrof);
++ break;
++ case Opt_verbose:
++ LKTRLabel(verbose);
++ break;
++ case Opt_noverbose:
++ LKTRLabel(noverbose);
++ break;
++ case Opt_sum:
++ LKTRLabel(sum);
++ break;
++ case Opt_nosum:
++ LKTRLabel(nosum);
++ break;
++ case Opt_wsum:
++ LKTRLabel(wsum);
++ break;
++ case Opt_coo:
++ LKTRTrace("coo %d, %s\n",
++ opt->coo, au_optstr_coo(opt->coo));
++ break;
++ case Opt_wbr_create:
++ u.create = &opt->wbr_create;
++ LKTRTrace("create %d, %s\n", u.create->wbr_create,
++ au_optstr_wbr_create(u.create->wbr_create));
++ switch (u.create->wbr_create) {
++ case AuWbrCreate_MFSV:
++ case AuWbrCreate_PMFSV:
++ LKTRTrace("%d sec\n", u.create->mfs_second);
++ break;
++ case AuWbrCreate_MFSRR:
++ LKTRTrace("%llu watermark\n",
++ u.create->mfsrr_watermark);
++ break;
++ case AuWbrCreate_MFSRRV:
++ LKTRTrace("%llu watermark, %d sec\n",
++ u.create->mfsrr_watermark,
++ u.create->mfs_second);
++ break;
++ }
++ break;
++ case Opt_wbr_copyup:
++ LKTRTrace("copyup %d, %s\n", opt->wbr_copyup,
++ au_optstr_wbr_copyup(opt->wbr_copyup));
++ break;
++ default:
++ BUG();
++ }
++ opt++;
++ }
++#endif
++}
++
++void au_opts_free(struct au_opts *opts)
++{
++ struct au_opt *opt;
++
++ AuTraceEnter();
++
++ opt = opts->opt;
++ while (opt->type != Opt_tail) {
++ switch (opt->type) {
++ case Opt_add:
++ case Opt_append:
++ case Opt_prepend:
++ path_release(&opt->add.nd);
++ break;
++ case Opt_del:
++ case Opt_idel:
++ dput(opt->del.h_root);
++ break;
++ case Opt_mod:
++ case Opt_imod:
++ dput(opt->mod.h_root);
++ break;
++ case Opt_xino:
++ fput(opt->xino.file);
++ break;
++#if 0 /* reserved for future use */
++ case Opt_xinodir:
++ path_put(&opt->xinodir.path);
++ break;
++#endif
++ }
++ opt++;
++ }
++}
++
++static int opt_add(struct au_opt *opt, char *opt_str, unsigned long sb_flags,
++ struct super_block *sb, aufs_bindex_t bindex)
++{
++ int err;
++ struct au_opt_add *add = &opt->add;
++ char *p;
++
++ LKTRTrace("%s, b%d\n", opt_str, bindex);
++
++ add->bindex = bindex;
++ add->perm = AuBrPerm_Last;
++ add->path = opt_str;
++ p = strchr(opt_str, '=');
++ if (p) {
++ *p++ = 0;
++ if (*p)
++ add->perm = br_perm_val(p);
++ }
++
++ /* LSM may detect it */
++ /* do not superio. */
++ err = vfsub_path_lookup(add->path, lkup_dirflags, &add->nd);
++ if (!err) {
++ if (!p /* && add->perm == AuBrPerm_Last */) {
++ add->perm = AuBrPerm_RO;
++ if (au_test_def_rr(add->nd.dentry->d_sb))
++ add->perm = AuBrPerm_RR;
++ if (!bindex && !(sb_flags & MS_RDONLY))
++ add->perm = AuBrPerm_RW;
++#ifdef CONFIG_AUFS_COMPAT
++ add->perm = AuBrPerm_RW;
++#endif
++ }
++ opt->type = Opt_add;
++ goto out;
++ }
++ AuErr("lookup failed %s (%d)\n", add->path, err);
++ err = -EINVAL;
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/* called without aufs lock */
++int au_opts_parse(struct super_block *sb, char *str, struct au_opts *opts)
++{
++ int err, n, token;
++ struct dentry *root;
++ struct au_opt *opt, *opt_tail;
++ char *opt_str, *p;
++ aufs_bindex_t bindex, bend;
++ unsigned char skipped;
++ union {
++ struct au_opt_del *del;
++ struct au_opt_mod *mod;
++ struct au_opt_xino *xino;
++ struct au_opt_xinodir *xinodir;
++ struct au_opt_xino_itrunc *xino_itrunc;
++ struct au_opt_wbr_create *create;
++ } u;
++ struct file *file;
++ /* reduce the stack space */
++ struct {
++ substring_t args[MAX_OPT_ARGS];
++ struct nameidata nd;
++ } *a;
++
++ LKTRTrace("%s, nopts %d\n", str, opts->max_opt);
++
++ err = -ENOMEM;
++ a = kmalloc(sizeof(*a), GFP_NOFS);
++ if (unlikely(!a))
++ goto out;
++
++ root = sb->s_root;
++ err = 0;
++ bindex = 0;
++ opt = opts->opt;
++ opt_tail = opt + opts->max_opt - 1;
++ opt->type = Opt_tail;
++ while (!err && (opt_str = strsep(&str, ",")) && *opt_str) {
++ err = -EINVAL;
++ token = match_token(opt_str, options, a->args);
++ LKTRTrace("%s, token %d, a->args[0]{%p, %p}\n",
++ opt_str, token, a->args[0].from, a->args[0].to);
++
++ skipped = 0;
++ switch (token) {
++ case Opt_br:
++ err = 0;
++ while (!err && (opt_str = strsep(&a->args[0].from, ":"))
++ && *opt_str) {
++ err = opt_add(opt, opt_str, opts->sb_flags, sb,
++ bindex++);
++ if (unlikely(!err && ++opt > opt_tail)) {
++ err = -E2BIG;
++ break;
++ }
++ opt->type = Opt_tail;
++ skipped = 1;
++ }
++ break;
++ case Opt_add:
++ if (unlikely(match_int(&a->args[0], &n))) {
++ AuErr("bad integer in %s\n", opt_str);
++ break;
++ }
++ bindex = n;
++ err = opt_add(opt, a->args[1].from, opts->sb_flags, sb,
++ bindex);
++ break;
++ case Opt_append:
++ err = opt_add(opt, a->args[0].from, opts->sb_flags, sb,
++ /*dummy bindex*/1);
++ if (!err)
++ opt->type = token;
++ break;
++ case Opt_prepend:
++ err = opt_add(opt, a->args[0].from, opts->sb_flags, sb,
++ /*bindex*/0);
++ if (!err)
++ opt->type = token;
++ break;
++ case Opt_del:
++ u.del = &opt->del;
++ u.del->path = a->args[0].from;
++ LKTRTrace("del path %s\n", u.del->path);
++ /* LSM may detect it */
++ /* do not superio. */
++ err = vfsub_path_lookup(u.del->path, lkup_dirflags,
++ &a->nd);
++ if (unlikely(err)) {
++ AuErr("lookup failed %s (%d)\n",
++ u.del->path, err);
++ break;
++ }
++ u.del->h_root = dget(a->nd.dentry);
++ path_release(&a->nd);
++ opt->type = token;
++ break;
++#if 0 /* reserved for future use */
++ case Opt_idel:
++ u.del = &opt->del;
++ u.del->path = "(indexed)";
++ if (unlikely(match_int(&a->args[0], &n))) {
++ AuErr("bad integer in %s\n", opt_str);
++ break;
++ }
++ bindex = n;
++ aufs_read_lock(root, AuLock_FLUSH);
++ if (bindex < 0 || au_sbend(sb) < bindex) {
++ AuErr("out of bounds, %d\n", bindex);
++ aufs_read_unlock(root, !AuLock_IR);
++ break;
++ }
++ err = 0;
++ u.del->h_root = dget(au_h_dptr(root, bindex));
++ opt->type = token;
++ aufs_read_unlock(root, !AuLock_IR);
++ break;
++#endif
++ case Opt_mod:
++ u.mod = &opt->mod;
++ u.mod->path = a->args[0].from;
++ p = strchr(u.mod->path, '=');
++ if (unlikely(!p)) {
++ AuErr("no permssion %s\n", opt_str);
++ break;
++ }
++ *p++ = 0;
++ u.mod->perm = br_perm_val(p);
++ LKTRTrace("mod path %s, perm 0x%x, %s\n",
++ u.mod->path, u.mod->perm, p);
++ /* LSM may detect it */
++ /* do not superio. */
++ err = vfsub_path_lookup(u.mod->path, lkup_dirflags,
++ &a->nd);
++ if (unlikely(err)) {
++ AuErr("lookup failed %s (%d)\n",
++ u.mod->path, err);
++ break;
++ }
++ u.mod->h_root = dget(a->nd.dentry);
++ path_release(&a->nd);
++ opt->type = token;
++ break;
++#ifdef IMOD /* reserved for future use */
++ case Opt_imod:
++ u.mod = &opt->mod;
++ u.mod->path = "(indexed)";
++ if (unlikely(match_int(&a->args[0], &n))) {
++ AuErr("bad integer in %s\n", opt_str);
++ break;
++ }
++ bindex = n;
++ aufs_read_lock(root, AuLock_FLUSH);
++ if (bindex < 0 || au_sbend(sb) < bindex) {
++ AuErr("out of bounds, %d\n", bindex);
++ aufs_read_unlock(root, !AuLock_IR);
++ break;
++ }
++ u.mod->perm = br_perm_val(a->args[1].from);
++ LKTRTrace("mod path %s, perm 0x%x, %s\n",
++ u.mod->path, u.mod->perm, a->args[1].from);
++ err = 0;
++ u.mod->h_root = dget(au_h_dptr(root, bindex));
++ opt->type = token;
++ aufs_read_unlock(root, !AuLock_IR);
++ break;
++#endif
++ case Opt_xino:
++ u.xino = &opt->xino;
++ file = au_xino_create(sb, a->args[0].from, /*silent*/0);
++ err = PTR_ERR(file);
++ if (IS_ERR(file))
++ break;
++ err = -EINVAL;
++ if (unlikely(file->f_dentry->d_sb == sb)) {
++ fput(file);
++ AuErr("%s must be outside\n", a->args[0].from);
++ break;
++ }
++ err = 0;
++ u.xino->file = file;
++ u.xino->path = a->args[0].from;
++ opt->type = token;
++ break;
++
++#if 0 /* def CONFIG_AUFS_EXPORT */ /* reserved for futur use */
++ case Opt_xinodir:
++ u.xinodir = &opt->xinodir;
++ u.xinodir->name = a->args[0].from;
++ err = vfsub_path_lookup(u.xinodir->name, lkup_dirflags,
++ &a->nd);
++ if (unlikely(err)) {
++ AuErr("lookup failed %s (%d)\n",
++ u.xinodir->name, err);
++ break;
++ }
++ u.xinodir->path = a->nd.path;
++ /* do not path_put() */
++ opt->type = token;
++ break;
++#endif
++
++ case Opt_trunc_xino_path:
++ u.xino_itrunc = &opt->xino_itrunc;
++ p = a->args[0].from;
++ LKTRTrace("trunc_xino path %s\n", p);
++ /* LSM may detect it */
++ /* do not superio. */
++ err = vfsub_path_lookup(p, lkup_dirflags, &a->nd);
++ if (unlikely(err)) {
++ AuErr("lookup failed %s (%d)\n", p , err);
++ break;
++ }
++ u.xino_itrunc->bindex = -1;
++ aufs_read_lock(root, AuLock_FLUSH);
++ bend = au_sbend(sb);
++ for (bindex = 0; bindex <= bend; bindex++) {
++ if (au_h_dptr(root, bindex) == a->nd.dentry) {
++ u.xino_itrunc->bindex = bindex;
++ break;
++ }
++ }
++ aufs_read_unlock(root, !AuLock_IR);
++ path_release(&a->nd);
++ if (unlikely(u.xino_itrunc->bindex < 0)) {
++ AuErr("no such branch %s\n", p);
++ err = -EINVAL;
++ break;
++ }
++ opt->type = token;
++ break;
++
++ case Opt_itrunc_xino:
++ u.xino_itrunc = &opt->xino_itrunc;
++ if (unlikely(match_int(&a->args[0], &n))) {
++ AuErr("bad integer in %s\n", opt_str);
++ break;
++ }
++ u.xino_itrunc->bindex = n;
++ aufs_read_lock(root, AuLock_FLUSH);
++ if (n < 0 || au_sbend(sb) < n) {
++ AuErr("out of bounds, %d\n", n);
++ aufs_read_unlock(root, !AuLock_IR);
++ break;
++ }
++ aufs_read_unlock(root, !AuLock_IR);
++ err = 0;
++ opt->type = token;
++ break;
++
++ case Opt_dirwh:
++ if (unlikely(match_int(&a->args[0], &opt->dirwh)))
++ break;
++ err = 0;
++ opt->type = token;
++ break;
++
++ case Opt_rdcache:
++ if (unlikely(match_int(&a->args[0], &opt->rdcache)))
++ break;
++ err = 0;
++ opt->type = token;
++ break;
++
++ case Opt_shwh:
++ if (opts->sb_flags & MS_RDONLY) {
++ err = 0;
++ opt->type = token;
++ } else
++ AuErr("shwh requires ro\n");
++ break;
++
++ case Opt_trunc_xino:
++ case Opt_notrunc_xino:
++ case Opt_noxino:
++ case Opt_trunc_xib:
++ case Opt_notrunc_xib:
++ case Opt_dirperm1:
++ case Opt_nodirperm1:
++ case Opt_noshwh:
++ case Opt_plink:
++ case Opt_noplink:
++ case Opt_list_plink:
++ case Opt_clean_plink:
++ case Opt_diropq_a:
++ case Opt_diropq_w:
++ case Opt_warn_perm:
++ case Opt_nowarn_perm:
++ case Opt_dlgt:
++ case Opt_nodlgt:
++ case Opt_refrof:
++ case Opt_norefrof:
++ case Opt_verbose:
++ case Opt_noverbose:
++ case Opt_sum:
++ case Opt_nosum:
++ case Opt_wsum:
++ err = 0;
++ opt->type = token;
++ break;
++
++ case Opt_udba:
++ opt->udba = udba_val(a->args[0].from);
++ if (opt->udba >= 0) {
++ err = 0;
++ opt->type = token;
++ } else
++ AuErr("wrong value, %s\n", opt_str);
++ break;
++
++ case Opt_wbr_create:
++ u.create = &opt->wbr_create;
++ u.create->wbr_create
++ = au_wbr_create_val(a->args[0].from, u.create);
++ if (u.create->wbr_create >= 0) {
++ err = 0;
++ opt->type = token;
++ } else
++ AuErr("wrong value, %s\n", opt_str);
++ break;
++ case Opt_wbr_copyup:
++ opt->wbr_copyup = au_wbr_copyup_val(a->args[0].from);
++ if (opt->wbr_copyup >= 0) {
++ err = 0;
++ opt->type = token;
++ } else
++ AuErr("wrong value, %s\n", opt_str);
++ break;
++
++ case Opt_coo:
++ opt->coo = coo_val(a->args[0].from);
++ if (opt->coo >= 0) {
++ if (opt->coo == AuOpt_COO_NONE
++ || !(opts->sb_flags & MS_RDONLY)) {
++ err = 0;
++ opt->type = token;
++ } else
++ AuErr("bad %s for readonly mount\n",
++ opt_str);
++ } else
++ AuErr("wrong value, %s\n", opt_str);
++ break;
++
++ case Opt_ignore:
++#ifndef CONFIG_AUFS_COMPAT
++ AuWarn("ignored %s\n", opt_str);
++#endif
++ case Opt_ignore_silent:
++ skipped = 1;
++ err = 0;
++ break;
++ case Opt_err:
++ AuErr("unknown option %s\n", opt_str);
++ break;
++ }
++
++ if (!err && !skipped) {
++ if (unlikely(++opt > opt_tail)) {
++ err = -E2BIG;
++ opt--;
++ opt->type = Opt_tail;
++ break;
++ }
++ opt->type = Opt_tail;
++ }
++ }
++
++ kfree(a);
++ dump_opts(opts);
++ if (unlikely(err))
++ au_opts_free(opts);
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/*
++ * returns,
++ * plus: processed without an error
++ * zero: unprocessed
++ */
++static int au_opt_simple(struct super_block *sb, struct au_opt *opt,
++ struct au_opts *opts)
++{
++ int err;
++ struct au_sbinfo *sbinfo;
++ struct au_opt_wbr_create *create;
++
++ AuTraceEnter();
++
++ err = 1; /* handled */
++ sbinfo = au_sbi(sb);
++ switch (opt->type) {
++ case Opt_udba:
++ sbinfo->si_mntflags &= ~AuOptMask_UDBA;
++ sbinfo->si_mntflags |= opt->udba;
++ opts->given_udba |= opt->udba;
++ break;
++
++ case Opt_plink:
++ au_opt_set(sbinfo->si_mntflags, PLINK);
++ break;
++ case Opt_noplink:
++ if (au_opt_test(sbinfo->si_mntflags, PLINK))
++ au_plink_put(sb);
++ au_opt_clr(sbinfo->si_mntflags, PLINK);
++ break;
++ case Opt_list_plink:
++ if (au_opt_test(sbinfo->si_mntflags, PLINK))
++ au_plink_list(sb);
++ break;
++ case Opt_clean_plink:
++ if (au_opt_test(sbinfo->si_mntflags, PLINK))
++ au_plink_put(sb);
++ break;
++
++ case Opt_diropq_a:
++ au_opt_set(sbinfo->si_mntflags, ALWAYS_DIROPQ);
++ break;
++ case Opt_diropq_w:
++ au_opt_clr(sbinfo->si_mntflags, ALWAYS_DIROPQ);
++ break;
++
++ case Opt_dlgt:
++ au_opt_set(sbinfo->si_mntflags, DLGT);
++ break;
++ case Opt_nodlgt:
++ au_opt_clr(sbinfo->si_mntflags, DLGT);
++ break;
++
++ case Opt_warn_perm:
++ au_opt_set(sbinfo->si_mntflags, WARN_PERM);
++ break;
++ case Opt_nowarn_perm:
++ au_opt_clr(sbinfo->si_mntflags, WARN_PERM);
++ break;
++
++ case Opt_refrof:
++ au_opt_set(sbinfo->si_mntflags, REFROF);
++ break;
++ case Opt_norefrof:
++ /* au_opt_set(sbinfo->si_mntflags, COO_LEAF); */
++ au_opt_clr(sbinfo->si_mntflags, REFROF);
++ break;
++
++ case Opt_verbose:
++ au_opt_set(sbinfo->si_mntflags, VERBOSE);
++ break;
++ case Opt_noverbose:
++ au_opt_clr(sbinfo->si_mntflags, VERBOSE);
++ break;
++
++ case Opt_sum:
++ au_opt_set(sbinfo->si_mntflags, SUM);
++ break;
++ case Opt_wsum:
++ au_opt_clr(sbinfo->si_mntflags, SUM);
++ au_opt_set(sbinfo->si_mntflags, SUM_W);
++ case Opt_nosum:
++ au_opt_clr(sbinfo->si_mntflags, SUM);
++ au_opt_clr(sbinfo->si_mntflags, SUM_W);
++ break;
++
++ case Opt_wbr_create:
++ create = &opt->wbr_create;
++ if (sbinfo->si_wbr_create_ops->fin) {
++ err = sbinfo->si_wbr_create_ops->fin(sb);
++ if (!err)
++ err = 1;
++ }
++ sbinfo->si_wbr_create = create->wbr_create;
++ sbinfo->si_wbr_create_ops
++ = au_wbr_create_ops + create->wbr_create;
++ switch (create->wbr_create) {
++ case AuWbrCreate_MFSRRV:
++ case AuWbrCreate_MFSRR:
++ sbinfo->si_wbr_mfs.mfsrr_watermark
++ = create->mfsrr_watermark;
++ /*FALLTHROUGH*/
++ case AuWbrCreate_MFS:
++ case AuWbrCreate_MFSV:
++ case AuWbrCreate_PMFS:
++ case AuWbrCreate_PMFSV:
++ sbinfo->si_wbr_mfs.mfs_expire = create->mfs_second * HZ;
++ break;
++ }
++ if (sbinfo->si_wbr_create_ops->init)
++ sbinfo->si_wbr_create_ops->init(sb); /* ignore */
++ break;
++ case Opt_wbr_copyup:
++ sbinfo->si_wbr_copyup = opt->wbr_copyup;
++ sbinfo->si_wbr_copyup_ops = au_wbr_copyup_ops + opt->wbr_copyup;
++ break;
++
++ case Opt_coo:
++ sbinfo->si_mntflags &= ~AuOptMask_COO;
++ sbinfo->si_mntflags |= opt->coo;
++ break;
++
++ case Opt_dirwh:
++ sbinfo->si_dirwh = opt->dirwh;
++ break;
++
++ case Opt_rdcache:
++ sbinfo->si_rdcache = opt->rdcache * HZ;
++ break;
++
++ case Opt_trunc_xino:
++ au_opt_set(sbinfo->si_mntflags, TRUNC_XINO);
++ break;
++ case Opt_notrunc_xino:
++ au_opt_clr(sbinfo->si_mntflags, TRUNC_XINO);
++ break;
++
++ case Opt_dirperm1:
++ au_opt_set(sbinfo->si_mntflags, DIRPERM1);
++ break;
++ case Opt_nodirperm1:
++ au_opt_clr(sbinfo->si_mntflags, DIRPERM1);
++ break;
++
++ case Opt_shwh:
++ au_opt_set(sbinfo->si_mntflags, SHWH);
++ break;
++ case Opt_noshwh:
++ au_opt_clr(sbinfo->si_mntflags, SHWH);
++ break;
++
++ case Opt_trunc_xino_path:
++ case Opt_itrunc_xino:
++ err = au_xino_trunc(sb, opt->xino_itrunc.bindex);
++ if (!err)
++ err = 1;
++ break;
++
++ case Opt_trunc_xib:
++ au_fset_opts(opts->flags, TRUNC_XIB);
++ break;
++ case Opt_notrunc_xib:
++ au_fclr_opts(opts->flags, TRUNC_XIB);
++ break;
++
++ default:
++ err = 0;
++ break;
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++/*
++ * returns tri-state.
++ * plus: processed without an error
++ * zero: unprocessed
++ * minus: error
++ */
++static int au_opt_br(struct super_block *sb, struct au_opt *opt,
++ struct au_opts *opts)
++{
++ int err, do_refresh;
++
++ AuTraceEnter();
++
++ err = 0;
++ switch (opt->type) {
++ case Opt_append:
++ opt->add.bindex = au_sbend(sb) + 1;
++ if (opt->add.bindex < 0)
++ opt->add.bindex = 0;
++ goto add;
++ case Opt_prepend:
++ opt->add.bindex = 0;
++ add:
++ case Opt_add:
++ err = au_br_add(sb, &opt->add,
++ au_ftest_opts(opts->flags, REMOUNT));
++ if (!err) {
++ err = 1;
++ au_fset_opts(opts->flags, REFRESH_DIR);
++ if (au_br_whable(opt->add.perm))
++ au_fset_opts(opts->flags, REFRESH_NONDIR);
++ }
++ break;
++
++ case Opt_del:
++ case Opt_idel:
++ err = au_br_del(sb, &opt->del,
++ au_ftest_opts(opts->flags, REMOUNT));
++ if (!err) {
++ err = 1;
++ au_fset_opts(opts->flags, TRUNC_XIB);
++ au_fset_opts(opts->flags, REFRESH_DIR);
++ au_fset_opts(opts->flags, REFRESH_NONDIR);
++ }
++ break;
++
++ case Opt_mod:
++ case Opt_imod:
++ err = au_br_mod(sb, &opt->mod,
++ au_ftest_opts(opts->flags, REMOUNT),
++ &do_refresh);
++ if (!err) {
++ err = 1;
++ if (do_refresh) {
++ au_fset_opts(opts->flags, REFRESH_DIR);
++ au_fset_opts(opts->flags, REFRESH_NONDIR);
++ }
++ }
++ break;
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++static int au_opt_xino(struct super_block *sb, struct au_opt *opt,
++ struct au_opt_xino **opt_xino,
++ struct au_opt_xinodir **opt_xinodir,
++ struct au_opts *opts)
++{
++ int err;
++ const int remount = !!au_ftest_opts(opts->flags, REMOUNT);
++
++ AuTraceEnter();
++
++ err = 0;
++ switch (opt->type) {
++ case Opt_xino:
++ err = au_xino_set(sb, &opt->xino, remount);
++ if (!err)
++ *opt_xino = &opt->xino;
++ break;
++#if 0 /* def CONFIG_AUFS_EXPORT */ /* reserved for futur use */
++ case Opt_xinodir:
++ err = au_xinodir_set(sb, &opt->xinodir, remount);
++ if (!err)
++ *opt_xinodir = &opt->xinodir;
++ break;
++#endif
++ case Opt_noxino:
++ au_xino_clr(sb);
++ *opt_xino = (void *)-1;
++ break;
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++int verify_opts(struct super_block *sb, unsigned long sb_flags,
++ unsigned int pending, int remount)
++{
++ int err;
++ aufs_bindex_t bindex, bend;
++ unsigned char do_plink, skip, do_free;
++ struct au_branch *br;
++ struct au_wbr *wbr;
++ struct dentry *root;
++ struct inode *dir, *h_dir;
++ unsigned int mnt_flags;
++
++ AuTraceEnter();
++ mnt_flags = au_mntflags(sb);
++ AuDebugOn(!(mnt_flags & AuOptMask_COO));
++ AuDebugOn(!(mnt_flags & AuOptMask_UDBA));
++
++ if (!(sb_flags & MS_RDONLY)) {
++ if (unlikely(!au_br_writable(au_sbr_perm(sb, 0))))
++ AuWarn("first branch should be rw\n");
++ if (unlikely(au_opt_test(mnt_flags, SHWH)))
++ AuWarn("shwh should be used with ro\n");
++ } else if (unlikely(!au_opt_test(mnt_flags, COO_NONE))) {
++ AuWarn("resetting coo for readonly mount\n");
++ au_opt_set_coo(au_sbi(sb)->si_mntflags, COO_NONE);
++ }
++
++ if (unlikely(au_opt_test((mnt_flags | pending), UDBA_INOTIFY)
++ && !au_opt_test_xino(mnt_flags)))
++ AuWarn("udba=inotify requires xino\n");
++
++ err = 0;
++ root = sb->s_root;
++ dir = sb->s_root->d_inode;
++ do_plink = !!au_opt_test(mnt_flags, PLINK);
++ bend = au_sbend(sb);
++ for (bindex = 0; !err && bindex <= bend; bindex++) {
++ skip = 0;
++ h_dir = au_h_iptr(dir, bindex);
++ br = au_sbr(sb, bindex);
++ do_free = 0;
++ wbr = br->br_wbr;
++ if (wbr)
++ wbr_wh_read_lock(wbr);
++ switch (br->br_perm) {
++ case AuBrPerm_RR:
++ case AuBrPerm_RO:
++ case AuBrPerm_RRWH:
++ case AuBrPerm_ROWH:
++ do_free = !!wbr;
++ skip = (!wbr
++ || (!wbr->wbr_whbase
++ && !wbr->wbr_plink
++ && !wbr->wbr_tmp));
++ break;
++
++ case AuBrPerm_RWNoLinkWH:
++ /* skip = (!br->br_whbase && !br->br_tmp); */
++ skip = (!wbr || !wbr->wbr_whbase);
++ if (skip && wbr) {
++ if (do_plink)
++ skip = !!wbr->wbr_plink;
++ else
++ skip = !wbr->wbr_plink;
++ }
++ break;
++
++ case AuBrPerm_RW:
++ /* skip = (br->br_whbase && br->br_tmp); */
++ skip = (wbr && wbr->wbr_whbase);
++ if (skip) {
++ if (do_plink)
++ skip = !!wbr->wbr_plink;
++ else
++ skip = !wbr->wbr_plink;
++ }
++ break;
++
++ default:
++ BUG();
++ }
++ if (wbr)
++ wbr_wh_read_unlock(wbr);
++
++ if (skip)
++ continue;
++
++ vfsub_i_lock_nested(h_dir, AuLsc_I_PARENT);
++ if (wbr)
++ wbr_wh_write_lock(wbr);
++ err = au_wh_init(au_h_dptr(root, bindex), br, br->br_mnt, sb,
++ bindex);
++ if (wbr)
++ wbr_wh_write_unlock(wbr);
++ vfsub_i_unlock(h_dir);
++
++ if (!err && do_free) {
++ kfree(wbr);
++ br->br_wbr = NULL;
++ }
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++int au_opts_mount(struct super_block *sb, struct au_opts *opts)
++{
++ int err;
++ struct inode *dir;
++ struct au_opt *opt;
++ struct au_opt_xino *opt_xino, xino;
++ struct au_opt_xinodir *opt_xinodir;
++ aufs_bindex_t bend;
++ struct au_sbinfo *sbinfo;
++ unsigned int tmp;
++ struct au_branch *br;
++
++ AuTraceEnter();
++ SiMustWriteLock(sb);
++ DiMustWriteLock(sb->s_root);
++ dir = sb->s_root->d_inode;
++ IiMustWriteLock(dir);
++
++ err = 0;
++ opt_xino = NULL;
++ opt_xinodir = NULL;
++ opt = opts->opt;
++ while (err >= 0 && opt->type != Opt_tail)
++ err = au_opt_simple(sb, opt++, opts);
++ if (err > 0)
++ err = 0;
++ else if (unlikely(err < 0))
++ goto out;
++
++ /* disable xino, xinodir, hinotify, dlgt temporary */
++ sbinfo = au_sbi(sb);
++ tmp = sbinfo->si_mntflags;
++ au_opt_clr(sbinfo->si_mntflags, XINO);
++ au_opt_clr(sbinfo->si_mntflags, XINODIR);
++ au_opt_clr(sbinfo->si_mntflags, DLGT);
++ au_opt_set_udba(sbinfo->si_mntflags, UDBA_REVAL);
++
++ opt = opts->opt;
++ while (err >= 0 && opt->type != Opt_tail)
++ err = au_opt_br(sb, opt++, opts);
++ if (err > 0)
++ err = 0;
++ else if (unlikely(err < 0))
++ goto out;
++
++ bend = au_sbend(sb);
++ if (unlikely(bend < 0)) {
++ err = -EINVAL;
++ AuErr("no branches\n");
++ goto out;
++ }
++
++ if (au_opt_test(tmp, XINO))
++ au_opt_set(sbinfo->si_mntflags, XINO);
++ else if (au_opt_test(tmp, XINODIR))
++ au_opt_set(sbinfo->si_mntflags, XINODIR);
++ opt = opts->opt;
++ while (!err && opt->type != Opt_tail)
++ err = au_opt_xino(sb, opt++, &opt_xino, &opt_xinodir, opts);
++ if (unlikely(err))
++ goto out;
++
++ /* todo: test this error case? */
++ err = verify_opts(sb, sb->s_flags, tmp, /*remount*/0);
++ if (unlikely(err))
++ goto out;
++
++ /* enable xino */
++ if (au_opt_test(tmp, XINO) && !opt_xino) {
++ xino.file = au_xino_def(sb);
++ err = PTR_ERR(xino.file);
++ if (IS_ERR(xino.file))
++ goto out;
++
++ br = au_xino_def_br(sbinfo);
++ err = au_xino_set(sb, &xino, /*remount*/0);
++ fput(xino.file);
++ if (unlikely(err))
++ goto out;
++ au_xino_def_br_set(br, sbinfo);
++ }
++
++ /* restore hinotify */
++ sbinfo->si_mntflags &= ~AuOptMask_UDBA;
++ sbinfo->si_mntflags |= (tmp & AuOptMask_UDBA);
++ if (au_opt_test(tmp, UDBA_INOTIFY))
++ au_reset_hinotify(dir, au_hi_flags(dir, 1) & ~AuHi_XINO);
++
++ /* restore dlgt */
++ if (au_opt_test(tmp, DLGT))
++ au_opt_set(sbinfo->si_mntflags, DLGT);
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++int au_opts_remount(struct super_block *sb, struct au_opts *opts)
++{
++ int err, rerr;
++ struct inode *dir;
++ struct au_opt_xino *opt_xino;
++ struct au_opt_xinodir *opt_xinodir;
++ struct au_opt *opt;
++ unsigned char dlgt;
++ struct au_sbinfo *sbinfo;
++
++ AuTraceEnter();
++ SiMustWriteLock(sb);
++ DiMustWriteLock(sb->s_root);
++ dir = sb->s_root->d_inode;
++ IiMustWriteLock(dir);
++ sbinfo = au_sbi(sb);
++
++ err = 0;
++ dlgt = !!au_opt_test(sbinfo->si_mntflags, DLGT);
++ opt_xino = NULL;
++ opt_xinodir = NULL;
++ opt = opts->opt;
++ while (err >= 0 && opt->type != Opt_tail) {
++ err = au_opt_simple(sb, opt, opts);
++
++ /* disable it temporary */
++ dlgt = !!au_opt_test(sbinfo->si_mntflags, DLGT);
++ au_opt_clr(sbinfo->si_mntflags, DLGT);
++
++ if (!err)
++ err = au_opt_br(sb, opt, opts);
++ if (!err)
++ err = au_opt_xino(sb, opt, &opt_xino, &opt_xinodir,
++ opts);
++
++ /* restore it */
++ if (dlgt)
++ au_opt_set(sbinfo->si_mntflags, DLGT);
++ opt++;
++ }
++ if (err > 0)
++ err = 0;
++ AuTraceErr(err);
++
++ /* go on even err */
++
++ /* todo: test this error case? */
++ au_opt_clr(sbinfo->si_mntflags, DLGT);
++ rerr = verify_opts(sb, opts->sb_flags, sbinfo->si_mntflags,
++ /*remount*/1);
++ if (unlikely(dlgt))
++ au_opt_set(sbinfo->si_mntflags, DLGT);
++ if (unlikely(rerr && !err))
++ err = rerr;
++
++ if (au_ftest_opts(opts->flags, TRUNC_XIB)) {
++ rerr = au_xib_trunc(sb);
++ if (unlikely(rerr && !err))
++ err = rerr;
++ }
++
++ /* they are handled by the caller */
++ if (!au_ftest_opts(opts->flags, REFRESH_DIR)
++ && (opts->given_udba || au_opt_test_xino(sbinfo->si_mntflags)))
++ au_fset_opts(opts->flags, REFRESH_DIR);
++
++ LKTRTrace("status 0x%x\n", opts->flags);
++ AuTraceErr(err);
++ return err;
++}
+diff --git a/fs/aufs/opts.h b/fs/aufs/opts.h
+new file mode 100644
+index 0000000..5a6d6ac
+--- /dev/null
++++ b/fs/aufs/opts.h
+@@ -0,0 +1,269 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * mount options/flags
++ *
++ * $Id: opts.h,v 1.37 2009/01/26 06:24:05 sfjro Exp $
++ */
++
++#ifndef __AUFS_OPTS_H__
++#define __AUFS_OPTS_H__
++
++#ifdef __KERNEL__
++
++#include <linux/fs.h>
++#include <linux/namei.h>
++#include <linux/version.h>
++#include <linux/aufs_type.h>
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22)
++typedef const char *au_parser_pattern_t;
++#else
++typedef char *au_parser_pattern_t;
++#endif
++
++/* ---------------------------------------------------------------------- */
++/* mount flags */
++
++/* external inode number bitmap and translation table */
++#define AuOpt_XINO 1
++#define AuOpt_XINODIR (1 << 1)
++#define AuOpt_TRUNC_XINO (1 << 2)
++#define AuOpt_UDBA_NONE (1 << 3) /* users direct branch access */
++#define AuOpt_UDBA_REVAL (1 << 4)
++#define AuOpt_UDBA_INOTIFY (1 << 5)
++#define AuOpt_SHWH (1 << 6)
++#define AuOpt_PLINK (1 << 7)
++#define AuOpt_WARN_PERM (1 << 8)
++#define AuOpt_DIRPERM1 (1 << 9)
++#define AuOpt_DLGT (1 << 10)
++#define AuOpt_COO_NONE (1 << 11) /* copyup on open */
++#define AuOpt_COO_LEAF (1 << 12)
++#define AuOpt_COO_ALL (1 << 13)
++#define AuOpt_ALWAYS_DIROPQ (1 << 14)
++#define AuOpt_REFROF (1 << 15)
++#define AuOpt_VERBOSE (1 << 16)
++#define AuOpt_SUM (1 << 17)
++#define AuOpt_SUM_W (1 << 18) /* unimplemented */
++
++#if 1 /* ndef CONFIG_AUFS_EXPORT */ /* reserved for future use */
++#undef AuOpt_XINODIR
++#define AuOpt_XINODIR 0
++#endif
++#ifndef CONFIG_AUFS_HINOTIFY
++#undef AuOpt_UDBA_INOTIFY
++#define AuOpt_UDBA_INOTIFY 0
++#endif
++#ifndef CONFIG_AUFS_SHWH
++#undef AuOpt_SHWH
++#define AuOpt_SHWH 0
++#endif
++#ifndef CONFIG_AUFS_DLGT
++#undef AuOpt_DIRPERM1
++#define AuOpt_DIRPERM1 0
++#undef AuOpt_DLGT
++#define AuOpt_DLGT 0
++#endif
++
++/* policies to select one among multiple writable branches */
++enum {
++ AuWbrCreate_TDP, /* top down parent */
++ AuWbrCreate_RR, /* round robin */
++ AuWbrCreate_MFS, /* most free space */
++ AuWbrCreate_MFSV, /* mfs with seconds */
++ AuWbrCreate_MFSRR, /* mfs then rr */
++ AuWbrCreate_MFSRRV, /* mfs then rr with seconds */
++ AuWbrCreate_PMFS, /* parent and mfs */
++ AuWbrCreate_PMFSV, /* parent and mfs with seconds */
++
++ AuWbrCreate_Def = AuWbrCreate_TDP
++};
++
++enum {
++ AuWbrCopyup_TDP, /* top down parent */
++ AuWbrCopyup_BUP, /* bottom up parent */
++ AuWbrCopyup_BU, /* bottom up */
++
++ AuWbrCopyup_Def = AuWbrCopyup_TDP
++};
++
++#define AuOptMask_COO (AuOpt_COO_NONE \
++ | AuOpt_COO_LEAF \
++ | AuOpt_COO_ALL)
++#define AuOptMask_UDBA (AuOpt_UDBA_NONE \
++ | AuOpt_UDBA_REVAL \
++ | AuOpt_UDBA_INOTIFY)
++
++#ifdef CONFIG_AUFS_COMPAT
++#define AuOpt_DefExtra1 AuOpt_ALWAYS_DIROPQ
++#else
++#define AuOpt_DefExtra1 0
++#endif
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 16)
++#define AuOpt_DefExtra2 AuOpt_PLINK
++#else
++#define AuOpt_DefExtra2 0
++#endif
++
++#define AuOpt_Def (AuOpt_XINO \
++ | AuOpt_UDBA_REVAL \
++ | AuOpt_WARN_PERM \
++ | AuOpt_COO_NONE \
++ | AuOpt_DefExtra1 \
++ | AuOpt_DefExtra2)
++
++/* ---------------------------------------------------------------------- */
++
++struct au_opt_add {
++ aufs_bindex_t bindex;
++ char *path;
++ int perm;
++ struct nameidata nd;
++};
++
++struct au_opt_del {
++ char *path;
++ struct dentry *h_root;
++};
++
++struct au_opt_mod {
++ char *path;
++ int perm;
++ struct dentry *h_root;
++};
++
++struct au_opt_xino {
++ char *path;
++ struct file *file;
++};
++
++struct au_opt_xinodir {
++#if 0 /* reserved for future use */
++ char *name;
++ struct path path;
++#endif
++};
++
++struct au_opt_xino_itrunc {
++ aufs_bindex_t bindex;
++};
++
++struct au_opt_xino_trunc_v {
++ unsigned long long upper;
++ int step;
++};
++
++struct au_opt_wbr_create {
++ int wbr_create;
++ int mfs_second;
++ unsigned long long mfsrr_watermark;
++};
++
++struct au_opt {
++ int type;
++ union {
++ struct au_opt_xino xino;
++ struct au_opt_xinodir xinodir;
++ struct au_opt_xino_itrunc xino_itrunc;
++ struct au_opt_add add;
++ struct au_opt_del del;
++ struct au_opt_mod mod;
++ int dirwh;
++ int rdcache;
++ int deblk;
++ int nhash;
++ int udba;
++ int coo;
++ struct au_opt_wbr_create wbr_create;
++ int wbr_copyup;
++ };
++};
++
++/* opts flags */
++#define AuOpts_REMOUNT 1
++#define AuOpts_REFRESH_DIR (1 << 1)
++#define AuOpts_REFRESH_NONDIR (1 << 2)
++#define AuOpts_TRUNC_XIB (1 << 3)
++#define au_ftest_opts(flags, name) ((flags) & AuOpts_##name)
++#define au_fset_opts(flags, name) { (flags) |= AuOpts_##name; }
++#define au_fclr_opts(flags, name) { (flags) &= ~AuOpts_##name; }
++
++struct au_opts {
++ struct au_opt *opt;
++ int max_opt;
++
++ unsigned int given_udba;
++ unsigned int flags;
++ unsigned long sb_flags;
++};
++
++/* ---------------------------------------------------------------------- */
++
++au_parser_pattern_t au_optstr_br_perm(int brperm);
++au_parser_pattern_t au_optstr_udba(int udba);
++au_parser_pattern_t au_optstr_coo(int coo);
++au_parser_pattern_t au_optstr_wbr_copyup(int wbr_copyup);
++au_parser_pattern_t au_optstr_wbr_create(int wbr_create);
++
++void au_opts_free(struct au_opts *opts);
++int au_opts_parse(struct super_block *sb, char *str, struct au_opts *opts);
++int verify_opts(struct super_block *sb, unsigned long sb_flags,
++ unsigned int pending, int remount);
++int au_opts_mount(struct super_block *sb, struct au_opts *opts);
++int au_opts_remount(struct super_block *sb, struct au_opts *opts);
++
++/* ---------------------------------------------------------------------- */
++
++#define au_opt_test(flags, name) (flags & AuOpt_##name)
++
++static inline int au_opt_test_xino(unsigned int flags)
++{
++ return flags & (AuOpt_XINO | AuOpt_XINODIR);
++}
++
++#define au_opt_set(flags, name) do { \
++ BUILD_BUG_ON(AuOpt_##name & (AuOptMask_COO | AuOptMask_UDBA)); \
++ ((flags) |= AuOpt_##name); \
++} while (0)
++
++#define au_opt_set_coo(flags, name) do { \
++ (flags) &= ~AuOptMask_COO; \
++ ((flags) |= AuOpt_##name); \
++} while (0)
++
++#define au_opt_set_udba(flags, name) do { \
++ (flags) &= ~AuOptMask_UDBA; \
++ ((flags) |= AuOpt_##name); \
++} while (0)
++
++#define au_opt_clr(flags, name) { ((flags) &= ~AuOpt_##name); }
++
++static inline int au_test_dlgt(unsigned int flags)
++{
++ return au_opt_test(flags, DLGT) && !au_test_wkq(current);
++}
++
++static inline int au_test_dirperm1(unsigned int flags)
++{
++ return au_opt_test(flags, DIRPERM1) && !au_test_wkq(current);
++}
++
++#endif /* __KERNEL__ */
++#endif /* __AUFS_OPTS_H__ */
+diff --git a/fs/aufs/plink.c b/fs/aufs/plink.c
+new file mode 100644
+index 0000000..ef19ad0
+--- /dev/null
++++ b/fs/aufs/plink.c
+@@ -0,0 +1,364 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * pseudo-link
++ *
++ * $Id: plink.c,v 1.28 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++struct pseudo_link {
++ struct list_head list;
++ struct inode *inode;
++};
++
++#ifdef CONFIG_AUFS_DEBUG
++void au_plink_list(struct super_block *sb)
++{
++ struct au_sbinfo *sbinfo;
++ struct list_head *plink_list;
++ struct pseudo_link *plink;
++
++ AuTraceEnter();
++ SiMustAnyLock(sb);
++ sbinfo = au_sbi(sb);
++ AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK));
++
++ plink_list = &sbinfo->si_plink.head;
++ spin_lock(&sbinfo->si_plink.spin);
++ list_for_each_entry(plink, plink_list, list)
++ AuDbg("%lu\n", plink->inode->i_ino);
++ spin_unlock(&sbinfo->si_plink.spin);
++}
++#endif
++
++int au_plink_test(struct super_block *sb, struct inode *inode)
++{
++ int found;
++ struct au_sbinfo *sbinfo;
++ struct list_head *plink_list;
++ struct pseudo_link *plink;
++
++ LKTRTrace("i%lu\n", inode->i_ino);
++ SiMustAnyLock(sb);
++ sbinfo = au_sbi(sb);
++ AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK));
++
++ found = 0;
++ plink_list = &sbinfo->si_plink.head;
++ spin_lock(&sbinfo->si_plink.spin);
++ list_for_each_entry(plink, plink_list, list)
++ if (plink->inode == inode) {
++ found = 1;
++ break;
++ }
++ spin_unlock(&sbinfo->si_plink.spin);
++ return found;
++}
++
++/* 20 is max digits length of ulong 64 */
++#define PLINK_NAME_LEN ((20 + 1) * 2)
++
++static int plink_name(char *name, int len, struct inode *inode,
++ aufs_bindex_t bindex)
++{
++ int rlen;
++ struct inode *h_inode;
++
++ LKTRTrace("i%lu, b%d\n", inode->i_ino, bindex);
++ AuDebugOn(len != PLINK_NAME_LEN);
++ h_inode = au_h_iptr(inode, bindex);
++ AuDebugOn(!h_inode);
++ rlen = snprintf(name, len, "%lu.%lu", inode->i_ino, h_inode->i_ino);
++ AuDebugOn(rlen >= len);
++ return rlen;
++}
++
++struct dentry *au_plink_lkup(struct super_block *sb, aufs_bindex_t bindex,
++ struct inode *inode)
++{
++ struct dentry *h_dentry, *h_parent;
++ struct au_branch *br;
++ struct au_wbr *wbr;
++ struct inode *h_dir;
++ char tgtname[PLINK_NAME_LEN];
++ int len;
++ struct au_ndx ndx = {
++ .flags = 0,
++ .nd = NULL,
++ /* .br = NULL */
++ };
++
++ LKTRTrace("b%d, i%lu\n", bindex, inode->i_ino);
++ br = au_sbr(sb, bindex);
++ wbr = br->br_wbr;
++ AuDebugOn(!wbr);
++ h_parent = wbr->wbr_plink;
++ AuDebugOn(!h_parent);
++ h_dir = h_parent->d_inode;
++ AuDebugOn(!h_dir);
++
++ len = plink_name(tgtname, sizeof(tgtname), inode, bindex);
++
++ /* always superio. */
++ ndx.nfsmnt = au_do_nfsmnt(br->br_mnt);
++ vfsub_i_lock_nested(h_dir, AuLsc_I_CHILD2);
++ h_dentry = au_sio_lkup_one(tgtname, h_parent, len, &ndx);
++ vfsub_i_unlock(h_dir);
++ return h_dentry;
++}
++
++static int do_whplink(char *tgt, int len, struct dentry *h_parent,
++ struct dentry *h_dentry, struct vfsmount *nfsmnt,
++ struct super_block *sb)
++{
++ int err, dlgt;
++ struct dentry *h_tgt;
++ struct inode *h_dir;
++ struct vfsub_args vargs;
++ struct au_ndx ndx = {
++ .nfsmnt = nfsmnt,
++ .flags = 0,
++ .nd = NULL,
++ /* .br = NULL */
++ };
++
++ AuTraceEnter();
++
++ dlgt = !!au_test_dlgt(au_mntflags(sb));
++ if (dlgt)
++ au_fset_ndx(ndx.flags, DLGT);
++ h_tgt = au_lkup_one(tgt, h_parent, len, &ndx);
++ err = PTR_ERR(h_tgt);
++ if (IS_ERR(h_tgt))
++ goto out;
++
++ err = 0;
++ vfsub_args_init(&vargs, NULL, dlgt, 0);
++ /* wh.plink dir is not monitored */
++ h_dir = h_parent->d_inode;
++ if (h_tgt->d_inode && h_tgt->d_inode != h_dentry->d_inode)
++ err = vfsub_unlink(h_dir, h_tgt, &vargs);
++ if (!err && !h_tgt->d_inode) {
++ err = vfsub_link(h_dentry, h_dir, h_tgt, &vargs);
++ /* todo: unnecessary? */
++ /* inc_nlink(inode); */
++ }
++ dput(h_tgt);
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++struct do_whplink_args {
++ int *errp;
++ char *tgt;
++ int len;
++ struct dentry *h_parent;
++ struct dentry *h_dentry;
++ struct vfsmount *nfsmnt;
++ struct super_block *sb;
++};
++
++static void call_do_whplink(void *args)
++{
++ struct do_whplink_args *a = args;
++ *a->errp = do_whplink(a->tgt, a->len, a->h_parent, a->h_dentry,
++ a->nfsmnt, a->sb);
++}
++
++static int whplink(struct dentry *h_dentry, struct inode *inode,
++ aufs_bindex_t bindex, struct super_block *sb)
++{
++ int err, len, wkq_err;
++ struct au_branch *br;
++ struct au_wbr *wbr;
++ struct dentry *h_parent;
++ struct inode *h_dir;
++ char tgtname[PLINK_NAME_LEN];
++
++ LKTRTrace("%.*s\n", AuDLNPair(h_dentry));
++ br = au_sbr(inode->i_sb, bindex);
++ wbr = br->br_wbr;
++ AuDebugOn(!wbr);
++ h_parent = wbr->wbr_plink;
++ AuDebugOn(!h_parent);
++ h_dir = h_parent->d_inode;
++ AuDebugOn(!h_dir);
++
++ len = plink_name(tgtname, sizeof(tgtname), inode, bindex);
++
++ /* always superio. */
++ vfsub_i_lock_nested(h_dir, AuLsc_I_CHILD2);
++ if (!au_test_wkq(current)) {
++ struct do_whplink_args args = {
++ .errp = &err,
++ .tgt = tgtname,
++ .len = len,
++ .h_parent = h_parent,
++ .h_dentry = h_dentry,
++ .nfsmnt = au_do_nfsmnt(br->br_mnt),
++ .sb = sb
++ };
++ wkq_err = au_wkq_wait(call_do_whplink, &args, /*dlgt*/0);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ } else
++ err = do_whplink(tgtname, len, h_parent, h_dentry,
++ au_do_nfsmnt(br->br_mnt), sb);
++ vfsub_i_unlock(h_dir);
++
++ AuTraceErr(err);
++ return err;
++}
++
++static void do_put_plink(struct pseudo_link *plink, int do_del)
++{
++ AuTraceEnter();
++
++ iput(plink->inode);
++ if (do_del)
++ list_del(&plink->list);
++ kfree(plink);
++}
++
++void au_plink_append(struct super_block *sb, struct inode *inode,
++ struct dentry *h_dentry, aufs_bindex_t bindex)
++{
++ struct au_sbinfo *sbinfo;
++ struct list_head *plink_list;
++ struct pseudo_link *plink;
++ int found, err, cnt;
++
++ LKTRTrace("i%lu\n", inode->i_ino);
++ SiMustAnyLock(sb);
++ sbinfo = au_sbi(sb);
++ AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK));
++
++ cnt = 0;
++ found = 0;
++ plink_list = &sbinfo->si_plink.head;
++ spin_lock(&sbinfo->si_plink.spin);
++ list_for_each_entry(plink, plink_list, list) {
++ cnt++;
++ if (plink->inode == inode) {
++ found = 1;
++ break;
++ }
++ }
++
++ err = 0;
++ plink = NULL;
++ if (!found) {
++ plink = kmalloc(sizeof(*plink), GFP_ATOMIC);
++ if (plink) {
++ plink->inode = au_igrab(inode);
++ list_add(&plink->list, plink_list);
++ cnt++;
++ } else
++ err = -ENOMEM;
++ }
++ spin_unlock(&sbinfo->si_plink.spin);
++
++#if 0 /* todo: test here */
++ if (found)
++ return; /* success */
++#endif
++
++ if (!err)
++ err = whplink(h_dentry, inode, bindex, sb);
++
++ if (unlikely(cnt > AUFS_PLINK_WARN))
++ AuWarn1("unexpectedly many pseudo links, %d\n", cnt);
++ if (unlikely(err)) {
++ AuWarn("err %d, damaged pseudo link. ignored.\n", err);
++ if (!found && plink)
++ do_put_plink(plink, /*do_del*/1);
++ }
++}
++
++void au_plink_put(struct super_block *sb)
++{
++ struct au_sbinfo *sbinfo;
++ struct list_head *plink_list;
++ struct pseudo_link *plink, *tmp;
++
++ AuTraceEnter();
++ SiMustWriteLock(sb);
++ sbinfo = au_sbi(sb);
++ AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK));
++
++ plink_list = &sbinfo->si_plink.head;
++ /* spin_lock(&sbinfo->si_plink.spin); */
++ list_for_each_entry_safe(plink, tmp, plink_list, list)
++ do_put_plink(plink, 0);
++ INIT_LIST_HEAD(plink_list);
++ /* spin_unlock(&sbinfo->si_plink.head); */
++}
++
++void au_plink_half_refresh(struct super_block *sb, aufs_bindex_t br_id)
++{
++ struct au_sbinfo *sbinfo;
++ struct list_head *plink_list;
++ struct pseudo_link *plink, *tmp;
++ struct inode *inode;
++ aufs_bindex_t bstart, bend, bindex;
++ int do_put;
++
++ AuTraceEnter();
++ SiMustWriteLock(sb);
++ sbinfo = au_sbi(sb);
++ AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK));
++
++ plink_list = &sbinfo->si_plink.head;
++ /* spin_lock(&sbinfo->si_plink.spin); */
++ list_for_each_entry_safe(plink, tmp, plink_list, list) {
++ do_put = 0;
++ inode = au_igrab(plink->inode);
++ ii_write_lock_child(inode);
++ bstart = au_ibstart(inode);
++ bend = au_ibend(inode);
++ if (bstart >= 0) {
++ for (bindex = bstart; bindex <= bend; bindex++) {
++ if (!au_h_iptr(inode, bindex)
++ || au_ii_br_id(inode, bindex) != br_id)
++ continue;
++ au_set_h_iptr(inode, bindex, NULL, 0);
++ do_put = 1;
++ break;
++ }
++ } else
++ do_put_plink(plink, 1);
++
++ if (do_put) {
++ for (bindex = bstart; bindex <= bend; bindex++)
++ if (au_h_iptr(inode, bindex)) {
++ do_put = 0;
++ break;
++ }
++ if (do_put)
++ do_put_plink(plink, 1);
++ }
++ ii_write_unlock(inode);
++ iput(inode);
++ }
++ /* spin_unlock(&sbinfo->si_plink.spin); */
++}
+diff --git a/fs/aufs/robr.c b/fs/aufs/robr.c
+new file mode 100644
+index 0000000..4e05d03
+--- /dev/null
++++ b/fs/aufs/robr.c
+@@ -0,0 +1,117 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * 'robr', aufs as readonly branch of another aufs
++ *
++ * $Id: robr.c,v 1.9 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++/* ---------------------------------------------------------------------- */
++
++int au_test_robr_wh(struct qstr *name, struct dentry *h_parent,
++ struct qstr *wh_name, int try_sio, struct au_ndx *ndx)
++{
++ if (strncmp(name->name, AUFS_WH_PFX, AUFS_WH_PFX_LEN))
++ return au_wh_test(h_parent, wh_name, try_sio, ndx);
++ return -EPERM;
++}
++
++int au_test_robr_shwh(struct super_block *sb, const struct qstr *name)
++{
++ return 0;
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct au_robr_lvma {
++ struct list_head list;
++ struct vm_area_struct *vma;
++};
++
++struct file *au_robr_safe_file(struct vm_area_struct *vma)
++{
++ struct file *file = vma->vm_file;
++ struct super_block *sb = file->f_dentry->d_sb;
++ struct au_robr_lvma *lvma, *entry;
++ struct au_sbinfo *sbinfo;
++ struct list_head *head;
++ unsigned char found, warn;
++
++ AuTraceEnter();
++
++ if (!file->private_data || !au_test_aufs(sb))
++ return NULL;
++
++ warn = 0;
++ found = 0;
++ sbinfo = au_sbi(sb);
++ head = &sbinfo->si_lvma.head;
++ spin_lock(&sbinfo->si_lvma.spin);
++ list_for_each_entry(entry, head, list) {
++ found = (entry->vma == vma);
++ if (unlikely(found))
++ break;
++ }
++ if (!found) {
++ lvma = kmalloc(sizeof(*lvma), GFP_ATOMIC);
++ if (lvma) {
++ lvma->vma = vma;
++ list_add(&lvma->list, head);
++ } else {
++ warn = 1;
++ file = NULL;
++ }
++ } else
++ file = NULL;
++ spin_unlock(&sbinfo->si_lvma.spin);
++
++ if (unlikely(warn))
++ AuWarn1("no memory for lvma\n");
++ return file;
++}
++
++void au_robr_reset_file(struct vm_area_struct *vma, struct file *file)
++{
++ struct super_block *sb = file->f_dentry->d_sb;
++ struct au_robr_lvma *entry, *found;
++ struct au_sbinfo *sbinfo;
++ struct list_head *head;
++
++ AuTraceEnter();
++ AuDebugOn(!au_test_aufs(sb));
++
++ vma->vm_file = file;
++ /* smp_mb(); */ /* flush vm_file */
++
++ found = NULL;
++ sbinfo = au_sbi(sb);
++ head = &sbinfo->si_lvma.head;
++ spin_lock(&sbinfo->si_lvma.spin);
++ list_for_each_entry(entry, head, list)
++ if (entry->vma == vma) {
++ found = entry;
++ break;
++ }
++ AuDebugOn(!found);
++ list_del(&found->list);
++ spin_unlock(&sbinfo->si_lvma.spin);
++ kfree(found);
++}
+diff --git a/fs/aufs/sbinfo.c b/fs/aufs/sbinfo.c
+new file mode 100644
+index 0000000..26c67bc
+--- /dev/null
++++ b/fs/aufs/sbinfo.c
+@@ -0,0 +1,223 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * superblock private data
++ *
++ * $Id: sbinfo.c,v 1.54 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++void au_si_free(struct super_block *sb, int err)
++{
++ struct au_sbinfo *sbinfo;
++
++ AuTraceEnter();
++ sbinfo = au_sbi(sb);
++ AuDebugOn(!sbinfo);
++ AuDebugOn(!list_empty(&sbinfo->si_plink.head));
++
++ if (!err) {
++ au_sbilist_lock();
++ au_sbilist_del(sbinfo);
++ si_write_lock(sb);
++ sysaufs_sbi_del(sb);
++ au_sbilist_unlock();
++ } else
++ si_write_lock(sb);
++
++ au_xino_clr(sb);
++ au_br_free(sbinfo);
++ kfree(sbinfo->si_branch);
++ au_export_put(sbinfo);
++ mutex_destroy(&sbinfo->si_xib_mtx);
++ si_write_unlock(sb);
++ au_rwsem_destroy(&sbinfo->si_rwsem);
++ sysaufs_sbi_put(sb);
++ kfree(sbinfo);
++}
++
++int au_si_alloc(struct super_block *sb)
++{
++ int err;
++ struct au_sbinfo *sbinfo;
++
++ AuTraceEnter();
++
++ err = -ENOMEM;
++ sbinfo = kmalloc(sizeof(*sbinfo), GFP_NOFS);
++ //if (LktrCond) {kfree(sbinfo); sbinfo = NULL;}
++ if (unlikely(!sbinfo))
++ goto out;
++ sbinfo->si_branch = kzalloc(sizeof(*sbinfo->si_branch), GFP_NOFS);
++ //if (LktrCond) {kfree(sbinfo->si_branch); sbinfo->si_branch = NULL;}
++ if (unlikely(!sbinfo->si_branch))
++ goto out_sbinfo;
++ err = sysaufs_si_init(sbinfo);
++ if (unlikely(err))
++ goto out_br;
++
++ au_rw_init_wlock(&sbinfo->si_rwsem);
++ //au_dbg_locked_si_reg(sb, 1);
++ sbinfo->si_generation = 0;
++ //sbinfo->si_generation = INT_MAX - 2;
++ sbinfo->au_si_status = 0;
++ sbinfo->si_bend = -1;
++ sbinfo->si_last_br_id = 0;
++
++ sbinfo->si_wbr_copyup = AuWbrCopyup_Def;
++ sbinfo->si_wbr_create = AuWbrCreate_Def;
++ sbinfo->si_wbr_copyup_ops = au_wbr_copyup_ops + AuWbrCopyup_Def;
++ sbinfo->si_wbr_create_ops = au_wbr_create_ops + AuWbrCreate_Def;
++
++ sbinfo->si_mntflags = AuOpt_Def;
++
++ sbinfo->si_xread = NULL;
++ sbinfo->si_xwrite = NULL;
++ sbinfo->si_xib = NULL;
++ mutex_init(&sbinfo->si_xib_mtx);
++ sbinfo->si_xib_buf = NULL;
++ au_xino_def_br_set(NULL, sbinfo);
++ /* leave si_xib_last_pindex and si_xib_next_bit */
++
++ au_nwt_init(&sbinfo->si_nowait);
++
++ sbinfo->si_rdcache = AUFS_RDCACHE_DEF * HZ;
++ sbinfo->si_dirwh = AUFS_DIRWH_DEF;
++
++ au_spl_init(&sbinfo->si_plink);
++
++ /* leave other members for sysaufs, si_list and si_mnt. */
++
++ au_robr_lvma_init(sbinfo);
++ sb->s_fs_info = sbinfo;
++ //sysaufs_sbi_get(sb);
++
++ au_debug_sbinfo_init(sbinfo);
++ return 0; /* success */
++
++ out_br:
++ kfree(sbinfo->si_branch);
++ out_sbinfo:
++ kfree(sbinfo);
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct au_branch *au_sbr(struct super_block *sb, aufs_bindex_t bindex)
++{
++ struct au_branch *br;
++
++ SiMustAnyLock(sb);
++ AuDebugOn(bindex < 0 || au_sbend(sb) < bindex);
++ br = au_sbi(sb)->si_branch[0 + bindex];
++ AuDebugOn(!br);
++ return br;
++}
++
++au_gen_t au_sigen_inc(struct super_block *sb)
++{
++ au_gen_t gen;
++
++ SiMustWriteLock(sb);
++ gen = ++au_sbi(sb)->si_generation;
++ au_update_digen(sb->s_root);
++ au_update_iigen(sb->s_root->d_inode);
++ sb->s_root->d_inode->i_version++;
++ return gen;
++}
++
++int au_find_bindex(struct super_block *sb, struct au_branch *br)
++{
++ aufs_bindex_t bindex, bend;
++
++ bend = au_sbend(sb);
++ for (bindex = 0; bindex <= bend; bindex++)
++ if (au_sbr(sb, bindex) == br)
++ return bindex;
++ return -1;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/* dentry and super_block lock. call at entry point */
++void aufs_read_lock(struct dentry *dentry, int flags)
++{
++ si_read_lock(dentry->d_sb, flags);
++ if (au_ftest_lock(flags, DW))
++ di_write_lock_child(dentry);
++ else
++ di_read_lock_child(dentry, flags);
++}
++
++void aufs_read_unlock(struct dentry *dentry, int flags)
++{
++ if (au_ftest_lock(flags, DW))
++ di_write_unlock(dentry);
++ else
++ di_read_unlock(dentry, flags);
++ si_read_unlock(dentry->d_sb);
++}
++
++void aufs_write_lock(struct dentry *dentry)
++{
++ si_write_lock(dentry->d_sb);
++ di_write_lock_child(dentry);
++}
++
++void aufs_write_unlock(struct dentry *dentry)
++{
++ di_write_unlock(dentry);
++ si_write_unlock(dentry->d_sb);
++}
++
++void aufs_read_and_write_lock2(struct dentry *d1, struct dentry *d2, int flags)
++{
++ AuDebugOn(d1 == d2 || d1->d_sb != d2->d_sb);
++ si_read_lock(d1->d_sb, flags);
++ di_write_lock2_child(d1, d2, au_ftest_lock(flags, DIR));
++}
++
++void aufs_read_and_write_unlock2(struct dentry *d1, struct dentry *d2)
++{
++ AuDebugOn(d1 == d2 || d1->d_sb != d2->d_sb);
++ di_write_unlock2(d1, d2);
++ si_read_unlock(d1->d_sb);
++}
++
++/* ---------------------------------------------------------------------- */
++
++aufs_bindex_t au_new_br_id(struct super_block *sb)
++{
++ aufs_bindex_t br_id;
++ struct au_sbinfo *sbinfo;
++
++ AuTraceEnter();
++ SiMustWriteLock(sb);
++
++ sbinfo = au_sbi(sb);
++ while (1) {
++ br_id = ++sbinfo->si_last_br_id;
++ if (br_id && au_br_index(sb, br_id) < 0)
++ return br_id;
++ }
++}
+diff --git a/fs/aufs/super.c b/fs/aufs/super.c
+new file mode 100644
+index 0000000..1943a6b
+--- /dev/null
++++ b/fs/aufs/super.c
+@@ -0,0 +1,1032 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * mount and super_block operations
++ *
++ * $Id: super.c,v 1.103 2009/01/26 06:24:10 sfjro Exp $
++ */
++
++#include <linux/module.h>
++#include <linux/buffer_head.h>
++#include <linux/seq_file.h>
++#include <linux/smp_lock.h>
++#include <linux/statfs.h>
++
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20)
++#include <linux/mnt_namespace.h>
++typedef struct mnt_namespace au_mnt_ns_t;
++#define au_nsproxy(tsk) (tsk)->nsproxy
++#define au_mnt_ns(tsk) (tsk)->nsproxy->mnt_ns
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19)
++#include <linux/namespace.h>
++typedef struct namespace au_mnt_ns_t;
++#define au_nsproxy(tsk) (tsk)->nsproxy
++#define au_mnt_ns(tsk) (tsk)->nsproxy->namespace
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
++#include <linux/namespace.h>
++typedef struct namespace au_mnt_ns_t;
++#define au_nsproxy(tsk) (tsk)->namespace
++#define au_mnt_ns(tsk) (tsk)->namespace
++#endif
++
++#include "aufs.h"
++
++/*
++ * super_operations
++ */
++static struct inode *aufs_alloc_inode(struct super_block *sb)
++{
++ struct aufs_icntnr *c;
++
++ AuTraceEnter();
++
++ c = au_cache_alloc_icntnr();
++ if (c) {
++ inode_init_once(&c->vfs_inode);
++ c->vfs_inode.i_version = 1; /* sigen(sb); */
++ c->iinfo.ii_hinode = NULL;
++ return &c->vfs_inode;
++ }
++ return NULL;
++}
++
++static void aufs_destroy_inode(struct inode *inode)
++{
++ int err;
++
++ LKTRTrace("i%lu\n", inode->i_ino);
++
++ if (!inode->i_nlink || IS_DEADDIR(inode)) {
++ /* in nowait task or remount, sbi is write-locked */
++ struct super_block *sb = inode->i_sb;
++ const int locked = si_noflush_read_trylock(sb);
++
++ err = au_xigen_inc(inode);
++ if (unlikely(err))
++ AuWarn1("failed resetting i_generation, %d\n", err);
++ if (locked)
++ si_read_unlock(sb);
++ }
++
++ au_iinfo_fin(inode);
++ au_cache_free_icntnr(container_of(inode, struct aufs_icntnr,
++ vfs_inode));
++}
++
++static void aufs_read_inode(struct inode *inode)
++{
++ int err;
++#if 0
++ static struct backing_dev_info bdi = {
++ .ra_pages = 0, /* No readahead */
++ .capabilities = BDI_CAP_NO_ACCT_DIRTY | BDI_CAP_NO_WRITEBACK
++ };
++#endif
++
++ LKTRTrace("i%lu\n", inode->i_ino);
++
++ err = au_xigen_new(inode);
++ if (!err)
++ err = au_iinfo_init(inode);
++ //if (LktrCond) err = -1;
++ if (!err) {
++ inode->i_version++;
++ //inode->i_mapping->backing_dev_info = &bdi;
++ return; /* success */
++ }
++
++ LKTRTrace("intializing inode info failed(%d)\n", err);
++ make_bad_inode(inode);
++}
++
++/* lock free root dinfo */
++static int au_show_brs(struct seq_file *seq, struct super_block *sb)
++{
++ int err;
++ aufs_bindex_t bindex, bend;
++ struct au_hdentry *hd;
++
++ AuTraceEnter();
++
++ err = 0;
++ bend = au_sbend(sb);
++ hd = au_di(sb->s_root)->di_hdentry;
++ for (bindex = 0; !err && bindex <= bend; bindex++) {
++ err = seq_path(seq, au_sbr_mnt(sb, bindex),
++ hd[bindex].hd_dentry, au_esc_chars);
++ if (err > 0) {
++ const char *p = au_optstr_br_perm(au_sbr_perm(sb,
++ bindex));
++ err = seq_printf(seq, "=%s", p);
++ }
++ if (!err && bindex != bend)
++ err = seq_putc(seq, ':');
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++static void au_show_wbr_create(struct seq_file *m, int v,
++ struct au_sbinfo *sbinfo)
++{
++ au_parser_pattern_t pat;
++
++ AuDebugOn(v == AuWbrCreate_Def);
++
++ seq_printf(m, ",create=");
++ pat = au_optstr_wbr_create(v);
++ switch (v) {
++ case AuWbrCreate_TDP:
++ case AuWbrCreate_RR:
++ case AuWbrCreate_MFS:
++ case AuWbrCreate_PMFS:
++ seq_printf(m, pat);
++ break;
++ case AuWbrCreate_MFSV:
++ seq_printf(m, /*pat*/"mfs:%lu",
++ sbinfo->si_wbr_mfs.mfs_expire / HZ);
++ break;
++ case AuWbrCreate_PMFSV:
++ seq_printf(m, /*pat*/"pmfs:%lu",
++ sbinfo->si_wbr_mfs.mfs_expire / HZ);
++ break;
++ case AuWbrCreate_MFSRR:
++ seq_printf(m, /*pat*/"mfsrr:%llu",
++ sbinfo->si_wbr_mfs.mfsrr_watermark);
++ break;
++ case AuWbrCreate_MFSRRV:
++ seq_printf(m, /*pat*/"mfsrr:%llu:%lu",
++ sbinfo->si_wbr_mfs.mfsrr_watermark,
++ sbinfo->si_wbr_mfs.mfs_expire / HZ);
++ break;
++ }
++}
++
++/* seq_file will re-call me in case of too long string */
++static int aufs_show_options(struct seq_file *m, struct vfsmount *mnt)
++{
++ int err, n;
++ unsigned int mnt_flags, v;
++ struct super_block *sb;
++ struct au_sbinfo *sbinfo;
++ struct file *xino;
++
++ AuTraceEnter();
++
++ sb = mnt->mnt_sb;
++ /* lock free root dinfo */
++ si_noflush_read_lock(sb);
++ sbinfo = au_sbi(sb);
++
++ /* compatibility for some aufs scripts */
++ seq_printf(m, ",si=%p", sbinfo);
++ mnt_flags = au_mntflags(sb);
++ if (au_opt_test(mnt_flags, XINO)) {
++ seq_puts(m, ",xino=");
++ xino = sbinfo->si_xib;
++ err = seq_path(m, xino->f_vfsmnt, xino->f_dentry, au_esc_chars);
++ if (unlikely(err <= 0))
++ goto out;
++ err = 0;
++#define Deleted "\\040(deleted)"
++ m->count -= sizeof(Deleted) - 1;
++ AuDebugOn(memcmp(m->buf + m->count, Deleted,
++ sizeof(Deleted) - 1));
++#undef Deleted
++#if 0 //def CONFIG_AUFS_EXPORT /* reserved for future use */
++ } else if (au_opt_test(mnt_flags, XINODIR)) {
++ seq_puts(m, ",xinodir=");
++ seq_path(m, &sbinfo->si_xinodir, au_esc_chars);
++#endif
++ } else
++ seq_puts(m, ",noxino");
++
++#define AuBool(name, str) do { \
++ v = au_opt_test(mnt_flags, name); \
++ if (v != au_opt_test(AuOpt_Def, name)) \
++ seq_printf(m, ",%s" #str, v ? "" : "no"); \
++} while (0)
++
++#define AuStr(name, str) do { \
++ v = mnt_flags & AuOptMask_##name; \
++ if (v != (AuOpt_Def & AuOptMask_##name)) \
++ seq_printf(m, "," #str "=%s", au_optstr_##str(v)); \
++} while (0)
++
++#ifdef CONFIG_AUFS_COMPAT
++#define AuStr_BrOpt "dirs="
++#else
++#define AuStr_BrOpt "br:"
++#endif
++
++ AuBool(TRUNC_XINO, trunc_xino);
++ AuBool(DIRPERM1, dirperm1);
++ AuBool(SHWH, shwh);
++ AuBool(PLINK, plink);
++ AuStr(UDBA, udba);
++
++ v = sbinfo->si_wbr_create;
++ if (v != AuWbrCreate_Def)
++ au_show_wbr_create(m, v, sbinfo);
++
++ v = sbinfo->si_wbr_copyup;
++ if (v != AuWbrCopyup_Def)
++ seq_printf(m, ",cpup=%s", au_optstr_wbr_copyup(v));
++
++ v = au_opt_test(mnt_flags, ALWAYS_DIROPQ);
++ if (v != au_opt_test(AuOpt_Def, ALWAYS_DIROPQ))
++ seq_printf(m, ",diropq=%c", v ? 'a' : 'w');
++ AuBool(REFROF, refrof);
++ AuBool(DLGT, dlgt);
++ AuBool(WARN_PERM, warn_perm);
++ AuBool(VERBOSE, verbose);
++ AuBool(SUM, sum);
++ /* AuBool(SUM_W, wsum); */
++
++ n = sbinfo->si_dirwh;
++ if (n != AUFS_DIRWH_DEF)
++ seq_printf(m, ",dirwh=%d", n);
++ n = sbinfo->si_rdcache / HZ;
++ if (n != AUFS_RDCACHE_DEF)
++ seq_printf(m, ",rdcache=%d", n);
++
++ AuStr(COO, coo);
++
++ if (!sysaufs_brs) {
++ seq_puts(m, "," AuStr_BrOpt);
++ au_show_brs(m, sb);
++ }
++
++ out:
++ si_read_unlock(sb);
++ return 0;
++
++#undef AuBool
++#undef AuStr
++#undef AuStr_BrOpt
++}
++
++#ifndef ULLONG_MAX /* before linux-2.6.18 */
++#define ULLONG_MAX (~0ULL)
++#endif
++
++static u64 au_add_till_max(u64 a, u64 b)
++{
++ u64 old;
++
++ old = a;
++ a += b;
++ if (old < a)
++ return a;
++ return ULLONG_MAX;
++}
++
++static int au_statfs_sum(struct super_block *sb, struct kstatfs *buf, int dlgt)
++{
++ int err;
++ aufs_bindex_t bend, bindex, i;
++ unsigned char shared;
++ u64 blocks, bfree, bavail, files, ffree;
++ struct super_block *h_sb;
++
++ AuTraceEnter();
++
++ blocks = 0;
++ bfree = 0;
++ bavail = 0;
++ files = 0;
++ ffree = 0;
++
++ err = 0;
++ bend = au_sbend(sb);
++ for (bindex = bend; bindex >= 0; bindex--) {
++ h_sb = au_sbr_sb(sb, bindex);
++ shared = 0;
++ for (i = bindex + 1; !shared && i <= bend; i++)
++ shared = au_sbr_sb(sb, i) == h_sb;
++ if (shared)
++ continue;
++
++ err = vfsub_statfs(h_sb->s_root, buf, dlgt);
++ if (unlikely(err))
++ goto out;
++
++ blocks = au_add_till_max(blocks, buf->f_blocks);
++ bfree = au_add_till_max(bfree, buf->f_bfree);
++ bavail = au_add_till_max(bavail, buf->f_bavail);
++ files = au_add_till_max(files, buf->f_files);
++ ffree = au_add_till_max(ffree, buf->f_ffree);
++ }
++
++ buf->f_blocks = blocks;
++ buf->f_bfree = bfree;
++ buf->f_bavail = bavail;
++ buf->f_files = files;
++ buf->f_ffree = ffree;
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
++#define StatfsArg(sb) au_sbr_sb(sb, 0)->s_root
++#define StatfsSb(d) ((d)->d_sb)
++static int aufs_statfs(struct dentry *arg, struct kstatfs *buf)
++#else
++#define StatfsArg(sb) au_sbr_sb(sb, 0)
++#define StatfsSb(s) (s)
++static int aufs_statfs(struct super_block *arg, struct kstatfs *buf)
++#endif
++{
++ int err;
++ unsigned int mnt_flags;
++ unsigned char dlgt;
++ struct super_block *sb = StatfsSb(arg);
++
++ AuTraceEnter();
++
++ /* lock free root dinfo */
++ si_noflush_read_lock(sb);
++ mnt_flags = au_mntflags(sb);
++ dlgt = !!au_test_dlgt(mnt_flags);
++ if (!au_opt_test(mnt_flags, SUM))
++ err = vfsub_statfs(StatfsArg(sb), buf, dlgt);
++ else
++ err = au_statfs_sum(sb, buf, dlgt);
++ //if (LktrCond) err = -1;
++ si_read_unlock(sb);
++ if (!err) {
++ buf->f_type = AUFS_SUPER_MAGIC;
++ buf->f_namelen -= AUFS_WH_PFX_LEN;
++ //todo: support uuid?
++ memset(&buf->f_fsid, 0, sizeof(buf->f_fsid));
++ }
++ /* buf->f_bsize = buf->f_blocks = buf->f_bfree = buf->f_bavail = -1; */
++
++ AuTraceErr(err);
++ return err;
++}
++
++static void au_update_mnt(struct vfsmount *mnt, int flags)
++{
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
++ struct vfsmount *pos;
++ struct super_block *sb = mnt->mnt_sb;
++ struct dentry *root = sb->s_root;
++ struct au_sbinfo *sbinfo = au_sbi(sb);
++ au_mnt_ns_t *ns;
++
++ AuTraceEnter();
++ AuDebugOn(!kernel_locked());
++
++ if (sbinfo->si_mnt != mnt
++ || atomic_read(&sb->s_active) == 1
++ || !au_nsproxy(current))
++ return;
++
++ /* no get/put */
++ ns = au_mnt_ns(current);
++ AuDebugOn(!ns);
++ sbinfo->si_mnt = NULL;
++ list_for_each_entry(pos, &ns->list, mnt_list)
++ if (pos != mnt && pos->mnt_sb->s_root == root) {
++ sbinfo->si_mnt = pos;
++ break;
++ }
++ AuDebugOn(!(flags & MNT_DETACH) && !sbinfo->si_mnt);
++#endif
++}
++
++static void au_fsync_br(struct super_block *sb)
++{
++#ifdef CONFIG_AUFS_FSYNC_SUPER_PATCH
++ aufs_bindex_t bend, bindex;
++ int brperm;
++ struct au_branch *br;
++ struct super_block *h_sb;
++
++ AuTraceEnter();
++
++ si_write_lock(sb);
++ bend = au_sbend(sb);
++ for (bindex = 0; bindex < bend; bindex++) {
++ br = au_sbr(sb, bindex);
++ brperm = br->br_perm;
++ if (brperm == AuBrPerm_RR || brperm == AuBrPerm_RRWH)
++ continue;
++ h_sb = br->br_mnt->mnt_sb;
++ if (bdev_read_only(h_sb->s_bdev))
++ continue;
++
++ lockdep_off();
++ down_write(&h_sb->s_umount);
++ shrink_dcache_sb(h_sb);
++ fsync_super(h_sb);
++ up_write(&h_sb->s_umount);
++ lockdep_on();
++ }
++ si_write_unlock(sb);
++#endif
++}
++
++#define UmountBeginHasMnt (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18))
++
++#if UmountBeginHasMnt
++#define UmountBeginSb(mnt) ((mnt)->mnt_sb)
++#define UmountBeginMnt(mnt) (mnt)
++#define UmountBeginFlags _flags
++static void aufs_umount_begin(struct vfsmount *arg, int _flags)
++#else
++#define UmountBeginSb(sb) sb
++#define UmountBeginMnt(sb) NULL
++#define UmountBeginFlags 0
++static void aufs_umount_begin(struct super_block *arg)
++#endif
++{
++ struct super_block *sb = UmountBeginSb(arg);
++ struct vfsmount *mnt = UmountBeginMnt(arg);
++ struct au_sbinfo *sbinfo;
++
++ AuTraceEnter();
++
++ sbinfo = au_sbi(sb);
++ if (!sbinfo)
++ return;
++
++ au_fsync_br(sb);
++
++ si_write_lock(sb);
++ if (au_opt_test(au_mntflags(sb), PLINK))
++ au_plink_put(sb);
++#if 0 // remove
++ if (au_opt_test(au_mntflags(sb), UDBA_INOTIFY))
++ shrink_dcache_sb(sb);
++#endif
++ au_update_mnt(mnt, UmountBeginFlags);
++#if 0
++ if (sbinfo->si_wbr_create_ops->fin)
++ sbinfo->si_wbr_create_ops->fin(sb);
++#endif
++ si_write_unlock(sb);
++}
++
++/* final actions when unmounting a file system */
++static void aufs_put_super(struct super_block *sb)
++{
++ struct au_sbinfo *sbinfo;
++
++ AuTraceEnter();
++
++ sbinfo = au_sbi(sb);
++ if (!sbinfo)
++ return;
++
++#if !UmountBeginHasMnt
++ /* umount_begin() may not be called. */
++ aufs_umount_begin(sb);
++#endif
++ au_si_free(sb, /*err*/0);
++}
++
++/* ---------------------------------------------------------------------- */
++
++/*
++ * refresh dentry and inode at remount time.
++ */
++static int do_refresh(struct dentry *dentry, mode_t type,
++ unsigned int dir_flags)
++{
++ int err;
++ struct dentry *parent;
++ struct inode *inode;
++
++ LKTRTrace("%.*s, 0%o\n", AuDLNPair(dentry), type);
++ inode = dentry->d_inode;
++ AuDebugOn(!inode);
++
++ di_write_lock_child(dentry);
++ parent = dget_parent(dentry);
++ di_read_lock_parent(parent, AuLock_IR);
++ /* returns a number of positive dentries */
++ err = au_refresh_hdentry(dentry, type);
++ if (err >= 0) {
++ err = au_refresh_hinode(inode, dentry);
++ if (!err && type == S_IFDIR)
++ au_reset_hinotify(inode, dir_flags);
++ }
++ if (unlikely(err))
++ AuErr("unrecoverable error %d, %.*s\n", err, AuDLNPair(dentry));
++ di_read_unlock(parent, AuLock_IR);
++ dput(parent);
++ di_write_unlock(dentry);
++
++ AuTraceErr(err);
++ return err;
++}
++
++static int test_dir(struct dentry *dentry, void *arg)
++{
++ return S_ISDIR(dentry->d_inode->i_mode);
++}
++
++/* todo: merge with refresh_nondir()? */
++static int refresh_dir(struct dentry *root, au_gen_t sgen)
++{
++ int err, i, j, ndentry, e;
++ struct au_dcsub_pages dpages;
++ struct au_dpage *dpage;
++ struct dentry **dentries;
++ struct inode *inode;
++ const unsigned int flags = au_hi_flags(root->d_inode, /*isdir*/1);
++
++ LKTRTrace("sgen %d\n", sgen);
++ SiMustWriteLock(root->d_sb);
++ /* dont trust BKL */
++ AuDebugOn(au_digen(root) != sgen || !kernel_locked());
++
++ err = 0;
++ list_for_each_entry(inode, &root->d_sb->s_inodes, i_sb_list)
++ if (S_ISDIR(inode->i_mode) && au_iigen(inode) != sgen) {
++ ii_write_lock_child(inode);
++ e = au_refresh_hinode_self(inode);
++ ii_write_unlock(inode);
++ if (unlikely(e)) {
++ LKTRTrace("e %d, i%lu\n", e, inode->i_ino);
++ if (!err)
++ err = e;
++ /* go on even if err */
++ }
++ }
++
++ e = au_dpages_init(&dpages, GFP_NOFS);
++ if (unlikely(e)) {
++ if (!err)
++ err = e;
++ goto out;
++ }
++ e = au_dcsub_pages(&dpages, root, test_dir, NULL);
++ if (unlikely(e)) {
++ if (!err)
++ err = e;
++ goto out_dpages;
++ }
++
++ for (i = 0; !e && i < dpages.ndpage; i++) {
++ dpage = dpages.dpages + i;
++ dentries = dpage->dentries;
++ ndentry = dpage->ndentry;
++ for (j = 0; !e && j < ndentry; j++) {
++ struct dentry *d;
++ d = dentries[j];
++#ifdef CONFIG_AUFS_DEBUG
++ {
++ struct dentry *parent;
++ parent = dget_parent(d);
++ AuDebugOn(!S_ISDIR(d->d_inode->i_mode)
++ || IS_ROOT(d)
++ || au_digen(parent) != sgen);
++ dput(parent);
++ }
++#endif
++ if (au_digen(d) != sgen) {
++ e = do_refresh(d, S_IFDIR, flags);
++ if (unlikely(e && !err))
++ err = e;
++ /* break on err */
++ }
++ }
++ }
++
++ out_dpages:
++ au_dpages_free(&dpages);
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++static int test_nondir(struct dentry *dentry, void *arg)
++{
++ return !S_ISDIR(dentry->d_inode->i_mode);
++}
++
++static int refresh_nondir(struct dentry *root, au_gen_t sgen, int do_dentry)
++{
++ int err, i, j, ndentry, e;
++ struct au_dcsub_pages dpages;
++ struct au_dpage *dpage;
++ struct dentry **dentries;
++ struct inode *inode;
++
++ LKTRTrace("sgen %d\n", sgen);
++ SiMustWriteLock(root->d_sb);
++ /* dont trust BKL */
++ AuDebugOn(au_digen(root) != sgen || !kernel_locked());
++
++ err = 0;
++ list_for_each_entry(inode, &root->d_sb->s_inodes, i_sb_list)
++ if (!S_ISDIR(inode->i_mode) && au_iigen(inode) != sgen) {
++ ii_write_lock_child(inode);
++ e = au_refresh_hinode_self(inode);
++ ii_write_unlock(inode);
++ if (unlikely(e)) {
++ LKTRTrace("e %d, i%lu\n", e, inode->i_ino);
++ if (!err)
++ err = e;
++ /* go on even if err */
++ }
++ }
++
++ if (!do_dentry)
++ goto out;
++
++ e = au_dpages_init(&dpages, GFP_NOFS);
++ if (unlikely(e)) {
++ if (!err)
++ err = e;
++ goto out;
++ }
++ e = au_dcsub_pages(&dpages, root, test_nondir, NULL);
++ if (unlikely(e)) {
++ if (!err)
++ err = e;
++ goto out_dpages;
++ }
++
++ for (i = 0; i < dpages.ndpage; i++) {
++ dpage = dpages.dpages + i;
++ dentries = dpage->dentries;
++ ndentry = dpage->ndentry;
++ for (j = 0; j < ndentry; j++) {
++ struct dentry *d;
++ d = dentries[j];
++#ifdef CONFIG_AUFS_DEBUG
++ {
++ struct dentry *parent;
++ parent = dget_parent(d);
++ AuDebugOn(S_ISDIR(d->d_inode->i_mode)
++ || au_digen(parent) != sgen);
++ dput(parent);
++ }
++#endif
++ inode = d->d_inode;
++ if (inode && au_digen(d) != sgen) {
++ e = do_refresh(d, inode->i_mode & S_IFMT, 0);
++ if (unlikely(e && !err))
++ err = e;
++ /* go on even err */
++ }
++ }
++ }
++
++ out_dpages:
++ au_dpages_free(&dpages);
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/* stop extra interpretation of errno in mount(8), and strange error messages */
++static int cvt_err(int err)
++{
++ AuTraceErr(err);
++
++ switch (err) {
++ case -ENOENT:
++ case -ENOTDIR:
++ case -EEXIST:
++ case -EIO:
++ err = -EINVAL;
++ }
++ return err;
++}
++
++/* protected by s_umount */
++static int aufs_remount_fs(struct super_block *sb, int *flags, char *data)
++{
++ int err, rerr;
++ au_gen_t sigen;
++ struct dentry *root;
++ struct inode *inode;
++ struct au_opts opts;
++ struct au_sbinfo *sbinfo;
++ unsigned char dlgt;
++
++ LKTRTrace("flags 0x%x, data %s, len %lu\n",
++ *flags, data ? data : "NULL",
++ (unsigned long)(data ? strlen(data) : 0));
++
++ au_fsync_br(sb);
++
++ err = 0;
++ root = sb->s_root;
++ if (!data || !*data) {
++ aufs_write_lock(root);
++ err = verify_opts(sb, *flags, /*pending*/0, /*remount*/1);
++ aufs_write_unlock(root);
++ goto out; /* success */
++ }
++
++ err = -ENOMEM;
++ memset(&opts, 0, sizeof(opts));
++ opts.opt = (void *)__get_free_page(GFP_NOFS);
++ if (unlikely(!opts.opt))
++ goto out;
++ opts.max_opt = PAGE_SIZE / sizeof(*opts.opt);
++ opts.flags = AuOpts_REMOUNT;
++ opts.sb_flags = *flags;
++
++ /* parse it before aufs lock */
++ err = au_opts_parse(sb, data, &opts);
++ if (unlikely(err))
++ goto out_opts;
++
++ sbinfo = au_sbi(sb);
++ inode = root->d_inode;
++ vfsub_i_lock(inode);
++ aufs_write_lock(root);
++
++ /* au_do_opts() may return an error */
++ err = au_opts_remount(sb, &opts);
++ au_opts_free(&opts);
++
++ if (au_ftest_opts(opts.flags, REFRESH_DIR)
++ || au_ftest_opts(opts.flags, REFRESH_NONDIR)) {
++ dlgt = !!au_opt_test(sbinfo->si_mntflags, DLGT);
++ au_opt_clr(sbinfo->si_mntflags, DLGT);
++ au_sigen_inc(sb);
++ au_reset_hinotify(inode, au_hi_flags(inode, /*isdir*/1));
++ sigen = au_sigen(sb);
++ au_fclr_si(sbinfo, FAILED_REFRESH_DIRS);
++
++ DiMustNoWaiters(root);
++ IiMustNoWaiters(root->d_inode);
++ di_write_unlock(root);
++
++ rerr = refresh_dir(root, sigen);
++ if (unlikely(rerr)) {
++ au_fset_si(sbinfo, FAILED_REFRESH_DIRS);
++ AuWarn("Refreshing directories failed, ignores (%d)\n",
++ rerr);
++ }
++
++ if (au_ftest_opts(opts.flags, REFRESH_NONDIR)) {
++ rerr = refresh_nondir(root, sigen, !rerr);
++ if (unlikely(rerr))
++ AuWarn("Refreshing non-directories failed,"
++ " ignores (%d)\n", rerr);
++ }
++
++ /* aufs_write_lock() calls ..._child() */
++ di_write_lock_child(root);
++
++ au_cpup_attr_all(inode, /*force*/1);
++ if (dlgt)
++ au_opt_set(sbinfo->si_mntflags, DLGT);
++ }
++
++ aufs_write_unlock(root);
++ vfsub_i_unlock(inode);
++
++ out_opts:
++ free_page((unsigned long)opts.opt);
++ out:
++ err = cvt_err(err);
++ AuTraceErr(err);
++ return err;
++}
++
++static struct super_operations aufs_sop = {
++ .alloc_inode = aufs_alloc_inode,
++ .destroy_inode = aufs_destroy_inode,
++ .read_inode = aufs_read_inode,
++ //.dirty_inode = aufs_dirty_inode,
++ //.write_inode = aufs_write_inode,
++ //void (*put_inode) (struct inode *);
++ .drop_inode = generic_delete_inode,
++ //.delete_inode = aufs_delete_inode,
++ //.clear_inode = aufs_clear_inode,
++
++ .show_options = aufs_show_options,
++ .statfs = aufs_statfs,
++
++ .put_super = aufs_put_super,
++ //void (*write_super) (struct super_block *);
++ //int (*sync_fs)(struct super_block *sb, int wait);
++ //void (*write_super_lockfs) (struct super_block *);
++ //void (*unlockfs) (struct super_block *);
++ .remount_fs = aufs_remount_fs,
++ /* depends upon umount flags. also use put_super() (< 2.6.18) */
++ .umount_begin = aufs_umount_begin
++};
++
++/* ---------------------------------------------------------------------- */
++
++/*
++ * at first mount time.
++ */
++
++static int alloc_root(struct super_block *sb)
++{
++ int err;
++ struct inode *inode;
++ struct dentry *root;
++
++ AuTraceEnter();
++
++ err = -ENOMEM;
++ inode = iget(sb, AUFS_ROOT_INO);
++ //if (LktrCond) {iput(inode); inode = NULL;}
++ if (unlikely(!inode))
++ goto out;
++ err = PTR_ERR(inode);
++ if (IS_ERR(inode))
++ goto out;
++ err = -ENOMEM;
++ if (unlikely(is_bad_inode(inode)))
++ goto out_iput;
++
++ inode->i_op = &aufs_dir_iop;
++ inode->i_fop = &aufs_dir_fop;
++ inode->i_mode = S_IFDIR;
++ root = d_alloc_root(inode);
++ //if (LktrCond) {igrab(inode); dput(root); root = NULL;}
++ if (unlikely(!root))
++ goto out_iput;
++ err = PTR_ERR(root);
++ if (IS_ERR(root))
++ goto out_iput;
++
++ err = au_alloc_dinfo(root);
++ if (!err) {
++ sb->s_root = root;
++ return 0; /* success */
++ }
++ dput(root);
++ goto out; /* do not iput */
++
++ out_iput:
++ iput(inode);
++ out:
++ AuTraceErr(err);
++ return err;
++
++}
++
++static int aufs_fill_super(struct super_block *sb, void *raw_data, int silent)
++{
++ int err;
++ struct dentry *root;
++ struct inode *inode;
++ struct au_opts opts;
++ char *arg = raw_data;
++
++ if (unlikely(!arg || !*arg)) {
++ err = -EINVAL;
++ AuErr("no arg\n");
++ goto out;
++ }
++ LKTRTrace("%s, silent %d\n", arg, silent);
++
++ err = -ENOMEM;
++ memset(&opts, 0, sizeof(opts));
++ opts.opt = (void *)__get_free_page(GFP_NOFS);
++ if (unlikely(!opts.opt))
++ goto out;
++ opts.max_opt = PAGE_SIZE / sizeof(*opts.opt);
++ opts.sb_flags = sb->s_flags;
++
++ err = au_si_alloc(sb);
++ if (unlikely(err))
++ goto out_opts;
++ SiMustWriteLock(sb);
++
++ /* all timestamps always follow the ones on the branch */
++ sb->s_flags |= MS_NOATIME | MS_NODIRATIME;
++ sb->s_op = &aufs_sop;
++ sb->s_magic = AUFS_SUPER_MAGIC;
++ au_export_init(sb);
++
++ err = alloc_root(sb);
++ if (unlikely(err)) {
++ AuDebugOn(sb->s_root);
++ si_write_unlock(sb);
++ goto out_info;
++ }
++ root = sb->s_root;
++ DiMustWriteLock(root);
++ inode = root->d_inode;
++ inode->i_nlink = 2;
++
++ /*
++ * actually we can parse options regardless aufs lock here.
++ * but at remount time, parsing must be done before aufs lock.
++ * so we follow the same rule.
++ */
++ ii_write_lock_parent(inode);
++ au_dbg_locked_si_reg(sb, 1);
++ aufs_write_unlock(root);
++ err = au_opts_parse(sb, arg, &opts);
++ if (unlikely(err))
++ goto out_root;
++
++ /* lock vfs_inode first, then aufs. */
++ vfsub_i_lock(inode);
++ inode->i_op = &aufs_dir_iop;
++ inode->i_fop = &aufs_dir_fop;
++ aufs_write_lock(root);
++
++ sb->s_maxbytes = 0;
++ err = au_opts_mount(sb, &opts);
++ au_opts_free(&opts);
++ if (unlikely(err))
++ goto out_unlock;
++ AuDebugOn(!sb->s_maxbytes);
++
++ aufs_write_unlock(root);
++ vfsub_i_unlock(inode);
++ goto out_opts; /* success */
++
++ out_unlock:
++ aufs_write_unlock(root);
++ vfsub_i_unlock(inode);
++ out_root:
++ dput(root);
++ sb->s_root = NULL;
++ out_info:
++ au_si_free(sb, /*err*/1);
++ sb->s_fs_info = NULL;
++ out_opts:
++ free_page((unsigned long)opts.opt);
++ out:
++ AuTraceErr(err);
++ err = cvt_err(err);
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
++static int aufs_get_sb(struct file_system_type *fs_type, int flags,
++ const char *dev_name, void *raw_data,
++ struct vfsmount *mnt)
++{
++ int err;
++
++ /* all timestamps always follow the ones on the branch */
++ /* mnt->mnt_flags |= MNT_NOATIME | MNT_NODIRATIME; */
++ err = get_sb_nodev(fs_type, flags, raw_data, aufs_fill_super, mnt);
++ if (!err) {
++ struct super_block *sb = mnt->mnt_sb;
++ struct au_sbinfo *sbinfo = au_sbi(sb);
++ sbinfo->si_mnt = mnt;
++
++ au_sbilist_lock();
++ au_sbilist_add(sbinfo);
++ si_write_lock(sb);
++ sysaufs_sbi_add(sb);
++ si_write_unlock(sb);
++ au_sbilist_unlock();
++ }
++ return err;
++}
++#else
++static struct super_block *aufs_get_sb(struct file_system_type *fs_type,
++ int flags, const char *dev_name,
++ void *raw_data)
++{
++ return get_sb_nodev(fs_type, flags, raw_data, aufs_fill_super);
++}
++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18) */
++
++struct file_system_type aufs_fs_type = {
++ .name = AUFS_FSTYPE,
++ .fs_flags =
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19)
++ FS_RENAME_DOES_D_MOVE | /* a race between rename and others */
++#endif
++ FS_REVAL_DOT, /* for NFS branch and udba */
++ .get_sb = aufs_get_sb,
++ .kill_sb = generic_shutdown_super,
++ /* no need to __module_get() and module_put(). */
++ .owner = THIS_MODULE,
++};
+diff --git a/fs/aufs/super.h b/fs/aufs/super.h
+new file mode 100644
+index 0000000..02acd04
+--- /dev/null
++++ b/fs/aufs/super.h
+@@ -0,0 +1,579 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * super_block operations
++ *
++ * $Id: super.h,v 1.91 2009/01/26 06:24:15 sfjro Exp $
++ */
++
++#ifndef __AUFS_SUPER_H__
++#define __AUFS_SUPER_H__
++
++#ifdef __KERNEL__
++
++#include <linux/fs.h>
++#include <linux/version.h>
++#include <linux/cramfs_fs.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19)
++#include <linux/magic.h>
++#else
++#include <linux/nfs_fs.h>
++#endif
++#include <linux/aufs_type.h>
++//#include "hinode.h"
++#include "misc.h"
++//#include "opts.h"
++#include "wkq.h"
++
++typedef ssize_t (*au_readf_t)(struct file *, char __user *, size_t, loff_t *);
++typedef ssize_t (*au_writef_t)(struct file *, const char __user *, size_t,
++ loff_t *);
++
++struct au_wbr_copyup_operations {
++ int (*copyup)(struct dentry *dentry);
++};
++
++struct au_wbr_create_operations {
++ int (*create)(struct dentry *dentry, int isdir);
++ int (*init)(struct super_block *sb);
++ int (*fin)(struct super_block *sb);
++};
++
++struct au_wbr_mfs {
++ struct mutex mfs_lock; /* protect this structure */
++ unsigned long mfs_jiffy;
++ unsigned long mfs_expire;
++ aufs_bindex_t mfs_bindex;
++
++ unsigned long long mfsrr_bytes;
++ unsigned long long mfsrr_watermark;
++};
++
++/* sbinfo status flags */
++/*
++ * set true when refresh_dirs() failed at remount time.
++ * then try refreshing dirs at access time again.
++ * if it is false, refreshing dirs at access time is unnecesary
++ */
++#define AuSi_FAILED_REFRESH_DIRS 1
++#define au_ftest_si(sbinfo, name) ((sbinfo)->au_si_status & AuSi_##name)
++#define au_fset_si(sbinfo, name) \
++ { (sbinfo)->au_si_status |= AuSi_##name; }
++#define au_fclr_si(sbinfo, name) \
++ { (sbinfo)->au_si_status &= ~AuSi_##name; }
++
++struct sysaufs_sbinfo;
++struct au_branch;
++struct au_sbinfo {
++ /* nowait tasks in the system-wide workqueue */
++ struct au_nowait_tasks si_nowait;
++
++ struct au_rwsem si_rwsem;
++
++ /* branch management */
++ au_gen_t si_generation;
++
++ /* see above flags */
++ unsigned char au_si_status;
++
++ aufs_bindex_t si_bend;
++ aufs_bindex_t si_last_br_id;
++ struct au_branch **si_branch;
++
++ /* policy to select a writable branch */
++ unsigned char si_wbr_copyup;
++ unsigned char si_wbr_create;
++ struct au_wbr_copyup_operations *si_wbr_copyup_ops;
++ struct au_wbr_create_operations *si_wbr_create_ops;
++
++ /* round robin */
++ atomic_t si_wbr_rr_next;
++
++ /* most free space */
++ struct au_wbr_mfs si_wbr_mfs;
++
++ /* mount flags */
++ /* include/asm-ia64/siginfo.h defines a macro named si_flags */
++ unsigned int si_mntflags;
++
++ /* external inode number (bitmap and translation table) */
++ au_readf_t si_xread;
++ au_writef_t si_xwrite;
++ struct file *si_xib;
++ struct mutex si_xib_mtx; /* protect xib members */
++ unsigned long *si_xib_buf;
++ unsigned long si_xib_last_pindex;
++ int si_xib_next_bit;
++ /* reserved for future use */
++ /* unsigned long long si_xib_limit; */ /* Max xib file size */
++
++#ifdef CONFIG_AUFS_HINOTIFY
++ struct au_branch *si_xino_def_br;
++#endif
++
++#ifdef CONFIG_AUFS_EXPORT
++ /* i_generation */
++ struct file *si_xigen;
++ atomic_t si_xigen_next;
++#endif
++
++ /* readdir cache time, max, in HZ */
++ unsigned long si_rdcache;
++
++ /*
++ * If the number of whiteouts are larger than si_dirwh, leave all of
++ * them after au_whtmp_ren to reduce the cost of rmdir(2).
++ * future fsck.aufs or kernel thread will remove them later.
++ * Otherwise, remove all whiteouts and the dir in rmdir(2).
++ */
++ unsigned int si_dirwh;
++
++ /*
++ * rename(2) a directory with all children.
++ */
++ /* reserved for future use */
++ /* int si_rendir; */
++
++ /* pseudo_link list */ /* todo: dirty? */
++ struct au_splhead si_plink;
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
++ struct vfsmount *si_mnt; /* no get/put */
++#endif
++
++ /* sysfs */
++#ifdef CONFIG_AUFS_SYSAUFS
++ /* super_blocks list is not exported */
++ struct list_head si_list;
++ struct sysaufs_sbinfo *si_sa;
++#endif
++
++#ifdef CONFIG_AUFS_ROBR
++ /* locked vma list for mmap() */ // very dirty
++ struct au_splhead si_lvma;
++#endif
++
++#if 0 //def CONFIG_AUFS_EXPORT /* reserved for future use */
++ struct path si_xinodir;
++#endif
++
++#ifdef CONFIG_AUFS_DEBUG_LOCK
++ struct au_splhead si_dbg_lock[AuDbgLock_Last];
++#endif
++};
++
++/* ---------------------------------------------------------------------- */
++
++/* policy to select one among writable branches */
++#define AuWbrCopyup(sbinfo, args...) \
++ ((sbinfo)->si_wbr_copyup_ops->copyup(args))
++#define AuWbrCreate(sbinfo, args...) \
++ ((sbinfo)->si_wbr_create_ops->create(args))
++
++/* flags for si_read_lock()/aufs_read_lock()/di_read_lock() */
++#define AuLock_DW 1 /* write-lock dentry */
++#define AuLock_IR (1 << 1) /* read-lock inode */
++#define AuLock_IW (1 << 2) /* write-lock inode */
++#define AuLock_FLUSH (1 << 3) /* wait for 'nowait' tasks */
++#define AuLock_DIR (1 << 4) /* target is a dir */
++#define au_ftest_lock(flags, name) ((flags) & AuLock_##name)
++#define au_fset_lock(flags, name) { (flags) |= AuLock_##name; }
++#define au_fclr_lock(flags, name) { (flags) &= ~AuLock_##name; }
++
++/* ---------------------------------------------------------------------- */
++
++/* super.c */
++extern struct file_system_type aufs_fs_type;
++
++/* sbinfo.c */
++void au_si_free(struct super_block *sb, int err);
++int au_si_alloc(struct super_block *sb);
++struct au_branch *au_sbr(struct super_block *sb, aufs_bindex_t bindex);
++au_gen_t au_sigen_inc(struct super_block *sb);
++int au_find_bindex(struct super_block *sb, struct au_branch *br);
++
++void aufs_read_lock(struct dentry *dentry, int flags);
++void aufs_read_unlock(struct dentry *dentry, int flags);
++void aufs_write_lock(struct dentry *dentry);
++void aufs_write_unlock(struct dentry *dentry);
++void aufs_read_and_write_lock2(struct dentry *d1, struct dentry *d2, int isdir);
++void aufs_read_and_write_unlock2(struct dentry *d1, struct dentry *d2);
++
++aufs_bindex_t au_new_br_id(struct super_block *sb);
++
++/* wbr_policy.c */
++extern struct au_wbr_copyup_operations au_wbr_copyup_ops[];
++extern struct au_wbr_create_operations au_wbr_create_ops[];
++int au_cpdown_dirs(struct dentry *dentry, aufs_bindex_t bdst);
++
++/* ---------------------------------------------------------------------- */
++
++#if 0 //LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26)
++static inline int au_mnt_want_write(struct vfsmount *h_mnt)
++{
++ return mnt_want_write(h_mnt);
++}
++
++static inline void au_mnt_drop_write(struct vfsmount *h_mnt)
++{
++ mnt_drop_write(h_mnt);
++}
++#else
++static inline int au_mnt_want_write(struct vfsmount *h_mnt)
++{
++ return 0;
++}
++
++static inline void au_mnt_drop_write(struct vfsmount *h_mnt)
++{
++ /* empty */
++}
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++static inline struct au_sbinfo *au_sbi(struct super_block *sb)
++{
++ return sb->s_fs_info;
++}
++
++static inline const char *au_sbtype(struct super_block *sb)
++{
++ return sb->s_type->name;
++}
++
++static inline int au_test_aufs(struct super_block *sb)
++{
++ return sb->s_magic == AUFS_SUPER_MAGIC;
++}
++
++static inline int au_test_nfs(struct super_block *sb)
++{
++#ifdef CONFIG_AUFS_BR_NFS
++ return sb->s_magic == NFS_SUPER_MAGIC;
++#else
++ return 0;
++#endif
++}
++
++static inline int au_test_nfs4(struct super_block *sb)
++{
++#ifdef CONFIG_AUFS_BR_NFS_V4
++ return au_test_nfs(sb) && !strcmp(sb->s_type->name, "nfs4");
++#else
++ return 0;
++#endif
++}
++
++static inline int au_test_fuse(struct super_block *sb)
++{
++#ifdef CONFIG_AUFS_WORKAROUND_FUSE
++ return sb->s_magic == FUSE_SUPER_MAGIC;
++#else
++ return 0;
++#endif
++}
++
++static inline int au_test_xfs(struct super_block *sb)
++{
++#ifdef CONFIG_AUFS_BR_XFS
++ return sb->s_magic == XFS_SB_MAGIC;
++#else
++ return 0;
++#endif
++}
++
++static inline int au_test_tmpfs(struct super_block *sb)
++{
++#ifdef CONFIG_TMPFS
++ return sb->s_magic == TMPFS_MAGIC;
++#else
++ return 0;
++#endif
++}
++
++static inline int au_test_ecryptfs(struct super_block *sb)
++{
++#if defined(CONFIG_ECRYPT_FS) || defined(CONFIG_ECRYPT_FS_MODULE)
++ /* why don't they use s_magic? */
++ return !strcmp(sb->s_type->name, "ecryptfs");
++#else
++ return 0;
++#endif
++}
++
++/* ---------------------------------------------------------------------- */
++
++#ifdef CONFIG_AUFS_HINOTIFY
++static inline void au_xino_def_br_set(struct au_branch *br,
++ struct au_sbinfo *sbinfo)
++{
++ sbinfo->si_xino_def_br = br;
++}
++
++static inline struct au_branch *au_xino_def_br(struct au_sbinfo *sbinfo)
++{
++ return sbinfo->si_xino_def_br;
++}
++#else
++static inline void au_xino_def_br_set(struct au_branch *br,
++ struct au_sbinfo *sbinfo)
++{
++ /* empty */
++}
++
++static inline struct au_branch *au_xino_def_br(struct au_sbinfo *sbinfo)
++{
++ return NULL;
++}
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++#ifdef CONFIG_AUFS_EXPORT
++void au_export_init(struct super_block *sb);
++
++static inline int au_test_nfsd(struct task_struct *tsk)
++{
++ return !tsk->mm && !strcmp(tsk->comm, "nfsd");
++}
++
++static inline void au_export_put(struct au_sbinfo *sbinfo)
++{
++#if 0 /* reserved for future use */
++ path_put(&sbinfo->si_xinodir);
++#endif
++}
++
++int au_xigen_inc(struct inode *inode);
++int au_xigen_new(struct inode *inode);
++int au_xigen_set(struct super_block *sb, struct file *base);
++void au_xigen_clr(struct super_block *sb);
++#else
++static inline void au_export_init(struct super_block *sb)
++{
++ /* nothing */
++}
++
++static inline int au_test_nfsd(struct task_struct *tsk)
++{
++ return 0;
++}
++
++static inline void au_export_put(struct au_sbinfo *sbinfo)
++{
++ /* nothing */
++}
++
++static inline int au_xigen_inc(struct inode *inode)
++{
++ return 0;
++}
++
++static inline int au_xigen_new(struct inode *inode)
++{
++ return 0;
++}
++
++static inline int au_xigen_set(struct super_block *sb, struct file *base)
++{
++ return 0;
++}
++
++static inline void au_xigen_clr(struct super_block *sb)
++{
++ /* empty */
++}
++#endif /* CONFIG_AUFS_EXPORT */
++
++#ifdef CONFIG_AUFS_ROBR
++static inline int au_test_nested(struct super_block *h_sb)
++{
++ return 0;
++}
++
++static inline void au_robr_lvma_init(struct au_sbinfo *sbinfo)
++{
++ au_spl_init(&sbinfo->si_lvma);
++}
++#else
++static inline int au_test_nested(struct super_block *h_sb)
++{
++ int err = 0;
++ if (unlikely(au_test_aufs(h_sb))) {
++ err = -EINVAL;
++ AuTraceErr(err);
++ }
++ return err;
++}
++
++static inline void au_robr_lvma_init(struct au_sbinfo *sbinfo)
++{
++ /* empty */
++}
++#endif /* CONFIG_AUFS_ROBR */
++
++/* ---------------------------------------------------------------------- */
++
++/* lock superblock. mainly for entry point functions */
++/*
++ * si_do_noflush_read_lock, si_do_noflush_write_lock,
++ * si_do_read_unlock, si_do_write_unlock, si_do_downgrade_lock
++ */
++AuSimpleLockRwsemFuncs(si_do_noflush, struct super_block *sb,
++ au_sbi(sb)->si_rwsem);
++AuSimpleUnlockRwsemFuncs(si_do, struct super_block *sb, au_sbi(sb)->si_rwsem);
++
++static inline void si_noflush_read_lock(struct super_block *sb)
++{
++ au_dbg_locking_si_reg(sb, 0);
++ si_do_noflush_read_lock(sb);
++ au_dbg_locking_si_unreg(sb, 0);
++ au_dbg_locked_si_reg(sb, 0);
++}
++
++static inline void si_noflush_write_lock(struct super_block *sb)
++{
++ au_dbg_locking_si_reg(sb, 1);
++ si_do_noflush_write_lock(sb);
++ au_dbg_locking_si_unreg(sb, 1);
++ au_dbg_locked_si_reg(sb, 1);
++}
++
++static inline int si_noflush_read_trylock(struct super_block *sb)
++{
++ int locked;
++
++ au_dbg_locking_si_reg(sb, 0);
++ locked = si_do_noflush_read_trylock(sb);
++ au_dbg_locking_si_unreg(sb, 0);
++ if (locked)
++ au_dbg_locked_si_reg(sb, 0);
++ return locked;
++}
++
++static inline int si_noflush_write_trylock(struct super_block *sb)
++{
++ int locked;
++
++ au_dbg_locking_si_reg(sb, 1);
++ locked = si_do_noflush_write_trylock(sb);
++ au_dbg_locking_si_unreg(sb, 1);
++ if (locked)
++ au_dbg_locked_si_reg(sb, 1);
++ return locked;
++}
++
++static inline void si_read_unlock(struct super_block *sb)
++{
++ si_do_read_unlock(sb);
++ au_dbg_locked_si_unreg(sb, 0);
++}
++
++static inline void si_write_unlock(struct super_block *sb)
++{
++ si_do_write_unlock(sb);
++ au_dbg_locked_si_unreg(sb, 1);
++}
++
++static inline void si_downgrade_lock(struct super_block *sb)
++{
++ si_do_downgrade_lock(sb);
++}
++
++static inline void si_read_lock(struct super_block *sb, int flags)
++{
++ if (/* !au_test_nfsd(current) && */au_ftest_lock(flags, FLUSH))
++ au_nwt_flush(&au_sbi(sb)->si_nowait);
++ si_noflush_read_lock(sb);
++}
++
++static inline void si_write_lock(struct super_block *sb)
++{
++ //WARN_ON(au_test_nfsd(current));
++ au_nwt_flush(&au_sbi(sb)->si_nowait);
++ si_noflush_write_lock(sb);
++}
++
++static inline int si_read_trylock(struct super_block *sb, int flags)
++{
++ if (/* !au_test_nfsd(current) && */au_ftest_lock(flags, FLUSH))
++ au_nwt_flush(&au_sbi(sb)->si_nowait);
++ return si_noflush_read_trylock(sb);
++}
++
++static inline int si_write_trylock(struct super_block *sb, int flags)
++{
++ if (/* !au_test_nfsd(current) && */au_ftest_lock(flags, FLUSH))
++ au_nwt_flush(&au_sbi(sb)->si_nowait);
++ return si_noflush_write_trylock(sb);
++}
++
++/* to debug easier, do not make them inlined functions */
++#define SiMustReadLock(sb) AuRwMustReadLock(&au_sbi(sb)->si_rwsem)
++#define SiMustWriteLock(sb) AuRwMustWriteLock(&au_sbi(sb)->si_rwsem)
++#define SiMustAnyLock(sb) AuRwMustAnyLock(&au_sbi(sb)->si_rwsem)
++
++/* ---------------------------------------------------------------------- */
++
++static inline aufs_bindex_t au_sbend(struct super_block *sb)
++{
++ SiMustAnyLock(sb);
++ return au_sbi(sb)->si_bend;
++}
++
++static inline unsigned int au_mntflags(struct super_block *sb)
++{
++ SiMustAnyLock(sb);
++ return au_sbi(sb)->si_mntflags;
++}
++
++static inline au_gen_t au_sigen(struct super_block *sb)
++{
++ SiMustAnyLock(sb);
++ return au_sbi(sb)->si_generation;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/* limited support before 2.6.18 */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
++static inline void au_mntget(struct super_block *sb)
++{
++ mntget(au_sbi(sb)->si_mnt);
++}
++
++static inline void au_mntput(struct super_block *sb)
++{
++ mntput(au_sbi(sb)->si_mnt);
++}
++#else
++static inline void au_mntget(struct super_block *sb)
++{
++ /* empty */
++}
++
++static inline void au_mntput(struct super_block *sb)
++{
++ /* empty */
++}
++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18) */
++
++#endif /* __KERNEL__ */
++#endif /* __AUFS_SUPER_H__ */
+diff --git a/fs/aufs/sysaufs.c b/fs/aufs/sysaufs.c
+new file mode 100644
+index 0000000..422c7e5
+--- /dev/null
++++ b/fs/aufs/sysaufs.c
+@@ -0,0 +1,752 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * sysfs interface
++ *
++ * $Id: sysaufs.c,v 1.46 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include <linux/fs.h>
++#include <linux/module.h>
++#include <linux/seq_file.h>
++#include <linux/sysfs.h>
++#include "aufs.h"
++
++/* ---------------------------------------------------------------------- */
++
++/* super_blocks list is not exported */
++DEFINE_MUTEX(au_sbilist_mtx);
++LIST_HEAD(au_sbilist);
++
++static decl_subsys(aufs, NULL, NULL);
++enum {
++ Sbi, Stat, Config,
++#ifdef CONFIG_AUFS_DEBUG
++ Debug,
++#endif
++ _Last
++};
++
++static ssize_t config_show(au_subsys_t *subsys, char *buf)
++{
++ //struct kset *kset = &au_subsys_to_kset(*subsys);
++#define conf_bool(name) "CONFIG_AUFS_" #name "=y\n"
++ static const char opt[] =
++#ifdef CONFIG_AUFS
++ "CONFIG_AUFS=y\n"
++#else
++ "CONFIG_AUFS=m\n"
++#endif
++#ifdef CONFIG_AUFS_BRANCH_MAX_127
++ conf_bool(BRANCH_MAX_127)
++#elif defined(CONFIG_AUFS_BRANCH_MAX_511)
++ conf_bool(BRANCH_MAX_511)
++#elif defined(CONFIG_AUFS_BRANCH_MAX_1023)
++ conf_bool(BRANCH_MAX_1023)
++#elif defined(CONFIG_AUFS_BRANCH_MAX_32767)
++ conf_bool(BRANCH_MAX_32767)
++#endif
++ conf_bool(SYSAUFS)
++#ifdef CONFIG_AUFS_HINOTIFY
++ conf_bool(HINOTIFY)
++#endif
++#ifdef CONFIG_AUFS_EXPORT
++ conf_bool(EXPORT)
++#endif
++#ifdef CONFIG_AUFS_INO_T_64
++ conf_bool(INO_T_64)
++#endif
++#ifdef CONFIG_AUFS_ROBR
++ conf_bool(ROBR)
++#endif
++#ifdef CONFIG_AUFS_DLGT
++ conf_bool(DLGT)
++#endif
++#ifdef CONFIG_AUFS_HIN_OR_DLGT
++ conf_bool(HIN_OR_DLGT)
++#endif
++#ifdef CONFIG_AUFS_SHWH
++ conf_bool(SHWH)
++#endif
++#ifdef CONFIG_AUFS_RR_SQUASHFS
++ conf_bool(RR_SQUASHFS)
++#endif
++#ifdef CONFIG_AUFS_SEC_PERM_PATCH
++ conf_bool(SEC_PERM_PATCH)
++#endif
++#ifdef CONFIG_AUFS_SPLICE_PATCH
++ conf_bool(SPLICE_PATCH)
++#endif
++#ifdef CONFIG_AUFS_LHASH_PATCH
++ conf_bool(LHASH_PATCH)
++#endif
++#ifdef CONFIG_AUFS_PUT_FILP_PATCH
++ conf_bool(PUT_FILP_PATCH)
++#endif
++#ifdef CONFIG_AUFS_BR_NFS
++ conf_bool(BR_NFS)
++#endif
++#ifdef CONFIG_AUFS_BR_NFS_V4
++ conf_bool(BR_NFS_V4)
++#endif
++#ifdef CONFIG_AUFS_BR_XFS
++ conf_bool(BR_XFS)
++#endif
++#ifdef CONFIG_AUFS_FSYNC_SUPER_PATCH
++ conf_bool(FSYNC_SUPER_PATCH)
++#endif
++#ifdef CONFIG_AUFS_DENY_WRITE_ACCESS_PATCH
++ conf_bool(DENY_WRITE_ACCESS_PATCH)
++#endif
++#ifdef CONFIG_AUFS_KSIZE_PATCH
++ conf_bool(KSIZE_PATCH)
++#endif
++#ifdef CONFIG_AUFS_WORKAROUND_FUSE
++ conf_bool(WORKAROUND_FUSE)
++#endif
++#ifdef CONFIG_AUFS_GETATTR
++ conf_bool(GETATTR)
++#endif
++#ifdef CONFIG_AUFS_DEBUG
++ conf_bool(DEBUG)
++#endif
++#ifdef CONFIG_AUFS_MAGIC_SYSRQ
++ conf_bool(MAGIC_SYSRQ)
++#endif
++#ifdef CONFIG_AUFS_DEBUG_LOCK
++ conf_bool(DEBUG_LOCK)
++#endif
++#ifdef CONFIG_AUFS_COMPAT
++ conf_bool(COMPAT)
++#endif
++#ifdef CONFIG_AUFS_UNIONFS23_PATCH
++ conf_bool(UNIONFS23_PATCH)
++#endif
++ ;
++#undef conf_bool
++
++ char *p = buf;
++ const char *end = buf + PAGE_SIZE;
++
++ p += snprintf(p, end - p, "%s", opt);
++#ifdef DbgUdbaRace
++ if (p < end)
++ p += snprintf(p, end - p, "DbgUdbaRace=%d\n", DbgUdbaRace);
++#endif
++ if (p < end)
++ return p - buf;
++ else
++ return -EFBIG;
++}
++
++static ssize_t stat_show(au_subsys_t *subsys, char *buf)
++{
++ //struct kset *kset = &au_subsys_to_kset(*subsys);
++ char *p = buf;
++ const char *end = buf + PAGE_SIZE;
++ int i;
++
++ p += snprintf(p, end - p, "wkq max_busy:");
++ for (i = 0; p < end && i < aufs_nwkq; i++)
++ p += snprintf(p, end - p, " %u", atomic_read(&au_wkq[i].max_busy));
++ if (p < end)
++ p += snprintf(p, end - p, ", %u(generic)\n",
++ atomic_read(&au_wkq[aufs_nwkq].max_busy));
++
++ if (p < end)
++ return p - buf;
++ else
++ return -EFBIG;
++}
++
++static ssize_t sbi_show(au_subsys_t *subsys, char *buf)
++{
++ //struct kset *kset = &au_subsys_to_kset(*subsys);
++ char *p = buf;
++ const char *end = buf + PAGE_SIZE;
++ struct au_sbinfo *sbinfo;
++
++ /* this order is important */
++ mutex_lock(&au_sbilist_mtx);
++ list_for_each_entry(sbinfo, &au_sbilist, si_list)
++ if (p < end)
++ p += snprintf(p, end - p, "%p\n", sbinfo);
++ mutex_unlock(&au_sbilist_mtx);
++
++ if (p < end)
++ return p - buf;
++ else
++ return -EFBIG;
++}
++
++#ifdef CONFIG_AUFS_DEBUG
++static ssize_t debug_show(au_subsys_t *subsys, char *buf)
++{
++ //struct kset *kset = &au_subsys_to_kset(*subsys);
++ return sprintf(buf, "%d\n", au_debug_test());
++}
++
++static ssize_t debug_store(au_subsys_t *subsys, const char *buf, size_t sz)
++{
++ //struct kset *kset = &au_subsys_to_kset(*subsys);
++
++ LKTRTrace("%.*s\n", (unsigned int)sz, buf);
++
++ if (unlikely(!sz || (*buf != '0' && *buf != '1')))
++ return -EOPNOTSUPP;
++
++ if (*buf == '0')
++ au_debug_off();
++ else if (*buf == '1')
++ au_debug_on();
++ return sz;
++}
++#endif
++
++static struct subsys_attribute sysaufs_entry[] = {
++ [Config] = __ATTR_RO(config),
++ [Stat] = __ATTR_RO(stat),
++ [Sbi] = __ATTR_RO(sbi),
++#ifdef CONFIG_AUFS_DEBUG
++ [Debug] = __ATTR(debug, S_IRUGO | S_IWUSR, debug_show,
++ debug_store)
++#endif
++};
++static struct attribute *sysaufs_attr[_Last + 1]; /* last NULL */
++static struct attribute_group sysaufs_attr_group = {
++ .attrs = sysaufs_attr,
++};
++
++/* ---------------------------------------------------------------------- */
++
++typedef int (*sysaufs_sbi_sub_show_t)(struct seq_file *seq,
++ struct super_block *sb);
++
++static int sysaufs_sbi_xi(struct seq_file *seq, struct file *xf, int dlgt,
++ int print_path)
++{
++ int err;
++ struct kstat st;
++
++ err = vfsub_getattr(xf->f_vfsmnt, xf->f_dentry, &st, dlgt);
++ if (!err) {
++ seq_printf(seq, "%llux%lu %lld",
++ st.blocks, st.blksize, (long long)st.size);
++ if (print_path) {
++ seq_putc(seq, ' ');
++ seq_path(seq, xf->f_vfsmnt, xf->f_dentry, au_esc_chars);
++ }
++ seq_putc(seq, '\n');
++ } else
++ seq_printf(seq, "err %d\n", err);
++
++ AuTraceErr(err);
++ return err;
++}
++
++static int sysaufs_sbi_xino(struct seq_file *seq, struct super_block *sb)
++{
++ int err;
++ unsigned int mnt_flags;
++ unsigned char dlgt, xinodir;
++ aufs_bindex_t bend, bindex;
++ struct kstat st;
++ struct au_sbinfo *sbinfo;
++ struct file *xf;
++
++ AuTraceEnter();
++
++ sbinfo = au_sbi(sb);
++ mnt_flags = au_mntflags(sb);
++ xinodir = !!au_opt_test(mnt_flags, XINODIR);
++ if (!au_opt_test(mnt_flags, XINO)) {
++#ifdef CONFIG_AUFS_DEBUG
++ AuDebugOn(sbinfo->si_xib);
++ bend = au_sbend(sb);
++ for (bindex = 0; bindex <= bend; bindex++)
++ AuDebugOn(au_sbr(sb, bindex)->br_xino.xi_file);
++#endif
++ err = 0;
++ goto out; /* success */
++ }
++
++ dlgt = !!au_test_dlgt(mnt_flags);
++ err = sysaufs_sbi_xi(seq, sbinfo->si_xib, dlgt, xinodir);
++
++ bend = au_sbend(sb);
++ for (bindex = 0; !err && bindex <= bend; bindex++) {
++ xf = au_sbr(sb, bindex)->br_xino.xi_file;
++ if (!xf)
++ continue;
++ seq_printf(seq, "%d: ", bindex);
++ err = vfsub_getattr(xf->f_vfsmnt, xf->f_dentry, &st, dlgt);
++ if (!err)
++ seq_printf(seq, "%d, %Lux%lu %Ld\n",
++ file_count(xf), st.blocks, st.blksize,
++ (long long)st.size);
++ else
++ seq_printf(seq, "err %d\n", err);
++ }
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++#ifdef CONFIG_AUFS_EXPORT
++static int sysaufs_sbi_xigen(struct seq_file *seq, struct super_block *sb)
++{
++ int err;
++ unsigned int mnt_flags;
++ struct au_sbinfo *sbinfo;
++
++ AuTraceEnter();
++
++ err = 0;
++ sbinfo = au_sbi(sb);
++ mnt_flags = au_mntflags(sb);
++ if (au_opt_test_xino(mnt_flags))
++ err = sysaufs_sbi_xi(seq, sbinfo->si_xigen,
++ !!au_opt_test(mnt_flags, DLGT),
++ !!au_opt_test(mnt_flags, XINODIR));
++
++ AuTraceErr(err);
++ return err;
++}
++#endif
++
++static int sysaufs_sbi_mntpnt1(struct seq_file *seq, struct super_block *sb)
++{
++ AuTraceEnter();
++
++ seq_path(seq, au_sbi(sb)->si_mnt, sb->s_root, au_esc_chars);
++ seq_putc(seq, '\n');
++
++ return 0;
++}
++
++#define SysaufsBr_PREFIX "br"
++static int sysaufs_sbi_br(struct seq_file *seq, struct super_block *sb,
++ aufs_bindex_t bindex)
++{
++ int err;
++ struct dentry *root;
++ struct au_branch *br;
++
++ LKTRTrace("b%d\n", bindex);
++
++ err = -ENOENT;
++ if (unlikely(au_sbend(sb) < bindex))
++ goto out;
++
++ err = 0;
++ root = sb->s_root;
++ di_read_lock_parent(root, !AuLock_IR);
++ br = au_sbr(sb, bindex);
++ seq_path(seq, br->br_mnt, au_h_dptr(root, bindex), au_esc_chars);
++ di_read_unlock(root, !AuLock_IR);
++ seq_printf(seq, "=%s\n", au_optstr_br_perm(br->br_perm));
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++static struct sysaufs_sbi_entry {
++ char *name;
++ sysaufs_sbi_sub_show_t show;
++} sysaufs_sbi_entry[SysaufsSb_Last] = {
++ [SysaufsSb_XINO] = {
++ .name = "xino",
++ .show = sysaufs_sbi_xino
++ },
++#ifdef CONFIG_AUFS_EXPORT
++ [SysaufsSb_XIGEN] = {
++ .name = "xigen",
++ .show = sysaufs_sbi_xigen
++ },
++#endif
++ [SysaufsSb_MNTPNT1] = {
++ .name = "mntpnt1",
++ .show = sysaufs_sbi_mntpnt1
++ }
++};
++
++static struct super_block *find_sb_lock(struct kobject *kobj)
++{
++ struct super_block *sb;
++ struct au_sbinfo *sbinfo;
++
++ AuTraceEnter();
++ MtxMustLock(&au_sbilist_mtx);
++
++ sb = NULL;
++ list_for_each_entry(sbinfo, &au_sbilist, si_list) {
++ if (&au_subsys_to_kset(sbinfo->si_sa->subsys).kobj != kobj)
++ continue;
++ sb = sbinfo->si_mnt->mnt_sb;
++ si_read_lock(sb, !AuLock_FLUSH);
++ break;
++ }
++ return sb;
++}
++
++static struct seq_file *au_seq(char *p, ssize_t len)
++{
++ struct seq_file *seq;
++
++ seq = kzalloc(sizeof(*seq), GFP_NOFS);
++ if (seq) {
++ //mutex_init(&seq.lock);
++ seq->buf = p;
++ seq->count = 0;
++ seq->size = len;
++ return seq; /* success */
++ }
++
++ seq = ERR_PTR(-ENOMEM);
++ AuTraceErrPtr(seq);
++ return seq;
++}
++
++//todo: file size may exceed PAGE_SIZE
++static ssize_t sysaufs_sbi_show(struct kobject *kobj, struct attribute *attr,
++ char *buf)
++{
++ ssize_t err;
++ struct super_block *sb;
++ struct seq_file *seq;
++ char *name;
++ int i;
++
++ LKTRTrace("%s/%s\n", kobject_name(kobj), attr->name);
++
++ err = -ENOENT;
++ mutex_lock(&au_sbilist_mtx);
++ sb = find_sb_lock(kobj);
++ if (unlikely(!sb))
++ goto out;
++
++ seq = au_seq(buf, PAGE_SIZE);
++ err = PTR_ERR(seq);
++ if (IS_ERR(seq))
++ goto out;
++
++ name = (void *)attr->name;
++ for (i = 0; i < SysaufsSb_Last; i++) {
++ if (!strcmp(name, sysaufs_sbi_entry[i].name)) {
++ err = sysaufs_sbi_entry[i].show(seq, sb);
++ goto out_seq;
++ }
++ }
++
++ if (!strncmp(name, SysaufsBr_PREFIX, sizeof(SysaufsBr_PREFIX) - 1)) {
++ name += sizeof(SysaufsBr_PREFIX) - 1;
++ err = sysaufs_sbi_br(seq, sb, simple_strtol(name, NULL, 10));
++ goto out_seq;
++ }
++ BUG();
++
++ out_seq:
++ if (!err) {
++ err = seq->count;
++ /* sysfs limit */
++ if (unlikely(err == PAGE_SIZE))
++ err = -EFBIG;
++ }
++ kfree(seq);
++ out:
++ si_read_unlock(sb);
++ mutex_unlock(&au_sbilist_mtx);
++ AuTraceErr(err);
++ return err;
++}
++
++static struct sysfs_ops sysaufs_sbi_ops = {
++ .show = sysaufs_sbi_show
++};
++
++static struct kobj_type sysaufs_sbi_ktype = {
++ //.release = dir_release,
++ .sysfs_ops = &sysaufs_sbi_ops
++};
++
++/* ---------------------------------------------------------------------- */
++
++static void sysaufs_br_free(struct kref *ref)
++{
++ AuTraceEnter();
++ //AuDbg("here\n");
++ kfree(container_of(ref, struct sysaufs_br, ref));
++}
++
++struct sysaufs_br *sysaufs_br_alloc(void)
++{
++ struct sysaufs_br *sabr;
++
++ AuTraceEnter();
++ //AuDbg("here\n");
++
++ sabr = kcalloc(sizeof(*sabr), 1, GFP_NOFS);
++ if (sabr)
++ kref_init(&sabr->ref);
++
++ AuTraceErrPtr(sabr);
++ return sabr;
++}
++
++void sysaufs_br_get(struct au_branch *br)
++{
++ kref_get(&br->br_sabr->ref);
++}
++
++void sysaufs_br_put(struct au_branch *br)
++{
++ kref_put(&br->br_sabr->ref, sysaufs_br_free);
++}
++
++//todo: they may take a long time
++void sysaufs_brs_del(struct super_block *sb)
++{
++ aufs_bindex_t bindex, bend;
++ struct sysaufs_sbinfo *sa;
++ struct sysaufs_br *sabr;
++ struct au_branch *br;
++
++ AuTraceEnter();
++
++ sa = au_sbi(sb)->si_sa;
++ if (!sysaufs_brs || !sa->added)
++ return;
++
++ bend = au_sbend(sb);
++ for (bindex = 0; bindex <= bend; bindex++) {
++ br = au_sbr(sb, bindex);
++ sabr = br->br_sabr;
++ if (unlikely(!sabr->added))
++ continue;
++
++ sabr->added = 0;
++ sysfs_remove_file(&au_subsys_to_kset(sa->subsys).kobj,
++ &sabr->attr);
++ sysaufs_br_put(br);
++ /* for older sysfs */
++ module_put(THIS_MODULE);
++ }
++}
++
++void sysaufs_brs_add(struct super_block *sb)
++{
++ int err;
++ aufs_bindex_t bindex, bend;
++ struct sysaufs_br *sabr;
++ struct sysaufs_sbinfo *sa;
++ struct au_branch *br;
++
++ AuTraceEnter();
++
++ sa = au_sbi(sb)->si_sa;
++ if (!sysaufs_brs || !sa->added)
++ return;
++
++ bend = au_sbend(sb);
++ for (bindex = 0; bindex <= bend; bindex++) {
++ br = au_sbr(sb, bindex);
++ sysaufs_br_get(br);
++ sabr = br->br_sabr;
++ AuDebugOn(sabr->added);
++ snprintf(sabr->name, sizeof(sabr->name),
++ SysaufsBr_PREFIX "%d", bindex);
++ sabr->attr.name = sabr->name;
++ sabr->attr.mode = 0444;
++ sabr->attr.owner = THIS_MODULE;
++ /* for older sysfs */
++ BUG_ON(!try_module_get(THIS_MODULE));
++ err = sysfs_create_file(&au_subsys_to_kset(sa->subsys).kobj,
++ &sabr->attr);
++ if (!err)
++ sabr->added = 1;
++ else
++ AuWarn("failed %s under sysfs(%d)\n", sabr->name, err);
++ }
++}
++
++/* ---------------------------------------------------------------------- */
++
++static void sysaufs_sbi_free(struct kref *ref)
++{
++ AuTraceEnter();
++ //AuDbg("here\n");
++ kfree(container_of(ref, struct sysaufs_sbinfo, ref));
++}
++
++int sysaufs_si_init(struct au_sbinfo *sbinfo)
++{
++ sbinfo->si_sa = kcalloc(sizeof(*sbinfo->si_sa), 1, GFP_NOFS);
++ if (sbinfo->si_sa) {
++ kref_init(&sbinfo->si_sa->ref);
++ return 0;
++ }
++ AuTraceErr(-ENOMEM);
++ return -ENOMEM;
++}
++
++void sysaufs_sbi_get(struct super_block *sb)
++{
++ kref_get(&au_sbi(sb)->si_sa->ref);
++}
++
++void sysaufs_sbi_put(struct super_block *sb)
++{
++ kref_put(&au_sbi(sb)->si_sa->ref, sysaufs_sbi_free);
++}
++
++void sysaufs_sbi_add(struct super_block *sb)
++{
++ int err, i;
++ const char *name;
++ struct au_sbinfo *sbinfo = au_sbi(sb);
++ struct sysaufs_sbinfo *sa = sbinfo->si_sa;
++
++ AuTraceEnter();
++ MtxMustLock(&au_sbilist_mtx);
++
++ err = kobject_set_name(&au_subsys_to_kset(sa->subsys).kobj,
++ "sbi_%p", sbinfo);
++ if (unlikely(err))
++ goto out;
++ name = kobject_name(&au_subsys_to_kset(sa->subsys).kobj);
++ subsys_get(&aufs_subsys);
++ kobj_set_kset_s(&au_subsys_to_kset(sa->subsys), aufs_subsys);
++ //au_subsys_to_kset(sa->subsys).kobj.ktype = &sysaufs_ktype;
++ err = subsystem_register(&sa->subsys);
++ if (unlikely(err))
++ goto out_put;
++#if 1
++ if (au_subsys_to_kset(sa->subsys).kobj.ktype)
++ sysaufs_sbi_ktype = *(au_subsys_to_kset(sa->subsys).kobj.ktype);
++ sysaufs_sbi_ktype.sysfs_ops = &sysaufs_sbi_ops;
++ au_subsys_to_kset(sa->subsys).kobj.ktype = &sysaufs_sbi_ktype;
++#endif
++
++ for (i = 0; i < SysaufsSb_Last; i++) {
++ sa->attr[i].name = sysaufs_sbi_entry[i].name;
++ sa->attr[i].mode = S_IRUGO;
++ sa->attr[i].owner = THIS_MODULE;
++ /* for older sysfs */
++ BUG_ON(!try_module_get(THIS_MODULE));
++ err = sysfs_create_file(&au_subsys_to_kset(sa->subsys).kobj,
++ sa->attr + i);
++ if (unlikely(err))
++ goto out_reg;
++ }
++
++ /* compatibility for some aufs scripts */
++ strcpy(sa->compat_name, "si_");
++ strcat(sa->compat_name, name + 4);
++ err = sysfs_create_link(&au_subsys_to_kset(aufs_subsys).kobj,
++ &au_subsys_to_kset(sa->subsys).kobj,
++ sa->compat_name);
++ if (unlikely(err)) {
++ AuWarn("failed adding %s for compatibility(%d), ignored.\n",
++ sa->compat_name, err);
++ err = 0;
++ }
++
++ sa->added = 1;
++ sysaufs_brs_add(sb);
++ goto out; /* success */
++
++ out_reg:
++ for (; i >= 0; i--) {
++ sysfs_remove_file(&au_subsys_to_kset(sa->subsys).kobj,
++ sa->attr + i);
++ /* for older sysfs */
++ module_put(THIS_MODULE);
++ }
++ subsystem_unregister(&sa->subsys);
++ out_put:
++ subsys_put(&aufs_subsys);
++ out:
++ if (!err)
++ sysaufs_sbi_get(sb);
++ else
++ AuWarn("failed adding sysfs (%d)\n", err);
++}
++
++void sysaufs_sbi_del(struct super_block *sb)
++{
++ struct au_sbinfo *sbinfo = au_sbi(sb);
++ struct sysaufs_sbinfo *sa = sbinfo->si_sa;
++ int i;
++
++ AuTraceEnter();
++ MtxMustLock(&au_sbilist_mtx);
++
++ sysaufs_brs_del(sb);
++ for (i = 0; i < SysaufsSb_Last; i++) {
++ sysfs_remove_file(&au_subsys_to_kset(sa->subsys).kobj,
++ sa->attr + i);
++ /* for older sysfs */
++ module_put(THIS_MODULE);
++ }
++ sa->added = 0;
++ sysfs_remove_link(&au_subsys_to_kset(aufs_subsys).kobj,
++ sa->compat_name);
++ subsystem_unregister(&sa->subsys);
++ subsys_put(&aufs_subsys);
++ sysaufs_sbi_put(sb);
++}
++
++/* ---------------------------------------------------------------------- */
++
++int __init sysaufs_init(void)
++{
++ int err, i;
++
++ for (i = 0; i < _Last; i++)
++ sysaufs_attr[i] = &sysaufs_entry[i].attr;
++
++ subsys_get(&fs_subsys);
++ kobj_set_kset_s(&au_subsys_to_kset(aufs_subsys), fs_subsys);
++ err = subsystem_register(&aufs_subsys);
++ if (unlikely(err))
++ goto out_put;
++ err = sysfs_create_group(&au_subsys_to_kset(aufs_subsys).kobj,
++ &sysaufs_attr_group);
++ if (!err)
++ return err; /* success */
++
++ subsystem_unregister(&aufs_subsys);
++ out_put:
++ subsys_put(&fs_subsys);
++ AuTraceErr(err);
++ return err;
++}
++
++void sysaufs_fin(void)
++{
++ AuDebugOn(!list_empty(&au_sbilist));
++ sysfs_remove_group(&au_subsys_to_kset(aufs_subsys).kobj,
++ &sysaufs_attr_group);
++ subsystem_unregister(&aufs_subsys);
++ subsys_put(&fs_subsys);
++}
+diff --git a/fs/aufs/sysaufs.h b/fs/aufs/sysaufs.h
+new file mode 100644
+index 0000000..ef96716
+--- /dev/null
++++ b/fs/aufs/sysaufs.h
+@@ -0,0 +1,211 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * sysfs interface
++ *
++ * $Id: sysaufs.h,v 1.21 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#ifndef __SYSAUFS_H__
++#define __SYSAUFS_H__
++
++#ifdef __KERNEL__
++
++#include <linux/fs.h>
++#include <linux/sysfs.h>
++#include <linux/version.h>
++
++/* ---------------------------------------------------------------------- */
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22)
++typedef struct kset au_subsys_t;
++#define au_subsys_to_kset(subsys) (subsys)
++#else
++typedef struct subsystem au_subsys_t;
++#define au_subsys_to_kset(subsys) ((subsys).kset)
++#endif
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 24)
++static inline struct kset *subsys_get(struct kset *s)
++{
++ return kset_get(s);
++}
++
++static inline void subsys_put(struct kset *s)
++{
++ kset_put(s);
++}
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++/* entries under sysfs per super block */
++enum {
++ SysaufsSb_XINO,
++#ifdef CONFIG_AUFS_EXPORT
++ SysaufsSb_XIGEN,
++#endif
++ SysaufsSb_MNTPNT1,
++#if 0
++ SysaufsSb_PLINK,
++ SysaufsSb_files,
++#endif
++ SysaufsSb_Last
++};
++
++struct sysaufs_sbinfo {
++#ifdef CONFIG_AUFS_SYSAUFS
++ //todo: try kset directly
++ au_subsys_t subsys;
++ struct attribute attr[SysaufsSb_Last];
++ struct kref ref;
++ int added;
++ char compat_name[32];
++#endif
++};
++
++/* 'brN' entry under sysfs per super block */
++struct sysaufs_br {
++#ifdef CONFIG_AUFS_SYSAUFS
++ char name[8];
++ struct attribute attr;
++ struct kref ref;
++ int added;
++#endif
++};
++
++/* ---------------------------------------------------------------------- */
++
++struct au_branch;
++struct au_sbinfo;
++#ifdef CONFIG_AUFS_SYSAUFS
++extern struct mutex au_sbilist_mtx;
++extern struct list_head au_sbilist;
++
++static inline void au_sbilist_lock(void)
++{
++ mutex_lock(&au_sbilist_mtx);
++}
++
++static inline void au_sbilist_unlock(void)
++{
++ mutex_unlock(&au_sbilist_mtx);
++}
++
++static inline void au_sbilist_del(struct au_sbinfo *sbinfo)
++{
++ list_del(&sbinfo->si_list);
++}
++
++static inline void au_sbilist_add(struct au_sbinfo *sbinfo)
++{
++ /* the order in this list is important */
++ list_add_tail(&sbinfo->si_list, &au_sbilist);
++}
++
++struct sysaufs_br *sysaufs_br_alloc(void);
++void sysaufs_br_get(struct au_branch *br);
++void sysaufs_br_put(struct au_branch *br);
++void sysaufs_brs_add(struct super_block *sb);
++void sysaufs_brs_del(struct super_block *sb);
++int sysaufs_si_init(struct au_sbinfo *sbinfo);
++void sysaufs_sbi_get(struct super_block *sb);
++void sysaufs_sbi_put(struct super_block *sb);
++void sysaufs_sbi_add(struct super_block *sb);
++void sysaufs_sbi_del(struct super_block *sb);
++int __init sysaufs_init(void);
++void sysaufs_fin(void);
++
++#else
++
++#define au_sbilist_lock() do {} while (0)
++#define au_sbilist_unlock() do {} while (0)
++
++static inline void au_sbilist_del(struct au_sbinfo *sbinfo)
++{
++ /* empty */
++}
++
++static inline void au_sbilist_add(struct au_sbinfo *sbinfo)
++{
++ /* empty */
++}
++
++static inline struct sysaufs_br *sysaufs_br_alloc(void)
++{
++ return (void *)-1; //todo: poison
++}
++
++static inline void sysaufs_br_get(struct au_branch *br)
++{
++ /* nothing */
++}
++
++static inline void sysaufs_br_put(struct au_branch *br)
++{
++ /* nothing */
++}
++
++static inline void sysaufs_brs_add(struct super_block *sb)
++{
++ /* nothing */
++}
++
++static inline void sysaufs_brs_del(struct super_block *sb)
++{
++ /* nothing */
++}
++
++static inline int sysaufs_si_init(struct au_sbinfo *sbinfo)
++{
++ return 0;
++}
++
++static inline void sysaufs_sbi_get(struct super_block *sb)
++{
++ /* nothing */
++}
++
++static inline void sysaufs_sbi_put(struct super_block *sb)
++{
++ /* nothing */
++}
++
++static inline void sysaufs_sbi_add(struct super_block *sb)
++{
++ /* nothing */
++}
++
++static inline void sysaufs_sbi_del(struct super_block *sb)
++{
++ /* nothing */
++}
++
++static inline int sysaufs_init(void)
++{
++ sysaufs_brs = 0;
++ return 0;
++}
++
++#define sysaufs_fin() do {} while (0)
++
++#endif /* CONFIG_AUFS_SYSAUFS */
++
++#endif /* __KERNEL__ */
++#endif /* __SYSAUFS_H__ */
+diff --git a/fs/aufs/sysrq.c b/fs/aufs/sysrq.c
+new file mode 100644
+index 0000000..e7d3f53
+--- /dev/null
++++ b/fs/aufs/sysrq.c
+@@ -0,0 +1,296 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * magic sysrq hanlder
++ *
++ * $Id: sysrq.c,v 1.11 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include <linux/fs.h>
++#include <linux/module.h>
++//#include <linux/sysrq.h>
++#include <linux/version.h>
++
++#include "aufs.h"
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18)
++#error mis-configuraion or Makefile
++#elif !defined(pr_warning)
++#define pr_warning(fmt, arg...) printk(KERN_WARNING fmt, ##arg)
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++#ifdef CONFIG_AUFS_DEBUG_LOCK
++struct au_dbg_lock {
++ struct list_head list;
++ union {
++ struct super_block *sb;
++ struct dentry *dentry;
++ struct inode *inode;
++ void *any;
++ };
++ int flags;
++ unsigned int lsc;
++ pid_t pid;
++};
++
++static void au_dbg_reg(struct au_splhead *spl, void *any, int flags,
++ unsigned int lsc)
++{
++ struct au_dbg_lock *p = kmalloc(sizeof(*p), GFP_NOFS);
++
++ if (p) {
++ p->any = any;
++ p->flags = flags;
++ p->lsc = lsc;
++ p->pid = current->pid;
++ spin_lock(&spl->spin);
++ list_add(&p->list, &spl->head);
++ spin_unlock(&spl->spin);
++ }
++ WARN_ON(!p);
++}
++
++static void au_dbg_unreg(struct au_splhead *spl, void *any, int flags)
++{
++ struct au_dbg_lock *p, *tmp, *found;
++ struct list_head *head = &spl->head;
++ const pid_t pid = current->pid;
++
++ found = NULL;
++ spin_lock(&spl->spin);
++ list_for_each_entry_safe(p, tmp, head, list)
++ if (p->any == any && p->pid == pid) {
++ list_del(&p->list);
++ found = p;
++ break;
++ }
++ spin_unlock(&spl->spin);
++ kfree(found);
++ WARN_ON(!found);
++}
++
++/* ---------------------------------------------------------------------- */
++
++void au_dbg_locking_si_reg(struct super_block *sb, int flags)
++{
++ au_dbg_reg(au_sbi(sb)->si_dbg_lock + AuDbgLock_SI_LOCKING, sb, flags,
++ -1);
++}
++
++void au_dbg_locking_si_unreg(struct super_block *sb, int flags)
++{
++ au_dbg_unreg(au_sbi(sb)->si_dbg_lock + AuDbgLock_SI_LOCKING, sb, flags);
++}
++
++void au_dbg_locked_si_reg(struct super_block *sb, int flags)
++{
++ au_dbg_reg(au_sbi(sb)->si_dbg_lock + AuDbgLock_SI_LOCKED, sb, flags,
++ -1);
++}
++
++void au_dbg_locked_si_unreg(struct super_block *sb, int flags)
++{
++ au_dbg_unreg(au_sbi(sb)->si_dbg_lock + AuDbgLock_SI_LOCKED, sb, flags);
++}
++
++void au_dbg_locking_di_reg(struct dentry *d, int flags, unsigned int lsc)
++{
++ au_dbg_reg(au_sbi(d->d_sb)->si_dbg_lock + AuDbgLock_DI_LOCKING, d,
++ flags, lsc);
++}
++
++void au_dbg_locking_di_unreg(struct dentry *d, int flags)
++{
++ au_dbg_unreg(au_sbi(d->d_sb)->si_dbg_lock + AuDbgLock_DI_LOCKING, d,
++ flags);
++}
++
++void au_dbg_locked_di_reg(struct dentry *d, int flags, unsigned int lsc)
++{
++ au_dbg_reg(au_sbi(d->d_sb)->si_dbg_lock + AuDbgLock_DI_LOCKED, d, flags,
++ lsc);
++}
++
++void au_dbg_locked_di_unreg(struct dentry *d, int flags)
++{
++ au_dbg_unreg(au_sbi(d->d_sb)->si_dbg_lock + AuDbgLock_DI_LOCKED, d,
++ flags);
++}
++
++void au_dbg_locking_ii_reg(struct inode *i, int flags, unsigned int lsc)
++{
++ au_dbg_reg(au_sbi(i->i_sb)->si_dbg_lock + AuDbgLock_II_LOCKING, i,
++ flags, lsc);
++}
++
++void au_dbg_locking_ii_unreg(struct inode *i, int flags)
++{
++ au_dbg_unreg(au_sbi(i->i_sb)->si_dbg_lock + AuDbgLock_II_LOCKING, i,
++ flags);
++}
++
++void au_dbg_locked_ii_reg(struct inode *i, int flags, unsigned int lsc)
++{
++ au_dbg_reg(au_sbi(i->i_sb)->si_dbg_lock + AuDbgLock_II_LOCKED, i, flags,
++ lsc);
++}
++
++void au_dbg_locked_ii_unreg(struct inode *i, int flags)
++{
++ au_dbg_unreg(au_sbi(i->i_sb)->si_dbg_lock + AuDbgLock_II_LOCKED, i,
++ flags);
++}
++#endif /* CONFIG_AUFS_DEBUG_LOCK */
++
++/* ---------------------------------------------------------------------- */
++
++static void sysrq_sb(struct super_block *sb)
++{
++ char *plevel;
++ struct inode *i;
++ struct au_sbinfo *sbinfo;
++ struct file *file;
++
++ plevel = au_plevel;
++ au_plevel = KERN_WARNING;
++ au_debug_on();
++
++ sbinfo = au_sbi(sb);
++ pr_warning("si=%p\n", sbinfo);
++ pr_warning(AUFS_NAME ": superblock\n");
++ au_dpri_sb(sb);
++ pr_warning(AUFS_NAME ": root dentry\n");
++ au_dpri_dentry(sb->s_root);
++ pr_warning(AUFS_NAME ": root inode\n");
++ au_dpri_inode(sb->s_root->d_inode);
++ pr_warning(AUFS_NAME ": isolated inode\n");
++ list_for_each_entry(i, &sb->s_inodes, i_sb_list)
++ if (list_empty(&i->i_dentry))
++ au_dpri_inode(i);
++ pr_warning(AUFS_NAME ": files\n");
++ list_for_each_entry(file, &sb->s_files, f_u.fu_list)
++ if (au_test_aufs_file(file))
++ au_dpri_file(file);
++
++#ifdef CONFIG_AUFS_DEBUG_LOCK
++ {
++ struct au_dbg_lock *p;
++ struct list_head *head;
++
++ pr_warning(AUFS_NAME ": locking si\n");
++ head = &sbinfo->si_dbg_lock[AuDbgLock_SI_LOCKING].head;
++ list_for_each_entry(p, head, list)
++ pr_warning("pid: %d, 0x%x\n", p->pid, p->flags);
++ pr_warning(AUFS_NAME ": locked si\n");
++ head = &sbinfo->si_dbg_lock[AuDbgLock_SI_LOCKED].head;
++ list_for_each_entry(p, head, list)
++ pr_warning("pid: %d, 0x%x\n", p->pid, p->flags);
++ pr_warning(AUFS_NAME ": locking di\n");
++ head = &sbinfo->si_dbg_lock[AuDbgLock_DI_LOCKING].head;
++ list_for_each_entry(p, head, list) {
++ pr_warning("pid: %d, 0x%x, %d\n",
++ p->pid, p->flags, p->lsc);
++ au_dpri_dentry(p->dentry);
++ }
++ pr_warning(AUFS_NAME ": locked di\n");
++ head = &sbinfo->si_dbg_lock[AuDbgLock_DI_LOCKED].head;
++ list_for_each_entry(p, head, list) {
++ pr_warning("pid: %d, 0x%x, %d\n",
++ p->pid, p->flags, p->lsc);
++ au_dpri_dentry(p->dentry);
++ }
++ pr_warning(AUFS_NAME ": locking ii\n");
++ head = &sbinfo->si_dbg_lock[AuDbgLock_II_LOCKING].head;
++ list_for_each_entry(p, head, list) {
++ pr_warning("pid: %d, %d\n", p->pid, p->lsc);
++ au_dpri_inode(p->inode);
++ }
++ pr_warning(AUFS_NAME ": locked ii\n");
++ head = &sbinfo->si_dbg_lock[AuDbgLock_II_LOCKED].head;
++ list_for_each_entry(p, head, list) {
++ pr_warning("pid: %d, %d\n", p->pid, p->lsc);
++ au_dpri_inode(p->inode);
++ }
++ }
++#endif
++
++ au_plevel = plevel;
++ au_debug_off();
++}
++
++/* ---------------------------------------------------------------------- */
++
++/* module parameter */
++static char *aufs_sysrq_key = "a";
++module_param_named(sysrq, aufs_sysrq_key, charp, S_IRUGO);
++MODULE_PARM_DESC(sysrq, "MagicSysRq key for " AUFS_NAME);
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19)
++static void au_sysrq(int key, struct tty_struct *tty)
++#else
++static void au_sysrq(int key, struct pt_regs *regs, struct tty_struct *tty)
++#endif
++{
++ struct au_sbinfo *sbinfo;
++
++#if 0
++ if (au_debug_test())
++ au_debug_off();
++ else
++ au_debug_on();
++#endif
++
++ //mutex_lock(&au_sbilist_mtx);
++ list_for_each_entry(sbinfo, &au_sbilist, si_list)
++ sysrq_sb(sbinfo->si_mnt->mnt_sb);
++ //mutex_unlock(&au_sbilist_mtx);
++}
++
++static struct sysrq_key_op au_sysrq_op = {
++ .handler = au_sysrq,
++ .help_msg = "Aufs",
++ .action_msg = "Aufs",
++ .enable_mask = SYSRQ_ENABLE_DUMP //??
++};
++
++/* ---------------------------------------------------------------------- */
++
++int __init au_sysrq_init(void)
++{
++ int err;
++ char key;
++
++ err = -1;
++ key = *aufs_sysrq_key;
++ if ('a' <= key && key <= 'z')
++ err = register_sysrq_key(key, &au_sysrq_op);
++ if (unlikely(err))
++ AuErr("err %d, sysrq=%c\n", err, key);
++ return err;
++}
++
++void au_sysrq_fin(void)
++{
++ int err;
++ err = unregister_sysrq_key(*aufs_sysrq_key, &au_sysrq_op);
++ if (unlikely(err))
++ AuErr("err %d (ignored)\n", err);
++}
+diff --git a/fs/aufs/vdir.c b/fs/aufs/vdir.c
+new file mode 100644
+index 0000000..d3a470e
+--- /dev/null
++++ b/fs/aufs/vdir.c
+@@ -0,0 +1,941 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * virtual or vertical directory
++ *
++ * $Id: vdir.c,v 1.48 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++static int calc_size(int namelen)
++{
++ int sz;
++
++ sz = sizeof(struct au_vdir_de) + namelen;
++ if (sizeof(ino_t) == sizeof(long)) {
++ const int mask = sizeof(ino_t) - 1;
++ if (sz & mask) {
++ sz += sizeof(ino_t);
++ sz &= ~mask;
++ }
++ }
++
++ AuDebugOn(sz % sizeof(ino_t));
++ return sz;
++}
++
++static int set_deblk_end(union au_vdir_deblk_p *p,
++ union au_vdir_deblk_p *deblk_end)
++{
++ if (calc_size(0) <= deblk_end->p - p->p) {
++ p->de->de_str.len = 0;
++ /* smp_mb(); */
++ return 0;
++ }
++ return -1; /* error */
++}
++
++/* returns true or false */
++static int is_deblk_end(union au_vdir_deblk_p *p,
++ union au_vdir_deblk_p *deblk_end)
++{
++ if (calc_size(0) <= deblk_end->p - p->p)
++ return !p->de->de_str.len;
++ return 1;
++}
++
++static au_vdir_deblk_t *last_deblk(struct au_vdir *vdir)
++{
++ return vdir->vd_deblk[vdir->vd_nblk - 1];
++}
++
++void au_nhash_init(struct au_nhash *nhash)
++{
++ int i;
++ for (i = 0; i < AuSize_NHASH; i++)
++ INIT_HLIST_HEAD(nhash->heads + i);
++}
++
++struct au_nhash *au_nhash_new(gfp_t gfp)
++{
++ struct au_nhash *nhash;
++
++ nhash = kmalloc(sizeof(*nhash), gfp);
++ if (nhash) {
++ au_nhash_init(nhash);
++ return nhash;
++ }
++ return ERR_PTR(-ENOMEM);
++}
++
++void au_nhash_del(struct au_nhash *nhash)
++{
++ au_nhash_fin(nhash);
++ kfree(nhash);
++}
++
++void au_nhash_move(struct au_nhash *dst, struct au_nhash *src)
++{
++ int i;
++
++ AuTraceEnter();
++
++ *dst = *src;
++ for (i = 0; i < AuSize_NHASH; i++) {
++ struct hlist_head *h;
++ h = dst->heads + i;
++ if (h->first)
++ h->first->pprev = &h->first;
++ INIT_HLIST_HEAD(src->heads + i);
++ }
++ /* smp_mb(); */
++}
++
++/* ---------------------------------------------------------------------- */
++
++void au_nhash_fin(struct au_nhash *whlist)
++{
++ int i;
++ struct hlist_head *head;
++ struct au_vdir_wh *tpos;
++ struct hlist_node *pos, *n;
++
++ AuTraceEnter();
++
++ for (i = 0; i < AuSize_NHASH; i++) {
++ head = whlist->heads + i;
++ hlist_for_each_entry_safe(tpos, pos, n, head, wh_hash) {
++ /* hlist_del(pos); */
++ kfree(tpos);
++ }
++ }
++}
++
++int au_nhash_test_longer_wh(struct au_nhash *whlist, aufs_bindex_t btgt,
++ int limit)
++{
++ int n, i;
++ struct hlist_head *head;
++ struct au_vdir_wh *tpos;
++ struct hlist_node *pos;
++
++ LKTRTrace("limit %d\n", limit);
++
++ n = 0;
++ for (i = 0; i < AuSize_NHASH; i++) {
++ head = whlist->heads + i;
++ hlist_for_each_entry(tpos, pos, head, wh_hash)
++ if (tpos->wh_bindex == btgt && ++n > limit)
++ return 1;
++ }
++ return 0;
++}
++
++static unsigned int au_name_hash(const unsigned char *name, unsigned int len)
++{
++ return full_name_hash(name, len) % AuSize_NHASH;
++}
++
++/* returns found(true) or not */
++int au_nhash_test_known_wh(struct au_nhash *whlist, char *name, int namelen)
++{
++ struct hlist_head *head;
++ struct au_vdir_wh *tpos;
++ struct hlist_node *pos;
++ struct au_vdir_destr *str;
++
++ LKTRTrace("%.*s\n", namelen, name);
++
++ head = whlist->heads + au_name_hash(name, namelen);
++ hlist_for_each_entry(tpos, pos, head, wh_hash) {
++ str = &tpos->wh_str;
++ LKTRTrace("%.*s\n", str->len, str->name);
++ if (str->len == namelen && !memcmp(str->name, name, namelen))
++ return 1;
++ }
++ return 0;
++}
++
++int au_nhash_append_wh(struct au_nhash *whlist, char *name, int namelen,
++ ino_t ino, unsigned int d_type, aufs_bindex_t bindex,
++ unsigned char shwh)
++{
++ int err;
++ struct au_vdir_destr *str;
++ struct au_vdir_wh *wh;
++
++ LKTRTrace("%.*s\n", namelen, name);
++
++ err = -ENOMEM;
++ wh = kmalloc(sizeof(*wh) + namelen, GFP_NOFS);
++ if (unlikely(!wh))
++ goto out;
++ err = 0;
++ wh->wh_bindex = bindex;
++ if (shwh)
++ au_shwh_init_wh(wh, ino, d_type);
++ str = &wh->wh_str;
++ str->len = namelen;
++ memcpy(str->name, name, namelen);
++ hlist_add_head(&wh->wh_hash,
++ whlist->heads + au_name_hash(name, namelen));
++ /* smp_mb(); */
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++void au_vdir_free(struct au_vdir *vdir)
++{
++ au_vdir_deblk_t **deblk;
++
++ AuTraceEnter();
++
++ deblk = vdir->vd_deblk;
++ while (vdir->vd_nblk--) {
++ kfree(*deblk);
++ deblk++;
++ }
++ kfree(vdir->vd_deblk);
++ au_cache_free_vdir(vdir);
++}
++
++static int append_deblk(struct au_vdir *vdir)
++{
++ int err, sz, i;
++ au_vdir_deblk_t **o;
++ union au_vdir_deblk_p p, deblk_end;
++
++ AuTraceEnter();
++
++ err = -ENOMEM;
++ sz = sizeof(*o) * vdir->vd_nblk;
++ o = au_kzrealloc(vdir->vd_deblk, sz, sz + sizeof(*o), GFP_NOFS);
++ if (unlikely(!o))
++ goto out;
++ vdir->vd_deblk = o;
++ p.deblk = kmalloc(sizeof(*p.deblk), GFP_NOFS);
++ if (p.deblk) {
++ i = vdir->vd_nblk++;
++ vdir->vd_deblk[i] = p.deblk;
++ vdir->vd_last.i = i;
++ vdir->vd_last.p.p = p.p;
++ deblk_end.deblk = p.deblk + 1;
++ err = set_deblk_end(&p, &deblk_end);
++ AuDebugOn(err);
++ }
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++static struct au_vdir *alloc_vdir(void)
++{
++ struct au_vdir *vdir;
++ int err;
++
++ AuTraceEnter();
++
++ err = -ENOMEM;
++ vdir = au_cache_alloc_vdir();
++ if (unlikely(!vdir))
++ goto out;
++ vdir->vd_deblk = kzalloc(sizeof(*vdir->vd_deblk), GFP_NOFS);
++ if (unlikely(!vdir->vd_deblk))
++ goto out_free;
++
++ vdir->vd_nblk = 0;
++ vdir->vd_version = 0;
++ vdir->vd_jiffy = 0;
++ err = append_deblk(vdir);
++ if (!err)
++ return vdir; /* success */
++
++ kfree(vdir->vd_deblk);
++
++ out_free:
++ au_cache_free_vdir(vdir);
++ out:
++ vdir = ERR_PTR(err);
++ AuTraceErrPtr(vdir);
++ return vdir;
++}
++
++static int reinit_vdir(struct au_vdir *vdir)
++{
++ int err;
++ union au_vdir_deblk_p p, deblk_end;
++
++ AuTraceEnter();
++
++ while (vdir->vd_nblk > 1) {
++ kfree(vdir->vd_deblk[vdir->vd_nblk - 1]);
++ vdir->vd_deblk[vdir->vd_nblk - 1] = NULL;
++ vdir->vd_nblk--;
++ }
++ p.deblk = vdir->vd_deblk[0];
++ deblk_end.deblk = p.deblk + 1;
++ err = set_deblk_end(&p, &deblk_end);
++ AuDebugOn(err);
++ vdir->vd_version = 0;
++ vdir->vd_jiffy = 0;
++ vdir->vd_last.i = 0;
++ vdir->vd_last.p.deblk = vdir->vd_deblk[0];
++ /* smp_mb(); */
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++static void free_dehlist(struct au_nhash *dehlist)
++{
++ int i;
++ struct hlist_head *head;
++ struct au_vdir_dehstr *tpos;
++ struct hlist_node *pos, *n;
++
++ AuTraceEnter();
++
++ for (i = 0; i < AuSize_NHASH; i++) {
++ head = dehlist->heads + i;
++ hlist_for_each_entry_safe(tpos, pos, n, head, hash) {
++ /* hlist_del(pos); */
++ au_cache_free_dehstr(tpos);
++ }
++ }
++}
++
++/* returns found(true) or not */
++static int test_known(struct au_nhash *delist, char *name, int namelen)
++{
++ struct hlist_head *head;
++ struct au_vdir_dehstr *tpos;
++ struct hlist_node *pos;
++ struct au_vdir_destr *str;
++
++ LKTRTrace("%.*s\n", namelen, name);
++
++ head = delist->heads + au_name_hash(name, namelen);
++ hlist_for_each_entry(tpos, pos, head, hash) {
++ str = tpos->str;
++ LKTRTrace("%.*s\n", str->len, str->name);
++ if (str->len == namelen && !memcmp(str->name, name, namelen))
++ return 1;
++ }
++ return 0;
++
++}
++
++static int append_de(struct au_vdir *vdir, char *name, int namelen, ino_t ino,
++ unsigned int d_type, struct au_nhash *delist)
++{
++ int err, sz;
++ union au_vdir_deblk_p p, *room, deblk_end;
++ struct au_vdir_dehstr *dehstr;
++
++ LKTRTrace("%.*s %d, i%lu, dt%u\n",
++ namelen, name, namelen, (unsigned long)ino, d_type);
++
++ p.deblk = last_deblk(vdir);
++ deblk_end.deblk = p.deblk + 1;
++ room = &vdir->vd_last.p;
++ AuDebugOn(room->p < p.p || deblk_end.p <= room->p
++ || !is_deblk_end(room, &deblk_end));
++
++ sz = calc_size(namelen);
++ if (unlikely(sz > deblk_end.p - room->p)) {
++ err = append_deblk(vdir);
++ if (unlikely(err))
++ goto out;
++ p.deblk = last_deblk(vdir);
++ deblk_end.deblk = p.deblk + 1;
++ /* smp_mb(); */
++ AuDebugOn(room->p != p.p);
++ }
++
++ err = -ENOMEM;
++ dehstr = au_cache_alloc_dehstr();
++ if (unlikely(!dehstr))
++ goto out;
++ dehstr->str = &room->de->de_str;
++ hlist_add_head(&dehstr->hash,
++ delist->heads + au_name_hash(name, namelen));
++
++ room->de->de_ino = ino;
++ room->de->de_type = d_type;
++ room->de->de_str.len = namelen;
++ memcpy(room->de->de_str.name, name, namelen);
++
++ err = 0;
++ room->p += sz;
++ if (unlikely(set_deblk_end(room, &deblk_end)))
++ err = append_deblk(vdir);
++ /* smp_mb(); */
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++static int au_ino(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
++ unsigned int d_type, ino_t *ino)
++{
++ int err;
++ struct au_xino_entry xinoe;
++ struct mutex *mtx;
++ const int isdir = (d_type == DT_DIR);
++
++ /* prevent hardlinks from race condition */
++ mtx = NULL;
++ if (!isdir) {
++ mtx = &au_sbr(sb, bindex)->br_xino.xi_nondir_mtx;
++ mutex_lock(mtx);
++ }
++ err = au_xino_read(sb, bindex, h_ino, &xinoe);
++ if (unlikely(err))
++ goto out;
++
++ if (!xinoe.ino) {
++ err = -EIO;
++ xinoe.ino = au_xino_new_ino(sb);
++ if (unlikely(!xinoe.ino))
++ goto out;
++
++#if 0 /* reserved for future use */
++ struct inode *h_inode;
++ xinoe.h_gen = AuXino_INVALID_HGEN;
++ h_inode = ilookup(au_sbr_sb(sb, bindex), h_ino);
++ if (h_inode) {
++ if (!is_bad_inode(h_inode)) {
++ xinoe.h_gen = h_inode->i_generation;
++ WARN_ON(xinoe.h_gen == AuXino_INVALID_HGEN);
++ }
++ iput(h_inode);
++ }
++#endif
++ err = au_xino_write(sb, bindex, h_ino, &xinoe);
++ if (unlikely(err))
++ goto out;
++ }
++
++ *ino = xinoe.ino;
++
++ out:
++ if (!isdir)
++ mutex_unlock(mtx);
++ AuTraceErr(err);
++ return err;
++}
++
++static int au_wh_ino(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
++ unsigned int d_type, ino_t *ino)
++{
++#ifdef CONFIG_AUFS_SHWH
++ return au_ino(sb, bindex, h_ino, d_type, ino);
++#else
++ return 0;
++#endif
++}
++
++#define AuFillVdir_CALLED 1
++#define AuFillVdir_SHWH (1 << 1)
++#define au_ftest_fillvdir(flags, name) ((flags) & AuFillVdir_##name)
++#define au_fset_fillvdir(flags, name) { (flags) |= AuFillVdir_##name; }
++#define au_fclr_fillvdir(flags, name) { (flags) &= ~AuFillVdir_##name; }
++#ifndef CONFIG_AUFS_SHWH
++#undef AuFillVdir_SHWH
++#define AuFillVdir_SHWH 0
++#endif
++
++struct fillvdir_arg {
++ struct file *file;
++ struct au_vdir *vdir;
++ struct au_nhash *delist;
++ struct au_nhash *whlist;
++ aufs_bindex_t bindex;
++ unsigned int flags;
++ int err;
++};
++
++static int fillvdir(void *__arg, const char *__name, int namelen, loff_t offset,
++ au_filldir_ino_t h_ino, unsigned int d_type)
++{
++ struct fillvdir_arg *arg = __arg;
++ char *name = (void *)__name;
++ aufs_bindex_t bindex, bend;
++ struct super_block *sb;
++ ino_t ino;
++
++ LKTRTrace("%.*s, namelen %d, i%llu, dt%u\n",
++ namelen, name, namelen, (unsigned long long)h_ino, d_type);
++
++ sb = arg->file->f_dentry->d_sb;
++ bend = arg->bindex;
++ arg->err = 0;
++ au_fset_fillvdir(arg->flags, CALLED);
++ /* smp_mb(); */
++ if (namelen <= AUFS_WH_PFX_LEN
++ || memcmp(name, AUFS_WH_PFX, AUFS_WH_PFX_LEN)) {
++ for (bindex = 0; bindex < bend; bindex++)
++ if (test_known(arg->delist + bindex, name, namelen)
++ || au_nhash_test_known_wh(arg->whlist + bindex,
++ name, namelen))
++ goto out; /* already exists or whiteouted */
++
++ ino = 1; /* why does gcc warns? */
++ arg->err = au_ino(sb, bend, h_ino, d_type, &ino);
++ if (!arg->err)
++ arg->err = append_de(arg->vdir, name, namelen, ino,
++ d_type, arg->delist + bend);
++ } else {
++ name += AUFS_WH_PFX_LEN;
++ namelen -= AUFS_WH_PFX_LEN;
++ for (bindex = 0; bindex < bend; bindex++)
++ if (au_nhash_test_known_wh(arg->whlist + bend, name,
++ namelen))
++ goto out; /* already whiteouted */
++
++ ino = 1; /* dummy */
++ if (au_ftest_fillvdir(arg->flags, SHWH))
++ arg->err = au_wh_ino(sb, bend, h_ino, d_type, &ino);
++ if (!arg->err)
++ arg->err = au_nhash_append_wh
++ (arg->whlist + bend, name, namelen, ino, d_type,
++ bend, au_ftest_fillvdir(arg->flags, SHWH));
++ }
++
++ out:
++ if (!arg->err)
++ arg->vdir->vd_jiffy = jiffies;
++ /* smp_mb(); */
++ AuTraceErr(arg->err);
++ return arg->err;
++}
++
++static int au_handle_shwh(struct super_block *sb, struct au_vdir *vdir,
++ aufs_bindex_t bstart, aufs_bindex_t bend,
++ struct au_nhash *_whlist, struct au_nhash *_delist)
++{
++#ifdef CONFIG_AUFS_SHWH
++ int err, i;
++ struct hlist_head *head;
++ struct au_vdir_wh *tpos;
++ struct hlist_node *pos, *n;
++ char *p, *o;
++ struct au_nhash *whlist, *delist;
++ struct au_vdir_destr *destr;
++ aufs_bindex_t bindex;
++
++ AuTraceEnter();
++ AuDebugOn(!au_opt_test(au_mntflags(sb), SHWH));
++
++ err = -ENOMEM;
++ o = p = __getname();
++ if (unlikely(!p))
++ goto out;
++
++ err = 0;
++ memcpy(p, AUFS_WH_PFX, AUFS_WH_PFX_LEN);
++ p += AUFS_WH_PFX_LEN;
++ for (bindex = bstart; !err && bindex <= bend; bindex++) {
++ whlist = _whlist + bindex;
++ delist = _delist + bindex;
++
++ for (i = 0; i < AuSize_NHASH; i++) {
++ head = whlist->heads + i;
++ hlist_for_each_entry_safe(tpos, pos, n, head, wh_hash) {
++ destr = &tpos->wh_str;
++ memcpy(p, destr->name, destr->len);
++ err = append_de(vdir, o,
++ destr->len + AUFS_WH_PFX_LEN,
++ tpos->wh_ino, tpos->wh_type,
++ delist);
++ if (unlikely(err))
++ break;
++ }
++ }
++ }
++
++ __putname(o);
++
++ out:
++ AuTraceErr(err);
++ return err;
++#else
++ return 0;
++#endif
++}
++
++static int au_do_read_vdir(struct fillvdir_arg *arg)
++{
++ int err;
++ unsigned int mnt_flags;
++ loff_t offset;
++ aufs_bindex_t bend, bindex, bstart;
++ unsigned char dlgt, shwh;
++ struct super_block *sb;
++ struct file *hf;
++
++ AuTraceEnter();
++
++ err = -ENOMEM;
++ bend = au_fbend(arg->file);
++ arg->delist = kmalloc(sizeof(*arg->delist) * (bend + 1), GFP_NOFS);
++ if (unlikely(!arg->delist))
++ goto out;
++ arg->whlist = kmalloc(sizeof(*arg->whlist) * (bend + 1), GFP_NOFS);
++ if (unlikely(!arg->whlist))
++ goto out_delist;
++ err = 0;
++ for (bindex = 0; bindex <= bend; bindex++) {
++ au_nhash_init(arg->delist + bindex);
++ au_nhash_init(arg->whlist + bindex);
++ }
++
++ sb = arg->file->f_dentry->d_sb;
++ mnt_flags = au_mntflags(sb);
++ dlgt = !!au_test_dlgt(mnt_flags);
++ arg->flags = 0;
++ shwh = 0;
++ if (au_opt_test(mnt_flags, SHWH)) {
++ shwh = 1;
++ au_fset_fillvdir(arg->flags, SHWH);
++ }
++ bstart = au_fbstart(arg->file);
++ for (bindex = bstart; !err && bindex <= bend; bindex++) {
++ hf = au_h_fptr(arg->file, bindex);
++ if (!hf)
++ continue;
++
++ offset = vfsub_llseek(hf, 0, SEEK_SET);
++ err = offset;
++ if (unlikely(offset))
++ break;
++ arg->bindex = bindex;
++ do {
++ arg->err = 0;
++ au_fclr_fillvdir(arg->flags, CALLED);
++ /* smp_mb(); */
++ err = vfsub_readdir(hf, fillvdir, arg, dlgt);
++ if (err >= 0)
++ err = arg->err;
++ } while (!err && au_ftest_fillvdir(arg->flags, CALLED));
++ }
++
++ if (!err && shwh)
++ err = au_handle_shwh(sb, arg->vdir, bstart, bend, arg->whlist,
++ arg->delist);
++
++ for (bindex = bstart; bindex <= bend; bindex++) {
++ free_dehlist(arg->delist + bindex);
++ au_nhash_fin(arg->whlist + bindex);
++ }
++ kfree(arg->whlist);
++
++ out_delist:
++ kfree(arg->delist);
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++static int read_vdir(struct file *file, int may_read)
++{
++ int err;
++ unsigned long expire;
++ struct fillvdir_arg arg;
++ unsigned char do_read;
++ struct dentry *dentry;
++ struct inode *inode;
++ struct au_vdir *vdir, *allocated;
++ struct super_block *sb;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s, may %d\n", AuDLNPair(dentry), may_read);
++ FiMustWriteLock(file);
++ inode = dentry->d_inode;
++ IMustLock(inode);
++ IiMustWriteLock(inode);
++ AuDebugOn(!S_ISDIR(inode->i_mode));
++
++ err = 0;
++ allocated = NULL;
++ do_read = 0;
++ sb = inode->i_sb;
++ expire = au_sbi(sb)->si_rdcache;
++ vdir = au_ivdir(inode);
++ if (!vdir) {
++ AuDebugOn(au_fvdir_cache(file));
++ do_read = 1;
++ vdir = alloc_vdir();
++ err = PTR_ERR(vdir);
++ if (IS_ERR(vdir))
++ goto out;
++ err = 0;
++ allocated = vdir;
++ } else if (may_read
++ && (inode->i_version != vdir->vd_version
++ || time_after(jiffies, vdir->vd_jiffy + expire))) {
++ LKTRTrace("iver %llu, vdver %lu, exp %lu\n",
++ (unsigned long long)inode->i_version,
++ vdir->vd_version, vdir->vd_jiffy + expire);
++ do_read = 1;
++ err = reinit_vdir(vdir);
++ if (unlikely(err))
++ goto out;
++ }
++
++ if (!do_read)
++ return 0; /* success */
++
++ arg.file = file;
++ arg.vdir = vdir;
++ err = au_do_read_vdir(&arg);
++ if (!err) {
++ /* todo: necessary? */
++ /* file->f_pos = 0; */
++ vdir->vd_version = inode->i_version;
++ vdir->vd_last.i = 0;
++ vdir->vd_last.p.deblk = vdir->vd_deblk[0];
++ if (allocated)
++ au_set_ivdir(inode, allocated);
++ } else if (allocated)
++ au_vdir_free(allocated);
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++static int copy_vdir(struct au_vdir *tgt, struct au_vdir *src)
++{
++ int err, i, rerr, n;
++
++ AuTraceEnter();
++ AuDebugOn(tgt->vd_nblk != 1);
++
++ err = -ENOMEM;
++ if (tgt->vd_nblk < src->vd_nblk) {
++ au_vdir_deblk_t **p;
++ p = au_kzrealloc(tgt->vd_deblk, sizeof(*p) * tgt->vd_nblk,
++ sizeof(*p) * src->vd_nblk, GFP_NOFS);
++ if (unlikely(!p))
++ goto out;
++ tgt->vd_deblk = p;
++ }
++
++ tgt->vd_nblk = src->vd_nblk;
++ n = src->vd_nblk;
++ memcpy(tgt->vd_deblk[0], src->vd_deblk[0], AuSize_DEBLK);
++ /* tgt->vd_last.i = 0; */
++ /* tgt->vd_last.p.deblk = tgt->vd_deblk[0]; */
++ tgt->vd_version = src->vd_version;
++ tgt->vd_jiffy = src->vd_jiffy;
++
++ for (i = 1; i < n; i++) {
++ tgt->vd_deblk[i] = kmalloc(AuSize_DEBLK, GFP_NOFS);
++ if (tgt->vd_deblk[i])
++ memcpy(tgt->vd_deblk[i], src->vd_deblk[i],
++ AuSize_DEBLK);
++ else
++ goto out;
++ }
++ /* smp_mb(); */
++ return 0; /* success */
++
++ out:
++ rerr = reinit_vdir(tgt);
++ BUG_ON(rerr);
++ AuTraceErr(err);
++ return err;
++}
++
++int au_vdir_init(struct file *file)
++{
++ int err;
++ struct dentry *dentry;
++ struct inode *inode;
++ struct au_vdir *vdir_cache, *allocated;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s, pos %lld\n", AuDLNPair(dentry), file->f_pos);
++ FiMustWriteLock(file);
++ inode = dentry->d_inode;
++ IiMustWriteLock(inode);
++ AuDebugOn(!S_ISDIR(inode->i_mode));
++
++ err = read_vdir(file, !file->f_pos);
++ if (unlikely(err))
++ goto out;
++
++ allocated = NULL;
++ vdir_cache = au_fvdir_cache(file);
++ if (!vdir_cache) {
++ vdir_cache = alloc_vdir();
++ err = PTR_ERR(vdir_cache);
++ if (IS_ERR(vdir_cache))
++ goto out;
++ allocated = vdir_cache;
++ } else if (!file->f_pos && vdir_cache->vd_version != file->f_version) {
++ err = reinit_vdir(vdir_cache);
++ if (unlikely(err))
++ goto out;
++ } else
++ return 0; /* success */
++
++ err = copy_vdir(vdir_cache, au_ivdir(inode));
++ if (!err) {
++ file->f_version = inode->i_version;
++ if (allocated)
++ au_set_fvdir_cache(file, allocated);
++ } else if (allocated)
++ au_vdir_free(allocated);
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++static loff_t calc_offset(struct au_vdir *vdir)
++{
++ loff_t offset;
++ union au_vdir_deblk_p p;
++
++ p.deblk = vdir->vd_deblk[vdir->vd_last.i];
++ offset = vdir->vd_last.p.p - p.p;
++ offset += sizeof(*p.deblk) * vdir->vd_last.i;
++ return offset;
++}
++
++/* returns true or false */
++static int seek_vdir(struct file *file)
++{
++ int valid, i, n;
++ struct dentry *dentry;
++ struct au_vdir *vdir_cache;
++ loff_t offset;
++ union au_vdir_deblk_p p, deblk_end;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s, pos %lld\n", AuDLNPair(dentry), file->f_pos);
++ vdir_cache = au_fvdir_cache(file);
++ AuDebugOn(!vdir_cache);
++
++ valid = 1;
++ offset = calc_offset(vdir_cache);
++ LKTRTrace("offset %lld\n", offset);
++ if (file->f_pos == offset)
++ goto out;
++
++ vdir_cache->vd_last.i = 0;
++ vdir_cache->vd_last.p.deblk = vdir_cache->vd_deblk[0];
++ if (!file->f_pos)
++ goto out;
++
++ valid = 0;
++ i = file->f_pos / AuSize_DEBLK;
++ LKTRTrace("i %d\n", i);
++ if (i >= vdir_cache->vd_nblk)
++ goto out;
++
++ n = vdir_cache->vd_nblk;
++ for (; i < n; i++) {
++ p.deblk = vdir_cache->vd_deblk[i];
++ deblk_end.deblk = p.deblk + 1;
++ offset = i;
++ offset *= AuSize_DEBLK;
++ while (!is_deblk_end(&p, &deblk_end) && offset < file->f_pos) {
++ int l;
++ l = calc_size(p.de->de_str.len);
++ offset += l;
++ p.p += l;
++ }
++ if (!is_deblk_end(&p, &deblk_end)) {
++ valid = 1;
++ vdir_cache->vd_last.i = i;
++ vdir_cache->vd_last.p = p;
++ break;
++ }
++ }
++
++ out:
++ /* smp_mb(); */
++ AuTraceErr(!valid);
++ return valid;
++}
++
++int au_vdir_fill_de(struct file *file, void *dirent, filldir_t filldir)
++{
++ int err, l;
++ struct dentry *dentry;
++ struct au_vdir *vdir_cache;
++ struct au_vdir_de *de;
++ union au_vdir_deblk_p deblk_end;
++
++ dentry = file->f_dentry;
++ LKTRTrace("%.*s, pos %lld\n", AuDLNPair(dentry), file->f_pos);
++ vdir_cache = au_fvdir_cache(file);
++ AuDebugOn(!vdir_cache);
++
++ if (!seek_vdir(file))
++ return 0;
++
++ while (1) {
++ deblk_end.deblk
++ = vdir_cache->vd_deblk[vdir_cache->vd_last.i] + 1;
++ while (!is_deblk_end(&vdir_cache->vd_last.p, &deblk_end)) {
++ de = vdir_cache->vd_last.p.de;
++ LKTRTrace("%.*s, off%lld, i%lu, dt%d\n",
++ de->de_str.len, de->de_str.name,
++ file->f_pos, (unsigned long)de->de_ino,
++ de->de_type);
++ err = filldir(dirent, de->de_str.name, de->de_str.len,
++ file->f_pos, de->de_ino, de->de_type);
++ if (unlikely(err)) {
++ AuTraceErr(err);
++ /* todo: ignore the error caused by udba? */
++ /* return err; */
++ return 0;
++ }
++
++ l = calc_size(de->de_str.len);
++ vdir_cache->vd_last.p.p += l;
++ file->f_pos += l;
++ }
++ if (vdir_cache->vd_last.i < vdir_cache->vd_nblk - 1) {
++ vdir_cache->vd_last.i++;
++ vdir_cache->vd_last.p.deblk
++ = vdir_cache->vd_deblk[vdir_cache->vd_last.i];
++ file->f_pos = sizeof(*vdir_cache->vd_last.p.deblk)
++ * vdir_cache->vd_last.i;
++ continue;
++ }
++ break;
++ }
++
++ /* smp_mb(); */
++ return 0;
++}
+diff --git a/fs/aufs/vfsub.c b/fs/aufs/vfsub.c
+new file mode 100644
+index 0000000..3744387
+--- /dev/null
++++ b/fs/aufs/vfsub.c
+@@ -0,0 +1,682 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * sub-routines for VFS
++ *
++ * $Id: vfsub.c,v 1.43 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include "aufs.h"
++
++/* ---------------------------------------------------------------------- */
++
++void vfsub_args_init(struct vfsub_args *vargs, struct au_hin_ignore *ign,
++ int dlgt, int force_unlink)
++{
++ do_vfsub_args_reinit(vargs, ign);
++ vargs->flags = 0;
++ if (dlgt)
++ vfsub_fset(vargs->flags, DLGT);
++ if (force_unlink)
++ vfsub_fset(vargs->flags, FORCE_UNLINK);
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct file *vfsub_filp_open(const char *path, int oflags, int mode)
++{
++ struct file *err;
++
++ LKTRTrace("%s\n", path);
++
++ lockdep_off();
++ err = filp_open(path, oflags, mode);
++ lockdep_on();
++ if (!IS_ERR(err))
++ au_update_fuse_h_inode(err->f_vfsmnt, err->f_dentry); /*ignore*/
++ return err;
++}
++
++int vfsub_path_lookup(const char *name, unsigned int flags,
++ struct nameidata *nd)
++{
++ int err;
++
++ LKTRTrace("%s\n", name);
++
++ /* lockdep_off(); */
++ err = path_lookup(name, flags, nd);
++ /* lockdep_on(); */
++ if (!err)
++ au_update_fuse_h_inode(nd->mnt, nd->dentry);
++ /*ignore*/
++ return err;
++}
++
++struct dentry *vfsub_lookup_one_len(const char *name, struct dentry *parent,
++ int len)
++{
++ struct dentry *d;
++
++ LKTRTrace("%.*s/%.*s\n", AuDLNPair(parent), len, name);
++ IMustLock(parent->d_inode);
++
++ d = lookup_one_len(name, parent, len);
++ if (!IS_ERR(d))
++ au_update_fuse_h_inode(NULL, d); /*ignore*/
++ return d;
++}
++
++#ifdef CONFIG_AUFS_LHASH_PATCH
++struct dentry *vfsub__lookup_hash(struct qstr *name, struct dentry *parent,
++ struct nameidata *nd)
++{
++ struct dentry *d;
++
++ LKTRTrace("%.*s/%.*s, nd %d\n",
++ AuDLNPair(parent), AuLNPair(name), !!nd);
++ if (nd)
++ LKTRTrace("nd{0x%x}\n", nd->flags);
++ IMustLock(parent->d_inode);
++
++ d = __lookup_hash(name, parent, nd);
++ if (!IS_ERR(d))
++ au_update_fuse_h_inode(NULL, d); /*ignore*/
++ return d;
++}
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++int do_vfsub_create(struct inode *dir, struct dentry *dentry, int mode,
++ struct nameidata *nd)
++{
++ int err;
++ struct vfsmount *mnt;
++
++ LKTRTrace("i%lu, %.*s, 0x%x\n", dir->i_ino, AuDLNPair(dentry), mode);
++ IMustLock(dir);
++
++ err = vfs_create(dir, dentry, mode, nd);
++ if (!err) {
++ mnt = NULL;
++ if (nd)
++ mnt = nd->mnt;
++ /* dir inode is locked */
++ au_update_fuse_h_inode(mnt, dentry->d_parent); /*ignore*/
++ au_update_fuse_h_inode(mnt, dentry); /*ignore*/
++ }
++ return err;
++}
++
++int do_vfsub_symlink(struct inode *dir, struct dentry *dentry,
++ const char *symname, int mode)
++{
++ int err;
++
++ LKTRTrace("i%lu, %.*s, %s, 0x%x\n",
++ dir->i_ino, AuDLNPair(dentry), symname, mode);
++ IMustLock(dir);
++
++ err = vfs_symlink(dir, dentry, symname, mode);
++ if (!err) {
++ /* dir inode is locked */
++ au_update_fuse_h_inode(NULL, dentry->d_parent); /*ignore*/
++ au_update_fuse_h_inode(NULL, dentry); /*ignore*/
++ }
++ return err;
++}
++
++int do_vfsub_mknod(struct inode *dir, struct dentry *dentry, int mode,
++ dev_t dev)
++{
++ int err;
++
++ LKTRTrace("i%lu, %.*s, 0x%x\n", dir->i_ino, AuDLNPair(dentry), mode);
++ IMustLock(dir);
++
++ err = vfs_mknod(dir, dentry, mode, dev);
++ if (!err) {
++ /* dir inode is locked */
++ au_update_fuse_h_inode(NULL, dentry->d_parent); /*ignore*/
++ au_update_fuse_h_inode(NULL, dentry); /*ignore*/
++ }
++ return err;
++}
++
++int do_vfsub_link(struct dentry *src_dentry, struct inode *dir,
++ struct dentry *dentry)
++{
++ int err;
++
++ LKTRTrace("%.*s, i%lu, %.*s\n",
++ AuDLNPair(src_dentry), dir->i_ino, AuDLNPair(dentry));
++ IMustLock(dir);
++
++ lockdep_off();
++ err = vfs_link(src_dentry, dir, dentry);
++ lockdep_on();
++ if (!err) {
++ LKTRTrace("src_i %p, dst_i %p\n",
++ src_dentry->d_inode, dentry->d_inode);
++ /* fuse has different memory inode for the same inumber */
++ au_update_fuse_h_inode(NULL, src_dentry); /*ignore*/
++ /* dir inode is locked */
++ au_update_fuse_h_inode(NULL, dentry->d_parent); /*ignore*/
++ au_update_fuse_h_inode(NULL, dentry); /*ignore*/
++ }
++ return err;
++}
++
++int do_vfsub_rename(struct inode *src_dir, struct dentry *src_dentry,
++ struct inode *dir, struct dentry *dentry)
++{
++ int err;
++
++ LKTRTrace("i%lu, %.*s, i%lu, %.*s\n",
++ src_dir->i_ino, AuDLNPair(src_dentry),
++ dir->i_ino, AuDLNPair(dentry));
++ IMustLock(dir);
++ IMustLock(src_dir);
++ AuDebugOn(src_dir != dir && !vfsub_is_rename_mutex_locked(dir->i_sb));
++
++ lockdep_off();
++ err = vfs_rename(src_dir, src_dentry, dir, dentry);
++ lockdep_on();
++ if (!err) {
++ /* dir inode is locked */
++ au_update_fuse_h_inode(NULL, dentry->d_parent); /*ignore*/
++ au_update_fuse_h_inode(NULL, src_dentry->d_parent); /*ignore*/
++ au_update_fuse_h_inode(NULL, src_dentry); /*ignore*/
++ }
++ return err;
++}
++
++int do_vfsub_mkdir(struct inode *dir, struct dentry *dentry, int mode)
++{
++ int err;
++
++ LKTRTrace("i%lu, %.*s, 0x%x\n", dir->i_ino, AuDLNPair(dentry), mode);
++ IMustLock(dir);
++
++ err = vfs_mkdir(dir, dentry, mode);
++ if (!err) {
++ /* dir inode is locked */
++ au_update_fuse_h_inode(NULL, dentry->d_parent); /*ignore*/
++ au_update_fuse_h_inode(NULL, dentry); /*ignore*/
++ }
++ return err;
++}
++
++int do_vfsub_rmdir(struct inode *dir, struct dentry *dentry)
++{
++ int err;
++
++ LKTRTrace("i%lu, %.*s\n", dir->i_ino, AuDLNPair(dentry));
++ IMustLock(dir);
++
++ lockdep_off();
++ err = vfs_rmdir(dir, dentry);
++ lockdep_on();
++ /* dir inode is locked */
++ if (!err)
++ au_update_fuse_h_inode(NULL, dentry->d_parent); /*ignore*/
++ return err;
++}
++
++int do_vfsub_unlink(struct inode *dir, struct dentry *dentry)
++{
++ int err;
++
++ LKTRTrace("i%lu, %.*s\n", dir->i_ino, AuDLNPair(dentry));
++ IMustLock(dir);
++
++ /* vfs_unlink() locks inode */
++ lockdep_off();
++ err = vfs_unlink(dir, dentry);
++ lockdep_on();
++ /* dir inode is locked */
++ if (!err)
++ au_update_fuse_h_inode(NULL, dentry->d_parent); /*ignore*/
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++ssize_t do_vfsub_read_u(struct file *file, char __user *ubuf, size_t count,
++ loff_t *ppos)
++{
++ ssize_t err;
++
++ LKTRTrace("%.*s, cnt %zu, pos %lld\n",
++ AuDLNPair(file->f_dentry), count, *ppos);
++
++ if (0 /*!au_test_nfs(file->f_vfsmnt->mnt_sb)*/)
++ err = vfs_read(file, ubuf, count, ppos);
++ else {
++ lockdep_off();
++ err = vfs_read(file, ubuf, count, ppos);
++ lockdep_on();
++ }
++ if (err >= 0)
++ au_update_fuse_h_inode(file->f_vfsmnt, file->f_dentry);
++ /*ignore*/
++ return err;
++}
++
++/* todo: kernel_read()? */
++ssize_t do_vfsub_read_k(struct file *file, void *kbuf, size_t count,
++ loff_t *ppos)
++{
++ ssize_t err;
++ mm_segment_t oldfs;
++
++ oldfs = get_fs();
++ set_fs(KERNEL_DS);
++ err = do_vfsub_read_u(file, (char __user *)kbuf, count, ppos);
++ set_fs(oldfs);
++ return err;
++}
++
++ssize_t do_vfsub_write_u(struct file *file, const char __user *ubuf,
++ size_t count, loff_t *ppos)
++{
++ ssize_t err;
++
++ LKTRTrace("%.*s, cnt %zu, pos %lld\n",
++ AuDLNPair(file->f_dentry), count, *ppos);
++
++ lockdep_off();
++ err = vfs_write(file, ubuf, count, ppos);
++ lockdep_on();
++ if (err >= 0)
++ au_update_fuse_h_inode(file->f_vfsmnt, file->f_dentry);
++ /*ignore*/
++ return err;
++}
++
++ssize_t do_vfsub_write_k(struct file *file, void *kbuf, size_t count,
++ loff_t *ppos)
++{
++ ssize_t err;
++ mm_segment_t oldfs;
++
++ oldfs = get_fs();
++ set_fs(KERNEL_DS);
++ err = do_vfsub_write_u(file, (const char __user *)kbuf, count, ppos);
++ set_fs(oldfs);
++ return err;
++}
++
++int do_vfsub_readdir(struct file *file, filldir_t filldir, void *arg)
++{
++ int err;
++
++ LKTRTrace("%.*s\n", AuDLNPair(file->f_dentry));
++
++ lockdep_off();
++ err = vfs_readdir(file, filldir, arg);
++ lockdep_on();
++ if (err >= 0)
++ au_update_fuse_h_inode(file->f_vfsmnt, file->f_dentry);
++ /*ignore*/
++ return err;
++}
++
++#ifdef CONFIG_AUFS_SPLICE_PATCH
++long do_vfsub_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags)
++{
++ long err;
++
++ LKTRTrace("%.*s, pos %lld, len %zu, 0x%x\n",
++ AuDLNPair(in->f_dentry), *ppos, len, flags);
++
++ lockdep_off();
++ err = vfs_splice_to(in, ppos, pipe, len, flags);
++ lockdep_on();
++ if (err >= 0)
++ au_update_fuse_h_inode(in->f_vfsmnt, in->f_dentry); /*ignore*/
++ return err;
++}
++
++long do_vfsub_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags)
++{
++ long err;
++
++ LKTRTrace("%.*s, pos %lld, len %zu, 0x%x\n",
++ AuDLNPair(out->f_dentry), *ppos, len, flags);
++
++ lockdep_off();
++ err = vfs_splice_from(pipe, out, ppos, len, flags);
++ lockdep_on();
++ if (err >= 0)
++ au_update_fuse_h_inode(out->f_vfsmnt, out->f_dentry); /*ignore*/
++ return err;
++}
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++struct au_vfsub_mkdir_args {
++ int *errp;
++ struct inode *dir;
++ struct dentry *dentry;
++ int mode;
++ struct vfsub_args *vargs;
++};
++
++static void au_call_vfsub_mkdir(void *args)
++{
++ struct au_vfsub_mkdir_args *a = args;
++ *a->errp = vfsub_mkdir(a->dir, a->dentry, a->mode, a->vargs);
++}
++
++int vfsub_sio_mkdir(struct au_hinode *hdir, struct dentry *dentry, int mode,
++ int dlgt)
++{
++ int err, do_sio, wkq_err;
++ struct inode *dir = hdir->hi_inode;
++ struct au_hin_ignore ign;
++ struct vfsub_args vargs;
++
++ LKTRTrace("i%lu, %.*s\n", dir->i_ino, AuDLNPair(dentry));
++
++ vfsub_args_init(&vargs, &ign, dlgt, /*force_unlink*/0);
++ vfsub_ign_hinode(&vargs, IN_CREATE, hdir);
++ do_sio = au_test_h_perm_sio(dir, MAY_EXEC | MAY_WRITE, dlgt);
++ if (!do_sio)
++ err = vfsub_mkdir(dir, dentry, mode, &vargs);
++ else {
++ struct au_vfsub_mkdir_args args = {
++ .errp = &err,
++ .dir = dir,
++ .dentry = dentry,
++ .mode = mode,
++ .vargs = &vargs
++ };
++ vfsub_fclr(vargs.flags, DLGT);
++ wkq_err = au_wkq_wait(au_call_vfsub_mkdir, &args, /*dlgt*/0);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++struct au_vfsub_rmdir_args {
++ int *errp;
++ struct inode *dir;
++ struct dentry *dentry;
++ struct vfsub_args *vargs;
++};
++
++static void au_call_vfsub_rmdir(void *args)
++{
++ struct au_vfsub_rmdir_args *a = args;
++ *a->errp = vfsub_rmdir(a->dir, a->dentry, a->vargs);
++}
++
++int vfsub_sio_rmdir(struct au_hinode *hdir, struct dentry *dentry, int dlgt)
++{
++ int err, do_sio, wkq_err;
++ struct inode *dir = hdir->hi_inode;
++ struct au_hin_ignore ign;
++ struct vfsub_args vargs;
++
++ LKTRTrace("i%lu, %.*s\n", dir->i_ino, AuDLNPair(dentry));
++
++ vfsub_args_init(&vargs, &ign, dlgt, /*force_unlink*/0);
++ vfsub_ign_hinode(&vargs, IN_DELETE, hdir);
++ do_sio = au_test_h_perm_sio(dir, MAY_EXEC | MAY_WRITE, dlgt);
++ if (!do_sio)
++ err = vfsub_rmdir(dir, dentry, &vargs);
++ else {
++ struct au_vfsub_rmdir_args args = {
++ .errp = &err,
++ .dir = dir,
++ .dentry = dentry,
++ .vargs = &vargs
++ };
++ vfsub_fclr(vargs.flags, DLGT);
++ wkq_err = au_wkq_wait(au_call_vfsub_rmdir, &args, /*dlgt*/0);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct notify_change_args {
++ int *errp;
++ struct dentry *h_dentry;
++ struct iattr *ia;
++ struct vfsub_args *vargs;
++};
++
++static void call_notify_change(void *args)
++{
++ struct notify_change_args *a = args;
++ struct inode *h_inode;
++
++ LKTRTrace("%.*s, ia_valid 0x%x\n",
++ AuDLNPair(a->h_dentry), a->ia->ia_valid);
++ h_inode = a->h_dentry->d_inode;
++ IMustLock(h_inode);
++
++ *a->errp = -EPERM;
++ if (!IS_IMMUTABLE(h_inode) && !IS_APPEND(h_inode)) {
++ vfsub_ignore(a->vargs);
++ lockdep_off();
++ *a->errp = notify_change(a->h_dentry, a->ia);
++ lockdep_on();
++ if (!*a->errp)
++ au_update_fuse_h_inode(NULL, a->h_dentry); /*ignore*/
++ else
++ vfsub_unignore(a->vargs);
++ au_dbg_hin_list(a->vargs);
++ }
++ AuTraceErr(*a->errp);
++}
++
++#ifdef CONFIG_AUFS_DLGT
++static void vfsub_notify_change_dlgt(struct notify_change_args *args,
++ unsigned int flags)
++{
++ if (!vfsub_ftest(flags, DLGT))
++ call_notify_change(args);
++ else {
++ int wkq_err;
++ wkq_err = au_wkq_wait(call_notify_change, args, /*dlgt*/1);
++ if (unlikely(wkq_err))
++ *args->errp = wkq_err;
++ }
++}
++#else
++static void vfsub_notify_change_dlgt(struct notify_change_args *args,
++ unsigned int flags)
++{
++ call_notify_change(args);
++}
++#endif
++
++int vfsub_notify_change(struct dentry *dentry, struct iattr *ia,
++ struct vfsub_args *vargs)
++{
++ int err;
++ struct notify_change_args args = {
++ .errp = &err,
++ .h_dentry = dentry,
++ .ia = ia,
++ .vargs = vargs
++ };
++
++ vfsub_notify_change_dlgt(&args, vargs->flags);
++
++ AuTraceErr(err);
++ return err;
++}
++
++int vfsub_sio_notify_change(struct au_hinode *hdir, struct dentry *dentry,
++ struct iattr *ia)
++{
++ int err, wkq_err;
++ struct au_hin_ignore ign;
++ struct vfsub_args vargs;
++ __u32 events;
++ struct notify_change_args args = {
++ .errp = &err,
++ .h_dentry = dentry,
++ .ia = ia,
++ .vargs = &vargs
++ };
++
++ LKTRTrace("%.*s, 0x%x\n", AuDLNPair(dentry), ia->ia_valid);
++
++ vfsub_args_init(&vargs, &ign, /*dlgt*/0, /*force_unlink*/0);
++ events = vfsub_events_notify_change(ia);
++ if (events)
++ vfsub_ign_hinode(&vargs, events, hdir);
++ wkq_err = au_wkq_wait(call_notify_change, &args, /*dlgt*/0);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct unlink_args {
++ int *errp;
++ struct inode *dir;
++ struct dentry *dentry;
++ struct vfsub_args *vargs;
++};
++
++static void call_unlink(void *args)
++{
++ struct unlink_args *a = args;
++ struct inode *h_inode;
++ const int stop_sillyrename = (au_test_nfs(a->dentry->d_sb)
++ && atomic_read(&a->dentry->d_count) == 1);
++
++ LKTRTrace("%.*s, stop_silly %d, cnt %d\n",
++ AuDLNPair(a->dentry), stop_sillyrename,
++ atomic_read(&a->dentry->d_count));
++
++ if (!stop_sillyrename)
++ dget(a->dentry);
++ h_inode = a->dentry->d_inode;
++ if (h_inode)
++ atomic_inc_return(&h_inode->i_count);
++ vfsub_ignore(a->vargs);
++ *a->errp = do_vfsub_unlink(a->dir, a->dentry);
++ if (unlikely(*a->errp || (a->dentry->d_flags & DCACHE_NFSFS_RENAMED)))
++ vfsub_unignore(a->vargs);
++ au_dbg_hin_list(a->vargs);
++ if (!stop_sillyrename)
++ dput(a->dentry);
++ if (h_inode)
++ iput(h_inode);
++
++ AuTraceErr(*a->errp);
++}
++
++/*
++ * @dir: must be locked.
++ * @dentry: target dentry.
++ */
++int vfsub_unlink(struct inode *dir, struct dentry *dentry,
++ struct vfsub_args *vargs)
++{
++ int err;
++ struct unlink_args args = {
++ .errp = &err,
++ .dir = dir,
++ .dentry = dentry,
++ .vargs = vargs
++ };
++
++ if (!vfsub_ftest(vargs->flags, DLGT)
++ && !vfsub_ftest(vargs->flags, FORCE_UNLINK))
++ call_unlink(&args);
++ else {
++ int wkq_err;
++ wkq_err = au_wkq_wait(call_unlink, &args,
++ vfsub_ftest(vargs->flags, DLGT));
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ }
++
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct statfs_args {
++ int *errp;
++ void *arg;
++ struct kstatfs *buf;
++};
++
++static void call_statfs(void *args)
++{
++ struct statfs_args *a = args;
++ *a->errp = vfs_statfs(a->arg, a->buf);
++}
++
++#ifdef CONFIG_AUFS_DLGT
++static void vfsub_statfs_dlgt(struct statfs_args *args, int dlgt)
++{
++ if (!dlgt)
++ call_statfs(args);
++ else {
++ int wkq_err;
++ wkq_err = au_wkq_wait(call_statfs, args, /*dlgt*/1);
++ if (unlikely(wkq_err))
++ *args->errp = wkq_err;
++ }
++}
++#else
++static void vfsub_statfs_dlgt(struct statfs_args *args, int dlgt)
++{
++ call_statfs(args);
++}
++#endif
++
++int vfsub_statfs(void *arg, struct kstatfs *buf, int dlgt)
++{
++ int err;
++ struct statfs_args args = {
++ .errp = &err,
++ .arg = arg,
++ .buf = buf
++ };
++
++ vfsub_statfs_dlgt(&args, dlgt);
++
++ return err;
++}
+diff --git a/fs/aufs/vfsub.h b/fs/aufs/vfsub.h
+new file mode 100644
+index 0000000..0bd9719
+--- /dev/null
++++ b/fs/aufs/vfsub.h
+@@ -0,0 +1,600 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * sub-routines for VFS
++ *
++ * $Id: vfsub.h,v 1.44 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#ifndef __AUFS_VFSUB_H__
++#define __AUFS_VFSUB_H__
++
++#ifdef __KERNEL__
++
++#include <linux/fs.h>
++#include <linux/namei.h>
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23)
++#include <linux/splice.h>
++#endif
++#include <linux/inotify.h>
++
++/* ---------------------------------------------------------------------- */
++
++/* vfsub flags */
++#define Vfsub_DLGT 1 /* operation with delegation */
++#define Vfsub_FORCE_UNLINK (1 << 1) /* force unlinking */
++#define vfsub_ftest(flags, name) ((flags) & Vfsub_##name)
++#define vfsub_fset(flags, name) { (flags) |= Vfsub_##name; }
++#define vfsub_fclr(flags, name) { (flags) &= ~Vfsub_##name; }
++#ifndef CONFIG_AUFS_DLGT
++#undef Vfsub_DLGT
++#define Vfsub_DLGT 0
++#endif
++
++struct au_hin_ignore;
++struct vfsub_args {
++#ifdef CONFIG_AUFS_HINOTIFY
++ /* inotify events to be ignored */
++ int nignore;
++ struct au_hin_ignore *ignore;
++#endif
++
++ unsigned int flags;
++};
++
++struct au_hinode;
++#ifdef CONFIG_AUFS_HINOTIFY
++static inline
++void do_vfsub_args_reinit(struct vfsub_args *vargs, struct au_hin_ignore *ign)
++{
++ vargs->nignore = 0;
++ vargs->ignore = ign;
++}
++
++static inline void vfsub_args_reinit(struct vfsub_args *vargs)
++{
++ vargs->nignore = 0;
++}
++
++__u32 vfsub_events_notify_change(struct iattr *ia);
++void vfsub_ign_hinode(struct vfsub_args *vargs, __u32 events,
++ struct au_hinode *hinode);
++void vfsub_ignore(struct vfsub_args *vargs);
++void vfsub_unignore(struct vfsub_args *vargs);
++#else
++static inline
++void do_vfsub_args_reinit(struct vfsub_args *vargs, struct au_hin_ignore *ign)
++{
++ /* empty */
++}
++
++static inline void vfsub_args_reinit(struct vfsub_args *vargs)
++{
++ /* empty */
++}
++
++static inline __u32 vfsub_events_notify_change(struct iattr *ia)
++{
++ return 0;
++}
++
++static inline void vfsub_ign_hinode(struct vfsub_args *vargs, __u32 events,
++ struct au_hinode *hinode)
++{
++ /* empty */
++}
++
++static inline void vfsub_ignore(struct vfsub_args *vargs)
++{
++ /* empty */
++}
++
++static inline void vfsub_unignore(struct vfsub_args *vargs)
++{
++ /* empty */
++}
++#endif /* CONFIG_AUFS_HINOTIFY */
++
++void vfsub_args_init(struct vfsub_args *vargs, struct au_hin_ignore *ign,
++ int dlgt, int force_unlink);
++
++/* ---------------------------------------------------------------------- */
++
++/* inotify_inode_watched() is not exported */
++static inline int au_test_inotify(struct inode *inode)
++{
++#ifdef CONFIG_INOTIFY
++ return !list_empty(&inode->inotify_watches);
++#endif
++ return 0;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/* lock subclass for hidden inode */
++/* default MAX_LOCKDEP_SUBCLASSES(8) is not enough */
++/* reduce? gave up. */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18)
++#define I_MUTEX_QUOTA 0
++#endif
++
++enum {
++ AuLsc_I_Begin = I_MUTEX_QUOTA, /* 4 */
++ AuLsc_I_PARENT, /* hidden inode, parent first */
++ AuLsc_I_PARENT2, /* copyup dirs */
++ AuLsc_I_PARENT3, /* rename with hinotify */
++ AuLsc_I_PARENT4, /* ditto */
++ AuLsc_I_CHILD,
++ AuLsc_I_CHILD2,
++ AuLsc_I_End
++};
++
++/* simple abstraction */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 16)
++static inline void vfsub_i_lock(struct inode *i)
++{
++ down(&i->i_sem);
++}
++
++static inline void vfsub_i_lock_nested(struct inode *i, unsigned lsc)
++{
++ vfsub_i_lock(i);
++}
++
++static inline void vfsub_i_unlock(struct inode *i)
++{
++ up(&i->i_sem);
++}
++
++static inline int vfsub_i_trylock(struct inode *i)
++{
++ return !down_trylock(&i->i_sem);
++}
++
++#define IMustLock(i) AuDebugOn(!down_trylock(&(i)->i_sem))
++#else
++static inline void vfsub_i_lock(struct inode *i)
++{
++ mutex_lock(&i->i_mutex);
++}
++
++static inline void vfsub_i_lock_nested(struct inode *i, unsigned lsc)
++{
++ mutex_lock_nested(&i->i_mutex, lsc);
++}
++
++static inline void vfsub_i_unlock(struct inode *i)
++{
++ mutex_unlock(&i->i_mutex);
++}
++
++static inline int vfsub_i_trylock(struct inode *i)
++{
++ return mutex_trylock(&i->i_mutex);
++}
++
++#define IMustLock(i) MtxMustLock(&(i)->i_mutex)
++#endif /* LINUX_VERSION_CODE */
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 17)
++static inline void vfsub_lock_rename_mutex(struct super_block *sb)
++{
++ lockdep_off();
++ down(&sb->s_vfs_rename_sem);
++ lockdep_on();
++}
++
++static inline void vfsub_unlock_rename_mutex(struct super_block *sb)
++{
++ lockdep_off();
++ up(&sb->s_vfs_rename_sem);
++ lockdep_on();
++}
++
++static inline int vfsub_is_rename_mutex_locked(struct super_block *sb)
++{
++ int res;
++
++ lockdep_off();
++ res = down_trylock(&sb->s_vfs_rename_sem);
++ if (!res)
++ up(&sb->s_vfs_rename_sem);
++ lockdep_on();
++
++ return res;
++}
++#else
++static inline void vfsub_lock_rename_mutex(struct super_block *sb)
++{
++ lockdep_off();
++ mutex_lock(&sb->s_vfs_rename_mutex);
++ lockdep_on();
++}
++
++static inline void vfsub_unlock_rename_mutex(struct super_block *sb)
++{
++ lockdep_off();
++ mutex_unlock(&sb->s_vfs_rename_mutex);
++ lockdep_on();
++}
++
++static inline int vfsub_is_rename_mutex_locked(struct super_block *sb)
++{
++ int res;
++
++ lockdep_off();
++ res = mutex_is_locked(&sb->s_vfs_rename_mutex);
++ lockdep_on();
++
++ return res;
++}
++#endif /* LINUX_VERSION_CODE */
++
++static inline
++struct dentry *vfsub_lock_rename(struct dentry *d1, struct dentry *d2)
++{
++ struct dentry *d;
++
++ lockdep_off();
++ d = lock_rename(d1, d2);
++ lockdep_on();
++ return d;
++}
++
++static inline void vfsub_unlock_rename(struct dentry *d1, struct dentry *d2)
++{
++ lockdep_off();
++ unlock_rename(d1, d2);
++ lockdep_on();
++}
++
++static inline int au_verify_parent(struct dentry *dentry, struct inode *dir)
++{
++ IMustLock(dir);
++ return /* !dir->i_nlink || */ dentry->d_parent->d_inode != dir;
++}
++
++/* ---------------------------------------------------------------------- */
++
++#ifdef CONFIG_AUFS_WORKAROUND_FUSE
++/* br_fuse.c */
++int au_update_fuse_h_inode(struct vfsmount *h_mnt, struct dentry *h_dentry);
++#else
++static inline
++int au_update_fuse_h_inode(struct vfsmount *h_mnt, struct dentry *h_dentry)
++{
++ return 0;
++}
++#endif
++
++#ifdef CONFIG_AUFS_BR_XFS
++/* br_xfs.c */
++dev_t au_h_rdev(struct inode *h_inode, struct vfsmount *h_mnt,
++ struct dentry *h_dentry);
++#else
++static inline
++dev_t au_h_rdev(struct inode *h_inode, struct vfsmount *h_mnt,
++ struct dentry *h_dentry)
++{
++ return h_inode->i_rdev;
++}
++#endif
++
++/* simple abstractions, for future use */
++static inline
++int do_vfsub_permission(struct inode *inode, int mask, struct nameidata *nd)
++{
++ LKTRTrace("i%lu, mask 0x%x, nd %d\n", inode->i_ino, mask, !!nd);
++ IMustLock(inode);
++ return permission(inode, mask, nd);
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct file *vfsub_filp_open(const char *path, int oflags, int mode);
++int vfsub_path_lookup(const char *name, unsigned int flags,
++ struct nameidata *nd);
++struct dentry *vfsub_lookup_one_len(const char *name, struct dentry *parent,
++ int len);
++
++#ifdef CONFIG_AUFS_LHASH_PATCH
++struct dentry *vfsub__lookup_hash(struct qstr *name, struct dentry *parent,
++ struct nameidata *nd);
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++int do_vfsub_create(struct inode *dir, struct dentry *dentry, int mode,
++ struct nameidata *nd);
++int do_vfsub_symlink(struct inode *dir, struct dentry *dentry,
++ const char *symname, int mode);
++int do_vfsub_mknod(struct inode *dir, struct dentry *dentry, int mode,
++ dev_t dev);
++int do_vfsub_link(struct dentry *src_dentry, struct inode *dir,
++ struct dentry *dentry);
++int do_vfsub_rename(struct inode *src_dir, struct dentry *src_dentry,
++ struct inode *dir, struct dentry *dentry);
++int do_vfsub_mkdir(struct inode *dir, struct dentry *dentry, int mode);
++int do_vfsub_rmdir(struct inode *dir, struct dentry *dentry);
++int do_vfsub_unlink(struct inode *dir, struct dentry *dentry);
++
++/* ---------------------------------------------------------------------- */
++
++ssize_t do_vfsub_read_u(struct file *file, char __user *ubuf, size_t count,
++ loff_t *ppos);
++/* todo: kernel_read()? */
++ssize_t do_vfsub_read_k(struct file *file, void *kbuf, size_t count,
++ loff_t *ppos);
++ssize_t do_vfsub_write_u(struct file *file, const char __user *ubuf,
++ size_t count, loff_t *ppos);
++ssize_t do_vfsub_write_k(struct file *file, void *kbuf, size_t count,
++ loff_t *ppos);
++int do_vfsub_readdir(struct file *file, filldir_t filldir, void *arg);
++
++/* ---------------------------------------------------------------------- */
++
++#ifndef CONFIG_AUFS_UNIONFS23_PATCH
++#define vfs_splice_to do_splice_to
++#define vfs_splice_from do_splice_from
++#endif
++
++#ifdef CONFIG_AUFS_SPLICE_PATCH
++long do_vfsub_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags);
++long do_vfsub_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags);
++#else
++static inline
++long do_vfsub_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags)
++{
++ return -ENOSYS;
++}
++
++static inline
++long do_vfsub_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags)
++{
++ return -ENOSYS;
++}
++#endif /* CONFIG_AUFS_SPLICE_PATCH */
++
++/* ---------------------------------------------------------------------- */
++
++static inline loff_t vfsub_llseek(struct file *file, loff_t offset, int origin)
++{
++ loff_t err;
++
++ LKTRTrace("%.*s\n", AuDLNPair(file->f_dentry));
++
++ lockdep_off();
++ err = vfs_llseek(file, offset, origin);
++ lockdep_on();
++ return err;
++}
++
++static inline int do_vfsub_getattr(struct vfsmount *mnt, struct dentry *dentry,
++ struct kstat *st)
++{
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++ return vfs_getattr(mnt, dentry, st);
++}
++
++/* ---------------------------------------------------------------------- */
++
++#ifdef CONFIG_AUFS_HIN_OR_DLGT
++/* hin_or_dlgt.c */
++int vfsub_permission(struct inode *inode, int mask, struct nameidata *nd,
++ int dlgt);
++
++int vfsub_create(struct inode *dir, struct dentry *dentry, int mode,
++ struct nameidata *nd, struct vfsub_args *vargs);
++int vfsub_symlink(struct inode *dir, struct dentry *dentry, const char *symname,
++ int mode, struct vfsub_args *vargs);
++int vfsub_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev,
++ struct vfsub_args *vargs);
++int vfsub_link(struct dentry *src_dentry, struct inode *dir,
++ struct dentry *dentry, struct vfsub_args *vargs);
++int vfsub_rename(struct inode *src_dir, struct dentry *src_dentry,
++ struct inode *dir, struct dentry *dentry,
++ struct vfsub_args *vargs);
++int vfsub_mkdir(struct inode *dir, struct dentry *dentry, int mode,
++ struct vfsub_args *vargs);
++int vfsub_rmdir(struct inode *dir, struct dentry *dentry,
++ struct vfsub_args *vargs);
++
++ssize_t vfsub_read_u(struct file *file, char __user *ubuf, size_t count,
++ loff_t *ppos, int dlgt);
++ssize_t vfsub_read_k(struct file *file, void *kbuf, size_t count, loff_t *ppos,
++ int dlgt);
++ssize_t vfsub_write_u(struct file *file, const char __user *ubuf, size_t count,
++ loff_t *ppos, struct vfsub_args *vargs);
++ssize_t vfsub_write_k(struct file *file, void *kbuf, size_t count, loff_t *ppos,
++ struct vfsub_args *vargs);
++int vfsub_readdir(struct file *file, filldir_t filldir, void *arg, int dlgt);
++long vfsub_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags, int dlgt);
++long vfsub_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags,
++ struct vfsub_args *vargs);
++
++int vfsub_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *st,
++ int dlgt);
++#else
++
++static inline
++int vfsub_permission(struct inode *inode, int mask, struct nameidata *nd,
++ int dlgt)
++{
++ return do_vfsub_permission(inode, mask, nd);
++}
++
++static inline
++int vfsub_create(struct inode *dir, struct dentry *dentry, int mode,
++ struct nameidata *nd, struct vfsub_args *vargs)
++{
++ return do_vfsub_create(dir, dentry, mode, nd);
++}
++
++static inline
++int vfsub_symlink(struct inode *dir, struct dentry *dentry, const char *symname,
++ int mode, struct vfsub_args *vargs)
++{
++ return do_vfsub_symlink(dir, dentry, symname, mode);
++}
++
++static inline
++int vfsub_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev,
++ struct vfsub_args *vargs)
++{
++ return do_vfsub_mknod(dir, dentry, mode, dev);
++}
++
++static inline
++int vfsub_link(struct dentry *src_dentry, struct inode *dir,
++ struct dentry *dentry, struct vfsub_args *vargs)
++{
++ return do_vfsub_link(src_dentry, dir, dentry);
++}
++
++static inline
++int vfsub_rename(struct inode *src_dir, struct dentry *src_dentry,
++ struct inode *dir, struct dentry *dentry,
++ struct vfsub_args *vargs)
++{
++ return do_vfsub_rename(src_dir, src_dentry, dir, dentry);
++}
++
++static inline
++int vfsub_mkdir(struct inode *dir, struct dentry *dentry, int mode,
++ struct vfsub_args *vargs)
++{
++ return do_vfsub_mkdir(dir, dentry, mode);
++}
++
++static inline
++int vfsub_rmdir(struct inode *dir, struct dentry *dentry,
++ struct vfsub_args *vargs)
++{
++ return do_vfsub_rmdir(dir, dentry);
++}
++
++static inline
++ssize_t vfsub_read_u(struct file *file, char __user *ubuf, size_t count,
++ loff_t *ppos, int dlgt)
++{
++ return do_vfsub_read_u(file, ubuf, count, ppos);
++}
++
++static inline
++ssize_t vfsub_read_k(struct file *file, void *kbuf, size_t count, loff_t *ppos,
++ int dlgt)
++{
++ return do_vfsub_read_k(file, kbuf, count, ppos);
++}
++
++static inline
++ssize_t vfsub_write_u(struct file *file, const char __user *ubuf, size_t count,
++ loff_t *ppos, struct vfsub_args *vargs)
++{
++ return do_vfsub_write_u(file, ubuf, count, ppos);
++}
++
++static inline
++ssize_t vfsub_write_k(struct file *file, void *kbuf, size_t count, loff_t *ppos,
++ struct vfsub_args *vargs)
++{
++ return do_vfsub_write_k(file, kbuf, count, ppos);
++}
++
++static inline
++int vfsub_readdir(struct file *file, filldir_t filldir, void *arg, int dlgt)
++{
++ return do_vfsub_readdir(file, filldir, arg);
++}
++
++static inline
++long vfsub_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags, int dlgt)
++{
++ return do_vfsub_splice_to(in, ppos, pipe, len, flags);
++}
++
++static inline
++long vfsub_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags,
++ struct vfsub_args *vargs)
++{
++ return do_vfsub_splice_from(pipe, out, ppos, len, flags);
++}
++
++static inline
++int vfsub_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *st,
++ int dlgt)
++{
++ return do_vfsub_getattr(mnt, dentry, st);
++}
++#endif /* HIN_OR_DLGT */
++
++/* ---------------------------------------------------------------------- */
++
++int vfsub_sio_mkdir(struct au_hinode *hdir, struct dentry *dentry, int mode,
++ int dlgt);
++int vfsub_sio_rmdir(struct au_hinode *hdir, struct dentry *dentry, int dlgt);
++int vfsub_sio_notify_change(struct au_hinode *hdir, struct dentry *dentry,
++ struct iattr *ia);
++
++/* ---------------------------------------------------------------------- */
++
++int vfsub_notify_change(struct dentry *dentry, struct iattr *ia,
++ struct vfsub_args *vargs);
++int vfsub_unlink(struct inode *dir, struct dentry *dentry,
++ struct vfsub_args *vargs);
++int vfsub_statfs(void *arg, struct kstatfs *buf, int dlgt);
++
++/* ---------------------------------------------------------------------- */
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 20)
++/* introduced in linux-2.6.20 */
++struct path {
++ struct vfsmount *mnt;
++ struct dentry *dentry;
++};
++#endif
++
++/* introduced in linux-2.6.25 */
++static inline void path_get(struct path *path)
++{
++ mntget(path->mnt);
++ dget(path->dentry);
++}
++
++static inline void path_put(struct path *path)
++{
++ dput(path->dentry);
++ mntput(path->mnt);
++}
++
++#endif /* __KERNEL__ */
++#endif /* __AUFS_VFSUB_H__ */
+diff --git a/fs/aufs/wbr_policy.c b/fs/aufs/wbr_policy.c
+new file mode 100644
+index 0000000..701b4a1
+--- /dev/null
++++ b/fs/aufs/wbr_policy.c
+@@ -0,0 +1,702 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * policies for selecting one among multiple writable branches
++ *
++ * $Id: wbr_policy.c,v 1.20 2009/01/26 06:23:51 sfjro Exp $
++ */
++
++#include <linux/statfs.h>
++#include "aufs.h"
++
++static int au_cpdown_attr(struct au_hinode *hdir, struct dentry *h_dst,
++ struct dentry *h_src)
++{
++ int err, sbits;
++ struct iattr ia;
++ struct inode *h_idst, *h_isrc;
++
++ LKTRTrace("%.*s\n", AuDLNPair(h_dst));
++ h_idst = h_dst->d_inode;
++ /* todo? IMustLock(h_idst); */
++ h_isrc = h_src->d_inode;
++ /* todo? IMustLock(h_isrc); */
++
++ ia.ia_valid = ATTR_FORCE | ATTR_MODE | ATTR_UID | ATTR_GID;
++ ia.ia_mode = h_isrc->i_mode;
++ ia.ia_uid = h_isrc->i_uid;
++ ia.ia_gid = h_isrc->i_gid;
++ sbits = !!(ia.ia_mode & (S_ISUID | S_ISGID));
++ au_cpup_attr_flags(h_idst, h_isrc);
++ err = vfsub_sio_notify_change(hdir, h_dst, &ia);
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 24)
++ /* is this nfs only? */
++ if (!err && sbits && au_test_nfs(h_dst->d_sb)) {
++ ia.ia_valid = ATTR_FORCE | ATTR_MODE;
++ ia.ia_mode = h_isrc->i_mode;
++ err = vfsub_sio_notify_change(hdir, h_dst, &ia);
++ }
++#endif
++
++ AuTraceErr(err);
++ return err;
++}
++
++struct au_cpdown_dir_args {
++ struct dentry *parent;
++ unsigned int parent_opq; /* bit-flags */
++};
++
++static int au_cpdown_dir(struct dentry *dentry, aufs_bindex_t bdst,
++ struct dentry *h_parent, void *arg)
++{
++ int err, rerr;
++ struct au_cpdown_dir_args *args = arg;
++ aufs_bindex_t bend, bopq, bstart;
++ unsigned char parent_opq, whed, dlgt, do_opq, made_dir, diropq;
++ struct dentry *h_dentry, *opq_dentry, *wh_dentry, *parent;
++ struct inode *h_dir, *h_inode, *inode, *dir;
++
++ LKTRTrace("%.*s, b%d\n", AuDLNPair(dentry), bdst);
++ bstart = au_dbstart(dentry);
++ AuDebugOn(bstart <= bdst
++ && bdst <= au_dbend(dentry)
++ && au_h_dptr(dentry, bdst));
++ AuDebugOn(!h_parent);
++ /* todo: safe? */
++ parent = dget_parent(dentry);
++ dir = parent->d_inode;
++ dput(parent);
++ h_dir = h_parent->d_inode;
++ AuDebugOn(!h_dir);
++ AuDebugOn(h_dir != au_h_iptr(dir, bdst));
++ IMustLock(h_dir);
++
++ err = au_lkup_neg(dentry, bdst);
++ if (unlikely(err < 0))
++ goto out;
++ h_dentry = au_h_dptr(dentry, bdst);
++ dlgt = !!au_test_dlgt(au_mntflags(dentry->d_sb));
++ err = vfsub_sio_mkdir(au_hi(dir, bdst), h_dentry,
++ S_IRWXU | S_IRUGO | S_IXUGO, dlgt);
++ if (unlikely(err))
++ goto out_put;
++
++ made_dir = 1;
++ bend = au_dbend(dentry);
++ bopq = au_dbdiropq(dentry);
++ whed = (au_dbwh(dentry) == bdst);
++ if (!args->parent_opq)
++ args->parent_opq |= (bopq <= bdst);
++ parent_opq = (args->parent_opq && args->parent == dentry);
++ do_opq = 0;
++ diropq = 0;
++ h_inode = h_dentry->d_inode;
++ vfsub_i_lock_nested(h_inode, AuLsc_I_CHILD);
++ if (whed || (parent_opq && do_opq)) {
++ opq_dentry = au_diropq_create(dentry, bdst, dlgt);
++ err = PTR_ERR(opq_dentry);
++ if (IS_ERR(opq_dentry)) {
++ vfsub_i_unlock(h_inode);
++ goto out_dir;
++ }
++ dput(opq_dentry);
++ diropq = 1;
++ }
++
++ err = au_cpdown_attr(au_hi(dir, bdst), h_dentry,
++ au_h_dptr(dentry, bstart));
++ vfsub_i_unlock(h_inode);
++ if (unlikely(err))
++ goto out_opq;
++
++ wh_dentry = NULL;
++ if (whed) {
++ wh_dentry = au_wh_lkup(h_parent, &dentry->d_name, /*ndx*/NULL);
++ err = PTR_ERR(wh_dentry);
++ if (IS_ERR(wh_dentry))
++ goto out_opq;
++ err = 0;
++ if (wh_dentry->d_inode)
++ err = au_wh_unlink_dentry(au_hi(dir, bdst), wh_dentry,
++ dentry, dlgt);
++ dput(wh_dentry);
++ if (unlikely(err))
++ goto out_opq;
++ }
++
++ inode = dentry->d_inode;
++ if (au_ibend(inode) < bdst)
++ au_set_ibend(inode, bdst);
++ au_set_h_iptr(inode, bdst, au_igrab(h_inode), au_hi_flags(inode, 1));
++ goto out; /* success */
++
++ /* revert */
++ out_opq:
++ if (diropq) {
++ vfsub_i_lock_nested(h_inode, AuLsc_I_CHILD);
++ rerr = au_diropq_remove(dentry, bdst, dlgt);
++ vfsub_i_unlock(h_inode);
++ if (unlikely(rerr)) {
++ AuIOErr("failed removing diropq for %.*s b%d (%d)\n",
++ AuDLNPair(dentry), bdst, rerr);
++ err = -EIO;
++ goto out;
++ }
++ }
++ out_dir:
++ if (made_dir) {
++ rerr = vfsub_sio_rmdir(au_hi(dir, bdst), h_dentry, dlgt);
++ if (unlikely(rerr)) {
++ AuIOErr("failed removing %.*s b%d (%d)\n",
++ AuDLNPair(dentry), bdst, rerr);
++ err = -EIO;
++ }
++ }
++ out_put:
++ au_set_h_dptr(dentry, bdst, NULL);
++ if (au_dbend(dentry) == bdst)
++ au_update_dbend(dentry);
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++int au_cpdown_dirs(struct dentry *dentry, aufs_bindex_t bdst)
++{
++ int err;
++ struct au_cpdown_dir_args args = {
++ .parent = dget_parent(dentry),
++ .parent_opq = 0
++ };
++
++ LKTRTrace("%.*s, b%d\n", AuDLNPair(dentry), bdst);
++
++ err = au_cp_dirs(dentry, bdst, au_cpdown_dir, &args);
++ dput(args.parent);
++
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/* policies for create */
++
++static int au_wbr_bu(struct super_block *sb, aufs_bindex_t bindex)
++{
++ for (; bindex >= 0; bindex--)
++ if (!au_br_rdonly(au_sbr(sb, bindex)))
++ return bindex;
++ return -EROFS;
++}
++
++/* top down parent */
++static int au_wbr_create_tdp(struct dentry *dentry, int isdir)
++{
++ int err;
++ struct super_block *sb;
++ aufs_bindex_t bstart, bindex;
++ unsigned char dirperm1;
++ struct dentry *parent, *h_parent;
++ struct inode *h_dir;
++
++ LKTRTrace("%.*s, dir %d\n", AuDLNPair(dentry), isdir);
++
++ sb = dentry->d_sb;
++ dirperm1 = !!au_test_dirperm1(au_mntflags(sb));
++ bstart = au_dbstart(dentry);
++ AuDebugOn(bstart < 0);
++ err = bstart;
++ /* todo: can 'err' be an illegal? */
++ if (/* err >= 0 && */ !au_br_rdonly(au_sbr(sb, bstart)))
++ goto out;
++
++ err = -EROFS;
++ parent = dget_parent(dentry);
++ for (bindex = au_dbstart(parent); bindex < bstart; bindex++) {
++ h_parent = au_h_dptr(parent, bindex);
++ if (!h_parent)
++ continue;
++ h_dir = h_parent->d_inode;
++ if (!h_dir)
++ continue;
++
++ if (!au_br_rdonly(au_sbr(sb, bindex))
++ && (!dirperm1
++ || au_test_h_perm(h_dir, MAY_WRITE | MAY_EXEC,
++ /*dlgt*/0))) {
++ err = bindex;
++ break;
++ }
++ }
++ dput(parent);
++
++ /* bottom up here */
++ if (unlikely(err < 0))
++ err = au_wbr_bu(sb, bstart - 1);
++
++ out:
++ LKTRTrace("b%d\n", err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/* an exception for the policy other than tdp */
++static int au_wbr_create_exp(struct dentry *dentry)
++{
++ int err;
++ struct dentry *parent;
++ aufs_bindex_t bwh, bdiropq;
++
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++
++ err = -1;
++ bwh = au_dbwh(dentry);
++ parent = dget_parent(dentry);
++ bdiropq = au_dbdiropq(parent);
++ if (bwh >= 0) {
++ if (bdiropq >= 0)
++ err = min(bdiropq, bwh);
++ else
++ err = bwh;
++ LKTRTrace("%d\n", err);
++ } else if (bdiropq >= 0) {
++ err = bdiropq;
++ LKTRTrace("%d\n", err);
++ }
++ dput(parent);
++
++ if (err >= 0 && au_br_rdonly(au_sbr(dentry->d_sb, err)))
++ err = -1;
++
++ LKTRTrace("%d\n", err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/* round robin */
++static int au_wbr_create_init_rr(struct super_block *sb)
++{
++ int err;
++
++ err = au_wbr_bu(sb, au_sbend(sb));
++ atomic_set(&au_sbi(sb)->si_wbr_rr_next, -err); /* less important */
++
++ LKTRTrace("b%d\n", err);
++ return err;
++}
++
++static int au_wbr_create_rr(struct dentry *dentry, int isdir)
++{
++ int err, nbr;
++ struct super_block *sb;
++ atomic_t *next;
++ unsigned int u;
++ aufs_bindex_t bindex, bend;
++
++ LKTRTrace("%.*s, dir %d\n", AuDLNPair(dentry), isdir);
++
++ sb = dentry->d_sb;
++ next = NULL;
++ err = au_wbr_create_exp(dentry);
++ if (err >= 0)
++ goto out;
++
++ next = &au_sbi(sb)->si_wbr_rr_next;
++ bend = au_sbend(sb);
++ nbr = bend + 1;
++ for (bindex = 0; bindex <= bend; bindex++) {
++ if (!isdir) {
++ err = atomic_dec_return(next) + 1;
++ /* modulo for 0 is meaningless */
++ if (unlikely(!err))
++ err = atomic_dec_return(next) + 1;
++ } else
++ err = atomic_read(next);
++ LKTRTrace("%d\n", err);
++ u = err;
++ err = u % nbr;
++ LKTRTrace("%d\n", err);
++ if (!au_br_rdonly(au_sbr(sb, err)))
++ break;
++ err = -EROFS;
++ }
++
++ out:
++ LKTRTrace("%d\n", err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/* most free space */
++static void *au_wbr_statfs_arg(struct au_branch *br, struct super_block *sb,
++ aufs_bindex_t bindex)
++{
++ struct super_block *h_sb;
++
++ h_sb = br->br_mnt->mnt_sb;
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18)
++ return h_sb;
++#else
++ if (!au_test_nfs(h_sb))
++ return h_sb->s_root;
++
++ /* sigh,,, why nfs s_root has wrong inode? */
++ return au_di(sb->s_root)->di_hdentry[0 + bindex].hd_dentry;
++#endif
++}
++
++static void au_mfs(struct dentry *dentry)
++{
++ struct super_block *sb;
++ aufs_bindex_t bindex, bend;
++ unsigned char dlgt;
++ int err;
++ struct kstatfs st;
++ unsigned long long b, bavail;
++ void *arg;
++ struct au_branch *br;
++ struct au_wbr_mfs *mfs;
++
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++
++ bavail = 0;
++ sb = dentry->d_sb;
++ mfs = &au_sbi(sb)->si_wbr_mfs;
++ mfs->mfs_bindex = -EROFS;
++ mfs->mfsrr_bytes = 0;
++ dlgt = !!au_test_dlgt(au_mntflags(sb));
++ bend = au_sbend(sb);
++ for (bindex = 0; bindex <= bend; bindex++) {
++ br = au_sbr(sb, bindex);
++ if (au_br_rdonly(br))
++ continue;
++ AuDebugOn(!br->br_wbr);
++ arg = au_wbr_statfs_arg(br, sb, bindex);
++ if (!arg)
++ continue;
++
++ err = vfsub_statfs(arg, &st, dlgt);
++ LKTRTrace("b%d, %d, %llu\n",
++ bindex, err, (unsigned long long)st.f_bavail);
++ if (unlikely(err)) {
++ AuWarn1("failed statfs, b%d, %d\n", bindex, err);
++ continue;
++ }
++
++ /* when the available size is equal, select lower one */
++ b = st.f_bavail * st.f_bsize;
++ br->br_wbr->wbr_bytes = b;
++ if (b >= bavail) {
++ bavail = b;
++ mfs->mfs_bindex = bindex;
++ mfs->mfs_jiffy = jiffies;
++ }
++ }
++
++ mfs->mfsrr_bytes = bavail;
++ LKTRTrace("b%d\n", mfs->mfs_bindex);
++}
++
++static int au_wbr_create_mfs(struct dentry *dentry, int isdir)
++{
++ int err;
++ struct super_block *sb;
++ struct au_wbr_mfs *mfs;
++
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++
++ sb = dentry->d_sb;
++ err = au_wbr_create_exp(dentry);
++ if (err >= 0)
++ goto out;
++
++ mfs = &au_sbi(sb)->si_wbr_mfs;
++ mutex_lock(&mfs->mfs_lock);
++ if (unlikely(time_after(jiffies, mfs->mfs_jiffy + mfs->mfs_expire)
++ || mfs->mfs_bindex < 0
++ || au_br_rdonly(au_sbr(sb, mfs->mfs_bindex))))
++ au_mfs(dentry);
++ mutex_unlock(&mfs->mfs_lock);
++ err = mfs->mfs_bindex;
++
++ out:
++ LKTRTrace("b%d\n", err);
++ return err;
++}
++
++static int au_wbr_create_init_mfs(struct super_block *sb)
++{
++ struct au_wbr_mfs *mfs;
++
++ mfs = &au_sbi(sb)->si_wbr_mfs;
++ LKTRTrace("expire %lu\n", mfs->mfs_expire);
++
++ mutex_init(&mfs->mfs_lock);
++ mfs->mfs_jiffy = 0;
++ mfs->mfs_bindex = -EROFS;
++
++ return 0;
++}
++
++static int au_wbr_create_fin_mfs(struct super_block *sb)
++{
++ AuTraceEnter();
++ mutex_destroy(&au_sbi(sb)->si_wbr_mfs.mfs_lock);
++ return 0;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/* most free space and then round robin */
++static int au_wbr_create_mfsrr(struct dentry *dentry, int isdir)
++{
++ int err;
++ struct au_wbr_mfs *mfs;
++
++ LKTRTrace("%.*s, %d\n", AuDLNPair(dentry), isdir);
++
++ err = au_wbr_create_mfs(dentry, isdir);
++ if (err >= 0) {
++ mfs = &au_sbi(dentry->d_sb)->si_wbr_mfs;
++ LKTRTrace("%llu bytes, %llu wmark\n",
++ mfs->mfsrr_bytes, mfs->mfsrr_watermark);
++ if (mfs->mfsrr_bytes < mfs->mfsrr_watermark)
++ err = au_wbr_create_rr(dentry, isdir);
++ }
++
++ LKTRTrace("b%d\n", err);
++ return err;
++}
++
++static int au_wbr_create_init_mfsrr(struct super_block *sb)
++{
++ int err;
++
++ au_wbr_create_init_mfs(sb); /* ignore */
++ err = au_wbr_create_init_rr(sb);
++
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/* top down parent and most free space */
++static int au_wbr_create_pmfs(struct dentry *dentry, int isdir)
++{
++ int err, e2;
++ struct super_block *sb;
++ struct dentry *parent, *h_parent;
++ aufs_bindex_t bindex, bstart, bend;
++ unsigned char dirperm1;
++ struct au_branch *br;
++ unsigned long long b;
++ struct inode *h_dir;
++
++ LKTRTrace("%.*s, %d\n", AuDLNPair(dentry), isdir);
++
++ err = au_wbr_create_tdp(dentry, isdir);
++ if (unlikely(err < 0))
++ goto out;
++ parent = dget_parent(dentry);
++ bstart = au_dbstart(parent);
++ bend = au_dbtaildir(parent);
++ if (bstart == bend)
++ goto out_parent; /* success */
++
++ e2 = au_wbr_create_mfs(dentry, isdir);
++ if (e2 < 0)
++ goto out_parent; /* success */
++
++ /* when the available size is equal, select upper one */
++ sb = dentry->d_sb;
++ br = au_sbr(sb, err);
++ AuDebugOn(!br->br_wbr);
++ dirperm1 = !!au_test_dirperm1(au_mntflags(sb));
++ b = br->br_wbr->wbr_bytes;
++ LKTRTrace("b%d, %llu\n", err, b);
++
++ if (dirperm1) {
++ for (bindex = bstart; bindex <= bend; bindex++) {
++ h_parent = au_h_dptr(parent, bindex);
++ if (!h_parent)
++ continue;
++ h_dir = h_parent->d_inode;
++ if (!h_dir)
++ continue;
++
++ br = au_sbr(sb, bindex);
++ if (!au_br_rdonly(br)
++ && au_test_h_perm(h_dir, MAY_WRITE | MAY_EXEC,
++ /*dlgt*/0)
++ && br->br_wbr->wbr_bytes > b) {
++ b = br->br_wbr->wbr_bytes;
++ err = bindex;
++ LKTRTrace("b%d, %llu\n", err, b);
++ }
++ }
++ if (err >= 0)
++ goto out_parent;
++ }
++ for (bindex = bstart; bindex <= bend; bindex++) {
++ h_parent = au_h_dptr(parent, bindex);
++ if (!h_parent || !h_parent->d_inode)
++ continue;
++
++ br = au_sbr(sb, bindex);
++ if (!au_br_rdonly(br) && br->br_wbr->wbr_bytes > b) {
++ b = br->br_wbr->wbr_bytes;
++ err = bindex;
++ LKTRTrace("b%d, %llu\n", err, b);
++ }
++ }
++
++ out_parent:
++ dput(parent);
++ out:
++ LKTRTrace("b%d\n", err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/* policies for copyup */
++
++/* top down parent */
++static int au_wbr_copyup_tdp(struct dentry *dentry)
++{
++ return au_wbr_create_tdp(dentry, /*isdir, anything is ok*/0);
++}
++
++/* bottom up parent */
++static int au_wbr_copyup_bup(struct dentry *dentry)
++{
++ int err;
++ struct dentry *parent, *h_parent;
++ aufs_bindex_t bindex, bstart;
++ unsigned char dirperm1;
++ struct super_block *sb;
++ struct inode *h_dir;
++
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++
++ err = -EROFS;
++ sb = dentry->d_sb;
++ dirperm1 = !!au_test_dirperm1(au_mntflags(sb));
++ parent = dget_parent(dentry);
++ bstart = au_dbstart(parent);
++ for (bindex = au_dbstart(dentry); bindex >= bstart; bindex--) {
++ h_parent = au_h_dptr(parent, bindex);
++ if (!h_parent)
++ continue;
++ h_dir = h_parent->d_inode;
++ if (!h_dir)
++ continue;
++
++ if (!au_br_rdonly(au_sbr(sb, bindex))
++ && (!dirperm1
++ || au_test_h_perm(h_dir, MAY_WRITE | MAY_EXEC,
++ /*dlgt*/0))) {
++ err = bindex;
++ break;
++ }
++ }
++ dput(parent);
++
++ /* bottom up here */
++ if (unlikely(err < 0))
++ err = au_wbr_bu(sb, bstart - 1);
++
++ LKTRTrace("b%d\n", err);
++ return err;
++}
++
++/* bottom up */
++static int au_wbr_copyup_bu(struct dentry *dentry)
++{
++ int err;
++
++ LKTRTrace("%.*s\n", AuDLNPair(dentry));
++
++ err = au_wbr_bu(dentry->d_sb, au_dbstart(dentry));
++
++ LKTRTrace("b%d\n", err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct au_wbr_copyup_operations au_wbr_copyup_ops[] = {
++ [AuWbrCopyup_TDP] = {
++ .copyup = au_wbr_copyup_tdp
++ },
++ [AuWbrCopyup_BUP] = {
++ .copyup = au_wbr_copyup_bup
++ },
++ [AuWbrCopyup_BU] = {
++ .copyup = au_wbr_copyup_bu
++ }
++};
++
++struct au_wbr_create_operations au_wbr_create_ops[] = {
++ [AuWbrCreate_TDP] = {
++ .create = au_wbr_create_tdp
++ },
++ [AuWbrCreate_RR] = {
++ .create = au_wbr_create_rr,
++ .init = au_wbr_create_init_rr
++ },
++ [AuWbrCreate_MFS] = {
++ .create = au_wbr_create_mfs,
++ .init = au_wbr_create_init_mfs,
++ .fin = au_wbr_create_fin_mfs
++ },
++ [AuWbrCreate_MFSV] = {
++ .create = au_wbr_create_mfs,
++ .init = au_wbr_create_init_mfs,
++ .fin = au_wbr_create_fin_mfs
++ },
++ [AuWbrCreate_MFSRR] = {
++ .create = au_wbr_create_mfsrr,
++ .init = au_wbr_create_init_mfsrr,
++ .fin = au_wbr_create_fin_mfs
++ },
++ [AuWbrCreate_MFSRRV] = {
++ .create = au_wbr_create_mfsrr,
++ .init = au_wbr_create_init_mfsrr,
++ .fin = au_wbr_create_fin_mfs
++ },
++ [AuWbrCreate_PMFS] = {
++ .create = au_wbr_create_pmfs,
++ .init = au_wbr_create_init_mfs,
++ .fin = au_wbr_create_fin_mfs
++ },
++ [AuWbrCreate_PMFSV] = {
++ .create = au_wbr_create_pmfs,
++ .init = au_wbr_create_init_mfs,
++ .fin = au_wbr_create_fin_mfs
++ }
++};
+diff --git a/fs/aufs/whout.c b/fs/aufs/whout.c
+new file mode 100644
+index 0000000..79f44dd
+--- /dev/null
++++ b/fs/aufs/whout.c
+@@ -0,0 +1,1162 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * whiteout for logical deletion and opaque directory
++ *
++ * $Id: whout.c,v 1.47 2009/01/26 06:24:19 sfjro Exp $
++ */
++
++#include <linux/fs.h>
++#include <linux/namei.h>
++#include <linux/random.h>
++#include <linux/security.h>
++#include "aufs.h"
++
++#define WH_MASK S_IRUGO
++
++/* If a directory contains this file, then it is opaque. We start with the
++ * .wh. flag so that it is blocked by lookup.
++ */
++static struct qstr diropq_name = {
++ .name = AUFS_WH_DIROPQ,
++ .len = sizeof(AUFS_WH_DIROPQ) - 1
++};
++
++/*
++ * generate whiteout name, which is NOT terminated by NULL.
++ * @name: original d_name.name
++ * @len: original d_name.len
++ * @wh: whiteout qstr
++ * returns zero when succeeds, otherwise error.
++ * succeeded value as wh->name should be freed by au_wh_name_free().
++ */
++int au_wh_name_alloc(const char *name, int len, struct qstr *wh)
++{
++ char *p;
++
++ AuDebugOn(!name || !len || !wh);
++
++ if (unlikely(len > PATH_MAX - AUFS_WH_PFX_LEN))
++ return -ENAMETOOLONG;
++
++ wh->len = len + AUFS_WH_PFX_LEN;
++ p = kmalloc(wh->len, GFP_NOFS);
++ wh->name = p;
++ if (p) {
++ memcpy(p, AUFS_WH_PFX, AUFS_WH_PFX_LEN);
++ memcpy(p + AUFS_WH_PFX_LEN, name, len);
++ /* smp_mb(); */
++ return 0;
++ }
++ return -ENOMEM;
++}
++
++void au_wh_name_free(struct qstr *wh)
++{
++ AuDebugOn(!wh || !wh->name);
++ kfree(wh->name);
++}
++
++/* ---------------------------------------------------------------------- */
++
++/*
++ * test if the @wh_name exists under @h_parent.
++ * @try_sio specifies the necessary of super-io.
++ */
++int au_wh_test(struct dentry *h_parent, struct qstr *wh_name, int try_sio,
++ struct au_ndx *ndx)
++{
++ int err;
++ struct dentry *wh_dentry;
++ struct inode *h_dir;
++ unsigned int flags;
++
++ LKTRTrace("%.*s/%.*s, ndx{%p, 0x%x}\n", AuDLNPair(h_parent),
++ wh_name->len, wh_name->name, ndx->nfsmnt, ndx->flags);
++ h_dir = h_parent->d_inode;
++ AuDebugOn(!S_ISDIR(h_dir->i_mode));
++
++ flags = 0;
++ if (ndx && ndx->nd) {
++ flags = ndx->nd->flags;
++ ndx->nd->flags &= ~(LOOKUP_OPEN | LOOKUP_CREATE);
++ }
++
++ if (!try_sio)
++ wh_dentry = au_lkup_one(wh_name->name, h_parent,
++ wh_name->len, ndx);
++ else
++ wh_dentry = au_sio_lkup_one(wh_name->name, h_parent,
++ wh_name->len, ndx);
++ if (flags)
++ ndx->nd->flags = flags;
++ err = PTR_ERR(wh_dentry);
++ if (IS_ERR(wh_dentry))
++ goto out;
++
++ err = 0;
++ if (!wh_dentry->d_inode)
++ goto out_wh; /* success */
++
++ err = 1;
++ if (S_ISREG(wh_dentry->d_inode->i_mode))
++ goto out_wh; /* success */
++
++ err = -EIO;
++ AuIOErr("%.*s Invalid whiteout entry type 0%o.\n",
++ AuDLNPair(wh_dentry), wh_dentry->d_inode->i_mode);
++
++ out_wh:
++ dput(wh_dentry);
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/*
++ * test if the @h_dentry sets opaque or not.
++ */
++int au_diropq_test(struct dentry *h_dentry, struct au_ndx *ndx)
++{
++ int err, try_sio;
++ struct inode *h_dir;
++
++ LKTRTrace("dentry %.*s\n", AuDLNPair(h_dentry));
++ h_dir = h_dentry->d_inode;
++ AuDebugOn(!S_ISDIR(h_dir->i_mode));
++
++ try_sio = au_test_h_perm_sio(h_dir, MAY_EXEC,
++ au_ftest_ndx(ndx->flags, DLGT));
++ err = au_wh_test(h_dentry, &diropq_name, try_sio, ndx);
++ AuTraceErr(err);
++ return err;
++}
++
++/*
++ * returns a negative dentry whose name is unique and temporary.
++ */
++struct dentry *au_whtmp_lkup(struct dentry *h_parent, struct qstr *prefix,
++ struct au_ndx *ndx)
++{
++#define HEX_LEN 4
++ struct dentry *dentry;
++ int len, i;
++ char defname[AUFS_WH_PFX_LEN * 2 + DNAME_INLINE_LEN_MIN + 1
++ + HEX_LEN + 1], *name, *p;
++ static unsigned char cnt;
++
++ LKTRTrace("hp %.*s, prefix %.*s\n",
++ AuDLNPair(h_parent), prefix->len, prefix->name);
++ AuDebugOn(!h_parent->d_inode);
++
++ name = defname;
++ len = sizeof(defname) - DNAME_INLINE_LEN_MIN + prefix->len - 1;
++ if (unlikely(prefix->len > DNAME_INLINE_LEN_MIN)) {
++ dentry = ERR_PTR(-ENAMETOOLONG);
++ if (unlikely(len >= PATH_MAX))
++ goto out;
++ dentry = ERR_PTR(-ENOMEM);
++ name = kmalloc(len + 1, GFP_NOFS);
++ if (unlikely(!name))
++ goto out;
++ }
++
++ /* doubly whiteout-ed */
++ memcpy(name, AUFS_WH_PFX AUFS_WH_PFX, AUFS_WH_PFX_LEN * 2);
++ p = name + AUFS_WH_PFX_LEN * 2;
++ memcpy(p, prefix->name, prefix->len);
++ p += prefix->len;
++ *p++ = '.';
++ AuDebugOn(name + len + 1 - p <= HEX_LEN);
++
++ for (i = 0; i < 3; i++) {
++ sprintf(p, "%.*d", HEX_LEN, cnt++);
++ dentry = au_sio_lkup_one(name, h_parent, len, ndx);
++ if (IS_ERR(dentry) || !dentry->d_inode)
++ goto out_name;
++ dput(dentry);
++ }
++ /* AuWarn("could not get random name\n"); */
++ dentry = ERR_PTR(-EEXIST);
++ AuDbg("%.*s\n", len, name);
++ BUG();
++
++ out_name:
++ if (name != defname)
++ kfree(name);
++ out:
++ AuTraceErrPtr(dentry);
++ return dentry;
++#undef HEX_LEN
++}
++
++/*
++ * rename the @dentry of @bindex to the whiteouted temporary name.
++ */
++int au_whtmp_ren(struct inode *dir, aufs_bindex_t bindex,
++ struct dentry *h_dentry)
++{
++ int err, dlgt;
++ struct inode *h_dir;
++ struct dentry *h_parent, *tmp_dentry;
++ struct super_block *sb;
++ unsigned int mnt_flags;
++ struct au_hin_ignore ign;
++ struct vfsub_args vargs;
++ struct au_ndx ndx = {
++ .flags = 0,
++ .nd = NULL,
++ /* .br = NULL */
++ };
++
++ LKTRTrace("%.*s\n", AuDLNPair(h_dentry));
++ AuDebugOn(!h_dentry->d_inode);
++ h_parent = h_dentry->d_parent; /* dir inode is locked */
++ h_dir = h_parent->d_inode;
++ IMustLock(h_dir);
++
++ sb = dir->i_sb;
++ mnt_flags = au_mntflags(sb);
++ dlgt = !!au_test_dlgt(mnt_flags);
++ if (dlgt)
++ au_fset_ndx(ndx.flags, DLGT);
++ ndx.nfsmnt = au_nfsmnt(sb, bindex);
++ tmp_dentry = au_whtmp_lkup(h_parent, &h_dentry->d_name, &ndx);
++ err = PTR_ERR(tmp_dentry);
++ if (IS_ERR(tmp_dentry))
++ goto out;
++
++ /* under the same dir, no need to lock_rename() */
++ vfsub_args_init(&vargs, &ign, dlgt, 0);
++ AuDebugOn(!S_ISDIR(h_dentry->d_inode->i_mode));
++ vfsub_ign_hinode(&vargs, IN_MOVED_FROM | IN_MOVED_TO,
++ au_hi(dir, bindex));
++ err = vfsub_rename(h_dir, h_dentry, h_dir, tmp_dentry, &vargs);
++ AuTraceErr(err);
++ dput(tmp_dentry);
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++static int do_unlink_wh(struct au_hinode *hdir, struct inode *h_dir,
++ struct dentry *wh_dentry, const int dlgt)
++{
++ int err;
++ struct au_hin_ignore ign;
++ struct vfsub_args vargs;
++
++ AuDebugOn(hdir && h_dir);
++ AuDebugOn(!hdir && !h_dir);
++ if (!h_dir)
++ h_dir = hdir->hi_inode;
++ LKTRTrace("hi%lu, wh %.*s\n", h_dir->i_ino, AuDLNPair(wh_dentry));
++ AuDebugOn(!wh_dentry->d_inode || !S_ISREG(wh_dentry->d_inode->i_mode));
++
++ /*
++ * forces superio when the dir has a sticky bit.
++ * this may be a violation of unix fs semantics.
++ */
++ vfsub_args_init(&vargs, &ign, dlgt,
++ (h_dir->i_mode & S_ISVTX)
++ && wh_dentry->d_inode->i_uid != current->fsuid);
++ vfsub_ign_hinode(&vargs, IN_DELETE, hdir);
++ err = vfsub_unlink(h_dir, wh_dentry, &vargs);
++ AuTraceErr(err);
++ return err;
++}
++
++int au_wh_unlink_dentry(struct au_hinode *hdir, struct dentry *wh_dentry,
++ struct dentry *dentry, int dlgt)
++{
++ int err;
++
++ LKTRTrace("i%lu, wh %.*s, d %p\n",
++ hdir->hi_inode->i_ino, AuDLNPair(wh_dentry), dentry);
++ AuDebugOn((dentry && au_dbwh(dentry) < 0)
++ || !wh_dentry->d_inode
++ || !S_ISREG(wh_dentry->d_inode->i_mode));
++
++ err = do_unlink_wh(hdir, /*h_dir*/NULL, wh_dentry, dlgt);
++ if (!err && dentry)
++ au_set_dbwh(dentry, -1);
++
++ AuTraceErr(err);
++ return err;
++}
++
++static int unlink_wh_name(struct dentry *h_parent, struct qstr *wh,
++ struct au_ndx *ndx)
++{
++ int err;
++ struct dentry *wh_dentry;
++
++ LKTRTrace("%.*s/%.*s\n", AuDLNPair(h_parent), AuLNPair(wh));
++
++ /* au_test_h_perm() is already done */
++ wh_dentry = au_lkup_one(wh->name, h_parent, wh->len, ndx);
++ if (IS_ERR(wh_dentry))
++ err = PTR_ERR(wh_dentry);
++ else {
++ err = 0;
++ if (wh_dentry->d_inode && S_ISREG(wh_dentry->d_inode->i_mode))
++ err = do_unlink_wh(/*hdir*/NULL, h_parent->d_inode,
++ wh_dentry,
++ au_ftest_ndx(ndx->flags, DLGT));
++ dput(wh_dentry);
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++static void clean_wh(struct inode *h_dir, struct path *whpath,
++ struct au_hinode *hdir, struct vfsub_args *vargs)
++{
++ int err;
++
++ AuTraceEnter();
++
++ if (!whpath->dentry->d_inode)
++ return;
++
++ err = au_mnt_want_write(whpath->mnt);
++ if (!err) {
++ vfsub_args_reinit(vargs);
++ vfsub_ign_hinode(vargs, IN_DELETE, hdir);
++ err = vfsub_unlink(h_dir, whpath->dentry, vargs);
++ au_mnt_drop_write(whpath->mnt);
++ }
++ if (unlikely(err))
++ AuWarn("failed unlink %.*s (%d), ignored.\n",
++ AuDLNPair(whpath->dentry), err);
++}
++
++static void au_whdir_clean(struct inode *h_dir, struct path *whpath,
++ struct au_hinode *hdir, struct vfsub_args *vargs)
++{
++ int err;
++
++ AuTraceEnter();
++
++ if (!whpath->dentry->d_inode)
++ return;
++
++ err = au_mnt_want_write(whpath->mnt);
++ if (!err) {
++ vfsub_args_reinit(vargs);
++ vfsub_ign_hinode(vargs, IN_DELETE, hdir);
++ err = vfsub_rmdir(h_dir, whpath->dentry, vargs);
++ au_mnt_drop_write(whpath->mnt);
++ }
++ if (unlikely(err))
++ AuWarn("failed rmdir %.*s (%d), ignored.\n",
++ AuDLNPair(whpath->dentry), err);
++}
++
++static int test_linkable(struct inode *h_dir)
++{
++ if (h_dir->i_op && h_dir->i_op->link)
++ return 0;
++ return -ENOSYS;
++}
++
++/* todo: should this mkdir be done in /sbin/mount.aufs script? */
++static int au_whdir(struct inode *h_dir, struct path *path,
++ struct au_hinode *hdir, struct vfsub_args *vargs)
++{
++ int err;
++
++ err = -EEXIST;
++ if (!path->dentry->d_inode) {
++ int mode = S_IRWXU;
++ if (au_test_nfs(path->dentry->d_sb))
++ mode |= S_IXUGO;
++ err = au_mnt_want_write(path->mnt);
++ if (!err) {
++ vfsub_args_reinit(vargs);
++ vfsub_ign_hinode(vargs, IN_CREATE, hdir);
++ err = vfsub_mkdir(h_dir, path->dentry, mode, vargs);
++ au_mnt_drop_write(path->mnt);
++ }
++ } else if (S_ISDIR(path->dentry->d_inode->i_mode))
++ err = 0;
++ else
++ AuErr("unknown %.*s exists\n", AuDLNPair(path->dentry));
++
++ return err;
++}
++
++/*
++ * initialize the whiteout base file/dir for @br.
++ */
++int au_wh_init(struct dentry *h_root, struct au_branch *br,
++ struct vfsmount *h_mnt, struct super_block *sb,
++ aufs_bindex_t bindex)
++{
++ int err, i;
++ const unsigned int mnt_flags = au_mntflags(sb);
++ const unsigned char do_plink = !!au_opt_test(mnt_flags, PLINK),
++ do_hinotify = au_opt_test(mnt_flags, UDBA_INOTIFY);
++ struct path path = {
++ .mnt = h_mnt
++ };
++ struct au_hin_ignore ign;
++ struct vfsub_args vargs;
++ struct inode *h_dir;
++ struct au_hinode *hdir;
++ struct au_wbr *wbr = br->br_wbr;
++ struct vfsmount *nfsmnt = au_do_nfsmnt(h_mnt);
++ static const struct qstr base_name[] = {
++ [AuBrWh_BASE] = {
++ .name = AUFS_BASE_NAME,
++ .len = sizeof(AUFS_BASE_NAME) - 1
++ },
++ [AuBrWh_PLINK] = {
++ .name = AUFS_PLINKDIR_NAME,
++ .len = sizeof(AUFS_PLINKDIR_NAME) - 1
++ },
++ [AuBrWh_TMP] = {
++ .name = AUFS_TMPDIR_NAME,
++ .len = sizeof(AUFS_TMPDIR_NAME) - 1
++ }
++ };
++ struct {
++ const struct qstr *name;
++ struct dentry *dentry;
++ } base[] = {
++ [AuBrWh_BASE] = {
++ .name = base_name + AuBrWh_BASE,
++ .dentry = NULL
++ },
++ [AuBrWh_PLINK] = {
++ .name = base_name + AuBrWh_PLINK,
++ .dentry = NULL
++ },
++ [AuBrWh_TMP] = {
++ .name = base_name + AuBrWh_TMP,
++ .dentry = NULL
++ }
++ };
++ struct au_ndx ndx = {
++ .nfsmnt = nfsmnt,
++ .flags = 0, /* always no dlgt */
++ .nd = NULL,
++ /* .br = NULL */
++ };
++
++ LKTRTrace("nfsmnt %p\n", nfsmnt);
++ WbrWhMustWriteLock(wbr);
++ SiMustWriteLock(sb);
++ h_dir = h_root->d_inode;
++
++ for (i = 0; i < AuBrWh_Last; i++) {
++ /* doubly whiteouted */
++ struct dentry *d;
++ d = au_wh_lkup(h_root, (void *)base[i].name, &ndx);
++ err = PTR_ERR(d);
++ if (IS_ERR(d))
++ goto out;
++ base[i].dentry = d;
++ if (!au_test_ecryptfs(d->d_sb))
++ AuDebugOn(wbr
++ && wbr->wbr_wh[i]
++ && wbr->wbr_wh[i] != base[i].dentry);
++ else
++ /* ecryptfs problem?: it returns different dentry */
++ AuDebugOn(wbr
++ && wbr->wbr_wh[i]
++ && !!wbr->wbr_wh[i] != !!base[i].dentry);
++ }
++
++ if (wbr)
++ for (i = 0; i < AuBrWh_Last; i++) {
++ dput(wbr->wbr_wh[i]);
++ wbr->wbr_wh[i] = NULL;
++ }
++
++ err = 0;
++ hdir = NULL;
++ if (bindex >= 0 && do_hinotify)
++ hdir = au_hi(sb->s_root->d_inode, bindex);
++ vfsub_args_init(&vargs, &ign, au_test_dlgt(mnt_flags), 0);
++
++ switch (br->br_perm) {
++ case AuBrPerm_RR:
++ case AuBrPerm_RO:
++ case AuBrPerm_RRWH:
++ case AuBrPerm_ROWH:
++ path.dentry = base[AuBrWh_BASE].dentry;
++ clean_wh(h_dir, &path, hdir, &vargs);
++ path.dentry = base[AuBrWh_PLINK].dentry;
++ au_whdir_clean(h_dir, &path, hdir, &vargs);
++ path.dentry = base[AuBrWh_TMP].dentry;
++ au_whdir_clean(h_dir, &path, hdir, &vargs);
++ break;
++
++ case AuBrPerm_RWNoLinkWH:
++ path.dentry = base[AuBrWh_BASE].dentry;
++ clean_wh(h_dir, &path, hdir, &vargs);
++ path.dentry = base[AuBrWh_PLINK].dentry;
++ if (do_plink) {
++ err = test_linkable(h_dir);
++ if (unlikely(err))
++ goto out_nolink;
++
++ err = au_whdir(h_dir, &path, hdir, &vargs);
++ if (unlikely(err))
++ goto out_err;
++ wbr->wbr_plink = dget(base[AuBrWh_PLINK].dentry);
++ } else
++ au_whdir_clean(h_dir, &path, hdir, &vargs);
++ path.dentry = base[AuBrWh_TMP].dentry;
++ err = au_whdir(h_dir, &path, hdir, &vargs);
++ if (unlikely(err))
++ goto out_err;
++ wbr->wbr_tmp = dget(base[AuBrWh_TMP].dentry);
++ break;
++
++ case AuBrPerm_RW:
++ /*
++ * for the moment, aufs supports the branch filesystem
++ * which does not support link(2).
++ * testing on FAT which does not support i_op->setattr() fully
++ * either, copyup failed.
++ * finally, such filesystem will not be used as the writable
++ * branch.
++ */
++ err = test_linkable(h_dir);
++ if (unlikely(err))
++ goto out_nolink;
++
++ err = -EEXIST;
++ /*
++ * todo: should this create be done
++ * in /sbin/mount.aufs script?
++ */
++ if (!base[AuBrWh_BASE].dentry->d_inode) {
++ err = au_mnt_want_write(h_mnt);
++ if (!err) {
++ vfsub_args_reinit(&vargs);
++ vfsub_ign_hinode(&vargs, IN_CREATE, hdir);
++ err = au_h_create
++ (h_dir, base[AuBrWh_BASE].dentry,
++ WH_MASK, &vargs, /*nd*/NULL, nfsmnt);
++ au_mnt_drop_write(h_mnt);
++ }
++ } else if (S_ISREG(base[AuBrWh_BASE].dentry->d_inode->i_mode))
++ err = 0;
++ else
++ AuErr("unknown %.*s/%.*s exists\n",
++ AuDLNPair(h_root),
++ AuDLNPair(base[AuBrWh_BASE].dentry));
++ if (unlikely(err))
++ goto out_err;
++
++ path.dentry = base[AuBrWh_PLINK].dentry;
++ if (do_plink) {
++ err = au_whdir(h_dir, &path, hdir, &vargs);
++ if (unlikely(err))
++ goto out_err;
++ wbr->wbr_plink = dget(base[AuBrWh_PLINK].dentry);
++ } else
++ au_whdir_clean(h_dir, &path, hdir, &vargs);
++ wbr->wbr_whbase = dget(base[AuBrWh_BASE].dentry);
++
++ path.dentry = base[AuBrWh_TMP].dentry;
++ err = au_whdir(h_dir, &path, hdir, &vargs);
++ if (unlikely(err))
++ goto out_err;
++ wbr->wbr_tmp = dget(base[AuBrWh_TMP].dentry);
++ break;
++
++ default:
++ BUG();
++ }
++
++ out:
++ for (i = 0; i < AuBrWh_Last; i++)
++ dput(base[i].dentry);
++ AuTraceErr(err);
++ return err;
++ out_nolink:
++ AuErr("%.*s doesn't support link(2), use noplink and rw+nolwh\n",
++ AuDLNPair(h_root));
++ goto out;
++ out_err:
++ AuErr("an error(%d) on the writable branch %.*s(%s)\n",
++ err, AuDLNPair(h_root), au_sbtype(h_root->d_sb));
++ goto out;
++}
++
++struct reinit_br_wh {
++ struct super_block *sb;
++ struct au_branch *br;
++};
++
++static void reinit_br_wh(void *arg)
++{
++ int err;
++ struct reinit_br_wh *a = arg;
++ struct au_wbr *wbr;
++ struct inode *h_dir, *dir;
++ struct dentry *h_root;
++ aufs_bindex_t bindex;
++ struct au_hin_ignore ign;
++ struct vfsub_args vargs;
++
++ AuTraceEnter();
++ AuDebugOn(current->fsuid);
++
++ err = 0;
++ wbr = a->br->br_wbr;
++ /* big aufs lock */
++ si_noflush_write_lock(a->sb);
++ if (!au_br_writable(a->br->br_perm))
++ goto out;
++ bindex = au_br_index(a->sb, a->br->br_id);
++ if (unlikely(bindex < 0))
++ goto out;
++
++ AuDebugOn(!wbr);
++ AuDebugOn(!wbr->wbr_whbase || !wbr->wbr_whbase->d_inode);
++
++ dir = a->sb->s_root->d_inode;
++ ii_read_lock_parent(dir);
++ h_root = dget_parent(wbr->wbr_whbase);
++ h_dir = h_root->d_inode;
++ AuDebugOn(!h_dir->i_op || !h_dir->i_op->link);
++ vfsub_i_lock_nested(h_dir, AuLsc_I_PARENT);
++ wbr_wh_write_lock(wbr);
++ if (!au_verify_parent(wbr->wbr_whbase, h_dir)) {
++ err = au_br_want_write(a->br);
++ if (!err) {
++ vfsub_args_init(&vargs, &ign, /*dlgt*/0, 0);
++ vfsub_ign_hinode(&vargs, IN_DELETE, au_hi(dir, bindex));
++ err = vfsub_unlink(h_dir, wbr->wbr_whbase, &vargs);
++ au_br_drop_write(a->br);
++ }
++ } else {
++ AuWarn("%.*s is moved, ignored\n", AuDLNPair(wbr->wbr_whbase));
++ err = 0;
++ }
++ dput(wbr->wbr_whbase);
++ wbr->wbr_whbase = NULL;
++ if (!err)
++ err = au_wh_init(h_root, a->br, a->br->br_mnt, a->sb, bindex);
++ wbr_wh_write_unlock(wbr);
++ vfsub_i_unlock(h_dir);
++ dput(h_root);
++ ii_read_unlock(dir);
++
++ out:
++ if (wbr)
++ atomic_dec_return(&wbr->wbr_wh_running);
++ au_br_put(a->br);
++ au_nwt_done(&au_sbi(a->sb)->si_nowait);
++ si_write_unlock(a->sb);
++ kfree(arg);
++ if (unlikely(err))
++ AuIOErr("err %d\n", err);
++}
++
++static void kick_reinit_br_wh(struct super_block *sb, struct au_branch *br)
++{
++ int do_dec, wkq_err;
++ struct reinit_br_wh *arg;
++
++ AuTraceEnter();
++ AuDebugOn(!br->br_wbr);
++
++ do_dec = 1;
++ if (atomic_inc_return(&br->br_wbr->wbr_wh_running) != 1)
++ goto out;
++
++ /* ignore ENOMEM */
++ arg = kmalloc(sizeof(*arg), GFP_NOFS);
++ if (arg) {
++ /*
++ * dec(wh_running), kfree(arg) and au_br_put()
++ * in reinit function
++ */
++ arg->sb = sb;
++ arg->br = br;
++ au_br_get(br);
++ wkq_err = au_wkq_nowait(reinit_br_wh, arg, sb, /*dlgt*/0);
++ if (unlikely(wkq_err)) {
++ atomic_dec_return(&br->br_wbr->wbr_wh_running);
++ au_br_put(br);
++ kfree(arg);
++ }
++ do_dec = 0;
++ }
++
++ out:
++ if (do_dec)
++ atomic_dec_return(&br->br_wbr->wbr_wh_running);
++}
++
++/*
++ * create the whiteout @wh.
++ */
++static int link_or_create_wh(struct super_block *sb, aufs_bindex_t bindex,
++ struct dentry *wh, struct inode *dir)
++{
++ int err, dlgt;
++ struct au_branch *br;
++ struct au_wbr *wbr;
++ struct dentry *h_parent;
++ struct inode *h_dir;
++ struct au_hin_ignore ign;
++ struct vfsub_args vargs;
++
++ LKTRTrace("%.*s\n", AuDLNPair(wh));
++ h_parent = wh->d_parent; /* dir inode is locked */
++ h_dir = h_parent->d_inode;
++ IMustLock(h_dir);
++ br = au_sbr(sb, bindex);
++ wbr = br->br_wbr;
++ AuDebugOn(!wbr);
++
++ dlgt = !!au_test_dlgt(au_mntflags(sb));
++ wbr_wh_read_lock(wbr);
++ if (wbr->wbr_whbase) {
++ vfsub_args_init(&vargs, &ign, dlgt, 0);
++ if (dir)
++ vfsub_ign_hinode(&vargs, IN_CREATE, au_hi(dir, bindex));
++ err = vfsub_link(wbr->wbr_whbase, h_dir, wh, &vargs);
++ if (!err || err != -EMLINK)
++ goto out;
++
++ /* link count full. re-initialize br_whbase. */
++ kick_reinit_br_wh(sb, br);
++ }
++
++ /* return this error in this context */
++ vfsub_args_init(&vargs, &ign, dlgt, 0);
++ if (dir)
++ vfsub_ign_hinode(&vargs, IN_CREATE, au_hi(dir, bindex));
++ err = au_h_create(h_dir, wh, WH_MASK, &vargs, /*nd*/NULL,
++ au_do_nfsmnt(br->br_mnt));
++
++ out:
++ wbr_wh_read_unlock(wbr);
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/*
++ * create or remove the diropq.
++ */
++static struct dentry *do_diropq(struct dentry *dentry, aufs_bindex_t bindex,
++ unsigned int flags)
++{
++ struct dentry *opq_dentry, *h_dentry;
++ struct inode *h_dir;
++ int err, dlgt;
++ struct super_block *sb;
++ struct au_ndx ndx = {
++ .flags = 0,
++ .nd = NULL,
++ /* .br = NULL */
++ };
++
++ LKTRTrace("%.*s, bindex %d, flags 0x%x\n",
++ AuDLNPair(dentry), bindex, flags);
++ h_dentry = au_h_dptr(dentry, bindex);
++ AuDebugOn(!h_dentry);
++ h_dir = h_dentry->d_inode;
++ AuDebugOn(!h_dir || !S_ISDIR(h_dir->i_mode));
++
++ /* already checked by au_test_h_perm(). */
++ sb = dentry->d_sb;
++ ndx.nfsmnt = au_nfsmnt(sb, bindex);
++ dlgt = 0;
++ if (au_ftest_diropq(flags, DLGT)) {
++ dlgt = 1;
++ au_fset_ndx(ndx.flags, DLGT);
++ }
++ opq_dentry = au_lkup_one(diropq_name.name, h_dentry, diropq_name.len,
++ &ndx);
++ if (IS_ERR(opq_dentry))
++ goto out;
++
++ if (au_ftest_diropq(flags, CREATE)) {
++ AuDebugOn(opq_dentry->d_inode);
++ err = link_or_create_wh(dentry->d_sb, bindex, opq_dentry,
++ dentry->d_inode);
++ if (!err) {
++ au_set_dbdiropq(dentry, bindex);
++ goto out; /* success */
++ }
++ } else {
++ AuDebugOn(/* !S_ISDIR(dentry->d_inode->i_mode)
++ * || */!opq_dentry->d_inode);
++ err = do_unlink_wh(au_hi(dentry->d_inode, bindex),
++ /*h_dir*/NULL, opq_dentry, dlgt);
++ if (!err)
++ au_set_dbdiropq(dentry, -1);
++ }
++ dput(opq_dentry);
++ opq_dentry = ERR_PTR(err);
++
++ out:
++ AuTraceErrPtr(opq_dentry);
++ return opq_dentry;
++}
++
++struct do_diropq_args {
++ struct dentry **errp;
++ struct dentry *dentry;
++ aufs_bindex_t bindex;
++ unsigned int flags;
++};
++
++static void call_do_diropq(void *args)
++{
++ struct do_diropq_args *a = args;
++ *a->errp = do_diropq(a->dentry, a->bindex, a->flags);
++}
++
++struct dentry *au_diropq_sio(struct dentry *dentry, aufs_bindex_t bindex,
++ unsigned int flags)
++{
++ struct dentry *diropq, *h_dentry;
++
++ LKTRTrace("%.*s, bindex %d, flags 0x%x\n",
++ AuDLNPair(dentry), bindex, flags);
++
++ h_dentry = au_h_dptr(dentry, bindex);
++ if (!au_test_h_perm_sio(h_dentry->d_inode, MAY_EXEC | MAY_WRITE,
++ au_ftest_diropq(flags, DLGT)))
++ diropq = do_diropq(dentry, bindex, flags);
++ else {
++ int wkq_err;
++ struct do_diropq_args args = {
++ .errp = &diropq,
++ .dentry = dentry,
++ .bindex = bindex,
++ .flags = flags
++ };
++ wkq_err = au_wkq_wait(call_do_diropq, &args, /*dlgt*/0);
++ if (unlikely(wkq_err))
++ diropq = ERR_PTR(wkq_err);
++ }
++
++ AuTraceErrPtr(diropq);
++ return diropq;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/*
++ * lookup whiteout dentry.
++ * @h_parent: hidden parent dentry which must exist and be locked
++ * @base_name: name of dentry which will be whiteouted
++ * returns dentry for whiteout.
++ */
++struct dentry *au_wh_lkup(struct dentry *h_parent, struct qstr *base_name,
++ struct au_ndx *ndx)
++{
++ int err;
++ struct qstr wh_name;
++ struct dentry *wh_dentry;
++
++ LKTRTrace("%.*s/%.*s\n", AuDLNPair(h_parent), AuLNPair(base_name));
++
++ err = au_wh_name_alloc(base_name->name, base_name->len, &wh_name);
++ wh_dentry = ERR_PTR(err);
++ if (!err) {
++ /* do not superio. */
++ wh_dentry = au_lkup_one(wh_name.name, h_parent,
++ wh_name.len, ndx);
++ au_wh_name_free(&wh_name);
++ }
++ AuTraceErrPtr(wh_dentry);
++ return wh_dentry;
++}
++
++/*
++ * link/create a whiteout for @dentry on @bindex.
++ */
++struct dentry *au_wh_create(struct dentry *dentry, aufs_bindex_t bindex,
++ struct dentry *h_parent, struct au_ndx *ndx)
++{
++ struct dentry *wh_dentry;
++ struct inode *dir;
++ int err;
++ struct super_block *sb;
++
++ LKTRTrace("%.*s/%.*s on b%d\n", AuDLNPair(h_parent),
++ AuDLNPair(dentry), bindex);
++
++ sb = dentry->d_sb;
++ wh_dentry = au_wh_lkup(h_parent, &dentry->d_name, ndx);
++ if (!IS_ERR(wh_dentry) && !wh_dentry->d_inode) {
++ dir = dentry->d_parent->d_inode; /* dir is locked */
++ IMustLock(dir);
++ err = link_or_create_wh(sb, bindex, wh_dentry, dir);
++ if (!err)
++ au_set_dbwh(dentry, bindex);
++ else {
++ dput(wh_dentry);
++ wh_dentry = ERR_PTR(err);
++ }
++ }
++
++ AuTraceErrPtr(wh_dentry);
++ return wh_dentry;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/* Delete all whiteouts in this directory on branch bindex. */
++static int del_wh_children(struct dentry *h_dentry, struct au_nhash *whlist,
++ aufs_bindex_t bindex, struct au_ndx *ndx)
++{
++ int err, i;
++ struct qstr wh_name;
++ char *p;
++ struct inode *h_inode;
++ struct hlist_head *head;
++ struct au_vdir_wh *tpos;
++ struct hlist_node *pos;
++ struct au_vdir_destr *str;
++
++ LKTRTrace("%.*s\n", AuDLNPair(h_dentry));
++ h_inode = h_dentry->d_inode;
++ AuDebugOn(IS_RDONLY(h_inode));
++
++ err = -ENOMEM;
++ p = __getname();
++ wh_name.name = p;
++ if (unlikely(!wh_name.name))
++ goto out;
++ memcpy(p, AUFS_WH_PFX, AUFS_WH_PFX_LEN);
++ p += AUFS_WH_PFX_LEN;
++
++ /* already checked by au_test_h_perm(). */
++ err = 0;
++ for (i = 0; !err && i < AuSize_NHASH; i++) {
++ head = whlist->heads + i;
++ hlist_for_each_entry(tpos, pos, head, wh_hash) {
++ if (tpos->wh_bindex != bindex)
++ continue;
++ str = &tpos->wh_str;
++ if (str->len + AUFS_WH_PFX_LEN <= PATH_MAX) {
++ memcpy(p, str->name, str->len);
++ wh_name.len = AUFS_WH_PFX_LEN + str->len;
++ err = unlink_wh_name(h_dentry, &wh_name, ndx);
++ if (!err)
++ continue;
++ break;
++ }
++ AuIOErr("whiteout name too long %.*s\n",
++ str->len, str->name);
++ err = -EIO;
++ break;
++ }
++ }
++ __putname(wh_name.name);
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++struct del_wh_children_args {
++ int *errp;
++ struct dentry *h_dentry;
++ struct au_nhash *whlist;
++ aufs_bindex_t bindex;
++ struct au_ndx *ndx;
++};
++
++static void call_del_wh_children(void *args)
++{
++ struct del_wh_children_args *a = args;
++ *a->errp = del_wh_children(a->h_dentry, a->whlist, a->bindex, a->ndx);
++}
++
++/* ---------------------------------------------------------------------- */
++
++/*
++ * rmdir the whiteouted temporary named dir @h_dentry.
++ * @whlist: whiteouted children.
++ */
++int au_whtmp_rmdir(struct inode *dir, aufs_bindex_t bindex,
++ struct dentry *wh_dentry, struct au_nhash *whlist)
++{
++ int err, dlgt;
++ struct inode *wh_inode, *h_dir;
++ struct super_block *sb;
++ unsigned int mnt_flags;
++ struct au_hin_ignore ign;
++ struct vfsub_args vargs;
++ struct au_ndx ndx = {
++ .flags = 0,
++ .nd = NULL,
++ /* .br = NULL */
++ };
++
++ LKTRTrace("i%lu, %.*s, b%d\n",
++ dir->i_ino, AuDLNPair(wh_dentry), bindex);
++ /* IMustLock(dir); */
++ IiMustAnyLock(dir);
++ h_dir = wh_dentry->d_parent->d_inode; /* dir inode is locked */
++ IMustLock(h_dir);
++
++ sb = dir->i_sb;
++ mnt_flags = au_mntflags(sb);
++ dlgt = !!au_test_dlgt(mnt_flags);
++ if (dlgt)
++ au_fset_ndx(ndx.flags, DLGT);
++ ndx.nfsmnt = au_nfsmnt(sb, bindex);
++ wh_inode = wh_dentry->d_inode;
++ vfsub_i_lock_nested(wh_inode, AuLsc_I_CHILD);
++
++ /*
++ * someone else might change some whiteouts while we were sleeping.
++ * it means this whlist may have an obsoleted entry.
++ */
++ if (!au_test_h_perm_sio(wh_inode, MAY_EXEC | MAY_WRITE, dlgt))
++ err = del_wh_children(wh_dentry, whlist, bindex, &ndx);
++ else {
++ int wkq_err;
++ /* ugly */
++ unsigned int flags = ndx.flags;
++ struct del_wh_children_args args = {
++ .errp = &err,
++ .h_dentry = wh_dentry,
++ .whlist = whlist,
++ .bindex = bindex,
++ .ndx = &ndx
++ };
++
++ ndx.flags = 0;
++ wkq_err = au_wkq_wait(call_del_wh_children, &args, /*dlgt*/0);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ ndx.flags = flags;
++ }
++ vfsub_i_unlock(wh_inode);
++
++ if (!err) {
++ vfsub_args_init(&vargs, &ign, dlgt, 0);
++ vfsub_ign_hinode(&vargs, IN_DELETE, au_hi(dir, bindex));
++ err = vfsub_rmdir(h_dir, wh_dentry, &vargs);
++ /* d_drop(h_dentry); */
++ }
++
++ if (!err) {
++ if (au_ibstart(dir) == bindex) {
++ au_cpup_attr_timesizes(dir);
++ /* au_cpup_attr_nlink(dir); */
++ dir->i_nlink--;
++ }
++ return 0; /* success */
++ }
++
++ AuWarn("failed removing %.*s(%d), ignored\n",
++ AuDLNPair(wh_dentry), err);
++ return err;
++}
++
++static void au_whtmp_rmdir_free_args(struct au_whtmp_rmdir_args *args)
++{
++ au_nhash_fin(&args->whlist);
++ dput(args->wh_dentry);
++ iput(args->dir);
++ kfree(args);
++}
++
++static void call_rmdir_whtmp(void *args)
++{
++ int err;
++ struct au_whtmp_rmdir_args *a = args;
++ struct super_block *sb;
++ struct dentry *h_parent;
++ struct inode *h_dir;
++
++ LKTRTrace("%.*s, b%d, dir i%lu\n",
++ AuDLNPair(a->wh_dentry), a->bindex, a->dir->i_ino);
++
++ /* rmdir by nfsd may cause deadlock with this i_mutex */
++ /* vfsub_i_lock(a->dir); */
++ sb = a->dir->i_sb;
++ si_noflush_read_lock(sb);
++ err = au_test_ro(sb, a->bindex, NULL);
++ if (unlikely(err))
++ goto out;
++
++ err = -EIO;
++ ii_write_lock_parent(a->dir);
++ h_parent = dget_parent(a->wh_dentry);
++ h_dir = h_parent->d_inode;
++ vfsub_i_lock_nested(h_dir, AuLsc_I_PARENT);
++ if (!au_verify_parent(a->wh_dentry, h_dir)) {
++ err = au_br_want_write(au_sbr(sb, a->bindex));
++ if (!err) {
++ err = au_whtmp_rmdir(a->dir, a->bindex, a->wh_dentry,
++ &a->whlist);
++ au_br_drop_write(au_sbr(sb, a->bindex));
++ }
++ }
++ vfsub_i_unlock(h_dir);
++ dput(h_parent);
++ ii_write_unlock(a->dir);
++
++ out:
++ /* vfsub_i_unlock(a->dir); */
++ au_nwt_done(&au_sbi(sb)->si_nowait);
++ si_read_unlock(sb);
++ au_whtmp_rmdir_free_args(a);
++ if (unlikely(err))
++ AuIOErr("err %d\n", err);
++}
++
++void au_whtmp_kick_rmdir(struct inode *dir, aufs_bindex_t bindex,
++ struct dentry *wh_dentry, struct au_nhash *whlist,
++ struct au_whtmp_rmdir_args *args)
++{
++ int wkq_err;
++
++ LKTRTrace("%.*s\n", AuDLNPair(wh_dentry));
++ IMustLock(dir);
++
++ /* all post-process will be done in do_rmdir_whtmp(). */
++ args->dir = au_igrab(dir);
++ args->bindex = bindex;
++ args->wh_dentry = dget(wh_dentry);
++ au_nhash_init(&args->whlist);
++ au_nhash_move(&args->whlist, whlist);
++ wkq_err = au_wkq_nowait(call_rmdir_whtmp, args, dir->i_sb, /*dlgt*/0);
++ if (unlikely(wkq_err)) {
++ AuWarn("rmdir error %.*s (%d), ignored\n",
++ AuDLNPair(wh_dentry), wkq_err);
++ au_whtmp_rmdir_free_args(args);
++ }
++}
+diff --git a/fs/aufs/whout.h b/fs/aufs/whout.h
+new file mode 100644
+index 0000000..056ca13
+--- /dev/null
++++ b/fs/aufs/whout.h
+@@ -0,0 +1,134 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * whiteout for logical deletion and opaque directory
++ *
++ * $Id: whout.h,v 1.20 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#ifndef __AUFS_WHOUT_H__
++#define __AUFS_WHOUT_H__
++
++#ifdef __KERNEL__
++
++#include <linux/fs.h>
++#include <linux/aufs_type.h>
++
++int au_wh_name_alloc(const char *name, int len, struct qstr *wh);
++void au_wh_name_free(struct qstr *wh);
++
++struct au_ndx;
++int au_wh_test(struct dentry *h_parent, struct qstr *wh_name, int try_sio,
++ struct au_ndx *ndx);
++int au_diropq_test(struct dentry *h_dentry, struct au_ndx *ndx);
++
++struct dentry *au_whtmp_lkup(struct dentry *h_parent, struct qstr *prefix,
++ struct au_ndx *ndx);
++int au_whtmp_ren(struct inode *dir, aufs_bindex_t bindex,
++ struct dentry *h_dentry);
++int au_wh_unlink_dentry(struct au_hinode *dir, struct dentry *wh_dentry,
++ struct dentry *dentry, int dlgt);
++
++struct au_branch;
++int au_wh_init(struct dentry *h_parent, struct au_branch *br,
++ struct vfsmount *nfsmnt, struct super_block *sb,
++ aufs_bindex_t bindex);
++
++/* diropq flags */
++#define AuDiropq_CREATE 1
++#define AuDiropq_DLGT (1 << 1)
++#define au_ftest_diropq(flags, name) ((flags) & AuDiropq_##name)
++#define au_fset_diropq(flags, name) { (flags) |= AuDiropq_##name; }
++#define au_fclr_diropq(flags, name) { (flags) &= ~AuDiropq_##name; }
++#ifndef CONFIG_AUFS_DLGT
++#undef AuDiropq_DLGT
++#define AuDiropq_DLGT 0
++#endif
++
++struct dentry *au_diropq_sio(struct dentry *dentry, aufs_bindex_t bindex,
++ unsigned int flags);
++
++struct dentry *au_wh_lkup(struct dentry *h_parent, struct qstr *base_name,
++ struct au_ndx *ndx);
++struct dentry *au_wh_create(struct dentry *dentry, aufs_bindex_t bindex,
++ struct dentry *h_parent, struct au_ndx *ndx);
++
++/* real rmdir the whiteout-ed dir */
++struct au_whtmp_rmdir_args {
++ struct inode *dir;
++ aufs_bindex_t bindex;
++ struct dentry *wh_dentry;
++ struct au_nhash whlist;
++};
++
++struct au_nhash;
++int au_whtmp_rmdir(struct inode *dir, aufs_bindex_t bindex,
++ struct dentry *wh_dentry, struct au_nhash *whlist);
++void au_whtmp_kick_rmdir(struct inode *dir, aufs_bindex_t bindex,
++ struct dentry *wh_dentry, struct au_nhash *whlist,
++ struct au_whtmp_rmdir_args *args);
++
++/* ---------------------------------------------------------------------- */
++
++static inline
++struct dentry *au_diropq_create(struct dentry *dentry, aufs_bindex_t bindex,
++ int dlgt)
++{
++ unsigned int flags = AuDiropq_CREATE;
++ if (dlgt)
++ au_fset_diropq(flags, DLGT);
++ return au_diropq_sio(dentry, bindex, flags);
++}
++
++static inline
++int au_diropq_remove(struct dentry *dentry, aufs_bindex_t bindex, int dlgt)
++{
++ unsigned int flags = !AuDiropq_CREATE;
++ if (dlgt)
++ au_fset_diropq(flags, DLGT);
++ return PTR_ERR(au_diropq_sio(dentry, bindex, flags));
++}
++
++/* ---------------------------------------------------------------------- */
++
++#ifdef CONFIG_AUFS_ROBR
++/* robr.c */
++int au_test_robr_wh(struct qstr *name, struct dentry *h_parent,
++ struct qstr *wh_name, int try_sio, struct au_ndx *ndx);
++int au_test_robr_shwh(struct super_block *sb, const struct qstr *name);
++#else
++static inline
++int au_test_robr_wh(struct qstr *name, struct dentry *h_parent,
++ struct qstr *wh_name, int try_sio, struct au_ndx *ndx)
++{
++ return au_wh_test(h_parent, wh_name, try_sio, ndx);
++}
++
++static inline
++int au_test_robr_shwh(struct super_block *sb, const struct qstr *name)
++{
++ if (unlikely(!au_opt_test(au_mntflags(sb), SHWH)
++ && !strncmp(name->name, AUFS_WH_PFX, AUFS_WH_PFX_LEN)))
++ return -EPERM;
++ return 0;
++}
++#endif /* CONFIG_AUFS_ROBR */
++
++#endif /* __KERNEL__ */
++#endif /* __AUFS_WHOUT_H__ */
+diff --git a/fs/aufs/wkq.c b/fs/aufs/wkq.c
+new file mode 100644
+index 0000000..e770747
+--- /dev/null
++++ b/fs/aufs/wkq.c
+@@ -0,0 +1,385 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * workqueue for asynchronous/super-io/delegated operations
++ *
++ * $Id: wkq.c,v 1.40 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#include <linux/module.h>
++#include "aufs.h"
++
++struct au_wkq *au_wkq;
++
++struct au_cred {
++#ifdef CONFIG_AUFS_DLGT
++ int umask;
++ uid_t fsuid;
++ gid_t fsgid;
++ kernel_cap_t cap_effective, cap_inheritable, cap_permitted;
++#if 0 /* reserved for future use */
++ unsigned keep_capabilities:1;
++ struct user_struct *user;
++ struct fs_struct *fs;
++ struct nsproxy *nsproxy;
++#endif
++#endif
++};
++
++struct au_wkinfo {
++ struct work_struct wk;
++ struct super_block *sb;
++
++ unsigned int flags;
++ struct au_cred cred;
++
++ au_wkq_func_t func;
++ void *args;
++
++ atomic_t *busyp;
++ struct completion *comp;
++};
++
++/* ---------------------------------------------------------------------- */
++
++#ifdef CONFIG_AUFS_DLGT
++static void cred_store(struct au_cred *cred)
++{
++ cred->umask = current->fs->umask;
++ cred->fsuid = current->fsuid;
++ cred->fsgid = current->fsgid;
++ cred->cap_effective = current->cap_effective;
++ cred->cap_inheritable = current->cap_inheritable;
++ cred->cap_permitted = current->cap_permitted;
++}
++
++static void cred_revert(struct au_cred *cred)
++{
++ AuDebugOn(!au_test_wkq(current));
++ current->fs->umask = cred->umask;
++ current->fsuid = cred->fsuid;
++ current->fsgid = cred->fsgid;
++ current->cap_effective = cred->cap_effective;
++ current->cap_inheritable = cred->cap_inheritable;
++ current->cap_permitted = cred->cap_permitted;
++}
++
++static void cred_switch(struct au_cred *old, struct au_cred *new)
++{
++ cred_store(old);
++ cred_revert(new);
++}
++
++static void dlgt_cred_store(unsigned int flags, struct au_wkinfo *wkinfo)
++{
++ if (au_ftest_wkq(flags, DLGT))
++ cred_store(&wkinfo->cred);
++}
++
++static void dlgt_func(struct au_wkinfo *wkinfo)
++{
++ if (!au_ftest_wkq(wkinfo->flags, DLGT))
++ wkinfo->func(wkinfo->args);
++ else {
++ struct au_cred cred;
++ cred_switch(&cred, &wkinfo->cred);
++ wkinfo->func(wkinfo->args);
++ cred_revert(&cred);
++ }
++}
++#else
++static void dlgt_cred_store(unsigned int flags, struct au_wkinfo *wkinfo)
++{
++ /* empty */
++}
++
++static void dlgt_func(struct au_wkinfo *wkinfo)
++{
++ wkinfo->func(wkinfo->args);
++}
++#endif /* CONFIG_AUFS_DLGT */
++
++/* ---------------------------------------------------------------------- */
++
++static void update_busy(struct au_wkq *wkq, struct au_wkinfo *wkinfo)
++{
++#ifdef CONFIG_AUFS_SYSAUFS
++ unsigned int new, old;
++
++ do {
++ new = atomic_read(wkinfo->busyp);
++ old = atomic_read(&wkq->max_busy);
++ if (new <= old)
++ break;
++ } while (atomic_cmpxchg(&wkq->max_busy, old, new) == old);
++#endif
++}
++
++static int enqueue(struct au_wkq *wkq, struct au_wkinfo *wkinfo)
++{
++ AuTraceEnter();
++
++ wkinfo->busyp = &wkq->busy;
++ update_busy(wkq, wkinfo);
++ if (au_ftest_wkq(wkinfo->flags, WAIT))
++ return !queue_work(wkq->q, &wkinfo->wk);
++ else
++ return !schedule_work(&wkinfo->wk);
++}
++
++static void do_wkq(struct au_wkinfo *wkinfo)
++{
++ unsigned int idle, n;
++ int i, idle_idx;
++
++ AuTraceEnter();
++
++ while (1) {
++ if (au_ftest_wkq(wkinfo->flags, WAIT)) {
++ idle_idx = 0;
++ idle = UINT_MAX;
++ for (i = 0; i < aufs_nwkq; i++) {
++ n = atomic_inc_return(&au_wkq[i].busy);
++ if (n == 1 && !enqueue(au_wkq + i, wkinfo))
++ return; /* success */
++
++ if (n < idle) {
++ idle_idx = i;
++ idle = n;
++ }
++ atomic_dec_return(&au_wkq[i].busy);
++ }
++ } else
++ idle_idx = aufs_nwkq;
++
++ atomic_inc_return(&au_wkq[idle_idx].busy);
++ if (!enqueue(au_wkq + idle_idx, wkinfo))
++ return; /* success */
++
++ /* impossible? */
++ AuWarn1("failed to queue_work()\n");
++ yield();
++ }
++}
++
++static AuWkqFunc(wkq_func, wk)
++{
++ struct au_wkinfo *wkinfo = container_of(wk, struct au_wkinfo, wk);
++
++ LKTRTrace("wkinfo{0x%x, %p, %p, %p}\n",
++ wkinfo->flags, wkinfo->func, wkinfo->busyp, wkinfo->comp);
++
++ dlgt_func(wkinfo);
++ atomic_dec_return(wkinfo->busyp);
++ if (au_ftest_wkq(wkinfo->flags, WAIT))
++ complete(wkinfo->comp);
++ else {
++ au_mntput(wkinfo->sb);
++ module_put(THIS_MODULE);
++ kfree(wkinfo);
++ }
++}
++
++#if defined(CONFIG_4KSTACKS) || defined(Test4KSTACKS)
++#define AuWkqCompDeclare(name) struct completion *comp = NULL
++
++static int au_wkq_comp_alloc(struct au_wkinfo *wkinfo, struct completion **comp)
++{
++ *comp = kmalloc(sizeof(**comp), GFP_NOFS);
++ if (*comp) {
++ init_completion(*comp);
++ wkinfo->comp = *comp;
++ return 0;
++ }
++ return -ENOMEM;
++}
++
++static void au_wkq_comp_free(struct completion *comp)
++{
++ kfree(comp);
++}
++
++#else
++
++/* no braces */
++#define AuWkqCompDeclare(name) \
++ DECLARE_COMPLETION_ONSTACK(_ ## name); \
++ struct completion *comp = &_ ## name
++
++static int au_wkq_comp_alloc(struct au_wkinfo *wkinfo, struct completion **comp)
++{
++ wkinfo->comp = *comp;
++ return 0;
++}
++
++static void au_wkq_comp_free(struct completion *comp)
++{
++ /* empty */
++}
++#endif /* 4KSTACKS */
++
++static void au_wkq_run(struct au_wkinfo *wkinfo)
++{
++#if 1 /* tmp debug */
++ if (au_test_wkq(current))
++ au_dbg_blocked();
++#endif
++ AuDebugOn(au_test_wkq(current));
++
++ AuInitWkq(&wkinfo->wk, wkq_func);
++ dlgt_cred_store(wkinfo->flags, wkinfo);
++ do_wkq(wkinfo);
++}
++
++int au_wkq_wait(au_wkq_func_t func, void *args, int dlgt)
++{
++ int err;
++ AuWkqCompDeclare(comp);
++ struct au_wkinfo wkinfo = {
++ .flags = AuWkq_WAIT,
++ .func = func,
++ .args = args
++ };
++
++ LKTRTrace("dlgt %d\n", dlgt);
++
++ err = au_wkq_comp_alloc(&wkinfo, &comp);
++ if (!err) {
++ if (dlgt)
++ au_fset_wkq(wkinfo.flags, DLGT);
++ au_wkq_run(&wkinfo);
++ /* no timeout, no interrupt */
++ wait_for_completion(wkinfo.comp);
++ au_wkq_comp_free(comp);
++ }
++
++ AuTraceErr(err);
++ return err;
++
++}
++
++int au_wkq_nowait(au_wkq_func_t func, void *args, struct super_block *sb,
++ int dlgt)
++{
++ int err;
++ struct au_wkinfo *wkinfo;
++
++ LKTRTrace("dlgt %d\n", dlgt);
++ AuDebugOn(!sb);
++
++ atomic_inc_return(&au_sbi(sb)->si_nowait.nw_len);
++
++ /*
++ * wkq_func() must free this wkinfo.
++ * it highly depends upon the implementation of workqueue.
++ */
++ err = 0;
++ wkinfo = kmalloc(sizeof(*wkinfo), GFP_NOFS);
++ if (wkinfo) {
++ wkinfo->sb = sb;
++ wkinfo->flags = !AuWkq_WAIT;
++ wkinfo->func = func;
++ wkinfo->args = args;
++ wkinfo->comp = NULL;
++ if (dlgt)
++ au_fset_wkq(wkinfo->flags, DLGT);
++ /* prohibit umount */
++ __module_get(THIS_MODULE);
++ au_mntget(sb);
++
++ au_wkq_run(wkinfo);
++ } else {
++ err = -ENOMEM;
++ atomic_dec_return(&au_sbi(sb)->si_nowait.nw_len);
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++void au_wkq_fin(void)
++{
++ int i;
++
++ AuTraceEnter();
++
++ for (i = 0; i < aufs_nwkq; i++)
++ if (au_wkq[i].q && !IS_ERR(au_wkq[i].q))
++ destroy_workqueue(au_wkq[i].q);
++ kfree(au_wkq);
++}
++
++int __init au_wkq_init(void)
++{
++ int err, i;
++ struct au_wkq *nowaitq;
++
++ LKTRTrace("%d\n", aufs_nwkq);
++
++ /* '+1' is for accounting of nowait queue */
++ err = -ENOMEM;
++ au_wkq = kcalloc(aufs_nwkq + 1, sizeof(*au_wkq), GFP_NOFS);
++ if (unlikely(!au_wkq))
++ goto out;
++
++ err = 0;
++ for (i = 0; i < aufs_nwkq; i++) {
++ au_wkq[i].q = create_singlethread_workqueue(AUFS_WKQ_NAME);
++ if (au_wkq[i].q && !IS_ERR(au_wkq[i].q)) {
++ atomic_set(&au_wkq[i].busy, 0);
++ atomic_set(&au_wkq[i].max_busy, 0);
++ continue;
++ }
++
++ err = PTR_ERR(au_wkq[i].q);
++ au_wkq_fin();
++ break;
++ }
++
++ /* nowait accounting */
++ nowaitq = au_wkq + aufs_nwkq;
++ atomic_set(&nowaitq->busy, 0);
++ atomic_set(&nowaitq->max_busy, 0);
++ nowaitq->q = NULL;
++ /* smp_mb(); */ /* atomic_set */
++
++#if 0 // test accouting
++ if (!err) {
++ static void f(void *args)
++ {
++ DbgSleep(1);
++ }
++ int i;
++ //au_debug_on();
++ LKTRTrace("f %p\n", f);
++ for (i = 0; i < 10; i++)
++ au_wkq_nowait(f, NULL, 0);
++ for (i = 0; i < aufs_nwkq; i++)
++ au_wkq_wait(f, NULL, 0);
++ DbgSleep(11);
++ //au_debug_off();
++ }
++#endif
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
+diff --git a/fs/aufs/wkq.h b/fs/aufs/wkq.h
+new file mode 100644
+index 0000000..ae14367
+--- /dev/null
++++ b/fs/aufs/wkq.h
+@@ -0,0 +1,128 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * workqueue for asynchronous/super-io/delegated operations
++ *
++ * $Id: wkq.h,v 1.26 2009/01/26 06:24:45 sfjro Exp $
++ */
++
++#ifndef __AUFS_WKQ_H__
++#define __AUFS_WKQ_H__
++
++#ifdef __KERNEL__
++
++#include <linux/fs.h>
++#include <linux/sched.h>
++#include <linux/version.h>
++#include <linux/workqueue.h>
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18)
++#define DECLARE_COMPLETION_ONSTACK(work) DECLARE_COMPLETION(work)
++#endif
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20)
++#define AuInitWkq(wk, func) INIT_WORK(wk, func)
++#define AuWkqFunc(name, arg) void name(struct work_struct *arg)
++#else
++#define AuInitWkq(wk, func) INIT_WORK(wk, func, wk)
++#define AuWkqFunc(name, arg) void name(void *arg)
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++/* internal workqueue named AUFS_WKQ_NAME */
++struct au_wkq {
++ struct workqueue_struct *q;
++
++ /* accounting */
++ atomic_t busy;
++ atomic_t max_busy;
++};
++
++/*
++ * in the next operation, wait for the 'nowait' tasks in system-wide workqueue
++ */
++struct au_nowait_tasks {
++ atomic_t nw_len;
++ wait_queue_head_t nw_wq;
++};
++
++/* ---------------------------------------------------------------------- */
++
++extern struct au_wkq *au_wkq;
++typedef void (*au_wkq_func_t)(void *args);
++
++/* wkq flags */
++#define AuWkq_WAIT 1
++#define AuWkq_DLGT (1 << 1)
++#define au_ftest_wkq(flags, name) ((flags) & AuWkq_##name)
++#define au_fset_wkq(flags, name) { (flags) |= AuWkq_##name; }
++#define au_fclr_wkq(flags, name) { (flags) &= ~AuWkq_##name; }
++#ifndef CONFIG_AUFS_DLGT
++#undef AuWkq_DLGT
++#define AuWkq_DLGT 0
++#endif
++
++int au_wkq_wait(au_wkq_func_t func, void *args, int dlgt);
++int au_wkq_nowait(au_wkq_func_t func, void *args, struct super_block *sb,
++ int dlgt);
++int __init au_wkq_init(void);
++void au_wkq_fin(void);
++
++/* ---------------------------------------------------------------------- */
++
++static inline int au_test_nowait_wkq(struct task_struct *tsk)
++{
++ static const char *p = "events";
++ return !tsk->mm && !strncmp(tsk->comm, p, strlen(p));
++}
++
++static inline int au_test_wkq(struct task_struct *tsk)
++{
++ return !tsk->mm && !strcmp(tsk->comm, AUFS_WKQ_NAME);
++#if 0 /* reserved for future use, per-cpu workqueue */
++ return !tsk->mm
++ && !memcmp(tsk->comm, AUFS_WKQ_NAME "/",
++ sizeof(AUFS_WKQ_NAME));
++#endif
++}
++
++static inline void au_nwt_init(struct au_nowait_tasks *nwt)
++{
++ atomic_set(&nwt->nw_len, 0);
++ smp_mb(); /* atomic_set */
++ init_waitqueue_head(&nwt->nw_wq);
++}
++
++static inline void au_nwt_done(struct au_nowait_tasks *nwt)
++{
++ AuTraceEnter();
++
++ if (!atomic_dec_return(&nwt->nw_len))
++ wake_up_all(&nwt->nw_wq);
++}
++
++static inline int au_nwt_flush(struct au_nowait_tasks *nwt)
++{
++ wait_event(nwt->nw_wq, !atomic_read(&nwt->nw_len));
++ return 0;
++}
++
++#endif /* __KERNEL__ */
++#endif /* __AUFS_WKQ_H__ */
+diff --git a/fs/aufs/xino.c b/fs/aufs/xino.c
+new file mode 100644
+index 0000000..8c4bb7f
+--- /dev/null
++++ b/fs/aufs/xino.c
+@@ -0,0 +1,1276 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/*
++ * external inode number translation table and bitmap
++ *
++ * $Id: xino.c,v 1.65 2009/01/26 06:24:24 sfjro Exp $
++ */
++
++#include <linux/fsnotify.h>
++#include <linux/smp_lock.h>
++#include "aufs.h"
++
++/* ---------------------------------------------------------------------- */
++
++ssize_t xino_fread(au_readf_t func, struct file *file, void *buf, size_t size,
++ loff_t *pos)
++{
++ ssize_t err;
++ mm_segment_t oldfs;
++
++ LKTRTrace("%.*s, sz %zu, *pos %lld\n",
++ AuDLNPair(file->f_dentry), size, *pos);
++
++ oldfs = get_fs();
++ set_fs(KERNEL_DS);
++ do {
++ /* todo: signal_pending? */
++ err = func(file, (char __user *)buf, size, pos);
++ } while (err == -EAGAIN || err == -EINTR);
++ set_fs(oldfs);
++
++#if 0 /* reserved for future use */
++ if (err > 0)
++ fsnotify_access(file->f_dentry);
++#endif
++
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++static ssize_t do_xino_fwrite(au_writef_t func, struct file *file, void *buf,
++ size_t size, loff_t *pos)
++{
++ ssize_t err;
++ mm_segment_t oldfs;
++
++ lockdep_off();
++ oldfs = get_fs();
++ set_fs(KERNEL_DS);
++ do {
++ /* todo: signal_pending? */
++ err = func(file, (const char __user *)buf, size, pos);
++ } while (err == -EAGAIN || err == -EINTR);
++ set_fs(oldfs);
++ lockdep_on();
++
++ if (err >= 0)
++ au_update_fuse_h_inode(file->f_vfsmnt, file->f_dentry);
++ /*ignore*/
++
++#if 0 /* reserved for future use */
++ if (err > 0)
++ fsnotify_modify(file->f_dentry);
++#endif
++
++ AuTraceErr(err);
++ return err;
++}
++
++struct do_xino_fwrite_args {
++ ssize_t *errp;
++ au_writef_t func;
++ struct file *file;
++ void *buf;
++ size_t size;
++ loff_t *pos;
++};
++
++static void call_do_xino_fwrite(void *args)
++{
++ struct do_xino_fwrite_args *a = args;
++ *a->errp = do_xino_fwrite(a->func, a->file, a->buf, a->size, a->pos);
++}
++
++ssize_t xino_fwrite(au_writef_t func, struct file *file, void *buf, size_t size,
++ loff_t *pos)
++{
++ ssize_t err;
++
++ LKTRTrace("%.*s, sz %zu, *pos %lld\n",
++ AuDLNPair(file->f_dentry), size, *pos);
++
++ /* todo: signal block and no wkq? */
++ /*
++ * it breaks RLIMIT_FSIZE and normal user's limit,
++ * users should care about quota and real 'filesystem full.'
++ */
++ if (!au_test_wkq(current)) {
++ int wkq_err;
++ struct do_xino_fwrite_args args = {
++ .errp = &err,
++ .func = func,
++ .file = file,
++ .buf = buf,
++ .size = size,
++ .pos = pos
++ };
++ wkq_err = au_wkq_wait(call_do_xino_fwrite, &args, /*dlgt*/0);
++ if (unlikely(wkq_err))
++ err = wkq_err;
++ } else
++ err = do_xino_fwrite(func, file, buf, size, pos);
++
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
++struct xino_do_trunc_args {
++ struct vfsmount *mnt;
++ struct au_branch *br;
++};
++
++static void xino_do_trunc(void *_args)
++{
++ struct xino_do_trunc_args *args = _args;
++ struct super_block *sb;
++ aufs_bindex_t bindex;
++ int err;
++ struct file *file;
++ struct inode *dir;
++
++ err = 0;
++ sb = args->mnt->mnt_sb;
++ dir = sb->s_root->d_inode;
++ si_noflush_write_lock(sb);
++ ii_read_lock_parent(dir);
++ bindex = au_br_index(sb, args->br->br_id);
++ AuDebugOn(bindex < 0);
++ err = au_xino_trunc(sb, bindex);
++ if (unlikely(err))
++ goto out;
++
++ file = args->br->br_xino.xi_file;
++ au_update_fuse_h_inode(args->br->br_mnt, file->f_dentry); /*ignore*/
++ if (file->f_dentry->d_inode->i_blocks >= args->br->br_xino_upper)
++ args->br->br_xino_upper += AUFS_XINO_TRUNC_STEP;
++
++ out:
++ ii_read_unlock(dir);
++ if (unlikely(err))
++ AuWarn("err b%d, (%d)\n", bindex, err);
++ atomic_dec_return(&args->br->br_xino_running);
++ au_br_put(args->br);
++ au_nwt_done(&au_sbi(sb)->si_nowait);
++ si_write_unlock(sb);
++ mntput(args->mnt);
++ kfree(args);
++}
++
++static void xino_try_trunc(struct super_block *sb, struct au_branch *br)
++{
++ struct xino_do_trunc_args *args;
++ struct au_sbinfo *sbinfo;
++ struct file *file = br->br_xino.xi_file;
++ int wkq_err;
++
++ au_update_fuse_h_inode(br->br_mnt, file->f_dentry); /*ignore*/
++ if (file->f_dentry->d_inode->i_blocks < br->br_xino_upper)
++ return;
++ if (atomic_inc_return(&br->br_xino_running) > 1)
++ goto out;
++
++ /* lock and kfree() will be called in trunc_xino() */
++ args = kmalloc(sizeof(*args), GFP_NOFS);
++ if (unlikely(!args)) {
++ AuErr1("no memory\n");
++ goto out_args;
++ }
++
++ sbinfo = au_sbi(sb);
++ args->mnt = mntget(sbinfo->si_mnt);
++ au_br_get(br);
++ args->br = br;
++ wkq_err = au_wkq_nowait(xino_do_trunc, args, sb, /*dlgt*/0);
++ if (!wkq_err)
++ return; /* success */
++
++ AuErr("wkq %d\n", wkq_err);
++ mntput(sbinfo->si_mnt);
++ au_br_put(br);
++
++ out_args:
++ kfree(args);
++ out:
++ atomic_dec_return(&br->br_xino_running);
++}
++#else
++static void xino_try_trunc(struct super_block *sb, struct au_branch *br)
++{
++ /* nothing */
++}
++#endif
++
++/* ---------------------------------------------------------------------- */
++
++static int au_xino_do_write(au_writef_t write, struct file *file,
++ ino_t h_ino, struct au_xino_entry *xinoe)
++{
++ loff_t pos;
++ ssize_t sz;
++
++ AuTraceEnter();
++
++ pos = h_ino;
++ if (unlikely(Au_LOFF_MAX / sizeof(*xinoe) - 1 < pos)) {
++ AuIOErr1("too large hi%lu\n", (unsigned long)h_ino);
++ return -EFBIG;
++ }
++ pos *= sizeof(*xinoe);
++ sz = xino_fwrite(write, file, xinoe, sizeof(*xinoe), &pos);
++ if (sz == sizeof(*xinoe))
++ return 0; /* success */
++
++ AuIOErr("write failed (%zd)\n", sz);
++ return -EIO;
++}
++
++/*
++ * write @ino to the xinofile for the specified branch{@sb, @bindex}
++ * at the position of @_ino.
++ * when @ino is zero, it is written to the xinofile and means no entry.
++ */
++int au_xino_write(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
++ struct au_xino_entry *xinoe)
++{
++ int err;
++ struct file *file;
++ struct au_branch *br;
++ unsigned int mnt_flags;
++
++ LKTRTrace("b%d, hi%lu, i%lu\n",
++ bindex, (unsigned long)h_ino, (unsigned long)xinoe->ino);
++ BUILD_BUG_ON(sizeof(long long) != sizeof(Au_LOFF_MAX)
++ || ((loff_t)-1) > 0);
++
++ mnt_flags = au_mntflags(sb);
++ if (!au_opt_test_xino(mnt_flags))
++ return 0;
++
++ br = au_sbr(sb, bindex);
++ file = br->br_xino.xi_file;
++ AuDebugOn(!file);
++
++ err = au_xino_do_write(au_sbi(sb)->si_xwrite, file, h_ino, xinoe);
++ if (!err) {
++ if (au_opt_test(mnt_flags, TRUNC_XINO)
++ && au_test_trunc_xino(br->br_mnt->mnt_sb))
++ xino_try_trunc(sb, br);
++ return 0; /* success */
++ }
++
++ AuIOErr("write failed (%d)\n", err);
++ return -EIO;
++}
++
++/* ---------------------------------------------------------------------- */
++
++static const int page_bits = (int)PAGE_SIZE * BITS_PER_BYTE;
++//static const int page_bits = 4;
++static ino_t xib_calc_ino(unsigned long pindex, int bit)
++{
++ ino_t ino;
++
++ AuDebugOn(bit < 0 || page_bits <= bit);
++ ino = AUFS_FIRST_INO + pindex * page_bits + bit;
++ return ino;
++}
++
++static void xib_calc_bit(ino_t ino, unsigned long *pindex, int *bit)
++{
++ AuDebugOn(ino < AUFS_FIRST_INO);
++ ino -= AUFS_FIRST_INO;
++ *pindex = ino / page_bits;
++ *bit = ino % page_bits;
++}
++
++static int xib_pindex(struct super_block *sb, unsigned long pindex)
++{
++ int err;
++ struct au_sbinfo *sbinfo;
++ loff_t pos;
++ ssize_t sz;
++ struct file *xib;
++ unsigned long *p;
++
++ LKTRTrace("pindex %lu\n", pindex);
++ sbinfo = au_sbi(sb);
++ MtxMustLock(&sbinfo->si_xib_mtx);
++ AuDebugOn(pindex > ULONG_MAX / PAGE_SIZE
++ || !au_opt_test_xino(sbinfo->si_mntflags));
++
++ if (pindex == sbinfo->si_xib_last_pindex)
++ return 0;
++
++ xib = sbinfo->si_xib;
++ p = sbinfo->si_xib_buf;
++ pos = sbinfo->si_xib_last_pindex;
++ pos *= PAGE_SIZE;
++ sz = xino_fwrite(sbinfo->si_xwrite, xib, p, PAGE_SIZE, &pos);
++ if (unlikely(sz != PAGE_SIZE))
++ goto out;
++
++ pos = pindex;
++ pos *= PAGE_SIZE;
++ if (i_size_read(xib->f_dentry->d_inode) >= pos + PAGE_SIZE)
++ sz = xino_fread(sbinfo->si_xread, xib, p, PAGE_SIZE, &pos);
++ else {
++ memset(p, 0, PAGE_SIZE);
++ sz = xino_fwrite(sbinfo->si_xwrite, xib, p, PAGE_SIZE, &pos);
++ }
++ if (sz == PAGE_SIZE) {
++ sbinfo->si_xib_last_pindex = pindex;
++ return 0; /* success */
++ }
++
++ out:
++ AuIOErr1("write failed (%zd)\n", sz);
++ err = sz;
++ if (sz >= 0)
++ err = -EIO;
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++int au_xino_write0(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
++ ino_t ino)
++{
++ int err, bit;
++ unsigned long pindex;
++ struct au_sbinfo *sbinfo;
++ struct au_xino_entry xinoe = {
++ .ino = 0
++ };
++
++ LKTRTrace("b%d, hi%lu, i%lu\n",
++ bindex, (unsigned long)h_ino, (unsigned long)ino);
++
++ if (!au_opt_test_xino(au_mntflags(sb)))
++ return 0;
++
++ err = 0;
++ sbinfo = au_sbi(sb);
++ if (ino) {
++ AuDebugOn(ino < AUFS_FIRST_INO);
++ xib_calc_bit(ino, &pindex, &bit);
++ AuDebugOn(page_bits <= bit);
++ mutex_lock(&sbinfo->si_xib_mtx);
++ err = xib_pindex(sb, pindex);
++ if (!err) {
++ clear_bit(bit, sbinfo->si_xib_buf);
++ sbinfo->si_xib_next_bit = bit;
++ }
++ mutex_unlock(&sbinfo->si_xib_mtx);
++ }
++
++ if (!err)
++ err = au_xino_write(sb, bindex, h_ino, &xinoe);
++ return err;
++}
++
++ino_t au_xino_new_ino(struct super_block *sb)
++{
++ ino_t ino;
++ struct au_sbinfo *sbinfo;
++ int free_bit, err;
++ unsigned long *p, pindex, ul, pend;
++ struct file *file;
++
++ AuTraceEnter();
++
++ if (!au_opt_test_xino(au_mntflags(sb)))
++ return iunique(sb, AUFS_FIRST_INO);
++
++ sbinfo = au_sbi(sb);
++ mutex_lock(&sbinfo->si_xib_mtx);
++ p = sbinfo->si_xib_buf;
++ free_bit = sbinfo->si_xib_next_bit;
++ if (free_bit < page_bits && !test_bit(free_bit, p))
++ goto out; /* success */
++ free_bit = find_first_zero_bit(p, page_bits);
++ if (free_bit < page_bits)
++ goto out; /* success */
++
++ pindex = sbinfo->si_xib_last_pindex;
++ for (ul = pindex - 1; ul < ULONG_MAX; ul--) {
++ err = xib_pindex(sb, ul);
++ if (unlikely(err))
++ goto out_err;
++ free_bit = find_first_zero_bit(p, page_bits);
++ if (free_bit < page_bits)
++ goto out; /* success */
++ }
++
++ file = sbinfo->si_xib;
++ pend = i_size_read(file->f_dentry->d_inode) / PAGE_SIZE;
++ for (ul = pindex + 1; ul <= pend; ul++) {
++ err = xib_pindex(sb, ul);
++ if (unlikely(err))
++ goto out_err;
++ free_bit = find_first_zero_bit(p, page_bits);
++ if (free_bit < page_bits)
++ goto out; /* success */
++ }
++ BUG();
++
++ out:
++ set_bit(free_bit, p);
++ sbinfo->si_xib_next_bit++;
++ pindex = sbinfo->si_xib_last_pindex;
++ mutex_unlock(&sbinfo->si_xib_mtx);
++ ino = xib_calc_ino(pindex, free_bit);
++ LKTRTrace("i%lu\n", (unsigned long)ino);
++ return ino;
++ out_err:
++ mutex_unlock(&sbinfo->si_xib_mtx);
++ LKTRTrace("i0\n");
++ return 0;
++}
++
++/*
++ * read @ino from xinofile for the specified branch{@sb, @bindex}
++ * at the position of @h_ino.
++ * if @ino does not exist and @do_new is true, get new one.
++ */
++int au_xino_read(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
++ struct au_xino_entry *xinoe)
++{
++ int err;
++ struct file *file;
++ loff_t pos;
++ ssize_t sz;
++ struct au_sbinfo *sbinfo;
++
++ LKTRTrace("b%d, hi%lu\n", bindex, (unsigned long)h_ino);
++
++ xinoe->ino = 0;
++ if (!au_opt_test_xino(au_mntflags(sb)))
++ return 0; /* no ino */
++
++ err = 0;
++ sbinfo = au_sbi(sb);
++ pos = h_ino;
++ if (unlikely(Au_LOFF_MAX / sizeof(*xinoe) - 1 < pos)) {
++ AuIOErr1("too large hi%lu\n", (unsigned long)h_ino);
++ return -EFBIG;
++ }
++ pos *= sizeof(*xinoe);
++
++ file = au_sbr(sb, bindex)->br_xino.xi_file;
++ AuDebugOn(!file);
++ if (i_size_read(file->f_dentry->d_inode) < pos + sizeof(*xinoe))
++ return 0; /* no ino */
++
++ sz = xino_fread(sbinfo->si_xread, file, xinoe, sizeof(*xinoe), &pos);
++ if (sz == sizeof(*xinoe))
++ return 0; /* success */
++
++ err = sz;
++ if (unlikely(sz >= 0)) {
++ err = -EIO;
++ AuIOErr("xino read error (%zd)\n", sz);
++ }
++
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++struct file *au_xino_create(struct super_block *sb, char *fname, int silent)
++{
++ struct file *file;
++ int err;
++ struct dentry *h_parent;
++ struct inode *h_dir;
++ struct vfsub_args vargs;
++
++ LKTRTrace("%s\n", fname);
++
++ /*
++ * at mount-time, and the xino file is the default path,
++ * hinotify is disabled so we have no inotify events to ignore.
++ * when a user specified the xino, we cannot get au_hdir to be ignored.
++ */
++ vfsub_args_init(&vargs, /*ign*/NULL, /*dlgt*/0, 0);
++ file = vfsub_filp_open(fname, O_RDWR | O_CREAT | O_EXCL | O_LARGEFILE,
++ S_IRUGO | S_IWUGO);
++ if (IS_ERR(file)) {
++ if (!silent)
++ AuErr("open %s(%ld)\n", fname, PTR_ERR(file));
++ return file;
++ }
++
++ /* keep file count */
++ h_parent = dget_parent(file->f_dentry);
++ h_dir = h_parent->d_inode;
++ vfsub_i_lock_nested(h_dir, AuLsc_I_PARENT);
++ /* mnt_want_write() is unnecessary here */
++ err = vfsub_unlink(h_dir, file->f_dentry, &vargs);
++ vfsub_i_unlock(h_dir);
++ dput(h_parent);
++ if (unlikely(err)) {
++ if (!silent)
++ AuErr("unlink %s(%d)\n", fname, err);
++ goto out;
++ }
++
++ if (sb != file->f_dentry->d_sb)
++ return file; /* success */
++
++ if (!silent)
++ AuErr("%s must be outside\n", fname);
++ err = -EINVAL;
++
++ out:
++ fput(file);
++ file = ERR_PTR(err);
++ return file;
++}
++
++/*
++ * find another branch who is on the same filesystem of the specified
++ * branch{@btgt}. search until @bend.
++ */
++static int is_sb_shared(struct super_block *sb, aufs_bindex_t btgt,
++ aufs_bindex_t bend)
++{
++ aufs_bindex_t bindex;
++ struct super_block *tgt_sb = au_sbr_sb(sb, btgt);
++
++ for (bindex = 0; bindex < btgt; bindex++)
++ if (unlikely(tgt_sb == au_sbr_sb(sb, bindex)))
++ return bindex;
++ for (bindex++; bindex <= bend; bindex++)
++ if (unlikely(tgt_sb == au_sbr_sb(sb, bindex)))
++ return bindex;
++ return -1;
++}
++
++/*
++ * create a new xinofile at the same place/path as @base_file.
++ */
++struct file *au_xino_create2(struct super_block *sb, struct file *base_file,
++ struct file *copy_src)
++{
++ struct file *file;
++ int err;
++ struct dentry *base, *dentry, *parent;
++ struct inode *dir, *inode;
++ struct qstr *name;
++ struct au_hinode *hdir;
++ struct au_branch *br;
++ aufs_bindex_t bindex;
++ struct au_hin_ignore ign;
++ struct vfsub_args vargs;
++ struct au_ndx ndx = {
++ .nfsmnt = NULL,
++ .flags = 0,
++ .nd = NULL,
++ /* .br = NULL */
++ };
++
++ base = base_file->f_dentry;
++ LKTRTrace("%.*s\n", AuDLNPair(base));
++ parent = base->d_parent; /* dir inode is locked */
++ dir = parent->d_inode;
++ IMustLock(dir);
++
++ file = ERR_PTR(-EINVAL);
++ if (unlikely(au_test_nfs(parent->d_sb)
++ || au_test_ecryptfs(parent->d_sb)))
++ goto out;
++
++ /* do not superio, nor NFS. */
++ name = &base->d_name;
++ dentry = au_lkup_one(name->name, parent, name->len, &ndx);
++ if (IS_ERR(dentry)) {
++ file = (void *)dentry;
++ AuErr("%.*s lookup err %ld\n", AuLNPair(name), PTR_ERR(dentry));
++ goto out;
++ }
++
++ hdir = NULL;
++ br = au_xino_def_br(au_sbi(sb));
++ if (br) {
++ bindex = au_find_bindex(sb, br);
++ if (bindex >= 0)
++ hdir = au_hi(sb->s_root->d_inode, bindex);
++ }
++ vfsub_args_init(&vargs, &ign, 0, 0);
++ vfsub_ign_hinode(&vargs, IN_CREATE, hdir);
++ /* no need to mnt_want_write() since we call dentry_open() later */
++ err = vfsub_create(dir, dentry, S_IRUGO | S_IWUGO, NULL, &vargs);
++ if (unlikely(err)) {
++ file = ERR_PTR(err);
++ AuErr("%.*s create err %d\n", AuLNPair(name), err);
++ goto out_dput;
++ }
++ file = dentry_open(dget(dentry), mntget(base_file->f_vfsmnt),
++ O_RDWR | O_CREAT | O_EXCL | O_LARGEFILE);
++ if (IS_ERR(file)) {
++ AuErr("%.*s open err %ld\n", AuLNPair(name), PTR_ERR(file));
++ goto out_dput;
++ }
++ vfsub_args_reinit(&vargs);
++ vfsub_ign_hinode(&vargs, IN_DELETE, hdir);
++ err = vfsub_unlink(dir, dentry, &vargs);
++ if (unlikely(err)) {
++ AuErr("%.*s unlink err %d\n", AuLNPair(name), err);
++ goto out_fput;
++ }
++
++ if (copy_src) {
++ inode = copy_src->f_dentry->d_inode;
++ err = au_copy_file(file, copy_src, i_size_read(inode),
++ hdir, sb, &vargs);
++ if (unlikely(err)) {
++ AuErr("%.*s copy err %d\n", AuLNPair(name), err);
++ goto out_fput;
++ }
++ }
++ goto out_dput; /* success */
++
++ out_fput:
++ fput(file);
++ file = ERR_PTR(err);
++ out_dput:
++ dput(dentry);
++ out:
++ AuTraceErrPtr(file);
++ return file;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/*
++ * initialize the xinofile for the specified branch{@sb, @bindex}
++ * at the place/path where @base_file indicates.
++ * test whether another branch is on the same filesystem or not,
++ * if @do_test is true.
++ */
++int au_xino_br(struct super_block *sb, struct au_branch *br, ino_t h_ino,
++ struct file *base_file, int do_test)
++{
++ int err;
++ struct au_branch *shared_br;
++ aufs_bindex_t bshared, bend, bindex;
++ unsigned char do_create;
++ struct inode *dir;
++ struct au_xino_entry xinoe;
++ struct dentry *parent;
++ struct file *file;
++ struct super_block *tgt_sb;
++
++ LKTRTrace("base_file %p, do_test %d\n", base_file, do_test);
++ SiMustWriteLock(sb);
++ AuDebugOn(!au_opt_test_xino(au_mntflags(sb)));
++ AuDebugOn(br->br_xino.xi_file);
++
++ do_create = 1;
++ bshared = -1;
++ shared_br = NULL;
++ bend = au_sbend(sb);
++ if (do_test) {
++ tgt_sb = br->br_mnt->mnt_sb;
++ for (bindex = 0; bindex <= bend; bindex++)
++ if (tgt_sb == au_sbr_sb(sb, bindex)) {
++ bshared = bindex;
++ break;
++ }
++ }
++ if (bshared >= 0) {
++ shared_br = au_sbr(sb, bshared);
++ do_create = !shared_br->br_xino.xi_file;
++ }
++
++ if (do_create) {
++ parent = dget_parent(base_file->f_dentry);
++ dir = parent->d_inode;
++ vfsub_i_lock_nested(dir, AuLsc_I_PARENT);
++ /* mnt_want_write() is unnecessary here */
++ file = au_xino_create2(sb, base_file, NULL);
++ vfsub_i_unlock(dir);
++ dput(parent);
++ err = PTR_ERR(file);
++ if (IS_ERR(file))
++ goto out;
++ br->br_xino.xi_file = file;
++ } else {
++ br->br_xino.xi_file = shared_br->br_xino.xi_file;
++ get_file(br->br_xino.xi_file);
++ }
++
++ xinoe.ino = AUFS_ROOT_INO;
++#if 0 /* reserved for future use */
++ xinoe.h_gen = h_inode->i_generation;
++ WARN_ON(xinoe.h_gen == AuXino_INVALID_HGEN);
++#endif
++ err = au_xino_do_write(au_sbi(sb)->si_xwrite, br->br_xino.xi_file,
++ h_ino, &xinoe);
++ if (!err)
++ return 0; /* success */
++
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/* too slow */
++static int do_xib_restore(struct super_block *sb, struct file *file, void *page)
++{
++ int err, bit;
++ struct au_sbinfo *sbinfo;
++ au_readf_t func;
++ loff_t pos, pend;
++ ssize_t sz;
++ struct au_xino_entry *xinoe;
++ unsigned long pindex;
++
++ AuTraceEnter();
++ SiMustWriteLock(sb);
++
++ err = 0;
++ sbinfo = au_sbi(sb);
++ func = sbinfo->si_xread;
++ pend = i_size_read(file->f_dentry->d_inode);
++#ifdef CONFIG_AUFS_DEBUG
++ if (unlikely(pend > (1 << 22)))
++ AuWarn("testing a large xino file %lld\n", (long long)pend);
++#endif
++ pos = 0;
++ while (pos < pend) {
++ sz = xino_fread(func, file, page, PAGE_SIZE, &pos);
++ err = sz;
++ if (unlikely(sz <= 0))
++ goto out;
++
++ err = 0;
++ for (xinoe = page; sz > 0; xinoe++, sz -= sizeof(xinoe)) {
++ if (unlikely(xinoe->ino < AUFS_FIRST_INO))
++ continue;
++
++ xib_calc_bit(xinoe->ino, &pindex, &bit);
++ AuDebugOn(page_bits <= bit);
++ err = xib_pindex(sb, pindex);
++ if (!err)
++ set_bit(bit, sbinfo->si_xib_buf);
++ else
++ goto out;
++ }
++ }
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++static int xib_restore(struct super_block *sb)
++{
++ int err;
++ aufs_bindex_t bindex, bend;
++ void *page;
++
++ AuTraceEnter();
++
++ err = -ENOMEM;
++ page = (void *)__get_free_page(GFP_NOFS);
++ if (unlikely(!page))
++ goto out;
++
++ err = 0;
++ bend = au_sbend(sb);
++ for (bindex = 0; !err && bindex <= bend; bindex++)
++ if (!bindex || is_sb_shared(sb, bindex, bindex - 1) < 0)
++ err = do_xib_restore
++ (sb, au_sbr(sb, bindex)->br_xino.xi_file, page);
++ else
++ LKTRTrace("b%d\n", bindex);
++ free_page((unsigned long)page);
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++int au_xib_trunc(struct super_block *sb)
++{
++ int err;
++ unsigned int mnt_flags;
++ ssize_t sz;
++ loff_t pos;
++ struct au_sbinfo *sbinfo;
++ unsigned long *p;
++ struct dentry *parent;
++ struct inode *dir;
++ struct file *file;
++
++ AuTraceEnter();
++ SiMustWriteLock(sb);
++
++ err = 0;
++ mnt_flags = au_mntflags(sb);
++ if (!au_opt_test_xino(mnt_flags))
++ goto out;
++
++ sbinfo = au_sbi(sb);
++ if (i_size_read(sbinfo->si_xib->f_dentry->d_inode) <= PAGE_SIZE)
++ goto out;
++ parent = dget_parent(sbinfo->si_xib->f_dentry);
++ dir = parent->d_inode;
++ vfsub_i_lock_nested(dir, AuLsc_I_PARENT);
++ /* mnt_want_write() is unnecessary here */
++ file = au_xino_create2(sb, sbinfo->si_xib, NULL);
++ vfsub_i_unlock(dir);
++ dput(parent);
++ err = PTR_ERR(file);
++ if (IS_ERR(file))
++ goto out;
++ fput(sbinfo->si_xib);
++ sbinfo->si_xib = file;
++
++ p = sbinfo->si_xib_buf;
++ memset(p, 0, PAGE_SIZE);
++ pos = 0;
++ sz = xino_fwrite(sbinfo->si_xwrite, sbinfo->si_xib, p, PAGE_SIZE, &pos);
++ if (unlikely(sz != PAGE_SIZE)) {
++ err = sz;
++ AuIOErr("err %d\n", err);
++ if (sz >= 0)
++ err = -EIO;
++ goto out;
++ }
++
++ if (au_opt_test_xino(mnt_flags)) {
++ mutex_lock(&sbinfo->si_xib_mtx);
++ /* mnt_want_write() is unnecessary here */
++ err = xib_restore(sb);
++ mutex_unlock(&sbinfo->si_xib_mtx);
++#if 0 /* reserved for future use */
++ } else {
++ /* is it really safe? */
++ /* dont trust BKL */
++ AuDebugOn(!kernel_locked());
++ ino = AUFS_FIRST_INO;
++ list_for_each_entry(inode, &sb->s_inodes, i_sb_list)
++ if (ino < inode->i_ino)
++ ino = inode->i_ino;
++
++ /* make iunique to return larger than active max inode number */
++ iunique(sb, ino);
++ err = 0;
++#endif
++ }
++
++out:
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/*
++ * xino mount option handlers
++ */
++static au_readf_t find_readf(struct file *h_file)
++{
++ const struct file_operations *fop = h_file->f_op;
++
++ if (fop) {
++ if (fop->read)
++ return fop->read;
++ if (fop->aio_read)
++ return do_sync_read;
++ }
++ return ERR_PTR(-ENOSYS);
++}
++
++static au_writef_t find_writef(struct file *h_file)
++{
++ const struct file_operations *fop = h_file->f_op;
++
++ if (fop) {
++ if (fop->write)
++ return fop->write;
++ if (fop->aio_write)
++ return do_sync_write;
++ }
++ return ERR_PTR(-ENOSYS);
++}
++
++/* xino bitmap */
++static void xino_clear_xib(struct super_block *sb)
++{
++ struct au_sbinfo *sbinfo;
++
++ AuTraceEnter();
++ SiMustWriteLock(sb);
++
++ sbinfo = au_sbi(sb);
++ sbinfo->si_xread = NULL;
++ sbinfo->si_xwrite = NULL;
++ if (sbinfo->si_xib)
++ fput(sbinfo->si_xib);
++ sbinfo->si_xib = NULL;
++ free_page((unsigned long)sbinfo->si_xib_buf);
++ sbinfo->si_xib_buf = NULL;
++}
++
++static int au_xino_set_xib(struct super_block *sb, struct file *base)
++{
++ int err;
++ struct au_sbinfo *sbinfo;
++ struct file *file;
++ loff_t pos;
++
++ LKTRTrace("%.*s\n", AuDLNPair(base->f_dentry));
++ SiMustWriteLock(sb);
++
++ sbinfo = au_sbi(sb);
++ file = au_xino_create2(sb, base, sbinfo->si_xib);
++ err = PTR_ERR(file);
++ if (IS_ERR(file))
++ goto out;
++ if (sbinfo->si_xib)
++ fput(sbinfo->si_xib);
++ sbinfo->si_xib = file;
++ sbinfo->si_xread = find_readf(file);
++ AuDebugOn(IS_ERR(sbinfo->si_xread));
++ sbinfo->si_xwrite = find_writef(file);
++ AuDebugOn(IS_ERR(sbinfo->si_xwrite));
++
++ err = -ENOMEM;
++ if (!sbinfo->si_xib_buf)
++ sbinfo->si_xib_buf = (void *)get_zeroed_page(GFP_NOFS);
++ if (unlikely(!sbinfo->si_xib_buf))
++ goto out_unset;
++
++ sbinfo->si_xib_last_pindex = 0;
++ sbinfo->si_xib_next_bit = 0;
++
++ /* no need to lock for i_size_read() */
++ if (i_size_read(file->f_dentry->d_inode) < PAGE_SIZE) {
++ pos = 0;
++ err = xino_fwrite(sbinfo->si_xwrite, file, sbinfo->si_xib_buf,
++ PAGE_SIZE, &pos);
++ if (unlikely(err != PAGE_SIZE))
++ goto out_free;
++ }
++ err = 0;
++ goto out; /* success */
++
++ out_free:
++ free_page((unsigned long)sbinfo->si_xib_buf);
++ sbinfo->si_xib_buf = NULL;
++ if (err >= 0)
++ err = -EIO;
++ out_unset:
++ fput(sbinfo->si_xib);
++ sbinfo->si_xib = NULL;
++ sbinfo->si_xread = NULL;
++ sbinfo->si_xwrite = NULL;
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/* xino for each branch */
++static void xino_clear_br(struct super_block *sb)
++{
++ aufs_bindex_t bindex, bend;
++ struct au_branch *br;
++
++ AuTraceEnter();
++ SiMustWriteLock(sb);
++
++ bend = au_sbend(sb);
++ for (bindex = 0; bindex <= bend; bindex++) {
++ br = au_sbr(sb, bindex);
++ if (!br || !br->br_xino.xi_file)
++ continue;
++
++ fput(br->br_xino.xi_file);
++ br->br_xino.xi_file = NULL;
++ }
++}
++
++static int au_xino_set_br(struct super_block *sb, struct file *base)
++{
++ int err;
++ aufs_bindex_t bindex, bend, bshared;
++ struct {
++ struct file *old, *new;
++ } *fpair, *p;
++ struct au_branch *br;
++ struct au_xino_entry xinoe;
++ struct inode *inode;
++ au_writef_t writef;
++
++ LKTRTrace("%.*s\n", AuDLNPair(base->f_dentry));
++ SiMustWriteLock(sb);
++
++ err = -ENOMEM;
++ bend = au_sbend(sb);
++ fpair = kcalloc(bend + 1, sizeof(*fpair), GFP_NOFS);
++ if (unlikely(!fpair))
++ goto out;
++
++ inode = sb->s_root->d_inode;
++ xinoe.ino = AUFS_ROOT_INO;
++ writef = au_sbi(sb)->si_xwrite;
++ for (bindex = 0, p = fpair; bindex <= bend; bindex++, p++) {
++ br = au_sbr(sb, bindex);
++ bshared = is_sb_shared(sb, bindex, bindex - 1);
++ if (bshared >= 0) {
++ /* shared xino */
++ *p = fpair[bshared];
++ get_file(p->new);
++ }
++
++ if (!p->new) {
++ /* new xino */
++ p->old = br->br_xino.xi_file;
++ p->new = au_xino_create2(sb, base, br->br_xino.xi_file);
++ err = PTR_ERR(p->new);
++ if (IS_ERR(p->new)) {
++ p->new = NULL;
++ goto out_pair;
++ }
++ }
++
++ err = au_xino_do_write(writef, p->new,
++ au_h_iptr(inode, bindex)->i_ino, &xinoe);
++ if (unlikely(err))
++ goto out_pair;
++ }
++
++ for (bindex = 0, p = fpair; bindex <= bend; bindex++, p++) {
++ br = au_sbr(sb, bindex);
++ AuDebugOn(p->old != br->br_xino.xi_file);
++ if (br->br_xino.xi_file)
++ fput(br->br_xino.xi_file);
++ get_file(p->new);
++ br->br_xino.xi_file = p->new;
++ }
++
++ out_pair:
++ for (bindex = 0, p = fpair; bindex <= bend; bindex++, p++)
++ if (p->new)
++ fput(p->new);
++ else
++ break;
++ kfree(fpair);
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++void au_xino_clr(struct super_block *sb)
++{
++ struct au_sbinfo *sbinfo;
++
++ AuTraceEnter();
++ SiMustWriteLock(sb);
++
++ au_xigen_clr(sb);
++ xino_clear_xib(sb);
++ xino_clear_br(sb);
++ sbinfo = au_sbi(sb);
++ /* lvalue, do not call au_mntflags() */
++ au_opt_clr(sbinfo->si_mntflags, XINO);
++ au_xino_def_br_set(NULL, sbinfo);
++}
++
++int au_xino_set(struct super_block *sb, struct au_opt_xino *xino, int remount)
++{
++ int err, skip;
++ struct dentry *parent, *cur_parent;
++ struct qstr *dname, *cur_name;
++ struct file *cur_xino;
++ struct inode *dir;
++ struct au_sbinfo *sbinfo;
++
++ LKTRTrace("remount %d\n", remount);
++ SiMustWriteLock(sb);
++
++ err = 0;
++ sbinfo = au_sbi(sb);
++ parent = dget_parent(xino->file->f_dentry);
++ if (remount) {
++ skip = 0;
++ dname = &xino->file->f_dentry->d_name;
++ cur_xino = sbinfo->si_xib;
++ if (cur_xino) {
++ cur_parent = dget_parent(cur_xino->f_dentry);
++ cur_name = &cur_xino->f_dentry->d_name;
++ skip = (cur_parent == parent
++ && dname->len == cur_name->len
++ && !memcmp(dname->name, cur_name->name,
++ dname->len));
++ dput(cur_parent);
++ }
++ if (skip)
++ goto out;
++ }
++
++ au_opt_set(sbinfo->si_mntflags, XINO);
++ au_xino_def_br_set(NULL, sbinfo);
++ dir = parent->d_inode;
++ vfsub_i_lock_nested(dir, AuLsc_I_PARENT);
++ /* mnt_want_write() is unnecessary here */
++ err = au_xino_set_xib(sb, xino->file);
++ if (!err)
++ err = au_xigen_set(sb, xino->file);
++ if (!err)
++ err = au_xino_set_br(sb, xino->file);
++ vfsub_i_unlock(dir);
++ if (!err)
++ goto out; /* success */
++
++ /* reset all */
++ AuIOErr("failed creating xino(%d).\n", err);
++
++ out:
++ dput(parent);
++ AuTraceErr(err);
++ return err;
++}
++
++int au_xino_trunc(struct super_block *sb, aufs_bindex_t bindex)
++{
++ int err;
++ struct au_branch *br;
++ struct file *new_xino;
++ struct super_block *h_sb;
++ aufs_bindex_t bi, bend;
++ struct dentry *parent;
++ struct inode *dir;
++
++ LKTRTrace("b%d\n", bindex);
++ SiMustWriteLock(sb);
++
++ err = -EINVAL;
++ bend = au_sbend(sb);
++ if (unlikely(bindex < 0 || bend < bindex))
++ goto out;
++ br = au_sbr(sb, bindex);
++ if (!br->br_xino.xi_file)
++ goto out;
++
++ parent = dget_parent(br->br_xino.xi_file->f_dentry);
++ dir = parent->d_inode;
++ vfsub_i_lock_nested(dir, AuLsc_I_PARENT);
++ /* mnt_want_write() is unnecessary here */
++ new_xino = au_xino_create2(sb, br->br_xino.xi_file,
++ br->br_xino.xi_file);
++ vfsub_i_unlock(dir);
++ dput(parent);
++ err = PTR_ERR(new_xino);
++ if (IS_ERR(new_xino))
++ goto out;
++ err = 0;
++ fput(br->br_xino.xi_file);
++ br->br_xino.xi_file = new_xino;
++
++ h_sb = br->br_mnt->mnt_sb;
++ for (bi = 0; bi <= bend; bi++) {
++ if (unlikely(bi == bindex))
++ continue;
++ br = au_sbr(sb, bi);
++ if (br->br_mnt->mnt_sb != h_sb)
++ continue;
++
++ fput(br->br_xino.xi_file);
++ br->br_xino.xi_file = new_xino;
++ get_file(new_xino);
++ }
++
++ out:
++ AuTraceErr(err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
++/*
++ * create a xinofile at the default place/path.
++ */
++struct file *au_xino_def(struct super_block *sb)
++{
++ struct file *file;
++ aufs_bindex_t bend, bindex, bwr;
++ char *page, *p;
++ struct au_branch *br;
++
++ AuTraceEnter();
++
++ bend = au_sbend(sb);
++ bwr = -1;
++ for (bindex = 0; bindex <= bend; bindex++) {
++ br = au_sbr(sb, bindex);
++ if (au_br_writable(br->br_perm)
++ && !au_test_nfs(br->br_mnt->mnt_sb)
++ && !au_test_ecryptfs(br->br_mnt->mnt_sb)) {
++ bwr = bindex;
++ break;
++ }
++ }
++
++ if (bwr >= 0) {
++ file = ERR_PTR(-ENOMEM);
++ page = __getname();
++ if (unlikely(!page))
++ goto out;
++ p = d_path(au_h_dptr(sb->s_root, bwr), au_sbr_mnt(sb, bwr),
++ page, PATH_MAX - sizeof(AUFS_XINO_FNAME));
++ //if (LktrCond) p = ERR_PTR(-1);
++ file = (void *)p;
++ if (!IS_ERR(p)) {
++ strcat(p, "/" AUFS_XINO_FNAME);
++ LKTRTrace("%s\n", p);
++ file = au_xino_create(sb, p, /*silent*/0);
++ if (!IS_ERR(file))
++ au_xino_def_br_set(au_sbr(sb, bwr), au_sbi(sb));
++ }
++ __putname(page);
++ } else {
++ file = au_xino_create(sb, AUFS_XINO_DEFPATH, /*silent*/0);
++ if (unlikely(au_test_nfs(file->f_dentry->d_sb)
++ || au_test_ecryptfs(file->f_dentry->d_sb))) {
++ AuErr("xino or noxino option is required "
++ "since %s is NFS\n", AUFS_XINO_DEFPATH);
++ fput(file);
++ file = ERR_PTR(-EINVAL);
++ }
++ if (!IS_ERR(file))
++ au_xino_def_br_set(NULL, au_sbi(sb));
++ }
++
++ out:
++ AuTraceErrPtr(file);
++ return file;
++}
+diff --git a/fs/yaffs2/Kconfig b/fs/yaffs2/Kconfig
+new file mode 100644
+index 0000000..de15163
+--- /dev/null
++++ b/fs/yaffs2/Kconfig
+@@ -0,0 +1,156 @@
++#
++# YAFFS file system configurations
++#
++
++config YAFFS_FS
++ tristate "YAFFS2 file system support"
++ default n
++ depends on MTD
++ select YAFFS_YAFFS1
++ select YAFFS_YAFFS2
++ help
++ YAFFS2, or Yet Another Flash Filing System, is a filing system
++ optimised for NAND Flash chips.
++
++ To compile the YAFFS2 file system support as a module, choose M
++ here: the module will be called yaffs2.
++
++ If unsure, say N.
++
++ Further information on YAFFS2 is available at
++ <http://www.aleph1.co.uk/yaffs/>.
++
++config YAFFS_YAFFS1
++ bool "512 byte / page devices"
++ depends on YAFFS_FS
++ default y
++ help
++ Enable YAFFS1 support -- yaffs for 512 byte / page devices
++
++ Not needed for 2K-page devices.
++
++ If unsure, say Y.
++
++config YAFFS_9BYTE_TAGS
++ bool "Use older-style on-NAND data format with pageStatus byte"
++ depends on YAFFS_YAFFS1
++ default n
++ help
++
++ Older-style on-NAND data format has a "pageStatus" byte to record
++ chunk/page state. This byte is zero when the page is discarded.
++ Choose this option if you have existing on-NAND data using this
++ format that you need to continue to support. New data written
++ also uses the older-style format. Note: Use of this option
++ generally requires that MTD's oob layout be adjusted to use the
++ older-style format. See notes on tags formats and MTD versions
++ in yaffs_mtdif1.c.
++
++ If unsure, say N.
++
++config YAFFS_DOES_ECC
++ bool "Lets Yaffs do its own ECC"
++ depends on YAFFS_FS && YAFFS_YAFFS1 && !YAFFS_9BYTE_TAGS
++ default n
++ help
++ This enables Yaffs to use its own ECC functions instead of using
++ the ones from the generic MTD-NAND driver.
++
++ If unsure, say N.
++
++config YAFFS_ECC_WRONG_ORDER
++ bool "Use the same ecc byte order as Steven Hill's nand_ecc.c"
++ depends on YAFFS_FS && YAFFS_DOES_ECC && !YAFFS_9BYTE_TAGS
++ default n
++ help
++ This makes yaffs_ecc.c use the same ecc byte order as Steven
++ Hill's nand_ecc.c. If not set, then you get the same ecc byte
++ order as SmartMedia.
++
++ If unsure, say N.
++
++config YAFFS_YAFFS2
++ bool "2048 byte (or larger) / page devices"
++ depends on YAFFS_FS
++ default y
++ help
++ Enable YAFFS2 support -- yaffs for >= 2K bytes per page devices
++
++ If unsure, say Y.
++
++config YAFFS_AUTO_YAFFS2
++ bool "Autoselect yaffs2 format"
++ depends on YAFFS_YAFFS2
++ default y
++ help
++ Without this, you need to explicitely use yaffs2 as the file
++ system type. With this, you can say "yaffs" and yaffs or yaffs2
++ will be used depending on the device page size (yaffs on
++ 512-byte page devices, yaffs2 on 2K page devices).
++
++ If unsure, say Y.
++
++config YAFFS_DISABLE_LAZY_LOAD
++ bool "Disable lazy loading"
++ depends on YAFFS_YAFFS2
++ default n
++ help
++ "Lazy loading" defers loading file details until they are
++ required. This saves mount time, but makes the first look-up
++ a bit longer.
++
++ Lazy loading will only happen if enabled by this option being 'n'
++ and if the appropriate tags are available, else yaffs2 will
++ automatically fall back to immediate loading and do the right
++ thing.
++
++ Lazy laoding will be required by checkpointing.
++
++ Setting this to 'y' will disable lazy loading.
++
++ If unsure, say N.
++
++
++config YAFFS_DISABLE_WIDE_TNODES
++ bool "Turn off wide tnodes"
++ depends on YAFFS_FS
++ default n
++ help
++ Wide tnodes are only used for NAND arrays >=32MB for 512-byte
++ page devices and >=128MB for 2k page devices. They use slightly
++ more RAM but are faster since they eliminate chunk group
++ searching.
++
++ Setting this to 'y' will force tnode width to 16 bits and save
++ memory but make large arrays slower.
++
++ If unsure, say N.
++
++config YAFFS_ALWAYS_CHECK_CHUNK_ERASED
++ bool "Force chunk erase check"
++ depends on YAFFS_FS
++ default n
++ help
++ Normally YAFFS only checks chunks before writing until an erased
++ chunk is found. This helps to detect any partially written
++ chunks that might have happened due to power loss.
++
++ Enabling this forces on the test that chunks are erased in flash
++ before writing to them. This takes more time but is potentially
++ a bit more secure.
++
++ Suggest setting Y during development and ironing out driver
++ issues etc. Suggest setting to N if you want faster writing.
++
++ If unsure, say Y.
++
++config YAFFS_SHORT_NAMES_IN_RAM
++ bool "Cache short names in RAM"
++ depends on YAFFS_FS
++ default y
++ help
++ If this config is set, then short names are stored with the
++ yaffs_Object. This costs an extra 16 bytes of RAM per object,
++ but makes look-ups faster.
++
++ If unsure, say Y.
+diff --git a/fs/yaffs2/Makefile b/fs/yaffs2/Makefile
+new file mode 100644
+index 0000000..382ee61
+--- /dev/null
++++ b/fs/yaffs2/Makefile
+@@ -0,0 +1,10 @@
++#
++# Makefile for the linux YAFFS filesystem routines.
++#
++
++obj-$(CONFIG_YAFFS_FS) += yaffs.o
++
++yaffs-y := yaffs_ecc.o yaffs_fs.o yaffs_guts.o yaffs_checkptrw.o
++yaffs-y += yaffs_packedtags1.o yaffs_packedtags2.o yaffs_nand.o yaffs_qsort.o
++yaffs-y += yaffs_tagscompat.o yaffs_tagsvalidity.o
++yaffs-y += yaffs_mtdif.o yaffs_mtdif1.o yaffs_mtdif2.o
+diff --git a/fs/yaffs2/devextras.h b/fs/yaffs2/devextras.h
+new file mode 100644
+index 0000000..a9366fd
+--- /dev/null
++++ b/fs/yaffs2/devextras.h
+@@ -0,0 +1,199 @@
++/*
++ * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 2.1 as
++ * published by the Free Software Foundation.
++ *
++ * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
++ */
++
++/*
++ * This file is just holds extra declarations of macros that would normally
++ * be providesd in the Linux kernel. These macros have been written from
++ * scratch but are functionally equivalent to the Linux ones.
++ *
++ */
++
++#ifndef __EXTRAS_H__
++#define __EXTRAS_H__
++
++
++#if !(defined __KERNEL__)
++
++/* Definition of types */
++typedef unsigned char __u8;
++typedef unsigned short __u16;
++typedef unsigned __u32;
++
++#endif
++
++/*
++ * This is a simple doubly linked list implementation that matches the
++ * way the Linux kernel doubly linked list implementation works.
++ */
++
++struct ylist_head {
++ struct ylist_head *next; /* next in chain */
++ struct ylist_head *prev; /* previous in chain */
++};
++
++
++/* Initialise a static list */
++#define YLIST_HEAD(name) \
++struct ylist_head name = { &(name),&(name)}
++
++
++
++/* Initialise a list head to an empty list */
++#define YINIT_LIST_HEAD(p) \
++do { \
++ (p)->next = (p);\
++ (p)->prev = (p); \
++} while(0)
++
++
++/* Add an element to a list */
++static __inline__ void ylist_add(struct ylist_head *newEntry,
++ struct ylist_head *list)
++{
++ struct ylist_head *listNext = list->next;
++
++ list->next = newEntry;
++ newEntry->prev = list;
++ newEntry->next = listNext;
++ listNext->prev = newEntry;
++
++}
++
++static __inline__ void ylist_add_tail(struct ylist_head *newEntry,
++ struct ylist_head *list)
++{
++ struct ylist_head *listPrev = list->prev;
++
++ list->prev = newEntry;
++ newEntry->next = list;
++ newEntry->prev = listPrev;
++ listPrev->next = newEntry;
++
++}
++
++
++/* Take an element out of its current list, with or without
++ * reinitialising the links.of the entry*/
++static __inline__ void ylist_del(struct ylist_head *entry)
++{
++ struct ylist_head *listNext = entry->next;
++ struct ylist_head *listPrev = entry->prev;
++
++ listNext->prev = listPrev;
++ listPrev->next = listNext;
++
++}
++
++static __inline__ void ylist_del_init(struct ylist_head *entry)
++{
++ ylist_del(entry);
++ entry->next = entry->prev = entry;
++}
++
++
++/* Test if the list is empty */
++static __inline__ int ylist_empty(struct ylist_head *entry)
++{
++ return (entry->next == entry);
++}
++
++
++/* ylist_entry takes a pointer to a list entry and offsets it to that
++ * we can find a pointer to the object it is embedded in.
++ */
++
++
++#define ylist_entry(entry, type, member) \
++ ((type *)((char *)(entry)-(unsigned long)(&((type *)NULL)->member)))
++
++
++/* ylist_for_each and list_for_each_safe iterate over lists.
++ * ylist_for_each_safe uses temporary storage to make the list delete safe
++ */
++
++#define ylist_for_each(itervar, list) \
++ for (itervar = (list)->next; itervar != (list); itervar = itervar->next )
++
++#define ylist_for_each_safe(itervar,saveVar, list) \
++ for (itervar = (list)->next, saveVar = (list)->next->next; itervar != (list); \
++ itervar = saveVar, saveVar = saveVar->next)
++
++
++#if !(defined __KERNEL__)
++
++
++#ifndef WIN32
++#include <sys/stat.h>
++#endif
++
++
++#ifdef CONFIG_YAFFS_PROVIDE_DEFS
++/* File types */
++
++
++#define DT_UNKNOWN 0
++#define DT_FIFO 1
++#define DT_CHR 2
++#define DT_DIR 4
++#define DT_BLK 6
++#define DT_REG 8
++#define DT_LNK 10
++#define DT_SOCK 12
++#define DT_WHT 14
++
++
++#ifndef WIN32
++#include <sys/stat.h>
++#endif
++
++/*
++ * Attribute flags. These should be or-ed together to figure out what
++ * has been changed!
++ */
++#define ATTR_MODE 1
++#define ATTR_UID 2
++#define ATTR_GID 4
++#define ATTR_SIZE 8
++#define ATTR_ATIME 16
++#define ATTR_MTIME 32
++#define ATTR_CTIME 64
++
++struct iattr {
++ unsigned int ia_valid;
++ unsigned ia_mode;
++ unsigned ia_uid;
++ unsigned ia_gid;
++ unsigned ia_size;
++ unsigned ia_atime;
++ unsigned ia_mtime;
++ unsigned ia_ctime;
++ unsigned int ia_attr_flags;
++};
++
++#endif
++
++
++#define KERN_DEBUG
++
++#else
++
++#include <linux/types.h>
++#include <linux/fs.h>
++#include <linux/stat.h>
++
++#endif
++
++
++#endif
+diff --git a/fs/yaffs2/moduleconfig.h b/fs/yaffs2/moduleconfig.h
+new file mode 100644
+index 0000000..ac5af6f
+--- /dev/null
++++ b/fs/yaffs2/moduleconfig.h
+@@ -0,0 +1,65 @@
++/*
++ * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Martin Fouts <Martin.Fouts@palmsource.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 2.1 as
++ * published by the Free Software Foundation.
++ *
++ * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
++ */
++
++#ifndef __YAFFS_CONFIG_H__
++#define __YAFFS_CONFIG_H__
++
++#ifdef YAFFS_OUT_OF_TREE
++
++/* DO NOT UNSET THESE THREE. YAFFS2 will not compile if you do. */
++#define CONFIG_YAFFS_FS
++#define CONFIG_YAFFS_YAFFS1
++#define CONFIG_YAFFS_YAFFS2
++
++/* These options are independent of each other. Select those that matter. */
++
++/* Default: Not selected */
++/* Meaning: Yaffs does its own ECC, rather than using MTD ECC */
++//#define CONFIG_YAFFS_DOES_ECC
++
++/* Default: Not selected */
++/* Meaning: ECC byte order is 'wrong'. Only meaningful if */
++/* CONFIG_YAFFS_DOES_ECC is set */
++//#define CONFIG_YAFFS_ECC_WRONG_ORDER
++
++/* Default: Selected */
++/* Meaning: Disables testing whether chunks are erased before writing to them*/
++#define CONFIG_YAFFS_DISABLE_CHUNK_ERASED_CHECK
++
++/* Default: Selected */
++/* Meaning: Cache short names, taking more RAM, but faster look-ups */
++#define CONFIG_YAFFS_SHORT_NAMES_IN_RAM
++
++/* Default: 10 */
++/* Meaning: set the count of blocks to reserve for checkpointing */
++#define CONFIG_YAFFS_CHECKPOINT_RESERVED_BLOCKS 10
++
++/*
++Older-style on-NAND data format has a "pageStatus" byte to record
++chunk/page state. This byte is zeroed when the page is discarded.
++Choose this option if you have existing on-NAND data in this format
++that you need to continue to support. New data written also uses the
++older-style format.
++Note: Use of this option generally requires that MTD's oob layout be
++adjusted to use the older-style format. See notes on tags formats and
++MTD versions in yaffs_mtdif1.c.
++*/
++/* Default: Not selected */
++/* Meaning: Use older-style on-NAND data format with pageStatus byte */
++//#define CONFIG_YAFFS_9BYTE_TAGS
++
++#endif /* YAFFS_OUT_OF_TREE */
++
++#endif /* __YAFFS_CONFIG_H__ */
+diff --git a/fs/yaffs2/yaffs_checkptrw.c b/fs/yaffs2/yaffs_checkptrw.c
+new file mode 100644
+index 0000000..7cf3776
+--- /dev/null
++++ b/fs/yaffs2/yaffs_checkptrw.c
+@@ -0,0 +1,405 @@
++/*
++ * YAFFS: Yet Another Flash File System. A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++const char *yaffs_checkptrw_c_version =
++ "$Id: yaffs_checkptrw.c,v 1.17 2008/08/12 22:51:57 charles Exp $";
++
++
++#include "yaffs_checkptrw.h"
++#include "yaffs_getblockinfo.h"
++
++static int yaffs_CheckpointSpaceOk(yaffs_Device *dev)
++{
++
++ int blocksAvailable = dev->nErasedBlocks - dev->nReservedBlocks;
++
++ T(YAFFS_TRACE_CHECKPOINT,
++ (TSTR("checkpt blocks available = %d" TENDSTR),
++ blocksAvailable));
++
++
++ return (blocksAvailable <= 0) ? 0 : 1;
++}
++
++
++static int yaffs_CheckpointErase(yaffs_Device *dev)
++{
++
++ int i;
++
++
++ if(!dev->eraseBlockInNAND)
++ return 0;
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("checking blocks %d to %d"TENDSTR),
++ dev->internalStartBlock,dev->internalEndBlock));
++
++ for(i = dev->internalStartBlock; i <= dev->internalEndBlock; i++) {
++ yaffs_BlockInfo *bi = yaffs_GetBlockInfo(dev,i);
++ if(bi->blockState == YAFFS_BLOCK_STATE_CHECKPOINT){
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("erasing checkpt block %d"TENDSTR),i));
++ if(dev->eraseBlockInNAND(dev,i- dev->blockOffset /* realign */)){
++ bi->blockState = YAFFS_BLOCK_STATE_EMPTY;
++ dev->nErasedBlocks++;
++ dev->nFreeChunks += dev->nChunksPerBlock;
++ }
++ else {
++ dev->markNANDBlockBad(dev,i);
++ bi->blockState = YAFFS_BLOCK_STATE_DEAD;
++ }
++ }
++ }
++
++ dev->blocksInCheckpoint = 0;
++
++ return 1;
++}
++
++
++static void yaffs_CheckpointFindNextErasedBlock(yaffs_Device *dev)
++{
++ int i;
++ int blocksAvailable = dev->nErasedBlocks - dev->nReservedBlocks;
++ T(YAFFS_TRACE_CHECKPOINT,
++ (TSTR("allocating checkpt block: erased %d reserved %d avail %d next %d "TENDSTR),
++ dev->nErasedBlocks,dev->nReservedBlocks,blocksAvailable,dev->checkpointNextBlock));
++
++ if(dev->checkpointNextBlock >= 0 &&
++ dev->checkpointNextBlock <= dev->internalEndBlock &&
++ blocksAvailable > 0){
++
++ for(i = dev->checkpointNextBlock; i <= dev->internalEndBlock; i++){
++ yaffs_BlockInfo *bi = yaffs_GetBlockInfo(dev,i);
++ if(bi->blockState == YAFFS_BLOCK_STATE_EMPTY){
++ dev->checkpointNextBlock = i + 1;
++ dev->checkpointCurrentBlock = i;
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("allocating checkpt block %d"TENDSTR),i));
++ return;
++ }
++ }
++ }
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("out of checkpt blocks"TENDSTR)));
++
++ dev->checkpointNextBlock = -1;
++ dev->checkpointCurrentBlock = -1;
++}
++
++static void yaffs_CheckpointFindNextCheckpointBlock(yaffs_Device *dev)
++{
++ int i;
++ yaffs_ExtendedTags tags;
++
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("find next checkpt block: start: blocks %d next %d" TENDSTR),
++ dev->blocksInCheckpoint, dev->checkpointNextBlock));
++
++ if(dev->blocksInCheckpoint < dev->checkpointMaxBlocks)
++ for(i = dev->checkpointNextBlock; i <= dev->internalEndBlock; i++){
++ int chunk = i * dev->nChunksPerBlock;
++ int realignedChunk = chunk - dev->chunkOffset;
++
++ dev->readChunkWithTagsFromNAND(dev,realignedChunk,NULL,&tags);
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("find next checkpt block: search: block %d oid %d seq %d eccr %d" TENDSTR),
++ i, tags.objectId,tags.sequenceNumber,tags.eccResult));
++
++ if(tags.sequenceNumber == YAFFS_SEQUENCE_CHECKPOINT_DATA){
++ /* Right kind of block */
++ dev->checkpointNextBlock = tags.objectId;
++ dev->checkpointCurrentBlock = i;
++ dev->checkpointBlockList[dev->blocksInCheckpoint] = i;
++ dev->blocksInCheckpoint++;
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("found checkpt block %d"TENDSTR),i));
++ return;
++ }
++ }
++
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("found no more checkpt blocks"TENDSTR)));
++
++ dev->checkpointNextBlock = -1;
++ dev->checkpointCurrentBlock = -1;
++}
++
++
++int yaffs_CheckpointOpen(yaffs_Device *dev, int forWriting)
++{
++
++ /* Got the functions we need? */
++ if (!dev->writeChunkWithTagsToNAND ||
++ !dev->readChunkWithTagsFromNAND ||
++ !dev->eraseBlockInNAND ||
++ !dev->markNANDBlockBad)
++ return 0;
++
++ if(forWriting && !yaffs_CheckpointSpaceOk(dev))
++ return 0;
++
++ if(!dev->checkpointBuffer)
++ dev->checkpointBuffer = YMALLOC_DMA(dev->totalBytesPerChunk);
++ if(!dev->checkpointBuffer)
++ return 0;
++
++
++ dev->checkpointPageSequence = 0;
++
++ dev->checkpointOpenForWrite = forWriting;
++
++ dev->checkpointByteCount = 0;
++ dev->checkpointSum = 0;
++ dev->checkpointXor = 0;
++ dev->checkpointCurrentBlock = -1;
++ dev->checkpointCurrentChunk = -1;
++ dev->checkpointNextBlock = dev->internalStartBlock;
++
++ /* Erase all the blocks in the checkpoint area */
++ if(forWriting){
++ memset(dev->checkpointBuffer,0,dev->nDataBytesPerChunk);
++ dev->checkpointByteOffset = 0;
++ return yaffs_CheckpointErase(dev);
++
++
++ } else {
++ int i;
++ /* Set to a value that will kick off a read */
++ dev->checkpointByteOffset = dev->nDataBytesPerChunk;
++ /* A checkpoint block list of 1 checkpoint block per 16 block is (hopefully)
++ * going to be way more than we need */
++ dev->blocksInCheckpoint = 0;
++ dev->checkpointMaxBlocks = (dev->internalEndBlock - dev->internalStartBlock)/16 + 2;
++ dev->checkpointBlockList = YMALLOC(sizeof(int) * dev->checkpointMaxBlocks);
++ for(i = 0; i < dev->checkpointMaxBlocks; i++)
++ dev->checkpointBlockList[i] = -1;
++ }
++
++ return 1;
++}
++
++int yaffs_GetCheckpointSum(yaffs_Device *dev, __u32 *sum)
++{
++ __u32 compositeSum;
++ compositeSum = (dev->checkpointSum << 8) | (dev->checkpointXor & 0xFF);
++ *sum = compositeSum;
++ return 1;
++}
++
++static int yaffs_CheckpointFlushBuffer(yaffs_Device *dev)
++{
++
++ int chunk;
++ int realignedChunk;
++
++ yaffs_ExtendedTags tags;
++
++ if(dev->checkpointCurrentBlock < 0){
++ yaffs_CheckpointFindNextErasedBlock(dev);
++ dev->checkpointCurrentChunk = 0;
++ }
++
++ if(dev->checkpointCurrentBlock < 0)
++ return 0;
++
++ tags.chunkDeleted = 0;
++ tags.objectId = dev->checkpointNextBlock; /* Hint to next place to look */
++ tags.chunkId = dev->checkpointPageSequence + 1;
++ tags.sequenceNumber = YAFFS_SEQUENCE_CHECKPOINT_DATA;
++ tags.byteCount = dev->nDataBytesPerChunk;
++ if(dev->checkpointCurrentChunk == 0){
++ /* First chunk we write for the block? Set block state to
++ checkpoint */
++ yaffs_BlockInfo *bi = yaffs_GetBlockInfo(dev,dev->checkpointCurrentBlock);
++ bi->blockState = YAFFS_BLOCK_STATE_CHECKPOINT;
++ dev->blocksInCheckpoint++;
++ }
++
++ chunk = dev->checkpointCurrentBlock * dev->nChunksPerBlock + dev->checkpointCurrentChunk;
++
++
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("checkpoint wite buffer nand %d(%d:%d) objid %d chId %d" TENDSTR),
++ chunk, dev->checkpointCurrentBlock, dev->checkpointCurrentChunk,tags.objectId,tags.chunkId));
++
++ realignedChunk = chunk - dev->chunkOffset;
++
++ dev->writeChunkWithTagsToNAND(dev,realignedChunk,dev->checkpointBuffer,&tags);
++ dev->checkpointByteOffset = 0;
++ dev->checkpointPageSequence++;
++ dev->checkpointCurrentChunk++;
++ if(dev->checkpointCurrentChunk >= dev->nChunksPerBlock){
++ dev->checkpointCurrentChunk = 0;
++ dev->checkpointCurrentBlock = -1;
++ }
++ memset(dev->checkpointBuffer,0,dev->nDataBytesPerChunk);
++
++ return 1;
++}
++
++
++int yaffs_CheckpointWrite(yaffs_Device *dev,const void *data, int nBytes)
++{
++ int i=0;
++ int ok = 1;
++
++
++ __u8 * dataBytes = (__u8 *)data;
++
++
++
++ if(!dev->checkpointBuffer)
++ return 0;
++
++ if(!dev->checkpointOpenForWrite)
++ return -1;
++
++ while(i < nBytes && ok) {
++
++
++
++ dev->checkpointBuffer[dev->checkpointByteOffset] = *dataBytes ;
++ dev->checkpointSum += *dataBytes;
++ dev->checkpointXor ^= *dataBytes;
++
++ dev->checkpointByteOffset++;
++ i++;
++ dataBytes++;
++ dev->checkpointByteCount++;
++
++
++ if(dev->checkpointByteOffset < 0 ||
++ dev->checkpointByteOffset >= dev->nDataBytesPerChunk)
++ ok = yaffs_CheckpointFlushBuffer(dev);
++
++ }
++
++ return i;
++}
++
++int yaffs_CheckpointRead(yaffs_Device *dev, void *data, int nBytes)
++{
++ int i=0;
++ int ok = 1;
++ yaffs_ExtendedTags tags;
++
++
++ int chunk;
++ int realignedChunk;
++
++ __u8 *dataBytes = (__u8 *)data;
++
++ if(!dev->checkpointBuffer)
++ return 0;
++
++ if(dev->checkpointOpenForWrite)
++ return -1;
++
++ while(i < nBytes && ok) {
++
++
++ if(dev->checkpointByteOffset < 0 ||
++ dev->checkpointByteOffset >= dev->nDataBytesPerChunk) {
++
++ if(dev->checkpointCurrentBlock < 0){
++ yaffs_CheckpointFindNextCheckpointBlock(dev);
++ dev->checkpointCurrentChunk = 0;
++ }
++
++ if(dev->checkpointCurrentBlock < 0)
++ ok = 0;
++ else {
++
++ chunk = dev->checkpointCurrentBlock * dev->nChunksPerBlock +
++ dev->checkpointCurrentChunk;
++
++ realignedChunk = chunk - dev->chunkOffset;
++
++ /* read in the next chunk */
++ /* printf("read checkpoint page %d\n",dev->checkpointPage); */
++ dev->readChunkWithTagsFromNAND(dev, realignedChunk,
++ dev->checkpointBuffer,
++ &tags);
++
++ if(tags.chunkId != (dev->checkpointPageSequence + 1) ||
++ tags.eccResult > YAFFS_ECC_RESULT_FIXED ||
++ tags.sequenceNumber != YAFFS_SEQUENCE_CHECKPOINT_DATA)
++ ok = 0;
++
++ dev->checkpointByteOffset = 0;
++ dev->checkpointPageSequence++;
++ dev->checkpointCurrentChunk++;
++
++ if(dev->checkpointCurrentChunk >= dev->nChunksPerBlock)
++ dev->checkpointCurrentBlock = -1;
++ }
++ }
++
++ if(ok){
++ *dataBytes = dev->checkpointBuffer[dev->checkpointByteOffset];
++ dev->checkpointSum += *dataBytes;
++ dev->checkpointXor ^= *dataBytes;
++ dev->checkpointByteOffset++;
++ i++;
++ dataBytes++;
++ dev->checkpointByteCount++;
++ }
++ }
++
++ return i;
++}
++
++int yaffs_CheckpointClose(yaffs_Device *dev)
++{
++
++ if(dev->checkpointOpenForWrite){
++ if(dev->checkpointByteOffset != 0)
++ yaffs_CheckpointFlushBuffer(dev);
++ } else {
++ int i;
++ for(i = 0; i < dev->blocksInCheckpoint && dev->checkpointBlockList[i] >= 0; i++){
++ yaffs_BlockInfo *bi = yaffs_GetBlockInfo(dev,dev->checkpointBlockList[i]);
++ if(bi->blockState == YAFFS_BLOCK_STATE_EMPTY)
++ bi->blockState = YAFFS_BLOCK_STATE_CHECKPOINT;
++ else {
++ // Todo this looks odd...
++ }
++ }
++ YFREE(dev->checkpointBlockList);
++ dev->checkpointBlockList = NULL;
++ }
++
++ dev->nFreeChunks -= dev->blocksInCheckpoint * dev->nChunksPerBlock;
++ dev->nErasedBlocks -= dev->blocksInCheckpoint;
++
++
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("checkpoint byte count %d" TENDSTR),
++ dev->checkpointByteCount));
++
++ if(dev->checkpointBuffer){
++ /* free the buffer */
++ YFREE(dev->checkpointBuffer);
++ dev->checkpointBuffer = NULL;
++ return 1;
++ }
++ else
++ return 0;
++
++}
++
++int yaffs_CheckpointInvalidateStream(yaffs_Device *dev)
++{
++ /* Erase the first checksum block */
++
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("checkpoint invalidate"TENDSTR)));
++
++ if(!yaffs_CheckpointSpaceOk(dev))
++ return 0;
++
++ return yaffs_CheckpointErase(dev);
++}
++
++
++
+diff --git a/fs/yaffs2/yaffs_checkptrw.h b/fs/yaffs2/yaffs_checkptrw.h
+new file mode 100644
+index 0000000..d3ff174
+--- /dev/null
++++ b/fs/yaffs2/yaffs_checkptrw.h
+@@ -0,0 +1,35 @@
++/*
++ * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 2.1 as
++ * published by the Free Software Foundation.
++ *
++ * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
++ */
++
++#ifndef __YAFFS_CHECKPTRW_H__
++#define __YAFFS_CHECKPTRW_H__
++
++#include "yaffs_guts.h"
++
++int yaffs_CheckpointOpen(yaffs_Device *dev, int forWriting);
++
++int yaffs_CheckpointWrite(yaffs_Device *dev,const void *data, int nBytes);
++
++int yaffs_CheckpointRead(yaffs_Device *dev,void *data, int nBytes);
++
++int yaffs_GetCheckpointSum(yaffs_Device *dev, __u32 *sum);
++
++int yaffs_CheckpointClose(yaffs_Device *dev);
++
++int yaffs_CheckpointInvalidateStream(yaffs_Device *dev);
++
++
++#endif
++
+diff --git a/fs/yaffs2/yaffs_ecc.c b/fs/yaffs2/yaffs_ecc.c
+new file mode 100644
+index 0000000..b099835
+--- /dev/null
++++ b/fs/yaffs2/yaffs_ecc.c
+@@ -0,0 +1,331 @@
++/*
++ * YAFFS: Yet Another Flash File System. A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++/*
++ * This code implements the ECC algorithm used in SmartMedia.
++ *
++ * The ECC comprises 22 bits of parity information and is stuffed into 3 bytes.
++ * The two unused bit are set to 1.
++ * The ECC can correct single bit errors in a 256-byte page of data. Thus, two such ECC
++ * blocks are used on a 512-byte NAND page.
++ *
++ */
++
++/* Table generated by gen-ecc.c
++ * Using a table means we do not have to calculate p1..p4 and p1'..p4'
++ * for each byte of data. These are instead provided in a table in bits7..2.
++ * Bit 0 of each entry indicates whether the entry has an odd or even parity, and therefore
++ * this bytes influence on the line parity.
++ */
++
++const char *yaffs_ecc_c_version =
++ "$Id: yaffs_ecc.c,v 1.10 2007/12/13 15:35:17 wookey Exp $";
++
++#include "yportenv.h"
++
++#include "yaffs_ecc.h"
++
++static const unsigned char column_parity_table[] = {
++ 0x00, 0x55, 0x59, 0x0c, 0x65, 0x30, 0x3c, 0x69,
++ 0x69, 0x3c, 0x30, 0x65, 0x0c, 0x59, 0x55, 0x00,
++ 0x95, 0xc0, 0xcc, 0x99, 0xf0, 0xa5, 0xa9, 0xfc,
++ 0xfc, 0xa9, 0xa5, 0xf0, 0x99, 0xcc, 0xc0, 0x95,
++ 0x99, 0xcc, 0xc0, 0x95, 0xfc, 0xa9, 0xa5, 0xf0,
++ 0xf0, 0xa5, 0xa9, 0xfc, 0x95, 0xc0, 0xcc, 0x99,
++ 0x0c, 0x59, 0x55, 0x00, 0x69, 0x3c, 0x30, 0x65,
++ 0x65, 0x30, 0x3c, 0x69, 0x00, 0x55, 0x59, 0x0c,
++ 0xa5, 0xf0, 0xfc, 0xa9, 0xc0, 0x95, 0x99, 0xcc,
++ 0xcc, 0x99, 0x95, 0xc0, 0xa9, 0xfc, 0xf0, 0xa5,
++ 0x30, 0x65, 0x69, 0x3c, 0x55, 0x00, 0x0c, 0x59,
++ 0x59, 0x0c, 0x00, 0x55, 0x3c, 0x69, 0x65, 0x30,
++ 0x3c, 0x69, 0x65, 0x30, 0x59, 0x0c, 0x00, 0x55,
++ 0x55, 0x00, 0x0c, 0x59, 0x30, 0x65, 0x69, 0x3c,
++ 0xa9, 0xfc, 0xf0, 0xa5, 0xcc, 0x99, 0x95, 0xc0,
++ 0xc0, 0x95, 0x99, 0xcc, 0xa5, 0xf0, 0xfc, 0xa9,
++ 0xa9, 0xfc, 0xf0, 0xa5, 0xcc, 0x99, 0x95, 0xc0,
++ 0xc0, 0x95, 0x99, 0xcc, 0xa5, 0xf0, 0xfc, 0xa9,
++ 0x3c, 0x69, 0x65, 0x30, 0x59, 0x0c, 0x00, 0x55,
++ 0x55, 0x00, 0x0c, 0x59, 0x30, 0x65, 0x69, 0x3c,
++ 0x30, 0x65, 0x69, 0x3c, 0x55, 0x00, 0x0c, 0x59,
++ 0x59, 0x0c, 0x00, 0x55, 0x3c, 0x69, 0x65, 0x30,
++ 0xa5, 0xf0, 0xfc, 0xa9, 0xc0, 0x95, 0x99, 0xcc,
++ 0xcc, 0x99, 0x95, 0xc0, 0xa9, 0xfc, 0xf0, 0xa5,
++ 0x0c, 0x59, 0x55, 0x00, 0x69, 0x3c, 0x30, 0x65,
++ 0x65, 0x30, 0x3c, 0x69, 0x00, 0x55, 0x59, 0x0c,
++ 0x99, 0xcc, 0xc0, 0x95, 0xfc, 0xa9, 0xa5, 0xf0,
++ 0xf0, 0xa5, 0xa9, 0xfc, 0x95, 0xc0, 0xcc, 0x99,
++ 0x95, 0xc0, 0xcc, 0x99, 0xf0, 0xa5, 0xa9, 0xfc,
++ 0xfc, 0xa9, 0xa5, 0xf0, 0x99, 0xcc, 0xc0, 0x95,
++ 0x00, 0x55, 0x59, 0x0c, 0x65, 0x30, 0x3c, 0x69,
++ 0x69, 0x3c, 0x30, 0x65, 0x0c, 0x59, 0x55, 0x00,
++};
++
++/* Count the bits in an unsigned char or a U32 */
++
++static int yaffs_CountBits(unsigned char x)
++{
++ int r = 0;
++ while (x) {
++ if (x & 1)
++ r++;
++ x >>= 1;
++ }
++ return r;
++}
++
++static int yaffs_CountBits32(unsigned x)
++{
++ int r = 0;
++ while (x) {
++ if (x & 1)
++ r++;
++ x >>= 1;
++ }
++ return r;
++}
++
++/* Calculate the ECC for a 256-byte block of data */
++void yaffs_ECCCalculate(const unsigned char *data, unsigned char *ecc)
++{
++ unsigned int i;
++
++ unsigned char col_parity = 0;
++ unsigned char line_parity = 0;
++ unsigned char line_parity_prime = 0;
++ unsigned char t;
++ unsigned char b;
++
++ for (i = 0; i < 256; i++) {
++ b = column_parity_table[*data++];
++ col_parity ^= b;
++
++ if (b & 0x01) // odd number of bits in the byte
++ {
++ line_parity ^= i;
++ line_parity_prime ^= ~i;
++ }
++
++ }
++
++ ecc[2] = (~col_parity) | 0x03;
++
++ t = 0;
++ if (line_parity & 0x80)
++ t |= 0x80;
++ if (line_parity_prime & 0x80)
++ t |= 0x40;
++ if (line_parity & 0x40)
++ t |= 0x20;
++ if (line_parity_prime & 0x40)
++ t |= 0x10;
++ if (line_parity & 0x20)
++ t |= 0x08;
++ if (line_parity_prime & 0x20)
++ t |= 0x04;
++ if (line_parity & 0x10)
++ t |= 0x02;
++ if (line_parity_prime & 0x10)
++ t |= 0x01;
++ ecc[1] = ~t;
++
++ t = 0;
++ if (line_parity & 0x08)
++ t |= 0x80;
++ if (line_parity_prime & 0x08)
++ t |= 0x40;
++ if (line_parity & 0x04)
++ t |= 0x20;
++ if (line_parity_prime & 0x04)
++ t |= 0x10;
++ if (line_parity & 0x02)
++ t |= 0x08;
++ if (line_parity_prime & 0x02)
++ t |= 0x04;
++ if (line_parity & 0x01)
++ t |= 0x02;
++ if (line_parity_prime & 0x01)
++ t |= 0x01;
++ ecc[0] = ~t;
++
++#ifdef CONFIG_YAFFS_ECC_WRONG_ORDER
++ // Swap the bytes into the wrong order
++ t = ecc[0];
++ ecc[0] = ecc[1];
++ ecc[1] = t;
++#endif
++}
++
++
++/* Correct the ECC on a 256 byte block of data */
++
++int yaffs_ECCCorrect(unsigned char *data, unsigned char *read_ecc,
++ const unsigned char *test_ecc)
++{
++ unsigned char d0, d1, d2; /* deltas */
++
++ d0 = read_ecc[0] ^ test_ecc[0];
++ d1 = read_ecc[1] ^ test_ecc[1];
++ d2 = read_ecc[2] ^ test_ecc[2];
++
++ if ((d0 | d1 | d2) == 0)
++ return 0; /* no error */
++
++ if (((d0 ^ (d0 >> 1)) & 0x55) == 0x55 &&
++ ((d1 ^ (d1 >> 1)) & 0x55) == 0x55 &&
++ ((d2 ^ (d2 >> 1)) & 0x54) == 0x54) {
++ /* Single bit (recoverable) error in data */
++
++ unsigned byte;
++ unsigned bit;
++
++#ifdef CONFIG_YAFFS_ECC_WRONG_ORDER
++ // swap the bytes to correct for the wrong order
++ unsigned char t;
++
++ t = d0;
++ d0 = d1;
++ d1 = t;
++#endif
++
++ bit = byte = 0;
++
++ if (d1 & 0x80)
++ byte |= 0x80;
++ if (d1 & 0x20)
++ byte |= 0x40;
++ if (d1 & 0x08)
++ byte |= 0x20;
++ if (d1 & 0x02)
++ byte |= 0x10;
++ if (d0 & 0x80)
++ byte |= 0x08;
++ if (d0 & 0x20)
++ byte |= 0x04;
++ if (d0 & 0x08)
++ byte |= 0x02;
++ if (d0 & 0x02)
++ byte |= 0x01;
++
++ if (d2 & 0x80)
++ bit |= 0x04;
++ if (d2 & 0x20)
++ bit |= 0x02;
++ if (d2 & 0x08)
++ bit |= 0x01;
++
++ data[byte] ^= (1 << bit);
++
++ return 1; /* Corrected the error */
++ }
++
++ if ((yaffs_CountBits(d0) +
++ yaffs_CountBits(d1) +
++ yaffs_CountBits(d2)) == 1) {
++ /* Reccoverable error in ecc */
++
++ read_ecc[0] = test_ecc[0];
++ read_ecc[1] = test_ecc[1];
++ read_ecc[2] = test_ecc[2];
++
++ return 1; /* Corrected the error */
++ }
++
++ /* Unrecoverable error */
++
++ return -1;
++
++}
++
++
++/*
++ * ECCxxxOther does ECC calcs on arbitrary n bytes of data
++ */
++void yaffs_ECCCalculateOther(const unsigned char *data, unsigned nBytes,
++ yaffs_ECCOther * eccOther)
++{
++ unsigned int i;
++
++ unsigned char col_parity = 0;
++ unsigned line_parity = 0;
++ unsigned line_parity_prime = 0;
++ unsigned char b;
++
++ for (i = 0; i < nBytes; i++) {
++ b = column_parity_table[*data++];
++ col_parity ^= b;
++
++ if (b & 0x01) {
++ /* odd number of bits in the byte */
++ line_parity ^= i;
++ line_parity_prime ^= ~i;
++ }
++
++ }
++
++ eccOther->colParity = (col_parity >> 2) & 0x3f;
++ eccOther->lineParity = line_parity;
++ eccOther->lineParityPrime = line_parity_prime;
++}
++
++int yaffs_ECCCorrectOther(unsigned char *data, unsigned nBytes,
++ yaffs_ECCOther * read_ecc,
++ const yaffs_ECCOther * test_ecc)
++{
++ unsigned char cDelta; /* column parity delta */
++ unsigned lDelta; /* line parity delta */
++ unsigned lDeltaPrime; /* line parity delta */
++ unsigned bit;
++
++ cDelta = read_ecc->colParity ^ test_ecc->colParity;
++ lDelta = read_ecc->lineParity ^ test_ecc->lineParity;
++ lDeltaPrime = read_ecc->lineParityPrime ^ test_ecc->lineParityPrime;
++
++ if ((cDelta | lDelta | lDeltaPrime) == 0)
++ return 0; /* no error */
++
++ if (lDelta == ~lDeltaPrime &&
++ (((cDelta ^ (cDelta >> 1)) & 0x15) == 0x15))
++ {
++ /* Single bit (recoverable) error in data */
++
++ bit = 0;
++
++ if (cDelta & 0x20)
++ bit |= 0x04;
++ if (cDelta & 0x08)
++ bit |= 0x02;
++ if (cDelta & 0x02)
++ bit |= 0x01;
++
++ if(lDelta >= nBytes)
++ return -1;
++
++ data[lDelta] ^= (1 << bit);
++
++ return 1; /* corrected */
++ }
++
++ if ((yaffs_CountBits32(lDelta) + yaffs_CountBits32(lDeltaPrime) +
++ yaffs_CountBits(cDelta)) == 1) {
++ /* Reccoverable error in ecc */
++
++ *read_ecc = *test_ecc;
++ return 1; /* corrected */
++ }
++
++ /* Unrecoverable error */
++
++ return -1;
++
++}
++
+diff --git a/fs/yaffs2/yaffs_ecc.h b/fs/yaffs2/yaffs_ecc.h
+new file mode 100644
+index 0000000..79bc3d1
+--- /dev/null
++++ b/fs/yaffs2/yaffs_ecc.h
+@@ -0,0 +1,44 @@
++/*
++ * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 2.1 as
++ * published by the Free Software Foundation.
++ *
++ * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
++ */
++
++ /*
++ * This code implements the ECC algorithm used in SmartMedia.
++ *
++ * The ECC comprises 22 bits of parity information and is stuffed into 3 bytes.
++ * The two unused bit are set to 1.
++ * The ECC can correct single bit errors in a 256-byte page of data. Thus, two such ECC
++ * blocks are used on a 512-byte NAND page.
++ *
++ */
++
++#ifndef __YAFFS_ECC_H__
++#define __YAFFS_ECC_H__
++
++typedef struct {
++ unsigned char colParity;
++ unsigned lineParity;
++ unsigned lineParityPrime;
++} yaffs_ECCOther;
++
++void yaffs_ECCCalculate(const unsigned char *data, unsigned char *ecc);
++int yaffs_ECCCorrect(unsigned char *data, unsigned char *read_ecc,
++ const unsigned char *test_ecc);
++
++void yaffs_ECCCalculateOther(const unsigned char *data, unsigned nBytes,
++ yaffs_ECCOther * ecc);
++int yaffs_ECCCorrectOther(unsigned char *data, unsigned nBytes,
++ yaffs_ECCOther * read_ecc,
++ const yaffs_ECCOther * test_ecc);
++#endif
+diff --git a/fs/yaffs2/yaffs_fs.c b/fs/yaffs2/yaffs_fs.c
+new file mode 100644
+index 0000000..0c09033
+--- /dev/null
++++ b/fs/yaffs2/yaffs_fs.c
+@@ -0,0 +1,2393 @@
++/*
++ * YAFFS: Yet Another Flash File System. A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ * Acknowledgements:
++ * Luc van OostenRyck for numerous patches.
++ * Nick Bane for numerous patches.
++ * Nick Bane for 2.5/2.6 integration.
++ * Andras Toth for mknod rdev issue.
++ * Michael Fischer for finding the problem with inode inconsistency.
++ * Some code bodily lifted from JFFS
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++/*
++ *
++ * This is the file system front-end to YAFFS that hooks it up to
++ * the VFS.
++ *
++ * Special notes:
++ * >> 2.4: sb->u.generic_sbp points to the yaffs_Device associated with
++ * this superblock
++ * >> 2.6: sb->s_fs_info points to the yaffs_Device associated with this
++ * superblock
++ * >> inode->u.generic_ip points to the associated yaffs_Object.
++ */
++
++const char *yaffs_fs_c_version =
++ "$Id: yaffs_fs.c,v 1.69 2008/08/28 02:42:11 charles Exp $";
++extern const char *yaffs_guts_c_version;
++
++#include <linux/version.h>
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19))
++#include <linux/config.h>
++#endif
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/slab.h>
++#include <linux/init.h>
++#include <linux/fs.h>
++#include <linux/proc_fs.h>
++#include <linux/smp_lock.h>
++#include <linux/pagemap.h>
++#include <linux/mtd/mtd.h>
++#include <linux/interrupt.h>
++#include <linux/string.h>
++#include <linux/ctype.h>
++
++#include "asm/div64.h"
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
++
++#include <linux/statfs.h> /* Added NCB 15-8-2003 */
++#include <asm/statfs.h>
++#define UnlockPage(p) unlock_page(p)
++#define Page_Uptodate(page) test_bit(PG_uptodate, &(page)->flags)
++
++/* FIXME: use sb->s_id instead ? */
++#define yaffs_devname(sb, buf) bdevname(sb->s_bdev, buf)
++
++#else
++
++#include <linux/locks.h>
++#define BDEVNAME_SIZE 0
++#define yaffs_devname(sb, buf) kdevname(sb->s_dev)
++
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
++/* added NCB 26/5/2006 for 2.4.25-vrs2-tcl1 kernel */
++#define __user
++#endif
++
++#endif
++
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26))
++#define YPROC_ROOT &proc_root
++#else
++#define YPROC_ROOT NULL
++#endif
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
++#define WRITE_SIZE_STR "writesize"
++#define WRITE_SIZE(mtd) (mtd)->writesize
++#else
++#define WRITE_SIZE_STR "oobblock"
++#define WRITE_SIZE(mtd) (mtd)->oobblock
++#endif
++
++#include <asm/uaccess.h>
++
++#include "yportenv.h"
++#include "yaffs_guts.h"
++
++#include <linux/mtd/mtd.h>
++#include "yaffs_mtdif.h"
++#include "yaffs_mtdif1.h"
++#include "yaffs_mtdif2.h"
++
++unsigned int yaffs_traceMask = YAFFS_TRACE_BAD_BLOCKS;
++unsigned int yaffs_wr_attempts = YAFFS_WR_ATTEMPTS;
++
++/* Module Parameters */
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
++module_param(yaffs_traceMask,uint,0644);
++module_param(yaffs_wr_attempts,uint,0644);
++#else
++MODULE_PARM(yaffs_traceMask,"i");
++MODULE_PARM(yaffs_wr_attempts,"i");
++#endif
++
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25))
++/* use iget and read_inode */
++#define Y_IGET(sb,inum) iget((sb),(inum))
++static void yaffs_read_inode(struct inode *inode);
++
++#else
++/* Call local equivalent */
++#define YAFFS_USE_OWN_IGET
++#define Y_IGET(sb,inum) yaffs_iget((sb),(inum))
++
++static struct inode * yaffs_iget(struct super_block *sb, unsigned long ino);
++#endif
++
++/*#define T(x) printk x */
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18))
++#define yaffs_InodeToObjectLV(iptr) (iptr)->i_private
++#else
++#define yaffs_InodeToObjectLV(iptr) (iptr)->u.generic_ip
++#endif
++
++#define yaffs_InodeToObject(iptr) ((yaffs_Object *)(yaffs_InodeToObjectLV(iptr)))
++#define yaffs_DentryToObject(dptr) yaffs_InodeToObject((dptr)->d_inode)
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
++#define yaffs_SuperToDevice(sb) ((yaffs_Device *)sb->s_fs_info)
++#else
++#define yaffs_SuperToDevice(sb) ((yaffs_Device *)sb->u.generic_sbp)
++#endif
++
++static void yaffs_put_super(struct super_block *sb);
++
++static ssize_t yaffs_file_write(struct file *f, const char *buf, size_t n,
++ loff_t * pos);
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
++static int yaffs_file_flush(struct file *file, fl_owner_t id);
++#else
++static int yaffs_file_flush(struct file *file);
++#endif
++
++static int yaffs_sync_object(struct file *file, struct dentry *dentry,
++ int datasync);
++
++static int yaffs_readdir(struct file *f, void *dirent, filldir_t filldir);
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
++static int yaffs_create(struct inode *dir, struct dentry *dentry, int mode,
++ struct nameidata *n);
++static struct dentry *yaffs_lookup(struct inode *dir, struct dentry *dentry,
++ struct nameidata *n);
++#else
++static int yaffs_create(struct inode *dir, struct dentry *dentry, int mode);
++static struct dentry *yaffs_lookup(struct inode *dir, struct dentry *dentry);
++#endif
++static int yaffs_link(struct dentry *old_dentry, struct inode *dir,
++ struct dentry *dentry);
++static int yaffs_unlink(struct inode *dir, struct dentry *dentry);
++static int yaffs_symlink(struct inode *dir, struct dentry *dentry,
++ const char *symname);
++static int yaffs_mkdir(struct inode *dir, struct dentry *dentry, int mode);
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
++static int yaffs_mknod(struct inode *dir, struct dentry *dentry, int mode,
++ dev_t dev);
++#else
++static int yaffs_mknod(struct inode *dir, struct dentry *dentry, int mode,
++ int dev);
++#endif
++static int yaffs_rename(struct inode *old_dir, struct dentry *old_dentry,
++ struct inode *new_dir, struct dentry *new_dentry);
++static int yaffs_setattr(struct dentry *dentry, struct iattr *attr);
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
++static int yaffs_sync_fs(struct super_block *sb, int wait);
++static void yaffs_write_super(struct super_block *sb);
++#else
++static int yaffs_sync_fs(struct super_block *sb);
++static int yaffs_write_super(struct super_block *sb);
++#endif
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
++static int yaffs_statfs(struct dentry *dentry, struct kstatfs *buf);
++#elif (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
++static int yaffs_statfs(struct super_block *sb, struct kstatfs *buf);
++#else
++static int yaffs_statfs(struct super_block *sb, struct statfs *buf);
++#endif
++
++#ifdef YAFFS_HAS_PUT_INODE
++static void yaffs_put_inode(struct inode *inode);
++#endif
++
++static void yaffs_delete_inode(struct inode *);
++static void yaffs_clear_inode(struct inode *);
++
++static int yaffs_readpage(struct file *file, struct page *page);
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
++static int yaffs_writepage(struct page *page, struct writeback_control *wbc);
++#else
++static int yaffs_writepage(struct page *page);
++#endif
++static int yaffs_prepare_write(struct file *f, struct page *pg,
++ unsigned offset, unsigned to);
++static int yaffs_commit_write(struct file *f, struct page *pg, unsigned offset,
++ unsigned to);
++
++static int yaffs_readlink(struct dentry *dentry, char __user * buffer,
++ int buflen);
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13))
++static void *yaffs_follow_link(struct dentry *dentry, struct nameidata *nd);
++#else
++static int yaffs_follow_link(struct dentry *dentry, struct nameidata *nd);
++#endif
++
++static struct address_space_operations yaffs_file_address_operations = {
++ .readpage = yaffs_readpage,
++ .writepage = yaffs_writepage,
++ .prepare_write = yaffs_prepare_write,
++ .commit_write = yaffs_commit_write,
++};
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,22))
++static struct file_operations yaffs_file_operations = {
++ .read = do_sync_read,
++ .write = do_sync_write,
++ .aio_read = generic_file_aio_read,
++ .aio_write = generic_file_aio_write,
++ .mmap = generic_file_mmap,
++ .flush = yaffs_file_flush,
++ .fsync = yaffs_sync_object,
++ .splice_read = generic_file_splice_read,
++ .splice_write = generic_file_splice_write,
++};
++
++#elif (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18))
++
++static struct file_operations yaffs_file_operations = {
++ .read = do_sync_read,
++ .write = do_sync_write,
++ .aio_read = generic_file_aio_read,
++ .aio_write = generic_file_aio_write,
++ .mmap = generic_file_mmap,
++ .flush = yaffs_file_flush,
++ .fsync = yaffs_sync_object,
++ .sendfile = generic_file_sendfile,
++};
++
++#else
++
++static struct file_operations yaffs_file_operations = {
++ .read = generic_file_read,
++ .write = generic_file_write,
++ .mmap = generic_file_mmap,
++ .flush = yaffs_file_flush,
++ .fsync = yaffs_sync_object,
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
++ .sendfile = generic_file_sendfile,
++#endif
++};
++#endif
++
++static struct inode_operations yaffs_file_inode_operations = {
++ .setattr = yaffs_setattr,
++};
++
++static struct inode_operations yaffs_symlink_inode_operations = {
++ .readlink = yaffs_readlink,
++ .follow_link = yaffs_follow_link,
++ .setattr = yaffs_setattr,
++};
++
++static struct inode_operations yaffs_dir_inode_operations = {
++ .create = yaffs_create,
++ .lookup = yaffs_lookup,
++ .link = yaffs_link,
++ .unlink = yaffs_unlink,
++ .symlink = yaffs_symlink,
++ .mkdir = yaffs_mkdir,
++ .rmdir = yaffs_unlink,
++ .mknod = yaffs_mknod,
++ .rename = yaffs_rename,
++ .setattr = yaffs_setattr,
++};
++
++static struct file_operations yaffs_dir_operations = {
++ .read = generic_read_dir,
++ .readdir = yaffs_readdir,
++ .fsync = yaffs_sync_object,
++};
++
++static struct super_operations yaffs_super_ops = {
++ .statfs = yaffs_statfs,
++
++#ifndef YAFFS_USE_OWN_IGET
++ .read_inode = yaffs_read_inode,
++#endif
++#ifdef YAFFS_HAS_PUT_INODE
++ .put_inode = yaffs_put_inode,
++#endif
++ .put_super = yaffs_put_super,
++ .delete_inode = yaffs_delete_inode,
++ .clear_inode = yaffs_clear_inode,
++ .sync_fs = yaffs_sync_fs,
++ .write_super = yaffs_write_super,
++};
++
++static void yaffs_GrossLock(yaffs_Device * dev)
++{
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs locking\n"));
++
++ down(&dev->grossLock);
++}
++
++static void yaffs_GrossUnlock(yaffs_Device * dev)
++{
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs unlocking\n"));
++ up(&dev->grossLock);
++
++}
++
++static int yaffs_readlink(struct dentry *dentry, char __user * buffer,
++ int buflen)
++{
++ unsigned char *alias;
++ int ret;
++
++ yaffs_Device *dev = yaffs_DentryToObject(dentry)->myDev;
++
++ yaffs_GrossLock(dev);
++
++ alias = yaffs_GetSymlinkAlias(yaffs_DentryToObject(dentry));
++
++ yaffs_GrossUnlock(dev);
++
++ if (!alias)
++ return -ENOMEM;
++
++ ret = vfs_readlink(dentry, buffer, buflen, alias);
++ kfree(alias);
++ return ret;
++}
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13))
++static void *yaffs_follow_link(struct dentry *dentry, struct nameidata *nd)
++#else
++static int yaffs_follow_link(struct dentry *dentry, struct nameidata *nd)
++#endif
++{
++ unsigned char *alias;
++ int ret;
++ yaffs_Device *dev = yaffs_DentryToObject(dentry)->myDev;
++
++ yaffs_GrossLock(dev);
++
++ alias = yaffs_GetSymlinkAlias(yaffs_DentryToObject(dentry));
++
++ yaffs_GrossUnlock(dev);
++
++ if (!alias)
++ {
++ ret = -ENOMEM;
++ goto out;
++ }
++
++ ret = vfs_follow_link(nd, alias);
++ kfree(alias);
++out:
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13))
++ return ERR_PTR (ret);
++#else
++ return ret;
++#endif
++}
++
++struct inode *yaffs_get_inode(struct super_block *sb, int mode, int dev,
++ yaffs_Object * obj);
++
++/*
++ * Lookup is used to find objects in the fs
++ */
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
++
++static struct dentry *yaffs_lookup(struct inode *dir, struct dentry *dentry,
++ struct nameidata *n)
++#else
++static struct dentry *yaffs_lookup(struct inode *dir, struct dentry *dentry)
++#endif
++{
++ yaffs_Object *obj;
++ struct inode *inode = NULL; /* NCB 2.5/2.6 needs NULL here */
++
++ yaffs_Device *dev = yaffs_InodeToObject(dir)->myDev;
++
++ yaffs_GrossLock(dev);
++
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_lookup for %d:%s\n",
++ yaffs_InodeToObject(dir)->objectId, dentry->d_name.name));
++
++ obj =
++ yaffs_FindObjectByName(yaffs_InodeToObject(dir),
++ dentry->d_name.name);
++
++ obj = yaffs_GetEquivalentObject(obj); /* in case it was a hardlink */
++
++ /* Can't hold gross lock when calling yaffs_get_inode() */
++ yaffs_GrossUnlock(dev);
++
++ if (obj) {
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_lookup found %d\n", obj->objectId));
++
++ inode = yaffs_get_inode(dir->i_sb, obj->yst_mode, 0, obj);
++
++ if (inode) {
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_loookup dentry \n"));
++/* #if 0 asserted by NCB for 2.5/6 compatability - falls through to
++ * d_add even if NULL inode */
++#if 0
++ /*dget(dentry); // try to solve directory bug */
++ d_add(dentry, inode);
++
++ /* return dentry; */
++ return NULL;
++#endif
++ }
++
++ } else {
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_lookup not found\n"));
++
++ }
++
++/* added NCB for 2.5/6 compatability - forces add even if inode is
++ * NULL which creates dentry hash */
++ d_add(dentry, inode);
++
++ return NULL;
++ /* return (ERR_PTR(-EIO)); */
++
++}
++
++
++#ifdef YAFFS_HAS_PUT_INODE
++
++/* For now put inode is just for debugging
++ * Put inode is called when the inode **structure** is put.
++ */
++static void yaffs_put_inode(struct inode *inode)
++{
++ T(YAFFS_TRACE_OS,
++ ("yaffs_put_inode: ino %d, count %d\n", (int)inode->i_ino,
++ atomic_read(&inode->i_count)));
++
++}
++#endif
++
++/* clear is called to tell the fs to release any per-inode data it holds */
++static void yaffs_clear_inode(struct inode *inode)
++{
++ yaffs_Object *obj;
++ yaffs_Device *dev;
++
++ obj = yaffs_InodeToObject(inode);
++
++ T(YAFFS_TRACE_OS,
++ ("yaffs_clear_inode: ino %d, count %d %s\n", (int)inode->i_ino,
++ atomic_read(&inode->i_count),
++ obj ? "object exists" : "null object"));
++
++ if (obj) {
++ dev = obj->myDev;
++ yaffs_GrossLock(dev);
++
++ /* Clear the association between the inode and
++ * the yaffs_Object.
++ */
++ obj->myInode = NULL;
++ yaffs_InodeToObjectLV(inode) = NULL;
++
++ /* If the object freeing was deferred, then the real
++ * free happens now.
++ * This should fix the inode inconsistency problem.
++ */
++
++ yaffs_HandleDeferedFree(obj);
++
++ yaffs_GrossUnlock(dev);
++ }
++
++}
++
++/* delete is called when the link count is zero and the inode
++ * is put (ie. nobody wants to know about it anymore, time to
++ * delete the file).
++ * NB Must call clear_inode()
++ */
++static void yaffs_delete_inode(struct inode *inode)
++{
++ yaffs_Object *obj = yaffs_InodeToObject(inode);
++ yaffs_Device *dev;
++
++ T(YAFFS_TRACE_OS,
++ ("yaffs_delete_inode: ino %d, count %d %s\n", (int)inode->i_ino,
++ atomic_read(&inode->i_count),
++ obj ? "object exists" : "null object"));
++
++ if (obj) {
++ dev = obj->myDev;
++ yaffs_GrossLock(dev);
++ yaffs_DeleteFile(obj);
++ yaffs_GrossUnlock(dev);
++ }
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13))
++ truncate_inode_pages (&inode->i_data, 0);
++#endif
++ clear_inode(inode);
++}
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
++static int yaffs_file_flush(struct file *file, fl_owner_t id)
++#else
++static int yaffs_file_flush(struct file *file)
++#endif
++{
++ yaffs_Object *obj = yaffs_DentryToObject(file->f_dentry);
++
++ yaffs_Device *dev = obj->myDev;
++
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_file_flush object %d (%s)\n", obj->objectId,
++ obj->dirty ? "dirty" : "clean"));
++
++ yaffs_GrossLock(dev);
++
++ yaffs_FlushFile(obj, 1);
++
++ yaffs_GrossUnlock(dev);
++
++ return 0;
++}
++
++static int yaffs_readpage_nolock(struct file *f, struct page *pg)
++{
++ /* Lifted from jffs2 */
++
++ yaffs_Object *obj;
++ unsigned char *pg_buf;
++ int ret;
++
++ yaffs_Device *dev;
++
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_readpage at %08x, size %08x\n",
++ (unsigned)(pg->index << PAGE_CACHE_SHIFT),
++ (unsigned)PAGE_CACHE_SIZE));
++
++ obj = yaffs_DentryToObject(f->f_dentry);
++
++ dev = obj->myDev;
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
++ BUG_ON(!PageLocked(pg));
++#else
++ if (!PageLocked(pg))
++ PAGE_BUG(pg);
++#endif
++
++ pg_buf = kmap(pg);
++ /* FIXME: Can kmap fail? */
++
++ yaffs_GrossLock(dev);
++
++ ret =
++ yaffs_ReadDataFromFile(obj, pg_buf, pg->index << PAGE_CACHE_SHIFT,
++ PAGE_CACHE_SIZE);
++
++ yaffs_GrossUnlock(dev);
++
++ if (ret >= 0)
++ ret = 0;
++
++ if (ret) {
++ ClearPageUptodate(pg);
++ SetPageError(pg);
++ } else {
++ SetPageUptodate(pg);
++ ClearPageError(pg);
++ }
++
++ flush_dcache_page(pg);
++ kunmap(pg);
++
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_readpage done\n"));
++ return ret;
++}
++
++static int yaffs_readpage_unlock(struct file *f, struct page *pg)
++{
++ int ret = yaffs_readpage_nolock(f, pg);
++ UnlockPage(pg);
++ return ret;
++}
++
++static int yaffs_readpage(struct file *f, struct page *pg)
++{
++ return yaffs_readpage_unlock(f, pg);
++}
++
++/* writepage inspired by/stolen from smbfs */
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
++static int yaffs_writepage(struct page *page, struct writeback_control *wbc)
++#else
++static int yaffs_writepage(struct page *page)
++#endif
++{
++ struct address_space *mapping = page->mapping;
++ loff_t offset = (loff_t) page->index << PAGE_CACHE_SHIFT;
++ struct inode *inode;
++ unsigned long end_index;
++ char *buffer;
++ yaffs_Object *obj;
++ int nWritten = 0;
++ unsigned nBytes;
++
++ if (!mapping)
++ BUG();
++ inode = mapping->host;
++ if (!inode)
++ BUG();
++
++ if (offset > inode->i_size) {
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG
++ "yaffs_writepage at %08x, inode size = %08x!!!\n",
++ (unsigned)(page->index << PAGE_CACHE_SHIFT),
++ (unsigned)inode->i_size));
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG " -> don't care!!\n"));
++ unlock_page(page);
++ return 0;
++ }
++
++ end_index = inode->i_size >> PAGE_CACHE_SHIFT;
++
++ /* easy case */
++ if (page->index < end_index) {
++ nBytes = PAGE_CACHE_SIZE;
++ } else {
++ nBytes = inode->i_size & (PAGE_CACHE_SIZE - 1);
++ }
++
++ get_page(page);
++
++ buffer = kmap(page);
++
++ obj = yaffs_InodeToObject(inode);
++ yaffs_GrossLock(obj->myDev);
++
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_writepage at %08x, size %08x\n",
++ (unsigned)(page->index << PAGE_CACHE_SHIFT), nBytes));
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "writepag0: obj = %05x, ino = %05x\n",
++ (int)obj->variant.fileVariant.fileSize, (int)inode->i_size));
++
++ nWritten =
++ yaffs_WriteDataToFile(obj, buffer, page->index << PAGE_CACHE_SHIFT,
++ nBytes, 0);
++
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "writepag1: obj = %05x, ino = %05x\n",
++ (int)obj->variant.fileVariant.fileSize, (int)inode->i_size));
++
++ yaffs_GrossUnlock(obj->myDev);
++
++ kunmap(page);
++ SetPageUptodate(page);
++ UnlockPage(page);
++ put_page(page);
++
++ return (nWritten == nBytes) ? 0 : -ENOSPC;
++}
++
++static int yaffs_prepare_write(struct file *f, struct page *pg,
++ unsigned offset, unsigned to)
++{
++
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_prepair_write\n"));
++ if (!Page_Uptodate(pg) && (offset || to < PAGE_CACHE_SIZE))
++ return yaffs_readpage_nolock(f, pg);
++
++ return 0;
++
++}
++
++static int yaffs_commit_write(struct file *f, struct page *pg, unsigned offset,
++ unsigned to)
++{
++
++ void *addr, *kva;
++
++ loff_t pos = (((loff_t) pg->index) << PAGE_CACHE_SHIFT) + offset;
++ int nBytes = to - offset;
++ int nWritten;
++
++ unsigned spos = pos;
++ unsigned saddr = (unsigned)addr;
++
++ kva=kmap(pg);
++ addr = kva + offset;
++
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_commit_write addr %x pos %x nBytes %d\n", saddr,
++ spos, nBytes));
++
++ nWritten = yaffs_file_write(f, addr, nBytes, &pos);
++
++ if (nWritten != nBytes) {
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG
++ "yaffs_commit_write not same size nWritten %d nBytes %d\n",
++ nWritten, nBytes));
++ SetPageError(pg);
++ ClearPageUptodate(pg);
++ } else {
++ SetPageUptodate(pg);
++ }
++
++ kunmap(pg);
++
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_commit_write returning %d\n",
++ nWritten == nBytes ? 0 : nWritten));
++
++ return nWritten == nBytes ? 0 : nWritten;
++
++}
++
++static void yaffs_FillInodeFromObject(struct inode *inode, yaffs_Object * obj)
++{
++ if (inode && obj) {
++
++
++ /* Check mode against the variant type and attempt to repair if broken. */
++ __u32 mode = obj->yst_mode;
++ switch( obj->variantType ){
++ case YAFFS_OBJECT_TYPE_FILE :
++ if( ! S_ISREG(mode) ){
++ obj->yst_mode &= ~S_IFMT;
++ obj->yst_mode |= S_IFREG;
++ }
++
++ break;
++ case YAFFS_OBJECT_TYPE_SYMLINK :
++ if( ! S_ISLNK(mode) ){
++ obj->yst_mode &= ~S_IFMT;
++ obj->yst_mode |= S_IFLNK;
++ }
++
++ break;
++ case YAFFS_OBJECT_TYPE_DIRECTORY :
++ if( ! S_ISDIR(mode) ){
++ obj->yst_mode &= ~S_IFMT;
++ obj->yst_mode |= S_IFDIR;
++ }
++
++ break;
++ case YAFFS_OBJECT_TYPE_UNKNOWN :
++ case YAFFS_OBJECT_TYPE_HARDLINK :
++ case YAFFS_OBJECT_TYPE_SPECIAL :
++ default:
++ /* TODO? */
++ break;
++ }
++
++ inode->i_flags |= S_NOATIME;
++
++ inode->i_ino = obj->objectId;
++ inode->i_mode = obj->yst_mode;
++ inode->i_uid = obj->yst_uid;
++ inode->i_gid = obj->yst_gid;
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19))
++ inode->i_blksize = inode->i_sb->s_blocksize;
++#endif
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
++
++ inode->i_rdev = old_decode_dev(obj->yst_rdev);
++ inode->i_atime.tv_sec = (time_t) (obj->yst_atime);
++ inode->i_atime.tv_nsec = 0;
++ inode->i_mtime.tv_sec = (time_t) obj->yst_mtime;
++ inode->i_mtime.tv_nsec = 0;
++ inode->i_ctime.tv_sec = (time_t) obj->yst_ctime;
++ inode->i_ctime.tv_nsec = 0;
++#else
++ inode->i_rdev = obj->yst_rdev;
++ inode->i_atime = obj->yst_atime;
++ inode->i_mtime = obj->yst_mtime;
++ inode->i_ctime = obj->yst_ctime;
++#endif
++ inode->i_size = yaffs_GetObjectFileLength(obj);
++ inode->i_blocks = (inode->i_size + 511) >> 9;
++
++ inode->i_nlink = yaffs_GetObjectLinkCount(obj);
++
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG
++ "yaffs_FillInode mode %x uid %d gid %d size %d count %d\n",
++ inode->i_mode, inode->i_uid, inode->i_gid,
++ (int)inode->i_size, atomic_read(&inode->i_count)));
++
++ switch (obj->yst_mode & S_IFMT) {
++ default: /* fifo, device or socket */
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
++ init_special_inode(inode, obj->yst_mode,
++ old_decode_dev(obj->yst_rdev));
++#else
++ init_special_inode(inode, obj->yst_mode,
++ (dev_t) (obj->yst_rdev));
++#endif
++ break;
++ case S_IFREG: /* file */
++ inode->i_op = &yaffs_file_inode_operations;
++ inode->i_fop = &yaffs_file_operations;
++ inode->i_mapping->a_ops =
++ &yaffs_file_address_operations;
++ break;
++ case S_IFDIR: /* directory */
++ inode->i_op = &yaffs_dir_inode_operations;
++ inode->i_fop = &yaffs_dir_operations;
++ break;
++ case S_IFLNK: /* symlink */
++ inode->i_op = &yaffs_symlink_inode_operations;
++ break;
++ }
++
++ yaffs_InodeToObjectLV(inode) = obj;
++
++ obj->myInode = inode;
++
++ } else {
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_FileInode invalid parameters\n"));
++ }
++
++}
++
++struct inode *yaffs_get_inode(struct super_block *sb, int mode, int dev,
++ yaffs_Object * obj)
++{
++ struct inode *inode;
++
++ if (!sb) {
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_get_inode for NULL super_block!!\n"));
++ return NULL;
++
++ }
++
++ if (!obj) {
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_get_inode for NULL object!!\n"));
++ return NULL;
++
++ }
++
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_get_inode for object %d\n", obj->objectId));
++
++ inode = Y_IGET(sb, obj->objectId);
++ if(IS_ERR(inode))
++ return NULL;
++
++ /* NB Side effect: iget calls back to yaffs_read_inode(). */
++ /* iget also increments the inode's i_count */
++ /* NB You can't be holding grossLock or deadlock will happen! */
++
++ return inode;
++}
++
++static ssize_t yaffs_file_write(struct file *f, const char *buf, size_t n,
++ loff_t * pos)
++{
++ yaffs_Object *obj;
++ int nWritten, ipos;
++ struct inode *inode;
++ yaffs_Device *dev;
++
++ obj = yaffs_DentryToObject(f->f_dentry);
++
++ dev = obj->myDev;
++
++ yaffs_GrossLock(dev);
++
++ inode = f->f_dentry->d_inode;
++
++ if (!S_ISBLK(inode->i_mode) && f->f_flags & O_APPEND) {
++ ipos = inode->i_size;
++ } else {
++ ipos = *pos;
++ }
++
++ if (!obj) {
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_file_write: hey obj is null!\n"));
++ } else {
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG
++ "yaffs_file_write about to write writing %d bytes"
++ "to object %d at %d\n",
++ n, obj->objectId, ipos));
++ }
++
++ nWritten = yaffs_WriteDataToFile(obj, buf, ipos, n, 0);
++
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_file_write writing %d bytes, %d written at %d\n",
++ n, nWritten, ipos));
++ if (nWritten > 0) {
++ ipos += nWritten;
++ *pos = ipos;
++ if (ipos > inode->i_size) {
++ inode->i_size = ipos;
++ inode->i_blocks = (ipos + 511) >> 9;
++
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG
++ "yaffs_file_write size updated to %d bytes, "
++ "%d blocks\n",
++ ipos, (int)(inode->i_blocks)));
++ }
++
++ }
++ yaffs_GrossUnlock(dev);
++ return nWritten == 0 ? -ENOSPC : nWritten;
++}
++
++static int yaffs_readdir(struct file *f, void *dirent, filldir_t filldir)
++{
++ yaffs_Object *obj;
++ yaffs_Device *dev;
++ struct inode *inode = f->f_dentry->d_inode;
++ unsigned long offset, curoffs;
++ struct ylist_head *i;
++ yaffs_Object *l;
++
++ char name[YAFFS_MAX_NAME_LENGTH + 1];
++
++ obj = yaffs_DentryToObject(f->f_dentry);
++ dev = obj->myDev;
++
++ yaffs_GrossLock(dev);
++
++ offset = f->f_pos;
++
++ T(YAFFS_TRACE_OS, ("yaffs_readdir: starting at %d\n", (int)offset));
++
++ if (offset == 0) {
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_readdir: entry . ino %d \n",
++ (int)inode->i_ino));
++ if (filldir(dirent, ".", 1, offset, inode->i_ino, DT_DIR)
++ < 0) {
++ goto out;
++ }
++ offset++;
++ f->f_pos++;
++ }
++ if (offset == 1) {
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_readdir: entry .. ino %d \n",
++ (int)f->f_dentry->d_parent->d_inode->i_ino));
++ if (filldir
++ (dirent, "..", 2, offset,
++ f->f_dentry->d_parent->d_inode->i_ino, DT_DIR) < 0) {
++ goto out;
++ }
++ offset++;
++ f->f_pos++;
++ }
++
++ curoffs = 1;
++
++ /* If the directory has changed since the open or last call to
++ readdir, rewind to after the 2 canned entries. */
++
++ if (f->f_version != inode->i_version) {
++ offset = 2;
++ f->f_pos = offset;
++ f->f_version = inode->i_version;
++ }
++
++ ylist_for_each(i, &obj->variant.directoryVariant.children) {
++ curoffs++;
++ if (curoffs >= offset) {
++ l = ylist_entry(i, yaffs_Object, siblings);
++
++ yaffs_GetObjectName(l, name,
++ YAFFS_MAX_NAME_LENGTH + 1);
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_readdir: %s inode %d\n", name,
++ yaffs_GetObjectInode(l)));
++
++ if (filldir(dirent,
++ name,
++ strlen(name),
++ offset,
++ yaffs_GetObjectInode(l),
++ yaffs_GetObjectType(l))
++ < 0) {
++ goto up_and_out;
++ }
++
++ offset++;
++ f->f_pos++;
++ }
++ }
++
++ up_and_out:
++ out:
++
++ yaffs_GrossUnlock(dev);
++
++ return 0;
++}
++
++/*
++ * File creation. Allocate an inode, and we're done..
++ */
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
++static int yaffs_mknod(struct inode *dir, struct dentry *dentry, int mode,
++ dev_t rdev)
++#else
++static int yaffs_mknod(struct inode *dir, struct dentry *dentry, int mode,
++ int rdev)
++#endif
++{
++ struct inode *inode;
++
++ yaffs_Object *obj = NULL;
++ yaffs_Device *dev;
++
++ yaffs_Object *parent = yaffs_InodeToObject(dir);
++
++ int error = -ENOSPC;
++ uid_t uid = current->fsuid;
++ gid_t gid = (dir->i_mode & S_ISGID) ? dir->i_gid : current->fsgid;
++
++ if((dir->i_mode & S_ISGID) && S_ISDIR(mode))
++ mode |= S_ISGID;
++
++ if (parent) {
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_mknod: parent object %d type %d\n",
++ parent->objectId, parent->variantType));
++ } else {
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_mknod: could not get parent object\n"));
++ return -EPERM;
++ }
++
++ T(YAFFS_TRACE_OS, ("yaffs_mknod: making oject for %s, "
++ "mode %x dev %x\n",
++ dentry->d_name.name, mode, rdev));
++
++ dev = parent->myDev;
++
++ yaffs_GrossLock(dev);
++
++ switch (mode & S_IFMT) {
++ default:
++ /* Special (socket, fifo, device...) */
++ T(YAFFS_TRACE_OS, (KERN_DEBUG
++ "yaffs_mknod: making special\n"));
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
++ obj =
++ yaffs_MknodSpecial(parent, dentry->d_name.name, mode, uid,
++ gid, old_encode_dev(rdev));
++#else
++ obj =
++ yaffs_MknodSpecial(parent, dentry->d_name.name, mode, uid,
++ gid, rdev);
++#endif
++ break;
++ case S_IFREG: /* file */
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_mknod: making file\n"));
++ obj =
++ yaffs_MknodFile(parent, dentry->d_name.name, mode, uid,
++ gid);
++ break;
++ case S_IFDIR: /* directory */
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_mknod: making directory\n"));
++ obj =
++ yaffs_MknodDirectory(parent, dentry->d_name.name, mode,
++ uid, gid);
++ break;
++ case S_IFLNK: /* symlink */
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_mknod: making file\n"));
++ obj = NULL; /* Do we ever get here? */
++ break;
++ }
++
++ /* Can not call yaffs_get_inode() with gross lock held */
++ yaffs_GrossUnlock(dev);
++
++ if (obj) {
++ inode = yaffs_get_inode(dir->i_sb, mode, rdev, obj);
++ d_instantiate(dentry, inode);
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_mknod created object %d count = %d\n",
++ obj->objectId, atomic_read(&inode->i_count)));
++ error = 0;
++ } else {
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_mknod failed making object\n"));
++ error = -ENOMEM;
++ }
++
++ return error;
++}
++
++static int yaffs_mkdir(struct inode *dir, struct dentry *dentry, int mode)
++{
++ int retVal;
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_mkdir\n"));
++ retVal = yaffs_mknod(dir, dentry, mode | S_IFDIR, 0);
++#if 0
++ /* attempt to fix dir bug - didn't work */
++ if (!retVal) {
++ dget(dentry);
++ }
++#endif
++ return retVal;
++}
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
++static int yaffs_create(struct inode *dir, struct dentry *dentry, int mode,
++ struct nameidata *n)
++#else
++static int yaffs_create(struct inode *dir, struct dentry *dentry, int mode)
++#endif
++{
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_create\n"));
++ return yaffs_mknod(dir, dentry, mode | S_IFREG, 0);
++}
++
++static int yaffs_unlink(struct inode *dir, struct dentry *dentry)
++{
++ int retVal;
++
++ yaffs_Device *dev;
++
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_unlink %d:%s\n", (int)(dir->i_ino),
++ dentry->d_name.name));
++
++ dev = yaffs_InodeToObject(dir)->myDev;
++
++ yaffs_GrossLock(dev);
++
++ retVal = yaffs_Unlink(yaffs_InodeToObject(dir), dentry->d_name.name);
++
++ if (retVal == YAFFS_OK) {
++ dentry->d_inode->i_nlink--;
++ dir->i_version++;
++ yaffs_GrossUnlock(dev);
++ mark_inode_dirty(dentry->d_inode);
++ return 0;
++ }
++ yaffs_GrossUnlock(dev);
++ return -ENOTEMPTY;
++}
++
++/*
++ * Create a link...
++ */
++static int yaffs_link(struct dentry *old_dentry, struct inode *dir,
++ struct dentry *dentry)
++{
++ struct inode *inode = old_dentry->d_inode;
++ yaffs_Object *obj = NULL;
++ yaffs_Object *link = NULL;
++ yaffs_Device *dev;
++
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_link\n"));
++
++ obj = yaffs_InodeToObject(inode);
++ dev = obj->myDev;
++
++ yaffs_GrossLock(dev);
++
++ if (!S_ISDIR(inode->i_mode)) /* Don't link directories */
++ {
++ link =
++ yaffs_Link(yaffs_InodeToObject(dir), dentry->d_name.name,
++ obj);
++ }
++
++ if (link) {
++ old_dentry->d_inode->i_nlink = yaffs_GetObjectLinkCount(obj);
++ d_instantiate(dentry, old_dentry->d_inode);
++ atomic_inc(&old_dentry->d_inode->i_count);
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_link link count %d i_count %d\n",
++ old_dentry->d_inode->i_nlink,
++ atomic_read(&old_dentry->d_inode->i_count)));
++
++ }
++
++ yaffs_GrossUnlock(dev);
++
++ if (link) {
++
++ return 0;
++ }
++
++ return -EPERM;
++}
++
++static int yaffs_symlink(struct inode *dir, struct dentry *dentry,
++ const char *symname)
++{
++ yaffs_Object *obj;
++ yaffs_Device *dev;
++ uid_t uid = current->fsuid;
++ gid_t gid = (dir->i_mode & S_ISGID) ? dir->i_gid : current->fsgid;
++
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_symlink\n"));
++
++ dev = yaffs_InodeToObject(dir)->myDev;
++ yaffs_GrossLock(dev);
++ obj = yaffs_MknodSymLink(yaffs_InodeToObject(dir), dentry->d_name.name,
++ S_IFLNK | S_IRWXUGO, uid, gid, symname);
++ yaffs_GrossUnlock(dev);
++
++ if (obj) {
++
++ struct inode *inode;
++
++ inode = yaffs_get_inode(dir->i_sb, obj->yst_mode, 0, obj);
++ d_instantiate(dentry, inode);
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "symlink created OK\n"));
++ return 0;
++ } else {
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "symlink not created\n"));
++
++ }
++
++ return -ENOMEM;
++}
++
++static int yaffs_sync_object(struct file *file, struct dentry *dentry,
++ int datasync)
++{
++
++ yaffs_Object *obj;
++ yaffs_Device *dev;
++
++ obj = yaffs_DentryToObject(dentry);
++
++ dev = obj->myDev;
++
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_sync_object\n"));
++ yaffs_GrossLock(dev);
++ yaffs_FlushFile(obj, 1);
++ yaffs_GrossUnlock(dev);
++ return 0;
++}
++
++/*
++ * The VFS layer already does all the dentry stuff for rename.
++ *
++ * NB: POSIX says you can rename an object over an old object of the same name
++ */
++static int yaffs_rename(struct inode *old_dir, struct dentry *old_dentry,
++ struct inode *new_dir, struct dentry *new_dentry)
++{
++ yaffs_Device *dev;
++ int retVal = YAFFS_FAIL;
++ yaffs_Object *target;
++
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_rename\n"));
++ dev = yaffs_InodeToObject(old_dir)->myDev;
++
++ yaffs_GrossLock(dev);
++
++ /* Check if the target is an existing directory that is not empty. */
++ target =
++ yaffs_FindObjectByName(yaffs_InodeToObject(new_dir),
++ new_dentry->d_name.name);
++
++
++
++ if (target &&
++ target->variantType == YAFFS_OBJECT_TYPE_DIRECTORY &&
++ !ylist_empty(&target->variant.directoryVariant.children)) {
++
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "target is non-empty dir\n"));
++
++ retVal = YAFFS_FAIL;
++ } else {
++
++ /* Now does unlinking internally using shadowing mechanism */
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "calling yaffs_RenameObject\n"));
++
++ retVal =
++ yaffs_RenameObject(yaffs_InodeToObject(old_dir),
++ old_dentry->d_name.name,
++ yaffs_InodeToObject(new_dir),
++ new_dentry->d_name.name);
++
++ }
++ yaffs_GrossUnlock(dev);
++
++ if (retVal == YAFFS_OK) {
++ if(target) {
++ new_dentry->d_inode->i_nlink--;
++ mark_inode_dirty(new_dentry->d_inode);
++ }
++
++ return 0;
++ } else {
++ return -ENOTEMPTY;
++ }
++
++}
++
++static int yaffs_setattr(struct dentry *dentry, struct iattr *attr)
++{
++ struct inode *inode = dentry->d_inode;
++ int error;
++ yaffs_Device *dev;
++
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_setattr of object %d\n",
++ yaffs_InodeToObject(inode)->objectId));
++
++ if ((error = inode_change_ok(inode, attr)) == 0) {
++
++ dev = yaffs_InodeToObject(inode)->myDev;
++ yaffs_GrossLock(dev);
++ if (yaffs_SetAttributes(yaffs_InodeToObject(inode), attr) ==
++ YAFFS_OK) {
++ error = 0;
++ } else {
++ error = -EPERM;
++ }
++ yaffs_GrossUnlock(dev);
++ if (!error)
++ error = inode_setattr(inode, attr);
++ }
++ return error;
++}
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
++static int yaffs_statfs(struct dentry *dentry, struct kstatfs *buf)
++{
++ yaffs_Device *dev = yaffs_DentryToObject(dentry)->myDev;
++ struct super_block *sb = dentry->d_sb;
++#elif (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
++static int yaffs_statfs(struct super_block *sb, struct kstatfs *buf)
++{
++ yaffs_Device *dev = yaffs_SuperToDevice(sb);
++#else
++static int yaffs_statfs(struct super_block *sb, struct statfs *buf)
++{
++ yaffs_Device *dev = yaffs_SuperToDevice(sb);
++#endif
++
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_statfs\n"));
++
++ yaffs_GrossLock(dev);
++
++ buf->f_type = YAFFS_MAGIC;
++ buf->f_bsize = sb->s_blocksize;
++ buf->f_namelen = 255;
++
++ if(dev->nDataBytesPerChunk & (dev->nDataBytesPerChunk - 1)){
++ /* Do this if chunk size is not a power of 2 */
++
++ uint64_t bytesInDev;
++ uint64_t bytesFree;
++
++ bytesInDev = ((uint64_t)((dev->endBlock - dev->startBlock +1))) *
++ ((uint64_t)(dev->nChunksPerBlock * dev->nDataBytesPerChunk));
++
++ do_div(bytesInDev,sb->s_blocksize); /* bytesInDev becomes the number of blocks */
++ buf->f_blocks = bytesInDev;
++
++ bytesFree = ((uint64_t)(yaffs_GetNumberOfFreeChunks(dev))) *
++ ((uint64_t)(dev->nDataBytesPerChunk));
++
++ do_div(bytesFree,sb->s_blocksize);
++
++ buf->f_bfree = bytesFree;
++
++ } else if (sb->s_blocksize > dev->nDataBytesPerChunk) {
++
++ buf->f_blocks =
++ (dev->endBlock - dev->startBlock + 1) *
++ dev->nChunksPerBlock /
++ (sb->s_blocksize / dev->nDataBytesPerChunk);
++ buf->f_bfree =
++ yaffs_GetNumberOfFreeChunks(dev) /
++ (sb->s_blocksize / dev->nDataBytesPerChunk);
++ } else {
++ buf->f_blocks =
++ (dev->endBlock - dev->startBlock + 1) *
++ dev->nChunksPerBlock *
++ (dev->nDataBytesPerChunk / sb->s_blocksize);
++
++ buf->f_bfree =
++ yaffs_GetNumberOfFreeChunks(dev) *
++ (dev->nDataBytesPerChunk / sb->s_blocksize);
++ }
++
++
++ buf->f_files = 0;
++ buf->f_ffree = 0;
++ buf->f_bavail = buf->f_bfree;
++
++ yaffs_GrossUnlock(dev);
++ return 0;
++}
++
++
++static int yaffs_do_sync_fs(struct super_block *sb)
++{
++
++ yaffs_Device *dev = yaffs_SuperToDevice(sb);
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_do_sync_fs\n"));
++
++ if(sb->s_dirt) {
++ yaffs_GrossLock(dev);
++
++ if(dev){
++ yaffs_FlushEntireDeviceCache(dev);
++ yaffs_CheckpointSave(dev);
++ }
++
++ yaffs_GrossUnlock(dev);
++
++ sb->s_dirt = 0;
++ }
++ return 0;
++}
++
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
++static void yaffs_write_super(struct super_block *sb)
++#else
++static int yaffs_write_super(struct super_block *sb)
++#endif
++{
++
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_write_super\n"));
++ yaffs_do_sync_fs(sb);
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18))
++ return 0;
++#endif
++}
++
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
++static int yaffs_sync_fs(struct super_block *sb, int wait)
++#else
++static int yaffs_sync_fs(struct super_block *sb)
++#endif
++{
++
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_sync_fs\n"));
++
++ yaffs_do_sync_fs(sb);
++
++ return 0;
++
++}
++
++#ifdef YAFFS_USE_OWN_IGET
++
++static struct inode * yaffs_iget(struct super_block *sb, unsigned long ino)
++{
++ struct inode *inode;
++ yaffs_Object *obj;
++ yaffs_Device *dev = yaffs_SuperToDevice(sb);
++
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_iget for %lu\n", ino));
++
++ inode = iget_locked(sb, ino);
++ if (!inode)
++ return ERR_PTR(-ENOMEM);
++ if (!(inode->i_state & I_NEW))
++ return inode;
++
++ /* NB This is called as a side effect of other functions, but
++ * we had to release the lock to prevent deadlocks, so
++ * need to lock again.
++ */
++
++ yaffs_GrossLock(dev);
++
++ obj = yaffs_FindObjectByNumber(dev, inode->i_ino);
++
++ yaffs_FillInodeFromObject(inode, obj);
++
++ yaffs_GrossUnlock(dev);
++
++ unlock_new_inode(inode);
++ return inode;
++}
++
++#else
++
++static void yaffs_read_inode(struct inode *inode)
++{
++ /* NB This is called as a side effect of other functions, but
++ * we had to release the lock to prevent deadlocks, so
++ * need to lock again.
++ */
++
++ yaffs_Object *obj;
++ yaffs_Device *dev = yaffs_SuperToDevice(inode->i_sb);
++
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_read_inode for %d\n", (int)inode->i_ino));
++
++ yaffs_GrossLock(dev);
++
++ obj = yaffs_FindObjectByNumber(dev, inode->i_ino);
++
++ yaffs_FillInodeFromObject(inode, obj);
++
++ yaffs_GrossUnlock(dev);
++}
++
++#endif
++
++static YLIST_HEAD(yaffs_dev_list);
++
++#if 0 // not used
++static int yaffs_remount_fs(struct super_block *sb, int *flags, char *data)
++{
++ yaffs_Device *dev = yaffs_SuperToDevice(sb);
++
++ if( *flags & MS_RDONLY ) {
++ struct mtd_info *mtd = yaffs_SuperToDevice(sb)->genericDevice;
++
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_remount_fs: %s: RO\n", dev->name ));
++
++ yaffs_GrossLock(dev);
++
++ yaffs_FlushEntireDeviceCache(dev);
++
++ yaffs_CheckpointSave(dev);
++
++ if (mtd->sync)
++ mtd->sync(mtd);
++
++ yaffs_GrossUnlock(dev);
++ }
++ else {
++ T(YAFFS_TRACE_OS,
++ (KERN_DEBUG "yaffs_remount_fs: %s: RW\n", dev->name ));
++ }
++
++ return 0;
++}
++#endif
++
++static void yaffs_put_super(struct super_block *sb)
++{
++ yaffs_Device *dev = yaffs_SuperToDevice(sb);
++
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_put_super\n"));
++
++ yaffs_GrossLock(dev);
++
++ yaffs_FlushEntireDeviceCache(dev);
++
++ yaffs_CheckpointSave(dev);
++
++ if (dev->putSuperFunc) {
++ dev->putSuperFunc(sb);
++ }
++
++ yaffs_Deinitialise(dev);
++
++ yaffs_GrossUnlock(dev);
++
++ /* we assume this is protected by lock_kernel() in mount/umount */
++ ylist_del(&dev->devList);
++
++ if(dev->spareBuffer){
++ YFREE(dev->spareBuffer);
++ dev->spareBuffer = NULL;
++ }
++
++ kfree(dev);
++}
++
++
++static void yaffs_MTDPutSuper(struct super_block *sb)
++{
++
++ struct mtd_info *mtd = yaffs_SuperToDevice(sb)->genericDevice;
++
++ if (mtd->sync) {
++ mtd->sync(mtd);
++ }
++
++ put_mtd_device(mtd);
++}
++
++
++static void yaffs_MarkSuperBlockDirty(void *vsb)
++{
++ struct super_block *sb = (struct super_block *)vsb;
++
++ T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_MarkSuperBlockDirty() sb = %p\n",sb));
++// if(sb)
++// sb->s_dirt = 1;
++}
++
++typedef struct {
++ int inband_tags;
++ int skip_checkpoint_read;
++ int skip_checkpoint_write;
++ int no_cache;
++} yaffs_options;
++
++#define MAX_OPT_LEN 20
++static int yaffs_parse_options(yaffs_options *options, const char *options_str)
++{
++ char cur_opt[MAX_OPT_LEN+1];
++ int p;
++ int error = 0;
++
++ /* Parse through the options which is a comma seperated list */
++
++ while(options_str && *options_str && !error){
++ memset(cur_opt,0,MAX_OPT_LEN+1);
++ p = 0;
++
++ while(*options_str && *options_str != ','){
++ if(p < MAX_OPT_LEN){
++ cur_opt[p] = *options_str;
++ p++;
++ }
++ options_str++;
++ }
++
++ if(!strcmp(cur_opt,"inband-tags"))
++ options->inband_tags = 1;
++ else if(!strcmp(cur_opt,"no-cache"))
++ options->no_cache = 1;
++ else if(!strcmp(cur_opt,"no-checkpoint-read"))
++ options->skip_checkpoint_read = 1;
++ else if(!strcmp(cur_opt,"no-checkpoint-write"))
++ options->skip_checkpoint_write = 1;
++ else if(!strcmp(cur_opt,"no-checkpoint")){
++ options->skip_checkpoint_read = 1;
++ options->skip_checkpoint_write = 1;
++ } else {
++ printk(KERN_INFO "yaffs: Bad mount option \"%s\"\n",cur_opt);
++ error = 1;
++ }
++
++ }
++
++ return error;
++}
++
++static struct super_block *yaffs_internal_read_super(int yaffsVersion,
++ struct super_block *sb,
++ void *data, int silent)
++{
++ int nBlocks;
++ struct inode *inode = NULL;
++ struct dentry *root;
++ yaffs_Device *dev = 0;
++ char devname_buf[BDEVNAME_SIZE + 1];
++ struct mtd_info *mtd;
++ int err;
++ char *data_str = (char *)data;
++
++ yaffs_options options;
++
++ sb->s_magic = YAFFS_MAGIC;
++ sb->s_op = &yaffs_super_ops;
++ sb->s_flags |= MS_NOATIME;
++
++ if (!sb)
++ printk(KERN_INFO "yaffs: sb is NULL\n");
++ else if (!sb->s_dev)
++ printk(KERN_INFO "yaffs: sb->s_dev is NULL\n");
++ else if (!yaffs_devname(sb, devname_buf))
++ printk(KERN_INFO "yaffs: devname is NULL\n");
++ else
++ printk(KERN_INFO "yaffs: dev is %d name is \"%s\"\n",
++ sb->s_dev,
++ yaffs_devname(sb, devname_buf));
++
++ if(!data_str)
++ data_str = "";
++
++ printk(KERN_INFO "yaffs: passed flags \"%s\"\n",data_str);
++
++ memset(&options,0,sizeof(options));
++
++ if(yaffs_parse_options(&options,data_str)){
++ /* Option parsing failed */
++ return NULL;
++ }
++
++
++ sb->s_blocksize = PAGE_CACHE_SIZE;
++ sb->s_blocksize_bits = PAGE_CACHE_SHIFT;
++ T(YAFFS_TRACE_OS, ("yaffs_read_super: Using yaffs%d\n", yaffsVersion));
++ T(YAFFS_TRACE_OS,
++ ("yaffs_read_super: block size %d\n", (int)(sb->s_blocksize)));
++
++#ifdef CONFIG_YAFFS_DISABLE_WRITE_VERIFY
++ T(YAFFS_TRACE_OS,
++ ("yaffs: Write verification disabled. All guarantees "
++ "null and void\n"));
++#endif
++
++ T(YAFFS_TRACE_ALWAYS, ("yaffs: Attempting MTD mount on %u.%u, "
++ "\"%s\"\n",
++ MAJOR(sb->s_dev), MINOR(sb->s_dev),
++ yaffs_devname(sb, devname_buf)));
++
++ /* Check it's an mtd device..... */
++ if (MAJOR(sb->s_dev) != MTD_BLOCK_MAJOR) {
++ return NULL; /* This isn't an mtd device */
++ }
++ /* Get the device */
++ mtd = get_mtd_device(NULL, MINOR(sb->s_dev));
++ if (!mtd) {
++ T(YAFFS_TRACE_ALWAYS,
++ ("yaffs: MTD device #%u doesn't appear to exist\n",
++ MINOR(sb->s_dev)));
++ return NULL;
++ }
++ /* Check it's NAND */
++ if (mtd->type != MTD_NANDFLASH) {
++ T(YAFFS_TRACE_ALWAYS,
++ ("yaffs: MTD device is not NAND it's type %d\n", mtd->type));
++ return NULL;
++ }
++
++ T(YAFFS_TRACE_OS, (" erase %p\n", mtd->erase));
++ T(YAFFS_TRACE_OS, (" read %p\n", mtd->read));
++ T(YAFFS_TRACE_OS, (" write %p\n", mtd->write));
++ T(YAFFS_TRACE_OS, (" readoob %p\n", mtd->read_oob));
++ T(YAFFS_TRACE_OS, (" writeoob %p\n", mtd->write_oob));
++ T(YAFFS_TRACE_OS, (" block_isbad %p\n", mtd->block_isbad));
++ T(YAFFS_TRACE_OS, (" block_markbad %p\n", mtd->block_markbad));
++ T(YAFFS_TRACE_OS, (" %s %d\n", WRITE_SIZE_STR, WRITE_SIZE(mtd)));
++ T(YAFFS_TRACE_OS, (" oobsize %d\n", mtd->oobsize));
++ T(YAFFS_TRACE_OS, (" erasesize %d\n", mtd->erasesize));
++ T(YAFFS_TRACE_OS, (" size %d\n", mtd->size));
++
++#ifdef CONFIG_YAFFS_AUTO_YAFFS2
++
++ if (yaffsVersion == 1 &&
++ WRITE_SIZE(mtd) >= 2048) {
++ T(YAFFS_TRACE_ALWAYS,("yaffs: auto selecting yaffs2\n"));
++ yaffsVersion = 2;
++ }
++
++ /* Added NCB 26/5/2006 for completeness */
++ if (yaffsVersion == 2 &&
++ !options.inband_tags &&
++ WRITE_SIZE(mtd) == 512){
++ T(YAFFS_TRACE_ALWAYS,("yaffs: auto selecting yaffs1\n"));
++ yaffsVersion = 1;
++ }
++
++#endif
++
++ if (yaffsVersion == 2) {
++ /* Check for version 2 style functions */
++ if (!mtd->erase ||
++ !mtd->block_isbad ||
++ !mtd->block_markbad ||
++ !mtd->read ||
++ !mtd->write ||
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
++ !mtd->read_oob || !mtd->write_oob) {
++#else
++ !mtd->write_ecc ||
++ !mtd->read_ecc || !mtd->read_oob || !mtd->write_oob) {
++#endif
++ T(YAFFS_TRACE_ALWAYS,
++ ("yaffs: MTD device does not support required "
++ "functions\n"));;
++ return NULL;
++ }
++
++ if ((WRITE_SIZE(mtd) < YAFFS_MIN_YAFFS2_CHUNK_SIZE ||
++ mtd->oobsize < YAFFS_MIN_YAFFS2_SPARE_SIZE) &&
++ !options.inband_tags) {
++ T(YAFFS_TRACE_ALWAYS,
++ ("yaffs: MTD device does not have the "
++ "right page sizes\n"));
++ return NULL;
++ }
++ } else {
++ /* Check for V1 style functions */
++ if (!mtd->erase ||
++ !mtd->read ||
++ !mtd->write ||
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
++ !mtd->read_oob || !mtd->write_oob) {
++#else
++ !mtd->write_ecc ||
++ !mtd->read_ecc || !mtd->read_oob || !mtd->write_oob) {
++#endif
++ T(YAFFS_TRACE_ALWAYS,
++ ("yaffs: MTD device does not support required "
++ "functions\n"));;
++ return NULL;
++ }
++
++ if (WRITE_SIZE(mtd) < YAFFS_BYTES_PER_CHUNK ||
++ mtd->oobsize != YAFFS_BYTES_PER_SPARE) {
++ T(YAFFS_TRACE_ALWAYS,
++ ("yaffs: MTD device does not support have the "
++ "right page sizes\n"));
++ return NULL;
++ }
++ }
++
++ /* OK, so if we got here, we have an MTD that's NAND and looks
++ * like it has the right capabilities
++ * Set the yaffs_Device up for mtd
++ */
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
++ sb->s_fs_info = dev = kmalloc(sizeof(yaffs_Device), GFP_KERNEL);
++#else
++ sb->u.generic_sbp = dev = kmalloc(sizeof(yaffs_Device), GFP_KERNEL);
++#endif
++ if (!dev) {
++ /* Deep shit could not allocate device structure */
++ T(YAFFS_TRACE_ALWAYS,
++ ("yaffs_read_super: Failed trying to allocate "
++ "yaffs_Device. \n"));
++ return NULL;
++ }
++
++ memset(dev, 0, sizeof(yaffs_Device));
++ dev->genericDevice = mtd;
++ dev->name = mtd->name;
++
++ /* Set up the memory size parameters.... */
++
++ nBlocks = mtd->size / (YAFFS_CHUNKS_PER_BLOCK * YAFFS_BYTES_PER_CHUNK);
++ dev->startBlock = 0;
++ dev->endBlock = nBlocks - 1;
++ dev->nChunksPerBlock = YAFFS_CHUNKS_PER_BLOCK;
++ dev->totalBytesPerChunk = YAFFS_BYTES_PER_CHUNK;
++ dev->nReservedBlocks = 5;
++ dev->nShortOpCaches = (options.no_cache) ? 0 : 10;
++ dev->inbandTags = options.inband_tags;
++
++ /* ... and the functions. */
++ if (yaffsVersion == 2) {
++ dev->writeChunkWithTagsToNAND =
++ nandmtd2_WriteChunkWithTagsToNAND;
++ dev->readChunkWithTagsFromNAND =
++ nandmtd2_ReadChunkWithTagsFromNAND;
++ dev->markNANDBlockBad = nandmtd2_MarkNANDBlockBad;
++ dev->queryNANDBlock = nandmtd2_QueryNANDBlock;
++ dev->spareBuffer = YMALLOC(mtd->oobsize);
++ dev->isYaffs2 = 1;
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
++ dev->totalBytesPerChunk = mtd->writesize;
++ dev->nChunksPerBlock = mtd->erasesize / mtd->writesize;
++#else
++ dev->totalBytesPerChunk = mtd->oobblock;
++ dev->nChunksPerBlock = mtd->erasesize / mtd->oobblock;
++#endif
++ nBlocks = mtd->size / mtd->erasesize;
++
++ dev->startBlock = 0;
++ dev->endBlock = nBlocks - 1;
++ } else {
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
++ /* use the MTD interface in yaffs_mtdif1.c */
++ dev->writeChunkWithTagsToNAND =
++ nandmtd1_WriteChunkWithTagsToNAND;
++ dev->readChunkWithTagsFromNAND =
++ nandmtd1_ReadChunkWithTagsFromNAND;
++ dev->markNANDBlockBad = nandmtd1_MarkNANDBlockBad;
++ dev->queryNANDBlock = nandmtd1_QueryNANDBlock;
++#else
++ dev->writeChunkToNAND = nandmtd_WriteChunkToNAND;
++ dev->readChunkFromNAND = nandmtd_ReadChunkFromNAND;
++#endif
++ dev->isYaffs2 = 0;
++ }
++ /* ... and common functions */
++ dev->eraseBlockInNAND = nandmtd_EraseBlockInNAND;
++ dev->initialiseNAND = nandmtd_InitialiseNAND;
++
++ dev->putSuperFunc = yaffs_MTDPutSuper;
++
++ dev->superBlock = (void *)sb;
++ dev->markSuperBlockDirty = yaffs_MarkSuperBlockDirty;
++
++
++#ifndef CONFIG_YAFFS_DOES_ECC
++ dev->useNANDECC = 1;
++#endif
++
++#ifdef CONFIG_YAFFS_DISABLE_WIDE_TNODES
++ dev->wideTnodesDisabled = 1;
++#endif
++
++ dev->skipCheckpointRead = options.skip_checkpoint_read;
++ dev->skipCheckpointWrite = options.skip_checkpoint_write;
++
++ /* we assume this is protected by lock_kernel() in mount/umount */
++ ylist_add_tail(&dev->devList, &yaffs_dev_list);
++
++ init_MUTEX(&dev->grossLock);
++
++ yaffs_GrossLock(dev);
++
++ err = yaffs_GutsInitialise(dev);
++
++ T(YAFFS_TRACE_OS,
++ ("yaffs_read_super: guts initialised %s\n",
++ (err == YAFFS_OK) ? "OK" : "FAILED"));
++
++ /* Release lock before yaffs_get_inode() */
++ yaffs_GrossUnlock(dev);
++
++ /* Create root inode */
++ if (err == YAFFS_OK)
++ inode = yaffs_get_inode(sb, S_IFDIR | 0755, 0,
++ yaffs_Root(dev));
++
++ if (!inode)
++ return NULL;
++
++ inode->i_op = &yaffs_dir_inode_operations;
++ inode->i_fop = &yaffs_dir_operations;
++
++ T(YAFFS_TRACE_OS, ("yaffs_read_super: got root inode\n"));
++
++ root = d_alloc_root(inode);
++
++ T(YAFFS_TRACE_OS, ("yaffs_read_super: d_alloc_root done\n"));
++
++ if (!root) {
++ iput(inode);
++ return NULL;
++ }
++ sb->s_root = root;
++
++ T(YAFFS_TRACE_OS, ("yaffs_read_super: done\n"));
++ return sb;
++}
++
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
++static int yaffs_internal_read_super_mtd(struct super_block *sb, void *data,
++ int silent)
++{
++ return yaffs_internal_read_super(1, sb, data, silent) ? 0 : -EINVAL;
++}
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
++static int yaffs_read_super(struct file_system_type *fs,
++ int flags, const char *dev_name,
++ void *data, struct vfsmount *mnt)
++{
++
++ return get_sb_bdev(fs, flags, dev_name, data,
++ yaffs_internal_read_super_mtd, mnt);
++}
++#else
++static struct super_block *yaffs_read_super(struct file_system_type *fs,
++ int flags, const char *dev_name,
++ void *data)
++{
++
++ return get_sb_bdev(fs, flags, dev_name, data,
++ yaffs_internal_read_super_mtd);
++}
++#endif
++
++static struct file_system_type yaffs_fs_type = {
++ .owner = THIS_MODULE,
++ .name = "yaffs",
++ .get_sb = yaffs_read_super,
++ .kill_sb = kill_block_super,
++ .fs_flags = FS_REQUIRES_DEV,
++};
++#else
++static struct super_block *yaffs_read_super(struct super_block *sb, void *data,
++ int silent)
++{
++ return yaffs_internal_read_super(1, sb, data, silent);
++}
++
++static DECLARE_FSTYPE(yaffs_fs_type, "yaffs", yaffs_read_super,
++ FS_REQUIRES_DEV);
++#endif
++
++
++#ifdef CONFIG_YAFFS_YAFFS2
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
++static int yaffs2_internal_read_super_mtd(struct super_block *sb, void *data,
++ int silent)
++{
++ return yaffs_internal_read_super(2, sb, data, silent) ? 0 : -EINVAL;
++}
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
++static int yaffs2_read_super(struct file_system_type *fs,
++ int flags, const char *dev_name, void *data,
++ struct vfsmount *mnt)
++{
++ return get_sb_bdev(fs, flags, dev_name, data,
++ yaffs2_internal_read_super_mtd, mnt);
++}
++#else
++static struct super_block *yaffs2_read_super(struct file_system_type *fs,
++ int flags, const char *dev_name,
++ void *data)
++{
++
++ return get_sb_bdev(fs, flags, dev_name, data,
++ yaffs2_internal_read_super_mtd);
++}
++#endif
++
++static struct file_system_type yaffs2_fs_type = {
++ .owner = THIS_MODULE,
++ .name = "yaffs2",
++ .get_sb = yaffs2_read_super,
++ .kill_sb = kill_block_super,
++ .fs_flags = FS_REQUIRES_DEV,
++};
++#else
++static struct super_block *yaffs2_read_super(struct super_block *sb,
++ void *data, int silent)
++{
++ return yaffs_internal_read_super(2, sb, data, silent);
++}
++
++static DECLARE_FSTYPE(yaffs2_fs_type, "yaffs2", yaffs2_read_super,
++ FS_REQUIRES_DEV);
++#endif
++
++#endif /* CONFIG_YAFFS_YAFFS2 */
++
++static struct proc_dir_entry *my_proc_entry;
++
++static char *yaffs_dump_dev(char *buf, yaffs_Device * dev)
++{
++ buf += sprintf(buf, "startBlock......... %d\n", dev->startBlock);
++ buf += sprintf(buf, "endBlock........... %d\n", dev->endBlock);
++ buf += sprintf(buf, "totalBytesPerChunk. %d\n", dev->totalBytesPerChunk);
++ buf += sprintf(buf, "nDataBytesPerChunk. %d\n", dev->nDataBytesPerChunk);
++ buf += sprintf(buf, "chunkGroupBits..... %d\n", dev->chunkGroupBits);
++ buf += sprintf(buf, "chunkGroupSize..... %d\n", dev->chunkGroupSize);
++ buf += sprintf(buf, "nErasedBlocks...... %d\n", dev->nErasedBlocks);
++ buf += sprintf(buf, "nReservedBlocks.... %d\n", dev->nReservedBlocks);
++ buf += sprintf(buf, "blocksInCheckpoint. %d\n", dev->blocksInCheckpoint);
++ buf += sprintf(buf, "nTnodesCreated..... %d\n", dev->nTnodesCreated);
++ buf += sprintf(buf, "nFreeTnodes........ %d\n", dev->nFreeTnodes);
++ buf += sprintf(buf, "nObjectsCreated.... %d\n", dev->nObjectsCreated);
++ buf += sprintf(buf, "nFreeObjects....... %d\n", dev->nFreeObjects);
++ buf += sprintf(buf, "nFreeChunks........ %d\n", dev->nFreeChunks);
++ buf += sprintf(buf, "nPageWrites........ %d\n", dev->nPageWrites);
++ buf += sprintf(buf, "nPageReads......... %d\n", dev->nPageReads);
++ buf += sprintf(buf, "nBlockErasures..... %d\n", dev->nBlockErasures);
++ buf += sprintf(buf, "nGCCopies.......... %d\n", dev->nGCCopies);
++ buf += sprintf(buf, "garbageCollections. %d\n", dev->garbageCollections);
++ buf += sprintf(buf, "passiveGCs......... %d\n",
++ dev->passiveGarbageCollections);
++ buf += sprintf(buf, "nRetriedWrites..... %d\n", dev->nRetriedWrites);
++ buf += sprintf(buf, "nShortOpCaches..... %d\n", dev->nShortOpCaches);
++ buf += sprintf(buf, "nRetireBlocks...... %d\n", dev->nRetiredBlocks);
++ buf += sprintf(buf, "eccFixed........... %d\n", dev->eccFixed);
++ buf += sprintf(buf, "eccUnfixed......... %d\n", dev->eccUnfixed);
++ buf += sprintf(buf, "tagsEccFixed....... %d\n", dev->tagsEccFixed);
++ buf += sprintf(buf, "tagsEccUnfixed..... %d\n", dev->tagsEccUnfixed);
++ buf += sprintf(buf, "cacheHits.......... %d\n", dev->cacheHits);
++ buf += sprintf(buf, "nDeletedFiles...... %d\n", dev->nDeletedFiles);
++ buf += sprintf(buf, "nUnlinkedFiles..... %d\n", dev->nUnlinkedFiles);
++ buf +=
++ sprintf(buf, "nBackgroudDeletions %d\n", dev->nBackgroundDeletions);
++ buf += sprintf(buf, "useNANDECC......... %d\n", dev->useNANDECC);
++ buf += sprintf(buf, "isYaffs2........... %d\n", dev->isYaffs2);
++ buf += sprintf(buf, "inbandTags......... %d\n", dev->inbandTags);
++
++ return buf;
++}
++
++static int yaffs_proc_read(char *page,
++ char **start,
++ off_t offset, int count, int *eof, void *data)
++{
++ struct ylist_head *item;
++ char *buf = page;
++ int step = offset;
++ int n = 0;
++
++ /* Get proc_file_read() to step 'offset' by one on each sucessive call.
++ * We use 'offset' (*ppos) to indicate where we are in devList.
++ * This also assumes the user has posted a read buffer large
++ * enough to hold the complete output; but that's life in /proc.
++ */
++
++ *(int *)start = 1;
++
++ /* Print header first */
++ if (step == 0) {
++ buf += sprintf(buf, "YAFFS built:" __DATE__ " " __TIME__
++ "\n%s\n%s\n", yaffs_fs_c_version,
++ yaffs_guts_c_version);
++ }
++
++ /* hold lock_kernel while traversing yaffs_dev_list */
++ lock_kernel();
++
++ /* Locate and print the Nth entry. Order N-squared but N is small. */
++ ylist_for_each(item, &yaffs_dev_list) {
++ yaffs_Device *dev = ylist_entry(item, yaffs_Device, devList);
++ if (n < step) {
++ n++;
++ continue;
++ }
++ buf += sprintf(buf, "\nDevice %d \"%s\"\n", n, dev->name);
++ buf = yaffs_dump_dev(buf, dev);
++ break;
++ }
++ unlock_kernel();
++
++ return buf - page < count ? buf - page : count;
++}
++
++/**
++ * Set the verbosity of the warnings and error messages.
++ *
++ * Note that the names can only be a..z or _ with the current code.
++ */
++
++static struct {
++ char *mask_name;
++ unsigned mask_bitfield;
++} mask_flags[] = {
++ {"allocate", YAFFS_TRACE_ALLOCATE},
++ {"always", YAFFS_TRACE_ALWAYS},
++ {"bad_blocks", YAFFS_TRACE_BAD_BLOCKS},
++ {"buffers", YAFFS_TRACE_BUFFERS},
++ {"bug", YAFFS_TRACE_BUG},
++ {"checkpt", YAFFS_TRACE_CHECKPOINT},
++ {"deletion", YAFFS_TRACE_DELETION},
++ {"erase", YAFFS_TRACE_ERASE},
++ {"error", YAFFS_TRACE_ERROR},
++ {"gc_detail", YAFFS_TRACE_GC_DETAIL},
++ {"gc", YAFFS_TRACE_GC},
++ {"mtd", YAFFS_TRACE_MTD},
++ {"nandaccess", YAFFS_TRACE_NANDACCESS},
++ {"os", YAFFS_TRACE_OS},
++ {"scan_debug", YAFFS_TRACE_SCAN_DEBUG},
++ {"scan", YAFFS_TRACE_SCAN},
++ {"tracing", YAFFS_TRACE_TRACING},
++
++ {"verify", YAFFS_TRACE_VERIFY},
++ {"verify_nand", YAFFS_TRACE_VERIFY_NAND},
++ {"verify_full", YAFFS_TRACE_VERIFY_FULL},
++ {"verify_all", YAFFS_TRACE_VERIFY_ALL},
++
++ {"write", YAFFS_TRACE_WRITE},
++ {"all", 0xffffffff},
++ {"none", 0},
++ {NULL, 0},
++};
++
++#define MAX_MASK_NAME_LENGTH 40
++static int yaffs_proc_write(struct file *file, const char *buf,
++ unsigned long count, void *data)
++{
++ unsigned rg = 0, mask_bitfield;
++ char *end;
++ char *mask_name;
++ const char *x;
++ char substring[MAX_MASK_NAME_LENGTH+1];
++ int i;
++ int done = 0;
++ int add, len = 0;
++ int pos = 0;
++
++ rg = yaffs_traceMask;
++
++ while (!done && (pos < count)) {
++ done = 1;
++ while ((pos < count) && isspace(buf[pos])) {
++ pos++;
++ }
++
++ switch (buf[pos]) {
++ case '+':
++ case '-':
++ case '=':
++ add = buf[pos];
++ pos++;
++ break;
++
++ default:
++ add = ' ';
++ break;
++ }
++ mask_name = NULL;
++
++ mask_bitfield = simple_strtoul(buf + pos, &end, 0);
++ if (end > buf + pos) {
++ mask_name = "numeral";
++ len = end - (buf + pos);
++ pos += len;
++ done = 0;
++ } else {
++ for(x = buf + pos, i = 0;
++ (*x == '_' || (*x >='a' && *x <= 'z')) &&
++ i <MAX_MASK_NAME_LENGTH; x++, i++, pos++)
++ substring[i] = *x;
++ substring[i] = '\0';
++
++ for (i = 0; mask_flags[i].mask_name != NULL; i++) {
++ if(strcmp(substring,mask_flags[i].mask_name) == 0){
++ mask_name = mask_flags[i].mask_name;
++ mask_bitfield = mask_flags[i].mask_bitfield;
++ done = 0;
++ break;
++ }
++ }
++ }
++
++ if (mask_name != NULL) {
++ done = 0;
++ switch(add) {
++ case '-':
++ rg &= ~mask_bitfield;
++ break;
++ case '+':
++ rg |= mask_bitfield;
++ break;
++ case '=':
++ rg = mask_bitfield;
++ break;
++ default:
++ rg |= mask_bitfield;
++ break;
++ }
++ }
++ }
++
++ yaffs_traceMask = rg | YAFFS_TRACE_ALWAYS;
++
++ printk("new trace = 0x%08X\n",yaffs_traceMask);
++
++ if (rg & YAFFS_TRACE_ALWAYS) {
++ for (i = 0; mask_flags[i].mask_name != NULL; i++) {
++ char flag;
++ flag = ((rg & mask_flags[i].mask_bitfield) == mask_flags[i].mask_bitfield) ? '+' : '-';
++ printk("%c%s\n", flag, mask_flags[i].mask_name);
++ }
++ }
++
++ return count;
++}
++
++/* Stuff to handle installation of file systems */
++struct file_system_to_install {
++ struct file_system_type *fst;
++ int installed;
++};
++
++static struct file_system_to_install fs_to_install[] = {
++//#ifdef CONFIG_YAFFS_YAFFS1
++ {&yaffs_fs_type, 0},
++//#endif
++//#ifdef CONFIG_YAFFS_YAFFS2
++ {&yaffs2_fs_type, 0},
++//#endif
++ {NULL, 0}
++};
++
++static int __init init_yaffs_fs(void)
++{
++ int error = 0;
++ struct file_system_to_install *fsinst;
++
++ T(YAFFS_TRACE_ALWAYS,
++ ("yaffs " __DATE__ " " __TIME__ " Installing. \n"));
++
++ /* Install the proc_fs entry */
++ my_proc_entry = create_proc_entry("yaffs",
++ S_IRUGO | S_IFREG,
++ YPROC_ROOT);
++
++ if (my_proc_entry) {
++ my_proc_entry->write_proc = yaffs_proc_write;
++ my_proc_entry->read_proc = yaffs_proc_read;
++ my_proc_entry->data = NULL;
++ } else {
++ return -ENOMEM;
++ }
++
++ /* Now add the file system entries */
++
++ fsinst = fs_to_install;
++
++ while (fsinst->fst && !error) {
++ error = register_filesystem(fsinst->fst);
++ if (!error) {
++ fsinst->installed = 1;
++ }
++ fsinst++;
++ }
++
++ /* Any errors? uninstall */
++ if (error) {
++ fsinst = fs_to_install;
++
++ while (fsinst->fst) {
++ if (fsinst->installed) {
++ unregister_filesystem(fsinst->fst);
++ fsinst->installed = 0;
++ }
++ fsinst++;
++ }
++ }
++
++ return error;
++}
++
++static void __exit exit_yaffs_fs(void)
++{
++
++ struct file_system_to_install *fsinst;
++
++ T(YAFFS_TRACE_ALWAYS, ("yaffs " __DATE__ " " __TIME__
++ " removing. \n"));
++
++ remove_proc_entry("yaffs", YPROC_ROOT);
++
++ fsinst = fs_to_install;
++
++ while (fsinst->fst) {
++ if (fsinst->installed) {
++ unregister_filesystem(fsinst->fst);
++ fsinst->installed = 0;
++ }
++ fsinst++;
++ }
++
++}
++
++module_init(init_yaffs_fs)
++module_exit(exit_yaffs_fs)
++
++MODULE_DESCRIPTION("YAFFS2 - a NAND specific flash file system");
++MODULE_AUTHOR("Charles Manning, Aleph One Ltd., 2002-2006");
++MODULE_LICENSE("GPL");
+diff --git a/fs/yaffs2/yaffs_getblockinfo.h b/fs/yaffs2/yaffs_getblockinfo.h
+new file mode 100644
+index 0000000..b9742ac
+--- /dev/null
++++ b/fs/yaffs2/yaffs_getblockinfo.h
+@@ -0,0 +1,34 @@
++/*
++ * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 2.1 as
++ * published by the Free Software Foundation.
++ *
++ * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
++ */
++
++#ifndef __YAFFS_GETBLOCKINFO_H__
++#define __YAFFS_GETBLOCKINFO_H__
++
++#include "yaffs_guts.h"
++
++/* Function to manipulate block info */
++static Y_INLINE yaffs_BlockInfo *yaffs_GetBlockInfo(yaffs_Device * dev, int blk)
++{
++ if (blk < dev->internalStartBlock || blk > dev->internalEndBlock) {
++ T(YAFFS_TRACE_ERROR,
++ (TSTR
++ ("**>> yaffs: getBlockInfo block %d is not valid" TENDSTR),
++ blk));
++ YBUG();
++ }
++ return &dev->blockInfo[blk - dev->internalStartBlock];
++}
++
++#endif
+diff --git a/fs/yaffs2/yaffs_guts.c b/fs/yaffs2/yaffs_guts.c
+new file mode 100644
+index 0000000..8ea033a
+--- /dev/null
++++ b/fs/yaffs2/yaffs_guts.c
+@@ -0,0 +1,7676 @@
++/*
++ * YAFFS: Yet Another Flash File System. A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++const char *yaffs_guts_c_version =
++ "$Id: yaffs_guts.c,v 1.71 2009/01/12 00:53:47 charles Exp $";
++
++#include "yportenv.h"
++
++#include "yaffsinterface.h"
++#include "yaffs_guts.h"
++#include "yaffs_tagsvalidity.h"
++#include "yaffs_getblockinfo.h"
++
++#include "yaffs_tagscompat.h"
++#ifndef CONFIG_YAFFS_USE_OWN_SORT
++#include "yaffs_qsort.h"
++#endif
++#include "yaffs_nand.h"
++
++#include "yaffs_checkptrw.h"
++
++#include "yaffs_nand.h"
++#include "yaffs_packedtags2.h"
++
++
++#ifdef CONFIG_YAFFS_WINCE
++void yfsd_LockYAFFS(BOOL fsLockOnly);
++void yfsd_UnlockYAFFS(BOOL fsLockOnly);
++#endif
++
++#define YAFFS_PASSIVE_GC_CHUNKS 2
++
++#include "yaffs_ecc.h"
++
++
++/* Robustification (if it ever comes about...) */
++static void yaffs_RetireBlock(yaffs_Device * dev, int blockInNAND);
++static void yaffs_HandleWriteChunkError(yaffs_Device * dev, int chunkInNAND, int erasedOk);
++static void yaffs_HandleWriteChunkOk(yaffs_Device * dev, int chunkInNAND,
++ const __u8 * data,
++ const yaffs_ExtendedTags * tags);
++static void yaffs_HandleUpdateChunk(yaffs_Device * dev, int chunkInNAND,
++ const yaffs_ExtendedTags * tags);
++
++/* Other local prototypes */
++static int yaffs_UnlinkObject( yaffs_Object *obj);
++static int yaffs_ObjectHasCachedWriteData(yaffs_Object *obj);
++
++static void yaffs_HardlinkFixup(yaffs_Device *dev, yaffs_Object *hardList);
++
++static int yaffs_WriteNewChunkWithTagsToNAND(yaffs_Device * dev,
++ const __u8 * buffer,
++ yaffs_ExtendedTags * tags,
++ int useReserve);
++static int yaffs_PutChunkIntoFile(yaffs_Object * in, int chunkInInode,
++ int chunkInNAND, int inScan);
++
++static yaffs_Object *yaffs_CreateNewObject(yaffs_Device * dev, int number,
++ yaffs_ObjectType type);
++static void yaffs_AddObjectToDirectory(yaffs_Object * directory,
++ yaffs_Object * obj);
++static int yaffs_UpdateObjectHeader(yaffs_Object * in, const YCHAR * name,
++ int force, int isShrink, int shadows);
++static void yaffs_RemoveObjectFromDirectory(yaffs_Object * obj);
++static int yaffs_CheckStructures(void);
++static int yaffs_DeleteWorker(yaffs_Object * in, yaffs_Tnode * tn, __u32 level,
++ int chunkOffset, int *limit);
++static int yaffs_DoGenericObjectDeletion(yaffs_Object * in);
++
++static yaffs_BlockInfo *yaffs_GetBlockInfo(yaffs_Device * dev, int blockNo);
++
++
++static int yaffs_CheckChunkErased(struct yaffs_DeviceStruct *dev,
++ int chunkInNAND);
++
++static int yaffs_UnlinkWorker(yaffs_Object * obj);
++static void yaffs_DestroyObject(yaffs_Object * obj);
++
++static int yaffs_TagsMatch(const yaffs_ExtendedTags * tags, int objectId,
++ int chunkInObject);
++
++loff_t yaffs_GetFileSize(yaffs_Object * obj);
++
++static int yaffs_AllocateChunk(yaffs_Device * dev, int useReserve, yaffs_BlockInfo **blockUsedPtr);
++
++static void yaffs_VerifyFreeChunks(yaffs_Device * dev);
++
++static void yaffs_CheckObjectDetailsLoaded(yaffs_Object *in);
++
++static void yaffs_VerifyDirectory(yaffs_Object *directory);
++#ifdef YAFFS_PARANOID
++static int yaffs_CheckFileSanity(yaffs_Object * in);
++#else
++#define yaffs_CheckFileSanity(in)
++#endif
++
++static void yaffs_InvalidateWholeChunkCache(yaffs_Object * in);
++static void yaffs_InvalidateChunkCache(yaffs_Object * object, int chunkId);
++
++static void yaffs_InvalidateCheckpoint(yaffs_Device *dev);
++
++static int yaffs_FindChunkInFile(yaffs_Object * in, int chunkInInode,
++ yaffs_ExtendedTags * tags);
++
++static __u32 yaffs_GetChunkGroupBase(yaffs_Device *dev, yaffs_Tnode *tn, unsigned pos);
++static yaffs_Tnode *yaffs_FindLevel0Tnode(yaffs_Device * dev,
++ yaffs_FileStructure * fStruct,
++ __u32 chunkId);
++
++
++/* Function to calculate chunk and offset */
++
++static void yaffs_AddrToChunk(yaffs_Device *dev, loff_t addr, int *chunkOut, __u32 *offsetOut)
++{
++ int chunk;
++ __u32 offset;
++
++ chunk = (__u32)(addr >> dev->chunkShift);
++
++ if(dev->chunkDiv == 1)
++ {
++ /* easy power of 2 case */
++ offset = (__u32)(addr & dev->chunkMask);
++ }
++ else
++ {
++ /* Non power-of-2 case */
++
++ loff_t chunkBase;
++
++ chunk /= dev->chunkDiv;
++
++ chunkBase = ((loff_t)chunk) * dev->nDataBytesPerChunk;
++ offset = (__u32)(addr - chunkBase);
++ }
++
++ *chunkOut = chunk;
++ *offsetOut = offset;
++}
++
++/* Function to return the number of shifts for a power of 2 greater than or equal
++ * to the given number
++ * Note we don't try to cater for all possible numbers and this does not have to
++ * be hellishly efficient.
++ */
++
++static __u32 ShiftsGE(__u32 x)
++{
++ int extraBits;
++ int nShifts;
++
++ nShifts = extraBits = 0;
++
++ while(x>1){
++ if(x & 1) extraBits++;
++ x>>=1;
++ nShifts++;
++ }
++
++ if(extraBits)
++ nShifts++;
++
++ return nShifts;
++}
++
++/* Function to return the number of shifts to get a 1 in bit 0
++ */
++
++static __u32 Shifts(__u32 x)
++{
++ int nShifts;
++
++ nShifts = 0;
++
++ if(!x) return 0;
++
++ while( !(x&1)){
++ x>>=1;
++ nShifts++;
++ }
++
++ return nShifts;
++}
++
++
++
++/*
++ * Temporary buffer manipulations.
++ */
++
++static int yaffs_InitialiseTempBuffers(yaffs_Device *dev)
++{
++ int i;
++ __u8 *buf = (__u8 *)1;
++
++ memset(dev->tempBuffer,0,sizeof(dev->tempBuffer));
++
++ for (i = 0; buf && i < YAFFS_N_TEMP_BUFFERS; i++) {
++ dev->tempBuffer[i].line = 0; /* not in use */
++ dev->tempBuffer[i].buffer = buf =
++ YMALLOC_DMA(dev->totalBytesPerChunk);
++ }
++
++ return buf ? YAFFS_OK : YAFFS_FAIL;
++
++}
++
++__u8 *yaffs_GetTempBuffer(yaffs_Device * dev, int lineNo)
++{
++ int i, j;
++
++ dev->tempInUse++;
++ if(dev->tempInUse > dev->maxTemp)
++ dev->maxTemp = dev->tempInUse;
++
++ for (i = 0; i < YAFFS_N_TEMP_BUFFERS; i++) {
++ if (dev->tempBuffer[i].line == 0) {
++ dev->tempBuffer[i].line = lineNo;
++ if ((i + 1) > dev->maxTemp) {
++ dev->maxTemp = i + 1;
++ for (j = 0; j <= i; j++)
++ dev->tempBuffer[j].maxLine =
++ dev->tempBuffer[j].line;
++ }
++
++ return dev->tempBuffer[i].buffer;
++ }
++ }
++
++ T(YAFFS_TRACE_BUFFERS,
++ (TSTR("Out of temp buffers at line %d, other held by lines:"),
++ lineNo));
++ for (i = 0; i < YAFFS_N_TEMP_BUFFERS; i++) {
++ T(YAFFS_TRACE_BUFFERS, (TSTR(" %d "), dev->tempBuffer[i].line));
++ }
++ T(YAFFS_TRACE_BUFFERS, (TSTR(" " TENDSTR)));
++
++ /*
++ * If we got here then we have to allocate an unmanaged one
++ * This is not good.
++ */
++
++ dev->unmanagedTempAllocations++;
++ return YMALLOC(dev->nDataBytesPerChunk);
++
++}
++
++void yaffs_ReleaseTempBuffer(yaffs_Device * dev, __u8 * buffer,
++ int lineNo)
++{
++ int i;
++
++ dev->tempInUse--;
++
++ for (i = 0; i < YAFFS_N_TEMP_BUFFERS; i++) {
++ if (dev->tempBuffer[i].buffer == buffer) {
++ dev->tempBuffer[i].line = 0;
++ return;
++ }
++ }
++
++ if (buffer) {
++ /* assume it is an unmanaged one. */
++ T(YAFFS_TRACE_BUFFERS,
++ (TSTR("Releasing unmanaged temp buffer in line %d" TENDSTR),
++ lineNo));
++ YFREE(buffer);
++ dev->unmanagedTempDeallocations++;
++ }
++
++}
++
++/*
++ * Determine if we have a managed buffer.
++ */
++int yaffs_IsManagedTempBuffer(yaffs_Device * dev, const __u8 * buffer)
++{
++ int i;
++ for (i = 0; i < YAFFS_N_TEMP_BUFFERS; i++) {
++ if (dev->tempBuffer[i].buffer == buffer)
++ return 1;
++
++ }
++
++ for (i = 0; i < dev->nShortOpCaches; i++) {
++ if( dev->srCache[i].data == buffer )
++ return 1;
++
++ }
++
++ if (buffer == dev->checkpointBuffer)
++ return 1;
++
++ T(YAFFS_TRACE_ALWAYS,
++ (TSTR("yaffs: unmaged buffer detected.\n" TENDSTR)));
++ return 0;
++}
++
++
++
++/*
++ * Chunk bitmap manipulations
++ */
++
++static Y_INLINE __u8 *yaffs_BlockBits(yaffs_Device * dev, int blk)
++{
++ if (blk < dev->internalStartBlock || blk > dev->internalEndBlock) {
++ T(YAFFS_TRACE_ERROR,
++ (TSTR("**>> yaffs: BlockBits block %d is not valid" TENDSTR),
++ blk));
++ YBUG();
++ }
++ return dev->chunkBits +
++ (dev->chunkBitmapStride * (blk - dev->internalStartBlock));
++}
++
++static Y_INLINE void yaffs_VerifyChunkBitId(yaffs_Device *dev, int blk, int chunk)
++{
++ if(blk < dev->internalStartBlock || blk > dev->internalEndBlock ||
++ chunk < 0 || chunk >= dev->nChunksPerBlock) {
++ T(YAFFS_TRACE_ERROR,
++ (TSTR("**>> yaffs: Chunk Id (%d:%d) invalid"TENDSTR),blk,chunk));
++ YBUG();
++ }
++}
++
++static Y_INLINE void yaffs_ClearChunkBits(yaffs_Device * dev, int blk)
++{
++ __u8 *blkBits = yaffs_BlockBits(dev, blk);
++
++ memset(blkBits, 0, dev->chunkBitmapStride);
++}
++
++static Y_INLINE void yaffs_ClearChunkBit(yaffs_Device * dev, int blk, int chunk)
++{
++ __u8 *blkBits = yaffs_BlockBits(dev, blk);
++
++ yaffs_VerifyChunkBitId(dev,blk,chunk);
++
++ blkBits[chunk / 8] &= ~(1 << (chunk & 7));
++}
++
++static Y_INLINE void yaffs_SetChunkBit(yaffs_Device * dev, int blk, int chunk)
++{
++ __u8 *blkBits = yaffs_BlockBits(dev, blk);
++
++ yaffs_VerifyChunkBitId(dev,blk,chunk);
++
++ blkBits[chunk / 8] |= (1 << (chunk & 7));
++}
++
++static Y_INLINE int yaffs_CheckChunkBit(yaffs_Device * dev, int blk, int chunk)
++{
++ __u8 *blkBits = yaffs_BlockBits(dev, blk);
++ yaffs_VerifyChunkBitId(dev,blk,chunk);
++
++ return (blkBits[chunk / 8] & (1 << (chunk & 7))) ? 1 : 0;
++}
++
++static Y_INLINE int yaffs_StillSomeChunkBits(yaffs_Device * dev, int blk)
++{
++ __u8 *blkBits = yaffs_BlockBits(dev, blk);
++ int i;
++ for (i = 0; i < dev->chunkBitmapStride; i++) {
++ if (*blkBits)
++ return 1;
++ blkBits++;
++ }
++ return 0;
++}
++
++static int yaffs_CountChunkBits(yaffs_Device * dev, int blk)
++{
++ __u8 *blkBits = yaffs_BlockBits(dev, blk);
++ int i;
++ int n = 0;
++ for (i = 0; i < dev->chunkBitmapStride; i++) {
++ __u8 x = *blkBits;
++ while(x){
++ if(x & 1)
++ n++;
++ x >>=1;
++ }
++
++ blkBits++;
++ }
++ return n;
++}
++
++/*
++ * Verification code
++ */
++
++static int yaffs_SkipVerification(yaffs_Device *dev)
++{
++ return !(yaffs_traceMask & (YAFFS_TRACE_VERIFY | YAFFS_TRACE_VERIFY_FULL));
++}
++
++static int yaffs_SkipFullVerification(yaffs_Device *dev)
++{
++ return !(yaffs_traceMask & (YAFFS_TRACE_VERIFY_FULL));
++}
++
++static int yaffs_SkipNANDVerification(yaffs_Device *dev)
++{
++ return !(yaffs_traceMask & (YAFFS_TRACE_VERIFY_NAND));
++}
++
++static const char * blockStateName[] = {
++"Unknown",
++"Needs scanning",
++"Scanning",
++"Empty",
++"Allocating",
++"Full",
++"Dirty",
++"Checkpoint",
++"Collecting",
++"Dead"
++};
++
++static void yaffs_VerifyBlock(yaffs_Device *dev,yaffs_BlockInfo *bi,int n)
++{
++ int actuallyUsed;
++ int inUse;
++
++ if(yaffs_SkipVerification(dev))
++ return;
++
++ /* Report illegal runtime states */
++ if(bi->blockState >= YAFFS_NUMBER_OF_BLOCK_STATES)
++ T(YAFFS_TRACE_VERIFY,(TSTR("Block %d has undefined state %d"TENDSTR),n,bi->blockState));
++
++ switch(bi->blockState){
++ case YAFFS_BLOCK_STATE_UNKNOWN:
++ case YAFFS_BLOCK_STATE_SCANNING:
++ case YAFFS_BLOCK_STATE_NEEDS_SCANNING:
++ T(YAFFS_TRACE_VERIFY,(TSTR("Block %d has bad run-state %s"TENDSTR),
++ n,blockStateName[bi->blockState]));
++ }
++
++ /* Check pages in use and soft deletions are legal */
++
++ actuallyUsed = bi->pagesInUse - bi->softDeletions;
++
++ if(bi->pagesInUse < 0 || bi->pagesInUse > dev->nChunksPerBlock ||
++ bi->softDeletions < 0 || bi->softDeletions > dev->nChunksPerBlock ||
++ actuallyUsed < 0 || actuallyUsed > dev->nChunksPerBlock)
++ T(YAFFS_TRACE_VERIFY,(TSTR("Block %d has illegal values pagesInUsed %d softDeletions %d"TENDSTR),
++ n,bi->pagesInUse,bi->softDeletions));
++
++
++ /* Check chunk bitmap legal */
++ inUse = yaffs_CountChunkBits(dev,n);
++ if(inUse != bi->pagesInUse)
++ T(YAFFS_TRACE_VERIFY,(TSTR("Block %d has inconsistent values pagesInUse %d counted chunk bits %d"TENDSTR),
++ n,bi->pagesInUse,inUse));
++
++ /* Check that the sequence number is valid.
++ * Ten million is legal, but is very unlikely
++ */
++ if(dev->isYaffs2 &&
++ (bi->blockState == YAFFS_BLOCK_STATE_ALLOCATING || bi->blockState == YAFFS_BLOCK_STATE_FULL) &&
++ (bi->sequenceNumber < YAFFS_LOWEST_SEQUENCE_NUMBER || bi->sequenceNumber > 10000000 ))
++ T(YAFFS_TRACE_VERIFY,(TSTR("Block %d has suspect sequence number of %d"TENDSTR),
++ n,bi->sequenceNumber));
++
++}
++
++static void yaffs_VerifyCollectedBlock(yaffs_Device *dev,yaffs_BlockInfo *bi,int n)
++{
++ yaffs_VerifyBlock(dev,bi,n);
++
++ /* After collection the block should be in the erased state */
++ /* This will need to change if we do partial gc */
++
++ if(bi->blockState != YAFFS_BLOCK_STATE_COLLECTING &&
++ bi->blockState != YAFFS_BLOCK_STATE_EMPTY){
++ T(YAFFS_TRACE_ERROR,(TSTR("Block %d is in state %d after gc, should be erased"TENDSTR),
++ n,bi->blockState));
++ }
++}
++
++static void yaffs_VerifyBlocks(yaffs_Device *dev)
++{
++ int i;
++ int nBlocksPerState[YAFFS_NUMBER_OF_BLOCK_STATES];
++ int nIllegalBlockStates = 0;
++
++
++ if(yaffs_SkipVerification(dev))
++ return;
++
++ memset(nBlocksPerState,0,sizeof(nBlocksPerState));
++
++
++ for(i = dev->internalStartBlock; i <= dev->internalEndBlock; i++){
++ yaffs_BlockInfo *bi = yaffs_GetBlockInfo(dev,i);
++ yaffs_VerifyBlock(dev,bi,i);
++
++ if(bi->blockState < YAFFS_NUMBER_OF_BLOCK_STATES)
++ nBlocksPerState[bi->blockState]++;
++ else
++ nIllegalBlockStates++;
++
++ }
++
++ T(YAFFS_TRACE_VERIFY,(TSTR(""TENDSTR)));
++ T(YAFFS_TRACE_VERIFY,(TSTR("Block summary"TENDSTR)));
++
++ T(YAFFS_TRACE_VERIFY,(TSTR("%d blocks have illegal states"TENDSTR),nIllegalBlockStates));
++ if(nBlocksPerState[YAFFS_BLOCK_STATE_ALLOCATING] > 1)
++ T(YAFFS_TRACE_VERIFY,(TSTR("Too many allocating blocks"TENDSTR)));
++
++ for(i = 0; i < YAFFS_NUMBER_OF_BLOCK_STATES; i++)
++ T(YAFFS_TRACE_VERIFY,
++ (TSTR("%s %d blocks"TENDSTR),
++ blockStateName[i],nBlocksPerState[i]));
++
++ if(dev->blocksInCheckpoint != nBlocksPerState[YAFFS_BLOCK_STATE_CHECKPOINT])
++ T(YAFFS_TRACE_VERIFY,
++ (TSTR("Checkpoint block count wrong dev %d count %d"TENDSTR),
++ dev->blocksInCheckpoint, nBlocksPerState[YAFFS_BLOCK_STATE_CHECKPOINT]));
++
++ if(dev->nErasedBlocks != nBlocksPerState[YAFFS_BLOCK_STATE_EMPTY])
++ T(YAFFS_TRACE_VERIFY,
++ (TSTR("Erased block count wrong dev %d count %d"TENDSTR),
++ dev->nErasedBlocks, nBlocksPerState[YAFFS_BLOCK_STATE_EMPTY]));
++
++ if(nBlocksPerState[YAFFS_BLOCK_STATE_COLLECTING] > 1)
++ T(YAFFS_TRACE_VERIFY,
++ (TSTR("Too many collecting blocks %d (max is 1)"TENDSTR),
++ nBlocksPerState[YAFFS_BLOCK_STATE_COLLECTING]));
++
++ T(YAFFS_TRACE_VERIFY,(TSTR(""TENDSTR)));
++
++}
++
++/*
++ * Verify the object header. oh must be valid, but obj and tags may be NULL in which
++ * case those tests will not be performed.
++ */
++static void yaffs_VerifyObjectHeader(yaffs_Object *obj, yaffs_ObjectHeader *oh, yaffs_ExtendedTags *tags, int parentCheck)
++{
++ if(obj && yaffs_SkipVerification(obj->myDev))
++ return;
++
++ if(!(tags && obj && oh)){
++ T(YAFFS_TRACE_VERIFY,
++ (TSTR("Verifying object header tags %x obj %x oh %x"TENDSTR),
++ (__u32)tags,(__u32)obj,(__u32)oh));
++ return;
++ }
++
++ if(oh->type <= YAFFS_OBJECT_TYPE_UNKNOWN ||
++ oh->type > YAFFS_OBJECT_TYPE_MAX)
++ T(YAFFS_TRACE_VERIFY,
++ (TSTR("Obj %d header type is illegal value 0x%x"TENDSTR),
++ tags->objectId, oh->type));
++
++ if(tags->objectId != obj->objectId)
++ T(YAFFS_TRACE_VERIFY,
++ (TSTR("Obj %d header mismatch objectId %d"TENDSTR),
++ tags->objectId, obj->objectId));
++
++
++ /*
++ * Check that the object's parent ids match if parentCheck requested.
++ *
++ * Tests do not apply to the root object.
++ */
++
++ if(parentCheck && tags->objectId > 1 && !obj->parent)
++ T(YAFFS_TRACE_VERIFY,
++ (TSTR("Obj %d header mismatch parentId %d obj->parent is NULL"TENDSTR),
++ tags->objectId, oh->parentObjectId));
++
++
++ if(parentCheck && obj->parent &&
++ oh->parentObjectId != obj->parent->objectId &&
++ (oh->parentObjectId != YAFFS_OBJECTID_UNLINKED ||
++ obj->parent->objectId != YAFFS_OBJECTID_DELETED))
++ T(YAFFS_TRACE_VERIFY,
++ (TSTR("Obj %d header mismatch parentId %d parentObjectId %d"TENDSTR),
++ tags->objectId, oh->parentObjectId, obj->parent->objectId));
++
++
++ if(tags->objectId > 1 && oh->name[0] == 0) /* Null name */
++ T(YAFFS_TRACE_VERIFY,
++ (TSTR("Obj %d header name is NULL"TENDSTR),
++ obj->objectId));
++
++ if(tags->objectId > 1 && ((__u8)(oh->name[0])) == 0xff) /* Trashed name */
++ T(YAFFS_TRACE_VERIFY,
++ (TSTR("Obj %d header name is 0xFF"TENDSTR),
++ obj->objectId));
++}
++
++
++
++static int yaffs_VerifyTnodeWorker(yaffs_Object * obj, yaffs_Tnode * tn,
++ __u32 level, int chunkOffset)
++{
++ int i;
++ yaffs_Device *dev = obj->myDev;
++ int ok = 1;
++
++ if (tn) {
++ if (level > 0) {
++
++ for (i = 0; i < YAFFS_NTNODES_INTERNAL && ok; i++){
++ if (tn->internal[i]) {
++ ok = yaffs_VerifyTnodeWorker(obj,
++ tn->internal[i],
++ level - 1,
++ (chunkOffset<<YAFFS_TNODES_INTERNAL_BITS) + i);
++ }
++ }
++ } else if (level == 0) {
++ yaffs_ExtendedTags tags;
++ __u32 objectId = obj->objectId;
++
++ chunkOffset <<= YAFFS_TNODES_LEVEL0_BITS;
++
++ for(i = 0; i < YAFFS_NTNODES_LEVEL0; i++){
++ __u32 theChunk = yaffs_GetChunkGroupBase(dev,tn,i);
++
++ if(theChunk > 0){
++ /* T(~0,(TSTR("verifying (%d:%d) %d"TENDSTR),tags.objectId,tags.chunkId,theChunk)); */
++ yaffs_ReadChunkWithTagsFromNAND(dev,theChunk,NULL, &tags);
++ if(tags.objectId != objectId || tags.chunkId != chunkOffset){
++ T(~0,(TSTR("Object %d chunkId %d NAND mismatch chunk %d tags (%d:%d)"TENDSTR),
++ objectId, chunkOffset, theChunk,
++ tags.objectId, tags.chunkId));
++ }
++ }
++ chunkOffset++;
++ }
++ }
++ }
++
++ return ok;
++
++}
++
++
++static void yaffs_VerifyFile(yaffs_Object *obj)
++{
++ int requiredTallness;
++ int actualTallness;
++ __u32 lastChunk;
++ __u32 x;
++ __u32 i;
++ yaffs_Device *dev;
++ yaffs_ExtendedTags tags;
++ yaffs_Tnode *tn;
++ __u32 objectId;
++
++ if(!obj)
++ return;
++
++ if(yaffs_SkipVerification(obj->myDev))
++ return;
++
++ dev = obj->myDev;
++ objectId = obj->objectId;
++
++ /* Check file size is consistent with tnode depth */
++ lastChunk = obj->variant.fileVariant.fileSize / dev->nDataBytesPerChunk + 1;
++ x = lastChunk >> YAFFS_TNODES_LEVEL0_BITS;
++ requiredTallness = 0;
++ while (x> 0) {
++ x >>= YAFFS_TNODES_INTERNAL_BITS;
++ requiredTallness++;
++ }
++
++ actualTallness = obj->variant.fileVariant.topLevel;
++
++ if(requiredTallness > actualTallness )
++ T(YAFFS_TRACE_VERIFY,
++ (TSTR("Obj %d had tnode tallness %d, needs to be %d"TENDSTR),
++ obj->objectId,actualTallness, requiredTallness));
++
++
++ /* Check that the chunks in the tnode tree are all correct.
++ * We do this by scanning through the tnode tree and
++ * checking the tags for every chunk match.
++ */
++
++ if(yaffs_SkipNANDVerification(dev))
++ return;
++
++ for(i = 1; i <= lastChunk; i++){
++ tn = yaffs_FindLevel0Tnode(dev, &obj->variant.fileVariant,i);
++
++ if (tn) {
++ __u32 theChunk = yaffs_GetChunkGroupBase(dev,tn,i);
++ if(theChunk > 0){
++ /* T(~0,(TSTR("verifying (%d:%d) %d"TENDSTR),objectId,i,theChunk)); */
++ yaffs_ReadChunkWithTagsFromNAND(dev,theChunk,NULL, &tags);
++ if(tags.objectId != objectId || tags.chunkId != i){
++ T(~0,(TSTR("Object %d chunkId %d NAND mismatch chunk %d tags (%d:%d)"TENDSTR),
++ objectId, i, theChunk,
++ tags.objectId, tags.chunkId));
++ }
++ }
++ }
++
++ }
++
++}
++
++
++static void yaffs_VerifyHardLink(yaffs_Object *obj)
++{
++ if(obj && yaffs_SkipVerification(obj->myDev))
++ return;
++
++ /* Verify sane equivalent object */
++}
++
++static void yaffs_VerifySymlink(yaffs_Object *obj)
++{
++ if(obj && yaffs_SkipVerification(obj->myDev))
++ return;
++
++ /* Verify symlink string */
++}
++
++static void yaffs_VerifySpecial(yaffs_Object *obj)
++{
++ if(obj && yaffs_SkipVerification(obj->myDev))
++ return;
++}
++
++static void yaffs_VerifyObject(yaffs_Object *obj)
++{
++ yaffs_Device *dev;
++
++ __u32 chunkMin;
++ __u32 chunkMax;
++
++ __u32 chunkIdOk;
++ __u32 chunkIsLive;
++
++ if(!obj)
++ return;
++
++ dev = obj->myDev;
++
++ if(yaffs_SkipVerification(dev))
++ return;
++
++ /* Check sane object header chunk */
++
++ chunkMin = dev->internalStartBlock * dev->nChunksPerBlock;
++ chunkMax = (dev->internalEndBlock+1) * dev->nChunksPerBlock - 1;
++
++ chunkIdOk = (((unsigned)(obj->hdrChunk)) >= chunkMin && ((unsigned)(obj->hdrChunk)) <= chunkMax);
++ chunkIsLive = chunkIdOk &&
++ yaffs_CheckChunkBit(dev,
++ obj->hdrChunk / dev->nChunksPerBlock,
++ obj->hdrChunk % dev->nChunksPerBlock);
++ if(!obj->fake &&
++ (!chunkIdOk || !chunkIsLive)) {
++ T(YAFFS_TRACE_VERIFY,
++ (TSTR("Obj %d has chunkId %d %s %s"TENDSTR),
++ obj->objectId,obj->hdrChunk,
++ chunkIdOk ? "" : ",out of range",
++ chunkIsLive || !chunkIdOk ? "" : ",marked as deleted"));
++ }
++
++ if(chunkIdOk && chunkIsLive &&!yaffs_SkipNANDVerification(dev)) {
++ yaffs_ExtendedTags tags;
++ yaffs_ObjectHeader *oh;
++ __u8 *buffer = yaffs_GetTempBuffer(dev,__LINE__);
++
++ oh = (yaffs_ObjectHeader *)buffer;
++
++ yaffs_ReadChunkWithTagsFromNAND(dev, obj->hdrChunk,buffer, &tags);
++
++ yaffs_VerifyObjectHeader(obj,oh,&tags,1);
++
++ yaffs_ReleaseTempBuffer(dev,buffer,__LINE__);
++ }
++
++ /* Verify it has a parent */
++ if(obj && !obj->fake &&
++ (!obj->parent || obj->parent->myDev != dev)){
++ T(YAFFS_TRACE_VERIFY,
++ (TSTR("Obj %d has parent pointer %p which does not look like an object"TENDSTR),
++ obj->objectId,obj->parent));
++ }
++
++ /* Verify parent is a directory */
++ if(obj->parent && obj->parent->variantType != YAFFS_OBJECT_TYPE_DIRECTORY){
++ T(YAFFS_TRACE_VERIFY,
++ (TSTR("Obj %d's parent is not a directory (type %d)"TENDSTR),
++ obj->objectId,obj->parent->variantType));
++ }
++
++ switch(obj->variantType){
++ case YAFFS_OBJECT_TYPE_FILE:
++ yaffs_VerifyFile(obj);
++ break;
++ case YAFFS_OBJECT_TYPE_SYMLINK:
++ yaffs_VerifySymlink(obj);
++ break;
++ case YAFFS_OBJECT_TYPE_DIRECTORY:
++ yaffs_VerifyDirectory(obj);
++ break;
++ case YAFFS_OBJECT_TYPE_HARDLINK:
++ yaffs_VerifyHardLink(obj);
++ break;
++ case YAFFS_OBJECT_TYPE_SPECIAL:
++ yaffs_VerifySpecial(obj);
++ break;
++ case YAFFS_OBJECT_TYPE_UNKNOWN:
++ default:
++ T(YAFFS_TRACE_VERIFY,
++ (TSTR("Obj %d has illegaltype %d"TENDSTR),
++ obj->objectId,obj->variantType));
++ break;
++ }
++
++
++}
++
++static void yaffs_VerifyObjects(yaffs_Device *dev)
++{
++ yaffs_Object *obj;
++ int i;
++ struct ylist_head *lh;
++
++ if(yaffs_SkipVerification(dev))
++ return;
++
++ /* Iterate through the objects in each hash entry */
++
++ for(i = 0; i < YAFFS_NOBJECT_BUCKETS; i++){
++ ylist_for_each(lh, &dev->objectBucket[i].list) {
++ if (lh) {
++ obj = ylist_entry(lh, yaffs_Object, hashLink);
++ yaffs_VerifyObject(obj);
++ }
++ }
++ }
++
++}
++
++
++/*
++ * Simple hash function. Needs to have a reasonable spread
++ */
++
++static Y_INLINE int yaffs_HashFunction(int n)
++{
++ n = abs(n);
++ return (n % YAFFS_NOBJECT_BUCKETS);
++}
++
++/*
++ * Access functions to useful fake objects.
++ * Note that root might have a presence in NAND if permissions are set.
++ */
++
++yaffs_Object *yaffs_Root(yaffs_Device * dev)
++{
++ return dev->rootDir;
++}
++
++yaffs_Object *yaffs_LostNFound(yaffs_Device * dev)
++{
++ return dev->lostNFoundDir;
++}
++
++
++/*
++ * Erased NAND checking functions
++ */
++
++int yaffs_CheckFF(__u8 * buffer, int nBytes)
++{
++ /* Horrible, slow implementation */
++ while (nBytes--) {
++ if (*buffer != 0xFF)
++ return 0;
++ buffer++;
++ }
++ return 1;
++}
++
++static int yaffs_CheckChunkErased(struct yaffs_DeviceStruct *dev,
++ int chunkInNAND)
++{
++
++ int retval = YAFFS_OK;
++ __u8 *data = yaffs_GetTempBuffer(dev, __LINE__);
++ yaffs_ExtendedTags tags;
++ int result;
++
++ result = yaffs_ReadChunkWithTagsFromNAND(dev, chunkInNAND, data, &tags);
++
++ if(tags.eccResult > YAFFS_ECC_RESULT_NO_ERROR)
++ retval = YAFFS_FAIL;
++
++
++ if (!yaffs_CheckFF(data, dev->nDataBytesPerChunk) || tags.chunkUsed) {
++ T(YAFFS_TRACE_NANDACCESS,
++ (TSTR("Chunk %d not erased" TENDSTR), chunkInNAND));
++ retval = YAFFS_FAIL;
++ }
++
++ yaffs_ReleaseTempBuffer(dev, data, __LINE__);
++
++ return retval;
++
++}
++
++static int yaffs_WriteNewChunkWithTagsToNAND(struct yaffs_DeviceStruct *dev,
++ const __u8 * data,
++ yaffs_ExtendedTags * tags,
++ int useReserve)
++{
++ int attempts = 0;
++ int writeOk = 0;
++ int chunk;
++
++ yaffs_InvalidateCheckpoint(dev);
++
++ do {
++ yaffs_BlockInfo *bi = 0;
++ int erasedOk = 0;
++
++ chunk = yaffs_AllocateChunk(dev, useReserve, &bi);
++ if (chunk < 0) {
++ /* no space */
++ break;
++ }
++
++ /* First check this chunk is erased, if it needs
++ * checking. The checking policy (unless forced
++ * always on) is as follows:
++ *
++ * Check the first page we try to write in a block.
++ * If the check passes then we don't need to check any
++ * more. If the check fails, we check again...
++ * If the block has been erased, we don't need to check.
++ *
++ * However, if the block has been prioritised for gc,
++ * then we think there might be something odd about
++ * this block and stop using it.
++ *
++ * Rationale: We should only ever see chunks that have
++ * not been erased if there was a partially written
++ * chunk due to power loss. This checking policy should
++ * catch that case with very few checks and thus save a
++ * lot of checks that are most likely not needed.
++ */
++ if (bi->gcPrioritise) {
++ yaffs_DeleteChunk(dev, chunk, 1, __LINE__);
++ /* try another chunk */
++ continue;
++ }
++
++ /* let's give it a try */
++ attempts++;
++
++#ifdef CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED
++ bi->skipErasedCheck = 0;
++#endif
++ if (!bi->skipErasedCheck) {
++ erasedOk = yaffs_CheckChunkErased(dev, chunk);
++ if (erasedOk != YAFFS_OK) {
++ T(YAFFS_TRACE_ERROR,
++ (TSTR ("**>> yaffs chunk %d was not erased"
++ TENDSTR), chunk));
++
++ /* try another chunk */
++ continue;
++ }
++ bi->skipErasedCheck = 1;
++ }
++
++ writeOk = yaffs_WriteChunkWithTagsToNAND(dev, chunk,
++ data, tags);
++ if (writeOk != YAFFS_OK) {
++ yaffs_HandleWriteChunkError(dev, chunk, erasedOk);
++ /* try another chunk */
++ continue;
++ }
++
++ /* Copy the data into the robustification buffer */
++ yaffs_HandleWriteChunkOk(dev, chunk, data, tags);
++
++ } while (writeOk != YAFFS_OK &&
++ (yaffs_wr_attempts <= 0 || attempts <= yaffs_wr_attempts));
++
++ if(!writeOk)
++ chunk = -1;
++
++ if (attempts > 1) {
++ T(YAFFS_TRACE_ERROR,
++ (TSTR("**>> yaffs write required %d attempts" TENDSTR),
++ attempts));
++
++ dev->nRetriedWrites += (attempts - 1);
++ }
++
++ return chunk;
++}
++
++/*
++ * Block retiring for handling a broken block.
++ */
++
++static void yaffs_RetireBlock(yaffs_Device * dev, int blockInNAND)
++{
++ yaffs_BlockInfo *bi = yaffs_GetBlockInfo(dev, blockInNAND);
++
++ yaffs_InvalidateCheckpoint(dev);
++
++ yaffs_MarkBlockBad(dev, blockInNAND);
++
++ bi->blockState = YAFFS_BLOCK_STATE_DEAD;
++ bi->gcPrioritise = 0;
++ bi->needsRetiring = 0;
++
++ dev->nRetiredBlocks++;
++}
++
++/*
++ * Functions for robustisizing TODO
++ *
++ */
++
++static void yaffs_HandleWriteChunkOk(yaffs_Device * dev, int chunkInNAND,
++ const __u8 * data,
++ const yaffs_ExtendedTags * tags)
++{
++}
++
++static void yaffs_HandleUpdateChunk(yaffs_Device * dev, int chunkInNAND,
++ const yaffs_ExtendedTags * tags)
++{
++}
++
++void yaffs_HandleChunkError(yaffs_Device *dev, yaffs_BlockInfo *bi)
++{
++ if(!bi->gcPrioritise){
++ bi->gcPrioritise = 1;
++ dev->hasPendingPrioritisedGCs = 1;
++ bi->chunkErrorStrikes ++;
++
++ if(bi->chunkErrorStrikes > 3){
++ bi->needsRetiring = 1; /* Too many stikes, so retire this */
++ T(YAFFS_TRACE_ALWAYS, (TSTR("yaffs: Block struck out" TENDSTR)));
++
++ }
++
++ }
++}
++
++static void yaffs_HandleWriteChunkError(yaffs_Device * dev, int chunkInNAND, int erasedOk)
++{
++
++ int blockInNAND = chunkInNAND / dev->nChunksPerBlock;
++ yaffs_BlockInfo *bi = yaffs_GetBlockInfo(dev, blockInNAND);
++
++ yaffs_HandleChunkError(dev,bi);
++
++
++ if(erasedOk ) {
++ /* Was an actual write failure, so mark the block for retirement */
++ bi->needsRetiring = 1;
++ T(YAFFS_TRACE_ERROR | YAFFS_TRACE_BAD_BLOCKS,
++ (TSTR("**>> Block %d needs retiring" TENDSTR), blockInNAND));
++
++
++ }
++
++ /* Delete the chunk */
++ yaffs_DeleteChunk(dev, chunkInNAND, 1, __LINE__);
++}
++
++
++/*---------------- Name handling functions ------------*/
++
++static __u16 yaffs_CalcNameSum(const YCHAR * name)
++{
++ __u16 sum = 0;
++ __u16 i = 1;
++
++ const YUCHAR *bname = (const YUCHAR *) name;
++ if (bname) {
++ while ((*bname) && (i < (YAFFS_MAX_NAME_LENGTH/2))) {
++
++#ifdef CONFIG_YAFFS_CASE_INSENSITIVE
++ sum += yaffs_toupper(*bname) * i;
++#else
++ sum += (*bname) * i;
++#endif
++ i++;
++ bname++;
++ }
++ }
++
++ return sum;
++}
++
++static void yaffs_SetObjectName(yaffs_Object * obj, const YCHAR * name)
++{
++#ifdef CONFIG_YAFFS_SHORT_NAMES_IN_RAM
++ memset(obj->shortName,0,sizeof (YCHAR) * (YAFFS_SHORT_NAME_LENGTH+1));
++ if (name && yaffs_strlen(name) <= YAFFS_SHORT_NAME_LENGTH) {
++ yaffs_strcpy(obj->shortName, name);
++ } else {
++ obj->shortName[0] = _Y('\0');
++ }
++#endif
++ obj->sum = yaffs_CalcNameSum(name);
++}
++
++/*-------------------- TNODES -------------------
++
++ * List of spare tnodes
++ * The list is hooked together using the first pointer
++ * in the tnode.
++ */
++
++/* yaffs_CreateTnodes creates a bunch more tnodes and
++ * adds them to the tnode free list.
++ * Don't use this function directly
++ */
++
++static int yaffs_CreateTnodes(yaffs_Device * dev, int nTnodes)
++{
++ int i;
++ int tnodeSize;
++ yaffs_Tnode *newTnodes;
++ __u8 *mem;
++ yaffs_Tnode *curr;
++ yaffs_Tnode *next;
++ yaffs_TnodeList *tnl;
++
++ if (nTnodes < 1)
++ return YAFFS_OK;
++
++ /* Calculate the tnode size in bytes for variable width tnode support.
++ * Must be a multiple of 32-bits */
++ tnodeSize = (dev->tnodeWidth * YAFFS_NTNODES_LEVEL0)/8;
++
++ if(tnodeSize < sizeof(yaffs_Tnode))
++ tnodeSize = sizeof(yaffs_Tnode);
++
++
++ /* make these things */
++
++ newTnodes = YMALLOC(nTnodes * tnodeSize);
++ mem = (__u8 *)newTnodes;
++
++ if (!newTnodes) {
++ T(YAFFS_TRACE_ERROR,
++ (TSTR("yaffs: Could not allocate Tnodes" TENDSTR)));
++ return YAFFS_FAIL;
++ }
++
++ /* Hook them into the free list */
++#if 0
++ for (i = 0; i < nTnodes - 1; i++) {
++ newTnodes[i].internal[0] = &newTnodes[i + 1];
++#ifdef CONFIG_YAFFS_TNODE_LIST_DEBUG
++ newTnodes[i].internal[YAFFS_NTNODES_INTERNAL] = (void *)1;
++#endif
++ }
++
++ newTnodes[nTnodes - 1].internal[0] = dev->freeTnodes;
++#ifdef CONFIG_YAFFS_TNODE_LIST_DEBUG
++ newTnodes[nTnodes - 1].internal[YAFFS_NTNODES_INTERNAL] = (void *)1;
++#endif
++ dev->freeTnodes = newTnodes;
++#else
++ /* New hookup for wide tnodes */
++ for(i = 0; i < nTnodes -1; i++) {
++ curr = (yaffs_Tnode *) &mem[i * tnodeSize];
++ next = (yaffs_Tnode *) &mem[(i+1) * tnodeSize];
++ curr->internal[0] = next;
++ }
++
++ curr = (yaffs_Tnode *) &mem[(nTnodes - 1) * tnodeSize];
++ curr->internal[0] = dev->freeTnodes;
++ dev->freeTnodes = (yaffs_Tnode *)mem;
++
++#endif
++
++
++ dev->nFreeTnodes += nTnodes;
++ dev->nTnodesCreated += nTnodes;
++
++ /* Now add this bunch of tnodes to a list for freeing up.
++ * NB If we can't add this to the management list it isn't fatal
++ * but it just means we can't free this bunch of tnodes later.
++ */
++
++ tnl = YMALLOC(sizeof(yaffs_TnodeList));
++ if (!tnl) {
++ T(YAFFS_TRACE_ERROR,
++ (TSTR
++ ("yaffs: Could not add tnodes to management list" TENDSTR)));
++ return YAFFS_FAIL;
++
++ } else {
++ tnl->tnodes = newTnodes;
++ tnl->next = dev->allocatedTnodeList;
++ dev->allocatedTnodeList = tnl;
++ }
++
++ T(YAFFS_TRACE_ALLOCATE, (TSTR("yaffs: Tnodes added" TENDSTR)));
++
++ return YAFFS_OK;
++}
++
++/* GetTnode gets us a clean tnode. Tries to make allocate more if we run out */
++
++static yaffs_Tnode *yaffs_GetTnodeRaw(yaffs_Device * dev)
++{
++ yaffs_Tnode *tn = NULL;
++
++ /* If there are none left make more */
++ if (!dev->freeTnodes) {
++ yaffs_CreateTnodes(dev, YAFFS_ALLOCATION_NTNODES);
++ }
++
++ if (dev->freeTnodes) {
++ tn = dev->freeTnodes;
++#ifdef CONFIG_YAFFS_TNODE_LIST_DEBUG
++ if (tn->internal[YAFFS_NTNODES_INTERNAL] != (void *)1) {
++ /* Hoosterman, this thing looks like it isn't in the list */
++ T(YAFFS_TRACE_ALWAYS,
++ (TSTR("yaffs: Tnode list bug 1" TENDSTR)));
++ }
++#endif
++ dev->freeTnodes = dev->freeTnodes->internal[0];
++ dev->nFreeTnodes--;
++ }
++
++ dev->nCheckpointBlocksRequired = 0; /* force recalculation*/
++
++ return tn;
++}
++
++static yaffs_Tnode *yaffs_GetTnode(yaffs_Device * dev)
++{
++ yaffs_Tnode *tn = yaffs_GetTnodeRaw(dev);
++ int tnodeSize = (dev->tnodeWidth * YAFFS_NTNODES_LEVEL0)/8;
++
++ if(tnodeSize < sizeof(yaffs_Tnode))
++ tnodeSize = sizeof(yaffs_Tnode);
++
++ if(tn)
++ memset(tn, 0, tnodeSize);
++
++ return tn;
++}
++
++/* FreeTnode frees up a tnode and puts it back on the free list */
++static void yaffs_FreeTnode(yaffs_Device * dev, yaffs_Tnode * tn)
++{
++ if (tn) {
++#ifdef CONFIG_YAFFS_TNODE_LIST_DEBUG
++ if (tn->internal[YAFFS_NTNODES_INTERNAL] != 0) {
++ /* Hoosterman, this thing looks like it is already in the list */
++ T(YAFFS_TRACE_ALWAYS,
++ (TSTR("yaffs: Tnode list bug 2" TENDSTR)));
++ }
++ tn->internal[YAFFS_NTNODES_INTERNAL] = (void *)1;
++#endif
++ tn->internal[0] = dev->freeTnodes;
++ dev->freeTnodes = tn;
++ dev->nFreeTnodes++;
++ }
++ dev->nCheckpointBlocksRequired = 0; /* force recalculation*/
++
++}
++
++static void yaffs_DeinitialiseTnodes(yaffs_Device * dev)
++{
++ /* Free the list of allocated tnodes */
++ yaffs_TnodeList *tmp;
++
++ while (dev->allocatedTnodeList) {
++ tmp = dev->allocatedTnodeList->next;
++
++ YFREE(dev->allocatedTnodeList->tnodes);
++ YFREE(dev->allocatedTnodeList);
++ dev->allocatedTnodeList = tmp;
++
++ }
++
++ dev->freeTnodes = NULL;
++ dev->nFreeTnodes = 0;
++}
++
++static void yaffs_InitialiseTnodes(yaffs_Device * dev)
++{
++ dev->allocatedTnodeList = NULL;
++ dev->freeTnodes = NULL;
++ dev->nFreeTnodes = 0;
++ dev->nTnodesCreated = 0;
++
++}
++
++
++void yaffs_PutLevel0Tnode(yaffs_Device *dev, yaffs_Tnode *tn, unsigned pos, unsigned val)
++{
++ __u32 *map = (__u32 *)tn;
++ __u32 bitInMap;
++ __u32 bitInWord;
++ __u32 wordInMap;
++ __u32 mask;
++
++ pos &= YAFFS_TNODES_LEVEL0_MASK;
++ val >>= dev->chunkGroupBits;
++
++ bitInMap = pos * dev->tnodeWidth;
++ wordInMap = bitInMap /32;
++ bitInWord = bitInMap & (32 -1);
++
++ mask = dev->tnodeMask << bitInWord;
++
++ map[wordInMap] &= ~mask;
++ map[wordInMap] |= (mask & (val << bitInWord));
++
++ if(dev->tnodeWidth > (32-bitInWord)) {
++ bitInWord = (32 - bitInWord);
++ wordInMap++;;
++ mask = dev->tnodeMask >> (/*dev->tnodeWidth -*/ bitInWord);
++ map[wordInMap] &= ~mask;
++ map[wordInMap] |= (mask & (val >> bitInWord));
++ }
++}
++
++static __u32 yaffs_GetChunkGroupBase(yaffs_Device *dev, yaffs_Tnode *tn, unsigned pos)
++{
++ __u32 *map = (__u32 *)tn;
++ __u32 bitInMap;
++ __u32 bitInWord;
++ __u32 wordInMap;
++ __u32 val;
++
++ pos &= YAFFS_TNODES_LEVEL0_MASK;
++
++ bitInMap = pos * dev->tnodeWidth;
++ wordInMap = bitInMap /32;
++ bitInWord = bitInMap & (32 -1);
++
++ val = map[wordInMap] >> bitInWord;
++
++ if(dev->tnodeWidth > (32-bitInWord)) {
++ bitInWord = (32 - bitInWord);
++ wordInMap++;;
++ val |= (map[wordInMap] << bitInWord);
++ }
++
++ val &= dev->tnodeMask;
++ val <<= dev->chunkGroupBits;
++
++ return val;
++}
++
++/* ------------------- End of individual tnode manipulation -----------------*/
++
++/* ---------Functions to manipulate the look-up tree (made up of tnodes) ------
++ * The look up tree is represented by the top tnode and the number of topLevel
++ * in the tree. 0 means only the level 0 tnode is in the tree.
++ */
++
++/* FindLevel0Tnode finds the level 0 tnode, if one exists. */
++static yaffs_Tnode *yaffs_FindLevel0Tnode(yaffs_Device * dev,
++ yaffs_FileStructure * fStruct,
++ __u32 chunkId)
++{
++
++ yaffs_Tnode *tn = fStruct->top;
++ __u32 i;
++ int requiredTallness;
++ int level = fStruct->topLevel;
++
++ /* Check sane level and chunk Id */
++ if (level < 0 || level > YAFFS_TNODES_MAX_LEVEL) {
++ return NULL;
++ }
++
++ if (chunkId > YAFFS_MAX_CHUNK_ID) {
++ return NULL;
++ }
++
++ /* First check we're tall enough (ie enough topLevel) */
++
++ i = chunkId >> YAFFS_TNODES_LEVEL0_BITS;
++ requiredTallness = 0;
++ while (i) {
++ i >>= YAFFS_TNODES_INTERNAL_BITS;
++ requiredTallness++;
++ }
++
++ if (requiredTallness > fStruct->topLevel) {
++ /* Not tall enough, so we can't find it, return NULL. */
++ return NULL;
++ }
++
++ /* Traverse down to level 0 */
++ while (level > 0 && tn) {
++ tn = tn->
++ internal[(chunkId >>
++ ( YAFFS_TNODES_LEVEL0_BITS +
++ (level - 1) *
++ YAFFS_TNODES_INTERNAL_BITS)
++ ) &
++ YAFFS_TNODES_INTERNAL_MASK];
++ level--;
++
++ }
++
++ return tn;
++}
++
++/* AddOrFindLevel0Tnode finds the level 0 tnode if it exists, otherwise first expands the tree.
++ * This happens in two steps:
++ * 1. If the tree isn't tall enough, then make it taller.
++ * 2. Scan down the tree towards the level 0 tnode adding tnodes if required.
++ *
++ * Used when modifying the tree.
++ *
++ * If the tn argument is NULL, then a fresh tnode will be added otherwise the specified tn will
++ * be plugged into the ttree.
++ */
++
++static yaffs_Tnode *yaffs_AddOrFindLevel0Tnode(yaffs_Device * dev,
++ yaffs_FileStructure * fStruct,
++ __u32 chunkId,
++ yaffs_Tnode *passedTn)
++{
++
++ int requiredTallness;
++ int i;
++ int l;
++ yaffs_Tnode *tn;
++
++ __u32 x;
++
++
++ /* Check sane level and page Id */
++ if (fStruct->topLevel < 0 || fStruct->topLevel > YAFFS_TNODES_MAX_LEVEL) {
++ return NULL;
++ }
++
++ if (chunkId > YAFFS_MAX_CHUNK_ID) {
++ return NULL;
++ }
++
++ /* First check we're tall enough (ie enough topLevel) */
++
++ x = chunkId >> YAFFS_TNODES_LEVEL0_BITS;
++ requiredTallness = 0;
++ while (x) {
++ x >>= YAFFS_TNODES_INTERNAL_BITS;
++ requiredTallness++;
++ }
++
++
++ if (requiredTallness > fStruct->topLevel) {
++ /* Not tall enough,gotta make the tree taller */
++ for (i = fStruct->topLevel; i < requiredTallness; i++) {
++
++ tn = yaffs_GetTnode(dev);
++
++ if (tn) {
++ tn->internal[0] = fStruct->top;
++ fStruct->top = tn;
++ } else {
++ T(YAFFS_TRACE_ERROR,
++ (TSTR("yaffs: no more tnodes" TENDSTR)));
++ }
++ }
++
++ fStruct->topLevel = requiredTallness;
++ }
++
++ /* Traverse down to level 0, adding anything we need */
++
++ l = fStruct->topLevel;
++ tn = fStruct->top;
++
++ if(l > 0) {
++ while (l > 0 && tn) {
++ x = (chunkId >>
++ ( YAFFS_TNODES_LEVEL0_BITS +
++ (l - 1) * YAFFS_TNODES_INTERNAL_BITS)) &
++ YAFFS_TNODES_INTERNAL_MASK;
++
++
++ if((l>1) && !tn->internal[x]){
++ /* Add missing non-level-zero tnode */
++ tn->internal[x] = yaffs_GetTnode(dev);
++
++ } else if(l == 1) {
++ /* Looking from level 1 at level 0 */
++ if (passedTn) {
++ /* If we already have one, then release it.*/
++ if(tn->internal[x])
++ yaffs_FreeTnode(dev,tn->internal[x]);
++ tn->internal[x] = passedTn;
++
++ } else if(!tn->internal[x]) {
++ /* Don't have one, none passed in */
++ tn->internal[x] = yaffs_GetTnode(dev);
++ }
++ }
++
++ tn = tn->internal[x];
++ l--;
++ }
++ } else {
++ /* top is level 0 */
++ if(passedTn) {
++ memcpy(tn,passedTn,(dev->tnodeWidth * YAFFS_NTNODES_LEVEL0)/8);
++ yaffs_FreeTnode(dev,passedTn);
++ }
++ }
++
++ return tn;
++}
++
++static int yaffs_FindChunkInGroup(yaffs_Device * dev, int theChunk,
++ yaffs_ExtendedTags * tags, int objectId,
++ int chunkInInode)
++{
++ int j;
++
++ for (j = 0; theChunk && j < dev->chunkGroupSize; j++) {
++ if (yaffs_CheckChunkBit
++ (dev, theChunk / dev->nChunksPerBlock,
++ theChunk % dev->nChunksPerBlock)) {
++ yaffs_ReadChunkWithTagsFromNAND(dev, theChunk, NULL,
++ tags);
++ if (yaffs_TagsMatch(tags, objectId, chunkInInode)) {
++ /* found it; */
++ return theChunk;
++
++ }
++ }
++ theChunk++;
++ }
++ return -1;
++}
++
++
++/* DeleteWorker scans backwards through the tnode tree and deletes all the
++ * chunks and tnodes in the file
++ * Returns 1 if the tree was deleted.
++ * Returns 0 if it stopped early due to hitting the limit and the delete is incomplete.
++ */
++
++static int yaffs_DeleteWorker(yaffs_Object * in, yaffs_Tnode * tn, __u32 level,
++ int chunkOffset, int *limit)
++{
++ int i;
++ int chunkInInode;
++ int theChunk;
++ yaffs_ExtendedTags tags;
++ int foundChunk;
++ yaffs_Device *dev = in->myDev;
++
++ int allDone = 1;
++
++ if (tn) {
++ if (level > 0) {
++
++ for (i = YAFFS_NTNODES_INTERNAL - 1; allDone && i >= 0;
++ i--) {
++ if (tn->internal[i]) {
++ if (limit && (*limit) < 0) {
++ allDone = 0;
++ } else {
++ allDone =
++ yaffs_DeleteWorker(in,
++ tn->
++ internal
++ [i],
++ level -
++ 1,
++ (chunkOffset
++ <<
++ YAFFS_TNODES_INTERNAL_BITS)
++ + i,
++ limit);
++ }
++ if (allDone) {
++ yaffs_FreeTnode(dev,
++ tn->
++ internal[i]);
++ tn->internal[i] = NULL;
++ }
++ }
++
++ }
++ return (allDone) ? 1 : 0;
++ } else if (level == 0) {
++ int hitLimit = 0;
++
++ for (i = YAFFS_NTNODES_LEVEL0 - 1; i >= 0 && !hitLimit;
++ i--) {
++ theChunk = yaffs_GetChunkGroupBase(dev,tn,i);
++ if (theChunk) {
++
++ chunkInInode =
++ (chunkOffset <<
++ YAFFS_TNODES_LEVEL0_BITS) + i;
++
++ foundChunk =
++ yaffs_FindChunkInGroup(dev,
++ theChunk,
++ &tags,
++ in->objectId,
++ chunkInInode);
++
++ if (foundChunk > 0) {
++ yaffs_DeleteChunk(dev,
++ foundChunk, 1,
++ __LINE__);
++ in->nDataChunks--;
++ if (limit) {
++ *limit = *limit - 1;
++ if (*limit <= 0) {
++ hitLimit = 1;
++ }
++ }
++
++ }
++
++ yaffs_PutLevel0Tnode(dev,tn,i,0);
++ }
++
++ }
++ return (i < 0) ? 1 : 0;
++
++ }
++
++ }
++
++ return 1;
++
++}
++
++static void yaffs_SoftDeleteChunk(yaffs_Device * dev, int chunk)
++{
++
++ yaffs_BlockInfo *theBlock;
++
++ T(YAFFS_TRACE_DELETION, (TSTR("soft delete chunk %d" TENDSTR), chunk));
++
++ theBlock = yaffs_GetBlockInfo(dev, chunk / dev->nChunksPerBlock);
++ if (theBlock) {
++ theBlock->softDeletions++;
++ dev->nFreeChunks++;
++ }
++}
++
++/* SoftDeleteWorker scans backwards through the tnode tree and soft deletes all the chunks in the file.
++ * All soft deleting does is increment the block's softdelete count and pulls the chunk out
++ * of the tnode.
++ * Thus, essentially this is the same as DeleteWorker except that the chunks are soft deleted.
++ */
++
++static int yaffs_SoftDeleteWorker(yaffs_Object * in, yaffs_Tnode * tn,
++ __u32 level, int chunkOffset)
++{
++ int i;
++ int theChunk;
++ int allDone = 1;
++ yaffs_Device *dev = in->myDev;
++
++ if (tn) {
++ if (level > 0) {
++
++ for (i = YAFFS_NTNODES_INTERNAL - 1; allDone && i >= 0;
++ i--) {
++ if (tn->internal[i]) {
++ allDone =
++ yaffs_SoftDeleteWorker(in,
++ tn->
++ internal[i],
++ level - 1,
++ (chunkOffset
++ <<
++ YAFFS_TNODES_INTERNAL_BITS)
++ + i);
++ if (allDone) {
++ yaffs_FreeTnode(dev,
++ tn->
++ internal[i]);
++ tn->internal[i] = NULL;
++ } else {
++ /* Hoosterman... how could this happen? */
++ }
++ }
++ }
++ return (allDone) ? 1 : 0;
++ } else if (level == 0) {
++
++ for (i = YAFFS_NTNODES_LEVEL0 - 1; i >= 0; i--) {
++ theChunk = yaffs_GetChunkGroupBase(dev,tn,i);
++ if (theChunk) {
++ /* Note this does not find the real chunk, only the chunk group.
++ * We make an assumption that a chunk group is not larger than
++ * a block.
++ */
++ yaffs_SoftDeleteChunk(dev, theChunk);
++ yaffs_PutLevel0Tnode(dev,tn,i,0);
++ }
++
++ }
++ return 1;
++
++ }
++
++ }
++
++ return 1;
++
++}
++
++static void yaffs_SoftDeleteFile(yaffs_Object * obj)
++{
++ if (obj->deleted &&
++ obj->variantType == YAFFS_OBJECT_TYPE_FILE && !obj->softDeleted) {
++ if (obj->nDataChunks <= 0) {
++ /* Empty file with no duplicate object headers, just delete it immediately */
++ yaffs_FreeTnode(obj->myDev,
++ obj->variant.fileVariant.top);
++ obj->variant.fileVariant.top = NULL;
++ T(YAFFS_TRACE_TRACING,
++ (TSTR("yaffs: Deleting empty file %d" TENDSTR),
++ obj->objectId));
++ yaffs_DoGenericObjectDeletion(obj);
++ } else {
++ yaffs_SoftDeleteWorker(obj,
++ obj->variant.fileVariant.top,
++ obj->variant.fileVariant.
++ topLevel, 0);
++ obj->softDeleted = 1;
++ }
++ }
++}
++
++/* Pruning removes any part of the file structure tree that is beyond the
++ * bounds of the file (ie that does not point to chunks).
++ *
++ * A file should only get pruned when its size is reduced.
++ *
++ * Before pruning, the chunks must be pulled from the tree and the
++ * level 0 tnode entries must be zeroed out.
++ * Could also use this for file deletion, but that's probably better handled
++ * by a special case.
++ */
++
++static yaffs_Tnode *yaffs_PruneWorker(yaffs_Device * dev, yaffs_Tnode * tn,
++ __u32 level, int del0)
++{
++ int i;
++ int hasData;
++
++ if (tn) {
++ hasData = 0;
++
++ for (i = 0; i < YAFFS_NTNODES_INTERNAL; i++) {
++ if (tn->internal[i] && level > 0) {
++ tn->internal[i] =
++ yaffs_PruneWorker(dev, tn->internal[i],
++ level - 1,
++ (i == 0) ? del0 : 1);
++ }
++
++ if (tn->internal[i]) {
++ hasData++;
++ }
++ }
++
++ if (hasData == 0 && del0) {
++ /* Free and return NULL */
++
++ yaffs_FreeTnode(dev, tn);
++ tn = NULL;
++ }
++
++ }
++
++ return tn;
++
++}
++
++static int yaffs_PruneFileStructure(yaffs_Device * dev,
++ yaffs_FileStructure * fStruct)
++{
++ int i;
++ int hasData;
++ int done = 0;
++ yaffs_Tnode *tn;
++
++ if (fStruct->topLevel > 0) {
++ fStruct->top =
++ yaffs_PruneWorker(dev, fStruct->top, fStruct->topLevel, 0);
++
++ /* Now we have a tree with all the non-zero branches NULL but the height
++ * is the same as it was.
++ * Let's see if we can trim internal tnodes to shorten the tree.
++ * We can do this if only the 0th element in the tnode is in use
++ * (ie all the non-zero are NULL)
++ */
++
++ while (fStruct->topLevel && !done) {
++ tn = fStruct->top;
++
++ hasData = 0;
++ for (i = 1; i < YAFFS_NTNODES_INTERNAL; i++) {
++ if (tn->internal[i]) {
++ hasData++;
++ }
++ }
++
++ if (!hasData) {
++ fStruct->top = tn->internal[0];
++ fStruct->topLevel--;
++ yaffs_FreeTnode(dev, tn);
++ } else {
++ done = 1;
++ }
++ }
++ }
++
++ return YAFFS_OK;
++}
++
++/*-------------------- End of File Structure functions.-------------------*/
++
++/* yaffs_CreateFreeObjects creates a bunch more objects and
++ * adds them to the object free list.
++ */
++static int yaffs_CreateFreeObjects(yaffs_Device * dev, int nObjects)
++{
++ int i;
++ yaffs_Object *newObjects;
++ yaffs_ObjectList *list;
++
++ if (nObjects < 1)
++ return YAFFS_OK;
++
++ /* make these things */
++ newObjects = YMALLOC(nObjects * sizeof(yaffs_Object));
++ list = YMALLOC(sizeof(yaffs_ObjectList));
++
++ if (!newObjects || !list) {
++ if(newObjects)
++ YFREE(newObjects);
++ if(list)
++ YFREE(list);
++ T(YAFFS_TRACE_ALLOCATE,
++ (TSTR("yaffs: Could not allocate more objects" TENDSTR)));
++ return YAFFS_FAIL;
++ }
++
++ /* Hook them into the free list */
++ for (i = 0; i < nObjects - 1; i++) {
++ newObjects[i].siblings.next =
++ (struct ylist_head *)(&newObjects[i + 1]);
++ }
++
++ newObjects[nObjects - 1].siblings.next = (void *)dev->freeObjects;
++ dev->freeObjects = newObjects;
++ dev->nFreeObjects += nObjects;
++ dev->nObjectsCreated += nObjects;
++
++ /* Now add this bunch of Objects to a list for freeing up. */
++
++ list->objects = newObjects;
++ list->next = dev->allocatedObjectList;
++ dev->allocatedObjectList = list;
++
++ return YAFFS_OK;
++}
++
++
++/* AllocateEmptyObject gets us a clean Object. Tries to make allocate more if we run out */
++static yaffs_Object *yaffs_AllocateEmptyObject(yaffs_Device * dev)
++{
++ yaffs_Object *tn = NULL;
++
++#ifdef VALGRIND_TEST
++ tn = YMALLOC(sizeof(yaffs_Object));
++#else
++ /* If there are none left make more */
++ if (!dev->freeObjects) {
++ yaffs_CreateFreeObjects(dev, YAFFS_ALLOCATION_NOBJECTS);
++ }
++
++ if (dev->freeObjects) {
++ tn = dev->freeObjects;
++ dev->freeObjects =
++ (yaffs_Object *) (dev->freeObjects->siblings.next);
++ dev->nFreeObjects--;
++ }
++#endif
++ if(tn){
++ /* Now sweeten it up... */
++
++ memset(tn, 0, sizeof(yaffs_Object));
++ tn->myDev = dev;
++ tn->hdrChunk = 0;
++ tn->variantType = YAFFS_OBJECT_TYPE_UNKNOWN;
++ YINIT_LIST_HEAD(&(tn->hardLinks));
++ YINIT_LIST_HEAD(&(tn->hashLink));
++ YINIT_LIST_HEAD(&tn->siblings);
++
++
++ /* Now make the directory sane */
++ if(dev->rootDir){
++ tn->parent = dev->rootDir;
++ ylist_add(&(tn->siblings),&dev->rootDir->variant.directoryVariant.children);
++ }
++
++ /* Add it to the lost and found directory.
++ * NB Can't put root or lostNFound in lostNFound so
++ * check if lostNFound exists first
++ */
++ if (dev->lostNFoundDir) {
++ yaffs_AddObjectToDirectory(dev->lostNFoundDir, tn);
++ }
++ }
++
++ dev->nCheckpointBlocksRequired = 0; /* force recalculation*/
++
++ return tn;
++}
++
++static yaffs_Object *yaffs_CreateFakeDirectory(yaffs_Device * dev, int number,
++ __u32 mode)
++{
++
++ yaffs_Object *obj =
++ yaffs_CreateNewObject(dev, number, YAFFS_OBJECT_TYPE_DIRECTORY);
++ if (obj) {
++ obj->fake = 1; /* it is fake so it might have no NAND presence... */
++ obj->renameAllowed = 0; /* ... and we're not allowed to rename it... */
++ obj->unlinkAllowed = 0; /* ... or unlink it */
++ obj->deleted = 0;
++ obj->unlinked = 0;
++ obj->yst_mode = mode;
++ obj->myDev = dev;
++ obj->hdrChunk = 0; /* Not a valid chunk. */
++ }
++
++ return obj;
++
++}
++
++static void yaffs_UnhashObject(yaffs_Object * tn)
++{
++ int bucket;
++ yaffs_Device *dev = tn->myDev;
++
++ /* If it is still linked into the bucket list, free from the list */
++ if (!ylist_empty(&tn->hashLink)) {
++ ylist_del_init(&tn->hashLink);
++ bucket = yaffs_HashFunction(tn->objectId);
++ dev->objectBucket[bucket].count--;
++ }
++
++}
++
++/* FreeObject frees up a Object and puts it back on the free list */
++static void yaffs_FreeObject(yaffs_Object * tn)
++{
++
++ yaffs_Device *dev = tn->myDev;
++
++
++ if(tn->parent)
++ YBUG();
++ if(!ylist_empty(&tn->siblings))
++ YBUG();
++
++
++#ifdef __KERNEL__
++ if (tn->myInode) {
++ /* We're still hooked up to a cached inode.
++ * Don't delete now, but mark for later deletion
++ */
++ tn->deferedFree = 1;
++ return;
++ }
++#endif
++
++ yaffs_UnhashObject(tn);
++
++#ifdef VALGRIND_TEST
++ YFREE(tn);
++#else
++ /* Link into the free list. */
++ tn->siblings.next = (struct ylist_head *)(dev->freeObjects);
++ dev->freeObjects = tn;
++ dev->nFreeObjects++;
++#endif
++ dev->nCheckpointBlocksRequired = 0; /* force recalculation*/
++
++}
++
++#ifdef __KERNEL__
++
++void yaffs_HandleDeferedFree(yaffs_Object * obj)
++{
++ if (obj->deferedFree) {
++ yaffs_FreeObject(obj);
++ }
++}
++
++#endif
++
++static void yaffs_DeinitialiseObjects(yaffs_Device * dev)
++{
++ /* Free the list of allocated Objects */
++
++ yaffs_ObjectList *tmp;
++
++ while (dev->allocatedObjectList) {
++ tmp = dev->allocatedObjectList->next;
++ YFREE(dev->allocatedObjectList->objects);
++ YFREE(dev->allocatedObjectList);
++
++ dev->allocatedObjectList = tmp;
++ }
++
++ dev->freeObjects = NULL;
++ dev->nFreeObjects = 0;
++}
++
++static void yaffs_InitialiseObjects(yaffs_Device * dev)
++{
++ int i;
++
++ dev->allocatedObjectList = NULL;
++ dev->freeObjects = NULL;
++ dev->nFreeObjects = 0;
++
++ for (i = 0; i < YAFFS_NOBJECT_BUCKETS; i++) {
++ YINIT_LIST_HEAD(&dev->objectBucket[i].list);
++ dev->objectBucket[i].count = 0;
++ }
++
++}
++
++static int yaffs_FindNiceObjectBucket(yaffs_Device * dev)
++{
++ static int x = 0;
++ int i;
++ int l = 999;
++ int lowest = 999999;
++
++ /* First let's see if we can find one that's empty. */
++
++ for (i = 0; i < 10 && lowest > 0; i++) {
++ x++;
++ x %= YAFFS_NOBJECT_BUCKETS;
++ if (dev->objectBucket[x].count < lowest) {
++ lowest = dev->objectBucket[x].count;
++ l = x;
++ }
++
++ }
++
++ /* If we didn't find an empty list, then try
++ * looking a bit further for a short one
++ */
++
++ for (i = 0; i < 10 && lowest > 3; i++) {
++ x++;
++ x %= YAFFS_NOBJECT_BUCKETS;
++ if (dev->objectBucket[x].count < lowest) {
++ lowest = dev->objectBucket[x].count;
++ l = x;
++ }
++
++ }
++
++ return l;
++}
++
++static int yaffs_CreateNewObjectNumber(yaffs_Device * dev)
++{
++ int bucket = yaffs_FindNiceObjectBucket(dev);
++
++ /* Now find an object value that has not already been taken
++ * by scanning the list.
++ */
++
++ int found = 0;
++ struct ylist_head *i;
++
++ __u32 n = (__u32) bucket;
++
++ /* yaffs_CheckObjectHashSanity(); */
++
++ while (!found) {
++ found = 1;
++ n += YAFFS_NOBJECT_BUCKETS;
++ if (1 || dev->objectBucket[bucket].count > 0) {
++ ylist_for_each(i, &dev->objectBucket[bucket].list) {
++ /* If there is already one in the list */
++ if (i
++ && ylist_entry(i, yaffs_Object,
++ hashLink)->objectId == n) {
++ found = 0;
++ }
++ }
++ }
++ }
++
++
++ return n;
++}
++
++static void yaffs_HashObject(yaffs_Object * in)
++{
++ int bucket = yaffs_HashFunction(in->objectId);
++ yaffs_Device *dev = in->myDev;
++
++ ylist_add(&in->hashLink, &dev->objectBucket[bucket].list);
++ dev->objectBucket[bucket].count++;
++
++}
++
++yaffs_Object *yaffs_FindObjectByNumber(yaffs_Device * dev, __u32 number)
++{
++ int bucket = yaffs_HashFunction(number);
++ struct ylist_head *i;
++ yaffs_Object *in;
++
++ ylist_for_each(i, &dev->objectBucket[bucket].list) {
++ /* Look if it is in the list */
++ if (i) {
++ in = ylist_entry(i, yaffs_Object, hashLink);
++ if (in->objectId == number) {
++#ifdef __KERNEL__
++ /* Don't tell the VFS about this one if it is defered free */
++ if (in->deferedFree)
++ return NULL;
++#endif
++
++ return in;
++ }
++ }
++ }
++
++ return NULL;
++}
++
++yaffs_Object *yaffs_CreateNewObject(yaffs_Device * dev, int number,
++ yaffs_ObjectType type)
++{
++
++ yaffs_Object *theObject;
++ yaffs_Tnode *tn = NULL;
++
++ if (number < 0) {
++ number = yaffs_CreateNewObjectNumber(dev);
++ }
++
++ theObject = yaffs_AllocateEmptyObject(dev);
++ if(!theObject)
++ return NULL;
++
++ if(type == YAFFS_OBJECT_TYPE_FILE){
++ tn = yaffs_GetTnode(dev);
++ if(!tn){
++ yaffs_FreeObject(theObject);
++ return NULL;
++ }
++ }
++
++
++
++ if (theObject) {
++ theObject->fake = 0;
++ theObject->renameAllowed = 1;
++ theObject->unlinkAllowed = 1;
++ theObject->objectId = number;
++ yaffs_HashObject(theObject);
++ theObject->variantType = type;
++#ifdef CONFIG_YAFFS_WINCE
++ yfsd_WinFileTimeNow(theObject->win_atime);
++ theObject->win_ctime[0] = theObject->win_mtime[0] =
++ theObject->win_atime[0];
++ theObject->win_ctime[1] = theObject->win_mtime[1] =
++ theObject->win_atime[1];
++
++#else
++
++ theObject->yst_atime = theObject->yst_mtime =
++ theObject->yst_ctime = Y_CURRENT_TIME;
++#endif
++
++#if 0
++ theObject->sum_prev = 12345;
++ theObject->sum_trailer = 6789;
++#endif
++
++ switch (type) {
++ case YAFFS_OBJECT_TYPE_FILE:
++ theObject->variant.fileVariant.fileSize = 0;
++ theObject->variant.fileVariant.scannedFileSize = 0;
++ theObject->variant.fileVariant.shrinkSize = 0xFFFFFFFF; /* max __u32 */
++ theObject->variant.fileVariant.topLevel = 0;
++ theObject->variant.fileVariant.top = tn;
++ break;
++ case YAFFS_OBJECT_TYPE_DIRECTORY:
++ YINIT_LIST_HEAD(&theObject->variant.directoryVariant.
++ children);
++ break;
++ case YAFFS_OBJECT_TYPE_SYMLINK:
++ case YAFFS_OBJECT_TYPE_HARDLINK:
++ case YAFFS_OBJECT_TYPE_SPECIAL:
++ /* No action required */
++ break;
++ case YAFFS_OBJECT_TYPE_UNKNOWN:
++ /* todo this should not happen */
++ break;
++ }
++ }
++
++ return theObject;
++}
++
++static yaffs_Object *yaffs_FindOrCreateObjectByNumber(yaffs_Device * dev,
++ int number,
++ yaffs_ObjectType type)
++{
++ yaffs_Object *theObject = NULL;
++
++ if (number > 0) {
++ theObject = yaffs_FindObjectByNumber(dev, number);
++ }
++
++ if (!theObject) {
++ theObject = yaffs_CreateNewObject(dev, number, type);
++ }
++
++ return theObject;
++
++}
++
++
++static YCHAR *yaffs_CloneString(const YCHAR * str)
++{
++ YCHAR *newStr = NULL;
++
++ if (str && *str) {
++ newStr = YMALLOC((yaffs_strlen(str) + 1) * sizeof(YCHAR));
++ if(newStr)
++ yaffs_strcpy(newStr, str);
++ }
++
++ return newStr;
++
++}
++
++/*
++ * Mknod (create) a new object.
++ * equivalentObject only has meaning for a hard link;
++ * aliasString only has meaning for a sumlink.
++ * rdev only has meaning for devices (a subset of special objects)
++ */
++
++static yaffs_Object *yaffs_MknodObject(yaffs_ObjectType type,
++ yaffs_Object * parent,
++ const YCHAR * name,
++ __u32 mode,
++ __u32 uid,
++ __u32 gid,
++ yaffs_Object * equivalentObject,
++ const YCHAR * aliasString, __u32 rdev)
++{
++ yaffs_Object *in;
++ YCHAR *str = NULL;
++
++ yaffs_Device *dev = parent->myDev;
++
++ /* Check if the entry exists. If it does then fail the call since we don't want a dup.*/
++ if (yaffs_FindObjectByName(parent, name)) {
++ return NULL;
++ }
++
++ in = yaffs_CreateNewObject(dev, -1, type);
++
++ if(!in)
++ return YAFFS_FAIL;
++
++ if(type == YAFFS_OBJECT_TYPE_SYMLINK){
++ str = yaffs_CloneString(aliasString);
++ if(!str){
++ yaffs_FreeObject(in);
++ return NULL;
++ }
++ }
++
++
++
++ if (in) {
++ in->hdrChunk = 0;
++ in->valid = 1;
++ in->variantType = type;
++
++ in->yst_mode = mode;
++
++#ifdef CONFIG_YAFFS_WINCE
++ yfsd_WinFileTimeNow(in->win_atime);
++ in->win_ctime[0] = in->win_mtime[0] = in->win_atime[0];
++ in->win_ctime[1] = in->win_mtime[1] = in->win_atime[1];
++
++#else
++ in->yst_atime = in->yst_mtime = in->yst_ctime = Y_CURRENT_TIME;
++
++ in->yst_rdev = rdev;
++ in->yst_uid = uid;
++ in->yst_gid = gid;
++#endif
++ in->nDataChunks = 0;
++
++ yaffs_SetObjectName(in, name);
++ in->dirty = 1;
++
++ yaffs_AddObjectToDirectory(parent, in);
++
++ in->myDev = parent->myDev;
++
++ switch (type) {
++ case YAFFS_OBJECT_TYPE_SYMLINK:
++ in->variant.symLinkVariant.alias = str;
++ break;
++ case YAFFS_OBJECT_TYPE_HARDLINK:
++ in->variant.hardLinkVariant.equivalentObject =
++ equivalentObject;
++ in->variant.hardLinkVariant.equivalentObjectId =
++ equivalentObject->objectId;
++ ylist_add(&in->hardLinks, &equivalentObject->hardLinks);
++ break;
++ case YAFFS_OBJECT_TYPE_FILE:
++ case YAFFS_OBJECT_TYPE_DIRECTORY:
++ case YAFFS_OBJECT_TYPE_SPECIAL:
++ case YAFFS_OBJECT_TYPE_UNKNOWN:
++ /* do nothing */
++ break;
++ }
++
++ if (yaffs_UpdateObjectHeader(in, name, 0, 0, 0) < 0) {
++ /* Could not create the object header, fail the creation */
++ yaffs_DestroyObject(in);
++ in = NULL;
++ }
++
++ }
++
++ return in;
++}
++
++yaffs_Object *yaffs_MknodFile(yaffs_Object * parent, const YCHAR * name,
++ __u32 mode, __u32 uid, __u32 gid)
++{
++ return yaffs_MknodObject(YAFFS_OBJECT_TYPE_FILE, parent, name, mode,
++ uid, gid, NULL, NULL, 0);
++}
++
++yaffs_Object *yaffs_MknodDirectory(yaffs_Object * parent, const YCHAR * name,
++ __u32 mode, __u32 uid, __u32 gid)
++{
++ return yaffs_MknodObject(YAFFS_OBJECT_TYPE_DIRECTORY, parent, name,
++ mode, uid, gid, NULL, NULL, 0);
++}
++
++yaffs_Object *yaffs_MknodSpecial(yaffs_Object * parent, const YCHAR * name,
++ __u32 mode, __u32 uid, __u32 gid, __u32 rdev)
++{
++ return yaffs_MknodObject(YAFFS_OBJECT_TYPE_SPECIAL, parent, name, mode,
++ uid, gid, NULL, NULL, rdev);
++}
++
++yaffs_Object *yaffs_MknodSymLink(yaffs_Object * parent, const YCHAR * name,
++ __u32 mode, __u32 uid, __u32 gid,
++ const YCHAR * alias)
++{
++ return yaffs_MknodObject(YAFFS_OBJECT_TYPE_SYMLINK, parent, name, mode,
++ uid, gid, NULL, alias, 0);
++}
++
++/* yaffs_Link returns the object id of the equivalent object.*/
++yaffs_Object *yaffs_Link(yaffs_Object * parent, const YCHAR * name,
++ yaffs_Object * equivalentObject)
++{
++ /* Get the real object in case we were fed a hard link as an equivalent object */
++ equivalentObject = yaffs_GetEquivalentObject(equivalentObject);
++
++ if (yaffs_MknodObject
++ (YAFFS_OBJECT_TYPE_HARDLINK, parent, name, 0, 0, 0,
++ equivalentObject, NULL, 0)) {
++ return equivalentObject;
++ } else {
++ return NULL;
++ }
++
++}
++
++static int yaffs_ChangeObjectName(yaffs_Object * obj, yaffs_Object * newDir,
++ const YCHAR * newName, int force, int shadows)
++{
++ int unlinkOp;
++ int deleteOp;
++
++ yaffs_Object *existingTarget;
++
++ if (newDir == NULL) {
++ newDir = obj->parent; /* use the old directory */
++ }
++
++ if (newDir->variantType != YAFFS_OBJECT_TYPE_DIRECTORY) {
++ T(YAFFS_TRACE_ALWAYS,
++ (TSTR
++ ("tragedy: yaffs_ChangeObjectName: newDir is not a directory"
++ TENDSTR)));
++ YBUG();
++ }
++
++ /* TODO: Do we need this different handling for YAFFS2 and YAFFS1?? */
++ if (obj->myDev->isYaffs2) {
++ unlinkOp = (newDir == obj->myDev->unlinkedDir);
++ } else {
++ unlinkOp = (newDir == obj->myDev->unlinkedDir
++ && obj->variantType == YAFFS_OBJECT_TYPE_FILE);
++ }
++
++ deleteOp = (newDir == obj->myDev->deletedDir);
++
++ existingTarget = yaffs_FindObjectByName(newDir, newName);
++
++ /* If the object is a file going into the unlinked directory,
++ * then it is OK to just stuff it in since duplicate names are allowed.
++ * else only proceed if the new name does not exist and if we're putting
++ * it into a directory.
++ */
++ if ((unlinkOp ||
++ deleteOp ||
++ force ||
++ (shadows > 0) ||
++ !existingTarget) &&
++ newDir->variantType == YAFFS_OBJECT_TYPE_DIRECTORY) {
++ yaffs_SetObjectName(obj, newName);
++ obj->dirty = 1;
++
++ yaffs_AddObjectToDirectory(newDir, obj);
++
++ if (unlinkOp)
++ obj->unlinked = 1;
++
++ /* If it is a deletion then we mark it as a shrink for gc purposes. */
++ if (yaffs_UpdateObjectHeader(obj, newName, 0, deleteOp, shadows)>= 0)
++ return YAFFS_OK;
++ }
++
++ return YAFFS_FAIL;
++}
++
++int yaffs_RenameObject(yaffs_Object * oldDir, const YCHAR * oldName,
++ yaffs_Object * newDir, const YCHAR * newName)
++{
++ yaffs_Object *obj=NULL;
++ yaffs_Object *existingTarget=NULL;
++ int force = 0;
++
++
++ if(!oldDir || oldDir->variantType != YAFFS_OBJECT_TYPE_DIRECTORY)
++ YBUG();
++ if(!newDir || newDir->variantType != YAFFS_OBJECT_TYPE_DIRECTORY)
++ YBUG();
++
++#ifdef CONFIG_YAFFS_CASE_INSENSITIVE
++ /* Special case for case insemsitive systems (eg. WinCE).
++ * While look-up is case insensitive, the name isn't.
++ * Therefore we might want to change x.txt to X.txt
++ */
++ if (oldDir == newDir && yaffs_strcmp(oldName, newName) == 0) {
++ force = 1;
++ }
++#endif
++
++ else if (yaffs_strlen(newName) > YAFFS_MAX_NAME_LENGTH)
++ /* ENAMETOOLONG */
++ return YAFFS_FAIL;
++
++ obj = yaffs_FindObjectByName(oldDir, oldName);
++
++ if (obj && obj->renameAllowed) {
++
++ /* Now do the handling for an existing target, if there is one */
++
++ existingTarget = yaffs_FindObjectByName(newDir, newName);
++ if (existingTarget &&
++ existingTarget->variantType == YAFFS_OBJECT_TYPE_DIRECTORY &&
++ !ylist_empty(&existingTarget->variant.directoryVariant.children)) {
++ /* There is a target that is a non-empty directory, so we fail */
++ return YAFFS_FAIL; /* EEXIST or ENOTEMPTY */
++ } else if (existingTarget && existingTarget != obj) {
++ /* Nuke the target first, using shadowing,
++ * but only if it isn't the same object
++ */
++ yaffs_ChangeObjectName(obj, newDir, newName, force,
++ existingTarget->objectId);
++ yaffs_UnlinkObject(existingTarget);
++ }
++
++ return yaffs_ChangeObjectName(obj, newDir, newName, 1, 0);
++ }
++ return YAFFS_FAIL;
++}
++
++/*------------------------- Block Management and Page Allocation ----------------*/
++
++static int yaffs_InitialiseBlocks(yaffs_Device * dev)
++{
++ int nBlocks = dev->internalEndBlock - dev->internalStartBlock + 1;
++
++ dev->blockInfo = NULL;
++ dev->chunkBits = NULL;
++
++ dev->allocationBlock = -1; /* force it to get a new one */
++
++ /* If the first allocation strategy fails, thry the alternate one */
++ dev->blockInfo = YMALLOC(nBlocks * sizeof(yaffs_BlockInfo));
++ if(!dev->blockInfo){
++ dev->blockInfo = YMALLOC_ALT(nBlocks * sizeof(yaffs_BlockInfo));
++ dev->blockInfoAlt = 1;
++ }
++ else
++ dev->blockInfoAlt = 0;
++
++ if(dev->blockInfo){
++
++ /* Set up dynamic blockinfo stuff. */
++ dev->chunkBitmapStride = (dev->nChunksPerBlock + 7) / 8; /* round up bytes */
++ dev->chunkBits = YMALLOC(dev->chunkBitmapStride * nBlocks);
++ if(!dev->chunkBits){
++ dev->chunkBits = YMALLOC_ALT(dev->chunkBitmapStride * nBlocks);
++ dev->chunkBitsAlt = 1;
++ }
++ else
++ dev->chunkBitsAlt = 0;
++ }
++
++ if (dev->blockInfo && dev->chunkBits) {
++ memset(dev->blockInfo, 0, nBlocks * sizeof(yaffs_BlockInfo));
++ memset(dev->chunkBits, 0, dev->chunkBitmapStride * nBlocks);
++ return YAFFS_OK;
++ }
++
++ return YAFFS_FAIL;
++
++}
++
++static void yaffs_DeinitialiseBlocks(yaffs_Device * dev)
++{
++ if(dev->blockInfoAlt && dev->blockInfo)
++ YFREE_ALT(dev->blockInfo);
++ else if(dev->blockInfo)
++ YFREE(dev->blockInfo);
++
++ dev->blockInfoAlt = 0;
++
++ dev->blockInfo = NULL;
++
++ if(dev->chunkBitsAlt && dev->chunkBits)
++ YFREE_ALT(dev->chunkBits);
++ else if(dev->chunkBits)
++ YFREE(dev->chunkBits);
++ dev->chunkBitsAlt = 0;
++ dev->chunkBits = NULL;
++}
++
++static int yaffs_BlockNotDisqualifiedFromGC(yaffs_Device * dev,
++ yaffs_BlockInfo * bi)
++{
++ int i;
++ __u32 seq;
++ yaffs_BlockInfo *b;
++
++ if (!dev->isYaffs2)
++ return 1; /* disqualification only applies to yaffs2. */
++
++ if (!bi->hasShrinkHeader)
++ return 1; /* can gc */
++
++ /* Find the oldest dirty sequence number if we don't know it and save it
++ * so we don't have to keep recomputing it.
++ */
++ if (!dev->oldestDirtySequence) {
++ seq = dev->sequenceNumber;
++
++ for (i = dev->internalStartBlock; i <= dev->internalEndBlock;
++ i++) {
++ b = yaffs_GetBlockInfo(dev, i);
++ if (b->blockState == YAFFS_BLOCK_STATE_FULL &&
++ (b->pagesInUse - b->softDeletions) <
++ dev->nChunksPerBlock && b->sequenceNumber < seq) {
++ seq = b->sequenceNumber;
++ }
++ }
++ dev->oldestDirtySequence = seq;
++ }
++
++ /* Can't do gc of this block if there are any blocks older than this one that have
++ * discarded pages.
++ */
++ return (bi->sequenceNumber <= dev->oldestDirtySequence);
++
++}
++
++/* FindDiretiestBlock is used to select the dirtiest block (or close enough)
++ * for garbage collection.
++ */
++
++static int yaffs_FindBlockForGarbageCollection(yaffs_Device * dev,
++ int aggressive)
++{
++
++ int b = dev->currentDirtyChecker;
++
++ int i;
++ int iterations;
++ int dirtiest = -1;
++ int pagesInUse = 0;
++ int prioritised=0;
++ yaffs_BlockInfo *bi;
++ int pendingPrioritisedExist = 0;
++
++ /* First let's see if we need to grab a prioritised block */
++ if(dev->hasPendingPrioritisedGCs){
++ for(i = dev->internalStartBlock; i < dev->internalEndBlock && !prioritised; i++){
++
++ bi = yaffs_GetBlockInfo(dev, i);
++ //yaffs_VerifyBlock(dev,bi,i);
++
++ if(bi->gcPrioritise) {
++ pendingPrioritisedExist = 1;
++ if(bi->blockState == YAFFS_BLOCK_STATE_FULL &&
++ yaffs_BlockNotDisqualifiedFromGC(dev, bi)){
++ pagesInUse = (bi->pagesInUse - bi->softDeletions);
++ dirtiest = i;
++ prioritised = 1;
++ aggressive = 1; /* Fool the non-aggressive skip logiv below */
++ }
++ }
++ }
++
++ if(!pendingPrioritisedExist) /* None found, so we can clear this */
++ dev->hasPendingPrioritisedGCs = 0;
++ }
++
++ /* If we're doing aggressive GC then we are happy to take a less-dirty block, and
++ * search harder.
++ * else (we're doing a leasurely gc), then we only bother to do this if the
++ * block has only a few pages in use.
++ */
++
++ dev->nonAggressiveSkip--;
++
++ if (!aggressive && (dev->nonAggressiveSkip > 0)) {
++ return -1;
++ }
++
++ if(!prioritised)
++ pagesInUse =
++ (aggressive) ? dev->nChunksPerBlock : YAFFS_PASSIVE_GC_CHUNKS + 1;
++
++ if (aggressive) {
++ iterations =
++ dev->internalEndBlock - dev->internalStartBlock + 1;
++ } else {
++ iterations =
++ dev->internalEndBlock - dev->internalStartBlock + 1;
++ iterations = iterations / 16;
++ if (iterations > 200) {
++ iterations = 200;
++ }
++ }
++
++ for (i = 0; i <= iterations && pagesInUse > 0 && !prioritised; i++) {
++ b++;
++ if (b < dev->internalStartBlock || b > dev->internalEndBlock) {
++ b = dev->internalStartBlock;
++ }
++
++ if (b < dev->internalStartBlock || b > dev->internalEndBlock) {
++ T(YAFFS_TRACE_ERROR,
++ (TSTR("**>> Block %d is not valid" TENDSTR), b));
++ YBUG();
++ }
++
++ bi = yaffs_GetBlockInfo(dev, b);
++
++#if 0
++ if (bi->blockState == YAFFS_BLOCK_STATE_CHECKPOINT) {
++ dirtiest = b;
++ pagesInUse = 0;
++ }
++ else
++#endif
++
++ if (bi->blockState == YAFFS_BLOCK_STATE_FULL &&
++ (bi->pagesInUse - bi->softDeletions) < pagesInUse &&
++ yaffs_BlockNotDisqualifiedFromGC(dev, bi)) {
++ dirtiest = b;
++ pagesInUse = (bi->pagesInUse - bi->softDeletions);
++ }
++ }
++
++ dev->currentDirtyChecker = b;
++
++ if (dirtiest > 0) {
++ T(YAFFS_TRACE_GC,
++ (TSTR("GC Selected block %d with %d free, prioritised:%d" TENDSTR), dirtiest,
++ dev->nChunksPerBlock - pagesInUse,prioritised));
++ }
++
++ dev->oldestDirtySequence = 0;
++
++ if (dirtiest > 0) {
++ dev->nonAggressiveSkip = 4;
++ }
++
++ return dirtiest;
++}
++
++static void yaffs_BlockBecameDirty(yaffs_Device * dev, int blockNo)
++{
++ yaffs_BlockInfo *bi = yaffs_GetBlockInfo(dev, blockNo);
++
++ int erasedOk = 0;
++
++ /* If the block is still healthy erase it and mark as clean.
++ * If the block has had a data failure, then retire it.
++ */
++
++ T(YAFFS_TRACE_GC | YAFFS_TRACE_ERASE,
++ (TSTR("yaffs_BlockBecameDirty block %d state %d %s"TENDSTR),
++ blockNo, bi->blockState, (bi->needsRetiring) ? "needs retiring" : ""));
++
++ bi->blockState = YAFFS_BLOCK_STATE_DIRTY;
++
++ if (!bi->needsRetiring) {
++ yaffs_InvalidateCheckpoint(dev);
++ erasedOk = yaffs_EraseBlockInNAND(dev, blockNo);
++ if (!erasedOk) {
++ dev->nErasureFailures++;
++ T(YAFFS_TRACE_ERROR | YAFFS_TRACE_BAD_BLOCKS,
++ (TSTR("**>> Erasure failed %d" TENDSTR), blockNo));
++ }
++ }
++
++ if (erasedOk &&
++ ((yaffs_traceMask & YAFFS_TRACE_ERASE) || !yaffs_SkipVerification(dev))) {
++ int i;
++ for (i = 0; i < dev->nChunksPerBlock; i++) {
++ if (!yaffs_CheckChunkErased
++ (dev, blockNo * dev->nChunksPerBlock + i)) {
++ T(YAFFS_TRACE_ERROR,
++ (TSTR
++ (">>Block %d erasure supposedly OK, but chunk %d not erased"
++ TENDSTR), blockNo, i));
++ }
++ }
++ }
++
++ if (erasedOk) {
++ /* Clean it up... */
++ bi->blockState = YAFFS_BLOCK_STATE_EMPTY;
++ dev->nErasedBlocks++;
++ bi->pagesInUse = 0;
++ bi->softDeletions = 0;
++ bi->hasShrinkHeader = 0;
++ bi->skipErasedCheck = 1; /* This is clean, so no need to check */
++ bi->gcPrioritise = 0;
++ yaffs_ClearChunkBits(dev, blockNo);
++
++ T(YAFFS_TRACE_ERASE,
++ (TSTR("Erased block %d" TENDSTR), blockNo));
++ } else {
++ dev->nFreeChunks -= dev->nChunksPerBlock; /* We lost a block of free space */
++
++ yaffs_RetireBlock(dev, blockNo);
++ T(YAFFS_TRACE_ERROR | YAFFS_TRACE_BAD_BLOCKS,
++ (TSTR("**>> Block %d retired" TENDSTR), blockNo));
++ }
++}
++
++static int yaffs_FindBlockForAllocation(yaffs_Device * dev)
++{
++ int i;
++
++ yaffs_BlockInfo *bi;
++
++ if (dev->nErasedBlocks < 1) {
++ /* Hoosterman we've got a problem.
++ * Can't get space to gc
++ */
++ T(YAFFS_TRACE_ERROR,
++ (TSTR("yaffs tragedy: no more erased blocks" TENDSTR)));
++
++ return -1;
++ }
++
++ /* Find an empty block. */
++
++ for (i = dev->internalStartBlock; i <= dev->internalEndBlock; i++) {
++ dev->allocationBlockFinder++;
++ if (dev->allocationBlockFinder < dev->internalStartBlock
++ || dev->allocationBlockFinder > dev->internalEndBlock) {
++ dev->allocationBlockFinder = dev->internalStartBlock;
++ }
++
++ bi = yaffs_GetBlockInfo(dev, dev->allocationBlockFinder);
++
++ if (bi->blockState == YAFFS_BLOCK_STATE_EMPTY) {
++ bi->blockState = YAFFS_BLOCK_STATE_ALLOCATING;
++ dev->sequenceNumber++;
++ bi->sequenceNumber = dev->sequenceNumber;
++ dev->nErasedBlocks--;
++ T(YAFFS_TRACE_ALLOCATE,
++ (TSTR("Allocated block %d, seq %d, %d left" TENDSTR),
++ dev->allocationBlockFinder, dev->sequenceNumber,
++ dev->nErasedBlocks));
++ return dev->allocationBlockFinder;
++ }
++ }
++
++ T(YAFFS_TRACE_ALWAYS,
++ (TSTR
++ ("yaffs tragedy: no more erased blocks, but there should have been %d"
++ TENDSTR), dev->nErasedBlocks));
++
++ return -1;
++}
++
++
++
++static int yaffs_CalcCheckpointBlocksRequired(yaffs_Device *dev)
++{
++ if(!dev->nCheckpointBlocksRequired &&
++ dev->isYaffs2){
++ /* Not a valid value so recalculate */
++ int nBytes = 0;
++ int nBlocks;
++ int devBlocks = (dev->endBlock - dev->startBlock + 1);
++ int tnodeSize;
++
++ tnodeSize = (dev->tnodeWidth * YAFFS_NTNODES_LEVEL0)/8;
++
++ if(tnodeSize < sizeof(yaffs_Tnode))
++ tnodeSize = sizeof(yaffs_Tnode);
++
++ nBytes += sizeof(yaffs_CheckpointValidity);
++ nBytes += sizeof(yaffs_CheckpointDevice);
++ nBytes += devBlocks * sizeof(yaffs_BlockInfo);
++ nBytes += devBlocks * dev->chunkBitmapStride;
++ nBytes += (sizeof(yaffs_CheckpointObject) + sizeof(__u32)) * (dev->nObjectsCreated - dev->nFreeObjects);
++ nBytes += (tnodeSize + sizeof(__u32)) * (dev->nTnodesCreated - dev->nFreeTnodes);
++ nBytes += sizeof(yaffs_CheckpointValidity);
++ nBytes += sizeof(__u32); /* checksum*/
++
++ /* Round up and add 2 blocks to allow for some bad blocks, so add 3 */
++
++ nBlocks = (nBytes/(dev->nDataBytesPerChunk * dev->nChunksPerBlock)) + 3;
++
++ dev->nCheckpointBlocksRequired = nBlocks;
++ }
++
++ return dev->nCheckpointBlocksRequired;
++}
++
++// Check if there's space to allocate...
++// Thinks.... do we need top make this ths same as yaffs_GetFreeChunks()?
++static int yaffs_CheckSpaceForAllocation(yaffs_Device * dev)
++{
++ int reservedChunks;
++ int reservedBlocks = dev->nReservedBlocks;
++ int checkpointBlocks;
++
++ if(dev->isYaffs2){
++ checkpointBlocks = yaffs_CalcCheckpointBlocksRequired(dev) -
++ dev->blocksInCheckpoint;
++ if(checkpointBlocks < 0)
++ checkpointBlocks = 0;
++ } else {
++ checkpointBlocks =0;
++ }
++
++ reservedChunks = ((reservedBlocks + checkpointBlocks) * dev->nChunksPerBlock);
++
++ return (dev->nFreeChunks > reservedChunks);
++}
++
++static int yaffs_AllocateChunk(yaffs_Device * dev, int useReserve, yaffs_BlockInfo **blockUsedPtr)
++{
++ int retVal;
++ yaffs_BlockInfo *bi;
++
++ if (dev->allocationBlock < 0) {
++ /* Get next block to allocate off */
++ dev->allocationBlock = yaffs_FindBlockForAllocation(dev);
++ dev->allocationPage = 0;
++ }
++
++ if (!useReserve && !yaffs_CheckSpaceForAllocation(dev)) {
++ /* Not enough space to allocate unless we're allowed to use the reserve. */
++ return -1;
++ }
++
++ if (dev->nErasedBlocks < dev->nReservedBlocks
++ && dev->allocationPage == 0) {
++ T(YAFFS_TRACE_ALLOCATE, (TSTR("Allocating reserve" TENDSTR)));
++ }
++
++ /* Next page please.... */
++ if (dev->allocationBlock >= 0) {
++ bi = yaffs_GetBlockInfo(dev, dev->allocationBlock);
++
++ retVal = (dev->allocationBlock * dev->nChunksPerBlock) +
++ dev->allocationPage;
++ bi->pagesInUse++;
++ yaffs_SetChunkBit(dev, dev->allocationBlock,
++ dev->allocationPage);
++
++ dev->allocationPage++;
++
++ dev->nFreeChunks--;
++
++ /* If the block is full set the state to full */
++ if (dev->allocationPage >= dev->nChunksPerBlock) {
++ bi->blockState = YAFFS_BLOCK_STATE_FULL;
++ dev->allocationBlock = -1;
++ }
++
++ if(blockUsedPtr)
++ *blockUsedPtr = bi;
++
++ return retVal;
++ }
++
++ T(YAFFS_TRACE_ERROR,
++ (TSTR("!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!" TENDSTR)));
++
++ return -1;
++}
++
++static int yaffs_GetErasedChunks(yaffs_Device * dev)
++{
++ int n;
++
++ n = dev->nErasedBlocks * dev->nChunksPerBlock;
++
++ if (dev->allocationBlock > 0) {
++ n += (dev->nChunksPerBlock - dev->allocationPage);
++ }
++
++ return n;
++
++}
++
++static int yaffs_GarbageCollectBlock(yaffs_Device * dev, int block, int wholeBlock)
++{
++ int oldChunk;
++ int newChunk;
++ int markNAND;
++ int retVal = YAFFS_OK;
++ int cleanups = 0;
++ int i;
++ int isCheckpointBlock;
++ int matchingChunk;
++ int maxCopies;
++
++ int chunksBefore = yaffs_GetErasedChunks(dev);
++ int chunksAfter;
++
++ yaffs_ExtendedTags tags;
++
++ yaffs_BlockInfo *bi = yaffs_GetBlockInfo(dev, block);
++
++ yaffs_Object *object;
++
++ isCheckpointBlock = (bi->blockState == YAFFS_BLOCK_STATE_CHECKPOINT);
++
++ bi->blockState = YAFFS_BLOCK_STATE_COLLECTING;
++
++ T(YAFFS_TRACE_TRACING,
++ (TSTR("Collecting block %d, in use %d, shrink %d, wholeBlock %d" TENDSTR),
++ block,
++ bi->pagesInUse,
++ bi->hasShrinkHeader,
++ wholeBlock));
++
++ /*yaffs_VerifyFreeChunks(dev); */
++
++ bi->hasShrinkHeader = 0; /* clear the flag so that the block can erase */
++
++ /* Take off the number of soft deleted entries because
++ * they're going to get really deleted during GC.
++ */
++ dev->nFreeChunks -= bi->softDeletions;
++
++ dev->isDoingGC = 1;
++
++ if (isCheckpointBlock ||
++ !yaffs_StillSomeChunkBits(dev, block)) {
++ T(YAFFS_TRACE_TRACING,
++ (TSTR
++ ("Collecting block %d that has no chunks in use" TENDSTR),
++ block));
++ yaffs_BlockBecameDirty(dev, block);
++ } else {
++
++ __u8 *buffer = yaffs_GetTempBuffer(dev, __LINE__);
++
++ yaffs_VerifyBlock(dev,bi,block);
++
++ maxCopies = (wholeBlock) ? dev->nChunksPerBlock : 10;
++ oldChunk = block * dev->nChunksPerBlock + dev->gcChunk;
++
++ for ( /* init already done */;
++ retVal == YAFFS_OK &&
++ dev->gcChunk < dev->nChunksPerBlock &&
++ (bi->blockState == YAFFS_BLOCK_STATE_COLLECTING)&&
++ maxCopies > 0;
++ dev->gcChunk++, oldChunk++) {
++ if (yaffs_CheckChunkBit(dev, block, dev->gcChunk)) {
++
++ /* This page is in use and might need to be copied off */
++
++ maxCopies--;
++
++ markNAND = 1;
++
++ yaffs_InitialiseTags(&tags);
++
++ yaffs_ReadChunkWithTagsFromNAND(dev, oldChunk,
++ buffer, &tags);
++
++ object =
++ yaffs_FindObjectByNumber(dev,
++ tags.objectId);
++
++ T(YAFFS_TRACE_GC_DETAIL,
++ (TSTR
++ ("Collecting chunk in block %d, %d %d %d " TENDSTR),
++ dev->gcChunk, tags.objectId, tags.chunkId,
++ tags.byteCount));
++
++ if(object && !yaffs_SkipVerification(dev)){
++ if(tags.chunkId == 0)
++ matchingChunk = object->hdrChunk;
++ else if(object->softDeleted)
++ matchingChunk = oldChunk; /* Defeat the test */
++ else
++ matchingChunk = yaffs_FindChunkInFile(object,tags.chunkId,NULL);
++
++ if(oldChunk != matchingChunk)
++ T(YAFFS_TRACE_ERROR,
++ (TSTR("gc: page in gc mismatch: %d %d %d %d"TENDSTR),
++ oldChunk,matchingChunk,tags.objectId, tags.chunkId));
++
++ }
++
++ if (!object) {
++ T(YAFFS_TRACE_ERROR,
++ (TSTR
++ ("page %d in gc has no object: %d %d %d "
++ TENDSTR), oldChunk,
++ tags.objectId, tags.chunkId, tags.byteCount));
++ }
++
++ if (object &&
++ object->deleted &&
++ object->softDeleted &&
++ tags.chunkId != 0) {
++ /* Data chunk in a soft deleted file, throw it away
++ * It's a soft deleted data chunk,
++ * No need to copy this, just forget about it and
++ * fix up the object.
++ */
++
++ object->nDataChunks--;
++
++ if (object->nDataChunks <= 0) {
++ /* remeber to clean up the object */
++ dev->gcCleanupList[cleanups] =
++ tags.objectId;
++ cleanups++;
++ }
++ markNAND = 0;
++ } else if (0
++ /* Todo object && object->deleted && object->nDataChunks == 0 */
++ ) {
++ /* Deleted object header with no data chunks.
++ * Can be discarded and the file deleted.
++ */
++ object->hdrChunk = 0;
++ yaffs_FreeTnode(object->myDev,
++ object->variant.
++ fileVariant.top);
++ object->variant.fileVariant.top = NULL;
++ yaffs_DoGenericObjectDeletion(object);
++
++ } else if (object) {
++ /* It's either a data chunk in a live file or
++ * an ObjectHeader, so we're interested in it.
++ * NB Need to keep the ObjectHeaders of deleted files
++ * until the whole file has been deleted off
++ */
++ tags.serialNumber++;
++
++ dev->nGCCopies++;
++
++ if (tags.chunkId == 0) {
++ /* It is an object Id,
++ * We need to nuke the shrinkheader flags first
++ * We no longer want the shrinkHeader flag since its work is done
++ * and if it is left in place it will mess up scanning.
++ * Also, clear out any shadowing stuff
++ */
++
++ yaffs_ObjectHeader *oh;
++ oh = (yaffs_ObjectHeader *)buffer;
++ oh->isShrink = 0;
++ tags.extraShadows = 0;
++ tags.extraIsShrinkHeader = 0;
++
++ yaffs_VerifyObjectHeader(object,oh,&tags,1);
++ }
++
++ newChunk =
++ yaffs_WriteNewChunkWithTagsToNAND(dev, buffer, &tags, 1);
++
++ if (newChunk < 0) {
++ retVal = YAFFS_FAIL;
++ } else {
++
++ /* Ok, now fix up the Tnodes etc. */
++
++ if (tags.chunkId == 0) {
++ /* It's a header */
++ object->hdrChunk = newChunk;
++ object->serial = tags.serialNumber;
++ } else {
++ /* It's a data chunk */
++ yaffs_PutChunkIntoFile
++ (object,
++ tags.chunkId,
++ newChunk, 0);
++ }
++ }
++ }
++
++ if(retVal == YAFFS_OK)
++ yaffs_DeleteChunk(dev, oldChunk, markNAND, __LINE__);
++
++ }
++ }
++
++ yaffs_ReleaseTempBuffer(dev, buffer, __LINE__);
++
++
++
++ /* Do any required cleanups */
++ for (i = 0; i < cleanups; i++) {
++ /* Time to delete the file too */
++ object =
++ yaffs_FindObjectByNumber(dev,
++ dev->gcCleanupList[i]);
++ if (object) {
++ yaffs_FreeTnode(dev,
++ object->variant.fileVariant.
++ top);
++ object->variant.fileVariant.top = NULL;
++ T(YAFFS_TRACE_GC,
++ (TSTR
++ ("yaffs: About to finally delete object %d"
++ TENDSTR), object->objectId));
++ yaffs_DoGenericObjectDeletion(object);
++ object->myDev->nDeletedFiles--;
++ }
++
++ }
++
++ }
++
++ yaffs_VerifyCollectedBlock(dev,bi,block);
++
++ if (chunksBefore >= (chunksAfter = yaffs_GetErasedChunks(dev))) {
++ T(YAFFS_TRACE_GC,
++ (TSTR
++ ("gc did not increase free chunks before %d after %d"
++ TENDSTR), chunksBefore, chunksAfter));
++ }
++
++ /* If the gc completed then clear the current gcBlock so that we find another. */
++ if(bi->blockState != YAFFS_BLOCK_STATE_COLLECTING){
++ dev->gcBlock = -1;
++ dev->gcChunk = 0;
++ }
++
++ dev->isDoingGC = 0;
++
++ return retVal;
++}
++
++/* New garbage collector
++ * If we're very low on erased blocks then we do aggressive garbage collection
++ * otherwise we do "leasurely" garbage collection.
++ * Aggressive gc looks further (whole array) and will accept less dirty blocks.
++ * Passive gc only inspects smaller areas and will only accept more dirty blocks.
++ *
++ * The idea is to help clear out space in a more spread-out manner.
++ * Dunno if it really does anything useful.
++ */
++static int yaffs_CheckGarbageCollection(yaffs_Device * dev)
++{
++ int block;
++ int aggressive;
++ int gcOk = YAFFS_OK;
++ int maxTries = 0;
++
++ int checkpointBlockAdjust;
++
++ if (dev->isDoingGC) {
++ /* Bail out so we don't get recursive gc */
++ return YAFFS_OK;
++ }
++
++ /* This loop should pass the first time.
++ * We'll only see looping here if the erase of the collected block fails.
++ */
++
++ do {
++ maxTries++;
++
++ checkpointBlockAdjust = yaffs_CalcCheckpointBlocksRequired(dev) - dev->blocksInCheckpoint;
++ if(checkpointBlockAdjust < 0)
++ checkpointBlockAdjust = 0;
++
++ if (dev->nErasedBlocks < (dev->nReservedBlocks + checkpointBlockAdjust + 2)) {
++ /* We need a block soon...*/
++ aggressive = 1;
++ } else {
++ /* We're in no hurry */
++ aggressive = 0;
++ }
++
++ if(dev->gcBlock <= 0){
++ dev->gcBlock = yaffs_FindBlockForGarbageCollection(dev, aggressive);
++ dev->gcChunk = 0;
++ }
++
++ block = dev->gcBlock;
++
++ if (block > 0) {
++ dev->garbageCollections++;
++ if (!aggressive) {
++ dev->passiveGarbageCollections++;
++ }
++
++ T(YAFFS_TRACE_GC,
++ (TSTR
++ ("yaffs: GC erasedBlocks %d aggressive %d" TENDSTR),
++ dev->nErasedBlocks, aggressive));
++
++ gcOk = yaffs_GarbageCollectBlock(dev,block,aggressive);
++ }
++
++ if (dev->nErasedBlocks < (dev->nReservedBlocks) && block > 0) {
++ T(YAFFS_TRACE_GC,
++ (TSTR
++ ("yaffs: GC !!!no reclaim!!! erasedBlocks %d after try %d block %d"
++ TENDSTR), dev->nErasedBlocks, maxTries, block));
++ }
++ } while ((dev->nErasedBlocks < dev->nReservedBlocks) &&
++ (block > 0) &&
++ (maxTries < 2));
++
++ return aggressive ? gcOk : YAFFS_OK;
++}
++
++/*------------------------- TAGS --------------------------------*/
++
++static int yaffs_TagsMatch(const yaffs_ExtendedTags * tags, int objectId,
++ int chunkInObject)
++{
++ return (tags->chunkId == chunkInObject &&
++ tags->objectId == objectId && !tags->chunkDeleted) ? 1 : 0;
++
++}
++
++
++/*-------------------- Data file manipulation -----------------*/
++
++static int yaffs_FindChunkInFile(yaffs_Object * in, int chunkInInode,
++ yaffs_ExtendedTags * tags)
++{
++ /*Get the Tnode, then get the level 0 offset chunk offset */
++ yaffs_Tnode *tn;
++ int theChunk = -1;
++ yaffs_ExtendedTags localTags;
++ int retVal = -1;
++
++ yaffs_Device *dev = in->myDev;
++
++ if (!tags) {
++ /* Passed a NULL, so use our own tags space */
++ tags = &localTags;
++ }
++
++ tn = yaffs_FindLevel0Tnode(dev, &in->variant.fileVariant, chunkInInode);
++
++ if (tn) {
++ theChunk = yaffs_GetChunkGroupBase(dev,tn,chunkInInode);
++
++ retVal =
++ yaffs_FindChunkInGroup(dev, theChunk, tags, in->objectId,
++ chunkInInode);
++ }
++ return retVal;
++}
++
++static int yaffs_FindAndDeleteChunkInFile(yaffs_Object * in, int chunkInInode,
++ yaffs_ExtendedTags * tags)
++{
++ /* Get the Tnode, then get the level 0 offset chunk offset */
++ yaffs_Tnode *tn;
++ int theChunk = -1;
++ yaffs_ExtendedTags localTags;
++
++ yaffs_Device *dev = in->myDev;
++ int retVal = -1;
++
++ if (!tags) {
++ /* Passed a NULL, so use our own tags space */
++ tags = &localTags;
++ }
++
++ tn = yaffs_FindLevel0Tnode(dev, &in->variant.fileVariant, chunkInInode);
++
++ if (tn) {
++
++ theChunk = yaffs_GetChunkGroupBase(dev,tn,chunkInInode);
++
++ retVal =
++ yaffs_FindChunkInGroup(dev, theChunk, tags, in->objectId,
++ chunkInInode);
++
++ /* Delete the entry in the filestructure (if found) */
++ if (retVal != -1) {
++ yaffs_PutLevel0Tnode(dev,tn,chunkInInode,0);
++ }
++ } else {
++ /*T(("No level 0 found for %d\n", chunkInInode)); */
++ }
++
++ if (retVal == -1) {
++ /* T(("Could not find %d to delete\n",chunkInInode)); */
++ }
++ return retVal;
++}
++
++#ifdef YAFFS_PARANOID
++
++static int yaffs_CheckFileSanity(yaffs_Object * in)
++{
++ int chunk;
++ int nChunks;
++ int fSize;
++ int failed = 0;
++ int objId;
++ yaffs_Tnode *tn;
++ yaffs_Tags localTags;
++ yaffs_Tags *tags = &localTags;
++ int theChunk;
++ int chunkDeleted;
++
++ if (in->variantType != YAFFS_OBJECT_TYPE_FILE) {
++ /* T(("Object not a file\n")); */
++ return YAFFS_FAIL;
++ }
++
++ objId = in->objectId;
++ fSize = in->variant.fileVariant.fileSize;
++ nChunks =
++ (fSize + in->myDev->nDataBytesPerChunk - 1) / in->myDev->nDataBytesPerChunk;
++
++ for (chunk = 1; chunk <= nChunks; chunk++) {
++ tn = yaffs_FindLevel0Tnode(in->myDev, &in->variant.fileVariant,
++ chunk);
++
++ if (tn) {
++
++ theChunk = yaffs_GetChunkGroupBase(dev,tn,chunk);
++
++ if (yaffs_CheckChunkBits
++ (dev, theChunk / dev->nChunksPerBlock,
++ theChunk % dev->nChunksPerBlock)) {
++
++ yaffs_ReadChunkTagsFromNAND(in->myDev, theChunk,
++ tags,
++ &chunkDeleted);
++ if (yaffs_TagsMatch
++ (tags, in->objectId, chunk, chunkDeleted)) {
++ /* found it; */
++
++ }
++ } else {
++
++ failed = 1;
++ }
++
++ } else {
++ /* T(("No level 0 found for %d\n", chunk)); */
++ }
++ }
++
++ return failed ? YAFFS_FAIL : YAFFS_OK;
++}
++
++#endif
++
++static int yaffs_PutChunkIntoFile(yaffs_Object * in, int chunkInInode,
++ int chunkInNAND, int inScan)
++{
++ /* NB inScan is zero unless scanning.
++ * For forward scanning, inScan is > 0;
++ * for backward scanning inScan is < 0
++ */
++
++ yaffs_Tnode *tn;
++ yaffs_Device *dev = in->myDev;
++ int existingChunk;
++ yaffs_ExtendedTags existingTags;
++ yaffs_ExtendedTags newTags;
++ unsigned existingSerial, newSerial;
++
++ if (in->variantType != YAFFS_OBJECT_TYPE_FILE) {
++ /* Just ignore an attempt at putting a chunk into a non-file during scanning
++ * If it is not during Scanning then something went wrong!
++ */
++ if (!inScan) {
++ T(YAFFS_TRACE_ERROR,
++ (TSTR
++ ("yaffs tragedy:attempt to put data chunk into a non-file"
++ TENDSTR)));
++ YBUG();
++ }
++
++ yaffs_DeleteChunk(dev, chunkInNAND, 1, __LINE__);
++ return YAFFS_OK;
++ }
++
++ tn = yaffs_AddOrFindLevel0Tnode(dev,
++ &in->variant.fileVariant,
++ chunkInInode,
++ NULL);
++ if (!tn) {
++ return YAFFS_FAIL;
++ }
++
++ existingChunk = yaffs_GetChunkGroupBase(dev,tn,chunkInInode);
++
++ if (inScan != 0) {
++ /* If we're scanning then we need to test for duplicates
++ * NB This does not need to be efficient since it should only ever
++ * happen when the power fails during a write, then only one
++ * chunk should ever be affected.
++ *
++ * Correction for YAFFS2: This could happen quite a lot and we need to think about efficiency! TODO
++ * Update: For backward scanning we don't need to re-read tags so this is quite cheap.
++ */
++
++ if (existingChunk > 0) {
++ /* NB Right now existing chunk will not be real chunkId if the device >= 32MB
++ * thus we have to do a FindChunkInFile to get the real chunk id.
++ *
++ * We have a duplicate now we need to decide which one to use:
++ *
++ * Backwards scanning YAFFS2: The old one is what we use, dump the new one.
++ * Forward scanning YAFFS2: The new one is what we use, dump the old one.
++ * YAFFS1: Get both sets of tags and compare serial numbers.
++ */
++
++ if (inScan > 0) {
++ /* Only do this for forward scanning */
++ yaffs_ReadChunkWithTagsFromNAND(dev,
++ chunkInNAND,
++ NULL, &newTags);
++
++ /* Do a proper find */
++ existingChunk =
++ yaffs_FindChunkInFile(in, chunkInInode,
++ &existingTags);
++ }
++
++ if (existingChunk <= 0) {
++ /*Hoosterman - how did this happen? */
++
++ T(YAFFS_TRACE_ERROR,
++ (TSTR
++ ("yaffs tragedy: existing chunk < 0 in scan"
++ TENDSTR)));
++
++ }
++
++ /* NB The deleted flags should be false, otherwise the chunks will
++ * not be loaded during a scan
++ */
++
++ if(inScan > 0) {
++ newSerial = newTags.serialNumber;
++ existingSerial = existingTags.serialNumber;
++ }
++
++ if ((inScan > 0) &&
++ (in->myDev->isYaffs2 ||
++ existingChunk <= 0 ||
++ ((existingSerial + 1) & 3) == newSerial)) {
++ /* Forward scanning.
++ * Use new
++ * Delete the old one and drop through to update the tnode
++ */
++ yaffs_DeleteChunk(dev, existingChunk, 1,
++ __LINE__);
++ } else {
++ /* Backward scanning or we want to use the existing one
++ * Use existing.
++ * Delete the new one and return early so that the tnode isn't changed
++ */
++ yaffs_DeleteChunk(dev, chunkInNAND, 1,
++ __LINE__);
++ return YAFFS_OK;
++ }
++ }
++
++ }
++
++ if (existingChunk == 0) {
++ in->nDataChunks++;
++ }
++
++ yaffs_PutLevel0Tnode(dev,tn,chunkInInode,chunkInNAND);
++
++ return YAFFS_OK;
++}
++
++static int yaffs_ReadChunkDataFromObject(yaffs_Object * in, int chunkInInode,
++ __u8 * buffer)
++{
++ int chunkInNAND = yaffs_FindChunkInFile(in, chunkInInode, NULL);
++
++ if (chunkInNAND >= 0) {
++ return yaffs_ReadChunkWithTagsFromNAND(in->myDev, chunkInNAND,
++ buffer,NULL);
++ } else {
++ T(YAFFS_TRACE_NANDACCESS,
++ (TSTR("Chunk %d not found zero instead" TENDSTR),
++ chunkInNAND));
++ /* get sane (zero) data if you read a hole */
++ memset(buffer, 0, in->myDev->nDataBytesPerChunk);
++ return 0;
++ }
++
++}
++
++void yaffs_DeleteChunk(yaffs_Device * dev, int chunkId, int markNAND, int lyn)
++{
++ int block;
++ int page;
++ yaffs_ExtendedTags tags;
++ yaffs_BlockInfo *bi;
++
++ if (chunkId <= 0)
++ return;
++
++
++ dev->nDeletions++;
++ block = chunkId / dev->nChunksPerBlock;
++ page = chunkId % dev->nChunksPerBlock;
++
++
++ if(!yaffs_CheckChunkBit(dev,block,page))
++ T(YAFFS_TRACE_VERIFY,
++ (TSTR("Deleting invalid chunk %d"TENDSTR),
++ chunkId));
++
++ bi = yaffs_GetBlockInfo(dev, block);
++
++ T(YAFFS_TRACE_DELETION,
++ (TSTR("line %d delete of chunk %d" TENDSTR), lyn, chunkId));
++
++ if (markNAND &&
++ bi->blockState != YAFFS_BLOCK_STATE_COLLECTING && !dev->isYaffs2) {
++
++ yaffs_InitialiseTags(&tags);
++
++ tags.chunkDeleted = 1;
++
++ yaffs_WriteChunkWithTagsToNAND(dev, chunkId, NULL, &tags);
++ yaffs_HandleUpdateChunk(dev, chunkId, &tags);
++ } else {
++ dev->nUnmarkedDeletions++;
++ }
++
++ /* Pull out of the management area.
++ * If the whole block became dirty, this will kick off an erasure.
++ */
++ if (bi->blockState == YAFFS_BLOCK_STATE_ALLOCATING ||
++ bi->blockState == YAFFS_BLOCK_STATE_FULL ||
++ bi->blockState == YAFFS_BLOCK_STATE_NEEDS_SCANNING ||
++ bi->blockState == YAFFS_BLOCK_STATE_COLLECTING) {
++ dev->nFreeChunks++;
++
++ yaffs_ClearChunkBit(dev, block, page);
++
++ bi->pagesInUse--;
++
++ if (bi->pagesInUse == 0 &&
++ !bi->hasShrinkHeader &&
++ bi->blockState != YAFFS_BLOCK_STATE_ALLOCATING &&
++ bi->blockState != YAFFS_BLOCK_STATE_NEEDS_SCANNING) {
++ yaffs_BlockBecameDirty(dev, block);
++ }
++
++ } else {
++ /* T(("Bad news deleting chunk %d\n",chunkId)); */
++ }
++
++}
++
++static int yaffs_WriteChunkDataToObject(yaffs_Object * in, int chunkInInode,
++ const __u8 * buffer, int nBytes,
++ int useReserve)
++{
++ /* Find old chunk Need to do this to get serial number
++ * Write new one and patch into tree.
++ * Invalidate old tags.
++ */
++
++ int prevChunkId;
++ yaffs_ExtendedTags prevTags;
++
++ int newChunkId;
++ yaffs_ExtendedTags newTags;
++
++ yaffs_Device *dev = in->myDev;
++
++ yaffs_CheckGarbageCollection(dev);
++
++ /* Get the previous chunk at this location in the file if it exists */
++ prevChunkId = yaffs_FindChunkInFile(in, chunkInInode, &prevTags);
++
++ /* Set up new tags */
++ yaffs_InitialiseTags(&newTags);
++
++ newTags.chunkId = chunkInInode;
++ newTags.objectId = in->objectId;
++ newTags.serialNumber =
++ (prevChunkId >= 0) ? prevTags.serialNumber + 1 : 1;
++ newTags.byteCount = nBytes;
++
++ if(nBytes < 1 || nBytes > dev->totalBytesPerChunk){
++ T(YAFFS_TRACE_ERROR,
++ (TSTR("Writing %d bytes to chunk!!!!!!!!!" TENDSTR), nBytes));
++ while(1){}
++ }
++
++
++
++ newChunkId =
++ yaffs_WriteNewChunkWithTagsToNAND(dev, buffer, &newTags,
++ useReserve);
++
++ if (newChunkId >= 0) {
++ yaffs_PutChunkIntoFile(in, chunkInInode, newChunkId, 0);
++
++ if (prevChunkId >= 0) {
++ yaffs_DeleteChunk(dev, prevChunkId, 1, __LINE__);
++
++ }
++
++ yaffs_CheckFileSanity(in);
++ }
++ return newChunkId;
++
++}
++
++/* UpdateObjectHeader updates the header on NAND for an object.
++ * If name is not NULL, then that new name is used.
++ */
++int yaffs_UpdateObjectHeader(yaffs_Object * in, const YCHAR * name, int force,
++ int isShrink, int shadows)
++{
++
++ yaffs_BlockInfo *bi;
++
++ yaffs_Device *dev = in->myDev;
++
++ int prevChunkId;
++ int retVal = 0;
++ int result = 0;
++
++ int newChunkId;
++ yaffs_ExtendedTags newTags;
++ yaffs_ExtendedTags oldTags;
++
++ __u8 *buffer = NULL;
++ YCHAR oldName[YAFFS_MAX_NAME_LENGTH + 1];
++
++ yaffs_ObjectHeader *oh = NULL;
++
++ yaffs_strcpy(oldName,_Y("silly old name"));
++
++
++ if (!in->fake ||
++ in == dev->rootDir || /* The rootDir should also be saved */
++ force) {
++
++ yaffs_CheckGarbageCollection(dev);
++ yaffs_CheckObjectDetailsLoaded(in);
++
++ buffer = yaffs_GetTempBuffer(in->myDev, __LINE__);
++ oh = (yaffs_ObjectHeader *) buffer;
++
++ prevChunkId = in->hdrChunk;
++
++ if (prevChunkId > 0) {
++ result = yaffs_ReadChunkWithTagsFromNAND(dev, prevChunkId,
++ buffer, &oldTags);
++
++ yaffs_VerifyObjectHeader(in,oh,&oldTags,0);
++
++ memcpy(oldName, oh->name, sizeof(oh->name));
++ }
++
++ memset(buffer, 0xFF, dev->nDataBytesPerChunk);
++
++ oh->type = in->variantType;
++ oh->yst_mode = in->yst_mode;
++ oh->shadowsObject = oh->inbandShadowsObject = shadows;
++
++#ifdef CONFIG_YAFFS_WINCE
++ oh->win_atime[0] = in->win_atime[0];
++ oh->win_ctime[0] = in->win_ctime[0];
++ oh->win_mtime[0] = in->win_mtime[0];
++ oh->win_atime[1] = in->win_atime[1];
++ oh->win_ctime[1] = in->win_ctime[1];
++ oh->win_mtime[1] = in->win_mtime[1];
++#else
++ oh->yst_uid = in->yst_uid;
++ oh->yst_gid = in->yst_gid;
++ oh->yst_atime = in->yst_atime;
++ oh->yst_mtime = in->yst_mtime;
++ oh->yst_ctime = in->yst_ctime;
++ oh->yst_rdev = in->yst_rdev;
++#endif
++ if (in->parent) {
++ oh->parentObjectId = in->parent->objectId;
++ } else {
++ oh->parentObjectId = 0;
++ }
++
++ if (name && *name) {
++ memset(oh->name, 0, sizeof(oh->name));
++ yaffs_strncpy(oh->name, name, YAFFS_MAX_NAME_LENGTH);
++ } else if (prevChunkId>=0) {
++ memcpy(oh->name, oldName, sizeof(oh->name));
++ } else {
++ memset(oh->name, 0, sizeof(oh->name));
++ }
++
++ oh->isShrink = isShrink;
++
++ switch (in->variantType) {
++ case YAFFS_OBJECT_TYPE_UNKNOWN:
++ /* Should not happen */
++ break;
++ case YAFFS_OBJECT_TYPE_FILE:
++ oh->fileSize =
++ (oh->parentObjectId == YAFFS_OBJECTID_DELETED
++ || oh->parentObjectId ==
++ YAFFS_OBJECTID_UNLINKED) ? 0 : in->variant.
++ fileVariant.fileSize;
++ break;
++ case YAFFS_OBJECT_TYPE_HARDLINK:
++ oh->equivalentObjectId =
++ in->variant.hardLinkVariant.equivalentObjectId;
++ break;
++ case YAFFS_OBJECT_TYPE_SPECIAL:
++ /* Do nothing */
++ break;
++ case YAFFS_OBJECT_TYPE_DIRECTORY:
++ /* Do nothing */
++ break;
++ case YAFFS_OBJECT_TYPE_SYMLINK:
++ yaffs_strncpy(oh->alias,
++ in->variant.symLinkVariant.alias,
++ YAFFS_MAX_ALIAS_LENGTH);
++ oh->alias[YAFFS_MAX_ALIAS_LENGTH] = 0;
++ break;
++ }
++
++ /* Tags */
++ yaffs_InitialiseTags(&newTags);
++ in->serial++;
++ newTags.chunkId = 0;
++ newTags.objectId = in->objectId;
++ newTags.serialNumber = in->serial;
++
++ /* Add extra info for file header */
++
++ newTags.extraHeaderInfoAvailable = 1;
++ newTags.extraParentObjectId = oh->parentObjectId;
++ newTags.extraFileLength = oh->fileSize;
++ newTags.extraIsShrinkHeader = oh->isShrink;
++ newTags.extraEquivalentObjectId = oh->equivalentObjectId;
++ newTags.extraShadows = (oh->shadowsObject > 0) ? 1 : 0;
++ newTags.extraObjectType = in->variantType;
++
++ yaffs_VerifyObjectHeader(in,oh,&newTags,1);
++
++ /* Create new chunk in NAND */
++ newChunkId =
++ yaffs_WriteNewChunkWithTagsToNAND(dev, buffer, &newTags,
++ (prevChunkId >= 0) ? 1 : 0);
++
++ if (newChunkId >= 0) {
++
++ in->hdrChunk = newChunkId;
++
++ if (prevChunkId >= 0) {
++ yaffs_DeleteChunk(dev, prevChunkId, 1,
++ __LINE__);
++ }
++
++ if(!yaffs_ObjectHasCachedWriteData(in))
++ in->dirty = 0;
++
++ /* If this was a shrink, then mark the block that the chunk lives on */
++ if (isShrink) {
++ bi = yaffs_GetBlockInfo(in->myDev,
++ newChunkId /in->myDev-> nChunksPerBlock);
++ bi->hasShrinkHeader = 1;
++ }
++
++ }
++
++ retVal = newChunkId;
++
++ }
++
++ if (buffer)
++ yaffs_ReleaseTempBuffer(dev, buffer, __LINE__);
++
++ return retVal;
++}
++
++/*------------------------ Short Operations Cache ----------------------------------------
++ * In many situations where there is no high level buffering (eg WinCE) a lot of
++ * reads might be short sequential reads, and a lot of writes may be short
++ * sequential writes. eg. scanning/writing a jpeg file.
++ * In these cases, a short read/write cache can provide a huge perfomance benefit
++ * with dumb-as-a-rock code.
++ * In Linux, the page cache provides read buffering aand the short op cache provides write
++ * buffering.
++ *
++ * There are a limited number (~10) of cache chunks per device so that we don't
++ * need a very intelligent search.
++ */
++
++static int yaffs_ObjectHasCachedWriteData(yaffs_Object *obj)
++{
++ yaffs_Device *dev = obj->myDev;
++ int i;
++ yaffs_ChunkCache *cache;
++ int nCaches = obj->myDev->nShortOpCaches;
++
++ for(i = 0; i < nCaches; i++){
++ cache = &dev->srCache[i];
++ if (cache->object == obj &&
++ cache->dirty)
++ return 1;
++ }
++
++ return 0;
++}
++
++
++static void yaffs_FlushFilesChunkCache(yaffs_Object * obj)
++{
++ yaffs_Device *dev = obj->myDev;
++ int lowest = -99; /* Stop compiler whining. */
++ int i;
++ yaffs_ChunkCache *cache;
++ int chunkWritten = 0;
++ int nCaches = obj->myDev->nShortOpCaches;
++
++ if (nCaches > 0) {
++ do {
++ cache = NULL;
++
++ /* Find the dirty cache for this object with the lowest chunk id. */
++ for (i = 0; i < nCaches; i++) {
++ if (dev->srCache[i].object == obj &&
++ dev->srCache[i].dirty) {
++ if (!cache
++ || dev->srCache[i].chunkId <
++ lowest) {
++ cache = &dev->srCache[i];
++ lowest = cache->chunkId;
++ }
++ }
++ }
++
++ if (cache && !cache->locked) {
++ /* Write it out and free it up */
++
++ chunkWritten =
++ yaffs_WriteChunkDataToObject(cache->object,
++ cache->chunkId,
++ cache->data,
++ cache->nBytes,
++ 1);
++ cache->dirty = 0;
++ cache->object = NULL;
++ }
++
++ } while (cache && chunkWritten > 0);
++
++ if (cache) {
++ /* Hoosterman, disk full while writing cache out. */
++ T(YAFFS_TRACE_ERROR,
++ (TSTR("yaffs tragedy: no space during cache write" TENDSTR)));
++
++ }
++ }
++
++}
++
++/*yaffs_FlushEntireDeviceCache(dev)
++ *
++ *
++ */
++
++void yaffs_FlushEntireDeviceCache(yaffs_Device *dev)
++{
++ yaffs_Object *obj;
++ int nCaches = dev->nShortOpCaches;
++ int i;
++
++ /* Find a dirty object in the cache and flush it...
++ * until there are no further dirty objects.
++ */
++ do {
++ obj = NULL;
++ for( i = 0; i < nCaches && !obj; i++) {
++ if (dev->srCache[i].object &&
++ dev->srCache[i].dirty)
++ obj = dev->srCache[i].object;
++
++ }
++ if(obj)
++ yaffs_FlushFilesChunkCache(obj);
++
++ } while(obj);
++
++}
++
++
++/* Grab us a cache chunk for use.
++ * First look for an empty one.
++ * Then look for the least recently used non-dirty one.
++ * Then look for the least recently used dirty one...., flush and look again.
++ */
++static yaffs_ChunkCache *yaffs_GrabChunkCacheWorker(yaffs_Device * dev)
++{
++ int i;
++
++ if (dev->nShortOpCaches > 0) {
++ for (i = 0; i < dev->nShortOpCaches; i++) {
++ if (!dev->srCache[i].object)
++ return &dev->srCache[i];
++ }
++ }
++
++ return NULL;
++}
++
++static yaffs_ChunkCache *yaffs_GrabChunkCache(yaffs_Device * dev)
++{
++ yaffs_ChunkCache *cache;
++ yaffs_Object *theObj;
++ int usage;
++ int i;
++ int pushout;
++
++ if (dev->nShortOpCaches > 0) {
++ /* Try find a non-dirty one... */
++
++ cache = yaffs_GrabChunkCacheWorker(dev);
++
++ if (!cache) {
++ /* They were all dirty, find the last recently used object and flush
++ * its cache, then find again.
++ * NB what's here is not very accurate, we actually flush the object
++ * the last recently used page.
++ */
++
++ /* With locking we can't assume we can use entry zero */
++
++ theObj = NULL;
++ usage = -1;
++ cache = NULL;
++ pushout = -1;
++
++ for (i = 0; i < dev->nShortOpCaches; i++) {
++ if (dev->srCache[i].object &&
++ !dev->srCache[i].locked &&
++ (dev->srCache[i].lastUse < usage || !cache))
++ {
++ usage = dev->srCache[i].lastUse;
++ theObj = dev->srCache[i].object;
++ cache = &dev->srCache[i];
++ pushout = i;
++ }
++ }
++
++ if (!cache || cache->dirty) {
++ /* Flush and try again */
++ yaffs_FlushFilesChunkCache(theObj);
++ cache = yaffs_GrabChunkCacheWorker(dev);
++ }
++
++ }
++ return cache;
++ } else
++ return NULL;
++
++}
++
++/* Find a cached chunk */
++static yaffs_ChunkCache *yaffs_FindChunkCache(const yaffs_Object * obj,
++ int chunkId)
++{
++ yaffs_Device *dev = obj->myDev;
++ int i;
++ if (dev->nShortOpCaches > 0) {
++ for (i = 0; i < dev->nShortOpCaches; i++) {
++ if (dev->srCache[i].object == obj &&
++ dev->srCache[i].chunkId == chunkId) {
++ dev->cacheHits++;
++
++ return &dev->srCache[i];
++ }
++ }
++ }
++ return NULL;
++}
++
++/* Mark the chunk for the least recently used algorithym */
++static void yaffs_UseChunkCache(yaffs_Device * dev, yaffs_ChunkCache * cache,
++ int isAWrite)
++{
++
++ if (dev->nShortOpCaches > 0) {
++ if (dev->srLastUse < 0 || dev->srLastUse > 100000000) {
++ /* Reset the cache usages */
++ int i;
++ for (i = 1; i < dev->nShortOpCaches; i++) {
++ dev->srCache[i].lastUse = 0;
++ }
++ dev->srLastUse = 0;
++ }
++
++ dev->srLastUse++;
++
++ cache->lastUse = dev->srLastUse;
++
++ if (isAWrite) {
++ cache->dirty = 1;
++ }
++ }
++}
++
++/* Invalidate a single cache page.
++ * Do this when a whole page gets written,
++ * ie the short cache for this page is no longer valid.
++ */
++static void yaffs_InvalidateChunkCache(yaffs_Object * object, int chunkId)
++{
++ if (object->myDev->nShortOpCaches > 0) {
++ yaffs_ChunkCache *cache = yaffs_FindChunkCache(object, chunkId);
++
++ if (cache) {
++ cache->object = NULL;
++ }
++ }
++}
++
++/* Invalidate all the cache pages associated with this object
++ * Do this whenever ther file is deleted or resized.
++ */
++static void yaffs_InvalidateWholeChunkCache(yaffs_Object * in)
++{
++ int i;
++ yaffs_Device *dev = in->myDev;
++
++ if (dev->nShortOpCaches > 0) {
++ /* Invalidate it. */
++ for (i = 0; i < dev->nShortOpCaches; i++) {
++ if (dev->srCache[i].object == in) {
++ dev->srCache[i].object = NULL;
++ }
++ }
++ }
++}
++
++/*--------------------- Checkpointing --------------------*/
++
++
++static int yaffs_WriteCheckpointValidityMarker(yaffs_Device *dev,int head)
++{
++ yaffs_CheckpointValidity cp;
++
++ memset(&cp,0,sizeof(cp));
++
++ cp.structType = sizeof(cp);
++ cp.magic = YAFFS_MAGIC;
++ cp.version = YAFFS_CHECKPOINT_VERSION;
++ cp.head = (head) ? 1 : 0;
++
++ return (yaffs_CheckpointWrite(dev,&cp,sizeof(cp)) == sizeof(cp))?
++ 1 : 0;
++}
++
++static int yaffs_ReadCheckpointValidityMarker(yaffs_Device *dev, int head)
++{
++ yaffs_CheckpointValidity cp;
++ int ok;
++
++ ok = (yaffs_CheckpointRead(dev,&cp,sizeof(cp)) == sizeof(cp));
++
++ if(ok)
++ ok = (cp.structType == sizeof(cp)) &&
++ (cp.magic == YAFFS_MAGIC) &&
++ (cp.version == YAFFS_CHECKPOINT_VERSION) &&
++ (cp.head == ((head) ? 1 : 0));
++ return ok ? 1 : 0;
++}
++
++static void yaffs_DeviceToCheckpointDevice(yaffs_CheckpointDevice *cp,
++ yaffs_Device *dev)
++{
++ cp->nErasedBlocks = dev->nErasedBlocks;
++ cp->allocationBlock = dev->allocationBlock;
++ cp->allocationPage = dev->allocationPage;
++ cp->nFreeChunks = dev->nFreeChunks;
++
++ cp->nDeletedFiles = dev->nDeletedFiles;
++ cp->nUnlinkedFiles = dev->nUnlinkedFiles;
++ cp->nBackgroundDeletions = dev->nBackgroundDeletions;
++ cp->sequenceNumber = dev->sequenceNumber;
++ cp->oldestDirtySequence = dev->oldestDirtySequence;
++
++}
++
++static void yaffs_CheckpointDeviceToDevice(yaffs_Device *dev,
++ yaffs_CheckpointDevice *cp)
++{
++ dev->nErasedBlocks = cp->nErasedBlocks;
++ dev->allocationBlock = cp->allocationBlock;
++ dev->allocationPage = cp->allocationPage;
++ dev->nFreeChunks = cp->nFreeChunks;
++
++ dev->nDeletedFiles = cp->nDeletedFiles;
++ dev->nUnlinkedFiles = cp->nUnlinkedFiles;
++ dev->nBackgroundDeletions = cp->nBackgroundDeletions;
++ dev->sequenceNumber = cp->sequenceNumber;
++ dev->oldestDirtySequence = cp->oldestDirtySequence;
++}
++
++
++static int yaffs_WriteCheckpointDevice(yaffs_Device *dev)
++{
++ yaffs_CheckpointDevice cp;
++ __u32 nBytes;
++ __u32 nBlocks = (dev->internalEndBlock - dev->internalStartBlock + 1);
++
++ int ok;
++
++ /* Write device runtime values*/
++ yaffs_DeviceToCheckpointDevice(&cp,dev);
++ cp.structType = sizeof(cp);
++
++ ok = (yaffs_CheckpointWrite(dev,&cp,sizeof(cp)) == sizeof(cp));
++
++ /* Write block info */
++ if(ok) {
++ nBytes = nBlocks * sizeof(yaffs_BlockInfo);
++ ok = (yaffs_CheckpointWrite(dev,dev->blockInfo,nBytes) == nBytes);
++ }
++
++ /* Write chunk bits */
++ if(ok) {
++ nBytes = nBlocks * dev->chunkBitmapStride;
++ ok = (yaffs_CheckpointWrite(dev,dev->chunkBits,nBytes) == nBytes);
++ }
++ return ok ? 1 : 0;
++
++}
++
++static int yaffs_ReadCheckpointDevice(yaffs_Device *dev)
++{
++ yaffs_CheckpointDevice cp;
++ __u32 nBytes;
++ __u32 nBlocks = (dev->internalEndBlock - dev->internalStartBlock + 1);
++
++ int ok;
++
++ ok = (yaffs_CheckpointRead(dev,&cp,sizeof(cp)) == sizeof(cp));
++ if(!ok)
++ return 0;
++
++ if(cp.structType != sizeof(cp))
++ return 0;
++
++
++ yaffs_CheckpointDeviceToDevice(dev,&cp);
++
++ nBytes = nBlocks * sizeof(yaffs_BlockInfo);
++
++ ok = (yaffs_CheckpointRead(dev,dev->blockInfo,nBytes) == nBytes);
++
++ if(!ok)
++ return 0;
++ nBytes = nBlocks * dev->chunkBitmapStride;
++
++ ok = (yaffs_CheckpointRead(dev,dev->chunkBits,nBytes) == nBytes);
++
++ return ok ? 1 : 0;
++}
++
++static void yaffs_ObjectToCheckpointObject(yaffs_CheckpointObject *cp,
++ yaffs_Object *obj)
++{
++
++ cp->objectId = obj->objectId;
++ cp->parentId = (obj->parent) ? obj->parent->objectId : 0;
++ cp->hdrChunk = obj->hdrChunk;
++ cp->variantType = obj->variantType;
++ cp->deleted = obj->deleted;
++ cp->softDeleted = obj->softDeleted;
++ cp->unlinked = obj->unlinked;
++ cp->fake = obj->fake;
++ cp->renameAllowed = obj->renameAllowed;
++ cp->unlinkAllowed = obj->unlinkAllowed;
++ cp->serial = obj->serial;
++ cp->nDataChunks = obj->nDataChunks;
++
++ if(obj->variantType == YAFFS_OBJECT_TYPE_FILE)
++ cp->fileSizeOrEquivalentObjectId = obj->variant.fileVariant.fileSize;
++ else if(obj->variantType == YAFFS_OBJECT_TYPE_HARDLINK)
++ cp->fileSizeOrEquivalentObjectId = obj->variant.hardLinkVariant.equivalentObjectId;
++}
++
++static void yaffs_CheckpointObjectToObject( yaffs_Object *obj,yaffs_CheckpointObject *cp)
++{
++
++ yaffs_Object *parent;
++
++ obj->objectId = cp->objectId;
++
++ if(cp->parentId)
++ parent = yaffs_FindOrCreateObjectByNumber(
++ obj->myDev,
++ cp->parentId,
++ YAFFS_OBJECT_TYPE_DIRECTORY);
++ else
++ parent = NULL;
++
++ if(parent)
++ yaffs_AddObjectToDirectory(parent, obj);
++
++ obj->hdrChunk = cp->hdrChunk;
++ obj->variantType = cp->variantType;
++ obj->deleted = cp->deleted;
++ obj->softDeleted = cp->softDeleted;
++ obj->unlinked = cp->unlinked;
++ obj->fake = cp->fake;
++ obj->renameAllowed = cp->renameAllowed;
++ obj->unlinkAllowed = cp->unlinkAllowed;
++ obj->serial = cp->serial;
++ obj->nDataChunks = cp->nDataChunks;
++
++ if(obj->variantType == YAFFS_OBJECT_TYPE_FILE)
++ obj->variant.fileVariant.fileSize = cp->fileSizeOrEquivalentObjectId;
++ else if(obj->variantType == YAFFS_OBJECT_TYPE_HARDLINK)
++ obj->variant.hardLinkVariant.equivalentObjectId = cp->fileSizeOrEquivalentObjectId;
++
++ if(obj->hdrChunk > 0)
++ obj->lazyLoaded = 1;
++}
++
++
++
++static int yaffs_CheckpointTnodeWorker(yaffs_Object * in, yaffs_Tnode * tn,
++ __u32 level, int chunkOffset)
++{
++ int i;
++ yaffs_Device *dev = in->myDev;
++ int ok = 1;
++ int tnodeSize = (dev->tnodeWidth * YAFFS_NTNODES_LEVEL0)/8;
++
++ if(tnodeSize < sizeof(yaffs_Tnode))
++ tnodeSize = sizeof(yaffs_Tnode);
++
++
++ if (tn) {
++ if (level > 0) {
++
++ for (i = 0; i < YAFFS_NTNODES_INTERNAL && ok; i++){
++ if (tn->internal[i]) {
++ ok = yaffs_CheckpointTnodeWorker(in,
++ tn->internal[i],
++ level - 1,
++ (chunkOffset<<YAFFS_TNODES_INTERNAL_BITS) + i);
++ }
++ }
++ } else if (level == 0) {
++ __u32 baseOffset = chunkOffset << YAFFS_TNODES_LEVEL0_BITS;
++ /* printf("write tnode at %d\n",baseOffset); */
++ ok = (yaffs_CheckpointWrite(dev,&baseOffset,sizeof(baseOffset)) == sizeof(baseOffset));
++ if(ok)
++ ok = (yaffs_CheckpointWrite(dev,tn,tnodeSize) == tnodeSize);
++ }
++ }
++
++ return ok;
++
++}
++
++static int yaffs_WriteCheckpointTnodes(yaffs_Object *obj)
++{
++ __u32 endMarker = ~0;
++ int ok = 1;
++
++ if(obj->variantType == YAFFS_OBJECT_TYPE_FILE){
++ ok = yaffs_CheckpointTnodeWorker(obj,
++ obj->variant.fileVariant.top,
++ obj->variant.fileVariant.topLevel,
++ 0);
++ if(ok)
++ ok = (yaffs_CheckpointWrite(obj->myDev,&endMarker,sizeof(endMarker)) ==
++ sizeof(endMarker));
++ }
++
++ return ok ? 1 : 0;
++}
++
++static int yaffs_ReadCheckpointTnodes(yaffs_Object *obj)
++{
++ __u32 baseChunk;
++ int ok = 1;
++ yaffs_Device *dev = obj->myDev;
++ yaffs_FileStructure *fileStructPtr = &obj->variant.fileVariant;
++ yaffs_Tnode *tn;
++ int nread = 0;
++ int tnodeSize = (dev->tnodeWidth * YAFFS_NTNODES_LEVEL0)/8;
++
++ if(tnodeSize < sizeof(yaffs_Tnode))
++ tnodeSize = sizeof(yaffs_Tnode);
++
++ ok = (yaffs_CheckpointRead(dev,&baseChunk,sizeof(baseChunk)) == sizeof(baseChunk));
++
++ while(ok && (~baseChunk)){
++ nread++;
++ /* Read level 0 tnode */
++
++
++ /* printf("read tnode at %d\n",baseChunk); */
++ tn = yaffs_GetTnodeRaw(dev);
++ if(tn)
++ ok = (yaffs_CheckpointRead(dev,tn,tnodeSize) == tnodeSize);
++ else
++ ok = 0;
++
++ if(tn && ok){
++ ok = yaffs_AddOrFindLevel0Tnode(dev,
++ fileStructPtr,
++ baseChunk,
++ tn) ? 1 : 0;
++
++ }
++
++ if(ok)
++ ok = (yaffs_CheckpointRead(dev,&baseChunk,sizeof(baseChunk)) == sizeof(baseChunk));
++
++ }
++
++ T(YAFFS_TRACE_CHECKPOINT,(
++ TSTR("Checkpoint read tnodes %d records, last %d. ok %d" TENDSTR),
++ nread,baseChunk,ok));
++
++ return ok ? 1 : 0;
++}
++
++
++static int yaffs_WriteCheckpointObjects(yaffs_Device *dev)
++{
++ yaffs_Object *obj;
++ yaffs_CheckpointObject cp;
++ int i;
++ int ok = 1;
++ struct ylist_head *lh;
++
++
++ /* Iterate through the objects in each hash entry,
++ * dumping them to the checkpointing stream.
++ */
++
++ for(i = 0; ok && i < YAFFS_NOBJECT_BUCKETS; i++){
++ ylist_for_each(lh, &dev->objectBucket[i].list) {
++ if (lh) {
++ obj = ylist_entry(lh, yaffs_Object, hashLink);
++ if (!obj->deferedFree) {
++ yaffs_ObjectToCheckpointObject(&cp,obj);
++ cp.structType = sizeof(cp);
++
++ T(YAFFS_TRACE_CHECKPOINT,(
++ TSTR("Checkpoint write object %d parent %d type %d chunk %d obj addr %x" TENDSTR),
++ cp.objectId,cp.parentId,cp.variantType,cp.hdrChunk,(unsigned) obj));
++
++ ok = (yaffs_CheckpointWrite(dev,&cp,sizeof(cp)) == sizeof(cp));
++
++ if(ok && obj->variantType == YAFFS_OBJECT_TYPE_FILE){
++ ok = yaffs_WriteCheckpointTnodes(obj);
++ }
++ }
++ }
++ }
++ }
++
++ /* Dump end of list */
++ memset(&cp,0xFF,sizeof(yaffs_CheckpointObject));
++ cp.structType = sizeof(cp);
++
++ if(ok)
++ ok = (yaffs_CheckpointWrite(dev,&cp,sizeof(cp)) == sizeof(cp));
++
++ return ok ? 1 : 0;
++}
++
++static int yaffs_ReadCheckpointObjects(yaffs_Device *dev)
++{
++ yaffs_Object *obj;
++ yaffs_CheckpointObject cp;
++ int ok = 1;
++ int done = 0;
++ yaffs_Object *hardList = NULL;
++
++ while(ok && !done) {
++ ok = (yaffs_CheckpointRead(dev,&cp,sizeof(cp)) == sizeof(cp));
++ if(cp.structType != sizeof(cp)) {
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("struct size %d instead of %d ok %d"TENDSTR),
++ cp.structType,sizeof(cp),ok));
++ ok = 0;
++ }
++
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("Checkpoint read object %d parent %d type %d chunk %d " TENDSTR),
++ cp.objectId,cp.parentId,cp.variantType,cp.hdrChunk));
++
++ if(ok && cp.objectId == ~0)
++ done = 1;
++ else if(ok){
++ obj = yaffs_FindOrCreateObjectByNumber(dev,cp.objectId, cp.variantType);
++ if(obj) {
++ yaffs_CheckpointObjectToObject(obj,&cp);
++ if(obj->variantType == YAFFS_OBJECT_TYPE_FILE) {
++ ok = yaffs_ReadCheckpointTnodes(obj);
++ } else if(obj->variantType == YAFFS_OBJECT_TYPE_HARDLINK) {
++ obj->hardLinks.next =
++ (struct ylist_head *)
++ hardList;
++ hardList = obj;
++ }
++
++ }
++ }
++ }
++
++ if(ok)
++ yaffs_HardlinkFixup(dev,hardList);
++
++ return ok ? 1 : 0;
++}
++
++static int yaffs_WriteCheckpointSum(yaffs_Device *dev)
++{
++ __u32 checkpointSum;
++ int ok;
++
++ yaffs_GetCheckpointSum(dev,&checkpointSum);
++
++ ok = (yaffs_CheckpointWrite(dev,&checkpointSum,sizeof(checkpointSum)) == sizeof(checkpointSum));
++
++ if(!ok)
++ return 0;
++
++ return 1;
++}
++
++static int yaffs_ReadCheckpointSum(yaffs_Device *dev)
++{
++ __u32 checkpointSum0;
++ __u32 checkpointSum1;
++ int ok;
++
++ yaffs_GetCheckpointSum(dev,&checkpointSum0);
++
++ ok = (yaffs_CheckpointRead(dev,&checkpointSum1,sizeof(checkpointSum1)) == sizeof(checkpointSum1));
++
++ if(!ok)
++ return 0;
++
++ if(checkpointSum0 != checkpointSum1)
++ return 0;
++
++ return 1;
++}
++
++
++static int yaffs_WriteCheckpointData(yaffs_Device *dev)
++{
++
++ int ok = 1;
++
++ if(dev->skipCheckpointWrite || !dev->isYaffs2){
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("skipping checkpoint write" TENDSTR)));
++ ok = 0;
++ }
++
++ if(ok)
++ ok = yaffs_CheckpointOpen(dev,1);
++
++ if(ok){
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("write checkpoint validity" TENDSTR)));
++ ok = yaffs_WriteCheckpointValidityMarker(dev,1);
++ }
++ if(ok){
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("write checkpoint device" TENDSTR)));
++ ok = yaffs_WriteCheckpointDevice(dev);
++ }
++ if(ok){
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("write checkpoint objects" TENDSTR)));
++ ok = yaffs_WriteCheckpointObjects(dev);
++ }
++ if(ok){
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("write checkpoint validity" TENDSTR)));
++ ok = yaffs_WriteCheckpointValidityMarker(dev,0);
++ }
++
++ if(ok){
++ ok = yaffs_WriteCheckpointSum(dev);
++ }
++
++
++ if(!yaffs_CheckpointClose(dev))
++ ok = 0;
++
++ if(ok)
++ dev->isCheckpointed = 1;
++ else
++ dev->isCheckpointed = 0;
++
++ return dev->isCheckpointed;
++}
++
++static int yaffs_ReadCheckpointData(yaffs_Device *dev)
++{
++ int ok = 1;
++
++ if(dev->skipCheckpointRead || !dev->isYaffs2){
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("skipping checkpoint read" TENDSTR)));
++ ok = 0;
++ }
++
++ if(ok)
++ ok = yaffs_CheckpointOpen(dev,0); /* open for read */
++
++ if(ok){
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("read checkpoint validity" TENDSTR)));
++ ok = yaffs_ReadCheckpointValidityMarker(dev,1);
++ }
++ if(ok){
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("read checkpoint device" TENDSTR)));
++ ok = yaffs_ReadCheckpointDevice(dev);
++ }
++ if(ok){
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("read checkpoint objects" TENDSTR)));
++ ok = yaffs_ReadCheckpointObjects(dev);
++ }
++ if(ok){
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("read checkpoint validity" TENDSTR)));
++ ok = yaffs_ReadCheckpointValidityMarker(dev,0);
++ }
++
++ if(ok){
++ ok = yaffs_ReadCheckpointSum(dev);
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("read checkpoint checksum %d" TENDSTR),ok));
++ }
++
++ if(!yaffs_CheckpointClose(dev))
++ ok = 0;
++
++ if(ok)
++ dev->isCheckpointed = 1;
++ else
++ dev->isCheckpointed = 0;
++
++ return ok ? 1 : 0;
++
++}
++
++static void yaffs_InvalidateCheckpoint(yaffs_Device *dev)
++{
++ if(dev->isCheckpointed ||
++ dev->blocksInCheckpoint > 0){
++ dev->isCheckpointed = 0;
++ yaffs_CheckpointInvalidateStream(dev);
++ if(dev->superBlock && dev->markSuperBlockDirty)
++ dev->markSuperBlockDirty(dev->superBlock);
++ }
++}
++
++
++int yaffs_CheckpointSave(yaffs_Device *dev)
++{
++
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("save entry: isCheckpointed %d"TENDSTR),dev->isCheckpointed));
++
++ yaffs_VerifyObjects(dev);
++ yaffs_VerifyBlocks(dev);
++ yaffs_VerifyFreeChunks(dev);
++
++ if(!dev->isCheckpointed) {
++ yaffs_InvalidateCheckpoint(dev);
++ yaffs_WriteCheckpointData(dev);
++ }
++
++ T(YAFFS_TRACE_ALWAYS,(TSTR("save exit: isCheckpointed %d"TENDSTR),dev->isCheckpointed));
++
++ return dev->isCheckpointed;
++}
++
++int yaffs_CheckpointRestore(yaffs_Device *dev)
++{
++ int retval;
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("restore entry: isCheckpointed %d"TENDSTR),dev->isCheckpointed));
++
++ retval = yaffs_ReadCheckpointData(dev);
++
++ if(dev->isCheckpointed){
++ yaffs_VerifyObjects(dev);
++ yaffs_VerifyBlocks(dev);
++ yaffs_VerifyFreeChunks(dev);
++ }
++
++ T(YAFFS_TRACE_CHECKPOINT,(TSTR("restore exit: isCheckpointed %d"TENDSTR),dev->isCheckpointed));
++
++ return retval;
++}
++
++/*--------------------- File read/write ------------------------
++ * Read and write have very similar structures.
++ * In general the read/write has three parts to it
++ * An incomplete chunk to start with (if the read/write is not chunk-aligned)
++ * Some complete chunks
++ * An incomplete chunk to end off with
++ *
++ * Curve-balls: the first chunk might also be the last chunk.
++ */
++
++int yaffs_ReadDataFromFile(yaffs_Object * in, __u8 * buffer, loff_t offset,
++ int nBytes)
++{
++
++ int chunk;
++ __u32 start;
++ int nToCopy;
++ int n = nBytes;
++ int nDone = 0;
++ yaffs_ChunkCache *cache;
++
++ yaffs_Device *dev;
++
++ dev = in->myDev;
++
++ while (n > 0) {
++ //chunk = offset / dev->nDataBytesPerChunk + 1;
++ //start = offset % dev->nDataBytesPerChunk;
++ yaffs_AddrToChunk(dev,offset,&chunk,&start);
++ chunk++;
++
++ /* OK now check for the curveball where the start and end are in
++ * the same chunk.
++ */
++ if ((start + n) < dev->nDataBytesPerChunk) {
++ nToCopy = n;
++ } else {
++ nToCopy = dev->nDataBytesPerChunk - start;
++ }
++
++ cache = yaffs_FindChunkCache(in, chunk);
++
++ /* If the chunk is already in the cache or it is less than a whole chunk
++ * or we're using inband tags then use the cache (if there is caching)
++ * else bypass the cache.
++ */
++ if (cache || nToCopy != dev->nDataBytesPerChunk || dev->inbandTags) {
++ if (dev->nShortOpCaches > 0) {
++
++ /* If we can't find the data in the cache, then load it up. */
++
++ if (!cache) {
++ cache = yaffs_GrabChunkCache(in->myDev);
++ cache->object = in;
++ cache->chunkId = chunk;
++ cache->dirty = 0;
++ cache->locked = 0;
++ yaffs_ReadChunkDataFromObject(in, chunk,
++ cache->
++ data);
++ cache->nBytes = 0;
++ }
++
++ yaffs_UseChunkCache(dev, cache, 0);
++
++ cache->locked = 1;
++
++#ifdef CONFIG_YAFFS_WINCE
++ yfsd_UnlockYAFFS(TRUE);
++#endif
++ memcpy(buffer, &cache->data[start], nToCopy);
++
++#ifdef CONFIG_YAFFS_WINCE
++ yfsd_LockYAFFS(TRUE);
++#endif
++ cache->locked = 0;
++ } else {
++ /* Read into the local buffer then copy..*/
++
++ __u8 *localBuffer =
++ yaffs_GetTempBuffer(dev, __LINE__);
++ yaffs_ReadChunkDataFromObject(in, chunk,
++ localBuffer);
++#ifdef CONFIG_YAFFS_WINCE
++ yfsd_UnlockYAFFS(TRUE);
++#endif
++ memcpy(buffer, &localBuffer[start], nToCopy);
++
++#ifdef CONFIG_YAFFS_WINCE
++ yfsd_LockYAFFS(TRUE);
++#endif
++ yaffs_ReleaseTempBuffer(dev, localBuffer,
++ __LINE__);
++ }
++
++ } else {
++#ifdef CONFIG_YAFFS_WINCE
++ __u8 *localBuffer = yaffs_GetTempBuffer(dev, __LINE__);
++
++ /* Under WinCE can't do direct transfer. Need to use a local buffer.
++ * This is because we otherwise screw up WinCE's memory mapper
++ */
++ yaffs_ReadChunkDataFromObject(in, chunk, localBuffer);
++
++#ifdef CONFIG_YAFFS_WINCE
++ yfsd_UnlockYAFFS(TRUE);
++#endif
++ memcpy(buffer, localBuffer, dev->nDataBytesPerChunk);
++
++#ifdef CONFIG_YAFFS_WINCE
++ yfsd_LockYAFFS(TRUE);
++ yaffs_ReleaseTempBuffer(dev, localBuffer, __LINE__);
++#endif
++
++#else
++ /* A full chunk. Read directly into the supplied buffer. */
++ yaffs_ReadChunkDataFromObject(in, chunk, buffer);
++#endif
++ }
++
++ n -= nToCopy;
++ offset += nToCopy;
++ buffer += nToCopy;
++ nDone += nToCopy;
++
++ }
++
++ return nDone;
++}
++
++int yaffs_WriteDataToFile(yaffs_Object * in, const __u8 * buffer, loff_t offset,
++ int nBytes, int writeThrough)
++{
++
++ int chunk;
++ __u32 start;
++ int nToCopy;
++ int n = nBytes;
++ int nDone = 0;
++ int nToWriteBack;
++ int startOfWrite = offset;
++ int chunkWritten = 0;
++ __u32 nBytesRead;
++ __u32 chunkStart;
++
++ yaffs_Device *dev;
++
++ dev = in->myDev;
++
++ while (n > 0 && chunkWritten >= 0) {
++ //chunk = offset / dev->nDataBytesPerChunk + 1;
++ //start = offset % dev->nDataBytesPerChunk;
++ yaffs_AddrToChunk(dev,offset,&chunk,&start);
++
++ if(chunk * dev->nDataBytesPerChunk + start != offset ||
++ start >= dev->nDataBytesPerChunk){
++ T(YAFFS_TRACE_ERROR,(TSTR("AddrToChunk of offset %d gives chunk %d start %d"TENDSTR),
++ (int)offset, chunk,start));
++ }
++ chunk++;
++
++ /* OK now check for the curveball where the start and end are in
++ * the same chunk.
++ */
++
++ if ((start + n) < dev->nDataBytesPerChunk) {
++ nToCopy = n;
++
++ /* Now folks, to calculate how many bytes to write back....
++ * If we're overwriting and not writing to then end of file then
++ * we need to write back as much as was there before.
++ */
++
++ chunkStart = ((chunk - 1) * dev->nDataBytesPerChunk);
++
++ if(chunkStart > in->variant.fileVariant.fileSize)
++ nBytesRead = 0; /* Past end of file */
++ else
++ nBytesRead = in->variant.fileVariant.fileSize - chunkStart;
++
++ if (nBytesRead > dev->nDataBytesPerChunk) {
++ nBytesRead = dev->nDataBytesPerChunk;
++ }
++
++ nToWriteBack =
++ (nBytesRead >
++ (start + n)) ? nBytesRead : (start + n);
++
++ if(nToWriteBack < 0 || nToWriteBack > dev->nDataBytesPerChunk)
++ YBUG();
++
++ } else {
++ nToCopy = dev->nDataBytesPerChunk - start;
++ nToWriteBack = dev->nDataBytesPerChunk;
++ }
++
++ if (nToCopy != dev->nDataBytesPerChunk || dev->inbandTags) {
++ /* An incomplete start or end chunk (or maybe both start and end chunk),
++ * or we're using inband tags, so we want to use the cache buffers.
++ */
++ if (dev->nShortOpCaches > 0) {
++ yaffs_ChunkCache *cache;
++ /* If we can't find the data in the cache, then load the cache */
++ cache = yaffs_FindChunkCache(in, chunk);
++
++ if (!cache
++ && yaffs_CheckSpaceForAllocation(in->
++ myDev)) {
++ cache = yaffs_GrabChunkCache(in->myDev);
++ cache->object = in;
++ cache->chunkId = chunk;
++ cache->dirty = 0;
++ cache->locked = 0;
++ yaffs_ReadChunkDataFromObject(in, chunk,
++ cache->
++ data);
++ }
++ else if(cache &&
++ !cache->dirty &&
++ !yaffs_CheckSpaceForAllocation(in->myDev)){
++ /* Drop the cache if it was a read cache item and
++ * no space check has been made for it.
++ */
++ cache = NULL;
++ }
++
++ if (cache) {
++ yaffs_UseChunkCache(dev, cache, 1);
++ cache->locked = 1;
++#ifdef CONFIG_YAFFS_WINCE
++ yfsd_UnlockYAFFS(TRUE);
++#endif
++
++ memcpy(&cache->data[start], buffer,
++ nToCopy);
++
++#ifdef CONFIG_YAFFS_WINCE
++ yfsd_LockYAFFS(TRUE);
++#endif
++ cache->locked = 0;
++ cache->nBytes = nToWriteBack;
++
++ if (writeThrough) {
++ chunkWritten =
++ yaffs_WriteChunkDataToObject
++ (cache->object,
++ cache->chunkId,
++ cache->data, cache->nBytes,
++ 1);
++ cache->dirty = 0;
++ }
++
++ } else {
++ chunkWritten = -1; /* fail the write */
++ }
++ } else {
++ /* An incomplete start or end chunk (or maybe both start and end chunk)
++ * Read into the local buffer then copy, then copy over and write back.
++ */
++
++ __u8 *localBuffer =
++ yaffs_GetTempBuffer(dev, __LINE__);
++
++ yaffs_ReadChunkDataFromObject(in, chunk,
++ localBuffer);
++
++#ifdef CONFIG_YAFFS_WINCE
++ yfsd_UnlockYAFFS(TRUE);
++#endif
++
++ memcpy(&localBuffer[start], buffer, nToCopy);
++
++#ifdef CONFIG_YAFFS_WINCE
++ yfsd_LockYAFFS(TRUE);
++#endif
++ chunkWritten =
++ yaffs_WriteChunkDataToObject(in, chunk,
++ localBuffer,
++ nToWriteBack,
++ 0);
++
++ yaffs_ReleaseTempBuffer(dev, localBuffer,
++ __LINE__);
++
++ }
++
++ } else {
++ /* A full chunk. Write directly from the supplied buffer. */
++
++#ifdef CONFIG_YAFFS_WINCE
++ /* Under WinCE can't do direct transfer. Need to use a local buffer.
++ * This is because we otherwise screw up WinCE's memory mapper
++ */
++ __u8 *localBuffer = yaffs_GetTempBuffer(dev, __LINE__);
++#ifdef CONFIG_YAFFS_WINCE
++ yfsd_UnlockYAFFS(TRUE);
++#endif
++ memcpy(localBuffer, buffer, dev->nDataBytesPerChunk);
++#ifdef CONFIG_YAFFS_WINCE
++ yfsd_LockYAFFS(TRUE);
++#endif
++ chunkWritten =
++ yaffs_WriteChunkDataToObject(in, chunk, localBuffer,
++ dev->nDataBytesPerChunk,
++ 0);
++ yaffs_ReleaseTempBuffer(dev, localBuffer, __LINE__);
++#else
++
++ chunkWritten =
++ yaffs_WriteChunkDataToObject(in, chunk, buffer,
++ dev->nDataBytesPerChunk,
++ 0);
++#endif
++ /* Since we've overwritten the cached data, we better invalidate it. */
++ yaffs_InvalidateChunkCache(in, chunk);
++ }
++
++ if (chunkWritten >= 0) {
++ n -= nToCopy;
++ offset += nToCopy;
++ buffer += nToCopy;
++ nDone += nToCopy;
++ }
++
++ }
++
++ /* Update file object */
++
++ if ((startOfWrite + nDone) > in->variant.fileVariant.fileSize) {
++ in->variant.fileVariant.fileSize = (startOfWrite + nDone);
++ }
++
++ in->dirty = 1;
++
++ return nDone;
++}
++
++
++/* ---------------------- File resizing stuff ------------------ */
++
++static void yaffs_PruneResizedChunks(yaffs_Object * in, int newSize)
++{
++
++ yaffs_Device *dev = in->myDev;
++ int oldFileSize = in->variant.fileVariant.fileSize;
++
++ int lastDel = 1 + (oldFileSize - 1) / dev->nDataBytesPerChunk;
++
++ int startDel = 1 + (newSize + dev->nDataBytesPerChunk - 1) /
++ dev->nDataBytesPerChunk;
++ int i;
++ int chunkId;
++
++ /* Delete backwards so that we don't end up with holes if
++ * power is lost part-way through the operation.
++ */
++ for (i = lastDel; i >= startDel; i--) {
++ /* NB this could be optimised somewhat,
++ * eg. could retrieve the tags and write them without
++ * using yaffs_DeleteChunk
++ */
++
++ chunkId = yaffs_FindAndDeleteChunkInFile(in, i, NULL);
++ if (chunkId > 0) {
++ if (chunkId <
++ (dev->internalStartBlock * dev->nChunksPerBlock)
++ || chunkId >=
++ ((dev->internalEndBlock +
++ 1) * dev->nChunksPerBlock)) {
++ T(YAFFS_TRACE_ALWAYS,
++ (TSTR("Found daft chunkId %d for %d" TENDSTR),
++ chunkId, i));
++ } else {
++ in->nDataChunks--;
++ yaffs_DeleteChunk(dev, chunkId, 1, __LINE__);
++ }
++ }
++ }
++
++}
++
++int yaffs_ResizeFile(yaffs_Object * in, loff_t newSize)
++{
++
++ int oldFileSize = in->variant.fileVariant.fileSize;
++ __u32 newSizeOfPartialChunk;
++ int newFullChunks;
++
++ yaffs_Device *dev = in->myDev;
++
++ yaffs_AddrToChunk(dev, newSize, &newFullChunks, &newSizeOfPartialChunk);
++
++ yaffs_FlushFilesChunkCache(in);
++ yaffs_InvalidateWholeChunkCache(in);
++
++ yaffs_CheckGarbageCollection(dev);
++
++ if (in->variantType != YAFFS_OBJECT_TYPE_FILE) {
++ return YAFFS_FAIL;
++ }
++
++ if (newSize == oldFileSize) {
++ return YAFFS_OK;
++ }
++
++ if (newSize < oldFileSize) {
++
++ yaffs_PruneResizedChunks(in, newSize);
++
++ if (newSizeOfPartialChunk != 0) {
++ int lastChunk = 1 + newFullChunks;
++
++ __u8 *localBuffer = yaffs_GetTempBuffer(dev, __LINE__);
++
++ /* Got to read and rewrite the last chunk with its new size and zero pad */
++ yaffs_ReadChunkDataFromObject(in, lastChunk,
++ localBuffer);
++
++ memset(localBuffer + newSizeOfPartialChunk, 0,
++ dev->nDataBytesPerChunk - newSizeOfPartialChunk);
++
++ yaffs_WriteChunkDataToObject(in, lastChunk, localBuffer,
++ newSizeOfPartialChunk, 1);
++
++ yaffs_ReleaseTempBuffer(dev, localBuffer, __LINE__);
++ }
++
++ in->variant.fileVariant.fileSize = newSize;
++
++ yaffs_PruneFileStructure(dev, &in->variant.fileVariant);
++ } else {
++ /* newsSize > oldFileSize */
++ in->variant.fileVariant.fileSize = newSize;
++ }
++
++
++
++ /* Write a new object header.
++ * show we've shrunk the file, if need be
++ * Do this only if the file is not in the deleted directories.
++ */
++ if (in->parent &&
++ in->parent->objectId != YAFFS_OBJECTID_UNLINKED &&
++ in->parent->objectId != YAFFS_OBJECTID_DELETED) {
++ yaffs_UpdateObjectHeader(in, NULL, 0,
++ (newSize < oldFileSize) ? 1 : 0, 0);
++ }
++
++ return YAFFS_OK;
++}
++
++loff_t yaffs_GetFileSize(yaffs_Object * obj)
++{
++ obj = yaffs_GetEquivalentObject(obj);
++
++ switch (obj->variantType) {
++ case YAFFS_OBJECT_TYPE_FILE:
++ return obj->variant.fileVariant.fileSize;
++ case YAFFS_OBJECT_TYPE_SYMLINK:
++ return yaffs_strlen(obj->variant.symLinkVariant.alias);
++ default:
++ return 0;
++ }
++}
++
++
++
++int yaffs_FlushFile(yaffs_Object * in, int updateTime)
++{
++ int retVal;
++ if (in->dirty) {
++ yaffs_FlushFilesChunkCache(in);
++ if (updateTime) {
++#ifdef CONFIG_YAFFS_WINCE
++ yfsd_WinFileTimeNow(in->win_mtime);
++#else
++
++ in->yst_mtime = Y_CURRENT_TIME;
++
++#endif
++ }
++
++ retVal =
++ (yaffs_UpdateObjectHeader(in, NULL, 0, 0, 0) >=
++ 0) ? YAFFS_OK : YAFFS_FAIL;
++ } else {
++ retVal = YAFFS_OK;
++ }
++
++ return retVal;
++
++}
++
++static int yaffs_DoGenericObjectDeletion(yaffs_Object * in)
++{
++
++ /* First off, invalidate the file's data in the cache, without flushing. */
++ yaffs_InvalidateWholeChunkCache(in);
++
++ if (in->myDev->isYaffs2 && (in->parent != in->myDev->deletedDir)) {
++ /* Move to the unlinked directory so we have a record that it was deleted. */
++ yaffs_ChangeObjectName(in, in->myDev->deletedDir,_Y("deleted"), 0, 0);
++
++ }
++
++ yaffs_RemoveObjectFromDirectory(in);
++ yaffs_DeleteChunk(in->myDev, in->hdrChunk, 1, __LINE__);
++ in->hdrChunk = 0;
++
++ yaffs_FreeObject(in);
++ return YAFFS_OK;
++
++}
++
++/* yaffs_DeleteFile deletes the whole file data
++ * and the inode associated with the file.
++ * It does not delete the links associated with the file.
++ */
++
++static int yaffs_UnlinkFile(yaffs_Object * in)
++{
++
++ int retVal;
++ int immediateDeletion = 0;
++
++#ifdef __KERNEL__
++ if (!in->myInode) {
++ immediateDeletion = 1;
++ }
++#else
++ if (in->inUse <= 0) {
++ immediateDeletion = 1;
++ }
++#endif
++
++ if (immediateDeletion) {
++ retVal =
++ yaffs_ChangeObjectName(in, in->myDev->deletedDir,
++ _Y("deleted"), 0, 0);
++ T(YAFFS_TRACE_TRACING,
++ (TSTR("yaffs: immediate deletion of file %d" TENDSTR),
++ in->objectId));
++ in->deleted = 1;
++ in->myDev->nDeletedFiles++;
++ if (1 || in->myDev->isYaffs2) {
++ yaffs_ResizeFile(in, 0);
++ }
++ yaffs_SoftDeleteFile(in);
++ } else {
++ retVal =
++ yaffs_ChangeObjectName(in, in->myDev->unlinkedDir,
++ _Y("unlinked"), 0, 0);
++ }
++
++
++ return retVal;
++}
++
++int yaffs_DeleteFile(yaffs_Object * in)
++{
++ int retVal = YAFFS_OK;
++ int deleted = in->deleted;
++
++ yaffs_ResizeFile(in,0);
++
++ if (in->nDataChunks > 0) {
++ /* Use soft deletion if there is data in the file.
++ * That won't be the case if it has been resized to zero.
++ */
++ if (!in->unlinked) {
++ retVal = yaffs_UnlinkFile(in);
++ }
++ if (retVal == YAFFS_OK && in->unlinked && !in->deleted) {
++ in->deleted = deleted = 1;
++ in->myDev->nDeletedFiles++;
++ yaffs_SoftDeleteFile(in);
++ }
++ return deleted ? YAFFS_OK : YAFFS_FAIL;
++ } else {
++ /* The file has no data chunks so we toss it immediately */
++ yaffs_FreeTnode(in->myDev, in->variant.fileVariant.top);
++ in->variant.fileVariant.top = NULL;
++ yaffs_DoGenericObjectDeletion(in);
++
++ return YAFFS_OK;
++ }
++}
++
++static int yaffs_DeleteDirectory(yaffs_Object * in)
++{
++ /* First check that the directory is empty. */
++ if (ylist_empty(&in->variant.directoryVariant.children)) {
++ return yaffs_DoGenericObjectDeletion(in);
++ }
++
++ return YAFFS_FAIL;
++
++}
++
++static int yaffs_DeleteSymLink(yaffs_Object * in)
++{
++ YFREE(in->variant.symLinkVariant.alias);
++
++ return yaffs_DoGenericObjectDeletion(in);
++}
++
++static int yaffs_DeleteHardLink(yaffs_Object * in)
++{
++ /* remove this hardlink from the list assocaited with the equivalent
++ * object
++ */
++ ylist_del_init(&in->hardLinks);
++ return yaffs_DoGenericObjectDeletion(in);
++}
++
++static void yaffs_DestroyObject(yaffs_Object * obj)
++{
++ switch (obj->variantType) {
++ case YAFFS_OBJECT_TYPE_FILE:
++ yaffs_DeleteFile(obj);
++ break;
++ case YAFFS_OBJECT_TYPE_DIRECTORY:
++ yaffs_DeleteDirectory(obj);
++ break;
++ case YAFFS_OBJECT_TYPE_SYMLINK:
++ yaffs_DeleteSymLink(obj);
++ break;
++ case YAFFS_OBJECT_TYPE_HARDLINK:
++ yaffs_DeleteHardLink(obj);
++ break;
++ case YAFFS_OBJECT_TYPE_SPECIAL:
++ yaffs_DoGenericObjectDeletion(obj);
++ break;
++ case YAFFS_OBJECT_TYPE_UNKNOWN:
++ break; /* should not happen. */
++ }
++}
++
++static int yaffs_UnlinkWorker(yaffs_Object * obj)
++{
++
++ if (obj->variantType == YAFFS_OBJECT_TYPE_HARDLINK) {
++ return yaffs_DeleteHardLink(obj);
++ } else if (!ylist_empty(&obj->hardLinks)) {
++ /* Curve ball: We're unlinking an object that has a hardlink.
++ *
++ * This problem arises because we are not strictly following
++ * The Linux link/inode model.
++ *
++ * We can't really delete the object.
++ * Instead, we do the following:
++ * - Select a hardlink.
++ * - Unhook it from the hard links
++ * - Unhook it from its parent directory (so that the rename can work)
++ * - Rename the object to the hardlink's name.
++ * - Delete the hardlink
++ */
++
++ yaffs_Object *hl;
++ int retVal;
++ YCHAR name[YAFFS_MAX_NAME_LENGTH + 1];
++
++ hl = ylist_entry(obj->hardLinks.next, yaffs_Object, hardLinks);
++
++ ylist_del_init(&hl->hardLinks);
++ ylist_del_init(&hl->siblings);
++
++ yaffs_GetObjectName(hl, name, YAFFS_MAX_NAME_LENGTH + 1);
++
++ retVal = yaffs_ChangeObjectName(obj, hl->parent, name, 0, 0);
++
++ if (retVal == YAFFS_OK) {
++ retVal = yaffs_DoGenericObjectDeletion(hl);
++ }
++ return retVal;
++
++ } else {
++ switch (obj->variantType) {
++ case YAFFS_OBJECT_TYPE_FILE:
++ return yaffs_UnlinkFile(obj);
++ break;
++ case YAFFS_OBJECT_TYPE_DIRECTORY:
++ return yaffs_DeleteDirectory(obj);
++ break;
++ case YAFFS_OBJECT_TYPE_SYMLINK:
++ return yaffs_DeleteSymLink(obj);
++ break;
++ case YAFFS_OBJECT_TYPE_SPECIAL:
++ return yaffs_DoGenericObjectDeletion(obj);
++ break;
++ case YAFFS_OBJECT_TYPE_HARDLINK:
++ case YAFFS_OBJECT_TYPE_UNKNOWN:
++ default:
++ return YAFFS_FAIL;
++ }
++ }
++}
++
++
++static int yaffs_UnlinkObject( yaffs_Object *obj)
++{
++
++ if (obj && obj->unlinkAllowed) {
++ return yaffs_UnlinkWorker(obj);
++ }
++
++ return YAFFS_FAIL;
++
++}
++int yaffs_Unlink(yaffs_Object * dir, const YCHAR * name)
++{
++ yaffs_Object *obj;
++
++ obj = yaffs_FindObjectByName(dir, name);
++ return yaffs_UnlinkObject(obj);
++}
++
++/*----------------------- Initialisation Scanning ---------------------- */
++
++static void yaffs_HandleShadowedObject(yaffs_Device * dev, int objId,
++ int backwardScanning)
++{
++ yaffs_Object *obj;
++
++ if (!backwardScanning) {
++ /* Handle YAFFS1 forward scanning case
++ * For YAFFS1 we always do the deletion
++ */
++
++ } else {
++ /* Handle YAFFS2 case (backward scanning)
++ * If the shadowed object exists then ignore.
++ */
++ if (yaffs_FindObjectByNumber(dev, objId)) {
++ return;
++ }
++ }
++
++ /* Let's create it (if it does not exist) assuming it is a file so that it can do shrinking etc.
++ * We put it in unlinked dir to be cleaned up after the scanning
++ */
++ obj =
++ yaffs_FindOrCreateObjectByNumber(dev, objId,
++ YAFFS_OBJECT_TYPE_FILE);
++ yaffs_AddObjectToDirectory(dev->unlinkedDir, obj);
++ obj->variant.fileVariant.shrinkSize = 0;
++ obj->valid = 1; /* So that we don't read any other info for this file */
++
++}
++
++typedef struct {
++ int seq;
++ int block;
++} yaffs_BlockIndex;
++
++
++static void yaffs_HardlinkFixup(yaffs_Device *dev, yaffs_Object *hardList)
++{
++ yaffs_Object *hl;
++ yaffs_Object *in;
++
++ while (hardList) {
++ hl = hardList;
++ hardList = (yaffs_Object *) (hardList->hardLinks.next);
++
++ in = yaffs_FindObjectByNumber(dev,
++ hl->variant.hardLinkVariant.
++ equivalentObjectId);
++
++ if (in) {
++ /* Add the hardlink pointers */
++ hl->variant.hardLinkVariant.equivalentObject = in;
++ ylist_add(&hl->hardLinks, &in->hardLinks);
++ } else {
++ /* Todo Need to report/handle this better.
++ * Got a problem... hardlink to a non-existant object
++ */
++ hl->variant.hardLinkVariant.equivalentObject = NULL;
++ YINIT_LIST_HEAD(&hl->hardLinks);
++
++ }
++
++ }
++
++}
++
++
++
++
++
++static int ybicmp(const void *a, const void *b){
++ register int aseq = ((yaffs_BlockIndex *)a)->seq;
++ register int bseq = ((yaffs_BlockIndex *)b)->seq;
++ register int ablock = ((yaffs_BlockIndex *)a)->block;
++ register int bblock = ((yaffs_BlockIndex *)b)->block;
++ if( aseq == bseq )
++ return ablock - bblock;
++ else
++ return aseq - bseq;
++
++}
++
++
++struct yaffs_ShadowFixerStruct {
++ int objectId;
++ int shadowedId;
++ struct yaffs_ShadowFixerStruct *next;
++};
++
++
++static void yaffs_StripDeletedObjects(yaffs_Device *dev)
++{
++ /*
++ * Sort out state of unlinked and deleted objects after scanning.
++ */
++ struct ylist_head *i;
++ struct ylist_head *n;
++ yaffs_Object *l;
++
++ /* Soft delete all the unlinked files */
++ ylist_for_each_safe(i, n,
++ &dev->unlinkedDir->variant.directoryVariant.children) {
++ if (i) {
++ l = ylist_entry(i, yaffs_Object, siblings);
++ yaffs_DestroyObject(l);
++ }
++ }
++
++ ylist_for_each_safe(i, n,
++ &dev->deletedDir->variant.directoryVariant.children) {
++ if (i) {
++ l = ylist_entry(i, yaffs_Object, siblings);
++ yaffs_DestroyObject(l);
++ }
++ }
++
++}
++
++static int yaffs_Scan(yaffs_Device * dev)
++{
++ yaffs_ExtendedTags tags;
++ int blk;
++ int blockIterator;
++ int startIterator;
++ int endIterator;
++ int result;
++
++ int chunk;
++ int c;
++ int deleted;
++ yaffs_BlockState state;
++ yaffs_Object *hardList = NULL;
++ yaffs_BlockInfo *bi;
++ __u32 sequenceNumber;
++ yaffs_ObjectHeader *oh;
++ yaffs_Object *in;
++ yaffs_Object *parent;
++
++ int alloc_failed = 0;
++
++ struct yaffs_ShadowFixerStruct *shadowFixerList = NULL;
++
++
++ __u8 *chunkData;
++
++
++
++ T(YAFFS_TRACE_SCAN,
++ (TSTR("yaffs_Scan starts intstartblk %d intendblk %d..." TENDSTR),
++ dev->internalStartBlock, dev->internalEndBlock));
++
++ chunkData = yaffs_GetTempBuffer(dev, __LINE__);
++
++ dev->sequenceNumber = YAFFS_LOWEST_SEQUENCE_NUMBER;
++
++ /* Scan all the blocks to determine their state */
++ for (blk = dev->internalStartBlock; blk <= dev->internalEndBlock; blk++) {
++ bi = yaffs_GetBlockInfo(dev, blk);
++ yaffs_ClearChunkBits(dev, blk);
++ bi->pagesInUse = 0;
++ bi->softDeletions = 0;
++
++ yaffs_QueryInitialBlockState(dev, blk, &state, &sequenceNumber);
++
++ bi->blockState = state;
++ bi->sequenceNumber = sequenceNumber;
++
++ T(YAFFS_TRACE_SCAN_DEBUG,
++ (TSTR("Block scanning block %d state %d seq %d" TENDSTR), blk,
++ state, sequenceNumber));
++
++ if (state == YAFFS_BLOCK_STATE_DEAD) {
++ T(YAFFS_TRACE_BAD_BLOCKS,
++ (TSTR("block %d is bad" TENDSTR), blk));
++ } else if (state == YAFFS_BLOCK_STATE_EMPTY) {
++ T(YAFFS_TRACE_SCAN_DEBUG,
++ (TSTR("Block empty " TENDSTR)));
++ dev->nErasedBlocks++;
++ dev->nFreeChunks += dev->nChunksPerBlock;
++ }
++ }
++
++ startIterator = dev->internalStartBlock;
++ endIterator = dev->internalEndBlock;
++
++ /* For each block.... */
++ for (blockIterator = startIterator; !alloc_failed && blockIterator <= endIterator;
++ blockIterator++) {
++
++ YYIELD();
++
++ YYIELD();
++
++ blk = blockIterator;
++
++ bi = yaffs_GetBlockInfo(dev, blk);
++ state = bi->blockState;
++
++ deleted = 0;
++
++ /* For each chunk in each block that needs scanning....*/
++ for (c = 0; !alloc_failed && c < dev->nChunksPerBlock &&
++ state == YAFFS_BLOCK_STATE_NEEDS_SCANNING; c++) {
++ /* Read the tags and decide what to do */
++ chunk = blk * dev->nChunksPerBlock + c;
++
++ result = yaffs_ReadChunkWithTagsFromNAND(dev, chunk, NULL,
++ &tags);
++
++ /* Let's have a good look at this chunk... */
++
++ if (tags.eccResult == YAFFS_ECC_RESULT_UNFIXED || tags.chunkDeleted) {
++ /* YAFFS1 only...
++ * A deleted chunk
++ */
++ deleted++;
++ dev->nFreeChunks++;
++ /*T((" %d %d deleted\n",blk,c)); */
++ } else if (!tags.chunkUsed) {
++ /* An unassigned chunk in the block
++ * This means that either the block is empty or
++ * this is the one being allocated from
++ */
++
++ if (c == 0) {
++ /* We're looking at the first chunk in the block so the block is unused */
++ state = YAFFS_BLOCK_STATE_EMPTY;
++ dev->nErasedBlocks++;
++ } else {
++ /* this is the block being allocated from */
++ T(YAFFS_TRACE_SCAN,
++ (TSTR
++ (" Allocating from %d %d" TENDSTR),
++ blk, c));
++ state = YAFFS_BLOCK_STATE_ALLOCATING;
++ dev->allocationBlock = blk;
++ dev->allocationPage = c;
++ dev->allocationBlockFinder = blk;
++ /* Set it to here to encourage the allocator to go forth from here. */
++
++ }
++
++ dev->nFreeChunks += (dev->nChunksPerBlock - c);
++ } else if (tags.chunkId > 0) {
++ /* chunkId > 0 so it is a data chunk... */
++ unsigned int endpos;
++
++ yaffs_SetChunkBit(dev, blk, c);
++ bi->pagesInUse++;
++
++ in = yaffs_FindOrCreateObjectByNumber(dev,
++ tags.
++ objectId,
++ YAFFS_OBJECT_TYPE_FILE);
++ /* PutChunkIntoFile checks for a clash (two data chunks with
++ * the same chunkId).
++ */
++
++ if(!in)
++ alloc_failed = 1;
++
++ if(in){
++ if(!yaffs_PutChunkIntoFile(in, tags.chunkId, chunk,1))
++ alloc_failed = 1;
++ }
++
++ endpos =
++ (tags.chunkId - 1) * dev->nDataBytesPerChunk +
++ tags.byteCount;
++ if (in &&
++ in->variantType == YAFFS_OBJECT_TYPE_FILE
++ && in->variant.fileVariant.scannedFileSize <
++ endpos) {
++ in->variant.fileVariant.
++ scannedFileSize = endpos;
++ if (!dev->useHeaderFileSize) {
++ in->variant.fileVariant.
++ fileSize =
++ in->variant.fileVariant.
++ scannedFileSize;
++ }
++
++ }
++ /* T((" %d %d data %d %d\n",blk,c,tags.objectId,tags.chunkId)); */
++ } else {
++ /* chunkId == 0, so it is an ObjectHeader.
++ * Thus, we read in the object header and make the object
++ */
++ yaffs_SetChunkBit(dev, blk, c);
++ bi->pagesInUse++;
++
++ result = yaffs_ReadChunkWithTagsFromNAND(dev, chunk,
++ chunkData,
++ NULL);
++
++ oh = (yaffs_ObjectHeader *) chunkData;
++
++ in = yaffs_FindObjectByNumber(dev,
++ tags.objectId);
++ if (in && in->variantType != oh->type) {
++ /* This should not happen, but somehow
++ * Wev'e ended up with an objectId that has been reused but not yet
++ * deleted, and worse still it has changed type. Delete the old object.
++ */
++
++ yaffs_DestroyObject(in);
++
++ in = 0;
++ }
++
++ in = yaffs_FindOrCreateObjectByNumber(dev,
++ tags.
++ objectId,
++ oh->type);
++
++ if(!in)
++ alloc_failed = 1;
++
++ if (in && oh->shadowsObject > 0) {
++
++ struct yaffs_ShadowFixerStruct *fixer;
++ fixer = YMALLOC(sizeof(struct yaffs_ShadowFixerStruct));
++ if(fixer){
++ fixer-> next = shadowFixerList;
++ shadowFixerList = fixer;
++ fixer->objectId = tags.objectId;
++ fixer->shadowedId = oh->shadowsObject;
++ }
++
++ }
++
++ if (in && in->valid) {
++ /* We have already filled this one. We have a duplicate and need to resolve it. */
++
++ unsigned existingSerial = in->serial;
++ unsigned newSerial = tags.serialNumber;
++
++ if (((existingSerial + 1) & 3) == newSerial) {
++ /* Use new one - destroy the exisiting one */
++ yaffs_DeleteChunk(dev,
++ in->hdrChunk,
++ 1, __LINE__);
++ in->valid = 0;
++ } else {
++ /* Use existing - destroy this one. */
++ yaffs_DeleteChunk(dev, chunk, 1,
++ __LINE__);
++ }
++ }
++
++ if (in && !in->valid &&
++ (tags.objectId == YAFFS_OBJECTID_ROOT ||
++ tags.objectId == YAFFS_OBJECTID_LOSTNFOUND)) {
++ /* We only load some info, don't fiddle with directory structure */
++ in->valid = 1;
++ in->variantType = oh->type;
++
++ in->yst_mode = oh->yst_mode;
++#ifdef CONFIG_YAFFS_WINCE
++ in->win_atime[0] = oh->win_atime[0];
++ in->win_ctime[0] = oh->win_ctime[0];
++ in->win_mtime[0] = oh->win_mtime[0];
++ in->win_atime[1] = oh->win_atime[1];
++ in->win_ctime[1] = oh->win_ctime[1];
++ in->win_mtime[1] = oh->win_mtime[1];
++#else
++ in->yst_uid = oh->yst_uid;
++ in->yst_gid = oh->yst_gid;
++ in->yst_atime = oh->yst_atime;
++ in->yst_mtime = oh->yst_mtime;
++ in->yst_ctime = oh->yst_ctime;
++ in->yst_rdev = oh->yst_rdev;
++#endif
++ in->hdrChunk = chunk;
++ in->serial = tags.serialNumber;
++
++ } else if (in && !in->valid) {
++ /* we need to load this info */
++
++ in->valid = 1;
++ in->variantType = oh->type;
++
++ in->yst_mode = oh->yst_mode;
++#ifdef CONFIG_YAFFS_WINCE
++ in->win_atime[0] = oh->win_atime[0];
++ in->win_ctime[0] = oh->win_ctime[0];
++ in->win_mtime[0] = oh->win_mtime[0];
++ in->win_atime[1] = oh->win_atime[1];
++ in->win_ctime[1] = oh->win_ctime[1];
++ in->win_mtime[1] = oh->win_mtime[1];
++#else
++ in->yst_uid = oh->yst_uid;
++ in->yst_gid = oh->yst_gid;
++ in->yst_atime = oh->yst_atime;
++ in->yst_mtime = oh->yst_mtime;
++ in->yst_ctime = oh->yst_ctime;
++ in->yst_rdev = oh->yst_rdev;
++#endif
++ in->hdrChunk = chunk;
++ in->serial = tags.serialNumber;
++
++ yaffs_SetObjectName(in, oh->name);
++ in->dirty = 0;
++
++ /* directory stuff...
++ * hook up to parent
++ */
++
++ parent =
++ yaffs_FindOrCreateObjectByNumber
++ (dev, oh->parentObjectId,
++ YAFFS_OBJECT_TYPE_DIRECTORY);
++ if (parent->variantType ==
++ YAFFS_OBJECT_TYPE_UNKNOWN) {
++ /* Set up as a directory */
++ parent->variantType =
++ YAFFS_OBJECT_TYPE_DIRECTORY;
++ YINIT_LIST_HEAD(&parent->variant.
++ directoryVariant.
++ children);
++ } else if (parent->variantType !=
++ YAFFS_OBJECT_TYPE_DIRECTORY)
++ {
++ /* Hoosterman, another problem....
++ * We're trying to use a non-directory as a directory
++ */
++
++ T(YAFFS_TRACE_ERROR,
++ (TSTR
++ ("yaffs tragedy: attempting to use non-directory as a directory in scan. Put in lost+found."
++ TENDSTR)));
++ parent = dev->lostNFoundDir;
++ }
++
++ yaffs_AddObjectToDirectory(parent, in);
++
++ if (0 && (parent == dev->deletedDir ||
++ parent == dev->unlinkedDir)) {
++ in->deleted = 1; /* If it is unlinked at start up then it wants deleting */
++ dev->nDeletedFiles++;
++ }
++ /* Note re hardlinks.
++ * Since we might scan a hardlink before its equivalent object is scanned
++ * we put them all in a list.
++ * After scanning is complete, we should have all the objects, so we run through this
++ * list and fix up all the chains.
++ */
++
++ switch (in->variantType) {
++ case YAFFS_OBJECT_TYPE_UNKNOWN:
++ /* Todo got a problem */
++ break;
++ case YAFFS_OBJECT_TYPE_FILE:
++ if (dev->useHeaderFileSize)
++
++ in->variant.fileVariant.
++ fileSize =
++ oh->fileSize;
++
++ break;
++ case YAFFS_OBJECT_TYPE_HARDLINK:
++ in->variant.hardLinkVariant.
++ equivalentObjectId =
++ oh->equivalentObjectId;
++ in->hardLinks.next =
++ (struct ylist_head *)
++ hardList;
++ hardList = in;
++ break;
++ case YAFFS_OBJECT_TYPE_DIRECTORY:
++ /* Do nothing */
++ break;
++ case YAFFS_OBJECT_TYPE_SPECIAL:
++ /* Do nothing */
++ break;
++ case YAFFS_OBJECT_TYPE_SYMLINK:
++ in->variant.symLinkVariant.alias =
++ yaffs_CloneString(oh->alias);
++ if(!in->variant.symLinkVariant.alias)
++ alloc_failed = 1;
++ break;
++ }
++
++/*
++ if (parent == dev->deletedDir) {
++ yaffs_DestroyObject(in);
++ bi->hasShrinkHeader = 1;
++ }
++*/
++ }
++ }
++ }
++
++ if (state == YAFFS_BLOCK_STATE_NEEDS_SCANNING) {
++ /* If we got this far while scanning, then the block is fully allocated.*/
++ state = YAFFS_BLOCK_STATE_FULL;
++ }
++
++ bi->blockState = state;
++
++ /* Now let's see if it was dirty */
++ if (bi->pagesInUse == 0 &&
++ !bi->hasShrinkHeader &&
++ bi->blockState == YAFFS_BLOCK_STATE_FULL) {
++ yaffs_BlockBecameDirty(dev, blk);
++ }
++
++ }
++
++
++ /* Ok, we've done all the scanning.
++ * Fix up the hard link chains.
++ * We should now have scanned all the objects, now it's time to add these
++ * hardlinks.
++ */
++
++ yaffs_HardlinkFixup(dev,hardList);
++
++ /* Fix up any shadowed objects */
++ {
++ struct yaffs_ShadowFixerStruct *fixer;
++ yaffs_Object *obj;
++
++ while(shadowFixerList){
++ fixer = shadowFixerList;
++ shadowFixerList = fixer->next;
++ /* Complete the rename transaction by deleting the shadowed object
++ * then setting the object header to unshadowed.
++ */
++ obj = yaffs_FindObjectByNumber(dev,fixer->shadowedId);
++ if(obj)
++ yaffs_DestroyObject(obj);
++
++ obj = yaffs_FindObjectByNumber(dev,fixer->objectId);
++ if(obj){
++ yaffs_UpdateObjectHeader(obj,NULL,1,0,0);
++ }
++
++ YFREE(fixer);
++ }
++ }
++
++ yaffs_ReleaseTempBuffer(dev, chunkData, __LINE__);
++
++ if(alloc_failed){
++ return YAFFS_FAIL;
++ }
++
++ T(YAFFS_TRACE_SCAN, (TSTR("yaffs_Scan ends" TENDSTR)));
++
++
++ return YAFFS_OK;
++}
++
++static void yaffs_CheckObjectDetailsLoaded(yaffs_Object *in)
++{
++ __u8 *chunkData;
++ yaffs_ObjectHeader *oh;
++ yaffs_Device *dev;
++ yaffs_ExtendedTags tags;
++ int result;
++ int alloc_failed = 0;
++
++ if(!in)
++ return;
++
++ dev = in->myDev;
++
++#if 0
++ T(YAFFS_TRACE_SCAN,(TSTR("details for object %d %s loaded" TENDSTR),
++ in->objectId,
++ in->lazyLoaded ? "not yet" : "already"));
++#endif
++
++ if(in->lazyLoaded && in->hdrChunk > 0){
++ in->lazyLoaded = 0;
++ chunkData = yaffs_GetTempBuffer(dev, __LINE__);
++
++ result = yaffs_ReadChunkWithTagsFromNAND(dev,in->hdrChunk,chunkData,&tags);
++ oh = (yaffs_ObjectHeader *) chunkData;
++
++ in->yst_mode = oh->yst_mode;
++#ifdef CONFIG_YAFFS_WINCE
++ in->win_atime[0] = oh->win_atime[0];
++ in->win_ctime[0] = oh->win_ctime[0];
++ in->win_mtime[0] = oh->win_mtime[0];
++ in->win_atime[1] = oh->win_atime[1];
++ in->win_ctime[1] = oh->win_ctime[1];
++ in->win_mtime[1] = oh->win_mtime[1];
++#else
++ in->yst_uid = oh->yst_uid;
++ in->yst_gid = oh->yst_gid;
++ in->yst_atime = oh->yst_atime;
++ in->yst_mtime = oh->yst_mtime;
++ in->yst_ctime = oh->yst_ctime;
++ in->yst_rdev = oh->yst_rdev;
++
++#endif
++ yaffs_SetObjectName(in, oh->name);
++
++ if(in->variantType == YAFFS_OBJECT_TYPE_SYMLINK){
++ in->variant.symLinkVariant.alias =
++ yaffs_CloneString(oh->alias);
++ if(!in->variant.symLinkVariant.alias)
++ alloc_failed = 1; /* Not returned to caller */
++ }
++
++ yaffs_ReleaseTempBuffer(dev,chunkData, __LINE__);
++ }
++}
++
++static int yaffs_ScanBackwards(yaffs_Device * dev)
++{
++ yaffs_ExtendedTags tags;
++ int blk;
++ int blockIterator;
++ int startIterator;
++ int endIterator;
++ int nBlocksToScan = 0;
++
++ int chunk;
++ int result;
++ int c;
++ int deleted;
++ yaffs_BlockState state;
++ yaffs_Object *hardList = NULL;
++ yaffs_BlockInfo *bi;
++ __u32 sequenceNumber;
++ yaffs_ObjectHeader *oh;
++ yaffs_Object *in;
++ yaffs_Object *parent;
++ int nBlocks = dev->internalEndBlock - dev->internalStartBlock + 1;
++ int itsUnlinked;
++ __u8 *chunkData;
++
++ int fileSize;
++ int isShrink;
++ int foundChunksInBlock;
++ int equivalentObjectId;
++ int alloc_failed = 0;
++
++
++ yaffs_BlockIndex *blockIndex = NULL;
++ int altBlockIndex = 0;
++
++ if (!dev->isYaffs2) {
++ T(YAFFS_TRACE_SCAN,
++ (TSTR("yaffs_ScanBackwards is only for YAFFS2!" TENDSTR)));
++ return YAFFS_FAIL;
++ }
++
++ T(YAFFS_TRACE_SCAN,
++ (TSTR
++ ("yaffs_ScanBackwards starts intstartblk %d intendblk %d..."
++ TENDSTR), dev->internalStartBlock, dev->internalEndBlock));
++
++
++ dev->sequenceNumber = YAFFS_LOWEST_SEQUENCE_NUMBER;
++
++ blockIndex = YMALLOC(nBlocks * sizeof(yaffs_BlockIndex));
++
++ if(!blockIndex) {
++ blockIndex = YMALLOC_ALT(nBlocks * sizeof(yaffs_BlockIndex));
++ altBlockIndex = 1;
++ }
++
++ if(!blockIndex) {
++ T(YAFFS_TRACE_SCAN,
++ (TSTR("yaffs_Scan() could not allocate block index!" TENDSTR)));
++ return YAFFS_FAIL;
++ }
++
++ dev->blocksInCheckpoint = 0;
++
++ chunkData = yaffs_GetTempBuffer(dev, __LINE__);
++
++ /* Scan all the blocks to determine their state */
++ for (blk = dev->internalStartBlock; blk <= dev->internalEndBlock; blk++) {
++ bi = yaffs_GetBlockInfo(dev, blk);
++ yaffs_ClearChunkBits(dev, blk);
++ bi->pagesInUse = 0;
++ bi->softDeletions = 0;
++
++ yaffs_QueryInitialBlockState(dev, blk, &state, &sequenceNumber);
++
++ bi->blockState = state;
++ bi->sequenceNumber = sequenceNumber;
++
++ if(bi->sequenceNumber == YAFFS_SEQUENCE_CHECKPOINT_DATA)
++ bi->blockState = state = YAFFS_BLOCK_STATE_CHECKPOINT;
++
++ T(YAFFS_TRACE_SCAN_DEBUG,
++ (TSTR("Block scanning block %d state %d seq %d" TENDSTR), blk,
++ state, sequenceNumber));
++
++
++ if(state == YAFFS_BLOCK_STATE_CHECKPOINT){
++ dev->blocksInCheckpoint++;
++
++ } else if (state == YAFFS_BLOCK_STATE_DEAD) {
++ T(YAFFS_TRACE_BAD_BLOCKS,
++ (TSTR("block %d is bad" TENDSTR), blk));
++ } else if (state == YAFFS_BLOCK_STATE_EMPTY) {
++ T(YAFFS_TRACE_SCAN_DEBUG,
++ (TSTR("Block empty " TENDSTR)));
++ dev->nErasedBlocks++;
++ dev->nFreeChunks += dev->nChunksPerBlock;
++ } else if (state == YAFFS_BLOCK_STATE_NEEDS_SCANNING) {
++
++ /* Determine the highest sequence number */
++ if (sequenceNumber >= YAFFS_LOWEST_SEQUENCE_NUMBER &&
++ sequenceNumber < YAFFS_HIGHEST_SEQUENCE_NUMBER) {
++
++ blockIndex[nBlocksToScan].seq = sequenceNumber;
++ blockIndex[nBlocksToScan].block = blk;
++
++ nBlocksToScan++;
++
++ if (sequenceNumber >= dev->sequenceNumber) {
++ dev->sequenceNumber = sequenceNumber;
++ }
++ } else {
++ /* TODO: Nasty sequence number! */
++ T(YAFFS_TRACE_SCAN,
++ (TSTR
++ ("Block scanning block %d has bad sequence number %d"
++ TENDSTR), blk, sequenceNumber));
++
++ }
++ }
++ }
++
++ T(YAFFS_TRACE_SCAN,
++ (TSTR("%d blocks to be sorted..." TENDSTR), nBlocksToScan));
++
++
++
++ YYIELD();
++
++ /* Sort the blocks */
++#ifndef CONFIG_YAFFS_USE_OWN_SORT
++ {
++ /* Use qsort now. */
++ yaffs_qsort(blockIndex, nBlocksToScan, sizeof(yaffs_BlockIndex), ybicmp);
++ }
++#else
++ {
++ /* Dungy old bubble sort... */
++
++ yaffs_BlockIndex temp;
++ int i;
++ int j;
++
++ for (i = 0; i < nBlocksToScan; i++)
++ for (j = i + 1; j < nBlocksToScan; j++)
++ if (blockIndex[i].seq > blockIndex[j].seq) {
++ temp = blockIndex[j];
++ blockIndex[j] = blockIndex[i];
++ blockIndex[i] = temp;
++ }
++ }
++#endif
++
++ YYIELD();
++
++ T(YAFFS_TRACE_SCAN, (TSTR("...done" TENDSTR)));
++
++ /* Now scan the blocks looking at the data. */
++ startIterator = 0;
++ endIterator = nBlocksToScan - 1;
++ T(YAFFS_TRACE_SCAN_DEBUG,
++ (TSTR("%d blocks to be scanned" TENDSTR), nBlocksToScan));
++
++ /* For each block.... backwards */
++ for (blockIterator = endIterator; !alloc_failed && blockIterator >= startIterator;
++ blockIterator--) {
++ /* Cooperative multitasking! This loop can run for so
++ long that watchdog timers expire. */
++ YYIELD();
++
++ /* get the block to scan in the correct order */
++ blk = blockIndex[blockIterator].block;
++
++ bi = yaffs_GetBlockInfo(dev, blk);
++
++
++ state = bi->blockState;
++
++ deleted = 0;
++
++ /* For each chunk in each block that needs scanning.... */
++ foundChunksInBlock = 0;
++ for (c = dev->nChunksPerBlock - 1;
++ !alloc_failed && c >= 0 &&
++ (state == YAFFS_BLOCK_STATE_NEEDS_SCANNING ||
++ state == YAFFS_BLOCK_STATE_ALLOCATING); c--) {
++ /* Scan backwards...
++ * Read the tags and decide what to do
++ */
++
++ chunk = blk * dev->nChunksPerBlock + c;
++
++ result = yaffs_ReadChunkWithTagsFromNAND(dev, chunk, NULL,
++ &tags);
++
++ /* Let's have a good look at this chunk... */
++
++ if (!tags.chunkUsed) {
++ /* An unassigned chunk in the block.
++ * If there are used chunks after this one, then
++ * it is a chunk that was skipped due to failing the erased
++ * check. Just skip it so that it can be deleted.
++ * But, more typically, We get here when this is an unallocated
++ * chunk and his means that either the block is empty or
++ * this is the one being allocated from
++ */
++
++ if(foundChunksInBlock)
++ {
++ /* This is a chunk that was skipped due to failing the erased check */
++
++ } else if (c == 0) {
++ /* We're looking at the first chunk in the block so the block is unused */
++ state = YAFFS_BLOCK_STATE_EMPTY;
++ dev->nErasedBlocks++;
++ } else {
++ if (state == YAFFS_BLOCK_STATE_NEEDS_SCANNING ||
++ state == YAFFS_BLOCK_STATE_ALLOCATING) {
++ if(dev->sequenceNumber == bi->sequenceNumber) {
++ /* this is the block being allocated from */
++
++ T(YAFFS_TRACE_SCAN,
++ (TSTR
++ (" Allocating from %d %d"
++ TENDSTR), blk, c));
++
++ state = YAFFS_BLOCK_STATE_ALLOCATING;
++ dev->allocationBlock = blk;
++ dev->allocationPage = c;
++ dev->allocationBlockFinder = blk;
++ }
++ else {
++ /* This is a partially written block that is not
++ * the current allocation block. This block must have
++ * had a write failure, so set up for retirement.
++ */
++
++ /* bi->needsRetiring = 1; ??? TODO */
++ bi->gcPrioritise = 1;
++
++ T(YAFFS_TRACE_ALWAYS,
++ (TSTR("Partially written block %d detected" TENDSTR),
++ blk));
++ }
++
++ }
++
++ }
++
++ dev->nFreeChunks++;
++
++ } else if (tags.chunkId > 0) {
++ /* chunkId > 0 so it is a data chunk... */
++ unsigned int endpos;
++ __u32 chunkBase =
++ (tags.chunkId - 1) * dev->nDataBytesPerChunk;
++
++ foundChunksInBlock = 1;
++
++
++ yaffs_SetChunkBit(dev, blk, c);
++ bi->pagesInUse++;
++
++ in = yaffs_FindOrCreateObjectByNumber(dev,
++ tags.
++ objectId,
++ YAFFS_OBJECT_TYPE_FILE);
++ if(!in){
++ /* Out of memory */
++ alloc_failed = 1;
++ }
++
++ if (in &&
++ in->variantType == YAFFS_OBJECT_TYPE_FILE
++ && chunkBase <
++ in->variant.fileVariant.shrinkSize) {
++ /* This has not been invalidated by a resize */
++ if(!yaffs_PutChunkIntoFile(in, tags.chunkId,
++ chunk, -1)){
++ alloc_failed = 1;
++ }
++
++ /* File size is calculated by looking at the data chunks if we have not
++ * seen an object header yet. Stop this practice once we find an object header.
++ */
++ endpos =
++ (tags.chunkId -
++ 1) * dev->nDataBytesPerChunk +
++ tags.byteCount;
++
++ if (!in->valid && /* have not got an object header yet */
++ in->variant.fileVariant.
++ scannedFileSize < endpos) {
++ in->variant.fileVariant.
++ scannedFileSize = endpos;
++ in->variant.fileVariant.
++ fileSize =
++ in->variant.fileVariant.
++ scannedFileSize;
++ }
++
++ } else if(in) {
++ /* This chunk has been invalidated by a resize, so delete */
++ yaffs_DeleteChunk(dev, chunk, 1, __LINE__);
++
++ }
++ } else {
++ /* chunkId == 0, so it is an ObjectHeader.
++ * Thus, we read in the object header and make the object
++ */
++ foundChunksInBlock = 1;
++
++ yaffs_SetChunkBit(dev, blk, c);
++ bi->pagesInUse++;
++
++ oh = NULL;
++ in = NULL;
++
++ if (tags.extraHeaderInfoAvailable) {
++ in = yaffs_FindOrCreateObjectByNumber
++ (dev, tags.objectId,
++ tags.extraObjectType);
++ }
++
++ if (!in ||
++#ifdef CONFIG_YAFFS_DISABLE_LAZY_LOAD
++ !in->valid ||
++#endif
++ tags.extraShadows ||
++ (!in->valid &&
++ (tags.objectId == YAFFS_OBJECTID_ROOT ||
++ tags.objectId == YAFFS_OBJECTID_LOSTNFOUND))
++ ) {
++
++ /* If we don't have valid info then we need to read the chunk
++ * TODO In future we can probably defer reading the chunk and
++ * living with invalid data until needed.
++ */
++
++ result = yaffs_ReadChunkWithTagsFromNAND(dev,
++ chunk,
++ chunkData,
++ NULL);
++
++ oh = (yaffs_ObjectHeader *) chunkData;
++
++ if(dev->inbandTags){
++ /* Fix up the header if they got corrupted by inband tags */
++ oh->shadowsObject = oh->inbandShadowsObject;
++ oh->isShrink = oh->inbandIsShrink;
++ }
++
++ if (!in)
++ in = yaffs_FindOrCreateObjectByNumber(dev, tags.objectId, oh->type);
++
++ }
++
++ if (!in) {
++ /* TODO Hoosterman we have a problem! */
++ T(YAFFS_TRACE_ERROR,
++ (TSTR
++ ("yaffs tragedy: Could not make object for object %d at chunk %d during scan"
++ TENDSTR), tags.objectId, chunk));
++
++ }
++
++ if (in->valid) {
++ /* We have already filled this one.
++ * We have a duplicate that will be discarded, but
++ * we first have to suck out resize info if it is a file.
++ */
++
++ if ((in->variantType == YAFFS_OBJECT_TYPE_FILE) &&
++ ((oh &&
++ oh-> type == YAFFS_OBJECT_TYPE_FILE)||
++ (tags.extraHeaderInfoAvailable &&
++ tags.extraObjectType == YAFFS_OBJECT_TYPE_FILE))
++ ) {
++ __u32 thisSize =
++ (oh) ? oh->fileSize : tags.
++ extraFileLength;
++ __u32 parentObjectId =
++ (oh) ? oh->
++ parentObjectId : tags.
++ extraParentObjectId;
++
++
++ isShrink =
++ (oh) ? oh->isShrink : tags.
++ extraIsShrinkHeader;
++
++ /* If it is deleted (unlinked at start also means deleted)
++ * we treat the file size as being zeroed at this point.
++ */
++ if (parentObjectId ==
++ YAFFS_OBJECTID_DELETED
++ || parentObjectId ==
++ YAFFS_OBJECTID_UNLINKED) {
++ thisSize = 0;
++ isShrink = 1;
++ }
++
++ if (isShrink &&
++ in->variant.fileVariant.
++ shrinkSize > thisSize) {
++ in->variant.fileVariant.
++ shrinkSize =
++ thisSize;
++ }
++
++ if (isShrink) {
++ bi->hasShrinkHeader = 1;
++ }
++
++ }
++ /* Use existing - destroy this one. */
++ yaffs_DeleteChunk(dev, chunk, 1, __LINE__);
++
++ }
++
++ if (!in->valid &&
++ (tags.objectId == YAFFS_OBJECTID_ROOT ||
++ tags.objectId ==
++ YAFFS_OBJECTID_LOSTNFOUND)) {
++ /* We only load some info, don't fiddle with directory structure */
++ in->valid = 1;
++
++ if(oh) {
++ in->variantType = oh->type;
++
++ in->yst_mode = oh->yst_mode;
++#ifdef CONFIG_YAFFS_WINCE
++ in->win_atime[0] = oh->win_atime[0];
++ in->win_ctime[0] = oh->win_ctime[0];
++ in->win_mtime[0] = oh->win_mtime[0];
++ in->win_atime[1] = oh->win_atime[1];
++ in->win_ctime[1] = oh->win_ctime[1];
++ in->win_mtime[1] = oh->win_mtime[1];
++#else
++ in->yst_uid = oh->yst_uid;
++ in->yst_gid = oh->yst_gid;
++ in->yst_atime = oh->yst_atime;
++ in->yst_mtime = oh->yst_mtime;
++ in->yst_ctime = oh->yst_ctime;
++ in->yst_rdev = oh->yst_rdev;
++
++#endif
++ } else {
++ in->variantType = tags.extraObjectType;
++ in->lazyLoaded = 1;
++ }
++
++ in->hdrChunk = chunk;
++
++ } else if (!in->valid) {
++ /* we need to load this info */
++
++ in->valid = 1;
++ in->hdrChunk = chunk;
++
++ if(oh) {
++ in->variantType = oh->type;
++
++ in->yst_mode = oh->yst_mode;
++#ifdef CONFIG_YAFFS_WINCE
++ in->win_atime[0] = oh->win_atime[0];
++ in->win_ctime[0] = oh->win_ctime[0];
++ in->win_mtime[0] = oh->win_mtime[0];
++ in->win_atime[1] = oh->win_atime[1];
++ in->win_ctime[1] = oh->win_ctime[1];
++ in->win_mtime[1] = oh->win_mtime[1];
++#else
++ in->yst_uid = oh->yst_uid;
++ in->yst_gid = oh->yst_gid;
++ in->yst_atime = oh->yst_atime;
++ in->yst_mtime = oh->yst_mtime;
++ in->yst_ctime = oh->yst_ctime;
++ in->yst_rdev = oh->yst_rdev;
++#endif
++
++ if (oh->shadowsObject > 0)
++ yaffs_HandleShadowedObject(dev,
++ oh->
++ shadowsObject,
++ 1);
++
++
++ yaffs_SetObjectName(in, oh->name);
++ parent =
++ yaffs_FindOrCreateObjectByNumber
++ (dev, oh->parentObjectId,
++ YAFFS_OBJECT_TYPE_DIRECTORY);
++
++ fileSize = oh->fileSize;
++ isShrink = oh->isShrink;
++ equivalentObjectId = oh->equivalentObjectId;
++
++ }
++ else {
++ in->variantType = tags.extraObjectType;
++ parent =
++ yaffs_FindOrCreateObjectByNumber
++ (dev, tags.extraParentObjectId,
++ YAFFS_OBJECT_TYPE_DIRECTORY);
++ fileSize = tags.extraFileLength;
++ isShrink = tags.extraIsShrinkHeader;
++ equivalentObjectId = tags.extraEquivalentObjectId;
++ in->lazyLoaded = 1;
++
++ }
++ in->dirty = 0;
++
++ /* directory stuff...
++ * hook up to parent
++ */
++
++ if (parent->variantType ==
++ YAFFS_OBJECT_TYPE_UNKNOWN) {
++ /* Set up as a directory */
++ parent->variantType =
++ YAFFS_OBJECT_TYPE_DIRECTORY;
++ YINIT_LIST_HEAD(&parent->variant.
++ directoryVariant.
++ children);
++ } else if (parent->variantType !=
++ YAFFS_OBJECT_TYPE_DIRECTORY)
++ {
++ /* Hoosterman, another problem....
++ * We're trying to use a non-directory as a directory
++ */
++
++ T(YAFFS_TRACE_ERROR,
++ (TSTR
++ ("yaffs tragedy: attempting to use non-directory as a directory in scan. Put in lost+found."
++ TENDSTR)));
++ parent = dev->lostNFoundDir;
++ }
++
++ yaffs_AddObjectToDirectory(parent, in);
++
++ itsUnlinked = (parent == dev->deletedDir) ||
++ (parent == dev->unlinkedDir);
++
++ if (isShrink) {
++ /* Mark the block as having a shrinkHeader */
++ bi->hasShrinkHeader = 1;
++ }
++
++ /* Note re hardlinks.
++ * Since we might scan a hardlink before its equivalent object is scanned
++ * we put them all in a list.
++ * After scanning is complete, we should have all the objects, so we run
++ * through this list and fix up all the chains.
++ */
++
++ switch (in->variantType) {
++ case YAFFS_OBJECT_TYPE_UNKNOWN:
++ /* Todo got a problem */
++ break;
++ case YAFFS_OBJECT_TYPE_FILE:
++
++ if (in->variant.fileVariant.
++ scannedFileSize < fileSize) {
++ /* This covers the case where the file size is greater
++ * than where the data is
++ * This will happen if the file is resized to be larger
++ * than its current data extents.
++ */
++ in->variant.fileVariant.fileSize = fileSize;
++ in->variant.fileVariant.scannedFileSize =
++ in->variant.fileVariant.fileSize;
++ }
++
++ if (isShrink &&
++ in->variant.fileVariant.shrinkSize > fileSize) {
++ in->variant.fileVariant.shrinkSize = fileSize;
++ }
++
++ break;
++ case YAFFS_OBJECT_TYPE_HARDLINK:
++ if(!itsUnlinked) {
++ in->variant.hardLinkVariant.equivalentObjectId =
++ equivalentObjectId;
++ in->hardLinks.next =
++ (struct ylist_head *) hardList;
++ hardList = in;
++ }
++ break;
++ case YAFFS_OBJECT_TYPE_DIRECTORY:
++ /* Do nothing */
++ break;
++ case YAFFS_OBJECT_TYPE_SPECIAL:
++ /* Do nothing */
++ break;
++ case YAFFS_OBJECT_TYPE_SYMLINK:
++ if(oh){
++ in->variant.symLinkVariant.alias =
++ yaffs_CloneString(oh->
++ alias);
++ if(!in->variant.symLinkVariant.alias)
++ alloc_failed = 1;
++ }
++ break;
++ }
++
++ }
++
++ }
++
++ } /* End of scanning for each chunk */
++
++ if (state == YAFFS_BLOCK_STATE_NEEDS_SCANNING) {
++ /* If we got this far while scanning, then the block is fully allocated. */
++ state = YAFFS_BLOCK_STATE_FULL;
++ }
++
++ bi->blockState = state;
++
++ /* Now let's see if it was dirty */
++ if (bi->pagesInUse == 0 &&
++ !bi->hasShrinkHeader &&
++ bi->blockState == YAFFS_BLOCK_STATE_FULL) {
++ yaffs_BlockBecameDirty(dev, blk);
++ }
++
++ }
++
++ if (altBlockIndex)
++ YFREE_ALT(blockIndex);
++ else
++ YFREE(blockIndex);
++
++ /* Ok, we've done all the scanning.
++ * Fix up the hard link chains.
++ * We should now have scanned all the objects, now it's time to add these
++ * hardlinks.
++ */
++ yaffs_HardlinkFixup(dev,hardList);
++
++
++ yaffs_ReleaseTempBuffer(dev, chunkData, __LINE__);
++
++ if(alloc_failed){
++ return YAFFS_FAIL;
++ }
++
++ T(YAFFS_TRACE_SCAN, (TSTR("yaffs_ScanBackwards ends" TENDSTR)));
++
++ return YAFFS_OK;
++}
++
++/*------------------------------ Directory Functions ----------------------------- */
++
++static void yaffs_VerifyObjectInDirectory(yaffs_Object *obj)
++{
++ struct ylist_head *lh;
++ yaffs_Object *listObj;
++
++ int count = 0;
++
++ if(!obj){
++ T(YAFFS_TRACE_ALWAYS, (TSTR("No object to verify" TENDSTR)));
++ YBUG();
++ }
++
++ if(yaffs_SkipVerification(obj->myDev))
++ return;
++
++ if(!obj->parent){
++ T(YAFFS_TRACE_ALWAYS, (TSTR("Object does not have parent" TENDSTR)));
++ YBUG();
++ }
++
++ if(obj->parent->variantType != YAFFS_OBJECT_TYPE_DIRECTORY){
++ T(YAFFS_TRACE_ALWAYS, (TSTR("Parent is not directory" TENDSTR)));
++ YBUG();
++ }
++
++ /* Iterate through the objects in each hash entry */
++
++ ylist_for_each(lh, &obj->parent->variant.directoryVariant.children) {
++ if (lh) {
++ listObj = ylist_entry(lh, yaffs_Object, siblings);
++ yaffs_VerifyObject(listObj);
++ if(obj == listObj)
++ count ++;
++ }
++ }
++
++ if(count != 1){
++ T(YAFFS_TRACE_ALWAYS, (TSTR("Object in directory %d times" TENDSTR),count));
++ YBUG();
++ }
++
++}
++
++static void yaffs_VerifyDirectory(yaffs_Object *directory)
++{
++
++ struct ylist_head *lh;
++ yaffs_Object *listObj;
++
++ if(!directory)
++ YBUG();
++
++ if(yaffs_SkipFullVerification(directory->myDev))
++ return;
++
++
++ if(directory->variantType != YAFFS_OBJECT_TYPE_DIRECTORY){
++ T(YAFFS_TRACE_ALWAYS, (TSTR("Directory has wrong type: %d" TENDSTR),directory->variantType));
++ YBUG();
++ }
++
++ /* Iterate through the objects in each hash entry */
++
++ ylist_for_each(lh, &directory->variant.directoryVariant.children) {
++ if (lh) {
++ listObj = ylist_entry(lh, yaffs_Object, siblings);
++ if(listObj->parent != directory){
++ T(YAFFS_TRACE_ALWAYS, (TSTR("Object in directory list has wrong parent %p" TENDSTR),listObj->parent));
++ YBUG();
++ }
++ yaffs_VerifyObjectInDirectory(listObj);
++ }
++ }
++
++}
++
++
++static void yaffs_RemoveObjectFromDirectory(yaffs_Object * obj)
++{
++ yaffs_Device *dev = obj->myDev;
++ yaffs_Object *parent;
++
++ yaffs_VerifyObjectInDirectory(obj);
++ parent = obj->parent;
++
++ yaffs_VerifyDirectory(parent);
++
++ if(dev && dev->removeObjectCallback)
++ dev->removeObjectCallback(obj);
++
++
++ ylist_del_init(&obj->siblings);
++ obj->parent = NULL;
++
++ yaffs_VerifyDirectory(parent);
++
++}
++
++
++static void yaffs_AddObjectToDirectory(yaffs_Object * directory,
++ yaffs_Object * obj)
++{
++
++ if (!directory) {
++ T(YAFFS_TRACE_ALWAYS,
++ (TSTR
++ ("tragedy: Trying to add an object to a null pointer directory"
++ TENDSTR)));
++ YBUG();
++ }
++ if (directory->variantType != YAFFS_OBJECT_TYPE_DIRECTORY) {
++ T(YAFFS_TRACE_ALWAYS,
++ (TSTR
++ ("tragedy: Trying to add an object to a non-directory"
++ TENDSTR)));
++ YBUG();
++ }
++
++ if (obj->siblings.prev == NULL) {
++ /* Not initialised */
++ YBUG();
++
++ } else if (ylist_empty(&obj->siblings)) {
++ YBUG();
++ }
++
++
++ yaffs_VerifyDirectory(directory);
++
++ yaffs_RemoveObjectFromDirectory(obj);
++
++
++ /* Now add it */
++ ylist_add(&obj->siblings, &directory->variant.directoryVariant.children);
++ obj->parent = directory;
++
++ if (directory == obj->myDev->unlinkedDir
++ || directory == obj->myDev->deletedDir) {
++ obj->unlinked = 1;
++ obj->myDev->nUnlinkedFiles++;
++ obj->renameAllowed = 0;
++ }
++
++ yaffs_VerifyDirectory(directory);
++ yaffs_VerifyObjectInDirectory(obj);
++
++
++}
++
++yaffs_Object *yaffs_FindObjectByName(yaffs_Object * directory,
++ const YCHAR * name)
++{
++ int sum;
++
++ struct ylist_head *i;
++ YCHAR buffer[YAFFS_MAX_NAME_LENGTH + 1];
++
++ yaffs_Object *l;
++
++ if (!name) {
++ return NULL;
++ }
++
++ if (!directory) {
++ T(YAFFS_TRACE_ALWAYS,
++ (TSTR
++ ("tragedy: yaffs_FindObjectByName: null pointer directory"
++ TENDSTR)));
++ YBUG();
++ }
++ if (directory->variantType != YAFFS_OBJECT_TYPE_DIRECTORY) {
++ T(YAFFS_TRACE_ALWAYS,
++ (TSTR
++ ("tragedy: yaffs_FindObjectByName: non-directory" TENDSTR)));
++ YBUG();
++ }
++
++ sum = yaffs_CalcNameSum(name);
++
++ ylist_for_each(i, &directory->variant.directoryVariant.children) {
++ if (i) {
++ l = ylist_entry(i, yaffs_Object, siblings);
++
++ if(l->parent != directory)
++ YBUG();
++
++ yaffs_CheckObjectDetailsLoaded(l);
++
++ /* Special case for lost-n-found */
++ if (l->objectId == YAFFS_OBJECTID_LOSTNFOUND) {
++ if (yaffs_strcmp(name, YAFFS_LOSTNFOUND_NAME) == 0) {
++ return l;
++ }
++ } else if (yaffs_SumCompare(l->sum, sum) || l->hdrChunk <= 0){
++ /* LostnFound chunk called Objxxx
++ * Do a real check
++ */
++ yaffs_GetObjectName(l, buffer,
++ YAFFS_MAX_NAME_LENGTH);
++ if (yaffs_strncmp(name, buffer,YAFFS_MAX_NAME_LENGTH) == 0) {
++ return l;
++ }
++
++ }
++ }
++ }
++
++ return NULL;
++}
++
++
++#if 0
++int yaffs_ApplyToDirectoryChildren(yaffs_Object * theDir,
++ int (*fn) (yaffs_Object *))
++{
++ struct ylist_head *i;
++ yaffs_Object *l;
++
++ if (!theDir) {
++ T(YAFFS_TRACE_ALWAYS,
++ (TSTR
++ ("tragedy: yaffs_FindObjectByName: null pointer directory"
++ TENDSTR)));
++ YBUG();
++ }
++ if (theDir->variantType != YAFFS_OBJECT_TYPE_DIRECTORY) {
++ T(YAFFS_TRACE_ALWAYS,
++ (TSTR
++ ("tragedy: yaffs_FindObjectByName: non-directory" TENDSTR)));
++ YBUG();
++ }
++
++ ylist_for_each(i, &theDir->variant.directoryVariant.children) {
++ if (i) {
++ l = ylist_entry(i, yaffs_Object, siblings);
++ if (l && !fn(l)) {
++ return YAFFS_FAIL;
++ }
++ }
++ }
++
++ return YAFFS_OK;
++
++}
++#endif
++
++/* GetEquivalentObject dereferences any hard links to get to the
++ * actual object.
++ */
++
++yaffs_Object *yaffs_GetEquivalentObject(yaffs_Object * obj)
++{
++ if (obj && obj->variantType == YAFFS_OBJECT_TYPE_HARDLINK) {
++ /* We want the object id of the equivalent object, not this one */
++ obj = obj->variant.hardLinkVariant.equivalentObject;
++ yaffs_CheckObjectDetailsLoaded(obj);
++ }
++ return obj;
++
++}
++
++int yaffs_GetObjectName(yaffs_Object * obj, YCHAR * name, int buffSize)
++{
++ memset(name, 0, buffSize * sizeof(YCHAR));
++
++ yaffs_CheckObjectDetailsLoaded(obj);
++
++ if (obj->objectId == YAFFS_OBJECTID_LOSTNFOUND) {
++ yaffs_strncpy(name, YAFFS_LOSTNFOUND_NAME, buffSize - 1);
++ } else if (obj->hdrChunk <= 0) {
++ YCHAR locName[20];
++ YCHAR numString[20];
++ YCHAR *x = &numString[19];
++ unsigned v = obj->objectId;
++ numString[19] = 0;
++ while(v>0){
++ x--;
++ *x = '0' + (v % 10);
++ v /= 10;
++ }
++ /* make up a name */
++ yaffs_strcpy(locName, YAFFS_LOSTNFOUND_PREFIX);
++ yaffs_strcat(locName,x);
++ yaffs_strncpy(name, locName, buffSize - 1);
++
++ }
++#ifdef CONFIG_YAFFS_SHORT_NAMES_IN_RAM
++ else if (obj->shortName[0]) {
++ yaffs_strcpy(name, obj->shortName);
++ }
++#endif
++ else {
++ int result;
++ __u8 *buffer = yaffs_GetTempBuffer(obj->myDev, __LINE__);
++
++ yaffs_ObjectHeader *oh = (yaffs_ObjectHeader *) buffer;
++
++ memset(buffer, 0, obj->myDev->nDataBytesPerChunk);
++
++ if (obj->hdrChunk > 0) {
++ result = yaffs_ReadChunkWithTagsFromNAND(obj->myDev,
++ obj->hdrChunk, buffer,
++ NULL);
++ }
++ yaffs_strncpy(name, oh->name, buffSize - 1);
++
++ yaffs_ReleaseTempBuffer(obj->myDev, buffer, __LINE__);
++ }
++
++ return yaffs_strlen(name);
++}
++
++int yaffs_GetObjectFileLength(yaffs_Object * obj)
++{
++
++ /* Dereference any hard linking */
++ obj = yaffs_GetEquivalentObject(obj);
++
++ if (obj->variantType == YAFFS_OBJECT_TYPE_FILE) {
++ return obj->variant.fileVariant.fileSize;
++ }
++ if (obj->variantType == YAFFS_OBJECT_TYPE_SYMLINK) {
++ return yaffs_strlen(obj->variant.symLinkVariant.alias);
++ } else {
++ /* Only a directory should drop through to here */
++ return obj->myDev->nDataBytesPerChunk;
++ }
++}
++
++int yaffs_GetObjectLinkCount(yaffs_Object * obj)
++{
++ int count = 0;
++ struct ylist_head *i;
++
++ if (!obj->unlinked) {
++ count++; /* the object itself */
++ }
++ ylist_for_each(i, &obj->hardLinks) {
++ count++; /* add the hard links; */
++ }
++ return count;
++
++}
++
++int yaffs_GetObjectInode(yaffs_Object * obj)
++{
++ obj = yaffs_GetEquivalentObject(obj);
++
++ return obj->objectId;
++}
++
++unsigned yaffs_GetObjectType(yaffs_Object * obj)
++{
++ obj = yaffs_GetEquivalentObject(obj);
++
++ switch (obj->variantType) {
++ case YAFFS_OBJECT_TYPE_FILE:
++ return DT_REG;
++ break;
++ case YAFFS_OBJECT_TYPE_DIRECTORY:
++ return DT_DIR;
++ break;
++ case YAFFS_OBJECT_TYPE_SYMLINK:
++ return DT_LNK;
++ break;
++ case YAFFS_OBJECT_TYPE_HARDLINK:
++ return DT_REG;
++ break;
++ case YAFFS_OBJECT_TYPE_SPECIAL:
++ if (S_ISFIFO(obj->yst_mode))
++ return DT_FIFO;
++ if (S_ISCHR(obj->yst_mode))
++ return DT_CHR;
++ if (S_ISBLK(obj->yst_mode))
++ return DT_BLK;
++ if (S_ISSOCK(obj->yst_mode))
++ return DT_SOCK;
++ default:
++ return DT_REG;
++ break;
++ }
++}
++
++YCHAR *yaffs_GetSymlinkAlias(yaffs_Object * obj)
++{
++ obj = yaffs_GetEquivalentObject(obj);
++ if (obj->variantType == YAFFS_OBJECT_TYPE_SYMLINK) {
++ return yaffs_CloneString(obj->variant.symLinkVariant.alias);
++ } else {
++ return yaffs_CloneString(_Y(""));
++ }
++}
++
++#ifndef CONFIG_YAFFS_WINCE
++
++int yaffs_SetAttributes(yaffs_Object * obj, struct iattr *attr)
++{
++ unsigned int valid = attr->ia_valid;
++
++ if (valid & ATTR_MODE)
++ obj->yst_mode = attr->ia_mode;
++ if (valid & ATTR_UID)
++ obj->yst_uid = attr->ia_uid;
++ if (valid & ATTR_GID)
++ obj->yst_gid = attr->ia_gid;
++
++ if (valid & ATTR_ATIME)
++ obj->yst_atime = Y_TIME_CONVERT(attr->ia_atime);
++ if (valid & ATTR_CTIME)
++ obj->yst_ctime = Y_TIME_CONVERT(attr->ia_ctime);
++ if (valid & ATTR_MTIME)
++ obj->yst_mtime = Y_TIME_CONVERT(attr->ia_mtime);
++
++ if (valid & ATTR_SIZE)
++ yaffs_ResizeFile(obj, attr->ia_size);
++
++ yaffs_UpdateObjectHeader(obj, NULL, 1, 0, 0);
++
++ return YAFFS_OK;
++
++}
++int yaffs_GetAttributes(yaffs_Object * obj, struct iattr *attr)
++{
++ unsigned int valid = 0;
++
++ attr->ia_mode = obj->yst_mode;
++ valid |= ATTR_MODE;
++ attr->ia_uid = obj->yst_uid;
++ valid |= ATTR_UID;
++ attr->ia_gid = obj->yst_gid;
++ valid |= ATTR_GID;
++
++ Y_TIME_CONVERT(attr->ia_atime) = obj->yst_atime;
++ valid |= ATTR_ATIME;
++ Y_TIME_CONVERT(attr->ia_ctime) = obj->yst_ctime;
++ valid |= ATTR_CTIME;
++ Y_TIME_CONVERT(attr->ia_mtime) = obj->yst_mtime;
++ valid |= ATTR_MTIME;
++
++ attr->ia_size = yaffs_GetFileSize(obj);
++ valid |= ATTR_SIZE;
++
++ attr->ia_valid = valid;
++
++ return YAFFS_OK;
++
++}
++
++#endif
++
++#if 0
++int yaffs_DumpObject(yaffs_Object * obj)
++{
++ YCHAR name[257];
++
++ yaffs_GetObjectName(obj, name, 256);
++
++ T(YAFFS_TRACE_ALWAYS,
++ (TSTR
++ ("Object %d, inode %d \"%s\"\n dirty %d valid %d serial %d sum %d"
++ " chunk %d type %d size %d\n"
++ TENDSTR), obj->objectId, yaffs_GetObjectInode(obj), name,
++ obj->dirty, obj->valid, obj->serial, obj->sum, obj->hdrChunk,
++ yaffs_GetObjectType(obj), yaffs_GetObjectFileLength(obj)));
++
++ return YAFFS_OK;
++}
++#endif
++
++/*---------------------------- Initialisation code -------------------------------------- */
++
++static int yaffs_CheckDevFunctions(const yaffs_Device * dev)
++{
++
++ /* Common functions, gotta have */
++ if (!dev->eraseBlockInNAND || !dev->initialiseNAND)
++ return 0;
++
++#ifdef CONFIG_YAFFS_YAFFS2
++
++ /* Can use the "with tags" style interface for yaffs1 or yaffs2 */
++ if (dev->writeChunkWithTagsToNAND &&
++ dev->readChunkWithTagsFromNAND &&
++ !dev->writeChunkToNAND &&
++ !dev->readChunkFromNAND &&
++ dev->markNANDBlockBad && dev->queryNANDBlock)
++ return 1;
++#endif
++
++ /* Can use the "spare" style interface for yaffs1 */
++ if (!dev->isYaffs2 &&
++ !dev->writeChunkWithTagsToNAND &&
++ !dev->readChunkWithTagsFromNAND &&
++ dev->writeChunkToNAND &&
++ dev->readChunkFromNAND &&
++ !dev->markNANDBlockBad && !dev->queryNANDBlock)
++ return 1;
++
++ return 0; /* bad */
++}
++
++
++static int yaffs_CreateInitialDirectories(yaffs_Device *dev)
++{
++ /* Initialise the unlinked, deleted, root and lost and found directories */
++
++ dev->lostNFoundDir = dev->rootDir = NULL;
++ dev->unlinkedDir = dev->deletedDir = NULL;
++
++ dev->unlinkedDir =
++ yaffs_CreateFakeDirectory(dev, YAFFS_OBJECTID_UNLINKED, S_IFDIR);
++
++ dev->deletedDir =
++ yaffs_CreateFakeDirectory(dev, YAFFS_OBJECTID_DELETED, S_IFDIR);
++
++ dev->rootDir =
++ yaffs_CreateFakeDirectory(dev, YAFFS_OBJECTID_ROOT,
++ YAFFS_ROOT_MODE | S_IFDIR);
++ dev->lostNFoundDir =
++ yaffs_CreateFakeDirectory(dev, YAFFS_OBJECTID_LOSTNFOUND,
++ YAFFS_LOSTNFOUND_MODE | S_IFDIR);
++
++ if(dev->lostNFoundDir && dev->rootDir && dev->unlinkedDir && dev->deletedDir){
++ yaffs_AddObjectToDirectory(dev->rootDir, dev->lostNFoundDir);
++ return YAFFS_OK;
++ }
++
++ return YAFFS_FAIL;
++}
++
++int yaffs_GutsInitialise(yaffs_Device * dev)
++{
++ int init_failed = 0;
++ unsigned x;
++ int bits;
++
++ T(YAFFS_TRACE_TRACING, (TSTR("yaffs: yaffs_GutsInitialise()" TENDSTR)));
++
++ /* Check stuff that must be set */
++
++ if (!dev) {
++ T(YAFFS_TRACE_ALWAYS, (TSTR("yaffs: Need a device" TENDSTR)));
++ return YAFFS_FAIL;
++ }
++
++ dev->internalStartBlock = dev->startBlock;
++ dev->internalEndBlock = dev->endBlock;
++ dev->blockOffset = 0;
++ dev->chunkOffset = 0;
++ dev->nFreeChunks = 0;
++
++ dev->gcBlock = -1;
++
++ if (dev->startBlock == 0) {
++ dev->internalStartBlock = dev->startBlock + 1;
++ dev->internalEndBlock = dev->endBlock + 1;
++ dev->blockOffset = 1;
++ dev->chunkOffset = dev->nChunksPerBlock;
++ }
++
++ /* Check geometry parameters. */
++
++ if ((!dev->inbandTags && dev->isYaffs2 && dev->totalBytesPerChunk < 1024) ||
++ (!dev->isYaffs2 && dev->totalBytesPerChunk < 512) ||
++ (dev->inbandTags && !dev->isYaffs2 ) ||
++ dev->nChunksPerBlock < 2 ||
++ dev->nReservedBlocks < 2 ||
++ dev->internalStartBlock <= 0 ||
++ dev->internalEndBlock <= 0 ||
++ dev->internalEndBlock <= (dev->internalStartBlock + dev->nReservedBlocks + 2) // otherwise it is too small
++ ) {
++ T(YAFFS_TRACE_ALWAYS,
++ (TSTR
++ ("yaffs: NAND geometry problems: chunk size %d, type is yaffs%s, inbandTags %d "
++ TENDSTR), dev->totalBytesPerChunk, dev->isYaffs2 ? "2" : "", dev->inbandTags));
++ return YAFFS_FAIL;
++ }
++
++ if (yaffs_InitialiseNAND(dev) != YAFFS_OK) {
++ T(YAFFS_TRACE_ALWAYS,
++ (TSTR("yaffs: InitialiseNAND failed" TENDSTR)));
++ return YAFFS_FAIL;
++ }
++
++ /* Sort out space for inband tags, if required */
++ if(dev->inbandTags)
++ dev->nDataBytesPerChunk = dev->totalBytesPerChunk - sizeof(yaffs_PackedTags2TagsPart);
++ else
++ dev->nDataBytesPerChunk = dev->totalBytesPerChunk;
++
++ /* Got the right mix of functions? */
++ if (!yaffs_CheckDevFunctions(dev)) {
++ /* Function missing */
++ T(YAFFS_TRACE_ALWAYS,
++ (TSTR
++ ("yaffs: device function(s) missing or wrong\n" TENDSTR)));
++
++ return YAFFS_FAIL;
++ }
++
++ /* This is really a compilation check. */
++ if (!yaffs_CheckStructures()) {
++ T(YAFFS_TRACE_ALWAYS,
++ (TSTR("yaffs_CheckStructures failed\n" TENDSTR)));
++ return YAFFS_FAIL;
++ }
++
++ if (dev->isMounted) {
++ T(YAFFS_TRACE_ALWAYS,
++ (TSTR("yaffs: device already mounted\n" TENDSTR)));
++ return YAFFS_FAIL;
++ }
++
++ /* Finished with most checks. One or two more checks happen later on too. */
++
++ dev->isMounted = 1;
++
++ /* OK now calculate a few things for the device */
++
++ /*
++ * Calculate all the chunk size manipulation numbers:
++ */
++ x = dev->nDataBytesPerChunk;
++ /* We always use dev->chunkShift and dev->chunkDiv */
++ dev->chunkShift = Shifts(x);
++ x >>= dev->chunkShift;
++ dev->chunkDiv = x;
++ /* We only use chunk mask if chunkDiv is 1 */
++ dev->chunkMask = (1<<dev->chunkShift) - 1;
++
++ /*
++ * Calculate chunkGroupBits.
++ * We need to find the next power of 2 > than internalEndBlock
++ */
++
++ x = dev->nChunksPerBlock * (dev->internalEndBlock + 1);
++
++ bits = ShiftsGE(x);
++
++ /* Set up tnode width if wide tnodes are enabled. */
++ if(!dev->wideTnodesDisabled){
++ /* bits must be even so that we end up with 32-bit words */
++ if(bits & 1)
++ bits++;
++ if(bits < 16)
++ dev->tnodeWidth = 16;
++ else
++ dev->tnodeWidth = bits;
++ }
++ else
++ dev->tnodeWidth = 16;
++
++ dev->tnodeMask = (1<<dev->tnodeWidth)-1;
++
++ /* Level0 Tnodes are 16 bits or wider (if wide tnodes are enabled),
++ * so if the bitwidth of the
++ * chunk range we're using is greater than 16 we need
++ * to figure out chunk shift and chunkGroupSize
++ */
++
++ if (bits <= dev->tnodeWidth)
++ dev->chunkGroupBits = 0;
++ else
++ dev->chunkGroupBits = bits - dev->tnodeWidth;
++
++
++ dev->chunkGroupSize = 1 << dev->chunkGroupBits;
++
++ if (dev->nChunksPerBlock < dev->chunkGroupSize) {
++ /* We have a problem because the soft delete won't work if
++ * the chunk group size > chunks per block.
++ * This can be remedied by using larger "virtual blocks".
++ */
++ T(YAFFS_TRACE_ALWAYS,
++ (TSTR("yaffs: chunk group too large\n" TENDSTR)));
++
++ return YAFFS_FAIL;
++ }
++
++ /* OK, we've finished verifying the device, lets continue with initialisation */
++
++ /* More device initialisation */
++ dev->garbageCollections = 0;
++ dev->passiveGarbageCollections = 0;
++ dev->currentDirtyChecker = 0;
++ dev->bufferedBlock = -1;
++ dev->doingBufferedBlockRewrite = 0;
++ dev->nDeletedFiles = 0;
++ dev->nBackgroundDeletions = 0;
++ dev->nUnlinkedFiles = 0;
++ dev->eccFixed = 0;
++ dev->eccUnfixed = 0;
++ dev->tagsEccFixed = 0;
++ dev->tagsEccUnfixed = 0;
++ dev->nErasureFailures = 0;
++ dev->nErasedBlocks = 0;
++ dev->isDoingGC = 0;
++ dev->hasPendingPrioritisedGCs = 1; /* Assume the worst for now, will get fixed on first GC */
++
++ /* Initialise temporary buffers and caches. */
++ if(!yaffs_InitialiseTempBuffers(dev))
++ init_failed = 1;
++
++ dev->srCache = NULL;
++ dev->gcCleanupList = NULL;
++
++
++ if (!init_failed &&
++ dev->nShortOpCaches > 0) {
++ int i;
++ void *buf;
++ int srCacheBytes = dev->nShortOpCaches * sizeof(yaffs_ChunkCache);
++
++ if (dev->nShortOpCaches > YAFFS_MAX_SHORT_OP_CACHES) {
++ dev->nShortOpCaches = YAFFS_MAX_SHORT_OP_CACHES;
++ }
++
++ dev->srCache = YMALLOC(srCacheBytes);
++
++ buf = (__u8 *) dev->srCache;
++
++ if(dev->srCache)
++ memset(dev->srCache,0,srCacheBytes);
++
++ for (i = 0; i < dev->nShortOpCaches && buf; i++) {
++ dev->srCache[i].object = NULL;
++ dev->srCache[i].lastUse = 0;
++ dev->srCache[i].dirty = 0;
++ dev->srCache[i].data = buf = YMALLOC_DMA(dev->totalBytesPerChunk);
++ }
++ if(!buf)
++ init_failed = 1;
++
++ dev->srLastUse = 0;
++ }
++
++ dev->cacheHits = 0;
++
++ if(!init_failed){
++ dev->gcCleanupList = YMALLOC(dev->nChunksPerBlock * sizeof(__u32));
++ if(!dev->gcCleanupList)
++ init_failed = 1;
++ }
++
++ if (dev->isYaffs2) {
++ dev->useHeaderFileSize = 1;
++ }
++ if(!init_failed && !yaffs_InitialiseBlocks(dev))
++ init_failed = 1;
++
++ yaffs_InitialiseTnodes(dev);
++ yaffs_InitialiseObjects(dev);
++
++ if(!init_failed && !yaffs_CreateInitialDirectories(dev))
++ init_failed = 1;
++
++
++ if(!init_failed){
++ /* Now scan the flash. */
++ if (dev->isYaffs2) {
++ if(yaffs_CheckpointRestore(dev)) {
++ yaffs_CheckObjectDetailsLoaded(dev->rootDir);
++ T(YAFFS_TRACE_ALWAYS,
++ (TSTR("yaffs: restored from checkpoint" TENDSTR)));
++ } else {
++
++ /* Clean up the mess caused by an aborted checkpoint load
++ * and scan backwards.
++ */
++ yaffs_DeinitialiseBlocks(dev);
++ yaffs_DeinitialiseTnodes(dev);
++ yaffs_DeinitialiseObjects(dev);
++
++
++ dev->nErasedBlocks = 0;
++ dev->nFreeChunks = 0;
++ dev->allocationBlock = -1;
++ dev->allocationPage = -1;
++ dev->nDeletedFiles = 0;
++ dev->nUnlinkedFiles = 0;
++ dev->nBackgroundDeletions = 0;
++ dev->oldestDirtySequence = 0;
++
++ if(!init_failed && !yaffs_InitialiseBlocks(dev))
++ init_failed = 1;
++
++ yaffs_InitialiseTnodes(dev);
++ yaffs_InitialiseObjects(dev);
++
++ if(!init_failed && !yaffs_CreateInitialDirectories(dev))
++ init_failed = 1;
++
++ if(!init_failed && !yaffs_ScanBackwards(dev))
++ init_failed = 1;
++ }
++ }else
++ if(!yaffs_Scan(dev))
++ init_failed = 1;
++
++ yaffs_StripDeletedObjects(dev);
++ }
++
++ if(init_failed){
++ /* Clean up the mess */
++ T(YAFFS_TRACE_TRACING,
++ (TSTR("yaffs: yaffs_GutsInitialise() aborted.\n" TENDSTR)));
++
++ yaffs_Deinitialise(dev);
++ return YAFFS_FAIL;
++ }
++
++ /* Zero out stats */
++ dev->nPageReads = 0;
++ dev->nPageWrites = 0;
++ dev->nBlockErasures = 0;
++ dev->nGCCopies = 0;
++ dev->nRetriedWrites = 0;
++
++ dev->nRetiredBlocks = 0;
++
++ yaffs_VerifyFreeChunks(dev);
++ yaffs_VerifyBlocks(dev);
++
++
++ T(YAFFS_TRACE_TRACING,
++ (TSTR("yaffs: yaffs_GutsInitialise() done.\n" TENDSTR)));
++ return YAFFS_OK;
++
++}
++
++void yaffs_Deinitialise(yaffs_Device * dev)
++{
++ if (dev->isMounted) {
++ int i;
++
++ yaffs_DeinitialiseBlocks(dev);
++ yaffs_DeinitialiseTnodes(dev);
++ yaffs_DeinitialiseObjects(dev);
++ if (dev->nShortOpCaches > 0 &&
++ dev->srCache) {
++
++ for (i = 0; i < dev->nShortOpCaches; i++) {
++ if(dev->srCache[i].data)
++ YFREE(dev->srCache[i].data);
++ dev->srCache[i].data = NULL;
++ }
++
++ YFREE(dev->srCache);
++ dev->srCache = NULL;
++ }
++
++ YFREE(dev->gcCleanupList);
++
++ for (i = 0; i < YAFFS_N_TEMP_BUFFERS; i++) {
++ YFREE(dev->tempBuffer[i].buffer);
++ }
++
++
++ dev->isMounted = 0;
++
++ if(dev->deinitialiseNAND)
++ dev->deinitialiseNAND(dev);
++ }
++
++}
++
++static int yaffs_CountFreeChunks(yaffs_Device * dev)
++{
++ int nFree;
++ int b;
++
++ yaffs_BlockInfo *blk;
++
++ for (nFree = 0, b = dev->internalStartBlock; b <= dev->internalEndBlock;
++ b++) {
++ blk = yaffs_GetBlockInfo(dev, b);
++
++ switch (blk->blockState) {
++ case YAFFS_BLOCK_STATE_EMPTY:
++ case YAFFS_BLOCK_STATE_ALLOCATING:
++ case YAFFS_BLOCK_STATE_COLLECTING:
++ case YAFFS_BLOCK_STATE_FULL:
++ nFree +=
++ (dev->nChunksPerBlock - blk->pagesInUse +
++ blk->softDeletions);
++ break;
++ default:
++ break;
++ }
++
++ }
++
++ return nFree;
++}
++
++int yaffs_GetNumberOfFreeChunks(yaffs_Device * dev)
++{
++ /* This is what we report to the outside world */
++
++ int nFree;
++ int nDirtyCacheChunks;
++ int blocksForCheckpoint;
++
++#if 1
++ nFree = dev->nFreeChunks;
++#else
++ nFree = yaffs_CountFreeChunks(dev);
++#endif
++
++ nFree += dev->nDeletedFiles;
++
++ /* Now count the number of dirty chunks in the cache and subtract those */
++
++ {
++ int i;
++ for (nDirtyCacheChunks = 0, i = 0; i < dev->nShortOpCaches; i++) {
++ if (dev->srCache[i].dirty)
++ nDirtyCacheChunks++;
++ }
++ }
++
++ nFree -= nDirtyCacheChunks;
++
++ nFree -= ((dev->nReservedBlocks + 1) * dev->nChunksPerBlock);
++
++ /* Now we figure out how much to reserve for the checkpoint and report that... */
++ blocksForCheckpoint = yaffs_CalcCheckpointBlocksRequired(dev) - dev->blocksInCheckpoint;
++ if(blocksForCheckpoint < 0)
++ blocksForCheckpoint = 0;
++
++ nFree -= (blocksForCheckpoint * dev->nChunksPerBlock);
++
++ if (nFree < 0)
++ nFree = 0;
++
++ return nFree;
++
++}
++
++static int yaffs_freeVerificationFailures;
++
++static void yaffs_VerifyFreeChunks(yaffs_Device * dev)
++{
++ int counted;
++ int difference;
++
++ if(yaffs_SkipVerification(dev))
++ return;
++
++ counted = yaffs_CountFreeChunks(dev);
++
++ difference = dev->nFreeChunks - counted;
++
++ if (difference) {
++ T(YAFFS_TRACE_ALWAYS,
++ (TSTR("Freechunks verification failure %d %d %d" TENDSTR),
++ dev->nFreeChunks, counted, difference));
++ yaffs_freeVerificationFailures++;
++ }
++}
++
++/*---------------------------------------- YAFFS test code ----------------------*/
++
++#define yaffs_CheckStruct(structure,syze, name) \
++ do { \
++ if(sizeof(structure) != syze) \
++ { \
++ T(YAFFS_TRACE_ALWAYS,(TSTR("%s should be %d but is %d\n" TENDSTR),\
++ name,syze,sizeof(structure))); \
++ return YAFFS_FAIL; \
++ } \
++ } while(0)
++
++static int yaffs_CheckStructures(void)
++{
++/* yaffs_CheckStruct(yaffs_Tags,8,"yaffs_Tags"); */
++/* yaffs_CheckStruct(yaffs_TagsUnion,8,"yaffs_TagsUnion"); */
++/* yaffs_CheckStruct(yaffs_Spare,16,"yaffs_Spare"); */
++#ifndef CONFIG_YAFFS_TNODE_LIST_DEBUG
++ yaffs_CheckStruct(yaffs_Tnode, 2 * YAFFS_NTNODES_LEVEL0, "yaffs_Tnode");
++#endif
++#ifndef CONFIG_YAFFS_WINCE
++ yaffs_CheckStruct(yaffs_ObjectHeader, 512, "yaffs_ObjectHeader");
++#endif
++ return YAFFS_OK;
++}
+diff --git a/fs/yaffs2/yaffs_guts.h b/fs/yaffs2/yaffs_guts.h
+new file mode 100644
+index 0000000..849d951
+--- /dev/null
++++ b/fs/yaffs2/yaffs_guts.h
+@@ -0,0 +1,906 @@
++/*
++ * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 2.1 as
++ * published by the Free Software Foundation.
++ *
++ * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
++ */
++
++#ifndef __YAFFS_GUTS_H__
++#define __YAFFS_GUTS_H__
++
++#include "devextras.h"
++#include "yportenv.h"
++
++#define YAFFS_OK 1
++#define YAFFS_FAIL 0
++
++/* Give us a Y=0x59,
++ * Give us an A=0x41,
++ * Give us an FF=0xFF
++ * Give us an S=0x53
++ * And what have we got...
++ */
++#define YAFFS_MAGIC 0x5941FF53
++
++#define YAFFS_NTNODES_LEVEL0 16
++#define YAFFS_TNODES_LEVEL0_BITS 4
++#define YAFFS_TNODES_LEVEL0_MASK 0xf
++
++#define YAFFS_NTNODES_INTERNAL (YAFFS_NTNODES_LEVEL0 / 2)
++#define YAFFS_TNODES_INTERNAL_BITS (YAFFS_TNODES_LEVEL0_BITS - 1)
++#define YAFFS_TNODES_INTERNAL_MASK 0x7
++#define YAFFS_TNODES_MAX_LEVEL 6
++
++#ifndef CONFIG_YAFFS_NO_YAFFS1
++#define YAFFS_BYTES_PER_SPARE 16
++#define YAFFS_BYTES_PER_CHUNK 512
++#define YAFFS_CHUNK_SIZE_SHIFT 9
++#define YAFFS_CHUNKS_PER_BLOCK 32
++#define YAFFS_BYTES_PER_BLOCK (YAFFS_CHUNKS_PER_BLOCK*YAFFS_BYTES_PER_CHUNK)
++#endif
++
++#define YAFFS_MIN_YAFFS2_CHUNK_SIZE 1024
++#define YAFFS_MIN_YAFFS2_SPARE_SIZE 32
++
++#define YAFFS_MAX_CHUNK_ID 0x000FFFFF
++
++#define YAFFS_UNUSED_OBJECT_ID 0x0003FFFF
++
++#define YAFFS_ALLOCATION_NOBJECTS 100
++#define YAFFS_ALLOCATION_NTNODES 100
++#define YAFFS_ALLOCATION_NLINKS 100
++
++#define YAFFS_NOBJECT_BUCKETS 256
++
++
++#define YAFFS_OBJECT_SPACE 0x40000
++
++#define YAFFS_CHECKPOINT_VERSION 3
++
++#ifdef CONFIG_YAFFS_UNICODE
++#define YAFFS_MAX_NAME_LENGTH 127
++#define YAFFS_MAX_ALIAS_LENGTH 79
++#else
++#define YAFFS_MAX_NAME_LENGTH 255
++#define YAFFS_MAX_ALIAS_LENGTH 159
++#endif
++
++#define YAFFS_SHORT_NAME_LENGTH 15
++
++/* Some special object ids for pseudo objects */
++#define YAFFS_OBJECTID_ROOT 1
++#define YAFFS_OBJECTID_LOSTNFOUND 2
++#define YAFFS_OBJECTID_UNLINKED 3
++#define YAFFS_OBJECTID_DELETED 4
++
++/* Sseudo object ids for checkpointing */
++#define YAFFS_OBJECTID_SB_HEADER 0x10
++#define YAFFS_OBJECTID_CHECKPOINT_DATA 0x20
++#define YAFFS_SEQUENCE_CHECKPOINT_DATA 0x21
++
++/* */
++
++#define YAFFS_MAX_SHORT_OP_CACHES 20
++
++#define YAFFS_N_TEMP_BUFFERS 6
++
++/* We limit the number attempts at sucessfully saving a chunk of data.
++ * Small-page devices have 32 pages per block; large-page devices have 64.
++ * Default to something in the order of 5 to 10 blocks worth of chunks.
++ */
++#define YAFFS_WR_ATTEMPTS (5*64)
++
++/* Sequence numbers are used in YAFFS2 to determine block allocation order.
++ * The range is limited slightly to help distinguish bad numbers from good.
++ * This also allows us to perhaps in the future use special numbers for
++ * special purposes.
++ * EFFFFF00 allows the allocation of 8 blocks per second (~1Mbytes) for 15 years,
++ * and is a larger number than the lifetime of a 2GB device.
++ */
++#define YAFFS_LOWEST_SEQUENCE_NUMBER 0x00001000
++#define YAFFS_HIGHEST_SEQUENCE_NUMBER 0xEFFFFF00
++
++/* ChunkCache is used for short read/write operations.*/
++typedef struct {
++ struct yaffs_ObjectStruct *object;
++ int chunkId;
++ int lastUse;
++ int dirty;
++ int nBytes; /* Only valid if the cache is dirty */
++ int locked; /* Can't push out or flush while locked. */
++#ifdef CONFIG_YAFFS_YAFFS2
++ __u8 *data;
++#else
++ __u8 data[YAFFS_BYTES_PER_CHUNK];
++#endif
++} yaffs_ChunkCache;
++
++
++
++/* Tags structures in RAM
++ * NB This uses bitfield. Bitfields should not straddle a u32 boundary otherwise
++ * the structure size will get blown out.
++ */
++
++#ifndef CONFIG_YAFFS_NO_YAFFS1
++typedef struct {
++ unsigned chunkId:20;
++ unsigned serialNumber:2;
++ unsigned byteCountLSB:10;
++ unsigned objectId:18;
++ unsigned ecc:12;
++ unsigned byteCountMSB:2;
++
++} yaffs_Tags;
++
++typedef union {
++ yaffs_Tags asTags;
++ __u8 asBytes[8];
++} yaffs_TagsUnion;
++
++#endif
++
++/* Stuff used for extended tags in YAFFS2 */
++
++typedef enum {
++ YAFFS_ECC_RESULT_UNKNOWN,
++ YAFFS_ECC_RESULT_NO_ERROR,
++ YAFFS_ECC_RESULT_FIXED,
++ YAFFS_ECC_RESULT_UNFIXED
++} yaffs_ECCResult;
++
++typedef enum {
++ YAFFS_OBJECT_TYPE_UNKNOWN,
++ YAFFS_OBJECT_TYPE_FILE,
++ YAFFS_OBJECT_TYPE_SYMLINK,
++ YAFFS_OBJECT_TYPE_DIRECTORY,
++ YAFFS_OBJECT_TYPE_HARDLINK,
++ YAFFS_OBJECT_TYPE_SPECIAL
++} yaffs_ObjectType;
++
++#define YAFFS_OBJECT_TYPE_MAX YAFFS_OBJECT_TYPE_SPECIAL
++
++typedef struct {
++
++ unsigned validMarker0;
++ unsigned chunkUsed; /* Status of the chunk: used or unused */
++ unsigned objectId; /* If 0 then this is not part of an object (unused) */
++ unsigned chunkId; /* If 0 then this is a header, else a data chunk */
++ unsigned byteCount; /* Only valid for data chunks */
++
++ /* The following stuff only has meaning when we read */
++ yaffs_ECCResult eccResult;
++ unsigned blockBad;
++
++ /* YAFFS 1 stuff */
++ unsigned chunkDeleted; /* The chunk is marked deleted */
++ unsigned serialNumber; /* Yaffs1 2-bit serial number */
++
++ /* YAFFS2 stuff */
++ unsigned sequenceNumber; /* The sequence number of this block */
++
++ /* Extra info if this is an object header (YAFFS2 only) */
++
++ unsigned extraHeaderInfoAvailable; /* There is extra info available if this is not zero */
++ unsigned extraParentObjectId; /* The parent object */
++ unsigned extraIsShrinkHeader; /* Is it a shrink header? */
++ unsigned extraShadows; /* Does this shadow another object? */
++
++ yaffs_ObjectType extraObjectType; /* What object type? */
++
++ unsigned extraFileLength; /* Length if it is a file */
++ unsigned extraEquivalentObjectId; /* Equivalent object Id if it is a hard link */
++
++ unsigned validMarker1;
++
++} yaffs_ExtendedTags;
++
++/* Spare structure for YAFFS1 */
++typedef struct {
++ __u8 tagByte0;
++ __u8 tagByte1;
++ __u8 tagByte2;
++ __u8 tagByte3;
++ __u8 pageStatus; /* set to 0 to delete the chunk */
++ __u8 blockStatus;
++ __u8 tagByte4;
++ __u8 tagByte5;
++ __u8 ecc1[3];
++ __u8 tagByte6;
++ __u8 tagByte7;
++ __u8 ecc2[3];
++} yaffs_Spare;
++
++/*Special structure for passing through to mtd */
++struct yaffs_NANDSpare {
++ yaffs_Spare spare;
++ int eccres1;
++ int eccres2;
++};
++
++/* Block data in RAM */
++
++typedef enum {
++ YAFFS_BLOCK_STATE_UNKNOWN = 0,
++
++ YAFFS_BLOCK_STATE_SCANNING,
++ YAFFS_BLOCK_STATE_NEEDS_SCANNING,
++ /* The block might have something on it (ie it is allocating or full, perhaps empty)
++ * but it needs to be scanned to determine its true state.
++ * This state is only valid during yaffs_Scan.
++ * NB We tolerate empty because the pre-scanner might be incapable of deciding
++ * However, if this state is returned on a YAFFS2 device, then we expect a sequence number
++ */
++
++ YAFFS_BLOCK_STATE_EMPTY,
++ /* This block is empty */
++
++ YAFFS_BLOCK_STATE_ALLOCATING,
++ /* This block is partially allocated.
++ * At least one page holds valid data.
++ * This is the one currently being used for page
++ * allocation. Should never be more than one of these
++ */
++
++ YAFFS_BLOCK_STATE_FULL,
++ /* All the pages in this block have been allocated.
++ */
++
++ YAFFS_BLOCK_STATE_DIRTY,
++ /* All pages have been allocated and deleted.
++ * Erase me, reuse me.
++ */
++
++ YAFFS_BLOCK_STATE_CHECKPOINT,
++ /* This block is assigned to holding checkpoint data.
++ */
++
++ YAFFS_BLOCK_STATE_COLLECTING,
++ /* This block is being garbage collected */
++
++ YAFFS_BLOCK_STATE_DEAD
++ /* This block has failed and is not in use */
++} yaffs_BlockState;
++
++#define YAFFS_NUMBER_OF_BLOCK_STATES (YAFFS_BLOCK_STATE_DEAD + 1)
++
++
++typedef struct {
++
++ int softDeletions:10; /* number of soft deleted pages */
++ int pagesInUse:10; /* number of pages in use */
++ unsigned blockState:4; /* One of the above block states. NB use unsigned because enum is sometimes an int */
++ __u32 needsRetiring:1; /* Data has failed on this block, need to get valid data off */
++ /* and retire the block. */
++ __u32 skipErasedCheck: 1; /* If this is set we can skip the erased check on this block */
++ __u32 gcPrioritise: 1; /* An ECC check or blank check has failed on this block.
++ It should be prioritised for GC */
++ __u32 chunkErrorStrikes:3; /* How many times we've had ecc etc failures on this block and tried to reuse it */
++
++#ifdef CONFIG_YAFFS_YAFFS2
++ __u32 hasShrinkHeader:1; /* This block has at least one shrink object header */
++ __u32 sequenceNumber; /* block sequence number for yaffs2 */
++#endif
++
++} yaffs_BlockInfo;
++
++/* -------------------------- Object structure -------------------------------*/
++/* This is the object structure as stored on NAND */
++
++typedef struct {
++ yaffs_ObjectType type;
++
++ /* Apply to everything */
++ int parentObjectId;
++ __u16 sum__NoLongerUsed; /* checksum of name. No longer used */
++ YCHAR name[YAFFS_MAX_NAME_LENGTH + 1];
++
++ /* The following apply to directories, files, symlinks - not hard links */
++ __u32 yst_mode; /* protection */
++
++#ifdef CONFIG_YAFFS_WINCE
++ __u32 notForWinCE[5];
++#else
++ __u32 yst_uid;
++ __u32 yst_gid;
++ __u32 yst_atime;
++ __u32 yst_mtime;
++ __u32 yst_ctime;
++#endif
++
++ /* File size applies to files only */
++ int fileSize;
++
++ /* Equivalent object id applies to hard links only. */
++ int equivalentObjectId;
++
++ /* Alias is for symlinks only. */
++ YCHAR alias[YAFFS_MAX_ALIAS_LENGTH + 1];
++
++ __u32 yst_rdev; /* device stuff for block and char devices (major/min) */
++
++#ifdef CONFIG_YAFFS_WINCE
++ __u32 win_ctime[2];
++ __u32 win_atime[2];
++ __u32 win_mtime[2];
++#else
++ __u32 roomToGrow[6];
++
++#endif
++ __u32 inbandShadowsObject;
++ __u32 inbandIsShrink;
++
++ __u32 reservedSpace[2];
++ int shadowsObject; /* This object header shadows the specified object if > 0 */
++
++ /* isShrink applies to object headers written when we shrink the file (ie resize) */
++ __u32 isShrink;
++
++} yaffs_ObjectHeader;
++
++/*--------------------------- Tnode -------------------------- */
++
++union yaffs_Tnode_union {
++#ifdef CONFIG_YAFFS_TNODE_LIST_DEBUG
++ union yaffs_Tnode_union *internal[YAFFS_NTNODES_INTERNAL + 1];
++#else
++ union yaffs_Tnode_union *internal[YAFFS_NTNODES_INTERNAL];
++#endif
++/* __u16 level0[YAFFS_NTNODES_LEVEL0]; */
++
++};
++
++typedef union yaffs_Tnode_union yaffs_Tnode;
++
++struct yaffs_TnodeList_struct {
++ struct yaffs_TnodeList_struct *next;
++ yaffs_Tnode *tnodes;
++};
++
++typedef struct yaffs_TnodeList_struct yaffs_TnodeList;
++
++/*------------------------ Object -----------------------------*/
++/* An object can be one of:
++ * - a directory (no data, has children links
++ * - a regular file (data.... not prunes :->).
++ * - a symlink [symbolic link] (the alias).
++ * - a hard link
++ */
++
++typedef struct {
++ __u32 fileSize;
++ __u32 scannedFileSize;
++ __u32 shrinkSize;
++ int topLevel;
++ yaffs_Tnode *top;
++} yaffs_FileStructure;
++
++typedef struct {
++ struct ylist_head children; /* list of child links */
++} yaffs_DirectoryStructure;
++
++typedef struct {
++ YCHAR *alias;
++} yaffs_SymLinkStructure;
++
++typedef struct {
++ struct yaffs_ObjectStruct *equivalentObject;
++ __u32 equivalentObjectId;
++} yaffs_HardLinkStructure;
++
++typedef union {
++ yaffs_FileStructure fileVariant;
++ yaffs_DirectoryStructure directoryVariant;
++ yaffs_SymLinkStructure symLinkVariant;
++ yaffs_HardLinkStructure hardLinkVariant;
++} yaffs_ObjectVariant;
++
++struct yaffs_ObjectStruct {
++ __u8 deleted:1; /* This should only apply to unlinked files. */
++ __u8 softDeleted:1; /* it has also been soft deleted */
++ __u8 unlinked:1; /* An unlinked file. The file should be in the unlinked directory.*/
++ __u8 fake:1; /* A fake object has no presence on NAND. */
++ __u8 renameAllowed:1; /* Some objects are not allowed to be renamed. */
++ __u8 unlinkAllowed:1;
++ __u8 dirty:1; /* the object needs to be written to flash */
++ __u8 valid:1; /* When the file system is being loaded up, this
++ * object might be created before the data
++ * is available (ie. file data records appear before the header).
++ */
++ __u8 lazyLoaded:1; /* This object has been lazy loaded and is missing some detail */
++
++ __u8 deferedFree:1; /* For Linux kernel. Object is removed from NAND, but is
++ * still in the inode cache. Free of object is defered.
++ * until the inode is released.
++ */
++
++ __u8 serial; /* serial number of chunk in NAND. Cached here */
++/* __u16 sum_prev; */
++ __u16 sum; /* sum of the name to speed searching */
++/* __u16 sum_trailer; */
++
++ struct yaffs_DeviceStruct *myDev; /* The device I'm on */
++
++ struct ylist_head hashLink; /* list of objects in this hash bucket */
++
++ struct ylist_head hardLinks; /* all the equivalent hard linked objects */
++
++ /* directory structure stuff */
++ /* also used for linking up the free list */
++ struct yaffs_ObjectStruct *parent;
++ struct ylist_head siblings;
++
++ /* Where's my object header in NAND? */
++ int hdrChunk;
++
++ int nDataChunks; /* Number of data chunks attached to the file. */
++
++ __u32 objectId; /* the object id value */
++
++ __u32 yst_mode;
++
++#ifdef CONFIG_YAFFS_SHORT_NAMES_IN_RAM
++ YCHAR shortName[YAFFS_SHORT_NAME_LENGTH + 1];
++#endif
++
++#ifndef __KERNEL__
++ __u32 inUse;
++#endif
++
++#ifdef CONFIG_YAFFS_WINCE
++ __u32 win_ctime[2];
++ __u32 win_mtime[2];
++ __u32 win_atime[2];
++#else
++ __u32 yst_uid;
++ __u32 yst_gid;
++ __u32 yst_atime;
++ __u32 yst_mtime;
++ __u32 yst_ctime;
++#endif
++
++ __u32 yst_rdev;
++
++#ifdef __KERNEL__
++ struct inode *myInode;
++
++#endif
++
++ yaffs_ObjectType variantType;
++
++ yaffs_ObjectVariant variant;
++
++};
++
++typedef struct yaffs_ObjectStruct yaffs_Object;
++
++struct yaffs_ObjectList_struct {
++ yaffs_Object *objects;
++ struct yaffs_ObjectList_struct *next;
++};
++
++typedef struct yaffs_ObjectList_struct yaffs_ObjectList;
++
++typedef struct {
++ struct ylist_head list;
++ int count;
++} yaffs_ObjectBucket;
++
++
++/* yaffs_CheckpointObject holds the definition of an object as dumped
++ * by checkpointing.
++ */
++
++typedef struct {
++ int structType;
++ __u32 objectId;
++ __u32 parentId;
++ int hdrChunk;
++ yaffs_ObjectType variantType:3;
++ __u8 deleted:1;
++ __u8 softDeleted:1;
++ __u8 unlinked:1;
++ __u8 fake:1;
++ __u8 renameAllowed:1;
++ __u8 unlinkAllowed:1;
++ __u8 serial;
++
++ int nDataChunks;
++ __u32 fileSizeOrEquivalentObjectId;
++
++}yaffs_CheckpointObject;
++
++/*--------------------- Temporary buffers ----------------
++ *
++ * These are chunk-sized working buffers. Each device has a few
++ */
++
++typedef struct {
++ __u8 *buffer;
++ int line; /* track from whence this buffer was allocated */
++ int maxLine;
++} yaffs_TempBuffer;
++
++/*----------------- Device ---------------------------------*/
++
++struct yaffs_DeviceStruct {
++ struct ylist_head devList;
++ const char *name;
++
++ /* Entry parameters set up way early. Yaffs sets up the rest.*/
++ int nDataBytesPerChunk; /* Should be a power of 2 >= 512 */
++ int nChunksPerBlock; /* does not need to be a power of 2 */
++ int spareBytesPerChunk;/* spare area size */
++ int startBlock; /* Start block we're allowed to use */
++ int endBlock; /* End block we're allowed to use */
++ int nReservedBlocks; /* We want this tuneable so that we can reduce */
++ /* reserved blocks on NOR and RAM. */
++
++
++ /* Stuff used by the shared space checkpointing mechanism */
++ /* If this value is zero, then this mechanism is disabled */
++
++// int nCheckpointReservedBlocks; /* Blocks to reserve for checkpoint data */
++
++
++
++
++ int nShortOpCaches; /* If <= 0, then short op caching is disabled, else
++ * the number of short op caches (don't use too many)
++ */
++
++ int useHeaderFileSize; /* Flag to determine if we should use file sizes from the header */
++
++ int useNANDECC; /* Flag to decide whether or not to use NANDECC */
++
++ void *genericDevice; /* Pointer to device context
++ * On an mtd this holds the mtd pointer.
++ */
++ void *superBlock;
++
++ /* NAND access functions (Must be set before calling YAFFS)*/
++
++ int (*writeChunkToNAND) (struct yaffs_DeviceStruct * dev,
++ int chunkInNAND, const __u8 * data,
++ const yaffs_Spare * spare);
++ int (*readChunkFromNAND) (struct yaffs_DeviceStruct * dev,
++ int chunkInNAND, __u8 * data,
++ yaffs_Spare * spare);
++ int (*eraseBlockInNAND) (struct yaffs_DeviceStruct * dev,
++ int blockInNAND);
++ int (*initialiseNAND) (struct yaffs_DeviceStruct * dev);
++ int (*deinitialiseNAND) (struct yaffs_DeviceStruct * dev);
++
++#ifdef CONFIG_YAFFS_YAFFS2
++ int (*writeChunkWithTagsToNAND) (struct yaffs_DeviceStruct * dev,
++ int chunkInNAND, const __u8 * data,
++ const yaffs_ExtendedTags * tags);
++ int (*readChunkWithTagsFromNAND) (struct yaffs_DeviceStruct * dev,
++ int chunkInNAND, __u8 * data,
++ yaffs_ExtendedTags * tags);
++ int (*markNANDBlockBad) (struct yaffs_DeviceStruct * dev, int blockNo);
++ int (*queryNANDBlock) (struct yaffs_DeviceStruct * dev, int blockNo,
++ yaffs_BlockState * state, __u32 *sequenceNumber);
++#endif
++
++ int isYaffs2;
++
++ /* The removeObjectCallback function must be supplied by OS flavours that
++ * need it. The Linux kernel does not use this, but yaffs direct does use
++ * it to implement the faster readdir
++ */
++ void (*removeObjectCallback)(struct yaffs_ObjectStruct *obj);
++
++ /* Callback to mark the superblock dirsty */
++ void (*markSuperBlockDirty)(void * superblock);
++
++ int wideTnodesDisabled; /* Set to disable wide tnodes */
++
++ YCHAR *pathDividers; /* String of legal path dividers */
++
++
++ /* End of stuff that must be set before initialisation. */
++
++ /* Checkpoint control. Can be set before or after initialisation */
++ __u8 skipCheckpointRead;
++ __u8 skipCheckpointWrite;
++
++ /* Runtime parameters. Set up by YAFFS. */
++
++ __u16 chunkGroupBits; /* 0 for devices <= 32MB. else log2(nchunks) - 16 */
++ __u16 chunkGroupSize; /* == 2^^chunkGroupBits */
++
++ /* Stuff to support wide tnodes */
++ __u32 tnodeWidth;
++ __u32 tnodeMask;
++
++ /* Stuff for figuring out file offset to chunk conversions */
++ __u32 chunkShift; /* Shift value */
++ __u32 chunkDiv; /* Divisor after shifting: 1 for power-of-2 sizes */
++ __u32 chunkMask; /* Mask to use for power-of-2 case */
++
++ /* Stuff to handle inband tags */
++ int inbandTags;
++ __u32 totalBytesPerChunk;
++
++#ifdef __KERNEL__
++
++ struct semaphore sem; /* Semaphore for waiting on erasure.*/
++ struct semaphore grossLock; /* Gross locking semaphore */
++ __u8 *spareBuffer; /* For mtdif2 use. Don't know the size of the buffer
++ * at compile time so we have to allocate it.
++ */
++ void (*putSuperFunc) (struct super_block * sb);
++#endif
++
++ int isMounted;
++
++ int isCheckpointed;
++
++
++ /* Stuff to support block offsetting to support start block zero */
++ int internalStartBlock;
++ int internalEndBlock;
++ int blockOffset;
++ int chunkOffset;
++
++
++ /* Runtime checkpointing stuff */
++ int checkpointPageSequence; /* running sequence number of checkpoint pages */
++ int checkpointByteCount;
++ int checkpointByteOffset;
++ __u8 *checkpointBuffer;
++ int checkpointOpenForWrite;
++ int blocksInCheckpoint;
++ int checkpointCurrentChunk;
++ int checkpointCurrentBlock;
++ int checkpointNextBlock;
++ int *checkpointBlockList;
++ int checkpointMaxBlocks;
++ __u32 checkpointSum;
++ __u32 checkpointXor;
++
++ int nCheckpointBlocksRequired; /* Number of blocks needed to store current checkpoint set */
++
++ /* Block Info */
++ yaffs_BlockInfo *blockInfo;
++ __u8 *chunkBits; /* bitmap of chunks in use */
++ unsigned blockInfoAlt:1; /* was allocated using alternative strategy */
++ unsigned chunkBitsAlt:1; /* was allocated using alternative strategy */
++ int chunkBitmapStride; /* Number of bytes of chunkBits per block.
++ * Must be consistent with nChunksPerBlock.
++ */
++
++ int nErasedBlocks;
++ int allocationBlock; /* Current block being allocated off */
++ __u32 allocationPage;
++ int allocationBlockFinder; /* Used to search for next allocation block */
++
++ /* Runtime state */
++ int nTnodesCreated;
++ yaffs_Tnode *freeTnodes;
++ int nFreeTnodes;
++ yaffs_TnodeList *allocatedTnodeList;
++
++ int isDoingGC;
++ int gcBlock;
++ int gcChunk;
++
++ int nObjectsCreated;
++ yaffs_Object *freeObjects;
++ int nFreeObjects;
++
++ int nHardLinks;
++
++ yaffs_ObjectList *allocatedObjectList;
++
++ yaffs_ObjectBucket objectBucket[YAFFS_NOBJECT_BUCKETS];
++
++ int nFreeChunks;
++
++ int currentDirtyChecker; /* Used to find current dirtiest block */
++
++ __u32 *gcCleanupList; /* objects to delete at the end of a GC. */
++ int nonAggressiveSkip; /* GC state/mode */
++
++ /* Statistcs */
++ int nPageWrites;
++ int nPageReads;
++ int nBlockErasures;
++ int nErasureFailures;
++ int nGCCopies;
++ int garbageCollections;
++ int passiveGarbageCollections;
++ int nRetriedWrites;
++ int nRetiredBlocks;
++ int eccFixed;
++ int eccUnfixed;
++ int tagsEccFixed;
++ int tagsEccUnfixed;
++ int nDeletions;
++ int nUnmarkedDeletions;
++
++ int hasPendingPrioritisedGCs; /* We think this device might have pending prioritised gcs */
++
++ /* Special directories */
++ yaffs_Object *rootDir;
++ yaffs_Object *lostNFoundDir;
++
++ /* Buffer areas for storing data to recover from write failures TODO
++ * __u8 bufferedData[YAFFS_CHUNKS_PER_BLOCK][YAFFS_BYTES_PER_CHUNK];
++ * yaffs_Spare bufferedSpare[YAFFS_CHUNKS_PER_BLOCK];
++ */
++
++ int bufferedBlock; /* Which block is buffered here? */
++ int doingBufferedBlockRewrite;
++
++ yaffs_ChunkCache *srCache;
++ int srLastUse;
++
++ int cacheHits;
++
++ /* Stuff for background deletion and unlinked files.*/
++ yaffs_Object *unlinkedDir; /* Directory where unlinked and deleted files live. */
++ yaffs_Object *deletedDir; /* Directory where deleted objects are sent to disappear. */
++ yaffs_Object *unlinkedDeletion; /* Current file being background deleted.*/
++ int nDeletedFiles; /* Count of files awaiting deletion;*/
++ int nUnlinkedFiles; /* Count of unlinked files. */
++ int nBackgroundDeletions; /* Count of background deletions. */
++
++
++ /* Temporary buffer management */
++ yaffs_TempBuffer tempBuffer[YAFFS_N_TEMP_BUFFERS];
++ int maxTemp;
++ int tempInUse;
++ int unmanagedTempAllocations;
++ int unmanagedTempDeallocations;
++
++ /* yaffs2 runtime stuff */
++ unsigned sequenceNumber; /* Sequence number of currently allocating block */
++ unsigned oldestDirtySequence;
++
++};
++
++typedef struct yaffs_DeviceStruct yaffs_Device;
++
++/* The static layout of block usage etc is stored in the super block header */
++typedef struct {
++ int StructType;
++ int version;
++ int checkpointStartBlock;
++ int checkpointEndBlock;
++ int startBlock;
++ int endBlock;
++ int rfu[100];
++} yaffs_SuperBlockHeader;
++
++/* The CheckpointDevice structure holds the device information that changes at runtime and
++ * must be preserved over unmount/mount cycles.
++ */
++typedef struct {
++ int structType;
++ int nErasedBlocks;
++ int allocationBlock; /* Current block being allocated off */
++ __u32 allocationPage;
++ int nFreeChunks;
++
++ int nDeletedFiles; /* Count of files awaiting deletion;*/
++ int nUnlinkedFiles; /* Count of unlinked files. */
++ int nBackgroundDeletions; /* Count of background deletions. */
++
++ /* yaffs2 runtime stuff */
++ unsigned sequenceNumber; /* Sequence number of currently allocating block */
++ unsigned oldestDirtySequence;
++
++} yaffs_CheckpointDevice;
++
++
++typedef struct {
++ int structType;
++ __u32 magic;
++ __u32 version;
++ __u32 head;
++} yaffs_CheckpointValidity;
++
++
++/*----------------------- YAFFS Functions -----------------------*/
++
++int yaffs_GutsInitialise(yaffs_Device * dev);
++void yaffs_Deinitialise(yaffs_Device * dev);
++
++int yaffs_GetNumberOfFreeChunks(yaffs_Device * dev);
++
++int yaffs_RenameObject(yaffs_Object * oldDir, const YCHAR * oldName,
++ yaffs_Object * newDir, const YCHAR * newName);
++
++int yaffs_Unlink(yaffs_Object * dir, const YCHAR * name);
++int yaffs_DeleteFile(yaffs_Object * obj);
++
++int yaffs_GetObjectName(yaffs_Object * obj, YCHAR * name, int buffSize);
++int yaffs_GetObjectFileLength(yaffs_Object * obj);
++int yaffs_GetObjectInode(yaffs_Object * obj);
++unsigned yaffs_GetObjectType(yaffs_Object * obj);
++int yaffs_GetObjectLinkCount(yaffs_Object * obj);
++
++int yaffs_SetAttributes(yaffs_Object * obj, struct iattr *attr);
++int yaffs_GetAttributes(yaffs_Object * obj, struct iattr *attr);
++
++/* File operations */
++int yaffs_ReadDataFromFile(yaffs_Object * obj, __u8 * buffer, loff_t offset,
++ int nBytes);
++int yaffs_WriteDataToFile(yaffs_Object * obj, const __u8 * buffer, loff_t offset,
++ int nBytes, int writeThrough);
++int yaffs_ResizeFile(yaffs_Object * obj, loff_t newSize);
++
++yaffs_Object *yaffs_MknodFile(yaffs_Object * parent, const YCHAR * name,
++ __u32 mode, __u32 uid, __u32 gid);
++int yaffs_FlushFile(yaffs_Object * obj, int updateTime);
++
++/* Flushing and checkpointing */
++void yaffs_FlushEntireDeviceCache(yaffs_Device *dev);
++
++int yaffs_CheckpointSave(yaffs_Device *dev);
++int yaffs_CheckpointRestore(yaffs_Device *dev);
++
++/* Directory operations */
++yaffs_Object *yaffs_MknodDirectory(yaffs_Object * parent, const YCHAR * name,
++ __u32 mode, __u32 uid, __u32 gid);
++yaffs_Object *yaffs_FindObjectByName(yaffs_Object * theDir, const YCHAR * name);
++int yaffs_ApplyToDirectoryChildren(yaffs_Object * theDir,
++ int (*fn) (yaffs_Object *));
++
++yaffs_Object *yaffs_FindObjectByNumber(yaffs_Device * dev, __u32 number);
++
++/* Link operations */
++yaffs_Object *yaffs_Link(yaffs_Object * parent, const YCHAR * name,
++ yaffs_Object * equivalentObject);
++
++yaffs_Object *yaffs_GetEquivalentObject(yaffs_Object * obj);
++
++/* Symlink operations */
++yaffs_Object *yaffs_MknodSymLink(yaffs_Object * parent, const YCHAR * name,
++ __u32 mode, __u32 uid, __u32 gid,
++ const YCHAR * alias);
++YCHAR *yaffs_GetSymlinkAlias(yaffs_Object * obj);
++
++/* Special inodes (fifos, sockets and devices) */
++yaffs_Object *yaffs_MknodSpecial(yaffs_Object * parent, const YCHAR * name,
++ __u32 mode, __u32 uid, __u32 gid, __u32 rdev);
++
++/* Special directories */
++yaffs_Object *yaffs_Root(yaffs_Device * dev);
++yaffs_Object *yaffs_LostNFound(yaffs_Device * dev);
++
++#ifdef CONFIG_YAFFS_WINCE
++/* CONFIG_YAFFS_WINCE special stuff */
++void yfsd_WinFileTimeNow(__u32 target[2]);
++#endif
++
++#ifdef __KERNEL__
++
++void yaffs_HandleDeferedFree(yaffs_Object * obj);
++#endif
++
++/* Debug dump */
++int yaffs_DumpObject(yaffs_Object * obj);
++
++void yaffs_GutsTest(yaffs_Device * dev);
++
++/* A few useful functions */
++void yaffs_InitialiseTags(yaffs_ExtendedTags * tags);
++void yaffs_DeleteChunk(yaffs_Device * dev, int chunkId, int markNAND, int lyn);
++int yaffs_CheckFF(__u8 * buffer, int nBytes);
++void yaffs_HandleChunkError(yaffs_Device *dev, yaffs_BlockInfo *bi);
++
++__u8 *yaffs_GetTempBuffer(yaffs_Device * dev, int lineNo);
++void yaffs_ReleaseTempBuffer(yaffs_Device * dev, __u8 * buffer, int lineNo);
++
++#endif
+diff --git a/fs/yaffs2/yaffs_mtdif.c b/fs/yaffs2/yaffs_mtdif.c
+new file mode 100644
+index 0000000..56bb225
+--- /dev/null
++++ b/fs/yaffs2/yaffs_mtdif.c
+@@ -0,0 +1,241 @@
++/*
++ * YAFFS: Yet Another Flash File System. A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++const char *yaffs_mtdif_c_version =
++ "$Id: yaffs_mtdif.c,v 1.21 2007/12/13 15:35:18 wookey Exp $";
++
++#include "yportenv.h"
++
++
++#include "yaffs_mtdif.h"
++
++#include "linux/mtd/mtd.h"
++#include "linux/types.h"
++#include "linux/time.h"
++#include "linux/mtd/nand.h"
++
++#if (MTD_VERSION_CODE < MTD_VERSION(2,6,18))
++static struct nand_oobinfo yaffs_oobinfo = {
++ .useecc = 1,
++ .eccbytes = 6,
++ .eccpos = {8, 9, 10, 13, 14, 15}
++};
++
++static struct nand_oobinfo yaffs_noeccinfo = {
++ .useecc = 0,
++};
++#endif
++
++#if (MTD_VERSION_CODE > MTD_VERSION(2,6,17))
++static inline void translate_spare2oob(const yaffs_Spare *spare, __u8 *oob)
++{
++ oob[0] = spare->tagByte0;
++ oob[1] = spare->tagByte1;
++ oob[2] = spare->tagByte2;
++ oob[3] = spare->tagByte3;
++ oob[4] = spare->tagByte4;
++ oob[5] = spare->tagByte5 & 0x3f;
++ oob[5] |= spare->blockStatus == 'Y' ? 0: 0x80;
++ oob[5] |= spare->pageStatus == 0 ? 0: 0x40;
++ oob[6] = spare->tagByte6;
++ oob[7] = spare->tagByte7;
++}
++
++static inline void translate_oob2spare(yaffs_Spare *spare, __u8 *oob)
++{
++ struct yaffs_NANDSpare *nspare = (struct yaffs_NANDSpare *)spare;
++ spare->tagByte0 = oob[0];
++ spare->tagByte1 = oob[1];
++ spare->tagByte2 = oob[2];
++ spare->tagByte3 = oob[3];
++ spare->tagByte4 = oob[4];
++ spare->tagByte5 = oob[5] == 0xff ? 0xff : oob[5] & 0x3f;
++ spare->blockStatus = oob[5] & 0x80 ? 0xff : 'Y';
++ spare->pageStatus = oob[5] & 0x40 ? 0xff : 0;
++ spare->ecc1[0] = spare->ecc1[1] = spare->ecc1[2] = 0xff;
++ spare->tagByte6 = oob[6];
++ spare->tagByte7 = oob[7];
++ spare->ecc2[0] = spare->ecc2[1] = spare->ecc2[2] = 0xff;
++
++ nspare->eccres1 = nspare->eccres2 = 0; /* FIXME */
++}
++#endif
++
++int nandmtd_WriteChunkToNAND(yaffs_Device * dev, int chunkInNAND,
++ const __u8 * data, const yaffs_Spare * spare)
++{
++ struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice);
++#if (MTD_VERSION_CODE > MTD_VERSION(2,6,17))
++ struct mtd_oob_ops ops;
++#endif
++ size_t dummy;
++ int retval = 0;
++
++ loff_t addr = ((loff_t) chunkInNAND) * dev->nDataBytesPerChunk;
++#if (MTD_VERSION_CODE > MTD_VERSION(2,6,17))
++ __u8 spareAsBytes[8]; /* OOB */
++
++ if (data && !spare)
++ retval = mtd->write(mtd, addr, dev->nDataBytesPerChunk,
++ &dummy, data);
++ else if (spare) {
++ if (dev->useNANDECC) {
++ translate_spare2oob(spare, spareAsBytes);
++ ops.mode = MTD_OOB_AUTO;
++ ops.ooblen = 8; /* temp hack */
++ } else {
++ ops.mode = MTD_OOB_RAW;
++ ops.ooblen = YAFFS_BYTES_PER_SPARE;
++ }
++ ops.len = data ? dev->nDataBytesPerChunk : ops.ooblen;
++ ops.datbuf = (u8 *)data;
++ ops.ooboffs = 0;
++ ops.oobbuf = spareAsBytes;
++ retval = mtd->write_oob(mtd, addr, &ops);
++ }
++#else
++ __u8 *spareAsBytes = (__u8 *) spare;
++
++ if (data && spare) {
++ if (dev->useNANDECC)
++ retval =
++ mtd->write_ecc(mtd, addr, dev->nDataBytesPerChunk,
++ &dummy, data, spareAsBytes,
++ &yaffs_oobinfo);
++ else
++ retval =
++ mtd->write_ecc(mtd, addr, dev->nDataBytesPerChunk,
++ &dummy, data, spareAsBytes,
++ &yaffs_noeccinfo);
++ } else {
++ if (data)
++ retval =
++ mtd->write(mtd, addr, dev->nDataBytesPerChunk, &dummy,
++ data);
++ if (spare)
++ retval =
++ mtd->write_oob(mtd, addr, YAFFS_BYTES_PER_SPARE,
++ &dummy, spareAsBytes);
++ }
++#endif
++
++ if (retval == 0)
++ return YAFFS_OK;
++ else
++ return YAFFS_FAIL;
++}
++
++int nandmtd_ReadChunkFromNAND(yaffs_Device * dev, int chunkInNAND, __u8 * data,
++ yaffs_Spare * spare)
++{
++ struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice);
++#if (MTD_VERSION_CODE > MTD_VERSION(2,6,17))
++ struct mtd_oob_ops ops;
++#endif
++ size_t dummy;
++ int retval = 0;
++
++ loff_t addr = ((loff_t) chunkInNAND) * dev->nDataBytesPerChunk;
++#if (MTD_VERSION_CODE > MTD_VERSION(2,6,17))
++ __u8 spareAsBytes[8]; /* OOB */
++
++ if (data && !spare)
++ retval = mtd->read(mtd, addr, dev->nDataBytesPerChunk,
++ &dummy, data);
++ else if (spare) {
++ if (dev->useNANDECC) {
++ ops.mode = MTD_OOB_AUTO;
++ ops.ooblen = 8; /* temp hack */
++ } else {
++ ops.mode = MTD_OOB_RAW;
++ ops.ooblen = YAFFS_BYTES_PER_SPARE;
++ }
++ ops.len = data ? dev->nDataBytesPerChunk : ops.ooblen;
++ ops.datbuf = data;
++ ops.ooboffs = 0;
++ ops.oobbuf = spareAsBytes;
++ retval = mtd->read_oob(mtd, addr, &ops);
++ if (dev->useNANDECC)
++ translate_oob2spare(spare, spareAsBytes);
++ }
++#else
++ __u8 *spareAsBytes = (__u8 *) spare;
++
++ if (data && spare) {
++ if (dev->useNANDECC) {
++ /* Careful, this call adds 2 ints */
++ /* to the end of the spare data. Calling function */
++ /* should allocate enough memory for spare, */
++ /* i.e. [YAFFS_BYTES_PER_SPARE+2*sizeof(int)]. */
++ retval =
++ mtd->read_ecc(mtd, addr, dev->nDataBytesPerChunk,
++ &dummy, data, spareAsBytes,
++ &yaffs_oobinfo);
++ } else {
++ retval =
++ mtd->read_ecc(mtd, addr, dev->nDataBytesPerChunk,
++ &dummy, data, spareAsBytes,
++ &yaffs_noeccinfo);
++ }
++ } else {
++ if (data)
++ retval =
++ mtd->read(mtd, addr, dev->nDataBytesPerChunk, &dummy,
++ data);
++ if (spare)
++ retval =
++ mtd->read_oob(mtd, addr, YAFFS_BYTES_PER_SPARE,
++ &dummy, spareAsBytes);
++ }
++#endif
++
++ if (retval == 0)
++ return YAFFS_OK;
++ else
++ return YAFFS_FAIL;
++}
++
++int nandmtd_EraseBlockInNAND(yaffs_Device * dev, int blockNumber)
++{
++ struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice);
++ __u32 addr =
++ ((loff_t) blockNumber) * dev->nDataBytesPerChunk
++ * dev->nChunksPerBlock;
++ struct erase_info ei;
++ int retval = 0;
++
++ ei.mtd = mtd;
++ ei.addr = addr;
++ ei.len = dev->nDataBytesPerChunk * dev->nChunksPerBlock;
++ ei.time = 1000;
++ ei.retries = 2;
++ ei.callback = NULL;
++ ei.priv = (u_long) dev;
++
++ /* Todo finish off the ei if required */
++
++ sema_init(&dev->sem, 0);
++
++ retval = mtd->erase(mtd, &ei);
++
++ if (retval == 0)
++ return YAFFS_OK;
++ else
++ return YAFFS_FAIL;
++}
++
++int nandmtd_InitialiseNAND(yaffs_Device * dev)
++{
++ return YAFFS_OK;
++}
++
+diff --git a/fs/yaffs2/yaffs_mtdif.h b/fs/yaffs2/yaffs_mtdif.h
+new file mode 100644
+index 0000000..511b017
+--- /dev/null
++++ b/fs/yaffs2/yaffs_mtdif.h
+@@ -0,0 +1,32 @@
++/*
++ * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 2.1 as
++ * published by the Free Software Foundation.
++ *
++ * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
++ */
++
++#ifndef __YAFFS_MTDIF_H__
++#define __YAFFS_MTDIF_H__
++
++#include "yaffs_guts.h"
++
++#if (MTD_VERSION_CODE < MTD_VERSION(2,6,18))
++extern struct nand_oobinfo yaffs_oobinfo;
++extern struct nand_oobinfo yaffs_noeccinfo;
++#endif
++
++int nandmtd_WriteChunkToNAND(yaffs_Device * dev, int chunkInNAND,
++ const __u8 * data, const yaffs_Spare * spare);
++int nandmtd_ReadChunkFromNAND(yaffs_Device * dev, int chunkInNAND, __u8 * data,
++ yaffs_Spare * spare);
++int nandmtd_EraseBlockInNAND(yaffs_Device * dev, int blockNumber);
++int nandmtd_InitialiseNAND(yaffs_Device * dev);
++#endif
+diff --git a/fs/yaffs2/yaffs_mtdif1.c b/fs/yaffs2/yaffs_mtdif1.c
+new file mode 100644
+index 0000000..f00d6ef
+--- /dev/null
++++ b/fs/yaffs2/yaffs_mtdif1.c
+@@ -0,0 +1,369 @@
++/*
++ * YAFFS: Yet another FFS. A NAND-flash specific file system.
++ * yaffs_mtdif1.c NAND mtd interface functions for small-page NAND.
++ *
++ * Copyright (C) 2002 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++/*
++ * This module provides the interface between yaffs_nand.c and the
++ * MTD API. This version is used when the MTD interface supports the
++ * 'mtd_oob_ops' style calls to read_oob and write_oob, circa 2.6.17,
++ * and we have small-page NAND device.
++ *
++ * These functions are invoked via function pointers in yaffs_nand.c.
++ * This replaces functionality provided by functions in yaffs_mtdif.c
++ * and the yaffs_TagsCompatability functions in yaffs_tagscompat.c that are
++ * called in yaffs_mtdif.c when the function pointers are NULL.
++ * We assume the MTD layer is performing ECC (useNANDECC is true).
++ */
++
++#include "yportenv.h"
++#include "yaffs_guts.h"
++#include "yaffs_packedtags1.h"
++#include "yaffs_tagscompat.h" // for yaffs_CalcTagsECC
++
++#include "linux/kernel.h"
++#include "linux/version.h"
++#include "linux/types.h"
++#include "linux/mtd/mtd.h"
++
++/* Don't compile this module if we don't have MTD's mtd_oob_ops interface */
++#if (MTD_VERSION_CODE > MTD_VERSION(2,6,17))
++
++const char *yaffs_mtdif1_c_version = "$Id: yaffs_mtdif1.c,v 1.8 2008/07/23 03:35:12 charles Exp $";
++
++#ifndef CONFIG_YAFFS_9BYTE_TAGS
++# define YTAG1_SIZE 8
++#else
++# define YTAG1_SIZE 9
++#endif
++
++#if 0
++/* Use the following nand_ecclayout with MTD when using
++ * CONFIG_YAFFS_9BYTE_TAGS and the older on-NAND tags layout.
++ * If you have existing Yaffs images and the byte order differs from this,
++ * adjust 'oobfree' to match your existing Yaffs data.
++ *
++ * This nand_ecclayout scatters/gathers to/from the old-yaffs layout with the
++ * pageStatus byte (at NAND spare offset 4) scattered/gathered from/to
++ * the 9th byte.
++ *
++ * Old-style on-NAND format: T0,T1,T2,T3,P,B,T4,T5,E0,E1,E2,T6,T7,E3,E4,E5
++ * We have/need PackedTags1 plus pageStatus: T0,T1,T2,T3,T4,T5,T6,T7,P
++ * where Tn are the tag bytes, En are MTD's ECC bytes, P is the pageStatus
++ * byte and B is the small-page bad-block indicator byte.
++ */
++static struct nand_ecclayout nand_oob_16 = {
++ .eccbytes = 6,
++ .eccpos = { 8, 9, 10, 13, 14, 15 },
++ .oobavail = 9,
++ .oobfree = { { 0, 4 }, { 6, 2 }, { 11, 2 }, { 4, 1 } }
++};
++#endif
++
++/* Write a chunk (page) of data to NAND.
++ *
++ * Caller always provides ExtendedTags data which are converted to a more
++ * compact (packed) form for storage in NAND. A mini-ECC runs over the
++ * contents of the tags meta-data; used to valid the tags when read.
++ *
++ * - Pack ExtendedTags to PackedTags1 form
++ * - Compute mini-ECC for PackedTags1
++ * - Write data and packed tags to NAND.
++ *
++ * Note: Due to the use of the PackedTags1 meta-data which does not include
++ * a full sequence number (as found in the larger PackedTags2 form) it is
++ * necessary for Yaffs to re-write a chunk/page (just once) to mark it as
++ * discarded and dirty. This is not ideal: newer NAND parts are supposed
++ * to be written just once. When Yaffs performs this operation, this
++ * function is called with a NULL data pointer -- calling MTD write_oob
++ * without data is valid usage (2.6.17).
++ *
++ * Any underlying MTD error results in YAFFS_FAIL.
++ * Returns YAFFS_OK or YAFFS_FAIL.
++ */
++int nandmtd1_WriteChunkWithTagsToNAND(yaffs_Device *dev,
++ int chunkInNAND, const __u8 * data, const yaffs_ExtendedTags * etags)
++{
++ struct mtd_info * mtd = dev->genericDevice;
++ int chunkBytes = dev->nDataBytesPerChunk;
++ loff_t addr = ((loff_t)chunkInNAND) * chunkBytes;
++ struct mtd_oob_ops ops;
++ yaffs_PackedTags1 pt1;
++ int retval;
++
++ /* we assume that PackedTags1 and yaffs_Tags are compatible */
++ compile_time_assertion(sizeof(yaffs_PackedTags1) == 12);
++ compile_time_assertion(sizeof(yaffs_Tags) == 8);
++
++ dev->nPageWrites++;
++
++ yaffs_PackTags1(&pt1, etags);
++ yaffs_CalcTagsECC((yaffs_Tags *)&pt1);
++
++ /* When deleting a chunk, the upper layer provides only skeletal
++ * etags, one with chunkDeleted set. However, we need to update the
++ * tags, not erase them completely. So we use the NAND write property
++ * that only zeroed-bits stick and set tag bytes to all-ones and
++ * zero just the (not) deleted bit.
++ */
++#ifndef CONFIG_YAFFS_9BYTE_TAGS
++ if (etags->chunkDeleted) {
++ memset(&pt1, 0xff, 8);
++ /* clear delete status bit to indicate deleted */
++ pt1.deleted = 0;
++ }
++#else
++ ((__u8 *)&pt1)[8] = 0xff;
++ if (etags->chunkDeleted) {
++ memset(&pt1, 0xff, 8);
++ /* zero pageStatus byte to indicate deleted */
++ ((__u8 *)&pt1)[8] = 0;
++ }
++#endif
++
++ memset(&ops, 0, sizeof(ops));
++ ops.mode = MTD_OOB_AUTO;
++ ops.len = (data) ? chunkBytes : 0;
++ ops.ooblen = YTAG1_SIZE;
++ ops.datbuf = (__u8 *)data;
++ ops.oobbuf = (__u8 *)&pt1;
++
++ retval = mtd->write_oob(mtd, addr, &ops);
++ if (retval) {
++ yaffs_trace(YAFFS_TRACE_MTD,
++ "write_oob failed, chunk %d, mtd error %d\n",
++ chunkInNAND, retval);
++ }
++ return retval ? YAFFS_FAIL : YAFFS_OK;
++}
++
++/* Return with empty ExtendedTags but add eccResult.
++ */
++static int rettags(yaffs_ExtendedTags * etags, int eccResult, int retval)
++{
++ if (etags) {
++ memset(etags, 0, sizeof(*etags));
++ etags->eccResult = eccResult;
++ }
++ return retval;
++}
++
++/* Read a chunk (page) from NAND.
++ *
++ * Caller expects ExtendedTags data to be usable even on error; that is,
++ * all members except eccResult and blockBad are zeroed.
++ *
++ * - Check ECC results for data (if applicable)
++ * - Check for blank/erased block (return empty ExtendedTags if blank)
++ * - Check the PackedTags1 mini-ECC (correct if necessary/possible)
++ * - Convert PackedTags1 to ExtendedTags
++ * - Update eccResult and blockBad members to refect state.
++ *
++ * Returns YAFFS_OK or YAFFS_FAIL.
++ */
++int nandmtd1_ReadChunkWithTagsFromNAND(yaffs_Device *dev,
++ int chunkInNAND, __u8 * data, yaffs_ExtendedTags * etags)
++{
++ struct mtd_info * mtd = dev->genericDevice;
++ int chunkBytes = dev->nDataBytesPerChunk;
++ loff_t addr = ((loff_t)chunkInNAND) * chunkBytes;
++ int eccres = YAFFS_ECC_RESULT_NO_ERROR;
++ struct mtd_oob_ops ops;
++ yaffs_PackedTags1 pt1;
++ int retval;
++ int deleted;
++
++ dev->nPageReads++;
++
++ memset(&ops, 0, sizeof(ops));
++ ops.mode = MTD_OOB_AUTO;
++ ops.len = (data) ? chunkBytes : 0;
++ ops.ooblen = YTAG1_SIZE;
++ ops.datbuf = data;
++ ops.oobbuf = (__u8 *)&pt1;
++
++#if (MTD_VERSION_CODE < MTD_VERSION(2,6,20))
++ /* In MTD 2.6.18 to 2.6.19 nand_base.c:nand_do_read_oob() has a bug;
++ * help it out with ops.len = ops.ooblen when ops.datbuf == NULL.
++ */
++ ops.len = (ops.datbuf) ? ops.len : ops.ooblen;
++#endif
++ /* Read page and oob using MTD.
++ * Check status and determine ECC result.
++ */
++ retval = mtd->read_oob(mtd, addr, &ops);
++ if (retval) {
++ yaffs_trace(YAFFS_TRACE_MTD,
++ "read_oob failed, chunk %d, mtd error %d\n",
++ chunkInNAND, retval);
++ }
++
++ switch (retval) {
++ case 0:
++ /* no error */
++ break;
++
++ case -EUCLEAN:
++ /* MTD's ECC fixed the data */
++ eccres = YAFFS_ECC_RESULT_FIXED;
++ dev->eccFixed++;
++ break;
++
++ case -EBADMSG:
++ /* MTD's ECC could not fix the data */
++ dev->eccUnfixed++;
++ /* fall into... */
++ default:
++ rettags(etags, YAFFS_ECC_RESULT_UNFIXED, 0);
++ etags->blockBad = (mtd->block_isbad)(mtd, addr);
++ return YAFFS_FAIL;
++ }
++
++ /* Check for a blank/erased chunk.
++ */
++ if (yaffs_CheckFF((__u8 *)&pt1, 8)) {
++ /* when blank, upper layers want eccResult to be <= NO_ERROR */
++ return rettags(etags, YAFFS_ECC_RESULT_NO_ERROR, YAFFS_OK);
++ }
++
++#ifndef CONFIG_YAFFS_9BYTE_TAGS
++ /* Read deleted status (bit) then return it to it's non-deleted
++ * state before performing tags mini-ECC check. pt1.deleted is
++ * inverted.
++ */
++ deleted = !pt1.deleted;
++ pt1.deleted = 1;
++#else
++ deleted = (yaffs_CountBits(((__u8 *)&pt1)[8]) < 7);
++#endif
++
++ /* Check the packed tags mini-ECC and correct if necessary/possible.
++ */
++ retval = yaffs_CheckECCOnTags((yaffs_Tags *)&pt1);
++ switch (retval) {
++ case 0:
++ /* no tags error, use MTD result */
++ break;
++ case 1:
++ /* recovered tags-ECC error */
++ dev->tagsEccFixed++;
++ if (eccres == YAFFS_ECC_RESULT_NO_ERROR)
++ eccres = YAFFS_ECC_RESULT_FIXED;
++ break;
++ default:
++ /* unrecovered tags-ECC error */
++ dev->tagsEccUnfixed++;
++ return rettags(etags, YAFFS_ECC_RESULT_UNFIXED, YAFFS_FAIL);
++ }
++
++ /* Unpack the tags to extended form and set ECC result.
++ * [set shouldBeFF just to keep yaffs_UnpackTags1 happy]
++ */
++ pt1.shouldBeFF = 0xFFFFFFFF;
++ yaffs_UnpackTags1(etags, &pt1);
++ etags->eccResult = eccres;
++
++ /* Set deleted state */
++ etags->chunkDeleted = deleted;
++ return YAFFS_OK;
++}
++
++/* Mark a block bad.
++ *
++ * This is a persistant state.
++ * Use of this function should be rare.
++ *
++ * Returns YAFFS_OK or YAFFS_FAIL.
++ */
++int nandmtd1_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo)
++{
++ struct mtd_info * mtd = dev->genericDevice;
++ int blocksize = dev->nChunksPerBlock * dev->nDataBytesPerChunk;
++ int retval;
++
++ yaffs_trace(YAFFS_TRACE_BAD_BLOCKS, "marking block %d bad\n", blockNo);
++
++ retval = mtd->block_markbad(mtd, (loff_t)blocksize * blockNo);
++ return (retval) ? YAFFS_FAIL : YAFFS_OK;
++}
++
++/* Check any MTD prerequists.
++ *
++ * Returns YAFFS_OK or YAFFS_FAIL.
++ */
++static int nandmtd1_TestPrerequists(struct mtd_info * mtd)
++{
++ /* 2.6.18 has mtd->ecclayout->oobavail */
++ /* 2.6.21 has mtd->ecclayout->oobavail and mtd->oobavail */
++ int oobavail = mtd->ecclayout->oobavail;
++
++ if (oobavail < YTAG1_SIZE) {
++ yaffs_trace(YAFFS_TRACE_ERROR,
++ "mtd device has only %d bytes for tags, need %d\n",
++ oobavail, YTAG1_SIZE);
++ return YAFFS_FAIL;
++ }
++ return YAFFS_OK;
++}
++
++/* Query for the current state of a specific block.
++ *
++ * Examine the tags of the first chunk of the block and return the state:
++ * - YAFFS_BLOCK_STATE_DEAD, the block is marked bad
++ * - YAFFS_BLOCK_STATE_NEEDS_SCANNING, the block is in use
++ * - YAFFS_BLOCK_STATE_EMPTY, the block is clean
++ *
++ * Always returns YAFFS_OK.
++ */
++int nandmtd1_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo,
++ yaffs_BlockState * pState, __u32 *pSequenceNumber)
++{
++ struct mtd_info * mtd = dev->genericDevice;
++ int chunkNo = blockNo * dev->nChunksPerBlock;
++ loff_t addr = (loff_t)chunkNo * dev->nDataBytesPerChunk;
++ yaffs_ExtendedTags etags;
++ int state = YAFFS_BLOCK_STATE_DEAD;
++ int seqnum = 0;
++ int retval;
++
++ /* We don't yet have a good place to test for MTD config prerequists.
++ * Do it here as we are called during the initial scan.
++ */
++ if (nandmtd1_TestPrerequists(mtd) != YAFFS_OK) {
++ return YAFFS_FAIL;
++ }
++
++ retval = nandmtd1_ReadChunkWithTagsFromNAND(dev, chunkNo, NULL, &etags);
++ etags.blockBad = (mtd->block_isbad)(mtd, addr);
++ if (etags.blockBad) {
++ yaffs_trace(YAFFS_TRACE_BAD_BLOCKS,
++ "block %d is marked bad\n", blockNo);
++ state = YAFFS_BLOCK_STATE_DEAD;
++ }
++ else if (etags.eccResult != YAFFS_ECC_RESULT_NO_ERROR) {
++ /* bad tags, need to look more closely */
++ state = YAFFS_BLOCK_STATE_NEEDS_SCANNING;
++ }
++ else if (etags.chunkUsed) {
++ state = YAFFS_BLOCK_STATE_NEEDS_SCANNING;
++ seqnum = etags.sequenceNumber;
++ }
++ else {
++ state = YAFFS_BLOCK_STATE_EMPTY;
++ }
++
++ *pState = state;
++ *pSequenceNumber = seqnum;
++
++ /* query always succeeds */
++ return YAFFS_OK;
++}
++
++#endif /*MTD_VERSION*/
+diff --git a/fs/yaffs2/yaffs_mtdif1.h b/fs/yaffs2/yaffs_mtdif1.h
+new file mode 100644
+index 0000000..5fa056c
+--- /dev/null
++++ b/fs/yaffs2/yaffs_mtdif1.h
+@@ -0,0 +1,28 @@
++/*
++ * YAFFS: Yet another Flash File System. A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 2.1 as
++ * published by the Free Software Foundation.
++ *
++ * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
++ */
++
++#ifndef __YAFFS_MTDIF1_H__
++#define __YAFFS_MTDIF1_H__
++
++int nandmtd1_WriteChunkWithTagsToNAND(yaffs_Device * dev, int chunkInNAND,
++ const __u8 * data, const yaffs_ExtendedTags * tags);
++
++int nandmtd1_ReadChunkWithTagsFromNAND(yaffs_Device * dev, int chunkInNAND,
++ __u8 * data, yaffs_ExtendedTags * tags);
++
++int nandmtd1_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo);
++
++int nandmtd1_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo,
++ yaffs_BlockState * state, __u32 *sequenceNumber);
++
++#endif
+diff --git a/fs/yaffs2/yaffs_mtdif2.c b/fs/yaffs2/yaffs_mtdif2.c
+new file mode 100644
+index 0000000..ff4531b
+--- /dev/null
++++ b/fs/yaffs2/yaffs_mtdif2.c
+@@ -0,0 +1,248 @@
++/*
++ * YAFFS: Yet Another Flash File System. A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++/* mtd interface for YAFFS2 */
++
++const char *yaffs_mtdif2_c_version =
++ "$Id: yaffs_mtdif2.c,v 1.22 2008/11/02 22:47:13 charles Exp $";
++
++#include "yportenv.h"
++
++
++#include "yaffs_mtdif2.h"
++
++#include "linux/mtd/mtd.h"
++#include "linux/types.h"
++#include "linux/time.h"
++
++#include "yaffs_packedtags2.h"
++
++/* NB For use with inband tags....
++ * We assume that the data buffer is of size totalBytersPerChunk so that we can also
++ * use it to load the tags.
++ */
++int nandmtd2_WriteChunkWithTagsToNAND(yaffs_Device * dev, int chunkInNAND,
++ const __u8 * data,
++ const yaffs_ExtendedTags * tags)
++{
++ struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice);
++#if (MTD_VERSION_CODE > MTD_VERSION(2,6,17))
++ struct mtd_oob_ops ops;
++#else
++ size_t dummy;
++#endif
++ int retval = 0;
++
++ loff_t addr;
++
++ yaffs_PackedTags2 pt;
++
++ T(YAFFS_TRACE_MTD,
++ (TSTR
++ ("nandmtd2_WriteChunkWithTagsToNAND chunk %d data %p tags %p"
++ TENDSTR), chunkInNAND, data, tags));
++
++
++ addr = ((loff_t) chunkInNAND) * dev->totalBytesPerChunk;
++
++ /* For yaffs2 writing there must be both data and tags.
++ * If we're using inband tags, then the tags are stuffed into
++ * the end of the data buffer.
++ */
++ if(!data || !tags)
++ BUG();
++ else if(dev->inbandTags){
++ yaffs_PackedTags2TagsPart *pt2tp;
++ pt2tp = (yaffs_PackedTags2TagsPart *)(data + dev->nDataBytesPerChunk);
++ yaffs_PackTags2TagsPart(pt2tp,tags);
++ }
++ else
++ yaffs_PackTags2(&pt, tags);
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
++ ops.mode = MTD_OOB_AUTO;
++ ops.ooblen = (dev->inbandTags) ? 0 : sizeof(pt);
++ ops.len = dev->totalBytesPerChunk;
++ ops.ooboffs = 0;
++ ops.datbuf = (__u8 *)data;
++ ops.oobbuf = (dev->inbandTags) ? NULL : (void *)&pt;
++ retval = mtd->write_oob(mtd, addr, &ops);
++
++#else
++ if (!dev->inbandTags) {
++ retval =
++ mtd->write_ecc(mtd, addr, dev->nDataBytesPerChunk,
++ &dummy, data, (__u8 *) & pt, NULL);
++ } else {
++ retval =
++ mtd->write(mtd, addr, dev->totalBytesPerChunk, &dummy,
++ data);
++ }
++#endif
++
++ if (retval == 0)
++ return YAFFS_OK;
++ else
++ return YAFFS_FAIL;
++}
++
++int nandmtd2_ReadChunkWithTagsFromNAND(yaffs_Device * dev, int chunkInNAND,
++ __u8 * data, yaffs_ExtendedTags * tags)
++{
++ struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice);
++#if (MTD_VERSION_CODE > MTD_VERSION(2,6,17))
++ struct mtd_oob_ops ops;
++#endif
++ size_t dummy;
++ int retval = 0;
++ int localData = 0;
++
++ loff_t addr = ((loff_t) chunkInNAND) * dev->totalBytesPerChunk;
++
++ yaffs_PackedTags2 pt;
++
++ T(YAFFS_TRACE_MTD,
++ (TSTR
++ ("nandmtd2_ReadChunkWithTagsFromNAND chunk %d data %p tags %p"
++ TENDSTR), chunkInNAND, data, tags));
++
++ if(dev->inbandTags){
++
++ if(!data) {
++ localData = 1;
++ data = yaffs_GetTempBuffer(dev,__LINE__);
++ }
++
++
++ }
++
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
++ if (dev->inbandTags || (data && !tags))
++ retval = mtd->read(mtd, addr, dev->totalBytesPerChunk,
++ &dummy, data);
++ else if (tags) {
++ ops.mode = MTD_OOB_AUTO;
++ ops.ooblen = sizeof(pt);
++ ops.len = data ? dev->nDataBytesPerChunk : sizeof(pt);
++ ops.ooboffs = 0;
++ ops.datbuf = data;
++ ops.oobbuf = dev->spareBuffer;
++ retval = mtd->read_oob(mtd, addr, &ops);
++ }
++#else
++ if (!dev->inbandTags && data && tags) {
++
++ retval = mtd->read_ecc(mtd, addr, dev->nDataBytesPerChunk,
++ &dummy, data, dev->spareBuffer,
++ NULL);
++ } else {
++ if (data)
++ retval =
++ mtd->read(mtd, addr, dev->nDataBytesPerChunk, &dummy,
++ data);
++ if (!dev->inbandTags && tags)
++ retval =
++ mtd->read_oob(mtd, addr, mtd->oobsize, &dummy,
++ dev->spareBuffer);
++ }
++#endif
++
++
++ if(dev->inbandTags){
++ if(tags){
++ yaffs_PackedTags2TagsPart * pt2tp;
++ pt2tp = (yaffs_PackedTags2TagsPart *)&data[dev->nDataBytesPerChunk];
++ yaffs_UnpackTags2TagsPart(tags,pt2tp);
++ }
++ }
++ else {
++ if (tags){
++ memcpy(&pt, dev->spareBuffer, sizeof(pt));
++ yaffs_UnpackTags2(tags, &pt);
++ }
++ }
++
++ if(localData)
++ yaffs_ReleaseTempBuffer(dev,data,__LINE__);
++
++ if(tags && retval == -EBADMSG && tags->eccResult == YAFFS_ECC_RESULT_NO_ERROR)
++ tags->eccResult = YAFFS_ECC_RESULT_UNFIXED;
++ if (retval == 0)
++ return YAFFS_OK;
++ else
++ return YAFFS_FAIL;
++}
++
++int nandmtd2_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo)
++{
++ struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice);
++ int retval;
++ T(YAFFS_TRACE_MTD,
++ (TSTR("nandmtd2_MarkNANDBlockBad %d" TENDSTR), blockNo));
++
++ retval =
++ mtd->block_markbad(mtd,
++ blockNo * dev->nChunksPerBlock *
++ dev->totalBytesPerChunk);
++
++ if (retval == 0)
++ return YAFFS_OK;
++ else
++ return YAFFS_FAIL;
++
++}
++
++int nandmtd2_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo,
++ yaffs_BlockState * state, __u32 *sequenceNumber)
++{
++ struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice);
++ int retval;
++
++ T(YAFFS_TRACE_MTD,
++ (TSTR("nandmtd2_QueryNANDBlock %d" TENDSTR), blockNo));
++ retval =
++ mtd->block_isbad(mtd,
++ blockNo * dev->nChunksPerBlock *
++ dev->totalBytesPerChunk);
++
++ if (retval) {
++ T(YAFFS_TRACE_MTD, (TSTR("block is bad" TENDSTR)));
++
++ *state = YAFFS_BLOCK_STATE_DEAD;
++ *sequenceNumber = 0;
++ } else {
++ yaffs_ExtendedTags t;
++ nandmtd2_ReadChunkWithTagsFromNAND(dev,
++ blockNo *
++ dev->nChunksPerBlock, NULL,
++ &t);
++
++ if (t.chunkUsed) {
++ *sequenceNumber = t.sequenceNumber;
++ *state = YAFFS_BLOCK_STATE_NEEDS_SCANNING;
++ } else {
++ *sequenceNumber = 0;
++ *state = YAFFS_BLOCK_STATE_EMPTY;
++ }
++ }
++ T(YAFFS_TRACE_MTD,
++ (TSTR("block is bad seq %d state %d" TENDSTR), *sequenceNumber,
++ *state));
++
++ if (retval == 0)
++ return YAFFS_OK;
++ else
++ return YAFFS_FAIL;
++}
++
+diff --git a/fs/yaffs2/yaffs_mtdif2.h b/fs/yaffs2/yaffs_mtdif2.h
+new file mode 100644
+index 0000000..19f63b3
+--- /dev/null
++++ b/fs/yaffs2/yaffs_mtdif2.h
+@@ -0,0 +1,29 @@
++/*
++ * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 2.1 as
++ * published by the Free Software Foundation.
++ *
++ * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
++ */
++
++#ifndef __YAFFS_MTDIF2_H__
++#define __YAFFS_MTDIF2_H__
++
++#include "yaffs_guts.h"
++int nandmtd2_WriteChunkWithTagsToNAND(yaffs_Device * dev, int chunkInNAND,
++ const __u8 * data,
++ const yaffs_ExtendedTags * tags);
++int nandmtd2_ReadChunkWithTagsFromNAND(yaffs_Device * dev, int chunkInNAND,
++ __u8 * data, yaffs_ExtendedTags * tags);
++int nandmtd2_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo);
++int nandmtd2_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo,
++ yaffs_BlockState * state, __u32 *sequenceNumber);
++
++#endif
+diff --git a/fs/yaffs2/yaffs_nand.c b/fs/yaffs2/yaffs_nand.c
+new file mode 100644
+index 0000000..932b2b5
+--- /dev/null
++++ b/fs/yaffs2/yaffs_nand.c
+@@ -0,0 +1,135 @@
++/*
++ * YAFFS: Yet Another Flash File System. A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++const char *yaffs_nand_c_version =
++ "$Id: yaffs_nand.c,v 1.9 2008/05/05 07:58:58 charles Exp $";
++
++#include "yaffs_nand.h"
++#include "yaffs_tagscompat.h"
++#include "yaffs_tagsvalidity.h"
++
++#include "yaffs_getblockinfo.h"
++
++int yaffs_ReadChunkWithTagsFromNAND(yaffs_Device * dev, int chunkInNAND,
++ __u8 * buffer,
++ yaffs_ExtendedTags * tags)
++{
++ int result;
++ yaffs_ExtendedTags localTags;
++
++ int realignedChunkInNAND = chunkInNAND - dev->chunkOffset;
++
++ /* If there are no tags provided, use local tags to get prioritised gc working */
++ if(!tags)
++ tags = &localTags;
++
++ if (dev->readChunkWithTagsFromNAND)
++ result = dev->readChunkWithTagsFromNAND(dev, realignedChunkInNAND, buffer,
++ tags);
++ else
++ result = yaffs_TagsCompatabilityReadChunkWithTagsFromNAND(dev,
++ realignedChunkInNAND,
++ buffer,
++ tags);
++ if(tags &&
++ tags->eccResult > YAFFS_ECC_RESULT_NO_ERROR){
++
++ yaffs_BlockInfo *bi = yaffs_GetBlockInfo(dev, chunkInNAND/dev->nChunksPerBlock);
++ yaffs_HandleChunkError(dev,bi);
++ }
++
++ return result;
++}
++
++int yaffs_WriteChunkWithTagsToNAND(yaffs_Device * dev,
++ int chunkInNAND,
++ const __u8 * buffer,
++ yaffs_ExtendedTags * tags)
++{
++ chunkInNAND -= dev->chunkOffset;
++
++
++ if (tags) {
++ tags->sequenceNumber = dev->sequenceNumber;
++ tags->chunkUsed = 1;
++ if (!yaffs_ValidateTags(tags)) {
++ T(YAFFS_TRACE_ERROR,
++ (TSTR("Writing uninitialised tags" TENDSTR)));
++ YBUG();
++ }
++ T(YAFFS_TRACE_WRITE,
++ (TSTR("Writing chunk %d tags %d %d" TENDSTR), chunkInNAND,
++ tags->objectId, tags->chunkId));
++ } else {
++ T(YAFFS_TRACE_ERROR, (TSTR("Writing with no tags" TENDSTR)));
++ YBUG();
++ }
++
++ if (dev->writeChunkWithTagsToNAND)
++ return dev->writeChunkWithTagsToNAND(dev, chunkInNAND, buffer,
++ tags);
++ else
++ return yaffs_TagsCompatabilityWriteChunkWithTagsToNAND(dev,
++ chunkInNAND,
++ buffer,
++ tags);
++}
++
++int yaffs_MarkBlockBad(yaffs_Device * dev, int blockNo)
++{
++ blockNo -= dev->blockOffset;
++
++;
++ if (dev->markNANDBlockBad)
++ return dev->markNANDBlockBad(dev, blockNo);
++ else
++ return yaffs_TagsCompatabilityMarkNANDBlockBad(dev, blockNo);
++}
++
++int yaffs_QueryInitialBlockState(yaffs_Device * dev,
++ int blockNo,
++ yaffs_BlockState * state,
++ __u32 *sequenceNumber)
++{
++ blockNo -= dev->blockOffset;
++
++ if (dev->queryNANDBlock)
++ return dev->queryNANDBlock(dev, blockNo, state, sequenceNumber);
++ else
++ return yaffs_TagsCompatabilityQueryNANDBlock(dev, blockNo,
++ state,
++ sequenceNumber);
++}
++
++
++int yaffs_EraseBlockInNAND(struct yaffs_DeviceStruct *dev,
++ int blockInNAND)
++{
++ int result;
++
++ blockInNAND -= dev->blockOffset;
++
++
++ dev->nBlockErasures++;
++ result = dev->eraseBlockInNAND(dev, blockInNAND);
++
++ return result;
++}
++
++int yaffs_InitialiseNAND(struct yaffs_DeviceStruct *dev)
++{
++ return dev->initialiseNAND(dev);
++}
++
++
++
+diff --git a/fs/yaffs2/yaffs_nand.h b/fs/yaffs2/yaffs_nand.h
+new file mode 100644
+index 0000000..5fa334b
+--- /dev/null
++++ b/fs/yaffs2/yaffs_nand.h
+@@ -0,0 +1,44 @@
++/*
++ * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 2.1 as
++ * published by the Free Software Foundation.
++ *
++ * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
++ */
++
++#ifndef __YAFFS_NAND_H__
++#define __YAFFS_NAND_H__
++#include "yaffs_guts.h"
++
++
++
++int yaffs_ReadChunkWithTagsFromNAND(yaffs_Device * dev, int chunkInNAND,
++ __u8 * buffer,
++ yaffs_ExtendedTags * tags);
++
++int yaffs_WriteChunkWithTagsToNAND(yaffs_Device * dev,
++ int chunkInNAND,
++ const __u8 * buffer,
++ yaffs_ExtendedTags * tags);
++
++int yaffs_MarkBlockBad(yaffs_Device * dev, int blockNo);
++
++int yaffs_QueryInitialBlockState(yaffs_Device * dev,
++ int blockNo,
++ yaffs_BlockState * state,
++ unsigned *sequenceNumber);
++
++int yaffs_EraseBlockInNAND(struct yaffs_DeviceStruct *dev,
++ int blockInNAND);
++
++int yaffs_InitialiseNAND(struct yaffs_DeviceStruct *dev);
++
++#endif
++
+diff --git a/fs/yaffs2/yaffs_nandemul2k.h b/fs/yaffs2/yaffs_nandemul2k.h
+new file mode 100644
+index 0000000..c8576b3
+--- /dev/null
++++ b/fs/yaffs2/yaffs_nandemul2k.h
+@@ -0,0 +1,39 @@
++/*
++ * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 2.1 as
++ * published by the Free Software Foundation.
++ *
++ * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
++ */
++
++/* Interface to emulated NAND functions (2k page size) */
++
++#ifndef __YAFFS_NANDEMUL2K_H__
++#define __YAFFS_NANDEMUL2K_H__
++
++#include "yaffs_guts.h"
++
++int nandemul2k_WriteChunkWithTagsToNAND(struct yaffs_DeviceStruct *dev,
++ int chunkInNAND, const __u8 * data,
++ const yaffs_ExtendedTags * tags);
++int nandemul2k_ReadChunkWithTagsFromNAND(struct yaffs_DeviceStruct *dev,
++ int chunkInNAND, __u8 * data,
++ yaffs_ExtendedTags * tags);
++int nandemul2k_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo);
++int nandemul2k_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo,
++ yaffs_BlockState * state, __u32 *sequenceNumber);
++int nandemul2k_EraseBlockInNAND(struct yaffs_DeviceStruct *dev,
++ int blockInNAND);
++int nandemul2k_InitialiseNAND(struct yaffs_DeviceStruct *dev);
++int nandemul2k_GetBytesPerChunk(void);
++int nandemul2k_GetChunksPerBlock(void);
++int nandemul2k_GetNumberOfBlocks(void);
++
++#endif
+diff --git a/fs/yaffs2/yaffs_packedtags1.c b/fs/yaffs2/yaffs_packedtags1.c
+new file mode 100644
+index 0000000..f480bf1
+--- /dev/null
++++ b/fs/yaffs2/yaffs_packedtags1.c
+@@ -0,0 +1,52 @@
++/*
++ * YAFFS: Yet Another Flash File System. A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#include "yaffs_packedtags1.h"
++#include "yportenv.h"
++
++void yaffs_PackTags1(yaffs_PackedTags1 * pt, const yaffs_ExtendedTags * t)
++{
++ pt->chunkId = t->chunkId;
++ pt->serialNumber = t->serialNumber;
++ pt->byteCount = t->byteCount;
++ pt->objectId = t->objectId;
++ pt->ecc = 0;
++ pt->deleted = (t->chunkDeleted) ? 0 : 1;
++ pt->unusedStuff = 0;
++ pt->shouldBeFF = 0xFFFFFFFF;
++
++}
++
++void yaffs_UnpackTags1(yaffs_ExtendedTags * t, const yaffs_PackedTags1 * pt)
++{
++ static const __u8 allFF[] =
++ { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
++0xff };
++
++ if (memcmp(allFF, pt, sizeof(yaffs_PackedTags1))) {
++ t->blockBad = 0;
++ if (pt->shouldBeFF != 0xFFFFFFFF) {
++ t->blockBad = 1;
++ }
++ t->chunkUsed = 1;
++ t->objectId = pt->objectId;
++ t->chunkId = pt->chunkId;
++ t->byteCount = pt->byteCount;
++ t->eccResult = YAFFS_ECC_RESULT_NO_ERROR;
++ t->chunkDeleted = (pt->deleted) ? 0 : 1;
++ t->serialNumber = pt->serialNumber;
++ } else {
++ memset(t, 0, sizeof(yaffs_ExtendedTags));
++
++ }
++}
+diff --git a/fs/yaffs2/yaffs_packedtags1.h b/fs/yaffs2/yaffs_packedtags1.h
+new file mode 100644
+index 0000000..776c5c2
+--- /dev/null
++++ b/fs/yaffs2/yaffs_packedtags1.h
+@@ -0,0 +1,37 @@
++/*
++ * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 2.1 as
++ * published by the Free Software Foundation.
++ *
++ * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
++ */
++
++/* This is used to pack YAFFS1 tags, not YAFFS2 tags. */
++
++#ifndef __YAFFS_PACKEDTAGS1_H__
++#define __YAFFS_PACKEDTAGS1_H__
++
++#include "yaffs_guts.h"
++
++typedef struct {
++ unsigned chunkId:20;
++ unsigned serialNumber:2;
++ unsigned byteCount:10;
++ unsigned objectId:18;
++ unsigned ecc:12;
++ unsigned deleted:1;
++ unsigned unusedStuff:1;
++ unsigned shouldBeFF;
++
++} yaffs_PackedTags1;
++
++void yaffs_PackTags1(yaffs_PackedTags1 * pt, const yaffs_ExtendedTags * t);
++void yaffs_UnpackTags1(yaffs_ExtendedTags * t, const yaffs_PackedTags1 * pt);
++#endif
+diff --git a/fs/yaffs2/yaffs_packedtags2.c b/fs/yaffs2/yaffs_packedtags2.c
+new file mode 100644
+index 0000000..957ed8b
+--- /dev/null
++++ b/fs/yaffs2/yaffs_packedtags2.c
+@@ -0,0 +1,208 @@
++/*
++ * YAFFS: Yet Another Flash File System. A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#include "yaffs_packedtags2.h"
++#include "yportenv.h"
++#include "yaffs_tagsvalidity.h"
++
++/* This code packs a set of extended tags into a binary structure for
++ * NAND storage
++ */
++
++/* Some of the information is "extra" struff which can be packed in to
++ * speed scanning
++ * This is defined by having the EXTRA_HEADER_INFO_FLAG set.
++ */
++
++/* Extra flags applied to chunkId */
++
++#define EXTRA_HEADER_INFO_FLAG 0x80000000
++#define EXTRA_SHRINK_FLAG 0x40000000
++#define EXTRA_SHADOWS_FLAG 0x20000000
++#define EXTRA_SPARE_FLAGS 0x10000000
++
++#define ALL_EXTRA_FLAGS 0xF0000000
++
++/* Also, the top 4 bits of the object Id are set to the object type. */
++#define EXTRA_OBJECT_TYPE_SHIFT (28)
++#define EXTRA_OBJECT_TYPE_MASK ((0x0F) << EXTRA_OBJECT_TYPE_SHIFT)
++
++
++static void yaffs_DumpPackedTags2TagsPart(const yaffs_PackedTags2TagsPart * ptt)
++{
++ T(YAFFS_TRACE_MTD,
++ (TSTR("packed tags obj %d chunk %d byte %d seq %d" TENDSTR),
++ ptt->objectId, ptt->chunkId, ptt->byteCount,
++ ptt->sequenceNumber));
++}
++static void yaffs_DumpPackedTags2(const yaffs_PackedTags2 * pt)
++{
++ yaffs_DumpPackedTags2TagsPart(&pt->t);
++}
++
++static void yaffs_DumpTags2(const yaffs_ExtendedTags * t)
++{
++ T(YAFFS_TRACE_MTD,
++ (TSTR
++ ("ext.tags eccres %d blkbad %d chused %d obj %d chunk%d byte %d del %d ser %d seq %d"
++ TENDSTR), t->eccResult, t->blockBad, t->chunkUsed, t->objectId,
++ t->chunkId, t->byteCount, t->chunkDeleted, t->serialNumber,
++ t->sequenceNumber));
++
++}
++
++void yaffs_PackTags2TagsPart(yaffs_PackedTags2TagsPart * ptt, const yaffs_ExtendedTags * t)
++{
++ ptt->chunkId = t->chunkId;
++ ptt->sequenceNumber = t->sequenceNumber;
++ ptt->byteCount = t->byteCount;
++ ptt->objectId = t->objectId;
++
++ if (t->chunkId == 0 && t->extraHeaderInfoAvailable) {
++ /* Store the extra header info instead */
++ /* We save the parent object in the chunkId */
++ ptt->chunkId = EXTRA_HEADER_INFO_FLAG
++ | t->extraParentObjectId;
++ if (t->extraIsShrinkHeader) {
++ ptt->chunkId |= EXTRA_SHRINK_FLAG;
++ }
++ if (t->extraShadows) {
++ ptt->chunkId |= EXTRA_SHADOWS_FLAG;
++ }
++
++ ptt->objectId &= ~EXTRA_OBJECT_TYPE_MASK;
++ ptt->objectId |=
++ (t->extraObjectType << EXTRA_OBJECT_TYPE_SHIFT);
++
++ if (t->extraObjectType == YAFFS_OBJECT_TYPE_HARDLINK) {
++ ptt->byteCount = t->extraEquivalentObjectId;
++ } else if (t->extraObjectType == YAFFS_OBJECT_TYPE_FILE) {
++ ptt->byteCount = t->extraFileLength;
++ } else {
++ ptt->byteCount = 0;
++ }
++ }
++
++ yaffs_DumpPackedTags2TagsPart(ptt);
++ yaffs_DumpTags2(t);
++}
++
++
++void yaffs_PackTags2(yaffs_PackedTags2 * pt, const yaffs_ExtendedTags * t)
++{
++ yaffs_PackTags2TagsPart(&pt->t,t);
++
++#ifndef YAFFS_IGNORE_TAGS_ECC
++ {
++ yaffs_ECCCalculateOther((unsigned char *)&pt->t,
++ sizeof(yaffs_PackedTags2TagsPart),
++ &pt->ecc);
++ }
++#endif
++}
++
++
++void yaffs_UnpackTags2TagsPart(yaffs_ExtendedTags * t, yaffs_PackedTags2TagsPart * ptt)
++{
++
++ memset(t, 0, sizeof(yaffs_ExtendedTags));
++
++ yaffs_InitialiseTags(t);
++
++ if (ptt->sequenceNumber != 0xFFFFFFFF) {
++ t->blockBad = 0;
++ t->chunkUsed = 1;
++ t->objectId = ptt->objectId;
++ t->chunkId = ptt->chunkId;
++ t->byteCount = ptt->byteCount;
++ t->chunkDeleted = 0;
++ t->serialNumber = 0;
++ t->sequenceNumber = ptt->sequenceNumber;
++
++ /* Do extra header info stuff */
++
++ if (ptt->chunkId & EXTRA_HEADER_INFO_FLAG) {
++ t->chunkId = 0;
++ t->byteCount = 0;
++
++ t->extraHeaderInfoAvailable = 1;
++ t->extraParentObjectId =
++ ptt->chunkId & (~(ALL_EXTRA_FLAGS));
++ t->extraIsShrinkHeader =
++ (ptt->chunkId & EXTRA_SHRINK_FLAG) ? 1 : 0;
++ t->extraShadows =
++ (ptt->chunkId & EXTRA_SHADOWS_FLAG) ? 1 : 0;
++ t->extraObjectType =
++ ptt->objectId >> EXTRA_OBJECT_TYPE_SHIFT;
++ t->objectId &= ~EXTRA_OBJECT_TYPE_MASK;
++
++ if (t->extraObjectType == YAFFS_OBJECT_TYPE_HARDLINK) {
++ t->extraEquivalentObjectId = ptt->byteCount;
++ } else {
++ t->extraFileLength = ptt->byteCount;
++ }
++ }
++ }
++
++ yaffs_DumpPackedTags2TagsPart(ptt);
++ yaffs_DumpTags2(t);
++
++}
++
++
++void yaffs_UnpackTags2(yaffs_ExtendedTags * t, yaffs_PackedTags2 * pt)
++{
++
++ yaffs_UnpackTags2TagsPart(t,&pt->t);
++
++ if (pt->t.sequenceNumber != 0xFFFFFFFF) {
++ /* Page is in use */
++#ifdef YAFFS_IGNORE_TAGS_ECC
++ {
++ t->eccResult = YAFFS_ECC_RESULT_NO_ERROR;
++ }
++#else
++ {
++ yaffs_ECCOther ecc;
++ int result;
++ yaffs_ECCCalculateOther((unsigned char *)&pt->t,
++ sizeof
++ (yaffs_PackedTags2TagsPart),
++ &ecc);
++ result =
++ yaffs_ECCCorrectOther((unsigned char *)&pt->t,
++ sizeof
++ (yaffs_PackedTags2TagsPart),
++ &pt->ecc, &ecc);
++ switch(result){
++ case 0:
++ t->eccResult = YAFFS_ECC_RESULT_NO_ERROR;
++ break;
++ case 1:
++ t->eccResult = YAFFS_ECC_RESULT_FIXED;
++ break;
++ case -1:
++ t->eccResult = YAFFS_ECC_RESULT_UNFIXED;
++ break;
++ default:
++ t->eccResult = YAFFS_ECC_RESULT_UNKNOWN;
++ }
++ }
++#endif
++ }
++
++ yaffs_DumpPackedTags2(pt);
++ yaffs_DumpTags2(t);
++
++}
++
+diff --git a/fs/yaffs2/yaffs_packedtags2.h b/fs/yaffs2/yaffs_packedtags2.h
+new file mode 100644
+index 0000000..75761d3
+--- /dev/null
++++ b/fs/yaffs2/yaffs_packedtags2.h
+@@ -0,0 +1,43 @@
++/*
++ * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 2.1 as
++ * published by the Free Software Foundation.
++ *
++ * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
++ */
++
++/* This is used to pack YAFFS2 tags, not YAFFS1tags. */
++
++#ifndef __YAFFS_PACKEDTAGS2_H__
++#define __YAFFS_PACKEDTAGS2_H__
++
++#include "yaffs_guts.h"
++#include "yaffs_ecc.h"
++
++typedef struct {
++ unsigned sequenceNumber;
++ unsigned objectId;
++ unsigned chunkId;
++ unsigned byteCount;
++} yaffs_PackedTags2TagsPart;
++
++typedef struct {
++ yaffs_PackedTags2TagsPart t;
++ yaffs_ECCOther ecc;
++} yaffs_PackedTags2;
++
++/* Full packed tags with ECC, used for oob tags */
++void yaffs_PackTags2(yaffs_PackedTags2 * pt, const yaffs_ExtendedTags * t);
++void yaffs_UnpackTags2(yaffs_ExtendedTags * t, yaffs_PackedTags2 * pt);
++
++/* Only the tags part (no ECC for use with inband tags */
++void yaffs_PackTags2TagsPart(yaffs_PackedTags2TagsPart * pt, const yaffs_ExtendedTags * t);
++void yaffs_UnpackTags2TagsPart(yaffs_ExtendedTags * t, yaffs_PackedTags2TagsPart * pt);
++#endif
+diff --git a/fs/yaffs2/yaffs_qsort.c b/fs/yaffs2/yaffs_qsort.c
+new file mode 100644
+index 0000000..474be9c
+--- /dev/null
++++ b/fs/yaffs2/yaffs_qsort.c
+@@ -0,0 +1,160 @@
++/*
++ * Copyright (c) 1992, 1993
++ * The Regents of the University of California. 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.
++ * 3. Neither the name of the University nor the names of its contributors
++ * may be used to endorse or promote products derived from this software
++ * without specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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 "yportenv.h"
++//#include <linux/string.h>
++
++/*
++ * Qsort routine from Bentley & McIlroy's "Engineering a Sort Function".
++ */
++#define swapcode(TYPE, parmi, parmj, n) { \
++ long i = (n) / sizeof (TYPE); \
++ register TYPE *pi = (TYPE *) (parmi); \
++ register TYPE *pj = (TYPE *) (parmj); \
++ do { \
++ register TYPE t = *pi; \
++ *pi++ = *pj; \
++ *pj++ = t; \
++ } while (--i > 0); \
++}
++
++#define SWAPINIT(a, es) swaptype = ((char *)a - (char *)0) % sizeof(long) || \
++ es % sizeof(long) ? 2 : es == sizeof(long)? 0 : 1;
++
++static __inline void
++swapfunc(char *a, char *b, int n, int swaptype)
++{
++ if (swaptype <= 1)
++ swapcode(long, a, b, n)
++ else
++ swapcode(char, a, b, n)
++}
++
++#define swap(a, b) \
++ if (swaptype == 0) { \
++ long t = *(long *)(a); \
++ *(long *)(a) = *(long *)(b); \
++ *(long *)(b) = t; \
++ } else \
++ swapfunc(a, b, es, swaptype)
++
++#define vecswap(a, b, n) if ((n) > 0) swapfunc(a, b, n, swaptype)
++
++static __inline char *
++med3(char *a, char *b, char *c, int (*cmp)(const void *, const void *))
++{
++ return cmp(a, b) < 0 ?
++ (cmp(b, c) < 0 ? b : (cmp(a, c) < 0 ? c : a ))
++ :(cmp(b, c) > 0 ? b : (cmp(a, c) < 0 ? a : c ));
++}
++
++#ifndef min
++#define min(a,b) (((a) < (b)) ? (a) : (b))
++#endif
++
++void
++yaffs_qsort(void *aa, size_t n, size_t es,
++ int (*cmp)(const void *, const void *))
++{
++ char *pa, *pb, *pc, *pd, *pl, *pm, *pn;
++ int d, r, swaptype, swap_cnt;
++ register char *a = aa;
++
++loop: SWAPINIT(a, es);
++ swap_cnt = 0;
++ if (n < 7) {
++ for (pm = (char *)a + es; pm < (char *) a + n * es; pm += es)
++ for (pl = pm; pl > (char *) a && cmp(pl - es, pl) > 0;
++ pl -= es)
++ swap(pl, pl - es);
++ return;
++ }
++ pm = (char *)a + (n / 2) * es;
++ if (n > 7) {
++ pl = (char *)a;
++ pn = (char *)a + (n - 1) * es;
++ if (n > 40) {
++ d = (n / 8) * es;
++ pl = med3(pl, pl + d, pl + 2 * d, cmp);
++ pm = med3(pm - d, pm, pm + d, cmp);
++ pn = med3(pn - 2 * d, pn - d, pn, cmp);
++ }
++ pm = med3(pl, pm, pn, cmp);
++ }
++ swap(a, pm);
++ pa = pb = (char *)a + es;
++
++ pc = pd = (char *)a + (n - 1) * es;
++ for (;;) {
++ while (pb <= pc && (r = cmp(pb, a)) <= 0) {
++ if (r == 0) {
++ swap_cnt = 1;
++ swap(pa, pb);
++ pa += es;
++ }
++ pb += es;
++ }
++ while (pb <= pc && (r = cmp(pc, a)) >= 0) {
++ if (r == 0) {
++ swap_cnt = 1;
++ swap(pc, pd);
++ pd -= es;
++ }
++ pc -= es;
++ }
++ if (pb > pc)
++ break;
++ swap(pb, pc);
++ swap_cnt = 1;
++ pb += es;
++ pc -= es;
++ }
++ if (swap_cnt == 0) { /* Switch to insertion sort */
++ for (pm = (char *) a + es; pm < (char *) a + n * es; pm += es)
++ for (pl = pm; pl > (char *) a && cmp(pl - es, pl) > 0;
++ pl -= es)
++ swap(pl, pl - es);
++ return;
++ }
++
++ pn = (char *)a + n * es;
++ r = min(pa - (char *)a, pb - pa);
++ vecswap(a, pb - r, r);
++ r = min((long)(pd - pc), (long)(pn - pd - es));
++ vecswap(pb, pn - r, r);
++ if ((r = pb - pa) > es)
++ yaffs_qsort(a, r / es, es, cmp);
++ if ((r = pd - pc) > es) {
++ /* Iterate rather than recurse to save stack space */
++ a = pn - r;
++ n = r / es;
++ goto loop;
++ }
++/* yaffs_qsort(pn - r, r / es, es, cmp);*/
++}
+diff --git a/fs/yaffs2/yaffs_qsort.h b/fs/yaffs2/yaffs_qsort.h
+new file mode 100644
+index 0000000..610b7ec
+--- /dev/null
++++ b/fs/yaffs2/yaffs_qsort.h
+@@ -0,0 +1,23 @@
++/*
++ * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 2.1 as
++ * published by the Free Software Foundation.
++ *
++ * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
++ */
++
++
++#ifndef __YAFFS_QSORT_H__
++#define __YAFFS_QSORT_H__
++
++extern void yaffs_qsort (void *const base, size_t total_elems, size_t size,
++ int (*cmp)(const void *, const void *));
++
++#endif
+diff --git a/fs/yaffs2/yaffs_tagscompat.c b/fs/yaffs2/yaffs_tagscompat.c
+new file mode 100644
+index 0000000..f6c4053
+--- /dev/null
++++ b/fs/yaffs2/yaffs_tagscompat.c
+@@ -0,0 +1,547 @@
++/*
++ * YAFFS: Yet Another Flash File System. A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#include "yaffs_guts.h"
++#include "yaffs_tagscompat.h"
++#include "yaffs_ecc.h"
++#include "yaffs_getblockinfo.h"
++
++static void yaffs_HandleReadDataError(yaffs_Device * dev, int chunkInNAND);
++#ifdef NOTYET
++static void yaffs_CheckWrittenBlock(yaffs_Device * dev, int chunkInNAND);
++static void yaffs_HandleWriteChunkOk(yaffs_Device * dev, int chunkInNAND,
++ const __u8 * data,
++ const yaffs_Spare * spare);
++static void yaffs_HandleUpdateChunk(yaffs_Device * dev, int chunkInNAND,
++ const yaffs_Spare * spare);
++static void yaffs_HandleWriteChunkError(yaffs_Device * dev, int chunkInNAND);
++#endif
++
++static const char yaffs_countBitsTable[256] = {
++ 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4,
++ 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
++ 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
++ 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
++ 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
++ 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
++ 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
++ 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
++ 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
++ 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
++ 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
++ 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
++ 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
++ 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
++ 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
++ 4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8
++};
++
++int yaffs_CountBits(__u8 x)
++{
++ int retVal;
++ retVal = yaffs_countBitsTable[x];
++ return retVal;
++}
++
++/********** Tags ECC calculations *********/
++
++void yaffs_CalcECC(const __u8 * data, yaffs_Spare * spare)
++{
++ yaffs_ECCCalculate(data, spare->ecc1);
++ yaffs_ECCCalculate(&data[256], spare->ecc2);
++}
++
++void yaffs_CalcTagsECC(yaffs_Tags * tags)
++{
++ /* Calculate an ecc */
++
++ unsigned char *b = ((yaffs_TagsUnion *) tags)->asBytes;
++ unsigned i, j;
++ unsigned ecc = 0;
++ unsigned bit = 0;
++
++ tags->ecc = 0;
++
++ for (i = 0; i < 8; i++) {
++ for (j = 1; j & 0xff; j <<= 1) {
++ bit++;
++ if (b[i] & j) {
++ ecc ^= bit;
++ }
++ }
++ }
++
++ tags->ecc = ecc;
++
++}
++
++int yaffs_CheckECCOnTags(yaffs_Tags * tags)
++{
++ unsigned ecc = tags->ecc;
++
++ yaffs_CalcTagsECC(tags);
++
++ ecc ^= tags->ecc;
++
++ if (ecc && ecc <= 64) {
++ /* TODO: Handle the failure better. Retire? */
++ unsigned char *b = ((yaffs_TagsUnion *) tags)->asBytes;
++
++ ecc--;
++
++ b[ecc / 8] ^= (1 << (ecc & 7));
++
++ /* Now recvalc the ecc */
++ yaffs_CalcTagsECC(tags);
++
++ return 1; /* recovered error */
++ } else if (ecc) {
++ /* Wierd ecc failure value */
++ /* TODO Need to do somethiong here */
++ return -1; /* unrecovered error */
++ }
++
++ return 0;
++}
++
++/********** Tags **********/
++
++static void yaffs_LoadTagsIntoSpare(yaffs_Spare * sparePtr,
++ yaffs_Tags * tagsPtr)
++{
++ yaffs_TagsUnion *tu = (yaffs_TagsUnion *) tagsPtr;
++
++ yaffs_CalcTagsECC(tagsPtr);
++
++ sparePtr->tagByte0 = tu->asBytes[0];
++ sparePtr->tagByte1 = tu->asBytes[1];
++ sparePtr->tagByte2 = tu->asBytes[2];
++ sparePtr->tagByte3 = tu->asBytes[3];
++ sparePtr->tagByte4 = tu->asBytes[4];
++ sparePtr->tagByte5 = tu->asBytes[5];
++ sparePtr->tagByte6 = tu->asBytes[6];
++ sparePtr->tagByte7 = tu->asBytes[7];
++}
++
++static void yaffs_GetTagsFromSpare(yaffs_Device * dev, yaffs_Spare * sparePtr,
++ yaffs_Tags * tagsPtr)
++{
++ yaffs_TagsUnion *tu = (yaffs_TagsUnion *) tagsPtr;
++ int result;
++
++ tu->asBytes[0] = sparePtr->tagByte0;
++ tu->asBytes[1] = sparePtr->tagByte1;
++ tu->asBytes[2] = sparePtr->tagByte2;
++ tu->asBytes[3] = sparePtr->tagByte3;
++ tu->asBytes[4] = sparePtr->tagByte4;
++ tu->asBytes[5] = sparePtr->tagByte5;
++ tu->asBytes[6] = sparePtr->tagByte6;
++ tu->asBytes[7] = sparePtr->tagByte7;
++
++ result = yaffs_CheckECCOnTags(tagsPtr);
++ if (result > 0) {
++ dev->tagsEccFixed++;
++ } else if (result < 0) {
++ dev->tagsEccUnfixed++;
++ }
++}
++
++static void yaffs_SpareInitialise(yaffs_Spare * spare)
++{
++ memset(spare, 0xFF, sizeof(yaffs_Spare));
++}
++
++static int yaffs_WriteChunkToNAND(struct yaffs_DeviceStruct *dev,
++ int chunkInNAND, const __u8 * data,
++ yaffs_Spare * spare)
++{
++ if (chunkInNAND < dev->startBlock * dev->nChunksPerBlock) {
++ T(YAFFS_TRACE_ERROR,
++ (TSTR("**>> yaffs chunk %d is not valid" TENDSTR),
++ chunkInNAND));
++ return YAFFS_FAIL;
++ }
++
++ dev->nPageWrites++;
++ return dev->writeChunkToNAND(dev, chunkInNAND, data, spare);
++}
++
++static int yaffs_ReadChunkFromNAND(struct yaffs_DeviceStruct *dev,
++ int chunkInNAND,
++ __u8 * data,
++ yaffs_Spare * spare,
++ yaffs_ECCResult * eccResult,
++ int doErrorCorrection)
++{
++ int retVal;
++ yaffs_Spare localSpare;
++
++ dev->nPageReads++;
++
++ if (!spare && data) {
++ /* If we don't have a real spare, then we use a local one. */
++ /* Need this for the calculation of the ecc */
++ spare = &localSpare;
++ }
++
++ if (!dev->useNANDECC) {
++ retVal = dev->readChunkFromNAND(dev, chunkInNAND, data, spare);
++ if (data && doErrorCorrection) {
++ /* Do ECC correction */
++ /* Todo handle any errors */
++ int eccResult1, eccResult2;
++ __u8 calcEcc[3];
++
++ yaffs_ECCCalculate(data, calcEcc);
++ eccResult1 =
++ yaffs_ECCCorrect(data, spare->ecc1, calcEcc);
++ yaffs_ECCCalculate(&data[256], calcEcc);
++ eccResult2 =
++ yaffs_ECCCorrect(&data[256], spare->ecc2, calcEcc);
++
++ if (eccResult1 > 0) {
++ T(YAFFS_TRACE_ERROR,
++ (TSTR
++ ("**>>yaffs ecc error fix performed on chunk %d:0"
++ TENDSTR), chunkInNAND));
++ dev->eccFixed++;
++ } else if (eccResult1 < 0) {
++ T(YAFFS_TRACE_ERROR,
++ (TSTR
++ ("**>>yaffs ecc error unfixed on chunk %d:0"
++ TENDSTR), chunkInNAND));
++ dev->eccUnfixed++;
++ }
++
++ if (eccResult2 > 0) {
++ T(YAFFS_TRACE_ERROR,
++ (TSTR
++ ("**>>yaffs ecc error fix performed on chunk %d:1"
++ TENDSTR), chunkInNAND));
++ dev->eccFixed++;
++ } else if (eccResult2 < 0) {
++ T(YAFFS_TRACE_ERROR,
++ (TSTR
++ ("**>>yaffs ecc error unfixed on chunk %d:1"
++ TENDSTR), chunkInNAND));
++ dev->eccUnfixed++;
++ }
++
++ if (eccResult1 || eccResult2) {
++ /* We had a data problem on this page */
++ yaffs_HandleReadDataError(dev, chunkInNAND);
++ }
++
++ if (eccResult1 < 0 || eccResult2 < 0)
++ *eccResult = YAFFS_ECC_RESULT_UNFIXED;
++ else if (eccResult1 > 0 || eccResult2 > 0)
++ *eccResult = YAFFS_ECC_RESULT_FIXED;
++ else
++ *eccResult = YAFFS_ECC_RESULT_NO_ERROR;
++ }
++ } else {
++ /* Must allocate enough memory for spare+2*sizeof(int) */
++ /* for ecc results from device. */
++ struct yaffs_NANDSpare nspare;
++
++ memset(&nspare,0,sizeof(nspare));
++
++ retVal =
++ dev->readChunkFromNAND(dev, chunkInNAND, data,
++ (yaffs_Spare *) & nspare);
++ memcpy(spare, &nspare, sizeof(yaffs_Spare));
++ if (data && doErrorCorrection) {
++ if (nspare.eccres1 > 0) {
++ T(YAFFS_TRACE_ERROR,
++ (TSTR
++ ("**>>mtd ecc error fix performed on chunk %d:0"
++ TENDSTR), chunkInNAND));
++ } else if (nspare.eccres1 < 0) {
++ T(YAFFS_TRACE_ERROR,
++ (TSTR
++ ("**>>mtd ecc error unfixed on chunk %d:0"
++ TENDSTR), chunkInNAND));
++ }
++
++ if (nspare.eccres2 > 0) {
++ T(YAFFS_TRACE_ERROR,
++ (TSTR
++ ("**>>mtd ecc error fix performed on chunk %d:1"
++ TENDSTR), chunkInNAND));
++ } else if (nspare.eccres2 < 0) {
++ T(YAFFS_TRACE_ERROR,
++ (TSTR
++ ("**>>mtd ecc error unfixed on chunk %d:1"
++ TENDSTR), chunkInNAND));
++ }
++
++ if (nspare.eccres1 || nspare.eccres2) {
++ /* We had a data problem on this page */
++ yaffs_HandleReadDataError(dev, chunkInNAND);
++ }
++
++ if (nspare.eccres1 < 0 || nspare.eccres2 < 0)
++ *eccResult = YAFFS_ECC_RESULT_UNFIXED;
++ else if (nspare.eccres1 > 0 || nspare.eccres2 > 0)
++ *eccResult = YAFFS_ECC_RESULT_FIXED;
++ else
++ *eccResult = YAFFS_ECC_RESULT_NO_ERROR;
++
++ }
++ }
++ return retVal;
++}
++
++#ifdef NOTYET
++static int yaffs_CheckChunkErased(struct yaffs_DeviceStruct *dev,
++ int chunkInNAND)
++{
++
++ static int init = 0;
++ static __u8 cmpbuf[YAFFS_BYTES_PER_CHUNK];
++ static __u8 data[YAFFS_BYTES_PER_CHUNK];
++ /* Might as well always allocate the larger size for */
++ /* dev->useNANDECC == true; */
++ static __u8 spare[sizeof(struct yaffs_NANDSpare)];
++
++ dev->readChunkFromNAND(dev, chunkInNAND, data, (yaffs_Spare *) spare);
++
++ if (!init) {
++ memset(cmpbuf, 0xff, YAFFS_BYTES_PER_CHUNK);
++ init = 1;
++ }
++
++ if (memcmp(cmpbuf, data, YAFFS_BYTES_PER_CHUNK))
++ return YAFFS_FAIL;
++ if (memcmp(cmpbuf, spare, 16))
++ return YAFFS_FAIL;
++
++ return YAFFS_OK;
++
++}
++#endif
++
++/*
++ * Functions for robustisizing
++ */
++
++static void yaffs_HandleReadDataError(yaffs_Device * dev, int chunkInNAND)
++{
++ int blockInNAND = chunkInNAND / dev->nChunksPerBlock;
++
++ /* Mark the block for retirement */
++ yaffs_GetBlockInfo(dev, blockInNAND + dev->blockOffset)->needsRetiring = 1;
++ T(YAFFS_TRACE_ERROR | YAFFS_TRACE_BAD_BLOCKS,
++ (TSTR("**>>Block %d marked for retirement" TENDSTR), blockInNAND));
++
++ /* TODO:
++ * Just do a garbage collection on the affected block
++ * then retire the block
++ * NB recursion
++ */
++}
++
++#ifdef NOTYET
++static void yaffs_CheckWrittenBlock(yaffs_Device * dev, int chunkInNAND)
++{
++}
++
++static void yaffs_HandleWriteChunkOk(yaffs_Device * dev, int chunkInNAND,
++ const __u8 * data,
++ const yaffs_Spare * spare)
++{
++}
++
++static void yaffs_HandleUpdateChunk(yaffs_Device * dev, int chunkInNAND,
++ const yaffs_Spare * spare)
++{
++}
++
++static void yaffs_HandleWriteChunkError(yaffs_Device * dev, int chunkInNAND)
++{
++ int blockInNAND = chunkInNAND / dev->nChunksPerBlock;
++
++ /* Mark the block for retirement */
++ yaffs_GetBlockInfo(dev, blockInNAND)->needsRetiring = 1;
++ /* Delete the chunk */
++ yaffs_DeleteChunk(dev, chunkInNAND, 1, __LINE__);
++}
++
++static int yaffs_VerifyCompare(const __u8 * d0, const __u8 * d1,
++ const yaffs_Spare * s0, const yaffs_Spare * s1)
++{
++
++ if (memcmp(d0, d1, YAFFS_BYTES_PER_CHUNK) != 0 ||
++ s0->tagByte0 != s1->tagByte0 ||
++ s0->tagByte1 != s1->tagByte1 ||
++ s0->tagByte2 != s1->tagByte2 ||
++ s0->tagByte3 != s1->tagByte3 ||
++ s0->tagByte4 != s1->tagByte4 ||
++ s0->tagByte5 != s1->tagByte5 ||
++ s0->tagByte6 != s1->tagByte6 ||
++ s0->tagByte7 != s1->tagByte7 ||
++ s0->ecc1[0] != s1->ecc1[0] ||
++ s0->ecc1[1] != s1->ecc1[1] ||
++ s0->ecc1[2] != s1->ecc1[2] ||
++ s0->ecc2[0] != s1->ecc2[0] ||
++ s0->ecc2[1] != s1->ecc2[1] || s0->ecc2[2] != s1->ecc2[2]) {
++ return 0;
++ }
++
++ return 1;
++}
++#endif /* NOTYET */
++
++int yaffs_TagsCompatabilityWriteChunkWithTagsToNAND(yaffs_Device * dev,
++ int chunkInNAND,
++ const __u8 * data,
++ const yaffs_ExtendedTags *
++ eTags)
++{
++ yaffs_Spare spare;
++ yaffs_Tags tags;
++
++ yaffs_SpareInitialise(&spare);
++
++ if (eTags->chunkDeleted) {
++ spare.pageStatus = 0;
++ } else {
++ tags.objectId = eTags->objectId;
++ tags.chunkId = eTags->chunkId;
++
++ tags.byteCountLSB = eTags->byteCount & 0x3ff;
++
++ if(dev->nDataBytesPerChunk >= 1024){
++ tags.byteCountMSB = (eTags->byteCount >> 10) & 3;
++ } else {
++ tags.byteCountMSB = 3;
++ }
++
++
++ tags.serialNumber = eTags->serialNumber;
++
++ if (!dev->useNANDECC && data) {
++ yaffs_CalcECC(data, &spare);
++ }
++ yaffs_LoadTagsIntoSpare(&spare, &tags);
++
++ }
++
++ return yaffs_WriteChunkToNAND(dev, chunkInNAND, data, &spare);
++}
++
++int yaffs_TagsCompatabilityReadChunkWithTagsFromNAND(yaffs_Device * dev,
++ int chunkInNAND,
++ __u8 * data,
++ yaffs_ExtendedTags * eTags)
++{
++
++ yaffs_Spare spare;
++ yaffs_Tags tags;
++ yaffs_ECCResult eccResult = YAFFS_ECC_RESULT_UNKNOWN;
++
++ static yaffs_Spare spareFF;
++ static int init = 0;
++
++ if (!init) {
++ memset(&spareFF, 0xFF, sizeof(spareFF));
++ init = 1;
++ }
++
++ if (yaffs_ReadChunkFromNAND
++ (dev, chunkInNAND, data, &spare, &eccResult, 1)) {
++ /* eTags may be NULL */
++ if (eTags) {
++
++ int deleted =
++ (yaffs_CountBits(spare.pageStatus) < 7) ? 1 : 0;
++
++ eTags->chunkDeleted = deleted;
++ eTags->eccResult = eccResult;
++ eTags->blockBad = 0; /* We're reading it */
++ /* therefore it is not a bad block */
++ eTags->chunkUsed =
++ (memcmp(&spareFF, &spare, sizeof(spareFF)) !=
++ 0) ? 1 : 0;
++
++ if (eTags->chunkUsed) {
++ yaffs_GetTagsFromSpare(dev, &spare, &tags);
++
++ eTags->objectId = tags.objectId;
++ eTags->chunkId = tags.chunkId;
++ eTags->byteCount = tags.byteCountLSB;
++
++ if(dev->nDataBytesPerChunk >= 1024)
++ eTags->byteCount |= (((unsigned) tags.byteCountMSB) << 10);
++
++ eTags->serialNumber = tags.serialNumber;
++ }
++ }
++
++ return YAFFS_OK;
++ } else {
++ return YAFFS_FAIL;
++ }
++}
++
++int yaffs_TagsCompatabilityMarkNANDBlockBad(struct yaffs_DeviceStruct *dev,
++ int blockInNAND)
++{
++
++ yaffs_Spare spare;
++
++ memset(&spare, 0xff, sizeof(yaffs_Spare));
++
++ spare.blockStatus = 'Y';
++
++ yaffs_WriteChunkToNAND(dev, blockInNAND * dev->nChunksPerBlock, NULL,
++ &spare);
++ yaffs_WriteChunkToNAND(dev, blockInNAND * dev->nChunksPerBlock + 1,
++ NULL, &spare);
++
++ return YAFFS_OK;
++
++}
++
++int yaffs_TagsCompatabilityQueryNANDBlock(struct yaffs_DeviceStruct *dev,
++ int blockNo,
++ yaffs_BlockState *state,
++ __u32 *sequenceNumber)
++{
++
++ yaffs_Spare spare0, spare1;
++ static yaffs_Spare spareFF;
++ static int init;
++ yaffs_ECCResult dummy;
++
++ if (!init) {
++ memset(&spareFF, 0xFF, sizeof(spareFF));
++ init = 1;
++ }
++
++ *sequenceNumber = 0;
++
++ yaffs_ReadChunkFromNAND(dev, blockNo * dev->nChunksPerBlock, NULL,
++ &spare0, &dummy, 1);
++ yaffs_ReadChunkFromNAND(dev, blockNo * dev->nChunksPerBlock + 1, NULL,
++ &spare1, &dummy, 1);
++
++ if (yaffs_CountBits(spare0.blockStatus & spare1.blockStatus) < 7)
++ *state = YAFFS_BLOCK_STATE_DEAD;
++ else if (memcmp(&spareFF, &spare0, sizeof(spareFF)) == 0)
++ *state = YAFFS_BLOCK_STATE_EMPTY;
++ else
++ *state = YAFFS_BLOCK_STATE_NEEDS_SCANNING;
++
++ return YAFFS_OK;
++}
+diff --git a/fs/yaffs2/yaffs_tagscompat.h b/fs/yaffs2/yaffs_tagscompat.h
+new file mode 100644
+index 0000000..6549398
+--- /dev/null
++++ b/fs/yaffs2/yaffs_tagscompat.h
+@@ -0,0 +1,41 @@
++/*
++ * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 2.1 as
++ * published by the Free Software Foundation.
++ *
++ * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
++ */
++
++#ifndef __YAFFS_TAGSCOMPAT_H__
++#define __YAFFS_TAGSCOMPAT_H__
++
++#include "yaffs_guts.h"
++int yaffs_TagsCompatabilityWriteChunkWithTagsToNAND(yaffs_Device * dev,
++ int chunkInNAND,
++ const __u8 * data,
++ const yaffs_ExtendedTags *
++ tags);
++int yaffs_TagsCompatabilityReadChunkWithTagsFromNAND(yaffs_Device * dev,
++ int chunkInNAND,
++ __u8 * data,
++ yaffs_ExtendedTags *
++ tags);
++int yaffs_TagsCompatabilityMarkNANDBlockBad(struct yaffs_DeviceStruct *dev,
++ int blockNo);
++int yaffs_TagsCompatabilityQueryNANDBlock(struct yaffs_DeviceStruct *dev,
++ int blockNo,
++ yaffs_BlockState *state,
++ __u32 *sequenceNumber);
++
++void yaffs_CalcTagsECC(yaffs_Tags * tags);
++int yaffs_CheckECCOnTags(yaffs_Tags * tags);
++int yaffs_CountBits(__u8 byte);
++
++#endif
+diff --git a/fs/yaffs2/yaffs_tagsvalidity.c b/fs/yaffs2/yaffs_tagsvalidity.c
+new file mode 100644
+index 0000000..9e0bd1c
+--- /dev/null
++++ b/fs/yaffs2/yaffs_tagsvalidity.c
+@@ -0,0 +1,28 @@
++/*
++ * YAFFS: Yet Another Flash File System. A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#include "yaffs_tagsvalidity.h"
++
++void yaffs_InitialiseTags(yaffs_ExtendedTags * tags)
++{
++ memset(tags, 0, sizeof(yaffs_ExtendedTags));
++ tags->validMarker0 = 0xAAAAAAAA;
++ tags->validMarker1 = 0x55555555;
++}
++
++int yaffs_ValidateTags(yaffs_ExtendedTags * tags)
++{
++ return (tags->validMarker0 == 0xAAAAAAAA &&
++ tags->validMarker1 == 0x55555555);
++
++}
+diff --git a/fs/yaffs2/yaffs_tagsvalidity.h b/fs/yaffs2/yaffs_tagsvalidity.h
+new file mode 100644
+index 0000000..2fd0c24
+--- /dev/null
++++ b/fs/yaffs2/yaffs_tagsvalidity.h
+@@ -0,0 +1,24 @@
++/*
++ * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 2.1 as
++ * published by the Free Software Foundation.
++ *
++ * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
++ */
++
++
++#ifndef __YAFFS_TAGS_VALIDITY_H__
++#define __YAFFS_TAGS_VALIDITY_H__
++
++#include "yaffs_guts.h"
++
++void yaffs_InitialiseTags(yaffs_ExtendedTags * tags);
++int yaffs_ValidateTags(yaffs_ExtendedTags * tags);
++#endif
+diff --git a/fs/yaffs2/yaffsinterface.h b/fs/yaffs2/yaffsinterface.h
+new file mode 100644
+index 0000000..810837a
+--- /dev/null
++++ b/fs/yaffs2/yaffsinterface.h
+@@ -0,0 +1,21 @@
++/*
++ * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 2.1 as
++ * published by the Free Software Foundation.
++ *
++ * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
++ */
++
++#ifndef __YAFFSINTERFACE_H__
++#define __YAFFSINTERFACE_H__
++
++int yaffs_Initialise(unsigned nBlocks);
++
++#endif
+diff --git a/fs/yaffs2/yportenv.h b/fs/yaffs2/yportenv.h
+new file mode 100644
+index 0000000..bfda36e
+--- /dev/null
++++ b/fs/yaffs2/yportenv.h
+@@ -0,0 +1,202 @@
++/*
++ * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
++ *
++ * Copyright (C) 2002-2007 Aleph One Ltd.
++ * for Toby Churchill Ltd and Brightstar Engineering
++ *
++ * Created by Charles Manning <charles@aleph1.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License version 2.1 as
++ * published by the Free Software Foundation.
++ *
++ * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
++ */
++
++
++#ifndef __YPORTENV_H__
++#define __YPORTENV_H__
++
++/*
++ * Define the MTD version in terms of Linux Kernel versions
++ * This allows yaffs to be used independantly of the kernel
++ * as well as with it.
++ */
++
++#define MTD_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
++
++#if defined CONFIG_YAFFS_WINCE
++
++#include "ywinceenv.h"
++
++#elif defined __KERNEL__
++
++#include "moduleconfig.h"
++
++/* Linux kernel */
++
++#include <linux/version.h>
++#define MTD_VERSION_CODE LINUX_VERSION_CODE
++
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19))
++#include <linux/config.h>
++#endif
++#include <linux/kernel.h>
++#include <linux/mm.h>
++#include <linux/sched.h>
++#include <linux/string.h>
++#include <linux/slab.h>
++#include <linux/vmalloc.h>
++
++#define YCHAR char
++#define YUCHAR unsigned char
++#define _Y(x) x
++#define yaffs_strcat(a,b) strcat(a,b)
++#define yaffs_strcpy(a,b) strcpy(a,b)
++#define yaffs_strncpy(a,b,c) strncpy(a,b,c)
++#define yaffs_strncmp(a,b,c) strncmp(a,b,c)
++#define yaffs_strlen(s) strlen(s)
++#define yaffs_sprintf sprintf
++#define yaffs_toupper(a) toupper(a)
++
++#define Y_INLINE inline
++
++#define YAFFS_LOSTNFOUND_NAME "lost+found"
++#define YAFFS_LOSTNFOUND_PREFIX "obj"
++
++/* #define YPRINTF(x) printk x */
++#define YMALLOC(x) kmalloc(x,GFP_KERNEL)
++#define YFREE(x) kfree(x)
++#define YMALLOC_ALT(x) vmalloc(x)
++#define YFREE_ALT(x) vfree(x)
++#define YMALLOC_DMA(x) YMALLOC(x)
++
++// KR - added for use in scan so processes aren't blocked indefinitely.
++#define YYIELD() schedule()
++
++#define YAFFS_ROOT_MODE 0666
++#define YAFFS_LOSTNFOUND_MODE 0666
++
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
++#define Y_CURRENT_TIME CURRENT_TIME.tv_sec
++#define Y_TIME_CONVERT(x) (x).tv_sec
++#else
++#define Y_CURRENT_TIME CURRENT_TIME
++#define Y_TIME_CONVERT(x) (x)
++#endif
++
++#define yaffs_SumCompare(x,y) ((x) == (y))
++#define yaffs_strcmp(a,b) strcmp(a,b)
++
++#define TENDSTR "\n"
++#define TSTR(x) KERN_WARNING x
++#define TOUT(p) printk p
++
++#define yaffs_trace(mask, fmt, args...) \
++ do { if ((mask) & (yaffs_traceMask|YAFFS_TRACE_ERROR)) \
++ printk(KERN_WARNING "yaffs: " fmt, ## args); \
++ } while (0)
++
++#define compile_time_assertion(assertion) \
++ ({ int x = __builtin_choose_expr(assertion, 0, (void)0); (void) x; })
++
++#elif defined CONFIG_YAFFS_DIRECT
++
++#define MTD_VERSION_CODE MTD_VERSION(2,6,22)
++
++/* Direct interface */
++#include "ydirectenv.h"
++
++#elif defined CONFIG_YAFFS_UTIL
++
++/* Stuff for YAFFS utilities */
++
++#include "stdlib.h"
++#include "stdio.h"
++#include "string.h"
++
++#include "devextras.h"
++
++#define YMALLOC(x) malloc(x)
++#define YFREE(x) free(x)
++#define YMALLOC_ALT(x) malloc(x)
++#define YFREE_ALT(x) free(x)
++
++#define YCHAR char
++#define YUCHAR unsigned char
++#define _Y(x) x
++#define yaffs_strcat(a,b) strcat(a,b)
++#define yaffs_strcpy(a,b) strcpy(a,b)
++#define yaffs_strncpy(a,b,c) strncpy(a,b,c)
++#define yaffs_strlen(s) strlen(s)
++#define yaffs_sprintf sprintf
++#define yaffs_toupper(a) toupper(a)
++
++#define Y_INLINE inline
++
++/* #define YINFO(s) YPRINTF(( __FILE__ " %d %s\n",__LINE__,s)) */
++/* #define YALERT(s) YINFO(s) */
++
++#define TENDSTR "\n"
++#define TSTR(x) x
++#define TOUT(p) printf p
++
++#define YAFFS_LOSTNFOUND_NAME "lost+found"
++#define YAFFS_LOSTNFOUND_PREFIX "obj"
++/* #define YPRINTF(x) printf x */
++
++#define YAFFS_ROOT_MODE 0666
++#define YAFFS_LOSTNFOUND_MODE 0666
++
++#define yaffs_SumCompare(x,y) ((x) == (y))
++#define yaffs_strcmp(a,b) strcmp(a,b)
++
++#else
++/* Should have specified a configuration type */
++#error Unknown configuration
++
++#endif
++
++/* see yaffs_fs.c */
++extern unsigned int yaffs_traceMask;
++extern unsigned int yaffs_wr_attempts;
++
++/*
++ * Tracing flags.
++ * The flags masked in YAFFS_TRACE_ALWAYS are always traced.
++ */
++
++#define YAFFS_TRACE_OS 0x00000002
++#define YAFFS_TRACE_ALLOCATE 0x00000004
++#define YAFFS_TRACE_SCAN 0x00000008
++#define YAFFS_TRACE_BAD_BLOCKS 0x00000010
++#define YAFFS_TRACE_ERASE 0x00000020
++#define YAFFS_TRACE_GC 0x00000040
++#define YAFFS_TRACE_WRITE 0x00000080
++#define YAFFS_TRACE_TRACING 0x00000100
++#define YAFFS_TRACE_DELETION 0x00000200
++#define YAFFS_TRACE_BUFFERS 0x00000400
++#define YAFFS_TRACE_NANDACCESS 0x00000800
++#define YAFFS_TRACE_GC_DETAIL 0x00001000
++#define YAFFS_TRACE_SCAN_DEBUG 0x00002000
++#define YAFFS_TRACE_MTD 0x00004000
++#define YAFFS_TRACE_CHECKPOINT 0x00008000
++
++#define YAFFS_TRACE_VERIFY 0x00010000
++#define YAFFS_TRACE_VERIFY_NAND 0x00020000
++#define YAFFS_TRACE_VERIFY_FULL 0x00040000
++#define YAFFS_TRACE_VERIFY_ALL 0x000F0000
++
++
++#define YAFFS_TRACE_ERROR 0x40000000
++#define YAFFS_TRACE_BUG 0x80000000
++#define YAFFS_TRACE_ALWAYS 0xF0000000
++
++
++#define T(mask,p) do{ if((mask) & (yaffs_traceMask | YAFFS_TRACE_ALWAYS)) TOUT(p);} while(0)
++
++#ifndef YBUG
++#define YBUG() do {T(YAFFS_TRACE_BUG,(TSTR("==>> yaffs bug: " __FILE__ " %d" TENDSTR),__LINE__));} while(0)
++#endif
++
++#endif
+diff --git a/include/asm-arm/arch-s3c2410/gpio.h b/include/asm-arm/arch-s3c2410/gpio.h
+index c1b9a09..6cd4eb6 100644
+--- a/include/asm-arm/arch-s3c2410/gpio.h
++++ b/include/asm-arm/arch-s3c2410/gpio.h
+@@ -87,6 +87,7 @@ static inline void gpio_free(unsigned int gpio)
+ static inline int gpio_direction_input(unsigned int gpio)
+ {
+ s3c_gpio_cfgpin(gpio, S3C_GPIO_INPUT);
++ s3c_gpio_pullup(gpio, 0); // pull-up/down disable
+
+ return 0;
+ }
+diff --git a/include/asm-arm/arch-s3c2410/hardware.h b/include/asm-arm/arch-s3c2410/hardware.h
+index 4c305ba..594c44f 100644
+--- a/include/asm-arm/arch-s3c2410/hardware.h
++++ b/include/asm-arm/arch-s3c2410/hardware.h
+@@ -45,7 +45,7 @@ extern unsigned int s5p_gpio_getcfg(unsigned int pin);
+ * >=0 = interrupt number for the pin
+ */
+
+-//extern int s3c_gpio_getirq(unsigned int pin);
++extern int s3c_gpio_getirq(unsigned int pin);
+
+ /* s3c_gpio_irqfilter
+ *
+@@ -126,7 +126,7 @@ extern unsigned int s3c_gpio_getcfg(unsigned int pin);
+ * >=0 = interrupt number for the pin
+ */
+
+-//extern int s3c_gpio_getirq(unsigned int pin);
++extern int s3c_gpio_getirq(unsigned int pin);
+
+ /* s3c_gpio_irqfilter
+ *
+diff --git a/include/asm-arm/arch-s3c2410/hsmmc.h b/include/asm-arm/arch-s3c2410/hsmmc.h
+index 5700206..7abe2c0 100644
+--- a/include/asm-arm/arch-s3c2410/hsmmc.h
++++ b/include/asm-arm/arch-s3c2410/hsmmc.h
+@@ -36,8 +36,9 @@ struct s3c_hsmmc_cfg {
+
+ u8 highspeed; /* ENHIGHSPD bit configuration */
+
+- /* feedback delay control configuration (0: mmc, 1: sd) */
+- struct s3c_hsmmc_fd_cfg fd_ctrl[2];
++ u32 max_clock; /* MAX clock for this port */
++ /* feedback delay control configuration (0: mmc, 1: sd, 2:sdio) */
++ struct s3c_hsmmc_fd_cfg fd_ctrl[3];
+
+ /* clock source control */
+ struct s3c_hsmmc_clk_cfg clocks[NUM_OF_HSMMC_CLKSOURCES];
+diff --git a/include/asm-arm/arch-s3c2410/regs-s3c6410-clock.h b/include/asm-arm/arch-s3c2410/regs-s3c6410-clock.h
+new file mode 100644
+index 0000000..5c79755
+--- /dev/null
++++ b/include/asm-arm/arch-s3c2410/regs-s3c6410-clock.h
+@@ -0,0 +1,262 @@
++/* linux/include/asm-arm/arch-s3c2410/regs-s3c6400-clock.h
++ *
++ * Copyright (c) 2003,2004,2005,2006 Simtec Electronics <linux@simtec.co.uk>
++ * http://armlinux.simtec.co.uk/
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * S3C6400 clock register definitions
++*/
++
++#ifndef __ASM_ARM_REGS_CLOCK
++#define __ASM_ARM_REGS_CLOCK "$Id: regs-s3c6410-clock.h,v 1.3 2008/04/10 05:53:03 ihlee215 Exp $"
++
++#define S3C_CLKREG(x) ((x) + S3C24XX_VA_SYSCON)
++
++#define S3C_PLLVAL(_m,_p,_s) ((_m) << 16 | ((_p) << 8) | ((_s)))
++
++#define S3C_APLL_LOCK S3C_CLKREG(0x00)
++#define S3C_MPLL_LOCK S3C_CLKREG(0x04)
++#define S3C_EPLL_LOCK S3C_CLKREG(0x08)
++#define S3C_APLL_CON S3C_CLKREG(0x0C)
++#define S3C_MPLL_CON S3C_CLKREG(0x10)
++#define S3C_EPLL_CON0 S3C_CLKREG(0x14)
++#define S3C_EPLL_CON1 S3C_CLKREG(0x18)
++#define S3C_CLK_SRC S3C_CLKREG(0x1C)
++#define S3C_CLK_SRC2 S3C_CLKREG(0x10C)
++#define S3C_CLK_DIV0 S3C_CLKREG(0x20)
++#define S3C_CLK_DIV1 S3C_CLKREG(0x24)
++#define S3C_CLK_DIV2 S3C_CLKREG(0x28)
++#define S3C_CLK_OUT S3C_CLKREG(0x2C)
++#define S3C_HCLK_GATE S3C_CLKREG(0x30)
++#define S3C_PCLK_GATE S3C_CLKREG(0x34)
++#define S3C_SCLK_GATE S3C_CLKREG(0x38)
++#define S3C_AHB_CON0 S3C_CLKREG(0x100)
++#define S3C_AHB_CON1 S3C_CLKREG(0x104)
++#define S3C_AHB_CON2 S3C_CLKREG(0x108)
++#define S3C_SDMA_SEL S3C_CLKREG(0x110)
++#define S3C_SW_RST S3C_CLKREG(0x114)
++#define S3C_SYS_ID S3C_CLKREG(0x118)
++#define S3C_MEM_SYS_CFG S3C_CLKREG(0x120)
++#define S3C_QOS_OVERRIDE0 S3C_CLKREG(0x124)
++#define S3C_QOS_OVERRIDE1 S3C_CLKREG(0x128)
++#define S3C_MEM_CFG_STAT S3C_CLKREG(0x12C)
++#define S3C_PWR_CFG S3C_CLKREG(0x804)
++#define S3C_EINT_MASK S3C_CLKREG(0x808)
++#define S3C_NORMAL_CFG S3C_CLKREG(0x810)
++#define S3C_STOP_CFG S3C_CLKREG(0x814)
++#define S3C_SLEEP_CFG S3C_CLKREG(0x818)
++#define S3C_OSC_FREQ S3C_CLKREG(0x820)
++#define S3C_OSC_STABLE S3C_CLKREG(0x824)
++#define S3C_PWR_STABLE S3C_CLKREG(0x828)
++#define S3C_FPC_STABLE S3C_CLKREG(0x82C)
++#define S3C_MTC_STABLE S3C_CLKREG(0x830)
++#define S3C_OTHERS S3C_CLKREG(0x900)
++#define S3C_RST_STAT S3C_CLKREG(0x904)
++#define S3C_WAKEUP_STAT S3C_CLKREG(0x908)
++#define S3C_BLK_PWR_STAT S3C_CLKREG(0x90C)
++#define S3C_INFORM0 S3C_CLKREG(0xA00)
++#define S3C_INFORM1 S3C_CLKREG(0xA04)
++#define S3C_INFORM2 S3C_CLKREG(0xA08)
++#define S3C_INFORM3 S3C_CLKREG(0xA0C)
++#define S3C_INFORM4 S3C_CLKREG(0xA10)
++#define S3C_INFORM5 S3C_CLKREG(0xA14)
++#define S3C_INFORM6 S3C_CLKREG(0xA18)
++#define S3C_INFORM7 S3C_CLKREG(0xA1C)
++
++/* Block power status register bit field */
++#define S3C_BLK_ETM (1<<6)
++#define S3C_BLK_S (1<<5)
++#define S3C_BLK_F (1<<4)
++#define S3C_BLK_P (1<<3)
++#define S3C_BLK_I (1<<2)
++#define S3C_BLK_V (1<<1)
++#define S3C_BLK_TOP (1<<0)
++
++/* Power gating registers */
++#define S3C_PWRGATE_IROM (1<<30)
++#define S3C_PWRGATE_DOMAIN_ETM (1<<16)
++#define S3C_PWRGATE_DOMAIN_S (1<<15)
++#define S3C_PWRGATE_DOMAIN_F (1<<14)
++#define S3C_PWRGATE_DOMAIN_P (1<<13)
++#define S3C_PWRGATE_DOMAIN_I (1<<12)
++#define S3C_PWRGATE_DOMAIN_V (1<<9)
++
++/* MTC stable registers */
++#define S3C_STABLE_DOMAIN_ETM (0xF<<24)
++#define S3C_STABLE_DOMAIN_S (0xF<<20)
++#define S3C_STABLE_DOMAIN_F (0xF<<16)
++#define S3C_STABLE_DOMAIN_P (0xF<<12)
++#define S3C_STABLE_DOMAIN_I (0xF<<8)
++#define S3C_STABLE_DOMAIN_V (0xF<<4)
++#define S3C_STABLE_DOMAIN_TOP (0xF<<0)
++
++/* HCLK GATE Registers */
++#define S3C_CLKCON_HCLK_3DSE (1<<31)
++#define S3C_CLKCON_HCLK_UHOST (1<<29)
++#define S3C_CLKCON_HCLK_SECUR (1<<28)
++#define S3C_CLKCON_HCLK_SDMA1 (1<<27)
++#define S3C_CLKCON_HCLK_SDMA0 (1<<26)
++#define S3C_CLKCON_HCLK_IROM (1<<25)
++#define S3C_CLKCON_HCLK_DDR1 (1<<24)
++#define S3C_CLKCON_HCLK_DDR0 (1<<23)
++#define S3C_CLKCON_HCLK_MEM1 (1<<22)
++#define S3C_CLKCON_HCLK_MEM0 (1<<21)
++#define S3C_CLKCON_HCLK_USB (1<<20)
++#define S3C_CLKCON_HCLK_HSMMC2 (1<<19)
++#define S3C_CLKCON_HCLK_HSMMC1 (1<<18)
++#define S3C_CLKCON_HCLK_HSMMC0 (1<<17)
++#define S3C_CLKCON_HCLK_MDP (1<<16)
++#define S3C_CLKCON_HCLK_DHOST (1<<15)
++#define S3C_CLKCON_HCLK_IHOST (1<<14)
++#define S3C_CLKCON_HCLK_DMA1 (1<<13)
++#define S3C_CLKCON_HCLK_DMA0 (1<<12)
++#define S3C_CLKCON_HCLK_JPEG (1<<11)
++#define S3C_CLKCON_HCLK_CAMIF (1<<10)
++#define S3C_CLKCON_HCLK_SCALER (1<<9)
++#define S3C_CLKCON_HCLK_2D (1<<8)
++#define S3C_CLKCON_HCLK_TV (1<<7)
++#define S3C_CLKCON_HCLK_POST0 (1<<5)
++#define S3C_CLKCON_HCLK_ROT (1<<4)
++#define S3C_CLKCON_HCLK_LCD (1<<3)
++#define S3C_CLKCON_HCLK_TZIC (1<<2)
++#define S3C_CLKCON_HCLK_INTC (1<<1)
++#define S3C_CLKCON_HCLK_MFC (1<<0)
++
++/* PCLK GATE Registers */
++#define S3C_CLKCON_PCLK_IIC1 (1<<27)
++#define S3C_CLKCON_PCLK_IIS2 (1<<26)
++#define S3C_CLKCON_PCLK_SKEY (1<<24)
++#define S3C_CLKCON_PCLK_CHIPID (1<<23)
++#define S3C_CLKCON_PCLK_SPI1 (1<<22)
++#define S3C_CLKCON_PCLK_SPI0 (1<<21)
++#define S3C_CLKCON_PCLK_HSIRX (1<<20)
++#define S3C_CLKCON_PCLK_HSITX (1<<19)
++#define S3C_CLKCON_PCLK_GPIO (1<<18)
++#define S3C_CLKCON_PCLK_IIC (1<<17)
++#define S3C_CLKCON_PCLK_IIS1 (1<<16)
++#define S3C_CLKCON_PCLK_IIS0 (1<<15)
++#define S3C_CLKCON_PCLK_AC97 (1<<14)
++#define S3C_CLKCON_PCLK_TZPC (1<<13)
++#define S3C_CLKCON_PCLK_TSADC (1<<12)
++#define S3C_CLKCON_PCLK_KEYPAD (1<<11)
++#define S3C_CLKCON_PCLK_IRDA (1<<10)
++#define S3C_CLKCON_PCLK_PCM1 (1<<9)
++#define S3C_CLKCON_PCLK_PCM0 (1<<8)
++#define S3C_CLKCON_PCLK_PWM (1<<7)
++#define S3C_CLKCON_PCLK_RTC (1<<6)
++#define S3C_CLKCON_PCLK_WDT (1<<5)
++#define S3C_CLKCON_PCLK_UART3 (1<<4)
++#define S3C_CLKCON_PCLK_UART2 (1<<3)
++#define S3C_CLKCON_PCLK_UART1 (1<<2)
++#define S3C_CLKCON_PCLK_UART0 (1<<1)
++#define S3C_CLKCON_PCLK_MFC (1<<0)
++
++/* SCLK GATE Registers */
++#define S3C_CLKCON_SCLK_UHOST (1<<30)
++#define S3C_CLKCON_SCLK_MMC2_48 (1<<29)
++#define S3C_CLKCON_SCLK_MMC1_48 (1<<28)
++#define S3C_CLKCON_SCLK_MMC0_48 (1<<27)
++#define S3C_CLKCON_SCLK_MMC2 (1<<26)
++#define S3C_CLKCON_SCLK_MMC1 (1<<25)
++#define S3C_CLKCON_SCLK_MMC0 (1<<24)
++#define S3C_CLKCON_SCLK_SPI1_48 (1<<23)
++#define S3C_CLKCON_SCLK_SPI0_48 (1<<22)
++#define S3C_CLKCON_SCLK_SPI1 (1<<21)
++#define S3C_CLKCON_SCLK_SPI0 (1<<20)
++#define S3C_CLKCON_SCLK_DAC27 (1<<19)
++#define S3C_CLKCON_SCLK_TV27 (1<<18)
++#define S3C_CLKCON_SCLK_SCALER27 (1<<17)
++#define S3C_CLKCON_SCLK_SCALER (1<<16)
++#define S3C_CLKCON_SCLK_LCD27 (1<<15)
++#define S3C_CLKCON_SCLK_LCD (1<<14)
++#define S3C_CLKCON_SCLK_FIMC (1<<13)
++#define S3C_CLKCON_SCLK_POST0_27 (1<<12)
++#define S3C_CLKCON_SCLK_AUDIO2 (1<<11)
++#define S3C_CLKCON_SCLK_POST0 (1<<10)
++#define S3C_CLKCON_SCLK_AUDIO1 (1<<9)
++#define S3C_CLKCON_SCLK_AUDIO0 (1<<8)
++#define S3C_CLKCON_SCLK_SECUR (1<<7)
++#define S3C_CLKCON_SCLK_IRDA (1<<6)
++#define S3C_CLKCON_SCLK_UART (1<<5)
++#define S3C_CLKCON_SCLK_ONENAND (1<<4)
++#define S3C_CLKCON_SCLK_MFC (1<<3)
++#define S3C_CLKCON_SCLK_CAM (1<<2)
++#define S3C_CLKCON_SCLK_JPEG (1<<1)
++
++/*OTHERS Resgister */
++#define S3C_OTHERS_USB_SIG_MASK (1<<16)
++
++/*CLK SRC BITS*/
++#define S3C_CLKSRC_APLL_CLKSEL (1<<0)
++#define S3C_CLKSRC_MPLL_CLKSEL (1<<1)
++#define S3C_CLKSRC_EPLL_CLKSEL (1<<2)
++#define S3C_CLKSRC_UHOST_EPLL (1<<5)
++#define S3C_CLKSRC_UHOST_MASK (3<<5)
++#if 0
++#define S3C_CLKSRC_CAM_CLKSEL_HCLK (1<<9)
++#define S3C_CLKSRC_I2SDIV_CLKSRC (1<<10)
++#define S3C_CLKSRC_I2SCLK_CLKSEL (1<<11)
++#define S3C_CLKSRC_UARTDIV_CLKSRC (1<<12)
++#define S3C_CLKSRC_SPIDIV_CLKSRC (1<<13)
++#endif
++
++/*CLKDIV1 Reg bits */
++#define S3C_CLKDIV1_USBDIV2 (1<<20)
++
++#define S3C_CLKDIV1_HSMMCDIV2_MASK (0xf<<8)
++#define S3C_CLKDIV1_HSMMCDIV2_SHIFT (8)
++#define S3C_CLKDIV1_HSMMCDIV1_MASK (0xf<<4)
++#define S3C_CLKDIV1_HSMMCDIV1_SHIFT (4)
++#define S3C_CLKDIV1_HSMMCDIV0_MASK (0xf<<0)
++#define S3C_CLKDIV1_HSMMCDIV0_SHIFT (0)
++#define S3C_CLKDIV1_HSMMCDIV_MASK (0xfff<<0)
++#define S3C_CLKDIV1_HSMMCDIV_SHIFT (0)
++
++/*EPLL_CON0 Reg bits */
++#define S3C_EPLL_EN (1<<31)
++#define S3C_EPLLVAL(_m,_p,_s) ((_m) << 16 | ((_p) << 8) | ((_s)))
++
++
++
++#define S3C_CLKDIVN_APLL_MASK (0xF<<0)
++#define S3C_CLKDIVN_MPLL_MASK (0x1<<4)
++#define S3C_CLKDIVN_HCLK_MASK (0x1<<8)
++#define S3C_CLKDIVN_HCLKX2_MASK (0x7<<9)
++#define S3C_CLKDIVN_PCLK_MASK (0xF<<12)
++#define S3C_CLKDIVN_UHOST_MASK (0xF<<20)
++
++static inline unsigned int
++s3c6400_get_pll(unsigned long pllval, unsigned long baseclk)
++{
++ unsigned long mdiv, pdiv, sdiv;
++
++ /* To prevent overflow in calculation -JaeCheol Lee */
++ baseclk /= 1000;
++
++ mdiv = (pllval & (0x3ff << 16))>>16;
++ pdiv = (pllval & (0x3f << 8))>>8;
++ sdiv = (pllval & (0x03 << 0))>>0;
++ return (baseclk * (mdiv)) / ((pdiv) << sdiv)*1000;
++}
++
++static inline unsigned int
++s3c6400_get_epll(unsigned long baseclk)
++{
++ unsigned long pllval, mdiv, pdiv, sdiv, kdiv;
++
++ /* To prevent overflow in calculation -JaeCheol Lee */
++ baseclk /= 1000;
++
++ pllval = readl(S3C_EPLL_CON0);
++ mdiv = (pllval & (0x3ff << 16))>>16;
++ pdiv = (pllval & (0x3f << 8))>>8;
++ sdiv = (pllval & (0x03 << 0))>>0;
++ kdiv = readl(S3C_EPLL_CON1) & (0xffff);
++
++ return (baseclk * (mdiv+kdiv/65536) / (pdiv << sdiv))*1000;
++}
++
++#endif /* __ASM_ARM_REGS_CLOCK */
+diff --git a/include/asm-arm/arch-s3c2410/reserved_mem.h b/include/asm-arm/arch-s3c2410/reserved_mem.h
+index 4fa5611..ba921a4 100644
+--- a/include/asm-arm/arch-s3c2410/reserved_mem.h
++++ b/include/asm-arm/arch-s3c2410/reserved_mem.h
+@@ -17,7 +17,7 @@
+ //#define CONFIG_RESERVED_MEM_JPEG
+ //#define CONFIG_RESERVED_MEM_JPEG_POST
+ //#define CONFIG_RESERVED_MEM_MFC
+-//#define CONFIG_RESERVED_MEM_MFC_POST
++#define CONFIG_RESERVED_MEM_MFC_POST
+ //#define CONFIG_RESERVED_MEM_JPEG_MFC_POST
+ //#define CONFIG_RESERVED_MEM_JPEG_CAMERA
+ //#define CONFIG_RESERVED_MEM_JPEG_POST_CAMERA
+diff --git a/include/asm-arm/arch-s3c2410/system.h b/include/asm-arm/arch-s3c2410/system.h
+index 91a0d0c..f1c4430 100644
+--- a/include/asm-arm/arch-s3c2410/system.h
++++ b/include/asm-arm/arch-s3c2410/system.h
+@@ -89,6 +89,7 @@ arch_reset(char mode)
+ }
+ #else
+ #define S3C6400_SW_RESET_OFF 0x114
++extern int s3c2410wdt_reboot(void);
+ static void
+ arch_reset(char mode)
+ {
+@@ -101,7 +102,7 @@ arch_reset(char mode)
+
+ printk("arch_reset: attempting watchdog reset\n");
+
+- __raw_writel(0x6400, S3C24XX_VA_SYSCON + S3C6400_SW_RESET_OFF);
++ s3c2410wdt_reboot();
+
+ /* wait for reset to assert... */
+ mdelay(5000);
+diff --git a/include/asm-arm/plat-s3c24xx/devs.h b/include/asm-arm/plat-s3c24xx/devs.h
+index 5dc27eb..899cc73 100644
+--- a/include/asm-arm/plat-s3c24xx/devs.h
++++ b/include/asm-arm/plat-s3c24xx/devs.h
+@@ -75,4 +75,6 @@ extern struct platform_device s3c_device_smc911x;
+
+ #ifdef CONFIG_PLAT_S3C64XX
+ extern struct platform_device s3c_device_usb_otghcd;
++extern struct platform_device s3c_gpio;
+ #endif
++
+diff --git a/include/asm-arm/plat-s3c64xx/hhtech_gpio.h b/include/asm-arm/plat-s3c64xx/hhtech_gpio.h
+new file mode 100644
+index 0000000..8637e5e
+--- /dev/null
++++ b/include/asm-arm/plat-s3c64xx/hhtech_gpio.h
+@@ -0,0 +1,64 @@
++/****************************************************************
++ * $ID: hhtech_gpio.h 三, 18 2月 2009 10:16:56 +0800 wk $ *
++ * *
++ * Description: *
++ * *
++ * Maintainer: wk@hhcn.com *
++ * *
++ * CopyRight (c) 2009 HHTech *
++ * www.hhcn.com, www.hhcn.org *
++ * All rights reserved. *
++ * *
++ * This file is free software; *
++ * you are free to modify and/or redistribute it *
++ * under the terms of the GNU General Public Licence (GPL). *
++ * *
++ * Last modified: Fri, 24 Apr 2009 09:25:41 +0800 by root #
++ ****************************************************************/
++
++
++/*======================================================================
++ * GPIO
++ */
++
++//SD
++#define GPIO_SD_WP S3C_GPK0 /* GPK0 ,SD write protect detect,*/
++
++//USB
++#define GPIO_USB_EN S3C_GPL0 /* GPL0 USB Improving voltage Enable, 1:open 0:off */
++#define GPIO_USB_HOSTPWR_EN S3C_GPL1 /* GPL1 1:5V on 0:5Voff */
++#define GPIO_USB_HOST_STATUS S3C_GPL10 /* GPL10 USB protect status ,0:error*/
++#define GPIO_USB_OTG_STATUS S3C_GPL11 /* GPL11 USB otg Over-current protection status ,0:error*/
++#define GPIO_USB_OTGDRV_EN S3C_GPL8 /* GPL0 USB otg drv Enable, 1:open 0:off */
++
++//Headphone Sperker
++#define GPIO_HEADPHONE_S S3C_GPL12 /* GPL12 headphone audio detect,0:insert */
++#define GPIO_SPEAKER_EN S3C_GPK12 /* GPK12 Speaker 0:off 1:open */
++
++//Backlight
++#define GPIO_LCD_BLIGHT_EN S3C_GPM3 /* GPM3,MP1530 LCD backlight,1:enable 0:off */
++#define GPIO_LCD_BLIGHT_S S3C_GPM4 /* GPM4,MP1530 status */
++
++//Charging
++#define GPIO_DC_DETE S3C_GPL13 /* GPL13 DC insert Detect */
++#define GPIO_CHARG_S1 S3C_GPK4 /* GPK4 ,Charging status 1,*/
++#define GPIO_CHARG_S2 S3C_GPK5 /* GPK5 ,Charging status 2,*/
++#define GPIO_CHARGER_EN S3C_GPK6 /* GPK6 DC 0:200ma 1:860ma */
++
++// System Power
++#define GPIO_PWR_EN S3C_GPK15 /* GPK15 System power control 0:off 1:open */
++#define GPIO_PWR_HOLD S3C_GPL14 /* GPL14 System power hold over 5 second time,pull up GPK15 */
++
++//Vidoe amplifier
++#define GPIO_VIDEOAMP_EN S3C_GPK13 /* GPK13,Vidoe amplifier output control,0:off*/
++
++#define GPIO_WIFI_EN S3C_GPK1 /* Wifi switch*/
++#define GPIO_WIFI_RESET S3C_GPK2 /* Wifi reset*/
++
++#if defined(CONFIG_LCD_4)
++#define GPIO_LED1_EN S3C_GPN8
++#define GPIO_LED2_EN S3C_GPN9
++#else
++#define GPIO_LED1_EN S3C_GPN9
++#define GPIO_LED2_EN S3C_GPN8
++#endif
+diff --git a/include/asm-arm/vfp.h b/include/asm-arm/vfp.h
+index bd6be9d..f4ab34f 100644
+--- a/include/asm-arm/vfp.h
++++ b/include/asm-arm/vfp.h
+@@ -1,5 +1,5 @@
+ /*
+- * linux/include/asm-arm/vfp.h
++ * arch/arm/include/asm/vfp.h
+ *
+ * VFP register definitions.
+ * First, the standard VFP set.
+@@ -7,7 +7,11 @@
+
+ #define FPSID cr0
+ #define FPSCR cr1
++#define MVFR1 cr6
++#define MVFR0 cr7
+ #define FPEXC cr8
++#define FPINST cr9
++#define FPINST2 cr10
+
+ /* FPSID bits */
+ #define FPSID_IMPLEMENTER_BIT (24)
+@@ -28,6 +32,19 @@
+ /* FPEXC bits */
+ #define FPEXC_EX (1 << 31)
+ #define FPEXC_EN (1 << 30)
++#define FPEXC_DEX (1 << 29)
++#define FPEXC_FP2V (1 << 28)
++#define FPEXC_VV (1 << 27)
++#define FPEXC_TFV (1 << 26)
++#define FPEXC_LENGTH_BIT (8)
++#define FPEXC_LENGTH_MASK (7 << FPEXC_LENGTH_BIT)
++#define FPEXC_IDF (1 << 7)
++#define FPEXC_IXF (1 << 4)
++#define FPEXC_UFF (1 << 3)
++#define FPEXC_OFF (1 << 2)
++#define FPEXC_DZF (1 << 1)
++#define FPEXC_IOF (1 << 0)
++#define FPEXC_TRAP_MASK (FPEXC_IDF|FPEXC_IXF|FPEXC_UFF|FPEXC_OFF|FPEXC_DZF|FPEXC_IOF)
+
+ /* FPSCR bits */
+ #define FPSCR_DEFAULT_NAN (1<<25)
+@@ -55,20 +72,9 @@
+ #define FPSCR_IXC (1<<4)
+ #define FPSCR_IDC (1<<7)
+
+-/*
+- * VFP9-S specific.
+- */
+-#define FPINST cr9
+-#define FPINST2 cr10
+-
+-/* FPEXC bits */
+-#define FPEXC_FPV2 (1<<28)
+-#define FPEXC_LENGTH_BIT (8)
+-#define FPEXC_LENGTH_MASK (7 << FPEXC_LENGTH_BIT)
+-#define FPEXC_INV (1 << 7)
+-#define FPEXC_UFC (1 << 3)
+-#define FPEXC_OFC (1 << 2)
+-#define FPEXC_IOC (1 << 0)
++/* MVFR0 bits */
++#define MVFR0_A_SIMD_BIT (0)
++#define MVFR0_A_SIMD_MASK (0xf << MVFR0_A_SIMD_BIT)
+
+ /* Bit patterns for decoding the packaged operation descriptors */
+ #define VFPOPDESC_LENGTH_BIT (9)
+diff --git a/include/asm-arm/vfpmacros.h b/include/asm-arm/vfpmacros.h
+index 27fe028..422f3cc 100644
+--- a/include/asm-arm/vfpmacros.h
++++ b/include/asm-arm/vfpmacros.h
+@@ -1,5 +1,5 @@
+ /*
+- * linux/include/asm-arm/vfpmacros.h
++ * arch/arm/include/asm/vfpmacros.h
+ *
+ * Assembler-only file containing VFP macros and register definitions.
+ */
+@@ -15,19 +15,33 @@
+ .endm
+
+ @ read all the working registers back into the VFP
+- .macro VFPFLDMIA, base
++ .macro VFPFLDMIA, base, tmp
+ #if __LINUX_ARM_ARCH__ < 6
+ LDC p11, cr0, [\base],#33*4 @ FLDMIAX \base!, {d0-d15}
+ #else
+ LDC p11, cr0, [\base],#32*4 @ FLDMIAD \base!, {d0-d15}
+ #endif
++#ifdef CONFIG_VFPv3
++ VFPFMRX \tmp, MVFR0 @ Media and VFP Feature Register 0
++ and \tmp, \tmp, #MVFR0_A_SIMD_MASK @ A_SIMD field
++ cmp \tmp, #2 @ 32 x 64bit registers?
++ ldceql p11, cr0, [\base],#32*4 @ FLDMIAD \base!, {d16-d31}
++ addne \base, \base, #32*4 @ step over unused register space
++#endif
+ .endm
+
+ @ write all the working registers out of the VFP
+- .macro VFPFSTMIA, base
++ .macro VFPFSTMIA, base, tmp
+ #if __LINUX_ARM_ARCH__ < 6
+ STC p11, cr0, [\base],#33*4 @ FSTMIAX \base!, {d0-d15}
+ #else
+ STC p11, cr0, [\base],#32*4 @ FSTMIAD \base!, {d0-d15}
+ #endif
++#ifdef CONFIG_VFPv3
++ VFPFMRX \tmp, MVFR0 @ Media and VFP Feature Register 0
++ and \tmp, \tmp, #MVFR0_A_SIMD_MASK @ A_SIMD field
++ cmp \tmp, #2 @ 32 x 64bit registers?
++ stceql p11, cr0, [\base],#32*4 @ FSTMIAD \base!, {d16-d31}
++ addne \base, \base, #32*4 @ step over unused register space
++#endif
+ .endm
+diff --git a/include/linux/aufs_type.h b/include/linux/aufs_type.h
+new file mode 100644
+index 0000000..cee8d68
+--- /dev/null
++++ b/include/linux/aufs_type.h
+@@ -0,0 +1,127 @@
++/*
++ * Copyright (C) 2005-2009 Junjiro Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++/* $Id: aufs_type.h,v 1.134 2009/01/26 06:24:45 sfjro Exp $ */
++
++#include <linux/ioctl.h>
++
++#ifndef __AUFS_TYPE_H__
++#define __AUFS_TYPE_H__
++
++#define AUFS_VERSION "20090126"
++
++/* move this to linux-2.6.19/include/magic.h */
++#define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's')
++
++/* ---------------------------------------------------------------------- */
++
++#ifdef CONFIG_AUFS_BRANCH_MAX_127
++/* some environments treat 'char' as 'unsigned char' by default */
++typedef signed char aufs_bindex_t;
++#define AUFS_BRANCH_MAX 127
++#else
++typedef short aufs_bindex_t;
++#ifdef CONFIG_AUFS_BRANCH_MAX_511
++#define AUFS_BRANCH_MAX 511
++#elif defined(CONFIG_AUFS_BRANCH_MAX_1023)
++#define AUFS_BRANCH_MAX 1023
++#elif defined(CONFIG_AUFS_BRANCH_MAX_32767)
++#define AUFS_BRANCH_MAX 32767
++#else
++#error unknown CONFIG_AUFS_BRANCH_MAX value
++#endif
++#endif
++
++#define AUFS_NAME "aufs"
++#define AUFS_FSTYPE AUFS_NAME
++
++#define AUFS_ROOT_INO 2
++#define AUFS_FIRST_INO 11
++
++#define AUFS_WH_PFX ".wh."
++#define AUFS_WH_PFX_LEN ((int)sizeof(AUFS_WH_PFX) - 1)
++#define AUFS_XINO_FNAME "." AUFS_NAME ".xino"
++#define AUFS_XINO_DEFPATH "/tmp/" AUFS_XINO_FNAME
++#define AUFS_XINO_TRUNC_INIT 64 /* blocks */
++#define AUFS_XINO_TRUNC_STEP 4 /* blocks */
++#define AUFS_DIRWH_DEF 3
++#define AUFS_RDCACHE_DEF 10 /* seconds */
++#define AUFS_WKQ_NAME AUFS_NAME "d"
++#define AUFS_NWKQ_DEF 4
++#define AUFS_MFS_SECOND_DEF 30 /* seconds */
++#define AUFS_PLINK_WARN 100 /* number of plinks */
++
++#ifdef CONFIG_AUFS_COMPAT
++#define AUFS_DIROPQ_NAME "__dir_opaque"
++#else
++#define AUFS_DIROPQ_NAME AUFS_WH_PFX ".opq" /* whiteouted doubly */
++#endif
++#define AUFS_WH_DIROPQ AUFS_WH_PFX AUFS_DIROPQ_NAME
++
++#define AUFS_BASE_NAME AUFS_WH_PFX AUFS_NAME
++#define AUFS_PLINKDIR_NAME AUFS_WH_PFX "plnk"
++#define AUFS_TMPDIR_NAME AUFS_WH_PFX ".tmp"
++
++/* doubly whiteouted */
++#define AUFS_WH_BASE AUFS_WH_PFX AUFS_BASE_NAME
++#define AUFS_WH_PLINKDIR AUFS_WH_PFX AUFS_PLINKDIR_NAME
++#define AUFS_WH_TMPDIR AUFS_WH_PFX AUFS_TMPDIR_NAME
++
++/* ---------------------------------------------------------------------- */
++
++/* ioctl */
++#if 0 /* reserved for future use */
++enum {
++ AuCtlErr,
++ AuCtlErr_Last
++};
++enum {
++ AuCtl_DIROPQ_GET, AuCtl_DIROPQ_SET,
++ AuCtl_MOVE,
++ AuCtl_MVDOWN,
++
++ /* unimplmented */
++ AuCtl_REFRESH, AuCtl_REFRESHV,
++ AuCtl_FLUSH_PLINK,
++ AuCtl_CPUP,
++ AuCtl_CPDOWN
++};
++
++struct aufs_ctl {
++ int err;
++ aufs_bindex_t bsrc, bdst;
++ char *path;
++};
++
++#define AuCtlType 'A'
++#define AUFS_CTL_DIROPQ_GET _IO(AuCtlType, AuCtl_DIROPQ_GET)
++#define AUFS_CTL_DIROPQ_SET _IOW(AuCtlType, AuCtl_DIROPQ_SET, aufs_bindex_t)
++#define AUFS_CTL_MOVE \
++ _IOW(AuCtlType, AuCtl_MVDOWN, aufs_bindex_t)
++#define AUFS_CTL_MVDOWN \
++ _IOWR(AuCtlType, AuCtl_MVDOWN, struct aufs_ctl)
++
++#define AUFS_CTL_REFRESH _IO(AuCtlType, AuCtl_REFRESH)
++#define AUFS_CTL_REFRESHV _IO(AuCtlType, AuCtl_REFRESHV)
++#define AUFS_CTL_FLUSH_PLINK _IOR(AuCtlType, AuCtl_FLUSH_PLINK)
++#define AUFS_CTL_CPUP _IOWR(AuCtlType, AuCtl_CPUP, struct aufs_ctl)
++#define AUFS_CTL_CPDOWN \
++ _IOWR(AuCtlType, AuCtl_CPDOWN, struct aufs_ctl_cp)
++#endif
++
++#endif /* __AUFS_TYPE_H__ */
+diff --git a/include/linux/gpio_keys.h b/include/linux/gpio_keys.h
+index c6d3a9d..1289fa7 100644
+--- a/include/linux/gpio_keys.h
++++ b/include/linux/gpio_keys.h
+@@ -9,11 +9,13 @@ struct gpio_keys_button {
+ char *desc;
+ int type; /* input event type (EV_KEY, EV_SW) */
+ int wakeup; /* configure the button as a wake-up source */
++ int debounce_interval; /* debounce ticks interval in msecs */
+ };
+
+ struct gpio_keys_platform_data {
+ struct gpio_keys_button *buttons;
+ int nbuttons;
++ unsigned int rep:1; /* enable input subsystem auto repeat */
+ };
+
+ #endif
+diff --git a/kernel/power/main.c b/kernel/power/main.c
+index f71c950..8237545 100644
+--- a/kernel/power/main.c
++++ b/kernel/power/main.c
+@@ -21,6 +21,9 @@
+ #include <linux/freezer.h>
+ #include <linux/vmstat.h>
+ #include <linux/syscalls.h>
++#include <asm/gpio.h>
++#include <asm/arch/gpio.h>
++#include <asm/plat-s3c64xx/hhtech_gpio.h>
+
+ #include "power.h"
+
+@@ -217,7 +220,6 @@ static inline int valid_state(suspend_state_t state)
+ return 1;
+ }
+
+-
+ /**
+ * enter_state - Do common work of entering low-power state.
+ * @state: pm_state structure for state we're entering.
+@@ -231,6 +233,8 @@ static inline int valid_state(suspend_state_t state)
+ static int enter_state(suspend_state_t state)
+ {
+ int error;
++ int usb_otgdrv_en = 0;
++ int dc_status;
+
+ if (!valid_state(state))
+ return -ENODEV;
+@@ -238,6 +242,36 @@ static int enter_state(suspend_state_t state)
+ if (!mutex_trylock(&pm_mutex))
+ return -EBUSY;
+
++#if defined (CONFIG_LCD_4)
++ dc_status = gpio_get_value(GPIO_DC_DETE) ? 1 : 0;
++#else
++ dc_status = gpio_get_value(GPIO_DC_DETE) ? 0 : 1;
++#endif
++
++ if(0 == dc_status) {
++ extern int current_battery;
++ extern unsigned long rtc_wakeup_time;
++
++ if(current_battery > 905) // battery volume > 3.8 v
++ rtc_wakeup_time = 2 * 60 * 60; // 2 hours
++ else if(current_battery > 881) // battery volume > 3.7 v
++ rtc_wakeup_time = 60 * 60; // 1 hours
++ else if(current_battery > 858) // battery volume > 3.6 v
++ rtc_wakeup_time = 30 * 60; // 30 mins
++ else if(current_battery > 846) // battery volume > 3.55 v
++ rtc_wakeup_time = 15 * 60; // 15 mins
++ else if(current_battery > 834) // battery volume > 3.5 v
++ rtc_wakeup_time = 5 * 60; // 5 mins
++ else // battery volume <= 3.5 v
++ rtc_wakeup_time = 60; // 1 mins
++ printk("--->enter_state: rtc_wakeup_time = %ld\n", rtc_wakeup_time);
++ }
++
++ if(gpio_get_value(S3C_GPL8)) {
++ usb_otgdrv_en = 1;
++ gpio_set_value(S3C_GPL8, 0); // close the USB_OTGDRV_EN
++ }
++
+ printk("Syncing filesystems ... ");
+ sys_sync();
+ printk("done.\n");
+@@ -249,6 +283,8 @@ static int enter_state(suspend_state_t state)
+ pr_debug("PM: Entering %s sleep\n", pm_states[state]);
+ error = suspend_devices_and_enter(state);
+
++ if(usb_otgdrv_en)
++ gpio_set_value(S3C_GPL8, 1); // open the USB_OTGDRV_EN
+ pr_debug("PM: Finishing wakeup.\n");
+ suspend_finish();
+ Unlock:
+diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
+index 7be7510..b5193d8 100644
+--- a/sound/soc/codecs/Kconfig
++++ b/sound/soc/codecs/Kconfig
+@@ -17,7 +17,11 @@ config SND_SOC_WM8750
+ config SND_SOC_WM8753
+ tristate
+ depends on SND_SOC
+-
++
++config SND_SOC_WM8987
++ tristate
++ depends on SND_SOC
++
+ config SND_SOC_WM8990
+ tristate
+ depends on SND_SOC
+diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile
+index ca67a02..7559d55 100644
+--- a/sound/soc/codecs/Makefile
++++ b/sound/soc/codecs/Makefile
+@@ -14,6 +14,7 @@ snd-soc-wm8974-objs := wm8974.o
+ snd-soc-wm8976-objs := wm8976.o
+ snd-soc-wm8978-objs := wm8978.o
+ snd-soc-wm8980-objs := wm8980.o
++snd-soc-wm8987-objs := wm8987.o
+ snd-soc-wm8990-objs := wm8990.o
+ snd-soc-wm8991-objs := wm8991.o
+ snd-soc-wm9713-objs := wm9713.o
+@@ -35,6 +36,7 @@ obj-$(CONFIG_SND_SOC_WM8974) += snd-soc-wm8974.o
+ obj-$(CONFIG_SND_SOC_WM8976) += snd-soc-wm8976.o
+ obj-$(CONFIG_SND_SOC_WM8978) += snd-soc-wm8978.o
+ obj-$(CONFIG_SND_SOC_WM8980) += snd-soc-wm8980.o
++obj-$(CONFIG_SND_SOC_WM8987) += snd-soc-wm8987.o
+ obj-$(CONFIG_SND_SOC_WM8990) += snd-soc-wm8990.o
+ obj-$(CONFIG_SND_SOC_WM8991) += snd-soc-wm8991.o
+ obj-$(CONFIG_SND_SOC_WM9712) += snd-soc-wm9712.o
+diff --git a/sound/soc/codecs/wm8987.c b/sound/soc/codecs/wm8987.c
+new file mode 100644
+index 0000000..43028ff
+--- /dev/null
++++ b/sound/soc/codecs/wm8987.c
+@@ -0,0 +1,1330 @@
++/*
++ * wm8987.c -- WM8987 ALSA SoC audio driver
++ *
++ * Copyright 2005 Openedhand Ltd.
++ *
++ * Author: Richard Purdie <richard@openedhand.com>
++ *
++ * Based on WM8987.c
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/init.h>
++#include <linux/delay.h>
++#include <linux/pm.h>
++#include <linux/i2c.h>
++#include <linux/platform_device.h>
++#include <sound/driver.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/pcm_params.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++#include <sound/initval.h>
++
++#ifdef CONFIG_HHBF_FAST_REBOOT
++#include <asm/reboot.h>
++#endif
++
++#include "wm8987.h"
++
++#define AUDIO_NAME "WM8987"
++#define WM8987_VERSION "v0.12"
++
++#include <asm/gpio.h>
++#include <asm/io.h>
++static int volume;
++static struct snd_soc_codec *p_codec = NULL;
++/*
++ * Debug
++ */
++
++//#define WM8987_DEBUG 1
++
++#ifdef WM8987_DEBUG
++#define dbg(format, arg...) \
++ printk(KERN_DEBUG AUDIO_NAME ": " format "\n" , ## arg)
++#else
++#define dbg(format, arg...) do {} while (0)
++#endif
++#define err(format, arg...) \
++ printk(KERN_ERR AUDIO_NAME ": " format "\n" , ## arg)
++#define info(format, arg...) \
++ printk(KERN_INFO AUDIO_NAME ": " format "\n" , ## arg)
++#define warn(format, arg...) \
++ printk(KERN_WARNING AUDIO_NAME ": " format "\n" , ## arg)
++
++/* codec private data */
++#ifndef CONFIG_HHTECH_MINIPMP
++struct wm8987_priv {
++ unsigned int sysclk;
++};
++#else
++static unsigned wm8987_sysclk;
++
++void (*hhbf_audio_switch)(int flag) = NULL;
++EXPORT_SYMBOL(hhbf_audio_switch);
++static unsigned short init_reboot = 0;
++#endif//CONFIG_HHTECH_MINIPMP
++
++/*
++ * wm8987 register cache
++ * We can't read the WM8987 register space when we
++ * are using 2 wire for device control, so we cache them instead.
++ */
++static const u16 wm8987_reg[] = {
++ 0x00b7, 0x0097, 0x0000, 0x0000, /* 0 */
++ 0x0000, 0x0008, 0x0000, 0x002a, /* 4 */
++ 0x0000, 0x0000, 0x007F, 0x007F, /* 8 */
++ 0x000f, 0x000f, 0x0000, 0x0000, /* 12 */
++ 0x0080, 0x007b, 0x0000, 0x0032, /* 16 */
++ 0x0000, 0x00E0, 0x00E0, 0x00c0, /* 20 */
++ 0x0000, 0x0000, 0x0000, 0x0000, /* 24 */
++ 0x0000, 0x0000, 0x0000, 0x0000, /* 28 */
++ 0x0000, 0x0000, 0x0050, 0x0050, /* 32 */
++ 0x0050, 0x0050, 0x0050, 0x0050, /* 36 */
++ 0x0000, 0x0000, 0x0079, /* 40 */
++};
++
++/*
++ * read wm8987 register cache
++ */
++static inline unsigned int wm8987_read_reg_cache(struct snd_soc_codec *codec,
++ unsigned int reg)
++{
++ u16 *cache = codec->reg_cache;
++#ifndef CONFIG_HHTECH_MINIPMP
++ if (reg > WM8987_CACHE_REGNUM)
++#else// mhfan
++ if (reg > ARRAY_SIZE(wm8987_reg))
++#endif//CONFIG_HHTECH_MINIPMP
++ return -1;
++ return cache[reg];
++}
++
++/*
++ * write wm8987 register cache
++ */
++static inline void wm8987_write_reg_cache(struct snd_soc_codec *codec,
++ unsigned int reg, unsigned int value)
++{
++ u16 *cache = codec->reg_cache;
++#ifndef CONFIG_HHTECH_MINIPMP
++ if (reg > WM8987_CACHE_REGNUM)
++#else// mhfan
++ if (reg > ARRAY_SIZE(wm8987_reg))
++#endif//CONFIG_HHTECH_MINIPMP
++ return;
++ cache[reg] = value;
++}
++
++#if 0//def CONFIG_HHTECH_MINIPMP
++static int playtvo = 0;
++#endif//CONFIG_HHTECH_MINIPMP
++
++static int wm8987_write(struct snd_soc_codec *codec, unsigned int reg,
++ unsigned int value)
++{
++ u8 data[2];
++ int pin_level = gpio_get_value(S3C_GPL12);
++
++#if 0 //def CONFIG_SND_SOC_WM8987
++ if((10 == reg || 11 == reg) && value == 0x1C2) value = 0x1C4;
++ if((40 == reg || 41 == reg) && value == 0x1C2) value = 0x1C4;
++#endif
++
++#if 0 /* comment by whg HHTECH */
++#if( !defined(CONFIG_HHBF_I2C_MCU) || (defined(CONFIG_SND_SOC_WM8987)))
++ if (WM8987_PWR2 == reg) { // XXX: FIXME
++ u16 tmp, *cache = codec->reg_cache;
++ if (reg > ARRAY_SIZE(wm8987_reg)) return -EIO;
++ else tmp = cache[reg];
++ #ifdef CONFIG_SND_SOC_WM8987
++ if ( (value & 0x100) && !(tmp & 0x100)) value |= 0x198;
++ if (!(value & 0x080) && (tmp & 0x080)) value &= ~0x198;
++ if ( (value & 0x010) && !(tmp & 0x010)) value |= 0x198;
++ if (!(value & 0x008) && (tmp & 0x008)) value &= ~0x198;
++ if( value == tmp) return 0;
++ #else
++ if ( (value & 0x100) && !(tmp & 0x100)) value |= 0x180;
++ if (!(value & 0x100) && (tmp & 0x100)) value &= ~0x180;
++ if ( (value & 0x040) && !(tmp & 0x040)) value |= 0x07a;
++ if (!(value & 0x040) && (tmp & 0x040)) value &= ~0x07a;
++ if ( (value & ~0x1a) == (tmp & ~0x1a)) return 0;
++ #endif
++ value = 0x198;
++ }
++#endif//CONFIG_HHBF_I2C_MCU
++#endif /* comment by WangGang */
++
++ /* data is
++ * D15..D9 WM8987 register offset
++ * D8...D0 register data
++ */
++ data[0] = (reg << 1) | ((value >> 8) & 0x0001);
++ data[1] = value & 0x00ff;
++
++////////////////////// HHTECH wk ////////////////
++ volume = wm8987_read_reg_cache(codec, WM8987_LDAC);
++ if ((!pin_level)&& (reg==0xa || reg==0xb)){
++ data[1] = (data[1] * 95 /100) & 0x00ff; //0x1be:70% 0x1e8:91% 0x1d9:85% 0x1c9:79%
++ }
++////////////////////// HHTECH wk ////////////////
++#ifdef WM8987_DEBUG
++ if (value == wm8987_read_reg_cache(codec, reg)) return 0;
++
++ printk(KERN_INFO AUDIO_NAME ": 0x%02x%02x, R%02d <= 0x%03x\n",
++ data[0], data[1], reg, value);
++#endif//WM8987_DEBUG
++
++ wm8987_write_reg_cache (codec, reg, value);
++
++#ifdef CONFIG_HHTECH_MINIPMP
++ if (init_reboot) return 0;
++#endif//CONFIG_HHTECH_MINIPMP
++
++ if (codec->hw_write(codec->control_data, data, 2) == 2)
++ return 0;
++ else
++ return -EIO;
++}
++
++#define wm8987_reset(c) wm8987_write(c, WM8987_RESET, 0)
++
++/*
++ * WM8987 Controls
++ */
++static const char *wm8987_bass[] = {"Linear Control", "Adaptive Boost"};
++static const char *wm8987_bass_filter[] = { "130Hz @ 48kHz", "200Hz @ 48kHz" };
++static const char *wm8987_treble[] = {"8kHz", "4kHz"};
++static const char *wm8987_3d_lc[] = {"200Hz", "500Hz"};
++static const char *wm8987_3d_uc[] = {"2.2kHz", "1.5kHz"};
++static const char *wm8987_3d_func[] = {"Capture", "Playback"};
++static const char *wm8987_alc_func[] = {"Off", "Right", "Left", "Stereo"};
++static const char *wm8987_ng_type[] = {"Constant PGA Gain",
++ "Mute ADC Output"};
++static const char *wm8987_line_mux[] = {"Line 1", "Line 2", "Line 3", "PGA",
++ "Differential"};
++static const char *wm8987_pga_sel[] = {"Line 1", "Line 2", "Line 3",
++ "Differential"};
++static const char *wm8987_out3[] = {"VREF", "ROUT1 + Vol", "MonoOut",
++ "ROUT1"};
++static const char *wm8987_diff_sel[] = {"Line 1", "Line 2"};
++static const char *wm8987_adcpol[] = {"Normal", "L Invert", "R Invert",
++ "L + R Invert"};
++static const char *wm8987_deemph[] = {"None", "32Khz", "44.1Khz", "48Khz"};
++static const char *wm8987_mono_mux[] = {"Stereo", "Mono (Left)",
++ "Mono (Right)", "Digital Mono"};
++
++static const struct soc_enum wm8987_enum[] = {
++SOC_ENUM_SINGLE(WM8987_BASS, 7, 2, wm8987_bass),
++SOC_ENUM_SINGLE(WM8987_BASS, 6, 2, wm8987_bass_filter),
++SOC_ENUM_SINGLE(WM8987_TREBLE, 6, 2, wm8987_treble),
++SOC_ENUM_SINGLE(WM8987_3D, 5, 2, wm8987_3d_lc),
++SOC_ENUM_SINGLE(WM8987_3D, 6, 2, wm8987_3d_uc),
++SOC_ENUM_SINGLE(WM8987_3D, 7, 2, wm8987_3d_func),
++SOC_ENUM_SINGLE(WM8987_ALC1, 7, 4, wm8987_alc_func),
++SOC_ENUM_SINGLE(WM8987_NGATE, 1, 2, wm8987_ng_type),
++SOC_ENUM_SINGLE(WM8987_LOUTM1, 0, 5, wm8987_line_mux),
++SOC_ENUM_SINGLE(WM8987_ROUTM1, 0, 5, wm8987_line_mux),
++SOC_ENUM_SINGLE(WM8987_LADCIN, 6, 4, wm8987_pga_sel), /* 10 */
++SOC_ENUM_SINGLE(WM8987_RADCIN, 6, 4, wm8987_pga_sel),
++SOC_ENUM_SINGLE(WM8987_ADCTL2, 7, 4, wm8987_out3),
++SOC_ENUM_SINGLE(WM8987_ADCIN, 8, 2, wm8987_diff_sel),
++SOC_ENUM_SINGLE(WM8987_ADCDAC, 5, 4, wm8987_adcpol),
++SOC_ENUM_SINGLE(WM8987_ADCDAC, 1, 4, wm8987_deemph),
++SOC_ENUM_SINGLE(WM8987_ADCIN, 6, 4, wm8987_mono_mux), /* 16 */
++
++};
++
++static const struct snd_kcontrol_new wm8987_snd_controls[] = {
++
++SOC_DOUBLE_R("Capture Volume", WM8987_LINVOL, WM8987_RINVOL, 0, 63, 0),
++SOC_DOUBLE_R("Capture ZC Switch", WM8987_LINVOL, WM8987_RINVOL, 6, 1, 0),
++SOC_DOUBLE_R("Capture Switch", WM8987_LINVOL, WM8987_RINVOL, 7, 1, 1),
++
++#ifndef CONFIG_HHTECH_MINIPMP
++SOC_DOUBLE_R("Headphone Playback ZC Switch", WM8987_LOUT1V,
++ WM8987_ROUT1V, 7, 1, 0),
++#endif
++SOC_DOUBLE_R("Speaker Playback ZC Switch", WM8987_LOUT2V,
++ WM8987_ROUT2V, 7, 1, 0),
++
++SOC_ENUM("Playback De-emphasis", wm8987_enum[15]),
++
++SOC_ENUM("Capture Polarity", wm8987_enum[14]),
++SOC_SINGLE("Playback 6dB Attenuate", WM8987_ADCDAC, 7, 1, 0),
++SOC_SINGLE("Capture 6dB Attenuate", WM8987_ADCDAC, 8, 1, 0),
++
++#ifndef CONFIG_HHTECH_MINIPMP
++SOC_DOUBLE_R("PCM Volume", WM8987_LDAC, WM8987_RDAC, 0, 255, 0),
++#else// mhfan, XXX:
++SOC_DOUBLE_R("Master Playback Volume", WM8987_LDAC, WM8987_RDAC, 0, 255, 0),
++#endif//CONFIG_HHTECH_MINIPMP
++
++SOC_ENUM("Bass Boost", wm8987_enum[0]),
++SOC_ENUM("Bass Filter", wm8987_enum[1]),
++SOC_SINGLE("Bass Volume", WM8987_BASS, 0, 15, 1),
++
++SOC_SINGLE("Treble Volume", WM8987_TREBLE, 0, 15, 0),
++SOC_ENUM("Treble Cut-off", wm8987_enum[2]),
++
++SOC_SINGLE("3D Switch", WM8987_3D, 0, 1, 0),
++SOC_SINGLE("3D Volume", WM8987_3D, 1, 15, 0),
++SOC_ENUM("3D Lower Cut-off", wm8987_enum[3]),
++SOC_ENUM("3D Upper Cut-off", wm8987_enum[4]),
++SOC_ENUM("3D Mode", wm8987_enum[5]),
++
++SOC_SINGLE("ALC Capture Target Volume", WM8987_ALC1, 0, 7, 0),
++SOC_SINGLE("ALC Capture Max Volume", WM8987_ALC1, 4, 7, 0),
++SOC_ENUM("ALC Capture Function", wm8987_enum[6]),
++SOC_SINGLE("ALC Capture ZC Switch", WM8987_ALC2, 7, 1, 0),
++SOC_SINGLE("ALC Capture Hold Time", WM8987_ALC2, 0, 15, 0),
++SOC_SINGLE("ALC Capture Decay Time", WM8987_ALC3, 4, 15, 0),
++SOC_SINGLE("ALC Capture Attack Time", WM8987_ALC3, 0, 15, 0),
++SOC_SINGLE("ALC Capture NG Threshold", WM8987_NGATE, 3, 31, 0),
++SOC_ENUM("ALC Capture NG Type", wm8987_enum[4]),
++SOC_SINGLE("ALC Capture NG Switch", WM8987_NGATE, 0, 1, 0),
++
++SOC_SINGLE("Left ADC Capture Volume", WM8987_LADC, 0, 255, 0),
++SOC_SINGLE("Right ADC Capture Volume", WM8987_RADC, 0, 255, 0),
++
++SOC_SINGLE("ZC Timeout Switch", WM8987_ADCTL1, 0, 1, 0),
++SOC_SINGLE("Playback Invert Switch", WM8987_ADCTL1, 1, 1, 0),
++
++SOC_SINGLE("Right Speaker Playback Invert Switch", WM8987_ADCTL2, 4, 1, 0),
++
++/* Unimplemented */
++/* ADCDAC Bit 0 - ADCHPD */
++/* ADCDAC Bit 4 - HPOR */
++/* ADCTL1 Bit 2,3 - DATSEL */
++/* ADCTL1 Bit 4,5 - DMONOMIX */
++/* ADCTL1 Bit 6,7 - VSEL */
++/* ADCTL2 Bit 2 - LRCM */
++/* ADCTL2 Bit 3 - TRI */
++/* ADCTL3 Bit 5 - HPFLREN */
++/* ADCTL3 Bit 6 - VROI */
++/* ADCTL3 Bit 7,8 - ADCLRM */
++/* ADCIN Bit 4 - LDCM */
++/* ADCIN Bit 5 - RDCM */
++
++SOC_DOUBLE_R("Mic Boost", WM8987_LADCIN, WM8987_RADCIN, 4, 3, 0),
++
++SOC_DOUBLE_R("Bypass Left Playback Volume", WM8987_LOUTM1,
++ WM8987_LOUTM2, 4, 7, 1),
++SOC_DOUBLE_R("Bypass Right Playback Volume", WM8987_ROUTM1,
++ WM8987_ROUTM2, 4, 7, 1),
++SOC_DOUBLE_R("Bypass Mono Playback Volume", WM8987_MOUTM1,
++ WM8987_MOUTM2, 4, 7, 1),
++
++SOC_SINGLE("Mono Playback ZC Switch", WM8987_MOUTV, 7, 1, 0),
++
++#ifndef CONFIG_HHTECH_MINIPMP
++SOC_DOUBLE_R("Headphone Playback Volume", WM8987_LOUT1V, WM8987_ROUT1V,
++ 0, 127, 0),
++#endif
++SOC_DOUBLE_R("Speaker Playback Volume", WM8987_LOUT2V, WM8987_ROUT2V,
++ 0, 127, 0),
++
++SOC_SINGLE("Mono Playback Volume", WM8987_MOUTV, 0, 127, 0),
++
++};
++
++/* add non dapm controls */
++static int wm8987_add_controls(struct snd_soc_codec *codec)
++{
++ int err, i;
++
++ for (i = 0; i < ARRAY_SIZE(wm8987_snd_controls); i++) {
++ err = snd_ctl_add(codec->card,
++ snd_soc_cnew(&wm8987_snd_controls[i],codec, NULL));
++ if (err < 0)
++ return err;
++ }
++ return 0;
++}
++
++/*
++ * DAPM Controls
++ */
++
++/* Left Mixer */
++static const struct snd_kcontrol_new wm8987_left_mixer_controls[] = {
++SOC_DAPM_SINGLE("Playback Switch", WM8987_LOUTM1, 8, 1, 0),
++SOC_DAPM_SINGLE("Left Bypass Switch", WM8987_LOUTM1, 7, 1, 0),
++SOC_DAPM_SINGLE("Right Playback Switch", WM8987_LOUTM2, 8, 1, 0),
++SOC_DAPM_SINGLE("Right Bypass Switch", WM8987_LOUTM2, 7, 1, 0),
++};
++
++/* Right Mixer */
++static const struct snd_kcontrol_new wm8987_right_mixer_controls[] = {
++SOC_DAPM_SINGLE("Left Playback Switch", WM8987_ROUTM1, 8, 1, 0),
++SOC_DAPM_SINGLE("Left Bypass Switch", WM8987_ROUTM1, 7, 1, 0),
++SOC_DAPM_SINGLE("Playback Switch", WM8987_ROUTM2, 8, 1, 0),
++SOC_DAPM_SINGLE("Right Bypass Switch", WM8987_ROUTM2, 7, 1, 0),
++};
++
++/* Mono Mixer */
++static const struct snd_kcontrol_new wm8987_mono_mixer_controls[] = {
++SOC_DAPM_SINGLE("Left Playback Switch", WM8987_MOUTM1, 8, 1, 0),
++SOC_DAPM_SINGLE("Left Bypass Switch", WM8987_MOUTM1, 7, 1, 0),
++SOC_DAPM_SINGLE("Right Playback Switch", WM8987_MOUTM2, 8, 1, 0),
++SOC_DAPM_SINGLE("Right Bypass Switch", WM8987_MOUTM2, 7, 1, 0),
++};
++
++/* Left Line Mux */
++static const struct snd_kcontrol_new wm8987_left_line_controls =
++SOC_DAPM_ENUM("Route", wm8987_enum[8]);
++
++/* Right Line Mux */
++static const struct snd_kcontrol_new wm8987_right_line_controls =
++SOC_DAPM_ENUM("Route", wm8987_enum[9]);
++
++/* Left PGA Mux */
++static const struct snd_kcontrol_new wm8987_left_pga_controls =
++SOC_DAPM_ENUM("Route", wm8987_enum[10]);
++
++/* Right PGA Mux */
++static const struct snd_kcontrol_new wm8987_right_pga_controls =
++SOC_DAPM_ENUM("Route", wm8987_enum[11]);
++
++/* Out 3 Mux */
++static const struct snd_kcontrol_new wm8987_out3_controls =
++SOC_DAPM_ENUM("Route", wm8987_enum[12]);
++
++/* Differential Mux */
++static const struct snd_kcontrol_new wm8987_diffmux_controls =
++SOC_DAPM_ENUM("Route", wm8987_enum[13]);
++
++/* Mono ADC Mux */
++static const struct snd_kcontrol_new wm8987_monomux_controls =
++SOC_DAPM_ENUM("Route", wm8987_enum[16]);
++
++static const struct snd_soc_dapm_widget wm8987_dapm_widgets[] = {
++ SND_SOC_DAPM_MIXER("Left Mixer", SND_SOC_NOPM, 0, 0,
++ &wm8987_left_mixer_controls[0],
++ ARRAY_SIZE(wm8987_left_mixer_controls)),
++ SND_SOC_DAPM_MIXER("Right Mixer", SND_SOC_NOPM, 0, 0,
++ &wm8987_right_mixer_controls[0],
++ ARRAY_SIZE(wm8987_right_mixer_controls)),
++ SND_SOC_DAPM_MIXER("Mono Mixer", WM8987_PWR2, 2, 0,
++ &wm8987_mono_mixer_controls[0],
++ ARRAY_SIZE(wm8987_mono_mixer_controls)),
++
++ SND_SOC_DAPM_PGA("Right Out 2", WM8987_PWR2, 3, 0, NULL, 0),
++ SND_SOC_DAPM_PGA("Left Out 2", WM8987_PWR2, 4, 0, NULL, 0),
++
++// SND_SOC_DAPM_PGA("Right Out 1", WM8987_PWR2, 5, 0,
++// wm8987_rout1_ctrls, ARRAY_SIZE(wm8987_rout1_ctrls)),
++// SND_SOC_DAPM_PGA("Left Out 1", WM8987_PWR2, 6, 0,
++// wm8987_lout1_ctrls, ARRAY_SIZE(wm8987_lout1_ctrls)),
++ SND_SOC_DAPM_DAC("Right DAC", "Right Playback", WM8987_PWR2, 7, 0),
++ SND_SOC_DAPM_DAC("Left DAC", "Left Playback", WM8987_PWR2, 8, 0),
++
++ SND_SOC_DAPM_MICBIAS("Mic Bias", WM8987_PWR1, 1, 0),
++ //SND_SOC_DAPM_MICBIAS("Mic Bias", WM8987_PWR1, 1, 1), //lzcx
++ SND_SOC_DAPM_ADC("Right ADC", "Right Capture", WM8987_PWR1, 2, 0),
++ SND_SOC_DAPM_ADC("Left ADC", "Left Capture", WM8987_PWR1, 3, 0),
++
++ SND_SOC_DAPM_MUX("Left PGA Mux", WM8987_PWR1, 5, 0,
++ &wm8987_left_pga_controls),
++ SND_SOC_DAPM_MUX("Right PGA Mux", WM8987_PWR1, 4, 0,
++ &wm8987_right_pga_controls),
++ SND_SOC_DAPM_MUX("Left Line Mux", SND_SOC_NOPM, 0, 0,
++ &wm8987_left_line_controls),
++ SND_SOC_DAPM_MUX("Right Line Mux", SND_SOC_NOPM, 0, 0,
++ &wm8987_right_line_controls),
++
++ SND_SOC_DAPM_MUX("Out3 Mux", SND_SOC_NOPM, 0, 0, &wm8987_out3_controls),
++ SND_SOC_DAPM_PGA("Out 3", WM8987_PWR2, 1, 0, NULL, 0),
++ SND_SOC_DAPM_PGA("Mono Out 1", WM8987_PWR2, 2, 0, NULL, 0),
++
++ SND_SOC_DAPM_MUX("Differential Mux", SND_SOC_NOPM, 0, 0,
++ &wm8987_diffmux_controls),
++ SND_SOC_DAPM_MUX("Left ADC Mux", SND_SOC_NOPM, 0, 0,
++ &wm8987_monomux_controls),
++ SND_SOC_DAPM_MUX("Right ADC Mux", SND_SOC_NOPM, 0, 0,
++ &wm8987_monomux_controls),
++
++ SND_SOC_DAPM_OUTPUT("LOUT1"),
++ SND_SOC_DAPM_OUTPUT("ROUT1"),
++ SND_SOC_DAPM_OUTPUT("LOUT2"),
++ SND_SOC_DAPM_OUTPUT("ROUT2"),
++ SND_SOC_DAPM_OUTPUT("MONO"),
++ SND_SOC_DAPM_OUTPUT("OUT3"),
++
++ SND_SOC_DAPM_INPUT("LINPUT1"),
++ SND_SOC_DAPM_INPUT("LINPUT2"),
++ SND_SOC_DAPM_INPUT("LINPUT3"),
++ SND_SOC_DAPM_INPUT("RINPUT1"),
++ SND_SOC_DAPM_INPUT("RINPUT2"),
++ SND_SOC_DAPM_INPUT("RINPUT3"),
++};
++
++static const char *audio_map[][3] = {
++ /* left mixer */
++ {"Left Mixer", "Playback Switch", "Left DAC"},
++ {"Left Mixer", "Left Bypass Switch", "Left Line Mux"},
++ {"Left Mixer", "Right Playback Switch", "Right DAC"},
++ {"Left Mixer", "Right Bypass Switch", "Right Line Mux"},
++
++ /* right mixer */
++ {"Right Mixer", "Left Playback Switch", "Left DAC"},
++ {"Right Mixer", "Left Bypass Switch", "Left Line Mux"},
++ {"Right Mixer", "Playback Switch", "Right DAC"},
++ {"Right Mixer", "Right Bypass Switch", "Right Line Mux"},
++
++ /* left out 1 */
++ {"Left Out 1", NULL, "Left Mixer"},
++ {"LOUT1", NULL, "Left Out 1"},
++
++ /* left out 2 */
++ {"Left Out 2", NULL, "Left Mixer"},
++ {"LOUT2", NULL, "Left Out 2"},
++
++ /* right out 1 */
++ {"Right Out 1", NULL, "Right Mixer"},
++ {"ROUT1", NULL, "Right Out 1"},
++
++ /* right out 2 */
++ {"Right Out 2", NULL, "Right Mixer"},
++ {"ROUT2", NULL, "Right Out 2"},
++
++ /* mono mixer */
++ {"Mono Mixer", "Left Playback Switch", "Left DAC"},
++ {"Mono Mixer", "Left Bypass Switch", "Left Line Mux"},
++ {"Mono Mixer", "Right Playback Switch", "Right DAC"},
++ {"Mono Mixer", "Right Bypass Switch", "Right Line Mux"},
++
++ /* mono out */
++ {"Mono Out 1", NULL, "Mono Mixer"},
++ {"MONO1", NULL, "Mono Out 1"},
++
++ /* out 3 */
++ {"Out3 Mux", "VREF", "VREF"},
++ {"Out3 Mux", "ROUT1 + Vol", "ROUT1"},
++ {"Out3 Mux", "ROUT1", "Right Mixer"},
++ {"Out3 Mux", "MonoOut", "MONO1"},
++ {"Out 3", NULL, "Out3 Mux"},
++ {"OUT3", NULL, "Out 3"},
++
++ /* Left Line Mux */
++ {"Left Line Mux", "Line 1", "LINPUT1"},
++ {"Left Line Mux", "Line 2", "LINPUT2"},
++ {"Left Line Mux", "Line 3", "LINPUT3"},
++ {"Left Line Mux", "PGA", "Left PGA Mux"},
++ {"Left Line Mux", "Differential", "Differential Mux"},
++
++ /* Right Line Mux */
++ {"Right Line Mux", "Line 1", "RINPUT1"},
++ {"Right Line Mux", "Line 2", "RINPUT2"},
++ {"Right Line Mux", "Line 3", "RINPUT3"},
++ {"Right Line Mux", "PGA", "Right PGA Mux"},
++ {"Right Line Mux", "Differential", "Differential Mux"},
++
++ /* Left PGA Mux */
++ {"Left PGA Mux", "Line 1", "LINPUT1"},
++ {"Left PGA Mux", "Line 2", "LINPUT2"},
++ {"Left PGA Mux", "Line 3", "LINPUT3"},
++ {"Left PGA Mux", "Differential", "Differential Mux"},
++
++ /* Right PGA Mux */
++ {"Right PGA Mux", "Line 1", "RINPUT1"},
++ {"Right PGA Mux", "Line 2", "RINPUT2"},
++ {"Right PGA Mux", "Line 3", "RINPUT3"},
++ {"Right PGA Mux", "Differential", "Differential Mux"},
++
++ /* Differential Mux */
++ {"Differential Mux", "Line 1", "LINPUT1"},
++ {"Differential Mux", "Line 1", "RINPUT1"},
++ {"Differential Mux", "Line 2", "LINPUT2"},
++ {"Differential Mux", "Line 2", "RINPUT2"},
++
++ /* Left ADC Mux */
++ {"Left ADC Mux", "Stereo", "Left PGA Mux"},
++ {"Left ADC Mux", "Mono (Left)", "Left PGA Mux"},
++ {"Left ADC Mux", "Digital Mono", "Left PGA Mux"},
++
++ /* Right ADC Mux */
++ {"Right ADC Mux", "Stereo", "Right PGA Mux"},
++ {"Right ADC Mux", "Mono (Right)", "Right PGA Mux"},
++ {"Right ADC Mux", "Digital Mono", "Right PGA Mux"},
++
++ /* ADC */
++ {"Left ADC", NULL, "Left ADC Mux"},
++ {"Right ADC", NULL, "Right ADC Mux"},
++
++ /* terminator */
++ {NULL, NULL, NULL},
++};
++
++static int wm8987_add_widgets(struct snd_soc_codec *codec)
++{
++ int i;
++
++ for(i = 0; i < ARRAY_SIZE(wm8987_dapm_widgets); i++) {
++ snd_soc_dapm_new_control(codec, &wm8987_dapm_widgets[i]);
++ }
++
++ /* set up audio path audio_mapnects */
++ for(i = 0; audio_map[i][0] != NULL; i++) {
++ snd_soc_dapm_connect_input(codec, audio_map[i][0],
++ audio_map[i][1], audio_map[i][2]);
++ }
++
++ snd_soc_dapm_new_widgets(codec);
++ return 0;
++}
++
++struct _coeff_div {
++ u32 mclk;
++ u32 rate;
++ u16 fs;
++ u8 sr:5;
++ u8 usb:1;
++};
++
++/* codec hifi mclk clock divider coefficients */
++static const struct _coeff_div coeff_div[] = {
++ /* 8k */
++ {12288000, 8000, 1536, 0x6, 0x0},
++ {18432000, 8000, 2304, 0x7, 0x0},
++ {12000000, 8000, 1500, 0x6, 0x1},
++
++ /* 80182 */
++ {11289600, 8018, 1408, 0x16, 0x0},
++ {16934400, 8018, 2112, 0x17, 0x0},
++
++ /* 8.0214k */
++ {12000000, 8021, 1496, 0x17, 0x1},
++
++ /* 11.025k */
++ {11289600, 11025, 1024, 0x18, 0x0},
++ {16934400, 11025, 1536, 0x19, 0x0},
++ {12000000, 11025, 1088, 0x19, 0x1},
++
++ /* 12k */
++ {12288000, 12000, 1024, 0x8, 0x0},
++ {18432000, 12000, 1536, 0x9, 0x0},
++ {12000000, 12000, 1000, 0x8, 0x1},
++
++ /* 16k */
++ {12288000, 16000, 768, 0xa, 0x0},
++ {18432000, 16000, 1152, 0xb, 0x0},
++ {12000000, 16000, 750, 0xa, 0x1},
++
++ /* 22.05k */
++ {11289600, 22050, 512, 0x1a, 0x0},
++ {16934400, 22050, 768, 0x1b, 0x0},
++ {12000000, 22050, 544, 0x1b, 0x1},
++
++ /* 24k */
++ {12288000, 24000, 512, 0x1c, 0x0},
++ {18432000, 24000, 768, 0x1d, 0x0},
++ {12000000, 24000, 500, 0x1c, 0x1},
++
++ /* 32k */
++ {12288000, 32000, 384, 0xc, 0x0},
++ {18432000, 32000, 576, 0xd, 0x0},
++ {12000000, 32000, 375, 0xc, 0x1}, // mhfan
++
++ /* 44.1k */
++ {11289600, 44100, 256, 0x10, 0x0},
++ {16934400, 44100, 384, 0x11, 0x0},
++ {12000000, 44100, 272, 0x11, 0x1},
++
++ /* 48k */
++ {12288000, 48000, 256, 0x0, 0x0},
++ {18432000, 48000, 384, 0x1, 0x0},
++ {12000000, 48000, 250, 0x0, 0x1},
++
++ /* 88.2k */
++ {11289600, 88200, 128, 0x1e, 0x0},
++ {16934400, 88200, 192, 0x1f, 0x0},
++ {12000000, 88200, 136, 0x1f, 0x1},
++
++ /* 96k */
++ {12288000, 96000, 128, 0xe, 0x0},
++ {18432000, 96000, 192, 0xf, 0x0},
++ {12000000, 96000, 125, 0xe, 0x1},
++};
++
++static inline int get_coeff(int mclk, int rate)
++{
++ int i;
++
++ for (i = 0; i < ARRAY_SIZE(coeff_div); i++) {
++ if (coeff_div[i].rate == rate && coeff_div[i].mclk == mclk)
++ return i;
++ }
++
++ printk(KERN_ERR "wm8987: could not get coeff for mclk %d @ rate %d\n",
++ mclk, rate);
++ return -EINVAL;
++}
++
++#if 1 //lzcx
++static int wm8987_set_dai_clkdiv(struct snd_soc_codec_dai *codec_dai,
++ int div_id, int div)
++{
++ struct snd_soc_codec *codec = codec_dai->codec;
++ u16 reg;
++ return 0; //lzcx
++
++ //printk("id is %d div is 0x%x setdaiclkdiv\n",div_id,div);
++ reg = wm8987_read_reg_cache(codec, WM8987_SRATE) & 0x003f;
++ wm8987_write(codec, WM8987_SRATE, reg | div);
++#if 0
++ switch (div_id) {
++ case WM8987_PCMDIV:
++ reg = wm8987_read_reg_cache(codec, WM8987_CLOCK) & 0x003f;
++ wm8987_write(codec, WM8987_CLOCK, reg | div);
++ break;
++ case WM8987_BCLKDIV:
++ reg = wm8987_read_reg_cache(codec, WM8987_SRATE2) & 0x01c7;
++ wm8987_write(codec, WM8987_SRATE2, reg | div);
++ break;
++ case WM8987_VXCLKDIV:
++ reg = wm8987_read_reg_cache(codec, WM8987_SRATE2) & 0x003f;
++ wm8987_write(codec, WM8987_SRATE2, reg | div);
++ break;
++ default:
++ return -EINVAL;
++ }
++#endif
++ return 0;
++}
++
++#endif
++static int wm8987_set_dai_sysclk(struct snd_soc_codec_dai *codec_dai,
++ int clk_id, unsigned int freq, int dir)
++{
++#ifndef CONFIG_HHTECH_MINIPMP
++ struct snd_soc_codec *codec = codec_dai->codec;
++ struct wm8987_priv *wm8987 = codec->private_data;
++#endif//CONFIG_HHTECH_MINIPMP
++ //printk("freq is %ld \n",freq);
++
++ switch (freq) {
++ case 11289600:
++ case 12000000:
++ case 12288000:
++ case 16934400:
++ case 18432000:
++#ifndef CONFIG_HHTECH_MINIPMP
++ wm8987->sysclk = freq;
++#else// mhfan
++ case 24576000:
++ wm8987_sysclk = freq;
++#endif//CONFIG_HHTECH_MINIPMP
++ return 0;
++ }
++ return -EINVAL;
++}
++
++static int wm8987_set_dai_fmt(struct snd_soc_codec_dai *codec_dai,
++ unsigned int fmt)
++{
++ struct snd_soc_codec *codec = codec_dai->codec;
++ u16 iface = 0;
++
++ /* set master/slave audio interface */
++ switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
++ case SND_SOC_DAIFMT_CBM_CFM:
++ iface = 0x0040;
++ break;
++ case SND_SOC_DAIFMT_CBS_CFS:
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ /* interface format */
++ switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
++ case SND_SOC_DAIFMT_I2S:
++ iface |= 0x0002;
++ break;
++ case SND_SOC_DAIFMT_RIGHT_J:
++ break;
++ case SND_SOC_DAIFMT_LEFT_J:
++ iface |= 0x0001;
++ break;
++ case SND_SOC_DAIFMT_DSP_A:
++ iface |= 0x0003;
++ break;
++ case SND_SOC_DAIFMT_DSP_B:
++ iface |= 0x0013;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ /* clock inversion */
++ switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
++ case SND_SOC_DAIFMT_NB_NF:
++ break;
++ case SND_SOC_DAIFMT_IB_IF:
++ iface |= 0x0090;
++ break;
++ case SND_SOC_DAIFMT_IB_NF:
++ iface |= 0x0080;
++ break;
++ case SND_SOC_DAIFMT_NB_IF:
++ iface |= 0x0010;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++#if 1
++#ifdef CONFIG_HHTECH_MINIPMP
++ iface |= 0x20; // XXX: mhfan
++#endif//CONFIG_HHTECH_MINIPMP
++#endif //lzcx
++
++ if(iface != wm8987_read_reg_cache(codec, WM8987_IFACE))
++ wm8987_write(codec, WM8987_IFACE, iface);
++ return 0;
++}
++
++static int wm8987_pcm_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_device *socdev = rtd->socdev;
++ struct snd_soc_codec *codec = socdev->codec;
++ static int ifirst = 1;
++ u16 valface, valrate;
++ u16 iface = (valface = wm8987_read_reg_cache(codec, WM8987_IFACE)) & 0x1f3;
++ u16 srate = (valrate = wm8987_read_reg_cache(codec, WM8987_SRATE)) & 0x1c0;
++
++#ifndef CONFIG_HHTECH_MINIPMP
++ struct wm8987_priv *wm8987 = codec->private_data;
++ int coeff = get_coeff(wm8987->sysclk, params_rate(params));
++#else// mhfan
++ int coeff = get_coeff(wm8987_sysclk, params_rate(params));
++#endif//CONFIG_HHTECH_MINIPMP
++
++
++ /* bit size */
++ switch (params_format(params)) {
++ case SNDRV_PCM_FORMAT_S16_LE:
++ break;
++ case SNDRV_PCM_FORMAT_S20_3LE:
++ iface |= 0x0004;
++ break;
++ case SNDRV_PCM_FORMAT_S24_LE:
++ iface |= 0x0008;
++ break;
++ case SNDRV_PCM_FORMAT_S32_LE:
++ iface |= 0x000c;
++ break;
++ }
++
++ if(1 == ifirst || valface != iface)
++ wm8987_write(codec, WM8987_IFACE, iface);
++ if(coeff >= 0) {
++ srate = srate | ((coeff_div[coeff].sr << 1) | coeff_div[coeff].usb);
++ //printk("state write is 0x%x\n",srate);
++ if(valrate != srate || 1 == ifirst)
++ wm8987_write(codec, WM8987_SRATE, srate);
++ }
++ ifirst = 0;
++
++ return 0;
++}
++
++static int wm8987_mute(struct snd_soc_codec_dai *dai, int mute)
++{
++ struct snd_soc_codec *codec = dai->codec;
++ u16 mute_reg = wm8987_read_reg_cache(codec, WM8987_ADCDAC) & 0xfff7;
++
++#if 0 /* comment by mhfan */
++ if (mute)
++ wm8987_write(codec, WM8987_ADCDAC, mute_reg | 0x8);
++ else
++ wm8987_write(codec, WM8987_ADCDAC, mute_reg);
++#else
++// static int _mute_flag = -1;
++
++// if(mute == _mute_flag) return 0;
++// _mute_flag = mute;
++
++ if (mute) {
++ wm8987_write(codec, WM8987_ADCDAC, mute_reg | 0x8);
++ if (hhbf_audio_switch) hhbf_audio_switch(0);
++ } else {if (hhbf_audio_switch) hhbf_audio_switch(1);
++ wm8987_write(codec, WM8987_ADCDAC, mute_reg);
++ }
++#endif /* comment by mhfan */
++ return 0;
++}
++
++static int wm8987_dapm_event(struct snd_soc_codec *codec, int event)
++{
++ u16 pwr_reg = wm8987_read_reg_cache(codec, WM8987_PWR1) & 0xfe3e;
++ pwr_reg |= 0x2;//lzcx micbias on
++
++ switch (event) {
++ case SNDRV_CTL_POWER_D0: /* full On */
++ /* set vmid to 50k and unmute dac */
++ wm8987_write(codec, WM8987_PWR1, pwr_reg | 0x00c0);
++ break;
++ case SNDRV_CTL_POWER_D1: /* partial On */
++ wm8987_write(codec, WM8987_PWR1, pwr_reg | 0x01c0);
++ break;
++ case SNDRV_CTL_POWER_D2: /* partial On */
++ /* set vmid to 5k for quick power up */
++ wm8987_write(codec, WM8987_PWR1, pwr_reg | 0x01c1);
++ break;
++ case SNDRV_CTL_POWER_D3hot: /* Off, with power */
++ /* mute dac and set vmid to 500k, enable VREF */
++ wm8987_write(codec, WM8987_PWR1, pwr_reg | 0x0141);
++ break;
++ case SNDRV_CTL_POWER_D3cold: /* Off, without power */
++ wm8987_write(codec, WM8987_PWR1, 0x0001);
++ break;
++ }
++ codec->dapm_state = event;
++ return 0;
++}
++
++#define WM8987_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | \
++ SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 | \
++ SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | \
++ SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 | \
++ SNDRV_PCM_RATE_96000)
++
++#define WM8987_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE | \
++ SNDRV_PCM_FMTBIT_S24_LE)
++
++struct snd_soc_codec_dai wm8987_dai = {
++ .name = "WM8987",
++ .playback = {
++ .stream_name = "Playback",
++ .channels_min = 2,
++ .channels_max = 2,
++ .rates = WM8987_RATES,
++ .formats = WM8987_FORMATS,},
++ .capture = {
++ .stream_name = "Capture",
++ .channels_min = 2,
++ .channels_max = 2,
++ .rates = WM8987_RATES,
++ .formats = WM8987_FORMATS,},
++ .ops = {
++ .hw_params = wm8987_pcm_hw_params,
++ },
++ .dai_ops = {
++ .digital_mute = wm8987_mute,
++ .set_fmt = wm8987_set_dai_fmt,
++ .set_sysclk = wm8987_set_dai_sysclk,
++ .set_clkdiv = wm8987_set_dai_clkdiv,
++ },
++};
++EXPORT_SYMBOL_GPL(wm8987_dai);
++
++static void wm8987_work(struct work_struct *work)
++{
++ struct snd_soc_codec *codec =
++//#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
++// (struct snd_soc_codec*)work; // XXX:
++//#else// XXX: mhfan
++ container_of(work, struct snd_soc_codec, delayed_work.work);
++//#endif//LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
++ wm8987_dapm_event(codec, codec->dapm_state);
++}
++
++static int wm8987_suspend(struct platform_device *pdev, pm_message_t state)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct snd_soc_codec *codec = socdev->codec;
++
++ wm8987_dapm_event(codec, SNDRV_CTL_POWER_D3cold);
++ return 0;
++}
++
++static int wm8987_resume(struct platform_device *pdev)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct snd_soc_codec *codec = socdev->codec;
++ int i;
++ u8 data[2];
++ u16 *cache = codec->reg_cache;
++
++ /* Sync reg_cache with the hardware */
++ for (i = 0; i < ARRAY_SIZE(wm8987_reg); i++) {
++ if (i == WM8987_RESET)
++ continue;
++ data[0] = (i << 1) | ((cache[i] >> 8) & 0x0001);
++ data[1] = cache[i] & 0x00ff;
++ codec->hw_write(codec->control_data, data, 2);
++ }
++
++ wm8987_dapm_event(codec, SNDRV_CTL_POWER_D3hot);
++
++ /* charge wm8987 caps */
++ if (codec->suspend_dapm_state == SNDRV_CTL_POWER_D0) {
++ wm8987_dapm_event(codec, SNDRV_CTL_POWER_D2);
++ codec->dapm_state = SNDRV_CTL_POWER_D0;
++ schedule_delayed_work(&codec->delayed_work, msecs_to_jiffies(1000));
++ }
++
++ return 0;
++}
++
++void headp_update_volume(struct work_struct* work)
++{
++ if (p_codec == NULL)
++ return;
++ wm8987_write(p_codec, WM8987_LDAC, volume );
++ // mdelay(500);
++ wm8987_write(p_codec, WM8987_RDAC, volume );
++}
++EXPORT_SYMBOL(headp_update_volume);
++
++
++/*
++ * initialise the WM8987 driver
++ * register the mixer and dsp interfaces with the kernel
++ */
++static int wm8987_init(struct snd_soc_device *socdev)
++{
++ struct snd_soc_codec *codec = socdev->codec;
++ int reg, ret = 0;
++
++ codec->name = "WM8987";
++ codec->owner = THIS_MODULE;
++ codec->read = wm8987_read_reg_cache;
++ codec->write = wm8987_write;
++ codec->dapm_event = wm8987_dapm_event;
++ codec->dai = &wm8987_dai;
++ codec->num_dai = 1;
++#ifndef CONFIG_HHTECH_MINIPMP
++ //codec->reg_cache_size = ARRAY_SIZE(wm8987_reg);
++
++ codec->reg_cache =
++ kzalloc(sizeof(u16) * ARRAY_SIZE(wm8987_reg), GFP_KERNEL);
++ if (codec->reg_cache == NULL)
++ return -ENOMEM;
++ memcpy(codec->reg_cache, wm8987_reg,
++ sizeof(u16) * ARRAY_SIZE(wm8987_reg));
++ codec->reg_cache_size = sizeof(u16) * ARRAY_SIZE(wm8987_reg);
++#else// XXX: mhfan
++ codec->reg_cache = (void*)wm8987_reg;
++ codec->reg_cache_size = ARRAY_SIZE(wm8987_reg);
++
++#ifdef CONFIG_HHBF_FAST_REBOOT
++ if (_bfin_swrst & FAST_REBOOT_FLAG) init_reboot = 1;
++ // XXX: read register values from codec?
++#endif
++#endif//CONFIG_HHTECH_MINIPMP
++
++ wm8987_reset(codec);
++
++ /* register pcms */
++ ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1);
++ if (ret < 0) {
++ printk(KERN_ERR "wm8987: failed to create pcms\n");
++ goto pcm_err;
++ }
++
++ /* charge output caps */
++ wm8987_dapm_event(codec, SNDRV_CTL_POWER_D1); // XXX:
++ codec->dapm_state = SNDRV_CTL_POWER_D3hot;
++ schedule_delayed_work(&codec->delayed_work, msecs_to_jiffies(1000));
++
++#ifdef CONFIG_HHTECH_MINIPMP
++ // init first mutes
++ reg = wm8987_read_reg_cache(codec, WM8987_ADCDAC) & 0xfff7;
++ wm8987_write(codec, WM8987_ADCDAC, reg | 0x008);
++// wm8987_write(codec, WM8987_PWR2, 0x180); // reboot
++
++ //wm8987_mute(codec->dai, 1); // XXX:
++ reg = wm8987_read_reg_cache(codec, WM8987_LOUTM1);
++ wm8987_write(codec, WM8987_LOUTM1, reg | 0x0100);
++ reg = wm8987_read_reg_cache(codec, WM8987_ROUTM2);
++ wm8987_write(codec, WM8987_ROUTM2, reg | 0x0100);
++
++ reg = wm8987_read_reg_cache(codec, WM8987_ADCTL1);
++ wm8987_write(codec, WM8987_ADCTL1, reg | 0x0005); // XXX:
++ reg = wm8987_read_reg_cache(codec, WM8987_ADCTL2);
++
++ reg = wm8987_read_reg_cache(codec, WM8987_LADCIN);
++ wm8987_write(codec, WM8987_LADCIN, reg | 0x0060); // XXX: LINP2
++
++ reg = wm8987_read_reg_cache(codec, WM8987_LADC);
++ wm8987_write(codec, WM8987_LADC, reg | 0x0100);
++ reg = wm8987_read_reg_cache(codec, WM8987_RADC);
++ wm8987_write(codec, WM8987_RADC, reg | 0x0100);
++#endif//CONFIG_HHTECH_MINIPMP
++
++ /* set the update bits */
++ reg = wm8987_read_reg_cache(codec, WM8987_LDAC);
++ //wm8987_write(codec, WM8987_LDAC, 0x0100);
++ wm8987_write(codec, WM8987_LDAC, 0x01c7);
++ reg = wm8987_read_reg_cache(codec, WM8987_RDAC);
++ //wm8987_write(codec, WM8987_RDAC, 0x0100);
++ wm8987_write(codec, WM8987_RDAC, 0x01c7);
++
++ reg = wm8987_read_reg_cache(codec, WM8987_LINVOL);
++ wm8987_write(codec, WM8987_LINVOL, (reg & ~0x080) | 0x0140);
++ //wm8987_write(codec, WM8987_LINVOL, (reg & ~0x080) | 0x080); //lzcx
++ reg = wm8987_read_reg_cache(codec, WM8987_RINVOL);
++ wm8987_write(codec, WM8987_RINVOL, (reg & ~0x080) | 0x0140);
++ //wm8987_write(codec, WM8987_RINVOL, (reg & ~0x080) | 0x080); //lzcx
++ reg = wm8987_read_reg_cache(codec, WM8987_3D);
++ wm8987_write(codec, WM8987_3D, (reg | 0x80));
++ wm8987_write(codec, WM8987_LOUT2V, 0x079); //lzcx
++// wm8987_write(codec, WM8987_LOUT2V, 0x0100);
++// wm8987_write(codec, WM8987_ROUT2V, 0x0100);
++ wm8987_write(codec, WM8987_ROUT2V, 0x17a);
++
++
++ wm8987_add_controls(codec);
++ wm8987_add_widgets(codec);
++ ret = snd_soc_register_card(socdev);
++ if (ret < 0) {
++ printk(KERN_ERR "wm8987: failed to register card\n");
++ goto card_err;
++ }
++
++#ifdef CONFIG_HHTECH_MINIPMP
++ init_reboot = 0;
++#endif//CONFIG_HHTECH_MINIPMP
++
++ volume = wm8987_read_reg_cache(codec, WM8987_LDAC); //HHTECH wk
++ p_codec = codec ;
++ headp_update_volume(NULL);
++ return ret;
++
++card_err:
++ snd_soc_free_pcms(socdev);
++ snd_soc_dapm_free(socdev);
++pcm_err:
++#ifndef CONFIG_HHTECH_MINIPMP
++ kfree(codec->reg_cache);
++#endif//CONFIG_HHTECH_MINIPMP
++ return ret;
++}
++
++/* If the i2c layer weren't so broken, we could pass this kind of data
++ around */
++static struct snd_soc_device *wm8987_socdev;
++
++#ifdef CONFIG_HHTECH_MINIPMP
++void hhbf_audio_close(void)
++{
++ if (!wm8987_socdev) return;
++ cancel_delayed_work(&wm8987_socdev->delayed_work);
++ wm8987_reset(wm8987_socdev->codec);
++}
++EXPORT_SYMBOL(hhbf_audio_close);
++#endif//CONFIG_HHTECH_MINIPMP
++
++#if defined (CONFIG_I2C) || defined (CONFIG_I2C_MODULE)
++/*
++ * WM8731 2 wire address is determined by GPIO5
++ * state during powerup.
++ * low = 0x1a
++ * high = 0x1b
++ */
++static unsigned short normal_i2c[] = { 0, I2C_CLIENT_END };
++
++/* Magic definition of all other variables and things */
++I2C_CLIENT_INSMOD;
++
++static struct i2c_driver wm8987_i2c_driver;
++static struct i2c_client client_template;
++
++static int wm8987_codec_probe(struct i2c_adapter *adap, int addr, int kind)
++{
++ struct snd_soc_device *socdev = wm8987_socdev;
++ struct wm8987_setup_data *setup = socdev->codec_data;
++ struct snd_soc_codec *codec = socdev->codec;
++ struct i2c_client *i2c;
++ int ret;
++
++ if (addr != setup->i2c_address)
++ return -ENODEV;
++
++ client_template.adapter = adap;
++ client_template.addr = addr;
++
++#ifndef CONFIG_HHTECH_MINIPMP
++ i2c = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
++ if (i2c == NULL) {
++ kfree(codec);
++ return -ENOMEM;
++ }
++ memcpy(i2c, &client_template, sizeof(struct i2c_client));
++#else// mhfan
++ i2c = &client_template;
++#endif//CONFIG_HHTECH_MINIPMP
++ i2c_set_clientdata(i2c, codec);
++ codec->control_data = i2c;
++
++ ret = i2c_attach_client(i2c);
++ if (ret < 0) {
++ err("failed to attach codec at addr %x\n", addr);
++ goto err;
++ }
++
++ ret = wm8987_init(socdev);
++ if (ret < 0) {
++ err("failed to initialise WM8987\n");
++ goto err;
++ }
++ //printk("init WM8987 OK\n");
++ return ret;
++
++err:
++ kfree(codec);
++#ifndef CONFIG_HHTECH_MINIPMP
++ kfree(i2c);
++#endif//CONFIG_HHTECH_MINIPMP
++ return ret;
++}
++
++static int wm8987_i2c_detach(struct i2c_client *client)
++{
++#ifndef CONFIG_HHTECH_MINIPMP
++ struct snd_soc_codec *codec = i2c_get_clientdata(client);
++ i2c_detach_client(client);
++ kfree(codec->reg_cache);
++ kfree(client);
++#else// mhfan
++ i2c_detach_client(client);
++#endif//CONFIG_HHTECH_MINIPMP
++ return 0;
++}
++
++static int wm8987_i2c_attach(struct i2c_adapter *adap)
++{
++ return i2c_probe(adap, &addr_data, wm8987_codec_probe);
++}
++
++/* corgi i2c codec control layer */
++static struct i2c_driver wm8987_i2c_driver = {
++ .driver = {
++ .name = "WM8987 I2C Codec",
++ .owner = THIS_MODULE,
++ },
++ .id = I2C_DRIVERID_WM8753,
++ .attach_adapter = wm8987_i2c_attach,
++ .detach_client = wm8987_i2c_detach,
++ .command = NULL,
++};
++
++static struct i2c_client client_template = {
++ .name = "WM8987",
++ .driver = &wm8987_i2c_driver,
++};
++#endif
++
++static int wm8987_probe(struct platform_device *pdev)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct wm8987_setup_data *setup = socdev->codec_data;
++ struct snd_soc_codec *codec;
++ //struct wm8987_priv *wm8987; // mhfan
++ int ret = 0;
++
++ info("Audio Codec Driver %s", WM8987_VERSION);
++ codec = kzalloc(sizeof(struct snd_soc_codec), GFP_KERNEL);
++ if (codec == NULL)
++ return -ENOMEM;
++
++#ifndef CONFIG_HHTECH_MINIPMP
++ wm8987 = kzalloc(sizeof(struct wm8987_priv), GFP_KERNEL);
++ if (wm8987 == NULL) {
++ kfree(codec);
++ return -ENOMEM;
++ }
++
++ codec->private_data = wm8987;
++#endif//CONFIG_HHTECH_MINIPMP
++ socdev->codec = codec;
++ mutex_init(&codec->mutex);
++ INIT_LIST_HEAD(&codec->dapm_widgets);
++ INIT_LIST_HEAD(&codec->dapm_paths);
++ wm8987_socdev = socdev;
++//#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
++// INIT_WORK(&codec->delayed_work, wm8987_work, codec);
++//#else// XXX: mhfan
++ INIT_DELAYED_WORK(&codec->delayed_work, wm8987_work);
++//#endif// LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
++
++#if defined (CONFIG_I2C) || defined (CONFIG_I2C_MODULE)
++ if (setup->i2c_address) {
++ normal_i2c[0] = setup->i2c_address;
++ codec->hw_write = (hw_write_t)i2c_master_send;
++ ret = i2c_add_driver(&wm8987_i2c_driver);
++ if (ret != 0)
++ printk(KERN_ERR "can't add i2c driver");
++ }
++#else
++ /* Add other interfaces here */
++#endif
++
++ return ret;
++}
++
++/*
++ * This function forces any delayed work to be queued and run.
++ */
++static int run_delayed_work(struct delayed_work *dwork)
++{
++ int ret;
++
++ /* cancel any work waiting to be queued. */
++ ret = cancel_delayed_work(dwork);
++
++ /* if there was any work waiting then we run it now and
++ * wait for it's completion */
++ if (ret) {
++ schedule_delayed_work(dwork, 0);
++ flush_scheduled_work();
++ }
++ return ret;
++}
++
++/* power down chip */
++static int wm8987_remove(struct platform_device *pdev)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct snd_soc_codec *codec = socdev->codec;
++
++ if (codec->control_data)
++ wm8987_dapm_event(codec, SNDRV_CTL_POWER_D3cold);
++ run_delayed_work(&codec->delayed_work);
++ snd_soc_free_pcms(socdev);
++ snd_soc_dapm_free(socdev);
++#if defined (CONFIG_I2C) || defined (CONFIG_I2C_MODULE)
++ i2c_del_driver(&wm8987_i2c_driver);
++#endif
++#ifndef CONFIG_HHTECH_MINIPMP
++ kfree(codec->private_data);
++#endif//CONFIG_HHTECH_MINIPMP
++ kfree(codec);
++
++ return 0;
++}
++
++struct snd_soc_codec_device soc_codec_dev_wm8987 = {
++ .probe = wm8987_probe,
++ .remove = wm8987_remove,
++ .suspend = wm8987_suspend,
++ .resume = wm8987_resume,
++};
++
++EXPORT_SYMBOL_GPL(soc_codec_dev_wm8987);
++
++MODULE_DESCRIPTION("ASoC WM8987 driver");
++MODULE_AUTHOR("Liam Girdwood");
++MODULE_LICENSE("GPL");
+diff --git a/sound/soc/codecs/wm8987.h b/sound/soc/codecs/wm8987.h
+new file mode 100644
+index 0000000..fa9820b
+--- /dev/null
++++ b/sound/soc/codecs/wm8987.h
+@@ -0,0 +1,110 @@
++/*
++ * Copyright 2005 Openedhand Ltd.
++ *
++ * Author: Richard Purdie <richard@openedhand.com>
++ *
++ * Based on WM8987.h
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ */
++
++#ifndef _WM8987_H
++#define _WM8987_H
++
++#define CONFIG_HHTECH_MINIPMP 1
++
++/* WM8987 register space */
++
++#define WM8987_LINVOL 0x00
++#define WM8987_RINVOL 0x01
++#define WM8987_LOUT1V 0x02
++#define WM8987_ROUT1V 0x03
++#define WM8987_ADCDAC 0x05
++#define WM8987_IFACE 0x07
++#define WM8987_SRATE 0x08
++#define WM8987_LDAC 0x0a
++#define WM8987_RDAC 0x0b
++#define WM8987_BASS 0x0c
++#define WM8987_TREBLE 0x0d
++#define WM8987_RESET 0x0f
++#define WM8987_3D 0x10
++#define WM8987_ALC1 0x11
++#define WM8987_ALC2 0x12
++#define WM8987_ALC3 0x13
++#define WM8987_NGATE 0x14
++#define WM8987_LADC 0x15
++#define WM8987_RADC 0x16
++#define WM8987_ADCTL1 0x17
++#define WM8987_ADCTL2 0x18
++#define WM8987_PWR1 0x19
++#define WM8987_PWR2 0x1a
++#define WM8987_ADCTL3 0x1b
++#define WM8987_ADCIN 0x1f
++#define WM8987_LADCIN 0x20
++#define WM8987_RADCIN 0x21
++#define WM8987_LOUTM1 0x22
++#define WM8987_LOUTM2 0x23
++#define WM8987_ROUTM1 0x24
++#define WM8987_ROUTM2 0x25
++#define WM8987_MOUTM1 0x26
++#define WM8987_MOUTM2 0x27
++#define WM8987_LOUT2V 0x28
++#define WM8987_ROUT2V 0x29
++#define WM8987_MOUTV 0x2a
++
++#define WM8987_CACHE_REGNUM 0x2a
++
++#define WM8987_SYSCLK 0
++
++struct wm8987_setup_data {
++ unsigned short i2c_address;
++};
++
++extern struct snd_soc_codec_dai wm8987_dai;
++extern struct snd_soc_codec_device soc_codec_dev_wm8987;
++
++#if 1 //lzcx
++#define WM8987_PLL1 0
++#define WM8987_PLL2 1
++
++/* clock inputs */
++#define WM8987_MCLK 0
++#define WM8987_PCMCLK 1
++
++/* clock divider id's */
++#define WM8987_PCMDIV 0
++#define WM8987_BCLKDIV 1
++#define WM8987_VXCLKDIV 2
++
++/* PCM clock dividers */
++#define WM8987_PCM_DIV_1 (0 << 6)
++#define WM8987_PCM_DIV_3 (2 << 6)
++#define WM8987_PCM_DIV_5_5 (3 << 6)
++#define WM8987_PCM_DIV_2 (4 << 6)
++#define WM8987_PCM_DIV_4 (5 << 6)
++#define WM8987_PCM_DIV_6 (6 << 6)
++#define WM8987_PCM_DIV_8 (7 << 6)
++
++/* BCLK clock dividers */
++#define WM8987_BCLK_DIV_1 (0 << 7)
++#define WM8987_BCLK_DIV_2 (1 << 7)
++#define WM8987_BCLK_DIV_4 (2 << 7)
++#define WM8987_BCLK_DIV_8 (3 << 7)
++
++/* VXCLK clock dividers */
++#define WM8987_VXCLK_DIV_1 (0 << 6)
++#define WM8987_VXCLK_DIV_2 (1 << 6)
++#define WM8987_VXCLK_DIV_4 (2 << 6)
++#define WM8987_VXCLK_DIV_8 (3 << 6)
++#define WM8987_VXCLK_DIV_16 (4 << 6)
++
++#define WM8987_DAI_HIFI 0
++#define WM8987_DAI_VOICE 1
++
++
++#endif
++
++#endif
+diff --git a/sound/soc/s3c64xx/Kconfig b/sound/soc/s3c64xx/Kconfig
+index 705c677..1faeeae 100644
+--- a/sound/soc/s3c64xx/Kconfig
++++ b/sound/soc/s3c64xx/Kconfig
+@@ -17,6 +17,9 @@ config SND_S3C_SOC_I2S
+ config SND_S3C6410_SOC_I2S_V32
+ tristate
+
++config SND_S3C6410_SOC_I2S_V40
++ tristate
++
+ config SND_S3C6410_SOC_I2S
+ tristate
+
+@@ -38,19 +41,17 @@ choice
+
+ config SOUND_WM9713_INPUT_STREAM_LINE
+ bool "Input Stream is LINE-IN"
+- depends on SND_S3C64XX_SOC_SMDK6400_WM9713 || SND_S3C64XX_SOC_SMDK6410_WM9713
+ help
+ Say Y here to make input stream as LINE-IN.
+
+ config SOUND_WM9713_INPUT_STREAM_MIC
+ bool "Input Stream is MIC"
+- depends on SND_S3C64XX_SOC_SMDK6400_WM9713 || SND_S3C64XX_SOC_SMDK6410_WM9713
+ help
+ Say Y here to make input stream as MIC.
+ endchoice
+
+ config SND_S3C6410_SOC_AC97
+- tristate
++ tristate "AC97 support for SMDK6410"
+ select AC97_BUS
+ select SND_AC97_CODEC
+ select SND_SOC_AC97_BUS
+@@ -70,17 +71,29 @@ choice
+
+ config SOUND_WM8580_INPUT_STREAM_LINE
+ bool "Input Stream is LINE-IN"
+- depends on SND_S3C6410_SOC_SMDK6410_WM8580 || SND_S3C24XX_SOC_SMDK2450_WM8580
+ help
+ Say Y here to make input stream as LINE-IN.
+
+ config SOUND_WM8580_INPUT_STREAM_MIC
+ bool "Input Stream is MIC"
+- depends on SND_S3C6410_SOC_SMDK6410_WM8580 || SND_S3C24XX_SOC_SMDK2450_WM8580
+ help
+ Say Y here to make input stream as MIC.
+ endchoice
+
++config SND_S3C64XX_SOC_SMDK6410_WM8987
++ tristate "SoC I2S Audio support for SMDK6410 - WM8987"
++ depends on SND_S3C_SOC && (MACH_SMDK6410)
++ select SND_S3C6410_SOC_I2S_V32
++ select SND_SOC_WM8987
++ help
++ Say Y if you want to add support for SoC audio on smdk6410
++ with the WM8987.
++
++config AUDIO_CODEC_PROCFS
++ bool "Proc-FS interface for audio codec control"
++ depends on SND_S3C64XX_SOC_SMDK6410_WM8987 && PROC_FS
++ default y
++
+ config SND_S3C64XX_SOC_SMDK6410_WM8990
+ tristate "SoC I2S Audio support for SMDK6410 - WM8990"
+ depends on SND_S3C_SOC && (MACH_SMDK6410)
+@@ -96,13 +109,11 @@ choice
+
+ config SOUND_WM8990_INPUT_STREAM_LINE_IN
+ bool "Input Stream is LINE-IN"
+- depends on SND_S3C64XX_SOC_SMDK6410_WM8990 || SND_S3C64XX_SOC_SMDK6400_WM8990
+ help
+ Say Y here to make input stream as LINE-IN.
+
+ config SOUND_WM8990_INPUT_STREAM_MIC_IN
+ bool "Input Stream is MIC"
+- depends on SND_S3C64XX_SOC_SMDK6410_WM8990 || SND_S3C64XX_SOC_SMDK6400_WM8990
+ help
+ Say Y here to make input stream as MIC.
+ endchoice
+diff --git a/sound/soc/s3c64xx/Makefile b/sound/soc/s3c64xx/Makefile
+index 2865391..85e848d 100644
+--- a/sound/soc/s3c64xx/Makefile
++++ b/sound/soc/s3c64xx/Makefile
+@@ -11,8 +11,10 @@ obj-$(CONFIG_SND_S3C6410_SOC_I2S_V32) += snd-soc-s3c6410-i2s-v32.o
+ snd-soc-neo1973-wm8753-objs := neo1973_wm8753.o
+ snd-soc-smdk64xx-wm9713-objs := smdk64xx_wm9713.o
+ snd-soc-smdk6410-wm8580-objs := smdk6410_wm8580.o
++snd-soc-smdk6410-wm8987-objs := smdk6410_wm8987.o
+ snd-soc-smdk6410-wm8990-objs := smdk6410_wm8990.o
+
+ obj-$(CONFIG_SND_S3C64XX_SOC_SMDK6410_WM9713) += snd-soc-smdk64xx-wm9713.o
+ obj-$(CONFIG_SND_S3C6410_SOC_SMDK6410_WM8580) += snd-soc-smdk6410-wm8580.o
++obj-$(CONFIG_SND_S3C64XX_SOC_SMDK6410_WM8987) += snd-soc-smdk6410-wm8987.o
+ obj-$(CONFIG_SND_S3C64XX_SOC_SMDK6410_WM8990) += snd-soc-smdk6410-wm8990.o
+diff --git a/sound/soc/s3c64xx/s3c6410-i2s-v32.c b/sound/soc/s3c64xx/s3c6410-i2s-v32.c
+index 6c7446e..7a08bc8 100644
+--- a/sound/soc/s3c64xx/s3c6410-i2s-v32.c
++++ b/sound/soc/s3c64xx/s3c6410-i2s-v32.c
+@@ -265,8 +265,8 @@ static int s3c_i2s_hw_params(struct snd_pcm_substream *substream,
+ /*Set I2C port to controll WM8753 codec*/
+ s3c_gpio_pullup(S3C_GPB5, 0);
+ s3c_gpio_pullup(S3C_GPB6, 0);
+- s3c_gpio_cfgpin(S3C_GPB5, S3C_GPB5_I2C_SCL);
+- s3c_gpio_cfgpin(S3C_GPB6, S3C_GPB6_I2C_SDA);
++ s3c_gpio_cfgpin(S3C_GPB5, S3C_GPB5_I2C_SCL0);
++ s3c_gpio_cfgpin(S3C_GPB6, S3C_GPB6_I2C_SDA0);
+
+ s3c24xx_i2s.master = 1;
+
+diff --git a/sound/soc/s3c64xx/smdk6410_wm8987.c b/sound/soc/s3c64xx/smdk6410_wm8987.c
+new file mode 100644
+index 0000000..c862d0f
+--- /dev/null
++++ b/sound/soc/s3c64xx/smdk6410_wm8987.c
+@@ -0,0 +1,623 @@
++/*
++ * smdk64xx_wm8987.c -- SoC audio for Neo1973
++ *
++ * Copyright 2007 Wolfson Microelectronics PLC.
++ * Author: Graeme Gregory
++ * graeme.gregory@wolfsonmicro.com or linux@wolfsonmicro.com
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * Revision history
++ * 20th Jan 2007 Initial version.
++ * 05th Feb 2007 Rename all to Neo1973
++ *
++ */
++
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/timer.h>
++#include <linux/interrupt.h>
++#include <linux/platform_device.h>
++#include <linux/i2c.h>
++#include <linux/proc_fs.h>
++#include <linux/ctype.h> //lzcx
++#include <sound/driver.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++
++#include <asm/mach-types.h>
++#include <asm/hardware/scoop.h>
++#include <asm-arm/plat-s3c64xx/regs-iis.h>
++
++#include <asm/arch/regs-gpio.h>
++#include <asm/hardware.h>
++#include <asm/arch/audio.h>
++#include <asm/io.h>
++#include <asm/arch/spi-gpio.h>
++
++#ifdef CONFIG_CPU_S3C6400
++#include <asm/arch/regs-s3c6400-clock.h>
++#elif defined CONFIG_CPU_S3C6410
++#include <asm/arch/regs-s3c6410-clock.h>
++#else
++
++#endif
++
++#include "../codecs/wm8987.h"
++#include "../s3c24xx/s3c-pcm.h"
++#include "../s3c24xx/s3c-i2s.h"
++
++/* define the scenarios */
++#define SMDK6400_AUDIO_OFF 0
++#define SMDK6400_CAPTURE_MIC1 3
++#define SMDK6400_STEREO_TO_HEADPHONES 2
++#define SMDK6400_CAPTURE_LINE_IN 1
++
++#ifdef CONFIG_SND_DEBUG
++#define s3cdbg(x...) printk(x)
++#else
++#define s3cdbg(x...)
++#endif
++
++static struct snd_soc_machine smdk6400;
++
++static int smdk6400_hifi_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai;
++ struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai;
++ unsigned int pll_out = 0, bclk = 0;
++ int ret = 0;
++ unsigned int iispsr, iismod;
++ unsigned int prescaler = 4;
++ unsigned long regs = ioremap(S3C6400_PA_IIS, 0x100);
++ s3cdbg("Entered %s, rate = %d\n", __FUNCTION__, params_rate(params));
++
++ /*PCLK & SCLK gating enable*/
++ writel(readl(S3C_PCLK_GATE)|S3C_CLKCON_PCLK_IIS0, S3C_PCLK_GATE);
++ writel(readl(S3C_SCLK_GATE)|S3C_CLKCON_SCLK_AUDIO0, S3C_SCLK_GATE);
++
++ iismod = readl((regs + S3C64XX_IIS0MOD));
++ iismod &=~(0x3<<3);
++
++ /*Clear I2S prescaler value [13:8] and disable prescaler*/
++ iispsr = readl((regs + S3C64XX_IIS0PSR));
++ iispsr &=~((0x3f<<8)|(1<<15));
++ writel(iispsr, (regs+S3C64XX_IIS0PSR));
++
++ switch (params_rate(params)) {
++ case 16000:
++ case 32000:
++ writel(0, S3C_EPLL_CON1);
++ writel((1<<31)|(128<<16)|(25<<8)|(0<<0) ,S3C_EPLL_CON0);
++ break;
++ case 8000:
++ prescaler = 0xe;
++ case 48000:
++ writel(0, S3C_EPLL_CON1);
++ writel((1<<31)|(192<<16)|(25<<8)|(0<<0) ,S3C_EPLL_CON0);
++ break;
++ case 11025:
++ prescaler = 9;
++ case 22050:
++ case 44100:
++ writel(0, S3C_EPLL_CON1);
++ writel((1<<31)|(254<<16)|(9<<8)|(2<<0) ,S3C_EPLL_CON0);
++ break;
++ default:
++ break;
++ }
++
++ s3cdbg("%s, IISCON: %x IISMOD: %x,IISFIC: %x,IISPSR: %x",
++ __FUNCTION__ , readl(S3C_IIS0CON), readl(S3C_IIS0MOD),
++ readl(S3C_IIS0FIC), readl(S3C_IIS0PSR));
++
++ while(!(__raw_readl(S3C_EPLL_CON0)&(1<<30)));
++
++ /* MUXepll : FOUTepll */
++ writel(readl(S3C_CLK_SRC)|S3C_CLKSRC_EPLL_CLKSEL, S3C_CLK_SRC);
++ /* AUDIO0 sel : FOUTepll */
++ //writel((readl(S3C_CLK_SRC)&~(0x7<<7))|(0<<7), S3C_CLK_SRC);
++ writel((readl(S3C_CLK_SRC)&~(0x7<<7))|(0x0<<7), S3C_CLK_SRC); //lzcx
++
++ /* CLK_DIV2 setting */
++ writel(0x0,S3C_CLK_DIV2);
++
++ switch (params_rate(params)) {
++ case 8000:
++ iismod |= S3C64XX_IIS0MOD_768FS;
++ pll_out = 12288000;
++ //pll_out = 6144000; //lzcx
++ break;
++ case 11025:
++ iismod |= S3C64XX_IIS0MOD_768FS;
++ //bclk = WM8987_BCLK_DIV_16;
++ bclk = WM8987_BCLK_DIV_8 | (1<<6); //lzcx
++ pll_out = 16934400;
++ break;
++ case 16000:
++ iismod |= S3C64XX_IIS0MOD_768FS;
++ bclk = WM8987_BCLK_DIV_2;
++ pll_out = 12288000;
++ break;
++ case 22050:
++ iismod |= S3C64XX_IIS0MOD_768FS;
++ bclk = WM8987_BCLK_DIV_8;
++ pll_out = 16934400;
++ break;
++ case 96000: //lzcx add
++ case 32000:
++ iismod |= S3C64XX_IIS0MOD_384FS;
++ bclk = WM8987_BCLK_DIV_2;
++ pll_out = 12288000;
++ break;
++ case 44100:
++ iismod |= S3C64XX_IIS0MOD_384FS;
++ bclk = WM8987_BCLK_DIV_4;
++ pll_out = 16934400;
++ break;
++ case 48000:
++ iismod |= S3C64XX_IIS0MOD_384FS;
++ bclk = WM8987_BCLK_DIV_4;
++ pll_out = 18432000;
++ break;
++ }
++
++ writel(iismod , (regs+S3C64XX_IIS0MOD));
++
++ /* set codec DAI configuration */
++ ret = codec_dai->dai_ops.set_fmt(codec_dai,
++ SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
++ SND_SOC_DAIFMT_CBS_CFS );
++ if (ret < 0)
++ { printk("aaa\n");
++ return ret;
++ }
++
++ /* set cpu DAI configuration */
++ ret = cpu_dai->dai_ops.set_fmt(cpu_dai,
++ SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
++ SND_SOC_DAIFMT_CBS_CFS );
++ if (ret < 0)
++ { printk("aaa1\n");
++ return ret;
++ }
++
++ /* set the codec system clock for DAC and ADC */
++ ret = codec_dai->dai_ops.set_sysclk(codec_dai, WM8987_MCLK, pll_out,
++ SND_SOC_CLOCK_IN);
++ if (ret < 0)
++ { printk("aaa2 pll_out %ld \n",pll_out);
++ return ret;
++ }
++
++ /* set MCLK division for sample rate */
++ ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_MCLK,
++ S3C64XX_IISMOD_32FS );
++ if (ret < 0)
++ { printk("aaa3\n");
++ return ret;
++ }
++
++ /* set codec BCLK division for sample rate */
++ ret = codec_dai->dai_ops.set_clkdiv(codec_dai, WM8987_BCLKDIV, bclk);
++ if (ret < 0)
++ { printk("aaa4\n");
++ return ret;
++ }
++
++ /* set prescaler division for sample rate */
++ ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_PRESCALER,
++ (prescaler << 0x8));
++ if (ret < 0)
++ { printk("aaa5\n");
++ return ret;
++ }
++
++ return 0;
++}
++
++static int smdk6400_hifi_hw_free(struct snd_pcm_substream *substream)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai;
++
++ /* disable the PLL */
++ return 0;//lzcx codec_dai->dai_ops.set_pll(codec_dai, WM8987_PLL1, 0, 0);
++ //return codec_dai->dai_ops.set_pll(codec_dai, WM8987_PLL1, 0, 0);
++}
++
++/*
++ * Neo1973 WM8987 HiFi DAI opserations.
++ */
++static struct snd_soc_ops smdk6400_hifi_ops = {
++ .hw_params = smdk6400_hifi_hw_params,
++ .hw_free = smdk6400_hifi_hw_free,
++};
++
++static int smdk6400_scenario = 0;
++
++static int smdk6400_get_scenario(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ ucontrol->value.integer.value[0] = smdk6400_scenario;
++ return 0;
++}
++
++static int set_scenario_endpoints(struct snd_soc_codec *codec, int scenario)
++{
++ switch(smdk6400_scenario) {
++ printk("smdk6400_scenario is %d\n",smdk6400_scenario);//lzcx
++ case SMDK6400_AUDIO_OFF:
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 0);
++ snd_soc_dapm_set_endpoint(codec, "Mic Bias", 0);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 0);
++ break;
++ case SMDK6400_STEREO_TO_HEADPHONES:
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Mic Bias", 0);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 0);
++ break;
++ case SMDK6400_CAPTURE_MIC1:
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 0);
++ snd_soc_dapm_set_endpoint(codec, "Mic Bias", 1);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 0);
++ break;
++ case SMDK6400_CAPTURE_LINE_IN:
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 0);
++ snd_soc_dapm_set_endpoint(codec, "Mic Bias", 0);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 1);
++ break;
++ default:
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Mic Bias", 1);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 1);
++ break;
++ }
++
++ snd_soc_dapm_sync_endpoints(codec);
++
++ return 0;
++}
++
++static int smdk6400_set_scenario(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
++
++ if (smdk6400_scenario == ucontrol->value.integer.value[0])
++ return 0;
++
++ smdk6400_scenario = ucontrol->value.integer.value[0];
++ set_scenario_endpoints(codec, smdk6400_scenario);
++ return 1;
++}
++
++static const struct snd_soc_dapm_widget wm8987_dapm_widgets[] = {
++ SND_SOC_DAPM_HP("Headphone Jack", NULL),
++ SND_SOC_DAPM_MIC("Mic Bias", NULL),
++ SND_SOC_DAPM_LINE("Line In Jack", NULL),
++};
++
++
++/* example machine audio_mapnections */
++static const char* audio_map[][3] = {
++
++ {"Headphone Jack", NULL, "LOUT2"},
++ {"Headphone Jack", NULL, "ROUT2"}, //lzcx 1
++
++// mic is connected to line2 //lzcx
++
++ { "LINPUT2", NULL, "Mic Bias" },
++ { "Mic Bias", NULL, "Mic Jack" }, //lzcx
++
++ {"LINPUT1", NULL, "Line In Jack"},
++ {"RINPUT1", NULL, "Line In Jack"},
++
++#if 0
++ /* Connect the ALC pins */
++ {"ACIN", NULL, "ACOP"},
++#endif
++
++ {NULL, NULL, NULL},
++};
++
++static const char *smdk_scenarios[] = {
++ "Off",
++ "Capture Line In",
++ "Headphones",
++ "Capture Mic1",
++};
++
++static const struct soc_enum smdk_scenario_enum[] = {
++ SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(smdk_scenarios),smdk_scenarios),
++};
++
++static const struct snd_kcontrol_new wm8987_smdk6400_controls[] = {
++ SOC_ENUM_EXT("SMDK Mode", smdk_scenario_enum[0],
++ smdk6400_get_scenario, smdk6400_set_scenario),
++};
++
++/*
++ * This is an example machine initialisation for a wm8987 connected to a
++ * smdk6400. It is missing logic to detect hp/mic insertions and logic
++ * to re-route the audio in such an event.
++ */
++static int smdk6400_wm8987_init(struct snd_soc_codec *codec)
++{
++ int i, err;
++
++ /* set endpoints to default mode */
++ set_scenario_endpoints(codec, SMDK6400_AUDIO_OFF);
++
++ /* Add smdk6400 specific widgets */
++ for (i = 0; i < ARRAY_SIZE(wm8987_dapm_widgets); i++)
++ snd_soc_dapm_new_control(codec, &wm8987_dapm_widgets[i]);
++
++ /* add smdk6400 specific controls */
++ for (i = 0; i < ARRAY_SIZE(wm8987_smdk6400_controls); i++) {
++ err = snd_ctl_add(codec->card,
++ snd_soc_cnew(&wm8987_smdk6400_controls[i],
++ codec, NULL));
++ if (err < 0)
++ return err;
++ }
++
++ /* set up smdk6400 specific audio path audio_mapnects */
++ for (i = 0; audio_map[i][0] != NULL; i++) {
++ snd_soc_dapm_connect_input(codec, audio_map[i][0],
++ audio_map[i][1], audio_map[i][2]);
++ }
++
++ /* always connected */
++ snd_soc_dapm_set_endpoint(codec, "Mic Bias", 1);
++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 1);
++ snd_soc_dapm_set_endpoint(codec, "Line In Jack", 1);
++
++ snd_soc_dapm_sync_endpoints(codec);
++ return 0;
++}
++
++static int smdk6400_probe(struct platform_device *pdev)
++{
++ /*Set I2C port to controll WM8987 codec*/
++ s3c_gpio_pullup(S3C_GPB5, 0);
++ s3c_gpio_pullup(S3C_GPB6, 0);
++ s3c_gpio_cfgpin(S3C_GPB5, S3C_GPB5_I2C_SCL0);
++ s3c_gpio_cfgpin(S3C_GPB6, S3C_GPB6_I2C_SDA0);
++ return 0;
++}
++
++static struct snd_soc_dai_link smdk6400_dai[] = {
++{ /* Hifi Playback - for similatious use with voice below */
++ .name = "WM8987",
++ .stream_name = "WM8987 HiFi",
++ .cpu_dai = &s3c_i2s_dai,
++ //.codec_dai = &wm8987_dai[WM8987_DAI_HIFI],
++ .codec_dai = &wm8987_dai,
++ .init = smdk6400_wm8987_init,
++ .ops = &smdk6400_hifi_ops,
++},
++};
++
++static struct snd_soc_machine smdk6400 = {
++ .name = "smdk6400",
++ .probe = smdk6400_probe,
++ .dai_link = smdk6400_dai,
++ .num_links = ARRAY_SIZE(smdk6400_dai),
++};
++
++static struct wm8987_setup_data smdk6400_wm8987_setup = {
++ .i2c_address = 0x1a,
++};
++
++static struct snd_soc_device smdk6400_snd_devdata = {
++ .machine = &smdk6400,
++ .platform = &s3c24xx_soc_platform,
++ .codec_dev = &soc_codec_dev_wm8987,
++ .codec_data = &smdk6400_wm8987_setup,
++};
++
++static struct platform_device *smdk6400_snd_device;
++
++#ifdef CONFIG_AUDIO_CODEC_PROCFS
++
++// This function forces any delayed work to be queued and run.
++static int proc_run_delayed_work(struct delayed_work *dwork)
++{
++ int ret;
++
++ // cancel any work waiting to be queued.
++ ret = cancel_delayed_work(dwork);
++
++ // if there was any work waiting then we run it now and
++ // wait for it's completion.
++ if (ret) {
++ schedule_delayed_work(dwork, 0);
++ flush_scheduled_work();
++ }
++
++ return ret;
++}
++
++static int aud_proc_read(char* page, char** start, off_t off, int count,
++ int* eof, void* data)
++{
++ struct snd_soc_codec* codec = smdk6400_snd_devdata.codec;
++
++ if (!codec || !codec->read) return count;
++
++ if (off) return 0; data = (void*)page;
++
++ page += sprintf(page, "%s registers cached settings: ", codec->name);
++ for (count=0; count < codec->reg_cache_size; ++count) {
++ if (!(count % 16)) page += sprintf(page, "\n R%02x: ", count);
++ page += sprintf(page, "%03x ", codec->read(codec, count));
++ if ((count % 8) == 7) page += sprintf(page, " ");
++ }
++
++ return ((page += sprintf(page, "\n")) - (char*)data);
++}
++
++
++static int aud_proc_write(struct file* file, const char* buffer,
++ unsigned long count, void* data)
++{
++#define MAX_BUFLEN 16
++ u8 reg;
++ u16 val = MAX_BUFLEN - 1;
++ char *ptr, tmp_buf[MAX_BUFLEN];
++ struct snd_soc_codec* codec = smdk6400_snd_devdata.codec;
++
++ if (!codec || !codec->write) return count;
++
++ if (count < MAX_BUFLEN) val = count - 1; tmp_buf[val] = 0;
++ if (copy_from_user(tmp_buf, buffer, val)) return -EFAULT;
++
++ for (ptr = tmp_buf; isspace(*ptr); ++ptr) ;
++
++#if 0
++ if (strncasecmp(ptr, "FmOn", val) == 0) { // enter fmmode
++ ptr += 4;
++ proc_run_delayed_work(&smdk6400_snd_devdata.delayed_work);
++ cancel_delayed_work(&codec->delayed_work);
++ codec->write(codec, 0x1A, 0x018);
++ codec->write(codec, 0x22, 0x0D0);
++ codec->write(codec, 0x25, 0x0D0);
++ return count;
++ } else
++ if (strncasecmp(ptr, "FmOff", val) == 0) { // leave fmmode
++ ptr += 5;
++ codec->write(codec, 0x1A, 0x000);
++ codec->write(codec, 0x22, 0x150);
++ codec->write(codec, 0x25, 0x150);
++ return count;
++ } else
++ if (strncasecmp(ptr, "FmRecOn", val) == 0) { // record fm
++#if 0
++ struct snd_soc_dapm_path *p;
++ list_for_each_entry(p, &codec->dapm_paths, list) {
++ if(strncmp(p->sink->name, "Left PGA Mux", 12)) continue;
++ if(!p->connect && !strcmp(p->source->name, "LINPUT1"))
++ p->connect = 1;
++ if(p->connect && !strnmp(p->source->name, "LINPUT2"))
++ p->connect = 0;
++ }
++#endif
++ proc_run_delayed_work(&smdk6400_snd_devdata.delayed_work);
++ cancel_delayed_work_sync(&codec->delayed_work);
++ codec->write(codec, 0x20, 0x000);
++ //smdk6400_snd_devdata.s_rec = 1;
++ ptr += 7;
++ return count;
++ } else
++ if (strncasecmp(ptr, "FmRecOff", val) == 0) { // leave record fm
++ codec->write(codec, 0x20, 0x060);
++ //smdk6400_snd_devdata.s_rec = 0;
++ ptr += 8;
++ return count;
++ }
++#endif //lzcx
++
++ reg = simple_strtoul(ptr, &ptr, 16);
++
++ if (!(reg < codec->reg_cache_size)) {
++ printk(KERN_DEBUG "wrong register no %d, max %d\n",
++ reg, codec->reg_cache_size);
++ return count;
++ }
++
++ while (isspace(*ptr)) ++ptr;
++ val = simple_strtoul(ptr, &ptr, 16);
++
++ if (codec->write(codec, reg, val)) ;
++
++ return count;
++}
++
++#if 0 /* comment by mhfan */
++/*
++ * Initial:
++ * R00: 157 157 1f9 1f9 000 008 000 00a 000 000 1ff 1ff 00f 00f 000 000
++ * R10: 000 07b 000 032 000 1c3 1c3 0c5 050 141 000 000 000 000 000 000
++ * R20: 0a0 000 150 050 050 150 050 050 1f9 1f9 079
++ *
++ * Playback:
++ * R00: 157 157 1f9 1f9 000 000 000 042 023 000 1ff 1ff 00f 00f 000 000
++ * R10: 000 07b 000 032 000 1c3 1c3 0c5 050 0c0 1fa 000 000 000 000 000
++ * R20: 0a0 000 150 050 050 150 050 050 1f9 1f9 079 (44.1 KHz)
++ *
++ * R00: 157 157 1f9 1f9 000 000 000 042 037 000 1ff 1ff 00f 00f 000 000
++ * R10: 000 07b 000 032 000 1c3 1c3 0c5 050 0c0 1fa 000 000 000 000 000
++ * R20: 0a0 000 150 050 050 150 050 050 1f9 1f9 079 (22050 Hz)
++ *
++ * Capture:
++ */
++#endif /* comment by mhfan */
++
++#define AUD_PROC_ENTRY "driver/audregs"
++
++static int __init aud_proc_init(void)
++{
++ struct proc_dir_entry* aud_entry;
++
++ if (!(aud_entry = create_proc_entry(AUD_PROC_ENTRY,
++ S_IRUGO | S_IWUSR, NULL))) return -ENOMEM;
++
++ printk(KERN_INFO "Proc-FS interface for audio codec\n");
++
++ aud_entry->owner = THIS_MODULE;
++ aud_entry->write_proc = aud_proc_write;
++ aud_entry->read_proc = aud_proc_read;
++ aud_entry->data = NULL;
++
++ return 0;
++}
++
++static void __exit aud_proc_exit(void)
++{
++ remove_proc_entry(AUD_PROC_ENTRY, NULL);
++}
++#endif//CONFIG_AUDIO_CODEC_PROCFS
++
++
++static int __init smdk6400_init(void)
++{
++ int ret;
++
++ smdk6400_snd_device = platform_device_alloc("soc-audio", -1);
++ if (!smdk6400_snd_device)
++ return -ENOMEM;
++
++ platform_set_drvdata(smdk6400_snd_device, &smdk6400_snd_devdata);
++ smdk6400_snd_devdata.dev = &smdk6400_snd_device->dev;
++ ret = platform_device_add(smdk6400_snd_device);
++
++ if (ret)
++ platform_device_put(smdk6400_snd_device);
++#ifdef CONFIG_AUDIO_CODEC_PROCFS
++ if (aud_proc_init()) ;
++#endif//CONFIG_AUDIO_CODEC_PROCFS
++
++
++ return ret;
++}
++
++static void __exit smdk6400_exit(void)
++{
++ platform_device_unregister(smdk6400_snd_device);
++}
++
++module_init(smdk6400_init);
++module_exit(smdk6400_exit);
++
++/* Module information */
++MODULE_AUTHOR("Graeme Gregory, graeme.gregory@wolfsonmicro.com, www.wolfsonmicro.com");
++MODULE_DESCRIPTION("ALSA SoC WM8987 Neo1973");
++MODULE_LICENSE("GPL");
+--
+1.6.2.4
+
diff --git a/recipes/linux/linux-2.6.24/smartq5/defconfig b/recipes/linux/linux-2.6.24/smartq5/defconfig
new file mode 100644
index 0000000000..e71e588314
--- /dev/null
+++ b/recipes/linux/linux-2.6.24/smartq5/defconfig
@@ -0,0 +1,1624 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.24.7
+# Thu Aug 6 11:55:46 2009
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
+# CONFIG_GENERIC_TIME is not set
+# CONFIG_GENERIC_CLOCKEVENTS is not set
+CONFIG_MMU=y
+CONFIG_NO_IOPORT=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ZONE_DMA=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_USER_NS is not set
+# CONFIG_PID_NS is not set
+# CONFIG_AUDIT is not set
+CONFIG_IKCONFIG=m
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=13
+# CONFIG_CGROUPS is not set
+# CONFIG_FAIR_GROUP_SCHED is not set
+# CONFIG_SYSFS_DEPRECATED is not set
+# CONFIG_RELAY is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_EMBEDDED=y
+# CONFIG_UID16 is not set
+CONFIG_SYSCTL_SYSCALL=y
+# CONFIG_KALLSYMS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+# CONFIG_BUG is not set
+# CONFIG_ELF_CORE is not set
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_EVENTFD=y
+# CONFIG_SHMEM is not set
+# CONFIG_VM_EVENT_COUNTERS is not set
+# CONFIG_SLUB_DEBUG is not set
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_TINY_SHMEM=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_BSG is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+# CONFIG_IOSCHED_AS is not set
+# CONFIG_IOSCHED_DEADLINE is not set
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_AS is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CO285 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+CONFIG_ARCH_S3C2410=y
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+CONFIG_PLAT_S3C64XX=y
+CONFIG_S3C64XX_DMA=y
+# CONFIG_S3C64XX_ADC is not set
+CONFIG_PLAT_S3C=y
+
+#
+# Boot options
+#
+# CONFIG_S3C_BOOT_WATCHDOG is not set
+CONFIG_S3C_BOOT_ERROR_RESET=y
+
+#
+# Power management
+#
+# CONFIG_S3C2410_PM_DEBUG is not set
+# CONFIG_S3C2410_PM_CHECK is not set
+CONFIG_S3C_LOWLEVEL_UART_PORT=0
+CONFIG_MACH_SMDK=y
+
+#
+# S3C2400 Machines
+#
+
+#
+# S3C2410 Machines
+#
+# CONFIG_ARCH_SMDK2410 is not set
+# CONFIG_ARCH_H1940 is not set
+# CONFIG_MACH_N30 is not set
+# CONFIG_ARCH_BAST is not set
+# CONFIG_MACH_OTOM is not set
+# CONFIG_MACH_AML_M5900 is not set
+# CONFIG_MACH_VR1000 is not set
+# CONFIG_MACH_QT2410 is not set
+
+#
+# S3C2412 Machines
+#
+# CONFIG_MACH_SMDK2413 is not set
+# CONFIG_MACH_SMDK2412 is not set
+# CONFIG_MACH_VSTMS is not set
+
+#
+# S3C2440 Machines
+#
+# CONFIG_MACH_ANUBIS is not set
+# CONFIG_MACH_OSIRIS is not set
+# CONFIG_MACH_RX3715 is not set
+# CONFIG_ARCH_S3C2440 is not set
+# CONFIG_MACH_NEXCODER_2440 is not set
+
+#
+# S3C2442 Machines
+#
+
+#
+# S3C2443 Machines
+#
+# CONFIG_MACH_SMDK2443 is not set
+
+#
+# S3C2450 Machines
+#
+# CONFIG_MACH_SMDK2450 is not set
+
+#
+# S3C2416 Machines
+#
+# CONFIG_MACH_SMDK2416 is not set
+
+#
+# S3C6400 Machines
+#
+# CONFIG_MACH_SMDK6400 is not set
+
+#
+# S3C6410 Machines
+#
+CONFIG_MACH_SMDK6410=y
+# CONFIG_MACH_SMDK6430 is not set
+CONFIG_S3C6410_PDFW=m
+CONFIG_S3C6410_PDFW_PROC=y
+CONFIG_S3C6410_KDPMD=m
+CONFIG_CPU_S3C6410=y
+CONFIG_S3C6410_PM=y
+
+#
+# S5PC100 Machines
+#
+# CONFIG_MACH_SMDKC100 is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_V6=y
+CONFIG_CPU_32v6K=y
+CONFIG_CPU_32v6=y
+CONFIG_CPU_ABRT_EV6=y
+CONFIG_CPU_CACHE_V6=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V6=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+# CONFIG_OUTER_CACHE is not set
+
+#
+# Bus support
+#
+CONFIG_ISA=y
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+# CONFIG_TICK_ONESHOT is not set
+CONFIG_PREEMPT=y
+CONFIG_NO_IDLE_HZ=y
+CONFIG_HZ=200
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_RESOURCES_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+# CONFIG_LEDS is not set
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="console=ttySAC0,115200n8 root=/dev/mmcblk0p1 rootwait splash"
+# CONFIG_XIP_KERNEL is not set
+CONFIG_KEXEC=y
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+# CONFIG_CPU_FREQ_DEBUG is not set
+CONFIG_CPU_FREQ_STAT=y
+# CONFIG_CPU_FREQ_STAT_DETAILS is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_VFP=y
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_MISC=m
+
+#
+# Power management options
+#
+CONFIG_PM=y
+# CONFIG_PM_LEGACY is not set
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_SLEEP=y
+CONFIG_SUSPEND_UP_POSSIBLE=y
+CONFIG_SUSPEND=y
+CONFIG_APM_EMULATION=m
+
+#
+# DVFS support
+#
+CONFIG_S3C64XX_DVFS=m
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=m
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+CONFIG_INET_LRO=m
+CONFIG_INET_DIAG=m
+CONFIG_INET_TCP_DIAG=m
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IP_VS is not set
+# CONFIG_IPV6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_NETWORK_SECMARK is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+
+#
+# Core Netfilter Configuration
+#
+# CONFIG_NETFILTER_NETLINK is not set
+# CONFIG_NF_CONNTRACK_ENABLED is not set
+# CONFIG_NF_CONNTRACK is not set
+CONFIG_NETFILTER_XTABLES=m
+# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
+# CONFIG_NETFILTER_XT_TARGET_MARK is not set
+# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
+# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
+# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
+# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
+# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
+# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
+# CONFIG_NETFILTER_XT_MATCH_ESP is not set
+# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
+# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_MAC is not set
+# CONFIG_NETFILTER_XT_MATCH_MARK is not set
+# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
+# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
+# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
+# CONFIG_NETFILTER_XT_MATCH_REALM is not set
+# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
+# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
+# CONFIG_NETFILTER_XT_MATCH_STRING is not set
+# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
+# CONFIG_NETFILTER_XT_MATCH_TIME is not set
+# CONFIG_NETFILTER_XT_MATCH_U32 is not set
+# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
+
+#
+# IP: Netfilter Configuration
+#
+# CONFIG_IP_NF_QUEUE is not set
+# CONFIG_IP_NF_IPTABLES is not set
+# CONFIG_IP_NF_ARPTABLES is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_SCHED is not set
+CONFIG_NET_SCH_FIFO=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIBTUSB=m
+# CONFIG_BT_HCIBTSDIO is not set
+# CONFIG_BT_HCIUART is not set
+# CONFIG_BT_HCIBCM203X is not set
+# CONFIG_BT_HCIBPA10X is not set
+# CONFIG_BT_HCIBFUSB is not set
+# CONFIG_BT_HCIVHCI is not set
+# CONFIG_AF_RXRPC is not set
+
+#
+# Wireless
+#
+CONFIG_CFG80211=m
+CONFIG_NL80211=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_MAC80211=m
+CONFIG_MAC80211_RCSIMPLE=y
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUG is not set
+CONFIG_IEEE80211=m
+# CONFIG_IEEE80211_DEBUG is not set
+CONFIG_IEEE80211_CRYPT_WEP=m
+# CONFIG_IEEE80211_CRYPT_CCMP is not set
+# CONFIG_IEEE80211_CRYPT_TKIP is not set
+# CONFIG_IEEE80211_SOFTMAC is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_CONNECTOR=m
+# CONFIG_MTD is not set
+# CONFIG_PARPORT is not set
+# CONFIG_PNP is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=2
+CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+CONFIG_MISC_DEVICES=y
+CONFIG_SMARTQ5_ENCRYPT=y
+# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=m
+CONFIG_SCSI_DMA=y
+# CONFIG_SCSI_TGT is not set
+# CONFIG_SCSI_NETLINK is not set
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+CONFIG_BLK_DEV_SR=m
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+# CONFIG_CHR_DEV_SG is not set
+# CONFIG_CHR_DEV_SCH is not set
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_MULTI_LUN is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_LIBSAS is not set
+# CONFIG_SCSI_SRP_ATTRS is not set
+# CONFIG_SCSI_LOWLEVEL is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+CONFIG_NETDEVICES=y
+# CONFIG_NETDEVICES_MULTIQUEUE is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+CONFIG_TUN=m
+# CONFIG_VETH is not set
+# CONFIG_ARCNET is not set
+# CONFIG_PHYLIB is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=m
+# CONFIG_AX88796 is not set
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_NET_VENDOR_SMC is not set
+# CONFIG_SMC91X is not set
+CONFIG_DM9000=m
+# CONFIG_SMC911X is not set
+# CONFIG_NET_VENDOR_RACAL is not set
+# CONFIG_AT1700 is not set
+# CONFIG_DEPCA is not set
+# CONFIG_HP100 is not set
+# CONFIG_NET_ISA is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_NET_PCI is not set
+# CONFIG_B44 is not set
+# CONFIG_NETDEV_1000 is not set
+# CONFIG_NETDEV_10000 is not set
+# CONFIG_TR is not set
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+CONFIG_WLAN_80211=y
+# CONFIG_LIBERTAS is not set
+CONFIG_MARVELL_8686_SDIO=m
+CONFIG_MARVELL_8686_PROC_FS=y
+CONFIG_MARVELL_8686_DEBUG=y
+# CONFIG_USB_ZD1201 is not set
+# CONFIG_RTL8187 is not set
+# CONFIG_P54_COMMON is not set
+# CONFIG_HOSTAP is not set
+# CONFIG_B43 is not set
+# CONFIG_B43LEGACY is not set
+# CONFIG_RT2X00 is not set
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+# CONFIG_WAN is not set
+CONFIG_PPP=m
+# CONFIG_PPP_MULTILINK is not set
+# CONFIG_PPP_FILTER is not set
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_MPPE=m
+# CONFIG_PPPOE is not set
+# CONFIG_PPPOL2TP is not set
+# CONFIG_SLIP is not set
+CONFIG_SLHC=m
+# CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=m
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=800
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=480
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_TSDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ATKBD is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYPAD_S3C=m
+CONFIG_INPUT_MOUSE=y
+# CONFIG_MOUSE_PS2 is not set
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_APPLETOUCH is not set
+# CONFIG_MOUSE_INPORT is not set
+# CONFIG_MOUSE_LOGIBM is not set
+# CONFIG_MOUSE_PC110PAD is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_MOUSE_GPIO is not set
+# CONFIG_INPUT_JOYSTICK is not set
+CONFIG_INPUT_TABLET=y
+# CONFIG_TABLET_USB_ACECAD is not set
+# CONFIG_TABLET_USB_AIPTEK is not set
+# CONFIG_TABLET_USB_GTCO is not set
+# CONFIG_TABLET_USB_KBTAB is not set
+# CONFIG_TABLET_USB_WACOM is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_S3C=y
+# CONFIG_TOUCHSCREEN_NEW is not set
+# CONFIG_TOUCHSCREEN_FUJITSU is not set
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_UCB1400 is not set
+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_ATI_REMOTE is not set
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+CONFIG_INPUT_UINPUT=m
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_S3C2410 is not set
+CONFIG_SERIAL_S3C6400=y
+CONFIG_SERIAL_S3C64XX_CONSOLE=y
+# CONFIG_SERIAL_S3C64XX_HS_UART is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+# CONFIG_S3C_ADC is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+CONFIG_DEVPORT=y
+CONFIG_S3C_MEM=y
+CONFIG_LCD_4=y
+# CONFIG_LCD_7 is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_CHARDEV=m
+
+#
+# I2C Algorithms
+#
+# CONFIG_I2C_ALGOBIT is not set
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+# CONFIG_I2C_ELEKTOR is not set
+# CONFIG_I2C_GPIO is not set
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+CONFIG_I2C_S3C64XX=y
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_TINY_USB is not set
+# CONFIG_I2C_PCA_ISA is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_SENSORS_DS1337 is not set
+# CONFIG_SENSORS_DS1374 is not set
+# CONFIG_DS1682 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_SENSORS_PCA9539 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# SPI support
+#
+# CONFIG_SPI is not set
+# CONFIG_SPI_MASTER is not set
+# CONFIG_W1 is not set
+CONFIG_POWER_SUPPLY=m
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_PDA_POWER=m
+CONFIG_APM_POWER=m
+# CONFIG_BATTERY_DS2760 is not set
+CONFIG_HWMON=m
+# CONFIG_HWMON_VID is not set
+# CONFIG_SENSORS_AD7418 is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1029 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ADM9240 is not set
+# CONFIG_SENSORS_ADT7470 is not set
+# CONFIG_SENSORS_ATXP1 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_F71882FG is not set
+# CONFIG_SENSORS_F75375S is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_LM93 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_MAX6650 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_DME1737 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47M192 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_THMC50 is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83791D is not set
+# CONFIG_SENSORS_W83792D is not set
+# CONFIG_SENSORS_W83793 is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83627EHF is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+CONFIG_S3C2410_WATCHDOG=y
+
+#
+# ISA-based Watchdog Cards
+#
+# CONFIG_PCWATCHDOG is not set
+# CONFIG_MIXCOMWD is not set
+# CONFIG_WDT is not set
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB_POSSIBLE=y
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_SM501 is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+# CONFIG_VIDEO_V4L1 is not set
+# CONFIG_VIDEO_V4L1_COMPAT is not set
+# CONFIG_VIDEO_V4L2 is not set
+# CONFIG_VIDEO_CAPTURE_DRIVERS is not set
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+# CONFIG_VIDEO_VIVI is not set
+# CONFIG_VIDEO_SAA5246A is not set
+# CONFIG_VIDEO_SAA5249 is not set
+# CONFIG_VIDEO_SAMSUNG is not set
+# CONFIG_VIDEO_SAMSUNG_TVENC is not set
+# CONFIG_VIDEO_SAMSUNG_TVSCALER is not set
+# CONFIG_V4L_USB_DRIVERS is not set
+# CONFIG_VIDEO_PVRUSB2 is not set
+# CONFIG_VIDEO_USBVISION is not set
+# CONFIG_USB_ET61X251 is not set
+# CONFIG_USB_SN9C102 is not set
+# CONFIG_USB_ZC0301 is not set
+# CONFIG_USB_ZR364XX is not set
+# CONFIG_RADIO_ADAPTERS is not set
+# CONFIG_RADIO_CADET is not set
+# CONFIG_RADIO_RTRACK is not set
+# CONFIG_RADIO_RTRACK2 is not set
+# CONFIG_RADIO_AZTECH is not set
+# CONFIG_RADIO_GEMTEK is not set
+# CONFIG_RADIO_SF16FMI is not set
+# CONFIG_RADIO_SF16FMR2 is not set
+# CONFIG_RADIO_TERRATEC is not set
+# CONFIG_RADIO_TRUST is not set
+# CONFIG_RADIO_TYPHOON is not set
+# CONFIG_RADIO_ZOLTRIX is not set
+# CONFIG_USB_DSBR is not set
+# CONFIG_DVB_CORE is not set
+# CONFIG_DAB is not set
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_SYS_FOPS is not set
+CONFIG_FB_DEFERRED_IO=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+CONFIG_FB_S3C=y
+# CONFIG_FB_S3C_LTE480WV is not set
+# CONFIG_FB_S3C_LTV350QV is not set
+# CONFIG_FB_S3C_LTS222QV is not set
+# CONFIG_FB_S3C_A070VW04 is not set
+CONFIG_FB_S3C_TD043MTEX=y
+CONFIG_FB_S3C_BPP=y
+# CONFIG_FB_S3C_BPP_8 is not set
+CONFIG_FB_S3C_BPP_16=y
+# CONFIG_FB_S3C_BPP_24 is not set
+# CONFIG_FB_S3C_BPP_32 is not set
+CONFIG_FB_S3C_NUM=1
+# CONFIG_FB_S3C_VIRTUAL_SCREEN is not set
+# CONFIG_FB_S3C_DOUBLE_BUFFERING is not set
+# CONFIG_FB_UVESA is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_S3C2410 is not set
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=m
+# CONFIG_BACKLIGHT_CORGI is not set
+CONFIG_BACKLIGHT_SMDK=m
+
+#
+# Display device support
+#
+CONFIG_DISPLAY_SUPPORT=m
+
+#
+# Display hardware drivers
+#
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+# CONFIG_MDA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=m
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+# CONFIG_LOGO_LINUX_CLUT224 is not set
+CONFIG_LOGO_LINUX_LANDSCAPED_CLUT224=y
+
+#
+# Sound
+#
+CONFIG_SOUND=y
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+# CONFIG_SND_SEQUENCER is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=y
+CONFIG_SND_PCM_OSS=y
+CONFIG_SND_PCM_OSS_PLUGINS=y
+# CONFIG_SND_DYNAMIC_MINORS is not set
+# CONFIG_SND_SUPPORT_OLD_API is not set
+# CONFIG_SND_VERBOSE_PROCFS is not set
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+#
+# Generic devices
+#
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+#
+# ALSA ARM devices
+#
+
+#
+# USB devices
+#
+# CONFIG_SND_USB_AUDIO is not set
+# CONFIG_SND_USB_CAIAQ is not set
+
+#
+# System on Chip audio support
+#
+CONFIG_SND_SOC=y
+CONFIG_SND_S3C_SOC=y
+
+#
+# SoC Audio for the Samsung S3C
+#
+CONFIG_SND_S3C6410_SOC_I2S_V32=y
+# CONFIG_SND_S3C64XX_SOC_SMDK6410_WM9713 is not set
+# CONFIG_SND_S3C6410_SOC_AC97 is not set
+# CONFIG_SND_S3C6410_SOC_SMDK6410_WM8580 is not set
+CONFIG_SND_S3C64XX_SOC_SMDK6410_WM8987=y
+CONFIG_AUDIO_CODEC_PROCFS=y
+# CONFIG_SND_S3C64XX_SOC_SMDK6410_WM8990 is not set
+CONFIG_SND_SOC_WM8987=y
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=m
+CONFIG_HID_DEBUG=y
+CONFIG_HIDRAW=y
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+# CONFIG_USB_HIDINPUT_POWERBOOK is not set
+# CONFIG_HID_FF is not set
+CONFIG_USB_HIDDEV=y
+
+#
+# USB HID Boot Protocol drivers
+#
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_DEVICE_CLASS is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+CONFIG_USB_SUSPEND=y
+# CONFIG_USB_PERSIST is not set
+# CONFIG_USB_OTG is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_ISP116X_HCD is not set
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+CONFIG_USB_S3C_OTG_HOST=m
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+# CONFIG_USB_PRINTER is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+
+#
+# may also be needed; see USB_STORAGE Help for more information
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+CONFIG_USB_STORAGE_FREECOM=y
+CONFIG_USB_STORAGE_ISD200=y
+# CONFIG_USB_STORAGE_DPCM is not set
+CONFIG_USB_STORAGE_USBAT=y
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_STORAGE_ALAUDA is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+CONFIG_USB_MON=y
+
+#
+# USB port drivers
+#
+
+#
+# USB Serial Converter support
+#
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_GENERIC=y
+# CONFIG_USB_SERIAL_AIRCABLE is not set
+# CONFIG_USB_SERIAL_AIRPRIME is not set
+# CONFIG_USB_SERIAL_ARK3116 is not set
+# CONFIG_USB_SERIAL_BELKIN is not set
+# CONFIG_USB_SERIAL_CH341 is not set
+# CONFIG_USB_SERIAL_WHITEHEAT is not set
+# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
+# CONFIG_USB_SERIAL_CP2101 is not set
+# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
+# CONFIG_USB_SERIAL_EMPEG is not set
+# CONFIG_USB_SERIAL_FTDI_SIO is not set
+# CONFIG_USB_SERIAL_FUNSOFT is not set
+# CONFIG_USB_SERIAL_VISOR is not set
+# CONFIG_USB_SERIAL_IPAQ is not set
+# CONFIG_USB_SERIAL_IR is not set
+# CONFIG_USB_SERIAL_EDGEPORT is not set
+# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
+# CONFIG_USB_SERIAL_GARMIN is not set
+# CONFIG_USB_SERIAL_IPW is not set
+# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
+# CONFIG_USB_SERIAL_KEYSPAN is not set
+# CONFIG_USB_SERIAL_KLSI is not set
+# CONFIG_USB_SERIAL_KOBIL_SCT is not set
+# CONFIG_USB_SERIAL_MCT_U232 is not set
+# CONFIG_USB_SERIAL_MOS7720 is not set
+# CONFIG_USB_SERIAL_MOS7840 is not set
+# CONFIG_USB_SERIAL_NAVMAN is not set
+# CONFIG_USB_SERIAL_PL2303 is not set
+# CONFIG_USB_SERIAL_OTI6858 is not set
+# CONFIG_USB_SERIAL_HP4X is not set
+# CONFIG_USB_SERIAL_SAFE is not set
+# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
+# CONFIG_USB_SERIAL_TI is not set
+# CONFIG_USB_SERIAL_CYBERJACK is not set
+# CONFIG_USB_SERIAL_XIRCOM is not set
+CONFIG_USB_SERIAL_OPTION=m
+# CONFIG_USB_SERIAL_OMNINET is not set
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_JZ4755 is not set
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_BERRY_CHARGE is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_PHIDGET is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+# CONFIG_USB_TEST is not set
+
+#
+# USB DSL modem support
+#
+
+#
+# USB Gadget Support
+#
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_ATMEL_USBA is not set
+# CONFIG_USB_GADGET_FSL_USB2 is not set
+# CONFIG_USB_GADGET_NET2280 is not set
+# CONFIG_USB_GADGET_PXA2XX is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_GADGET_S3C_FS is not set
+# CONFIG_USB_GADGET_S3C_HS is not set
+CONFIG_USB_GADGET_S3C_OTGD_HS=y
+CONFIG_USB_S3C=y
+# CONFIG_USB_GADGET_S3C2410 is not set
+# CONFIG_USB_GADGET_AT91 is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+
+#
+# NOTE: S3C OTG device role enables the controller driver below
+#
+CONFIG_USB_S3C_OTGD_HS=y
+CONFIG_USB_GADGET_S3C_OTGD_HS_DMA_MODE=y
+# CONFIG_USB_GADGET_S3C_OTGD_HS_SLAVE_MODE is not set
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_GADGETFS is not set
+CONFIG_USB_FILE_STORAGE=m
+# CONFIG_USB_FILE_STORAGE_TEST is not set
+# CONFIG_USB_G_SERIAL is not set
+# CONFIG_USB_MIDI_GADGET is not set
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_UNSAFE_RESUME=y
+
+#
+# MMC/SD Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+# CONFIG_MMC_BLOCK_BOUNCE is not set
+CONFIG_SDIO_UART=m
+
+#
+# MMC/SD Host Controller Drivers
+#
+CONFIG_HSMMC_S3C=y
+CONFIG_USE_MMC_AS_ROOT=y
+CONFIG_HSMMC_S3C_IRQ_WORKAROUND=y
+CONFIG_HSMMC_SCATTERGATHER=y
+# CONFIG_S3CMMC_DEBUG is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=m
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_S3C24XX is not set
+CONFIG_LEDS_GPIO=m
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+
+#
+# SPI RTC drivers
+#
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_S3C=y
+
+#
+# Pulse Width Modulation Timer
+#
+CONFIG_PWM=y
+CONFIG_S3C6410_PWM=y
+
+#
+# File systems
+#
+# CONFIG_EXT2_FS is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+# CONFIG_EXT4DEV_FS is not set
+CONFIG_JBD=y
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+CONFIG_FUSE_FS=m
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+# CONFIG_JOLIET is not set
+# CONFIG_ZISOFS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+# CONFIG_MSDOS_FS is not set
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="cp437"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+# CONFIG_TMPFS is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_CONFIGFS_FS=m
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_AUFS=y
+
+#
+# These options are for 2.6.24.7
+#
+CONFIG_AUFS_BRANCH_MAX_127=y
+# CONFIG_AUFS_BRANCH_MAX_511 is not set
+# CONFIG_AUFS_BRANCH_MAX_1023 is not set
+# CONFIG_AUFS_BRANCH_MAX_32767 is not set
+CONFIG_AUFS_SYSAUFS=y
+# CONFIG_AUFS_HINOTIFY is not set
+
+#
+# EXPORTFS and AUFS_EXPORT are disabled
+#
+# CONFIG_AUFS_ROBR is not set
+# CONFIG_AUFS_DLGT is not set
+# CONFIG_AUFS_SHWH is not set
+CONFIG_AUFS_RR_SQUASHFS=y
+
+#
+# SECURITY and AUFS_SEC_PERM_PATCH are disabled
+#
+# CONFIG_AUFS_SPLICE_PATCH is not set
+# CONFIG_AUFS_LHASH_PATCH is not set
+
+#
+# NFS_V4 and AUFS_PUT_FILP_PATCH are disabled
+#
+# CONFIG_AUFS_WORKAROUND_FUSE is not set
+# CONFIG_AUFS_DEBUG is not set
+# CONFIG_AUFS_COMPAT is not set
+# CONFIG_AUFS_UNIONFS23_PATCH is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V3=y
+# CONFIG_NFS_V3_ACL is not set
+# CONFIG_NFS_V4 is not set
+CONFIG_NFS_DIRECTIO=y
+# CONFIG_NFSD is not set
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+# CONFIG_SUNRPC_BIND34 is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="cp437"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+# CONFIG_NLS_ISO8859_1 is not set
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+CONFIG_NLS_UTF8=y
+# CONFIG_DLM is not set
+CONFIG_INSTRUMENTATION=y
+# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_KERNEL is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_SAMPLES is not set
+# CONFIG_DEBUG_USER is not set
+CONFIG_DEBUG_S3C_UART=0
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_MD4 is not set
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_WP512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_GF128MUL is not set
+CONFIG_CRYPTO_ECB=m
+# CONFIG_CRYPTO_CBC is not set
+# CONFIG_CRYPTO_PCBC is not set
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_XTS is not set
+# CONFIG_CRYPTO_CRYPTD is not set
+# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+# CONFIG_CRYPTO_SERPENT is not set
+CONFIG_CRYPTO_AES=m
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_TEA is not set
+CONFIG_CRYPTO_ARC4=m
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_TEST is not set
+# CONFIG_CRYPTO_AUTHENC is not set
+CONFIG_CRYPTO_HW=y
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=m
+CONFIG_CRC_CCITT=m
+# CONFIG_CRC16 is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=m
+# CONFIG_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_DMA=y
diff --git a/recipes/linux/linux-2.6.24/smartq5/mer/0001-Mer-keymappings-change.patch b/recipes/linux/linux-2.6.24/smartq5/mer/0001-Mer-keymappings-change.patch
new file mode 100644
index 0000000000..a95ff35c04
--- /dev/null
+++ b/recipes/linux/linux-2.6.24/smartq5/mer/0001-Mer-keymappings-change.patch
@@ -0,0 +1,66 @@
+From 8dd9e60b445d8e002fdf3b4da5199a54ac87c422 Mon Sep 17 00:00:00 2001
+From: Carsten V. Munk <carsten.munk@gmail.com>
+Date: Thu, 6 Aug 2009 09:24:12 +0000
+Subject: [PATCH 01/13] Mer: keymappings change
+
+---
+ arch/arm/mach-s3c6410/mach-smdk6410.c | 12 ++++++------
+ 1 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/arch/arm/mach-s3c6410/mach-smdk6410.c b/arch/arm/mach-s3c6410/mach-smdk6410.c
+index 74dadd1..bdcfc59 100644
+--- a/arch/arm/mach-s3c6410/mach-smdk6410.c
++++ b/arch/arm/mach-s3c6410/mach-smdk6410.c
+@@ -299,21 +299,21 @@ static struct gpio_keys_button hhmid_buttons[] = {
+ #if defined (CONFIG_LCD_4)
+ {
+ .gpio = S3C_GPN2, //32*16 + 2
+- .code = KEY_PAGEDOWN,
++ .code = 196,
+ .desc = "Button 0",
+ .active_low = 1,
+ .debounce_interval = 5,
+ },
+ {
+ .gpio = S3C_GPN12,
+- .code = KEY_PAGEUP,
++ .code = 197,
+ .desc = "Button 3",
+ .active_low = 1,
+ .debounce_interval = 5,
+ },
+ {
+ .gpio = S3C_GPN15,
+- .code = KEY_LEFTALT,
++ .code = 195,
+ .desc = "Button 4",
+ .active_low = 1,
+ .debounce_interval = 5,
+@@ -321,21 +321,21 @@ static struct gpio_keys_button hhmid_buttons[] = {
+ #else
+ {
+ .gpio = S3C_GPN4,
+- .code = KEY_PAGEUP,
++ .code = KEY_F7,
+ .desc = "Button 0",
+ .active_low = 1,
+ .debounce_interval = 5,
+ },
+ {
+ .gpio = S3C_GPN3,
+- .code = KEY_PAGEDOWN,
++ .code = KEY_F8,
+ .desc = "Button 1",
+ .active_low = 1,
+ .debounce_interval = 5,
+ },
+ {
+ .gpio = S3C_GPN2, //32*16 + 2
+- .code = KEY_LEFTALT,
++ .code = KEY_F6,
+ .desc = "Button 2",
+ .active_low = 1,
+ .debounce_interval = 5,
+--
+1.6.2.4
+
diff --git a/recipes/linux/linux-2.6.24/smartq5/mer/0002-no-DM9000.patch b/recipes/linux/linux-2.6.24/smartq5/mer/0002-no-DM9000.patch
new file mode 100644
index 0000000000..c08915dce6
--- /dev/null
+++ b/recipes/linux/linux-2.6.24/smartq5/mer/0002-no-DM9000.patch
@@ -0,0 +1,25 @@
+From 34c76c67a3f790ff87a0111eee31ffb967b1ae78 Mon Sep 17 00:00:00 2001
+From: Carsten V. Munk <carsten.munk@gmail.com>
+Date: Thu, 6 Aug 2009 09:26:30 +0000
+Subject: [PATCH 02/13] no DM9000
+
+---
+ arch/arm/mach-s3c6410/mach-smdk6410.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/arch/arm/mach-s3c6410/mach-smdk6410.c b/arch/arm/mach-s3c6410/mach-smdk6410.c
+index 74dadd1..6e3c2ec 100644
+--- a/arch/arm/mach-s3c6410/mach-smdk6410.c
++++ b/arch/arm/mach-s3c6410/mach-smdk6410.c
+@@ -434,7 +434,7 @@ static struct platform_device *smdk6410_devices[] __initdata = {
+ &s3c_device_g3d,
+ &s3c_device_rotator,
+ #if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
+- &s3c_device_dm9000,
++// &s3c_device_dm9000,
+ #endif
+ };
+
+--
+1.6.2.4
+
diff --git a/recipes/linux/linux-2.6.24/smartq5/mer/0003-Mer-WPA-fix.patch b/recipes/linux/linux-2.6.24/smartq5/mer/0003-Mer-WPA-fix.patch
new file mode 100644
index 0000000000..4d7228d1b7
--- /dev/null
+++ b/recipes/linux/linux-2.6.24/smartq5/mer/0003-Mer-WPA-fix.patch
@@ -0,0 +1,27 @@
+From 5884edb0b88bd1cad2c39ad7e88786c0fd1fbd09 Mon Sep 17 00:00:00 2001
+From: Carsten V. Munk <carsten.munk@gmail.com>
+Date: Thu, 6 Aug 2009 09:28:34 +0000
+Subject: [PATCH 03/13] Mer: WPA fix
+
+---
+ drivers/net/wireless/marvell8686/wlan_wext.c | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/net/wireless/marvell8686/wlan_wext.c b/drivers/net/wireless/marvell8686/wlan_wext.c
+index 85ee593..adef3ab 100644
+--- a/drivers/net/wireless/marvell8686/wlan_wext.c
++++ b/drivers/net/wireless/marvell8686/wlan_wext.c
+@@ -2567,7 +2567,9 @@ wlan_get_range(struct net_device *dev, struct iw_request_info *info,
+ range->throughput = 5000 * 1000;
+ else
+ range->throughput = 1500 * 1000;
+-
++ range->enc_capa = IW_ENC_CAPA_WPA | IW_ENC_CAPA_WPA2 |
++ IW_ENC_CAPA_CIPHER_TKIP | IW_ENC_CAPA_CIPHER_CCMP;
++
+ range->min_rts = MRVDRV_RTS_MIN_VALUE;
+ range->max_rts = MRVDRV_RTS_MAX_VALUE;
+ range->min_frag = MRVDRV_FRAG_MIN_VALUE;
+--
+1.6.2.4
+
diff --git a/recipes/linux/linux-2.6.24/smartq5/mer/0004-Mer-hardwire-USB-OTG-gadget-type.patch b/recipes/linux/linux-2.6.24/smartq5/mer/0004-Mer-hardwire-USB-OTG-gadget-type.patch
new file mode 100644
index 0000000000..325a12c81b
--- /dev/null
+++ b/recipes/linux/linux-2.6.24/smartq5/mer/0004-Mer-hardwire-USB-OTG-gadget-type.patch
@@ -0,0 +1,25 @@
+From 1f8979f17ddd3af08784d10171328a06dbb19181 Mon Sep 17 00:00:00 2001
+From: Carsten V. Munk <carsten.munk@gmail.com>
+Date: Thu, 6 Aug 2009 09:30:08 +0000
+Subject: [PATCH 04/13] Mer: hardwire USB OTG gadget type
+
+---
+ drivers/usb/gadget/Kconfig | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
+index f71d038..31888dc 100644
+--- a/drivers/usb/gadget/Kconfig
++++ b/drivers/usb/gadget/Kconfig
+@@ -307,7 +307,7 @@ config USB_GADGET_S3C_OTGD_HS
+
+ config USB_S3C
+ tristate
+- depends on USB_GADGET_S3C_FS || USB_GADGET_S3C_HS || USB_GADGET_S3C_OTGD_HS
++ depends on USB_GADGET_S3C_OTGD_HS
+ default USB_GADGET
+ select USB_GADGET_SELECTED
+
+--
+1.6.2.4
+
diff --git a/recipes/linux/linux-2.6.24/smartq5/mer/0005-backlight-parameter-and-fixes.patch b/recipes/linux/linux-2.6.24/smartq5/mer/0005-backlight-parameter-and-fixes.patch
new file mode 100644
index 0000000000..c50e721c54
--- /dev/null
+++ b/recipes/linux/linux-2.6.24/smartq5/mer/0005-backlight-parameter-and-fixes.patch
@@ -0,0 +1,67 @@
+From 64d9ed38c8e6c71ffdbc4640ae38cca3dbcbe782 Mon Sep 17 00:00:00 2001
+From: Carsten V. Munk <carsten.munk@gmail.com>
+Date: Thu, 6 Aug 2009 09:31:09 +0000
+Subject: [PATCH 05/13] backlight parameter and fixes
+
+---
+ drivers/video/s3c/s3cfb.c | 14 +++++++++++++-
+ 1 files changed, 13 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/video/s3c/s3cfb.c b/drivers/video/s3c/s3cfb.c
+index 19ab25f..b854645 100644
+--- a/drivers/video/s3c/s3cfb.c
++++ b/drivers/video/s3c/s3cfb.c
+@@ -14,6 +14,7 @@
+ */
+
+ #include <linux/module.h>
++#include <linux/moduleparam.h>
+ #include <linux/kernel.h>
+ #include <linux/errno.h>
+ #include <linux/string.h>
+@@ -40,8 +41,10 @@
+
+ #include "s3cfb.h"
+
+-//#define CONFIG_FB_COLORBAR 1
++/*
++#define CONFIG_FB_COLORBAR 1
+ #include "colorbar.c"
++*/
+
+ /*
+ * Globals
+@@ -270,7 +273,10 @@ static int s3cfb_blank(int blank_mode, struct fb_info *info)
+ switch (blank_mode) {
+ case VESA_NO_BLANKING: /* lcd on, backlight on */
+ if(!backlight_power)
++ {
+ s3cfb_set_backlight_power(1);
++ s3cfb_set_lcd_power(1);
++ }
+ break;
+
+ case VESA_VSYNC_SUSPEND: /* lcd on, backlight off */
+@@ -923,6 +929,10 @@ static int __init s3cfb_probe(struct platform_device *pdev)
+
+ s3cfb_set_par(&(s3c_fb_info[0].fb));
+ mdelay(10);
++
++ if(backlight_level != S3C_FB_MIN_BACKLIGHT_LEVEL)
++ s3cfb_set_backlight_level(backlight_level);
++
+ //draw_colorbar(&(s3c_fb_info[0].fb));
+
+ return 0;
+@@ -1004,6 +1014,8 @@ static void __exit s3cfb_cleanup(void)
+ module_init(s3cfb_init);
+ module_exit(s3cfb_cleanup);
+
++module_param_named(backlight, backlight_level, int, 0);
++
+ MODULE_AUTHOR("Jinsung Yang");
+ MODULE_DESCRIPTION("S3C Framebuffer Driver");
+ MODULE_LICENSE("GPL");
+--
+1.6.2.4
+
diff --git a/recipes/linux/linux-2.6.24/smartq5/mer/0006-tv-encoder.patch b/recipes/linux/linux-2.6.24/smartq5/mer/0006-tv-encoder.patch
new file mode 100644
index 0000000000..624b9c317e
--- /dev/null
+++ b/recipes/linux/linux-2.6.24/smartq5/mer/0006-tv-encoder.patch
@@ -0,0 +1,2624 @@
+From 002a069a3a52b8a2286e8c559a2d3d9a0a954501 Mon Sep 17 00:00:00 2001
+From: Carsten V. Munk <carsten.munk@gmail.com>
+Date: Thu, 6 Aug 2009 11:32:58 +0000
+Subject: [PATCH 06/13] tv encoder
+
+---
+ drivers/media/video/Kconfig | 16 +
+ drivers/media/video/samsung/Makefile | 2 +
+ drivers/media/video/samsung/s3c-tvenc.c | 1479 ++++++++++++++++++++++++++++
+ drivers/media/video/samsung/s3c-tvenc.h | 165 +++
+ drivers/media/video/samsung/s3c-tvscaler.c | 802 +++++++++++++++
+ drivers/media/video/samsung/s3c-tvscaler.h | 96 ++
+ 6 files changed, 2560 insertions(+), 0 deletions(-)
+ create mode 100644 drivers/media/video/samsung/s3c-tvenc.c
+ create mode 100644 drivers/media/video/samsung/s3c-tvenc.h
+ create mode 100644 drivers/media/video/samsung/s3c-tvscaler.c
+ create mode 100644 drivers/media/video/samsung/s3c-tvscaler.h
+
+diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
+index 6506263..8797184 100644
+--- a/drivers/media/video/Kconfig
++++ b/drivers/media/video/Kconfig
+@@ -545,6 +545,22 @@ config VIDEO_ADV7180
+
+ endchoice
+
++config VIDEO_SAMSUNG_TVENC
++ tristate "Samsung TV encoder"
++ depends on I2C && VIDEO_V4L2
++ help
++ Samsung encoder
++
++ To compile this driver as a module, choose M here
++
++config VIDEO_SAMSUNG_TVSCALER
++ tristate "Samsung TV scaler"
++ depends on I2C && VIDEO_V4L2
++ help
++ Samsung TV scaler
++
++ To compile this driver as a module, choose M here
++
+
+ config VIDEO_VINO
+ tristate "SGI Vino Video For Linux (EXPERIMENTAL)"
+diff --git a/drivers/media/video/samsung/Makefile b/drivers/media/video/samsung/Makefile
+index 885512c..ede0269 100644
+--- a/drivers/media/video/samsung/Makefile
++++ b/drivers/media/video/samsung/Makefile
+@@ -7,3 +7,5 @@ obj-$(CONFIG_VIDEO_SAMSUNG_S5K4BA) += 4xa_sensor.o
+ obj-$(CONFIG_VIDEO_ADV7180) += adv7180.o
+ obj-$(CONFIG_VIDEO_APTINA_MT9P012) += mt9p012.o
+
++obj-$(CONFIG_VIDEO_SAMSUNG_TVENC) += s3c_tvenc.o
++obj-$(CONFIG_VIDEO_SAMSUNG_TVSCALER) += s3c_tvenc.o
+diff --git a/drivers/media/video/samsung/s3c-tvenc.c b/drivers/media/video/samsung/s3c-tvenc.c
+new file mode 100644
+index 0000000..11dfd37
+--- /dev/null
++++ b/drivers/media/video/samsung/s3c-tvenc.c
+@@ -0,0 +1,1479 @@
++
++/*
++ * linux/drivers/tvenc/s3c-tvenc.c
++ *
++ * Revision 1.0
++ *
++ *
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file COPYING in the main directory of this archive for
++ * more details.
++ *
++ * S3C TV Encoder driver
++ *
++ */
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/types.h>
++#include <linux/timer.h>
++#include <linux/kernel.h>
++#include <linux/fs.h>
++#include <linux/platform_device.h>
++#include <linux/interrupt.h>
++#include <linux/clk.h>
++#include <linux/delay.h>
++#include <asm/uaccess.h>
++#include <linux/errno.h> /* error codes */
++#include <asm/div64.h>
++#include <linux/mm.h>
++#include <linux/tty.h>
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/hardware.h>
++#include <asm/uaccess.h>
++#include <asm/arch/map.h>
++
++#include <linux/version.h>
++#if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,16)
++#include <linux/config.h>
++#include <asm/arch/registers.h>
++#include <linux/videodev2.h>
++#else
++#include <asm/arch/regs-tvenc.h>
++#include <asm/arch/regs-lcd.h>
++#include <media/v4l2-common.h>
++#endif
++
++#include "s3c-tvenc.h"
++
++#define PFX "s3c_tvenc"
++
++static struct clk *tvenc_clock;
++static struct clk *h_clk;
++static int s3c_tvenc_irq = NO_IRQ;
++static struct resource *s3c_tvenc_mem;
++static void __iomem *base;
++static wait_queue_head_t waitq;
++static tv_out_params_t tv_param = {0,};
++
++/* Backup SFR value */
++static u32 backup_reg[2];
++
++
++/* Structure that declares the access functions*/
++
++static void s3c_tvenc_switch(tv_enc_switch_t sw)
++{
++ if(sw == OFF) {
++ __raw_writel(__raw_readl(base + S3C_TVCTRL)
++ &~ S3C_TVCTRL_ON, base + S3C_TVCTRL);
++ } else if(sw == ON) {
++ __raw_writel(__raw_readl(base + S3C_TVCTRL)
++ | S3C_TVCTRL_ON, base + S3C_TVCTRL);
++ } else
++ printk("Error func:%s line:%d\n", __FUNCTION__, __LINE__);
++}
++
++static void s3c_tvenc_set_image_size(u32 width, u32 height)
++{
++ __raw_writel(IIS_WIDTH(width)| IIS_HEIGHT(height),
++ base + S3C_INIMAGESIZE);
++}
++
++#if 0
++static void s3c_tvenc_enable_macrovision(tv_standard_t tvmode, macro_pattern_t pattern)
++{
++ switch(pattern) {
++ case AGC4L :
++ break;
++ case AGC2L :
++ break;
++ case N01 :
++ break;
++ case N02 :
++ break;
++ case P01 :
++ break;
++ case P02 :
++ break;
++ default :
++ break;
++ }
++}
++
++static void s3c_tvenc_disable_macrovision(void)
++{
++ __raw_writel(__raw_readl(base + S3C_MACROVISION0)
++ &~0xff, base + S3C_MACROVISION0);
++}
++#endif
++
++static void s3c_tvenc_set_tv_mode(tv_standard_t mode, tv_conn_type_t out)
++{
++ u32 signal_type = 0, output_type = 0;
++
++ switch(mode) {
++ case PAL_N :
++ __raw_writel(VBP_VEFBPD_PAL|VBP_VOFBPD_PAL,
++ base + S3C_VBPORCH);
++ __raw_writel(HBP_HSPW_PAL|HBP_HBPD_PAL,
++ base + S3C_HBPORCH);
++ __raw_writel(HEO_DTO_PAL|HEO_HEOV_PAL,
++ base + S3C_HENHOFFSET);
++ __raw_writel(EPC_PED_ON,
++ base + S3C_PEDCTRL);
++ __raw_writel(YFB_YBW_26|YFB_CBW_06,
++ base + S3C_YCFILTERBW);
++ __raw_writel(SSC_HSYNC_PAL,
++ base + S3C_SYNCSIZECTRL);
++ __raw_writel(BSC_BEND_PAL|BSC_BSTART_PAL,
++ base + S3C_BURSTCTRL);
++ __raw_writel(MBS_BSTART_PAL,
++ base + S3C_MACROBURSTCTRL);
++ __raw_writel(AVP_AVEND_PAL|AVP_AVSTART_PAL,
++ base + S3C_ACTVIDPOCTRL);
++ break;
++ case PAL_NC :
++ case PAL_BGHID :
++ __raw_writel(VBP_VEFBPD_PAL|VBP_VOFBPD_PAL,
++ base + S3C_VBPORCH);
++ __raw_writel(HBP_HSPW_PAL|HBP_HBPD_PAL,
++ base + S3C_HBPORCH);
++ __raw_writel(HEO_DTO_PAL|HEO_HEOV_PAL,
++ base + S3C_HENHOFFSET);
++ __raw_writel(EPC_PED_OFF,
++ base + S3C_PEDCTRL);
++ __raw_writel(YFB_YBW_26|YFB_CBW_06,
++ base + S3C_YCFILTERBW);
++ __raw_writel(SSC_HSYNC_PAL,
++ base + S3C_SYNCSIZECTRL);
++ __raw_writel(BSC_BEND_PAL|BSC_BSTART_PAL,
++ base + S3C_BURSTCTRL);
++ __raw_writel(MBS_BSTART_PAL,
++ base + S3C_MACROBURSTCTRL);
++ __raw_writel(AVP_AVEND_PAL|AVP_AVSTART_PAL,
++ base + S3C_ACTVIDPOCTRL);
++ break;
++ case NTSC_443 :
++ __raw_writel(VBP_VEFBPD_NTSC|VBP_VOFBPD_NTSC,
++ base + S3C_VBPORCH);
++ __raw_writel(HBP_HSPW_NTSC|HBP_HBPD_NTSC,
++ base + S3C_HBPORCH);
++ __raw_writel(HEO_DTO_NTSC|HEO_HEOV_NTSC,
++ base + S3C_HENHOFFSET);
++ __raw_writel(EPC_PED_ON,
++ base + S3C_PEDCTRL);
++ __raw_writel(YFB_YBW_26|YFB_CBW_06,
++ base + S3C_YCFILTERBW);
++ __raw_writel(SSC_HSYNC_NTSC,
++ base + S3C_SYNCSIZECTRL);
++ __raw_writel(BSC_BEND_NTSC|BSC_BSTART_NTSC,
++ base + S3C_BURSTCTRL);
++ __raw_writel(MBS_BSTART_NTSC,
++ base + S3C_MACROBURSTCTRL);
++ __raw_writel(AVP_AVEND_NTSC|AVP_AVSTART_NTSC,
++ base + S3C_ACTVIDPOCTRL);
++ break;
++ case NTSC_J :
++ __raw_writel(VBP_VEFBPD_NTSC|VBP_VOFBPD_NTSC,
++ base + S3C_VBPORCH);
++ __raw_writel(HBP_HSPW_NTSC|HBP_HBPD_NTSC,
++ base + S3C_HBPORCH);
++ __raw_writel(HEO_DTO_NTSC|HEO_HEOV_NTSC,
++ base + S3C_HENHOFFSET);
++ __raw_writel(EPC_PED_OFF,
++ base + S3C_PEDCTRL);
++ __raw_writel(YFB_YBW_21|YFB_CBW_06,
++ base + S3C_YCFILTERBW);
++ __raw_writel(SSC_HSYNC_NTSC,
++ base + S3C_SYNCSIZECTRL);
++ __raw_writel(BSC_BEND_NTSC|BSC_BSTART_NTSC,
++ base + S3C_BURSTCTRL);
++ __raw_writel(MBS_BSTART_NTSC,
++ base + S3C_MACROBURSTCTRL);
++ __raw_writel(AVP_AVEND_NTSC|AVP_AVSTART_NTSC,
++ base + S3C_ACTVIDPOCTRL);
++ break;
++ case PAL_M :
++ case NTSC_M :
++ default :
++ __raw_writel(VBP_VEFBPD_NTSC|VBP_VOFBPD_NTSC,
++ base + S3C_VBPORCH);
++ __raw_writel(HBP_HSPW_NTSC|HBP_HBPD_NTSC,
++ base + S3C_HBPORCH);
++ __raw_writel(HEO_DTO_NTSC|HEO_HEOV_NTSC,
++ base + S3C_HENHOFFSET);
++ __raw_writel(EPC_PED_ON,
++ base + S3C_PEDCTRL);
++ __raw_writel(YFB_YBW_21|YFB_CBW_06,
++ base + S3C_YCFILTERBW);
++ __raw_writel(SSC_HSYNC_NTSC,
++ base + S3C_SYNCSIZECTRL);
++ __raw_writel(BSC_BEND_NTSC|BSC_BSTART_NTSC,
++ base + S3C_BURSTCTRL);
++ __raw_writel(MBS_BSTART_NTSC,
++ base + S3C_MACROBURSTCTRL);
++ __raw_writel(AVP_AVEND_NTSC|AVP_AVSTART_NTSC,
++ base + S3C_ACTVIDPOCTRL);
++ break;
++ }
++
++ if(out == S_VIDEO) {
++ __raw_writel(YFB_YBW_60|YFB_CBW_06,
++ base + S3C_YCFILTERBW);
++ output_type = S3C_TVCTRL_OUTTYPE_S;
++ } else
++ output_type = S3C_TVCTRL_OUTTYPE_C;
++
++ switch(mode) {
++ case NTSC_M :
++ signal_type = S3C_TVCTRL_OUTFMT_NTSC_M;
++ break;
++ case NTSC_J :
++ signal_type = S3C_TVCTRL_OUTFMT_NTSC_J;
++ break;
++ case PAL_BGHID :
++ signal_type = S3C_TVCTRL_OUTFMT_PAL_BDG;
++ break;
++ case PAL_M :
++ signal_type = S3C_TVCTRL_OUTFMT_PAL_M;
++ break;
++ case PAL_NC :
++ signal_type = S3C_TVCTRL_OUTFMT_PAL_NC;
++ break;
++ default:
++ printk("s3c_tvenc_set_tv_mode : No matching signal_type!\n");
++ break;
++ }
++
++ __raw_writel((__raw_readl(base + S3C_TVCTRL)
++ &~(0x1f<<4))| output_type | signal_type,
++ base + S3C_TVCTRL);
++
++ __raw_writel(0x01, base + S3C_FSCAUXCTRL);
++}
++
++#if 0
++static void s3c_tvenc_set_pedestal(tv_enc_switch_t sw)
++{
++ if(sw)
++ __raw_writel(EPC_PED_ON, base + S3C_PEDCTRL);
++ else
++ __raw_writel(EPC_PED_OFF, base + S3C_PEDCTRL);
++}
++
++static void s3c_tvenc_set_sub_carrier_freq(u32 freq)
++{
++ __raw_writel(FSC_CTRL(freq), base + S3C_FSCCTRL);
++}
++
++static void s3c_tvenc_set_fsc_dto(u32 val)
++{
++ unsigned int temp;
++
++ temp = (0x1<<31)|(val&0x7fffffff);
++ __raw_writel(temp, base + S3C_FSCDTOMANCTRL);
++}
++
++static void s3c_tvenc_disable_fsc_dto(void)
++{
++ __raw_writel(__raw_readl(base + S3C_FSCDTOMANCTRL)&~(1<<31),
++ base + S3C_FSCDTOMANCTRL);
++}
++
++static void s3c_tvenc_set_bg(u32 soft_mix, u32 color, u32 lum_offset)
++{
++ unsigned int bg_color;
++ switch(color) {
++ case 0 :
++ bg_color = BGC_BGCS_BLACK;
++ break;
++ case 1 :
++ bg_color = BGC_BGCS_BLUE;
++ break;
++ case 2 :
++ bg_color = BGC_BGCS_RED;
++ break;
++ case 3 :
++ bg_color = BGC_BGCS_MAGENTA;
++ break;
++ case 4 :
++ bg_color = BGC_BGCS_GREEN;
++ break;
++ case 5 :
++ bg_color = BGC_BGCS_CYAN;
++ break;
++ case 6 :
++ bg_color = BGC_BGCS_YELLOW;
++ break;
++ case 7 :
++ bg_color = BGC_BGCS_WHITE;
++ break;
++ }
++ if(soft_mix)
++ __raw_writel(BGC_SME_ENA|bg_color|BGC_BGYOFS(lum_offset),
++ base + S3C_BGCTRL);
++ else
++ __raw_writel(BGC_SME_DIS|bg_color|BGC_BGYOFS(lum_offset),
++ base + S3C_BGCTRL);
++
++}
++
++static void s3c_tvenc_set_bg_vav_hav(u32 hav_len, u32 vav_len, u32 hav_st, u32 vav_st)
++{
++ __raw_writel(BVH_BG_HL(hav_len)|BVH_BG_HS(hav_st)|BVH_BG_VL(vav_len)|BVH_BG_VS(vav_st),
++ base + S3C_BGHVAVCTRL);
++}
++#endif
++
++static void s3c_tvenc_set_hue_phase(u32 phase_val)
++{
++ __raw_writel(HUE_CTRL(phase_val),
++ base + S3C_HUECTRL);
++}
++
++#if 0
++static u32 s3c_tvenc_get_hue_phase(void)
++{
++ return __raw_readl(base + S3C_HUECTRL)&0xff;
++}
++#endif
++
++static void s3c_tvenc_set_contrast(u32 contrast)
++{
++ u32 temp;
++
++ temp = __raw_readl(base + S3C_CONTRABRIGHT);
++
++ __raw_writel((temp &~0xff)|contrast,
++ base + S3C_CONTRABRIGHT);
++}
++
++#if 0
++static u32 s3c_tvenc_get_contrast(void)
++{
++ return (__raw_readl(base + S3C_CONTRABRIGHT)&0xff);
++}
++#endif
++
++static void s3c_tvenc_set_bright(u32 bright)
++{
++ u32 temp;
++
++ temp = __raw_readl(base + S3C_CONTRABRIGHT);
++
++ __raw_writel((temp &~(0xff<<16))| (bright<<16),
++ base + S3C_CONTRABRIGHT);
++}
++
++#if 0
++static u32 s3c_tvenc_get_bright(void)
++{
++ return ((__raw_readl(base + S3C_CONTRABRIGHT)&(0xff<<16))>>16);
++}
++
++
++static void s3c_tvenc_set_cbgain(u32 cbgain)
++{
++ u32 temp;
++
++ temp = __raw_readl(base + S3C_CBCRGAINCTRL);
++
++ __raw_writel((temp &~0xff)|cbgain,
++ base + S3C_CBCRGAINCTRL);
++}
++
++
++static u32 s3c_tvenc_get_cbgain(void)
++{
++ return (__raw_readl(base + S3C_CBCRGAINCTRL)&0xff);
++}
++
++static void s3c_tvenc_set_crgain(u32 crgain)
++{
++ u32 temp;
++
++ temp = __raw_readl(base + S3C_CBCRGAINCTRL);
++
++ __raw_writel((temp &~(0xff<<16))| (crgain<<16),
++ base + S3C_CBCRGAINCTRL);
++}
++
++static u32 s3c_tvenc_get_crgain(void)
++{
++ return ((__raw_readl(base + S3C_CBCRGAINCTRL)&(0xff<<16))>>16);
++}
++#endif
++
++static void s3c_tvenc_enable_gamma_control(tv_enc_switch_t enable)
++{
++ u32 temp;
++
++ temp = __raw_readl(base + S3C_GAMMACTRL);
++ if(enable == ON)
++ temp |= (1<<12);
++ else
++ temp &= ~(1<<12);
++
++ __raw_writel(temp, base + S3C_GAMMACTRL);
++}
++
++static void s3c_tvenc_set_gamma_gain(u32 ggain)
++{
++ u32 temp;
++
++ temp = __raw_readl(base + S3C_GAMMACTRL);
++
++ __raw_writel((temp &~(0x7<<8))| (ggain<<8),
++ base + S3C_GAMMACTRL);
++}
++
++#if 0
++static u32 s3c_tvenc_get_gamma_gain(void)
++{
++ return ((__raw_readl(base + S3C_GAMMACTRL)&(0x7<<8))>>8);
++}
++
++static void s3c_tvenc_enable_mute_control(tv_enc_switch_t enable)
++{
++ u32 temp;
++
++ temp = __raw_readl(base + S3C_GAMMACTRL);
++ if(enable == ON)
++ temp |= (1<<12);
++ else
++ temp &= ~(1<<12);
++
++ __raw_writel(temp, base + S3C_GAMMACTRL);
++}
++
++static void s3c_tvenc_set_mute(u32 y, u32 cb, u32 cr)
++{
++ u32 temp;
++
++ temp = __raw_readl(base + S3C_MUTECTRL);
++
++ temp &=~(0xffffff<<8);
++ temp |= (cr & 0xff)<<24;
++ temp |= (cb & 0xff)<<16;
++ temp |= (y & 0xff)<<8;
++
++ __raw_writel(temp, base + S3C_MUTECTRL);
++}
++
++static void s3c_tvenc_get_mute(u32 *y, u32 *cb, u32 *cr)
++{
++ u32 temp;
++
++ temp = __raw_readl(base + S3C_MUTECTRL);
++
++ *y = (temp&(0xff<<8))>>8;
++ *cb = (temp&(0xff<<16))>>16;
++ *cr = (temp&(0xff<<24))>>24;
++}
++#endif
++
++static void s3c_tvenc_get_active_win_center(u32 *vert, u32 *horz)
++{
++ u32 temp;
++
++ temp = __raw_readl(base + S3C_HENHOFFSET);
++
++ *vert = (temp&(0x3f<<24))>>24;
++ *horz = (temp&(0xff<<16))>>16;
++}
++
++static void s3c_tvenc_set_active_win_center(u32 vert, u32 horz)
++{
++ u32 temp;
++
++ temp = __raw_readl(base + S3C_HENHOFFSET);
++
++ temp &=~(0x3ffff<<16);
++ temp |= (vert&0x3f)<<24;
++ temp |= (horz&0xff)<<16;
++
++ __raw_writel(temp, base + S3C_HENHOFFSET);
++}
++
++// LCD display controller configuration functions
++static void s3c_lcd_set_output_path(lcd_local_output_t out)
++{
++#if 0 // peter for 2.6.21 kernel
++ s3c_fb_set_output_path(out);
++#else // peter for 2.6.24 kernel
++ s3cfb_set_output_path(out);
++#endif
++}
++
++static void s3c_lcd_set_clkval(u32 clkval)
++{
++#if 0 // peter for 2.6.21 kernel
++ s3c_fb_set_clkval(clkval);
++#else // peter for 2.6.24 kernel
++ s3cfb_set_clock(clkval);
++#endif
++}
++
++static void s3c_lcd_enable_rgbport(u32 on_off)
++{
++#if 0 // peter for 2.6.21 kernel
++ s3c_fb_enable_rgbport(on_off);
++#else // peter for 2.6.24 kernel
++ s3cfb_enable_rgbport(on_off);
++#endif
++}
++
++static void s3c_lcd_start(void)
++{
++#if 0 // peter for 2.6.21 kernel
++ s3c_fb_start_lcd();
++#else // peter for 2.6.24 kernel
++ s3cfb_start_lcd();
++#endif
++}
++
++static void s3c_lcd_stop(void)
++{
++#if 0 // peter for 2.6.21 kernel
++ s3c_fb_stop_lcd();
++#else // peter for 2.6.24 kernel
++ s3cfb_stop_lcd();
++#endif
++}
++
++
++static void s3c_lcd_set_config(void)
++{
++ backup_reg[0] = __raw_readl(S3C_VIDCON0);
++ backup_reg[1] = __raw_readl(S3C_VIDCON2);
++
++ s3c_lcd_set_output_path(LCD_TVRGB);
++ tv_param.lcd_output_mode = LCD_TVRGB;
++
++ s3c_lcd_set_clkval(4);
++ s3c_lcd_enable_rgbport(1);
++}
++
++static void s3c_lcd_exit_config(void)
++{
++ __raw_writel(backup_reg[0], S3C_VIDCON0);
++ __raw_writel(backup_reg[1], S3C_VIDCON2);
++ tv_param.lcd_output_mode = LCD_RGB;
++}
++
++static int scaler_test_start(void)
++{
++ tv_param.sp.DstFullWidth = 640;
++ tv_param.sp.DstFullHeight= 480;
++ tv_param.sp.DstCSpace = RGB16;
++
++ s3c_tvscaler_config(&tv_param.sp);
++
++ s3c_tvscaler_int_enable(1);
++
++ s3c_tvscaler_start();
++
++ return 0;
++}
++
++static int scaler_test_stop(void)
++{
++ s3c_tvscaler_int_disable();
++
++ return 0;
++}
++
++
++static int tvout_start(void)
++{
++ u32 width, height;
++ tv_standard_t type;
++ tv_conn_type_t conn;
++
++ tv_param.sp.DstFullWidth *= 2; // For TV OUT
++
++ width = tv_param.sp.DstFullWidth;
++ height = tv_param.sp.DstFullHeight;
++ type = tv_param.sig_type;
++ conn = tv_param.connect;
++
++ /* Set TV-SCALER parameter */
++ switch(tv_param.v2.input->type) {
++ case V4L2_INPUT_TYPE_FIFO: // LCD FIFO-OUT
++ tv_param.sp.Mode = FREE_RUN;
++ tv_param.sp.DstCSpace = YCBYCR;
++ /* Display controller setting */
++ s3c_lcd_stop();
++ s3c_lcd_set_config();
++ break;
++ case V4L2_INPUT_TYPE_MSDMA: // MSDMA
++ tv_param.sp.Mode = FREE_RUN;
++ tv_param.sp.DstCSpace = YCBYCR;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ s3c_tvenc_set_tv_mode(type, conn);
++ s3c_tvenc_set_image_size(width, height);
++ s3c_tvenc_switch(ON);
++
++ s3c_tvscaler_config(&tv_param.sp); // for setting DstStartX/Y, DstWidth/Height
++ s3c_tvscaler_set_interlace(1);
++ if(tv_param.v2.input->type == V4L2_INPUT_TYPE_FIFO)
++ s3c_tvscaler_int_disable();
++ else
++ s3c_tvscaler_int_enable(1);
++ s3c_tvscaler_start();
++
++ if(tv_param.v2.input->type == V4L2_INPUT_TYPE_FIFO)
++ s3c_lcd_start();
++
++ return 0;
++}
++
++static int tvout_stop(void)
++{
++
++ s3c_tvscaler_set_interlace(0);
++ s3c_tvscaler_stop_freerun();
++ s3c_tvscaler_int_disable();
++ s3c_tvenc_switch(OFF);
++
++ switch(tv_param.v2.input->type) {
++ case V4L2_INPUT_TYPE_FIFO: // LCD FIFO-OUT
++ /* Display controller setting */
++ s3c_lcd_stop();
++ s3c_lcd_exit_config();
++ s3c_lcd_start();
++ break;
++ default:
++ break;
++ }
++ return 0;
++}
++
++/* ------------------------------------------ V4L2 SUPPORT ----------------------------------------------*/
++/* ------------- In FIFO and MSDMA, v4l2_input supported by S3C TVENC controller ------------------*/
++static struct v4l2_input tvenc_inputs[] = {
++ {
++ .index = 0,
++ .name = "LCD FIFO_OUT",
++ .type = V4L2_INPUT_TYPE_FIFO,
++ .audioset = 1,
++ .tuner = 0, /* ignored */
++ .std = 0,
++ .status = 0,
++ },
++ {
++ .index = 1,
++ .name = "Memory input (MSDMA)",
++ .type = V4L2_INPUT_TYPE_MSDMA,
++ .audioset = 2,
++ .tuner = 0,
++ .std = 0,
++ .status = 0,
++ }
++};
++
++/* ------------ Out FIFO and MADMA, v4l2_output supported by S3C TVENC controller ----------------*/
++static struct v4l2_output tvenc_outputs[] = {
++ {
++ .index = 0,
++ .name = "TV-OUT",
++ .type = V4L2_OUTPUT_TYPE_ANALOG,
++ .audioset = 0,
++ .modulator = 0,
++ .std = V4L2_STD_PAL | V4L2_STD_NTSC_M,
++ },
++ {
++ .index = 1,
++ .name = "Memory output (MSDMA)",
++ .type = V4L2_OUTPUT_TYPE_MSDMA,
++ .audioset = 0,
++ .modulator = 0,
++ .std = 0,
++ },
++
++};
++
++const struct v4l2_fmtdesc tvenc_input_formats[] = {
++ {
++ .index = 0,
++ .type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
++ .description = "16 bpp RGB, le",
++ .pixelformat = V4L2_PIX_FMT_RGB565,
++ .flags = FORMAT_FLAGS_PACKED,
++ },
++ {
++ .index = 1,
++ .type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
++ .flags = FORMAT_FLAGS_PACKED,
++ .description = "24 bpp RGB, le",
++ .pixelformat = V4L2_PIX_FMT_RGB24,
++ },
++ {
++ .index = 2,
++ .type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
++ .flags = FORMAT_FLAGS_PLANAR,
++ .description = "4:2:2, planar, Y-Cb-Cr",
++ .pixelformat = V4L2_PIX_FMT_YUV422P,
++
++ },
++ {
++ .index = 3,
++ .type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
++ .flags = FORMAT_FLAGS_PLANAR,
++ .description = "4:2:0, planar, Y-Cb-Cr",
++ .pixelformat = V4L2_PIX_FMT_YUV420,
++ }
++};
++
++
++const struct v4l2_fmtdesc tvenc_output_formats[] = {
++ {
++ .index = 0,
++ .type = V4L2_BUF_TYPE_VIDEO_OUTPUT,
++ .description = "16 bpp RGB, le",
++ .pixelformat = V4L2_PIX_FMT_RGB565,
++ .flags = FORMAT_FLAGS_PACKED,
++ },
++ {
++ .index = 1,
++ .type = V4L2_BUF_TYPE_VIDEO_OUTPUT,
++ .flags = FORMAT_FLAGS_PACKED,
++ .description = "24 bpp RGB, le",
++ .pixelformat = V4L2_PIX_FMT_RGB24,
++ },
++ {
++ .index = 2,
++ .type = V4L2_BUF_TYPE_VIDEO_OUTPUT,
++ .flags = FORMAT_FLAGS_PLANAR,
++ .description = "4:2:2, planar, Y-Cb-Cr",
++ .pixelformat = V4L2_PIX_FMT_YUV422P,
++
++ },
++ {
++ .index = 3,
++ .type = V4L2_BUF_TYPE_VIDEO_OUTPUT,
++ .flags = FORMAT_FLAGS_PLANAR,
++ .description = "4:2:0, planar, Y-Cb-Cr",
++ .pixelformat = V4L2_PIX_FMT_YUV420,
++ }
++};
++
++const struct v4l2_standard tvout_standards[] = {
++ {
++ .index = 0,
++ .id = V4L2_STD_NTSC_M,
++ .name = "NTSC type",
++ },
++ {
++ .index = 1,
++ .id = V4L2_STD_PAL,
++ .name = "PAL type",
++ }
++};
++
++#define NUMBER_OF_INPUT_FORMATS ARRAY_SIZE(tvenc_input_formats)
++#define NUMBER_OF_OUTPUT_FORMATS ARRAY_SIZE(tvenc_output_formats)
++#define NUMBER_OF_INPUTS ARRAY_SIZE(tvenc_inputs)
++#define NUMBER_OF_OUTPUTS ARRAY_SIZE(tvenc_outputs)
++#define NUMBER_OF_STANDARDS ARRAY_SIZE(tvout_standards)
++
++static int s3c_tvenc_g_fmt(struct v4l2_format *f)
++{
++ int size = sizeof(struct v4l2_pix_format);
++
++ memset(&f->fmt.pix, 0, size);
++ memcpy(&f->fmt.pix, &tv_param.v2.pixfmt, size);
++
++ return 0;
++}
++
++static int s3c_tvenc_s_fmt(struct v4l2_format *f)
++{
++ /* update our state informations */
++ tv_param.v2.pixfmt= f->fmt.pix;
++
++ // peter LCD output related operation
++ if (tv_param.v2.pixfmt.pixelformat == V4L2_PIX_FMT_RGB565 ) {
++
++ tv_param.sp.SrcFullWidth = tv_param.v2.pixfmt.width;
++ tv_param.sp.SrcFullHeight = tv_param.v2.pixfmt.height;
++ tv_param.sp.SrcStartX = 0;
++ tv_param.sp.SrcStartY = 0;
++ tv_param.sp.SrcWidth = tv_param.sp.SrcFullWidth;
++ tv_param.sp.SrcHeight = tv_param.sp.SrcFullHeight;
++
++ printk("TV-OUT: LCD path operation set\n");
++
++ // peter for padded data of mfc output
++ } else if (tv_param.v2.pixfmt.pixelformat == V4L2_PIX_FMT_YUV420) {
++
++#ifdef DIVX_TEST // padded output
++ tv_param.sp.SrcFullWidth = tv_param.v2.pixfmt.width + 2*16;
++ tv_param.sp.SrcFullHeight = tv_param.v2.pixfmt.height + 2*16;
++ tv_param.sp.SrcStartX = 16;
++ tv_param.sp.SrcStartY = 16;
++ tv_param.sp.SrcWidth = tv_param.sp.SrcFullWidth - 2*tv_param.sp.SrcStartX;
++ tv_param.sp.SrcHeight = tv_param.sp.SrcFullHeight - 2*tv_param.sp.SrcStartY;
++#else // not padded output
++ tv_param.sp.SrcFullWidth = tv_param.v2.pixfmt.width;
++ tv_param.sp.SrcFullHeight = tv_param.v2.pixfmt.height;
++ tv_param.sp.SrcStartX = 0;
++ tv_param.sp.SrcStartY = 0;
++ tv_param.sp.SrcWidth = tv_param.sp.SrcFullWidth;
++ tv_param.sp.SrcHeight = tv_param.sp.SrcFullHeight;
++#endif
++
++ printk("TV-OUT: MFC path operation set\n");
++
++ }
++
++ switch(tv_param.v2.pixfmt.pixelformat) {
++ case V4L2_PIX_FMT_RGB565:
++ tv_param.sp.SrcCSpace = RGB16;
++ break;
++ case V4L2_PIX_FMT_RGB24:
++ tv_param.sp.SrcCSpace = RGB24;
++ break;
++ case V4L2_PIX_FMT_YUV420:
++ tv_param.sp.SrcCSpace = YC420;
++ break;
++ case V4L2_PIX_FMT_YUV422P:
++ tv_param.sp.SrcCSpace = YC422;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++// camif_convert_into_camif_cfg_t(cfg, 1);
++ return 0;
++}
++
++static int s3c_tvenc_s_input(int index)
++{
++
++ tv_param.v2.input = &tvenc_inputs[index];
++ switch(tv_param.v2.input->type) {
++ case V4L2_INPUT_TYPE_FIFO: // LCD FIFO-OUT
++ tv_param.sp.InPath = POST_FIFO;
++ break;
++ case V4L2_INPUT_TYPE_MSDMA: // MSDMA
++ tv_param.sp.InPath = POST_DMA;
++ break;
++ default:
++ return -EINVAL;
++ }
++ return 0;
++}
++
++static int s3c_tvenc_s_output(int index)
++{
++ tv_param.v2.output = &tvenc_outputs[index];
++ switch(tv_param.v2.output->type) {
++ case V4L2_OUTPUT_TYPE_ANALOG: // TV-OUT (FIFO-OUT)
++ tv_param.sp.OutPath = POST_FIFO;
++ break;
++ case V4L2_OUTPUT_TYPE_MSDMA: // MSDMA
++ tv_param.sp.OutPath = POST_DMA;
++ break;
++ default:
++ return -EINVAL;
++ }
++ return 0;
++}
++
++static int s3c_tvenc_s_std(v4l2_std_id *id)
++{
++// printk("s3c_tvenc_s_std: *id=0x%x",*id);
++ switch(*id) {
++ case V4L2_STD_NTSC_M:
++ tv_param.sig_type = NTSC_M;
++ tv_param.sp.DstFullWidth = 720;
++ tv_param.sp.DstFullHeight = 480;
++ break;
++ case V4L2_STD_PAL:
++ tv_param.sig_type = PAL_M;
++ tv_param.sp.DstFullWidth = 720;
++ tv_param.sp.DstFullHeight = 576;
++ break;
++ default:
++ return -EINVAL;
++ }
++ return 0;
++}
++
++static int s3c_tvenc_v4l2_control(struct v4l2_control *ctrl)
++{
++ switch(ctrl->id) {
++
++ // peter added for MFC related op.
++ case V4L2_CID_MPEG_STREAM_PID_VIDEO:
++ {
++ tv_param.sp.SrcFrmSt = ctrl->value;
++ return 0;
++ }
++
++ case V4L2_CID_CONNECT_TYPE:
++ {
++ if(ctrl->value == 0) { // COMPOSITE
++ tv_param.connect = COMPOSITE;
++ } else if(ctrl->value == 1) { //S-VIDEO
++ tv_param.connect = S_VIDEO;
++ } else {
++ return -EINVAL;
++ }
++ return 0;
++ }
++
++ case V4L2_CID_BRIGHTNESS:
++ {
++ s32 val = ctrl->value;
++ if((val > 0xff)||(val < 0))
++ return -EINVAL;
++ else
++ s3c_tvenc_set_bright(val);
++
++ return 0;
++ }
++
++ case V4L2_CID_CONTRAST:
++ {
++ s32 val = ctrl->value;
++ if((val > 0xff)||(val < 0))
++ return -EINVAL;
++ else
++ s3c_tvenc_set_contrast(val);
++
++ return 0;
++ }
++
++ case V4L2_CID_GAMMA:
++ {
++ s32 val = ctrl->value;
++ if((val > 0x3)||(val < 0)) {
++ return -EINVAL;
++ } else {
++ s3c_tvenc_enable_gamma_control(ON);
++ s3c_tvenc_set_gamma_gain(val);
++ s3c_tvenc_enable_gamma_control(OFF);
++ }
++ return 0;
++ }
++
++ case V4L2_CID_HUE:
++ {
++ s32 val = ctrl->value;
++ if((val > 0xff)||(val < 0))
++ return -EINVAL;
++ else
++ s3c_tvenc_set_hue_phase(val);
++
++ return 0;
++ }
++
++ case V4L2_CID_HCENTER:
++ {
++ s32 val = ctrl->value;
++ u32 curr_horz, curr_vert;
++
++ if((val > 0xff)||(val < 0)) {
++ return -EINVAL;
++ } else {
++ s3c_tvenc_get_active_win_center(&curr_vert, &curr_horz);
++ s3c_tvenc_set_active_win_center(curr_vert, val);
++ }
++
++ return 0;
++ }
++
++ case V4L2_CID_VCENTER:
++ {
++ s32 val = ctrl->value;
++ u32 curr_horz, curr_vert;
++
++ if((val > 0x3f)||(val < 0)) {
++ return -EINVAL;
++ } else {
++ s3c_tvenc_get_active_win_center(&curr_vert, &curr_horz);
++ s3c_tvenc_set_active_win_center(val, curr_horz);
++ }
++
++ return 0;
++ }
++
++ default:
++ return -EINVAL;
++ }
++ return 0;
++}
++
++int s3c_tvenc_open(struct inode *inode, struct file *filp)
++{
++ int err;
++
++ err = video_exclusive_open(inode, filp); // One function of V4l2 driver
++
++ if(err < 0)
++ return err;
++ filp->private_data = &tv_param;
++
++ s3c_tvscaler_init();
++
++ /* Success */
++ return 0;
++}
++
++int s3c_tvenc_release(struct inode *inode, struct file *filp)
++{
++ video_exclusive_release(inode, filp);
++
++ /* Success */
++ return 0;
++}
++
++static int s3c_tvenc_do_ioctl(struct inode *inode,struct file *filp,unsigned int cmd,void *arg)
++{
++ int ret;
++
++ switch(cmd){
++ case VIDIOC_QUERYCAP:
++ {
++ struct v4l2_capability *cap = arg;
++ strcpy(cap->driver, "S3C TV-OUT driver");
++ strlcpy(cap->card, tv_param.v->name, sizeof(cap->card));
++ sprintf(cap->bus_info, "ARM AHB BUS");
++ cap->version = 0;
++ cap->capabilities = tv_param.v->type2;
++ return 0;
++ }
++
++ case VIDIOC_OVERLAY:
++ {
++ int on = *(int *)arg;
++
++ printk("TV-OUT: VIDIOC_OVERLAY on:%d\n", on);
++ if (on != 0) {
++ ret = tvout_start();
++ } else {
++ ret = tvout_stop();
++ }
++ return ret;
++ }
++
++ case VIDIOC_ENUMINPUT:
++ {
++ struct v4l2_input *i = arg;
++ printk("TV-OUT: VIDIOC_ENUMINPUT : index = %d\n", i->index);
++
++ if ((i->index) >= NUMBER_OF_INPUTS) {
++ return -EINVAL;
++ }
++ memcpy(i, &tvenc_inputs[i->index], sizeof(struct v4l2_input));
++ return 0;
++ }
++
++ case VIDIOC_S_INPUT: // 0 -> LCD FIFO-OUT, 1 -> MSDMA
++ {
++ int index = *((int *)arg);
++ printk("TV-OUT: VIDIOC_S_INPUT \n");
++
++ if (index >= NUMBER_OF_INPUTS) {
++ return -EINVAL;
++ }
++ else {
++ s3c_tvenc_s_input(index);
++ return 0;
++ }
++ }
++
++ case VIDIOC_G_INPUT:
++ {
++ u32 *i = arg;
++ printk("TV-OUT: VIDIOC_G_INPUT \n");
++ *i = tv_param.v2.input->type;
++ return 0;
++ }
++
++ case VIDIOC_ENUMOUTPUT:
++ {
++ struct v4l2_output *i = arg;
++ printk("TV-OUT: VIDIOC_ENUMOUTPUT : index = %d\n", i->index);
++
++ if ((i->index) >= NUMBER_OF_OUTPUTS) {
++ return -EINVAL;
++ }
++ memcpy(i, &tvenc_outputs[i->index], sizeof(struct v4l2_output));
++ return 0;
++ }
++
++ case VIDIOC_S_OUTPUT: // 0 -> TV / FIFO , 1 -> MSDMA
++ {
++ int index = *((int *)arg);
++ printk("TV-OUT: VIDIOC_S_OUTPUT \n");
++
++ if (index >= NUMBER_OF_OUTPUTS) {
++ return -EINVAL;
++ }
++ else {
++ s3c_tvenc_s_output(index);
++ return 0;
++ }
++ }
++
++ case VIDIOC_G_OUTPUT:
++ {
++ u32 *i = arg;
++ printk("VIDIOC_G_OUTPUT \n");
++ *i = tv_param.v2.output->type;
++ return 0;
++ }
++
++ case VIDIOC_ENUM_FMT:
++ { struct v4l2_fmtdesc *f = arg;
++ enum v4l2_buf_type type = f->type;
++ int index = f->index;
++
++ printk("C: VIDIOC_ENUM_FMT : index = %d\n", index);
++ if (index >= NUMBER_OF_INPUT_FORMATS)
++ return -EINVAL;
++
++ switch (type) {
++ case V4L2_BUF_TYPE_VIDEO_CAPTURE:
++ break;
++ case V4L2_BUF_TYPE_VIDEO_OUTPUT:
++ default:
++ return -EINVAL;
++ }
++ memset(f, 0, sizeof(*f));
++ memcpy(f, tv_param.v2.fmtdesc+index, sizeof(*f));
++ return 0;
++ }
++
++ case VIDIOC_G_FMT:
++ {
++ struct v4l2_format *f = arg;
++ printk("C: VIDIOC_G_FMT \n");
++ ret = s3c_tvenc_g_fmt(f);
++ return ret;
++ }
++
++ case VIDIOC_S_FMT:
++ {
++ struct v4l2_format *f = arg;
++ printk("C: VIDIOC_S_FMT \n");
++ ret = s3c_tvenc_s_fmt(f);
++ if(ret != 0) {
++ printk("s3c_tvenc_set_fmt() failed !\n");
++ return -EINVAL;
++ }
++ return ret;
++ }
++
++ case VIDIOC_S_CTRL:
++ {
++ struct v4l2_control *ctrl = arg;
++ //printk("P: VIDIOC_S_CTRL \n");
++ ret = s3c_tvenc_v4l2_control(ctrl);
++ return ret;
++ }
++
++ case VIDIOC_ENUMSTD:
++ {
++ struct v4l2_standard *e = arg;
++ unsigned int index = e->index;
++
++ if (index >= NUMBER_OF_STANDARDS)
++ return -EINVAL;
++ v4l2_video_std_construct(e, tvout_standards[e->index].id,
++ &tvout_standards[e->index].name);
++ e->index = index;
++ return 0;
++ }
++
++ case VIDIOC_G_STD:
++ {
++ v4l2_std_id *id = arg;
++ *id = tvout_standards[0].id;
++ return 0;
++ }
++
++ case VIDIOC_S_STD:
++ {
++ v4l2_std_id *id = arg;
++ unsigned int i;
++
++ for (i = 0; i < NUMBER_OF_STANDARDS; i++) {
++ //printk("P: *id = %d, tvout_standards[i].id = %d\n", *id, tvout_standards[i].id);
++ if (*id & tvout_standards[i].id)
++ break;
++ }
++ if (i == NUMBER_OF_STANDARDS)
++ return -EINVAL;
++
++ ret = s3c_tvenc_s_std(id);
++ return ret;
++ }
++
++ case VIDIOC_S_TVOUT_ON:
++ {
++ //int *SrcFrmSt = arg;
++ //printk("---peter VIDIOC_S_TVOUT_ON : SrcFrmSt = 0x%08x\n", *SrcFrmSt);
++ ret = tvout_start();
++ return ret;
++ }
++
++ case VIDIOC_S_TVOUT_OFF:
++ {
++ ret = tvout_stop();
++ return ret;
++ }
++
++ case VIDIOC_S_SCALER_TEST:
++ {
++ ret = scaler_test_start();
++ mdelay(1);
++ ret = scaler_test_stop();
++ return ret;
++ }
++
++ default:
++ return -EINVAL;
++ }
++ return 0;
++}
++
++static int s3c_tvenc_ioctl_v4l2(struct inode *inode, struct file *filp, unsigned int cmd,
++ unsigned long arg)
++{
++ return video_usercopy(inode, filp, cmd, arg, s3c_tvenc_do_ioctl);
++}
++
++int s3c_tvenc_read(struct file *filp, char *buf, size_t count,
++ loff_t *f_pos)
++{
++ return 0;
++}
++
++int s3c_tvenc_write(struct file *filp, const char *buf, size_t
++ count, loff_t *f_pos)
++{
++ return 0;
++}
++
++int s3c_tvenc_mmap(struct file *filp, struct vm_area_struct *vma)
++{
++ u32 size = vma->vm_end - vma->vm_start;
++ u32 max_size;
++ u32 page_frame_no;
++
++ page_frame_no = __phys_to_pfn(POST_BUFF_BASE_ADDR);
++
++ max_size = RESERVE_POST_MEM + PAGE_SIZE - (RESERVE_POST_MEM % PAGE_SIZE);
++
++ if(size > max_size) {
++ return -EINVAL;
++ }
++
++ vma->vm_flags |= VM_RESERVED;
++
++ if( remap_pfn_range(vma, vma->vm_start, page_frame_no,
++ size, vma->vm_page_prot)) {
++ printk(KERN_ERR "%s: mmap_error\n", __FUNCTION__);
++ return -EAGAIN;
++
++ }
++
++ return 0;
++}
++
++struct file_operations s3c_tvenc_fops = {
++ .owner = THIS_MODULE,
++ .open = s3c_tvenc_open,
++ .ioctl = s3c_tvenc_ioctl_v4l2,
++ .release = s3c_tvenc_release,
++ .read = s3c_tvenc_read,
++ .write = s3c_tvenc_write,
++ .mmap = s3c_tvenc_mmap,
++};
++
++void s3c_tvenc_vdev_release (struct video_device *vdev) {
++ kfree(vdev);
++}
++
++struct video_device tvencoder = {
++ .name = "TVENCODER",
++ .type = VID_TYPE_OVERLAY | VID_TYPE_CAPTURE | VID_TYPE_SCALES,
++ .type2 = V4L2_CAP_VIDEO_OUTPUT| V4L2_CAP_VIDEO_CAPTURE, /* V4L2 */
++ //.hardware = 0x01, // peter for 2.6.24 kernel
++ .fops = &s3c_tvenc_fops,
++ .release = s3c_tvenc_vdev_release,
++ .minor = TVENC_MINOR,
++};
++
++irqreturn_t s3c_tvenc_isr(int irq, void *dev_id,
++ struct pt_regs *regs)
++{
++ u32 mode;
++
++ mode = __raw_readl(base + S3C_TVCTRL);
++
++ // Clear FIFO under-run status pending bit
++ mode |= (1<<12);
++
++ __raw_writel(mode, base + S3C_TVCTRL);
++
++ wake_up_interruptible(&waitq);
++ return IRQ_HANDLED;
++}
++
++static int s3c_tvenc_probe(struct platform_device *pdev)
++{
++
++ struct resource *res;
++
++ int ret;
++
++ /* find the IRQs */
++ s3c_tvenc_irq = platform_get_irq(pdev, 0);
++ if(s3c_tvenc_irq <= 0) {
++ printk(KERN_ERR PFX "failed to get irq resouce\n");
++ return -ENOENT;
++ }
++
++ /* get the memory region for the tv scaler driver */
++
++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ if(res == NULL) {
++ printk(KERN_ERR PFX "failed to get memory region resouce\n");
++ return -ENOENT;
++ }
++
++ s3c_tvenc_mem = request_mem_region(res->start, res->end-res->start+1, pdev->name);
++ if(s3c_tvenc_mem == NULL) {
++ printk(KERN_ERR PFX "failed to reserve memory region\n");
++ return -ENOENT;
++ }
++
++
++ base = ioremap(s3c_tvenc_mem->start, s3c_tvenc_mem->end - res->start + 1);
++ if(s3c_tvenc_mem == NULL) {
++ printk(KERN_ERR PFX "failed ioremap\n");
++ return -ENOENT;
++ }
++
++ tvenc_clock = clk_get(&pdev->dev, "tv_encoder");
++ if(tvenc_clock == NULL) {
++ printk(KERN_ERR PFX "failed to find tvenc clock source\n");
++ return -ENOENT;
++ }
++
++ clk_enable(tvenc_clock);
++
++ h_clk = clk_get(&pdev->dev, "hclk");
++ if(h_clk == NULL) {
++ printk(KERN_ERR PFX "failed to find h_clk clock source\n");
++ return -ENOENT;
++ }
++
++ init_waitqueue_head(&waitq);
++
++ tv_param.v = video_device_alloc();
++ if(!tv_param.v) {
++ printk(KERN_ERR "s3c-tvenc: video_device_alloc() failed\n");
++ return -ENOMEM;
++ }
++ memcpy(tv_param.v, &tvencoder, sizeof(tvencoder));
++ if(video_register_device(tv_param.v, VFL_TYPE_GRABBER, TVENC_MINOR) != 0) {
++ printk("s3c_camera_driver.c : Couldn't register this codec driver.\n");
++ return 0;
++ }
++
++ ret = request_irq(s3c_tvenc_irq, s3c_tvenc_isr, SA_INTERRUPT,
++ "TV_ENCODER", NULL);
++ if (ret) {
++ printk("request_irq(TV_ENCODER) failed.\n");
++ return ret;
++ }
++
++ printk(" Success\n");
++ return 0;
++}
++
++static int s3c_tvenc_remove(struct platform_device *dev)
++{
++ printk(KERN_INFO "s3c_tvenc_remove called !\n");
++ clk_disable(tvenc_clock);
++ free_irq(s3c_tvenc_irq, NULL);
++ if (s3c_tvenc_mem != NULL) {
++ pr_debug("s3-tvenc: releasing s3c_tvenc_mem\n");
++ iounmap(base);
++ release_resource(s3c_tvenc_mem);
++ kfree(s3c_tvenc_mem);
++ }
++// video_unregister_device(tv_param.v);
++ return 0;
++}
++
++static int s3c_tvenc_suspend(struct platform_device *dev, pm_message_t state)
++{
++ clk_disable(tvenc_clock);
++ return 0;
++}
++
++static int s3c_tvenc_resume(struct platform_device *pdev)
++{
++ clk_enable(tvenc_clock);
++ return 0;
++}
++
++static struct platform_driver s3c_tvenc_driver = {
++ .probe = s3c_tvenc_probe,
++ .remove = s3c_tvenc_remove,
++ .suspend = s3c_tvenc_suspend,
++ .resume = s3c_tvenc_resume,
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "s3c-tvenc",
++ },
++};
++
++static char banner[] __initdata = KERN_INFO "S3C6410 TV encoder Driver, (c) 2008 Samsung Electronics\n";
++
++static int __init s3c_tvenc_init(void)
++{
++
++ printk(banner);
++
++ if(platform_driver_register(&s3c_tvenc_driver) != 0)
++ {
++ printk("Platform Device Register Failed \n");
++ return -1;
++ }
++
++ printk(" S3C6410 TV encoder Driver module init OK. \n");
++ return 0;
++}
++
++static void __exit s3c_tvenc_exit(void)
++{
++
++ video_unregister_device(tv_param.v);
++ platform_driver_unregister(&s3c_tvenc_driver);
++
++ printk("S3C6410 TV encoder Driver module exit. \n");
++}
++
++
++module_init(s3c_tvenc_init);
++module_exit(s3c_tvenc_exit);
++
++
++MODULE_AUTHOR("Peter, Oh");
++MODULE_DESCRIPTION("S3C TV Encoder Device Driver");
++MODULE_LICENSE("GPL");
+diff --git a/drivers/media/video/samsung/s3c-tvenc.h b/drivers/media/video/samsung/s3c-tvenc.h
+new file mode 100644
+index 0000000..30a66a2
+--- /dev/null
++++ b/drivers/media/video/samsung/s3c-tvenc.h
+@@ -0,0 +1,165 @@
++#ifndef __S3CTVENC_H_
++#define __S3CTVENC_H_
++
++#include "s3c-tvscaler.h"
++
++
++#define TVENC_IOCTL_MAGIC 'T'
++
++typedef struct {
++
++} s3c_tvenc_info;
++
++#define TV_ON _IO(TVENC_IOCTL_MAGIC, 0)
++#define TV_OFF _IO(TVENC_IOCTL_MAGIC, 1)
++#define SELECT_TV_OUT_FORMAT _IO(TVENC_IOCTL_MAGIC, 2)
++
++#define TVENC_IOCTL_MAXNR 6
++
++#define TVENC_MINOR 14 // Just some number
++
++typedef enum {
++ OFF,
++ ON
++} tv_enc_switch_t;
++
++typedef enum {
++ NTSC_M,
++ PAL_M,
++ PAL_BGHID,
++ PAL_N,
++ PAL_NC,
++ PAL_60,
++ NTSC_443,
++ NTSC_J
++} tv_standard_t;
++
++typedef enum {
++ QCIF, CIF/*352x288*/,
++ QQVGA, QVGA, VGA, SVGA/*800x600*/, SXGA/*1280x1024*/, UXGA/*1600x1200*/, QXGA/*2048x1536*/,
++ WVGA/*854x480*/, HD720/*1280x720*/, HD1080/*1920x1080*/
++} img_size_t;
++
++typedef enum {
++ BLACKSTRETCH, WHITESTRETCH, BLUESTRETCH
++} stretch_color_t;
++
++typedef enum {
++ COMPOSITE, S_VIDEO
++} tv_conn_type_t;
++
++typedef enum {
++ BLACK, BLUE, RED, MAGENTA, GREEN, CYAN, YELLOW, WHITE
++} bg_color_t;
++
++typedef enum {
++ MUTE_Y, MUTE_CB, MUTE_CR
++} mute_type_t;
++
++typedef enum {
++ AGC4L, AGC2L, N01, N02, P01, P02
++} macro_pattern_t;
++
++typedef enum {
++ LCD_RGB, LCD_TV, LCD_I80F, LCD_I80S,
++ LCD_TVRGB, LCD_TVI80F, LCD_TVI80S
++} lcd_local_output_t;
++
++/* when App want to change v4l2 parameter,
++ * we instantly store it into v4l2_t v2
++ * and then reflect it to hardware
++ */
++typedef struct v4l2 {
++ struct v4l2_fmtdesc *fmtdesc;
++// struct v4l2_framebuffer frmbuf; /* current frame buffer */
++ struct v4l2_pix_format pixfmt;
++ struct v4l2_input *input;
++ struct v4l2_output *output;
++// enum v4l2_status status;
++} v4l2_t;
++
++
++typedef struct {
++ tv_standard_t sig_type;
++ tv_conn_type_t connect;
++ /* Width of input image. The input value is twice original output image
++ * width. For example, you must set 1440 when the image width is 720.
++ * Max value is 1440
++ */
++ unsigned int in_width;
++ /* Height of input image
++ * Max value is 576
++ */
++ unsigned int in_height;
++
++ // Setting value of VIDOUT[28:26] in Display
++ // controller(VIDCON0)
++ lcd_local_output_t lcd_output_mode;
++ // Set CLKVAL_F[13:6] of VIDCON0 with
++ // this value
++ unsigned int lcd_clkval_f;
++
++ // Flag of lcd rgb port
++ // 0 : disable, 1 : enable
++ unsigned int lcd_rgb_port_flag;
++
++ scaler_params_t sp;
++
++ struct video_device *v;
++ v4l2_t v2;
++
++} tv_out_params_t;
++
++#define V4L2_INPUT_TYPE_MSDMA 3
++#define V4L2_INPUT_TYPE_FIFO 4
++#define V4L2_OUTPUT_TYPE_MSDMA 4
++
++#define FORMAT_FLAGS_DITHER 0x01
++#define FORMAT_FLAGS_PACKED 0x02
++#define FORMAT_FLAGS_PLANAR 0x04
++#define FORMAT_FLAGS_RAW 0x08
++#define FORMAT_FLAGS_CrCb 0x10
++
++/****************************************************************
++* struct v4l2_control
++* Control IDs defined by S3C
++*****************************************************************/
++
++/* TV-OUT connector type */
++#define V4L2_CID_CONNECT_TYPE (V4L2_CID_PRIVATE_BASE+0)
++
++/****************************************************************
++* I O C T L C O D E S F O R V I D E O D E V I C E S
++* It's only for S3C
++*****************************************************************/
++#define VIDIOC_S_TVOUT_ON _IO ('V', BASE_VIDIOC_PRIVATE+0)
++#define VIDIOC_S_TVOUT_OFF _IO ('V', BASE_VIDIOC_PRIVATE+1)
++#define VIDIOC_S_SCALER_TEST _IO ('V', BASE_VIDIOC_PRIVATE+3)
++
++
++extern void s3c_tvscaler_config(scaler_params_t * sp);
++extern void s3c_tvscaler_int_enable(unsigned int int_type);
++extern void s3c_tvscaler_int_disable(void);
++extern void s3c_tvscaler_start(void);
++extern void s3c_tvscaler_stop_freerun(void);
++extern void s3c_tvscaler_init(void);
++extern void s3c_tvscaler_set_interlace(unsigned int on_off);
++extern int video_exclusive_release(struct inode * inode, struct file * file);
++extern int video_exclusive_open(struct inode * inode, struct file * file);
++
++#if 0 // peter for 2.6.21 kernel
++extern void s3c_fb_start_lcd(void);
++extern void s3c_fb_stop_lcd(void);
++extern void s3c_fb_set_output_path(int out);
++extern void s3c_fb_set_clkval(unsigned int clkval);
++extern void s3c_fb_enable_rgbport(unsigned int on_off);
++#else // peter for 2.6.24 kernel
++extern void s3cfb_start_lcd(void);
++extern void s3cfb_stop_lcd(void);
++extern void s3cfb_set_output_path(int out);
++extern void s3cfb_set_clock(unsigned int clkval);
++extern void s3cfb_enable_rgbport(unsigned int on_off);
++#endif
++
++
++#endif // __S3CTVENC_H_
+diff --git a/drivers/media/video/samsung/s3c-tvscaler.c b/drivers/media/video/samsung/s3c-tvscaler.c
+new file mode 100644
+index 0000000..376c866
+--- /dev/null
++++ b/drivers/media/video/samsung/s3c-tvscaler.c
+@@ -0,0 +1,802 @@
++
++/*
++ * linux/drivers/tvenc/s3c-tvscaler.c
++ *
++ * Revision 1.0
++ *
++ *
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file COPYING in the main directory of this archive for
++ * more details.
++ *
++ * S3C TV Scaler driver
++ *
++ */
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/types.h>
++#include <linux/timer.h>
++#include <linux/kernel.h>
++#include <linux/fs.h>
++#include <linux/platform_device.h>
++#include <linux/interrupt.h>
++#include <linux/clk.h>
++#include <linux/delay.h>
++#include <asm/uaccess.h>
++#include <linux/errno.h> /* error codes */
++#include <asm/div64.h>
++#include <linux/mm.h>
++#include <linux/tty.h>
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/hardware.h>
++#include <asm/uaccess.h>
++#include <asm/arch/map.h>
++#include <linux/miscdevice.h>
++
++#include <linux/version.h>
++#if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,16)
++#include <linux/config.h>
++#include <asm/arch/registers.h>
++#else
++#include <asm/arch/regs-tvscaler.h>
++#include <asm/arch/regs-s3c6400-clock.h>
++#endif
++
++#include "s3c-tvscaler.h"
++
++#define PFX "s3c_tv_scaler"
++
++#define SINGLE_BUF 1 // Single buffer mode
++
++
++static struct clk *h_clk;
++static struct clk *tvscaler_clock;
++static void __iomem *base;
++static int s3c_tvscaler_irq = NO_IRQ;
++static struct resource *s3c_tvscaler_mem;
++
++
++//static unsigned char *addr_start_y;
++//static unsigned char *addr_start_rgb;
++
++static wait_queue_head_t waitq;
++
++irqreturn_t s3c_tvscaler_isr(int irq, void *dev_id,
++ struct pt_regs *regs)
++{
++ u32 mode;
++ mode = __raw_readl(base + S3C_MODE);
++ mode &= ~(1 << 6); /* Clear Source in POST Processor */
++ __raw_writel(mode, base + S3C_MODE);
++
++// wake_up_interruptible(&waitq);
++ return IRQ_HANDLED;
++}
++
++#if 0
++static buff_addr_t buf_addr = { NULL };
++
++
++static u32 post_alloc_pre_buff(scaler_params_t *sp)
++{
++ u32 size;
++
++#ifdef USE_DEDICATED_MEM
++
++ buf_addr.pre_phy_addr = PHYS_OFFSET + (SYSTEM_RAM - RESERVE_POST_MEM);
++ buf_addr.pre_virt_addr = ioremap_nocache(buf_addr.pre_phy_addr, PRE_BUFF_SIZE);
++ if( !buf_addr.pre_virt_addr ) {
++ printk(KERN_ERR "%s: Failed to allocate pre buffer \n",__FUNCTION__);
++ return -ENOMEM;
++ }
++
++ sp->SrcFrmSt = buf_addr.pre_phy_addr;
++#else
++ size = sp->SrcWidth * sp->SrcHeight * 2;
++ addr_start_y = kmalloc(size, GFP_DMA);
++ if(addr_start_y != NULL) return -ENOMEM;
++#endif
++ return 0;
++}
++
++static u32 post_alloc_post_buff(scaler_params_t *sp)
++{
++ u32 size;
++
++#ifdef USE_DEDICATED_MEM
++
++ buf_addr.post_phy_addr = PHYS_OFFSET + (SYSTEM_RAM - RESERVE_POST_MEM + PRE_BUFF_SIZE);
++ buf_addr.post_virt_addr = ioremap_nocache(buf_addr.post_phy_addr, POST_BUFF_SIZE);
++ if( !buf_addr.post_virt_addr ) {
++ printk(KERN_ERR "%s: Failed to allocate post buffer \n",__FUNCTION__);
++ return -ENOMEM;
++ }
++
++ sp->DstFrmSt = buf_addr.post_phy_addr;
++#else
++ size = sp->DstWidth * sp->DstHeight * 2;
++ addr_start_rgb = kmalloc(size, GFP_DMA);
++ if(addr_start_rgb != NULL) return -ENOMEM;
++#endif
++ return 0;
++}
++
++static u32 post_free_all_buffer(void)
++{
++#ifdef USE_DEDICATED_MEM
++ if( buf_addr.pre_virt_addr ) {
++ iounmap(buf_addr.pre_virt_addr);
++ }
++ if( buf_addr.post_virt_addr ) {
++ iounmap(buf_addr.post_virt_addr);
++ }
++#endif
++ return 0;
++}
++#endif
++
++static void s3c_tvscaler_set_clk_src(scaler_clk_src_t clk_src)
++{
++ u32 tmp, rate;
++
++ tmp = __raw_readl(base + S3C_MODE);
++
++ h_clk = clk_get(NULL, "hclk");
++
++ rate = clk_get_rate(h_clk);
++
++ if(clk_src == HCLK) {
++ if(rate > 66000000) {
++ tmp &= ~(0x7f<<23);
++ tmp |= (1<<24);
++ tmp |= (1<<23);
++ } else {
++ tmp &=~ (0x7f<<23);
++ }
++
++ } else if(clk_src == PLL_EXT) {
++ } else {
++ tmp &=~(0x7f<<23);
++ }
++
++ tmp = (tmp &~ (0x3<<21)) | (clk_src<<21);
++
++ __raw_writel(tmp, base + S3C_MODE);
++}
++
++static void s3c_tvscaler_set_fmt(cspace_t src, cspace_t dst, s3c_scaler_path_t in,
++ s3c_scaler_path_t out, u32 *in_pixel_size,
++ u32 *out_pixel_size)
++{
++ u32 tmp;
++
++ tmp = __raw_readl(base + S3C_MODE);
++ tmp |= (0x1<<16);
++ tmp |= (0x2<<10);
++
++ if(in == POST_DMA) {
++
++ switch(src) {
++ case YC420:
++ tmp &=~((0x1<<3)|(0x1<<2));
++ tmp |= (0x1<<8)|(0x1<<1);
++ *in_pixel_size = 1;
++ break;
++ case CRYCBY:
++ tmp &= ~((0x1<<15)|(0x1<<8)|(0x1<<3)|(0x1<<0));
++ tmp |= (0x1<<2)|(0x1<<1);
++ *in_pixel_size = 2;
++ break;
++ case CBYCRY:
++ tmp &= ~((0x1<<8)|(0x1<<3)|(0x1<<0));
++ tmp |= (0x1<<15)|(0x1<<2)|(0x1<<1);
++ *in_pixel_size = 2;
++ break;
++ case YCRYCB:
++ tmp &= ~((0x1<<15)|(0x1<<8)|(0x1<<3));
++ tmp |= (0x1<<2)|(0x1<<1)|(0x1<<0);
++ *in_pixel_size = 2;
++ break;
++ case YCBYCR:
++ tmp &= ~((0x1<<8)|(0x1<<3));
++ tmp |= (0x1<<15)|(0x1<<2)|(0x1<<1)|(0x1<<0);
++ *in_pixel_size = 2;
++ break;
++ case RGB24:
++ tmp &= ~(0x1<<8);
++ tmp |= (0x1<<3)|(0x1<<2)|(0x1<<1);
++ *in_pixel_size = 4;
++ break;
++ case RGB16:
++ tmp &= ~((0x1<<8)|(0x1<<1));
++ tmp |= (0x1<<3)|(0x1<<2);
++ *in_pixel_size = 2;
++ break;
++ default:
++ break;
++ }
++
++ }
++ else if(in == POST_FIFO) {
++ }
++
++ if(out == POST_DMA) {
++ switch(dst) {
++ case YC420:
++ tmp &= ~(0x1<<18);
++ tmp |= (0x1<<17);
++ *out_pixel_size = 1;
++ break;
++ case CRYCBY:
++ tmp &= ~((0x1<<20)|(0x1<<19)|(0x1<<18)|(0x1<<17));
++ *out_pixel_size = 2;
++ break;
++ case CBYCRY:
++ tmp &= ~((0x1<<19)|(0x1<<18)|(0x1<<17));
++ tmp |= (0x1<<20);
++ *out_pixel_size = 2;
++ break;
++ case YCRYCB:
++ tmp &= ~((0x1<<20)|(0x1<<18)|(0x1<<17));
++ tmp |= (0x1<<19);
++ *out_pixel_size = 2;
++ break;
++ case YCBYCR:
++ tmp &= ~((0x1<<18)|(0x1<<17));
++ tmp |= (0x1<<20)|(0x1<<19);
++ *out_pixel_size = 2;
++ break;
++ case RGB24:
++ tmp |= (0x1<<18)|(0x1<<4);
++ *out_pixel_size = 4;
++ break;
++ case RGB16:
++ tmp &= ~(0x1<<4);
++ tmp |= (0x1<<18);
++ *out_pixel_size = 2;
++ break;
++ default:
++ break;
++ }
++ }
++ else if(out == POST_FIFO) {
++ if(dst == RGB24) {
++ tmp |= (0x1<<18)|(0x1<<13);
++
++ } else if(dst == YCBYCR) {
++ tmp |= (0x1<<13);
++ tmp &= ~(0x1<<18)|(0x1<<17);
++ } else {
++ }
++ }
++
++ __raw_writel(tmp, base + S3C_MODE);
++}
++
++static void s3c_tvscaler_set_path(s3c_scaler_path_t in, s3c_scaler_path_t out)
++{
++ u32 tmp;
++
++ tmp = __raw_readl(base + S3C_MODE);
++
++ tmp &=~(0x1<<12); // 0: progressive mode, 1: interlace mode
++
++ if(in == POST_FIFO) {
++ tmp |= (0x1<<31);
++ } else if(in == POST_DMA) {
++ tmp &=~(0x1<<31);
++ }
++
++ if(out == POST_FIFO) {
++ tmp |= (0x1<<13);
++ } else if(out == POST_DMA) {
++ tmp &=~(0x1<<13);
++ }
++
++ __raw_writel(tmp, base + S3C_MODE);
++}
++
++static void s3c_tvscaler_set_addr(scaler_params_t *sp, u32 in_pixel_size, u32 out_pixel_size)
++{
++ u32 offset_y, offset_cb, offset_cr;
++ u32 src_start_y, src_start_cb, src_start_cr;
++ u32 src_end_y, src_end_cb, src_end_cr;
++ u32 start_pos_y, end_pos_y;
++ u32 start_pos_cb, end_pos_cb;
++ u32 start_pos_cr, end_pos_cr;
++ u32 start_pos_rgb, end_pos_rgb;
++ u32 dst_start_rgb, dst_end_rgb;
++ u32 src_frm_start_addr;
++
++ u32 offset_rgb, out_offset_cb, out_offset_cr;
++ u32 out_start_pos_cb, out_start_pos_cr;
++ u32 out_end_pos_cb, out_end_pos_cr;
++ u32 out_src_start_cb, out_src_start_cr;
++ u32 out_src_end_cb, out_src_end_cr;
++
++ if(sp->InPath == POST_DMA) {
++ offset_y = (sp->SrcFullWidth - sp->SrcWidth) * in_pixel_size;
++ start_pos_y = (sp->SrcFullWidth*sp->SrcStartY+sp->SrcStartX)*in_pixel_size;
++ end_pos_y = sp->SrcWidth*sp->SrcHeight*in_pixel_size + offset_y*(sp->SrcHeight-1);
++ src_frm_start_addr = sp->SrcFrmSt;
++ src_start_y = sp->SrcFrmSt + start_pos_y;
++ src_end_y = src_start_y + end_pos_y;
++
++ __raw_writel(src_start_y, base + S3C_ADDRSTART_Y);
++ __raw_writel(offset_y, base + S3C_OFFSET_Y);
++ __raw_writel(src_end_y, base + S3C_ADDREND_Y);
++
++ if(sp->SrcCSpace == YC420) {
++ offset_cb = offset_cr = ((sp->SrcFullWidth - sp->SrcWidth) / 2) * in_pixel_size;
++ start_pos_cb = sp->SrcFullWidth * sp->SrcFullHeight * 1 \
++ + (sp->SrcFullWidth * sp->SrcStartY / 2 + sp->SrcStartX) /2 * 1;
++
++ end_pos_cb = sp->SrcWidth/2*sp->SrcHeight/2*in_pixel_size \
++ + (sp->SrcHeight/2 -1)*offset_cb;
++ start_pos_cr = sp->SrcFullWidth * sp->SrcFullHeight *1 \
++ + sp->SrcFullWidth*sp->SrcFullHeight/4 *1 \
++ + (sp->SrcFullWidth*sp->SrcStartY/2 + sp->SrcStartX)/2*1;
++ end_pos_cr = sp->SrcWidth/2*sp->SrcHeight/2*in_pixel_size \
++ + (sp->SrcHeight/2-1)*offset_cr;
++
++ src_start_cb = sp->SrcFrmSt + start_pos_cb;
++ src_end_cb = src_start_cb + end_pos_cb;
++
++ src_start_cr = sp->SrcFrmSt + start_pos_cr;
++ src_end_cr = src_start_cr + end_pos_cr;
++
++ __raw_writel(src_start_cb, base + S3C_ADDRSTART_CB);
++ __raw_writel(offset_cr, base + S3C_OFFSET_CB);
++ __raw_writel(src_end_cb, base + S3C_ADDREND_CB);
++ __raw_writel(src_start_cr, base + S3C_ADDRSTART_CR);
++ __raw_writel(offset_cb, base + S3C_OFFSET_CR);
++ __raw_writel(src_end_cr, base + S3C_ADDREND_CR);
++ }
++ }
++ if(sp->OutPath == POST_DMA) {
++ offset_rgb = (sp->DstFullWidth - sp->DstWidth)*out_pixel_size;
++ start_pos_rgb = (sp->DstFullWidth*sp->DstStartY + sp->DstStartX)*out_pixel_size;
++ end_pos_rgb = sp->DstWidth*sp->DstHeight*out_pixel_size + offset_rgb*(sp->DstHeight - 1);
++ dst_start_rgb = sp->DstFrmSt + start_pos_rgb;
++ dst_end_rgb = dst_start_rgb + end_pos_rgb;
++
++ __raw_writel(dst_start_rgb, base + S3C_ADDRSTART_RGB);
++ __raw_writel(offset_rgb, base + S3C_OFFSET_RGB);
++ __raw_writel(dst_end_rgb, base + S3C_ADDREND_RGB);
++
++ if(sp->DstCSpace == YC420) {
++ out_offset_cb = out_offset_cr = ((sp->DstFullWidth - sp->DstWidth)/2)*out_pixel_size;
++ out_start_pos_cb = sp->DstFullWidth*sp->DstFullHeight*1 \
++ + (sp->DstFullWidth*sp->DstStartY/2 + sp->DstStartX)/2*1;
++ out_end_pos_cb = sp->DstWidth/2*sp->DstHeight/2*out_pixel_size \
++ + (sp->DstHeight/2 -1)*out_offset_cr;
++
++ out_start_pos_cr = sp->DstFullWidth*sp->DstFullHeight*1 \
++ + (sp->DstFullWidth*sp->DstFullHeight/4)*1 \
++ + (sp->DstFullWidth*sp->DstStartY/2 +sp->DstStartX)/2*1;
++ out_end_pos_cr = sp->DstWidth/2*sp->DstHeight/2*out_pixel_size \
++ + (sp->DstHeight/2 -1)*out_offset_cb;
++
++ out_src_start_cb = sp->DstFrmSt + out_start_pos_cb;
++ out_src_end_cb = out_src_start_cb + out_end_pos_cb;
++ out_src_start_cr = sp->DstFrmSt + out_start_pos_cr;
++ out_src_end_cr = out_src_start_cr + out_end_pos_cr;
++
++ __raw_writel(out_src_start_cb, base + S3C_ADDRSTART_OCB);
++ __raw_writel(out_offset_cb, base + S3C_OFFSET_OCB);
++ __raw_writel(out_src_end_cb, base + S3C_ADDREND_OCB);
++ __raw_writel(out_src_start_cr, base + S3C_ADDRSTART_OCR);
++ __raw_writel(out_offset_cr, base + S3C_OFFSET_OCR);
++ __raw_writel(out_src_end_cr, base + S3C_ADDREND_OCR);
++
++ }
++ }
++
++
++}
++
++#if 0
++static void s3c_tvscaler_set_fifo_in(s3c_scaler_path_t in_path)
++{
++ u32 tmp;
++
++ tmp = __raw_readl(base + S3C_MODE);
++
++ if(in_path == POST_FIFO) tmp |= (0x1<<31);
++ else tmp &=~(0x1<<31);
++
++ __raw_writel(tmp, base + S3C_MODE);
++
++}
++#endif
++
++void s3c_tvscaler_set_interlace(u32 on_off)
++{
++ u32 tmp;
++
++ tmp = __raw_readl(base + S3C_MODE);
++
++ if(on_off == 1) tmp |=(1<<12);
++ else tmp &=~(1<<12);
++
++ __raw_writel(tmp, base + S3C_MODE);
++}
++EXPORT_SYMBOL(s3c_tvscaler_set_interlace);
++
++static void s3c_tvscaler_set_size(scaler_params_t *sp)
++{
++ u32 pre_h_ratio, pre_v_ratio, h_shift, v_shift, sh_factor;
++ u32 pre_dst_width, pre_dst_height, dx, dy;
++
++ if (sp->SrcWidth >= (sp->DstWidth<<6)) {
++ printk("Out of PreScalar range !!!\n");
++ return;
++ }
++ if(sp->SrcWidth >= (sp->DstWidth<<5)) {
++ pre_h_ratio = 32;
++ h_shift = 5;
++ } else if(sp->SrcWidth >= (sp->DstWidth<<4)) {
++ pre_h_ratio = 16;
++ h_shift = 4;
++ } else if(sp->SrcWidth >= (sp->DstWidth<<3)) {
++ pre_h_ratio = 8;
++ h_shift = 3;
++ } else if(sp->SrcWidth >= (sp->DstWidth<<2)) {
++ pre_h_ratio = 4;
++ h_shift = 2;
++ } else if(sp->SrcWidth >= (sp->DstWidth<<1)) {
++ pre_h_ratio = 2;
++ h_shift = 1;
++ } else {
++ pre_h_ratio = 1;
++ h_shift = 0;
++ }
++
++ pre_dst_width = sp->SrcWidth / pre_h_ratio;
++ dx = (sp->SrcWidth<<8) / (sp->DstWidth<<h_shift);
++
++
++ if (sp->SrcHeight >= (sp->DstHeight<<6)) {
++ printk("Out of PreScalar range !!!\n");
++ return;
++ }
++ if(sp->SrcHeight>= (sp->DstHeight<<5)) {
++ pre_v_ratio = 32;
++ v_shift = 5;
++ } else if(sp->SrcHeight >= (sp->DstHeight<<4)) {
++ pre_v_ratio = 16;
++ v_shift = 4;
++ } else if(sp->SrcHeight >= (sp->DstHeight<<3)) {
++ pre_v_ratio = 8;
++ v_shift = 3;
++ } else if(sp->SrcHeight >= (sp->DstHeight<<2)) {
++ pre_v_ratio = 4;
++ v_shift = 2;
++ } else if(sp->SrcHeight >= (sp->DstHeight<<1)) {
++ pre_v_ratio = 2;
++ v_shift = 1;
++ } else {
++ pre_v_ratio = 1;
++ v_shift = 0;
++ }
++
++ pre_dst_height = sp->SrcHeight / pre_v_ratio;
++ dy = (sp->SrcHeight<<8) / (sp->DstHeight<<v_shift);
++ sh_factor = 10 - (h_shift + v_shift);
++
++ __raw_writel((pre_v_ratio<<7)|(pre_h_ratio<<0), base + S3C_PRESCALE_RATIO);
++ __raw_writel((pre_dst_height<<12)|(pre_dst_width<<0), base + S3C_PRESCALEIMGSIZE);
++ __raw_writel(sh_factor, base + S3C_PRESCALE_SHFACTOR);
++ __raw_writel(dx, base + S3C_MAINSCALE_H_RATIO);
++ __raw_writel(dy, base + S3C_MAINSCALE_V_RATIO);
++ __raw_writel((sp->SrcHeight<<12)|(sp->SrcWidth), base + S3C_SRCIMGSIZE);
++ __raw_writel((sp->DstHeight<<12)|(sp->DstWidth), base + S3C_DSTIMGSIZE);
++
++}
++
++
++static void s3c_tvscaler_set_auto_load(scaler_params_t *sp)
++{
++ u32 tmp;
++
++ tmp = __raw_readl(base + S3C_MODE);
++
++ if(sp->Mode == FREE_RUN) {
++ tmp |= (1<<14);
++ } else if(sp->Mode == ONE_SHOT) {
++ tmp &=~(1<<14);
++ }
++
++ __raw_writel(tmp, base + S3C_MODE);
++
++}
++
++void s3c_tvscaler_set_base_addr(void __iomem * base_addr)
++{
++ base = base_addr;
++}
++EXPORT_SYMBOL(s3c_tvscaler_set_base_addr);
++
++void s3c_tvscaler_free_base_addr(void)
++{
++ base = NULL;
++}
++EXPORT_SYMBOL(s3c_tvscaler_free_base_addr);
++
++void s3c_tvscaler_int_enable(u32 int_type)
++{
++ u32 tmp;
++
++ tmp = __raw_readl(base + S3C_MODE);
++
++ if(int_type == 0) { //Edge triggering
++ tmp &= ~(S3C_MODE_IRQ_LEVEL);
++ } else if(int_type == 1) { //level triggering
++ tmp |= S3C_MODE_IRQ_LEVEL;
++ }
++
++ tmp |= S3C_MODE_POST_INT_ENABLE;
++
++ __raw_writel(tmp, base + S3C_MODE);
++}
++EXPORT_SYMBOL(s3c_tvscaler_int_enable);
++
++void s3c_tvscaler_int_disable(void)
++{
++ u32 tmp;
++
++ tmp = __raw_readl(base + S3C_MODE);
++
++ tmp &=~ (S3C_MODE_POST_INT_ENABLE);
++
++ __raw_writel(tmp, base + S3C_MODE);
++
++}
++EXPORT_SYMBOL(s3c_tvscaler_int_disable);
++
++
++void s3c_tvscaler_start(void)
++{
++ __raw_writel(S3C_POSTENVID_ENABLE, base + S3C_POSTENVID);
++
++}
++EXPORT_SYMBOL(s3c_tvscaler_start);
++
++void s3c_tvscaler_stop_freerun(void)
++{
++ u32 tmp;
++
++ tmp = __raw_readl(base + S3C_MODE);
++
++ tmp &=~(1<<14);
++
++ __raw_writel(tmp, base + S3C_MODE);
++}
++EXPORT_SYMBOL(s3c_tvscaler_stop_freerun);
++
++
++void s3c_tvscaler_config(scaler_params_t *sp)
++{
++ u32 tmp = 0;
++ u32 in_pixel_size = 0;
++ u32 out_pixel_size = 0;
++ u32 loop = 0;
++
++ tmp = __raw_readl(base + S3C_POSTENVID);
++ tmp &= ~S3C_POSTENVID_ENABLE;
++ __raw_writel(tmp, base + S3C_POSTENVID);
++#ifdef SINGLE_BUF
++ tmp = S3C_MODE2_ADDR_CHANGE_DISABLE |S3C_MODE2_CHANGE_AT_FRAME_END |S3C_MODE2_SOFTWARE_TRIGGER;
++#else
++ tmp = S3C_MODE2_ADDR_CHANGE_ENABLE |S3C_MODE2_CHANGE_AT_FRAME_END |S3C_MODE2_SOFTWARE_TRIGGER;
++#endif
++ __raw_writel(tmp, base + S3C_MODE2);
++
++// peter mod. start
++ sp->DstStartX = sp->DstStartY = 0;
++ sp->DstWidth = sp->DstFullWidth;
++ sp->DstHeight = sp->DstFullHeight;
++// peter mod. end
++
++ sp->DstFrmSt = ( POST_BUFF_BASE_ADDR + PRE_BUFF_SIZE );
++ //printk("\n---peter s3c_tvscaler_config : SrcFrmSt = 0x%08x\n", sp->SrcFrmSt);
++ //printk("---peter s3c_tvscaler_config : DstFrmSt = 0x%08x\n", sp->DstFrmSt);
++
++ s3c_tvscaler_set_clk_src(HCLK);
++
++ s3c_tvscaler_set_path(sp->InPath, sp->OutPath);
++
++ s3c_tvscaler_set_fmt(sp->SrcCSpace, sp->DstCSpace, sp->InPath,
++ sp->OutPath, &in_pixel_size, &out_pixel_size);
++
++ s3c_tvscaler_set_size(sp);
++
++ s3c_tvscaler_set_addr(sp, in_pixel_size, out_pixel_size);
++
++ s3c_tvscaler_set_auto_load(sp);
++
++}
++EXPORT_SYMBOL(s3c_tvscaler_config);
++
++void s3c_tvscaler_set_param(scaler_params_t *sp)
++{
++#if 0
++ param.SrcFullWidth = sp->SrcFullWidth;
++ param.SrcFullHeight = sp->SrcFullHeight;
++ param.SrcStartX = sp->SrcStartX;
++ param.SrcStartY = sp->SrcStartY;
++ param.SrcWidth = sp->SrcWidth;
++ param.SrcHeight = sp->SrcHeight;
++ param.SrcFrmSt = sp->SrcFrmSt;
++ param.SrcCSpace = sp->SrcCSpace;
++ param.DstFullWidth = sp->DstFullWidth;
++ param.DstFullHeight = sp->DstFullHeight;
++ param.DstStartX = sp->DstStartX;
++ param.DstStartY = sp->DstStartY;
++ param.DstWidth = sp->DstWidth;
++ param.DstHeight = sp->DstHeight;
++ param.DstFrmSt = sp->DstFrmSt;
++ param.DstCSpace = sp->DstCSpace;
++ param.SrcFrmBufNum = sp->SrcFrmBufNum;
++ param.DstFrmSt = sp->DstFrmSt;
++ param.Mode = sp->Mode;
++ param.InPath = sp->InPath;
++ param.OutPath = sp->OutPath;
++#endif
++}
++EXPORT_SYMBOL(s3c_tvscaler_set_param);
++
++void s3c_tvscaler_init(void)
++{
++
++ int tmp;
++
++ // Use DOUTmpll source clock as a scaler clock
++ tmp = __raw_readl(S3C_CLK_SRC);
++
++ tmp &=~(0x3<<28);
++ tmp |= (0x1<<28);
++ __raw_writel(tmp, S3C_CLK_SRC);
++
++ printk(" %s \n", __FUNCTION__);
++
++}
++EXPORT_SYMBOL(s3c_tvscaler_init);
++
++
++static int s3c_tvscaler_probe(struct platform_device *pdev)
++{
++
++ struct resource *res;
++
++ int ret;
++
++ /* find the IRQs */
++ s3c_tvscaler_irq = platform_get_irq(pdev, 0);
++ if(s3c_tvscaler_irq <= 0) {
++ printk(KERN_ERR PFX "failed to get irq resouce\n");
++ return -ENOENT;
++ }
++
++ /* get the memory region for the tv scaler driver */
++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ if(res == NULL) {
++ printk(KERN_ERR PFX "failed to get memory region resouce\n");
++ return -ENOENT;
++ }
++
++ s3c_tvscaler_mem = request_mem_region(res->start, res->end-res->start+1, pdev->name);
++ if(s3c_tvscaler_mem == NULL) {
++ printk(KERN_ERR PFX "failed to reserve memory region\n");
++ return -ENOENT;
++ }
++
++ base = ioremap(s3c_tvscaler_mem->start, s3c_tvscaler_mem->end - res->start + 1);
++ if(s3c_tvscaler_mem == NULL) {
++ printk(KERN_ERR PFX "failed ioremap\n");
++ return -ENOENT;
++ }
++
++ tvscaler_clock = clk_get(&pdev->dev, "tv_encoder");
++ if(tvscaler_clock == NULL) {
++ printk(KERN_ERR PFX "failed to find tvscaler clock source\n");
++ return -ENOENT;
++ }
++
++ clk_enable(tvscaler_clock);
++
++ h_clk = clk_get(&pdev->dev, "hclk");
++ if(h_clk == NULL) {
++ printk(KERN_ERR PFX "failed to find h_clk clock source\n");
++ return -ENOENT;
++ }
++
++ init_waitqueue_head(&waitq);
++
++ ret = request_irq(s3c_tvscaler_irq, s3c_tvscaler_isr, SA_INTERRUPT,
++ "TV_SCALER", NULL);
++ if (ret) {
++ printk("request_irq(TV_SCALER) failed.\n");
++ return ret;
++ }
++
++ printk(" Success\n");
++
++ return 0;
++}
++
++static int s3c_tvscaler_remove(struct platform_device *dev)
++{
++ printk(KERN_INFO "s3c_tvscaler_remove called !\n");
++ clk_disable(tvscaler_clock);
++ free_irq(s3c_tvscaler_irq, NULL);
++ if (s3c_tvscaler_mem != NULL) {
++ pr_debug("s3-tvscaler: releasing s3c_tvscaler_mem\n");
++ iounmap(base);
++ release_resource(s3c_tvscaler_mem);
++ kfree(s3c_tvscaler_mem);
++ }
++
++ return 0;
++}
++
++static int s3c_tvscaler_suspend(struct platform_device *dev, pm_message_t state)
++{
++ clk_disable(tvscaler_clock);
++ return 0;
++}
++
++static int s3c_tvscaler_resume(struct platform_device *pdev)
++{
++ clk_enable(tvscaler_clock);
++ return 0;
++}
++
++static struct platform_driver s3c_tvscaler_driver = {
++ .probe = s3c_tvscaler_probe,
++ .remove = s3c_tvscaler_remove,
++ .suspend = s3c_tvscaler_suspend,
++ .resume = s3c_tvscaler_resume,
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "s3c-tvscaler",
++ },
++};
++
++static char banner[] __initdata = KERN_INFO "S3C6410 TV scaler Driver, (c) 2008 Samsung Electronics\n";
++
++
++int __init s3c_tvscaler_pre_init(void)
++{
++
++ printk(banner);
++
++ if(platform_driver_register(&s3c_tvscaler_driver) != 0)
++ {
++ printk("platform device register Failed \n");
++ return -1;
++ }
++
++ printk(" S3C6410 TV scaler Driver module init OK. \n");
++
++ return 0;
++}
++
++void s3c_tvscaler_exit(void)
++{
++ platform_driver_unregister(&s3c_tvscaler_driver);
++ printk("S3C: tvscaler module exit\n");
++}
++
++module_init(s3c_tvscaler_pre_init);
++module_exit(s3c_tvscaler_exit);
++
++
++MODULE_AUTHOR("Peter, Oh");
++MODULE_DESCRIPTION("S3C TV Controller Device Driver");
++MODULE_LICENSE("GPL");
++
++
+diff --git a/drivers/media/video/samsung/s3c-tvscaler.h b/drivers/media/video/samsung/s3c-tvscaler.h
+new file mode 100644
+index 0000000..d8079a3
+--- /dev/null
++++ b/drivers/media/video/samsung/s3c-tvscaler.h
+@@ -0,0 +1,96 @@
++#ifndef __S3CTVSCALER_H_
++#define __S3CTVSCALER_H_
++
++#include <asm-arm/arch-s3c2410/reserved_mem.h>
++
++#define TVSCALER_IOCTL_MAGIC 'S'
++
++#define PPROC_SET_PARAMS _IO(TVSCALER_IOCTL_MAGIC, 0)
++#define PPROC_START _IO(TVSCALER_IOCTL_MAGIC, 1)
++#define PPROC_STOP _IO(TVSCALER_IOCTL_MAGIC, 2)
++#define PPROC_INTERLACE_MODE _IO(TVSCALER_IOCTL_MAGIC, 3)
++#define PPROC_PROGRESSIVE_MODE _IO(TVSCALER_IOCTL_MAGIC, 4)
++
++
++#define QVGA_XSIZE 320
++#define QVGA_YSIZE 240
++
++#define LCD_XSIZE 320
++#define LCD_YSIZE 240
++
++#define SCALER_MINOR 251 // Just some number
++
++
++//#define SYSTEM_RAM 0x08000000 // 128mb
++#define SYSTEM_RAM 0x07800000 // 120mb
++#define RESERVE_POST_MEM 8*1024*1024 // 8mb
++#define PRE_BUFF_SIZE 4*1024*1024 //4 // 4mb
++#define POST_BUFF_SIZE ( RESERVE_POST_MEM - PRE_BUFF_SIZE )
++#if 0
++#define POST_BUFF_BASE_ADDR (0x50000000 + (SYSTEM_RAM - RESERVE_POST_MEM))
++#else // TV_RESERVED_MEM_START is defined in the s3c-linux-2.6.21_dev_4_4_15
++#define POST_BUFF_BASE_ADDR TV_RESERVED_MEM_START
++#endif
++
++#define USE_DEDICATED_MEM 1
++
++typedef enum {
++ INTERLACE_MODE,
++ PROGRESSIVE_MODE
++} s3c_scaler_scan_mode_t;
++
++typedef enum {
++ POST_DMA, POST_FIFO
++} s3c_scaler_path_t;
++
++typedef enum {
++ ONE_SHOT, FREE_RUN
++} s3c_scaler_run_mode_t;
++
++typedef enum {
++ PAL1, PAL2, PAL4, PAL8,
++ RGB8, ARGB8, RGB16, ARGB16, RGB18, RGB24, RGB30, ARGB24,
++ YC420, YC422, // Non-interleave
++ CRYCBY, CBYCRY, YCRYCB, YCBYCR, YUV444 // Interleave
++} cspace_t;
++
++typedef enum
++{
++ HCLK = 0, PLL_EXT = 1, EXT_27MHZ = 3
++} scaler_clk_src_t;
++
++typedef struct{
++ unsigned int SrcFullWidth; // Source Image Full Width(Virtual screen size)
++ unsigned int SrcFullHeight; // Source Image Full Height(Virtual screen size)
++ unsigned int SrcStartX; // Source Image Start width offset
++ unsigned int SrcStartY; // Source Image Start height offset
++ unsigned int SrcWidth; // Source Image Width
++ unsigned int SrcHeight; // Source Image Height
++ unsigned int SrcFrmSt; // Base Address of the Source Image : Physical Address
++ cspace_t SrcCSpace; // Color Space ot the Source Image
++
++ unsigned int DstFullWidth; // Source Image Full Width(Virtual screen size)
++ unsigned int DstFullHeight; // Source Image Full Height(Virtual screen size)
++ unsigned int DstStartX; // Source Image Start width offset
++ unsigned int DstStartY; // Source Image Start height offset
++ unsigned int DstWidth; // Source Image Width
++ unsigned int DstHeight; // Source Image Height
++ unsigned int DstFrmSt; // Base Address of the Source Image : Physical Address
++ cspace_t DstCSpace; // Color Space ot the Source Image
++
++ unsigned int SrcFrmBufNum; // Frame buffer number
++ s3c_scaler_run_mode_t Mode; // POST running mode(PER_FRAME or FREE_RUN)
++ s3c_scaler_path_t InPath; // Data path of the source image
++ s3c_scaler_path_t OutPath; // Data path of the desitination image
++
++}scaler_params_t;
++
++typedef struct{
++ unsigned int pre_phy_addr;
++ unsigned char *pre_virt_addr;
++
++ unsigned int post_phy_addr;
++ unsigned char *post_virt_addr;
++} buff_addr_t;
++
++#endif //__S3CTVSCALER_H_
+--
+1.6.2.4
+
diff --git a/recipes/linux/linux-2.6.24/smartq5/mer/0007-make-tv-encoder-scaler-compile.patch b/recipes/linux/linux-2.6.24/smartq5/mer/0007-make-tv-encoder-scaler-compile.patch
new file mode 100644
index 0000000000..9dfa4cc6e9
--- /dev/null
+++ b/recipes/linux/linux-2.6.24/smartq5/mer/0007-make-tv-encoder-scaler-compile.patch
@@ -0,0 +1,5208 @@
+From 148e57efdb357f7178ef2610caa9e33974965b4f Mon Sep 17 00:00:00 2001
+From: Carsten V. Munk <carsten.munk@gmail.com>
+Date: Thu, 6 Aug 2009 12:03:27 +0000
+Subject: [PATCH 07/13] make tv encoder + scaler compile
+
+---
+ drivers/media/video/Makefile | 3 +
+ drivers/media/video/s3c-tvenc.c | 1479 +++++++++++++++++++++++++++
+ drivers/media/video/s3c-tvenc.h | 165 +++
+ drivers/media/video/s3c-tvscaler.c | 802 +++++++++++++++
+ drivers/media/video/s3c-tvscaler.h | 96 ++
+ drivers/media/video/samsung/Makefile | 2 -
+ drivers/media/video/samsung/s3c-tvenc.c | 1479 ---------------------------
+ drivers/media/video/samsung/s3c-tvenc.h | 165 ---
+ drivers/media/video/samsung/s3c-tvscaler.c | 802 ---------------
+ drivers/media/video/samsung/s3c-tvscaler.h | 96 --
+ include/asm-arm/arch-s3c2410/reserved_mem.h | 4 +-
+ 11 files changed, 2547 insertions(+), 2546 deletions(-)
+ create mode 100644 drivers/media/video/s3c-tvenc.c
+ create mode 100644 drivers/media/video/s3c-tvenc.h
+ create mode 100644 drivers/media/video/s3c-tvscaler.c
+ create mode 100644 drivers/media/video/s3c-tvscaler.h
+ delete mode 100644 drivers/media/video/samsung/s3c-tvenc.c
+ delete mode 100644 drivers/media/video/samsung/s3c-tvenc.h
+ delete mode 100644 drivers/media/video/samsung/s3c-tvscaler.c
+ delete mode 100644 drivers/media/video/samsung/s3c-tvscaler.h
+
+diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile
+index cd3d371..92a1e45 100644
+--- a/drivers/media/video/Makefile
++++ b/drivers/media/video/Makefile
+@@ -126,6 +126,9 @@ obj-$(CONFIG_USB_QUICKCAM_MESSENGER) += usbvideo/
+ obj-$(CONFIG_VIDEO_IVTV) += ivtv/
+
+ obj-$(CONFIG_VIDEO_SAMSUNG) += s3c_camera_driver.o s3c_camif.o samsung/
++obj-$(CONFIG_VIDEO_SAMSUNG_TVENC) += s3c-tvenc.o
++obj-$(CONFIG_VIDEO_SAMSUNG_TVSCALER) += s3c-tvscaler.o
++
+ obj-$(CONFIG_VIDEO_VIVI) += vivi.o
+ obj-$(CONFIG_VIDEO_CX23885) += cx23885/
+
+diff --git a/drivers/media/video/s3c-tvenc.c b/drivers/media/video/s3c-tvenc.c
+new file mode 100644
+index 0000000..11dfd37
+--- /dev/null
++++ b/drivers/media/video/s3c-tvenc.c
+@@ -0,0 +1,1479 @@
++
++/*
++ * linux/drivers/tvenc/s3c-tvenc.c
++ *
++ * Revision 1.0
++ *
++ *
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file COPYING in the main directory of this archive for
++ * more details.
++ *
++ * S3C TV Encoder driver
++ *
++ */
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/types.h>
++#include <linux/timer.h>
++#include <linux/kernel.h>
++#include <linux/fs.h>
++#include <linux/platform_device.h>
++#include <linux/interrupt.h>
++#include <linux/clk.h>
++#include <linux/delay.h>
++#include <asm/uaccess.h>
++#include <linux/errno.h> /* error codes */
++#include <asm/div64.h>
++#include <linux/mm.h>
++#include <linux/tty.h>
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/hardware.h>
++#include <asm/uaccess.h>
++#include <asm/arch/map.h>
++
++#include <linux/version.h>
++#if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,16)
++#include <linux/config.h>
++#include <asm/arch/registers.h>
++#include <linux/videodev2.h>
++#else
++#include <asm/arch/regs-tvenc.h>
++#include <asm/arch/regs-lcd.h>
++#include <media/v4l2-common.h>
++#endif
++
++#include "s3c-tvenc.h"
++
++#define PFX "s3c_tvenc"
++
++static struct clk *tvenc_clock;
++static struct clk *h_clk;
++static int s3c_tvenc_irq = NO_IRQ;
++static struct resource *s3c_tvenc_mem;
++static void __iomem *base;
++static wait_queue_head_t waitq;
++static tv_out_params_t tv_param = {0,};
++
++/* Backup SFR value */
++static u32 backup_reg[2];
++
++
++/* Structure that declares the access functions*/
++
++static void s3c_tvenc_switch(tv_enc_switch_t sw)
++{
++ if(sw == OFF) {
++ __raw_writel(__raw_readl(base + S3C_TVCTRL)
++ &~ S3C_TVCTRL_ON, base + S3C_TVCTRL);
++ } else if(sw == ON) {
++ __raw_writel(__raw_readl(base + S3C_TVCTRL)
++ | S3C_TVCTRL_ON, base + S3C_TVCTRL);
++ } else
++ printk("Error func:%s line:%d\n", __FUNCTION__, __LINE__);
++}
++
++static void s3c_tvenc_set_image_size(u32 width, u32 height)
++{
++ __raw_writel(IIS_WIDTH(width)| IIS_HEIGHT(height),
++ base + S3C_INIMAGESIZE);
++}
++
++#if 0
++static void s3c_tvenc_enable_macrovision(tv_standard_t tvmode, macro_pattern_t pattern)
++{
++ switch(pattern) {
++ case AGC4L :
++ break;
++ case AGC2L :
++ break;
++ case N01 :
++ break;
++ case N02 :
++ break;
++ case P01 :
++ break;
++ case P02 :
++ break;
++ default :
++ break;
++ }
++}
++
++static void s3c_tvenc_disable_macrovision(void)
++{
++ __raw_writel(__raw_readl(base + S3C_MACROVISION0)
++ &~0xff, base + S3C_MACROVISION0);
++}
++#endif
++
++static void s3c_tvenc_set_tv_mode(tv_standard_t mode, tv_conn_type_t out)
++{
++ u32 signal_type = 0, output_type = 0;
++
++ switch(mode) {
++ case PAL_N :
++ __raw_writel(VBP_VEFBPD_PAL|VBP_VOFBPD_PAL,
++ base + S3C_VBPORCH);
++ __raw_writel(HBP_HSPW_PAL|HBP_HBPD_PAL,
++ base + S3C_HBPORCH);
++ __raw_writel(HEO_DTO_PAL|HEO_HEOV_PAL,
++ base + S3C_HENHOFFSET);
++ __raw_writel(EPC_PED_ON,
++ base + S3C_PEDCTRL);
++ __raw_writel(YFB_YBW_26|YFB_CBW_06,
++ base + S3C_YCFILTERBW);
++ __raw_writel(SSC_HSYNC_PAL,
++ base + S3C_SYNCSIZECTRL);
++ __raw_writel(BSC_BEND_PAL|BSC_BSTART_PAL,
++ base + S3C_BURSTCTRL);
++ __raw_writel(MBS_BSTART_PAL,
++ base + S3C_MACROBURSTCTRL);
++ __raw_writel(AVP_AVEND_PAL|AVP_AVSTART_PAL,
++ base + S3C_ACTVIDPOCTRL);
++ break;
++ case PAL_NC :
++ case PAL_BGHID :
++ __raw_writel(VBP_VEFBPD_PAL|VBP_VOFBPD_PAL,
++ base + S3C_VBPORCH);
++ __raw_writel(HBP_HSPW_PAL|HBP_HBPD_PAL,
++ base + S3C_HBPORCH);
++ __raw_writel(HEO_DTO_PAL|HEO_HEOV_PAL,
++ base + S3C_HENHOFFSET);
++ __raw_writel(EPC_PED_OFF,
++ base + S3C_PEDCTRL);
++ __raw_writel(YFB_YBW_26|YFB_CBW_06,
++ base + S3C_YCFILTERBW);
++ __raw_writel(SSC_HSYNC_PAL,
++ base + S3C_SYNCSIZECTRL);
++ __raw_writel(BSC_BEND_PAL|BSC_BSTART_PAL,
++ base + S3C_BURSTCTRL);
++ __raw_writel(MBS_BSTART_PAL,
++ base + S3C_MACROBURSTCTRL);
++ __raw_writel(AVP_AVEND_PAL|AVP_AVSTART_PAL,
++ base + S3C_ACTVIDPOCTRL);
++ break;
++ case NTSC_443 :
++ __raw_writel(VBP_VEFBPD_NTSC|VBP_VOFBPD_NTSC,
++ base + S3C_VBPORCH);
++ __raw_writel(HBP_HSPW_NTSC|HBP_HBPD_NTSC,
++ base + S3C_HBPORCH);
++ __raw_writel(HEO_DTO_NTSC|HEO_HEOV_NTSC,
++ base + S3C_HENHOFFSET);
++ __raw_writel(EPC_PED_ON,
++ base + S3C_PEDCTRL);
++ __raw_writel(YFB_YBW_26|YFB_CBW_06,
++ base + S3C_YCFILTERBW);
++ __raw_writel(SSC_HSYNC_NTSC,
++ base + S3C_SYNCSIZECTRL);
++ __raw_writel(BSC_BEND_NTSC|BSC_BSTART_NTSC,
++ base + S3C_BURSTCTRL);
++ __raw_writel(MBS_BSTART_NTSC,
++ base + S3C_MACROBURSTCTRL);
++ __raw_writel(AVP_AVEND_NTSC|AVP_AVSTART_NTSC,
++ base + S3C_ACTVIDPOCTRL);
++ break;
++ case NTSC_J :
++ __raw_writel(VBP_VEFBPD_NTSC|VBP_VOFBPD_NTSC,
++ base + S3C_VBPORCH);
++ __raw_writel(HBP_HSPW_NTSC|HBP_HBPD_NTSC,
++ base + S3C_HBPORCH);
++ __raw_writel(HEO_DTO_NTSC|HEO_HEOV_NTSC,
++ base + S3C_HENHOFFSET);
++ __raw_writel(EPC_PED_OFF,
++ base + S3C_PEDCTRL);
++ __raw_writel(YFB_YBW_21|YFB_CBW_06,
++ base + S3C_YCFILTERBW);
++ __raw_writel(SSC_HSYNC_NTSC,
++ base + S3C_SYNCSIZECTRL);
++ __raw_writel(BSC_BEND_NTSC|BSC_BSTART_NTSC,
++ base + S3C_BURSTCTRL);
++ __raw_writel(MBS_BSTART_NTSC,
++ base + S3C_MACROBURSTCTRL);
++ __raw_writel(AVP_AVEND_NTSC|AVP_AVSTART_NTSC,
++ base + S3C_ACTVIDPOCTRL);
++ break;
++ case PAL_M :
++ case NTSC_M :
++ default :
++ __raw_writel(VBP_VEFBPD_NTSC|VBP_VOFBPD_NTSC,
++ base + S3C_VBPORCH);
++ __raw_writel(HBP_HSPW_NTSC|HBP_HBPD_NTSC,
++ base + S3C_HBPORCH);
++ __raw_writel(HEO_DTO_NTSC|HEO_HEOV_NTSC,
++ base + S3C_HENHOFFSET);
++ __raw_writel(EPC_PED_ON,
++ base + S3C_PEDCTRL);
++ __raw_writel(YFB_YBW_21|YFB_CBW_06,
++ base + S3C_YCFILTERBW);
++ __raw_writel(SSC_HSYNC_NTSC,
++ base + S3C_SYNCSIZECTRL);
++ __raw_writel(BSC_BEND_NTSC|BSC_BSTART_NTSC,
++ base + S3C_BURSTCTRL);
++ __raw_writel(MBS_BSTART_NTSC,
++ base + S3C_MACROBURSTCTRL);
++ __raw_writel(AVP_AVEND_NTSC|AVP_AVSTART_NTSC,
++ base + S3C_ACTVIDPOCTRL);
++ break;
++ }
++
++ if(out == S_VIDEO) {
++ __raw_writel(YFB_YBW_60|YFB_CBW_06,
++ base + S3C_YCFILTERBW);
++ output_type = S3C_TVCTRL_OUTTYPE_S;
++ } else
++ output_type = S3C_TVCTRL_OUTTYPE_C;
++
++ switch(mode) {
++ case NTSC_M :
++ signal_type = S3C_TVCTRL_OUTFMT_NTSC_M;
++ break;
++ case NTSC_J :
++ signal_type = S3C_TVCTRL_OUTFMT_NTSC_J;
++ break;
++ case PAL_BGHID :
++ signal_type = S3C_TVCTRL_OUTFMT_PAL_BDG;
++ break;
++ case PAL_M :
++ signal_type = S3C_TVCTRL_OUTFMT_PAL_M;
++ break;
++ case PAL_NC :
++ signal_type = S3C_TVCTRL_OUTFMT_PAL_NC;
++ break;
++ default:
++ printk("s3c_tvenc_set_tv_mode : No matching signal_type!\n");
++ break;
++ }
++
++ __raw_writel((__raw_readl(base + S3C_TVCTRL)
++ &~(0x1f<<4))| output_type | signal_type,
++ base + S3C_TVCTRL);
++
++ __raw_writel(0x01, base + S3C_FSCAUXCTRL);
++}
++
++#if 0
++static void s3c_tvenc_set_pedestal(tv_enc_switch_t sw)
++{
++ if(sw)
++ __raw_writel(EPC_PED_ON, base + S3C_PEDCTRL);
++ else
++ __raw_writel(EPC_PED_OFF, base + S3C_PEDCTRL);
++}
++
++static void s3c_tvenc_set_sub_carrier_freq(u32 freq)
++{
++ __raw_writel(FSC_CTRL(freq), base + S3C_FSCCTRL);
++}
++
++static void s3c_tvenc_set_fsc_dto(u32 val)
++{
++ unsigned int temp;
++
++ temp = (0x1<<31)|(val&0x7fffffff);
++ __raw_writel(temp, base + S3C_FSCDTOMANCTRL);
++}
++
++static void s3c_tvenc_disable_fsc_dto(void)
++{
++ __raw_writel(__raw_readl(base + S3C_FSCDTOMANCTRL)&~(1<<31),
++ base + S3C_FSCDTOMANCTRL);
++}
++
++static void s3c_tvenc_set_bg(u32 soft_mix, u32 color, u32 lum_offset)
++{
++ unsigned int bg_color;
++ switch(color) {
++ case 0 :
++ bg_color = BGC_BGCS_BLACK;
++ break;
++ case 1 :
++ bg_color = BGC_BGCS_BLUE;
++ break;
++ case 2 :
++ bg_color = BGC_BGCS_RED;
++ break;
++ case 3 :
++ bg_color = BGC_BGCS_MAGENTA;
++ break;
++ case 4 :
++ bg_color = BGC_BGCS_GREEN;
++ break;
++ case 5 :
++ bg_color = BGC_BGCS_CYAN;
++ break;
++ case 6 :
++ bg_color = BGC_BGCS_YELLOW;
++ break;
++ case 7 :
++ bg_color = BGC_BGCS_WHITE;
++ break;
++ }
++ if(soft_mix)
++ __raw_writel(BGC_SME_ENA|bg_color|BGC_BGYOFS(lum_offset),
++ base + S3C_BGCTRL);
++ else
++ __raw_writel(BGC_SME_DIS|bg_color|BGC_BGYOFS(lum_offset),
++ base + S3C_BGCTRL);
++
++}
++
++static void s3c_tvenc_set_bg_vav_hav(u32 hav_len, u32 vav_len, u32 hav_st, u32 vav_st)
++{
++ __raw_writel(BVH_BG_HL(hav_len)|BVH_BG_HS(hav_st)|BVH_BG_VL(vav_len)|BVH_BG_VS(vav_st),
++ base + S3C_BGHVAVCTRL);
++}
++#endif
++
++static void s3c_tvenc_set_hue_phase(u32 phase_val)
++{
++ __raw_writel(HUE_CTRL(phase_val),
++ base + S3C_HUECTRL);
++}
++
++#if 0
++static u32 s3c_tvenc_get_hue_phase(void)
++{
++ return __raw_readl(base + S3C_HUECTRL)&0xff;
++}
++#endif
++
++static void s3c_tvenc_set_contrast(u32 contrast)
++{
++ u32 temp;
++
++ temp = __raw_readl(base + S3C_CONTRABRIGHT);
++
++ __raw_writel((temp &~0xff)|contrast,
++ base + S3C_CONTRABRIGHT);
++}
++
++#if 0
++static u32 s3c_tvenc_get_contrast(void)
++{
++ return (__raw_readl(base + S3C_CONTRABRIGHT)&0xff);
++}
++#endif
++
++static void s3c_tvenc_set_bright(u32 bright)
++{
++ u32 temp;
++
++ temp = __raw_readl(base + S3C_CONTRABRIGHT);
++
++ __raw_writel((temp &~(0xff<<16))| (bright<<16),
++ base + S3C_CONTRABRIGHT);
++}
++
++#if 0
++static u32 s3c_tvenc_get_bright(void)
++{
++ return ((__raw_readl(base + S3C_CONTRABRIGHT)&(0xff<<16))>>16);
++}
++
++
++static void s3c_tvenc_set_cbgain(u32 cbgain)
++{
++ u32 temp;
++
++ temp = __raw_readl(base + S3C_CBCRGAINCTRL);
++
++ __raw_writel((temp &~0xff)|cbgain,
++ base + S3C_CBCRGAINCTRL);
++}
++
++
++static u32 s3c_tvenc_get_cbgain(void)
++{
++ return (__raw_readl(base + S3C_CBCRGAINCTRL)&0xff);
++}
++
++static void s3c_tvenc_set_crgain(u32 crgain)
++{
++ u32 temp;
++
++ temp = __raw_readl(base + S3C_CBCRGAINCTRL);
++
++ __raw_writel((temp &~(0xff<<16))| (crgain<<16),
++ base + S3C_CBCRGAINCTRL);
++}
++
++static u32 s3c_tvenc_get_crgain(void)
++{
++ return ((__raw_readl(base + S3C_CBCRGAINCTRL)&(0xff<<16))>>16);
++}
++#endif
++
++static void s3c_tvenc_enable_gamma_control(tv_enc_switch_t enable)
++{
++ u32 temp;
++
++ temp = __raw_readl(base + S3C_GAMMACTRL);
++ if(enable == ON)
++ temp |= (1<<12);
++ else
++ temp &= ~(1<<12);
++
++ __raw_writel(temp, base + S3C_GAMMACTRL);
++}
++
++static void s3c_tvenc_set_gamma_gain(u32 ggain)
++{
++ u32 temp;
++
++ temp = __raw_readl(base + S3C_GAMMACTRL);
++
++ __raw_writel((temp &~(0x7<<8))| (ggain<<8),
++ base + S3C_GAMMACTRL);
++}
++
++#if 0
++static u32 s3c_tvenc_get_gamma_gain(void)
++{
++ return ((__raw_readl(base + S3C_GAMMACTRL)&(0x7<<8))>>8);
++}
++
++static void s3c_tvenc_enable_mute_control(tv_enc_switch_t enable)
++{
++ u32 temp;
++
++ temp = __raw_readl(base + S3C_GAMMACTRL);
++ if(enable == ON)
++ temp |= (1<<12);
++ else
++ temp &= ~(1<<12);
++
++ __raw_writel(temp, base + S3C_GAMMACTRL);
++}
++
++static void s3c_tvenc_set_mute(u32 y, u32 cb, u32 cr)
++{
++ u32 temp;
++
++ temp = __raw_readl(base + S3C_MUTECTRL);
++
++ temp &=~(0xffffff<<8);
++ temp |= (cr & 0xff)<<24;
++ temp |= (cb & 0xff)<<16;
++ temp |= (y & 0xff)<<8;
++
++ __raw_writel(temp, base + S3C_MUTECTRL);
++}
++
++static void s3c_tvenc_get_mute(u32 *y, u32 *cb, u32 *cr)
++{
++ u32 temp;
++
++ temp = __raw_readl(base + S3C_MUTECTRL);
++
++ *y = (temp&(0xff<<8))>>8;
++ *cb = (temp&(0xff<<16))>>16;
++ *cr = (temp&(0xff<<24))>>24;
++}
++#endif
++
++static void s3c_tvenc_get_active_win_center(u32 *vert, u32 *horz)
++{
++ u32 temp;
++
++ temp = __raw_readl(base + S3C_HENHOFFSET);
++
++ *vert = (temp&(0x3f<<24))>>24;
++ *horz = (temp&(0xff<<16))>>16;
++}
++
++static void s3c_tvenc_set_active_win_center(u32 vert, u32 horz)
++{
++ u32 temp;
++
++ temp = __raw_readl(base + S3C_HENHOFFSET);
++
++ temp &=~(0x3ffff<<16);
++ temp |= (vert&0x3f)<<24;
++ temp |= (horz&0xff)<<16;
++
++ __raw_writel(temp, base + S3C_HENHOFFSET);
++}
++
++// LCD display controller configuration functions
++static void s3c_lcd_set_output_path(lcd_local_output_t out)
++{
++#if 0 // peter for 2.6.21 kernel
++ s3c_fb_set_output_path(out);
++#else // peter for 2.6.24 kernel
++ s3cfb_set_output_path(out);
++#endif
++}
++
++static void s3c_lcd_set_clkval(u32 clkval)
++{
++#if 0 // peter for 2.6.21 kernel
++ s3c_fb_set_clkval(clkval);
++#else // peter for 2.6.24 kernel
++ s3cfb_set_clock(clkval);
++#endif
++}
++
++static void s3c_lcd_enable_rgbport(u32 on_off)
++{
++#if 0 // peter for 2.6.21 kernel
++ s3c_fb_enable_rgbport(on_off);
++#else // peter for 2.6.24 kernel
++ s3cfb_enable_rgbport(on_off);
++#endif
++}
++
++static void s3c_lcd_start(void)
++{
++#if 0 // peter for 2.6.21 kernel
++ s3c_fb_start_lcd();
++#else // peter for 2.6.24 kernel
++ s3cfb_start_lcd();
++#endif
++}
++
++static void s3c_lcd_stop(void)
++{
++#if 0 // peter for 2.6.21 kernel
++ s3c_fb_stop_lcd();
++#else // peter for 2.6.24 kernel
++ s3cfb_stop_lcd();
++#endif
++}
++
++
++static void s3c_lcd_set_config(void)
++{
++ backup_reg[0] = __raw_readl(S3C_VIDCON0);
++ backup_reg[1] = __raw_readl(S3C_VIDCON2);
++
++ s3c_lcd_set_output_path(LCD_TVRGB);
++ tv_param.lcd_output_mode = LCD_TVRGB;
++
++ s3c_lcd_set_clkval(4);
++ s3c_lcd_enable_rgbport(1);
++}
++
++static void s3c_lcd_exit_config(void)
++{
++ __raw_writel(backup_reg[0], S3C_VIDCON0);
++ __raw_writel(backup_reg[1], S3C_VIDCON2);
++ tv_param.lcd_output_mode = LCD_RGB;
++}
++
++static int scaler_test_start(void)
++{
++ tv_param.sp.DstFullWidth = 640;
++ tv_param.sp.DstFullHeight= 480;
++ tv_param.sp.DstCSpace = RGB16;
++
++ s3c_tvscaler_config(&tv_param.sp);
++
++ s3c_tvscaler_int_enable(1);
++
++ s3c_tvscaler_start();
++
++ return 0;
++}
++
++static int scaler_test_stop(void)
++{
++ s3c_tvscaler_int_disable();
++
++ return 0;
++}
++
++
++static int tvout_start(void)
++{
++ u32 width, height;
++ tv_standard_t type;
++ tv_conn_type_t conn;
++
++ tv_param.sp.DstFullWidth *= 2; // For TV OUT
++
++ width = tv_param.sp.DstFullWidth;
++ height = tv_param.sp.DstFullHeight;
++ type = tv_param.sig_type;
++ conn = tv_param.connect;
++
++ /* Set TV-SCALER parameter */
++ switch(tv_param.v2.input->type) {
++ case V4L2_INPUT_TYPE_FIFO: // LCD FIFO-OUT
++ tv_param.sp.Mode = FREE_RUN;
++ tv_param.sp.DstCSpace = YCBYCR;
++ /* Display controller setting */
++ s3c_lcd_stop();
++ s3c_lcd_set_config();
++ break;
++ case V4L2_INPUT_TYPE_MSDMA: // MSDMA
++ tv_param.sp.Mode = FREE_RUN;
++ tv_param.sp.DstCSpace = YCBYCR;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ s3c_tvenc_set_tv_mode(type, conn);
++ s3c_tvenc_set_image_size(width, height);
++ s3c_tvenc_switch(ON);
++
++ s3c_tvscaler_config(&tv_param.sp); // for setting DstStartX/Y, DstWidth/Height
++ s3c_tvscaler_set_interlace(1);
++ if(tv_param.v2.input->type == V4L2_INPUT_TYPE_FIFO)
++ s3c_tvscaler_int_disable();
++ else
++ s3c_tvscaler_int_enable(1);
++ s3c_tvscaler_start();
++
++ if(tv_param.v2.input->type == V4L2_INPUT_TYPE_FIFO)
++ s3c_lcd_start();
++
++ return 0;
++}
++
++static int tvout_stop(void)
++{
++
++ s3c_tvscaler_set_interlace(0);
++ s3c_tvscaler_stop_freerun();
++ s3c_tvscaler_int_disable();
++ s3c_tvenc_switch(OFF);
++
++ switch(tv_param.v2.input->type) {
++ case V4L2_INPUT_TYPE_FIFO: // LCD FIFO-OUT
++ /* Display controller setting */
++ s3c_lcd_stop();
++ s3c_lcd_exit_config();
++ s3c_lcd_start();
++ break;
++ default:
++ break;
++ }
++ return 0;
++}
++
++/* ------------------------------------------ V4L2 SUPPORT ----------------------------------------------*/
++/* ------------- In FIFO and MSDMA, v4l2_input supported by S3C TVENC controller ------------------*/
++static struct v4l2_input tvenc_inputs[] = {
++ {
++ .index = 0,
++ .name = "LCD FIFO_OUT",
++ .type = V4L2_INPUT_TYPE_FIFO,
++ .audioset = 1,
++ .tuner = 0, /* ignored */
++ .std = 0,
++ .status = 0,
++ },
++ {
++ .index = 1,
++ .name = "Memory input (MSDMA)",
++ .type = V4L2_INPUT_TYPE_MSDMA,
++ .audioset = 2,
++ .tuner = 0,
++ .std = 0,
++ .status = 0,
++ }
++};
++
++/* ------------ Out FIFO and MADMA, v4l2_output supported by S3C TVENC controller ----------------*/
++static struct v4l2_output tvenc_outputs[] = {
++ {
++ .index = 0,
++ .name = "TV-OUT",
++ .type = V4L2_OUTPUT_TYPE_ANALOG,
++ .audioset = 0,
++ .modulator = 0,
++ .std = V4L2_STD_PAL | V4L2_STD_NTSC_M,
++ },
++ {
++ .index = 1,
++ .name = "Memory output (MSDMA)",
++ .type = V4L2_OUTPUT_TYPE_MSDMA,
++ .audioset = 0,
++ .modulator = 0,
++ .std = 0,
++ },
++
++};
++
++const struct v4l2_fmtdesc tvenc_input_formats[] = {
++ {
++ .index = 0,
++ .type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
++ .description = "16 bpp RGB, le",
++ .pixelformat = V4L2_PIX_FMT_RGB565,
++ .flags = FORMAT_FLAGS_PACKED,
++ },
++ {
++ .index = 1,
++ .type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
++ .flags = FORMAT_FLAGS_PACKED,
++ .description = "24 bpp RGB, le",
++ .pixelformat = V4L2_PIX_FMT_RGB24,
++ },
++ {
++ .index = 2,
++ .type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
++ .flags = FORMAT_FLAGS_PLANAR,
++ .description = "4:2:2, planar, Y-Cb-Cr",
++ .pixelformat = V4L2_PIX_FMT_YUV422P,
++
++ },
++ {
++ .index = 3,
++ .type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
++ .flags = FORMAT_FLAGS_PLANAR,
++ .description = "4:2:0, planar, Y-Cb-Cr",
++ .pixelformat = V4L2_PIX_FMT_YUV420,
++ }
++};
++
++
++const struct v4l2_fmtdesc tvenc_output_formats[] = {
++ {
++ .index = 0,
++ .type = V4L2_BUF_TYPE_VIDEO_OUTPUT,
++ .description = "16 bpp RGB, le",
++ .pixelformat = V4L2_PIX_FMT_RGB565,
++ .flags = FORMAT_FLAGS_PACKED,
++ },
++ {
++ .index = 1,
++ .type = V4L2_BUF_TYPE_VIDEO_OUTPUT,
++ .flags = FORMAT_FLAGS_PACKED,
++ .description = "24 bpp RGB, le",
++ .pixelformat = V4L2_PIX_FMT_RGB24,
++ },
++ {
++ .index = 2,
++ .type = V4L2_BUF_TYPE_VIDEO_OUTPUT,
++ .flags = FORMAT_FLAGS_PLANAR,
++ .description = "4:2:2, planar, Y-Cb-Cr",
++ .pixelformat = V4L2_PIX_FMT_YUV422P,
++
++ },
++ {
++ .index = 3,
++ .type = V4L2_BUF_TYPE_VIDEO_OUTPUT,
++ .flags = FORMAT_FLAGS_PLANAR,
++ .description = "4:2:0, planar, Y-Cb-Cr",
++ .pixelformat = V4L2_PIX_FMT_YUV420,
++ }
++};
++
++const struct v4l2_standard tvout_standards[] = {
++ {
++ .index = 0,
++ .id = V4L2_STD_NTSC_M,
++ .name = "NTSC type",
++ },
++ {
++ .index = 1,
++ .id = V4L2_STD_PAL,
++ .name = "PAL type",
++ }
++};
++
++#define NUMBER_OF_INPUT_FORMATS ARRAY_SIZE(tvenc_input_formats)
++#define NUMBER_OF_OUTPUT_FORMATS ARRAY_SIZE(tvenc_output_formats)
++#define NUMBER_OF_INPUTS ARRAY_SIZE(tvenc_inputs)
++#define NUMBER_OF_OUTPUTS ARRAY_SIZE(tvenc_outputs)
++#define NUMBER_OF_STANDARDS ARRAY_SIZE(tvout_standards)
++
++static int s3c_tvenc_g_fmt(struct v4l2_format *f)
++{
++ int size = sizeof(struct v4l2_pix_format);
++
++ memset(&f->fmt.pix, 0, size);
++ memcpy(&f->fmt.pix, &tv_param.v2.pixfmt, size);
++
++ return 0;
++}
++
++static int s3c_tvenc_s_fmt(struct v4l2_format *f)
++{
++ /* update our state informations */
++ tv_param.v2.pixfmt= f->fmt.pix;
++
++ // peter LCD output related operation
++ if (tv_param.v2.pixfmt.pixelformat == V4L2_PIX_FMT_RGB565 ) {
++
++ tv_param.sp.SrcFullWidth = tv_param.v2.pixfmt.width;
++ tv_param.sp.SrcFullHeight = tv_param.v2.pixfmt.height;
++ tv_param.sp.SrcStartX = 0;
++ tv_param.sp.SrcStartY = 0;
++ tv_param.sp.SrcWidth = tv_param.sp.SrcFullWidth;
++ tv_param.sp.SrcHeight = tv_param.sp.SrcFullHeight;
++
++ printk("TV-OUT: LCD path operation set\n");
++
++ // peter for padded data of mfc output
++ } else if (tv_param.v2.pixfmt.pixelformat == V4L2_PIX_FMT_YUV420) {
++
++#ifdef DIVX_TEST // padded output
++ tv_param.sp.SrcFullWidth = tv_param.v2.pixfmt.width + 2*16;
++ tv_param.sp.SrcFullHeight = tv_param.v2.pixfmt.height + 2*16;
++ tv_param.sp.SrcStartX = 16;
++ tv_param.sp.SrcStartY = 16;
++ tv_param.sp.SrcWidth = tv_param.sp.SrcFullWidth - 2*tv_param.sp.SrcStartX;
++ tv_param.sp.SrcHeight = tv_param.sp.SrcFullHeight - 2*tv_param.sp.SrcStartY;
++#else // not padded output
++ tv_param.sp.SrcFullWidth = tv_param.v2.pixfmt.width;
++ tv_param.sp.SrcFullHeight = tv_param.v2.pixfmt.height;
++ tv_param.sp.SrcStartX = 0;
++ tv_param.sp.SrcStartY = 0;
++ tv_param.sp.SrcWidth = tv_param.sp.SrcFullWidth;
++ tv_param.sp.SrcHeight = tv_param.sp.SrcFullHeight;
++#endif
++
++ printk("TV-OUT: MFC path operation set\n");
++
++ }
++
++ switch(tv_param.v2.pixfmt.pixelformat) {
++ case V4L2_PIX_FMT_RGB565:
++ tv_param.sp.SrcCSpace = RGB16;
++ break;
++ case V4L2_PIX_FMT_RGB24:
++ tv_param.sp.SrcCSpace = RGB24;
++ break;
++ case V4L2_PIX_FMT_YUV420:
++ tv_param.sp.SrcCSpace = YC420;
++ break;
++ case V4L2_PIX_FMT_YUV422P:
++ tv_param.sp.SrcCSpace = YC422;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++// camif_convert_into_camif_cfg_t(cfg, 1);
++ return 0;
++}
++
++static int s3c_tvenc_s_input(int index)
++{
++
++ tv_param.v2.input = &tvenc_inputs[index];
++ switch(tv_param.v2.input->type) {
++ case V4L2_INPUT_TYPE_FIFO: // LCD FIFO-OUT
++ tv_param.sp.InPath = POST_FIFO;
++ break;
++ case V4L2_INPUT_TYPE_MSDMA: // MSDMA
++ tv_param.sp.InPath = POST_DMA;
++ break;
++ default:
++ return -EINVAL;
++ }
++ return 0;
++}
++
++static int s3c_tvenc_s_output(int index)
++{
++ tv_param.v2.output = &tvenc_outputs[index];
++ switch(tv_param.v2.output->type) {
++ case V4L2_OUTPUT_TYPE_ANALOG: // TV-OUT (FIFO-OUT)
++ tv_param.sp.OutPath = POST_FIFO;
++ break;
++ case V4L2_OUTPUT_TYPE_MSDMA: // MSDMA
++ tv_param.sp.OutPath = POST_DMA;
++ break;
++ default:
++ return -EINVAL;
++ }
++ return 0;
++}
++
++static int s3c_tvenc_s_std(v4l2_std_id *id)
++{
++// printk("s3c_tvenc_s_std: *id=0x%x",*id);
++ switch(*id) {
++ case V4L2_STD_NTSC_M:
++ tv_param.sig_type = NTSC_M;
++ tv_param.sp.DstFullWidth = 720;
++ tv_param.sp.DstFullHeight = 480;
++ break;
++ case V4L2_STD_PAL:
++ tv_param.sig_type = PAL_M;
++ tv_param.sp.DstFullWidth = 720;
++ tv_param.sp.DstFullHeight = 576;
++ break;
++ default:
++ return -EINVAL;
++ }
++ return 0;
++}
++
++static int s3c_tvenc_v4l2_control(struct v4l2_control *ctrl)
++{
++ switch(ctrl->id) {
++
++ // peter added for MFC related op.
++ case V4L2_CID_MPEG_STREAM_PID_VIDEO:
++ {
++ tv_param.sp.SrcFrmSt = ctrl->value;
++ return 0;
++ }
++
++ case V4L2_CID_CONNECT_TYPE:
++ {
++ if(ctrl->value == 0) { // COMPOSITE
++ tv_param.connect = COMPOSITE;
++ } else if(ctrl->value == 1) { //S-VIDEO
++ tv_param.connect = S_VIDEO;
++ } else {
++ return -EINVAL;
++ }
++ return 0;
++ }
++
++ case V4L2_CID_BRIGHTNESS:
++ {
++ s32 val = ctrl->value;
++ if((val > 0xff)||(val < 0))
++ return -EINVAL;
++ else
++ s3c_tvenc_set_bright(val);
++
++ return 0;
++ }
++
++ case V4L2_CID_CONTRAST:
++ {
++ s32 val = ctrl->value;
++ if((val > 0xff)||(val < 0))
++ return -EINVAL;
++ else
++ s3c_tvenc_set_contrast(val);
++
++ return 0;
++ }
++
++ case V4L2_CID_GAMMA:
++ {
++ s32 val = ctrl->value;
++ if((val > 0x3)||(val < 0)) {
++ return -EINVAL;
++ } else {
++ s3c_tvenc_enable_gamma_control(ON);
++ s3c_tvenc_set_gamma_gain(val);
++ s3c_tvenc_enable_gamma_control(OFF);
++ }
++ return 0;
++ }
++
++ case V4L2_CID_HUE:
++ {
++ s32 val = ctrl->value;
++ if((val > 0xff)||(val < 0))
++ return -EINVAL;
++ else
++ s3c_tvenc_set_hue_phase(val);
++
++ return 0;
++ }
++
++ case V4L2_CID_HCENTER:
++ {
++ s32 val = ctrl->value;
++ u32 curr_horz, curr_vert;
++
++ if((val > 0xff)||(val < 0)) {
++ return -EINVAL;
++ } else {
++ s3c_tvenc_get_active_win_center(&curr_vert, &curr_horz);
++ s3c_tvenc_set_active_win_center(curr_vert, val);
++ }
++
++ return 0;
++ }
++
++ case V4L2_CID_VCENTER:
++ {
++ s32 val = ctrl->value;
++ u32 curr_horz, curr_vert;
++
++ if((val > 0x3f)||(val < 0)) {
++ return -EINVAL;
++ } else {
++ s3c_tvenc_get_active_win_center(&curr_vert, &curr_horz);
++ s3c_tvenc_set_active_win_center(val, curr_horz);
++ }
++
++ return 0;
++ }
++
++ default:
++ return -EINVAL;
++ }
++ return 0;
++}
++
++int s3c_tvenc_open(struct inode *inode, struct file *filp)
++{
++ int err;
++
++ err = video_exclusive_open(inode, filp); // One function of V4l2 driver
++
++ if(err < 0)
++ return err;
++ filp->private_data = &tv_param;
++
++ s3c_tvscaler_init();
++
++ /* Success */
++ return 0;
++}
++
++int s3c_tvenc_release(struct inode *inode, struct file *filp)
++{
++ video_exclusive_release(inode, filp);
++
++ /* Success */
++ return 0;
++}
++
++static int s3c_tvenc_do_ioctl(struct inode *inode,struct file *filp,unsigned int cmd,void *arg)
++{
++ int ret;
++
++ switch(cmd){
++ case VIDIOC_QUERYCAP:
++ {
++ struct v4l2_capability *cap = arg;
++ strcpy(cap->driver, "S3C TV-OUT driver");
++ strlcpy(cap->card, tv_param.v->name, sizeof(cap->card));
++ sprintf(cap->bus_info, "ARM AHB BUS");
++ cap->version = 0;
++ cap->capabilities = tv_param.v->type2;
++ return 0;
++ }
++
++ case VIDIOC_OVERLAY:
++ {
++ int on = *(int *)arg;
++
++ printk("TV-OUT: VIDIOC_OVERLAY on:%d\n", on);
++ if (on != 0) {
++ ret = tvout_start();
++ } else {
++ ret = tvout_stop();
++ }
++ return ret;
++ }
++
++ case VIDIOC_ENUMINPUT:
++ {
++ struct v4l2_input *i = arg;
++ printk("TV-OUT: VIDIOC_ENUMINPUT : index = %d\n", i->index);
++
++ if ((i->index) >= NUMBER_OF_INPUTS) {
++ return -EINVAL;
++ }
++ memcpy(i, &tvenc_inputs[i->index], sizeof(struct v4l2_input));
++ return 0;
++ }
++
++ case VIDIOC_S_INPUT: // 0 -> LCD FIFO-OUT, 1 -> MSDMA
++ {
++ int index = *((int *)arg);
++ printk("TV-OUT: VIDIOC_S_INPUT \n");
++
++ if (index >= NUMBER_OF_INPUTS) {
++ return -EINVAL;
++ }
++ else {
++ s3c_tvenc_s_input(index);
++ return 0;
++ }
++ }
++
++ case VIDIOC_G_INPUT:
++ {
++ u32 *i = arg;
++ printk("TV-OUT: VIDIOC_G_INPUT \n");
++ *i = tv_param.v2.input->type;
++ return 0;
++ }
++
++ case VIDIOC_ENUMOUTPUT:
++ {
++ struct v4l2_output *i = arg;
++ printk("TV-OUT: VIDIOC_ENUMOUTPUT : index = %d\n", i->index);
++
++ if ((i->index) >= NUMBER_OF_OUTPUTS) {
++ return -EINVAL;
++ }
++ memcpy(i, &tvenc_outputs[i->index], sizeof(struct v4l2_output));
++ return 0;
++ }
++
++ case VIDIOC_S_OUTPUT: // 0 -> TV / FIFO , 1 -> MSDMA
++ {
++ int index = *((int *)arg);
++ printk("TV-OUT: VIDIOC_S_OUTPUT \n");
++
++ if (index >= NUMBER_OF_OUTPUTS) {
++ return -EINVAL;
++ }
++ else {
++ s3c_tvenc_s_output(index);
++ return 0;
++ }
++ }
++
++ case VIDIOC_G_OUTPUT:
++ {
++ u32 *i = arg;
++ printk("VIDIOC_G_OUTPUT \n");
++ *i = tv_param.v2.output->type;
++ return 0;
++ }
++
++ case VIDIOC_ENUM_FMT:
++ { struct v4l2_fmtdesc *f = arg;
++ enum v4l2_buf_type type = f->type;
++ int index = f->index;
++
++ printk("C: VIDIOC_ENUM_FMT : index = %d\n", index);
++ if (index >= NUMBER_OF_INPUT_FORMATS)
++ return -EINVAL;
++
++ switch (type) {
++ case V4L2_BUF_TYPE_VIDEO_CAPTURE:
++ break;
++ case V4L2_BUF_TYPE_VIDEO_OUTPUT:
++ default:
++ return -EINVAL;
++ }
++ memset(f, 0, sizeof(*f));
++ memcpy(f, tv_param.v2.fmtdesc+index, sizeof(*f));
++ return 0;
++ }
++
++ case VIDIOC_G_FMT:
++ {
++ struct v4l2_format *f = arg;
++ printk("C: VIDIOC_G_FMT \n");
++ ret = s3c_tvenc_g_fmt(f);
++ return ret;
++ }
++
++ case VIDIOC_S_FMT:
++ {
++ struct v4l2_format *f = arg;
++ printk("C: VIDIOC_S_FMT \n");
++ ret = s3c_tvenc_s_fmt(f);
++ if(ret != 0) {
++ printk("s3c_tvenc_set_fmt() failed !\n");
++ return -EINVAL;
++ }
++ return ret;
++ }
++
++ case VIDIOC_S_CTRL:
++ {
++ struct v4l2_control *ctrl = arg;
++ //printk("P: VIDIOC_S_CTRL \n");
++ ret = s3c_tvenc_v4l2_control(ctrl);
++ return ret;
++ }
++
++ case VIDIOC_ENUMSTD:
++ {
++ struct v4l2_standard *e = arg;
++ unsigned int index = e->index;
++
++ if (index >= NUMBER_OF_STANDARDS)
++ return -EINVAL;
++ v4l2_video_std_construct(e, tvout_standards[e->index].id,
++ &tvout_standards[e->index].name);
++ e->index = index;
++ return 0;
++ }
++
++ case VIDIOC_G_STD:
++ {
++ v4l2_std_id *id = arg;
++ *id = tvout_standards[0].id;
++ return 0;
++ }
++
++ case VIDIOC_S_STD:
++ {
++ v4l2_std_id *id = arg;
++ unsigned int i;
++
++ for (i = 0; i < NUMBER_OF_STANDARDS; i++) {
++ //printk("P: *id = %d, tvout_standards[i].id = %d\n", *id, tvout_standards[i].id);
++ if (*id & tvout_standards[i].id)
++ break;
++ }
++ if (i == NUMBER_OF_STANDARDS)
++ return -EINVAL;
++
++ ret = s3c_tvenc_s_std(id);
++ return ret;
++ }
++
++ case VIDIOC_S_TVOUT_ON:
++ {
++ //int *SrcFrmSt = arg;
++ //printk("---peter VIDIOC_S_TVOUT_ON : SrcFrmSt = 0x%08x\n", *SrcFrmSt);
++ ret = tvout_start();
++ return ret;
++ }
++
++ case VIDIOC_S_TVOUT_OFF:
++ {
++ ret = tvout_stop();
++ return ret;
++ }
++
++ case VIDIOC_S_SCALER_TEST:
++ {
++ ret = scaler_test_start();
++ mdelay(1);
++ ret = scaler_test_stop();
++ return ret;
++ }
++
++ default:
++ return -EINVAL;
++ }
++ return 0;
++}
++
++static int s3c_tvenc_ioctl_v4l2(struct inode *inode, struct file *filp, unsigned int cmd,
++ unsigned long arg)
++{
++ return video_usercopy(inode, filp, cmd, arg, s3c_tvenc_do_ioctl);
++}
++
++int s3c_tvenc_read(struct file *filp, char *buf, size_t count,
++ loff_t *f_pos)
++{
++ return 0;
++}
++
++int s3c_tvenc_write(struct file *filp, const char *buf, size_t
++ count, loff_t *f_pos)
++{
++ return 0;
++}
++
++int s3c_tvenc_mmap(struct file *filp, struct vm_area_struct *vma)
++{
++ u32 size = vma->vm_end - vma->vm_start;
++ u32 max_size;
++ u32 page_frame_no;
++
++ page_frame_no = __phys_to_pfn(POST_BUFF_BASE_ADDR);
++
++ max_size = RESERVE_POST_MEM + PAGE_SIZE - (RESERVE_POST_MEM % PAGE_SIZE);
++
++ if(size > max_size) {
++ return -EINVAL;
++ }
++
++ vma->vm_flags |= VM_RESERVED;
++
++ if( remap_pfn_range(vma, vma->vm_start, page_frame_no,
++ size, vma->vm_page_prot)) {
++ printk(KERN_ERR "%s: mmap_error\n", __FUNCTION__);
++ return -EAGAIN;
++
++ }
++
++ return 0;
++}
++
++struct file_operations s3c_tvenc_fops = {
++ .owner = THIS_MODULE,
++ .open = s3c_tvenc_open,
++ .ioctl = s3c_tvenc_ioctl_v4l2,
++ .release = s3c_tvenc_release,
++ .read = s3c_tvenc_read,
++ .write = s3c_tvenc_write,
++ .mmap = s3c_tvenc_mmap,
++};
++
++void s3c_tvenc_vdev_release (struct video_device *vdev) {
++ kfree(vdev);
++}
++
++struct video_device tvencoder = {
++ .name = "TVENCODER",
++ .type = VID_TYPE_OVERLAY | VID_TYPE_CAPTURE | VID_TYPE_SCALES,
++ .type2 = V4L2_CAP_VIDEO_OUTPUT| V4L2_CAP_VIDEO_CAPTURE, /* V4L2 */
++ //.hardware = 0x01, // peter for 2.6.24 kernel
++ .fops = &s3c_tvenc_fops,
++ .release = s3c_tvenc_vdev_release,
++ .minor = TVENC_MINOR,
++};
++
++irqreturn_t s3c_tvenc_isr(int irq, void *dev_id,
++ struct pt_regs *regs)
++{
++ u32 mode;
++
++ mode = __raw_readl(base + S3C_TVCTRL);
++
++ // Clear FIFO under-run status pending bit
++ mode |= (1<<12);
++
++ __raw_writel(mode, base + S3C_TVCTRL);
++
++ wake_up_interruptible(&waitq);
++ return IRQ_HANDLED;
++}
++
++static int s3c_tvenc_probe(struct platform_device *pdev)
++{
++
++ struct resource *res;
++
++ int ret;
++
++ /* find the IRQs */
++ s3c_tvenc_irq = platform_get_irq(pdev, 0);
++ if(s3c_tvenc_irq <= 0) {
++ printk(KERN_ERR PFX "failed to get irq resouce\n");
++ return -ENOENT;
++ }
++
++ /* get the memory region for the tv scaler driver */
++
++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ if(res == NULL) {
++ printk(KERN_ERR PFX "failed to get memory region resouce\n");
++ return -ENOENT;
++ }
++
++ s3c_tvenc_mem = request_mem_region(res->start, res->end-res->start+1, pdev->name);
++ if(s3c_tvenc_mem == NULL) {
++ printk(KERN_ERR PFX "failed to reserve memory region\n");
++ return -ENOENT;
++ }
++
++
++ base = ioremap(s3c_tvenc_mem->start, s3c_tvenc_mem->end - res->start + 1);
++ if(s3c_tvenc_mem == NULL) {
++ printk(KERN_ERR PFX "failed ioremap\n");
++ return -ENOENT;
++ }
++
++ tvenc_clock = clk_get(&pdev->dev, "tv_encoder");
++ if(tvenc_clock == NULL) {
++ printk(KERN_ERR PFX "failed to find tvenc clock source\n");
++ return -ENOENT;
++ }
++
++ clk_enable(tvenc_clock);
++
++ h_clk = clk_get(&pdev->dev, "hclk");
++ if(h_clk == NULL) {
++ printk(KERN_ERR PFX "failed to find h_clk clock source\n");
++ return -ENOENT;
++ }
++
++ init_waitqueue_head(&waitq);
++
++ tv_param.v = video_device_alloc();
++ if(!tv_param.v) {
++ printk(KERN_ERR "s3c-tvenc: video_device_alloc() failed\n");
++ return -ENOMEM;
++ }
++ memcpy(tv_param.v, &tvencoder, sizeof(tvencoder));
++ if(video_register_device(tv_param.v, VFL_TYPE_GRABBER, TVENC_MINOR) != 0) {
++ printk("s3c_camera_driver.c : Couldn't register this codec driver.\n");
++ return 0;
++ }
++
++ ret = request_irq(s3c_tvenc_irq, s3c_tvenc_isr, SA_INTERRUPT,
++ "TV_ENCODER", NULL);
++ if (ret) {
++ printk("request_irq(TV_ENCODER) failed.\n");
++ return ret;
++ }
++
++ printk(" Success\n");
++ return 0;
++}
++
++static int s3c_tvenc_remove(struct platform_device *dev)
++{
++ printk(KERN_INFO "s3c_tvenc_remove called !\n");
++ clk_disable(tvenc_clock);
++ free_irq(s3c_tvenc_irq, NULL);
++ if (s3c_tvenc_mem != NULL) {
++ pr_debug("s3-tvenc: releasing s3c_tvenc_mem\n");
++ iounmap(base);
++ release_resource(s3c_tvenc_mem);
++ kfree(s3c_tvenc_mem);
++ }
++// video_unregister_device(tv_param.v);
++ return 0;
++}
++
++static int s3c_tvenc_suspend(struct platform_device *dev, pm_message_t state)
++{
++ clk_disable(tvenc_clock);
++ return 0;
++}
++
++static int s3c_tvenc_resume(struct platform_device *pdev)
++{
++ clk_enable(tvenc_clock);
++ return 0;
++}
++
++static struct platform_driver s3c_tvenc_driver = {
++ .probe = s3c_tvenc_probe,
++ .remove = s3c_tvenc_remove,
++ .suspend = s3c_tvenc_suspend,
++ .resume = s3c_tvenc_resume,
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "s3c-tvenc",
++ },
++};
++
++static char banner[] __initdata = KERN_INFO "S3C6410 TV encoder Driver, (c) 2008 Samsung Electronics\n";
++
++static int __init s3c_tvenc_init(void)
++{
++
++ printk(banner);
++
++ if(platform_driver_register(&s3c_tvenc_driver) != 0)
++ {
++ printk("Platform Device Register Failed \n");
++ return -1;
++ }
++
++ printk(" S3C6410 TV encoder Driver module init OK. \n");
++ return 0;
++}
++
++static void __exit s3c_tvenc_exit(void)
++{
++
++ video_unregister_device(tv_param.v);
++ platform_driver_unregister(&s3c_tvenc_driver);
++
++ printk("S3C6410 TV encoder Driver module exit. \n");
++}
++
++
++module_init(s3c_tvenc_init);
++module_exit(s3c_tvenc_exit);
++
++
++MODULE_AUTHOR("Peter, Oh");
++MODULE_DESCRIPTION("S3C TV Encoder Device Driver");
++MODULE_LICENSE("GPL");
+diff --git a/drivers/media/video/s3c-tvenc.h b/drivers/media/video/s3c-tvenc.h
+new file mode 100644
+index 0000000..30a66a2
+--- /dev/null
++++ b/drivers/media/video/s3c-tvenc.h
+@@ -0,0 +1,165 @@
++#ifndef __S3CTVENC_H_
++#define __S3CTVENC_H_
++
++#include "s3c-tvscaler.h"
++
++
++#define TVENC_IOCTL_MAGIC 'T'
++
++typedef struct {
++
++} s3c_tvenc_info;
++
++#define TV_ON _IO(TVENC_IOCTL_MAGIC, 0)
++#define TV_OFF _IO(TVENC_IOCTL_MAGIC, 1)
++#define SELECT_TV_OUT_FORMAT _IO(TVENC_IOCTL_MAGIC, 2)
++
++#define TVENC_IOCTL_MAXNR 6
++
++#define TVENC_MINOR 14 // Just some number
++
++typedef enum {
++ OFF,
++ ON
++} tv_enc_switch_t;
++
++typedef enum {
++ NTSC_M,
++ PAL_M,
++ PAL_BGHID,
++ PAL_N,
++ PAL_NC,
++ PAL_60,
++ NTSC_443,
++ NTSC_J
++} tv_standard_t;
++
++typedef enum {
++ QCIF, CIF/*352x288*/,
++ QQVGA, QVGA, VGA, SVGA/*800x600*/, SXGA/*1280x1024*/, UXGA/*1600x1200*/, QXGA/*2048x1536*/,
++ WVGA/*854x480*/, HD720/*1280x720*/, HD1080/*1920x1080*/
++} img_size_t;
++
++typedef enum {
++ BLACKSTRETCH, WHITESTRETCH, BLUESTRETCH
++} stretch_color_t;
++
++typedef enum {
++ COMPOSITE, S_VIDEO
++} tv_conn_type_t;
++
++typedef enum {
++ BLACK, BLUE, RED, MAGENTA, GREEN, CYAN, YELLOW, WHITE
++} bg_color_t;
++
++typedef enum {
++ MUTE_Y, MUTE_CB, MUTE_CR
++} mute_type_t;
++
++typedef enum {
++ AGC4L, AGC2L, N01, N02, P01, P02
++} macro_pattern_t;
++
++typedef enum {
++ LCD_RGB, LCD_TV, LCD_I80F, LCD_I80S,
++ LCD_TVRGB, LCD_TVI80F, LCD_TVI80S
++} lcd_local_output_t;
++
++/* when App want to change v4l2 parameter,
++ * we instantly store it into v4l2_t v2
++ * and then reflect it to hardware
++ */
++typedef struct v4l2 {
++ struct v4l2_fmtdesc *fmtdesc;
++// struct v4l2_framebuffer frmbuf; /* current frame buffer */
++ struct v4l2_pix_format pixfmt;
++ struct v4l2_input *input;
++ struct v4l2_output *output;
++// enum v4l2_status status;
++} v4l2_t;
++
++
++typedef struct {
++ tv_standard_t sig_type;
++ tv_conn_type_t connect;
++ /* Width of input image. The input value is twice original output image
++ * width. For example, you must set 1440 when the image width is 720.
++ * Max value is 1440
++ */
++ unsigned int in_width;
++ /* Height of input image
++ * Max value is 576
++ */
++ unsigned int in_height;
++
++ // Setting value of VIDOUT[28:26] in Display
++ // controller(VIDCON0)
++ lcd_local_output_t lcd_output_mode;
++ // Set CLKVAL_F[13:6] of VIDCON0 with
++ // this value
++ unsigned int lcd_clkval_f;
++
++ // Flag of lcd rgb port
++ // 0 : disable, 1 : enable
++ unsigned int lcd_rgb_port_flag;
++
++ scaler_params_t sp;
++
++ struct video_device *v;
++ v4l2_t v2;
++
++} tv_out_params_t;
++
++#define V4L2_INPUT_TYPE_MSDMA 3
++#define V4L2_INPUT_TYPE_FIFO 4
++#define V4L2_OUTPUT_TYPE_MSDMA 4
++
++#define FORMAT_FLAGS_DITHER 0x01
++#define FORMAT_FLAGS_PACKED 0x02
++#define FORMAT_FLAGS_PLANAR 0x04
++#define FORMAT_FLAGS_RAW 0x08
++#define FORMAT_FLAGS_CrCb 0x10
++
++/****************************************************************
++* struct v4l2_control
++* Control IDs defined by S3C
++*****************************************************************/
++
++/* TV-OUT connector type */
++#define V4L2_CID_CONNECT_TYPE (V4L2_CID_PRIVATE_BASE+0)
++
++/****************************************************************
++* I O C T L C O D E S F O R V I D E O D E V I C E S
++* It's only for S3C
++*****************************************************************/
++#define VIDIOC_S_TVOUT_ON _IO ('V', BASE_VIDIOC_PRIVATE+0)
++#define VIDIOC_S_TVOUT_OFF _IO ('V', BASE_VIDIOC_PRIVATE+1)
++#define VIDIOC_S_SCALER_TEST _IO ('V', BASE_VIDIOC_PRIVATE+3)
++
++
++extern void s3c_tvscaler_config(scaler_params_t * sp);
++extern void s3c_tvscaler_int_enable(unsigned int int_type);
++extern void s3c_tvscaler_int_disable(void);
++extern void s3c_tvscaler_start(void);
++extern void s3c_tvscaler_stop_freerun(void);
++extern void s3c_tvscaler_init(void);
++extern void s3c_tvscaler_set_interlace(unsigned int on_off);
++extern int video_exclusive_release(struct inode * inode, struct file * file);
++extern int video_exclusive_open(struct inode * inode, struct file * file);
++
++#if 0 // peter for 2.6.21 kernel
++extern void s3c_fb_start_lcd(void);
++extern void s3c_fb_stop_lcd(void);
++extern void s3c_fb_set_output_path(int out);
++extern void s3c_fb_set_clkval(unsigned int clkval);
++extern void s3c_fb_enable_rgbport(unsigned int on_off);
++#else // peter for 2.6.24 kernel
++extern void s3cfb_start_lcd(void);
++extern void s3cfb_stop_lcd(void);
++extern void s3cfb_set_output_path(int out);
++extern void s3cfb_set_clock(unsigned int clkval);
++extern void s3cfb_enable_rgbport(unsigned int on_off);
++#endif
++
++
++#endif // __S3CTVENC_H_
+diff --git a/drivers/media/video/s3c-tvscaler.c b/drivers/media/video/s3c-tvscaler.c
+new file mode 100644
+index 0000000..376c866
+--- /dev/null
++++ b/drivers/media/video/s3c-tvscaler.c
+@@ -0,0 +1,802 @@
++
++/*
++ * linux/drivers/tvenc/s3c-tvscaler.c
++ *
++ * Revision 1.0
++ *
++ *
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file COPYING in the main directory of this archive for
++ * more details.
++ *
++ * S3C TV Scaler driver
++ *
++ */
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/types.h>
++#include <linux/timer.h>
++#include <linux/kernel.h>
++#include <linux/fs.h>
++#include <linux/platform_device.h>
++#include <linux/interrupt.h>
++#include <linux/clk.h>
++#include <linux/delay.h>
++#include <asm/uaccess.h>
++#include <linux/errno.h> /* error codes */
++#include <asm/div64.h>
++#include <linux/mm.h>
++#include <linux/tty.h>
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/hardware.h>
++#include <asm/uaccess.h>
++#include <asm/arch/map.h>
++#include <linux/miscdevice.h>
++
++#include <linux/version.h>
++#if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,16)
++#include <linux/config.h>
++#include <asm/arch/registers.h>
++#else
++#include <asm/arch/regs-tvscaler.h>
++#include <asm/arch/regs-s3c6400-clock.h>
++#endif
++
++#include "s3c-tvscaler.h"
++
++#define PFX "s3c_tv_scaler"
++
++#define SINGLE_BUF 1 // Single buffer mode
++
++
++static struct clk *h_clk;
++static struct clk *tvscaler_clock;
++static void __iomem *base;
++static int s3c_tvscaler_irq = NO_IRQ;
++static struct resource *s3c_tvscaler_mem;
++
++
++//static unsigned char *addr_start_y;
++//static unsigned char *addr_start_rgb;
++
++static wait_queue_head_t waitq;
++
++irqreturn_t s3c_tvscaler_isr(int irq, void *dev_id,
++ struct pt_regs *regs)
++{
++ u32 mode;
++ mode = __raw_readl(base + S3C_MODE);
++ mode &= ~(1 << 6); /* Clear Source in POST Processor */
++ __raw_writel(mode, base + S3C_MODE);
++
++// wake_up_interruptible(&waitq);
++ return IRQ_HANDLED;
++}
++
++#if 0
++static buff_addr_t buf_addr = { NULL };
++
++
++static u32 post_alloc_pre_buff(scaler_params_t *sp)
++{
++ u32 size;
++
++#ifdef USE_DEDICATED_MEM
++
++ buf_addr.pre_phy_addr = PHYS_OFFSET + (SYSTEM_RAM - RESERVE_POST_MEM);
++ buf_addr.pre_virt_addr = ioremap_nocache(buf_addr.pre_phy_addr, PRE_BUFF_SIZE);
++ if( !buf_addr.pre_virt_addr ) {
++ printk(KERN_ERR "%s: Failed to allocate pre buffer \n",__FUNCTION__);
++ return -ENOMEM;
++ }
++
++ sp->SrcFrmSt = buf_addr.pre_phy_addr;
++#else
++ size = sp->SrcWidth * sp->SrcHeight * 2;
++ addr_start_y = kmalloc(size, GFP_DMA);
++ if(addr_start_y != NULL) return -ENOMEM;
++#endif
++ return 0;
++}
++
++static u32 post_alloc_post_buff(scaler_params_t *sp)
++{
++ u32 size;
++
++#ifdef USE_DEDICATED_MEM
++
++ buf_addr.post_phy_addr = PHYS_OFFSET + (SYSTEM_RAM - RESERVE_POST_MEM + PRE_BUFF_SIZE);
++ buf_addr.post_virt_addr = ioremap_nocache(buf_addr.post_phy_addr, POST_BUFF_SIZE);
++ if( !buf_addr.post_virt_addr ) {
++ printk(KERN_ERR "%s: Failed to allocate post buffer \n",__FUNCTION__);
++ return -ENOMEM;
++ }
++
++ sp->DstFrmSt = buf_addr.post_phy_addr;
++#else
++ size = sp->DstWidth * sp->DstHeight * 2;
++ addr_start_rgb = kmalloc(size, GFP_DMA);
++ if(addr_start_rgb != NULL) return -ENOMEM;
++#endif
++ return 0;
++}
++
++static u32 post_free_all_buffer(void)
++{
++#ifdef USE_DEDICATED_MEM
++ if( buf_addr.pre_virt_addr ) {
++ iounmap(buf_addr.pre_virt_addr);
++ }
++ if( buf_addr.post_virt_addr ) {
++ iounmap(buf_addr.post_virt_addr);
++ }
++#endif
++ return 0;
++}
++#endif
++
++static void s3c_tvscaler_set_clk_src(scaler_clk_src_t clk_src)
++{
++ u32 tmp, rate;
++
++ tmp = __raw_readl(base + S3C_MODE);
++
++ h_clk = clk_get(NULL, "hclk");
++
++ rate = clk_get_rate(h_clk);
++
++ if(clk_src == HCLK) {
++ if(rate > 66000000) {
++ tmp &= ~(0x7f<<23);
++ tmp |= (1<<24);
++ tmp |= (1<<23);
++ } else {
++ tmp &=~ (0x7f<<23);
++ }
++
++ } else if(clk_src == PLL_EXT) {
++ } else {
++ tmp &=~(0x7f<<23);
++ }
++
++ tmp = (tmp &~ (0x3<<21)) | (clk_src<<21);
++
++ __raw_writel(tmp, base + S3C_MODE);
++}
++
++static void s3c_tvscaler_set_fmt(cspace_t src, cspace_t dst, s3c_scaler_path_t in,
++ s3c_scaler_path_t out, u32 *in_pixel_size,
++ u32 *out_pixel_size)
++{
++ u32 tmp;
++
++ tmp = __raw_readl(base + S3C_MODE);
++ tmp |= (0x1<<16);
++ tmp |= (0x2<<10);
++
++ if(in == POST_DMA) {
++
++ switch(src) {
++ case YC420:
++ tmp &=~((0x1<<3)|(0x1<<2));
++ tmp |= (0x1<<8)|(0x1<<1);
++ *in_pixel_size = 1;
++ break;
++ case CRYCBY:
++ tmp &= ~((0x1<<15)|(0x1<<8)|(0x1<<3)|(0x1<<0));
++ tmp |= (0x1<<2)|(0x1<<1);
++ *in_pixel_size = 2;
++ break;
++ case CBYCRY:
++ tmp &= ~((0x1<<8)|(0x1<<3)|(0x1<<0));
++ tmp |= (0x1<<15)|(0x1<<2)|(0x1<<1);
++ *in_pixel_size = 2;
++ break;
++ case YCRYCB:
++ tmp &= ~((0x1<<15)|(0x1<<8)|(0x1<<3));
++ tmp |= (0x1<<2)|(0x1<<1)|(0x1<<0);
++ *in_pixel_size = 2;
++ break;
++ case YCBYCR:
++ tmp &= ~((0x1<<8)|(0x1<<3));
++ tmp |= (0x1<<15)|(0x1<<2)|(0x1<<1)|(0x1<<0);
++ *in_pixel_size = 2;
++ break;
++ case RGB24:
++ tmp &= ~(0x1<<8);
++ tmp |= (0x1<<3)|(0x1<<2)|(0x1<<1);
++ *in_pixel_size = 4;
++ break;
++ case RGB16:
++ tmp &= ~((0x1<<8)|(0x1<<1));
++ tmp |= (0x1<<3)|(0x1<<2);
++ *in_pixel_size = 2;
++ break;
++ default:
++ break;
++ }
++
++ }
++ else if(in == POST_FIFO) {
++ }
++
++ if(out == POST_DMA) {
++ switch(dst) {
++ case YC420:
++ tmp &= ~(0x1<<18);
++ tmp |= (0x1<<17);
++ *out_pixel_size = 1;
++ break;
++ case CRYCBY:
++ tmp &= ~((0x1<<20)|(0x1<<19)|(0x1<<18)|(0x1<<17));
++ *out_pixel_size = 2;
++ break;
++ case CBYCRY:
++ tmp &= ~((0x1<<19)|(0x1<<18)|(0x1<<17));
++ tmp |= (0x1<<20);
++ *out_pixel_size = 2;
++ break;
++ case YCRYCB:
++ tmp &= ~((0x1<<20)|(0x1<<18)|(0x1<<17));
++ tmp |= (0x1<<19);
++ *out_pixel_size = 2;
++ break;
++ case YCBYCR:
++ tmp &= ~((0x1<<18)|(0x1<<17));
++ tmp |= (0x1<<20)|(0x1<<19);
++ *out_pixel_size = 2;
++ break;
++ case RGB24:
++ tmp |= (0x1<<18)|(0x1<<4);
++ *out_pixel_size = 4;
++ break;
++ case RGB16:
++ tmp &= ~(0x1<<4);
++ tmp |= (0x1<<18);
++ *out_pixel_size = 2;
++ break;
++ default:
++ break;
++ }
++ }
++ else if(out == POST_FIFO) {
++ if(dst == RGB24) {
++ tmp |= (0x1<<18)|(0x1<<13);
++
++ } else if(dst == YCBYCR) {
++ tmp |= (0x1<<13);
++ tmp &= ~(0x1<<18)|(0x1<<17);
++ } else {
++ }
++ }
++
++ __raw_writel(tmp, base + S3C_MODE);
++}
++
++static void s3c_tvscaler_set_path(s3c_scaler_path_t in, s3c_scaler_path_t out)
++{
++ u32 tmp;
++
++ tmp = __raw_readl(base + S3C_MODE);
++
++ tmp &=~(0x1<<12); // 0: progressive mode, 1: interlace mode
++
++ if(in == POST_FIFO) {
++ tmp |= (0x1<<31);
++ } else if(in == POST_DMA) {
++ tmp &=~(0x1<<31);
++ }
++
++ if(out == POST_FIFO) {
++ tmp |= (0x1<<13);
++ } else if(out == POST_DMA) {
++ tmp &=~(0x1<<13);
++ }
++
++ __raw_writel(tmp, base + S3C_MODE);
++}
++
++static void s3c_tvscaler_set_addr(scaler_params_t *sp, u32 in_pixel_size, u32 out_pixel_size)
++{
++ u32 offset_y, offset_cb, offset_cr;
++ u32 src_start_y, src_start_cb, src_start_cr;
++ u32 src_end_y, src_end_cb, src_end_cr;
++ u32 start_pos_y, end_pos_y;
++ u32 start_pos_cb, end_pos_cb;
++ u32 start_pos_cr, end_pos_cr;
++ u32 start_pos_rgb, end_pos_rgb;
++ u32 dst_start_rgb, dst_end_rgb;
++ u32 src_frm_start_addr;
++
++ u32 offset_rgb, out_offset_cb, out_offset_cr;
++ u32 out_start_pos_cb, out_start_pos_cr;
++ u32 out_end_pos_cb, out_end_pos_cr;
++ u32 out_src_start_cb, out_src_start_cr;
++ u32 out_src_end_cb, out_src_end_cr;
++
++ if(sp->InPath == POST_DMA) {
++ offset_y = (sp->SrcFullWidth - sp->SrcWidth) * in_pixel_size;
++ start_pos_y = (sp->SrcFullWidth*sp->SrcStartY+sp->SrcStartX)*in_pixel_size;
++ end_pos_y = sp->SrcWidth*sp->SrcHeight*in_pixel_size + offset_y*(sp->SrcHeight-1);
++ src_frm_start_addr = sp->SrcFrmSt;
++ src_start_y = sp->SrcFrmSt + start_pos_y;
++ src_end_y = src_start_y + end_pos_y;
++
++ __raw_writel(src_start_y, base + S3C_ADDRSTART_Y);
++ __raw_writel(offset_y, base + S3C_OFFSET_Y);
++ __raw_writel(src_end_y, base + S3C_ADDREND_Y);
++
++ if(sp->SrcCSpace == YC420) {
++ offset_cb = offset_cr = ((sp->SrcFullWidth - sp->SrcWidth) / 2) * in_pixel_size;
++ start_pos_cb = sp->SrcFullWidth * sp->SrcFullHeight * 1 \
++ + (sp->SrcFullWidth * sp->SrcStartY / 2 + sp->SrcStartX) /2 * 1;
++
++ end_pos_cb = sp->SrcWidth/2*sp->SrcHeight/2*in_pixel_size \
++ + (sp->SrcHeight/2 -1)*offset_cb;
++ start_pos_cr = sp->SrcFullWidth * sp->SrcFullHeight *1 \
++ + sp->SrcFullWidth*sp->SrcFullHeight/4 *1 \
++ + (sp->SrcFullWidth*sp->SrcStartY/2 + sp->SrcStartX)/2*1;
++ end_pos_cr = sp->SrcWidth/2*sp->SrcHeight/2*in_pixel_size \
++ + (sp->SrcHeight/2-1)*offset_cr;
++
++ src_start_cb = sp->SrcFrmSt + start_pos_cb;
++ src_end_cb = src_start_cb + end_pos_cb;
++
++ src_start_cr = sp->SrcFrmSt + start_pos_cr;
++ src_end_cr = src_start_cr + end_pos_cr;
++
++ __raw_writel(src_start_cb, base + S3C_ADDRSTART_CB);
++ __raw_writel(offset_cr, base + S3C_OFFSET_CB);
++ __raw_writel(src_end_cb, base + S3C_ADDREND_CB);
++ __raw_writel(src_start_cr, base + S3C_ADDRSTART_CR);
++ __raw_writel(offset_cb, base + S3C_OFFSET_CR);
++ __raw_writel(src_end_cr, base + S3C_ADDREND_CR);
++ }
++ }
++ if(sp->OutPath == POST_DMA) {
++ offset_rgb = (sp->DstFullWidth - sp->DstWidth)*out_pixel_size;
++ start_pos_rgb = (sp->DstFullWidth*sp->DstStartY + sp->DstStartX)*out_pixel_size;
++ end_pos_rgb = sp->DstWidth*sp->DstHeight*out_pixel_size + offset_rgb*(sp->DstHeight - 1);
++ dst_start_rgb = sp->DstFrmSt + start_pos_rgb;
++ dst_end_rgb = dst_start_rgb + end_pos_rgb;
++
++ __raw_writel(dst_start_rgb, base + S3C_ADDRSTART_RGB);
++ __raw_writel(offset_rgb, base + S3C_OFFSET_RGB);
++ __raw_writel(dst_end_rgb, base + S3C_ADDREND_RGB);
++
++ if(sp->DstCSpace == YC420) {
++ out_offset_cb = out_offset_cr = ((sp->DstFullWidth - sp->DstWidth)/2)*out_pixel_size;
++ out_start_pos_cb = sp->DstFullWidth*sp->DstFullHeight*1 \
++ + (sp->DstFullWidth*sp->DstStartY/2 + sp->DstStartX)/2*1;
++ out_end_pos_cb = sp->DstWidth/2*sp->DstHeight/2*out_pixel_size \
++ + (sp->DstHeight/2 -1)*out_offset_cr;
++
++ out_start_pos_cr = sp->DstFullWidth*sp->DstFullHeight*1 \
++ + (sp->DstFullWidth*sp->DstFullHeight/4)*1 \
++ + (sp->DstFullWidth*sp->DstStartY/2 +sp->DstStartX)/2*1;
++ out_end_pos_cr = sp->DstWidth/2*sp->DstHeight/2*out_pixel_size \
++ + (sp->DstHeight/2 -1)*out_offset_cb;
++
++ out_src_start_cb = sp->DstFrmSt + out_start_pos_cb;
++ out_src_end_cb = out_src_start_cb + out_end_pos_cb;
++ out_src_start_cr = sp->DstFrmSt + out_start_pos_cr;
++ out_src_end_cr = out_src_start_cr + out_end_pos_cr;
++
++ __raw_writel(out_src_start_cb, base + S3C_ADDRSTART_OCB);
++ __raw_writel(out_offset_cb, base + S3C_OFFSET_OCB);
++ __raw_writel(out_src_end_cb, base + S3C_ADDREND_OCB);
++ __raw_writel(out_src_start_cr, base + S3C_ADDRSTART_OCR);
++ __raw_writel(out_offset_cr, base + S3C_OFFSET_OCR);
++ __raw_writel(out_src_end_cr, base + S3C_ADDREND_OCR);
++
++ }
++ }
++
++
++}
++
++#if 0
++static void s3c_tvscaler_set_fifo_in(s3c_scaler_path_t in_path)
++{
++ u32 tmp;
++
++ tmp = __raw_readl(base + S3C_MODE);
++
++ if(in_path == POST_FIFO) tmp |= (0x1<<31);
++ else tmp &=~(0x1<<31);
++
++ __raw_writel(tmp, base + S3C_MODE);
++
++}
++#endif
++
++void s3c_tvscaler_set_interlace(u32 on_off)
++{
++ u32 tmp;
++
++ tmp = __raw_readl(base + S3C_MODE);
++
++ if(on_off == 1) tmp |=(1<<12);
++ else tmp &=~(1<<12);
++
++ __raw_writel(tmp, base + S3C_MODE);
++}
++EXPORT_SYMBOL(s3c_tvscaler_set_interlace);
++
++static void s3c_tvscaler_set_size(scaler_params_t *sp)
++{
++ u32 pre_h_ratio, pre_v_ratio, h_shift, v_shift, sh_factor;
++ u32 pre_dst_width, pre_dst_height, dx, dy;
++
++ if (sp->SrcWidth >= (sp->DstWidth<<6)) {
++ printk("Out of PreScalar range !!!\n");
++ return;
++ }
++ if(sp->SrcWidth >= (sp->DstWidth<<5)) {
++ pre_h_ratio = 32;
++ h_shift = 5;
++ } else if(sp->SrcWidth >= (sp->DstWidth<<4)) {
++ pre_h_ratio = 16;
++ h_shift = 4;
++ } else if(sp->SrcWidth >= (sp->DstWidth<<3)) {
++ pre_h_ratio = 8;
++ h_shift = 3;
++ } else if(sp->SrcWidth >= (sp->DstWidth<<2)) {
++ pre_h_ratio = 4;
++ h_shift = 2;
++ } else if(sp->SrcWidth >= (sp->DstWidth<<1)) {
++ pre_h_ratio = 2;
++ h_shift = 1;
++ } else {
++ pre_h_ratio = 1;
++ h_shift = 0;
++ }
++
++ pre_dst_width = sp->SrcWidth / pre_h_ratio;
++ dx = (sp->SrcWidth<<8) / (sp->DstWidth<<h_shift);
++
++
++ if (sp->SrcHeight >= (sp->DstHeight<<6)) {
++ printk("Out of PreScalar range !!!\n");
++ return;
++ }
++ if(sp->SrcHeight>= (sp->DstHeight<<5)) {
++ pre_v_ratio = 32;
++ v_shift = 5;
++ } else if(sp->SrcHeight >= (sp->DstHeight<<4)) {
++ pre_v_ratio = 16;
++ v_shift = 4;
++ } else if(sp->SrcHeight >= (sp->DstHeight<<3)) {
++ pre_v_ratio = 8;
++ v_shift = 3;
++ } else if(sp->SrcHeight >= (sp->DstHeight<<2)) {
++ pre_v_ratio = 4;
++ v_shift = 2;
++ } else if(sp->SrcHeight >= (sp->DstHeight<<1)) {
++ pre_v_ratio = 2;
++ v_shift = 1;
++ } else {
++ pre_v_ratio = 1;
++ v_shift = 0;
++ }
++
++ pre_dst_height = sp->SrcHeight / pre_v_ratio;
++ dy = (sp->SrcHeight<<8) / (sp->DstHeight<<v_shift);
++ sh_factor = 10 - (h_shift + v_shift);
++
++ __raw_writel((pre_v_ratio<<7)|(pre_h_ratio<<0), base + S3C_PRESCALE_RATIO);
++ __raw_writel((pre_dst_height<<12)|(pre_dst_width<<0), base + S3C_PRESCALEIMGSIZE);
++ __raw_writel(sh_factor, base + S3C_PRESCALE_SHFACTOR);
++ __raw_writel(dx, base + S3C_MAINSCALE_H_RATIO);
++ __raw_writel(dy, base + S3C_MAINSCALE_V_RATIO);
++ __raw_writel((sp->SrcHeight<<12)|(sp->SrcWidth), base + S3C_SRCIMGSIZE);
++ __raw_writel((sp->DstHeight<<12)|(sp->DstWidth), base + S3C_DSTIMGSIZE);
++
++}
++
++
++static void s3c_tvscaler_set_auto_load(scaler_params_t *sp)
++{
++ u32 tmp;
++
++ tmp = __raw_readl(base + S3C_MODE);
++
++ if(sp->Mode == FREE_RUN) {
++ tmp |= (1<<14);
++ } else if(sp->Mode == ONE_SHOT) {
++ tmp &=~(1<<14);
++ }
++
++ __raw_writel(tmp, base + S3C_MODE);
++
++}
++
++void s3c_tvscaler_set_base_addr(void __iomem * base_addr)
++{
++ base = base_addr;
++}
++EXPORT_SYMBOL(s3c_tvscaler_set_base_addr);
++
++void s3c_tvscaler_free_base_addr(void)
++{
++ base = NULL;
++}
++EXPORT_SYMBOL(s3c_tvscaler_free_base_addr);
++
++void s3c_tvscaler_int_enable(u32 int_type)
++{
++ u32 tmp;
++
++ tmp = __raw_readl(base + S3C_MODE);
++
++ if(int_type == 0) { //Edge triggering
++ tmp &= ~(S3C_MODE_IRQ_LEVEL);
++ } else if(int_type == 1) { //level triggering
++ tmp |= S3C_MODE_IRQ_LEVEL;
++ }
++
++ tmp |= S3C_MODE_POST_INT_ENABLE;
++
++ __raw_writel(tmp, base + S3C_MODE);
++}
++EXPORT_SYMBOL(s3c_tvscaler_int_enable);
++
++void s3c_tvscaler_int_disable(void)
++{
++ u32 tmp;
++
++ tmp = __raw_readl(base + S3C_MODE);
++
++ tmp &=~ (S3C_MODE_POST_INT_ENABLE);
++
++ __raw_writel(tmp, base + S3C_MODE);
++
++}
++EXPORT_SYMBOL(s3c_tvscaler_int_disable);
++
++
++void s3c_tvscaler_start(void)
++{
++ __raw_writel(S3C_POSTENVID_ENABLE, base + S3C_POSTENVID);
++
++}
++EXPORT_SYMBOL(s3c_tvscaler_start);
++
++void s3c_tvscaler_stop_freerun(void)
++{
++ u32 tmp;
++
++ tmp = __raw_readl(base + S3C_MODE);
++
++ tmp &=~(1<<14);
++
++ __raw_writel(tmp, base + S3C_MODE);
++}
++EXPORT_SYMBOL(s3c_tvscaler_stop_freerun);
++
++
++void s3c_tvscaler_config(scaler_params_t *sp)
++{
++ u32 tmp = 0;
++ u32 in_pixel_size = 0;
++ u32 out_pixel_size = 0;
++ u32 loop = 0;
++
++ tmp = __raw_readl(base + S3C_POSTENVID);
++ tmp &= ~S3C_POSTENVID_ENABLE;
++ __raw_writel(tmp, base + S3C_POSTENVID);
++#ifdef SINGLE_BUF
++ tmp = S3C_MODE2_ADDR_CHANGE_DISABLE |S3C_MODE2_CHANGE_AT_FRAME_END |S3C_MODE2_SOFTWARE_TRIGGER;
++#else
++ tmp = S3C_MODE2_ADDR_CHANGE_ENABLE |S3C_MODE2_CHANGE_AT_FRAME_END |S3C_MODE2_SOFTWARE_TRIGGER;
++#endif
++ __raw_writel(tmp, base + S3C_MODE2);
++
++// peter mod. start
++ sp->DstStartX = sp->DstStartY = 0;
++ sp->DstWidth = sp->DstFullWidth;
++ sp->DstHeight = sp->DstFullHeight;
++// peter mod. end
++
++ sp->DstFrmSt = ( POST_BUFF_BASE_ADDR + PRE_BUFF_SIZE );
++ //printk("\n---peter s3c_tvscaler_config : SrcFrmSt = 0x%08x\n", sp->SrcFrmSt);
++ //printk("---peter s3c_tvscaler_config : DstFrmSt = 0x%08x\n", sp->DstFrmSt);
++
++ s3c_tvscaler_set_clk_src(HCLK);
++
++ s3c_tvscaler_set_path(sp->InPath, sp->OutPath);
++
++ s3c_tvscaler_set_fmt(sp->SrcCSpace, sp->DstCSpace, sp->InPath,
++ sp->OutPath, &in_pixel_size, &out_pixel_size);
++
++ s3c_tvscaler_set_size(sp);
++
++ s3c_tvscaler_set_addr(sp, in_pixel_size, out_pixel_size);
++
++ s3c_tvscaler_set_auto_load(sp);
++
++}
++EXPORT_SYMBOL(s3c_tvscaler_config);
++
++void s3c_tvscaler_set_param(scaler_params_t *sp)
++{
++#if 0
++ param.SrcFullWidth = sp->SrcFullWidth;
++ param.SrcFullHeight = sp->SrcFullHeight;
++ param.SrcStartX = sp->SrcStartX;
++ param.SrcStartY = sp->SrcStartY;
++ param.SrcWidth = sp->SrcWidth;
++ param.SrcHeight = sp->SrcHeight;
++ param.SrcFrmSt = sp->SrcFrmSt;
++ param.SrcCSpace = sp->SrcCSpace;
++ param.DstFullWidth = sp->DstFullWidth;
++ param.DstFullHeight = sp->DstFullHeight;
++ param.DstStartX = sp->DstStartX;
++ param.DstStartY = sp->DstStartY;
++ param.DstWidth = sp->DstWidth;
++ param.DstHeight = sp->DstHeight;
++ param.DstFrmSt = sp->DstFrmSt;
++ param.DstCSpace = sp->DstCSpace;
++ param.SrcFrmBufNum = sp->SrcFrmBufNum;
++ param.DstFrmSt = sp->DstFrmSt;
++ param.Mode = sp->Mode;
++ param.InPath = sp->InPath;
++ param.OutPath = sp->OutPath;
++#endif
++}
++EXPORT_SYMBOL(s3c_tvscaler_set_param);
++
++void s3c_tvscaler_init(void)
++{
++
++ int tmp;
++
++ // Use DOUTmpll source clock as a scaler clock
++ tmp = __raw_readl(S3C_CLK_SRC);
++
++ tmp &=~(0x3<<28);
++ tmp |= (0x1<<28);
++ __raw_writel(tmp, S3C_CLK_SRC);
++
++ printk(" %s \n", __FUNCTION__);
++
++}
++EXPORT_SYMBOL(s3c_tvscaler_init);
++
++
++static int s3c_tvscaler_probe(struct platform_device *pdev)
++{
++
++ struct resource *res;
++
++ int ret;
++
++ /* find the IRQs */
++ s3c_tvscaler_irq = platform_get_irq(pdev, 0);
++ if(s3c_tvscaler_irq <= 0) {
++ printk(KERN_ERR PFX "failed to get irq resouce\n");
++ return -ENOENT;
++ }
++
++ /* get the memory region for the tv scaler driver */
++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ if(res == NULL) {
++ printk(KERN_ERR PFX "failed to get memory region resouce\n");
++ return -ENOENT;
++ }
++
++ s3c_tvscaler_mem = request_mem_region(res->start, res->end-res->start+1, pdev->name);
++ if(s3c_tvscaler_mem == NULL) {
++ printk(KERN_ERR PFX "failed to reserve memory region\n");
++ return -ENOENT;
++ }
++
++ base = ioremap(s3c_tvscaler_mem->start, s3c_tvscaler_mem->end - res->start + 1);
++ if(s3c_tvscaler_mem == NULL) {
++ printk(KERN_ERR PFX "failed ioremap\n");
++ return -ENOENT;
++ }
++
++ tvscaler_clock = clk_get(&pdev->dev, "tv_encoder");
++ if(tvscaler_clock == NULL) {
++ printk(KERN_ERR PFX "failed to find tvscaler clock source\n");
++ return -ENOENT;
++ }
++
++ clk_enable(tvscaler_clock);
++
++ h_clk = clk_get(&pdev->dev, "hclk");
++ if(h_clk == NULL) {
++ printk(KERN_ERR PFX "failed to find h_clk clock source\n");
++ return -ENOENT;
++ }
++
++ init_waitqueue_head(&waitq);
++
++ ret = request_irq(s3c_tvscaler_irq, s3c_tvscaler_isr, SA_INTERRUPT,
++ "TV_SCALER", NULL);
++ if (ret) {
++ printk("request_irq(TV_SCALER) failed.\n");
++ return ret;
++ }
++
++ printk(" Success\n");
++
++ return 0;
++}
++
++static int s3c_tvscaler_remove(struct platform_device *dev)
++{
++ printk(KERN_INFO "s3c_tvscaler_remove called !\n");
++ clk_disable(tvscaler_clock);
++ free_irq(s3c_tvscaler_irq, NULL);
++ if (s3c_tvscaler_mem != NULL) {
++ pr_debug("s3-tvscaler: releasing s3c_tvscaler_mem\n");
++ iounmap(base);
++ release_resource(s3c_tvscaler_mem);
++ kfree(s3c_tvscaler_mem);
++ }
++
++ return 0;
++}
++
++static int s3c_tvscaler_suspend(struct platform_device *dev, pm_message_t state)
++{
++ clk_disable(tvscaler_clock);
++ return 0;
++}
++
++static int s3c_tvscaler_resume(struct platform_device *pdev)
++{
++ clk_enable(tvscaler_clock);
++ return 0;
++}
++
++static struct platform_driver s3c_tvscaler_driver = {
++ .probe = s3c_tvscaler_probe,
++ .remove = s3c_tvscaler_remove,
++ .suspend = s3c_tvscaler_suspend,
++ .resume = s3c_tvscaler_resume,
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "s3c-tvscaler",
++ },
++};
++
++static char banner[] __initdata = KERN_INFO "S3C6410 TV scaler Driver, (c) 2008 Samsung Electronics\n";
++
++
++int __init s3c_tvscaler_pre_init(void)
++{
++
++ printk(banner);
++
++ if(platform_driver_register(&s3c_tvscaler_driver) != 0)
++ {
++ printk("platform device register Failed \n");
++ return -1;
++ }
++
++ printk(" S3C6410 TV scaler Driver module init OK. \n");
++
++ return 0;
++}
++
++void s3c_tvscaler_exit(void)
++{
++ platform_driver_unregister(&s3c_tvscaler_driver);
++ printk("S3C: tvscaler module exit\n");
++}
++
++module_init(s3c_tvscaler_pre_init);
++module_exit(s3c_tvscaler_exit);
++
++
++MODULE_AUTHOR("Peter, Oh");
++MODULE_DESCRIPTION("S3C TV Controller Device Driver");
++MODULE_LICENSE("GPL");
++
++
+diff --git a/drivers/media/video/s3c-tvscaler.h b/drivers/media/video/s3c-tvscaler.h
+new file mode 100644
+index 0000000..d8079a3
+--- /dev/null
++++ b/drivers/media/video/s3c-tvscaler.h
+@@ -0,0 +1,96 @@
++#ifndef __S3CTVSCALER_H_
++#define __S3CTVSCALER_H_
++
++#include <asm-arm/arch-s3c2410/reserved_mem.h>
++
++#define TVSCALER_IOCTL_MAGIC 'S'
++
++#define PPROC_SET_PARAMS _IO(TVSCALER_IOCTL_MAGIC, 0)
++#define PPROC_START _IO(TVSCALER_IOCTL_MAGIC, 1)
++#define PPROC_STOP _IO(TVSCALER_IOCTL_MAGIC, 2)
++#define PPROC_INTERLACE_MODE _IO(TVSCALER_IOCTL_MAGIC, 3)
++#define PPROC_PROGRESSIVE_MODE _IO(TVSCALER_IOCTL_MAGIC, 4)
++
++
++#define QVGA_XSIZE 320
++#define QVGA_YSIZE 240
++
++#define LCD_XSIZE 320
++#define LCD_YSIZE 240
++
++#define SCALER_MINOR 251 // Just some number
++
++
++//#define SYSTEM_RAM 0x08000000 // 128mb
++#define SYSTEM_RAM 0x07800000 // 120mb
++#define RESERVE_POST_MEM 8*1024*1024 // 8mb
++#define PRE_BUFF_SIZE 4*1024*1024 //4 // 4mb
++#define POST_BUFF_SIZE ( RESERVE_POST_MEM - PRE_BUFF_SIZE )
++#if 0
++#define POST_BUFF_BASE_ADDR (0x50000000 + (SYSTEM_RAM - RESERVE_POST_MEM))
++#else // TV_RESERVED_MEM_START is defined in the s3c-linux-2.6.21_dev_4_4_15
++#define POST_BUFF_BASE_ADDR TV_RESERVED_MEM_START
++#endif
++
++#define USE_DEDICATED_MEM 1
++
++typedef enum {
++ INTERLACE_MODE,
++ PROGRESSIVE_MODE
++} s3c_scaler_scan_mode_t;
++
++typedef enum {
++ POST_DMA, POST_FIFO
++} s3c_scaler_path_t;
++
++typedef enum {
++ ONE_SHOT, FREE_RUN
++} s3c_scaler_run_mode_t;
++
++typedef enum {
++ PAL1, PAL2, PAL4, PAL8,
++ RGB8, ARGB8, RGB16, ARGB16, RGB18, RGB24, RGB30, ARGB24,
++ YC420, YC422, // Non-interleave
++ CRYCBY, CBYCRY, YCRYCB, YCBYCR, YUV444 // Interleave
++} cspace_t;
++
++typedef enum
++{
++ HCLK = 0, PLL_EXT = 1, EXT_27MHZ = 3
++} scaler_clk_src_t;
++
++typedef struct{
++ unsigned int SrcFullWidth; // Source Image Full Width(Virtual screen size)
++ unsigned int SrcFullHeight; // Source Image Full Height(Virtual screen size)
++ unsigned int SrcStartX; // Source Image Start width offset
++ unsigned int SrcStartY; // Source Image Start height offset
++ unsigned int SrcWidth; // Source Image Width
++ unsigned int SrcHeight; // Source Image Height
++ unsigned int SrcFrmSt; // Base Address of the Source Image : Physical Address
++ cspace_t SrcCSpace; // Color Space ot the Source Image
++
++ unsigned int DstFullWidth; // Source Image Full Width(Virtual screen size)
++ unsigned int DstFullHeight; // Source Image Full Height(Virtual screen size)
++ unsigned int DstStartX; // Source Image Start width offset
++ unsigned int DstStartY; // Source Image Start height offset
++ unsigned int DstWidth; // Source Image Width
++ unsigned int DstHeight; // Source Image Height
++ unsigned int DstFrmSt; // Base Address of the Source Image : Physical Address
++ cspace_t DstCSpace; // Color Space ot the Source Image
++
++ unsigned int SrcFrmBufNum; // Frame buffer number
++ s3c_scaler_run_mode_t Mode; // POST running mode(PER_FRAME or FREE_RUN)
++ s3c_scaler_path_t InPath; // Data path of the source image
++ s3c_scaler_path_t OutPath; // Data path of the desitination image
++
++}scaler_params_t;
++
++typedef struct{
++ unsigned int pre_phy_addr;
++ unsigned char *pre_virt_addr;
++
++ unsigned int post_phy_addr;
++ unsigned char *post_virt_addr;
++} buff_addr_t;
++
++#endif //__S3CTVSCALER_H_
+diff --git a/drivers/media/video/samsung/Makefile b/drivers/media/video/samsung/Makefile
+index ede0269..885512c 100644
+--- a/drivers/media/video/samsung/Makefile
++++ b/drivers/media/video/samsung/Makefile
+@@ -7,5 +7,3 @@ obj-$(CONFIG_VIDEO_SAMSUNG_S5K4BA) += 4xa_sensor.o
+ obj-$(CONFIG_VIDEO_ADV7180) += adv7180.o
+ obj-$(CONFIG_VIDEO_APTINA_MT9P012) += mt9p012.o
+
+-obj-$(CONFIG_VIDEO_SAMSUNG_TVENC) += s3c_tvenc.o
+-obj-$(CONFIG_VIDEO_SAMSUNG_TVSCALER) += s3c_tvenc.o
+diff --git a/drivers/media/video/samsung/s3c-tvenc.c b/drivers/media/video/samsung/s3c-tvenc.c
+deleted file mode 100644
+index 11dfd37..0000000
+--- a/drivers/media/video/samsung/s3c-tvenc.c
++++ /dev/null
+@@ -1,1479 +0,0 @@
+-
+-/*
+- * linux/drivers/tvenc/s3c-tvenc.c
+- *
+- * Revision 1.0
+- *
+- *
+- * This file is subject to the terms and conditions of the GNU General Public
+- * License. See the file COPYING in the main directory of this archive for
+- * more details.
+- *
+- * S3C TV Encoder driver
+- *
+- */
+-
+-#include <linux/init.h>
+-#include <linux/module.h>
+-#include <linux/moduleparam.h>
+-#include <linux/types.h>
+-#include <linux/timer.h>
+-#include <linux/kernel.h>
+-#include <linux/fs.h>
+-#include <linux/platform_device.h>
+-#include <linux/interrupt.h>
+-#include <linux/clk.h>
+-#include <linux/delay.h>
+-#include <asm/uaccess.h>
+-#include <linux/errno.h> /* error codes */
+-#include <asm/div64.h>
+-#include <linux/mm.h>
+-#include <linux/tty.h>
+-#include <asm/io.h>
+-#include <asm/irq.h>
+-#include <asm/hardware.h>
+-#include <asm/uaccess.h>
+-#include <asm/arch/map.h>
+-
+-#include <linux/version.h>
+-#if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,16)
+-#include <linux/config.h>
+-#include <asm/arch/registers.h>
+-#include <linux/videodev2.h>
+-#else
+-#include <asm/arch/regs-tvenc.h>
+-#include <asm/arch/regs-lcd.h>
+-#include <media/v4l2-common.h>
+-#endif
+-
+-#include "s3c-tvenc.h"
+-
+-#define PFX "s3c_tvenc"
+-
+-static struct clk *tvenc_clock;
+-static struct clk *h_clk;
+-static int s3c_tvenc_irq = NO_IRQ;
+-static struct resource *s3c_tvenc_mem;
+-static void __iomem *base;
+-static wait_queue_head_t waitq;
+-static tv_out_params_t tv_param = {0,};
+-
+-/* Backup SFR value */
+-static u32 backup_reg[2];
+-
+-
+-/* Structure that declares the access functions*/
+-
+-static void s3c_tvenc_switch(tv_enc_switch_t sw)
+-{
+- if(sw == OFF) {
+- __raw_writel(__raw_readl(base + S3C_TVCTRL)
+- &~ S3C_TVCTRL_ON, base + S3C_TVCTRL);
+- } else if(sw == ON) {
+- __raw_writel(__raw_readl(base + S3C_TVCTRL)
+- | S3C_TVCTRL_ON, base + S3C_TVCTRL);
+- } else
+- printk("Error func:%s line:%d\n", __FUNCTION__, __LINE__);
+-}
+-
+-static void s3c_tvenc_set_image_size(u32 width, u32 height)
+-{
+- __raw_writel(IIS_WIDTH(width)| IIS_HEIGHT(height),
+- base + S3C_INIMAGESIZE);
+-}
+-
+-#if 0
+-static void s3c_tvenc_enable_macrovision(tv_standard_t tvmode, macro_pattern_t pattern)
+-{
+- switch(pattern) {
+- case AGC4L :
+- break;
+- case AGC2L :
+- break;
+- case N01 :
+- break;
+- case N02 :
+- break;
+- case P01 :
+- break;
+- case P02 :
+- break;
+- default :
+- break;
+- }
+-}
+-
+-static void s3c_tvenc_disable_macrovision(void)
+-{
+- __raw_writel(__raw_readl(base + S3C_MACROVISION0)
+- &~0xff, base + S3C_MACROVISION0);
+-}
+-#endif
+-
+-static void s3c_tvenc_set_tv_mode(tv_standard_t mode, tv_conn_type_t out)
+-{
+- u32 signal_type = 0, output_type = 0;
+-
+- switch(mode) {
+- case PAL_N :
+- __raw_writel(VBP_VEFBPD_PAL|VBP_VOFBPD_PAL,
+- base + S3C_VBPORCH);
+- __raw_writel(HBP_HSPW_PAL|HBP_HBPD_PAL,
+- base + S3C_HBPORCH);
+- __raw_writel(HEO_DTO_PAL|HEO_HEOV_PAL,
+- base + S3C_HENHOFFSET);
+- __raw_writel(EPC_PED_ON,
+- base + S3C_PEDCTRL);
+- __raw_writel(YFB_YBW_26|YFB_CBW_06,
+- base + S3C_YCFILTERBW);
+- __raw_writel(SSC_HSYNC_PAL,
+- base + S3C_SYNCSIZECTRL);
+- __raw_writel(BSC_BEND_PAL|BSC_BSTART_PAL,
+- base + S3C_BURSTCTRL);
+- __raw_writel(MBS_BSTART_PAL,
+- base + S3C_MACROBURSTCTRL);
+- __raw_writel(AVP_AVEND_PAL|AVP_AVSTART_PAL,
+- base + S3C_ACTVIDPOCTRL);
+- break;
+- case PAL_NC :
+- case PAL_BGHID :
+- __raw_writel(VBP_VEFBPD_PAL|VBP_VOFBPD_PAL,
+- base + S3C_VBPORCH);
+- __raw_writel(HBP_HSPW_PAL|HBP_HBPD_PAL,
+- base + S3C_HBPORCH);
+- __raw_writel(HEO_DTO_PAL|HEO_HEOV_PAL,
+- base + S3C_HENHOFFSET);
+- __raw_writel(EPC_PED_OFF,
+- base + S3C_PEDCTRL);
+- __raw_writel(YFB_YBW_26|YFB_CBW_06,
+- base + S3C_YCFILTERBW);
+- __raw_writel(SSC_HSYNC_PAL,
+- base + S3C_SYNCSIZECTRL);
+- __raw_writel(BSC_BEND_PAL|BSC_BSTART_PAL,
+- base + S3C_BURSTCTRL);
+- __raw_writel(MBS_BSTART_PAL,
+- base + S3C_MACROBURSTCTRL);
+- __raw_writel(AVP_AVEND_PAL|AVP_AVSTART_PAL,
+- base + S3C_ACTVIDPOCTRL);
+- break;
+- case NTSC_443 :
+- __raw_writel(VBP_VEFBPD_NTSC|VBP_VOFBPD_NTSC,
+- base + S3C_VBPORCH);
+- __raw_writel(HBP_HSPW_NTSC|HBP_HBPD_NTSC,
+- base + S3C_HBPORCH);
+- __raw_writel(HEO_DTO_NTSC|HEO_HEOV_NTSC,
+- base + S3C_HENHOFFSET);
+- __raw_writel(EPC_PED_ON,
+- base + S3C_PEDCTRL);
+- __raw_writel(YFB_YBW_26|YFB_CBW_06,
+- base + S3C_YCFILTERBW);
+- __raw_writel(SSC_HSYNC_NTSC,
+- base + S3C_SYNCSIZECTRL);
+- __raw_writel(BSC_BEND_NTSC|BSC_BSTART_NTSC,
+- base + S3C_BURSTCTRL);
+- __raw_writel(MBS_BSTART_NTSC,
+- base + S3C_MACROBURSTCTRL);
+- __raw_writel(AVP_AVEND_NTSC|AVP_AVSTART_NTSC,
+- base + S3C_ACTVIDPOCTRL);
+- break;
+- case NTSC_J :
+- __raw_writel(VBP_VEFBPD_NTSC|VBP_VOFBPD_NTSC,
+- base + S3C_VBPORCH);
+- __raw_writel(HBP_HSPW_NTSC|HBP_HBPD_NTSC,
+- base + S3C_HBPORCH);
+- __raw_writel(HEO_DTO_NTSC|HEO_HEOV_NTSC,
+- base + S3C_HENHOFFSET);
+- __raw_writel(EPC_PED_OFF,
+- base + S3C_PEDCTRL);
+- __raw_writel(YFB_YBW_21|YFB_CBW_06,
+- base + S3C_YCFILTERBW);
+- __raw_writel(SSC_HSYNC_NTSC,
+- base + S3C_SYNCSIZECTRL);
+- __raw_writel(BSC_BEND_NTSC|BSC_BSTART_NTSC,
+- base + S3C_BURSTCTRL);
+- __raw_writel(MBS_BSTART_NTSC,
+- base + S3C_MACROBURSTCTRL);
+- __raw_writel(AVP_AVEND_NTSC|AVP_AVSTART_NTSC,
+- base + S3C_ACTVIDPOCTRL);
+- break;
+- case PAL_M :
+- case NTSC_M :
+- default :
+- __raw_writel(VBP_VEFBPD_NTSC|VBP_VOFBPD_NTSC,
+- base + S3C_VBPORCH);
+- __raw_writel(HBP_HSPW_NTSC|HBP_HBPD_NTSC,
+- base + S3C_HBPORCH);
+- __raw_writel(HEO_DTO_NTSC|HEO_HEOV_NTSC,
+- base + S3C_HENHOFFSET);
+- __raw_writel(EPC_PED_ON,
+- base + S3C_PEDCTRL);
+- __raw_writel(YFB_YBW_21|YFB_CBW_06,
+- base + S3C_YCFILTERBW);
+- __raw_writel(SSC_HSYNC_NTSC,
+- base + S3C_SYNCSIZECTRL);
+- __raw_writel(BSC_BEND_NTSC|BSC_BSTART_NTSC,
+- base + S3C_BURSTCTRL);
+- __raw_writel(MBS_BSTART_NTSC,
+- base + S3C_MACROBURSTCTRL);
+- __raw_writel(AVP_AVEND_NTSC|AVP_AVSTART_NTSC,
+- base + S3C_ACTVIDPOCTRL);
+- break;
+- }
+-
+- if(out == S_VIDEO) {
+- __raw_writel(YFB_YBW_60|YFB_CBW_06,
+- base + S3C_YCFILTERBW);
+- output_type = S3C_TVCTRL_OUTTYPE_S;
+- } else
+- output_type = S3C_TVCTRL_OUTTYPE_C;
+-
+- switch(mode) {
+- case NTSC_M :
+- signal_type = S3C_TVCTRL_OUTFMT_NTSC_M;
+- break;
+- case NTSC_J :
+- signal_type = S3C_TVCTRL_OUTFMT_NTSC_J;
+- break;
+- case PAL_BGHID :
+- signal_type = S3C_TVCTRL_OUTFMT_PAL_BDG;
+- break;
+- case PAL_M :
+- signal_type = S3C_TVCTRL_OUTFMT_PAL_M;
+- break;
+- case PAL_NC :
+- signal_type = S3C_TVCTRL_OUTFMT_PAL_NC;
+- break;
+- default:
+- printk("s3c_tvenc_set_tv_mode : No matching signal_type!\n");
+- break;
+- }
+-
+- __raw_writel((__raw_readl(base + S3C_TVCTRL)
+- &~(0x1f<<4))| output_type | signal_type,
+- base + S3C_TVCTRL);
+-
+- __raw_writel(0x01, base + S3C_FSCAUXCTRL);
+-}
+-
+-#if 0
+-static void s3c_tvenc_set_pedestal(tv_enc_switch_t sw)
+-{
+- if(sw)
+- __raw_writel(EPC_PED_ON, base + S3C_PEDCTRL);
+- else
+- __raw_writel(EPC_PED_OFF, base + S3C_PEDCTRL);
+-}
+-
+-static void s3c_tvenc_set_sub_carrier_freq(u32 freq)
+-{
+- __raw_writel(FSC_CTRL(freq), base + S3C_FSCCTRL);
+-}
+-
+-static void s3c_tvenc_set_fsc_dto(u32 val)
+-{
+- unsigned int temp;
+-
+- temp = (0x1<<31)|(val&0x7fffffff);
+- __raw_writel(temp, base + S3C_FSCDTOMANCTRL);
+-}
+-
+-static void s3c_tvenc_disable_fsc_dto(void)
+-{
+- __raw_writel(__raw_readl(base + S3C_FSCDTOMANCTRL)&~(1<<31),
+- base + S3C_FSCDTOMANCTRL);
+-}
+-
+-static void s3c_tvenc_set_bg(u32 soft_mix, u32 color, u32 lum_offset)
+-{
+- unsigned int bg_color;
+- switch(color) {
+- case 0 :
+- bg_color = BGC_BGCS_BLACK;
+- break;
+- case 1 :
+- bg_color = BGC_BGCS_BLUE;
+- break;
+- case 2 :
+- bg_color = BGC_BGCS_RED;
+- break;
+- case 3 :
+- bg_color = BGC_BGCS_MAGENTA;
+- break;
+- case 4 :
+- bg_color = BGC_BGCS_GREEN;
+- break;
+- case 5 :
+- bg_color = BGC_BGCS_CYAN;
+- break;
+- case 6 :
+- bg_color = BGC_BGCS_YELLOW;
+- break;
+- case 7 :
+- bg_color = BGC_BGCS_WHITE;
+- break;
+- }
+- if(soft_mix)
+- __raw_writel(BGC_SME_ENA|bg_color|BGC_BGYOFS(lum_offset),
+- base + S3C_BGCTRL);
+- else
+- __raw_writel(BGC_SME_DIS|bg_color|BGC_BGYOFS(lum_offset),
+- base + S3C_BGCTRL);
+-
+-}
+-
+-static void s3c_tvenc_set_bg_vav_hav(u32 hav_len, u32 vav_len, u32 hav_st, u32 vav_st)
+-{
+- __raw_writel(BVH_BG_HL(hav_len)|BVH_BG_HS(hav_st)|BVH_BG_VL(vav_len)|BVH_BG_VS(vav_st),
+- base + S3C_BGHVAVCTRL);
+-}
+-#endif
+-
+-static void s3c_tvenc_set_hue_phase(u32 phase_val)
+-{
+- __raw_writel(HUE_CTRL(phase_val),
+- base + S3C_HUECTRL);
+-}
+-
+-#if 0
+-static u32 s3c_tvenc_get_hue_phase(void)
+-{
+- return __raw_readl(base + S3C_HUECTRL)&0xff;
+-}
+-#endif
+-
+-static void s3c_tvenc_set_contrast(u32 contrast)
+-{
+- u32 temp;
+-
+- temp = __raw_readl(base + S3C_CONTRABRIGHT);
+-
+- __raw_writel((temp &~0xff)|contrast,
+- base + S3C_CONTRABRIGHT);
+-}
+-
+-#if 0
+-static u32 s3c_tvenc_get_contrast(void)
+-{
+- return (__raw_readl(base + S3C_CONTRABRIGHT)&0xff);
+-}
+-#endif
+-
+-static void s3c_tvenc_set_bright(u32 bright)
+-{
+- u32 temp;
+-
+- temp = __raw_readl(base + S3C_CONTRABRIGHT);
+-
+- __raw_writel((temp &~(0xff<<16))| (bright<<16),
+- base + S3C_CONTRABRIGHT);
+-}
+-
+-#if 0
+-static u32 s3c_tvenc_get_bright(void)
+-{
+- return ((__raw_readl(base + S3C_CONTRABRIGHT)&(0xff<<16))>>16);
+-}
+-
+-
+-static void s3c_tvenc_set_cbgain(u32 cbgain)
+-{
+- u32 temp;
+-
+- temp = __raw_readl(base + S3C_CBCRGAINCTRL);
+-
+- __raw_writel((temp &~0xff)|cbgain,
+- base + S3C_CBCRGAINCTRL);
+-}
+-
+-
+-static u32 s3c_tvenc_get_cbgain(void)
+-{
+- return (__raw_readl(base + S3C_CBCRGAINCTRL)&0xff);
+-}
+-
+-static void s3c_tvenc_set_crgain(u32 crgain)
+-{
+- u32 temp;
+-
+- temp = __raw_readl(base + S3C_CBCRGAINCTRL);
+-
+- __raw_writel((temp &~(0xff<<16))| (crgain<<16),
+- base + S3C_CBCRGAINCTRL);
+-}
+-
+-static u32 s3c_tvenc_get_crgain(void)
+-{
+- return ((__raw_readl(base + S3C_CBCRGAINCTRL)&(0xff<<16))>>16);
+-}
+-#endif
+-
+-static void s3c_tvenc_enable_gamma_control(tv_enc_switch_t enable)
+-{
+- u32 temp;
+-
+- temp = __raw_readl(base + S3C_GAMMACTRL);
+- if(enable == ON)
+- temp |= (1<<12);
+- else
+- temp &= ~(1<<12);
+-
+- __raw_writel(temp, base + S3C_GAMMACTRL);
+-}
+-
+-static void s3c_tvenc_set_gamma_gain(u32 ggain)
+-{
+- u32 temp;
+-
+- temp = __raw_readl(base + S3C_GAMMACTRL);
+-
+- __raw_writel((temp &~(0x7<<8))| (ggain<<8),
+- base + S3C_GAMMACTRL);
+-}
+-
+-#if 0
+-static u32 s3c_tvenc_get_gamma_gain(void)
+-{
+- return ((__raw_readl(base + S3C_GAMMACTRL)&(0x7<<8))>>8);
+-}
+-
+-static void s3c_tvenc_enable_mute_control(tv_enc_switch_t enable)
+-{
+- u32 temp;
+-
+- temp = __raw_readl(base + S3C_GAMMACTRL);
+- if(enable == ON)
+- temp |= (1<<12);
+- else
+- temp &= ~(1<<12);
+-
+- __raw_writel(temp, base + S3C_GAMMACTRL);
+-}
+-
+-static void s3c_tvenc_set_mute(u32 y, u32 cb, u32 cr)
+-{
+- u32 temp;
+-
+- temp = __raw_readl(base + S3C_MUTECTRL);
+-
+- temp &=~(0xffffff<<8);
+- temp |= (cr & 0xff)<<24;
+- temp |= (cb & 0xff)<<16;
+- temp |= (y & 0xff)<<8;
+-
+- __raw_writel(temp, base + S3C_MUTECTRL);
+-}
+-
+-static void s3c_tvenc_get_mute(u32 *y, u32 *cb, u32 *cr)
+-{
+- u32 temp;
+-
+- temp = __raw_readl(base + S3C_MUTECTRL);
+-
+- *y = (temp&(0xff<<8))>>8;
+- *cb = (temp&(0xff<<16))>>16;
+- *cr = (temp&(0xff<<24))>>24;
+-}
+-#endif
+-
+-static void s3c_tvenc_get_active_win_center(u32 *vert, u32 *horz)
+-{
+- u32 temp;
+-
+- temp = __raw_readl(base + S3C_HENHOFFSET);
+-
+- *vert = (temp&(0x3f<<24))>>24;
+- *horz = (temp&(0xff<<16))>>16;
+-}
+-
+-static void s3c_tvenc_set_active_win_center(u32 vert, u32 horz)
+-{
+- u32 temp;
+-
+- temp = __raw_readl(base + S3C_HENHOFFSET);
+-
+- temp &=~(0x3ffff<<16);
+- temp |= (vert&0x3f)<<24;
+- temp |= (horz&0xff)<<16;
+-
+- __raw_writel(temp, base + S3C_HENHOFFSET);
+-}
+-
+-// LCD display controller configuration functions
+-static void s3c_lcd_set_output_path(lcd_local_output_t out)
+-{
+-#if 0 // peter for 2.6.21 kernel
+- s3c_fb_set_output_path(out);
+-#else // peter for 2.6.24 kernel
+- s3cfb_set_output_path(out);
+-#endif
+-}
+-
+-static void s3c_lcd_set_clkval(u32 clkval)
+-{
+-#if 0 // peter for 2.6.21 kernel
+- s3c_fb_set_clkval(clkval);
+-#else // peter for 2.6.24 kernel
+- s3cfb_set_clock(clkval);
+-#endif
+-}
+-
+-static void s3c_lcd_enable_rgbport(u32 on_off)
+-{
+-#if 0 // peter for 2.6.21 kernel
+- s3c_fb_enable_rgbport(on_off);
+-#else // peter for 2.6.24 kernel
+- s3cfb_enable_rgbport(on_off);
+-#endif
+-}
+-
+-static void s3c_lcd_start(void)
+-{
+-#if 0 // peter for 2.6.21 kernel
+- s3c_fb_start_lcd();
+-#else // peter for 2.6.24 kernel
+- s3cfb_start_lcd();
+-#endif
+-}
+-
+-static void s3c_lcd_stop(void)
+-{
+-#if 0 // peter for 2.6.21 kernel
+- s3c_fb_stop_lcd();
+-#else // peter for 2.6.24 kernel
+- s3cfb_stop_lcd();
+-#endif
+-}
+-
+-
+-static void s3c_lcd_set_config(void)
+-{
+- backup_reg[0] = __raw_readl(S3C_VIDCON0);
+- backup_reg[1] = __raw_readl(S3C_VIDCON2);
+-
+- s3c_lcd_set_output_path(LCD_TVRGB);
+- tv_param.lcd_output_mode = LCD_TVRGB;
+-
+- s3c_lcd_set_clkval(4);
+- s3c_lcd_enable_rgbport(1);
+-}
+-
+-static void s3c_lcd_exit_config(void)
+-{
+- __raw_writel(backup_reg[0], S3C_VIDCON0);
+- __raw_writel(backup_reg[1], S3C_VIDCON2);
+- tv_param.lcd_output_mode = LCD_RGB;
+-}
+-
+-static int scaler_test_start(void)
+-{
+- tv_param.sp.DstFullWidth = 640;
+- tv_param.sp.DstFullHeight= 480;
+- tv_param.sp.DstCSpace = RGB16;
+-
+- s3c_tvscaler_config(&tv_param.sp);
+-
+- s3c_tvscaler_int_enable(1);
+-
+- s3c_tvscaler_start();
+-
+- return 0;
+-}
+-
+-static int scaler_test_stop(void)
+-{
+- s3c_tvscaler_int_disable();
+-
+- return 0;
+-}
+-
+-
+-static int tvout_start(void)
+-{
+- u32 width, height;
+- tv_standard_t type;
+- tv_conn_type_t conn;
+-
+- tv_param.sp.DstFullWidth *= 2; // For TV OUT
+-
+- width = tv_param.sp.DstFullWidth;
+- height = tv_param.sp.DstFullHeight;
+- type = tv_param.sig_type;
+- conn = tv_param.connect;
+-
+- /* Set TV-SCALER parameter */
+- switch(tv_param.v2.input->type) {
+- case V4L2_INPUT_TYPE_FIFO: // LCD FIFO-OUT
+- tv_param.sp.Mode = FREE_RUN;
+- tv_param.sp.DstCSpace = YCBYCR;
+- /* Display controller setting */
+- s3c_lcd_stop();
+- s3c_lcd_set_config();
+- break;
+- case V4L2_INPUT_TYPE_MSDMA: // MSDMA
+- tv_param.sp.Mode = FREE_RUN;
+- tv_param.sp.DstCSpace = YCBYCR;
+- break;
+- default:
+- return -EINVAL;
+- }
+-
+- s3c_tvenc_set_tv_mode(type, conn);
+- s3c_tvenc_set_image_size(width, height);
+- s3c_tvenc_switch(ON);
+-
+- s3c_tvscaler_config(&tv_param.sp); // for setting DstStartX/Y, DstWidth/Height
+- s3c_tvscaler_set_interlace(1);
+- if(tv_param.v2.input->type == V4L2_INPUT_TYPE_FIFO)
+- s3c_tvscaler_int_disable();
+- else
+- s3c_tvscaler_int_enable(1);
+- s3c_tvscaler_start();
+-
+- if(tv_param.v2.input->type == V4L2_INPUT_TYPE_FIFO)
+- s3c_lcd_start();
+-
+- return 0;
+-}
+-
+-static int tvout_stop(void)
+-{
+-
+- s3c_tvscaler_set_interlace(0);
+- s3c_tvscaler_stop_freerun();
+- s3c_tvscaler_int_disable();
+- s3c_tvenc_switch(OFF);
+-
+- switch(tv_param.v2.input->type) {
+- case V4L2_INPUT_TYPE_FIFO: // LCD FIFO-OUT
+- /* Display controller setting */
+- s3c_lcd_stop();
+- s3c_lcd_exit_config();
+- s3c_lcd_start();
+- break;
+- default:
+- break;
+- }
+- return 0;
+-}
+-
+-/* ------------------------------------------ V4L2 SUPPORT ----------------------------------------------*/
+-/* ------------- In FIFO and MSDMA, v4l2_input supported by S3C TVENC controller ------------------*/
+-static struct v4l2_input tvenc_inputs[] = {
+- {
+- .index = 0,
+- .name = "LCD FIFO_OUT",
+- .type = V4L2_INPUT_TYPE_FIFO,
+- .audioset = 1,
+- .tuner = 0, /* ignored */
+- .std = 0,
+- .status = 0,
+- },
+- {
+- .index = 1,
+- .name = "Memory input (MSDMA)",
+- .type = V4L2_INPUT_TYPE_MSDMA,
+- .audioset = 2,
+- .tuner = 0,
+- .std = 0,
+- .status = 0,
+- }
+-};
+-
+-/* ------------ Out FIFO and MADMA, v4l2_output supported by S3C TVENC controller ----------------*/
+-static struct v4l2_output tvenc_outputs[] = {
+- {
+- .index = 0,
+- .name = "TV-OUT",
+- .type = V4L2_OUTPUT_TYPE_ANALOG,
+- .audioset = 0,
+- .modulator = 0,
+- .std = V4L2_STD_PAL | V4L2_STD_NTSC_M,
+- },
+- {
+- .index = 1,
+- .name = "Memory output (MSDMA)",
+- .type = V4L2_OUTPUT_TYPE_MSDMA,
+- .audioset = 0,
+- .modulator = 0,
+- .std = 0,
+- },
+-
+-};
+-
+-const struct v4l2_fmtdesc tvenc_input_formats[] = {
+- {
+- .index = 0,
+- .type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
+- .description = "16 bpp RGB, le",
+- .pixelformat = V4L2_PIX_FMT_RGB565,
+- .flags = FORMAT_FLAGS_PACKED,
+- },
+- {
+- .index = 1,
+- .type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
+- .flags = FORMAT_FLAGS_PACKED,
+- .description = "24 bpp RGB, le",
+- .pixelformat = V4L2_PIX_FMT_RGB24,
+- },
+- {
+- .index = 2,
+- .type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
+- .flags = FORMAT_FLAGS_PLANAR,
+- .description = "4:2:2, planar, Y-Cb-Cr",
+- .pixelformat = V4L2_PIX_FMT_YUV422P,
+-
+- },
+- {
+- .index = 3,
+- .type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
+- .flags = FORMAT_FLAGS_PLANAR,
+- .description = "4:2:0, planar, Y-Cb-Cr",
+- .pixelformat = V4L2_PIX_FMT_YUV420,
+- }
+-};
+-
+-
+-const struct v4l2_fmtdesc tvenc_output_formats[] = {
+- {
+- .index = 0,
+- .type = V4L2_BUF_TYPE_VIDEO_OUTPUT,
+- .description = "16 bpp RGB, le",
+- .pixelformat = V4L2_PIX_FMT_RGB565,
+- .flags = FORMAT_FLAGS_PACKED,
+- },
+- {
+- .index = 1,
+- .type = V4L2_BUF_TYPE_VIDEO_OUTPUT,
+- .flags = FORMAT_FLAGS_PACKED,
+- .description = "24 bpp RGB, le",
+- .pixelformat = V4L2_PIX_FMT_RGB24,
+- },
+- {
+- .index = 2,
+- .type = V4L2_BUF_TYPE_VIDEO_OUTPUT,
+- .flags = FORMAT_FLAGS_PLANAR,
+- .description = "4:2:2, planar, Y-Cb-Cr",
+- .pixelformat = V4L2_PIX_FMT_YUV422P,
+-
+- },
+- {
+- .index = 3,
+- .type = V4L2_BUF_TYPE_VIDEO_OUTPUT,
+- .flags = FORMAT_FLAGS_PLANAR,
+- .description = "4:2:0, planar, Y-Cb-Cr",
+- .pixelformat = V4L2_PIX_FMT_YUV420,
+- }
+-};
+-
+-const struct v4l2_standard tvout_standards[] = {
+- {
+- .index = 0,
+- .id = V4L2_STD_NTSC_M,
+- .name = "NTSC type",
+- },
+- {
+- .index = 1,
+- .id = V4L2_STD_PAL,
+- .name = "PAL type",
+- }
+-};
+-
+-#define NUMBER_OF_INPUT_FORMATS ARRAY_SIZE(tvenc_input_formats)
+-#define NUMBER_OF_OUTPUT_FORMATS ARRAY_SIZE(tvenc_output_formats)
+-#define NUMBER_OF_INPUTS ARRAY_SIZE(tvenc_inputs)
+-#define NUMBER_OF_OUTPUTS ARRAY_SIZE(tvenc_outputs)
+-#define NUMBER_OF_STANDARDS ARRAY_SIZE(tvout_standards)
+-
+-static int s3c_tvenc_g_fmt(struct v4l2_format *f)
+-{
+- int size = sizeof(struct v4l2_pix_format);
+-
+- memset(&f->fmt.pix, 0, size);
+- memcpy(&f->fmt.pix, &tv_param.v2.pixfmt, size);
+-
+- return 0;
+-}
+-
+-static int s3c_tvenc_s_fmt(struct v4l2_format *f)
+-{
+- /* update our state informations */
+- tv_param.v2.pixfmt= f->fmt.pix;
+-
+- // peter LCD output related operation
+- if (tv_param.v2.pixfmt.pixelformat == V4L2_PIX_FMT_RGB565 ) {
+-
+- tv_param.sp.SrcFullWidth = tv_param.v2.pixfmt.width;
+- tv_param.sp.SrcFullHeight = tv_param.v2.pixfmt.height;
+- tv_param.sp.SrcStartX = 0;
+- tv_param.sp.SrcStartY = 0;
+- tv_param.sp.SrcWidth = tv_param.sp.SrcFullWidth;
+- tv_param.sp.SrcHeight = tv_param.sp.SrcFullHeight;
+-
+- printk("TV-OUT: LCD path operation set\n");
+-
+- // peter for padded data of mfc output
+- } else if (tv_param.v2.pixfmt.pixelformat == V4L2_PIX_FMT_YUV420) {
+-
+-#ifdef DIVX_TEST // padded output
+- tv_param.sp.SrcFullWidth = tv_param.v2.pixfmt.width + 2*16;
+- tv_param.sp.SrcFullHeight = tv_param.v2.pixfmt.height + 2*16;
+- tv_param.sp.SrcStartX = 16;
+- tv_param.sp.SrcStartY = 16;
+- tv_param.sp.SrcWidth = tv_param.sp.SrcFullWidth - 2*tv_param.sp.SrcStartX;
+- tv_param.sp.SrcHeight = tv_param.sp.SrcFullHeight - 2*tv_param.sp.SrcStartY;
+-#else // not padded output
+- tv_param.sp.SrcFullWidth = tv_param.v2.pixfmt.width;
+- tv_param.sp.SrcFullHeight = tv_param.v2.pixfmt.height;
+- tv_param.sp.SrcStartX = 0;
+- tv_param.sp.SrcStartY = 0;
+- tv_param.sp.SrcWidth = tv_param.sp.SrcFullWidth;
+- tv_param.sp.SrcHeight = tv_param.sp.SrcFullHeight;
+-#endif
+-
+- printk("TV-OUT: MFC path operation set\n");
+-
+- }
+-
+- switch(tv_param.v2.pixfmt.pixelformat) {
+- case V4L2_PIX_FMT_RGB565:
+- tv_param.sp.SrcCSpace = RGB16;
+- break;
+- case V4L2_PIX_FMT_RGB24:
+- tv_param.sp.SrcCSpace = RGB24;
+- break;
+- case V4L2_PIX_FMT_YUV420:
+- tv_param.sp.SrcCSpace = YC420;
+- break;
+- case V4L2_PIX_FMT_YUV422P:
+- tv_param.sp.SrcCSpace = YC422;
+- break;
+- default:
+- return -EINVAL;
+- }
+-
+-// camif_convert_into_camif_cfg_t(cfg, 1);
+- return 0;
+-}
+-
+-static int s3c_tvenc_s_input(int index)
+-{
+-
+- tv_param.v2.input = &tvenc_inputs[index];
+- switch(tv_param.v2.input->type) {
+- case V4L2_INPUT_TYPE_FIFO: // LCD FIFO-OUT
+- tv_param.sp.InPath = POST_FIFO;
+- break;
+- case V4L2_INPUT_TYPE_MSDMA: // MSDMA
+- tv_param.sp.InPath = POST_DMA;
+- break;
+- default:
+- return -EINVAL;
+- }
+- return 0;
+-}
+-
+-static int s3c_tvenc_s_output(int index)
+-{
+- tv_param.v2.output = &tvenc_outputs[index];
+- switch(tv_param.v2.output->type) {
+- case V4L2_OUTPUT_TYPE_ANALOG: // TV-OUT (FIFO-OUT)
+- tv_param.sp.OutPath = POST_FIFO;
+- break;
+- case V4L2_OUTPUT_TYPE_MSDMA: // MSDMA
+- tv_param.sp.OutPath = POST_DMA;
+- break;
+- default:
+- return -EINVAL;
+- }
+- return 0;
+-}
+-
+-static int s3c_tvenc_s_std(v4l2_std_id *id)
+-{
+-// printk("s3c_tvenc_s_std: *id=0x%x",*id);
+- switch(*id) {
+- case V4L2_STD_NTSC_M:
+- tv_param.sig_type = NTSC_M;
+- tv_param.sp.DstFullWidth = 720;
+- tv_param.sp.DstFullHeight = 480;
+- break;
+- case V4L2_STD_PAL:
+- tv_param.sig_type = PAL_M;
+- tv_param.sp.DstFullWidth = 720;
+- tv_param.sp.DstFullHeight = 576;
+- break;
+- default:
+- return -EINVAL;
+- }
+- return 0;
+-}
+-
+-static int s3c_tvenc_v4l2_control(struct v4l2_control *ctrl)
+-{
+- switch(ctrl->id) {
+-
+- // peter added for MFC related op.
+- case V4L2_CID_MPEG_STREAM_PID_VIDEO:
+- {
+- tv_param.sp.SrcFrmSt = ctrl->value;
+- return 0;
+- }
+-
+- case V4L2_CID_CONNECT_TYPE:
+- {
+- if(ctrl->value == 0) { // COMPOSITE
+- tv_param.connect = COMPOSITE;
+- } else if(ctrl->value == 1) { //S-VIDEO
+- tv_param.connect = S_VIDEO;
+- } else {
+- return -EINVAL;
+- }
+- return 0;
+- }
+-
+- case V4L2_CID_BRIGHTNESS:
+- {
+- s32 val = ctrl->value;
+- if((val > 0xff)||(val < 0))
+- return -EINVAL;
+- else
+- s3c_tvenc_set_bright(val);
+-
+- return 0;
+- }
+-
+- case V4L2_CID_CONTRAST:
+- {
+- s32 val = ctrl->value;
+- if((val > 0xff)||(val < 0))
+- return -EINVAL;
+- else
+- s3c_tvenc_set_contrast(val);
+-
+- return 0;
+- }
+-
+- case V4L2_CID_GAMMA:
+- {
+- s32 val = ctrl->value;
+- if((val > 0x3)||(val < 0)) {
+- return -EINVAL;
+- } else {
+- s3c_tvenc_enable_gamma_control(ON);
+- s3c_tvenc_set_gamma_gain(val);
+- s3c_tvenc_enable_gamma_control(OFF);
+- }
+- return 0;
+- }
+-
+- case V4L2_CID_HUE:
+- {
+- s32 val = ctrl->value;
+- if((val > 0xff)||(val < 0))
+- return -EINVAL;
+- else
+- s3c_tvenc_set_hue_phase(val);
+-
+- return 0;
+- }
+-
+- case V4L2_CID_HCENTER:
+- {
+- s32 val = ctrl->value;
+- u32 curr_horz, curr_vert;
+-
+- if((val > 0xff)||(val < 0)) {
+- return -EINVAL;
+- } else {
+- s3c_tvenc_get_active_win_center(&curr_vert, &curr_horz);
+- s3c_tvenc_set_active_win_center(curr_vert, val);
+- }
+-
+- return 0;
+- }
+-
+- case V4L2_CID_VCENTER:
+- {
+- s32 val = ctrl->value;
+- u32 curr_horz, curr_vert;
+-
+- if((val > 0x3f)||(val < 0)) {
+- return -EINVAL;
+- } else {
+- s3c_tvenc_get_active_win_center(&curr_vert, &curr_horz);
+- s3c_tvenc_set_active_win_center(val, curr_horz);
+- }
+-
+- return 0;
+- }
+-
+- default:
+- return -EINVAL;
+- }
+- return 0;
+-}
+-
+-int s3c_tvenc_open(struct inode *inode, struct file *filp)
+-{
+- int err;
+-
+- err = video_exclusive_open(inode, filp); // One function of V4l2 driver
+-
+- if(err < 0)
+- return err;
+- filp->private_data = &tv_param;
+-
+- s3c_tvscaler_init();
+-
+- /* Success */
+- return 0;
+-}
+-
+-int s3c_tvenc_release(struct inode *inode, struct file *filp)
+-{
+- video_exclusive_release(inode, filp);
+-
+- /* Success */
+- return 0;
+-}
+-
+-static int s3c_tvenc_do_ioctl(struct inode *inode,struct file *filp,unsigned int cmd,void *arg)
+-{
+- int ret;
+-
+- switch(cmd){
+- case VIDIOC_QUERYCAP:
+- {
+- struct v4l2_capability *cap = arg;
+- strcpy(cap->driver, "S3C TV-OUT driver");
+- strlcpy(cap->card, tv_param.v->name, sizeof(cap->card));
+- sprintf(cap->bus_info, "ARM AHB BUS");
+- cap->version = 0;
+- cap->capabilities = tv_param.v->type2;
+- return 0;
+- }
+-
+- case VIDIOC_OVERLAY:
+- {
+- int on = *(int *)arg;
+-
+- printk("TV-OUT: VIDIOC_OVERLAY on:%d\n", on);
+- if (on != 0) {
+- ret = tvout_start();
+- } else {
+- ret = tvout_stop();
+- }
+- return ret;
+- }
+-
+- case VIDIOC_ENUMINPUT:
+- {
+- struct v4l2_input *i = arg;
+- printk("TV-OUT: VIDIOC_ENUMINPUT : index = %d\n", i->index);
+-
+- if ((i->index) >= NUMBER_OF_INPUTS) {
+- return -EINVAL;
+- }
+- memcpy(i, &tvenc_inputs[i->index], sizeof(struct v4l2_input));
+- return 0;
+- }
+-
+- case VIDIOC_S_INPUT: // 0 -> LCD FIFO-OUT, 1 -> MSDMA
+- {
+- int index = *((int *)arg);
+- printk("TV-OUT: VIDIOC_S_INPUT \n");
+-
+- if (index >= NUMBER_OF_INPUTS) {
+- return -EINVAL;
+- }
+- else {
+- s3c_tvenc_s_input(index);
+- return 0;
+- }
+- }
+-
+- case VIDIOC_G_INPUT:
+- {
+- u32 *i = arg;
+- printk("TV-OUT: VIDIOC_G_INPUT \n");
+- *i = tv_param.v2.input->type;
+- return 0;
+- }
+-
+- case VIDIOC_ENUMOUTPUT:
+- {
+- struct v4l2_output *i = arg;
+- printk("TV-OUT: VIDIOC_ENUMOUTPUT : index = %d\n", i->index);
+-
+- if ((i->index) >= NUMBER_OF_OUTPUTS) {
+- return -EINVAL;
+- }
+- memcpy(i, &tvenc_outputs[i->index], sizeof(struct v4l2_output));
+- return 0;
+- }
+-
+- case VIDIOC_S_OUTPUT: // 0 -> TV / FIFO , 1 -> MSDMA
+- {
+- int index = *((int *)arg);
+- printk("TV-OUT: VIDIOC_S_OUTPUT \n");
+-
+- if (index >= NUMBER_OF_OUTPUTS) {
+- return -EINVAL;
+- }
+- else {
+- s3c_tvenc_s_output(index);
+- return 0;
+- }
+- }
+-
+- case VIDIOC_G_OUTPUT:
+- {
+- u32 *i = arg;
+- printk("VIDIOC_G_OUTPUT \n");
+- *i = tv_param.v2.output->type;
+- return 0;
+- }
+-
+- case VIDIOC_ENUM_FMT:
+- { struct v4l2_fmtdesc *f = arg;
+- enum v4l2_buf_type type = f->type;
+- int index = f->index;
+-
+- printk("C: VIDIOC_ENUM_FMT : index = %d\n", index);
+- if (index >= NUMBER_OF_INPUT_FORMATS)
+- return -EINVAL;
+-
+- switch (type) {
+- case V4L2_BUF_TYPE_VIDEO_CAPTURE:
+- break;
+- case V4L2_BUF_TYPE_VIDEO_OUTPUT:
+- default:
+- return -EINVAL;
+- }
+- memset(f, 0, sizeof(*f));
+- memcpy(f, tv_param.v2.fmtdesc+index, sizeof(*f));
+- return 0;
+- }
+-
+- case VIDIOC_G_FMT:
+- {
+- struct v4l2_format *f = arg;
+- printk("C: VIDIOC_G_FMT \n");
+- ret = s3c_tvenc_g_fmt(f);
+- return ret;
+- }
+-
+- case VIDIOC_S_FMT:
+- {
+- struct v4l2_format *f = arg;
+- printk("C: VIDIOC_S_FMT \n");
+- ret = s3c_tvenc_s_fmt(f);
+- if(ret != 0) {
+- printk("s3c_tvenc_set_fmt() failed !\n");
+- return -EINVAL;
+- }
+- return ret;
+- }
+-
+- case VIDIOC_S_CTRL:
+- {
+- struct v4l2_control *ctrl = arg;
+- //printk("P: VIDIOC_S_CTRL \n");
+- ret = s3c_tvenc_v4l2_control(ctrl);
+- return ret;
+- }
+-
+- case VIDIOC_ENUMSTD:
+- {
+- struct v4l2_standard *e = arg;
+- unsigned int index = e->index;
+-
+- if (index >= NUMBER_OF_STANDARDS)
+- return -EINVAL;
+- v4l2_video_std_construct(e, tvout_standards[e->index].id,
+- &tvout_standards[e->index].name);
+- e->index = index;
+- return 0;
+- }
+-
+- case VIDIOC_G_STD:
+- {
+- v4l2_std_id *id = arg;
+- *id = tvout_standards[0].id;
+- return 0;
+- }
+-
+- case VIDIOC_S_STD:
+- {
+- v4l2_std_id *id = arg;
+- unsigned int i;
+-
+- for (i = 0; i < NUMBER_OF_STANDARDS; i++) {
+- //printk("P: *id = %d, tvout_standards[i].id = %d\n", *id, tvout_standards[i].id);
+- if (*id & tvout_standards[i].id)
+- break;
+- }
+- if (i == NUMBER_OF_STANDARDS)
+- return -EINVAL;
+-
+- ret = s3c_tvenc_s_std(id);
+- return ret;
+- }
+-
+- case VIDIOC_S_TVOUT_ON:
+- {
+- //int *SrcFrmSt = arg;
+- //printk("---peter VIDIOC_S_TVOUT_ON : SrcFrmSt = 0x%08x\n", *SrcFrmSt);
+- ret = tvout_start();
+- return ret;
+- }
+-
+- case VIDIOC_S_TVOUT_OFF:
+- {
+- ret = tvout_stop();
+- return ret;
+- }
+-
+- case VIDIOC_S_SCALER_TEST:
+- {
+- ret = scaler_test_start();
+- mdelay(1);
+- ret = scaler_test_stop();
+- return ret;
+- }
+-
+- default:
+- return -EINVAL;
+- }
+- return 0;
+-}
+-
+-static int s3c_tvenc_ioctl_v4l2(struct inode *inode, struct file *filp, unsigned int cmd,
+- unsigned long arg)
+-{
+- return video_usercopy(inode, filp, cmd, arg, s3c_tvenc_do_ioctl);
+-}
+-
+-int s3c_tvenc_read(struct file *filp, char *buf, size_t count,
+- loff_t *f_pos)
+-{
+- return 0;
+-}
+-
+-int s3c_tvenc_write(struct file *filp, const char *buf, size_t
+- count, loff_t *f_pos)
+-{
+- return 0;
+-}
+-
+-int s3c_tvenc_mmap(struct file *filp, struct vm_area_struct *vma)
+-{
+- u32 size = vma->vm_end - vma->vm_start;
+- u32 max_size;
+- u32 page_frame_no;
+-
+- page_frame_no = __phys_to_pfn(POST_BUFF_BASE_ADDR);
+-
+- max_size = RESERVE_POST_MEM + PAGE_SIZE - (RESERVE_POST_MEM % PAGE_SIZE);
+-
+- if(size > max_size) {
+- return -EINVAL;
+- }
+-
+- vma->vm_flags |= VM_RESERVED;
+-
+- if( remap_pfn_range(vma, vma->vm_start, page_frame_no,
+- size, vma->vm_page_prot)) {
+- printk(KERN_ERR "%s: mmap_error\n", __FUNCTION__);
+- return -EAGAIN;
+-
+- }
+-
+- return 0;
+-}
+-
+-struct file_operations s3c_tvenc_fops = {
+- .owner = THIS_MODULE,
+- .open = s3c_tvenc_open,
+- .ioctl = s3c_tvenc_ioctl_v4l2,
+- .release = s3c_tvenc_release,
+- .read = s3c_tvenc_read,
+- .write = s3c_tvenc_write,
+- .mmap = s3c_tvenc_mmap,
+-};
+-
+-void s3c_tvenc_vdev_release (struct video_device *vdev) {
+- kfree(vdev);
+-}
+-
+-struct video_device tvencoder = {
+- .name = "TVENCODER",
+- .type = VID_TYPE_OVERLAY | VID_TYPE_CAPTURE | VID_TYPE_SCALES,
+- .type2 = V4L2_CAP_VIDEO_OUTPUT| V4L2_CAP_VIDEO_CAPTURE, /* V4L2 */
+- //.hardware = 0x01, // peter for 2.6.24 kernel
+- .fops = &s3c_tvenc_fops,
+- .release = s3c_tvenc_vdev_release,
+- .minor = TVENC_MINOR,
+-};
+-
+-irqreturn_t s3c_tvenc_isr(int irq, void *dev_id,
+- struct pt_regs *regs)
+-{
+- u32 mode;
+-
+- mode = __raw_readl(base + S3C_TVCTRL);
+-
+- // Clear FIFO under-run status pending bit
+- mode |= (1<<12);
+-
+- __raw_writel(mode, base + S3C_TVCTRL);
+-
+- wake_up_interruptible(&waitq);
+- return IRQ_HANDLED;
+-}
+-
+-static int s3c_tvenc_probe(struct platform_device *pdev)
+-{
+-
+- struct resource *res;
+-
+- int ret;
+-
+- /* find the IRQs */
+- s3c_tvenc_irq = platform_get_irq(pdev, 0);
+- if(s3c_tvenc_irq <= 0) {
+- printk(KERN_ERR PFX "failed to get irq resouce\n");
+- return -ENOENT;
+- }
+-
+- /* get the memory region for the tv scaler driver */
+-
+- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+- if(res == NULL) {
+- printk(KERN_ERR PFX "failed to get memory region resouce\n");
+- return -ENOENT;
+- }
+-
+- s3c_tvenc_mem = request_mem_region(res->start, res->end-res->start+1, pdev->name);
+- if(s3c_tvenc_mem == NULL) {
+- printk(KERN_ERR PFX "failed to reserve memory region\n");
+- return -ENOENT;
+- }
+-
+-
+- base = ioremap(s3c_tvenc_mem->start, s3c_tvenc_mem->end - res->start + 1);
+- if(s3c_tvenc_mem == NULL) {
+- printk(KERN_ERR PFX "failed ioremap\n");
+- return -ENOENT;
+- }
+-
+- tvenc_clock = clk_get(&pdev->dev, "tv_encoder");
+- if(tvenc_clock == NULL) {
+- printk(KERN_ERR PFX "failed to find tvenc clock source\n");
+- return -ENOENT;
+- }
+-
+- clk_enable(tvenc_clock);
+-
+- h_clk = clk_get(&pdev->dev, "hclk");
+- if(h_clk == NULL) {
+- printk(KERN_ERR PFX "failed to find h_clk clock source\n");
+- return -ENOENT;
+- }
+-
+- init_waitqueue_head(&waitq);
+-
+- tv_param.v = video_device_alloc();
+- if(!tv_param.v) {
+- printk(KERN_ERR "s3c-tvenc: video_device_alloc() failed\n");
+- return -ENOMEM;
+- }
+- memcpy(tv_param.v, &tvencoder, sizeof(tvencoder));
+- if(video_register_device(tv_param.v, VFL_TYPE_GRABBER, TVENC_MINOR) != 0) {
+- printk("s3c_camera_driver.c : Couldn't register this codec driver.\n");
+- return 0;
+- }
+-
+- ret = request_irq(s3c_tvenc_irq, s3c_tvenc_isr, SA_INTERRUPT,
+- "TV_ENCODER", NULL);
+- if (ret) {
+- printk("request_irq(TV_ENCODER) failed.\n");
+- return ret;
+- }
+-
+- printk(" Success\n");
+- return 0;
+-}
+-
+-static int s3c_tvenc_remove(struct platform_device *dev)
+-{
+- printk(KERN_INFO "s3c_tvenc_remove called !\n");
+- clk_disable(tvenc_clock);
+- free_irq(s3c_tvenc_irq, NULL);
+- if (s3c_tvenc_mem != NULL) {
+- pr_debug("s3-tvenc: releasing s3c_tvenc_mem\n");
+- iounmap(base);
+- release_resource(s3c_tvenc_mem);
+- kfree(s3c_tvenc_mem);
+- }
+-// video_unregister_device(tv_param.v);
+- return 0;
+-}
+-
+-static int s3c_tvenc_suspend(struct platform_device *dev, pm_message_t state)
+-{
+- clk_disable(tvenc_clock);
+- return 0;
+-}
+-
+-static int s3c_tvenc_resume(struct platform_device *pdev)
+-{
+- clk_enable(tvenc_clock);
+- return 0;
+-}
+-
+-static struct platform_driver s3c_tvenc_driver = {
+- .probe = s3c_tvenc_probe,
+- .remove = s3c_tvenc_remove,
+- .suspend = s3c_tvenc_suspend,
+- .resume = s3c_tvenc_resume,
+- .driver = {
+- .owner = THIS_MODULE,
+- .name = "s3c-tvenc",
+- },
+-};
+-
+-static char banner[] __initdata = KERN_INFO "S3C6410 TV encoder Driver, (c) 2008 Samsung Electronics\n";
+-
+-static int __init s3c_tvenc_init(void)
+-{
+-
+- printk(banner);
+-
+- if(platform_driver_register(&s3c_tvenc_driver) != 0)
+- {
+- printk("Platform Device Register Failed \n");
+- return -1;
+- }
+-
+- printk(" S3C6410 TV encoder Driver module init OK. \n");
+- return 0;
+-}
+-
+-static void __exit s3c_tvenc_exit(void)
+-{
+-
+- video_unregister_device(tv_param.v);
+- platform_driver_unregister(&s3c_tvenc_driver);
+-
+- printk("S3C6410 TV encoder Driver module exit. \n");
+-}
+-
+-
+-module_init(s3c_tvenc_init);
+-module_exit(s3c_tvenc_exit);
+-
+-
+-MODULE_AUTHOR("Peter, Oh");
+-MODULE_DESCRIPTION("S3C TV Encoder Device Driver");
+-MODULE_LICENSE("GPL");
+diff --git a/drivers/media/video/samsung/s3c-tvenc.h b/drivers/media/video/samsung/s3c-tvenc.h
+deleted file mode 100644
+index 30a66a2..0000000
+--- a/drivers/media/video/samsung/s3c-tvenc.h
++++ /dev/null
+@@ -1,165 +0,0 @@
+-#ifndef __S3CTVENC_H_
+-#define __S3CTVENC_H_
+-
+-#include "s3c-tvscaler.h"
+-
+-
+-#define TVENC_IOCTL_MAGIC 'T'
+-
+-typedef struct {
+-
+-} s3c_tvenc_info;
+-
+-#define TV_ON _IO(TVENC_IOCTL_MAGIC, 0)
+-#define TV_OFF _IO(TVENC_IOCTL_MAGIC, 1)
+-#define SELECT_TV_OUT_FORMAT _IO(TVENC_IOCTL_MAGIC, 2)
+-
+-#define TVENC_IOCTL_MAXNR 6
+-
+-#define TVENC_MINOR 14 // Just some number
+-
+-typedef enum {
+- OFF,
+- ON
+-} tv_enc_switch_t;
+-
+-typedef enum {
+- NTSC_M,
+- PAL_M,
+- PAL_BGHID,
+- PAL_N,
+- PAL_NC,
+- PAL_60,
+- NTSC_443,
+- NTSC_J
+-} tv_standard_t;
+-
+-typedef enum {
+- QCIF, CIF/*352x288*/,
+- QQVGA, QVGA, VGA, SVGA/*800x600*/, SXGA/*1280x1024*/, UXGA/*1600x1200*/, QXGA/*2048x1536*/,
+- WVGA/*854x480*/, HD720/*1280x720*/, HD1080/*1920x1080*/
+-} img_size_t;
+-
+-typedef enum {
+- BLACKSTRETCH, WHITESTRETCH, BLUESTRETCH
+-} stretch_color_t;
+-
+-typedef enum {
+- COMPOSITE, S_VIDEO
+-} tv_conn_type_t;
+-
+-typedef enum {
+- BLACK, BLUE, RED, MAGENTA, GREEN, CYAN, YELLOW, WHITE
+-} bg_color_t;
+-
+-typedef enum {
+- MUTE_Y, MUTE_CB, MUTE_CR
+-} mute_type_t;
+-
+-typedef enum {
+- AGC4L, AGC2L, N01, N02, P01, P02
+-} macro_pattern_t;
+-
+-typedef enum {
+- LCD_RGB, LCD_TV, LCD_I80F, LCD_I80S,
+- LCD_TVRGB, LCD_TVI80F, LCD_TVI80S
+-} lcd_local_output_t;
+-
+-/* when App want to change v4l2 parameter,
+- * we instantly store it into v4l2_t v2
+- * and then reflect it to hardware
+- */
+-typedef struct v4l2 {
+- struct v4l2_fmtdesc *fmtdesc;
+-// struct v4l2_framebuffer frmbuf; /* current frame buffer */
+- struct v4l2_pix_format pixfmt;
+- struct v4l2_input *input;
+- struct v4l2_output *output;
+-// enum v4l2_status status;
+-} v4l2_t;
+-
+-
+-typedef struct {
+- tv_standard_t sig_type;
+- tv_conn_type_t connect;
+- /* Width of input image. The input value is twice original output image
+- * width. For example, you must set 1440 when the image width is 720.
+- * Max value is 1440
+- */
+- unsigned int in_width;
+- /* Height of input image
+- * Max value is 576
+- */
+- unsigned int in_height;
+-
+- // Setting value of VIDOUT[28:26] in Display
+- // controller(VIDCON0)
+- lcd_local_output_t lcd_output_mode;
+- // Set CLKVAL_F[13:6] of VIDCON0 with
+- // this value
+- unsigned int lcd_clkval_f;
+-
+- // Flag of lcd rgb port
+- // 0 : disable, 1 : enable
+- unsigned int lcd_rgb_port_flag;
+-
+- scaler_params_t sp;
+-
+- struct video_device *v;
+- v4l2_t v2;
+-
+-} tv_out_params_t;
+-
+-#define V4L2_INPUT_TYPE_MSDMA 3
+-#define V4L2_INPUT_TYPE_FIFO 4
+-#define V4L2_OUTPUT_TYPE_MSDMA 4
+-
+-#define FORMAT_FLAGS_DITHER 0x01
+-#define FORMAT_FLAGS_PACKED 0x02
+-#define FORMAT_FLAGS_PLANAR 0x04
+-#define FORMAT_FLAGS_RAW 0x08
+-#define FORMAT_FLAGS_CrCb 0x10
+-
+-/****************************************************************
+-* struct v4l2_control
+-* Control IDs defined by S3C
+-*****************************************************************/
+-
+-/* TV-OUT connector type */
+-#define V4L2_CID_CONNECT_TYPE (V4L2_CID_PRIVATE_BASE+0)
+-
+-/****************************************************************
+-* I O C T L C O D E S F O R V I D E O D E V I C E S
+-* It's only for S3C
+-*****************************************************************/
+-#define VIDIOC_S_TVOUT_ON _IO ('V', BASE_VIDIOC_PRIVATE+0)
+-#define VIDIOC_S_TVOUT_OFF _IO ('V', BASE_VIDIOC_PRIVATE+1)
+-#define VIDIOC_S_SCALER_TEST _IO ('V', BASE_VIDIOC_PRIVATE+3)
+-
+-
+-extern void s3c_tvscaler_config(scaler_params_t * sp);
+-extern void s3c_tvscaler_int_enable(unsigned int int_type);
+-extern void s3c_tvscaler_int_disable(void);
+-extern void s3c_tvscaler_start(void);
+-extern void s3c_tvscaler_stop_freerun(void);
+-extern void s3c_tvscaler_init(void);
+-extern void s3c_tvscaler_set_interlace(unsigned int on_off);
+-extern int video_exclusive_release(struct inode * inode, struct file * file);
+-extern int video_exclusive_open(struct inode * inode, struct file * file);
+-
+-#if 0 // peter for 2.6.21 kernel
+-extern void s3c_fb_start_lcd(void);
+-extern void s3c_fb_stop_lcd(void);
+-extern void s3c_fb_set_output_path(int out);
+-extern void s3c_fb_set_clkval(unsigned int clkval);
+-extern void s3c_fb_enable_rgbport(unsigned int on_off);
+-#else // peter for 2.6.24 kernel
+-extern void s3cfb_start_lcd(void);
+-extern void s3cfb_stop_lcd(void);
+-extern void s3cfb_set_output_path(int out);
+-extern void s3cfb_set_clock(unsigned int clkval);
+-extern void s3cfb_enable_rgbport(unsigned int on_off);
+-#endif
+-
+-
+-#endif // __S3CTVENC_H_
+diff --git a/drivers/media/video/samsung/s3c-tvscaler.c b/drivers/media/video/samsung/s3c-tvscaler.c
+deleted file mode 100644
+index 376c866..0000000
+--- a/drivers/media/video/samsung/s3c-tvscaler.c
++++ /dev/null
+@@ -1,802 +0,0 @@
+-
+-/*
+- * linux/drivers/tvenc/s3c-tvscaler.c
+- *
+- * Revision 1.0
+- *
+- *
+- * This file is subject to the terms and conditions of the GNU General Public
+- * License. See the file COPYING in the main directory of this archive for
+- * more details.
+- *
+- * S3C TV Scaler driver
+- *
+- */
+-
+-#include <linux/init.h>
+-#include <linux/module.h>
+-#include <linux/moduleparam.h>
+-#include <linux/types.h>
+-#include <linux/timer.h>
+-#include <linux/kernel.h>
+-#include <linux/fs.h>
+-#include <linux/platform_device.h>
+-#include <linux/interrupt.h>
+-#include <linux/clk.h>
+-#include <linux/delay.h>
+-#include <asm/uaccess.h>
+-#include <linux/errno.h> /* error codes */
+-#include <asm/div64.h>
+-#include <linux/mm.h>
+-#include <linux/tty.h>
+-#include <asm/io.h>
+-#include <asm/irq.h>
+-#include <asm/hardware.h>
+-#include <asm/uaccess.h>
+-#include <asm/arch/map.h>
+-#include <linux/miscdevice.h>
+-
+-#include <linux/version.h>
+-#if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,16)
+-#include <linux/config.h>
+-#include <asm/arch/registers.h>
+-#else
+-#include <asm/arch/regs-tvscaler.h>
+-#include <asm/arch/regs-s3c6400-clock.h>
+-#endif
+-
+-#include "s3c-tvscaler.h"
+-
+-#define PFX "s3c_tv_scaler"
+-
+-#define SINGLE_BUF 1 // Single buffer mode
+-
+-
+-static struct clk *h_clk;
+-static struct clk *tvscaler_clock;
+-static void __iomem *base;
+-static int s3c_tvscaler_irq = NO_IRQ;
+-static struct resource *s3c_tvscaler_mem;
+-
+-
+-//static unsigned char *addr_start_y;
+-//static unsigned char *addr_start_rgb;
+-
+-static wait_queue_head_t waitq;
+-
+-irqreturn_t s3c_tvscaler_isr(int irq, void *dev_id,
+- struct pt_regs *regs)
+-{
+- u32 mode;
+- mode = __raw_readl(base + S3C_MODE);
+- mode &= ~(1 << 6); /* Clear Source in POST Processor */
+- __raw_writel(mode, base + S3C_MODE);
+-
+-// wake_up_interruptible(&waitq);
+- return IRQ_HANDLED;
+-}
+-
+-#if 0
+-static buff_addr_t buf_addr = { NULL };
+-
+-
+-static u32 post_alloc_pre_buff(scaler_params_t *sp)
+-{
+- u32 size;
+-
+-#ifdef USE_DEDICATED_MEM
+-
+- buf_addr.pre_phy_addr = PHYS_OFFSET + (SYSTEM_RAM - RESERVE_POST_MEM);
+- buf_addr.pre_virt_addr = ioremap_nocache(buf_addr.pre_phy_addr, PRE_BUFF_SIZE);
+- if( !buf_addr.pre_virt_addr ) {
+- printk(KERN_ERR "%s: Failed to allocate pre buffer \n",__FUNCTION__);
+- return -ENOMEM;
+- }
+-
+- sp->SrcFrmSt = buf_addr.pre_phy_addr;
+-#else
+- size = sp->SrcWidth * sp->SrcHeight * 2;
+- addr_start_y = kmalloc(size, GFP_DMA);
+- if(addr_start_y != NULL) return -ENOMEM;
+-#endif
+- return 0;
+-}
+-
+-static u32 post_alloc_post_buff(scaler_params_t *sp)
+-{
+- u32 size;
+-
+-#ifdef USE_DEDICATED_MEM
+-
+- buf_addr.post_phy_addr = PHYS_OFFSET + (SYSTEM_RAM - RESERVE_POST_MEM + PRE_BUFF_SIZE);
+- buf_addr.post_virt_addr = ioremap_nocache(buf_addr.post_phy_addr, POST_BUFF_SIZE);
+- if( !buf_addr.post_virt_addr ) {
+- printk(KERN_ERR "%s: Failed to allocate post buffer \n",__FUNCTION__);
+- return -ENOMEM;
+- }
+-
+- sp->DstFrmSt = buf_addr.post_phy_addr;
+-#else
+- size = sp->DstWidth * sp->DstHeight * 2;
+- addr_start_rgb = kmalloc(size, GFP_DMA);
+- if(addr_start_rgb != NULL) return -ENOMEM;
+-#endif
+- return 0;
+-}
+-
+-static u32 post_free_all_buffer(void)
+-{
+-#ifdef USE_DEDICATED_MEM
+- if( buf_addr.pre_virt_addr ) {
+- iounmap(buf_addr.pre_virt_addr);
+- }
+- if( buf_addr.post_virt_addr ) {
+- iounmap(buf_addr.post_virt_addr);
+- }
+-#endif
+- return 0;
+-}
+-#endif
+-
+-static void s3c_tvscaler_set_clk_src(scaler_clk_src_t clk_src)
+-{
+- u32 tmp, rate;
+-
+- tmp = __raw_readl(base + S3C_MODE);
+-
+- h_clk = clk_get(NULL, "hclk");
+-
+- rate = clk_get_rate(h_clk);
+-
+- if(clk_src == HCLK) {
+- if(rate > 66000000) {
+- tmp &= ~(0x7f<<23);
+- tmp |= (1<<24);
+- tmp |= (1<<23);
+- } else {
+- tmp &=~ (0x7f<<23);
+- }
+-
+- } else if(clk_src == PLL_EXT) {
+- } else {
+- tmp &=~(0x7f<<23);
+- }
+-
+- tmp = (tmp &~ (0x3<<21)) | (clk_src<<21);
+-
+- __raw_writel(tmp, base + S3C_MODE);
+-}
+-
+-static void s3c_tvscaler_set_fmt(cspace_t src, cspace_t dst, s3c_scaler_path_t in,
+- s3c_scaler_path_t out, u32 *in_pixel_size,
+- u32 *out_pixel_size)
+-{
+- u32 tmp;
+-
+- tmp = __raw_readl(base + S3C_MODE);
+- tmp |= (0x1<<16);
+- tmp |= (0x2<<10);
+-
+- if(in == POST_DMA) {
+-
+- switch(src) {
+- case YC420:
+- tmp &=~((0x1<<3)|(0x1<<2));
+- tmp |= (0x1<<8)|(0x1<<1);
+- *in_pixel_size = 1;
+- break;
+- case CRYCBY:
+- tmp &= ~((0x1<<15)|(0x1<<8)|(0x1<<3)|(0x1<<0));
+- tmp |= (0x1<<2)|(0x1<<1);
+- *in_pixel_size = 2;
+- break;
+- case CBYCRY:
+- tmp &= ~((0x1<<8)|(0x1<<3)|(0x1<<0));
+- tmp |= (0x1<<15)|(0x1<<2)|(0x1<<1);
+- *in_pixel_size = 2;
+- break;
+- case YCRYCB:
+- tmp &= ~((0x1<<15)|(0x1<<8)|(0x1<<3));
+- tmp |= (0x1<<2)|(0x1<<1)|(0x1<<0);
+- *in_pixel_size = 2;
+- break;
+- case YCBYCR:
+- tmp &= ~((0x1<<8)|(0x1<<3));
+- tmp |= (0x1<<15)|(0x1<<2)|(0x1<<1)|(0x1<<0);
+- *in_pixel_size = 2;
+- break;
+- case RGB24:
+- tmp &= ~(0x1<<8);
+- tmp |= (0x1<<3)|(0x1<<2)|(0x1<<1);
+- *in_pixel_size = 4;
+- break;
+- case RGB16:
+- tmp &= ~((0x1<<8)|(0x1<<1));
+- tmp |= (0x1<<3)|(0x1<<2);
+- *in_pixel_size = 2;
+- break;
+- default:
+- break;
+- }
+-
+- }
+- else if(in == POST_FIFO) {
+- }
+-
+- if(out == POST_DMA) {
+- switch(dst) {
+- case YC420:
+- tmp &= ~(0x1<<18);
+- tmp |= (0x1<<17);
+- *out_pixel_size = 1;
+- break;
+- case CRYCBY:
+- tmp &= ~((0x1<<20)|(0x1<<19)|(0x1<<18)|(0x1<<17));
+- *out_pixel_size = 2;
+- break;
+- case CBYCRY:
+- tmp &= ~((0x1<<19)|(0x1<<18)|(0x1<<17));
+- tmp |= (0x1<<20);
+- *out_pixel_size = 2;
+- break;
+- case YCRYCB:
+- tmp &= ~((0x1<<20)|(0x1<<18)|(0x1<<17));
+- tmp |= (0x1<<19);
+- *out_pixel_size = 2;
+- break;
+- case YCBYCR:
+- tmp &= ~((0x1<<18)|(0x1<<17));
+- tmp |= (0x1<<20)|(0x1<<19);
+- *out_pixel_size = 2;
+- break;
+- case RGB24:
+- tmp |= (0x1<<18)|(0x1<<4);
+- *out_pixel_size = 4;
+- break;
+- case RGB16:
+- tmp &= ~(0x1<<4);
+- tmp |= (0x1<<18);
+- *out_pixel_size = 2;
+- break;
+- default:
+- break;
+- }
+- }
+- else if(out == POST_FIFO) {
+- if(dst == RGB24) {
+- tmp |= (0x1<<18)|(0x1<<13);
+-
+- } else if(dst == YCBYCR) {
+- tmp |= (0x1<<13);
+- tmp &= ~(0x1<<18)|(0x1<<17);
+- } else {
+- }
+- }
+-
+- __raw_writel(tmp, base + S3C_MODE);
+-}
+-
+-static void s3c_tvscaler_set_path(s3c_scaler_path_t in, s3c_scaler_path_t out)
+-{
+- u32 tmp;
+-
+- tmp = __raw_readl(base + S3C_MODE);
+-
+- tmp &=~(0x1<<12); // 0: progressive mode, 1: interlace mode
+-
+- if(in == POST_FIFO) {
+- tmp |= (0x1<<31);
+- } else if(in == POST_DMA) {
+- tmp &=~(0x1<<31);
+- }
+-
+- if(out == POST_FIFO) {
+- tmp |= (0x1<<13);
+- } else if(out == POST_DMA) {
+- tmp &=~(0x1<<13);
+- }
+-
+- __raw_writel(tmp, base + S3C_MODE);
+-}
+-
+-static void s3c_tvscaler_set_addr(scaler_params_t *sp, u32 in_pixel_size, u32 out_pixel_size)
+-{
+- u32 offset_y, offset_cb, offset_cr;
+- u32 src_start_y, src_start_cb, src_start_cr;
+- u32 src_end_y, src_end_cb, src_end_cr;
+- u32 start_pos_y, end_pos_y;
+- u32 start_pos_cb, end_pos_cb;
+- u32 start_pos_cr, end_pos_cr;
+- u32 start_pos_rgb, end_pos_rgb;
+- u32 dst_start_rgb, dst_end_rgb;
+- u32 src_frm_start_addr;
+-
+- u32 offset_rgb, out_offset_cb, out_offset_cr;
+- u32 out_start_pos_cb, out_start_pos_cr;
+- u32 out_end_pos_cb, out_end_pos_cr;
+- u32 out_src_start_cb, out_src_start_cr;
+- u32 out_src_end_cb, out_src_end_cr;
+-
+- if(sp->InPath == POST_DMA) {
+- offset_y = (sp->SrcFullWidth - sp->SrcWidth) * in_pixel_size;
+- start_pos_y = (sp->SrcFullWidth*sp->SrcStartY+sp->SrcStartX)*in_pixel_size;
+- end_pos_y = sp->SrcWidth*sp->SrcHeight*in_pixel_size + offset_y*(sp->SrcHeight-1);
+- src_frm_start_addr = sp->SrcFrmSt;
+- src_start_y = sp->SrcFrmSt + start_pos_y;
+- src_end_y = src_start_y + end_pos_y;
+-
+- __raw_writel(src_start_y, base + S3C_ADDRSTART_Y);
+- __raw_writel(offset_y, base + S3C_OFFSET_Y);
+- __raw_writel(src_end_y, base + S3C_ADDREND_Y);
+-
+- if(sp->SrcCSpace == YC420) {
+- offset_cb = offset_cr = ((sp->SrcFullWidth - sp->SrcWidth) / 2) * in_pixel_size;
+- start_pos_cb = sp->SrcFullWidth * sp->SrcFullHeight * 1 \
+- + (sp->SrcFullWidth * sp->SrcStartY / 2 + sp->SrcStartX) /2 * 1;
+-
+- end_pos_cb = sp->SrcWidth/2*sp->SrcHeight/2*in_pixel_size \
+- + (sp->SrcHeight/2 -1)*offset_cb;
+- start_pos_cr = sp->SrcFullWidth * sp->SrcFullHeight *1 \
+- + sp->SrcFullWidth*sp->SrcFullHeight/4 *1 \
+- + (sp->SrcFullWidth*sp->SrcStartY/2 + sp->SrcStartX)/2*1;
+- end_pos_cr = sp->SrcWidth/2*sp->SrcHeight/2*in_pixel_size \
+- + (sp->SrcHeight/2-1)*offset_cr;
+-
+- src_start_cb = sp->SrcFrmSt + start_pos_cb;
+- src_end_cb = src_start_cb + end_pos_cb;
+-
+- src_start_cr = sp->SrcFrmSt + start_pos_cr;
+- src_end_cr = src_start_cr + end_pos_cr;
+-
+- __raw_writel(src_start_cb, base + S3C_ADDRSTART_CB);
+- __raw_writel(offset_cr, base + S3C_OFFSET_CB);
+- __raw_writel(src_end_cb, base + S3C_ADDREND_CB);
+- __raw_writel(src_start_cr, base + S3C_ADDRSTART_CR);
+- __raw_writel(offset_cb, base + S3C_OFFSET_CR);
+- __raw_writel(src_end_cr, base + S3C_ADDREND_CR);
+- }
+- }
+- if(sp->OutPath == POST_DMA) {
+- offset_rgb = (sp->DstFullWidth - sp->DstWidth)*out_pixel_size;
+- start_pos_rgb = (sp->DstFullWidth*sp->DstStartY + sp->DstStartX)*out_pixel_size;
+- end_pos_rgb = sp->DstWidth*sp->DstHeight*out_pixel_size + offset_rgb*(sp->DstHeight - 1);
+- dst_start_rgb = sp->DstFrmSt + start_pos_rgb;
+- dst_end_rgb = dst_start_rgb + end_pos_rgb;
+-
+- __raw_writel(dst_start_rgb, base + S3C_ADDRSTART_RGB);
+- __raw_writel(offset_rgb, base + S3C_OFFSET_RGB);
+- __raw_writel(dst_end_rgb, base + S3C_ADDREND_RGB);
+-
+- if(sp->DstCSpace == YC420) {
+- out_offset_cb = out_offset_cr = ((sp->DstFullWidth - sp->DstWidth)/2)*out_pixel_size;
+- out_start_pos_cb = sp->DstFullWidth*sp->DstFullHeight*1 \
+- + (sp->DstFullWidth*sp->DstStartY/2 + sp->DstStartX)/2*1;
+- out_end_pos_cb = sp->DstWidth/2*sp->DstHeight/2*out_pixel_size \
+- + (sp->DstHeight/2 -1)*out_offset_cr;
+-
+- out_start_pos_cr = sp->DstFullWidth*sp->DstFullHeight*1 \
+- + (sp->DstFullWidth*sp->DstFullHeight/4)*1 \
+- + (sp->DstFullWidth*sp->DstStartY/2 +sp->DstStartX)/2*1;
+- out_end_pos_cr = sp->DstWidth/2*sp->DstHeight/2*out_pixel_size \
+- + (sp->DstHeight/2 -1)*out_offset_cb;
+-
+- out_src_start_cb = sp->DstFrmSt + out_start_pos_cb;
+- out_src_end_cb = out_src_start_cb + out_end_pos_cb;
+- out_src_start_cr = sp->DstFrmSt + out_start_pos_cr;
+- out_src_end_cr = out_src_start_cr + out_end_pos_cr;
+-
+- __raw_writel(out_src_start_cb, base + S3C_ADDRSTART_OCB);
+- __raw_writel(out_offset_cb, base + S3C_OFFSET_OCB);
+- __raw_writel(out_src_end_cb, base + S3C_ADDREND_OCB);
+- __raw_writel(out_src_start_cr, base + S3C_ADDRSTART_OCR);
+- __raw_writel(out_offset_cr, base + S3C_OFFSET_OCR);
+- __raw_writel(out_src_end_cr, base + S3C_ADDREND_OCR);
+-
+- }
+- }
+-
+-
+-}
+-
+-#if 0
+-static void s3c_tvscaler_set_fifo_in(s3c_scaler_path_t in_path)
+-{
+- u32 tmp;
+-
+- tmp = __raw_readl(base + S3C_MODE);
+-
+- if(in_path == POST_FIFO) tmp |= (0x1<<31);
+- else tmp &=~(0x1<<31);
+-
+- __raw_writel(tmp, base + S3C_MODE);
+-
+-}
+-#endif
+-
+-void s3c_tvscaler_set_interlace(u32 on_off)
+-{
+- u32 tmp;
+-
+- tmp = __raw_readl(base + S3C_MODE);
+-
+- if(on_off == 1) tmp |=(1<<12);
+- else tmp &=~(1<<12);
+-
+- __raw_writel(tmp, base + S3C_MODE);
+-}
+-EXPORT_SYMBOL(s3c_tvscaler_set_interlace);
+-
+-static void s3c_tvscaler_set_size(scaler_params_t *sp)
+-{
+- u32 pre_h_ratio, pre_v_ratio, h_shift, v_shift, sh_factor;
+- u32 pre_dst_width, pre_dst_height, dx, dy;
+-
+- if (sp->SrcWidth >= (sp->DstWidth<<6)) {
+- printk("Out of PreScalar range !!!\n");
+- return;
+- }
+- if(sp->SrcWidth >= (sp->DstWidth<<5)) {
+- pre_h_ratio = 32;
+- h_shift = 5;
+- } else if(sp->SrcWidth >= (sp->DstWidth<<4)) {
+- pre_h_ratio = 16;
+- h_shift = 4;
+- } else if(sp->SrcWidth >= (sp->DstWidth<<3)) {
+- pre_h_ratio = 8;
+- h_shift = 3;
+- } else if(sp->SrcWidth >= (sp->DstWidth<<2)) {
+- pre_h_ratio = 4;
+- h_shift = 2;
+- } else if(sp->SrcWidth >= (sp->DstWidth<<1)) {
+- pre_h_ratio = 2;
+- h_shift = 1;
+- } else {
+- pre_h_ratio = 1;
+- h_shift = 0;
+- }
+-
+- pre_dst_width = sp->SrcWidth / pre_h_ratio;
+- dx = (sp->SrcWidth<<8) / (sp->DstWidth<<h_shift);
+-
+-
+- if (sp->SrcHeight >= (sp->DstHeight<<6)) {
+- printk("Out of PreScalar range !!!\n");
+- return;
+- }
+- if(sp->SrcHeight>= (sp->DstHeight<<5)) {
+- pre_v_ratio = 32;
+- v_shift = 5;
+- } else if(sp->SrcHeight >= (sp->DstHeight<<4)) {
+- pre_v_ratio = 16;
+- v_shift = 4;
+- } else if(sp->SrcHeight >= (sp->DstHeight<<3)) {
+- pre_v_ratio = 8;
+- v_shift = 3;
+- } else if(sp->SrcHeight >= (sp->DstHeight<<2)) {
+- pre_v_ratio = 4;
+- v_shift = 2;
+- } else if(sp->SrcHeight >= (sp->DstHeight<<1)) {
+- pre_v_ratio = 2;
+- v_shift = 1;
+- } else {
+- pre_v_ratio = 1;
+- v_shift = 0;
+- }
+-
+- pre_dst_height = sp->SrcHeight / pre_v_ratio;
+- dy = (sp->SrcHeight<<8) / (sp->DstHeight<<v_shift);
+- sh_factor = 10 - (h_shift + v_shift);
+-
+- __raw_writel((pre_v_ratio<<7)|(pre_h_ratio<<0), base + S3C_PRESCALE_RATIO);
+- __raw_writel((pre_dst_height<<12)|(pre_dst_width<<0), base + S3C_PRESCALEIMGSIZE);
+- __raw_writel(sh_factor, base + S3C_PRESCALE_SHFACTOR);
+- __raw_writel(dx, base + S3C_MAINSCALE_H_RATIO);
+- __raw_writel(dy, base + S3C_MAINSCALE_V_RATIO);
+- __raw_writel((sp->SrcHeight<<12)|(sp->SrcWidth), base + S3C_SRCIMGSIZE);
+- __raw_writel((sp->DstHeight<<12)|(sp->DstWidth), base + S3C_DSTIMGSIZE);
+-
+-}
+-
+-
+-static void s3c_tvscaler_set_auto_load(scaler_params_t *sp)
+-{
+- u32 tmp;
+-
+- tmp = __raw_readl(base + S3C_MODE);
+-
+- if(sp->Mode == FREE_RUN) {
+- tmp |= (1<<14);
+- } else if(sp->Mode == ONE_SHOT) {
+- tmp &=~(1<<14);
+- }
+-
+- __raw_writel(tmp, base + S3C_MODE);
+-
+-}
+-
+-void s3c_tvscaler_set_base_addr(void __iomem * base_addr)
+-{
+- base = base_addr;
+-}
+-EXPORT_SYMBOL(s3c_tvscaler_set_base_addr);
+-
+-void s3c_tvscaler_free_base_addr(void)
+-{
+- base = NULL;
+-}
+-EXPORT_SYMBOL(s3c_tvscaler_free_base_addr);
+-
+-void s3c_tvscaler_int_enable(u32 int_type)
+-{
+- u32 tmp;
+-
+- tmp = __raw_readl(base + S3C_MODE);
+-
+- if(int_type == 0) { //Edge triggering
+- tmp &= ~(S3C_MODE_IRQ_LEVEL);
+- } else if(int_type == 1) { //level triggering
+- tmp |= S3C_MODE_IRQ_LEVEL;
+- }
+-
+- tmp |= S3C_MODE_POST_INT_ENABLE;
+-
+- __raw_writel(tmp, base + S3C_MODE);
+-}
+-EXPORT_SYMBOL(s3c_tvscaler_int_enable);
+-
+-void s3c_tvscaler_int_disable(void)
+-{
+- u32 tmp;
+-
+- tmp = __raw_readl(base + S3C_MODE);
+-
+- tmp &=~ (S3C_MODE_POST_INT_ENABLE);
+-
+- __raw_writel(tmp, base + S3C_MODE);
+-
+-}
+-EXPORT_SYMBOL(s3c_tvscaler_int_disable);
+-
+-
+-void s3c_tvscaler_start(void)
+-{
+- __raw_writel(S3C_POSTENVID_ENABLE, base + S3C_POSTENVID);
+-
+-}
+-EXPORT_SYMBOL(s3c_tvscaler_start);
+-
+-void s3c_tvscaler_stop_freerun(void)
+-{
+- u32 tmp;
+-
+- tmp = __raw_readl(base + S3C_MODE);
+-
+- tmp &=~(1<<14);
+-
+- __raw_writel(tmp, base + S3C_MODE);
+-}
+-EXPORT_SYMBOL(s3c_tvscaler_stop_freerun);
+-
+-
+-void s3c_tvscaler_config(scaler_params_t *sp)
+-{
+- u32 tmp = 0;
+- u32 in_pixel_size = 0;
+- u32 out_pixel_size = 0;
+- u32 loop = 0;
+-
+- tmp = __raw_readl(base + S3C_POSTENVID);
+- tmp &= ~S3C_POSTENVID_ENABLE;
+- __raw_writel(tmp, base + S3C_POSTENVID);
+-#ifdef SINGLE_BUF
+- tmp = S3C_MODE2_ADDR_CHANGE_DISABLE |S3C_MODE2_CHANGE_AT_FRAME_END |S3C_MODE2_SOFTWARE_TRIGGER;
+-#else
+- tmp = S3C_MODE2_ADDR_CHANGE_ENABLE |S3C_MODE2_CHANGE_AT_FRAME_END |S3C_MODE2_SOFTWARE_TRIGGER;
+-#endif
+- __raw_writel(tmp, base + S3C_MODE2);
+-
+-// peter mod. start
+- sp->DstStartX = sp->DstStartY = 0;
+- sp->DstWidth = sp->DstFullWidth;
+- sp->DstHeight = sp->DstFullHeight;
+-// peter mod. end
+-
+- sp->DstFrmSt = ( POST_BUFF_BASE_ADDR + PRE_BUFF_SIZE );
+- //printk("\n---peter s3c_tvscaler_config : SrcFrmSt = 0x%08x\n", sp->SrcFrmSt);
+- //printk("---peter s3c_tvscaler_config : DstFrmSt = 0x%08x\n", sp->DstFrmSt);
+-
+- s3c_tvscaler_set_clk_src(HCLK);
+-
+- s3c_tvscaler_set_path(sp->InPath, sp->OutPath);
+-
+- s3c_tvscaler_set_fmt(sp->SrcCSpace, sp->DstCSpace, sp->InPath,
+- sp->OutPath, &in_pixel_size, &out_pixel_size);
+-
+- s3c_tvscaler_set_size(sp);
+-
+- s3c_tvscaler_set_addr(sp, in_pixel_size, out_pixel_size);
+-
+- s3c_tvscaler_set_auto_load(sp);
+-
+-}
+-EXPORT_SYMBOL(s3c_tvscaler_config);
+-
+-void s3c_tvscaler_set_param(scaler_params_t *sp)
+-{
+-#if 0
+- param.SrcFullWidth = sp->SrcFullWidth;
+- param.SrcFullHeight = sp->SrcFullHeight;
+- param.SrcStartX = sp->SrcStartX;
+- param.SrcStartY = sp->SrcStartY;
+- param.SrcWidth = sp->SrcWidth;
+- param.SrcHeight = sp->SrcHeight;
+- param.SrcFrmSt = sp->SrcFrmSt;
+- param.SrcCSpace = sp->SrcCSpace;
+- param.DstFullWidth = sp->DstFullWidth;
+- param.DstFullHeight = sp->DstFullHeight;
+- param.DstStartX = sp->DstStartX;
+- param.DstStartY = sp->DstStartY;
+- param.DstWidth = sp->DstWidth;
+- param.DstHeight = sp->DstHeight;
+- param.DstFrmSt = sp->DstFrmSt;
+- param.DstCSpace = sp->DstCSpace;
+- param.SrcFrmBufNum = sp->SrcFrmBufNum;
+- param.DstFrmSt = sp->DstFrmSt;
+- param.Mode = sp->Mode;
+- param.InPath = sp->InPath;
+- param.OutPath = sp->OutPath;
+-#endif
+-}
+-EXPORT_SYMBOL(s3c_tvscaler_set_param);
+-
+-void s3c_tvscaler_init(void)
+-{
+-
+- int tmp;
+-
+- // Use DOUTmpll source clock as a scaler clock
+- tmp = __raw_readl(S3C_CLK_SRC);
+-
+- tmp &=~(0x3<<28);
+- tmp |= (0x1<<28);
+- __raw_writel(tmp, S3C_CLK_SRC);
+-
+- printk(" %s \n", __FUNCTION__);
+-
+-}
+-EXPORT_SYMBOL(s3c_tvscaler_init);
+-
+-
+-static int s3c_tvscaler_probe(struct platform_device *pdev)
+-{
+-
+- struct resource *res;
+-
+- int ret;
+-
+- /* find the IRQs */
+- s3c_tvscaler_irq = platform_get_irq(pdev, 0);
+- if(s3c_tvscaler_irq <= 0) {
+- printk(KERN_ERR PFX "failed to get irq resouce\n");
+- return -ENOENT;
+- }
+-
+- /* get the memory region for the tv scaler driver */
+- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+- if(res == NULL) {
+- printk(KERN_ERR PFX "failed to get memory region resouce\n");
+- return -ENOENT;
+- }
+-
+- s3c_tvscaler_mem = request_mem_region(res->start, res->end-res->start+1, pdev->name);
+- if(s3c_tvscaler_mem == NULL) {
+- printk(KERN_ERR PFX "failed to reserve memory region\n");
+- return -ENOENT;
+- }
+-
+- base = ioremap(s3c_tvscaler_mem->start, s3c_tvscaler_mem->end - res->start + 1);
+- if(s3c_tvscaler_mem == NULL) {
+- printk(KERN_ERR PFX "failed ioremap\n");
+- return -ENOENT;
+- }
+-
+- tvscaler_clock = clk_get(&pdev->dev, "tv_encoder");
+- if(tvscaler_clock == NULL) {
+- printk(KERN_ERR PFX "failed to find tvscaler clock source\n");
+- return -ENOENT;
+- }
+-
+- clk_enable(tvscaler_clock);
+-
+- h_clk = clk_get(&pdev->dev, "hclk");
+- if(h_clk == NULL) {
+- printk(KERN_ERR PFX "failed to find h_clk clock source\n");
+- return -ENOENT;
+- }
+-
+- init_waitqueue_head(&waitq);
+-
+- ret = request_irq(s3c_tvscaler_irq, s3c_tvscaler_isr, SA_INTERRUPT,
+- "TV_SCALER", NULL);
+- if (ret) {
+- printk("request_irq(TV_SCALER) failed.\n");
+- return ret;
+- }
+-
+- printk(" Success\n");
+-
+- return 0;
+-}
+-
+-static int s3c_tvscaler_remove(struct platform_device *dev)
+-{
+- printk(KERN_INFO "s3c_tvscaler_remove called !\n");
+- clk_disable(tvscaler_clock);
+- free_irq(s3c_tvscaler_irq, NULL);
+- if (s3c_tvscaler_mem != NULL) {
+- pr_debug("s3-tvscaler: releasing s3c_tvscaler_mem\n");
+- iounmap(base);
+- release_resource(s3c_tvscaler_mem);
+- kfree(s3c_tvscaler_mem);
+- }
+-
+- return 0;
+-}
+-
+-static int s3c_tvscaler_suspend(struct platform_device *dev, pm_message_t state)
+-{
+- clk_disable(tvscaler_clock);
+- return 0;
+-}
+-
+-static int s3c_tvscaler_resume(struct platform_device *pdev)
+-{
+- clk_enable(tvscaler_clock);
+- return 0;
+-}
+-
+-static struct platform_driver s3c_tvscaler_driver = {
+- .probe = s3c_tvscaler_probe,
+- .remove = s3c_tvscaler_remove,
+- .suspend = s3c_tvscaler_suspend,
+- .resume = s3c_tvscaler_resume,
+- .driver = {
+- .owner = THIS_MODULE,
+- .name = "s3c-tvscaler",
+- },
+-};
+-
+-static char banner[] __initdata = KERN_INFO "S3C6410 TV scaler Driver, (c) 2008 Samsung Electronics\n";
+-
+-
+-int __init s3c_tvscaler_pre_init(void)
+-{
+-
+- printk(banner);
+-
+- if(platform_driver_register(&s3c_tvscaler_driver) != 0)
+- {
+- printk("platform device register Failed \n");
+- return -1;
+- }
+-
+- printk(" S3C6410 TV scaler Driver module init OK. \n");
+-
+- return 0;
+-}
+-
+-void s3c_tvscaler_exit(void)
+-{
+- platform_driver_unregister(&s3c_tvscaler_driver);
+- printk("S3C: tvscaler module exit\n");
+-}
+-
+-module_init(s3c_tvscaler_pre_init);
+-module_exit(s3c_tvscaler_exit);
+-
+-
+-MODULE_AUTHOR("Peter, Oh");
+-MODULE_DESCRIPTION("S3C TV Controller Device Driver");
+-MODULE_LICENSE("GPL");
+-
+-
+diff --git a/drivers/media/video/samsung/s3c-tvscaler.h b/drivers/media/video/samsung/s3c-tvscaler.h
+deleted file mode 100644
+index d8079a3..0000000
+--- a/drivers/media/video/samsung/s3c-tvscaler.h
++++ /dev/null
+@@ -1,96 +0,0 @@
+-#ifndef __S3CTVSCALER_H_
+-#define __S3CTVSCALER_H_
+-
+-#include <asm-arm/arch-s3c2410/reserved_mem.h>
+-
+-#define TVSCALER_IOCTL_MAGIC 'S'
+-
+-#define PPROC_SET_PARAMS _IO(TVSCALER_IOCTL_MAGIC, 0)
+-#define PPROC_START _IO(TVSCALER_IOCTL_MAGIC, 1)
+-#define PPROC_STOP _IO(TVSCALER_IOCTL_MAGIC, 2)
+-#define PPROC_INTERLACE_MODE _IO(TVSCALER_IOCTL_MAGIC, 3)
+-#define PPROC_PROGRESSIVE_MODE _IO(TVSCALER_IOCTL_MAGIC, 4)
+-
+-
+-#define QVGA_XSIZE 320
+-#define QVGA_YSIZE 240
+-
+-#define LCD_XSIZE 320
+-#define LCD_YSIZE 240
+-
+-#define SCALER_MINOR 251 // Just some number
+-
+-
+-//#define SYSTEM_RAM 0x08000000 // 128mb
+-#define SYSTEM_RAM 0x07800000 // 120mb
+-#define RESERVE_POST_MEM 8*1024*1024 // 8mb
+-#define PRE_BUFF_SIZE 4*1024*1024 //4 // 4mb
+-#define POST_BUFF_SIZE ( RESERVE_POST_MEM - PRE_BUFF_SIZE )
+-#if 0
+-#define POST_BUFF_BASE_ADDR (0x50000000 + (SYSTEM_RAM - RESERVE_POST_MEM))
+-#else // TV_RESERVED_MEM_START is defined in the s3c-linux-2.6.21_dev_4_4_15
+-#define POST_BUFF_BASE_ADDR TV_RESERVED_MEM_START
+-#endif
+-
+-#define USE_DEDICATED_MEM 1
+-
+-typedef enum {
+- INTERLACE_MODE,
+- PROGRESSIVE_MODE
+-} s3c_scaler_scan_mode_t;
+-
+-typedef enum {
+- POST_DMA, POST_FIFO
+-} s3c_scaler_path_t;
+-
+-typedef enum {
+- ONE_SHOT, FREE_RUN
+-} s3c_scaler_run_mode_t;
+-
+-typedef enum {
+- PAL1, PAL2, PAL4, PAL8,
+- RGB8, ARGB8, RGB16, ARGB16, RGB18, RGB24, RGB30, ARGB24,
+- YC420, YC422, // Non-interleave
+- CRYCBY, CBYCRY, YCRYCB, YCBYCR, YUV444 // Interleave
+-} cspace_t;
+-
+-typedef enum
+-{
+- HCLK = 0, PLL_EXT = 1, EXT_27MHZ = 3
+-} scaler_clk_src_t;
+-
+-typedef struct{
+- unsigned int SrcFullWidth; // Source Image Full Width(Virtual screen size)
+- unsigned int SrcFullHeight; // Source Image Full Height(Virtual screen size)
+- unsigned int SrcStartX; // Source Image Start width offset
+- unsigned int SrcStartY; // Source Image Start height offset
+- unsigned int SrcWidth; // Source Image Width
+- unsigned int SrcHeight; // Source Image Height
+- unsigned int SrcFrmSt; // Base Address of the Source Image : Physical Address
+- cspace_t SrcCSpace; // Color Space ot the Source Image
+-
+- unsigned int DstFullWidth; // Source Image Full Width(Virtual screen size)
+- unsigned int DstFullHeight; // Source Image Full Height(Virtual screen size)
+- unsigned int DstStartX; // Source Image Start width offset
+- unsigned int DstStartY; // Source Image Start height offset
+- unsigned int DstWidth; // Source Image Width
+- unsigned int DstHeight; // Source Image Height
+- unsigned int DstFrmSt; // Base Address of the Source Image : Physical Address
+- cspace_t DstCSpace; // Color Space ot the Source Image
+-
+- unsigned int SrcFrmBufNum; // Frame buffer number
+- s3c_scaler_run_mode_t Mode; // POST running mode(PER_FRAME or FREE_RUN)
+- s3c_scaler_path_t InPath; // Data path of the source image
+- s3c_scaler_path_t OutPath; // Data path of the desitination image
+-
+-}scaler_params_t;
+-
+-typedef struct{
+- unsigned int pre_phy_addr;
+- unsigned char *pre_virt_addr;
+-
+- unsigned int post_phy_addr;
+- unsigned char *post_virt_addr;
+-} buff_addr_t;
+-
+-#endif //__S3CTVSCALER_H_
+diff --git a/include/asm-arm/arch-s3c2410/reserved_mem.h b/include/asm-arm/arch-s3c2410/reserved_mem.h
+index ba921a4..e6c029d 100644
+--- a/include/asm-arm/arch-s3c2410/reserved_mem.h
++++ b/include/asm-arm/arch-s3c2410/reserved_mem.h
+@@ -17,7 +17,7 @@
+ //#define CONFIG_RESERVED_MEM_JPEG
+ //#define CONFIG_RESERVED_MEM_JPEG_POST
+ //#define CONFIG_RESERVED_MEM_MFC
+-#define CONFIG_RESERVED_MEM_MFC_POST
++//#define CONFIG_RESERVED_MEM_MFC_POST
+ //#define CONFIG_RESERVED_MEM_JPEG_MFC_POST
+ //#define CONFIG_RESERVED_MEM_JPEG_CAMERA
+ //#define CONFIG_RESERVED_MEM_JPEG_POST_CAMERA
+@@ -26,7 +26,7 @@
+ //#define CONFIG_RESERVED_MEM_JPEG_MFC_POST_CAMERA
+ //#define CONFIG_RESERVED_MEM_CMM_MFC_POST
+ //#define CONFIG_RESERVED_MEM_CMM_JPEG_MFC_POST_CAMERA
+-//#define CONFIG_RESERVED_MEM_TV_MFC_POST_CAMERA
++#define CONFIG_RESERVED_MEM_TV_MFC_POST_CAMERA
+
+ #if defined(CONFIG_RESERVED_MEM_JPEG)
+ #define JPEG_RESERVED_MEM_START 0x57800000
+--
+1.6.2.4
+
diff --git a/recipes/linux/linux-2.6.24/smartq5/mer/0008-build-TV-by-default.patch b/recipes/linux/linux-2.6.24/smartq5/mer/0008-build-TV-by-default.patch
new file mode 100644
index 0000000000..9425f55361
--- /dev/null
+++ b/recipes/linux/linux-2.6.24/smartq5/mer/0008-build-TV-by-default.patch
@@ -0,0 +1,136 @@
+From fc4f45f5d2c2fd7fa5e4a1b5923129bd6722f102 Mon Sep 17 00:00:00 2001
+From: Carsten V. Munk <carsten.munk@gmail.com>
+Date: Thu, 6 Aug 2009 12:18:57 +0000
+Subject: [PATCH 08/13] build TV by default.
+
+---
+ arch/arm/configs/hhs3c6410_4_3_defconfig | 36 ++++++++++++++++++++-
+ arch/arm/configs/hhs3c6410_7_defconfig | 51 ++++++++++++++++++++++++++++-
+ 2 files changed, 83 insertions(+), 4 deletions(-)
+
+diff --git a/arch/arm/configs/hhs3c6410_4_3_defconfig b/arch/arm/configs/hhs3c6410_4_3_defconfig
+index aa1758a..d503e12 100644
+--- a/arch/arm/configs/hhs3c6410_4_3_defconfig
++++ b/arch/arm/configs/hhs3c6410_4_3_defconfig
+@@ -1,7 +1,7 @@
+ #
+ # Automatically generated make config: don't edit
+ # Linux kernel version: 2.6.24.7
+-# Tue Jun 16 10:48:11 2009
++# Thu Aug 6 11:55:46 2009
+ #
+ CONFIG_ARM=y
+ CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+@@ -910,7 +910,39 @@ CONFIG_SSB_POSSIBLE=y
+ #
+ # Multimedia devices
+ #
+-# CONFIG_VIDEO_DEV is not set
++CONFIG_VIDEO_DEV=m
++# CONFIG_VIDEO_V4L1 is not set
++CONFIG_VIDEO_V4L1_COMPAT=y
++CONFIG_VIDEO_V4L2=y
++CONFIG_VIDEO_CAPTURE_DRIVERS=y
++# CONFIG_VIDEO_ADV_DEBUG is not set
++CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
++# CONFIG_VIDEO_VIVI is not set
++# CONFIG_VIDEO_SAA5246A is not set
++# CONFIG_VIDEO_SAA5249 is not set
++# CONFIG_VIDEO_SAMSUNG is not set
++CONFIG_VIDEO_SAMSUNG_TVENC=m
++CONFIG_VIDEO_SAMSUNG_TVSCALER=m
++CONFIG_V4L_USB_DRIVERS=y
++# CONFIG_VIDEO_PVRUSB2 is not set
++# CONFIG_VIDEO_USBVISION is not set
++# CONFIG_USB_ET61X251 is not set
++# CONFIG_USB_SN9C102 is not set
++# CONFIG_USB_ZC0301 is not set
++# CONFIG_USB_ZR364XX is not set
++CONFIG_RADIO_ADAPTERS=y
++# CONFIG_RADIO_CADET is not set
++# CONFIG_RADIO_RTRACK is not set
++# CONFIG_RADIO_RTRACK2 is not set
++# CONFIG_RADIO_AZTECH is not set
++# CONFIG_RADIO_GEMTEK is not set
++# CONFIG_RADIO_SF16FMI is not set
++# CONFIG_RADIO_SF16FMR2 is not set
++# CONFIG_RADIO_TERRATEC is not set
++# CONFIG_RADIO_TRUST is not set
++# CONFIG_RADIO_TYPHOON is not set
++# CONFIG_RADIO_ZOLTRIX is not set
++# CONFIG_USB_DSBR is not set
+ # CONFIG_DVB_CORE is not set
+ # CONFIG_DAB is not set
+
+diff --git a/arch/arm/configs/hhs3c6410_7_defconfig b/arch/arm/configs/hhs3c6410_7_defconfig
+index 2d3147a..b0a4f48 100644
+--- a/arch/arm/configs/hhs3c6410_7_defconfig
++++ b/arch/arm/configs/hhs3c6410_7_defconfig
+@@ -1,7 +1,7 @@
+ #
+ # Automatically generated make config: don't edit
+ # Linux kernel version: 2.6.24.7
+-# Tue Jun 16 10:44:09 2009
++# Thu Aug 6 12:17:50 2009
+ #
+ CONFIG_ARM=y
+ CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+@@ -910,7 +910,54 @@ CONFIG_SSB_POSSIBLE=y
+ #
+ # Multimedia devices
+ #
+-# CONFIG_VIDEO_DEV is not set
++CONFIG_VIDEO_DEV=m
++CONFIG_VIDEO_V4L1=y
++CONFIG_VIDEO_V4L1_COMPAT=y
++CONFIG_VIDEO_V4L2=y
++CONFIG_VIDEO_CAPTURE_DRIVERS=y
++# CONFIG_VIDEO_ADV_DEBUG is not set
++CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
++# CONFIG_VIDEO_VIVI is not set
++# CONFIG_VIDEO_PMS is not set
++# CONFIG_VIDEO_CPIA is not set
++# CONFIG_VIDEO_CPIA2 is not set
++# CONFIG_VIDEO_SAA5246A is not set
++# CONFIG_VIDEO_SAA5249 is not set
++# CONFIG_TUNER_3036 is not set
++# CONFIG_VIDEO_SAMSUNG is not set
++CONFIG_VIDEO_SAMSUNG_TVENC=m
++CONFIG_VIDEO_SAMSUNG_TVSCALER=m
++CONFIG_V4L_USB_DRIVERS=y
++# CONFIG_VIDEO_PVRUSB2 is not set
++# CONFIG_VIDEO_EM28XX is not set
++# CONFIG_VIDEO_USBVISION is not set
++# CONFIG_USB_VICAM is not set
++# CONFIG_USB_IBMCAM is not set
++# CONFIG_USB_KONICAWC is not set
++# CONFIG_USB_QUICKCAM_MESSENGER is not set
++# CONFIG_USB_ET61X251 is not set
++# CONFIG_VIDEO_OVCAMCHIP is not set
++# CONFIG_USB_W9968CF is not set
++# CONFIG_USB_OV511 is not set
++# CONFIG_USB_SE401 is not set
++# CONFIG_USB_SN9C102 is not set
++# CONFIG_USB_STV680 is not set
++# CONFIG_USB_ZC0301 is not set
++# CONFIG_USB_PWC is not set
++# CONFIG_USB_ZR364XX is not set
++CONFIG_RADIO_ADAPTERS=y
++# CONFIG_RADIO_CADET is not set
++# CONFIG_RADIO_RTRACK is not set
++# CONFIG_RADIO_RTRACK2 is not set
++# CONFIG_RADIO_AZTECH is not set
++# CONFIG_RADIO_GEMTEK is not set
++# CONFIG_RADIO_SF16FMI is not set
++# CONFIG_RADIO_SF16FMR2 is not set
++# CONFIG_RADIO_TERRATEC is not set
++# CONFIG_RADIO_TRUST is not set
++# CONFIG_RADIO_TYPHOON is not set
++# CONFIG_RADIO_ZOLTRIX is not set
++# CONFIG_USB_DSBR is not set
+ # CONFIG_DVB_CORE is not set
+ # CONFIG_DAB is not set
+
+--
+1.6.2.4
+
diff --git a/recipes/linux/linux-2.6.24/smartq5/mer/0009-Apply-cpufreq-patch-from-gqwang.patch b/recipes/linux/linux-2.6.24/smartq5/mer/0009-Apply-cpufreq-patch-from-gqwang.patch
new file mode 100644
index 0000000000..f83a944e05
--- /dev/null
+++ b/recipes/linux/linux-2.6.24/smartq5/mer/0009-Apply-cpufreq-patch-from-gqwang.patch
@@ -0,0 +1,113 @@
+From 6a2a98218695242634c6f601dd956ef06369d1d3 Mon Sep 17 00:00:00 2001
+From: YouSheng <david.ysh@gmail.com>
+Date: Thu, 20 Aug 2009 13:58:48 +0800
+Subject: [PATCH 09/13] Apply cpufreq patch from gqwang
+
+---
+ arch/arm/plat-s3c64xx/clock.c | 23 +++++++++++------------
+ arch/arm/plat-s3c64xx/s3c64xx-cpufreq.c | 18 +++++++++---------
+ 2 files changed, 20 insertions(+), 21 deletions(-)
+
+diff --git a/arch/arm/plat-s3c64xx/clock.c b/arch/arm/plat-s3c64xx/clock.c
+index a776437..1cb7fd4 100644
+--- a/arch/arm/plat-s3c64xx/clock.c
++++ b/arch/arm/plat-s3c64xx/clock.c
+@@ -63,14 +63,17 @@
+ #define PLL_CALC_VAL(MDIV,PDIV,SDIV) ((1<<31)|(MDIV)<<16 |(PDIV)<<8 |(SDIV))
+ #define GET_ARM_CLOCK(baseclk) s3c6400_get_pll(__raw_readl(S3C_APLL_CON),baseclk)
+
+-#define MHZ 1000*1000
+ #define INIT_XTAL 12 * MHZ
+
+ /* enable and disable calls for use with the clk struct */
+ static const u32 s3c_cpu_clock_table[][6] = {
++ //{1100*MHZ, 266, 3, 1, 0, 0},
++ //{800*MHZ, 266, 3, 1, 0, 0},
++ {666*MHZ, 266, 3, 1, 0, 0},
+ {532*MHZ, 266, 3, 1, 0, 0},
+- {266*MHZ, 266, 3, 1, 0, 1},
+- {133*MHZ, 266, 3, 1, 0, 3},
++ {266*MHZ, 266, 3, 1, 0, 0},
++ {133*MHZ, 266, 3, 1, 0, 0},
++ {100*MHZ, 266, 3, 1, 0, 0},
+ };
+
+ /* clock information */
+@@ -286,6 +289,7 @@ unsigned long s3c_fclk_round_rate(struct clk *clk, unsigned long rate)
+ return s3c_cpu_clock_table[ARRAY_SIZE(s3c_cpu_clock_table) - 1][0];
+ }
+
++#define APLL_MDIV_MASK (0x3ff << 16)
+ int s3c_fclk_set_rate(struct clk *clk, unsigned long rate)
+ {
+ u32 ret = -EINVAL;
+@@ -296,20 +300,15 @@ int s3c_fclk_set_rate(struct clk *clk, unsigned long rate)
+
+ round_tmp = s3c_fclk_round_rate(clk,rate);
+
+- if(round_tmp == (int)s3c_fclk_get_rate())
+- return 0;
+-
+ for (iter = 0 ; iter < ARRAY_SIZE(s3c_cpu_clock_table) ; iter++){
+ if(round_tmp == s3c_cpu_clock_table[iter][0])
+ break;
+ }
+
+- clk_div0_tmp = __raw_readl(ARM_CLK_DIV) & ~(ARM_DIV_MASK);
+- clk_div0_tmp |= s3c_cpu_clock_table[iter][5];
+-
+- __raw_writel(clk_div0_tmp, ARM_CLK_DIV);
+-
+- if (__raw_readl(ARM_CLK_DIV) == clk_div0_tmp)
++ apll_con_tmp = __raw_readl(S3C_APLL_CON) & ~(APLL_MDIV_MASK);
++ apll_con_tmp |= (round_tmp / 2000000) << 16;
++ __raw_writel(apll_con_tmp, S3C_APLL_CON);
++ if (__raw_readl(S3C_APLL_CON) == apll_con_tmp)
+ ret = 0;
+
+ clk->rate = s3c_cpu_clock_table[iter][0];
+diff --git a/arch/arm/plat-s3c64xx/s3c64xx-cpufreq.c b/arch/arm/plat-s3c64xx/s3c64xx-cpufreq.c
+index a509071..fae9890 100644
+--- a/arch/arm/plat-s3c64xx/s3c64xx-cpufreq.c
++++ b/arch/arm/plat-s3c64xx/s3c64xx-cpufreq.c
+@@ -44,13 +44,13 @@ extern int ltc3714_init(void);
+
+ /* frequency */
+ static struct cpufreq_frequency_table s3c6410_freq_table[] = {
+- {APLL_GEN_CLK, 667*1000},
+- {APLL_GEN_CLK, APLL_GEN_CLK},
+- {APLL_GEN_CLK, APLL_GEN_CLK2},
+- {APLL_GEN_CLK, APLL_GEN_CLK/2},
+- {APLL_GEN_CLK, APLL_GEN_CLK2/2},
+- {APLL_GEN_CLK, APLL_GEN_CLK/4},
+- {APLL_GEN_CLK, APLL_GEN_CLK2/4},
++// {0, 1100*1000},
++// {1, 800*1000},
++ {2, 666*1000},
++ {3, 532*1000},
++ {4, 266*1000},
++ {5, 133*1000},
++ {6, 100*1000},
+ {0, CPUFREQ_TABLE_END},
+ };
+
+@@ -142,14 +142,14 @@ static int s3c6410_target(struct cpufreq_policy *policy,
+ set_power(freqs.new);
+
+ /* frequency scaling */
+- ret = clk_set_rate(mpu_clk, target_freq * KHZ_T);
++ ret = clk_set_rate(mpu_clk, freqs.new * KHZ_T);
+ if(ret != 0)
+ printk("frequency scaling error\n");
+ }
+
+
+ #else
+- ret = clk_set_rate(mpu_clk, target_freq * KHZ_T);
++ ret = clk_set_rate(mpu_clk, freqs.new * KHZ_T);
+ if(ret != 0)
+ printk("frequency scaling error\n");
+
+--
+1.6.2.4
+
diff --git a/recipes/linux/linux-2.6.24/smartq5/mer/0010-Better-compatibility-with-some-memory-chips.patch b/recipes/linux/linux-2.6.24/smartq5/mer/0010-Better-compatibility-with-some-memory-chips.patch
new file mode 100644
index 0000000000..162335e0c2
--- /dev/null
+++ b/recipes/linux/linux-2.6.24/smartq5/mer/0010-Better-compatibility-with-some-memory-chips.patch
@@ -0,0 +1,77 @@
+From 112a485fecdaeabe2b5fc7c1eea0832d2da26c0d Mon Sep 17 00:00:00 2001
+From: YouSheng <david.ysh@gmail.com>
+Date: Thu, 20 Aug 2009 13:59:22 +0800
+Subject: [PATCH 10/13] Better compatibility with some memory chips
+
+---
+ arch/arm/mach-s3c6410/pm.c | 21 ++++++++++++++++++++-
+ arch/arm/plat-s3c64xx/clock.c | 1 +
+ 2 files changed, 21 insertions(+), 1 deletions(-)
+
+diff --git a/arch/arm/mach-s3c6410/pm.c b/arch/arm/mach-s3c6410/pm.c
+index af53fdc..4d4ef08 100644
+--- a/arch/arm/mach-s3c6410/pm.c
++++ b/arch/arm/mach-s3c6410/pm.c
+@@ -25,6 +25,7 @@
+ #include <linux/errno.h>
+ #include <linux/time.h>
+ #include <linux/sysdev.h>
++#include <linux/delay.h>
+
+ #include <asm/hardware.h>
+ #include <asm/io.h>
+@@ -84,20 +85,38 @@ static struct sleep_save s3c6410_sleep[] = {
+
+ static int s3c6410_pm_suspend(struct sys_device *dev, pm_message_t state)
+ {
++ u32 apll_con;
+ s3c2410_pm_do_save(s3c6410_sleep, ARRAY_SIZE(s3c6410_sleep));
++
++ /* CPU speed set to 532MHZ */
++ apll_con = __raw_readl(S3C_APLL_CON);
++ apll_con &= ~(0x3FF << 16);
++ apll_con |= 266 << 16;
++ __raw_writel(apll_con, S3C_APLL_CON);
++ udelay(200);
++ /* CPU into sync mode. System clock from APLL */
++ __raw_writel(__raw_readl(S3C_OTHERS) | 0xC0, S3C_OTHERS);
++ /* Wait sync finish */
++ while ((__raw_readl(S3C_OTHERS) & 0xF00) != 0xF00);
++
+ return 0;
+ }
+
+ static int s3c6410_pm_resume(struct sys_device *dev)
+ {
+- unsigned long tmp;
+ #if 0
++ unsigned long tmp;
+ tmp = __raw_readl(S3C_PWR_CFG);
+ tmp &= ~(0x60<<0);
+ tmp |= (0x1<<5);
+ __raw_writel(tmp, S3C_PWR_CFG);
+ #endif
++ /* CPU into async mode. System clock from MPLL */
++ __raw_writel(__raw_readl(S3C_OTHERS) & 0xFF3F, S3C_OTHERS);
++ /* Wait async finish */
++ while (__raw_readl(S3C_OTHERS) & 0xF00);
+ s3c2410_pm_do_restore(s3c6410_sleep, ARRAY_SIZE(s3c6410_sleep));
++
+ return 0;
+ }
+
+diff --git a/arch/arm/plat-s3c64xx/clock.c b/arch/arm/plat-s3c64xx/clock.c
+index 1cb7fd4..2eb7e99 100644
+--- a/arch/arm/plat-s3c64xx/clock.c
++++ b/arch/arm/plat-s3c64xx/clock.c
+@@ -308,6 +308,7 @@ int s3c_fclk_set_rate(struct clk *clk, unsigned long rate)
+ apll_con_tmp = __raw_readl(S3C_APLL_CON) & ~(APLL_MDIV_MASK);
+ apll_con_tmp |= (round_tmp / 2000000) << 16;
+ __raw_writel(apll_con_tmp, S3C_APLL_CON);
++ udelay(200);
+ if (__raw_readl(S3C_APLL_CON) == apll_con_tmp)
+ ret = 0;
+
+--
+1.6.2.4
+
diff --git a/recipes/linux/linux-2.6.24/smartq5/mer/0011-Only-reserve-memory-for-TV-if-CONFIG_VIDEO_SAMSUNG_T.patch b/recipes/linux/linux-2.6.24/smartq5/mer/0011-Only-reserve-memory-for-TV-if-CONFIG_VIDEO_SAMSUNG_T.patch
new file mode 100644
index 0000000000..1a39d4cbc0
--- /dev/null
+++ b/recipes/linux/linux-2.6.24/smartq5/mer/0011-Only-reserve-memory-for-TV-if-CONFIG_VIDEO_SAMSUNG_T.patch
@@ -0,0 +1,32 @@
+From d4c0c216128feee090df41f81552cca7ff3f44bc Mon Sep 17 00:00:00 2001
+From: David Greaves <david@dgreaves.com>
+Date: Mon, 21 Sep 2009 23:19:36 +0100
+Subject: [PATCH 11/13] Only reserve memory for TV if CONFIG_VIDEO_SAMSUNG_TVENC/TVSCALER are defined
+
+---
+ include/asm-arm/arch-s3c2410/reserved_mem.h | 8 ++++++++
+ 1 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/include/asm-arm/arch-s3c2410/reserved_mem.h b/include/asm-arm/arch-s3c2410/reserved_mem.h
+index e6c029d..9ac227b 100644
+--- a/include/asm-arm/arch-s3c2410/reserved_mem.h
++++ b/include/asm-arm/arch-s3c2410/reserved_mem.h
+@@ -26,7 +26,15 @@
+ //#define CONFIG_RESERVED_MEM_JPEG_MFC_POST_CAMERA
+ //#define CONFIG_RESERVED_MEM_CMM_MFC_POST
+ //#define CONFIG_RESERVED_MEM_CMM_JPEG_MFC_POST_CAMERA
++//#define CONFIG_RESERVED_MEM_TV_MFC_POST_CAMERA
++
++// Should do a full config logic here...
++#if defined(CONFIG_VIDEO_SAMSUNG_TVENC) || defined(CONFIG_VIDEO_SAMSUNG_TVSCALER)
+ #define CONFIG_RESERVED_MEM_TV_MFC_POST_CAMERA
++#else
++#define CONFIG_RESERVED_MEM_MFC_POST
++#endif
++
+
+ #if defined(CONFIG_RESERVED_MEM_JPEG)
+ #define JPEG_RESERVED_MEM_START 0x57800000
+--
+1.6.2.4
+
diff --git a/recipes/linux/linux-2.6.24/smartq5/mer/0012-Disable-TV-out-to-save-RAM.patch b/recipes/linux/linux-2.6.24/smartq5/mer/0012-Disable-TV-out-to-save-RAM.patch
new file mode 100644
index 0000000000..8e0d311714
--- /dev/null
+++ b/recipes/linux/linux-2.6.24/smartq5/mer/0012-Disable-TV-out-to-save-RAM.patch
@@ -0,0 +1,100 @@
+From aa8822574f0c07f391b29737ca00f08d641cb93f Mon Sep 17 00:00:00 2001
+From: David Greaves <david@dgreaves.com>
+Date: Tue, 22 Sep 2009 10:01:40 +0100
+Subject: [PATCH 12/13] Disable TV-out to save RAM
+
+---
+ arch/arm/configs/hhs3c6410_4_3_defconfig | 18 +++++++++---------
+ arch/arm/configs/hhs3c6410_7_defconfig | 20 ++++++++++----------
+ 2 files changed, 19 insertions(+), 19 deletions(-)
+
+diff --git a/arch/arm/configs/hhs3c6410_4_3_defconfig b/arch/arm/configs/hhs3c6410_4_3_defconfig
+index d503e12..e71e588 100644
+--- a/arch/arm/configs/hhs3c6410_4_3_defconfig
++++ b/arch/arm/configs/hhs3c6410_4_3_defconfig
+@@ -910,27 +910,27 @@ CONFIG_SSB_POSSIBLE=y
+ #
+ # Multimedia devices
+ #
+-CONFIG_VIDEO_DEV=m
++# CONFIG_VIDEO_DEV is not set
+ # CONFIG_VIDEO_V4L1 is not set
+-CONFIG_VIDEO_V4L1_COMPAT=y
+-CONFIG_VIDEO_V4L2=y
+-CONFIG_VIDEO_CAPTURE_DRIVERS=y
++# CONFIG_VIDEO_V4L1_COMPAT is not set
++# CONFIG_VIDEO_V4L2 is not set
++# CONFIG_VIDEO_CAPTURE_DRIVERS is not set
+ # CONFIG_VIDEO_ADV_DEBUG is not set
+-CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
++# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+ # CONFIG_VIDEO_VIVI is not set
+ # CONFIG_VIDEO_SAA5246A is not set
+ # CONFIG_VIDEO_SAA5249 is not set
+ # CONFIG_VIDEO_SAMSUNG is not set
+-CONFIG_VIDEO_SAMSUNG_TVENC=m
+-CONFIG_VIDEO_SAMSUNG_TVSCALER=m
+-CONFIG_V4L_USB_DRIVERS=y
++# CONFIG_VIDEO_SAMSUNG_TVENC is not set
++# CONFIG_VIDEO_SAMSUNG_TVSCALER is not set
++# CONFIG_V4L_USB_DRIVERS is not set
+ # CONFIG_VIDEO_PVRUSB2 is not set
+ # CONFIG_VIDEO_USBVISION is not set
+ # CONFIG_USB_ET61X251 is not set
+ # CONFIG_USB_SN9C102 is not set
+ # CONFIG_USB_ZC0301 is not set
+ # CONFIG_USB_ZR364XX is not set
+-CONFIG_RADIO_ADAPTERS=y
++# CONFIG_RADIO_ADAPTERS is not set
+ # CONFIG_RADIO_CADET is not set
+ # CONFIG_RADIO_RTRACK is not set
+ # CONFIG_RADIO_RTRACK2 is not set
+diff --git a/arch/arm/configs/hhs3c6410_7_defconfig b/arch/arm/configs/hhs3c6410_7_defconfig
+index b0a4f48..2694716 100644
+--- a/arch/arm/configs/hhs3c6410_7_defconfig
++++ b/arch/arm/configs/hhs3c6410_7_defconfig
+@@ -910,13 +910,13 @@ CONFIG_SSB_POSSIBLE=y
+ #
+ # Multimedia devices
+ #
+-CONFIG_VIDEO_DEV=m
+-CONFIG_VIDEO_V4L1=y
+-CONFIG_VIDEO_V4L1_COMPAT=y
+-CONFIG_VIDEO_V4L2=y
+-CONFIG_VIDEO_CAPTURE_DRIVERS=y
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_VIDEO_V4L1 is not set
++# CONFIG_VIDEO_V4L1_COMPAT is not set
++# CONFIG_VIDEO_V4L2 is not set
++# CONFIG_VIDEO_CAPTURE_DRIVERS is not set
+ # CONFIG_VIDEO_ADV_DEBUG is not set
+-CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
++# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+ # CONFIG_VIDEO_VIVI is not set
+ # CONFIG_VIDEO_PMS is not set
+ # CONFIG_VIDEO_CPIA is not set
+@@ -925,9 +925,9 @@ CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
+ # CONFIG_VIDEO_SAA5249 is not set
+ # CONFIG_TUNER_3036 is not set
+ # CONFIG_VIDEO_SAMSUNG is not set
+-CONFIG_VIDEO_SAMSUNG_TVENC=m
+-CONFIG_VIDEO_SAMSUNG_TVSCALER=m
+-CONFIG_V4L_USB_DRIVERS=y
++# CONFIG_VIDEO_SAMSUNG_TVENC is not set
++# CONFIG_VIDEO_SAMSUNG_TVSCALER is not set
++# CONFIG_V4L_USB_DRIVERS is not set
+ # CONFIG_VIDEO_PVRUSB2 is not set
+ # CONFIG_VIDEO_EM28XX is not set
+ # CONFIG_VIDEO_USBVISION is not set
+@@ -945,7 +945,7 @@ CONFIG_V4L_USB_DRIVERS=y
+ # CONFIG_USB_ZC0301 is not set
+ # CONFIG_USB_PWC is not set
+ # CONFIG_USB_ZR364XX is not set
+-CONFIG_RADIO_ADAPTERS=y
++# CONFIG_RADIO_ADAPTERS is not set
+ # CONFIG_RADIO_CADET is not set
+ # CONFIG_RADIO_RTRACK is not set
+ # CONFIG_RADIO_RTRACK2 is not set
+--
+1.6.2.4
+
diff --git a/recipes/linux/linux-2.6.24/smartq5/smartq-gitupdate.diff b/recipes/linux/linux-2.6.24/smartq5/smartq-gitupdate.diff
new file mode 100644
index 0000000000..d9acf581ab
--- /dev/null
+++ b/recipes/linux/linux-2.6.24/smartq5/smartq-gitupdate.diff
@@ -0,0 +1,8974 @@
+ Makefile | 2
+ arch/mips/Kconfig | 28
+ arch/mips/Makefile | 4
+ arch/mips/au1000/common/clocks.c | 1
+ arch/mips/au1000/common/cputable.c | 36
+ arch/mips/au1000/common/dbdma.c | 34
+ arch/mips/au1000/common/gpio.c | 6
+ arch/mips/au1000/common/platform.c | 14
+ arch/mips/au1000/common/setup.c | 13
+ arch/mips/au1000/common/time.c | 24
+ arch/mips/fw/arc/identify.c | 5
+ arch/mips/kernel/Makefile | 3
+ arch/mips/kernel/asm-offsets.c | 108 +
+ arch/mips/kernel/cevt-r4k.c | 173 -
+ arch/mips/kernel/cevt-smtc.c | 321 +++
+ arch/mips/kernel/cevt-txx9.c | 3
+ arch/mips/kernel/cpu-bugs64.c | 2
+ arch/mips/kernel/cpu-probe.c | 36
+ arch/mips/kernel/csrc-r4k.c | 9
+ arch/mips/kernel/entry.S | 10
+ arch/mips/kernel/gdb-low.S | 24
+ arch/mips/kernel/gdb-stub.c | 3
+ arch/mips/kernel/genex.S | 41
+ arch/mips/kernel/head.S | 4
+ arch/mips/kernel/i8253.c | 1
+ arch/mips/kernel/irixelf.c | 11
+ arch/mips/kernel/irq-rm7000.c | 1
+ arch/mips/kernel/irq-rm9000.c | 1
+ arch/mips/kernel/kspd.c | 5
+ arch/mips/kernel/mips-mt-fpaff.c | 4
+ arch/mips/kernel/proc.c | 2
+ arch/mips/kernel/process.c | 19
+ arch/mips/kernel/ptrace.c | 2
+ arch/mips/kernel/rtlx.c | 65
+ arch/mips/kernel/scall32-o32.S | 15
+ arch/mips/kernel/scall64-64.S | 2
+ arch/mips/kernel/scall64-n32.S | 2
+ arch/mips/kernel/scall64-o32.S | 16
+ arch/mips/kernel/setup.c | 5
+ arch/mips/kernel/smp.c | 6
+ arch/mips/kernel/smtc.c | 257 +-
+ arch/mips/kernel/sysirix.c | 2
+ arch/mips/kernel/time.c | 2
+ arch/mips/kernel/traps.c | 124 -
+ arch/mips/kernel/unaligned.c | 8
+ arch/mips/kernel/vpe.c | 46
+ arch/mips/lasat/interrupt.c | 2
+ arch/mips/lasat/lasat_board.c | 13
+ arch/mips/lasat/sysctl.c | 172 -
+ arch/mips/lasat/sysctl.h | 24
+ arch/mips/lib/csum_partial.S | 21
+ arch/mips/lib/ucmpdi2.c | 2
+ arch/mips/lib/uncached.c | 2
+ arch/mips/math-emu/cp1emu.c | 8
+ arch/mips/mips-boards/generic/time.c | 2
+ arch/mips/mips-boards/malta/Makefile | 3
+ arch/mips/mips-boards/malta/malta_smtc.c | 12
+ arch/mips/mipssim/sim_time.c | 2
+ arch/mips/mm/c-r3k.c | 8
+ arch/mips/mm/c-r4k.c | 60
+ arch/mips/mm/c-tx39.c | 17
+ arch/mips/mm/cache.c | 23
+ arch/mips/mm/cex-sb1.S | 8
+ arch/mips/mm/dma-default.c | 5
+ arch/mips/mm/init.c | 9
+ arch/mips/mm/pg-r4k.c | 22
+ arch/mips/mm/pg-sb1.c | 18
+ arch/mips/mm/sc-ip22.c | 2
+ arch/mips/mm/sc-mips.c | 3
+ arch/mips/mm/sc-r5k.c | 2
+ arch/mips/mm/sc-rm7k.c | 6
+ arch/mips/mm/tlb-r3k.c | 6
+ arch/mips/mm/tlb-r4k.c | 15
+ arch/mips/mm/tlb-r8k.c | 4
+ arch/mips/mm/tlbex.c | 160 -
+ arch/mips/pci/pci-bcm1480.c | 11
+ arch/mips/pci/pci-bcm1480ht.c | 21
+ arch/mips/pci/pci-ip27.c | 42
+ arch/mips/pci/pci.c | 9
+ arch/mips/pmc-sierra/yosemite/smp.c | 6
+ arch/mips/sgi-ip22/ip22-int.c | 8
+ arch/mips/sgi-ip22/ip22-platform.c | 2
+ arch/mips/sgi-ip27/ip27-init.c | 2
+ arch/mips/sgi-ip27/ip27-timer.c | 6
+ arch/mips/sgi-ip27/ip27-xtalk.c | 6
+ arch/mips/sgi-ip32/ip32-irq.c | 5
+ arch/mips/sibyte/bcm1480/irq.c | 1
+ arch/mips/sibyte/sb1250/irq.c | 1
+ arch/mips/vr41xx/common/irq.c | 6
+ drivers/net/Kconfig | 7
+ drivers/net/Makefile | 2
+ drivers/net/titan_ge.c | 2069 +++++++++++++++++++++
+ drivers/net/titan_ge.h | 415 ++++
+ drivers/net/titan_mdio.c | 217 ++
+ drivers/net/titan_mdio.h | 56
+ drivers/scsi/NCR53C9x.h | 7
+ include/asm-mips/asmmacro.h | 10
+ include/asm-mips/atomic.h | 4
+ include/asm-mips/byteorder.h | 5
+ include/asm-mips/cacheflush.h | 20
+ include/asm-mips/cevt-r4k.h | 46
+ include/asm-mips/elf.h | 2
+ include/asm-mips/gdb-stub.h | 149 -
+ include/asm-mips/irqflags.h | 26
+ include/asm-mips/lasat/serial.h | 4
+ include/asm-mips/mach-au1x00/au1000.h | 1
+ include/asm-mips/mach-ip27/cpu-feature-overrides.h | 4
+ include/asm-mips/mach-ip27/dma-coherence.h | 2
+ include/asm-mips/mach-jmr3927/ioremap.h | 2
+ include/asm-mips/mach-lasat/irq.h | 2
+ include/asm-mips/mach-pb1x00/pb1200.h | 2
+ include/asm-mips/mach-qemu/cpu-feature-overrides.h | 2
+ include/asm-mips/mipsregs.h | 6
+ include/asm-mips/pgtable-32.h | 2
+ include/asm-mips/pgtable.h | 3
+ include/asm-mips/rtlx.h | 6
+ include/asm-mips/smtc.h | 8
+ include/asm-mips/sn/mapped_kernel.h | 8
+ include/asm-mips/stackframe.h | 72
+ include/asm-mips/time.h | 7
+ 120 files changed, 4344 insertions(+), 1079 deletions(-)
+diff -Nurd linux-2.6.24/arch/mips/au1000/common/clocks.c mer-smartq-kernel/arch/mips/au1000/common/clocks.c
+--- linux-2.6.24/arch/mips/au1000/common/clocks.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/au1000/common/clocks.c 2009-11-17 12:13:28.000000000 +0100
+@@ -46,6 +46,7 @@
+ {
+ return au1x00_clock;
+ }
++EXPORT_SYMBOL(get_au1x00_speed);
+
+
+
+diff -Nurd linux-2.6.24/arch/mips/au1000/common/cputable.c mer-smartq-kernel/arch/mips/au1000/common/cputable.c
+--- linux-2.6.24/arch/mips/au1000/common/cputable.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/au1000/common/cputable.c 2009-11-17 12:13:28.000000000 +0100
+@@ -22,24 +22,24 @@
+ /* With some thought, we can probably use the mask to reduce the
+ * size of the table.
+ */
+-struct cpu_spec cpu_specs[] = {
+- { 0xffffffff, 0x00030100, "Au1000 DA", 1, 0 },
+- { 0xffffffff, 0x00030201, "Au1000 HA", 1, 0 },
+- { 0xffffffff, 0x00030202, "Au1000 HB", 1, 0 },
+- { 0xffffffff, 0x00030203, "Au1000 HC", 1, 1 },
+- { 0xffffffff, 0x00030204, "Au1000 HD", 1, 1 },
+- { 0xffffffff, 0x01030200, "Au1500 AB", 1, 1 },
+- { 0xffffffff, 0x01030201, "Au1500 AC", 0, 1 },
+- { 0xffffffff, 0x01030202, "Au1500 AD", 0, 1 },
+- { 0xffffffff, 0x02030200, "Au1100 AB", 1, 1 },
+- { 0xffffffff, 0x02030201, "Au1100 BA", 1, 1 },
+- { 0xffffffff, 0x02030202, "Au1100 BC", 1, 1 },
+- { 0xffffffff, 0x02030203, "Au1100 BD", 0, 1 },
+- { 0xffffffff, 0x02030204, "Au1100 BE", 0, 1 },
+- { 0xffffffff, 0x03030200, "Au1550 AA", 0, 1 },
+- { 0xffffffff, 0x04030200, "Au1200 AB", 0, 0 },
+- { 0xffffffff, 0x04030201, "Au1200 AC", 1, 0 },
+- { 0x00000000, 0x00000000, "Unknown Au1xxx", 1, 0 },
++struct cpu_spec cpu_specs[] = {
++ { 0xffffffff, 0x00030100, "Au1000 DA", 1, 0, 1 },
++ { 0xffffffff, 0x00030201, "Au1000 HA", 1, 0, 1 },
++ { 0xffffffff, 0x00030202, "Au1000 HB", 1, 0, 1 },
++ { 0xffffffff, 0x00030203, "Au1000 HC", 1, 1, 0 },
++ { 0xffffffff, 0x00030204, "Au1000 HD", 1, 1, 0 },
++ { 0xffffffff, 0x01030200, "Au1500 AB", 1, 1, 0 },
++ { 0xffffffff, 0x01030201, "Au1500 AC", 0, 1, 0 },
++ { 0xffffffff, 0x01030202, "Au1500 AD", 0, 1, 0 },
++ { 0xffffffff, 0x02030200, "Au1100 AB", 1, 1, 0 },
++ { 0xffffffff, 0x02030201, "Au1100 BA", 1, 1, 0 },
++ { 0xffffffff, 0x02030202, "Au1100 BC", 1, 1, 0 },
++ { 0xffffffff, 0x02030203, "Au1100 BD", 0, 1, 0 },
++ { 0xffffffff, 0x02030204, "Au1100 BE", 0, 1, 0 },
++ { 0xffffffff, 0x03030200, "Au1550 AA", 0, 1, 0 },
++ { 0xffffffff, 0x04030200, "Au1200 AB", 0, 0, 0 },
++ { 0xffffffff, 0x04030201, "Au1200 AC", 1, 0, 0 },
++ { 0x00000000, 0x00000000, "Unknown Au1xxx", 1, 0, 0 }
+ };
+
+ void
+diff -Nurd linux-2.6.24/arch/mips/au1000/common/dbdma.c mer-smartq-kernel/arch/mips/au1000/common/dbdma.c
+--- linux-2.6.24/arch/mips/au1000/common/dbdma.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/au1000/common/dbdma.c 2009-11-17 12:13:28.000000000 +0100
+@@ -161,22 +161,22 @@
+ { DSCR_CMD0_ALWAYS, DEV_FLAGS_ANYUSE, 0, 0, 0x00000000, 0, 0 },
+
+ /* Provide 16 user definable device types */
+- { 0, 0, 0, 0, 0, 0, 0 },
+- { 0, 0, 0, 0, 0, 0, 0 },
+- { 0, 0, 0, 0, 0, 0, 0 },
+- { 0, 0, 0, 0, 0, 0, 0 },
+- { 0, 0, 0, 0, 0, 0, 0 },
+- { 0, 0, 0, 0, 0, 0, 0 },
+- { 0, 0, 0, 0, 0, 0, 0 },
+- { 0, 0, 0, 0, 0, 0, 0 },
+- { 0, 0, 0, 0, 0, 0, 0 },
+- { 0, 0, 0, 0, 0, 0, 0 },
+- { 0, 0, 0, 0, 0, 0, 0 },
+- { 0, 0, 0, 0, 0, 0, 0 },
+- { 0, 0, 0, 0, 0, 0, 0 },
+- { 0, 0, 0, 0, 0, 0, 0 },
+- { 0, 0, 0, 0, 0, 0, 0 },
+- { 0, 0, 0, 0, 0, 0, 0 },
++ { ~0, 0, 0, 0, 0, 0, 0 },
++ { ~0, 0, 0, 0, 0, 0, 0 },
++ { ~0, 0, 0, 0, 0, 0, 0 },
++ { ~0, 0, 0, 0, 0, 0, 0 },
++ { ~0, 0, 0, 0, 0, 0, 0 },
++ { ~0, 0, 0, 0, 0, 0, 0 },
++ { ~0, 0, 0, 0, 0, 0, 0 },
++ { ~0, 0, 0, 0, 0, 0, 0 },
++ { ~0, 0, 0, 0, 0, 0, 0 },
++ { ~0, 0, 0, 0, 0, 0, 0 },
++ { ~0, 0, 0, 0, 0, 0, 0 },
++ { ~0, 0, 0, 0, 0, 0, 0 },
++ { ~0, 0, 0, 0, 0, 0, 0 },
++ { ~0, 0, 0, 0, 0, 0, 0 },
++ { ~0, 0, 0, 0, 0, 0, 0 },
++ { ~0, 0, 0, 0, 0, 0, 0 },
+ };
+
+ #define DBDEV_TAB_SIZE (sizeof(dbdev_tab) / sizeof(dbdev_tab_t))
+@@ -209,7 +209,7 @@
+ dbdev_tab_t *p=NULL;
+ static u16 new_id=0x1000;
+
+- p = find_dbdev_id(0);
++ p = find_dbdev_id(~0);
+ if ( NULL != p )
+ {
+ memcpy(p, dev, sizeof(dbdev_tab_t));
+diff -Nurd linux-2.6.24/arch/mips/au1000/common/gpio.c mer-smartq-kernel/arch/mips/au1000/common/gpio.c
+--- linux-2.6.24/arch/mips/au1000/common/gpio.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/au1000/common/gpio.c 2009-11-17 12:13:28.000000000 +0100
+@@ -54,7 +54,7 @@
+ {
+ gpio -= AU1XXX_GPIO_BASE;
+
+- gpio2->output = (GPIO2_OUTPUT_ENABLE_MASK << gpio) | (value << gpio);
++ gpio2->output = (GPIO2_OUTPUT_ENABLE_MASK << gpio) | ((!!value) << gpio);
+ }
+
+ static int au1xxx_gpio2_direction_input(unsigned gpio)
+@@ -67,7 +67,8 @@
+ static int au1xxx_gpio2_direction_output(unsigned gpio, int value)
+ {
+ gpio -= AU1XXX_GPIO_BASE;
+- gpio2->dir = (0x01 << gpio) | (value << gpio);
++ gpio2->dir |= 0x01 << gpio;
++ gpio2->output = (GPIO2_OUTPUT_ENABLE_MASK << gpio) | ((!!value) << gpio);
+ return 0;
+ }
+
+@@ -96,6 +97,7 @@
+ static int au1xxx_gpio1_direction_output(unsigned gpio, int value)
+ {
+ gpio1->trioutclr = (0x01 & gpio);
++ au1xxx_gpio1_write(gpio, value);
+ return 0;
+ }
+
+diff -Nurd linux-2.6.24/arch/mips/au1000/common/platform.c mer-smartq-kernel/arch/mips/au1000/common/platform.c
+--- linux-2.6.24/arch/mips/au1000/common/platform.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/au1000/common/platform.c 2009-11-17 12:13:28.000000000 +0100
+@@ -118,12 +118,12 @@
+ static struct resource au1xxx_mmc_resources[] = {
+ [0] = {
+ .start = SD0_PHYS_ADDR,
+- .end = SD0_PHYS_ADDR + 0x40,
++ .end = SD0_PHYS_ADDR + 0x7ffff,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .start = SD1_PHYS_ADDR,
+- .end = SD1_PHYS_ADDR + 0x40,
++ .end = SD1_PHYS_ADDR + 0x7ffff,
+ .flags = IORESOURCE_MEM,
+ },
+ [2] = {
+@@ -245,13 +245,12 @@
+ .id = 0,
+ };
+
+-#ifdef CONFIG_MIPS_DB1200
+-
++#if defined(CONFIG_MIPS_DB1200) || defined(CONFIG_MIPS_PB1200)
+ static struct resource smc91x_resources[] = {
+ [0] = {
+ .name = "smc91x-regs",
+ .start = AU1XXX_SMC91111_PHYS_ADDR,
+- .end = AU1XXX_SMC91111_PHYS_ADDR + 0xfffff,
++ .end = AU1XXX_SMC91111_PHYS_ADDR + 0xf,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+@@ -267,8 +266,7 @@
+ .num_resources = ARRAY_SIZE(smc91x_resources),
+ .resource = smc91x_resources,
+ };
+-
+-#endif
++#endif /* defined(CONFIG_MIPS_DB1200) || defined(CONFIG_MIPS_PB1200) */
+
+ static struct platform_device *au1xxx_platform_devices[] __initdata = {
+ &au1xxx_usb_ohci_device,
+@@ -284,7 +282,7 @@
+ &au1200_ide0_device,
+ &au1xxx_mmc_device,
+ #endif
+-#ifdef CONFIG_MIPS_DB1200
++#if defined(CONFIG_MIPS_DB1200) || defined(CONFIG_MIPS_PB1200)
+ &smc91x_device,
+ #endif
+ };
+diff -Nurd linux-2.6.24/arch/mips/au1000/common/setup.c mer-smartq-kernel/arch/mips/au1000/common/setup.c
+--- linux-2.6.24/arch/mips/au1000/common/setup.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/au1000/common/setup.c 2009-11-17 12:13:28.000000000 +0100
+@@ -57,7 +57,7 @@
+ {
+ struct cpu_spec *sp;
+ char *argptr;
+- unsigned long prid, cpupll, bclk = 1;
++ unsigned long prid, cpufreq, bclk = 1;
+
+ set_cpuspec();
+ sp = cur_cpu_spec[0];
+@@ -65,8 +65,15 @@
+ board_setup(); /* board specific setup */
+
+ prid = read_c0_prid();
+- cpupll = (au_readl(0xB1900060) & 0x3F) * 12;
+- printk("(PRId %08lx) @ %ldMHZ\n", prid, cpupll);
++ if (sp->cpu_pll_wo)
++#ifdef CONFIG_SOC_AU1000_FREQUENCY
++ cpufreq = CONFIG_SOC_AU1000_FREQUENCY / 1000000;
++#else
++ cpufreq = 396;
++#endif
++ else
++ cpufreq = (au_readl(SYS_CPUPLL) & 0x3F) * 12;
++ printk(KERN_INFO "(PRID %08lx) @ %ld MHz\n", prid, cpufreq);
+
+ bclk = sp->cpu_bclk;
+ if (bclk)
+diff -Nurd linux-2.6.24/arch/mips/au1000/common/time.c mer-smartq-kernel/arch/mips/au1000/common/time.c
+--- linux-2.6.24/arch/mips/au1000/common/time.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/au1000/common/time.c 2009-11-17 12:13:28.000000000 +0100
+@@ -209,18 +209,22 @@
+ while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S);
+ au_writel(0, SYS_TOYWRITE);
+ while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S);
++ } else
++ no_au1xxx_32khz = 1;
+
+- cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) *
+- AU1000_SRC_CLK;
+- }
+- else {
+- /* The 32KHz oscillator isn't running, so assume there
+- * isn't one and grab the processor speed from the PLL.
+- * NOTE: some old silicon doesn't allow reading the PLL.
+- */
++ /*
++ * On early Au1000, sys_cpupll was write-only. Since these
++ * silicon versions of Au1000 are not sold by AMD, we don't bend
++ * over backwards trying to determine the frequency.
++ */
++ if (cur_cpu_spec[0]->cpu_pll_wo)
++#ifdef CONFIG_SOC_AU1000_FREQUENCY
++ cpu_speed = CONFIG_SOC_AU1000_FREQUENCY;
++#else
++ cpu_speed = 396000000;
++#endif
++ else
+ cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * AU1000_SRC_CLK;
+- no_au1xxx_32khz = 1;
+- }
+ mips_hpt_frequency = cpu_speed;
+ // Equation: Baudrate = CPU / (SD * 2 * CLKDIV * 16)
+ set_au1x00_uart_baud_base(cpu_speed / (2 * ((int)(au_readl(SYS_POWERCTRL)&0x03) + 2) * 16));
+diff -Nurd linux-2.6.24/arch/mips/fw/arc/identify.c mer-smartq-kernel/arch/mips/fw/arc/identify.c
+--- linux-2.6.24/arch/mips/fw/arc/identify.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/fw/arc/identify.c 2009-11-17 12:13:29.000000000 +0100
+@@ -67,6 +67,11 @@
+ .liname = "SNI RM200_PCI",
+ .type = MACH_SNI_RM200_PCI,
+ .flags = PROM_FLAG_DONT_FREE_TEMP,
++ }, {
++ .arcname = "RM200PCI-R5K",
++ .liname = "SNI RM200_PCI-R5K",
++ .type = MACH_SNI_RM200_PCI,
++ .flags = PROM_FLAG_DONT_FREE_TEMP,
+ }
+ };
+
+diff -Nurd linux-2.6.24/arch/mips/Kconfig mer-smartq-kernel/arch/mips/Kconfig
+--- linux-2.6.24/arch/mips/Kconfig 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/Kconfig 2009-11-17 12:13:28.000000000 +0100
+@@ -1453,7 +1453,6 @@
+ depends on CPU_MIPS32_R2
+ #depends on CPU_MIPS64_R2 # once there is hardware ...
+ depends on SYS_SUPPORTS_MULTITHREADING
+- select GENERIC_CLOCKEVENTS_BROADCAST
+ select CPU_MIPSR2_IRQ_VI
+ select CPU_MIPSR2_IRQ_EI
+ select MIPS_MT
+@@ -1487,32 +1486,17 @@
+ Includes a loader for loading an elf relocatable object
+ onto another VPE and running it.
+
+-config MIPS_MT_SMTC_INSTANT_REPLAY
+- bool "Low-latency Dispatch of Deferred SMTC IPIs"
+- depends on MIPS_MT_SMTC && !PREEMPT
+- default y
+- help
+- SMTC pseudo-interrupts between TCs are deferred and queued
+- if the target TC is interrupt-inhibited (IXMT). In the first
+- SMTC prototypes, these queued IPIs were serviced on return
+- to user mode, or on entry into the kernel idle loop. The
+- INSTANT_REPLAY option dispatches them as part of local_irq_restore()
+- processing, which adds runtime overhead (hence the option to turn
+- it off), but ensures that IPIs are handled promptly even under
+- heavy I/O interrupt load.
+-
+ config MIPS_MT_SMTC_IM_BACKSTOP
+ bool "Use per-TC register bits as backstop for inhibited IM bits"
+ depends on MIPS_MT_SMTC
+- default y
++ default n
+ help
+ To support multiple TC microthreads acting as "CPUs" within
+ a VPE, VPE-wide interrupt mask bits must be specially manipulated
+ during interrupt handling. To support legacy drivers and interrupt
+ controller management code, SMTC has a "backstop" to track and
+ if necessary restore the interrupt mask. This has some performance
+- impact on interrupt service overhead. Disable it only if you know
+- what you are doing.
++ impact on interrupt service overhead.
+
+ config MIPS_MT_SMTC_IRQAFF
+ bool "Support IRQ affinity API"
+@@ -1522,10 +1506,8 @@
+ Enables SMP IRQ affinity API (/proc/irq/*/smp_affinity, etc.)
+ for SMTC Linux kernel. Requires platform support, of which
+ an example can be found in the MIPS kernel i8259 and Malta
+- platform code. It is recommended that MIPS_MT_SMTC_INSTANT_REPLAY
+- be enabled if MIPS_MT_SMTC_IRQAFF is used. Adds overhead to
+- interrupt dispatch, and should be used only if you know what
+- you are doing.
++ platform code. Adds some overhead to interrupt dispatch, and
++ should be used only if you know what you are doing.
+
+ config MIPS_VPE_LOADER_TOM
+ bool "Load VPE program into memory hidden from linux"
+@@ -1781,7 +1763,7 @@
+ Allows the configuration of the timer frequency.
+
+ config HZ_48
+- bool "48 HZ" if SYS_SUPPORTS_48HZ
++ bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
+
+ config HZ_100
+ bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
+diff -Nurd linux-2.6.24/arch/mips/kernel/asm-offsets.c mer-smartq-kernel/arch/mips/kernel/asm-offsets.c
+--- linux-2.6.24/arch/mips/kernel/asm-offsets.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/asm-offsets.c 2009-11-17 12:13:29.000000000 +0100
+@@ -13,7 +13,7 @@
+ #include <linux/sched.h>
+ #include <linux/mm.h>
+ #include <linux/interrupt.h>
+-
++#include <asm/gdb-stub.h>
+ #include <asm/ptrace.h>
+ #include <asm/processor.h>
+
+@@ -337,3 +337,109 @@
+ size("#define IC_IRQ_CPUSTAT_T ", irq_cpustat_t);
+ linefeed;
+ }
++
++void output_gdbreg_defines(void)
++{
++ text("/* MIPS struct gdb_regs offsets. */");
++ offset("#define GDB_FR_REG0 ", struct gdb_regs, reg0);
++ offset("#define GDB_FR_REG1 ", struct gdb_regs, reg1);
++ offset("#define GDB_FR_REG2 ", struct gdb_regs, reg2);
++ offset("#define GDB_FR_REG3 ", struct gdb_regs, reg3);
++ offset("#define GDB_FR_REG4 ", struct gdb_regs, reg4);
++ offset("#define GDB_FR_REG5 ", struct gdb_regs, reg5);
++ offset("#define GDB_FR_REG6 ", struct gdb_regs, reg6);
++ offset("#define GDB_FR_REG7 ", struct gdb_regs, reg7);
++ offset("#define GDB_FR_REG8 ", struct gdb_regs, reg8);
++ offset("#define GDB_FR_REG9 ", struct gdb_regs, reg9);
++ offset("#define GDB_FR_REG10 ", struct gdb_regs, reg10);
++ offset("#define GDB_FR_REG11 ", struct gdb_regs, reg11);
++ offset("#define GDB_FR_REG12 ", struct gdb_regs, reg12);
++ offset("#define GDB_FR_REG13 ", struct gdb_regs, reg13);
++ offset("#define GDB_FR_REG14 ", struct gdb_regs, reg14);
++ offset("#define GDB_FR_REG15 ", struct gdb_regs, reg15);
++ offset("#define GDB_FR_REG16 ", struct gdb_regs, reg16);
++ offset("#define GDB_FR_REG17 ", struct gdb_regs, reg17);
++ offset("#define GDB_FR_REG18 ", struct gdb_regs, reg18);
++ offset("#define GDB_FR_REG19 ", struct gdb_regs, reg19);
++ offset("#define GDB_FR_REG20 ", struct gdb_regs, reg20);
++ offset("#define GDB_FR_REG21 ", struct gdb_regs, reg21);
++ offset("#define GDB_FR_REG22 ", struct gdb_regs, reg22);
++ offset("#define GDB_FR_REG23 ", struct gdb_regs, reg23);
++ offset("#define GDB_FR_REG24 ", struct gdb_regs, reg24);
++ offset("#define GDB_FR_REG25 ", struct gdb_regs, reg25);
++ offset("#define GDB_FR_REG26 ", struct gdb_regs, reg26);
++ offset("#define GDB_FR_REG27 ", struct gdb_regs, reg27);
++ offset("#define GDB_FR_REG28 ", struct gdb_regs, reg28);
++ offset("#define GDB_FR_REG29 ", struct gdb_regs, reg29);
++ offset("#define GDB_FR_REG30 ", struct gdb_regs, reg30);
++ offset("#define GDB_FR_REG31 ", struct gdb_regs, reg31);
++ linefeed;
++
++ offset("#define GDB_FR_STATUS ", struct gdb_regs, cp0_status);
++ offset("#define GDB_FR_HI ", struct gdb_regs, hi);
++ offset("#define GDB_FR_LO ", struct gdb_regs, lo);
++#ifdef CONFIG_CPU_HAS_SMARTMIPS
++ offset("#define GDB_FR_ACX ", struct gdb_regs, acx);
++#endif
++ offset("#define GDB_FR_BADVADDR ", struct gdb_regs, cp0_badvaddr);
++ offset("#define GDB_FR_CAUSE ", struct gdb_regs, cp0_cause);
++ offset("#define GDB_FR_EPC ", struct gdb_regs, cp0_epc);
++ linefeed;
++
++ offset("#define GDB_FR_FPR0 ", struct gdb_regs, fpr0);
++ offset("#define GDB_FR_FPR1 ", struct gdb_regs, fpr1);
++ offset("#define GDB_FR_FPR2 ", struct gdb_regs, fpr2);
++ offset("#define GDB_FR_FPR3 ", struct gdb_regs, fpr3);
++ offset("#define GDB_FR_FPR4 ", struct gdb_regs, fpr4);
++ offset("#define GDB_FR_FPR5 ", struct gdb_regs, fpr5);
++ offset("#define GDB_FR_FPR6 ", struct gdb_regs, fpr6);
++ offset("#define GDB_FR_FPR7 ", struct gdb_regs, fpr7);
++ offset("#define GDB_FR_FPR8 ", struct gdb_regs, fpr8);
++ offset("#define GDB_FR_FPR9 ", struct gdb_regs, fpr9);
++ offset("#define GDB_FR_FPR10 ", struct gdb_regs, fpr10);
++ offset("#define GDB_FR_FPR11 ", struct gdb_regs, fpr11);
++ offset("#define GDB_FR_FPR12 ", struct gdb_regs, fpr12);
++ offset("#define GDB_FR_FPR13 ", struct gdb_regs, fpr13);
++ offset("#define GDB_FR_FPR14 ", struct gdb_regs, fpr14);
++ offset("#define GDB_FR_FPR15 ", struct gdb_regs, fpr15);
++ offset("#define GDB_FR_FPR16 ", struct gdb_regs, fpr16);
++ offset("#define GDB_FR_FPR17 ", struct gdb_regs, fpr17);
++ offset("#define GDB_FR_FPR18 ", struct gdb_regs, fpr18);
++ offset("#define GDB_FR_FPR19 ", struct gdb_regs, fpr19);
++ offset("#define GDB_FR_FPR20 ", struct gdb_regs, fpr20);
++ offset("#define GDB_FR_FPR21 ", struct gdb_regs, fpr21);
++ offset("#define GDB_FR_FPR22 ", struct gdb_regs, fpr22);
++ offset("#define GDB_FR_FPR23 ", struct gdb_regs, fpr23);
++ offset("#define GDB_FR_FPR24 ", struct gdb_regs, fpr24);
++ offset("#define GDB_FR_FPR25 ", struct gdb_regs, fpr25);
++ offset("#define GDB_FR_FPR26 ", struct gdb_regs, fpr26);
++ offset("#define GDB_FR_FPR27 ", struct gdb_regs, fpr27);
++ offset("#define GDB_FR_FPR28 ", struct gdb_regs, fpr28);
++ offset("#define GDB_FR_FPR29 ", struct gdb_regs, fpr29);
++ offset("#define GDB_FR_FPR30 ", struct gdb_regs, fpr30);
++ offset("#define GDB_FR_FPR31 ", struct gdb_regs, fpr31);
++ linefeed;
++
++ offset("#define GDB_FR_FSR ", struct gdb_regs, cp1_fsr);
++ offset("#define GDB_FR_FIR ", struct gdb_regs, cp1_fir);
++ offset("#define GDB_FR_FRP ", struct gdb_regs, frame_ptr);
++ offset("#define GDB_FR_DUMMY ", struct gdb_regs, dummy);
++
++ offset("#define GDB_FR_CP0_INDEX ", struct gdb_regs, cp0_index);
++ offset("#define GDB_FR_CP0_RANDOM ", struct gdb_regs, cp0_random);
++ offset("#define GDB_FR_CP0_ENTRYLO0 ", struct gdb_regs, cp0_entrylo0);
++ offset("#define GDB_FR_CP0_ENTRYLO1 ", struct gdb_regs, cp0_entrylo1);
++ offset("#define GDB_FR_CP0_CONTEXT ", struct gdb_regs, cp0_context);
++ offset("#define GDB_FR_CP0_PAGEMASK ", struct gdb_regs, cp0_pagemask);
++ offset("#define GDB_FR_CP0_WIRED ", struct gdb_regs, cp0_wired);
++ offset("#define GDB_FR_CP0_REG7 ", struct gdb_regs, cp0_reg7);
++ offset("#define GDB_FR_CP0_REG8 ", struct gdb_regs, cp0_reg8);
++ offset("#define GDB_FR_CP0_REG9 ", struct gdb_regs, cp0_reg9);
++ offset("#define GDB_FR_CP0_ENTRYHI ", struct gdb_regs, cp0_entryhi);
++ offset("#define GDB_FR_CP0_REG11 ", struct gdb_regs, cp0_reg11);
++ offset("#define GDB_FR_CP0_REG12 ", struct gdb_regs, cp0_reg12);
++ offset("#define GDB_FR_CP0_REG13 ", struct gdb_regs, cp0_reg13);
++ offset("#define GDB_FR_CP0_REG14 ", struct gdb_regs, cp0_reg14);
++ offset("#define GDB_FR_CP0_PRID ", struct gdb_regs, cp0_prid);
++ size("#define GDB_FR_SIZE ", struct gdb_regs);
++}
+diff -Nurd linux-2.6.24/arch/mips/kernel/cevt-r4k.c mer-smartq-kernel/arch/mips/kernel/cevt-r4k.c
+--- linux-2.6.24/arch/mips/kernel/cevt-r4k.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/cevt-r4k.c 2009-11-17 12:13:29.000000000 +0100
+@@ -12,6 +12,14 @@
+
+ #include <asm/smtc_ipi.h>
+ #include <asm/time.h>
++#include <asm/cevt-r4k.h>
++
++/*
++ * The SMTC Kernel for the 34K, 1004K, et. al. replaces several
++ * of these routines with SMTC-specific variants.
++ */
++
++#ifndef CONFIG_MIPS_MT_SMTC
+
+ static int mips_next_event(unsigned long delta,
+ struct clock_event_device *evt)
+@@ -19,60 +27,27 @@
+ unsigned int cnt;
+ int res;
+
+-#ifdef CONFIG_MIPS_MT_SMTC
+- {
+- unsigned long flags, vpflags;
+- local_irq_save(flags);
+- vpflags = dvpe();
+-#endif
+ cnt = read_c0_count();
+ cnt += delta;
+ write_c0_compare(cnt);
+ res = ((int)(read_c0_count() - cnt) > 0) ? -ETIME : 0;
+-#ifdef CONFIG_MIPS_MT_SMTC
+- evpe(vpflags);
+- local_irq_restore(flags);
+- }
+-#endif
+ return res;
+ }
+
+-static void mips_set_mode(enum clock_event_mode mode,
+- struct clock_event_device *evt)
++#endif /* CONFIG_MIPS_MT_SMTC */
++
++void mips_set_clock_mode(enum clock_event_mode mode,
++ struct clock_event_device *evt)
+ {
+ /* Nothing to do ... */
+ }
+
+-static DEFINE_PER_CPU(struct clock_event_device, mips_clockevent_device);
+-static int cp0_timer_irq_installed;
+-
+-/*
+- * Timer ack for an R4k-compatible timer of a known frequency.
+- */
+-static void c0_timer_ack(void)
+-{
+- write_c0_compare(read_c0_compare());
+-}
++DEFINE_PER_CPU(struct clock_event_device, mips_clockevent_device);
++int cp0_timer_irq_installed;
+
+-/*
+- * Possibly handle a performance counter interrupt.
+- * Return true if the timer interrupt should not be checked
+- */
+-static inline int handle_perf_irq(int r2)
+-{
+- /*
+- * The performance counter overflow interrupt may be shared with the
+- * timer interrupt (cp0_perfcount_irq < 0). If it is and a
+- * performance counter has overflowed (perf_irq() == IRQ_HANDLED)
+- * and we can't reliably determine if a counter interrupt has also
+- * happened (!r2) then don't check for a timer interrupt.
+- */
+- return (cp0_perfcount_irq < 0) &&
+- perf_irq() == IRQ_HANDLED &&
+- !r2;
+-}
++#ifndef CONFIG_MIPS_MT_SMTC
+
+-static irqreturn_t c0_compare_interrupt(int irq, void *dev_id)
++irqreturn_t c0_compare_interrupt(int irq, void *dev_id)
+ {
+ const int r2 = cpu_has_mips_r2;
+ struct clock_event_device *cd;
+@@ -93,12 +68,8 @@
+ * interrupt. Being the paranoiacs we are we check anyway.
+ */
+ if (!r2 || (read_c0_cause() & (1 << 30))) {
+- c0_timer_ack();
+-#ifdef CONFIG_MIPS_MT_SMTC
+- if (cpu_data[cpu].vpe_id)
+- goto out;
+- cpu = 0;
+-#endif
++ /* Clear Count/Compare Interrupt */
++ write_c0_compare(read_c0_compare());
+ cd = &per_cpu(mips_clockevent_device, cpu);
+ cd->event_handler(cd);
+ }
+@@ -107,65 +78,16 @@
+ return IRQ_HANDLED;
+ }
+
+-static struct irqaction c0_compare_irqaction = {
++#endif /* Not CONFIG_MIPS_MT_SMTC */
++
++struct irqaction c0_compare_irqaction = {
+ .handler = c0_compare_interrupt,
+-#ifdef CONFIG_MIPS_MT_SMTC
+- .flags = IRQF_DISABLED,
+-#else
+ .flags = IRQF_DISABLED | IRQF_PERCPU,
+-#endif
+ .name = "timer",
+ };
+
+-#ifdef CONFIG_MIPS_MT_SMTC
+-DEFINE_PER_CPU(struct clock_event_device, smtc_dummy_clockevent_device);
+
+-static void smtc_set_mode(enum clock_event_mode mode,
+- struct clock_event_device *evt)
+-{
+-}
+-
+-static void mips_broadcast(cpumask_t mask)
+-{
+- unsigned int cpu;
+-
+- for_each_cpu_mask(cpu, mask)
+- smtc_send_ipi(cpu, SMTC_CLOCK_TICK, 0);
+-}
+-
+-static void setup_smtc_dummy_clockevent_device(void)
+-{
+- //uint64_t mips_freq = mips_hpt_^frequency;
+- unsigned int cpu = smp_processor_id();
+- struct clock_event_device *cd;
+-
+- cd = &per_cpu(smtc_dummy_clockevent_device, cpu);
+-
+- cd->name = "SMTC";
+- cd->features = CLOCK_EVT_FEAT_DUMMY;
+-
+- /* Calculate the min / max delta */
+- cd->mult = 0; //div_sc((unsigned long) mips_freq, NSEC_PER_SEC, 32);
+- cd->shift = 0; //32;
+- cd->max_delta_ns = 0; //clockevent_delta2ns(0x7fffffff, cd);
+- cd->min_delta_ns = 0; //clockevent_delta2ns(0x30, cd);
+-
+- cd->rating = 200;
+- cd->irq = 17; //-1;
+-// if (cpu)
+-// cd->cpumask = CPU_MASK_ALL; // cpumask_of_cpu(cpu);
+-// else
+- cd->cpumask = cpumask_of_cpu(cpu);
+-
+- cd->set_mode = smtc_set_mode;
+-
+- cd->broadcast = mips_broadcast;
+-
+- clockevents_register_device(cd);
+-}
+-#endif
+-
+-static void mips_event_handler(struct clock_event_device *dev)
++void mips_event_handler(struct clock_event_device *dev)
+ {
+ }
+
+@@ -177,7 +99,23 @@
+ return (read_c0_cause() >> cp0_compare_irq) & 0x100;
+ }
+
+-static int c0_compare_int_usable(void)
++/*
++ * Compare interrupt can be routed and latched outside the core,
++ * so a single execution hazard barrier may not be enough to give
++ * it time to clear as seen in the Cause register. 4 time the
++ * pipeline depth seems reasonably conservative, and empirically
++ * works better in configurations with high CPU/bus clock ratios.
++ */
++
++#define compare_change_hazard() \
++ do { \
++ irq_disable_hazard(); \
++ irq_disable_hazard(); \
++ irq_disable_hazard(); \
++ irq_disable_hazard(); \
++ } while (0)
++
++int c0_compare_int_usable(void)
+ {
+ unsigned int delta;
+ unsigned int cnt;
+@@ -187,7 +125,7 @@
+ */
+ if (c0_compare_int_pending()) {
+ write_c0_compare(read_c0_count());
+- irq_disable_hazard();
++ compare_change_hazard();
+ if (c0_compare_int_pending())
+ return 0;
+ }
+@@ -196,7 +134,7 @@
+ cnt = read_c0_count();
+ cnt += delta;
+ write_c0_compare(cnt);
+- irq_disable_hazard();
++ compare_change_hazard();
+ if ((int)(read_c0_count() - cnt) < 0)
+ break;
+ /* increase delta if the timer was already expired */
+@@ -205,11 +143,12 @@
+ while ((int)(read_c0_count() - cnt) <= 0)
+ ; /* Wait for expiry */
+
++ compare_change_hazard();
+ if (!c0_compare_int_pending())
+ return 0;
+
+ write_c0_compare(read_c0_count());
+- irq_disable_hazard();
++ compare_change_hazard();
+ if (c0_compare_int_pending())
+ return 0;
+
+@@ -219,6 +158,8 @@
+ return 1;
+ }
+
++#ifndef CONFIG_MIPS_MT_SMTC
++
+ int __cpuinit mips_clockevent_init(void)
+ {
+ uint64_t mips_freq = mips_hpt_frequency;
+@@ -229,17 +170,6 @@
+ if (!cpu_has_counter || !mips_hpt_frequency)
+ return -ENXIO;
+
+-#ifdef CONFIG_MIPS_MT_SMTC
+- setup_smtc_dummy_clockevent_device();
+-
+- /*
+- * On SMTC we only register VPE0's compare interrupt as clockevent
+- * device.
+- */
+- if (cpu)
+- return 0;
+-#endif
+-
+ if (!c0_compare_int_usable())
+ return -ENXIO;
+
+@@ -265,13 +195,9 @@
+
+ cd->rating = 300;
+ cd->irq = irq;
+-#ifdef CONFIG_MIPS_MT_SMTC
+- cd->cpumask = CPU_MASK_ALL;
+-#else
+ cd->cpumask = cpumask_of_cpu(cpu);
+-#endif
+ cd->set_next_event = mips_next_event;
+- cd->set_mode = mips_set_mode;
++ cd->set_mode = mips_set_clock_mode;
+ cd->event_handler = mips_event_handler;
+
+ clockevents_register_device(cd);
+@@ -281,12 +207,9 @@
+
+ cp0_timer_irq_installed = 1;
+
+-#ifdef CONFIG_MIPS_MT_SMTC
+-#define CPUCTR_IMASKBIT (0x100 << cp0_compare_irq)
+- setup_irq_smtc(irq, &c0_compare_irqaction, CPUCTR_IMASKBIT);
+-#else
+ setup_irq(irq, &c0_compare_irqaction);
+-#endif
+
+ return 0;
+ }
++
++#endif /* Not CONFIG_MIPS_MT_SMTC */
+diff -Nurd linux-2.6.24/arch/mips/kernel/cevt-smtc.c mer-smartq-kernel/arch/mips/kernel/cevt-smtc.c
+--- linux-2.6.24/arch/mips/kernel/cevt-smtc.c 1970-01-01 01:00:00.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/cevt-smtc.c 2009-11-17 12:13:29.000000000 +0100
+@@ -0,0 +1,321 @@
++/*
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file "COPYING" in the main directory of this archive
++ * for more details.
++ *
++ * Copyright (C) 2007 MIPS Technologies, Inc.
++ * Copyright (C) 2007 Ralf Baechle <ralf@linux-mips.org>
++ * Copyright (C) 2008 Kevin D. Kissell, Paralogos sarl
++ */
++#include <linux/clockchips.h>
++#include <linux/interrupt.h>
++#include <linux/percpu.h>
++
++#include <asm/smtc_ipi.h>
++#include <asm/time.h>
++#include <asm/cevt-r4k.h>
++
++/*
++ * Variant clock event timer support for SMTC on MIPS 34K, 1004K
++ * or other MIPS MT cores.
++ *
++ * Notes on SMTC Support:
++ *
++ * SMTC has multiple microthread TCs pretending to be Linux CPUs.
++ * But there's only one Count/Compare pair per VPE, and Compare
++ * interrupts are taken opportunisitically by available TCs
++ * bound to the VPE with the Count register. The new timer
++ * framework provides for global broadcasts, but we really
++ * want VPE-level multicasts for best behavior. So instead
++ * of invoking the high-level clock-event broadcast code,
++ * this version of SMTC support uses the historical SMTC
++ * multicast mechanisms "under the hood", appearing to the
++ * generic clock layer as if the interrupts are per-CPU.
++ *
++ * The approach taken here is to maintain a set of NR_CPUS
++ * virtual timers, and track which "CPU" needs to be alerted
++ * at each event.
++ *
++ * It's unlikely that we'll see a MIPS MT core with more than
++ * 2 VPEs, but we *know* that we won't need to handle more
++ * VPEs than we have "CPUs". So NCPUs arrays of NCPUs elements
++ * is always going to be overkill, but always going to be enough.
++ */
++
++unsigned long smtc_nexttime[NR_CPUS][NR_CPUS];
++static int smtc_nextinvpe[NR_CPUS];
++
++/*
++ * Timestamps stored are absolute values to be programmed
++ * into Count register. Valid timestamps will never be zero.
++ * If a Zero Count value is actually calculated, it is converted
++ * to be a 1, which will introduce 1 or two CPU cycles of error
++ * roughly once every four billion events, which at 1000 HZ means
++ * about once every 50 days. If that's actually a problem, one
++ * could alternate squashing 0 to 1 and to -1.
++ */
++
++#define MAKEVALID(x) (((x) == 0L) ? 1L : (x))
++#define ISVALID(x) ((x) != 0L)
++
++/*
++ * Time comparison is subtle, as it's really truncated
++ * modular arithmetic.
++ */
++
++#define IS_SOONER(a, b, reference) \
++ (((a) - (unsigned long)(reference)) < ((b) - (unsigned long)(reference)))
++
++/*
++ * CATCHUP_INCREMENT, used when the function falls behind the counter.
++ * Could be an increasing function instead of a constant;
++ */
++
++#define CATCHUP_INCREMENT 64
++
++static int mips_next_event(unsigned long delta,
++ struct clock_event_device *evt)
++{
++ unsigned long flags;
++ unsigned int mtflags;
++ unsigned long timestamp, reference, previous;
++ unsigned long nextcomp = 0L;
++ int vpe = current_cpu_data.vpe_id;
++ int cpu = smp_processor_id();
++ local_irq_save(flags);
++ mtflags = dmt();
++
++ /*
++ * Maintain the per-TC virtual timer
++ * and program the per-VPE shared Count register
++ * as appropriate here...
++ */
++ reference = (unsigned long)read_c0_count();
++ timestamp = MAKEVALID(reference + delta);
++ /*
++ * To really model the clock, we have to catch the case
++ * where the current next-in-VPE timestamp is the old
++ * timestamp for the calling CPE, but the new value is
++ * in fact later. In that case, we have to do a full
++ * scan and discover the new next-in-VPE CPU id and
++ * timestamp.
++ */
++ previous = smtc_nexttime[vpe][cpu];
++ if (cpu == smtc_nextinvpe[vpe] && ISVALID(previous)
++ && IS_SOONER(previous, timestamp, reference)) {
++ int i;
++ int soonest = cpu;
++
++ /*
++ * Update timestamp array here, so that new
++ * value gets considered along with those of
++ * other virtual CPUs on the VPE.
++ */
++ smtc_nexttime[vpe][cpu] = timestamp;
++ for_each_online_cpu(i) {
++ if (ISVALID(smtc_nexttime[vpe][i])
++ && IS_SOONER(smtc_nexttime[vpe][i],
++ smtc_nexttime[vpe][soonest], reference)) {
++ soonest = i;
++ }
++ }
++ smtc_nextinvpe[vpe] = soonest;
++ nextcomp = smtc_nexttime[vpe][soonest];
++ /*
++ * Otherwise, we don't have to process the whole array rank,
++ * we just have to see if the event horizon has gotten closer.
++ */
++ } else {
++ if (!ISVALID(smtc_nexttime[vpe][smtc_nextinvpe[vpe]]) ||
++ IS_SOONER(timestamp,
++ smtc_nexttime[vpe][smtc_nextinvpe[vpe]], reference)) {
++ smtc_nextinvpe[vpe] = cpu;
++ nextcomp = timestamp;
++ }
++ /*
++ * Since next-in-VPE may me the same as the executing
++ * virtual CPU, we update the array *after* checking
++ * its value.
++ */
++ smtc_nexttime[vpe][cpu] = timestamp;
++ }
++
++ /*
++ * It may be that, in fact, we don't need to update Compare,
++ * but if we do, we want to make sure we didn't fall into
++ * a crack just behind Count.
++ */
++ if (ISVALID(nextcomp)) {
++ write_c0_compare(nextcomp);
++ ehb();
++ /*
++ * We never return an error, we just make sure
++ * that we trigger the handlers as quickly as
++ * we can if we fell behind.
++ */
++ while ((nextcomp - (unsigned long)read_c0_count())
++ > (unsigned long)LONG_MAX) {
++ nextcomp += CATCHUP_INCREMENT;
++ write_c0_compare(nextcomp);
++ ehb();
++ }
++ }
++ emt(mtflags);
++ local_irq_restore(flags);
++ return 0;
++}
++
++
++void smtc_distribute_timer(int vpe)
++{
++ unsigned long flags;
++ unsigned int mtflags;
++ int cpu;
++ struct clock_event_device *cd;
++ unsigned long nextstamp = 0L;
++ unsigned long reference;
++
++
++repeat:
++ for_each_online_cpu(cpu) {
++ /*
++ * Find virtual CPUs within the current VPE who have
++ * unserviced timer requests whose time is now past.
++ */
++ local_irq_save(flags);
++ mtflags = dmt();
++ if (cpu_data[cpu].vpe_id == vpe &&
++ ISVALID(smtc_nexttime[vpe][cpu])) {
++ reference = (unsigned long)read_c0_count();
++ if ((smtc_nexttime[vpe][cpu] - reference)
++ > (unsigned long)LONG_MAX) {
++ smtc_nexttime[vpe][cpu] = 0L;
++ emt(mtflags);
++ local_irq_restore(flags);
++ /*
++ * We don't send IPIs to ourself.
++ */
++ if (cpu != smp_processor_id()) {
++ smtc_send_ipi(cpu, SMTC_CLOCK_TICK, 0);
++ } else {
++ cd = &per_cpu(mips_clockevent_device, cpu);
++ cd->event_handler(cd);
++ }
++ } else {
++ /* Local to VPE but Valid Time not yet reached. */
++ if (!ISVALID(nextstamp) ||
++ IS_SOONER(smtc_nexttime[vpe][cpu], nextstamp,
++ reference)) {
++ smtc_nextinvpe[vpe] = cpu;
++ nextstamp = smtc_nexttime[vpe][cpu];
++ }
++ emt(mtflags);
++ local_irq_restore(flags);
++ }
++ } else {
++ emt(mtflags);
++ local_irq_restore(flags);
++
++ }
++ }
++ /* Reprogram for interrupt at next soonest timestamp for VPE */
++ if (ISVALID(nextstamp)) {
++ write_c0_compare(nextstamp);
++ ehb();
++ if ((nextstamp - (unsigned long)read_c0_count())
++ > (unsigned long)LONG_MAX)
++ goto repeat;
++ }
++}
++
++
++irqreturn_t c0_compare_interrupt(int irq, void *dev_id)
++{
++ int cpu = smp_processor_id();
++
++ /* If we're running SMTC, we've got MIPS MT and therefore MIPS32R2 */
++ handle_perf_irq(1);
++
++ if (read_c0_cause() & (1 << 30)) {
++ /* Clear Count/Compare Interrupt */
++ write_c0_compare(read_c0_compare());
++ smtc_distribute_timer(cpu_data[cpu].vpe_id);
++ }
++ return IRQ_HANDLED;
++}
++
++
++int __cpuinit mips_clockevent_init(void)
++{
++ uint64_t mips_freq = mips_hpt_frequency;
++ unsigned int cpu = smp_processor_id();
++ struct clock_event_device *cd;
++ unsigned int irq;
++ int i;
++ int j;
++
++ if (!cpu_has_counter || !mips_hpt_frequency)
++ return -ENXIO;
++ if (cpu == 0) {
++ for (i = 0; i < num_possible_cpus(); i++) {
++ smtc_nextinvpe[i] = 0;
++ for (j = 0; j < num_possible_cpus(); j++)
++ smtc_nexttime[i][j] = 0L;
++ }
++ /*
++ * SMTC also can't have the usablility test
++ * run by secondary TCs once Compare is in use.
++ */
++ if (!c0_compare_int_usable())
++ return -ENXIO;
++ }
++
++ /*
++ * With vectored interrupts things are getting platform specific.
++ * get_c0_compare_int is a hook to allow a platform to return the
++ * interrupt number of it's liking.
++ */
++ irq = MIPS_CPU_IRQ_BASE + cp0_compare_irq;
++ if (get_c0_compare_int)
++ irq = get_c0_compare_int();
++
++ cd = &per_cpu(mips_clockevent_device, cpu);
++
++ cd->name = "MIPS";
++ cd->features = CLOCK_EVT_FEAT_ONESHOT;
++
++ /* Calculate the min / max delta */
++ cd->mult = div_sc((unsigned long) mips_freq, NSEC_PER_SEC, 32);
++ cd->shift = 32;
++ cd->max_delta_ns = clockevent_delta2ns(0x7fffffff, cd);
++ cd->min_delta_ns = clockevent_delta2ns(0x300, cd);
++
++ cd->rating = 300;
++ cd->irq = irq;
++ cd->cpumask = cpumask_of_cpu(cpu);
++ cd->set_next_event = mips_next_event;
++ cd->set_mode = mips_set_clock_mode;
++ cd->event_handler = mips_event_handler;
++
++ clockevents_register_device(cd);
++
++ /*
++ * On SMTC we only want to do the data structure
++ * initialization and IRQ setup once.
++ */
++ if (cpu)
++ return 0;
++ /*
++ * And we need the hwmask associated with the c0_compare
++ * vector to be initialized.
++ */
++ irq_hwmask[irq] = (0x100 << cp0_compare_irq);
++ if (cp0_timer_irq_installed)
++ return 0;
++
++ cp0_timer_irq_installed = 1;
++
++ setup_irq(irq, &c0_compare_irqaction);
++
++ return 0;
++}
+diff -Nurd linux-2.6.24/arch/mips/kernel/cevt-txx9.c mer-smartq-kernel/arch/mips/kernel/cevt-txx9.c
+--- linux-2.6.24/arch/mips/kernel/cevt-txx9.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/cevt-txx9.c 2009-11-17 12:13:29.000000000 +0100
+@@ -161,6 +161,9 @@
+ struct txx9_tmr_reg __iomem *tmrptr;
+
+ tmrptr = ioremap(baseaddr, sizeof(struct txx9_tmr_reg));
++ /* Start once to make CounterResetEnable effective */
++ __raw_writel(TXx9_TMTCR_CRE | TXx9_TMTCR_TCE, &tmrptr->tcr);
++ /* Stop and reset the counter */
+ __raw_writel(TXx9_TMTCR_CRE, &tmrptr->tcr);
+ __raw_writel(0, &tmrptr->tisr);
+ __raw_writel(0xffffffff, &tmrptr->cpra);
+diff -Nurd linux-2.6.24/arch/mips/kernel/cpu-bugs64.c mer-smartq-kernel/arch/mips/kernel/cpu-bugs64.c
+--- linux-2.6.24/arch/mips/kernel/cpu-bugs64.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/cpu-bugs64.c 2009-11-17 12:13:29.000000000 +0100
+@@ -164,7 +164,7 @@
+ );
+ }
+
+-static volatile int daddi_ov __initdata = 0;
++static volatile int daddi_ov __cpuinitdata = 0;
+
+ asmlinkage void __init do_daddi_ov(struct pt_regs *regs)
+ {
+diff -Nurd linux-2.6.24/arch/mips/kernel/cpu-probe.c mer-smartq-kernel/arch/mips/kernel/cpu-probe.c
+--- linux-2.6.24/arch/mips/kernel/cpu-probe.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/cpu-probe.c 2009-11-17 12:13:29.000000000 +0100
+@@ -45,18 +45,7 @@
+ local_irq_enable();
+ }
+
+-/*
+- * There is a race when WAIT instruction executed with interrupt
+- * enabled.
+- * But it is implementation-dependent wheter the pipelie restarts when
+- * a non-enabled interrupt is requested.
+- */
+-static void r4k_wait(void)
+-{
+- __asm__(" .set mips3 \n"
+- " wait \n"
+- " .set mips0 \n");
+-}
++extern void r4k_wait(void);
+
+ /*
+ * This variant is preferable as it allows testing need_resched and going to
+@@ -65,14 +54,18 @@
+ * interrupt is requested" restriction in the MIPS32/MIPS64 architecture makes
+ * using this version a gamble.
+ */
+-static void r4k_wait_irqoff(void)
++void r4k_wait_irqoff(void)
+ {
+ local_irq_disable();
+ if (!need_resched())
+- __asm__(" .set mips3 \n"
++ __asm__(" .set push \n"
++ " .set mips3 \n"
+ " wait \n"
+- " .set mips0 \n");
++ " .set pop \n");
+ local_irq_enable();
++ __asm__(" .globl __pastwait \n"
++ "__pastwait: \n");
++ return;
+ }
+
+ /*
+@@ -128,7 +121,7 @@
+
+ __setup("nowait", wait_disable);
+
+-static inline void check_wait(void)
++void __init check_wait(void)
+ {
+ struct cpuinfo_mips *c = &current_cpu_data;
+
+@@ -239,7 +232,6 @@
+
+ void __init check_bugs32(void)
+ {
+- check_wait();
+ check_errata();
+ }
+
+@@ -548,7 +540,7 @@
+ }
+ }
+
+-static char unknown_isa[] __initdata = KERN_ERR \
++static char unknown_isa[] __cpuinitdata = KERN_ERR \
+ "Unsupported ISA type, c0.config0: %d.";
+
+ static inline unsigned int decode_config0(struct cpuinfo_mips *c)
+@@ -654,7 +646,7 @@
+ return config3 & MIPS_CONF_M;
+ }
+
+-static void __init decode_configs(struct cpuinfo_mips *c)
++static void __cpuinit decode_configs(struct cpuinfo_mips *c)
+ {
+ /* MIPS32 or MIPS64 compliant CPU. */
+ c->options = MIPS_CPU_4KEX | MIPS_CPU_4K_CACHE | MIPS_CPU_COUNTER |
+@@ -807,7 +799,7 @@
+ /*
+ * Name a CPU
+ */
+-static __init const char *cpu_to_name(struct cpuinfo_mips *c)
++static __cpuinit const char *cpu_to_name(struct cpuinfo_mips *c)
+ {
+ const char *name = NULL;
+
+@@ -887,7 +879,7 @@
+ return name;
+ }
+
+-__init void cpu_probe(void)
++__cpuinit void cpu_probe(void)
+ {
+ struct cpuinfo_mips *c = &current_cpu_data;
+ unsigned int cpu = smp_processor_id();
+@@ -950,7 +942,7 @@
+ c->srsets = 1;
+ }
+
+-__init void cpu_report(void)
++__cpuinit void cpu_report(void)
+ {
+ struct cpuinfo_mips *c = &current_cpu_data;
+
+diff -Nurd linux-2.6.24/arch/mips/kernel/csrc-r4k.c mer-smartq-kernel/arch/mips/kernel/csrc-r4k.c
+--- linux-2.6.24/arch/mips/kernel/csrc-r4k.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/csrc-r4k.c 2009-11-17 12:13:29.000000000 +0100
+@@ -22,12 +22,17 @@
+ .flags = CLOCK_SOURCE_IS_CONTINUOUS,
+ };
+
+-void __init init_mips_clocksource(void)
++int __init init_mips_clocksource(void)
+ {
+- /* Calclate a somewhat reasonable rating value */
++ if (!cpu_has_counter || !mips_hpt_frequency)
++ return -ENXIO;
++
++ /* Calculate a somewhat reasonable rating value */
+ clocksource_mips.rating = 200 + mips_hpt_frequency / 10000000;
+
+ clocksource_set_clock(&clocksource_mips, mips_hpt_frequency);
+
+ clocksource_register(&clocksource_mips);
++
++ return 0;
+ }
+diff -Nurd linux-2.6.24/arch/mips/kernel/entry.S mer-smartq-kernel/arch/mips/kernel/entry.S
+--- linux-2.6.24/arch/mips/kernel/entry.S 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/entry.S 2009-11-17 12:13:29.000000000 +0100
+@@ -79,11 +79,6 @@
+
+ FEXPORT(restore_all) # restore full frame
+ #ifdef CONFIG_MIPS_MT_SMTC
+-/* Detect and execute deferred IPI "interrupts" */
+- LONG_L s0, TI_REGS($28)
+- LONG_S sp, TI_REGS($28)
+- jal deferred_smtc_ipi
+- LONG_S s0, TI_REGS($28)
+ #ifdef CONFIG_MIPS_MT_SMTC_IM_BACKSTOP
+ /* Re-arm any temporarily masked interrupts not explicitly "acked" */
+ mfc0 v0, CP0_TCSTATUS
+@@ -112,6 +107,11 @@
+ xor t0, t0, t3
+ mtc0 t0, CP0_TCCONTEXT
+ #endif /* CONFIG_MIPS_MT_SMTC_IM_BACKSTOP */
++/* Detect and execute deferred IPI "interrupts" */
++ LONG_L s0, TI_REGS($28)
++ LONG_S sp, TI_REGS($28)
++ jal deferred_smtc_ipi
++ LONG_S s0, TI_REGS($28)
+ #endif /* CONFIG_MIPS_MT_SMTC */
+ .set noat
+ RESTORE_TEMP
+diff -Nurd linux-2.6.24/arch/mips/kernel/gdb-low.S mer-smartq-kernel/arch/mips/kernel/gdb-low.S
+--- linux-2.6.24/arch/mips/kernel/gdb-low.S 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/gdb-low.S 2009-11-17 12:13:29.000000000 +0100
+@@ -9,21 +9,21 @@
+ #include <asm/errno.h>
+ #include <asm/irqflags.h>
+ #include <asm/mipsregs.h>
++#include <asm/asm-offsets.h>
+ #include <asm/regdef.h>
+ #include <asm/stackframe.h>
+-#include <asm/gdb-stub.h>
+
+ #ifdef CONFIG_32BIT
+ #define DMFC0 mfc0
+ #define DMTC0 mtc0
+ #define LDC1 lwc1
+-#define SDC1 lwc1
++#define SDC1 swc1
+ #endif
+ #ifdef CONFIG_64BIT
+ #define DMFC0 dmfc0
+ #define DMTC0 dmtc0
+ #define LDC1 ldc1
+-#define SDC1 ldc1
++#define SDC1 sdc1
+ #endif
+
+ /*
+@@ -78,10 +78,19 @@
+ LONG_S v0, GDB_FR_EPC(sp)
+ DMFC0 v0, CP0_BADVADDR
+ LONG_S v0, GDB_FR_BADVADDR(sp)
++#ifdef CONFIG_CPU_HAS_SMARTMIPS
++ mflhxu v0
++ LONG_S v0, GDB_FR_LO(sp)
++ mflhxu v0
++ LONG_S v0, GDB_FR_HI(sp)
++ mflhxu v0
++ LONG_S v0, GDB_FR_ACX(sp)
++#else
+ mfhi v0
+ LONG_S v0, GDB_FR_HI(sp)
+ mflo v0
+ LONG_S v0, GDB_FR_LO(sp)
++#endif
+
+ /*
+ * Now the integer registers
+@@ -317,10 +326,19 @@
+ LONG_L v1, GDB_FR_EPC(sp)
+ mtc0 v0, CP0_STATUS
+ DMTC0 v1, CP0_EPC
++#ifdef CONFIG_CPU_HAS_SMARTMIPS
++ LONG_L v0, GDB_FR_ACX(sp)
++ mtlhx v0
++ LONG_L v0, GDB_FR_HI(sp)
++ mtlhx v0
++ LONG_L v0, GDB_FR_LO(sp)
++ mtlhx v0
++#else
+ LONG_L v0, GDB_FR_HI(sp)
+ LONG_L v1, GDB_FR_LO(sp)
+ mthi v0
+ mtlo v1
++#endif
+ LONG_L $31, GDB_FR_REG31(sp)
+ LONG_L $30, GDB_FR_REG30(sp)
+ LONG_L $28, GDB_FR_REG28(sp)
+diff -Nurd linux-2.6.24/arch/mips/kernel/gdb-stub.c mer-smartq-kernel/arch/mips/kernel/gdb-stub.c
+--- linux-2.6.24/arch/mips/kernel/gdb-stub.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/gdb-stub.c 2009-11-17 12:13:29.000000000 +0100
+@@ -139,7 +139,6 @@
+ #include <asm/system.h>
+ #include <asm/gdb-stub.h>
+ #include <asm/inst.h>
+-#include <asm/smp.h>
+
+ /*
+ * external low-level support routines
+@@ -656,6 +655,7 @@
+ *epc = (unsigned long)async_breakpoint;
+ }
+
++#ifdef CONFIG_SMP
+ static void kgdb_wait(void *arg)
+ {
+ unsigned flags;
+@@ -668,6 +668,7 @@
+
+ local_irq_restore(flags);
+ }
++#endif
+
+ /*
+ * GDB stub needs to call kgdb_wait on all processor with interrupts
+diff -Nurd linux-2.6.24/arch/mips/kernel/genex.S mer-smartq-kernel/arch/mips/kernel/genex.S
+--- linux-2.6.24/arch/mips/kernel/genex.S 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/genex.S 2009-11-17 12:13:29.000000000 +0100
+@@ -20,6 +20,7 @@
+ #include <asm/stackframe.h>
+ #include <asm/war.h>
+ #include <asm/page.h>
++#include <asm/thread_info.h>
+
+ #define PANIC_PIC(msg) \
+ .set push; \
+@@ -126,7 +127,42 @@
+
+ __FINIT
+
++ .align 5 /* 32 byte rollback region */
++LEAF(r4k_wait)
++ .set push
++ .set noreorder
++ /* start of rollback region */
++ LONG_L t0, TI_FLAGS($28)
++ nop
++ andi t0, _TIF_NEED_RESCHED
++ bnez t0, 1f
++ nop
++ nop
++ nop
++ .set mips3
++ wait
++ /* end of rollback region (the region size must be power of two) */
++ .set pop
++1:
++ jr ra
++ END(r4k_wait)
++
++ .macro BUILD_ROLLBACK_PROLOGUE handler
++ FEXPORT(rollback_\handler)
++ .set push
++ .set noat
++ MFC0 k0, CP0_EPC
++ PTR_LA k1, r4k_wait
++ ori k0, 0x1f /* 32 byte rollback region */
++ xori k0, 0x1f
++ bne k0, k1, 9f
++ MTC0 k0, CP0_EPC
++9:
++ .set pop
++ .endm
++
+ .align 5
++BUILD_ROLLBACK_PROLOGUE handle_int
+ NESTED(handle_int, PT_SIZE, sp)
+ #ifdef CONFIG_TRACE_IRQFLAGS
+ /*
+@@ -201,6 +237,7 @@
+ * This prototype is copied to ebase + n*IntCtl.VS and patched
+ * to invoke the handler
+ */
++BUILD_ROLLBACK_PROLOGUE except_vec_vi
+ NESTED(except_vec_vi, 0, sp)
+ SAVE_SOME
+ SAVE_AT
+@@ -245,8 +282,8 @@
+ and t0, a0, t1
+ #ifdef CONFIG_MIPS_MT_SMTC_IM_BACKSTOP
+ mfc0 t2, CP0_TCCONTEXT
+- or t0, t0, t2
+- mtc0 t0, CP0_TCCONTEXT
++ or t2, t0, t2
++ mtc0 t2, CP0_TCCONTEXT
+ #endif /* CONFIG_MIPS_MT_SMTC_IM_BACKSTOP */
+ xor t1, t1, t0
+ mtc0 t1, CP0_STATUS
+diff -Nurd linux-2.6.24/arch/mips/kernel/head.S mer-smartq-kernel/arch/mips/kernel/head.S
+--- linux-2.6.24/arch/mips/kernel/head.S 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/head.S 2009-11-17 12:13:29.000000000 +0100
+@@ -22,6 +22,7 @@
+ #include <asm/irqflags.h>
+ #include <asm/regdef.h>
+ #include <asm/page.h>
++#include <asm/pgtable-bits.h>
+ #include <asm/mipsregs.h>
+ #include <asm/stackframe.h>
+
+@@ -194,8 +195,11 @@
+
+ j start_kernel
+ END(kernel_entry)
++ __FINIT
+
++#ifndef CONFIG_HOTPLUG_CPU
+ __INIT
++#endif
+
+ #ifdef CONFIG_SMP
+ /*
+diff -Nurd linux-2.6.24/arch/mips/kernel/i8253.c mer-smartq-kernel/arch/mips/kernel/i8253.c
+--- linux-2.6.24/arch/mips/kernel/i8253.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/i8253.c 2009-11-17 12:13:29.000000000 +0100
+@@ -15,6 +15,7 @@
+ #include <asm/time.h>
+
+ DEFINE_SPINLOCK(i8253_lock);
++EXPORT_SYMBOL(i8253_lock);
+
+ /*
+ * Initialize the PIT timer.
+diff -Nurd linux-2.6.24/arch/mips/kernel/irixelf.c mer-smartq-kernel/arch/mips/kernel/irixelf.c
+--- linux-2.6.24/arch/mips/kernel/irixelf.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/irixelf.c 2009-11-17 12:13:29.000000000 +0100
+@@ -578,7 +578,7 @@
+ * process and the system, here we map the page and fill the
+ * structure
+ */
+-static void irix_map_prda_page(void)
++static int irix_map_prda_page(void)
+ {
+ unsigned long v;
+ struct prda *pp;
+@@ -587,8 +587,8 @@
+ v = do_brk(PRDA_ADDRESS, PAGE_SIZE);
+ up_write(&current->mm->mmap_sem);
+
+- if (v < 0)
+- return;
++ if (v != PRDA_ADDRESS)
++ return v; /* v must be an error code */
+
+ pp = (struct prda *) v;
+ pp->prda_sys.t_pid = current->pid;
+@@ -596,6 +596,8 @@
+ pp->prda_sys.t_rpid = current->pid;
+
+ /* We leave the rest set to zero */
++
++ return 0;
+ }
+
+
+@@ -781,7 +783,8 @@
+ * IRIX maps a page at 0x200000 which holds some system
+ * information. Programs depend on this.
+ */
+- irix_map_prda_page();
++ if (irix_map_prda_page())
++ goto out_free_dentry;
+
+ padzero(elf_bss);
+
+diff -Nurd linux-2.6.24/arch/mips/kernel/irq-rm7000.c mer-smartq-kernel/arch/mips/kernel/irq-rm7000.c
+--- linux-2.6.24/arch/mips/kernel/irq-rm7000.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/irq-rm7000.c 2009-11-17 12:13:29.000000000 +0100
+@@ -33,6 +33,7 @@
+ .mask = mask_rm7k_irq,
+ .mask_ack = mask_rm7k_irq,
+ .unmask = unmask_rm7k_irq,
++ .eoi = unmask_rm7k_irq
+ };
+
+ void __init rm7k_cpu_irq_init(void)
+diff -Nurd linux-2.6.24/arch/mips/kernel/irq-rm9000.c mer-smartq-kernel/arch/mips/kernel/irq-rm9000.c
+--- linux-2.6.24/arch/mips/kernel/irq-rm9000.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/irq-rm9000.c 2009-11-17 12:13:29.000000000 +0100
+@@ -75,6 +75,7 @@
+ .mask = mask_rm9k_irq,
+ .mask_ack = mask_rm9k_irq,
+ .unmask = unmask_rm9k_irq,
++ .eoi = unmask_rm9k_irq
+ };
+
+ static struct irq_chip rm9k_perfcounter_irq = {
+diff -Nurd linux-2.6.24/arch/mips/kernel/kspd.c mer-smartq-kernel/arch/mips/kernel/kspd.c
+--- linux-2.6.24/arch/mips/kernel/kspd.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/kspd.c 2009-11-17 12:13:29.000000000 +0100
+@@ -257,7 +257,7 @@
+
+ vcwd = vpe_getcwd(tclimit);
+
+- /* change to the cwd of the process that loaded the SP program */
++ /* change to cwd of the process that loaded the SP program */
+ old_fs = get_fs();
+ set_fs(KERNEL_DS);
+ sys_chdir(vcwd);
+@@ -323,6 +323,9 @@
+ set >>= 1;
+ }
+ }
++
++ /* Put daemon cwd back to root to avoid umount problems */
++ sys_chdir("/");
+ }
+
+ static int channel_open = 0;
+diff -Nurd linux-2.6.24/arch/mips/kernel/Makefile mer-smartq-kernel/arch/mips/kernel/Makefile
+--- linux-2.6.24/arch/mips/kernel/Makefile 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/Makefile 2009-11-17 12:13:29.000000000 +0100
+@@ -10,6 +10,7 @@
+
+ obj-$(CONFIG_CEVT_BCM1480) += cevt-bcm1480.o
+ obj-$(CONFIG_CEVT_R4K) += cevt-r4k.o
++obj-$(CONFIG_MIPS_MT_SMTC) += cevt-smtc.o
+ obj-$(CONFIG_CEVT_GT641XX) += cevt-gt641xx.o
+ obj-$(CONFIG_CEVT_SB1250) += cevt-sb1250.o
+ obj-$(CONFIG_CEVT_TXX9) += cevt-txx9.o
+@@ -51,9 +52,9 @@
+ obj-$(CONFIG_MIPS_MT_SMTC) += smtc.o smtc-asm.o smtc-proc.o
+ obj-$(CONFIG_MIPS_MT_SMP) += smp-mt.o
+
+-obj-$(CONFIG_MIPS_APSP_KSPD) += kspd.o
+ obj-$(CONFIG_MIPS_VPE_LOADER) += vpe.o
+ obj-$(CONFIG_MIPS_VPE_APSP_API) += rtlx.o
++obj-$(CONFIG_MIPS_APSP_KSPD) += kspd.o
+
+ obj-$(CONFIG_I8259) += i8259.o
+ obj-$(CONFIG_IRQ_CPU) += irq_cpu.o
+diff -Nurd linux-2.6.24/arch/mips/kernel/mips-mt-fpaff.c mer-smartq-kernel/arch/mips/kernel/mips-mt-fpaff.c
+--- linux-2.6.24/arch/mips/kernel/mips-mt-fpaff.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/mips-mt-fpaff.c 2009-11-17 12:13:29.000000000 +0100
+@@ -36,7 +36,7 @@
+ */
+ static inline struct task_struct *find_process_by_pid(pid_t pid)
+ {
+- return pid ? find_task_by_pid(pid) : current;
++ return pid ? find_task_by_vpid(pid) : current;
+ }
+
+
+@@ -159,7 +159,7 @@
+ /*
+ * FPU Use Factor empirically derived from experiments on 34K
+ */
+-#define FPUSEFACTOR 333
++#define FPUSEFACTOR 2000
+
+ static __init int mt_fp_affinity_init(void)
+ {
+diff -Nurd linux-2.6.24/arch/mips/kernel/proc.c mer-smartq-kernel/arch/mips/kernel/proc.c
+--- linux-2.6.24/arch/mips/kernel/proc.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/proc.c 2009-11-17 12:13:29.000000000 +0100
+@@ -38,7 +38,7 @@
+ seq_printf(m, "processor\t\t: %ld\n", n);
+ sprintf(fmt, "cpu model\t\t: %%s V%%d.%%d%s\n",
+ cpu_data[n].options & MIPS_CPU_FPU ? " FPU V%d.%d" : "");
+- seq_printf(m, fmt, __cpu_name[smp_processor_id()],
++ seq_printf(m, fmt, __cpu_name[n],
+ (version >> 4) & 0x0f, version & 0x0f,
+ (fp_vers >> 4) & 0x0f, fp_vers & 0x0f);
+ seq_printf(m, "BogoMIPS\t\t: %lu.%02lu\n",
+diff -Nurd linux-2.6.24/arch/mips/kernel/process.c mer-smartq-kernel/arch/mips/kernel/process.c
+--- linux-2.6.24/arch/mips/kernel/process.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/process.c 2009-11-17 12:13:29.000000000 +0100
+@@ -55,7 +55,7 @@
+ while (1) {
+ tick_nohz_stop_sched_tick();
+ while (!need_resched()) {
+-#ifdef CONFIG_SMTC_IDLE_HOOK_DEBUG
++#ifdef CONFIG_MIPS_MT_SMTC
+ extern void smtc_idle_loop_hook(void);
+
+ smtc_idle_loop_hook();
+@@ -152,17 +152,18 @@
+ */
+ p->thread.cp0_status = read_c0_status() & ~(ST0_CU2|ST0_CU1);
+ childregs->cp0_status &= ~(ST0_CU2|ST0_CU1);
+- clear_tsk_thread_flag(p, TIF_USEDFPU);
+
+-#ifdef CONFIG_MIPS_MT_FPAFF
++#ifdef CONFIG_MIPS_MT_SMTC
+ /*
+- * FPU affinity support is cleaner if we track the
+- * user-visible CPU affinity from the very beginning.
+- * The generic cpus_allowed mask will already have
+- * been copied from the parent before copy_thread
+- * is invoked.
++ * SMTC restores TCStatus after Status, and the CU bits
++ * are aliased there.
+ */
+- p->thread.user_cpus_allowed = p->cpus_allowed;
++ childregs->cp0_tcstatus &= ~(ST0_CU2|ST0_CU1);
++#endif
++ clear_tsk_thread_flag(p, TIF_USEDFPU);
++
++#ifdef CONFIG_MIPS_MT_FPAFF
++ clear_tsk_thread_flag(p, TIF_FPUBOUND);
+ #endif /* CONFIG_MIPS_MT_FPAFF */
+
+ if (clone_flags & CLONE_SETTLS)
+diff -Nurd linux-2.6.24/arch/mips/kernel/ptrace.c mer-smartq-kernel/arch/mips/kernel/ptrace.c
+--- linux-2.6.24/arch/mips/kernel/ptrace.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/ptrace.c 2009-11-17 12:13:29.000000000 +0100
+@@ -238,7 +238,7 @@
+ case FPC_EIR: { /* implementation / version register */
+ unsigned int flags;
+ #ifdef CONFIG_MIPS_MT_SMTC
+- unsigned int irqflags;
++ unsigned long irqflags;
+ unsigned int mtflags;
+ #endif /* CONFIG_MIPS_MT_SMTC */
+
+diff -Nurd linux-2.6.24/arch/mips/kernel/rtlx.c mer-smartq-kernel/arch/mips/kernel/rtlx.c
+--- linux-2.6.24/arch/mips/kernel/rtlx.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/rtlx.c 2009-11-17 12:13:29.000000000 +0100
+@@ -73,6 +73,15 @@
+ static irqreturn_t rtlx_interrupt(int irq, void *dev_id)
+ {
+ int i;
++ unsigned int flags, vpeflags;
++
++ /* Ought not to be strictly necessary for SMTC builds */
++ local_irq_save(flags);
++ vpeflags = dvpe();
++ set_c0_status(0x100 << MIPS_CPU_RTLX_IRQ);
++ irq_enable_hazard();
++ evpe(vpeflags);
++ local_irq_restore(flags);
+
+ for (i = 0; i < RTLX_CHANNELS; i++) {
+ wake_up(&channel_wqs[i].lx_queue);
+@@ -109,7 +118,8 @@
+ static int rtlx_init(struct rtlx_info *rtlxi)
+ {
+ if (rtlxi->id != RTLX_ID) {
+- printk(KERN_ERR "no valid RTLX id at 0x%p 0x%lx\n", rtlxi, rtlxi->id);
++ printk(KERN_ERR "no valid RTLX id at 0x%p 0x%lx\n",
++ rtlxi, rtlxi->id);
+ return -ENOEXEC;
+ }
+
+@@ -163,18 +173,17 @@
+
+ if (rtlx == NULL) {
+ if( (p = vpe_get_shared(tclimit)) == NULL) {
+- if (can_sleep) {
+- __wait_event_interruptible(channel_wqs[index].lx_queue,
+- (p = vpe_get_shared(tclimit)),
+- ret);
+- if (ret)
+- goto out_fail;
+- } else {
+- printk(KERN_DEBUG "No SP program loaded, and device "
+- "opened with O_NONBLOCK\n");
+- ret = -ENOSYS;
++ if (can_sleep) {
++ __wait_event_interruptible(channel_wqs[index].lx_queue,
++ (p = vpe_get_shared(tclimit)), ret);
++ if (ret)
+ goto out_fail;
+- }
++ } else {
++ printk(KERN_DEBUG "No SP program loaded, and device "
++ "opened with O_NONBLOCK\n");
++ ret = -ENOSYS;
++ goto out_fail;
++ }
+ }
+
+ smp_rmb();
+@@ -183,7 +192,9 @@
+ DEFINE_WAIT(wait);
+
+ for (;;) {
+- prepare_to_wait(&channel_wqs[index].lx_queue, &wait, TASK_INTERRUPTIBLE);
++ prepare_to_wait(
++ &channel_wqs[index].lx_queue,
++ &wait, TASK_INTERRUPTIBLE);
+ smp_rmb();
+ if (*p != NULL)
+ break;
+@@ -196,7 +207,7 @@
+ }
+ finish_wait(&channel_wqs[index].lx_queue, &wait);
+ } else {
+- printk(" *vpe_get_shared is NULL. "
++ pr_err(" *vpe_get_shared is NULL. "
+ "Has an SP program been loaded?\n");
+ ret = -ENOSYS;
+ goto out_fail;
+@@ -204,8 +215,9 @@
+ }
+
+ if ((unsigned int)*p < KSEG0) {
+- printk(KERN_WARNING "vpe_get_shared returned an invalid pointer "
+- "maybe an error code %d\n", (int)*p);
++ printk(KERN_WARNING "vpe_get_shared returned an "
++ "invalid pointer maybe an error code %d\n",
++ (int)*p);
+ ret = -ENOSYS;
+ goto out_fail;
+ }
+@@ -233,6 +245,10 @@
+
+ int rtlx_release(int index)
+ {
++ if (rtlx == NULL) {
++ pr_err("rtlx_release() with null rtlx\n");
++ return 0;
++ }
+ rtlx->channel[index].lx_state = RTLX_STATE_UNUSED;
+ return 0;
+ }
+@@ -252,8 +268,8 @@
+ int ret = 0;
+
+ __wait_event_interruptible(channel_wqs[index].lx_queue,
+- chan->lx_read != chan->lx_write || sp_stopping,
+- ret);
++ (chan->lx_read != chan->lx_write) ||
++ sp_stopping, ret);
+ if (ret)
+ return ret;
+
+@@ -283,7 +299,9 @@
+ unsigned int rtlx_write_poll(int index)
+ {
+ struct rtlx_channel *chan = &rtlx->channel[index];
+- return write_spacefree(chan->rt_read, chan->rt_write, chan->buffer_size);
++
++ return write_spacefree(chan->rt_read, chan->rt_write,
++ chan->buffer_size);
+ }
+
+ ssize_t rtlx_read(int index, void __user *buff, size_t count)
+@@ -345,8 +363,8 @@
+ rt_read = rt->rt_read;
+
+ /* total number of bytes to copy */
+- count = min(count,
+- (size_t)write_spacefree(rt_read, rt->rt_write, rt->buffer_size));
++ count = min(count, (size_t)write_spacefree(rt_read, rt->rt_write,
++ rt->buffer_size));
+
+ /* first bit from write pointer to the end of the buffer, or count */
+ fl = min(count, (size_t) rt->buffer_size - rt->rt_write);
+@@ -515,6 +533,11 @@
+
+ if (cpu_has_vint)
+ set_vi_handler(MIPS_CPU_RTLX_IRQ, rtlx_dispatch);
++ else {
++ pr_err("APRP RTLX init on non-vectored-interrupt processor\n");
++ err = -ENODEV;
++ goto out_chrdev;
++ }
+
+ rtlx_irq.dev_id = rtlx;
+ setup_irq(rtlx_irq_num, &rtlx_irq);
+diff -Nurd linux-2.6.24/arch/mips/kernel/scall32-o32.S mer-smartq-kernel/arch/mips/kernel/scall32-o32.S
+--- linux-2.6.24/arch/mips/kernel/scall32-o32.S 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/scall32-o32.S 2009-11-17 12:13:29.000000000 +0100
+@@ -184,7 +184,7 @@
+ * The system call does not exist in this kernel
+ */
+ illegal_syscall:
+- li v0, -ENOSYS # error
++ li v0, ENOSYS # error
+ sw v0, PT_R2(sp)
+ li t0, 1 # set error flag
+ sw t0, PT_R7(sp)
+@@ -270,18 +270,11 @@
+ subu t0, a0, __NR_O32_Linux # check syscall number
+ sltiu v0, t0, __NR_O32_Linux_syscalls + 1
+ #endif
++ beqz t0, einval # do not recurse
+ sll t1, t0, 3
+ beqz v0, einval
+-
+ lw t2, sys_call_table(t1) # syscall routine
+
+-#if defined(CONFIG_BINFMT_IRIX)
+- li v1, 4000 # nr of sys_syscall
+-#else
+- li v1, 4000 - __NR_O32_Linux # index of sys_syscall
+-#endif
+- beq t0, v1, einval # do not recurse
+-
+ /* Some syscalls like execve get their arguments from struct pt_regs
+ and claim zero arguments in the syscall table. Thus we have to
+ assume the worst case and shuffle around all potential arguments.
+@@ -305,7 +298,7 @@
+ jr t2
+ /* Unreached */
+
+-einval: li v0, -EINVAL
++einval: li v0, -ENOSYS
+ jr ra
+ END(sys_syscall)
+
+@@ -646,7 +639,7 @@
+ sys sys_pselect6 6
+ sys sys_ppoll 5
+ sys sys_unshare 1
+- sys sys_splice 4
++ sys sys_splice 6
+ sys sys_sync_file_range 7 /* 4305 */
+ sys sys_tee 4
+ sys sys_vmsplice 4
+diff -Nurd linux-2.6.24/arch/mips/kernel/scall64-64.S mer-smartq-kernel/arch/mips/kernel/scall64-64.S
+--- linux-2.6.24/arch/mips/kernel/scall64-64.S 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/scall64-64.S 2009-11-17 12:13:29.000000000 +0100
+@@ -117,7 +117,7 @@
+
+ illegal_syscall:
+ /* This also isn't a 64-bit syscall, throw an error. */
+- li v0, -ENOSYS # error
++ li v0, ENOSYS # error
+ sd v0, PT_R2(sp)
+ li t0, 1 # set error flag
+ sd t0, PT_R7(sp)
+diff -Nurd linux-2.6.24/arch/mips/kernel/scall64-n32.S mer-smartq-kernel/arch/mips/kernel/scall64-n32.S
+--- linux-2.6.24/arch/mips/kernel/scall64-n32.S 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/scall64-n32.S 2009-11-17 12:13:29.000000000 +0100
+@@ -390,7 +390,7 @@
+ PTR sys_splice
+ PTR sys_sync_file_range
+ PTR sys_tee
+- PTR sys_vmsplice /* 6270 */
++ PTR compat_sys_vmsplice /* 6270 */
+ PTR sys_move_pages
+ PTR compat_sys_set_robust_list
+ PTR compat_sys_get_robust_list
+diff -Nurd linux-2.6.24/arch/mips/kernel/scall64-o32.S mer-smartq-kernel/arch/mips/kernel/scall64-o32.S
+--- linux-2.6.24/arch/mips/kernel/scall64-o32.S 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/scall64-o32.S 2009-11-17 12:13:29.000000000 +0100
+@@ -174,14 +174,12 @@
+ END(handle_sys)
+
+ LEAF(sys32_syscall)
+- sltu v0, a0, __NR_O32_Linux + __NR_O32_Linux_syscalls + 1
++ subu t0, a0, __NR_O32_Linux # check syscall number
++ sltiu v0, t0, __NR_O32_Linux_syscalls + 1
++ beqz t0, einval # do not recurse
++ dsll t1, t0, 3
+ beqz v0, einval
+-
+- dsll v0, a0, 3
+- ld t2, (sys_call_table - (__NR_O32_Linux * 8))(v0)
+-
+- li v1, 4000 # indirect syscall number
+- beq a0, v1, einval # do not recurse
++ ld t2, sys_call_table(t1) # syscall routine
+
+ move a0, a1 # shift argument registers
+ move a1, a2
+@@ -198,7 +196,7 @@
+ jr t2
+ /* Unreached */
+
+-einval: li v0, -EINVAL
++einval: li v0, -ENOSYS
+ jr ra
+ END(sys32_syscall)
+
+@@ -512,7 +510,7 @@
+ PTR sys_splice
+ PTR sys32_sync_file_range /* 4305 */
+ PTR sys_tee
+- PTR sys_vmsplice
++ PTR compat_sys_vmsplice
+ PTR compat_sys_move_pages
+ PTR compat_sys_set_robust_list
+ PTR compat_sys_get_robust_list /* 4310 */
+diff -Nurd linux-2.6.24/arch/mips/kernel/setup.c mer-smartq-kernel/arch/mips/kernel/setup.c
+--- linux-2.6.24/arch/mips/kernel/setup.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/setup.c 2009-11-17 12:13:29.000000000 +0100
+@@ -329,6 +329,7 @@
+ /*
+ * Determine low and high memory ranges
+ */
++ max_pfn = max_low_pfn;
+ if (max_low_pfn > PFN_DOWN(HIGHMEM_START)) {
+ #ifdef CONFIG_HIGHMEM
+ highstart_pfn = PFN_DOWN(HIGHMEM_START);
+@@ -609,8 +610,8 @@
+ struct dentry *d;
+
+ d = debugfs_create_dir("mips", NULL);
+- if (IS_ERR(d))
+- return PTR_ERR(d);
++ if (!d)
++ return -ENOMEM;
+ mips_debugfs_dir = d;
+ return 0;
+ }
+diff -Nurd linux-2.6.24/arch/mips/kernel/smp.c mer-smartq-kernel/arch/mips/kernel/smp.c
+--- linux-2.6.24/arch/mips/kernel/smp.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/smp.c 2009-11-17 12:13:29.000000000 +0100
+@@ -238,8 +238,10 @@
+ * Remove this CPU:
+ */
+ cpu_clear(smp_processor_id(), cpu_online_map);
+- local_irq_enable(); /* May need to service _machine_restart IPI */
+- for (;;); /* Wait if available. */
++ for (;;) {
++ if (cpu_wait)
++ (*cpu_wait)(); /* Wait if available. */
++ }
+ }
+
+ void smp_send_stop(void)
+diff -Nurd linux-2.6.24/arch/mips/kernel/smtc.c mer-smartq-kernel/arch/mips/kernel/smtc.c
+--- linux-2.6.24/arch/mips/kernel/smtc.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/smtc.c 2009-11-17 12:13:29.000000000 +0100
+@@ -1,4 +1,21 @@
+-/* Copyright (C) 2004 Mips Technologies, Inc */
++/*
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2
++ * of the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++ *
++ * Copyright (C) 2004 Mips Technologies, Inc
++ * Copyright (C) 2008 Kevin D. Kissell
++ */
+
+ #include <linux/clockchips.h>
+ #include <linux/kernel.h>
+@@ -22,7 +39,6 @@
+ #include <asm/time.h>
+ #include <asm/addrspace.h>
+ #include <asm/smtc.h>
+-#include <asm/smtc_ipi.h>
+ #include <asm/smtc_proc.h>
+
+ /*
+@@ -59,11 +75,6 @@
+
+ asiduse smtc_live_asid[MAX_SMTC_TLBS][MAX_SMTC_ASIDS];
+
+-/*
+- * Clock interrupt "latch" buffers, per "CPU"
+- */
+-
+-static atomic_t ipi_timer_latch[NR_CPUS];
+
+ /*
+ * Number of InterProcessor Interupt (IPI) message buffers to allocate
+@@ -71,7 +82,7 @@
+
+ #define IPIBUF_PER_CPU 4
+
+-static struct smtc_ipi_q IPIQ[NR_CPUS];
++struct smtc_ipi_q IPIQ[NR_CPUS];
+ static struct smtc_ipi_q freeIPIq;
+
+
+@@ -291,7 +302,7 @@
+ * phys_cpu_present_map and the logical/physical mappings.
+ */
+
+-int __init mipsmt_build_cpu_map(int start_cpu_slot)
++int __init smtc_build_cpu_map(int start_cpu_slot)
+ {
+ int i, ntcs;
+
+@@ -334,7 +345,12 @@
+ write_tc_c0_tcstatus((read_tc_c0_tcstatus()
+ & ~(TCSTATUS_TKSU | TCSTATUS_DA | TCSTATUS_IXMT))
+ | TCSTATUS_A);
+- write_tc_c0_tccontext(0);
++ /*
++ * TCContext gets an offset from the base of the IPIQ array
++ * to be used in low-level code to detect the presence of
++ * an active IPI queue
++ */
++ write_tc_c0_tccontext((sizeof(struct smtc_ipi_q) * cpu) << 16);
+ /* Bind tc to vpe */
+ write_tc_c0_tcbind(vpe);
+ /* In general, all TCs should have the same cpu_data indications */
+@@ -346,8 +362,14 @@
+ cpu_data[cpu].tc_id = tc;
+ }
+
++/*
++ * Tweak to get Count registes in as close a sync as possible.
++ * Value seems good for 34K-class cores.
++ */
+
+-void mipsmt_prepare_cpus(void)
++#define CP0_SKEW 8
++
++void smtc_prepare_cpus(int cpus)
+ {
+ int i, vpe, tc, ntc, nvpe, tcpervpe[NR_CPUS], slop, cpu;
+ unsigned long flags;
+@@ -371,7 +393,6 @@
+ IPIQ[i].head = IPIQ[i].tail = NULL;
+ spin_lock_init(&IPIQ[i].lock);
+ IPIQ[i].depth = 0;
+- atomic_set(&ipi_timer_latch[i], 0);
+ }
+
+ /* cpu_data index starts at zero */
+@@ -492,7 +513,8 @@
+ write_vpe_c0_compare(0);
+ /* Propagate Config7 */
+ write_vpe_c0_config7(read_c0_config7());
+- write_vpe_c0_count(read_c0_count());
++ write_vpe_c0_count(read_c0_count() + CP0_SKEW);
++ ehb();
+ }
+ /* enable multi-threading within VPE */
+ write_vpe_c0_vpecontrol(read_vpe_c0_vpecontrol() | VPECONTROL_TE);
+@@ -564,7 +586,7 @@
+ void __cpuinit smtc_boot_secondary(int cpu, struct task_struct *idle)
+ {
+ extern u32 kernelsp[NR_CPUS];
+- long flags;
++ unsigned long flags;
+ int mtflags;
+
+ LOCK_MT_PRA();
+@@ -593,24 +615,22 @@
+
+ void smtc_init_secondary(void)
+ {
+- /*
+- * Start timer on secondary VPEs if necessary.
+- * plat_timer_setup has already have been invoked by init/main
+- * on "boot" TC. Like per_cpu_trap_init() hack, this assumes that
+- * SMTC init code assigns TCs consdecutively and in ascending order
+- * to across available VPEs.
+- */
+- if (((read_c0_tcbind() & TCBIND_CURTC) != 0) &&
+- ((read_c0_tcbind() & TCBIND_CURVPE)
+- != cpu_data[smp_processor_id() - 1].vpe_id)){
+- write_c0_compare(read_c0_count() + mips_hpt_frequency/HZ);
+- }
+-
+ local_irq_enable();
+ }
+
+ void smtc_smp_finish(void)
+ {
++ int cpu = smp_processor_id();
++
++ /*
++ * Lowest-numbered CPU per VPE starts a clock tick.
++ * Like per_cpu_trap_init() hack, this assumes that
++ * SMTC init code assigns TCs consdecutively and
++ * in ascending order across available VPEs.
++ */
++ if (cpu > 0 && (cpu_data[cpu].vpe_id != cpu_data[cpu - 1].vpe_id))
++ write_c0_compare(read_c0_count() + mips_hpt_frequency/HZ);
++
+ printk("TC %d going on-line as CPU %d\n",
+ cpu_data[smp_processor_id()].tc_id, smp_processor_id());
+ }
+@@ -761,8 +781,10 @@
+ {
+ int tcstatus;
+ struct smtc_ipi *pipi;
+- long flags;
++ unsigned long flags;
+ int mtflags;
++ unsigned long tcrestart;
++ extern void r4k_wait_irqoff(void), __pastwait(void);
+
+ if (cpu == smp_processor_id()) {
+ printk("Cannot Send IPI to self!\n");
+@@ -779,9 +801,7 @@
+ pipi->arg = (void *)action;
+ pipi->dest = cpu;
+ if (cpu_data[cpu].vpe_id != cpu_data[smp_processor_id()].vpe_id) {
+- if (type == SMTC_CLOCK_TICK)
+- atomic_inc(&ipi_timer_latch[cpu]);
+- /* If not on same VPE, enqueue and send cross-VPE interupt */
++ /* If not on same VPE, enqueue and send cross-VPE interrupt */
+ smtc_ipi_nq(&IPIQ[cpu], pipi);
+ LOCK_CORE_PRA();
+ settc(cpu_data[cpu].tc_id);
+@@ -808,22 +828,29 @@
+
+ if ((tcstatus & TCSTATUS_IXMT) != 0) {
+ /*
+- * Spin-waiting here can deadlock,
+- * so we queue the message for the target TC.
++ * If we're in the the irq-off version of the wait
++ * loop, we need to force exit from the wait and
++ * do a direct post of the IPI.
++ */
++ if (cpu_wait == r4k_wait_irqoff) {
++ tcrestart = read_tc_c0_tcrestart();
++ if (tcrestart >= (unsigned long)r4k_wait_irqoff
++ && tcrestart < (unsigned long)__pastwait) {
++ write_tc_c0_tcrestart(__pastwait);
++ tcstatus &= ~TCSTATUS_IXMT;
++ write_tc_c0_tcstatus(tcstatus);
++ goto postdirect;
++ }
++ }
++ /*
++ * Otherwise we queue the message for the target TC
++ * to pick up when he does a local_irq_restore()
+ */
+ write_tc_c0_tchalt(0);
+ UNLOCK_CORE_PRA();
+- /* Try to reduce redundant timer interrupt messages */
+- if (type == SMTC_CLOCK_TICK) {
+- if (atomic_postincrement(&ipi_timer_latch[cpu])!=0){
+- smtc_ipi_nq(&freeIPIq, pipi);
+- return;
+- }
+- }
+ smtc_ipi_nq(&IPIQ[cpu], pipi);
+ } else {
+- if (type == SMTC_CLOCK_TICK)
+- atomic_inc(&ipi_timer_latch[cpu]);
++postdirect:
+ post_direct_ipi(cpu, pipi);
+ write_tc_c0_tchalt(0);
+ UNLOCK_CORE_PRA();
+@@ -892,7 +919,7 @@
+ smp_call_function_interrupt();
+ }
+
+-DECLARE_PER_CPU(struct clock_event_device, smtc_dummy_clockevent_device);
++DECLARE_PER_CPU(struct clock_event_device, mips_clockevent_device);
+
+ void ipi_decode(struct smtc_ipi *pipi)
+ {
+@@ -900,20 +927,13 @@
+ struct clock_event_device *cd;
+ void *arg_copy = pipi->arg;
+ int type_copy = pipi->type;
+- int ticks;
+-
+ smtc_ipi_nq(&freeIPIq, pipi);
+ switch (type_copy) {
+ case SMTC_CLOCK_TICK:
+ irq_enter();
+ kstat_this_cpu.irqs[MIPS_CPU_IRQ_BASE + 1]++;
+- cd = &per_cpu(smtc_dummy_clockevent_device, cpu);
+- ticks = atomic_read(&ipi_timer_latch[cpu]);
+- atomic_sub(ticks, &ipi_timer_latch[cpu]);
+- while (ticks) {
+- cd->event_handler(cd);
+- ticks--;
+- }
++ cd = &per_cpu(mips_clockevent_device, cpu);
++ cd->event_handler(cd);
+ irq_exit();
+ break;
+
+@@ -946,24 +966,48 @@
+ }
+ }
+
++/*
++ * Similar to smtc_ipi_replay(), but invoked from context restore,
++ * so it reuses the current exception frame rather than set up a
++ * new one with self_ipi.
++ */
++
+ void deferred_smtc_ipi(void)
+ {
+- struct smtc_ipi *pipi;
+- unsigned long flags;
+-/* DEBUG */
+- int q = smp_processor_id();
++ int cpu = smp_processor_id();
+
+ /*
+ * Test is not atomic, but much faster than a dequeue,
+ * and the vast majority of invocations will have a null queue.
++ * If irq_disabled when this was called, then any IPIs queued
++ * after we test last will be taken on the next irq_enable/restore.
++ * If interrupts were enabled, then any IPIs added after the
++ * last test will be taken directly.
+ */
+- if (IPIQ[q].head != NULL) {
+- while((pipi = smtc_ipi_dq(&IPIQ[q])) != NULL) {
+- /* ipi_decode() should be called with interrupts off */
+- local_irq_save(flags);
++
++ while (IPIQ[cpu].head != NULL) {
++ struct smtc_ipi_q *q = &IPIQ[cpu];
++ struct smtc_ipi *pipi;
++ unsigned long flags;
++
++ /*
++ * It may be possible we'll come in with interrupts
++ * already enabled.
++ */
++ local_irq_save(flags);
++
++ spin_lock(&q->lock);
++ pipi = __smtc_ipi_dq(q);
++ spin_unlock(&q->lock);
++ if (pipi != NULL)
+ ipi_decode(pipi);
+- local_irq_restore(flags);
+- }
++ /*
++ * The use of the __raw_local restore isn't
++ * as obviously necessary here as in smtc_ipi_replay(),
++ * but it's more efficient, given that we're already
++ * running down the IPI queue.
++ */
++ __raw_local_irq_restore(flags);
+ }
+ }
+
+@@ -984,7 +1028,7 @@
+ struct smtc_ipi *pipi;
+ unsigned long tcstatus;
+ int sent;
+- long flags;
++ unsigned long flags;
+ unsigned int mtflags;
+ unsigned int vpflags;
+
+@@ -1075,55 +1119,53 @@
+
+ /*
+ * SMTC-specific hacks invoked from elsewhere in the kernel.
+- *
+- * smtc_ipi_replay is called from raw_local_irq_restore which is only ever
+- * called with interrupts disabled. We do rely on interrupts being disabled
+- * here because using spin_lock_irqsave()/spin_unlock_irqrestore() would
+- * result in a recursive call to raw_local_irq_restore().
+ */
+
+-static void __smtc_ipi_replay(void)
++ /*
++ * smtc_ipi_replay is called from raw_local_irq_restore
++ */
++
++void smtc_ipi_replay(void)
+ {
+ unsigned int cpu = smp_processor_id();
+
+ /*
+ * To the extent that we've ever turned interrupts off,
+ * we may have accumulated deferred IPIs. This is subtle.
+- * If we use the smtc_ipi_qdepth() macro, we'll get an
+- * exact number - but we'll also disable interrupts
+- * and create a window of failure where a new IPI gets
+- * queued after we test the depth but before we re-enable
+- * interrupts. So long as IXMT never gets set, however,
+ * we should be OK: If we pick up something and dispatch
+ * it here, that's great. If we see nothing, but concurrent
+ * with this operation, another TC sends us an IPI, IXMT
+ * is clear, and we'll handle it as a real pseudo-interrupt
+- * and not a pseudo-pseudo interrupt.
++ * and not a pseudo-pseudo interrupt. The important thing
++ * is to do the last check for queued message *after* the
++ * re-enabling of interrupts.
+ */
+- if (IPIQ[cpu].depth > 0) {
+- while (1) {
+- struct smtc_ipi_q *q = &IPIQ[cpu];
+- struct smtc_ipi *pipi;
+- extern void self_ipi(struct smtc_ipi *);
++ while (IPIQ[cpu].head != NULL) {
++ struct smtc_ipi_q *q = &IPIQ[cpu];
++ struct smtc_ipi *pipi;
++ unsigned long flags;
+
+- spin_lock(&q->lock);
+- pipi = __smtc_ipi_dq(q);
+- spin_unlock(&q->lock);
+- if (!pipi)
+- break;
++ /*
++ * It's just possible we'll come in with interrupts
++ * already enabled.
++ */
++ local_irq_save(flags);
+
++ spin_lock(&q->lock);
++ pipi = __smtc_ipi_dq(q);
++ spin_unlock(&q->lock);
++ /*
++ ** But use a raw restore here to avoid recursion.
++ */
++ __raw_local_irq_restore(flags);
++
++ if (pipi) {
+ self_ipi(pipi);
+ smtc_cpu_stats[cpu].selfipis++;
+ }
+ }
+ }
+
+-void smtc_ipi_replay(void)
+-{
+- raw_local_irq_disable();
+- __smtc_ipi_replay();
+-}
+-
+ EXPORT_SYMBOL(smtc_ipi_replay);
+
+ void smtc_idle_loop_hook(void)
+@@ -1202,40 +1244,13 @@
+ }
+ }
+
+- /*
+- * Now that we limit outstanding timer IPIs, check for hung TC
+- */
+- for (tc = 0; tc < NR_CPUS; tc++) {
+- /* Don't check ourself - we'll dequeue IPIs just below */
+- if ((tc != smp_processor_id()) &&
+- atomic_read(&ipi_timer_latch[tc]) > timerq_limit) {
+- if (clock_hang_reported[tc] == 0) {
+- pdb_msg += sprintf(pdb_msg,
+- "TC %d looks hung with timer latch at %d\n",
+- tc, atomic_read(&ipi_timer_latch[tc]));
+- clock_hang_reported[tc]++;
+- }
+- }
+- }
+ emt(mtflags);
+ local_irq_restore(flags);
+ if (pdb_msg != &id_ho_db_msg[0])
+ printk("CPU%d: %s", smp_processor_id(), id_ho_db_msg);
+ #endif /* CONFIG_SMTC_IDLE_HOOK_DEBUG */
+
+- /*
+- * Replay any accumulated deferred IPIs. If "Instant Replay"
+- * is in use, there should never be any.
+- */
+-#ifndef CONFIG_MIPS_MT_SMTC_INSTANT_REPLAY
+- {
+- unsigned long flags;
+-
+- local_irq_save(flags);
+- __smtc_ipi_replay();
+- local_irq_restore(flags);
+- }
+-#endif /* CONFIG_MIPS_MT_SMTC_INSTANT_REPLAY */
++ smtc_ipi_replay();
+ }
+
+ void smtc_soft_dump(void)
+@@ -1251,10 +1266,6 @@
+ printk("%d: %ld\n", i, smtc_cpu_stats[i].selfipis);
+ }
+ smtc_ipi_qdump();
+- printk("Timer IPI Backlogs:\n");
+- for (i=0; i < NR_CPUS; i++) {
+- printk("%d: %d\n", i, atomic_read(&ipi_timer_latch[i]));
+- }
+ printk("%d Recoveries of \"stolen\" FPU\n",
+ atomic_read(&smtc_fpu_recoveries));
+ }
+diff -Nurd linux-2.6.24/arch/mips/kernel/sysirix.c mer-smartq-kernel/arch/mips/kernel/sysirix.c
+--- linux-2.6.24/arch/mips/kernel/sysirix.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/sysirix.c 2009-11-17 12:13:29.000000000 +0100
+@@ -111,7 +111,7 @@
+ printk("irix_prctl[%s:%d]: Wants PR_ISBLOCKED\n",
+ current->comm, current->pid);
+ read_lock(&tasklist_lock);
+- task = find_task_by_pid(va_arg(args, pid_t));
++ task = find_task_by_vpid(va_arg(args, pid_t));
+ error = -ESRCH;
+ if (error)
+ error = (task->run_list.next != NULL);
+diff -Nurd linux-2.6.24/arch/mips/kernel/time.c mer-smartq-kernel/arch/mips/kernel/time.c
+--- linux-2.6.24/arch/mips/kernel/time.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/time.c 2009-11-17 12:13:29.000000000 +0100
+@@ -159,6 +159,6 @@
+ {
+ plat_time_init();
+
+- if (mips_clockevent_init() || !cpu_has_mfc0_count_bug())
++ if (!mips_clockevent_init() || !cpu_has_mfc0_count_bug())
+ init_mips_clocksource();
+ }
+diff -Nurd linux-2.6.24/arch/mips/kernel/traps.c mer-smartq-kernel/arch/mips/kernel/traps.c
+--- linux-2.6.24/arch/mips/kernel/traps.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/traps.c 2009-11-17 12:13:29.000000000 +0100
+@@ -43,6 +43,9 @@
+ #include <asm/types.h>
+ #include <asm/stacktrace.h>
+
++extern void check_wait(void);
++extern asmlinkage void r4k_wait(void);
++extern asmlinkage void rollback_handle_int(void);
+ extern asmlinkage void handle_int(void);
+ extern asmlinkage void handle_tlbm(void);
+ extern asmlinkage void handle_tlbl(void);
+@@ -638,35 +641,24 @@
+ force_sig_info(SIGFPE, &info, current);
+ }
+
+-asmlinkage void do_bp(struct pt_regs *regs)
++static void do_trap_or_bp(struct pt_regs *regs, unsigned int code,
++ const char *str)
+ {
+- unsigned int opcode, bcode;
+ siginfo_t info;
+-
+- if (__get_user(opcode, (unsigned int __user *) exception_epc(regs)))
+- goto out_sigsegv;
+-
+- /*
+- * There is the ancient bug in the MIPS assemblers that the break
+- * code starts left to bit 16 instead to bit 6 in the opcode.
+- * Gas is bug-compatible, but not always, grrr...
+- * We handle both cases with a simple heuristics. --macro
+- */
+- bcode = ((opcode >> 6) & ((1 << 20) - 1));
+- if (bcode < (1 << 10))
+- bcode <<= 10;
++ char b[40];
+
+ /*
+- * (A short test says that IRIX 5.3 sends SIGTRAP for all break
+- * insns, even for break codes that indicate arithmetic failures.
+- * Weird ...)
++ * A short test says that IRIX 5.3 sends SIGTRAP for all trap
++ * insns, even for trap and break codes that indicate arithmetic
++ * failures. Weird ...
+ * But should we continue the brokenness??? --macro
+ */
+- switch (bcode) {
+- case BRK_OVERFLOW << 10:
+- case BRK_DIVZERO << 10:
+- die_if_kernel("Break instruction in kernel code", regs);
+- if (bcode == (BRK_DIVZERO << 10))
++ switch (code) {
++ case BRK_OVERFLOW:
++ case BRK_DIVZERO:
++ scnprintf(b, sizeof(b), "%s instruction in kernel code", str);
++ die_if_kernel(b, regs);
++ if (code == BRK_DIVZERO)
+ info.si_code = FPE_INTDIV;
+ else
+ info.si_code = FPE_INTOVF;
+@@ -676,12 +668,34 @@
+ force_sig_info(SIGFPE, &info, current);
+ break;
+ case BRK_BUG:
+- die("Kernel bug detected", regs);
++ die_if_kernel("Kernel bug detected", regs);
++ force_sig(SIGTRAP, current);
+ break;
+ default:
+- die_if_kernel("Break instruction in kernel code", regs);
++ scnprintf(b, sizeof(b), "%s instruction in kernel code", str);
++ die_if_kernel(b, regs);
+ force_sig(SIGTRAP, current);
+ }
++}
++
++asmlinkage void do_bp(struct pt_regs *regs)
++{
++ unsigned int opcode, bcode;
++
++ if (__get_user(opcode, (unsigned int __user *) exception_epc(regs)))
++ goto out_sigsegv;
++
++ /*
++ * There is the ancient bug in the MIPS assemblers that the break
++ * code starts left to bit 16 instead to bit 6 in the opcode.
++ * Gas is bug-compatible, but not always, grrr...
++ * We handle both cases with a simple heuristics. --macro
++ */
++ bcode = ((opcode >> 6) & ((1 << 20) - 1));
++ if (bcode >= (1 << 10))
++ bcode >>= 10;
++
++ do_trap_or_bp(regs, bcode, "Break");
+ return;
+
+ out_sigsegv:
+@@ -691,7 +705,6 @@
+ asmlinkage void do_tr(struct pt_regs *regs)
+ {
+ unsigned int opcode, tcode = 0;
+- siginfo_t info;
+
+ if (__get_user(opcode, (unsigned int __user *) exception_epc(regs)))
+ goto out_sigsegv;
+@@ -700,32 +713,7 @@
+ if (!(opcode & OPCODE))
+ tcode = ((opcode >> 6) & ((1 << 10) - 1));
+
+- /*
+- * (A short test says that IRIX 5.3 sends SIGTRAP for all trap
+- * insns, even for trap codes that indicate arithmetic failures.
+- * Weird ...)
+- * But should we continue the brokenness??? --macro
+- */
+- switch (tcode) {
+- case BRK_OVERFLOW:
+- case BRK_DIVZERO:
+- die_if_kernel("Trap instruction in kernel code", regs);
+- if (tcode == BRK_DIVZERO)
+- info.si_code = FPE_INTDIV;
+- else
+- info.si_code = FPE_INTOVF;
+- info.si_signo = SIGFPE;
+- info.si_errno = 0;
+- info.si_addr = (void __user *) regs->cp0_epc;
+- force_sig_info(SIGFPE, &info, current);
+- break;
+- case BRK_BUG:
+- die("Kernel bug detected", regs);
+- break;
+- default:
+- die_if_kernel("Trap instruction in kernel code", regs);
+- force_sig(SIGTRAP, current);
+- }
++ do_trap_or_bp(regs, tcode, "Trap");
+ return;
+
+ out_sigsegv:
+@@ -783,8 +771,10 @@
+ if (cpus_intersects(current->cpus_allowed, mt_fpu_cpumask)) {
+ cpumask_t tmask;
+
+- cpus_and(tmask, current->thread.user_cpus_allowed,
+- mt_fpu_cpumask);
++ current->thread.user_cpus_allowed
++ = current->cpus_allowed;
++ cpus_and(tmask, current->cpus_allowed,
++ mt_fpu_cpumask);
+ set_cpus_allowed(current, tmask);
+ set_thread_flag(TIF_FPUBOUND);
+ }
+@@ -1146,6 +1136,9 @@
+
+ extern char except_vec_vi, except_vec_vi_lui;
+ extern char except_vec_vi_ori, except_vec_vi_end;
++ extern char rollback_except_vec_vi;
++ char *vec_start = (cpu_wait == r4k_wait) ?
++ &rollback_except_vec_vi : &except_vec_vi;
+ #ifdef CONFIG_MIPS_MT_SMTC
+ /*
+ * We need to provide the SMTC vectored interrupt handler
+@@ -1153,11 +1146,11 @@
+ * Status.IM bit to be masked before going there.
+ */
+ extern char except_vec_vi_mori;
+- const int mori_offset = &except_vec_vi_mori - &except_vec_vi;
++ const int mori_offset = &except_vec_vi_mori - vec_start;
+ #endif /* CONFIG_MIPS_MT_SMTC */
+- const int handler_len = &except_vec_vi_end - &except_vec_vi;
+- const int lui_offset = &except_vec_vi_lui - &except_vec_vi;
+- const int ori_offset = &except_vec_vi_ori - &except_vec_vi;
++ const int handler_len = &except_vec_vi_end - vec_start;
++ const int lui_offset = &except_vec_vi_lui - vec_start;
++ const int ori_offset = &except_vec_vi_ori - vec_start;
+
+ if (handler_len > VECTORSPACING) {
+ /*
+@@ -1167,7 +1160,7 @@
+ panic("VECTORSPACING too small");
+ }
+
+- memcpy(b, &except_vec_vi, handler_len);
++ memcpy(b, vec_start, handler_len);
+ #ifdef CONFIG_MIPS_MT_SMTC
+ BUG_ON(n > 7); /* Vector index %d exceeds SMTC maximum. */
+
+@@ -1287,7 +1280,7 @@
+ int cp0_perfcount_irq;
+ EXPORT_SYMBOL_GPL(cp0_perfcount_irq);
+
+-void __init per_cpu_trap_init(void)
++void __cpuinit per_cpu_trap_init(void)
+ {
+ unsigned int cpu = smp_processor_id();
+ unsigned int status_set = ST0_CU0;
+@@ -1404,11 +1397,12 @@
+ flush_icache_range(ebase + offset, ebase + offset + size);
+ }
+
+-static char panic_null_cerr[] __initdata =
++static char panic_null_cerr[] __cpuinitdata =
+ "Trying to set NULL cache error exception handler";
+
+ /* Install uncached CPU exception handler */
+-void __init set_uncached_handler(unsigned long offset, void *addr, unsigned long size)
++void __cpuinit set_uncached_handler(unsigned long offset, void *addr,
++ unsigned long size)
+ {
+ #ifdef CONFIG_32BIT
+ unsigned long uncached_ebase = KSEG1ADDR(ebase);
+@@ -1437,6 +1431,10 @@
+ extern char except_vec3_generic, except_vec3_r4000;
+ extern char except_vec4;
+ unsigned long i;
++ int rollback;
++
++ check_wait();
++ rollback = (cpu_wait == r4k_wait);
+
+ if (cpu_has_veic || cpu_has_vint)
+ ebase = (unsigned long) alloc_bootmem_low_pages(0x200 + VECTORSPACING*64);
+@@ -1496,7 +1494,7 @@
+ if (board_be_init)
+ board_be_init();
+
+- set_except_vector(0, handle_int);
++ set_except_vector(0, rollback ? rollback_handle_int : handle_int);
+ set_except_vector(1, handle_tlbm);
+ set_except_vector(2, handle_tlbl);
+ set_except_vector(3, handle_tlbs);
+diff -Nurd linux-2.6.24/arch/mips/kernel/unaligned.c mer-smartq-kernel/arch/mips/kernel/unaligned.c
+--- linux-2.6.24/arch/mips/kernel/unaligned.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/unaligned.c 2009-11-17 12:13:29.000000000 +0100
+@@ -560,12 +560,12 @@
+ return -ENODEV;
+ d = debugfs_create_u32("unaligned_instructions", S_IRUGO,
+ mips_debugfs_dir, &unaligned_instructions);
+- if (IS_ERR(d))
+- return PTR_ERR(d);
++ if (!d)
++ return -ENOMEM;
+ d = debugfs_create_u32("unaligned_action", S_IRUGO | S_IWUSR,
+ mips_debugfs_dir, &unaligned_action);
+- if (IS_ERR(d))
+- return PTR_ERR(d);
++ if (!d)
++ return -ENOMEM;
+ return 0;
+ }
+ __initcall(debugfs_unaligned);
+diff -Nurd linux-2.6.24/arch/mips/kernel/vpe.c mer-smartq-kernel/arch/mips/kernel/vpe.c
+--- linux-2.6.24/arch/mips/kernel/vpe.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/kernel/vpe.c 2009-11-17 12:13:29.000000000 +0100
+@@ -263,13 +263,21 @@
+ /* Find some VPE program space */
+ static void *alloc_progmem(unsigned long len)
+ {
++ void *addr;
++
+ #ifdef CONFIG_MIPS_VPE_LOADER_TOM
+- /* this means you must tell linux to use less memory than you physically have */
+- return pfn_to_kaddr(max_pfn);
++ /*
++ * This means you must tell Linux to use less memory than you
++ * physically have, for example by passing a mem= boot argument.
++ */
++ addr = pfn_to_kaddr(max_pfn);
++ memset(addr, 0, len);
+ #else
+- // simple grab some mem for now
+- return kmalloc(len, GFP_KERNEL);
++ /* simple grab some mem for now */
++ addr = kzalloc(len, GFP_KERNEL);
+ #endif
++
++ return addr;
+ }
+
+ static void release_progmem(void *ptr)
+@@ -774,10 +782,15 @@
+ /* take system out of configuration state */
+ clear_c0_mvpcontrol(MVPCONTROL_VPC);
+
++ /*
++ * SMTC/SMVP kernels manage VPE enable independently,
++ * but uniprocessor kernels need to turn it on, even
++ * if that wasn't the pre-dvpe() state.
++ */
+ #ifdef CONFIG_SMP
+- evpe(EVPE_ENABLE);
+-#else
+ evpe(vpeflags);
++#else
++ evpe(EVPE_ENABLE);
+ #endif
+ emt(dmt_flag);
+ local_irq_restore(flags);
+@@ -885,9 +898,10 @@
+ }
+
+ v->load_addr = alloc_progmem(mod.core_size);
+- memset(v->load_addr, 0, mod.core_size);
++ if (!v->load_addr)
++ return -ENOMEM;
+
+- printk("VPE loader: loading to %p\n", v->load_addr);
++ pr_info("VPE loader: loading to %p\n", v->load_addr);
+
+ if (relocate) {
+ for (i = 0; i < hdr->e_shnum; i++) {
+@@ -939,12 +953,14 @@
+ struct elf_phdr *phdr = (struct elf_phdr *) ((char *)hdr + hdr->e_phoff);
+
+ for (i = 0; i < hdr->e_phnum; i++) {
+- if (phdr->p_type != PT_LOAD)
+- continue;
+-
+- memcpy((void *)phdr->p_paddr, (char *)hdr + phdr->p_offset, phdr->p_filesz);
+- memset((void *)phdr->p_paddr + phdr->p_filesz, 0, phdr->p_memsz - phdr->p_filesz);
+- phdr++;
++ if (phdr->p_type == PT_LOAD) {
++ memcpy((void *)phdr->p_paddr,
++ (char *)hdr + phdr->p_offset,
++ phdr->p_filesz);
++ memset((void *)phdr->p_paddr + phdr->p_filesz,
++ 0, phdr->p_memsz - phdr->p_filesz);
++ }
++ phdr++;
+ }
+
+ for (i = 0; i < hdr->e_shnum; i++) {
+@@ -1113,7 +1129,7 @@
+
+ /* It's good to be able to run the SP and if it chokes have a look at
+ the /dev/rt?. But if we reset the pointer to the shared struct we
+- loose what has happened. So perhaps if garbage is sent to the vpe
++ lose what has happened. So perhaps if garbage is sent to the vpe
+ device, use it as a trigger for the reset. Hopefully a nice
+ executable will be along shortly. */
+ if (ret < 0)
+diff -Nurd linux-2.6.24/arch/mips/lasat/interrupt.c mer-smartq-kernel/arch/mips/lasat/interrupt.c
+--- linux-2.6.24/arch/mips/lasat/interrupt.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/lasat/interrupt.c 2009-11-17 12:13:29.000000000 +0100
+@@ -34,11 +34,13 @@
+
+ void disable_lasat_irq(unsigned int irq_nr)
+ {
++ irq_nr -= LASAT_IRQ_BASE;
+ *lasat_int_mask &= ~(1 << irq_nr) << lasat_int_mask_shift;
+ }
+
+ void enable_lasat_irq(unsigned int irq_nr)
+ {
++ irq_nr -= LASAT_IRQ_BASE;
+ *lasat_int_mask |= (1 << irq_nr) << lasat_int_mask_shift;
+ }
+
+diff -Nurd linux-2.6.24/arch/mips/lasat/lasat_board.c mer-smartq-kernel/arch/mips/lasat/lasat_board.c
+--- linux-2.6.24/arch/mips/lasat/lasat_board.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/lasat/lasat_board.c 2009-11-17 12:13:29.000000000 +0100
+@@ -23,18 +23,19 @@
+ #include <linux/kernel.h>
+ #include <linux/string.h>
+ #include <linux/ctype.h>
++#include <linux/mutex.h>
+ #include <asm/bootinfo.h>
+ #include <asm/addrspace.h>
+ #include "at93c.h"
+ /* New model description table */
+ #include "lasat_models.h"
+
++static DEFINE_MUTEX(lasat_eeprom_mutex);
++
+ #define EEPROM_CRC(data, len) (~crc32(~0, data, len))
+
+ struct lasat_info lasat_board_info;
+
+-void update_bcastaddr(void);
+-
+ int EEPROMRead(unsigned int pos, unsigned char *data, int len)
+ {
+ int i;
+@@ -258,10 +259,6 @@
+ sprintf(lasat_board_info.li_typestr, "%d", 10 * c);
+ }
+
+-#if defined(CONFIG_INET) && defined(CONFIG_SYSCTL)
+- update_bcastaddr();
+-#endif
+-
+ return 0;
+ }
+
+@@ -269,6 +266,8 @@
+ {
+ unsigned long crc;
+
++ mutex_lock(&lasat_eeprom_mutex);
++
+ /* Generate the CRC */
+ crc = EEPROM_CRC((unsigned char *)(&lasat_board_info.li_eeprom_info),
+ sizeof(struct lasat_eeprom_struct) - 4);
+@@ -277,4 +276,6 @@
+ /* Write the EEPROM info */
+ EEPROMWrite(0, (unsigned char *)&lasat_board_info.li_eeprom_info,
+ sizeof(struct lasat_eeprom_struct));
++
++ mutex_unlock(&lasat_eeprom_mutex);
+ }
+diff -Nurd linux-2.6.24/arch/mips/lasat/sysctl.c mer-smartq-kernel/arch/mips/lasat/sysctl.c
+--- linux-2.6.24/arch/mips/lasat/sysctl.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/lasat/sysctl.c 2009-11-17 12:13:29.000000000 +0100
+@@ -29,15 +29,13 @@
+ #include <linux/string.h>
+ #include <linux/net.h>
+ #include <linux/inet.h>
+-#include <linux/mutex.h>
+ #include <linux/uaccess.h>
+
+ #include <asm/time.h>
+
+-#include "sysctl.h"
++#ifdef CONFIG_DS1603
+ #include "ds1603.h"
+-
+-static DEFINE_MUTEX(lasat_info_mutex);
++#endif
+
+ /* Strategy function to write EEPROM after changing string entry */
+ int sysctl_lasatstring(ctl_table *table, int *name, int nlen,
+@@ -46,18 +44,15 @@
+ {
+ int r;
+
+- mutex_lock(&lasat_info_mutex);
+ r = sysctl_string(table, name,
+ nlen, oldval, oldlenp, newval, newlen);
+- if (r < 0) {
+- mutex_unlock(&lasat_info_mutex);
++ if (r < 0)
+ return r;
+- }
++
+ if (newval && newlen)
+ lasat_write_eeprom_info();
+- mutex_unlock(&lasat_info_mutex);
+
+- return 1;
++ return 0;
+ }
+
+
+@@ -67,14 +62,11 @@
+ {
+ int r;
+
+- mutex_lock(&lasat_info_mutex);
+ r = proc_dostring(table, write, filp, buffer, lenp, ppos);
+- if ((!write) || r) {
+- mutex_unlock(&lasat_info_mutex);
++ if ((!write) || r)
+ return r;
+- }
++
+ lasat_write_eeprom_info();
+- mutex_unlock(&lasat_info_mutex);
+
+ return 0;
+ }
+@@ -85,28 +77,24 @@
+ {
+ int r;
+
+- mutex_lock(&lasat_info_mutex);
+ r = proc_dointvec(table, write, filp, buffer, lenp, ppos);
+- if ((!write) || r) {
+- mutex_unlock(&lasat_info_mutex);
++ if ((!write) || r)
+ return r;
+- }
++
+ lasat_write_eeprom_info();
+- mutex_unlock(&lasat_info_mutex);
+
+ return 0;
+ }
+
++#ifdef CONFIG_DS1603
+ static int rtctmp;
+
+-#ifdef CONFIG_DS1603
+ /* proc function to read/write RealTime Clock */
+ int proc_dolasatrtc(ctl_table *table, int write, struct file *filp,
+ void *buffer, size_t *lenp, loff_t *ppos)
+ {
+ int r;
+
+- mutex_lock(&lasat_info_mutex);
+ if (!write) {
+ rtctmp = read_persistent_clock();
+ /* check for time < 0 and set to 0 */
+@@ -114,12 +102,11 @@
+ rtctmp = 0;
+ }
+ r = proc_dointvec(table, write, filp, buffer, lenp, ppos);
+- if ((!write) || r) {
+- mutex_unlock(&lasat_info_mutex);
++ if (r)
+ return r;
+- }
+- rtc_mips_set_mmss(rtctmp);
+- mutex_unlock(&lasat_info_mutex);
++
++ if (write)
++ rtc_mips_set_mmss(rtctmp);
+
+ return 0;
+ }
+@@ -132,17 +119,14 @@
+ {
+ int r;
+
+- mutex_lock(&lasat_info_mutex);
+ r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen);
+- if (r < 0) {
+- mutex_unlock(&lasat_info_mutex);
++ if (r < 0)
+ return r;
+- }
++
+ if (newval && newlen)
+ lasat_write_eeprom_info();
+- mutex_unlock(&lasat_info_mutex);
+
+- return 1;
++ return 0;
+ }
+
+ #ifdef CONFIG_DS1603
+@@ -153,50 +137,27 @@
+ {
+ int r;
+
+- mutex_lock(&lasat_info_mutex);
+ rtctmp = read_persistent_clock();
+ if (rtctmp < 0)
+ rtctmp = 0;
+ r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen);
+- if (r < 0) {
+- mutex_unlock(&lasat_info_mutex);
++ if (r < 0)
+ return r;
+- }
+ if (newval && newlen)
+ rtc_mips_set_mmss(rtctmp);
+- mutex_unlock(&lasat_info_mutex);
+
+- return 1;
++ return r;
+ }
+ #endif
+
+ #ifdef CONFIG_INET
+-static char lasat_bcastaddr[16];
+-
+-void update_bcastaddr(void)
+-{
+- unsigned int ip;
+-
+- ip = (lasat_board_info.li_eeprom_info.ipaddr &
+- lasat_board_info.li_eeprom_info.netmask) |
+- ~lasat_board_info.li_eeprom_info.netmask;
+-
+- sprintf(lasat_bcastaddr, "%d.%d.%d.%d",
+- (ip) & 0xff,
+- (ip >> 8) & 0xff,
+- (ip >> 16) & 0xff,
+- (ip >> 24) & 0xff);
+-}
+-
+-static char proc_lasat_ipbuf[32];
+-
+-/* Parsing of IP address */
+ int proc_lasat_ip(ctl_table *table, int write, struct file *filp,
+ void *buffer, size_t *lenp, loff_t *ppos)
+ {
+ unsigned int ip;
+ char *p, c;
+ int len;
++ char ipbuf[32];
+
+ if (!table->data || !table->maxlen || !*lenp ||
+ (*ppos && !write)) {
+@@ -204,117 +165,88 @@
+ return 0;
+ }
+
+- mutex_lock(&lasat_info_mutex);
+ if (write) {
+ len = 0;
+ p = buffer;
+ while (len < *lenp) {
+- if (get_user(c, p++)) {
+- mutex_unlock(&lasat_info_mutex);
++ if (get_user(c, p++))
+ return -EFAULT;
+- }
+ if (c == 0 || c == '\n')
+ break;
+ len++;
+ }
+- if (len >= sizeof(proc_lasat_ipbuf)-1)
+- len = sizeof(proc_lasat_ipbuf) - 1;
+- if (copy_from_user(proc_lasat_ipbuf, buffer, len)) {
+- mutex_unlock(&lasat_info_mutex);
++ if (len >= sizeof(ipbuf)-1)
++ len = sizeof(ipbuf) - 1;
++ if (copy_from_user(ipbuf, buffer, len))
+ return -EFAULT;
+- }
+- proc_lasat_ipbuf[len] = 0;
++ ipbuf[len] = 0;
+ *ppos += *lenp;
+ /* Now see if we can convert it to a valid IP */
+- ip = in_aton(proc_lasat_ipbuf);
++ ip = in_aton(ipbuf);
+ *(unsigned int *)(table->data) = ip;
+ lasat_write_eeprom_info();
+ } else {
+ ip = *(unsigned int *)(table->data);
+- sprintf(proc_lasat_ipbuf, "%d.%d.%d.%d",
++ sprintf(ipbuf, "%d.%d.%d.%d",
+ (ip) & 0xff,
+ (ip >> 8) & 0xff,
+ (ip >> 16) & 0xff,
+ (ip >> 24) & 0xff);
+- len = strlen(proc_lasat_ipbuf);
++ len = strlen(ipbuf);
+ if (len > *lenp)
+ len = *lenp;
+ if (len)
+- if (copy_to_user(buffer, proc_lasat_ipbuf, len)) {
+- mutex_unlock(&lasat_info_mutex);
++ if (copy_to_user(buffer, ipbuf, len))
+ return -EFAULT;
+- }
+ if (len < *lenp) {
+- if (put_user('\n', ((char *) buffer) + len)) {
+- mutex_unlock(&lasat_info_mutex);
++ if (put_user('\n', ((char *) buffer) + len))
+ return -EFAULT;
+- }
+ len++;
+ }
+ *lenp = len;
+ *ppos += len;
+ }
+- update_bcastaddr();
+- mutex_unlock(&lasat_info_mutex);
+
+ return 0;
+ }
+-#endif /* defined(CONFIG_INET) */
++#endif
+
+-static int sysctl_lasat_eeprom_value(ctl_table *table, int *name, int nlen,
++static int sysctl_lasat_prid(ctl_table *table, int *name, int nlen,
+ void *oldval, size_t *oldlenp,
+ void *newval, size_t newlen)
+ {
+ int r;
+
+- mutex_lock(&lasat_info_mutex);
+ r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen);
+- if (r < 0) {
+- mutex_unlock(&lasat_info_mutex);
++ if (r < 0)
+ return r;
+- }
+-
+ if (newval && newlen) {
+- if (name && *name == LASAT_PRID)
+- lasat_board_info.li_eeprom_info.prid = *(int *)newval;
+-
++ lasat_board_info.li_eeprom_info.prid = *(int *)newval;
+ lasat_write_eeprom_info();
+ lasat_init_board_info();
+ }
+- mutex_unlock(&lasat_info_mutex);
+-
+ return 0;
+ }
+
+-int proc_lasat_eeprom_value(ctl_table *table, int write, struct file *filp,
++int proc_lasat_prid(ctl_table *table, int write, struct file *filp,
+ void *buffer, size_t *lenp, loff_t *ppos)
+ {
+ int r;
+
+- mutex_lock(&lasat_info_mutex);
+ r = proc_dointvec(table, write, filp, buffer, lenp, ppos);
+- if ((!write) || r) {
+- mutex_unlock(&lasat_info_mutex);
++ if (r < 0)
+ return r;
++ if (write) {
++ lasat_board_info.li_eeprom_info.prid =
++ lasat_board_info.li_prid;
++ lasat_write_eeprom_info();
++ lasat_init_board_info();
+ }
+- if (filp && filp->f_path.dentry) {
+- if (!strcmp(filp->f_path.dentry->d_name.name, "prid"))
+- lasat_board_info.li_eeprom_info.prid =
+- lasat_board_info.li_prid;
+- if (!strcmp(filp->f_path.dentry->d_name.name, "debugaccess"))
+- lasat_board_info.li_eeprom_info.debugaccess =
+- lasat_board_info.li_debugaccess;
+- }
+- lasat_write_eeprom_info();
+- mutex_unlock(&lasat_info_mutex);
+-
+ return 0;
+ }
+
+ extern int lasat_boot_to_service;
+
+-#ifdef CONFIG_SYSCTL
+-
+ static ctl_table lasat_table[] = {
+ {
+ .ctl_name = CTL_UNNUMBERED,
+@@ -349,8 +281,8 @@
+ .data = &lasat_board_info.li_prid,
+ .maxlen = sizeof(int),
+ .mode = 0644,
+- .proc_handler = &proc_lasat_eeprom_value,
+- .strategy = &sysctl_lasat_eeprom_value
++ .proc_handler = &proc_lasat_prid,
++ .strategy = &sysctl_lasat_prid
+ },
+ #ifdef CONFIG_INET
+ {
+@@ -363,7 +295,7 @@
+ .strategy = &sysctl_lasat_intvec
+ },
+ {
+- .ctl_name = LASAT_NETMASK,
++ .ctl_name = CTL_UNNUMBERED,
+ .procname = "netmask",
+ .data = &lasat_board_info.li_eeprom_info.netmask,
+ .maxlen = sizeof(int),
+@@ -371,15 +303,6 @@
+ .proc_handler = &proc_lasat_ip,
+ .strategy = &sysctl_lasat_intvec
+ },
+- {
+- .ctl_name = CTL_UNNUMBERED,
+- .procname = "bcastaddr",
+- .data = &lasat_bcastaddr,
+- .maxlen = sizeof(lasat_bcastaddr),
+- .mode = 0600,
+- .proc_handler = &proc_dostring,
+- .strategy = &sysctl_string
+- },
+ #endif
+ {
+ .ctl_name = CTL_UNNUMBERED,
+@@ -417,7 +340,7 @@
+ .data = &lasat_board_info.li_namestr,
+ .maxlen = sizeof(lasat_board_info.li_namestr),
+ .mode = 0444,
+- .proc_handler = &proc_dostring,
++ .proc_handler = &proc_dostring,
+ .strategy = &sysctl_string
+ },
+ {
+@@ -448,9 +371,12 @@
+
+ lasat_table_header =
+ register_sysctl_table(lasat_root_table);
++ if (!lasat_table_header) {
++ printk(KERN_ERR "Unable to register LASAT sysctl\n");
++ return -ENOMEM;
++ }
+
+ return 0;
+ }
+
+ __initcall(lasat_register_sysctl);
+-#endif /* CONFIG_SYSCTL */
+diff -Nurd linux-2.6.24/arch/mips/lasat/sysctl.h mer-smartq-kernel/arch/mips/lasat/sysctl.h
+--- linux-2.6.24/arch/mips/lasat/sysctl.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/lasat/sysctl.h 1970-01-01 01:00:00.000000000 +0100
+@@ -1,24 +0,0 @@
+-/*
+- * LASAT sysctl values
+- */
+-
+-#ifndef _LASAT_SYSCTL_H
+-#define _LASAT_SYSCTL_H
+-
+-/* /proc/sys/lasat */
+-enum {
+- LASAT_CPU_HZ = 1,
+- LASAT_BUS_HZ,
+- LASAT_MODEL,
+- LASAT_PRID,
+- LASAT_IPADDR,
+- LASAT_NETMASK,
+- LASAT_BCAST,
+- LASAT_PASSWORD,
+- LASAT_SBOOT,
+- LASAT_RTC,
+- LASAT_NAMESTR,
+- LASAT_TYPESTR,
+-};
+-
+-#endif /* _LASAT_SYSCTL_H */
+diff -Nurd linux-2.6.24/arch/mips/lib/csum_partial.S mer-smartq-kernel/arch/mips/lib/csum_partial.S
+--- linux-2.6.24/arch/mips/lib/csum_partial.S 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/lib/csum_partial.S 2009-11-17 12:13:29.000000000 +0100
+@@ -38,12 +38,14 @@
+ #ifdef USE_DOUBLE
+
+ #define LOAD ld
++#define LOAD32 lwu
+ #define ADD daddu
+ #define NBYTES 8
+
+ #else
+
+ #define LOAD lw
++#define LOAD32 lw
+ #define ADD addu
+ #define NBYTES 4
+
+@@ -56,6 +58,14 @@
+ sltu v1, sum, reg; \
+ ADD sum, v1
+
++#define ADDC32(sum,reg) \
++ .set push; \
++ .set noat; \
++ addu sum, reg; \
++ sltu v1, sum, reg; \
++ addu sum, v1; \
++ .set pop
++
+ #define CSUM_BIGCHUNK1(src, offset, sum, _t0, _t1, _t2, _t3) \
+ LOAD _t0, (offset + UNIT(0))(src); \
+ LOAD _t1, (offset + UNIT(1))(src); \
+@@ -128,7 +138,7 @@
+ beqz t8, qword_align
+ andi t8, src, 0x8
+
+- lw t0, 0x00(src)
++ LOAD32 t0, 0x00(src)
+ LONG_SUBU a1, a1, 0x4
+ ADDC(sum, t0)
+ PTR_ADDU src, src, 0x4
+@@ -205,7 +215,7 @@
+ LONG_SRL t8, t8, 0x2
+
+ end_words:
+- lw t0, (src)
++ LOAD32 t0, (src)
+ LONG_SUBU t8, t8, 0x1
+ ADDC(sum, t0)
+ bnez t8, end_words
+@@ -222,6 +232,9 @@
+ /* Still a full word to go */
+ ulw t1, (src)
+ PTR_ADDIU src, 4
++#ifdef USE_DOUBLE
++ dsll t1, t1, 32 /* clear lower 32bit */
++#endif
+ ADDC(sum, t1)
+
+ 1: move t1, zero
+@@ -269,7 +282,7 @@
+ 1:
+ .set reorder
+ /* Add the passed partial csum. */
+- ADDC(sum, a2)
++ ADDC32(sum, a2)
+ jr ra
+ .set noreorder
+ END(csum_partial)
+@@ -653,7 +666,7 @@
+ andi sum, 0xffff
+ 1:
+ .set reorder
+- ADDC(sum, psum)
++ ADDC32(sum, psum)
+ jr ra
+ .set noreorder
+
+diff -Nurd linux-2.6.24/arch/mips/lib/ucmpdi2.c mer-smartq-kernel/arch/mips/lib/ucmpdi2.c
+--- linux-2.6.24/arch/mips/lib/ucmpdi2.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/lib/ucmpdi2.c 2009-11-17 12:13:29.000000000 +0100
+@@ -17,3 +17,5 @@
+ return 2;
+ return 1;
+ }
++
++EXPORT_SYMBOL(__ucmpdi2);
+diff -Nurd linux-2.6.24/arch/mips/lib/uncached.c mer-smartq-kernel/arch/mips/lib/uncached.c
+--- linux-2.6.24/arch/mips/lib/uncached.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/lib/uncached.c 2009-11-17 12:13:29.000000000 +0100
+@@ -36,7 +36,7 @@
+ * values, so we can avoid sharing the same stack area between a cached
+ * and the uncached mode.
+ */
+-unsigned long __init run_uncached(void *func)
++unsigned long __cpuinit run_uncached(void *func)
+ {
+ register long sp __asm__("$sp");
+ register long ret __asm__("$2");
+diff -Nurd linux-2.6.24/arch/mips/Makefile mer-smartq-kernel/arch/mips/Makefile
+--- linux-2.6.24/arch/mips/Makefile 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/Makefile 2009-11-17 12:13:28.000000000 +0100
+@@ -548,7 +548,11 @@
+ #
+ core-$(CONFIG_SNI_RM) += arch/mips/sni/
+ cflags-$(CONFIG_SNI_RM) += -Iinclude/asm-mips/mach-rm
++ifdef CONFIG_CPU_LITTLE_ENDIAN
+ load-$(CONFIG_SNI_RM) += 0xffffffff80600000
++else
++load-$(CONFIG_SNI_RM) += 0xffffffff80030000
++endif
+ all-$(CONFIG_SNI_RM) := vmlinux.ecoff
+
+ #
+diff -Nurd linux-2.6.24/arch/mips/math-emu/cp1emu.c mer-smartq-kernel/arch/mips/math-emu/cp1emu.c
+--- linux-2.6.24/arch/mips/math-emu/cp1emu.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/math-emu/cp1emu.c 2009-11-17 12:13:29.000000000 +0100
+@@ -1299,12 +1299,12 @@
+ if (!mips_debugfs_dir)
+ return -ENODEV;
+ dir = debugfs_create_dir("fpuemustats", mips_debugfs_dir);
+- if (IS_ERR(dir))
+- return PTR_ERR(dir);
++ if (!dir)
++ return -ENOMEM;
+ for (i = 0; i < ARRAY_SIZE(vars); i++) {
+ d = debugfs_create_u32(vars[i].name, S_IRUGO, dir, vars[i].v);
+- if (IS_ERR(d))
+- return PTR_ERR(d);
++ if (!d)
++ return -ENOMEM;
+ }
+ return 0;
+ }
+diff -Nurd linux-2.6.24/arch/mips/mips-boards/generic/time.c mer-smartq-kernel/arch/mips/mips-boards/generic/time.c
+--- linux-2.6.24/arch/mips/mips-boards/generic/time.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/mips-boards/generic/time.c 2009-11-17 12:13:29.000000000 +0100
+@@ -146,7 +146,7 @@
+ }
+ }
+
+-unsigned int __init get_c0_compare_int(void)
++unsigned int __cpuinit get_c0_compare_int(void)
+ {
+ #ifdef MSC01E_INT_BASE
+ if (cpu_has_veic) {
+diff -Nurd linux-2.6.24/arch/mips/mips-boards/malta/Makefile mer-smartq-kernel/arch/mips/mips-boards/malta/Makefile
+--- linux-2.6.24/arch/mips/mips-boards/malta/Makefile 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/mips-boards/malta/Makefile 2009-11-17 12:13:29.000000000 +0100
+@@ -19,9 +19,8 @@
+ # under Linux.
+ #
+
+-obj-y := malta_int.o malta_platform.o malta_setup.o
++obj-y := malta_int.o malta_mtd.o malta_platform.o malta_setup.o
+
+-obj-$(CONFIG_MTD) += malta_mtd.o
+ obj-$(CONFIG_MIPS_MT_SMTC) += malta_smtc.o
+
+ EXTRA_CFLAGS += -Werror
+diff -Nurd linux-2.6.24/arch/mips/mips-boards/malta/malta_smtc.c mer-smartq-kernel/arch/mips/mips-boards/malta/malta_smtc.c
+--- linux-2.6.24/arch/mips/mips-boards/malta/malta_smtc.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/mips-boards/malta/malta_smtc.c 2009-11-17 12:13:29.000000000 +0100
+@@ -62,14 +62,20 @@
+
+ void __cpuinit plat_smp_setup(void)
+ {
+- if (read_c0_config3() & (1<<2))
+- mipsmt_build_cpu_map(0);
++ if (read_c0_config3() & (1<<2)) {
++ /*
++ * we won't get the definitive value until
++ * we've run smtc_prepare_cpus later, but
++ * we would appear to need an upper bound now.
++ */
++ smtc_build_cpu_map(0);
++ }
+ }
+
+ void __init plat_prepare_cpus(unsigned int max_cpus)
+ {
+ if (read_c0_config3() & (1<<2))
+- mipsmt_prepare_cpus();
++ smtc_prepare_cpus(max_cpus);
+ }
+
+ /*
+diff -Nurd linux-2.6.24/arch/mips/mipssim/sim_time.c mer-smartq-kernel/arch/mips/mipssim/sim_time.c
+--- linux-2.6.24/arch/mips/mipssim/sim_time.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/mipssim/sim_time.c 2009-11-17 12:13:29.000000000 +0100
+@@ -83,7 +83,7 @@
+ }
+
+
+-unsigned __init get_c0_compare_int(void)
++unsigned __cpuinit get_c0_compare_int(void)
+ {
+ #ifdef MSC01E_INT_BASE
+ if (cpu_has_veic) {
+diff -Nurd linux-2.6.24/arch/mips/mm/cache.c mer-smartq-kernel/arch/mips/mm/cache.c
+--- linux-2.6.24/arch/mips/mm/cache.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/mm/cache.c 2009-11-17 12:13:29.000000000 +0100
+@@ -30,6 +30,9 @@
+ unsigned long pfn);
+ void (*flush_icache_range)(unsigned long start, unsigned long end);
+
++void (*__flush_cache_vmap)(void);
++void (*__flush_cache_vunmap)(void);
++
+ /* MIPS specific cache operations */
+ void (*flush_cache_sigtramp)(unsigned long addr);
+ void (*local_flush_data_cache_page)(void * addr);
+@@ -92,12 +95,17 @@
+
+ void __flush_anon_page(struct page *page, unsigned long vmaddr)
+ {
+- if (pages_do_alias((unsigned long)page_address(page), vmaddr)) {
+- void *kaddr;
++ unsigned long addr = (unsigned long) page_address(page);
+
+- kaddr = kmap_coherent(page, vmaddr);
+- flush_data_cache_page((unsigned long)kaddr);
+- kunmap_coherent();
++ if (pages_do_alias(addr, vmaddr)) {
++ if (page_mapped(page) && !Page_dcache_dirty(page)) {
++ void *kaddr;
++
++ kaddr = kmap_coherent(page, vmaddr);
++ flush_data_cache_page((unsigned long)kaddr);
++ kunmap_coherent();
++ } else
++ flush_data_cache_page(addr);
+ }
+ }
+
+@@ -122,9 +130,10 @@
+ }
+ }
+
+-static char cache_panic[] __initdata = "Yeee, unsupported cache architecture.";
++static char cache_panic[] __cpuinitdata =
++ "Yeee, unsupported cache architecture.";
+
+-void __init cpu_cache_init(void)
++void __cpuinit cpu_cache_init(void)
+ {
+ if (cpu_has_3k_cache) {
+ extern void __weak r3k_cache_init(void);
+diff -Nurd linux-2.6.24/arch/mips/mm/cex-sb1.S mer-smartq-kernel/arch/mips/mm/cex-sb1.S
+--- linux-2.6.24/arch/mips/mm/cex-sb1.S 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/mm/cex-sb1.S 2009-11-17 12:13:29.000000000 +0100
+@@ -34,8 +34,6 @@
+ * is changed.
+ */
+
+- __INIT
+-
+ .set mips64
+ .set noreorder
+ .set noat
+@@ -51,6 +49,10 @@
+ * (0x170-0x17f) are used to preserve k0, k1, and ra.
+ */
+
++#ifndef CONFIG_HOTPLUG_CPU
++ __INIT /* no __CPUINIT; it's a 2.6.25 thing */
++#endif
++
+ LEAF(except_vec2_sb1)
+ /*
+ * If this error is recoverable, we need to exit the handler
+@@ -142,7 +144,9 @@
+
+ END(except_vec2_sb1)
+
++#ifndef CONFIG_HOTPLUG_CPU
+ __FINIT
++#endif
+
+ LEAF(handle_vec2_sb1)
+ mfc0 k0,CP0_CONFIG
+diff -Nurd linux-2.6.24/arch/mips/mm/c-r3k.c mer-smartq-kernel/arch/mips/mm/c-r3k.c
+--- linux-2.6.24/arch/mips/mm/c-r3k.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/mm/c-r3k.c 2009-11-17 12:13:29.000000000 +0100
+@@ -26,7 +26,7 @@
+ static unsigned long icache_size, dcache_size; /* Size in bytes */
+ static unsigned long icache_lsize, dcache_lsize; /* Size in bytes */
+
+-unsigned long __init r3k_cache_size(unsigned long ca_flags)
++unsigned long __cpuinit r3k_cache_size(unsigned long ca_flags)
+ {
+ unsigned long flags, status, dummy, size;
+ volatile unsigned long *p;
+@@ -61,7 +61,7 @@
+ return size * sizeof(*p);
+ }
+
+-unsigned long __init r3k_cache_lsize(unsigned long ca_flags)
++unsigned long __cpuinit r3k_cache_lsize(unsigned long ca_flags)
+ {
+ unsigned long flags, status, lsize, i;
+ volatile unsigned long *p;
+@@ -90,7 +90,7 @@
+ return lsize * sizeof(*p);
+ }
+
+-static void __init r3k_probe_cache(void)
++static void __cpuinit r3k_probe_cache(void)
+ {
+ dcache_size = r3k_cache_size(ST0_ISC);
+ if (dcache_size)
+@@ -307,7 +307,7 @@
+ r3k_flush_dcache_range(start, start + size);
+ }
+
+-void __init r3k_cache_init(void)
++void __cpuinit r3k_cache_init(void)
+ {
+ extern void build_clear_page(void);
+ extern void build_copy_page(void);
+diff -Nurd linux-2.6.24/arch/mips/mm/c-r4k.c mer-smartq-kernel/arch/mips/mm/c-r4k.c
+--- linux-2.6.24/arch/mips/mm/c-r4k.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/mm/c-r4k.c 2009-11-17 12:13:29.000000000 +0100
+@@ -93,7 +93,7 @@
+ blast_dcache32_page(addr);
+ }
+
+-static void __init r4k_blast_dcache_page_setup(void)
++static void __cpuinit r4k_blast_dcache_page_setup(void)
+ {
+ unsigned long dc_lsize = cpu_dcache_line_size();
+
+@@ -107,7 +107,7 @@
+
+ static void (* r4k_blast_dcache_page_indexed)(unsigned long addr);
+
+-static void __init r4k_blast_dcache_page_indexed_setup(void)
++static void __cpuinit r4k_blast_dcache_page_indexed_setup(void)
+ {
+ unsigned long dc_lsize = cpu_dcache_line_size();
+
+@@ -121,7 +121,7 @@
+
+ static void (* r4k_blast_dcache)(void);
+
+-static void __init r4k_blast_dcache_setup(void)
++static void __cpuinit r4k_blast_dcache_setup(void)
+ {
+ unsigned long dc_lsize = cpu_dcache_line_size();
+
+@@ -206,7 +206,7 @@
+
+ static void (* r4k_blast_icache_page)(unsigned long addr);
+
+-static void __init r4k_blast_icache_page_setup(void)
++static void __cpuinit r4k_blast_icache_page_setup(void)
+ {
+ unsigned long ic_lsize = cpu_icache_line_size();
+
+@@ -223,7 +223,7 @@
+
+ static void (* r4k_blast_icache_page_indexed)(unsigned long addr);
+
+-static void __init r4k_blast_icache_page_indexed_setup(void)
++static void __cpuinit r4k_blast_icache_page_indexed_setup(void)
+ {
+ unsigned long ic_lsize = cpu_icache_line_size();
+
+@@ -247,7 +247,7 @@
+
+ static void (* r4k_blast_icache)(void);
+
+-static void __init r4k_blast_icache_setup(void)
++static void __cpuinit r4k_blast_icache_setup(void)
+ {
+ unsigned long ic_lsize = cpu_icache_line_size();
+
+@@ -268,7 +268,7 @@
+
+ static void (* r4k_blast_scache_page)(unsigned long addr);
+
+-static void __init r4k_blast_scache_page_setup(void)
++static void __cpuinit r4k_blast_scache_page_setup(void)
+ {
+ unsigned long sc_lsize = cpu_scache_line_size();
+
+@@ -286,7 +286,7 @@
+
+ static void (* r4k_blast_scache_page_indexed)(unsigned long addr);
+
+-static void __init r4k_blast_scache_page_indexed_setup(void)
++static void __cpuinit r4k_blast_scache_page_indexed_setup(void)
+ {
+ unsigned long sc_lsize = cpu_scache_line_size();
+
+@@ -304,7 +304,7 @@
+
+ static void (* r4k_blast_scache)(void);
+
+-static void __init r4k_blast_scache_setup(void)
++static void __cpuinit r4k_blast_scache_setup(void)
+ {
+ unsigned long sc_lsize = cpu_scache_line_size();
+
+@@ -361,23 +361,36 @@
+ #endif
+ }
+
++static void r4k__flush_cache_vmap(void)
++{
++ r4k_blast_dcache();
++}
++
++static void r4k__flush_cache_vunmap(void)
++{
++ r4k_blast_dcache();
++}
++
+ static inline void local_r4k_flush_cache_range(void * args)
+ {
+ struct vm_area_struct *vma = args;
++ int exec = vma->vm_flags & VM_EXEC;
+
+ if (!(has_valid_asid(vma->vm_mm)))
+ return;
+
+ r4k_blast_dcache();
++ if (exec)
++ r4k_blast_icache();
+ }
+
+ static void r4k_flush_cache_range(struct vm_area_struct *vma,
+ unsigned long start, unsigned long end)
+ {
+- if (!cpu_has_dc_aliases)
+- return;
++ int exec = vma->vm_flags & VM_EXEC;
+
+- r4k_on_each_cpu(local_r4k_flush_cache_range, vma, 1, 1);
++ if (cpu_has_dc_aliases || (exec && !cpu_has_ic_fills_f_dc))
++ r4k_on_each_cpu(local_r4k_flush_cache_range, vma, 1, 1);
+ }
+
+ static inline void local_r4k_flush_cache_mm(void * args)
+@@ -426,6 +439,7 @@
+ struct page *page = pfn_to_page(fcp_args->pfn);
+ int exec = vma->vm_flags & VM_EXEC;
+ struct mm_struct *mm = vma->vm_mm;
++ int map_coherent = 0;
+ pgd_t *pgdp;
+ pud_t *pudp;
+ pmd_t *pmdp;
+@@ -459,7 +473,9 @@
+ * Use kmap_coherent or kmap_atomic to do flushes for
+ * another ASID than the current one.
+ */
+- if (cpu_has_dc_aliases)
++ map_coherent = (cpu_has_dc_aliases &&
++ page_mapped(page) && !Page_dcache_dirty(page));
++ if (map_coherent)
+ vaddr = kmap_coherent(page, addr);
+ else
+ vaddr = kmap_atomic(page, KM_USER0);
+@@ -482,7 +498,7 @@
+ }
+
+ if (vaddr) {
+- if (cpu_has_dc_aliases)
++ if (map_coherent)
+ kunmap_coherent();
+ else
+ kunmap_atomic(vaddr, KM_USER0);
+@@ -697,11 +713,11 @@
+ }
+ }
+
+-static char *way_string[] __initdata = { NULL, "direct mapped", "2-way",
++static char *way_string[] __cpuinitdata = { NULL, "direct mapped", "2-way",
+ "3-way", "4-way", "5-way", "6-way", "7-way", "8-way"
+ };
+
+-static void __init probe_pcache(void)
++static void __cpuinit probe_pcache(void)
+ {
+ struct cpuinfo_mips *c = &current_cpu_data;
+ unsigned int config = read_c0_config();
+@@ -1020,7 +1036,7 @@
+ * executes in KSEG1 space or else you will crash and burn badly. You have
+ * been warned.
+ */
+-static int __init probe_scache(void)
++static int __cpuinit probe_scache(void)
+ {
+ unsigned long flags, addr, begin, end, pow2;
+ unsigned int config = read_c0_config();
+@@ -1099,7 +1115,7 @@
+ extern int rm7k_sc_init(void);
+ extern int mips_sc_init(void);
+
+-static void __init setup_scache(void)
++static void __cpuinit setup_scache(void)
+ {
+ struct cpuinfo_mips *c = &current_cpu_data;
+ unsigned int config = read_c0_config();
+@@ -1210,7 +1226,7 @@
+ }
+ }
+
+-static void __init coherency_setup(void)
++static void __cpuinit coherency_setup(void)
+ {
+ change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
+
+@@ -1242,7 +1258,7 @@
+ }
+ }
+
+-void __init r4k_cache_init(void)
++void __cpuinit r4k_cache_init(void)
+ {
+ extern void build_clear_page(void);
+ extern void build_copy_page(void);
+@@ -1285,6 +1301,10 @@
+ PAGE_SIZE - 1);
+ else
+ shm_align_mask = PAGE_SIZE-1;
++
++ __flush_cache_vmap = r4k__flush_cache_vmap;
++ __flush_cache_vunmap = r4k__flush_cache_vunmap;
++
+ flush_cache_all = cache_noop;
+ __flush_cache_all = r4k___flush_cache_all;
+ flush_cache_mm = r4k_flush_cache_mm;
+diff -Nurd linux-2.6.24/arch/mips/mm/c-tx39.c mer-smartq-kernel/arch/mips/mm/c-tx39.c
+--- linux-2.6.24/arch/mips/mm/c-tx39.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/mm/c-tx39.c 2009-11-17 12:13:29.000000000 +0100
+@@ -122,6 +122,16 @@
+ local_irq_restore(flags);
+ }
+
++static void tx39__flush_cache_vmap(void)
++{
++ tx39_blast_dcache();
++}
++
++static void tx39__flush_cache_vunmap(void)
++{
++ tx39_blast_dcache();
++}
++
+ static inline void tx39_flush_cache_all(void)
+ {
+ if (!cpu_has_dc_aliases)
+@@ -329,7 +339,7 @@
+ }
+ }
+
+-void __init tx39_cache_init(void)
++void __cpuinit tx39_cache_init(void)
+ {
+ extern void build_clear_page(void);
+ extern void build_copy_page(void);
+@@ -344,6 +354,8 @@
+ switch (current_cpu_type()) {
+ case CPU_TX3912:
+ /* TX39/H core (writethru direct-map cache) */
++ __flush_cache_vmap = tx39__flush_cache_vmap;
++ __flush_cache_vunmap = tx39__flush_cache_vunmap;
+ flush_cache_all = tx39h_flush_icache_all;
+ __flush_cache_all = tx39h_flush_icache_all;
+ flush_cache_mm = (void *) tx39h_flush_icache_all;
+@@ -369,6 +381,9 @@
+ write_c0_wired(0); /* set 8 on reset... */
+ /* board-dependent init code may set WBON */
+
++ __flush_cache_vmap = tx39__flush_cache_vmap;
++ __flush_cache_vunmap = tx39__flush_cache_vunmap;
++
+ flush_cache_all = tx39_flush_cache_all;
+ __flush_cache_all = tx39___flush_cache_all;
+ flush_cache_mm = tx39_flush_cache_mm;
+diff -Nurd linux-2.6.24/arch/mips/mm/dma-default.c mer-smartq-kernel/arch/mips/mm/dma-default.c
+--- linux-2.6.24/arch/mips/mm/dma-default.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/mm/dma-default.c 2009-11-17 12:13:29.000000000 +0100
+@@ -111,6 +111,7 @@
+ void dma_free_noncoherent(struct device *dev, size_t size, void *vaddr,
+ dma_addr_t dma_handle)
+ {
++ plat_unmap_dma_mem(dma_handle);
+ free_pages((unsigned long) vaddr, get_order(size));
+ }
+
+@@ -121,6 +122,8 @@
+ {
+ unsigned long addr = (unsigned long) vaddr;
+
++ plat_unmap_dma_mem(dma_handle);
++
+ if (!plat_device_is_coherent(dev))
+ addr = CAC_ADDR(addr);
+
+@@ -324,7 +327,6 @@
+ if (cpu_is_noncoherent_r10000(dev))
+ __dma_sync((unsigned long)page_address(sg_page(sg)),
+ sg->length, direction);
+- plat_unmap_dma_mem(sg->dma_address);
+ }
+ }
+
+@@ -342,7 +344,6 @@
+ if (!plat_device_is_coherent(dev))
+ __dma_sync((unsigned long)page_address(sg_page(sg)),
+ sg->length, direction);
+- plat_unmap_dma_mem(sg->dma_address);
+ }
+ }
+
+diff -Nurd linux-2.6.24/arch/mips/mm/init.c mer-smartq-kernel/arch/mips/mm/init.c
+--- linux-2.6.24/arch/mips/mm/init.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/mm/init.c 2009-11-17 12:13:29.000000000 +0100
+@@ -211,7 +211,8 @@
+ void *vfrom, *vto;
+
+ vto = kmap_atomic(to, KM_USER1);
+- if (cpu_has_dc_aliases && page_mapped(from)) {
++ if (cpu_has_dc_aliases &&
++ page_mapped(from) && !Page_dcache_dirty(from)) {
+ vfrom = kmap_coherent(from, vaddr);
+ copy_page(vto, vfrom);
+ kunmap_coherent();
+@@ -234,7 +235,8 @@
+ struct page *page, unsigned long vaddr, void *dst, const void *src,
+ unsigned long len)
+ {
+- if (cpu_has_dc_aliases && page_mapped(page)) {
++ if (cpu_has_dc_aliases &&
++ page_mapped(page) && !Page_dcache_dirty(page)) {
+ void *vto = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK);
+ memcpy(vto, src, len);
+ kunmap_coherent();
+@@ -253,7 +255,8 @@
+ struct page *page, unsigned long vaddr, void *dst, const void *src,
+ unsigned long len)
+ {
+- if (cpu_has_dc_aliases && page_mapped(page)) {
++ if (cpu_has_dc_aliases &&
++ page_mapped(page) && !Page_dcache_dirty(page)) {
+ void *vfrom = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK);
+ memcpy(dst, vfrom, len);
+ kunmap_coherent();
+diff -Nurd linux-2.6.24/arch/mips/mm/pg-r4k.c mer-smartq-kernel/arch/mips/mm/pg-r4k.c
+--- linux-2.6.24/arch/mips/mm/pg-r4k.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/mm/pg-r4k.c 2009-11-17 12:13:29.000000000 +0100
+@@ -64,21 +64,21 @@
+ * with 64-bit kernels. The prefetch offsets have been experimentally tuned
+ * an Origin 200.
+ */
+-static int pref_offset_clear __initdata = 512;
+-static int pref_offset_copy __initdata = 256;
++static int pref_offset_clear __cpuinitdata = 512;
++static int pref_offset_copy __cpuinitdata = 256;
+
+-static unsigned int pref_src_mode __initdata;
+-static unsigned int pref_dst_mode __initdata;
++static unsigned int pref_src_mode __cpuinitdata;
++static unsigned int pref_dst_mode __cpuinitdata;
+
+-static int load_offset __initdata;
+-static int store_offset __initdata;
++static int load_offset __cpuinitdata;
++static int store_offset __cpuinitdata;
+
+-static unsigned int __initdata *dest, *epc;
++static unsigned int __cpuinitdata *dest, *epc;
+
+ static unsigned int instruction_pending;
+ static union mips_instruction delayed_mi;
+
+-static void __init emit_instruction(union mips_instruction mi)
++static void __cpuinit emit_instruction(union mips_instruction mi)
+ {
+ if (instruction_pending)
+ *epc++ = delayed_mi.word;
+@@ -220,7 +220,7 @@
+ emit_instruction(mi);
+ }
+
+-static void __init __build_store_reg(int reg)
++static void __cpuinit __build_store_reg(int reg)
+ {
+ union mips_instruction mi;
+ unsigned int width;
+@@ -343,7 +343,7 @@
+ flush_delay_slot_or_nop();
+ }
+
+-void __init build_clear_page(void)
++void __cpuinit build_clear_page(void)
+ {
+ unsigned int loop_start;
+ unsigned long off;
+@@ -446,7 +446,7 @@
+ pr_debug("\t.set pop\n");
+ }
+
+-void __init build_copy_page(void)
++void __cpuinit build_copy_page(void)
+ {
+ unsigned int loop_start;
+ unsigned long off;
+diff -Nurd linux-2.6.24/arch/mips/mm/pg-sb1.c mer-smartq-kernel/arch/mips/mm/pg-sb1.c
+--- linux-2.6.24/arch/mips/mm/pg-sb1.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/mm/pg-sb1.c 2009-11-17 12:13:29.000000000 +0100
+@@ -216,7 +216,7 @@
+ int i;
+
+ for (i = 0; i < DM_NUM_CHANNELS; i++) {
+- const u64 base_val = CPHYSADDR(&page_descr[i]) |
++ const u64 base_val = CPHYSADDR((unsigned long)&page_descr[i]) |
+ V_DM_DSCR_BASE_RINGSZ(1);
+ void *base_reg = IOADDR(A_DM_REGISTER(i, R_DM_DSCR_BASE));
+
+@@ -228,11 +228,11 @@
+
+ void clear_page(void *page)
+ {
+- u64 to_phys = CPHYSADDR(page);
++ u64 to_phys = CPHYSADDR((unsigned long)page);
+ unsigned int cpu = smp_processor_id();
+
+ /* if the page is not in KSEG0, use old way */
+- if ((long)KSEGX(page) != (long)CKSEG0)
++ if ((long)KSEGX((unsigned long)page) != (long)CKSEG0)
+ return clear_page_cpu(page);
+
+ page_descr[cpu].dscr_a = to_phys | M_DM_DSCRA_ZERO_MEM |
+@@ -252,13 +252,13 @@
+
+ void copy_page(void *to, void *from)
+ {
+- u64 from_phys = CPHYSADDR(from);
+- u64 to_phys = CPHYSADDR(to);
++ u64 from_phys = CPHYSADDR((unsigned long)from);
++ u64 to_phys = CPHYSADDR((unsigned long)to);
+ unsigned int cpu = smp_processor_id();
+
+ /* if any page is not in KSEG0, use old way */
+- if ((long)KSEGX(to) != (long)CKSEG0
+- || (long)KSEGX(from) != (long)CKSEG0)
++ if ((long)KSEGX((unsigned long)to) != (long)CKSEG0
++ || (long)KSEGX((unsigned long)from) != (long)CKSEG0)
+ return copy_page_cpu(to, from);
+
+ page_descr[cpu].dscr_a = to_phys | M_DM_DSCRA_L2C_DEST |
+@@ -293,10 +293,10 @@
+ EXPORT_SYMBOL(clear_page);
+ EXPORT_SYMBOL(copy_page);
+
+-void __init build_clear_page(void)
++void __cpuinit build_clear_page(void)
+ {
+ }
+
+-void __init build_copy_page(void)
++void __cpuinit build_copy_page(void)
+ {
+ }
+diff -Nurd linux-2.6.24/arch/mips/mm/sc-ip22.c mer-smartq-kernel/arch/mips/mm/sc-ip22.c
+--- linux-2.6.24/arch/mips/mm/sc-ip22.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/mm/sc-ip22.c 2009-11-17 12:13:29.000000000 +0100
+@@ -168,7 +168,7 @@
+ .bc_inv = indy_sc_wback_invalidate
+ };
+
+-void __init indy_sc_init(void)
++void __cpuinit indy_sc_init(void)
+ {
+ if (indy_sc_probe()) {
+ indy_sc_enable();
+diff -Nurd linux-2.6.24/arch/mips/mm/sc-mips.c mer-smartq-kernel/arch/mips/mm/sc-mips.c
+--- linux-2.6.24/arch/mips/mm/sc-mips.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/mm/sc-mips.c 2009-11-17 12:13:29.000000000 +0100
+@@ -100,7 +100,7 @@
+ return 1;
+ }
+
+-int __init mips_sc_init(void)
++int __cpuinit mips_sc_init(void)
+ {
+ int found = mips_sc_probe();
+ if (found) {
+@@ -109,4 +109,3 @@
+ }
+ return found;
+ }
+-
+diff -Nurd linux-2.6.24/arch/mips/mm/sc-r5k.c mer-smartq-kernel/arch/mips/mm/sc-r5k.c
+--- linux-2.6.24/arch/mips/mm/sc-r5k.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/mm/sc-r5k.c 2009-11-17 12:13:29.000000000 +0100
+@@ -99,7 +99,7 @@
+ .bc_inv = r5k_dma_cache_inv_sc
+ };
+
+-void __init r5k_sc_init(void)
++void __cpuinit r5k_sc_init(void)
+ {
+ if (r5k_sc_probe()) {
+ r5k_sc_enable();
+diff -Nurd linux-2.6.24/arch/mips/mm/sc-rm7k.c mer-smartq-kernel/arch/mips/mm/sc-rm7k.c
+--- linux-2.6.24/arch/mips/mm/sc-rm7k.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/mm/sc-rm7k.c 2009-11-17 12:13:29.000000000 +0100
+@@ -86,7 +86,7 @@
+ /*
+ * This function is executed in uncached address space.
+ */
+-static __init void __rm7k_sc_enable(void)
++static __cpuinit void __rm7k_sc_enable(void)
+ {
+ int i;
+
+@@ -107,7 +107,7 @@
+ }
+ }
+
+-static __init void rm7k_sc_enable(void)
++static __cpuinit void rm7k_sc_enable(void)
+ {
+ if (read_c0_config() & RM7K_CONF_SE)
+ return;
+@@ -128,7 +128,7 @@
+ .bc_inv = rm7k_sc_inv
+ };
+
+-void __init rm7k_sc_init(void)
++void __cpuinit rm7k_sc_init(void)
+ {
+ struct cpuinfo_mips *c = &current_cpu_data;
+ unsigned int config = read_c0_config();
+diff -Nurd linux-2.6.24/arch/mips/mm/tlbex.c mer-smartq-kernel/arch/mips/mm/tlbex.c
+--- linux-2.6.24/arch/mips/mm/tlbex.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/mm/tlbex.c 2009-11-17 12:13:29.000000000 +0100
+@@ -66,7 +66,7 @@
+ * why; it's not an issue caused by the core RTL.
+ *
+ */
+-static __init int __attribute__((unused)) m4kc_tlbp_war(void)
++static __cpuinit int __attribute__((unused)) m4kc_tlbp_war(void)
+ {
+ return (current_cpu_data.processor_id & 0xffff00) ==
+ (PRID_COMP_MIPS | PRID_IMP_4KC);
+@@ -140,7 +140,7 @@
+ | (e) << RE_SH \
+ | (f) << FUNC_SH)
+
+-static __initdata struct insn insn_table[] = {
++static __cpuinitdata struct insn insn_table[] = {
+ { insn_addiu, M(addiu_op, 0, 0, 0, 0, 0), RS | RT | SIMM },
+ { insn_addu, M(spec_op, 0, 0, 0, 0, addu_op), RS | RT | RD },
+ { insn_and, M(spec_op, 0, 0, 0, 0, and_op), RS | RT | RD },
+@@ -193,7 +193,7 @@
+
+ #undef M
+
+-static __init u32 build_rs(u32 arg)
++static __cpuinit u32 build_rs(u32 arg)
+ {
+ if (arg & ~RS_MASK)
+ printk(KERN_WARNING "TLB synthesizer field overflow\n");
+@@ -201,7 +201,7 @@
+ return (arg & RS_MASK) << RS_SH;
+ }
+
+-static __init u32 build_rt(u32 arg)
++static __cpuinit u32 build_rt(u32 arg)
+ {
+ if (arg & ~RT_MASK)
+ printk(KERN_WARNING "TLB synthesizer field overflow\n");
+@@ -209,7 +209,7 @@
+ return (arg & RT_MASK) << RT_SH;
+ }
+
+-static __init u32 build_rd(u32 arg)
++static __cpuinit u32 build_rd(u32 arg)
+ {
+ if (arg & ~RD_MASK)
+ printk(KERN_WARNING "TLB synthesizer field overflow\n");
+@@ -217,7 +217,7 @@
+ return (arg & RD_MASK) << RD_SH;
+ }
+
+-static __init u32 build_re(u32 arg)
++static __cpuinit u32 build_re(u32 arg)
+ {
+ if (arg & ~RE_MASK)
+ printk(KERN_WARNING "TLB synthesizer field overflow\n");
+@@ -225,7 +225,7 @@
+ return (arg & RE_MASK) << RE_SH;
+ }
+
+-static __init u32 build_simm(s32 arg)
++static __cpuinit u32 build_simm(s32 arg)
+ {
+ if (arg > 0x7fff || arg < -0x8000)
+ printk(KERN_WARNING "TLB synthesizer field overflow\n");
+@@ -233,7 +233,7 @@
+ return arg & 0xffff;
+ }
+
+-static __init u32 build_uimm(u32 arg)
++static __cpuinit u32 build_uimm(u32 arg)
+ {
+ if (arg & ~IMM_MASK)
+ printk(KERN_WARNING "TLB synthesizer field overflow\n");
+@@ -241,7 +241,7 @@
+ return arg & IMM_MASK;
+ }
+
+-static __init u32 build_bimm(s32 arg)
++static __cpuinit u32 build_bimm(s32 arg)
+ {
+ if (arg > 0x1ffff || arg < -0x20000)
+ printk(KERN_WARNING "TLB synthesizer field overflow\n");
+@@ -252,7 +252,7 @@
+ return ((arg < 0) ? (1 << 15) : 0) | ((arg >> 2) & 0x7fff);
+ }
+
+-static __init u32 build_jimm(u32 arg)
++static __cpuinit u32 build_jimm(u32 arg)
+ {
+ if (arg & ~((JIMM_MASK) << 2))
+ printk(KERN_WARNING "TLB synthesizer field overflow\n");
+@@ -260,7 +260,7 @@
+ return (arg >> 2) & JIMM_MASK;
+ }
+
+-static __init u32 build_func(u32 arg)
++static __cpuinit u32 build_func(u32 arg)
+ {
+ if (arg & ~FUNC_MASK)
+ printk(KERN_WARNING "TLB synthesizer field overflow\n");
+@@ -268,7 +268,7 @@
+ return arg & FUNC_MASK;
+ }
+
+-static __init u32 build_set(u32 arg)
++static __cpuinit u32 build_set(u32 arg)
+ {
+ if (arg & ~SET_MASK)
+ printk(KERN_WARNING "TLB synthesizer field overflow\n");
+@@ -280,7 +280,7 @@
+ * The order of opcode arguments is implicitly left to right,
+ * starting with RS and ending with FUNC or IMM.
+ */
+-static void __init build_insn(u32 **buf, enum opcode opc, ...)
++static void __cpuinit build_insn(u32 **buf, enum opcode opc, ...)
+ {
+ struct insn *ip = NULL;
+ unsigned int i;
+@@ -315,69 +315,69 @@
+ }
+
+ #define I_u1u2u3(op) \
+- static inline void __init i##op(u32 **buf, unsigned int a, \
++ static inline void __cpuinit i##op(u32 **buf, unsigned int a, \
+ unsigned int b, unsigned int c) \
+ { \
+ build_insn(buf, insn##op, a, b, c); \
+ }
+
+ #define I_u2u1u3(op) \
+- static inline void __init i##op(u32 **buf, unsigned int a, \
++ static inline void __cpuinit i##op(u32 **buf, unsigned int a, \
+ unsigned int b, unsigned int c) \
+ { \
+ build_insn(buf, insn##op, b, a, c); \
+ }
+
+ #define I_u3u1u2(op) \
+- static inline void __init i##op(u32 **buf, unsigned int a, \
++ static inline void __cpuinit i##op(u32 **buf, unsigned int a, \
+ unsigned int b, unsigned int c) \
+ { \
+ build_insn(buf, insn##op, b, c, a); \
+ }
+
+ #define I_u1u2s3(op) \
+- static inline void __init i##op(u32 **buf, unsigned int a, \
++ static inline void __cpuinit i##op(u32 **buf, unsigned int a, \
+ unsigned int b, signed int c) \
+ { \
+ build_insn(buf, insn##op, a, b, c); \
+ }
+
+ #define I_u2s3u1(op) \
+- static inline void __init i##op(u32 **buf, unsigned int a, \
++ static inline void __cpuinit i##op(u32 **buf, unsigned int a, \
+ signed int b, unsigned int c) \
+ { \
+ build_insn(buf, insn##op, c, a, b); \
+ }
+
+ #define I_u2u1s3(op) \
+- static inline void __init i##op(u32 **buf, unsigned int a, \
++ static inline void __cpuinit i##op(u32 **buf, unsigned int a, \
+ unsigned int b, signed int c) \
+ { \
+ build_insn(buf, insn##op, b, a, c); \
+ }
+
+ #define I_u1u2(op) \
+- static inline void __init i##op(u32 **buf, unsigned int a, \
++ static inline void __cpuinit i##op(u32 **buf, unsigned int a, \
+ unsigned int b) \
+ { \
+ build_insn(buf, insn##op, a, b); \
+ }
+
+ #define I_u1s2(op) \
+- static inline void __init i##op(u32 **buf, unsigned int a, \
++ static inline void __cpuinit i##op(u32 **buf, unsigned int a, \
+ signed int b) \
+ { \
+ build_insn(buf, insn##op, a, b); \
+ }
+
+ #define I_u1(op) \
+- static inline void __init i##op(u32 **buf, unsigned int a) \
++ static inline void __cpuinit i##op(u32 **buf, unsigned int a) \
+ { \
+ build_insn(buf, insn##op, a); \
+ }
+
+ #define I_0(op) \
+- static inline void __init i##op(u32 **buf) \
++ static inline void __cpuinit i##op(u32 **buf) \
+ { \
+ build_insn(buf, insn##op); \
+ }
+@@ -457,7 +457,7 @@
+ enum label_id lab;
+ };
+
+-static __init void build_label(struct label **lab, u32 *addr,
++static __cpuinit void build_label(struct label **lab, u32 *addr,
+ enum label_id l)
+ {
+ (*lab)->addr = addr;
+@@ -526,34 +526,34 @@
+ #define i_ehb(buf) i_sll(buf, 0, 0, 3)
+
+ #ifdef CONFIG_64BIT
+-static __init int __maybe_unused in_compat_space_p(long addr)
++static __cpuinit int __maybe_unused in_compat_space_p(long addr)
+ {
+ /* Is this address in 32bit compat space? */
+ return (((addr) & 0xffffffff00000000L) == 0xffffffff00000000L);
+ }
+
+-static __init int __maybe_unused rel_highest(long val)
++static __cpuinit int __maybe_unused rel_highest(long val)
+ {
+ return ((((val + 0x800080008000L) >> 48) & 0xffff) ^ 0x8000) - 0x8000;
+ }
+
+-static __init int __maybe_unused rel_higher(long val)
++static __cpuinit int __maybe_unused rel_higher(long val)
+ {
+ return ((((val + 0x80008000L) >> 32) & 0xffff) ^ 0x8000) - 0x8000;
+ }
+ #endif
+
+-static __init int rel_hi(long val)
++static __cpuinit int rel_hi(long val)
+ {
+ return ((((val + 0x8000L) >> 16) & 0xffff) ^ 0x8000) - 0x8000;
+ }
+
+-static __init int rel_lo(long val)
++static __cpuinit int rel_lo(long val)
+ {
+ return ((val & 0xffff) ^ 0x8000) - 0x8000;
+ }
+
+-static __init void i_LA_mostly(u32 **buf, unsigned int rs, long addr)
++static __cpuinit void i_LA_mostly(u32 **buf, unsigned int rs, long addr)
+ {
+ #ifdef CONFIG_64BIT
+ if (!in_compat_space_p(addr)) {
+@@ -571,7 +571,7 @@
+ i_lui(buf, rs, rel_hi(addr));
+ }
+
+-static __init void __maybe_unused i_LA(u32 **buf, unsigned int rs,
++static __cpuinit void __maybe_unused i_LA(u32 **buf, unsigned int rs,
+ long addr)
+ {
+ i_LA_mostly(buf, rs, addr);
+@@ -589,7 +589,7 @@
+ enum label_id lab;
+ };
+
+-static __init void r_mips_pc16(struct reloc **rel, u32 *addr,
++static __cpuinit void r_mips_pc16(struct reloc **rel, u32 *addr,
+ enum label_id l)
+ {
+ (*rel)->addr = addr;
+@@ -614,7 +614,7 @@
+ }
+ }
+
+-static __init void resolve_relocs(struct reloc *rel, struct label *lab)
++static __cpuinit void resolve_relocs(struct reloc *rel, struct label *lab)
+ {
+ struct label *l;
+
+@@ -624,7 +624,7 @@
+ __resolve_relocs(rel, l);
+ }
+
+-static __init void move_relocs(struct reloc *rel, u32 *first, u32 *end,
++static __cpuinit void move_relocs(struct reloc *rel, u32 *first, u32 *end,
+ long off)
+ {
+ for (; rel->lab != label_invalid; rel++)
+@@ -632,7 +632,7 @@
+ rel->addr += off;
+ }
+
+-static __init void move_labels(struct label *lab, u32 *first, u32 *end,
++static __cpuinit void move_labels(struct label *lab, u32 *first, u32 *end,
+ long off)
+ {
+ for (; lab->lab != label_invalid; lab++)
+@@ -640,7 +640,7 @@
+ lab->addr += off;
+ }
+
+-static __init void copy_handler(struct reloc *rel, struct label *lab,
++static __cpuinit void copy_handler(struct reloc *rel, struct label *lab,
+ u32 *first, u32 *end, u32 *target)
+ {
+ long off = (long)(target - first);
+@@ -651,7 +651,7 @@
+ move_labels(lab, first, end, off);
+ }
+
+-static __init int __maybe_unused insn_has_bdelay(struct reloc *rel,
++static __cpuinit int __maybe_unused insn_has_bdelay(struct reloc *rel,
+ u32 *addr)
+ {
+ for (; rel->lab != label_invalid; rel++) {
+@@ -665,49 +665,49 @@
+ }
+
+ /* convenience functions for labeled branches */
+-static void __init __maybe_unused
++static void __cpuinit __maybe_unused
+ il_bltz(u32 **p, struct reloc **r, unsigned int reg, enum label_id l)
+ {
+ r_mips_pc16(r, *p, l);
+ i_bltz(p, reg, 0);
+ }
+
+-static void __init __maybe_unused il_b(u32 **p, struct reloc **r,
++static void __cpuinit __maybe_unused il_b(u32 **p, struct reloc **r,
+ enum label_id l)
+ {
+ r_mips_pc16(r, *p, l);
+ i_b(p, 0);
+ }
+
+-static void __init il_beqz(u32 **p, struct reloc **r, unsigned int reg,
++static void __cpuinit il_beqz(u32 **p, struct reloc **r, unsigned int reg,
+ enum label_id l)
+ {
+ r_mips_pc16(r, *p, l);
+ i_beqz(p, reg, 0);
+ }
+
+-static void __init __maybe_unused
++static void __cpuinit __maybe_unused
+ il_beqzl(u32 **p, struct reloc **r, unsigned int reg, enum label_id l)
+ {
+ r_mips_pc16(r, *p, l);
+ i_beqzl(p, reg, 0);
+ }
+
+-static void __init il_bnez(u32 **p, struct reloc **r, unsigned int reg,
++static void __cpuinit il_bnez(u32 **p, struct reloc **r, unsigned int reg,
+ enum label_id l)
+ {
+ r_mips_pc16(r, *p, l);
+ i_bnez(p, reg, 0);
+ }
+
+-static void __init il_bgezl(u32 **p, struct reloc **r, unsigned int reg,
++static void __cpuinit il_bgezl(u32 **p, struct reloc **r, unsigned int reg,
+ enum label_id l)
+ {
+ r_mips_pc16(r, *p, l);
+ i_bgezl(p, reg, 0);
+ }
+
+-static void __init __maybe_unused
++static void __cpuinit __maybe_unused
+ il_bgez(u32 **p, struct reloc **r, unsigned int reg, enum label_id l)
+ {
+ r_mips_pc16(r, *p, l);
+@@ -743,16 +743,16 @@
+ * We deliberately chose a buffer size of 128, so we won't scribble
+ * over anything important on overflow before we panic.
+ */
+-static __initdata u32 tlb_handler[128];
++static __cpuinitdata u32 tlb_handler[128];
+
+ /* simply assume worst case size for labels and relocs */
+-static __initdata struct label labels[128];
+-static __initdata struct reloc relocs[128];
++static __cpuinitdata struct label labels[128];
++static __cpuinitdata struct reloc relocs[128];
+
+ /*
+ * The R3000 TLB handler is simple.
+ */
+-static void __init build_r3000_tlb_refill_handler(void)
++static void __cpuinit build_r3000_tlb_refill_handler(void)
+ {
+ long pgdc = (long)pgd_current;
+ u32 *p;
+@@ -801,7 +801,7 @@
+ * other one.To keep things simple, we first assume linear space,
+ * then we relocate it to the final handler layout as needed.
+ */
+-static __initdata u32 final_handler[64];
++static __cpuinitdata u32 final_handler[64];
+
+ /*
+ * Hazards
+@@ -825,11 +825,12 @@
+ *
+ * As if we MIPS hackers wouldn't know how to nop pipelines happy ...
+ */
+-static __init void __maybe_unused build_tlb_probe_entry(u32 **p)
++static __cpuinit void __maybe_unused build_tlb_probe_entry(u32 **p)
+ {
+ switch (current_cpu_type()) {
+- /* Found by experiment: R4600 v2.0 needs this, too. */
++ /* Found by experiment: R4600 v2.0/R4700 needs this, too. */
+ case CPU_R4600:
++ case CPU_R4700:
+ case CPU_R5000:
+ case CPU_R5000A:
+ case CPU_NEVADA:
+@@ -849,7 +850,7 @@
+ */
+ enum tlb_write_entry { tlb_random, tlb_indexed };
+
+-static __init void build_tlb_write_entry(u32 **p, struct label **l,
++static __cpuinit void build_tlb_write_entry(u32 **p, struct label **l,
+ struct reloc **r,
+ enum tlb_write_entry wmode)
+ {
+@@ -993,7 +994,7 @@
+ * TMP and PTR are scratch.
+ * TMP will be clobbered, PTR will hold the pmd entry.
+ */
+-static __init void
++static __cpuinit void
+ build_get_pmde64(u32 **p, struct label **l, struct reloc **r,
+ unsigned int tmp, unsigned int ptr)
+ {
+@@ -1054,7 +1055,7 @@
+ * BVADDR is the faulting address, PTR is scratch.
+ * PTR will hold the pgd for vmalloc.
+ */
+-static __init void
++static __cpuinit void
+ build_get_pgd_vmalloc64(u32 **p, struct label **l, struct reloc **r,
+ unsigned int bvaddr, unsigned int ptr)
+ {
+@@ -1118,7 +1119,7 @@
+ * TMP and PTR are scratch.
+ * TMP will be clobbered, PTR will hold the pgd entry.
+ */
+-static __init void __maybe_unused
++static __cpuinit void __maybe_unused
+ build_get_pgde32(u32 **p, unsigned int tmp, unsigned int ptr)
+ {
+ long pgdc = (long)pgd_current;
+@@ -1153,7 +1154,7 @@
+
+ #endif /* !CONFIG_64BIT */
+
+-static __init void build_adjust_context(u32 **p, unsigned int ctx)
++static __cpuinit void build_adjust_context(u32 **p, unsigned int ctx)
+ {
+ unsigned int shift = 4 - (PTE_T_LOG2 + 1) + PAGE_SHIFT - 12;
+ unsigned int mask = (PTRS_PER_PTE / 2 - 1) << (PTE_T_LOG2 + 1);
+@@ -1179,7 +1180,8 @@
+ i_andi(p, ctx, ctx, mask);
+ }
+
+-static __init void build_get_ptep(u32 **p, unsigned int tmp, unsigned int ptr)
++static __cpuinit void build_get_ptep(u32 **p, unsigned int tmp,
++ unsigned int ptr)
+ {
+ /*
+ * Bug workaround for the Nevada. It seems as if under certain
+@@ -1204,7 +1206,7 @@
+ i_ADDU(p, ptr, ptr, tmp); /* add in offset */
+ }
+
+-static __init void build_update_entries(u32 **p, unsigned int tmp,
++static __cpuinit void build_update_entries(u32 **p, unsigned int tmp,
+ unsigned int ptep)
+ {
+ /*
+@@ -1247,7 +1249,7 @@
+ #endif
+ }
+
+-static void __init build_r4000_tlb_refill_handler(void)
++static void __cpuinit build_r4000_tlb_refill_handler(void)
+ {
+ u32 *p = tlb_handler;
+ struct label *l = labels;
+@@ -1394,7 +1396,7 @@
+ u32 __tlb_handler_align handle_tlbs[FASTPATH_SIZE];
+ u32 __tlb_handler_align handle_tlbm[FASTPATH_SIZE];
+
+-static void __init
++static void __cpuinit
+ iPTE_LW(u32 **p, struct label **l, unsigned int pte, unsigned int ptr)
+ {
+ #ifdef CONFIG_SMP
+@@ -1414,7 +1416,7 @@
+ #endif
+ }
+
+-static void __init
++static void __cpuinit
+ iPTE_SW(u32 **p, struct reloc **r, unsigned int pte, unsigned int ptr,
+ unsigned int mode)
+ {
+@@ -1474,7 +1476,7 @@
+ * the page table where this PTE is located, PTE will be re-loaded
+ * with it's original value.
+ */
+-static void __init
++static void __cpuinit
+ build_pte_present(u32 **p, struct label **l, struct reloc **r,
+ unsigned int pte, unsigned int ptr, enum label_id lid)
+ {
+@@ -1485,7 +1487,7 @@
+ }
+
+ /* Make PTE valid, store result in PTR. */
+-static void __init
++static void __cpuinit
+ build_make_valid(u32 **p, struct reloc **r, unsigned int pte,
+ unsigned int ptr)
+ {
+@@ -1498,7 +1500,7 @@
+ * Check if PTE can be written to, if not branch to LABEL. Regardless
+ * restore PTE with value from PTR when done.
+ */
+-static void __init
++static void __cpuinit
+ build_pte_writable(u32 **p, struct label **l, struct reloc **r,
+ unsigned int pte, unsigned int ptr, enum label_id lid)
+ {
+@@ -1511,7 +1513,7 @@
+ /* Make PTE writable, update software status bits as well, then store
+ * at PTR.
+ */
+-static void __init
++static void __cpuinit
+ build_make_write(u32 **p, struct reloc **r, unsigned int pte,
+ unsigned int ptr)
+ {
+@@ -1525,7 +1527,7 @@
+ * Check if PTE can be modified, if not branch to LABEL. Regardless
+ * restore PTE with value from PTR when done.
+ */
+-static void __init
++static void __cpuinit
+ build_pte_modifiable(u32 **p, struct label **l, struct reloc **r,
+ unsigned int pte, unsigned int ptr, enum label_id lid)
+ {
+@@ -1542,7 +1544,7 @@
+ * This places the pte into ENTRYLO0 and writes it with tlbwi.
+ * Then it returns.
+ */
+-static void __init
++static void __cpuinit
+ build_r3000_pte_reload_tlbwi(u32 **p, unsigned int pte, unsigned int tmp)
+ {
+ i_mtc0(p, pte, C0_ENTRYLO0); /* cp0 delay */
+@@ -1558,7 +1560,7 @@
+ * may have the probe fail bit set as a result of a trap on a
+ * kseg2 access, i.e. without refill. Then it returns.
+ */
+-static void __init
++static void __cpuinit
+ build_r3000_tlb_reload_write(u32 **p, struct label **l, struct reloc **r,
+ unsigned int pte, unsigned int tmp)
+ {
+@@ -1575,7 +1577,7 @@
+ i_rfe(p); /* branch delay */
+ }
+
+-static void __init
++static void __cpuinit
+ build_r3000_tlbchange_handler_head(u32 **p, unsigned int pte,
+ unsigned int ptr)
+ {
+@@ -1595,7 +1597,7 @@
+ i_tlbp(p); /* load delay */
+ }
+
+-static void __init build_r3000_tlb_load_handler(void)
++static void __cpuinit build_r3000_tlb_load_handler(void)
+ {
+ u32 *p = handle_tlbl;
+ struct label *l = labels;
+@@ -1630,7 +1632,7 @@
+ pr_debug("\t.set pop\n");
+ }
+
+-static void __init build_r3000_tlb_store_handler(void)
++static void __cpuinit build_r3000_tlb_store_handler(void)
+ {
+ u32 *p = handle_tlbs;
+ struct label *l = labels;
+@@ -1665,7 +1667,7 @@
+ pr_debug("\t.set pop\n");
+ }
+
+-static void __init build_r3000_tlb_modify_handler(void)
++static void __cpuinit build_r3000_tlb_modify_handler(void)
+ {
+ u32 *p = handle_tlbm;
+ struct label *l = labels;
+@@ -1703,7 +1705,7 @@
+ /*
+ * R4000 style TLB load/store/modify handlers.
+ */
+-static void __init
++static void __cpuinit
+ build_r4000_tlbchange_handler_head(u32 **p, struct label **l,
+ struct reloc **r, unsigned int pte,
+ unsigned int ptr)
+@@ -1728,7 +1730,7 @@
+ build_tlb_probe_entry(p);
+ }
+
+-static void __init
++static void __cpuinit
+ build_r4000_tlbchange_handler_tail(u32 **p, struct label **l,
+ struct reloc **r, unsigned int tmp,
+ unsigned int ptr)
+@@ -1745,7 +1747,7 @@
+ #endif
+ }
+
+-static void __init build_r4000_tlb_load_handler(void)
++static void __cpuinit build_r4000_tlb_load_handler(void)
+ {
+ u32 *p = handle_tlbl;
+ struct label *l = labels;
+@@ -1790,7 +1792,7 @@
+ pr_debug("\t.set pop\n");
+ }
+
+-static void __init build_r4000_tlb_store_handler(void)
++static void __cpuinit build_r4000_tlb_store_handler(void)
+ {
+ u32 *p = handle_tlbs;
+ struct label *l = labels;
+@@ -1826,7 +1828,7 @@
+ pr_debug("\t.set pop\n");
+ }
+
+-static void __init build_r4000_tlb_modify_handler(void)
++static void __cpuinit build_r4000_tlb_modify_handler(void)
+ {
+ u32 *p = handle_tlbm;
+ struct label *l = labels;
+@@ -1863,7 +1865,7 @@
+ pr_debug("\t.set pop\n");
+ }
+
+-void __init build_tlb_refill_handler(void)
++void __cpuinit build_tlb_refill_handler(void)
+ {
+ /*
+ * The refill handler is generated per-CPU, multi-node systems
+@@ -1909,7 +1911,7 @@
+ }
+ }
+
+-void __init flush_tlb_handlers(void)
++void __cpuinit flush_tlb_handlers(void)
+ {
+ flush_icache_range((unsigned long)handle_tlbl,
+ (unsigned long)handle_tlbl + sizeof(handle_tlbl));
+diff -Nurd linux-2.6.24/arch/mips/mm/tlb-r3k.c mer-smartq-kernel/arch/mips/mm/tlb-r3k.c
+--- linux-2.6.24/arch/mips/mm/tlb-r3k.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/mm/tlb-r3k.c 2009-11-17 12:13:29.000000000 +0100
+@@ -246,10 +246,6 @@
+ old_pagemask = read_c0_pagemask();
+ w = read_c0_wired();
+ write_c0_wired(w + 1);
+- if (read_c0_wired() != w + 1) {
+- printk("[tlbwired] No WIRED reg?\n");
+- return;
+- }
+ write_c0_index(w << 8);
+ write_c0_pagemask(pagemask);
+ write_c0_entryhi(entryhi);
+@@ -281,7 +277,7 @@
+ }
+ }
+
+-void __init tlb_init(void)
++void __cpuinit tlb_init(void)
+ {
+ local_flush_tlb_all();
+
+diff -Nurd linux-2.6.24/arch/mips/mm/tlb-r4k.c mer-smartq-kernel/arch/mips/mm/tlb-r4k.c
+--- linux-2.6.24/arch/mips/mm/tlb-r4k.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/mm/tlb-r4k.c 2009-11-17 12:13:29.000000000 +0100
+@@ -388,7 +388,7 @@
+ * lifetime of the system
+ */
+
+-static int temp_tlb_entry __initdata;
++static int temp_tlb_entry __cpuinitdata;
+
+ __init int add_temporary_entry(unsigned long entrylo0, unsigned long entrylo1,
+ unsigned long entryhi, unsigned long pagemask)
+@@ -427,7 +427,7 @@
+ return ret;
+ }
+
+-static void __init probe_tlb(unsigned long config)
++static void __cpuinit probe_tlb(unsigned long config)
+ {
+ struct cpuinfo_mips *c = &current_cpu_data;
+ unsigned int reg;
+@@ -455,7 +455,7 @@
+ c->tlbsize = ((reg >> 25) & 0x3f) + 1;
+ }
+
+-static int __initdata ntlb = 0;
++static int __cpuinitdata ntlb = 0;
+ static int __init set_ntlb(char *str)
+ {
+ get_option(&str, &ntlb);
+@@ -464,7 +464,7 @@
+
+ __setup("ntlb=", set_ntlb);
+
+-void __init tlb_init(void)
++void __cpuinit tlb_init(void)
+ {
+ unsigned int config = read_c0_config();
+
+@@ -473,12 +473,15 @@
+ * - On R4600 1.7 the tlbp never hits for pages smaller than
+ * the value in the c0_pagemask register.
+ * - The entire mm handling assumes the c0_pagemask register to
+- * be set for 4kb pages.
++ * be set to fixed-size pages.
+ */
+ probe_tlb(config);
+ write_c0_pagemask(PM_DEFAULT_MASK);
+ write_c0_wired(0);
+- write_c0_framemask(0);
++ if (current_cpu_type() == CPU_R10000 ||
++ current_cpu_type() == CPU_R12000 ||
++ current_cpu_type() == CPU_R14000)
++ write_c0_framemask(0);
+ temp_tlb_entry = current_cpu_data.tlbsize - 1;
+
+ /* From this point on the ARC firmware is dead. */
+diff -Nurd linux-2.6.24/arch/mips/mm/tlb-r8k.c mer-smartq-kernel/arch/mips/mm/tlb-r8k.c
+--- linux-2.6.24/arch/mips/mm/tlb-r8k.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/mm/tlb-r8k.c 2009-11-17 12:13:29.000000000 +0100
+@@ -214,14 +214,14 @@
+ local_irq_restore(flags);
+ }
+
+-static void __init probe_tlb(unsigned long config)
++static void __cpuinit probe_tlb(unsigned long config)
+ {
+ struct cpuinfo_mips *c = &current_cpu_data;
+
+ c->tlbsize = 3 * 128; /* 3 sets each 128 entries */
+ }
+
+-void __init tlb_init(void)
++void __cpuinit tlb_init(void)
+ {
+ unsigned int config = read_c0_config();
+ unsigned long status;
+diff -Nurd linux-2.6.24/arch/mips/pci/pci-bcm1480.c mer-smartq-kernel/arch/mips/pci/pci-bcm1480.c
+--- linux-2.6.24/arch/mips/pci/pci-bcm1480.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/pci/pci-bcm1480.c 2009-11-17 12:13:29.000000000 +0100
+@@ -185,8 +185,8 @@
+
+ static struct resource bcm1480_io_resource = {
+ .name = "BCM1480 PCI I/O",
+- .start = 0x2c000000UL,
+- .end = 0x2dffffffUL,
++ .start = A_BCM1480_PHYS_PCI_IO_MATCH_BYTES,
++ .end = A_BCM1480_PHYS_PCI_IO_MATCH_BYTES + 0x1ffffffUL,
+ .flags = IORESOURCE_IO,
+ };
+
+@@ -194,6 +194,7 @@
+ .pci_ops = &bcm1480_pci_ops,
+ .mem_resource = &bcm1480_mem_resource,
+ .io_resource = &bcm1480_io_resource,
++ .io_offset = A_BCM1480_PHYS_PCI_IO_MATCH_BYTES,
+ };
+
+
+@@ -249,8 +250,10 @@
+ * XXX ehs: Should this happen in PCI Device mode?
+ */
+
+- set_io_port_base((unsigned long)
+- ioremap(A_BCM1480_PHYS_PCI_IO_MATCH_BYTES, 65536));
++ bcm1480_controller.io_map_base = (unsigned long)
++ ioremap(A_BCM1480_PHYS_PCI_IO_MATCH_BYTES, 65536);
++ bcm1480_controller.io_map_base -= bcm1480_controller.io_offset;
++ set_io_port_base(bcm1480_controller.io_map_base);
+ isa_slot_offset = (unsigned long)
+ ioremap(A_BCM1480_PHYS_PCI_MEM_MATCH_BYTES, 1024*1024);
+
+diff -Nurd linux-2.6.24/arch/mips/pci/pci-bcm1480ht.c mer-smartq-kernel/arch/mips/pci/pci-bcm1480ht.c
+--- linux-2.6.24/arch/mips/pci/pci-bcm1480ht.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/pci/pci-bcm1480ht.c 2009-11-17 12:13:29.000000000 +0100
+@@ -180,8 +180,8 @@
+
+ static struct resource bcm1480ht_io_resource = {
+ .name = "BCM1480 HT I/O",
+- .start = 0x00000000UL,
+- .end = 0x01ffffffUL,
++ .start = A_BCM1480_PHYS_HT_IO_MATCH_BYTES,
++ .end = A_BCM1480_PHYS_HT_IO_MATCH_BYTES + 0x01ffffffUL,
+ .flags = IORESOURCE_IO,
+ };
+
+@@ -191,29 +191,22 @@
+ .io_resource = &bcm1480ht_io_resource,
+ .index = 1,
+ .get_busno = bcm1480ht_pcibios_get_busno,
++ .io_offset = A_BCM1480_PHYS_HT_IO_MATCH_BYTES,
+ };
+
+ static int __init bcm1480ht_pcibios_init(void)
+ {
+- uint32_t cmdreg;
+-
+ ht_cfg_space = ioremap(A_BCM1480_PHYS_HT_CFG_MATCH_BITS, 16*1024*1024);
+
+- /*
+- * See if the PCI bus has been configured by the firmware.
+- */
+- cmdreg = READCFG32(CFGOFFSET(0, PCI_DEVFN(PCI_BRIDGE_DEVICE, 0),
+- PCI_COMMAND));
+- if (!(cmdreg & PCI_COMMAND_MASTER)) {
+- printk("HT: Skipping HT probe. Bus is not initialized.\n");
+- iounmap(ht_cfg_space);
+- return 1; /* XXX */
+- }
++ /* CFE doesn't always init all HT paths, so we always scan */
+ bcm1480ht_bus_status |= PCI_BUS_ENABLED;
+
+ ht_eoi_space = (unsigned long)
+ ioremap(A_BCM1480_PHYS_HT_SPECIAL_MATCH_BYTES,
+ 4 * 1024 * 1024);
++ bcm1480ht_controller.io_map_base = (unsigned long)
++ ioremap(A_BCM1480_PHYS_HT_IO_MATCH_BYTES, 65536);
++ bcm1480ht_controller.io_map_base -= bcm1480ht_controller.io_offset;
+
+ register_pci_controller(&bcm1480ht_controller);
+
+diff -Nurd linux-2.6.24/arch/mips/pci/pci.c mer-smartq-kernel/arch/mips/pci/pci.c
+--- linux-2.6.24/arch/mips/pci/pci.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/pci/pci.c 2009-11-17 12:13:29.000000000 +0100
+@@ -177,6 +177,11 @@
+ continue;
+
+ r = &dev->resource[idx];
++ if (!(r->flags & (IORESOURCE_IO | IORESOURCE_MEM)))
++ continue;
++ if ((idx == PCI_ROM_RESOURCE) &&
++ (!(r->flags & IORESOURCE_ROM_ENABLE)))
++ continue;
+ if (!r->start && r->end) {
+ printk(KERN_ERR "PCI: Device %s not available because of resource collisions\n", pci_name(dev));
+ return -EINVAL;
+@@ -186,8 +191,6 @@
+ if (r->flags & IORESOURCE_MEM)
+ cmd |= PCI_COMMAND_MEMORY;
+ }
+- if (dev->resource[PCI_ROM_RESOURCE].start)
+- cmd |= PCI_COMMAND_MEMORY;
+ if (cmd != old_cmd) {
+ printk("PCI: Enabling device %s (%04x -> %04x)\n", pci_name(dev), old_cmd, cmd);
+ pci_write_config_word(dev, PCI_COMMAND, cmd);
+@@ -254,7 +257,7 @@
+ }
+ }
+
+-void pcibios_fixup_bus(struct pci_bus *bus)
++void __devinit pcibios_fixup_bus(struct pci_bus *bus)
+ {
+ /* Propagate hose info into the subordinate devices. */
+
+diff -Nurd linux-2.6.24/arch/mips/pci/pci-ip27.c mer-smartq-kernel/arch/mips/pci/pci-ip27.c
+--- linux-2.6.24/arch/mips/pci/pci-ip27.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/pci/pci-ip27.c 2009-11-17 12:13:29.000000000 +0100
+@@ -40,7 +40,7 @@
+
+ extern struct pci_ops bridge_pci_ops;
+
+-int __init bridge_probe(nasid_t nasid, int widget_id, int masterwid)
++int __cpuinit bridge_probe(nasid_t nasid, int widget_id, int masterwid)
+ {
+ unsigned long offset = NODE_OFFSET(nasid);
+ struct bridge_controller *bc;
+@@ -136,25 +136,47 @@
+ */
+ int __devinit pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
+ {
++ return 0;
++}
++
++/* Most MIPS systems have straight-forward swizzling needs. */
++static inline u8 bridge_swizzle(u8 pin, u8 slot)
++{
++ return (((pin - 1) + slot) % 4) + 1;
++}
++
++static inline struct pci_dev *bridge_root_dev(struct pci_dev *dev)
++{
++ while (dev->bus->parent) {
++ /* Move up the chain of bridges. */
++ dev = dev->bus->self;
++ }
++
++ return dev;
++}
++
++/* Do platform specific device initialization at pci_enable_device() time */
++int pcibios_plat_dev_init(struct pci_dev *dev)
++{
+ struct bridge_controller *bc = BRIDGE_CONTROLLER(dev->bus);
+- int irq = bc->pci_int[slot];
++ struct pci_dev *rdev = bridge_root_dev(dev);
++ int slot = PCI_SLOT(rdev->devfn);
++ int irq;
+
++ irq = bc->pci_int[slot];
+ if (irq == -1) {
+- irq = bc->pci_int[slot] = request_bridge_irq(bc);
++ irq = request_bridge_irq(bc);
+ if (irq < 0)
+- panic("Can't allocate interrupt for PCI device %s\n",
+- pci_name(dev));
++ return irq;
++
++ bc->pci_int[slot] = irq;
+ }
+
+ irq_to_bridge[irq] = bc;
+ irq_to_slot[irq] = slot;
+
+- return irq;
+-}
++ dev->irq = irq;
+
+-/* Do platform specific device initialization at pci_enable_device() time */
+-int pcibios_plat_dev_init(struct pci_dev *dev)
+-{
+ return 0;
+ }
+
+diff -Nurd linux-2.6.24/arch/mips/pmc-sierra/yosemite/smp.c mer-smartq-kernel/arch/mips/pmc-sierra/yosemite/smp.c
+--- linux-2.6.24/arch/mips/pmc-sierra/yosemite/smp.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/pmc-sierra/yosemite/smp.c 2009-11-17 12:13:29.000000000 +0100
+@@ -7,10 +7,10 @@
+
+ #define LAUNCHSTACK_SIZE 256
+
+-static __initdata DEFINE_SPINLOCK(launch_lock);
++static __cpuinitdata DEFINE_SPINLOCK(launch_lock);
+
+-static unsigned long secondary_sp __initdata;
+-static unsigned long secondary_gp __initdata;
++static unsigned long secondary_sp __cpuinitdata;
++static unsigned long secondary_gp __cpuinitdata;
+
+ static unsigned char launchstack[LAUNCHSTACK_SIZE] __initdata
+ __attribute__((aligned(2 * sizeof(long))));
+diff -Nurd linux-2.6.24/arch/mips/sgi-ip22/ip22-int.c mer-smartq-kernel/arch/mips/sgi-ip22/ip22-int.c
+--- linux-2.6.24/arch/mips/sgi-ip22/ip22-int.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/sgi-ip22/ip22-int.c 2009-11-17 12:13:29.000000000 +0100
+@@ -68,7 +68,7 @@
+ sgint->imask1 |= (1 << (irq - SGINT_LOCAL1));
+ }
+
+-void disable_local1_irq(unsigned int irq)
++static void disable_local1_irq(unsigned int irq)
+ {
+ sgint->imask1 &= ~(1 << (irq - SGINT_LOCAL1));
+ }
+@@ -87,7 +87,7 @@
+ sgint->cmeimask0 |= (1 << (irq - SGINT_LOCAL2));
+ }
+
+-void disable_local2_irq(unsigned int irq)
++static void disable_local2_irq(unsigned int irq)
+ {
+ sgint->cmeimask0 &= ~(1 << (irq - SGINT_LOCAL2));
+ if (!sgint->cmeimask0)
+@@ -108,7 +108,7 @@
+ sgint->cmeimask1 |= (1 << (irq - SGINT_LOCAL3));
+ }
+
+-void disable_local3_irq(unsigned int irq)
++static void disable_local3_irq(unsigned int irq)
+ {
+ sgint->cmeimask1 &= ~(1 << (irq - SGINT_LOCAL3));
+ if (!sgint->cmeimask1)
+@@ -344,6 +344,6 @@
+
+ #ifdef CONFIG_EISA
+ if (ip22_is_fullhouse()) /* Only Indigo-2 has EISA stuff */
+- ip22_eisa_init();
++ ip22_eisa_init();
+ #endif
+ }
+diff -Nurd linux-2.6.24/arch/mips/sgi-ip22/ip22-platform.c mer-smartq-kernel/arch/mips/sgi-ip22/ip22-platform.c
+--- linux-2.6.24/arch/mips/sgi-ip22/ip22-platform.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/sgi-ip22/ip22-platform.c 2009-11-17 12:13:29.000000000 +0100
+@@ -150,7 +150,7 @@
+ return res;
+
+ /* Second HPC is missing? */
+- if (!ip22_is_fullhouse() ||
++ if (ip22_is_fullhouse() ||
+ get_dbe(tmp, (unsigned int *)&hpc3c1->pbdma[1]))
+ return 0;
+
+diff -Nurd linux-2.6.24/arch/mips/sgi-ip27/ip27-init.c mer-smartq-kernel/arch/mips/sgi-ip27/ip27-init.c
+--- linux-2.6.24/arch/mips/sgi-ip27/ip27-init.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/sgi-ip27/ip27-init.c 2009-11-17 12:13:29.000000000 +0100
+@@ -54,7 +54,7 @@
+
+ extern void xtalk_probe_node(cnodeid_t nid);
+
+-static void __init per_hub_init(cnodeid_t cnode)
++static void __cpuinit per_hub_init(cnodeid_t cnode)
+ {
+ struct hub_data *hub = hub_data(cnode);
+ nasid_t nasid = COMPACT_TO_NASID_NODEID(cnode);
+diff -Nurd linux-2.6.24/arch/mips/sgi-ip27/ip27-timer.c mer-smartq-kernel/arch/mips/sgi-ip27/ip27-timer.c
+--- linux-2.6.24/arch/mips/sgi-ip27/ip27-timer.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/sgi-ip27/ip27-timer.c 2009-11-17 12:13:29.000000000 +0100
+@@ -158,7 +158,7 @@
+ }
+ }
+
+-unsigned int rt_timer_irq;
++int rt_timer_irq;
+
+ static irqreturn_t hub_rt_counter_handler(int irq, void *dev_id)
+ {
+@@ -219,7 +219,7 @@
+
+ static void __init hub_rt_clock_event_global_init(void)
+ {
+- unsigned int irq;
++ int irq;
+
+ do {
+ smp_wmb();
+@@ -285,7 +285,7 @@
+ set_c0_status(SRB_TIMOCLK);
+ }
+
+-void __init hub_rtc_init(cnodeid_t cnode)
++void __cpuinit hub_rtc_init(cnodeid_t cnode)
+ {
+ /*
+ * We only need to initialize the current node.
+diff -Nurd linux-2.6.24/arch/mips/sgi-ip27/ip27-xtalk.c mer-smartq-kernel/arch/mips/sgi-ip27/ip27-xtalk.c
+--- linux-2.6.24/arch/mips/sgi-ip27/ip27-xtalk.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/sgi-ip27/ip27-xtalk.c 2009-11-17 12:13:29.000000000 +0100
+@@ -22,7 +22,7 @@
+
+ extern int bridge_probe(nasid_t nasid, int widget, int masterwid);
+
+-static int __init probe_one_port(nasid_t nasid, int widget, int masterwid)
++static int __cpuinit probe_one_port(nasid_t nasid, int widget, int masterwid)
+ {
+ widgetreg_t widget_id;
+ xwidget_part_num_t partnum;
+@@ -46,7 +46,7 @@
+ return 0;
+ }
+
+-static int __init xbow_probe(nasid_t nasid)
++static int __cpuinit xbow_probe(nasid_t nasid)
+ {
+ lboard_t *brd;
+ klxbow_t *xbow_p;
+@@ -99,7 +99,7 @@
+ return 0;
+ }
+
+-void __init xtalk_probe_node(cnodeid_t nid)
++void __cpuinit xtalk_probe_node(cnodeid_t nid)
+ {
+ volatile u64 hubreg;
+ nasid_t nasid;
+diff -Nurd linux-2.6.24/arch/mips/sgi-ip32/ip32-irq.c mer-smartq-kernel/arch/mips/sgi-ip32/ip32-irq.c
+--- linux-2.6.24/arch/mips/sgi-ip32/ip32-irq.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/sgi-ip32/ip32-irq.c 2009-11-17 12:13:29.000000000 +0100
+@@ -425,6 +425,11 @@
+ BUILD_BUG_ON(MACEISA_SERIAL2_RDMAOR_IRQ - MACEISA_AUDIO_SW_IRQ != 31);
+
+ crime_int = crime->istat & crime_mask;
++
++ /* crime sometime delivers spurious interrupts, ignore them */
++ if (unlikely(crime_int == 0))
++ return;
++
+ irq = MACE_VID_IN1_IRQ + __ffs(crime_int);
+
+ if (crime_int & CRIME_MACEISA_INT_MASK) {
+diff -Nurd linux-2.6.24/arch/mips/sibyte/bcm1480/irq.c mer-smartq-kernel/arch/mips/sibyte/bcm1480/irq.c
+--- linux-2.6.24/arch/mips/sibyte/bcm1480/irq.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/sibyte/bcm1480/irq.c 2009-11-17 12:13:29.000000000 +0100
+@@ -25,6 +25,7 @@
+ #include <linux/kernel_stat.h>
+
+ #include <asm/errno.h>
++#include <asm/gdb-stub.h>
+ #include <asm/irq_regs.h>
+ #include <asm/signal.h>
+ #include <asm/system.h>
+diff -Nurd linux-2.6.24/arch/mips/sibyte/sb1250/irq.c mer-smartq-kernel/arch/mips/sibyte/sb1250/irq.c
+--- linux-2.6.24/arch/mips/sibyte/sb1250/irq.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/sibyte/sb1250/irq.c 2009-11-17 12:13:29.000000000 +0100
+@@ -26,6 +26,7 @@
+ #include <linux/kernel_stat.h>
+
+ #include <asm/errno.h>
++#include <asm/gdb-stub.h>
+ #include <asm/signal.h>
+ #include <asm/system.h>
+ #include <asm/time.h>
+diff -Nurd linux-2.6.24/arch/mips/vr41xx/common/irq.c mer-smartq-kernel/arch/mips/vr41xx/common/irq.c
+--- linux-2.6.24/arch/mips/vr41xx/common/irq.c 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/arch/mips/vr41xx/common/irq.c 2009-11-17 12:13:29.000000000 +0100
+@@ -72,6 +72,7 @@
+ cascade = irq_cascade + irq;
+ if (cascade->get_irq != NULL) {
+ unsigned int source_irq = irq;
++ int ret;
+ desc = irq_desc + source_irq;
+ if (desc->chip->mask_ack)
+ desc->chip->mask_ack(source_irq);
+@@ -79,8 +80,9 @@
+ desc->chip->mask(source_irq);
+ desc->chip->ack(source_irq);
+ }
+- irq = cascade->get_irq(irq);
+- if (irq < 0)
++ ret = cascade->get_irq(irq);
++ irq = ret;
++ if (ret < 0)
+ atomic_inc(&irq_err_count);
+ else
+ irq_dispatch(irq);
+diff -Nurd linux-2.6.24/drivers/net/Kconfig mer-smartq-kernel/drivers/net/Kconfig
+--- linux-2.6.24/drivers/net/Kconfig 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/drivers/net/Kconfig 2009-11-17 18:05:55.000000000 +0100
+@@ -2348,6 +2348,13 @@
+ Some boards that use the Discovery chipset are the Momenco
+ Ocelot C and Jaguar ATX and Pegasos II.
+
++config TITAN_GE
++ bool "PMC-Sierra TITAN Gigabit Ethernet Support"
++ depends on PMC_YOSEMITE
++ help
++ This enables support for the the integrated ethernet of
++ PMC-Sierra's Titan SoC.
++
+ config QLA3XXX
+ tristate "QLogic QLA3XXX Network Driver Support"
+ depends on PCI
+diff -Nurd linux-2.6.24/drivers/net/Makefile mer-smartq-kernel/drivers/net/Makefile
+--- linux-2.6.24/drivers/net/Makefile 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/drivers/net/Makefile 2009-11-17 12:13:31.000000000 +0100
+@@ -124,6 +124,8 @@
+ obj-$(CONFIG_MV643XX_ETH) += mv643xx_eth.o
+ obj-$(CONFIG_QLA3XXX) += qla3xxx.o
+
++obj-$(CONFIG_TITAN_GE) += titan_mdio.o titan_ge.o
++
+ obj-$(CONFIG_PPP) += ppp_generic.o
+ obj-$(CONFIG_PPP_ASYNC) += ppp_async.o
+ obj-$(CONFIG_PPP_SYNC_TTY) += ppp_synctty.o
+diff -Nurd linux-2.6.24/drivers/net/titan_ge.c mer-smartq-kernel/drivers/net/titan_ge.c
+--- linux-2.6.24/drivers/net/titan_ge.c 1970-01-01 01:00:00.000000000 +0100
++++ mer-smartq-kernel/drivers/net/titan_ge.c 2009-11-17 12:13:31.000000000 +0100
+@@ -0,0 +1,2069 @@
++/*
++ * drivers/net/titan_ge.c - Driver for Titan ethernet ports
++ *
++ * Copyright (C) 2003 PMC-Sierra Inc.
++ * Author : Manish Lachwani (lachwani@pmc-sierra.com)
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2
++ * of the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++ */
++
++/*
++ * The MAC unit of the Titan consists of the following:
++ *
++ * -> XDMA Engine to move data to from the memory to the MAC packet FIFO
++ * -> FIFO is where the incoming and outgoing data is placed
++ * -> TRTG is the unit that pulls the data from the FIFO for Tx and pushes
++ * the data into the FIFO for Rx
++ * -> TMAC is the outgoing MAC interface and RMAC is the incoming.
++ * -> AFX is the address filtering block
++ * -> GMII block to communicate with the PHY
++ *
++ * Rx will look like the following:
++ * GMII --> RMAC --> AFX --> TRTG --> Rx FIFO --> XDMA --> CPU memory
++ *
++ * Tx will look like the following:
++ * CPU memory --> XDMA --> Tx FIFO --> TRTG --> TMAC --> GMII
++ *
++ * The Titan driver has support for the following performance features:
++ * -> Rx side checksumming
++ * -> Jumbo Frames
++ * -> Interrupt Coalscing
++ * -> Rx NAPI
++ * -> SKB Recycling
++ * -> Transmit/Receive descriptors in SRAM
++ * -> Fast routing for IP forwarding
++ */
++
++#include <linux/dma-mapping.h>
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/sched.h>
++#include <linux/ioport.h>
++#include <linux/interrupt.h>
++#include <linux/slab.h>
++#include <linux/string.h>
++#include <linux/errno.h>
++#include <linux/ip.h>
++#include <linux/init.h>
++#include <linux/in.h>
++#include <linux/platform_device.h>
++#include <linux/netdevice.h>
++#include <linux/etherdevice.h>
++#include <linux/skbuff.h>
++#include <linux/mii.h>
++#include <linux/delay.h>
++#include <linux/skbuff.h>
++#include <linux/prefetch.h>
++
++/* For MII specifc registers, titan_mdio.h should be included */
++#include <net/ip.h>
++
++#include <asm/bitops.h>
++#include <asm/io.h>
++#include <asm/types.h>
++#include <asm/pgtable.h>
++#include <asm/system.h>
++#include <asm/titan_dep.h>
++
++#include "titan_ge.h"
++#include "titan_mdio.h"
++
++/* Static Function Declarations */
++static int titan_ge_eth_open(struct net_device *);
++static void titan_ge_eth_stop(struct net_device *);
++static struct net_device_stats *titan_ge_get_stats(struct net_device *);
++static int titan_ge_init_rx_desc_ring(titan_ge_port_info *, int, int,
++ unsigned long, unsigned long,
++ unsigned long);
++static int titan_ge_init_tx_desc_ring(titan_ge_port_info *, int,
++ unsigned long, unsigned long);
++
++static int titan_ge_open(struct net_device *);
++static int titan_ge_start_xmit(struct sk_buff *, struct net_device *);
++static int titan_ge_stop(struct net_device *);
++
++static unsigned long titan_ge_tx_coal(unsigned long, int);
++
++static void titan_ge_port_reset(unsigned int);
++static int titan_ge_free_tx_queue(titan_ge_port_info *);
++static int titan_ge_rx_task(struct net_device *, titan_ge_port_info *);
++static int titan_ge_port_start(struct net_device *, titan_ge_port_info *);
++
++static int titan_ge_return_tx_desc(titan_ge_port_info *, int);
++
++/*
++ * Some configuration for the FIFO and the XDMA channel needs
++ * to be done only once for all the ports. This flag controls
++ * that
++ */
++static unsigned long config_done;
++
++/*
++ * One time out of memory flag
++ */
++static unsigned int oom_flag;
++
++static int titan_ge_poll(struct net_device *netdev, int *budget);
++
++static int titan_ge_receive_queue(struct net_device *, unsigned int);
++
++static struct platform_device *titan_ge_device[3];
++
++/* MAC Address */
++extern unsigned char titan_ge_mac_addr_base[6];
++
++unsigned long titan_ge_base;
++static unsigned long titan_ge_sram;
++
++static char titan_string[] = "titan";
++
++/*
++ * The Titan GE has two alignment requirements:
++ * -> skb->data to be cacheline aligned (32 byte)
++ * -> IP header alignment to 16 bytes
++ *
++ * The latter is not implemented. So, that results in an extra copy on
++ * the Rx. This is a big performance hog. For the former case, the
++ * dev_alloc_skb() has been replaced with titan_ge_alloc_skb(). The size
++ * requested is calculated:
++ *
++ * Ethernet Frame Size : 1518
++ * Ethernet Header : 14
++ * Future Titan change for IP header alignment : 2
++ *
++ * Hence, we allocate (1518 + 14 + 2+ 64) = 1580 bytes. For IP header
++ * alignment, we use skb_reserve().
++ */
++
++#define ALIGNED_RX_SKB_ADDR(addr) \
++ ((((unsigned long)(addr) + (64UL - 1UL)) \
++ & ~(64UL - 1UL)) - (unsigned long)(addr))
++
++#define titan_ge_alloc_skb(__length, __gfp_flags) \
++({ struct sk_buff *__skb; \
++ __skb = alloc_skb((__length) + 64, (__gfp_flags)); \
++ if(__skb) { \
++ int __offset = (int) ALIGNED_RX_SKB_ADDR(__skb->data); \
++ if(__offset) \
++ skb_reserve(__skb, __offset); \
++ } \
++ __skb; \
++})
++
++/*
++ * Configure the GMII block of the Titan based on what the PHY tells us
++ */
++static void titan_ge_gmii_config(int port_num)
++{
++ unsigned int reg_data = 0, phy_reg;
++ int err;
++
++ err = titan_ge_mdio_read(port_num, TITAN_GE_MDIO_PHY_STATUS, &phy_reg);
++
++ if (err == TITAN_GE_MDIO_ERROR) {
++ printk(KERN_ERR
++ "Could not read PHY control register 0x11 \n");
++ printk(KERN_ERR
++ "Setting speed to 1000 Mbps and Duplex to Full \n");
++
++ return;
++ }
++
++ err = titan_ge_mdio_write(port_num, TITAN_GE_MDIO_PHY_IE, 0);
++
++ if (phy_reg & 0x8000) {
++ if (phy_reg & 0x2000) {
++ /* Full Duplex and 1000 Mbps */
++ TITAN_GE_WRITE((TITAN_GE_GMII_CONFIG_MODE +
++ (port_num << 12)), 0x201);
++ } else {
++ /* Half Duplex and 1000 Mbps */
++ TITAN_GE_WRITE((TITAN_GE_GMII_CONFIG_MODE +
++ (port_num << 12)), 0x2201);
++ }
++ }
++ if (phy_reg & 0x4000) {
++ if (phy_reg & 0x2000) {
++ /* Full Duplex and 100 Mbps */
++ TITAN_GE_WRITE((TITAN_GE_GMII_CONFIG_MODE +
++ (port_num << 12)), 0x100);
++ } else {
++ /* Half Duplex and 100 Mbps */
++ TITAN_GE_WRITE((TITAN_GE_GMII_CONFIG_MODE +
++ (port_num << 12)), 0x2100);
++ }
++ }
++ reg_data = TITAN_GE_READ(TITAN_GE_GMII_CONFIG_GENERAL +
++ (port_num << 12));
++ reg_data |= 0x3;
++ TITAN_GE_WRITE((TITAN_GE_GMII_CONFIG_GENERAL +
++ (port_num << 12)), reg_data);
++}
++
++/*
++ * Enable the TMAC if it is not
++ */
++static void titan_ge_enable_tx(unsigned int port_num)
++{
++ unsigned long reg_data;
++
++ reg_data = TITAN_GE_READ(TITAN_GE_TMAC_CONFIG_1 + (port_num << 12));
++ if (!(reg_data & 0x8000)) {
++ printk("TMAC disabled for port %d!! \n", port_num);
++
++ reg_data |= 0x0001; /* Enable TMAC */
++ reg_data |= 0x4000; /* CRC Check Enable */
++ reg_data |= 0x2000; /* Padding enable */
++ reg_data |= 0x0800; /* CRC Add enable */
++ reg_data |= 0x0080; /* PAUSE frame */
++
++ TITAN_GE_WRITE((TITAN_GE_TMAC_CONFIG_1 +
++ (port_num << 12)), reg_data);
++ }
++}
++
++/*
++ * Tx Timeout function
++ */
++static void titan_ge_tx_timeout(struct net_device *netdev)
++{
++ titan_ge_port_info *titan_ge_eth = netdev_priv(netdev);
++
++ printk(KERN_INFO "%s: TX timeout ", netdev->name);
++ printk(KERN_INFO "Resetting card \n");
++
++ /* Do the reset outside of interrupt context */
++ schedule_work(&titan_ge_eth->tx_timeout_task);
++}
++
++/*
++ * Update the AFX tables for UC and MC for slice 0 only
++ */
++static void titan_ge_update_afx(titan_ge_port_info * titan_ge_eth)
++{
++ int port = titan_ge_eth->port_num;
++ unsigned int i;
++ volatile unsigned long reg_data = 0;
++ u8 p_addr[6];
++
++ memcpy(p_addr, titan_ge_eth->port_mac_addr, 6);
++
++ /* Set the MAC address here for TMAC and RMAC */
++ TITAN_GE_WRITE((TITAN_GE_TMAC_STATION_HI + (port << 12)),
++ ((p_addr[5] << 8) | p_addr[4]));
++ TITAN_GE_WRITE((TITAN_GE_TMAC_STATION_MID + (port << 12)),
++ ((p_addr[3] << 8) | p_addr[2]));
++ TITAN_GE_WRITE((TITAN_GE_TMAC_STATION_LOW + (port << 12)),
++ ((p_addr[1] << 8) | p_addr[0]));
++
++ TITAN_GE_WRITE((TITAN_GE_RMAC_STATION_HI + (port << 12)),
++ ((p_addr[5] << 8) | p_addr[4]));
++ TITAN_GE_WRITE((TITAN_GE_RMAC_STATION_MID + (port << 12)),
++ ((p_addr[3] << 8) | p_addr[2]));
++ TITAN_GE_WRITE((TITAN_GE_RMAC_STATION_LOW + (port << 12)),
++ ((p_addr[1] << 8) | p_addr[0]));
++
++ TITAN_GE_WRITE((0x112c | (port << 12)), 0x1);
++ /* Configure the eight address filters */
++ for (i = 0; i < 8; i++) {
++ /* Select each of the eight filters */
++ TITAN_GE_WRITE((TITAN_GE_AFX_ADDRS_FILTER_CTRL_2 +
++ (port << 12)), i);
++
++ /* Configure the match */
++ reg_data = 0x9; /* Forward Enable Bit */
++ TITAN_GE_WRITE((TITAN_GE_AFX_ADDRS_FILTER_CTRL_0 +
++ (port << 12)), reg_data);
++
++ /* Finally, AFX Exact Match Address Registers */
++ TITAN_GE_WRITE((TITAN_GE_AFX_EXACT_MATCH_LOW + (port << 12)),
++ ((p_addr[1] << 8) | p_addr[0]));
++ TITAN_GE_WRITE((TITAN_GE_AFX_EXACT_MATCH_MID + (port << 12)),
++ ((p_addr[3] << 8) | p_addr[2]));
++ TITAN_GE_WRITE((TITAN_GE_AFX_EXACT_MATCH_HIGH + (port << 12)),
++ ((p_addr[5] << 8) | p_addr[4]));
++
++ /* VLAN id set to 0 */
++ TITAN_GE_WRITE((TITAN_GE_AFX_EXACT_MATCH_VID +
++ (port << 12)), 0);
++ }
++}
++
++/*
++ * Actual Routine to reset the adapter when the timeout occurred
++ */
++static void titan_ge_tx_timeout_task(struct net_device *netdev)
++{
++ titan_ge_port_info *titan_ge_eth = netdev_priv(netdev);
++ int port = titan_ge_eth->port_num;
++
++ printk("Titan GE: Transmit timed out. Resetting ... \n");
++
++ /* Dump debug info */
++ printk(KERN_ERR "TRTG cause : %x \n",
++ TITAN_GE_READ(0x100c + (port << 12)));
++
++ /* Fix this for the other ports */
++ printk(KERN_ERR "FIFO cause : %x \n", TITAN_GE_READ(0x482c));
++ printk(KERN_ERR "IE cause : %x \n", TITAN_GE_READ(0x0040));
++ printk(KERN_ERR "XDMA GDI ERROR : %x \n",
++ TITAN_GE_READ(0x5008 + (port << 8)));
++ printk(KERN_ERR "CHANNEL ERROR: %x \n",
++ TITAN_GE_READ(TITAN_GE_CHANNEL0_INTERRUPT
++ + (port << 8)));
++
++ netif_device_detach(netdev);
++ titan_ge_port_reset(titan_ge_eth->port_num);
++ titan_ge_port_start(netdev, titan_ge_eth);
++ netif_device_attach(netdev);
++}
++
++/*
++ * Change the MTU of the Ethernet Device
++ */
++static int titan_ge_change_mtu(struct net_device *netdev, int new_mtu)
++{
++ titan_ge_port_info *titan_ge_eth = netdev_priv(netdev);
++ unsigned long flags;
++
++ if ((new_mtu > 9500) || (new_mtu < 64))
++ return -EINVAL;
++
++ spin_lock_irqsave(&titan_ge_eth->lock, flags);
++
++ netdev->mtu = new_mtu;
++
++ /* Now we have to reopen the interface so that SKBs with the new
++ * size will be allocated */
++
++ if (netif_running(netdev)) {
++ titan_ge_eth_stop(netdev);
++
++ if (titan_ge_eth_open(netdev) != TITAN_OK) {
++ printk(KERN_ERR
++ "%s: Fatal error on opening device\n",
++ netdev->name);
++ spin_unlock_irqrestore(&titan_ge_eth->lock, flags);
++ return -1;
++ }
++ }
++
++ spin_unlock_irqrestore(&titan_ge_eth->lock, flags);
++ return 0;
++}
++
++/*
++ * Titan Gbe Interrupt Handler. All the three ports send interrupt to one line
++ * only. Once an interrupt is triggered, figure out the port and then check
++ * the channel.
++ */
++static irqreturn_t titan_ge_int_handler(int irq, void *dev_id)
++{
++ struct net_device *netdev = (struct net_device *) dev_id;
++ titan_ge_port_info *titan_ge_eth = netdev_priv(netdev);
++ unsigned int port_num = titan_ge_eth->port_num;
++ unsigned int reg_data;
++ unsigned int eth_int_cause_error = 0, is;
++ unsigned long eth_int_cause1;
++ int err = 0;
++#ifdef CONFIG_SMP
++ unsigned long eth_int_cause2;
++#endif
++
++ /* Ack the CPU interrupt */
++ switch (port_num) {
++ case 0:
++ is = OCD_READ(RM9000x2_OCD_INTP0STATUS1);
++ OCD_WRITE(RM9000x2_OCD_INTP0CLEAR1, is);
++
++#ifdef CONFIG_SMP
++ is = OCD_READ(RM9000x2_OCD_INTP1STATUS1);
++ OCD_WRITE(RM9000x2_OCD_INTP1CLEAR1, is);
++#endif
++ break;
++
++ case 1:
++ is = OCD_READ(RM9000x2_OCD_INTP0STATUS0);
++ OCD_WRITE(RM9000x2_OCD_INTP0CLEAR0, is);
++
++#ifdef CONFIG_SMP
++ is = OCD_READ(RM9000x2_OCD_INTP1STATUS0);
++ OCD_WRITE(RM9000x2_OCD_INTP1CLEAR0, is);
++#endif
++ break;
++
++ case 2:
++ is = OCD_READ(RM9000x2_OCD_INTP0STATUS4);
++ OCD_WRITE(RM9000x2_OCD_INTP0CLEAR4, is);
++
++#ifdef CONFIG_SMP
++ is = OCD_READ(RM9000x2_OCD_INTP1STATUS4);
++ OCD_WRITE(RM9000x2_OCD_INTP1CLEAR4, is);
++#endif
++ }
++
++ eth_int_cause1 = TITAN_GE_READ(TITAN_GE_INTR_XDMA_CORE_A);
++#ifdef CONFIG_SMP
++ eth_int_cause2 = TITAN_GE_READ(TITAN_GE_INTR_XDMA_CORE_B);
++#endif
++
++ /* Spurious interrupt */
++#ifdef CONFIG_SMP
++ if ( (eth_int_cause1 == 0) && (eth_int_cause2 == 0)) {
++#else
++ if (eth_int_cause1 == 0) {
++#endif
++ eth_int_cause_error = TITAN_GE_READ(TITAN_GE_CHANNEL0_INTERRUPT +
++ (port_num << 8));
++
++ if (eth_int_cause_error == 0)
++ return IRQ_NONE;
++ }
++
++ /* Handle Tx first. No need to ack interrupts */
++#ifdef CONFIG_SMP
++ if ( (eth_int_cause1 & 0x20202) ||
++ (eth_int_cause2 & 0x20202) )
++#else
++ if (eth_int_cause1 & 0x20202)
++#endif
++ titan_ge_free_tx_queue(titan_ge_eth);
++
++ /* Handle the Rx next */
++#ifdef CONFIG_SMP
++ if ( (eth_int_cause1 & 0x10101) ||
++ (eth_int_cause2 & 0x10101)) {
++#else
++ if (eth_int_cause1 & 0x10101) {
++#endif
++ if (netif_rx_schedule_prep(netdev)) {
++ unsigned int ack;
++
++ ack = TITAN_GE_READ(TITAN_GE_INTR_XDMA_IE);
++ /* Disable Tx and Rx both */
++ if (port_num == 0)
++ ack &= ~(0x3);
++ if (port_num == 1)
++ ack &= ~(0x300);
++
++ if (port_num == 2)
++ ack &= ~(0x30000);
++
++ /* Interrupts have been disabled */
++ TITAN_GE_WRITE(TITAN_GE_INTR_XDMA_IE, ack);
++
++ __netif_rx_schedule(netdev);
++ }
++ }
++
++ /* Handle error interrupts */
++ if (eth_int_cause_error && (eth_int_cause_error != 0x2)) {
++ printk(KERN_ERR
++ "XDMA Channel Error : %x on port %d\n",
++ eth_int_cause_error, port_num);
++
++ printk(KERN_ERR
++ "XDMA GDI Hardware error : %x on port %d\n",
++ TITAN_GE_READ(0x5008 + (port_num << 8)), port_num);
++
++ printk(KERN_ERR
++ "XDMA currently has %d Rx descriptors \n",
++ TITAN_GE_READ(0x5048 + (port_num << 8)));
++
++ printk(KERN_ERR
++ "XDMA currently has prefetcted %d Rx descriptors \n",
++ TITAN_GE_READ(0x505c + (port_num << 8)));
++
++ TITAN_GE_WRITE((TITAN_GE_CHANNEL0_INTERRUPT +
++ (port_num << 8)), eth_int_cause_error);
++ }
++
++ /*
++ * PHY interrupt to inform abt the changes. Reading the
++ * PHY Status register will clear the interrupt
++ */
++ if ((!(eth_int_cause1 & 0x30303)) &&
++ (eth_int_cause_error == 0)) {
++ err =
++ titan_ge_mdio_read(port_num,
++ TITAN_GE_MDIO_PHY_IS, &reg_data);
++
++ if (reg_data & 0x0400) {
++ /* Link status change */
++ titan_ge_mdio_read(port_num,
++ TITAN_GE_MDIO_PHY_STATUS, &reg_data);
++ if (!(reg_data & 0x0400)) {
++ /* Link is down */
++ netif_carrier_off(netdev);
++ netif_stop_queue(netdev);
++ } else {
++ /* Link is up */
++ netif_carrier_on(netdev);
++ netif_wake_queue(netdev);
++
++ /* Enable the queue */
++ titan_ge_enable_tx(port_num);
++ }
++ }
++ }
++
++ return IRQ_HANDLED;
++}
++
++/*
++ * Multicast and Promiscuous mode set. The
++ * set_multi entry point is called whenever the
++ * multicast address list or the network interface
++ * flags are updated.
++ */
++static void titan_ge_set_multi(struct net_device *netdev)
++{
++ titan_ge_port_info *titan_ge_eth = netdev_priv(netdev);
++ unsigned int port_num = titan_ge_eth->port_num;
++ unsigned long reg_data;
++
++ reg_data = TITAN_GE_READ(TITAN_GE_AFX_ADDRS_FILTER_CTRL_1 +
++ (port_num << 12));
++
++ if (netdev->flags & IFF_PROMISC) {
++ reg_data |= 0x2;
++ }
++ else if (netdev->flags & IFF_ALLMULTI) {
++ reg_data |= 0x01;
++ reg_data |= 0x400; /* Use the 64-bit Multicast Hash bin */
++ }
++ else {
++ reg_data = 0x2;
++ }
++
++ TITAN_GE_WRITE((TITAN_GE_AFX_ADDRS_FILTER_CTRL_1 +
++ (port_num << 12)), reg_data);
++ if (reg_data & 0x01) {
++ TITAN_GE_WRITE((TITAN_GE_AFX_MULTICAST_HASH_LOW +
++ (port_num << 12)), 0xffff);
++ TITAN_GE_WRITE((TITAN_GE_AFX_MULTICAST_HASH_MIDLOW +
++ (port_num << 12)), 0xffff);
++ TITAN_GE_WRITE((TITAN_GE_AFX_MULTICAST_HASH_MIDHI +
++ (port_num << 12)), 0xffff);
++ TITAN_GE_WRITE((TITAN_GE_AFX_MULTICAST_HASH_HI +
++ (port_num << 12)), 0xffff);
++ }
++}
++
++/*
++ * Open the network device
++ */
++static int titan_ge_open(struct net_device *netdev)
++{
++ titan_ge_port_info *titan_ge_eth = netdev_priv(netdev);
++ unsigned int port_num = titan_ge_eth->port_num;
++ unsigned int irq = TITAN_ETH_PORT_IRQ - port_num;
++ int retval;
++
++ retval = request_irq(irq, titan_ge_int_handler,
++ SA_INTERRUPT | SA_SAMPLE_RANDOM , netdev->name, netdev);
++
++ if (retval != 0) {
++ printk(KERN_ERR "Cannot assign IRQ number to TITAN GE \n");
++ return -1;
++ }
++
++ netdev->irq = irq;
++ printk(KERN_INFO "Assigned IRQ %d to port %d\n", irq, port_num);
++
++ spin_lock_irq(&(titan_ge_eth->lock));
++
++ if (titan_ge_eth_open(netdev) != TITAN_OK) {
++ spin_unlock_irq(&(titan_ge_eth->lock));
++ printk("%s: Error opening interface \n", netdev->name);
++ free_irq(netdev->irq, netdev);
++ return -EBUSY;
++ }
++
++ spin_unlock_irq(&(titan_ge_eth->lock));
++
++ return 0;
++}
++
++/*
++ * Allocate the SKBs for the Rx ring. Also used
++ * for refilling the queue
++ */
++static int titan_ge_rx_task(struct net_device *netdev,
++ titan_ge_port_info *titan_ge_port)
++{
++ struct device *device = &titan_ge_device[titan_ge_port->port_num]->dev;
++ volatile titan_ge_rx_desc *rx_desc;
++ struct sk_buff *skb;
++ int rx_used_desc;
++ int count = 0;
++
++ while (titan_ge_port->rx_ring_skbs < titan_ge_port->rx_ring_size) {
++
++ /* First try to get the skb from the recycler */
++#ifdef TITAN_GE_JUMBO_FRAMES
++ skb = titan_ge_alloc_skb(TITAN_GE_JUMBO_BUFSIZE, GFP_ATOMIC);
++#else
++ skb = titan_ge_alloc_skb(TITAN_GE_STD_BUFSIZE, GFP_ATOMIC);
++#endif
++ if (unlikely(!skb)) {
++ /* OOM, set the flag */
++ printk("OOM \n");
++ oom_flag = 1;
++ break;
++ }
++ count++;
++ skb->dev = netdev;
++
++ titan_ge_port->rx_ring_skbs++;
++
++ rx_used_desc = titan_ge_port->rx_used_desc_q;
++ rx_desc = &(titan_ge_port->rx_desc_area[rx_used_desc]);
++
++#ifdef TITAN_GE_JUMBO_FRAMES
++ rx_desc->buffer_addr = dma_map_single(device, skb->data,
++ TITAN_GE_JUMBO_BUFSIZE - 2, DMA_FROM_DEVICE);
++#else
++ rx_desc->buffer_addr = dma_map_single(device, skb->data,
++ TITAN_GE_STD_BUFSIZE - 2, DMA_FROM_DEVICE);
++#endif
++
++ titan_ge_port->rx_skb[rx_used_desc] = skb;
++ rx_desc->cmd_sts = TITAN_GE_RX_BUFFER_OWNED;
++
++ titan_ge_port->rx_used_desc_q =
++ (rx_used_desc + 1) % TITAN_GE_RX_QUEUE;
++ }
++
++ return count;
++}
++
++/*
++ * Actual init of the Tital GE port. There is one register for
++ * the channel configuration
++ */
++static void titan_port_init(struct net_device *netdev,
++ titan_ge_port_info * titan_ge_eth)
++{
++ unsigned long reg_data;
++
++ titan_ge_port_reset(titan_ge_eth->port_num);
++
++ /* First reset the TMAC */
++ reg_data = TITAN_GE_READ(TITAN_GE_CHANNEL0_CONFIG);
++ reg_data |= 0x80000000;
++ TITAN_GE_WRITE(TITAN_GE_CHANNEL0_CONFIG, reg_data);
++
++ udelay(30);
++
++ reg_data = TITAN_GE_READ(TITAN_GE_CHANNEL0_CONFIG);
++ reg_data &= ~(0xc0000000);
++ TITAN_GE_WRITE(TITAN_GE_CHANNEL0_CONFIG, reg_data);
++
++ /* Now reset the RMAC */
++ reg_data = TITAN_GE_READ(TITAN_GE_CHANNEL0_CONFIG);
++ reg_data |= 0x00080000;
++ TITAN_GE_WRITE(TITAN_GE_CHANNEL0_CONFIG, reg_data);
++
++ udelay(30);
++
++ reg_data = TITAN_GE_READ(TITAN_GE_CHANNEL0_CONFIG);
++ reg_data &= ~(0x000c0000);
++ TITAN_GE_WRITE(TITAN_GE_CHANNEL0_CONFIG, reg_data);
++}
++
++/*
++ * Start the port. All the hardware specific configuration
++ * for the XDMA, Tx FIFO, Rx FIFO, TMAC, RMAC, TRTG and AFX
++ * go here
++ */
++static int titan_ge_port_start(struct net_device *netdev,
++ titan_ge_port_info * titan_port)
++{
++ volatile unsigned long reg_data, reg_data1;
++ int port_num = titan_port->port_num;
++ int count = 0;
++ unsigned long reg_data_1;
++
++ if (config_done == 0) {
++ reg_data = TITAN_GE_READ(0x0004);
++ reg_data |= 0x100;
++ TITAN_GE_WRITE(0x0004, reg_data);
++
++ reg_data &= ~(0x100);
++ TITAN_GE_WRITE(0x0004, reg_data);
++
++ /* Turn on GMII/MII mode and turn off TBI mode */
++ reg_data = TITAN_GE_READ(TITAN_GE_TSB_CTRL_1);
++ reg_data |= 0x00000700;
++ reg_data &= ~(0x00800000); /* Fencing */
++
++ TITAN_GE_WRITE(0x000c, 0x00001100);
++
++ TITAN_GE_WRITE(TITAN_GE_TSB_CTRL_1, reg_data);
++
++ /* Set the CPU Resource Limit register */
++ TITAN_GE_WRITE(0x00f8, 0x8);
++
++ /* Be conservative when using the BIU buffers */
++ TITAN_GE_WRITE(0x0068, 0x4);
++ }
++
++ titan_port->tx_threshold = 0;
++ titan_port->rx_threshold = 0;
++
++ /* We need to write the descriptors for Tx and Rx */
++ TITAN_GE_WRITE((TITAN_GE_CHANNEL0_TX_DESC + (port_num << 8)),
++ (unsigned long) titan_port->tx_dma);
++ TITAN_GE_WRITE((TITAN_GE_CHANNEL0_RX_DESC + (port_num << 8)),
++ (unsigned long) titan_port->rx_dma);
++
++ if (config_done == 0) {
++ /* Step 1: XDMA config */
++ reg_data = TITAN_GE_READ(TITAN_GE_XDMA_CONFIG);
++ reg_data &= ~(0x80000000); /* clear reset */
++ reg_data |= 0x1 << 29; /* sparse tx descriptor spacing */
++ reg_data |= 0x1 << 28; /* sparse rx descriptor spacing */
++ reg_data |= (0x1 << 23) | (0x1 << 24); /* Descriptor Coherency */
++ reg_data |= (0x1 << 21) | (0x1 << 22); /* Data Coherency */
++ TITAN_GE_WRITE(TITAN_GE_XDMA_CONFIG, reg_data);
++ }
++
++ /* IR register for the XDMA */
++ reg_data = TITAN_GE_READ(TITAN_GE_GDI_INTERRUPT_ENABLE + (port_num << 8));
++ reg_data |= 0x80068000; /* No Rx_OOD */
++ TITAN_GE_WRITE((TITAN_GE_GDI_INTERRUPT_ENABLE + (port_num << 8)), reg_data);
++
++ /* Start the Tx and Rx XDMA controller */
++ reg_data = TITAN_GE_READ(TITAN_GE_CHANNEL0_CONFIG + (port_num << 8));
++ reg_data &= 0x4fffffff; /* Clear tx reset */
++ reg_data &= 0xfff4ffff; /* Clear rx reset */
++
++#ifdef TITAN_GE_JUMBO_FRAMES
++ reg_data |= 0xa0 | 0x30030000;
++#else
++ reg_data |= 0x40 | 0x20030000;
++#endif
++
++#ifndef CONFIG_SMP
++ reg_data &= ~(0x10);
++ reg_data |= 0x0f; /* All of the packet */
++#endif
++
++ TITAN_GE_WRITE((TITAN_GE_CHANNEL0_CONFIG + (port_num << 8)), reg_data);
++
++ /* Rx desc count */
++ count = titan_ge_rx_task(netdev, titan_port);
++ TITAN_GE_WRITE((0x5048 + (port_num << 8)), count);
++ count = TITAN_GE_READ(0x5048 + (port_num << 8));
++
++ udelay(30);
++
++ /*
++ * Step 2: Configure the SDQPF, i.e. FIFO
++ */
++ if (config_done == 0) {
++ reg_data = TITAN_GE_READ(TITAN_GE_SDQPF_RXFIFO_CTL);
++ reg_data = 0x1;
++ TITAN_GE_WRITE(TITAN_GE_SDQPF_RXFIFO_CTL, reg_data);
++ reg_data &= ~(0x1);
++ TITAN_GE_WRITE(TITAN_GE_SDQPF_RXFIFO_CTL, reg_data);
++ reg_data = TITAN_GE_READ(TITAN_GE_SDQPF_RXFIFO_CTL);
++ TITAN_GE_WRITE(TITAN_GE_SDQPF_RXFIFO_CTL, reg_data);
++
++ reg_data = TITAN_GE_READ(TITAN_GE_SDQPF_TXFIFO_CTL);
++ reg_data = 0x1;
++ TITAN_GE_WRITE(TITAN_GE_SDQPF_TXFIFO_CTL, reg_data);
++ reg_data &= ~(0x1);
++ TITAN_GE_WRITE(TITAN_GE_SDQPF_TXFIFO_CTL, reg_data);
++ reg_data = TITAN_GE_READ(TITAN_GE_SDQPF_TXFIFO_CTL);
++ TITAN_GE_WRITE(TITAN_GE_SDQPF_TXFIFO_CTL, reg_data);
++ }
++ /*
++ * Enable RX FIFO 0, 4 and 8
++ */
++ if (port_num == 0) {
++ reg_data = TITAN_GE_READ(TITAN_GE_SDQPF_RXFIFO_0);
++
++ reg_data |= 0x100000;
++ reg_data |= (0xff << 10);
++
++ TITAN_GE_WRITE(TITAN_GE_SDQPF_RXFIFO_0, reg_data);
++ /*
++ * BAV2,BAV and DAV settings for the Rx FIFO
++ */
++ reg_data1 = TITAN_GE_READ(0x4844);
++ reg_data1 |= ( (0x10 << 20) | (0x10 << 10) | 0x1);
++ TITAN_GE_WRITE(0x4844, reg_data1);
++
++ reg_data &= ~(0x00100000);
++ reg_data |= 0x200000;
++
++ TITAN_GE_WRITE(TITAN_GE_SDQPF_RXFIFO_0, reg_data);
++
++ reg_data = TITAN_GE_READ(TITAN_GE_SDQPF_TXFIFO_0);
++ reg_data |= 0x100000;
++
++ TITAN_GE_WRITE(TITAN_GE_SDQPF_TXFIFO_0, reg_data);
++
++ reg_data |= (0xff << 10);
++
++ TITAN_GE_WRITE(TITAN_GE_SDQPF_TXFIFO_0, reg_data);
++
++ /*
++ * BAV2, BAV and DAV settings for the Tx FIFO
++ */
++ reg_data1 = TITAN_GE_READ(0x4944);
++ reg_data1 = ( (0x1 << 20) | (0x1 << 10) | 0x10);
++
++ TITAN_GE_WRITE(0x4944, reg_data1);
++
++ reg_data &= ~(0x00100000);
++ reg_data |= 0x200000;
++
++ TITAN_GE_WRITE(TITAN_GE_SDQPF_TXFIFO_0, reg_data);
++
++ }
++
++ if (port_num == 1) {
++ reg_data = TITAN_GE_READ(0x4870);
++
++ reg_data |= 0x100000;
++ reg_data |= (0xff << 10) | (0xff + 1);
++
++ TITAN_GE_WRITE(0x4870, reg_data);
++ /*
++ * BAV2,BAV and DAV settings for the Rx FIFO
++ */
++ reg_data1 = TITAN_GE_READ(0x4874);
++ reg_data1 |= ( (0x10 << 20) | (0x10 << 10) | 0x1);
++ TITAN_GE_WRITE(0x4874, reg_data1);
++
++ reg_data &= ~(0x00100000);
++ reg_data |= 0x200000;
++
++ TITAN_GE_WRITE(0x4870, reg_data);
++
++ reg_data = TITAN_GE_READ(0x494c);
++ reg_data |= 0x100000;
++
++ TITAN_GE_WRITE(0x494c, reg_data);
++ reg_data |= (0xff << 10) | (0xff + 1);
++ TITAN_GE_WRITE(0x494c, reg_data);
++
++ /*
++ * BAV2, BAV and DAV settings for the Tx FIFO
++ */
++ reg_data1 = TITAN_GE_READ(0x4950);
++ reg_data1 = ( (0x1 << 20) | (0x1 << 10) | 0x10);
++
++ TITAN_GE_WRITE(0x4950, reg_data1);
++
++ reg_data &= ~(0x00100000);
++ reg_data |= 0x200000;
++
++ TITAN_GE_WRITE(0x494c, reg_data);
++ }
++
++ /*
++ * Titan 1.2 revision does support port #2
++ */
++ if (port_num == 2) {
++ /*
++ * Put the descriptors in the SRAM
++ */
++ reg_data = TITAN_GE_READ(0x48a0);
++
++ reg_data |= 0x100000;
++ reg_data |= (0xff << 10) | (2*(0xff + 1));
++
++ TITAN_GE_WRITE(0x48a0, reg_data);
++ /*
++ * BAV2,BAV and DAV settings for the Rx FIFO
++ */
++ reg_data1 = TITAN_GE_READ(0x48a4);
++ reg_data1 |= ( (0x10 << 20) | (0x10 << 10) | 0x1);
++ TITAN_GE_WRITE(0x48a4, reg_data1);
++
++ reg_data &= ~(0x00100000);
++ reg_data |= 0x200000;
++
++ TITAN_GE_WRITE(0x48a0, reg_data);
++
++ reg_data = TITAN_GE_READ(0x4958);
++ reg_data |= 0x100000;
++
++ TITAN_GE_WRITE(0x4958, reg_data);
++ reg_data |= (0xff << 10) | (2*(0xff + 1));
++ TITAN_GE_WRITE(0x4958, reg_data);
++
++ /*
++ * BAV2, BAV and DAV settings for the Tx FIFO
++ */
++ reg_data1 = TITAN_GE_READ(0x495c);
++ reg_data1 = ( (0x1 << 20) | (0x1 << 10) | 0x10);
++
++ TITAN_GE_WRITE(0x495c, reg_data1);
++
++ reg_data &= ~(0x00100000);
++ reg_data |= 0x200000;
++
++ TITAN_GE_WRITE(0x4958, reg_data);
++ }
++
++ if (port_num == 2) {
++ reg_data = TITAN_GE_READ(0x48a0);
++
++ reg_data |= 0x100000;
++ reg_data |= (0xff << 10) | (2*(0xff + 1));
++
++ TITAN_GE_WRITE(0x48a0, reg_data);
++ /*
++ * BAV2,BAV and DAV settings for the Rx FIFO
++ */
++ reg_data1 = TITAN_GE_READ(0x48a4);
++ reg_data1 |= ( (0x10 << 20) | (0x10 << 10) | 0x1);
++ TITAN_GE_WRITE(0x48a4, reg_data1);
++
++ reg_data &= ~(0x00100000);
++ reg_data |= 0x200000;
++
++ TITAN_GE_WRITE(0x48a0, reg_data);
++
++ reg_data = TITAN_GE_READ(0x4958);
++ reg_data |= 0x100000;
++
++ TITAN_GE_WRITE(0x4958, reg_data);
++ reg_data |= (0xff << 10) | (2*(0xff + 1));
++ TITAN_GE_WRITE(0x4958, reg_data);
++
++ /*
++ * BAV2, BAV and DAV settings for the Tx FIFO
++ */
++ reg_data1 = TITAN_GE_READ(0x495c);
++ reg_data1 = ( (0x1 << 20) | (0x1 << 10) | 0x10);
++
++ TITAN_GE_WRITE(0x495c, reg_data1);
++
++ reg_data &= ~(0x00100000);
++ reg_data |= 0x200000;
++
++ TITAN_GE_WRITE(0x4958, reg_data);
++ }
++
++ /*
++ * Step 3: TRTG block enable
++ */
++ reg_data = TITAN_GE_READ(TITAN_GE_TRTG_CONFIG + (port_num << 12));
++
++ /*
++ * This is the 1.2 revision of the chip. It has fix for the
++ * IP header alignment. Now, the IP header begins at an
++ * aligned address and this wont need an extra copy in the
++ * driver. This performance drawback existed in the previous
++ * versions of the silicon
++ */
++ reg_data_1 = TITAN_GE_READ(0x103c + (port_num << 12));
++ reg_data_1 |= 0x40000000;
++ TITAN_GE_WRITE((0x103c + (port_num << 12)), reg_data_1);
++
++ reg_data_1 |= 0x04000000;
++ TITAN_GE_WRITE((0x103c + (port_num << 12)), reg_data_1);
++
++ mdelay(5);
++
++ reg_data_1 &= ~(0x04000000);
++ TITAN_GE_WRITE((0x103c + (port_num << 12)), reg_data_1);
++
++ mdelay(5);
++
++ reg_data |= 0x0001;
++ TITAN_GE_WRITE((TITAN_GE_TRTG_CONFIG + (port_num << 12)), reg_data);
++
++ /*
++ * Step 4: Start the Tx activity
++ */
++ TITAN_GE_WRITE((TITAN_GE_TMAC_CONFIG_2 + (port_num << 12)), 0xe197);
++#ifdef TITAN_GE_JUMBO_FRAMES
++ TITAN_GE_WRITE((0x1258 + (port_num << 12)), 0x4000);
++#endif
++ reg_data = TITAN_GE_READ(TITAN_GE_TMAC_CONFIG_1 + (port_num << 12));
++ reg_data |= 0x0001; /* Enable TMAC */
++ reg_data |= 0x6c70; /* PAUSE also set */
++
++ TITAN_GE_WRITE((TITAN_GE_TMAC_CONFIG_1 + (port_num << 12)), reg_data);
++
++ udelay(30);
++
++ /* Destination Address drop bit */
++ reg_data = TITAN_GE_READ(TITAN_GE_RMAC_CONFIG_2 + (port_num << 12));
++ reg_data |= 0x218; /* DA_DROP bit and pause */
++ TITAN_GE_WRITE((TITAN_GE_RMAC_CONFIG_2 + (port_num << 12)), reg_data);
++
++ TITAN_GE_WRITE((0x1218 + (port_num << 12)), 0x3);
++
++#ifdef TITAN_GE_JUMBO_FRAMES
++ TITAN_GE_WRITE((0x1208 + (port_num << 12)), 0x4000);
++#endif
++ /* Start the Rx activity */
++ reg_data = TITAN_GE_READ(TITAN_GE_RMAC_CONFIG_1 + (port_num << 12));
++ reg_data |= 0x0001; /* RMAC Enable */
++ reg_data |= 0x0010; /* CRC Check enable */
++ reg_data |= 0x0040; /* Min Frame check enable */
++ reg_data |= 0x4400; /* Max Frame check enable */
++
++ TITAN_GE_WRITE((TITAN_GE_RMAC_CONFIG_1 + (port_num << 12)), reg_data);
++
++ udelay(30);
++
++ /*
++ * Enable the Interrupts for Tx and Rx
++ */
++ reg_data1 = TITAN_GE_READ(TITAN_GE_INTR_XDMA_IE);
++
++ if (port_num == 0) {
++ reg_data1 |= 0x3;
++#ifdef CONFIG_SMP
++ TITAN_GE_WRITE(0x0038, 0x003);
++#else
++ TITAN_GE_WRITE(0x0038, 0x303);
++#endif
++ }
++
++ if (port_num == 1) {
++ reg_data1 |= 0x300;
++ }
++
++ if (port_num == 2)
++ reg_data1 |= 0x30000;
++
++ TITAN_GE_WRITE(TITAN_GE_INTR_XDMA_IE, reg_data1);
++ TITAN_GE_WRITE(0x003c, 0x300);
++
++ if (config_done == 0) {
++ TITAN_GE_WRITE(0x0024, 0x04000024); /* IRQ vector */
++ TITAN_GE_WRITE(0x0020, 0x000fb000); /* INTMSG base */
++ }
++
++ /* Priority */
++ reg_data = TITAN_GE_READ(0x1038 + (port_num << 12));
++ reg_data &= ~(0x00f00000);
++ TITAN_GE_WRITE((0x1038 + (port_num << 12)), reg_data);
++
++ /* Step 5: GMII config */
++ titan_ge_gmii_config(port_num);
++
++ if (config_done == 0) {
++ TITAN_GE_WRITE(0x1a80, 0);
++ config_done = 1;
++ }
++
++ return TITAN_OK;
++}
++
++/*
++ * Function to queue the packet for the Ethernet device
++ */
++static void titan_ge_tx_queue(titan_ge_port_info * titan_ge_eth,
++ struct sk_buff * skb)
++{
++ struct device *device = &titan_ge_device[titan_ge_eth->port_num]->dev;
++ unsigned int curr_desc = titan_ge_eth->tx_curr_desc_q;
++ volatile titan_ge_tx_desc *tx_curr;
++ int port_num = titan_ge_eth->port_num;
++
++ tx_curr = &(titan_ge_eth->tx_desc_area[curr_desc]);
++ tx_curr->buffer_addr =
++ dma_map_single(device, skb->data, skb_headlen(skb),
++ DMA_TO_DEVICE);
++
++ titan_ge_eth->tx_skb[curr_desc] = (struct sk_buff *) skb;
++ tx_curr->buffer_len = skb_headlen(skb);
++
++ /* Last descriptor enables interrupt and changes ownership */
++ tx_curr->cmd_sts = 0x1 | (1 << 15) | (1 << 5);
++
++ /* Kick the XDMA to start the transfer from memory to the FIFO */
++ TITAN_GE_WRITE((0x5044 + (port_num << 8)), 0x1);
++
++ /* Current descriptor updated */
++ titan_ge_eth->tx_curr_desc_q = (curr_desc + 1) % TITAN_GE_TX_QUEUE;
++
++ /* Prefetch the next descriptor */
++ prefetch((const void *)
++ &titan_ge_eth->tx_desc_area[titan_ge_eth->tx_curr_desc_q]);
++}
++
++/*
++ * Actually does the open of the Ethernet device
++ */
++static int titan_ge_eth_open(struct net_device *netdev)
++{
++ titan_ge_port_info *titan_ge_eth = netdev_priv(netdev);
++ unsigned int port_num = titan_ge_eth->port_num;
++ struct device *device = &titan_ge_device[port_num]->dev;
++ unsigned long reg_data;
++ unsigned int phy_reg;
++ int err = 0;
++
++ /* Stop the Rx activity */
++ reg_data = TITAN_GE_READ(TITAN_GE_RMAC_CONFIG_1 + (port_num << 12));
++ reg_data &= ~(0x00000001);
++ TITAN_GE_WRITE((TITAN_GE_RMAC_CONFIG_1 + (port_num << 12)), reg_data);
++
++ /* Clear the port interrupts */
++ TITAN_GE_WRITE((TITAN_GE_CHANNEL0_INTERRUPT + (port_num << 8)), 0x0);
++
++ if (config_done == 0) {
++ TITAN_GE_WRITE(TITAN_GE_INTR_XDMA_CORE_A, 0);
++ TITAN_GE_WRITE(TITAN_GE_INTR_XDMA_CORE_B, 0);
++ }
++
++ /* Set the MAC Address */
++ memcpy(titan_ge_eth->port_mac_addr, netdev->dev_addr, 6);
++
++ if (config_done == 0)
++ titan_port_init(netdev, titan_ge_eth);
++
++ titan_ge_update_afx(titan_ge_eth);
++
++ /* Allocate the Tx ring now */
++ titan_ge_eth->tx_ring_skbs = 0;
++ titan_ge_eth->tx_ring_size = TITAN_GE_TX_QUEUE;
++
++ /* Allocate space in the SRAM for the descriptors */
++ titan_ge_eth->tx_desc_area = (titan_ge_tx_desc *)
++ (titan_ge_sram + TITAN_TX_RING_BYTES * port_num);
++ titan_ge_eth->tx_dma = TITAN_SRAM_BASE + TITAN_TX_RING_BYTES * port_num;
++
++ if (!titan_ge_eth->tx_desc_area) {
++ printk(KERN_ERR
++ "%s: Cannot allocate Tx Ring (size %d bytes) for port %d\n",
++ netdev->name, TITAN_TX_RING_BYTES, port_num);
++ return -ENOMEM;
++ }
++
++ memset(titan_ge_eth->tx_desc_area, 0, titan_ge_eth->tx_desc_area_size);
++
++ /* Now initialize the Tx descriptor ring */
++ titan_ge_init_tx_desc_ring(titan_ge_eth,
++ titan_ge_eth->tx_ring_size,
++ (unsigned long) titan_ge_eth->tx_desc_area,
++ (unsigned long) titan_ge_eth->tx_dma);
++
++ /* Allocate the Rx ring now */
++ titan_ge_eth->rx_ring_size = TITAN_GE_RX_QUEUE;
++ titan_ge_eth->rx_ring_skbs = 0;
++
++ titan_ge_eth->rx_desc_area =
++ (titan_ge_rx_desc *)(titan_ge_sram + 0x1000 + TITAN_RX_RING_BYTES * port_num);
++
++ titan_ge_eth->rx_dma = TITAN_SRAM_BASE + 0x1000 + TITAN_RX_RING_BYTES * port_num;
++
++ if (!titan_ge_eth->rx_desc_area) {
++ printk(KERN_ERR "%s: Cannot allocate Rx Ring (size %d bytes)\n",
++ netdev->name, TITAN_RX_RING_BYTES);
++
++ printk(KERN_ERR "%s: Freeing previously allocated TX queues...",
++ netdev->name);
++
++ dma_free_coherent(device, titan_ge_eth->tx_desc_area_size,
++ (void *) titan_ge_eth->tx_desc_area,
++ titan_ge_eth->tx_dma);
++
++ return -ENOMEM;
++ }
++
++ memset(titan_ge_eth->rx_desc_area, 0, titan_ge_eth->rx_desc_area_size);
++
++ /* Now initialize the Rx ring */
++#ifdef TITAN_GE_JUMBO_FRAMES
++ if ((titan_ge_init_rx_desc_ring
++ (titan_ge_eth, titan_ge_eth->rx_ring_size, TITAN_GE_JUMBO_BUFSIZE,
++ (unsigned long) titan_ge_eth->rx_desc_area, 0,
++ (unsigned long) titan_ge_eth->rx_dma)) == 0)
++#else
++ if ((titan_ge_init_rx_desc_ring
++ (titan_ge_eth, titan_ge_eth->rx_ring_size, TITAN_GE_STD_BUFSIZE,
++ (unsigned long) titan_ge_eth->rx_desc_area, 0,
++ (unsigned long) titan_ge_eth->rx_dma)) == 0)
++#endif
++ panic("%s: Error initializing RX Ring\n", netdev->name);
++
++ /* Fill the Rx ring with the SKBs */
++ titan_ge_port_start(netdev, titan_ge_eth);
++
++ /*
++ * Check if Interrupt Coalscing needs to be turned on. The
++ * values specified in the register is multiplied by
++ * (8 x 64 nanoseconds) to determine when an interrupt should
++ * be sent to the CPU.
++ */
++
++ if (TITAN_GE_TX_COAL) {
++ titan_ge_eth->tx_int_coal =
++ titan_ge_tx_coal(TITAN_GE_TX_COAL, port_num);
++ }
++
++ err = titan_ge_mdio_read(port_num, TITAN_GE_MDIO_PHY_STATUS, &phy_reg);
++ if (err == TITAN_GE_MDIO_ERROR) {
++ printk(KERN_ERR
++ "Could not read PHY control register 0x11 \n");
++ return TITAN_ERROR;
++ }
++ if (!(phy_reg & 0x0400)) {
++ netif_carrier_off(netdev);
++ netif_stop_queue(netdev);
++ return TITAN_ERROR;
++ } else {
++ netif_carrier_on(netdev);
++ netif_start_queue(netdev);
++ }
++
++ return TITAN_OK;
++}
++
++/*
++ * Queue the packet for Tx. Currently no support for zero copy,
++ * checksum offload and Scatter Gather. The chip does support
++ * Scatter Gather only. But, that wont help here since zero copy
++ * requires support for Tx checksumming also.
++ */
++int titan_ge_start_xmit(struct sk_buff *skb, struct net_device *netdev)
++{
++ titan_ge_port_info *titan_ge_eth = netdev_priv(netdev);
++ unsigned long flags;
++ struct net_device_stats *stats;
++//printk("titan_ge_start_xmit\n");
++
++ stats = &titan_ge_eth->stats;
++ spin_lock_irqsave(&titan_ge_eth->lock, flags);
++
++ if ((TITAN_GE_TX_QUEUE - titan_ge_eth->tx_ring_skbs) <=
++ (skb_shinfo(skb)->nr_frags + 1)) {
++ netif_stop_queue(netdev);
++ spin_unlock_irqrestore(&titan_ge_eth->lock, flags);
++ printk(KERN_ERR "Tx OOD \n");
++ return 1;
++ }
++
++ titan_ge_tx_queue(titan_ge_eth, skb);
++ titan_ge_eth->tx_ring_skbs++;
++
++ if (TITAN_GE_TX_QUEUE <= (titan_ge_eth->tx_ring_skbs + 4)) {
++ spin_unlock_irqrestore(&titan_ge_eth->lock, flags);
++ titan_ge_free_tx_queue(titan_ge_eth);
++ spin_lock_irqsave(&titan_ge_eth->lock, flags);
++ }
++
++ stats->tx_bytes += skb->len;
++ stats->tx_packets++;
++
++ spin_unlock_irqrestore(&titan_ge_eth->lock, flags);
++
++ netdev->trans_start = jiffies;
++
++ return 0;
++}
++
++/*
++ * Actually does the Rx. Rx side checksumming supported.
++ */
++static int titan_ge_rx(struct net_device *netdev, int port_num,
++ titan_ge_port_info * titan_ge_port,
++ titan_ge_packet * packet)
++{
++ int rx_curr_desc, rx_used_desc;
++ volatile titan_ge_rx_desc *rx_desc;
++
++ rx_curr_desc = titan_ge_port->rx_curr_desc_q;
++ rx_used_desc = titan_ge_port->rx_used_desc_q;
++
++ if (((rx_curr_desc + 1) % TITAN_GE_RX_QUEUE) == rx_used_desc)
++ return TITAN_ERROR;
++
++ rx_desc = &(titan_ge_port->rx_desc_area[rx_curr_desc]);
++
++ if (rx_desc->cmd_sts & TITAN_GE_RX_BUFFER_OWNED)
++ return TITAN_ERROR;
++
++ packet->skb = titan_ge_port->rx_skb[rx_curr_desc];
++ packet->len = (rx_desc->cmd_sts & 0x7fff);
++
++ /*
++ * At this point, we dont know if the checksumming
++ * actually helps relieve CPU. So, keep it for
++ * port 0 only
++ */
++ packet->checksum = ntohs((rx_desc->buffer & 0xffff0000) >> 16);
++ packet->cmd_sts = rx_desc->cmd_sts;
++
++ titan_ge_port->rx_curr_desc_q = (rx_curr_desc + 1) % TITAN_GE_RX_QUEUE;
++
++ /* Prefetch the next descriptor */
++ prefetch((const void *)
++ &titan_ge_port->rx_desc_area[titan_ge_port->rx_curr_desc_q + 1]);
++
++ return TITAN_OK;
++}
++
++/*
++ * Free the Tx queue of the used SKBs
++ */
++static int titan_ge_free_tx_queue(titan_ge_port_info *titan_ge_eth)
++{
++ unsigned long flags;
++
++ /* Take the lock */
++ spin_lock_irqsave(&(titan_ge_eth->lock), flags);
++
++ while (titan_ge_return_tx_desc(titan_ge_eth, titan_ge_eth->port_num) == 0)
++ if (titan_ge_eth->tx_ring_skbs != 1)
++ titan_ge_eth->tx_ring_skbs--;
++
++ spin_unlock_irqrestore(&titan_ge_eth->lock, flags);
++
++ return TITAN_OK;
++}
++
++/*
++ * Threshold beyond which we do the cleaning of
++ * Tx queue and new allocation for the Rx
++ * queue
++ */
++#define TX_THRESHOLD 4
++#define RX_THRESHOLD 10
++
++/*
++ * Receive the packets and send it to the kernel.
++ */
++static int titan_ge_receive_queue(struct net_device *netdev, unsigned int max)
++{
++ titan_ge_port_info *titan_ge_eth = netdev_priv(netdev);
++ unsigned int port_num = titan_ge_eth->port_num;
++ titan_ge_packet packet;
++ struct net_device_stats *stats;
++ struct sk_buff *skb;
++ unsigned long received_packets = 0;
++ unsigned int ack;
++
++ stats = &titan_ge_eth->stats;
++
++ while ((--max)
++ && (titan_ge_rx(netdev, port_num, titan_ge_eth, &packet) == TITAN_OK)) {
++ skb = (struct sk_buff *) packet.skb;
++
++ titan_ge_eth->rx_ring_skbs--;
++
++ if (--titan_ge_eth->rx_work_limit < 0)
++ break;
++ received_packets++;
++
++ stats->rx_packets++;
++ stats->rx_bytes += packet.len;
++
++ if ((packet.cmd_sts & TITAN_GE_RX_PERR) ||
++ (packet.cmd_sts & TITAN_GE_RX_OVERFLOW_ERROR) ||
++ (packet.cmd_sts & TITAN_GE_RX_TRUNC) ||
++ (packet.cmd_sts & TITAN_GE_RX_CRC_ERROR)) {
++ stats->rx_dropped++;
++ dev_kfree_skb_any(skb);
++
++ continue;
++ }
++ /*
++ * Either support fast path or slow path. Decision
++ * making can really slow down the performance. The
++ * idea is to cut down the number of checks and improve
++ * the fastpath.
++ */
++
++ skb_put(skb, packet.len - 2);
++
++ /*
++ * Increment data pointer by two since thats where
++ * the MAC starts
++ */
++ skb_reserve(skb, 2);
++ skb->protocol = eth_type_trans(skb, netdev);
++ netif_receive_skb(skb);
++
++ if (titan_ge_eth->rx_threshold > RX_THRESHOLD) {
++ ack = titan_ge_rx_task(netdev, titan_ge_eth);
++ TITAN_GE_WRITE((0x5048 + (port_num << 8)), ack);
++ titan_ge_eth->rx_threshold = 0;
++ } else
++ titan_ge_eth->rx_threshold++;
++
++ if (titan_ge_eth->tx_threshold > TX_THRESHOLD) {
++ titan_ge_eth->tx_threshold = 0;
++ titan_ge_free_tx_queue(titan_ge_eth);
++ }
++ else
++ titan_ge_eth->tx_threshold++;
++
++ }
++ return received_packets;
++}
++
++
++/*
++ * Enable the Rx side interrupts
++ */
++static void titan_ge_enable_int(unsigned int port_num,
++ titan_ge_port_info *titan_ge_eth,
++ struct net_device *netdev)
++{
++ unsigned long reg_data = TITAN_GE_READ(TITAN_GE_INTR_XDMA_IE);
++
++ if (port_num == 0)
++ reg_data |= 0x3;
++ if (port_num == 1)
++ reg_data |= 0x300;
++ if (port_num == 2)
++ reg_data |= 0x30000;
++
++ /* Re-enable interrupts */
++ TITAN_GE_WRITE(TITAN_GE_INTR_XDMA_IE, reg_data);
++}
++
++/*
++ * Main function to handle the polling for Rx side NAPI.
++ * Receive interrupts have been disabled at this point.
++ * The poll schedules the transmit followed by receive.
++ */
++static int titan_ge_poll(struct net_device *netdev, int *budget)
++{
++ titan_ge_port_info *titan_ge_eth = netdev_priv(netdev);
++ int port_num = titan_ge_eth->port_num;
++ int work_done = 0;
++ unsigned long flags, status;
++
++ titan_ge_eth->rx_work_limit = *budget;
++ if (titan_ge_eth->rx_work_limit > netdev->quota)
++ titan_ge_eth->rx_work_limit = netdev->quota;
++
++ do {
++ /* Do the transmit cleaning work here */
++ titan_ge_free_tx_queue(titan_ge_eth);
++
++ /* Ack the Rx interrupts */
++ if (port_num == 0)
++ TITAN_GE_WRITE(TITAN_GE_INTR_XDMA_CORE_A, 0x3);
++ if (port_num == 1)
++ TITAN_GE_WRITE(TITAN_GE_INTR_XDMA_CORE_A, 0x300);
++ if (port_num == 2)
++ TITAN_GE_WRITE(TITAN_GE_INTR_XDMA_CORE_A, 0x30000);
++
++ work_done += titan_ge_receive_queue(netdev, 0);
++
++ /* Out of quota and there is work to be done */
++ if (titan_ge_eth->rx_work_limit < 0)
++ goto not_done;
++
++ /* Receive alloc_skb could lead to OOM */
++ if (oom_flag == 1) {
++ oom_flag = 0;
++ goto oom;
++ }
++
++ status = TITAN_GE_READ(TITAN_GE_INTR_XDMA_CORE_A);
++ } while (status & 0x30300);
++
++ /* If we are here, then no more interrupts to process */
++ goto done;
++
++not_done:
++ *budget -= work_done;
++ netdev->quota -= work_done;
++ return 1;
++
++oom:
++ printk(KERN_ERR "OOM \n");
++ netif_rx_complete(netdev);
++ return 0;
++
++done:
++ /*
++ * No more packets on the poll list. Turn the interrupts
++ * back on and we should be able to catch the new
++ * packets in the interrupt handler
++ */
++ if (!work_done)
++ work_done = 1;
++
++ *budget -= work_done;
++ netdev->quota -= work_done;
++
++ spin_lock_irqsave(&titan_ge_eth->lock, flags);
++
++ /* Remove us from the poll list */
++ netif_rx_complete(netdev);
++
++ /* Re-enable interrupts */
++ titan_ge_enable_int(port_num, titan_ge_eth, netdev);
++
++ spin_unlock_irqrestore(&titan_ge_eth->lock, flags);
++
++ return 0;
++}
++
++/*
++ * Close the network device
++ */
++int titan_ge_stop(struct net_device *netdev)
++{
++ titan_ge_port_info *titan_ge_eth = netdev_priv(netdev);
++
++ spin_lock_irq(&(titan_ge_eth->lock));
++ titan_ge_eth_stop(netdev);
++ free_irq(netdev->irq, netdev);
++ spin_unlock_irq(&titan_ge_eth->lock);
++
++ return TITAN_OK;
++}
++
++/*
++ * Free the Tx ring
++ */
++static void titan_ge_free_tx_rings(struct net_device *netdev)
++{
++ titan_ge_port_info *titan_ge_eth = netdev_priv(netdev);
++ unsigned int port_num = titan_ge_eth->port_num;
++ unsigned int curr;
++ unsigned long reg_data;
++
++ /* Stop the Tx DMA */
++ reg_data = TITAN_GE_READ(TITAN_GE_CHANNEL0_CONFIG +
++ (port_num << 8));
++ reg_data |= 0xc0000000;
++ TITAN_GE_WRITE((TITAN_GE_CHANNEL0_CONFIG +
++ (port_num << 8)), reg_data);
++
++ /* Disable the TMAC */
++ reg_data = TITAN_GE_READ(TITAN_GE_TMAC_CONFIG_1 +
++ (port_num << 12));
++ reg_data &= ~(0x00000001);
++ TITAN_GE_WRITE((TITAN_GE_TMAC_CONFIG_1 +
++ (port_num << 12)), reg_data);
++
++ for (curr = 0;
++ (titan_ge_eth->tx_ring_skbs) && (curr < TITAN_GE_TX_QUEUE);
++ curr++) {
++ if (titan_ge_eth->tx_skb[curr]) {
++ dev_kfree_skb(titan_ge_eth->tx_skb[curr]);
++ titan_ge_eth->tx_ring_skbs--;
++ }
++ }
++
++ if (titan_ge_eth->tx_ring_skbs != 0)
++ printk
++ ("%s: Error on Tx descriptor free - could not free %d"
++ " descriptors\n", netdev->name,
++ titan_ge_eth->tx_ring_skbs);
++
++#ifndef TITAN_RX_RING_IN_SRAM
++ dma_free_coherent(&titan_ge_device[port_num]->dev,
++ titan_ge_eth->tx_desc_area_size,
++ (void *) titan_ge_eth->tx_desc_area,
++ titan_ge_eth->tx_dma);
++#endif
++}
++
++/*
++ * Free the Rx ring
++ */
++static void titan_ge_free_rx_rings(struct net_device *netdev)
++{
++ titan_ge_port_info *titan_ge_eth = netdev_priv(netdev);
++ unsigned int port_num = titan_ge_eth->port_num;
++ unsigned int curr;
++ unsigned long reg_data;
++
++ /* Stop the Rx DMA */
++ reg_data = TITAN_GE_READ(TITAN_GE_CHANNEL0_CONFIG +
++ (port_num << 8));
++ reg_data |= 0x000c0000;
++ TITAN_GE_WRITE((TITAN_GE_CHANNEL0_CONFIG +
++ (port_num << 8)), reg_data);
++
++ /* Disable the RMAC */
++ reg_data = TITAN_GE_READ(TITAN_GE_RMAC_CONFIG_1 +
++ (port_num << 12));
++ reg_data &= ~(0x00000001);
++ TITAN_GE_WRITE((TITAN_GE_RMAC_CONFIG_1 +
++ (port_num << 12)), reg_data);
++
++ for (curr = 0;
++ titan_ge_eth->rx_ring_skbs && (curr < TITAN_GE_RX_QUEUE);
++ curr++) {
++ if (titan_ge_eth->rx_skb[curr]) {
++ dev_kfree_skb(titan_ge_eth->rx_skb[curr]);
++ titan_ge_eth->rx_ring_skbs--;
++ }
++ }
++
++ if (titan_ge_eth->rx_ring_skbs != 0)
++ printk(KERN_ERR
++ "%s: Error in freeing Rx Ring. %d skb's still"
++ " stuck in RX Ring - ignoring them\n", netdev->name,
++ titan_ge_eth->rx_ring_skbs);
++
++#ifndef TITAN_RX_RING_IN_SRAM
++ dma_free_coherent(&titan_ge_device[port_num]->dev,
++ titan_ge_eth->rx_desc_area_size,
++ (void *) titan_ge_eth->rx_desc_area,
++ titan_ge_eth->rx_dma);
++#endif
++}
++
++/*
++ * Actually does the stop of the Ethernet device
++ */
++static void titan_ge_eth_stop(struct net_device *netdev)
++{
++ titan_ge_port_info *titan_ge_eth = netdev_priv(netdev);
++
++ netif_stop_queue(netdev);
++
++ titan_ge_port_reset(titan_ge_eth->port_num);
++
++ titan_ge_free_tx_rings(netdev);
++ titan_ge_free_rx_rings(netdev);
++
++ /* Disable the Tx and Rx Interrupts for all channels */
++ TITAN_GE_WRITE(TITAN_GE_INTR_XDMA_IE, 0x0);
++}
++
++/*
++ * Update the MAC address. Note that we have to write the
++ * address in three station registers, 16 bits each. And this
++ * has to be done for TMAC and RMAC
++ */
++static void titan_ge_update_mac_address(struct net_device *netdev)
++{
++ titan_ge_port_info *titan_ge_eth = netdev_priv(netdev);
++ unsigned int port_num = titan_ge_eth->port_num;
++ u8 p_addr[6];
++
++ memcpy(titan_ge_eth->port_mac_addr, netdev->dev_addr, 6);
++ memcpy(p_addr, netdev->dev_addr, 6);
++
++ /* Update the Address Filtering Match tables */
++ titan_ge_update_afx(titan_ge_eth);
++
++ printk("Station MAC : %d %d %d %d %d %d \n",
++ p_addr[5], p_addr[4], p_addr[3],
++ p_addr[2], p_addr[1], p_addr[0]);
++
++ /* Set the MAC address here for TMAC and RMAC */
++ TITAN_GE_WRITE((TITAN_GE_TMAC_STATION_HI + (port_num << 12)),
++ ((p_addr[5] << 8) | p_addr[4]));
++ TITAN_GE_WRITE((TITAN_GE_TMAC_STATION_MID + (port_num << 12)),
++ ((p_addr[3] << 8) | p_addr[2]));
++ TITAN_GE_WRITE((TITAN_GE_TMAC_STATION_LOW + (port_num << 12)),
++ ((p_addr[1] << 8) | p_addr[0]));
++
++ TITAN_GE_WRITE((TITAN_GE_RMAC_STATION_HI + (port_num << 12)),
++ ((p_addr[5] << 8) | p_addr[4]));
++ TITAN_GE_WRITE((TITAN_GE_RMAC_STATION_MID + (port_num << 12)),
++ ((p_addr[3] << 8) | p_addr[2]));
++ TITAN_GE_WRITE((TITAN_GE_RMAC_STATION_LOW + (port_num << 12)),
++ ((p_addr[1] << 8) | p_addr[0]));
++}
++
++/*
++ * Set the MAC address of the Ethernet device
++ */
++static int titan_ge_set_mac_address(struct net_device *dev, void *addr)
++{
++ titan_ge_port_info *tp = netdev_priv(dev);
++ struct sockaddr *sa = addr;
++
++ memcpy(dev->dev_addr, sa->sa_data, dev->addr_len);
++
++ spin_lock_irq(&tp->lock);
++ titan_ge_update_mac_address(dev);
++ spin_unlock_irq(&tp->lock);
++
++ return 0;
++}
++
++/*
++ * Get the Ethernet device stats
++ */
++static struct net_device_stats *titan_ge_get_stats(struct net_device *netdev)
++{
++ titan_ge_port_info *titan_ge_eth = netdev_priv(netdev);
++
++ return &titan_ge_eth->stats;
++}
++
++/*
++ * Initialize the Rx descriptor ring for the Titan Ge
++ */
++static int titan_ge_init_rx_desc_ring(titan_ge_port_info * titan_eth_port,
++ int rx_desc_num,
++ int rx_buff_size,
++ unsigned long rx_desc_base_addr,
++ unsigned long rx_buff_base_addr,
++ unsigned long rx_dma)
++{
++ volatile titan_ge_rx_desc *rx_desc;
++ unsigned long buffer_addr;
++ int index;
++ unsigned long titan_ge_rx_desc_bus = rx_dma;
++
++ buffer_addr = rx_buff_base_addr;
++ rx_desc = (titan_ge_rx_desc *) rx_desc_base_addr;
++
++ /* Check alignment */
++ if (rx_buff_base_addr & 0xF)
++ return 0;
++
++ /* Check Rx buffer size */
++ if ((rx_buff_size < 8) || (rx_buff_size > TITAN_GE_MAX_RX_BUFFER))
++ return 0;
++
++ /* 64-bit alignment
++ if ((rx_buff_base_addr + rx_buff_size) & 0x7)
++ return 0; */
++
++ /* Initialize the Rx desc ring */
++ for (index = 0; index < rx_desc_num; index++) {
++ titan_ge_rx_desc_bus += sizeof(titan_ge_rx_desc);
++ rx_desc[index].cmd_sts = 0;
++ rx_desc[index].buffer_addr = buffer_addr;
++ titan_eth_port->rx_skb[index] = NULL;
++ buffer_addr += rx_buff_size;
++ }
++
++ titan_eth_port->rx_curr_desc_q = 0;
++ titan_eth_port->rx_used_desc_q = 0;
++
++ titan_eth_port->rx_desc_area = (titan_ge_rx_desc *) rx_desc_base_addr;
++ titan_eth_port->rx_desc_area_size =
++ rx_desc_num * sizeof(titan_ge_rx_desc);
++
++ titan_eth_port->rx_dma = rx_dma;
++
++ return TITAN_OK;
++}
++
++/*
++ * Initialize the Tx descriptor ring. Descriptors in the SRAM
++ */
++static int titan_ge_init_tx_desc_ring(titan_ge_port_info * titan_ge_port,
++ int tx_desc_num,
++ unsigned long tx_desc_base_addr,
++ unsigned long tx_dma)
++{
++ titan_ge_tx_desc *tx_desc;
++ int index;
++ unsigned long titan_ge_tx_desc_bus = tx_dma;
++
++ if (tx_desc_base_addr & 0xF)
++ return 0;
++
++ tx_desc = (titan_ge_tx_desc *) tx_desc_base_addr;
++
++ for (index = 0; index < tx_desc_num; index++) {
++ titan_ge_port->tx_dma_array[index] =
++ (dma_addr_t) titan_ge_tx_desc_bus;
++ titan_ge_tx_desc_bus += sizeof(titan_ge_tx_desc);
++ tx_desc[index].cmd_sts = 0x0000;
++ tx_desc[index].buffer_len = 0;
++ tx_desc[index].buffer_addr = 0x00000000;
++ titan_ge_port->tx_skb[index] = NULL;
++ }
++
++ titan_ge_port->tx_curr_desc_q = 0;
++ titan_ge_port->tx_used_desc_q = 0;
++
++ titan_ge_port->tx_desc_area = (titan_ge_tx_desc *) tx_desc_base_addr;
++ titan_ge_port->tx_desc_area_size =
++ tx_desc_num * sizeof(titan_ge_tx_desc);
++
++ titan_ge_port->tx_dma = tx_dma;
++ return TITAN_OK;
++}
++
++/*
++ * Initialize the device as an Ethernet device
++ */
++static int __init titan_ge_probe(struct device *device)
++{
++ titan_ge_port_info *titan_ge_eth;
++ struct net_device *netdev;
++ int port = to_platform_device(device)->id;
++ int err;
++
++ netdev = alloc_etherdev(sizeof(titan_ge_port_info));
++ if (!netdev) {
++ err = -ENODEV;
++ goto out;
++ }
++
++ netdev->open = titan_ge_open;
++ netdev->stop = titan_ge_stop;
++ netdev->hard_start_xmit = titan_ge_start_xmit;
++ netdev->get_stats = titan_ge_get_stats;
++ netdev->set_multicast_list = titan_ge_set_multi;
++ netdev->set_mac_address = titan_ge_set_mac_address;
++
++ /* Tx timeout */
++ netdev->tx_timeout = titan_ge_tx_timeout;
++ netdev->watchdog_timeo = 2 * HZ;
++
++ /* Set these to very high values */
++ netdev->poll = titan_ge_poll;
++ netdev->weight = 64;
++
++ netdev->tx_queue_len = TITAN_GE_TX_QUEUE;
++ netif_carrier_off(netdev);
++ netdev->base_addr = 0;
++
++ netdev->change_mtu = titan_ge_change_mtu;
++
++ titan_ge_eth = netdev_priv(netdev);
++ /* Allocation of memory for the driver structures */
++
++ titan_ge_eth->port_num = port;
++
++ /* Configure the Tx timeout handler */
++ INIT_WORK(&titan_ge_eth->tx_timeout_task,
++ (void (*)(void *)) titan_ge_tx_timeout_task, netdev);
++
++ spin_lock_init(&titan_ge_eth->lock);
++
++ /* set MAC addresses */
++ memcpy(netdev->dev_addr, titan_ge_mac_addr_base, 6);
++ netdev->dev_addr[5] += port;
++
++ err = register_netdev(netdev);
++
++ if (err)
++ goto out_free_netdev;
++
++ printk(KERN_NOTICE
++ "%s: port %d with MAC address %02x:%02x:%02x:%02x:%02x:%02x\n",
++ netdev->name, port, netdev->dev_addr[0],
++ netdev->dev_addr[1], netdev->dev_addr[2],
++ netdev->dev_addr[3], netdev->dev_addr[4],
++ netdev->dev_addr[5]);
++
++ printk(KERN_NOTICE "Rx NAPI supported, Tx Coalescing ON \n");
++
++ return 0;
++
++out_free_netdev:
++ kfree(netdev);
++
++out:
++ return err;
++}
++
++static void __devexit titan_device_remove(struct device *device)
++{
++}
++
++/*
++ * Reset the Ethernet port
++ */
++static void titan_ge_port_reset(unsigned int port_num)
++{
++ unsigned int reg_data;
++
++ /* Stop the Tx port activity */
++ reg_data = TITAN_GE_READ(TITAN_GE_TMAC_CONFIG_1 +
++ (port_num << 12));
++ reg_data &= ~(0x0001);
++ TITAN_GE_WRITE((TITAN_GE_TMAC_CONFIG_1 +
++ (port_num << 12)), reg_data);
++
++ /* Stop the Rx port activity */
++ reg_data = TITAN_GE_READ(TITAN_GE_RMAC_CONFIG_1 +
++ (port_num << 12));
++ reg_data &= ~(0x0001);
++ TITAN_GE_WRITE((TITAN_GE_RMAC_CONFIG_1 +
++ (port_num << 12)), reg_data);
++
++ return;
++}
++
++/*
++ * Return the Tx desc after use by the XDMA
++ */
++static int titan_ge_return_tx_desc(titan_ge_port_info * titan_ge_eth, int port)
++{
++ int tx_desc_used;
++ struct sk_buff *skb;
++
++ tx_desc_used = titan_ge_eth->tx_used_desc_q;
++
++ /* return right away */
++ if (tx_desc_used == titan_ge_eth->tx_curr_desc_q)
++ return TITAN_ERROR;
++
++ /* Now the critical stuff */
++ skb = titan_ge_eth->tx_skb[tx_desc_used];
++
++ dev_kfree_skb_any(skb);
++
++ titan_ge_eth->tx_skb[tx_desc_used] = NULL;
++ titan_ge_eth->tx_used_desc_q =
++ (tx_desc_used + 1) % TITAN_GE_TX_QUEUE;
++
++ return 0;
++}
++
++/*
++ * Coalescing for the Tx path
++ */
++static unsigned long titan_ge_tx_coal(unsigned long delay, int port)
++{
++ unsigned long rx_delay;
++
++ rx_delay = TITAN_GE_READ(TITAN_GE_INT_COALESCING);
++ delay = (delay << 16) | rx_delay;
++
++ TITAN_GE_WRITE(TITAN_GE_INT_COALESCING, delay);
++ TITAN_GE_WRITE(0x5038, delay);
++
++ return delay;
++}
++
++static struct device_driver titan_soc_driver = {
++ .name = titan_string,
++ .bus = &platform_bus_type,
++ .probe = titan_ge_probe,
++ .remove = __devexit_p(titan_device_remove),
++};
++
++static void titan_platform_release (struct device *device)
++{
++ struct platform_device *pldev;
++
++ /* free device */
++ pldev = to_platform_device (device);
++ kfree (pldev);
++}
++
++/*
++ * Register the Titan GE with the kernel
++ */
++static int __init titan_ge_init_module(void)
++{
++ struct platform_device *pldev;
++ unsigned int version, device;
++ int i;
++
++ printk(KERN_NOTICE
++ "PMC-Sierra TITAN 10/100/1000 Ethernet Driver \n");
++
++ titan_ge_base = (unsigned long) ioremap(TITAN_GE_BASE, TITAN_GE_SIZE);
++ if (!titan_ge_base) {
++ printk("Mapping Titan GE failed\n");
++ goto out;
++ }
++
++ device = TITAN_GE_READ(TITAN_GE_DEVICE_ID);
++ version = (device & 0x000f0000) >> 16;
++ device &= 0x0000ffff;
++
++ printk(KERN_NOTICE "Device Id : %x, Version : %x \n", device, version);
++
++#ifdef TITAN_RX_RING_IN_SRAM
++ titan_ge_sram = (unsigned long) ioremap(TITAN_SRAM_BASE,
++ TITAN_SRAM_SIZE);
++ if (!titan_ge_sram) {
++ printk("Mapping Titan SRAM failed\n");
++ goto out_unmap_ge;
++ }
++#endif
++
++ if (driver_register(&titan_soc_driver)) {
++ printk(KERN_ERR "Driver registration failed\n");
++ goto out_unmap_sram;
++ }
++
++ for (i = 0; i < 3; i++) {
++ titan_ge_device[i] = NULL;
++
++ if (!(pldev = kmalloc (sizeof (*pldev), GFP_KERNEL)))
++ continue;
++
++ memset (pldev, 0, sizeof (*pldev));
++ pldev->name = titan_string;
++ pldev->id = i;
++ pldev->dev.release = titan_platform_release;
++ titan_ge_device[i] = pldev;
++
++ if (platform_device_register (pldev)) {
++ kfree (pldev);
++ titan_ge_device[i] = NULL;
++ continue;
++ }
++
++ if (!pldev->dev.driver) {
++ /*
++ * The driver was not bound to this device, there was
++ * no hardware at this address. Unregister it, as the
++ * release fuction will take care of freeing the
++ * allocated structure
++ */
++ titan_ge_device[i] = NULL;
++ platform_device_unregister (pldev);
++ }
++ }
++
++ return 0;
++
++out_unmap_sram:
++ iounmap((void *)titan_ge_sram);
++
++out_unmap_ge:
++ iounmap((void *)titan_ge_base);
++
++out:
++ return -ENOMEM;
++}
++
++/*
++ * Unregister the Titan GE from the kernel
++ */
++static void __exit titan_ge_cleanup_module(void)
++{
++ int i;
++
++ driver_unregister(&titan_soc_driver);
++
++ for (i = 0; i < 3; i++) {
++ if (titan_ge_device[i]) {
++ platform_device_unregister (titan_ge_device[i]);
++ titan_ge_device[i] = NULL;
++ }
++ }
++
++ iounmap((void *)titan_ge_sram);
++ iounmap((void *)titan_ge_base);
++}
++
++MODULE_AUTHOR("Manish Lachwani <lachwani@pmc-sierra.com>");
++MODULE_DESCRIPTION("Titan GE Ethernet driver");
++MODULE_LICENSE("GPL");
++
++module_init(titan_ge_init_module);
++module_exit(titan_ge_cleanup_module);
+diff -Nurd linux-2.6.24/drivers/net/titan_ge.h mer-smartq-kernel/drivers/net/titan_ge.h
+--- linux-2.6.24/drivers/net/titan_ge.h 1970-01-01 01:00:00.000000000 +0100
++++ mer-smartq-kernel/drivers/net/titan_ge.h 2009-11-17 12:13:31.000000000 +0100
+@@ -0,0 +1,415 @@
++#ifndef _TITAN_GE_H_
++#define _TITAN_GE_H_
++
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/spinlock.h>
++#include <asm/byteorder.h>
++
++/*
++ * These functions should be later moved to a more generic location since there
++ * will be others accessing it also
++ */
++
++/*
++ * This is the way it works: LKB5 Base is at 0x0128. TITAN_BASE is defined in
++ * include/asm/titan_dep.h. TITAN_GE_BASE is the value in the TITAN_GE_LKB5
++ * register.
++ */
++
++#define TITAN_GE_BASE 0xfe000000UL
++#define TITAN_GE_SIZE 0x10000UL
++
++extern unsigned long titan_ge_base;
++
++#define TITAN_GE_WRITE(offset, data) \
++ *(volatile u32 *)(titan_ge_base + (offset)) = (data)
++
++#define TITAN_GE_READ(offset) *(volatile u32 *)(titan_ge_base + (offset))
++
++#ifndef msec_delay
++#define msec_delay(x) do { if(in_interrupt()) { \
++ /* Don't mdelay in interrupt context! */ \
++ BUG(); \
++ } else { \
++ set_current_state(TASK_UNINTERRUPTIBLE); \
++ schedule_timeout((x * HZ)/1000); \
++ } } while(0)
++#endif
++
++#define TITAN_GE_PORT_0
++
++#define TITAN_SRAM_BASE ((OCD_READ(RM9000x2_OCD_LKB13) & ~1) << 4)
++#define TITAN_SRAM_SIZE 0x2000UL
++
++/*
++ * We may need these constants
++ */
++#define TITAN_BIT0 0x00000001
++#define TITAN_BIT1 0x00000002
++#define TITAN_BIT2 0x00000004
++#define TITAN_BIT3 0x00000008
++#define TITAN_BIT4 0x00000010
++#define TITAN_BIT5 0x00000020
++#define TITAN_BIT6 0x00000040
++#define TITAN_BIT7 0x00000080
++#define TITAN_BIT8 0x00000100
++#define TITAN_BIT9 0x00000200
++#define TITAN_BIT10 0x00000400
++#define TITAN_BIT11 0x00000800
++#define TITAN_BIT12 0x00001000
++#define TITAN_BIT13 0x00002000
++#define TITAN_BIT14 0x00004000
++#define TITAN_BIT15 0x00008000
++#define TITAN_BIT16 0x00010000
++#define TITAN_BIT17 0x00020000
++#define TITAN_BIT18 0x00040000
++#define TITAN_BIT19 0x00080000
++#define TITAN_BIT20 0x00100000
++#define TITAN_BIT21 0x00200000
++#define TITAN_BIT22 0x00400000
++#define TITAN_BIT23 0x00800000
++#define TITAN_BIT24 0x01000000
++#define TITAN_BIT25 0x02000000
++#define TITAN_BIT26 0x04000000
++#define TITAN_BIT27 0x08000000
++#define TITAN_BIT28 0x10000000
++#define TITAN_BIT29 0x20000000
++#define TITAN_BIT30 0x40000000
++#define TITAN_BIT31 0x80000000
++
++/* Flow Control */
++#define TITAN_GE_FC_NONE 0x0
++#define TITAN_GE_FC_FULL 0x1
++#define TITAN_GE_FC_TX_PAUSE 0x2
++#define TITAN_GE_FC_RX_PAUSE 0x3
++
++/* Duplex Settings */
++#define TITAN_GE_FULL_DUPLEX 0x1
++#define TITAN_GE_HALF_DUPLEX 0x2
++
++/* Speed settings */
++#define TITAN_GE_SPEED_1000 0x1
++#define TITAN_GE_SPEED_100 0x2
++#define TITAN_GE_SPEED_10 0x3
++
++/* Debugging info only */
++#undef TITAN_DEBUG
++
++/* Keep the rings in the Titan's SSRAM */
++#define TITAN_RX_RING_IN_SRAM
++
++#ifdef CONFIG_64BIT
++#define TITAN_GE_IE_MASK 0xfffffffffb001b64
++#define TITAN_GE_IE_STATUS 0xfffffffffb001b60
++#else
++#define TITAN_GE_IE_MASK 0xfb001b64
++#define TITAN_GE_IE_STATUS 0xfb001b60
++#endif
++
++/* Support for Jumbo Frames */
++#undef TITAN_GE_JUMBO_FRAMES
++
++/* Rx buffer size */
++#ifdef TITAN_GE_JUMBO_FRAMES
++#define TITAN_GE_JUMBO_BUFSIZE 9080
++#else
++#define TITAN_GE_STD_BUFSIZE 1580
++#endif
++
++/*
++ * Tx and Rx Interrupt Coalescing parameter. These values are
++ * for 1 Ghz processor. Rx coalescing can be taken care of
++ * by NAPI. NAPI is adaptive and hence useful. Tx coalescing
++ * is not adaptive. Hence, these values need to be adjusted
++ * based on load, CPU speed etc.
++ */
++#define TITAN_GE_RX_COAL 150
++#define TITAN_GE_TX_COAL 300
++
++#if defined(__BIG_ENDIAN)
++
++/* Define the Rx descriptor */
++typedef struct eth_rx_desc {
++ u32 reserved; /* Unused */
++ u32 buffer_addr; /* CPU buffer address */
++ u32 cmd_sts; /* Command and Status */
++ u32 buffer; /* XDMA buffer address */
++} titan_ge_rx_desc;
++
++/* Define the Tx descriptor */
++typedef struct eth_tx_desc {
++ u16 cmd_sts; /* Command, Status and Buffer count */
++ u16 buffer_len; /* Length of the buffer */
++ u32 buffer_addr; /* Physical address of the buffer */
++} titan_ge_tx_desc;
++
++#elif defined(__LITTLE_ENDIAN)
++
++/* Define the Rx descriptor */
++typedef struct eth_rx_desc {
++ u32 buffer_addr; /* CPU buffer address */
++ u32 reserved; /* Unused */
++ u32 buffer; /* XDMA buffer address */
++ u32 cmd_sts; /* Command and Status */
++} titan_ge_rx_desc;
++
++/* Define the Tx descriptor */
++typedef struct eth_tx_desc {
++ u32 buffer_addr; /* Physical address of the buffer */
++ u16 buffer_len; /* Length of the buffer */
++ u16 cmd_sts; /* Command, Status and Buffer count */
++} titan_ge_tx_desc;
++#endif
++
++/* Default Tx Queue Size */
++#define TITAN_GE_TX_QUEUE 128
++#define TITAN_TX_RING_BYTES (TITAN_GE_TX_QUEUE * sizeof(struct eth_tx_desc))
++
++/* Default Rx Queue Size */
++#define TITAN_GE_RX_QUEUE 64
++#define TITAN_RX_RING_BYTES (TITAN_GE_RX_QUEUE * sizeof(struct eth_rx_desc))
++
++/* Packet Structure */
++typedef struct _pkt_info {
++ unsigned int len;
++ unsigned int cmd_sts;
++ unsigned int buffer;
++ struct sk_buff *skb;
++ unsigned int checksum;
++} titan_ge_packet;
++
++
++#define PHYS_CNT 3
++
++/* Titan Port specific data structure */
++typedef struct _eth_port_ctrl {
++ unsigned int port_num;
++ u8 port_mac_addr[6];
++
++ /* Rx descriptor pointers */
++ int rx_curr_desc_q, rx_used_desc_q;
++
++ /* Tx descriptor pointers */
++ int tx_curr_desc_q, tx_used_desc_q;
++
++ /* Rx descriptor area */
++ volatile titan_ge_rx_desc *rx_desc_area;
++ unsigned int rx_desc_area_size;
++ struct sk_buff* rx_skb[TITAN_GE_RX_QUEUE];
++
++ /* Tx Descriptor area */
++ volatile titan_ge_tx_desc *tx_desc_area;
++ unsigned int tx_desc_area_size;
++ struct sk_buff* tx_skb[TITAN_GE_TX_QUEUE];
++
++ /* Timeout task */
++ struct work_struct tx_timeout_task;
++
++ /* DMA structures and handles */
++ dma_addr_t tx_dma;
++ dma_addr_t rx_dma;
++ dma_addr_t tx_dma_array[TITAN_GE_TX_QUEUE];
++
++ /* Device lock */
++ spinlock_t lock;
++
++ unsigned int tx_ring_skbs;
++ unsigned int rx_ring_size;
++ unsigned int tx_ring_size;
++ unsigned int rx_ring_skbs;
++
++ struct net_device_stats stats;
++
++ /* Tx and Rx coalescing */
++ unsigned long rx_int_coal;
++ unsigned long tx_int_coal;
++
++ /* Threshold for replenishing the Rx and Tx rings */
++ unsigned int tx_threshold;
++ unsigned int rx_threshold;
++
++ /* NAPI work limit */
++ unsigned int rx_work_limit;
++} titan_ge_port_info;
++
++/* Titan specific constants */
++#define TITAN_ETH_PORT_IRQ 3
++
++/* Max Rx buffer */
++#define TITAN_GE_MAX_RX_BUFFER 65536
++
++/* Tx and Rx Error */
++#define TITAN_GE_ERROR
++
++/* Rx Descriptor Command and Status */
++
++#define TITAN_GE_RX_CRC_ERROR TITAN_BIT27 /* crc error */
++#define TITAN_GE_RX_OVERFLOW_ERROR TITAN_BIT15 /* overflow */
++#define TITAN_GE_RX_BUFFER_OWNED TITAN_BIT21 /* buffer ownership */
++#define TITAN_GE_RX_STP TITAN_BIT31 /* start of packet */
++#define TITAN_GE_RX_BAM TITAN_BIT30 /* broadcast address match */
++#define TITAN_GE_RX_PAM TITAN_BIT28 /* physical address match */
++#define TITAN_GE_RX_LAFM TITAN_BIT29 /* logical address filter match */
++#define TITAN_GE_RX_VLAN TITAN_BIT26 /* virtual lans */
++#define TITAN_GE_RX_PERR TITAN_BIT19 /* packet error */
++#define TITAN_GE_RX_TRUNC TITAN_BIT20 /* packet size greater than 32 buffers */
++
++/* Tx Descriptor Command */
++#define TITAN_GE_TX_BUFFER_OWNED TITAN_BIT5 /* buffer ownership */
++#define TITAN_GE_TX_ENABLE_INTERRUPT TITAN_BIT15 /* Interrupt Enable */
++
++/* Return Status */
++#define TITAN_OK 0x1 /* Good Status */
++#define TITAN_ERROR 0x2 /* Error Status */
++
++/* MIB specific register offset */
++#define TITAN_GE_MSTATX_STATS_BASE_LOW 0x0800 /* MSTATX COUNTL[15:0] */
++#define TITAN_GE_MSTATX_STATS_BASE_MID 0x0804 /* MSTATX COUNTM[15:0] */
++#define TITAN_GE_MSTATX_STATS_BASE_HI 0x0808 /* MSTATX COUNTH[7:0] */
++#define TITAN_GE_MSTATX_CONTROL 0x0828 /* MSTATX Control */
++#define TITAN_GE_MSTATX_VARIABLE_SELECT 0x082C /* MSTATX Variable Select */
++
++/* MIB counter offsets, add to the TITAN_GE_MSTATX_STATS_BASE_XXX */
++#define TITAN_GE_MSTATX_RXFRAMESOK 0x0040
++#define TITAN_GE_MSTATX_RXOCTETSOK 0x0050
++#define TITAN_GE_MSTATX_RXFRAMES 0x0060
++#define TITAN_GE_MSTATX_RXOCTETS 0x0070
++#define TITAN_GE_MSTATX_RXUNICASTFRAMESOK 0x0080
++#define TITAN_GE_MSTATX_RXBROADCASTFRAMESOK 0x0090
++#define TITAN_GE_MSTATX_RXMULTICASTFRAMESOK 0x00A0
++#define TITAN_GE_MSTATX_RXTAGGEDFRAMESOK 0x00B0
++#define TITAN_GE_MSTATX_RXMACPAUSECONTROLFRAMESOK 0x00C0
++#define TITAN_GE_MSTATX_RXMACCONTROLFRAMESOK 0x00D0
++#define TITAN_GE_MSTATX_RXFCSERROR 0x00E0
++#define TITAN_GE_MSTATX_RXALIGNMENTERROR 0x00F0
++#define TITAN_GE_MSTATX_RXSYMBOLERROR 0x0100
++#define TITAN_GE_MSTATX_RXLAYER1ERROR 0x0110
++#define TITAN_GE_MSTATX_RXINRANGELENGTHERROR 0x0120
++#define TITAN_GE_MSTATX_RXLONGLENGTHERROR 0x0130
++#define TITAN_GE_MSTATX_RXLONGLENGTHCRCERROR 0x0140
++#define TITAN_GE_MSTATX_RXSHORTLENGTHERROR 0x0150
++#define TITAN_GE_MSTATX_RXSHORTLLENGTHCRCERROR 0x0160
++#define TITAN_GE_MSTATX_RXFRAMES64OCTETS 0x0170
++#define TITAN_GE_MSTATX_RXFRAMES65TO127OCTETS 0x0180
++#define TITAN_GE_MSTATX_RXFRAMES128TO255OCTETS 0x0190
++#define TITAN_GE_MSTATX_RXFRAMES256TO511OCTETS 0x01A0
++#define TITAN_GE_MSTATX_RXFRAMES512TO1023OCTETS 0x01B0
++#define TITAN_GE_MSTATX_RXFRAMES1024TO1518OCTETS 0x01C0
++#define TITAN_GE_MSTATX_RXFRAMES1519TOMAXSIZE 0x01D0
++#define TITAN_GE_MSTATX_RXSTATIONADDRESSFILTERED 0x01E0
++#define TITAN_GE_MSTATX_RXVARIABLE 0x01F0
++#define TITAN_GE_MSTATX_GENERICADDRESSFILTERED 0x0200
++#define TITAN_GE_MSTATX_UNICASTFILTERED 0x0210
++#define TITAN_GE_MSTATX_MULTICASTFILTERED 0x0220
++#define TITAN_GE_MSTATX_BROADCASTFILTERED 0x0230
++#define TITAN_GE_MSTATX_HASHFILTERED 0x0240
++#define TITAN_GE_MSTATX_TXFRAMESOK 0x0250
++#define TITAN_GE_MSTATX_TXOCTETSOK 0x0260
++#define TITAN_GE_MSTATX_TXOCTETS 0x0270
++#define TITAN_GE_MSTATX_TXTAGGEDFRAMESOK 0x0280
++#define TITAN_GE_MSTATX_TXMACPAUSECONTROLFRAMESOK 0x0290
++#define TITAN_GE_MSTATX_TXFCSERROR 0x02A0
++#define TITAN_GE_MSTATX_TXSHORTLENGTHERROR 0x02B0
++#define TITAN_GE_MSTATX_TXLONGLENGTHERROR 0x02C0
++#define TITAN_GE_MSTATX_TXSYSTEMERROR 0x02D0
++#define TITAN_GE_MSTATX_TXMACERROR 0x02E0
++#define TITAN_GE_MSTATX_TXCARRIERSENSEERROR 0x02F0
++#define TITAN_GE_MSTATX_TXSQETESTERROR 0x0300
++#define TITAN_GE_MSTATX_TXUNICASTFRAMESOK 0x0310
++#define TITAN_GE_MSTATX_TXBROADCASTFRAMESOK 0x0320
++#define TITAN_GE_MSTATX_TXMULTICASTFRAMESOK 0x0330
++#define TITAN_GE_MSTATX_TXUNICASTFRAMESATTEMPTED 0x0340
++#define TITAN_GE_MSTATX_TXBROADCASTFRAMESATTEMPTED 0x0350
++#define TITAN_GE_MSTATX_TXMULTICASTFRAMESATTEMPTED 0x0360
++#define TITAN_GE_MSTATX_TXFRAMES64OCTETS 0x0370
++#define TITAN_GE_MSTATX_TXFRAMES65TO127OCTETS 0x0380
++#define TITAN_GE_MSTATX_TXFRAMES128TO255OCTETS 0x0390
++#define TITAN_GE_MSTATX_TXFRAMES256TO511OCTETS 0x03A0
++#define TITAN_GE_MSTATX_TXFRAMES512TO1023OCTETS 0x03B0
++#define TITAN_GE_MSTATX_TXFRAMES1024TO1518OCTETS 0x03C0
++#define TITAN_GE_MSTATX_TXFRAMES1519TOMAXSIZE 0x03D0
++#define TITAN_GE_MSTATX_TXVARIABLE 0x03E0
++#define TITAN_GE_MSTATX_RXSYSTEMERROR 0x03F0
++#define TITAN_GE_MSTATX_SINGLECOLLISION 0x0400
++#define TITAN_GE_MSTATX_MULTIPLECOLLISION 0x0410
++#define TITAN_GE_MSTATX_DEFERREDXMISSIONS 0x0420
++#define TITAN_GE_MSTATX_LATECOLLISIONS 0x0430
++#define TITAN_GE_MSTATX_ABORTEDDUETOXSCOLLS 0x0440
++
++/* Interrupt specific defines */
++#define TITAN_GE_DEVICE_ID 0x0000 /* Device ID */
++#define TITAN_GE_RESET 0x0004 /* Reset reg */
++#define TITAN_GE_TSB_CTRL_0 0x000C /* TSB Control reg 0 */
++#define TITAN_GE_TSB_CTRL_1 0x0010 /* TSB Control reg 1 */
++#define TITAN_GE_INTR_GRP0_STATUS 0x0040 /* General Interrupt Group 0 Status */
++#define TITAN_GE_INTR_XDMA_CORE_A 0x0048 /* XDMA Channel Interrupt Status, Core A*/
++#define TITAN_GE_INTR_XDMA_CORE_B 0x004C /* XDMA Channel Interrupt Status, Core B*/
++#define TITAN_GE_INTR_XDMA_IE 0x0058 /* XDMA Channel Interrupt Enable */
++#define TITAN_GE_SDQPF_ECC_INTR 0x480C /* SDQPF ECC Interrupt Status */
++#define TITAN_GE_SDQPF_RXFIFO_CTL 0x4828 /* SDQPF RxFifo Control and Interrupt Enb*/
++#define TITAN_GE_SDQPF_RXFIFO_INTR 0x482C /* SDQPF RxFifo Interrupt Status */
++#define TITAN_GE_SDQPF_TXFIFO_CTL 0x4928 /* SDQPF TxFifo Control and Interrupt Enb*/
++#define TITAN_GE_SDQPF_TXFIFO_INTR 0x492C /* SDQPF TxFifo Interrupt Status */
++#define TITAN_GE_SDQPF_RXFIFO_0 0x4840 /* SDQPF RxFIFO Enable */
++#define TITAN_GE_SDQPF_TXFIFO_0 0x4940 /* SDQPF TxFIFO Enable */
++#define TITAN_GE_XDMA_CONFIG 0x5000 /* XDMA Global Configuration */
++#define TITAN_GE_XDMA_INTR_SUMMARY 0x5010 /* XDMA Interrupt Summary */
++#define TITAN_GE_XDMA_BUFADDRPRE 0x5018 /* XDMA Buffer Address Prefix */
++#define TITAN_GE_XDMA_DESCADDRPRE 0x501C /* XDMA Descriptor Address Prefix */
++#define TITAN_GE_XDMA_PORTWEIGHT 0x502C /* XDMA Port Weight Configuration */
++
++/* Rx MAC defines */
++#define TITAN_GE_RMAC_CONFIG_1 0x1200 /* RMAC Configuration 1 */
++#define TITAN_GE_RMAC_CONFIG_2 0x1204 /* RMAC Configuration 2 */
++#define TITAN_GE_RMAC_MAX_FRAME_LEN 0x1208 /* RMAC Max Frame Length */
++#define TITAN_GE_RMAC_STATION_HI 0x120C /* Rx Station Address High */
++#define TITAN_GE_RMAC_STATION_MID 0x1210 /* Rx Station Address Middle */
++#define TITAN_GE_RMAC_STATION_LOW 0x1214 /* Rx Station Address Low */
++#define TITAN_GE_RMAC_LINK_CONFIG 0x1218 /* RMAC Link Configuration */
++
++/* Tx MAC defines */
++#define TITAN_GE_TMAC_CONFIG_1 0x1240 /* TMAC Configuration 1 */
++#define TITAN_GE_TMAC_CONFIG_2 0x1244 /* TMAC Configuration 2 */
++#define TITAN_GE_TMAC_IPG 0x1248 /* TMAC Inter-Packet Gap */
++#define TITAN_GE_TMAC_STATION_HI 0x124C /* Tx Station Address High */
++#define TITAN_GE_TMAC_STATION_MID 0x1250 /* Tx Station Address Middle */
++#define TITAN_GE_TMAC_STATION_LOW 0x1254 /* Tx Station Address Low */
++#define TITAN_GE_TMAC_MAX_FRAME_LEN 0x1258 /* TMAC Max Frame Length */
++#define TITAN_GE_TMAC_MIN_FRAME_LEN 0x125C /* TMAC Min Frame Length */
++#define TITAN_GE_TMAC_PAUSE_FRAME_TIME 0x1260 /* TMAC Pause Frame Time */
++#define TITAN_GE_TMAC_PAUSE_FRAME_INTERVAL 0x1264 /* TMAC Pause Frame Interval */
++
++/* GMII register */
++#define TITAN_GE_GMII_INTERRUPT_STATUS 0x1348 /* GMII Interrupt Status */
++#define TITAN_GE_GMII_CONFIG_GENERAL 0x134C /* GMII Configuration General */
++#define TITAN_GE_GMII_CONFIG_MODE 0x1350 /* GMII Configuration Mode */
++
++/* Tx and Rx XDMA defines */
++#define TITAN_GE_INT_COALESCING 0x5030 /* Interrupt Coalescing */
++#define TITAN_GE_CHANNEL0_CONFIG 0x5040 /* Channel 0 XDMA config */
++#define TITAN_GE_CHANNEL0_INTERRUPT 0x504c /* Channel 0 Interrupt Status */
++#define TITAN_GE_GDI_INTERRUPT_ENABLE 0x5050 /* IE for the GDI Errors */
++#define TITAN_GE_CHANNEL0_PACKET 0x5060 /* Channel 0 Packet count */
++#define TITAN_GE_CHANNEL0_BYTE 0x5064 /* Channel 0 Byte count */
++#define TITAN_GE_CHANNEL0_TX_DESC 0x5054 /* Channel 0 Tx first desc */
++#define TITAN_GE_CHANNEL0_RX_DESC 0x5058 /* Channel 0 Rx first desc */
++
++/* AFX (Address Filter Exact) register offsets for Slice 0 */
++#define TITAN_GE_AFX_EXACT_MATCH_LOW 0x1100 /* AFX Exact Match Address Low*/
++#define TITAN_GE_AFX_EXACT_MATCH_MID 0x1104 /* AFX Exact Match Address Mid*/
++#define TITAN_GE_AFX_EXACT_MATCH_HIGH 0x1108 /* AFX Exact Match Address Hi */
++#define TITAN_GE_AFX_EXACT_MATCH_VID 0x110C /* AFX Exact Match VID */
++#define TITAN_GE_AFX_MULTICAST_HASH_LOW 0x1110 /* AFX Multicast HASH Low */
++#define TITAN_GE_AFX_MULTICAST_HASH_MIDLOW 0x1114 /* AFX Multicast HASH MidLow */
++#define TITAN_GE_AFX_MULTICAST_HASH_MIDHI 0x1118 /* AFX Multicast HASH MidHi */
++#define TITAN_GE_AFX_MULTICAST_HASH_HI 0x111C /* AFX Multicast HASH Hi */
++#define TITAN_GE_AFX_ADDRS_FILTER_CTRL_0 0x1120 /* AFX Address Filter Ctrl 0 */
++#define TITAN_GE_AFX_ADDRS_FILTER_CTRL_1 0x1124 /* AFX Address Filter Ctrl 1 */
++#define TITAN_GE_AFX_ADDRS_FILTER_CTRL_2 0x1128 /* AFX Address Filter Ctrl 2 */
++
++/* Traffic Groomer block */
++#define TITAN_GE_TRTG_CONFIG 0x1000 /* TRTG Config */
++
++#endif /* _TITAN_GE_H_ */
++
+diff -Nurd linux-2.6.24/drivers/net/titan_mdio.c mer-smartq-kernel/drivers/net/titan_mdio.c
+--- linux-2.6.24/drivers/net/titan_mdio.c 1970-01-01 01:00:00.000000000 +0100
++++ mer-smartq-kernel/drivers/net/titan_mdio.c 2009-11-17 12:13:31.000000000 +0100
+@@ -0,0 +1,217 @@
++/*
++ * drivers/net/titan_mdio.c - Driver for Titan ethernet ports
++ *
++ * Copyright (C) 2003 PMC-Sierra Inc.
++ * Author : Manish Lachwani (lachwani@pmc-sierra.com)
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2
++ * of the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++ *
++ * Management Data IO (MDIO) driver for the Titan GMII. Interacts with the Marvel PHY
++ * on the Titan. No support for the TBI as yet.
++ *
++ */
++
++#include "titan_mdio.h"
++
++#define MDIO_DEBUG
++
++/*
++ * Local constants
++ */
++#define MAX_CLKA 1023
++#define MAX_PHY_DEV 31
++#define MAX_PHY_REG 31
++#define WRITEADDRS_OPCODE 0x0
++#define READ_OPCODE 0x2
++#define WRITE_OPCODE 0x1
++#define MAX_MDIO_POLL 100
++
++/*
++ * Titan MDIO and SCMB registers
++ */
++#define TITAN_GE_SCMB_CONTROL 0x01c0 /* SCMB Control */
++#define TITAN_GE_SCMB_CLKA 0x01c4 /* SCMB Clock A */
++#define TITAN_GE_MDIO_COMMAND 0x01d0 /* MDIO Command */
++#define TITAN_GE_MDIO_DEVICE_PORT_ADDRESS 0x01d4 /* MDIO Device and Port addrs */
++#define TITAN_GE_MDIO_DATA 0x01d8 /* MDIO Data */
++#define TITAN_GE_MDIO_INTERRUPTS 0x01dC /* MDIO Interrupts */
++
++/*
++ * Function to poll the MDIO
++ */
++static int titan_ge_mdio_poll(void)
++{
++ int i, val;
++
++ for (i = 0; i < MAX_MDIO_POLL; i++) {
++ val = TITAN_GE_MDIO_READ(TITAN_GE_MDIO_COMMAND);
++
++ if (!(val & 0x8000))
++ return TITAN_GE_MDIO_GOOD;
++ }
++
++ return TITAN_GE_MDIO_ERROR;
++}
++
++
++/*
++ * Initialize and configure the MDIO
++ */
++int titan_ge_mdio_setup(titan_ge_mdio_config *titan_mdio)
++{
++ unsigned long val;
++
++ /* Reset the SCMB and program into MDIO mode*/
++ TITAN_GE_MDIO_WRITE(TITAN_GE_SCMB_CONTROL, 0x9000);
++ TITAN_GE_MDIO_WRITE(TITAN_GE_SCMB_CONTROL, 0x1000);
++
++ /* CLK A */
++ val = TITAN_GE_MDIO_READ(TITAN_GE_SCMB_CLKA);
++ val = ( (val & ~(0x03ff)) | (titan_mdio->clka & 0x03ff));
++ TITAN_GE_MDIO_WRITE(TITAN_GE_SCMB_CLKA, val);
++
++ /* Preamble Suppresion */
++ val = TITAN_GE_MDIO_READ(TITAN_GE_MDIO_COMMAND);
++ val = ( (val & ~(0x0001)) | (titan_mdio->mdio_spre & 0x0001));
++ TITAN_GE_MDIO_WRITE(TITAN_GE_MDIO_COMMAND, val);
++
++ /* MDIO mode */
++ val = TITAN_GE_MDIO_READ(TITAN_GE_MDIO_DEVICE_PORT_ADDRESS);
++ val = ( (val & ~(0x4000)) | (titan_mdio->mdio_mode & 0x4000));
++ TITAN_GE_MDIO_WRITE(TITAN_GE_MDIO_DEVICE_PORT_ADDRESS, val);
++
++ return TITAN_GE_MDIO_GOOD;
++}
++
++/*
++ * Set the PHY address in indirect mode
++ */
++int titan_ge_mdio_inaddrs(int dev_addr, int reg_addr)
++{
++ volatile unsigned long val;
++
++ /* Setup the PHY device */
++ val = TITAN_GE_MDIO_READ(TITAN_GE_MDIO_DEVICE_PORT_ADDRESS);
++ val = ( (val & ~(0x1f00)) | ( (dev_addr << 8) & 0x1f00));
++ val = ( (val & ~(0x001f)) | ( reg_addr & 0x001f));
++ TITAN_GE_MDIO_WRITE(TITAN_GE_MDIO_DEVICE_PORT_ADDRESS, val);
++
++ /* Write the new address */
++ val = TITAN_GE_MDIO_READ(TITAN_GE_MDIO_COMMAND);
++ val = ( (val & ~(0x0300)) | ( (WRITEADDRS_OPCODE << 8) & 0x0300));
++ TITAN_GE_MDIO_WRITE(TITAN_GE_MDIO_COMMAND, val);
++
++ return TITAN_GE_MDIO_GOOD;
++}
++
++/*
++ * Read the MDIO register. This is what the individual parametes mean:
++ *
++ * dev_addr : PHY ID
++ * reg_addr : register offset
++ *
++ * See the spec for the Titan MAC. We operate in the Direct Mode.
++ */
++
++#define MAX_RETRIES 2
++
++int titan_ge_mdio_read(int dev_addr, int reg_addr, unsigned int *pdata)
++{
++ volatile unsigned long val;
++ int retries = 0;
++
++ /* Setup the PHY device */
++
++again:
++ val = TITAN_GE_MDIO_READ(TITAN_GE_MDIO_DEVICE_PORT_ADDRESS);
++ val = ( (val & ~(0x1f00)) | ( (dev_addr << 8) & 0x1f00));
++ val = ( (val & ~(0x001f)) | ( reg_addr & 0x001f));
++ val |= 0x4000;
++ TITAN_GE_MDIO_WRITE(TITAN_GE_MDIO_DEVICE_PORT_ADDRESS, val);
++
++ udelay(30);
++
++ /* Issue the read command */
++ val = TITAN_GE_MDIO_READ(TITAN_GE_MDIO_COMMAND);
++ val = ( (val & ~(0x0300)) | ( (READ_OPCODE << 8) & 0x0300));
++ TITAN_GE_MDIO_WRITE(TITAN_GE_MDIO_COMMAND, val);
++
++ udelay(30);
++
++ if (titan_ge_mdio_poll() != TITAN_GE_MDIO_GOOD)
++ return TITAN_GE_MDIO_ERROR;
++
++ *pdata = (unsigned int)TITAN_GE_MDIO_READ(TITAN_GE_MDIO_DATA);
++ val = TITAN_GE_MDIO_READ(TITAN_GE_MDIO_INTERRUPTS);
++
++ udelay(30);
++
++ if (val & 0x2) {
++ if (retries == MAX_RETRIES)
++ return TITAN_GE_MDIO_ERROR;
++ else {
++ retries++;
++ goto again;
++ }
++ }
++
++ return TITAN_GE_MDIO_GOOD;
++}
++
++/*
++ * Write to the MDIO register
++ *
++ * dev_addr : PHY ID
++ * reg_addr : register that needs to be written to
++ *
++ */
++int titan_ge_mdio_write(int dev_addr, int reg_addr, unsigned int data)
++{
++ volatile unsigned long val;
++
++ if (titan_ge_mdio_poll() != TITAN_GE_MDIO_GOOD)
++ return TITAN_GE_MDIO_ERROR;
++
++ /* Setup the PHY device */
++ val = TITAN_GE_MDIO_READ(TITAN_GE_MDIO_DEVICE_PORT_ADDRESS);
++ val = ( (val & ~(0x1f00)) | ( (dev_addr << 8) & 0x1f00));
++ val = ( (val & ~(0x001f)) | ( reg_addr & 0x001f));
++ val |= 0x4000;
++ TITAN_GE_MDIO_WRITE(TITAN_GE_MDIO_DEVICE_PORT_ADDRESS, val);
++
++ udelay(30);
++
++ /* Setup the data to write */
++ TITAN_GE_MDIO_WRITE(TITAN_GE_MDIO_DATA, data);
++
++ udelay(30);
++
++ /* Issue the write command */
++ val = TITAN_GE_MDIO_READ(TITAN_GE_MDIO_COMMAND);
++ val = ( (val & ~(0x0300)) | ( (WRITE_OPCODE << 8) & 0x0300));
++ TITAN_GE_MDIO_WRITE(TITAN_GE_MDIO_COMMAND, val);
++
++ udelay(30);
++
++ if (titan_ge_mdio_poll() != TITAN_GE_MDIO_GOOD)
++ return TITAN_GE_MDIO_ERROR;
++
++ val = TITAN_GE_MDIO_READ(TITAN_GE_MDIO_INTERRUPTS);
++ if (val & 0x2)
++ return TITAN_GE_MDIO_ERROR;
++
++ return TITAN_GE_MDIO_GOOD;
++}
++
+diff -Nurd linux-2.6.24/drivers/net/titan_mdio.h mer-smartq-kernel/drivers/net/titan_mdio.h
+--- linux-2.6.24/drivers/net/titan_mdio.h 1970-01-01 01:00:00.000000000 +0100
++++ mer-smartq-kernel/drivers/net/titan_mdio.h 2009-11-17 12:13:31.000000000 +0100
+@@ -0,0 +1,56 @@
++/*
++ * MDIO used to interact with the PHY when using GMII/MII
++ */
++#ifndef _TITAN_MDIO_H
++#define _TITAN_MDIO_H
++
++#include <linux/netdevice.h>
++#include <linux/workqueue.h>
++#include <linux/delay.h>
++#include "titan_ge.h"
++
++
++#define TITAN_GE_MDIO_ERROR (-9000)
++#define TITAN_GE_MDIO_GOOD 0
++
++#define TITAN_GE_MDIO_BASE titan_ge_base
++
++#define TITAN_GE_MDIO_READ(offset) \
++ *(volatile u32 *)(titan_ge_base + (offset))
++
++#define TITAN_GE_MDIO_WRITE(offset, data) \
++ *(volatile u32 *)(titan_ge_base + (offset)) = (data)
++
++
++/* GMII specific registers */
++#define TITAN_GE_MARVEL_PHY_ID 0x00
++#define TITAN_PHY_AUTONEG_ADV 0x04
++#define TITAN_PHY_LP_ABILITY 0x05
++#define TITAN_GE_MDIO_MII_CTRL 0x09
++#define TITAN_GE_MDIO_MII_EXTENDED 0x0f
++#define TITAN_GE_MDIO_PHY_CTRL 0x10
++#define TITAN_GE_MDIO_PHY_STATUS 0x11
++#define TITAN_GE_MDIO_PHY_IE 0x12
++#define TITAN_GE_MDIO_PHY_IS 0x13
++#define TITAN_GE_MDIO_PHY_LED 0x18
++#define TITAN_GE_MDIO_PHY_LED_OVER 0x19
++#define PHY_ANEG_TIME_WAIT 45 /* 45 seconds wait time */
++
++/*
++ * MDIO Config Structure
++ */
++typedef struct {
++ unsigned int clka;
++ int mdio_spre;
++ int mdio_mode;
++} titan_ge_mdio_config;
++
++/*
++ * Function Prototypes
++ */
++int titan_ge_mdio_setup(titan_ge_mdio_config *);
++int titan_ge_mdio_inaddrs(int, int);
++int titan_ge_mdio_read(int, int, unsigned int *);
++int titan_ge_mdio_write(int, int, unsigned int);
++
++#endif /* _TITAN_MDIO_H */
+diff -Nurd linux-2.6.24/drivers/scsi/NCR53C9x.h mer-smartq-kernel/drivers/scsi/NCR53C9x.h
+--- linux-2.6.24/drivers/scsi/NCR53C9x.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/drivers/scsi/NCR53C9x.h 2009-11-17 12:13:32.000000000 +0100
+@@ -144,12 +144,7 @@
+
+ #ifndef MULTIPLE_PAD_SIZES
+
+-#ifdef CONFIG_CPU_HAS_WB
+-#include <asm/wbflush.h>
+-#define esp_write(__reg, __val) do{(__reg) = (__val); wbflush();} while(0)
+-#else
+-#define esp_write(__reg, __val) ((__reg) = (__val))
+-#endif
++#define esp_write(__reg, __val) do{(__reg) = (__val); iob();} while(0)
+ #define esp_read(__reg) (__reg)
+
+ struct ESP_regs {
+diff -Nurd linux-2.6.24/include/asm-mips/asmmacro.h mer-smartq-kernel/include/asm-mips/asmmacro.h
+--- linux-2.6.24/include/asm-mips/asmmacro.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/asmmacro.h 2009-11-17 12:13:38.000000000 +0100
+@@ -35,6 +35,16 @@
+ mtc0 \reg, CP0_TCSTATUS
+ _ehb
+ .endm
++#elif defined(CONFIG_CPU_MIPSR2)
++ .macro local_irq_enable reg=t0
++ ei
++ irq_enable_hazard
++ .endm
++
++ .macro local_irq_disable reg=t0
++ di
++ irq_disable_hazard
++ .endm
+ #else
+ .macro local_irq_enable reg=t0
+ mfc0 \reg, CP0_STATUS
+diff -Nurd linux-2.6.24/include/asm-mips/atomic.h mer-smartq-kernel/include/asm-mips/atomic.h
+--- linux-2.6.24/include/asm-mips/atomic.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/atomic.h 2009-11-17 12:13:38.000000000 +0100
+@@ -283,10 +283,10 @@
+ " beqz %0, 2f \n"
+ " subu %0, %1, %3 \n"
+ " .set reorder \n"
+- "1: \n"
+ " .subsection 2 \n"
+ "2: b 1b \n"
+ " .previous \n"
++ "1: \n"
+ " .set mips0 \n"
+ : "=&r" (result), "=&r" (temp), "=m" (v->counter)
+ : "Ir" (i), "m" (v->counter)
+@@ -664,10 +664,10 @@
+ " beqz %0, 2f \n"
+ " dsubu %0, %1, %3 \n"
+ " .set reorder \n"
+- "1: \n"
+ " .subsection 2 \n"
+ "2: b 1b \n"
+ " .previous \n"
++ "1: \n"
+ " .set mips0 \n"
+ : "=&r" (result), "=&r" (temp), "=m" (v->counter)
+ : "Ir" (i), "m" (v->counter)
+diff -Nurd linux-2.6.24/include/asm-mips/byteorder.h mer-smartq-kernel/include/asm-mips/byteorder.h
+--- linux-2.6.24/include/asm-mips/byteorder.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/byteorder.h 2009-11-17 12:13:38.000000000 +0100
+@@ -43,9 +43,8 @@
+ static __inline__ __attribute_const__ __u64 ___arch__swab64(__u64 x)
+ {
+ __asm__(
+- " dsbh %0, %1 \n"
+- " dshd %0, %0 \n"
+- " drotr %0, %0, 32 \n"
++ " dsbh %0, %1\n"
++ " dshd %0, %0"
+ : "=r" (x)
+ : "r" (x));
+
+diff -Nurd linux-2.6.24/include/asm-mips/cacheflush.h mer-smartq-kernel/include/asm-mips/cacheflush.h
+--- linux-2.6.24/include/asm-mips/cacheflush.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/cacheflush.h 2009-11-17 12:13:38.000000000 +0100
+@@ -63,8 +63,22 @@
+ }
+
+ extern void (*flush_icache_range)(unsigned long start, unsigned long end);
+-#define flush_cache_vmap(start, end) flush_cache_all()
+-#define flush_cache_vunmap(start, end) flush_cache_all()
++
++extern void (*__flush_cache_vmap)(void);
++
++static inline void flush_cache_vmap(unsigned long start, unsigned long end)
++{
++ if (cpu_has_dc_aliases)
++ __flush_cache_vmap();
++}
++
++extern void (*__flush_cache_vunmap)(void);
++
++static inline void flush_cache_vunmap(unsigned long start, unsigned long end)
++{
++ if (cpu_has_dc_aliases)
++ __flush_cache_vunmap();
++}
+
+ extern void copy_to_user_page(struct vm_area_struct *vma,
+ struct page *page, unsigned long vaddr, void *dst, const void *src,
+@@ -93,7 +107,7 @@
+ clear_bit(PG_dcache_dirty, &(page)->flags)
+
+ /* Run kernel code uncached, useful for cache probing functions. */
+-unsigned long __init run_uncached(void *func);
++unsigned long run_uncached(void *func);
+
+ extern void *kmap_coherent(struct page *page, unsigned long addr);
+ extern void kunmap_coherent(void);
+diff -Nurd linux-2.6.24/include/asm-mips/cevt-r4k.h mer-smartq-kernel/include/asm-mips/cevt-r4k.h
+--- linux-2.6.24/include/asm-mips/cevt-r4k.h 1970-01-01 01:00:00.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/cevt-r4k.h 2009-11-17 12:13:38.000000000 +0100
+@@ -0,0 +1,46 @@
++/*
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file "COPYING" in the main directory of this archive
++ * for more details.
++ *
++ * Copyright (C) 2008 Kevin D. Kissell
++ */
++
++/*
++ * Definitions used for common event timer implementation
++ * for MIPS 4K-type processors and their MIPS MT variants.
++ * Avoids unsightly extern declarations in C files.
++ */
++#ifndef __ASM_CEVT_R4K_H
++#define __ASM_CEVT_R4K_H
++
++DECLARE_PER_CPU(struct clock_event_device, mips_clockevent_device);
++
++void mips_event_handler(struct clock_event_device *dev);
++int c0_compare_int_usable(void);
++void mips_set_clock_mode(enum clock_event_mode, struct clock_event_device *);
++irqreturn_t c0_compare_interrupt(int, void *);
++
++extern struct irqaction c0_compare_irqaction;
++extern int cp0_timer_irq_installed;
++
++/*
++ * Possibly handle a performance counter interrupt.
++ * Return true if the timer interrupt should not be checked
++ */
++
++static inline int handle_perf_irq(int r2)
++{
++ /*
++ * The performance counter overflow interrupt may be shared with the
++ * timer interrupt (cp0_perfcount_irq < 0). If it is and a
++ * performance counter has overflowed (perf_irq() == IRQ_HANDLED)
++ * and we can't reliably determine if a counter interrupt has also
++ * happened (!r2) then don't check for a timer interrupt.
++ */
++ return (cp0_perfcount_irq < 0) &&
++ perf_irq() == IRQ_HANDLED &&
++ !r2;
++}
++
++#endif /* __ASM_CEVT_R4K_H */
+diff -Nurd linux-2.6.24/include/asm-mips/elf.h mer-smartq-kernel/include/asm-mips/elf.h
+--- linux-2.6.24/include/asm-mips/elf.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/elf.h 2009-11-17 12:13:38.000000000 +0100
+@@ -232,7 +232,7 @@
+ */
+ #ifdef __MIPSEB__
+ #define ELF_DATA ELFDATA2MSB
+-#elif __MIPSEL__
++#elif defined(__MIPSEL__)
+ #define ELF_DATA ELFDATA2LSB
+ #endif
+ #define ELF_ARCH EM_MIPS
+diff -Nurd linux-2.6.24/include/asm-mips/gdb-stub.h mer-smartq-kernel/include/asm-mips/gdb-stub.h
+--- linux-2.6.24/include/asm-mips/gdb-stub.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/gdb-stub.h 2009-11-17 12:13:38.000000000 +0100
+@@ -4,148 +4,33 @@
+ * for more details.
+ *
+ * Copyright (C) 1995 Andreas Busse
+- * Copyright (C) 2003 Ralf Baechle
++ * Copyright (C) 2003, 2008 Ralf Baechle (ralf@linux-mips.org)
++ * Copyright (C) 2008 Wind River Systems, Inc.
++ * written by Ralf Baechle
+ */
+ #ifndef _ASM_GDB_STUB_H
+ #define _ASM_GDB_STUB_H
+
+-
+ /*
+- * important register numbers
++ * GDB interface constants.
+ */
+-
+-#define REG_EPC 37
+-#define REG_FP 72
+-#define REG_SP 29
++#define REG_EPC 37
++#define REG_FP 72
++#define REG_SP 29
+
+ /*
+ * Stack layout for the GDB exception handler
+ * Derived from the stack layout described in asm-mips/stackframe.h
+- *
+- * The first PTRSIZE*6 bytes are argument save space for C subroutines.
+- */
+-#define NUMREGS 90
+-
+-#define GDB_FR_REG0 (PTRSIZE*6) /* 0 */
+-#define GDB_FR_REG1 ((GDB_FR_REG0) + LONGSIZE) /* 1 */
+-#define GDB_FR_REG2 ((GDB_FR_REG1) + LONGSIZE) /* 2 */
+-#define GDB_FR_REG3 ((GDB_FR_REG2) + LONGSIZE) /* 3 */
+-#define GDB_FR_REG4 ((GDB_FR_REG3) + LONGSIZE) /* 4 */
+-#define GDB_FR_REG5 ((GDB_FR_REG4) + LONGSIZE) /* 5 */
+-#define GDB_FR_REG6 ((GDB_FR_REG5) + LONGSIZE) /* 6 */
+-#define GDB_FR_REG7 ((GDB_FR_REG6) + LONGSIZE) /* 7 */
+-#define GDB_FR_REG8 ((GDB_FR_REG7) + LONGSIZE) /* 8 */
+-#define GDB_FR_REG9 ((GDB_FR_REG8) + LONGSIZE) /* 9 */
+-#define GDB_FR_REG10 ((GDB_FR_REG9) + LONGSIZE) /* 10 */
+-#define GDB_FR_REG11 ((GDB_FR_REG10) + LONGSIZE) /* 11 */
+-#define GDB_FR_REG12 ((GDB_FR_REG11) + LONGSIZE) /* 12 */
+-#define GDB_FR_REG13 ((GDB_FR_REG12) + LONGSIZE) /* 13 */
+-#define GDB_FR_REG14 ((GDB_FR_REG13) + LONGSIZE) /* 14 */
+-#define GDB_FR_REG15 ((GDB_FR_REG14) + LONGSIZE) /* 15 */
+-#define GDB_FR_REG16 ((GDB_FR_REG15) + LONGSIZE) /* 16 */
+-#define GDB_FR_REG17 ((GDB_FR_REG16) + LONGSIZE) /* 17 */
+-#define GDB_FR_REG18 ((GDB_FR_REG17) + LONGSIZE) /* 18 */
+-#define GDB_FR_REG19 ((GDB_FR_REG18) + LONGSIZE) /* 19 */
+-#define GDB_FR_REG20 ((GDB_FR_REG19) + LONGSIZE) /* 20 */
+-#define GDB_FR_REG21 ((GDB_FR_REG20) + LONGSIZE) /* 21 */
+-#define GDB_FR_REG22 ((GDB_FR_REG21) + LONGSIZE) /* 22 */
+-#define GDB_FR_REG23 ((GDB_FR_REG22) + LONGSIZE) /* 23 */
+-#define GDB_FR_REG24 ((GDB_FR_REG23) + LONGSIZE) /* 24 */
+-#define GDB_FR_REG25 ((GDB_FR_REG24) + LONGSIZE) /* 25 */
+-#define GDB_FR_REG26 ((GDB_FR_REG25) + LONGSIZE) /* 26 */
+-#define GDB_FR_REG27 ((GDB_FR_REG26) + LONGSIZE) /* 27 */
+-#define GDB_FR_REG28 ((GDB_FR_REG27) + LONGSIZE) /* 28 */
+-#define GDB_FR_REG29 ((GDB_FR_REG28) + LONGSIZE) /* 29 */
+-#define GDB_FR_REG30 ((GDB_FR_REG29) + LONGSIZE) /* 30 */
+-#define GDB_FR_REG31 ((GDB_FR_REG30) + LONGSIZE) /* 31 */
+-
+-/*
+- * Saved special registers
+- */
+-#define GDB_FR_STATUS ((GDB_FR_REG31) + LONGSIZE) /* 32 */
+-#define GDB_FR_LO ((GDB_FR_STATUS) + LONGSIZE) /* 33 */
+-#define GDB_FR_HI ((GDB_FR_LO) + LONGSIZE) /* 34 */
+-#define GDB_FR_BADVADDR ((GDB_FR_HI) + LONGSIZE) /* 35 */
+-#define GDB_FR_CAUSE ((GDB_FR_BADVADDR) + LONGSIZE) /* 36 */
+-#define GDB_FR_EPC ((GDB_FR_CAUSE) + LONGSIZE) /* 37 */
+-
+-/*
+- * Saved floating point registers
+- */
+-#define GDB_FR_FPR0 ((GDB_FR_EPC) + LONGSIZE) /* 38 */
+-#define GDB_FR_FPR1 ((GDB_FR_FPR0) + LONGSIZE) /* 39 */
+-#define GDB_FR_FPR2 ((GDB_FR_FPR1) + LONGSIZE) /* 40 */
+-#define GDB_FR_FPR3 ((GDB_FR_FPR2) + LONGSIZE) /* 41 */
+-#define GDB_FR_FPR4 ((GDB_FR_FPR3) + LONGSIZE) /* 42 */
+-#define GDB_FR_FPR5 ((GDB_FR_FPR4) + LONGSIZE) /* 43 */
+-#define GDB_FR_FPR6 ((GDB_FR_FPR5) + LONGSIZE) /* 44 */
+-#define GDB_FR_FPR7 ((GDB_FR_FPR6) + LONGSIZE) /* 45 */
+-#define GDB_FR_FPR8 ((GDB_FR_FPR7) + LONGSIZE) /* 46 */
+-#define GDB_FR_FPR9 ((GDB_FR_FPR8) + LONGSIZE) /* 47 */
+-#define GDB_FR_FPR10 ((GDB_FR_FPR9) + LONGSIZE) /* 48 */
+-#define GDB_FR_FPR11 ((GDB_FR_FPR10) + LONGSIZE) /* 49 */
+-#define GDB_FR_FPR12 ((GDB_FR_FPR11) + LONGSIZE) /* 50 */
+-#define GDB_FR_FPR13 ((GDB_FR_FPR12) + LONGSIZE) /* 51 */
+-#define GDB_FR_FPR14 ((GDB_FR_FPR13) + LONGSIZE) /* 52 */
+-#define GDB_FR_FPR15 ((GDB_FR_FPR14) + LONGSIZE) /* 53 */
+-#define GDB_FR_FPR16 ((GDB_FR_FPR15) + LONGSIZE) /* 54 */
+-#define GDB_FR_FPR17 ((GDB_FR_FPR16) + LONGSIZE) /* 55 */
+-#define GDB_FR_FPR18 ((GDB_FR_FPR17) + LONGSIZE) /* 56 */
+-#define GDB_FR_FPR19 ((GDB_FR_FPR18) + LONGSIZE) /* 57 */
+-#define GDB_FR_FPR20 ((GDB_FR_FPR19) + LONGSIZE) /* 58 */
+-#define GDB_FR_FPR21 ((GDB_FR_FPR20) + LONGSIZE) /* 59 */
+-#define GDB_FR_FPR22 ((GDB_FR_FPR21) + LONGSIZE) /* 60 */
+-#define GDB_FR_FPR23 ((GDB_FR_FPR22) + LONGSIZE) /* 61 */
+-#define GDB_FR_FPR24 ((GDB_FR_FPR23) + LONGSIZE) /* 62 */
+-#define GDB_FR_FPR25 ((GDB_FR_FPR24) + LONGSIZE) /* 63 */
+-#define GDB_FR_FPR26 ((GDB_FR_FPR25) + LONGSIZE) /* 64 */
+-#define GDB_FR_FPR27 ((GDB_FR_FPR26) + LONGSIZE) /* 65 */
+-#define GDB_FR_FPR28 ((GDB_FR_FPR27) + LONGSIZE) /* 66 */
+-#define GDB_FR_FPR29 ((GDB_FR_FPR28) + LONGSIZE) /* 67 */
+-#define GDB_FR_FPR30 ((GDB_FR_FPR29) + LONGSIZE) /* 68 */
+-#define GDB_FR_FPR31 ((GDB_FR_FPR30) + LONGSIZE) /* 69 */
+-
+-#define GDB_FR_FSR ((GDB_FR_FPR31) + LONGSIZE) /* 70 */
+-#define GDB_FR_FIR ((GDB_FR_FSR) + LONGSIZE) /* 71 */
+-#define GDB_FR_FRP ((GDB_FR_FIR) + LONGSIZE) /* 72 */
+-
+-#define GDB_FR_DUMMY ((GDB_FR_FRP) + LONGSIZE) /* 73, unused ??? */
+-
+-/*
+- * Again, CP0 registers
+- */
+-#define GDB_FR_CP0_INDEX ((GDB_FR_DUMMY) + LONGSIZE) /* 74 */
+-#define GDB_FR_CP0_RANDOM ((GDB_FR_CP0_INDEX) + LONGSIZE) /* 75 */
+-#define GDB_FR_CP0_ENTRYLO0 ((GDB_FR_CP0_RANDOM) + LONGSIZE)/* 76 */
+-#define GDB_FR_CP0_ENTRYLO1 ((GDB_FR_CP0_ENTRYLO0) + LONGSIZE)/* 77 */
+-#define GDB_FR_CP0_CONTEXT ((GDB_FR_CP0_ENTRYLO1) + LONGSIZE)/* 78 */
+-#define GDB_FR_CP0_PAGEMASK ((GDB_FR_CP0_CONTEXT) + LONGSIZE)/* 79 */
+-#define GDB_FR_CP0_WIRED ((GDB_FR_CP0_PAGEMASK) + LONGSIZE)/* 80 */
+-#define GDB_FR_CP0_REG7 ((GDB_FR_CP0_WIRED) + LONGSIZE) /* 81 */
+-#define GDB_FR_CP0_REG8 ((GDB_FR_CP0_REG7) + LONGSIZE) /* 82 */
+-#define GDB_FR_CP0_REG9 ((GDB_FR_CP0_REG8) + LONGSIZE) /* 83 */
+-#define GDB_FR_CP0_ENTRYHI ((GDB_FR_CP0_REG9) + LONGSIZE) /* 84 */
+-#define GDB_FR_CP0_REG11 ((GDB_FR_CP0_ENTRYHI) + LONGSIZE)/* 85 */
+-#define GDB_FR_CP0_REG12 ((GDB_FR_CP0_REG11) + LONGSIZE) /* 86 */
+-#define GDB_FR_CP0_REG13 ((GDB_FR_CP0_REG12) + LONGSIZE) /* 87 */
+-#define GDB_FR_CP0_REG14 ((GDB_FR_CP0_REG13) + LONGSIZE) /* 88 */
+-#define GDB_FR_CP0_PRID ((GDB_FR_CP0_REG14) + LONGSIZE) /* 89 */
+-
+-#define GDB_FR_SIZE ((((GDB_FR_CP0_PRID) + LONGSIZE) + (PTRSIZE-1)) & ~(PTRSIZE-1))
+-
+-#ifndef __ASSEMBLY__
+-
+-/*
+- * This is the same as above, but for the high-level
+- * part of the GDB stub.
+ */
+
+ struct gdb_regs {
++#ifdef CONFIG_32BIT
+ /*
+ * Pad bytes for argument save space on the stack
+ * 24/48 Bytes for 32/64 bit code
+ */
+ unsigned long pad0[6];
++#endif
+
+ /*
+ * saved main processor registers
+@@ -159,8 +44,11 @@
+ * Saved special registers
+ */
+ long cp0_status;
+- long lo;
+ long hi;
++ long lo;
++#ifdef CONFIG_CPU_HAS_SMARTMIPS
++ long acx
++#endif
+ long cp0_badvaddr;
+ long cp0_cause;
+ long cp0_epc;
+@@ -183,7 +71,7 @@
+ long dummy; /* unused */
+
+ /*
+- * saved cp0 registers
++ * Saved cp0 registers
+ */
+ long cp0_index;
+ long cp0_random;
+@@ -203,13 +91,8 @@
+ long cp0_prid;
+ };
+
+-/*
+- * Prototypes
+- */
+-
+ extern int kgdb_enabled;
+-void set_debug_traps(void);
+-void set_async_breakpoint(unsigned long *epc);
++extern void set_debug_traps(void);
++extern void set_async_breakpoint(unsigned long *epc);
+
+-#endif /* !__ASSEMBLY__ */
+ #endif /* _ASM_GDB_STUB_H */
+diff -Nurd linux-2.6.24/include/asm-mips/irqflags.h mer-smartq-kernel/include/asm-mips/irqflags.h
+--- linux-2.6.24/include/asm-mips/irqflags.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/irqflags.h 2009-11-17 12:13:38.000000000 +0100
+@@ -38,8 +38,17 @@
+ " .set pop \n"
+ " .endm");
+
++extern void smtc_ipi_replay(void);
++
+ static inline void raw_local_irq_enable(void)
+ {
++#ifdef CONFIG_MIPS_MT_SMTC
++ /*
++ * SMTC kernel needs to do a software replay of queued
++ * IPIs, at the cost of call overhead on each local_irq_enable()
++ */
++ smtc_ipi_replay();
++#endif
+ __asm__ __volatile__(
+ "raw_local_irq_enable"
+ : /* no outputs */
+@@ -47,6 +56,7 @@
+ : "memory");
+ }
+
++
+ /*
+ * For cli() we have to insert nops to make sure that the new value
+ * has actually arrived in the status register before the end of this
+@@ -185,15 +195,14 @@
+ " .set pop \n"
+ " .endm \n");
+
+-extern void smtc_ipi_replay(void);
+
+ static inline void raw_local_irq_restore(unsigned long flags)
+ {
+ unsigned long __tmp1;
+
+-#ifdef CONFIG_MIPS_MT_SMTC_INSTANT_REPLAY
++#ifdef CONFIG_MIPS_MT_SMTC
+ /*
+- * CONFIG_MIPS_MT_SMTC_INSTANT_REPLAY does prompt replay of deferred
++ * SMTC kernel needs to do a software replay of queued
+ * IPIs, at the cost of branch and call overhead on each
+ * local_irq_restore()
+ */
+@@ -208,6 +217,17 @@
+ : "memory");
+ }
+
++static inline void __raw_local_irq_restore(unsigned long flags)
++{
++ unsigned long __tmp1;
++
++ __asm__ __volatile__(
++ "raw_local_irq_restore\t%0"
++ : "=r" (__tmp1)
++ : "0" (flags)
++ : "memory");
++}
++
+ static inline int raw_irqs_disabled_flags(unsigned long flags)
+ {
+ #ifdef CONFIG_MIPS_MT_SMTC
+diff -Nurd linux-2.6.24/include/asm-mips/lasat/serial.h mer-smartq-kernel/include/asm-mips/lasat/serial.h
+--- linux-2.6.24/include/asm-mips/lasat/serial.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/lasat/serial.h 2009-11-17 12:13:38.000000000 +0100
+@@ -4,10 +4,10 @@
+ #define LASAT_BASE_BAUD_100 (7372800 / 16)
+ #define LASAT_UART_REGS_BASE_100 0x1c8b0000
+ #define LASAT_UART_REGS_SHIFT_100 2
+-#define LASATINT_UART_100 8
++#define LASATINT_UART_100 16
+
+ /* * LASAT 200 boards serial configuration */
+ #define LASAT_BASE_BAUD_200 (100000000 / 16 / 12)
+ #define LASAT_UART_REGS_BASE_200 (Vrc5074_PHYS_BASE + 0x0300)
+ #define LASAT_UART_REGS_SHIFT_200 3
+-#define LASATINT_UART_200 13
++#define LASATINT_UART_200 21
+diff -Nurd linux-2.6.24/include/asm-mips/mach-au1x00/au1000.h mer-smartq-kernel/include/asm-mips/mach-au1x00/au1000.h
+--- linux-2.6.24/include/asm-mips/mach-au1x00/au1000.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/mach-au1x00/au1000.h 2009-11-17 12:13:38.000000000 +0100
+@@ -1786,6 +1786,7 @@
+ char *cpu_name;
+ unsigned char cpu_od; /* Set Config[OD] */
+ unsigned char cpu_bclk; /* Enable BCLK switching */
++ unsigned char cpu_pll_wo; /* sys_cpupll reg. write-only */
+ };
+
+ extern struct cpu_spec cpu_specs[];
+diff -Nurd linux-2.6.24/include/asm-mips/mach-ip27/cpu-feature-overrides.h mer-smartq-kernel/include/asm-mips/mach-ip27/cpu-feature-overrides.h
+--- linux-2.6.24/include/asm-mips/mach-ip27/cpu-feature-overrides.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/mach-ip27/cpu-feature-overrides.h 2009-11-17 12:13:38.000000000 +0100
+@@ -34,7 +34,11 @@
+ #define cpu_has_64bits 1
+
+ #define cpu_has_4kex 1
++#define cpu_has_3k_cache 0
++#define cpu_has_6k_cache 0
+ #define cpu_has_4k_cache 1
++#define cpu_has_8k_cache 0
++#define cpu_has_tx39_cache 0
+
+ #define cpu_has_inclusive_pcaches 1
+
+diff -Nurd linux-2.6.24/include/asm-mips/mach-ip27/dma-coherence.h mer-smartq-kernel/include/asm-mips/mach-ip27/dma-coherence.h
+--- linux-2.6.24/include/asm-mips/mach-ip27/dma-coherence.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/mach-ip27/dma-coherence.h 2009-11-17 12:13:38.000000000 +0100
+@@ -35,7 +35,7 @@
+
+ static unsigned long plat_dma_addr_to_phys(dma_addr_t dma_addr)
+ {
+- return dma_addr & (0xffUL << 56);
++ return dma_addr & ~(0xffUL << 56);
+ }
+
+ static inline void plat_unmap_dma_mem(dma_addr_t dma_addr)
+diff -Nurd linux-2.6.24/include/asm-mips/mach-jmr3927/ioremap.h mer-smartq-kernel/include/asm-mips/mach-jmr3927/ioremap.h
+--- linux-2.6.24/include/asm-mips/mach-jmr3927/ioremap.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/mach-jmr3927/ioremap.h 2009-11-17 12:13:38.000000000 +0100
+@@ -25,7 +25,7 @@
+ {
+ #define TXX9_DIRECTMAP_BASE 0xff000000ul
+ if (offset >= TXX9_DIRECTMAP_BASE &&
+- offset < TXX9_DIRECTMAP_BASE + 0xf0000)
++ offset < TXX9_DIRECTMAP_BASE + 0xff0000)
+ return (void __iomem *)offset;
+ return NULL;
+ }
+diff -Nurd linux-2.6.24/include/asm-mips/mach-lasat/irq.h mer-smartq-kernel/include/asm-mips/mach-lasat/irq.h
+--- linux-2.6.24/include/asm-mips/mach-lasat/irq.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/mach-lasat/irq.h 2009-11-17 12:13:38.000000000 +0100
+@@ -1,7 +1,7 @@
+ #ifndef _ASM_MACH_LASAT_IRQ_H
+ #define _ASM_MACH_LASAT_IRQ_H
+
+-#define LASAT_CASCADE_IRQ (MIPS_CPU_IRQ_BASE + 0)
++#define LASAT_CASCADE_IRQ (MIPS_CPU_IRQ_BASE + 2)
+
+ #define LASAT_IRQ_BASE 8
+ #define LASAT_IRQ_END 23
+diff -Nurd linux-2.6.24/include/asm-mips/mach-pb1x00/pb1200.h mer-smartq-kernel/include/asm-mips/mach-pb1x00/pb1200.h
+--- linux-2.6.24/include/asm-mips/mach-pb1x00/pb1200.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/mach-pb1x00/pb1200.h 2009-11-17 12:13:38.000000000 +0100
+@@ -244,7 +244,7 @@
+ PB1200_SD1_INSERT_INT,
+ PB1200_SD1_EJECT_INT,
+
+- PB1200_INT_END (PB1200_INT_BEGIN + 15)
++ PB1200_INT_END = PB1200_INT_BEGIN + 15
+ };
+
+ /* For drivers/pcmcia/au1000_db1x00.c */
+diff -Nurd linux-2.6.24/include/asm-mips/mach-qemu/cpu-feature-overrides.h mer-smartq-kernel/include/asm-mips/mach-qemu/cpu-feature-overrides.h
+--- linux-2.6.24/include/asm-mips/mach-qemu/cpu-feature-overrides.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/mach-qemu/cpu-feature-overrides.h 2009-11-17 12:13:38.000000000 +0100
+@@ -12,7 +12,7 @@
+ * QEMU only comes with a hazard-free MIPS32 processor, so things are easy.
+ */
+ #define cpu_has_mips16 0
+-#define cpu_has_divec 0
++#define cpu_has_divec 1
+ #define cpu_has_cache_cdex_p 0
+ #define cpu_has_prefetch 0
+ #define cpu_has_mcheck 0
+diff -Nurd linux-2.6.24/include/asm-mips/mipsregs.h mer-smartq-kernel/include/asm-mips/mipsregs.h
+--- linux-2.6.24/include/asm-mips/mipsregs.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/mipsregs.h 2009-11-17 12:13:38.000000000 +0100
+@@ -1459,7 +1459,7 @@
+ { \
+ unsigned int res; \
+ unsigned int omt; \
+- unsigned int flags; \
++ unsigned long flags; \
+ \
+ local_irq_save(flags); \
+ omt = __dmt(); \
+@@ -1477,7 +1477,7 @@
+ { \
+ unsigned int res; \
+ unsigned int omt; \
+- unsigned int flags; \
++ unsigned long flags; \
+ \
+ local_irq_save(flags); \
+ omt = __dmt(); \
+@@ -1495,7 +1495,7 @@
+ { \
+ unsigned int res; \
+ unsigned int omt; \
+- unsigned int flags; \
++ unsigned long flags; \
+ \
+ local_irq_save(flags); \
+ \
+diff -Nurd linux-2.6.24/include/asm-mips/pgtable-32.h mer-smartq-kernel/include/asm-mips/pgtable-32.h
+--- linux-2.6.24/include/asm-mips/pgtable-32.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/pgtable-32.h 2009-11-17 12:13:38.000000000 +0100
+@@ -57,7 +57,7 @@
+ #define PMD_ORDER 1
+ #define PTE_ORDER 0
+
+-#define PTRS_PER_PGD ((PAGE_SIZE << PGD_ORDER) / sizeof(pgd_t))
++#define PTRS_PER_PGD (USER_PTRS_PER_PGD * 2)
+ #define PTRS_PER_PTE ((PAGE_SIZE << PTE_ORDER) / sizeof(pte_t))
+
+ #define USER_PTRS_PER_PGD (0x80000000UL/PGDIR_SIZE)
+diff -Nurd linux-2.6.24/include/asm-mips/pgtable.h mer-smartq-kernel/include/asm-mips/pgtable.h
+--- linux-2.6.24/include/asm-mips/pgtable.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/pgtable.h 2009-11-17 12:13:38.000000000 +0100
+@@ -232,9 +232,10 @@
+ static inline pte_t pte_mkyoung(pte_t pte)
+ {
+ pte.pte_low |= _PAGE_ACCESSED;
+- if (pte.pte_low & _PAGE_READ)
++ if (pte.pte_low & _PAGE_READ) {
+ pte.pte_low |= _PAGE_SILENT_READ;
+ pte.pte_high |= _PAGE_SILENT_READ;
++ }
+ return pte;
+ }
+ #else
+diff -Nurd linux-2.6.24/include/asm-mips/rtlx.h mer-smartq-kernel/include/asm-mips/rtlx.h
+--- linux-2.6.24/include/asm-mips/rtlx.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/rtlx.h 2009-11-17 12:13:38.000000000 +0100
+@@ -3,7 +3,7 @@
+ *
+ */
+
+-#ifndef __ASM_RTLX_H
++#ifndef __ASM_RTLX_H_
+ #define __ASM_RTLX_H_
+
+ #include <irq.h>
+@@ -29,13 +29,13 @@
+ extern unsigned int rtlx_write_poll(int index);
+
+ enum rtlx_state {
+- RTLX_STATE_UNUSED,
++ RTLX_STATE_UNUSED = 0,
+ RTLX_STATE_INITIALISED,
+ RTLX_STATE_REMOTE_READY,
+ RTLX_STATE_OPENED
+ };
+
+-#define RTLX_BUFFER_SIZE 1024
++#define RTLX_BUFFER_SIZE 2048
+
+ /* each channel supports read and write.
+ linux (vpe0) reads lx_buffer and writes rt_buffer
+diff -Nurd linux-2.6.24/include/asm-mips/smtc.h mer-smartq-kernel/include/asm-mips/smtc.h
+--- linux-2.6.24/include/asm-mips/smtc.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/smtc.h 2009-11-17 12:13:38.000000000 +0100
+@@ -6,6 +6,7 @@
+ */
+
+ #include <asm/mips_mt.h>
++#include <asm/smtc_ipi.h>
+
+ /*
+ * System-wide SMTC status information
+@@ -38,13 +39,14 @@
+ struct task_struct;
+
+ void smtc_get_new_mmu_context(struct mm_struct *mm, unsigned long cpu);
+-
++void self_ipi(struct smtc_ipi *);
+ void smtc_flush_tlb_asid(unsigned long asid);
+-extern int mipsmt_build_cpu_map(int startslot);
+-extern void mipsmt_prepare_cpus(void);
++extern int smtc_build_cpu_map(int startslot);
++extern void smtc_prepare_cpus(int cpus);
+ extern void smtc_smp_finish(void);
+ extern void smtc_boot_secondary(int cpu, struct task_struct *t);
+
++
+ /*
+ * Sharing the TLB between multiple VPEs means that the
+ * "random" index selection function is not allowed to
+diff -Nurd linux-2.6.24/include/asm-mips/sn/mapped_kernel.h mer-smartq-kernel/include/asm-mips/sn/mapped_kernel.h
+--- linux-2.6.24/include/asm-mips/sn/mapped_kernel.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/sn/mapped_kernel.h 2009-11-17 12:13:38.000000000 +0100
+@@ -5,6 +5,8 @@
+ #ifndef __ASM_SN_MAPPED_KERNEL_H
+ #define __ASM_SN_MAPPED_KERNEL_H
+
++#include <linux/mmzone.h>
++
+ /*
+ * Note on how mapped kernels work: the text and data section is
+ * compiled at cksseg segment (LOADADDR = 0xc001c000), and the
+@@ -29,10 +31,8 @@
+ #define MAPPED_ADDR_RO_TO_PHYS(x) (x - REP_BASE)
+ #define MAPPED_ADDR_RW_TO_PHYS(x) (x - REP_BASE - 16777216)
+
+-#define MAPPED_KERN_RO_PHYSBASE(n) \
+- (PLAT_NODE_DATA(n)->kern_vars.kv_ro_baseaddr)
+-#define MAPPED_KERN_RW_PHYSBASE(n) \
+- (PLAT_NODE_DATA(n)->kern_vars.kv_rw_baseaddr)
++#define MAPPED_KERN_RO_PHYSBASE(n) (hub_data(n)->kern_vars.kv_ro_baseaddr)
++#define MAPPED_KERN_RW_PHYSBASE(n) (hub_data(n)->kern_vars.kv_rw_baseaddr)
+
+ #define MAPPED_KERN_RO_TO_PHYS(x) \
+ ((unsigned long)MAPPED_ADDR_RO_TO_PHYS(x) | \
+diff -Nurd linux-2.6.24/include/asm-mips/stackframe.h mer-smartq-kernel/include/asm-mips/stackframe.h
+--- linux-2.6.24/include/asm-mips/stackframe.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/stackframe.h 2009-11-17 12:13:39.000000000 +0100
+@@ -288,14 +288,31 @@
+ #ifdef CONFIG_MIPS_MT_SMTC
+ .set mips32r2
+ /*
+- * This may not really be necessary if ints are already
+- * inhibited here.
++ * We need to make sure the read-modify-write
++ * of Status below isn't perturbed by an interrupt
++ * or cross-TC access, so we need to do at least a DMT,
++ * protected by an interrupt-inhibit. But setting IXMT
++ * also creates a few-cycle window where an IPI could
++ * be queued and not be detected before potentially
++ * returning to a WAIT or user-mode loop. It must be
++ * replayed.
++ *
++ * We're in the middle of a context switch, and
++ * we can't dispatch it directly without trashing
++ * some registers, so we'll try to detect this unlikely
++ * case and program a software interrupt in the VPE,
++ * as would be done for a cross-VPE IPI. To accomodate
++ * the handling of that case, we're doing a DVPE instead
++ * of just a DMT here to protect against other threads.
++ * This is a lot of cruft to cover a tiny window.
++ * If you can find a better design, implement it!
++ *
+ */
+ mfc0 v0, CP0_TCSTATUS
+ ori v0, TCSTATUS_IXMT
+ mtc0 v0, CP0_TCSTATUS
+ _ehb
+- DMT 5 # dmt a1
++ DVPE 5 # dvpe a1
+ jal mips_ihb
+ #endif /* CONFIG_MIPS_MT_SMTC */
+ mfc0 a0, CP0_STATUS
+@@ -316,17 +333,50 @@
+ */
+ LONG_L v1, PT_TCSTATUS(sp)
+ _ehb
+- mfc0 v0, CP0_TCSTATUS
++ mfc0 a0, CP0_TCSTATUS
+ andi v1, TCSTATUS_IXMT
+- /* We know that TCStatua.IXMT should be set from above */
+- xori v0, v0, TCSTATUS_IXMT
+- or v0, v0, v1
+- mtc0 v0, CP0_TCSTATUS
+- _ehb
+- andi a1, a1, VPECONTROL_TE
++ bnez v1, 0f
++
++/*
++ * We'd like to detect any IPIs queued in the tiny window
++ * above and request an software interrupt to service them
++ * when we ERET.
++ *
++ * Computing the offset into the IPIQ array of the executing
++ * TC's IPI queue in-line would be tedious. We use part of
++ * the TCContext register to hold 16 bits of offset that we
++ * can add in-line to find the queue head.
++ */
++ mfc0 v0, CP0_TCCONTEXT
++ la a2, IPIQ
++ srl v0, v0, 16
++ addu a2, a2, v0
++ LONG_L v0, 0(a2)
++ beqz v0, 0f
++/*
++ * If we have a queue, provoke dispatch within the VPE by setting C_SW1
++ */
++ mfc0 v0, CP0_CAUSE
++ ori v0, v0, C_SW1
++ mtc0 v0, CP0_CAUSE
++0:
++ /*
++ * This test should really never branch but
++ * let's be prudent here. Having atomized
++ * the shared register modifications, we can
++ * now EVPE, and must do so before interrupts
++ * are potentially re-enabled.
++ */
++ andi a1, a1, MVPCONTROL_EVP
+ beqz a1, 1f
+- emt
++ evpe
+ 1:
++ /* We know that TCStatua.IXMT should be set from above */
++ xori a0, a0, TCSTATUS_IXMT
++ or a0, a0, v1
++ mtc0 a0, CP0_TCSTATUS
++ _ehb
++
+ .set mips0
+ #endif /* CONFIG_MIPS_MT_SMTC */
+ LONG_L v1, PT_EPC(sp)
+diff -Nurd linux-2.6.24/include/asm-mips/time.h mer-smartq-kernel/include/asm-mips/time.h
+--- linux-2.6.24/include/asm-mips/time.h 2008-01-24 23:58:37.000000000 +0100
++++ mer-smartq-kernel/include/asm-mips/time.h 2009-11-17 12:13:39.000000000 +0100
+@@ -70,11 +70,12 @@
+ /*
+ * Initialize the count register as a clocksource
+ */
+-#ifdef CONFIG_CEVT_R4K
+-extern void init_mips_clocksource(void);
++#ifdef CONFIG_CSRC_R4K
++extern int init_mips_clocksource(void);
+ #else
+-static inline void init_mips_clocksource(void)
++static inline int init_mips_clocksource(void)
+ {
++ return 0;
+ }
+ #endif
+
+diff -Nurd linux-2.6.24/Makefile mer-smartq-kernel/Makefile
+--- linux-2.6.24/Makefile 2009-11-17 21:04:50.000000000 +0100
++++ mer-smartq-kernel/Makefile 2009-11-17 18:05:54.000000000 +0100
+@@ -190,7 +190,7 @@
+ # Default value for CROSS_COMPILE is not to prefix executables
+ # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
+ export KBUILD_BUILDHOST := $(SUBARCH)
+-ARCH ?= $(SUBARCH)
++ARCH ?= mips
+ CROSS_COMPILE ?=
+
+ # Architecture as present in compile.h
diff --git a/recipes/linux/linux-2.6.31/0001-Squashfs-move-zlib-decompression-wrapper-code-into.patch b/recipes/linux/linux-2.6.31/0001-Squashfs-move-zlib-decompression-wrapper-code-into.patch
new file mode 100644
index 0000000000..32f79f45f2
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/0001-Squashfs-move-zlib-decompression-wrapper-code-into.patch
@@ -0,0 +1,255 @@
+From 6c4419d997d4431bb62e73475cd6b084e83efbd1 Mon Sep 17 00:00:00 2001
+From: Phillip Lougher <phillip@lougher.demon.co.uk>
+Date: Tue, 22 Sep 2009 19:25:24 +0100
+Subject: [PATCH] Squashfs: move zlib decompression wrapper code into a separate file
+
+Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
+---
+ fs/squashfs/Makefile | 2 +-
+ fs/squashfs/block.c | 74 ++----------------------------
+ fs/squashfs/squashfs.h | 4 ++
+ fs/squashfs/zlib_wrapper.c | 109 ++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 118 insertions(+), 71 deletions(-)
+
+diff --git a/fs/squashfs/Makefile b/fs/squashfs/Makefile
+index 70e3244..a397e6f 100644
+--- a/fs/squashfs/Makefile
++++ b/fs/squashfs/Makefile
+@@ -4,4 +4,4 @@
+
+ obj-$(CONFIG_SQUASHFS) += squashfs.o
+ squashfs-y += block.o cache.o dir.o export.o file.o fragment.o id.o inode.o
+-squashfs-y += namei.o super.o symlink.o
++squashfs-y += namei.o super.o symlink.o zlib_wrapper.o
+diff --git a/fs/squashfs/block.c b/fs/squashfs/block.c
+index 2a79603..5cd3934 100644
+--- a/fs/squashfs/block.c
++++ b/fs/squashfs/block.c
+@@ -29,7 +29,6 @@
+ #include <linux/fs.h>
+ #include <linux/vfs.h>
+ #include <linux/slab.h>
+-#include <linux/mutex.h>
+ #include <linux/string.h>
+ #include <linux/buffer_head.h>
+ #include <linux/zlib.h>
+@@ -153,72 +152,10 @@ int squashfs_read_data(struct super_block *sb, void **buffer, u64 index,
+ }
+
+ if (compressed) {
+- int zlib_err = 0, zlib_init = 0;
+-
+- /*
+- * Uncompress block.
+- */
+-
+- mutex_lock(&msblk->read_data_mutex);
+-
+- msblk->stream.avail_out = 0;
+- msblk->stream.avail_in = 0;
+-
+- bytes = length;
+- do {
+- if (msblk->stream.avail_in == 0 && k < b) {
+- avail = min(bytes, msblk->devblksize - offset);
+- bytes -= avail;
+- wait_on_buffer(bh[k]);
+- if (!buffer_uptodate(bh[k]))
+- goto release_mutex;
+-
+- if (avail == 0) {
+- offset = 0;
+- put_bh(bh[k++]);
+- continue;
+- }
+-
+- msblk->stream.next_in = bh[k]->b_data + offset;
+- msblk->stream.avail_in = avail;
+- offset = 0;
+- }
+-
+- if (msblk->stream.avail_out == 0 && page < pages) {
+- msblk->stream.next_out = buffer[page++];
+- msblk->stream.avail_out = PAGE_CACHE_SIZE;
+- }
+-
+- if (!zlib_init) {
+- zlib_err = zlib_inflateInit(&msblk->stream);
+- if (zlib_err != Z_OK) {
+- ERROR("zlib_inflateInit returned"
+- " unexpected result 0x%x,"
+- " srclength %d\n", zlib_err,
+- srclength);
+- goto release_mutex;
+- }
+- zlib_init = 1;
+- }
+-
+- zlib_err = zlib_inflate(&msblk->stream, Z_SYNC_FLUSH);
+-
+- if (msblk->stream.avail_in == 0 && k < b)
+- put_bh(bh[k++]);
+- } while (zlib_err == Z_OK);
+-
+- if (zlib_err != Z_STREAM_END) {
+- ERROR("zlib_inflate error, data probably corrupt\n");
+- goto release_mutex;
+- }
+-
+- zlib_err = zlib_inflateEnd(&msblk->stream);
+- if (zlib_err != Z_OK) {
+- ERROR("zlib_inflate error, data probably corrupt\n");
+- goto release_mutex;
+- }
+- length = msblk->stream.total_out;
+- mutex_unlock(&msblk->read_data_mutex);
++ length = zlib_uncompress(msblk, buffer, bh, b, offset, length,
++ srclength, pages);
++ if (length < 0)
++ goto read_failure;
+ } else {
+ /*
+ * Block is uncompressed.
+@@ -255,9 +192,6 @@ int squashfs_read_data(struct super_block *sb, void **buffer, u64 index,
+ kfree(bh);
+ return length;
+
+-release_mutex:
+- mutex_unlock(&msblk->read_data_mutex);
+-
+ block_release:
+ for (; k < b; k++)
+ put_bh(bh[k]);
+diff --git a/fs/squashfs/squashfs.h b/fs/squashfs/squashfs.h
+index 0e9feb6..988bdce 100644
+--- a/fs/squashfs/squashfs.h
++++ b/fs/squashfs/squashfs.h
+@@ -70,6 +70,10 @@ extern struct inode *squashfs_iget(struct super_block *, long long,
+ unsigned int);
+ extern int squashfs_read_inode(struct inode *, long long);
+
++/* zlib_wrapper.c */
++extern int zlib_uncompress(struct squashfs_sb_info *, void **,
++ struct buffer_head **, int, int, int, int, int);
++
+ /*
+ * Inodes and files operations
+ */
+diff --git a/fs/squashfs/zlib_wrapper.c b/fs/squashfs/zlib_wrapper.c
+new file mode 100644
+index 0000000..486a2a7
+--- /dev/null
++++ b/fs/squashfs/zlib_wrapper.c
+@@ -0,0 +1,109 @@
++/*
++ * Squashfs - a compressed read only filesystem for Linux
++ *
++ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
++ * Phillip Lougher <phillip@lougher.demon.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2,
++ * or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++ *
++ * zlib_wrapper.c
++ */
++
++
++#include <linux/mutex.h>
++#include <linux/buffer_head.h>
++#include <linux/zlib.h>
++
++#include "squashfs_fs.h"
++#include "squashfs_fs_sb.h"
++#include "squashfs_fs_i.h"
++#include "squashfs.h"
++
++int zlib_uncompress(struct squashfs_sb_info *msblk, void **buffer,
++ struct buffer_head **bh, int b, int offset, int length, int srclength,
++ int pages)
++{
++ int zlib_err = 0, zlib_init = 0;
++ int avail, bytes, k = 0, page = 0;
++
++ mutex_lock(&msblk->read_data_mutex);
++
++ msblk->stream.avail_out = 0;
++ msblk->stream.avail_in = 0;
++
++ bytes = length;
++ do {
++ if (msblk->stream.avail_in == 0 && k < b) {
++ avail = min(bytes, msblk->devblksize - offset);
++ bytes -= avail;
++ wait_on_buffer(bh[k]);
++ if (!buffer_uptodate(bh[k]))
++ goto release_mutex;
++
++ if (avail == 0) {
++ offset = 0;
++ put_bh(bh[k++]);
++ continue;
++ }
++
++ msblk->stream.next_in = bh[k]->b_data + offset;
++ msblk->stream.avail_in = avail;
++ offset = 0;
++ }
++
++ if (msblk->stream.avail_out == 0 && page < pages) {
++ msblk->stream.next_out = buffer[page++];
++ msblk->stream.avail_out = PAGE_CACHE_SIZE;
++ }
++
++ if (!zlib_init) {
++ zlib_err = zlib_inflateInit(&msblk->stream);
++ if (zlib_err != Z_OK) {
++ ERROR("zlib_inflateInit returned unexpected "
++ "result 0x%x, srclength %d\n",
++ zlib_err, srclength);
++ goto release_mutex;
++ }
++ zlib_init = 1;
++ }
++
++ zlib_err = zlib_inflate(&msblk->stream, Z_SYNC_FLUSH);
++
++ if (msblk->stream.avail_in == 0 && k < b)
++ put_bh(bh[k++]);
++ } while (zlib_err == Z_OK);
++
++ if (zlib_err != Z_STREAM_END) {
++ ERROR("zlib_inflate error, data probably corrupt\n");
++ goto release_mutex;
++ }
++
++ zlib_err = zlib_inflateEnd(&msblk->stream);
++ if (zlib_err != Z_OK) {
++ ERROR("zlib_inflate error, data probably corrupt\n");
++ goto release_mutex;
++ }
++
++ mutex_unlock(&msblk->read_data_mutex);
++ return msblk->stream.total_out;
++
++release_mutex:
++ mutex_unlock(&msblk->read_data_mutex);
++
++ for (; k < b; k++)
++ put_bh(bh[k]);
++
++ return -EIO;
++}
+--
+1.5.2.5
+
diff --git a/recipes/linux/linux-2.6.31/0002-Squashfs-Factor-out-remaining-zlib-dependencies-int.patch b/recipes/linux/linux-2.6.31/0002-Squashfs-Factor-out-remaining-zlib-dependencies-int.patch
new file mode 100644
index 0000000000..19e18ae461
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/0002-Squashfs-Factor-out-remaining-zlib-dependencies-int.patch
@@ -0,0 +1,348 @@
+From 37c44e85fd49676ec15ccaeea065662c1fbcda7d Mon Sep 17 00:00:00 2001
+From: Phillip Lougher <phillip@lougher.demon.co.uk>
+Date: Wed, 23 Sep 2009 19:04:49 +0100
+Subject: [PATCH] Squashfs: Factor out remaining zlib dependencies into separate wrapper file
+
+Move zlib buffer init/destroy code into separate wrapper file. Also
+make zlib z_stream field a void * removing the need to include zlib.h
+for most files.
+
+Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
+---
+ fs/squashfs/block.c | 1 -
+ fs/squashfs/cache.c | 1 -
+ fs/squashfs/dir.c | 1 -
+ fs/squashfs/export.c | 1 -
+ fs/squashfs/file.c | 1 -
+ fs/squashfs/fragment.c | 1 -
+ fs/squashfs/id.c | 1 -
+ fs/squashfs/inode.c | 1 -
+ fs/squashfs/namei.c | 1 -
+ fs/squashfs/squashfs.h | 2 +
+ fs/squashfs/squashfs_fs_sb.h | 2 +-
+ fs/squashfs/super.c | 14 +++------
+ fs/squashfs/symlink.c | 1 -
+ fs/squashfs/zlib_wrapper.c | 56 ++++++++++++++++++++++++++++++++---------
+ 14 files changed, 51 insertions(+), 33 deletions(-)
+
+diff --git a/fs/squashfs/block.c b/fs/squashfs/block.c
+index 5cd3934..baf7624 100644
+--- a/fs/squashfs/block.c
++++ b/fs/squashfs/block.c
+@@ -31,7 +31,6 @@
+ #include <linux/slab.h>
+ #include <linux/string.h>
+ #include <linux/buffer_head.h>
+-#include <linux/zlib.h>
+
+ #include "squashfs_fs.h"
+ #include "squashfs_fs_sb.h"
+diff --git a/fs/squashfs/cache.c b/fs/squashfs/cache.c
+index 40c98fa..57314be 100644
+--- a/fs/squashfs/cache.c
++++ b/fs/squashfs/cache.c
+@@ -51,7 +51,6 @@
+ #include <linux/sched.h>
+ #include <linux/spinlock.h>
+ #include <linux/wait.h>
+-#include <linux/zlib.h>
+ #include <linux/pagemap.h>
+
+ #include "squashfs_fs.h"
+diff --git a/fs/squashfs/dir.c b/fs/squashfs/dir.c
+index 566b0ea..12b933a 100644
+--- a/fs/squashfs/dir.c
++++ b/fs/squashfs/dir.c
+@@ -30,7 +30,6 @@
+ #include <linux/fs.h>
+ #include <linux/vfs.h>
+ #include <linux/slab.h>
+-#include <linux/zlib.h>
+
+ #include "squashfs_fs.h"
+ #include "squashfs_fs_sb.h"
+diff --git a/fs/squashfs/export.c b/fs/squashfs/export.c
+index 2b1b8fe..7f93d5a 100644
+--- a/fs/squashfs/export.c
++++ b/fs/squashfs/export.c
+@@ -39,7 +39,6 @@
+ #include <linux/vfs.h>
+ #include <linux/dcache.h>
+ #include <linux/exportfs.h>
+-#include <linux/zlib.h>
+ #include <linux/slab.h>
+
+ #include "squashfs_fs.h"
+diff --git a/fs/squashfs/file.c b/fs/squashfs/file.c
+index 717767d..a25c506 100644
+--- a/fs/squashfs/file.c
++++ b/fs/squashfs/file.c
+@@ -47,7 +47,6 @@
+ #include <linux/string.h>
+ #include <linux/pagemap.h>
+ #include <linux/mutex.h>
+-#include <linux/zlib.h>
+
+ #include "squashfs_fs.h"
+ #include "squashfs_fs_sb.h"
+diff --git a/fs/squashfs/fragment.c b/fs/squashfs/fragment.c
+index b5a2c15..7c90bbd 100644
+--- a/fs/squashfs/fragment.c
++++ b/fs/squashfs/fragment.c
+@@ -36,7 +36,6 @@
+ #include <linux/fs.h>
+ #include <linux/vfs.h>
+ #include <linux/slab.h>
+-#include <linux/zlib.h>
+
+ #include "squashfs_fs.h"
+ #include "squashfs_fs_sb.h"
+diff --git a/fs/squashfs/id.c b/fs/squashfs/id.c
+index 3795b83..b7f64bc 100644
+--- a/fs/squashfs/id.c
++++ b/fs/squashfs/id.c
+@@ -34,7 +34,6 @@
+ #include <linux/fs.h>
+ #include <linux/vfs.h>
+ #include <linux/slab.h>
+-#include <linux/zlib.h>
+
+ #include "squashfs_fs.h"
+ #include "squashfs_fs_sb.h"
+diff --git a/fs/squashfs/inode.c b/fs/squashfs/inode.c
+index 9101dbd..49daaf6 100644
+--- a/fs/squashfs/inode.c
++++ b/fs/squashfs/inode.c
+@@ -40,7 +40,6 @@
+
+ #include <linux/fs.h>
+ #include <linux/vfs.h>
+-#include <linux/zlib.h>
+
+ #include "squashfs_fs.h"
+ #include "squashfs_fs_sb.h"
+diff --git a/fs/squashfs/namei.c b/fs/squashfs/namei.c
+index 9e39865..5266bd8 100644
+--- a/fs/squashfs/namei.c
++++ b/fs/squashfs/namei.c
+@@ -57,7 +57,6 @@
+ #include <linux/slab.h>
+ #include <linux/string.h>
+ #include <linux/dcache.h>
+-#include <linux/zlib.h>
+
+ #include "squashfs_fs.h"
+ #include "squashfs_fs_sb.h"
+diff --git a/fs/squashfs/squashfs.h b/fs/squashfs/squashfs.h
+index 988bdce..b3eaf87 100644
+--- a/fs/squashfs/squashfs.h
++++ b/fs/squashfs/squashfs.h
+@@ -71,6 +71,8 @@ extern struct inode *squashfs_iget(struct super_block *, long long,
+ extern int squashfs_read_inode(struct inode *, long long);
+
+ /* zlib_wrapper.c */
++extern void *zlib_init(void);
++extern void zlib_free(void *);
+ extern int zlib_uncompress(struct squashfs_sb_info *, void **,
+ struct buffer_head **, int, int, int, int, int);
+
+diff --git a/fs/squashfs/squashfs_fs_sb.h b/fs/squashfs/squashfs_fs_sb.h
+index c8c6561..23a67fa 100644
+--- a/fs/squashfs/squashfs_fs_sb.h
++++ b/fs/squashfs/squashfs_fs_sb.h
+@@ -64,7 +64,7 @@ struct squashfs_sb_info {
+ struct mutex read_data_mutex;
+ struct mutex meta_index_mutex;
+ struct meta_index *meta_index;
+- z_stream stream;
++ void *stream;
+ __le64 *inode_lookup_table;
+ u64 inode_table;
+ u64 directory_table;
+diff --git a/fs/squashfs/super.c b/fs/squashfs/super.c
+index 6c197ef..6c3429b 100644
+--- a/fs/squashfs/super.c
++++ b/fs/squashfs/super.c
+@@ -35,7 +35,6 @@
+ #include <linux/pagemap.h>
+ #include <linux/init.h>
+ #include <linux/module.h>
+-#include <linux/zlib.h>
+ #include <linux/magic.h>
+
+ #include "squashfs_fs.h"
+@@ -87,12 +86,9 @@ static int squashfs_fill_super(struct super_block *sb, void *data, int silent)
+ }
+ msblk = sb->s_fs_info;
+
+- msblk->stream.workspace = kmalloc(zlib_inflate_workspacesize(),
+- GFP_KERNEL);
+- if (msblk->stream.workspace == NULL) {
+- ERROR("Failed to allocate zlib workspace\n");
++ msblk->stream = zlib_init();
++ if (msblk->stream == NULL)
+ goto failure;
+- }
+
+ sblk = kzalloc(sizeof(*sblk), GFP_KERNEL);
+ if (sblk == NULL) {
+@@ -292,17 +288,17 @@ failed_mount:
+ squashfs_cache_delete(msblk->block_cache);
+ squashfs_cache_delete(msblk->fragment_cache);
+ squashfs_cache_delete(msblk->read_page);
++ zlib_free(msblk->stream);
+ kfree(msblk->inode_lookup_table);
+ kfree(msblk->fragment_index);
+ kfree(msblk->id_table);
+- kfree(msblk->stream.workspace);
+ kfree(sb->s_fs_info);
+ sb->s_fs_info = NULL;
+ kfree(sblk);
+ return err;
+
+ failure:
+- kfree(msblk->stream.workspace);
++ zlib_free(msblk->stream);
+ kfree(sb->s_fs_info);
+ sb->s_fs_info = NULL;
+ return -ENOMEM;
+@@ -346,10 +342,10 @@ static void squashfs_put_super(struct super_block *sb)
+ squashfs_cache_delete(sbi->block_cache);
+ squashfs_cache_delete(sbi->fragment_cache);
+ squashfs_cache_delete(sbi->read_page);
++ zlib_free(sbi->stream);
+ kfree(sbi->id_table);
+ kfree(sbi->fragment_index);
+ kfree(sbi->meta_index);
+- kfree(sbi->stream.workspace);
+ kfree(sb->s_fs_info);
+ sb->s_fs_info = NULL;
+ }
+diff --git a/fs/squashfs/symlink.c b/fs/squashfs/symlink.c
+index 83d8788..e80be20 100644
+--- a/fs/squashfs/symlink.c
++++ b/fs/squashfs/symlink.c
+@@ -36,7 +36,6 @@
+ #include <linux/slab.h>
+ #include <linux/string.h>
+ #include <linux/pagemap.h>
+-#include <linux/zlib.h>
+
+ #include "squashfs_fs.h"
+ #include "squashfs_fs_sb.h"
+diff --git a/fs/squashfs/zlib_wrapper.c b/fs/squashfs/zlib_wrapper.c
+index 486a2a7..8ebbbc7 100644
+--- a/fs/squashfs/zlib_wrapper.c
++++ b/fs/squashfs/zlib_wrapper.c
+@@ -31,21 +31,51 @@
+ #include "squashfs_fs_i.h"
+ #include "squashfs.h"
+
++void *zlib_init()
++{
++ z_stream *stream = kmalloc(sizeof(z_stream), GFP_KERNEL);
++ if (stream == NULL)
++ goto failed;
++ stream->workspace = kmalloc(zlib_inflate_workspacesize(),
++ GFP_KERNEL);
++ if (stream->workspace == NULL)
++ goto failed;
++
++ return stream;
++
++failed:
++ ERROR("Failed to allocate zlib workspace\n");
++ kfree(stream);
++ return NULL;
++}
++
++
++void zlib_free(void *strm)
++{
++ z_stream *stream = strm;
++
++ if (stream)
++ kfree(stream->workspace);
++ kfree(stream);
++}
++
++
+ int zlib_uncompress(struct squashfs_sb_info *msblk, void **buffer,
+ struct buffer_head **bh, int b, int offset, int length, int srclength,
+ int pages)
+ {
+ int zlib_err = 0, zlib_init = 0;
+ int avail, bytes, k = 0, page = 0;
++ z_stream *stream = msblk->stream;
+
+ mutex_lock(&msblk->read_data_mutex);
+
+- msblk->stream.avail_out = 0;
+- msblk->stream.avail_in = 0;
++ stream->avail_out = 0;
++ stream->avail_in = 0;
+
+ bytes = length;
+ do {
+- if (msblk->stream.avail_in == 0 && k < b) {
++ if (stream->avail_in == 0 && k < b) {
+ avail = min(bytes, msblk->devblksize - offset);
+ bytes -= avail;
+ wait_on_buffer(bh[k]);
+@@ -58,18 +88,18 @@ int zlib_uncompress(struct squashfs_sb_info *msblk, void **buffer,
+ continue;
+ }
+
+- msblk->stream.next_in = bh[k]->b_data + offset;
+- msblk->stream.avail_in = avail;
++ stream->next_in = bh[k]->b_data + offset;
++ stream->avail_in = avail;
+ offset = 0;
+ }
+
+- if (msblk->stream.avail_out == 0 && page < pages) {
+- msblk->stream.next_out = buffer[page++];
+- msblk->stream.avail_out = PAGE_CACHE_SIZE;
++ if (stream->avail_out == 0 && page < pages) {
++ stream->next_out = buffer[page++];
++ stream->avail_out = PAGE_CACHE_SIZE;
+ }
+
+ if (!zlib_init) {
+- zlib_err = zlib_inflateInit(&msblk->stream);
++ zlib_err = zlib_inflateInit(stream);
+ if (zlib_err != Z_OK) {
+ ERROR("zlib_inflateInit returned unexpected "
+ "result 0x%x, srclength %d\n",
+@@ -79,9 +109,9 @@ int zlib_uncompress(struct squashfs_sb_info *msblk, void **buffer,
+ zlib_init = 1;
+ }
+
+- zlib_err = zlib_inflate(&msblk->stream, Z_SYNC_FLUSH);
++ zlib_err = zlib_inflate(stream, Z_SYNC_FLUSH);
+
+- if (msblk->stream.avail_in == 0 && k < b)
++ if (stream->avail_in == 0 && k < b)
+ put_bh(bh[k++]);
+ } while (zlib_err == Z_OK);
+
+@@ -90,14 +120,14 @@ int zlib_uncompress(struct squashfs_sb_info *msblk, void **buffer,
+ goto release_mutex;
+ }
+
+- zlib_err = zlib_inflateEnd(&msblk->stream);
++ zlib_err = zlib_inflateEnd(stream);
+ if (zlib_err != Z_OK) {
+ ERROR("zlib_inflate error, data probably corrupt\n");
+ goto release_mutex;
+ }
+
+ mutex_unlock(&msblk->read_data_mutex);
+- return msblk->stream.total_out;
++ return stream->total_out;
+
+ release_mutex:
+ mutex_unlock(&msblk->read_data_mutex);
+--
+1.5.2.5
+
diff --git a/recipes/linux/linux-2.6.31/0003-Squashfs-add-a-decompressor-framework.patch b/recipes/linux/linux-2.6.31/0003-Squashfs-add-a-decompressor-framework.patch
new file mode 100644
index 0000000000..b83182536d
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/0003-Squashfs-add-a-decompressor-framework.patch
@@ -0,0 +1,442 @@
+From 327fbf47a419befc6bff74f3ca42d2b6f0841903 Mon Sep 17 00:00:00 2001
+From: Phillip Lougher <phillip@lougher.demon.co.uk>
+Date: Tue, 6 Oct 2009 04:04:15 +0100
+Subject: [PATCH] Squashfs: add a decompressor framework
+
+This adds a decompressor framework which allows multiple compression
+algorithms to be cleanly supported.
+
+Also update zlib wrapper and other code to use the new framework.
+
+Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
+---
+ fs/squashfs/Makefile | 2 +-
+ fs/squashfs/block.c | 6 ++--
+ fs/squashfs/decompressor.c | 58 ++++++++++++++++++++++++++++++++++++++++++
+ fs/squashfs/decompressor.h | 55 +++++++++++++++++++++++++++++++++++++++
+ fs/squashfs/squashfs.h | 14 +++++-----
+ fs/squashfs/squashfs_fs_sb.h | 41 +++++++++++++++--------------
+ fs/squashfs/super.c | 45 ++++++++++++++++++-------------
+ fs/squashfs/zlib_wrapper.c | 17 ++++++++++--
+ 8 files changed, 185 insertions(+), 53 deletions(-)
+
+Index: git/fs/squashfs/Makefile
+===================================================================
+--- git.orig/fs/squashfs/Makefile 2009-10-26 12:19:33.000000000 +0100
++++ git/fs/squashfs/Makefile 2009-10-26 14:25:41.000000000 +0100
+@@ -4,4 +4,4 @@
+
+ obj-$(CONFIG_SQUASHFS) += squashfs.o
+ squashfs-y += block.o cache.o dir.o export.o file.o fragment.o id.o inode.o
+-squashfs-y += namei.o super.o symlink.o zlib_wrapper.o
++squashfs-y += namei.o super.o symlink.o zlib_wrapper.o decompressor.o
+Index: git/fs/squashfs/block.c
+===================================================================
+--- git.orig/fs/squashfs/block.c 2009-10-26 12:19:33.000000000 +0100
++++ git/fs/squashfs/block.c 2009-10-26 14:25:41.000000000 +0100
+@@ -36,7 +36,7 @@
+ #include "squashfs_fs_sb.h"
+ #include "squashfs_fs_i.h"
+ #include "squashfs.h"
+-
++#include "decompressor.h"
+ /*
+ * Read the metadata block length, this is stored in the first two
+ * bytes of the metadata block.
+@@ -151,8 +151,8 @@
+ }
+
+ if (compressed) {
+- length = zlib_uncompress(msblk, buffer, bh, b, offset, length,
+- srclength, pages);
++ length = squashfs_decompress(msblk, buffer, bh, b, offset,
++ length, srclength, pages);
+ if (length < 0)
+ goto read_failure;
+ } else {
+Index: git/fs/squashfs/decompressor.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ git/fs/squashfs/decompressor.c 2009-10-26 14:25:41.000000000 +0100
+@@ -0,0 +1,58 @@
++/*
++ * Squashfs - a compressed read only filesystem for Linux
++ *
++ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
++ * Phillip Lougher <phillip@lougher.demon.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2,
++ * or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++ *
++ * decompressor.c
++ */
++
++#include <linux/types.h>
++#include <linux/mutex.h>
++#include <linux/buffer_head.h>
++
++#include "squashfs_fs.h"
++#include "squashfs_fs_sb.h"
++#include "squashfs_fs_i.h"
++#include "decompressor.h"
++#include "squashfs.h"
++
++/*
++ * This file (and decompressor.h) implements a decompressor framework for
++ * Squashfs, allowing multiple decompressors to be easily supported
++ */
++
++static const struct squashfs_decompressor squashfs_unknown_comp_ops = {
++ NULL, NULL, NULL, 0, "unknown", 0
++};
++
++static const struct squashfs_decompressor *decompressor[] = {
++ &squashfs_zlib_comp_ops,
++ &squashfs_unknown_comp_ops
++};
++
++
++const struct squashfs_decompressor *squashfs_lookup_decompressor(int id)
++{
++ int i;
++
++ for (i = 0; decompressor[i]->id; i++)
++ if (id == decompressor[i]->id)
++ break;
++
++ return decompressor[i];
++}
+Index: git/fs/squashfs/decompressor.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ git/fs/squashfs/decompressor.h 2009-10-26 14:25:41.000000000 +0100
+@@ -0,0 +1,55 @@
++#ifndef DECOMPRESSOR_H
++#define DECOMPRESSOR_H
++/*
++ * Squashfs - a compressed read only filesystem for Linux
++ *
++ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
++ * Phillip Lougher <phillip@lougher.demon.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2,
++ * or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++ *
++ * decompressor.h
++ */
++
++struct squashfs_decompressor {
++ void *(*init)(void);
++ void (*free)(void *);
++ int (*decompress)(struct squashfs_sb_info *, void **,
++ struct buffer_head **, int, int, int, int, int);
++ int id;
++ char *name;
++ int supported;
++};
++
++static inline void *squashfs_decompressor_init(struct squashfs_sb_info *msblk)
++{
++ return msblk->decompressor->init();
++}
++
++static inline void squashfs_decompressor_free(struct squashfs_sb_info *msblk,
++ void *s)
++{
++ if (msblk->decompressor)
++ msblk->decompressor->free(s);
++}
++
++static inline int squashfs_decompress(struct squashfs_sb_info *msblk,
++ void **buffer, struct buffer_head **bh, int b, int offset, int length,
++ int srclength, int pages)
++{
++ return msblk->decompressor->decompress(msblk, buffer, bh, b, offset,
++ length, srclength, pages);
++}
++#endif
+Index: git/fs/squashfs/squashfs.h
+===================================================================
+--- git.orig/fs/squashfs/squashfs.h 2009-10-26 12:19:33.000000000 +0100
++++ git/fs/squashfs/squashfs.h 2009-10-26 14:25:41.000000000 +0100
+@@ -51,6 +51,9 @@
+ u64, int);
+ extern int squashfs_read_table(struct super_block *, void *, u64, int);
+
++/* decompressor.c */
++extern const struct squashfs_decompressor *squashfs_lookup_decompressor(int);
++
+ /* export.c */
+ extern __le64 *squashfs_read_inode_lookup_table(struct super_block *, u64,
+ unsigned int);
+@@ -70,14 +73,8 @@
+ unsigned int);
+ extern int squashfs_read_inode(struct inode *, long long);
+
+-/* zlib_wrapper.c */
+-extern void *zlib_init(void);
+-extern void zlib_free(void *);
+-extern int zlib_uncompress(struct squashfs_sb_info *, void **,
+- struct buffer_head **, int, int, int, int, int);
+-
+ /*
+- * Inodes and files operations
++ * Inodes, files and decompressor operations
+ */
+
+ /* dir.c */
+@@ -94,3 +91,6 @@
+
+ /* symlink.c */
+ extern const struct address_space_operations squashfs_symlink_aops;
++
++/* zlib_wrapper.c */
++extern const struct squashfs_decompressor squashfs_zlib_comp_ops;
+Index: git/fs/squashfs/squashfs_fs_sb.h
+===================================================================
+--- git.orig/fs/squashfs/squashfs_fs_sb.h 2009-10-26 12:19:33.000000000 +0100
++++ git/fs/squashfs/squashfs_fs_sb.h 2009-10-26 14:25:41.000000000 +0100
+@@ -52,25 +52,26 @@
+ };
+
+ struct squashfs_sb_info {
+- int devblksize;
+- int devblksize_log2;
+- struct squashfs_cache *block_cache;
+- struct squashfs_cache *fragment_cache;
+- struct squashfs_cache *read_page;
+- int next_meta_index;
+- __le64 *id_table;
+- __le64 *fragment_index;
+- unsigned int *fragment_index_2;
+- struct mutex read_data_mutex;
+- struct mutex meta_index_mutex;
+- struct meta_index *meta_index;
+- void *stream;
+- __le64 *inode_lookup_table;
+- u64 inode_table;
+- u64 directory_table;
+- unsigned int block_size;
+- unsigned short block_log;
+- long long bytes_used;
+- unsigned int inodes;
++ const struct squashfs_decompressor *decompressor;
++ int devblksize;
++ int devblksize_log2;
++ struct squashfs_cache *block_cache;
++ struct squashfs_cache *fragment_cache;
++ struct squashfs_cache *read_page;
++ int next_meta_index;
++ __le64 *id_table;
++ __le64 *fragment_index;
++ unsigned int *fragment_index_2;
++ struct mutex read_data_mutex;
++ struct mutex meta_index_mutex;
++ struct meta_index *meta_index;
++ void *stream;
++ __le64 *inode_lookup_table;
++ u64 inode_table;
++ u64 directory_table;
++ unsigned int block_size;
++ unsigned short block_log;
++ long long bytes_used;
++ unsigned int inodes;
+ };
+ #endif
+Index: git/fs/squashfs/super.c
+===================================================================
+--- git.orig/fs/squashfs/super.c 2009-10-26 12:19:33.000000000 +0100
++++ git/fs/squashfs/super.c 2009-10-26 14:31:09.000000000 +0100
+@@ -41,27 +41,37 @@
+ #include "squashfs_fs_sb.h"
+ #include "squashfs_fs_i.h"
+ #include "squashfs.h"
++#include "decompressor.h"
+
+ static struct file_system_type squashfs_fs_type;
+ static struct super_operations squashfs_super_ops;
+
+-static int supported_squashfs_filesystem(short major, short minor, short comp)
++
++
++static const struct squashfs_decompressor *supported_squashfs_filesystem(short
++ major, short minor, short id)
+ {
++ const struct squashfs_decompressor *decompressor;
++
+ if (major < SQUASHFS_MAJOR) {
+ ERROR("Major/Minor mismatch, older Squashfs %d.%d "
+ "filesystems are unsupported\n", major, minor);
+- return -EINVAL;
++ return NULL;
+ } else if (major > SQUASHFS_MAJOR || minor > SQUASHFS_MINOR) {
+ ERROR("Major/Minor mismatch, trying to mount newer "
+ "%d.%d filesystem\n", major, minor);
+ ERROR("Please update your kernel\n");
+- return -EINVAL;
++ return NULL;
+ }
+
+- if (comp != ZLIB_COMPRESSION)
+- return -EINVAL;
++ decompressor = squashfs_lookup_decompressor(id);
++ if (!decompressor->supported) {
++ ERROR("Filesystem uses \"%s\" compression. This is not "
++ "supported\n", decompressor->name);
++ return NULL;
++ }
+
+- return 0;
++ return decompressor;
+ }
+
+
+@@ -86,10 +96,6 @@
+ }
+ msblk = sb->s_fs_info;
+
+- msblk->stream = zlib_init();
+- if (msblk->stream == NULL)
+- goto failure;
+-
+ sblk = kzalloc(sizeof(*sblk), GFP_KERNEL);
+ if (sblk == NULL) {
+ ERROR("Failed to allocate squashfs_super_block\n");
+@@ -116,25 +122,25 @@
+ goto failed_mount;
+ }
+
++ err = -EINVAL;
++
+ /* Check it is a SQUASHFS superblock */
+ sb->s_magic = le32_to_cpu(sblk->s_magic);
+ if (sb->s_magic != SQUASHFS_MAGIC) {
+ if (!silent)
+ ERROR("Can't find a SQUASHFS superblock on %s\n",
+ bdevname(sb->s_bdev, b));
+- err = -EINVAL;
+ goto failed_mount;
+ }
+
+- /* Check the MAJOR & MINOR versions and compression type */
+- err = supported_squashfs_filesystem(le16_to_cpu(sblk->s_major),
++ /* Check the MAJOR & MINOR versions and lookup compression type */
++ msblk->decompressor = supported_squashfs_filesystem(
++ le16_to_cpu(sblk->s_major),
+ le16_to_cpu(sblk->s_minor),
+ le16_to_cpu(sblk->compression));
+- if (err < 0)
++ if (msblk->decompressor == NULL)
+ goto failed_mount;
+
+- err = -EINVAL;
+-
+ /*
+ * Check if there's xattrs in the filesystem. These are not
+ * supported in this version, so warn that they will be ignored.
+@@ -201,6 +207,10 @@
+
+ err = -ENOMEM;
+
++ msblk->stream = squashfs_decompressor_init(msblk);
++ if (msblk->stream == NULL)
++ goto failed_mount;
++
+ msblk->block_cache = squashfs_cache_init("metadata",
+ SQUASHFS_CACHED_BLKS, SQUASHFS_METADATA_SIZE);
+ if (msblk->block_cache == NULL)
+@@ -288,7 +298,7 @@
+ squashfs_cache_delete(msblk->block_cache);
+ squashfs_cache_delete(msblk->fragment_cache);
+ squashfs_cache_delete(msblk->read_page);
+- zlib_free(msblk->stream);
++ squashfs_decompressor_free(msblk, msblk->stream);
+ kfree(msblk->inode_lookup_table);
+ kfree(msblk->fragment_index);
+ kfree(msblk->id_table);
+@@ -298,7 +308,6 @@
+ return err;
+
+ failure:
+- zlib_free(msblk->stream);
+ kfree(sb->s_fs_info);
+ sb->s_fs_info = NULL;
+ return -ENOMEM;
+@@ -342,7 +351,7 @@
+ squashfs_cache_delete(sbi->block_cache);
+ squashfs_cache_delete(sbi->fragment_cache);
+ squashfs_cache_delete(sbi->read_page);
+- zlib_free(sbi->stream);
++ squashfs_decompressor_free(sbi, sbi->stream);
+ kfree(sbi->id_table);
+ kfree(sbi->fragment_index);
+ kfree(sbi->meta_index);
+Index: git/fs/squashfs/zlib_wrapper.c
+===================================================================
+--- git.orig/fs/squashfs/zlib_wrapper.c 2009-10-26 12:19:33.000000000 +0100
++++ git/fs/squashfs/zlib_wrapper.c 2009-10-26 14:25:41.000000000 +0100
+@@ -30,8 +30,9 @@
+ #include "squashfs_fs_sb.h"
+ #include "squashfs_fs_i.h"
+ #include "squashfs.h"
++#include "decompressor.h"
+
+-void *zlib_init()
++static void *zlib_init(void)
+ {
+ z_stream *stream = kmalloc(sizeof(z_stream), GFP_KERNEL);
+ if (stream == NULL)
+@@ -50,7 +51,7 @@
+ }
+
+
+-void zlib_free(void *strm)
++static void zlib_free(void *strm)
+ {
+ z_stream *stream = strm;
+
+@@ -60,7 +61,7 @@
+ }
+
+
+-int zlib_uncompress(struct squashfs_sb_info *msblk, void **buffer,
++static int zlib_uncompress(struct squashfs_sb_info *msblk, void **buffer,
+ struct buffer_head **bh, int b, int offset, int length, int srclength,
+ int pages)
+ {
+@@ -137,3 +138,13 @@
+
+ return -EIO;
+ }
++
++const struct squashfs_decompressor squashfs_zlib_comp_ops = {
++ .init = zlib_init,
++ .free = zlib_free,
++ .decompress = zlib_uncompress,
++ .id = ZLIB_COMPRESSION,
++ .name = "zlib",
++ .supported = 1
++};
++
diff --git a/recipes/linux/linux-2.6.31/0004-Squashfs-add-decompressor-entries-for-lzma-and-lzo.patch b/recipes/linux/linux-2.6.31/0004-Squashfs-add-decompressor-entries-for-lzma-and-lzo.patch
new file mode 100644
index 0000000000..f7d32e36cc
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/0004-Squashfs-add-decompressor-entries-for-lzma-and-lzo.patch
@@ -0,0 +1,61 @@
+From 1885ca0a1973944684f252094a703b7c80dfc974 Mon Sep 17 00:00:00 2001
+From: Phillip Lougher <phillip@lougher.demon.co.uk>
+Date: Wed, 14 Oct 2009 03:58:11 +0100
+Subject: [PATCH] Squashfs: add decompressor entries for lzma and lzo
+
+Add knowledge of lzma/lzo compression formats to the decompressor
+framework. For now these are added as unsupported. Without
+these entries lzma/lzo compressed filesystems will be flagged as
+having unknown compression which is undesirable.
+
+Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
+---
+ fs/squashfs/decompressor.c | 10 ++++++++++
+ fs/squashfs/squashfs_fs.h | 4 +++-
+ 2 files changed, 13 insertions(+), 1 deletions(-)
+
+diff --git a/fs/squashfs/decompressor.c b/fs/squashfs/decompressor.c
+index 0072ccd..157478d 100644
+--- a/fs/squashfs/decompressor.c
++++ b/fs/squashfs/decompressor.c
+@@ -36,12 +36,22 @@
+ * Squashfs, allowing multiple decompressors to be easily supported
+ */
+
++static const struct squashfs_decompressor squashfs_lzma_unsupported_comp_ops = {
++ NULL, NULL, NULL, LZMA_COMPRESSION, "lzma", 0
++};
++
++static const struct squashfs_decompressor squashfs_lzo_unsupported_comp_ops = {
++ NULL, NULL, NULL, LZO_COMPRESSION, "lzo", 0
++};
++
+ static const struct squashfs_decompressor squashfs_unknown_comp_ops = {
+ NULL, NULL, NULL, 0, "unknown", 0
+ };
+
+ static const struct squashfs_decompressor *decompressor[] = {
+ &squashfs_zlib_comp_ops,
++ &squashfs_lzma_unsupported_comp_ops,
++ &squashfs_lzo_unsupported_comp_ops,
+ &squashfs_unknown_comp_ops
+ };
+
+diff --git a/fs/squashfs/squashfs_fs.h b/fs/squashfs/squashfs_fs.h
+index 283daaf..36e1604 100644
+--- a/fs/squashfs/squashfs_fs.h
++++ b/fs/squashfs/squashfs_fs.h
+@@ -211,7 +211,9 @@ struct meta_index {
+ /*
+ * definitions for structures on disk
+ */
+-#define ZLIB_COMPRESSION 1
++#define ZLIB_COMPRESSION 1
++#define LZMA_COMPRESSION 2
++#define LZO_COMPRESSION 3
+
+ struct squashfs_super_block {
+ __le32 s_magic;
+--
+1.5.2.5
+
diff --git a/recipes/linux/linux-2.6.31/0005-Squashfs-add-an-extra-parameter-to-the-decompressor.patch b/recipes/linux/linux-2.6.31/0005-Squashfs-add-an-extra-parameter-to-the-decompressor.patch
new file mode 100644
index 0000000000..0082efdf82
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/0005-Squashfs-add-an-extra-parameter-to-the-decompressor.patch
@@ -0,0 +1,49 @@
+From 5f393ede3ddb5dd4cc2a9f243182fac45f1ce10b Mon Sep 17 00:00:00 2001
+From: Phillip Lougher <phillip@lougher.demon.co.uk>
+Date: Wed, 14 Oct 2009 04:07:54 +0100
+Subject: [PATCH] Squashfs: add an extra parameter to the decompressor init function
+
+Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
+---
+ fs/squashfs/decompressor.h | 4 ++--
+ fs/squashfs/zlib_wrapper.c | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/fs/squashfs/decompressor.h b/fs/squashfs/decompressor.h
+index 778760c..7425f80 100644
+--- a/fs/squashfs/decompressor.h
++++ b/fs/squashfs/decompressor.h
+@@ -24,7 +24,7 @@
+ */
+
+ struct squashfs_decompressor {
+- void *(*init)(void);
++ void *(*init)(struct squashfs_sb_info *);
+ void (*free)(void *);
+ int (*decompress)(struct squashfs_sb_info *, void **,
+ struct buffer_head **, int, int, int, int, int);
+@@ -35,7 +35,7 @@ struct squashfs_decompressor {
+
+ static inline void *squashfs_decompressor_init(struct squashfs_sb_info *msblk)
+ {
+- return msblk->decompressor->init();
++ return msblk->decompressor->init(msblk);
+ }
+
+ static inline void squashfs_decompressor_free(struct squashfs_sb_info *msblk,
+diff --git a/fs/squashfs/zlib_wrapper.c b/fs/squashfs/zlib_wrapper.c
+index 381768c..4dd70e0 100644
+--- a/fs/squashfs/zlib_wrapper.c
++++ b/fs/squashfs/zlib_wrapper.c
+@@ -32,7 +32,7 @@
+ #include "squashfs.h"
+ #include "decompressor.h"
+
+-static void *zlib_init(void)
++static void *zlib_init(struct squashfs_sb_info *dummy)
+ {
+ z_stream *stream = kmalloc(sizeof(z_stream), GFP_KERNEL);
+ if (stream == NULL)
+--
+1.5.2.5
+
diff --git a/recipes/linux/linux-2.6.31/0006-Squashfs-add-LZMA-compression.patch b/recipes/linux/linux-2.6.31/0006-Squashfs-add-LZMA-compression.patch
new file mode 100644
index 0000000000..46f3ada441
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/0006-Squashfs-add-LZMA-compression.patch
@@ -0,0 +1,229 @@
+From f49e1efdd179d54e814ff2a8e8f469496583062c Mon Sep 17 00:00:00 2001
+From: Phillip Lougher <phillip@lougher.demon.co.uk>
+Date: Tue, 20 Oct 2009 10:54:36 +0100
+Subject: [PATCH] Squashfs: add LZMA compression
+
+Add support for LZMA compressed filesystems. This is an initial
+implementation.
+
+Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
+---
+ fs/squashfs/Kconfig | 5 ++
+ fs/squashfs/Makefile | 1 +
+ fs/squashfs/decompressor.c | 4 +
+ fs/squashfs/lzma_wrapper.c | 151 ++++++++++++++++++++++++++++++++++++++++++++
+ fs/squashfs/squashfs.h | 3 +
+ 5 files changed, 164 insertions(+), 0 deletions(-)
+
+diff --git a/fs/squashfs/Kconfig b/fs/squashfs/Kconfig
+index 25a00d1..0294aa2 100644
+--- a/fs/squashfs/Kconfig
++++ b/fs/squashfs/Kconfig
+@@ -26,6 +26,11 @@ config SQUASHFS
+
+ If unsure, say N.
+
++config SQUASHFS_LZMA
++ bool "Include support for LZMA compressed file systems"
++ depends on SQUASHFS
++ select DECOMPRESS_LZMA
++
+ config SQUASHFS_EMBEDDED
+
+ bool "Additional option for memory-constrained systems"
+diff --git a/fs/squashfs/Makefile b/fs/squashfs/Makefile
+index df8a19e..45aaefd 100644
+--- a/fs/squashfs/Makefile
++++ b/fs/squashfs/Makefile
+@@ -5,3 +5,4 @@
+ obj-$(CONFIG_SQUASHFS) += squashfs.o
+ squashfs-y += block.o cache.o dir.o export.o file.o fragment.o id.o inode.o
+ squashfs-y += namei.o super.o symlink.o zlib_wrapper.o decompressor.o
++squashfs-$(CONFIG_SQUASHFS_LZMA) += lzma_wrapper.o
+diff --git a/fs/squashfs/decompressor.c b/fs/squashfs/decompressor.c
+index 157478d..0b6ad9b 100644
+--- a/fs/squashfs/decompressor.c
++++ b/fs/squashfs/decompressor.c
+@@ -50,7 +50,11 @@ static const struct squashfs_decompressor squashfs_unknown_comp_ops = {
+
+ static const struct squashfs_decompressor *decompressor[] = {
+ &squashfs_zlib_comp_ops,
++#ifdef CONFIG_SQUASHFS_LZMA
++ &squashfs_lzma_comp_ops,
++#else
+ &squashfs_lzma_unsupported_comp_ops,
++#endif
+ &squashfs_lzo_unsupported_comp_ops,
+ &squashfs_unknown_comp_ops
+ };
+diff --git a/fs/squashfs/lzma_wrapper.c b/fs/squashfs/lzma_wrapper.c
+new file mode 100644
+index 0000000..9fa617d
+--- /dev/null
++++ b/fs/squashfs/lzma_wrapper.c
+@@ -0,0 +1,151 @@
++/*
++ * Squashfs - a compressed read only filesystem for Linux
++ *
++ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
++ * Phillip Lougher <phillip@lougher.demon.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2,
++ * or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++ *
++ * lzma_wrapper.c
++ */
++
++#include <asm/unaligned.h>
++#include <linux/buffer_head.h>
++#include <linux/mutex.h>
++#include <linux/vmalloc.h>
++#include <linux/decompress/unlzma.h>
++
++#include "squashfs_fs.h"
++#include "squashfs_fs_sb.h"
++#include "squashfs_fs_i.h"
++#include "squashfs.h"
++#include "decompressor.h"
++
++struct squashfs_lzma {
++ void *input;
++ void *output;
++};
++
++/* decompress_unlzma.c is currently non re-entrant... */
++DEFINE_MUTEX(lzma_mutex);
++
++/* decompress_unlzma.c doesn't provide any context in its callbacks... */
++static int lzma_error;
++
++static void error(char *m)
++{
++ ERROR("unlzma error: %s\n", m);
++ lzma_error = 1;
++}
++
++
++static void *lzma_init(struct squashfs_sb_info *msblk)
++{
++ struct squashfs_lzma *stream = kzalloc(sizeof(*stream), GFP_KERNEL);
++ if (stream == NULL)
++ goto failed;
++ stream->input = vmalloc(msblk->block_size);
++ if (stream->input == NULL)
++ goto failed;
++ stream->output = vmalloc(msblk->block_size);
++ if (stream->output == NULL)
++ goto failed2;
++
++ return stream;
++
++failed2:
++ vfree(stream->input);
++failed:
++ ERROR("failed to allocate lzma workspace\n");
++ kfree(stream);
++ return NULL;
++}
++
++
++static void lzma_free(void *strm)
++{
++ struct squashfs_lzma *stream = strm;
++
++ if (stream) {
++ vfree(stream->input);
++ vfree(stream->output);
++ }
++ kfree(stream);
++}
++
++
++static int lzma_uncompress(struct squashfs_sb_info *msblk, void **buffer,
++ struct buffer_head **bh, int b, int offset, int length, int srclength,
++ int pages)
++{
++ struct squashfs_lzma *stream = msblk->stream;
++ void *buff = stream->input;
++ int avail, i, bytes = length, res;
++
++ mutex_lock(&lzma_mutex);
++
++ for (i = 0; i < b; i++) {
++ wait_on_buffer(bh[i]);
++ if (!buffer_uptodate(bh[i]))
++ goto block_release;
++
++ avail = min(bytes, msblk->devblksize - offset);
++ memcpy(buff, bh[i]->b_data + offset, avail);
++ buff += avail;
++ bytes -= avail;
++ offset = 0;
++ put_bh(bh[i]);
++ }
++
++ lzma_error = 0;
++ res = unlzma(stream->input, length, NULL, NULL, stream->output, NULL,
++ error);
++ if (res || lzma_error)
++ goto failed;
++
++ /* uncompressed size is stored in the LZMA header (5 byte offset) */
++ res = bytes = get_unaligned_le32(stream->input + 5);
++ for (i = 0, buff = stream->output; bytes && i < pages; i++) {
++ avail = min_t(int, bytes, PAGE_CACHE_SIZE);
++ memcpy(buffer[i], buff, avail);
++ buff += avail;
++ bytes -= avail;
++ }
++ if (bytes)
++ goto failed;
++
++ mutex_unlock(&lzma_mutex);
++ return res;
++
++block_release:
++ for (; i < b; i++)
++ put_bh(bh[i]);
++
++failed:
++ mutex_unlock(&lzma_mutex);
++
++ ERROR("lzma decompression failed, data probably corrupt\n");
++ return -EIO;
++}
++
++const struct squashfs_decompressor squashfs_lzma_comp_ops = {
++ .init = lzma_init,
++ .free = lzma_free,
++ .decompress = lzma_uncompress,
++ .id = LZMA_COMPRESSION,
++ .name = "lzma",
++ .supported = 1
++};
++
+diff --git a/fs/squashfs/squashfs.h b/fs/squashfs/squashfs.h
+index fe2587a..d094886 100644
+--- a/fs/squashfs/squashfs.h
++++ b/fs/squashfs/squashfs.h
+@@ -94,3 +94,6 @@ extern const struct address_space_operations squashfs_symlink_aops;
+
+ /* zlib_wrapper.c */
+ extern const struct squashfs_decompressor squashfs_zlib_comp_ops;
++
++/* lzma wrapper.c */
++extern const struct squashfs_decompressor squashfs_lzma_comp_ops;
+--
+1.5.2.5
+
diff --git a/recipes/linux/linux-2.6.31/0007-Squashfs-Make-unlzma-available-to-non-initramfs-ini.patch b/recipes/linux/linux-2.6.31/0007-Squashfs-Make-unlzma-available-to-non-initramfs-ini.patch
new file mode 100644
index 0000000000..2d6fc3af7e
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/0007-Squashfs-Make-unlzma-available-to-non-initramfs-ini.patch
@@ -0,0 +1,186 @@
+From fdf23ed283bc6ef5c25076ce2065f892120ff556 Mon Sep 17 00:00:00 2001
+From: Phillip Lougher <phillip@lougher.demon.co.uk>
+Date: Thu, 22 Oct 2009 04:57:38 +0100
+Subject: [PATCH] Squashfs: Make unlzma available to non initramfs/initrd code
+
+Add a config option DECOMPRESS_LZMA_NEEDED which allows subsystems to
+specify they need the unlzma code. Normally decompress_unlzma.c is
+compiled with __init and unlzma is not exported to modules.
+
+Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
+---
+ fs/squashfs/Kconfig | 1 +
+ include/linux/decompress/bunzip2_mm.h | 12 ++++++++++++
+ include/linux/decompress/inflate_mm.h | 12 ++++++++++++
+ include/linux/decompress/mm.h | 3 ---
+ include/linux/decompress/unlzma_mm.h | 20 ++++++++++++++++++++
+ lib/Kconfig | 3 +++
+ lib/decompress_bunzip2.c | 1 +
+ lib/decompress_inflate.c | 1 +
+ lib/decompress_unlzma.c | 5 ++++-
+ 9 files changed, 54 insertions(+), 4 deletions(-)
+
+diff --git a/fs/squashfs/Kconfig b/fs/squashfs/Kconfig
+index 0294aa2..7ec5d7e 100644
+--- a/fs/squashfs/Kconfig
++++ b/fs/squashfs/Kconfig
+@@ -30,6 +30,7 @@ config SQUASHFS_LZMA
+ bool "Include support for LZMA compressed file systems"
+ depends on SQUASHFS
+ select DECOMPRESS_LZMA
++ select DECOMPRESS_LZMA_NEEDED
+
+ config SQUASHFS_EMBEDDED
+
+diff --git a/include/linux/decompress/bunzip2_mm.h b/include/linux/decompress/bunzip2_mm.h
+new file mode 100644
+index 0000000..cac6fef
+--- /dev/null
++++ b/include/linux/decompress/bunzip2_mm.h
+@@ -0,0 +1,12 @@
++#ifndef BUNZIP2_MM_H
++#define BUNZIP2_MM_H
++
++#ifdef STATIC
++/* Code active when included from pre-boot environment: */
++#define INIT
++#else
++/* Compile for initramfs/initrd code only */
++#define INIT __init
++#endif
++
++#endif
+diff --git a/include/linux/decompress/inflate_mm.h b/include/linux/decompress/inflate_mm.h
+new file mode 100644
+index 0000000..ca4a2ae
+--- /dev/null
++++ b/include/linux/decompress/inflate_mm.h
+@@ -0,0 +1,12 @@
++#ifndef INFLATE_MM_H
++#define INFLATE_MM_H
++
++#ifdef STATIC
++/* Code active when included from pre-boot environment: */
++#define INIT
++#else
++/* Compile for initramfs/initrd code only */
++#define INIT __init
++#endif
++
++#endif
+diff --git a/include/linux/decompress/mm.h b/include/linux/decompress/mm.h
+index 12ff8c3..80f5ba4 100644
+--- a/include/linux/decompress/mm.h
++++ b/include/linux/decompress/mm.h
+@@ -53,8 +53,6 @@ static void free(void *where)
+
+ #define set_error_fn(x)
+
+-#define INIT
+-
+ #else /* STATIC */
+
+ /* Code active when compiled standalone for use when loading ramdisk: */
+@@ -77,7 +75,6 @@ static void free(void *where)
+ static void(*error)(char *m);
+ #define set_error_fn(x) error = x;
+
+-#define INIT __init
+ #define STATIC
+
+ #include <linux/init.h>
+diff --git a/include/linux/decompress/unlzma_mm.h b/include/linux/decompress/unlzma_mm.h
+new file mode 100644
+index 0000000..859287e
+--- /dev/null
++++ b/include/linux/decompress/unlzma_mm.h
+@@ -0,0 +1,20 @@
++#ifndef UNLZMA_MM_H
++#define UNLZMA_MM_H
++
++#ifdef STATIC
++
++/* Code active when included from pre-boot environment: */
++#define INIT
++
++#elif defined(CONFIG_DECOMPRESS_LZMA_NEEDED)
++
++/* Make it available to non initramfs/initrd code */
++#define INIT
++#include <linux/module.h>
++#else
++
++/* Compile for initramfs/initrd code only */
++#define INIT __init
++#endif
++
++#endif
+diff --git a/lib/Kconfig b/lib/Kconfig
+index bb1326d..25e7f28 100644
+--- a/lib/Kconfig
++++ b/lib/Kconfig
+@@ -117,6 +117,9 @@ config DECOMPRESS_BZIP2
+ config DECOMPRESS_LZMA
+ tristate
+
++config DECOMPRESS_LZMA_NEEDED
++ boolean
++
+ #
+ # Generic allocator support is selected if needed
+ #
+diff --git a/lib/decompress_bunzip2.c b/lib/decompress_bunzip2.c
+index 600f473..6eb6433 100644
+--- a/lib/decompress_bunzip2.c
++++ b/lib/decompress_bunzip2.c
+@@ -52,6 +52,7 @@
+ #include <linux/slab.h>
+ #endif /* STATIC */
+
++#include <linux/decompress/bunzip2_mm.h>
+ #include <linux/decompress/mm.h>
+
+ #ifndef INT_MAX
+diff --git a/lib/decompress_inflate.c b/lib/decompress_inflate.c
+index fc686c7..cb6bcab 100644
+--- a/lib/decompress_inflate.c
++++ b/lib/decompress_inflate.c
+@@ -23,6 +23,7 @@
+
+ #endif /* STATIC */
+
++#include <linux/decompress/inflate_mm.h>
+ #include <linux/decompress/mm.h>
+
+ #define GZIP_IOBUF_SIZE (16*1024)
+diff --git a/lib/decompress_unlzma.c b/lib/decompress_unlzma.c
+index ca82fde..b2fd927 100644
+--- a/lib/decompress_unlzma.c
++++ b/lib/decompress_unlzma.c
+@@ -36,6 +36,7 @@
+ #include <linux/slab.h>
+ #endif /* STATIC */
+
++#include <linux/decompress/unlzma_mm.h>
+ #include <linux/decompress/mm.h>
+
+ #define MIN(a, b) (((a) < (b)) ? (a) : (b))
+@@ -531,7 +532,7 @@ static inline void INIT process_bit1(struct writer *wr, struct rc *rc,
+
+
+
+-STATIC inline int INIT unlzma(unsigned char *buf, int in_len,
++STATIC int INIT unlzma(unsigned char *buf, int in_len,
+ int(*fill)(void*, unsigned int),
+ int(*flush)(void*, unsigned int),
+ unsigned char *output,
+@@ -664,4 +665,6 @@ STATIC int INIT decompress(unsigned char *buf, int in_len,
+ {
+ return unlzma(buf, in_len - 4, fill, flush, output, posp, error_fn);
+ }
++#elif defined(CONFIG_DECOMPRESS_LZMA_NEEDED)
++EXPORT_SYMBOL(unlzma);
+ #endif
+--
+1.5.2.5
+
diff --git a/recipes/linux/linux-2.6.31/ben-nanonote/001-core.patch b/recipes/linux/linux-2.6.31/ben-nanonote/001-core.patch
new file mode 100644
index 0000000000..67d3be0134
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/ben-nanonote/001-core.patch
@@ -0,0 +1,661 @@
+--- a/arch/mips/Kconfig
++++ b/arch/mips/Kconfig
+@@ -158,6 +158,9 @@ config MACH_JAZZ
+ Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and
+ Olivetti M700-10 workstations.
+
++config MACH_JZ
++ bool "Ingenic JZ4720/JZ4740 based machines"
++
+ config LASAT
+ bool "LASAT Networks platforms"
+ select CEVT_R4K
+@@ -661,6 +664,7 @@ endchoice
+ source "arch/mips/alchemy/Kconfig"
+ source "arch/mips/basler/excite/Kconfig"
+ source "arch/mips/jazz/Kconfig"
++source "arch/mips/jz4740/Kconfig"
+ source "arch/mips/lasat/Kconfig"
+ source "arch/mips/pmc-sierra/Kconfig"
+ source "arch/mips/sgi-ip27/Kconfig"
+@@ -1911,6 +1915,14 @@ config NR_CPUS
+
+ source "kernel/time/Kconfig"
+
++# the value of (max order + 1)
++config FORCE_MAX_ZONEORDER
++ prompt "MAX_ZONEORDER"
++ int
++ default "12"
++ help
++ The max memory that can be allocated = 4KB * 2^(CONFIG_FORCE_MAX_ZONEORDER - 1)
++
+ #
+ # Timer Interrupt Frequency Configuration
+ #
+@@ -2182,6 +2194,23 @@ config BINFMT_ELF32
+
+ endmenu
+
++menu "CPU Frequency scaling"
++
++config CPU_FREQ_JZ
++ tristate "CPUfreq driver for JZ CPUs"
++ depends on JZSOC
++ default n
++ help
++ This enables the CPUfreq driver for JZ CPUs.
++
++ If in doubt, say N.
++
++if (CPU_FREQ_JZ)
++source "drivers/cpufreq/Kconfig"
++endif
++
++endmenu
++
+ menu "Power management options"
+
+ config ARCH_HIBERNATION_POSSIBLE
+--- a/arch/mips/Makefile
++++ b/arch/mips/Makefile
+@@ -180,6 +180,14 @@ cflags-$(CONFIG_AR7) += -I$(srctree)/ar
+ load-$(CONFIG_AR7) += 0xffffffff94100000
+
+ #
++# Commond Ingenic JZ4740 series
++#
++
++core-$(CONFIG_SOC_JZ4740) += arch/mips/jz4740/
++cflags-$(CONFIG_SOC_JZ4740) += -I$(srctree)/arch/mips/include/asm/mach-jz4740
++load-$(CONFIG_SOC_JZ4740) += 0xffffffff80010000
++
++#
+ # Acer PICA 61, Mips Magnum 4000 and Olivetti M700.
+ #
+ core-$(CONFIG_MACH_JAZZ) += arch/mips/jazz/
+@@ -714,6 +722,12 @@ makeboot =$(Q)$(MAKE) $(build)=arch/mips
+
+ all: $(all-y)
+
++uImage: $(vmlinux-32)
++ +@$(call makeboot,$@)
++
++zImage: $(vmlinux-32)
++ +@$(call makeboot,$@)
++
+ vmlinux.bin: $(vmlinux-32)
+ +@$(call makeboot,$@)
+
+@@ -743,6 +757,7 @@ install:
+
+ archclean:
+ @$(MAKE) $(clean)=arch/mips/boot
++ @$(MAKE) $(clean)=arch/mips/boot/compressed
+ @$(MAKE) $(clean)=arch/mips/lasat
+
+ define archhelp
+@@ -750,6 +765,9 @@ define archhelp
+ echo ' vmlinux.ecoff - ECOFF boot image'
+ echo ' vmlinux.bin - Raw binary boot image'
+ echo ' vmlinux.srec - SREC boot image'
++ echo ' uImage - u-boot format image (arch/$(ARCH)/boot/uImage)'
++ echo ' zImage - Compressed binary image (arch/$(ARCH)/boot/compressed/zImage)'
++ echo ' vmlinux.bin - Uncompressed binary image (arch/$(ARCH)/boot/vmlinux.bin)'
+ echo
+ echo ' These will be default as apropriate for a configured platform.'
+ endef
+--- a/arch/mips/boot/Makefile
++++ b/arch/mips/boot/Makefile
+@@ -7,6 +7,9 @@
+ # Copyright (C) 2004 Maciej W. Rozycki
+ #
+
++# This one must match the LOADADDR in arch/mips/Makefile!
++LOADADDR=0x80010000
++
+ #
+ # Some DECstations need all possible sections of an ECOFF executable
+ #
+@@ -25,7 +28,7 @@ strip-flags = $(addprefix --remove-secti
+
+ VMLINUX = vmlinux
+
+-all: vmlinux.ecoff vmlinux.srec addinitrd
++all: vmlinux.ecoff vmlinux.srec addinitrd uImage zImage
+
+ vmlinux.ecoff: $(obj)/elf2ecoff $(VMLINUX)
+ $(obj)/elf2ecoff $(VMLINUX) vmlinux.ecoff $(E2EFLAGS)
+@@ -42,8 +45,24 @@ vmlinux.srec: $(VMLINUX)
+ $(obj)/addinitrd: $(obj)/addinitrd.c
+ $(HOSTCC) -o $@ $^
+
++uImage: $(VMLINUX) vmlinux.bin
++ rm -f $(obj)/vmlinux.bin.gz
++ gzip -9 $(obj)/vmlinux.bin
++ mkimage -A mips -O linux -T kernel -C gzip \
++ -a $(LOADADDR) -e $(shell sh ./$(obj)/tools/entry $(NM) $(VMLINUX) ) \
++ -n 'Linux-$(KERNELRELEASE)' \
++ -d $(obj)/vmlinux.bin.gz $(obj)/uImage
++ @echo ' Kernel: arch/mips/boot/$@ is ready'
++
++zImage:
++ $(Q)$(MAKE) $(build)=$(obj)/compressed loadaddr=$(LOADADDR) $@
++ @echo ' Kernel: arch/mips/boot/compressed/$@ is ready'
++
+ clean-files += addinitrd \
+ elf2ecoff \
+ vmlinux.bin \
+ vmlinux.ecoff \
+- vmlinux.srec
++ vmlinux.srec \
++ vmlinux.bin.gz \
++ uImage \
++ zImage
+--- a/arch/mips/include/asm/bootinfo.h
++++ b/arch/mips/include/asm/bootinfo.h
+@@ -57,6 +57,12 @@
+ #define MACH_MIKROTIK_RB532 0 /* Mikrotik RouterBoard 532 */
+ #define MACH_MIKROTIK_RB532A 1 /* Mikrotik RouterBoard 532A */
+
++/*
++ * Valid machtype for group INGENIC
++ */
++#define MACH_INGENIC_JZ4720 0 /* JZ4730 SOC */
++#define MACH_INGENIC_JZ4740 1 /* JZ4740 SOC */
++
+ #define CL_SIZE COMMAND_LINE_SIZE
+
+ extern char *system_type;
+--- a/arch/mips/include/asm/cpu.h
++++ b/arch/mips/include/asm/cpu.h
+@@ -34,7 +34,7 @@
+ #define PRID_COMP_LSI 0x080000
+ #define PRID_COMP_LEXRA 0x0b0000
+ #define PRID_COMP_CAVIUM 0x0d0000
+-
++#define PRID_COMP_INGENIC 0xd00000
+
+ /*
+ * Assigned values for the product ID register. In order to detect a
+@@ -127,6 +127,12 @@
+ #define PRID_IMP_CAVIUM_CN52XX 0x0700
+
+ /*
++ * These are the PRID's for when 23:16 == PRID_COMP_INGENIC
++ */
++
++#define PRID_IMP_JZRISC 0x0200
++
++/*
+ * Definitions for 7:0 on legacy processors
+ */
+
+@@ -217,6 +223,11 @@ enum cpu_type_enum {
+ CPU_5KC, CPU_20KC, CPU_25KF, CPU_SB1, CPU_SB1A, CPU_LOONGSON2,
+ CPU_CAVIUM_OCTEON,
+
++ /*
++ * Ingenic class processors
++ */
++ CPU_JZRISC, CPU_XBURST,
++
+ CPU_LAST
+ };
+
+--- a/arch/mips/include/asm/mach-generic/irq.h
++++ b/arch/mips/include/asm/mach-generic/irq.h
+@@ -9,7 +9,7 @@
+ #define __ASM_MACH_GENERIC_IRQ_H
+
+ #ifndef NR_IRQS
+-#define NR_IRQS 128
++#define NR_IRQS 256
+ #endif
+
+ #ifdef CONFIG_I8259
+--- a/arch/mips/include/asm/r4kcache.h
++++ b/arch/mips/include/asm/r4kcache.h
+@@ -17,6 +17,58 @@
+ #include <asm/cpu-features.h>
+ #include <asm/mipsmtregs.h>
+
++#ifdef CONFIG_JZRISC
++
++#define K0_TO_K1() \
++do { \
++ unsigned long __k0_addr; \
++ \
++ __asm__ __volatile__( \
++ "la %0, 1f\n\t" \
++ "or %0, %0, %1\n\t" \
++ "jr %0\n\t" \
++ "nop\n\t" \
++ "1: nop\n" \
++ : "=&r"(__k0_addr) \
++ : "r" (0x20000000) ); \
++} while(0)
++
++#define K1_TO_K0() \
++do { \
++ unsigned long __k0_addr; \
++ __asm__ __volatile__( \
++ "nop;nop;nop;nop;nop;nop;nop\n\t" \
++ "la %0, 1f\n\t" \
++ "jr %0\n\t" \
++ "nop\n\t" \
++ "1: nop\n" \
++ : "=&r" (__k0_addr)); \
++} while (0)
++
++#define INVALIDATE_BTB() \
++do { \
++ unsigned long tmp; \
++ __asm__ __volatile__( \
++ ".set mips32\n\t" \
++ "mfc0 %0, $16, 7\n\t" \
++ "nop\n\t" \
++ "ori %0, 2\n\t" \
++ "mtc0 %0, $16, 7\n\t" \
++ "nop\n\t" \
++ : "=&r" (tmp)); \
++} while (0)
++
++#define SYNC_WB() __asm__ __volatile__ ("sync")
++
++#else /* CONFIG_JZRISC */
++
++#define K0_TO_K1() do { } while (0)
++#define K1_TO_K0() do { } while (0)
++#define INVALIDATE_BTB() do { } while (0)
++#define SYNC_WB() do { } while (0)
++
++#endif /* CONFIG_JZRISC */
++
+ /*
+ * This macro return a properly sign-extended address suitable as base address
+ * for indexed cache operations. Two issues here:
+@@ -144,6 +196,7 @@ static inline void flush_icache_line_ind
+ {
+ __iflush_prologue
+ cache_op(Index_Invalidate_I, addr);
++ INVALIDATE_BTB();
+ __iflush_epilogue
+ }
+
+@@ -151,6 +204,7 @@ static inline void flush_dcache_line_ind
+ {
+ __dflush_prologue
+ cache_op(Index_Writeback_Inv_D, addr);
++ SYNC_WB();
+ __dflush_epilogue
+ }
+
+@@ -163,6 +217,7 @@ static inline void flush_icache_line(uns
+ {
+ __iflush_prologue
+ cache_op(Hit_Invalidate_I, addr);
++ INVALIDATE_BTB();
+ __iflush_epilogue
+ }
+
+@@ -170,6 +225,7 @@ static inline void flush_dcache_line(uns
+ {
+ __dflush_prologue
+ cache_op(Hit_Writeback_Inv_D, addr);
++ SYNC_WB();
+ __dflush_epilogue
+ }
+
+@@ -177,6 +233,7 @@ static inline void invalidate_dcache_lin
+ {
+ __dflush_prologue
+ cache_op(Hit_Invalidate_D, addr);
++ SYNC_WB();
+ __dflush_epilogue
+ }
+
+@@ -209,6 +266,7 @@ static inline void flush_scache_line(uns
+ static inline void protected_flush_icache_line(unsigned long addr)
+ {
+ protected_cache_op(Hit_Invalidate_I, addr);
++ INVALIDATE_BTB();
+ }
+
+ /*
+@@ -220,6 +278,7 @@ static inline void protected_flush_icach
+ static inline void protected_writeback_dcache_line(unsigned long addr)
+ {
+ protected_cache_op(Hit_Writeback_Inv_D, addr);
++ SYNC_WB();
+ }
+
+ static inline void protected_writeback_scache_line(unsigned long addr)
+@@ -396,8 +455,10 @@ static inline void blast_##pfx##cache##l
+ __BUILD_BLAST_CACHE(d, dcache, Index_Writeback_Inv_D, Hit_Writeback_Inv_D, 16)
+ __BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 16)
+ __BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 16)
++#ifndef CONFIG_JZRISC
+ __BUILD_BLAST_CACHE(d, dcache, Index_Writeback_Inv_D, Hit_Writeback_Inv_D, 32)
+ __BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 32)
++#endif
+ __BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 32)
+ __BUILD_BLAST_CACHE(d, dcache, Index_Writeback_Inv_D, Hit_Writeback_Inv_D, 64)
+ __BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 64)
+@@ -405,12 +466,122 @@ __BUILD_BLAST_CACHE(s, scache, Index_Wri
+ __BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 128)
+
+ __BUILD_BLAST_CACHE(inv_d, dcache, Index_Writeback_Inv_D, Hit_Invalidate_D, 16)
++#ifndef CONFIG_JZRISC
+ __BUILD_BLAST_CACHE(inv_d, dcache, Index_Writeback_Inv_D, Hit_Invalidate_D, 32)
++#endif
+ __BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 16)
+ __BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 32)
+ __BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 64)
+ __BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 128)
+
++#ifdef CONFIG_JZRISC
++
++static inline void blast_dcache32(void)
++{
++ unsigned long start = INDEX_BASE;
++ unsigned long end = start + current_cpu_data.dcache.waysize;
++ unsigned long ws_inc = 1UL << current_cpu_data.dcache.waybit;
++ unsigned long ws_end = current_cpu_data.dcache.ways <<
++ current_cpu_data.dcache.waybit;
++ unsigned long ws, addr;
++
++ for (ws = 0; ws < ws_end; ws += ws_inc)
++ for (addr = start; addr < end; addr += 0x400)
++ cache32_unroll32(addr|ws,Index_Writeback_Inv_D);
++
++ SYNC_WB();
++}
++
++static inline void blast_dcache32_page(unsigned long page)
++{
++ unsigned long start = page;
++ unsigned long end = page + PAGE_SIZE;
++
++ do {
++ cache32_unroll32(start,Hit_Writeback_Inv_D);
++ start += 0x400;
++ } while (start < end);
++
++ SYNC_WB();
++}
++
++static inline void blast_dcache32_page_indexed(unsigned long page)
++{
++ unsigned long indexmask = current_cpu_data.dcache.waysize - 1;
++ unsigned long start = INDEX_BASE + (page & indexmask);
++ unsigned long end = start + PAGE_SIZE;
++ unsigned long ws_inc = 1UL << current_cpu_data.dcache.waybit;
++ unsigned long ws_end = current_cpu_data.dcache.ways <<
++ current_cpu_data.dcache.waybit;
++ unsigned long ws, addr;
++
++ for (ws = 0; ws < ws_end; ws += ws_inc)
++ for (addr = start; addr < end; addr += 0x400)
++ cache32_unroll32(addr|ws,Index_Writeback_Inv_D);
++
++ SYNC_WB();
++}
++
++static inline void blast_icache32(void)
++{
++ unsigned long start = INDEX_BASE;
++ unsigned long end = start + current_cpu_data.icache.waysize;
++ unsigned long ws_inc = 1UL << current_cpu_data.icache.waybit;
++ unsigned long ws_end = current_cpu_data.icache.ways <<
++ current_cpu_data.icache.waybit;
++ unsigned long ws, addr;
++
++ K0_TO_K1();
++
++ for (ws = 0; ws < ws_end; ws += ws_inc)
++ for (addr = start; addr < end; addr += 0x400)
++ cache32_unroll32(addr|ws,Index_Invalidate_I);
++
++ INVALIDATE_BTB();
++
++ K1_TO_K0();
++}
++
++static inline void blast_icache32_page(unsigned long page)
++{
++ unsigned long start = page;
++ unsigned long end = page + PAGE_SIZE;
++
++ K0_TO_K1();
++
++ do {
++ cache32_unroll32(start,Hit_Invalidate_I);
++ start += 0x400;
++ } while (start < end);
++
++ INVALIDATE_BTB();
++
++ K1_TO_K0();
++}
++
++static inline void blast_icache32_page_indexed(unsigned long page)
++{
++ unsigned long indexmask = current_cpu_data.icache.waysize - 1;
++ unsigned long start = INDEX_BASE + (page & indexmask);
++ unsigned long end = start + PAGE_SIZE;
++ unsigned long ws_inc = 1UL << current_cpu_data.icache.waybit;
++ unsigned long ws_end = current_cpu_data.icache.ways <<
++ current_cpu_data.icache.waybit;
++ unsigned long ws, addr;
++
++ K0_TO_K1();
++
++ for (ws = 0; ws < ws_end; ws += ws_inc)
++ for (addr = start; addr < end; addr += 0x400)
++ cache32_unroll32(addr|ws,Index_Invalidate_I);
++
++ INVALIDATE_BTB();
++
++ K1_TO_K0();
++}
++
++#endif /* CONFIG_JZRISC */
++
+ /* build blast_xxx_range, protected_blast_xxx_range */
+ #define __BUILD_BLAST_CACHE_RANGE(pfx, desc, hitop, prot) \
+ static inline void prot##blast_##pfx##cache##_range(unsigned long start, \
+@@ -432,13 +603,73 @@ static inline void prot##blast_##pfx##ca
+ __##pfx##flush_epilogue \
+ }
+
++#ifndef CONFIG_JZRISC
+ __BUILD_BLAST_CACHE_RANGE(d, dcache, Hit_Writeback_Inv_D, protected_)
++#endif
+ __BUILD_BLAST_CACHE_RANGE(s, scache, Hit_Writeback_Inv_SD, protected_)
++#ifndef CONFIG_JZRISC
+ __BUILD_BLAST_CACHE_RANGE(i, icache, Hit_Invalidate_I, protected_)
+ __BUILD_BLAST_CACHE_RANGE(d, dcache, Hit_Writeback_Inv_D, )
++#endif
+ __BUILD_BLAST_CACHE_RANGE(s, scache, Hit_Writeback_Inv_SD, )
+ /* blast_inv_dcache_range */
+ __BUILD_BLAST_CACHE_RANGE(inv_d, dcache, Hit_Invalidate_D, )
+ __BUILD_BLAST_CACHE_RANGE(inv_s, scache, Hit_Invalidate_SD, )
+
++#ifdef CONFIG_JZRISC
++
++static inline void protected_blast_dcache_range(unsigned long start,
++ unsigned long end)
++{
++ unsigned long lsize = cpu_dcache_line_size();
++ unsigned long addr = start & ~(lsize - 1);
++ unsigned long aend = (end - 1) & ~(lsize - 1);
++
++ while (1) {
++ protected_cache_op(Hit_Writeback_Inv_D, addr);
++ if (addr == aend)
++ break;
++ addr += lsize;
++ }
++ SYNC_WB();
++}
++
++static inline void protected_blast_icache_range(unsigned long start,
++ unsigned long end)
++{
++ unsigned long lsize = cpu_icache_line_size();
++ unsigned long addr = start & ~(lsize - 1);
++ unsigned long aend = (end - 1) & ~(lsize - 1);
++
++ K0_TO_K1();
++
++ while (1) {
++ protected_cache_op(Hit_Invalidate_I, addr);
++ if (addr == aend)
++ break;
++ addr += lsize;
++ }
++ INVALIDATE_BTB();
++
++ K1_TO_K0();
++}
++
++static inline void blast_dcache_range(unsigned long start,
++ unsigned long end)
++{
++ unsigned long lsize = cpu_dcache_line_size();
++ unsigned long addr = start & ~(lsize - 1);
++ unsigned long aend = (end - 1) & ~(lsize - 1);
++
++ while (1) {
++ cache_op(Hit_Writeback_Inv_D, addr);
++ if (addr == aend)
++ break;
++ addr += lsize;
++ }
++ SYNC_WB();
++}
++
++#endif /* CONFIG_JZRISC */
++
+ #endif /* _ASM_R4KCACHE_H */
+--- a/arch/mips/include/asm/suspend.h
++++ b/arch/mips/include/asm/suspend.h
+@@ -2,6 +2,9 @@
+ #define __ASM_SUSPEND_H
+
+ static inline int arch_prepare_suspend(void) { return 0; }
++#if defined(CONFIG_PM) && defined(CONFIG_JZSOC)
++extern int jz_pm_init(void);
++#endif
+
+ /* References to section boundaries */
+ extern const void __nosave_begin, __nosave_end;
+--- a/arch/mips/kernel/cpu-probe.c
++++ b/arch/mips/kernel/cpu-probe.c
+@@ -160,6 +160,7 @@ void __init check_wait(void)
+ case CPU_PR4450:
+ case CPU_BCM3302:
+ case CPU_CAVIUM_OCTEON:
++ case CPU_JZRISC:
+ cpu_wait = r4k_wait;
+ break;
+
+@@ -888,6 +889,23 @@ static inline void cpu_probe_cavium(stru
+ }
+ }
+
++static inline void cpu_probe_ingenic(struct cpuinfo_mips *c, unsigned int cpu)
++{
++ decode_configs(c);
++ c->options &= ~MIPS_CPU_COUNTER; /* JZRISC does not implement the CP0 counter. */
++ switch (c->processor_id & 0xff00) {
++ case PRID_IMP_JZRISC:
++ c->cputype = CPU_JZRISC;
++ c->isa_level = MIPS_CPU_ISA_M32R1;
++ c->tlbsize = 32;
++ __cpu_name[cpu] = "Ingenic JZRISC";
++ break;
++ default:
++ panic("Unknown Ingenic Processor ID!");
++ break;
++ }
++}
++
+ const char *__cpu_name[NR_CPUS];
+
+ __cpuinit void cpu_probe(void)
+@@ -925,6 +943,9 @@ __cpuinit void cpu_probe(void)
+ case PRID_COMP_CAVIUM:
+ cpu_probe_cavium(c, cpu);
+ break;
++ case PRID_COMP_INGENIC:
++ cpu_probe_ingenic(c, cpu);
++ break;
+ }
+
+ BUG_ON(!__cpu_name[cpu]);
+--- a/arch/mips/mm/c-r4k.c
++++ b/arch/mips/mm/c-r4k.c
+@@ -928,6 +928,36 @@ static void __cpuinit probe_pcache(void)
+ c->dcache.waybit = 0;
+ break;
+
++ case CPU_JZRISC:
++ config1 = read_c0_config1();
++ config1 = (config1 >> 22) & 0x07;
++ if (config1 == 0x07)
++ config1 = 10;
++ else
++ config1 = config1 + 11;
++ config1 += 2;
++ icache_size = (1 << config1);
++ c->icache.linesz = 32;
++ c->icache.ways = 4;
++ c->icache.waybit = __ffs(icache_size / c->icache.ways);
++
++ config1 = read_c0_config1();
++ config1 = (config1 >> 13) & 0x07;
++ if (config1 == 0x07)
++ config1 = 10;
++ else
++ config1 = config1 + 11;
++ config1 += 2;
++ dcache_size = (1 << config1);
++ c->dcache.linesz = 32;
++ c->dcache.ways = 4;
++ c->dcache.waybit = __ffs(dcache_size / c->dcache.ways);
++
++ c->dcache.flags = 0;
++ c->options |= MIPS_CPU_PREFETCH;
++
++ break;
++
+ default:
+ if (!(config & MIPS_CONF_M))
+ panic("Don't know how to probe P-caches on this cpu.");
+--- a/arch/mips/mm/cache.c
++++ b/arch/mips/mm/cache.c
+@@ -52,6 +52,8 @@ void (*_dma_cache_wback)(unsigned long s
+ void (*_dma_cache_inv)(unsigned long start, unsigned long size);
+
+ EXPORT_SYMBOL(_dma_cache_wback_inv);
++EXPORT_SYMBOL(_dma_cache_wback);
++EXPORT_SYMBOL(_dma_cache_inv);
+
+ #endif /* CONFIG_DMA_NONCOHERENT */
+
+--- a/arch/mips/mm/tlbex.c
++++ b/arch/mips/mm/tlbex.c
+@@ -385,6 +385,11 @@ static void __cpuinit build_tlb_write_en
+ tlbw(p);
+ break;
+
++ case CPU_JZRISC:
++ tlbw(p);
++ uasm_i_nop(p);
++ break;
++
+ default:
+ panic("No TLB refill handler yet (CPU type: %d)",
+ current_cpu_data.cputype);
diff --git a/recipes/linux/linux-2.6.31/ben-nanonote/050-nand.patch b/recipes/linux/linux-2.6.31/ben-nanonote/050-nand.patch
new file mode 100644
index 0000000000..da0d76caa5
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/ben-nanonote/050-nand.patch
@@ -0,0 +1,68 @@
+--- a/drivers/mtd/nand/Kconfig
++++ b/drivers/mtd/nand/Kconfig
+@@ -452,4 +452,10 @@ config MTD_NAND_SOCRATES
+ help
+ Enables support for NAND Flash chips wired onto Socrates board.
+
++config MTD_NAND_JZ4740
++ tristate "Support NAND Flash device on Jz4740 board"
++ depends on SOC_JZ4740
++ help
++ Support NAND Flash device on Jz4740 board
++
+ endif # MTD_NAND
+--- a/drivers/mtd/nand/Makefile
++++ b/drivers/mtd/nand/Makefile
+@@ -40,5 +40,6 @@ obj-$(CONFIG_MTD_NAND_SH_FLCTL) += sh_f
+ obj-$(CONFIG_MTD_NAND_MXC) += mxc_nand.o
+ obj-$(CONFIG_MTD_NAND_SOCRATES) += socrates_nand.o
+ obj-$(CONFIG_MTD_NAND_TXX9NDFMC) += txx9ndfmc.o
++obj-$(CONFIG_MTD_NAND_JZ4740) += jz4740_nand.o
+
+ nand-objs := nand_base.o nand_bbt.o
+--- a/drivers/mtd/nand/nand_base.c
++++ b/drivers/mtd/nand/nand_base.c
+@@ -953,29 +953,22 @@ static int nand_read_page_hwecc(struct m
+ uint8_t *ecc_calc = chip->buffers->ecccalc;
+ uint8_t *ecc_code = chip->buffers->ecccode;
+ uint32_t *eccpos = chip->ecc.layout->eccpos;
+-
+- for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {
+- chip->ecc.hwctl(mtd, NAND_ECC_READ);
+- chip->read_buf(mtd, p, eccsize);
+- chip->ecc.calculate(mtd, p, &ecc_calc[i]);
+- }
+- chip->read_buf(mtd, chip->oob_poi, mtd->oobsize);
++ int stat;
+
+ for (i = 0; i < chip->ecc.total; i++)
+ ecc_code[i] = chip->oob_poi[eccpos[i]];
+
+- eccsteps = chip->ecc.steps;
+- p = buf;
+-
+- for (i = 0 ; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {
+- int stat;
+
++ for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {
++ chip->ecc.hwctl(mtd, NAND_ECC_READ);
++ chip->read_buf(mtd, p, eccsize);
+ stat = chip->ecc.correct(mtd, p, &ecc_code[i], &ecc_calc[i]);
+ if (stat < 0)
+ mtd->ecc_stats.failed++;
+ else
+ mtd->ecc_stats.corrected += stat;
+ }
++
+ return 0;
+ }
+
+@@ -1125,6 +1118,8 @@ static int nand_do_read_ops(struct mtd_i
+ bufpoi = aligned ? buf : chip->buffers->databuf;
+
+ if (likely(sndcmd)) {
++ chip->cmdfunc(mtd, NAND_CMD_READOOB, 0x00, page);
++ chip->read_buf(mtd, chip->oob_poi, mtd->oobsize);
+ chip->cmdfunc(mtd, NAND_CMD_READ0, 0x00, page);
+ sndcmd = 0;
+ }
diff --git a/recipes/linux/linux-2.6.31/ben-nanonote/051-fb.patch b/recipes/linux/linux-2.6.31/ben-nanonote/051-fb.patch
new file mode 100644
index 0000000000..8288f52133
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/ben-nanonote/051-fb.patch
@@ -0,0 +1,28 @@
+--- a/drivers/video/Kconfig
++++ b/drivers/video/Kconfig
+@@ -2148,6 +2148,15 @@ config FB_BROADSHEET
+ and could also have been called by other names when coupled with
+ a bridge adapter.
+
++config FB_JZ4740
++ tristate "JZ47420/JZ4740 LCD framebuffer support"
++ depends on FB
++ select FB_SYS_FILLRECT
++ select FB_SYS_COPYAREA
++ select FB_SYS_IMAGEBLIT
++ help
++ Framebuffer support for the JZ4720 and JZ4740 SoC.
++
+ source "drivers/video/omap/Kconfig"
+
+ source "drivers/video/backlight/Kconfig"
+--- a/drivers/video/Makefile
++++ b/drivers/video/Makefile
+@@ -126,6 +126,7 @@ obj-$(CONFIG_FB_OMAP) += oma
+ obj-$(CONFIG_XEN_FBDEV_FRONTEND) += xen-fbfront.o
+ obj-$(CONFIG_FB_CARMINE) += carminefb.o
+ obj-$(CONFIG_FB_MB862XX) += mb862xx/
++obj-$(CONFIG_FB_JZ4740) += jz4740_fb.o
+
+ # Platform or fallback drivers go here
+ obj-$(CONFIG_FB_UVESA) += uvesafb.o
diff --git a/recipes/linux/linux-2.6.31/ben-nanonote/052-rtc.patch b/recipes/linux/linux-2.6.31/ben-nanonote/052-rtc.patch
new file mode 100644
index 0000000000..303501b989
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/ben-nanonote/052-rtc.patch
@@ -0,0 +1,30 @@
+--- a/drivers/rtc/Kconfig
++++ b/drivers/rtc/Kconfig
+@@ -460,6 +460,17 @@ config RTC_DRV_EFI
+ This driver can also be built as a module. If so, the module
+ will be called rtc-efi.
+
++config RTC_DRV_JZ4740
++ tristate "Ingenic JZ4720/JZ4740 SoC"
++ depends on RTC_CLASS
++ depends on SOC_JZ4740
++ help
++ If you say yes here you get support for the
++ Ingenic JZ4720/JZ4740 SoC RTC controller.
++
++ This driver can also be buillt as a module. If so, the module
++ will be called rtc-jz4740.
++
+ config RTC_DRV_STK17TA8
+ tristate "Simtek STK17TA8"
+ depends on RTC_CLASS
+--- a/drivers/rtc/Makefile
++++ b/drivers/rtc/Makefile
+@@ -40,6 +40,7 @@ obj-$(CONFIG_RTC_DRV_EFI) += rtc-efi.o
+ obj-$(CONFIG_RTC_DRV_EP93XX) += rtc-ep93xx.o
+ obj-$(CONFIG_RTC_DRV_FM3130) += rtc-fm3130.o
+ obj-$(CONFIG_RTC_DRV_ISL1208) += rtc-isl1208.o
++obj-$(CONFIG_RTC_DRV_JZ4740) += rtc-jz4740.o
+ obj-$(CONFIG_RTC_DRV_M41T80) += rtc-m41t80.o
+ obj-$(CONFIG_RTC_DRV_M41T94) += rtc-m41t94.o
+ obj-$(CONFIG_RTC_DRV_M48T35) += rtc-m48t35.o
diff --git a/recipes/linux/linux-2.6.31/ben-nanonote/053-adc.patch b/recipes/linux/linux-2.6.31/ben-nanonote/053-adc.patch
new file mode 100644
index 0000000000..2f71ddceb5
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/ben-nanonote/053-adc.patch
@@ -0,0 +1,29 @@
+--- a/drivers/misc/Kconfig
++++ b/drivers/misc/Kconfig
+@@ -233,6 +233,17 @@ config ISL29003
+ This driver can also be built as a module. If so, the module
+ will be called isl29003.
+
++config JZ4740_ADC
++ tristate "Ingenic JZ4720/JZ4740 SoC ADC driver"
++ depends on SOC_JZ4740
++ help
++ If you say yes here you get support for the Ingenic JZ4720/JZ4740 SoC ADC
++ core. It is required for the JZ4720/JZ4740 battery and touchscreen driver
++ and is used to synchronize access to the adc core between those two.
++
++ This driver can also be build as a module. If so, the module will be
++ called jz4740-adc.
++
+ source "drivers/misc/c2port/Kconfig"
+ source "drivers/misc/eeprom/Kconfig"
+ source "drivers/misc/cb710/Kconfig"
+--- a/drivers/misc/Makefile
++++ b/drivers/misc/Makefile
+@@ -20,5 +20,6 @@ obj-$(CONFIG_SGI_GRU) += sgi-gru/
+ obj-$(CONFIG_HP_ILO) += hpilo.o
+ obj-$(CONFIG_ISL29003) += isl29003.o
+ obj-$(CONFIG_C2PORT) += c2port/
++obj-$(CONFIG_JZ4740_ADC) += jz4740-adc.o
+ obj-y += eeprom/
+ obj-y += cb710/
diff --git a/recipes/linux/linux-2.6.31/ben-nanonote/100-battery.patch b/recipes/linux/linux-2.6.31/ben-nanonote/100-battery.patch
new file mode 100644
index 0000000000..1279dde69c
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/ben-nanonote/100-battery.patch
@@ -0,0 +1,25 @@
+--- a/drivers/power/Kconfig
++++ b/drivers/power/Kconfig
+@@ -103,4 +103,15 @@ config CHARGER_PCF50633
+ help
+ Say Y to include support for NXP PCF50633 Main Battery Charger.
+
++config BATTERY_JZ4740
++ tristate "Ingenic JZ4720/JZ4740 battery"
++ depends on SOC_JZ4740
++ depends on JZ4740_ADC
++ help
++ Say Y to enable support for the battery on Ingenic JZ4720/JZ4740 based
++ boards.
++
++ This driver can be build as a module. If so, the module will be
++ called jz4740-battery.
++
+ endif # POWER_SUPPLY
+--- a/drivers/power/Makefile
++++ b/drivers/power/Makefile
+@@ -28,3 +28,4 @@ obj-$(CONFIG_BATTERY_BQ27x00) += bq27x00
+ obj-$(CONFIG_BATTERY_DA9030) += da9030_battery.o
+ obj-$(CONFIG_BATTERY_MAX17040) += max17040_battery.o
+ obj-$(CONFIG_CHARGER_PCF50633) += pcf50633-charger.o
++obj-$(CONFIG_BATTERY_JZ4740) += jz4740-battery.o
diff --git a/recipes/linux/linux-2.6.31/ben-nanonote/101-mmc.patch b/recipes/linux/linux-2.6.31/ben-nanonote/101-mmc.patch
new file mode 100644
index 0000000000..0b1835ddc1
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/ben-nanonote/101-mmc.patch
@@ -0,0 +1,28 @@
+--- a/drivers/mmc/host/Kconfig
++++ b/drivers/mmc/host/Kconfig
+@@ -66,6 +66,15 @@ config MMC_RICOH_MMC
+ useless. It is safe to select this driver even if you don't
+ have a Ricoh based card reader.
+
++config MMC_JZ
++ tristate "JZ SD/Multimedia Card Interface support"
++ depends on SOC_JZ4720 || SOC_JZ4740
++ help
++ This selects the Ingenic JZ4720/JZ4740 SD/Multimedia card Interface.
++ If you have abIngenic platform with a Multimedia Card slot,
++ say Y or M here.
++
++ If unsure, say N.
+
+ To compile this driver as a module, choose M here:
+ the module will be called ricoh_mmc.
+--- a/drivers/mmc/host/Makefile
++++ b/drivers/mmc/host/Makefile
+@@ -6,6 +6,7 @@ ifeq ($(CONFIG_MMC_DEBUG),y)
+ EXTRA_CFLAGS += -DDEBUG
+ endif
+
++obj-$(CONFIG_MMC_JZ) += jz_mmc.o
+ obj-$(CONFIG_MMC_ARMMMCI) += mmci.o
+ obj-$(CONFIG_MMC_PXA) += pxamci.o
+ obj-$(CONFIG_MMC_IMX) += imxmmc.o
diff --git a/recipes/linux/linux-2.6.31/ben-nanonote/102-video.patch b/recipes/linux/linux-2.6.31/ben-nanonote/102-video.patch
new file mode 100644
index 0000000000..22b05e3e47
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/ben-nanonote/102-video.patch
@@ -0,0 +1,134 @@
+--- a/drivers/video/Kconfig
++++ b/drivers/video/Kconfig
+@@ -237,6 +237,119 @@ config FB_TILEBLITTING
+ comment "Frame buffer hardware drivers"
+ depends on FB
+
++/************************************************************/
++config FB_JZSOC
++ tristate "JZSOC LCD controller support"
++ depends on FB && JZSOC
++ select FB_CFB_FILLRECT
++ select FB_CFB_COPYAREA
++ select FB_CFB_IMAGEBLIT
++ ---help---
++ JZSOC LCD Controller and Smart LCD Controller driver support.
++
++config FB_JZ4740_SLCD
++ tristate "JZ4740 Smart LCD controller support"
++ depends on FB_JZSOC && SOC_JZ4740
++ default n
++ ---help---
++ This is the frame buffer device driver for the JZ4740 Smart LCD controller.
++ If select this, please set <JZ4740 LCD controller support> to <n>.
++
++choice
++ depends on FB_JZ4740_SLCD
++ prompt "SLCD Panel"
++ default JZ_SLCD_LGDP4551_8BUS
++
++config JZ_SLCD_LGDP4551
++ bool "LG LGDP4551 Smart LCD panel"
++ ---help---
++ Driver for Smart LCD LGDP4551, 8-bit sytem interface, 16BPP.
++
++config JZ_SLCD_SPFD5420A
++ bool "SPFD5420A Smart LCD panel"
++ ---help---
++ Driver for Smart LCD SPFD5420A 18-bit sytem interface, 18BPP.
++
++config JZ_SLCD_TRULY
++ bool "TRULY Smart LCD panel (MAX Pixels 400x240)"
++ ---help---
++
++endchoice
++
++config FB_JZLCD_4730_4740
++ tristate "JZ4730 JZ4740 LCD controller support"
++ depends on FB_JZSOC && (SOC_JZ4730 || SOC_JZ4740)
++ help
++ This is the frame buffer device driver for the JZ4730 and JZ4740 LCD controller.
++choice
++ depends on FB_JZLCD_4730_4740
++ prompt "LCD Panel"
++ default JZLCD_SAMSUNG_LTP400WQF01
++
++config JZLCD_SHARP_LQ035Q7
++ bool "SHARP LQ035Q7 TFT panel (240x320)"
++
++config JZLCD_SAMSUNG_LTS350Q1
++ bool "SAMSUNG LTS350Q1 TFT panel (240x320)"
++
++config JZLCD_SAMSUNG_LTV350QVF04
++ bool "SAMSUNG LTV350QV_F04 TFT panel (320x240)"
++
++config JZLCD_SAMSUNG_LTP400WQF01
++ bool "SAMSUNG LTP400WQF01 TFT panel (480x272)(16bits)"
++
++config JZLCD_SAMSUNG_LTP400WQF02
++ bool "SAMSUNG LTP400WQF02 TFT panel (480x272)(18bits)"
++
++config JZLCD_AUO_A030FL01_V1
++ bool "AUO A030FL01_V1 TFT panel (480x272)"
++
++config JZLCD_TRULY_TFTG320240DTSW
++ bool "TRULY TFTG320240DTSW TFT panel (320x240)"
++
++config JZLCD_TRULY_TFTG320240DTSW_SERIAL
++ bool "TRULY TFTG320240DTSW TFT panel (320x240)(8bit-serial mode)"
++
++config JZLCD_TRULY_TFTG240320UTSW_63W_E
++ bool "TRULY TFTG240320UTSW-63W-E TFT panel (240x320,2.5in)"
++
++config JZLCD_FOXCONN_PT035TN01
++ bool "FOXCONN PT035TN01 TFT panel (320x240)"
++
++config JZLCD_INNOLUX_PT035TN01_SERIAL
++ bool "INNOLUX PT035TN01 TFT panel (320x240,3.5in)(8bit-serial mode)"
++
++config JZLCD_TOSHIBA_LTM084P363
++ bool "Toshiba LTM084P363 TFT panel (800x600)"
++
++config JZLCD_HYNIX_HT10X21
++ bool "Hynix HT10X21_300 TFT panel (1024x768)"
++
++config JZLCD_INNOLUX_AT080TN42
++ bool "INNOLUX AT080TN42 TFT panel (800x600)"
++
++config JZLCD_CSTN_800x600
++ bool "800x600 colorDSTN panel"
++
++config JZLCD_CSTN_320x240
++ bool "320x240 colorSTN panel"
++
++config JZLCD_MSTN_480x320
++ bool "480x320 monoSTN panel"
++
++config JZLCD_MSTN_320x240
++ bool "320x240 monoSTN panel"
++
++config JZLCD_MSTN_240x128
++ bool "240x128 monoSTN panel"
++
++config JZLCD_MSTN_INVERSE
++ bool "Use an inverse color display."
++ depends on (JZLCD_MSTN_480x320 || JZLCD_MSTN_240x128)
++
++endchoice
++
++
+ config FB_CIRRUS
+ tristate "Cirrus Logic support"
+ depends on FB && (ZORRO || PCI)
+--- a/drivers/video/Makefile
++++ b/drivers/video/Makefile
+@@ -28,6 +28,9 @@ obj-$(CONFIG_FB_DDC) += fb_ddc
+ obj-$(CONFIG_FB_DEFERRED_IO) += fb_defio.o
+
+ # Hardware specific drivers go first
++obj-$(CONFIG_FB_JZLCD_4720_4740) += jzlcd.o
++obj-$(CONFIG_FB_JZ4740_SLCD) += jz4740_slcd.o
++
+ obj-$(CONFIG_FB_AMIGA) += amifb.o c2p_planar.o
+ obj-$(CONFIG_FB_ARC) += arcfb.o
+ obj-$(CONFIG_FB_CLPS711X) += clps711xfb.o
diff --git a/recipes/linux/linux-2.6.31/ben-nanonote/103-lcm.patch b/recipes/linux/linux-2.6.31/ben-nanonote/103-lcm.patch
new file mode 100644
index 0000000000..21303ad83b
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/ben-nanonote/103-lcm.patch
@@ -0,0 +1,26 @@
+--- a/drivers/video/backlight/Kconfig
++++ b/drivers/video/backlight/Kconfig
+@@ -93,6 +93,13 @@ config LCD_HP700
+ If you have an HP Jornada 700 series handheld (710/720/728)
+ say Y to enable LCD control driver.
+
++config LCD_GPM940B0
++ tristate "Giantplus GPM940B0 LCD and backlight driver"
++ depends on LCD_CLASS_DEVICE && BACKLIGHT_CLASS_DEVICE && SPI
++ default n
++ help
++ LCD and backlight driver for the Giantplus GPM940B0 LCD module.
++
+ #
+ # Backlight
+ #
+--- a/drivers/video/backlight/Makefile
++++ b/drivers/video/backlight/Makefile
+@@ -9,6 +9,7 @@ obj-$(CONFIG_LCD_PLATFORM) += platfor
+ obj-$(CONFIG_LCD_VGG2432A4) += vgg2432a4.o
+ obj-$(CONFIG_LCD_TDO24M) += tdo24m.o
+ obj-$(CONFIG_LCD_TOSA) += tosa_lcd.o
++obj-$(CONFIG_LCD_GPM940B0) += gpm940b0.o
+
+ obj-$(CONFIG_BACKLIGHT_CLASS_DEVICE) += backlight.o
+ obj-$(CONFIG_BACKLIGHT_ATMEL_PWM) += atmel-pwm-bl.o
diff --git a/recipes/linux/linux-2.6.31/ben-nanonote/103-serial.patch b/recipes/linux/linux-2.6.31/ben-nanonote/103-serial.patch
new file mode 100644
index 0000000000..d6b4ea8444
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/ben-nanonote/103-serial.patch
@@ -0,0 +1,164 @@
+--- a/drivers/serial/8250.c
++++ b/drivers/serial/8250.c
+@@ -194,7 +194,7 @@ static const struct serial8250_config ua
+ [PORT_16550A] = {
+ .name = "16550A",
+ .fifo_size = 16,
+- .tx_loadsz = 16,
++ .tx_loadsz = 8,
+ .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10,
+ .flags = UART_CAP_FIFO,
+ },
+@@ -401,6 +401,10 @@ static unsigned int mem_serial_in(struct
+ static void mem_serial_out(struct uart_port *p, int offset, int value)
+ {
+ offset = map_8250_out_reg(p, offset) << p->regshift;
++#if defined(CONFIG_JZSOC)
++ if (offset == (UART_FCR << p->regshift))
++ value |= 0x10; /* set FCR.UUE */
++#endif
+ writeb(value, p->membase + offset);
+ }
+
+@@ -2213,6 +2217,83 @@ static void serial8250_shutdown(struct u
+ serial_unlink_irq_chain(up);
+ }
+
++#if defined(CONFIG_JZSOC) && !defined(CONFIG_SOC_JZ4730)
++static unsigned short quot1[3] = {0}; /* quot[0]:baud_div, quot[1]:umr, quot[2]:uacr */
++static unsigned short * serial8250_get_divisor(struct uart_port *port, unsigned int baud)
++{
++ int err, sum, i, j;
++ int a[12], b[12];
++ unsigned short div, umr, uacr;
++ unsigned short umr_best, div_best, uacr_best;
++ long long t0, t1, t2, t3;
++
++ sum = 0;
++ umr_best = div_best = uacr_best = 0;
++ div = 1;
++
++ if ((port->uartclk % (16 * baud)) == 0) {
++ quot1[0] = port->uartclk / (16 * baud);
++ quot1[1] = 16;
++ quot1[2] = 0;
++ return quot1;
++ }
++
++ while (1) {
++ umr = port->uartclk / (baud * div);
++ if (umr > 32) {
++ div++;
++ continue;
++ }
++ if (umr < 4) {
++ break;
++ }
++ for (i = 0; i < 12; i++) {
++ a[i] = umr;
++ b[i] = 0;
++ sum = 0;
++ for (j = 0; j <= i; j++) {
++ sum += a[j];
++ }
++
++ /* the precision could be 1/2^(36) due to the value of t0 */
++ t0 = 0x1000000000LL;
++ t1 = (i + 1) * t0;
++ t2 = (sum * div) * t0;
++ t3 = div * t0;
++ do_div(t1, baud);
++ do_div(t2, port->uartclk);
++ do_div(t3, (2 * port->uartclk));
++ err = t1 - t2 - t3;
++
++ if (err > 0) {
++ a[i] += 1;
++ b[i] = 1;
++ }
++ }
++
++ uacr = 0;
++ for (i = 0; i < 12; i++) {
++ if (b[i] == 1) {
++ uacr |= 1 << i;
++ }
++ }
++
++ /* the best value of umr should be near 16, and the value of uacr should better be smaller */
++ if (abs(umr - 16) < abs(umr_best - 16) || (abs(umr - 16) == abs(umr_best - 16) && uacr_best > uacr)) {
++ div_best = div;
++ umr_best = umr;
++ uacr_best = uacr;
++ }
++ div++;
++ }
++
++ quot1[0] = div_best;
++ quot1[1] = umr_best;
++ quot1[2] = uacr_best;
++
++ return quot1;
++}
++#else
+ static unsigned int serial8250_get_divisor(struct uart_port *port, unsigned int baud)
+ {
+ unsigned int quot;
+@@ -2232,6 +2313,7 @@ static unsigned int serial8250_get_divis
+
+ return quot;
+ }
++#endif
+
+ static void
+ serial8250_set_termios(struct uart_port *port, struct ktermios *termios,
+@@ -2241,6 +2323,9 @@ serial8250_set_termios(struct uart_port
+ unsigned char cval, fcr = 0;
+ unsigned long flags;
+ unsigned int baud, quot;
++#if defined(CONFIG_JZSOC) && !defined(CONFIG_SOC_JZ4730)
++ unsigned short *quot1;
++#endif
+
+ switch (termios->c_cflag & CSIZE) {
+ case CS5:
+@@ -2273,7 +2358,12 @@ serial8250_set_termios(struct uart_port
+ * Ask the core to calculate the divisor for us.
+ */
+ baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16);
++#if defined(CONFIG_JZSOC) && !defined(CONFIG_SOC_JZ4730)
++ quot1 = serial8250_get_divisor(port, baud);
++ quot = quot1[0]; /* not usefull, just let gcc happy */
++#else
+ quot = serial8250_get_divisor(port, baud);
++#endif
+
+ /*
+ * Oxford Semi 952 rev B workaround
+@@ -2351,6 +2441,10 @@ serial8250_set_termios(struct uart_port
+ if (up->capabilities & UART_CAP_UUE)
+ up->ier |= UART_IER_UUE | UART_IER_RTOIE;
+
++#ifdef CONFIG_JZSOC
++ up->ier |= UART_IER_RTOIE; /* Set this flag, or very slow */
++#endif
++
+ serial_out(up, UART_IER, up->ier);
+
+ if (up->capabilities & UART_CAP_EFR) {
+@@ -2385,7 +2479,15 @@ serial8250_set_termios(struct uart_port
+ serial_outp(up, UART_LCR, cval | UART_LCR_DLAB);/* set DLAB */
+ }
+
++#if defined(CONFIG_JZSOC) && !defined(CONFIG_SOC_JZ4730)
++#define UART_UMR 9
++#define UART_UACR 10
++ serial_dl_write(up, quot1[0]);
++ serial_outp(up, UART_UMR, quot1[1]);
++ serial_outp(up, UART_UACR, quot1[2]);
++#else
+ serial_dl_write(up, quot);
++#endif
+
+ /*
+ * LCR DLAB must be set to enable 64-byte FIFO mode. If the FCR
diff --git a/recipes/linux/linux-2.6.31/ben-nanonote/104-usb.patch b/recipes/linux/linux-2.6.31/ben-nanonote/104-usb.patch
new file mode 100644
index 0000000000..e15e3088f6
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/ben-nanonote/104-usb.patch
@@ -0,0 +1,158 @@
+--- a/drivers/usb/Kconfig
++++ b/drivers/usb/Kconfig
+@@ -44,6 +44,7 @@ config USB_ARCH_HAS_OHCI
+ default y if PPC_MPC52xx
+ # MIPS:
+ default y if SOC_AU1X00
++ default y if JZSOC
+ # SH:
+ default y if CPU_SUBTYPE_SH7720
+ default y if CPU_SUBTYPE_SH7721
+--- a/drivers/usb/core/hub.c
++++ b/drivers/usb/core/hub.c
+@@ -1857,6 +1857,25 @@ static int hub_port_reset(struct usb_hub
+ {
+ int i, status;
+
++#ifdef CONFIG_SOC_JZ4730
++ /*
++ * On Jz4730, we assume that the first USB port was used as device.
++ * If not, please comment next lines.
++ */
++ if (port1 == 1) {
++ return 0;
++ }
++#endif
++
++#if defined(CONFIG_SOC_JZ4740) || defined(CONFIG_SOC_JZ4750) || defined(CONFIG_SOC_JZ4750D)
++ /*
++ * On Jz4740 and Jz4750, the second USB port was used as device.
++ */
++ if (port1 == 2) {
++ return 0;
++ }
++#endif
++
+ /* Block EHCI CF initialization during the port reset.
+ * Some companion controllers don't like it when they mix.
+ */
+@@ -2818,11 +2837,35 @@ static void hub_port_connect_change(stru
+ le16_to_cpu(hub->descriptor->wHubCharacteristics);
+ struct usb_device *udev;
+ int status, i;
++#ifdef CONFIG_JZSOC
++ static char jzhub = 1; /* the hub first to be initialized is jzsoc on-chip hub */
++#endif
+
+ dev_dbg (hub_dev,
+ "port %d, status %04x, change %04x, %s\n",
+ port1, portstatus, portchange, portspeed (portstatus));
+
++#ifdef CONFIG_SOC_JZ4730
++ /*
++ * On Jz4730, we assume that the first USB port was used as device.
++ * If not, please comment next lines.
++ */
++ if ((port1 == 1) && (jzhub)) {
++ jzhub = 0;
++ return;
++ }
++#endif
++
++#if defined(CONFIG_SOC_JZ4740) || defined(CONFIG_SOC_JZ4750) || defined(CONFIG_SOC_JZ4750D)
++ /*
++ * On Jz4740 and Jz4750, the second USB port was used as device.
++ */
++ if ((port1 == 2) && (jzhub)) {
++ jzhub = 0;
++ return;
++ }
++#endif
++
+ if (hub->has_indicators) {
+ set_port_led(hub, port1, HUB_LED_AUTO);
+ hub->indicator[port1-1] = INDICATOR_AUTO;
+--- a/drivers/usb/gadget/Kconfig
++++ b/drivers/usb/gadget/Kconfig
+@@ -121,11 +121,25 @@ choice
+ #
+ # Integrated controllers
+ #
++config USB_GADGET_JZ4740
++ boolean "JZ4740 UDC"
++ depends on SOC_JZ4740
++ select USB_GADGET_SELECTED
++ select USB_GADGET_DUALSPEED
++ help
++ Select this to support the Ingenic JZ4740 processor
++ high speed USB device controller.
++
++config USB_JZ4740
++ tristate
++ depends on USB_GADGET_JZ4740
++ default USB_GADGET
+
+ config USB_GADGET_AT91
+ boolean "Atmel AT91 USB Device Port"
+ depends on ARCH_AT91 && !ARCH_AT91SAM9RL && !ARCH_AT91CAP9
+ select USB_GADGET_SELECTED
++
+ help
+ Many Atmel AT91 processors (such as the AT91RM2000) have a
+ full speed USB Device Port with support for five configurable
+@@ -534,6 +548,10 @@ config USB_DUMMY_HCD
+
+ endchoice
+
++config USB_JZ_UDC_HOTPLUG
++ boolean "Ingenic USB Device Controller Hotplug Support"
++ depends on USB_GADGET_JZ4750
++
+ config USB_GADGET_DUALSPEED
+ bool
+ depends on USB_GADGET
+@@ -541,7 +559,6 @@ config USB_GADGET_DUALSPEED
+ help
+ Means that gadget drivers should include extra descriptors
+ and code to handle dual-speed controllers.
+-
+ #
+ # USB Gadget Drivers
+ #
+--- a/drivers/usb/gadget/Makefile
++++ b/drivers/usb/gadget/Makefile
+@@ -27,6 +27,9 @@ obj-$(CONFIG_USB_FSL_QE) += fsl_qe_udc.o
+ obj-$(CONFIG_USB_CI13XXX) += ci13xxx_udc.o
+ obj-$(CONFIG_USB_S3C_HSOTG) += s3c-hsotg.o
+ obj-$(CONFIG_USB_LANGWELL) += langwell_udc.o
++obj-$(CONFIG_USB_JZ4740) += jz4740_udc.o
++
++obj-$(CONFIG_USB_JZ_UDC_HOTPLUG)+= udc_hotplug_core.o
+
+ #
+ # USB gadget drivers
+--- a/drivers/usb/gadget/gadget_chips.h
++++ b/drivers/usb/gadget/gadget_chips.h
+@@ -15,6 +15,12 @@
+ #ifndef __GADGET_CHIPS_H
+ #define __GADGET_CHIPS_H
+
++#ifdef CONFIG_USB_GADGET_JZ4740
++#define gadget_is_jz4740(g) !strcmp("ingenic_hsusb", (g)->name)
++#else
++#define gadget_is_jz4740(g) 0
++#endif
++
+ #ifdef CONFIG_USB_GADGET_NET2280
+ #define gadget_is_net2280(g) !strcmp("net2280", (g)->name)
+ #else
+@@ -239,6 +245,9 @@ static inline int usb_gadget_controller_
+ return 0x23;
+ else if (gadget_is_langwell(gadget))
+ return 0x24;
++ else if (gadget_is_jz4740(gadget))
++ return 0x25;
++
+ return -ENOENT;
+ }
+
diff --git a/recipes/linux/linux-2.6.31/ben-nanonote/105-sound.patch b/recipes/linux/linux-2.6.31/ben-nanonote/105-sound.patch
new file mode 100644
index 0000000000..14fc3785eb
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/ben-nanonote/105-sound.patch
@@ -0,0 +1,103 @@
+--- a/include/sound/pcm.h
++++ b/include/sound/pcm.h
+@@ -113,23 +113,23 @@ struct snd_pcm_ops {
+ #define SNDRV_PCM_RATE_5512 (1<<0) /* 5512Hz */
+ #define SNDRV_PCM_RATE_8000 (1<<1) /* 8000Hz */
+ #define SNDRV_PCM_RATE_11025 (1<<2) /* 11025Hz */
+-#define SNDRV_PCM_RATE_16000 (1<<3) /* 16000Hz */
+-#define SNDRV_PCM_RATE_22050 (1<<4) /* 22050Hz */
+-#define SNDRV_PCM_RATE_32000 (1<<5) /* 32000Hz */
+-#define SNDRV_PCM_RATE_44100 (1<<6) /* 44100Hz */
+-#define SNDRV_PCM_RATE_48000 (1<<7) /* 48000Hz */
+-#define SNDRV_PCM_RATE_64000 (1<<8) /* 64000Hz */
+-#define SNDRV_PCM_RATE_88200 (1<<9) /* 88200Hz */
+-#define SNDRV_PCM_RATE_96000 (1<<10) /* 96000Hz */
+-#define SNDRV_PCM_RATE_176400 (1<<11) /* 176400Hz */
+-#define SNDRV_PCM_RATE_192000 (1<<12) /* 192000Hz */
++#define SNDRV_PCM_RATE_12000 (1<<3) /* 12000Hz */
++#define SNDRV_PCM_RATE_16000 (1<<4) /* 16000Hz */
++#define SNDRV_PCM_RATE_22050 (1<<5) /* 22050Hz */
++#define SNDRV_PCM_RATE_24000 (1<<6) /* 24000Hz */
++#define SNDRV_PCM_RATE_32000 (1<<7) /* 32000Hz */
++#define SNDRV_PCM_RATE_44100 (1<<8) /* 44100Hz */
++#define SNDRV_PCM_RATE_48000 (1<<9) /* 48000Hz */
++#define SNDRV_PCM_RATE_64000 (1<<10) /* 64000Hz */
++#define SNDRV_PCM_RATE_88200 (1<<11) /* 88200Hz */
++#define SNDRV_PCM_RATE_96000 (1<<12) /* 96000Hz */
++#define SNDRV_PCM_RATE_176400 (1<<13) /* 176400Hz */
++#define SNDRV_PCM_RATE_192000 (1<<14) /* 192000Hz */
+
+ #define SNDRV_PCM_RATE_CONTINUOUS (1<<30) /* continuous range */
+ #define SNDRV_PCM_RATE_KNOT (1<<31) /* supports more non-continuos rates */
+
+-#define SNDRV_PCM_RATE_8000_44100 (SNDRV_PCM_RATE_8000|SNDRV_PCM_RATE_11025|\
+- SNDRV_PCM_RATE_16000|SNDRV_PCM_RATE_22050|\
+- SNDRV_PCM_RATE_32000|SNDRV_PCM_RATE_44100)
++#define SNDRV_PCM_RATE_8000_44100 (SNDRV_PCM_RATE_8000|SNDRV_PCM_RATE_11025|SNDRV_PCM_RATE_12000|SNDRV_PCM_RATE_16000|SNDRV_PCM_RATE_22050|SNDRV_PCM_RATE_24000|SNDRV_PCM_RATE_32000|SNDRV_PCM_RATE_44100)
+ #define SNDRV_PCM_RATE_8000_48000 (SNDRV_PCM_RATE_8000_44100|SNDRV_PCM_RATE_48000)
+ #define SNDRV_PCM_RATE_8000_96000 (SNDRV_PCM_RATE_8000_48000|SNDRV_PCM_RATE_64000|\
+ SNDRV_PCM_RATE_88200|SNDRV_PCM_RATE_96000)
+--- a/sound/core/pcm_native.c
++++ b/sound/core/pcm_native.c
+@@ -1748,12 +1748,13 @@ static int snd_pcm_hw_rule_sample_bits(s
+ return snd_interval_refine(hw_param_interval(params, rule->var), &t);
+ }
+
+-#if SNDRV_PCM_RATE_5512 != 1 << 0 || SNDRV_PCM_RATE_192000 != 1 << 12
++#if SNDRV_PCM_RATE_5512 != 1 << 0 || SNDRV_PCM_RATE_192000 != 1 << 14
+ #error "Change this table"
+ #endif
+
+-static unsigned int rates[] = { 5512, 8000, 11025, 16000, 22050, 32000, 44100,
+- 48000, 64000, 88200, 96000, 176400, 192000 };
++static unsigned int rates[] = { 5512, 8000, 11025, 12000, 16000, 22050, 24000,
++ 32000, 44100, 48000, 64000, 88200, 96000,
++ 176400, 192000 };
+
+ const struct snd_pcm_hw_constraint_list snd_pcm_known_rates = {
+ .count = ARRAY_SIZE(rates),
+--- a/sound/soc/Kconfig
++++ b/sound/soc/Kconfig
+@@ -35,6 +35,7 @@ source "sound/soc/s3c24xx/Kconfig"
+ source "sound/soc/s6000/Kconfig"
+ source "sound/soc/sh/Kconfig"
+ source "sound/soc/txx9/Kconfig"
++source "sound/soc/jz4740/Kconfig"
+
+ # Supported codecs
+ source "sound/soc/codecs/Kconfig"
+--- a/sound/soc/Makefile
++++ b/sound/soc/Makefile
+@@ -13,3 +13,4 @@ obj-$(CONFIG_SND_SOC) += s3c24xx/
+ obj-$(CONFIG_SND_SOC) += s6000/
+ obj-$(CONFIG_SND_SOC) += sh/
+ obj-$(CONFIG_SND_SOC) += txx9/
++obj-$(CONFIG_SND_SOC) += jz4740/
+--- a/sound/soc/codecs/Kconfig
++++ b/sound/soc/codecs/Kconfig
+@@ -176,3 +176,10 @@ config SND_SOC_WM9712
+
+ config SND_SOC_WM9713
+ tristate
++
++config SND_SOC_JZCODEC
++ tristate "JZ4720/JZ4740 SoC internal codec"
++ depends on SND_SOC && SOC_JZ4740
++ help
++ Say Y if you want to use internal codec on Ingenic JZ4720/JZ4740 based
++ boards.
+--- a/sound/soc/codecs/Makefile
++++ b/sound/soc/codecs/Makefile
+@@ -34,6 +34,7 @@ snd-soc-wm9081-objs := wm9081.o
+ snd-soc-wm9705-objs := wm9705.o
+ snd-soc-wm9712-objs := wm9712.o
+ snd-soc-wm9713-objs := wm9713.o
++snd-soc-jzcodec-objs := jzcodec.o
+
+ obj-$(CONFIG_SND_SOC_AC97_CODEC) += snd-soc-ac97.o
+ obj-$(CONFIG_SND_SOC_AD1980) += snd-soc-ad1980.o
+@@ -71,3 +72,4 @@ obj-$(CONFIG_SND_SOC_WM9081) += snd-soc-
+ obj-$(CONFIG_SND_SOC_WM9705) += snd-soc-wm9705.o
+ obj-$(CONFIG_SND_SOC_WM9712) += snd-soc-wm9712.o
+ obj-$(CONFIG_SND_SOC_WM9713) += snd-soc-wm9713.o
++obj-$(CONFIG_SND_SOC_JZCODEC) += snd-soc-jzcodec.o
diff --git a/recipes/linux/linux-2.6.31/ben-nanonote/220-add-2gb-nand-support.patch b/recipes/linux/linux-2.6.31/ben-nanonote/220-add-2gb-nand-support.patch
new file mode 100644
index 0000000000..ae80c11910
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/ben-nanonote/220-add-2gb-nand-support.patch
@@ -0,0 +1,11 @@
+--- a/include/mtd/mtd-abi.h
++++ b/include/mtd/mtd-abi.h
+@@ -135,7 +135,7 @@ struct nand_oobfree {
+ */
+ struct nand_ecclayout {
+ __u32 eccbytes;
+- __u32 eccpos[64];
++ __u32 eccpos[72];
+ __u32 oobavail;
+ struct nand_oobfree oobfree[MTD_MAX_OOBFREE_ENTRIES];
+ };
diff --git a/recipes/linux/linux-2.6.31/ben-nanonote/300-jffs2-summery-vmalloc.patch b/recipes/linux/linux-2.6.31/ben-nanonote/300-jffs2-summery-vmalloc.patch
new file mode 100644
index 0000000000..f5949d99bb
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/ben-nanonote/300-jffs2-summery-vmalloc.patch
@@ -0,0 +1,20 @@
+--- a/fs/jffs2/summary.c
++++ b/fs/jffs2/summary.c
+@@ -32,7 +32,7 @@ int jffs2_sum_init(struct jffs2_sb_info
+ return -ENOMEM;
+ }
+
+- c->summary->sum_buf = kmalloc(sum_size, GFP_KERNEL);
++ c->summary->sum_buf = vmalloc(sum_size);
+
+ if (!c->summary->sum_buf) {
+ JFFS2_WARNING("Can't allocate buffer for writing out summary information!\n");
+@@ -51,7 +51,7 @@ void jffs2_sum_exit(struct jffs2_sb_info
+
+ jffs2_sum_disable_collecting(c->summary);
+
+- kfree(c->summary->sum_buf);
++ vfree(c->summary->sum_buf);
+ c->summary->sum_buf = NULL;
+
+ kfree(c->summary);
diff --git a/recipes/linux/linux-2.6.31/ben-nanonote/400-spi-gpio-3wire.patch b/recipes/linux/linux-2.6.31/ben-nanonote/400-spi-gpio-3wire.patch
new file mode 100644
index 0000000000..d05d9d3486
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/ben-nanonote/400-spi-gpio-3wire.patch
@@ -0,0 +1,37 @@
+--- a/drivers/spi/spi_gpio.c
++++ b/drivers/spi/spi_gpio.c
+@@ -254,9 +254,11 @@ spi_gpio_request(struct spi_gpio_platfor
+ if (value)
+ goto done;
+
+- value = spi_gpio_alloc(SPI_MISO_GPIO, label, true);
+- if (value)
+- goto free_mosi;
++ if (SPI_MISO_GPIO != SPI_MOSI_GPIO) {
++ value = spi_gpio_alloc(SPI_MISO_GPIO, label, true);
++ if (value)
++ goto free_mosi;
++ }
+
+ value = spi_gpio_alloc(SPI_SCK_GPIO, label, false);
+ if (value)
+@@ -319,7 +321,8 @@ static int __devinit spi_gpio_probe(stru
+ if (status < 0) {
+ spi_master_put(spi_gpio->bitbang.master);
+ gpio_free:
+- gpio_free(SPI_MISO_GPIO);
++ if (SPI_MISO_GPIO != SPI_MOSI_GPIO)
++ gpio_free(SPI_MISO_GPIO);
+ gpio_free(SPI_MOSI_GPIO);
+ gpio_free(SPI_SCK_GPIO);
+ spi_master_put(master);
+@@ -343,7 +346,8 @@ static int __devexit spi_gpio_remove(str
+
+ platform_set_drvdata(pdev, NULL);
+
+- gpio_free(SPI_MISO_GPIO);
++ if (SPI_MISO_GPIO != SPI_MOSI_GPIO)
++ gpio_free(SPI_MISO_GPIO);
+ gpio_free(SPI_MOSI_GPIO);
+ gpio_free(SPI_SCK_GPIO);
+
diff --git a/recipes/linux/linux-2.6.31/ben-nanonote/410-soc-32bit-regs.patch b/recipes/linux/linux-2.6.31/ben-nanonote/410-soc-32bit-regs.patch
new file mode 100644
index 0000000000..ef8455bcca
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/ben-nanonote/410-soc-32bit-regs.patch
@@ -0,0 +1,241 @@
+--- a/include/sound/soc.h
++++ b/include/sound/soc.h
+@@ -215,10 +215,10 @@ void snd_soc_jack_free_gpios(struct snd_
+ #endif
+
+ /* codec register bit access */
+-int snd_soc_update_bits(struct snd_soc_codec *codec, unsigned short reg,
+- unsigned short mask, unsigned short value);
+-int snd_soc_test_bits(struct snd_soc_codec *codec, unsigned short reg,
+- unsigned short mask, unsigned short value);
++int snd_soc_update_bits(struct snd_soc_codec *codec, unsigned int reg,
++ unsigned int mask, unsigned int value);
++int snd_soc_test_bits(struct snd_soc_codec *codec, unsigned int reg,
++ unsigned int mask, unsigned int value);
+
+ int snd_soc_new_ac97_codec(struct snd_soc_codec *codec,
+ struct snd_ac97_bus_ops *ops, int num);
+@@ -492,8 +492,8 @@ struct soc_mixer_control {
+
+ /* enumerated kcontrol */
+ struct soc_enum {
+- unsigned short reg;
+- unsigned short reg2;
++ unsigned int reg;
++ unsigned int reg2;
+ unsigned char shift_l;
+ unsigned char shift_r;
+ unsigned int max;
+--- a/sound/soc/soc-core.c
++++ b/sound/soc/soc-core.c
+@@ -500,8 +500,8 @@ static int soc_pcm_hw_params(struct snd_
+ if (cpu_dai->ops->hw_params) {
+ ret = cpu_dai->ops->hw_params(substream, params, cpu_dai);
+ if (ret < 0) {
+- printk(KERN_ERR "asoc: interface %s hw params failed\n",
+- cpu_dai->name);
++ printk(KERN_ERR "asoc: interface %s hw params failed: %d\n",
++ cpu_dai->name, ret);
+ goto interface_err;
+ }
+ }
+@@ -842,7 +842,7 @@ static void snd_soc_instantiate_card(str
+ * DAIs currently; we can't do this per link since some AC97
+ * codecs have non-AC97 DAIs.
+ */
+- if (!ac97)
++ if (!ac97) {
+ for (i = 0; i < card->num_links; i++) {
+ found = 0;
+ list_for_each_entry(dai, &dai_list, list)
+@@ -856,6 +856,7 @@ static void snd_soc_instantiate_card(str
+ return;
+ }
+ }
++ }
+
+ /* Note that we do not current check for codec components */
+
+@@ -1263,11 +1264,11 @@ EXPORT_SYMBOL_GPL(snd_soc_free_ac97_code
+ *
+ * Returns 1 for change else 0.
+ */
+-int snd_soc_update_bits(struct snd_soc_codec *codec, unsigned short reg,
+- unsigned short mask, unsigned short value)
++int snd_soc_update_bits(struct snd_soc_codec *codec, unsigned int reg,
++ unsigned int mask, unsigned int value)
+ {
+ int change;
+- unsigned short old, new;
++ unsigned int old, new;
+
+ mutex_lock(&io_mutex);
+ old = snd_soc_read(codec, reg);
+@@ -1293,11 +1294,11 @@ EXPORT_SYMBOL_GPL(snd_soc_update_bits);
+ *
+ * Returns 1 for change else 0.
+ */
+-int snd_soc_test_bits(struct snd_soc_codec *codec, unsigned short reg,
+- unsigned short mask, unsigned short value)
++int snd_soc_test_bits(struct snd_soc_codec *codec, unsigned int reg,
++ unsigned int mask, unsigned int value)
+ {
+ int change;
+- unsigned short old, new;
++ unsigned int old, new;
+
+ mutex_lock(&io_mutex);
+ old = snd_soc_read(codec, reg);
+@@ -1586,7 +1587,7 @@ int snd_soc_get_enum_double(struct snd_k
+ {
+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
+ struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
+- unsigned short val, bitmask;
++ unsigned int val, bitmask;
+
+ for (bitmask = 1; bitmask < e->max; bitmask <<= 1)
+ ;
+@@ -1615,8 +1616,8 @@ int snd_soc_put_enum_double(struct snd_k
+ {
+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
+ struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
+- unsigned short val;
+- unsigned short mask, bitmask;
++ unsigned int val;
++ unsigned int mask, bitmask;
+
+ for (bitmask = 1; bitmask < e->max; bitmask <<= 1)
+ ;
+@@ -1652,7 +1653,7 @@ int snd_soc_get_value_enum_double(struct
+ {
+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
+ struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
+- unsigned short reg_val, val, mux;
++ unsigned int reg_val, val, mux;
+
+ reg_val = snd_soc_read(codec, e->reg);
+ val = (reg_val >> e->shift_l) & e->mask;
+@@ -1691,8 +1692,8 @@ int snd_soc_put_value_enum_double(struct
+ {
+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
+ struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
+- unsigned short val;
+- unsigned short mask;
++ unsigned int val;
++ unsigned int mask;
+
+ if (ucontrol->value.enumerated.item[0] > e->max - 1)
+ return -EINVAL;
+@@ -1852,7 +1853,7 @@ int snd_soc_put_volsw(struct snd_kcontro
+ int max = mc->max;
+ unsigned int mask = (1 << fls(max)) - 1;
+ unsigned int invert = mc->invert;
+- unsigned short val, val2, val_mask;
++ unsigned int val, val2, val_mask;
+
+ val = (ucontrol->value.integer.value[0] & mask);
+ if (invert)
+@@ -1958,7 +1959,7 @@ int snd_soc_put_volsw_2r(struct snd_kcon
+ unsigned int mask = (1 << fls(max)) - 1;
+ unsigned int invert = mc->invert;
+ int err;
+- unsigned short val, val2, val_mask;
++ unsigned int val, val2, val_mask;
+
+ val_mask = mask << shift;
+ val = (ucontrol->value.integer.value[0] & mask);
+@@ -2050,7 +2051,7 @@ int snd_soc_put_volsw_s8(struct snd_kcon
+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
+ unsigned int reg = mc->reg;
+ int min = mc->min;
+- unsigned short val;
++ unsigned int val;
+
+ val = (ucontrol->value.integer.value[0]+min) & 0xff;
+ val |= ((ucontrol->value.integer.value[1]+min) & 0xff) << 8;
+@@ -2251,6 +2252,7 @@ int snd_soc_register_dai(struct snd_soc_
+ if (!dai->ops)
+ dai->ops = &null_dai_ops;
+
++
+ INIT_LIST_HEAD(&dai->list);
+
+ mutex_lock(&client_mutex);
+--- a/sound/soc/soc-dapm.c
++++ b/sound/soc/soc-dapm.c
+@@ -268,7 +268,7 @@ static int dapm_connect_mixer(struct snd
+ static int dapm_update_bits(struct snd_soc_dapm_widget *widget)
+ {
+ int change, power;
+- unsigned short old, new;
++ unsigned int old, new;
+ struct snd_soc_codec *codec = widget->codec;
+
+ /* check for valid widgets */
+@@ -1246,7 +1246,6 @@ EXPORT_SYMBOL_GPL(snd_soc_dapm_add_route
+ /**
+ * snd_soc_dapm_new_widgets - add new dapm widgets
+ * @codec: audio codec
+- *
+ * Checks the codec for any new dapm widgets and creates them if found.
+ *
+ * Returns 0 for success.
+@@ -1336,7 +1335,8 @@ int snd_soc_dapm_get_volsw(struct snd_kc
+
+ ucontrol->value.integer.value[0] =
+ (snd_soc_read(widget->codec, reg) >> shift) & mask;
+- if (shift != rshift)
++
++ if (shift != rshift)
+ ucontrol->value.integer.value[1] =
+ (snd_soc_read(widget->codec, reg) >> rshift) & mask;
+ if (invert) {
+@@ -1372,7 +1372,7 @@ int snd_soc_dapm_put_volsw(struct snd_kc
+ int max = mc->max;
+ unsigned int mask = (1 << fls(max)) - 1;
+ unsigned int invert = mc->invert;
+- unsigned short val, val2, val_mask;
++ unsigned int val, val2, val_mask;
+ int ret;
+
+ val = (ucontrol->value.integer.value[0] & mask);
+@@ -1436,7 +1436,7 @@ int snd_soc_dapm_get_enum_double(struct
+ {
+ struct snd_soc_dapm_widget *widget = snd_kcontrol_chip(kcontrol);
+ struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
+- unsigned short val, bitmask;
++ unsigned int val, bitmask;
+
+ for (bitmask = 1; bitmask < e->max; bitmask <<= 1)
+ ;
+@@ -1464,8 +1464,8 @@ int snd_soc_dapm_put_enum_double(struct
+ {
+ struct snd_soc_dapm_widget *widget = snd_kcontrol_chip(kcontrol);
+ struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
+- unsigned short val, mux;
+- unsigned short mask, bitmask;
++ unsigned int val, mux;
++ unsigned int mask, bitmask;
+ int ret = 0;
+
+ for (bitmask = 1; bitmask < e->max; bitmask <<= 1)
+@@ -1523,7 +1523,7 @@ int snd_soc_dapm_get_value_enum_double(s
+ {
+ struct snd_soc_dapm_widget *widget = snd_kcontrol_chip(kcontrol);
+ struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
+- unsigned short reg_val, val, mux;
++ unsigned int reg_val, val, mux;
+
+ reg_val = snd_soc_read(widget->codec, e->reg);
+ val = (reg_val >> e->shift_l) & e->mask;
+@@ -1563,8 +1563,8 @@ int snd_soc_dapm_put_value_enum_double(s
+ {
+ struct snd_soc_dapm_widget *widget = snd_kcontrol_chip(kcontrol);
+ struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
+- unsigned short val, mux;
+- unsigned short mask;
++ unsigned int val, mux;
++ unsigned int mask;
+ int ret = 0;
+
+ if (ucontrol->value.enumerated.item[0] > e->max - 1)
diff --git a/recipes/linux/linux-2.6.31/ben-nanonote/500-modifier-keys.patch b/recipes/linux/linux-2.6.31/ben-nanonote/500-modifier-keys.patch
new file mode 100644
index 0000000000..bf75ddf7b8
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/ben-nanonote/500-modifier-keys.patch
@@ -0,0 +1,170 @@
+diff --git a/drivers/char/defkeymap.map b/drivers/char/defkeymap.map
+index 50b30ca..e2ff31a 100644
+--- a/drivers/char/defkeymap.map
++++ b/drivers/char/defkeymap.map
+@@ -1,5 +1,5 @@
+ # Default kernel keymap. This uses 7 modifier combinations.
+-keymaps 0-2,4-5,8,12
++keymaps 0-2,4-5,8,12,128
+ # Change the above line into
+ # keymaps 0-2,4-6,8,12
+ # in case you want the entries
+@@ -45,24 +45,38 @@ keycode 12 = minus underscore backslash
+ control keycode 12 = Control_underscore
+ shift control keycode 12 = Control_underscore
+ alt keycode 12 = Meta_minus
+-keycode 13 = equal plus
++keycode 13 = equal plus
+ alt keycode 13 = Meta_equal
++ altgr keycode 13 = asciitilde
++ ctrlr keycode 13 = three
+ keycode 14 = Delete Delete
+ control keycode 14 = BackSpace
+ alt keycode 14 = Meta_Delete
+ keycode 15 = Tab Tab
+ alt keycode 15 = Meta_Tab
+ keycode 16 = q
++ altgr keycode 16 = exclam
+ keycode 17 = w
++ altgr keycode 17 = at
+ keycode 18 = e
+- altgr keycode 18 = Hex_E
++ altgr keycode 18 = numbersign
+ keycode 19 = r
++ altgr keycode 19 = dollar
+ keycode 20 = t
++ altgr keycode 20 = percent
+ keycode 21 = y
++ altgr keycode 21 = asciicircum
+ keycode 22 = u
++ altgr keycode 22 = ampersand
++ ctrlr keycode 22 = seven
+ keycode 23 = i
++ altgr keycode 23 = asterisk
++ ctrlr keycode 23 = eight
+ keycode 24 = o
++ altgr keycode 24 = parenleft
++ ctrlr keycode 24 = nine
+ keycode 25 = p
++ altgr keycode 25 = parenright
+ keycode 26 = bracketleft braceleft
+ control keycode 26 = Escape
+ alt keycode 26 = Meta_bracketleft
+@@ -73,17 +87,26 @@ keycode 28 = Return
+ alt keycode 28 = Meta_Control_m
+ keycode 29 = Control
+ keycode 30 = a
+- altgr keycode 30 = Hex_A
++ altgr keycode 30 = U+00B0
+ keycode 31 = s
++ altgr keycode 31 = U+00A8
+ keycode 32 = d
+- altgr keycode 32 = Hex_D
++ altgr keycode 32 = U+20AC
+ keycode 33 = f
+- altgr keycode 33 = Hex_F
++ altgr keycode 33 = minus
+ keycode 34 = g
++ altgr keycode 34 = underscore
+ keycode 35 = h
++ altgr keycode 35 = braceleft
+ keycode 36 = j
++ altgr keycode 36 = bracketleft
++ ctrlr keycode 36 = four
+ keycode 37 = k
++ altgr keycode 37 = bracketright
++ ctrlr keycode 37 = five
+ keycode 38 = l
++ altgr keycode 38 = braceright
++ ctrlr keycode 38 = six
+ keycode 39 = semicolon colon
+ alt keycode 39 = Meta_semicolon
+ keycode 40 = apostrophe quotedbl
+@@ -97,58 +120,65 @@ keycode 43 = backslash bar
+ control keycode 43 = Control_backslash
+ alt keycode 43 = Meta_backslash
+ keycode 44 = z
++ altgr keycode 44 = nine
+ keycode 45 = x
++ altgr keycode 45 = zero
+ keycode 46 = c
+ altgr keycode 46 = Hex_C
+ keycode 47 = v
+ keycode 48 = b
+ altgr keycode 48 = Hex_B
+ keycode 49 = n
++ altgr keycode 49 = less
++ ctrlr keycode 49 = one
+ keycode 50 = m
+-keycode 51 = comma less
+- alt keycode 51 = Meta_comma
+-keycode 52 = period greater
++ altgr keycode 50 = greater
++ ctrlr keycode 50 = two
++keycode 51 = comma semicolon
++ altgr keycode 51 = apostrophe
++keycode 52 = period colon
+ control keycode 52 = Compose
+- alt keycode 52 = Meta_period
++ altgr keycode 52 = quotedbl
+ keycode 53 = slash question
+ control keycode 53 = Delete
+ alt keycode 53 = Meta_slash
+-keycode 54 = Shift
++ ctrlr keycode 53 = zero
++keycode 54 = AltGr
+ keycode 55 = KP_Multiply
+ keycode 56 = Alt
+ keycode 57 = space space
+ control keycode 57 = nul
+ alt keycode 57 = Meta_space
+ keycode 58 = Caps_Lock
+-keycode 59 = F1 F11 Console_13
++keycode 59 = F1 F11 one
+ control keycode 59 = F1
+ alt keycode 59 = Console_1
+ control alt keycode 59 = Console_1
+-keycode 60 = F2 F12 Console_14
++keycode 60 = F2 F12 two
+ control keycode 60 = F2
+ alt keycode 60 = Console_2
+ control alt keycode 60 = Console_2
+-keycode 61 = F3 F13 Console_15
++keycode 61 = F3 F13 three
+ control keycode 61 = F3
+ alt keycode 61 = Console_3
+ control alt keycode 61 = Console_3
+-keycode 62 = F4 F14 Console_16
++keycode 62 = F4 F14 four
+ control keycode 62 = F4
+ alt keycode 62 = Console_4
+ control alt keycode 62 = Console_4
+-keycode 63 = F5 F15 Console_17
++keycode 63 = F5 F15 five
+ control keycode 63 = F5
+ alt keycode 63 = Console_5
+ control alt keycode 63 = Console_5
+-keycode 64 = F6 F16 Console_18
++keycode 64 = F6 F16 six
+ control keycode 64 = F6
+ alt keycode 64 = Console_6
+ control alt keycode 64 = Console_6
+-keycode 65 = F7 F17 Console_19
++keycode 65 = F7 F17 seven
+ control keycode 65 = F7
+ alt keycode 65 = Console_7
+ control alt keycode 65 = Console_7
+-keycode 66 = F8 F18 Console_20
++keycode 66 = F8 F18 eight
+ control keycode 66 = F8
+ alt keycode 66 = Console_8
+ control alt keycode 66 = Console_8
+@@ -220,7 +250,7 @@ keycode 93 =
+ keycode 94 =
+ keycode 95 =
+ keycode 96 = KP_Enter
+-keycode 97 = Control
++keycode 97 = CtrlR
+ keycode 98 = KP_Divide
+ keycode 99 = Control_backslash
+ control keycode 99 = Control_backslash
diff --git a/recipes/linux/linux-2.6.31/ben-nanonote/900-add-openwrt-logo.patch b/recipes/linux/linux-2.6.31/ben-nanonote/900-add-openwrt-logo.patch
new file mode 100644
index 0000000000..e2d85641d8
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/ben-nanonote/900-add-openwrt-logo.patch
@@ -0,0 +1,9716 @@
+--- a/drivers/video/logo/Kconfig
++++ b/drivers/video/logo/Kconfig
+@@ -82,4 +82,8 @@ config LOGO_M32R_CLUT224
+ depends on M32R
+ default y
+
++config LOGO_OPENWRT_CLUT224
++ bool "224-color OpenWrt Linux logo"
++ default y
++
+ endif # LOGO
+--- a/drivers/video/logo/Makefile
++++ b/drivers/video/logo/Makefile
+@@ -15,6 +15,7 @@ obj-$(CONFIG_LOGO_SUPERH_MONO) += logo_
+ obj-$(CONFIG_LOGO_SUPERH_VGA16) += logo_superh_vga16.o
+ obj-$(CONFIG_LOGO_SUPERH_CLUT224) += logo_superh_clut224.o
+ obj-$(CONFIG_LOGO_M32R_CLUT224) += logo_m32r_clut224.o
++obj-$(CONFIG_LOGO_OPENWRT_CLUT224) += logo_openwrt_clut224.o
+
+ obj-$(CONFIG_SPU_BASE) += logo_spe_clut224.o
+
+--- a/drivers/video/logo/logo.c
++++ b/drivers/video/logo/logo.c
+@@ -100,6 +100,10 @@ const struct linux_logo * __init_refok f
+ /* M32R Linux logo */
+ logo = &logo_m32r_clut224;
+ #endif
++#ifdef CONFIG_LOGO_OPENWRT_CLUT224
++ /* OpenWrt logo */
++ logo = &logo_openwrt_clut224;
++#endif
+ }
+ return logo;
+ }
+--- /dev/null
++++ b/drivers/video/logo/logo_openwrt_clut224.ppm
+@@ -0,0 +1,9669 @@
++P3
++320 179
++255
++71 85 132 71 85 132 71 85 132 72 85 132 72 85 132 55 70 121
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 48 64 117 73 86 133 73 86 133 73 86 133 73 86 133
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 73 86 133 73 86 133 73 86 133
++73 86 133 65 79 128 30 47 105 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 35 51 108 70 84 131 72 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 49 65 117 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 34 50 107 66 80 129
++66 80 129 66 80 129 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 63 77 126 58 73 123 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 36 52 108 61 75 125 61 75 125 61 75 125 61 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 58 73 123
++58 73 123 58 73 123 56 70 122 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 26 43 102 54 69 120 56 70 122
++56 70 122 56 70 122 56 70 122 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 54 69 120 54 69 120 54 69 120
++54 69 120 42 58 112 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 42 58 112
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 48 64 117
++39 55 110 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 34 50 107 46 61 115 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 44 60 114 44 60 114 44 60 114 39 55 111
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 31 48 105 40 56 111 40 56 111 39 55 111
++39 55 111 39 55 111 39 55 111 39 55 111 26 43 102 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++71 85 132 71 85 132 72 85 132 72 85 132 58 73 123 26 43 102
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++52 67 119 73 86 133 73 86 133 73 86 133 73 86 133 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 73 86 133
++73 86 133 73 86 133 66 80 129 33 50 106 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 38 54 109 71 85 132
++72 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 66 80 129 31 48 105 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 55 70 121
++66 80 129 66 80 129 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 63 77 126 36 52 108 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 26 43 102 58 73 123 61 75 125 61 75 125 61 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 58 73 123
++58 73 123 58 73 123 58 73 123 33 50 106 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 46 61 115 56 70 122
++56 70 122 56 70 122 56 70 122 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 54 69 120 54 69 120 54 69 120
++54 69 120 48 64 117 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 36 52 108
++51 66 119 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 48 64 117
++44 60 114 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 30 47 105 46 61 115 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 44 60 114 44 60 114 44 60 114 43 59 113
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 29 45 103 40 56 111 40 56 111 39 55 111
++39 55 111 39 55 111 39 55 111 39 55 111 29 45 103 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++71 85 132 71 85 132 72 85 132 64 78 127 27 44 102 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 50 65 118
++73 86 133 73 86 133 73 86 133 73 86 133 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++73 86 133 73 86 133 73 86 133 66 80 129 30 47 105 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 44 60 114
++72 85 132 72 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 54 69 120 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 36 52 108
++66 80 129 66 80 129 66 80 129 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 63 77 126 50 65 118 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 48 64 117 61 75 125 61 75 125 61 75 125
++61 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++58 73 123 58 73 123 58 73 123 42 58 112 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 37 53 109 56 70 122
++56 70 122 56 70 122 56 70 122 56 70 122 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 54 69 120 54 69 120 54 69 120
++54 69 120 54 69 120 27 44 102 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 30 46 104
++51 66 119 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++48 64 117 26 43 102 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 27 44 102 46 61 115 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 44 60 114 44 60 114 44 60 114
++27 44 102 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 27 44 102 40 56 111 40 56 111 39 55 111
++39 55 111 39 55 111 39 55 111 39 55 111 30 47 105 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++71 85 132 72 85 132 70 84 131 32 49 106 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 46 61 115 73 86 133
++73 86 133 73 86 133 73 86 133 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 73 86 133 73 86 133 73 86 133 65 79 128 29 45 103
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++56 70 122 72 85 132 72 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 32 49 106 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++58 73 123 66 80 129 66 80 129 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 63 77 126 63 77 126 28 45 103 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 35 51 108 61 75 125 61 75 125 61 75 125
++61 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++58 73 123 58 73 123 58 73 123 52 67 119 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 29 45 103 56 70 122
++56 70 122 56 70 122 56 70 122 56 70 122 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 54 69 120 54 69 120 54 69 120
++54 69 120 54 69 120 33 50 106 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++48 64 117 30 47 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 43 59 113 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 44 60 114 44 60 114 44 60 114
++30 47 105 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 39 55 111 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 33 50 106 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++72 85 132 72 85 132 42 58 112 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 42 58 112 73 86 133 73 86 133
++73 86 133 73 86 133 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 73 86 133 73 86 133 73 86 133 63 77 126
++27 44 102 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++28 45 103 66 80 128 72 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 54 69 120 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++40 56 111 66 80 129 66 80 129 66 80 129 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 63 77 126 39 55 111 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 26 43 102 58 73 123 61 75 125 61 75 125
++61 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++58 73 123 58 73 123 58 73 123 58 73 123 28 45 103 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 52 67 119
++56 70 122 56 70 122 56 70 122 56 70 122 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 55 70 121 54 69 120 54 69 120
++54 69 120 54 69 120 39 55 111 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++44 60 114 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++48 64 117 34 50 107 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 39 55 111 46 61 115 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 44 60 114 44 60 114 44 60 114
++34 50 107 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 37 53 109 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 35 51 108 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++72 85 132 55 70 121 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 38 54 109 72 85 132 73 86 133 73 86 133
++73 86 133 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 73 86 133 73 86 133 73 86 133
++58 73 123 26 43 102 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 34 50 107 71 85 132 72 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 31 48 105 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++26 43 102 63 77 126 66 80 129 66 80 129 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 63 77 126 52 67 119 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 47 62 115 61 75 125 61 75 125
++61 75 125 61 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 58 73 123 58 73 123 58 73 123 38 54 109 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 45 60 114
++56 70 122 56 70 122 56 70 122 56 70 122 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 55 70 121 54 69 120 54 69 120
++54 69 120 54 69 120 47 62 115 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++39 55 110 51 66 119 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++48 64 117 39 55 110 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 36 52 108 46 61 115 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 44 60 114 44 60 114 44 60 114
++38 54 109 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 35 51 108 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 37 53 109 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++65 79 128 27 44 102 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 30 47 105 69 83 131 73 86 133 73 86 133 73 86 133
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 73 86 133 73 86 133
++73 86 133 49 65 117 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 45 60 114 72 85 132 72 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 51 66 119 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 46 61 115 66 80 129 66 80 129 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 63 77 126 63 77 126 28 45 103
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 37 53 109 61 75 125 61 75 125
++61 75 125 61 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 58 73 123 58 73 123 58 73 123 47 62 115 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 38 54 109
++56 70 122 56 70 122 56 70 122 56 70 122 56 70 122 55 70 121
++55 70 121 55 70 121 55 70 121 55 70 121 54 69 120 54 69 120
++54 69 120 54 69 120 54 69 120 26 43 102 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++34 50 107 51 66 119 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++48 64 117 43 59 113 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 32 49 106 46 61 115 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 44 60 114 44 60 114 44 60 114
++42 58 112 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 32 49 106 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 39 55 111 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++34 50 107 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++26 43 102 63 77 126 73 86 133 73 86 133 73 86 133 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 73 86 133 73 86 133
++73 86 133 72 85 132 38 54 109 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 60 75 125 72 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++68 82 130 68 82 130 68 82 130 68 82 130 66 80 129 29 45 103
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 30 46 104 66 80 129 66 80 129 66 80 129 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 63 77 126 39 55 111
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 27 44 102 60 75 125 61 75 125
++61 75 125 61 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 58 73 123 58 73 123 58 73 123 55 70 121 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 30 47 105
++56 70 122 56 70 122 56 70 122 56 70 122 56 70 122 55 70 121
++55 70 121 55 70 121 55 70 121 55 70 121 54 69 120 54 69 120
++54 69 120 54 69 120 54 69 120 31 48 105 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++30 46 104 51 66 119 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 47 62 115 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 29 45 103 46 61 115 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 44 60 114 44 60 114 44 60 114
++44 60 114 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 30 47 105 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 39 55 111 27 44 102
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++50 65 118 73 86 133 73 86 133 73 86 133 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 73 86 133
++73 86 133 73 86 133 68 82 130 30 46 104 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 32 49 106 71 85 132 72 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 48 64 117
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 55 70 121 66 80 129 66 80 129 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 63 77 126 52 67 119
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 54 69 120 61 75 125
++61 75 125 61 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 58 73 123 58 73 123 58 73 123 58 73 123 29 45 103
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++54 69 120 56 70 122 56 70 122 56 70 122 56 70 122 55 70 121
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 54 69 120
++54 69 120 54 69 120 54 69 120 37 53 109 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++26 43 102 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 48 64 117 28 45 103 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 44 60 114 44 60 114
++44 60 114 28 45 103 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 29 45 103 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 39 55 111 29 45 103
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 39 55 111
++73 86 133 73 86 133 73 86 133 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++73 86 133 73 86 133 73 86 133 60 75 125 26 43 102 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 50 65 118 72 85 132
++72 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 64 78 127
++26 43 102 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 39 55 110 66 80 129 66 80 129 66 80 129
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 63 77 126 63 77 126
++26 43 102 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 42 58 112 61 75 125
++61 75 125 61 75 125 61 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 58 73 123 58 73 123 58 73 123 37 53 109
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++48 64 117 56 70 122 56 70 122 56 70 122 56 70 122 55 70 121
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 54 69 120
++54 69 120 54 69 120 54 69 120 42 58 112 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 47 62 115 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 48 64 117 32 49 106 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 42 58 112 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 44 60 114 44 60 114
++44 60 114 30 47 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 26 43 102 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 39 55 111 30 47 105
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 29 45 103 69 83 131
++73 86 133 73 86 133 73 86 133 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 73 86 133 73 86 133 73 86 133 47 62 115 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 27 44 102 66 80 129
++72 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++39 55 110 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 26 43 102 64 78 127 66 80 129 66 80 129
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 63 77 126
++36 52 108 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 32 49 106 61 75 125
++61 75 125 61 75 125 61 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 58 73 123 58 73 123 58 73 123 44 60 114
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++40 56 111 56 70 122 56 70 122 56 70 122 56 70 122 56 70 122
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 54 69 120
++54 69 120 54 69 120 54 69 120 47 62 115 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 42 58 112 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 48 64 117 36 52 108 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 39 55 111 46 61 115 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 44 60 114 44 60 114
++44 60 114 32 49 106 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 39 55 111 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 32 49 106
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 54 69 120 73 86 133
++73 86 133 73 86 133 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 73 86 133 73 86 133 73 86 133 70 84 131 30 47 105
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 40 56 111
++72 85 132 72 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++56 70 122 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 50 65 118 66 80 129 66 80 129
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 63 77 126
++47 62 115 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 58 73 123
++61 75 125 61 75 125 61 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 58 73 123 58 73 123 58 73 123 52 67 119
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++34 50 107 56 70 122 56 70 122 56 70 122 56 70 122 56 70 122
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 54 69 120
++54 69 120 54 69 120 54 69 120 52 67 119 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 37 53 109 51 66 119 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 48 64 117 40 56 111 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 37 53 109 46 61 115 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 44 60 114 44 60 114
++44 60 114 35 51 108 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 38 54 109 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 34 50 107
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 35 51 108 73 86 133 73 86 133
++73 86 133 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 73 86 133 73 86 133 73 86 133 56 70 122
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++60 75 125 72 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 30 46 104 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 37 53 109 66 80 129 66 80 129
++66 80 129 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 63 77 126
++58 73 123 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 50 65 118
++61 75 125 61 75 125 61 75 125 61 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 58 73 123 58 73 123 58 73 123 58 73 123
++27 44 102 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++29 45 103 56 70 122 56 70 122 56 70 122 56 70 122 56 70 122
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 54 69 120
++54 69 120 54 69 120 54 69 120 54 69 120 29 45 103 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 32 49 106 51 66 119 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 48 64 117 44 60 114 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 34 50 107 46 61 115 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 44 60 114 44 60 114
++44 60 114 38 54 109 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 36 52 108 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 36 52 108
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 26 43 102 63 77 126 73 86 133 73 86 133
++73 86 133 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 73 86 133 73 86 133 73 86 133
++38 54 109 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++36 52 108 72 85 132 72 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 45 60 114 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 26 43 102 63 77 126 66 80 129
++66 80 129 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 63 77 126
++63 77 126 30 47 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 42 58 112
++61 75 125 61 75 125 61 75 125 61 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 58 73 123 58 73 123 58 73 123
++34 50 107 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 54 69 120 56 70 122 56 70 122 56 70 122 56 70 122
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 33 50 106 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 28 45 103 51 66 119 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 47 62 115 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 31 48 105 46 61 115 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 44 60 114 44 60 114
++44 60 114 39 55 111 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 34 50 107 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 38 54 109
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 45 60 114 73 86 133 73 86 133 73 86 133
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 73 86 133 73 86 133 73 86 133
++66 80 128 26 43 102 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 58 73 123 72 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 59 74 124 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 50 65 118 66 80 129
++66 80 129 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++63 77 126 39 55 111 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 33 50 106
++61 75 125 61 75 125 61 75 125 61 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 58 73 123 58 73 123 58 73 123
++40 56 111 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 48 64 117 56 70 122 56 70 122 56 70 122 56 70 122
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 39 55 110 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 48 64 117 26 43 102 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 29 45 103 46 61 115 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 44 60 114 44 60 114
++44 60 114 42 58 112 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 32 49 106 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 39 55 111
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 27 44 102 68 82 130 73 86 133 73 86 133 73 86 133
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 73 86 133 73 86 133
++73 86 133 44 60 114 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 37 53 109 72 85 132 72 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 30 47 105 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 39 55 110 66 80 129
++66 80 129 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++63 77 126 48 64 117 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 26 43 102
++60 75 125 61 75 125 61 75 125 61 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 58 73 123 58 73 123 58 73 123
++46 61 115 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 43 59 113 56 70 122 56 70 122 56 70 122 56 70 122
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 44 60 114 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 47 62 115 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 48 64 117 30 46 104 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 27 44 102 46 61 115 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 44 60 114 26 43 102 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 30 47 105 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 39 55 111
++27 44 102 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 46 61 115 73 86 133 73 86 133 73 86 133 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 73 86 133 73 86 133
++73 86 133 66 80 129 26 43 102 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 63 77 126 72 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 45 60 114 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 28 45 103 66 80 128
++66 80 129 66 80 129 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++63 77 126 56 70 122 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++54 69 120 61 75 125 61 75 125 61 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 58 73 123 58 73 123 58 73 123
++52 67 119 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 37 53 109 56 70 122 56 70 122 56 70 122 56 70 122
++56 70 122 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 48 64 117 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 43 59 113 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 48 64 117 32 49 106 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 44 60 114 28 45 103 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 29 45 103 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 39 55 111
++28 45 103 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++26 43 102 66 80 129 73 86 133 73 86 133 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 73 86 133
++73 86 133 73 86 133 42 58 112 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 42 58 112 72 85 132 72 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 68 82 130 68 82 130
++68 82 130 68 82 130 58 73 123 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 56 70 122
++66 80 129 66 80 129 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++63 77 126 63 77 126 28 45 103 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++45 60 114 61 75 125 61 75 125 61 75 125 61 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 58 73 123 58 73 123 58 73 123
++58 73 123 26 43 102 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 31 48 105 56 70 122 56 70 122 56 70 122 56 70 122
++56 70 122 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 52 67 119 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 40 56 111 51 66 119 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 48 64 117 35 51 108 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 42 58 112 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 44 60 114 30 47 105 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 27 44 102 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 39 55 111
++30 46 104 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++43 59 113 73 86 133 73 86 133 73 86 133 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++73 86 133 73 86 133 65 79 128 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 26 43 102 68 82 130 72 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 68 82 130 68 82 130
++68 82 130 68 82 130 66 80 129 28 45 103 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 45 60 114
++66 80 129 66 80 129 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 63 77 126 37 53 109 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++39 55 110 61 75 125 61 75 125 61 75 125 61 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 58 73 123 58 73 123
++58 73 123 30 47 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 27 44 102 56 70 122 56 70 122 56 70 122 56 70 122
++56 70 122 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 54 69 120 27 44 102
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 37 53 109 51 66 119 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 48 64 117 39 55 110 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 39 55 111 46 61 115
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 44 60 114 33 50 106 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 26 43 102 40 56 111
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++30 47 105 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++66 80 128 73 86 133 73 86 133 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++73 86 133 73 86 133 73 86 133 40 56 111 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 50 65 118 72 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 39 55 111 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 35 51 108
++66 80 129 66 80 129 66 80 129 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 63 77 126 45 60 114 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++32 49 106 61 75 125 61 75 125 61 75 125 61 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 58 73 123 58 73 123
++58 73 123 37 53 109 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 54 69 120 56 70 122 56 70 122 56 70 122
++56 70 122 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 54 69 120 30 47 105
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 33 50 106 51 66 119 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 48 64 117 42 58 112 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 37 53 109 46 61 115
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 44 60 114 35 51 108 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 39 55 111
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++32 49 106 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++73 86 133 73 86 133 73 86 133 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 73 86 133 71 84 130 70 81 118 70 81 118 71 84 130
++76 89 135 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++73 86 133 73 86 133 73 86 133 60 75 125 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 32 49 106 72 85 132 72 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 51 66 119 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 26 43 102
++66 80 128 66 80 129 66 80 129 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 63 77 126 51 66 119 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++26 43 102 61 75 125 61 75 125 61 75 125 61 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 58 73 123 58 73 123
++58 73 123 42 58 112 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 49 65 117 56 70 122 56 70 122 56 70 122
++56 70 122 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++55 70 121 54 69 120 54 69 120 54 69 120 54 69 120 35 51 108
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 30 47 105 51 66 119 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 44 60 114 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 34 50 107 46 61 115
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 44 60 114 37 53 109 25 42 101 15 25 57 23 37 83
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 39 55 110
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++33 50 106 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++73 86 133 73 86 133 73 86 133 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 77 90 136 60 71 109 43 51 76 25 31 50 15 16 21
++3 4 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 7 9 13 15 18 27 29 34 52 46 54 80 64 76 117
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 73 86 133 73 86 133 73 86 133 30 47 105 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 63 77 126 72 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 68 82 130
++68 82 130 68 82 130 68 82 130 63 77 126 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++58 73 123 66 80 129 66 80 129 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 63 77 126 58 73 123 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 56 70 122 61 75 125 61 75 125 61 75 125 54 69 120
++32 41 72 32 41 72 32 41 72 32 41 72 32 41 72 30 37 63
++30 37 63 30 37 63 30 37 63 30 37 63 30 37 63 30 37 63
++30 37 63 27 35 61 13 22 52 18 31 74 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 15 25 57 13 22 52
++13 22 52 13 22 52 27 35 61 30 37 63 30 37 63 30 37 63
++30 37 63 30 37 63 30 37 63 30 37 63 30 37 63 30 37 63
++36 45 78 54 69 120 54 69 120 54 69 120 54 69 120 39 55 110
++25 42 101 19 29 65 13 22 52 13 22 52 13 22 52 13 22 52
++13 22 52 13 22 52 13 22 52 13 22 52 13 22 52 13 22 52
++13 22 52 13 22 52 13 22 52 27 35 61 28 36 67 50 65 118
++50 65 118 50 65 118 50 65 118 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 47 62 115 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 33 50 106 46 61 115
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 43 59 113 23 33 67 4 6 13 0 0 0 18 31 74
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 37 53 109
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++34 50 107 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++73 86 133 73 86 133 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 64 76 117
++32 38 56 7 9 13 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 14 14 16 3 4 6 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++10 12 18 38 45 67 70 81 118 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 73 86 133 73 86 133 73 86 133 48 64 117 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 47 62 115 72 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 29 45 103 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++48 64 117 66 80 129 66 80 129 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 63 77 126 63 77 126 27 44 102 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 49 65 117 61 75 125 61 75 125 61 75 125 59 74 124
++2 3 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 10 17 39 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 27 41 89 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++5 7 13 54 69 120 54 69 120 54 69 120 54 69 120 42 58 112
++25 42 101 8 10 17 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 14 19 34 50 65 118
++50 65 118 50 65 118 50 65 118 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 48 64 117 26 43 102 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 31 48 105 46 61 115
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++29 39 72 8 10 17 0 0 0 0 0 0 0 0 0 18 31 74
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 36 52 108
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++36 52 108 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++73 86 133 73 86 133 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 64 76 117 23 26 38 0 0 0
++0 0 0 0 0 0 15 16 21 89 90 90 137 140 149 187 187 187
++215 215 215 244 244 244 255 255 255 255 255 255 255 255 255 255 255 255
++237 237 237 207 207 207 180 180 180 134 134 135 75 75 75 7 8 9
++0 0 0 0 0 0 1 1 2 29 34 52 70 81 118 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 73 86 133 73 86 133 65 79 128 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 31 48 105 72 85 132
++72 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 39 55 110 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++39 55 110 66 80 129 66 80 129 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 63 77 126 34 50 107 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 43 59 113 61 75 125 61 75 125 61 75 125 61 75 125
++15 18 27 0 0 0 53 55 60 100 102 106 100 102 106 100 102 106
++100 102 106 100 102 106 100 102 106 100 102 106 100 102 106 100 102 106
++100 102 106 75 75 75 0 0 0 8 10 17 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 15 25 57 0 0 0 30 30 30
++100 102 106 100 102 106 100 102 106 100 102 106 100 102 106 100 102 106
++100 102 106 100 102 106 100 102 106 100 102 106 100 102 106 7 8 9
++0 0 0 45 57 100 54 69 120 54 69 120 54 69 120 46 61 115
++25 42 101 1 1 3 0 0 0 89 90 90 100 102 106 100 102 106
++100 102 106 100 102 106 100 102 106 100 102 106 100 102 106 100 102 106
++100 102 106 100 102 106 30 30 30 0 0 0 26 32 53 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 48 64 117 28 45 103 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 30 46 104 46 61 115
++45 60 114 45 60 114 45 60 114 45 60 114 29 40 76 8 11 18
++0 0 0 0 0 0 30 30 30 7 8 9 0 0 0 18 31 74
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 34 50 107
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++37 53 109 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++73 86 133 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 75 88 134 32 38 61 1 1 1 0 0 0 3 4 6
++89 90 90 195 195 195 251 251 251 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 244 244 244
++167 167 167 75 75 75 1 2 3 0 0 0 2 3 3 43 51 76
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 73 86 133 73 86 133 73 86 133 34 50 107
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 65 79 128
++72 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 49 65 117 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++30 47 105 66 80 129 66 80 129 66 80 129 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 63 77 126 40 56 111 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 39 55 110 61 75 125 61 75 125 61 75 125 61 75 125
++27 35 61 0 0 0 100 102 106 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 226 226 226 0 0 0 1 1 2 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 9 15 36 0 0 0 123 126 137
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 75 75 75
++0 0 0 30 37 63 54 69 120 54 69 120 54 69 120 49 65 117
++23 37 83 0 0 0 15 16 21 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 43 45 49 0 0 0 36 45 78 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 48 64 117 30 46 104 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 29 45 103 46 61 115
++45 60 114 45 60 114 28 40 79 9 12 21 0 0 0 0 0 0
++15 16 21 137 140 149 244 244 244 30 30 30 0 0 0 18 31 74
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 33 50 106
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++38 54 109 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++73 86 133 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++70 81 118 15 18 27 0 0 0 1 1 1 89 90 90 226 226 226
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 207 207 207 75 75 75 0 0 0 0 0 0
++23 26 38 71 84 130 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 73 86 133 73 86 133 73 86 133 50 65 118
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 52 67 119
++72 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++68 82 130 68 82 130 68 82 130 68 82 130 58 73 123 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 65 79 128 66 80 129 66 80 129 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 63 77 126 46 61 115 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 34 50 107 61 75 125 61 75 125 61 75 125 61 75 125
++41 51 85 0 0 0 43 45 49 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 15 16 21 0 0 0 23 37 83 25 42 101
++25 42 101 25 42 101 25 42 101 2 3 7 0 0 0 195 195 195
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 148 148 149
++0 0 0 14 19 34 54 69 120 54 69 120 54 69 120 52 67 119
++19 29 65 0 0 0 75 75 75 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 237 237 237 1 2 3 0 0 0 49 62 109 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 48 64 117 31 48 105 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 27 44 102 46 61 115
++28 40 79 9 13 26 0 0 0 0 0 0 15 16 21 134 134 135
++244 244 244 255 255 255 255 255 255 30 30 30 0 0 0 18 31 74
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 32 49 106
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 110 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++73 86 133 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 64 76 117
++8 10 17 0 0 0 30 30 30 187 187 187 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 155 156 157 14 14 16
++0 0 0 12 15 26 70 81 118 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 73 86 133 73 86 133 63 77 126
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 39 55 110
++72 85 132 72 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++68 82 130 68 82 130 68 82 130 68 82 130 66 80 128 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 58 73 123 66 80 129 66 80 129 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 63 77 126 51 66 119 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 30 46 104 61 75 125 61 75 125 61 75 125 61 75 125
++53 67 117 0 0 0 2 3 3 244 244 244 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 75 75 75 0 0 0 19 29 65 25 42 101
++25 42 101 25 42 101 23 37 83 0 0 0 14 14 16 251 251 251
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 215 215 215
++0 0 0 1 2 3 53 67 117 54 69 120 54 69 120 54 69 120
++13 20 42 0 0 0 117 119 127 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 187 187 187 0 0 0 7 9 15 51 66 119 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 48 64 117 33 50 106 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 18 31 74 10 14 26
++0 0 0 0 0 0 14 14 16 123 126 137 244 244 244 255 255 255
++255 255 255 255 255 255 255 255 255 30 30 30 0 0 0 18 31 74
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 31 48 105
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++73 86 133 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 70 81 118 8 10 17
++0 0 0 43 45 49 226 226 226 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 207 207 207
++30 30 30 0 0 0 12 15 26 72 85 132 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 73 86 133 73 86 133 72 85 132
++28 45 103 25 42 101 25 42 101 25 42 101 25 42 101 28 45 103
++72 85 132 72 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 30 46 104
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 50 65 118 66 80 129 66 80 129 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 63 77 126 56 70 122 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 60 75 125 61 75 125 61 75 125 61 75 125
++60 75 125 8 11 18 0 0 0 187 187 187 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 117 119 127 0 0 0 13 20 42 25 42 101
++25 42 101 25 42 101 13 22 52 0 0 0 89 90 90 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++30 30 30 0 0 0 41 51 85 54 69 120 54 69 120 54 69 120
++9 13 26 0 0 0 167 167 167 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 134 134 135 0 0 0 13 20 42 51 66 119 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 48 64 117 35 51 108 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 18 31 74 9 13 26 0 0 0 0 0 0
++14 14 16 117 119 127 237 237 237 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 30 30 30 0 0 0 18 31 74
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 30 47 105
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 26 43 102 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 78 91 137
++78 91 137 78 91 137 78 91 137 75 88 134 15 18 27 0 0 0
++43 45 49 237 237 237 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++226 226 226 30 30 30 0 0 0 23 26 38 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 73 86 133 73 86 133 73 86 133
++39 55 111 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++64 78 127 72 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 38 54 109
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 44 60 114 66 80 129 66 80 129 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 63 77 126 60 75 125 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 56 70 122 61 75 125 61 75 125 61 75 125
++60 75 125 23 28 45 0 0 0 134 134 135 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 167 167 167 0 0 0 9 13 26 25 42 101
++25 42 101 25 42 101 9 13 26 0 0 0 155 156 157 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++100 102 106 0 0 0 21 28 52 54 69 120 54 69 120 54 69 120
++2 3 7 0 0 0 215 215 215 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 75 75 75 0 0 0 19 29 65 51 66 119 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 48 64 117 37 53 109 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 9 15 36 0 0 0 7 8 9 117 119 127
++237 237 237 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 30 30 30 0 0 0 18 31 74
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 30 46 104
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 27 44 102 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 32 38 61 0 0 0 30 30 30
++226 226 226 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 207 207 207 7 8 9 0 0 0 46 54 80 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 73 86 133 73 86 133 73 86 133
++51 66 119 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++54 69 120 72 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 44 60 114
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 39 55 111 66 80 129 66 80 129 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 63 77 126 63 77 126 27 44 102 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 52 67 119 61 75 125 61 75 125 61 75 125
++60 75 125 32 41 72 0 0 0 75 75 75 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 215 215 215 0 0 0 2 3 7 25 42 101
++25 42 101 25 42 101 1 1 2 0 0 0 226 226 226 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++167 167 167 0 0 0 8 11 18 54 69 120 54 69 120 49 62 109
++0 0 0 7 8 9 251 251 251 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++254 254 254 15 16 21 0 0 0 27 41 89 51 66 119 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 48 64 117 39 55 110 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 9 15 36 0 0 0 148 148 149 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 30 30 30 0 0 0 18 31 74
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 29 45 103
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 28 45 103 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 78 91 137 78 91 137
++78 91 137 78 91 137 60 71 109 0 0 1 1 1 1 187 187 187
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 148 148 149 0 0 0 4 5 9 74 85 123
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 73 86 133 73 86 133
++63 77 126 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++44 60 114 72 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 68 82 130 68 82 130 68 82 130 68 82 130 49 65 117
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 34 50 107 66 80 129 66 80 129 66 80 129 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 63 77 126 32 49 106 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 49 65 117 61 75 125 61 75 125 61 75 125
++60 75 125 49 61 100 0 0 0 15 16 21 254 254 254 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 251 251 251 7 8 9 0 0 0 23 37 83
++25 42 101 19 29 65 0 0 0 43 45 49 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++237 237 237 2 3 3 0 0 0 49 62 109 54 69 120 41 51 85
++0 0 0 51 51 51 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++215 215 215 0 0 0 1 2 3 31 48 105 51 66 119 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 48 64 117 40 56 111 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 9 15 36 0 0 0 148 148 149 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 30 30 30 0 0 0 18 31 74
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 28 45 103
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 28 45 103 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 19 23 37 0 0 0 100 102 106 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 254 254 254 53 55 60 0 0 0 32 38 56
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 89 135 76 89 135 76 89 135 66 79 125 55 65 99 44 53 81
++40 48 74 44 52 77 50 58 85 60 71 109 73 86 133 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 73 86 133 73 86 133
++71 85 132 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++36 52 108 72 85 132 72 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 70 84 131 66 80 128 60 71 109 49 60 97
++50 58 85 40 48 74 39 46 71 40 49 78 44 53 81 49 60 97
++60 71 109 66 79 125 68 82 130 68 82 130 68 82 130 56 70 122
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 29 45 103 66 80 129 66 80 129 66 80 129 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 63 77 126 27 41 89 19 29 65
++15 25 57 15 25 57 15 25 57 19 29 65 23 37 83 25 42 101
++25 42 101 25 42 101 46 61 115 61 75 125 61 75 125 61 75 125
++61 75 125 59 74 124 2 3 5 0 0 0 215 215 215 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 51 51 51 0 0 0 19 29 65
++25 42 101 10 17 39 0 0 0 100 102 106 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 53 55 60 0 0 0 32 41 72 54 69 120 27 35 61
++0 0 0 100 102 106 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++155 156 157 0 0 0 9 13 26 30 47 105 51 66 119 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 48 64 117 42 58 112 25 42 101
++25 42 101 25 42 101 18 31 74 15 25 57 15 25 57 15 25 57
++18 31 74 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 9 15 36 0 0 0 148 148 149 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 30 30 30 0 0 0 18 31 74
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 28 45 103
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 29 45 103 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 78 91 137 78 91 137 78 91 137
++78 91 137 60 71 109 0 0 0 7 8 9 226 226 226 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254
++167 167 167 75 75 75 30 30 30 2 3 3 7 8 9 43 45 49
++100 102 106 207 207 207 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 195 195 195 0 0 0 3 4 6
++71 84 130 78 91 137 78 91 137 52 59 86 10 12 18 10 12 18
++10 12 18 10 12 18 10 12 18 10 12 18 10 12 18 10 12 18
++10 12 18 10 12 18 10 12 18 10 12 18 10 12 18 23 28 45
++72 85 132 44 52 77 15 18 27 0 0 1 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 5 7 13 29 34 52
++60 71 109 74 87 134 74 87 134 74 87 134 73 86 133 73 86 133
++73 86 133 30 47 105 25 42 101 25 42 101 25 42 101 25 42 101
++28 45 103 72 85 132 72 85 132 71 85 132 71 85 132 71 85 132
++60 71 109 32 38 61 12 15 26 1 1 2 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 1 1 1 12 15 26 32 38 61 49 60 97 61 75 125
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 65 79 128 41 51 85 8 11 17 8 11 17
++8 11 17 8 11 17 8 11 17 8 11 17 8 11 17 8 11 17
++8 11 17 8 11 17 8 11 17 8 10 17 8 10 17 25 31 50
++64 78 127 53 64 102 26 32 53 5 7 13 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 5 9
++10 17 39 23 37 83 43 59 113 61 75 125 61 75 125 61 75 125
++61 75 125 60 75 125 14 19 34 0 0 0 155 156 157 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 100 102 106 0 0 0 13 22 52
++25 42 101 4 6 13 0 0 0 180 180 180 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 134 134 135 0 0 0 17 22 38 54 69 120 17 22 38
++0 0 0 148 148 149 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++100 102 106 0 0 0 13 20 42 19 29 65 7 9 15 7 9 15
++7 9 15 7 9 15 7 9 15 7 9 15 7 9 15 7 9 15
++7 9 15 7 9 15 7 9 15 7 9 15 7 9 15 9 13 26
++13 22 52 3 5 9 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 1 1 3 11 15 31 18 31 74 13 20 42 4 6 13
++4 6 13 4 6 13 2 3 5 0 0 0 148 148 149 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 30 30 30 0 0 0 3 5 9
++4 6 13 4 6 13 4 6 13 4 6 13 4 6 13 27 41 89
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 27 44 102
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 30 46 104 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 29 34 52 0 0 0 100 102 106 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 226 226 226 53 55 60
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 1 2 3 100 102 106 251 251 251 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 51 51 51 0 0 0
++44 52 77 78 91 137 78 91 137 46 54 81 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 11 17
++8 10 17 0 0 0 0 0 0 2 3 3 43 45 49 75 75 75
++100 102 106 75 75 75 53 55 60 15 16 21 0 0 0 0 0 0
++1 1 1 29 34 52 66 80 128 74 87 134 73 86 133 73 86 133
++73 86 133 39 55 110 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 68 82 130 72 85 132 71 85 132 49 60 97 15 18 27
++0 0 0 0 0 0 0 0 0 0 0 0 30 30 30 51 51 51
++75 75 75 89 90 90 100 102 106 89 90 90 75 75 75 51 51 51
++15 16 21 0 0 0 0 0 0 0 0 0 0 0 0 9 12 21
++15 25 57 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 61 75 125 38 47 77 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 21 36
++32 38 61 1 1 1 0 0 0 0 0 0 14 14 16 51 51 51
++89 90 90 100 102 106 89 90 90 55 60 74 14 14 16 0 0 0
++0 0 0 1 1 2 18 25 51 59 74 124 61 75 125 61 75 125
++61 75 125 60 75 125 27 35 61 0 0 0 100 102 106 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 148 148 149 0 0 0 9 13 26
++23 37 83 0 0 0 7 8 9 244 244 244 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 195 195 195 0 0 0 3 4 6 53 67 117 7 9 15
++0 0 0 195 195 195 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++43 45 49 0 0 0 19 29 65 18 27 58 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 30 30 30 75 75 75 100 102 106 75 75 75
++30 30 30 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 148 148 149 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 30 30 30 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23 37 83
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 26 43 102
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 30 46 104 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 78 91 137 78 91 137 78 91 137 78 91 137
++76 89 135 4 5 9 0 0 0 195 195 195 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 237 237 237 30 30 30 0 0 0
++5 7 13 44 52 77 64 76 117 79 90 127 74 85 123 60 71 109
++32 38 56 1 1 2 0 0 0 89 90 90 254 254 254 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 155 156 157 0 0 0
++16 21 36 78 91 137 78 91 137 46 54 81 0 0 0 53 55 60
++187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187
++187 187 187 187 187 187 187 187 187 134 134 135 0 0 0 0 0 0
++0 0 0 30 30 30 148 148 149 237 237 237 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 254 254 254 207 207 207 100 102 106
++3 4 6 0 0 0 10 12 18 60 71 109 73 86 133 73 86 133
++73 86 133 46 61 115 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 63 77 126 64 76 117 19 23 37 0 0 0 0 0 0
++7 9 13 89 90 90 155 156 157 220 220 220 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 237 237 237 167 167 167 100 102 106 14 14 16 0 0 0
++0 0 0 8 11 18 23 37 83 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 58 73 123 38 47 77 0 0 0 55 60 74
++187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187
++187 187 187 187 187 187 187 187 187 117 119 127 0 0 0 0 0 0
++0 0 0 1 1 1 89 90 90 187 187 187 251 251 251 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 251 251 251 195 195 195
++75 75 75 1 1 1 0 0 0 16 21 36 55 70 121 61 75 125
++61 75 125 60 75 125 41 51 85 0 0 0 43 45 49 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 195 195 195 0 0 0 3 6 11
++15 25 57 0 0 0 55 60 74 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 251 251 251 15 16 21 0 0 0 41 51 85 0 0 0
++1 2 3 244 244 244 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 244 244 244
++2 3 3 0 0 0 27 41 89 18 27 58 0 0 0 53 55 60
++187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187
++187 187 187 187 187 187 187 187 187 134 134 135 0 0 0 0 0 0
++30 30 30 187 187 187 254 254 254 255 255 255 255 255 255 255 255 255
++255 255 255 215 215 215 117 119 127 14 14 16 0 0 0 0 0 0
++100 102 106 187 187 187 187 187 187 187 187 187 226 226 226 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 195 195 195 187 187 187 187 187 187
++187 187 187 187 187 187 187 187 187 7 9 13 0 0 0 23 37 83
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 26 43 102
++40 56 111 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 30 47 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 78 91 137 78 91 137 78 91 137 78 91 137
++55 65 99 0 0 0 30 30 30 254 254 254 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 89 90 90 0 0 0 15 16 21
++74 85 123 82 95 139 82 95 139 82 95 139 82 95 139 82 95 139
++82 95 139 55 65 99 3 4 6 0 0 0 155 156 157 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 226 226 226 1 1 1
++1 1 2 71 84 130 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 180 180 180 0 0 0 0 0 0
++100 102 106 244 244 244 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++207 207 207 43 45 49 0 0 0 7 9 13 64 76 117 73 86 133
++73 86 133 54 69 120 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 41 54 95 4 5 9 0 0 0 14 14 16 123 126 137
++237 237 237 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 244 244 244 148 148 149
++15 16 21 0 0 0 1 2 3 19 29 65 25 42 101 25 42 101
++25 42 101 25 42 101 55 70 121 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 167 167 167 0 0 0 0 0 0
++30 30 30 195 195 195 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 187 187 187 14 14 16 0 0 0 19 23 37 61 75 125
++61 75 125 60 75 125 53 67 117 0 0 0 2 3 3 244 244 244
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 244 244 244 2 3 3 0 0 0
++9 12 21 0 0 0 134 134 135 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 89 90 90 0 0 0 12 15 26 0 0 0
++43 45 49 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 187 187 187
++0 0 0 4 6 13 25 42 101 18 27 58 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 180 180 180 0 0 0 51 51 51
++237 237 237 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 134 134 135 0 0 0 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 14 14 16 0 0 0 23 37 83
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++40 56 111 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 31 48 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 78 91 137 78 91 137 78 91 137 78 91 137
++38 45 67 0 0 0 100 102 106 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 215 215 215 0 0 0 1 1 2 68 77 109
++82 95 139 82 95 139 82 95 139 82 95 139 82 95 139 82 95 139
++82 95 139 82 95 139 48 55 81 0 0 0 30 30 30 251 251 251
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 43 45 49
++0 0 0 55 65 99 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 180 180 180 0 0 0 148 148 149
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 237 237 237 43 45 49 0 0 0 10 12 18 66 80 128
++73 86 133 59 74 124 25 42 101 25 42 101 25 42 101 25 42 101
++18 31 74 1 2 3 0 0 0 53 55 60 220 220 220 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++237 237 237 75 75 75 0 0 0 0 0 1 19 29 65 25 42 101
++25 42 101 25 42 101 52 67 119 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 167 167 167 0 0 0 53 55 60
++237 237 237 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 207 207 207 7 8 9 0 0 0 32 41 72
++61 75 125 60 75 125 60 75 125 8 11 18 0 0 0 187 187 187
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 43 45 49 0 0 0
++0 0 0 0 0 0 207 207 207 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 155 156 157 0 0 0 0 0 0 0 0 0
++89 90 90 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 134 134 135
++0 0 0 9 15 36 25 42 101 15 25 57 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 180 180 180 7 9 13 226 226 226
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 251 251 251 30 30 30 0 0 0 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 14 14 16 0 0 0 23 37 83
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++40 56 111 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 31 48 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++23 26 38 0 0 0 155 156 157 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 123 126 137 0 0 0 23 28 45 82 95 139
++82 95 139 82 95 139 82 95 139 82 95 139 82 95 139 82 95 139
++82 95 139 82 95 139 81 94 136 7 9 13 0 0 0 180 180 180
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 100 102 106
++0 0 0 39 46 71 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 180 180 180 123 126 137 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 226 226 226 30 30 30 0 0 0 32 38 61
++73 86 133 63 77 126 25 42 101 25 42 101 25 42 101 23 37 83
++2 3 7 0 0 0 89 90 90 251 251 251 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 254 254 254 100 102 106 0 0 0 1 1 2 18 31 74
++25 42 101 25 42 101 49 65 117 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 167 167 167 51 51 51 237 237 237
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 148 148 149 0 0 0 7 9 15
++59 74 124 60 75 125 60 75 125 23 28 45 0 0 0 134 134 135
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 89 90 90 0 0 0
++0 0 0 15 16 21 254 254 254 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 226 226 226 0 0 0 0 0 0 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 75 75 75
++0 0 0 15 25 57 25 42 101 15 25 57 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 180 180 180 134 134 135 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 155 156 157 0 0 0 0 0 0 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 14 14 16 0 0 0 23 37 83
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++40 56 111 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 31 48 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++8 11 17 0 0 0 207 207 207 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 53 55 60 0 0 0 52 59 86 82 95 139
++82 95 139 82 95 139 82 95 139 82 95 139 82 95 139 82 95 139
++82 95 139 82 95 139 82 95 139 32 38 56 0 0 0 117 119 127
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 137 140 149
++0 0 0 29 34 52 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 237 237 237 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 187 187 187 0 0 0 1 1 2
++60 71 109 66 80 129 25 42 101 25 42 101 25 42 101 5 7 14
++0 0 0 75 75 75 251 251 251 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 254 254 254 89 90 90 0 0 0 3 6 11
++25 42 101 25 42 101 48 64 117 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 207 207 207 237 237 237 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 251 251 251 30 30 30 0 0 0
++41 51 85 60 75 125 60 75 125 32 41 72 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 134 134 135 0 0 0
++0 0 0 89 90 90 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 167 167 167
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 43 45 49 0 0 0 0 0 0
++187 187 187 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 15 16 21
++0 0 0 23 37 83 25 42 101 15 25 57 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 207 207 207 244 244 244 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 51 51 51 0 0 0 0 0 1 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 14 14 16 0 0 0 23 37 83
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++39 55 111 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 31 48 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 78 91 137 78 91 137 78 91 137 78 91 137 76 90 135
++1 1 2 0 0 0 237 237 237 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 14 14 16 0 0 0 64 76 117 82 95 139
++82 95 139 82 95 139 82 95 139 82 95 139 82 95 139 82 95 139
++82 95 139 82 95 139 82 95 139 50 58 85 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 167 167 167
++0 0 0 19 23 37 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 75 75 75 0 0 0
++25 31 50 70 84 131 25 42 101 25 42 101 15 25 57 0 0 0
++30 30 30 244 244 244 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 251 251 251 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 244 244 244 30 30 30 0 0 0
++13 20 42 25 42 101 47 62 115 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 134 134 135 0 0 0
++19 24 44 60 75 125 60 75 125 49 61 100 0 0 0 15 16 21
++254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 187 187 187 0 0 0
++0 0 0 167 167 167 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 244 244 244 43 45 49
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 117 119 127 0 0 0 0 0 0
++237 237 237 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 220 220 220 0 0 0
++1 1 3 25 42 101 25 42 101 15 25 57 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 195 195 195 0 0 0 1 1 3 9 13 26 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 14 14 16 0 0 0 23 37 83
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++39 55 111 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 32 49 106 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 78 91 137 78 91 137 78 91 137 78 91 137 74 85 123
++0 0 0 7 8 9 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 237 237 237 0 0 0 0 0 0 81 94 136 82 95 139
++82 95 139 82 95 139 82 95 139 82 95 139 82 95 139 82 95 139
++82 95 139 82 95 139 82 95 139 60 71 109 0 0 0 43 45 49
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 195 195 195
++0 0 0 15 16 21 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 215 215 215 0 0 0
++1 2 3 62 75 121 25 42 101 27 41 89 2 3 7 0 0 0
++187 187 187 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 226 226 226
++89 90 90 15 16 21 0 0 0 7 9 13 75 75 75 207 207 207
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 187 187 187 0 0 0
++2 3 5 25 42 101 46 61 115 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 195 195 195 0 0 0
++8 10 17 60 75 125 60 75 125 59 74 124 2 3 5 0 0 0
++215 215 215 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 237 237 237 0 0 0
++1 1 1 226 226 226 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 180 180 180 0 0 0
++220 220 220 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 187 187 187 0 0 0 30 30 30
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 167 167 167 0 0 0
++9 12 21 25 42 101 25 42 101 15 25 57 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 89 90 90 0 0 0 10 17 39 9 15 36 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 14 14 16 0 0 0 23 37 83
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++39 55 111 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 32 49 106 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 78 91 137 78 91 137 78 91 137 78 91 137 64 76 117
++0 0 0 15 16 21 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 220 220 220 0 0 0 4 5 9 82 95 139 82 95 139
++82 95 139 82 95 139 82 95 139 82 95 139 82 95 139 82 95 139
++82 95 139 82 95 139 82 95 139 68 77 109 0 0 0 30 30 30
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 207 207 207
++0 0 0 8 11 17 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 215 215 215 137 140 149 134 134 135 180 180 180 254 254 254
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 53 55 60
++0 0 0 43 51 76 25 42 101 15 25 57 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 207 207 207 15 16 21
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 8 9
++187 187 187 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 51 51 51
++0 0 0 15 25 57 45 60 114 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 244 244 244 3 4 6
++0 0 0 53 67 117 60 75 125 60 75 125 14 19 34 0 0 0
++155 156 157 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 30 30 30
++43 45 49 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 100 102 106 0 0 0
++148 148 149 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 244 244 244 7 8 9 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 100 102 106 0 0 0
++13 20 42 25 42 101 25 42 101 15 25 57 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 244 244 244 255 255 255 255 255 255
++226 226 226 3 4 6 0 0 0 23 37 83 9 15 36 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 14 14 16 0 0 0 23 37 83
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++39 55 111 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 32 49 106 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 78 91 137 78 91 137 78 91 137 78 91 137 64 76 117
++0 0 0 30 30 30 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 207 207 207 0 0 0 7 9 13 82 95 139 82 95 139
++82 95 139 82 95 139 82 95 139 82 95 139 82 95 139 82 95 139
++82 95 139 82 95 139 82 95 139 70 81 118 0 0 0 14 14 16
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 215 215 215
++0 0 0 4 5 9 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254
++100 102 106 1 1 1 0 0 0 0 0 0 0 0 0 55 60 74
++237 237 237 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 155 156 157
++0 0 0 23 26 38 25 42 101 9 12 21 0 0 0 180 180 180
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 254 254 254 51 51 51 0 0 0
++15 18 27 60 71 109 62 75 121 53 64 102 19 23 37 0 0 0
++30 30 30 251 251 251 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 155 156 157
++0 0 0 9 12 21 45 60 114 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++167 167 167 51 51 51 7 8 9 30 30 30 100 102 106 244 244 244
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 30 30 30
++0 0 0 49 62 109 60 75 125 60 75 125 27 35 61 0 0 0
++100 102 106 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 75 75 75
++117 119 127 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 30 30 30 0 0 0
++75 75 75 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 75 75 75 117 119 127
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 51 51 51 0 0 0
++19 29 65 25 42 101 25 42 101 15 25 57 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++244 244 244 100 102 106 7 8 9 0 0 0 30 30 30 100 102 106
++89 90 90 0 0 0 9 13 26 25 42 101 9 15 36 0 0 0
++7 8 9 14 14 16 14 14 16 14 14 16 155 156 157 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 43 45 49 14 14 16 14 14 16
++14 14 16 14 14 16 14 14 16 1 1 1 0 0 0 23 37 83
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++39 55 111 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 32 49 106 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 78 91 137 78 91 137 78 91 137 78 91 137 64 76 117
++0 0 0 30 30 30 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 207 207 207 0 0 0 7 9 13 82 95 139 82 95 139
++82 95 139 82 95 139 82 95 139 82 95 139 82 95 139 82 95 139
++82 95 139 82 95 139 82 95 139 68 77 109 0 0 0 30 30 30
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 207 207 207
++0 0 0 8 11 17 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 134 134 135
++0 0 0 0 0 1 23 26 38 29 34 52 4 5 9 0 0 0
++75 75 75 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 215 215 215
++0 0 0 4 5 9 27 41 89 0 0 0 7 8 9 244 244 244
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 180 180 180 0 0 0 1 1 2
++44 52 77 50 58 85 50 58 85 50 58 85 44 53 81 1 1 2
++0 0 0 180 180 180 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 226 226 226
++1 1 1 0 0 1 42 56 104 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 155 156 157
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 43 45 49
++0 0 0 49 60 97 60 75 125 60 75 125 41 51 85 0 0 0
++43 45 49 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 117 119 127
++187 187 187 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 220 220 220 0 0 0 0 0 0
++14 14 16 251 251 251 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 137 140 149 167 167 167
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 244 244 244 3 4 6 0 0 0
++27 41 89 25 42 101 25 42 101 15 25 57 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254
++75 75 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 18 31 74 25 42 101 9 15 36 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 148 148 149 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 30 30 30 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23 37 83
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++39 55 111 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 32 49 106 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 78 91 137 78 91 137 78 91 137 78 91 137 70 81 118
++0 0 0 14 14 16 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 220 220 220 0 0 0 3 4 6 82 95 139 82 95 139
++82 95 139 82 95 139 82 95 139 82 95 139 82 95 139 82 95 139
++82 95 139 82 95 139 82 95 139 65 74 105 0 0 0 43 45 49
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 195 195 195
++0 0 0 15 16 21 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 244 244 244 14 14 16
++0 0 0 48 55 81 76 89 135 76 89 135 60 71 109 1 2 3
++0 0 0 207 207 207 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254
++14 14 16 0 0 0 15 25 57 0 0 0 75 75 75 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 117 119 127 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 100 102 106 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++43 45 49 0 0 0 36 45 78 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 244 244 244 14 14 16
++0 0 0 27 35 61 60 71 109 49 60 97 1 2 3 0 0 0
++220 220 220 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 53 55 60
++0 0 0 41 51 85 60 75 125 60 75 125 53 67 117 0 0 0
++1 2 3 237 237 237 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 180 180 180
++251 251 251 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 148 148 149 0 0 0 0 0 0
++0 0 0 195 195 195 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 215 215 215 220 220 220
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 195 195 195 0 0 0 3 6 11
++25 42 101 25 42 101 25 42 101 15 25 57 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 180 180 180
++0 0 0 2 3 7 18 31 74 25 42 101 18 31 74 10 17 39
++1 1 3 4 6 13 25 42 101 25 42 101 27 41 89 23 37 83
++23 37 83 23 37 83 11 15 31 0 0 0 148 148 149 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 30 30 30 0 0 0 19 29 65
++23 37 83 23 37 83 23 37 83 23 37 83 23 37 83 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++39 55 111 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 32 49 106 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 78 91 137 78 91 137 78 91 137 78 91 137 71 84 130
++0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 237 237 237 0 0 0 0 0 0 78 91 137 82 95 139
++82 95 139 82 95 139 82 95 139 82 95 139 82 95 139 82 95 139
++82 95 139 82 95 139 82 95 139 55 65 99 0 0 0 53 55 60
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 187 187 187
++0 0 0 15 18 27 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 180 180 180 0 0 0
++10 12 18 76 89 135 76 89 135 76 89 135 76 89 135 23 28 45
++0 0 0 134 134 135 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++53 55 60 0 0 0 9 13 26 0 0 0 117 119 127 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 117 119 127 75 75 75 75 75 75
++75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75
++75 75 75 117 119 127 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++89 90 90 0 0 0 28 36 67 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 180 180 180 0 0 0
++5 7 13 63 77 126 64 78 127 63 77 126 12 15 26 0 0 0
++180 180 180 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 53 55 60
++0 0 0 41 51 85 60 75 125 60 75 125 60 75 125 8 11 18
++0 0 0 187 187 187 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 75 75 75 0 0 0 1 2 3
++0 0 0 117 119 127 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 134 134 135 0 0 0 9 15 36
++25 42 101 25 42 101 25 42 101 15 25 57 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 75 75 75
++0 0 0 13 22 52 25 42 101 25 42 101 25 42 101 25 42 101
++27 41 89 23 37 83 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 9 15 36 0 0 0 148 148 149 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 30 30 30 0 0 0 18 31 74
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++39 55 111 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 31 48 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 78 91 137 78 91 137 78 91 137 78 91 137 76 89 135
++1 1 2 0 0 0 226 226 226 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 15 16 21 0 0 0 64 76 117 82 95 139
++82 95 139 82 95 139 82 95 139 82 95 139 82 95 139 82 95 139
++82 95 139 82 95 139 82 95 139 44 50 70 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 155 156 157
++0 0 0 23 26 38 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 134 134 135 0 0 0
++25 31 50 76 89 135 76 89 135 76 89 135 76 89 135 40 48 74
++0 0 0 89 90 90 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++89 90 90 0 0 0 1 1 3 0 0 0 137 140 149 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++117 119 127 0 0 0 21 28 52 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 134 134 135 0 0 0
++23 28 45 64 78 127 64 78 127 63 77 126 17 22 38 0 0 0
++148 148 149 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 53 55 60
++0 0 0 41 51 85 60 75 125 60 75 125 60 75 125 23 28 45
++0 0 0 134 134 135 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 251 251 251 14 14 16 0 0 0 26 32 53
++0 0 0 51 51 51 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 75 75 75 0 0 0 15 25 57
++25 42 101 25 42 101 25 42 101 15 25 57 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 251 251 251 14 14 16
++0 0 0 23 37 83 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 9 15 36 0 0 0 148 148 149 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 30 30 30 0 0 0 18 31 74
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++39 55 111 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 31 48 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++15 16 21 0 0 0 187 187 187 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 53 55 60 0 0 0 50 58 85 82 95 139
++82 95 139 82 95 139 82 95 139 82 95 139 82 95 139 82 95 139
++82 95 139 82 95 139 82 95 139 25 31 50 0 0 0 134 134 135
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 117 119 127
++0 0 0 32 38 61 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++38 44 61 76 89 135 76 89 135 76 89 135 76 89 135 50 58 85
++0 0 0 75 75 75 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++100 102 106 0 0 0 0 0 0 0 0 0 167 167 167 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++148 148 149 0 0 0 18 23 42 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 100 102 106 0 0 0
++32 38 61 64 78 127 64 78 127 63 77 126 18 23 42 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 53 55 60
++0 0 0 41 51 85 60 75 125 60 75 125 60 75 125 32 41 72
++0 0 0 75 75 75 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 187 187 187 0 0 0 3 6 11 49 62 109
++1 1 1 1 1 1 237 237 237 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 30 30 30 0 0 0 18 31 74
++25 42 101 25 42 101 25 42 101 15 25 57 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 207 207 207 0 0 0
++2 3 5 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 9 15 36 0 0 0 148 148 149 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 30 30 30 0 0 0 18 31 74
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++40 56 111 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 31 48 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 78 91 137 78 91 137 78 91 137 78 91 137
++23 28 45 0 0 0 148 148 149 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 134 134 135 0 0 0 23 26 38 82 95 139
++82 95 139 82 95 139 82 95 139 82 95 139 82 95 139 82 95 139
++82 95 139 82 95 139 77 90 136 4 5 9 0 0 0 195 195 195
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 89 90 90
++0 0 0 46 54 80 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 100 102 106 0 0 0
++38 44 61 76 89 135 76 89 135 76 89 135 76 89 135 50 58 85
++0 0 0 75 75 75 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++100 102 106 0 0 0 0 0 0 0 0 0 180 180 180 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++155 156 157 0 0 0 16 21 36 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 89 90 90 0 0 0
++32 41 72 64 78 127 64 78 127 63 77 126 18 23 42 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 53 55 60
++0 0 0 41 51 85 60 75 125 60 75 125 60 75 125 49 61 100
++0 0 0 15 16 21 254 254 254 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 117 119 127 0 0 0 19 24 44 56 70 122
++12 15 26 0 0 0 167 167 167 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 220 220 220 0 0 0 1 1 2 25 42 101
++25 42 101 25 42 101 25 42 101 18 27 58 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 180 180 180 0 0 0
++8 10 17 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 9 15 36 0 0 0 148 148 149 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 30 30 30 0 0 0 18 31 74
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++40 56 111 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 31 48 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 78 91 137 78 91 137 78 91 137 78 91 137
++39 46 71 0 0 0 89 90 90 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 220 220 220 1 1 1 1 1 2 65 75 108
++82 95 139 82 95 139 82 95 139 82 95 139 82 95 139 82 95 139
++82 95 139 82 95 139 50 58 85 0 0 0 30 30 30 254 254 254
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 15 18 27
++0 0 0 60 71 109 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++32 38 56 76 89 135 76 89 135 76 89 135 76 89 135 43 51 76
++0 0 0 89 90 90 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++100 102 106 0 0 0 0 0 0 0 0 0 155 156 157 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++167 167 167 0 0 0 14 19 34 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 89 90 90 0 0 0
++32 41 72 64 78 127 64 78 127 63 77 126 17 22 38 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 53 55 60
++0 0 0 41 51 85 60 75 125 60 75 125 60 75 125 59 74 124
++3 4 6 0 0 0 215 215 215 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 51 51 51 0 0 0 36 45 78 56 70 122
++27 35 61 0 0 0 89 90 90 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 167 167 167 0 0 0 8 11 18 25 42 101
++25 42 101 25 42 101 25 42 101 18 27 58 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 148 148 149 0 0 0
++11 15 31 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 9 15 36 0 0 0 148 148 149 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 30 30 30 0 0 0 18 31 74
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 26 43 102
++40 56 111 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 30 47 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 78 91 137 78 91 137 78 91 137 78 91 137
++60 71 109 0 0 0 14 14 16 251 251 251 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 100 102 106 0 0 0 10 12 18
++70 81 118 82 95 139 82 95 139 82 95 139 82 95 139 82 95 139
++82 95 139 60 71 109 4 5 9 0 0 0 155 156 157 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 207 207 207 0 0 0
++4 5 9 77 90 136 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 155 156 157 0 0 0
++19 23 37 76 89 135 76 89 135 76 89 135 76 89 135 32 38 56
++0 0 0 117 119 127 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++89 90 90 0 0 0 4 6 13 0 0 0 137 140 149 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 226 226 226 220 220 220 220 220 220
++220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220
++220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220
++220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220
++137 140 149 0 0 0 15 18 27 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 89 90 90 0 0 0
++32 41 72 64 78 127 64 78 127 63 77 126 13 20 42 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 53 55 60
++0 0 0 41 51 85 60 75 125 60 75 125 60 75 125 60 75 125
++14 19 34 0 0 0 155 156 157 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 237 237 237 1 1 1 0 0 0 49 62 109 56 70 122
++41 54 95 0 0 0 15 16 21 254 254 254 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 100 102 106 0 0 0 13 20 42 25 42 101
++25 42 101 25 42 101 25 42 101 18 27 58 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 134 134 135 0 0 0
++10 17 39 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 9 15 36 0 0 0 148 148 149 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 30 30 30 0 0 0 18 31 74
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 26 43 102
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 30 46 104 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 78 91 137 78 91 137 78 91 137
++78 91 137 7 9 13 0 0 0 187 187 187 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 237 237 237 43 45 49 0 0 0
++3 4 6 38 44 61 55 65 99 64 76 117 68 77 109 55 65 99
++29 34 52 1 1 2 0 0 0 75 75 75 254 254 254 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 123 126 137 0 0 0
++23 28 45 78 91 137 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 226 226 226 1 2 3
++1 1 2 64 76 117 76 89 135 76 89 135 75 88 134 10 12 18
++0 0 0 167 167 167 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++55 60 74 0 0 0 9 15 36 0 0 0 100 102 106 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 89 90 90 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 15 18 27 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 89 90 90 0 0 0
++32 41 72 64 78 127 64 78 127 63 77 126 13 20 42 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 53 55 60
++0 0 0 41 51 85 60 75 125 60 75 125 60 75 125 60 75 125
++27 35 61 0 0 0 100 102 106 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 167 167 167 0 0 0 9 12 21 56 70 122 56 70 122
++55 70 121 4 5 9 0 0 0 207 207 207 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 53 55 60 0 0 0 19 29 65 25 42 101
++25 42 101 25 42 101 25 42 101 18 27 58 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++13 20 42 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 9 15 36 0 0 0 148 148 149 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 30 30 30 0 0 0 18 31 74
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 27 44 102
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 30 46 104 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 78 91 137 78 91 137 78 91 137
++78 91 137 32 38 61 0 0 0 75 75 75 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 237 237 237 75 75 75
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 1 2 3 100 102 106 251 251 251 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 251 251 251 30 30 30 0 0 0
++52 59 86 78 91 137 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 89 90 90
++0 0 0 5 7 13 44 52 77 55 65 99 23 28 45 0 0 0
++30 30 30 244 244 244 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++15 16 21 0 0 0 19 29 65 0 0 0 43 45 49 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 137 140 149 0 0 0 0 0 1
++4 5 9 4 5 9 4 5 9 4 5 9 4 5 9 2 3 5
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 2 3 7 19 23 37 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 89 90 90 0 0 0
++32 41 72 64 78 127 64 78 127 63 77 126 11 17 38 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 53 55 60
++0 0 0 41 51 85 60 75 125 60 75 125 60 75 125 60 75 125
++41 51 85 0 0 0 43 45 49 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 89 90 90 0 0 0 21 28 52 56 70 122 56 70 122
++56 70 122 18 23 42 0 0 0 134 134 135 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 251 251 251 7 8 9 0 0 0 23 37 83 25 42 101
++25 42 101 25 42 101 25 42 101 19 29 65 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++13 22 52 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 9 15 36 0 0 0 148 148 149 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 43 45 49 0 0 0 18 31 74
++25 42 101 18 31 74 13 20 42 3 6 11 13 22 52 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 28 45 103
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 29 45 103 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 78 91 137 78 91 137 78 91 137
++78 91 137 70 81 118 1 1 2 1 1 1 207 207 207 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++195 195 195 100 102 106 51 51 51 30 30 30 30 30 30 53 55 60
++117 119 127 207 207 207 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 167 167 167 0 0 0 7 9 13
++76 89 135 78 91 137 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 237 237 237
++51 51 51 0 0 0 0 0 0 0 0 0 0 0 0 7 8 9
++187 187 187 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 220 220 220
++0 0 0 2 3 5 25 42 101 1 2 3 1 1 1 220 220 220
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 215 215 215 1 2 3 0 0 1
++50 58 85 69 83 131 69 83 131 69 83 131 64 76 117 9 12 21
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 1 7 9 13 25 31 50 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 89 90 90 0 0 0
++32 41 72 64 78 127 64 78 127 63 77 126 11 17 38 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 53 55 60
++0 0 0 41 51 85 60 75 125 60 75 125 60 75 125 60 75 125
++53 67 117 0 0 0 1 2 3 237 237 237 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++254 254 254 15 16 21 0 0 0 41 51 85 56 70 122 56 70 122
++56 70 122 32 41 72 0 0 0 53 55 60 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 195 195 195 0 0 0 3 5 9 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 19 29 65 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++13 22 52 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 10 17 39 0 0 0 134 134 135 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 75 75 75 0 0 0 3 5 9
++1 1 2 0 0 0 0 0 0 0 0 0 10 17 39 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 28 45 103
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 29 45 103 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 78 91 137 78 91 137
++78 91 137 78 91 137 29 34 52 0 0 0 75 75 75 254 254 254
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 244 244 244 30 30 30 0 0 0 39 46 71
++78 91 137 78 91 137 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++244 244 244 137 140 149 75 75 75 51 51 51 89 90 90 207 207 207
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 167 167 167
++0 0 0 9 13 26 25 42 101 11 15 31 0 0 0 134 134 135
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++0 0 1 19 23 37 32 38 56 23 28 45 3 4 6 0 0 0
++15 16 21 220 220 220 237 237 237 215 215 215 187 187 187 167 167 167
++137 140 149 117 119 127 89 90 90 75 75 75 43 45 49 30 30 30
++1 1 1 0 0 0 16 21 36 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 89 90 90 0 0 0
++32 41 72 64 78 127 63 77 126 63 77 126 9 15 36 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 53 55 60
++0 0 0 41 51 85 60 75 125 60 75 125 60 75 125 60 75 125
++59 74 124 8 10 17 0 0 0 187 187 187 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++207 207 207 0 0 0 2 3 5 47 62 115 56 70 122 56 70 122
++56 70 122 49 62 109 0 0 0 3 4 6 244 244 244 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 148 148 149 0 0 0 11 15 31 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 19 29 65 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++13 22 52 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 13 20 42 0 0 0 117 119 127 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 167 167 167 2 3 3 0 0 0
++0 0 0 30 30 30 53 55 60 0 0 0 9 13 26 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 29 45 103
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 28 45 103 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 78 91 137 78 91 137
++78 91 137 78 91 137 70 81 118 3 4 6 0 0 0 148 148 149
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 117 119 127 0 0 0 10 12 18 75 88 134
++78 91 137 78 91 137 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 55 60 74
++0 0 0 15 25 57 25 42 101 19 29 65 0 0 0 15 16 21
++244 244 244 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 117 119 127
++3 4 6 0 0 0 0 0 0 0 0 0 0 0 0 53 55 60
++220 220 220 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 180 180 180
++0 0 0 1 1 2 60 71 109 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 89 90 90 0 0 0
++32 41 72 64 78 127 63 77 126 63 77 126 9 15 36 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 53 55 60
++0 0 0 41 51 85 60 75 125 60 75 125 60 75 125 60 75 125
++59 74 124 23 28 45 0 0 0 134 134 135 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++134 134 135 0 0 0 11 15 31 51 66 119 56 70 122 56 70 122
++56 70 122 56 70 122 9 12 21 0 0 0 180 180 180 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 89 90 90 0 0 0 13 22 52 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 19 29 65 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++13 22 52 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 13 22 52 0 0 0 100 102 106 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 237 237 237 195 195 195
++226 226 226 255 255 255 187 187 187 0 0 0 8 10 17 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 30 46 104
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 27 44 102 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 78 91 137
++78 91 137 78 91 137 78 91 137 46 54 81 0 0 0 7 9 13
++207 207 207 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 180 180 180 1 1 1 0 0 0 55 65 99 78 91 137
++78 91 137 78 91 137 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 215 215 215 1 1 1
++1 1 2 27 41 89 25 42 101 25 42 101 5 7 14 0 0 0
++117 119 127 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++226 226 226 148 148 149 117 119 127 148 148 149 207 207 207 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 244 244 244 30 30 30
++0 0 0 26 32 53 66 80 129 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 89 90 90 0 0 0
++32 41 72 64 78 127 63 77 126 56 70 122 9 15 36 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 53 55 60
++0 0 0 41 51 85 60 75 125 60 75 125 60 75 125 60 75 125
++59 74 124 32 41 72 0 0 0 75 75 75 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++53 55 60 0 0 0 15 25 57 54 69 120 56 70 122 56 70 122
++56 70 122 56 70 122 26 32 53 0 0 0 100 102 106 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 30 30 30 0 0 0 18 31 74 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 23 33 67 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++13 22 52 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 15 25 57 0 0 0 75 75 75 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 215 215 215 0 0 0 2 3 7 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 30 47 105
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 26 43 102 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++73 86 133 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++78 91 137 78 91 137 78 91 137 78 91 137 23 26 38 0 0 0
++15 16 21 220 220 220 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++195 195 195 7 8 9 0 0 0 38 44 61 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 46 54 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 254 254 254 75 75 75 0 0 0
++10 17 39 25 42 101 25 42 101 25 42 101 19 29 65 0 0 0
++2 3 3 195 195 195 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 251 251 251 75 75 75 0 0 0
++5 7 14 53 67 117 66 80 129 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 89 90 90 0 0 0
++32 41 72 64 78 127 63 77 126 52 67 119 9 15 36 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 53 55 60
++0 0 0 41 51 85 60 75 125 60 75 125 60 75 125 59 74 124
++59 74 124 49 61 100 0 0 0 15 16 21 254 254 254 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 244 244 244
++3 4 6 0 0 0 23 37 83 56 70 122 56 70 122 56 70 122
++56 70 122 56 70 122 41 51 85 0 0 0 30 30 30 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++226 226 226 0 0 0 1 1 2 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 23 33 67 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++13 22 52 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 23 37 83 0 0 0 15 16 21 254 254 254
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 244 244 244 0 0 0 0 0 0 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 31 48 105
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++73 86 133 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++78 91 137 78 91 137 78 91 137 78 91 137 74 87 134 15 18 27
++0 0 0 30 30 30 207 207 207 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 180 180 180
++7 8 9 0 0 0 23 28 45 76 90 135 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 44 53 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 148 148 149 0 0 0 2 3 5
++23 37 83 25 42 101 25 42 101 25 42 101 25 42 101 19 24 44
++0 0 0 15 16 21 220 220 220 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 254 254 254 117 119 127 0 0 0 1 2 3
++23 37 83 63 77 126 66 80 129 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 89 90 90 0 0 0
++32 41 72 64 78 127 63 77 126 48 64 117 9 15 36 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 53 55 60
++0 0 0 41 51 85 60 75 125 60 75 125 60 75 125 59 74 124
++59 74 124 58 73 123 3 4 6 0 0 0 215 215 215 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 180 180 180
++0 0 0 4 6 13 29 45 103 56 70 122 56 70 122 56 70 122
++56 70 122 56 70 122 53 67 117 1 2 3 0 0 0 220 220 220
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++180 180 180 0 0 0 8 10 17 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 23 33 67 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++13 22 52 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 2 3 7 0 0 0 195 195 195
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 14 14 16 0 0 0 23 37 83
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 32 49 106
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 110 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++73 86 133 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 78 91 137 78 91 137 78 91 137 78 91 137 74 85 123
++12 15 26 0 0 0 7 8 9 155 156 157 254 254 254 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 244 244 244 117 119 127 2 3 3
++0 0 0 23 28 45 75 88 134 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 77 90 136 44 53 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 215 215 215 254 254 254
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 180 180 180 7 8 9 0 0 0 23 33 67
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 55 70 121
++15 18 27 0 0 0 30 30 30 207 207 207 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 251 251 251 100 102 106 0 0 0 0 0 0 19 29 65
++29 45 103 66 80 129 66 80 129 38 47 77 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 89 90 90 0 0 0
++32 41 72 64 78 127 63 77 126 42 58 112 9 15 36 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 53 55 60
++0 0 0 41 51 85 60 75 125 60 75 125 60 75 125 59 74 124
++59 74 124 59 74 124 14 19 34 0 0 0 155 156 157 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 100 102 106
++0 0 0 10 17 39 32 49 106 56 70 122 56 70 122 56 70 122
++56 70 122 56 70 122 55 70 121 14 19 34 0 0 0 148 148 149
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++117 119 127 0 0 0 10 17 39 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 26 36 67 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++13 22 52 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 10 17 39 0 0 0 75 75 75
++254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 43 45 49 0 0 0 18 31 74
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 33 50 106
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++38 54 109 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++73 86 133 73 86 133 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 78 91 137 78 91 137 78 91 137 78 91 137
++73 86 133 23 28 45 0 0 0 0 0 0 53 55 60 195 195 195
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 254 254 254 167 167 167 43 45 49 0 0 0 0 0 0
++32 38 61 76 90 135 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 77 90 136 44 53 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 89 90 90
++244 244 244 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 155 156 157 2 3 3 0 0 0 23 28 45 26 43 102
++25 42 101 25 42 101 25 42 101 25 42 101 28 45 103 71 85 132
++66 79 125 15 16 21 0 0 0 7 9 13 148 148 149 251 251 251
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++207 207 207 51 51 51 0 0 0 1 1 2 19 29 65 25 42 101
++36 52 108 66 80 129 66 80 129 40 48 74 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 89 90 90 0 0 0
++32 41 72 64 78 127 63 77 126 36 52 108 9 15 36 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 53 55 60
++0 0 0 41 51 85 60 75 125 60 75 125 60 75 125 59 74 124
++59 74 124 59 74 124 27 35 61 0 0 0 100 102 106 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 30 30 30
++0 0 0 18 31 74 36 52 108 56 70 122 56 70 122 56 70 122
++56 70 122 56 70 122 55 70 121 28 36 67 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++53 55 60 0 0 0 19 29 65 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 28 36 67 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++13 22 52 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 27 41 89 1 2 3 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 75 75 75 0 0 0 19 29 65
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 34 50 107
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++37 53 109 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++73 86 133 73 86 133 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 43 51 76 4 5 9 0 0 0 0 0 0
++51 51 51 148 148 149 220 220 220 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 220 220 220
++137 140 149 43 45 49 0 0 0 0 0 0 8 10 17 55 65 99
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 77 90 136 77 90 136 44 53 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++30 30 30 167 167 167 254 254 254 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 207 207 207
++55 60 74 0 0 0 0 0 0 32 38 56 51 66 119 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 42 58 112 72 85 132
++72 85 132 66 79 125 23 26 38 0 0 0 0 0 0 43 45 49
++155 156 157 237 237 237 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 251 251 251 187 187 187 75 75 75
++2 3 3 0 0 0 2 3 7 18 31 74 25 42 101 25 42 101
++45 60 114 66 80 129 66 80 129 40 48 74 0 0 0 89 90 90
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 89 90 90 0 0 0
++32 41 72 63 77 126 63 77 126 29 45 103 9 15 36 0 0 0
++134 134 135 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 53 55 60
++0 0 0 41 51 85 60 75 125 60 75 125 60 75 125 59 74 124
++59 74 124 59 74 124 41 51 85 0 0 0 43 45 49 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 220 220 220 0 0 0
++1 1 2 25 42 101 40 56 111 56 70 122 56 70 122 56 70 122
++56 70 122 56 70 122 55 70 121 45 57 100 0 0 0 14 14 16
++251 251 251 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 251 251
++7 8 9 0 0 0 23 37 83 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 28 36 67 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++13 22 52 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 19 29 65 0 0 0
++0 0 0 100 102 106 237 237 237 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 100 102 106 0 0 0 13 22 52
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 35 51 108
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++36 52 108 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++73 86 133 73 86 133 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 74 85 123 32 38 56 2 3 5
++0 0 0 0 0 0 0 0 0 30 30 30 89 90 90 123 126 137
++167 167 167 187 187 187 195 195 195 207 207 207 220 220 220 207 207 207
++187 187 187 180 180 180 134 134 135 89 90 90 43 45 49 0 0 0
++0 0 0 0 0 0 5 7 13 38 45 69 72 85 132 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++77 90 136 77 90 136 77 90 136 44 53 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++0 0 0 0 0 0 30 30 30 100 102 106 155 156 157 187 187 187
++207 207 207 195 195 195 167 167 167 117 119 127 43 45 49 0 0 0
++0 0 0 4 5 9 43 51 76 73 86 133 35 51 108 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 58 73 123 72 85 132
++71 85 132 71 85 132 70 84 131 40 49 78 4 5 9 0 0 0
++0 0 0 3 4 6 51 51 51 100 102 106 148 148 149 180 180 180
++195 195 195 207 207 207 207 207 207 207 207 207 187 187 187 180 180 180
++148 148 149 117 119 127 75 75 75 7 8 9 0 0 0 0 0 0
++0 0 0 9 15 36 27 41 89 25 42 101 25 42 101 25 42 101
++54 69 120 66 80 129 66 80 129 40 48 74 0 0 0 15 16 21
++51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51
++51 51 51 51 51 51 51 51 51 51 51 51 15 16 21 0 0 0
++32 41 72 63 77 126 60 75 125 25 42 101 9 15 36 0 0 0
++30 30 30 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51
++51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 14 14 16
++0 0 0 41 51 85 60 75 125 60 75 125 60 75 125 59 74 124
++59 74 124 59 74 124 53 67 117 0 0 0 1 2 3 51 51 51
++51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51
++51 51 51 51 51 51 51 51 51 51 51 51 30 30 30 0 0 0
++9 13 26 25 42 101 44 60 114 56 70 122 56 70 122 56 70 122
++56 70 122 55 70 121 55 70 121 55 70 121 5 7 14 0 0 0
++43 45 49 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51
++51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 43 45 49
++0 0 0 2 3 7 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 26 43 102 29 39 72 0 0 0 14 14 16
++51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51
++51 51 51 51 51 51 51 51 51 51 51 51 30 30 30 0 0 0
++13 22 52 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 32 49 106 26 36 67
++1 1 1 0 0 0 7 8 9 75 75 75 137 140 149 167 167 167
++180 180 180 207 207 207 207 207 207 187 187 187 167 167 167 155 156 157
++117 119 127 75 75 75 30 30 30 0 0 0 0 0 0 10 17 39
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 37 53 109
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++35 51 108 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++73 86 133 73 86 133 73 86 133 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 71 84 130
++44 52 77 19 23 37 1 2 3 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 3 3
++23 26 38 48 55 81 74 87 134 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 77 90 136
++77 90 136 77 90 136 77 90 136 44 53 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++15 16 21 4 5 9 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 3 5
++32 38 56 66 79 125 73 86 133 65 79 128 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 29 45 103 71 85 132 72 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 66 79 125 40 48 74
++12 15 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 3 5 9 13 20 42
++23 37 83 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++64 78 127 66 80 129 66 80 129 40 48 74 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++32 41 72 63 77 126 54 69 120 25 42 101 9 15 36 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 41 51 85 60 75 125 60 75 125 60 75 125 59 74 124
++59 74 124 59 74 124 59 74 124 8 11 18 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++13 22 52 25 42 101 48 64 117 56 70 122 56 70 122 56 70 122
++56 70 122 55 70 121 55 70 121 55 70 121 23 28 45 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 11 15 31 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 30 46 104 29 39 72 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++13 22 52 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 34 50 107 46 61 115
++41 51 85 9 13 26 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 4 6 13 15 25 57
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 38 54 109
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++33 50 106 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++70 84 131 73 86 133 73 86 133 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 74 87 134 55 65 99 43 51 76 32 38 56
++23 26 38 15 18 27 10 12 18 7 9 13 4 5 9 10 12 18
++15 18 27 16 21 36 29 34 52 40 48 74 55 65 99 73 86 133
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 44 53 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++32 38 56 73 86 133 55 65 99 32 38 61 23 26 38 15 18 27
++8 10 17 15 16 21 19 23 37 29 34 52 49 60 97 71 84 130
++73 86 133 73 86 133 73 86 133 47 62 115 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 45 60 114 72 85 132 72 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 70 84 131
++70 84 131 64 76 117 46 54 81 32 38 61 23 28 45 15 18 27
++9 12 21 8 11 17 7 9 13 8 11 17 9 12 21 15 18 27
++23 28 45 32 38 61 40 49 78 41 54 95 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 32 49 106
++66 80 129 66 80 129 66 80 129 59 72 115 49 60 97 49 60 97
++49 60 97 49 60 97 49 60 97 49 60 97 49 60 97 49 60 97
++49 60 97 49 60 97 49 60 97 49 60 97 49 60 97 49 60 97
++60 71 109 63 77 126 47 62 115 25 42 101 23 37 83 18 31 74
++18 31 74 18 31 74 18 31 74 18 31 74 18 31 74 18 31 74
++18 31 74 41 54 95 41 54 95 41 54 95 41 54 95 41 54 95
++41 54 95 53 67 117 60 75 125 60 75 125 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 49 61 100 41 54 95 41 54 95
++41 54 95 28 40 79 18 31 74 18 31 74 18 31 74 18 31 74
++18 31 74 18 31 74 18 31 74 18 31 74 18 31 74 18 31 74
++27 41 89 25 42 101 51 66 119 56 70 122 56 70 122 56 70 122
++56 70 122 55 70 121 55 70 121 55 70 121 49 62 109 41 51 85
++41 51 85 41 51 85 41 51 85 41 51 85 41 51 85 23 37 83
++18 31 74 18 31 74 18 31 74 18 31 74 18 31 74 18 31 74
++18 31 74 23 37 83 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 32 49 106 42 56 104 41 51 85 41 51 85
++41 51 85 41 51 85 41 51 85 41 51 85 41 51 85 41 51 85
++41 51 85 41 51 85 41 51 85 28 40 79 18 31 74 18 31 74
++23 37 83 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 36 52 108 46 61 115
++45 60 114 45 60 114 41 54 95 27 35 61 16 21 36 9 13 26
++7 9 15 5 7 13 4 6 13 8 10 17 9 13 26 11 15 31
++13 20 42 15 25 57 18 31 74 27 41 89 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 39 55 111
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++32 49 106 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++50 65 118 73 86 133 73 86 133 73 86 133 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 44 53 81 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++32 38 56 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++74 87 134 74 87 134 74 87 134 82 95 139 110 117 140 110 117 140
++110 117 140 82 95 139 69 83 131 28 45 103 60 75 125 64 78 127
++64 78 127 64 78 127 42 58 112 64 78 127 72 85 132 107 114 137
++110 117 140 110 117 140 110 117 140 82 95 139 75 88 134 110 117 140
++110 117 140 110 117 140 82 95 139 70 84 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 30 47 105 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 42 58 112
++76 89 135 107 114 137 107 114 137 107 114 137 82 95 139 66 80 128
++66 80 128 66 80 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 63 77 126 39 55 111 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++37 53 109 61 75 125 61 75 125 61 75 125 61 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 82 95 139 82 95 139
++82 95 139 70 84 131 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 32 49 106 25 42 101 25 42 101 25 42 101
++25 42 101 26 43 102 55 70 121 56 70 122 56 70 122 56 70 122
++56 70 122 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 54 69 120 29 45 103
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 36 52 108 51 66 119 63 77 126 82 95 139
++82 95 139 82 95 139 68 82 130 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 48 64 117 39 55 110 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 39 55 110 46 61 115
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 44 60 114 33 50 106 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 40 56 111
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++31 48 105 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++29 45 103 71 85 132 73 86 133 73 86 133 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 46 54 80 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++32 38 56 75 88 134 75 88 134 75 88 134 75 88 134 74 87 134
++74 87 134 74 87 134 74 87 134 137 140 149 43 45 49 43 45 49
++53 55 60 115 121 140 49 65 117 36 52 108 98 103 119 43 45 49
++43 45 49 53 55 60 101 108 130 72 85 132 76 89 135 123 126 137
++43 45 49 43 45 49 89 90 90 110 117 140 110 117 140 75 75 75
++43 45 49 43 45 49 137 140 149 70 84 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 68 82 130 68 82 130
++68 82 130 68 82 130 61 75 125 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 54 69 120
++117 122 139 51 51 51 43 45 49 53 55 60 115 121 140 66 80 128
++66 80 128 66 80 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++63 77 126 63 77 126 30 47 105 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++43 59 113 61 75 125 61 75 125 61 75 125 61 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 82 95 139 100 102 106 43 45 49
++43 45 49 43 45 49 43 45 49 43 45 49 43 45 49 43 45 49
++43 45 49 98 103 119 46 61 115 25 42 101 25 42 101 25 42 101
++25 42 101 30 47 105 56 70 122 56 70 122 56 70 122 56 70 122
++56 70 122 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 54 69 120 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 39 55 111 51 66 119 82 95 139 89 90 90
++43 45 49 43 45 49 128 131 141 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 48 64 117 36 52 108 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 42 58 112 46 61 115
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 44 60 114 31 48 105 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 27 44 102 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 39 55 111
++30 46 104 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 52 67 119 73 86 133 73 86 133 73 86 133 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 76 90 135 46 54 80 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++32 38 56 75 88 134 75 88 134 75 88 134 75 88 134 74 87 134
++74 87 134 74 87 134 74 87 134 115 121 140 14 14 16 0 0 0
++1 1 1 117 122 139 29 45 103 66 79 125 43 45 49 0 0 0
++0 0 0 0 0 0 106 112 131 72 85 132 82 95 139 75 75 75
++0 0 0 0 0 0 89 90 90 82 95 139 110 117 140 30 30 30
++0 0 0 0 0 0 117 122 139 70 84 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 49 65 117 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 26 43 102 64 78 127
++109 115 137 7 8 9 0 0 0 14 14 16 110 117 140 66 80 128
++66 80 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++63 77 126 59 74 124 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++50 65 118 61 75 125 61 75 125 61 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 82 95 139 55 60 74 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 75 75 75 46 61 115 25 42 101 25 42 101 25 42 101
++25 42 101 36 52 108 56 70 122 56 70 122 56 70 122 56 70 122
++56 70 122 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 49 65 117 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 42 58 112 50 65 118 82 95 139 43 45 49
++0 0 0 0 0 0 104 109 128 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 48 64 117 33 50 106 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 44 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 44 60 114 29 45 103 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 28 45 103 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 39 55 111
++29 45 103 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 30 46 104 72 85 132 73 86 133 73 86 133 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 76 90 135 76 90 135 46 54 80 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++32 38 56 75 88 134 75 88 134 75 88 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 110 117 140 43 45 49 0 0 0
++0 0 0 98 104 122 26 43 102 93 100 124 7 8 9 0 0 0
++0 0 0 0 0 0 89 90 90 82 95 139 110 117 140 30 30 30
++0 0 0 0 0 0 106 112 131 71 85 132 110 117 140 128 131 141
++112 118 137 112 118 137 128 131 141 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 71 85 132 68 82 130
++68 82 130 68 82 130 35 51 108 25 42 101 25 42 101 32 49 106
++25 42 101 25 42 101 25 42 101 25 42 101 35 51 108 66 80 129
++109 115 137 7 8 9 0 0 0 14 14 16 110 117 140 66 80 128
++66 80 128 65 79 128 65 79 128 65 79 128 66 80 129 69 83 131
++65 79 128 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++63 77 126 50 65 118 25 42 101 25 42 101 33 50 106 28 45 103
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++58 73 123 61 75 125 63 77 126 68 82 130 63 77 126 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 82 95 139 55 60 74 0 0 0
++0 0 0 15 18 27 100 102 106 79 84 103 79 84 103 79 84 103
++79 84 103 123 126 137 46 61 115 25 42 101 25 42 101 25 42 101
++25 42 101 42 58 112 59 74 124 56 70 122 56 70 122 56 70 122
++56 70 122 55 70 121 55 70 121 58 73 123 58 73 123 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 46 61 115 25 42 101
++25 42 101 25 42 101 25 42 101 30 47 105 27 44 102 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 26 43 102 51 66 119 50 65 118 82 95 139 43 45 49
++0 0 0 0 0 0 104 109 128 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 48 64 117 37 53 109 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 28 45 103 28 45 103
++25 42 101 25 42 101 25 42 101 26 43 102 49 65 117 47 62 115
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 44 60 114 26 43 102 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 30 46 104 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 39 55 111
++27 44 102 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 54 69 120 73 86 133 73 86 133 73 86 133
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++78 91 137 78 91 137 78 91 137 78 91 137 78 91 137 78 91 137
++78 91 137 78 91 137 78 91 137 78 91 137 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 76 90 135
++76 90 135 76 90 135 76 90 135 46 54 80 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++32 38 56 75 88 134 75 88 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 82 95 139 75 75 75 0 0 0
++0 0 0 72 78 100 42 58 112 98 103 119 0 0 0 0 0 0
++14 14 16 0 0 0 30 30 30 110 117 140 115 121 140 14 14 16
++0 0 0 3 4 6 115 121 140 70 84 131 107 114 137 123 126 137
++104 109 128 104 109 128 137 140 149 69 83 131 110 117 140 106 112 131
++104 109 128 128 131 141 137 140 149 117 119 127 98 103 119 137 140 149
++82 95 139 64 78 127 66 79 125 99 106 127 90 96 116 79 85 105
++93 98 117 98 104 122 81 92 128 32 49 106 47 62 115 66 80 129
++109 115 137 7 8 9 0 0 0 14 14 16 110 117 140 66 80 128
++66 80 128 69 83 131 110 117 140 106 112 131 98 103 119 100 102 106
++98 103 119 112 118 137 107 114 137 65 79 128 64 78 127 64 78 127
++65 79 128 82 95 139 98 104 122 90 96 116 79 84 103 90 96 116
++98 103 119 93 100 124 35 51 108 25 42 101 25 42 101 40 56 111
++110 117 140 106 112 131 98 103 119 100 102 106 98 103 119 106 112 131
++107 114 137 64 78 127 60 75 125 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 82 95 139 55 60 74 0 0 0
++0 0 0 30 30 30 76 90 135 33 50 106 33 50 106 33 50 106
++33 50 106 33 50 106 38 54 109 115 121 140 93 98 117 93 98 117
++115 121 140 110 117 140 100 102 106 106 112 131 110 117 140 56 70 122
++69 83 131 107 114 137 104 109 128 100 102 106 100 102 106 104 109 128
++109 115 137 76 90 135 54 69 120 54 69 120 40 56 111 25 42 101
++49 65 117 93 100 124 93 98 117 79 85 105 90 96 116 93 98 117
++93 100 124 44 60 114 25 42 101 25 42 101 25 42 101 36 52 108
++93 100 124 93 98 117 100 102 106 106 112 131 137 140 149 43 45 49
++0 0 0 0 0 0 104 109 128 49 65 117 49 65 117 49 65 117
++82 95 139 106 112 131 98 103 119 79 85 105 93 98 117 98 104 122
++71 84 130 27 44 102 25 42 101 25 42 101 101 108 130 93 98 117
++93 98 117 128 131 141 75 88 134 101 108 130 90 96 116 90 96 116
++101 108 130 46 61 115 58 73 123 104 109 128 100 102 106 98 103 119
++107 114 137 61 75 125 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 43 59 113 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 31 48 105 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 39 55 111
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 28 45 103 69 83 131 73 86 133 73 86 133
++73 86 133 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 46 54 80 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++32 38 56 75 88 134 75 88 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 104 109 128 0 0 0
++0 0 0 51 51 51 82 95 139 75 75 75 0 0 0 7 8 9
++89 90 90 0 0 0 3 4 6 117 122 139 117 122 139 0 0 0
++0 0 0 30 30 30 110 117 140 70 84 131 110 117 140 30 30 30
++0 0 0 0 0 0 117 122 139 69 83 131 115 121 140 7 8 9
++0 0 0 53 55 60 137 140 149 1 1 1 0 0 0 104 109 128
++73 86 133 107 114 137 55 60 74 2 3 3 0 0 0 0 0 0
++0 0 0 0 0 0 30 30 30 104 109 128 69 83 131 66 80 129
++109 115 137 7 8 9 0 0 0 14 14 16 110 117 140 66 80 128
++72 85 132 117 122 139 43 45 49 0 0 0 0 0 0 0 0 0
++0 0 0 1 2 3 53 55 60 115 121 140 65 79 128 63 77 126
++115 121 140 43 45 49 0 0 0 3 4 6 15 16 21 2 3 3
++0 0 0 15 18 27 104 109 128 29 45 103 29 45 103 107 114 137
++30 30 30 0 0 0 7 8 9 15 16 21 1 1 1 0 0 0
++43 45 49 115 121 140 60 75 125 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 82 95 139 55 60 74 0 0 0
++0 0 0 30 30 30 115 121 140 66 80 128 66 80 128 66 80 128
++71 84 130 39 55 110 46 61 115 55 60 74 0 0 0 0 0 0
++128 131 141 15 16 21 0 0 0 43 45 49 107 114 137 77 90 136
++98 103 119 15 16 21 0 0 0 0 0 0 0 0 0 0 0 0
++7 8 9 89 90 90 82 95 139 54 69 120 35 51 108 66 79 125
++89 90 90 7 9 13 0 0 0 0 0 0 0 0 0 0 0 0
++14 14 16 90 96 116 54 69 120 25 42 101 31 48 105 104 109 128
++15 16 21 0 0 0 0 0 0 1 1 1 75 75 75 51 51 51
++0 0 0 0 0 0 104 109 128 49 65 117 50 65 118 107 114 137
++55 60 74 3 4 6 0 0 0 0 0 0 0 0 0 1 1 1
++51 51 51 101 108 130 28 45 103 25 42 101 98 104 122 0 0 0
++0 0 0 89 90 90 100 102 106 3 4 6 0 0 0 0 0 0
++7 8 9 123 126 137 89 90 90 3 4 6 0 0 0 0 0 0
++14 14 16 106 112 131 47 62 115 45 60 114 44 60 114 44 60 114
++44 60 114 40 56 111 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 33 50 106 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 38 54 109
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 43 59 113 73 86 133 73 86 133
++73 86 133 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 46 54 80 0 0 0 75 75 75
++255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
++255 255 255 255 255 255 255 255 255 255 255 255 117 119 127 0 0 0
++32 38 56 75 88 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 73 86 133 73 86 133 117 122 139 1 2 3
++0 0 0 30 30 30 137 140 149 30 30 30 0 0 0 43 45 49
++137 140 149 0 0 0 0 0 0 104 109 128 106 112 131 0 0 0
++0 0 0 55 60 74 82 95 139 70 84 131 110 117 140 30 30 30
++0 0 0 0 0 0 117 122 139 69 83 131 115 121 140 7 8 9
++0 0 0 1 2 3 3 4 6 30 30 30 51 51 51 110 117 140
++107 114 137 55 60 74 0 0 0 0 0 0 75 75 75 99 106 127
++98 103 119 14 14 16 0 0 0 15 16 21 115 121 140 66 80 129
++109 115 137 7 8 9 0 0 0 14 14 16 110 117 140 66 80 128
++110 117 140 15 18 27 0 0 0 7 8 9 100 102 106 115 121 140
++89 90 90 1 1 1 0 0 0 53 55 60 107 114 137 76 89 135
++89 90 90 0 0 0 1 2 3 104 109 128 81 92 128 104 109 128
++51 51 51 55 60 74 117 119 127 78 91 137 61 75 125 51 51 51
++0 0 0 14 14 16 117 122 139 107 114 137 98 103 119 51 51 51
++75 75 75 137 140 149 82 95 139 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 58 73 123 82 95 139 55 60 74 0 0 0
++0 0 0 7 8 9 30 30 30 30 30 30 30 30 30 30 30 30
++75 75 75 59 74 124 46 61 115 55 60 74 0 0 0 0 0 0
++3 4 6 14 14 16 30 30 30 104 109 128 63 77 126 106 112 131
++3 4 6 0 0 0 30 30 30 106 112 131 112 118 137 53 55 60
++0 0 0 0 0 0 100 102 106 66 80 129 42 58 112 90 96 116
++1 1 1 0 0 0 43 45 49 99 106 127 99 106 127 30 30 30
++0 0 0 3 4 6 98 104 122 29 45 103 79 90 127 30 30 30
++0 0 0 0 0 0 15 16 21 51 51 51 14 14 16 3 4 6
++0 0 0 0 0 0 104 109 128 49 65 117 82 95 139 53 55 60
++0 0 0 0 0 0 43 45 49 79 84 103 43 45 49 0 0 0
++0 0 0 43 45 49 79 90 127 25 42 101 98 104 122 0 0 0
++0 0 0 30 30 30 14 14 16 30 30 30 3 4 6 0 0 0
++0 0 0 14 14 16 7 8 9 30 30 30 3 4 6 0 0 0
++0 0 0 53 55 60 72 85 132 45 60 114 44 60 114 44 60 114
++44 60 114 38 54 109 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 35 51 108 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 37 53 109
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 61 75 125 73 86 133
++73 86 133 73 86 133 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 46 54 80 0 0 0 55 60 74
++220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220
++220 220 220 220 220 220 220 220 220 220 220 220 100 102 106 0 0 0
++32 38 56 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 73 86 133 73 86 133 110 117 140 30 30 30
++0 0 0 2 3 3 128 131 141 2 3 3 0 0 0 79 84 103
++128 131 141 14 14 16 0 0 0 89 90 90 117 119 127 0 0 0
++0 0 0 100 102 106 74 87 134 70 84 131 110 117 140 30 30 30
++0 0 0 0 0 0 117 122 139 69 83 131 115 121 140 7 8 9
++0 0 0 0 0 0 75 75 75 110 117 140 115 121 140 78 91 137
++112 118 137 1 2 3 0 0 0 30 30 30 82 95 139 33 50 106
++54 69 120 89 90 90 0 0 0 0 0 0 100 102 106 73 86 133
++109 115 137 7 8 9 0 0 0 14 14 16 110 117 140 71 85 132
++100 102 106 0 0 0 0 0 0 75 75 75 82 95 139 71 85 132
++110 117 140 43 45 49 0 0 0 2 3 3 112 118 137 82 95 139
++75 75 75 0 0 0 1 1 1 79 84 103 99 106 127 115 121 140
++115 121 140 74 87 134 42 58 112 30 47 105 66 80 128 43 45 49
++0 0 0 7 8 9 98 103 119 112 118 137 137 140 149 137 140 149
++107 114 137 73 86 133 64 78 127 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 58 73 123 82 95 139 55 60 74 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++43 45 49 59 74 124 46 61 115 55 60 74 0 0 0 0 0 0
++14 14 16 115 121 140 101 108 130 107 114 137 82 95 139 51 51 51
++0 0 0 0 0 0 106 112 131 66 80 129 63 77 126 117 122 139
++3 4 6 0 0 0 30 30 30 101 108 130 81 92 128 30 30 30
++0 0 0 3 4 6 107 114 137 34 50 107 36 52 108 104 109 128
++0 0 0 0 0 0 53 55 60 59 74 124 93 100 124 0 0 0
++0 0 0 7 8 9 115 121 140 82 95 139 112 118 137 3 4 6
++0 0 0 0 0 0 104 109 128 49 65 117 104 109 128 1 1 1
++0 0 0 30 30 30 107 114 137 36 52 108 84 94 130 30 30 30
++0 0 0 0 0 0 98 103 119 25 42 101 98 104 122 0 0 0
++0 0 0 3 4 6 104 109 128 79 90 127 79 84 103 0 0 0
++0 0 0 3 4 6 98 104 122 81 94 136 89 90 90 0 0 0
++0 0 0 30 30 30 82 95 139 45 60 114 44 60 114 44 60 114
++44 60 114 36 52 108 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 37 53 109 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 35 51 108
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 33 50 106 72 85 132
++73 86 133 73 86 133 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 44 52 77 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++32 38 56 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 73 86 133 73 86 133 73 86 133 82 95 139 53 55 60
++0 0 0 0 0 0 14 14 16 0 0 0 0 0 0 112 118 137
++107 114 137 53 55 60 0 0 0 3 4 6 7 8 9 0 0 0
++0 0 0 112 118 137 70 84 131 70 84 131 110 117 140 30 30 30
++0 0 0 0 0 0 117 122 139 69 83 131 115 121 140 7 8 9
++0 0 0 0 0 0 112 118 137 68 82 130 68 82 130 68 82 130
++98 103 119 0 0 0 0 0 0 30 30 30 90 96 116 79 84 103
++79 84 103 53 55 60 0 0 0 0 0 0 75 75 75 82 95 139
++109 115 137 7 8 9 0 0 0 14 14 16 110 117 140 82 95 139
++55 60 74 0 0 0 0 0 0 75 75 75 89 90 90 89 90 90
++100 102 106 30 30 30 0 0 0 0 0 0 98 104 122 64 78 127
++106 112 131 14 14 16 0 0 0 0 0 0 0 0 0 14 14 16
++30 30 30 75 75 75 99 106 127 30 46 104 40 56 111 104 109 128
++3 4 6 0 0 0 0 0 0 1 1 1 14 14 16 43 45 49
++100 102 106 107 114 137 61 75 125 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 58 73 123 82 95 139 55 60 74 0 0 0
++0 0 0 30 30 30 117 122 139 93 100 124 93 100 124 93 100 124
++112 118 137 52 67 119 46 61 115 55 60 74 0 0 0 0 0 0
++55 60 74 82 95 139 56 70 122 56 70 122 107 114 137 30 30 30
++0 0 0 0 0 0 100 102 106 89 90 90 89 90 90 89 90 90
++3 4 6 0 0 0 2 3 3 107 114 137 99 106 127 1 2 3
++0 0 0 14 14 16 100 102 106 79 84 103 79 84 103 75 75 75
++0 0 0 0 0 0 30 30 30 79 90 127 93 98 117 0 0 0
++0 0 0 43 45 49 82 95 139 50 65 118 82 95 139 30 30 30
++0 0 0 0 0 0 104 109 128 52 67 119 90 96 116 0 0 0
++0 0 0 75 75 75 59 74 124 25 42 101 42 58 112 75 75 75
++0 0 0 0 0 0 79 84 103 36 52 108 98 104 122 0 0 0
++0 0 0 30 30 30 79 90 127 25 42 101 93 100 124 0 0 0
++0 0 0 30 30 30 79 90 127 39 55 110 106 112 131 0 0 0
++0 0 0 30 30 30 82 95 139 45 60 114 44 60 114 44 60 114
++44 60 114 33 50 106 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 39 55 110 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 33 50 106
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 48 64 117
++73 86 133 73 86 133 73 86 133 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++77 90 136 77 90 136 77 90 136 77 90 136 77 90 136 77 90 136
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 89 135 76 89 135 48 55 81 4 5 9 4 5 9
++4 5 9 4 5 9 4 5 9 4 5 9 4 5 9 4 5 9
++4 5 9 4 5 9 4 5 9 4 5 9 4 5 9 4 5 9
++32 38 61 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++73 86 133 73 86 133 73 86 133 66 80 129 36 52 108 79 84 103
++0 0 0 0 0 0 0 0 0 0 0 0 15 16 21 115 121 140
++76 90 135 98 103 119 0 0 0 0 0 0 0 0 0 0 0 0
++14 14 16 115 121 140 70 84 131 70 84 131 110 117 140 30 30 30
++0 0 0 0 0 0 117 122 139 69 83 131 115 121 140 7 8 9
++0 0 0 3 4 6 115 121 140 68 82 130 68 82 130 66 80 129
++93 98 117 0 0 0 0 0 0 15 18 27 53 55 60 53 55 60
++53 55 60 53 55 60 53 55 60 53 55 60 100 102 106 82 95 139
++109 115 137 7 8 9 0 0 0 14 14 16 110 117 140 82 95 139
++75 75 75 0 0 0 0 0 0 43 45 49 53 55 60 53 55 60
++53 55 60 53 55 60 53 55 60 53 55 60 128 131 141 66 80 129
++43 59 113 101 108 130 79 84 103 53 55 60 15 18 27 1 1 1
++0 0 0 0 0 0 43 45 49 84 94 130 39 55 111 82 95 139
++112 118 137 89 90 90 51 51 51 15 16 21 0 0 0 0 0 0
++0 0 0 55 60 74 82 95 139 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 58 73 123 82 95 139 55 60 74 0 0 0
++0 0 0 30 30 30 71 84 130 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 46 61 115 55 60 74 0 0 0 0 0 0
++89 90 90 66 80 129 56 70 122 56 70 122 107 114 137 30 30 30
++0 0 0 0 0 0 53 55 60 53 55 60 53 55 60 53 55 60
++53 55 60 53 55 60 53 55 60 117 122 139 99 106 127 2 3 3
++0 0 0 7 8 9 53 55 60 53 55 60 53 55 60 53 55 60
++53 55 60 53 55 60 75 75 75 99 106 127 98 103 119 0 0 0
++0 0 0 43 45 49 82 95 139 50 65 118 82 95 139 30 30 30
++0 0 0 0 0 0 104 109 128 54 69 120 90 96 116 0 0 0
++0 0 0 75 75 75 52 67 119 25 42 101 40 56 111 75 75 75
++0 0 0 0 0 0 79 84 103 37 53 109 98 104 122 0 0 0
++0 0 0 30 30 30 71 84 130 25 42 101 93 98 117 0 0 0
++0 0 0 30 30 30 71 84 130 42 58 112 106 112 131 0 0 0
++0 0 0 30 30 30 82 95 139 45 60 114 44 60 114 44 60 114
++44 60 114 30 47 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 26 43 102 40 56 111 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 31 48 105
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 26 43 102
++60 75 125 73 86 133 73 86 133 73 86 133 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 73 86 133
++73 86 133 73 86 133 72 85 132 36 52 108 25 42 101 98 104 122
++0 0 0 0 0 0 0 0 0 0 0 0 53 55 60 107 114 137
++71 85 132 117 122 139 2 3 3 0 0 0 0 0 0 0 0 0
++43 45 49 110 117 140 70 84 131 70 84 131 110 117 140 30 30 30
++0 0 0 0 0 0 117 122 139 69 83 131 115 121 140 7 8 9
++0 0 0 14 14 16 110 117 140 68 82 130 68 82 130 52 67 119
++99 106 127 1 1 1 0 0 0 43 45 49 110 117 140 56 70 122
++58 73 123 107 114 137 110 117 140 110 117 140 110 117 140 66 80 128
++109 115 137 7 8 9 0 0 0 14 14 16 110 117 140 73 86 133
++100 102 106 0 0 0 0 0 0 100 102 106 110 117 140 82 95 139
++110 117 140 137 140 149 115 121 140 110 117 140 82 95 139 64 78 127
++60 75 125 71 84 130 84 94 130 107 114 137 81 92 128 101 108 130
++43 45 49 0 0 0 0 0 0 98 104 122 63 77 126 82 95 139
++107 114 137 115 121 140 115 121 140 110 117 140 112 118 137 15 16 21
++0 0 0 14 14 16 107 114 137 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 58 73 123 82 95 139 55 60 74 0 0 0
++0 0 0 30 30 30 71 84 130 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 46 61 115 55 60 74 0 0 0 0 0 0
++100 102 106 59 74 124 56 70 122 56 70 122 82 95 139 51 51 51
++0 0 0 0 0 0 128 131 141 82 95 139 82 95 139 110 117 140
++115 121 140 110 117 140 82 95 139 55 70 121 84 94 130 15 18 27
++0 0 0 7 8 9 128 131 141 56 70 122 56 70 122 82 95 139
++82 95 139 81 94 136 68 82 130 35 51 108 99 106 127 1 2 3
++0 0 0 14 14 16 110 117 140 63 77 126 110 117 140 7 9 13
++0 0 0 0 0 0 104 109 128 49 65 117 104 109 128 0 0 0
++0 0 0 43 45 49 84 94 130 25 42 101 73 86 133 43 45 49
++0 0 0 0 0 0 93 98 117 26 43 102 98 104 122 0 0 0
++0 0 0 30 30 30 71 84 130 25 42 101 93 98 117 0 0 0
++0 0 0 30 30 30 71 84 130 45 60 114 106 112 131 0 0 0
++0 0 0 30 30 30 82 95 139 45 60 114 44 60 114 44 60 114
++44 60 114 29 45 103 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 28 45 103 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 39 55 111 30 46 104
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++29 45 103 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++30 46 104 68 82 130 73 86 133 73 86 133 73 86 133 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 73 86 133
++73 86 133 73 86 133 48 64 117 25 42 101 25 42 101 93 100 124
++14 14 16 0 0 0 0 0 0 0 0 0 98 103 119 75 88 134
++71 85 132 110 117 140 30 30 30 0 0 0 0 0 0 0 0 0
++89 90 90 82 95 139 70 84 131 70 84 131 110 117 140 30 30 30
++0 0 0 0 0 0 117 122 139 69 83 131 115 121 140 7 8 9
++0 0 0 14 14 16 110 117 140 68 82 130 68 82 130 33 50 106
++74 85 123 43 45 49 0 0 0 1 2 3 90 96 116 93 100 124
++104 109 128 55 60 74 53 55 60 75 75 75 155 156 157 75 88 134
++109 115 137 7 8 9 0 0 0 14 14 16 110 117 140 65 79 128
++115 121 140 14 14 16 0 0 0 14 14 16 112 118 137 110 117 140
++104 109 128 53 55 60 55 60 74 100 102 106 155 156 157 107 114 137
++75 75 75 30 30 30 30 30 30 98 103 119 79 90 127 84 94 130
++53 55 60 0 0 0 7 9 13 93 100 124 128 131 141 53 55 60
++30 30 30 30 30 30 112 118 137 107 114 137 115 121 140 30 30 30
++0 0 0 30 30 30 107 114 137 59 74 124 59 74 124 59 74 124
++59 74 124 58 73 123 58 73 123 82 95 139 55 60 74 0 0 0
++0 0 0 30 30 30 71 84 130 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 46 61 115 55 60 74 0 0 0 0 0 0
++100 102 106 56 70 122 56 70 122 56 70 122 61 75 125 104 109 128
++1 2 3 0 0 0 43 45 49 115 121 140 107 114 137 100 102 106
++51 51 51 55 60 74 128 131 141 82 95 139 45 60 114 79 84 103
++0 0 0 0 0 0 55 60 74 101 108 130 99 106 127 89 90 90
++51 51 51 61 66 84 137 140 149 60 75 125 66 80 128 43 45 49
++0 0 0 0 0 0 43 45 49 89 90 90 30 30 30 30 30 30
++0 0 0 0 0 0 104 109 128 49 65 117 101 108 130 43 45 49
++0 0 0 1 1 1 55 60 74 93 98 117 75 75 75 1 1 1
++0 0 0 30 30 30 81 92 128 25 42 101 98 104 122 0 0 0
++0 0 0 30 30 30 71 84 130 25 42 101 93 98 117 0 0 0
++0 0 0 30 30 30 72 85 132 46 61 115 106 112 131 0 0 0
++0 0 0 30 30 30 82 95 139 45 60 114 44 60 114 44 60 114
++44 60 114 26 43 102 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 30 46 104 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 39 55 111 28 45 103
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++56 70 122 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 38 54 109 72 85 132 73 86 133 73 86 133 73 86 133
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 73 86 133 73 86 133
++73 86 133 59 74 124 25 42 101 25 42 101 25 42 101 68 82 130
++43 45 49 0 0 0 0 0 0 3 4 6 117 122 139 71 85 132
++71 85 132 82 95 139 75 75 75 0 0 0 0 0 0 0 0 0
++106 112 131 71 85 132 70 84 131 70 84 131 110 117 140 30 30 30
++0 0 0 0 0 0 117 122 139 69 83 131 115 121 140 7 8 9
++0 0 0 14 14 16 110 117 140 68 82 130 56 70 122 25 42 101
++28 45 103 101 108 130 30 30 30 0 0 0 0 0 0 7 9 13
++1 2 3 0 0 0 3 4 6 100 102 106 82 95 139 66 80 128
++109 115 137 7 8 9 0 0 0 14 14 16 110 117 140 65 79 128
++78 91 137 106 112 131 14 14 16 0 0 0 1 1 1 7 9 13
++0 0 0 0 0 0 15 16 21 112 118 137 74 87 134 42 58 112
++98 104 122 14 14 16 0 0 0 2 3 3 30 30 30 15 18 27
++0 0 0 7 8 9 90 96 116 55 70 121 81 94 136 100 102 106
++3 4 6 0 0 0 7 8 9 30 30 30 14 14 16 0 0 0
++14 14 16 106 112 131 68 82 130 59 74 124 59 74 124 59 74 124
++59 74 124 58 73 123 58 73 123 82 95 139 55 60 74 0 0 0
++0 0 0 30 30 30 71 84 130 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 46 61 115 55 60 74 0 0 0 0 0 0
++100 102 106 56 70 122 56 70 122 56 70 122 56 70 122 82 95 139
++89 90 90 3 4 6 0 0 0 3 4 6 7 8 9 0 0 0
++0 0 0 43 45 49 110 117 140 29 45 103 25 42 101 84 94 130
++55 60 74 1 1 1 0 0 0 7 8 9 3 4 6 0 0 0
++1 1 1 55 60 74 84 94 130 25 42 101 29 45 103 104 109 128
++14 14 16 0 0 0 0 0 0 0 0 0 75 75 75 100 102 106
++0 0 0 0 0 0 104 109 128 49 65 117 52 67 119 110 117 140
++43 45 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++30 30 30 101 108 130 30 46 104 25 42 101 98 104 122 0 0 0
++0 0 0 30 30 30 71 84 130 25 42 101 93 98 117 0 0 0
++0 0 0 30 30 30 75 88 134 46 61 115 106 112 131 0 0 0
++0 0 0 30 30 30 82 95 139 44 60 114 44 60 114 44 60 114
++42 58 112 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 32 49 106 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 39 55 111 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++72 85 132 44 60 114 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 49 65 117 73 86 133 73 86 133 73 86 133
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 73 86 133 73 86 133 73 86 133
++66 80 129 29 45 103 25 42 101 25 42 101 25 42 101 45 60 114
++123 126 137 90 96 116 98 103 119 117 119 127 110 117 140 71 85 132
++71 85 132 72 85 132 137 140 149 98 103 119 98 103 119 98 103 119
++137 140 149 70 84 131 70 84 131 70 84 131 115 121 140 117 119 127
++98 103 119 98 103 119 137 140 149 69 83 131 137 140 149 98 103 119
++98 103 119 104 109 128 128 131 141 68 82 130 37 53 109 25 42 101
++25 42 101 30 47 105 84 94 130 93 98 117 72 78 100 61 66 84
++75 75 75 100 102 106 115 121 140 82 95 139 66 80 128 66 80 128
++128 131 141 98 103 119 98 103 119 104 109 128 128 131 141 65 79 128
++65 79 128 78 91 137 115 121 140 98 103 119 89 90 90 75 75 75
++89 90 90 98 103 119 115 121 140 72 85 132 56 70 122 25 42 101
++42 58 112 99 106 127 90 96 116 72 78 100 61 66 84 75 75 75
++90 96 116 99 106 127 49 65 117 44 60 114 61 75 125 82 95 139
++115 121 140 100 102 106 89 90 90 75 75 75 75 75 75 98 103 119
++110 117 140 73 86 133 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 58 73 123 58 73 123 82 95 139 128 131 141 90 96 116
++90 96 116 117 119 127 73 86 133 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 46 61 115 128 131 141 90 96 116 93 98 117
++148 148 149 56 70 122 56 70 122 56 70 122 56 70 122 55 70 121
++81 94 136 109 115 137 100 102 106 75 75 75 75 75 75 89 90 90
++106 112 131 101 108 130 50 65 118 25 42 101 25 42 101 26 43 102
++66 79 125 98 104 122 79 84 103 75 75 75 75 75 75 79 84 103
++99 106 127 66 79 125 25 42 101 25 42 101 25 42 101 43 59 113
++106 112 131 89 90 90 75 75 75 98 103 119 110 117 140 137 140 149
++100 102 106 100 102 106 137 140 149 49 65 117 49 65 117 52 67 119
++101 108 130 98 104 122 72 78 100 61 66 84 75 75 75 98 103 119
++84 94 130 30 46 104 25 42 101 25 42 101 128 131 141 90 96 116
++90 96 116 117 119 127 73 86 133 25 42 101 115 121 140 90 96 116
++90 96 116 117 119 127 81 94 136 46 61 115 137 140 149 93 98 117
++93 98 117 117 119 127 101 108 130 44 60 114 44 60 114 44 60 114
++39 55 110 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 34 50 107 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 38 54 109 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++72 85 132 70 84 131 34 50 107 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 54 69 120 73 86 133 73 86 133
++73 86 133 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 90 135 76 90 135 76 90 135 76 90 135 76 90 135
++76 90 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 73 86 133 73 86 133 73 86 133 69 83 131
++31 48 105 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 58 73 123 72 85 132 72 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 60 75 125 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 27 44 102 39 55 110 48 64 117
++50 65 118 69 83 131 66 80 129 66 80 129 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 68 82 130 78 91 137 82 95 139
++75 88 134 66 80 129 64 78 127 63 77 126 43 59 113 25 42 101
++25 42 101 25 42 101 29 45 103 39 55 110 48 64 117 44 60 114
++31 48 105 25 42 101 25 42 101 56 70 122 61 75 125 61 75 125
++61 75 125 65 79 128 74 87 134 81 94 136 75 88 134 64 78 127
++60 75 125 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++58 73 123 58 73 123 58 73 123 58 73 123 30 47 105 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 50 65 118
++56 70 122 56 70 122 56 70 122 56 70 122 55 70 121 55 70 121
++55 70 121 55 70 121 63 77 126 71 85 132 71 85 132 63 77 126
++55 70 121 54 69 120 42 58 112 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 37 53 109 46 61 115 44 60 114 34 50 107
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++42 58 112 61 75 125 68 82 130 55 70 121 50 65 118 50 65 118
++50 65 118 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++48 64 117 36 52 108 39 55 111 48 64 117 39 55 111 26 43 102
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 39 55 110 46 61 115 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 44 60 114 44 60 114 44 60 114
++35 51 108 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 36 52 108 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 36 52 108 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++71 85 132 72 85 132 65 79 128 28 45 103 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 26 43 102 58 73 123 73 86 133
++73 86 133 73 86 133 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 90 135 76 90 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 73 86 133 73 86 133 73 86 133 71 85 132 35 51 108
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++46 61 115 72 85 132 72 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 38 54 109 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++54 69 120 66 80 129 66 80 129 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 63 77 126 63 77 126 30 47 105 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 31 48 105 61 75 125 61 75 125 61 75 125
++61 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++58 73 123 58 73 123 58 73 123 55 70 121 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 27 44 102 56 70 122
++56 70 122 56 70 122 56 70 122 56 70 122 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 54 69 120 54 69 120 54 69 120
++54 69 120 54 69 120 35 51 108 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++48 64 117 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++48 64 117 31 48 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 42 58 112 46 61 115 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 44 60 114 44 60 114 44 60 114
++31 48 105 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 39 55 110 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 34 50 107 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++71 85 132 72 85 132 72 85 132 56 70 122 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 27 44 102 61 75 125
++73 86 133 73 86 133 73 86 133 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++73 86 133 73 86 133 73 86 133 72 85 132 39 55 110 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 35 51 108
++71 85 132 72 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 59 74 124 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 30 47 105
++66 80 129 66 80 129 66 80 129 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 63 77 126 55 70 121 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 44 60 114 61 75 125 61 75 125 61 75 125
++61 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++58 73 123 58 73 123 58 73 123 45 60 114 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 35 51 108 56 70 122
++56 70 122 56 70 122 56 70 122 56 70 122 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 54 69 120 54 69 120 54 69 120
++54 69 120 54 69 120 29 45 103 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 29 45 103
++51 66 119 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++48 64 117 27 44 102 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 26 43 102 46 61 115 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 44 60 114 44 60 114 44 60 114
++28 45 103 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 26 43 102 40 56 111 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 31 48 105 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++71 85 132 71 85 132 72 85 132 72 85 132 47 62 115 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 28 45 103
++64 78 127 73 86 133 73 86 133 73 86 133 73 86 133 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 73 86 133
++73 86 133 73 86 133 72 85 132 42 58 112 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 30 47 105 66 80 129
++72 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 37 53 109 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 49 65 117
++66 80 129 66 80 129 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 63 77 126 40 56 111 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 56 70 122 61 75 125 61 75 125 61 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++58 73 123 58 73 123 58 73 123 36 52 108 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 43 59 113 56 70 122
++56 70 122 56 70 122 56 70 122 56 70 122 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 54 69 120 54 69 120 54 69 120
++54 69 120 50 65 118 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 34 50 107
++51 66 119 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++46 61 115 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 29 45 103 46 61 115 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 44 60 114 44 60 114 43 59 113
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 29 45 103 40 56 111 40 56 111 39 55 111
++39 55 111 39 55 111 39 55 111 39 55 111 30 46 104 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++71 85 132 71 85 132 71 85 132 72 85 132 72 85 132 42 58 112
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++28 45 103 61 75 125 73 86 133 73 86 133 73 86 133 73 86 133
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 73 86 133 73 86 133
++73 86 133 71 85 132 39 55 111 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 28 45 103 64 78 127 72 85 132
++72 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 56 70 122 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 30 46 104 66 80 128
++66 80 129 66 80 129 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 63 77 126 61 75 125 27 44 102 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 32 49 106 61 75 125 61 75 125 61 75 125 61 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 58 73 123
++58 73 123 58 73 123 58 73 123 27 44 102 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 52 67 119 56 70 122
++56 70 122 56 70 122 56 70 122 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 54 69 120 54 69 120 54 69 120
++54 69 120 44 60 114 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 40 56 111
++51 66 119 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 48 64 117
++40 56 111 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 32 49 106 46 61 115 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 44 60 114 44 60 114 44 60 114 40 56 111
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 31 48 105 40 56 111 40 56 111 39 55 111
++39 55 111 39 55 111 39 55 111 39 55 111 27 44 102 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++71 85 132 71 85 132 71 85 132 71 85 132 72 85 132 71 85 132
++39 55 110 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 27 44 102 58 73 123 73 86 133 73 86 133 73 86 133
++73 86 133 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 73 86 133 73 86 133 73 86 133
++69 83 131 36 52 108 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 27 44 102 63 77 126 72 85 132 72 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++66 80 129 32 49 106 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 49 65 117 66 80 129
++66 80 129 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 63 77 126 48 64 117 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 45 60 114 61 75 125 61 75 125 61 75 125 61 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 58 73 123
++58 73 123 58 73 123 49 65 117 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 30 46 104 56 70 122 56 70 122
++56 70 122 56 70 122 56 70 122 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 54 69 120 54 69 120 54 69 120 54 69 120
++54 69 120 37 53 109 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 47 62 115
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 48 64 117
++35 51 108 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 36 52 108 46 61 115 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 44 60 114 44 60 114 44 60 114 37 53 109
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 33 50 106 40 56 111 40 56 111 39 55 111
++39 55 111 39 55 111 39 55 111 39 55 110 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 72 85 132
++70 84 131 35 51 108 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 26 43 102 54 69 120 73 86 133 73 86 133
++73 86 133 73 86 133 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++76 89 135 76 89 135 76 89 135 76 89 135 76 89 135 76 89 135
++76 89 135 76 89 135 76 89 135 76 89 135 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 73 86 133 73 86 133 73 86 133 73 86 133 66 80 129
++33 50 106 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 26 43 102 58 73 123 72 85 132 72 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++50 65 118 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 30 47 105 66 80 128 66 80 129
++66 80 129 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++63 77 126 63 77 126 33 50 106 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++26 43 102 58 73 123 61 75 125 61 75 125 61 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 58 73 123
++58 73 123 58 73 123 39 55 110 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 39 55 110 56 70 122 56 70 122
++56 70 122 56 70 122 56 70 122 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 54 69 120 54 69 120 54 69 120 54 69 120
++54 69 120 29 45 103 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 27 44 102 51 66 119
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 48 64 117
++30 46 104 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 40 56 111 46 61 115 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 44 60 114 44 60 114 44 60 114 34 50 107
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 36 52 108 40 56 111 40 56 111 39 55 111
++39 55 111 39 55 111 39 55 111 37 53 109 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 72 85 132
++72 85 132 68 82 130 33 50 106 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 48 64 117 72 85 132
++73 86 133 73 86 133 73 86 133 73 86 133 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++73 86 133 73 86 133 73 86 133 73 86 133 63 77 126 30 47 105
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++26 43 102 54 69 120 72 85 132 72 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 65 79 128
++29 45 103 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 50 65 118 66 80 129 66 80 129
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++63 77 126 56 70 122 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++36 52 108 61 75 125 61 75 125 61 75 125 61 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 58 73 123 58 73 123
++58 73 123 58 73 123 28 45 103 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 48 64 117 56 70 122 56 70 122
++56 70 122 56 70 122 55 70 121 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 54 69 120 54 69 120 54 69 120 54 69 120
++50 65 118 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 32 49 106 51 66 119
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 48 64 117
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 44 60 114 45 60 114 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 44 60 114 44 60 114 44 60 114 30 47 105
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 39 55 110 40 56 111 40 56 111 39 55 111
++39 55 111 39 55 111 39 55 111 34 50 107 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++72 85 132 72 85 132 68 82 130 36 52 108 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 37 53 109
++66 80 129 73 86 133 73 86 133 73 86 133 73 86 133 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 73 86 133 73 86 133
++73 86 133 73 86 133 73 86 133 54 69 120 26 43 102 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 26 43 102
++56 70 122 72 85 132 72 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 42 58 112
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 32 49 106 66 80 128 66 80 129 66 80 129
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++63 77 126 39 55 110 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++50 65 118 61 75 125 61 75 125 61 75 125 61 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 58 73 123 58 73 123
++58 73 123 49 65 117 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 26 43 102 55 70 121 56 70 122 56 70 122
++56 70 122 56 70 122 55 70 121 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 54 69 120 54 69 120 54 69 120 54 69 120
++42 58 112 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 39 55 110 51 66 119
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 48 64 117 42 58 112
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++29 45 103 46 61 115 45 60 114 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 44 60 114 44 60 114 44 60 114 27 44 102
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 27 44 102 40 56 111 40 56 111 39 55 111 39 55 111
++39 55 111 39 55 111 39 55 111 31 48 105 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 72 85 132 72 85 132 70 84 131 39 55 110 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++29 45 103 59 74 124 73 86 133 73 86 133 73 86 133 73 86 133
++73 86 133 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 73 86 133 73 86 133 73 86 133
++73 86 133 70 84 131 40 56 111 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 28 45 103 60 75 125
++72 85 132 72 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 56 70 122 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 56 70 122 66 80 129 66 80 129 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 63 77 126
++59 74 124 26 43 102 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 29 45 103
++61 75 125 61 75 125 61 75 125 61 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 58 73 123 58 73 123
++58 73 123 39 55 110 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 35 51 108 56 70 122 56 70 122 56 70 122
++56 70 122 56 70 122 55 70 121 55 70 121 55 70 121 55 70 121
++55 70 121 54 69 120 54 69 120 54 69 120 54 69 120 54 69 120
++33 50 106 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 45 60 114 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 48 64 117 37 53 109
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++33 50 106 46 61 115 45 60 114 45 60 114 45 60 114 45 60 114
++45 60 114 44 60 114 44 60 114 44 60 114 42 58 112 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 30 46 104 40 56 111 40 56 111 39 55 111 39 55 111
++39 55 111 39 55 111 39 55 111 29 45 103 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++70 84 131 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 72 85 132 72 85 132 71 85 132 43 59 113
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 48 64 117 71 85 132 73 86 133 73 86 133
++73 86 133 73 86 133 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 73 86 133 73 86 133 73 86 133 73 86 133 73 86 133
++63 77 126 31 48 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 30 46 104 63 77 126 72 85 132
++72 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 66 80 129 30 47 105 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 38 54 109 66 80 129 66 80 129 66 80 129 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 63 77 126
++42 58 112 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 43 59 113
++61 75 125 61 75 125 61 75 125 61 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 58 73 123 58 73 123 58 73 123
++58 73 123 28 45 103 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 45 60 114 56 70 122 56 70 122 56 70 122
++56 70 122 56 70 122 55 70 121 55 70 121 55 70 121 55 70 121
++55 70 121 54 69 120 54 69 120 54 69 120 54 69 120 54 69 120
++26 43 102 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 27 44 102 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 48 64 117 31 48 105
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++38 54 109 46 61 115 45 60 114 45 60 114 45 60 114 45 60 114
++45 60 114 44 60 114 44 60 114 44 60 114 38 54 109 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 32 49 106 40 56 111 40 56 111 39 55 111 39 55 111
++39 55 111 39 55 111 39 55 111 26 43 102 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++70 84 131 70 84 131 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 72 85 132 72 85 132
++48 64 117 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 31 48 105 59 74 124 73 86 133
++73 86 133 73 86 133 73 86 133 73 86 133 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++75 88 134 75 88 134 75 88 134 75 88 134 75 88 134 75 88 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 73 86 133
++73 86 133 73 86 133 73 86 133 73 86 133 69 83 131 44 60 114
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 32 49 106 66 80 128 72 85 132 72 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 43 59 113 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++26 43 102 61 75 125 66 80 129 66 80 129 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 63 77 126 61 75 125
++28 45 103 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 26 43 102 56 70 122
++61 75 125 61 75 125 61 75 125 61 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 58 73 123 58 73 123 58 73 123
++48 64 117 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 26 43 102 54 69 120 56 70 122 56 70 122 56 70 122
++56 70 122 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++55 70 121 54 69 120 54 69 120 54 69 120 54 69 120 46 61 115
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 33 50 106 51 66 119 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 48 64 117 26 43 102
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++43 59 113 45 60 114 45 60 114 45 60 114 45 60 114 45 60 114
++45 60 114 44 60 114 44 60 114 44 60 114 33 50 106 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 35 51 108 40 56 111 40 56 111 39 55 111 39 55 111
++39 55 111 39 55 111 38 54 109 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++70 84 131 70 84 131 70 84 131 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 72 85 132
++72 85 132 58 73 123 28 45 103 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 40 56 111
++66 80 129 73 86 133 73 86 133 73 86 133 73 86 133 73 86 133
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 73 86 133 73 86 133 73 86 133
++73 86 133 73 86 133 73 86 133 54 69 120 29 45 103 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 40 56 111 69 83 131 72 85 132 72 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 56 70 122 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++47 62 115 66 80 129 66 80 129 66 80 129 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 63 77 126 47 62 115
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 37 53 109 61 75 125
++61 75 125 61 75 125 61 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 58 73 123 58 73 123 58 73 123
++37 53 109 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 35 51 108 56 70 122 56 70 122 56 70 122 56 70 122
++56 70 122 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 54 69 120 38 54 109
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 42 58 112 51 66 119 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 48 64 117 44 60 114 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 27 44 102
++46 61 115 45 60 114 45 60 114 45 60 114 45 60 114 45 60 114
++45 60 114 44 60 114 44 60 114 44 60 114 29 45 103 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 39 55 110 40 56 111 40 56 111 39 55 111 39 55 111
++39 55 111 39 55 111 35 51 108 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++70 84 131 70 84 131 70 84 131 70 84 131 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++72 85 132 72 85 132 66 80 128 35 51 108 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++27 44 102 50 65 118 70 84 131 73 86 133 73 86 133 73 86 133
++73 86 133 73 86 133 73 86 133 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 73 86 133 73 86 133 73 86 133 73 86 133 73 86 133
++73 86 133 61 75 125 36 52 108 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 27 44 102
++54 69 120 72 85 132 72 85 132 72 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 64 78 127 29 45 103 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 32 49 106
++66 80 128 66 80 129 66 80 129 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 63 77 126 61 75 125 29 45 103
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 54 69 120 61 75 125
++61 75 125 61 75 125 61 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 58 73 123 58 73 123 58 73 123 56 70 122
++26 43 102 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 46 61 115 56 70 122 56 70 122 56 70 122 56 70 122
++56 70 122 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 54 69 120 30 46 104
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 48 64 117 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 48 64 117 38 54 109 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 31 48 105
++46 61 115 45 60 114 45 60 114 45 60 114 45 60 114 45 60 114
++44 60 114 44 60 114 44 60 114 43 59 113 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++26 43 102 40 56 111 40 56 111 40 56 111 39 55 111 39 55 111
++39 55 111 39 55 111 32 49 106 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 72 85 132 72 85 132 71 85 132 46 61 115 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 29 45 103 48 64 117 69 83 131 73 86 133
++73 86 133 73 86 133 73 86 133 73 86 133 73 86 133 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 73 86 133 73 86 133
++73 86 133 73 86 133 73 86 133 73 86 133 73 86 133 59 74 124
++37 53 109 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 32 49 106 63 77 126
++72 85 132 72 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++66 80 129 37 53 109 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 26 43 102 58 73 123
++66 80 129 66 80 129 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 63 77 126 46 61 115 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 34 50 107 61 75 125 61 75 125
++61 75 125 61 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 58 73 123 58 73 123 58 73 123 44 60 114
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++27 44 102 55 70 121 56 70 122 56 70 122 56 70 122 56 70 122
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 48 64 117 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 30 46 104 51 66 119 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 48 64 117 30 47 105 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 37 53 109
++46 61 115 45 60 114 45 60 114 45 60 114 45 60 114 45 60 114
++44 60 114 44 60 114 44 60 114 39 55 110 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++30 46 104 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 39 55 111 30 46 104 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 72 85 132 72 85 132 58 73 123
++30 47 105 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 28 45 103 48 64 117
++68 82 130 73 86 133 73 86 133 73 86 133 73 86 133 73 86 133
++73 86 133 73 86 133 73 86 133 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 73 86 133 73 86 133 73 86 133 73 86 133 73 86 133
++73 86 133 73 86 133 73 86 133 58 73 123 35 51 108 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 44 60 114 69 83 131 72 85 132
++72 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++46 61 115 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 43 59 113 66 80 129
++66 80 129 66 80 129 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 63 77 126 61 75 125 28 45 103 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 50 65 118 61 75 125 61 75 125
++61 75 125 61 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 58 73 123 58 73 123 58 73 123 58 73 123 31 48 105
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++35 51 108 56 70 122 56 70 122 56 70 122 56 70 122 56 70 122
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 39 55 111 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 37 53 109 51 66 119 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 47 62 115 26 43 102 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 42 58 112
++46 61 115 45 60 114 45 60 114 45 60 114 45 60 114 45 60 114
++44 60 114 44 60 114 44 60 114 34 50 107 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++33 50 106 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 39 55 111 26 43 102 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 72 85 132 72 85 132
++70 84 131 48 64 117 26 43 102 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++26 43 102 39 55 111 58 73 123 72 85 132 73 86 133 73 86 133
++73 86 133 73 86 133 73 86 133 73 86 133 73 86 133 73 86 133
++73 86 133 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 74 87 134 74 87 134 74 87 134 74 87 134
++74 87 134 74 87 134 73 86 133 73 86 133 73 86 133 73 86 133
++73 86 133 73 86 133 73 86 133 73 86 133 73 86 133 73 86 133
++66 80 128 48 64 117 30 47 105 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 34 50 107 63 77 126 72 85 132 72 85 132 72 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 55 70 121
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 32 49 106 66 80 128 66 80 129
++66 80 129 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 63 77 126 45 60 114 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 31 48 105 61 75 125 61 75 125 61 75 125
++61 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 58 73 123 58 73 123 58 73 123 51 66 119 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++46 61 115 56 70 122 56 70 122 56 70 122 56 70 122 56 70 122
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 54 69 120
++54 69 120 54 69 120 54 69 120 54 69 120 30 46 104 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 44 60 114 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 48 64 117 42 58 112 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 26 43 102 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 45 60 114
++44 60 114 44 60 114 44 60 114 30 47 105 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++36 52 108 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 38 54 109 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++69 83 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 72 85 132
++72 85 132 72 85 132 65 79 128 38 54 109 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 29 45 103 44 60 114 63 77 126
++72 85 132 73 86 133 73 86 133 73 86 133 73 86 133 73 86 133
++73 86 133 73 86 133 73 86 133 73 86 133 73 86 133 73 86 133
++73 86 133 73 86 133 73 86 133 73 86 133 73 86 133 73 86 133
++73 86 133 73 86 133 73 86 133 73 86 133 73 86 133 73 86 133
++73 86 133 73 86 133 73 86 133 73 86 133 73 86 133 73 86 133
++73 86 133 73 86 133 73 86 133 68 82 130 54 69 120 35 51 108
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 28 45 103
++52 67 119 72 85 132 72 85 132 72 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 63 77 126 28 45 103
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 26 43 102 59 74 124 66 80 129 66 80 129
++66 80 129 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 63 77 126 60 75 125 28 45 103 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 48 64 117 61 75 125 61 75 125 61 75 125
++61 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++58 73 123 58 73 123 58 73 123 58 73 123 38 54 109 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 28 45 103
++55 70 121 56 70 122 56 70 122 56 70 122 56 70 122 55 70 121
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 54 69 120
++54 69 120 54 69 120 54 69 120 48 64 117 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 26 43 102 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 48 64 117 34 50 107 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 30 47 105 46 61 115
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 44 60 114 44 60 114 26 43 102 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++39 55 111 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 34 50 107 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++69 83 131 69 83 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 72 85 132 72 85 132 72 85 132 56 70 122 31 48 105
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++28 45 103 39 55 111 52 67 119 65 79 128 73 86 133 73 86 133
++73 86 133 73 86 133 73 86 133 73 86 133 73 86 133 73 86 133
++73 86 133 73 86 133 73 86 133 73 86 133 73 86 133 73 86 133
++73 86 133 73 86 133 73 86 133 73 86 133 73 86 133 73 86 133
++73 86 133 73 86 133 73 86 133 73 86 133 73 86 133 69 83 131
++58 73 123 46 61 115 33 50 106 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 26 43 102 44 60 114 68 82 130
++72 85 132 72 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 65 79 128 31 48 105 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 48 64 117 66 80 129 66 80 129 66 80 129
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 63 77 126 42 58 112 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 31 48 105 61 75 125 61 75 125 61 75 125 61 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++58 73 123 58 73 123 58 73 123 56 70 122 27 44 102 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 39 55 111
++56 70 122 56 70 122 56 70 122 56 70 122 56 70 122 55 70 121
++55 70 121 55 70 121 55 70 121 55 70 121 54 69 120 54 69 120
++54 69 120 54 69 120 54 69 120 39 55 110 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 33 50 106 51 66 119 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 48 64 117 28 45 103 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 36 52 108 46 61 115
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 44 60 114 40 56 111 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 28 45 103
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 31 48 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++69 83 131 69 83 131 69 83 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 72 85 132 72 85 132 71 85 132
++54 69 120 30 47 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 30 46 104 39 55 111
++47 62 115 54 69 120 63 77 126 69 83 131 73 86 133 73 86 133
++73 86 133 73 86 133 73 86 133 73 86 133 73 86 133 73 86 133
++73 86 133 73 86 133 73 86 133 73 86 133 73 86 133 72 85 132
++65 79 128 58 73 123 50 65 118 43 59 113 34 50 107 26 43 102
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 26 43 102 42 58 112 66 80 128 72 85 132 72 85 132
++72 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 66 80 129 34 50 107 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 38 54 109 66 80 129 66 80 129 66 80 129 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++63 77 126 56 70 122 26 43 102 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 49 65 117 61 75 125 61 75 125 61 75 125 61 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++58 73 123 58 73 123 58 73 123 43 59 113 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 51 66 119
++56 70 122 56 70 122 56 70 122 56 70 122 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 55 70 121 54 69 120 54 69 120
++54 69 120 54 69 120 54 69 120 29 45 103 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 42 58 112 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 44 60 114 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 42 58 112 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 44 60 114 36 52 108 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 31 48 105
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 28 45 103 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++69 83 131 69 83 131 69 83 131 69 83 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 72 85 132
++72 85 132 71 85 132 55 70 121 34 50 107 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 29 45 103 33 50 106
++37 53 109 40 56 111 43 59 113 44 60 114 44 60 114 44 60 114
++44 60 114 42 58 112 39 55 110 35 51 108 31 48 105 26 43 102
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 27 44 102
++45 60 114 66 80 128 72 85 132 72 85 132 72 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 66 80 129 39 55 111 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++31 48 105 64 78 127 66 80 129 66 80 129 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 63 77 126
++63 77 126 36 52 108 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++31 48 105 61 75 125 61 75 125 61 75 125 61 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 58 73 123
++58 73 123 58 73 123 58 73 123 29 45 103 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 33 50 106 56 70 122
++56 70 122 56 70 122 56 70 122 56 70 122 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 55 70 121 54 69 120 54 69 120
++54 69 120 54 69 120 48 64 117 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++26 43 102 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 48 64 117 38 54 109 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 27 44 102 46 61 115 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 44 60 114 30 47 105 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 35 51 108
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 110 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 72 85 132 72 85 132 72 85 132 60 75 125 42 58 112
++27 44 102 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 33 50 106 51 66 119 69 83 131
++72 85 132 72 85 132 72 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 42 58 112 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 27 44 102
++59 74 124 66 80 129 66 80 129 66 80 129 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 63 77 126
++51 66 119 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++50 65 118 61 75 125 61 75 125 61 75 125 61 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 58 73 123
++58 73 123 58 73 123 46 61 115 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 45 60 114 56 70 122
++56 70 122 56 70 122 56 70 122 56 70 122 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 54 69 120 54 69 120 54 69 120
++54 69 120 54 69 120 38 54 109 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++34 50 107 51 66 119 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 48 64 117 31 48 105 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 33 50 106 46 61 115 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 44 60 114 44 60 114
++44 60 114 43 59 113 26 43 102 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 39 55 110
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++36 52 108 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 72 85 132 72 85 132 72 85 132
++68 82 130 54 69 120 37 53 109 26 43 102 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++30 47 105 46 61 115 61 75 125 72 85 132 72 85 132 72 85 132
++72 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++44 60 114 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 52 67 119
++66 80 129 66 80 129 66 80 129 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 63 77 126 63 77 126
++30 47 105 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 33 50 106
++61 75 125 61 75 125 61 75 125 61 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 58 73 123 58 73 123
++58 73 123 58 73 123 31 48 105 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 28 45 103 55 70 121 56 70 122
++56 70 122 56 70 122 56 70 122 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 54 69 120 54 69 120 54 69 120
++54 69 120 54 69 120 28 45 103 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++43 59 113 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 47 62 115 26 43 102 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 39 55 111 46 61 115 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 44 60 114 44 60 114
++44 60 114 39 55 110 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 27 44 102 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 39 55 111
++32 49 106 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 72 85 132
++72 85 132 72 85 132 72 85 132 66 80 129 54 69 120 40 56 111
++28 45 103 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 34 50 107 48 64 117 61 75 125
++72 85 132 72 85 132 72 85 132 72 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 47 62 115
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 45 60 114 66 80 129
++66 80 129 66 80 129 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 63 77 126 43 59 113
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 54 69 120
++61 75 125 61 75 125 61 75 125 61 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 58 73 123 58 73 123
++58 73 123 49 65 117 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 39 55 110 56 70 122 56 70 122
++56 70 122 56 70 122 56 70 122 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 54 69 120 54 69 120 54 69 120
++54 69 120 45 60 114 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 26 43 102
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++48 64 117 39 55 111 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 44 60 114 44 60 114
++44 60 114 33 50 106 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 30 47 105 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 39 55 111
++29 45 103 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 72 85 132 72 85 132 72 85 132 72 85 132
++71 85 132 61 75 125 51 66 119 39 55 111 30 47 105 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 27 44 102 35 51 108
++46 61 115 56 70 122 66 80 129 72 85 132 72 85 132 72 85 132
++72 85 132 72 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 46 61 115 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 39 55 111 66 80 129 66 80 129
++66 80 129 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 63 77 126 56 70 122 26 43 102
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 39 55 110 61 75 125
++61 75 125 61 75 125 61 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 58 73 123 58 73 123 58 73 123
++58 73 123 34 50 107 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 26 43 102 52 67 119 56 70 122 56 70 122
++56 70 122 56 70 122 55 70 121 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 54 69 120 54 69 120 54 69 120 54 69 120
++54 69 120 33 50 106 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 34 50 107
++51 66 119 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++48 64 117 31 48 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 30 47 105 46 61 115 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 44 60 114 44 60 114
++44 60 114 29 45 103 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 34 50 107 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 39 55 111
++26 43 102 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++68 82 130 68 82 130 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 72 85 132
++72 85 132 72 85 132 72 85 132 72 85 132 72 85 132 68 82 130
++60 75 125 54 69 120 47 62 115 40 56 111 35 51 108 31 48 105
++28 45 103 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 26 43 102 30 46 104 33 50 106 38 54 109
++44 60 114 49 65 117 56 70 122 65 79 128 71 85 132 72 85 132
++72 85 132 72 85 132 72 85 132 72 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 43 59 113 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 36 52 108 66 80 128 66 80 129 66 80 129
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 63 77 126 63 77 126 32 49 106 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 27 44 102 58 73 123 61 75 125
++61 75 125 61 75 125 61 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 58 73 123 58 73 123 58 73 123
++51 66 119 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 36 52 108 56 70 122 56 70 122 56 70 122
++56 70 122 56 70 122 55 70 121 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 54 69 120 54 69 120 54 69 120 54 69 120
++50 65 118 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 43 59 113
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++47 62 115 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 36 52 108 46 61 115 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 44 60 114 44 60 114 44 60 114
++42 58 112 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 39 55 110 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 36 52 108
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++68 82 130 68 82 130 68 82 130 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 72 85 132 72 85 132 72 85 132
++72 85 132 72 85 132 72 85 132 72 85 132 72 85 132 72 85 132
++72 85 132 72 85 132 70 84 131 69 83 131 69 83 131 69 83 131
++69 83 131 71 85 132 72 85 132 72 85 132 72 85 132 72 85 132
++72 85 132 72 85 132 72 85 132 72 85 132 72 85 132 72 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 66 80 129 42 58 112 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 32 49 106 64 78 127 66 80 129 66 80 129 66 80 129
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 63 77 126 46 61 115 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 44 60 114 61 75 125 61 75 125
++61 75 125 61 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 58 73 123 58 73 123 58 73 123 58 73 123
++34 50 107 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 49 65 117 56 70 122 56 70 122 56 70 122
++56 70 122 56 70 122 55 70 121 55 70 121 55 70 121 55 70 121
++55 70 121 54 69 120 54 69 120 54 69 120 54 69 120 54 69 120
++39 55 111 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 27 44 102 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 48 64 117
++39 55 110 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 42 58 112 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 44 60 114 44 60 114 44 60 114
++37 53 109 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 27 44 102 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 39 55 111 32 49 106
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++68 82 130 68 82 130 68 82 130 68 82 130 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 72 85 132 72 85 132 72 85 132
++72 85 132 72 85 132 72 85 132 72 85 132 72 85 132 72 85 132
++72 85 132 72 85 132 72 85 132 72 85 132 72 85 132 72 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++66 80 128 37 53 109 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++31 48 105 63 77 126 66 80 129 66 80 129 66 80 129 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 63 77 126 56 70 122 26 43 102 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 30 46 104 60 75 125 61 75 125 61 75 125
++61 75 125 61 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 58 73 123 58 73 123 58 73 123 50 65 118
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 33 50 106 56 70 122 56 70 122 56 70 122 56 70 122
++56 70 122 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++55 70 121 54 69 120 54 69 120 54 69 120 54 69 120 54 69 120
++29 45 103 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 36 52 108 51 66 119
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 48 64 117
++31 48 105 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 27 44 102 46 61 115 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 44 60 114 44 60 114 44 60 114
++31 48 105 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 31 48 105 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 39 55 111 29 45 103
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 64 78 127
++32 49 106 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 30 47 105
++63 77 126 66 80 129 66 80 129 66 80 129 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++63 77 126 63 77 126 32 49 106 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 51 66 119 61 75 125 61 75 125 61 75 125
++61 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 58 73 123 58 73 123 58 73 123 58 73 123 33 50 106
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 47 62 115 56 70 122 56 70 122 56 70 122 56 70 122
++56 70 122 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++55 70 121 54 69 120 54 69 120 54 69 120 54 69 120 45 60 114
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 46 61 115 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 47 62 115
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 34 50 107 46 61 115 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 44 60 114 44 60 114 44 60 114 44 60 114
++26 43 102 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 36 52 108 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 39 55 110 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 58 73 123 30 46 104
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 30 46 104 61 75 125
++66 80 129 66 80 129 66 80 129 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 63 77 126
++63 77 126 42 58 112 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 39 55 110 61 75 125 61 75 125 61 75 125 61 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 58 73 123 58 73 123 58 73 123 49 65 117 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++30 47 105 56 70 122 56 70 122 56 70 122 56 70 122 56 70 122
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 54 69 120 33 50 106
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 30 46 104 51 66 119 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 48 64 117 39 55 110
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 42 58 112 46 61 115 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 44 60 114 44 60 114 44 60 114 39 55 111
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 39 55 111 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 36 52 108 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++64 78 127 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 50 65 118 26 43 102 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 31 48 105 61 75 125 66 80 129
++66 80 129 66 80 129 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 63 77 126
++52 67 119 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++28 45 103 58 73 123 61 75 125 61 75 125 61 75 125 61 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++58 73 123 58 73 123 58 73 123 58 73 123 32 49 106 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++44 60 114 56 70 122 56 70 122 56 70 122 56 70 122 56 70 122
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 49 65 117 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 40 56 111 51 66 119 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 48 64 117 30 47 105
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++28 45 103 46 61 115 45 60 114 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 44 60 114 44 60 114 44 60 114 34 50 107
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 29 45 103 40 56 111 40 56 111 39 55 111
++39 55 111 39 55 111 39 55 111 39 55 111 31 48 105 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++30 46 104 58 73 123 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 66 80 129 42 58 112 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 32 49 106 63 77 126 66 80 129 66 80 129
++66 80 129 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 63 77 126 59 74 124
++29 45 103 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++48 64 117 61 75 125 61 75 125 61 75 125 61 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++58 73 123 58 73 123 58 73 123 48 64 117 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 30 46 104
++55 70 121 56 70 122 56 70 122 56 70 122 56 70 122 55 70 121
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 54 69 120
++54 69 120 54 69 120 54 69 120 54 69 120 37 53 109 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 26 43 102 49 65 117 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 46 61 115 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++34 50 107 46 61 115 45 60 114 45 60 114 45 60 114 45 60 114
++45 60 114 44 60 114 44 60 114 44 60 114 44 60 114 28 45 103
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 33 50 106 40 56 111 40 56 111 39 55 111
++39 55 111 39 55 111 39 55 111 39 55 111 28 45 103 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 26 43 102 47 62 115 66 80 129 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 71 85 132 71 85 132 71 85 132
++71 85 132 71 85 132 71 85 132 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++60 75 125 32 49 106 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 34 50 107 64 78 127 66 80 129 66 80 129 66 80 129
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 63 77 126 63 77 126 34 50 107
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 36 52 108
++61 75 125 61 75 125 61 75 125 61 75 125 61 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 58 73 123
++58 73 123 58 73 123 58 73 123 30 46 104 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 45 60 114
++56 70 122 56 70 122 56 70 122 56 70 122 56 70 122 55 70 121
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 54 69 120
++54 69 120 54 69 120 54 69 120 51 66 119 26 43 102 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 35 51 108 51 66 119 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 48 64 117 37 53 109 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++42 58 112 46 61 115 45 60 114 45 60 114 45 60 114 45 60 114
++45 60 114 44 60 114 44 60 114 44 60 114 40 56 111 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 38 54 109 40 56 111 40 56 111 39 55 111
++39 55 111 39 55 111 39 55 111 38 54 109 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 35 51 108 63 77 126 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 48 64 117
++26 43 102 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++39 55 110 65 79 128 66 80 129 66 80 129 66 80 129 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 63 77 126 63 77 126 42 58 112 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 29 45 103 58 73 123
++61 75 125 61 75 125 61 75 125 61 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 58 73 123 58 73 123
++58 73 123 58 73 123 43 59 113 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 30 47 105 56 70 122
++56 70 122 56 70 122 56 70 122 56 70 122 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 55 70 121 54 69 120 54 69 120
++54 69 120 54 69 120 54 69 120 39 55 111 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 45 60 114 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 48 64 117 28 45 103 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 28 45 103
++46 61 115 45 60 114 45 60 114 45 60 114 45 60 114 45 60 114
++45 60 114 44 60 114 44 60 114 44 60 114 33 50 106 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 27 44 102 40 56 111 40 56 111 40 56 111 39 55 111
++39 55 111 39 55 111 39 55 111 34 50 107 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 28 45 103 50 65 118
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 63 77 126 36 52 108 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 43 59 113
++66 80 128 66 80 129 66 80 129 66 80 129 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 63 77 126 50 65 118 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 51 66 119 61 75 125
++61 75 125 61 75 125 61 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 58 73 123 58 73 123
++58 73 123 56 70 122 27 44 102 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 46 61 115 56 70 122
++56 70 122 56 70 122 56 70 122 56 70 122 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 55 70 121 54 69 120 54 69 120
++54 69 120 54 69 120 52 67 119 28 45 103 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 30 46 104 51 66 119 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 48 64 117 42 58 112 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 34 50 107
++46 61 115 45 60 114 45 60 114 45 60 114 45 60 114 45 60 114
++44 60 114 44 60 114 44 60 114 44 60 114 27 44 102 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 31 48 105 40 56 111 40 56 111 39 55 111 39 55 111
++39 55 111 39 55 111 39 55 111 30 46 104 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++35 51 108 63 77 126 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 66 80 129 48 64 117 27 44 102 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 26 43 102 49 65 117 66 80 129
++66 80 129 66 80 129 66 80 129 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 63 77 126 56 70 122 27 44 102 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 40 56 111 61 75 125 61 75 125
++61 75 125 61 75 125 61 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 58 73 123 58 73 123 58 73 123
++58 73 123 38 54 109 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 30 47 105 56 70 122 56 70 122
++56 70 122 56 70 122 56 70 122 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 54 69 120 54 69 120 54 69 120
++54 69 120 54 69 120 42 58 112 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 40 56 111 51 66 119 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 48 64 117 32 49 106 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 42 58 112
++46 61 115 45 60 114 45 60 114 45 60 114 45 60 114 45 60 114
++44 60 114 44 60 114 44 60 114 39 55 111 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 36 52 108 40 56 111 40 56 111 39 55 111 39 55 111
++39 55 111 39 55 111 39 55 111 26 43 102 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 26 43 102 47 62 115 66 80 129 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++58 73 123 33 50 106 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 29 45 103 56 70 122 66 80 129 66 80 129
++66 80 129 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++63 77 126 58 73 123 30 46 104 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 31 48 105 60 75 125 61 75 125 61 75 125
++61 75 125 61 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 58 73 123 58 73 123 58 73 123
++51 66 119 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 47 62 115 56 70 122 56 70 122
++56 70 122 56 70 122 56 70 122 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 54 69 120 54 69 120 54 69 120
++54 69 120 54 69 120 30 46 104 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++27 44 102 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 47 62 115 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 28 45 103 46 61 115
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 45 60 114
++44 60 114 44 60 114 44 60 114 33 50 106 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++26 43 102 39 55 111 40 56 111 40 56 111 39 55 111 39 55 111
++39 55 111 39 55 111 36 52 108 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 30 47 105 54 69 120 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 70 84 131
++70 84 131 70 84 131 70 84 131 70 84 131 70 84 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 63 77 126 40 56 111
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 35 51 108 63 77 126 66 80 129 66 80 129 66 80 129
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 63 77 126
++61 75 125 32 49 106 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 27 44 102 55 70 121 61 75 125 61 75 125 61 75 125
++61 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 58 73 123 58 73 123 58 73 123 58 73 123
++32 49 106 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 32 49 106 56 70 122 56 70 122 56 70 122
++56 70 122 56 70 122 55 70 121 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 54 69 120 54 69 120 54 69 120 54 69 120
++54 69 120 43 59 113 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++38 54 109 51 66 119 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 48 64 117 38 54 109 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 35 51 108 46 61 115
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 44 60 114 44 60 114 27 44 102 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++30 46 104 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 39 55 111 31 48 105 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 35 51 108
++58 73 123 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 70 84 131 70 84 131 70 84 131
++70 84 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 66 80 128 46 61 115 27 44 102 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++44 60 114 66 80 128 66 80 129 66 80 129 66 80 129 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 63 77 126 63 77 126
++37 53 109 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 48 64 117 61 75 125 61 75 125 61 75 125 61 75 125
++61 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 58 73 123 58 73 123 58 73 123 58 73 123 44 60 114
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 50 65 118 56 70 122 56 70 122 56 70 122
++56 70 122 56 70 122 55 70 121 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 54 69 120 54 69 120 54 69 120 54 69 120
++54 69 120 29 45 103 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 26 43 102
++48 64 117 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 48 64 117 29 45 103 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 43 59 113 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 44 60 114 39 55 111 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++35 51 108 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 39 55 111 27 44 102 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 27 44 102
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 37 53 109 59 74 124 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++66 80 129 47 62 115 28 45 103 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 30 46 104 56 70 122
++66 80 129 66 80 129 66 80 129 66 80 129 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 63 77 126 63 77 126 40 56 111
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++40 56 111 61 75 125 61 75 125 61 75 125 61 75 125 61 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 58 73 123 58 73 123 58 73 123 54 69 120 27 44 102
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 37 53 109 56 70 122 56 70 122 56 70 122 56 70 122
++56 70 122 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++55 70 121 54 69 120 54 69 120 54 69 120 54 69 120 54 69 120
++42 58 112 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 35 51 108
++51 66 119 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++48 64 117 42 58 112 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 30 47 105 46 61 115 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 44 60 114 33 50 106 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++39 55 111 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 37 53 109 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 30 46 104
++28 45 103 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 38 54 109 58 73 123 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 66 80 128 48 64 117
++29 45 103 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 38 54 109 63 77 126 66 80 129
++66 80 129 66 80 129 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 63 77 126 63 77 126 44 60 114 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 33 50 106
++60 75 125 61 75 125 61 75 125 61 75 125 61 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++58 73 123 58 73 123 58 73 123 58 73 123 34 50 107 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++27 44 102 54 69 120 56 70 122 56 70 122 56 70 122 56 70 122
++56 70 122 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++55 70 121 54 69 120 54 69 120 54 69 120 54 69 120 54 69 120
++29 45 103 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 47 62 115
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++48 64 117 33 50 106 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 39 55 110 46 61 115 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 44 60 114 44 60 114
++44 60 114 44 60 114 27 44 102 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 30 46 104
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 32 49 106 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 32 49 106
++63 77 126 38 54 109 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 27 41 89 18 31 74 15 25 57 13 22 52 18 27 58
++30 37 63 38 45 69 32 38 61 32 38 61 32 38 61 32 38 61
++32 38 61 32 38 61 32 38 61 66 79 125 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 63 77 126 44 60 114 27 44 102 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 29 45 103 52 67 119 66 80 129 66 80 129 66 80 129
++66 80 129 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 63 77 126 63 77 126 46 61 115 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 29 45 103 58 73 123
++61 75 125 61 75 125 61 75 125 61 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 58 73 123
++58 73 123 58 73 123 58 73 123 47 62 115 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++42 58 112 56 70 122 56 70 122 56 70 122 56 70 122 56 70 122
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 54 69 120 42 58 112
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 32 49 106 51 66 119
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 48 64 117
++46 61 115 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 27 44 102 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 44 60 114 44 60 114
++44 60 114 39 55 110 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 35 51 108
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 28 45 103 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++26 43 102 35 51 108
++66 80 129 66 80 129 52 67 119 29 45 103 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 23 37 83 15 25 57 9 15 36
++4 6 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 44 53 81 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 66 80 129
++55 70 121 38 54 109 26 43 102 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++40 56 111 64 78 127 66 80 129 66 80 129 66 80 129 66 80 129
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++63 77 126 63 77 126 47 62 115 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 27 44 102 54 69 120 61 75 125
++61 75 125 61 75 125 61 75 125 61 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 58 73 123
++58 73 123 58 73 123 56 70 122 28 45 103 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 30 46 104
++55 70 121 56 70 122 56 70 122 56 70 122 56 70 122 56 70 122
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 54 69 120 28 45 103
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 44 60 114 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 48 64 117
++35 51 108 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 34 50 107 46 61 115 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 44 60 114 44 60 114
++44 60 114 31 48 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 39 55 111
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++38 54 109 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++29 45 103 35 51 108
++66 80 129 66 80 129 66 80 129 64 78 127 42 58 112 25 42 101
++25 42 101 25 42 101 9 15 36 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 44 53 81 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++69 83 131 69 83 131 69 83 131 69 83 131 69 83 131 69 83 131
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 61 75 125 46 61 115 30 46 104
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 23 37 83 13 22 52 18 27 58 27 35 61
++32 38 61 32 38 61 32 38 61 32 38 61 29 34 52 25 31 50
++25 31 50 25 31 50 25 31 50 23 28 45 40 49 78 66 80 128
++66 80 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 63 77 126
++63 77 126 48 64 117 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 50 65 118 61 75 125 61 75 125
++61 75 125 61 75 125 61 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 58 73 123 58 73 123
++58 73 123 58 73 123 35 51 108 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 47 62 115
++56 70 122 56 70 122 56 70 122 56 70 122 56 70 122 55 70 121
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 54 69 120
++54 69 120 54 69 120 54 69 120 54 69 120 42 58 112 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 30 47 105 51 66 119 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 47 62 115
++26 43 102 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 42 58 112 46 61 115 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 44 60 114 44 60 114 44 60 114
++42 58 112 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 30 46 104 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 39 55 111
++32 49 106 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++31 48 105 35 51 108
++66 80 128 66 80 129 66 80 129 66 80 129 66 80 129 58 73 123
++36 52 108 25 42 101 9 13 26 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 44 53 81 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++63 77 126 48 64 117 32 49 106 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 19 29 65 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32 38 61
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 63 77 126 63 77 126
++48 64 117 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 44 60 114 61 75 125 61 75 125 61 75 125
++61 75 125 61 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 58 73 123 58 73 123 58 73 123
++58 73 123 45 60 114 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 35 51 108 56 70 122
++56 70 122 56 70 122 56 70 122 56 70 122 56 70 122 55 70 121
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 54 69 120
++54 69 120 54 69 120 54 69 120 52 67 119 28 45 103 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 43 59 113 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 48 64 117 37 53 109
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 30 46 104 46 61 115 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 44 60 114 44 60 114 44 60 114
++35 51 108 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 35 51 108 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 39 55 111
++28 45 103 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++34 50 107 35 51 108
++66 80 128 66 80 128 66 80 129 66 80 129 66 80 129 66 80 129
++66 80 129 54 69 120 9 13 26 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 21 31 69 39 55 110 50 65 118
++63 77 126 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 66 80 129 56 70 122 44 60 114 31 48 105
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++26 43 102 42 58 112 41 51 85 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++38 45 69 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 63 77 126 63 77 126 46 61 115
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 39 55 111 61 75 125 61 75 125 61 75 125 61 75 125
++61 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 58 73 123 58 73 123 58 73 123
++54 69 120 26 43 102 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 27 44 102 54 69 120 56 70 122
++56 70 122 56 70 122 56 70 122 56 70 122 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 55 70 121 54 69 120 54 69 120
++54 69 120 54 69 120 54 69 120 38 54 109 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 30 47 105 51 66 119 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 48 64 117 28 45 103
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 38 54 109 46 61 115 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 44 60 114 44 60 114 44 60 114 44 60 114
++28 45 103 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 26 43 102 39 55 111 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 38 54 109
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 28 45 103
++35 51 108 35 51 108
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 129 66 80 129
++66 80 129 66 80 129 15 18 27 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 18 31 74 25 42 101 25 42 101
++25 42 101 31 48 105 42 58 112 52 67 119 61 75 125 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 66 80 129 56 70 122
++47 62 115 36 52 108 27 44 102 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 26 43 102 40 56 111
++61 75 125 66 80 129 44 53 81 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++23 26 38 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 63 77 126 63 77 126 44 60 114 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++36 52 108 61 75 125 61 75 125 61 75 125 61 75 125 61 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 58 73 123 58 73 123 58 73 123 58 73 123
++31 48 105 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 44 60 114 56 70 122 56 70 122
++56 70 122 56 70 122 56 70 122 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 54 69 120 54 69 120 54 69 120
++54 69 120 54 69 120 49 65 117 26 43 102 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 44 60 114 51 66 119 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 48 64 117 39 55 111 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++26 43 102 45 60 114 45 60 114 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 44 60 114 44 60 114 44 60 114 39 55 111
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 30 47 105 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 39 55 111 32 49 106
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 30 47 105
++35 51 108 35 51 108
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 129 66 80 129 12 15 26 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 18 31 74 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 28 45 103
++36 52 108 44 60 114 51 66 119 59 74 124 65 79 128 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 68 82 130 68 82 130
++68 82 130 68 82 130 68 82 130 68 82 130 66 80 129 63 77 126
++55 70 121 48 64 117 39 55 111 32 49 106 26 43 102 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 26 43 102 40 56 111 60 75 125 66 80 129
++66 80 129 66 80 129 44 53 81 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++15 18 27 65 79 128 65 79 128 65 79 128 65 79 128 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 63 77 126 63 77 126 42 58 112 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 34 50 107
++59 74 124 61 75 125 61 75 125 61 75 125 61 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 58 73 123 58 73 123 58 73 123 58 73 123 40 56 111
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 33 50 106 56 70 122 56 70 122 56 70 122
++56 70 122 56 70 122 56 70 122 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 54 69 120 54 69 120 54 69 120
++54 69 120 54 69 120 33 50 106 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 31 48 105 51 66 119 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 48 64 117 29 45 103 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++33 50 106 46 61 115 45 60 114 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 44 60 114 44 60 114 44 60 114 31 48 105
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 36 52 108 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 39 55 111 27 44 102
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 34 50 107
++35 51 108 35 51 108
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 9 12 21 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 18 31 74 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 28 45 103
++33 50 106 39 55 110 43 59 113 47 62 115 49 65 117 54 69 120
++56 70 122 56 70 122 58 73 123 59 74 124 59 74 124 59 74 124
++59 74 124 56 70 122 56 70 122 55 70 121 51 66 119 48 64 117
++44 60 114 42 58 112 36 52 108 30 47 105 26 43 102 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++27 44 102 43 59 113 61 75 125 66 80 129 66 80 129 66 80 129
++66 80 129 66 80 129 44 53 81 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++9 12 21 65 79 128 65 79 128 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++63 77 126 63 77 126 38 54 109 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 33 50 106 59 74 124
++61 75 125 61 75 125 61 75 125 61 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++58 73 123 58 73 123 58 73 123 58 73 123 49 65 117 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 26 43 102 51 66 119 56 70 122 56 70 122 56 70 122
++56 70 122 56 70 122 55 70 121 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 54 69 120 54 69 120 54 69 120 54 69 120
++54 69 120 46 61 115 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 45 60 114 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 48 64 117 42 58 112 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++42 58 112 46 61 115 45 60 114 45 60 114 45 60 114 45 60 114
++45 60 114 44 60 114 44 60 114 44 60 114 43 59 113 26 43 102
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 27 44 102 40 56 111 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 37 53 109 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 28 45 103 35 51 108
++35 51 108 35 51 108
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 7 9 15 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 18 31 74 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 30 47 105 48 64 117
++64 78 127 66 80 129 66 80 129 66 80 129 66 80 129 66 80 129
++66 80 128 66 80 128 38 47 77 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++7 9 15 65 79 128 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 63 77 126
++60 75 125 34 50 107 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 32 49 106 59 74 124 61 75 125
++61 75 125 61 75 125 61 75 125 61 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 58 73 123
++58 73 123 58 73 123 58 73 123 54 69 120 28 45 103 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 42 58 112 56 70 122 56 70 122 56 70 122 56 70 122
++56 70 122 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 54 69 120 54 69 120 54 69 120 54 69 120
++54 69 120 30 46 104 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++32 49 106 51 66 119 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 48 64 117 30 47 105 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 31 48 105
++46 61 115 45 60 114 45 60 114 45 60 114 45 60 114 45 60 114
++45 60 114 44 60 114 44 60 114 44 60 114 36 52 108 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 32 49 106 40 56 111 40 56 111 39 55 111
++39 55 111 39 55 111 39 55 111 39 55 111 31 48 105 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 30 47 105 35 51 108
++35 51 108 35 51 108
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 7 9 13 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 18 31 74 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 26 43 102 39 55 111 56 70 122 66 80 129 66 80 129
++66 80 129 66 80 129 66 80 129 66 80 129 66 80 128 66 80 128
++66 80 128 66 80 128 40 48 74 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++7 9 13 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 64 78 127 63 77 126 63 77 126 58 73 123
++30 47 105 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 30 47 105 58 73 123 61 75 125 61 75 125
++61 75 125 61 75 125 61 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 58 73 123
++58 73 123 58 73 123 58 73 123 31 48 105 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++32 49 106 56 70 122 56 70 122 56 70 122 56 70 122 56 70 122
++56 70 122 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++55 70 121 54 69 120 54 69 120 54 69 120 54 69 120 54 69 120
++42 58 112 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++46 61 115 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 48 64 117 42 58 112 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 40 56 111
++46 61 115 45 60 114 45 60 114 45 60 114 45 60 114 45 60 114
++44 60 114 44 60 114 44 60 114 44 60 114 29 45 103 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 39 55 110 40 56 111 40 56 111 39 55 111
++39 55 111 39 55 111 39 55 111 39 55 111 27 44 102 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 34 50 107 35 51 108
++35 51 108 35 51 108
++65 79 128 65 79 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 4 5 9 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 18 31 74 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 35 51 108
++49 65 117 63 77 126 66 80 129 66 80 129 66 80 129 66 80 129
++66 80 129 66 80 129 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 40 48 74 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++3 4 6 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 63 77 126 63 77 126 54 69 120 28 45 103
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 31 48 105 58 73 123 61 75 125 61 75 125 61 75 125
++61 75 125 61 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 58 73 123 58 73 123
++58 73 123 58 73 123 38 54 109 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 27 44 102
++52 67 119 56 70 122 56 70 122 56 70 122 56 70 122 56 70 122
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 54 69 120 51 66 119
++27 44 102 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 33 50 106
++51 66 119 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 48 64 117 30 47 105 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 30 46 104 46 61 115
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 45 60 114
++44 60 114 44 60 114 44 60 114 39 55 111 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 29 45 103 40 56 111 40 56 111 39 55 111 39 55 111
++39 55 111 39 55 111 39 55 111 35 51 108 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 27 44 102 35 51 108 35 51 108
++35 51 108 35 51 108
++65 79 128 65 79 128 65 79 128 65 79 128 66 80 128 66 80 128
++66 80 128 66 80 128 2 3 5 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 18 31 74 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 26 43 102 34 50 107 48 64 117 63 77 126 66 80 129
++66 80 129 66 80 129 66 80 129 66 80 129 66 80 129 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 40 48 74 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++1 2 3 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 63 77 126 63 77 126 45 60 114 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++32 49 106 58 73 123 61 75 125 61 75 125 61 75 125 61 75 125
++61 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 58 73 123 58 73 123 58 73 123
++58 73 123 45 60 114 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 45 60 114
++56 70 122 56 70 122 56 70 122 56 70 122 56 70 122 55 70 121
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 54 69 120 35 51 108
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 26 43 102 47 62 115
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++48 64 117 42 58 112 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 39 55 110 46 61 115
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 45 60 114
++44 60 114 44 60 114 44 60 114 31 48 105 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 35 51 108 40 56 111 40 56 111 39 55 111 39 55 111
++39 55 111 39 55 111 39 55 111 30 46 104 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 30 47 105 35 51 108 35 51 108
++35 51 108 35 51 108
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++66 80 128 66 80 128 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 28 40 79 34 50 107 26 43 102
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 29 45 103 40 56 111
++52 67 119 64 78 127 66 80 129 66 80 129 66 80 129 66 80 129
++66 80 129 66 80 129 66 80 129 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 40 48 74 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++63 77 126 61 75 125 37 53 109 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 9 15 36
++2 3 7 10 17 39 25 42 101 25 42 101 25 42 101 34 50 107
++59 74 124 61 75 125 61 75 125 61 75 125 61 75 125 61 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 58 73 123 58 73 123 58 73 123 58 73 123
++51 66 119 26 43 102 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 36 52 108 56 70 122
++56 70 122 56 70 122 56 70 122 56 70 122 56 70 122 55 70 121
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 54 69 120
++54 69 120 54 69 120 54 69 120 54 69 120 45 60 114 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 37 53 109 51 66 119
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++48 64 117 30 46 104 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 28 45 103 46 61 115 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 44 60 114 42 58 112 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++26 43 102 40 56 111 40 56 111 40 56 111 39 55 111 39 55 111
++39 55 111 39 55 111 39 55 110 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 34 50 107 35 51 108 35 51 108
++35 51 108 34 50 107
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 62 75 121 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 50 58 85 66 80 129 64 78 127
++55 70 121 45 60 114 36 52 108 27 44 102 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++31 48 105 40 56 111 50 65 118 60 75 125 66 80 129 66 80 129
++66 80 129 66 80 129 66 80 129 66 80 129 66 80 129 66 80 129
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 38 47 77 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 62 75 121 64 78 127 64 78 127 63 77 126 63 77 126
++56 70 122 30 47 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 4 6 13
++0 0 0 0 0 0 25 42 101 25 42 101 35 51 108 59 74 124
++61 75 125 61 75 125 61 75 125 61 75 125 61 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 58 73 123 58 73 123 58 73 123 58 73 123 54 69 120
++28 45 103 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 30 46 104 54 69 120 56 70 122
++56 70 122 56 70 122 56 70 122 56 70 122 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 55 70 121 54 69 120 54 69 120
++54 69 120 54 69 120 54 69 120 52 67 119 29 45 103 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 27 44 102 49 65 117 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 48 64 117
++42 58 112 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 37 53 109 46 61 115 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 44 60 114 33 50 106 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++31 48 105 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 39 55 111 33 50 106 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 28 45 103 35 51 108 35 51 108 35 51 108
++35 51 108 34 50 107
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 62 75 121 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 49 60 97 66 80 129 66 80 129
++66 80 129 66 80 129 66 80 129 66 80 128 59 74 124 52 67 119
++45 60 114 37 53 109 30 46 104 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++28 45 103 34 50 107 42 58 112 48 64 117 56 70 122 64 78 127
++66 80 129 66 80 129 66 80 129 66 80 129 66 80 129 66 80 129
++66 80 129 66 80 129 66 80 129 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++65 79 128 65 79 128 38 45 69 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 62 75 121 64 78 127 63 77 126 63 77 126 47 62 115
++26 43 102 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 11 15 31
++0 0 0 0 0 0 25 42 101 38 54 109 60 75 125 61 75 125
++61 75 125 61 75 125 61 75 125 61 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++58 73 123 58 73 123 58 73 123 58 73 123 56 70 122 30 46 104
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 48 64 117 56 70 122 56 70 122
++56 70 122 56 70 122 56 70 122 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 55 70 121 54 69 120 54 69 120
++54 69 120 54 69 120 54 69 120 37 53 109 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 40 56 111 51 66 119 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 48 64 117
++29 45 103 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 26 43 102 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 44 60 114 44 60 114
++44 60 114 42 58 112 26 43 102 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++38 54 109 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 39 55 111 28 45 103 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 31 48 105 35 51 108 35 51 108 35 51 108
++35 51 108 34 50 107
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 59 72 115 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 49 60 97 66 80 129 66 80 129
++66 80 129 66 80 129 66 80 129 66 80 129 66 80 129 66 80 129
++66 80 129 66 80 129 66 80 129 66 80 128 61 75 125 56 70 122
++50 65 118 46 61 115 42 58 112 39 55 111 36 52 108 33 50 106
++30 47 105 30 47 105 29 45 103 28 45 103 28 45 103 28 45 103
++28 45 103 30 46 104 30 47 105 31 48 105 35 51 108 38 54 109
++42 58 112 44 60 114 48 64 117 54 69 120 58 73 123 64 78 127
++66 80 129 66 80 129 66 80 129 66 80 129 66 80 129 66 80 129
++66 80 129 66 80 129 66 80 129 66 80 129 66 80 129 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 32 41 72 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 59 72 115 63 77 126 59 74 124 36 52 108 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 13 22 52
++4 6 13 4 6 13 4 6 13 4 6 13 4 6 13 2 3 7
++0 0 0 0 0 0 42 56 104 61 75 125 61 75 125 61 75 125
++61 75 125 61 75 125 61 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++58 73 123 58 73 123 58 73 123 58 73 123 34 50 107 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 42 58 112 56 70 122 56 70 122 56 70 122
++56 70 122 56 70 122 56 70 122 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 55 70 121 54 69 120 54 69 120 54 69 120
++54 69 120 54 69 120 48 64 117 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 30 46 104 51 66 119 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 48 64 117 40 56 111
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 35 51 108 46 61 115 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 44 60 114 44 60 114
++44 60 114 35 51 108 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 29 45 103
++40 56 111 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 37 53 109 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 34 50 107 35 51 108 35 51 108 35 51 108
++34 50 107 32 49 106
++64 78 127 64 78 127 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 60 71 109 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 49 60 97 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 129 66 80 129 66 80 129 66 80 129
++66 80 129 66 80 129 66 80 129 66 80 129 66 80 129 66 80 129
++66 80 129 66 80 129 66 80 129 66 80 129 66 80 129 66 80 129
++66 80 129 66 80 129 66 80 129 66 80 129 66 80 129 66 80 129
++66 80 129 66 80 129 66 80 129 66 80 129 66 80 129 66 80 129
++66 80 129 66 80 129 66 80 129 66 80 129 66 80 129 66 80 129
++66 80 129 66 80 129 66 80 129 66 80 129 66 80 129 66 80 129
++66 80 129 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 32 41 72 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 60 71 109 51 66 119 28 45 103 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 13 20 42
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 53 67 117 61 75 125 61 75 125 61 75 125
++61 75 125 61 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 58 73 123
++58 73 123 58 73 123 58 73 123 37 53 109 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 35 51 108 56 70 122 56 70 122 56 70 122 56 70 122
++56 70 122 56 70 122 55 70 121 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 54 69 120 54 69 120 54 69 120 54 69 120
++54 69 120 54 69 120 30 46 104 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 44 60 114 51 66 119 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 48 64 117 29 45 103
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 26 43 102 44 60 114 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 44 60 114 44 60 114 44 60 114
++43 59 113 27 44 102 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 35 51 108
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 31 48 105 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 28 45 103 35 51 108 35 51 108 35 51 108 35 51 108
++34 50 107 30 46 104
++64 78 127 64 78 127 64 78 127 64 78 127 65 79 128 65 79 128
++65 79 128 53 64 102 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 49 60 97 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 129 66 80 129 66 80 129 66 80 129
++66 80 129 66 80 129 66 80 129 66 80 129 66 80 129 66 80 129
++66 80 129 66 80 129 66 80 129 66 80 129 66 80 129 66 80 129
++66 80 129 66 80 129 66 80 129 66 80 129 66 80 129 66 80 129
++66 80 129 66 80 129 66 80 129 66 80 129 66 80 129 66 80 129
++66 80 129 66 80 129 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 32 41 72 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 29 45 103 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 13 22 52
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 49 62 109 61 75 125 61 75 125 61 75 125
++61 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 58 73 123 58 73 123
++58 73 123 58 73 123 40 56 111 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++30 47 105 54 69 120 56 70 122 56 70 122 56 70 122 56 70 122
++56 70 122 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++55 70 121 55 70 121 54 69 120 54 69 120 54 69 120 54 69 120
++54 69 120 39 55 110 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 33 50 106 51 66 119 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 48 64 117 39 55 110 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 35 51 108 46 61 115 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 44 60 114 44 60 114 44 60 114
++37 53 109 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 26 43 102 39 55 111
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 36 52 108
++19 29 65 13 22 52 10 17 39 11 15 31 9 13 26 13 20 42
++18 31 74 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 31 48 105 35 51 108 35 51 108 35 51 108 35 51 108
++34 50 107 26 43 102
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++65 79 128 49 61 100 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 49 60 97 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 49 60 97 62 75 121 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 129
++66 80 129 66 80 129 66 80 129 66 80 129 66 80 129 66 80 129
++66 80 129 66 80 129 66 80 129 66 80 129 66 80 129 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 62 75 121
++60 71 109 53 64 102 59 72 115 66 79 125 66 80 128 66 80 128
++66 80 128 66 80 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 32 41 72 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 23 37 83 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 13 22 52
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 53 64 102 61 75 125 61 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 59 74 124 58 73 123 58 73 123 58 73 123
++58 73 123 44 60 114 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 27 44 102
++51 66 119 56 70 122 56 70 122 56 70 122 56 70 122 56 70 122
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++55 70 121 54 69 120 54 69 120 54 69 120 54 69 120 54 69 120
++47 62 115 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++26 43 102 48 64 117 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 47 62 115 27 44 102 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++26 43 102 44 60 114 45 60 114 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 44 60 114 44 60 114 44 60 114 44 60 114
++28 45 103 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 31 48 105 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 31 48 105
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 2 3 7 23 37 83 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++26 43 102 35 51 108 35 51 108 35 51 108 35 51 108 34 50 107
++32 49 106 25 42 101
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 49 60 97 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 49 60 97 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 40 49 78 32 38 61 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 29 34 52 12 15 26 7 9 13 1 2 3 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 5 7 13 9 12 21
++49 60 97 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 64 78 127 32 41 72 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 23 37 83 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 13 22 52
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 49 61 100 61 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 60 75 125
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 59 74 124 58 73 123 58 73 123 58 73 123 58 73 123
++46 61 115 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++13 20 42 9 13 26 9 13 26 18 31 74 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 46 61 115
++56 70 122 56 70 122 56 70 122 56 70 122 56 70 122 56 70 122
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 54 69 120 52 67 119
++29 45 103 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++39 55 111 51 66 119 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 48 64 117 35 51 108 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++35 51 108 46 61 115 45 60 114 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 43 59 113 21 28 52 19 24 44 13 20 42
++10 17 39 10 17 39 10 17 39 13 20 42 13 20 42 13 20 42
++13 20 42 13 20 42 13 22 52 19 29 65 23 37 83 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 39 55 110 40 56 111
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 31 48 105
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 9 12 21 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++30 46 104 35 51 108 35 51 108 35 51 108 35 51 108 34 50 107
++29 45 103 25 42 101
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 41 54 95 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 49 60 97 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 40 48 74 25 31 50 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 15 18 27 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++23 28 45 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 64 78 127
++64 78 127 64 78 127 32 38 61 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 23 37 83 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 15 25 57
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 27 35 61 36 45 78 36 45 78 36 45 78
++36 45 78 36 45 78 36 45 78 36 45 78 41 51 85 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++59 74 124 58 73 123 58 73 123 58 73 123 58 73 123 47 62 115
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++9 13 26 0 0 0 0 0 0 18 31 74 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 39 55 111 56 70 122
++56 70 122 56 70 122 56 70 122 56 70 122 56 70 122 55 70 121
++55 70 121 55 70 121 55 70 121 55 70 121 55 70 121 55 70 121
++54 69 120 54 69 120 54 69 120 54 69 120 54 69 120 35 51 108
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 30 47 105
++51 66 119 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 48 64 117 45 60 114 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 26 43 102
++44 60 114 45 60 114 45 60 114 45 60 114 45 60 114 45 60 114
++45 60 114 44 60 114 41 54 95 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3
++9 13 26 13 22 52 18 31 74 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 30 46 104 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 39 55 111 29 45 103
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 3 6 11 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++33 50 106 35 51 108 35 51 108 35 51 108 35 51 108 34 50 107
++26 43 102 25 42 101
++64 78 127 64 78 127 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 41 51 85 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 49 60 97 65 79 128 65 79 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 38 45 69 23 28 45 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 15 18 27 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++23 28 45 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 64 78 127 64 78 127 64 78 127
++64 78 127 64 78 127 32 38 61 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 18 31 74 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 15 25 57
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 9 12 21 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 59 74 124
++58 73 123 58 73 123 58 73 123 58 73 123 48 64 117 26 43 102
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++9 13 26 0 0 0 0 0 0 9 15 36 25 42 101 25 42 101
++25 42 101 19 29 65 9 13 26 11 17 38 18 23 42 18 23 42
++18 23 42 19 24 44 21 28 52 21 28 52 23 28 45 23 28 45
++26 32 53 26 32 53 26 32 53 41 51 85 55 70 121 54 69 120
++54 69 120 54 69 120 54 69 120 54 69 120 43 59 113 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 47 62 115
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 48 64 117 31 48 105 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 36 52 108
++46 61 115 45 60 114 45 60 114 45 60 114 45 60 114 45 60 114
++45 60 114 44 60 114 41 54 95 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 5 7 14 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 37 53 109 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 39 55 111 27 41 89
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 3 6 11 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 27 44 102
++35 51 108 35 51 108 35 51 108 35 51 108 34 50 107 30 47 105
++25 42 101 25 42 101
++63 77 126 63 77 126 64 78 127 64 78 127 64 78 127 64 78 127
++64 78 127 41 51 85 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 49 60 97 65 79 128 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 66 80 128
++66 80 128 32 38 61 16 21 36 66 80 128 66 80 128 59 72 115
++41 51 85 41 51 85 50 58 85 49 60 97 49 60 97 49 60 97
++49 60 97 49 60 97 49 60 97 53 64 102 53 64 102 53 64 102
++53 64 102 53 64 102 53 64 102 60 71 109 62 75 121 66 80 128
++66 80 128 66 80 128 66 80 128 66 80 128 66 80 128 66 80 128
++66 80 128 66 80 128 62 75 121 49 60 97 50 58 85 60 71 109
++63 77 126 15 18 27 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++23 28 45 62 75 121 32 38 61 32 38 61 32 38 61 32 38 56
++25 31 50 25 31 50 25 31 50 19 24 44 19 24 44 49 60 97
++64 78 127 26 32 53 9 12 21 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 18 31 74 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 23 33 67
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 9 12 21 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 59 74 124 58 73 123
++58 73 123 58 73 123 58 73 123 49 65 117 26 43 102 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++9 13 26 0 0 0 0 0 0 10 17 39 25 42 101 25 42 101
++15 25 57 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 26 32 53 54 69 120 54 69 120
++54 69 120 54 69 120 54 69 120 50 65 118 27 44 102 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 38 54 109 51 66 119
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++48 64 117 42 58 112 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 27 44 102 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 45 60 114
++44 60 114 44 60 114 41 54 95 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 3 6 11 25 42 101 25 42 101
++25 42 101 25 42 101 29 45 103 40 56 111 40 56 111 40 56 111
++39 55 111 39 55 111 39 55 111 39 55 111 38 54 109 23 37 83
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 3 6 11 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 30 47 105
++35 51 108 35 51 108 35 51 108 35 51 108 34 50 107 28 45 103
++25 42 101 25 42 101
++45 60 114 61 75 125 63 77 126 63 77 126 64 78 127 64 78 127
++64 78 127 38 47 77 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 53 64 102 65 79 128 65 79 128
++65 79 128 59 72 115 49 61 100 63 77 126 65 79 128 65 79 128
++65 79 128 32 38 61 12 15 26 65 79 128 63 77 126 12 15 26
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 32 38 61 66 80 128
++66 80 128 66 80 128 66 80 128 65 79 128 65 79 128 65 79 128
++65 79 128 49 60 97 0 0 1 0 0 0 0 0 0 0 0 0
++1 1 2 1 1 2 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++23 28 45 53 64 102 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41 51 85
++64 78 127 7 9 15 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 18 31 74 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 27 44 102 47 62 115 40 49 78
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 9 12 21 59 74 124
++59 74 124 59 74 124 59 74 124 59 74 124 58 73 123 58 73 123
++58 73 123 58 73 123 48 64 117 26 43 102 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++13 20 42 0 0 0 0 0 0 19 29 65 25 42 101 19 29 65
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 21 28 52 54 69 120 54 69 120
++54 69 120 54 69 120 54 69 120 31 48 105 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 29 45 103 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++48 64 117 29 45 103 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 36 52 108 46 61 115
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 45 60 114
++44 60 114 44 60 114 41 54 95 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 2 3 7 25 42 101 25 42 101
++25 42 101 25 42 101 36 52 108 40 56 111 40 56 111 39 55 111
++39 55 111 39 55 111 39 55 111 39 55 111 32 49 106 23 37 83
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 3 6 11 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 27 41 89 27 41 89
++28 40 79 29 40 76 35 51 108 34 50 107 33 50 106 25 42 101
++25 42 101 25 42 101
++25 42 101 28 45 103 46 61 115 61 75 125 63 77 126 63 77 126
++64 78 127 39 46 71 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 19 24 44 25 31 50 25 31 50
++19 23 37 1 2 3 0 0 0 1 2 3 15 18 27 32 41 72
++65 79 128 29 34 52 7 9 13 65 79 128 29 34 52 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 29 34 52 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 50 58 85 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++23 28 45 53 64 102 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41 51 85
++64 78 127 7 9 15 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 18 31 74 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 32 49 106 56 70 122 61 75 125 41 51 85
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 9 12 21 59 74 124
++59 74 124 59 74 124 59 74 124 58 73 123 58 73 123 58 73 123
++58 73 123 48 64 117 26 43 102 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++18 31 74 0 0 0 0 0 0 18 31 74 25 42 101 13 22 52
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 21 28 52 54 69 120 54 69 120
++54 69 120 54 69 120 38 54 109 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 45 60 114 51 66 119 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 48 64 117
++38 54 109 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 27 44 102 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 44 60 114 41 54 95 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 2 3 7 25 42 101 25 42 101
++25 42 101 27 44 102 40 56 111 40 56 111 40 56 111 39 55 111
++39 55 111 39 55 111 39 55 111 39 55 110 26 43 102 23 37 83
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 3 6 11 25 42 101 25 42 101 25 42 101
++19 29 65 13 20 42 10 17 39 9 15 36 9 13 26 8 11 18
++5 7 14 2 3 7 1 1 2 0 0 0 0 0 0 0 0 0
++0 0 0 4 6 13 35 51 108 34 50 107 30 46 104 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 28 45 103 44 60 114 59 74 124
++63 77 126 32 41 72 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 14 26
++65 79 128 26 32 53 1 1 2 41 51 85 0 0 1 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 26 32 53 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 50 58 85 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++23 28 45 53 64 102 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41 51 85
++40 49 78 1 2 3 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 18 31 74 25 42 101 25 42 101 25 42 101 25 42 101
++26 43 102 43 59 113 60 75 125 61 75 125 61 75 125 41 51 85
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 9 12 21 59 74 124
++59 74 124 58 73 123 58 73 123 58 73 123 58 73 123 58 73 123
++47 62 115 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 1 1 2 0 0 0 19 29 65 25 42 101 10 17 39
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 19 24 44 54 69 120 54 69 120
++54 69 120 44 60 114 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 35 51 108 51 66 119 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 48 64 117 46 61 115
++26 43 102 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 37 53 109 46 61 115 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 45 60 114 44 60 114
++44 60 114 44 60 114 29 45 103 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 1 1 2 25 42 101 25 42 101
++25 42 101 34 50 107 40 56 111 40 56 111 39 55 111 39 55 111
++39 55 111 39 55 111 39 55 111 34 50 107 25 42 101 23 37 83
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 3 6 11 25 42 101 25 42 101 25 42 101
++1 1 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 4 6 13 35 51 108 34 50 107 26 43 102 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 26 43 102
++40 56 111 30 37 63 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 14 26
++65 79 128 25 31 50 0 0 0 1 2 3 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 23 28 45 65 79 128
++65 79 128 65 79 128 65 79 128 65 79 128 65 79 128 65 79 128
++65 79 128 50 58 85 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++23 28 45 49 60 97 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 4 6
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 18 31 74 25 42 101 25 42 101 25 42 101 33 50 106
++56 70 122 61 75 125 61 75 125 61 75 125 61 75 125 49 60 97
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 9 12 21 59 74 124
++58 73 123 58 73 123 58 73 123 58 73 123 58 73 123 45 60 114
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 5 7 14 0 0 0 15 25 57 25 42 101 16 21 36
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 18 23 42 54 69 120 54 69 120
++49 65 117 26 43 102 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 29 45 103 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 50 65 118 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 48 64 117 32 49 106
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 28 45 103 46 61 115 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 44 60 114 44 60 114
++44 60 114 44 60 114 27 41 89 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 25 42 101 25 42 101
++26 43 102 39 55 111 40 56 111 40 56 111 39 55 111 39 55 111
++39 55 111 39 55 111 39 55 111 28 45 103 25 42 101 23 37 83
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 3 6 11 25 42 101 25 42 101 25 42 101
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 4 6 13 34 50 107 31 48 105 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 13 22 52 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 14 26
++65 79 128 23 28 45 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 23 26 38 65 79 128
++65 79 128 64 78 127 59 72 115 53 64 102 41 54 95 38 47 77
++30 37 63 19 23 37 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++23 28 45 49 60 97 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 19 29 65 25 42 101 27 44 102 46 61 115 61 75 125
++61 75 125 61 75 125 61 75 125 61 75 125 61 75 125 49 60 97
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 9 12 21 58 73 123
++58 73 123 58 73 123 58 73 123 58 73 123 42 58 112 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 13 22 52
++13 22 52 13 22 52 13 22 52 13 22 52 13 22 52 13 22 52
++13 22 52 5 7 14 0 0 0 13 20 42 44 60 114 16 21 36
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 8 11 18 41 51 85 52 67 119
++30 46 104 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 46 61 115 51 66 119 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 50 65 118 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 48 64 117 40 56 111 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 39 55 111 46 61 115 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 45 60 114 44 60 114 44 60 114
++44 60 114 38 54 109 23 37 83 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 25 42 101 25 42 101
++32 49 106 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 39 55 111 35 51 108 25 42 101 25 42 101 23 37 83
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 3 6 11 25 42 101 25 42 101 25 42 101
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 4 6 13 34 50 107 28 45 103 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 10 17 39 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 12 21
++64 78 127 23 26 38 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 4 5 9 12 15 26
++7 9 13 1 1 2 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++23 28 45 49 60 97 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 19 29 65 38 54 109 58 73 123 61 75 125 61 75 125
++61 75 125 61 75 125 61 75 125 61 75 125 60 75 125 49 61 100
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 9 12 21 58 73 123
++58 73 123 58 73 123 58 73 123 39 55 110 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 18 23 42 56 70 122 15 18 27
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 17 38
++23 37 83 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++39 55 110 51 66 119 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 49 65 117 47 62 115 27 44 102 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 30 47 105 46 61 115 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 44 60 114 44 60 114 44 60 114
++44 60 114 28 45 103 23 37 83 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 25 42 101 26 43 102
++39 55 111 40 56 111 40 56 111 39 55 111 39 55 111 39 55 111
++39 55 111 39 55 111 29 45 103 25 42 101 25 42 101 23 37 83
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 3 6 11 25 42 101 25 42 101 25 42 101
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 4 6 13 33 50 106 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 11 17 38 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 12 21
++64 78 127 19 23 37 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++23 28 45 41 54 95 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 29 39 72 61 75 125 61 75 125 61 75 125 61 75 125
++61 75 125 61 75 125 61 75 125 60 75 125 60 75 125 53 64 102
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 2 3 3 16 21 36
++27 35 61 41 54 95 35 51 108 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 27 41 89 10 17 39 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 16 21 36 56 70 122 12 15 26
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 13 22 52 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 31 48 105
++51 66 119 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 50 65 118 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 49 65 117 48 64 117 34 50 107 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 42 58 112 46 61 115 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 45 60 114 44 60 114 44 60 114 44 60 114
++37 53 109 25 42 101 23 37 83 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 13 20 42 29 45 103
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 36 52 108 25 42 101 25 42 101 25 42 101 23 37 83
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 3 6 11 25 42 101 25 42 101 25 42 101
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 3 5 9 15 25 57 9 15 36 5 7 14 1 1 2
++19 29 65 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 9 15 36 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 12 21
++64 78 127 16 21 36 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++23 28 45 41 51 85 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 32 41 72 61 75 125 61 75 125 61 75 125 61 75 125
++61 75 125 60 75 125 60 75 125 60 75 125 60 75 125 49 62 109
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 13 20 42 25 42 101 18 31 74 2 3 7
++2 3 7 2 3 7 2 3 7 0 0 1 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 12 15 26 56 70 122 9 12 21
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 11 15 31 15 25 57 19 29 65 18 31 74 23 37 83
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 27 44 102 48 64 117
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++50 65 118 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 48 64 117 42 58 112 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++34 50 107 46 61 115 45 60 114 45 60 114 45 60 114 45 60 114
++45 60 114 45 60 114 44 60 114 44 60 114 44 60 114 43 59 113
++28 45 103 25 42 101 23 37 83 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 15 31
++40 56 111 40 56 111 39 55 111 39 55 111 39 55 111 39 55 111
++39 55 111 30 46 104 25 42 101 25 42 101 25 42 101 23 37 83
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 3 6 11 25 42 101 25 42 101 25 42 101
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++19 29 65 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 9 13 26 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 12 21
++64 78 127 15 18 27 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++18 23 42 29 39 72 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 30 37 63 61 75 125 61 75 125 61 75 125 61 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 53 67 117
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 3 5 9 25 42 101 10 17 39 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 7 9 15 56 70 122 8 10 17
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++5 7 14 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 42 56 104 49 62 109
++50 65 118 50 65 118 50 65 118 50 65 118 50 65 118 50 65 118
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++49 65 117 48 64 117 28 45 103 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 27 44 102
++44 60 114 46 61 115 45 60 114 45 60 114 28 40 79 45 60 114
++45 60 114 45 60 114 44 60 114 44 60 114 44 60 114 35 51 108
++25 42 101 25 42 101 23 37 83 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 13 26
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 39 55 111
++37 53 109 25 42 101 25 42 101 25 42 101 25 42 101 23 37 83
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 3 6 11 25 42 101 25 42 101 25 42 101
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++19 29 65 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 9 13 26 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 12 21
++64 78 127 15 18 27 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++9 15 36 19 29 65 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 30 37 63 61 75 125 61 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 55 70 121
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 23 37 83 5 7 14 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 2 3 5 56 70 122 7 9 13
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 15 25 57 25 42 101 25 42 101 25 42 101 23 37 83
++10 17 39 9 13 26 3 5 9 1 1 1 0 0 0 0 0 0
++1 1 2 5 7 13 9 12 21 11 15 31 19 24 44 50 65 118
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 49 65 117
++48 64 117 36 52 108 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 37 53 109
++46 61 115 45 60 114 45 60 114 29 40 76 19 24 44 45 60 114
++45 60 114 44 60 114 44 60 114 44 60 114 42 58 112 26 43 102
++25 42 101 25 42 101 23 37 83 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 13 26
++40 56 111 39 55 111 39 55 111 39 55 111 39 55 111 39 55 111
++30 47 105 25 42 101 25 42 101 25 42 101 25 42 101 23 37 83
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 3 6 11 25 42 101 25 42 101 25 42 101
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++19 29 65 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 9 12 21 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 12 21
++63 77 126 9 12 21 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++9 15 36 19 29 65 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 27 35 61 60 75 125 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 59 74 124
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 18 31 74 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 53 67 117 4 5 9
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 13 20 42 25 42 101 25 42 101 25 42 101 18 31 74
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 3 4 6 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 48 64 117
++43 59 113 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 29 45 103 46 61 115
++45 60 114 45 60 114 45 60 114 27 35 61 19 24 44 45 60 114
++44 60 114 44 60 114 44 60 114 44 60 114 32 49 106 25 42 101
++25 42 101 25 42 101 27 41 89 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 13 26
++39 55 111 39 55 111 39 55 111 39 55 111 39 55 111 38 54 109
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 23 37 83
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 3 6 11 25 42 101 25 42 101 25 42 101
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++9 12 21 9 13 26
++32 49 106 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 5 7 14 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 12 21
++63 77 126 9 12 21 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++9 15 36 15 25 57 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 12 15 26 49 62 109 60 75 125 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 60 75 125 60 75 125 59 74 124
++1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 23 37 83 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 36 45 78 3 4 6
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 9 15 36 25 42 101 25 42 101 25 42 101 19 29 65
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 3 4 6 49 65 117
++49 65 117 49 65 117 49 65 117 49 65 117 49 65 117 47 62 115
++28 45 103 25 42 101 11 15 31 2 3 7 3 6 11 5 7 14
++13 22 52 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 40 56 111 46 61 115
++45 60 114 45 60 114 45 60 114 27 35 61 17 22 38 45 60 114
++44 60 114 44 60 114 44 60 114 40 56 111 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 13 26
++39 55 111 39 55 111 39 55 111 39 55 111 39 55 111 30 47 105
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 23 37 83
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 3 5 9 25 42 101 25 42 101 25 42 101
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++61 75 125 52 67 119 36 52 108 25 42 101 25 42 101 25 42 101
++25 42 101 4 6 13 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 7 14
++26 43 102 4 6 13 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++9 15 36 15 25 57 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 2 3 5 32 41 72 60 75 125 60 75 125
++60 75 125 60 75 125 60 75 125 59 74 124 59 74 124 59 74 124
++3 4 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 27 41 89 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 28 36 67 3 4 6
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 9 12 21 25 42 101 25 42 101 25 42 101 19 29 65
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 3 4 6 49 65 117
++48 64 117 42 56 104 41 54 95 48 64 117 48 64 117 33 50 106
++25 42 101 25 42 101 9 13 26 0 0 0 0 0 0 0 0 0
++13 20 42 25 42 101 23 37 83 18 31 74 18 31 74 18 31 74
++18 31 74 18 31 74 18 31 74 18 31 74 18 31 74 18 31 74
++18 31 74 18 31 74 18 31 74 23 37 83 36 45 78 36 45 78
++42 56 104 45 60 114 45 60 114 21 28 52 14 19 34 44 60 114
++44 60 114 44 60 114 44 60 114 30 46 104 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 13 26
++39 55 111 39 55 111 39 55 111 39 55 111 38 54 109 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 23 37 83
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 2 3 7 25 42 101 25 42 101 25 42 101
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++61 75 125 61 75 125 61 75 125 56 70 122 39 55 111 27 44 102
++25 42 101 3 6 11 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 7 14
++25 42 101 3 6 11 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++9 15 36 15 25 57 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 5 7 13 49 61 100 49 61 100
++49 61 100 49 61 100 49 62 109 55 70 121 49 60 97 49 61 100
++5 7 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 25 42 101 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 12 15 26 55 70 121 3 4 6
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 3 6 11 25 42 101 25 42 101 25 42 101 19 29 65
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 5 7 14
++1 1 1 0 0 0 0 0 0 4 5 9 29 40 76 25 42 101
++25 42 101 25 42 101 5 7 14 0 0 0 0 0 0 0 0 0
++13 22 52 13 22 52 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++8 11 18 42 58 112 45 60 114 18 23 42 14 19 34 44 60 114
++44 60 114 44 60 114 38 54 109 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 13 26
++39 55 111 39 55 111 39 55 111 39 55 111 30 47 105 25 42 101
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 23 37 83
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 2 3 7 25 42 101 25 42 101 25 42 101
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++61 75 125 61 75 125 61 75 125 61 75 125 61 75 125 26 32 53
++7 9 15 1 1 2 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 7 14
++25 42 101 2 3 7 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++9 15 36 13 22 52 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 7 9 13 41 54 95 0 0 0 1 2 3
++5 7 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 1 2 3 25 42 101 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 19 24 44 55 70 121 3 4 6
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 1 1 2 25 42 101 25 42 101 25 42 101 21 31 69
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 13 22 52 25 42 101
++27 41 89 9 12 21 0 0 0 0 0 0 0 0 0 0 0 0
++15 25 57 13 22 52 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 18 23 42 45 60 114 14 19 34 10 14 26 44 60 114
++44 60 114 43 59 113 27 44 102 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 13 26
++39 55 111 39 55 111 39 55 111 33 50 106 23 37 83 23 37 83
++23 37 83 23 37 83 23 37 83 23 37 83 23 37 83 18 31 74
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 2 3 7 25 42 101 25 42 101 25 42 101
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++61 75 125 61 75 125 61 75 125 61 75 125 61 75 125 23 28 45
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 7 14
++25 42 101 2 3 7 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++9 15 36 13 22 52 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 30 37 63 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 13 20 42 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 9 12 21 30 37 63 1 2 3
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 27 41 89 25 42 101 28 45 103 28 36 67
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 13 22 52 23 37 83
++5 7 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++19 29 65 13 22 52 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 28 36 67 8 11 18 9 12 21 44 60 114
++44 60 114 35 51 108 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 13 26
++39 55 111 39 55 111 39 55 111 19 29 65 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 2 3 7 25 42 101 25 42 101 25 42 101
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++60 75 125 58 73 123 12 15 26 12 15 26 12 15 26 4 5 9
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 7 14
++25 42 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++9 15 36 13 22 52 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 2 3 5 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 23 37 83 26 43 102 46 61 115 29 39 72
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 13 22 52 10 17 39
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++18 31 74 13 22 52 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 1 1 3 1 1 3 8 10 17 44 60 114
++42 58 112 26 43 102 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 13 26
++39 55 111 39 55 111 37 53 109 15 25 57 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 1 1 3 25 42 101 25 42 101 25 42 101
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++60 75 125 53 67 117 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 7 14
++25 42 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++9 15 36 13 22 52 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 19 29 65 42 58 112 51 66 119 28 36 67
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 11 15 31 3 6 11
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++27 41 89 13 22 52 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 4 5 9 44 60 114
++31 48 105 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 13 26
++39 55 111 39 55 111 30 46 104 15 25 57 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 25 42 101 25 42 101 25 42 101
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++60 75 125 49 61 100 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 7 14
++25 42 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++9 15 36 13 22 52 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 5 7 14 18 23 42 41 54 95 28 36 67
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++9 13 26 4 6 13 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 1 1 2 38 54 109
++25 42 101 25 42 101 25 42 101 25 42 101 25 42 101 25 42 101
++25 42 101 25 42 101 25 42 101 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 13 26
++39 55 111 37 53 109 25 42 101 15 25 57 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 25 42 101 25 42 101 25 42 101
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++60 75 125 41 54 95 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 7 14
++25 42 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++18 23 42 25 31 50 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 29 40 76 27 35 61
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 29 65
++19 29 65 25 42 101 27 41 89 19 29 65 23 37 83 25 42 101
++25 42 101 25 42 101 25 42 101 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 13 26
++39 55 111 29 45 103 25 42 101 15 25 57 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 25 42 101 25 42 101 25 42 101
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++60 75 125 41 51 85 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 7 14
++27 41 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++23 28 45 25 31 50 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 32 41 72 27 35 61
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 8 10 17 0 0 1 0 0 0 0 0 0 5 7 14
++9 15 36 9 15 36 11 15 31 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 13 26
++36 52 108 25 42 101 25 42 101 15 25 57 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 25 42 101 25 42 101 25 42 101
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++60 75 125 40 49 78 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 7 14
++23 37 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++23 28 45 25 31 50 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 28 36 67 27 35 61
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 13 26
++28 45 103 25 42 101 25 42 101 15 25 57 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 23 37 83 18 31 74 10 17 39
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++59 74 124 36 45 78 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 12 21
++49 62 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++23 28 45 23 28 45 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 27 35 61 27 35 61
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 13 26
++25 42 101 25 42 101 25 42 101 15 25 57 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++59 74 124 32 41 72 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 6 11
++53 64 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++1 2 3 1 2 3 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 27 35 61 26 32 53
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 13 26
++25 42 101 25 42 101 25 42 101 15 25 57 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++41 54 95 30 37 63 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++49 61 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 3 4 6 3 4 6
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 13 26
++25 42 101 25 42 101 25 42 101 15 25 57 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++2 3 5 17 22 38 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++41 51 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 6 13
++13 22 52 13 22 52 13 22 52 11 15 31 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++27 35 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0
+--- a/include/linux/linux_logo.h
++++ b/include/linux/linux_logo.h
+@@ -47,6 +47,7 @@ extern const struct linux_logo logo_supe
+ extern const struct linux_logo logo_superh_clut224;
+ extern const struct linux_logo logo_m32r_clut224;
+ extern const struct linux_logo logo_spe_clut224;
++extern const struct linux_logo logo_openwrt_clut224;
+
+ extern const struct linux_logo *fb_find_logo(int depth);
+ #ifdef CONFIG_FB_LOGO_EXTRA
diff --git a/recipes/linux/linux-2.6.31/ben-nanonote/defconfig b/recipes/linux/linux-2.6.31/ben-nanonote/defconfig
new file mode 100644
index 0000000000..917b10fe2a
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/ben-nanonote/defconfig
@@ -0,0 +1,1283 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.31
+# Wed Nov 18 21:33:12 2009
+#
+CONFIG_MIPS=y
+
+#
+# Machine selection
+#
+# CONFIG_MACH_ALCHEMY is not set
+# CONFIG_AR7 is not set
+# CONFIG_BASLER_EXCITE is not set
+# CONFIG_BCM47XX is not set
+# CONFIG_MIPS_COBALT is not set
+# CONFIG_MACH_DECSTATION is not set
+# CONFIG_MACH_JAZZ is not set
+CONFIG_MACH_JZ=y
+# CONFIG_LASAT is not set
+# CONFIG_LEMOTE_FULONG is not set
+# CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SIM is not set
+# CONFIG_NEC_MARKEINS is not set
+# CONFIG_MACH_VR41XX is not set
+# CONFIG_NXP_STB220 is not set
+# CONFIG_NXP_STB225 is not set
+# CONFIG_PNX8550_JBS is not set
+# CONFIG_PNX8550_STB810 is not set
+# CONFIG_PMC_MSP is not set
+# CONFIG_PMC_YOSEMITE is not set
+# CONFIG_SGI_IP22 is not set
+# CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP28 is not set
+# CONFIG_SGI_IP32 is not set
+# CONFIG_SIBYTE_CRHINE is not set
+# CONFIG_SIBYTE_CARMEL is not set
+# CONFIG_SIBYTE_CRHONE is not set
+# CONFIG_SIBYTE_RHONE is not set
+# CONFIG_SIBYTE_SWARM is not set
+# CONFIG_SIBYTE_LITTLESUR is not set
+# CONFIG_SIBYTE_SENTOSA is not set
+# CONFIG_SIBYTE_BIGSUR is not set
+# CONFIG_SNI_RM is not set
+# CONFIG_MACH_TX39XX is not set
+# CONFIG_MACH_TX49XX is not set
+# CONFIG_MIKROTIK_RB532 is not set
+# CONFIG_WR_PPMC is not set
+# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
+# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
+# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
+CONFIG_JZ4740_QI_LB60=y
+CONFIG_SOC_JZ4740=y
+CONFIG_JZSOC=y
+CONFIG_JZRISC=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_ARCH_SUPPORTS_OPROFILE=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_DMA_NONCOHERENT=y
+CONFIG_DMA_NEED_PCI_MAP_STATE=y
+CONFIG_EARLY_PRINTK=y
+CONFIG_SYS_HAS_EARLY_PRINTK=y
+# CONFIG_NO_IOPORT is not set
+CONFIG_GENERIC_GPIO=y
+# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
+CONFIG_IRQ_CPU=y
+CONFIG_MIPS_L1_CACHE_SHIFT=5
+
+#
+# CPU selection
+#
+# CONFIG_CPU_LOONGSON2 is not set
+CONFIG_CPU_MIPS32_R1=y
+# CONFIG_CPU_MIPS32_R2 is not set
+# CONFIG_CPU_MIPS64_R1 is not set
+# CONFIG_CPU_MIPS64_R2 is not set
+# CONFIG_CPU_R3000 is not set
+# CONFIG_CPU_TX39XX is not set
+# CONFIG_CPU_VR41XX is not set
+# CONFIG_CPU_R4300 is not set
+# CONFIG_CPU_R4X00 is not set
+# CONFIG_CPU_TX49XX is not set
+# CONFIG_CPU_R5000 is not set
+# CONFIG_CPU_R5432 is not set
+# CONFIG_CPU_R5500 is not set
+# CONFIG_CPU_R6000 is not set
+# CONFIG_CPU_NEVADA is not set
+# CONFIG_CPU_R8000 is not set
+# CONFIG_CPU_R10000 is not set
+# CONFIG_CPU_RM7000 is not set
+# CONFIG_CPU_RM9000 is not set
+# CONFIG_CPU_SB1 is not set
+# CONFIG_CPU_CAVIUM_OCTEON is not set
+CONFIG_SYS_HAS_CPU_MIPS32_R1=y
+CONFIG_CPU_MIPS32=y
+CONFIG_CPU_MIPSR1=y
+CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
+CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
+CONFIG_HARDWARE_WATCHPOINTS=y
+
+#
+# Kernel type
+#
+CONFIG_32BIT=y
+# CONFIG_64BIT is not set
+CONFIG_PAGE_SIZE_4KB=y
+# CONFIG_PAGE_SIZE_8KB is not set
+# CONFIG_PAGE_SIZE_16KB is not set
+# CONFIG_PAGE_SIZE_32KB is not set
+# CONFIG_PAGE_SIZE_64KB is not set
+CONFIG_CPU_HAS_PREFETCH=y
+CONFIG_MIPS_MT_DISABLED=y
+# CONFIG_MIPS_MT_SMP is not set
+# CONFIG_MIPS_MT_SMTC is not set
+CONFIG_CPU_HAS_LLSC=y
+CONFIG_CPU_HAS_SYNC=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_CPU_SUPPORTS_HIGHMEM=y
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=0
+CONFIG_VIRT_TO_BUS=y
+CONFIG_HAVE_MLOCK=y
+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+# CONFIG_NO_HZ is not set
+# CONFIG_HIGH_RES_TIMERS is not set
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_FORCE_MAX_ZONEORDER=12
+# CONFIG_HZ_48 is not set
+CONFIG_HZ_100=y
+# CONFIG_HZ_128 is not set
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_256 is not set
+# CONFIG_HZ_1000 is not set
+# CONFIG_HZ_1024 is not set
+CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
+CONFIG_HZ=100
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+# CONFIG_KEXEC is not set
+CONFIG_SECCOMP=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_CONSTRUCTORS=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_CLASSIC_RCU=y
+# CONFIG_TREE_RCU is not set
+# CONFIG_PREEMPT_RCU is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_PREEMPT_RCU_TRACE is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_GROUP_SCHED is not set
+# CONFIG_CGROUPS is not set
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_RELAY=y
+# CONFIG_NAMESPACES is not set
+# CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_EMBEDDED=y
+CONFIG_SYSCTL_SYSCALL=y
+# CONFIG_KALLSYMS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+
+#
+# Performance Counters
+#
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_STRIP_ASM_SYMS=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
+CONFIG_HAVE_OPROFILE=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+# CONFIG_SLOW_WORK is not set
+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+CONFIG_FREEZER=y
+
+#
+# Bus options (PCI, PCMCIA, EISA, ISA, TC)
+#
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+CONFIG_MMU=y
+# CONFIG_PCCARD is not set
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+# CONFIG_HAVE_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+CONFIG_TRAD_SIGNALS=y
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ_JZ=y
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+# CONFIG_CPU_FREQ_DEBUG is not set
+CONFIG_CPU_FREQ_STAT=y
+# CONFIG_CPU_FREQ_STAT_DETAILS is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
+
+#
+# Power management options
+#
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_SLEEP=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+# CONFIG_HIBERNATION is not set
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_NET_DSA is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_PHONET is not set
+# CONFIG_IEEE802154 is not set
+# CONFIG_NET_SCHED is not set
+# CONFIG_DCB is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+CONFIG_WIRELESS=y
+# CONFIG_CFG80211 is not set
+CONFIG_WIRELESS_OLD_REGULATORY=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+# CONFIG_LIB80211 is not set
+
+#
+# CFG80211 needs to be enabled for MAC80211
+#
+CONFIG_MAC80211_DEFAULT_PS_VALUE=0
+# CONFIG_WIMAX is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+# CONFIG_FW_LOADER is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_TESTS is not set
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_VERIFY_WRITE=y
+# CONFIG_MTD_NAND_ECC_SMC is not set
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+CONFIG_MTD_NAND_IDS=y
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+# CONFIG_MTD_NAND_NANDSIM is not set
+# CONFIG_MTD_NAND_PLATFORM is not set
+CONFIG_MTD_NAND_JZ4740=y
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+
+#
+# UBI - Unsorted block images
+#
+CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_RESERVE=1
+# CONFIG_MTD_UBI_GLUEBI is not set
+
+#
+# UBI debugging options
+#
+# CONFIG_MTD_UBI_DEBUG is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+# CONFIG_BLK_DEV_LOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_ENCLOSURE_SERVICES is not set
+CONFIG_JZ4740_ADC=y
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_AT25 is not set
+# CONFIG_EEPROM_93CX6 is not set
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+# CONFIG_NET_ETHERNET is not set
+# CONFIG_NETDEV_1000 is not set
+# CONFIG_NETDEV_10000 is not set
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+# CONFIG_WLAN_80211 is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+# CONFIG_WAN is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+CONFIG_ISDN=y
+# CONFIG_MISDN is not set
+# CONFIG_ISDN_I4L is not set
+# CONFIG_ISDN_CAPI is not set
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=y
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYBOARD_MATRIX=y
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_PCSPKR is not set
+# CONFIG_INPUT_ATI_REMOTE is not set
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+# CONFIG_INPUT_CM109 is not set
+# CONFIG_INPUT_UINPUT is not set
+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+# CONFIG_SERIO_I8042 is not set
+CONFIG_SERIO_SERPORT=y
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_DEVKMEM is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=2
+CONFIG_SERIAL_8250_RUNTIME_UARTS=2
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_MAX3100 is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=2
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+# CONFIG_I2C is not set
+CONFIG_SPI=y
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_BITBANG=y
+CONFIG_SPI_GPIO=y
+
+#
+# SPI Protocol Masters
+#
+# CONFIG_SPI_SPIDEV is not set
+# CONFIG_SPI_TLE62X0 is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_GPIO_SYSFS is not set
+
+#
+# Memory mapped GPIO expanders:
+#
+
+#
+# I2C GPIO expanders:
+#
+
+#
+# PCI GPIO expanders:
+#
+
+#
+# SPI GPIO expanders:
+#
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_W1 is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_BATTERY_DS2760 is not set
+CONFIG_BATTERY_JZ4740=y
+# CONFIG_HWMON is not set
+# CONFIG_THERMAL is not set
+# CONFIG_THERMAL_HWMON is not set
+# CONFIG_WATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_EZX_PCAP is not set
+# CONFIG_REGULATOR is not set
+# CONFIG_MEDIA_SUPPORT is not set
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+# CONFIG_FB_CFB_FILLRECT is not set
+# CONFIG_FB_CFB_COPYAREA is not set
+# CONFIG_FB_CFB_IMAGEBLIT is not set
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_SYS_FILLRECT=y
+CONFIG_FB_SYS_COPYAREA=y
+CONFIG_FB_SYS_IMAGEBLIT=y
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_SYS_FOPS is not set
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_JZSOC is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
+CONFIG_FB_JZ4740=y
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=y
+# CONFIG_LCD_LTV350QV is not set
+# CONFIG_LCD_ILI9320 is not set
+# CONFIG_LCD_TDO24M is not set
+# CONFIG_LCD_VGG2432A4 is not set
+# CONFIG_LCD_PLATFORM is not set
+CONFIG_LCD_GPM940B0=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+# CONFIG_BACKLIGHT_GENERIC is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+# CONFIG_FONT_8x16 is not set
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+CONFIG_FONT_SUN8x16=y
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+# CONFIG_LOGO_LINUX_CLUT224 is not set
+CONFIG_LOGO_OPENWRT_CLUT224=y
+CONFIG_SOUND=y
+CONFIG_SOUND_OSS_CORE=y
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+CONFIG_SND_JACK=y
+# CONFIG_SND_SEQUENCER is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=y
+CONFIG_SND_PCM_OSS=y
+CONFIG_SND_PCM_OSS_PLUGINS=y
+# CONFIG_SND_DYNAMIC_MINORS is not set
+# CONFIG_SND_SUPPORT_OLD_API is not set
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+# CONFIG_SND_RAWMIDI_SEQ is not set
+# CONFIG_SND_OPL3_LIB_SEQ is not set
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+# CONFIG_SND_SBAWE_SEQ is not set
+# CONFIG_SND_EMU10K1_SEQ is not set
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+# CONFIG_SND_SPI is not set
+# CONFIG_SND_MIPS is not set
+CONFIG_SND_SOC=y
+CONFIG_SND_JZ4740_SOC=y
+CONFIG_SND_JZ4740_SOC_QI_LB60=y
+CONFIG_SND_JZ4740_SOC_I2S=y
+CONFIG_SND_SOC_I2C_AND_SPI=y
+# CONFIG_SND_SOC_ALL_CODECS is not set
+CONFIG_SND_SOC_JZCODEC=y
+# CONFIG_SOUND_PRIME is not set
+# CONFIG_HID_SUPPORT is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+# CONFIG_USB is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+# CONFIG_USB_GADGET_MUSB_HDRC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_SELECTED=y
+CONFIG_USB_GADGET_JZ4740=y
+CONFIG_USB_JZ4740=y
+# CONFIG_USB_GADGET_AT91 is not set
+# CONFIG_USB_GADGET_ATMEL_USBA is not set
+# CONFIG_USB_GADGET_FSL_USB2 is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_GADGET_PXA25X is not set
+# CONFIG_USB_GADGET_PXA27X is not set
+# CONFIG_USB_GADGET_S3C_HSOTG is not set
+# CONFIG_USB_GADGET_IMX is not set
+# CONFIG_USB_GADGET_S3C2410 is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_FSL_QE is not set
+# CONFIG_USB_GADGET_CI13XXX is not set
+# CONFIG_USB_GADGET_NET2280 is not set
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LANGWELL is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_ZERO is not set
+# CONFIG_USB_AUDIO is not set
+CONFIG_USB_ETH=y
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FILE_STORAGE is not set
+# CONFIG_USB_G_SERIAL is not set
+# CONFIG_USB_MIDI_GADGET is not set
+# CONFIG_USB_G_PRINTER is not set
+# CONFIG_USB_CDC_COMPOSITE is not set
+
+#
+# OTG and related infrastructure
+#
+# CONFIG_USB_GPIO_VBUS is not set
+# CONFIG_NOP_USB_XCEIV is not set
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+# CONFIG_MMC_BLOCK_BOUNCE is not set
+CONFIG_SDIO_UART=y
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+# CONFIG_MMC_SDHCI is not set
+CONFIG_MMC_JZ=y
+# CONFIG_MMC_SPI is not set
+# CONFIG_MEMSTICK is not set
+# CONFIG_NEW_LEDS is not set
+# CONFIG_ACCESSIBILITY is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_DS3234 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+CONFIG_RTC_DRV_JZ4740=y
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_DMADEVICES is not set
+# CONFIG_AUXDISPLAY is not set
+# CONFIG_UIO is not set
+
+#
+# TI VLYNQ
+#
+CONFIG_STAGING=y
+# CONFIG_STAGING_EXCLUDE_BUILD is not set
+# CONFIG_MEILHAUS is not set
+# CONFIG_ECHO is not set
+# CONFIG_COMEDI is not set
+
+#
+# Android
+#
+# CONFIG_ANDROID is not set
+# CONFIG_DST is not set
+# CONFIG_POHMELFS is not set
+# CONFIG_PLAN9AUTH is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+# CONFIG_EXT3_FS_XATTR is not set
+# CONFIG_EXT4_FS is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_BTRFS_FS is not set
+CONFIG_FILE_LOCKING=y
+# CONFIG_FSNOTIFY is not set
+# CONFIG_DNOTIFY is not set
+# CONFIG_INOTIFY is not set
+# CONFIG_INOTIFY_USER is not set
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# Caches
+#
+# CONFIG_FSCACHE is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+# CONFIG_MSDOS_FS is not set
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+# CONFIG_PROC_PAGE_MONITOR is not set
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+CONFIG_JFFS2_SUMMARY=y
+# CONFIG_JFFS2_FS_XATTR is not set
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+# CONFIG_JFFS2_CMODE_NONE is not set
+CONFIG_JFFS2_CMODE_PRIORITY=y
+# CONFIG_JFFS2_CMODE_SIZE is not set
+# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
+CONFIG_UBIFS_FS=y
+# CONFIG_UBIFS_FS_XATTR is not set
+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+# CONFIG_UBIFS_FS_DEBUG is not set
+# CONFIG_CRAMFS is not set
+CONFIG_SQUASHFS=y
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_NILFS2_FS is not set
+# CONFIG_NETWORK_FILESYSTEMS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+# CONFIG_NLS_CODEPAGE_437 is not set
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+# CONFIG_NLS_ISO8859_1 is not set
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_PRINTK_TIME=y
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=1024
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_KERNEL is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+CONFIG_TRACING_SUPPORT=y
+# CONFIG_FTRACE is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_CMDLINE=""
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+# CONFIG_CRYPTO_FIPS is not set
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_PCOMP=y
+# CONFIG_CRYPTO_MANAGER is not set
+# CONFIG_CRYPTO_MANAGER2 is not set
+# CONFIG_CRYPTO_GF128MUL is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_CRYPTD is not set
+# CONFIG_CRYPTO_AUTHENC is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+# CONFIG_CRYPTO_CCM is not set
+# CONFIG_CRYPTO_GCM is not set
+# CONFIG_CRYPTO_SEQIV is not set
+
+#
+# Block modes
+#
+# CONFIG_CRYPTO_CBC is not set
+# CONFIG_CRYPTO_CTR is not set
+# CONFIG_CRYPTO_CTS is not set
+# CONFIG_CRYPTO_ECB is not set
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_PCBC is not set
+# CONFIG_CRYPTO_XTS is not set
+
+#
+# Hash modes
+#
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_XCBC is not set
+
+#
+# Digest
+#
+# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_MD4 is not set
+# CONFIG_CRYPTO_MD5 is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+# CONFIG_CRYPTO_SHA1 is not set
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+
+#
+# Ciphers
+#
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SALSA20 is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_ZLIB=y
+CONFIG_CRYPTO_LZO=y
+
+#
+# Random Number Generation
+#
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+# CONFIG_CRYPTO_HW is not set
+# CONFIG_BINARY_PRINTF is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+# CONFIG_CRC_CCITT is not set
+CONFIG_CRC16=y
+# CONFIG_CRC_T10DIF is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_NLATTR=y
diff --git a/recipes/linux/linux-2.6.31/ben-nanonote/files.patch b/recipes/linux/linux-2.6.31/ben-nanonote/files.patch
new file mode 100644
index 0000000000..3d274cbe25
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/ben-nanonote/files.patch
@@ -0,0 +1,20506 @@
+diff -ruN linux-2.6.31-vanilla/arch/mips/boot/compressed/Makefile linux-2.6.31/arch/mips/boot/compressed/Makefile
+--- linux-2.6.31-vanilla/arch/mips/boot/compressed/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/boot/compressed/Makefile 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,42 @@
++#
++# linux/arch/mips/boot/compressed/Makefile
++#
++# create a compressed zImage from the original vmlinux
++#
++
++targets := zImage vmlinuz vmlinux.bin.gz head.o misc.o piggy.o dummy.o
++
++OBJS := $(obj)/head.o $(obj)/misc.o
++
++LD_ARGS := -T $(obj)/ld.script -Ttext 0x80600000 -Bstatic
++OBJCOPY_ARGS := -O elf32-tradlittlemips
++
++ENTRY := $(obj)/../tools/entry
++FILESIZE := $(obj)/../tools/filesize
++
++drop-sections = .reginfo .mdebug .comment .note .pdr .options .MIPS.options
++strip-flags = $(addprefix --remove-section=,$(drop-sections))
++
++
++$(obj)/vmlinux.bin.gz: vmlinux
++ rm -f $(obj)/vmlinux.bin.gz
++ $(OBJCOPY) -O binary $(strip-flags) vmlinux $(obj)/vmlinux.bin
++ gzip -v9f $(obj)/vmlinux.bin
++
++$(obj)/head.o: $(obj)/head.S $(obj)/vmlinux.bin.gz vmlinux
++ $(CC) $(KBUILD_AFLAGS) \
++ -DIMAGESIZE=$(shell sh $(FILESIZE) $(obj)/vmlinux.bin.gz) \
++ -DKERNEL_ENTRY=$(shell sh $(ENTRY) $(NM) vmlinux ) \
++ -DLOADADDR=$(loadaddr) \
++ -c -o $(obj)/head.o $<
++
++$(obj)/vmlinuz: $(OBJS) $(obj)/ld.script $(obj)/vmlinux.bin.gz $(obj)/dummy.o
++ $(OBJCOPY) \
++ --add-section=.image=$(obj)/vmlinux.bin.gz \
++ --set-section-flags=.image=contents,alloc,load,readonly,data \
++ $(obj)/dummy.o $(obj)/piggy.o
++ $(LD) $(LD_ARGS) -o $@ $(OBJS) $(obj)/piggy.o
++ $(OBJCOPY) $(OBJCOPY_ARGS) $@ $@ -R .comment -R .stab -R .stabstr -R .initrd -R .sysmap
++
++zImage: $(obj)/vmlinuz
++ $(OBJCOPY) -O binary $(obj)/vmlinuz $(obj)/zImage
+diff -ruN linux-2.6.31-vanilla/arch/mips/boot/compressed/dummy.c linux-2.6.31/arch/mips/boot/compressed/dummy.c
+--- linux-2.6.31-vanilla/arch/mips/boot/compressed/dummy.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/boot/compressed/dummy.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,4 @@
++int main(void)
++{
++ return 0;
++}
+diff -ruN linux-2.6.31-vanilla/arch/mips/boot/compressed/head.S linux-2.6.31/arch/mips/boot/compressed/head.S
+--- linux-2.6.31-vanilla/arch/mips/boot/compressed/head.S 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/boot/compressed/head.S 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,85 @@
++/*
++ * linux/arch/mips/boot/compressed/head.S
++ *
++ * Copyright (C) 2005-2008 Ingenic Semiconductor Inc.
++ */
++
++#include <asm/asm.h>
++#include <asm/cacheops.h>
++#include <asm/cachectl.h>
++#include <asm/regdef.h>
++
++#define IndexInvalidate_I 0x00
++#define IndexWriteBack_D 0x01
++
++ .set noreorder
++ LEAF(startup)
++startup:
++ move s0, a0 /* Save the boot loader transfered args */
++ move s1, a1
++ move s2, a2
++ move s3, a3
++
++ la a0, _edata
++ la a1, _end
++1: sw zero, 0(a0) /* Clear BSS section */
++ bne a1, a0, 1b
++ addu a0, 4
++
++ la sp, (.stack + 8192)
++
++ la a0, __image_begin
++ la a1, IMAGESIZE
++ la a2, LOADADDR
++ la ra, 1f
++ la k0, decompress_kernel
++ jr k0
++ nop
++1:
++
++ move a0, s0
++ move a1, s1
++ move a2, s2
++ move a3, s3
++ li k0, KERNEL_ENTRY
++ jr k0
++ nop
++2:
++ b 32
++ END(startup)
++
++
++ LEAF(flushcaches)
++ la t0, 1f
++ la t1, 0xa0000000
++ or t0, t0, t1
++ jr t0
++ nop
++1:
++ li k0, 0x80000000 # start address
++ li k1, 0x80004000 # end address (16KB I-Cache)
++ subu k1, 128
++
++2:
++ .set mips3
++ cache IndexWriteBack_D, 0(k0)
++ cache IndexWriteBack_D, 32(k0)
++ cache IndexWriteBack_D, 64(k0)
++ cache IndexWriteBack_D, 96(k0)
++ cache IndexInvalidate_I, 0(k0)
++ cache IndexInvalidate_I, 32(k0)
++ cache IndexInvalidate_I, 64(k0)
++ cache IndexInvalidate_I, 96(k0)
++ .set mips0
++
++ bne k0, k1, 2b
++ addu k0, k0, 128
++ la t0, 3f
++ jr t0
++ nop
++3:
++ jr ra
++ nop
++ END(flushcaches)
++
++ .comm .stack,4096*2,4
+diff -ruN linux-2.6.31-vanilla/arch/mips/boot/compressed/ld.script linux-2.6.31/arch/mips/boot/compressed/ld.script
+--- linux-2.6.31-vanilla/arch/mips/boot/compressed/ld.script 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/boot/compressed/ld.script 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,151 @@
++OUTPUT_ARCH(mips)
++ENTRY(startup)
++SECTIONS
++{
++ /* Read-only sections, merged into text segment: */
++
++ .init : { *(.init) } =0
++ .text :
++ {
++ _ftext = . ;
++ *(.text)
++ *(.rodata)
++ *(.rodata1)
++ /* .gnu.warning sections are handled specially by elf32.em. */
++ *(.gnu.warning)
++ } =0
++ .kstrtab : { *(.kstrtab) }
++
++ . = ALIGN(16); /* Exception table */
++ __start___ex_table = .;
++ __ex_table : { *(__ex_table) }
++ __stop___ex_table = .;
++
++ __start___dbe_table = .; /* Exception table for data bus errors */
++ __dbe_table : { *(__dbe_table) }
++ __stop___dbe_table = .;
++
++ __start___ksymtab = .; /* Kernel symbol table */
++ __ksymtab : { *(__ksymtab) }
++ __stop___ksymtab = .;
++
++ _etext = .;
++
++ . = ALIGN(8192);
++ .data.init_task : { *(.data.init_task) }
++
++ /* Startup code */
++ . = ALIGN(4096);
++ __init_begin = .;
++ .text.init : { *(.text.init) }
++ .data.init : { *(.data.init) }
++ . = ALIGN(16);
++ __setup_start = .;
++ .setup.init : { *(.setup.init) }
++ __setup_end = .;
++ __initcall_start = .;
++ .initcall.init : { *(.initcall.init) }
++ __initcall_end = .;
++ . = ALIGN(4096); /* Align double page for init_task_union */
++ __init_end = .;
++
++ . = ALIGN(4096);
++ .data.page_aligned : { *(.data.idt) }
++
++ . = ALIGN(32);
++ .data.cacheline_aligned : { *(.data.cacheline_aligned) }
++
++ .fini : { *(.fini) } =0
++ .reginfo : { *(.reginfo) }
++ /* Adjust the address for the data segment. We want to adjust up to
++ the same address within the page on the next page up. It would
++ be more correct to do this:
++ . = .;
++ The current expression does not correctly handle the case of a
++ text segment ending precisely at the end of a page; it causes the
++ data segment to skip a page. The above expression does not have
++ this problem, but it will currently (2/95) cause BFD to allocate
++ a single segment, combining both text and data, for this case.
++ This will prevent the text segment from being shared among
++ multiple executions of the program; I think that is more
++ important than losing a page of the virtual address space (note
++ that no actual memory is lost; the page which is skipped can not
++ be referenced). */
++ . = .;
++ .data :
++ {
++ _fdata = . ;
++ *(.data)
++
++ /* Put the compressed image here, so bss is on the end. */
++ __image_begin = .;
++ *(.image)
++ __image_end = .;
++ /* Align the initial ramdisk image (INITRD) on page boundaries. */
++ . = ALIGN(4096);
++ __ramdisk_begin = .;
++ *(.initrd)
++ __ramdisk_end = .;
++ . = ALIGN(4096);
++
++ CONSTRUCTORS
++ }
++ .data1 : { *(.data1) }
++ _gp = . + 0x8000;
++ .lit8 : { *(.lit8) }
++ .lit4 : { *(.lit4) }
++ .ctors : { *(.ctors) }
++ .dtors : { *(.dtors) }
++ .got : { *(.got.plt) *(.got) }
++ .dynamic : { *(.dynamic) }
++ /* We want the small data sections together, so single-instruction offsets
++ can access them all, and initialized data all before uninitialized, so
++ we can shorten the on-disk segment size. */
++ .sdata : { *(.sdata) }
++ . = ALIGN(4);
++ _edata = .;
++ PROVIDE (edata = .);
++
++ __bss_start = .;
++ _fbss = .;
++ .sbss : { *(.sbss) *(.scommon) }
++ .bss :
++ {
++ *(.dynbss)
++ *(.bss)
++ *(COMMON)
++ . = ALIGN(4);
++ _end = . ;
++ PROVIDE (end = .);
++ }
++
++ /* Sections to be discarded */
++ /DISCARD/ :
++ {
++ *(.text.exit)
++ *(.data.exit)
++ *(.exitcall.exit)
++ }
++
++ /* This is the MIPS specific mdebug section. */
++ .mdebug : { *(.mdebug) }
++ /* These are needed for ELF backends which have not yet been
++ converted to the new style linker. */
++ .stab 0 : { *(.stab) }
++ .stabstr 0 : { *(.stabstr) }
++ /* DWARF debug sections.
++ Symbols in the .debug DWARF section are relative to the beginning of the
++ section so we begin .debug at 0. It's not clear yet what needs to happen
++ for the others. */
++ .debug 0 : { *(.debug) }
++ .debug_srcinfo 0 : { *(.debug_srcinfo) }
++ .debug_aranges 0 : { *(.debug_aranges) }
++ .debug_pubnames 0 : { *(.debug_pubnames) }
++ .debug_sfnames 0 : { *(.debug_sfnames) }
++ .line 0 : { *(.line) }
++ /* These must appear regardless of . */
++ .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
++ .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
++ .comment : { *(.comment) }
++ .note : { *(.note) }
++}
+diff -ruN linux-2.6.31-vanilla/arch/mips/boot/compressed/misc.c linux-2.6.31/arch/mips/boot/compressed/misc.c
+--- linux-2.6.31-vanilla/arch/mips/boot/compressed/misc.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/boot/compressed/misc.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,242 @@
++/*
++ * linux/arch/mips/boot/compressed/misc.c
++ *
++ * This is a collection of several routines from gzip-1.0.3
++ * adapted for Linux.
++ *
++ * malloc by Hannu Savolainen 1993 and Matthias Urlichs 1994
++ *
++ * Adapted for JZSOC by Peter Wei, 2008
++ *
++ */
++
++#define size_t int
++#define NULL 0
++
++/*
++ * gzip declarations
++ */
++
++#define OF(args) args
++#define STATIC static
++
++#undef memset
++#undef memcpy
++#define memzero(s, n) memset ((s), 0, (n))
++
++typedef unsigned char uch;
++typedef unsigned short ush;
++typedef unsigned long ulg;
++
++#define WSIZE 0x8000 /* Window size must be at least 32k, */
++ /* and a power of two */
++
++static uch *inbuf; /* input buffer */
++static uch window[WSIZE]; /* Sliding window buffer */
++
++static unsigned insize = 0; /* valid bytes in inbuf */
++static unsigned inptr = 0; /* index of next byte to be processed in inbuf */
++static unsigned outcnt = 0; /* bytes in output buffer */
++
++/* gzip flag byte */
++#define ASCII_FLAG 0x01 /* bit 0 set: file probably ASCII text */
++#define CONTINUATION 0x02 /* bit 1 set: continuation of multi-part gzip file */
++#define EXTRA_FIELD 0x04 /* bit 2 set: extra field present */
++#define ORIG_NAME 0x08 /* bit 3 set: original file name present */
++#define COMMENT 0x10 /* bit 4 set: file comment present */
++#define ENCRYPTED 0x20 /* bit 5 set: file is encrypted */
++#define RESERVED 0xC0 /* bit 6,7: reserved */
++
++#define get_byte() (inptr < insize ? inbuf[inptr++] : fill_inbuf())
++
++/* Diagnostic functions */
++#ifdef DEBUG
++# define Assert(cond,msg) {if(!(cond)) error(msg);}
++# define Trace(x) fprintf x
++# define Tracev(x) {if (verbose) fprintf x ;}
++# define Tracevv(x) {if (verbose>1) fprintf x ;}
++# define Tracec(c,x) {if (verbose && (c)) fprintf x ;}
++# define Tracecv(c,x) {if (verbose>1 && (c)) fprintf x ;}
++#else
++# define Assert(cond,msg)
++# define Trace(x)
++# define Tracev(x)
++# define Tracevv(x)
++# define Tracec(c,x)
++# define Tracecv(c,x)
++#endif
++
++static int fill_inbuf(void);
++static void flush_window(void);
++static void error(char *m);
++static void gzip_mark(void **);
++static void gzip_release(void **);
++
++void* memset(void* s, int c, size_t n);
++void* memcpy(void* __dest, __const void* __src, size_t __n);
++
++extern void flushcaches(void); /* defined in head.S */
++
++char *input_data;
++int input_len;
++
++static long bytes_out = 0;
++static uch *output_data;
++static unsigned long output_ptr = 0;
++
++
++static void *malloc(int size);
++static void free(void *where);
++static void error(char *m);
++static void gzip_mark(void **);
++static void gzip_release(void **);
++
++static void puts(const char *str)
++{
++}
++
++extern unsigned char _end[];
++static unsigned long free_mem_ptr;
++static unsigned long free_mem_end_ptr;
++
++#define HEAP_SIZE 0x10000
++
++#include "../../../../lib/inflate.c"
++
++static void *malloc(int size)
++{
++ void *p;
++
++ if (size <0) error("Malloc error\n");
++ if (free_mem_ptr == 0) error("Memory error\n");
++
++ free_mem_ptr = (free_mem_ptr + 3) & ~3; /* Align */
++
++ p = (void *)free_mem_ptr;
++ free_mem_ptr += size;
++
++ if (free_mem_ptr >= free_mem_end_ptr)
++ error("\nOut of memory\n");
++
++ return p;
++}
++
++static void free(void *where)
++{ /* Don't care */
++}
++
++static void gzip_mark(void **ptr)
++{
++ *ptr = (void *) free_mem_ptr;
++}
++
++static void gzip_release(void **ptr)
++{
++ free_mem_ptr = (long) *ptr;
++}
++
++void* memset(void* s, int c, size_t n)
++{
++ int i;
++ char *ss = (char*)s;
++
++ for (i=0;i<n;i++) ss[i] = c;
++ return s;
++}
++
++void* memcpy(void* __dest, __const void* __src, size_t __n)
++{
++ int i = 0;
++ unsigned char *d = (unsigned char *)__dest, *s = (unsigned char *)__src;
++
++ for (i = __n >> 3; i > 0; i--) {
++ *d++ = *s++;
++ *d++ = *s++;
++ *d++ = *s++;
++ *d++ = *s++;
++ *d++ = *s++;
++ *d++ = *s++;
++ *d++ = *s++;
++ *d++ = *s++;
++ }
++
++ if (__n & 1 << 2) {
++ *d++ = *s++;
++ *d++ = *s++;
++ *d++ = *s++;
++ *d++ = *s++;
++ }
++
++ if (__n & 1 << 1) {
++ *d++ = *s++;
++ *d++ = *s++;
++ }
++
++ if (__n & 1)
++ *d++ = *s++;
++
++ return __dest;
++}
++
++/* ===========================================================================
++ * Fill the input buffer. This is called only when the buffer is empty
++ * and at least one byte is really needed.
++ */
++static int fill_inbuf(void)
++{
++ if (insize != 0) {
++ error("ran out of input data\n");
++ }
++
++ inbuf = input_data;
++ insize = input_len;
++ inptr = 1;
++ return inbuf[0];
++}
++
++/* ===========================================================================
++ * Write the output window window[0..outcnt-1] and update crc and bytes_out.
++ * (Used for the decompressed data only.)
++ */
++static void flush_window(void)
++{
++ ulg c = crc; /* temporary variable */
++ unsigned n;
++ uch *in, *out, ch;
++
++ in = window;
++ out = &output_data[output_ptr];
++ for (n = 0; n < outcnt; n++) {
++ ch = *out++ = *in++;
++ c = crc_32_tab[((int)c ^ ch) & 0xff] ^ (c >> 8);
++ }
++ crc = c;
++ bytes_out += (ulg)outcnt;
++ output_ptr += (ulg)outcnt;
++ outcnt = 0;
++}
++
++static void error(char *x)
++{
++ puts("\n\n");
++ puts(x);
++ puts("\n\n -- System halted");
++
++ while(1); /* Halt */
++}
++
++void decompress_kernel(unsigned int imageaddr, unsigned int imagesize, unsigned int loadaddr)
++{
++ input_data = (char *)imageaddr;
++ input_len = imagesize;
++ output_ptr = 0;
++ output_data = (uch *)loadaddr;
++ free_mem_ptr = (unsigned long)_end;
++ free_mem_end_ptr = free_mem_ptr + HEAP_SIZE;
++
++ makecrc();
++ puts("Uncompressing Linux...");
++ gunzip();
++ flushcaches();
++ puts("Ok, booting the kernel.");
++}
+diff -ruN linux-2.6.31-vanilla/arch/mips/boot/tools/entry linux-2.6.31/arch/mips/boot/tools/entry
+--- linux-2.6.31-vanilla/arch/mips/boot/tools/entry 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/boot/tools/entry 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,12 @@
++#!/bin/sh
++
++# grab the kernel_entry address from the vmlinux elf image
++entry=`$1 $2 | grep kernel_entry`
++
++fs=`echo $entry | grep ffffffff` # check toolchain output
++
++if [ -n "$fs" ]; then
++ echo "0x"`$1 $2 | grep kernel_entry | cut -c9- | awk '{print $1}'`
++else
++ echo "0x"`$1 $2 | grep kernel_entry | cut -c1- | awk '{print $1}'`
++fi
+diff -ruN linux-2.6.31-vanilla/arch/mips/boot/tools/filesize linux-2.6.31/arch/mips/boot/tools/filesize
+--- linux-2.6.31-vanilla/arch/mips/boot/tools/filesize 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/boot/tools/filesize 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,7 @@
++#!/bin/sh
++HOSTNAME=`uname`
++if [ "$HOSTNAME" = "Linux" ]; then
++echo `ls -l $1 | awk '{print $5}'`
++else
++echo `ls -l $1 | awk '{print $6}'`
++fi
+diff -ruN linux-2.6.31-vanilla/arch/mips/include/asm/jzsoc.h linux-2.6.31/arch/mips/include/asm/jzsoc.h
+--- linux-2.6.31-vanilla/arch/mips/include/asm/jzsoc.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/include/asm/jzsoc.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,26 @@
++/*
++ * linux/include/asm-mips/jzsoc.h
++ *
++ * Ingenic's JZXXXX SoC common include.
++ *
++ * Copyright (C) 2006 - 2008 Ingenic Semiconductor Inc.
++ *
++ * Author: <jlwei@ingenic.cn>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#ifndef __ASM_JZSOC_H__
++#define __ASM_JZSOC_H__
++
++/*
++ * SoC include
++ */
++
++#ifdef CONFIG_SOC_JZ4740
++#include <asm/mach-jz4740/jz4740.h>
++#endif
++
++#endif /* __ASM_JZSOC_H__ */
+diff -ruN linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/board-dipper.h linux-2.6.31/arch/mips/include/asm/mach-jz4740/board-dipper.h
+--- linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/board-dipper.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/include/asm/mach-jz4740/board-dipper.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,69 @@
++/*
++ * linux/include/asm-mips/mach-jz4740/board-dipper.h
++ *
++ * JZ4725-based (16bit) Dipper board ver 1.x definition.
++ *
++ * Copyright (C) 2006 - 2007 Ingenic Semiconductor Inc.
++ *
++ * Author: <lhhuang@ingenic.cn>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#ifndef __ASM_JZ4725_DIPPER_H__
++#define __ASM_JZ4725_DIPPER_H__
++
++/*======================================================================
++ * Frequencies of on-board oscillators
++ */
++#define JZ_EXTAL 12000000 /* Main extal freq: 12 MHz */
++#define JZ_EXTAL2 32768 /* RTC extal freq: 32.768 KHz */
++
++/*======================================================================
++ * GPIO JZ4725
++ */
++#define GPIO_SD_VCC_EN_N 85 /* GPC21 */
++#define GPIO_SD_CD_N 91 /* GPC27 */
++#define GPIO_SD_WP 112 /* GPD16 */
++#define GPIO_USB_DETE 124 /* GPD28 */
++#define GPIO_DC_DETE_N 103 /* GPD7 */
++#define GPIO_CHARG_STAT_N 86 /* GPC22 */
++#define GPIO_DISP_OFF_N 118 /* GPD22 */
++
++#define GPIO_UDC_HOTPLUG GPIO_USB_DETE
++
++/*======================================================================
++ * MMC/SD
++ */
++
++#define MSC_WP_PIN GPIO_SD_WP
++#define MSC_HOTPLUG_PIN GPIO_SD_CD_N
++#define MSC_HOTPLUG_IRQ (IRQ_GPIO_0 + GPIO_SD_CD_N)
++
++#define __msc_init_io() \
++do { \
++ __gpio_as_output(GPIO_SD_VCC_EN_N); \
++ __gpio_as_input(GPIO_SD_CD_N); \
++} while (0)
++
++#define __msc_enable_power() \
++do { \
++ __gpio_clear_pin(GPIO_SD_VCC_EN_N); \
++} while (0)
++
++#define __msc_disable_power() \
++do { \
++ __gpio_set_pin(GPIO_SD_VCC_EN_N); \
++} while (0)
++
++#define __msc_card_detected(s) \
++({ \
++ int detected = 1; \
++ if (__gpio_get_pin(GPIO_SD_CD_N)) \
++ detected = 0; \
++ detected; \
++})
++
++#endif /* __ASM_JZ4740_DIPPER_H__ */
+diff -ruN linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/board-leo.h linux-2.6.31/arch/mips/include/asm/mach-jz4740/board-leo.h
+--- linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/board-leo.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/include/asm/mach-jz4740/board-leo.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,56 @@
++#ifndef __ASM_JZ4740_LEO_H__
++#define __ASM_JZ4740_LEO_H__
++
++/*
++ * Define your board specific codes here !!!
++ */
++
++/*======================================================================
++ * Frequencies of on-board oscillators
++ */
++#define JZ_EXTAL 12000000 /* Main extal freq: 12 MHz */
++#define JZ_EXTAL2 32768 /* RTC extal freq: 32.768 KHz */
++
++
++/*======================================================================
++ * GPIO
++ */
++#define GPIO_DISP_OFF_N 100
++#define GPIO_SD_VCC_EN_N 119
++#define GPIO_SD_CD_N 120
++#define GPIO_SD_WP 111
++
++/*======================================================================
++ * MMC/SD
++ */
++
++#define MSC_WP_PIN GPIO_SD_WP
++#define MSC_HOTPLUG_PIN GPIO_SD_CD_N
++#define MSC_HOTPLUG_IRQ (IRQ_GPIO_0 + GPIO_SD_CD_N)
++
++#define __msc_init_io() \
++do { \
++ __gpio_as_output(GPIO_SD_VCC_EN_N); \
++ __gpio_as_input(GPIO_SD_CD_N); \
++} while (0)
++
++#define __msc_enable_power() \
++do { \
++ __gpio_clear_pin(GPIO_SD_VCC_EN_N); \
++} while (0)
++
++#define __msc_disable_power() \
++do { \
++ __gpio_set_pin(GPIO_SD_VCC_EN_N); \
++} while (0)
++
++#define __msc_card_detected(s) \
++({ \
++ int detected = 1; \
++ __gpio_as_input(GPIO_SD_CD_N); \
++ if (__gpio_get_pin(GPIO_SD_CD_N)) \
++ detected = 0; \
++ detected; \
++})
++
++#endif /* __ASM_JZ4740_BOARD_LEO_H__ */
+diff -ruN linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/board-lyra.h linux-2.6.31/arch/mips/include/asm/mach-jz4740/board-lyra.h
+--- linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/board-lyra.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/include/asm/mach-jz4740/board-lyra.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,70 @@
++/*
++ * linux/include/asm-mips/mach-jz4740/board-lyra.h
++ *
++ * JZ4740-based LYRA board ver 2.x definition.
++ *
++ * Copyright (C) 2006 - 2007 Ingenic Semiconductor Inc.
++ *
++ * Author: <lhhuang@ingenic.cn>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#ifndef __ASM_JZ4740_LYRA_H__
++#define __ASM_JZ4740_LYRA_H__
++
++/*======================================================================
++ * Frequencies of on-board oscillators
++ */
++#define JZ_EXTAL 12000000 /* Main extal freq: 12 MHz */
++#define JZ_EXTAL2 32768 /* RTC extal freq: 32.768 KHz */
++
++
++/*======================================================================
++ * GPIO
++ */
++#define GPIO_SD_VCC_EN_N 113 /* GPD17 */
++#define GPIO_SD_CD_N 110 /* GPD14 */
++#define GPIO_SD_WP 112 /* GPD16 */
++#define GPIO_USB_DETE 102 /* GPD6 */
++#define GPIO_DC_DETE_N 103 /* GPD7 */
++#define GPIO_CHARG_STAT_N 111 /* GPD15 */
++#define GPIO_DISP_OFF_N 118 /* GPD22 */
++#define GPIO_LED_EN 124 /* GPD28 */
++
++#define GPIO_UDC_HOTPLUG GPIO_USB_DETE
++/*======================================================================
++ * MMC/SD
++ */
++
++#define MSC_WP_PIN GPIO_SD_WP
++#define MSC_HOTPLUG_PIN GPIO_SD_CD_N
++#define MSC_HOTPLUG_IRQ (IRQ_GPIO_0 + GPIO_SD_CD_N)
++
++#define __msc_init_io() \
++do { \
++ __gpio_as_output(GPIO_SD_VCC_EN_N); \
++ __gpio_as_input(GPIO_SD_CD_N); \
++} while (0)
++
++#define __msc_enable_power() \
++do { \
++ __gpio_clear_pin(GPIO_SD_VCC_EN_N); \
++} while (0)
++
++#define __msc_disable_power() \
++do { \
++ __gpio_set_pin(GPIO_SD_VCC_EN_N); \
++} while (0)
++
++#define __msc_card_detected(s) \
++({ \
++ int detected = 1; \
++ if (!(__gpio_get_pin(GPIO_SD_CD_N))) \
++ detected = 0; \
++ detected; \
++})
++
++#endif /* __ASM_JZ4740_LYRA_H__ */
+diff -ruN linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/board-pavo.h linux-2.6.31/arch/mips/include/asm/mach-jz4740/board-pavo.h
+--- linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/board-pavo.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/include/asm/mach-jz4740/board-pavo.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,70 @@
++/*
++ * linux/include/asm-mips/mach-jz4740/board-pavo.h
++ *
++ * JZ4730-based PAVO board ver 2.x definition.
++ *
++ * Copyright (C) 2006 - 2007 Ingenic Semiconductor Inc.
++ *
++ * Author: <lhhuang@ingenic.cn>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#ifndef __ASM_JZ4740_PAVO_H__
++#define __ASM_JZ4740_PAVO_H__
++
++/*======================================================================
++ * Frequencies of on-board oscillators
++ */
++#define JZ_EXTAL 12000000 /* Main extal freq: 12 MHz */
++#define JZ_EXTAL2 32768 /* RTC extal freq: 32.768 KHz */
++
++
++/*======================================================================
++ * GPIO
++ */
++#define GPIO_SD_VCC_EN_N 113 /* GPD17 */
++#define GPIO_SD_CD_N 110 /* GPD14 */
++#define GPIO_SD_WP 112 /* GPD16 */
++#define GPIO_USB_DETE 102 /* GPD6 */
++#define GPIO_DC_DETE_N 103 /* GPD7 */
++#define GPIO_CHARG_STAT_N 111 /* GPD15 */
++#define GPIO_DISP_OFF_N 118 /* GPD22 */
++#define GPIO_LED_EN 124 /* GPD28 */
++
++#define GPIO_UDC_HOTPLUG GPIO_USB_DETE
++/*======================================================================
++ * MMC/SD
++ */
++
++#define MSC_WP_PIN GPIO_SD_WP
++#define MSC_HOTPLUG_PIN GPIO_SD_CD_N
++#define MSC_HOTPLUG_IRQ (IRQ_GPIO_0 + GPIO_SD_CD_N)
++
++#define __msc_init_io() \
++do { \
++ __gpio_as_output(GPIO_SD_VCC_EN_N); \
++ __gpio_as_input(GPIO_SD_CD_N); \
++} while (0)
++
++#define __msc_enable_power() \
++do { \
++ __gpio_clear_pin(GPIO_SD_VCC_EN_N); \
++} while (0)
++
++#define __msc_disable_power() \
++do { \
++ __gpio_set_pin(GPIO_SD_VCC_EN_N); \
++} while (0)
++
++#define __msc_card_detected(s) \
++({ \
++ int detected = 1; \
++ if (__gpio_get_pin(GPIO_SD_CD_N)) \
++ detected = 0; \
++ detected; \
++})
++
++#endif /* __ASM_JZ4740_PAVO_H__ */
+diff -ruN linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/board-qi_lb60.h linux-2.6.31/arch/mips/include/asm/mach-jz4740/board-qi_lb60.h
+--- linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/board-qi_lb60.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/include/asm/mach-jz4740/board-qi_lb60.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,88 @@
++/*
++ * Copyright (c) 2009 Qi Hardware Inc.,
++ * Author: Xiangfu Liu <xiangfu@qi-hardware.com>
++ *
++ * This program is free software: you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation, either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#ifndef __ASM_JZ4740_QI_LB60_H__
++#define __ASM_JZ4740_QI_LB60_H__
++
++#include <linux/gpio.h>
++/*
++ * Frequencies of on-board oscillators
++ */
++#define JZ_EXTAL 12000000 /* Main extal freq: 12 MHz */
++#define JZ_EXTAL_RTC 32768 /* RTC extal freq: 32.768 KHz */
++
++/*
++ * GPIO
++ */
++#define GPIO_DC_DETE_N JZ_GPIO_PORTC(26)
++#define GPIO_CHARG_STAT_N JZ_GPIO_PORTC(27)
++#define GPIO_LED_EN JZ_GPIO_PORTC(28)
++#define GPIO_LCD_CS JZ_GPIO_PORTC(21)
++#define GPIO_DISP_OFF_N JZ_GPIO_PORTD(21)
++#define GPIO_PWM JZ_GPIO_PORTD(27)
++#define GPIO_WAKEUP_N JZ_GPIO_PORTD(29)
++
++#define GPIO_AMP_EN JZ_GPIO_PORTD(4)
++
++#define GPIO_SD_CD_N JZ_GPIO_PORTD(0)
++#define GPIO_SD_VCC_EN_N JZ_GPIO_PORTD(2)
++#define GPIO_SD_WP JZ_GPIO_PORTD(16)
++
++#define GPIO_USB_DETE JZ_GPIO_PORTD(28)
++#define GPIO_BUZZ_PWM JZ_GPIO_PORTD(27)
++#define GPIO_UDC_HOTPLUG GPIO_USB_DETE
++
++#define GPIO_AUDIO_POP JZ_GPIO_PORTB(29)
++#define GPIO_COB_TEST JZ_GPIO_PORTB(30)
++
++#define GPIO_KEYOUT_BASE JZ_GPIO_PORTC(10)
++#define GPIO_KEYIN_BASE JZ_GPIO_PORTD(18)
++#define GPIO_KEYIN_8 JZ_GPIO_PORTD(26)
++
++/*
++ * MMC/SD
++ */
++#define MSC_WP_PIN GPIO_SD_WP
++#define MSC_HOTPLUG_PIN GPIO_SD_CD_N
++#define MSC_HOTPLUG_IRQ (IRQ_GPIO_0 + GPIO_SD_CD_N)
++
++#define __msc_init_io() \
++do { \
++ __gpio_as_output(GPIO_SD_VCC_EN_N); \
++ __gpio_as_input(GPIO_SD_CD_N); \
++} while (0)
++
++#define __msc_enable_power() \
++do { \
++ __gpio_clear_pin(GPIO_SD_VCC_EN_N); \
++} while (0)
++
++#define __msc_disable_power() \
++do { \
++ __gpio_set_pin(GPIO_SD_VCC_EN_N); \
++} while (0)
++
++#define __msc_card_detected(s) \
++({ \
++ int detected = 1; \
++ if (!__gpio_get_pin(GPIO_SD_CD_N)) \
++ detected = 0; \
++ detected; \
++})
++
++#endif /* __ASM_JZ4740_QI_LB60_H__ */
+diff -ruN linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/board-virgo.h linux-2.6.31/arch/mips/include/asm/mach-jz4740/board-virgo.h
+--- linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/board-virgo.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/include/asm/mach-jz4740/board-virgo.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,67 @@
++/*
++ * linux/include/asm-mips/mach-jz4740/board-virgo.h
++ *
++ * JZ4720-based VIRGO board ver 1.x definition.
++ *
++ * Copyright (C) 2006 - 2007 Ingenic Semiconductor Inc.
++ *
++ * Author: <lhhuang@ingenic.cn>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#ifndef __ASM_JZ4720_VIRGO_H__
++#define __ASM_JZ4720_VIRGO_H__
++
++/*======================================================================
++ * Frequencies of on-board oscillators
++ */
++#define JZ_EXTAL 12000000 /* Main extal freq: 12 MHz */
++#define JZ_EXTAL2 32768 /* RTC extal freq: 32.768 KHz */
++
++/*======================================================================
++ * GPIO VIRGO(JZ4720)
++ */
++#define GPIO_SD_VCC_EN_N 115 /* GPD19 */
++#define GPIO_SD_CD_N 116 /* GPD20 */
++#define GPIO_USB_DETE 114 /* GPD18 */
++#define GPIO_DC_DETE_N 120 /* GPD24 */
++#define GPIO_DISP_OFF_N 118 /* GPD22 */
++#define GPIO_LED_EN 117 /* GPD21 */
++
++#define GPIO_UDC_HOTPLUG GPIO_USB_DETE
++
++/*======================================================================
++ * MMC/SD
++ */
++
++#define MSC_HOTPLUG_PIN GPIO_SD_CD_N
++#define MSC_HOTPLUG_IRQ (IRQ_GPIO_0 + GPIO_SD_CD_N)
++
++#define __msc_init_io() \
++do { \
++ __gpio_as_output(GPIO_SD_VCC_EN_N); \
++ __gpio_as_input(GPIO_SD_CD_N); \
++} while (0)
++
++#define __msc_enable_power() \
++do { \
++ __gpio_clear_pin(GPIO_SD_VCC_EN_N); \
++} while (0)
++
++#define __msc_disable_power() \
++do { \
++ __gpio_set_pin(GPIO_SD_VCC_EN_N); \
++} while (0)
++
++#define __msc_card_detected(s) \
++({ \
++ int detected = 1; \
++ if (__gpio_get_pin(GPIO_SD_CD_N)) \
++ detected = 0; \
++ detected; \
++})
++
++#endif /* __ASM_JZ4720_VIRGO_H__ */
+diff -ruN linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/clock.h linux-2.6.31/arch/mips/include/asm/mach-jz4740/clock.h
+--- linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/clock.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/include/asm/mach-jz4740/clock.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,175 @@
++/*
++ * linux/include/asm-mips/mach-jz4740/clock.h
++ *
++ * JZ4740 clocks definition.
++ *
++ * Copyright (C) 2006 - 2007 Ingenic Semiconductor Inc.
++ *
++ * Author: <lhhuang@ingenic.cn>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#ifndef __ASM_JZ4740_CLOCK_H__
++#define __ASM_JZ4740_CLOCK_H__
++
++#ifndef JZ_EXTAL
++//#define JZ_EXTAL 3686400 /* 3.6864 MHz */
++#define JZ_EXTAL 12000000 /* 3.6864 MHz */
++#endif
++#ifndef JZ_EXTAL2
++#define JZ_EXTAL2 32768 /* 32.768 KHz */
++#endif
++
++/*
++ * JZ4740 clocks structure
++ */
++typedef struct {
++ unsigned int cclk; /* CPU clock */
++ unsigned int hclk; /* System bus clock */
++ unsigned int pclk; /* Peripheral bus clock */
++ unsigned int mclk; /* Flash/SRAM/SDRAM clock */
++ unsigned int lcdclk; /* LCDC module clock */
++ unsigned int pixclk; /* LCD pixel clock */
++ unsigned int i2sclk; /* AIC module clock */
++ unsigned int usbclk; /* USB module clock */
++ unsigned int mscclk; /* MSC module clock */
++ unsigned int extalclk; /* EXTAL clock for UART,I2C,SSI,TCU,USB-PHY */
++ unsigned int rtcclk; /* RTC clock for CPM,INTC,RTC,TCU,WDT */
++} jz_clocks_t;
++
++extern jz_clocks_t jz_clocks;
++
++
++/* PLL output frequency */
++static __inline__ unsigned int __cpm_get_pllout(void)
++{
++ unsigned long m, n, no, pllout;
++ unsigned long cppcr = REG_CPM_CPPCR;
++ unsigned long od[4] = {1, 2, 2, 4};
++ if ((cppcr & CPM_CPPCR_PLLEN) && !(cppcr & CPM_CPPCR_PLLBP)) {
++ m = __cpm_get_pllm() + 2;
++ n = __cpm_get_plln() + 2;
++ no = od[__cpm_get_pllod()];
++ pllout = ((JZ_EXTAL) / (n * no)) * m;
++ } else
++ pllout = JZ_EXTAL;
++ return pllout;
++}
++
++/* PLL output frequency for MSC/I2S/LCD/USB */
++static __inline__ unsigned int __cpm_get_pllout2(void)
++{
++ if (REG_CPM_CPCCR & CPM_CPCCR_PCS)
++ return __cpm_get_pllout();
++ else
++ return __cpm_get_pllout()/2;
++}
++
++/* CPU core clock */
++static __inline__ unsigned int __cpm_get_cclk(void)
++{
++ int div[] = {1, 2, 3, 4, 6, 8, 12, 16, 24, 32};
++
++ return __cpm_get_pllout() / div[__cpm_get_cdiv()];
++}
++
++/* AHB system bus clock */
++static __inline__ unsigned int __cpm_get_hclk(void)
++{
++ int div[] = {1, 2, 3, 4, 6, 8, 12, 16, 24, 32};
++
++ return __cpm_get_pllout() / div[__cpm_get_hdiv()];
++}
++
++/* Memory bus clock */
++static __inline__ unsigned int __cpm_get_mclk(void)
++{
++ int div[] = {1, 2, 3, 4, 6, 8, 12, 16, 24, 32};
++
++ return __cpm_get_pllout() / div[__cpm_get_mdiv()];
++}
++
++/* APB peripheral bus clock */
++static __inline__ unsigned int __cpm_get_pclk(void)
++{
++ int div[] = {1, 2, 3, 4, 6, 8, 12, 16, 24, 32};
++
++ return __cpm_get_pllout() / div[__cpm_get_pdiv()];
++}
++
++/* LCDC module clock */
++static __inline__ unsigned int __cpm_get_lcdclk(void)
++{
++ return __cpm_get_pllout2() / (__cpm_get_ldiv() + 1);
++}
++
++/* LCD pixel clock */
++static __inline__ unsigned int __cpm_get_pixclk(void)
++{
++ return __cpm_get_pllout2() / (__cpm_get_pixdiv() + 1);
++}
++
++/* I2S clock */
++static __inline__ unsigned int __cpm_get_i2sclk(void)
++{
++ if (REG_CPM_CPCCR & CPM_CPCCR_I2CS) {
++ return __cpm_get_pllout2() / (__cpm_get_i2sdiv() + 1);
++ }
++ else {
++ return JZ_EXTAL;
++ }
++}
++
++/* USB clock */
++static __inline__ unsigned int __cpm_get_usbclk(void)
++{
++ if (REG_CPM_CPCCR & CPM_CPCCR_UCS) {
++ return __cpm_get_pllout2() / (__cpm_get_udiv() + 1);
++ }
++ else {
++ return JZ_EXTAL;
++ }
++}
++
++/* MSC clock */
++static __inline__ unsigned int __cpm_get_mscclk(void)
++{
++ return __cpm_get_pllout2() / (__cpm_get_mscdiv() + 1);
++}
++
++/* EXTAL clock for UART,I2C,SSI,TCU,USB-PHY */
++static __inline__ unsigned int __cpm_get_extalclk(void)
++{
++ return JZ_EXTAL;
++}
++
++/* RTC clock for CPM,INTC,RTC,TCU,WDT */
++static __inline__ unsigned int __cpm_get_rtcclk(void)
++{
++ return JZ_EXTAL2;
++}
++
++/*
++ * Output 24MHz for SD and 16MHz for MMC.
++ */
++static inline void __cpm_select_msc_clk(int sd)
++{
++ unsigned int pllout2 = __cpm_get_pllout2();
++ unsigned int div = 0;
++
++ if (sd) {
++ div = pllout2 / 24000000;
++ }
++ else {
++ div = pllout2 / 16000000;
++ }
++
++ REG_CPM_MSCCDR = div - 1;
++}
++
++int jz_init_clocks(unsigned long ext_rate);
++
++#endif /* __ASM_JZ4740_CLOCK_H__ */
+diff -ruN linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/dma.h linux-2.6.31/arch/mips/include/asm/mach-jz4740/dma.h
+--- linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/dma.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/include/asm/mach-jz4740/dma.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,265 @@
++/*
++ * linux/include/asm-mips/mach-jz4740/dma.h
++ *
++ * JZ4740 DMA definition.
++ *
++ * Copyright (C) 2006 - 2007 Ingenic Semiconductor Inc.
++ *
++ * Author: <lhhuang@ingenic.cn>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#ifndef __ASM_JZ4740_DMA_H__
++#define __ASM_JZ4740_DMA_H__
++
++#include <linux/interrupt.h>
++#include <asm/io.h> /* need byte IO */
++#include <linux/spinlock.h> /* And spinlocks */
++#include <linux/delay.h>
++#include <asm/system.h>
++
++/*
++ * Descriptor structure for JZ4740 DMA engine
++ * Note: this structure must always be aligned to a 16-bytes boundary.
++ */
++
++typedef struct {
++ volatile u32 dcmd; /* DCMD value for the current transfer */
++ volatile u32 dsadr; /* DSAR value for the current transfer */
++ volatile u32 dtadr; /* DTAR value for the current transfer */
++ volatile u32 ddadr; /* Points to the next descriptor + transfer count */
++} jz_dma_desc;
++
++
++/* DMA Device ID's follow */
++enum {
++ DMA_ID_UART0_TX = 0,
++ DMA_ID_UART0_RX,
++ DMA_ID_SSI_TX,
++ DMA_ID_SSI_RX,
++ DMA_ID_AIC_TX,
++ DMA_ID_AIC_RX,
++ DMA_ID_MSC_TX,
++ DMA_ID_MSC_RX,
++ DMA_ID_TCU_OVERFLOW,
++ DMA_ID_AUTO,
++ DMA_ID_RAW_SET,
++ DMA_ID_MAX
++};
++
++/* DMA modes, simulated by sw */
++#define DMA_MODE_READ 0x0 /* I/O to memory, no autoinit, increment, single mode */
++#define DMA_MODE_WRITE 0x1 /* memory to I/O, no autoinit, increment, single mode */
++#define DMA_AUTOINIT 0x2
++#define DMA_MODE_MASK 0x3
++
++struct jz_dma_chan {
++ int dev_id; /* DMA ID: this channel is allocated if >=0, free otherwise */
++ unsigned int io; /* DMA channel number */
++ const char *dev_str; /* string describes the DMA channel */
++ int irq; /* DMA irq number */
++ void *irq_dev; /* DMA private device structure */
++ unsigned int fifo_addr; /* physical fifo address of the requested device */
++ unsigned int cntl; /* DMA controll */
++ unsigned int mode; /* DMA configuration */
++ unsigned int source; /* DMA request source */
++};
++
++extern struct jz_dma_chan jz_dma_table[];
++
++
++#define DMA_8BIT_RX_CMD \
++ DMAC_DCMD_DAI | \
++ DMAC_DCMD_SWDH_8 | DMAC_DCMD_DWDH_32 | \
++ DMAC_DCMD_DS_8BIT | DMAC_DCMD_RDIL_IGN
++
++#define DMA_8BIT_TX_CMD \
++ DMAC_DCMD_SAI | \
++ DMAC_DCMD_SWDH_32 | DMAC_DCMD_DWDH_8 | \
++ DMAC_DCMD_DS_8BIT | DMAC_DCMD_RDIL_IGN
++
++#define DMA_16BIT_RX_CMD \
++ DMAC_DCMD_DAI | \
++ DMAC_DCMD_SWDH_16 | DMAC_DCMD_DWDH_32 | \
++ DMAC_DCMD_DS_16BIT | DMAC_DCMD_RDIL_IGN
++
++#define DMA_16BIT_TX_CMD \
++ DMAC_DCMD_SAI | \
++ DMAC_DCMD_SWDH_32 | DMAC_DCMD_DWDH_16 | \
++ DMAC_DCMD_DS_16BIT | DMAC_DCMD_RDIL_IGN
++
++#define DMA_32BIT_RX_CMD \
++ DMAC_DCMD_DAI | \
++ DMAC_DCMD_SWDH_32 | DMAC_DCMD_DWDH_32 | \
++ DMAC_DCMD_DS_32BIT | DMAC_DCMD_RDIL_IGN
++
++#define DMA_32BIT_TX_CMD \
++ DMAC_DCMD_SAI | \
++ DMAC_DCMD_SWDH_32 | DMAC_DCMD_DWDH_32 | \
++ DMAC_DCMD_DS_32BIT | DMAC_DCMD_RDIL_IGN
++
++#define DMA_16BYTE_RX_CMD \
++ DMAC_DCMD_DAI | \
++ DMAC_DCMD_SWDH_8 | DMAC_DCMD_DWDH_32 | \
++ DMAC_DCMD_DS_16BYTE | DMAC_DCMD_RDIL_IGN
++
++#define DMA_16BYTE_TX_CMD \
++ DMAC_DCMD_SAI | \
++ DMAC_DCMD_SWDH_32 | DMAC_DCMD_DWDH_8 | \
++ DMAC_DCMD_DS_16BYTE | DMAC_DCMD_RDIL_IGN
++
++#define DMA_32BYTE_RX_CMD \
++ DMAC_DCMD_DAI | \
++ DMAC_DCMD_SWDH_8 | DMAC_DCMD_DWDH_32 | \
++ DMAC_DCMD_DS_32BYTE | DMAC_DCMD_RDIL_IGN
++
++#define DMA_32BYTE_TX_CMD \
++ DMAC_DCMD_SAI | \
++ DMAC_DCMD_SWDH_32 | DMAC_DCMD_DWDH_8 | \
++ DMAC_DCMD_DS_32BYTE | DMAC_DCMD_RDIL_IGN
++
++#define DMA_AIC_32_16BYTE_TX_CMD \
++ DMAC_DCMD_SAI | \
++ DMAC_DCMD_SWDH_32 | DMAC_DCMD_DWDH_32 | \
++ DMAC_DCMD_DS_16BYTE | DMAC_DCMD_RDIL_IGN
++
++#define DMA_AIC_32_16BYTE_RX_CMD \
++ DMAC_DCMD_DAI | \
++ DMAC_DCMD_SWDH_32 | DMAC_DCMD_DWDH_32 | \
++ DMAC_DCMD_DS_16BYTE | DMAC_DCMD_RDIL_IGN
++
++#define DMA_AIC_16BIT_TX_CMD \
++ DMAC_DCMD_SAI | \
++ DMAC_DCMD_SWDH_16 | DMAC_DCMD_DWDH_16 | \
++ DMAC_DCMD_DS_16BIT | DMAC_DCMD_RDIL_IGN
++
++#define DMA_AIC_16BIT_RX_CMD \
++ DMAC_DCMD_DAI | \
++ DMAC_DCMD_SWDH_16 | DMAC_DCMD_DWDH_16 | \
++ DMAC_DCMD_DS_16BIT | DMAC_DCMD_RDIL_IGN
++
++#define DMA_AIC_16BYTE_RX_CMD \
++ DMAC_DCMD_DAI | \
++ DMAC_DCMD_SWDH_16 | DMAC_DCMD_DWDH_16 | \
++ DMAC_DCMD_DS_16BYTE | DMAC_DCMD_RDIL_IGN
++
++#define DMA_AIC_16BYTE_TX_CMD \
++ DMAC_DCMD_SAI | \
++ DMAC_DCMD_SWDH_16 | DMAC_DCMD_DWDH_16 | \
++ DMAC_DCMD_DS_16BYTE | DMAC_DCMD_RDIL_IGN
++
++extern int jz_request_dma(int dev_id,
++ const char *dev_str,
++ irqreturn_t (*irqhandler)(int, void *),
++ unsigned long irqflags,
++ void *irq_dev_id);
++extern void jz_free_dma(unsigned int dmanr);
++
++extern int jz_dma_read_proc(char *buf, char **start, off_t fpos,
++ int length, int *eof, void *data);
++extern void dump_jz_dma_channel(unsigned int dmanr);
++
++extern void enable_dma(unsigned int dmanr);
++extern void disable_dma(unsigned int dmanr);
++extern void set_dma_addr(unsigned int dmanr, unsigned int phyaddr);
++extern void set_dma_count(unsigned int dmanr, unsigned int bytecnt);
++extern void set_dma_mode(unsigned int dmanr, unsigned int mode);
++extern void jz_set_oss_dma(unsigned int dmanr, unsigned int mode, unsigned int audio_fmt);
++extern void jz_set_alsa_dma(unsigned int dmanr, unsigned int mode, unsigned int audio_fmt);
++extern unsigned int get_dma_residue(unsigned int dmanr);
++
++extern spinlock_t dma_spin_lock;
++
++static __inline__ unsigned long claim_dma_lock(void)
++{
++ unsigned long flags;
++ spin_lock_irqsave(&dma_spin_lock, flags);
++ return flags;
++}
++
++static __inline__ void release_dma_lock(unsigned long flags)
++{
++ spin_unlock_irqrestore(&dma_spin_lock, flags);
++}
++
++/* Clear the 'DMA Pointer Flip Flop'.
++ * Write 0 for LSB/MSB, 1 for MSB/LSB access.
++ */
++#define clear_dma_ff(channel)
++
++static __inline__ struct jz_dma_chan *get_dma_chan(unsigned int dmanr)
++{
++ if (dmanr > MAX_DMA_NUM
++ || jz_dma_table[dmanr].dev_id < 0)
++ return NULL;
++ return &jz_dma_table[dmanr];
++}
++
++static __inline__ int dma_halted(unsigned int dmanr)
++{
++ struct jz_dma_chan *chan = get_dma_chan(dmanr);
++ if (!chan)
++ return 1;
++ return __dmac_channel_transmit_halt_detected(dmanr) ? 1 : 0;
++}
++
++static __inline__ unsigned int get_dma_mode(unsigned int dmanr)
++{
++ struct jz_dma_chan *chan = get_dma_chan(dmanr);
++ if (!chan)
++ return 0;
++ return chan->mode;
++}
++
++static __inline__ void clear_dma_done(unsigned int dmanr)
++{
++ struct jz_dma_chan *chan = get_dma_chan(dmanr);
++ if (!chan)
++ return;
++ REG_DMAC_DCCSR(chan->io) &= ~(DMAC_DCCSR_HLT | DMAC_DCCSR_TT | DMAC_DCCSR_AR);
++}
++
++static __inline__ void clear_dma_halt(unsigned int dmanr)
++{
++ struct jz_dma_chan *chan = get_dma_chan(dmanr);
++ if (!chan)
++ return;
++ REG_DMAC_DCCSR(chan->io) &= ~(DMAC_DCCSR_HLT);
++ REG_DMAC_DMACR &= ~(DMAC_DMACR_HLT);
++}
++
++static __inline__ void clear_dma_flag(unsigned int dmanr)
++{
++ struct jz_dma_chan *chan = get_dma_chan(dmanr);
++ if (!chan)
++ return;
++ REG_DMAC_DCCSR(chan->io) &= ~(DMAC_DCCSR_HLT | DMAC_DCCSR_TT | DMAC_DCCSR_AR);
++ REG_DMAC_DMACR &= ~(DMAC_DMACR_HLT | DMAC_DMACR_AR);
++}
++
++static __inline__ void set_dma_page(unsigned int dmanr, char pagenr)
++{
++}
++
++static __inline__ unsigned int get_dma_done_status(unsigned int dmanr)
++{
++ unsigned long dccsr;
++ struct jz_dma_chan *chan = get_dma_chan(dmanr);
++ if (!chan)
++ return 0;
++ dccsr = REG_DMAC_DCCSR(chan->io);
++ return dccsr & (DMAC_DCCSR_HLT | DMAC_DCCSR_TT | DMAC_DCCSR_AR);
++}
++
++static __inline__ int get_dma_done_irq(unsigned int dmanr)
++{
++ struct jz_dma_chan *chan = get_dma_chan(dmanr);
++ if (!chan)
++ return -1;
++ return chan->irq;
++}
++
++#endif /* __ASM_JZ4740_DMA_H__ */
+diff -ruN linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/gpio.h linux-2.6.31/arch/mips/include/asm/mach-jz4740/gpio.h
+--- linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/gpio.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/include/asm/mach-jz4740/gpio.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,386 @@
++/*
++ * Copyright (C) 2009, Lars-Peter Clausen <lars@metafoo.de>
++ * JZ7420/JZ4740 GPIO pin definitions
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#ifndef _JZ_GPIO_H
++#define _JZ_GPIO_H
++
++#include <linux/types.h>
++
++enum jz_gpio_function {
++ JZ_GPIO_FUNC_NONE,
++ JZ_GPIO_FUNC1,
++ JZ_GPIO_FUNC2,
++ JZ_GPIO_FUNC3,
++};
++
++
++/*
++ Usually a driver for a SoC component has to request several gpio pins and
++ configure them as funcion pins.
++ jz_gpio_bulk_request can be used to ease this process.
++ Usually one would do something like:
++
++ const static struct jz_gpio_bulk_request i2c_pins[] = {
++ JZ_GPIO_BULK_PIN(I2C_SDA),
++ JZ_GPIO_BULK_PIN(I2C_SCK),
++ };
++
++ inside the probe function:
++
++ ret = jz_gpio_bulk_request(i2c_pins, ARRAY_SIZE(i2c_pins));
++ if (ret) {
++ ...
++
++ inside the remove function:
++
++ jz_gpio_bulk_free(i2c_pins, ARRAY_SIZE(i2c_pins));
++
++
++*/
++struct jz_gpio_bulk_request {
++ int gpio;
++ const char *name;
++ enum jz_gpio_function function;
++};
++
++#define JZ_GPIO_BULK_PIN(pin) { \
++ .gpio = JZ_GPIO_ ## pin, \
++ .name = #pin, \
++ .function = JZ_GPIO_FUNC_ ## pin \
++}
++
++int jz_gpio_bulk_request(const struct jz_gpio_bulk_request *request, size_t num);
++void jz_gpio_bulk_free(const struct jz_gpio_bulk_request *request, size_t num);
++void jz_gpio_enable_pullup(unsigned gpio);
++void jz_gpio_disable_pullup(unsigned gpio);
++int jz_gpio_set_function(int gpio, enum jz_gpio_function function);
++
++#include <asm/mach-generic/gpio.h>
++
++#define JZ_GPIO_PORTA(x) (x + 32 * 0)
++#define JZ_GPIO_PORTB(x) (x + 32 * 1)
++#define JZ_GPIO_PORTC(x) (x + 32 * 2)
++#define JZ_GPIO_PORTD(x) (x + 32 * 3)
++
++/* Port A function pins */
++#define JZ_GPIO_MEM_DATA0 JZ_GPIO_PORTA(0)
++#define JZ_GPIO_MEM_DATA1 JZ_GPIO_PORTA(1)
++#define JZ_GPIO_MEM_DATA2 JZ_GPIO_PORTA(2)
++#define JZ_GPIO_MEM_DATA3 JZ_GPIO_PORTA(3)
++#define JZ_GPIO_MEM_DATA4 JZ_GPIO_PORTA(4)
++#define JZ_GPIO_MEM_DATA5 JZ_GPIO_PORTA(5)
++#define JZ_GPIO_MEM_DATA6 JZ_GPIO_PORTA(6)
++#define JZ_GPIO_MEM_DATA7 JZ_GPIO_PORTA(7)
++#define JZ_GPIO_MEM_DATA8 JZ_GPIO_PORTA(8)
++#define JZ_GPIO_MEM_DATA9 JZ_GPIO_PORTA(9)
++#define JZ_GPIO_MEM_DATA10 JZ_GPIO_PORTA(10)
++#define JZ_GPIO_MEM_DATA11 JZ_GPIO_PORTA(11)
++#define JZ_GPIO_MEM_DATA12 JZ_GPIO_PORTA(12)
++#define JZ_GPIO_MEM_DATA13 JZ_GPIO_PORTA(13)
++#define JZ_GPIO_MEM_DATA14 JZ_GPIO_PORTA(14)
++#define JZ_GPIO_MEM_DATA15 JZ_GPIO_PORTA(15)
++#define JZ_GPIO_MEM_DATA16 JZ_GPIO_PORTA(16)
++#define JZ_GPIO_MEM_DATA17 JZ_GPIO_PORTA(17)
++#define JZ_GPIO_MEM_DATA18 JZ_GPIO_PORTA(18)
++#define JZ_GPIO_MEM_DATA19 JZ_GPIO_PORTA(19)
++#define JZ_GPIO_MEM_DATA20 JZ_GPIO_PORTA(20)
++#define JZ_GPIO_MEM_DATA21 JZ_GPIO_PORTA(21)
++#define JZ_GPIO_MEM_DATA22 JZ_GPIO_PORTA(22)
++#define JZ_GPIO_MEM_DATA23 JZ_GPIO_PORTA(23)
++#define JZ_GPIO_MEM_DATA24 JZ_GPIO_PORTA(24)
++#define JZ_GPIO_MEM_DATA25 JZ_GPIO_PORTA(25)
++#define JZ_GPIO_MEM_DATA26 JZ_GPIO_PORTA(26)
++#define JZ_GPIO_MEM_DATA27 JZ_GPIO_PORTA(27)
++#define JZ_GPIO_MEM_DATA28 JZ_GPIO_PORTA(28)
++#define JZ_GPIO_MEM_DATA29 JZ_GPIO_PORTA(29)
++#define JZ_GPIO_MEM_DATA30 JZ_GPIO_PORTA(30)
++#define JZ_GPIO_MEM_DATA31 JZ_GPIO_PORTA(31)
++
++#define JZ_GPIO_FUNC_MEM_DATA0 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA1 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA2 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA3 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA4 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA5 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA6 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA7 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA8 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA9 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA10 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA11 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA12 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA13 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA14 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA15 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA16 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA17 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA18 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA19 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA20 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA21 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA22 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA23 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA24 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA25 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA26 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA27 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA28 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA29 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA30 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DATA31 JZ_GPIO_FUNC1
++
++/* Port B function pins */
++#define JZ_GPIO_MEM_ADDR0 JZ_GPIO_PORTB(0)
++#define JZ_GPIO_MEM_ADDR1 JZ_GPIO_PORTB(1)
++#define JZ_GPIO_MEM_ADDR2 JZ_GPIO_PORTB(2)
++#define JZ_GPIO_MEM_ADDR3 JZ_GPIO_PORTB(3)
++#define JZ_GPIO_MEM_ADDR4 JZ_GPIO_PORTB(4)
++#define JZ_GPIO_MEM_ADDR5 JZ_GPIO_PORTB(5)
++#define JZ_GPIO_MEM_ADDR6 JZ_GPIO_PORTB(6)
++#define JZ_GPIO_MEM_ADDR7 JZ_GPIO_PORTB(7)
++#define JZ_GPIO_MEM_ADDR8 JZ_GPIO_PORTB(8)
++#define JZ_GPIO_MEM_ADDR9 JZ_GPIO_PORTB(9)
++#define JZ_GPIO_MEM_ADDR10 JZ_GPIO_PORTB(10)
++#define JZ_GPIO_MEM_ADDR11 JZ_GPIO_PORTB(11)
++#define JZ_GPIO_MEM_ADDR12 JZ_GPIO_PORTB(12)
++#define JZ_GPIO_MEM_ADDR13 JZ_GPIO_PORTB(13)
++#define JZ_GPIO_MEM_ADDR14 JZ_GPIO_PORTB(14)
++#define JZ_GPIO_MEM_ADDR15 JZ_GPIO_PORTB(15)
++#define JZ_GPIO_MEM_ADDR16 JZ_GPIO_PORTB(16)
++#define JZ_GPIO_MEM_CLS JZ_GPIO_PORTB(17)
++#define JZ_GPIO_MEM_SPL JZ_GPIO_PORTB(18)
++#define JZ_GPIO_MEM_DCS JZ_GPIO_PORTB(19)
++#define JZ_GPIO_MEM_RAS JZ_GPIO_PORTB(20)
++#define JZ_GPIO_MEM_CAS JZ_GPIO_PORTB(21)
++#define JZ_GPIO_MEM_SDWE JZ_GPIO_PORTB(22)
++#define JZ_GPIO_MEM_CKE JZ_GPIO_PORTB(23)
++#define JZ_GPIO_MEM_CKO JZ_GPIO_PORTB(24)
++#define JZ_GPIO_MEM_CS0 JZ_GPIO_PORTB(25)
++#define JZ_GPIO_MEM_CS1 JZ_GPIO_PORTB(26)
++#define JZ_GPIO_MEM_CS2 JZ_GPIO_PORTB(27)
++#define JZ_GPIO_MEM_CS3 JZ_GPIO_PORTB(28)
++#define JZ_GPIO_MEM_RD JZ_GPIO_PORTB(29)
++#define JZ_GPIO_MEM_WR JZ_GPIO_PORTB(30)
++#define JZ_GPIO_MEM_WE0 JZ_GPIO_PORTB(31)
++
++#define JZ_GPIO_FUNC_MEM_ADDR0 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_ADDR1 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_ADDR2 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_ADDR3 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_ADDR4 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_ADDR5 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_ADDR6 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_ADDR7 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_ADDR8 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_ADDR9 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_ADDR10 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_ADDR11 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_ADDR12 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_ADDR13 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_ADDR14 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_ADDR15 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_ADDR16 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_CLS JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_SPL JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_DCS JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_RAS JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_CAS JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_SDWE JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_CKE JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_CKO JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_CS0 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_CS1 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_CS2 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_CS3 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_RD JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_WR JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_WE0 JZ_GPIO_FUNC1
++
++
++#define JZ_GPIO_MEM_ADDR21 JZ_GPIO_PORTB(17)
++#define JZ_GPIO_MEM_ADDR22 JZ_GPIO_PORTB(18)
++
++#define JZ_GPIO_FUNC_MEM_ADDR21 JZ_GPIO_FUNC2
++#define JZ_GPIO_FUNC_MEM_ADDR22 JZ_GPIO_FUNC2
++
++/* Port C function pins */
++#define JZ_GPIO_LCD_DATA0 JZ_GPIO_PORTC(0)
++#define JZ_GPIO_LCD_DATA1 JZ_GPIO_PORTC(1)
++#define JZ_GPIO_LCD_DATA2 JZ_GPIO_PORTC(2)
++#define JZ_GPIO_LCD_DATA3 JZ_GPIO_PORTC(3)
++#define JZ_GPIO_LCD_DATA4 JZ_GPIO_PORTC(4)
++#define JZ_GPIO_LCD_DATA5 JZ_GPIO_PORTC(5)
++#define JZ_GPIO_LCD_DATA6 JZ_GPIO_PORTC(6)
++#define JZ_GPIO_LCD_DATA7 JZ_GPIO_PORTC(7)
++#define JZ_GPIO_LCD_DATA8 JZ_GPIO_PORTC(8)
++#define JZ_GPIO_LCD_DATA9 JZ_GPIO_PORTC(9)
++#define JZ_GPIO_LCD_DATA10 JZ_GPIO_PORTC(10)
++#define JZ_GPIO_LCD_DATA11 JZ_GPIO_PORTC(11)
++#define JZ_GPIO_LCD_DATA12 JZ_GPIO_PORTC(12)
++#define JZ_GPIO_LCD_DATA13 JZ_GPIO_PORTC(13)
++#define JZ_GPIO_LCD_DATA14 JZ_GPIO_PORTC(14)
++#define JZ_GPIO_LCD_DATA15 JZ_GPIO_PORTC(15)
++#define JZ_GPIO_LCD_DATA16 JZ_GPIO_PORTC(16)
++#define JZ_GPIO_LCD_DATA17 JZ_GPIO_PORTC(17)
++#define JZ_GPIO_LCD_PCLK JZ_GPIO_PORTC(18)
++#define JZ_GPIO_LCD_HSYNC JZ_GPIO_PORTC(19)
++#define JZ_GPIO_LCD_VSYNC JZ_GPIO_PORTC(20)
++#define JZ_GPIO_LCD_DE JZ_GPIO_PORTC(21)
++#define JZ_GPIO_LCD_PS JZ_GPIO_PORTC(22)
++#define JZ_GPIO_LCD_REV JZ_GPIO_PORTC(23)
++#define JZ_GPIO_MEM_WE1 JZ_GPIO_PORTC(24)
++#define JZ_GPIO_MEM_WE2 JZ_GPIO_PORTC(25)
++#define JZ_GPIO_MEM_WE3 JZ_GPIO_PORTC(26)
++#define JZ_GPIO_MEM_WAIT JZ_GPIO_PORTC(27)
++#define JZ_GPIO_MEM_FRE JZ_GPIO_PORTC(28)
++#define JZ_GPIO_MEM_FWE JZ_GPIO_PORTC(29)
++
++#define JZ_GPIO_FUNC_LCD_DATA0 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_DATA1 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_DATA2 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_DATA3 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_DATA4 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_DATA5 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_DATA6 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_DATA7 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_DATA8 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_DATA9 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_DATA10 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_DATA11 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_DATA12 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_DATA13 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_DATA14 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_DATA15 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_DATA16 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_DATA17 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_PCLK JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_VSYNC JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_HSYNC JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_DE JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_PS JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_LCD_REV JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_WE1 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_WE2 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_WE3 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_WAIT JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_FRE JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MEM_FWE JZ_GPIO_FUNC1
++
++
++#define JZ_GPIO_MEM_ADDR19 JZ_GPIO_PORTB(22)
++#define JZ_GPIO_MEM_ADDR20 JZ_GPIO_PORTB(23)
++
++#define JZ_GPIO_FUNC_MEM_ADDR19 JZ_GPIO_FUNC2
++#define JZ_GPIO_FUNC_MEM_ADDR20 JZ_GPIO_FUNC2
++
++/* Port D function pins */
++#define JZ_GPIO_CIM_DATA0 JZ_GPIO_PORTD(0)
++#define JZ_GPIO_CIM_DATA1 JZ_GPIO_PORTD(1)
++#define JZ_GPIO_CIM_DATA2 JZ_GPIO_PORTD(2)
++#define JZ_GPIO_CIM_DATA3 JZ_GPIO_PORTD(3)
++#define JZ_GPIO_CIM_DATA4 JZ_GPIO_PORTD(4)
++#define JZ_GPIO_CIM_DATA5 JZ_GPIO_PORTD(5)
++#define JZ_GPIO_CIM_DATA6 JZ_GPIO_PORTD(6)
++#define JZ_GPIO_CIM_DATA7 JZ_GPIO_PORTD(7)
++#define JZ_GPIO_MSC_CMD JZ_GPIO_PORTD(8)
++#define JZ_GPIO_MSC_CLK JZ_GPIO_PORTD(9)
++#define JZ_GPIO_MSC_DATA0 JZ_GPIO_PORTD(10)
++#define JZ_GPIO_MSC_DATA1 JZ_GPIO_PORTD(11)
++#define JZ_GPIO_MSC_DATA2 JZ_GPIO_PORTD(12)
++#define JZ_GPIO_MSC_DATA3 JZ_GPIO_PORTD(13)
++#define JZ_GPIO_CIM_MCLK JZ_GPIO_PORTD(14)
++#define JZ_GPIO_CIM_PCLK JZ_GPIO_PORTD(15)
++#define JZ_GPIO_CIM_VSYNC JZ_GPIO_PORTD(16)
++#define JZ_GPIO_CIM_HSYNC JZ_GPIO_PORTD(17)
++#define JZ_GPIO_SPI_CLK JZ_GPIO_PORTD(18)
++#define JZ_GPIO_SPI_CE0 JZ_GPIO_PORTD(19)
++#define JZ_GPIO_SPI_DT JZ_GPIO_PORTD(20)
++#define JZ_GPIO_SPI_DR JZ_GPIO_PORTD(21)
++#define JZ_GPIO_SPI_CE1 JZ_GPIO_PORTD(22)
++#define JZ_GPIO_PWM0 JZ_GPIO_PORTD(23)
++#define JZ_GPIO_PWM1 JZ_GPIO_PORTD(24)
++#define JZ_GPIO_PWM2 JZ_GPIO_PORTD(25)
++#define JZ_GPIO_PWM3 JZ_GPIO_PORTD(26)
++#define JZ_GPIO_PWM4 JZ_GPIO_PORTD(27)
++#define JZ_GPIO_PWM5 JZ_GPIO_PORTD(28)
++#define JZ_GPIO_PWM6 JZ_GPIO_PORTD(30)
++#define JZ_GPIO_PWM7 JZ_GPIO_PORTD(31)
++
++#define JZ_GPIO_FUNC_CIM_DATA0 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_CIM_DATA1 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_CIM_DATA2 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_CIM_DATA3 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_CIM_DATA4 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_CIM_DATA5 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_CIM_DATA6 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_CIM_DATA7 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MSC_CMD JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MSC_CLK JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MSC_DATA0 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MSC_DATA1 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MSC_DATA2 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_MSC_DATA3 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_CIM_MCLK JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_CIM_PCLK JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_CIM_VSYNC JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_CIM_HSYNC JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_SPI_CLK JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_SPI_CE0 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_SPI_DT JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_SPI_DR JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_SPI_CE1 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_PWM0 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_PWM1 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_PWM2 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_PWM3 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_PWM4 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_PWM5 JZ_GPIO_FUNC1
++#define JZ_GPIO_FUNC_PWM6 JZ_GPIO_FUNC1
++
++#define JZ_GPIO_MEM_SCLK_RSTN JZ_GPIO_PORTD(18)
++#define JZ_GPIO_MEM_BCLK JZ_GPIO_PORTD(19)
++#define JZ_GPIO_MEM_SDATO JZ_GPIO_PORTD(20)
++#define JZ_GPIO_MEM_SDATI JZ_GPIO_PORTD(21)
++#define JZ_GPIO_MEM_SYNC JZ_GPIO_PORTD(22)
++#define JZ_GPIO_I2C_SDA JZ_GPIO_PORTD(23)
++#define JZ_GPIO_I2C_SCK JZ_GPIO_PORTD(24)
++#define JZ_GPIO_UART0_TXD JZ_GPIO_PORTD(25)
++#define JZ_GPIO_UART0_RXD JZ_GPIO_PORTD(26)
++#define JZ_GPIO_MEM_ADDR17 JZ_GPIO_PORTD(27)
++#define JZ_GPIO_MEM_ADDR18 JZ_GPIO_PORTD(28)
++#define JZ_GPIO_UART0_CTS JZ_GPIO_PORTD(30)
++#define JZ_GPIO_UART0_RTS JZ_GPIO_PORTD(31)
++
++#define JZ_GPIO_FUNC_MEM_SCLK_RSTN JZ_GPIO_FUNC2
++#define JZ_GPIO_FUNC_MEM_BCLK JZ_GPIO_FUNC2
++#define JZ_GPIO_FUNC_MEM_SDATO JZ_GPIO_FUNC2
++#define JZ_GPIO_FUNC_MEM_SDATI JZ_GPIO_FUNC2
++#define JZ_GPIO_FUNC_MEM_SYNC JZ_GPIO_FUNC2
++#define JZ_GPIO_FUNC_I2C_SDA JZ_GPIO_FUNC2
++#define JZ_GPIO_FUNC_I2C_SCK JZ_GPIO_FUNC2
++#define JZ_GPIO_FUNC_UART0_TXD JZ_GPIO_FUNC2
++#define JZ_GPIO_FUNC_UART0_RXD JZ_GPIO_FUNC2
++#define JZ_GPIO_FUNC_MEM_ADDR17 JZ_GPIO_FUNC2
++#define JZ_GPIO_FUNC_MEM_ADDR18 JZ_GPIO_FUNC2
++#define JZ_GPIO_FUNC_UART0_CTS JZ_GPIO_FUNC2
++#define JZ_GPIO_FUNC_UART0_RTS JZ_GPIO_FUNC2
++
++#define JZ_GPIO_UART1_RXD JZ_GPIO_PORTD(30)
++#define JZ_GPIO_UART1_TXD JZ_GPIO_PORTD(31)
++
++#define JZ_GPIO_FUNC_UART1_RXD JZ_GPIO_FUNC3
++#define JZ_GPIO_FUNC_UART1_TXD JZ_GPIO_FUNC3
++
++#endif
+diff -ruN linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/jz4740.h linux-2.6.31/arch/mips/include/asm/mach-jz4740/jz4740.h
+--- linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/jz4740.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/include/asm/mach-jz4740/jz4740.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,60 @@
++/*
++ * linux/include/asm-mips/mach-jz4740/jz4740.h
++ *
++ * JZ4740 common definition.
++ *
++ * Copyright (C) 2006 - 2007 Ingenic Semiconductor Inc.
++ *
++ * Author: <lhhuang@ingenic.cn>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#ifndef __ASM_JZ4740_H__
++#define __ASM_JZ4740_H__
++
++#include <asm/mach-jz4740/regs.h>
++#include <asm/mach-jz4740/ops.h>
++#include <asm/mach-jz4740/dma.h>
++#include <asm/mach-jz4740/misc.h>
++
++/*------------------------------------------------------------------
++ * Platform definitions
++ */
++#ifdef CONFIG_JZ4740_PAVO
++#include <asm/mach-jz4740/board-pavo.h>
++#endif
++
++#ifdef CONFIG_JZ4740_LEO
++#include <asm/mach-jz4740/board-leo.h>
++#endif
++
++#ifdef CONFIG_JZ4740_LYRA
++#include <asm/mach-jz4740/board-lyra.h>
++#endif
++
++#ifdef CONFIG_JZ4725_DIPPER
++#include <asm/mach-jz4740/board-dipper.h>
++#endif
++
++#ifdef CONFIG_JZ4720_VIRGO
++#include <asm/mach-jz4740/board-virgo.h>
++#endif
++
++#ifdef CONFIG_JZ4740_QI_LB60
++#include <asm/mach-jz4740/board-qi_lb60.h>
++#endif
++
++/* Add other platform definition here ... */
++
++
++/*------------------------------------------------------------------
++ * Follows are related to platform definitions
++ */
++
++#include <asm/mach-jz4740/clock.h>
++#include <asm/mach-jz4740/serial.h>
++
++#endif /* __ASM_JZ4740_H__ */
+diff -ruN linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/misc.h linux-2.6.31/arch/mips/include/asm/mach-jz4740/misc.h
+--- linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/misc.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/include/asm/mach-jz4740/misc.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,43 @@
++/*
++ * linux/include/asm-mips/mach-jz4740/misc.h
++ *
++ * Ingenic's JZ4740 common include.
++ *
++ * Copyright (C) 2006 - 2007 Ingenic Semiconductor Inc.
++ *
++ * Author: <yliu@ingenic.cn>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#ifndef __ASM_JZ4740_MISC_H__
++#define __ASM_JZ4740_MISC_H__
++
++/*==========================================================
++ * I2C
++ *===========================================================*/
++
++#define I2C_EEPROM_DEV 0xA /* b'1010 */
++#define I2C_RTC_DEV 0xD /* b'1101 */
++#define DIMM0_SPD_ADDR 0
++#define DIMM1_SPD_ADDR 1
++#define DIMM2_SPD_ADDR 2
++#define DIMM3_SPD_ADDR 3
++#define JZ_HCI_ADDR 7
++
++#define DIMM_SPD_LEN 128
++#define JZ_HCI_LEN 512 /* 4K bits E2PROM */
++#define I2C_RTC_LEN 16
++#define HCI_MAC_OFFSET 64
++
++extern void i2c_open(void);
++extern void i2c_close(void);
++extern void i2c_setclk(unsigned int i2cclk);
++extern int i2c_read(unsigned char device, unsigned char *buf,
++ unsigned char address, int count);
++extern int i2c_write(unsigned char device, unsigned char *buf,
++ unsigned char address, int count);
++
++#endif /* __ASM_JZ4740_MISC_H__ */
+diff -ruN linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/ops.h linux-2.6.31/arch/mips/include/asm/mach-jz4740/ops.h
+--- linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/ops.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/include/asm/mach-jz4740/ops.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,2224 @@
++/*
++ * linux/include/asm-mips/mach-jz4740/ops.h
++ *
++ * Ingenic's JZ4740 common include.
++ *
++ * Copyright (C) 2006 - 2007 Ingenic Semiconductor Inc.
++ *
++ * Author: <yliu@ingenic.cn>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++
++#ifndef __JZ4740_OPS_H__
++#define __JZ4740_OPS_H__
++
++/*
++ * Definition of Module Operations
++ */
++
++/***************************************************************************
++ * GPIO
++ ***************************************************************************/
++
++//------------------------------------------------------
++// GPIO Pins Description
++//
++// PORT 0:
++//
++// PIN/BIT N FUNC0 FUNC1
++// 0 D0 -
++// 1 D1 -
++// 2 D2 -
++// 3 D3 -
++// 4 D4 -
++// 5 D5 -
++// 6 D6 -
++// 7 D7 -
++// 8 D8 -
++// 9 D9 -
++// 10 D10 -
++// 11 D11 -
++// 12 D12 -
++// 13 D13 -
++// 14 D14 -
++// 15 D15 -
++// 16 D16 -
++// 17 D17 -
++// 18 D18 -
++// 19 D19 -
++// 20 D20 -
++// 21 D21 -
++// 22 D22 -
++// 23 D23 -
++// 24 D24 -
++// 25 D25 -
++// 26 D26 -
++// 27 D27 -
++// 28 D28 -
++// 29 D29 -
++// 30 D30 -
++// 31 D31 -
++//
++//------------------------------------------------------
++// PORT 1:
++//
++// PIN/BIT N FUNC0 FUNC1
++// 0 A0 -
++// 1 A1 -
++// 2 A2 -
++// 3 A3 -
++// 4 A4 -
++// 5 A5 -
++// 6 A6 -
++// 7 A7 -
++// 8 A8 -
++// 9 A9 -
++// 10 A10 -
++// 11 A11 -
++// 12 A12 -
++// 13 A13 -
++// 14 A14 -
++// 15 A15/CL -
++// 16 A16/AL -
++// 17 LCD_CLS A21
++// 18 LCD_SPL A22
++// 19 DCS# -
++// 20 RAS# -
++// 21 CAS# -
++// 22 RDWE#/BUFD# -
++// 23 CKE -
++// 24 CKO -
++// 25 CS1# -
++// 26 CS2# -
++// 27 CS3# -
++// 28 CS4# -
++// 29 RD# -
++// 30 WR# -
++// 31 WE0# -
++//
++// Note: PIN15&16 are CL&AL when connecting to NAND flash.
++//------------------------------------------------------
++// PORT 2:
++//
++// PIN/BIT N FUNC0 FUNC1
++// 0 LCD_D0 -
++// 1 LCD_D1 -
++// 2 LCD_D2 -
++// 3 LCD_D3 -
++// 4 LCD_D4 -
++// 5 LCD_D5 -
++// 6 LCD_D6 -
++// 7 LCD_D7 -
++// 8 LCD_D8 -
++// 9 LCD_D9 -
++// 10 LCD_D10 -
++// 11 LCD_D11 -
++// 12 LCD_D12 -
++// 13 LCD_D13 -
++// 14 LCD_D14 -
++// 15 LCD_D15 -
++// 16 LCD_D16 -
++// 17 LCD_D17 -
++// 18 LCD_PCLK -
++// 19 LCD_HSYNC -
++// 20 LCD_VSYNC -
++// 21 LCD_DE -
++// 22 LCD_PS A19
++// 23 LCD_REV A20
++// 24 WE1# -
++// 25 WE2# -
++// 26 WE3# -
++// 27 WAIT# -
++// 28 FRE# -
++// 29 FWE# -
++// 30(NOTE:FRB#) - -
++// 31 - -
++//
++// NOTE(1): PIN30 is used for FRB# when connecting to NAND flash.
++//------------------------------------------------------
++// PORT 3:
++//
++// PIN/BIT N FUNC0 FUNC1
++// 0 CIM_D0 -
++// 1 CIM_D1 -
++// 2 CIM_D2 -
++// 3 CIM_D3 -
++// 4 CIM_D4 -
++// 5 CIM_D5 -
++// 6 CIM_D6 -
++// 7 CIM_D7 -
++// 8 MSC_CMD -
++// 9 MSC_CLK -
++// 10 MSC_D0 -
++// 11 MSC_D1 -
++// 12 MSC_D2 -
++// 13 MSC_D3 -
++// 14 CIM_MCLK -
++// 15 CIM_PCLK -
++// 16 CIM_VSYNC -
++// 17 CIM_HSYNC -
++// 18 SSI_CLK SCLK_RSTN
++// 19 SSI_CE0# BIT_CLK(AIC)
++// 20 SSI_DT SDATA_OUT(AIC)
++// 21 SSI_DR SDATA_IN(AIC)
++// 22 SSI_CE1#&GPC SYNC(AIC)
++// 23 PWM0 I2C_SDA
++// 24 PWM1 I2C_SCK
++// 25 PWM2 UART0_TxD
++// 26 PWM3 UART0_RxD
++// 27 PWM4 A17
++// 28 PWM5 A18
++// 29 - -
++// 30 PWM6 UART0_CTS/UART1_RxD
++// 31 PWM7 UART0_RTS/UART1_TxD
++//
++//////////////////////////////////////////////////////////
++
++/*
++ * p is the port number (0,1,2,3)
++ * o is the pin offset (0-31) inside the port
++ * n is the absolute number of a pin (0-127), regardless of the port
++ */
++
++//-------------------------------------------
++// Function Pins Mode
++
++#define __gpio_as_func0(n) \
++do { \
++ unsigned int p, o; \
++ p = (n) / 32; \
++ o = (n) % 32; \
++ REG_GPIO_PXFUNS(p) = (1 << o); \
++ REG_GPIO_PXSELC(p) = (1 << o); \
++} while (0)
++
++#define __gpio_as_func1(n) \
++do { \
++ unsigned int p, o; \
++ p = (n) / 32; \
++ o = (n) % 32; \
++ REG_GPIO_PXFUNS(p) = (1 << o); \
++ REG_GPIO_PXSELS(p) = (1 << o); \
++} while (0)
++
++/*
++ * D0 ~ D31, A0 ~ A16, DCS#, RAS#, CAS#, CKE#,
++ * RDWE#, CKO#, WE0#, WE1#, WE2#, WE3#
++ */
++#define __gpio_as_sdram_32bit() \
++do { \
++ REG_GPIO_PXFUNS(0) = 0xffffffff; \
++ REG_GPIO_PXSELC(0) = 0xffffffff; \
++ REG_GPIO_PXPES(0) = 0xffffffff; \
++ REG_GPIO_PXFUNS(1) = 0x81f9ffff; \
++ REG_GPIO_PXSELC(1) = 0x81f9ffff; \
++ REG_GPIO_PXPES(1) = 0x81f9ffff; \
++ REG_GPIO_PXFUNS(2) = 0x07000000; \
++ REG_GPIO_PXSELC(2) = 0x07000000; \
++ REG_GPIO_PXPES(2) = 0x07000000; \
++} while (0)
++
++/*
++ * D0 ~ D15, A0 ~ A16, DCS#, RAS#, CAS#, CKE#,
++ * RDWE#, CKO#, WE0#, WE1#
++ */
++#define __gpio_as_sdram_16bit() \
++do { \
++ REG_GPIO_PXFUNS(0) = 0x5442bfaa; \
++ REG_GPIO_PXSELC(0) = 0x5442bfaa; \
++ REG_GPIO_PXPES(0) = 0x5442bfaa; \
++ REG_GPIO_PXFUNS(1) = 0x81f9ffff; \
++ REG_GPIO_PXSELC(1) = 0x81f9ffff; \
++ REG_GPIO_PXPES(1) = 0x81f9ffff; \
++ REG_GPIO_PXFUNS(2) = 0x01000000; \
++ REG_GPIO_PXSELC(2) = 0x01000000; \
++ REG_GPIO_PXPES(2) = 0x01000000; \
++} while (0)
++
++/*
++ * CS1#, CLE, ALE, FRE#, FWE#, FRB#, RDWE#/BUFD#
++ */
++#define __gpio_as_nand() \
++do { \
++ REG_GPIO_PXFUNS(1) = 0x02018000; \
++ REG_GPIO_PXSELC(1) = 0x02018000; \
++ REG_GPIO_PXPES(1) = 0x02018000; \
++ REG_GPIO_PXFUNS(2) = 0x30000000; \
++ REG_GPIO_PXSELC(2) = 0x30000000; \
++ REG_GPIO_PXPES(2) = 0x30000000; \
++ REG_GPIO_PXFUNC(2) = 0x40000000; \
++ REG_GPIO_PXSELC(2) = 0x40000000; \
++ REG_GPIO_PXDIRC(2) = 0x40000000; \
++ REG_GPIO_PXPES(2) = 0x40000000; \
++ REG_GPIO_PXFUNS(1) = 0x00400000; \
++ REG_GPIO_PXSELC(1) = 0x00400000; \
++} while (0)
++
++/*
++ * CS4#, RD#, WR#, WAIT#, A0 ~ A22, D0 ~ D7
++ */
++#define __gpio_as_nor_8bit() \
++do { \
++ REG_GPIO_PXFUNS(0) = 0x000000ff; \
++ REG_GPIO_PXSELC(0) = 0x000000ff; \
++ REG_GPIO_PXPES(0) = 0x000000ff; \
++ REG_GPIO_PXFUNS(1) = 0x7041ffff; \
++ REG_GPIO_PXSELC(1) = 0x7041ffff; \
++ REG_GPIO_PXPES(1) = 0x7041ffff; \
++ REG_GPIO_PXFUNS(1) = 0x00060000; \
++ REG_GPIO_PXSELS(1) = 0x00060000; \
++ REG_GPIO_PXPES(1) = 0x00060000; \
++ REG_GPIO_PXFUNS(2) = 0x08000000; \
++ REG_GPIO_PXSELC(2) = 0x08000000; \
++ REG_GPIO_PXPES(2) = 0x08000000; \
++ REG_GPIO_PXFUNS(2) = 0x00c00000; \
++ REG_GPIO_PXSELS(2) = 0x00c00000; \
++ REG_GPIO_PXPES(2) = 0x00c00000; \
++ REG_GPIO_PXFUNS(3) = 0x18000000; \
++ REG_GPIO_PXSELS(3) = 0x18000000; \
++ REG_GPIO_PXPES(3) = 0x18000000; \
++} while (0)
++
++/*
++ * CS4#, RD#, WR#, WAIT#, A0 ~ A22, D0 ~ D15
++ */
++#define __gpio_as_nor_16bit() \
++do { \
++ REG_GPIO_PXFUNS(0) = 0x0000ffff; \
++ REG_GPIO_PXSELC(0) = 0x0000ffff; \
++ REG_GPIO_PXPES(0) = 0x0000ffff; \
++ REG_GPIO_PXFUNS(1) = 0x7041ffff; \
++ REG_GPIO_PXSELC(1) = 0x7041ffff; \
++ REG_GPIO_PXPES(1) = 0x7041ffff; \
++ REG_GPIO_PXFUNS(1) = 0x00060000; \
++ REG_GPIO_PXSELS(1) = 0x00060000; \
++ REG_GPIO_PXPES(1) = 0x00060000; \
++ REG_GPIO_PXFUNS(2) = 0x08000000; \
++ REG_GPIO_PXSELC(2) = 0x08000000; \
++ REG_GPIO_PXPES(2) = 0x08000000; \
++ REG_GPIO_PXFUNS(2) = 0x00c00000; \
++ REG_GPIO_PXSELS(2) = 0x00c00000; \
++ REG_GPIO_PXPES(2) = 0x00c00000; \
++ REG_GPIO_PXFUNS(3) = 0x18000000; \
++ REG_GPIO_PXSELS(3) = 0x18000000; \
++ REG_GPIO_PXPES(3) = 0x18000000; \
++} while (0)
++
++/*
++ * UART0_TxD, UART_RxD0
++ */
++#define __gpio_as_uart0() \
++do { \
++ REG_GPIO_PXFUNS(3) = 0x06000000; \
++ REG_GPIO_PXSELS(3) = 0x06000000; \
++ REG_GPIO_PXPES(3) = 0x06000000; \
++} while (0)
++
++/*
++ * UART0_CTS, UART0_RTS
++ */
++#define __gpio_as_ctsrts() \
++do { \
++ REG_GPIO_PXFUNS(3) = 0xc0000000; \
++ REG_GPIO_PXSELS(3) = 0xc0000000; \
++ REG_GPIO_PXTRGC(3) = 0xc0000000; \
++ REG_GPIO_PXPES(3) = 0xc0000000; \
++} while (0)
++
++/*
++ * UART1_TxD, UART1_RxD1
++ */
++#define __gpio_as_uart1() \
++do { \
++ REG_GPIO_PXFUNS(3) = 0xc0000000; \
++ REG_GPIO_PXSELC(3) = 0xc0000000; \
++ REG_GPIO_PXTRGS(3) = 0xc0000000; \
++ REG_GPIO_PXPES(3) = 0xc0000000; \
++} while (0)
++
++/*
++ * LCD_D0~LCD_D15, LCD_PCLK, LCD_HSYNC, LCD_VSYNC, LCD_DE
++ */
++#define __gpio_as_lcd_16bit() \
++do { \
++ REG_GPIO_PXFUNS(2) = 0x003cffff; \
++ REG_GPIO_PXSELC(2) = 0x003cffff; \
++ REG_GPIO_PXPES(2) = 0x003cffff; \
++} while (0)
++
++/*
++ * LCD_D0~LCD_D17, LCD_PCLK, LCD_HSYNC, LCD_VSYNC, LCD_DE
++ */
++#define __gpio_as_lcd_18bit() \
++do { \
++ REG_GPIO_PXFUNS(2) = 0x003fffff; \
++ REG_GPIO_PXSELC(2) = 0x003fffff; \
++ REG_GPIO_PXPES(2) = 0x003fffff; \
++} while (0)
++
++/*
++ * LCD_PS, LCD_REV, LCD_CLS, LCD_SPL
++ */
++#define __gpio_as_lcd_special() \
++do { \
++ REG_GPIO_PXFUNS(1) = 0x00060000; \
++ REG_GPIO_PXSELC(1) = 0x00060000; \
++ REG_GPIO_PXPES(1) = 0x00060000; \
++ REG_GPIO_PXFUNS(2) = 0x00c00000; \
++ REG_GPIO_PXSELC(2) = 0x00c00000; \
++ REG_GPIO_PXPES(2) = 0x00c00000; \
++} while (0)
++
++/* LCD_D0~LCD_D7, SLCD_RS, SLCD_CS */
++#define __gpio_as_slcd_8bit() \
++do { \
++ REG_GPIO_PXFUNS(2) = 0x001800ff; \
++ REG_GPIO_PXSELC(2) = 0x001800ff; \
++} while (0)
++
++/* LCD_D0~LCD_D7, SLCD_RS, SLCD_CS */
++#define __gpio_as_slcd_9bit() \
++do { \
++ REG_GPIO_PXFUNS(2) = 0x001801ff; \
++ REG_GPIO_PXSELC(2) = 0x001801ff; \
++} while (0)
++
++/* LCD_D0~LCD_D15, SLCD_RS, SLCD_CS */
++#define __gpio_as_slcd_16bit() \
++do { \
++ REG_GPIO_PXFUNS(2) = 0x0018ffff; \
++ REG_GPIO_PXSELC(2) = 0x0018ffff; \
++} while (0)
++
++/* LCD_D0~LCD_D17, SLCD_RS, SLCD_CS */
++#define __gpio_as_slcd_18bit() \
++do { \
++ REG_GPIO_PXFUNS(2) = 0x001bffff; \
++ REG_GPIO_PXSELC(2) = 0x001bffff; \
++} while (0)
++
++/*
++ * CIM_D0~CIM_D7, CIM_MCLK, CIM_PCLK, CIM_VSYNC, CIM_HSYNC
++ */
++#define __gpio_as_cim() \
++do { \
++ REG_GPIO_PXFUNS(3) = 0x0003c0ff; \
++ REG_GPIO_PXSELC(3) = 0x0003c0ff; \
++ REG_GPIO_PXPES(3) = 0x0003c0ff; \
++} while (0)
++
++/*
++ * SDATA_OUT, SDATA_IN, BIT_CLK, SYNC, SCLK_RESET
++ */
++#define __gpio_as_aic() \
++do { \
++ REG_GPIO_PXFUNS(3) = 0x007c0000; \
++ REG_GPIO_PXSELS(3) = 0x007c0000; \
++ REG_GPIO_PXPES(3) = 0x007c0000; \
++} while (0)
++
++/*
++ * MSC_CMD, MSC_CLK, MSC_D0 ~ MSC_D3
++ */
++#define __gpio_as_msc() \
++do { \
++ REG_GPIO_PXFUNS(3) = 0x00003f00; \
++ REG_GPIO_PXSELC(3) = 0x00003f00; \
++ REG_GPIO_PXPES(3) = 0x00003f00; \
++} while (0)
++
++/*
++ * SSI_CS0, SSI_CLK, SSI_DT, SSI_DR
++ */
++#define __gpio_as_ssi() \
++do { \
++ REG_GPIO_PXFUNS(3) = 0x003c0000; \
++ REG_GPIO_PXSELC(3) = 0x003c0000; \
++ REG_GPIO_PXPES(3) = 0x003c0000; \
++} while (0)
++
++/*
++ * I2C_SCK, I2C_SDA
++ */
++#define __gpio_as_i2c() \
++do { \
++ REG_GPIO_PXFUNS(3) = 0x01800000; \
++ REG_GPIO_PXSELS(3) = 0x01800000; \
++ REG_GPIO_PXPES(3) = 0x01800000; \
++} while (0)
++
++/*
++ * PWM0
++ */
++#define __gpio_as_pwm0() \
++do { \
++ REG_GPIO_PXFUNS(3) = 0x00800000; \
++ REG_GPIO_PXSELC(3) = 0x00800000; \
++ REG_GPIO_PXPES(3) = 0x00800000; \
++} while (0)
++
++/*
++ * PWM1
++ */
++#define __gpio_as_pwm1() \
++do { \
++ REG_GPIO_PXFUNS(3) = 0x01000000; \
++ REG_GPIO_PXSELC(3) = 0x01000000; \
++ REG_GPIO_PXPES(3) = 0x01000000; \
++} while (0)
++
++/*
++ * PWM2
++ */
++#define __gpio_as_pwm2() \
++do { \
++ REG_GPIO_PXFUNS(3) = 0x02000000; \
++ REG_GPIO_PXSELC(3) = 0x02000000; \
++ REG_GPIO_PXPES(3) = 0x02000000; \
++} while (0)
++
++/*
++ * PWM3
++ */
++#define __gpio_as_pwm3() \
++do { \
++ REG_GPIO_PXFUNS(3) = 0x04000000; \
++ REG_GPIO_PXSELC(3) = 0x04000000; \
++ REG_GPIO_PXPES(3) = 0x04000000; \
++} while (0)
++
++/*
++ * PWM4
++ */
++#define __gpio_as_pwm4() \
++do { \
++ REG_GPIO_PXFUNS(3) = 0x08000000; \
++ REG_GPIO_PXSELC(3) = 0x08000000; \
++ REG_GPIO_PXPES(3) = 0x08000000; \
++} while (0)
++
++/*
++ * PWM5
++ */
++#define __gpio_as_pwm5() \
++do { \
++ REG_GPIO_PXFUNS(3) = 0x10000000; \
++ REG_GPIO_PXSELC(3) = 0x10000000; \
++ REG_GPIO_PXPES(3) = 0x10000000; \
++} while (0)
++
++/*
++ * PWM6
++ */
++#define __gpio_as_pwm6() \
++do { \
++ REG_GPIO_PXFUNS(3) = 0x40000000; \
++ REG_GPIO_PXSELC(3) = 0x40000000; \
++ REG_GPIO_PXPES(3) = 0x40000000; \
++} while (0)
++
++/*
++ * PWM7
++ */
++#define __gpio_as_pwm7() \
++do { \
++ REG_GPIO_PXFUNS(3) = 0x80000000; \
++ REG_GPIO_PXSELC(3) = 0x80000000; \
++ REG_GPIO_PXPES(3) = 0x80000000; \
++} while (0)
++
++/*
++ * n = 0 ~ 7
++ */
++#define __gpio_as_pwm(n) __gpio_as_pwm##n()
++
++//-------------------------------------------
++// GPIO or Interrupt Mode
++
++#define __gpio_get_port(p) (REG_GPIO_PXPIN(p))
++
++#define __gpio_port_as_output(p, o) \
++do { \
++ REG_GPIO_PXFUNC(p) = (1 << (o)); \
++ REG_GPIO_PXSELC(p) = (1 << (o)); \
++ REG_GPIO_PXDIRS(p) = (1 << (o)); \
++} while (0)
++
++#define __gpio_port_as_input(p, o) \
++do { \
++ REG_GPIO_PXFUNC(p) = (1 << (o)); \
++ REG_GPIO_PXSELC(p) = (1 << (o)); \
++ REG_GPIO_PXDIRC(p) = (1 << (o)); \
++} while (0)
++
++#define __gpio_as_output(n) \
++do { \
++ unsigned int p, o; \
++ p = (n) / 32; \
++ o = (n) % 32; \
++ __gpio_port_as_output(p, o); \
++} while (0)
++
++#define __gpio_as_input(n) \
++do { \
++ unsigned int p, o; \
++ p = (n) / 32; \
++ o = (n) % 32; \
++ __gpio_port_as_input(p, o); \
++} while (0)
++
++#define __gpio_set_pin(n) \
++do { \
++ unsigned int p, o; \
++ p = (n) / 32; \
++ o = (n) % 32; \
++ REG_GPIO_PXDATS(p) = (1 << o); \
++} while (0)
++
++#define __gpio_clear_pin(n) \
++do { \
++ unsigned int p, o; \
++ p = (n) / 32; \
++ o = (n) % 32; \
++ REG_GPIO_PXDATC(p) = (1 << o); \
++} while (0)
++
++#define __gpio_get_pin(n) \
++({ \
++ unsigned int p, o, v; \
++ p = (n) / 32; \
++ o = (n) % 32; \
++ if (__gpio_get_port(p) & (1 << o)) \
++ v = 1; \
++ else \
++ v = 0; \
++ v; \
++})
++
++#define __gpio_as_irq_high_level(n) \
++do { \
++ unsigned int p, o; \
++ p = (n) / 32; \
++ o = (n) % 32; \
++ REG_GPIO_PXIMS(p) = (1 << o); \
++ REG_GPIO_PXTRGC(p) = (1 << o); \
++ REG_GPIO_PXFUNC(p) = (1 << o); \
++ REG_GPIO_PXSELS(p) = (1 << o); \
++ REG_GPIO_PXDIRS(p) = (1 << o); \
++ REG_GPIO_PXFLGC(p) = (1 << o); \
++ REG_GPIO_PXIMC(p) = (1 << o); \
++} while (0)
++
++#define __gpio_as_irq_low_level(n) \
++do { \
++ unsigned int p, o; \
++ p = (n) / 32; \
++ o = (n) % 32; \
++ REG_GPIO_PXIMS(p) = (1 << o); \
++ REG_GPIO_PXTRGC(p) = (1 << o); \
++ REG_GPIO_PXFUNC(p) = (1 << o); \
++ REG_GPIO_PXSELS(p) = (1 << o); \
++ REG_GPIO_PXDIRC(p) = (1 << o); \
++ REG_GPIO_PXFLGC(p) = (1 << o); \
++ REG_GPIO_PXIMC(p) = (1 << o); \
++} while (0)
++
++#define __gpio_as_irq_rise_edge(n) \
++do { \
++ unsigned int p, o; \
++ p = (n) / 32; \
++ o = (n) % 32; \
++ REG_GPIO_PXIMS(p) = (1 << o); \
++ REG_GPIO_PXTRGS(p) = (1 << o); \
++ REG_GPIO_PXFUNC(p) = (1 << o); \
++ REG_GPIO_PXSELS(p) = (1 << o); \
++ REG_GPIO_PXDIRS(p) = (1 << o); \
++ REG_GPIO_PXFLGC(p) = (1 << o); \
++ REG_GPIO_PXIMC(p) = (1 << o); \
++} while (0)
++
++#define __gpio_as_irq_fall_edge(n) \
++do { \
++ unsigned int p, o; \
++ p = (n) / 32; \
++ o = (n) % 32; \
++ REG_GPIO_PXIMS(p) = (1 << o); \
++ REG_GPIO_PXTRGS(p) = (1 << o); \
++ REG_GPIO_PXFUNC(p) = (1 << o); \
++ REG_GPIO_PXSELS(p) = (1 << o); \
++ REG_GPIO_PXDIRC(p) = (1 << o); \
++ REG_GPIO_PXFLGC(p) = (1 << o); \
++ REG_GPIO_PXIMC(p) = (1 << o); \
++} while (0)
++
++#define __gpio_mask_irq(n) \
++do { \
++ unsigned int p, o; \
++ p = (n) / 32; \
++ o = (n) % 32; \
++ REG_GPIO_PXIMS(p) = (1 << o); \
++} while (0)
++
++#define __gpio_unmask_irq(n) \
++do { \
++ unsigned int p, o; \
++ p = (n) / 32; \
++ o = (n) % 32; \
++ REG_GPIO_PXIMC(p) = (1 << o); \
++} while (0)
++
++#define __gpio_ack_irq(n) \
++do { \
++ unsigned int p, o; \
++ p = (n) / 32; \
++ o = (n) % 32; \
++ REG_GPIO_PXFLGC(p) = (1 << o); \
++} while (0)
++
++#define __gpio_get_irq() \
++({ \
++ unsigned int p, i, tmp, v = 0; \
++ for (p = 3; p >= 0; p--) { \
++ tmp = REG_GPIO_PXFLG(p); \
++ for (i = 0; i < 32; i++) \
++ if (tmp & (1 << i)) \
++ v = (32*p + i); \
++ } \
++ v; \
++})
++
++#define __gpio_group_irq(n) \
++({ \
++ register int tmp, i; \
++ tmp = REG_GPIO_PXFLG((n)); \
++ for (i=31;i>=0;i--) \
++ if (tmp & (1 << i)) \
++ break; \
++ i; \
++})
++
++#define __gpio_enable_pull(n) \
++do { \
++ unsigned int p, o; \
++ p = (n) / 32; \
++ o = (n) % 32; \
++ REG_GPIO_PXPEC(p) = (1 << o); \
++} while (0)
++
++#define __gpio_disable_pull(n) \
++do { \
++ unsigned int p, o; \
++ p = (n) / 32; \
++ o = (n) % 32; \
++ REG_GPIO_PXPES(p) = (1 << o); \
++} while (0)
++
++
++/***************************************************************************
++ * CPM
++ ***************************************************************************/
++#define __cpm_get_pllm() \
++ ((REG_CPM_CPPCR & CPM_CPPCR_PLLM_MASK) >> CPM_CPPCR_PLLM_BIT)
++#define __cpm_get_plln() \
++ ((REG_CPM_CPPCR & CPM_CPPCR_PLLN_MASK) >> CPM_CPPCR_PLLN_BIT)
++#define __cpm_get_pllod() \
++ ((REG_CPM_CPPCR & CPM_CPPCR_PLLOD_MASK) >> CPM_CPPCR_PLLOD_BIT)
++
++#define __cpm_get_cdiv() \
++ ((REG_CPM_CPCCR & CPM_CPCCR_CDIV_MASK) >> CPM_CPCCR_CDIV_BIT)
++#define __cpm_get_hdiv() \
++ ((REG_CPM_CPCCR & CPM_CPCCR_HDIV_MASK) >> CPM_CPCCR_HDIV_BIT)
++#define __cpm_get_pdiv() \
++ ((REG_CPM_CPCCR & CPM_CPCCR_PDIV_MASK) >> CPM_CPCCR_PDIV_BIT)
++#define __cpm_get_mdiv() \
++ ((REG_CPM_CPCCR & CPM_CPCCR_MDIV_MASK) >> CPM_CPCCR_MDIV_BIT)
++#define __cpm_get_ldiv() \
++ ((REG_CPM_CPCCR & CPM_CPCCR_LDIV_MASK) >> CPM_CPCCR_LDIV_BIT)
++#define __cpm_get_udiv() \
++ ((REG_CPM_CPCCR & CPM_CPCCR_UDIV_MASK) >> CPM_CPCCR_UDIV_BIT)
++#define __cpm_get_i2sdiv() \
++ ((REG_CPM_I2SCDR & CPM_I2SCDR_I2SDIV_MASK) >> CPM_I2SCDR_I2SDIV_BIT)
++#define __cpm_get_pixdiv() \
++ ((REG_CPM_LPCDR & CPM_LPCDR_PIXDIV_MASK) >> CPM_LPCDR_PIXDIV_BIT)
++#define __cpm_get_mscdiv() \
++ ((REG_CPM_MSCCDR & CPM_MSCCDR_MSCDIV_MASK) >> CPM_MSCCDR_MSCDIV_BIT)
++#define __cpm_get_uhcdiv() \
++ ((REG_CPM_UHCCDR & CPM_UHCCDR_UHCDIV_MASK) >> CPM_UHCCDR_UHCDIV_BIT)
++#define __cpm_get_ssidiv() \
++ ((REG_CPM_SSICCDR & CPM_SSICDR_SSICDIV_MASK) >> CPM_SSICDR_SSIDIV_BIT)
++
++#define __cpm_set_cdiv(v) \
++ (REG_CPM_CPCCR = (REG_CPM_CPCCR & ~CPM_CPCCR_CDIV_MASK) | ((v) << (CPM_CPCCR_CDIV_BIT)))
++#define __cpm_set_hdiv(v) \
++ (REG_CPM_CPCCR = (REG_CPM_CPCCR & ~CPM_CPCCR_HDIV_MASK) | ((v) << (CPM_CPCCR_HDIV_BIT)))
++#define __cpm_set_pdiv(v) \
++ (REG_CPM_CPCCR = (REG_CPM_CPCCR & ~CPM_CPCCR_PDIV_MASK) | ((v) << (CPM_CPCCR_PDIV_BIT)))
++#define __cpm_set_mdiv(v) \
++ (REG_CPM_CPCCR = (REG_CPM_CPCCR & ~CPM_CPCCR_MDIV_MASK) | ((v) << (CPM_CPCCR_MDIV_BIT)))
++#define __cpm_set_ldiv(v) \
++ (REG_CPM_CPCCR = (REG_CPM_CPCCR & ~CPM_CPCCR_LDIV_MASK) | ((v) << (CPM_CPCCR_LDIV_BIT)))
++#define __cpm_set_udiv(v) \
++ (REG_CPM_CPCCR = (REG_CPM_CPCCR & ~CPM_CPCCR_UDIV_MASK) | ((v) << (CPM_CPCCR_UDIV_BIT)))
++#define __cpm_set_i2sdiv(v) \
++ (REG_CPM_I2SCDR = (REG_CPM_I2SCDR & ~CPM_I2SCDR_I2SDIV_MASK) | ((v) << (CPM_I2SCDR_I2SDIV_BIT)))
++#define __cpm_set_pixdiv(v) \
++ (REG_CPM_LPCDR = (REG_CPM_LPCDR & ~CPM_LPCDR_PIXDIV_MASK) | ((v) << (CPM_LPCDR_PIXDIV_BIT)))
++#define __cpm_set_mscdiv(v) \
++ (REG_CPM_MSCCDR = (REG_CPM_MSCCDR & ~CPM_MSCCDR_MSCDIV_MASK) | ((v) << (CPM_MSCCDR_MSCDIV_BIT)))
++#define __cpm_set_uhcdiv(v) \
++ (REG_CPM_UHCCDR = (REG_CPM_UHCCDR & ~CPM_UHCCDR_UHCDIV_MASK) | ((v) << (CPM_UHCCDR_UHCDIV_BIT)))
++#define __cpm_ssiclk_select_exclk() \
++ (REG_CPM_SSICDR &= ~CPM_SSICDR_SCS)
++#define __cpm_ssiclk_select_pllout() \
++ (REG_CPM_SSICDR |= CPM_SSICDR_SCS)
++#define __cpm_set_ssidiv(v) \
++ (REG_CPM_SSICDR = (REG_CPM_SSICDR & ~CPM_SSICDR_SSIDIV_MASK) | ((v) << (CPM_SSICDR_SSIDIV_BIT)))
++
++#define __cpm_select_i2sclk_exclk() (REG_CPM_CPCCR &= ~CPM_CPCCR_I2CS)
++#define __cpm_select_i2sclk_pll() (REG_CPM_CPCCR |= CPM_CPCCR_I2CS)
++#define __cpm_enable_cko() (REG_CPM_CPCCR |= CPM_CPCCR_CLKOEN)
++#define __cpm_select_usbclk_exclk() (REG_CPM_CPCCR &= ~CPM_CPCCR_UCS)
++#define __cpm_select_usbclk_pll() (REG_CPM_CPCCR |= CPM_CPCCR_UCS)
++#define __cpm_enable_pll_change() (REG_CPM_CPCCR |= CPM_CPCCR_CE)
++#define __cpm_pllout_direct() (REG_CPM_CPCCR |= CPM_CPCCR_PCS)
++#define __cpm_pllout_div2() (REG_CPM_CPCCR &= ~CPM_CPCCR_PCS)
++
++#define __cpm_pll_is_on() (REG_CPM_CPPCR & CPM_CPPCR_PLLS)
++#define __cpm_pll_bypass() (REG_CPM_CPPCR |= CPM_CPPCR_PLLBP)
++#define __cpm_pll_enable() (REG_CPM_CPPCR |= CPM_CPPCR_PLLEN)
++
++#define __cpm_get_cclk_doze_duty() \
++ ((REG_CPM_LCR & CPM_LCR_DOZE_DUTY_MASK) >> CPM_LCR_DOZE_DUTY_BIT)
++#define __cpm_set_cclk_doze_duty(v) \
++ (REG_CPM_LCR = (REG_CPM_LCR & ~CPM_LCR_DOZE_DUTY_MASK) | ((v) << (CPM_LCR_DOZE_DUTY_BIT)))
++
++#define __cpm_doze_mode() (REG_CPM_LCR |= CPM_LCR_DOZE_ON)
++#define __cpm_idle_mode() \
++ (REG_CPM_LCR = (REG_CPM_LCR & ~CPM_LCR_LPM_MASK) | CPM_LCR_LPM_IDLE)
++#define __cpm_sleep_mode() \
++ (REG_CPM_LCR = (REG_CPM_LCR & ~CPM_LCR_LPM_MASK) | CPM_LCR_LPM_SLEEP)
++
++#define __cpm_stop_all() (REG_CPM_CLKGR = 0x7fff)
++#define __cpm_stop_uart1() (REG_CPM_CLKGR |= CPM_CLKGR_UART1)
++#define __cpm_stop_uhc() (REG_CPM_CLKGR |= CPM_CLKGR_UHC)
++#define __cpm_stop_ipu() (REG_CPM_CLKGR |= CPM_CLKGR_IPU)
++#define __cpm_stop_dmac() (REG_CPM_CLKGR |= CPM_CLKGR_DMAC)
++#define __cpm_stop_udc() (REG_CPM_CLKGR |= CPM_CLKGR_UDC)
++#define __cpm_stop_lcd() (REG_CPM_CLKGR |= CPM_CLKGR_LCD)
++#define __cpm_stop_cim() (REG_CPM_CLKGR |= CPM_CLKGR_CIM)
++#define __cpm_stop_sadc() (REG_CPM_CLKGR |= CPM_CLKGR_SADC)
++#define __cpm_stop_msc() (REG_CPM_CLKGR |= CPM_CLKGR_MSC)
++#define __cpm_stop_aic1() (REG_CPM_CLKGR |= CPM_CLKGR_AIC1)
++#define __cpm_stop_aic2() (REG_CPM_CLKGR |= CPM_CLKGR_AIC2)
++#define __cpm_stop_ssi() (REG_CPM_CLKGR |= CPM_CLKGR_SSI)
++#define __cpm_stop_i2c() (REG_CPM_CLKGR |= CPM_CLKGR_I2C)
++#define __cpm_stop_rtc() (REG_CPM_CLKGR |= CPM_CLKGR_RTC)
++#define __cpm_stop_tcu() (REG_CPM_CLKGR |= CPM_CLKGR_TCU)
++#define __cpm_stop_uart0() (REG_CPM_CLKGR |= CPM_CLKGR_UART0)
++
++#define __cpm_start_all() (REG_CPM_CLKGR = 0x0)
++#define __cpm_start_uart1() (REG_CPM_CLKGR &= ~CPM_CLKGR_UART1)
++#define __cpm_start_uhc() (REG_CPM_CLKGR &= ~CPM_CLKGR_UHC)
++#define __cpm_start_ipu() (REG_CPM_CLKGR &= ~CPM_CLKGR_IPU)
++#define __cpm_start_dmac() (REG_CPM_CLKGR &= ~CPM_CLKGR_DMAC)
++#define __cpm_start_udc() (REG_CPM_CLKGR &= ~CPM_CLKGR_UDC)
++#define __cpm_start_lcd() (REG_CPM_CLKGR &= ~CPM_CLKGR_LCD)
++#define __cpm_start_cim() (REG_CPM_CLKGR &= ~CPM_CLKGR_CIM)
++#define __cpm_start_sadc() (REG_CPM_CLKGR &= ~CPM_CLKGR_SADC)
++#define __cpm_start_msc() (REG_CPM_CLKGR &= ~CPM_CLKGR_MSC)
++#define __cpm_start_aic1() (REG_CPM_CLKGR &= ~CPM_CLKGR_AIC1)
++#define __cpm_start_aic2() (REG_CPM_CLKGR &= ~CPM_CLKGR_AIC2)
++#define __cpm_start_ssi() (REG_CPM_CLKGR &= ~CPM_CLKGR_SSI)
++#define __cpm_start_i2c() (REG_CPM_CLKGR &= ~CPM_CLKGR_I2C)
++#define __cpm_start_rtc() (REG_CPM_CLKGR &= ~CPM_CLKGR_RTC)
++#define __cpm_start_tcu() (REG_CPM_CLKGR &= ~CPM_CLKGR_TCU)
++#define __cpm_start_uart0() (REG_CPM_CLKGR &= ~CPM_CLKGR_UART0)
++
++#define __cpm_get_o1st() \
++ ((REG_CPM_SCR & CPM_SCR_O1ST_MASK) >> CPM_SCR_O1ST_BIT)
++#define __cpm_set_o1st(v) \
++ (REG_CPM_SCR = (REG_CPM_SCR & ~CPM_SCR_O1ST_MASK) | ((v) << (CPM_SCR_O1ST_BIT)))
++#define __cpm_suspend_usbphy() (REG_CPM_SCR |= CPM_SCR_USBPHY_SUSPEND)
++#define __cpm_enable_osc_in_sleep() (REG_CPM_SCR |= CPM_SCR_OSC_ENABLE)
++
++
++/***************************************************************************
++ * TCU
++ ***************************************************************************/
++// where 'n' is the TCU channel
++#define __tcu_select_extalclk(n) \
++ (REG_TCU_TCSR((n)) = (REG_TCU_TCSR((n)) & ~(TCU_TCSR_EXT_EN | TCU_TCSR_RTC_EN | TCU_TCSR_PCK_EN)) | TCU_TCSR_EXT_EN)
++#define __tcu_select_rtcclk(n) \
++ (REG_TCU_TCSR((n)) = (REG_TCU_TCSR((n)) & ~(TCU_TCSR_EXT_EN | TCU_TCSR_RTC_EN | TCU_TCSR_PCK_EN)) | TCU_TCSR_RTC_EN)
++#define __tcu_select_pclk(n) \
++ (REG_TCU_TCSR((n)) = (REG_TCU_TCSR((n)) & ~(TCU_TCSR_EXT_EN | TCU_TCSR_RTC_EN | TCU_TCSR_PCK_EN)) | TCU_TCSR_PCK_EN)
++
++#define __tcu_select_clk_div1(n) \
++ (REG_TCU_TCSR((n)) = (REG_TCU_TCSR((n)) & ~TCU_TCSR_PRESCALE_MASK) | TCU_TCSR_PRESCALE1)
++#define __tcu_select_clk_div4(n) \
++ (REG_TCU_TCSR((n)) = (REG_TCU_TCSR((n)) & ~TCU_TCSR_PRESCALE_MASK) | TCU_TCSR_PRESCALE4)
++#define __tcu_select_clk_div16(n) \
++ (REG_TCU_TCSR((n)) = (REG_TCU_TCSR((n)) & ~TCU_TCSR_PRESCALE_MASK) | TCU_TCSR_PRESCALE16)
++#define __tcu_select_clk_div64(n) \
++ (REG_TCU_TCSR((n)) = (REG_TCU_TCSR((n)) & ~TCU_TCSR_PRESCALE_MASK) | TCU_TCSR_PRESCALE64)
++#define __tcu_select_clk_div256(n) \
++ (REG_TCU_TCSR((n)) = (REG_TCU_TCSR((n)) & ~TCU_TCSR_PRESCALE_MASK) | TCU_TCSR_PRESCALE256)
++#define __tcu_select_clk_div1024(n) \
++ (REG_TCU_TCSR((n)) = (REG_TCU_TCSR((n)) & ~TCU_TCSR_PRESCALE_MASK) | TCU_TCSR_PRESCALE1024)
++
++#define __tcu_enable_pwm_output(n) ( REG_TCU_TCSR((n)) |= TCU_TCSR_PWM_EN )
++#define __tcu_disable_pwm_output(n) ( REG_TCU_TCSR((n)) &= ~TCU_TCSR_PWM_EN )
++
++#define __tcu_init_pwm_output_high(n) ( REG_TCU_TCSR((n)) |= TCU_TCSR_PWM_INITL_HIGH )
++#define __tcu_init_pwm_output_low(n) ( REG_TCU_TCSR((n)) &= ~TCU_TCSR_PWM_INITL_HIGH )
++
++#define __tcu_set_pwm_output_shutdown_graceful(n) ( REG_TCU_TCSR((n)) &= ~TCU_TCSR_PWM_SD )
++#define __tcu_set_pwm_output_shutdown_abrupt(n) ( REG_TCU_TCSR((n)) |= TCU_TCSR_PWM_SD )
++
++#define __tcu_start_counter(n) ( REG_TCU_TESR |= (1 << (n)) )
++#define __tcu_stop_counter(n) ( REG_TCU_TECR |= (1 << (n)) )
++
++#define __tcu_half_match_flag(n) ( REG_TCU_TFR & (1 << ((n) + 16)) )
++#define __tcu_full_match_flag(n) ( REG_TCU_TFR & (1 << (n)) )
++#define __tcu_set_half_match_flag(n) ( REG_TCU_TFSR = (1 << ((n) + 16)) )
++#define __tcu_set_full_match_flag(n) ( REG_TCU_TFSR = (1 << (n)) )
++#define __tcu_clear_half_match_flag(n) ( REG_TCU_TFCR = (1 << ((n) + 16)) )
++#define __tcu_clear_full_match_flag(n) ( REG_TCU_TFCR = (1 << (n)) )
++#define __tcu_mask_half_match_irq(n) ( REG_TCU_TMSR = (1 << ((n) + 16)) )
++#define __tcu_mask_full_match_irq(n) ( REG_TCU_TMSR = (1 << (n)) )
++#define __tcu_unmask_half_match_irq(n) ( REG_TCU_TMCR = (1 << ((n) + 16)) )
++#define __tcu_unmask_full_match_irq(n) ( REG_TCU_TMCR = (1 << (n)) )
++
++#define __tcu_wdt_clock_stopped() ( REG_TCU_TSR & TCU_TSSR_WDTSC )
++#define __tcu_timer_clock_stopped(n) ( REG_TCU_TSR & (1 << (n)) )
++
++#define __tcu_start_wdt_clock() ( REG_TCU_TSCR = TCU_TSSR_WDTSC )
++#define __tcu_start_timer_clock(n) ( REG_TCU_TSCR = (1 << (n)) )
++
++#define __tcu_stop_wdt_clock() ( REG_TCU_TSSR = TCU_TSSR_WDTSC )
++#define __tcu_stop_timer_clock(n) ( REG_TCU_TSSR = (1 << (n)) )
++
++#define __tcu_get_count(n) ( REG_TCU_TCNT((n)) )
++#define __tcu_set_count(n,v) ( REG_TCU_TCNT((n)) = (v) )
++#define __tcu_set_full_data(n,v) ( REG_TCU_TDFR((n)) = (v) )
++#define __tcu_set_half_data(n,v) ( REG_TCU_TDHR((n)) = (v) )
++
++
++/***************************************************************************
++ * WDT
++ ***************************************************************************/
++#define __wdt_start() ( REG_WDT_TCER |= WDT_TCER_TCEN )
++#define __wdt_stop() ( REG_WDT_TCER &= ~WDT_TCER_TCEN )
++#define __wdt_set_count(v) ( REG_WDT_TCNT = (v) )
++#define __wdt_set_data(v) ( REG_WDT_TDR = (v) )
++
++#define __wdt_select_extalclk() \
++ (REG_WDT_TCSR = (REG_WDT_TCSR & ~(WDT_TCSR_EXT_EN | WDT_TCSR_RTC_EN | WDT_TCSR_PCK_EN)) | WDT_TCSR_EXT_EN)
++#define __wdt_select_rtcclk() \
++ (REG_WDT_TCSR = (REG_WDT_TCSR & ~(WDT_TCSR_EXT_EN | WDT_TCSR_RTC_EN | WDT_TCSR_PCK_EN)) | WDT_TCSR_RTC_EN)
++#define __wdt_select_pclk() \
++ (REG_WDT_TCSR = (REG_WDT_TCSR & ~(WDT_TCSR_EXT_EN | WDT_TCSR_RTC_EN | WDT_TCSR_PCK_EN)) | WDT_TCSR_PCK_EN)
++
++#define __wdt_select_clk_div1() \
++ (REG_WDT_TCSR = (REG_WDT_TCSR & ~WDT_TCSR_PRESCALE_MASK) | WDT_TCSR_PRESCALE1)
++#define __wdt_select_clk_div4() \
++ (REG_WDT_TCSR = (REG_WDT_TCSR & ~WDT_TCSR_PRESCALE_MASK) | WDT_TCSR_PRESCALE4)
++#define __wdt_select_clk_div16() \
++ (REG_WDT_TCSR = (REG_WDT_TCSR & ~WDT_TCSR_PRESCALE_MASK) | WDT_TCSR_PRESCALE16)
++#define __wdt_select_clk_div64() \
++ (REG_WDT_TCSR = (REG_WDT_TCSR & ~WDT_TCSR_PRESCALE_MASK) | WDT_TCSR_PRESCALE64)
++#define __wdt_select_clk_div256() \
++ (REG_WDT_TCSR = (REG_WDT_TCSR & ~WDT_TCSR_PRESCALE_MASK) | WDT_TCSR_PRESCALE256)
++#define __wdt_select_clk_div1024() \
++ (REG_WDT_TCSR = (REG_WDT_TCSR & ~WDT_TCSR_PRESCALE_MASK) | WDT_TCSR_PRESCALE1024)
++
++
++/***************************************************************************
++ * UART
++ ***************************************************************************/
++
++#define __uart_enable(n) \
++ ( REG8(UART_BASE + UART_OFF*(n) + OFF_FCR) |= UARTFCR_UUE | UARTFCR_FE )
++#define __uart_disable(n) \
++ ( REG8(UART_BASE + UART_OFF*(n) + OFF_FCR) = ~UARTFCR_UUE )
++
++#define __uart_enable_transmit_irq(n) \
++ ( REG8(UART_BASE + UART_OFF*(n) + OFF_IER) |= UARTIER_TIE )
++#define __uart_disable_transmit_irq(n) \
++ ( REG8(UART_BASE + UART_OFF*(n) + OFF_IER) &= ~UARTIER_TIE )
++
++#define __uart_enable_receive_irq(n) \
++ ( REG8(UART_BASE + UART_OFF*(n) + OFF_IER) |= UARTIER_RIE | UARTIER_RLIE | UARTIER_RTIE )
++#define __uart_disable_receive_irq(n) \
++ ( REG8(UART_BASE + UART_OFF*(n) + OFF_IER) &= ~(UARTIER_RIE | UARTIER_RLIE | UARTIER_RTIE) )
++
++#define __uart_enable_loopback(n) \
++ ( REG8(UART_BASE + UART_OFF*(n) + OFF_MCR) |= UARTMCR_LOOP )
++#define __uart_disable_loopback(n) \
++ ( REG8(UART_BASE + UART_OFF*(n) + OFF_MCR) &= ~UARTMCR_LOOP )
++
++#define __uart_set_8n1(n) \
++ ( REG8(UART_BASE + UART_OFF*(n) + OFF_LCR) = UARTLCR_WLEN_8 )
++
++#define __uart_set_baud(n, devclk, baud) \
++ do { \
++ REG8(UART_BASE + UART_OFF*(n) + OFF_LCR) |= UARTLCR_DLAB; \
++ REG8(UART_BASE + UART_OFF*(n) + OFF_DLLR) = (devclk / 16 / baud) & 0xff; \
++ REG8(UART_BASE + UART_OFF*(n) + OFF_DLHR) = ((devclk / 16 / baud) >> 8) & 0xff; \
++ REG8(UART_BASE + UART_OFF*(n) + OFF_LCR) &= ~UARTLCR_DLAB; \
++ } while (0)
++
++#define __uart_parity_error(n) \
++ ( (REG8(UART_BASE + UART_OFF*(n) + OFF_LSR) & UARTLSR_PER) != 0 )
++
++#define __uart_clear_errors(n) \
++ ( REG8(UART_BASE + UART_OFF*(n) + OFF_LSR) &= ~(UARTLSR_ORER | UARTLSR_BRK | UARTLSR_FER | UARTLSR_PER | UARTLSR_RFER) )
++
++#define __uart_transmit_fifo_empty(n) \
++ ( (REG8(UART_BASE + UART_OFF*(n) + OFF_LSR) & UARTLSR_TDRQ) != 0 )
++
++#define __uart_transmit_end(n) \
++ ( (REG8(UART_BASE + UART_OFF*(n) + OFF_LSR) & UARTLSR_TEMT) != 0 )
++
++#define __uart_transmit_char(n, ch) \
++ REG8(UART_BASE + UART_OFF*(n) + OFF_TDR) = (ch)
++
++#define __uart_receive_fifo_full(n) \
++ ( (REG8(UART_BASE + UART_OFF*(n) + OFF_LSR) & UARTLSR_DR) != 0 )
++
++#define __uart_receive_ready(n) \
++ ( (REG8(UART_BASE + UART_OFF*(n) + OFF_LSR) & UARTLSR_DR) != 0 )
++
++#define __uart_receive_char(n) \
++ REG8(UART_BASE + UART_OFF*(n) + OFF_RDR)
++
++#define __uart_disable_irda() \
++ ( REG8(IRDA_BASE + OFF_SIRCR) &= ~(SIRCR_TSIRE | SIRCR_RSIRE) )
++#define __uart_enable_irda() \
++ /* Tx high pulse as 0, Rx low pulse as 0 */ \
++ ( REG8(IRDA_BASE + OFF_SIRCR) = SIRCR_TSIRE | SIRCR_RSIRE | SIRCR_RXPL | SIRCR_TPWS )
++
++
++/***************************************************************************
++ * DMAC
++ ***************************************************************************/
++
++/* n is the DMA channel (0 - 5) */
++
++#define __dmac_enable_module() \
++ ( REG_DMAC_DMACR |= DMAC_DMACR_DMAE | DMAC_DMACR_PR_RR )
++#define __dmac_disable_module() \
++ ( REG_DMAC_DMACR &= ~DMAC_DMACR_DMAE )
++
++/* p=0,1,2,3 */
++#define __dmac_set_priority(p) \
++do { \
++ REG_DMAC_DMACR &= ~DMAC_DMACR_PR_MASK; \
++ REG_DMAC_DMACR |= ((p) << DMAC_DMACR_PR_BIT); \
++} while (0)
++
++#define __dmac_test_halt_error() ( REG_DMAC_DMACR & DMAC_DMACR_HLT )
++#define __dmac_test_addr_error() ( REG_DMAC_DMACR & DMAC_DMACR_AR )
++
++#define __dmac_enable_descriptor(n) \
++ ( REG_DMAC_DCCSR((n)) &= ~DMAC_DCCSR_NDES )
++#define __dmac_disable_descriptor(n) \
++ ( REG_DMAC_DCCSR((n)) |= DMAC_DCCSR_NDES )
++
++#define __dmac_enable_channel(n) \
++ ( REG_DMAC_DCCSR((n)) |= DMAC_DCCSR_EN )
++#define __dmac_disable_channel(n) \
++ ( REG_DMAC_DCCSR((n)) &= ~DMAC_DCCSR_EN )
++#define __dmac_channel_enabled(n) \
++ ( REG_DMAC_DCCSR((n)) & DMAC_DCCSR_EN )
++
++#define __dmac_channel_enable_irq(n) \
++ ( REG_DMAC_DCMD((n)) |= DMAC_DCMD_TIE )
++#define __dmac_channel_disable_irq(n) \
++ ( REG_DMAC_DCMD((n)) &= ~DMAC_DCMD_TIE )
++
++#define __dmac_channel_transmit_halt_detected(n) \
++ ( REG_DMAC_DCCSR((n)) & DMAC_DCCSR_HLT )
++#define __dmac_channel_transmit_end_detected(n) \
++ ( REG_DMAC_DCCSR((n)) & DMAC_DCCSR_TT )
++#define __dmac_channel_address_error_detected(n) \
++ ( REG_DMAC_DCCSR((n)) & DMAC_DCCSR_AR )
++#define __dmac_channel_count_terminated_detected(n) \
++ ( REG_DMAC_DCCSR((n)) & DMAC_DCCSR_CT )
++#define __dmac_channel_descriptor_invalid_detected(n) \
++ ( REG_DMAC_DCCSR((n)) & DMAC_DCCSR_INV )
++
++#define __dmac_channel_clear_transmit_halt(n) \
++ ( REG_DMAC_DCCSR(n) &= ~DMAC_DCCSR_HLT )
++#define __dmac_channel_clear_transmit_end(n) \
++ ( REG_DMAC_DCCSR(n) &= ~DMAC_DCCSR_TT )
++#define __dmac_channel_clear_address_error(n) \
++ ( REG_DMAC_DCCSR(n) &= ~DMAC_DCCSR_AR )
++#define __dmac_channel_clear_count_terminated(n) \
++ ( REG_DMAC_DCCSR((n)) &= ~DMAC_DCCSR_CT )
++#define __dmac_channel_clear_descriptor_invalid(n) \
++ ( REG_DMAC_DCCSR((n)) &= ~DMAC_DCCSR_INV )
++
++#define __dmac_channel_set_single_mode(n) \
++ ( REG_DMAC_DCMD((n)) &= ~DMAC_DCMD_TM )
++#define __dmac_channel_set_block_mode(n) \
++ ( REG_DMAC_DCMD((n)) |= DMAC_DCMD_TM )
++
++#define __dmac_channel_set_transfer_unit_32bit(n) \
++do { \
++ REG_DMAC_DCMD((n)) &= ~DMAC_DCMD_DS_MASK; \
++ REG_DMAC_DCMD((n)) |= DMAC_DCMD_DS_32BIT; \
++} while (0)
++
++#define __dmac_channel_set_transfer_unit_16bit(n) \
++do { \
++ REG_DMAC_DCMD((n)) &= ~DMAC_DCMD_DS_MASK; \
++ REG_DMAC_DCMD((n)) |= DMAC_DCMD_DS_16BIT; \
++} while (0)
++
++#define __dmac_channel_set_transfer_unit_8bit(n) \
++do { \
++ REG_DMAC_DCMD((n)) &= ~DMAC_DCMD_DS_MASK; \
++ REG_DMAC_DCMD((n)) |= DMAC_DCMD_DS_8BIT; \
++} while (0)
++
++#define __dmac_channel_set_transfer_unit_16byte(n) \
++do { \
++ REG_DMAC_DCMD((n)) &= ~DMAC_DCMD_DS_MASK; \
++ REG_DMAC_DCMD((n)) |= DMAC_DCMD_DS_16BYTE; \
++} while (0)
++
++#define __dmac_channel_set_transfer_unit_32byte(n) \
++do { \
++ REG_DMAC_DCMD((n)) &= ~DMAC_DCMD_DS_MASK; \
++ REG_DMAC_DCMD((n)) |= DMAC_DCMD_DS_32BYTE; \
++} while (0)
++
++/* w=8,16,32 */
++#define __dmac_channel_set_dest_port_width(n,w) \
++do { \
++ REG_DMAC_DCMD((n)) &= ~DMAC_DCMD_DWDH_MASK; \
++ REG_DMAC_DCMD((n)) |= DMAC_DCMD_DWDH_##w; \
++} while (0)
++
++/* w=8,16,32 */
++#define __dmac_channel_set_src_port_width(n,w) \
++do { \
++ REG_DMAC_DCMD((n)) &= ~DMAC_DCMD_SWDH_MASK; \
++ REG_DMAC_DCMD((n)) |= DMAC_DCMD_SWDH_##w; \
++} while (0)
++
++/* v=0-15 */
++#define __dmac_channel_set_rdil(n,v) \
++do { \
++ REG_DMAC_DCMD((n)) &= ~DMAC_DCMD_RDIL_MASK; \
++ REG_DMAC_DCMD((n) |= ((v) << DMAC_DCMD_RDIL_BIT); \
++} while (0)
++
++#define __dmac_channel_dest_addr_fixed(n) \
++ ( REG_DMAC_DCMD((n)) &= ~DMAC_DCMD_DAI )
++#define __dmac_channel_dest_addr_increment(n) \
++ ( REG_DMAC_DCMD((n)) |= DMAC_DCMD_DAI )
++
++#define __dmac_channel_src_addr_fixed(n) \
++ ( REG_DMAC_DCMD((n)) &= ~DMAC_DCMD_SAI )
++#define __dmac_channel_src_addr_increment(n) \
++ ( REG_DMAC_DCMD((n)) |= DMAC_DCMD_SAI )
++
++#define __dmac_channel_set_doorbell(n) \
++ ( REG_DMAC_DMADBSR = (1 << (n)) )
++
++#define __dmac_channel_irq_detected(n) ( REG_DMAC_DMAIPR & (1 << (n)) )
++#define __dmac_channel_ack_irq(n) ( REG_DMAC_DMAIPR &= ~(1 << (n)) )
++
++static __inline__ int __dmac_get_irq(void)
++{
++ int i;
++ for (i = 0; i < MAX_DMA_NUM; i++)
++ if (__dmac_channel_irq_detected(i))
++ return i;
++ return -1;
++}
++
++
++/***************************************************************************
++ * AIC (AC'97 & I2S Controller)
++ ***************************************************************************/
++
++#define __aic_enable() ( REG_AIC_FR |= AIC_FR_ENB )
++#define __aic_disable() ( REG_AIC_FR &= ~AIC_FR_ENB )
++
++#define __aic_select_ac97() ( REG_AIC_FR &= ~AIC_FR_AUSEL )
++#define __aic_select_i2s() ( REG_AIC_FR |= AIC_FR_AUSEL )
++
++#define __aic_play_zero() ( REG_AIC_FR &= ~AIC_FR_LSMP )
++#define __aic_play_lastsample() ( REG_AIC_FR |= AIC_FR_LSMP )
++
++#define __i2s_as_master() ( REG_AIC_FR |= AIC_FR_BCKD | AIC_FR_SYNCD )
++#define __i2s_as_slave() ( REG_AIC_FR &= ~(AIC_FR_BCKD | AIC_FR_SYNCD) )
++#define __aic_reset_status() ( REG_AIC_FR & AIC_FR_RST )
++
++#define __aic_reset() \
++do { \
++ REG_AIC_FR |= AIC_FR_RST; \
++} while(0)
++
++
++#define __aic_set_transmit_trigger(n) \
++do { \
++ REG_AIC_FR &= ~AIC_FR_TFTH_MASK; \
++ REG_AIC_FR |= ((n) << AIC_FR_TFTH_BIT); \
++} while(0)
++
++#define __aic_set_receive_trigger(n) \
++do { \
++ REG_AIC_FR &= ~AIC_FR_RFTH_MASK; \
++ REG_AIC_FR |= ((n) << AIC_FR_RFTH_BIT); \
++} while(0)
++
++#define __aic_enable_record() ( REG_AIC_CR |= AIC_CR_EREC )
++#define __aic_disable_record() ( REG_AIC_CR &= ~AIC_CR_EREC )
++#define __aic_enable_replay() ( REG_AIC_CR |= AIC_CR_ERPL )
++#define __aic_disable_replay() ( REG_AIC_CR &= ~AIC_CR_ERPL )
++#define __aic_enable_loopback() ( REG_AIC_CR |= AIC_CR_ENLBF )
++#define __aic_disable_loopback() ( REG_AIC_CR &= ~AIC_CR_ENLBF )
++
++#define __aic_flush_fifo() ( REG_AIC_CR |= AIC_CR_FLUSH )
++#define __aic_unflush_fifo() ( REG_AIC_CR &= ~AIC_CR_FLUSH )
++
++#define __aic_enable_transmit_intr() \
++ ( REG_AIC_CR |= (AIC_CR_ETFS | AIC_CR_ETUR) )
++#define __aic_disable_transmit_intr() \
++ ( REG_AIC_CR &= ~(AIC_CR_ETFS | AIC_CR_ETUR) )
++#define __aic_enable_receive_intr() \
++ ( REG_AIC_CR |= (AIC_CR_ERFS | AIC_CR_EROR) )
++#define __aic_disable_receive_intr() \
++ ( REG_AIC_CR &= ~(AIC_CR_ERFS | AIC_CR_EROR) )
++
++#define __aic_enable_transmit_dma() ( REG_AIC_CR |= AIC_CR_TDMS )
++#define __aic_disable_transmit_dma() ( REG_AIC_CR &= ~AIC_CR_TDMS )
++#define __aic_enable_receive_dma() ( REG_AIC_CR |= AIC_CR_RDMS )
++#define __aic_disable_receive_dma() ( REG_AIC_CR &= ~AIC_CR_RDMS )
++
++#define __aic_enable_mono2stereo() ( REG_AIC_CR |= AIC_CR_M2S )
++#define __aic_disable_mono2stereo() ( REG_AIC_CR &= ~AIC_CR_M2S )
++#define __aic_enable_byteswap() ( REG_AIC_CR |= AIC_CR_ENDSW )
++#define __aic_disable_byteswap() ( REG_AIC_CR &= ~AIC_CR_ENDSW )
++#define __aic_enable_unsignadj() ( REG_AIC_CR |= AIC_CR_AVSTSU )
++#define __aic_disable_unsignadj() ( REG_AIC_CR &= ~AIC_CR_AVSTSU )
++
++#define AC97_PCM_XS_L_FRONT AIC_ACCR1_XS_SLOT3
++#define AC97_PCM_XS_R_FRONT AIC_ACCR1_XS_SLOT4
++#define AC97_PCM_XS_CENTER AIC_ACCR1_XS_SLOT6
++#define AC97_PCM_XS_L_SURR AIC_ACCR1_XS_SLOT7
++#define AC97_PCM_XS_R_SURR AIC_ACCR1_XS_SLOT8
++#define AC97_PCM_XS_LFE AIC_ACCR1_XS_SLOT9
++
++#define AC97_PCM_RS_L_FRONT AIC_ACCR1_RS_SLOT3
++#define AC97_PCM_RS_R_FRONT AIC_ACCR1_RS_SLOT4
++#define AC97_PCM_RS_CENTER AIC_ACCR1_RS_SLOT6
++#define AC97_PCM_RS_L_SURR AIC_ACCR1_RS_SLOT7
++#define AC97_PCM_RS_R_SURR AIC_ACCR1_RS_SLOT8
++#define AC97_PCM_RS_LFE AIC_ACCR1_RS_SLOT9
++
++#define __ac97_set_xs_none() ( REG_AIC_ACCR1 &= ~AIC_ACCR1_XS_MASK )
++#define __ac97_set_xs_mono() \
++do { \
++ REG_AIC_ACCR1 &= ~AIC_ACCR1_XS_MASK; \
++ REG_AIC_ACCR1 |= AC97_PCM_XS_R_FRONT; \
++} while(0)
++#define __ac97_set_xs_stereo() \
++do { \
++ REG_AIC_ACCR1 &= ~AIC_ACCR1_XS_MASK; \
++ REG_AIC_ACCR1 |= AC97_PCM_XS_L_FRONT | AC97_PCM_XS_R_FRONT; \
++} while(0)
++
++/* In fact, only stereo is support now. */
++#define __ac97_set_rs_none() ( REG_AIC_ACCR1 &= ~AIC_ACCR1_RS_MASK )
++#define __ac97_set_rs_mono() \
++do { \
++ REG_AIC_ACCR1 &= ~AIC_ACCR1_RS_MASK; \
++ REG_AIC_ACCR1 |= AC97_PCM_RS_R_FRONT; \
++} while(0)
++#define __ac97_set_rs_stereo() \
++do { \
++ REG_AIC_ACCR1 &= ~AIC_ACCR1_RS_MASK; \
++ REG_AIC_ACCR1 |= AC97_PCM_RS_L_FRONT | AC97_PCM_RS_R_FRONT; \
++} while(0)
++
++#define __ac97_warm_reset_codec() \
++ do { \
++ REG_AIC_ACCR2 |= AIC_ACCR2_SA; \
++ REG_AIC_ACCR2 |= AIC_ACCR2_SS; \
++ udelay(2); \
++ REG_AIC_ACCR2 &= ~AIC_ACCR2_SS; \
++ REG_AIC_ACCR2 &= ~AIC_ACCR2_SA; \
++ } while (0)
++
++#define __ac97_cold_reset_codec() \
++ do { \
++ REG_AIC_ACCR2 |= AIC_ACCR2_SR; \
++ udelay(2); \
++ REG_AIC_ACCR2 &= ~AIC_ACCR2_SR; \
++ } while (0)
++
++/* n=8,16,18,20 */
++#define __ac97_set_iass(n) \
++ ( REG_AIC_ACCR2 = (REG_AIC_ACCR2 & ~AIC_ACCR2_IASS_MASK) | AIC_ACCR2_IASS_##n##BIT )
++#define __ac97_set_oass(n) \
++ ( REG_AIC_ACCR2 = (REG_AIC_ACCR2 & ~AIC_ACCR2_OASS_MASK) | AIC_ACCR2_OASS_##n##BIT )
++
++#define __i2s_select_i2s() ( REG_AIC_I2SCR &= ~AIC_I2SCR_AMSL )
++#define __i2s_select_msbjustified() ( REG_AIC_I2SCR |= AIC_I2SCR_AMSL )
++
++/* n=8,16,18,20,24 */
++/*#define __i2s_set_sample_size(n) \
++ ( REG_AIC_I2SCR |= (REG_AIC_I2SCR & ~AIC_I2SCR_WL_MASK) | AIC_I2SCR_WL_##n##BIT )*/
++
++#define __i2s_set_oss_sample_size(n) \
++ ( REG_AIC_CR = (REG_AIC_CR & ~AIC_CR_OSS_MASK) | AIC_CR_OSS_##n##BIT )
++#define __i2s_set_iss_sample_size(n) \
++ ( REG_AIC_CR = (REG_AIC_CR & ~AIC_CR_ISS_MASK) | AIC_CR_ISS_##n##BIT )
++
++#define __i2s_stop_bitclk() ( REG_AIC_I2SCR |= AIC_I2SCR_STPBK )
++#define __i2s_start_bitclk() ( REG_AIC_I2SCR &= ~AIC_I2SCR_STPBK )
++
++#define __aic_transmit_request() ( REG_AIC_SR & AIC_SR_TFS )
++#define __aic_receive_request() ( REG_AIC_SR & AIC_SR_RFS )
++#define __aic_transmit_underrun() ( REG_AIC_SR & AIC_SR_TUR )
++#define __aic_receive_overrun() ( REG_AIC_SR & AIC_SR_ROR )
++
++#define __aic_clear_errors() ( REG_AIC_SR &= ~(AIC_SR_TUR | AIC_SR_ROR) )
++
++#define __aic_get_transmit_resident() \
++ ( (REG_AIC_SR & AIC_SR_TFL_MASK) >> AIC_SR_TFL_BIT )
++#define __aic_get_receive_count() \
++ ( (REG_AIC_SR & AIC_SR_RFL_MASK) >> AIC_SR_RFL_BIT )
++
++#define __ac97_command_transmitted() ( REG_AIC_ACSR & AIC_ACSR_CADT )
++#define __ac97_status_received() ( REG_AIC_ACSR & AIC_ACSR_SADR )
++#define __ac97_status_receive_timeout() ( REG_AIC_ACSR & AIC_ACSR_RSTO )
++#define __ac97_codec_is_low_power_mode() ( REG_AIC_ACSR & AIC_ACSR_CLPM )
++#define __ac97_codec_is_ready() ( REG_AIC_ACSR & AIC_ACSR_CRDY )
++#define __ac97_slot_error_detected() ( REG_AIC_ACSR & AIC_ACSR_SLTERR )
++#define __ac97_clear_slot_error() ( REG_AIC_ACSR &= ~AIC_ACSR_SLTERR )
++
++#define __i2s_is_busy() ( REG_AIC_I2SSR & AIC_I2SSR_BSY )
++
++#define CODEC_READ_CMD (1 << 19)
++#define CODEC_WRITE_CMD (0 << 19)
++#define CODEC_REG_INDEX_BIT 12
++#define CODEC_REG_INDEX_MASK (0x7f << CODEC_REG_INDEX_BIT) /* 18:12 */
++#define CODEC_REG_DATA_BIT 4
++#define CODEC_REG_DATA_MASK (0x0ffff << 4) /* 19:4 */
++
++#define __ac97_out_rcmd_addr(reg) \
++do { \
++ REG_AIC_ACCAR = CODEC_READ_CMD | ((reg) << CODEC_REG_INDEX_BIT); \
++} while (0)
++
++#define __ac97_out_wcmd_addr(reg) \
++do { \
++ REG_AIC_ACCAR = CODEC_WRITE_CMD | ((reg) << CODEC_REG_INDEX_BIT); \
++} while (0)
++
++#define __ac97_out_data(value) \
++do { \
++ REG_AIC_ACCDR = ((value) << CODEC_REG_DATA_BIT); \
++} while (0)
++
++#define __ac97_in_data() \
++ ( (REG_AIC_ACSDR & CODEC_REG_DATA_MASK) >> CODEC_REG_DATA_BIT )
++
++#define __ac97_in_status_addr() \
++ ( (REG_AIC_ACSAR & CODEC_REG_INDEX_MASK) >> CODEC_REG_INDEX_BIT )
++
++#define __i2s_set_sample_rate(i2sclk, sync) \
++ ( REG_AIC_I2SDIV = ((i2sclk) / (4*64)) / (sync) )
++
++#define __aic_write_tfifo(v) ( REG_AIC_DR = (v) )
++#define __aic_read_rfifo() ( REG_AIC_DR )
++
++#define __aic_internal_codec() ( REG_AIC_FR |= AIC_FR_ICDC )
++#define __aic_external_codec() ( REG_AIC_FR &= ~AIC_FR_ICDC )
++
++//
++// Define next ops for AC97 compatible
++//
++
++#define AC97_ACSR AIC_ACSR
++
++#define __ac97_enable() __aic_enable(); __aic_select_ac97()
++#define __ac97_disable() __aic_disable()
++#define __ac97_reset() __aic_reset()
++
++#define __ac97_set_transmit_trigger(n) __aic_set_transmit_trigger(n)
++#define __ac97_set_receive_trigger(n) __aic_set_receive_trigger(n)
++
++#define __ac97_enable_record() __aic_enable_record()
++#define __ac97_disable_record() __aic_disable_record()
++#define __ac97_enable_replay() __aic_enable_replay()
++#define __ac97_disable_replay() __aic_disable_replay()
++#define __ac97_enable_loopback() __aic_enable_loopback()
++#define __ac97_disable_loopback() __aic_disable_loopback()
++
++#define __ac97_enable_transmit_dma() __aic_enable_transmit_dma()
++#define __ac97_disable_transmit_dma() __aic_disable_transmit_dma()
++#define __ac97_enable_receive_dma() __aic_enable_receive_dma()
++#define __ac97_disable_receive_dma() __aic_disable_receive_dma()
++
++#define __ac97_transmit_request() __aic_transmit_request()
++#define __ac97_receive_request() __aic_receive_request()
++#define __ac97_transmit_underrun() __aic_transmit_underrun()
++#define __ac97_receive_overrun() __aic_receive_overrun()
++
++#define __ac97_clear_errors() __aic_clear_errors()
++
++#define __ac97_get_transmit_resident() __aic_get_transmit_resident()
++#define __ac97_get_receive_count() __aic_get_receive_count()
++
++#define __ac97_enable_transmit_intr() __aic_enable_transmit_intr()
++#define __ac97_disable_transmit_intr() __aic_disable_transmit_intr()
++#define __ac97_enable_receive_intr() __aic_enable_receive_intr()
++#define __ac97_disable_receive_intr() __aic_disable_receive_intr()
++
++#define __ac97_write_tfifo(v) __aic_write_tfifo(v)
++#define __ac97_read_rfifo() __aic_read_rfifo()
++
++//
++// Define next ops for I2S compatible
++//
++
++#define I2S_ACSR AIC_I2SSR
++
++#define __i2s_enable() __aic_enable(); __aic_select_i2s()
++#define __i2s_disable() __aic_disable()
++#define __i2s_reset() __aic_reset()
++
++#define __i2s_set_transmit_trigger(n) __aic_set_transmit_trigger(n)
++#define __i2s_set_receive_trigger(n) __aic_set_receive_trigger(n)
++
++#define __i2s_enable_record() __aic_enable_record()
++#define __i2s_disable_record() __aic_disable_record()
++#define __i2s_enable_replay() __aic_enable_replay()
++#define __i2s_disable_replay() __aic_disable_replay()
++#define __i2s_enable_loopback() __aic_enable_loopback()
++#define __i2s_disable_loopback() __aic_disable_loopback()
++
++#define __i2s_enable_transmit_dma() __aic_enable_transmit_dma()
++#define __i2s_disable_transmit_dma() __aic_disable_transmit_dma()
++#define __i2s_enable_receive_dma() __aic_enable_receive_dma()
++#define __i2s_disable_receive_dma() __aic_disable_receive_dma()
++
++#define __i2s_transmit_request() __aic_transmit_request()
++#define __i2s_receive_request() __aic_receive_request()
++#define __i2s_transmit_underrun() __aic_transmit_underrun()
++#define __i2s_receive_overrun() __aic_receive_overrun()
++
++#define __i2s_clear_errors() __aic_clear_errors()
++
++#define __i2s_get_transmit_resident() __aic_get_transmit_resident()
++#define __i2s_get_receive_count() __aic_get_receive_count()
++
++#define __i2s_enable_transmit_intr() __aic_enable_transmit_intr()
++#define __i2s_disable_transmit_intr() __aic_disable_transmit_intr()
++#define __i2s_enable_receive_intr() __aic_enable_receive_intr()
++#define __i2s_disable_receive_intr() __aic_disable_receive_intr()
++
++#define __i2s_write_tfifo(v) __aic_write_tfifo(v)
++#define __i2s_read_rfifo() __aic_read_rfifo()
++
++#define __i2s_reset_codec() \
++ do { \
++ } while (0)
++
++
++/***************************************************************************
++ * ICDC
++ ***************************************************************************/
++#define __i2s_internal_codec() __aic_internal_codec()
++#define __i2s_external_codec() __aic_external_codec()
++
++/***************************************************************************
++ * INTC
++ ***************************************************************************/
++#define __intc_unmask_irq(n) ( REG_INTC_IMCR = (1 << (n)) )
++#define __intc_mask_irq(n) ( REG_INTC_IMSR = (1 << (n)) )
++#define __intc_ack_irq(n) ( REG_INTC_IPR = (1 << (n)) )
++
++
++/***************************************************************************
++ * I2C
++ ***************************************************************************/
++
++#define __i2c_enable() ( REG_I2C_CR |= I2C_CR_I2CE )
++#define __i2c_disable() ( REG_I2C_CR &= ~I2C_CR_I2CE )
++
++#define __i2c_send_start() ( REG_I2C_CR |= I2C_CR_STA )
++#define __i2c_send_stop() ( REG_I2C_CR |= I2C_CR_STO )
++#define __i2c_send_ack() ( REG_I2C_CR &= ~I2C_CR_AC )
++#define __i2c_send_nack() ( REG_I2C_CR |= I2C_CR_AC )
++
++#define __i2c_set_drf() ( REG_I2C_SR |= I2C_SR_DRF )
++#define __i2c_clear_drf() ( REG_I2C_SR &= ~I2C_SR_DRF )
++#define __i2c_check_drf() ( REG_I2C_SR & I2C_SR_DRF )
++
++#define __i2c_received_ack() ( !(REG_I2C_SR & I2C_SR_ACKF) )
++#define __i2c_is_busy() ( REG_I2C_SR & I2C_SR_BUSY )
++#define __i2c_transmit_ended() ( REG_I2C_SR & I2C_SR_TEND )
++
++#define __i2c_set_clk(dev_clk, i2c_clk) \
++ ( REG_I2C_GR = (dev_clk) / (16*(i2c_clk)) - 1 )
++
++#define __i2c_read() ( REG_I2C_DR )
++#define __i2c_write(val) ( REG_I2C_DR = (val) )
++
++
++/***************************************************************************
++ * MSC
++ ***************************************************************************/
++
++#define __msc_start_op() \
++ ( REG_MSC_STRPCL = MSC_STRPCL_START_OP | MSC_STRPCL_CLOCK_CONTROL_START )
++
++#define __msc_set_resto(to) ( REG_MSC_RESTO = to )
++#define __msc_set_rdto(to) ( REG_MSC_RDTO = to )
++#define __msc_set_cmd(cmd) ( REG_MSC_CMD = cmd )
++#define __msc_set_arg(arg) ( REG_MSC_ARG = arg )
++#define __msc_set_nob(nob) ( REG_MSC_NOB = nob )
++#define __msc_get_nob() ( REG_MSC_NOB )
++#define __msc_set_blklen(len) ( REG_MSC_BLKLEN = len )
++#define __msc_set_cmdat(cmdat) ( REG_MSC_CMDAT = cmdat )
++#define __msc_set_cmdat_ioabort() ( REG_MSC_CMDAT |= MSC_CMDAT_IO_ABORT )
++#define __msc_clear_cmdat_ioabort() ( REG_MSC_CMDAT &= ~MSC_CMDAT_IO_ABORT )
++
++#define __msc_set_cmdat_bus_width1() \
++do { \
++ REG_MSC_CMDAT &= ~MSC_CMDAT_BUS_WIDTH_MASK; \
++ REG_MSC_CMDAT |= MSC_CMDAT_BUS_WIDTH_1BIT; \
++} while(0)
++
++#define __msc_set_cmdat_bus_width4() \
++do { \
++ REG_MSC_CMDAT &= ~MSC_CMDAT_BUS_WIDTH_MASK; \
++ REG_MSC_CMDAT |= MSC_CMDAT_BUS_WIDTH_4BIT; \
++} while(0)
++
++#define __msc_set_cmdat_dma_en() ( REG_MSC_CMDAT |= MSC_CMDAT_DMA_EN )
++#define __msc_set_cmdat_init() ( REG_MSC_CMDAT |= MSC_CMDAT_INIT )
++#define __msc_set_cmdat_busy() ( REG_MSC_CMDAT |= MSC_CMDAT_BUSY )
++#define __msc_set_cmdat_stream() ( REG_MSC_CMDAT |= MSC_CMDAT_STREAM_BLOCK )
++#define __msc_set_cmdat_block() ( REG_MSC_CMDAT &= ~MSC_CMDAT_STREAM_BLOCK )
++#define __msc_set_cmdat_read() ( REG_MSC_CMDAT &= ~MSC_CMDAT_WRITE_READ )
++#define __msc_set_cmdat_write() ( REG_MSC_CMDAT |= MSC_CMDAT_WRITE_READ )
++#define __msc_set_cmdat_data_en() ( REG_MSC_CMDAT |= MSC_CMDAT_DATA_EN )
++
++/* r is MSC_CMDAT_RESPONSE_FORMAT_Rx or MSC_CMDAT_RESPONSE_FORMAT_NONE */
++#define __msc_set_cmdat_res_format(r) \
++do { \
++ REG_MSC_CMDAT &= ~MSC_CMDAT_RESPONSE_FORMAT_MASK; \
++ REG_MSC_CMDAT |= (r); \
++} while(0)
++
++#define __msc_clear_cmdat() \
++ REG_MSC_CMDAT &= ~( MSC_CMDAT_IO_ABORT | MSC_CMDAT_DMA_EN | MSC_CMDAT_INIT| \
++ MSC_CMDAT_BUSY | MSC_CMDAT_STREAM_BLOCK | MSC_CMDAT_WRITE_READ | \
++ MSC_CMDAT_DATA_EN | MSC_CMDAT_RESPONSE_FORMAT_MASK )
++
++#define __msc_get_imask() ( REG_MSC_IMASK )
++#define __msc_mask_all_intrs() ( REG_MSC_IMASK = 0xff )
++#define __msc_unmask_all_intrs() ( REG_MSC_IMASK = 0x00 )
++#define __msc_mask_rd() ( REG_MSC_IMASK |= MSC_IMASK_RXFIFO_RD_REQ )
++#define __msc_unmask_rd() ( REG_MSC_IMASK &= ~MSC_IMASK_RXFIFO_RD_REQ )
++#define __msc_mask_wr() ( REG_MSC_IMASK |= MSC_IMASK_TXFIFO_WR_REQ )
++#define __msc_unmask_wr() ( REG_MSC_IMASK &= ~MSC_IMASK_TXFIFO_WR_REQ )
++#define __msc_mask_endcmdres() ( REG_MSC_IMASK |= MSC_IMASK_END_CMD_RES )
++#define __msc_unmask_endcmdres() ( REG_MSC_IMASK &= ~MSC_IMASK_END_CMD_RES )
++#define __msc_mask_datatrandone() ( REG_MSC_IMASK |= MSC_IMASK_DATA_TRAN_DONE )
++#define __msc_unmask_datatrandone() ( REG_MSC_IMASK &= ~MSC_IMASK_DATA_TRAN_DONE )
++#define __msc_mask_prgdone() ( REG_MSC_IMASK |= MSC_IMASK_PRG_DONE )
++#define __msc_unmask_prgdone() ( REG_MSC_IMASK &= ~MSC_IMASK_PRG_DONE )
++
++/* n=0,1,2,3,4,5,6,7 */
++#define __msc_set_clkrt(n) \
++do { \
++ REG_MSC_CLKRT = n; \
++} while(0)
++
++#define __msc_get_ireg() ( REG_MSC_IREG )
++#define __msc_ireg_rd() ( REG_MSC_IREG & MSC_IREG_RXFIFO_RD_REQ )
++#define __msc_ireg_wr() ( REG_MSC_IREG & MSC_IREG_TXFIFO_WR_REQ )
++#define __msc_ireg_end_cmd_res() ( REG_MSC_IREG & MSC_IREG_END_CMD_RES )
++#define __msc_ireg_data_tran_done() ( REG_MSC_IREG & MSC_IREG_DATA_TRAN_DONE )
++#define __msc_ireg_prg_done() ( REG_MSC_IREG & MSC_IREG_PRG_DONE )
++#define __msc_ireg_clear_end_cmd_res() ( REG_MSC_IREG = MSC_IREG_END_CMD_RES )
++#define __msc_ireg_clear_data_tran_done() ( REG_MSC_IREG = MSC_IREG_DATA_TRAN_DONE )
++#define __msc_ireg_clear_prg_done() ( REG_MSC_IREG = MSC_IREG_PRG_DONE )
++
++#define __msc_get_stat() ( REG_MSC_STAT )
++#define __msc_stat_not_end_cmd_res() ( (REG_MSC_STAT & MSC_STAT_END_CMD_RES) == 0)
++#define __msc_stat_crc_err() \
++ ( REG_MSC_STAT & (MSC_STAT_CRC_RES_ERR | MSC_STAT_CRC_READ_ERROR | MSC_STAT_CRC_WRITE_ERROR_YES) )
++#define __msc_stat_res_crc_err() ( REG_MSC_STAT & MSC_STAT_CRC_RES_ERR )
++#define __msc_stat_rd_crc_err() ( REG_MSC_STAT & MSC_STAT_CRC_READ_ERROR )
++#define __msc_stat_wr_crc_err() ( REG_MSC_STAT & MSC_STAT_CRC_WRITE_ERROR_YES )
++#define __msc_stat_resto_err() ( REG_MSC_STAT & MSC_STAT_TIME_OUT_RES )
++#define __msc_stat_rdto_err() ( REG_MSC_STAT & MSC_STAT_TIME_OUT_READ )
++
++#define __msc_rd_resfifo() ( REG_MSC_RES )
++#define __msc_rd_rxfifo() ( REG_MSC_RXFIFO )
++#define __msc_wr_txfifo(v) ( REG_MSC_TXFIFO = v )
++
++#define __msc_reset() \
++do { \
++ REG_MSC_STRPCL = MSC_STRPCL_RESET; \
++ while (REG_MSC_STAT & MSC_STAT_IS_RESETTING); \
++} while (0)
++
++#define __msc_start_clk() \
++do { \
++ REG_MSC_STRPCL = MSC_STRPCL_CLOCK_CONTROL_START; \
++} while (0)
++
++#define __msc_stop_clk() \
++do { \
++ REG_MSC_STRPCL = MSC_STRPCL_CLOCK_CONTROL_STOP; \
++} while (0)
++
++#define MMC_CLK 19169200
++#define SD_CLK 24576000
++
++/* msc_clk should little than pclk and little than clk retrieve from card */
++#define __msc_calc_clk_divisor(type,dev_clk,msc_clk,lv) \
++do { \
++ unsigned int rate, pclk, i; \
++ pclk = dev_clk; \
++ rate = type?SD_CLK:MMC_CLK; \
++ if (msc_clk && msc_clk < pclk) \
++ pclk = msc_clk; \
++ i = 0; \
++ while (pclk < rate) \
++ { \
++ i ++; \
++ rate >>= 1; \
++ } \
++ lv = i; \
++} while(0)
++
++/* divide rate to little than or equal to 400kHz */
++#define __msc_calc_slow_clk_divisor(type, lv) \
++do { \
++ unsigned int rate, i; \
++ rate = (type?SD_CLK:MMC_CLK)/1000/400; \
++ i = 0; \
++ while (rate > 0) \
++ { \
++ rate >>= 1; \
++ i ++; \
++ } \
++ lv = i; \
++} while(0)
++
++
++/***************************************************************************
++ * SSI
++ ***************************************************************************/
++
++#define __ssi_enable() ( REG_SSI_CR0 |= SSI_CR0_SSIE )
++#define __ssi_disable() ( REG_SSI_CR0 &= ~SSI_CR0_SSIE )
++#define __ssi_select_ce() ( REG_SSI_CR0 &= ~SSI_CR0_FSEL )
++
++#define __ssi_normal_mode() ( REG_SSI_ITR &= ~SSI_ITR_IVLTM_MASK )
++
++#define __ssi_select_ce2() \
++do { \
++ REG_SSI_CR0 |= SSI_CR0_FSEL; \
++ REG_SSI_CR1 &= ~SSI_CR1_MULTS; \
++} while (0)
++
++#define __ssi_select_gpc() \
++do { \
++ REG_SSI_CR0 &= ~SSI_CR0_FSEL; \
++ REG_SSI_CR1 |= SSI_CR1_MULTS; \
++} while (0)
++
++#define __ssi_enable_tx_intr() \
++ ( REG_SSI_CR0 |= SSI_CR0_TIE | SSI_CR0_TEIE )
++
++#define __ssi_disable_tx_intr() \
++ ( REG_SSI_CR0 &= ~(SSI_CR0_TIE | SSI_CR0_TEIE) )
++
++#define __ssi_enable_rx_intr() \
++ ( REG_SSI_CR0 |= SSI_CR0_RIE | SSI_CR0_REIE )
++
++#define __ssi_disable_rx_intr() \
++ ( REG_SSI_CR0 &= ~(SSI_CR0_RIE | SSI_CR0_REIE) )
++
++#define __ssi_enable_txfifo_half_empty_intr() \
++ ( REG_SSI_CR0 |= SSI_CR0_TIE )
++#define __ssi_disable_txfifo_half_empty_intr() \
++ ( REG_SSI_CR0 &= ~SSI_CR0_TIE )
++#define __ssi_enable_tx_error_intr() \
++ ( REG_SSI_CR0 |= SSI_CR0_TEIE )
++#define __ssi_disable_tx_error_intr() \
++ ( REG_SSI_CR0 &= ~SSI_CR0_TEIE )
++
++#define __ssi_enable_rxfifo_half_full_intr() \
++ ( REG_SSI_CR0 |= SSI_CR0_RIE )
++#define __ssi_disable_rxfifo_half_full_intr() \
++ ( REG_SSI_CR0 &= ~SSI_CR0_RIE )
++#define __ssi_enable_rx_error_intr() \
++ ( REG_SSI_CR0 |= SSI_CR0_REIE )
++#define __ssi_disable_rx_error_intr() \
++ ( REG_SSI_CR0 &= ~SSI_CR0_REIE )
++
++#define __ssi_enable_loopback() ( REG_SSI_CR0 |= SSI_CR0_LOOP )
++#define __ssi_disable_loopback() ( REG_SSI_CR0 &= ~SSI_CR0_LOOP )
++
++#define __ssi_enable_receive() ( REG_SSI_CR0 &= ~SSI_CR0_DISREV )
++#define __ssi_disable_receive() ( REG_SSI_CR0 |= SSI_CR0_DISREV )
++
++#define __ssi_finish_receive() \
++ ( REG_SSI_CR0 |= (SSI_CR0_RFINE | SSI_CR0_RFINC) )
++
++#define __ssi_disable_recvfinish() \
++ ( REG_SSI_CR0 &= ~(SSI_CR0_RFINE | SSI_CR0_RFINC) )
++
++#define __ssi_flush_txfifo() ( REG_SSI_CR0 |= SSI_CR0_TFLUSH )
++#define __ssi_flush_rxfifo() ( REG_SSI_CR0 |= SSI_CR0_RFLUSH )
++
++#define __ssi_flush_fifo() \
++ ( REG_SSI_CR0 |= SSI_CR0_TFLUSH | SSI_CR0_RFLUSH )
++
++#define __ssi_finish_transmit() ( REG_SSI_CR1 &= ~SSI_CR1_UNFIN )
++#define __ssi_wait_transmit() ( REG_SSI_CR1 |= SSI_CR1_UNFIN )
++
++#define __ssi_spi_format() \
++do { \
++ REG_SSI_CR1 &= ~SSI_CR1_FMAT_MASK; \
++ REG_SSI_CR1 |= SSI_CR1_FMAT_SPI; \
++ REG_SSI_CR1 &= ~(SSI_CR1_TFVCK_MASK|SSI_CR1_TCKFI_MASK);\
++ REG_SSI_CR1 |= (SSI_CR1_TFVCK_1 | SSI_CR1_TCKFI_1); \
++} while (0)
++
++/* TI's SSP format, must clear SSI_CR1.UNFIN */
++#define __ssi_ssp_format() \
++do { \
++ REG_SSI_CR1 &= ~(SSI_CR1_FMAT_MASK | SSI_CR1_UNFIN); \
++ REG_SSI_CR1 |= SSI_CR1_FMAT_SSP; \
++} while (0)
++
++/* National's Microwire format, must clear SSI_CR0.RFINE, and set max delay */
++#define __ssi_microwire_format() \
++do { \
++ REG_SSI_CR1 &= ~SSI_CR1_FMAT_MASK; \
++ REG_SSI_CR1 |= SSI_CR1_FMAT_MW1; \
++ REG_SSI_CR1 &= ~(SSI_CR1_TFVCK_MASK|SSI_CR1_TCKFI_MASK);\
++ REG_SSI_CR1 |= (SSI_CR1_TFVCK_3 | SSI_CR1_TCKFI_3); \
++ REG_SSI_CR0 &= ~SSI_CR0_RFINE; \
++} while (0)
++
++/* CE# level (FRMHL), CE# in interval time (ITFRM),
++ clock phase and polarity (PHA POL),
++ interval time (SSIITR), interval characters/frame (SSIICR) */
++
++ /* frmhl,endian,mcom,flen,pha,pol MASK */
++#define SSICR1_MISC_MASK \
++ ( SSI_CR1_FRMHL_MASK | SSI_CR1_LFST | SSI_CR1_MCOM_MASK \
++ | SSI_CR1_FLEN_MASK | SSI_CR1_PHA | SSI_CR1_POL ) \
++
++#define __ssi_spi_set_misc(frmhl,endian,flen,mcom,pha,pol) \
++do { \
++ REG_SSI_CR1 &= ~SSICR1_MISC_MASK; \
++ REG_SSI_CR1 |= ((frmhl) << 30) | ((endian) << 25) | \
++ (((mcom) - 1) << 12) | (((flen) - 2) << 4) | \
++ ((pha) << 1) | (pol); \
++} while(0)
++
++/* Transfer with MSB or LSB first */
++#define __ssi_set_msb() ( REG_SSI_CR1 &= ~SSI_CR1_LFST )
++#define __ssi_set_lsb() ( REG_SSI_CR1 |= SSI_CR1_LFST )
++
++#define __ssi_set_frame_length(n) \
++ REG_SSI_CR1 = (REG_SSI_CR1 & ~SSI_CR1_FLEN_MASK) | (((n) - 2) << 4)
++
++/* n = 1 - 16 */
++#define __ssi_set_microwire_command_length(n) \
++ ( REG_SSI_CR1 = ((REG_SSI_CR1 & ~SSI_CR1_MCOM_MASK) | SSI_CR1_MCOM_##n##BIT) )
++
++/* Set the clock phase for SPI */
++#define __ssi_set_spi_clock_phase(n) \
++ ( REG_SSI_CR1 = ((REG_SSI_CR1 & ~SSI_CR1_PHA) | ((n&0x1)<< 1)))
++
++/* Set the clock polarity for SPI */
++#define __ssi_set_spi_clock_polarity(n) \
++ ( REG_SSI_CR1 = ((REG_SSI_CR1 & ~SSI_CR1_POL) | (n&0x1)) )
++
++/* n = ix8 */
++#define __ssi_set_tx_trigger(n) \
++do { \
++ REG_SSI_CR1 &= ~SSI_CR1_TTRG_MASK; \
++ REG_SSI_CR1 |= (n/8)<<SSI_CR1_TTRG_BIT; \
++} while (0)
++
++/* n = ix8 */
++#define __ssi_set_rx_trigger(n) \
++do { \
++ REG_SSI_CR1 &= ~SSI_CR1_RTRG_MASK; \
++ REG_SSI_CR1 |= (n/8)<<SSI_CR1_RTRG_BIT; \
++} while (0)
++
++#define __ssi_get_txfifo_count() \
++ ( (REG_SSI_SR & SSI_SR_TFIFONUM_MASK) >> SSI_SR_TFIFONUM_BIT )
++
++#define __ssi_get_rxfifo_count() \
++ ( (REG_SSI_SR & SSI_SR_RFIFONUM_MASK) >> SSI_SR_RFIFONUM_BIT )
++
++#define __ssi_transfer_end() ( REG_SSI_SR & SSI_SR_END )
++#define __ssi_is_busy() ( REG_SSI_SR & SSI_SR_BUSY )
++
++#define __ssi_txfifo_full() ( REG_SSI_SR & SSI_SR_TFF )
++#define __ssi_rxfifo_empty() ( REG_SSI_SR & SSI_SR_RFE )
++#define __ssi_rxfifo_half_full() ( REG_SSI_SR & SSI_SR_RFHF )
++#define __ssi_txfifo_half_empty() ( REG_SSI_SR & SSI_SR_TFHE )
++#define __ssi_underrun() ( REG_SSI_SR & SSI_SR_UNDR )
++#define __ssi_overrun() ( REG_SSI_SR & SSI_SR_OVER )
++#define __ssi_clear_underrun() ( REG_SSI_SR = ~SSI_SR_UNDR )
++#define __ssi_clear_overrun() ( REG_SSI_SR = ~SSI_SR_OVER )
++#define __ssi_clear_errors() \
++ ( REG_SSI_SR &= ~(SSI_SR_UNDR | SSI_SR_OVER) )
++
++
++#define __ssi_set_clk(dev_clk, ssi_clk) \
++ ( REG_SSI_GR = (dev_clk) / (2*(ssi_clk)) - 1 )
++
++#define __ssi_receive_data() REG_SSI_DR
++#define __ssi_transmit_data(v) ( REG_SSI_DR = (v) )
++
++
++/***************************************************************************
++ * CIM
++ ***************************************************************************/
++
++#define __cim_enable() ( REG_CIM_CTRL |= CIM_CTRL_ENA )
++#define __cim_disable() ( REG_CIM_CTRL &= ~CIM_CTRL_ENA )
++
++#define __cim_input_data_inverse() ( REG_CIM_CFG |= CIM_CFG_INV_DAT )
++#define __cim_input_data_normal() ( REG_CIM_CFG &= ~CIM_CFG_INV_DAT )
++
++#define __cim_vsync_active_low() ( REG_CIM_CFG |= CIM_CFG_VSP )
++#define __cim_vsync_active_high() ( REG_CIM_CFG &= ~CIM_CFG_VSP )
++
++#define __cim_hsync_active_low() ( REG_CIM_CFG |= CIM_CFG_HSP )
++#define __cim_hsync_active_high() ( REG_CIM_CFG &= ~CIM_CFG_HSP )
++
++#define __cim_sample_data_at_pclk_falling_edge() \
++ ( REG_CIM_CFG |= CIM_CFG_PCP )
++#define __cim_sample_data_at_pclk_rising_edge() \
++ ( REG_CIM_CFG &= ~CIM_CFG_PCP )
++
++#define __cim_enable_dummy_zero() ( REG_CIM_CFG |= CIM_CFG_DUMMY_ZERO )
++#define __cim_disable_dummy_zero() ( REG_CIM_CFG &= ~CIM_CFG_DUMMY_ZERO )
++
++#define __cim_select_external_vsync() ( REG_CIM_CFG |= CIM_CFG_EXT_VSYNC )
++#define __cim_select_internal_vsync() ( REG_CIM_CFG &= ~CIM_CFG_EXT_VSYNC )
++
++/* n=0-7 */
++#define __cim_set_data_packing_mode(n) \
++do { \
++ REG_CIM_CFG &= ~CIM_CFG_PACK_MASK; \
++ REG_CIM_CFG |= (CIM_CFG_PACK_##n); \
++} while (0)
++
++#define __cim_enable_ccir656_progressive_mode() \
++do { \
++ REG_CIM_CFG &= ~CIM_CFG_DSM_MASK; \
++ REG_CIM_CFG |= CIM_CFG_DSM_CPM; \
++} while (0)
++
++#define __cim_enable_ccir656_interlace_mode() \
++do { \
++ REG_CIM_CFG &= ~CIM_CFG_DSM_MASK; \
++ REG_CIM_CFG |= CIM_CFG_DSM_CIM; \
++} while (0)
++
++#define __cim_enable_gated_clock_mode() \
++do { \
++ REG_CIM_CFG &= ~CIM_CFG_DSM_MASK; \
++ REG_CIM_CFG |= CIM_CFG_DSM_GCM; \
++} while (0)
++
++#define __cim_enable_nongated_clock_mode() \
++do { \
++ REG_CIM_CFG &= ~CIM_CFG_DSM_MASK; \
++ REG_CIM_CFG |= CIM_CFG_DSM_NGCM; \
++} while (0)
++
++/* sclk:system bus clock
++ * mclk: CIM master clock
++ */
++#define __cim_set_master_clk(sclk, mclk) \
++do { \
++ REG_CIM_CTRL &= ~CIM_CTRL_MCLKDIV_MASK; \
++ REG_CIM_CTRL |= (((sclk)/(mclk) - 1) << CIM_CTRL_MCLKDIV_BIT); \
++} while (0)
++
++#define __cim_enable_sof_intr() \
++ ( REG_CIM_CTRL |= CIM_CTRL_DMA_SOFM )
++#define __cim_disable_sof_intr() \
++ ( REG_CIM_CTRL &= ~CIM_CTRL_DMA_SOFM )
++
++#define __cim_enable_eof_intr() \
++ ( REG_CIM_CTRL |= CIM_CTRL_DMA_EOFM )
++#define __cim_disable_eof_intr() \
++ ( REG_CIM_CTRL &= ~CIM_CTRL_DMA_EOFM )
++
++#define __cim_enable_stop_intr() \
++ ( REG_CIM_CTRL |= CIM_CTRL_DMA_STOPM )
++#define __cim_disable_stop_intr() \
++ ( REG_CIM_CTRL &= ~CIM_CTRL_DMA_STOPM )
++
++#define __cim_enable_trig_intr() \
++ ( REG_CIM_CTRL |= CIM_CTRL_RXF_TRIGM )
++#define __cim_disable_trig_intr() \
++ ( REG_CIM_CTRL &= ~CIM_CTRL_RXF_TRIGM )
++
++#define __cim_enable_rxfifo_overflow_intr() \
++ ( REG_CIM_CTRL |= CIM_CTRL_RXF_OFM )
++#define __cim_disable_rxfifo_overflow_intr() \
++ ( REG_CIM_CTRL &= ~CIM_CTRL_RXF_OFM )
++
++/* n=1-16 */
++#define __cim_set_frame_rate(n) \
++do { \
++ REG_CIM_CTRL &= ~CIM_CTRL_FRC_MASK; \
++ REG_CIM_CTRL |= CIM_CTRL_FRC_##n; \
++} while (0)
++
++#define __cim_enable_dma() ( REG_CIM_CTRL |= CIM_CTRL_DMA_EN )
++#define __cim_disable_dma() ( REG_CIM_CTRL &= ~CIM_CTRL_DMA_EN )
++
++#define __cim_reset_rxfifo() ( REG_CIM_CTRL |= CIM_CTRL_RXF_RST )
++#define __cim_unreset_rxfifo() ( REG_CIM_CTRL &= ~CIM_CTRL_RXF_RST )
++
++/* n=4,8,12,16,20,24,28,32 */
++#define __cim_set_rxfifo_trigger(n) \
++do { \
++ REG_CIM_CTRL &= ~CIM_CTRL_RXF_TRIG_MASK; \
++ REG_CIM_CTRL |= CIM_CTRL_RXF_TRIG_##n; \
++} while (0)
++
++#define __cim_clear_state() ( REG_CIM_STATE = 0 )
++
++#define __cim_disable_done() ( REG_CIM_STATE & CIM_STATE_VDD )
++#define __cim_rxfifo_empty() ( REG_CIM_STATE & CIM_STATE_RXF_EMPTY )
++#define __cim_rxfifo_reach_trigger() ( REG_CIM_STATE & CIM_STATE_RXF_TRIG )
++#define __cim_rxfifo_overflow() ( REG_CIM_STATE & CIM_STATE_RXF_OF )
++#define __cim_clear_rxfifo_overflow() ( REG_CIM_STATE &= ~CIM_STATE_RXF_OF )
++#define __cim_dma_stop() ( REG_CIM_STATE & CIM_STATE_DMA_STOP )
++#define __cim_dma_eof() ( REG_CIM_STATE & CIM_STATE_DMA_EOF )
++#define __cim_dma_sof() ( REG_CIM_STATE & CIM_STATE_DMA_SOF )
++
++#define __cim_get_iid() ( REG_CIM_IID )
++#define __cim_get_image_data() ( REG_CIM_RXFIFO )
++#define __cim_get_dam_cmd() ( REG_CIM_CMD )
++
++#define __cim_set_da(a) ( REG_CIM_DA = (a) )
++
++/***************************************************************************
++ * LCD
++ ***************************************************************************/
++#define __lcd_as_smart_lcd() ( REG_LCD_CFG |= (1<<LCD_CFG_LCDPIN_BIT) )
++#define __lcd_as_general_lcd() ( REG_LCD_CFG &= ~(1<<LCD_CFG_LCDPIN_BIT) )
++
++#define __lcd_set_dis() ( REG_LCD_CTRL |= LCD_CTRL_DIS )
++#define __lcd_clr_dis() ( REG_LCD_CTRL &= ~LCD_CTRL_DIS )
++
++#define __lcd_set_ena() ( REG_LCD_CTRL |= LCD_CTRL_ENA )
++#define __lcd_clr_ena() ( REG_LCD_CTRL &= ~LCD_CTRL_ENA )
++
++/* n=1,2,4,8,16 */
++#define __lcd_set_bpp(n) \
++ ( REG_LCD_CTRL = (REG_LCD_CTRL & ~LCD_CTRL_BPP_MASK) | LCD_CTRL_BPP_##n )
++
++/* n=4,8,16 */
++#define __lcd_set_burst_length(n) \
++do { \
++ REG_LCD_CTRL &= ~LCD_CTRL_BST_MASK; \
++ REG_LCD_CTRL |= LCD_CTRL_BST_n##; \
++} while (0)
++
++#define __lcd_select_rgb565() ( REG_LCD_CTRL &= ~LCD_CTRL_RGB555 )
++#define __lcd_select_rgb555() ( REG_LCD_CTRL |= LCD_CTRL_RGB555 )
++
++#define __lcd_set_ofup() ( REG_LCD_CTRL |= LCD_CTRL_OFUP )
++#define __lcd_clr_ofup() ( REG_LCD_CTRL &= ~LCD_CTRL_OFUP )
++
++/* n=2,4,16 */
++#define __lcd_set_stn_frc(n) \
++do { \
++ REG_LCD_CTRL &= ~LCD_CTRL_FRC_MASK; \
++ REG_LCD_CTRL |= LCD_CTRL_FRC_n##; \
++} while (0)
++
++
++#define __lcd_pixel_endian_little() ( REG_LCD_CTRL |= LCD_CTRL_PEDN )
++#define __lcd_pixel_endian_big() ( REG_LCD_CTRL &= ~LCD_CTRL_PEDN )
++
++#define __lcd_reverse_byte_endian() ( REG_LCD_CTRL |= LCD_CTRL_BEDN )
++#define __lcd_normal_byte_endian() ( REG_LCD_CTRL &= ~LCD_CTRL_BEDN )
++
++#define __lcd_enable_eof_intr() ( REG_LCD_CTRL |= LCD_CTRL_EOFM )
++#define __lcd_disable_eof_intr() ( REG_LCD_CTRL &= ~LCD_CTRL_EOFM )
++
++#define __lcd_enable_sof_intr() ( REG_LCD_CTRL |= LCD_CTRL_SOFM )
++#define __lcd_disable_sof_intr() ( REG_LCD_CTRL &= ~LCD_CTRL_SOFM )
++
++#define __lcd_enable_ofu_intr() ( REG_LCD_CTRL |= LCD_CTRL_OFUM )
++#define __lcd_disable_ofu_intr() ( REG_LCD_CTRL &= ~LCD_CTRL_OFUM )
++
++#define __lcd_enable_ifu0_intr() ( REG_LCD_CTRL |= LCD_CTRL_IFUM0 )
++#define __lcd_disable_ifu0_intr() ( REG_LCD_CTRL &= ~LCD_CTRL_IFUM0 )
++
++#define __lcd_enable_ifu1_intr() ( REG_LCD_CTRL |= LCD_CTRL_IFUM1 )
++#define __lcd_disable_ifu1_intr() ( REG_LCD_CTRL &= ~LCD_CTRL_IFUM1 )
++
++#define __lcd_enable_ldd_intr() ( REG_LCD_CTRL |= LCD_CTRL_LDDM )
++#define __lcd_disable_ldd_intr() ( REG_LCD_CTRL &= ~LCD_CTRL_LDDM )
++
++#define __lcd_enable_qd_intr() ( REG_LCD_CTRL |= LCD_CTRL_QDM )
++#define __lcd_disable_qd_intr() ( REG_LCD_CTRL &= ~LCD_CTRL_QDM )
++
++
++/* LCD status register indication */
++
++#define __lcd_quick_disable_done() ( REG_LCD_STATE & LCD_STATE_QD )
++#define __lcd_disable_done() ( REG_LCD_STATE & LCD_STATE_LDD )
++#define __lcd_infifo0_underrun() ( REG_LCD_STATE & LCD_STATE_IFU0 )
++#define __lcd_infifo1_underrun() ( REG_LCD_STATE & LCD_STATE_IFU1 )
++#define __lcd_outfifo_underrun() ( REG_LCD_STATE & LCD_STATE_OFU )
++#define __lcd_start_of_frame() ( REG_LCD_STATE & LCD_STATE_SOF )
++#define __lcd_end_of_frame() ( REG_LCD_STATE & LCD_STATE_EOF )
++
++#define __lcd_clr_outfifounderrun() ( REG_LCD_STATE &= ~LCD_STATE_OFU )
++#define __lcd_clr_sof() ( REG_LCD_STATE &= ~LCD_STATE_SOF )
++#define __lcd_clr_eof() ( REG_LCD_STATE &= ~LCD_STATE_EOF )
++
++#define __lcd_panel_white() ( REG_LCD_CFG |= LCD_CFG_WHITE )
++#define __lcd_panel_black() ( REG_LCD_CFG &= ~LCD_CFG_WHITE )
++
++/* n=1,2,4,8 for single mono-STN
++ * n=4,8 for dual mono-STN
++ */
++#define __lcd_set_panel_datawidth(n) \
++do { \
++ REG_LCD_CFG &= ~LCD_CFG_PDW_MASK; \
++ REG_LCD_CFG |= LCD_CFG_PDW_n##; \
++} while (0)
++
++/* m=LCD_CFG_MODE_GENERUIC_TFT_xxx */
++#define __lcd_set_panel_mode(m) \
++do { \
++ REG_LCD_CFG &= ~LCD_CFG_MODE_MASK; \
++ REG_LCD_CFG |= (m); \
++} while(0)
++
++/* n = 0-255 */
++#define __lcd_disable_ac_bias() ( REG_LCD_IO = 0xff )
++#define __lcd_set_ac_bias(n) \
++do { \
++ REG_LCD_IO &= ~LCD_IO_ACB_MASK; \
++ REG_LCD_IO |= ((n) << LCD_IO_ACB_BIT); \
++} while(0)
++
++#define __lcd_io_set_dir() ( REG_LCD_IO |= LCD_IO_DIR )
++#define __lcd_io_clr_dir() ( REG_LCD_IO &= ~LCD_IO_DIR )
++
++#define __lcd_io_set_dep() ( REG_LCD_IO |= LCD_IO_DEP )
++#define __lcd_io_clr_dep() ( REG_LCD_IO &= ~LCD_IO_DEP )
++
++#define __lcd_io_set_vsp() ( REG_LCD_IO |= LCD_IO_VSP )
++#define __lcd_io_clr_vsp() ( REG_LCD_IO &= ~LCD_IO_VSP )
++
++#define __lcd_io_set_hsp() ( REG_LCD_IO |= LCD_IO_HSP )
++#define __lcd_io_clr_hsp() ( REG_LCD_IO &= ~LCD_IO_HSP )
++
++#define __lcd_io_set_pcp() ( REG_LCD_IO |= LCD_IO_PCP )
++#define __lcd_io_clr_pcp() ( REG_LCD_IO &= ~LCD_IO_PCP )
++
++#define __lcd_vsync_get_vps() \
++ ( (REG_LCD_VSYNC & LCD_VSYNC_VPS_MASK) >> LCD_VSYNC_VPS_BIT )
++
++#define __lcd_vsync_get_vpe() \
++ ( (REG_LCD_VSYNC & LCD_VSYNC_VPE_MASK) >> LCD_VSYNC_VPE_BIT )
++#define __lcd_vsync_set_vpe(n) \
++do { \
++ REG_LCD_VSYNC &= ~LCD_VSYNC_VPE_MASK; \
++ REG_LCD_VSYNC |= (n) << LCD_VSYNC_VPE_BIT; \
++} while (0)
++
++#define __lcd_hsync_get_hps() \
++ ( (REG_LCD_HSYNC & LCD_HSYNC_HPS_MASK) >> LCD_HSYNC_HPS_BIT )
++#define __lcd_hsync_set_hps(n) \
++do { \
++ REG_LCD_HSYNC &= ~LCD_HSYNC_HPS_MASK; \
++ REG_LCD_HSYNC |= (n) << LCD_HSYNC_HPS_BIT; \
++} while (0)
++
++#define __lcd_hsync_get_hpe() \
++ ( (REG_LCD_HSYNC & LCD_HSYNC_HPE_MASK) >> LCD_VSYNC_HPE_BIT )
++#define __lcd_hsync_set_hpe(n) \
++do { \
++ REG_LCD_HSYNC &= ~LCD_HSYNC_HPE_MASK; \
++ REG_LCD_HSYNC |= (n) << LCD_HSYNC_HPE_BIT; \
++} while (0)
++
++#define __lcd_vat_get_ht() \
++ ( (REG_LCD_VAT & LCD_VAT_HT_MASK) >> LCD_VAT_HT_BIT )
++#define __lcd_vat_set_ht(n) \
++do { \
++ REG_LCD_VAT &= ~LCD_VAT_HT_MASK; \
++ REG_LCD_VAT |= (n) << LCD_VAT_HT_BIT; \
++} while (0)
++
++#define __lcd_vat_get_vt() \
++ ( (REG_LCD_VAT & LCD_VAT_VT_MASK) >> LCD_VAT_VT_BIT )
++#define __lcd_vat_set_vt(n) \
++do { \
++ REG_LCD_VAT &= ~LCD_VAT_VT_MASK; \
++ REG_LCD_VAT |= (n) << LCD_VAT_VT_BIT; \
++} while (0)
++
++#define __lcd_dah_get_hds() \
++ ( (REG_LCD_DAH & LCD_DAH_HDS_MASK) >> LCD_DAH_HDS_BIT )
++#define __lcd_dah_set_hds(n) \
++do { \
++ REG_LCD_DAH &= ~LCD_DAH_HDS_MASK; \
++ REG_LCD_DAH |= (n) << LCD_DAH_HDS_BIT; \
++} while (0)
++
++#define __lcd_dah_get_hde() \
++ ( (REG_LCD_DAH & LCD_DAH_HDE_MASK) >> LCD_DAH_HDE_BIT )
++#define __lcd_dah_set_hde(n) \
++do { \
++ REG_LCD_DAH &= ~LCD_DAH_HDE_MASK; \
++ REG_LCD_DAH |= (n) << LCD_DAH_HDE_BIT; \
++} while (0)
++
++#define __lcd_dav_get_vds() \
++ ( (REG_LCD_DAV & LCD_DAV_VDS_MASK) >> LCD_DAV_VDS_BIT )
++#define __lcd_dav_set_vds(n) \
++do { \
++ REG_LCD_DAV &= ~LCD_DAV_VDS_MASK; \
++ REG_LCD_DAV |= (n) << LCD_DAV_VDS_BIT; \
++} while (0)
++
++#define __lcd_dav_get_vde() \
++ ( (REG_LCD_DAV & LCD_DAV_VDE_MASK) >> LCD_DAV_VDE_BIT )
++#define __lcd_dav_set_vde(n) \
++do { \
++ REG_LCD_DAV &= ~LCD_DAV_VDE_MASK; \
++ REG_LCD_DAV |= (n) << LCD_DAV_VDE_BIT; \
++} while (0)
++
++#define __lcd_cmd0_set_sofint() ( REG_LCD_CMD0 |= LCD_CMD_SOFINT )
++#define __lcd_cmd0_clr_sofint() ( REG_LCD_CMD0 &= ~LCD_CMD_SOFINT )
++#define __lcd_cmd1_set_sofint() ( REG_LCD_CMD1 |= LCD_CMD_SOFINT )
++#define __lcd_cmd1_clr_sofint() ( REG_LCD_CMD1 &= ~LCD_CMD_SOFINT )
++
++#define __lcd_cmd0_set_eofint() ( REG_LCD_CMD0 |= LCD_CMD_EOFINT )
++#define __lcd_cmd0_clr_eofint() ( REG_LCD_CMD0 &= ~LCD_CMD_EOFINT )
++#define __lcd_cmd1_set_eofint() ( REG_LCD_CMD1 |= LCD_CMD_EOFINT )
++#define __lcd_cmd1_clr_eofint() ( REG_LCD_CMD1 &= ~LCD_CMD_EOFINT )
++
++#define __lcd_cmd0_set_pal() ( REG_LCD_CMD0 |= LCD_CMD_PAL )
++#define __lcd_cmd0_clr_pal() ( REG_LCD_CMD0 &= ~LCD_CMD_PAL )
++
++#define __lcd_cmd0_get_len() \
++ ( (REG_LCD_CMD0 & LCD_CMD_LEN_MASK) >> LCD_CMD_LEN_BIT )
++#define __lcd_cmd1_get_len() \
++ ( (REG_LCD_CMD1 & LCD_CMD_LEN_MASK) >> LCD_CMD_LEN_BIT )
++
++/*******************************************************
++ * SMART LCD
++ *******************************************************/
++
++#define __slcd_dma_enable() (REG_SLCD_CTRL |= SLCD_CTRL_DMA_EN)
++#define __slcd_dma_disable() \
++do {\
++ while (REG_SLCD_STATE & SLCD_STATE_BUSY); \
++ REG_SLCD_CTRL &= ~SLCD_CTRL_DMA_EN; \
++} while(0)
++
++/*******************************************************
++ * SMART LCD
++ *******************************************************/
++
++#define __slcd_dma_enable() (REG_SLCD_CTRL |= SLCD_CTRL_DMA_EN)
++#define __slcd_dma_disable() \
++do {\
++ while (REG_SLCD_STATE & SLCD_STATE_BUSY); \
++ REG_SLCD_CTRL &= ~SLCD_CTRL_DMA_EN; \
++} while(0)
++
++/***************************************************************************
++ * RTC ops
++ ***************************************************************************/
++
++#define __rtc_write_ready() ( (REG_RTC_RCR & RTC_RCR_WRDY) >> RTC_RCR_WRDY_BIT )
++#define __rtc_enabled() ( REG_RTC_RCR |= RTC_RCR_RTCE )
++#define __rtc_disabled() ( REG_RTC_RCR &= ~RTC_RCR_RTCE )
++#define __rtc_enable_alarm() ( REG_RTC_RCR |= RTC_RCR_AE )
++#define __rtc_disable_alarm() ( REG_RTC_RCR &= ~RTC_RCR_AE )
++#define __rtc_enable_alarm_irq() ( REG_RTC_RCR |= RTC_RCR_AIE )
++#define __rtc_disable_alarm_irq() ( REG_RTC_RCR &= ~RTC_RCR_AIE )
++#define __rtc_enable_1Hz_irq() ( REG_RTC_RCR |= RTC_RCR_1HZIE )
++#define __rtc_disable_1Hz_irq() ( REG_RTC_RCR &= ~RTC_RCR_1HZIE )
++
++#define __rtc_get_1Hz_flag() ( (REG_RTC_RCR >> RTC_RCR_1HZ_BIT) & 0x1 )
++#define __rtc_clear_1Hz_flag() ( REG_RTC_RCR &= ~RTC_RCR_1HZ )
++#define __rtc_get_alarm_flag() ( (REG_RTC_RCR >> RTC_RCR_AF_BIT) & 0x1 )
++#define __rtc_clear_alarm_flag() ( REG_RTC_RCR &= ~RTC_RCR_AF )
++
++#define __rtc_get_second() ( REG_RTC_RSR )
++#define __rtc_set_second(v) ( REG_RTC_RSR = v )
++
++#define __rtc_get_alarm_second() ( REG_RTC_RSAR )
++#define __rtc_set_alarm_second(v) ( REG_RTC_RSAR = v )
++
++#define __rtc_RGR_is_locked() ( (REG_RTC_RGR >> RTC_RGR_LOCK) )
++#define __rtc_lock_RGR() ( REG_RTC_RGR |= RTC_RGR_LOCK )
++#define __rtc_unlock_RGR() ( REG_RTC_RGR &= ~RTC_RGR_LOCK )
++#define __rtc_get_adjc_val() ( (REG_RTC_RGR & RTC_RGR_ADJC_MASK) >> RTC_RGR_ADJC_BIT )
++#define __rtc_set_adjc_val(v) \
++ ( REG_RTC_RGR = ( (REG_RTC_RGR & ~RTC_RGR_ADJC_MASK) | (v << RTC_RGR_ADJC_BIT) ))
++#define __rtc_get_nc1Hz_val() ( (REG_RTC_RGR & RTC_RGR_NC1HZ_MASK) >> RTC_RGR_NC1HZ_BIT )
++#define __rtc_set_nc1Hz_val(v) \
++ ( REG_RTC_RGR = ( (REG_RTC_RGR & ~RTC_RGR_NC1HZ_MASK) | (v << RTC_RGR_NC1HZ_BIT) ))
++
++#define __rtc_power_down() ( REG_RTC_HCR |= RTC_HCR_PD )
++
++#define __rtc_get_hwfcr_val() ( REG_RTC_HWFCR & RTC_HWFCR_MASK )
++#define __rtc_set_hwfcr_val(v) ( REG_RTC_HWFCR = (v) & RTC_HWFCR_MASK )
++#define __rtc_get_hrcr_val() ( REG_RTC_HRCR & RTC_HRCR_MASK )
++#define __rtc_set_hrcr_val(v) ( REG_RTC_HRCR = (v) & RTC_HRCR_MASK )
++
++#define __rtc_enable_alarm_wakeup() ( REG_RTC_HWCR |= RTC_HWCR_EALM )
++#define __rtc_disable_alarm_wakeup() ( REG_RTC_HWCR &= ~RTC_HWCR_EALM )
++
++#define __rtc_status_hib_reset_occur() ( (REG_RTC_HWRSR >> RTC_HWRSR_HR) & 0x1 )
++#define __rtc_status_ppr_reset_occur() ( (REG_RTC_HWRSR >> RTC_HWRSR_PPR) & 0x1 )
++#define __rtc_status_wakeup_pin_waken_up() ( (REG_RTC_HWRSR >> RTC_HWRSR_PIN) & 0x1 )
++#define __rtc_status_alarm_waken_up() ( (REG_RTC_HWRSR >> RTC_HWRSR_ALM) & 0x1 )
++#define __rtc_clear_hib_stat_all() ( REG_RTC_HWRSR = 0 )
++
++#define __rtc_get_scratch_pattern() (REG_RTC_HSPR)
++#define __rtc_set_scratch_pattern(n) (REG_RTC_HSPR = n )
++
++
++
++#endif /* __JZ4740_OPS_H__ */
+diff -ruN linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/platform.h linux-2.6.31/arch/mips/include/asm/mach-jz4740/platform.h
+--- linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/platform.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/include/asm/mach-jz4740/platform.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,19 @@
++
++#ifndef __JZ4740_PLATFORM_H
++#define __JZ4740_PLATFORM_H
++
++#include <linux/platform_device.h>
++
++extern struct platform_device jz4740_usb_ohci_device;
++extern struct platform_device jz4740_usb_gdt_device;
++extern struct platform_device jz4740_mmc_device;
++extern struct platform_device jz4740_rtc_device;
++extern struct platform_device jz4740_i2c_device;
++extern struct platform_device jz4740_nand_device;
++extern struct platform_device jz4740_framebuffer_device;
++extern struct platform_device jz4740_i2s_device;
++extern struct platform_device jz4740_codec_device;
++extern struct platform_device jz4740_adc_device;
++extern struct platform_device jz4740_battery_device;
++
++#endif
+diff -ruN linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/regs.h linux-2.6.31/arch/mips/include/asm/mach-jz4740/regs.h
+--- linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/regs.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/include/asm/mach-jz4740/regs.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,2397 @@
++/*
++ * linux/include/asm-mips/mach-jz4740/regs.h
++ *
++ * Ingenic's JZ4740 common include.
++ *
++ * Copyright (C) 2006 - 2007 Ingenic Semiconductor Inc.
++ *
++ * Author: <yliu@ingenic.cn>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#ifndef __JZ4740_REGS_H__
++#define __JZ4740_REGS_H__
++
++#if defined(__ASSEMBLY__) || defined(__LANGUAGE_ASSEMBLY)
++#define REG8(addr) (addr)
++#define REG16(addr) (addr)
++#define REG32(addr) (addr)
++#else
++#define REG8(addr) *((volatile unsigned char *)(addr))
++#define REG16(addr) *((volatile unsigned short *)(addr))
++#define REG32(addr) *((volatile unsigned int *)(addr))
++#endif
++
++/*
++ * Define the module base addresses
++ */
++#define CPM_BASE 0xB0000000
++#define INTC_BASE 0xB0001000
++#define TCU_BASE 0xB0002000
++#define WDT_BASE 0xB0002000
++#define RTC_BASE 0xB0003000
++#define GPIO_BASE 0xB0010000
++#define AIC_BASE 0xB0020000
++#define ICDC_BASE 0xB0020000
++#define MSC_BASE 0xB0021000
++#define UART0_BASE 0xB0030000
++#define UART1_BASE 0xB0031000
++#define I2C_BASE 0xB0042000
++#define SSI_BASE 0xB0043000
++#define SADC_BASE 0xB0070000
++#define EMC_BASE 0xB3010000
++#define DMAC_BASE 0xB3020000
++#define UHC_BASE 0xB3030000
++#define UDC_BASE 0xB3040000
++#define LCD_BASE 0xB3050000
++#define SLCD_BASE 0xB3050000
++#define CIM_BASE 0xB3060000
++#define IPU_BASE 0xB3080000
++#define ETH_BASE 0xB3100000
++
++
++/*************************************************************************
++ * INTC (Interrupt Controller)
++ *************************************************************************/
++#define INTC_ISR (INTC_BASE + 0x00)
++#define INTC_IMR (INTC_BASE + 0x04)
++#define INTC_IMSR (INTC_BASE + 0x08)
++#define INTC_IMCR (INTC_BASE + 0x0c)
++#define INTC_IPR (INTC_BASE + 0x10)
++
++#define REG_INTC_ISR REG32(INTC_ISR)
++#define REG_INTC_IMR REG32(INTC_IMR)
++#define REG_INTC_IMSR REG32(INTC_IMSR)
++#define REG_INTC_IMCR REG32(INTC_IMCR)
++#define REG_INTC_IPR REG32(INTC_IPR)
++
++// 1st-level interrupts
++#define JZ_IRQ_BASE 8
++#define JZ_IRQ(x) (JZ_IRQ_BASE + (x))
++#define JZ_IRQ_I2C JZ_IRQ(1)
++#define JZ_IRQ_UHC JZ_IRQ(3)
++#define JZ_IRQ_UART1 JZ_IRQ(8)
++#define JZ_IRQ_UART0 JZ_IRQ(9)
++#define JZ_IRQ_SADC JZ_IRQ(12)
++#define JZ_IRQ_MSC JZ_IRQ(14)
++#define JZ_IRQ_RTC JZ_IRQ(15)
++#define JZ_IRQ_SSI JZ_IRQ(16)
++#define JZ_IRQ_CIM JZ_IRQ(17)
++#define JZ_IRQ_AIC JZ_IRQ(18)
++#define JZ_IRQ_ETH JZ_IRQ(19)
++#define JZ_IRQ_DMAC JZ_IRQ(20)
++#define JZ_IRQ_TCU2 JZ_IRQ(21)
++#define JZ_IRQ_TCU1 JZ_IRQ(22)
++#define JZ_IRQ_TCU0 JZ_IRQ(23)
++#define JZ_IRQ_UDC JZ_IRQ(24)
++#define JZ_IRQ_GPIO3 JZ_IRQ(25)
++#define JZ_IRQ_GPIO2 JZ_IRQ(26)
++#define JZ_IRQ_GPIO1 JZ_IRQ(27)
++#define JZ_IRQ_GPIO0 JZ_IRQ(28)
++#define JZ_IRQ_IPU JZ_IRQ(29)
++#define JZ_IRQ_LCD JZ_IRQ(30)
++
++/* 2nd-level interrupts */
++#define JZ_IRQ_DMA(x) ((x) + JZ_IRQ(32)) /* 32 to 37 for DMAC channel 0 to 5 */
++#define IRQ_GPIO_0 JZ_IRQ(48) /* 48 to 175 for GPIO pin 0 to 127 */
++
++#define JZ_IRQ_INTC_GPIO(x) (JZ_IRQ_GPIO0 - (x))
++#define JZ_IRQ_GPIO(x) (IRQ_GPIO_0 + (x))
++
++#define NUM_DMA 6
++#define NUM_GPIO 128
++/*************************************************************************
++ * RTC
++ *************************************************************************/
++#define RTC_RCR (RTC_BASE + 0x00) /* RTC Control Register */
++#define RTC_RSR (RTC_BASE + 0x04) /* RTC Second Register */
++#define RTC_RSAR (RTC_BASE + 0x08) /* RTC Second Alarm Register */
++#define RTC_RGR (RTC_BASE + 0x0c) /* RTC Regulator Register */
++
++#define RTC_HCR (RTC_BASE + 0x20) /* Hibernate Control Register */
++#define RTC_HWFCR (RTC_BASE + 0x24) /* Hibernate Wakeup Filter Counter Reg */
++#define RTC_HRCR (RTC_BASE + 0x28) /* Hibernate Reset Counter Register */
++#define RTC_HWCR (RTC_BASE + 0x2c) /* Hibernate Wakeup Control Register */
++#define RTC_HWRSR (RTC_BASE + 0x30) /* Hibernate Wakeup Status Register */
++#define RTC_HSPR (RTC_BASE + 0x34) /* Hibernate Scratch Pattern Register */
++
++#define REG_RTC_RCR REG32(RTC_RCR)
++#define REG_RTC_RSR REG32(RTC_RSR)
++#define REG_RTC_RSAR REG32(RTC_RSAR)
++#define REG_RTC_RGR REG32(RTC_RGR)
++#define REG_RTC_HCR REG32(RTC_HCR)
++#define REG_RTC_HWFCR REG32(RTC_HWFCR)
++#define REG_RTC_HRCR REG32(RTC_HRCR)
++#define REG_RTC_HWCR REG32(RTC_HWCR)
++#define REG_RTC_HWRSR REG32(RTC_HWRSR)
++#define REG_RTC_HSPR REG32(RTC_HSPR)
++
++/* RTC Control Register */
++#define RTC_RCR_WRDY_BIT 7
++#define RTC_RCR_WRDY (1 << 7) /* Write Ready Flag */
++#define RTC_RCR_1HZ_BIT 6
++#define RTC_RCR_1HZ (1 << RTC_RCR_1HZ_BIT) /* 1Hz Flag */
++#define RTC_RCR_1HZIE (1 << 5) /* 1Hz Interrupt Enable */
++#define RTC_RCR_AF_BIT 4
++#define RTC_RCR_AF (1 << RTC_RCR_AF_BIT) /* Alarm Flag */
++#define RTC_RCR_AIE (1 << 3) /* Alarm Interrupt Enable */
++#define RTC_RCR_AE (1 << 2) /* Alarm Enable */
++#define RTC_RCR_RTCE (1 << 0) /* RTC Enable */
++
++/* RTC Regulator Register */
++#define RTC_RGR_LOCK (1 << 31) /* Lock Bit */
++#define RTC_RGR_ADJC_BIT 16
++#define RTC_RGR_ADJC_MASK (0x3ff << RTC_RGR_ADJC_BIT)
++#define RTC_RGR_NC1HZ_BIT 0
++#define RTC_RGR_NC1HZ_MASK (0xffff << RTC_RGR_NC1HZ_BIT)
++
++/* Hibernate Control Register */
++#define RTC_HCR_PD (1 << 0) /* Power Down */
++
++/* Hibernate Wakeup Filter Counter Register */
++#define RTC_HWFCR_BIT 5
++#define RTC_HWFCR_MASK (0x7ff << RTC_HWFCR_BIT)
++
++/* Hibernate Reset Counter Register */
++#define RTC_HRCR_BIT 5
++#define RTC_HRCR_MASK (0x7f << RTC_HRCR_BIT)
++
++/* Hibernate Wakeup Control Register */
++#define RTC_HWCR_EALM (1 << 0) /* RTC alarm wakeup enable */
++
++/* Hibernate Wakeup Status Register */
++#define RTC_HWRSR_HR (1 << 5) /* Hibernate reset */
++#define RTC_HWRSR_PPR (1 << 4) /* PPR reset */
++#define RTC_HWRSR_PIN (1 << 1) /* Wakeup pin status bit */
++#define RTC_HWRSR_ALM (1 << 0) /* RTC alarm status bit */
++
++
++/*************************************************************************
++ * CPM (Clock reset and Power control Management)
++ *************************************************************************/
++#define CPM_CPCCR (CPM_BASE+0x00)
++#define CPM_CPPCR (CPM_BASE+0x10)
++#define CPM_I2SCDR (CPM_BASE+0x60)
++#define CPM_LPCDR (CPM_BASE+0x64)
++#define CPM_MSCCDR (CPM_BASE+0x68)
++#define CPM_UHCCDR (CPM_BASE+0x6C)
++#define CPM_SSICDR (CPM_BASE+0x74)
++
++#define CPM_LCR (CPM_BASE+0x04)
++#define CPM_CLKGR (CPM_BASE+0x20)
++#define CPM_SCR (CPM_BASE+0x24)
++
++#define CPM_HCR (CPM_BASE+0x30)
++#define CPM_HWFCR (CPM_BASE+0x34)
++#define CPM_HRCR (CPM_BASE+0x38)
++#define CPM_HWCR (CPM_BASE+0x3c)
++#define CPM_HWSR (CPM_BASE+0x40)
++#define CPM_HSPR (CPM_BASE+0x44)
++
++#define CPM_RSR (CPM_BASE+0x08)
++
++
++#define REG_CPM_CPCCR REG32(CPM_CPCCR)
++#define REG_CPM_CPPCR REG32(CPM_CPPCR)
++#define REG_CPM_I2SCDR REG32(CPM_I2SCDR)
++#define REG_CPM_LPCDR REG32(CPM_LPCDR)
++#define REG_CPM_MSCCDR REG32(CPM_MSCCDR)
++#define REG_CPM_UHCCDR REG32(CPM_UHCCDR)
++#define REG_CPM_SSICDR REG32(CPM_SSICDR)
++
++#define REG_CPM_LCR REG32(CPM_LCR)
++#define REG_CPM_CLKGR REG32(CPM_CLKGR)
++#define REG_CPM_SCR REG32(CPM_SCR)
++#define REG_CPM_HCR REG32(CPM_HCR)
++#define REG_CPM_HWFCR REG32(CPM_HWFCR)
++#define REG_CPM_HRCR REG32(CPM_HRCR)
++#define REG_CPM_HWCR REG32(CPM_HWCR)
++#define REG_CPM_HWSR REG32(CPM_HWSR)
++#define REG_CPM_HSPR REG32(CPM_HSPR)
++
++#define REG_CPM_RSR REG32(CPM_RSR)
++
++
++/* Clock Control Register */
++#define CPM_CPCCR_I2CS (1 << 31)
++#define CPM_CPCCR_CLKOEN (1 << 30)
++#define CPM_CPCCR_UCS (1 << 29)
++#define CPM_CPCCR_UDIV_BIT 23
++#define CPM_CPCCR_UDIV_MASK (0x3f << CPM_CPCCR_UDIV_BIT)
++#define CPM_CPCCR_CE (1 << 22)
++#define CPM_CPCCR_PCS (1 << 21)
++#define CPM_CPCCR_LDIV_BIT 16
++#define CPM_CPCCR_LDIV_MASK (0x1f << CPM_CPCCR_LDIV_BIT)
++#define CPM_CPCCR_MDIV_BIT 12
++#define CPM_CPCCR_MDIV_MASK (0x0f << CPM_CPCCR_MDIV_BIT)
++#define CPM_CPCCR_PDIV_BIT 8
++#define CPM_CPCCR_PDIV_MASK (0x0f << CPM_CPCCR_PDIV_BIT)
++#define CPM_CPCCR_HDIV_BIT 4
++#define CPM_CPCCR_HDIV_MASK (0x0f << CPM_CPCCR_HDIV_BIT)
++#define CPM_CPCCR_CDIV_BIT 0
++#define CPM_CPCCR_CDIV_MASK (0x0f << CPM_CPCCR_CDIV_BIT)
++
++/* I2S Clock Divider Register */
++#define CPM_I2SCDR_I2SDIV_BIT 0
++#define CPM_I2SCDR_I2SDIV_MASK (0x1ff << CPM_I2SCDR_I2SDIV_BIT)
++
++/* LCD Pixel Clock Divider Register */
++#define CPM_LPCDR_PIXDIV_BIT 0
++#define CPM_LPCDR_PIXDIV_MASK (0x7ff << CPM_LPCDR_PIXDIV_BIT)
++
++/* MSC Clock Divider Register */
++#define CPM_MSCCDR_MSCDIV_BIT 0
++#define CPM_MSCCDR_MSCDIV_MASK (0x1f << CPM_MSCCDR_MSCDIV_BIT)
++
++/* UHC Clock Divider Register */
++#define CPM_UHCCDR_UHCDIV_BIT 0
++#define CPM_UHCCDR_UHCDIV_MASK (0xf << CPM_UHCCDR_UHCDIV_BIT)
++
++/* SSI Clock Divider Register */
++#define CPM_SSICDR_SCS (1<<31) /* SSI clock source selection, 0:EXCLK, 1: PLL */
++#define CPM_SSICDR_SSIDIV_BIT 0
++#define CPM_SSICDR_SSIDIV_MASK (0xf << CPM_SSICDR_SSIDIV_BIT)
++
++/* PLL Control Register */
++#define CPM_CPPCR_PLLM_BIT 23
++#define CPM_CPPCR_PLLM_MASK (0x1ff << CPM_CPPCR_PLLM_BIT)
++#define CPM_CPPCR_PLLN_BIT 18
++#define CPM_CPPCR_PLLN_MASK (0x1f << CPM_CPPCR_PLLN_BIT)
++#define CPM_CPPCR_PLLOD_BIT 16
++#define CPM_CPPCR_PLLOD_MASK (0x03 << CPM_CPPCR_PLLOD_BIT)
++#define CPM_CPPCR_PLLS (1 << 10)
++#define CPM_CPPCR_PLLBP (1 << 9)
++#define CPM_CPPCR_PLLEN (1 << 8)
++#define CPM_CPPCR_PLLST_BIT 0
++#define CPM_CPPCR_PLLST_MASK (0xff << CPM_CPPCR_PLLST_BIT)
++
++/* Low Power Control Register */
++#define CPM_LCR_DOZE_DUTY_BIT 3
++#define CPM_LCR_DOZE_DUTY_MASK (0x1f << CPM_LCR_DOZE_DUTY_BIT)
++#define CPM_LCR_DOZE_ON (1 << 2)
++#define CPM_LCR_LPM_BIT 0
++#define CPM_LCR_LPM_MASK (0x3 << CPM_LCR_LPM_BIT)
++ #define CPM_LCR_LPM_IDLE (0x0 << CPM_LCR_LPM_BIT)
++ #define CPM_LCR_LPM_SLEEP (0x1 << CPM_LCR_LPM_BIT)
++
++/* Clock Gate Register */
++#define CPM_CLKGR_UART1 (1 << 15)
++#define CPM_CLKGR_UHC (1 << 14)
++#define CPM_CLKGR_IPU (1 << 13)
++#define CPM_CLKGR_DMAC (1 << 12)
++#define CPM_CLKGR_UDC (1 << 11)
++#define CPM_CLKGR_LCD (1 << 10)
++#define CPM_CLKGR_CIM (1 << 9)
++#define CPM_CLKGR_SADC (1 << 8)
++#define CPM_CLKGR_MSC (1 << 7)
++#define CPM_CLKGR_AIC1 (1 << 6)
++#define CPM_CLKGR_AIC2 (1 << 5)
++#define CPM_CLKGR_SSI (1 << 4)
++#define CPM_CLKGR_I2C (1 << 3)
++#define CPM_CLKGR_RTC (1 << 2)
++#define CPM_CLKGR_TCU (1 << 1)
++#define CPM_CLKGR_UART0 (1 << 0)
++
++/* Sleep Control Register */
++#define CPM_SCR_O1ST_BIT 8
++#define CPM_SCR_O1ST_MASK (0xff << CPM_SCR_O1ST_BIT)
++#define CPM_SCR_USBPHY_ENABLE (1 << 6)
++#define CPM_SCR_OSC_ENABLE (1 << 4)
++
++/* Hibernate Control Register */
++#define CPM_HCR_PD (1 << 0)
++
++/* Wakeup Filter Counter Register in Hibernate Mode */
++#define CPM_HWFCR_TIME_BIT 0
++#define CPM_HWFCR_TIME_MASK (0x3ff << CPM_HWFCR_TIME_BIT)
++
++/* Reset Counter Register in Hibernate Mode */
++#define CPM_HRCR_TIME_BIT 0
++#define CPM_HRCR_TIME_MASK (0x7f << CPM_HRCR_TIME_BIT)
++
++/* Wakeup Control Register in Hibernate Mode */
++#define CPM_HWCR_WLE_LOW (0 << 2)
++#define CPM_HWCR_WLE_HIGH (1 << 2)
++#define CPM_HWCR_PIN_WAKEUP (1 << 1)
++#define CPM_HWCR_RTC_WAKEUP (1 << 0)
++
++/* Wakeup Status Register in Hibernate Mode */
++#define CPM_HWSR_WSR_PIN (1 << 1)
++#define CPM_HWSR_WSR_RTC (1 << 0)
++
++/* Reset Status Register */
++#define CPM_RSR_HR (1 << 2)
++#define CPM_RSR_WR (1 << 1)
++#define CPM_RSR_PR (1 << 0)
++
++
++/*************************************************************************
++ * TCU (Timer Counter Unit)
++ *************************************************************************/
++#define TCU_TSR (TCU_BASE + 0x1C) /* Timer Stop Register */
++#define TCU_TSSR (TCU_BASE + 0x2C) /* Timer Stop Set Register */
++#define TCU_TSCR (TCU_BASE + 0x3C) /* Timer Stop Clear Register */
++#define TCU_TER (TCU_BASE + 0x10) /* Timer Counter Enable Register */
++#define TCU_TESR (TCU_BASE + 0x14) /* Timer Counter Enable Set Register */
++#define TCU_TECR (TCU_BASE + 0x18) /* Timer Counter Enable Clear Register */
++#define TCU_TFR (TCU_BASE + 0x20) /* Timer Flag Register */
++#define TCU_TFSR (TCU_BASE + 0x24) /* Timer Flag Set Register */
++#define TCU_TFCR (TCU_BASE + 0x28) /* Timer Flag Clear Register */
++#define TCU_TMR (TCU_BASE + 0x30) /* Timer Mask Register */
++#define TCU_TMSR (TCU_BASE + 0x34) /* Timer Mask Set Register */
++#define TCU_TMCR (TCU_BASE + 0x38) /* Timer Mask Clear Register */
++#define TCU_TDFR0 (TCU_BASE + 0x40) /* Timer Data Full Register */
++#define TCU_TDHR0 (TCU_BASE + 0x44) /* Timer Data Half Register */
++#define TCU_TCNT0 (TCU_BASE + 0x48) /* Timer Counter Register */
++#define TCU_TCSR0 (TCU_BASE + 0x4C) /* Timer Control Register */
++#define TCU_TDFR1 (TCU_BASE + 0x50)
++#define TCU_TDHR1 (TCU_BASE + 0x54)
++#define TCU_TCNT1 (TCU_BASE + 0x58)
++#define TCU_TCSR1 (TCU_BASE + 0x5C)
++#define TCU_TDFR2 (TCU_BASE + 0x60)
++#define TCU_TDHR2 (TCU_BASE + 0x64)
++#define TCU_TCNT2 (TCU_BASE + 0x68)
++#define TCU_TCSR2 (TCU_BASE + 0x6C)
++#define TCU_TDFR3 (TCU_BASE + 0x70)
++#define TCU_TDHR3 (TCU_BASE + 0x74)
++#define TCU_TCNT3 (TCU_BASE + 0x78)
++#define TCU_TCSR3 (TCU_BASE + 0x7C)
++#define TCU_TDFR4 (TCU_BASE + 0x80)
++#define TCU_TDHR4 (TCU_BASE + 0x84)
++#define TCU_TCNT4 (TCU_BASE + 0x88)
++#define TCU_TCSR4 (TCU_BASE + 0x8C)
++#define TCU_TDFR5 (TCU_BASE + 0x90)
++#define TCU_TDHR5 (TCU_BASE + 0x94)
++#define TCU_TCNT5 (TCU_BASE + 0x98)
++#define TCU_TCSR5 (TCU_BASE + 0x9C)
++
++#define REG_TCU_TSR REG32(TCU_TSR)
++#define REG_TCU_TSSR REG32(TCU_TSSR)
++#define REG_TCU_TSCR REG32(TCU_TSCR)
++#define REG_TCU_TER REG8(TCU_TER)
++#define REG_TCU_TESR REG8(TCU_TESR)
++#define REG_TCU_TECR REG8(TCU_TECR)
++#define REG_TCU_TFR REG32(TCU_TFR)
++#define REG_TCU_TFSR REG32(TCU_TFSR)
++#define REG_TCU_TFCR REG32(TCU_TFCR)
++#define REG_TCU_TMR REG32(TCU_TMR)
++#define REG_TCU_TMSR REG32(TCU_TMSR)
++#define REG_TCU_TMCR REG32(TCU_TMCR)
++#define REG_TCU_TDFR0 REG16(TCU_TDFR0)
++#define REG_TCU_TDHR0 REG16(TCU_TDHR0)
++#define REG_TCU_TCNT0 REG16(TCU_TCNT0)
++#define REG_TCU_TCSR0 REG16(TCU_TCSR0)
++#define REG_TCU_TDFR1 REG16(TCU_TDFR1)
++#define REG_TCU_TDHR1 REG16(TCU_TDHR1)
++#define REG_TCU_TCNT1 REG16(TCU_TCNT1)
++#define REG_TCU_TCSR1 REG16(TCU_TCSR1)
++#define REG_TCU_TDFR2 REG16(TCU_TDFR2)
++#define REG_TCU_TDHR2 REG16(TCU_TDHR2)
++#define REG_TCU_TCNT2 REG16(TCU_TCNT2)
++#define REG_TCU_TCSR2 REG16(TCU_TCSR2)
++#define REG_TCU_TDFR3 REG16(TCU_TDFR3)
++#define REG_TCU_TDHR3 REG16(TCU_TDHR3)
++#define REG_TCU_TCNT3 REG16(TCU_TCNT3)
++#define REG_TCU_TCSR3 REG16(TCU_TCSR3)
++#define REG_TCU_TDFR4 REG16(TCU_TDFR4)
++#define REG_TCU_TDHR4 REG16(TCU_TDHR4)
++#define REG_TCU_TCNT4 REG16(TCU_TCNT4)
++#define REG_TCU_TCSR4 REG16(TCU_TCSR4)
++
++// n = 0,1,2,3,4,5
++#define TCU_TDFR(n) (TCU_BASE + (0x40 + (n)*0x10)) /* Timer Data Full Reg */
++#define TCU_TDHR(n) (TCU_BASE + (0x44 + (n)*0x10)) /* Timer Data Half Reg */
++#define TCU_TCNT(n) (TCU_BASE + (0x48 + (n)*0x10)) /* Timer Counter Reg */
++#define TCU_TCSR(n) (TCU_BASE + (0x4C + (n)*0x10)) /* Timer Control Reg */
++
++#define REG_TCU_TDFR(n) REG16(TCU_TDFR((n)))
++#define REG_TCU_TDHR(n) REG16(TCU_TDHR((n)))
++#define REG_TCU_TCNT(n) REG16(TCU_TCNT((n)))
++#define REG_TCU_TCSR(n) REG16(TCU_TCSR((n)))
++
++// Register definitions
++#define TCU_TCSR_PWM_SD (1 << 9)
++#define TCU_TCSR_PWM_INITL_HIGH (1 << 8)
++#define TCU_TCSR_PWM_EN (1 << 7)
++#define TCU_TCSR_PRESCALE_BIT 3
++#define TCU_TCSR_PRESCALE_MASK (0x7 << TCU_TCSR_PRESCALE_BIT)
++ #define TCU_TCSR_PRESCALE1 (0x0 << TCU_TCSR_PRESCALE_BIT)
++ #define TCU_TCSR_PRESCALE4 (0x1 << TCU_TCSR_PRESCALE_BIT)
++ #define TCU_TCSR_PRESCALE16 (0x2 << TCU_TCSR_PRESCALE_BIT)
++ #define TCU_TCSR_PRESCALE64 (0x3 << TCU_TCSR_PRESCALE_BIT)
++ #define TCU_TCSR_PRESCALE256 (0x4 << TCU_TCSR_PRESCALE_BIT)
++ #define TCU_TCSR_PRESCALE1024 (0x5 << TCU_TCSR_PRESCALE_BIT)
++#define TCU_TCSR_EXT_EN (1 << 2)
++#define TCU_TCSR_RTC_EN (1 << 1)
++#define TCU_TCSR_PCK_EN (1 << 0)
++
++#define TCU_TER_TCEN5 (1 << 5)
++#define TCU_TER_TCEN4 (1 << 4)
++#define TCU_TER_TCEN3 (1 << 3)
++#define TCU_TER_TCEN2 (1 << 2)
++#define TCU_TER_TCEN1 (1 << 1)
++#define TCU_TER_TCEN0 (1 << 0)
++
++#define TCU_TESR_TCST5 (1 << 5)
++#define TCU_TESR_TCST4 (1 << 4)
++#define TCU_TESR_TCST3 (1 << 3)
++#define TCU_TESR_TCST2 (1 << 2)
++#define TCU_TESR_TCST1 (1 << 1)
++#define TCU_TESR_TCST0 (1 << 0)
++
++#define TCU_TECR_TCCL5 (1 << 5)
++#define TCU_TECR_TCCL4 (1 << 4)
++#define TCU_TECR_TCCL3 (1 << 3)
++#define TCU_TECR_TCCL2 (1 << 2)
++#define TCU_TECR_TCCL1 (1 << 1)
++#define TCU_TECR_TCCL0 (1 << 0)
++
++#define TCU_TFR_HFLAG5 (1 << 21)
++#define TCU_TFR_HFLAG4 (1 << 20)
++#define TCU_TFR_HFLAG3 (1 << 19)
++#define TCU_TFR_HFLAG2 (1 << 18)
++#define TCU_TFR_HFLAG1 (1 << 17)
++#define TCU_TFR_HFLAG0 (1 << 16)
++#define TCU_TFR_FFLAG5 (1 << 5)
++#define TCU_TFR_FFLAG4 (1 << 4)
++#define TCU_TFR_FFLAG3 (1 << 3)
++#define TCU_TFR_FFLAG2 (1 << 2)
++#define TCU_TFR_FFLAG1 (1 << 1)
++#define TCU_TFR_FFLAG0 (1 << 0)
++
++#define TCU_TFSR_HFLAG5 (1 << 21)
++#define TCU_TFSR_HFLAG4 (1 << 20)
++#define TCU_TFSR_HFLAG3 (1 << 19)
++#define TCU_TFSR_HFLAG2 (1 << 18)
++#define TCU_TFSR_HFLAG1 (1 << 17)
++#define TCU_TFSR_HFLAG0 (1 << 16)
++#define TCU_TFSR_FFLAG5 (1 << 5)
++#define TCU_TFSR_FFLAG4 (1 << 4)
++#define TCU_TFSR_FFLAG3 (1 << 3)
++#define TCU_TFSR_FFLAG2 (1 << 2)
++#define TCU_TFSR_FFLAG1 (1 << 1)
++#define TCU_TFSR_FFLAG0 (1 << 0)
++
++#define TCU_TFCR_HFLAG5 (1 << 21)
++#define TCU_TFCR_HFLAG4 (1 << 20)
++#define TCU_TFCR_HFLAG3 (1 << 19)
++#define TCU_TFCR_HFLAG2 (1 << 18)
++#define TCU_TFCR_HFLAG1 (1 << 17)
++#define TCU_TFCR_HFLAG0 (1 << 16)
++#define TCU_TFCR_FFLAG5 (1 << 5)
++#define TCU_TFCR_FFLAG4 (1 << 4)
++#define TCU_TFCR_FFLAG3 (1 << 3)
++#define TCU_TFCR_FFLAG2 (1 << 2)
++#define TCU_TFCR_FFLAG1 (1 << 1)
++#define TCU_TFCR_FFLAG0 (1 << 0)
++
++#define TCU_TMR_HMASK5 (1 << 21)
++#define TCU_TMR_HMASK4 (1 << 20)
++#define TCU_TMR_HMASK3 (1 << 19)
++#define TCU_TMR_HMASK2 (1 << 18)
++#define TCU_TMR_HMASK1 (1 << 17)
++#define TCU_TMR_HMASK0 (1 << 16)
++#define TCU_TMR_FMASK5 (1 << 5)
++#define TCU_TMR_FMASK4 (1 << 4)
++#define TCU_TMR_FMASK3 (1 << 3)
++#define TCU_TMR_FMASK2 (1 << 2)
++#define TCU_TMR_FMASK1 (1 << 1)
++#define TCU_TMR_FMASK0 (1 << 0)
++
++#define TCU_TMSR_HMST5 (1 << 21)
++#define TCU_TMSR_HMST4 (1 << 20)
++#define TCU_TMSR_HMST3 (1 << 19)
++#define TCU_TMSR_HMST2 (1 << 18)
++#define TCU_TMSR_HMST1 (1 << 17)
++#define TCU_TMSR_HMST0 (1 << 16)
++#define TCU_TMSR_FMST5 (1 << 5)
++#define TCU_TMSR_FMST4 (1 << 4)
++#define TCU_TMSR_FMST3 (1 << 3)
++#define TCU_TMSR_FMST2 (1 << 2)
++#define TCU_TMSR_FMST1 (1 << 1)
++#define TCU_TMSR_FMST0 (1 << 0)
++
++#define TCU_TMCR_HMCL5 (1 << 21)
++#define TCU_TMCR_HMCL4 (1 << 20)
++#define TCU_TMCR_HMCL3 (1 << 19)
++#define TCU_TMCR_HMCL2 (1 << 18)
++#define TCU_TMCR_HMCL1 (1 << 17)
++#define TCU_TMCR_HMCL0 (1 << 16)
++#define TCU_TMCR_FMCL5 (1 << 5)
++#define TCU_TMCR_FMCL4 (1 << 4)
++#define TCU_TMCR_FMCL3 (1 << 3)
++#define TCU_TMCR_FMCL2 (1 << 2)
++#define TCU_TMCR_FMCL1 (1 << 1)
++#define TCU_TMCR_FMCL0 (1 << 0)
++
++#define TCU_TSR_WDTS (1 << 16)
++#define TCU_TSR_STOP5 (1 << 5)
++#define TCU_TSR_STOP4 (1 << 4)
++#define TCU_TSR_STOP3 (1 << 3)
++#define TCU_TSR_STOP2 (1 << 2)
++#define TCU_TSR_STOP1 (1 << 1)
++#define TCU_TSR_STOP0 (1 << 0)
++
++#define TCU_TSSR_WDTSS (1 << 16)
++#define TCU_TSSR_STPS5 (1 << 5)
++#define TCU_TSSR_STPS4 (1 << 4)
++#define TCU_TSSR_STPS3 (1 << 3)
++#define TCU_TSSR_STPS2 (1 << 2)
++#define TCU_TSSR_STPS1 (1 << 1)
++#define TCU_TSSR_STPS0 (1 << 0)
++
++#define TCU_TSSR_WDTSC (1 << 16)
++#define TCU_TSSR_STPC5 (1 << 5)
++#define TCU_TSSR_STPC4 (1 << 4)
++#define TCU_TSSR_STPC3 (1 << 3)
++#define TCU_TSSR_STPC2 (1 << 2)
++#define TCU_TSSR_STPC1 (1 << 1)
++#define TCU_TSSR_STPC0 (1 << 0)
++
++
++/*************************************************************************
++ * WDT (WatchDog Timer)
++ *************************************************************************/
++#define WDT_TDR (WDT_BASE + 0x00)
++#define WDT_TCER (WDT_BASE + 0x04)
++#define WDT_TCNT (WDT_BASE + 0x08)
++#define WDT_TCSR (WDT_BASE + 0x0C)
++
++#define REG_WDT_TDR REG16(WDT_TDR)
++#define REG_WDT_TCER REG8(WDT_TCER)
++#define REG_WDT_TCNT REG16(WDT_TCNT)
++#define REG_WDT_TCSR REG16(WDT_TCSR)
++
++// Register definition
++#define WDT_TCSR_PRESCALE_BIT 3
++#define WDT_TCSR_PRESCALE_MASK (0x7 << WDT_TCSR_PRESCALE_BIT)
++ #define WDT_TCSR_PRESCALE1 (0x0 << WDT_TCSR_PRESCALE_BIT)
++ #define WDT_TCSR_PRESCALE4 (0x1 << WDT_TCSR_PRESCALE_BIT)
++ #define WDT_TCSR_PRESCALE16 (0x2 << WDT_TCSR_PRESCALE_BIT)
++ #define WDT_TCSR_PRESCALE64 (0x3 << WDT_TCSR_PRESCALE_BIT)
++ #define WDT_TCSR_PRESCALE256 (0x4 << WDT_TCSR_PRESCALE_BIT)
++ #define WDT_TCSR_PRESCALE1024 (0x5 << WDT_TCSR_PRESCALE_BIT)
++#define WDT_TCSR_EXT_EN (1 << 2)
++#define WDT_TCSR_RTC_EN (1 << 1)
++#define WDT_TCSR_PCK_EN (1 << 0)
++
++#define WDT_TCER_TCEN (1 << 0)
++
++
++/*************************************************************************
++ * DMAC (DMA Controller)
++ *************************************************************************/
++
++#define MAX_DMA_NUM 6 /* max 6 channels */
++
++#define DMAC_DSAR(n) (DMAC_BASE + (0x00 + (n) * 0x20)) /* DMA source address */
++#define DMAC_DTAR(n) (DMAC_BASE + (0x04 + (n) * 0x20)) /* DMA target address */
++#define DMAC_DTCR(n) (DMAC_BASE + (0x08 + (n) * 0x20)) /* DMA transfer count */
++#define DMAC_DRSR(n) (DMAC_BASE + (0x0c + (n) * 0x20)) /* DMA request source */
++#define DMAC_DCCSR(n) (DMAC_BASE + (0x10 + (n) * 0x20)) /* DMA control/status */
++#define DMAC_DCMD(n) (DMAC_BASE + (0x14 + (n) * 0x20)) /* DMA command */
++#define DMAC_DDA(n) (DMAC_BASE + (0x18 + (n) * 0x20)) /* DMA descriptor address */
++#define DMAC_DMACR (DMAC_BASE + 0x0300) /* DMA control register */
++#define DMAC_DMAIPR (DMAC_BASE + 0x0304) /* DMA interrupt pending */
++#define DMAC_DMADBR (DMAC_BASE + 0x0308) /* DMA doorbell */
++#define DMAC_DMADBSR (DMAC_BASE + 0x030C) /* DMA doorbell set */
++
++// channel 0
++#define DMAC_DSAR0 DMAC_DSAR(0)
++#define DMAC_DTAR0 DMAC_DTAR(0)
++#define DMAC_DTCR0 DMAC_DTCR(0)
++#define DMAC_DRSR0 DMAC_DRSR(0)
++#define DMAC_DCCSR0 DMAC_DCCSR(0)
++#define DMAC_DCMD0 DMAC_DCMD(0)
++#define DMAC_DDA0 DMAC_DDA(0)
++
++// channel 1
++#define DMAC_DSAR1 DMAC_DSAR(1)
++#define DMAC_DTAR1 DMAC_DTAR(1)
++#define DMAC_DTCR1 DMAC_DTCR(1)
++#define DMAC_DRSR1 DMAC_DRSR(1)
++#define DMAC_DCCSR1 DMAC_DCCSR(1)
++#define DMAC_DCMD1 DMAC_DCMD(1)
++#define DMAC_DDA1 DMAC_DDA(1)
++
++// channel 2
++#define DMAC_DSAR2 DMAC_DSAR(2)
++#define DMAC_DTAR2 DMAC_DTAR(2)
++#define DMAC_DTCR2 DMAC_DTCR(2)
++#define DMAC_DRSR2 DMAC_DRSR(2)
++#define DMAC_DCCSR2 DMAC_DCCSR(2)
++#define DMAC_DCMD2 DMAC_DCMD(2)
++#define DMAC_DDA2 DMAC_DDA(2)
++
++// channel 3
++#define DMAC_DSAR3 DMAC_DSAR(3)
++#define DMAC_DTAR3 DMAC_DTAR(3)
++#define DMAC_DTCR3 DMAC_DTCR(3)
++#define DMAC_DRSR3 DMAC_DRSR(3)
++#define DMAC_DCCSR3 DMAC_DCCSR(3)
++#define DMAC_DCMD3 DMAC_DCMD(3)
++#define DMAC_DDA3 DMAC_DDA(3)
++
++// channel 4
++#define DMAC_DSAR4 DMAC_DSAR(4)
++#define DMAC_DTAR4 DMAC_DTAR(4)
++#define DMAC_DTCR4 DMAC_DTCR(4)
++#define DMAC_DRSR4 DMAC_DRSR(4)
++#define DMAC_DCCSR4 DMAC_DCCSR(4)
++#define DMAC_DCMD4 DMAC_DCMD(4)
++#define DMAC_DDA4 DMAC_DDA(4)
++
++// channel 5
++#define DMAC_DSAR5 DMAC_DSAR(5)
++#define DMAC_DTAR5 DMAC_DTAR(5)
++#define DMAC_DTCR5 DMAC_DTCR(5)
++#define DMAC_DRSR5 DMAC_DRSR(5)
++#define DMAC_DCCSR5 DMAC_DCCSR(5)
++#define DMAC_DCMD5 DMAC_DCMD(5)
++#define DMAC_DDA5 DMAC_DDA(5)
++
++#define REG_DMAC_DSAR(n) REG32(DMAC_DSAR((n)))
++#define REG_DMAC_DTAR(n) REG32(DMAC_DTAR((n)))
++#define REG_DMAC_DTCR(n) REG32(DMAC_DTCR((n)))
++#define REG_DMAC_DRSR(n) REG32(DMAC_DRSR((n)))
++#define REG_DMAC_DCCSR(n) REG32(DMAC_DCCSR((n)))
++#define REG_DMAC_DCMD(n) REG32(DMAC_DCMD((n)))
++#define REG_DMAC_DDA(n) REG32(DMAC_DDA((n)))
++#define REG_DMAC_DMACR REG32(DMAC_DMACR)
++#define REG_DMAC_DMAIPR REG32(DMAC_DMAIPR)
++#define REG_DMAC_DMADBR REG32(DMAC_DMADBR)
++#define REG_DMAC_DMADBSR REG32(DMAC_DMADBSR)
++
++// DMA request source register
++#define DMAC_DRSR_RS_BIT 0
++#define DMAC_DRSR_RS_MASK (0x1f << DMAC_DRSR_RS_BIT)
++ #define DMAC_DRSR_RS_AUTO (8 << DMAC_DRSR_RS_BIT)
++ #define DMAC_DRSR_RS_UART0OUT (20 << DMAC_DRSR_RS_BIT)
++ #define DMAC_DRSR_RS_UART0IN (21 << DMAC_DRSR_RS_BIT)
++ #define DMAC_DRSR_RS_SSIOUT (22 << DMAC_DRSR_RS_BIT)
++ #define DMAC_DRSR_RS_SSIIN (23 << DMAC_DRSR_RS_BIT)
++ #define DMAC_DRSR_RS_AICOUT (24 << DMAC_DRSR_RS_BIT)
++ #define DMAC_DRSR_RS_AICIN (25 << DMAC_DRSR_RS_BIT)
++ #define DMAC_DRSR_RS_MSCOUT (26 << DMAC_DRSR_RS_BIT)
++ #define DMAC_DRSR_RS_MSCIN (27 << DMAC_DRSR_RS_BIT)
++ #define DMAC_DRSR_RS_TCU (28 << DMAC_DRSR_RS_BIT)
++ #define DMAC_DRSR_RS_SADC (29 << DMAC_DRSR_RS_BIT)
++ #define DMAC_DRSR_RS_SLCD (30 << DMAC_DRSR_RS_BIT)
++
++// DMA channel control/status register
++#define DMAC_DCCSR_NDES (1 << 31) /* descriptor (0) or not (1) ? */
++#define DMAC_DCCSR_CDOA_BIT 16 /* copy of DMA offset address */
++#define DMAC_DCCSR_CDOA_MASK (0xff << DMAC_DCCSR_CDOA_BIT)
++#define DMAC_DCCSR_INV (1 << 6) /* descriptor invalid */
++#define DMAC_DCCSR_AR (1 << 4) /* address error */
++#define DMAC_DCCSR_TT (1 << 3) /* transfer terminated */
++#define DMAC_DCCSR_HLT (1 << 2) /* DMA halted */
++#define DMAC_DCCSR_CT (1 << 1) /* count terminated */
++#define DMAC_DCCSR_EN (1 << 0) /* channel enable bit */
++
++// DMA channel command register
++#define DMAC_DCMD_SAI (1 << 23) /* source address increment */
++#define DMAC_DCMD_DAI (1 << 22) /* dest address increment */
++#define DMAC_DCMD_RDIL_BIT 16 /* request detection interval length */
++#define DMAC_DCMD_RDIL_MASK (0x0f << DMAC_DCMD_RDIL_BIT)
++ #define DMAC_DCMD_RDIL_IGN (0 << DMAC_DCMD_RDIL_BIT)
++ #define DMAC_DCMD_RDIL_2 (1 << DMAC_DCMD_RDIL_BIT)
++ #define DMAC_DCMD_RDIL_4 (2 << DMAC_DCMD_RDIL_BIT)
++ #define DMAC_DCMD_RDIL_8 (3 << DMAC_DCMD_RDIL_BIT)
++ #define DMAC_DCMD_RDIL_12 (4 << DMAC_DCMD_RDIL_BIT)
++ #define DMAC_DCMD_RDIL_16 (5 << DMAC_DCMD_RDIL_BIT)
++ #define DMAC_DCMD_RDIL_20 (6 << DMAC_DCMD_RDIL_BIT)
++ #define DMAC_DCMD_RDIL_24 (7 << DMAC_DCMD_RDIL_BIT)
++ #define DMAC_DCMD_RDIL_28 (8 << DMAC_DCMD_RDIL_BIT)
++ #define DMAC_DCMD_RDIL_32 (9 << DMAC_DCMD_RDIL_BIT)
++ #define DMAC_DCMD_RDIL_48 (10 << DMAC_DCMD_RDIL_BIT)
++ #define DMAC_DCMD_RDIL_60 (11 << DMAC_DCMD_RDIL_BIT)
++ #define DMAC_DCMD_RDIL_64 (12 << DMAC_DCMD_RDIL_BIT)
++ #define DMAC_DCMD_RDIL_124 (13 << DMAC_DCMD_RDIL_BIT)
++ #define DMAC_DCMD_RDIL_128 (14 << DMAC_DCMD_RDIL_BIT)
++ #define DMAC_DCMD_RDIL_200 (15 << DMAC_DCMD_RDIL_BIT)
++#define DMAC_DCMD_SWDH_BIT 14 /* source port width */
++#define DMAC_DCMD_SWDH_MASK (0x03 << DMAC_DCMD_SWDH_BIT)
++ #define DMAC_DCMD_SWDH_32 (0 << DMAC_DCMD_SWDH_BIT)
++ #define DMAC_DCMD_SWDH_8 (1 << DMAC_DCMD_SWDH_BIT)
++ #define DMAC_DCMD_SWDH_16 (2 << DMAC_DCMD_SWDH_BIT)
++#define DMAC_DCMD_DWDH_BIT 12 /* dest port width */
++#define DMAC_DCMD_DWDH_MASK (0x03 << DMAC_DCMD_DWDH_BIT)
++ #define DMAC_DCMD_DWDH_32 (0 << DMAC_DCMD_DWDH_BIT)
++ #define DMAC_DCMD_DWDH_8 (1 << DMAC_DCMD_DWDH_BIT)
++ #define DMAC_DCMD_DWDH_16 (2 << DMAC_DCMD_DWDH_BIT)
++#define DMAC_DCMD_DS_BIT 8 /* transfer data size of a data unit */
++#define DMAC_DCMD_DS_MASK (0x07 << DMAC_DCMD_DS_BIT)
++ #define DMAC_DCMD_DS_32BIT (0 << DMAC_DCMD_DS_BIT)
++ #define DMAC_DCMD_DS_8BIT (1 << DMAC_DCMD_DS_BIT)
++ #define DMAC_DCMD_DS_16BIT (2 << DMAC_DCMD_DS_BIT)
++ #define DMAC_DCMD_DS_16BYTE (3 << DMAC_DCMD_DS_BIT)
++ #define DMAC_DCMD_DS_32BYTE (4 << DMAC_DCMD_DS_BIT)
++#define DMAC_DCMD_TM (1 << 7) /* transfer mode: 0-single 1-block */
++#define DMAC_DCMD_DES_V (1 << 4) /* descriptor valid flag */
++#define DMAC_DCMD_DES_VM (1 << 3) /* descriptor valid mask: 1:support V-bit */
++#define DMAC_DCMD_DES_VIE (1 << 2) /* DMA valid error interrupt enable */
++#define DMAC_DCMD_TIE (1 << 1) /* DMA transfer interrupt enable */
++#define DMAC_DCMD_LINK (1 << 0) /* descriptor link enable */
++
++// DMA descriptor address register
++#define DMAC_DDA_BASE_BIT 12 /* descriptor base address */
++#define DMAC_DDA_BASE_MASK (0x0fffff << DMAC_DDA_BASE_BIT)
++#define DMAC_DDA_OFFSET_BIT 4 /* descriptor offset address */
++#define DMAC_DDA_OFFSET_MASK (0x0ff << DMAC_DDA_OFFSET_BIT)
++
++// DMA control register
++#define DMAC_DMACR_PR_BIT 8 /* channel priority mode */
++#define DMAC_DMACR_PR_MASK (0x03 << DMAC_DMACR_PR_BIT)
++ #define DMAC_DMACR_PR_012345 (0 << DMAC_DMACR_PR_BIT)
++ #define DMAC_DMACR_PR_023145 (1 << DMAC_DMACR_PR_BIT)
++ #define DMAC_DMACR_PR_201345 (2 << DMAC_DMACR_PR_BIT)
++ #define DMAC_DMACR_PR_RR (3 << DMAC_DMACR_PR_BIT) /* round robin */
++#define DMAC_DMACR_HLT (1 << 3) /* DMA halt flag */
++#define DMAC_DMACR_AR (1 << 2) /* address error flag */
++#define DMAC_DMACR_DMAE (1 << 0) /* DMA enable bit */
++
++// DMA doorbell register
++#define DMAC_DMADBR_DB5 (1 << 5) /* doorbell for channel 5 */
++#define DMAC_DMADBR_DB4 (1 << 5) /* doorbell for channel 4 */
++#define DMAC_DMADBR_DB3 (1 << 5) /* doorbell for channel 3 */
++#define DMAC_DMADBR_DB2 (1 << 5) /* doorbell for channel 2 */
++#define DMAC_DMADBR_DB1 (1 << 5) /* doorbell for channel 1 */
++#define DMAC_DMADBR_DB0 (1 << 5) /* doorbell for channel 0 */
++
++// DMA doorbell set register
++#define DMAC_DMADBSR_DBS5 (1 << 5) /* enable doorbell for channel 5 */
++#define DMAC_DMADBSR_DBS4 (1 << 5) /* enable doorbell for channel 4 */
++#define DMAC_DMADBSR_DBS3 (1 << 5) /* enable doorbell for channel 3 */
++#define DMAC_DMADBSR_DBS2 (1 << 5) /* enable doorbell for channel 2 */
++#define DMAC_DMADBSR_DBS1 (1 << 5) /* enable doorbell for channel 1 */
++#define DMAC_DMADBSR_DBS0 (1 << 5) /* enable doorbell for channel 0 */
++
++// DMA interrupt pending register
++#define DMAC_DMAIPR_CIRQ5 (1 << 5) /* irq pending status for channel 5 */
++#define DMAC_DMAIPR_CIRQ4 (1 << 4) /* irq pending status for channel 4 */
++#define DMAC_DMAIPR_CIRQ3 (1 << 3) /* irq pending status for channel 3 */
++#define DMAC_DMAIPR_CIRQ2 (1 << 2) /* irq pending status for channel 2 */
++#define DMAC_DMAIPR_CIRQ1 (1 << 1) /* irq pending status for channel 1 */
++#define DMAC_DMAIPR_CIRQ0 (1 << 0) /* irq pending status for channel 0 */
++
++
++/*************************************************************************
++ * GPIO (General-Purpose I/O Ports)
++ *************************************************************************/
++#define MAX_GPIO_NUM 128
++
++//n = 0,1,2,3
++#define GPIO_PXPIN(n) (GPIO_BASE + (0x00 + (n)*0x100)) /* PIN Level Register */
++#define GPIO_PXDAT(n) (GPIO_BASE + (0x10 + (n)*0x100)) /* Port Data Register */
++#define GPIO_PXDATS(n) (GPIO_BASE + (0x14 + (n)*0x100)) /* Port Data Set Register */
++#define GPIO_PXDATC(n) (GPIO_BASE + (0x18 + (n)*0x100)) /* Port Data Clear Register */
++#define GPIO_PXIM(n) (GPIO_BASE + (0x20 + (n)*0x100)) /* Interrupt Mask Register */
++#define GPIO_PXIMS(n) (GPIO_BASE + (0x24 + (n)*0x100)) /* Interrupt Mask Set Reg */
++#define GPIO_PXIMC(n) (GPIO_BASE + (0x28 + (n)*0x100)) /* Interrupt Mask Clear Reg */
++#define GPIO_PXPE(n) (GPIO_BASE + (0x30 + (n)*0x100)) /* Pull Enable Register */
++#define GPIO_PXPES(n) (GPIO_BASE + (0x34 + (n)*0x100)) /* Pull Enable Set Reg. */
++#define GPIO_PXPEC(n) (GPIO_BASE + (0x38 + (n)*0x100)) /* Pull Enable Clear Reg. */
++#define GPIO_PXFUN(n) (GPIO_BASE + (0x40 + (n)*0x100)) /* Function Register */
++#define GPIO_PXFUNS(n) (GPIO_BASE + (0x44 + (n)*0x100)) /* Function Set Register */
++#define GPIO_PXFUNC(n) (GPIO_BASE + (0x48 + (n)*0x100)) /* Function Clear Register */
++#define GPIO_PXSEL(n) (GPIO_BASE + (0x50 + (n)*0x100)) /* Select Register */
++#define GPIO_PXSELS(n) (GPIO_BASE + (0x54 + (n)*0x100)) /* Select Set Register */
++#define GPIO_PXSELC(n) (GPIO_BASE + (0x58 + (n)*0x100)) /* Select Clear Register */
++#define GPIO_PXDIR(n) (GPIO_BASE + (0x60 + (n)*0x100)) /* Direction Register */
++#define GPIO_PXDIRS(n) (GPIO_BASE + (0x64 + (n)*0x100)) /* Direction Set Register */
++#define GPIO_PXDIRC(n) (GPIO_BASE + (0x68 + (n)*0x100)) /* Direction Clear Register */
++#define GPIO_PXTRG(n) (GPIO_BASE + (0x70 + (n)*0x100)) /* Trigger Register */
++#define GPIO_PXTRGS(n) (GPIO_BASE + (0x74 + (n)*0x100)) /* Trigger Set Register */
++#define GPIO_PXTRGC(n) (GPIO_BASE + (0x78 + (n)*0x100)) /* Trigger Set Register */
++#define GPIO_PXFLG(n) (GPIO_BASE + (0x80 + (n)*0x100)) /* Port Flag Register */
++#define GPIO_PXFLGC(n) (GPIO_BASE + (0x14 + (n)*0x100)) /* Port Flag Clear Register */
++
++#define REG_GPIO_PXPIN(n) REG32(GPIO_PXPIN((n))) /* PIN level */
++#define REG_GPIO_PXDAT(n) REG32(GPIO_PXDAT((n))) /* 1: interrupt pending */
++#define REG_GPIO_PXDATS(n) REG32(GPIO_PXDATS((n)))
++#define REG_GPIO_PXDATC(n) REG32(GPIO_PXDATC((n)))
++#define REG_GPIO_PXIM(n) REG32(GPIO_PXIM((n))) /* 1: mask pin interrupt */
++#define REG_GPIO_PXIMS(n) REG32(GPIO_PXIMS((n)))
++#define REG_GPIO_PXIMC(n) REG32(GPIO_PXIMC((n)))
++#define REG_GPIO_PXPE(n) REG32(GPIO_PXPE((n))) /* 1: disable pull up/down */
++#define REG_GPIO_PXPES(n) REG32(GPIO_PXPES((n)))
++#define REG_GPIO_PXPEC(n) REG32(GPIO_PXPEC((n)))
++#define REG_GPIO_PXFUN(n) REG32(GPIO_PXFUN((n))) /* 0:GPIO or intr, 1:FUNC */
++#define REG_GPIO_PXFUNS(n) REG32(GPIO_PXFUNS((n)))
++#define REG_GPIO_PXFUNC(n) REG32(GPIO_PXFUNC((n)))
++#define REG_GPIO_PXSEL(n) REG32(GPIO_PXSEL((n))) /* 0:GPIO/Fun0,1:intr/fun1*/
++#define REG_GPIO_PXSELS(n) REG32(GPIO_PXSELS((n)))
++#define REG_GPIO_PXSELC(n) REG32(GPIO_PXSELC((n)))
++#define REG_GPIO_PXDIR(n) REG32(GPIO_PXDIR((n))) /* 0:input/low-level-trig/falling-edge-trig, 1:output/high-level-trig/rising-edge-trig */
++#define REG_GPIO_PXDIRS(n) REG32(GPIO_PXDIRS((n)))
++#define REG_GPIO_PXDIRC(n) REG32(GPIO_PXDIRC((n)))
++#define REG_GPIO_PXTRG(n) REG32(GPIO_PXTRG((n))) /* 0:level-trigger, 1:edge-trigger */
++#define REG_GPIO_PXTRGS(n) REG32(GPIO_PXTRGS((n)))
++#define REG_GPIO_PXTRGC(n) REG32(GPIO_PXTRGC((n)))
++#define REG_GPIO_PXFLG(n) REG32(GPIO_PXFLG((n))) /* interrupt flag */
++#define REG_GPIO_PXFLGC(n) REG32(GPIO_PXFLGC((n))) /* interrupt flag */
++
++
++/*************************************************************************
++ * UART
++ *************************************************************************/
++
++#define IRDA_BASE UART0_BASE
++#define UART_BASE UART0_BASE
++#define UART_OFF 0x1000
++
++/* Register Offset */
++#define OFF_RDR (0x00) /* R 8b H'xx */
++#define OFF_TDR (0x00) /* W 8b H'xx */
++#define OFF_DLLR (0x00) /* RW 8b H'00 */
++#define OFF_DLHR (0x04) /* RW 8b H'00 */
++#define OFF_IER (0x04) /* RW 8b H'00 */
++#define OFF_ISR (0x08) /* R 8b H'01 */
++#define OFF_FCR (0x08) /* W 8b H'00 */
++#define OFF_LCR (0x0C) /* RW 8b H'00 */
++#define OFF_MCR (0x10) /* RW 8b H'00 */
++#define OFF_LSR (0x14) /* R 8b H'00 */
++#define OFF_MSR (0x18) /* R 8b H'00 */
++#define OFF_SPR (0x1C) /* RW 8b H'00 */
++#define OFF_SIRCR (0x20) /* RW 8b H'00, UART0 */
++#define OFF_UMR (0x24) /* RW 8b H'00, UART M Register */
++#define OFF_UACR (0x28) /* RW 8b H'00, UART Add Cycle Register */
++
++/* Register Address */
++#define UART0_RDR (UART0_BASE + OFF_RDR)
++#define UART0_TDR (UART0_BASE + OFF_TDR)
++#define UART0_DLLR (UART0_BASE + OFF_DLLR)
++#define UART0_DLHR (UART0_BASE + OFF_DLHR)
++#define UART0_IER (UART0_BASE + OFF_IER)
++#define UART0_ISR (UART0_BASE + OFF_ISR)
++#define UART0_FCR (UART0_BASE + OFF_FCR)
++#define UART0_LCR (UART0_BASE + OFF_LCR)
++#define UART0_MCR (UART0_BASE + OFF_MCR)
++#define UART0_LSR (UART0_BASE + OFF_LSR)
++#define UART0_MSR (UART0_BASE + OFF_MSR)
++#define UART0_SPR (UART0_BASE + OFF_SPR)
++#define UART0_SIRCR (UART0_BASE + OFF_SIRCR)
++#define UART0_UMR (UART0_BASE + OFF_UMR)
++#define UART0_UACR (UART0_BASE + OFF_UACR)
++
++/*
++ * Define macros for UARTIER
++ * UART Interrupt Enable Register
++ */
++#define UARTIER_RIE (1 << 0) /* 0: receive fifo full interrupt disable */
++#define UARTIER_TIE (1 << 1) /* 0: transmit fifo empty interrupt disable */
++#define UARTIER_RLIE (1 << 2) /* 0: receive line status interrupt disable */
++#define UARTIER_MIE (1 << 3) /* 0: modem status interrupt disable */
++#define UARTIER_RTIE (1 << 4) /* 0: receive timeout interrupt disable */
++
++/*
++ * Define macros for UARTISR
++ * UART Interrupt Status Register
++ */
++#define UARTISR_IP (1 << 0) /* 0: interrupt is pending 1: no interrupt */
++#define UARTISR_IID (7 << 1) /* Source of Interrupt */
++#define UARTISR_IID_MSI (0 << 1) /* Modem status interrupt */
++#define UARTISR_IID_THRI (1 << 1) /* Transmitter holding register empty */
++#define UARTISR_IID_RDI (2 << 1) /* Receiver data interrupt */
++#define UARTISR_IID_RLSI (3 << 1) /* Receiver line status interrupt */
++#define UARTISR_IID_RTO (6 << 1) /* Receive timeout */
++#define UARTISR_FFMS (3 << 6) /* FIFO mode select, set when UARTFCR.FE is set to 1 */
++#define UARTISR_FFMS_NO_FIFO (0 << 6)
++#define UARTISR_FFMS_FIFO_MODE (3 << 6)
++
++/*
++ * Define macros for UARTFCR
++ * UART FIFO Control Register
++ */
++#define UARTFCR_FE (1 << 0) /* 0: non-FIFO mode 1: FIFO mode */
++#define UARTFCR_RFLS (1 << 1) /* write 1 to flush receive FIFO */
++#define UARTFCR_TFLS (1 << 2) /* write 1 to flush transmit FIFO */
++#define UARTFCR_DMS (1 << 3) /* 0: disable DMA mode */
++#define UARTFCR_UUE (1 << 4) /* 0: disable UART */
++#define UARTFCR_RTRG (3 << 6) /* Receive FIFO Data Trigger */
++#define UARTFCR_RTRG_1 (0 << 6)
++#define UARTFCR_RTRG_4 (1 << 6)
++#define UARTFCR_RTRG_8 (2 << 6)
++#define UARTFCR_RTRG_15 (3 << 6)
++
++/*
++ * Define macros for UARTLCR
++ * UART Line Control Register
++ */
++#define UARTLCR_WLEN (3 << 0) /* word length */
++#define UARTLCR_WLEN_5 (0 << 0)
++#define UARTLCR_WLEN_6 (1 << 0)
++#define UARTLCR_WLEN_7 (2 << 0)
++#define UARTLCR_WLEN_8 (3 << 0)
++#define UARTLCR_STOP (1 << 2) /* 0: 1 stop bit when word length is 5,6,7,8
++ 1: 1.5 stop bits when 5; 2 stop bits when 6,7,8 */
++#define UARTLCR_STOP1 (0 << 2)
++#define UARTLCR_STOP2 (1 << 2)
++#define UARTLCR_PE (1 << 3) /* 0: parity disable */
++#define UARTLCR_PROE (1 << 4) /* 0: even parity 1: odd parity */
++#define UARTLCR_SPAR (1 << 5) /* 0: sticky parity disable */
++#define UARTLCR_SBRK (1 << 6) /* write 0 normal, write 1 send break */
++#define UARTLCR_DLAB (1 << 7) /* 0: access UARTRDR/TDR/IER 1: access UARTDLLR/DLHR */
++
++/*
++ * Define macros for UARTLSR
++ * UART Line Status Register
++ */
++#define UARTLSR_DR (1 << 0) /* 0: receive FIFO is empty 1: receive data is ready */
++#define UARTLSR_ORER (1 << 1) /* 0: no overrun error */
++#define UARTLSR_PER (1 << 2) /* 0: no parity error */
++#define UARTLSR_FER (1 << 3) /* 0; no framing error */
++#define UARTLSR_BRK (1 << 4) /* 0: no break detected 1: receive a break signal */
++#define UARTLSR_TDRQ (1 << 5) /* 1: transmit FIFO half "empty" */
++#define UARTLSR_TEMT (1 << 6) /* 1: transmit FIFO and shift registers empty */
++#define UARTLSR_RFER (1 << 7) /* 0: no receive error 1: receive error in FIFO mode */
++
++/*
++ * Define macros for UARTMCR
++ * UART Modem Control Register
++ */
++#define UARTMCR_RTS (1 << 1) /* 0: RTS_ output high, 1: RTS_ output low */
++#define UARTMCR_LOOP (1 << 4) /* 0: normal 1: loopback mode */
++#define UARTMCR_MCE (1 << 7) /* 0: modem function is disable */
++
++/*
++ * Define macros for UARTMSR
++ * UART Modem Status Register
++ */
++#define UARTMSR_CCTS (1 << 0) /* 1: a change on CTS_ pin */
++#define UARTMSR_CTS (1 << 4) /* 0: CTS_ pin is high */
++
++/*
++ * Define macros for SIRCR
++ * Slow IrDA Control Register
++ */
++#define SIRCR_TSIRE (1 << 0) /* 0: transmitter is in UART mode 1: SIR mode */
++#define SIRCR_RSIRE (1 << 1) /* 0: receiver is in UART mode 1: SIR mode */
++#define SIRCR_TPWS (1 << 2) /* 0: transmit 0 pulse width is 3/16 of bit length
++ 1: 0 pulse width is 1.6us for 115.2Kbps */
++#define SIRCR_TDPL (1 << 3) /* 0: encoder generates a positive pulse for 0 */
++#define SIRCR_RDPL (1 << 4) /* 0: decoder interprets positive pulse as 0 */
++
++
++/*************************************************************************
++ * AIC (AC97/I2S Controller)
++ *************************************************************************/
++#define AIC_FR (AIC_BASE + 0x000)
++#define AIC_CR (AIC_BASE + 0x004)
++#define AIC_ACCR1 (AIC_BASE + 0x008)
++#define AIC_ACCR2 (AIC_BASE + 0x00C)
++#define AIC_I2SCR (AIC_BASE + 0x010)
++#define AIC_SR (AIC_BASE + 0x014)
++#define AIC_ACSR (AIC_BASE + 0x018)
++#define AIC_I2SSR (AIC_BASE + 0x01C)
++#define AIC_ACCAR (AIC_BASE + 0x020)
++#define AIC_ACCDR (AIC_BASE + 0x024)
++#define AIC_ACSAR (AIC_BASE + 0x028)
++#define AIC_ACSDR (AIC_BASE + 0x02C)
++#define AIC_I2SDIV (AIC_BASE + 0x030)
++#define AIC_DR (AIC_BASE + 0x034)
++
++#define REG_AIC_FR REG32(AIC_FR)
++#define REG_AIC_CR REG32(AIC_CR)
++#define REG_AIC_ACCR1 REG32(AIC_ACCR1)
++#define REG_AIC_ACCR2 REG32(AIC_ACCR2)
++#define REG_AIC_I2SCR REG32(AIC_I2SCR)
++#define REG_AIC_SR REG32(AIC_SR)
++#define REG_AIC_ACSR REG32(AIC_ACSR)
++#define REG_AIC_I2SSR REG32(AIC_I2SSR)
++#define REG_AIC_ACCAR REG32(AIC_ACCAR)
++#define REG_AIC_ACCDR REG32(AIC_ACCDR)
++#define REG_AIC_ACSAR REG32(AIC_ACSAR)
++#define REG_AIC_ACSDR REG32(AIC_ACSDR)
++#define REG_AIC_I2SDIV REG32(AIC_I2SDIV)
++#define REG_AIC_DR REG32(AIC_DR)
++
++/* AIC Controller Configuration Register (AIC_FR) */
++
++#define AIC_FR_RFTH_BIT 12 /* Receive FIFO Threshold */
++#define AIC_FR_RFTH_MASK (0xf << AIC_FR_RFTH_BIT)
++#define AIC_FR_TFTH_BIT 8 /* Transmit FIFO Threshold */
++#define AIC_FR_TFTH_MASK (0xf << AIC_FR_TFTH_BIT)
++#define AIC_FR_LSMP (1 << 6) /* Play Zero sample or last sample */
++#define AIC_FR_ICDC (1 << 5) /* External(0) or Internal CODEC(1) */
++#define AIC_FR_AUSEL (1 << 4) /* AC97(0) or I2S/MSB-justified(1) */
++#define AIC_FR_RST (1 << 3) /* AIC registers reset */
++#define AIC_FR_BCKD (1 << 2) /* I2S BIT_CLK direction, 0:input,1:output */
++#define AIC_FR_SYNCD (1 << 1) /* I2S SYNC direction, 0:input,1:output */
++#define AIC_FR_ENB (1 << 0) /* AIC enable bit */
++
++/* AIC Controller Common Control Register (AIC_CR) */
++
++#define AIC_CR_OSS_BIT 19 /* Output Sample Size from memory (AIC V2 only) */
++#define AIC_CR_OSS_MASK (0x7 << AIC_CR_OSS_BIT)
++ #define AIC_CR_OSS_8BIT (0x0 << AIC_CR_OSS_BIT)
++ #define AIC_CR_OSS_16BIT (0x1 << AIC_CR_OSS_BIT)
++ #define AIC_CR_OSS_18BIT (0x2 << AIC_CR_OSS_BIT)
++ #define AIC_CR_OSS_20BIT (0x3 << AIC_CR_OSS_BIT)
++ #define AIC_CR_OSS_24BIT (0x4 << AIC_CR_OSS_BIT)
++#define AIC_CR_ISS_BIT 16 /* Input Sample Size from memory (AIC V2 only) */
++#define AIC_CR_ISS_MASK (0x7 << AIC_CR_ISS_BIT)
++ #define AIC_CR_ISS_8BIT (0x0 << AIC_CR_ISS_BIT)
++ #define AIC_CR_ISS_16BIT (0x1 << AIC_CR_ISS_BIT)
++ #define AIC_CR_ISS_18BIT (0x2 << AIC_CR_ISS_BIT)
++ #define AIC_CR_ISS_20BIT (0x3 << AIC_CR_ISS_BIT)
++ #define AIC_CR_ISS_24BIT (0x4 << AIC_CR_ISS_BIT)
++#define AIC_CR_RDMS (1 << 15) /* Receive DMA enable */
++#define AIC_CR_TDMS (1 << 14) /* Transmit DMA enable */
++#define AIC_CR_M2S (1 << 11) /* Mono to Stereo enable */
++#define AIC_CR_ENDSW (1 << 10) /* Endian switch enable */
++#define AIC_CR_AVSTSU (1 << 9) /* Signed <-> Unsigned toggle enable */
++#define AIC_CR_FLUSH (1 << 8) /* Flush FIFO */
++#define AIC_CR_EROR (1 << 6) /* Enable ROR interrupt */
++#define AIC_CR_ETUR (1 << 5) /* Enable TUR interrupt */
++#define AIC_CR_ERFS (1 << 4) /* Enable RFS interrupt */
++#define AIC_CR_ETFS (1 << 3) /* Enable TFS interrupt */
++#define AIC_CR_ENLBF (1 << 2) /* Enable Loopback Function */
++#define AIC_CR_ERPL (1 << 1) /* Enable Playback Function */
++#define AIC_CR_EREC (1 << 0) /* Enable Record Function */
++
++/* AIC Controller AC-link Control Register 1 (AIC_ACCR1) */
++
++#define AIC_ACCR1_RS_BIT 16 /* Receive Valid Slots */
++#define AIC_ACCR1_RS_MASK (0x3ff << AIC_ACCR1_RS_BIT)
++ #define AIC_ACCR1_RS_SLOT12 (1 << 25) /* Slot 12 valid bit */
++ #define AIC_ACCR1_RS_SLOT11 (1 << 24) /* Slot 11 valid bit */
++ #define AIC_ACCR1_RS_SLOT10 (1 << 23) /* Slot 10 valid bit */
++ #define AIC_ACCR1_RS_SLOT9 (1 << 22) /* Slot 9 valid bit, LFE */
++ #define AIC_ACCR1_RS_SLOT8 (1 << 21) /* Slot 8 valid bit, Surround Right */
++ #define AIC_ACCR1_RS_SLOT7 (1 << 20) /* Slot 7 valid bit, Surround Left */
++ #define AIC_ACCR1_RS_SLOT6 (1 << 19) /* Slot 6 valid bit, PCM Center */
++ #define AIC_ACCR1_RS_SLOT5 (1 << 18) /* Slot 5 valid bit */
++ #define AIC_ACCR1_RS_SLOT4 (1 << 17) /* Slot 4 valid bit, PCM Right */
++ #define AIC_ACCR1_RS_SLOT3 (1 << 16) /* Slot 3 valid bit, PCM Left */
++#define AIC_ACCR1_XS_BIT 0 /* Transmit Valid Slots */
++#define AIC_ACCR1_XS_MASK (0x3ff << AIC_ACCR1_XS_BIT)
++ #define AIC_ACCR1_XS_SLOT12 (1 << 9) /* Slot 12 valid bit */
++ #define AIC_ACCR1_XS_SLOT11 (1 << 8) /* Slot 11 valid bit */
++ #define AIC_ACCR1_XS_SLOT10 (1 << 7) /* Slot 10 valid bit */
++ #define AIC_ACCR1_XS_SLOT9 (1 << 6) /* Slot 9 valid bit, LFE */
++ #define AIC_ACCR1_XS_SLOT8 (1 << 5) /* Slot 8 valid bit, Surround Right */
++ #define AIC_ACCR1_XS_SLOT7 (1 << 4) /* Slot 7 valid bit, Surround Left */
++ #define AIC_ACCR1_XS_SLOT6 (1 << 3) /* Slot 6 valid bit, PCM Center */
++ #define AIC_ACCR1_XS_SLOT5 (1 << 2) /* Slot 5 valid bit */
++ #define AIC_ACCR1_XS_SLOT4 (1 << 1) /* Slot 4 valid bit, PCM Right */
++ #define AIC_ACCR1_XS_SLOT3 (1 << 0) /* Slot 3 valid bit, PCM Left */
++
++/* AIC Controller AC-link Control Register 2 (AIC_ACCR2) */
++
++#define AIC_ACCR2_ERSTO (1 << 18) /* Enable RSTO interrupt */
++#define AIC_ACCR2_ESADR (1 << 17) /* Enable SADR interrupt */
++#define AIC_ACCR2_ECADT (1 << 16) /* Enable CADT interrupt */
++#define AIC_ACCR2_OASS_BIT 8 /* Output Sample Size for AC-link */
++#define AIC_ACCR2_OASS_MASK (0x3 << AIC_ACCR2_OASS_BIT)
++ #define AIC_ACCR2_OASS_20BIT (0 << AIC_ACCR2_OASS_BIT) /* Output Audio Sample Size is 20-bit */
++ #define AIC_ACCR2_OASS_18BIT (1 << AIC_ACCR2_OASS_BIT) /* Output Audio Sample Size is 18-bit */
++ #define AIC_ACCR2_OASS_16BIT (2 << AIC_ACCR2_OASS_BIT) /* Output Audio Sample Size is 16-bit */
++ #define AIC_ACCR2_OASS_8BIT (3 << AIC_ACCR2_OASS_BIT) /* Output Audio Sample Size is 8-bit */
++#define AIC_ACCR2_IASS_BIT 6 /* Output Sample Size for AC-link */
++#define AIC_ACCR2_IASS_MASK (0x3 << AIC_ACCR2_IASS_BIT)
++ #define AIC_ACCR2_IASS_20BIT (0 << AIC_ACCR2_IASS_BIT) /* Input Audio Sample Size is 20-bit */
++ #define AIC_ACCR2_IASS_18BIT (1 << AIC_ACCR2_IASS_BIT) /* Input Audio Sample Size is 18-bit */
++ #define AIC_ACCR2_IASS_16BIT (2 << AIC_ACCR2_IASS_BIT) /* Input Audio Sample Size is 16-bit */
++ #define AIC_ACCR2_IASS_8BIT (3 << AIC_ACCR2_IASS_BIT) /* Input Audio Sample Size is 8-bit */
++#define AIC_ACCR2_SO (1 << 3) /* SDATA_OUT output value */
++#define AIC_ACCR2_SR (1 << 2) /* RESET# pin level */
++#define AIC_ACCR2_SS (1 << 1) /* SYNC pin level */
++#define AIC_ACCR2_SA (1 << 0) /* SYNC and SDATA_OUT alternation */
++
++/* AIC Controller I2S/MSB-justified Control Register (AIC_I2SCR) */
++
++#define AIC_I2SCR_STPBK (1 << 12) /* Stop BIT_CLK for I2S/MSB-justified */
++#define AIC_I2SCR_WL_BIT 1 /* Input/Output Sample Size for I2S/MSB-justified */
++#define AIC_I2SCR_WL_MASK (0x7 << AIC_I2SCR_WL_BIT)
++ #define AIC_I2SCR_WL_24BIT (0 << AIC_I2SCR_WL_BIT) /* Word Length is 24 bit */
++ #define AIC_I2SCR_WL_20BIT (1 << AIC_I2SCR_WL_BIT) /* Word Length is 20 bit */
++ #define AIC_I2SCR_WL_18BIT (2 << AIC_I2SCR_WL_BIT) /* Word Length is 18 bit */
++ #define AIC_I2SCR_WL_16BIT (3 << AIC_I2SCR_WL_BIT) /* Word Length is 16 bit */
++ #define AIC_I2SCR_WL_8BIT (4 << AIC_I2SCR_WL_BIT) /* Word Length is 8 bit */
++#define AIC_I2SCR_AMSL (1 << 0) /* 0:I2S, 1:MSB-justified */
++
++/* AIC Controller FIFO Status Register (AIC_SR) */
++
++#define AIC_SR_RFL_BIT 24 /* Receive FIFO Level */
++#define AIC_SR_RFL_MASK (0x3f << AIC_SR_RFL_BIT)
++#define AIC_SR_TFL_BIT 8 /* Transmit FIFO level */
++#define AIC_SR_TFL_MASK (0x3f << AIC_SR_TFL_BIT)
++#define AIC_SR_ROR (1 << 6) /* Receive FIFO Overrun */
++#define AIC_SR_TUR (1 << 5) /* Transmit FIFO Underrun */
++#define AIC_SR_RFS (1 << 4) /* Receive FIFO Service Request */
++#define AIC_SR_TFS (1 << 3) /* Transmit FIFO Service Request */
++
++/* AIC Controller AC-link Status Register (AIC_ACSR) */
++
++#define AIC_ACSR_SLTERR (1 << 21) /* Slot Error Flag */
++#define AIC_ACSR_CRDY (1 << 20) /* External CODEC Ready Flag */
++#define AIC_ACSR_CLPM (1 << 19) /* External CODEC low power mode flag */
++#define AIC_ACSR_RSTO (1 << 18) /* External CODEC regs read status timeout */
++#define AIC_ACSR_SADR (1 << 17) /* External CODEC regs status addr and data received */
++#define AIC_ACSR_CADT (1 << 16) /* Command Address and Data Transmitted */
++
++/* AIC Controller I2S/MSB-justified Status Register (AIC_I2SSR) */
++
++#define AIC_I2SSR_BSY (1 << 2) /* AIC Busy in I2S/MSB-justified format */
++
++/* AIC Controller AC97 codec Command Address Register (AIC_ACCAR) */
++
++#define AIC_ACCAR_CAR_BIT 0
++#define AIC_ACCAR_CAR_MASK (0xfffff << AIC_ACCAR_CAR_BIT)
++
++/* AIC Controller AC97 codec Command Data Register (AIC_ACCDR) */
++
++#define AIC_ACCDR_CDR_BIT 0
++#define AIC_ACCDR_CDR_MASK (0xfffff << AIC_ACCDR_CDR_BIT)
++
++/* AIC Controller AC97 codec Status Address Register (AIC_ACSAR) */
++
++#define AIC_ACSAR_SAR_BIT 0
++#define AIC_ACSAR_SAR_MASK (0xfffff << AIC_ACSAR_SAR_BIT)
++
++/* AIC Controller AC97 codec Status Data Register (AIC_ACSDR) */
++
++#define AIC_ACSDR_SDR_BIT 0
++#define AIC_ACSDR_SDR_MASK (0xfffff << AIC_ACSDR_SDR_BIT)
++
++/* AIC Controller I2S/MSB-justified Clock Divider Register (AIC_I2SDIV) */
++
++#define AIC_I2SDIV_DIV_BIT 0
++#define AIC_I2SDIV_DIV_MASK (0x7f << AIC_I2SDIV_DIV_BIT)
++ #define AIC_I2SDIV_BITCLK_3072KHZ (0x0C << AIC_I2SDIV_DIV_BIT) /* BIT_CLK of 3.072MHz */
++ #define AIC_I2SDIV_BITCLK_2836KHZ (0x0D << AIC_I2SDIV_DIV_BIT) /* BIT_CLK of 2.836MHz */
++ #define AIC_I2SDIV_BITCLK_1418KHZ (0x1A << AIC_I2SDIV_DIV_BIT) /* BIT_CLK of 1.418MHz */
++ #define AIC_I2SDIV_BITCLK_1024KHZ (0x24 << AIC_I2SDIV_DIV_BIT) /* BIT_CLK of 1.024MHz */
++ #define AIC_I2SDIV_BITCLK_7089KHZ (0x34 << AIC_I2SDIV_DIV_BIT) /* BIT_CLK of 708.92KHz */
++ #define AIC_I2SDIV_BITCLK_512KHZ (0x48 << AIC_I2SDIV_DIV_BIT) /* BIT_CLK of 512.00KHz */
++
++
++/*************************************************************************
++ * ICDC (Internal CODEC)
++ *************************************************************************/
++#define ICDC_CR (ICDC_BASE + 0x0400) /* ICDC Control Register */
++#define ICDC_APWAIT (ICDC_BASE + 0x0404) /* Anti-Pop WAIT Stage Timing Control Register */
++#define ICDC_APPRE (ICDC_BASE + 0x0408) /* Anti-Pop HPEN-PRE Stage Timing Control Register */
++#define ICDC_APHPEN (ICDC_BASE + 0x040C) /* Anti-Pop HPEN Stage Timing Control Register */
++#define ICDC_APSR (ICDC_BASE + 0x0410) /* Anti-Pop Status Register */
++#define ICDC_CDCCR1 (ICDC_BASE + 0x0080)
++#define ICDC_CDCCR2 (ICDC_BASE + 0x0084)
++
++#define REG_ICDC_CR REG32(ICDC_CR)
++#define REG_ICDC_APWAIT REG32(ICDC_APWAIT)
++#define REG_ICDC_APPRE REG32(ICDC_APPRE)
++#define REG_ICDC_APHPEN REG32(ICDC_APHPEN)
++#define REG_ICDC_APSR REG32(ICDC_APSR)
++#define REG_ICDC_CDCCR1 REG32(ICDC_CDCCR1)
++#define REG_ICDC_CDCCR2 REG32(ICDC_CDCCR2)
++
++/* ICDC Control Register */
++#define ICDC_CR_LINVOL_BIT 24 /* LINE Input Volume Gain: GAIN=LINVOL*1.5-34.5 */
++#define ICDC_CR_LINVOL_MASK (0x1f << ICDC_CR_LINVOL_BIT)
++#define ICDC_CR_ASRATE_BIT 20 /* Audio Sample Rate */
++#define ICDC_CR_ASRATE_MASK (0x0f << ICDC_CR_ASRATE_BIT)
++ #define ICDC_CR_ASRATE_8000 (0x0 << ICDC_CR_ASRATE_BIT)
++ #define ICDC_CR_ASRATE_11025 (0x1 << ICDC_CR_ASRATE_BIT)
++ #define ICDC_CR_ASRATE_12000 (0x2 << ICDC_CR_ASRATE_BIT)
++ #define ICDC_CR_ASRATE_16000 (0x3 << ICDC_CR_ASRATE_BIT)
++ #define ICDC_CR_ASRATE_22050 (0x4 << ICDC_CR_ASRATE_BIT)
++ #define ICDC_CR_ASRATE_24000 (0x5 << ICDC_CR_ASRATE_BIT)
++ #define ICDC_CR_ASRATE_32000 (0x6 << ICDC_CR_ASRATE_BIT)
++ #define ICDC_CR_ASRATE_44100 (0x7 << ICDC_CR_ASRATE_BIT)
++ #define ICDC_CR_ASRATE_48000 (0x8 << ICDC_CR_ASRATE_BIT)
++#define ICDC_CR_MICBG_BIT 18 /* MIC Boost Gain */
++#define ICDC_CR_MICBG_MASK (0x3 << ICDC_CR_MICBG_BIT)
++ #define ICDC_CR_MICBG_0DB (0x0 << ICDC_CR_MICBG_BIT)
++ #define ICDC_CR_MICBG_6DB (0x1 << ICDC_CR_MICBG_BIT)
++ #define ICDC_CR_MICBG_12DB (0x2 << ICDC_CR_MICBG_BIT)
++ #define ICDC_CR_MICBG_20DB (0x3 << ICDC_CR_MICBG_BIT)
++#define ICDC_CR_HPVOL_BIT 16 /* Headphone Volume Gain */
++#define ICDC_CR_HPVOL_MASK (0x3 << ICDC_CR_HPVOL_BIT)
++ #define ICDC_CR_HPVOL_0DB (0x0 << ICDC_CR_HPVOL_BIT)
++ #define ICDC_CR_HPVOL_2DB (0x1 << ICDC_CR_HPVOL_BIT)
++ #define ICDC_CR_HPVOL_4DB (0x2 << ICDC_CR_HPVOL_BIT)
++ #define ICDC_CR_HPVOL_6DB (0x3 << ICDC_CR_HPVOL_BIT)
++#define ICDC_CR_ELINEIN (1 << 13) /* Enable LINE Input */
++#define ICDC_CR_EMIC (1 << 12) /* Enable MIC Input */
++#define ICDC_CR_SW1ON (1 << 11) /* Switch 1 in CODEC is on */
++#define ICDC_CR_EADC (1 << 10) /* Enable ADC */
++#define ICDC_CR_SW2ON (1 << 9) /* Switch 2 in CODEC is on */
++#define ICDC_CR_EDAC (1 << 8) /* Enable DAC */
++#define ICDC_CR_HPMUTE (1 << 5) /* Headphone Mute */
++#define ICDC_CR_HPTON (1 << 4) /* Headphone Amplifier Trun On */
++#define ICDC_CR_HPTOFF (1 << 3) /* Headphone Amplifier Trun Off */
++#define ICDC_CR_TAAP (1 << 2) /* Turn Around of the Anti-Pop Procedure */
++#define ICDC_CR_EAP (1 << 1) /* Enable Anti-Pop Procedure */
++#define ICDC_CR_SUSPD (1 << 0) /* CODEC Suspend */
++
++/* Anti-Pop WAIT Stage Timing Control Register */
++#define ICDC_APWAIT_WAITSN_BIT 0
++#define ICDC_APWAIT_WAITSN_MASK (0x7ff << ICDC_APWAIT_WAITSN_BIT)
++
++/* Anti-Pop HPEN-PRE Stage Timing Control Register */
++#define ICDC_APPRE_PRESN_BIT 0
++#define ICDC_APPRE_PRESN_MASK (0x1ff << ICDC_APPRE_PRESN_BIT)
++
++/* Anti-Pop HPEN Stage Timing Control Register */
++#define ICDC_APHPEN_HPENSN_BIT 0
++#define ICDC_APHPEN_HPENSN_MASK (0x3fff << ICDC_APHPEN_HPENSN_BIT)
++
++/* Anti-Pop Status Register */
++#define ICDC_SR_HPST_BIT 14 /* Headphone Amplifier State */
++#define ICDC_SR_HPST_MASK (0x7 << ICDC_SR_HPST_BIT)
++#define ICDC_SR_HPST_HP_OFF (0x0 << ICDC_SR_HPST_BIT) /* HP amplifier is off */
++#define ICDC_SR_HPST_TON_WAIT (0x1 << ICDC_SR_HPST_BIT) /* wait state in turn-on */
++ #define ICDC_SR_HPST_TON_PRE (0x2 << ICDC_SR_HPST_BIT) /* pre-enable state in turn-on */
++#define ICDC_SR_HPST_TON_HPEN (0x3 << ICDC_SR_HPST_BIT) /* HP enable state in turn-on */
++ #define ICDC_SR_HPST_TOFF_HPEN (0x4 << ICDC_SR_HPST_BIT) /* HP enable state in turn-off */
++ #define ICDC_SR_HPST_TOFF_PRE (0x5 << ICDC_SR_HPST_BIT) /* pre-enable state in turn-off */
++ #define ICDC_SR_HPST_TOFF_WAIT (0x6 << ICDC_SR_HPST_BIT) /* wait state in turn-off */
++ #define ICDC_SR_HPST_HP_ON (0x7 << ICDC_SR_HPST_BIT) /* HP amplifier is on */
++#define ICDC_SR_SNCNT_BIT 0 /* Sample Number Counter */
++#define ICDC_SR_SNCNT_MASK (0x3fff << ICDC_SR_SNCNT_BIT)
++
++
++/*************************************************************************
++ * I2C
++ *************************************************************************/
++#define I2C_DR (I2C_BASE + 0x000)
++#define I2C_CR (I2C_BASE + 0x004)
++#define I2C_SR (I2C_BASE + 0x008)
++#define I2C_GR (I2C_BASE + 0x00C)
++
++#define REG_I2C_DR REG8(I2C_DR)
++#define REG_I2C_CR REG8(I2C_CR)
++#define REG_I2C_SR REG8(I2C_SR)
++#define REG_I2C_GR REG16(I2C_GR)
++
++/* I2C Control Register (I2C_CR) */
++
++#define I2C_CR_IEN (1 << 4)
++#define I2C_CR_STA (1 << 3)
++#define I2C_CR_STO (1 << 2)
++#define I2C_CR_AC (1 << 1)
++#define I2C_CR_I2CE (1 << 0)
++
++/* I2C Status Register (I2C_SR) */
++
++#define I2C_SR_STX (1 << 4)
++#define I2C_SR_BUSY (1 << 3)
++#define I2C_SR_TEND (1 << 2)
++#define I2C_SR_DRF (1 << 1)
++#define I2C_SR_ACKF (1 << 0)
++
++
++/*************************************************************************
++ * SSI
++ *************************************************************************/
++#define SSI_DR (SSI_BASE + 0x000)
++#define SSI_CR0 (SSI_BASE + 0x004)
++#define SSI_CR1 (SSI_BASE + 0x008)
++#define SSI_SR (SSI_BASE + 0x00C)
++#define SSI_ITR (SSI_BASE + 0x010)
++#define SSI_ICR (SSI_BASE + 0x014)
++#define SSI_GR (SSI_BASE + 0x018)
++
++#define REG_SSI_DR REG32(SSI_DR)
++#define REG_SSI_CR0 REG16(SSI_CR0)
++#define REG_SSI_CR1 REG32(SSI_CR1)
++#define REG_SSI_SR REG32(SSI_SR)
++#define REG_SSI_ITR REG16(SSI_ITR)
++#define REG_SSI_ICR REG8(SSI_ICR)
++#define REG_SSI_GR REG16(SSI_GR)
++
++/* SSI Data Register (SSI_DR) */
++
++#define SSI_DR_GPC_BIT 0
++#define SSI_DR_GPC_MASK (0x1ff << SSI_DR_GPC_BIT)
++
++/* SSI Control Register 0 (SSI_CR0) */
++
++#define SSI_CR0_SSIE (1 << 15)
++#define SSI_CR0_TIE (1 << 14)
++#define SSI_CR0_RIE (1 << 13)
++#define SSI_CR0_TEIE (1 << 12)
++#define SSI_CR0_REIE (1 << 11)
++#define SSI_CR0_LOOP (1 << 10)
++#define SSI_CR0_RFINE (1 << 9)
++#define SSI_CR0_RFINC (1 << 8)
++#define SSI_CR0_FSEL (1 << 6)
++#define SSI_CR0_TFLUSH (1 << 2)
++#define SSI_CR0_RFLUSH (1 << 1)
++#define SSI_CR0_DISREV (1 << 0)
++
++/* SSI Control Register 1 (SSI_CR1) */
++
++#define SSI_CR1_FRMHL_BIT 30
++#define SSI_CR1_FRMHL_MASK (0x3 << SSI_CR1_FRMHL_BIT)
++ #define SSI_CR1_FRMHL_CELOW_CE2LOW (0 << SSI_CR1_FRMHL_BIT) /* SSI_CE_ is low valid and SSI_CE2_ is low valid */
++ #define SSI_CR1_FRMHL_CEHIGH_CE2LOW (1 << SSI_CR1_FRMHL_BIT) /* SSI_CE_ is high valid and SSI_CE2_ is low valid */
++ #define SSI_CR1_FRMHL_CELOW_CE2HIGH (2 << SSI_CR1_FRMHL_BIT) /* SSI_CE_ is low valid and SSI_CE2_ is high valid */
++ #define SSI_CR1_FRMHL_CEHIGH_CE2HIGH (3 << SSI_CR1_FRMHL_BIT) /* SSI_CE_ is high valid and SSI_CE2_ is high valid */
++#define SSI_CR1_TFVCK_BIT 28
++#define SSI_CR1_TFVCK_MASK (0x3 << SSI_CR1_TFVCK_BIT)
++ #define SSI_CR1_TFVCK_0 (0 << SSI_CR1_TFVCK_BIT)
++ #define SSI_CR1_TFVCK_1 (1 << SSI_CR1_TFVCK_BIT)
++ #define SSI_CR1_TFVCK_2 (2 << SSI_CR1_TFVCK_BIT)
++ #define SSI_CR1_TFVCK_3 (3 << SSI_CR1_TFVCK_BIT)
++#define SSI_CR1_TCKFI_BIT 26
++#define SSI_CR1_TCKFI_MASK (0x3 << SSI_CR1_TCKFI_BIT)
++ #define SSI_CR1_TCKFI_0 (0 << SSI_CR1_TCKFI_BIT)
++ #define SSI_CR1_TCKFI_1 (1 << SSI_CR1_TCKFI_BIT)
++ #define SSI_CR1_TCKFI_2 (2 << SSI_CR1_TCKFI_BIT)
++ #define SSI_CR1_TCKFI_3 (3 << SSI_CR1_TCKFI_BIT)
++#define SSI_CR1_LFST (1 << 25)
++#define SSI_CR1_ITFRM (1 << 24)
++#define SSI_CR1_UNFIN (1 << 23)
++#define SSI_CR1_MULTS (1 << 22)
++#define SSI_CR1_FMAT_BIT 20
++#define SSI_CR1_FMAT_MASK (0x3 << SSI_CR1_FMAT_BIT)
++ #define SSI_CR1_FMAT_SPI (0 << SSI_CR1_FMAT_BIT) /* Motorola¡¯s SPI format */
++ #define SSI_CR1_FMAT_SSP (1 << SSI_CR1_FMAT_BIT) /* TI's SSP format */
++ #define SSI_CR1_FMAT_MW1 (2 << SSI_CR1_FMAT_BIT) /* National Microwire 1 format */
++ #define SSI_CR1_FMAT_MW2 (3 << SSI_CR1_FMAT_BIT) /* National Microwire 2 format */
++#define SSI_CR1_TTRG_BIT 16
++#define SSI_CR1_TTRG_MASK (0xf << SSI_CR1_TTRG_BIT)
++ #define SSI_CR1_TTRG_1 (0 << SSI_CR1_TTRG_BIT)
++ #define SSI_CR1_TTRG_8 (1 << SSI_CR1_TTRG_BIT)
++ #define SSI_CR1_TTRG_16 (2 << SSI_CR1_TTRG_BIT)
++ #define SSI_CR1_TTRG_24 (3 << SSI_CR1_TTRG_BIT)
++ #define SSI_CR1_TTRG_32 (4 << SSI_CR1_TTRG_BIT)
++ #define SSI_CR1_TTRG_40 (5 << SSI_CR1_TTRG_BIT)
++ #define SSI_CR1_TTRG_48 (6 << SSI_CR1_TTRG_BIT)
++ #define SSI_CR1_TTRG_56 (7 << SSI_CR1_TTRG_BIT)
++ #define SSI_CR1_TTRG_64 (8 << SSI_CR1_TTRG_BIT)
++ #define SSI_CR1_TTRG_72 (9 << SSI_CR1_TTRG_BIT)
++ #define SSI_CR1_TTRG_80 (10<< SSI_CR1_TTRG_BIT)
++ #define SSI_CR1_TTRG_88 (11<< SSI_CR1_TTRG_BIT)
++ #define SSI_CR1_TTRG_96 (12<< SSI_CR1_TTRG_BIT)
++ #define SSI_CR1_TTRG_104 (13<< SSI_CR1_TTRG_BIT)
++ #define SSI_CR1_TTRG_112 (14<< SSI_CR1_TTRG_BIT)
++ #define SSI_CR1_TTRG_120 (15<< SSI_CR1_TTRG_BIT)
++#define SSI_CR1_MCOM_BIT 12
++#define SSI_CR1_MCOM_MASK (0xf << SSI_CR1_MCOM_BIT)
++ #define SSI_CR1_MCOM_1BIT (0x0 << SSI_CR1_MCOM_BIT) /* 1-bit command selected */
++ #define SSI_CR1_MCOM_2BIT (0x1 << SSI_CR1_MCOM_BIT) /* 2-bit command selected */
++ #define SSI_CR1_MCOM_3BIT (0x2 << SSI_CR1_MCOM_BIT) /* 3-bit command selected */
++ #define SSI_CR1_MCOM_4BIT (0x3 << SSI_CR1_MCOM_BIT) /* 4-bit command selected */
++ #define SSI_CR1_MCOM_5BIT (0x4 << SSI_CR1_MCOM_BIT) /* 5-bit command selected */
++ #define SSI_CR1_MCOM_6BIT (0x5 << SSI_CR1_MCOM_BIT) /* 6-bit command selected */
++ #define SSI_CR1_MCOM_7BIT (0x6 << SSI_CR1_MCOM_BIT) /* 7-bit command selected */
++ #define SSI_CR1_MCOM_8BIT (0x7 << SSI_CR1_MCOM_BIT) /* 8-bit command selected */
++ #define SSI_CR1_MCOM_9BIT (0x8 << SSI_CR1_MCOM_BIT) /* 9-bit command selected */
++ #define SSI_CR1_MCOM_10BIT (0x9 << SSI_CR1_MCOM_BIT) /* 10-bit command selected */
++ #define SSI_CR1_MCOM_11BIT (0xA << SSI_CR1_MCOM_BIT) /* 11-bit command selected */
++ #define SSI_CR1_MCOM_12BIT (0xB << SSI_CR1_MCOM_BIT) /* 12-bit command selected */
++ #define SSI_CR1_MCOM_13BIT (0xC << SSI_CR1_MCOM_BIT) /* 13-bit command selected */
++ #define SSI_CR1_MCOM_14BIT (0xD << SSI_CR1_MCOM_BIT) /* 14-bit command selected */
++ #define SSI_CR1_MCOM_15BIT (0xE << SSI_CR1_MCOM_BIT) /* 15-bit command selected */
++ #define SSI_CR1_MCOM_16BIT (0xF << SSI_CR1_MCOM_BIT) /* 16-bit command selected */
++#define SSI_CR1_RTRG_BIT 8
++#define SSI_CR1_RTRG_MASK (0xf << SSI_CR1_RTRG_BIT)
++ #define SSI_CR1_RTRG_1 (0 << SSI_CR1_RTRG_BIT)
++ #define SSI_CR1_RTRG_8 (1 << SSI_CR1_RTRG_BIT)
++ #define SSI_CR1_RTRG_16 (2 << SSI_CR1_RTRG_BIT)
++ #define SSI_CR1_RTRG_24 (3 << SSI_CR1_RTRG_BIT)
++ #define SSI_CR1_RTRG_32 (4 << SSI_CR1_RTRG_BIT)
++ #define SSI_CR1_RTRG_40 (5 << SSI_CR1_RTRG_BIT)
++ #define SSI_CR1_RTRG_48 (6 << SSI_CR1_RTRG_BIT)
++ #define SSI_CR1_RTRG_56 (7 << SSI_CR1_RTRG_BIT)
++ #define SSI_CR1_RTRG_64 (8 << SSI_CR1_RTRG_BIT)
++ #define SSI_CR1_RTRG_72 (9 << SSI_CR1_RTRG_BIT)
++ #define SSI_CR1_RTRG_80 (10<< SSI_CR1_RTRG_BIT)
++ #define SSI_CR1_RTRG_88 (11<< SSI_CR1_RTRG_BIT)
++ #define SSI_CR1_RTRG_96 (12<< SSI_CR1_RTRG_BIT)
++ #define SSI_CR1_RTRG_104 (13<< SSI_CR1_RTRG_BIT)
++ #define SSI_CR1_RTRG_112 (14<< SSI_CR1_RTRG_BIT)
++ #define SSI_CR1_RTRG_120 (15<< SSI_CR1_RTRG_BIT)
++#define SSI_CR1_FLEN_BIT 4
++#define SSI_CR1_FLEN_MASK (0xf << SSI_CR1_FLEN_BIT)
++ #define SSI_CR1_FLEN_2BIT (0x0 << SSI_CR1_FLEN_BIT)
++ #define SSI_CR1_FLEN_3BIT (0x1 << SSI_CR1_FLEN_BIT)
++ #define SSI_CR1_FLEN_4BIT (0x2 << SSI_CR1_FLEN_BIT)
++ #define SSI_CR1_FLEN_5BIT (0x3 << SSI_CR1_FLEN_BIT)
++ #define SSI_CR1_FLEN_6BIT (0x4 << SSI_CR1_FLEN_BIT)
++ #define SSI_CR1_FLEN_7BIT (0x5 << SSI_CR1_FLEN_BIT)
++ #define SSI_CR1_FLEN_8BIT (0x6 << SSI_CR1_FLEN_BIT)
++ #define SSI_CR1_FLEN_9BIT (0x7 << SSI_CR1_FLEN_BIT)
++ #define SSI_CR1_FLEN_10BIT (0x8 << SSI_CR1_FLEN_BIT)
++ #define SSI_CR1_FLEN_11BIT (0x9 << SSI_CR1_FLEN_BIT)
++ #define SSI_CR1_FLEN_12BIT (0xA << SSI_CR1_FLEN_BIT)
++ #define SSI_CR1_FLEN_13BIT (0xB << SSI_CR1_FLEN_BIT)
++ #define SSI_CR1_FLEN_14BIT (0xC << SSI_CR1_FLEN_BIT)
++ #define SSI_CR1_FLEN_15BIT (0xD << SSI_CR1_FLEN_BIT)
++ #define SSI_CR1_FLEN_16BIT (0xE << SSI_CR1_FLEN_BIT)
++ #define SSI_CR1_FLEN_17BIT (0xF << SSI_CR1_FLEN_BIT)
++#define SSI_CR1_PHA (1 << 1)
++#define SSI_CR1_POL (1 << 0)
++
++/* SSI Status Register (SSI_SR) */
++
++#define SSI_SR_TFIFONUM_BIT 16
++#define SSI_SR_TFIFONUM_MASK (0xff << SSI_SR_TFIFONUM_BIT)
++#define SSI_SR_RFIFONUM_BIT 8
++#define SSI_SR_RFIFONUM_MASK (0xff << SSI_SR_RFIFONUM_BIT)
++#define SSI_SR_END (1 << 7)
++#define SSI_SR_BUSY (1 << 6)
++#define SSI_SR_TFF (1 << 5)
++#define SSI_SR_RFE (1 << 4)
++#define SSI_SR_TFHE (1 << 3)
++#define SSI_SR_RFHF (1 << 2)
++#define SSI_SR_UNDR (1 << 1)
++#define SSI_SR_OVER (1 << 0)
++
++/* SSI Interval Time Control Register (SSI_ITR) */
++
++#define SSI_ITR_CNTCLK (1 << 15)
++#define SSI_ITR_IVLTM_BIT 0
++#define SSI_ITR_IVLTM_MASK (0x7fff << SSI_ITR_IVLTM_BIT)
++
++
++/*************************************************************************
++ * MSC
++ *************************************************************************/
++#define MSC_STRPCL (MSC_BASE + 0x000)
++#define MSC_STAT (MSC_BASE + 0x004)
++#define MSC_CLKRT (MSC_BASE + 0x008)
++#define MSC_CMDAT (MSC_BASE + 0x00C)
++#define MSC_RESTO (MSC_BASE + 0x010)
++#define MSC_RDTO (MSC_BASE + 0x014)
++#define MSC_BLKLEN (MSC_BASE + 0x018)
++#define MSC_NOB (MSC_BASE + 0x01C)
++#define MSC_SNOB (MSC_BASE + 0x020)
++#define MSC_IMASK (MSC_BASE + 0x024)
++#define MSC_IREG (MSC_BASE + 0x028)
++#define MSC_CMD (MSC_BASE + 0x02C)
++#define MSC_ARG (MSC_BASE + 0x030)
++#define MSC_RES (MSC_BASE + 0x034)
++#define MSC_RXFIFO (MSC_BASE + 0x038)
++#define MSC_TXFIFO (MSC_BASE + 0x03C)
++
++#define REG_MSC_STRPCL REG16(MSC_STRPCL)
++#define REG_MSC_STAT REG32(MSC_STAT)
++#define REG_MSC_CLKRT REG16(MSC_CLKRT)
++#define REG_MSC_CMDAT REG32(MSC_CMDAT)
++#define REG_MSC_RESTO REG16(MSC_RESTO)
++#define REG_MSC_RDTO REG16(MSC_RDTO)
++#define REG_MSC_BLKLEN REG16(MSC_BLKLEN)
++#define REG_MSC_NOB REG16(MSC_NOB)
++#define REG_MSC_SNOB REG16(MSC_SNOB)
++#define REG_MSC_IMASK REG16(MSC_IMASK)
++#define REG_MSC_IREG REG16(MSC_IREG)
++#define REG_MSC_CMD REG8(MSC_CMD)
++#define REG_MSC_ARG REG32(MSC_ARG)
++#define REG_MSC_RES REG16(MSC_RES)
++#define REG_MSC_RXFIFO REG32(MSC_RXFIFO)
++#define REG_MSC_TXFIFO REG32(MSC_TXFIFO)
++
++/* MSC Clock and Control Register (MSC_STRPCL) */
++
++#define MSC_STRPCL_EXIT_MULTIPLE (1 << 7)
++#define MSC_STRPCL_EXIT_TRANSFER (1 << 6)
++#define MSC_STRPCL_START_READWAIT (1 << 5)
++#define MSC_STRPCL_STOP_READWAIT (1 << 4)
++#define MSC_STRPCL_RESET (1 << 3)
++#define MSC_STRPCL_START_OP (1 << 2)
++#define MSC_STRPCL_CLOCK_CONTROL_BIT 0
++#define MSC_STRPCL_CLOCK_CONTROL_MASK (0x3 << MSC_STRPCL_CLOCK_CONTROL_BIT)
++ #define MSC_STRPCL_CLOCK_CONTROL_STOP (0x1 << MSC_STRPCL_CLOCK_CONTROL_BIT) /* Stop MMC/SD clock */
++ #define MSC_STRPCL_CLOCK_CONTROL_START (0x2 << MSC_STRPCL_CLOCK_CONTROL_BIT) /* Start MMC/SD clock */
++
++/* MSC Status Register (MSC_STAT) */
++
++#define MSC_STAT_IS_RESETTING (1 << 15)
++#define MSC_STAT_SDIO_INT_ACTIVE (1 << 14)
++#define MSC_STAT_PRG_DONE (1 << 13)
++#define MSC_STAT_DATA_TRAN_DONE (1 << 12)
++#define MSC_STAT_END_CMD_RES (1 << 11)
++#define MSC_STAT_DATA_FIFO_AFULL (1 << 10)
++#define MSC_STAT_IS_READWAIT (1 << 9)
++#define MSC_STAT_CLK_EN (1 << 8)
++#define MSC_STAT_DATA_FIFO_FULL (1 << 7)
++#define MSC_STAT_DATA_FIFO_EMPTY (1 << 6)
++#define MSC_STAT_CRC_RES_ERR (1 << 5)
++#define MSC_STAT_CRC_READ_ERROR (1 << 4)
++#define MSC_STAT_CRC_WRITE_ERROR_BIT 2
++#define MSC_STAT_CRC_WRITE_ERROR_MASK (0x3 << MSC_STAT_CRC_WRITE_ERROR_BIT)
++ #define MSC_STAT_CRC_WRITE_ERROR_NO (0 << MSC_STAT_CRC_WRITE_ERROR_BIT) /* No error on transmission of data */
++ #define MSC_STAT_CRC_WRITE_ERROR (1 << MSC_STAT_CRC_WRITE_ERROR_BIT) /* Card observed erroneous transmission of data */
++ #define MSC_STAT_CRC_WRITE_ERROR_NOSTS (2 << MSC_STAT_CRC_WRITE_ERROR_BIT) /* No CRC status is sent back */
++#define MSC_STAT_TIME_OUT_RES (1 << 1)
++#define MSC_STAT_TIME_OUT_READ (1 << 0)
++
++/* MSC Bus Clock Control Register (MSC_CLKRT) */
++
++#define MSC_CLKRT_CLK_RATE_BIT 0
++#define MSC_CLKRT_CLK_RATE_MASK (0x7 << MSC_CLKRT_CLK_RATE_BIT)
++ #define MSC_CLKRT_CLK_RATE_DIV_1 (0x0 << MSC_CLKRT_CLK_RATE_BIT) /* CLK_SRC */
++ #define MSC_CLKRT_CLK_RATE_DIV_2 (0x1 << MSC_CLKRT_CLK_RATE_BIT) /* 1/2 of CLK_SRC */
++ #define MSC_CLKRT_CLK_RATE_DIV_4 (0x2 << MSC_CLKRT_CLK_RATE_BIT) /* 1/4 of CLK_SRC */
++ #define MSC_CLKRT_CLK_RATE_DIV_8 (0x3 << MSC_CLKRT_CLK_RATE_BIT) /* 1/8 of CLK_SRC */
++ #define MSC_CLKRT_CLK_RATE_DIV_16 (0x4 << MSC_CLKRT_CLK_RATE_BIT) /* 1/16 of CLK_SRC */
++ #define MSC_CLKRT_CLK_RATE_DIV_32 (0x5 << MSC_CLKRT_CLK_RATE_BIT) /* 1/32 of CLK_SRC */
++ #define MSC_CLKRT_CLK_RATE_DIV_64 (0x6 << MSC_CLKRT_CLK_RATE_BIT) /* 1/64 of CLK_SRC */
++ #define MSC_CLKRT_CLK_RATE_DIV_128 (0x7 << MSC_CLKRT_CLK_RATE_BIT) /* 1/128 of CLK_SRC */
++
++/* MSC Command Sequence Control Register (MSC_CMDAT) */
++
++#define MSC_CMDAT_IO_ABORT (1 << 11)
++#define MSC_CMDAT_BUS_WIDTH_BIT 9
++#define MSC_CMDAT_BUS_WIDTH_MASK (0x3 << MSC_CMDAT_BUS_WIDTH_BIT)
++ #define MSC_CMDAT_BUS_WIDTH_1BIT (0x0 << MSC_CMDAT_BUS_WIDTH_BIT) /* 1-bit data bus */
++ #define MSC_CMDAT_BUS_WIDTH_4BIT (0x2 << MSC_CMDAT_BUS_WIDTH_BIT) /* 4-bit data bus */
++ #define CMDAT_BUS_WIDTH1 (0x0 << MSC_CMDAT_BUS_WIDTH_BIT)
++ #define CMDAT_BUS_WIDTH4 (0x2 << MSC_CMDAT_BUS_WIDTH_BIT)
++#define MSC_CMDAT_DMA_EN (1 << 8)
++#define MSC_CMDAT_INIT (1 << 7)
++#define MSC_CMDAT_BUSY (1 << 6)
++#define MSC_CMDAT_STREAM_BLOCK (1 << 5)
++#define MSC_CMDAT_WRITE (1 << 4)
++#define MSC_CMDAT_READ (0 << 4)
++#define MSC_CMDAT_DATA_EN (1 << 3)
++#define MSC_CMDAT_RESPONSE_BIT 0
++#define MSC_CMDAT_RESPONSE_MASK (0x7 << MSC_CMDAT_RESPONSE_BIT)
++ #define MSC_CMDAT_RESPONSE_NONE (0x0 << MSC_CMDAT_RESPONSE_BIT) /* No response */
++ #define MSC_CMDAT_RESPONSE_R1 (0x1 << MSC_CMDAT_RESPONSE_BIT) /* Format R1 and R1b */
++ #define MSC_CMDAT_RESPONSE_R2 (0x2 << MSC_CMDAT_RESPONSE_BIT) /* Format R2 */
++ #define MSC_CMDAT_RESPONSE_R3 (0x3 << MSC_CMDAT_RESPONSE_BIT) /* Format R3 */
++ #define MSC_CMDAT_RESPONSE_R4 (0x4 << MSC_CMDAT_RESPONSE_BIT) /* Format R4 */
++ #define MSC_CMDAT_RESPONSE_R5 (0x5 << MSC_CMDAT_RESPONSE_BIT) /* Format R5 */
++ #define MSC_CMDAT_RESPONSE_R6 (0x6 << MSC_CMDAT_RESPONSE_BIT) /* Format R6 */
++
++#define CMDAT_DMA_EN (1 << 8)
++#define CMDAT_INIT (1 << 7)
++#define CMDAT_BUSY (1 << 6)
++#define CMDAT_STREAM (1 << 5)
++#define CMDAT_WRITE (1 << 4)
++#define CMDAT_DATA_EN (1 << 3)
++
++/* MSC Interrupts Mask Register (MSC_IMASK) */
++
++#define MSC_IMASK_SDIO (1 << 7)
++#define MSC_IMASK_TXFIFO_WR_REQ (1 << 6)
++#define MSC_IMASK_RXFIFO_RD_REQ (1 << 5)
++#define MSC_IMASK_END_CMD_RES (1 << 2)
++#define MSC_IMASK_PRG_DONE (1 << 1)
++#define MSC_IMASK_DATA_TRAN_DONE (1 << 0)
++
++
++/* MSC Interrupts Status Register (MSC_IREG) */
++
++#define MSC_IREG_SDIO (1 << 7)
++#define MSC_IREG_TXFIFO_WR_REQ (1 << 6)
++#define MSC_IREG_RXFIFO_RD_REQ (1 << 5)
++#define MSC_IREG_END_CMD_RES (1 << 2)
++#define MSC_IREG_PRG_DONE (1 << 1)
++#define MSC_IREG_DATA_TRAN_DONE (1 << 0)
++
++
++/*************************************************************************
++ * EMC (External Memory Controller)
++ *************************************************************************/
++#define EMC_SMCR0 (EMC_BASE + 0x10) /* Static Memory Control Register 0 */
++#define EMC_SMCR1 (EMC_BASE + 0x14) /* Static Memory Control Register 1 */
++#define EMC_SMCR2 (EMC_BASE + 0x18) /* Static Memory Control Register 2 */
++#define EMC_SMCR3 (EMC_BASE + 0x1c) /* Static Memory Control Register 3 */
++#define EMC_SMCR4 (EMC_BASE + 0x20) /* Static Memory Control Register 4 */
++#define EMC_SACR0 (EMC_BASE + 0x30) /* Static Memory Bank 0 Addr Config Reg */
++#define EMC_SACR1 (EMC_BASE + 0x34) /* Static Memory Bank 1 Addr Config Reg */
++#define EMC_SACR2 (EMC_BASE + 0x38) /* Static Memory Bank 2 Addr Config Reg */
++#define EMC_SACR3 (EMC_BASE + 0x3c) /* Static Memory Bank 3 Addr Config Reg */
++#define EMC_SACR4 (EMC_BASE + 0x40) /* Static Memory Bank 4 Addr Config Reg */
++
++#define EMC_NFCSR (EMC_BASE + 0x050) /* NAND Flash Control/Status Register */
++#define EMC_NFECR (EMC_BASE + 0x100) /* NAND Flash ECC Control Register */
++#define EMC_NFECC (EMC_BASE + 0x104) /* NAND Flash ECC Data Register */
++#define EMC_NFPAR0 (EMC_BASE + 0x108) /* NAND Flash RS Parity 0 Register */
++#define EMC_NFPAR1 (EMC_BASE + 0x10c) /* NAND Flash RS Parity 1 Register */
++#define EMC_NFPAR2 (EMC_BASE + 0x110) /* NAND Flash RS Parity 2 Register */
++#define EMC_NFINTS (EMC_BASE + 0x114) /* NAND Flash Interrupt Status Register */
++#define EMC_NFINTE (EMC_BASE + 0x118) /* NAND Flash Interrupt Enable Register */
++#define EMC_NFERR0 (EMC_BASE + 0x11c) /* NAND Flash RS Error Report 0 Register */
++#define EMC_NFERR1 (EMC_BASE + 0x120) /* NAND Flash RS Error Report 1 Register */
++#define EMC_NFERR2 (EMC_BASE + 0x124) /* NAND Flash RS Error Report 2 Register */
++#define EMC_NFERR3 (EMC_BASE + 0x128) /* NAND Flash RS Error Report 3 Register */
++
++#define EMC_DMCR (EMC_BASE + 0x80) /* DRAM Control Register */
++#define EMC_RTCSR (EMC_BASE + 0x84) /* Refresh Time Control/Status Register */
++#define EMC_RTCNT (EMC_BASE + 0x88) /* Refresh Timer Counter */
++#define EMC_RTCOR (EMC_BASE + 0x8c) /* Refresh Time Constant Register */
++#define EMC_DMAR0 (EMC_BASE + 0x90) /* SDRAM Bank 0 Addr Config Register */
++#define EMC_SDMR0 (EMC_BASE + 0xa000) /* Mode Register of SDRAM bank 0 */
++
++
++#define REG_EMC_SMCR0 REG32(EMC_SMCR0)
++#define REG_EMC_SMCR1 REG32(EMC_SMCR1)
++#define REG_EMC_SMCR2 REG32(EMC_SMCR2)
++#define REG_EMC_SMCR3 REG32(EMC_SMCR3)
++#define REG_EMC_SMCR4 REG32(EMC_SMCR4)
++#define REG_EMC_SACR0 REG32(EMC_SACR0)
++#define REG_EMC_SACR1 REG32(EMC_SACR1)
++#define REG_EMC_SACR2 REG32(EMC_SACR2)
++#define REG_EMC_SACR3 REG32(EMC_SACR3)
++#define REG_EMC_SACR4 REG32(EMC_SACR4)
++
++#define REG_EMC_NFCSR REG32(EMC_NFCSR)
++#define REG_EMC_NFECR REG32(EMC_NFECR)
++#define REG_EMC_NFECC REG32(EMC_NFECC)
++#define REG_EMC_NFPAR0 REG32(EMC_NFPAR0)
++#define REG_EMC_NFPAR1 REG32(EMC_NFPAR1)
++#define REG_EMC_NFPAR2 REG32(EMC_NFPAR2)
++#define REG_EMC_NFINTS REG32(EMC_NFINTS)
++#define REG_EMC_NFINTE REG32(EMC_NFINTE)
++#define REG_EMC_NFERR0 REG32(EMC_NFERR0)
++#define REG_EMC_NFERR1 REG32(EMC_NFERR1)
++#define REG_EMC_NFERR2 REG32(EMC_NFERR2)
++#define REG_EMC_NFERR3 REG32(EMC_NFERR3)
++
++#define REG_EMC_DMCR REG32(EMC_DMCR)
++#define REG_EMC_RTCSR REG16(EMC_RTCSR)
++#define REG_EMC_RTCNT REG16(EMC_RTCNT)
++#define REG_EMC_RTCOR REG16(EMC_RTCOR)
++#define REG_EMC_DMAR0 REG32(EMC_DMAR0)
++
++/* Static Memory Control Register */
++#define EMC_SMCR_STRV_BIT 24
++#define EMC_SMCR_STRV_MASK (0x0f << EMC_SMCR_STRV_BIT)
++#define EMC_SMCR_TAW_BIT 20
++#define EMC_SMCR_TAW_MASK (0x0f << EMC_SMCR_TAW_BIT)
++#define EMC_SMCR_TBP_BIT 16
++#define EMC_SMCR_TBP_MASK (0x0f << EMC_SMCR_TBP_BIT)
++#define EMC_SMCR_TAH_BIT 12
++#define EMC_SMCR_TAH_MASK (0x07 << EMC_SMCR_TAH_BIT)
++#define EMC_SMCR_TAS_BIT 8
++#define EMC_SMCR_TAS_MASK (0x07 << EMC_SMCR_TAS_BIT)
++#define EMC_SMCR_BW_BIT 6
++#define EMC_SMCR_BW_MASK (0x03 << EMC_SMCR_BW_BIT)
++ #define EMC_SMCR_BW_8BIT (0 << EMC_SMCR_BW_BIT)
++ #define EMC_SMCR_BW_16BIT (1 << EMC_SMCR_BW_BIT)
++ #define EMC_SMCR_BW_32BIT (2 << EMC_SMCR_BW_BIT)
++#define EMC_SMCR_BCM (1 << 3)
++#define EMC_SMCR_BL_BIT 1
++#define EMC_SMCR_BL_MASK (0x03 << EMC_SMCR_BL_BIT)
++ #define EMC_SMCR_BL_4 (0 << EMC_SMCR_BL_BIT)
++ #define EMC_SMCR_BL_8 (1 << EMC_SMCR_BL_BIT)
++ #define EMC_SMCR_BL_16 (2 << EMC_SMCR_BL_BIT)
++ #define EMC_SMCR_BL_32 (3 << EMC_SMCR_BL_BIT)
++#define EMC_SMCR_SMT (1 << 0)
++
++/* Static Memory Bank Addr Config Reg */
++#define EMC_SACR_BASE_BIT 8
++#define EMC_SACR_BASE_MASK (0xff << EMC_SACR_BASE_BIT)
++#define EMC_SACR_MASK_BIT 0
++#define EMC_SACR_MASK_MASK (0xff << EMC_SACR_MASK_BIT)
++
++/* NAND Flash Control/Status Register */
++#define EMC_NFCSR_NFCE4 (1 << 7) /* NAND Flash Enable */
++#define EMC_NFCSR_NFE4 (1 << 6) /* NAND Flash FCE# Assertion Enable */
++#define EMC_NFCSR_NFCE3 (1 << 5)
++#define EMC_NFCSR_NFE3 (1 << 4)
++#define EMC_NFCSR_NFCE2 (1 << 3)
++#define EMC_NFCSR_NFE2 (1 << 2)
++#define EMC_NFCSR_NFCE1 (1 << 1)
++#define EMC_NFCSR_NFE1 (1 << 0)
++
++/* NAND Flash ECC Control Register */
++#define EMC_NFECR_PRDY (1 << 4) /* Parity Ready */
++#define EMC_NFECR_RS_DECODING (0 << 3) /* RS is in decoding phase */
++#define EMC_NFECR_RS_ENCODING (1 << 3) /* RS is in encoding phase */
++#define EMC_NFECR_HAMMING (0 << 2) /* Select HAMMING Correction Algorithm */
++#define EMC_NFECR_RS (1 << 2) /* Select RS Correction Algorithm */
++#define EMC_NFECR_ERST (1 << 1) /* ECC Reset */
++#define EMC_NFECR_ECCE (1 << 0) /* ECC Enable */
++
++/* NAND Flash ECC Data Register */
++#define EMC_NFECC_ECC2_BIT 16
++#define EMC_NFECC_ECC2_MASK (0xff << EMC_NFECC_ECC2_BIT)
++#define EMC_NFECC_ECC1_BIT 8
++#define EMC_NFECC_ECC1_MASK (0xff << EMC_NFECC_ECC1_BIT)
++#define EMC_NFECC_ECC0_BIT 0
++#define EMC_NFECC_ECC0_MASK (0xff << EMC_NFECC_ECC0_BIT)
++
++/* NAND Flash Interrupt Status Register */
++#define EMC_NFINTS_ERRCNT_BIT 29 /* Error Count */
++#define EMC_NFINTS_ERRCNT_MASK (0x7 << EMC_NFINTS_ERRCNT_BIT)
++#define EMC_NFINTS_PADF (1 << 4) /* Padding Finished */
++#define EMC_NFINTS_DECF (1 << 3) /* Decoding Finished */
++#define EMC_NFINTS_ENCF (1 << 2) /* Encoding Finished */
++#define EMC_NFINTS_UNCOR (1 << 1) /* Uncorrectable Error Occurred */
++#define EMC_NFINTS_ERR (1 << 0) /* Error Occurred */
++
++/* NAND Flash Interrupt Enable Register */
++#define EMC_NFINTE_PADFE (1 << 4) /* Padding Finished Interrupt Enable */
++#define EMC_NFINTE_DECFE (1 << 3) /* Decoding Finished Interrupt Enable */
++#define EMC_NFINTE_ENCFE (1 << 2) /* Encoding Finished Interrupt Enable */
++#define EMC_NFINTE_UNCORE (1 << 1) /* Uncorrectable Error Occurred Intr Enable */
++#define EMC_NFINTE_ERRE (1 << 0) /* Error Occurred Interrupt */
++
++/* NAND Flash RS Error Report Register */
++#define EMC_NFERR_INDEX_BIT 16 /* Error Symbol Index */
++#define EMC_NFERR_INDEX_MASK (0x1ff << EMC_NFERR_INDEX_BIT)
++#define EMC_NFERR_MASK_BIT 0 /* Error Symbol Value */
++#define EMC_NFERR_MASK_MASK (0x1ff << EMC_NFERR_MASK_BIT)
++
++
++/* DRAM Control Register */
++#define EMC_DMCR_BW_BIT 31
++#define EMC_DMCR_BW (1 << EMC_DMCR_BW_BIT)
++#define EMC_DMCR_CA_BIT 26
++#define EMC_DMCR_CA_MASK (0x07 << EMC_DMCR_CA_BIT)
++ #define EMC_DMCR_CA_8 (0 << EMC_DMCR_CA_BIT)
++ #define EMC_DMCR_CA_9 (1 << EMC_DMCR_CA_BIT)
++ #define EMC_DMCR_CA_10 (2 << EMC_DMCR_CA_BIT)
++ #define EMC_DMCR_CA_11 (3 << EMC_DMCR_CA_BIT)
++ #define EMC_DMCR_CA_12 (4 << EMC_DMCR_CA_BIT)
++#define EMC_DMCR_RMODE (1 << 25)
++#define EMC_DMCR_RFSH (1 << 24)
++#define EMC_DMCR_MRSET (1 << 23)
++#define EMC_DMCR_RA_BIT 20
++#define EMC_DMCR_RA_MASK (0x03 << EMC_DMCR_RA_BIT)
++ #define EMC_DMCR_RA_11 (0 << EMC_DMCR_RA_BIT)
++ #define EMC_DMCR_RA_12 (1 << EMC_DMCR_RA_BIT)
++ #define EMC_DMCR_RA_13 (2 << EMC_DMCR_RA_BIT)
++#define EMC_DMCR_BA_BIT 19
++#define EMC_DMCR_BA (1 << EMC_DMCR_BA_BIT)
++#define EMC_DMCR_PDM (1 << 18)
++#define EMC_DMCR_EPIN (1 << 17)
++#define EMC_DMCR_TRAS_BIT 13
++#define EMC_DMCR_TRAS_MASK (0x07 << EMC_DMCR_TRAS_BIT)
++#define EMC_DMCR_RCD_BIT 11
++#define EMC_DMCR_RCD_MASK (0x03 << EMC_DMCR_RCD_BIT)
++#define EMC_DMCR_TPC_BIT 8
++#define EMC_DMCR_TPC_MASK (0x07 << EMC_DMCR_TPC_BIT)
++#define EMC_DMCR_TRWL_BIT 5
++#define EMC_DMCR_TRWL_MASK (0x03 << EMC_DMCR_TRWL_BIT)
++#define EMC_DMCR_TRC_BIT 2
++#define EMC_DMCR_TRC_MASK (0x07 << EMC_DMCR_TRC_BIT)
++#define EMC_DMCR_TCL_BIT 0
++#define EMC_DMCR_TCL_MASK (0x03 << EMC_DMCR_TCL_BIT)
++
++/* Refresh Time Control/Status Register */
++#define EMC_RTCSR_CMF (1 << 7)
++#define EMC_RTCSR_CKS_BIT 0
++#define EMC_RTCSR_CKS_MASK (0x07 << EMC_RTCSR_CKS_BIT)
++ #define EMC_RTCSR_CKS_DISABLE (0 << EMC_RTCSR_CKS_BIT)
++ #define EMC_RTCSR_CKS_4 (1 << EMC_RTCSR_CKS_BIT)
++ #define EMC_RTCSR_CKS_16 (2 << EMC_RTCSR_CKS_BIT)
++ #define EMC_RTCSR_CKS_64 (3 << EMC_RTCSR_CKS_BIT)
++ #define EMC_RTCSR_CKS_256 (4 << EMC_RTCSR_CKS_BIT)
++ #define EMC_RTCSR_CKS_1024 (5 << EMC_RTCSR_CKS_BIT)
++ #define EMC_RTCSR_CKS_2048 (6 << EMC_RTCSR_CKS_BIT)
++ #define EMC_RTCSR_CKS_4096 (7 << EMC_RTCSR_CKS_BIT)
++
++/* SDRAM Bank Address Configuration Register */
++#define EMC_DMAR_BASE_BIT 8
++#define EMC_DMAR_BASE_MASK (0xff << EMC_DMAR_BASE_BIT)
++#define EMC_DMAR_MASK_BIT 0
++#define EMC_DMAR_MASK_MASK (0xff << EMC_DMAR_MASK_BIT)
++
++/* Mode Register of SDRAM bank 0 */
++#define EMC_SDMR_BM (1 << 9) /* Write Burst Mode */
++#define EMC_SDMR_OM_BIT 7 /* Operating Mode */
++#define EMC_SDMR_OM_MASK (3 << EMC_SDMR_OM_BIT)
++ #define EMC_SDMR_OM_NORMAL (0 << EMC_SDMR_OM_BIT)
++#define EMC_SDMR_CAS_BIT 4 /* CAS Latency */
++#define EMC_SDMR_CAS_MASK (7 << EMC_SDMR_CAS_BIT)
++ #define EMC_SDMR_CAS_1 (1 << EMC_SDMR_CAS_BIT)
++ #define EMC_SDMR_CAS_2 (2 << EMC_SDMR_CAS_BIT)
++ #define EMC_SDMR_CAS_3 (3 << EMC_SDMR_CAS_BIT)
++#define EMC_SDMR_BT_BIT 3 /* Burst Type */
++#define EMC_SDMR_BT_MASK (1 << EMC_SDMR_BT_BIT)
++ #define EMC_SDMR_BT_SEQ (0 << EMC_SDMR_BT_BIT) /* Sequential */
++ #define EMC_SDMR_BT_INT (1 << EMC_SDMR_BT_BIT) /* Interleave */
++#define EMC_SDMR_BL_BIT 0 /* Burst Length */
++#define EMC_SDMR_BL_MASK (7 << EMC_SDMR_BL_BIT)
++ #define EMC_SDMR_BL_1 (0 << EMC_SDMR_BL_BIT)
++ #define EMC_SDMR_BL_2 (1 << EMC_SDMR_BL_BIT)
++ #define EMC_SDMR_BL_4 (2 << EMC_SDMR_BL_BIT)
++ #define EMC_SDMR_BL_8 (3 << EMC_SDMR_BL_BIT)
++
++#define EMC_SDMR_CAS2_16BIT \
++ (EMC_SDMR_CAS_2 | EMC_SDMR_BT_SEQ | EMC_SDMR_BL_2)
++#define EMC_SDMR_CAS2_32BIT \
++ (EMC_SDMR_CAS_2 | EMC_SDMR_BT_SEQ | EMC_SDMR_BL_4)
++#define EMC_SDMR_CAS3_16BIT \
++ (EMC_SDMR_CAS_3 | EMC_SDMR_BT_SEQ | EMC_SDMR_BL_2)
++#define EMC_SDMR_CAS3_32BIT \
++ (EMC_SDMR_CAS_3 | EMC_SDMR_BT_SEQ | EMC_SDMR_BL_4)
++
++
++/*************************************************************************
++ * CIM
++ *************************************************************************/
++#define CIM_CFG (CIM_BASE + 0x0000)
++#define CIM_CTRL (CIM_BASE + 0x0004)
++#define CIM_STATE (CIM_BASE + 0x0008)
++#define CIM_IID (CIM_BASE + 0x000C)
++#define CIM_RXFIFO (CIM_BASE + 0x0010)
++#define CIM_DA (CIM_BASE + 0x0020)
++#define CIM_FA (CIM_BASE + 0x0024)
++#define CIM_FID (CIM_BASE + 0x0028)
++#define CIM_CMD (CIM_BASE + 0x002C)
++
++#define REG_CIM_CFG REG32(CIM_CFG)
++#define REG_CIM_CTRL REG32(CIM_CTRL)
++#define REG_CIM_STATE REG32(CIM_STATE)
++#define REG_CIM_IID REG32(CIM_IID)
++#define REG_CIM_RXFIFO REG32(CIM_RXFIFO)
++#define REG_CIM_DA REG32(CIM_DA)
++#define REG_CIM_FA REG32(CIM_FA)
++#define REG_CIM_FID REG32(CIM_FID)
++#define REG_CIM_CMD REG32(CIM_CMD)
++
++/* CIM Configuration Register (CIM_CFG) */
++
++#define CIM_CFG_INV_DAT (1 << 15)
++#define CIM_CFG_VSP (1 << 14)
++#define CIM_CFG_HSP (1 << 13)
++#define CIM_CFG_PCP (1 << 12)
++#define CIM_CFG_DUMMY_ZERO (1 << 9)
++#define CIM_CFG_EXT_VSYNC (1 << 8)
++#define CIM_CFG_PACK_BIT 4
++#define CIM_CFG_PACK_MASK (0x7 << CIM_CFG_PACK_BIT)
++ #define CIM_CFG_PACK_0 (0 << CIM_CFG_PACK_BIT)
++ #define CIM_CFG_PACK_1 (1 << CIM_CFG_PACK_BIT)
++ #define CIM_CFG_PACK_2 (2 << CIM_CFG_PACK_BIT)
++ #define CIM_CFG_PACK_3 (3 << CIM_CFG_PACK_BIT)
++ #define CIM_CFG_PACK_4 (4 << CIM_CFG_PACK_BIT)
++ #define CIM_CFG_PACK_5 (5 << CIM_CFG_PACK_BIT)
++ #define CIM_CFG_PACK_6 (6 << CIM_CFG_PACK_BIT)
++ #define CIM_CFG_PACK_7 (7 << CIM_CFG_PACK_BIT)
++#define CIM_CFG_DSM_BIT 0
++#define CIM_CFG_DSM_MASK (0x3 << CIM_CFG_DSM_BIT)
++ #define CIM_CFG_DSM_CPM (0 << CIM_CFG_DSM_BIT) /* CCIR656 Progressive Mode */
++ #define CIM_CFG_DSM_CIM (1 << CIM_CFG_DSM_BIT) /* CCIR656 Interlace Mode */
++ #define CIM_CFG_DSM_GCM (2 << CIM_CFG_DSM_BIT) /* Gated Clock Mode */
++ #define CIM_CFG_DSM_NGCM (3 << CIM_CFG_DSM_BIT) /* Non-Gated Clock Mode */
++
++/* CIM Control Register (CIM_CTRL) */
++
++#define CIM_CTRL_MCLKDIV_BIT 24
++#define CIM_CTRL_MCLKDIV_MASK (0xff << CIM_CTRL_MCLKDIV_BIT)
++#define CIM_CTRL_FRC_BIT 16
++#define CIM_CTRL_FRC_MASK (0xf << CIM_CTRL_FRC_BIT)
++ #define CIM_CTRL_FRC_1 (0x0 << CIM_CTRL_FRC_BIT) /* Sample every frame */
++ #define CIM_CTRL_FRC_2 (0x1 << CIM_CTRL_FRC_BIT) /* Sample 1/2 frame */
++ #define CIM_CTRL_FRC_3 (0x2 << CIM_CTRL_FRC_BIT) /* Sample 1/3 frame */
++ #define CIM_CTRL_FRC_4 (0x3 << CIM_CTRL_FRC_BIT) /* Sample 1/4 frame */
++ #define CIM_CTRL_FRC_5 (0x4 << CIM_CTRL_FRC_BIT) /* Sample 1/5 frame */
++ #define CIM_CTRL_FRC_6 (0x5 << CIM_CTRL_FRC_BIT) /* Sample 1/6 frame */
++ #define CIM_CTRL_FRC_7 (0x6 << CIM_CTRL_FRC_BIT) /* Sample 1/7 frame */
++ #define CIM_CTRL_FRC_8 (0x7 << CIM_CTRL_FRC_BIT) /* Sample 1/8 frame */
++ #define CIM_CTRL_FRC_9 (0x8 << CIM_CTRL_FRC_BIT) /* Sample 1/9 frame */
++ #define CIM_CTRL_FRC_10 (0x9 << CIM_CTRL_FRC_BIT) /* Sample 1/10 frame */
++ #define CIM_CTRL_FRC_11 (0xA << CIM_CTRL_FRC_BIT) /* Sample 1/11 frame */
++ #define CIM_CTRL_FRC_12 (0xB << CIM_CTRL_FRC_BIT) /* Sample 1/12 frame */
++ #define CIM_CTRL_FRC_13 (0xC << CIM_CTRL_FRC_BIT) /* Sample 1/13 frame */
++ #define CIM_CTRL_FRC_14 (0xD << CIM_CTRL_FRC_BIT) /* Sample 1/14 frame */
++ #define CIM_CTRL_FRC_15 (0xE << CIM_CTRL_FRC_BIT) /* Sample 1/15 frame */
++ #define CIM_CTRL_FRC_16 (0xF << CIM_CTRL_FRC_BIT) /* Sample 1/16 frame */
++#define CIM_CTRL_VDDM (1 << 13)
++#define CIM_CTRL_DMA_SOFM (1 << 12)
++#define CIM_CTRL_DMA_EOFM (1 << 11)
++#define CIM_CTRL_DMA_STOPM (1 << 10)
++#define CIM_CTRL_RXF_TRIGM (1 << 9)
++#define CIM_CTRL_RXF_OFM (1 << 8)
++#define CIM_CTRL_RXF_TRIG_BIT 4
++#define CIM_CTRL_RXF_TRIG_MASK (0x7 << CIM_CTRL_RXF_TRIG_BIT)
++ #define CIM_CTRL_RXF_TRIG_4 (0 << CIM_CTRL_RXF_TRIG_BIT) /* RXFIFO Trigger Value is 4 */
++ #define CIM_CTRL_RXF_TRIG_8 (1 << CIM_CTRL_RXF_TRIG_BIT) /* RXFIFO Trigger Value is 8 */
++ #define CIM_CTRL_RXF_TRIG_12 (2 << CIM_CTRL_RXF_TRIG_BIT) /* RXFIFO Trigger Value is 12 */
++ #define CIM_CTRL_RXF_TRIG_16 (3 << CIM_CTRL_RXF_TRIG_BIT) /* RXFIFO Trigger Value is 16 */
++ #define CIM_CTRL_RXF_TRIG_20 (4 << CIM_CTRL_RXF_TRIG_BIT) /* RXFIFO Trigger Value is 20 */
++ #define CIM_CTRL_RXF_TRIG_24 (5 << CIM_CTRL_RXF_TRIG_BIT) /* RXFIFO Trigger Value is 24 */
++ #define CIM_CTRL_RXF_TRIG_28 (6 << CIM_CTRL_RXF_TRIG_BIT) /* RXFIFO Trigger Value is 28 */
++ #define CIM_CTRL_RXF_TRIG_32 (7 << CIM_CTRL_RXF_TRIG_BIT) /* RXFIFO Trigger Value is 32 */
++#define CIM_CTRL_DMA_EN (1 << 2)
++#define CIM_CTRL_RXF_RST (1 << 1)
++#define CIM_CTRL_ENA (1 << 0)
++
++/* CIM State Register (CIM_STATE) */
++
++#define CIM_STATE_DMA_SOF (1 << 6)
++#define CIM_STATE_DMA_EOF (1 << 5)
++#define CIM_STATE_DMA_STOP (1 << 4)
++#define CIM_STATE_RXF_OF (1 << 3)
++#define CIM_STATE_RXF_TRIG (1 << 2)
++#define CIM_STATE_RXF_EMPTY (1 << 1)
++#define CIM_STATE_VDD (1 << 0)
++
++/* CIM DMA Command Register (CIM_CMD) */
++
++#define CIM_CMD_SOFINT (1 << 31)
++#define CIM_CMD_EOFINT (1 << 30)
++#define CIM_CMD_STOP (1 << 28)
++#define CIM_CMD_LEN_BIT 0
++#define CIM_CMD_LEN_MASK (0xffffff << CIM_CMD_LEN_BIT)
++
++
++/*************************************************************************
++ * SADC (Smart A/D Controller)
++ *************************************************************************/
++
++#define SADC_ENA (SADC_BASE + 0x00) /* ADC Enable Register */
++#define SADC_CFG (SADC_BASE + 0x04) /* ADC Configure Register */
++#define SADC_CTRL (SADC_BASE + 0x08) /* ADC Control Register */
++#define SADC_STATE (SADC_BASE + 0x0C) /* ADC Status Register*/
++#define SADC_SAMETIME (SADC_BASE + 0x10) /* ADC Same Point Time Register */
++#define SADC_WAITTIME (SADC_BASE + 0x14) /* ADC Wait Time Register */
++#define SADC_TSDAT (SADC_BASE + 0x18) /* ADC Touch Screen Data Register */
++#define SADC_BATDAT (SADC_BASE + 0x1C) /* ADC PBAT Data Register */
++#define SADC_SADDAT (SADC_BASE + 0x20) /* ADC SADCIN Data Register */
++
++#define REG_SADC_ENA REG8(SADC_ENA)
++#define REG_SADC_CFG REG32(SADC_CFG)
++#define REG_SADC_CTRL REG8(SADC_CTRL)
++#define REG_SADC_STATE REG8(SADC_STATE)
++#define REG_SADC_SAMETIME REG16(SADC_SAMETIME)
++#define REG_SADC_WAITTIME REG16(SADC_WAITTIME)
++#define REG_SADC_TSDAT REG32(SADC_TSDAT)
++#define REG_SADC_BATDAT REG16(SADC_BATDAT)
++#define REG_SADC_SADDAT REG16(SADC_SADDAT)
++
++/* ADC Enable Register */
++#define SADC_ENA_ADEN (1 << 7) /* Touch Screen Enable */
++#define SADC_ENA_TSEN (1 << 2) /* Touch Screen Enable */
++#define SADC_ENA_PBATEN (1 << 1) /* PBAT Enable */
++#define SADC_ENA_SADCINEN (1 << 0) /* SADCIN Enable */
++
++/* ADC Configure Register */
++#define SADC_CFG_EXIN (1 << 30)
++#define SADC_CFG_CLKOUT_NUM_BIT 16
++#define SADC_CFG_CLKOUT_NUM_MASK (0x7 << SADC_CFG_CLKOUT_NUM_BIT)
++#define SADC_CFG_TS_DMA (1 << 15) /* Touch Screen DMA Enable */
++#define SADC_CFG_XYZ_BIT 13 /* XYZ selection */
++#define SADC_CFG_XYZ_MASK (0x3 << SADC_CFG_XYZ_BIT)
++ #define SADC_CFG_XY (0 << SADC_CFG_XYZ_BIT)
++ #define SADC_CFG_XYZ (1 << SADC_CFG_XYZ_BIT)
++ #define SADC_CFG_XYZ1Z2 (2 << SADC_CFG_XYZ_BIT)
++#define SADC_CFG_SNUM_BIT 10 /* Sample Number */
++#define SADC_CFG_SNUM_MASK (0x7 << SADC_CFG_SNUM_BIT)
++ #define SADC_CFG_SNUM_1 (0x0 << SADC_CFG_SNUM_BIT)
++ #define SADC_CFG_SNUM_2 (0x1 << SADC_CFG_SNUM_BIT)
++ #define SADC_CFG_SNUM_3 (0x2 << SADC_CFG_SNUM_BIT)
++ #define SADC_CFG_SNUM_4 (0x3 << SADC_CFG_SNUM_BIT)
++ #define SADC_CFG_SNUM_5 (0x4 << SADC_CFG_SNUM_BIT)
++ #define SADC_CFG_SNUM_6 (0x5 << SADC_CFG_SNUM_BIT)
++ #define SADC_CFG_SNUM_8 (0x6 << SADC_CFG_SNUM_BIT)
++ #define SADC_CFG_SNUM_9 (0x7 << SADC_CFG_SNUM_BIT)
++#define SADC_CFG_CLKDIV_BIT 5 /* AD Converter frequency clock divider */
++#define SADC_CFG_CLKDIV_MASK (0x1f << SADC_CFG_CLKDIV_BIT)
++#define SADC_CFG_PBAT_HIGH (0 << 4) /* PBAT >= 2.5V */
++#define SADC_CFG_PBAT_LOW (1 << 4) /* PBAT < 2.5V */
++#define SADC_CFG_CMD_BIT 0 /* ADC Command */
++#define SADC_CFG_CMD_MASK (0xf << SADC_CFG_CMD_BIT)
++ #define SADC_CFG_CMD_X_SE (0x0 << SADC_CFG_CMD_BIT) /* X Single-End */
++ #define SADC_CFG_CMD_Y_SE (0x1 << SADC_CFG_CMD_BIT) /* Y Single-End */
++ #define SADC_CFG_CMD_X_DIFF (0x2 << SADC_CFG_CMD_BIT) /* X Differential */
++ #define SADC_CFG_CMD_Y_DIFF (0x3 << SADC_CFG_CMD_BIT) /* Y Differential */
++ #define SADC_CFG_CMD_Z1_DIFF (0x4 << SADC_CFG_CMD_BIT) /* Z1 Differential */
++ #define SADC_CFG_CMD_Z2_DIFF (0x5 << SADC_CFG_CMD_BIT) /* Z2 Differential */
++ #define SADC_CFG_CMD_Z3_DIFF (0x6 << SADC_CFG_CMD_BIT) /* Z3 Differential */
++ #define SADC_CFG_CMD_Z4_DIFF (0x7 << SADC_CFG_CMD_BIT) /* Z4 Differential */
++ #define SADC_CFG_CMD_TP_SE (0x8 << SADC_CFG_CMD_BIT) /* Touch Pressure */
++ #define SADC_CFG_CMD_PBATH_SE (0x9 << SADC_CFG_CMD_BIT) /* PBAT >= 2.5V */
++ #define SADC_CFG_CMD_PBATL_SE (0xa << SADC_CFG_CMD_BIT) /* PBAT < 2.5V */
++ #define SADC_CFG_CMD_SADCIN_SE (0xb << SADC_CFG_CMD_BIT) /* Measure SADCIN */
++ #define SADC_CFG_CMD_INT_PEN (0xc << SADC_CFG_CMD_BIT) /* INT_PEN Enable */
++
++/* ADC Control Register */
++#define SADC_CTRL_PENDM (1 << 4) /* Pen Down Interrupt Mask */
++#define SADC_CTRL_PENUM (1 << 3) /* Pen Up Interrupt Mask */
++#define SADC_CTRL_TSRDYM (1 << 2) /* Touch Screen Data Ready Interrupt Mask */
++#define SADC_CTRL_PBATRDYM (1 << 1) /* PBAT Data Ready Interrupt Mask */
++#define SADC_CTRL_SRDYM (1 << 0) /* SADCIN Data Ready Interrupt Mask */
++
++/* ADC Status Register */
++#define SADC_STATE_TSBUSY (1 << 7) /* TS A/D is working */
++#define SADC_STATE_PBATBUSY (1 << 6) /* PBAT A/D is working */
++#define SADC_STATE_SBUSY (1 << 5) /* SADCIN A/D is working */
++#define SADC_STATE_PEND (1 << 4) /* Pen Down Interrupt Flag */
++#define SADC_STATE_PENU (1 << 3) /* Pen Up Interrupt Flag */
++#define SADC_STATE_TSRDY (1 << 2) /* Touch Screen Data Ready Interrupt Flag */
++#define SADC_STATE_PBATRDY (1 << 1) /* PBAT Data Ready Interrupt Flag */
++#define SADC_STATE_SRDY (1 << 0) /* SADCIN Data Ready Interrupt Flag */
++
++/* ADC Touch Screen Data Register */
++#define SADC_TSDAT_DATA0_BIT 0
++#define SADC_TSDAT_DATA0_MASK (0xfff << SADC_TSDAT_DATA0_BIT)
++#define SADC_TSDAT_TYPE0 (1 << 15)
++#define SADC_TSDAT_DATA1_BIT 16
++#define SADC_TSDAT_DATA1_MASK (0xfff << SADC_TSDAT_DATA1_BIT)
++#define SADC_TSDAT_TYPE1 (1 << 31)
++
++
++/*************************************************************************
++ * SLCD (Smart LCD Controller)
++ *************************************************************************/
++
++#define SLCD_CFG (SLCD_BASE + 0xA0) /* SLCD Configure Register */
++#define SLCD_CTRL (SLCD_BASE + 0xA4) /* SLCD Control Register */
++#define SLCD_STATE (SLCD_BASE + 0xA8) /* SLCD Status Register */
++#define SLCD_DATA (SLCD_BASE + 0xAC) /* SLCD Data Register */
++#define SLCD_FIFO (SLCD_BASE + 0xB0) /* SLCD FIFO Register */
++
++#define REG_SLCD_CFG REG32(SLCD_CFG)
++#define REG_SLCD_CTRL REG8(SLCD_CTRL)
++#define REG_SLCD_STATE REG8(SLCD_STATE)
++#define REG_SLCD_DATA REG32(SLCD_DATA)
++#define REG_SLCD_FIFO REG32(SLCD_FIFO)
++
++/* SLCD Configure Register */
++#define SLCD_CFG_BURST_BIT 14
++#define SLCD_CFG_BURST_MASK (0x3 << SLCD_CFG_BURST_BIT)
++ #define SLCD_CFG_BURST_4_WORD (0 << SLCD_CFG_BURST_BIT)
++ #define SLCD_CFG_BURST_8_WORD (1 << SLCD_CFG_BURST_BIT)
++#define SLCD_CFG_DWIDTH_BIT 10
++#define SLCD_CFG_DWIDTH_MASK (0x7 << SLCD_CFG_DWIDTH_BIT)
++ #define SLCD_CFG_DWIDTH_18 (0 << SLCD_CFG_DWIDTH_BIT)
++ #define SLCD_CFG_DWIDTH_16 (1 << SLCD_CFG_DWIDTH_BIT)
++ #define SLCD_CFG_DWIDTH_8_x3 (2 << SLCD_CFG_DWIDTH_BIT)
++ #define SLCD_CFG_DWIDTH_8_x2 (3 << SLCD_CFG_DWIDTH_BIT)
++ #define SLCD_CFG_DWIDTH_8_x1 (4 << SLCD_CFG_DWIDTH_BIT)
++ #define SLCD_CFG_DWIDTH_9_x2 (7 << SLCD_CFG_DWIDTH_BIT)
++#define SLCD_CFG_CWIDTH_16BIT (0 << 8)
++#define SLCD_CFG_CWIDTH_8BIT (1 << 8)
++#define SLCD_CFG_CWIDTH_18BIT (2 << 8)
++#define SLCD_CFG_CS_ACTIVE_LOW (0 << 4)
++#define SLCD_CFG_CS_ACTIVE_HIGH (1 << 4)
++#define SLCD_CFG_RS_CMD_LOW (0 << 3)
++#define SLCD_CFG_RS_CMD_HIGH (1 << 3)
++#define SLCD_CFG_CLK_ACTIVE_FALLING (0 << 1)
++#define SLCD_CFG_CLK_ACTIVE_RISING (1 << 1)
++#define SLCD_CFG_TYPE_PARALLEL (0 << 0)
++#define SLCD_CFG_TYPE_SERIAL (1 << 0)
++
++/* SLCD Control Register */
++#define SLCD_CTRL_DMA_EN (1 << 0)
++
++/* SLCD Status Register */
++#define SLCD_STATE_BUSY (1 << 0)
++
++/* SLCD Data Register */
++#define SLCD_DATA_RS_DATA (0 << 31)
++#define SLCD_DATA_RS_COMMAND (1 << 31)
++
++/* SLCD FIFO Register */
++#define SLCD_FIFO_RS_DATA (0 << 31)
++#define SLCD_FIFO_RS_COMMAND (1 << 31)
++
++
++/*************************************************************************
++ * LCD (LCD Controller)
++ *************************************************************************/
++#define LCD_CFG (LCD_BASE + 0x00) /* LCD Configure Register */
++#define LCD_VSYNC (LCD_BASE + 0x04) /* Vertical Synchronize Register */
++#define LCD_HSYNC (LCD_BASE + 0x08) /* Horizontal Synchronize Register */
++#define LCD_VAT (LCD_BASE + 0x0c) /* Virtual Area Setting Register */
++#define LCD_DAH (LCD_BASE + 0x10) /* Display Area Horizontal Start/End Point */
++#define LCD_DAV (LCD_BASE + 0x14) /* Display Area Vertical Start/End Point */
++#define LCD_PS (LCD_BASE + 0x18) /* PS Signal Setting */
++#define LCD_CLS (LCD_BASE + 0x1c) /* CLS Signal Setting */
++#define LCD_SPL (LCD_BASE + 0x20) /* SPL Signal Setting */
++#define LCD_REV (LCD_BASE + 0x24) /* REV Signal Setting */
++#define LCD_CTRL (LCD_BASE + 0x30) /* LCD Control Register */
++#define LCD_STATE (LCD_BASE + 0x34) /* LCD Status Register */
++#define LCD_IID (LCD_BASE + 0x38) /* Interrupt ID Register */
++#define LCD_DA0 (LCD_BASE + 0x40) /* Descriptor Address Register 0 */
++#define LCD_SA0 (LCD_BASE + 0x44) /* Source Address Register 0 */
++#define LCD_FID0 (LCD_BASE + 0x48) /* Frame ID Register 0 */
++#define LCD_CMD0 (LCD_BASE + 0x4c) /* DMA Command Register 0 */
++#define LCD_DA1 (LCD_BASE + 0x50) /* Descriptor Address Register 1 */
++#define LCD_SA1 (LCD_BASE + 0x54) /* Source Address Register 1 */
++#define LCD_FID1 (LCD_BASE + 0x58) /* Frame ID Register 1 */
++#define LCD_CMD1 (LCD_BASE + 0x5c) /* DMA Command Register 1 */
++
++#define REG_LCD_CFG REG32(LCD_CFG)
++#define REG_LCD_VSYNC REG32(LCD_VSYNC)
++#define REG_LCD_HSYNC REG32(LCD_HSYNC)
++#define REG_LCD_VAT REG32(LCD_VAT)
++#define REG_LCD_DAH REG32(LCD_DAH)
++#define REG_LCD_DAV REG32(LCD_DAV)
++#define REG_LCD_PS REG32(LCD_PS)
++#define REG_LCD_CLS REG32(LCD_CLS)
++#define REG_LCD_SPL REG32(LCD_SPL)
++#define REG_LCD_REV REG32(LCD_REV)
++#define REG_LCD_CTRL REG32(LCD_CTRL)
++#define REG_LCD_STATE REG32(LCD_STATE)
++#define REG_LCD_IID REG32(LCD_IID)
++#define REG_LCD_DA0 REG32(LCD_DA0)
++#define REG_LCD_SA0 REG32(LCD_SA0)
++#define REG_LCD_FID0 REG32(LCD_FID0)
++#define REG_LCD_CMD0 REG32(LCD_CMD0)
++#define REG_LCD_DA1 REG32(LCD_DA1)
++#define REG_LCD_SA1 REG32(LCD_SA1)
++#define REG_LCD_FID1 REG32(LCD_FID1)
++#define REG_LCD_CMD1 REG32(LCD_CMD1)
++
++/* LCD Configure Register */
++#define LCD_CFG_LCDPIN_BIT 31 /* LCD pins selection */
++#define LCD_CFG_LCDPIN_MASK (0x1 << LCD_CFG_LCDPIN_BIT)
++ #define LCD_CFG_LCDPIN_LCD (0x0 << LCD_CFG_LCDPIN_BIT)
++ #define LCD_CFG_LCDPIN_SLCD (0x1 << LCD_CFG_LCDPIN_BIT)
++#define LCD_CFG_PSM (1 << 23) /* PS signal mode */
++#define LCD_CFG_CLSM (1 << 22) /* CLS signal mode */
++#define LCD_CFG_SPLM (1 << 21) /* SPL signal mode */
++#define LCD_CFG_REVM (1 << 20) /* REV signal mode */
++#define LCD_CFG_HSYNM (1 << 19) /* HSYNC signal mode */
++#define LCD_CFG_PCLKM (1 << 18) /* PCLK signal mode */
++#define LCD_CFG_INVDAT (1 << 17) /* Inverse output data */
++#define LCD_CFG_SYNDIR_IN (1 << 16) /* VSYNC&HSYNC direction */
++#define LCD_CFG_PSP (1 << 15) /* PS pin reset state */
++#define LCD_CFG_CLSP (1 << 14) /* CLS pin reset state */
++#define LCD_CFG_SPLP (1 << 13) /* SPL pin reset state */
++#define LCD_CFG_REVP (1 << 12) /* REV pin reset state */
++#define LCD_CFG_HSP (1 << 11) /* HSYNC pority:0-active high,1-active low */
++#define LCD_CFG_PCP (1 << 10) /* PCLK pority:0-rising,1-falling */
++#define LCD_CFG_DEP (1 << 9) /* DE pority:0-active high,1-active low */
++#define LCD_CFG_VSP (1 << 8) /* VSYNC pority:0-rising,1-falling */
++#define LCD_CFG_PDW_BIT 4 /* STN pins utilization */
++#define LCD_CFG_PDW_MASK (0x3 << LCD_DEV_PDW_BIT)
++#define LCD_CFG_PDW_1 (0 << LCD_CFG_PDW_BIT) /* LCD_D[0] */
++ #define LCD_CFG_PDW_2 (1 << LCD_CFG_PDW_BIT) /* LCD_D[0:1] */
++ #define LCD_CFG_PDW_4 (2 << LCD_CFG_PDW_BIT) /* LCD_D[0:3]/LCD_D[8:11] */
++ #define LCD_CFG_PDW_8 (3 << LCD_CFG_PDW_BIT) /* LCD_D[0:7]/LCD_D[8:15] */
++#define LCD_CFG_MODE_BIT 0 /* Display Device Mode Select */
++#define LCD_CFG_MODE_MASK (0x0f << LCD_CFG_MODE_BIT)
++ #define LCD_CFG_MODE_GENERIC_TFT (0 << LCD_CFG_MODE_BIT) /* 16,18 bit TFT */
++ #define LCD_CFG_MODE_SPECIAL_TFT_1 (1 << LCD_CFG_MODE_BIT)
++ #define LCD_CFG_MODE_SPECIAL_TFT_2 (2 << LCD_CFG_MODE_BIT)
++ #define LCD_CFG_MODE_SPECIAL_TFT_3 (3 << LCD_CFG_MODE_BIT)
++ #define LCD_CFG_MODE_NONINTER_CCIR656 (4 << LCD_CFG_MODE_BIT)
++ #define LCD_CFG_MODE_INTER_CCIR656 (6 << LCD_CFG_MODE_BIT)
++ #define LCD_CFG_MODE_SINGLE_CSTN (8 << LCD_CFG_MODE_BIT)
++ #define LCD_CFG_MODE_SINGLE_MSTN (9 << LCD_CFG_MODE_BIT)
++ #define LCD_CFG_MODE_DUAL_CSTN (10 << LCD_CFG_MODE_BIT)
++ #define LCD_CFG_MODE_DUAL_MSTN (11 << LCD_CFG_MODE_BIT)
++ #define LCD_CFG_MODE_SERIAL_TFT (12 << LCD_CFG_MODE_BIT)
++ /* JZ47XX defines */
++ #define LCD_CFG_MODE_SHARP_HR (1 << LCD_CFG_MODE_BIT)
++ #define LCD_CFG_MODE_CASIO_TFT (2 << LCD_CFG_MODE_BIT)
++ #define LCD_CFG_MODE_SAMSUNG_ALPHA (3 << LCD_CFG_MODE_BIT)
++
++
++
++/* Vertical Synchronize Register */
++#define LCD_VSYNC_VPS_BIT 16 /* VSYNC pulse start in line clock, fixed to 0 */
++#define LCD_VSYNC_VPS_MASK (0xffff << LCD_VSYNC_VPS_BIT)
++#define LCD_VSYNC_VPE_BIT 0 /* VSYNC pulse end in line clock */
++#define LCD_VSYNC_VPE_MASK (0xffff << LCD_VSYNC_VPS_BIT)
++
++/* Horizontal Synchronize Register */
++#define LCD_HSYNC_HPS_BIT 16 /* HSYNC pulse start position in dot clock */
++#define LCD_HSYNC_HPS_MASK (0xffff << LCD_HSYNC_HPS_BIT)
++#define LCD_HSYNC_HPE_BIT 0 /* HSYNC pulse end position in dot clock */
++#define LCD_HSYNC_HPE_MASK (0xffff << LCD_HSYNC_HPE_BIT)
++
++/* Virtual Area Setting Register */
++#define LCD_VAT_HT_BIT 16 /* Horizontal Total size in dot clock */
++#define LCD_VAT_HT_MASK (0xffff << LCD_VAT_HT_BIT)
++#define LCD_VAT_VT_BIT 0 /* Vertical Total size in dot clock */
++#define LCD_VAT_VT_MASK (0xffff << LCD_VAT_VT_BIT)
++
++/* Display Area Horizontal Start/End Point Register */
++#define LCD_DAH_HDS_BIT 16 /* Horizontal display area start in dot clock */
++#define LCD_DAH_HDS_MASK (0xffff << LCD_DAH_HDS_BIT)
++#define LCD_DAH_HDE_BIT 0 /* Horizontal display area end in dot clock */
++#define LCD_DAH_HDE_MASK (0xffff << LCD_DAH_HDE_BIT)
++
++/* Display Area Vertical Start/End Point Register */
++#define LCD_DAV_VDS_BIT 16 /* Vertical display area start in line clock */
++#define LCD_DAV_VDS_MASK (0xffff << LCD_DAV_VDS_BIT)
++#define LCD_DAV_VDE_BIT 0 /* Vertical display area end in line clock */
++#define LCD_DAV_VDE_MASK (0xffff << LCD_DAV_VDE_BIT)
++
++/* PS Signal Setting */
++#define LCD_PS_PSS_BIT 16 /* PS signal start position in dot clock */
++#define LCD_PS_PSS_MASK (0xffff << LCD_PS_PSS_BIT)
++#define LCD_PS_PSE_BIT 0 /* PS signal end position in dot clock */
++#define LCD_PS_PSE_MASK (0xffff << LCD_PS_PSE_BIT)
++
++/* CLS Signal Setting */
++#define LCD_CLS_CLSS_BIT 16 /* CLS signal start position in dot clock */
++#define LCD_CLS_CLSS_MASK (0xffff << LCD_CLS_CLSS_BIT)
++#define LCD_CLS_CLSE_BIT 0 /* CLS signal end position in dot clock */
++#define LCD_CLS_CLSE_MASK (0xffff << LCD_CLS_CLSE_BIT)
++
++/* SPL Signal Setting */
++#define LCD_SPL_SPLS_BIT 16 /* SPL signal start position in dot clock */
++#define LCD_SPL_SPLS_MASK (0xffff << LCD_SPL_SPLS_BIT)
++#define LCD_SPL_SPLE_BIT 0 /* SPL signal end position in dot clock */
++#define LCD_SPL_SPLE_MASK (0xffff << LCD_SPL_SPLE_BIT)
++
++/* REV Signal Setting */
++#define LCD_REV_REVS_BIT 16 /* REV signal start position in dot clock */
++#define LCD_REV_REVS_MASK (0xffff << LCD_REV_REVS_BIT)
++
++/* LCD Control Register */
++#define LCD_CTRL_BST_BIT 28 /* Burst Length Selection */
++#define LCD_CTRL_BST_MASK (0x03 << LCD_CTRL_BST_BIT)
++ #define LCD_CTRL_BST_4 (0 << LCD_CTRL_BST_BIT) /* 4-word */
++ #define LCD_CTRL_BST_8 (1 << LCD_CTRL_BST_BIT) /* 8-word */
++ #define LCD_CTRL_BST_16 (2 << LCD_CTRL_BST_BIT) /* 16-word */
++#define LCD_CTRL_RGB565 (0 << 27) /* RGB565 mode */
++#define LCD_CTRL_RGB555 (1 << 27) /* RGB555 mode */
++#define LCD_CTRL_OFUP (1 << 26) /* Output FIFO underrun protection enable */
++#define LCD_CTRL_FRC_BIT 24 /* STN FRC Algorithm Selection */
++#define LCD_CTRL_FRC_MASK (0x03 << LCD_CTRL_FRC_BIT)
++ #define LCD_CTRL_FRC_16 (0 << LCD_CTRL_FRC_BIT) /* 16 grayscale */
++ #define LCD_CTRL_FRC_4 (1 << LCD_CTRL_FRC_BIT) /* 4 grayscale */
++ #define LCD_CTRL_FRC_2 (2 << LCD_CTRL_FRC_BIT) /* 2 grayscale */
++#define LCD_CTRL_PDD_BIT 16 /* Load Palette Delay Counter */
++#define LCD_CTRL_PDD_MASK (0xff << LCD_CTRL_PDD_BIT)
++#define LCD_CTRL_EOFM (1 << 13) /* EOF interrupt mask */
++#define LCD_CTRL_SOFM (1 << 12) /* SOF interrupt mask */
++#define LCD_CTRL_OFUM (1 << 11) /* Output FIFO underrun interrupt mask */
++#define LCD_CTRL_IFUM0 (1 << 10) /* Input FIFO 0 underrun interrupt mask */
++#define LCD_CTRL_IFUM1 (1 << 9) /* Input FIFO 1 underrun interrupt mask */
++#define LCD_CTRL_LDDM (1 << 8) /* LCD disable done interrupt mask */
++#define LCD_CTRL_QDM (1 << 7) /* LCD quick disable done interrupt mask */
++#define LCD_CTRL_BEDN (1 << 6) /* Endian selection */
++#define LCD_CTRL_PEDN (1 << 5) /* Endian in byte:0-msb first, 1-lsb first */
++#define LCD_CTRL_DIS (1 << 4) /* Disable indicate bit */
++#define LCD_CTRL_ENA (1 << 3) /* LCD enable bit */
++#define LCD_CTRL_BPP_BIT 0 /* Bits Per Pixel */
++#define LCD_CTRL_BPP_MASK (0x07 << LCD_CTRL_BPP_BIT)
++ #define LCD_CTRL_BPP_1 (0 << LCD_CTRL_BPP_BIT) /* 1 bpp */
++ #define LCD_CTRL_BPP_2 (1 << LCD_CTRL_BPP_BIT) /* 2 bpp */
++ #define LCD_CTRL_BPP_4 (2 << LCD_CTRL_BPP_BIT) /* 4 bpp */
++ #define LCD_CTRL_BPP_8 (3 << LCD_CTRL_BPP_BIT) /* 8 bpp */
++ #define LCD_CTRL_BPP_16 (4 << LCD_CTRL_BPP_BIT) /* 15/16 bpp */
++ #define LCD_CTRL_BPP_18_24 (5 << LCD_CTRL_BPP_BIT) /* 18/24/32 bpp */
++
++/* LCD Status Register */
++#define LCD_STATE_QD (1 << 7) /* Quick Disable Done */
++#define LCD_STATE_EOF (1 << 5) /* EOF Flag */
++#define LCD_STATE_SOF (1 << 4) /* SOF Flag */
++#define LCD_STATE_OFU (1 << 3) /* Output FIFO Underrun */
++#define LCD_STATE_IFU0 (1 << 2) /* Input FIFO 0 Underrun */
++#define LCD_STATE_IFU1 (1 << 1) /* Input FIFO 1 Underrun */
++#define LCD_STATE_LDD (1 << 0) /* LCD Disabled */
++
++/* DMA Command Register */
++#define LCD_CMD_SOFINT (1 << 31)
++#define LCD_CMD_EOFINT (1 << 30)
++#define LCD_CMD_PAL (1 << 28)
++#define LCD_CMD_LEN_BIT 0
++#define LCD_CMD_LEN_MASK (0xffffff << LCD_CMD_LEN_BIT)
++
++
++/*************************************************************************
++ * USB Device
++ *************************************************************************/
++#define USB_BASE UDC_BASE
++
++#define USB_REG_FADDR (USB_BASE + 0x00) /* Function Address 8-bit */
++#define USB_REG_POWER (USB_BASE + 0x01) /* Power Managemetn 8-bit */
++#define USB_REG_INTRIN (USB_BASE + 0x02) /* Interrupt IN 16-bit */
++#define USB_REG_INTROUT (USB_BASE + 0x04) /* Interrupt OUT 16-bit */
++#define USB_REG_INTRINE (USB_BASE + 0x06) /* Intr IN enable 16-bit */
++#define USB_REG_INTROUTE (USB_BASE + 0x08) /* Intr OUT enable 16-bit */
++#define USB_REG_INTRUSB (USB_BASE + 0x0a) /* Interrupt USB 8-bit */
++#define USB_REG_INTRUSBE (USB_BASE + 0x0b) /* Interrupt USB Enable 8-bit */
++#define USB_REG_FRAME (USB_BASE + 0x0c) /* Frame number 16-bit */
++#define USB_REG_INDEX (USB_BASE + 0x0e) /* Index register 8-bit */
++#define USB_REG_TESTMODE (USB_BASE + 0x0f) /* USB test mode 8-bit */
++
++#define USB_REG_CSR0 (USB_BASE + 0x12) /* EP0 CSR 8-bit */
++#define USB_REG_INMAXP (USB_BASE + 0x10) /* EP1-2 IN Max Pkt Size 16-bit */
++#define USB_REG_INCSR (USB_BASE + 0x12) /* EP1-2 IN CSR LSB 8/16bit */
++#define USB_REG_INCSRH (USB_BASE + 0x13) /* EP1-2 IN CSR MSB 8-bit */
++#define USB_REG_OUTMAXP (USB_BASE + 0x14) /* EP1 OUT Max Pkt Size 16-bit */
++#define USB_REG_OUTCSR (USB_BASE + 0x16) /* EP1 OUT CSR LSB 8/16bit */
++#define USB_REG_OUTCSRH (USB_BASE + 0x17) /* EP1 OUT CSR MSB 8-bit */
++#define USB_REG_OUTCOUNT (USB_BASE + 0x18) /* bytes in EP0/1 OUT FIFO 16-bit */
++
++#define USB_FIFO_EP0 (USB_BASE + 0x20)
++#define USB_FIFO_EP1 (USB_BASE + 0x24)
++#define USB_FIFO_EP2 (USB_BASE + 0x28)
++
++#define USB_REG_EPINFO (USB_BASE + 0x78) /* Endpoint information */
++#define USB_REG_RAMINFO (USB_BASE + 0x79) /* RAM information */
++
++#define USB_REG_INTR (USB_BASE + 0x200) /* DMA pending interrupts */
++#define USB_REG_CNTL1 (USB_BASE + 0x204) /* DMA channel 1 control */
++#define USB_REG_ADDR1 (USB_BASE + 0x208) /* DMA channel 1 AHB memory addr */
++#define USB_REG_COUNT1 (USB_BASE + 0x20c) /* DMA channel 1 byte count */
++#define USB_REG_CNTL2 (USB_BASE + 0x214) /* DMA channel 2 control */
++#define USB_REG_ADDR2 (USB_BASE + 0x218) /* DMA channel 2 AHB memory addr */
++#define USB_REG_COUNT2 (USB_BASE + 0x21c) /* DMA channel 2 byte count */
++
++
++/* Power register bit masks */
++#define USB_POWER_SUSPENDM 0x01
++#define USB_POWER_RESUME 0x04
++#define USB_POWER_HSMODE 0x10
++#define USB_POWER_HSENAB 0x20
++#define USB_POWER_SOFTCONN 0x40
++
++/* Interrupt register bit masks */
++#define USB_INTR_SUSPEND 0x01
++#define USB_INTR_RESUME 0x02
++#define USB_INTR_RESET 0x04
++
++#define USB_INTR_EP0 0x0001
++#define USB_INTR_INEP1 0x0002
++#define USB_INTR_INEP2 0x0004
++#define USB_INTR_OUTEP1 0x0002
++
++/* CSR0 bit masks */
++#define USB_CSR0_OUTPKTRDY 0x01
++#define USB_CSR0_INPKTRDY 0x02
++#define USB_CSR0_SENTSTALL 0x04
++#define USB_CSR0_DATAEND 0x08
++#define USB_CSR0_SETUPEND 0x10
++#define USB_CSR0_SENDSTALL 0x20
++#define USB_CSR0_SVDOUTPKTRDY 0x40
++#define USB_CSR0_SVDSETUPEND 0x80
++
++/* Endpoint CSR register bits */
++#define USB_INCSRH_AUTOSET 0x80
++#define USB_INCSRH_ISO 0x40
++#define USB_INCSRH_MODE 0x20
++#define USB_INCSRH_DMAREQENAB 0x10
++#define USB_INCSRH_DMAREQMODE 0x04
++#define USB_INCSR_CDT 0x40
++#define USB_INCSR_SENTSTALL 0x20
++#define USB_INCSR_SENDSTALL 0x10
++#define USB_INCSR_FF 0x08
++#define USB_INCSR_UNDERRUN 0x04
++#define USB_INCSR_FFNOTEMPT 0x02
++#define USB_INCSR_INPKTRDY 0x01
++#define USB_OUTCSRH_AUTOCLR 0x80
++#define USB_OUTCSRH_ISO 0x40
++#define USB_OUTCSRH_DMAREQENAB 0x20
++#define USB_OUTCSRH_DNYT 0x10
++#define USB_OUTCSRH_DMAREQMODE 0x08
++#define USB_OUTCSR_CDT 0x80
++#define USB_OUTCSR_SENTSTALL 0x40
++#define USB_OUTCSR_SENDSTALL 0x20
++#define USB_OUTCSR_FF 0x10
++#define USB_OUTCSR_DATAERR 0x08
++#define USB_OUTCSR_OVERRUN 0x04
++#define USB_OUTCSR_FFFULL 0x02
++#define USB_OUTCSR_OUTPKTRDY 0x01
++
++/* Testmode register bits */
++#define USB_TEST_SE0NAK 0x01
++#define USB_TEST_J 0x02
++#define USB_TEST_K 0x04
++#define USB_TEST_PACKET 0x08
++
++/* DMA control bits */
++#define USB_CNTL_ENA 0x01
++#define USB_CNTL_DIR_IN 0x02
++#define USB_CNTL_MODE_1 0x04
++#define USB_CNTL_INTR_EN 0x08
++#define USB_CNTL_EP(n) ((n) << 4)
++#define USB_CNTL_BURST_0 (0 << 9)
++#define USB_CNTL_BURST_4 (1 << 9)
++#define USB_CNTL_BURST_8 (2 << 9)
++#define USB_CNTL_BURST_16 (3 << 9)
++
++#endif /* __JZ4740_REGS_H__ */
+diff -ruN linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/serial.h linux-2.6.31/arch/mips/include/asm/mach-jz4740/serial.h
+--- linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/serial.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/include/asm/mach-jz4740/serial.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,30 @@
++/*
++ * linux/include/asm-mips/mach-jz4740/serial.h
++ *
++ * Ingenic's JZ4740 common include.
++ *
++ * Copyright (C) 2006 - 2007 Ingenic Semiconductor Inc.
++ *
++ * Author: <yliu@ingenic.cn>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#ifndef __ASM_BOARD_SERIAL_H__
++#define __ASM_BOARD_SERIAL_H__
++
++#ifndef CONFIG_SERIAL_MANY_PORTS
++#undef RS_TABLE_SIZE
++#define RS_TABLE_SIZE 1
++#endif
++
++#define JZ_BASE_BAUD (12000000/16)
++
++#define JZ_SERIAL_PORT_DEFNS \
++ { .baud_base = JZ_BASE_BAUD, .irq = IRQ_UART0, \
++ .flags = STD_COM_FLAGS, .iomem_base = (u8 *)UART0_BASE, \
++ .iomem_reg_shift = 2, .io_type = SERIAL_IO_MEM },
++
++#endif /* __ASM_BORAD_SERIAL_H__ */
+diff -ruN linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/war.h linux-2.6.31/arch/mips/include/asm/mach-jz4740/war.h
+--- linux-2.6.31-vanilla/arch/mips/include/asm/mach-jz4740/war.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/include/asm/mach-jz4740/war.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,25 @@
++/*
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file "COPYING" in the main directory of this archive
++ * for more details.
++ *
++ * Copyright (C) 2002, 2004, 2007 by Ralf Baechle <ralf@linux-mips.org>
++ */
++#ifndef __ASM_MIPS_MACH_JZ4740_WAR_H
++#define __ASM_MIPS_MACH_JZ4740_WAR_H
++
++#define R4600_V1_INDEX_ICACHEOP_WAR 0
++#define R4600_V1_HIT_CACHEOP_WAR 0
++#define R4600_V2_HIT_CACHEOP_WAR 0
++#define R5432_CP0_INTERRUPT_WAR 0
++#define BCM1250_M3_WAR 0
++#define SIBYTE_1956_WAR 0
++#define MIPS4K_ICACHE_REFILL_WAR 0
++#define MIPS_CACHE_SYNC_WAR 0
++#define TX49XX_ICACHE_INDEX_INV_WAR 0
++#define RM9000_CDEX_SMP_WAR 0
++#define ICACHE_REFILLS_WORKAROUND_WAR 0
++#define R10000_LLSC_WAR 0
++#define MIPS34K_MISSED_ITLB_WAR 0
++
++#endif /* __ASM_MIPS_MACH_JZ4740_WAR_H */
+diff -ruN linux-2.6.31-vanilla/arch/mips/jz4740/Kconfig linux-2.6.31/arch/mips/jz4740/Kconfig
+--- linux-2.6.31-vanilla/arch/mips/jz4740/Kconfig 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/jz4740/Kconfig 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,29 @@
++choice
++ prompt "Machine type"
++ depends on MACH_JZ
++ default JZ4740_QI_LB60
++
++config JZ4740_QI_LB60
++ bool "Qi Hardware Ben NanoNote"
++ select DMA_NONCOHERENT
++ select SOC_JZ4740
++
++endchoice
++
++config SOC_JZ4740
++ bool
++ select JZSOC
++ select GENERIC_GPIO
++ select ARCH_REQUIRE_GPIOLIB
++ select SYS_HAS_EARLY_PRINTK
++ select SYS_SUPPORTS_LITTLE_ENDIAN
++ select IRQ_CPU
++
++config JZSOC
++ bool
++ select JZRISC
++ select SYS_HAS_CPU_MIPS32_R1
++ select SYS_SUPPORTS_32BIT_KERNEL
++
++config JZRISC
++ bool
+diff -ruN linux-2.6.31-vanilla/arch/mips/jz4740/Makefile linux-2.6.31/arch/mips/jz4740/Makefile
+--- linux-2.6.31-vanilla/arch/mips/jz4740/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/jz4740/Makefile 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,27 @@
++#
++# Makefile for the Ingenic JZ4740.
++#
++
++# Object file lists.
++
++obj-y += prom.o irq.o time.o reset.o setup.o dma.o \
++ gpio.o clock.o platform.o
++
++obj-$(CONFIG_PROC_FS) += proc.o
++
++# board specific support
++
++obj-$(CONFIG_JZ4740_PAVO) += board-pavo.o
++obj-$(CONFIG_JZ4740_LEO) += board-leo.o
++obj-$(CONFIG_JZ4740_LYRA) += board-lyra.o
++obj-$(CONFIG_JZ4725_DIPPER) += board-dipper.o
++obj-$(CONFIG_JZ4720_VIRGO) += board-virgo.o
++obj-$(CONFIG_JZ4740_QI_LB60) += board-qi_lb60.o
++
++# PM support
++
++obj-$(CONFIG_PM) +=pm.o
++
++# CPU Frequency scaling support
++
++obj-$(CONFIG_CPU_FREQ_JZ) +=cpufreq.o
+diff -ruN linux-2.6.31-vanilla/arch/mips/jz4740/board-qi_lb60.c linux-2.6.31/arch/mips/jz4740/board-qi_lb60.c
+--- linux-2.6.31-vanilla/arch/mips/jz4740/board-qi_lb60.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/jz4740/board-qi_lb60.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,389 @@
++/*
++ * linux/arch/mips/jz4740/board-qi_lb60.c
++ *
++ * QI_LB60 setup routines.
++ *
++ * Copyright (c) 2009 Qi Hardware inc.,
++ * Author: Xiangfu Liu <xiangfu@qi-hardware.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 3 as
++ * published by the Free Software Foundation.
++ */
++
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/gpio.h>
++
++#include <asm/mach-jz4740/board-qi_lb60.h>
++#include <asm/mach-jz4740/platform.h>
++
++#include <linux/input.h>
++#include <linux/gpio_keys.h>
++#include <linux/mtd/jz4740_nand.h>
++#include <linux/jz4740_fb.h>
++#include <linux/input/matrix_keypad.h>
++#include <linux/mtd/jz4740_nand.h>
++#include <linux/spi/spi.h>
++#include <linux/spi/spi_gpio.h>
++#include <linux/power_supply.h>
++#include <linux/power/jz4740-battery.h>
++
++
++/* NAND */
++static struct nand_ecclayout qi_lb60_ecclayout_1gb = {
++ .eccbytes = 36,
++ .eccpos = {
++ 6, 7, 8, 9, 10, 11, 12, 13,
++ 14, 15, 16, 17, 18, 19, 20, 21,
++ 22, 23, 24, 25, 26, 27, 28, 29,
++ 30, 31, 32, 33, 34, 35, 36, 37,
++ 38, 39, 40, 41},
++ .oobfree = {
++ {.offset = 2,
++ .length = 4},
++ {.offset = 42,
++ .length = 22}}
++};
++
++static struct mtd_partition qi_lb60_partitions_1gb[] = {
++ { .name = "NAND BOOT partition",
++ .offset = 0 * 0x100000,
++ .size = 4 * 0x100000,
++ },
++ { .name = "NAND KERNEL partition",
++ .offset = 4 * 0x100000,
++ .size = 4 * 0x100000,
++ },
++ { .name = "NAND ROOTFS partition",
++ .offset = 8 * 0x100000,
++ .size = 504 * 0x100000,
++ },
++ { .name = "NAND DATA partition",
++ .offset = 512 * 0x100000,
++ .size = 512 * 0x100000,
++ },
++};
++
++static struct nand_ecclayout qi_lb60_ecclayout_2gb = {
++ .eccbytes = 72,
++ .eccpos = {
++ 12, 13, 14, 15, 16, 17, 18, 19,
++ 20, 21, 22, 23, 24, 25, 26, 27,
++ 28, 29, 30, 31, 32, 33, 34, 35,
++ 36, 37, 38, 39, 40, 41, 42, 43,
++ 44, 45, 46, 47, 48, 49, 50, 51,
++ 52, 53, 54, 55, 56, 57, 58, 59,
++ 60, 61, 62, 63, 64, 65, 66, 67,
++ 68, 69, 70, 71, 72, 73, 74, 75,
++ 76, 77, 78, 79, 80, 81, 82, 83},
++ .oobfree = {
++ {.offset = 2,
++ .length = 10},
++ {.offset = 84,
++ .length = 44}}
++};
++
++static struct mtd_partition qi_lb60_partitions_2gb[] = {
++ { .name = "NAND BOOT partition",
++ .offset = 0 * 0x100000,
++ .size = 4 * 0x100000,
++ },
++ { .name = "NAND KERNEL partition",
++ .offset = 4 * 0x100000,
++ .size = 4 * 0x100000,
++ },
++ { .name = "NAND ROOTFS partition",
++ .offset = 8 * 0x100000,
++ .size = 504 * 0x100000,
++ },
++ { .name = "NAND DATA partition",
++ .offset = 512 * 0x100000,
++ .size = (512 + 1024) * 0x100000,
++ },
++};
++
++static void qi_lb60_nand_ident(struct platform_device *pdev,
++ struct nand_chip *chip,
++ struct mtd_partition **partitions,
++ int *num_partitions)
++{
++ if (chip->page_shift == 12) {
++ chip->ecc.layout = &qi_lb60_ecclayout_2gb;
++ *partitions = qi_lb60_partitions_2gb;
++ *num_partitions = ARRAY_SIZE(qi_lb60_partitions_2gb);
++ } else {
++ chip->ecc.layout = &qi_lb60_ecclayout_1gb;
++ *partitions = qi_lb60_partitions_1gb;
++ *num_partitions = ARRAY_SIZE(qi_lb60_partitions_1gb);
++ }
++}
++
++static struct jz_nand_platform_data qi_lb60_nand_pdata = {
++ .ident_callback = qi_lb60_nand_ident,
++ .busy_gpio = 94,
++};
++
++
++/* Keyboard*/
++
++/* #define KEEP_UART_ALIVE
++ * don't define this. the keyboard and keyboard both work
++ */
++
++#define KEY_QI_QI KEY_F13
++#define KEY_QI_UPRED KEY_RIGHTSHIFT
++#define KEY_QI_VOLUP KEY_F15
++#define KEY_QI_VOLDOWN KEY_F16
++#define KEY_QI_FN KEY_RIGHTCTRL
++
++static const uint32_t qi_lb60_keymap[] = {
++ KEY(0, 0, KEY_F1), /* S2 */
++ KEY(0, 1, KEY_F2), /* S3 */
++ KEY(0, 2, KEY_F3), /* S4 */
++ KEY(0, 3, KEY_F4), /* S5 */
++ KEY(0, 4, KEY_F5), /* S6 */
++ KEY(0, 5, KEY_F6), /* S7 */
++ KEY(0, 6, KEY_F7), /* S8 */
++
++ KEY(1, 0, KEY_Q), /* S10 */
++ KEY(1, 1, KEY_W), /* S11 */
++ KEY(1, 2, KEY_E), /* S12 */
++ KEY(1, 3, KEY_R), /* S13 */
++ KEY(1, 4, KEY_T), /* S14 */
++ KEY(1, 5, KEY_Y), /* S15 */
++ KEY(1, 6, KEY_U), /* S16 */
++ KEY(1, 7, KEY_I), /* S17 */
++ KEY(2, 0, KEY_A), /* S18 */
++ KEY(2, 1, KEY_S), /* S19 */
++ KEY(2, 2, KEY_D), /* S20 */
++ KEY(2, 3, KEY_F), /* S21 */
++ KEY(2, 4, KEY_G), /* S22 */
++ KEY(2, 5, KEY_H), /* S23 */
++ KEY(2, 6, KEY_J), /* S24 */
++ KEY(2, 7, KEY_K), /* S25 */
++ KEY(3, 0, KEY_ESC), /* S26 */
++ KEY(3, 1, KEY_Z), /* S27 */
++ KEY(3, 2, KEY_X), /* S28 */
++ KEY(3, 3, KEY_C), /* S29 */
++ KEY(3, 4, KEY_V), /* S30 */
++ KEY(3, 5, KEY_B), /* S31 */
++ KEY(3, 6, KEY_N), /* S32 */
++ KEY(3, 7, KEY_M), /* S33 */
++ KEY(4, 0, KEY_TAB), /* S34 */
++ KEY(4, 1, KEY_CAPSLOCK), /* S35 */
++ KEY(4, 2, KEY_BACKSLASH), /* S36 */
++ KEY(4, 3, KEY_APOSTROPHE), /* S37 */
++ KEY(4, 4, KEY_COMMA), /* S38 */
++ KEY(4, 5, KEY_DOT), /* S39 */
++ KEY(4, 6, KEY_SLASH), /* S40 */
++ KEY(4, 7, KEY_UP), /* S41 */
++ KEY(5, 0, KEY_O), /* S42 */
++ KEY(5, 1, KEY_L), /* S43 */
++ KEY(5, 2, KEY_EQUAL), /* S44 */
++ KEY(5, 3, KEY_QI_UPRED), /* S45 */
++ KEY(5, 4, KEY_SPACE), /* S46 */
++ KEY(5, 5, KEY_QI_QI), /* S47 */
++ KEY(5, 6, KEY_LEFTCTRL), /* S48 */
++ KEY(5, 7, KEY_LEFT), /* S49 */
++ KEY(6, 0, KEY_F8), /* S50 */
++ KEY(6, 1, KEY_P), /* S51 */
++ KEY(6, 2, KEY_BACKSPACE),/* S52 */
++ KEY(6, 3, KEY_ENTER), /* S53 */
++ KEY(6, 4, KEY_QI_VOLUP), /* S54 */
++ KEY(6, 5, KEY_QI_VOLDOWN), /* S55 */
++ KEY(6, 6, KEY_DOWN), /* S56 */
++ KEY(6, 7, KEY_RIGHT), /* S57 */
++
++#ifndef KEEP_UART_ALIVE
++ KEY(7, 0, KEY_LEFTSHIFT), /* S58 */
++ KEY(7, 1, KEY_LEFTALT), /* S59 */
++ KEY(7, 2, KEY_QI_FN), /* S60 */
++#endif
++};
++
++static const struct matrix_keymap_data qi_lb60_keymap_data = {
++ .keymap = qi_lb60_keymap,
++ .keymap_size = ARRAY_SIZE(qi_lb60_keymap),
++};
++
++static const unsigned int qi_lb60_keypad_cols[] = {
++ 74, 75, 76, 77, 78, 79, 80, 81,
++};
++
++static const unsigned int qi_lb60_keypad_rows[] = {
++ 114, 115, 116, 117, 118, 119, 120,
++#ifndef KEEP_UART_ALIVE
++ 122,
++#endif
++};
++
++static struct matrix_keypad_platform_data qi_lb60_pdata = {
++ .keymap_data = &qi_lb60_keymap_data,
++ .col_gpios = qi_lb60_keypad_cols,
++ .row_gpios = qi_lb60_keypad_rows,
++ .num_col_gpios = ARRAY_SIZE(qi_lb60_keypad_cols),
++ .num_row_gpios = ARRAY_SIZE(qi_lb60_keypad_rows),
++ .col_scan_delay_us = 10,
++ .debounce_ms = 10,
++ .wakeup = 1,
++ .active_low = 1,
++};
++
++static struct platform_device qi_lb60_keypad = {
++ .name = "matrix-keypad",
++ .id = -1,
++ .dev = {
++ .platform_data = &qi_lb60_pdata,
++ },
++};
++
++/* Display */
++static struct fb_videomode qi_lb60_video_modes[] = {
++ {
++ .name = "320x240",
++ .xres = 320,
++ .yres = 240,
++ .pixclock = 700000,
++ .left_margin = 140,
++ .right_margin = 273,
++ .upper_margin = 20,
++ .lower_margin = 2,
++ .hsync_len = 1,
++ .vsync_len = 1,
++ .sync = 0,
++ .vmode = FB_VMODE_NONINTERLACED,
++ },
++};
++
++static struct jz4740_fb_platform_data qi_lb60_fb_pdata = {
++ .width = 60,
++ .height = 45,
++ .num_modes = ARRAY_SIZE(qi_lb60_video_modes),
++ .modes = qi_lb60_video_modes,
++ .bpp = 24,
++ .lcd_type = JZ_LCD_TYPE_8BIT_SERIAL,
++};
++
++
++struct spi_gpio_platform_data spigpio_platform_data = {
++ .sck = JZ_GPIO_PORTC(23),
++ .mosi = JZ_GPIO_PORTC(22),
++ .miso = JZ_GPIO_PORTC(22),
++ .num_chipselect = 1,
++};
++
++static struct platform_device spigpio_device = {
++ .name = "spi_gpio",
++ .id = 1,
++ .dev = {
++ .platform_data = &spigpio_platform_data,
++ },
++};
++
++static struct spi_board_info qi_lb60_spi_board_info[] = {
++ {
++ .modalias = "gpm940b0",
++ .controller_data = (void*)JZ_GPIO_PORTC(21),
++ .chip_select = 0,
++ .bus_num = 1,
++ .max_speed_hz = 30 * 1000,
++ },
++};
++
++/* Battery */
++static struct jz_batt_info qi_lb60_battery_pdata = {
++ .dc_dect_gpio = GPIO_DC_DETE_N,
++ .usb_dect_gpio = GPIO_USB_DETE,
++ .charg_stat_gpio = GPIO_CHARG_STAT_N,
++
++ .min_voltag = 3600000,
++ .max_voltag = 4200000,
++ .batt_tech = POWER_SUPPLY_TECHNOLOGY_LIPO,
++};
++
++/* GPIO Key: power */
++static struct gpio_keys_button qi_lb60_gpio_keys_buttons[] = {
++ [0] = {
++ .code = KEY_POWER,
++ .gpio = GPIO_WAKEUP_N,
++ .active_low = 1,
++ .desc = "Power",
++ .wakeup = 1,
++ },
++};
++
++static struct gpio_keys_platform_data qi_lb60_gpio_keys_data = {
++ .nbuttons = ARRAY_SIZE(qi_lb60_gpio_keys_buttons),
++ .buttons = qi_lb60_gpio_keys_buttons,
++};
++
++static struct platform_device qi_lb60_gpio_keys = {
++ .name = "gpio-keys",
++ .id = -1,
++ .dev = {
++ .platform_data = &qi_lb60_gpio_keys_data,
++ }
++};
++/*
++static struct jz_mmc_platform_data jz_mmc_pdata = {
++ .card_detect_gpio = JZ_GPIO_PORTD(0),
++ .read_only_gpio = JZ_GPIO_PORTD(16),
++ .power_gpio = JZ_GPIO_PORTD(2),
++};*/
++
++static struct platform_device *jz_platform_devices[] __initdata = {
++ &jz4740_usb_ohci_device,
++ &jz4740_usb_gdt_device,
++ &jz4740_mmc_device,
++ &jz4740_nand_device,
++ &qi_lb60_keypad,
++ &spigpio_device,
++ &jz4740_framebuffer_device,
++ &jz4740_i2s_device,
++ &jz4740_codec_device,
++ &jz4740_rtc_device,
++ &jz4740_adc_device,
++ &jz4740_battery_device,
++ &qi_lb60_gpio_keys,
++};
++
++static void __init board_gpio_setup(void)
++{
++ /* We only need to enable/disable pullup here for pins used in generic
++ * drivers. Everything else is done by the drivers themselfs. */
++ jz_gpio_disable_pullup(GPIO_SD_VCC_EN_N);
++ jz_gpio_disable_pullup(GPIO_SD_CD_N);
++ jz_gpio_disable_pullup(GPIO_SD_WP);
++}
++
++static int __init qi_lb60_init_platform_devices(void)
++{
++ jz4740_framebuffer_device.dev.platform_data = &qi_lb60_fb_pdata;
++ jz4740_nand_device.dev.platform_data = &qi_lb60_nand_pdata;
++ jz4740_battery_device.dev.platform_data = &qi_lb60_battery_pdata;
++
++ spi_register_board_info(qi_lb60_spi_board_info,
++ ARRAY_SIZE(qi_lb60_spi_board_info));
++
++ return platform_add_devices(jz_platform_devices,
++ ARRAY_SIZE(jz_platform_devices));
++
++}
++extern int jz_gpiolib_init(void);
++
++static int __init qi_lb60_board_setup(void)
++{
++ printk("Qi Hardware JZ4740 QI_LB60 setup\n");
++ if (jz_gpiolib_init())
++ panic("Failed to initalize jz gpio\n");
++
++ board_gpio_setup();
++
++ if (qi_lb60_init_platform_devices())
++ panic("Failed to initalize platform devices\n");
++
++ return 0;
++}
++
++arch_initcall(qi_lb60_board_setup);
+diff -ruN linux-2.6.31-vanilla/arch/mips/jz4740/clock.c linux-2.6.31/arch/mips/jz4740/clock.c
+--- linux-2.6.31-vanilla/arch/mips/jz4740/clock.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/jz4740/clock.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,777 @@
++
++#include <linux/kernel.h>
++#include <linux/errno.h>
++#include <linux/clk.h>
++#include <linux/spinlock.h>
++#include <linux/io.h>
++#include <linux/module.h>
++#include <linux/list.h>
++#include <linux/err.h>
++
++#define JZ_REG_CLOCK_CTRL 0x00
++#define JZ_REG_CLOCK_PLL 0x10
++#define JZ_REG_CLOCK_GATE 0x20
++#define JZ_REG_CLOCK_I2S 0x60
++#define JZ_REG_CLOCK_LCD 0x64
++#define JZ_REG_CLOCK_MMC 0x68
++#define JZ_REG_CLOCK_UHC 0x6C
++#define JZ_REG_CLOCK_SPI 0x74
++
++#define JZ_CLOCK_CTRL_I2S_SRC_PLL BIT(31)
++#define JZ_CLOCK_CTRL_KO_ENABLE BIT(30)
++#define JZ_CLOCK_CTRL_UDC_SRC_PLL BIT(29)
++#define JZ_CLOCK_CTRL_UDIV_MASK 0x1f800000
++#define JZ_CLOCK_CTRL_CHANGE_ENABLE BIT(22)
++#define JZ_CLOCK_CTRL_PLL_HALF BIT(21)
++#define JZ_CLOCK_CTRL_LDIV_MASK 0x001f0000
++#define JZ_CLOCK_CTRL_UDIV_OFFSET 23
++#define JZ_CLOCK_CTRL_LDIV_OFFSET 16
++#define JZ_CLOCK_CTRL_MDIV_OFFSET 12
++#define JZ_CLOCK_CTRL_PDIV_OFFSET 8
++#define JZ_CLOCK_CTRL_HDIV_OFFSET 4
++#define JZ_CLOCK_CTRL_CDIV_OFFSET 0
++
++#define JZ_CLOCK_GATE_UART0 BIT(0)
++#define JZ_CLOCK_GATE_TCU BIT(1)
++#define JZ_CLOCK_GATE_RTC BIT(2)
++#define JZ_CLOCK_GATE_I2C BIT(3)
++#define JZ_CLOCK_GATE_SPI BIT(4)
++#define JZ_CLOCK_GATE_AIC_PCLK BIT(5)
++#define JZ_CLOCK_GATE_AIC BIT(6)
++#define JZ_CLOCK_GATE_MMC BIT(7)
++#define JZ_CLOCK_GATE_ADC BIT(8)
++#define JZ_CLOCK_GATE_CIM BIT(9)
++#define JZ_CLOCK_GATE_LCD BIT(10)
++#define JZ_CLOCK_GATE_UDC BIT(11)
++#define JZ_CLOCK_GATE_DMAC BIT(12)
++#define JZ_CLOCK_GATE_IPU BIT(13)
++#define JZ_CLOCK_GATE_UHC BIT(14)
++#define JZ_CLOCK_GATE_UART1 BIT(15)
++
++#define JZ_CLOCK_I2S_DIV_MASK 0x01ff
++
++#define JZ_CLOCK_LCD_DIV_MASK 0x01ff
++
++#define JZ_CLOCK_MMC_DIV_MASK 0x001f
++
++#define JZ_CLOCK_UHC_DIV_MASK 0x000f
++
++#define JZ_CLOCK_SPI_SRC_PLL BIT(31)
++#define JZ_CLOCK_SPI_DIV_MASK 0x000f
++
++#define JZ_CLOCK_PLL_M_MASK 0x01ff
++#define JZ_CLOCK_PLL_N_MASK 0x001f
++#define JZ_CLOCK_PLL_OD_MASK 0x0003
++#define JZ_CLOCK_PLL_STABLE BIT(10)
++#define JZ_CLOCK_PLL_BYPASS BIT(9)
++#define JZ_CLOCK_PLL_ENABLED BIT(8)
++#define JZ_CLOCK_PLL_STABLIZE_MASK 0x000f
++#define JZ_CLOCK_PLL_M_OFFSET 23
++#define JZ_CLOCK_PLL_N_OFFSET 18
++#define JZ_CLOCK_PLL_OD_OFFSET 16
++
++static void __iomem *jz_clock_base;
++spinlock_t jz_clock_lock;
++static LIST_HEAD(jz_clocks);
++
++struct clk {
++ const char *name;
++ struct clk* parent;
++
++ uint32_t gate_bit;
++
++ unsigned long (*get_rate)(struct clk* clk);
++ unsigned long (*round_rate)(struct clk *clk, unsigned long rate);
++ int (*set_rate)(struct clk* clk, unsigned long rate);
++ int (*enable)(struct clk* clk);
++ int (*disable)(struct clk* clk);
++
++ int (*set_parent)(struct clk* clk, struct clk *parent);
++ struct list_head list;
++};
++
++struct main_clk {
++ struct clk clk;
++ uint32_t div_offset;
++};
++
++struct divided_clk {
++ struct clk clk;
++ uint32_t reg;
++ uint32_t mask;
++};
++
++struct static_clk {
++ struct clk clk;
++ unsigned long rate;
++};
++
++static uint32_t jz_clk_reg_read(int reg)
++{
++ return readl(jz_clock_base + reg);
++}
++
++static void jz_clk_reg_write_mask(int reg, uint32_t val, uint32_t mask)
++{
++ uint32_t val2;
++
++ spin_lock(&jz_clock_lock);
++ val2 = readl(jz_clock_base + reg);
++ val2 &= ~mask;
++ val2 |= val;
++ writel(val2, jz_clock_base + reg);
++ spin_unlock(&jz_clock_lock);
++}
++
++static void jz_clk_reg_set_bits(int reg, uint32_t mask)
++{
++ uint32_t val;
++
++ spin_lock(&jz_clock_lock);
++ val = readl(jz_clock_base + reg);
++ val |= mask;
++ writel(val, jz_clock_base + reg);
++ spin_unlock(&jz_clock_lock);
++}
++
++static void jz_clk_reg_clear_bits(int reg, uint32_t mask)
++{
++ uint32_t val;
++
++ spin_lock(&jz_clock_lock);
++ val = readl(jz_clock_base + reg);
++ val &= ~mask;
++ writel(val, jz_clock_base + reg);
++ spin_unlock(&jz_clock_lock);
++}
++
++static int jz_clk_enable_gating(struct clk *clk)
++{
++ jz_clk_reg_clear_bits(JZ_REG_CLOCK_GATE, clk->gate_bit);
++ return 0;
++}
++
++static int jz_clk_disable_gating(struct clk *clk)
++{
++ jz_clk_reg_set_bits(JZ_REG_CLOCK_GATE, clk->gate_bit);
++ return 0;
++}
++
++static unsigned long jz_clk_static_get_rate(struct clk *clk)
++{
++ return ((struct static_clk*)clk)->rate;
++}
++
++static int jz_clk_ko_enable(struct clk* clk)
++{
++ jz_clk_reg_set_bits(JZ_REG_CLOCK_CTRL, JZ_CLOCK_CTRL_KO_ENABLE);
++ return 0;
++}
++
++static int jz_clk_ko_disable(struct clk* clk)
++{
++ jz_clk_reg_clear_bits(JZ_REG_CLOCK_CTRL, JZ_CLOCK_CTRL_KO_ENABLE);
++ return 0;
++}
++
++
++static const int pllno[] = {1, 2, 2, 4};
++
++static unsigned long jz_clk_pll_get_rate(struct clk *clk)
++{
++ uint32_t val;
++ int m;
++ int n;
++ int od;
++
++ val = jz_clk_reg_read(JZ_REG_CLOCK_PLL);
++
++ if (val & JZ_CLOCK_PLL_BYPASS)
++ return clk_get_rate(clk->parent);
++
++ m = ((val >> 23) & 0x1ff) + 2;
++ n = ((val >> 18) & 0x1f) + 2;
++ od = (val >> 16) & 0x3;
++
++ return clk_get_rate(clk->parent) * (m / n) / pllno[od];
++}
++
++static unsigned long jz_clk_pll_half_get_rate(struct clk *clk)
++{
++ uint32_t reg;
++
++ reg = jz_clk_reg_read(JZ_REG_CLOCK_CTRL);
++ if (reg & JZ_CLOCK_CTRL_PLL_HALF)
++ return jz_clk_pll_get_rate(NULL) >> 1;
++ return jz_clk_pll_get_rate(NULL);
++}
++
++
++
++static const int jz_clk_main_divs[] = {1, 2, 3, 4, 6, 8, 12, 16, 24, 32};
++
++static unsigned long jz_clk_main_round_rate(struct clk *clk, unsigned long rate)
++{
++ unsigned long parent_rate = jz_clk_pll_get_rate(NULL);
++ int div;
++
++ div = parent_rate / rate;
++ if (div > 32)
++ return parent_rate / 32;
++ else if (div < 1)
++ return parent_rate;
++
++ div &= (0x3 << (ffs(div) - 1));
++
++ return parent_rate / div;
++}
++
++static unsigned long jz_clk_main_get_rate(struct clk *clk) {
++ struct main_clk *mclk = (struct main_clk*)clk;
++ uint32_t div;
++
++ div = jz_clk_reg_read(JZ_REG_CLOCK_CTRL);
++
++ div >>= mclk->div_offset;
++ div &= 0xf;
++
++ if (div >= ARRAY_SIZE(jz_clk_main_divs))
++ div = ARRAY_SIZE(jz_clk_main_divs) - 1;
++
++ return jz_clk_pll_get_rate(NULL) / jz_clk_main_divs[div];
++}
++
++static int jz_clk_main_set_rate(struct clk *clk, unsigned long rate)
++{
++ struct main_clk *mclk = (struct main_clk*)clk;
++ int i;
++ int div;
++ unsigned long parent_rate = jz_clk_pll_get_rate(NULL);
++
++ rate = jz_clk_main_round_rate(clk, rate);
++
++ div = parent_rate / rate;
++
++ i = (ffs(div) - 1) << 1;
++ if (i > 0 && !(div & BIT(i-1)))
++ i -= 1;
++
++ jz_clk_reg_write_mask(JZ_REG_CLOCK_CTRL, i << mclk->div_offset,
++ 0xf << mclk->div_offset);
++
++ return 0;
++}
++
++
++static struct static_clk jz_clk_ext = {
++ .clk = {
++ .name = "ext",
++ .get_rate = jz_clk_static_get_rate,
++ },
++};
++
++static struct clk jz_clk_pll = {
++ .name = "pll",
++ .parent = &jz_clk_ext.clk,
++ .get_rate = jz_clk_pll_get_rate,
++};
++
++static struct clk jz_clk_pll_half = {
++ .name = "pll half",
++ .parent = &jz_clk_pll,
++ .get_rate = jz_clk_pll_half_get_rate,
++};
++
++static struct main_clk jz_clk_cpu = {
++ .clk = {
++ .name = "cclk",
++ .parent = &jz_clk_pll,
++ .get_rate = jz_clk_main_get_rate,
++ .set_rate = jz_clk_main_set_rate,
++ .round_rate = jz_clk_main_round_rate,
++ },
++ .div_offset = JZ_CLOCK_CTRL_CDIV_OFFSET,
++};
++
++static struct main_clk jz_clk_memory = {
++ .clk = {
++ .name = "mclk",
++ .parent = &jz_clk_pll,
++ .get_rate = jz_clk_main_get_rate,
++ .set_rate = jz_clk_main_set_rate,
++ .round_rate = jz_clk_main_round_rate,
++ },
++ .div_offset = JZ_CLOCK_CTRL_MDIV_OFFSET,
++};
++
++static struct main_clk jz_clk_high_speed_peripheral = {
++ .clk = {
++ .name = "hclk",
++ .parent = &jz_clk_pll,
++ .get_rate = jz_clk_main_get_rate,
++ .set_rate = jz_clk_main_set_rate,
++ .round_rate = jz_clk_main_round_rate,
++ },
++ .div_offset = JZ_CLOCK_CTRL_HDIV_OFFSET,
++};
++
++
++static struct main_clk jz_clk_low_speed_peripheral = {
++ .clk = {
++ .name = "pclk",
++ .parent = &jz_clk_pll,
++ .get_rate = jz_clk_main_get_rate,
++ .set_rate = jz_clk_main_set_rate,
++ },
++ .div_offset = JZ_CLOCK_CTRL_PDIV_OFFSET,
++};
++
++static struct clk jz_clk_ko = {
++ .name = "cko",
++ .parent = &jz_clk_memory.clk,
++ .enable = jz_clk_ko_enable,
++ .disable = jz_clk_ko_disable,
++};
++
++static int jz_clk_spi_set_parent(struct clk *clk, struct clk *parent)
++{
++ if (parent == &jz_clk_pll)
++ jz_clk_reg_set_bits(JZ_CLOCK_SPI_SRC_PLL, JZ_REG_CLOCK_SPI);
++ else if(parent == &jz_clk_ext.clk)
++ jz_clk_reg_clear_bits(JZ_CLOCK_SPI_SRC_PLL, JZ_REG_CLOCK_SPI);
++ else
++ return -EINVAL;
++
++ clk->parent = parent;
++
++ return 0;
++}
++
++static int jz_clk_i2s_set_parent(struct clk *clk, struct clk *parent)
++{
++ if (parent == &jz_clk_pll_half)
++ jz_clk_reg_set_bits(JZ_REG_CLOCK_CTRL, JZ_CLOCK_CTRL_I2S_SRC_PLL);
++ else if(parent == &jz_clk_ext.clk)
++ jz_clk_reg_clear_bits(JZ_REG_CLOCK_CTRL, JZ_CLOCK_CTRL_I2S_SRC_PLL);
++ else
++ return -EINVAL;
++
++ clk->parent = parent;
++
++ return 0;
++}
++
++static int jz_clk_udc_set_parent(struct clk *clk, struct clk *parent)
++{
++ if (parent == &jz_clk_pll_half)
++ jz_clk_reg_set_bits(JZ_REG_CLOCK_CTRL, JZ_CLOCK_CTRL_UDC_SRC_PLL);
++ else if(parent == &jz_clk_ext.clk)
++ jz_clk_reg_clear_bits(JZ_REG_CLOCK_CTRL, JZ_CLOCK_CTRL_UDC_SRC_PLL);
++ else
++ return -EINVAL;
++
++ clk->parent = parent;
++
++ return 0;
++}
++
++static int jz_clk_udc_set_rate(struct clk *clk, unsigned long rate)
++{
++ int div;
++
++ if (clk->parent == &jz_clk_ext.clk)
++ return -EINVAL;
++
++ div = clk_get_rate(clk->parent) / rate - 1;
++
++ if (div < 0)
++ div = 0;
++ else if (div > 63)
++ div = 63;
++
++ jz_clk_reg_write_mask(JZ_REG_CLOCK_CTRL, div << JZ_CLOCK_CTRL_UDIV_OFFSET,
++ JZ_CLOCK_CTRL_UDIV_MASK);
++ return 0;
++}
++
++static unsigned long jz_clk_udc_get_rate(struct clk *clk)
++{
++ int div;
++
++ if (clk->parent == &jz_clk_ext.clk)
++ return clk_get_rate(clk->parent);
++
++ div = (jz_clk_reg_read(JZ_REG_CLOCK_CTRL) & JZ_CLOCK_CTRL_UDIV_MASK);
++ div >>= JZ_CLOCK_CTRL_UDIV_OFFSET;
++ div += 1;
++
++ return clk_get_rate(clk->parent) / div;
++}
++
++static unsigned long jz_clk_divided_get_rate(struct clk *clk)
++{
++ struct divided_clk *dclk = (struct divided_clk*)clk;
++ int div;
++
++ if (clk->parent == &jz_clk_ext.clk)
++ return clk_get_rate(clk->parent);
++
++ div = (jz_clk_reg_read(dclk->reg) & dclk->mask) + 1;
++
++ return clk_get_rate(clk->parent) / div;
++}
++
++static int jz_clk_divided_set_rate(struct clk *clk, unsigned long rate)
++{
++ struct divided_clk *dclk = (struct divided_clk*)clk;
++ int div;
++
++ if (clk->parent == &jz_clk_ext.clk)
++ return -EINVAL;
++
++ div = clk_get_rate(clk->parent) / rate - 1;
++
++ if (div < 0)
++ div = 0;
++ else if(div > dclk->mask)
++ div = dclk->mask;
++
++ jz_clk_reg_write_mask(dclk->reg, div, dclk->mask);
++
++ return 0;
++}
++
++static unsigned long jz_clk_ldclk_round_rate(struct clk *clk, unsigned long rate)
++{
++ int div;
++ unsigned long parent_rate = jz_clk_pll_half_get_rate(NULL);
++
++ if (rate > 150000000)
++ return 150000000;
++
++ div = parent_rate / rate;
++ if (div < 1)
++ div = 1;
++ else if(div > 32)
++ div = 32;
++
++ return parent_rate / div;
++}
++
++static int jz_clk_ldclk_set_rate(struct clk *clk, unsigned long rate)
++{
++ int div;
++
++ if (rate > 150000000)
++ return -EINVAL;
++
++ div = jz_clk_pll_half_get_rate(NULL) / rate - 1;
++ if (div < 0)
++ div = 0;
++ else if(div > 31)
++ div = 31;
++
++ jz_clk_reg_write_mask(JZ_REG_CLOCK_CTRL, div << JZ_CLOCK_CTRL_LDIV_OFFSET,
++ JZ_CLOCK_CTRL_LDIV_MASK);
++}
++
++static unsigned long jz_clk_ldclk_get_rate(struct clk *clk)
++{
++ int div;
++
++ div = jz_clk_reg_read(JZ_REG_CLOCK_CTRL) & JZ_CLOCK_CTRL_LDIV_MASK;
++ div >>= JZ_CLOCK_CTRL_LDIV_OFFSET;
++
++ return jz_clk_pll_half_get_rate(NULL) / (div + 1);
++}
++
++static struct clk jz_clk_ld = {
++ .name = "lcd",
++ .parent = &jz_clk_pll_half,
++ .set_rate = jz_clk_ldclk_set_rate,
++ .get_rate = jz_clk_ldclk_get_rate,
++ .round_rate = jz_clk_ldclk_round_rate,
++};
++
++static struct divided_clk jz_clk_lp = {
++ .clk = {
++ .name = "lcd_pclk",
++ .parent = &jz_clk_pll_half,
++ },
++ .reg = JZ_REG_CLOCK_LCD,
++ .mask = JZ_CLOCK_LCD_DIV_MASK,
++};
++
++static struct clk jz_clk_cim_mclk = {
++ .name = "cim_mclk",
++ .parent = &jz_clk_high_speed_peripheral.clk,
++};
++
++static struct static_clk jz_clk_cim_pclk = {
++ .clk = {
++ .name = "cim_pclk",
++ .gate_bit = JZ_CLOCK_GATE_CIM,
++ .get_rate = jz_clk_static_get_rate,
++ .enable = jz_clk_enable_gating,
++ .disable = jz_clk_disable_gating,
++ },
++};
++
++static struct divided_clk jz_clk_i2s = {
++ .clk = {
++ .name = "i2s",
++ .parent = &jz_clk_ext.clk,
++ .gate_bit = JZ_CLOCK_GATE_AIC,
++ .set_parent = jz_clk_i2s_set_parent,
++ .set_rate = jz_clk_divided_set_rate,
++ .get_rate = jz_clk_divided_get_rate,
++ },
++ .reg = JZ_REG_CLOCK_I2S,
++ .mask = JZ_CLOCK_I2S_DIV_MASK,
++};
++
++static struct divided_clk jz_clk_mmc = {
++ .clk = {
++ .name = "mmc",
++ .parent = &jz_clk_pll_half,
++ .gate_bit = JZ_CLOCK_GATE_MMC,
++ .set_rate = jz_clk_divided_set_rate,
++ .get_rate = jz_clk_divided_get_rate,
++ .enable = jz_clk_enable_gating,
++ .disable = jz_clk_disable_gating,
++ },
++ .reg = JZ_REG_CLOCK_MMC,
++ .mask = JZ_CLOCK_MMC_DIV_MASK,
++};
++
++static struct divided_clk jz_clk_uhc = {
++ .clk = {
++ .name = "uhc",
++ .parent = &jz_clk_pll_half,
++ .gate_bit = JZ_CLOCK_GATE_UHC,
++ .set_rate = jz_clk_divided_set_rate,
++ .get_rate = jz_clk_divided_get_rate,
++ .enable = jz_clk_enable_gating,
++ .disable = jz_clk_disable_gating,
++ },
++ .reg = JZ_REG_CLOCK_UHC,
++ .mask = JZ_CLOCK_UHC_DIV_MASK,
++};
++
++static struct clk jz_clk_udc = {
++ .name = "udc",
++ .parent = &jz_clk_ext.clk,
++ .set_parent = jz_clk_udc_set_parent,
++ .set_rate = jz_clk_udc_set_rate,
++ .get_rate = jz_clk_udc_get_rate,
++};
++
++static struct divided_clk jz_clk_spi = {
++ .clk = {
++ .name = "spi",
++ .parent = &jz_clk_ext.clk,
++ .gate_bit = JZ_CLOCK_GATE_SPI,
++ .set_rate = jz_clk_divided_set_rate,
++ .get_rate = jz_clk_divided_get_rate,
++ .enable = jz_clk_enable_gating,
++ .disable = jz_clk_disable_gating,
++ .set_parent = jz_clk_spi_set_parent,
++ },
++ .reg = JZ_REG_CLOCK_SPI,
++ .mask = JZ_CLOCK_SPI_DIV_MASK,
++};
++
++static struct clk jz_clk_uart0 = {
++ .name = "uart0",
++ .parent = &jz_clk_ext.clk,
++ .gate_bit = JZ_CLOCK_GATE_UART0,
++ .enable = jz_clk_enable_gating,
++ .disable = jz_clk_disable_gating,
++};
++
++static struct clk jz_clk_uart1 = {
++ .name = "uart1",
++ .parent = &jz_clk_ext.clk,
++ .gate_bit = JZ_CLOCK_GATE_UART1,
++ .enable = jz_clk_enable_gating,
++ .disable = jz_clk_disable_gating,
++};
++
++static struct clk jz_clk_dma = {
++ .name = "dma",
++ .parent = &jz_clk_high_speed_peripheral.clk,
++ .gate_bit = JZ_CLOCK_GATE_UART0,
++ .enable = jz_clk_enable_gating,
++ .disable = jz_clk_disable_gating,
++};
++
++static struct clk jz_clk_ipu = {
++ .name = "ipu",
++ .parent = &jz_clk_high_speed_peripheral.clk,
++ .gate_bit = JZ_CLOCK_GATE_IPU,
++ .enable = jz_clk_enable_gating,
++ .disable = jz_clk_disable_gating,
++};
++
++static struct clk jz_clk_adc = {
++ .name = "adc",
++ .parent = &jz_clk_ext.clk,
++ .gate_bit = JZ_CLOCK_GATE_ADC,
++ .enable = jz_clk_enable_gating,
++ .disable = jz_clk_disable_gating,
++};
++
++static struct clk jz_clk_i2c = {
++ .name = "i2c",
++ .parent = &jz_clk_ext.clk,
++ .gate_bit = JZ_CLOCK_GATE_I2C,
++ .enable = jz_clk_enable_gating,
++ .disable = jz_clk_disable_gating,
++};
++
++static struct static_clk jz_clk_rtc = {
++ .clk = {
++ .name = "rtc",
++ .gate_bit = JZ_CLOCK_GATE_RTC,
++ .enable = jz_clk_enable_gating,
++ .disable = jz_clk_disable_gating,
++ },
++ .rate = 32768,
++};
++
++int clk_enable(struct clk *clk)
++{
++ if (!clk->enable)
++ return -EINVAL;
++
++ return clk->enable(clk);
++}
++EXPORT_SYMBOL_GPL(clk_enable);
++
++void clk_disable(struct clk *clk)
++{
++ if (clk->disable)
++ clk->disable(clk);
++}
++EXPORT_SYMBOL_GPL(clk_disable);
++
++unsigned long clk_get_rate(struct clk *clk)
++{
++ if (clk->get_rate)
++ return clk->get_rate(clk);
++ if (clk->parent)
++ return clk_get_rate(clk->parent);
++
++ return -EINVAL;
++}
++EXPORT_SYMBOL_GPL(clk_get_rate);
++
++int clk_set_rate(struct clk *clk, unsigned long rate)
++{
++ if (!clk->set_rate)
++ return -EINVAL;
++ return clk->set_rate(clk, rate);
++}
++EXPORT_SYMBOL_GPL(clk_set_rate);
++
++long clk_round_rate(struct clk *clk, unsigned long rate)
++{
++ if (clk->round_rate)
++ return clk->round_rate(clk, rate);
++
++ return -EINVAL;
++}
++EXPORT_SYMBOL_GPL(clk_round_rate);
++
++int clk_set_parent(struct clk *clk, struct clk *parent)
++{
++ int ret;
++
++ if (!clk->set_parent)
++ return -EINVAL;
++
++ clk->disable(clk);
++ ret = clk->set_parent(clk, parent);
++ clk->enable(clk);
++
++ return ret;
++}
++EXPORT_SYMBOL_GPL(clk_set_parent);
++
++
++struct clk *clk_get(struct device *dev, const char *name)
++{
++ struct clk *clk;
++
++ list_for_each_entry(clk, &jz_clocks, list) {
++ if (strcmp(clk->name, name))
++ return clk;
++ }
++ return ERR_PTR(-ENOENT);
++}
++EXPORT_SYMBOL_GPL(clk_get);
++
++void clk_put(struct clk *clk)
++{
++}
++EXPORT_SYMBOL_GPL(clk_put);
++
++inline static void clk_add(struct clk *clk)
++{
++ list_add_tail(&clk->list, &jz_clocks);
++}
++
++static void clk_register_clks(void)
++{
++ clk_add(&jz_clk_ext.clk);
++ clk_add(&jz_clk_pll);
++ clk_add(&jz_clk_pll_half);
++ clk_add(&jz_clk_cpu.clk);
++ clk_add(&jz_clk_high_speed_peripheral.clk);
++ clk_add(&jz_clk_low_speed_peripheral.clk);
++ clk_add(&jz_clk_ko);
++ clk_add(&jz_clk_ld);
++ clk_add(&jz_clk_lp.clk);
++ clk_add(&jz_clk_cim_mclk);
++ clk_add(&jz_clk_cim_pclk.clk);
++ clk_add(&jz_clk_i2s.clk);
++ clk_add(&jz_clk_mmc.clk);
++ clk_add(&jz_clk_uhc.clk);
++ clk_add(&jz_clk_udc);
++ clk_add(&jz_clk_uart0);
++ clk_add(&jz_clk_uart1);
++ clk_add(&jz_clk_dma);
++ clk_add(&jz_clk_ipu);
++ clk_add(&jz_clk_adc);
++ clk_add(&jz_clk_i2c);
++ clk_add(&jz_clk_rtc.clk);
++}
++
++int jz_init_clocks(unsigned long ext_rate)
++{
++ uint32_t val;
++
++ jz_clock_base = ioremap(0x10000000, 0x100);
++ if (!jz_clock_base)
++ return -EBUSY;
++
++ jz_clk_ext.rate = ext_rate;
++
++ val = jz_clk_reg_read(JZ_REG_CLOCK_SPI);
++
++ if (val & JZ_CLOCK_SPI_SRC_PLL)
++ jz_clk_spi.clk.parent = &jz_clk_pll_half;
++
++ val = jz_clk_reg_read(JZ_REG_CLOCK_CTRL);
++
++ if (val & JZ_CLOCK_CTRL_I2S_SRC_PLL)
++ jz_clk_i2s.clk.parent = &jz_clk_pll_half;
++
++ if (val & JZ_CLOCK_CTRL_UDC_SRC_PLL)
++ jz_clk_udc.parent = &jz_clk_pll_half;
++
++ clk_register_clks();
++
++ return 0;
++}
++EXPORT_SYMBOL_GPL(jz_init_clocks);
+diff -ruN linux-2.6.31-vanilla/arch/mips/jz4740/cpufreq.c linux-2.6.31/arch/mips/jz4740/cpufreq.c
+--- linux-2.6.31-vanilla/arch/mips/jz4740/cpufreq.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/jz4740/cpufreq.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,602 @@
++/*
++ * linux/arch/mips/jz4740/cpufreq.c
++ *
++ * cpufreq driver for JZ4740
++ *
++ * Copyright (c) 2006-2007 Ingenic Semiconductor Inc.
++ * Author: <lhhuang@ingenic.cn>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/init.h>
++
++#include <linux/cpufreq.h>
++
++#include <asm/jzsoc.h>
++#include <asm/processor.h>
++
++#define dprintk(msg...) cpufreq_debug_printk(CPUFREQ_DEBUG_DRIVER, \
++ "cpufreq-jz4740", msg)
++
++#undef CHANGE_PLL
++
++#define PLL_UNCHANGED 0
++#define PLL_GOES_UP 1
++#define PLL_GOES_DOWN 2
++
++#define PLL_WAIT_500NS (500*(__cpm_get_cclk()/1000000000))
++
++/* Saved the boot-time parameters */
++static struct {
++ /* SDRAM parameters */
++ unsigned int mclk; /* memory clock, KHz */
++ unsigned int tras; /* RAS pulse width, cycles of mclk */
++ unsigned int rcd; /* RAS to CAS Delay, cycles of mclk */
++ unsigned int tpc; /* RAS Precharge time, cycles of mclk */
++ unsigned int trwl; /* Write Precharge Time, cycles of mclk */
++ unsigned int trc; /* RAS Cycle Time, cycles of mclk */
++ unsigned int rtcor; /* Refresh Time Constant */
++ unsigned int sdram_initialized;
++
++ /* LCD parameters */
++ unsigned int lcd_clk; /* LCD clock, Hz */
++ unsigned int lcdpix_clk; /* LCD Pixel clock, Hz */
++ unsigned int lcd_clks_initialized;
++} boot_config;
++
++struct jz4740_freq_percpu_info {
++ struct cpufreq_frequency_table table[7];
++};
++
++static struct jz4740_freq_percpu_info jz4740_freq_table;
++
++/*
++ * This contains the registers value for an operating point.
++ * If only part of a register needs to change then there is
++ * a mask value for that register.
++ * When going to a new operating point the current register
++ * value is ANDed with the ~mask and ORed with the new value.
++ */
++struct dpm_regs {
++ u32 cpccr; /* Clock Freq Control Register */
++ u32 cpccr_mask; /* Clock Freq Control Register mask */
++ u32 cppcr; /* PLL1 Control Register */
++ u32 cppcr_mask; /* PLL1 Control Register mask */
++ u32 pll_up_flag; /* New PLL freq is higher than current or not */
++};
++
++extern jz_clocks_t jz_clocks;
++
++static void jz_update_clocks(void)
++{
++ /* Next clocks must be updated if we have changed
++ * the PLL or divisors.
++ */
++ jz_clocks.cclk = __cpm_get_cclk();
++ jz_clocks.hclk = __cpm_get_hclk();
++ jz_clocks.mclk = __cpm_get_mclk();
++ jz_clocks.pclk = __cpm_get_pclk();
++ jz_clocks.lcdclk = __cpm_get_lcdclk();
++ jz_clocks.pixclk = __cpm_get_pixclk();
++ jz_clocks.i2sclk = __cpm_get_i2sclk();
++ jz_clocks.usbclk = __cpm_get_usbclk();
++ jz_clocks.mscclk = __cpm_get_mscclk();
++}
++
++static void
++jz_init_boot_config(void)
++{
++ if (!boot_config.lcd_clks_initialized) {
++ /* the first time to scale pll */
++ boot_config.lcd_clk = __cpm_get_lcdclk();
++ boot_config.lcdpix_clk = __cpm_get_pixclk();
++ boot_config.lcd_clks_initialized = 1;
++ }
++
++ if (!boot_config.sdram_initialized) {
++ /* the first time to scale frequencies */
++ unsigned int dmcr, rtcor;
++ unsigned int tras, rcd, tpc, trwl, trc;
++
++ dmcr = REG_EMC_DMCR;
++ rtcor = REG_EMC_RTCOR;
++
++ tras = (dmcr >> 13) & 0x7;
++ rcd = (dmcr >> 11) & 0x3;
++ tpc = (dmcr >> 8) & 0x7;
++ trwl = (dmcr >> 5) & 0x3;
++ trc = (dmcr >> 2) & 0x7;
++
++ boot_config.mclk = __cpm_get_mclk() / 1000;
++ boot_config.tras = tras + 4;
++ boot_config.rcd = rcd + 1;
++ boot_config.tpc = tpc + 1;
++ boot_config.trwl = trwl + 1;
++ boot_config.trc = trc * 2 + 1;
++ boot_config.rtcor = rtcor;
++
++ boot_config.sdram_initialized = 1;
++ }
++}
++
++static void jz_update_dram_rtcor(unsigned int new_mclk)
++{
++ unsigned int rtcor;
++
++ new_mclk /= 1000;
++ rtcor = boot_config.rtcor * new_mclk / boot_config.mclk;
++ rtcor--;
++
++ if (rtcor < 1) rtcor = 1;
++ if (rtcor > 255) rtcor = 255;
++
++ REG_EMC_RTCOR = rtcor;
++ REG_EMC_RTCNT = rtcor;
++}
++
++static void jz_update_dram_dmcr(unsigned int new_mclk)
++{
++ unsigned int dmcr;
++ unsigned int tras, rcd, tpc, trwl, trc;
++ unsigned int valid_time, new_time; /* ns */
++
++ new_mclk /= 1000;
++ tras = boot_config.tras * new_mclk / boot_config.mclk;
++ rcd = boot_config.rcd * new_mclk / boot_config.mclk;
++ tpc = boot_config.tpc * new_mclk / boot_config.mclk;
++ trwl = boot_config.trwl * new_mclk / boot_config.mclk;
++ trc = boot_config.trc * new_mclk / boot_config.mclk;
++
++ /* Validation checking */
++ valid_time = (boot_config.tras * 1000000) / boot_config.mclk;
++ new_time = (tras * 1000000) / new_mclk;
++ if (new_time < valid_time) tras += 1;
++
++ valid_time = (boot_config.rcd * 1000000) / boot_config.mclk;
++ new_time = (rcd * 1000000) / new_mclk;
++ if (new_time < valid_time) rcd += 1;
++
++ valid_time = (boot_config.tpc * 1000000) / boot_config.mclk;
++ new_time = (tpc * 1000000) / new_mclk;
++ if (new_time < valid_time) tpc += 1;
++
++ valid_time = (boot_config.trwl * 1000000) / boot_config.mclk;
++ new_time = (trwl * 1000000) / new_mclk;
++ if (new_time < valid_time) trwl += 1;
++
++ valid_time = (boot_config.trc * 1000000) / boot_config.mclk;
++ new_time = (trc * 1000000) / new_mclk;
++ if (new_time < valid_time) trc += 2;
++
++ tras = (tras < 4) ? 4: tras;
++ tras = (tras > 11) ? 11: tras;
++ tras -= 4;
++
++ rcd = (rcd < 1) ? 1: rcd;
++ rcd = (rcd > 4) ? 4: rcd;
++ rcd -= 1;
++
++ tpc = (tpc < 1) ? 1: tpc;
++ tpc = (tpc > 8) ? 8: tpc;
++ tpc -= 1;
++
++ trwl = (trwl < 1) ? 1: trwl;
++ trwl = (trwl > 4) ? 4: trwl;
++ trwl -= 1;
++
++ trc = (trc < 1) ? 1: trc;
++ trc = (trc > 15) ? 15: trc;
++ trc /= 2;
++
++ dmcr = REG_EMC_DMCR;
++
++ dmcr &= ~(EMC_DMCR_TRAS_MASK | EMC_DMCR_RCD_MASK | EMC_DMCR_TPC_MASK | EMC_DMCR_TRWL_MASK | EMC_DMCR_TRC_MASK);
++ dmcr |= ((tras << EMC_DMCR_TRAS_BIT) | (rcd << EMC_DMCR_RCD_BIT) | (tpc << EMC_DMCR_TPC_BIT) | (trwl << EMC_DMCR_TRWL_BIT) | (trc << EMC_DMCR_TRC_BIT));
++
++ REG_EMC_DMCR = dmcr;
++}
++
++static void jz_update_dram_prev(unsigned int cur_mclk, unsigned int new_mclk)
++{
++ /* No risk, no fun: run with interrupts on! */
++ if (new_mclk > cur_mclk) {
++ /* We're going FASTER, so first update TRAS, RCD, TPC, TRWL
++ * and TRC of DMCR before changing the frequency.
++ */
++ jz_update_dram_dmcr(new_mclk);
++ } else {
++ /* We're going SLOWER: first update RTCOR value
++ * before changing the frequency.
++ */
++ jz_update_dram_rtcor(new_mclk);
++ }
++}
++
++static void jz_update_dram_post(unsigned int cur_mclk, unsigned int new_mclk)
++{
++ /* No risk, no fun: run with interrupts on! */
++ if (new_mclk > cur_mclk) {
++ /* We're going FASTER, so update RTCOR
++ * after changing the frequency
++ */
++ jz_update_dram_rtcor(new_mclk);
++ } else {
++ /* We're going SLOWER: so update TRAS, RCD, TPC, TRWL
++ * and TRC of DMCR after changing the frequency.
++ */
++ jz_update_dram_dmcr(new_mclk);
++ }
++}
++
++static void jz_scale_divisors(struct dpm_regs *regs)
++{
++ unsigned int cpccr;
++ unsigned int cur_mclk, new_mclk;
++ int div[] = {1, 2, 3, 4, 6, 8, 12, 16, 24, 32};
++ unsigned int tmp = 0, wait = PLL_WAIT_500NS;
++
++ cpccr = REG_CPM_CPCCR;
++ cpccr &= ~((unsigned long)regs->cpccr_mask);
++ cpccr |= regs->cpccr;
++ cpccr |= CPM_CPCCR_CE; /* update immediately */
++
++ cur_mclk = __cpm_get_mclk();
++ new_mclk = __cpm_get_pllout() / div[(cpccr & CPM_CPCCR_MDIV_MASK) >> CPM_CPCCR_MDIV_BIT];
++
++ /* Update some DRAM parameters before changing frequency */
++ jz_update_dram_prev(cur_mclk, new_mclk);
++
++ /* update register to change the clocks.
++ * align this code to a cache line.
++ */
++ __asm__ __volatile__(
++ ".set noreorder\n\t"
++ ".align 5\n"
++ "sw %1,0(%0)\n\t"
++ "li %3,0\n\t"
++ "1:\n\t"
++ "bne %3,%2,1b\n\t"
++ "addi %3, 1\n\t"
++ "nop\n\t"
++ "nop\n\t"
++ "nop\n\t"
++ "nop\n\t"
++ ".set reorder\n\t"
++ :
++ : "r" (CPM_CPCCR), "r" (cpccr), "r" (wait), "r" (tmp));
++
++ /* Update some other DRAM parameters after changing frequency */
++ jz_update_dram_post(cur_mclk, new_mclk);
++}
++
++#ifdef CHANGE_PLL
++/* Maintain the LCD clock and pixel clock */
++static void jz_scale_lcd_divisors(struct dpm_regs *regs)
++{
++ unsigned int new_pll, new_lcd_div, new_lcdpix_div;
++ unsigned int cpccr;
++ unsigned int tmp = 0, wait = PLL_WAIT_500NS;
++
++ if (!boot_config.lcd_clks_initialized) return;
++
++ new_pll = __cpm_get_pllout();
++ new_lcd_div = new_pll / boot_config.lcd_clk;
++ new_lcdpix_div = new_pll / boot_config.lcdpix_clk;
++
++ if (new_lcd_div < 1)
++ new_lcd_div = 1;
++ if (new_lcd_div > 16)
++ new_lcd_div = 16;
++
++ if (new_lcdpix_div < 1)
++ new_lcdpix_div = 1;
++ if (new_lcdpix_div > 512)
++ new_lcdpix_div = 512;
++
++// REG_CPM_CPCCR2 = new_lcdpix_div - 1;
++
++ cpccr = REG_CPM_CPCCR;
++ cpccr &= ~CPM_CPCCR_LDIV_MASK;
++ cpccr |= ((new_lcd_div - 1) << CPM_CPCCR_LDIV_BIT);
++ cpccr |= CPM_CPCCR_CE; /* update immediately */
++
++ /* update register to change the clocks.
++ * align this code to a cache line.
++ */
++ __asm__ __volatile__(
++ ".set noreorder\n\t"
++ ".align 5\n"
++ "sw %1,0(%0)\n\t"
++ "li %3,0\n\t"
++ "1:\n\t"
++ "bne %3,%2,1b\n\t"
++ "addi %3, 1\n\t"
++ "nop\n\t"
++ "nop\n\t"
++ "nop\n\t"
++ "nop\n\t"
++ ".set reorder\n\t"
++ :
++ : "r" (CPM_CPCCR), "r" (cpccr), "r" (wait), "r" (tmp));
++}
++
++static void jz_scale_pll(struct dpm_regs *regs)
++{
++ unsigned int cppcr;
++ unsigned int cur_mclk, new_mclk, new_pll;
++ int div[] = {1, 2, 3, 4, 6, 8, 12, 16, 24, 32};
++ int od[] = {1, 2, 2, 4};
++
++ cppcr = REG_CPM_CPPCR;
++ cppcr &= ~(regs->cppcr_mask | CPM_CPPCR_PLLS | CPM_CPPCR_PLLEN | CPM_CPPCR_PLLST_MASK);
++ regs->cppcr &= ~CPM_CPPCR_PLLEN;
++ cppcr |= (regs->cppcr | 0xff);
++
++ /* Update some DRAM parameters before changing frequency */
++ new_pll = JZ_EXTAL * ((cppcr>>23)+2) / ((((cppcr>>18)&0x1f)+2) * od[(cppcr>>16)&0x03]);
++ cur_mclk = __cpm_get_mclk();
++ new_mclk = new_pll / div[(REG_CPM_CPCCR>>CPM_CPCCR_MDIV_BIT) & 0xf];
++
++ /*
++ * Update some SDRAM parameters
++ */
++ jz_update_dram_prev(cur_mclk, new_mclk);
++
++ /*
++ * Update PLL, align code to cache line.
++ */
++ cppcr |= CPM_CPPCR_PLLEN;
++ __asm__ __volatile__(
++ ".set noreorder\n\t"
++ ".align 5\n"
++ "sw %1,0(%0)\n\t"
++ "nop\n\t"
++ "nop\n\t"
++ "nop\n\t"
++ "nop\n\t"
++ "nop\n\t"
++ "nop\n\t"
++ "nop\n\t"
++ ".set reorder\n\t"
++ :
++ : "r" (CPM_CPPCR), "r" (cppcr));
++
++ /* Update some other DRAM parameters after changing frequency */
++ jz_update_dram_post(cur_mclk, new_mclk);
++}
++#endif
++
++static void jz4740_transition(struct dpm_regs *regs)
++{
++ /*
++ * Get and save some boot-time conditions.
++ */
++ jz_init_boot_config();
++
++#ifdef CHANGE_PLL
++ /*
++ * Disable LCD before scaling pll.
++ * LCD and LCD pixel clocks should not be changed even if the PLL
++ * output frequency has been changed.
++ */
++ REG_LCD_CTRL &= ~LCD_CTRL_ENA;
++
++ /*
++ * Stop module clocks before scaling PLL
++ */
++ __cpm_stop_eth();
++ __cpm_stop_aic(1);
++ __cpm_stop_aic(2);
++#endif
++
++ /* ... add more as necessary */
++
++ if (regs->pll_up_flag == PLL_GOES_UP) {
++ /* the pll frequency is going up, so change dividors first */
++ jz_scale_divisors(regs);
++#ifdef CHANGE_PLL
++ jz_scale_pll(regs);
++#endif
++ }
++ else if (regs->pll_up_flag == PLL_GOES_DOWN) {
++ /* the pll frequency is going down, so change pll first */
++#ifdef CHANGE_PLL
++ jz_scale_pll(regs);
++#endif
++ jz_scale_divisors(regs);
++ }
++ else {
++ /* the pll frequency is unchanged, so change divisors only */
++ jz_scale_divisors(regs);
++ }
++
++#ifdef CHANGE_PLL
++ /*
++ * Restart module clocks before scaling PLL
++ */
++ __cpm_start_eth();
++ __cpm_start_aic(1);
++ __cpm_start_aic(2);
++
++ /* ... add more as necessary */
++
++ /* Scale the LCD divisors after scaling pll */
++ if (regs->pll_up_flag != PLL_UNCHANGED) {
++ jz_scale_lcd_divisors(regs);
++ }
++
++ /* Enable LCD controller */
++ REG_LCD_CTRL &= ~LCD_CTRL_DIS;
++ REG_LCD_CTRL |= LCD_CTRL_ENA;
++#endif
++
++ /* Update system clocks */
++ jz_update_clocks();
++}
++
++extern unsigned int idle_times;
++static unsigned int jz4740_freq_get(unsigned int cpu)
++{
++ return (__cpm_get_cclk() / 1000);
++}
++
++static unsigned int index_to_divisor(unsigned int index, struct dpm_regs *regs)
++{
++ int n2FR[33] = {
++ 0, 0, 1, 2, 3, 0, 4, 0, 5, 0, 0, 0, 6, 0, 0, 0,
++ 7, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
++ 9
++ };
++ int div[4] = {1, 2, 2, 2}; /* divisors of I:S:P:M */
++ unsigned int div_of_cclk, new_freq, i;
++
++ regs->pll_up_flag = PLL_UNCHANGED;
++ regs->cpccr_mask = CPM_CPCCR_CDIV_MASK | CPM_CPCCR_HDIV_MASK | CPM_CPCCR_PDIV_MASK | CPM_CPCCR_MDIV_MASK;
++
++ new_freq = jz4740_freq_table.table[index].frequency;
++
++ do {
++ div_of_cclk = __cpm_get_pllout() / (1000 * new_freq);
++ } while (div_of_cclk==0);
++
++ if(div_of_cclk == 1 || div_of_cclk == 2 || div_of_cclk == 4) {
++ for(i = 1; i<4; i++) {
++ div[i] = 3;
++ }
++ } else {
++ for(i = 1; i<4; i++) {
++ div[i] = 2;
++ }
++ }
++
++ for(i = 0; i<4; i++) {
++ div[i] *= div_of_cclk;
++ }
++
++ dprintk("divisors of I:S:P:M = %d:%d:%d:%d\n", div[0], div[1], div[2], div[3]);
++
++ regs->cpccr =
++ (n2FR[div[0]] << CPM_CPCCR_CDIV_BIT) |
++ (n2FR[div[1]] << CPM_CPCCR_HDIV_BIT) |
++ (n2FR[div[2]] << CPM_CPCCR_PDIV_BIT) |
++ (n2FR[div[3]] << CPM_CPCCR_MDIV_BIT);
++
++ return div_of_cclk;
++}
++
++static void jz4740_set_cpu_divider_index(unsigned int cpu, unsigned int index)
++{
++ unsigned long divisor, old_divisor;
++ struct cpufreq_freqs freqs;
++ struct dpm_regs regs;
++
++ old_divisor = __cpm_get_pllout() / __cpm_get_cclk();
++ divisor = index_to_divisor(index, &regs);
++
++ freqs.old = __cpm_get_cclk() / 1000;
++ freqs.new = __cpm_get_pllout() / (1000 * divisor);
++ freqs.cpu = cpu;
++
++ cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
++
++ if (old_divisor != divisor)
++ jz4740_transition(&regs);
++
++ cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
++}
++
++static int jz4740_freq_target(struct cpufreq_policy *policy,
++ unsigned int target_freq,
++ unsigned int relation)
++{
++ unsigned int new_index = 0;
++
++ if (cpufreq_frequency_table_target(policy,
++ &jz4740_freq_table.table[0],
++ target_freq, relation, &new_index))
++ return -EINVAL;
++
++ jz4740_set_cpu_divider_index(policy->cpu, new_index);
++
++ dprintk("new frequency is %d KHz (REG_CPM_CPCCR:0x%x)\n", __cpm_get_cclk() / 1000, REG_CPM_CPCCR);
++
++ return 0;
++}
++
++static int jz4740_freq_verify(struct cpufreq_policy *policy)
++{
++ return cpufreq_frequency_table_verify(policy,
++ &jz4740_freq_table.table[0]);
++}
++
++static int __init jz4740_cpufreq_driver_init(struct cpufreq_policy *policy)
++{
++
++ struct cpufreq_frequency_table *table = &jz4740_freq_table.table[0];
++ unsigned int MAX_FREQ;
++
++ dprintk(KERN_INFO "Jz4740 cpufreq driver\n");
++
++ if (policy->cpu != 0)
++ return -EINVAL;
++
++ policy->cur = MAX_FREQ = __cpm_get_cclk() / 1000; /* in kHz. Current and max frequency is determined by u-boot */
++ policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
++
++ policy->cpuinfo.min_freq = MAX_FREQ/8;
++ policy->cpuinfo.max_freq = MAX_FREQ;
++ policy->cpuinfo.transition_latency = 100000; /* in 10^(-9) s = nanoseconds */
++
++ table[0].index = 0;
++ table[0].frequency = MAX_FREQ/8;
++ table[1].index = 1;
++ table[1].frequency = MAX_FREQ/6;
++ table[2].index = 2;
++ table[2].frequency = MAX_FREQ/4;
++ table[3].index = 3;
++ table[3].frequency = MAX_FREQ/3;
++ table[4].index = 4;
++ table[4].frequency = MAX_FREQ/2;
++ table[5].index = 5;
++ table[5].frequency = MAX_FREQ;
++ table[6].index = 6;
++ table[6].frequency = CPUFREQ_TABLE_END;
++
++#ifdef CONFIG_CPU_FREQ_STAT_DETAILS
++ cpufreq_frequency_table_get_attr(table, policy->cpu); /* for showing /sys/devices/system/cpu/cpuX/cpufreq/stats/ */
++#endif
++
++ return cpufreq_frequency_table_cpuinfo(policy, table);
++}
++
++static struct cpufreq_driver cpufreq_jz4740_driver = {
++// .flags = CPUFREQ_STICKY,
++ .init = jz4740_cpufreq_driver_init,
++ .verify = jz4740_freq_verify,
++ .target = jz4740_freq_target,
++ .get = jz4740_freq_get,
++ .name = "jz4740",
++};
++
++static int __init jz4740_cpufreq_init(void)
++{
++ return cpufreq_register_driver(&cpufreq_jz4740_driver);
++}
++
++static void __exit jz4740_cpufreq_exit(void)
++{
++ cpufreq_unregister_driver(&cpufreq_jz4740_driver);
++}
++
++module_init(jz4740_cpufreq_init);
++module_exit(jz4740_cpufreq_exit);
++
++MODULE_AUTHOR("Regen <lhhuang@ingenic.cn>");
++MODULE_DESCRIPTION("cpufreq driver for Jz4740");
++MODULE_LICENSE("GPL");
++
+diff -ruN linux-2.6.31-vanilla/arch/mips/jz4740/dma.c linux-2.6.31/arch/mips/jz4740/dma.c
+--- linux-2.6.31-vanilla/arch/mips/jz4740/dma.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/jz4740/dma.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,922 @@
++/*
++ * linux/arch/mips/jz4740/dma.c
++ *
++ * Support functions for the JZ4740 internal DMA channels.
++ * No-descriptor transfer only.
++ * Descriptor transfer should also call jz_request_dma() to get a free
++ * channel and call jz_free_dma() to free the channel. And driver should
++ * build the DMA descriptor and setup the DMA channel by itself.
++ *
++ * Copyright (C) 2006 Ingenic Semiconductor Inc.
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ */
++
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/errno.h>
++#include <linux/sched.h>
++#include <linux/spinlock.h>
++#include <linux/string.h>
++#include <linux/delay.h>
++#include <linux/interrupt.h>
++#include <linux/soundcard.h>
++
++#include <asm/system.h>
++#include <asm/addrspace.h>
++#include <asm/jzsoc.h>
++
++#define JZ_REG_DMA_SRC_ADDR(x) ((x) * 0x20 + 0x00)
++#define JZ_REG_DMA_DEST_ADDR(x) ((x) * 0x20 + 0x04)
++#define JZ_REG_DMA_COUNT(x) ((x) * 0x20 + 0x08)
++#define JZ_REG_DMA_TYPE(x) ((x) * 0x20 + 0x0c)
++#define JZ_REG_DMA_STATUS(x) ((x) * 0x20 + 0x10)
++#define JZ_REG_DMA_CMD(x) ((x) * 0x20 + 0x14)
++#define JZ_REG_DMA_DESC_ADDR(x) ((x) * 0x20 + 0x18)
++#define JZ_REG_DMA_CTRL 0x300
++#define JZ_REG_DMA_IRQ 0x304
++#define JZ_REG_DMA_DOORBELL 0x308
++#define JZ_REG_DMA_DOORBELL_SET 0x30C
++
++#define JZ_DMA_STATUS_NO_DESC BIT(31)
++#define JZ_DMA_STATUS_CDOA_MASK (0xff << 16)
++#define JZ_DMA_STATUS_INV_DESC BIT(6)
++#define JZ_DMA_STATUS_ADDR_ERROR BIT(4)
++#define JZ_DMA_STATUS_TERMINATE_TRANSFER BIT(3)
++#define JZ_DMA_STATUS_HALT BIT(2)
++#define JZ_DMA_STATUS_CT BIT(1)
++#define JZ_DMA_STATUS_ENABLE BIT(0)
++
++#define JZ_DMA_CMD_SAI BIT(23)
++#define JZ_DMA_CMD_DAI BIT(22)
++#define JZ_DMA_CMD_RDIL_MASK (0xf << 16)
++#define JZ_DMA_CMD_SRC_WIDTH_MASK (0x3 << 14)
++#define JZ_DMA_CMD_DEST_WIDTH_MASK (0x3 << 12)
++#define JZ_DMA_CMD_TRANSFER_SIZE_MASK (0x7 << 8)
++#define JZ_DMA_CMD_BLOCK_MODE BIT(7)
++#define JZ_DMA_CMD_VALID BIT(4)
++#define JZ_DMA_CMD_VALID_MODE BIT(3)
++#define JZ_DMA_CMD_VALID_IRQ_ENABLE BIT(2)
++#define JZ_DMA_CMD_TRANSFER_IRQ_ENABLE BIT(1)
++#define JZ_DMA_CMD_LINK BIT(0)
++
++
++static void __iomem *jz_dma_base;
++static spinlock_t jz_dma_lock;
++
++static inline uint32_t jz_dma_read(size_t reg)
++{
++ return readl(jz_dma_base + reg);
++}
++
++static inline void jz_dma_write(size_t reg, uint32_t val)
++{
++ writel(val, jz_dma_base + reg);
++}
++
++
++
++/*
++ * A note on resource allocation:
++ *
++ * All drivers needing DMA channels, should allocate and release them
++ * through the public routines `jz_request_dma()' and `jz_free_dma()'.
++ *
++ * In order to avoid problems, all processes should allocate resources in
++ * the same sequence and release them in the reverse order.
++ *
++ * So, when allocating DMAs and IRQs, first allocate the DMA, then the IRQ.
++ * When releasing them, first release the IRQ, then release the DMA. The
++ * main reason for this order is that, if you are requesting the DMA buffer
++ * done interrupt, you won't know the irq number until the DMA channel is
++ * returned from jz_request_dma().
++ */
++
++struct jz_dma_chan jz_dma_table[MAX_DMA_NUM] = {
++ {dev_id:-1,},
++ {dev_id:-1,},
++ {dev_id:-1,},
++ {dev_id:-1,},
++ {dev_id:-1,},
++ {dev_id:-1,},
++};
++
++// Device FIFO addresses and default DMA modes
++static const struct {
++ unsigned int fifo_addr;
++ unsigned int dma_mode;
++ unsigned int dma_source;
++} dma_dev_table[DMA_ID_MAX] = {
++ {CPHYSADDR(UART0_TDR), DMA_8BIT_TX_CMD | DMA_MODE_WRITE, DMAC_DRSR_RS_UART0OUT},
++ {CPHYSADDR(UART0_RDR), DMA_8BIT_RX_CMD | DMA_MODE_READ, DMAC_DRSR_RS_UART0IN},
++ {CPHYSADDR(SSI_DR), DMA_32BIT_TX_CMD | DMA_MODE_WRITE, DMAC_DRSR_RS_SSIOUT},
++ {CPHYSADDR(SSI_DR), DMA_32BIT_RX_CMD | DMA_MODE_READ, DMAC_DRSR_RS_SSIIN},
++ {CPHYSADDR(AIC_DR), DMA_32BIT_TX_CMD | DMA_MODE_WRITE, DMAC_DRSR_RS_AICOUT},
++ {CPHYSADDR(AIC_DR), DMA_32BIT_RX_CMD | DMA_MODE_READ, DMAC_DRSR_RS_AICIN},
++ {CPHYSADDR(MSC_TXFIFO), DMA_32BIT_TX_CMD | DMA_MODE_WRITE, DMAC_DRSR_RS_MSCOUT},
++ {CPHYSADDR(MSC_RXFIFO), DMA_32BIT_RX_CMD | DMA_MODE_READ, DMAC_DRSR_RS_MSCIN},
++ {0, DMA_AUTOINIT, DMAC_DRSR_RS_TCU},
++ {0, DMA_AUTOINIT, DMAC_DRSR_RS_AUTO},
++ {},
++};
++
++
++int jz_dma_read_proc(char *buf, char **start, off_t fpos,
++ int length, int *eof, void *data)
++{
++ int i, len = 0;
++ struct jz_dma_chan *chan;
++
++ for (i = 0; i < MAX_DMA_NUM; i++) {
++ if ((chan = get_dma_chan(i)) != NULL) {
++ len += sprintf(buf + len, "%2d: %s\n",
++ i, chan->dev_str);
++ }
++ }
++
++ if (fpos >= len) {
++ *start = buf;
++ *eof = 1;
++ return 0;
++ }
++ *start = buf + fpos;
++ if ((len -= fpos) > length)
++ return length;
++ *eof = 1;
++ return len;
++}
++
++
++void dump_jz_dma_channel(unsigned int dmanr)
++{
++ struct jz_dma_chan *chan;
++
++ if (dmanr > MAX_DMA_NUM)
++ return;
++ chan = &jz_dma_table[dmanr];
++
++ printk("DMA%d Registers:\n", dmanr);
++ printk(" DMACR = 0x%08x\n", REG_DMAC_DMACR);
++ printk(" DSAR = 0x%08x\n", REG_DMAC_DSAR(dmanr));
++ printk(" DTAR = 0x%08x\n", REG_DMAC_DTAR(dmanr));
++ printk(" DTCR = 0x%08x\n", REG_DMAC_DTCR(dmanr));
++ printk(" DRSR = 0x%08x\n", REG_DMAC_DRSR(dmanr));
++ printk(" DCCSR = 0x%08x\n", REG_DMAC_DCCSR(dmanr));
++ printk(" DCMD = 0x%08x\n", REG_DMAC_DCMD(dmanr));
++ printk(" DDA = 0x%08x\n", REG_DMAC_DDA(dmanr));
++ printk(" DMADBR = 0x%08x\n", REG_DMAC_DMADBR);
++}
++
++
++/**
++ * jz_request_dma - dynamically allcate an idle DMA channel to return
++ * @dev_id: the specified dma device id or DMA_ID_RAW_SET
++ * @dev_str: the specified dma device string name
++ * @irqhandler: the irq handler, or NULL
++ * @irqflags: the irq handler flags
++ * @irq_dev_id: the irq handler device id for shared irq
++ *
++ * Finds a free channel, and binds the requested device to it.
++ * Returns the allocated channel number, or negative on error.
++ * Requests the DMA done IRQ if irqhandler != NULL.
++ *
++*/
++/*int jz_request_dma(int dev_id, const char *dev_str,
++ void (*irqhandler)(int, void *, struct pt_regs *),
++ unsigned long irqflags,
++ void *irq_dev_id)
++*/
++
++int jz_request_dma(int dev_id, const char *dev_str,
++ irqreturn_t (*irqhandler)(int, void *),
++ unsigned long irqflags,
++ void *irq_dev_id)
++{
++ struct jz_dma_chan *chan;
++ int i, ret;
++
++ if (dev_id < 0 || dev_id >= DMA_ID_MAX)
++ return -EINVAL;
++
++ for (i = 0; i < MAX_DMA_NUM; i++) {
++ if (jz_dma_table[i].dev_id < 0)
++ break;
++ }
++ if (i == MAX_DMA_NUM) /* no free channel */
++ return -ENODEV;
++
++ /* we got a free channel */
++ chan = &jz_dma_table[i];
++
++ if (irqhandler) {
++ chan->irq = JZ_IRQ_DMA(i); // allocate irq number
++ chan->irq_dev = irq_dev_id;
++ if ((ret = request_irq(chan->irq, irqhandler, irqflags,
++ dev_str, chan->irq_dev))) {
++ chan->irq = -1;
++ chan->irq_dev = NULL;
++ return ret;
++ }
++ } else {
++ chan->irq = -1;
++ chan->irq_dev = NULL;
++ }
++
++ // fill it in
++ chan->io = i;
++ chan->dev_id = dev_id;
++ chan->dev_str = dev_str;
++ chan->fifo_addr = dma_dev_table[dev_id].fifo_addr;
++ chan->mode = dma_dev_table[dev_id].dma_mode;
++ chan->source = dma_dev_table[dev_id].dma_source;
++
++ return i;
++}
++
++void jz_free_dma(unsigned int dmanr)
++{
++ struct jz_dma_chan *chan = get_dma_chan(dmanr);
++
++ if (!chan) {
++ printk("Trying to free DMA%d\n", dmanr);
++ return;
++ }
++
++ disable_dma(dmanr);
++ if (chan->irq)
++ free_irq(chan->irq, chan->irq_dev);
++
++ chan->irq = -1;
++ chan->irq_dev = NULL;
++ chan->dev_id = -1;
++}
++
++void jz_set_dma_dest_width(int dmanr, int nbit)
++{
++ struct jz_dma_chan *chan = get_dma_chan(dmanr);
++
++ if (!chan)
++ return;
++
++ chan->mode &= ~DMAC_DCMD_DWDH_MASK;
++ switch (nbit) {
++ case 8:
++ chan->mode |= DMAC_DCMD_DWDH_8;
++ break;
++ case 16:
++ chan->mode |= DMAC_DCMD_DWDH_16;
++ break;
++ case 32:
++ chan->mode |= DMAC_DCMD_DWDH_32;
++ break;
++ }
++}
++
++void jz_set_dma_src_width(int dmanr, int nbit)
++{
++ struct jz_dma_chan *chan = get_dma_chan(dmanr);
++
++ if (!chan)
++ return;
++
++ chan->mode &= ~DMAC_DCMD_SWDH_MASK;
++ switch (nbit) {
++ case 8:
++ chan->mode |= DMAC_DCMD_SWDH_8;
++ break;
++ case 16:
++ chan->mode |= DMAC_DCMD_SWDH_16;
++ break;
++ case 32:
++ chan->mode |= DMAC_DCMD_SWDH_32;
++ break;
++ }
++}
++
++void jz_set_dma_block_size(int dmanr, int nbyte)
++{
++ struct jz_dma_chan *chan = get_dma_chan(dmanr);
++
++ if (!chan)
++ return;
++
++ chan->mode &= ~DMAC_DCMD_DS_MASK;
++ switch (nbyte) {
++ case 1:
++ chan->mode |= DMAC_DCMD_DS_8BIT;
++ break;
++ case 2:
++ chan->mode |= DMAC_DCMD_DS_16BIT;
++ break;
++ case 4:
++ chan->mode |= DMAC_DCMD_DS_32BIT;
++ break;
++ case 16:
++ chan->mode |= DMAC_DCMD_DS_16BYTE;
++ break;
++ case 32:
++ chan->mode |= DMAC_DCMD_DS_32BYTE;
++ break;
++ }
++}
++
++unsigned int jz_get_dma_command(int dmanr)
++{
++ struct jz_dma_chan *chan = get_dma_chan(dmanr);
++ return chan->mode;
++}
++
++/**
++ * jz_set_dma_mode - do the raw settings for the specified DMA channel
++ * @dmanr: the specified DMA channel
++ * @mode: dma operate mode, DMA_MODE_READ or DMA_MODE_WRITE
++ * @dma_mode: dma raw mode
++ * @dma_source: dma raw request source
++ * @fifo_addr: dma raw device fifo address
++ *
++ * Ensure call jz_request_dma(DMA_ID_RAW_SET, ...) first, then call
++ * jz_set_dma_mode() rather than set_dma_mode() if you work with
++ * and external request dma device.
++ *
++ * NOTE: Don not dynamically allocate dma channel if one external request
++ * dma device will occupy this channel.
++*/
++int jz_set_dma_mode(unsigned int dmanr, unsigned int mode,
++ unsigned int dma_mode, unsigned int dma_source,
++ unsigned int fifo_addr)
++{
++ int dev_id, i;
++ struct jz_dma_chan *chan;
++
++ if (dmanr > MAX_DMA_NUM)
++ return -ENODEV;
++
++ for (i = 0; i < MAX_DMA_NUM; i++) {
++ if (jz_dma_table[i].dev_id < 0)
++ break;
++ }
++ if (i == MAX_DMA_NUM)
++ return -ENODEV;
++
++ chan = &jz_dma_table[dmanr];
++ dev_id = chan->dev_id;
++ if (dev_id > 0) {
++ printk(KERN_DEBUG "%s sets the allocated DMA channel %d!\n",
++ __FUNCTION__, dmanr);
++ return -ENODEV;
++ }
++
++ /* clone it from the dynamically allocated. */
++ if (i != dmanr) {
++ chan->irq = jz_dma_table[i].irq;
++ chan->irq_dev = jz_dma_table[i].irq_dev;
++ chan->dev_str = jz_dma_table[i].dev_str;
++ jz_dma_table[i].irq = 0;
++ jz_dma_table[i].irq_dev = NULL;
++ jz_dma_table[i].dev_id = -1;
++ }
++ chan->dev_id = DMA_ID_RAW_SET;
++ chan->io = dmanr;
++ chan->fifo_addr = fifo_addr;
++ chan->mode = dma_mode;
++ chan->source = dma_source;
++
++ set_dma_mode(dmanr, dma_mode);
++
++ return dmanr;
++}
++
++void enable_dma(unsigned int dmanr)
++{
++ struct jz_dma_chan *chan = get_dma_chan(dmanr);
++
++ if (!chan)
++ return;
++
++ REG_DMAC_DCCSR(dmanr) &= ~(DMAC_DCCSR_HLT | DMAC_DCCSR_TT | DMAC_DCCSR_AR);
++ REG_DMAC_DCCSR(dmanr) |= DMAC_DCCSR_NDES; /* No-descriptor transfer */
++ __dmac_enable_channel(dmanr);
++ if (chan->irq)
++ __dmac_channel_enable_irq(dmanr);
++}
++
++#define DMA_DISABLE_POLL 0x10000
++
++void disable_dma(unsigned int dmanr)
++{
++ int i;
++ struct jz_dma_chan *chan = get_dma_chan(dmanr);
++
++ if (!chan)
++ return;
++
++ if (!__dmac_channel_enabled(dmanr))
++ return;
++
++ for (i = 0; i < DMA_DISABLE_POLL; i++)
++ if (__dmac_channel_transmit_end_detected(dmanr))
++ break;
++#if 0
++ if (i == DMA_DISABLE_POLL)
++ printk(KERN_INFO "disable_dma: poll expired!\n");
++#endif
++
++ __dmac_disable_channel(dmanr);
++ if (chan->irq)
++ __dmac_channel_disable_irq(dmanr);
++}
++
++/* Note: DMA_MODE_MASK is simulated by sw */
++void set_dma_mode(unsigned int dmanr, unsigned int mode)
++{
++ struct jz_dma_chan *chan = get_dma_chan(dmanr);
++
++ if (!chan)
++ return;
++
++ chan->mode |= mode & ~(DMAC_DCMD_SAI | DMAC_DCMD_DAI);
++ mode &= DMA_MODE_MASK;
++ if (mode == DMA_MODE_READ) {
++ chan->mode |= DMAC_DCMD_DAI;
++ chan->mode &= ~DMAC_DCMD_SAI;
++ } else if (mode == DMA_MODE_WRITE) {
++ chan->mode |= DMAC_DCMD_SAI;
++ chan->mode &= ~DMAC_DCMD_DAI;
++ } else {
++ printk(KERN_DEBUG "set_dma_mode() just supports DMA_MODE_READ or DMA_MODE_WRITE!\n");
++ }
++ jz_dma_write(JZ_REG_DMA_CMD(chan->io), chan->mode & ~DMA_MODE_MASK);
++ jz_dma_write(JZ_REG_DMA_TYPE(chan->io), chan->source);
++}
++
++void set_dma_addr(unsigned int dmanr, unsigned int phyaddr)
++{
++ unsigned int mode;
++ struct jz_dma_chan *chan = get_dma_chan(dmanr);
++
++ if (!chan)
++ return;
++
++ mode = chan->mode & DMA_MODE_MASK;
++ if (mode == DMA_MODE_READ) {
++ jz_dma_write(JZ_REG_DMA_SRC_ADDR(chan->io), chan->fifo_addr);
++ jz_dma_write(JZ_REG_DMA_DEST_ADDR(chan->io), phyaddr);
++ } else if (mode == DMA_MODE_WRITE) {
++ jz_dma_write(JZ_REG_DMA_SRC_ADDR(chan->io), phyaddr);
++ jz_dma_write(JZ_REG_DMA_DEST_ADDR(chan->io), chan->fifo_addr);
++ } else
++ printk(KERN_DEBUG "Driver should call set_dma_mode() ahead set_dma_addr()!\n");
++}
++
++void set_dma_count(unsigned int dmanr, unsigned int bytecnt)
++{
++ struct jz_dma_chan *chan = get_dma_chan(dmanr);
++ int dma_ds[] = {4, 1, 2, 16, 32};
++ unsigned int ds;
++
++ if (!chan)
++ return;
++
++ ds = (chan->mode & DMAC_DCMD_DS_MASK) >> DMAC_DCMD_DS_BIT;
++
++ jz_dma_write(JZ_REG_DMA_COUNT(chan->io), bytecnt / dma_ds[ds]);
++}
++
++unsigned int get_dma_residue(unsigned int dmanr)
++{
++ unsigned int count, ds;
++ int dma_ds[] = {4, 1, 2, 16, 32};
++ struct jz_dma_chan *chan = get_dma_chan(dmanr);
++ if (!chan)
++ return 0;
++
++ ds = (chan->mode & DMAC_DCMD_DS_MASK) >> DMAC_DCMD_DS_BIT;
++ count = jz_dma_read(JZ_REG_DMA_COUNT(chan->io));
++ count = count * dma_ds[ds];
++
++ return count;
++}
++
++void jz_set_oss_dma(unsigned int dmanr, unsigned int mode, unsigned int audio_fmt)
++{
++ struct jz_dma_chan *chan = get_dma_chan(dmanr);
++
++ if (!chan)
++ return;
++
++ switch (audio_fmt) {
++ case AFMT_U8:
++ /* burst mode : 32BIT */
++ break;
++ case AFMT_S16_LE:
++ /* burst mode : 16BYTE */
++ if (mode == DMA_MODE_READ) {
++ chan->mode = DMA_AIC_32_16BYTE_RX_CMD | DMA_MODE_READ;
++ chan->mode |= mode & ~(DMAC_DCMD_SAI | DMAC_DCMD_DAI);
++ mode &= DMA_MODE_MASK;
++ chan->mode |= DMAC_DCMD_DAI;
++ chan->mode &= ~DMAC_DCMD_SAI;
++ } else if (mode == DMA_MODE_WRITE) {
++ chan->mode = DMA_AIC_32_16BYTE_TX_CMD | DMA_MODE_WRITE;
++ chan->mode |= mode & ~(DMAC_DCMD_SAI | DMAC_DCMD_DAI);
++ mode &= DMA_MODE_MASK;
++ chan->mode |= DMAC_DCMD_SAI;
++ chan->mode &= ~DMAC_DCMD_DAI;
++ } else
++ printk("oss_dma_burst_mode() just supports DMA_MODE_READ or DMA_MODE_WRITE!\n");
++
++ jz_dma_write(JZ_REG_DMA_CMD(chan->io), chan->mode & ~DMA_MODE_MASK);
++ jz_dma_write(JZ_REG_DMA_TYPE(chan->io), chan->source);
++ break;
++ }
++}
++
++void jz_set_alsa_dma(unsigned int dmanr, unsigned int mode, unsigned int audio_fmt)
++{
++ struct jz_dma_chan *chan = get_dma_chan(dmanr);
++
++ if (!chan)
++ return;
++
++ switch (audio_fmt) {
++ case 8:
++ /* SNDRV_PCM_FORMAT_S8 burst mode : 32BIT */
++ break;
++ case 16:
++ /* SNDRV_PCM_FORMAT_S16_LE burst mode : 16BYTE */
++ if (mode == DMA_MODE_READ) {
++ chan->mode = DMA_AIC_16BYTE_RX_CMD | DMA_MODE_READ;
++ chan->mode |= mode & ~(DMAC_DCMD_SAI | DMAC_DCMD_DAI);
++ mode &= DMA_MODE_MASK;
++ chan->mode |= DMAC_DCMD_DAI;
++ chan->mode &= ~DMAC_DCMD_SAI;
++ } else if (mode == DMA_MODE_WRITE) {
++ chan->mode = DMA_AIC_16BYTE_TX_CMD | DMA_MODE_WRITE;
++ chan->mode |= mode & ~(DMAC_DCMD_SAI | DMAC_DCMD_DAI);
++ mode &= DMA_MODE_MASK;
++ chan->mode |= DMAC_DCMD_SAI;
++ chan->mode &= ~DMAC_DCMD_DAI;
++ } else {
++ printk("alsa_dma_burst_mode() just supports DMA_MODE_READ or DMA_MODE_WRITE!\n");
++ }
++
++ jz_dma_write(JZ_REG_DMA_CMD(chan->io), chan->mode & ~DMA_MODE_MASK);
++ jz_dma_write(JZ_REG_DMA_TYPE(chan->io), chan->source);
++
++ break;
++ }
++}
++
++#undef JZ4740_DMAC_TEST_ENABLE
++
++#ifdef JZ4740_DMAC_TEST_ENABLE
++
++/*
++ * DMA test: external address <--> external address
++ */
++#define TEST_DMA_SIZE 16*1024
++
++static jz_dma_desc *dma_desc;
++
++static int dma_chan;
++static dma_addr_t dma_desc_phys_addr;
++static unsigned int dma_src_addr, dma_src_phys_addr, dma_dst_addr, dma_dst_phys_addr;
++
++static int dma_check_result(void *src, void *dst, int size)
++{
++ unsigned int addr1, addr2, i, err = 0;
++
++ addr1 = (unsigned int)src;
++ addr2 = (unsigned int)dst;
++
++ for (i = 0; i < size; i += 4) {
++ if (*(volatile unsigned int *)addr1 != *(volatile unsigned int *)addr2) {
++ err++;
++ printk("wrong data at 0x%08x: src 0x%08x dst 0x%08x\n", addr2, *(volatile unsigned int *)addr1, *(volatile unsigned int *)addr2);
++ }
++ addr1 += 4;
++ addr2 += 4;
++ }
++ printk("check DMA result err=%d\n", err);
++ return err;
++}
++
++static void jz4740_dma_irq(int irq, void *dev_id, struct pt_regs *regs)
++{
++ printk("jz4740_dma_irq %d\n", irq);
++
++ REG_DMAC_DCCSR(dma_chan) &= ~DMAC_DCCSR_EN; /* disable DMA */
++
++ if (__dmac_channel_transmit_halt_detected(dma_chan)) {
++ printk("DMA HALT\n");
++ __dmac_channel_clear_transmit_halt(dma_chan);
++ }
++
++ if (__dmac_channel_address_error_detected(dma_chan)) {
++ printk("DMA ADDR ERROR\n");
++ __dmac_channel_clear_address_error(dma_chan);
++ }
++
++ if (__dmac_channel_descriptor_invalid_detected(dma_chan)) {
++ printk("DMA DESC INVALID\n");
++ __dmac_channel_clear_descriptor_invalid(dma_chan);
++ }
++
++ if (__dmac_channel_count_terminated_detected(dma_chan)) {
++ printk("DMA CT\n");
++ __dmac_channel_clear_count_terminated(dma_chan);
++ }
++
++ if (__dmac_channel_transmit_end_detected(dma_chan)) {
++ printk("DMA TT\n");
++ __dmac_channel_clear_transmit_end(dma_chan);
++ dump_jz_dma_channel(dma_chan);
++ dma_check_result((void *)dma_src_addr, (void *)dma_dst_addr, TEST_DMA_SIZE);
++ }
++
++ /* free buffers */
++ printk("free DMA buffers\n");
++ free_pages(dma_src_addr, 2);
++ free_pages(dma_dst_addr, 2);
++
++ if (dma_desc)
++ free_pages((unsigned int)dma_desc, 0);
++
++ /* free dma */
++ jz_free_dma(dma_chan);
++}
++
++void dma_nodesc_test(void)
++{
++ unsigned int addr, i;
++
++ printk("dma_nodesc_test\n");
++
++ /* Request DMA channel and setup irq handler */
++ dma_chan = jz_request_dma(DMA_ID_AUTO, "auto", jz4740_dma_irq,
++ SA_INTERRUPT, NULL);
++ if (dma_chan < 0) {
++ printk("Setup irq failed\n");
++ return;
++ }
++
++ printk("Requested DMA channel = %d\n", dma_chan);
++
++ /* Allocate DMA buffers */
++ dma_src_addr = __get_free_pages(GFP_KERNEL, 2); /* 16KB */
++ dma_dst_addr = __get_free_pages(GFP_KERNEL, 2); /* 16KB */
++
++ dma_src_phys_addr = CPHYSADDR(dma_src_addr);
++ dma_dst_phys_addr = CPHYSADDR(dma_dst_addr);
++
++ printk("Buffer addresses: 0x%08x 0x%08x 0x%08x 0x%08x\n",
++ dma_src_addr, dma_src_phys_addr, dma_dst_addr, dma_dst_phys_addr);
++
++ /* Prepare data for source buffer */
++ addr = (unsigned int)dma_src_addr;
++ for (i = 0; i < TEST_DMA_SIZE; i += 4) {
++ *(volatile unsigned int *)addr = addr;
++ addr += 4;
++ }
++ dma_cache_wback((unsigned long)dma_src_addr, TEST_DMA_SIZE);
++
++ /* Init target buffer */
++ memset((void *)dma_dst_addr, 0, TEST_DMA_SIZE);
++ dma_cache_wback((unsigned long)dma_dst_addr, TEST_DMA_SIZE);
++
++ /* Init DMA module */
++ printk("Starting DMA\n");
++ REG_DMAC_DMACR = 0;
++ REG_DMAC_DCCSR(dma_chan) = 0;
++ REG_DMAC_DRSR(dma_chan) = DMAC_DRSR_RS_AUTO;
++ REG_DMAC_DSAR(dma_chan) = dma_src_phys_addr;
++ REG_DMAC_DTAR(dma_chan) = dma_dst_phys_addr;
++ REG_DMAC_DTCR(dma_chan) = 512;
++ REG_DMAC_DCMD(dma_chan) = DMAC_DCMD_SAI | DMAC_DCMD_DAI | DMAC_DCMD_SWDH_32 | DMAC_DCMD_DWDH_32 | DMAC_DCMD_DS_32BYTE | DMAC_DCMD_TIE;
++ REG_DMAC_DCCSR(dma_chan) = DMAC_DCCSR_NDES | DMAC_DCCSR_EN;
++ REG_DMAC_DMACR = DMAC_DMACR_DMAE; /* global DMA enable bit */
++
++ printk("DMA started. IMR=%08x\n", REG_INTC_IMR);
++}
++
++void dma_desc_test(void)
++{
++ unsigned int next, addr, i;
++ static jz_dma_desc *desc;
++
++ printk("dma_desc_test\n");
++
++ /* Request DMA channel and setup irq handler */
++ dma_chan = jz_request_dma(DMA_ID_AUTO, "auto", jz4740_dma_irq,
++ SA_INTERRUPT, NULL);
++ if (dma_chan < 0) {
++ printk("Setup irq failed\n");
++ return;
++ }
++
++ printk("Requested DMA channel = %d\n", dma_chan);
++
++ /* Allocate DMA buffers */
++ dma_src_addr = __get_free_pages(GFP_KERNEL, 2); /* 16KB */
++ dma_dst_addr = __get_free_pages(GFP_KERNEL, 2); /* 16KB */
++
++ dma_src_phys_addr = CPHYSADDR(dma_src_addr);
++ dma_dst_phys_addr = CPHYSADDR(dma_dst_addr);
++
++ printk("Buffer addresses: 0x%08x 0x%08x 0x%08x 0x%08x\n",
++ dma_src_addr, dma_src_phys_addr, dma_dst_addr, dma_dst_phys_addr);
++
++ /* Prepare data for source buffer */
++ addr = (unsigned int)dma_src_addr;
++ for (i = 0; i < TEST_DMA_SIZE; i += 4) {
++ *(volatile unsigned int *)addr = addr;
++ addr += 4;
++ }
++ dma_cache_wback((unsigned long)dma_src_addr, TEST_DMA_SIZE);
++
++ /* Init target buffer */
++ memset((void *)dma_dst_addr, 0, TEST_DMA_SIZE);
++ dma_cache_wback((unsigned long)dma_dst_addr, TEST_DMA_SIZE);
++
++ /* Allocate DMA descriptors */
++ dma_desc = (jz_dma_desc *)__get_free_pages(GFP_KERNEL, 0);
++ dma_desc_phys_addr = CPHYSADDR((unsigned long)dma_desc);
++
++ printk("DMA descriptor address: 0x%08x 0x%08x\n", (u32)dma_desc, dma_desc_phys_addr);
++
++ /* Setup DMA descriptors */
++ desc = dma_desc;
++ next = (dma_desc_phys_addr + (sizeof(jz_dma_desc))) >> 4;
++
++ desc->dcmd = DMAC_DCMD_SAI | DMAC_DCMD_DAI | DMAC_DCMD_RDIL_IGN | DMAC_DCMD_SWDH_32 | DMAC_DCMD_DWDH_32 | DMAC_DCMD_DS_32BYTE | DMAC_DCMD_TM | DMAC_DCMD_DES_V | DMAC_DCMD_DES_VM | DMAC_DCMD_DES_VIE | DMAC_DCMD_TIE | DMAC_DCMD_LINK;
++ desc->dsadr = dma_src_phys_addr; /* DMA source address */
++ desc->dtadr = dma_dst_phys_addr; /* DMA target address */
++ desc->ddadr = (next << 24) + 128; /* size: 128*32 bytes = 4096 bytes */
++
++ desc++;
++ next = (dma_desc_phys_addr + 2*(sizeof(jz_dma_desc))) >> 4;
++
++ desc->dcmd = DMAC_DCMD_SAI | DMAC_DCMD_DAI | DMAC_DCMD_RDIL_IGN | DMAC_DCMD_SWDH_32 | DMAC_DCMD_DWDH_32 | DMAC_DCMD_DS_16BYTE | DMAC_DCMD_DES_V | DMAC_DCMD_DES_VM | DMAC_DCMD_DES_VIE | DMAC_DCMD_TIE | DMAC_DCMD_LINK;
++ desc->dsadr = dma_src_phys_addr + 4096; /* DMA source address */
++ desc->dtadr = dma_dst_phys_addr + 4096; /* DMA target address */
++ desc->ddadr = (next << 24) + 256; /* size: 256*16 bytes = 4096 bytes */
++
++ desc++;
++ next = (dma_desc_phys_addr + 3*(sizeof(jz_dma_desc))) >> 4;
++
++ desc->dcmd = DMAC_DCMD_SAI | DMAC_DCMD_DAI | DMAC_DCMD_RDIL_IGN | DMAC_DCMD_SWDH_32 | DMAC_DCMD_DWDH_32 | DMAC_DCMD_DS_16BYTE | DMAC_DCMD_DES_V | DMAC_DCMD_DES_VM | DMAC_DCMD_DES_VIE | DMAC_DCMD_TIE | DMAC_DCMD_LINK;
++ desc->dsadr = dma_src_phys_addr + 8192; /* DMA source address */
++ desc->dtadr = dma_dst_phys_addr + 8192; /* DMA target address */
++ desc->ddadr = (next << 24) + 256; /* size: 256*16 bytes = 4096 bytes */
++
++ desc++;
++ next = (dma_desc_phys_addr + 4*(sizeof(jz_dma_desc))) >> 4;
++
++ desc->dcmd = DMAC_DCMD_SAI | DMAC_DCMD_DAI | DMAC_DCMD_RDIL_IGN | DMAC_DCMD_SWDH_32 | DMAC_DCMD_DWDH_32 | DMAC_DCMD_DS_32BIT | DMAC_DCMD_DES_V | DMAC_DCMD_DES_VM | DMAC_DCMD_DES_VIE | DMAC_DCMD_TIE;
++ desc->dsadr = dma_src_phys_addr + 12*1024; /* DMA source address */
++ desc->dtadr = dma_dst_phys_addr + 12*1024; /* DMA target address */
++ desc->ddadr = (next << 24) + 1024; /* size: 1024*4 bytes = 4096 bytes */
++
++ dma_cache_wback((unsigned long)dma_desc, 4*(sizeof(jz_dma_desc)));
++
++ /* Setup DMA descriptor address */
++ REG_DMAC_DDA(dma_chan) = dma_desc_phys_addr;
++
++ /* Setup request source */
++ REG_DMAC_DRSR(dma_chan) = DMAC_DRSR_RS_AUTO;
++
++ /* Setup DMA channel control/status register */
++ REG_DMAC_DCCSR(dma_chan) = DMAC_DCCSR_EN; /* descriptor transfer, clear status, start channel */
++
++ /* Enable DMA */
++ REG_DMAC_DMACR = DMAC_DMACR_DMAE;
++
++ /* DMA doorbell set -- start DMA now ... */
++ REG_DMAC_DMADBSR = 1 << dma_chan;
++
++ printk("DMA started. IMR=%08x\n", REG_INTC_IMR);
++}
++
++#endif
++
++static void jz_dma_irq_demux_handler(unsigned int irq, struct irq_desc *desc)
++{
++ int i;
++ uint32_t pending;
++
++ pending = jz_dma_read(JZ_REG_DMA_IRQ);
++
++ for (i = 0; i < 6; ++i) {
++ if (pending & BIT(i))
++ generic_handle_irq(JZ_IRQ_DMA(i));
++ }
++}
++
++#define IRQ_TO_DMA(irq) ((irq) - JZ_IRQ_DMA(0))
++
++static void dma_irq_unmask(unsigned int irq)
++{
++ unsigned long flags;
++ uint32_t mask;
++ unsigned int chan;
++
++ chan = IRQ_TO_DMA(irq);
++
++ spin_lock_irqsave(&jz_dma_lock, flags);
++
++ mask = jz_dma_read(JZ_REG_DMA_CMD(chan));
++ mask |= JZ_DMA_CMD_TRANSFER_IRQ_ENABLE;
++ jz_dma_write(JZ_REG_DMA_CMD(chan), mask);
++
++ spin_unlock_irqrestore(&jz_dma_lock, flags);
++}
++
++static void dma_irq_mask(unsigned int irq)
++{
++ unsigned long flags;
++ uint32_t mask;
++ unsigned int chan;
++
++ chan = IRQ_TO_DMA(irq);
++
++ spin_lock_irqsave(&jz_dma_lock, flags);
++
++ mask = jz_dma_read(JZ_REG_DMA_CMD(chan));
++ mask &= ~JZ_DMA_CMD_TRANSFER_IRQ_ENABLE;
++ jz_dma_write(JZ_REG_DMA_CMD(chan), mask);
++
++ spin_unlock_irqrestore(&jz_dma_lock, flags);
++}
++
++static void dma_irq_ack(unsigned int irq)
++{
++ unsigned long flags;
++ uint32_t pending;
++
++ spin_lock_irqsave(&jz_dma_lock, flags);
++
++ pending = jz_dma_read(JZ_REG_DMA_IRQ);
++ pending &= ~BIT(irq);
++ jz_dma_write(JZ_REG_DMA_IRQ, pending);
++
++ spin_unlock_irqrestore(&jz_dma_lock, flags);
++}
++
++static void dma_irq_end(unsigned int irq)
++{
++ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS))) {
++ dma_irq_unmask(irq);
++ }
++}
++
++static struct irq_chip dma_irq_type = {
++ .name = "DMA",
++ .unmask = dma_irq_unmask,
++ .mask = dma_irq_mask,
++ .ack = dma_irq_ack,
++ .end = dma_irq_end,
++};
++
++static int jz_dma_init(void)
++{
++ int i;
++
++ jz_dma_base = ioremap(CPHYSADDR(DMAC_BASE), 0x400);
++
++ if (!jz_dma_base)
++ return -EBUSY;
++
++ spin_lock_init(&jz_dma_lock);
++
++ set_irq_chained_handler(JZ_IRQ_DMAC, jz_dma_irq_demux_handler);
++
++ for (i = 0; i < NUM_DMA; i++) {
++ dma_irq_mask(JZ_IRQ_DMA(i));
++ set_irq_chip_and_handler(JZ_IRQ_DMA(i), &dma_irq_type, handle_level_irq);
++ }
++
++ return 0;
++}
++arch_initcall(jz_dma_init);
++
++//EXPORT_SYMBOL_NOVERS(jz_dma_table);
++EXPORT_SYMBOL(jz_dma_table);
++EXPORT_SYMBOL(jz_request_dma);
++EXPORT_SYMBOL(jz_free_dma);
++EXPORT_SYMBOL(jz_set_dma_src_width);
++EXPORT_SYMBOL(jz_set_dma_dest_width);
++EXPORT_SYMBOL(jz_set_dma_block_size);
++EXPORT_SYMBOL(jz_set_dma_mode);
++EXPORT_SYMBOL(set_dma_mode);
++EXPORT_SYMBOL(jz_set_oss_dma);
++EXPORT_SYMBOL(jz_set_alsa_dma);
++EXPORT_SYMBOL(set_dma_addr);
++EXPORT_SYMBOL(set_dma_count);
++EXPORT_SYMBOL(get_dma_residue);
++EXPORT_SYMBOL(enable_dma);
++EXPORT_SYMBOL(disable_dma);
++EXPORT_SYMBOL(dump_jz_dma_channel);
+diff -ruN linux-2.6.31-vanilla/arch/mips/jz4740/gpio.c linux-2.6.31/arch/mips/jz4740/gpio.c
+--- linux-2.6.31-vanilla/arch/mips/jz4740/gpio.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/jz4740/gpio.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,438 @@
++/*
++ * Copyright (C) 2009, Lars-Peter Clausen <lars@metafoo.de>
++ * JZ74xx platform GPIO support
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/spinlock.h>
++
++#include <linux/io.h>
++#include <linux/gpio.h>
++#include <linux/delay.h>
++#include <linux/irq.h>
++#include <linux/interrupt.h>
++#include <linux/bitops.h>
++
++#include <asm/mach-jz4740/regs.h>
++
++#define JZ_GPIO_BASE_A (32*0)
++#define JZ_GPIO_BASE_B (32*1)
++#define JZ_GPIO_BASE_C (32*2)
++#define JZ_GPIO_BASE_D (32*3)
++
++#define JZ_GPIO_NUM_A 32
++#define JZ_GPIO_NUM_B 32
++#define JZ_GPIO_NUM_C 31
++#define JZ_GPIO_NUM_D 32
++
++#define JZ_IRQ_GPIO_BASE_A JZ_IRQ_GPIO(0) + JZ_GPIO_BASE_A
++#define JZ_IRQ_GPIO_BASE_B JZ_IRQ_GPIO(0) + JZ_GPIO_BASE_B
++#define JZ_IRQ_GPIO_BASE_C JZ_IRQ_GPIO(0) + JZ_GPIO_BASE_C
++#define JZ_IRQ_GPIO_BASE_D JZ_IRQ_GPIO(0) + JZ_GPIO_BASE_D
++
++#define JZ_IRQ_GPIO_A(num) (num < JZ_GPIO_NUM_A ? JZ_IRQ_GPIO_BASE_A + num : -EINVAL)
++#define JZ_IRQ_GPIO_B(num) (num < JZ_GPIO_NUM_B ? JZ_IRQ_GPIO_BASE_B + num : -EINVAL)
++#define JZ_IRQ_GPIO_C(num) (num < JZ_GPIO_NUM_C ? JZ_IRQ_GPIO_BASE_C + num : -EINVAL)
++#define JZ_IRQ_GPIO_D(num) (num < JZ_GPIO_NUM_D ? JZ_IRQ_GPIO_BASE_D + num : -EINVAL)
++
++
++#define CHIP_TO_REG(chip, reg) (jz_gpio_base + (((chip)->base) << 3) + reg)
++#define CHIP_TO_PIN_REG(chip) CHIP_TO_REG(chip, 0x00)
++#define CHIP_TO_DATA_REG(chip) CHIP_TO_REG(chip, 0x10)
++#define CHIP_TO_DATA_SET_REG(chip) CHIP_TO_REG(chip, 0x14)
++#define CHIP_TO_DATA_CLEAR_REG(chip) CHIP_TO_REG(chip, 0x18)
++#define CHIP_TO_PULL_REG(chip) CHIP_TO_REG(chip, 0x30)
++#define CHIP_TO_PULL_SET_REG(chip) CHIP_TO_REG(chip, 0x34)
++#define CHIP_TO_PULL_CLEAR_REG(chip) CHIP_TO_REG(chip, 0x38)
++#define CHIP_TO_DATA_SELECT_REG(chip) CHIP_TO_REG(chip, 0x50)
++#define CHIP_TO_DATA_SELECT_SET_REG(chip) CHIP_TO_REG(chip, 0x54)
++#define CHIP_TO_DATA_SELECT_CLEAR_REG(chip) CHIP_TO_REG(chip, 0x58)
++#define CHIP_TO_DIRECION_REG(chip) CHIP_TO_REG(chip, 0x60)
++#define CHIP_TO_DIRECTION_SET_REG(chip) CHIP_TO_REG(chip, 0x64)
++#define CHIP_TO_DIRECTION_CLEAR_REG(chip) CHIP_TO_REG(chip, 0x68)
++
++#define GPIO_TO_BIT(gpio) BIT(gpio & 0x1f)
++
++#define GPIO_TO_REG(gpio, reg) (jz_gpio_base + ((gpio >> 5) << 8) + reg)
++#define GPIO_TO_MASK_REG(gpio) GPIO_TO_REG(gpio, 0x20)
++#define GPIO_TO_MASK_SET_REG(gpio) GPIO_TO_REG(gpio, 0x24)
++#define GPIO_TO_MASK_CLEAR_REG(gpio) GPIO_TO_REG(gpio, 0x28)
++#define GPIO_TO_PULL_REG(gpio) GPIO_TO_REG(gpio, 0x30)
++#define GPIO_TO_PULL_SET_REG(gpio) GPIO_TO_REG(gpio, 0x34)
++#define GPIO_TO_PULL_CLEAR_REG(gpio) GPIO_TO_REG(gpio, 0x38)
++#define GPIO_TO_FUNC_REG(gpio) GPIO_TO_REG(gpio, 0x40)
++#define GPIO_TO_FUNC_SET_REG(gpio) GPIO_TO_REG(gpio, 0x44)
++#define GPIO_TO_FUNC_CLEAR_REG(gpio) GPIO_TO_REG(gpio, 0x48)
++#define GPIO_TO_SEL_REG(gpio) GPIO_TO_REG(gpio, 0x50)
++#define GPIO_TO_SEL_SET_REG(gpio) GPIO_TO_REG(gpio, 0x54)
++#define GPIO_TO_SEL_CLEAR_REG(gpio) GPIO_TO_REG(gpio, 0x58)
++#define GPIO_TO_TRIGGER_REG(gpio) GPIO_TO_REG(gpio, 0x70)
++#define GPIO_TO_TRIGGER_SET_REG(gpio) GPIO_TO_REG(gpio, 0x74)
++#define GPIO_TO_TRIGGER_CLEAR_REG(gpio) GPIO_TO_REG(gpio, 0x78)
++
++
++
++static void __iomem *jz_gpio_base;
++static spinlock_t jz_gpio_lock;
++
++struct jz_gpio_chip {
++ unsigned int irq;
++ unsigned int irq_base;
++ uint32_t wakeup;
++ uint32_t saved[4];
++ struct gpio_chip gpio_chip;
++ struct irq_chip irq_chip;
++ uint32_t edge_trigger_both;
++};
++
++static struct jz_gpio_chip *jz_irq_to_chip(unsigned int irq)
++{
++ return get_irq_chip_data(irq);
++}
++
++int jz_gpio_set_function(int gpio, enum jz_gpio_function function)
++{
++ if (function == JZ_GPIO_FUNC_NONE) {
++ writew(GPIO_TO_BIT(gpio), GPIO_TO_FUNC_CLEAR_REG(gpio));
++ writew(GPIO_TO_BIT(gpio), GPIO_TO_SEL_CLEAR_REG(gpio));
++ writew(GPIO_TO_BIT(gpio), GPIO_TO_TRIGGER_CLEAR_REG(gpio));
++ } else {
++ writew(GPIO_TO_BIT(gpio), GPIO_TO_FUNC_SET_REG(gpio));
++ switch (function) {
++ case JZ_GPIO_FUNC1:
++ writew(GPIO_TO_BIT(gpio), GPIO_TO_SEL_CLEAR_REG(gpio));
++ break;
++ case JZ_GPIO_FUNC3:
++ writew(GPIO_TO_BIT(gpio), GPIO_TO_TRIGGER_SET_REG(gpio));
++ case JZ_GPIO_FUNC2: /* Falltrough */
++ writew(GPIO_TO_BIT(gpio), GPIO_TO_SEL_SET_REG(gpio));
++ break;
++ default:
++ BUG();
++ break;
++ }
++ }
++
++ return 0;
++}
++EXPORT_SYMBOL_GPL(jz_gpio_set_function);
++
++int jz_gpio_bulk_request(const struct jz_gpio_bulk_request *request, size_t num)
++{
++ size_t i;
++ int ret;
++
++ for (i = 0; i < num; ++i, ++request) {
++ ret = gpio_request(request->gpio, request->name);
++ if (ret)
++ goto err;
++ jz_gpio_set_function(request->gpio, request->function);
++ }
++
++ return 0;
++err:
++ for (--request; i > 0; --i, --request)
++ gpio_free(request->gpio);
++
++ return ret;
++}
++EXPORT_SYMBOL_GPL(jz_gpio_bulk_request);
++
++void jz_gpio_bulk_free(const struct jz_gpio_bulk_request *request, size_t num)
++{
++ size_t i;
++
++ for (i = 0; i < num; ++i, ++request) {
++ gpio_free(request->gpio);
++ jz_gpio_set_function(request->gpio, JZ_GPIO_FUNC_NONE);
++ }
++
++}
++EXPORT_SYMBOL_GPL(jz_gpio_bulk_free);
++
++void jz_gpio_enable_pullup(unsigned gpio)
++{
++ writel(GPIO_TO_BIT(gpio), GPIO_TO_PULL_CLEAR_REG(gpio));
++}
++EXPORT_SYMBOL_GPL(jz_gpio_enable_pullup);
++
++void jz_gpio_disable_pullup(unsigned gpio)
++{
++ writel(GPIO_TO_BIT(gpio), GPIO_TO_PULL_SET_REG(gpio));
++}
++EXPORT_SYMBOL_GPL(jz_gpio_disable_pullup);
++
++static int jz_gpio_get_value(struct gpio_chip *chip, unsigned gpio)
++{
++ return !!(readl(CHIP_TO_PIN_REG(chip)) & BIT(gpio));
++}
++
++static void jz_gpio_set_value(struct gpio_chip *chip, unsigned gpio, int value)
++{
++ uint32_t __iomem *reg = CHIP_TO_DATA_SET_REG(chip) + ((!value) << 2);
++ writel(BIT(gpio), reg);
++}
++
++static int jz_gpio_direction_output(struct gpio_chip *chip, unsigned gpio, int value)
++{
++ writel(BIT(gpio), CHIP_TO_DIRECTION_SET_REG(chip));
++ jz_gpio_set_value(chip, gpio, value);
++
++ return 0;
++}
++
++static int jz_gpio_direction_input(struct gpio_chip *chip, unsigned gpio)
++{
++ writel(BIT(gpio), CHIP_TO_DIRECTION_CLEAR_REG(chip));
++
++ return 0;
++}
++
++
++#define IRQ_TO_GPIO(irq) (irq - JZ_IRQ_GPIO(0))
++#define IRQ_TO_BIT(irq) BIT(IRQ_TO_GPIO(irq) & 0x1f)
++
++
++#define IRQ_TO_REG(irq, reg) GPIO_TO_REG(IRQ_TO_GPIO(irq), reg)
++#define IRQ_TO_PIN_REG(irq) IRQ_TO_REG(irq, 0x00)
++#define IRQ_TO_MASK_REG(irq) IRQ_TO_REG(irq, 0x20)
++#define IRQ_TO_MASK_SET_REG(irq) IRQ_TO_REG(irq, 0x24)
++#define IRQ_TO_MASK_CLEAR_REG(irq) IRQ_TO_REG(irq, 0x28)
++#define IRQ_TO_SELECT_REG(irq) IRQ_TO_REG(irq, 0x50)
++#define IRQ_TO_SELECT_SET_REG(irq) IRQ_TO_REG(irq, 0x54)
++#define IRQ_TO_SELECT_CLEAR_REG(irq) IRQ_TO_REG(irq, 0x58)
++#define IRQ_TO_DIRECTION_REG(irq) IRQ_TO_REG(irq, 0x60)
++#define IRQ_TO_DIRECTION_SET_REG(irq) IRQ_TO_REG(irq, 0x64)
++#define IRQ_TO_DIRECTION_CLEAR_REG(irq) IRQ_TO_REG(irq, 0x68)
++#define IRQ_TO_TRIGGER_REG(irq) IRQ_TO_REG(irq, 0x70)
++#define IRQ_TO_TRIGGER_SET_REG(irq) IRQ_TO_REG(irq, 0x74)
++#define IRQ_TO_TRIGGER_CLEAR_REG(irq) IRQ_TO_REG(irq, 0x78)
++#define IRQ_TO_FLAG_REG(irq) IRQ_TO_REG(irq, 0x80)
++#define IRQ_TO_FLAG_CLEAR_REG(irq) IRQ_TO_REG(irq, 0x14)
++
++
++static void jz_gpio_irq_demux_handler(unsigned int irq, struct irq_desc *desc)
++{
++ uint32_t flag;
++ unsigned int gpio_irq;
++ unsigned int gpio_bank;
++ struct jz_gpio_chip *chip = get_irq_desc_data(desc);
++
++ gpio_bank = JZ_IRQ_GPIO0 - irq;
++
++ flag = readl(jz_gpio_base + (gpio_bank << 8) + 0x80);
++
++ gpio_irq = ffs(flag) - 1;
++
++ if (chip->edge_trigger_both & BIT(gpio_irq)) {
++ uint32_t value = readl(CHIP_TO_PIN_REG(&chip->gpio_chip));
++ if (value & BIT(gpio_irq)) {
++ writel(BIT(gpio_irq),
++ CHIP_TO_DIRECTION_CLEAR_REG(&chip->gpio_chip));
++ } else {
++ writel(BIT(gpio_irq),
++ CHIP_TO_DIRECTION_SET_REG(&chip->gpio_chip));
++ }
++ }
++
++
++ gpio_irq += (gpio_bank << 5) + JZ_IRQ_GPIO(0);
++
++
++ generic_handle_irq(gpio_irq);
++};
++
++/* TODO: Check if function is gpio */
++static unsigned int jz_gpio_irq_startup(unsigned int irq)
++{
++ writel(IRQ_TO_BIT(irq), IRQ_TO_SELECT_SET_REG(irq));
++ spin_lock(&jz_gpio_lock);
++ writel(IRQ_TO_BIT(irq), IRQ_TO_MASK_CLEAR_REG(irq));
++ spin_unlock(&jz_gpio_lock);
++ return 0;
++}
++
++static void jz_gpio_irq_shutdown(unsigned int irq)
++{
++ spin_lock(&jz_gpio_lock);
++ writel(IRQ_TO_BIT(irq), IRQ_TO_MASK_SET_REG(irq));
++ spin_unlock(&jz_gpio_lock);
++ /* Set direction to input */
++ writel(IRQ_TO_BIT(irq), IRQ_TO_DIRECTION_CLEAR_REG(irq));
++ writel(IRQ_TO_BIT(irq), IRQ_TO_SELECT_CLEAR_REG(irq));
++}
++
++static void jz_gpio_irq_mask(unsigned int irq)
++{
++ writel(IRQ_TO_BIT(irq), IRQ_TO_MASK_SET_REG(irq));
++};
++
++static void jz_gpio_irq_unmask(unsigned int irq)
++{
++ writel(IRQ_TO_BIT(irq), IRQ_TO_MASK_CLEAR_REG(irq));
++};
++
++static void jz_gpio_irq_ack(unsigned int irq)
++{
++ writel(IRQ_TO_BIT(irq), IRQ_TO_FLAG_CLEAR_REG(irq));
++};
++
++static int jz_gpio_irq_set_type(unsigned int irq, unsigned int flow_type)
++{
++ uint32_t mask;
++ struct jz_gpio_chip *chip = jz_irq_to_chip(irq);
++ spin_lock(&jz_gpio_lock);
++
++ mask = readl(IRQ_TO_MASK_REG(irq));
++
++ writel(IRQ_TO_BIT(irq), IRQ_TO_MASK_CLEAR_REG(irq));
++ if (flow_type == IRQ_TYPE_EDGE_BOTH) {
++ uint32_t value = readl(IRQ_TO_PIN_REG(irq));
++ if (value & IRQ_TO_BIT(irq))
++ flow_type = IRQ_TYPE_EDGE_FALLING;
++ else
++ flow_type = IRQ_TYPE_EDGE_RISING;
++ chip->edge_trigger_both |= IRQ_TO_BIT(irq);
++ } else {
++ chip->edge_trigger_both &= ~IRQ_TO_BIT(irq);
++ }
++
++ switch(flow_type) {
++ case IRQ_TYPE_EDGE_RISING:
++ writel(IRQ_TO_BIT(irq), IRQ_TO_DIRECTION_SET_REG(irq));
++ writel(IRQ_TO_BIT(irq), IRQ_TO_TRIGGER_SET_REG(irq));
++ break;
++ case IRQ_TYPE_EDGE_FALLING:
++ writel(IRQ_TO_BIT(irq), IRQ_TO_DIRECTION_CLEAR_REG(irq));
++ writel(IRQ_TO_BIT(irq), IRQ_TO_TRIGGER_SET_REG(irq));
++ break;
++ case IRQ_TYPE_LEVEL_HIGH:
++ writel(IRQ_TO_BIT(irq), IRQ_TO_DIRECTION_SET_REG(irq));
++ writel(IRQ_TO_BIT(irq), IRQ_TO_TRIGGER_CLEAR_REG(irq));
++ break;
++ case IRQ_TYPE_LEVEL_LOW:
++ writel(IRQ_TO_BIT(irq), IRQ_TO_DIRECTION_CLEAR_REG(irq));
++ writel(IRQ_TO_BIT(irq), IRQ_TO_TRIGGER_CLEAR_REG(irq));
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ writel(mask, IRQ_TO_MASK_SET_REG(irq));
++
++ spin_unlock(&jz_gpio_lock);
++
++ return 0;
++}
++
++static int jz_gpio_irq_set_wake(unsigned int irq, unsigned int on)
++{
++ struct jz_gpio_chip *chip = jz_irq_to_chip(irq);
++ if (on) {
++ chip->wakeup |= IRQ_TO_BIT(irq);
++ } else {
++ chip->wakeup &= ~IRQ_TO_BIT(irq);
++ }
++ set_irq_wake(chip->irq, on);
++ return 0;
++}
++
++int gpio_to_irq(unsigned gpio)
++{
++ return JZ_IRQ_GPIO(0) + gpio;
++}
++EXPORT_SYMBOL_GPL(gpio_to_irq);
++
++int irq_to_gpio(unsigned gpio)
++{
++ return IRQ_TO_GPIO(gpio);
++}
++EXPORT_SYMBOL_GPL(irq_to_gpio);
++
++#define JZ_GPIO_CHIP(_bank) { \
++ .irq_base = JZ_IRQ_GPIO_BASE_ ## _bank, \
++ .gpio_chip = { \
++ .label = "Bank " # _bank, \
++ .owner = THIS_MODULE, \
++ .set = jz_gpio_set_value, \
++ .get = jz_gpio_get_value, \
++ .direction_output = jz_gpio_direction_output, \
++ .direction_input = jz_gpio_direction_input, \
++ .base = JZ_GPIO_BASE_ ## _bank, \
++ .ngpio = JZ_GPIO_NUM_ ## _bank, \
++ }, \
++ .irq_chip = { \
++ .name = "GPIO Bank " # _bank, \
++ .mask = jz_gpio_irq_mask, \
++ .unmask = jz_gpio_irq_unmask, \
++ .ack = jz_gpio_irq_ack, \
++ .startup = jz_gpio_irq_startup, \
++ .shutdown = jz_gpio_irq_shutdown, \
++ .set_type = jz_gpio_irq_set_type, \
++ .set_wake = jz_gpio_irq_set_wake, \
++ }, \
++}
++
++static struct jz_gpio_chip jz_gpio_chips[] = {
++ JZ_GPIO_CHIP(A),
++ JZ_GPIO_CHIP(B),
++ JZ_GPIO_CHIP(C),
++ JZ_GPIO_CHIP(D),
++};
++
++int __init jz_gpiolib_init(void)
++{
++ struct jz_gpio_chip *chip = jz_gpio_chips;
++ int i, irq;
++
++ jz_gpio_base = ioremap(0x10010000, 0x400);
++
++ for (i = 0; i < ARRAY_SIZE(jz_gpio_chips); ++i, ++chip) {
++ gpiochip_add(&chip->gpio_chip);
++ chip->irq = JZ_IRQ_INTC_GPIO(i);
++ set_irq_data(chip->irq, chip);
++ set_irq_chained_handler(chip->irq, jz_gpio_irq_demux_handler);
++ for (irq = chip->irq_base; irq < chip->irq_base + chip->gpio_chip.ngpio;
++ ++irq) {
++ set_irq_chip_and_handler(irq, &chip->irq_chip, handle_level_irq);
++ set_irq_chip_data(irq, chip);
++ }
++ }
++
++ printk("JZ GPIO initalized\n");
++
++ return 0;
++}
++
++void jz_gpiolib_suspend(void)
++{
++ struct jz_gpio_chip *chip = jz_gpio_chips;
++ int i, gpio;
++ for (i = 0; i < ARRAY_SIZE(jz_gpio_chips); ++i, ++chip) {
++ gpio = chip->gpio_chip.base;
++ chip->saved[0] = readl(GPIO_TO_MASK_REG(gpio));
++ writel(~(chip->wakeup), GPIO_TO_MASK_SET_REG(gpio));
++ }
++}
++
++/* TODO: Use sysdev */
++void jz_gpiolib_resume(void)
++{
++ struct jz_gpio_chip *chip = jz_gpio_chips;
++ int i, gpio;
++ for (i = 0; i < ARRAY_SIZE(jz_gpio_chips); ++i, ++chip) {
++ writel(~(chip->saved[0]), GPIO_TO_MASK_CLEAR_REG(chip->gpio_chip.base));
++ }
++}
+diff -ruN linux-2.6.31-vanilla/arch/mips/jz4740/irq.c linux-2.6.31/arch/mips/jz4740/irq.c
+--- linux-2.6.31-vanilla/arch/mips/jz4740/irq.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/jz4740/irq.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,148 @@
++/*
++ * linux/arch/mips/jz4740/irq.c
++ *
++ * JZ4740 interrupt routines.
++ *
++ * Copyright (c) 2006-2007 Ingenic Semiconductor Inc.
++ * Author: <lhhuang@ingenic.cn>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ */
++#include <linux/errno.h>
++#include <linux/init.h>
++#include <linux/irq.h>
++#include <linux/kernel_stat.h>
++#include <linux/module.h>
++#include <linux/signal.h>
++#include <linux/sched.h>
++#include <linux/types.h>
++#include <linux/interrupt.h>
++#include <linux/ioport.h>
++#include <linux/timex.h>
++#include <linux/slab.h>
++#include <linux/random.h>
++#include <linux/delay.h>
++#include <linux/bitops.h>
++
++#include <asm/bootinfo.h>
++#include <asm/io.h>
++#include <asm/mipsregs.h>
++#include <asm/system.h>
++#include <asm/jzsoc.h>
++#include <asm/mach-generic/irq.h>
++#include <asm/irq_cpu.h>
++
++static void __iomem *jz_intc_base;
++static uint32_t jz_intc_wakeup;
++static uint32_t jz_intc_saved;
++
++#define JZ_REG_BASE_INTC 0x10001000
++
++#define JZ_REG_INTC_STATUS 0x00
++#define JZ_REG_INTC_MASK 0x04
++#define JZ_REG_INTC_SET_MASK 0x08
++#define JZ_REG_INTC_CLEAR_MASK 0x0c
++#define JZ_REG_INTC_PENDING 0x10
++
++#define IRQ_BIT(x) BIT((x) - JZ_IRQ_BASE)
++
++static void intc_irq_unmask(unsigned int irq)
++{
++ writel(IRQ_BIT(irq), jz_intc_base + JZ_REG_INTC_CLEAR_MASK);
++}
++
++static void intc_irq_mask(unsigned int irq)
++{
++ writel(IRQ_BIT(irq), jz_intc_base + JZ_REG_INTC_SET_MASK);
++}
++
++static void intc_irq_ack(unsigned int irq)
++{
++ writel(IRQ_BIT(irq), jz_intc_base + JZ_REG_INTC_PENDING);
++}
++
++static void intc_irq_end(unsigned int irq)
++{
++ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS))) {
++ intc_irq_unmask(irq);
++ }
++}
++
++static int intc_irq_set_wake(unsigned int irq, unsigned int on)
++{
++ if (on)
++ jz_intc_wakeup |= IRQ_BIT(irq);
++ else
++ jz_intc_wakeup &= ~IRQ_BIT(irq);
++
++ return 0;
++}
++
++static struct irq_chip intc_irq_type = {
++ .name = "INTC",
++ .mask = intc_irq_mask,
++ .unmask = intc_irq_unmask,
++ .ack = intc_irq_ack,
++ .end = intc_irq_end,
++ .set_wake = intc_irq_set_wake,
++};
++
++static irqreturn_t jz4740_cascade(int irq, void *data)
++{
++ uint32_t irq_reg;
++ irq_reg = readl(jz_intc_base + JZ_REG_INTC_PENDING);
++
++ if (irq_reg) {
++ generic_handle_irq(ffs(irq_reg) - 1 + JZ_IRQ_BASE);
++ return IRQ_HANDLED;
++ }
++
++ return 0;
++}
++
++static struct irqaction jz4740_cascade_action = {
++ .handler = jz4740_cascade,
++ .name = "JZ4740 cascade interrupt"
++};
++
++void __init arch_init_irq(void)
++{
++ int i;
++ mips_cpu_irq_init();
++
++ jz_intc_base = ioremap(JZ_REG_BASE_INTC, 0x14);
++
++ for (i = JZ_IRQ_BASE; i < JZ_IRQ_BASE + 32; i++) {
++ intc_irq_mask(i);
++ set_irq_chip_and_handler(i, &intc_irq_type, handle_level_irq);
++ }
++
++ setup_irq(2, &jz4740_cascade_action);
++}
++
++asmlinkage void plat_irq_dispatch(void)
++{
++ unsigned int pending = read_c0_status() & read_c0_cause() & ST0_IM;
++ if (pending & STATUSF_IP2)
++ jz4740_cascade(2, NULL);
++ else if(pending & STATUSF_IP3)
++ do_IRQ(3);
++ else
++ spurious_interrupt();
++}
++
++/* TODO: Use sysdev */
++void jz4740_intc_suspend(void)
++{
++ jz_intc_saved = readl(jz_intc_base + JZ_REG_INTC_MASK);
++ printk("intc wakeup: %d\n", jz_intc_wakeup);
++ writel(~jz_intc_wakeup, jz_intc_base + JZ_REG_INTC_SET_MASK);
++}
++
++void jz4740_intc_resume(void)
++{
++ writel(~jz_intc_saved, jz_intc_base + JZ_REG_INTC_CLEAR_MASK);
++}
+diff -ruN linux-2.6.31-vanilla/arch/mips/jz4740/platform.c linux-2.6.31/arch/mips/jz4740/platform.c
+--- linux-2.6.31-vanilla/arch/mips/jz4740/platform.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/jz4740/platform.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,240 @@
++/*
++ * Platform device support for Jz4740 SoC.
++ *
++ * Copyright 2007, <yliu@ingenic.cn>
++ *
++ * This file is licensed under the terms of the GNU General Public
++ * License version 2. This program is licensed "as is" without any
++ * warranty of any kind, whether express or implied.
++ */
++
++#include <linux/device.h>
++#include <linux/platform_device.h>
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/resource.h>
++
++#include <asm/mach-jz4740/platform.h>
++#include <asm/jzsoc.h>
++
++/* OHCI (USB full speed host controller) */
++static struct resource jz4740_usb_ohci_resources[] = {
++ [0] = {
++ .start = CPHYSADDR(UHC_BASE),
++ .end = CPHYSADDR(UHC_BASE) + 0x10000 - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = JZ_IRQ_UHC,
++ .end = JZ_IRQ_UHC,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++/* The dmamask must be set for OHCI to work */
++static u64 ohci_dmamask = ~(u32)0;
++
++struct platform_device jz4740_usb_ohci_device = {
++ .name = "jz-ohci",
++ .id = 0,
++ .dev = {
++ .dma_mask = &ohci_dmamask,
++ .coherent_dma_mask = 0xffffffff,
++ },
++ .num_resources = ARRAY_SIZE(jz4740_usb_ohci_resources),
++ .resource = jz4740_usb_ohci_resources,
++};
++
++/* UDC (USB gadget controller) */
++static struct resource jz4740_usb_gdt_resources[] = {
++ [0] = {
++ .start = CPHYSADDR(UDC_BASE),
++ .end = CPHYSADDR(UDC_BASE) + 0x10000 - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = JZ_IRQ_UDC,
++ .end = JZ_IRQ_UDC,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++static u64 jz4740_udc_dmamask = ~(u32)0;
++
++struct platform_device jz4740_usb_gdt_device = {
++ .name = "jz-udc",
++ .id = -1,
++ .dev = {
++ .dma_mask = &jz4740_udc_dmamask,
++ .coherent_dma_mask = 0xffffffff,
++ },
++ .num_resources = ARRAY_SIZE(jz4740_usb_gdt_resources),
++ .resource = jz4740_usb_gdt_resources,
++};
++
++/** MMC/SD controller **/
++static struct resource jz4740_mmc_resources[] = {
++ [0] = {
++ .start = CPHYSADDR(MSC_BASE),
++ .end = CPHYSADDR(MSC_BASE) + 0x10000 - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = JZ_IRQ_MSC,
++ .end = JZ_IRQ_MSC,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++static u64 jz4740_mmc_dmamask = ~(u32)0;
++
++struct platform_device jz4740_mmc_device = {
++ .name = "jz-mmc",
++ .id = 0,
++ .dev = {
++ .dma_mask = &jz4740_mmc_dmamask,
++ .coherent_dma_mask = 0xffffffff,
++ },
++ .num_resources = ARRAY_SIZE(jz4740_mmc_resources),
++ .resource = jz4740_mmc_resources,
++};
++
++static struct resource jz4740_rtc_resources[] = {
++ [0] = {
++ .start = CPHYSADDR(RTC_BASE),
++ .end = CPHYSADDR(RTC_BASE) + 0x10,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = JZ_IRQ_RTC,
++ .end = JZ_IRQ_RTC,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++struct platform_device jz4740_rtc_device = {
++ .name = "jz4740-rtc",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(jz4740_rtc_resources),
++ .resource = jz4740_rtc_resources,
++};
++
++/** I2C controller **/
++static struct resource jz4740_i2c_resources[] = {
++ [0] = {
++ .start = CPHYSADDR(I2C_BASE),
++ .end = CPHYSADDR(I2C_BASE) + 0x10000 - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = JZ_IRQ_I2C,
++ .end = JZ_IRQ_I2C,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++static u64 jz4740_i2c_dmamask = ~(u32)0;
++
++struct platform_device jz4740_i2c_device = {
++ .name = "jz_i2c",
++ .id = 0,
++ .dev = {
++ .dma_mask = &jz4740_i2c_dmamask,
++ .coherent_dma_mask = 0xffffffff,
++ },
++ .num_resources = ARRAY_SIZE(jz4740_i2c_resources),
++ .resource = jz4740_i2c_resources,
++};
++
++static struct resource jz4740_nand_resources[] = {
++ [0] = {
++ .start = CPHYSADDR(EMC_BASE),
++ .end = CPHYSADDR(EMC_BASE) + 0x10000 - 1,
++ .flags = IORESOURCE_MEM,
++ },
++};
++
++struct platform_device jz4740_nand_device = {
++ .name = "jz4740-nand",
++ .num_resources = ARRAY_SIZE(jz4740_nand_resources),
++ .resource = jz4740_nand_resources,
++};
++
++static struct resource jz4740_framebuffer_resources[] = {
++ [0] = {
++ .start = CPHYSADDR(LCD_BASE),
++ .end = CPHYSADDR(LCD_BASE) + 0x10000 - 1,
++ .flags = IORESOURCE_MEM,
++ },
++};
++
++static u64 jz4740_fb_dmamask = ~(u32)0;
++
++struct platform_device jz4740_framebuffer_device = {
++ .name = "jz4740-fb",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(jz4740_framebuffer_resources),
++ .resource = jz4740_framebuffer_resources,
++ .dev = {
++ .dma_mask = &jz4740_fb_dmamask,
++ .coherent_dma_mask = 0xffffffff,
++ },
++};
++
++static struct resource jz4740_i2s_resources[] = {
++ [0] = {
++ .start = CPHYSADDR(AIC_BASE),
++ .end = CPHYSADDR(AIC_BASE) + 0x38 - 1,
++ .flags = IORESOURCE_MEM,
++ },
++};
++
++struct platform_device jz4740_i2s_device = {
++ .name = "jz4740-i2s",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(jz4740_i2s_resources),
++ .resource = jz4740_i2s_resources,
++};
++
++static struct resource jz4740_codec_resources[] = {
++ [0] = {
++ .start = CPHYSADDR(AIC_BASE) + 0x80,
++ .end = CPHYSADDR(AIC_BASE) + 0x88 - 1,
++ .flags = IORESOURCE_MEM,
++ },
++};
++
++struct platform_device jz4740_codec_device = {
++ .name = "jz4740-codec",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(jz4740_codec_resources),
++ .resource = jz4740_codec_resources,
++};
++
++static struct resource jz4740_adc_resources[] = {
++ [0] = {
++ .start = CPHYSADDR(SADC_BASE),
++ .end = CPHYSADDR(SADC_BASE) + 0x30,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = JZ_IRQ_SADC,
++ .end = JZ_IRQ_SADC,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++struct platform_device jz4740_adc_device = {
++ .name = "jz4740-adc",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(jz4740_adc_resources),
++ .resource = jz4740_adc_resources,
++};
++
++struct platform_device jz4740_battery_device = {
++ .name = "jz4740-battery",
++ .id = -1,
++ .dev = {
++ .parent = &jz4740_adc_device.dev
++ },
++};
+diff -ruN linux-2.6.31-vanilla/arch/mips/jz4740/pm.c linux-2.6.31/arch/mips/jz4740/pm.c
+--- linux-2.6.31-vanilla/arch/mips/jz4740/pm.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/jz4740/pm.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,97 @@
++/*
++ * linux/arch/mips/jz4740/common/pm.c
++ *
++ * JZ4740 Power Management Routines
++ *
++ * Copyright (C) 2006 Ingenic Semiconductor Inc.
++ * Author: <jlwei@ingenic.cn>
++ *
++ * This program is free software; you can distribute it and/or modify it
++ * under the terms of the GNU General Public License (Version 2) as
++ * published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++ * for more details.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
++ *
++ */
++
++#include <linux/init.h>
++#include <linux/pm.h>
++#include <linux/sysctl.h>
++#include <linux/suspend.h>
++#include <asm/jzsoc.h>
++
++extern void jz4740_intc_suspend(void);
++extern void jz4740_intc_resume(void);
++extern void jz_gpiolib_suspend(void);
++extern void jz_gpiolib_resume(void);
++
++static int jz_pm_enter(suspend_state_t state)
++{
++ unsigned long delta;
++ unsigned long nfcsr = REG_EMC_NFCSR;
++ uint32_t scr = REG_CPM_SCR;
++ uint32_t sleep_gpio_save[7*3];
++
++ /* Preserve current time */
++ delta = xtime.tv_sec - REG_RTC_RSR;
++
++ /* Disable nand flash */
++ REG_EMC_NFCSR = ~0xff;
++
++ udelay(100);
++
++ /*stop udc and usb*/
++ REG_CPM_SCR &= ~( 1<<6 | 1<<7);
++ REG_CPM_SCR |= 0<<6 | 1<<7;
++
++ jz_gpiolib_suspend();
++ jz4740_intc_suspend();
++
++ /* Enter SLEEP mode */
++ REG_CPM_LCR &= ~CPM_LCR_LPM_MASK;
++ REG_CPM_LCR |= CPM_LCR_LPM_SLEEP;
++ __asm__(".set\tmips3\n\t"
++ "wait\n\t"
++ ".set\tmips0");
++
++ /* Restore to IDLE mode */
++ REG_CPM_LCR &= ~CPM_LCR_LPM_MASK;
++ REG_CPM_LCR |= CPM_LCR_LPM_IDLE;
++
++ /* Restore nand flash control register */
++ REG_EMC_NFCSR = nfcsr;
++
++ jz4740_intc_resume();
++ jz_gpiolib_resume();
++
++ /* Restore sleep control register */
++ REG_CPM_SCR = scr;
++
++ /* Restore current time */
++ xtime.tv_sec = REG_RTC_RSR + delta;
++
++ return 0;
++}
++
++static struct platform_suspend_ops jz_pm_ops = {
++ .valid = suspend_valid_only_mem,
++ .enter = jz_pm_enter,
++};
++
++/*
++ * Initialize power interface
++ */
++int __init jz_pm_init(void)
++{
++ suspend_set_ops(&jz_pm_ops);
++ return 0;
++
++}
++late_initcall(jz_pm_init);
+diff -ruN linux-2.6.31-vanilla/arch/mips/jz4740/proc.c linux-2.6.31/arch/mips/jz4740/proc.c
+--- linux-2.6.31-vanilla/arch/mips/jz4740/proc.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/jz4740/proc.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,308 @@
++/*
++ * linux/arch/mips/jz4740/proc.c
++ *
++ * /proc/jz/ procfs for jz4740 on-chip modules.
++ *
++ * Copyright (C) 2006 Ingenic Semiconductor Inc.
++ * Author: <jlwei@ingenic.cn>
++ *
++ * This program is free software; you can distribute it and/or modify it
++ * under the terms of the GNU General Public License (Version 2) as
++ * published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++ * for more details.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
++ *
++ */
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/interrupt.h>
++#include <linux/irq.h>
++#include <linux/sysctl.h>
++#include <linux/proc_fs.h>
++#include <linux/page-flags.h>
++#include <asm/uaccess.h>
++#include <asm/pgtable.h>
++#include <asm/jzsoc.h>
++
++//#define DEBUG 1
++#undef DEBUG
++
++
++struct proc_dir_entry *proc_jz_root;
++
++
++/*
++ * EMC Modules
++ */
++static int emc_read_proc (char *page, char **start, off_t off,
++ int count, int *eof, void *data)
++{
++ int len = 0;
++
++ len += sprintf (page+len, "SMCR(0-5): 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x\n", REG_EMC_SMCR0, REG_EMC_SMCR1, REG_EMC_SMCR2, REG_EMC_SMCR3, REG_EMC_SMCR4);
++ len += sprintf (page+len, "SACR(0-5): 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x\n", REG_EMC_SACR0, REG_EMC_SACR1, REG_EMC_SACR2, REG_EMC_SACR3, REG_EMC_SACR4);
++ len += sprintf (page+len, "DMCR: 0x%08x\n", REG_EMC_DMCR);
++ len += sprintf (page+len, "RTCSR: 0x%04x\n", REG_EMC_RTCSR);
++ len += sprintf (page+len, "RTCOR: 0x%04x\n", REG_EMC_RTCOR);
++ return len;
++}
++
++/*
++ * Power Manager Module
++ */
++static int pmc_read_proc (char *page, char **start, off_t off,
++ int count, int *eof, void *data)
++{
++ int len = 0;
++ unsigned long lcr = REG_CPM_LCR;
++ unsigned long clkgr = REG_CPM_CLKGR;
++
++ len += sprintf (page+len, "Low Power Mode : %s\n",
++ ((lcr & CPM_LCR_LPM_MASK) == (CPM_LCR_LPM_IDLE)) ?
++ "IDLE" : (((lcr & CPM_LCR_LPM_MASK) == (CPM_LCR_LPM_SLEEP)) ?
++ "SLEEP" : "HIBERNATE"));
++ len += sprintf (page+len, "Doze Mode : %s\n",
++ (lcr & CPM_LCR_DOZE_ON) ? "on" : "off");
++ if (lcr & CPM_LCR_DOZE_ON)
++ len += sprintf (page+len, " duty : %d\n", (int)((lcr & CPM_LCR_DOZE_DUTY_MASK) >> CPM_LCR_DOZE_DUTY_BIT));
++ len += sprintf (page+len, "IPU : %s\n",
++ (clkgr & CPM_CLKGR_IPU) ? "stopped" : "running");
++ len += sprintf (page+len, "DMAC : %s\n",
++ (clkgr & CPM_CLKGR_DMAC) ? "stopped" : "running");
++ len += sprintf (page+len, "UHC : %s\n",
++ (clkgr & CPM_CLKGR_UHC) ? "stopped" : "running");
++ len += sprintf (page+len, "UDC : %s\n",
++ (clkgr & CPM_CLKGR_UDC) ? "stopped" : "running");
++ len += sprintf (page+len, "LCD : %s\n",
++ (clkgr & CPM_CLKGR_LCD) ? "stopped" : "running");
++ len += sprintf (page+len, "CIM : %s\n",
++ (clkgr & CPM_CLKGR_CIM) ? "stopped" : "running");
++ len += sprintf (page+len, "SADC : %s\n",
++ (clkgr & CPM_CLKGR_SADC) ? "stopped" : "running");
++ len += sprintf (page+len, "MSC : %s\n",
++ (clkgr & CPM_CLKGR_MSC) ? "stopped" : "running");
++ len += sprintf (page+len, "AIC1 : %s\n",
++ (clkgr & CPM_CLKGR_AIC1) ? "stopped" : "running");
++ len += sprintf (page+len, "AIC2 : %s\n",
++ (clkgr & CPM_CLKGR_AIC2) ? "stopped" : "running");
++ len += sprintf (page+len, "SSI : %s\n",
++ (clkgr & CPM_CLKGR_SSI) ? "stopped" : "running");
++ len += sprintf (page+len, "I2C : %s\n",
++ (clkgr & CPM_CLKGR_I2C) ? "stopped" : "running");
++ len += sprintf (page+len, "RTC : %s\n",
++ (clkgr & CPM_CLKGR_RTC) ? "stopped" : "running");
++ len += sprintf (page+len, "TCU : %s\n",
++ (clkgr & CPM_CLKGR_TCU) ? "stopped" : "running");
++ len += sprintf (page+len, "UART1 : %s\n",
++ (clkgr & CPM_CLKGR_UART1) ? "stopped" : "running");
++ len += sprintf (page+len, "UART0 : %s\n",
++ (clkgr & CPM_CLKGR_UART0) ? "stopped" : "running");
++ return len;
++}
++
++static int pmc_write_proc(struct file *file, const char *buffer, unsigned long count, void *data)
++{
++ REG_CPM_CLKGR = simple_strtoul(buffer, 0, 16);
++ return count;
++}
++
++/*
++ * Clock Generation Module
++ */
++#define TO_MHZ(x) (x/1000000),(x%1000000)/10000
++#define TO_KHZ(x) (x/1000),(x%1000)/10
++
++static int cgm_read_proc (char *page, char **start, off_t off,
++ int count, int *eof, void *data)
++{
++ int len = 0;
++ unsigned int cppcr = REG_CPM_CPPCR; /* PLL Control Register */
++ unsigned int cpccr = REG_CPM_CPCCR; /* Clock Control Register */
++ unsigned int div[] = {1, 2, 3, 4, 6, 8, 12, 16, 24, 32};
++ unsigned int od[4] = {1, 2, 2, 4};
++
++ len += sprintf (page+len, "CPPCR : 0x%08x\n", cppcr);
++ len += sprintf (page+len, "CPCCR : 0x%08x\n", cpccr);
++ len += sprintf (page+len, "PLL : %s\n",
++ (cppcr & CPM_CPPCR_PLLEN) ? "ON" : "OFF");
++ len += sprintf (page+len, "m:n:o : %d:%d:%d\n",
++ __cpm_get_pllm() + 2,
++ __cpm_get_plln() + 2,
++ od[__cpm_get_pllod()]
++ );
++ len += sprintf (page+len, "C:H:M:P : %d:%d:%d:%d\n",
++ div[__cpm_get_cdiv()],
++ div[__cpm_get_hdiv()],
++ div[__cpm_get_mdiv()],
++ div[__cpm_get_pdiv()]
++ );
++ len += sprintf (page+len, "PLL Freq : %3d.%02d MHz\n", TO_MHZ(__cpm_get_pllout()));
++ len += sprintf (page+len, "CCLK : %3d.%02d MHz\n", TO_MHZ(__cpm_get_cclk()));
++ len += sprintf (page+len, "HCLK : %3d.%02d MHz\n", TO_MHZ(__cpm_get_hclk()));
++ len += sprintf (page+len, "MCLK : %3d.%02d MHz\n", TO_MHZ(__cpm_get_mclk()));
++ len += sprintf (page+len, "PCLK : %3d.%02d MHz\n", TO_MHZ(__cpm_get_pclk()));
++ len += sprintf (page+len, "LCDCLK : %3d.%02d MHz\n", TO_MHZ(__cpm_get_lcdclk()));
++ len += sprintf (page+len, "PIXCLK : %3d.%02d KHz\n", TO_KHZ(__cpm_get_pixclk()));
++ len += sprintf (page+len, "I2SCLK : %3d.%02d MHz\n", TO_MHZ(__cpm_get_i2sclk()));
++ len += sprintf (page+len, "USBCLK : %3d.%02d MHz\n", TO_MHZ(__cpm_get_usbclk()));
++ len += sprintf (page+len, "MSCCLK : %3d.%02d MHz\n", TO_MHZ(__cpm_get_mscclk()));
++ len += sprintf (page+len, "EXTALCLK : %3d.%02d MHz\n", TO_MHZ(__cpm_get_extalclk()));
++ len += sprintf (page+len, "RTCCLK : %3d.%02d MHz\n", TO_MHZ(__cpm_get_rtcclk()));
++
++ return len;
++}
++
++static int cgm_write_proc(struct file *file, const char *buffer, unsigned long count, void *data)
++{
++ REG_CPM_CPCCR = simple_strtoul(buffer, 0, 16);
++ return count;
++}
++
++
++extern void local_flush_tlb_all(void);
++
++/* CP0 hazard avoidance. */
++#define BARRIER __asm__ __volatile__(".set noreorder\n\t" \
++ "nop; nop; nop; nop; nop; nop;\n\t" \
++ ".set reorder\n\t")
++void show_tlb(void)
++{
++#define ASID_MASK 0xFF
++
++ unsigned long flags;
++ unsigned int old_ctx;
++ unsigned int entry;
++ unsigned int entrylo0, entrylo1, entryhi;
++ unsigned int pagemask;
++
++ local_irq_save(flags);
++
++ /* Save old context */
++ old_ctx = (read_c0_entryhi() & 0xff);
++
++ printk("TLB content:\n");
++ entry = 0;
++ while(entry < 32) {
++ write_c0_index(entry);
++ BARRIER;
++ tlb_read();
++ BARRIER;
++ entryhi = read_c0_entryhi();
++ entrylo0 = read_c0_entrylo0();
++ entrylo1 = read_c0_entrylo1();
++ pagemask = read_c0_pagemask();
++ printk("%02d: ASID=%02d%s VA=0x%08x ", entry, entryhi & ASID_MASK, (entrylo0 & entrylo1 & 1) ? "(G)" : " ", entryhi & ~ASID_MASK);
++ printk("PA0=0x%08x C0=%x %s%s%s\n", (entrylo0>>6)<<12, (entrylo0>>3) & 7, (entrylo0 & 4) ? "Dirty " : "", (entrylo0 & 2) ? "Valid " : "Invalid ", (entrylo0 & 1) ? "Global" : "");
++ printk("\t\t\t PA1=0x%08x C1=%x %s%s%s\n", (entrylo1>>6)<<12, (entrylo1>>3) & 7, (entrylo1 & 4) ? "Dirty " : "", (entrylo1 & 2) ? "Valid " : "Invalid ", (entrylo1 & 1) ? "Global" : "");
++
++ printk("\t\tpagemask=0x%08x", pagemask);
++ printk("\tentryhi=0x%08x\n", entryhi);
++ printk("\t\tentrylo0=0x%08x", entrylo0);
++ printk("\tentrylo1=0x%08x\n", entrylo1);
++
++ entry++;
++ }
++ BARRIER;
++ write_c0_entryhi(old_ctx);
++
++ local_irq_restore(flags);
++}
++
++/*
++ * UDC hotplug
++ */
++#ifdef CONFIG_JZ_UDC_HOTPLUG
++extern int jz_udc_active; /* defined in drivers/char/jzchar/jz_udc_hotplug.c */
++#endif
++
++#ifndef GPIO_UDC_HOTPLUG
++#define GPIO_UDC_HOTPLUG 86
++#endif
++
++static int udc_read_proc(char *page, char **start, off_t off,
++ int count, int *eof, void *data)
++{
++ int len = 0;
++
++ if (__gpio_get_pin(GPIO_UDC_HOTPLUG)) {
++
++#ifdef CONFIG_JZ_UDC_HOTPLUG
++
++ /* Cable has connected, wait for disconnection. */
++ __gpio_as_irq_fall_edge(GPIO_UDC_HOTPLUG);
++
++ if (jz_udc_active)
++ len += sprintf (page+len, "CONNECT_CABLE\n");
++ else
++ len += sprintf (page+len, "CONNECT_POWER\n");
++#else
++ len += sprintf (page+len, "CONNECT\n");
++#endif
++ }
++ else {
++
++#ifdef CONFIG_JZ_UDC_HOTPLUG
++ /* Cable has disconnected, wait for connection. */
++ __gpio_as_irq_rise_edge(GPIO_UDC_HOTPLUG);
++#endif
++
++ len += sprintf (page+len, "REMOVE\n");
++ }
++
++ return len;
++}
++
++/*
++ * /proc/jz/xxx entry
++ *
++ */
++static int __init jz_proc_init(void)
++{
++ struct proc_dir_entry *res;
++ unsigned int virt_addr, i;
++
++ proc_jz_root = proc_mkdir("jz", 0);
++
++ /* External Memory Controller */
++ res = create_proc_entry("emc", 0644, proc_jz_root);
++ if (res) {
++ res->read_proc = emc_read_proc;
++ res->write_proc = NULL;
++ res->data = NULL;
++ }
++
++ /* Power Management Controller */
++ res = create_proc_entry("pmc", 0644, proc_jz_root);
++ if (res) {
++ res->read_proc = pmc_read_proc;
++ res->write_proc = pmc_write_proc;
++ res->data = NULL;
++ }
++
++ /* Clock Generation Module */
++ res = create_proc_entry("cgm", 0644, proc_jz_root);
++ if (res) {
++ res->read_proc = cgm_read_proc;
++ res->write_proc = cgm_write_proc;
++ res->data = NULL;
++ }
++
++ /* udc hotplug */
++ res = create_proc_entry("udc", 0644, proc_jz_root);
++ if (res) {
++ res->read_proc = udc_read_proc;
++ res->write_proc = NULL;
++ res->data = NULL;
++ }
++
++ return 0;
++}
++
++__initcall(jz_proc_init);
+diff -ruN linux-2.6.31-vanilla/arch/mips/jz4740/prom.c linux-2.6.31/arch/mips/jz4740/prom.c
+--- linux-2.6.31-vanilla/arch/mips/jz4740/prom.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/jz4740/prom.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,198 @@
++/*
++ *
++ * BRIEF MODULE DESCRIPTION
++ * PROM library initialisation code, supports YAMON and U-Boot.
++ *
++ * Copyright 2000, 2001, 2006 MontaVista Software Inc.
++ * Author: MontaVista Software, Inc.
++ * ppopov@mvista.com or source@mvista.com
++ *
++ * This file was derived from Carsten Langgaard's
++ * arch/mips/mips-boards/xx files.
++ *
++ * Carsten Langgaard, carstenl@mips.com
++ * Copyright (C) 1999,2000 MIPS Technologies, Inc. All rights reserved.
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * THIS SOFTWARE IS PROVIDED ``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.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/string.h>
++
++#include <asm/bootinfo.h>
++#include <asm/jzsoc.h>
++
++/* #define DEBUG_CMDLINE */
++
++int prom_argc;
++char **prom_argv, **prom_envp;
++
++char * prom_getcmdline(void)
++{
++ return &(arcs_cmdline[0]);
++}
++
++void prom_init_cmdline(void)
++{
++ char *cp;
++ int actr;
++
++ actr = 1; /* Always ignore argv[0] */
++
++ cp = &(arcs_cmdline[0]);
++ while(actr < prom_argc) {
++ strcpy(cp, prom_argv[actr]);
++ cp += strlen(prom_argv[actr]);
++ *cp++ = ' ';
++ actr++;
++ }
++ if (cp != &(arcs_cmdline[0])) /* get rid of trailing space */
++ --cp;
++ if (prom_argc > 1)
++ *cp = '\0';
++
++}
++
++
++char *prom_getenv(char *envname)
++{
++#if 0
++ /*
++ * Return a pointer to the given environment variable.
++ * YAMON uses "name", "value" pairs, while U-Boot uses "name=value".
++ */
++
++ char **env = prom_envp;
++ int i = strlen(envname);
++ int yamon = (*env && strchr(*env, '=') == NULL);
++
++ while (*env) {
++ if (yamon) {
++ if (strcmp(envname, *env++) == 0)
++ return *env;
++ } else {
++ if (strncmp(envname, *env, i) == 0 && (*env)[i] == '=')
++ return *env + i + 1;
++ }
++ env++;
++ }
++#endif
++ return NULL;
++}
++
++inline unsigned char str2hexnum(unsigned char c)
++{
++ if(c >= '0' && c <= '9')
++ return c - '0';
++ if(c >= 'a' && c <= 'f')
++ return c - 'a' + 10;
++ if(c >= 'A' && c <= 'F')
++ return c - 'A' + 10;
++ return 0; /* foo */
++}
++
++inline void str2eaddr(unsigned char *ea, unsigned char *str)
++{
++ int i;
++
++ for(i = 0; i < 6; i++) {
++ unsigned char num;
++
++ if((*str == '.') || (*str == ':'))
++ str++;
++ num = str2hexnum(*str++) << 4;
++ num |= (str2hexnum(*str++));
++ ea[i] = num;
++ }
++}
++
++int get_ethernet_addr(char *ethernet_addr)
++{
++ char *ethaddr_str;
++
++ ethaddr_str = prom_getenv("ethaddr");
++ if (!ethaddr_str) {
++ printk("ethaddr not set in boot prom\n");
++ return -1;
++ }
++ str2eaddr(ethernet_addr, ethaddr_str);
++
++#if 0
++ {
++ int i;
++
++ printk("get_ethernet_addr: ");
++ for (i=0; i<5; i++)
++ printk("%02x:", (unsigned char)*(ethernet_addr+i));
++ printk("%02x\n", *(ethernet_addr+i));
++ }
++#endif
++
++ return 0;
++}
++
++void __init prom_free_prom_memory(void)
++{
++}
++
++void __init prom_init(void)
++{
++ unsigned char *memsize_str;
++ unsigned long memsize;
++
++ prom_argc = (int) fw_arg0;
++ prom_argv = (char **) fw_arg1;
++ prom_envp = (char **) fw_arg2;
++
++ mips_machtype = MACH_INGENIC_JZ4740;
++
++ prom_init_cmdline();
++ memsize_str = prom_getenv("memsize");
++ if (!memsize_str) {
++ memsize = 0x04000000;
++ } else {
++ memsize = simple_strtol(memsize_str, NULL, 0);
++ }
++ add_memory_region(0, memsize, BOOT_MEM_RAM);
++}
++
++/* used by early printk */
++void prom_putchar(char c)
++{
++ volatile u8 *uart_lsr = (volatile u8 *)(UART0_BASE + OFF_LSR);
++ volatile u8 *uart_tdr = (volatile u8 *)(UART0_BASE + OFF_TDR);
++
++ /* Wait for fifo to shift out some bytes */
++ while ( !((*uart_lsr & (UARTLSR_TDRQ | UARTLSR_TEMT)) == 0x60) );
++
++ *uart_tdr = (u8)c;
++}
++
++const char *get_system_type(void)
++{
++ return "JZ4740";
++}
++
++EXPORT_SYMBOL(prom_getcmdline);
++EXPORT_SYMBOL(get_ethernet_addr);
++EXPORT_SYMBOL(str2eaddr);
+diff -ruN linux-2.6.31-vanilla/arch/mips/jz4740/reset.c linux-2.6.31/arch/mips/jz4740/reset.c
+--- linux-2.6.31-vanilla/arch/mips/jz4740/reset.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/jz4740/reset.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,48 @@
++/*
++ * linux/arch/mips/jz4740/reset.c
++ *
++ * JZ4740 reset routines.
++ *
++ * Copyright (c) 2006-2007 Ingenic Semiconductor Inc.
++ * Author: <yliu@ingenic.cn>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++#include <linux/sched.h>
++#include <linux/mm.h>
++#include <asm/io.h>
++#include <asm/pgtable.h>
++#include <asm/processor.h>
++#include <asm/reboot.h>
++#include <asm/system.h>
++#include <asm/jzsoc.h>
++
++void jz_restart(char *command)
++{
++ printk(KERN_NOTICE "Restarting after 4 ms\n");
++ REG_WDT_TCSR = WDT_TCSR_PRESCALE4 | WDT_TCSR_EXT_EN;
++ REG_WDT_TCNT = 0;
++ REG_WDT_TDR = JZ_EXTAL/1000; /* reset after 4ms */
++ REG_TCU_TSCR = TCU_TSSR_WDTSC; /* enable wdt clock */
++ REG_WDT_TCER = WDT_TCER_TCEN; /* wdt start */
++ while (1);
++}
++
++void jz_halt(void)
++{
++ /* Put CPU to power down mode */
++ while (!(REG_RTC_RCR & RTC_RCR_WRDY));
++ REG_RTC_HCR = RTC_HCR_PD;
++
++ while (1)
++ __asm__(".set\tmips3\n\t"
++ "wait\n\t"
++ ".set\tmips0");
++}
++
++void jz_power_off(void)
++{
++ jz_halt();
++}
+diff -ruN linux-2.6.31-vanilla/arch/mips/jz4740/setup.c linux-2.6.31/arch/mips/jz4740/setup.c
+--- linux-2.6.31-vanilla/arch/mips/jz4740/setup.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/jz4740/setup.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,180 @@
++/*
++ * linux/arch/mips/jz4740/common/setup.c
++ *
++ * JZ4740 common setup routines.
++ *
++ * Copyright (C) 2006 Ingenic Semiconductor Inc.
++ *
++ * This program is free software; you can distribute it and/or modify it
++ * under the terms of the GNU General Public License (Version 2) as
++ * published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++ * for more details.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
++ *
++ */
++#include <linux/init.h>
++#include <linux/string.h>
++#include <linux/kernel.h>
++#include <linux/io.h>
++#include <linux/irq.h>
++#include <linux/ioport.h>
++#include <linux/tty.h>
++#include <linux/serial.h>
++#include <linux/serial_core.h>
++#include <linux/serial_8250.h>
++
++#include <asm/cpu.h>
++#include <asm/bootinfo.h>
++#include <asm/irq.h>
++#include <asm/mipsregs.h>
++#include <asm/reboot.h>
++#include <asm/pgtable.h>
++#include <asm/time.h>
++#include <asm/jzsoc.h>
++
++#ifdef CONFIG_PM
++#include <asm/suspend.h>
++#endif
++
++#ifdef CONFIG_PC_KEYB
++#include <asm/keyboard.h>
++#endif
++
++jz_clocks_t jz_clocks;
++
++extern char * __init prom_getcmdline(void);
++extern void __init jz_board_setup(void);
++extern void jz_restart(char *);
++extern void jz_halt(void);
++extern void jz_power_off(void);
++extern void jz_time_init(void);
++
++static void __init sysclocks_setup(void)
++{
++#ifndef CONFIG_MIPS_JZ_EMURUS /* FPGA */
++ jz_clocks.cclk = __cpm_get_cclk();
++ jz_clocks.hclk = __cpm_get_hclk();
++ jz_clocks.pclk = __cpm_get_pclk();
++ jz_clocks.mclk = __cpm_get_mclk();
++ jz_clocks.lcdclk = __cpm_get_lcdclk();
++ jz_clocks.pixclk = __cpm_get_pixclk();
++ jz_clocks.i2sclk = __cpm_get_i2sclk();
++ jz_clocks.usbclk = __cpm_get_usbclk();
++ jz_clocks.mscclk = __cpm_get_mscclk();
++ jz_clocks.extalclk = __cpm_get_extalclk();
++ jz_clocks.rtcclk = __cpm_get_rtcclk();
++#else
++
++#define FPGACLK 8000000
++
++ jz_clocks.cclk = FPGACLK;
++ jz_clocks.hclk = FPGACLK;
++ jz_clocks.pclk = FPGACLK;
++ jz_clocks.mclk = FPGACLK;
++ jz_clocks.lcdclk = FPGACLK;
++ jz_clocks.pixclk = FPGACLK;
++ jz_clocks.i2sclk = FPGACLK;
++ jz_clocks.usbclk = FPGACLK;
++ jz_clocks.mscclk = FPGACLK;
++ jz_clocks.extalclk = FPGACLK;
++ jz_clocks.rtcclk = FPGACLK;
++#endif
++
++ printk("CPU clock: %dMHz, System clock: %dMHz, Peripheral clock: %dMHz, Memory clock: %dMHz\n",
++ (jz_clocks.cclk + 500000) / 1000000,
++ (jz_clocks.hclk + 500000) / 1000000,
++ (jz_clocks.pclk + 500000) / 1000000,
++ (jz_clocks.mclk + 500000) / 1000000);
++}
++
++static void __init soc_cpm_setup(void)
++{
++ /* Enable CKO to external memory */
++ __cpm_enable_cko();
++
++ /* CPU enters IDLE mode when executing 'wait' instruction */
++ __cpm_idle_mode();
++
++ /* Setup system clocks */
++ sysclocks_setup();
++}
++
++static void __init soc_harb_setup(void)
++{
++// __harb_set_priority(0x00); /* CIM>LCD>DMA>ETH>PCI>USB>CBB */
++// __harb_set_priority(0x03); /* LCD>CIM>DMA>ETH>PCI>USB>CBB */
++// __harb_set_priority(0x0a); /* ETH>LCD>CIM>DMA>PCI>USB>CBB */
++}
++
++static void __init soc_emc_setup(void)
++{
++}
++
++static void __init soc_dmac_setup(void)
++{
++ __dmac_enable_module();
++}
++
++static void __init jz_soc_setup(void)
++{
++ soc_cpm_setup();
++ soc_harb_setup();
++ soc_emc_setup();
++ soc_dmac_setup();
++}
++
++static void __init jz_serial_setup(void)
++{
++#ifdef CONFIG_SERIAL_8250
++ struct uart_port s;
++ REG8(UART0_FCR) |= UARTFCR_UUE; /* enable UART module */
++ memset(&s, 0, sizeof(s));
++ s.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST;
++ s.iotype = SERIAL_IO_MEM;
++ s.regshift = 2;
++ s.uartclk = jz_clocks.extalclk ;
++
++ s.line = 0;
++ s.membase = (u8 *)UART0_BASE;
++ s.irq = JZ_IRQ_UART0;
++ if (early_serial_setup(&s) != 0) {
++ printk(KERN_ERR "Serial ttyS0 setup failed!\n");
++ }
++
++ s.line = 1;
++ s.membase = (u8 *)UART1_BASE;
++ s.irq = JZ_IRQ_UART1;
++ if (early_serial_setup(&s) != 0) {
++ printk(KERN_ERR "Serial ttyS1 setup failed!\n");
++ }
++#endif
++}
++
++void __init plat_mem_setup(void)
++{
++ char *argptr;
++
++ argptr = prom_getcmdline();
++
++ /* IO/MEM resources. Which will be the addtion value in `inX' and
++ * `outX' macros defined in asm/io.h */
++ set_io_port_base(0);
++ ioport_resource.start = 0x00000000;
++ ioport_resource.end = 0xffffffff;
++ iomem_resource.start = 0x00000000;
++ iomem_resource.end = 0xffffffff;
++
++ _machine_restart = jz_restart;
++ _machine_halt = jz_halt;
++ pm_power_off = jz_power_off;
++ jz_soc_setup();
++ jz_serial_setup();
++}
++
+diff -ruN linux-2.6.31-vanilla/arch/mips/jz4740/time.c linux-2.6.31/arch/mips/jz4740/time.c
+--- linux-2.6.31-vanilla/arch/mips/jz4740/time.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/arch/mips/jz4740/time.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,159 @@
++/*
++ * linux/arch/mips/jz4740/time.c
++ *
++ * Setting up the clock on the JZ4740 boards.
++ *
++ * Copyright (C) 2008 Ingenic Semiconductor Inc.
++ * Author: <jlwei@ingenic.cn>
++ *
++ * This program is free software; you can distribute it and/or modify it
++ * under the terms of the GNU General Public License (Version 2) as
++ * published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++ * for more details.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
++ *
++ */
++#include <linux/types.h>
++#include <linux/interrupt.h>
++#include <linux/time.h>
++#include <linux/clockchips.h>
++
++#include <asm/time.h>
++#include <asm/jzsoc.h>
++
++/* This is for machines which generate the exact clock. */
++
++#define JZ_TIMER_CHAN 0
++#define JZ_TIMER_IRQ JZ_IRQ_TCU0
++
++#define JZ_TIMER_CLOCK (JZ_EXTAL>>4) /* Jz timer clock frequency */
++
++static struct clocksource clocksource_jz; /* Jz clock source */
++static struct clock_event_device jz_clockevent_device; /* Jz clock event */
++
++void (*jz_timer_callback)(void);
++
++static irqreturn_t jz_timer_interrupt(int irq, void *dev_id)
++{
++ struct clock_event_device *cd = dev_id;
++
++ REG_TCU_TFCR = 1 << JZ_TIMER_CHAN; /* ACK timer */
++
++ if (jz_timer_callback)
++ jz_timer_callback();
++
++ cd->event_handler(cd);
++
++ return IRQ_HANDLED;
++}
++
++static struct irqaction jz_irqaction = {
++ .handler = jz_timer_interrupt,
++ .flags = IRQF_DISABLED | IRQF_PERCPU | IRQF_TIMER,
++ .name = "jz-timerirq",
++};
++
++
++cycle_t jz_get_cycles(void)
++{
++ /* convert jiffes to jz timer cycles */
++ return (cycle_t)( jiffies*((JZ_TIMER_CLOCK)/HZ) + REG_TCU_TCNT(JZ_TIMER_CHAN));
++}
++
++static struct clocksource clocksource_jz = {
++ .name = "jz_clocksource",
++ .rating = 300,
++ .read = jz_get_cycles,
++ .mask = 0xFFFF,
++ .shift = 10,
++ .flags = CLOCK_SOURCE_WATCHDOG,
++};
++
++static int __init jz_clocksource_init(void)
++{
++ clocksource_jz.mult = clocksource_hz2mult(JZ_TIMER_CLOCK, clocksource_jz.shift);
++ clocksource_register(&clocksource_jz);
++ return 0;
++}
++
++static int jz_set_next_event(unsigned long evt,
++ struct clock_event_device *unused)
++{
++ return 0;
++}
++
++static void jz_set_mode(enum clock_event_mode mode,
++ struct clock_event_device *evt)
++{
++ switch (mode) {
++ case CLOCK_EVT_MODE_PERIODIC:
++ break;
++ case CLOCK_EVT_MODE_ONESHOT:
++ case CLOCK_EVT_MODE_UNUSED:
++ case CLOCK_EVT_MODE_SHUTDOWN:
++ break;
++ case CLOCK_EVT_MODE_RESUME:
++ break;
++ }
++}
++
++static struct clock_event_device jz_clockevent_device = {
++ .name = "jz-clockenvent",
++ .features = CLOCK_EVT_FEAT_PERIODIC,
++// .features = CLOCK_EVT_FEAT_ONESHOT, /* Jz4740 not support dynamic clock now */
++
++ /* .mult, .shift, .max_delta_ns and .min_delta_ns left uninitialized */
++ .mult = 1,
++ .rating = 300,
++ .irq = JZ_TIMER_IRQ,
++ .set_mode = jz_set_mode,
++ .set_next_event = jz_set_next_event,
++};
++
++static void __init jz_clockevent_init(void)
++{
++ struct clock_event_device *cd = &jz_clockevent_device;
++ unsigned int cpu = smp_processor_id();
++
++ cd->cpumask = cpumask_of(cpu);
++ clockevents_register_device(cd);
++}
++
++static void __init jz_timer_setup(void)
++{
++ jz_clocksource_init(); /* init jz clock source */
++ jz_clockevent_init(); /* init jz clock event */
++
++ /*
++ * Make irqs happen for the system timer
++ */
++ jz_irqaction.dev_id = &jz_clockevent_device;
++ setup_irq(JZ_TIMER_IRQ, &jz_irqaction);
++}
++
++
++void __init plat_time_init(void)
++{
++ unsigned int latch;
++ /* Init timer */
++ latch = ( JZ_TIMER_CLOCK + (HZ>>1)) / HZ;
++
++ REG_TCU_TCSR(JZ_TIMER_CHAN) = TCU_TCSR_PRESCALE16 | TCU_TCSR_EXT_EN;
++ REG_TCU_TCNT(JZ_TIMER_CHAN) = 0;
++ REG_TCU_TDHR(JZ_TIMER_CHAN) = 0;
++ REG_TCU_TDFR(JZ_TIMER_CHAN) = latch;
++
++ REG_TCU_TMSR = (1 << (JZ_TIMER_CHAN + 16)); /* mask half irq */
++ REG_TCU_TMCR = (1 << JZ_TIMER_CHAN); /* unmask full irq */
++ REG_TCU_TSCR = (1 << JZ_TIMER_CHAN); /* enable timer clock */
++ REG_TCU_TESR = (1 << JZ_TIMER_CHAN); /* start counting up */
++
++ jz_timer_setup();
++}
+diff -ruN linux-2.6.31-vanilla/drivers/char/defkeymap.c linux-2.6.31/drivers/char/defkeymap.c
+--- linux-2.6.31-vanilla/drivers/char/defkeymap.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/drivers/char/defkeymap.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,438 @@
++/* Do not edit this file! It was automatically generated by */
++/* loadkeys --mktable defkeymap.map > defkeymap.c */
++
++#include <linux/types.h>
++#include <linux/keyboard.h>
++#include <linux/kd.h>
++
++u_short plain_map[NR_KEYS] = {
++ 0xf200, 0xf01b, 0xf031, 0xf032, 0xf033, 0xf034, 0xf035, 0xf036,
++ 0xf037, 0xf038, 0xf039, 0xf030, 0xf02d, 0xf03d, 0xf07f, 0xf009,
++ 0xfb71, 0xfb77, 0xfb65, 0xfb72, 0xfb74, 0xfb79, 0xfb75, 0xfb69,
++ 0xfb6f, 0xfb70, 0xf05b, 0xf05d, 0xf201, 0xf702, 0xfb61, 0xfb73,
++ 0xfb64, 0xfb66, 0xfb67, 0xfb68, 0xfb6a, 0xfb6b, 0xfb6c, 0xf03b,
++ 0xf027, 0xf060, 0xf700, 0xf05c, 0xfb7a, 0xfb78, 0xfb63, 0xfb76,
++ 0xfb62, 0xfb6e, 0xfb6d, 0xf02c, 0xf02e, 0xf02f, 0xf701, 0xf30c,
++ 0xf703, 0xf020, 0xf207, 0xf100, 0xf101, 0xf102, 0xf103, 0xf104,
++ 0xf105, 0xf106, 0xf107, 0xf108, 0xf109, 0xf208, 0xf209, 0xf307,
++ 0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301,
++ 0xf302, 0xf303, 0xf300, 0xf310, 0xf206, 0xf200, 0xf03c, 0xf10a,
++ 0xf10b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf30e, 0xf707, 0xf30d, 0xf01c, 0xf701, 0xf205, 0xf114, 0xf603,
++ 0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116,
++ 0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++};
++
++static u_short shift_map[NR_KEYS] = {
++ 0xf200, 0xf01b, 0xf021, 0xf040, 0xf023, 0xf024, 0xf025, 0xf05e,
++ 0xf026, 0xf02a, 0xf028, 0xf029, 0xf05f, 0xf02b, 0xf07f, 0xf009,
++ 0xfb51, 0xfb57, 0xfb45, 0xfb52, 0xfb54, 0xfb59, 0xfb55, 0xfb49,
++ 0xfb4f, 0xfb50, 0xf07b, 0xf07d, 0xf201, 0xf702, 0xfb41, 0xfb53,
++ 0xfb44, 0xfb46, 0xfb47, 0xfb48, 0xfb4a, 0xfb4b, 0xfb4c, 0xf03a,
++ 0xf022, 0xf07e, 0xf700, 0xf07c, 0xfb5a, 0xfb58, 0xfb43, 0xfb56,
++ 0xfb42, 0xfb4e, 0xfb4d, 0xf03b, 0xf03a, 0xf03f, 0xf701, 0xf30c,
++ 0xf703, 0xf020, 0xf207, 0xf10a, 0xf10b, 0xf10c, 0xf10d, 0xf10e,
++ 0xf10f, 0xf110, 0xf111, 0xf112, 0xf113, 0xf213, 0xf203, 0xf307,
++ 0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301,
++ 0xf302, 0xf303, 0xf300, 0xf310, 0xf206, 0xf200, 0xf03e, 0xf10a,
++ 0xf10b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf30e, 0xf707, 0xf30d, 0xf01c, 0xf701, 0xf205, 0xf114, 0xf603,
++ 0xf20b, 0xf601, 0xf602, 0xf117, 0xf600, 0xf20a, 0xf115, 0xf116,
++ 0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++};
++
++static u_short altgr_map[NR_KEYS] = {
++ 0xf200, 0xf200, 0xf200, 0xf040, 0xf200, 0xf024, 0xf200, 0xf200,
++ 0xf07b, 0xf05b, 0xf05d, 0xf07d, 0xf05c, 0xf07e, 0xf200, 0xf200,
++ 0xf021, 0xf040, 0xf023, 0xf024, 0xf025, 0xf05e, 0xf026, 0xf02a,
++ 0xf028, 0xf029, 0xf200, 0xf07e, 0xf201, 0xf702, 0xf0b0, 0xf0a8,
++ 0xf0a4, 0xf02d, 0xf05f, 0xf07b, 0xf05b, 0xf05d, 0xf07d, 0xf200,
++ 0xf200, 0xf200, 0xf700, 0xf200, 0xf039, 0xf030, 0xf916, 0xfb76,
++ 0xf915, 0xf03c, 0xf03e, 0xf027, 0xf022, 0xf200, 0xf701, 0xf30c,
++ 0xf703, 0xf200, 0xf207, 0xf031, 0xf032, 0xf033, 0xf034, 0xf035,
++ 0xf036, 0xf037, 0xf038, 0xf514, 0xf515, 0xf208, 0xf202, 0xf911,
++ 0xf912, 0xf913, 0xf30b, 0xf90e, 0xf90f, 0xf910, 0xf30a, 0xf90b,
++ 0xf90c, 0xf90d, 0xf90a, 0xf310, 0xf206, 0xf200, 0xf07c, 0xf516,
++ 0xf517, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf30e, 0xf707, 0xf30d, 0xf01c, 0xf701, 0xf205, 0xf114, 0xf603,
++ 0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116,
++ 0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++};
++
++static u_short ctrl_map[NR_KEYS] = {
++ 0xf200, 0xf200, 0xf200, 0xf000, 0xf01b, 0xf01c, 0xf01d, 0xf01e,
++ 0xf01f, 0xf07f, 0xf200, 0xf200, 0xf01f, 0xf200, 0xf008, 0xf200,
++ 0xf011, 0xf017, 0xf005, 0xf012, 0xf014, 0xf019, 0xf015, 0xf009,
++ 0xf00f, 0xf010, 0xf01b, 0xf01d, 0xf201, 0xf702, 0xf001, 0xf013,
++ 0xf004, 0xf006, 0xf007, 0xf008, 0xf00a, 0xf00b, 0xf00c, 0xf200,
++ 0xf007, 0xf000, 0xf700, 0xf01c, 0xf01a, 0xf018, 0xf003, 0xf016,
++ 0xf002, 0xf00e, 0xf00d, 0xf200, 0xf20e, 0xf07f, 0xf701, 0xf30c,
++ 0xf703, 0xf000, 0xf207, 0xf100, 0xf101, 0xf102, 0xf103, 0xf104,
++ 0xf105, 0xf106, 0xf107, 0xf108, 0xf109, 0xf208, 0xf204, 0xf307,
++ 0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301,
++ 0xf302, 0xf303, 0xf300, 0xf310, 0xf206, 0xf200, 0xf200, 0xf10a,
++ 0xf10b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf30e, 0xf707, 0xf30d, 0xf01c, 0xf701, 0xf205, 0xf114, 0xf603,
++ 0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116,
++ 0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++};
++
++static u_short shift_ctrl_map[NR_KEYS] = {
++ 0xf200, 0xf200, 0xf200, 0xf000, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf01f, 0xf200, 0xf200, 0xf200,
++ 0xf011, 0xf017, 0xf005, 0xf012, 0xf014, 0xf019, 0xf015, 0xf009,
++ 0xf00f, 0xf010, 0xf200, 0xf200, 0xf201, 0xf702, 0xf001, 0xf013,
++ 0xf004, 0xf006, 0xf007, 0xf008, 0xf00a, 0xf00b, 0xf00c, 0xf200,
++ 0xf200, 0xf200, 0xf700, 0xf200, 0xf01a, 0xf018, 0xf003, 0xf016,
++ 0xf002, 0xf00e, 0xf00d, 0xf200, 0xf200, 0xf200, 0xf701, 0xf30c,
++ 0xf703, 0xf200, 0xf207, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf208, 0xf200, 0xf307,
++ 0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301,
++ 0xf302, 0xf303, 0xf300, 0xf310, 0xf206, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf30e, 0xf707, 0xf30d, 0xf01c, 0xf701, 0xf205, 0xf114, 0xf603,
++ 0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116,
++ 0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++};
++
++static u_short alt_map[NR_KEYS] = {
++ 0xf200, 0xf81b, 0xf831, 0xf832, 0xf833, 0xf834, 0xf835, 0xf836,
++ 0xf837, 0xf838, 0xf839, 0xf830, 0xf82d, 0xf83d, 0xf87f, 0xf809,
++ 0xf871, 0xf877, 0xf865, 0xf872, 0xf874, 0xf879, 0xf875, 0xf869,
++ 0xf86f, 0xf870, 0xf85b, 0xf85d, 0xf80d, 0xf702, 0xf861, 0xf873,
++ 0xf864, 0xf866, 0xf867, 0xf868, 0xf86a, 0xf86b, 0xf86c, 0xf83b,
++ 0xf827, 0xf860, 0xf700, 0xf85c, 0xf87a, 0xf878, 0xf863, 0xf876,
++ 0xf862, 0xf86e, 0xf86d, 0xf200, 0xf200, 0xf82f, 0xf701, 0xf30c,
++ 0xf703, 0xf820, 0xf207, 0xf500, 0xf501, 0xf502, 0xf503, 0xf504,
++ 0xf505, 0xf506, 0xf507, 0xf508, 0xf509, 0xf208, 0xf209, 0xf907,
++ 0xf908, 0xf909, 0xf30b, 0xf904, 0xf905, 0xf906, 0xf30a, 0xf901,
++ 0xf902, 0xf903, 0xf900, 0xf310, 0xf206, 0xf200, 0xf83c, 0xf50a,
++ 0xf50b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf30e, 0xf707, 0xf30d, 0xf01c, 0xf701, 0xf205, 0xf114, 0xf603,
++ 0xf118, 0xf210, 0xf211, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116,
++ 0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++};
++
++static u_short ctrl_alt_map[NR_KEYS] = {
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf811, 0xf817, 0xf805, 0xf812, 0xf814, 0xf819, 0xf815, 0xf809,
++ 0xf80f, 0xf810, 0xf200, 0xf200, 0xf201, 0xf702, 0xf801, 0xf813,
++ 0xf804, 0xf806, 0xf807, 0xf808, 0xf80a, 0xf80b, 0xf80c, 0xf200,
++ 0xf200, 0xf200, 0xf700, 0xf200, 0xf81a, 0xf818, 0xf803, 0xf816,
++ 0xf802, 0xf80e, 0xf80d, 0xf200, 0xf200, 0xf200, 0xf701, 0xf30c,
++ 0xf703, 0xf200, 0xf207, 0xf500, 0xf501, 0xf502, 0xf503, 0xf504,
++ 0xf505, 0xf506, 0xf507, 0xf508, 0xf509, 0xf208, 0xf200, 0xf307,
++ 0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301,
++ 0xf302, 0xf303, 0xf300, 0xf20c, 0xf206, 0xf200, 0xf200, 0xf50a,
++ 0xf50b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf30e, 0xf707, 0xf30d, 0xf01c, 0xf701, 0xf205, 0xf114, 0xf603,
++ 0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf20c,
++ 0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++};
++
++static u_short ctr_map[NR_KEYS] = {
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf033, 0xf200, 0xf200,
++ 0xfb71, 0xfb77, 0xfb65, 0xfb72, 0xfb74, 0xfb79, 0xf037, 0xf038,
++ 0xf039, 0xfb70, 0xf200, 0xf200, 0xf201, 0xf702, 0xfb61, 0xfb73,
++ 0xfb64, 0xfb66, 0xfb67, 0xfb68, 0xf034, 0xf035, 0xf036, 0xf200,
++ 0xf200, 0xf200, 0xf700, 0xf200, 0xfb7a, 0xfb78, 0xfb63, 0xfb76,
++ 0xfb62, 0xf031, 0xf032, 0xf200, 0xf200, 0xf030, 0xf701, 0xf30c,
++ 0xf703, 0xf200, 0xf207, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf208, 0xf200, 0xf307,
++ 0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301,
++ 0xf302, 0xf303, 0xf300, 0xf310, 0xf206, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf30e, 0xf707, 0xf30d, 0xf01c, 0xf701, 0xf205, 0xf114, 0xf603,
++ 0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116,
++ 0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++ 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
++};
++
++ushort *key_maps[MAX_NR_KEYMAPS] = {
++ plain_map, shift_map, altgr_map, 0,
++ ctrl_map, shift_ctrl_map, 0, 0,
++ alt_map, 0, 0, 0,
++ ctrl_alt_map, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ ctr_map, 0
++};
++
++unsigned int keymap_count = 8;
++
++/*
++ * Philosophy: most people do not define more strings, but they who do
++ * often want quite a lot of string space. So, we statically allocate
++ * the default and allocate dynamically in chunks of 512 bytes.
++ */
++
++char func_buf[] = {
++ '\033', '[', '[', 'A', 0,
++ '\033', '[', '[', 'B', 0,
++ '\033', '[', '[', 'C', 0,
++ '\033', '[', '[', 'D', 0,
++ '\033', '[', '[', 'E', 0,
++ '\033', '[', '1', '7', '~', 0,
++ '\033', '[', '1', '8', '~', 0,
++ '\033', '[', '1', '9', '~', 0,
++ '\033', '[', '2', '0', '~', 0,
++ '\033', '[', '2', '1', '~', 0,
++ '\033', '[', '2', '3', '~', 0,
++ '\033', '[', '2', '4', '~', 0,
++ '\033', '[', '2', '5', '~', 0,
++ '\033', '[', '2', '6', '~', 0,
++ '\033', '[', '2', '8', '~', 0,
++ '\033', '[', '2', '9', '~', 0,
++ '\033', '[', '3', '1', '~', 0,
++ '\033', '[', '3', '2', '~', 0,
++ '\033', '[', '3', '3', '~', 0,
++ '\033', '[', '3', '4', '~', 0,
++ '\033', '[', '1', '~', 0,
++ '\033', '[', '2', '~', 0,
++ '\033', '[', '3', '~', 0,
++ '\033', '[', '4', '~', 0,
++ '\033', '[', '5', '~', 0,
++ '\033', '[', '6', '~', 0,
++ '\033', '[', 'M', 0,
++ '\033', '[', 'P', 0,
++};
++
++char *funcbufptr = func_buf;
++int funcbufsize = sizeof(func_buf);
++int funcbufleft = 0; /* space left */
++
++char *func_table[MAX_NR_FUNC] = {
++ func_buf + 0,
++ func_buf + 5,
++ func_buf + 10,
++ func_buf + 15,
++ func_buf + 20,
++ func_buf + 25,
++ func_buf + 31,
++ func_buf + 37,
++ func_buf + 43,
++ func_buf + 49,
++ func_buf + 55,
++ func_buf + 61,
++ func_buf + 67,
++ func_buf + 73,
++ func_buf + 79,
++ func_buf + 85,
++ func_buf + 91,
++ func_buf + 97,
++ func_buf + 103,
++ func_buf + 109,
++ func_buf + 115,
++ func_buf + 120,
++ func_buf + 125,
++ func_buf + 130,
++ func_buf + 135,
++ func_buf + 140,
++ func_buf + 145,
++ 0,
++ 0,
++ func_buf + 149,
++ 0,
++};
++
++struct kbdiacr accent_table[MAX_DIACR] = {
++ {'`', 'A', '\300'}, {'`', 'a', '\340'},
++ {'\'', 'A', '\301'}, {'\'', 'a', '\341'},
++ {'^', 'A', '\302'}, {'^', 'a', '\342'},
++ {'~', 'A', '\303'}, {'~', 'a', '\343'},
++ {'"', 'A', '\304'}, {'"', 'a', '\344'},
++ {'O', 'A', '\305'}, {'o', 'a', '\345'},
++ {'0', 'A', '\305'}, {'0', 'a', '\345'},
++ {'A', 'A', '\305'}, {'a', 'a', '\345'},
++ {'A', 'E', '\306'}, {'a', 'e', '\346'},
++ {',', 'C', '\307'}, {',', 'c', '\347'},
++ {'`', 'E', '\310'}, {'`', 'e', '\350'},
++ {'\'', 'E', '\311'}, {'\'', 'e', '\351'},
++ {'^', 'E', '\312'}, {'^', 'e', '\352'},
++ {'"', 'E', '\313'}, {'"', 'e', '\353'},
++ {'`', 'I', '\314'}, {'`', 'i', '\354'},
++ {'\'', 'I', '\315'}, {'\'', 'i', '\355'},
++ {'^', 'I', '\316'}, {'^', 'i', '\356'},
++ {'"', 'I', '\317'}, {'"', 'i', '\357'},
++ {'-', 'D', '\320'}, {'-', 'd', '\360'},
++ {'~', 'N', '\321'}, {'~', 'n', '\361'},
++ {'`', 'O', '\322'}, {'`', 'o', '\362'},
++ {'\'', 'O', '\323'}, {'\'', 'o', '\363'},
++ {'^', 'O', '\324'}, {'^', 'o', '\364'},
++ {'~', 'O', '\325'}, {'~', 'o', '\365'},
++ {'"', 'O', '\326'}, {'"', 'o', '\366'},
++ {'/', 'O', '\330'}, {'/', 'o', '\370'},
++ {'`', 'U', '\331'}, {'`', 'u', '\371'},
++ {'\'', 'U', '\332'}, {'\'', 'u', '\372'},
++ {'^', 'U', '\333'}, {'^', 'u', '\373'},
++ {'"', 'U', '\334'}, {'"', 'u', '\374'},
++ {'\'', 'Y', '\335'}, {'\'', 'y', '\375'},
++ {'T', 'H', '\336'}, {'t', 'h', '\376'},
++ {'s', 's', '\337'}, {'"', 'y', '\377'},
++ {'s', 'z', '\337'}, {'i', 'j', '\377'},
++};
++
++unsigned int accent_table_size = 68;
+diff -ruN linux-2.6.31-vanilla/drivers/misc/jz4740-adc.c linux-2.6.31/drivers/misc/jz4740-adc.c
+--- linux-2.6.31-vanilla/drivers/misc/jz4740-adc.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/drivers/misc/jz4740-adc.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,362 @@
++/*
++ * Copyright (C) 2009, Lars-Peter Clausen <lars@metafoo.de>
++ * JZ4720/JZ4740 SoC ADC driver
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ * This driver is meant to synchronize access to the adc core for the battery
++ * and touchscreen driver. Thus these drivers should use the adc driver as a
++ * parent.
++ */
++
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/platform_device.h>
++#include <linux/spinlock.h>
++#include <linux/interrupt.h>
++#include <linux/jz4740-adc.h>
++
++#define JZ_REG_ADC_ENABLE 0x00
++#define JZ_REG_ADC_CFG 0x04
++#define JZ_REG_ADC_CTRL 0x08
++#define JZ_REG_ADC_STATUS 0x0C
++#define JZ_REG_ADC_SAME 0x10
++#define JZ_REG_ADC_WAIT 0x14
++#define JZ_REG_ADC_TOUCH 0x18
++#define JZ_REG_ADC_BATTERY 0x1C
++#define JZ_REG_ADC_ADCIN 0x20
++
++#define JZ_ADC_ENABLE_TOUCH BIT(2)
++#define JZ_ADC_ENABLE_BATTERY BIT(1)
++#define JZ_ADC_ENABLE_ADCIN BIT(0)
++
++#define JZ_ADC_CFG_SPZZ BIT(31)
++#define JZ_ADC_CFG_EX_IN BIT(30)
++#define JZ_ADC_CFG_DNUM_MASK (0x7 << 16)
++#define JZ_ADC_CFG_DMA_ENABLE BIT(15)
++#define JZ_ADC_CFG_XYZ_MASK (0x2 << 13)
++#define JZ_ADC_CFG_SAMPLE_NUM_MASK (0x7 << 10)
++#define JZ_ADC_CFG_CLKDIV (0xf << 5)
++#define JZ_ADC_CFG_BAT_MB BIT(4)
++
++#define JZ_ADC_CFG_DNUM_OFFSET 16
++#define JZ_ADC_CFG_XYZ_OFFSET 13
++#define JZ_ADC_CFG_SAMPLE_NUM_OFFSET 10
++#define JZ_ADC_CFG_CLKDIV_OFFSET 5
++
++#define JZ_ADC_IRQ_PENDOWN BIT(4)
++#define JZ_ADC_IRQ_PENUP BIT(3)
++#define JZ_ADC_IRQ_TOUCH BIT(2)
++#define JZ_ADC_IRQ_BATTERY BIT(1)
++#define JZ_ADC_IRQ_ADCIN BIT(0)
++
++#define JZ_ADC_TOUCH_TYPE1 BIT(31)
++#define JZ_ADC_TOUCH_DATA1_MASK 0xfff
++#define JZ_ADC_TOUCH_TYPE0 BIT(15)
++#define JZ_ADC_TOUCH_DATA0_MASK 0xfff
++
++#define JZ_ADC_BATTERY_MASK 0xfff
++
++#define JZ_ADC_ADCIN_MASK 0xfff
++
++struct jz4740_adc {
++ struct resource *mem;
++ void __iomem *base;
++
++ int irq;
++
++ struct completion bat_completion;
++ struct completion adc_completion;
++
++ spinlock_t lock;
++};
++
++static irqreturn_t jz4740_adc_irq(int irq, void *data)
++{
++ struct jz4740_adc *adc = data;
++ uint8_t status;
++
++ status = readb(adc->base + JZ_REG_ADC_STATUS);
++
++ if (status & JZ_ADC_IRQ_BATTERY)
++ complete(&adc->bat_completion);
++ if (status & JZ_ADC_IRQ_ADCIN)
++ complete(&adc->adc_completion);
++
++ writeb(0xff, adc->base + JZ_REG_ADC_STATUS);
++
++ return IRQ_HANDLED;
++}
++
++static void jz4740_adc_enable_irq(struct jz4740_adc *adc, int irq)
++{
++ unsigned long flags;
++ uint8_t val;
++
++ spin_lock_irqsave(&adc->lock, flags);
++
++ val = readb(adc->base + JZ_REG_ADC_CTRL);
++ val &= ~irq;
++ writeb(val, adc->base + JZ_REG_ADC_CTRL);
++
++ spin_unlock_irqrestore(&adc->lock, flags);
++}
++
++static void jz4740_adc_disable_irq(struct jz4740_adc *adc, int irq)
++{
++ unsigned long flags;
++ uint8_t val;
++
++ spin_lock_irqsave(&adc->lock, flags);
++
++ val = readb(adc->base + JZ_REG_ADC_CTRL);
++ val |= irq;
++ writeb(val, adc->base + JZ_REG_ADC_CTRL);
++
++ spin_unlock_irqrestore(&adc->lock, flags);
++}
++
++static void jz4740_adc_enable_adc(struct jz4740_adc *adc, int engine)
++{
++ unsigned long flags;
++ uint8_t val;
++
++ spin_lock_irqsave(&adc->lock, flags);
++
++ val = readb(adc->base + JZ_REG_ADC_ENABLE);
++ val |= engine;
++ writeb(val, adc->base + JZ_REG_ADC_ENABLE);
++
++ spin_unlock_irqrestore(&adc->lock, flags);
++}
++
++static void jz4740_adc_disable_adc(struct jz4740_adc *adc, int engine)
++{
++ unsigned long flags;
++ uint8_t val;
++
++ spin_lock_irqsave(&adc->lock, flags);
++
++ val = readb(adc->base + JZ_REG_ADC_ENABLE);
++ val &= ~engine;
++ writeb(val, adc->base + JZ_REG_ADC_ENABLE);
++
++ spin_unlock_irqrestore(&adc->lock, flags);
++}
++
++static inline void jz4740_adc_set_cfg(struct jz4740_adc *adc, uint32_t mask,
++uint32_t val)
++{
++ unsigned long flags;
++ uint32_t cfg;
++
++ spin_lock_irqsave(&adc->lock, flags);
++
++ cfg = readl(adc->base + JZ_REG_ADC_CFG);
++
++ cfg &= ~mask;
++ cfg |= val;
++
++ writel(cfg, adc->base + JZ_REG_ADC_CFG);
++
++ spin_unlock_irqrestore(&adc->lock, flags);
++}
++
++long jz4740_adc_read_battery_voltage(struct device *dev,
++ enum jz_adc_battery_scale scale)
++{
++ struct jz4740_adc *adc = dev_get_drvdata(dev);
++ unsigned long t;
++ long long voltage;
++ uint16_t val;
++
++ if (!adc)
++ return -ENODEV;
++
++ if (scale == JZ_ADC_BATTERY_SCALE_2V5)
++ jz4740_adc_set_cfg(adc, JZ_ADC_CFG_BAT_MB, JZ_ADC_CFG_BAT_MB);
++ else
++ jz4740_adc_set_cfg(adc, JZ_ADC_CFG_BAT_MB, 0);
++
++ jz4740_adc_enable_irq(adc, JZ_ADC_IRQ_BATTERY);
++ jz4740_adc_enable_adc(adc, JZ_ADC_ENABLE_BATTERY);
++
++ t = wait_for_completion_interruptible_timeout(&adc->bat_completion,
++ HZ);
++
++ jz4740_adc_disable_irq(adc, JZ_ADC_IRQ_BATTERY);
++
++ if (t <= 0) {
++ jz4740_adc_disable_adc(adc, JZ_ADC_ENABLE_BATTERY);
++ return t ? t : -ETIMEDOUT;
++ }
++
++ val = readw(adc->base + JZ_REG_ADC_BATTERY);
++
++ if (scale == JZ_ADC_BATTERY_SCALE_2V5)
++ voltage = (((long long)val) * 2500000LL) >> 12LL;
++ else
++ voltage = ((((long long)val) * 7395000LL) >> 12LL) + 33000LL;
++
++ return voltage;
++}
++EXPORT_SYMBOL_GPL(jz4740_adc_read_battery_voltage);
++
++static ssize_t jz4740_adc_read_adcin(struct device *dev,
++ struct device_attribute *dev_attr,
++ char *buf)
++{
++ struct jz4740_adc *adc = dev_get_drvdata(dev);
++ unsigned long t;
++ uint16_t val;
++
++ jz4740_adc_enable_irq(adc, JZ_ADC_IRQ_ADCIN);
++ jz4740_adc_enable_adc(adc, JZ_ADC_ENABLE_ADCIN);
++
++ t = wait_for_completion_interruptible_timeout(&adc->adc_completion,
++ HZ);
++
++ jz4740_adc_disable_irq(adc, JZ_ADC_IRQ_ADCIN);
++
++ if (t <= 0) {
++ jz4740_adc_disable_adc(adc, JZ_ADC_ENABLE_ADCIN);
++ return t ? t : -ETIMEDOUT;
++ }
++
++ val = readw(adc->base + JZ_REG_ADC_ADCIN);
++
++ return sprintf(buf, "%d\n", val);
++}
++
++static DEVICE_ATTR(adcin, S_IRUGO, jz4740_adc_read_adcin, NULL);
++
++static int __devinit jz4740_adc_probe(struct platform_device *pdev)
++{
++ int ret;
++ struct jz4740_adc *adc;
++
++ adc = kmalloc(sizeof(*adc), GFP_KERNEL);
++
++ adc->irq = platform_get_irq(pdev, 0);
++
++ if (adc->irq < 0) {
++ ret = adc->irq;
++ dev_err(&pdev->dev, "Failed to get platform irq: %d\n", ret);
++ goto err_free;
++ }
++
++ adc->mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++
++ if (!adc->mem) {
++ ret = -ENOENT;
++ dev_err(&pdev->dev, "Failed to get platform mmio resource\n");
++ goto err_free;
++ }
++
++ adc->mem = request_mem_region(adc->mem->start, resource_size(adc->mem),
++ pdev->name);
++
++ if (!adc->mem) {
++ ret = -EBUSY;
++ dev_err(&pdev->dev, "Failed to request mmio memory region\n");
++ goto err_free;
++ }
++
++ adc->base = ioremap_nocache(adc->mem->start, resource_size(adc->mem));
++
++ if (!adc->base) {
++ ret = -EBUSY;
++ dev_err(&pdev->dev, "Failed to ioremap mmio memory\n");
++ goto err_release_mem_region;
++ }
++
++
++ init_completion(&adc->bat_completion);
++ init_completion(&adc->adc_completion);
++
++ spin_lock_init(&adc->lock);
++
++ platform_set_drvdata(pdev, adc);
++
++ ret = request_irq(adc->irq, jz4740_adc_irq, 0, pdev->name, adc);
++
++ if (ret) {
++ dev_err(&pdev->dev, "Failed to request irq: %d\n", ret);
++ goto err_iounmap;
++ }
++
++ ret = device_create_file(&pdev->dev, &dev_attr_adcin);
++ if (ret) {
++ dev_err(&pdev->dev, "Failed to create sysfs file: %d\n", ret);
++ goto err_free_irq;
++ }
++
++ writeb(0x00, adc->base + JZ_REG_ADC_ENABLE);
++ writeb(0xff, adc->base + JZ_REG_ADC_CTRL);
++
++ return 0;
++
++err_free_irq:
++ free_irq(adc->irq, adc);
++err_iounmap:
++ platform_set_drvdata(pdev, NULL);
++ iounmap(adc->base);
++err_release_mem_region:
++ release_mem_region(adc->mem->start, resource_size(adc->mem));
++err_free:
++ kfree(adc);
++
++ return ret;
++}
++
++static int __devexit jz4740_adc_remove(struct platform_device *pdev)
++{
++ struct jz4740_adc *adc = platform_get_drvdata(pdev);
++
++ device_remove_file(&pdev->dev, &dev_attr_adcin);
++
++ free_irq(adc->irq, adc);
++
++ iounmap(adc->base);
++ release_mem_region(adc->mem->start, resource_size(adc->mem));
++
++ platform_set_drvdata(pdev, NULL);
++
++ kfree(adc);
++
++ return 0;
++}
++
++struct platform_driver jz4740_adc_driver = {
++ .probe = jz4740_adc_probe,
++ .remove = jz4740_adc_remove,
++ .driver = {
++ .name = "jz4740-adc",
++ .owner = THIS_MODULE,
++ },
++};
++
++static int __init jz4740_adc_init(void)
++{
++ return platform_driver_register(&jz4740_adc_driver);
++}
++module_init(jz4740_adc_init);
++
++static void __exit jz4740_adc_exit(void)
++{
++ platform_driver_unregister(&jz4740_adc_driver);
++}
++module_exit(jz4740_adc_exit);
++
++MODULE_DESCRIPTION("JZ4720/JZ4740 SoC ADC driver");
++MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>");
++MODULE_LICENSE("GPL");
++MODULE_ALIAS("platform:jz4740-adc");
++MODULE_ALIAS("platform:jz4720-adc");
+diff -ruN linux-2.6.31-vanilla/drivers/mmc/host/jz_mmc.c linux-2.6.31/drivers/mmc/host/jz_mmc.c
+--- linux-2.6.31-vanilla/drivers/mmc/host/jz_mmc.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/drivers/mmc/host/jz_mmc.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,994 @@
++/*
++ * linux/drivers/mmc/jz_mmc.c - JZ SD/MMC driver
++ *
++ * Copyright (C) 2005 - 2008 Ingenic Semiconductor Inc.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++#include <linux/dma-mapping.h>
++#include <linux/mmc/host.h>
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/ioport.h>
++#include <linux/platform_device.h>
++#include <linux/delay.h>
++#include <linux/interrupt.h>
++#include <linux/dma-mapping.h>
++#include <linux/mmc/host.h>
++#include <linux/mmc/mmc.h>
++#include <linux/mmc/sd.h>
++#include <linux/mmc/sdio.h>
++#include <linux/mm.h>
++#include <linux/signal.h>
++#include <linux/pm.h>
++#include <linux/scatterlist.h>
++
++#include <asm/io.h>
++#include <asm/scatterlist.h>
++#include <asm/jzsoc.h>
++
++#include "jz_mmc.h"
++
++#define DRIVER_NAME "jz-mmc"
++
++#define NR_SG 1
++
++#if defined(CONFIG_SOC_JZ4725) || defined(CONFIG_SOC_JZ4720)
++#undef USE_DMA
++#else
++#define USE_DMA
++#endif
++
++struct jz_mmc_host {
++ struct mmc_host *mmc;
++ spinlock_t lock;
++ struct {
++ int len;
++ int dir;
++ } dma;
++ struct {
++ int index;
++ int offset;
++ int len;
++ } pio;
++ int irq;
++ unsigned int clkrt;
++ unsigned int cmdat;
++ unsigned int imask;
++ unsigned int power_mode;
++ struct jz_mmc_platform_data *pdata;
++ struct mmc_request *mrq;
++ struct mmc_command *cmd;
++ struct mmc_data *data;
++ dma_addr_t sg_dma;
++ struct jzsoc_dma_desc *sg_cpu;
++ unsigned int dma_len;
++ unsigned int dma_dir;
++ struct pm_dev *pmdev;
++};
++
++static int r_type = 0;
++
++#define MMC_IRQ_MASK() \
++do { \
++ REG_MSC_IMASK = 0xff; \
++ REG_MSC_IREG = 0xff; \
++} while (0)
++
++static int rxdmachan = 0;
++static int txdmachan = 0;
++static int mmc_slot_enable = 0;
++
++/* Stop the MMC clock and wait while it happens */
++static inline int jz_mmc_stop_clock(void)
++{
++ int timeout = 1000;
++
++ REG_MSC_STRPCL = MSC_STRPCL_CLOCK_CONTROL_STOP;
++ while (timeout && (REG_MSC_STAT & MSC_STAT_CLK_EN)) {
++ timeout--;
++ if (timeout == 0)
++ return 0;
++ udelay(1);
++ }
++ return MMC_NO_ERROR;
++}
++
++/* Start the MMC clock and operation */
++static inline int jz_mmc_start_clock(void)
++{
++ REG_MSC_STRPCL =
++ MSC_STRPCL_CLOCK_CONTROL_START | MSC_STRPCL_START_OP;
++ return MMC_NO_ERROR;
++}
++
++static inline u32 jz_mmc_calc_clkrt(int is_sd, u32 rate)
++{
++ u32 clkrt;
++ u32 clk_src = is_sd ? 24000000 : 20000000;
++
++ clkrt = 0;
++ while (rate < clk_src) {
++ clkrt++;
++ clk_src >>= 1;
++ }
++ return clkrt;
++}
++
++/* Select the MMC clock frequency */
++static int jz_mmc_set_clock(u32 rate)
++{
++ int clkrt;
++
++ jz_mmc_stop_clock();
++ __cpm_select_msc_clk(1); /* select clock source from CPM */
++ clkrt = jz_mmc_calc_clkrt(1, rate);
++ REG_MSC_CLKRT = clkrt;
++ return MMC_NO_ERROR;
++}
++
++static void jz_mmc_enable_irq(struct jz_mmc_host *host, unsigned int mask)
++{
++ unsigned long flags;
++ spin_lock_irqsave(&host->lock, flags);
++ host->imask &= ~mask;
++ REG_MSC_IMASK = host->imask;
++ spin_unlock_irqrestore(&host->lock, flags);
++}
++
++static void jz_mmc_disable_irq(struct jz_mmc_host *host, unsigned int mask)
++{
++ unsigned long flags;
++
++ spin_lock_irqsave(&host->lock, flags);
++ host->imask |= mask;
++ REG_MSC_IMASK = host->imask;
++ spin_unlock_irqrestore(&host->lock, flags);
++}
++
++void jz_set_dma_block_size(int dmanr, int nbyte);
++
++#ifdef USE_DMA
++static inline void
++jz_mmc_start_dma(int chan, unsigned long phyaddr, int count, int mode)
++{
++ unsigned long flags;
++
++ flags = claim_dma_lock();
++ disable_dma(chan);
++ clear_dma_ff(chan);
++ jz_set_dma_block_size(chan, 32);
++ set_dma_mode(chan, mode);
++ set_dma_addr(chan, phyaddr);
++ set_dma_count(chan, count + 31);
++ enable_dma(chan);
++ release_dma_lock(flags);
++}
++
++static irqreturn_t jz_mmc_dma_rx_callback(int irq, void *devid)
++{
++ int chan = rxdmachan;
++
++ disable_dma(chan);
++ if (__dmac_channel_address_error_detected(chan)) {
++ printk(KERN_DEBUG "%s: DMAC address error.\n",
++ __FUNCTION__);
++ __dmac_channel_clear_address_error(chan);
++ }
++ if (__dmac_channel_transmit_end_detected(chan)) {
++ __dmac_channel_clear_transmit_end(chan);
++ }
++ return IRQ_HANDLED;
++}
++static irqreturn_t jz_mmc_dma_tx_callback(int irq, void *devid)
++{
++ int chan = txdmachan;
++
++ disable_dma(chan);
++ if (__dmac_channel_address_error_detected(chan)) {
++ printk(KERN_DEBUG "%s: DMAC address error.\n",
++ __FUNCTION__);
++ __dmac_channel_clear_address_error(chan);
++ }
++ if (__dmac_channel_transmit_end_detected(chan)) {
++ __dmac_channel_clear_transmit_end(chan);
++ }
++ return IRQ_HANDLED;
++}
++
++/* Prepare DMA to start data transfer from the MMC card */
++static void jz_mmc_rx_setup_data(struct jz_mmc_host *host,
++ struct mmc_data *data)
++{
++ unsigned int nob = data->blocks;
++ int channelrx = rxdmachan;
++ int i;
++ u32 size;
++
++ if (data->flags & MMC_DATA_STREAM)
++ nob = 0xffff;
++
++ REG_MSC_NOB = nob;
++ REG_MSC_BLKLEN = data->blksz;
++ size = nob * data->blksz;
++
++ if (data->flags & MMC_DATA_READ) {
++ host->dma.dir = DMA_FROM_DEVICE;
++ } else {
++ host->dma.dir = DMA_TO_DEVICE;
++ }
++
++ host->dma.len =
++ dma_map_sg(mmc_dev(host->mmc), data->sg, data->sg_len,
++ host->dma.dir);
++
++ for (i = 0; i < host->dma.len; i++) {
++ host->sg_cpu[i].dtadr = sg_dma_address(&data->sg[i]);
++ host->sg_cpu[i].dcmd = sg_dma_len(&data->sg[i]);
++ dma_cache_wback_inv((unsigned long)
++ CKSEG0ADDR(sg_dma_address(data->sg)) +
++ data->sg->offset,
++ host->sg_cpu[i].dcmd);
++ jz_mmc_start_dma(channelrx, host->sg_cpu[i].dtadr,
++ host->sg_cpu[i].dcmd, DMA_MODE_READ);
++ }
++}
++
++/* Prepare DMA to start data transfer from the MMC card */
++static void jz_mmc_tx_setup_data(struct jz_mmc_host *host,
++ struct mmc_data *data)
++{
++ unsigned int nob = data->blocks;
++ int channeltx = txdmachan;
++ int i;
++ u32 size;
++
++ if (data->flags & MMC_DATA_STREAM)
++ nob = 0xffff;
++
++ REG_MSC_NOB = nob;
++ REG_MSC_BLKLEN = data->blksz;
++ size = nob * data->blksz;
++
++ if (data->flags & MMC_DATA_READ) {
++ host->dma.dir = DMA_FROM_DEVICE;
++ } else {
++ host->dma.dir = DMA_TO_DEVICE;
++ }
++
++ host->dma.len =
++ dma_map_sg(mmc_dev(host->mmc), data->sg, data->sg_len,
++ host->dma.dir);
++
++ for (i = 0; i < host->dma.len; i++) {
++ host->sg_cpu[i].dtadr = sg_dma_address(&data->sg[i]);
++ host->sg_cpu[i].dcmd = sg_dma_len(&data->sg[i]);
++ dma_cache_wback_inv((unsigned long)
++ CKSEG0ADDR(sg_dma_address(data->sg)) +
++ data->sg->offset,
++ host->sg_cpu[i].dcmd);
++ jz_mmc_start_dma(channeltx, host->sg_cpu[i].dtadr,
++ host->sg_cpu[i].dcmd, DMA_MODE_WRITE);
++ }
++}
++#else
++static void jz_mmc_receive_pio(struct jz_mmc_host *host)
++{
++
++ struct mmc_data *data = 0;
++ int sg_len = 0, max = 0, count = 0;
++ u32 *buf = 0;
++ struct scatterlist *sg;
++ unsigned int nob;
++
++ data = host->mrq->data;
++ nob = data->blocks;
++ REG_MSC_NOB = nob;
++ REG_MSC_BLKLEN = data->blksz;
++
++ max = host->pio.len;
++ if (host->pio.index < host->dma.len) {
++ sg = &data->sg[host->pio.index];
++ buf = sg_virt(sg) + host->pio.offset;
++
++ /* This is the space left inside the buffer */
++ sg_len = sg_dma_len(&data->sg[host->pio.index]) - host->pio.offset;
++ /* Check to if we need less then the size of the sg_buffer */
++ if (sg_len < max) max = sg_len;
++ }
++ max = max / 4;
++ for(count = 0; count < max; count++) {
++ while (REG_MSC_STAT & MSC_STAT_DATA_FIFO_EMPTY)
++ ;
++ *buf++ = REG_MSC_RXFIFO;
++ }
++ host->pio.len -= count;
++ host->pio.offset += count;
++
++ if (sg_len && count == sg_len) {
++ host->pio.index++;
++ host->pio.offset = 0;
++ }
++}
++
++static void jz_mmc_send_pio(struct jz_mmc_host *host)
++{
++
++ struct mmc_data *data = 0;
++ int sg_len, max, count = 0;
++ u32 *wbuf = 0;
++ struct scatterlist *sg;
++ unsigned int nob;
++
++ data = host->mrq->data;
++ nob = data->blocks;
++
++ REG_MSC_NOB = nob;
++ REG_MSC_BLKLEN = data->blksz;
++
++ /* This is the pointer to the data buffer */
++ sg = &data->sg[host->pio.index];
++ wbuf = sg_virt(sg) + host->pio.offset;
++
++ /* This is the space left inside the buffer */
++ sg_len = data->sg[host->pio.index].length - host->pio.offset;
++
++ /* Check to if we need less then the size of the sg_buffer */
++ max = (sg_len > host->pio.len) ? host->pio.len : sg_len;
++ max = max / 4;
++ for(count = 0; count < max; count++ ) {
++ while (REG_MSC_STAT & MSC_STAT_DATA_FIFO_FULL)
++ ;
++ REG_MSC_TXFIFO = *wbuf++;
++ }
++
++ host->pio.len -= count;
++ host->pio.offset += count;
++
++ if (count == sg_len) {
++ host->pio.index++;
++ host->pio.offset = 0;
++ }
++}
++
++static int
++jz_mmc_prepare_data(struct jz_mmc_host *host, struct mmc_data *data)
++{
++ int datalen = data->blocks * data->blksz;
++
++ host->dma.dir = DMA_BIDIRECTIONAL;
++ host->dma.len = dma_map_sg(mmc_dev(host->mmc), data->sg,
++ data->sg_len, host->dma.dir);
++ if (host->dma.len == 0)
++ return -ETIMEDOUT;
++
++ host->pio.index = 0;
++ host->pio.offset = 0;
++ host->pio.len = datalen;
++ return 0;
++}
++#endif
++
++static int jz_mmc_cmd_done(struct jz_mmc_host *host, unsigned int stat);
++
++static void jz_mmc_finish_request(struct jz_mmc_host *host, struct mmc_request *mrq)
++{
++ jz_mmc_stop_clock();
++ host->mrq = NULL;
++ host->cmd = NULL;
++ host->data = NULL;
++ mmc_request_done(host->mmc, mrq);
++}
++
++static void jz_mmc_start_cmd(struct jz_mmc_host *host,
++ struct mmc_command *cmd, unsigned int cmdat)
++{
++ u32 timeout = 0x3fffff;
++ unsigned int stat;
++ struct jz_mmc_host *hst = host;
++ WARN_ON(host->cmd != NULL);
++ host->cmd = cmd;
++
++ /* stop MMC clock */
++ jz_mmc_stop_clock();
++
++ /* mask interrupts */
++ REG_MSC_IMASK = 0xff;
++
++ /* clear status */
++ REG_MSC_IREG = 0xff;
++
++ if (cmd->flags & MMC_RSP_BUSY)
++ cmdat |= MSC_CMDAT_BUSY;
++
++#define RSP_TYPE(x) ((x) & ~(MMC_RSP_BUSY|MMC_RSP_OPCODE))
++ switch (RSP_TYPE(mmc_resp_type(cmd))) {
++ case RSP_TYPE(MMC_RSP_R1): /* r1,r1b, r6, r7 */
++ cmdat |= MSC_CMDAT_RESPONSE_R1;
++ r_type = 1;
++ break;
++ case RSP_TYPE(MMC_RSP_R3):
++ cmdat |= MSC_CMDAT_RESPONSE_R3;
++ r_type = 1;
++ break;
++ case RSP_TYPE(MMC_RSP_R2):
++ cmdat |= MSC_CMDAT_RESPONSE_R2;
++ r_type = 2;
++ break;
++ default:
++ break;
++ }
++ REG_MSC_CMD = cmd->opcode;
++
++ /* Set argument */
++#ifdef CONFIG_JZ_MMC_BUS_1
++ if (cmd->opcode == 6) {
++ /* set 1 bit sd card bus*/
++ if (cmd->arg ==2)
++ REG_MSC_ARG = 0;
++
++ /* set 1 bit mmc card bus*/
++ if (cmd->arg == 0x3b70101)
++ REG_MSC_ARG = 0x3b70001;
++ } else
++ REG_MSC_ARG = cmd->arg;
++#else
++ REG_MSC_ARG = cmd->arg;
++#endif
++
++ /* Set command */
++ REG_MSC_CMDAT = cmdat;
++
++ /* Send command */
++ jz_mmc_start_clock();
++
++ while (timeout-- && !(REG_MSC_STAT & MSC_STAT_END_CMD_RES))
++ ;
++
++ REG_MSC_IREG = MSC_IREG_END_CMD_RES; /* clear irq flag */
++ if (cmd->opcode == 12) {
++ while (timeout-- && !(REG_MSC_IREG & MSC_IREG_PRG_DONE))
++ ;
++ REG_MSC_IREG = MSC_IREG_PRG_DONE; /* clear status */
++ }
++ if (!mmc_slot_enable) {
++ /* It seems that MSC can't report the MSC_STAT_TIME_OUT_RES when
++ * card was removed. We force to return here.
++ */
++ cmd->error = -ETIMEDOUT;
++ jz_mmc_finish_request(hst, hst->mrq);
++ return;
++ }
++
++ if (SD_IO_SEND_OP_COND == cmd->opcode) {
++ /*
++ * Don't support SDIO card currently.
++ */
++ cmd->error = -ETIMEDOUT;
++ jz_mmc_finish_request(hst, hst->mrq);
++ return;
++ }
++
++ /* Check for status */
++ stat = REG_MSC_STAT;
++ jz_mmc_cmd_done(hst, stat);
++ if (host->data) {
++ if (cmd->opcode == MMC_WRITE_BLOCK || cmd->opcode == MMC_WRITE_MULTIPLE_BLOCK)
++#ifdef USE_DMA
++ jz_mmc_tx_setup_data(host, host->data);
++#else
++ jz_mmc_send_pio(host);
++ else
++ jz_mmc_receive_pio(host);
++#endif
++ }
++}
++
++static int jz_mmc_cmd_done(struct jz_mmc_host *host, unsigned int stat)
++{
++ struct mmc_command *cmd = host->cmd;
++ int i, temp[16];
++ u8 *buf;
++ u32 data, v, w1, w2;
++
++ if (!cmd)
++ return 0;
++
++ host->cmd = NULL;
++ buf = (u8 *) temp;
++ switch (r_type) {
++ case 1:
++ {
++ data = REG_MSC_RES;
++ buf[0] = (data >> 8) & 0xff;
++ buf[1] = data & 0xff;
++ data = REG_MSC_RES;
++ buf[2] = (data >> 8) & 0xff;
++ buf[3] = data & 0xff;
++ data = REG_MSC_RES;
++ buf[4] = data & 0xff;
++ cmd->resp[0] =
++ buf[1] << 24 | buf[2] << 16 | buf[3] << 8 |
++ buf[4];
++ break;
++ }
++ case 2:
++ {
++ data = REG_MSC_RES;
++ v = data & 0xffff;
++ for (i = 0; i < 4; i++) {
++ data = REG_MSC_RES;
++ w1 = data & 0xffff;
++ data = REG_MSC_RES;
++ w2 = data & 0xffff;
++ cmd->resp[i] = v << 24 | w1 << 8 | w2 >> 8;
++ v = w2;
++ }
++ break;
++ }
++ case 0:
++ break;
++ }
++ if (stat & MSC_STAT_TIME_OUT_RES) {
++ printk("MSC_STAT_TIME_OUT_RES\n");
++ cmd->error = -ETIMEDOUT;
++ } else if (stat & MSC_STAT_CRC_RES_ERR && cmd->flags & MMC_RSP_CRC) {
++ printk("MSC_STAT_CRC\n");
++ if (cmd->opcode == MMC_ALL_SEND_CID ||
++ cmd->opcode == MMC_SEND_CSD ||
++ cmd->opcode == MMC_SEND_CID) {
++ /* a bogus CRC error can appear if the msb of
++ the 15 byte response is a one */
++ if ((cmd->resp[0] & 0x80000000) == 0)
++ cmd->error = -EILSEQ;
++ }
++ }
++ /*
++ * Did I mention this is Sick. We always need to
++ * discard the upper 8 bits of the first 16-bit word.
++ */
++ if (host->data && cmd->error == 0)
++ jz_mmc_enable_irq(host, MSC_IMASK_DATA_TRAN_DONE);
++ else
++ jz_mmc_finish_request(host, host->mrq);
++
++ return 1;
++}
++
++static int jz_mmc_data_done(struct jz_mmc_host *host, unsigned int stat)
++{
++ struct mmc_data *data = host->data;
++
++ if (!data)
++ return 0;
++ REG_MSC_IREG = MSC_IREG_DATA_TRAN_DONE; /* clear status */
++ jz_mmc_stop_clock();
++ dma_unmap_sg(mmc_dev(host->mmc), data->sg, host->dma_len,
++ host->dma_dir);
++ if (stat & MSC_STAT_TIME_OUT_READ) {
++ printk("MMC/SD timeout, MMC_STAT 0x%x\n", stat);
++ data->error = -ETIMEDOUT;
++ } else if (REG_MSC_STAT &
++ (MSC_STAT_CRC_READ_ERROR | MSC_STAT_CRC_WRITE_ERROR)) {
++ printk("MMC/SD CRC error, MMC_STAT 0x%x\n", stat);
++ data->error = -EILSEQ;
++ }
++ /*
++ * There appears to be a hardware design bug here. There seems to
++ * be no way to find out how much data was transferred to the card.
++ * This means that if there was an error on any block, we mark all
++ * data blocks as being in error.
++ */
++ if (data->error == 0)
++ data->bytes_xfered = data->blocks * data->blksz;
++ else
++ data->bytes_xfered = 0;
++
++ jz_mmc_disable_irq(host, MSC_IMASK_DATA_TRAN_DONE);
++ host->data = NULL;
++ if (host->mrq->stop) {
++ jz_mmc_stop_clock();
++ jz_mmc_start_cmd(host, host->mrq->stop, 0);
++ } else {
++ jz_mmc_finish_request(host, host->mrq);
++ }
++ return 1;
++}
++
++static void jz_mmc_request(struct mmc_host *mmc, struct mmc_request *mrq)
++{
++ struct jz_mmc_host *host = mmc_priv(mmc);
++ unsigned int cmdat;
++
++ /* stop MMC clock */
++ jz_mmc_stop_clock();
++
++ /* Save current request for the future processing */
++ host->mrq = mrq;
++ host->data = mrq->data;
++ cmdat = host->cmdat;
++ host->cmdat &= ~MSC_CMDAT_INIT;
++
++ if (mrq->data) {
++ cmdat &= ~MSC_CMDAT_BUSY;
++#ifdef USE_DMA
++ if ((mrq->cmd->opcode == 51) | (mrq->cmd->opcode == 8) | (mrq->cmd->opcode == 6))
++
++ cmdat |=
++ MSC_CMDAT_BUS_WIDTH_1BIT | MSC_CMDAT_DATA_EN |
++ MSC_CMDAT_DMA_EN;
++ else {
++#ifdef CONFIG_JZ_MMC_BUS_1
++ cmdat &= ~MSC_CMDAT_BUS_WIDTH_4BIT;
++ cmdat |= MSC_CMDAT_BUS_WIDTH_1BIT | MSC_CMDAT_DATA_EN |
++ MSC_CMDAT_DMA_EN;
++#else
++ cmdat |= MSC_CMDAT_DATA_EN | MSC_CMDAT_DMA_EN;
++#endif
++ }
++ if (mrq->data->flags & MMC_DATA_WRITE)
++ cmdat |= MSC_CMDAT_WRITE;
++
++ if (mrq->data->flags & MMC_DATA_STREAM)
++ cmdat |= MSC_CMDAT_STREAM_BLOCK;
++ if (mrq->cmd->opcode != MMC_WRITE_BLOCK
++ && mrq->cmd->opcode != MMC_WRITE_MULTIPLE_BLOCK)
++ jz_mmc_rx_setup_data(host, mrq->data);
++#else /*USE_DMA*/
++
++ if ((mrq->cmd->opcode == 51) | (mrq->cmd->opcode == 8) | (mrq->cmd->opcode == 6))
++ cmdat |= MSC_CMDAT_BUS_WIDTH_1BIT | MSC_CMDAT_DATA_EN;
++ else {
++#ifdef CONFIG_JZ_MMC_BUS_1
++ cmdat &= ~MSC_CMDAT_BUS_WIDTH_4BIT;
++ cmdat |= MSC_CMDAT_BUS_WIDTH_1BIT | MSC_CMDAT_DATA_EN;
++#else
++ cmdat |= MSC_CMDAT_DATA_EN;
++#endif
++ }
++ if (mrq->data->flags & MMC_DATA_WRITE)
++ cmdat |= MSC_CMDAT_WRITE;
++
++ if (mrq->data->flags & MMC_DATA_STREAM)
++ cmdat |= MSC_CMDAT_STREAM_BLOCK;
++ jz_mmc_prepare_data(host, host->data);
++#endif /*USE_DMA*/
++ }
++ jz_mmc_start_cmd(host, mrq->cmd, cmdat);
++}
++
++static irqreturn_t jz_mmc_irq(int irq, void *devid)
++{
++ struct jz_mmc_host *host = devid;
++ unsigned int ireg;
++ int handled = 0;
++
++ ireg = REG_MSC_IREG;
++
++ if (ireg) {
++ unsigned stat = REG_MSC_STAT;
++ if (ireg & MSC_IREG_DATA_TRAN_DONE)
++ handled |= jz_mmc_data_done(host, stat);
++ }
++ return IRQ_RETVAL(handled);
++}
++
++/* Returns true if MMC slot is empty */
++static int jz_mmc_slot_is_empty(int slot)
++{
++ int empty;
++
++ empty = (__msc_card_detected(slot) == 0) ? 1 : 0;
++
++ if (empty) {
++ /* wait for card insertion */
++#ifdef CONFIG_MIPS_JZ4740_LYRA
++ __gpio_as_irq_rise_edge(MSC_HOTPLUG_PIN);
++#else
++ __gpio_as_irq_fall_edge(MSC_HOTPLUG_PIN);
++#endif
++ } else {
++ /* wait for card removal */
++#ifdef CONFIG_MIPS_JZ4740_LYRA
++ __gpio_as_irq_fall_edge(MSC_HOTPLUG_PIN);
++#else
++ __gpio_as_irq_rise_edge(MSC_HOTPLUG_PIN);
++#endif
++ }
++
++ return empty;
++}
++
++static irqreturn_t jz_mmc_detect_irq(int irq, void *devid)
++{
++ struct jz_mmc_host *host = (struct jz_mmc_host *) devid;
++
++ if (jz_mmc_slot_is_empty(0)) {
++ mmc_slot_enable = 0;
++ mmc_detect_change(host->mmc, 50);
++ } else {
++ mmc_slot_enable = 1;
++ mmc_detect_change(host->mmc, 50);
++ }
++ return IRQ_HANDLED;
++}
++
++static int jz_mmc_get_ro(struct mmc_host *mmc)
++{
++ struct jz_mmc_host *host = mmc_priv(mmc);
++
++ if (host->pdata && host->pdata->get_ro)
++ return host->pdata->get_ro(mmc_dev(mmc));
++ /* Host doesn't support read only detection so assume writeable */
++ return 0;
++}
++
++/* set clock and power */
++static void jz_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
++{
++ struct jz_mmc_host *host = mmc_priv(mmc);
++
++ if (ios->clock)
++ jz_mmc_set_clock(ios->clock);
++ else
++ jz_mmc_stop_clock();
++
++ if (host->power_mode != ios->power_mode) {
++ host->power_mode = ios->power_mode;
++
++ if (ios->power_mode == MMC_POWER_ON)
++ host->cmdat |= CMDAT_INIT;
++ }
++
++ if ((ios->bus_width == MMC_BUS_WIDTH_4) || (ios->bus_width == MMC_BUS_WIDTH_8))
++ host->cmdat |= MSC_CMDAT_BUS_WIDTH_4BIT;
++ else
++ host->cmdat &= ~MSC_CMDAT_BUS_WIDTH_4BIT;
++}
++
++static const struct mmc_host_ops jz_mmc_ops = {
++ .request = jz_mmc_request,
++ .get_ro = jz_mmc_get_ro,
++ .set_ios = jz_mmc_set_ios,
++};
++
++static int jz_mmc_probe(struct platform_device *pdev)
++{
++ int retval;
++ struct mmc_host *mmc;
++ struct jz_mmc_host *host = NULL;
++ int irq;
++ struct resource *r;
++
++ __gpio_as_msc();
++ __msc_init_io();
++ __msc_enable_power();
++
++ __msc_reset();
++
++ /* On reset, stop MMC clock */
++ jz_mmc_stop_clock();
++
++ MMC_IRQ_MASK();
++
++ r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ irq = platform_get_irq(pdev, 0);
++ if (!r || irq < 0)
++ return -ENXIO;
++
++ r = request_mem_region(r->start, SZ_4K, DRIVER_NAME);
++ if (!r)
++ return -EBUSY;
++
++ mmc = mmc_alloc_host(sizeof(struct jz_mmc_host), &pdev->dev);
++ if (!mmc) {
++ retval = -ENOMEM;
++ goto out;
++ }
++ mmc->ops = &jz_mmc_ops;
++ mmc->f_min = MMC_CLOCK_SLOW;
++ mmc->f_max = SD_CLOCK_FAST;
++ /*
++ * We can do SG-DMA, but we don't because we never know how much
++ * data we successfully wrote to the card.
++ */
++ mmc->max_phys_segs = NR_SG;
++ /*
++ * Our hardware DMA can handle a maximum of one page per SG entry.
++ */
++ mmc->max_seg_size = PAGE_SIZE;
++ /*
++ * Block length register is 10 bits.
++ */
++ mmc->max_blk_size = 1023;
++ /*
++ * Block count register is 16 bits.
++ */
++ mmc->max_blk_count = 65535;
++ host = mmc_priv(mmc);
++ host->mmc = mmc;
++ host->pdata = pdev->dev.platform_data;
++ mmc->ocr_avail = host->pdata ?
++ host->pdata->ocr_mask : MMC_VDD_32_33 | MMC_VDD_33_34;
++ host->mmc->caps =
++ MMC_CAP_4_BIT_DATA | MMC_CAP_SD_HIGHSPEED
++ | MMC_CAP_MMC_HIGHSPEED;
++ /*
++ *MMC_CAP_4_BIT_DATA (1 << 0) The host can do 4 bit transfers
++ *
++ */
++ host->sg_cpu =
++ dma_alloc_coherent(&pdev->dev, PAGE_SIZE, &host->sg_dma,
++ GFP_KERNEL);
++ if (!host->sg_cpu) {
++ retval = -ENOMEM;
++ goto out;
++ }
++ spin_lock_init(&host->lock);
++ host->irq = JZ_IRQ_MSC;
++ host->imask = 0xff;
++ /*
++ * Ensure that the host controller is shut down, and setup
++ * with our defaults.
++ */
++ retval = request_irq(JZ_IRQ_MSC, jz_mmc_irq, 0, "MMC/SD", host);
++ if (retval) {
++ printk(KERN_ERR "MMC/SD: can't request MMC/SD IRQ\n");
++ return retval;
++ }
++ jz_mmc_slot_is_empty(0);
++ /* Request card detect interrupt */
++
++ retval = request_irq(MSC_HOTPLUG_IRQ, jz_mmc_detect_irq, 0, //SA_INTERRUPT,
++ "MMC card detect", host);
++ if (retval) {
++ printk(KERN_ERR "MMC/SD: can't request card detect IRQ\n");
++ goto err1;
++ }
++#ifdef USE_DMA
++ /* Request MMC Rx DMA channel */
++ rxdmachan =
++ jz_request_dma(DMA_ID_MSC_RX, "MMC Rx", jz_mmc_dma_rx_callback,
++ 0, host);
++ if (rxdmachan < 0) {
++ printk(KERN_ERR "jz_request_dma failed for MMC Rx\n");
++ goto err2;
++ }
++
++ /* Request MMC Tx DMA channel */
++ txdmachan =
++ jz_request_dma(DMA_ID_MSC_TX, "MMC Tx", jz_mmc_dma_tx_callback,
++ 0, host);
++ if (txdmachan < 0) {
++ printk(KERN_ERR "jz_request_dma failed for MMC Tx\n");
++ goto err3;
++ }
++#endif
++ platform_set_drvdata(pdev, mmc);
++ mmc_add_host(mmc);
++ printk("JZ SD/MMC card driver registered\n");
++
++ /* Detect card during initialization */
++#ifdef CONFIG_SOC_JZ4740
++ if (!jz_mmc_slot_is_empty(0)) {
++ mmc_slot_enable = 1;
++ mmc_detect_change(host->mmc, 0);
++ }
++#endif
++ return 0;
++
++err1:free_irq(JZ_IRQ_MSC, &host);
++#ifdef USE_DMA
++ err2:jz_free_dma(rxdmachan);
++ err3:jz_free_dma(txdmachan);
++#endif
++out:
++ if (host) {
++ if (host->sg_cpu)
++ dma_free_coherent(&pdev->dev, PAGE_SIZE,
++ host->sg_cpu, host->sg_dma);
++ }
++ if (mmc)
++ mmc_free_host(mmc);
++ return -1;
++}
++
++static int jz_mmc_remove(struct platform_device *pdev)
++{
++ struct mmc_host *mmc = platform_get_drvdata(pdev);
++
++ platform_set_drvdata(pdev, NULL);
++
++ if (mmc) {
++ struct jz_mmc_host *host = mmc_priv(mmc);
++
++ if (host->pdata && host->pdata->exit)
++ host->pdata->exit(&pdev->dev, mmc);
++
++ mmc_remove_host(mmc);
++
++ jz_mmc_stop_clock();
++ __msc_disable_power();
++ jz_free_dma(rxdmachan);
++ jz_free_dma(txdmachan);
++ free_irq(JZ_IRQ_MSC, host);
++ mmc_free_host(mmc);
++ }
++ return 0;
++}
++
++#ifdef CONFIG_PM
++pm_message_t state;
++static int jz_mmc_suspend(struct platform_device *dev, pm_message_t state)
++{
++ struct mmc_host *mmc = platform_get_drvdata(dev);
++ int ret = 0;
++
++ __msc_disable_power();
++ if (mmc)
++ ret = mmc_suspend_host(mmc, state);
++
++ return ret;
++}
++
++static int jz_mmc_resume(struct platform_device *dev)
++{
++ struct mmc_host *mmc = platform_get_drvdata(dev);
++ int ret = 0;
++#if 0
++ /*for sandisk BB0807011816D and other strange cards*/
++ int i;
++
++ for(i = 104; i < 110; i++)
++ __gpio_as_input(i);
++
++ /* perhaps you should mdelay more */
++ mdelay(1000);
++ __gpio_as_msc();
++#endif
++ __msc_init_io();
++ __msc_enable_power();
++ __msc_reset();
++
++ if (!jz_mmc_slot_is_empty(0)) {
++ mmc_slot_enable = 1;
++ mmc_detect_change(mmc, 10);
++ }
++
++ if (mmc)
++ ret = mmc_resume_host(mmc);
++
++ return ret;
++}
++#else
++#define jz_mmc_suspend NULL
++#define jz_mmc_resume NULL
++#endif
++
++static struct platform_driver jz_mmc_driver = {
++ .probe = jz_mmc_probe,
++ .remove = jz_mmc_remove,
++ .suspend = jz_mmc_suspend,
++ .resume = jz_mmc_resume,
++ .driver = {
++ .name = DRIVER_NAME,
++ },
++};
++
++static int __init jz_mmc_init(void)
++{
++ return platform_driver_register(&jz_mmc_driver);
++}
++
++static void __exit jz_mmc_exit(void)
++{
++ platform_driver_unregister(&jz_mmc_driver);
++}
++
++module_init(jz_mmc_init);
++module_exit(jz_mmc_exit);
++
++MODULE_DESCRIPTION("JZ47XX SD/Multimedia Card Interface Driver");
++MODULE_LICENSE("GPL");
+diff -ruN linux-2.6.31-vanilla/drivers/mmc/host/jz_mmc.h linux-2.6.31/drivers/mmc/host/jz_mmc.h
+--- linux-2.6.31-vanilla/drivers/mmc/host/jz_mmc.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/drivers/mmc/host/jz_mmc.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,65 @@
++#ifndef __JZ_MMC_H__
++#define __JZ_MMC_H__
++
++#define MMC_CLOCK_SLOW 400000 /* 400 kHz for initial setup */
++#define MMC_CLOCK_FAST 20000000 /* 20 MHz for maximum for normal operation */
++#define SD_CLOCK_FAST 24000000 /* 24 MHz for SD Cards */
++#define MMC_NO_ERROR 0
++/* Extra MMC commands for state control */
++/* Use negative numbers to disambiguate */
++#define MMC_CIM_RESET -1
++#define MMC_SET_CLOCK 100
++
++typedef struct jzsoc_dma_desc {
++ volatile u32 ddadr; /* Points to the next descriptor + flags */
++ volatile u32 dsadr; /* DSADR value for the current transfer */
++ volatile u32 dtadr; /* DTADR value for the current transfer */
++ volatile u32 dcmd; /* DCMD value for the current transfer */
++} jzsoc_dma_desc;
++
++
++
++
++#include <linux/interrupt.h>
++
++struct device;
++struct mmc_host;
++
++struct jz_mmc_platform_data {
++ unsigned int ocr_mask; /* available voltages */
++ unsigned long detect_delay; /* delay in jiffies before detecting cards after interrupt */
++ int (*init)(struct device *, irq_handler_t , void *);
++ int (*get_ro)(struct device *);
++ void (*setpower)(struct device *, unsigned int);
++ void (*exit)(struct device *, void *);
++};
++
++//extern void pxa_set_mci_info(struct pxamci_platform_data *info);
++
++
++
++#define SZ_1K 0x00000400
++#define SZ_4K 0x00001000
++#define SZ_8K 0x00002000
++#define SZ_16K 0x00004000
++#define SZ_64K 0x00010000
++#define SZ_128K 0x00020000
++#define SZ_256K 0x00040000
++#define SZ_512K 0x00080000
++
++#define SZ_1M 0x00100000
++#define SZ_2M 0x00200000
++#define SZ_4M 0x00400000
++#define SZ_8M 0x00800000
++#define SZ_16M 0x01000000
++#define SZ_32M 0x02000000
++#define SZ_64M 0x04000000
++#define SZ_128M 0x08000000
++#define SZ_256M 0x10000000
++#define SZ_512M 0x20000000
++
++#define SZ_1G 0x40000000
++#define SZ_2G 0x80000000
++
++
++#endif /* __JZ_MMC_H__ */
+diff -ruN linux-2.6.31-vanilla/drivers/mtd/nand/jz4740_nand.c linux-2.6.31/drivers/mtd/nand/jz4740_nand.c
+--- linux-2.6.31-vanilla/drivers/mtd/nand/jz4740_nand.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/drivers/mtd/nand/jz4740_nand.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,418 @@
++/*
++ * Copyright (C) 2009, Lars-Peter Clausen <lars@metafoo.de>
++ * JZ4720/JZ4740 SoC NAND controller driver
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#include <linux/ioport.h>
++#include <linux/platform_device.h>
++
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/nand.h>
++#include <linux/mtd/partitions.h>
++
++#include <linux/mtd/jz4740_nand.h>
++#include <linux/gpio.h>
++
++#define JZ_REG_NAND_CTRL 0x50
++#define JZ_REG_NAND_ECC_CTRL 0x100
++#define JZ_REG_NAND_DATA 0x104
++#define JZ_REG_NAND_PAR0 0x108
++#define JZ_REG_NAND_PAR1 0x10C
++#define JZ_REG_NAND_PAR2 0x110
++#define JZ_REG_NAND_IRQ_STAT 0x114
++#define JZ_REG_NAND_IRQ_CTRL 0x118
++#define JZ_REG_NAND_ERR(x) (0x11C + (x << 2))
++
++#define JZ_NAND_ECC_CTRL_PAR_READY BIT(4)
++#define JZ_NAND_ECC_CTRL_ENCODING BIT(3)
++#define JZ_NAND_ECC_CTRL_RS BIT(2)
++#define JZ_NAND_ECC_CTRL_RESET BIT(1)
++#define JZ_NAND_ECC_CTRL_ENABLE BIT(0)
++
++#define JZ_NAND_STATUS_ERR_COUNT (BIT(31) | BIT(30) | BIT(29))
++#define JZ_NAND_STATUS_PAD_FINISH BIT(4)
++#define JZ_NAND_STATUS_DEC_FINISH BIT(3)
++#define JZ_NAND_STATUS_ENC_FINISH BIT(2)
++#define JZ_NAND_STATUS_UNCOR_ERROR BIT(1)
++#define JZ_NAND_STATUS_ERROR BIT(0)
++
++#define JZ_NAND_CTRL_ENABLE_CHIP(x) BIT(x << 1)
++#define JZ_NAND_CTRL_ASSERT_CHIP(x) BIT((x << 1) + 1)
++
++#define JZ_NAND_DATA_ADDR ((void __iomem *)0xB8000000)
++#define JZ_NAND_CMD_ADDR (JZ_NAND_DATA_ADDR + 0x8000)
++#define JZ_NAND_ADDR_ADDR (JZ_NAND_DATA_ADDR + 0x10000)
++
++struct jz_nand {
++ struct mtd_info mtd;
++ struct nand_chip chip;
++ void __iomem *base;
++ struct resource *mem;
++
++ struct jz_nand_platform_data *pdata;
++};
++
++static inline struct jz_nand *mtd_to_jz_nand(struct mtd_info *mtd)
++{
++ return container_of(mtd, struct jz_nand, mtd);
++}
++
++static void jz_nand_cmd_ctrl(struct mtd_info *mtd, int dat, unsigned int ctrl)
++{
++ struct jz_nand *nand = mtd_to_jz_nand(mtd);
++ struct nand_chip *chip = mtd->priv;
++ uint32_t reg;
++
++ if (ctrl & NAND_CTRL_CHANGE) {
++ BUG_ON((ctrl & NAND_ALE) && (ctrl & NAND_CLE));
++ if (ctrl & NAND_ALE)
++ chip->IO_ADDR_W = JZ_NAND_ADDR_ADDR;
++ else if (ctrl & NAND_CLE)
++ chip->IO_ADDR_W = JZ_NAND_CMD_ADDR;
++ else
++ chip->IO_ADDR_W = JZ_NAND_DATA_ADDR;
++
++ reg = readl(nand->base + JZ_REG_NAND_CTRL);
++ if ( ctrl & NAND_NCE )
++ reg |= JZ_NAND_CTRL_ASSERT_CHIP(0);
++ else
++ reg &= ~JZ_NAND_CTRL_ASSERT_CHIP(0);
++ writel(reg, nand->base + JZ_REG_NAND_CTRL);
++ }
++ if (dat != NAND_CMD_NONE)
++ writeb(dat, chip->IO_ADDR_W);
++}
++
++static int jz_nand_dev_ready(struct mtd_info *mtd)
++{
++ struct jz_nand *nand = mtd_to_jz_nand(mtd);
++ return gpio_get_value_cansleep(nand->pdata->busy_gpio);
++}
++
++static void jz_nand_hwctl(struct mtd_info *mtd, int mode)
++{
++ struct jz_nand *nand = mtd_to_jz_nand(mtd);
++ uint32_t reg;
++
++
++ writel(0, nand->base + JZ_REG_NAND_IRQ_STAT);
++ reg = readl(nand->base + JZ_REG_NAND_ECC_CTRL);
++
++ reg |= JZ_NAND_ECC_CTRL_RESET;
++ reg |= JZ_NAND_ECC_CTRL_ENABLE;
++ reg |= JZ_NAND_ECC_CTRL_RS;
++
++ switch(mode) {
++ case NAND_ECC_READ:
++ reg &= ~JZ_NAND_ECC_CTRL_ENCODING;
++ break;
++ case NAND_ECC_WRITE:
++ reg |= JZ_NAND_ECC_CTRL_ENCODING;
++ break;
++ default:
++ break;
++ }
++
++ writel(reg, nand->base + JZ_REG_NAND_ECC_CTRL);
++}
++
++static int jz_nand_calculate_ecc_rs(struct mtd_info* mtd, const uint8_t* dat,
++ uint8_t *ecc_code)
++{
++ struct jz_nand *nand = mtd_to_jz_nand(mtd);
++ uint32_t reg, status;
++ int i;
++
++ do {
++ status = readl(nand->base + JZ_REG_NAND_IRQ_STAT);
++ } while(!(status & JZ_NAND_STATUS_ENC_FINISH));
++
++ reg = readl(nand->base + JZ_REG_NAND_ECC_CTRL);
++ reg &= ~JZ_NAND_ECC_CTRL_ENABLE;
++ writel(reg, nand->base + JZ_REG_NAND_ECC_CTRL);
++
++ for (i = 0; i < 9; ++i) {
++ ecc_code[i] = readb(nand->base + JZ_REG_NAND_PAR0 + i);
++ }
++
++ return 0;
++}
++
++static void correct_data(uint8_t *dat, int index, int mask)
++{
++ int offset = index & 0x7;
++ uint16_t data;
++ printk("correct: ");
++
++ index += (index >> 3);
++
++ data = dat[index];
++ data |= dat[index+1] << 8;
++
++ printk("0x%x -> ", data);
++
++ mask ^= (data >> offset) & 0x1ff;
++ data &= ~(0x1ff << offset);
++ data |= (mask << offset);
++
++ printk("0x%x\n", data);
++
++ dat[index] = data & 0xff;
++ dat[index+1] = (data >> 8) & 0xff;
++}
++
++static int jz_nand_correct_ecc_rs(struct mtd_info* mtd, uint8_t *dat,
++ uint8_t *read_ecc, uint8_t *calc_ecc)
++{
++ struct jz_nand *nand = mtd_to_jz_nand(mtd);
++ int i, error_count, index;
++ uint32_t reg, status, error;
++
++ for(i = 0; i < 9; ++i) {
++ if (read_ecc[i] != 0xff)
++ break;
++ }
++ if (i == 9) {
++ for (i = 0; i < nand->chip.ecc.size; ++i) {
++ if (dat[i] != 0xff)
++ break;
++ }
++ if (i == nand->chip.ecc.size)
++ return 0;
++ }
++
++ for(i = 0; i < 9; ++i)
++ writeb(read_ecc[i], nand->base + JZ_REG_NAND_PAR0 + i);
++
++ reg = readl(nand->base + JZ_REG_NAND_ECC_CTRL);
++ reg |= JZ_NAND_ECC_CTRL_PAR_READY;
++ writel(reg, nand->base + JZ_REG_NAND_ECC_CTRL);
++
++ do {
++ status = readl(nand->base + JZ_REG_NAND_IRQ_STAT);
++ } while (!(status & JZ_NAND_STATUS_DEC_FINISH));
++
++ reg = readl(nand->base + JZ_REG_NAND_ECC_CTRL);
++ reg &= ~JZ_NAND_ECC_CTRL_ENABLE;
++ writel(reg, nand->base + JZ_REG_NAND_ECC_CTRL);
++
++ if (status & JZ_NAND_STATUS_ERROR) {
++ if (status & JZ_NAND_STATUS_UNCOR_ERROR) {
++ printk("uncorrectable ecc:");
++ for(i = 0; i < 9; ++i)
++ printk(" 0x%x", read_ecc[i]);
++ printk("\n");
++ printk("uncorrectable data:");
++ for(i = 0; i < 32; ++i)
++ printk(" 0x%x", dat[i]);
++ printk("\n");
++ return -1;
++ }
++
++ error_count = (status & JZ_NAND_STATUS_ERR_COUNT) >> 29;
++
++ printk("error_count: %d %x\n", error_count, status);
++
++ for(i = 0; i < error_count; ++i) {
++ error = readl(nand->base + JZ_REG_NAND_ERR(i));
++ index = ((error >> 16) & 0x1ff) - 1;
++ if (index >= 0 && index < 512) {
++ correct_data(dat, index, error & 0x1ff);
++ }
++ }
++
++ return error_count;
++ }
++
++ return 0;
++}
++
++
++
++#ifdef CONFIG_MTD_CMDLINE_PARTS
++static const char *part_probes[] = {"cmdline", NULL};
++#endif
++
++static int __devinit jz_nand_probe(struct platform_device *pdev)
++{
++ int ret;
++ struct jz_nand *nand;
++ struct nand_chip *chip;
++ struct mtd_info *mtd;
++ struct jz_nand_platform_data *pdata = pdev->dev.platform_data;
++#ifdef CONFIG_MTD_PARTITIONS
++ struct mtd_partition *partition_info;
++ int num_partitions = 0;
++#endif
++
++ nand = kzalloc(sizeof(*nand), GFP_KERNEL);
++ if (!nand) {
++ dev_err(&pdev->dev, "Failed to allocate device structure.\n");
++ return -ENOMEM;
++ }
++
++ nand->mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ if (!nand->mem) {
++ dev_err(&pdev->dev, "Failed to get platform mmio memory\n");
++ ret = -ENOENT;
++ goto err_free;
++ }
++
++ nand->mem = request_mem_region(nand->mem->start, resource_size(nand->mem),
++ pdev->name);
++
++ if (!nand->mem) {
++ dev_err(&pdev->dev, "Failed to request mmio memory region\n");
++ ret = -EBUSY;
++ goto err_free;
++ }
++
++ nand->base = ioremap(nand->mem->start, resource_size(nand->mem));
++
++ if (!nand->base) {
++ dev_err(&pdev->dev, "Faild to ioremap mmio memory region\n");
++ ret = -EBUSY;
++ goto err_release_mem;
++ }
++
++ if (pdata && gpio_is_valid(pdata->busy_gpio)) {
++ ret = gpio_request(pdata->busy_gpio, "jz nand busy line");
++ if (ret) {
++ dev_err(&pdev->dev, "Failed to request busy gpio %d: %d\n",
++ pdata->busy_gpio, ret);
++ goto err_iounmap;
++ }
++ }
++
++ mtd = &nand->mtd;
++ chip = &nand->chip;
++ mtd->priv = chip;
++ mtd->owner = THIS_MODULE;
++ mtd->name = "jz4740-nand";
++
++ chip->ecc.hwctl = jz_nand_hwctl;
++
++ chip->ecc.calculate = jz_nand_calculate_ecc_rs;
++ chip->ecc.correct = jz_nand_correct_ecc_rs;
++ chip->ecc.mode = NAND_ECC_HW;
++ chip->ecc.size = 512;
++ chip->ecc.bytes = 9;
++ if (pdata)
++ chip->ecc.layout = pdata->ecc_layout;
++
++ chip->chip_delay = 50;
++ chip->cmd_ctrl = jz_nand_cmd_ctrl;
++
++ if (pdata && gpio_is_valid(pdata->busy_gpio))
++ chip->dev_ready = jz_nand_dev_ready;
++
++ chip->IO_ADDR_R = JZ_NAND_DATA_ADDR;
++ chip->IO_ADDR_W = JZ_NAND_DATA_ADDR;
++
++ nand->pdata = pdata;
++ platform_set_drvdata(pdev, nand);
++
++ ret = nand_scan_ident(mtd, 1);
++ if (ret) {
++ dev_err(&pdev->dev, "Failed to scan nand\n");
++ goto err_gpio_free;
++ }
++
++ if (pdata && pdata->ident_callback) {
++ pdata->ident_callback(pdev, chip, &pdata->partitions, &pdata->num_partitions);
++ }
++
++ ret = nand_scan_tail(mtd);
++ if (ret) {
++ dev_err(&pdev->dev, "Failed to scan nand\n");
++ goto err_gpio_free;
++ }
++
++#ifdef CONFIG_MTD_PARTITIONS
++#ifdef CONFIG_MTD_CMDLINE_PARTS
++ num_partitions = parse_mtd_partitions(mtd, part_probes,
++ &partition_info, 0);
++#endif
++ if (num_partitions <= 0 && pdata) {
++ num_partitions = pdata->num_partitions;
++ partition_info = pdata->partitions;
++ }
++
++ if (num_partitions > 0)
++ ret = add_mtd_partitions(mtd, partition_info, num_partitions);
++ else
++#endif
++ ret = add_mtd_device(mtd);
++
++ if (ret) {
++ dev_err(&pdev->dev, "Failed to add mtd device\n");
++ goto err_nand_release;
++ }
++
++ dev_info(&pdev->dev, "Successfully registered JZ4740 NAND driver\n");
++
++ return 0;
++err_nand_release:
++ nand_release(&nand->mtd);
++err_gpio_free:
++ platform_set_drvdata(pdev, NULL);
++ gpio_free(pdata->busy_gpio);
++err_iounmap:
++ iounmap(nand->base);
++err_release_mem:
++ release_mem_region(nand->mem->start, resource_size(nand->mem));
++err_free:
++ kfree(nand);
++ return ret;
++}
++
++static void __devexit jz_nand_remove(struct platform_device *pdev)
++{
++ struct jz_nand *nand = platform_get_drvdata(pdev);
++
++ nand_release(&nand->mtd);
++
++ iounmap(nand->base);
++
++ release_mem_region(nand->mem->start, resource_size(nand->mem));
++
++ platform_set_drvdata(pdev, NULL);
++ kfree(nand);
++}
++
++struct platform_driver jz_nand_driver = {
++ .probe = jz_nand_probe,
++ .remove = __devexit_p(jz_nand_probe),
++ .driver = {
++ .name = "jz4740-nand",
++ .owner = THIS_MODULE,
++ },
++};
++
++static int __init jz_nand_init(void)
++{
++ return platform_driver_register(&jz_nand_driver);
++}
++module_init(jz_nand_init);
++
++static void __exit jz_nand_exit(void)
++{
++ platform_driver_unregister(&jz_nand_driver);
++}
++module_exit(jz_nand_exit);
++
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>");
++MODULE_DESCRIPTION("NAND controller driver for JZ4720/JZ4740 SoC");
++MODULE_ALIAS("platform:jz4740-nand");
++MODULE_ALIAS("platform:jz4720-nand");
+diff -ruN linux-2.6.31-vanilla/drivers/power/jz4740-battery.c linux-2.6.31/drivers/power/jz4740-battery.c
+--- linux-2.6.31-vanilla/drivers/power/jz4740-battery.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/drivers/power/jz4740-battery.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,471 @@
++/*
++ * Battery measurement code for Ingenic JZ SOC.
++ *
++ * based on tosa_battery.c
++ *
++ * Copyright (C) 2008 Marek Vasut <marek.vasut@gmail.com>
++ * Copyright (C) 2009 Jiejing Zhang <kzjeef@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ */
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/power_supply.h>
++#include <linux/delay.h>
++#include <linux/spinlock.h>
++#include <linux/interrupt.h>
++#include <linux/platform_device.h>
++#include <linux/gpio.h>
++
++#include <linux/power/jz4740-battery.h>
++#include <linux/jz4740-adc.h>
++
++struct jz_battery_info {
++ struct power_supply usb;
++ struct power_supply bat;
++ struct power_supply ac;
++ int bat_status;
++ struct jz_batt_info *pdata;
++ struct mutex work_lock;
++ struct workqueue_struct *monitor_wqueue;
++ struct delayed_work bat_work;
++};
++
++#define ps_to_jz_battery(x) container_of((x), struct jz_battery_info, bat);
++
++/*********************************************************************
++ * Power
++ *********************************************************************/
++
++
++static int jz_get_power_prop(struct jz_battery_info *bat_info,
++ struct power_supply *psy,
++ enum power_supply_property psp,
++ union power_supply_propval *val)
++{
++ int gpio;
++
++ if (bat_info == 0 || bat_info->pdata == 0)
++ return -EINVAL;
++ gpio = (psy->type == POWER_SUPPLY_TYPE_MAINS) ?
++ bat_info->pdata->dc_dect_gpio :
++ bat_info->pdata->usb_dect_gpio;
++ if (!gpio_is_valid(gpio))
++ return -EINVAL;
++ switch (psp) {
++ case POWER_SUPPLY_PROP_ONLINE:
++ val->intval = !gpio_get_value(gpio);
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++static int jz_usb_get_power_prop(struct power_supply *psy,
++ enum power_supply_property psp,
++ union power_supply_propval *val)
++{
++ struct jz_battery_info *bat_info = container_of(psy, struct jz_battery_info, usb);
++ return jz_get_power_prop(bat_info, psy, psp, val);
++}
++
++static int jz_ac_get_power_prop(struct power_supply *psy,
++ enum power_supply_property psp,
++ union power_supply_propval *val)
++{
++ struct jz_battery_info *bat_info = container_of(psy, struct jz_battery_info, ac);
++ return jz_get_power_prop(bat_info, psy, psp, val);
++}
++
++
++static enum power_supply_property jz_power_props[] = {
++ POWER_SUPPLY_PROP_ONLINE,
++};
++
++static struct power_supply jz_ac = {
++ .name = "ac",
++ .type = POWER_SUPPLY_TYPE_MAINS,
++ .properties = jz_power_props,
++ .num_properties = ARRAY_SIZE(jz_power_props),
++ .get_property = jz_ac_get_power_prop,
++};
++
++static struct power_supply jz_usb = {
++ .name = "usb",
++ .type = POWER_SUPPLY_TYPE_USB,
++ .properties = jz_power_props,
++ .num_properties = ARRAY_SIZE(jz_power_props),
++ .get_property = jz_usb_get_power_prop,
++};
++
++
++/*********************************************************************
++ * Battery properties
++ *********************************************************************/
++
++static long jz_read_bat(struct power_supply *psy)
++{
++ struct jz_battery_info *bat_info = ps_to_jz_battery(psy);
++ enum jz_adc_battery_scale scale;
++
++ if (bat_info->pdata->max_voltag > 2500000)
++ scale = JZ_ADC_BATTERY_SCALE_7V5;
++ else
++ scale = JZ_ADC_BATTERY_SCALE_2V5;
++
++ return jz4740_adc_read_battery_voltage(psy->dev->parent->parent, scale);
++}
++
++static int jz_bat_get_capacity(struct power_supply *psy)
++{
++ int ret;
++ struct jz_battery_info *bat_info = ps_to_jz_battery(psy);
++
++ ret = jz_read_bat(psy);
++
++ if (ret < 0)
++ return ret;
++
++ ret = (ret - bat_info->pdata->min_voltag) * 100
++ / (bat_info->pdata->max_voltag - bat_info->pdata->min_voltag);
++
++ if (ret > 100)
++ ret = 100;
++ else if (ret < 0)
++ ret = 0;
++
++ return ret;
++}
++
++static int jz_bat_get_property(struct power_supply *psy,
++ enum power_supply_property psp,
++ union power_supply_propval *val)
++{
++ struct jz_battery_info *bat_info = ps_to_jz_battery(psy)
++
++ switch (psp) {
++ case POWER_SUPPLY_PROP_STATUS:
++ val->intval = bat_info->bat_status;
++ break;
++ case POWER_SUPPLY_PROP_TECHNOLOGY:
++ val->intval = bat_info->pdata->batt_tech;
++ break;
++ case POWER_SUPPLY_PROP_HEALTH:
++ if(jz_read_bat(psy) < bat_info->pdata->min_voltag) {
++ dev_dbg(psy->dev, "%s: battery is dead,"
++ "voltage too low!\n", __func__);
++ val->intval = POWER_SUPPLY_HEALTH_DEAD;
++ } else {
++ dev_dbg(psy->dev, "%s: battery is good,"
++ "voltage normal.\n", __func__);
++ val->intval = POWER_SUPPLY_HEALTH_GOOD;
++ }
++ break;
++ case POWER_SUPPLY_PROP_CAPACITY:
++ val->intval = jz_bat_get_capacity(psy);
++ dev_dbg(psy->dev, "%s: battery_capacity = %d\n",
++ __func__, val->intval);
++ break;
++ case POWER_SUPPLY_PROP_VOLTAGE_NOW:
++ val->intval = jz_read_bat(psy);
++ if (val->intval < 0)
++ return val->intval;
++ break;
++ case POWER_SUPPLY_PROP_VOLTAGE_MAX:
++ case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN:
++ val->intval = bat_info->pdata->max_voltag;
++ break;
++ case POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN:
++ val->intval = bat_info->pdata->min_voltag;
++ break;
++ case POWER_SUPPLY_PROP_PRESENT:
++ val->intval = 1;
++ break;
++ default:
++ return -EINVAL;
++ }
++ return 0;
++}
++
++static void jz_bat_external_power_changed(struct power_supply *psy)
++{
++ struct jz_battery_info *bat_info = ps_to_jz_battery(psy);
++
++ cancel_delayed_work(&bat_info->bat_work);
++ queue_delayed_work(bat_info->monitor_wqueue, &bat_info->bat_work, HZ / 8);
++}
++
++static char *status_text[] = {
++ [POWER_SUPPLY_STATUS_UNKNOWN] = "Unknown",
++ [POWER_SUPPLY_STATUS_CHARGING] = "Charging",
++ [POWER_SUPPLY_STATUS_DISCHARGING] = "Discharging",
++ [POWER_SUPPLY_STATUS_NOT_CHARGING] = "Not charging",
++};
++
++static void jz_bat_update(struct power_supply *psy)
++{
++ struct jz_battery_info *bat_info = ps_to_jz_battery(psy);
++
++ int old_status = bat_info->bat_status;
++ static unsigned long old_batt_vol = 0;
++ unsigned long batt_vol = jz_read_bat(psy);
++
++ mutex_lock(&bat_info->work_lock);
++
++ if (gpio_is_valid(bat_info->pdata->charg_stat_gpio)) {
++ if(!gpio_get_value(bat_info->pdata->charg_stat_gpio))
++ bat_info->bat_status = POWER_SUPPLY_STATUS_CHARGING;
++ else
++ bat_info->bat_status = POWER_SUPPLY_STATUS_NOT_CHARGING;
++ dev_dbg(psy->dev, "%s: battery status=%s\n",
++ __func__, status_text[bat_info->bat_status]);
++
++ if (old_status != bat_info->bat_status) {
++ dev_dbg(psy->dev, "%s %s -> %s\n",
++ psy->name,
++ status_text[old_status],
++ status_text[bat_info->bat_status]);
++
++ power_supply_changed(psy);
++ }
++ }
++
++ if (old_batt_vol - batt_vol > 50000) {
++ dev_dbg(psy->dev, "voltage change : %ld -> %ld\n",
++ old_batt_vol, batt_vol);
++ power_supply_changed(psy);
++ old_batt_vol = batt_vol;
++ }
++
++ mutex_unlock(&bat_info->work_lock);
++}
++
++static enum power_supply_property jz_bat_main_props[] = {
++ POWER_SUPPLY_PROP_STATUS,
++ POWER_SUPPLY_PROP_TECHNOLOGY,
++ POWER_SUPPLY_PROP_HEALTH,
++ POWER_SUPPLY_PROP_CAPACITY, /* in percents! */
++ POWER_SUPPLY_PROP_VOLTAGE_NOW,
++ POWER_SUPPLY_PROP_VOLTAGE_MAX,
++ POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN,
++ POWER_SUPPLY_PROP_PRESENT,
++};
++
++struct power_supply bat_ps = {
++ .name = "battery",
++ .type = POWER_SUPPLY_TYPE_BATTERY,
++ .properties = jz_bat_main_props,
++ .num_properties = ARRAY_SIZE(jz_bat_main_props),
++ .get_property = jz_bat_get_property,
++ .external_power_changed = jz_bat_external_power_changed,
++ .use_for_apm = 1,
++};
++
++static void jz_bat_work(struct work_struct *work)
++{
++ /* query interval too small will increase system workload*/
++ const int interval = HZ * 30;
++ struct jz_battery_info *bat_info = container_of(work,struct jz_battery_info, bat_work.work);
++
++ jz_bat_update(&bat_info->bat);
++ queue_delayed_work(bat_info->monitor_wqueue,
++ &bat_info->bat_work, interval);
++}
++
++#ifdef CONFIG_PM
++static int jz_bat_suspend(struct platform_device *pdev, pm_message_t state)
++{
++ struct jz_battery_info *bat_info = platform_get_drvdata(pdev);
++
++ bat_info->bat_status = POWER_SUPPLY_STATUS_UNKNOWN;
++
++ return 0;
++}
++
++static int jz_bat_resume(struct platform_device *pdev)
++{
++ struct jz_battery_info *bat_info = platform_get_drvdata(pdev);
++
++ bat_info->bat_status = POWER_SUPPLY_STATUS_UNKNOWN;
++
++ cancel_delayed_work(&bat_info->bat_work);
++ queue_delayed_work(bat_info->monitor_wqueue, &bat_info->bat_work, HZ/10);
++
++ return 0;
++}
++#else
++#define jz_bat_suspend NULL
++#define jz_bat_resume NULL
++#endif
++
++static int jz_bat_probe(struct platform_device *pdev)
++{
++ int ret = 0;
++ struct jz_battery_info *bat_info;
++
++ bat_info = kzalloc(sizeof(struct jz_battery_info), GFP_KERNEL);
++
++ if (!bat_info) {
++ return -ENOMEM;
++ }
++
++ if (!pdev->dev.platform_data) {
++ dev_err(&pdev->dev, "Please set battery info\n");
++ ret = -EINVAL;
++ goto err_platform_data;
++ }
++ platform_set_drvdata(pdev, bat_info);
++ bat_info->pdata = pdev->dev.platform_data;
++ bat_info->bat = bat_ps;
++ bat_info->usb = jz_usb;
++ bat_info->ac = jz_ac;
++ mutex_init(&bat_info->work_lock);
++ INIT_DELAYED_WORK(&bat_info->bat_work, jz_bat_work);
++
++ if (gpio_is_valid(bat_info->pdata->dc_dect_gpio)) {
++ ret = gpio_request(bat_info->pdata->dc_dect_gpio, "AC/DC DECT");
++ if (ret) {
++ dev_err(&pdev->dev, "ac/dc dect gpio request failed.\n");
++
++ goto err_dc_gpio_request;
++ }
++ ret = gpio_direction_input(bat_info->pdata->dc_dect_gpio);
++ if (ret) {
++ dev_err(&pdev->dev, "ac/dc dect gpio direction failed.\n");
++
++ goto err_dc_gpio_direction;
++ }
++ }
++
++ if (gpio_is_valid(bat_info->pdata->usb_dect_gpio)) {
++ ret = gpio_request(bat_info->pdata->usb_dect_gpio, "USB DECT");
++ if (ret) {
++ dev_err(&pdev->dev, "usb dect gpio request failed.\n");
++
++ goto err_usb_gpio_request;
++ }
++ ret = gpio_direction_input(bat_info->pdata->usb_dect_gpio);
++ if (ret) {
++ dev_err(&pdev->dev, "usb dect gpio set direction failed.\n");
++ goto err_usb_gpio_direction;
++ }
++
++ jz_gpio_disable_pullup(bat_info->pdata->usb_dect_gpio);
++ /* TODO: Use generic gpio is better */
++ }
++
++ if (gpio_is_valid(bat_info->pdata->charg_stat_gpio)) {
++ ret = gpio_request(bat_info->pdata->charg_stat_gpio, "CHARG STAT");
++ if (ret) {
++ dev_err(&pdev->dev, "charger state gpio request failed.\n");
++ goto err_charg_gpio_request;
++ }
++ ret = gpio_direction_input(bat_info->pdata->charg_stat_gpio);
++ if (ret) {
++ dev_err(&pdev->dev, "charger state gpio set direction failed.\n");
++ goto err_charg_gpio_direction;
++ }
++ }
++
++ if (gpio_is_valid(bat_info->pdata->dc_dect_gpio)) {
++ ret = power_supply_register(&pdev->dev, &bat_info->ac);
++ if (ret) {
++ dev_err(&pdev->dev, "power supply ac/dc register failed.\n");
++ goto err_power_register_ac;
++ }
++ }
++
++ if (gpio_is_valid(bat_info->pdata->usb_dect_gpio)) {
++ ret = power_supply_register(&pdev->dev, &bat_info->usb);
++ if (ret) {
++ dev_err(&pdev->dev, "power supply usb register failed.\n");
++ goto err_power_register_usb;
++ }
++ }
++
++ if (gpio_is_valid(bat_info->pdata->charg_stat_gpio)) {
++ ret = power_supply_register(&pdev->dev, &bat_info->bat);
++ if (ret) {
++ dev_err(&pdev->dev, "power supply battery register failed.\n");
++ goto err_power_register_bat;
++ } else {
++ bat_info->monitor_wqueue = create_singlethread_workqueue("jz_battery");
++ if (!bat_info->monitor_wqueue) {
++ return -ESRCH;
++ }
++ queue_delayed_work(bat_info->monitor_wqueue, &bat_info->bat_work, HZ * 1);
++ }
++ }
++ printk(KERN_INFO "jz_bat init success.\n");
++ return ret;
++
++err_power_register_bat:
++ power_supply_unregister(&bat_info->usb);
++err_power_register_usb:
++ power_supply_unregister(&bat_info->ac);
++err_power_register_ac:
++err_charg_gpio_direction:
++ gpio_free(bat_info->pdata->charg_stat_gpio);
++err_charg_gpio_request:
++err_usb_gpio_direction:
++ gpio_free(bat_info->pdata->usb_dect_gpio);
++err_usb_gpio_request:
++err_dc_gpio_direction:
++ gpio_free(bat_info->pdata->dc_dect_gpio);
++err_dc_gpio_request:
++err_platform_data:
++ kfree(bat_info);
++ return ret;
++}
++
++static int jz_bat_remove(struct platform_device *pdev)
++{
++ struct jz_battery_info *bat_info = platform_get_drvdata(pdev);
++
++ if (bat_info->pdata) {
++ if (gpio_is_valid(bat_info->pdata->dc_dect_gpio))
++ gpio_free(bat_info->pdata->dc_dect_gpio);
++ if (gpio_is_valid(bat_info->pdata->usb_dect_gpio))
++ gpio_free(bat_info->pdata->usb_dect_gpio);
++ if (gpio_is_valid(bat_info->pdata->charg_stat_gpio))
++ gpio_free(bat_info->pdata->charg_stat_gpio);
++ }
++
++ power_supply_unregister(&bat_ps);
++ power_supply_unregister(&jz_ac);
++ power_supply_unregister(&jz_usb);
++
++ return 0;
++}
++
++static struct platform_driver jz_bat_driver = {
++ .probe = jz_bat_probe,
++ .remove = __devexit_p(jz_bat_remove),
++ .suspend = jz_bat_suspend,
++ .resume = jz_bat_resume,
++ .driver = {
++ .name = "jz4740-battery",
++ .owner = THIS_MODULE,
++ },
++};
++
++static int __init jz_bat_init(void)
++{
++ return platform_driver_register(&jz_bat_driver);
++}
++module_init(jz_bat_init);
++
++static void __exit jz_bat_exit(void)
++{
++ platform_driver_unregister(&jz_bat_driver);
++}
++module_exit(jz_bat_exit);
++
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("Jiejing Zhang <kzjeef@gmail.com>");
++MODULE_DESCRIPTION("JZ4720/JZ4740 SoC battery driver");
+diff -ruN linux-2.6.31-vanilla/drivers/rtc/rtc-jz4740.c linux-2.6.31/drivers/rtc/rtc-jz4740.c
+--- linux-2.6.31-vanilla/drivers/rtc/rtc-jz4740.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/drivers/rtc/rtc-jz4740.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,325 @@
++/*
++ * Copyright (C) 2009, Lars-Peter Clausen <lars@metafoo.de>
++ * JZ4720/JZ4740 SoC RTC driver
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/platform_device.h>
++#include <linux/spinlock.h>
++#include <linux/rtc.h>
++
++#define JZ_REG_RTC_CTRL 0x00
++#define JZ_REG_RTC_SEC 0x04
++#define JZ_REG_RTC_SEC_ALARM 0x08
++#define JZ_REG_REGULATOR 0x0C
++
++#define JZ_RTC_CTRL_WRDY BIT(7)
++#define JZ_RTC_CTRL_1HZ BIT(6)
++#define JZ_RTC_CTRL_1HZ_IRQ BIT(5)
++#define JZ_RTC_CTRL_AF BIT(4)
++#define JZ_RTC_CTRL_AF_IRQ BIT(3)
++#define JZ_RTC_CTRL_AE BIT(2)
++#define JZ_RTC_CTRL_ENABLE BIT(0)
++
++struct jz4740_rtc {
++ struct resource *mem;
++ void __iomem *base;
++
++ struct rtc_device *rtc;
++
++ unsigned int irq;
++
++ spinlock_t lock;
++};
++
++static inline uint32_t jz4740_rtc_reg_read(struct jz4740_rtc *rtc, size_t reg)
++{
++ return readl(rtc->base + reg);
++}
++
++static inline void jz4740_rtc_wait_write_ready(struct jz4740_rtc *rtc)
++{
++ uint32_t ctrl;
++ do {
++ ctrl = jz4740_rtc_reg_read(rtc, JZ_REG_RTC_CTRL);
++ } while (!(ctrl & JZ_RTC_CTRL_WRDY));
++}
++
++
++static inline void jz4740_rtc_reg_write(struct jz4740_rtc *rtc, size_t reg,
++ uint32_t val)
++{
++ jz4740_rtc_wait_write_ready(rtc);
++ writel(val, rtc->base + reg);
++}
++
++static void jz4740_rtc_ctrl_set_bits(struct jz4740_rtc *rtc, uint32_t mask,
++ uint32_t val)
++{
++ unsigned long flags;
++ uint32_t ctrl;
++
++ spin_lock_irqsave(&rtc->lock, flags);
++
++ ctrl = jz4740_rtc_reg_read(rtc, JZ_REG_RTC_CTRL);
++
++ /* Don't clear interrupt flags by accident */
++ ctrl |= JZ_RTC_CTRL_1HZ | JZ_RTC_CTRL_AF;
++
++ ctrl &= ~mask;
++ ctrl |= val;
++
++ jz4740_rtc_reg_write(rtc, JZ_REG_RTC_CTRL, ctrl);
++
++ spin_unlock_irqrestore(&rtc->lock, flags);
++}
++
++static inline struct jz4740_rtc *dev_to_rtc(struct device *dev)
++{
++ return dev_get_drvdata(dev);
++}
++
++static int jz4740_rtc_read_time(struct device *dev, struct rtc_time *time)
++{
++ struct jz4740_rtc *rtc = dev_to_rtc(dev);
++ uint32_t secs, secs2;
++
++ secs = jz4740_rtc_reg_read(rtc, JZ_REG_RTC_SEC);
++ secs2 = jz4740_rtc_reg_read(rtc, JZ_REG_RTC_SEC);
++
++ while (secs != secs2) {
++ secs = secs2;
++ secs2 = jz4740_rtc_reg_read(rtc, JZ_REG_RTC_SEC);
++ }
++
++ rtc_time_to_tm(secs, time);
++
++ return rtc_valid_tm(time);
++}
++
++static int jz4740_rtc_set_mmss(struct device *dev, unsigned long secs)
++{
++ struct jz4740_rtc *rtc = dev_to_rtc(dev);
++
++ if ((uint32_t)secs != secs)
++ return -EINVAL;
++
++ jz4740_rtc_reg_write(rtc, JZ_REG_RTC_SEC, secs);
++
++ return 0;
++}
++
++static int jz4740_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
++{
++ struct jz4740_rtc *rtc = dev_to_rtc(dev);
++ uint32_t secs, secs2;
++ uint32_t ctrl;
++
++ secs = jz4740_rtc_reg_read(rtc, JZ_REG_RTC_SEC_ALARM);
++ secs2 = jz4740_rtc_reg_read(rtc, JZ_REG_RTC_SEC_ALARM);
++
++ while (secs != secs2){
++ secs = secs2;
++ secs2 = jz4740_rtc_reg_read(rtc, JZ_REG_RTC_SEC_ALARM);
++ }
++
++ ctrl = jz4740_rtc_reg_read(rtc, JZ_REG_RTC_CTRL);
++
++ alrm->enabled = !!(ctrl & JZ_RTC_CTRL_AE);
++ alrm->pending = !!(ctrl & JZ_RTC_CTRL_AF);
++
++ rtc_time_to_tm(secs, &alrm->time);
++
++ return rtc_valid_tm(&alrm->time);
++}
++
++static int jz4740_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
++{
++ struct jz4740_rtc *rtc = dev_to_rtc(dev);
++ unsigned long secs;
++
++ rtc_tm_to_time(&alrm->time, &secs);
++
++ if ((uint32_t)secs != secs)
++ return -EINVAL;
++
++ jz4740_rtc_reg_write(rtc, JZ_REG_RTC_SEC_ALARM, (uint32_t)secs);
++ jz4740_rtc_ctrl_set_bits(rtc, JZ_RTC_CTRL_AE,
++ alrm->enabled ? JZ_RTC_CTRL_AE : 0);
++
++ return 0;
++}
++
++static int jz4740_rtc_update_irq_enable(struct device *dev, unsigned int enabled)
++{
++ struct jz4740_rtc *rtc = dev_to_rtc(dev);
++ jz4740_rtc_ctrl_set_bits(rtc, JZ_RTC_CTRL_1HZ_IRQ,
++ enabled ? JZ_RTC_CTRL_1HZ_IRQ : 0);
++ return 0;
++}
++
++
++static int jz4740_rtc_alarm_irq_enable(struct device *dev, unsigned int enabled)
++{
++ struct jz4740_rtc *rtc = dev_to_rtc(dev);
++ jz4740_rtc_ctrl_set_bits(rtc, JZ_RTC_CTRL_AF_IRQ,
++ enabled ? JZ_RTC_CTRL_AF_IRQ : 0);
++ return 0;
++}
++
++static struct rtc_class_ops jz4740_rtc_ops = {
++ .read_time = jz4740_rtc_read_time,
++ .set_mmss = jz4740_rtc_set_mmss,
++ .read_alarm = jz4740_rtc_read_alarm,
++ .set_alarm = jz4740_rtc_set_alarm,
++ .update_irq_enable = jz4740_rtc_update_irq_enable,
++ .alarm_irq_enable = jz4740_rtc_alarm_irq_enable,
++};
++
++static irqreturn_t jz4740_rtc_irq(int irq, void *data)
++{
++ struct jz4740_rtc *rtc = data;
++ uint32_t ctrl;
++ unsigned long events = 0;
++ ctrl = jz4740_rtc_reg_read(rtc, JZ_REG_RTC_CTRL);
++
++ if (ctrl & JZ_RTC_CTRL_1HZ)
++ events |= (RTC_UF | RTC_IRQF);
++
++ if (ctrl & JZ_RTC_CTRL_AF)
++ events |= (RTC_AF | RTC_IRQF);
++
++ rtc_update_irq(rtc->rtc, 1, events);
++
++ jz4740_rtc_ctrl_set_bits(rtc, JZ_RTC_CTRL_1HZ | JZ_RTC_CTRL_AF, 0);
++
++ return IRQ_HANDLED;
++}
++
++static int __devinit jz4740_rtc_probe(struct platform_device *pdev)
++{
++ int ret;
++ struct jz4740_rtc *rtc;
++
++ rtc = kmalloc(sizeof(*rtc), GFP_KERNEL);
++
++ rtc->irq = platform_get_irq(pdev, 0);
++
++ if (rtc->irq < 0) {
++ ret = -ENOENT;
++ dev_err(&pdev->dev, "Failed to get platform irq\n");
++ goto err_free;
++ }
++
++ rtc->mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ if (!rtc->mem) {
++ ret = -ENOENT;
++ dev_err(&pdev->dev, "Failed to get platform mmio memory\n");
++ goto err_free;
++ }
++
++ rtc->mem = request_mem_region(rtc->mem->start, resource_size(rtc->mem),
++ pdev->name);
++
++ if (!rtc->mem) {
++ ret = -EBUSY;
++ dev_err(&pdev->dev, "Failed to request mmio memory region\n");
++ goto err_free;
++ }
++
++ rtc->base = ioremap_nocache(rtc->mem->start, resource_size(rtc->mem));
++
++ if (!rtc->base) {
++ ret = -EBUSY;
++ dev_err(&pdev->dev, "Failed to ioremap mmio memory\n");
++ goto err_release_mem_region;
++ }
++
++ platform_set_drvdata(pdev, rtc);
++
++ rtc->rtc = rtc_device_register(pdev->name, &pdev->dev, &jz4740_rtc_ops,
++ THIS_MODULE);
++
++ if (IS_ERR(rtc->rtc)) {
++ ret = PTR_ERR(rtc->rtc);
++ dev_err(&pdev->dev, "Failed to register rtc device: %d\n", ret);
++ goto err_iounmap;
++ }
++
++ ret = request_irq(rtc->irq, jz4740_rtc_irq, 0,
++ pdev->name, rtc);
++
++ if (ret) {
++ dev_err(&pdev->dev, "Failed to request rtc irq: %d\n", ret);
++ goto err_unregister_rtc;
++ }
++ printk("rtc-ctrl: %d\n", jz4740_rtc_reg_read(rtc, JZ_REG_RTC_CTRL));
++
++ return 0;
++
++err_unregister_rtc:
++ rtc_device_unregister(rtc->rtc);
++err_iounmap:
++ platform_set_drvdata(pdev, NULL);
++ iounmap(rtc->base);
++err_release_mem_region:
++ release_mem_region(rtc->mem->start, resource_size(rtc->mem));
++err_free:
++ kfree(rtc);
++
++ return ret;
++}
++
++static int __devexit jz4740_rtc_remove(struct platform_device *pdev)
++{
++ struct jz4740_rtc *rtc = platform_get_drvdata(pdev);
++
++ rtc_device_unregister(rtc->rtc);
++
++ iounmap(rtc->base);
++ release_mem_region(rtc->mem->start, resource_size(rtc->mem));
++
++ kfree(rtc);
++
++ platform_set_drvdata(pdev, NULL);
++
++ return 0;
++}
++
++struct platform_driver jz4740_rtc_driver = {
++ .probe = jz4740_rtc_probe,
++ .remove = __devexit_p(jz4740_rtc_remove),
++ .driver = {
++ .name = "jz4740-rtc",
++ .owner = THIS_MODULE,
++ },
++};
++
++static int __init jz4740_rtc_init(void)
++{
++ return platform_driver_register(&jz4740_rtc_driver);
++}
++module_init(jz4740_rtc_init);
++
++static void __exit jz4740_rtc_exit(void)
++{
++ platform_driver_unregister(&jz4740_rtc_driver);
++}
++module_exit(jz4740_rtc_exit);
++
++MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>");
++MODULE_LICENSE("GPL");
++MODULE_DESCRIPTION("RTC driver for the JZ4720/JZ4740 SoC\n");
++MODULE_ALIAS("platform:jz4740-rtc");
++MODULE_ALIAS("platform:jz4720-rtc");
+diff -ruN linux-2.6.31-vanilla/drivers/usb/gadget/jz4740_udc.c linux-2.6.31/drivers/usb/gadget/jz4740_udc.c
+--- linux-2.6.31-vanilla/drivers/usb/gadget/jz4740_udc.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/drivers/usb/gadget/jz4740_udc.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,2337 @@
++/*
++ * linux/drivers/usb/gadget/jz4740_udc.c
++ *
++ * Ingenic JZ4740 on-chip high speed USB device controller
++ *
++ * Copyright (C) 2006 - 2008 Ingenic Semiconductor Inc.
++ * Author: <jlwei@ingenic.cn>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ */
++
++/*
++ * This device has ep0, two bulk-in/interrupt-in endpoints, and one bulk-out endpoint.
++ *
++ * - Endpoint numbering is fixed: ep0, ep1in-int, ep2in-bulk, ep1out-bulk.
++ * - DMA works with bulk-in (channel 1) and bulk-out (channel 2) endpoints.
++ */
++
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/platform_device.h>
++#include <linux/delay.h>
++#include <linux/ioport.h>
++#include <linux/slab.h>
++#include <linux/errno.h>
++#include <linux/init.h>
++#include <linux/list.h>
++#include <linux/interrupt.h>
++#include <linux/proc_fs.h>
++#include <linux/usb.h>
++#include <linux/usb/gadget.h>
++
++#include <asm/byteorder.h>
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <asm/system.h>
++#include <asm/jzsoc.h>
++
++#include "jz4740_udc.h"
++
++#define JZ_REG_UDC_FADDR 0x00 /* Function Address 8-bit */
++#define JZ_REG_UDC_POWER 0x01 /* Power Managemetn 8-bit */
++#define JZ_REG_UDC_INTRIN 0x02 /* Interrupt IN 16-bit */
++#define JZ_REG_UDC_INTROUT 0x04 /* Interrupt OUT 16-bit */
++#define JZ_REG_UDC_INTRINE 0x06 /* Intr IN enable 16-bit */
++#define JZ_REG_UDC_INTROUTE 0x08 /* Intr OUT enable 16-bit */
++#define JZ_REG_UDC_INTRUSB 0x0a /* Interrupt USB 8-bit */
++#define JZ_REG_UDC_INTRUSBE 0x0b /* Interrupt USB Enable 8-bit */
++#define JZ_REG_UDC_FRAME 0x0c /* Frame number 16-bit */
++#define JZ_REG_UDC_INDEX 0x0e /* Index register 8-bit */
++#define JZ_REG_UDC_TESTMODE 0x0f /* USB test mode 8-bit */
++
++#define JZ_REG_UDC_CSR0 0x12 /* EP0 CSR 8-bit */
++#define JZ_REG_UDC_INMAXP 0x10 /* EP1-2 IN Max Pkt Size 16-bit */
++#define JZ_REG_UDC_INCSR 0x12 /* EP1-2 IN CSR LSB 8/16bit */
++#define JZ_REG_UDC_INCSRH 0x13 /* EP1-2 IN CSR MSB 8-bit */
++#define JZ_REG_UDC_OUTMAXP 0x14 /* EP1 OUT Max Pkt Size 16-bit */
++#define JZ_REG_UDC_OUTCSR 0x16 /* EP1 OUT CSR LSB 8/16bit */
++#define JZ_REG_UDC_OUTCSRH 0x17 /* EP1 OUT CSR MSB 8-bit */
++#define JZ_REG_UDC_OUTCOUNT 0x18 /* bytes in EP0/1 OUT FIFO 16-bit */
++
++#define JZ_REG_UDC_EP_FIFO(x) (4 * (x) + 0x20)
++
++#define JZ_REG_UDC_EPINFO 0x78 /* Endpoint information */
++#define JZ_REG_UDC_RAMINFO 0x79 /* RAM information */
++
++#define JZ_REG_UDC_INTR 0x200 /* DMA pending interrupts */
++#define JZ_REG_UDC_CNTL1 0x204 /* DMA channel 1 control */
++#define JZ_REG_UDC_ADDR1 0x208 /* DMA channel 1 AHB memory addr */
++#define JZ_REG_UDC_COUNT1 0x20c /* DMA channel 1 byte count */
++#define JZ_REG_UDC_CNTL2 0x214 /* DMA channel 2 control */
++#define JZ_REG_UDC_ADDR2 0x218 /* DMA channel 2 AHB memory addr */
++#define JZ_REG_UDC_COUNT2 0x21c /* DMA channel 2 byte count */
++
++#ifndef DEBUG
++# define DEBUG(fmt,args...) do {} while(0)
++#endif
++#ifndef DEBUG_EP0
++# define NO_STATES
++# define DEBUG_EP0(fmt,args...) do {} while(0)
++#endif
++#ifndef DEBUG_SETUP
++# define DEBUG_SETUP(fmt,args...) do {} while(0)
++#endif
++
++static unsigned int udc_debug = 0; /* 0: normal mode, 1: test udc cable type mode */
++
++module_param(udc_debug, int, 0);
++MODULE_PARM_DESC(udc_debug, "test udc cable or power type");
++
++static unsigned int use_dma = 0; /* 1: use DMA, 0: use PIO */
++
++module_param(use_dma, int, 0);
++MODULE_PARM_DESC(use_dma, "DMA mode enable flag");
++
++struct jz4740_udc *the_controller;
++
++/*
++ * Local declarations.
++ */
++static void jz4740_ep0_kick(struct jz4740_udc *dev, struct jz4740_ep *ep);
++static void jz4740_handle_ep0(struct jz4740_udc *dev, uint32_t intr);
++
++static void done(struct jz4740_ep *ep, struct jz4740_request *req,
++ int status);
++static void pio_irq_enable(struct jz4740_ep *ep);
++static void pio_irq_disable(struct jz4740_ep *ep);
++static void stop_activity(struct jz4740_udc *dev,
++ struct usb_gadget_driver *driver);
++static void nuke(struct jz4740_ep *ep, int status);
++static void flush(struct jz4740_ep *ep);
++static void udc_set_address(struct jz4740_udc *dev, unsigned char address);
++
++/*-------------------------------------------------------------------------*/
++
++/* inline functions of register read/write/set/clear */
++
++static inline uint8_t usb_readb(struct jz4740_udc *udc, size_t reg)
++{
++ return readb(udc->base + reg);
++}
++
++static inline uint16_t usb_readw(struct jz4740_udc *udc, size_t reg)
++{
++ return readw(udc->base + reg);
++}
++
++static inline uint32_t usb_readl(struct jz4740_udc *udc, size_t reg)
++{
++ return readl(udc->base + reg);
++}
++
++static inline void usb_writeb(struct jz4740_udc *udc, size_t reg, uint8_t val)
++{
++ writeb(val, udc->base + reg);
++}
++
++static inline void usb_writew(struct jz4740_udc *udc, size_t reg, uint16_t val)
++{
++ writew(val, udc->base + reg);
++}
++
++static inline void usb_writel(struct jz4740_udc *udc, size_t reg, uint32_t val)
++{
++ writel(val, udc->base + reg);
++}
++
++static inline void usb_setb(struct jz4740_udc *udc, size_t reg, uint8_t mask)
++{
++ usb_writeb(udc, reg, usb_readb(udc, reg) | mask);
++}
++
++static inline void usb_setw(struct jz4740_udc *udc, size_t reg, uint8_t mask)
++{
++ usb_writew(udc, reg, usb_readw(udc, reg) | mask);
++}
++
++static inline void usb_setl(struct jz4740_udc *udc, size_t reg, uint32_t mask)
++{
++ usb_writel(udc, reg, usb_readl(udc, reg) | mask);
++}
++
++static inline void usb_clearb(struct jz4740_udc *udc, size_t reg, uint8_t mask)
++{
++ usb_writeb(udc, reg, usb_readb(udc, reg) & ~mask);
++}
++
++static inline void usb_clearw(struct jz4740_udc *udc, size_t reg, uint16_t mask)
++{
++ usb_writew(udc, reg, usb_readw(udc, reg) & ~mask);
++}
++
++static inline void usb_clearl(struct jz4740_udc *udc, size_t reg, uint32_t mask)
++{
++ usb_writel(udc, reg, usb_readl(udc, reg) & ~mask);
++}
++
++/*-------------------------------------------------------------------------*/
++
++static inline void jz_udc_set_index(struct jz4740_udc *udc, uint8_t index)
++{
++ usb_writeb(udc, JZ_REG_UDC_INDEX, index);
++}
++
++static inline void jz_udc_select_ep(struct jz4740_ep *ep)
++{
++ jz_udc_set_index(ep->dev, ep_index(ep));
++}
++
++static inline int write_packet(struct jz4740_ep *ep,
++ struct jz4740_request *req, int max)
++{
++ uint8_t *buf;
++ int length, nlong, nbyte;
++ DEBUG("%s:%s[%d]\n", __FILE__, __func__, __LINE__);
++
++ buf = req->req.buf + req->req.actual;
++ prefetch(buf);
++
++ length = req->req.length - req->req.actual;
++ length = min(length, max);
++ req->req.actual += length;
++
++ DEBUG("Write %d (max %d), fifo %x\n", length, max, ep->fifo);
++
++ nlong = length >> 2;
++ nbyte = length & 0x3;
++ while (nlong--) {
++ usb_writel(ep->dev, ep->fifo, *((uint32_t *)buf));
++ buf += 4;
++ }
++ while (nbyte--) {
++ usb_writeb(ep->dev, ep->fifo, *buf++);
++ }
++
++ return length;
++}
++
++static inline int read_packet(struct jz4740_ep *ep,
++ struct jz4740_request *req, int count)
++{
++ uint8_t *buf;
++ int length, nlong, nbyte;
++ DEBUG("%s:%s[%d]\n", __FILE__, __func__, __LINE__);
++
++ buf = req->req.buf + req->req.actual;
++ prefetchw(buf);
++
++ length = req->req.length - req->req.actual;
++ length = min(length, count);
++ req->req.actual += length;
++
++ DEBUG("Read %d, fifo %x\n", length, ep->fifo);
++
++ nlong = length >> 2;
++ nbyte = length & 0x3;
++ while (nlong--) {
++ *((uint32_t *)buf) = usb_readl(ep->dev, ep->fifo);
++ buf += 4;
++ }
++ while (nbyte--) {
++ *buf++ = usb_readb(ep->dev, ep->fifo);
++ }
++
++ return length;
++}
++
++/*-------------------------------------------------------------------------*/
++
++/*
++ * udc_disable - disable USB device controller
++ */
++static void udc_disable(struct jz4740_udc *dev)
++{
++ DEBUG("%s:%s[%d]\n", __FILE__, __func__, __LINE__);
++
++ udc_set_address(dev, 0);
++
++ /* Disable interrupts */
++ usb_writew(dev, JZ_REG_UDC_INTRINE, 0);
++ usb_writew(dev, JZ_REG_UDC_INTROUTE, 0);
++ usb_writeb(dev, JZ_REG_UDC_INTRUSBE, 0);
++
++ /* Disable DMA */
++ usb_writel(dev, JZ_REG_UDC_CNTL1, 0);
++ usb_writel(dev, JZ_REG_UDC_CNTL2, 0);
++
++ /* Disconnect from usb */
++ usb_clearb(dev, JZ_REG_UDC_POWER, USB_POWER_SOFTCONN);
++
++ /* Disable the USB PHY */
++#ifdef CONFIG_SOC_JZ4740
++ REG_CPM_SCR &= ~CPM_SCR_USBPHY_ENABLE;
++#elif defined(CONFIG_SOC_JZ4750) || defined(CONFIG_SOC_JZ4750D)
++ REG_CPM_OPCR &= ~CPM_OPCR_UDCPHY_ENABLE;
++#endif
++
++ dev->ep0state = WAIT_FOR_SETUP;
++ dev->gadget.speed = USB_SPEED_UNKNOWN;
++
++ return;
++}
++
++/*
++ * udc_reinit - initialize software state
++ */
++static void udc_reinit(struct jz4740_udc *dev)
++{
++ int i;
++ DEBUG("%s:%s[%d]\n", __FILE__, __func__, __LINE__);
++
++ /* device/ep0 records init */
++ INIT_LIST_HEAD(&dev->gadget.ep_list);
++ INIT_LIST_HEAD(&dev->gadget.ep0->ep_list);
++ dev->ep0state = WAIT_FOR_SETUP;
++
++ for (i = 0; i < UDC_MAX_ENDPOINTS; i++) {
++ struct jz4740_ep *ep = &dev->ep[i];
++
++ if (i != 0)
++ list_add_tail(&ep->ep.ep_list, &dev->gadget.ep_list);
++
++ INIT_LIST_HEAD(&ep->queue);
++ ep->desc = 0;
++ ep->stopped = 0;
++ ep->pio_irqs = 0;
++ }
++}
++
++/* until it's enabled, this UDC should be completely invisible
++ * to any USB host.
++ */
++static void udc_enable(struct jz4740_udc *dev)
++{
++ int i;
++ DEBUG("%s:%s[%d]\n", __FILE__, __func__, __LINE__);
++
++ /* UDC state is incorrect - Added by River */
++ if (dev->state != UDC_STATE_ENABLE) {
++ return;
++ }
++
++ dev->gadget.speed = USB_SPEED_UNKNOWN;
++
++ /* Flush FIFO for each */
++ for (i = 0; i < UDC_MAX_ENDPOINTS; i++) {
++ struct jz4740_ep *ep = &dev->ep[i];
++
++ jz_udc_set_index(dev, ep_index(ep));
++ flush(ep);
++ }
++
++ /* Set this bit to allow the UDC entering low-power mode when
++ * there are no actions on the USB bus.
++ * UDC still works during this bit was set.
++ */
++ __cpm_stop_udc();
++
++ /* Enable the USB PHY */
++#ifdef CONFIG_SOC_JZ4740
++ REG_CPM_SCR |= CPM_SCR_USBPHY_ENABLE;
++#elif defined(CONFIG_SOC_JZ4750) || defined(CONFIG_SOC_JZ4750D)
++ REG_CPM_OPCR |= CPM_OPCR_UDCPHY_ENABLE;
++#endif
++
++ /* Disable interrupts */
++/* usb_writew(dev, JZ_REG_UDC_INTRINE, 0);
++ usb_writew(dev, JZ_REG_UDC_INTROUTE, 0);
++ usb_writeb(dev, JZ_REG_UDC_INTRUSBE, 0);*/
++
++ /* Enable interrupts */
++ usb_setw(dev, JZ_REG_UDC_INTRINE, USB_INTR_EP0);
++ usb_setb(dev, JZ_REG_UDC_INTRUSBE, USB_INTR_RESET);
++ /* Don't enable rest of the interrupts */
++ /* usb_setw(dev, JZ_REG_UDC_INTRINE, USB_INTR_INEP1 | USB_INTR_INEP2);
++ usb_setw(dev, JZ_REG_UDC_INTROUTE, USB_INTR_OUTEP1); */
++
++ /* Enable SUSPEND */
++ /* usb_setb(dev, JZ_REG_UDC_POWER, USB_POWER_SUSPENDM); */
++
++ /* Enable HS Mode */
++ usb_setb(dev, JZ_REG_UDC_POWER, USB_POWER_HSENAB);
++
++ /* Let host detect UDC:
++ * Software must write a 1 to the PMR:USB_POWER_SOFTCONN bit to turn this
++ * transistor on and pull the USBDP pin HIGH.
++ */
++ usb_setb(dev, JZ_REG_UDC_POWER, USB_POWER_SOFTCONN);
++
++ return;
++}
++
++/*-------------------------------------------------------------------------*/
++
++/* keeping it simple:
++ * - one bus driver, initted first;
++ * - one function driver, initted second
++ */
++
++/*
++ * Register entry point for the peripheral controller driver.
++ */
++
++int usb_gadget_register_driver(struct usb_gadget_driver *driver)
++{
++ struct jz4740_udc *dev = the_controller;
++ int retval;
++
++ if (!driver || !driver->bind) {
++ return -EINVAL;
++ }
++
++ if (!dev) {
++ return -ENODEV;
++ }
++
++ if (dev->driver) {
++ return -EBUSY;
++ }
++
++ /* hook up the driver */
++ dev->driver = driver;
++ dev->gadget.dev.driver = &driver->driver;
++
++ retval = driver->bind(&dev->gadget);
++ if (retval) {
++ DEBUG("%s: bind to driver %s --> error %d\n", dev->gadget.name,
++ driver->driver.name, retval);
++ dev->driver = 0;
++ return retval;
++ }
++
++ /* then enable host detection and ep0; and we're ready
++ * for set_configuration as well as eventual disconnect.
++ */
++ udc_enable(dev);
++
++ DEBUG("%s: registered gadget driver '%s'\n", dev->gadget.name,
++ driver->driver.name);
++
++ return 0;
++}
++
++EXPORT_SYMBOL(usb_gadget_register_driver);
++
++static void stop_activity(struct jz4740_udc *dev,
++ struct usb_gadget_driver *driver)
++{
++ int i;
++
++ DEBUG("%s:%s[%d]\n", __FILE__, __func__, __LINE__);
++
++ /* don't disconnect drivers more than once */
++ if (dev->gadget.speed == USB_SPEED_UNKNOWN)
++ driver = 0;
++ dev->gadget.speed = USB_SPEED_UNKNOWN;
++
++ /* prevent new request submissions, kill any outstanding requests */
++ for (i = 0; i < UDC_MAX_ENDPOINTS; i++) {
++ struct jz4740_ep *ep = &dev->ep[i];
++
++ ep->stopped = 1;
++
++ jz_udc_set_index(dev, ep_index(ep));
++ nuke(ep, -ESHUTDOWN);
++ }
++
++ /* report disconnect; the driver is already quiesced */
++ if (driver) {
++ spin_unlock(&dev->lock);
++ driver->disconnect(&dev->gadget);
++ spin_lock(&dev->lock);
++ }
++
++ /* re-init driver-visible data structures */
++ udc_reinit(dev);
++}
++
++
++/*
++ * Unregister entry point for the peripheral controller driver.
++ */
++int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
++{
++ struct jz4740_udc *dev = the_controller;
++ unsigned long flags;
++ DEBUG("%s:%s[%d]\n", __FILE__, __func__, __LINE__);
++
++ if (!dev)
++ return -ENODEV;
++ if (!driver || driver != dev->driver)
++ return -EINVAL;
++ if (!driver->unbind)
++ return -EBUSY;
++
++ spin_lock_irqsave(&dev->lock, flags);
++ dev->driver = 0;
++ stop_activity(dev, driver);
++ spin_unlock_irqrestore(&dev->lock, flags);
++
++ driver->unbind(&dev->gadget);
++
++ udc_disable(dev);
++
++ DEBUG("unregistered driver '%s'\n", driver->driver.name);
++
++ return 0;
++}
++
++EXPORT_SYMBOL(usb_gadget_unregister_driver);
++
++/*-------------------------------------------------------------------------*/
++
++/*
++ * Starting DMA using mode 1
++ */
++static void kick_dma(struct jz4740_ep *ep, struct jz4740_request *req)
++{
++ struct jz4740_udc *dev = ep->dev;
++ uint32_t count = req->req.length;
++ uint32_t physaddr = virt_to_phys((void *)req->req.buf);
++
++ DEBUG("%s:%s[%d]\n", __FILE__, __func__, __LINE__);
++
++ jz_udc_select_ep(ep);
++
++ if (ep_is_in(ep)) { /* Bulk-IN transfer using DMA channel 1 */
++ ep->reg_addr = JZ_REG_UDC_ADDR1;
++
++ dma_cache_wback_inv((unsigned long)req->req.buf, count);
++
++ pio_irq_enable(ep);
++
++ usb_writeb(dev, JZ_REG_UDC_INCSRH,
++ USB_INCSRH_DMAREQENAB | USB_INCSRH_AUTOSET | USB_INCSRH_DMAREQMODE);
++
++ usb_writel(dev, JZ_REG_UDC_ADDR1, physaddr);
++ usb_writel(dev, JZ_REG_UDC_COUNT1, count);
++ usb_writel(dev, JZ_REG_UDC_CNTL1, USB_CNTL_ENA | USB_CNTL_DIR_IN | USB_CNTL_MODE_1 |
++ USB_CNTL_INTR_EN | USB_CNTL_BURST_16 | USB_CNTL_EP(ep_index(ep)));
++ }
++ else { /* Bulk-OUT transfer using DMA channel 2 */
++ ep->reg_addr = JZ_REG_UDC_ADDR2;
++
++ dma_cache_wback_inv((unsigned long)req->req.buf, count);
++
++ pio_irq_enable(ep);
++
++ usb_setb(dev, JZ_REG_UDC_OUTCSRH,
++ USB_OUTCSRH_DMAREQENAB | USB_OUTCSRH_AUTOCLR | USB_OUTCSRH_DMAREQMODE);
++
++ usb_writel(dev, JZ_REG_UDC_ADDR2, physaddr);
++ usb_writel(dev, JZ_REG_UDC_COUNT2, count);
++ usb_writel(dev, JZ_REG_UDC_CNTL2, USB_CNTL_ENA | USB_CNTL_MODE_1 |
++ USB_CNTL_INTR_EN | USB_CNTL_BURST_16 | USB_CNTL_EP(ep_index(ep)));
++ }
++}
++
++/*-------------------------------------------------------------------------*/
++
++/** Write request to FIFO (max write == maxp size)
++ * Return: 0 = still running, 1 = completed, negative = errno
++ * NOTE: INDEX register must be set for EP
++ */
++static int write_fifo(struct jz4740_ep *ep, struct jz4740_request *req)
++{
++ struct jz4740_udc *dev = ep->dev;
++ uint32_t max, csr;
++ uint32_t physaddr = virt_to_phys((void *)req->req.buf);
++
++ DEBUG("%s:%s[%d]\n", __FILE__, __func__, __LINE__);
++ max = le16_to_cpu(ep->desc->wMaxPacketSize);
++
++ if (use_dma) {
++ uint32_t dma_count;
++
++ /* DMA interrupt generated due to the last packet loaded into the FIFO */
++
++ dma_count = usb_readl(dev, ep->reg_addr) - physaddr;
++ req->req.actual += dma_count;
++
++ if (dma_count % max) {
++ /* If the last packet is less than MAXP, set INPKTRDY manually */
++ usb_setb(dev, ep->csr, USB_INCSR_INPKTRDY);
++ }
++
++ done(ep, req, 0);
++ if (list_empty(&ep->queue)) {
++ pio_irq_disable(ep);
++ return 1;
++ }
++ else {
++ /* advance the request queue */
++ req = list_entry(ep->queue.next, struct jz4740_request, queue);
++ kick_dma(ep, req);
++ return 0;
++ }
++ }
++
++ /*
++ * PIO mode handling starts here ...
++ */
++
++ csr = usb_readb(dev, ep->csr);
++
++ if (!(csr & USB_INCSR_FFNOTEMPT)) {
++ unsigned count;
++ int is_last, is_short;
++
++ count = write_packet(ep, req, max);
++ usb_setb(dev, ep->csr, USB_INCSR_INPKTRDY);
++
++ /* last packet is usually short (or a zlp) */
++ if (unlikely(count != max))
++ is_last = is_short = 1;
++ else {
++ if (likely(req->req.length != req->req.actual)
++ || req->req.zero)
++ is_last = 0;
++ else
++ is_last = 1;
++ /* interrupt/iso maxpacket may not fill the fifo */
++ is_short = unlikely(max < ep_maxpacket(ep));
++ }
++
++ DEBUG("%s: wrote %s %d bytes%s%s %d left %p\n", __FUNCTION__,
++ ep->ep.name, count,
++ is_last ? "/L" : "", is_short ? "/S" : "",
++ req->req.length - req->req.actual, req);
++
++ /* requests complete when all IN data is in the FIFO */
++ if (is_last) {
++ done(ep, req, 0);
++ if (list_empty(&ep->queue)) {
++ pio_irq_disable(ep);
++ }
++ return 1;
++ }
++ } else {
++ DEBUG("Hmm.. %d ep FIFO is not empty!\n", ep_index(ep));
++ }
++
++ return 0;
++}
++
++/** Read to request from FIFO (max read == bytes in fifo)
++ * Return: 0 = still running, 1 = completed, negative = errno
++ * NOTE: INDEX register must be set for EP
++ */
++static int read_fifo(struct jz4740_ep *ep, struct jz4740_request *req)
++{
++ struct jz4740_udc *dev = ep->dev;
++ uint32_t csr;
++ unsigned count, is_short;
++ uint32_t physaddr = virt_to_phys((void *)req->req.buf);
++
++ if (use_dma) {
++ uint32_t dma_count;
++
++ /* DMA interrupt generated due to a packet less than MAXP loaded into the FIFO */
++
++ dma_count = usb_readl(dev, ep->reg_addr) - physaddr;
++ req->req.actual += dma_count;
++
++ /* Disable interrupt and DMA */
++ pio_irq_disable(ep);
++ usb_writel(dev, JZ_REG_UDC_CNTL2, 0);
++
++ /* Read all bytes from this packet */
++ count = usb_readw(dev, JZ_REG_UDC_OUTCOUNT);
++ count = read_packet(ep, req, count);
++
++ if (count) {
++ /* If the last packet is greater than zero, clear OUTPKTRDY manually */
++ usb_clearb(dev, ep->csr, USB_OUTCSR_OUTPKTRDY);
++ }
++ done(ep, req, 0);
++
++ if (!list_empty(&ep->queue)) {
++ /* advance the request queue */
++ req = list_entry(ep->queue.next, struct jz4740_request, queue);
++ kick_dma(ep, req);
++ }
++
++ return 1;
++ }
++
++ /*
++ * PIO mode handling starts here ...
++ */
++
++ /* make sure there's a packet in the FIFO. */
++ csr = usb_readb(dev, ep->csr);
++ if (!(csr & USB_OUTCSR_OUTPKTRDY)) {
++ DEBUG("%s: Packet NOT ready!\n", __FUNCTION__);
++ return -EINVAL;
++ }
++
++ /* read all bytes from this packet */
++ count = usb_readw(dev, JZ_REG_UDC_OUTCOUNT);
++
++ is_short = (count < ep->ep.maxpacket);
++
++ count = read_packet(ep, req, count);
++
++ DEBUG("read %s %02x, %d bytes%s req %p %d/%d\n",
++ ep->ep.name, csr, count,
++ is_short ? "/S" : "", req, req->req.actual, req->req.length);
++
++ /* Clear OutPktRdy */
++ usb_clearb(dev, ep->csr, USB_OUTCSR_OUTPKTRDY);
++
++ /* completion */
++ if (is_short || req->req.actual == req->req.length) {
++ done(ep, req, 0);
++
++ if (list_empty(&ep->queue))
++ pio_irq_disable(ep);
++ return 1;
++ }
++
++ /* finished that packet. the next one may be waiting... */
++ return 0;
++}
++
++/*
++ * done - retire a request; caller blocked irqs
++ * INDEX register is preserved to keep same
++ */
++static void done(struct jz4740_ep *ep, struct jz4740_request *req, int status)
++{
++ unsigned int stopped = ep->stopped;
++ unsigned long flags;
++ uint32_t index;
++
++ DEBUG("%s, %p\n", __FUNCTION__, ep);
++ list_del_init(&req->queue);
++
++ if (likely(req->req.status == -EINPROGRESS))
++ req->req.status = status;
++ else
++ status = req->req.status;
++
++ if (status && status != -ESHUTDOWN)
++ DEBUG("complete %s req %p stat %d len %u/%u\n",
++ ep->ep.name, &req->req, status,
++ req->req.actual, req->req.length);
++
++ /* don't modify queue heads during completion callback */
++ ep->stopped = 1;
++ /* Read current index (completion may modify it) */
++ spin_lock_irqsave(&ep->dev->lock, flags);
++ index = usb_readb(ep->dev, JZ_REG_UDC_INDEX);
++
++ req->req.complete(&ep->ep, &req->req);
++
++ /* Restore index */
++ jz_udc_set_index(ep->dev, index);
++ spin_unlock_irqrestore(&ep->dev->lock, flags);
++ ep->stopped = stopped;
++}
++
++/** Enable EP interrupt */
++static void pio_irq_enable(struct jz4740_ep *ep)
++{
++ uint8_t index = ep_index(ep);
++ struct jz4740_udc *dev = ep->dev;
++ DEBUG("%s: EP%d %s\n", __FUNCTION__, ep_index(ep), ep_is_in(ep) ? "IN": "OUT");
++
++ if (ep_is_in(ep)) {
++ switch (index) {
++ case 1:
++ case 2:
++ usb_setw(dev, JZ_REG_UDC_INTRINE, BIT(index));
++ dev->in_mask |= BIT(index);
++ break;
++ default:
++ DEBUG("Unknown endpoint: %d\n", index);
++ break;
++ }
++ }
++ else {
++ switch (index) {
++ case 1:
++ usb_setw(dev, JZ_REG_UDC_INTROUTE, BIT(index));
++ dev->out_mask |= BIT(index);
++ break;
++ default:
++ DEBUG("Unknown endpoint: %d\n", index);
++ break;
++ }
++ }
++}
++
++/** Disable EP interrupt */
++static void pio_irq_disable(struct jz4740_ep *ep)
++{
++ uint8_t index = ep_index(ep);
++ struct jz4740_udc *dev = ep->dev;
++
++ DEBUG("%s: EP%d %s\n", __FUNCTION__, ep_index(ep), ep_is_in(ep) ? "IN": "OUT");
++
++ if (ep_is_in(ep)) {
++ switch (ep_index(ep)) {
++ case 1:
++ case 2:
++ usb_clearw(ep->dev, JZ_REG_UDC_INTRINE, BIT(index));
++ dev->in_mask &= ~BIT(index);
++ break;
++ default:
++ DEBUG("Unknown endpoint: %d\n", index);
++ break;
++ }
++ }
++ else {
++ switch (ep_index(ep)) {
++ case 1:
++ usb_clearw(ep->dev, JZ_REG_UDC_INTROUTE, BIT(index));
++ dev->out_mask &= ~BIT(index);
++ break;
++ default:
++ DEBUG("Unknown endpoint: %d\n", index);
++ break;
++ }
++ }
++}
++
++/*
++ * nuke - dequeue ALL requests
++ */
++static void nuke(struct jz4740_ep *ep, int status)
++{
++ struct jz4740_request *req;
++
++ DEBUG("%s, %p\n", __FUNCTION__, ep);
++
++ /* Flush FIFO */
++ flush(ep);
++
++ /* called with irqs blocked */
++ while (!list_empty(&ep->queue)) {
++ req = list_entry(ep->queue.next, struct jz4740_request, queue);
++ done(ep, req, status);
++ }
++
++ /* Disable IRQ if EP is enabled (has descriptor) */
++ if (ep->desc)
++ pio_irq_disable(ep);
++}
++
++/** Flush EP FIFO
++ * NOTE: INDEX register must be set before this call
++ */
++static void flush(struct jz4740_ep *ep)
++{
++ DEBUG("%s: %s\n", __FUNCTION__, ep->ep.name);
++
++ switch (ep->type) {
++ case ep_bulk_in:
++ case ep_interrupt:
++ usb_setb(ep->dev, ep->csr, USB_INCSR_FF);
++ break;
++ case ep_bulk_out:
++ usb_setb(ep->dev, ep->csr, USB_OUTCSR_FF);
++ break;
++ case ep_control:
++ break;
++ }
++}
++
++/**
++ * jz4740_in_epn - handle IN interrupt
++ */
++static void jz4740_in_epn(struct jz4740_udc *dev, uint32_t ep_idx, uint32_t intr)
++{
++ uint32_t csr;
++ struct jz4740_ep *ep = &dev->ep[ep_idx + 1];
++ struct jz4740_request *req;
++ DEBUG("%s:%s[%d]\n", __FILE__, __func__, __LINE__);
++
++ jz_udc_set_index(dev, ep_index(ep));
++
++ csr = usb_readb(dev, ep->csr);
++ DEBUG("%s: %d, csr %x\n", __FUNCTION__, ep_idx, csr);
++
++ if (csr & USB_INCSR_SENTSTALL) {
++ DEBUG("USB_INCSR_SENTSTALL\n");
++ usb_clearb(dev, ep->csr, USB_INCSR_SENTSTALL);
++ return;
++ }
++
++ if (!ep->desc) {
++ DEBUG("%s: NO EP DESC\n", __FUNCTION__);
++ return;
++ }
++
++ if (list_empty(&ep->queue))
++ req = 0;
++ else
++ req = list_entry(ep->queue.next, struct jz4740_request, queue);
++
++ DEBUG("req: %p\n", req);
++
++ if (!req)
++ return;
++
++ write_fifo(ep, req);
++}
++
++/*
++ * Bulk OUT (recv)
++ */
++static void jz4740_out_epn(struct jz4740_udc *dev, uint32_t ep_idx, uint32_t intr)
++{
++ struct jz4740_ep *ep = &dev->ep[ep_idx];
++ struct jz4740_request *req;
++
++ DEBUG("%s: %d\n", __FUNCTION__, ep_idx);
++
++ jz_udc_set_index(dev, ep_index(ep));
++ if (ep->desc) {
++ uint32_t csr;
++
++ if (use_dma) {
++ /* DMA starts here ... */
++ if (list_empty(&ep->queue))
++ req = 0;
++ else
++ req = list_entry(ep->queue.next, struct jz4740_request, queue);
++
++ if (req)
++ read_fifo(ep, req);
++ return;
++ }
++
++ /*
++ * PIO mode starts here ...
++ */
++
++ while ((csr = usb_readb(dev, ep->csr)) &
++ (USB_OUTCSR_OUTPKTRDY | USB_OUTCSR_SENTSTALL)) {
++ DEBUG("%s: %x\n", __FUNCTION__, csr);
++
++ if (csr & USB_OUTCSR_SENTSTALL) {
++ DEBUG("%s: stall sent, flush fifo\n",
++ __FUNCTION__);
++ /* usb_set(USB_OUT_CSR1_FIFO_FLUSH, ep->csr1); */
++ flush(ep);
++ } else if (csr & USB_OUTCSR_OUTPKTRDY) {
++ if (list_empty(&ep->queue))
++ req = 0;
++ else
++ req =
++ list_entry(ep->queue.next,
++ struct jz4740_request,
++ queue);
++
++ if (!req) {
++ DEBUG("%s: NULL REQ %d\n",
++ __FUNCTION__, ep_idx);
++ break;
++ } else {
++ read_fifo(ep, req);
++ }
++ }
++ }
++ } else {
++ /* Throw packet away.. */
++ DEBUG("%s: ep %p ep_indx %d No descriptor?!?\n", __FUNCTION__, ep, ep_idx);
++ flush(ep);
++ }
++}
++
++/** Halt specific EP
++ * Return 0 if success
++ * NOTE: Sets INDEX register to EP !
++ */
++static int jz4740_set_halt(struct usb_ep *_ep, int value)
++{
++ struct jz4740_udc *dev;
++ struct jz4740_ep *ep;
++ unsigned long flags;
++
++ DEBUG("%s:%s[%d]\n", __FILE__, __func__, __LINE__);
++
++ ep = container_of(_ep, struct jz4740_ep, ep);
++ if (unlikely(!_ep || (!ep->desc && ep->type != ep_control))) {
++ DEBUG("%s, bad ep\n", __FUNCTION__);
++ return -EINVAL;
++ }
++
++ dev = ep->dev;
++
++ spin_lock_irqsave(&dev->lock, flags);
++
++ jz_udc_select_ep(ep);
++
++ DEBUG("%s, ep %d, val %d\n", __FUNCTION__, ep_index(ep), value);
++
++ if (ep_index(ep) == 0) {
++ /* EP0 */
++ usb_setb(dev, JZ_REG_UDC_CSR0, USB_CSR0_SENDSTALL);
++ } else if (ep_is_in(ep)) {
++ uint32_t csr = usb_readb(dev, ep->csr);
++ if (value && ((csr & USB_INCSR_FFNOTEMPT)
++ || !list_empty(&ep->queue))) {
++ /*
++ * Attempts to halt IN endpoints will fail (returning -EAGAIN)
++ * if any transfer requests are still queued, or if the controller
++ * FIFO still holds bytes that the host hasnÂ’t collected.
++ */
++ spin_unlock_irqrestore(&dev->lock, flags);
++ DEBUG
++ ("Attempt to halt IN endpoint failed (returning -EAGAIN) %d %d\n",
++ (csr & USB_INCSR_FFNOTEMPT),
++ !list_empty(&ep->queue));
++ return -EAGAIN;
++ }
++ flush(ep);
++ if (value) {
++ usb_setb(dev, ep->csr, USB_INCSR_SENDSTALL);
++ }
++ else {
++ usb_clearb(dev, ep->csr, USB_INCSR_SENDSTALL);
++ usb_setb(dev, ep->csr, USB_INCSR_CDT);
++ }
++ } else {
++
++ flush(ep);
++ if (value) {
++ usb_setb(dev, ep->csr, USB_OUTCSR_SENDSTALL);
++ }
++ else {
++ usb_clearb(dev, ep->csr, USB_OUTCSR_SENDSTALL);
++ usb_setb(dev, ep->csr, USB_OUTCSR_CDT);
++ }
++ }
++
++ if (value) {
++ ep->stopped = 1;
++ } else {
++ ep->stopped = 0;
++ }
++
++ spin_unlock_irqrestore(&dev->lock, flags);
++
++ DEBUG("%s %s halted\n", _ep->name, value == 0 ? "NOT" : "IS");
++
++ return 0;
++}
++
++
++static int jz4740_ep_enable(struct usb_ep *_ep,
++ const struct usb_endpoint_descriptor *desc)
++{
++ struct jz4740_ep *ep;
++ struct jz4740_udc *dev;
++ unsigned long flags;
++ uint32_t max, csrh = 0;
++
++ DEBUG("%s: trying to enable %s\n", __FUNCTION__, _ep->name);
++
++ if (!_ep || !desc)
++ return -EINVAL;
++
++ ep = container_of(_ep, struct jz4740_ep, ep);
++ if (ep->desc || ep->type == ep_control
++ || desc->bDescriptorType != USB_DT_ENDPOINT
++ || ep->bEndpointAddress != desc->bEndpointAddress) {
++ DEBUG("%s, bad ep or descriptor\n", __FUNCTION__);
++ return -EINVAL;
++ }
++
++ /* xfer types must match, except that interrupt ~= bulk */
++ if (ep->bmAttributes != desc->bmAttributes
++ && ep->bmAttributes != USB_ENDPOINT_XFER_BULK
++ && desc->bmAttributes != USB_ENDPOINT_XFER_INT) {
++ DEBUG("%s, %s type mismatch\n", __FUNCTION__, _ep->name);
++ return -EINVAL;
++ }
++
++ dev = ep->dev;
++ if (!dev->driver || dev->gadget.speed == USB_SPEED_UNKNOWN) {
++ DEBUG("%s, bogus device state\n", __FUNCTION__);
++ return -ESHUTDOWN;
++ }
++
++ max = le16_to_cpu(desc->wMaxPacketSize);
++
++ spin_lock_irqsave(&ep->dev->lock, flags);
++
++ /* Configure the endpoint */
++ jz_udc_set_index(dev, desc->bEndpointAddress & 0x0F);
++ if (ep_is_in(ep)) {
++ usb_writew(dev, JZ_REG_UDC_INMAXP, max);
++ switch (desc->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) {
++ case USB_ENDPOINT_XFER_BULK:
++ case USB_ENDPOINT_XFER_INT:
++ csrh &= ~USB_INCSRH_ISO;
++ break;
++ case USB_ENDPOINT_XFER_ISOC:
++ csrh |= USB_INCSRH_ISO;
++ break;
++ }
++ usb_writeb(dev, JZ_REG_UDC_INCSRH, csrh);
++ }
++ else {
++ usb_writew(dev, JZ_REG_UDC_OUTMAXP, max);
++ switch (desc->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) {
++ case USB_ENDPOINT_XFER_BULK:
++ csrh &= ~USB_OUTCSRH_ISO;
++ break;
++ case USB_ENDPOINT_XFER_INT:
++ csrh &= ~USB_OUTCSRH_ISO;
++ csrh |= USB_OUTCSRH_DNYT;
++ break;
++ case USB_ENDPOINT_XFER_ISOC:
++ csrh |= USB_OUTCSRH_ISO;
++ break;
++ }
++ usb_writeb(dev, JZ_REG_UDC_OUTCSRH, csrh);
++ }
++
++
++ ep->stopped = 0;
++ ep->desc = desc;
++ ep->pio_irqs = 0;
++ ep->ep.maxpacket = max;
++
++ spin_unlock_irqrestore(&ep->dev->lock, flags);
++
++ /* Reset halt state (does flush) */
++ jz4740_set_halt(_ep, 0);
++
++ DEBUG("%s: enabled %s\n", __FUNCTION__, _ep->name);
++
++ return 0;
++}
++
++/** Disable EP
++ * NOTE: Sets INDEX register
++ */
++static int jz4740_ep_disable(struct usb_ep *_ep)
++{
++ struct jz4740_ep *ep;
++ unsigned long flags;
++
++ DEBUG("%s, %p\n", __FUNCTION__, _ep);
++
++ ep = container_of(_ep, struct jz4740_ep, ep);
++ if (!_ep || !ep->desc) {
++ DEBUG("%s, %s not enabled\n", __FUNCTION__,
++ _ep ? ep->ep.name : NULL);
++ return -EINVAL;
++ }
++
++ spin_lock_irqsave(&ep->dev->lock, flags);
++
++ jz_udc_select_ep(ep);
++
++ /* Nuke all pending requests (does flush) */
++ nuke(ep, -ESHUTDOWN);
++
++ /* Disable ep IRQ */
++ pio_irq_disable(ep);
++
++ ep->desc = 0;
++ ep->stopped = 1;
++
++ spin_unlock_irqrestore(&ep->dev->lock, flags);
++
++ DEBUG("%s: disabled %s\n", __FUNCTION__, _ep->name);
++ return 0;
++}
++
++static struct usb_request *jz4740_alloc_request(struct usb_ep *ep, gfp_t gfp_flags)
++{
++ struct jz4740_request *req;
++
++ DEBUG("%s, %p\n", __FUNCTION__, ep);
++
++ req = kzalloc(sizeof(*req), gfp_flags);
++ if (!req)
++ return 0;
++
++ INIT_LIST_HEAD(&req->queue);
++
++ return &req->req;
++}
++
++static void jz4740_free_request(struct usb_ep *ep, struct usb_request *_req)
++{
++ struct jz4740_request *req;
++
++ DEBUG("%s, %p\n", __FUNCTION__, ep);
++
++ req = container_of(_req, struct jz4740_request, req);
++ WARN_ON(!list_empty(&req->queue));
++ kfree(req);
++}
++
++/*--------------------------------------------------------------------*/
++
++/** Queue one request
++ * Kickstart transfer if needed
++ * NOTE: Sets INDEX register
++ */
++static int jz4740_queue(struct usb_ep *_ep, struct usb_request *_req,
++ gfp_t gfp_flags)
++{
++ struct jz4740_request *req;
++ struct jz4740_ep *ep;
++ struct jz4740_udc *dev;
++ unsigned long flags;
++
++ DEBUG("%s, %p\n", __FUNCTION__, _ep);
++
++ req = container_of(_req, struct jz4740_request, req);
++ if (unlikely
++ (!_req || !_req->complete || !_req->buf
++ || !list_empty(&req->queue))) {
++ DEBUG("%s, bad params\n", __FUNCTION__);
++ return -EINVAL;
++ }
++
++ ep = container_of(_ep, struct jz4740_ep, ep);
++ if (unlikely(!_ep || (!ep->desc && ep->type != ep_control))) {
++ DEBUG("%s, bad ep\n", __FUNCTION__);
++ return -EINVAL;
++ }
++
++ dev = ep->dev;
++ if (unlikely(!dev->driver || dev->gadget.speed == USB_SPEED_UNKNOWN)) {
++ DEBUG("%s, bogus device state %p\n", __FUNCTION__, dev->driver);
++ return -ESHUTDOWN;
++ }
++
++ DEBUG("%s queue req %p, len %d buf %p\n", _ep->name, _req, _req->length,
++ _req->buf);
++
++ spin_lock_irqsave(&dev->lock, flags);
++
++ _req->status = -EINPROGRESS;
++ _req->actual = 0;
++
++ /* kickstart this i/o queue? */
++ DEBUG("Add to %d Q %d %d\n", ep_index(ep), list_empty(&ep->queue),
++ ep->stopped);
++ if (list_empty(&ep->queue) && likely(!ep->stopped)) {
++ uint32_t csr;
++
++ if (unlikely(ep_index(ep) == 0)) {
++ /* EP0 */
++ list_add_tail(&req->queue, &ep->queue);
++ jz4740_ep0_kick(dev, ep);
++ req = 0;
++ } else if (use_dma) {
++ /* DMA */
++ kick_dma(ep, req);
++ }
++ /* PIO */
++ else if (ep_is_in(ep)) {
++ /* EP1 & EP2 */
++ jz_udc_set_index(dev, ep_index(ep));
++ csr = usb_readb(dev, ep->csr);
++ pio_irq_enable(ep);
++ if (!(csr & USB_INCSR_FFNOTEMPT)) {
++ if (write_fifo(ep, req) == 1)
++ req = 0;
++ }
++ } else {
++ /* EP1 */
++ jz_udc_set_index(dev, ep_index(ep));
++ csr = usb_readb(dev, ep->csr);
++ pio_irq_enable(ep);
++ if (csr & USB_OUTCSR_OUTPKTRDY) {
++ if (read_fifo(ep, req) == 1)
++ req = 0;
++ }
++ }
++ }
++
++ /* pio or dma irq handler advances the queue. */
++ if (likely(req != 0))
++ list_add_tail(&req->queue, &ep->queue);
++
++ spin_unlock_irqrestore(&dev->lock, flags);
++
++ return 0;
++}
++
++/* dequeue JUST ONE request */
++static int jz4740_dequeue(struct usb_ep *_ep, struct usb_request *_req)
++{
++ struct jz4740_ep *ep;
++ struct jz4740_request *req;
++ unsigned long flags;
++
++ DEBUG("%s, %p\n", __FUNCTION__, _ep);
++
++ ep = container_of(_ep, struct jz4740_ep, ep);
++ if (!_ep || ep->type == ep_control)
++ return -EINVAL;
++
++ spin_lock_irqsave(&ep->dev->lock, flags);
++
++ /* make sure it's actually queued on this endpoint */
++ list_for_each_entry(req, &ep->queue, queue) {
++ if (&req->req == _req)
++ break;
++ }
++ if (&req->req != _req) {
++ spin_unlock_irqrestore(&ep->dev->lock, flags);
++ return -EINVAL;
++ }
++ done(ep, req, -ECONNRESET);
++
++ spin_unlock_irqrestore(&ep->dev->lock, flags);
++ return 0;
++}
++
++/** Return bytes in EP FIFO
++ * NOTE: Sets INDEX register to EP
++ */
++static int jz4740_fifo_status(struct usb_ep *_ep)
++{
++ uint32_t csr;
++ int count = 0;
++ struct jz4740_ep *ep;
++ unsigned long flags;
++
++ ep = container_of(_ep, struct jz4740_ep, ep);
++ if (!_ep) {
++ DEBUG("%s, bad ep\n", __FUNCTION__);
++ return -ENODEV;
++ }
++
++ DEBUG("%s, %d\n", __FUNCTION__, ep_index(ep));
++
++ /* LPD can't report unclaimed bytes from IN fifos */
++ if (ep_is_in(ep))
++ return -EOPNOTSUPP;
++
++ spin_lock_irqsave(&ep->dev->lock, flags);
++ jz_udc_set_index(ep->dev, ep_index(ep));
++
++ csr = usb_readb(ep->dev, ep->csr);
++ if (ep->dev->gadget.speed != USB_SPEED_UNKNOWN ||
++ csr & 0x1) {
++ count = usb_readw(ep->dev, JZ_REG_UDC_OUTCOUNT);
++ }
++
++ spin_unlock_irqrestore(&ep->dev->lock, flags);
++
++ return count;
++}
++
++/** Flush EP FIFO
++ * NOTE: Sets INDEX register to EP
++ */
++static void jz4740_fifo_flush(struct usb_ep *_ep)
++{
++ struct jz4740_ep *ep;
++ unsigned long flags;
++
++ DEBUG("%s:%s[%d]\n", __FILE__, __func__, __LINE__);
++
++ ep = container_of(_ep, struct jz4740_ep, ep);
++ if (unlikely(!_ep || (!ep->desc && ep->type == ep_control))) {
++ DEBUG("%s, bad ep\n", __FUNCTION__);
++ return;
++ }
++
++ spin_lock_irqsave(&ep->dev->lock, flags);
++
++ jz_udc_set_index(ep->dev, ep_index(ep));
++ flush(ep);
++
++ spin_unlock_irqrestore(&ep->dev->lock, flags);
++}
++
++/****************************************************************/
++/* End Point 0 related functions */
++/****************************************************************/
++
++/* return: 0 = still running, 1 = completed, negative = errno */
++static int write_fifo_ep0(struct jz4740_ep *ep, struct jz4740_request *req)
++{
++ uint32_t max;
++ unsigned count;
++ int is_last;
++
++ DEBUG("%s:%s[%d]\n", __FILE__, __func__, __LINE__);
++ max = ep_maxpacket(ep);
++
++ count = write_packet(ep, req, max);
++
++ /* last packet is usually short (or a zlp) */
++ if (unlikely(count != max))
++ is_last = 1;
++ else {
++ if (likely(req->req.length != req->req.actual) || req->req.zero)
++ is_last = 0;
++ else
++ is_last = 1;
++ }
++
++ DEBUG_EP0("%s: wrote %s %d bytes%s %d left %p\n", __FUNCTION__,
++ ep->ep.name, count,
++ is_last ? "/L" : "", req->req.length - req->req.actual, req);
++
++ /* requests complete when all IN data is in the FIFO */
++ if (is_last) {
++ done(ep, req, 0);
++ return 1;
++ }
++
++ return 0;
++}
++
++static inline int jz4740_fifo_read(struct jz4740_ep *ep,
++ unsigned char *cp, int max)
++{
++ int bytes;
++ int count = usb_readw(ep->dev, JZ_REG_UDC_OUTCOUNT);
++
++ if (count > max)
++ count = max;
++ bytes = count;
++ while (count--)
++ *cp++ = usb_readb(ep->dev, ep->fifo);
++
++ return bytes;
++}
++
++static inline void jz4740_fifo_write(struct jz4740_ep *ep,
++ unsigned char *cp, int count)
++{
++ DEBUG("fifo_write: %d %d\n", ep_index(ep), count);
++ while (count--)
++ usb_writeb(ep->dev, ep->fifo, *cp++);
++}
++
++static int read_fifo_ep0(struct jz4740_ep *ep, struct jz4740_request *req)
++{
++ struct jz4740_udc *dev = ep->dev;
++ uint32_t csr;
++ uint8_t *buf;
++ unsigned bufferspace, count, is_short;
++
++ DEBUG_EP0("%s\n", __FUNCTION__);
++
++ csr = usb_readb(dev, JZ_REG_UDC_CSR0);
++ if (!(csr & USB_CSR0_OUTPKTRDY))
++ return 0;
++
++ buf = req->req.buf + req->req.actual;
++ prefetchw(buf);
++ bufferspace = req->req.length - req->req.actual;
++
++ /* read all bytes from this packet */
++ if (likely(csr & USB_CSR0_OUTPKTRDY)) {
++ count = usb_readw(dev, JZ_REG_UDC_OUTCOUNT);
++ req->req.actual += min(count, bufferspace);
++ } else /* zlp */
++ count = 0;
++
++ is_short = (count < ep->ep.maxpacket);
++ DEBUG_EP0("read %s %02x, %d bytes%s req %p %d/%d\n",
++ ep->ep.name, csr, count,
++ is_short ? "/S" : "", req, req->req.actual, req->req.length);
++
++ while (likely(count-- != 0)) {
++ uint8_t byte = (uint8_t)usb_readl(dev, ep->fifo);
++
++ if (unlikely(bufferspace == 0)) {
++ /* this happens when the driver's buffer
++ * is smaller than what the host sent.
++ * discard the extra data.
++ */
++ if (req->req.status != -EOVERFLOW)
++ DEBUG_EP0("%s overflow %d\n", ep->ep.name,
++ count);
++ req->req.status = -EOVERFLOW;
++ } else {
++ *buf++ = byte;
++ bufferspace--;
++ }
++ }
++
++ /* completion */
++ if (is_short || req->req.actual == req->req.length) {
++ done(ep, req, 0);
++ return 1;
++ }
++
++ /* finished that packet. the next one may be waiting... */
++ return 0;
++}
++
++/**
++ * udc_set_address - set the USB address for this device
++ * @address:
++ *
++ * Called from control endpoint function after it decodes a set address setup packet.
++ */
++static void udc_set_address(struct jz4740_udc *dev, unsigned char address)
++{
++ DEBUG_EP0("%s: %d\n", __FUNCTION__, address);
++
++ dev->usb_address = address;
++ usb_writeb(dev, JZ_REG_UDC_FADDR, address);
++}
++
++/*
++ * DATA_STATE_RECV (USB_CSR0_OUTPKTRDY)
++ * - if error
++ * set USB_CSR0_SVDOUTPKTRDY | USB_CSR0_DATAEND | USB_CSR0_SENDSTALL bits
++ * - else
++ * set USB_CSR0_SVDOUTPKTRDY bit
++ if last set USB_CSR0_DATAEND bit
++ */
++static void jz4740_ep0_out(struct jz4740_udc *dev, uint32_t csr, int kickstart)
++{
++ struct jz4740_request *req;
++ struct jz4740_ep *ep = &dev->ep[0];
++ int ret;
++
++ DEBUG_EP0("%s: %x\n", __FUNCTION__, csr);
++
++ if (list_empty(&ep->queue))
++ req = 0;
++ else
++ req = list_entry(ep->queue.next, struct jz4740_request, queue);
++
++ if (req) {
++ if (req->req.length == 0) {
++ DEBUG_EP0("ZERO LENGTH OUT!\n");
++ usb_setb(dev, JZ_REG_UDC_CSR0, (USB_CSR0_SVDOUTPKTRDY | USB_CSR0_DATAEND));
++ dev->ep0state = WAIT_FOR_SETUP;
++ return;
++ } else if (kickstart) {
++ usb_setb(dev, JZ_REG_UDC_CSR0, (USB_CSR0_SVDOUTPKTRDY));
++ return;
++ }
++ ret = read_fifo_ep0(ep, req);
++ if (ret) {
++ /* Done! */
++ DEBUG_EP0("%s: finished, waiting for status\n",
++ __FUNCTION__);
++ usb_setb(dev, JZ_REG_UDC_CSR0, (USB_CSR0_SVDOUTPKTRDY | USB_CSR0_DATAEND));
++ dev->ep0state = WAIT_FOR_SETUP;
++ } else {
++ /* Not done yet.. */
++ DEBUG_EP0("%s: not finished\n", __FUNCTION__);
++ usb_setb(dev, JZ_REG_UDC_CSR0, USB_CSR0_SVDOUTPKTRDY);
++ }
++ } else {
++ DEBUG_EP0("NO REQ??!\n");
++ }
++}
++
++/*
++ * DATA_STATE_XMIT
++ */
++static int jz4740_ep0_in(struct jz4740_udc *dev, uint32_t csr)
++{
++ struct jz4740_request *req;
++ struct jz4740_ep *ep = &dev->ep[0];
++ int ret, need_zlp = 0;
++
++ DEBUG_EP0("%s: %x\n", __FUNCTION__, csr);
++
++ if (list_empty(&ep->queue))
++ req = 0;
++ else
++ req = list_entry(ep->queue.next, struct jz4740_request, queue);
++
++ if (!req) {
++ DEBUG_EP0("%s: NULL REQ\n", __FUNCTION__);
++ return 0;
++ }
++
++ if (req->req.length == 0) {
++ usb_setb(dev, JZ_REG_UDC_CSR0, (USB_CSR0_INPKTRDY | USB_CSR0_DATAEND));
++ dev->ep0state = WAIT_FOR_SETUP;
++ return 1;
++ }
++
++ if (req->req.length - req->req.actual == EP0_MAXPACKETSIZE) {
++ /* Next write will end with the packet size, */
++ /* so we need zero-length-packet */
++ need_zlp = 1;
++ }
++
++ ret = write_fifo_ep0(ep, req);
++
++ if (ret == 1 && !need_zlp) {
++ /* Last packet */
++ DEBUG_EP0("%s: finished, waiting for status\n", __FUNCTION__);
++
++ usb_setb(dev, JZ_REG_UDC_CSR0, (USB_CSR0_INPKTRDY | USB_CSR0_DATAEND));
++ dev->ep0state = WAIT_FOR_SETUP;
++ } else {
++ DEBUG_EP0("%s: not finished\n", __FUNCTION__);
++ usb_setb(dev, JZ_REG_UDC_CSR0, USB_CSR0_INPKTRDY);
++ }
++
++ if (need_zlp) {
++ DEBUG_EP0("%s: Need ZLP!\n", __FUNCTION__);
++ usb_setb(dev, JZ_REG_UDC_CSR0, USB_CSR0_INPKTRDY);
++ dev->ep0state = DATA_STATE_NEED_ZLP;
++ }
++
++ return 1;
++}
++
++static int jz4740_handle_get_status(struct jz4740_udc *dev,
++ struct usb_ctrlrequest *ctrl)
++{
++ struct jz4740_ep *ep0 = &dev->ep[0];
++ struct jz4740_ep *qep;
++ int reqtype = (ctrl->bRequestType & USB_RECIP_MASK);
++ uint16_t val = 0;
++
++ DEBUG("%s:%s[%d]\n", __FILE__, __func__, __LINE__);
++
++ if (reqtype == USB_RECIP_INTERFACE) {
++ /* This is not supported.
++ * And according to the USB spec, this one does nothing..
++ * Just return 0
++ */
++ DEBUG_SETUP("GET_STATUS: USB_RECIP_INTERFACE\n");
++ } else if (reqtype == USB_RECIP_DEVICE) {
++ DEBUG_SETUP("GET_STATUS: USB_RECIP_DEVICE\n");
++ val |= (1 << 0); /* Self powered */
++ /*val |= (1<<1); *//* Remote wakeup */
++ } else if (reqtype == USB_RECIP_ENDPOINT) {
++ int ep_num = (ctrl->wIndex & ~USB_DIR_IN);
++
++ DEBUG_SETUP
++ ("GET_STATUS: USB_RECIP_ENDPOINT (%d), ctrl->wLength = %d\n",
++ ep_num, ctrl->wLength);
++
++ if (ctrl->wLength > 2 || ep_num > 3)
++ return -EOPNOTSUPP;
++
++ qep = &dev->ep[ep_num];
++ if (ep_is_in(qep) != ((ctrl->wIndex & USB_DIR_IN) ? 1 : 0)
++ && ep_index(qep) != 0) {
++ return -EOPNOTSUPP;
++ }
++
++ jz_udc_set_index(dev, ep_index(qep));
++
++ /* Return status on next IN token */
++ switch (qep->type) {
++ case ep_control:
++ val =
++ (usb_readb(dev, qep->csr) & USB_CSR0_SENDSTALL) ==
++ USB_CSR0_SENDSTALL;
++ break;
++ case ep_bulk_in:
++ case ep_interrupt:
++ val =
++ (usb_readb(dev, qep->csr) & USB_INCSR_SENDSTALL) ==
++ USB_INCSR_SENDSTALL;
++ break;
++ case ep_bulk_out:
++ val =
++ (usb_readb(dev, qep->csr) & USB_OUTCSR_SENDSTALL) ==
++ USB_OUTCSR_SENDSTALL;
++ break;
++ }
++
++ /* Back to EP0 index */
++ jz_udc_set_index(dev, 0);
++
++ DEBUG_SETUP("GET_STATUS, ep: %d (%x), val = %d\n", ep_num,
++ ctrl->wIndex, val);
++ } else {
++ DEBUG_SETUP("Unknown REQ TYPE: %d\n", reqtype);
++ return -EOPNOTSUPP;
++ }
++
++ /* Clear "out packet ready" */
++ usb_setb(dev, JZ_REG_UDC_CSR0, USB_CSR0_SVDOUTPKTRDY);
++ /* Put status to FIFO */
++ jz4740_fifo_write(ep0, (uint8_t *)&val, sizeof(val));
++ /* Issue "In packet ready" */
++ usb_setb(dev, JZ_REG_UDC_CSR0, (USB_CSR0_INPKTRDY | USB_CSR0_DATAEND));
++
++ return 0;
++}
++
++/*
++ * WAIT_FOR_SETUP (OUTPKTRDY)
++ * - read data packet from EP0 FIFO
++ * - decode command
++ * - if error
++ * set USB_CSR0_SVDOUTPKTRDY | USB_CSR0_DATAEND | USB_CSR0_SENDSTALL bits
++ * - else
++ * set USB_CSR0_SVDOUTPKTRDY | USB_CSR0_DATAEND bits
++ */
++static void jz4740_ep0_setup(struct jz4740_udc *dev, uint32_t csr)
++{
++ struct jz4740_ep *ep = &dev->ep[0];
++ struct usb_ctrlrequest ctrl;
++ int i;
++
++ DEBUG_SETUP("%s: %x\n", __FUNCTION__, csr);
++
++ /* Nuke all previous transfers */
++ nuke(ep, -EPROTO);
++
++ /* read control req from fifo (8 bytes) */
++ jz4740_fifo_read(ep, (unsigned char *)&ctrl, 8);
++
++ DEBUG_SETUP("SETUP %02x.%02x v%04x i%04x l%04x\n",
++ ctrl.bRequestType, ctrl.bRequest,
++ ctrl.wValue, ctrl.wIndex, ctrl.wLength);
++
++ /* Set direction of EP0 */
++ if (likely(ctrl.bRequestType & USB_DIR_IN)) {
++ ep->bEndpointAddress |= USB_DIR_IN;
++ } else {
++ ep->bEndpointAddress &= ~USB_DIR_IN;
++ }
++
++ /* Handle some SETUP packets ourselves */
++ switch (ctrl.bRequest) {
++ case USB_REQ_SET_ADDRESS:
++ if (ctrl.bRequestType != (USB_TYPE_STANDARD | USB_RECIP_DEVICE))
++ break;
++
++ DEBUG_SETUP("USB_REQ_SET_ADDRESS (%d)\n", ctrl.wValue);
++ udc_set_address(dev, ctrl.wValue);
++ usb_setb(dev, JZ_REG_UDC_CSR0, (USB_CSR0_SVDOUTPKTRDY | USB_CSR0_DATAEND));
++ return;
++
++ case USB_REQ_SET_CONFIGURATION:
++ if (ctrl.bRequestType != (USB_TYPE_STANDARD | USB_RECIP_DEVICE))
++ break;
++
++ DEBUG_SETUP("USB_REQ_SET_CONFIGURATION (%d)\n", ctrl.wValue);
++/* usb_setb(JZ_REG_UDC_CSR0, (USB_CSR0_SVDOUTPKTRDY | USB_CSR0_DATAEND));*/
++
++ /* Enable RESUME and SUSPEND interrupts */
++ usb_setb(dev, JZ_REG_UDC_INTRUSBE, (USB_INTR_RESUME | USB_INTR_SUSPEND));
++ break;
++
++ case USB_REQ_SET_INTERFACE:
++ if (ctrl.bRequestType != (USB_TYPE_STANDARD | USB_RECIP_DEVICE))
++ break;
++
++ DEBUG_SETUP("USB_REQ_SET_INTERFACE (%d)\n", ctrl.wValue);
++/* usb_setb(JZ_REG_UDC_CSR0, (USB_CSR0_SVDOUTPKTRDY | USB_CSR0_DATAEND));*/
++ break;
++
++ case USB_REQ_GET_STATUS:
++ if (jz4740_handle_get_status(dev, &ctrl) == 0)
++ return;
++
++ case USB_REQ_CLEAR_FEATURE:
++ case USB_REQ_SET_FEATURE:
++ if (ctrl.bRequestType == USB_RECIP_ENDPOINT) {
++ struct jz4740_ep *qep;
++ int ep_num = (ctrl.wIndex & 0x0f);
++
++ /* Support only HALT feature */
++ if (ctrl.wValue != 0 || ctrl.wLength != 0
++ || ep_num > 3 || ep_num < 1)
++ break;
++
++ qep = &dev->ep[ep_num];
++ spin_unlock(&dev->lock);
++ if (ctrl.bRequest == USB_REQ_SET_FEATURE) {
++ DEBUG_SETUP("SET_FEATURE (%d)\n",
++ ep_num);
++ jz4740_set_halt(&qep->ep, 1);
++ } else {
++ DEBUG_SETUP("CLR_FEATURE (%d)\n",
++ ep_num);
++ jz4740_set_halt(&qep->ep, 0);
++ }
++ spin_lock(&dev->lock);
++
++ jz_udc_set_index(dev, 0);
++
++ /* Reply with a ZLP on next IN token */
++ usb_setb(dev, JZ_REG_UDC_CSR0,
++ (USB_CSR0_SVDOUTPKTRDY | USB_CSR0_DATAEND));
++ return;
++ }
++ break;
++
++ default:
++ break;
++ }
++
++ /* gadget drivers see class/vendor specific requests,
++ * {SET,GET}_{INTERFACE,DESCRIPTOR,CONFIGURATION},
++ * and more.
++ */
++ if (dev->driver) {
++ /* device-2-host (IN) or no data setup command, process immediately */
++ spin_unlock(&dev->lock);
++
++ i = dev->driver->setup(&dev->gadget, &ctrl);
++ spin_lock(&dev->lock);
++
++ if (unlikely(i < 0)) {
++ /* setup processing failed, force stall */
++ DEBUG_SETUP
++ (" --> ERROR: gadget setup FAILED (stalling), setup returned %d\n",
++ i);
++ jz_udc_set_index(dev, 0);
++ usb_setb(dev, JZ_REG_UDC_CSR0, (USB_CSR0_SVDOUTPKTRDY | USB_CSR0_DATAEND | USB_CSR0_SENDSTALL));
++
++ /* ep->stopped = 1; */
++ dev->ep0state = WAIT_FOR_SETUP;
++ }
++ else {
++ DEBUG_SETUP("gadget driver setup ok (%d)\n", ctrl.wLength);
++/* if (!ctrl.wLength) {
++ usb_setb(JZ_REG_UDC_CSR0, USB_CSR0_SVDOUTPKTRDY);
++ }*/
++ }
++ }
++}
++
++/*
++ * DATA_STATE_NEED_ZLP
++ */
++static void jz4740_ep0_in_zlp(struct jz4740_udc *dev, uint32_t csr)
++{
++ DEBUG_EP0("%s: %x\n", __FUNCTION__, csr);
++
++ usb_setb(dev, JZ_REG_UDC_CSR0, (USB_CSR0_INPKTRDY | USB_CSR0_DATAEND));
++ dev->ep0state = WAIT_FOR_SETUP;
++}
++
++/*
++ * handle ep0 interrupt
++ */
++static void jz4740_handle_ep0(struct jz4740_udc *dev, uint32_t intr)
++{
++ struct jz4740_ep *ep = &dev->ep[0];
++ uint32_t csr;
++
++ DEBUG("%s:%s[%d]\n", __FILE__, __func__, __LINE__);
++ /* Set index 0 */
++ jz_udc_set_index(dev, 0);
++ csr = usb_readb(dev, JZ_REG_UDC_CSR0);
++
++ DEBUG_EP0("%s: csr = %x state = \n", __FUNCTION__, csr);//, state_names[dev->ep0state]);
++
++ /*
++ * if SENT_STALL is set
++ * - clear the SENT_STALL bit
++ */
++ if (csr & USB_CSR0_SENTSTALL) {
++ DEBUG_EP0("%s: USB_CSR0_SENTSTALL is set: %x\n", __FUNCTION__, csr);
++ usb_clearb(dev, JZ_REG_UDC_CSR0, USB_CSR0_SENDSTALL | USB_CSR0_SENTSTALL);
++ nuke(ep, -ECONNABORTED);
++ dev->ep0state = WAIT_FOR_SETUP;
++ return;
++ }
++
++ /*
++ * if a transfer is in progress && INPKTRDY and OUTPKTRDY are clear
++ * - fill EP0 FIFO
++ * - if last packet
++ * - set IN_PKT_RDY | DATA_END
++ * - else
++ * set IN_PKT_RDY
++ */
++ if (!(csr & (USB_CSR0_INPKTRDY | USB_CSR0_OUTPKTRDY))) {
++ DEBUG_EP0("%s: INPKTRDY and OUTPKTRDY are clear\n",
++ __FUNCTION__);
++
++ switch (dev->ep0state) {
++ case DATA_STATE_XMIT:
++ DEBUG_EP0("continue with DATA_STATE_XMIT\n");
++ jz4740_ep0_in(dev, csr);
++ return;
++ case DATA_STATE_NEED_ZLP:
++ DEBUG_EP0("continue with DATA_STATE_NEED_ZLP\n");
++ jz4740_ep0_in_zlp(dev, csr);
++ return;
++ default:
++ /* Stall? */
++// DEBUG_EP0("Odd state!! state = %s\n",
++// state_names[dev->ep0state]);
++ dev->ep0state = WAIT_FOR_SETUP;
++ /* nuke(ep, 0); */
++ /* usb_setb(ep->csr, USB_CSR0_SENDSTALL); */
++// break;
++ return;
++ }
++ }
++
++ /*
++ * if SETUPEND is set
++ * - abort the last transfer
++ * - set SERVICED_SETUP_END_BIT
++ */
++ if (csr & USB_CSR0_SETUPEND) {
++ DEBUG_EP0("%s: USB_CSR0_SETUPEND is set: %x\n", __FUNCTION__, csr);
++
++ usb_setb(dev, JZ_REG_UDC_CSR0, USB_CSR0_SVDSETUPEND);
++ nuke(ep, 0);
++ dev->ep0state = WAIT_FOR_SETUP;
++ }
++
++ /*
++ * if USB_CSR0_OUTPKTRDY is set
++ * - read data packet from EP0 FIFO
++ * - decode command
++ * - if error
++ * set SVDOUTPKTRDY | DATAEND | SENDSTALL bits
++ * - else
++ * set SVDOUTPKTRDY | DATAEND bits
++ */
++ if (csr & USB_CSR0_OUTPKTRDY) {
++
++ DEBUG_EP0("%s: EP0_OUT_PKT_RDY is set: %x\n", __FUNCTION__,
++ csr);
++
++ switch (dev->ep0state) {
++ case WAIT_FOR_SETUP:
++ DEBUG_EP0("WAIT_FOR_SETUP\n");
++ jz4740_ep0_setup(dev, csr);
++ break;
++
++ case DATA_STATE_RECV:
++ DEBUG_EP0("DATA_STATE_RECV\n");
++ jz4740_ep0_out(dev, csr, 0);
++ break;
++
++ default:
++ /* send stall? */
++ DEBUG_EP0("strange state!! 2. send stall? state = %d\n",
++ dev->ep0state);
++ break;
++ }
++ }
++}
++
++static void jz4740_ep0_kick(struct jz4740_udc *dev, struct jz4740_ep *ep)
++{
++ uint32_t csr;
++
++ jz_udc_set_index(dev, 0);
++
++ DEBUG_EP0("%s: %x\n", __FUNCTION__, csr);
++
++ /* Clear "out packet ready" */
++
++ if (ep_is_in(ep)) {
++ usb_setb(dev, JZ_REG_UDC_CSR0, USB_CSR0_SVDOUTPKTRDY);
++ csr = usb_readb(dev, JZ_REG_UDC_CSR0);
++ dev->ep0state = DATA_STATE_XMIT;
++ jz4740_ep0_in(dev, csr);
++ } else {
++ csr = usb_readb(dev, JZ_REG_UDC_CSR0);
++ dev->ep0state = DATA_STATE_RECV;
++ jz4740_ep0_out(dev, csr, 1);
++ }
++}
++
++/** Handle USB RESET interrupt
++ */
++static void jz4740_reset_irq(struct jz4740_udc *dev)
++{
++ dev->gadget.speed = (usb_readb(dev, JZ_REG_UDC_POWER) & USB_POWER_HSMODE) ?
++ USB_SPEED_HIGH : USB_SPEED_FULL;
++
++ DEBUG_SETUP("%s: address = %d, speed = %s\n", __FUNCTION__, dev->usb_address,
++ (dev->gadget.speed == USB_SPEED_HIGH) ? "HIGH":"FULL" );
++}
++
++/*
++ * jz4740 usb device interrupt handler.
++ */
++static irqreturn_t jz4740_udc_irq(int irq, void *_dev)
++{
++ struct jz4740_udc *dev = _dev;
++ uint8_t index;
++
++ uint32_t intr_usb = usb_readb(dev, JZ_REG_UDC_INTRUSB) & 0x7; /* mask SOF */
++ uint32_t intr_in = usb_readw(dev, JZ_REG_UDC_INTRIN);
++ uint32_t intr_out = usb_readw(dev, JZ_REG_UDC_INTROUT);
++ uint32_t intr_dma = usb_readb(dev, JZ_REG_UDC_INTR);
++
++ if (!intr_usb && !intr_in && !intr_out && !intr_dma)
++ return IRQ_HANDLED;
++
++
++ DEBUG("intr_out=%x intr_in=%x intr_usb=%x\n",
++ intr_out, intr_in, intr_usb);
++
++ spin_lock(&dev->lock);
++ index = usb_readb(dev, JZ_REG_UDC_INDEX);
++
++ /* Check for resume from suspend mode */
++ if ((intr_usb & USB_INTR_RESUME) &&
++ (usb_readb(dev, JZ_REG_UDC_INTRUSBE) & USB_INTR_RESUME)) {
++ DEBUG("USB resume\n");
++ dev->driver->resume(&dev->gadget); /* We have suspend(), so we must have resume() too. */
++ }
++
++ /* Check for system interrupts */
++ if (intr_usb & USB_INTR_RESET) {
++ DEBUG("USB reset\n");
++ jz4740_reset_irq(dev);
++ }
++
++ /* Check for endpoint 0 interrupt */
++ if (intr_in & USB_INTR_EP0) {
++ DEBUG("USB_INTR_EP0 (control)\n");
++ jz4740_handle_ep0(dev, intr_in);
++ }
++
++ /* Check for Bulk-IN DMA interrupt */
++ if (intr_dma & 0x1) {
++ int ep_num;
++ struct jz4740_ep *ep;
++ ep_num = (usb_readl(dev, JZ_REG_UDC_CNTL1) >> 4) & 0xf;
++ ep = &dev->ep[ep_num + 1];
++ jz_udc_set_index(dev, ep_num);
++ usb_setb(dev, ep->csr, USB_INCSR_INPKTRDY);
++/* jz4740_in_epn(dev, ep_num, intr_in);*/
++ }
++
++ /* Check for Bulk-OUT DMA interrupt */
++ if (intr_dma & 0x2) {
++ int ep_num;
++ ep_num = (usb_readl(dev, JZ_REG_UDC_CNTL2) >> 4) & 0xf;
++ jz4740_out_epn(dev, ep_num, intr_out);
++ }
++
++ /* Check for each configured endpoint interrupt */
++ if (intr_in & USB_INTR_INEP1) {
++ DEBUG("USB_INTR_INEP1\n");
++ jz4740_in_epn(dev, 1, intr_in);
++ }
++
++ if (intr_in & USB_INTR_INEP2) {
++ DEBUG("USB_INTR_INEP2\n");
++ jz4740_in_epn(dev, 2, intr_in);
++ }
++
++ if (intr_out & USB_INTR_OUTEP1) {
++ DEBUG("USB_INTR_OUTEP1\n");
++ jz4740_out_epn(dev, 1, intr_out);
++ }
++
++ /* Check for suspend mode */
++ if ((intr_usb & USB_INTR_SUSPEND) &&
++ (usb_readb(dev, JZ_REG_UDC_INTRUSBE) & USB_INTR_SUSPEND)) {
++ DEBUG("USB suspend\n");
++ dev->driver->suspend(&dev->gadget);
++ /* Host unloaded from us, can do something, such as flushing
++ the NAND block cache etc. */
++ }
++
++ jz_udc_set_index(dev, index);
++
++ spin_unlock(&dev->lock);
++
++ return IRQ_HANDLED;
++}
++
++
++
++/*-------------------------------------------------------------------------*/
++
++/* Common functions - Added by River */
++static struct jz4740_udc udc_dev;
++
++static inline struct jz4740_udc *gadget_to_udc(struct usb_gadget *gadget)
++{
++ return container_of(gadget, struct jz4740_udc, gadget);
++}
++/* End added */
++
++static int jz4740_udc_get_frame(struct usb_gadget *_gadget)
++{
++ DEBUG("%s, %p\n", __FUNCTION__, _gadget);
++ return usb_readw(gadget_to_udc(_gadget), JZ_REG_UDC_FRAME);
++}
++
++static int jz4740_udc_wakeup(struct usb_gadget *_gadget)
++{
++ /* host may not have enabled remote wakeup */
++ /*if ((UDCCS0 & UDCCS0_DRWF) == 0)
++ return -EHOSTUNREACH;
++ udc_set_mask_UDCCR(UDCCR_RSM); */
++ return -ENOTSUPP;
++}
++
++static int jz4740_udc_pullup(struct usb_gadget *_gadget, int on)
++{
++ struct jz4740_udc *udc = gadget_to_udc(_gadget);
++
++ unsigned long flags;
++
++ local_irq_save(flags);
++
++ if (on) {
++ udc->state = UDC_STATE_ENABLE;
++ udc_enable(udc);
++ } else {
++ udc->state = UDC_STATE_DISABLE;
++ udc_disable(udc);
++ }
++
++ local_irq_restore(flags);
++
++ return 0;
++}
++
++static const struct usb_gadget_ops jz4740_udc_ops = {
++ .get_frame = jz4740_udc_get_frame,
++ .wakeup = jz4740_udc_wakeup,
++ .pullup = jz4740_udc_pullup,
++ /* current versions must always be self-powered */
++};
++
++static struct usb_ep_ops jz4740_ep_ops = {
++ .enable = jz4740_ep_enable,
++ .disable = jz4740_ep_disable,
++
++ .alloc_request = jz4740_alloc_request,
++ .free_request = jz4740_free_request,
++
++ .queue = jz4740_queue,
++ .dequeue = jz4740_dequeue,
++
++ .set_halt = jz4740_set_halt,
++ .fifo_status = jz4740_fifo_status,
++ .fifo_flush = jz4740_fifo_flush,
++};
++
++
++/*-------------------------------------------------------------------------*/
++
++static struct jz4740_udc udc_dev = {
++ .usb_address = 0,
++ .gadget = {
++ .ops = &jz4740_udc_ops,
++ .ep0 = &udc_dev.ep[0].ep,
++ .name = "jz-udc",
++ .dev = {
++ .init_name = "gadget",
++ },
++ },
++
++ /* control endpoint */
++ .ep[0] = {
++ .ep = {
++ .name = "ep0",
++ .ops = &jz4740_ep_ops,
++ .maxpacket = EP0_MAXPACKETSIZE,
++ },
++ .dev = &udc_dev,
++
++ .bEndpointAddress = 0,
++ .bmAttributes = 0,
++
++ .type = ep_control,
++ .fifo = JZ_REG_UDC_EP_FIFO(0),
++ .csr = JZ_REG_UDC_CSR0,
++ },
++
++ /* bulk out endpoint */
++ .ep[1] = {
++ .ep = {
++ .name = "ep1out-bulk",
++ .ops = &jz4740_ep_ops,
++ .maxpacket = EPBULK_MAXPACKETSIZE,
++ },
++ .dev = &udc_dev,
++
++ .bEndpointAddress = 1,
++ .bmAttributes = USB_ENDPOINT_XFER_BULK,
++
++ .type = ep_bulk_out,
++ .fifo = JZ_REG_UDC_EP_FIFO(1),
++ .csr = JZ_REG_UDC_OUTCSR,
++ },
++
++ /* bulk in endpoint */
++ .ep[2] = {
++ .ep = {
++ .name = "ep1in-bulk",
++ .ops = &jz4740_ep_ops,
++ .maxpacket = EPBULK_MAXPACKETSIZE,
++ },
++ .dev = &udc_dev,
++
++ .bEndpointAddress = 1 | USB_DIR_IN,
++ .bmAttributes = USB_ENDPOINT_XFER_BULK,
++
++ .type = ep_bulk_in,
++ .fifo = JZ_REG_UDC_EP_FIFO(1),
++ .csr = JZ_REG_UDC_INCSR,
++ },
++
++ /* interrupt in endpoint */
++ .ep[3] = {
++ .ep = {
++ .name = "ep2in-int",
++ .ops = &jz4740_ep_ops,
++ .maxpacket = EPINTR_MAXPACKETSIZE,
++ },
++ .dev = &udc_dev,
++
++ .bEndpointAddress = 2 | USB_DIR_IN,
++ .bmAttributes = USB_ENDPOINT_XFER_INT,
++
++ .type = ep_interrupt,
++ .fifo = JZ_REG_UDC_EP_FIFO(2),
++ .csr = JZ_REG_UDC_INCSR,
++ },
++};
++
++static void gadget_release(struct device *_dev)
++{
++}
++
++
++static int jz4740_udc_probe(struct platform_device *pdev)
++{
++ struct jz4740_udc *dev = &udc_dev;
++ int ret;
++
++ spin_lock_init(&dev->lock);
++ the_controller = dev;
++
++ dev->dev = &pdev->dev;
++ dev_set_name(&dev->gadget.dev, "gadget");
++ dev->gadget.dev.parent = &pdev->dev;
++ dev->gadget.dev.dma_mask = pdev->dev.dma_mask;
++ dev->gadget.dev.release = gadget_release;
++
++ ret = device_register(&dev->gadget.dev);
++ if (ret)
++ return ret;
++
++ platform_set_drvdata(pdev, dev);
++
++ dev->mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++
++ if (!dev->mem) {
++ ret = -ENOENT;
++ dev_err(&pdev->dev, "Failed to get mmio memory resource\n");
++ goto err_device_unregister;
++ }
++
++ dev->mem = request_mem_region(dev->mem->start, resource_size(dev->mem), pdev->name);
++
++ if (!dev->mem) {
++ ret = -EBUSY;
++ dev_err(&pdev->dev, "Failed to request mmio memory region\n");
++ goto err_device_unregister;
++ }
++
++ dev->base = ioremap(dev->mem->start, resource_size(dev->mem));
++
++ if (!dev->base) {
++ ret = -EBUSY;
++ dev_err(&pdev->dev, "Failed to ioremap mmio memory\n");
++ goto err_release_mem_region;
++ }
++
++ dev->irq = platform_get_irq(pdev, 0);
++
++ ret = request_irq(dev->irq, jz4740_udc_irq, IRQF_DISABLED,
++ pdev->name, dev);
++ if (ret) {
++ dev_err(&pdev->dev, "Failed to request irq: %d\n", ret);
++ goto err_iounmap;
++ }
++
++ udc_disable(dev);
++ udc_reinit(dev);
++
++ return 0;
++
++err_iounmap:
++ iounmap(dev->base);
++err_release_mem_region:
++ release_mem_region(dev->mem->start, resource_size(dev->mem));
++err_device_unregister:
++ device_unregister(&dev->gadget.dev);
++ platform_set_drvdata(pdev, NULL);
++
++ the_controller = 0;
++
++ return ret;
++}
++
++static int jz4740_udc_remove(struct platform_device *pdev)
++{
++ struct jz4740_udc *dev = platform_get_drvdata(pdev);
++
++ if (dev->driver)
++ return -EBUSY;
++
++ udc_disable(dev);
++#ifdef UDC_PROC_FILE
++ remove_proc_entry(proc_node_name, NULL);
++#endif
++
++ free_irq(dev->irq, dev);
++ iounmap(dev->base);
++ release_mem_region(dev->mem->start, resource_size(dev->mem));
++
++ platform_set_drvdata(pdev, NULL);
++ device_unregister(&dev->gadget.dev);
++ the_controller = NULL;
++
++ return 0;
++}
++
++static struct platform_driver udc_driver = {
++ .probe = jz4740_udc_probe,
++ .remove = jz4740_udc_remove,
++ .driver = {
++ .name = "jz-udc",
++ .owner = THIS_MODULE,
++ },
++};
++
++/*-------------------------------------------------------------------------*/
++
++static int __init udc_init (void)
++{
++ return platform_driver_register(&udc_driver);
++}
++
++static void __exit udc_exit (void)
++{
++ platform_driver_unregister(&udc_driver);
++}
++
++module_init(udc_init);
++module_exit(udc_exit);
++
++MODULE_DESCRIPTION("JZ4740 USB Device Controller");
++MODULE_AUTHOR("Wei Jianli <jlwei@ingenic.cn>");
++MODULE_LICENSE("GPL");
+diff -ruN linux-2.6.31-vanilla/drivers/usb/gadget/jz4740_udc.h linux-2.6.31/drivers/usb/gadget/jz4740_udc.h
+--- linux-2.6.31-vanilla/drivers/usb/gadget/jz4740_udc.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/drivers/usb/gadget/jz4740_udc.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,97 @@
++/*
++ * linux/drivers/usb/gadget/jz4740_udc.h
++ *
++ * Ingenic JZ4740 on-chip high speed USB device controller
++ *
++ * Copyright (C) 2006 Ingenic Semiconductor Inc.
++ * Author: <jlwei@ingenic.cn>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ */
++
++#ifndef __USB_GADGET_JZ4740_H__
++#define __USB_GADGET_JZ4740_H__
++
++/*-------------------------------------------------------------------------*/
++
++// Max packet size
++#define EP0_MAXPACKETSIZE 64
++#define EPBULK_MAXPACKETSIZE 512
++#define EPINTR_MAXPACKETSIZE 64
++
++#define UDC_MAX_ENDPOINTS 4
++
++/*-------------------------------------------------------------------------*/
++
++typedef enum ep_type {
++ ep_control, ep_bulk_in, ep_bulk_out, ep_interrupt
++} ep_type_t;
++
++struct jz4740_ep {
++ struct usb_ep ep;
++ struct jz4740_udc *dev;
++
++ const struct usb_endpoint_descriptor *desc;
++ unsigned long pio_irqs;
++
++ uint8_t stopped;
++ uint8_t bEndpointAddress;
++ uint8_t bmAttributes;
++
++ ep_type_t type;
++ size_t fifo;
++ u32 csr;
++
++ uint32_t reg_addr;
++ struct list_head queue;
++};
++
++struct jz4740_request {
++ struct usb_request req;
++ struct list_head queue;
++};
++
++enum ep0state {
++ WAIT_FOR_SETUP, /* between STATUS ack and SETUP report */
++ DATA_STATE_XMIT, /* data tx stage */
++ DATA_STATE_NEED_ZLP, /* data tx zlp stage */
++ WAIT_FOR_OUT_STATUS, /* status stages */
++ DATA_STATE_RECV, /* data rx stage */
++};
++
++/* For function binding with UDC Disable - Added by River */
++typedef enum {
++ UDC_STATE_ENABLE = 0,
++ UDC_STATE_DISABLE,
++}udc_state_t;
++
++struct jz4740_udc {
++ struct usb_gadget gadget;
++ struct usb_gadget_driver *driver;
++ struct device *dev;
++ spinlock_t lock;
++
++ enum ep0state ep0state;
++ struct jz4740_ep ep[UDC_MAX_ENDPOINTS];
++
++ unsigned char usb_address;
++
++ udc_state_t state;
++
++ struct resource *mem;
++ void __iomem *base;
++ int irq;
++ uint32_t in_mask;
++ uint32_t out_mask;
++};
++
++extern struct jz4740_udc *the_controller;
++
++#define ep_is_in(EP) (((EP)->bEndpointAddress&USB_DIR_IN)==USB_DIR_IN)
++#define ep_maxpacket(EP) ((EP)->ep.maxpacket)
++#define ep_index(EP) ((EP)->bEndpointAddress&0xF)
++
++#endif /* __USB_GADGET_JZ4740_H__ */
+diff -ruN linux-2.6.31-vanilla/drivers/usb/gadget/udc_hotplug.h linux-2.6.31/drivers/usb/gadget/udc_hotplug.h
+--- linux-2.6.31-vanilla/drivers/usb/gadget/udc_hotplug.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/drivers/usb/gadget/udc_hotplug.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,50 @@
++/*
++ * Ingenic USB Device Contoller Hotplug External Interfaces
++ */
++
++#ifndef __UDC_HOTPLUG_H__
++#define __UDC_HOTPLUG_H__
++
++#include <linux/notifier.h>
++
++typedef enum {
++ BROADCAST_TYPE_STATE = 0,
++ BROADCAST_TYPE_EVENT,
++}udc_hotplug_broadcast_type_t;
++
++typedef enum {
++ EVENT_STATE_OFFLINE = 0,
++ EVENT_STATE_ONLINE,
++}udc_hotplug_event_state_t;
++
++typedef enum {
++ EVENT_TYPE_USB = 0,
++ EVENT_TYPE_CABLE,
++}udc_hotplug_event_type_t;
++
++enum {
++ EVENT_FLAG_UDC_PHY_TOUCHED = 0,
++};
++
++typedef struct {
++ udc_hotplug_event_type_t type;
++ udc_hotplug_event_state_t state;
++ unsigned long flags;
++}udc_hotplug_event_t;
++
++/* Register notifier */
++int udc_hotplug_register_notifier(struct notifier_block *n, int request_state);
++
++/* Unregister notifier */
++int udc_hotplug_unregister_notifier(struct notifier_block *n);
++
++/* Start keep alive */
++int udc_hotplug_start_keep_alive(unsigned long timer_interval_in_jiffies, unsigned long counter_limit);
++
++/* Do keep alive */
++void udc_hotplug_do_keep_alive(void);
++
++/* Stop keep alive */
++void udc_hotplug_stop_keep_alive(void);
++
++#endif /* Define __UDC_HOTPLUG_H__ */
+diff -ruN linux-2.6.31-vanilla/drivers/usb/gadget/udc_hotplug_core.c linux-2.6.31/drivers/usb/gadget/udc_hotplug_core.c
+--- linux-2.6.31-vanilla/drivers/usb/gadget/udc_hotplug_core.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/drivers/usb/gadget/udc_hotplug_core.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,836 @@
++/*
++ * Ingenic USB Device Controller Hotplug Core Function
++ * Detection mechanism and code are based on the old version of udc_hotplug.c
++ */
++
++#include <linux/sched.h>
++#include <linux/module.h>
++#include <linux/notifier.h>
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/slab.h>
++#include <linux/err.h>
++#include <linux/wait.h>
++#include <linux/kthread.h>
++#include <linux/timer.h>
++
++#include <asm/jzsoc.h>
++
++#include "udc_hotplug.h"
++
++#define PFX "jz_hotplug_udc"
++
++#define D(msg, fmt...) \
++// printk(KERN_ERR PFX": %s(): "msg, __func__, ##fmt);
++
++/* HAVE_DETECT_SYNC
++ Provide a lock like seqlock keep the synchronization between the start and the end of a detection,
++ If the lock seems not synchronous(new interrupt comes, when doing our detection) in the end of a detection,
++ the result of the detection is discarded. No event will be broadcast, and the detection will be restarted.
++
++ Use to filter out more significant events when the interrupt is too noisy.
++*/
++
++//#define HAVE_DETECT_SYNC 1
++
++#if defined (HAVE_DETECT_SYNC)
++#define NR_RESTART_TIMES 3
++#define NR_JIFFIES_SLEEP_BEFORE_RESTART 7
++#endif
++
++#define NR_GPIO_STABLE_TIMES 50
++#define NR_JIFFIES_USB_DETECT_WAIT 11
++
++#define DEFAULT_KEEP_ALIVE_TIMER_INTERVAL (2 * HZ)
++#define DEFAULT_KEEP_ALIVE_COUNTER_LIMIT 2
++
++#define UDC_HOTPLUG_PIN GPIO_UDC_HOTPLUG
++#define UDC_HOTPLUG_IRQ (IRQ_GPIO_0 + UDC_HOTPLUG_PIN)
++
++/* UDC State bits */
++enum {
++ /* Online state. */
++ BIT_CABLE_ONLINE = 0,
++ BIT_USB_ONLINE,
++
++ /* State changed ?*/
++ BIT_CABLE_CHANGE,
++ BIT_USB_CHANGE,
++
++ /* What detection will be done ? */
++ BIT_DO_CABLE_DETECT,
++ BIT_DO_USB_DETECT,
++
++ /* What detection is requested ? */
++ BIT_REQUEST_CABLE_DETECT,
++ BIT_REQUEST_USB_DETECT,
++
++ /* Indicate whether a detection is finisned. */
++ BIT_USB_DETECT_DONE,
++ BIT_CABLE_DETECT_DONE,
++
++ BIT_UDC_PHY_TOUCHED,
++
++ /* Keep alive */
++ BIT_KEEP_ALIVE,
++ BIT_KEEP_ALIVE_TIMEOUT,
++};
++
++struct uh_data {
++ /* Notifier */
++ struct blocking_notifier_head notifier_head;
++
++ /* Thread */
++ struct task_struct *kthread;
++
++ /* Wait queue */
++ wait_queue_head_t kthread_wq; /* Kernel thread sleep here. */
++ wait_queue_head_t wq; /* Others sleep here. */
++
++ /* UDC State */
++ unsigned long state;
++
++ /* Current Event */
++ udc_hotplug_event_t cur_uh_event;
++
++#if defined (HAVE_DETECT_SYNC)
++ /* Sync seq */
++ unsigned long irq_sync_seq;
++ unsigned long our_sync_seq;
++#endif
++
++ /* Keep alive */
++ struct timer_list keep_alive_timer;
++
++ unsigned long keep_alive_counter_limit;
++ unsigned long keep_alive_timer_interval;
++ unsigned long keep_alive_counter;
++};
++
++static struct uh_data *g_puh_data = NULL;
++
++#if defined (HAVE_DETECT_SYNC)
++/* Seq sync function */
++
++static inline int is_seq_sync(struct uh_data *uh)
++{
++ return (uh->our_sync_seq == uh->irq_sync_seq);
++}
++
++static inline void reset_seq(struct uh_data *uh)
++{
++ uh->our_sync_seq = uh->irq_sync_seq = 0;
++
++ return;
++}
++
++static inline void sync_seq(struct uh_data *uh)
++{
++ uh->our_sync_seq = uh->irq_sync_seq;
++
++ return;
++}
++#endif
++
++/* Call kernel thread to detect. */
++static inline void start_detect(struct uh_data *uh)
++{
++ D("called.\n");
++
++#if defined (HAVE_DETECT_SYNC)
++ uh->irq_sync_seq ++;
++#endif
++
++ wake_up_process(uh->kthread);
++
++ return;
++}
++
++static void wait_gpio_pin_stable(struct uh_data *uh)
++{
++ unsigned long pin = 0;
++ int i = 1;
++
++ pin = __gpio_get_pin(UDC_HOTPLUG_PIN);
++
++ while (i < NR_GPIO_STABLE_TIMES) {
++ if (__gpio_get_pin(UDC_HOTPLUG_PIN) != pin) {
++ pin = __gpio_get_pin(UDC_HOTPLUG_PIN);
++ i = 1;
++ }else
++ i++;
++
++ sleep_on_timeout(&uh->wq, 1);
++ }
++
++ return;
++}
++
++/* Do cable detection */
++static void cable_detect(struct uh_data *uh)
++{
++ D("Wait pin stable.\n");
++
++ /* Wait GPIO pin stable first. */
++ wait_gpio_pin_stable(uh);
++
++ if (__gpio_get_pin(UDC_HOTPLUG_PIN)) {
++ D("Cable online.\n");
++
++ if (!test_and_set_bit(BIT_CABLE_ONLINE, &uh->state)) {
++ D("Cable state change to online.\n");
++
++ set_bit(BIT_CABLE_CHANGE, &uh->state);
++ }
++ }else {
++ D("Cable offline.\n");
++
++ /* Clear keep alive bit. */
++ clear_bit(BIT_KEEP_ALIVE, &uh->state);
++
++ if (test_and_clear_bit(BIT_CABLE_ONLINE, &uh->state)) {
++ D("Cable state change to offline.\n");
++
++ set_bit(BIT_CABLE_CHANGE, &uh->state);
++ }
++ }
++
++ set_bit(BIT_CABLE_DETECT_DONE, &uh->state);
++
++ return;
++}
++
++/* Really do USB detection */
++static int do_usb_detect(struct uh_data *uh)
++{
++ u32 intr_usb;
++ int rv;
++
++ D("called.\n");
++
++ __intc_mask_irq(IRQ_UDC);
++
++ /* Now enable PHY to start detect */
++#ifdef CONFIG_SOC_JZ4740
++ REG_CPM_SCR |= CPM_SCR_USBPHY_ENABLE;
++#elif defined(CONFIG_SOC_JZ4750) || defined(CONFIG_SOC_JZ4750D)
++ REG_CPM_OPCR |= CPM_OPCR_UDCPHY_ENABLE;
++#endif
++ /* Clear IRQs */
++ REG16(USB_REG_INTRINE) = 0;
++ REG16(USB_REG_INTROUTE) = 0;
++ REG8(USB_REG_INTRUSBE) = 0;
++
++ /* disable UDC IRQs first */
++ REG16(USB_REG_INTRINE) = 0;
++ REG16(USB_REG_INTROUTE) = 0;
++ REG8(USB_REG_INTRUSBE) = 0;
++
++ /* Disable DMA */
++ REG32(USB_REG_CNTL1) = 0;
++ REG32(USB_REG_CNTL2) = 0;
++
++ /* Enable HS Mode */
++ REG8(USB_REG_POWER) |= USB_POWER_HSENAB;
++ /* Enable soft connect */
++ REG8(USB_REG_POWER) |= USB_POWER_SOFTCONN;
++
++ D("enable phy! %x %x %x %x %x\n",
++ REG8(USB_REG_POWER),
++ REG_CPM_OPCR,
++ REG16(USB_REG_INTRINE),
++ REG16(USB_REG_INTROUTE),
++ REG8(USB_REG_INTRUSBE));
++
++ /* Wait a moment. */
++ sleep_on_timeout(&uh->wq, NR_JIFFIES_USB_DETECT_WAIT);
++
++ intr_usb = REG8(USB_REG_INTRUSB);
++ if ((intr_usb & USB_INTR_RESET) ||
++ (intr_usb & USB_INTR_RESUME) ||
++ (intr_usb & USB_INTR_SUSPEND))
++ {
++ rv = 1;
++ }
++ else
++ {
++ rv = 0;
++ }
++
++ /* Detect finish ,clean every thing */
++ /* Disconnect from usb */
++ REG8(USB_REG_POWER) &= ~USB_POWER_SOFTCONN;
++ /* Disable the USB PHY */
++#ifdef CONFIG_SOC_JZ4740
++ REG_CPM_SCR &= ~CPM_SCR_USBPHY_ENABLE;
++#elif defined(CONFIG_SOC_JZ4750) || defined(CONFIG_SOC_JZ4750D)
++ REG_CPM_OPCR &= ~CPM_OPCR_UDCPHY_ENABLE;
++#endif
++ /* Clear IRQs */
++ REG16(USB_REG_INTRINE) = 0;
++ REG16(USB_REG_INTROUTE) = 0;
++ REG8(USB_REG_INTRUSBE) = 0;
++ __intc_ack_irq(IRQ_UDC);
++ __intc_unmask_irq(IRQ_UDC);
++
++ mdelay(1);
++
++ return rv;
++}
++
++/* Do USB bus protocol detection */
++static void usb_detect(struct uh_data *uh)
++{
++ int rv = 0;
++
++ D("Called.\n");
++
++ /* If the cable has already been offline, we just pass the real USB detection. */
++ if (test_bit(BIT_CABLE_ONLINE, &uh->state)) {
++
++ D("Do real detection.\n");
++
++ rv = do_usb_detect(uh);
++ set_bit(BIT_UDC_PHY_TOUCHED, &uh->state);
++ }else{
++ clear_bit(BIT_UDC_PHY_TOUCHED, &uh->state);
++ D("No need to do real detection.\n");
++ }
++
++ if (rv) {
++ if (!test_and_set_bit(BIT_USB_ONLINE, &uh->state))
++ set_bit(BIT_USB_CHANGE, &uh->state);
++ }else{
++ /* Clear keep alive bit. */
++ clear_bit(BIT_KEEP_ALIVE, &uh->state);
++
++ if (test_and_clear_bit(BIT_USB_ONLINE, &uh->state))
++ set_bit(BIT_USB_CHANGE, &uh->state);
++ }
++
++ set_bit(BIT_USB_DETECT_DONE, &uh->state);
++ return;
++}
++
++/* USB is active ? */
++static int usb_is_active(void)
++{
++ unsigned long tmp;
++
++ tmp = REG16(USB_REG_FRAME);
++
++ mdelay(2); /* USB 1.1 Frame length is 1ms, USB 2.0 HS Frame length is 125us */
++
++ rmb();
++
++ return tmp == REG16(USB_REG_FRAME) ? 0 : 1;
++}
++
++/* Broadcast event to notifier */
++static void do_broadcast_event(struct uh_data *uh)
++{
++ udc_hotplug_event_t *e = &uh->cur_uh_event;
++
++ /* Collect Information */
++ if (test_and_clear_bit(BIT_CABLE_CHANGE, &uh->state)) {
++ e->type = EVENT_TYPE_CABLE;
++ e->state = (test_bit(BIT_CABLE_ONLINE, &uh->state)) ? EVENT_STATE_ONLINE: EVENT_STATE_OFFLINE;
++ e->flags = 0;
++
++ D("Broadcast cable event -> State: %s.\n", (e->state == EVENT_STATE_ONLINE ? "Online" : "Offline"));
++
++ /* Kick chain. */
++ blocking_notifier_call_chain(&uh->notifier_head, BROADCAST_TYPE_EVENT, e);
++ }
++
++ if (test_and_clear_bit(BIT_USB_CHANGE, &uh->state)) {
++ e->type = EVENT_TYPE_USB;
++ e->state = (test_bit(BIT_USB_ONLINE, &uh->state)) ? EVENT_STATE_ONLINE : EVENT_STATE_OFFLINE;
++ e->flags = 0;
++
++ if (test_bit(BIT_UDC_PHY_TOUCHED, &uh->state)) {
++ set_bit(EVENT_FLAG_UDC_PHY_TOUCHED, &e->flags);
++ }
++
++ D("Broadcast USB event -> State: %s.\n", (e->state == EVENT_STATE_ONLINE ? "Online" : "Offline"));
++
++ /* Kick chain. */
++ blocking_notifier_call_chain(&uh->notifier_head, BROADCAST_TYPE_EVENT, e);
++ }
++
++ return;
++}
++
++/* Handle pending request */
++static inline void handle_request(struct uh_data *uh)
++{
++ if (test_and_clear_bit(BIT_REQUEST_CABLE_DETECT, &uh->state))
++ set_bit(BIT_DO_CABLE_DETECT, &uh->state);
++
++ if (test_and_clear_bit(BIT_REQUEST_USB_DETECT, &uh->state))
++ set_bit(BIT_DO_USB_DETECT, &uh->state);
++
++ return;
++}
++
++/* Have pending request ? */
++static inline int pending_request(struct uh_data *uh)
++{
++ if (test_bit(BIT_REQUEST_CABLE_DETECT, &uh->state) || test_bit(BIT_REQUEST_USB_DETECT, &uh->state))
++ return 1;
++ else
++ return 0;
++}
++
++#if defined (HAVE_DETECT_SYNC)
++static void prepare_restart(struct uh_data *uh, wait_queue_head_t *wq)
++{
++
++ D("Called.\n");
++
++ if (test_bit(BIT_CABLE_DETECT_DONE, &uh->state))
++ set_bit(BIT_DO_CABLE_DETECT, &uh->state);
++
++ if (test_bit(BIT_USB_DETECT_DONE, &uh->state))
++ set_bit(BIT_DO_USB_DETECT, &uh->state);
++
++ sleep_on_timeout(wq, NR_JIFFIES_SLEEP_BEFORE_RESTART);
++
++ sync_seq(uh);
++
++ return;
++}
++
++/* Called from kernel thread */
++static void udc_pnp_detect(struct uh_data *uh)
++{
++ int nr_restart = 0;
++
++ D("Do UDC detection.\n");
++
++ while (nr_restart != NR_RESTART_TIMES) {
++ /* Do cable detection ? */
++ if (test_bit(BIT_DO_CABLE_DETECT, &uh->state)) {
++ D("Do cable detection.\n");
++
++ cable_detect(uh);
++ }
++
++ /* Need restart ? */
++ if (!is_seq_sync(uh)) {
++ nr_restart ++;
++
++ prepare_restart(uh, &uh->wq);
++ continue;
++ }
++
++ /* Do USB detection ? */
++ if (test_bit(BIT_DO_USB_DETECT, &uh->state)) {
++ D("Do USB detection.\n");
++
++ usb_detect(uh);
++ }
++
++ /* Need restart ? */
++ if (!is_seq_sync(uh)) {
++ nr_restart ++;
++
++ prepare_restart(uh, &uh->wq);
++ continue;
++ }
++
++ /* Done */
++ D("Done.\n");
++
++ clear_bit(BIT_DO_CABLE_DETECT, &uh->state);
++ clear_bit(BIT_DO_USB_DETECT, &uh->state);
++
++ break;
++ }
++
++ return;
++}
++
++static inline void broadcast_event(struct uh_data *uh)
++{
++ /* Sync ? */
++ if (is_seq_sync(uh)) {
++ D("Sync -> Broadcast event.\n");
++
++ do_broadcast_event(uh);
++ }else{
++ D("Not sync -> Prepare restarting.\n");
++
++ prepare_restart(uh, &uh->kthread_wq);
++ }
++}
++
++static inline void udc_pnp_thread_sleep(struct uh_data *uh)
++{
++ /* Sync ? -> Sleep. */
++ if ( !pending_request(uh) || is_seq_sync(uh)) {
++ D("Sleep.\n");
++
++ sleep_on(&uh->kthread_wq);
++ }
++
++ return;
++}
++
++#else /* !HAVE_DETECT_SYNC */
++
++/* Called from kernel thread */
++static void udc_pnp_detect(struct uh_data *uh)
++{
++ D("Do UDC detection.\n");
++
++ /* Do cable detection ? */
++ if (test_bit(BIT_DO_CABLE_DETECT, &uh->state)) {
++ D("Do cable detection.\n");
++
++ cable_detect(uh);
++ }
++
++ /* Do USB detection ? */
++ if (test_bit(BIT_DO_USB_DETECT, &uh->state)) {
++ D("Do USB detection.\n");
++
++ usb_detect(uh);
++ }
++
++ /* Done */
++ D("Done.\n");
++
++ clear_bit(BIT_DO_CABLE_DETECT, &uh->state);
++ clear_bit(BIT_DO_USB_DETECT, &uh->state);
++
++ return;
++}
++
++static inline void broadcast_event(struct uh_data *uh)
++{
++ D("Broadcast event.\n");
++
++ do_broadcast_event(uh);
++
++ return;
++}
++
++static inline void udc_pnp_thread_sleep(struct uh_data *uh)
++{
++ if (!pending_request(uh)) {
++ D("Sleep.\n");
++
++ sleep_on(&uh->kthread_wq);
++ }
++
++ return;
++}
++#endif /* HAVE_DETECT_SYNC */
++
++/* Kernel thread */
++static int udc_pnp_thread(void *data)
++{
++ struct uh_data *uh = (struct uh_data *)data;
++
++ while (!kthread_should_stop()) {
++ /* Sleep. */
++ udc_pnp_thread_sleep(uh);
++
++ D("Running.\n");
++
++ if (kthread_should_stop())
++ break;
++
++#if defined (HAVE_DETECT_SYNC)
++ /* Sync */
++ sync_seq(uh);
++#endif
++
++ D("Will do UDC detection.\n");
++
++ handle_request(uh);
++
++ /* Do detect */
++ udc_pnp_detect(uh);
++
++ D("Done.\n");
++
++ /* Broadcast event. */
++ broadcast_event(uh);
++ }
++
++ D("Exit.\n");
++
++ return 0;
++}
++
++static irqreturn_t udc_pnp_irq(int irq, void *dev_id)
++{
++ struct uh_data *uh = (struct uh_data *)dev_id;
++
++ D("called.\n");
++
++ /* clear interrupt pending status */
++ __gpio_ack_irq(UDC_HOTPLUG_PIN);
++
++ set_bit(BIT_REQUEST_CABLE_DETECT, &uh->state);
++ set_bit(BIT_REQUEST_USB_DETECT, &uh->state);
++
++ start_detect(uh);
++
++ return IRQ_HANDLED;
++}
++
++static void __init init_gpio(struct uh_data *uh)
++{
++ /* get current pin level */
++ __gpio_disable_pull(UDC_HOTPLUG_PIN);
++ __gpio_as_input(UDC_HOTPLUG_PIN);
++ udelay(1);
++
++ cable_detect(uh);
++
++ /* Because of every plug IN/OUT action will casue more than one interrupt,
++ So whether rising trigger or falling trigger method can both start the detection.
++ */
++
++ __gpio_as_irq_rise_edge(UDC_HOTPLUG_PIN);
++
++ if (test_bit(BIT_CABLE_ONLINE, &uh->state)) {
++ D("Cable Online -> Do start detection.\n");
++
++ set_bit(BIT_REQUEST_CABLE_DETECT, &uh->state);
++ set_bit(BIT_REQUEST_USB_DETECT, &uh->state);
++
++ start_detect(uh);
++ }else{
++ D("Cable Offline.\n");
++ }
++
++ return;
++}
++
++/* ---------------------------------------------------------------------------------- */
++/* Export routines */
++static void udc_hotplug_keep_alive_timer_func(unsigned long data)
++{
++ struct uh_data *uh = (struct uh_data *)data;
++
++ D("Timer running.\n");
++
++ /* Decrease the counter. */
++ if (test_bit(BIT_KEEP_ALIVE, &uh->state) && !(--uh->keep_alive_counter)) {
++
++ if (!usb_is_active()) {
++ D("Timeout.\n");
++
++ set_bit(BIT_KEEP_ALIVE_TIMEOUT, &uh->state);
++
++ clear_bit(BIT_USB_ONLINE, &uh->state);
++ set_bit(BIT_USB_CHANGE, &uh->state);
++
++ /* No detection needed. We just want to broadcast our event. */
++ start_detect(uh);
++ }
++ }
++
++ /* Set next active time. */
++ if (test_bit(BIT_KEEP_ALIVE, &uh->state) && !test_bit(BIT_KEEP_ALIVE_TIMEOUT, &uh->state))
++ mod_timer(&uh->keep_alive_timer, uh->keep_alive_timer_interval + jiffies);
++ else
++ D("Timer will stop.\n");
++
++ return;
++}
++
++int udc_hotplug_register_notifier(struct notifier_block *n, int request_state)
++{
++ struct uh_data *uh = g_puh_data;
++
++ udc_hotplug_event_t e;
++
++ D("Register notifier: 0x%p.\n", (void *)n);
++
++ /* Notifer will be registered is requesting current state. */
++ if (request_state) {
++
++ BUG_ON(!n->notifier_call);
++
++ /* Cable State */
++ e.type = EVENT_TYPE_CABLE;
++ e.state = (test_bit(BIT_CABLE_ONLINE, &uh->state)) ? EVENT_STATE_ONLINE: EVENT_STATE_OFFLINE;
++
++ n->notifier_call(n, BROADCAST_TYPE_STATE, &e);
++
++ /* USB State */
++ e.type = EVENT_TYPE_USB;
++ e.state = (test_bit(BIT_CABLE_ONLINE, &uh->state)) ? EVENT_STATE_ONLINE: EVENT_STATE_OFFLINE;
++
++ n->notifier_call(n, BROADCAST_TYPE_STATE, &e);
++ }
++
++ return blocking_notifier_chain_register(&uh->notifier_head, n);
++
++}EXPORT_SYMBOL(udc_hotplug_register_notifier);
++
++int udc_hotplug_unregister_notifier(struct notifier_block *n)
++{
++ struct uh_data *uh = g_puh_data;
++
++ D("Unregister notifier: 0x%p.\n", (void *)n);
++
++ return blocking_notifier_chain_unregister(&uh->notifier_head, n);
++
++}EXPORT_SYMBOL(udc_hotplug_unregister_notifier);
++
++/* Start keep alive, 0 - Use default value */
++int udc_hotplug_start_keep_alive(unsigned long timer_interval_in_jiffies, unsigned long counter_limit)
++{
++ struct uh_data *uh = g_puh_data;
++
++ /* Already started. */
++ if (test_and_set_bit(BIT_KEEP_ALIVE, &uh->state))
++ return 0;
++
++ if (timer_interval_in_jiffies)
++ uh->keep_alive_timer_interval = timer_interval_in_jiffies;
++ else
++ uh->keep_alive_timer_interval = DEFAULT_KEEP_ALIVE_TIMER_INTERVAL;
++
++ if (counter_limit)
++ uh->keep_alive_counter_limit = counter_limit;
++ else
++ uh->keep_alive_counter_limit = DEFAULT_KEEP_ALIVE_COUNTER_LIMIT;
++
++ uh->keep_alive_counter = uh->keep_alive_counter_limit;
++
++ /* Active our timer. */
++ return mod_timer(&uh->keep_alive_timer, 3 + jiffies);
++
++}EXPORT_SYMBOL(udc_hotplug_start_keep_alive);
++
++void udc_hotplug_do_keep_alive(void)
++{
++ struct uh_data *uh = g_puh_data;
++
++ D("Keep alive.\n");
++
++ /* Reset counter */
++ uh->keep_alive_counter = uh->keep_alive_counter_limit;
++
++ /* We are alive again. */
++ if (test_and_clear_bit(BIT_KEEP_ALIVE_TIMEOUT, &uh->state)) {
++ D("Reactive timer.\n");
++
++ /* Active timer. */
++ set_bit(BIT_KEEP_ALIVE, &uh->state);
++ mod_timer(&uh->keep_alive_timer, 3 + jiffies);
++ }
++
++ return;
++}EXPORT_SYMBOL(udc_hotplug_do_keep_alive);
++
++void udc_hotplug_stop_keep_alive(void)
++{
++ struct uh_data *uh = g_puh_data;
++
++ clear_bit(BIT_KEEP_ALIVE, &uh->state);
++
++ return;
++
++}EXPORT_SYMBOL(udc_hotplug_stop_keep_alive);
++
++/* ----------------------------------------------------------------------------- */
++
++/*
++ * Module init and exit
++ */
++static int __init udc_hotplug_init(void)
++{
++ struct uh_data *uh;
++
++ unsigned long status = 0;
++
++ int rv;
++
++ g_puh_data = (struct uh_data *)kzalloc(sizeof(struct uh_data), GFP_KERNEL);
++ if (!g_puh_data) {
++ printk(KERN_ERR PFX": Failed to allocate memory.\n");
++ return -ENOMEM;
++ }
++
++ uh = g_puh_data;
++
++ set_bit(1, &status);
++
++ BLOCKING_INIT_NOTIFIER_HEAD(&uh->notifier_head);
++
++ init_waitqueue_head(&uh->kthread_wq);
++ init_waitqueue_head(&uh->wq);
++
++ init_timer(&uh->keep_alive_timer);
++
++ uh->keep_alive_timer.function = udc_hotplug_keep_alive_timer_func;
++ uh->keep_alive_timer.expires = jiffies - 1; /* Add a stopped timer */
++ uh->keep_alive_timer.data = (unsigned long)uh;
++
++ add_timer(&uh->keep_alive_timer);
++
++#if defined (HAVE_DETECT_SYNC)
++ reset_seq(uh);
++#endif
++
++ /* Create pnp thread and register IRQ */
++ uh->kthread = kthread_run(udc_pnp_thread, uh, "kudcd");
++ if (IS_ERR(uh->kthread)) {
++ printk(KERN_ERR PFX": Failed to create system monitor thread.\n");
++ rv = PTR_ERR(uh->kthread);
++ goto err;
++ }
++
++ set_bit(2, &status);
++
++ rv = request_irq(UDC_HOTPLUG_IRQ, udc_pnp_irq, IRQF_DISABLED, "udc_pnp", uh);
++ if (rv) {
++ printk(KERN_ERR PFX": Could not get udc hotplug irq %d\n", UDC_HOTPLUG_IRQ);
++ goto err;
++ }
++
++ init_gpio(uh);
++
++#if defined (HAVE_DETECT_SYNC)
++ printk(KERN_ERR PFX": Registered(HAVE_DETECT_SYNC).\n");
++#else
++ printk(KERN_ERR PFX": Registered.\n");
++#endif
++ return 0;
++
++err:
++ if (test_bit(2, &status)) {
++ kthread_stop(uh->kthread);
++ }
++
++ if (test_bit(1, &status)) {
++ kfree(g_puh_data);
++ }
++
++ return rv;
++}
++
++static void __exit udc_hotplug_exit(void)
++{
++ free_irq(UDC_HOTPLUG_IRQ, g_puh_data);
++
++ kthread_stop(g_puh_data->kthread);
++
++ kfree(g_puh_data);
++
++ return;
++}
++
++module_init(udc_hotplug_init);
++module_exit(udc_hotplug_exit);
++
++MODULE_AUTHOR("River Wang <zwang@ingenic.cn>");
++MODULE_LICENSE("GPL");
+diff -ruN linux-2.6.31-vanilla/drivers/video/backlight/gpm940b0.c linux-2.6.31/drivers/video/backlight/gpm940b0.c
+--- linux-2.6.31-vanilla/drivers/video/backlight/gpm940b0.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/drivers/video/backlight/gpm940b0.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,253 @@
++/*
++ * Copyright (C) 2009, Lars-Peter Clausen <lars@metafoo.de>
++ * JZ4720/JZ4740 SoC LCD framebuffer driver
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#include <linux/module.h>
++#include <linux/spi/spi.h>
++#include <linux/lcd.h>
++#include <linux/backlight.h>
++#include <linux/delay.h>
++
++struct gpm940b0 {
++ struct spi_device *spi;
++ struct lcd_device *lcd;
++ struct backlight_device *bl;
++ unsigned enabled:1;
++};
++
++static int gpm940b0_write_reg(struct spi_device *spi, uint8_t reg,
++ uint8_t data)
++{
++ uint8_t buf[2];
++ buf[0] = ((reg & 0x40) << 1) | (reg & 0x3f);
++ buf[1] = data;
++
++ return spi_write(spi, buf, sizeof(buf));
++}
++
++static void gpm940b0_power_disable(struct gpm940b0 *gpm940b0)
++{
++ int ret = gpm940b0_write_reg(gpm940b0->spi, 0x5, 0xc6) ;
++ if (ret < 0)
++ printk("Failed to disable power: %d\n", ret);
++}
++
++static void gpm940b0_power_enable(struct gpm940b0 *gpm940b0)
++{
++ gpm940b0_write_reg(gpm940b0->spi, 0x5, 0xc7);
++}
++
++
++static int gpm940b0_set_power(struct lcd_device *lcd, int power)
++{
++ struct gpm940b0 *gpm940b0 = lcd_get_data(lcd);
++
++ switch (power) {
++ case FB_BLANK_UNBLANK:
++ gpm940b0->enabled = 1;
++ gpm940b0_power_enable(gpm940b0);
++ break;
++ default:
++ gpm940b0->enabled = 0;
++ gpm940b0_power_disable(gpm940b0);
++ break;
++ }
++ return 0;
++}
++
++static int gpm940b0_set_contrast(struct lcd_device *lcd, int contrast)
++{
++ struct gpm940b0 *gpm940b0 = lcd_get_data(lcd);
++ gpm940b0_write_reg(gpm940b0->spi, 0x0d, contrast);
++ return 0;
++}
++
++static int gpm940b0_set_mode(struct lcd_device *lcd, struct fb_videomode *mode)
++{
++ if (mode->xres != 320 && mode->yres != 240)
++ return -EINVAL;
++
++ return 0;
++}
++
++/*
++int gpm940b0_bl_update_status(struct backlight_device *bl)
++{
++ struct gpm940b0 *gpm940b0 = bl_get_data(bl);
++
++ gpm940b0->reg5 &= ~0x38;
++ gpm940b0->reg5 |= ((bl->props.brightness << 3) & 0x38);
++
++ gpm940b0_write_reg(gpm940b0->spi, 0x5, gpm940b0->reg5);
++
++ return 0;
++}*/
++
++static ssize_t reg_write(struct device *dev, struct device_attribute *attr,
++ const char *buf, size_t count)
++{
++ char *buf2;
++ uint32_t reg = simple_strtoul(buf, &buf2, 10);
++ uint32_t val = simple_strtoul(buf2 + 1, NULL, 10);
++ struct gpm940b0 *gpm940b0 = dev_get_drvdata(dev);
++
++ if (reg < 0 || val < 0)
++ return -EINVAL;
++
++ gpm940b0_write_reg(gpm940b0->spi, reg, val);
++ return count;
++}
++
++static DEVICE_ATTR(reg, 0644, NULL, reg_write);
++
++static struct lcd_ops gpm940b0_lcd_ops = {
++ .set_power = gpm940b0_set_power,
++ .set_contrast = gpm940b0_set_contrast,
++ .set_mode = gpm940b0_set_mode,
++};
++
++#if 0
++static struct backlight_ops gpm940b0_bl_ops = {
++/* .get_brightness = gpm940b0_bl_get_brightness,*/
++ .update_status = gpm940b0_bl_update_status,
++};
++#endif
++
++static int __devinit gpm940b0_probe(struct spi_device *spi)
++{
++ int ret;
++ struct gpm940b0 *gpm940b0;
++
++ gpm940b0 = kmalloc(sizeof(*gpm940b0), GFP_KERNEL);
++
++ spi->bits_per_word = 8;
++
++ ret = spi_setup(spi);
++ if (ret) {
++ dev_err(&spi->dev, "Failed to setup spi\n");
++ goto err_free_gpm940b0;
++ }
++
++ gpm940b0->spi = spi;
++
++ gpm940b0->lcd = lcd_device_register("gpm940b0-lcd", &spi->dev, gpm940b0,
++ &gpm940b0_lcd_ops);
++
++ if (IS_ERR(gpm940b0->lcd)) {
++ ret = PTR_ERR(gpm940b0->lcd);
++ dev_err(&spi->dev, "Failed to register lcd device: %d\n", ret);
++ goto err_free_gpm940b0;
++ }
++
++ gpm940b0->lcd->props.max_contrast = 255;
++
++#if 0
++ gpm940b0->bl = backlight_device_register("gpm940b0-bl", &spi->dev, gpm940b0,
++ &gpm940b0_bl_ops);
++
++ if (IS_ERR(gpm940b0->bl)) {
++ ret = PTR_ERR(gpm940b0->bl);
++ dev_err(&spi->dev, "Failed to register backlight device: %d\n", ret);
++ gpm940b0->bl = NULL;
++ } else {
++ gpm940b0->bl->props.max_brightness = 8;
++ gpm940b0->bl->props.brightness = 0;
++ gpm940b0->bl->props.power = FB_BLANK_UNBLANK;
++ }
++#endif
++
++ ret = device_create_file(&spi->dev, &dev_attr_reg);
++ if (ret)
++ goto err_unregister_lcd;
++
++ gpm940b0->enabled = 1;
++ dev_set_drvdata(&spi->dev, gpm940b0);
++
++ gpm940b0_write_reg(spi, 0x13, 0x01);
++ gpm940b0_write_reg(spi, 0x5, 0xc7);
++ return 0;
++err_unregister_lcd:
++ lcd_device_unregister(gpm940b0->lcd);
++err_free_gpm940b0:
++ kfree(gpm940b0);
++ return ret;
++}
++
++static int __devexit gpm940b0_remove(struct spi_device *spi)
++{
++ struct gpm940b0 *gpm940b0 = spi_get_drvdata(spi);
++#if 0
++ if (gpm940b0->bl)
++ backlight_device_unregister(gpm940b0->bl);
++#endif
++
++ lcd_device_unregister(gpm940b0->lcd);
++
++ spi_set_drvdata(spi, NULL);
++ kfree(gpm940b0);
++ return 0;
++}
++
++#ifdef CONFIG_PM
++
++static int gpm940b0_suspend(struct spi_device *spi, pm_message_t state)
++{
++ struct gpm940b0 *gpm940b0 = spi_get_drvdata(spi);
++ if (gpm940b0->enabled) {
++ gpm940b0_power_disable(gpm940b0);
++ mdelay(10);
++ }
++ return 0;
++}
++
++static int gpm940b0_resume(struct spi_device *spi)
++{
++ struct gpm940b0 *gpm940b0 = spi_get_drvdata(spi);
++ if (gpm940b0->enabled)
++ gpm940b0_power_enable(gpm940b0);
++ return 0;
++}
++
++#else
++#define gpm940b0_suspend NULL
++#define gpm940b0_resume NULL
++#endif
++
++static struct spi_driver gpm940b0_driver = {
++ .driver = {
++ .name = "gpm940b0",
++ .owner = THIS_MODULE,
++ },
++ .probe = gpm940b0_probe,
++ .remove = __devexit_p(gpm940b0_remove),
++ .suspend = gpm940b0_suspend,
++ .resume = gpm940b0_resume,
++};
++
++static int __init gpm940b0_init(void)
++{
++ return spi_register_driver(&gpm940b0_driver);
++}
++module_init(gpm940b0_init);
++
++static void __exit gpm940b0_exit(void)
++{
++ return spi_unregister_driver(&gpm940b0_driver);
++}
++module_exit(gpm940b0_exit)
++
++MODULE_AUTHOR("Lars-Peter Clausen");
++MODULE_LICENSE("GPL v2");
++MODULE_DESCRIPTION("LCD and backlight controll for Giantplus GPM940B0");
++MODULE_ALIAS("spi:gpm940b0");
+diff -ruN linux-2.6.31-vanilla/drivers/video/jz4740_fb.c linux-2.6.31/drivers/video/jz4740_fb.c
+--- linux-2.6.31-vanilla/drivers/video/jz4740_fb.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/drivers/video/jz4740_fb.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,486 @@
++/*
++ * Copyright (C) 2009, Lars-Peter Clausen <lars@metafoo.de>
++ * JZ4720/JZ4740 SoC LCD framebuffer driver
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#include <linux/types.h>
++#include <linux/platform_device.h>
++#include <linux/fb.h>
++#include <linux/module.h>
++#include <linux/dma-mapping.h>
++#include <linux/jz4740_fb.h>
++
++#include <linux/delay.h>
++
++#define JZ_REG_LCD_CFG 0x00
++#define JZ_REG_LCD_VSYNC 0x04
++#define JZ_REG_LCD_HSYNC 0x08
++#define JZ_REG_LCD_VAT 0x0C
++#define JZ_REG_LCD_DAH 0x10
++#define JZ_REG_LCD_DAV 0x14
++#define JZ_REG_LCD_PS 0x18
++#define JZ_REG_LCD_CLS 0x1C
++#define JZ_REG_LCD_SPL 0x20
++#define JZ_REG_LCD_REV 0x24
++#define JZ_REG_LCD_CTRL 0x30
++#define JZ_REG_LCD_STATE 0x34
++#define JZ_REG_LCD_IID 0x38
++#define JZ_REG_LCD_DA0 0x40
++#define JZ_REG_LCD_SA0 0x44
++#define JZ_REG_LCD_FID0 0x48
++#define JZ_REG_LCD_CMD0 0x4C
++#define JZ_REG_LCD_DA1 0x50
++#define JZ_REG_LCD_SA1 0x54
++#define JZ_REG_LCD_FID1 0x58
++#define JZ_REG_LCD_CMD1 0x5C
++
++#define JZ_LCD_CFG_SLCD BIT(31)
++#define JZ_LCD_CFG_PSM BIT(23)
++#define JZ_LCD_CFG_CLSM BIT(22)
++#define JZ_LCD_CFG_SPLM BIT(21)
++#define JZ_LCD_CFG_REVM BIT(20)
++#define JZ_LCD_CFG_HSYNCM BIT(19)
++#define JZ_LCD_CFG_PCLKM BIT(18)
++#define JZ_LCD_CFG_INV BIT(17)
++#define JZ_LCD_CFG_SYNC_DIR BIT(16)
++#define JZ_LCD_CFG_PSP BIT(15)
++#define JZ_LCD_CFG_CLSP BIT(14)
++#define JZ_LCD_CFG_SPLP BIT(13)
++#define JZ_LCD_CFG_REVP BIT(12)
++#define JZ_LCD_CFG_HSYNCP BIT(11)
++#define JZ_LCD_CFG_PCLKP BIT(10)
++#define JZ_LCD_CFG_DEP BIT(9)
++#define JZ_LCD_CFG_VSYNCP BIT(8)
++#define JZ_LCD_CFG_18_BIT BIT(7)
++#define JZ_LCD_CFG_PDW BIT(5) | BIT(4)
++#define JZ_LCD_CFG_MODE_MASK 0xf
++
++#define JZ_LCD_CTRL_BURST_4 (0x0 << 28)
++#define JZ_LCD_CTRL_BURST_8 (0x1 << 28)
++#define JZ_LCD_CTRL_BURST_16 (0x2 << 28)
++#define JZ_LCD_CTRL_RGB555 BIT(27)
++#define JZ_LCD_CTRL_OFUP BIT(26)
++#define JZ_LCD_CTRL_FRC_GRAYSCALE_16 (0x0 << 24)
++#define JZ_LCD_CTRL_FRC_GRAYSCALE_4 (0x1 << 24)
++#define JZ_LCD_CTRL_FRC_GRAYSCALE_2 (0x2 << 24)
++#define JZ_LCD_CTRL_PDD_MASK (0xff << 16)
++#define JZ_LCD_CTRL_EOF_IRQ BIT(13)
++#define JZ_LCD_CTRL_SOF_IRQ BIT(12)
++#define JZ_LCD_CTRL_OFU_IRQ BIT(11)
++#define JZ_LCD_CTRL_IFU0_IRQ BIT(10)
++#define JZ_LCD_CTRL_IFU1_IRQ BIT(9)
++#define JZ_LCD_CTRL_DD_IRQ BIT(8)
++#define JZ_LCD_CTRL_QDD_IRQ BIT(7)
++#define JZ_LCD_CTRL_REVERSE_ENDIAN BIT(6)
++#define JZ_LCD_CTRL_LSB_FISRT BIT(5)
++#define JZ_LCD_CTRL_DISABLE BIT(4)
++#define JZ_LCD_CTRL_ENABLE BIT(3)
++#define JZ_LCD_CTRL_BPP_1 0x0
++#define JZ_LCD_CTRL_BPP_2 0x1
++#define JZ_LCD_CTRL_BPP_4 0x2
++#define JZ_LCD_CTRL_BPP_8 0x3
++#define JZ_LCD_CTRL_BPP_15_16 0x4
++#define JZ_LCD_CTRL_BPP_18_24 0x5
++
++#define JZ_LCD_CMD_SOF_IRQ BIT(15)
++#define JZ_LCD_CMD_EOF_IRQ BIT(16)
++#define JZ_LCD_CMD_ENABLE_PAL BIT(12)
++
++#define JZ_LCD_SYNC_MASK 0x3ff
++
++struct jzfb_framedesc {
++ uint32_t next;
++ uint32_t addr;
++ uint32_t id;
++ uint32_t cmd;
++} __attribute__((packed));
++
++struct jzfb {
++ struct fb_info *fb;
++ struct platform_device *pdev;
++ void __iomem *base;
++ struct resource *mem;
++ struct jz4740_fb_platform_data *pdata;
++
++ void *devmem;
++ size_t devmem_size;
++ dma_addr_t devmem_phys;
++ void *vidmem;
++ size_t vidmem_size;
++ dma_addr_t vidmem_phys;
++ struct jzfb_framedesc *framedesc;
++
++ uint32_t pseudo_palette[16];
++};
++
++static struct fb_fix_screeninfo jzfb_fix __devinitdata = {
++ .id = "JZ4740 FB",
++ .type = FB_TYPE_PACKED_PIXELS,
++ .visual = FB_VISUAL_TRUECOLOR,
++ .xpanstep = 0,
++ .ypanstep = 0,
++ .ywrapstep = 0,
++ .accel = FB_ACCEL_NONE,
++};
++
++int jzfb_setcolreg(unsigned regno, unsigned red, unsigned green, unsigned blue,
++ unsigned transp, struct fb_info *fb)
++{
++ ((uint32_t*)fb->pseudo_palette)[regno] = red << 16 | green << 8 | blue;
++ return 0;
++}
++
++static int jzfb_get_controller_bpp(struct jzfb *jzfb)
++{
++ switch(jzfb->pdata->bpp) {
++ case 18:
++ case 24:
++ return 32;
++ break;
++ default:
++ return jzfb->pdata->bpp;
++ }
++}
++
++static int jzfb_check_var(struct fb_var_screeninfo *var, struct fb_info *fb)
++{
++ struct jzfb* jzfb = fb->par;
++ struct fb_videomode *mode = jzfb->pdata->modes;
++ int i;
++
++ if (fb->var.bits_per_pixel != jzfb_get_controller_bpp(jzfb) &&
++ fb->var.bits_per_pixel != jzfb->pdata->bpp)
++ return -EINVAL;
++
++ for (i = 0; i < jzfb->pdata->num_modes; ++i, ++mode) {
++ if (mode->xres == fb->var.xres && mode->yres == fb->var.yres)
++ break;
++ }
++
++ if (i == jzfb->pdata->num_modes)
++ return -EINVAL;
++
++ fb_videomode_to_var(&fb->var, fb->mode);
++
++ switch (jzfb->pdata->bpp) {
++ case 8:
++ break;
++ case 15:
++ var->red.offset = 10;
++ var->red.length = 5;
++ var->green.offset = 6;
++ var->green.length = 5;
++ var->blue.offset = 0;
++ var->blue.length = 5;
++ break;
++ case 16:
++ var->red.offset = 11;
++ var->red.length = 5;
++ var->green.offset = 6;
++ var->green.length = 6;
++ var->blue.offset = 0;
++ var->blue.length = 5;
++ break;
++ case 18:
++ var->red.offset = 16;
++ var->red.length = 6;
++ var->green.offset = 8;
++ var->green.length = 6;
++ var->blue.offset = 0;
++ var->blue.length = 6;
++ fb->var.bits_per_pixel = 32;
++ break;
++ case 32:
++ case 24:
++ var->transp.offset = 24;
++ var->transp.length = 8;
++ var->red.offset = 16;
++ var->red.length = 8;
++ var->green.offset = 8;
++ var->green.length = 8;
++ var->blue.offset = 0;
++ var->blue.length = 8;
++ fb->var.bits_per_pixel = 32;
++ break;
++ default:
++ break;
++ }
++
++ return 0;
++}
++
++static int jzfb_set_par(struct fb_info *info)
++{
++ struct jzfb* jzfb = info->par;
++ struct fb_var_screeninfo *var = &info->var;
++ uint16_t hds, vds;
++ uint16_t hde, vde;
++ uint16_t ht, vt;
++ uint32_t ctrl;
++
++ hds = var->hsync_len + var->left_margin;
++ hde = hds + var->xres;
++ ht = hde + var->right_margin;
++
++ vds = var->vsync_len + var->upper_margin;
++ vde = vds + var->yres;
++ vt = vde + var->lower_margin;
++
++ writel(var->hsync_len, jzfb->base + JZ_REG_LCD_HSYNC);
++ writel(var->vsync_len, jzfb->base + JZ_REG_LCD_VSYNC);
++
++ writel((ht << 16) | vt, jzfb->base + JZ_REG_LCD_VAT);
++
++ writel((hds << 16) | hde, jzfb->base + JZ_REG_LCD_DAH);
++ writel((vds << 16) | vde, jzfb->base + JZ_REG_LCD_DAV);
++
++ ctrl = JZ_LCD_CTRL_OFUP | JZ_LCD_CTRL_BURST_16;
++ ctrl |= JZ_LCD_CTRL_ENABLE;
++
++ switch (jzfb->pdata->bpp) {
++ case 1:
++ ctrl |= JZ_LCD_CTRL_BPP_1;
++ break;
++ case 2:
++ ctrl |= JZ_LCD_CTRL_BPP_2;
++ break;
++ case 4:
++ ctrl |= JZ_LCD_CTRL_BPP_4;
++ break;
++ case 8:
++ ctrl |= JZ_LCD_CTRL_BPP_8;
++ break;
++ case 15:
++ ctrl |= JZ_LCD_CTRL_RGB555; /* Falltrough */
++ case 16:
++ ctrl |= JZ_LCD_CTRL_BPP_15_16;
++ break;
++ case 18:
++ case 24:
++ case 32:
++ ctrl |= JZ_LCD_CTRL_BPP_18_24;
++ break;
++ default:
++ break;
++ }
++ writel(ctrl, jzfb->base + JZ_REG_LCD_CTRL);
++
++ return 0;
++}
++
++
++static int jzfb_alloc_vidmem(struct jzfb *jzfb)
++{
++ size_t devmem_size;
++ int max_videosize = 0;
++ struct fb_videomode *mode = jzfb->pdata->modes;
++ struct jzfb_framedesc *framedesc;
++ void *page;
++ int i;
++
++ for (i = 0; i < jzfb->pdata->num_modes; ++mode, ++i) {
++ if (max_videosize < mode->xres * mode->yres)
++ max_videosize = mode->xres * mode->yres;
++ }
++
++ max_videosize *= jzfb_get_controller_bpp(jzfb) >> 3;
++
++ devmem_size = max_videosize + sizeof(struct jzfb_framedesc);
++
++ jzfb->devmem_size = devmem_size;
++ jzfb->devmem = dma_alloc_coherent(&jzfb->pdev->dev,
++ PAGE_ALIGN(devmem_size),
++ &jzfb->devmem_phys, GFP_KERNEL);
++
++ if (!jzfb->devmem) {
++ return -ENOMEM;
++ }
++
++ for (page = jzfb->vidmem;
++ page < jzfb->vidmem + PAGE_ALIGN(jzfb->vidmem_size);
++ page += PAGE_SIZE) {
++ SetPageReserved(virt_to_page(page));
++ }
++
++
++ framedesc = jzfb->devmem + max_videosize;
++ jzfb->vidmem = jzfb->devmem;
++ jzfb->vidmem_phys = jzfb->devmem_phys;
++
++ framedesc->next = jzfb->devmem_phys + max_videosize;
++ framedesc->addr = jzfb->devmem_phys;
++ framedesc->id = 0;
++ framedesc->cmd = 0;
++ framedesc->cmd |= max_videosize / 4;
++
++ jzfb->framedesc = framedesc;
++
++
++ return 0;
++}
++
++static void jzfb_free_devmem(struct jzfb *jzfb)
++{
++ dma_free_coherent(&jzfb->pdev->dev, jzfb->devmem_size, jzfb->devmem,
++ jzfb->devmem_phys);
++}
++
++static struct fb_ops jzfb_ops = {
++ .owner = THIS_MODULE,
++ .fb_check_var = jzfb_check_var,
++ .fb_set_par = jzfb_set_par,
++/* .fb_blank = jzfb_blank,*/
++ .fb_fillrect = sys_fillrect,
++ .fb_copyarea = sys_copyarea,
++ .fb_imageblit = sys_imageblit,
++ .fb_setcolreg = jzfb_setcolreg,
++};
++
++static int __devinit jzfb_probe(struct platform_device *pdev)
++{
++ int ret;
++ struct jzfb *jzfb;
++ struct fb_info *fb;
++ struct jz4740_fb_platform_data *pdata = pdev->dev.platform_data;
++ struct resource *mem;
++
++ if (!pdata) {
++ dev_err(&pdev->dev, "Missing platform data\n");
++ return -ENOENT;
++ }
++
++ mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++
++ if (!mem) {
++ dev_err(&pdev->dev, "Failed to get register memory resource\n");
++ return -ENOENT;
++ }
++
++ mem = request_mem_region(mem->start, resource_size(mem), pdev->name);
++
++ if (!mem) {
++ dev_err(&pdev->dev, "Failed to request register memory region\n");
++ return -EBUSY;
++ }
++
++
++ fb = framebuffer_alloc(sizeof(struct jzfb), &pdev->dev);
++
++ if (!fb) {
++ dev_err(&pdev->dev, "Failed to allocate framebuffer device\n");
++ ret = -ENOMEM;
++ goto err_release_mem_region;
++ }
++
++ fb->fbops = &jzfb_ops;
++ fb->flags = FBINFO_DEFAULT;
++
++ jzfb = fb->par;
++ jzfb->pdev = pdev;
++ jzfb->pdata = pdata;
++ jzfb->mem = mem;
++
++ jzfb->base = ioremap(mem->start, resource_size(mem));
++
++ if (!jzfb->base) {
++ dev_err(&pdev->dev, "Failed to ioremap register memory region\n");
++ ret = -EBUSY;
++ goto err_framebuffer_release;
++ }
++
++ platform_set_drvdata(pdev, jzfb);
++
++ fb_videomode_to_modelist(pdata->modes, pdata->num_modes,
++ &fb->modelist);
++ fb->mode = pdata->modes;
++
++ fb_videomode_to_var(&fb->var, fb->mode);
++ fb->var.bits_per_pixel = pdata->bpp;
++ jzfb_check_var(&fb->var, fb);
++
++ ret = jzfb_alloc_vidmem(jzfb);
++ if (ret) {
++ dev_err(&pdev->dev, "Failed to allocate video memory\n");
++ goto err_iounmap;
++ }
++
++ fb->fix = jzfb_fix;
++ fb->fix.line_length = fb->var.bits_per_pixel * fb->var.xres / 8;
++ fb->fix.mmio_start = mem->start;
++ fb->fix.mmio_len = resource_size(mem);
++ fb->fix.smem_start = jzfb->vidmem_phys;
++ fb->fix.smem_len = fb->fix.line_length * fb->var.yres;
++ fb->screen_base = jzfb->vidmem;
++ fb->pseudo_palette = jzfb->pseudo_palette;
++
++ fb_alloc_cmap(&fb->cmap, 256, 0);
++
++ jzfb_set_par(fb);
++ writel(jzfb->framedesc->next, jzfb->base + JZ_REG_LCD_DA0);
++
++ ret = register_framebuffer(fb);
++ if (ret) {
++ dev_err(&pdev->dev, "Failed to register framebuffer: %d\n", ret);
++ goto err_free_devmem;
++ }
++
++ return 0;
++err_free_devmem:
++ jzfb_free_devmem(jzfb);
++err_iounmap:
++ iounmap(jzfb->base);
++err_framebuffer_release:
++ framebuffer_release(fb);
++err_release_mem_region:
++ release_mem_region(mem->start, resource_size(mem));
++ return ret;
++}
++
++static int __devexit jzfb_remove(struct platform_device *pdev)
++{
++ struct jzfb *jzfb = platform_get_drvdata(pdev);
++
++ iounmap(jzfb->base);
++ release_mem_region(jzfb->mem->start, resource_size(jzfb->mem));
++ jzfb_free_devmem(jzfb);
++ platform_set_drvdata(pdev, NULL);
++ framebuffer_release(jzfb->fb);
++ return 0;
++}
++
++static struct platform_driver jzfb_driver = {
++ .probe = jzfb_probe,
++ .remove = __devexit_p(jzfb_remove),
++
++ .driver = {
++ .name = "jz4740-fb",
++ },
++};
++
++int __init jzfb_init(void)
++{
++ return platform_driver_register(&jzfb_driver);
++}
++module_init(jzfb_init);
++
++void __exit jzfb_exit(void)
++{
++ platform_driver_unregister(&jzfb_driver);
++}
++module_exit(jzfb_exit);
++
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>");
++MODULE_DESCRIPTION("JZ4720/JZ4740 SoC LCD framebuffer driver");
++MODULE_ALIAS("platform:jz4740-fb");
++MODULE_ALIAS("platform:jz4720-fb");
+diff -ruN linux-2.6.31-vanilla/include/linux/jz4740-adc.h linux-2.6.31/include/linux/jz4740-adc.h
+--- linux-2.6.31-vanilla/include/linux/jz4740-adc.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/include/linux/jz4740-adc.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,25 @@
++
++#ifndef __LINUX_JZ4740_ADC
++#define __LINUX_JZ4740_ADC
++
++#include <linux/device.h>
++
++enum jz_adc_battery_scale {
++ JZ_ADC_BATTERY_SCALE_2V5, /* Mesures voltages up to 2.5V */
++ JZ_ADC_BATTERY_SCALE_7V5, /* Mesures voltages up to 7.5V */
++};
++
++/*
++ * jz4740_adc_read_battery_voltage - Read battery voltage from the ADC PBAT pin
++ * @dev: Pointer to a jz4740-adc device
++ * @scale: Whether to use 2.5V or 7.5V scale
++ *
++ * Returns: Battery voltage in mircovolts
++ *
++ * Context: Process
++*/
++long jz4740_adc_read_battery_voltage(struct device *dev,
++ enum jz_adc_battery_scale scale);
++
++
++#endif
+diff -ruN linux-2.6.31-vanilla/include/linux/jz4740_fb.h linux-2.6.31/include/linux/jz4740_fb.h
+--- linux-2.6.31-vanilla/include/linux/jz4740_fb.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/include/linux/jz4740_fb.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,52 @@
++/*
++ * Copyright (C) 2009, Lars-Peter Clausen <lars@metafoo.de>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#ifndef __LINUX_JZ4740_FB_H
++#define __LINUX_JZ4740_FB_H
++
++#include <linux/fb.h>
++
++enum jz4740_fb_lcd_type {
++ JZ_LCD_TYPE_GENERIC_16_18_BIT = 0,
++ JZ_LCD_TYPE_SPECIAL_TFT_1 = 1,
++ JZ_LCD_TYPE_SPECIAL_TFT_2 = 2,
++ JZ_LCD_TYPE_SPECIAL_TFT_3 = 3,
++ JZ_LCD_TYPE_NON_INTERLACED_CCIR656 = 5,
++ JZ_LCD_TYPE_INTERLACED_CCIR656 = 7,
++ JZ_LCD_TYPE_SINGLE_COLOR_STN = 8,
++ JZ_LCD_TYPE_SINGLE_MONOCHROME_STN = 9,
++ JZ_LCD_TYPE_DUAL_COLOR_STN = 10,
++ JZ_LCD_TYPE_8BIT_SERIAL = 11,
++};
++
++/*
++* width: width of the lcd display in mm
++* height: height of the lcd display in mm
++* num_modes: size of modes
++* modes: list of valid video modes
++* bpp: bits per pixel for the lcd
++* lcd_type: lcd type
++*/
++
++struct jz4740_fb_platform_data {
++ unsigned int width;
++ unsigned int height;
++
++ size_t num_modes;
++ struct fb_videomode *modes;
++ int bpp;
++ enum jz4740_fb_lcd_type lcd_type;
++};
++
++#endif
+diff -ruN linux-2.6.31-vanilla/include/linux/mtd/jz4740_nand.h linux-2.6.31/include/linux/mtd/jz4740_nand.h
+--- linux-2.6.31-vanilla/include/linux/mtd/jz4740_nand.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/include/linux/mtd/jz4740_nand.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,34 @@
++/*
++ * Copyright (C) 2009, Lars-Peter Clausen <lars@metafoo.de>
++ * JZ4720/JZ4740 SoC NAND controller driver
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#ifndef __JZ_NAND_H__
++#define __JZ_NAND_H__
++
++#include <linux/mtd/nand.h>
++#include <linux/mtd/partitions.h>
++
++struct jz_nand_platform_data {
++ int num_partitions;
++ struct mtd_partition *partitions;
++
++ struct nand_ecclayout *ecc_layout;
++
++ unsigned int busy_gpio;
++
++ void (*ident_callback)(struct platform_device *, struct nand_chip *,
++ struct mtd_partition **, int *num_partitions);
++};
++
++#endif
+diff -ruN linux-2.6.31-vanilla/include/linux/power/jz4740-battery.h linux-2.6.31/include/linux/power/jz4740-battery.h
+--- linux-2.6.31-vanilla/include/linux/power/jz4740-battery.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/include/linux/power/jz4740-battery.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,28 @@
++/*
++ * Copyright (C) 2009, Jiejing Zhang <kzjeef@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#ifndef __JZ4740_BATTERY_H
++#define __JZ4740_BATTERY_H
++
++struct jz_batt_info {
++ int dc_dect_gpio; /* GPIO port of DC charger detection */
++ int usb_dect_gpio; /* GPIO port of USB charger detection */
++ int charg_stat_gpio; /* GPIO port of Charger state */
++
++ int min_voltag; /* Mininal battery voltage in uV */
++ int max_voltag; /* Maximum battery voltage in uV */
++ int batt_tech; /* Battery technology */
++};
++
++#endif
+diff -ruN linux-2.6.31-vanilla/sound/soc/codecs/jzcodec.c linux-2.6.31/sound/soc/codecs/jzcodec.c
+--- linux-2.6.31-vanilla/sound/soc/codecs/jzcodec.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/sound/soc/codecs/jzcodec.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,516 @@
++/*
++ * Copyright (C) 2009, Lars-Peter Clausen <lars@metafoo.de>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/platform_device.h>
++#include <linux/delay.h>
++
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/pcm_params.h>
++#include <sound/initval.h>
++#include <sound/soc-dapm.h>
++#include <sound/soc.h>
++
++#define JZ_REG_CODEC_1 0x0
++#define JZ_REG_CODEC_2 0x1
++
++#define JZ_CODEC_1_LINE_ENABLE BIT(29)
++#define JZ_CODEC_1_MIC_ENABLE BIT(28)
++#define JZ_CODEC_1_SW1_ENABLE BIT(27)
++#define JZ_CODEC_1_ADC_ENABLE BIT(26)
++#define JZ_CODEC_1_SW2_ENABLE BIT(25)
++#define JZ_CODEC_1_DAC_ENABLE BIT(24)
++#define JZ_CODEC_1_VREF_DISABLE BIT(20)
++#define JZ_CODEC_1_VREF_AMP_DISABLE BIT(19)
++#define JZ_CODEC_1_VREF_PULL_DOWN BIT(18)
++#define JZ_CODEC_1_VREF_LOW_CURRENT BIT(17)
++#define JZ_CODEC_1_VREF_HIGH_CURRENT BIT(16)
++#define JZ_CODEC_1_HEADPHONE_DISABLE BIT(14)
++#define JZ_CODEC_1_HEADPHONE_AMP_CHANGE_ANY BIT(13)
++#define JZ_CODEC_1_HEADPHONE_CHANGE BIT(12)
++#define JZ_CODEC_1_HEADPHONE_PULL_DOWN_M BIT(11)
++#define JZ_CODEC_1_HEADPHONE_PULL_DOWN_R BIT(10)
++#define JZ_CODEC_1_HEADPHONE_POWER_DOWN_M BIT(9)
++#define JZ_CODEC_1_HEADPHONE_POWER_DOWN BIT(8)
++#define JZ_CODEC_1_SUSPEND BIT(1)
++#define JZ_CODEC_1_RESET BIT(0)
++
++#define JZ_CODEC_1_LINE_ENABLE_OFFSET 29
++#define JZ_CODEC_1_MIC_ENABLE_OFFSET 28
++#define JZ_CODEC_1_SW1_ENABLE_OFFSET 27
++#define JZ_CODEC_1_ADC_ENABLE_OFFSET 26
++#define JZ_CODEC_1_SW2_ENABLE_OFFSET 25
++#define JZ_CODEC_1_DAC_ENABLE_OFFSET 24
++#define JZ_CODEC_1_HEADPHONE_DISABLE_OFFSET 14
++#define JZ_CODEC_1_HEADPHONE_POWER_DOWN_OFFSET 8
++
++#define JZ_CODEC_2_INPUT_VOLUME_MASK 0x1f0000
++#define JZ_CODEC_2_SAMPLE_RATE_MASK 0x000f00
++#define JZ_CODEC_2_MIC_BOOST_GAIN_MASK 0x000030
++#define JZ_CODEC_2_HEADPHONE_VOLUME_MASK 0x000003
++
++#define JZ_CODEC_2_INPUT_VOLUME_OFFSET 16
++#define JZ_CODEC_2_SAMPLE_RATE_OFFSET 8
++#define JZ_CODEC_2_MIC_BOOST_GAIN_OFFSET 4
++#define JZ_CODEC_2_HEADPHONE_VOLUME_OFFSET 0
++
++struct jz_codec {
++ void __iomem *base;
++ struct resource *mem;
++
++ uint32_t reg_cache[2];
++ struct snd_soc_codec codec;
++};
++
++inline static struct jz_codec *codec_to_jz(struct snd_soc_codec *codec)
++{
++ return container_of(codec, struct jz_codec, codec);
++}
++
++static unsigned int jz_codec_read(struct snd_soc_codec *codec, unsigned int reg)
++{
++ struct jz_codec *jz_codec = codec_to_jz(codec);
++ return readl(jz_codec->base + (reg << 2));
++}
++
++static int jz_codec_write(struct snd_soc_codec *codec, unsigned int reg,
++unsigned int val)
++{
++ struct jz_codec *jz_codec = codec_to_jz(codec);
++ jz_codec->reg_cache[reg] = val;
++
++ writel(val, jz_codec->base + (reg << 2));
++ return 0;
++}
++
++static const struct snd_kcontrol_new jz_codec_controls[] = {
++ SOC_SINGLE("Master Playback Volume", JZ_REG_CODEC_2,
++ JZ_CODEC_2_HEADPHONE_VOLUME_OFFSET, 3, 0),
++ SOC_SINGLE("Capture Volume", JZ_REG_CODEC_2,
++ JZ_CODEC_2_INPUT_VOLUME_OFFSET, 31, 0),
++ SOC_SINGLE("Master Playback Switch", JZ_REG_CODEC_1,
++ JZ_CODEC_1_HEADPHONE_DISABLE_OFFSET, 1, 1),
++ SOC_SINGLE("Mic Capture Volume", JZ_REG_CODEC_2,
++ JZ_CODEC_2_MIC_BOOST_GAIN_OFFSET, 3, 0),
++};
++
++static const struct snd_kcontrol_new jz_codec_output_controls[] = {
++ SOC_DAPM_SINGLE("Bypass Switch", JZ_REG_CODEC_1,
++ JZ_CODEC_1_SW1_ENABLE_OFFSET, 1, 0),
++ SOC_DAPM_SINGLE("DAC Switch", JZ_REG_CODEC_1,
++ JZ_CODEC_1_SW2_ENABLE_OFFSET, 1, 0),
++};
++
++static const struct snd_kcontrol_new jz_codec_input_controls[] =
++{
++ SOC_DAPM_SINGLE("Line Capture Switch", JZ_REG_CODEC_1,
++ JZ_CODEC_1_LINE_ENABLE_OFFSET, 1, 0),
++ SOC_DAPM_SINGLE("Mic Capture Switch", JZ_REG_CODEC_1,
++ JZ_CODEC_1_MIC_ENABLE_OFFSET, 1, 0),
++};
++
++static const struct snd_soc_dapm_widget jz_codec_dapm_widgets[] = {
++ SND_SOC_DAPM_ADC("ADC", "Capture", JZ_REG_CODEC_1,
++ JZ_CODEC_1_ADC_ENABLE_OFFSET, 0),
++ SND_SOC_DAPM_DAC("DAC", "Playback", JZ_REG_CODEC_1,
++ JZ_CODEC_1_DAC_ENABLE_OFFSET, 0),
++
++ SND_SOC_DAPM_MIXER("Output Mixer", JZ_REG_CODEC_1,
++ JZ_CODEC_1_HEADPHONE_POWER_DOWN_OFFSET, 1,
++ jz_codec_output_controls,
++ ARRAY_SIZE(jz_codec_output_controls)),
++
++ SND_SOC_DAPM_MIXER_NAMED_CTL("Input Mixer", SND_SOC_NOPM, 0, 0,
++ jz_codec_input_controls,
++ ARRAY_SIZE(jz_codec_input_controls)),
++ SND_SOC_DAPM_MIXER("Line Input", SND_SOC_NOPM, 0, 0, NULL, 0),
++
++ SND_SOC_DAPM_OUTPUT("LOUT"),
++ SND_SOC_DAPM_OUTPUT("ROUT"),
++
++ SND_SOC_DAPM_INPUT("MIC"),
++ SND_SOC_DAPM_INPUT("LIN"),
++ SND_SOC_DAPM_INPUT("RIN"),
++};
++
++static const struct snd_soc_dapm_route jz_codec_dapm_routes[] = {
++
++ {"Line Input", NULL, "LIN"},
++ {"Line Input", NULL, "RIN"},
++
++ {"Input Mixer", "Line Capture Switch", "Line Input"},
++ {"Input Mixer", "Mic Capture Switch", "MIC"},
++
++ {"ADC", NULL, "Input Mixer"},
++
++ {"Output Mixer", "Bypass Switch", "Input Mixer"},
++ {"Output Mixer", "DAC Switch", "DAC"},
++
++ {"LOUT", NULL, "Output Mixer"},
++ {"ROUT", NULL, "Output Mixer"},
++};
++
++static int jz_codec_hw_params(struct snd_pcm_substream *substream, struct
++snd_pcm_hw_params *params, struct snd_soc_dai *dai)
++{
++ uint32_t val;
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_device *socdev = rtd->socdev;
++ struct snd_soc_codec *codec = socdev->card->codec;
++
++ switch (params_format(params)) {
++ case SNDRV_PCM_FORMAT_S8:
++ case SNDRV_PCM_FORMAT_S16_LE:
++ case SNDRV_PCM_FORMAT_S18_3LE:
++ break;
++ default:
++ return -EINVAL;
++ break;
++ }
++
++ switch (params_rate(params)) {
++ case 8000:
++ val = 0;
++ break;
++ case 11025:
++ val = 1;
++ break;
++ case 12000:
++ val = 2;
++ break;
++ case 16000:
++ val = 3;
++ break;
++ case 22050:
++ val = 4;
++ break;
++ case 24000:
++ val = 5;
++ break;
++ case 32000:
++ val = 6;
++ break;
++ case 44100:
++ val = 7;
++ break;
++ case 48000:
++ val = 8;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ val <<= JZ_CODEC_2_SAMPLE_RATE_OFFSET;
++
++ snd_soc_update_bits(codec, JZ_REG_CODEC_2,
++ JZ_CODEC_2_SAMPLE_RATE_MASK, val);
++
++ return 0;
++}
++
++static int jz_codec_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
++{
++ switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
++ case SND_SOC_DAIFMT_CBM_CFM:
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
++ case SND_SOC_DAIFMT_I2S:
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
++ case SND_SOC_DAIFMT_NB_NF:
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++static int jz_codec_set_sysclk(struct snd_soc_dai *codec_dai,
++ int clk_id, unsigned int freq, int dir)
++{
++ return 0;
++}
++
++
++static struct snd_soc_dai_ops jz_codec_dai_ops = {
++ .hw_params = jz_codec_hw_params,
++ .set_fmt = jz_codec_set_fmt,
++/* .set_clkdiv = jz_codec_set_clkdiv,*/
++ .set_sysclk = jz_codec_set_sysclk,
++};
++
++struct snd_soc_dai jz_codec_dai = {
++ .name = "jz-codec",
++ .playback = {
++ .stream_name = "Playback",
++ .channels_min = 2,
++ .channels_max = 2,
++ .rates = SNDRV_PCM_RATE_8000_44100,
++ .formats = SNDRV_PCM_FORMAT_S18_3LE,
++ },
++ .capture = {
++ .stream_name = "Capture",
++ .channels_min = 2,
++ .channels_max = 2,
++ .rates = SNDRV_PCM_RATE_8000_44100,
++ .formats = SNDRV_PCM_FORMAT_S16_LE,
++ },
++ .ops = &jz_codec_dai_ops,
++ .symmetric_rates = 1,
++};
++EXPORT_SYMBOL_GPL(jz_codec_dai);
++
++static int jz_codec_set_bias_level(struct snd_soc_codec *codec,
++ enum snd_soc_bias_level level)
++{
++
++ if (codec->bias_level == SND_SOC_BIAS_OFF && level != SND_SOC_BIAS_OFF) {
++ snd_soc_update_bits(codec, JZ_REG_CODEC_1,
++ JZ_CODEC_1_RESET, JZ_CODEC_1_RESET);
++ udelay(2);
++
++ snd_soc_update_bits(codec, JZ_REG_CODEC_1,
++ JZ_CODEC_1_SUSPEND | JZ_CODEC_1_RESET, 0);
++ }
++ switch (level) {
++ case SND_SOC_BIAS_ON:
++ snd_soc_update_bits(codec, JZ_REG_CODEC_1,
++ JZ_CODEC_1_VREF_DISABLE | JZ_CODEC_1_VREF_AMP_DISABLE |
++ JZ_CODEC_1_HEADPHONE_POWER_DOWN_M |
++ JZ_CODEC_1_VREF_LOW_CURRENT | JZ_CODEC_1_VREF_HIGH_CURRENT,
++ 0);
++ break;
++ case SND_SOC_BIAS_PREPARE:
++ snd_soc_update_bits(codec, JZ_REG_CODEC_1,
++ JZ_CODEC_1_VREF_LOW_CURRENT | JZ_CODEC_1_VREF_HIGH_CURRENT,
++ JZ_CODEC_1_VREF_LOW_CURRENT | JZ_CODEC_1_VREF_HIGH_CURRENT);
++ break;
++ case SND_SOC_BIAS_STANDBY:
++ snd_soc_update_bits(codec, JZ_REG_CODEC_1,
++ JZ_CODEC_1_VREF_DISABLE | JZ_CODEC_1_VREF_AMP_DISABLE,
++ JZ_CODEC_1_VREF_DISABLE | JZ_CODEC_1_VREF_AMP_DISABLE);
++ break;
++ case SND_SOC_BIAS_OFF:
++ snd_soc_update_bits(codec, JZ_REG_CODEC_1,
++ JZ_CODEC_1_SUSPEND, JZ_CODEC_1_SUSPEND);
++ break;
++ }
++ codec->bias_level = level;
++
++ return 0;
++}
++
++
++static struct snd_soc_codec *jz_codec_codec;
++
++static int jz_codec_dev_probe(struct platform_device *pdev)
++{
++ int ret;
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct snd_soc_codec *codec = jz_codec_codec;
++
++ BUG_ON(!codec);
++
++ socdev->card->codec = codec;
++
++ ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1);
++ if (ret) {
++ dev_err(&pdev->dev, "Failed to create pcms: %d\n", ret);
++ goto err;
++ }
++ snd_soc_add_controls(codec, jz_codec_controls,
++ ARRAY_SIZE(jz_codec_controls));
++
++ snd_soc_dapm_new_controls(codec, jz_codec_dapm_widgets,
++ ARRAY_SIZE(jz_codec_dapm_widgets));
++
++ snd_soc_dapm_add_routes(codec, jz_codec_dapm_routes,
++ ARRAY_SIZE(jz_codec_dapm_routes));
++
++ snd_soc_dapm_new_widgets(codec);
++
++ ret = snd_soc_init_card(socdev);
++
++ if (ret) {
++ dev_err(&pdev->dev, "Failed to register card\n");
++ goto err;
++ }
++
++ return 0;
++
++err:
++ snd_soc_free_pcms(socdev);
++ snd_soc_dapm_free(socdev);
++
++ return ret;
++}
++
++static int jz_codec_dev_remove(struct platform_device *pdev)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ snd_soc_free_pcms(socdev);
++ snd_soc_dapm_free(socdev);
++
++ return 0;
++}
++
++struct snd_soc_codec_device soc_codec_dev_jzcodec = {
++ .probe = jz_codec_dev_probe,
++ .remove = jz_codec_dev_remove,
++};
++EXPORT_SYMBOL_GPL(soc_codec_dev_jzcodec);
++
++static int __devinit jz_codec_probe(struct platform_device *pdev)
++{
++ int ret;
++ struct jz_codec *jz_codec;
++ struct snd_soc_codec *codec;
++
++ jz_codec = kzalloc(sizeof(*jz_codec), GFP_KERNEL);
++
++ if (!jz_codec)
++ return -ENOMEM;
++
++ jz_codec->mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++
++ if (!jz_codec->mem) {
++ dev_err(&pdev->dev, "Failed to get mmio memory resource\n");
++ ret = -ENOENT;
++ goto err_free_jz_codec;
++ }
++
++ jz_codec->mem = request_mem_region(jz_codec->mem->start,
++ resource_size(jz_codec->mem), pdev->name);
++
++ if (!jz_codec->mem) {
++ dev_err(&pdev->dev, "Failed to request mmio memory region\n");
++ ret = -EBUSY;
++ goto err_free_jz_codec;
++ }
++
++ jz_codec->base = ioremap(jz_codec->mem->start, resource_size(jz_codec->mem));
++
++ if (!jz_codec->base) {
++ dev_err(&pdev->dev, "Failed to ioremap mmio memory\n");
++ ret = -EBUSY;
++ goto err_release_mem_region;
++ }
++
++ jz_codec_dai.dev = &pdev->dev;
++
++ codec = &jz_codec->codec;
++
++ codec->dev = &pdev->dev;
++ codec->name = "jz-codec";
++ codec->owner = THIS_MODULE;
++
++ codec->read = jz_codec_read;
++ codec->write = jz_codec_write;
++ codec->set_bias_level = jz_codec_set_bias_level;
++ codec->bias_level = SND_SOC_BIAS_OFF;
++
++ codec->dai = &jz_codec_dai;
++ codec->num_dai = 1;
++
++ codec->reg_cache = jz_codec->reg_cache;
++ codec->reg_cache_size = 2;
++
++ codec->private_data = jz_codec;
++
++ mutex_init(&codec->mutex);
++ INIT_LIST_HEAD(&codec->dapm_widgets);
++ INIT_LIST_HEAD(&codec->dapm_paths);
++
++ jz_codec_codec = codec;
++
++ platform_set_drvdata(pdev, jz_codec);
++ ret = snd_soc_register_codec(codec);
++
++ if (ret) {
++ dev_err(&pdev->dev, "Failed to register codec\n");
++ goto err_iounmap;
++ }
++
++ ret = snd_soc_register_dai(&jz_codec_dai);
++ if (ret) {
++ dev_err(&pdev->dev, "Failed to register codec dai\n");
++ goto err_unregister_codec;
++ }
++
++ jz_codec_set_bias_level (codec, SND_SOC_BIAS_STANDBY);
++
++ return 0;
++err_unregister_codec:
++ snd_soc_unregister_codec(codec);
++err_iounmap:
++ iounmap(jz_codec->base);
++err_release_mem_region:
++ release_mem_region(jz_codec->mem->start, resource_size(jz_codec->mem));
++err_free_jz_codec:
++ kfree(jz_codec);
++
++ return ret;
++}
++
++static int __devexit jz_codec_remove(struct platform_device *pdev)
++{
++ struct jz_codec *jz_codec = platform_get_drvdata(pdev);
++
++ snd_soc_unregister_dai(&jz_codec_dai);
++ snd_soc_unregister_codec(&jz_codec->codec);
++
++ iounmap(jz_codec->base);
++ release_mem_region(jz_codec->mem->start, resource_size(jz_codec->mem));
++
++ platform_set_drvdata(pdev, NULL);
++ kfree(jz_codec);
++
++ return 0;
++}
++
++static struct platform_driver jz_codec_driver = {
++ .probe = jz_codec_probe,
++ .remove = __devexit_p(jz_codec_remove),
++ .driver = {
++ .name = "jz4740-codec",
++ .owner = THIS_MODULE,
++ },
++};
++
++static int __init jz_codec_init(void)
++{
++ return platform_driver_register(&jz_codec_driver);
++}
++module_init(jz_codec_init);
++
++static void __exit jz_codec_exit(void)
++{
++ platform_driver_unregister(&jz_codec_driver);
++}
++module_exit(jz_codec_exit);
++
++MODULE_DESCRIPTION("JZ4720/JZ4740 SoC internal codec driver");
++MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>");
++MODULE_LICENSE("GPL v2");
++MODULE_ALIAS("platform:jz-codec");
+diff -ruN linux-2.6.31-vanilla/sound/soc/codecs/jzcodec.h linux-2.6.31/sound/soc/codecs/jzcodec.h
+--- linux-2.6.31-vanilla/sound/soc/codecs/jzcodec.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/sound/soc/codecs/jzcodec.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,22 @@
++/*
++ * Copyright (C) 2009, Lars-Peter Clausen <lars@metafoo.de>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#ifndef _ICODEC_H
++#define _ICODEC_H
++
++#define JZCODEC_SYSCLK 0
++
++extern struct snd_soc_dai jz_codec_dai;
++extern struct snd_soc_codec_device soc_codec_dev_jzcodec;
++
++#endif
+diff -ruN linux-2.6.31-vanilla/sound/soc/jz4740/Kconfig linux-2.6.31/sound/soc/jz4740/Kconfig
+--- linux-2.6.31-vanilla/sound/soc/jz4740/Kconfig 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/sound/soc/jz4740/Kconfig 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,21 @@
++config SND_JZ4740_SOC
++ tristate "SoC Audio for Ingenic JZ4740 SoC"
++ depends on SOC_JZ4740 && SND_SOC
++ help
++ Say Y or M if you want to add support for codecs attached to
++ the Jz4740 AC97, I2S or SSP interface. You will also need
++ to select the audio interfaces to support below.
++
++config SND_JZ4740_SOC_QI_LB60
++ tristate "SoC Audio support for Qi Hardware Ben Nanonote"
++ depends on SND_JZ4740_SOC && JZ4740_QI_LB60
++ select SND_JZ4740_SOC_I2S
++ select SND_SOC_JZCODEC
++ help
++ Say Y if you want to add support for SoC audio of internal codec on Ingenic Jz4740 QI_LB60 board.
++
++config SND_JZ4740_SOC_I2S
++ depends on SND_JZ4740_SOC
++ tristate "SoC Audio (I2S protocol) for Ingenic jz4740 chip"
++ help
++ Say Y if you want to use I2S protocol and I2S codec on Ingenic Jz4740 QI_LB60 board.
+diff -ruN linux-2.6.31-vanilla/sound/soc/jz4740/Makefile linux-2.6.31/sound/soc/jz4740/Makefile
+--- linux-2.6.31-vanilla/sound/soc/jz4740/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/sound/soc/jz4740/Makefile 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,13 @@
++#
++# Jz4740 Platform Support
++#
++snd-soc-jz4740-objs := jz4740-pcm.o
++snd-soc-jz4740-i2s-objs := jz4740-i2s.o
++
++obj-$(CONFIG_SND_JZ4740_SOC) += snd-soc-jz4740.o
++obj-$(CONFIG_SND_JZ4740_SOC_I2S) += snd-soc-jz4740-i2s.o
++
++# Jz4740 Machine Support
++snd-soc-qi-lb60-objs := qi_lb60.o
++
++obj-$(CONFIG_SND_JZ4740_SOC_QI_LB60) += snd-soc-qi-lb60.o
+diff -ruN linux-2.6.31-vanilla/sound/soc/jz4740/jz4740-i2s.c linux-2.6.31/sound/soc/jz4740/jz4740-i2s.c
+--- linux-2.6.31-vanilla/sound/soc/jz4740/jz4740-i2s.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/sound/soc/jz4740/jz4740-i2s.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,309 @@
++/*
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * Jiejing Zhang(kzjeef(at)gmail.com) 2009: Make jz soc sound card
++ * loaded by soc-core.
++ */
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/device.h>
++#include <linux/delay.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/pcm_params.h>
++#include <sound/initval.h>
++#include <sound/soc.h>
++
++#include "jz4740-pcm.h"
++#include "jz4740-i2s.h"
++
++static struct jz4740_dma_client jz4740_dma_client_out = {
++ .name = "I2S PCM Stereo out"
++};
++
++static struct jz4740_dma_client jz4740_dma_client_in = {
++ .name = "I2S PCM Stereo in"
++};
++
++static struct jz4740_pcm_dma_params jz4740_i2s_pcm_stereo_out = {
++ .client = &jz4740_dma_client_out,
++ .channel = DMA_ID_AIC_TX,
++ .dma_addr = AIC_DR,
++ .dma_size = 2,
++};
++
++static struct jz4740_pcm_dma_params jz4740_i2s_pcm_stereo_in = {
++ .client = &jz4740_dma_client_in,
++ .channel = DMA_ID_AIC_RX,
++ .dma_addr = AIC_DR,
++ .dma_size = 2,
++};
++
++static int jz4740_i2s_startup(struct snd_pcm_substream *substream, struct snd_soc_dai *dai)
++{
++ /*struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai;*/
++
++ return 0;
++}
++
++static int jz4740_i2s_set_dai_fmt(struct snd_soc_dai *cpu_dai,
++ unsigned int fmt)
++{
++ /* interface format */
++ switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
++ case SND_SOC_DAIFMT_I2S:
++ /* 1 : ac97 , 0 : i2s */
++ break;
++ case SND_SOC_DAIFMT_LEFT_J:
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
++ case SND_SOC_DAIFMT_CBS_CFS:
++ /* 0 : slave */
++ break;
++ case SND_SOC_DAIFMT_CBM_CFS:
++ /* 1 : master */
++ break;
++ default:
++ break;
++ }
++
++ return 0;
++}
++
++/*
++* Set Jz4740 Clock source
++*/
++static int jz4740_i2s_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
++ int clk_id, unsigned int freq, int dir)
++{
++ return 0;
++}
++
++static void jz4740_snd_tx_ctrl(int on)
++{
++ if (on) {
++ /* enable replay */
++ __i2s_enable_transmit_dma();
++ __i2s_enable_replay();
++ __i2s_enable();
++
++ } else {
++ /* disable replay & capture */
++ __i2s_disable_replay();
++ __i2s_disable_record();
++ __i2s_disable_receive_dma();
++ __i2s_disable_transmit_dma();
++ __i2s_disable();
++ }
++}
++
++static void jz4740_snd_rx_ctrl(int on)
++{
++ if (on) {
++ /* enable capture */
++ __i2s_enable_receive_dma();
++ __i2s_enable_record();
++ __i2s_enable();
++
++ } else {
++ /* disable replay & capture */
++ __i2s_disable_replay();
++ __i2s_disable_record();
++ __i2s_disable_receive_dma();
++ __i2s_disable_transmit_dma();
++ __i2s_disable();
++ }
++}
++
++static int jz4740_i2s_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params, struct snd_soc_dai *dai)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai;
++ /* int channels = params_channels(params); */
++
++ jz4740_snd_rx_ctrl(0);
++ jz4740_snd_rx_ctrl(0);
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
++ cpu_dai->dma_data = &jz4740_i2s_pcm_stereo_out;
++ /*if (channels == 1)
++ __aic_enable_mono2stereo();
++ else
++ __aic_disable_mono2stereo();*/
++ } else
++ cpu_dai->dma_data = &jz4740_i2s_pcm_stereo_in;
++
++ switch (params_format(params)) {
++ case SNDRV_PCM_FORMAT_S8:
++ __i2s_set_transmit_trigger(4);
++ __i2s_set_receive_trigger(3);
++ __i2s_set_oss_sample_size(8);
++ __i2s_set_iss_sample_size(8);
++ break;
++ case SNDRV_PCM_FORMAT_S16_LE:
++ /* playback sample:16 bits, burst:16 bytes */
++ __i2s_set_transmit_trigger(4);
++ /* capture sample:16 bits, burst:16 bytes */
++ __i2s_set_receive_trigger(3);
++ __i2s_set_oss_sample_size(16);
++ __i2s_set_iss_sample_size(16);
++ break;
++ }
++
++ return 0;
++}
++
++static int jz4740_i2s_trigger(struct snd_pcm_substream *substream, int cmd, struct snd_soc_dai *dai)
++{
++ int ret = 0;
++ switch (cmd) {
++ case SNDRV_PCM_TRIGGER_START:
++ case SNDRV_PCM_TRIGGER_RESUME:
++ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
++ if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ jz4740_snd_rx_ctrl(1);
++ else
++ jz4740_snd_tx_ctrl(1);
++ break;
++ case SNDRV_PCM_TRIGGER_STOP:
++ case SNDRV_PCM_TRIGGER_SUSPEND:
++ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
++ if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ jz4740_snd_rx_ctrl(0);
++ else
++ jz4740_snd_tx_ctrl(0);
++ break;
++ default:
++ ret = -EINVAL;
++ }
++
++ return ret;
++}
++
++static void jz4740_i2s_shutdown(struct snd_pcm_substream *substream, struct snd_soc_dai *dai)
++{
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
++ } else {
++ }
++
++ return;
++}
++
++static int jz4740_i2s_probe(struct platform_device *pdev, struct snd_soc_dai *dai)
++{
++ __i2s_internal_codec();
++ __i2s_as_slave();
++ __i2s_select_i2s();
++ __aic_select_i2s();
++ mdelay(2);
++
++ __i2s_disable();
++ __i2s_reset();
++ mdelay(2);
++
++ __i2s_disable();
++ __i2s_internal_codec();
++ __i2s_as_slave();
++ __i2s_select_i2s();
++ __aic_select_i2s();
++ __i2s_set_oss_sample_size(16);
++ __i2s_set_iss_sample_size(16);
++ __aic_play_lastsample();
++
++ __i2s_disable_record();
++ __i2s_disable_replay();
++ __i2s_disable_loopback();
++ __i2s_set_transmit_trigger(7);
++ __i2s_set_receive_trigger(7);
++
++ jz4740_snd_tx_ctrl(0);
++ jz4740_snd_rx_ctrl(0);
++
++ return 0;
++}
++
++#ifdef CONFIG_PM
++static int jz4740_i2s_suspend(struct snd_soc_dai *dai)
++{
++ if (!dai->active)
++ return 0;
++
++ return 0;
++}
++
++static int jz4740_i2s_resume(struct snd_soc_dai *dai)
++{
++ if (!dai->active)
++ return 0;
++
++ return 0;
++}
++
++#else
++#define jz4740_i2s_suspend NULL
++#define jz4740_i2s_resume NULL
++#endif
++
++#define JZ4740_I2S_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |\
++ SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 |\
++ SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |\
++ SNDRV_PCM_RATE_48000)
++
++struct snd_soc_dai_ops snd_jz4740_i2s_dai_ops = {
++ .startup = jz4740_i2s_startup,
++ .shutdown = jz4740_i2s_shutdown,
++ .trigger = jz4740_i2s_trigger,
++ .hw_params = jz4740_i2s_hw_params,
++ .set_fmt = jz4740_i2s_set_dai_fmt,
++ .set_sysclk = jz4740_i2s_set_dai_sysclk,
++};
++
++struct snd_soc_dai jz4740_i2s_dai = {
++ .name = "jz4740-i2s",
++ .id = 0,
++ .probe = jz4740_i2s_probe,
++ .suspend = jz4740_i2s_suspend,
++ .resume = jz4740_i2s_resume,
++ .playback = {
++ .channels_min = 1,
++ .channels_max = 2,
++ .rates = JZ4740_I2S_RATES,
++ .formats = SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_S16_LE,
++ },
++ .capture = {
++ .channels_min = 1,
++ .channels_max = 2,
++ .rates = JZ4740_I2S_RATES,
++ .formats = SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_S16_LE,
++ },
++ .ops = &snd_jz4740_i2s_dai_ops,
++};
++
++EXPORT_SYMBOL_GPL(jz4740_i2s_dai);
++
++static int __init jz4740_i2s_init(void)
++{
++ return snd_soc_register_dai(&jz4740_i2s_dai);
++}
++
++static void __exit jz4740_i2s_exit(void)
++{
++ snd_soc_unregister_dai(&jz4740_i2s_dai);
++}
++
++module_init(jz4740_i2s_init);
++module_exit(jz4740_i2s_exit);
++
++/* Module information */
++MODULE_AUTHOR("Richard, cjfeng@ingenic.cn, www.ingenic.cn");
++MODULE_DESCRIPTION("jz4740 I2S SoC Interface");
++MODULE_LICENSE("GPL");
+diff -ruN linux-2.6.31-vanilla/sound/soc/jz4740/jz4740-i2s.h linux-2.6.31/sound/soc/jz4740/jz4740-i2s.h
+--- linux-2.6.31-vanilla/sound/soc/jz4740/jz4740-i2s.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/sound/soc/jz4740/jz4740-i2s.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,18 @@
++/*
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#ifndef _JZ4740_I2S_H
++#define _JZ4740_I2S_H
++
++/* jz4740 DAI ID's */
++#define JZ4740_DAI_I2S 0
++
++/* I2S clock */
++#define JZ4740_I2S_SYSCLK 0
++
++extern struct snd_soc_dai jz4740_i2s_dai;
++
++#endif
+diff -ruN linux-2.6.31-vanilla/sound/soc/jz4740/jz4740-pcm.c linux-2.6.31/sound/soc/jz4740/jz4740-pcm.c
+--- linux-2.6.31-vanilla/sound/soc/jz4740/jz4740-pcm.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/sound/soc/jz4740/jz4740-pcm.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,686 @@
++/*
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#include <linux/module.h>
++#include <linux/interrupt.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/slab.h>
++#include <linux/dma-mapping.h>
++
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/pcm_params.h>
++#include <sound/soc.h>
++
++#include <asm/io.h>
++#include "jz4740-pcm.h"
++
++static long sum_bytes = 0;
++static int first_transfer = 0;
++static int printk_flag = 0;
++static int tran_bit = 0;
++#ifdef CONFIG_SND_OSSEMUL
++static int hw_params_cnt = 0;
++#endif
++
++static struct jz4740_dma_client jz4740_dma_client_out = {
++ .name = "I2S PCM Stereo out"
++};
++
++static struct jz4740_dma_client jz4740_dma_client_in = {
++ .name = "I2S PCM Stereo in"
++};
++
++static struct jz4740_pcm_dma_params jz4740_i2s_pcm_stereo_out = {
++ .client = &jz4740_dma_client_out,
++ .channel = DMA_ID_AIC_TX,
++ .dma_addr = AIC_DR,
++ .dma_size = 2,
++};
++
++static struct jz4740_pcm_dma_params jz4740_i2s_pcm_stereo_in = {
++ .client = &jz4740_dma_client_in,
++ .channel = DMA_ID_AIC_RX,
++ .dma_addr = AIC_DR,
++ .dma_size = 2,
++};
++
++
++struct jz4740_dma_buf_aic {
++ struct jz4740_dma_buf_aic *next;
++ int size; /* buffer size in bytes */
++ dma_addr_t data; /* start of DMA data */
++ dma_addr_t ptr; /* where the DMA got to [1] */
++ void *id; /* client's id */
++};
++
++struct jz4740_runtime_data {
++ spinlock_t lock;
++ int state;
++ int aic_dma_flag; /* start dma transfer or not */
++ unsigned int dma_loaded;
++ unsigned int dma_limit;
++ unsigned int dma_period;
++ dma_addr_t dma_start;
++ dma_addr_t dma_pos;
++ dma_addr_t dma_end;
++ struct jz4740_pcm_dma_params *params;
++
++ dma_addr_t user_cur_addr; /* user current write buffer start address */
++ unsigned int user_cur_len; /* user current write buffer length */
++
++ /* buffer list and information */
++ struct jz4740_dma_buf_aic *curr; /* current dma buffer */
++ struct jz4740_dma_buf_aic *next; /* next buffer to load */
++ struct jz4740_dma_buf_aic *end; /* end of queue */
++
++};
++
++/* identify hardware playback capabilities */
++static const struct snd_pcm_hardware jz4740_pcm_hardware = {
++ .info = SNDRV_PCM_INFO_MMAP |
++ SNDRV_PCM_INFO_MMAP_VALID |
++ SNDRV_PCM_INFO_INTERLEAVED |
++ SNDRV_PCM_INFO_BLOCK_TRANSFER,
++ .formats = SNDRV_PCM_FMTBIT_S16_LE |
++ SNDRV_PCM_FMTBIT_S8,
++ .rates = SNDRV_PCM_RATE_8000_48000/*0x3fe*/,
++ .rate_min = 8000,
++ .rate_min = 48000,
++ .channels_min = 2,
++ .channels_max = 2,
++ .buffer_bytes_max = 128 * 1024,//16 * 1024
++ .period_bytes_min = PAGE_SIZE,
++ .period_bytes_max = PAGE_SIZE * 2,
++ .periods_min = 2,
++ .periods_max = 128,//16,
++ .fifo_size = 32,
++};
++
++/* jz4740__dma_buf_enqueue
++ *
++ * queue an given buffer for dma transfer.
++ *
++ * data the physical address of the buffer data
++ * size the size of the buffer in bytes
++ *
++*/
++static int jz4740_dma_buf_enqueue(struct jz4740_runtime_data *prtd, dma_addr_t data, int size)
++{
++ struct jz4740_dma_buf_aic *aic_buf;
++
++ aic_buf = kzalloc(sizeof(struct jz4740_dma_buf_aic), GFP_KERNEL);
++ if (aic_buf == NULL) {
++ printk("aic buffer allocate failed,no memory!\n");
++ return -ENOMEM;
++ }
++ aic_buf->next = NULL;
++ aic_buf->data = aic_buf->ptr = data;
++ aic_buf->size = size;
++ if( prtd->curr == NULL) {
++ prtd->curr = aic_buf;
++ prtd->end = aic_buf;
++ prtd->next = NULL;
++ } else {
++ if (prtd->end == NULL)
++ printk("prtd->end is NULL\n");
++ prtd->end->next = aic_buf;
++ prtd->end = aic_buf;
++ }
++
++ /* if necessary, update the next buffer field */
++ if (prtd->next == NULL)
++ prtd->next = aic_buf;
++
++ return 0;
++}
++
++
++void audio_start_dma(struct jz4740_runtime_data *prtd, int mode)
++{
++ unsigned long flags;
++ struct jz4740_dma_buf_aic *aic_buf;
++ int channel;
++
++ switch (mode) {
++ case DMA_MODE_WRITE:
++ /* free cur aic_buf */
++ if (first_transfer == 1) {
++ first_transfer = 0;
++ } else {
++ aic_buf = prtd->curr;
++ if (aic_buf != NULL) {
++ prtd->curr = aic_buf->next;
++ prtd->next = aic_buf->next;
++ aic_buf->next = NULL;
++ kfree(aic_buf);
++ aic_buf = NULL;
++ }
++ }
++
++ aic_buf = prtd->next;
++ channel = prtd->params->channel;
++ if (aic_buf) {
++ disable_dma(channel);
++ jz_set_alsa_dma(channel, mode, tran_bit);
++ set_dma_addr(channel, aic_buf->data);
++ set_dma_count(channel, aic_buf->size);
++ enable_dma(channel);
++ prtd->aic_dma_flag |= AIC_START_DMA;
++ } else {
++ printk("next buffer is NULL for playback\n");
++ prtd->aic_dma_flag &= ~AIC_START_DMA;
++ return;
++ }
++ break;
++ case DMA_MODE_READ:
++ /* free cur aic_buf */
++ if (first_transfer == 1) {
++ first_transfer = 0;
++ } else {
++ aic_buf = prtd->curr;
++ if (aic_buf != NULL) {
++ prtd->curr = aic_buf->next;
++ prtd->next = aic_buf->next;
++ aic_buf->next = NULL;
++ kfree(aic_buf);
++ aic_buf = NULL;
++ }
++ }
++
++ aic_buf = prtd->next;
++ channel = prtd->params->channel;
++
++ if (aic_buf) {
++ disable_dma(channel);
++ jz_set_alsa_dma(channel, mode, tran_bit);
++ set_dma_addr(channel, aic_buf->data);
++ set_dma_count(channel, aic_buf->size);
++ enable_dma(channel);
++ prtd->aic_dma_flag |= AIC_START_DMA;
++ } else {
++ printk("next buffer is NULL for capture\n");
++ prtd->aic_dma_flag &= ~AIC_START_DMA;
++ return;
++ }
++ break;
++ }
++ /* dump_jz_dma_channel(channel); */
++}
++
++/*
++ * place a dma buffer onto the queue for the dma system to handle.
++*/
++static void jz4740_pcm_enqueue(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct jz4740_runtime_data *prtd = runtime->private_data;
++ /*struct snd_dma_buffer *buf = &substream->dma_buffer;*/
++ dma_addr_t pos = prtd->dma_pos;
++ int ret;
++
++ while (prtd->dma_loaded < prtd->dma_limit) {
++ unsigned long len = prtd->dma_period;
++
++ if ((pos + len) > prtd->dma_end) {
++ len = prtd->dma_end - pos;
++ }
++ ret = jz4740_dma_buf_enqueue(prtd, pos, len);
++ if (ret == 0) {
++ prtd->dma_loaded++;
++ pos += prtd->dma_period;
++ if (pos >= prtd->dma_end)
++ pos = prtd->dma_start;
++ } else
++ break;
++ }
++
++ prtd->dma_pos = pos;
++}
++
++/*
++ * call the function:jz4740_pcm_dma_irq() after DMA has transfered the current buffer
++ */
++static irqreturn_t jz4740_pcm_dma_irq(int dma_ch, void *dev_id)
++{
++ struct snd_pcm_substream *substream = dev_id;
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct jz4740_runtime_data *prtd = runtime->private_data;
++ /*struct jz4740_dma_buf_aic *aic_buf = prtd->curr;*/
++ int channel = prtd->params->channel;
++ unsigned long flags;
++
++ disable_dma(channel);
++ prtd->aic_dma_flag &= ~AIC_START_DMA;
++ /* must clear TT bit in DCCSR to avoid interrupt again */
++ if (__dmac_channel_transmit_end_detected(channel)) {
++ __dmac_channel_clear_transmit_end(channel);
++ }
++ if (__dmac_channel_transmit_halt_detected(channel)) {
++ __dmac_channel_clear_transmit_halt(channel);
++ }
++
++ if (__dmac_channel_address_error_detected(channel)) {
++ __dmac_channel_clear_address_error(channel);
++ }
++
++ if (substream)
++ snd_pcm_period_elapsed(substream);
++
++ spin_lock(&prtd->lock);
++ prtd->dma_loaded--;
++ if (prtd->state & ST_RUNNING) {
++ jz4740_pcm_enqueue(substream);
++ }
++ spin_unlock(&prtd->lock);
++
++ local_irq_save(flags);
++ if (prtd->state & ST_RUNNING) {
++ if (prtd->dma_loaded) {
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
++ audio_start_dma(prtd, DMA_MODE_WRITE);
++ else
++ audio_start_dma(prtd, DMA_MODE_READ);
++ }
++ }
++ local_irq_restore(flags);
++ return IRQ_HANDLED;
++}
++
++/* some parameter about DMA operation */
++static int jz4740_pcm_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct jz4740_runtime_data *prtd = runtime->private_data;
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct jz4740_pcm_dma_params *dma = &jz4740_i2s_pcm_stereo_out;
++ size_t totbytes = params_buffer_bytes(params);
++ int ret;
++
++ if (!dma)
++ return 0;
++
++ switch (params_format(params)) {
++ case SNDRV_PCM_FORMAT_S8:
++ tran_bit = 8;
++ break;
++ case SNDRV_PCM_FORMAT_S16_LE:
++ tran_bit = 16;
++ break;
++ }
++
++ /* prepare DMA */
++ prtd->params = dma;
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
++ ret = jz_request_dma(DMA_ID_AIC_TX, prtd->params->client->name,
++ jz4740_pcm_dma_irq, IRQF_DISABLED, substream);
++ if (ret < 0)
++ return ret;
++ prtd->params->channel = ret;
++ } else {
++ ret = jz_request_dma(DMA_ID_AIC_RX, prtd->params->client->name,
++ jz4740_pcm_dma_irq, IRQF_DISABLED, substream);
++ if (ret < 0)
++ return ret;
++ prtd->params->channel = ret;
++ }
++
++ snd_pcm_set_runtime_buffer(substream, &substream->dma_buffer);
++ runtime->dma_bytes = totbytes;
++
++ spin_lock_irq(&prtd->lock);
++ prtd->dma_loaded = 0;
++ prtd->aic_dma_flag = 0;
++ prtd->dma_limit = runtime->hw.periods_min;
++ prtd->dma_period = params_period_bytes(params);
++ prtd->dma_start = runtime->dma_addr;
++ prtd->dma_pos = prtd->dma_start;
++ prtd->dma_end = prtd->dma_start + totbytes;
++ prtd->curr = NULL;
++ prtd->next = NULL;
++ prtd->end = NULL;
++ sum_bytes = 0;
++ first_transfer = 1;
++ printk_flag = 0;
++
++ __dmac_disable_descriptor(prtd->params->channel);
++ __dmac_channel_disable_irq(prtd->params->channel);
++ spin_unlock_irq(&prtd->lock);
++ return ret;
++}
++
++static int jz4740_pcm_hw_free(struct snd_pcm_substream *substream)
++{
++ struct jz4740_runtime_data *prtd = substream->runtime->private_data;
++
++ snd_pcm_set_runtime_buffer(substream, NULL);
++ if (prtd->params) {
++ jz_free_dma(prtd->params->channel);
++ prtd->params = NULL;
++ }
++
++ return 0;
++}
++
++/* set some dma para for playback/capture */
++static int jz4740_dma_ctrl(int channel)
++{
++
++ disable_dma(channel);
++
++ /* must clear TT bit in DCCSR to avoid interrupt again */
++ if (__dmac_channel_transmit_end_detected(channel)) {
++ __dmac_channel_clear_transmit_end(channel);
++ }
++ if (__dmac_channel_transmit_halt_detected(channel)) {
++ __dmac_channel_clear_transmit_halt(channel);
++ }
++
++ if (__dmac_channel_address_error_detected(channel)) {
++ __dmac_channel_clear_address_error(channel);
++ }
++
++ return 0;
++
++}
++
++static int jz4740_pcm_prepare(struct snd_pcm_substream *substream)
++{
++ struct jz4740_runtime_data *prtd = substream->runtime->private_data;
++ int ret = 0;
++
++ /* return if this is a bufferless transfer e.g */
++ if (!prtd->params)
++ return 0;
++
++ /* flush the DMA channel and DMA channel bit check */
++ jz4740_dma_ctrl(prtd->params->channel);
++ prtd->dma_loaded = 0;
++ prtd->dma_pos = prtd->dma_start;
++
++ /* enqueue dma buffers */
++ jz4740_pcm_enqueue(substream);
++
++ return ret;
++
++}
++
++static int jz4740_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct jz4740_runtime_data *prtd = runtime->private_data;
++
++ int ret = 0;
++
++ switch (cmd) {
++ case SNDRV_PCM_TRIGGER_START:
++ prtd->state |= ST_RUNNING;
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
++ audio_start_dma(prtd, DMA_MODE_WRITE);
++ } else {
++ audio_start_dma(prtd, DMA_MODE_READ);
++ }
++
++ break;
++
++ case SNDRV_PCM_TRIGGER_STOP:
++ case SNDRV_PCM_TRIGGER_SUSPEND:
++ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
++ prtd->state &= ~ST_RUNNING;
++ break;
++
++ case SNDRV_PCM_TRIGGER_RESUME:
++ printk(" RESUME \n");
++ break;
++ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
++ printk(" RESTART \n");
++ break;
++
++ default:
++ ret = -EINVAL;
++ }
++
++ return ret;
++}
++
++static snd_pcm_uframes_t
++jz4740_pcm_pointer(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct jz4740_runtime_data *prtd = runtime->private_data;
++ struct jz4740_dma_buf_aic *aic_buf = prtd->curr;
++ long count,res;
++
++ dma_addr_t ptr;
++ snd_pcm_uframes_t x;
++ int channel = prtd->params->channel;
++
++ spin_lock(&prtd->lock);
++#if 1
++
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
++ count = get_dma_residue(channel);
++ count = aic_buf->size - count;
++ ptr = aic_buf->data + count;
++ res = ptr - prtd->dma_start;
++ } else {
++ count = get_dma_residue(channel);
++ count = aic_buf->size - count;
++ ptr = aic_buf->data + count;
++ res = ptr - prtd->dma_start;
++ }
++
++# else
++
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
++ if ((prtd->aic_dma_flag & AIC_START_DMA) == 0) {
++ count = get_dma_residue(channel);
++ count = aic_buf->size - count;
++ ptr = aic_buf->data + count;
++ REG_DMAC_DSAR(channel) = ptr;
++ res = ptr - prtd->dma_start;
++ } else {
++ ptr = REG_DMAC_DSAR(channel);
++ if (ptr == 0x0)
++ printk("\ndma address is 00000000 in running!\n");
++ res = ptr - prtd->dma_start;
++ }
++ } else {
++ if ((prtd->aic_dma_flag & AIC_START_DMA) == 0) {
++ count = get_dma_residue(channel);
++ count = aic_buf->size - count;
++ ptr = aic_buf->data + count;
++ REG_DMAC_DTAR(channel) = ptr;
++ res = ptr - prtd->dma_start;
++ } else {
++ ptr = REG_DMAC_DTAR(channel);
++ if (ptr == 0x0)
++ printk("\ndma address is 00000000 in running!\n");
++ res = ptr - prtd->dma_start;
++ }
++ }
++#endif
++ spin_unlock(&prtd->lock);
++ x = bytes_to_frames(runtime, res);
++ if (x == runtime->buffer_size)
++ x = 0;
++
++ return x;
++}
++
++static int jz4740_pcm_open(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct jz4740_runtime_data *prtd;
++
++#ifdef CONFIG_SND_OSSEMUL
++ hw_params_cnt = 0;
++#endif
++ snd_soc_set_runtime_hwparams(substream, &jz4740_pcm_hardware);
++ prtd = kzalloc(sizeof(struct jz4740_runtime_data), GFP_KERNEL);
++ if (prtd == NULL)
++ return -ENOMEM;
++
++ spin_lock_init(&prtd->lock);
++
++ runtime->private_data = prtd;
++ REG_AIC_I2SCR = 0x10;
++ return 0;
++}
++
++static int jz4740_pcm_close(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct jz4740_runtime_data *prtd = runtime->private_data;
++ struct jz4740_dma_buf_aic *aic_buf = NULL;
++
++#ifdef CONFIG_SND_OSSEMUL
++ hw_params_cnt = 0;
++#endif
++
++ if (prtd)
++ aic_buf = prtd->curr;
++
++ while (aic_buf != NULL) {
++ prtd->curr = aic_buf->next;
++ prtd->next = aic_buf->next;
++ aic_buf->next = NULL;
++ kfree(aic_buf);
++ aic_buf = NULL;
++ aic_buf = prtd->curr;
++ }
++
++ if (prtd) {
++ prtd->curr = NULL;
++ prtd->next = NULL;
++ prtd->end = NULL;
++ kfree(prtd);
++ }
++
++ return 0;
++}
++
++static int jz4740_pcm_mmap(struct snd_pcm_substream *substream,
++ struct vm_area_struct *vma)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++
++ return remap_pfn_range(vma, vma->vm_start,
++ substream->dma_buffer.addr >> PAGE_SHIFT,
++ vma->vm_end - vma->vm_start, vma->vm_page_prot);
++}
++
++struct snd_pcm_ops jz4740_pcm_ops = {
++ .open = jz4740_pcm_open,
++ .close = jz4740_pcm_close,
++ .ioctl = snd_pcm_lib_ioctl,
++ .hw_params = jz4740_pcm_hw_params,
++ .hw_free = jz4740_pcm_hw_free,
++ .prepare = jz4740_pcm_prepare,
++ .trigger = jz4740_pcm_trigger,
++ .pointer = jz4740_pcm_pointer,
++ .mmap = jz4740_pcm_mmap,
++};
++
++static int jz4740_pcm_preallocate_dma_buffer(struct snd_pcm *pcm, int stream)
++{
++ struct snd_pcm_substream *substream = pcm->streams[stream].substream;
++ struct snd_dma_buffer *buf = &substream->dma_buffer;
++ size_t size = jz4740_pcm_hardware.buffer_bytes_max;
++ buf->dev.type = SNDRV_DMA_TYPE_DEV;
++ buf->dev.dev = pcm->card->dev;
++ buf->private_data = NULL;
++
++ /*buf->area = dma_alloc_coherent(pcm->card->dev, size,
++ &buf->addr, GFP_KERNEL);*/
++ buf->area = dma_alloc_noncoherent(pcm->card->dev, size,
++ &buf->addr, GFP_KERNEL);
++ if (!buf->area)
++ return -ENOMEM;
++ buf->bytes = size;
++ return 0;
++}
++
++static void jz4740_pcm_free_dma_buffers(struct snd_pcm *pcm)
++{
++ struct snd_pcm_substream *substream;
++ struct snd_dma_buffer *buf;
++ int stream;
++
++ for (stream = 0; stream < 2; stream++) {
++ substream = pcm->streams[stream].substream;
++ if (!substream)
++ continue;
++
++ buf = &substream->dma_buffer;
++ if (!buf->area)
++ continue;
++
++ dma_free_noncoherent(pcm->card->dev, buf->bytes,
++ buf->area, buf->addr);
++ buf->area = NULL;
++ }
++}
++
++static u64 jz4740_pcm_dmamask = DMA_BIT_MASK(32);
++
++int jz4740_pcm_new(struct snd_card *card, struct snd_soc_dai *dai,
++ struct snd_pcm *pcm)
++{
++ int ret = 0;
++
++ printk("pcm new\n");
++
++ if (!card->dev->dma_mask)
++ card->dev->dma_mask = &jz4740_pcm_dmamask;
++ if (!card->dev->coherent_dma_mask)
++ card->dev->coherent_dma_mask = DMA_BIT_MASK(32);
++
++ if (dai->playback.channels_min) {
++ ret = jz4740_pcm_preallocate_dma_buffer(pcm,
++ SNDRV_PCM_STREAM_PLAYBACK);
++ if (ret)
++ goto out;
++ }
++
++ if (dai->capture.channels_min) {
++ ret = jz4740_pcm_preallocate_dma_buffer(pcm,
++ SNDRV_PCM_STREAM_CAPTURE);
++ if (ret)
++ goto out;
++ }
++ out:
++
++ return ret;
++}
++
++struct snd_soc_platform jz4740_soc_platform = {
++ .name = "jz4740-audio",
++ .pcm_ops = &jz4740_pcm_ops,
++ .pcm_new = jz4740_pcm_new,
++ .pcm_free = jz4740_pcm_free_dma_buffers,
++};
++
++EXPORT_SYMBOL_GPL(jz4740_soc_platform);
++
++static int __init jz4740_soc_platform_init(void)
++{
++ return snd_soc_register_platform(&jz4740_soc_platform);
++}
++module_init(jz4740_soc_platform_init);
++
++static void __exit jz4740_soc_platform_exit(void)
++{
++ snd_soc_unregister_platform(&jz4740_soc_platform);
++}
++module_exit(jz4740_soc_platform_exit);
++
++MODULE_AUTHOR("Richard");
++MODULE_DESCRIPTION("Ingenic Jz4740 PCM DMA module");
++MODULE_LICENSE("GPL");
+diff -ruN linux-2.6.31-vanilla/sound/soc/jz4740/jz4740-pcm.h linux-2.6.31/sound/soc/jz4740/jz4740-pcm.h
+--- linux-2.6.31-vanilla/sound/soc/jz4740/jz4740-pcm.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/sound/soc/jz4740/jz4740-pcm.h 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,33 @@
++/*
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#ifndef _JZ4740_PCM_H
++#define _JZ4740_PCM_H
++
++#include <asm/jzsoc.h>
++
++#define ST_RUNNING (1<<0)
++#define ST_OPENED (1<<1)
++
++#define AIC_START_DMA (1<<0)
++#define AIC_END_DMA (1<<1)
++
++struct jz4740_dma_client {
++ char *name;
++};
++
++struct jz4740_pcm_dma_params {
++ struct jz4740_dma_client *client; /* stream identifier */
++ int channel; /* Channel ID */
++ dma_addr_t dma_addr;
++ int dma_size; /* Size of the DMA transfer */
++};
++
++/* platform data */
++extern struct snd_soc_platform jz4740_soc_platform;
++
++#endif
+diff -ruN linux-2.6.31-vanilla/sound/soc/jz4740/qi_lb60.c linux-2.6.31/sound/soc/jz4740/qi_lb60.c
+--- linux-2.6.31-vanilla/sound/soc/jz4740/qi_lb60.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.31/sound/soc/jz4740/qi_lb60.c 2009-11-19 19:00:26.000000000 +0100
+@@ -0,0 +1,182 @@
++/*
++ * Copyright (C) 2009, Lars-Peter Clausen <lars@metafoo.de>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/timer.h>
++#include <linux/interrupt.h>
++#include <linux/platform_device.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++#include <linux/gpio.h>
++
++#include "../codecs/jzcodec.h"
++#include "jz4740-pcm.h"
++#include "jz4740-i2s.h"
++
++
++#define QI_LB60_SND_GPIO JZ_GPIO_PORTB(29)
++#define QI_LB60_AMP_GPIO JZ_GPIO_PORTD(4)
++
++static int qi_lb60_spk_event(struct snd_soc_dapm_widget *widget,
++ struct snd_kcontrol *ctrl, int event)
++{
++ int on = 0;
++ if (event & SND_SOC_DAPM_POST_PMU)
++ on = 1;
++ else if (event & SND_SOC_DAPM_PRE_PMD)
++ on = 0;
++
++ gpio_set_value(QI_LB60_SND_GPIO, on);
++ gpio_set_value(QI_LB60_AMP_GPIO, on);
++
++ return 0;
++}
++
++static const struct snd_soc_dapm_widget qi_lb60_widgets[] = {
++ SND_SOC_DAPM_SPK("Speaker", qi_lb60_spk_event),
++ SND_SOC_DAPM_MIC("Mic", NULL),
++};
++
++static const struct snd_soc_dapm_route qi_lb60_routes[] = {
++ {"Mic", NULL, "MIC"},
++ {"Speaker", NULL, "LOUT"},
++ {"Speaker", NULL, "ROUT"},
++};
++
++#define QI_LB60_DAIFMT (SND_SOC_DAIFMT_I2S | \
++ SND_SOC_DAIFMT_NB_NF | \
++ SND_SOC_DAIFMT_CBM_CFM)
++
++static int qi_lb60_codec_init(struct snd_soc_codec *codec)
++{
++ int ret;
++ struct snd_soc_dai *cpu_dai = codec->socdev->card->dai_link->cpu_dai;
++ struct snd_soc_dai *codec_dai = codec->socdev->card->dai_link->codec_dai;
++
++ snd_soc_dapm_nc_pin(codec, "LIN");
++ snd_soc_dapm_nc_pin(codec, "RIN");
++
++ ret = snd_soc_dai_set_fmt(codec_dai, QI_LB60_DAIFMT);
++ if (ret < 0) {
++ dev_err(codec->dev, "Failed to set codec dai format: %d\n", ret);
++ return ret;
++ }
++
++ ret = snd_soc_dai_set_fmt(cpu_dai, QI_LB60_DAIFMT);
++ if (ret < 0) {
++ dev_err(codec->dev, "Failed to set cpu dai format: %d\n", ret);
++ return ret;
++ }
++
++ ret = snd_soc_dai_set_sysclk(codec_dai, JZCODEC_SYSCLK, 111,
++ SND_SOC_CLOCK_IN);
++ if (ret < 0) {
++ dev_err(codec->dev, "Failed to set codec dai sysclk: %d\n", ret);
++ return ret;
++ }
++
++ snd_soc_dapm_new_controls(codec, qi_lb60_widgets, ARRAY_SIZE(qi_lb60_widgets));
++
++ snd_soc_dapm_add_routes(codec, qi_lb60_routes, ARRAY_SIZE(qi_lb60_routes));
++
++ snd_soc_dapm_sync(codec);
++
++ return 0;
++}
++
++static struct snd_soc_dai_link qi_lb60_dai = {
++ .name = "jz-codec",
++ .stream_name = "JZCODEC",
++ .cpu_dai = &jz4740_i2s_dai,
++ .codec_dai = &jz_codec_dai,
++ .init = qi_lb60_codec_init,
++};
++
++static struct snd_soc_card qi_lb60 = {
++ .name = "QI LB60",
++ .dai_link = &qi_lb60_dai,
++ .num_links = 1,
++ .platform = &jz4740_soc_platform,
++};
++
++static struct snd_soc_device qi_lb60_snd_devdata = {
++ .card = &qi_lb60,
++ .codec_dev = &soc_codec_dev_jzcodec,
++};
++
++static struct platform_device *qi_lb60_snd_device;
++
++static int __init qi_lb60_init(void)
++{
++ int ret;
++
++ qi_lb60_snd_device = platform_device_alloc("soc-audio", -1);
++
++ if (!qi_lb60_snd_device)
++ return -ENOMEM;
++
++
++ ret = gpio_request(QI_LB60_SND_GPIO, "SND");
++ if (ret) {
++ pr_err("qi_lb60 snd: Failed to request SND GPIO(%d): %d\n",
++ QI_LB60_SND_GPIO, ret);
++ goto err_device_put;
++ }
++
++ ret = gpio_request(QI_LB60_AMP_GPIO, "AMP");
++ if (ret) {
++ pr_err("qi_lb60 snd: Failed to request AMP GPIO(%d): %d\n",
++ QI_LB60_AMP_GPIO, ret);
++ goto err_gpio_free_snd;
++ }
++
++ gpio_direction_output(JZ_GPIO_PORTB(29), 0);
++ gpio_direction_output(JZ_GPIO_PORTD(4), 0);
++
++ platform_set_drvdata(qi_lb60_snd_device, &qi_lb60_snd_devdata);
++ qi_lb60_snd_devdata.dev = &qi_lb60_snd_device->dev;
++ ret = platform_device_add(qi_lb60_snd_device);
++ if (ret) {
++ pr_err("qi_lb60 snd: Failed to add snd soc device: %d\n", ret);
++ goto err_unset_pdata;
++ }
++
++ return 0;
++
++err_unset_pdata:
++ platform_set_drvdata(qi_lb60_snd_device, NULL);
++/*err_gpio_free_amp:*/
++ gpio_free(QI_LB60_AMP_GPIO);
++err_gpio_free_snd:
++ gpio_free(QI_LB60_SND_GPIO);
++err_device_put:
++ platform_device_put(qi_lb60_snd_device);
++
++ return ret;
++}
++module_init(qi_lb60_init);
++
++static void __exit qi_lb60_exit(void)
++{
++ gpio_free(QI_LB60_AMP_GPIO);
++ gpio_free(QI_LB60_SND_GPIO);
++ platform_device_unregister(qi_lb60_snd_device);
++}
++module_exit(qi_lb60_exit);
++
++MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>");
++MODULE_DESCRIPTION("ALSA SoC QI LB60 Audio support");
++MODULE_LICENSE("GPL v2");
diff --git a/recipes/linux/linux-2.6.31/ben-nanonote/fix_mips_vmlinux.lds.patch b/recipes/linux/linux-2.6.31/ben-nanonote/fix_mips_vmlinux.lds.patch
new file mode 100644
index 0000000000..b2fd44e0a9
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/ben-nanonote/fix_mips_vmlinux.lds.patch
@@ -0,0 +1,24 @@
+--- linux-2.6.31-vanilla/arch/mips/kernel/vmlinux.lds.S 2009-11-19 20:54:28.000000000 +0100
++++ linux-2.6.31/arch/mips/kernel/vmlinux.lds.S 2009-11-19 20:54:58.000000000 +0100
+@@ -10,15 +10,15 @@
+ note PT_NOTE FLAGS(4); /* R__ */
+ }
+
+-ifdef CONFIG_32BIT
+- ifdef CONFIG_CPU_LITTLE_ENDIAN
++#ifdef CONFIG_32BIT
++ #ifdef CONFIG_CPU_LITTLE_ENDIAN
+ jiffies = jiffies_64;
+- else
++ #else
+ jiffies = jiffies_64 + 4;
+- endif
+-else
++ #endif
++#else
+ jiffies = jiffies_64;
+-endif
++#endif
+
+ SECTIONS
+ {
diff --git a/recipes/linux/linux-2.6.31/boc01/005-091103-isl12024.patch b/recipes/linux/linux-2.6.31/boc01/005-091110-isl12024.patch
index 9daab5acaa..447a7dc043 100644
--- a/recipes/linux/linux-2.6.31/boc01/005-091103-isl12024.patch
+++ b/recipes/linux/linux-2.6.31/boc01/005-091110-isl12024.patch
@@ -4,8 +4,8 @@ Signed-off-by: Jeremy Laine <jeremy.laine@m4x.org>
Index: linux-2.6.31/drivers/misc/eeprom/at24.c
===================================================================
---- linux-2.6.31.orig/drivers/misc/eeprom/at24.c 2009-09-10 00:13:59.000000000 +0200
-+++ linux-2.6.31/drivers/misc/eeprom/at24.c 2009-11-03 11:17:22.000000000 +0100
+--- linux-2.6.31.orig/drivers/misc/eeprom/at24.c 2009-11-10 17:20:53.000000000 +0100
++++ linux-2.6.31/drivers/misc/eeprom/at24.c 2009-11-10 17:54:17.000000000 +0100
@@ -115,6 +115,8 @@
{ "spd", AT24_DEVICE_MAGIC(2048 / 8,
AT24_FLAG_READONLY | AT24_FLAG_IRUGO) },
@@ -17,14 +17,14 @@ Index: linux-2.6.31/drivers/misc/eeprom/at24.c
{ "24c16", AT24_DEVICE_MAGIC(16384 / 8, 0) },
Index: linux-2.6.31/drivers/rtc/Kconfig
===================================================================
---- linux-2.6.31.orig/drivers/rtc/Kconfig 2009-09-10 00:13:59.000000000 +0200
-+++ linux-2.6.31/drivers/rtc/Kconfig 2009-11-03 11:13:42.000000000 +0100
+--- linux-2.6.31.orig/drivers/rtc/Kconfig 2009-11-10 17:20:53.000000000 +0100
++++ linux-2.6.31/drivers/rtc/Kconfig 2009-11-10 17:54:17.000000000 +0100
@@ -193,6 +193,15 @@
This driver can also be built as a module. If so, the module
will be called rtc-isl1208.
+config RTC_DRV_ISL12024
-+ tristate "Intersil 12024"
++ tristate "Intersil ISL12024"
+ help
+ If you say yes here you get support for the Intersil ISL12024
+ RTC chip. This driver also exposes the chip's unique ID.
@@ -37,8 +37,8 @@ Index: linux-2.6.31/drivers/rtc/Kconfig
help
Index: linux-2.6.31/drivers/rtc/Makefile
===================================================================
---- linux-2.6.31.orig/drivers/rtc/Makefile 2009-09-10 00:13:59.000000000 +0200
-+++ linux-2.6.31/drivers/rtc/Makefile 2009-11-03 11:13:42.000000000 +0100
+--- linux-2.6.31.orig/drivers/rtc/Makefile 2009-11-10 17:20:53.000000000 +0100
++++ linux-2.6.31/drivers/rtc/Makefile 2009-11-10 17:54:17.000000000 +0100
@@ -40,6 +40,7 @@
obj-$(CONFIG_RTC_DRV_EP93XX) += rtc-ep93xx.o
obj-$(CONFIG_RTC_DRV_FM3130) += rtc-fm3130.o
@@ -50,8 +50,8 @@ Index: linux-2.6.31/drivers/rtc/Makefile
Index: linux-2.6.31/drivers/rtc/rtc-isl12024.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.31/drivers/rtc/rtc-isl12024.c 2009-11-03 11:14:33.000000000 +0100
-@@ -0,0 +1,457 @@
++++ linux-2.6.31/drivers/rtc/rtc-isl12024.c 2009-11-10 17:54:31.000000000 +0100
+@@ -0,0 +1,455 @@
+/*
+ * Intersil ISL12024 rtc class driver
+ *
@@ -101,7 +101,7 @@ Index: linux-2.6.31/drivers/rtc/rtc-isl12024.c
+#define ISL12024_REG_HR_PM (1<<5) /* AM/PM bit in 12h mode */
+#define ISL12024_RTC_SECTION_LEN 8
+
-+/* control/status section */
++/* status section */
+#define ISL12024_REG_SR 0x3F
+#define ISL12024_REG_SR_BAT (1<<7) /* battery */
+#define ISL12024_REG_SR_AL1 (1<<6) /* alarm 0 */
@@ -110,9 +110,10 @@ Index: linux-2.6.31/drivers/rtc/rtc-isl12024.c
+#define ISL12024_REG_SR_RWEL (1<<2) /* register write enable latch */
+#define ISL12024_REG_SR_WEL (1<<1) /* write enable latch */
+#define ISL12024_REG_SR_RTCF (1<<0) /* rtc fail */
-+#define ISL12024_REG_INT 0x11
+
-+#define ISL12024_INT_AL0E 0x20 /* Alarm 0 enable */
++/* control section */
++#define ISL12024_REG_INT 0x11
++#define ISL12024_INT_AL0E (1<<5) /* Alarm 0 enable */
+
+static struct i2c_driver isl12024_driver;
+
@@ -142,9 +143,9 @@ Index: linux-2.6.31/drivers/rtc/rtc-isl12024.c
+ dt_addr[1] = reg;
+
+ ret = i2c_transfer(client->adapter, msgs, 2);
-+ if (ret < 0) {
++ if (ret != 2) {
+ dev_err(&client->dev, "read error (%i)\n", ret);
-+ return ret;
++ return (ret < 0) ? ret : -EIO;
+ }
+ return 0;
+}
@@ -163,7 +164,7 @@ Index: linux-2.6.31/drivers/rtc/rtc-isl12024.c
+ ret = i2c_master_send(client, i2c_buf, len + 2);
+ if (ret != len + 2) {
+ dev_err(&client->dev, "write error (%d)\n", ret);
-+ return -EIO;
++ return (ret < 0) ? ret : -EIO;
+ }
+ return 0;
+}
@@ -189,24 +190,25 @@ Index: linux-2.6.31/drivers/rtc/rtc-isl12024.c
+ return err;
+ }
+
-+ tm->tm_sec = bcd2bin(regs[0]);
-+ tm->tm_min = bcd2bin(regs[1]);
++ tm->tm_sec = bcd2bin(regs[CCR_SEC]);
++ tm->tm_min = bcd2bin(regs[CCR_MIN]);
+
+ /* HR field has a more complex interpretation */
-+ if (regs[2] & ISL12024_REG_HR_MIL) {
++ if (regs[CCR_HOUR] & ISL12024_REG_HR_MIL) {
+ /* 24h format */
-+ tm->tm_hour = bcd2bin(regs[2] & 0x3f);
++ tm->tm_hour = bcd2bin(regs[CCR_HOUR] & 0x3f);
+ } else {
+ /* 12h format */
-+ tm->tm_hour = bcd2bin(regs[2] & 0x1f);
-+ if (regs[2] & ISL12024_REG_HR_PM) /* PM flag set */
++ tm->tm_hour = bcd2bin(regs[CCR_HOUR] & 0x1f);
++ if (regs[CCR_HOUR] & ISL12024_REG_HR_PM) /* PM flag set */
+ tm->tm_hour += 12;
+ }
+
-+ tm->tm_mday = bcd2bin(regs[3]);
-+ tm->tm_mon = bcd2bin(regs[4]);
-+ tm->tm_year = bcd2bin(regs[5]) + 100;
-+ tm->tm_wday = bcd2bin(regs[6]);
++ tm->tm_mday = bcd2bin(regs[CCR_MDAY]);
++ tm->tm_mon = bcd2bin(regs[CCR_MONTH]) - 1;
++ tm->tm_year = bcd2bin(regs[CCR_YEAR])
++ + (bcd2bin(regs[CCR_Y2K]) * 100) - 1900;
++ tm->tm_wday = bcd2bin(regs[CCR_WDAY]);
+
+ return rtc_valid_tm(tm);
+}
@@ -247,12 +249,12 @@ Index: linux-2.6.31/drivers/rtc/rtc-isl12024.c
+ buf[CCR_MDAY] = bin2bcd(tm->tm_mday);
+
+ /* month, 1 - 12 */
-+ buf[CCR_MONTH] = bin2bcd(tm->tm_mon);
++ buf[CCR_MONTH] = bin2bcd(tm->tm_mon + 1);
+
+ /* year, since the rtc epoch*/
+ buf[CCR_YEAR] = bin2bcd(tm->tm_year % 100);
+ buf[CCR_WDAY] = tm->tm_wday & 0x07;
-+ buf[CCR_Y2K] = bin2bcd(tm->tm_year / 100);
++ buf[CCR_Y2K] = bin2bcd(19 + tm->tm_year / 100);
+ }
+
+ /* If writing alarm registers, set compare bits on registers 0-4 */
@@ -293,10 +295,8 @@ Index: linux-2.6.31/drivers/rtc/rtc-isl12024.c
+ /* Need to set RWEL again as the write has cleared it */
+ xfer = i2c_master_send(client, rwel, 3);
+ if (xfer != 3) {
-+ dev_err(&client->dev,
-+ "%s: al0e rwel - %d\n",
-+ __func__,
-+ xfer);
++ dev_err(&client->dev, "%s: al0e rwel - %d\n",
++ __func__, xfer);
+ return -EIO;
+ }
+
@@ -305,10 +305,8 @@ Index: linux-2.6.31/drivers/rtc/rtc-isl12024.c
+
+ xfer = i2c_master_send(client, al0e, 3);
+ if (xfer != 3) {
-+ dev_err(&client->dev,
-+ "%s: al0e - %d\n",
-+ __func__,
-+ xfer);
++ dev_err(&client->dev, "%s: al0e - %d\n",
++ __func__, xfer);
+ return -EIO;
+ }
+
@@ -403,7 +401,7 @@ Index: linux-2.6.31/drivers/rtc/rtc-isl12024.c
+ err = isl12024_i2c_read_regs(client, ISL12024_REG_ID, id_buffer,
+ sizeof(id_buffer));
+ if (err < 0) {
-+ dev_err(&client->dev, "reading RTC section failed\n");
++ dev_err(&client->dev, "reading ID section failed\n");
+ return err;
+ }
+
@@ -502,7 +500,7 @@ Index: linux-2.6.31/drivers/rtc/rtc-isl12024.c
+ i2c_del_driver(&isl12024_driver);
+}
+
-+MODULE_AUTHOR("Guillaume Ligneul <guillaume.ligneul@cenosys.com>");
++MODULE_AUTHOR("Guillaume Ligneul <guillaume.ligneul@gmail.com>");
+MODULE_DESCRIPTION("Intersil ISL12024 driver");
+MODULE_LICENSE("GPL");
+MODULE_VERSION(DRV_VERSION);
diff --git a/recipes/linux/linux-2.6.31/iei-nanogx-466/defconfig b/recipes/linux/linux-2.6.31/iei-nanogx-466/defconfig
new file mode 100644
index 0000000000..5084958efb
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/iei-nanogx-466/defconfig
@@ -0,0 +1,1688 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.31.5
+# Tue Oct 27 00:08:58 2009
+#
+# CONFIG_64BIT is not set
+CONFIG_X86_32=y
+# CONFIG_X86_64 is not set
+CONFIG_X86=y
+CONFIG_OUTPUT_FORMAT="elf32-i386"
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_FAST_CMPXCHG_LOCAL=y
+CONFIG_MMU=y
+CONFIG_ZONE_DMA=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+# CONFIG_GENERIC_TIME_VSYSCALL is not set
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_HAVE_DYNAMIC_PER_CPU_AREA=y
+# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+# CONFIG_ZONE_DMA32 is not set
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+# CONFIG_AUDIT_ARCH is not set
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_X86_32_LAZY_GS=y
+CONFIG_KTIME_SCALAR=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_CONSTRUCTORS=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_LZMA is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+
+#
+# RCU Subsystem
+#
+# CONFIG_CLASSIC_RCU is not set
+CONFIG_TREE_RCU=y
+# CONFIG_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_PREEMPT_RCU_TRACE is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+# CONFIG_GROUP_SCHED is not set
+# CONFIG_CGROUPS is not set
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_RELAY=y
+CONFIG_NAMESPACES=y
+# CONFIG_UTS_NS is not set
+# CONFIG_IPC_NS is not set
+# CONFIG_USER_NS is not set
+# CONFIG_PID_NS is not set
+# CONFIG_NET_NS is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+CONFIG_KALLSYMS_EXTRA_PASS=y
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_HAVE_PERF_COUNTERS=y
+
+#
+# Performance Counters
+#
+# CONFIG_PERF_COUNTERS is not set
+# CONFIG_VM_EVENT_COUNTERS is not set
+CONFIG_PCI_QUIRKS=y
+# CONFIG_SLUB_DEBUG is not set
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+CONFIG_TRACEPOINTS=y
+CONFIG_MARKERS=y
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+# CONFIG_SLOW_WORK is not set
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_BLOCK=y
+# CONFIG_LBDAF is not set
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_AS is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+# CONFIG_FREEZER is not set
+
+#
+# Processor type and features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+# CONFIG_HIGH_RES_TIMERS is not set
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+# CONFIG_SMP is not set
+# CONFIG_X86_EXTENDED_PLATFORM is not set
+# CONFIG_SCHED_OMIT_FRAME_POINTER is not set
+# CONFIG_PARAVIRT_GUEST is not set
+# CONFIG_MEMTEST is not set
+# CONFIG_M386 is not set
+# CONFIG_M486 is not set
+# CONFIG_M586 is not set
+# CONFIG_M586TSC is not set
+# CONFIG_M586MMX is not set
+# CONFIG_M686 is not set
+# CONFIG_MPENTIUMII is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUMM is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MEFFICEON is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MGEODEGX1 is not set
+CONFIG_MGEODE_LX=y
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_MVIAC7 is not set
+# CONFIG_MPSC is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_GENERIC_CPU is not set
+CONFIG_X86_GENERIC=y
+CONFIG_X86_CPU=y
+CONFIG_X86_L1_CACHE_BYTES=64
+CONFIG_X86_INTERNODE_CACHE_BYTES=64
+CONFIG_X86_CMPXCHG=y
+CONFIG_X86_L1_CACHE_SHIFT=5
+CONFIG_X86_XADD=y
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_INVLPG=y
+CONFIG_X86_BSWAP=y
+CONFIG_X86_POPAD_OK=y
+CONFIG_X86_INTEL_USERCOPY=y
+CONFIG_X86_USE_PPRO_CHECKSUM=y
+CONFIG_X86_USE_3DNOW=y
+CONFIG_X86_TSC=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=4
+CONFIG_X86_DEBUGCTLMSR=y
+CONFIG_PROCESSOR_SELECT=y
+# CONFIG_CPU_SUP_INTEL is not set
+# CONFIG_CPU_SUP_CYRIX_32 is not set
+CONFIG_CPU_SUP_AMD=y
+# CONFIG_CPU_SUP_CENTAUR is not set
+# CONFIG_CPU_SUP_TRANSMETA_32 is not set
+# CONFIG_CPU_SUP_UMC_32 is not set
+# CONFIG_X86_DS is not set
+# CONFIG_HPET_TIMER is not set
+CONFIG_DMI=y
+# CONFIG_IOMMU_HELPER is not set
+# CONFIG_IOMMU_API is not set
+CONFIG_NR_CPUS=1
+# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT_VOLUNTARY=y
+# CONFIG_PREEMPT is not set
+# CONFIG_X86_UP_APIC is not set
+CONFIG_X86_MCE=y
+# CONFIG_X86_OLD_MCE is not set
+CONFIG_X86_NEW_MCE=y
+# CONFIG_X86_ANCIENT_MCE is not set
+# CONFIG_X86_MCE_INJECT is not set
+# CONFIG_VM86 is not set
+# CONFIG_TOSHIBA is not set
+# CONFIG_I8K is not set
+CONFIG_X86_REBOOTFIXUPS=y
+CONFIG_MICROCODE=y
+CONFIG_MICROCODE_INTEL=y
+# CONFIG_MICROCODE_AMD is not set
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_X86_MSR=y
+CONFIG_X86_CPUID=y
+# CONFIG_X86_CPU_DEBUG is not set
+CONFIG_NOHIGHMEM=y
+# CONFIG_HIGHMEM4G is not set
+# CONFIG_HIGHMEM64G is not set
+# CONFIG_VMSPLIT_3G is not set
+# CONFIG_VMSPLIT_3G_OPT is not set
+# CONFIG_VMSPLIT_2G is not set
+# CONFIG_VMSPLIT_2G_OPT is not set
+CONFIG_VMSPLIT_1G=y
+CONFIG_PAGE_OFFSET=0x40000000
+# CONFIG_X86_PAE is not set
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_SPARSEMEM_STATIC=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_HAVE_MLOCK=y
+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
+CONFIG_X86_RESERVE_LOW_64K=y
+# CONFIG_MATH_EMULATION is not set
+# CONFIG_MTRR is not set
+# CONFIG_SECCOMP is not set
+# CONFIG_CC_STACKPROTECTOR is not set
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_300 is not set
+CONFIG_HZ_1000=y
+CONFIG_HZ=1000
+# CONFIG_SCHED_HRTICK is not set
+# CONFIG_KEXEC is not set
+CONFIG_PHYSICAL_START=0x1000000
+# CONFIG_RELOCATABLE is not set
+CONFIG_PHYSICAL_ALIGN=0x1000000
+# CONFIG_COMPAT_VDSO is not set
+# CONFIG_CMDLINE_BOOL is not set
+
+#
+# Power management and ACPI options
+#
+# CONFIG_PM is not set
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
+# CONFIG_CPU_IDLE is not set
+
+#
+# Bus options (PCI etc.)
+#
+CONFIG_PCI=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GOMMCONFIG is not set
+# CONFIG_PCI_GODIRECT is not set
+# CONFIG_PCI_GOOLPC is not set
+CONFIG_PCI_GOANY=y
+CONFIG_PCI_BIOS=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
+# CONFIG_PCIEASPM is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCI_LEGACY is not set
+# CONFIG_PCI_STUB is not set
+# CONFIG_PCI_IOV is not set
+CONFIG_ISA_DMA_API=y
+# CONFIG_ISA is not set
+# CONFIG_MCA is not set
+# CONFIG_SCx200 is not set
+# CONFIG_GEODE_MFGPT_TIMER is not set
+# CONFIG_OLPC is not set
+# CONFIG_PCCARD is not set
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# Executable file formats / Emulations
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_HAVE_AOUT=y
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_MISC=y
+CONFIG_HAVE_ATOMIC_IOMAP=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+# CONFIG_IP_PNP_BOOTP is not set
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+# CONFIG_INET_DIAG is not set
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+# CONFIG_TCP_CONG_HSTCP is not set
+# CONFIG_TCP_CONG_HYBLA is not set
+# CONFIG_TCP_CONG_VEGAS is not set
+# CONFIG_TCP_CONG_SCALABLE is not set
+# CONFIG_TCP_CONG_LP is not set
+# CONFIG_TCP_CONG_VENO is not set
+# CONFIG_TCP_CONG_YEAH is not set
+# CONFIG_TCP_CONG_ILLINOIS is not set
+# CONFIG_DEFAULT_BIC is not set
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_HTCP is not set
+# CONFIG_DEFAULT_VEGAS is not set
+# CONFIG_DEFAULT_WESTWOOD is not set
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_NET_DSA is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_PHONET is not set
+# CONFIG_IEEE802154 is not set
+# CONFIG_NET_SCHED is not set
+# CONFIG_DCB is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_NET_DROP_MONITOR is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+# CONFIG_WIRELESS is not set
+# CONFIG_WIMAX is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+# CONFIG_MTD is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=16384
+# CONFIG_BLK_DEV_XIP is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_BLK_DEV_HD is not set
+# CONFIG_MISC_DEVICES is not set
+CONFIG_HAVE_IDE=y
+CONFIG_IDE=y
+
+#
+# Please see Documentation/ide/ide.txt for help/info on IDE drives
+#
+CONFIG_IDE_XFER_MODE=y
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_IDE_GD=y
+CONFIG_IDE_GD_ATA=y
+# CONFIG_IDE_GD_ATAPI is not set
+# CONFIG_BLK_DEV_IDECD is not set
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_IDE_TASK_IOCTL is not set
+# CONFIG_IDE_PROC_FS is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=y
+CONFIG_BLK_DEV_PLATFORM=y
+# CONFIG_BLK_DEV_CMD640 is not set
+CONFIG_BLK_DEV_IDEDMA_SFF=y
+
+#
+# PCI IDE chipsets support
+#
+CONFIG_BLK_DEV_IDEPCI=y
+# CONFIG_IDEPCI_PCIBUS_ORDER is not set
+# CONFIG_BLK_DEV_GENERIC is not set
+# CONFIG_BLK_DEV_OPTI621 is not set
+# CONFIG_BLK_DEV_RZ1000 is not set
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+# CONFIG_BLK_DEV_ATIIXP is not set
+# CONFIG_BLK_DEV_CMD64X is not set
+# CONFIG_BLK_DEV_TRIFLEX is not set
+# CONFIG_BLK_DEV_CS5520 is not set
+# CONFIG_BLK_DEV_CS5530 is not set
+# CONFIG_BLK_DEV_CS5535 is not set
+CONFIG_BLK_DEV_CS5536=y
+# CONFIG_BLK_DEV_HPT366 is not set
+# CONFIG_BLK_DEV_JMICRON is not set
+# CONFIG_BLK_DEV_SC1200 is not set
+# CONFIG_BLK_DEV_PIIX is not set
+# CONFIG_BLK_DEV_IT8172 is not set
+# CONFIG_BLK_DEV_IT8213 is not set
+# CONFIG_BLK_DEV_IT821X is not set
+# CONFIG_BLK_DEV_NS87415 is not set
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+# CONFIG_BLK_DEV_SVWKS is not set
+# CONFIG_BLK_DEV_SIIMAGE is not set
+# CONFIG_BLK_DEV_SIS5513 is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
+# CONFIG_BLK_DEV_TRM290 is not set
+# CONFIG_BLK_DEV_VIA82CXXX is not set
+# CONFIG_BLK_DEV_TC86C001 is not set
+CONFIG_BLK_DEV_IDEDMA=y
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+# CONFIG_SCSI_TGT is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_SCSI_PROC_FS is not set
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+# CONFIG_BLK_DEV_SD is not set
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+# CONFIG_BLK_DEV_SR is not set
+# CONFIG_CHR_DEV_SG is not set
+# CONFIG_CHR_DEV_SCH is not set
+# CONFIG_SCSI_MULTI_LUN is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_LIBSAS is not set
+# CONFIG_SCSI_SRP_ATTRS is not set
+# CONFIG_SCSI_LOWLEVEL is not set
+# CONFIG_SCSI_DH is not set
+# CONFIG_SCSI_OSD_INITIATOR is not set
+# CONFIG_ATA is not set
+CONFIG_MD=y
+# CONFIG_BLK_DEV_MD is not set
+# CONFIG_BLK_DEV_DM is not set
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+
+#
+# You can enable one or both FireWire driver stacks.
+#
+
+#
+# See the help texts for more information.
+#
+# CONFIG_FIREWIRE is not set
+# CONFIG_IEEE1394 is not set
+# CONFIG_I2O is not set
+# CONFIG_MACINTOSH_DRIVERS is not set
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+# CONFIG_ARCNET is not set
+CONFIG_PHYLIB=y
+
+#
+# MII PHY device drivers
+#
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_SMSC_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_ICPLUS_PHY is not set
+CONFIG_REALTEK_PHY=y
+# CONFIG_NATIONAL_PHY is not set
+# CONFIG_STE10XP is not set
+# CONFIG_LSI_ET1011C_PHY is not set
+# CONFIG_FIXED_PHY is not set
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_CASSINI is not set
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_ETHOC is not set
+# CONFIG_DNET is not set
+# CONFIG_NET_TULIP is not set
+# CONFIG_HP100 is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+CONFIG_NET_PCI=y
+# CONFIG_PCNET32 is not set
+# CONFIG_AMD8111_ETH is not set
+# CONFIG_ADAPTEC_STARFIRE is not set
+# CONFIG_B44 is not set
+# CONFIG_FORCEDETH is not set
+# CONFIG_E100 is not set
+# CONFIG_FEALNX is not set
+# CONFIG_NATSEMI is not set
+# CONFIG_NE2K_PCI is not set
+# CONFIG_8139CP is not set
+CONFIG_8139TOO=y
+# CONFIG_8139TOO_PIO is not set
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+# CONFIG_8139TOO_8129 is not set
+# CONFIG_8139_OLD_RX_RESET is not set
+# CONFIG_R6040 is not set
+# CONFIG_SIS900 is not set
+# CONFIG_EPIC100 is not set
+# CONFIG_SMSC9420 is not set
+# CONFIG_SUNDANCE is not set
+# CONFIG_TLAN is not set
+# CONFIG_KS8842 is not set
+# CONFIG_VIA_RHINE is not set
+# CONFIG_SC92031 is not set
+# CONFIG_ATL2 is not set
+# CONFIG_NETDEV_1000 is not set
+# CONFIG_NETDEV_10000 is not set
+# CONFIG_TR is not set
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+CONFIG_WLAN_80211=y
+# CONFIG_LIBERTAS is not set
+# CONFIG_AIRO is not set
+# CONFIG_ATMEL is not set
+# CONFIG_PRISM54 is not set
+# CONFIG_USB_ZD1201 is not set
+# CONFIG_IPW2100 is not set
+# CONFIG_IPW2200 is not set
+# CONFIG_HOSTAP is not set
+# CONFIG_HERMES is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_WAN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_NET_FC is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=y
+CONFIG_INPUT_POLLDEV=y
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=y
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=y
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+# CONFIG_MOUSE_PS2_ELANTECH is not set
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_APPLETOUCH is not set
+# CONFIG_MOUSE_BCM5974 is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+CONFIG_INPUT_JOYSTICK=y
+# CONFIG_JOYSTICK_ANALOG is not set
+# CONFIG_JOYSTICK_A3D is not set
+# CONFIG_JOYSTICK_ADI is not set
+# CONFIG_JOYSTICK_COBRA is not set
+# CONFIG_JOYSTICK_GF2K is not set
+# CONFIG_JOYSTICK_GRIP is not set
+# CONFIG_JOYSTICK_GRIP_MP is not set
+# CONFIG_JOYSTICK_GUILLEMOT is not set
+# CONFIG_JOYSTICK_INTERACT is not set
+# CONFIG_JOYSTICK_SIDEWINDER is not set
+# CONFIG_JOYSTICK_TMDC is not set
+# CONFIG_JOYSTICK_IFORCE is not set
+# CONFIG_JOYSTICK_WARRIOR is not set
+# CONFIG_JOYSTICK_MAGELLAN is not set
+# CONFIG_JOYSTICK_SPACEORB is not set
+# CONFIG_JOYSTICK_SPACEBALL is not set
+# CONFIG_JOYSTICK_STINGER is not set
+# CONFIG_JOYSTICK_TWIDJOY is not set
+# CONFIG_JOYSTICK_ZHENHUA is not set
+# CONFIG_JOYSTICK_JOYDUMP is not set
+# CONFIG_JOYSTICK_XPAD is not set
+CONFIG_INPUT_TABLET=y
+# CONFIG_TABLET_USB_ACECAD is not set
+# CONFIG_TABLET_USB_AIPTEK is not set
+# CONFIG_TABLET_USB_GTCO is not set
+# CONFIG_TABLET_USB_KBTAB is not set
+# CONFIG_TABLET_USB_WACOM is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_AD7879 is not set
+# CONFIG_TOUCHSCREEN_FUJITSU is not set
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_INEXIO is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_WM97XX is not set
+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
+# CONFIG_TOUCHSCREEN_W90X900 is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_PCSPKR is not set
+# CONFIG_INPUT_WISTRON_BTNS is not set
+# CONFIG_INPUT_ATI_REMOTE is not set
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+# CONFIG_INPUT_CM109 is not set
+# CONFIG_INPUT_UINPUT is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=y
+# CONFIG_SERIO_CT82C710 is not set
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_DEVKMEM=y
+CONFIG_SERIAL_NONSTANDARD=y
+# CONFIG_COMPUTONE is not set
+# CONFIG_ROCKETPORT is not set
+# CONFIG_CYCLADES is not set
+# CONFIG_DIGIEPCA is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_ISI is not set
+# CONFIG_SYNCLINK is not set
+# CONFIG_SYNCLINKMP is not set
+# CONFIG_SYNCLINK_GT is not set
+# CONFIG_N_HDLC is not set
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_SX is not set
+# CONFIG_RIO is not set
+# CONFIG_STALDRV is not set
+# CONFIG_NOZOMI is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_DETECT_IRQ=y
+CONFIG_SERIAL_8250_RSA=y
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_JSM is not set
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_IPMI_HANDLER is not set
+CONFIG_HW_RANDOM=y
+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
+# CONFIG_HW_RANDOM_INTEL is not set
+# CONFIG_HW_RANDOM_AMD is not set
+CONFIG_HW_RANDOM_GEODE=y
+# CONFIG_HW_RANDOM_VIA is not set
+# CONFIG_NVRAM is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+# CONFIG_SONYPI is not set
+# CONFIG_MWAVE is not set
+# CONFIG_PC8736x_GPIO is not set
+# CONFIG_NSC_GPIO is not set
+# CONFIG_CS5535_GPIO is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_HANGCHECK_TIMER is not set
+# CONFIG_TCG_TPM is not set
+# CONFIG_TELCLOCK is not set
+CONFIG_DEVPORT=y
+# CONFIG_I2C is not set
+# CONFIG_SPI is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+# CONFIG_GPIOLIB is not set
+# CONFIG_W1 is not set
+# CONFIG_POWER_SUPPLY is not set
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=y
+# CONFIG_SENSORS_ABITUGURU is not set
+# CONFIG_SENSORS_ABITUGURU3 is not set
+# CONFIG_SENSORS_K8TEMP is not set
+# CONFIG_SENSORS_I5K_AMB is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_F71882FG is not set
+# CONFIG_SENSORS_CORETEMP is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_VIA686A is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_SENSORS_VT8231 is not set
+# CONFIG_SENSORS_W83627HF is not set
+CONFIG_SENSORS_W83627EHF=y
+# CONFIG_SENSORS_HDAPS is not set
+# CONFIG_SENSORS_APPLESMC is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+# CONFIG_THERMAL is not set
+# CONFIG_THERMAL_HWMON is not set
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+# CONFIG_ACQUIRE_WDT is not set
+# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ALIM1535_WDT is not set
+# CONFIG_ALIM7101_WDT is not set
+# CONFIG_GEODE_WDT is not set
+# CONFIG_SC520_WDT is not set
+# CONFIG_EUROTECH_WDT is not set
+# CONFIG_IB700_WDT is not set
+# CONFIG_IBMASR is not set
+# CONFIG_WAFER_WDT is not set
+# CONFIG_I6300ESB_WDT is not set
+# CONFIG_ITCO_WDT is not set
+# CONFIG_IT8712F_WDT is not set
+# CONFIG_IT87_WDT is not set
+# CONFIG_HP_WATCHDOG is not set
+# CONFIG_SC1200_WDT is not set
+# CONFIG_PC87413_WDT is not set
+# CONFIG_60XX_WDT is not set
+# CONFIG_SBC8360_WDT is not set
+# CONFIG_SBC7240_WDT is not set
+# CONFIG_CPU5_WDT is not set
+# CONFIG_SMSC_SCH311X_WDT is not set
+# CONFIG_SMSC37B787_WDT is not set
+CONFIG_W83627HF_WDT=y
+# CONFIG_W83697HF_WDT is not set
+# CONFIG_W83697UG_WDT is not set
+# CONFIG_W83877F_WDT is not set
+# CONFIG_W83977F_WDT is not set
+# CONFIG_MACHZ_WDT is not set
+# CONFIG_SBC_EPX_C3_WATCHDOG is not set
+
+#
+# PCI-based Watchdog Cards
+#
+# CONFIG_PCIPCWATCHDOG is not set
+# CONFIG_WDTPCI is not set
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_REGULATOR is not set
+# CONFIG_MEDIA_SUPPORT is not set
+
+#
+# Graphics support
+#
+# CONFIG_AGP is not set
+# CONFIG_DRM is not set
+# CONFIG_VGASTATE is not set
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_SYS_FOPS is not set
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+CONFIG_FB_MODE_HELPERS=y
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ARC is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_VGA16 is not set
+# CONFIG_FB_VESA is not set
+# CONFIG_FB_N411 is not set
+# CONFIG_FB_HGA is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_LE80578 is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_S3 is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_VIA is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_VT8623 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+CONFIG_FB_GEODE=y
+# CONFIG_FB_GEODE_LX is not set
+CONFIG_FB_GEODE_GX=y
+# CONFIG_FB_GEODE_GX1 is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+CONFIG_DISPLAY_SUPPORT=y
+
+#
+# Display hardware drivers
+#
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+CONFIG_FONT_PEARL_8x8=y
+CONFIG_FONT_ACORN_8x8=y
+CONFIG_FONT_MINI_4x6=y
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+CONFIG_FONT_10x18=y
+# CONFIG_LOGO is not set
+CONFIG_SOUND=y
+CONFIG_SOUND_OSS_CORE=y
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+CONFIG_SND_JACK=y
+# CONFIG_SND_SEQUENCER is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=y
+CONFIG_SND_PCM_OSS=y
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_SUPPORT_OLD_API=y
+# CONFIG_SND_VERBOSE_PROCFS is not set
+CONFIG_SND_VERBOSE_PRINTK=y
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_VMASTER=y
+# CONFIG_SND_RAWMIDI_SEQ is not set
+# CONFIG_SND_OPL3_LIB_SEQ is not set
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+# CONFIG_SND_SBAWE_SEQ is not set
+# CONFIG_SND_EMU10K1_SEQ is not set
+CONFIG_SND_AC97_CODEC=y
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+# CONFIG_SND_AC97_POWER_SAVE is not set
+CONFIG_SND_PCI=y
+# CONFIG_SND_AD1889 is not set
+# CONFIG_SND_ALS300 is not set
+# CONFIG_SND_ALS4000 is not set
+# CONFIG_SND_ALI5451 is not set
+# CONFIG_SND_ATIIXP is not set
+# CONFIG_SND_ATIIXP_MODEM is not set
+# CONFIG_SND_AU8810 is not set
+# CONFIG_SND_AU8820 is not set
+# CONFIG_SND_AU8830 is not set
+# CONFIG_SND_AW2 is not set
+# CONFIG_SND_AZT3328 is not set
+# CONFIG_SND_BT87X is not set
+# CONFIG_SND_CA0106 is not set
+# CONFIG_SND_CMIPCI is not set
+# CONFIG_SND_OXYGEN is not set
+# CONFIG_SND_CS4281 is not set
+# CONFIG_SND_CS46XX is not set
+# CONFIG_SND_CS5530 is not set
+CONFIG_SND_CS5535AUDIO=y
+# CONFIG_SND_CTXFI is not set
+# CONFIG_SND_DARLA20 is not set
+# CONFIG_SND_GINA20 is not set
+# CONFIG_SND_LAYLA20 is not set
+# CONFIG_SND_DARLA24 is not set
+# CONFIG_SND_GINA24 is not set
+# CONFIG_SND_LAYLA24 is not set
+# CONFIG_SND_MONA is not set
+# CONFIG_SND_MIA is not set
+# CONFIG_SND_ECHO3G is not set
+# CONFIG_SND_INDIGO is not set
+# CONFIG_SND_INDIGOIO is not set
+# CONFIG_SND_INDIGODJ is not set
+# CONFIG_SND_INDIGOIOX is not set
+# CONFIG_SND_INDIGODJX is not set
+# CONFIG_SND_EMU10K1 is not set
+# CONFIG_SND_EMU10K1X is not set
+# CONFIG_SND_ENS1370 is not set
+# CONFIG_SND_ENS1371 is not set
+# CONFIG_SND_ES1938 is not set
+# CONFIG_SND_ES1968 is not set
+# CONFIG_SND_FM801 is not set
+# CONFIG_SND_HDA_INTEL is not set
+# CONFIG_SND_HDSP is not set
+# CONFIG_SND_HDSPM is not set
+# CONFIG_SND_HIFIER is not set
+# CONFIG_SND_ICE1712 is not set
+# CONFIG_SND_ICE1724 is not set
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
+# CONFIG_SND_KORG1212 is not set
+# CONFIG_SND_LX6464ES is not set
+# CONFIG_SND_MAESTRO3 is not set
+# CONFIG_SND_MIXART is not set
+# CONFIG_SND_NM256 is not set
+# CONFIG_SND_PCXHR is not set
+# CONFIG_SND_RIPTIDE is not set
+# CONFIG_SND_RME32 is not set
+# CONFIG_SND_RME96 is not set
+# CONFIG_SND_RME9652 is not set
+# CONFIG_SND_SIS7019 is not set
+# CONFIG_SND_SONICVIBES is not set
+# CONFIG_SND_TRIDENT is not set
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
+# CONFIG_SND_VIRTUOSO is not set
+# CONFIG_SND_VX222 is not set
+# CONFIG_SND_YMFPCI is not set
+# CONFIG_SND_USB is not set
+CONFIG_SND_SOC=y
+# CONFIG_SND_SOC_ALL_CODECS is not set
+# CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=y
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+# CONFIG_HID_DEBUG is not set
+# CONFIG_HIDRAW is not set
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=y
+# CONFIG_HID_PID is not set
+# CONFIG_USB_HIDDEV is not set
+
+#
+# Special HID drivers
+#
+CONFIG_HID_A4TECH=y
+CONFIG_HID_APPLE=y
+CONFIG_HID_BELKIN=y
+CONFIG_HID_CHERRY=y
+CONFIG_HID_CHICONY=y
+CONFIG_HID_CYPRESS=y
+# CONFIG_HID_DRAGONRISE is not set
+CONFIG_HID_EZKEY=y
+CONFIG_HID_KYE=y
+CONFIG_HID_GYRATION=y
+CONFIG_HID_KENSINGTON=y
+CONFIG_HID_LOGITECH=y
+CONFIG_LOGITECH_FF=y
+# CONFIG_LOGIRUMBLEPAD2_FF is not set
+CONFIG_HID_MICROSOFT=y
+CONFIG_HID_MONTEREY=y
+CONFIG_HID_NTRIG=y
+CONFIG_HID_PANTHERLORD=y
+CONFIG_PANTHERLORD_FF=y
+CONFIG_HID_PETALYNX=y
+CONFIG_HID_SAMSUNG=y
+CONFIG_HID_SONY=y
+CONFIG_HID_SUNPLUS=y
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+CONFIG_HID_TOPSEED=y
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_ZEROPLUS is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB=y
+CONFIG_USB_DEBUG=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_DEVICE_CLASS is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+# CONFIG_USB_MON is not set
+# CONFIG_USB_WUSB is not set
+# CONFIG_USB_WUSB_CBAF is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+# CONFIG_USB_XHCI_HCD is not set
+CONFIG_USB_EHCI_HCD=y
+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
+# CONFIG_USB_EHCI_TT_NEWSCHED is not set
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_ISP1760_HCD is not set
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_UHCI_HCD=y
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_WHCI_HCD is not set
+# CONFIG_USB_HWA_HCD is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=y
+CONFIG_USB_PRINTER=y
+# CONFIG_USB_WDM is not set
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_STORAGE_ALAUDA is not set
+# CONFIG_USB_STORAGE_ONETOUCH is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
+CONFIG_USB_LIBUSUAL=y
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB port drivers
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_SEVSEG is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_BERRY_CHARGE is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_SISUSBVGA is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+# CONFIG_USB_TEST is not set
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_VST is not set
+# CONFIG_USB_GADGET is not set
+
+#
+# OTG and related infrastructure
+#
+# CONFIG_NOP_USB_XCEIV is not set
+# CONFIG_UWB is not set
+# CONFIG_MMC is not set
+# CONFIG_MEMSTICK is not set
+# CONFIG_NEW_LEDS is not set
+# CONFIG_ACCESSIBILITY is not set
+# CONFIG_INFINIBAND is not set
+CONFIG_EDAC=y
+
+#
+# Reporting subsystems
+#
+# CONFIG_EDAC_DEBUG is not set
+# CONFIG_EDAC_MM_EDAC is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# SPI RTC drivers
+#
+
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_CMOS=y
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_DMADEVICES=y
+
+#
+# DMA Devices
+#
+# CONFIG_INTEL_IOATDMA is not set
+# CONFIG_AUXDISPLAY is not set
+# CONFIG_UIO is not set
+
+#
+# TI VLYNQ
+#
+# CONFIG_STAGING is not set
+CONFIG_X86_PLATFORM_DEVICES=y
+
+#
+# Firmware Drivers
+#
+# CONFIG_EDD is not set
+# CONFIG_FIRMWARE_MEMMAP is not set
+# CONFIG_DELL_RBU is not set
+# CONFIG_DCDBAS is not set
+# CONFIG_DMIID is not set
+# CONFIG_ISCSI_IBFT_FIND is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+# CONFIG_EXT4_FS is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+CONFIG_FS_POSIX_ACL=y
+# CONFIG_XFS_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_BTRFS_FS is not set
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=y
+CONFIG_CUSE=y
+CONFIG_GENERIC_ACL=y
+
+#
+# Caches
+#
+# CONFIG_FSCACHE is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=y
+# CONFIG_NTFS_DEBUG is not set
+# CONFIG_NTFS_RW is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+# CONFIG_PROC_KCORE is not set
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+# CONFIG_HUGETLBFS is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_SQUASHFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_NILFS2_FS is not set
+# CONFIG_NETWORK_FILESYSTEMS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+CONFIG_OSF_PARTITION=y
+CONFIG_AMIGA_PARTITION=y
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+# CONFIG_LDM_PARTITION is not set
+CONFIG_SGI_PARTITION=y
+# CONFIG_ULTRIX_PARTITION is not set
+CONFIG_SUN_PARTITION=y
+CONFIG_KARMA_PARTITION=y
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+CONFIG_NLS_UTF8=y
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_PRINTK_TIME=y
+# CONFIG_ENABLE_WARN_DEPRECATED is not set
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=2048
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_KERNEL is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+# CONFIG_FRAME_POINTER is not set
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_LATENCYTOP is not set
+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_FTRACE_SYSCALLS=y
+CONFIG_TRACING_SUPPORT=y
+# CONFIG_FTRACE is not set
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_HAVE_ARCH_KMEMCHECK=y
+# CONFIG_STRICT_DEVMEM is not set
+CONFIG_X86_VERBOSE_BOOTUP=y
+CONFIG_EARLY_PRINTK=y
+CONFIG_EARLY_PRINTK_DBGP=y
+# CONFIG_4KSTACKS is not set
+# CONFIG_DOUBLEFAULT is not set
+# CONFIG_IOMMU_STRESS is not set
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+CONFIG_IO_DELAY_TYPE_0X80=0
+CONFIG_IO_DELAY_TYPE_0XED=1
+CONFIG_IO_DELAY_TYPE_UDELAY=2
+CONFIG_IO_DELAY_TYPE_NONE=3
+CONFIG_IO_DELAY_0X80=y
+# CONFIG_IO_DELAY_0XED is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_DELAY_NONE is not set
+CONFIG_DEFAULT_IO_DELAY_TYPE=0
+CONFIG_OPTIMIZE_INLINING=y
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+CONFIG_SECURITY_FILE_CAPABILITIES=y
+# CONFIG_CRYPTO is not set
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+# CONFIG_VIRTUALIZATION is not set
+# CONFIG_BINARY_PRINTF is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+# CONFIG_CRC_CCITT is not set
+# CONFIG_CRC16 is not set
+CONFIG_CRC_T10DIF=y
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_NLATTR=y
diff --git a/recipes/linux/linux-2.6.31/ion/defconfig b/recipes/linux/linux-2.6.31/ion/defconfig
new file mode 100644
index 0000000000..5bdaffbe69
--- /dev/null
+++ b/recipes/linux/linux-2.6.31/ion/defconfig
@@ -0,0 +1,3295 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.31.5
+# Fri Nov 20 18:08:17 2009
+#
+# CONFIG_64BIT is not set
+CONFIG_X86_32=y
+# CONFIG_X86_64 is not set
+CONFIG_X86=y
+CONFIG_OUTPUT_FORMAT="elf32-i386"
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_FAST_CMPXCHG_LOCAL=y
+CONFIG_MMU=y
+CONFIG_ZONE_DMA=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+# CONFIG_GENERIC_TIME_VSYSCALL is not set
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_HAVE_DYNAMIC_PER_CPU_AREA=y
+# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+# CONFIG_ZONE_DMA32 is not set
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+# CONFIG_AUDIT_ARCH is not set
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_X86_32_SMP=y
+CONFIG_X86_HT=y
+CONFIG_X86_TRAMPOLINE=y
+CONFIG_X86_32_LAZY_GS=y
+CONFIG_KTIME_SCALAR=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_CONSTRUCTORS=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_LZMA is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+# CONFIG_TASK_DELAY_ACCT is not set
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_AUDIT=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_TREE=y
+
+#
+# RCU Subsystem
+#
+CONFIG_CLASSIC_RCU=y
+# CONFIG_TREE_RCU is not set
+# CONFIG_PREEMPT_RCU is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_PREEMPT_RCU_TRACE is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=17
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_GROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_RT_GROUP_SCHED=y
+# CONFIG_USER_SCHED is not set
+CONFIG_CGROUP_SCHED=y
+CONFIG_CGROUPS=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_NS=y
+CONFIG_CGROUP_FREEZER=y
+# CONFIG_CGROUP_DEVICE is not set
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_RESOURCE_COUNTERS=y
+CONFIG_CGROUP_MEM_RES_CTLR=y
+# CONFIG_CGROUP_MEM_RES_CTLR_SWAP is not set
+CONFIG_MM_OWNER=y
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_RELAY=y
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+# CONFIG_USER_NS is not set
+CONFIG_PID_NS=y
+# CONFIG_NET_NS is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+# CONFIG_EMBEDDED is not set
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+CONFIG_KALLSYMS_ALL=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_HAVE_PERF_COUNTERS=y
+
+#
+# Performance Counters
+#
+CONFIG_PERF_COUNTERS=y
+CONFIG_EVENT_PROFILE=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+CONFIG_PROFILING=y
+CONFIG_TRACEPOINTS=y
+CONFIG_MARKERS=y
+CONFIG_OPROFILE=y
+CONFIG_OPROFILE_IBS=y
+CONFIG_HAVE_OPROFILE=y
+CONFIG_KPROBES=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_KRETPROBES=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+# CONFIG_SLOW_WORK is not set
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_STOP_MACHINE=y
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+# CONFIG_BLK_DEV_BSG is not set
+CONFIG_BLK_DEV_INTEGRITY=y
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_AS is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_FREEZER=y
+
+#
+# Processor type and features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_SMP=y
+# CONFIG_SPARSE_IRQ is not set
+CONFIG_X86_MPPARSE=y
+# CONFIG_X86_BIGSMP is not set
+CONFIG_X86_EXTENDED_PLATFORM=y
+# CONFIG_X86_ELAN is not set
+# CONFIG_X86_RDC321X is not set
+# CONFIG_X86_32_NON_STANDARD is not set
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_PARAVIRT_GUEST=y
+CONFIG_VMI=y
+CONFIG_KVM_CLOCK=y
+CONFIG_KVM_GUEST=y
+# CONFIG_LGUEST_GUEST is not set
+CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_SPINLOCKS is not set
+CONFIG_PARAVIRT_CLOCK=y
+# CONFIG_PARAVIRT_DEBUG is not set
+# CONFIG_MEMTEST is not set
+# CONFIG_M386 is not set
+# CONFIG_M486 is not set
+CONFIG_M586=y
+# CONFIG_M586TSC is not set
+# CONFIG_M586MMX is not set
+# CONFIG_M686 is not set
+# CONFIG_MPENTIUMII is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUMM is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MEFFICEON is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MGEODEGX1 is not set
+# CONFIG_MGEODE_LX is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_MVIAC7 is not set
+# CONFIG_MPSC is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_GENERIC_CPU is not set
+CONFIG_X86_GENERIC=y
+CONFIG_X86_CPU=y
+CONFIG_X86_L1_CACHE_BYTES=64
+CONFIG_X86_INTERNODE_CACHE_BYTES=64
+CONFIG_X86_CMPXCHG=y
+CONFIG_X86_L1_CACHE_SHIFT=5
+CONFIG_X86_XADD=y
+CONFIG_X86_PPRO_FENCE=y
+CONFIG_X86_F00F_BUG=y
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_INVLPG=y
+CONFIG_X86_BSWAP=y
+CONFIG_X86_POPAD_OK=y
+CONFIG_X86_ALIGNMENT_16=y
+CONFIG_X86_INTEL_USERCOPY=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=4
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_CYRIX_32=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+CONFIG_CPU_SUP_TRANSMETA_32=y
+CONFIG_CPU_SUP_UMC_32=y
+CONFIG_HPET_TIMER=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_DMI=y
+# CONFIG_IOMMU_HELPER is not set
+# CONFIG_IOMMU_API is not set
+CONFIG_NR_CPUS=8
+CONFIG_SCHED_SMT=y
+CONFIG_SCHED_MC=y
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
+# CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set
+# CONFIG_X86_MCE is not set
+# CONFIG_X86_ANCIENT_MCE is not set
+CONFIG_VM86=y
+# CONFIG_TOSHIBA is not set
+# CONFIG_I8K is not set
+CONFIG_X86_REBOOTFIXUPS=y
+CONFIG_MICROCODE=y
+CONFIG_MICROCODE_INTEL=y
+# CONFIG_MICROCODE_AMD is not set
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_X86_MSR=y
+CONFIG_X86_CPUID=y
+CONFIG_X86_CPU_DEBUG=y
+# CONFIG_NOHIGHMEM is not set
+CONFIG_HIGHMEM4G=y
+# CONFIG_HIGHMEM64G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_HIGHMEM=y
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_SPARSEMEM_STATIC=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_HAVE_MLOCK=y
+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_HIGHPTE=y
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_RESERVE_LOW_64K=y
+# CONFIG_MATH_EMULATION is not set
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+# CONFIG_X86_PAT is not set
+CONFIG_EFI=y
+CONFIG_SECCOMP=y
+# CONFIG_CC_STACKPROTECTOR is not set
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=250
+CONFIG_SCHED_HRTICK=y
+CONFIG_KEXEC=y
+CONFIG_CRASH_DUMP=y
+CONFIG_KEXEC_JUMP=y
+CONFIG_PHYSICAL_START=0x100000
+CONFIG_RELOCATABLE=y
+CONFIG_X86_NEED_RELOCS=y
+CONFIG_PHYSICAL_ALIGN=0x100000
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_COMPAT_VDSO is not set
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+
+#
+# Power management and ACPI options
+#
+CONFIG_PM=y
+CONFIG_PM_DEBUG=y
+# CONFIG_PM_VERBOSE is not set
+CONFIG_CAN_PM_TRACE=y
+CONFIG_PM_TRACE=y
+CONFIG_PM_TRACE_RTC=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_SLEEP=y
+CONFIG_SUSPEND=y
+CONFIG_PM_TEST_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATION_NVS=y
+CONFIG_HIBERNATION=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_ACPI=y
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_PROCFS=y
+CONFIG_ACPI_PROCFS_POWER=y
+CONFIG_ACPI_SYSFS_POWER=y
+CONFIG_ACPI_PROC_EVENT=y
+CONFIG_ACPI_AC=y
+CONFIG_ACPI_BATTERY=y
+CONFIG_ACPI_BUTTON=y
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_FAN=y
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_PROCESSOR=y
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_THERMAL=y
+CONFIG_ACPI_CUSTOM_DSDT_FILE=""
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+CONFIG_ACPI_BLACKLIST_YEAR=2000
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_PCI_SLOT=y
+CONFIG_X86_PM_TIMER=y
+CONFIG_ACPI_CONTAINER=y
+CONFIG_ACPI_SBS=y
+CONFIG_X86_APM_BOOT=y
+CONFIG_APM=m
+# CONFIG_APM_IGNORE_USER_SUSPEND is not set
+# CONFIG_APM_DO_ENABLE is not set
+# CONFIG_APM_CPU_IDLE is not set
+# CONFIG_APM_DISPLAY_BLANK is not set
+# CONFIG_APM_ALLOW_INTS is not set
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+# CONFIG_CPU_FREQ_DEBUG is not set
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+
+#
+# CPUFreq processor drivers
+#
+CONFIG_X86_ACPI_CPUFREQ=y
+CONFIG_X86_POWERNOW_K6=y
+CONFIG_X86_POWERNOW_K7=y
+CONFIG_X86_POWERNOW_K7_ACPI=y
+CONFIG_X86_POWERNOW_K8=y
+CONFIG_X86_GX_SUSPMOD=y
+CONFIG_X86_SPEEDSTEP_CENTRINO=y
+CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y
+CONFIG_X86_SPEEDSTEP_ICH=y
+CONFIG_X86_SPEEDSTEP_SMI=y
+CONFIG_X86_P4_CLOCKMOD=m
+CONFIG_X86_CPUFREQ_NFORCE2=y
+CONFIG_X86_LONGRUN=y
+CONFIG_X86_LONGHAUL=y
+CONFIG_X86_E_POWERSAVER=m
+
+#
+# shared options
+#
+CONFIG_X86_SPEEDSTEP_LIB=y
+CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+
+#
+# Bus options (PCI etc.)
+#
+CONFIG_PCI=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GOMMCONFIG is not set
+# CONFIG_PCI_GODIRECT is not set
+# CONFIG_PCI_GOOLPC is not set
+CONFIG_PCI_GOANY=y
+CONFIG_PCI_BIOS=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_DOMAINS=y
+# CONFIG_DMAR is not set
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
+# CONFIG_PCIEASPM is not set
+CONFIG_ARCH_SUPPORTS_MSI=y
+CONFIG_PCI_MSI=y
+# CONFIG_PCI_LEGACY is not set
+CONFIG_PCI_DEBUG=y
+# CONFIG_PCI_STUB is not set
+CONFIG_HT_IRQ=y
+# CONFIG_PCI_IOV is not set
+CONFIG_ISA_DMA_API=y
+CONFIG_ISA=y
+CONFIG_EISA=y
+CONFIG_EISA_VLB_PRIMING=y
+CONFIG_EISA_PCI_EISA=y
+CONFIG_EISA_VIRTUAL_ROOT=y
+CONFIG_EISA_NAMES=y
+# CONFIG_MCA is not set
+# CONFIG_SCx200 is not set
+# CONFIG_OLPC is not set
+CONFIG_K8_NB=y
+# CONFIG_PCCARD is not set
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# Executable file formats / Emulations
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_HAVE_AOUT=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+CONFIG_HAVE_ATOMIC_IOMAP=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=m
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_ASK_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+# CONFIG_IP_PNP_BOOTP is not set
+# CONFIG_IP_PNP_RARP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+CONFIG_NET_IPGRE_BROADCAST=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+CONFIG_INET_LRO=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+# CONFIG_DEFAULT_BIC is not set
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_HTCP is not set
+# CONFIG_DEFAULT_VEGAS is not set
+# CONFIG_DEFAULT_WESTWOOD is not set
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+CONFIG_TCP_MD5SIG=y
+CONFIG_IPV6=y
+CONFIG_IPV6_PRIVACY=y
+# CONFIG_IPV6_ROUTER_PREF is not set
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+# CONFIG_IPV6_MIP6 is not set
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+# CONFIG_IPV6_SUBTREES is not set
+# CONFIG_IPV6_MROUTE is not set
+# CONFIG_NETLABEL is not set
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CT_ACCT=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+# CONFIG_NF_CT_PROTO_DCCP is not set
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+# CONFIG_NF_CONNTRACK_SANE is not set
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_TPROXY=m
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+# CONFIG_NETFILTER_XT_TARGET_LED is not set
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
+# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+# CONFIG_NETFILTER_XT_MATCH_OSF is not set
+CONFIG_IP_VS=m
+CONFIG_IP_VS_IPV6=y
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=12
+
+#
+# IPVS transport protocol load balancing support
+#
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+
+#
+# IPVS scheduler
+#
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+
+#
+# IPVS application helper
+#
+CONFIG_IP_VS_FTP=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+# CONFIG_IP_DCCP is not set
+CONFIG_IP_SCTP=y
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+# CONFIG_SCTP_HMAC_SHA1 is not set
+CONFIG_SCTP_HMAC_MD5=y
+# CONFIG_RDS is not set
+CONFIG_TIPC=y
+# CONFIG_TIPC_ADVANCED is not set
+# CONFIG_TIPC_DEBUG is not set
+# CONFIG_ATM is not set
+CONFIG_STP=y
+CONFIG_BRIDGE=y
+# CONFIG_NET_DSA is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+CONFIG_LLC=y
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_PHONET is not set
+# CONFIG_IEEE802154 is not set
+# CONFIG_NET_SCHED is not set
+CONFIG_NET_CLS_ROUTE=y
+# CONFIG_DCB is not set
+
+#
+# Network testing
+#
+CONFIG_NET_PKTGEN=m
+CONFIG_NET_TCPPROBE=m
+# CONFIG_NET_DROP_MONITOR is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=y
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=y
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=y
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=y
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIBTUSB=y
+CONFIG_BT_HCIBTSDIO=y
+CONFIG_BT_HCIUART=y
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_LL=y
+# CONFIG_BT_HCIBCM203X is not set
+# CONFIG_BT_HCIBPA10X is not set
+# CONFIG_BT_HCIBFUSB is not set
+CONFIG_BT_HCIVHCI=y
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+# CONFIG_RXKAD is not set
+CONFIG_FIB_RULES=y
+# CONFIG_WIRELESS is not set
+# CONFIG_WIMAX is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH=""
+# CONFIG_STANDALONE is not set
+# CONFIG_PREVENT_FIRMWARE_BUILD is not set
+CONFIG_FW_LOADER=y
+# CONFIG_FIRMWARE_IN_KERNEL is not set
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
+# CONFIG_MTD is not set
+# CONFIG_PARPORT is not set
+CONFIG_PNP=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+
+#
+# Protocols
+#
+CONFIG_ISAPNP=y
+# CONFIG_PNPBIOS is not set
+CONFIG_PNPACPI=y
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_FD=m
+# CONFIG_BLK_DEV_XD is not set
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+CONFIG_CISS_SCSI_TAPE=y
+CONFIG_BLK_DEV_DAC960=m
+CONFIG_BLK_DEV_UMEM=m
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=65536
+# CONFIG_BLK_DEV_XIP is not set
+CONFIG_CDROM_PKTCDVD=y
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_ATA_OVER_ETH=m
+CONFIG_VIRTIO_BLK=m
+# CONFIG_BLK_DEV_HD is not set
+# CONFIG_MISC_DEVICES is not set
+CONFIG_TIFM_CORE=m
+# CONFIG_DELL_LAPTOP is not set
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_TGT=m
+CONFIG_SCSI_NETLINK=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+# CONFIG_BLK_DEV_SR is not set
+CONFIG_CHR_DEV_SG=y
+CONFIG_CHR_DEV_SCH=y
+# CONFIG_SCSI_MULTI_LUN is not set
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+CONFIG_SCSI_SCAN_ASYNC=y
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+CONFIG_SCSI_FC_TGT_ATTRS=y
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_LIBSAS=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_HOST_SMP=y
+# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_SRP_TGT_ATTRS=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_ISCSI_TCP=m
+# CONFIG_SCSI_CXGB3_ISCSI is not set
+# CONFIG_SCSI_BNX2_ISCSI is not set
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_7000FASST=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AHA152X=m
+CONFIG_SCSI_AHA1542=m
+CONFIG_SCSI_AHA1740=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=8
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set
+CONFIG_AIC7XXX_DEBUG_ENABLE=y
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=5000
+# CONFIG_AIC79XX_BUILD_FIRMWARE is not set
+CONFIG_AIC79XX_DEBUG_ENABLE=y
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC94XX=m
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_SCSI_MVSAS=m
+CONFIG_SCSI_MVSAS_DEBUG=y
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_IN2000=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_ARCMSR_AER=y
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_SAS=m
+# CONFIG_SCSI_MPT2SAS is not set
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_BUSLOGIC=m
+# CONFIG_SCSI_FLASHPOINT is not set
+# CONFIG_LIBFC is not set
+# CONFIG_LIBFCOE is not set
+# CONFIG_FCOE is not set
+# CONFIG_FCOE_FNIC is not set
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_DTC3280=m
+CONFIG_SCSI_EATA=m
+CONFIG_SCSI_EATA_TAGGED_QUEUE=y
+CONFIG_SCSI_EATA_LINKED_COMMANDS=y
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_GENERIC_NCR5380=m
+CONFIG_SCSI_GENERIC_NCR5380_MMIO=m
+CONFIG_SCSI_GENERIC_NCR53C400=y
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_NCR53C406A=m
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_IPR=m
+# CONFIG_SCSI_IPR_TRACE is not set
+# CONFIG_SCSI_IPR_DUMP is not set
+CONFIG_SCSI_PAS16=m
+CONFIG_SCSI_QLOGIC_FAS=m
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_SIM710=m
+CONFIG_SCSI_SYM53C416=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DC390T=m
+CONFIG_SCSI_T128=m
+CONFIG_SCSI_U14_34F=m
+CONFIG_SCSI_U14_34F_TAGGED_QUEUE=y
+CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y
+CONFIG_SCSI_U14_34F_MAX_TAGS=8
+CONFIG_SCSI_ULTRASTOR=m
+CONFIG_SCSI_NSP32=m
+CONFIG_SCSI_DEBUG=m
+CONFIG_SCSI_SRP=m
+CONFIG_SCSI_DH=y
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_ALUA=m
+# CONFIG_SCSI_OSD_INITIATOR is not set
+CONFIG_ATA=y
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_ACPI=y
+CONFIG_SATA_PMP=y
+CONFIG_SATA_AHCI=y
+# CONFIG_SATA_SIL24 is not set
+CONFIG_ATA_SFF=y
+# CONFIG_SATA_SVW is not set
+# CONFIG_ATA_PIIX is not set
+# CONFIG_SATA_MV is not set
+CONFIG_SATA_NV=y
+# CONFIG_PDC_ADMA is not set
+# CONFIG_SATA_QSTOR is not set
+# CONFIG_SATA_PROMISE is not set
+# CONFIG_SATA_SX4 is not set
+# CONFIG_SATA_SIL is not set
+# CONFIG_SATA_SIS is not set
+# CONFIG_SATA_ULI is not set
+# CONFIG_SATA_VIA is not set
+# CONFIG_SATA_VITESSE is not set
+# CONFIG_SATA_INIC162X is not set
+# CONFIG_PATA_ACPI is not set
+# CONFIG_PATA_ALI is not set
+CONFIG_PATA_AMD=y
+# CONFIG_PATA_ARTOP is not set
+# CONFIG_PATA_ATIIXP is not set
+# CONFIG_PATA_CMD640_PCI is not set
+# CONFIG_PATA_CMD64X is not set
+# CONFIG_PATA_CS5520 is not set
+# CONFIG_PATA_CS5530 is not set
+# CONFIG_PATA_CS5535 is not set
+# CONFIG_PATA_CS5536 is not set
+# CONFIG_PATA_CYPRESS is not set
+# CONFIG_PATA_EFAR is not set
+# CONFIG_ATA_GENERIC is not set
+# CONFIG_PATA_HPT366 is not set
+# CONFIG_PATA_HPT37X is not set
+# CONFIG_PATA_HPT3X2N is not set
+# CONFIG_PATA_HPT3X3 is not set
+# CONFIG_PATA_ISAPNP is not set
+# CONFIG_PATA_IT821X is not set
+# CONFIG_PATA_IT8213 is not set
+# CONFIG_PATA_JMICRON is not set
+# CONFIG_PATA_LEGACY is not set
+# CONFIG_PATA_TRIFLEX is not set
+# CONFIG_PATA_MARVELL is not set
+# CONFIG_PATA_MPIIX is not set
+# CONFIG_PATA_OLDPIIX is not set
+# CONFIG_PATA_NETCELL is not set
+# CONFIG_PATA_NINJA32 is not set
+# CONFIG_PATA_NS87410 is not set
+# CONFIG_PATA_NS87415 is not set
+# CONFIG_PATA_OPTI is not set
+# CONFIG_PATA_OPTIDMA is not set
+# CONFIG_PATA_PDC_OLD is not set
+# CONFIG_PATA_QDI is not set
+# CONFIG_PATA_RADISYS is not set
+# CONFIG_PATA_RZ1000 is not set
+# CONFIG_PATA_SC1200 is not set
+# CONFIG_PATA_SERVERWORKS is not set
+# CONFIG_PATA_PDC2027X is not set
+# CONFIG_PATA_SIL680 is not set
+# CONFIG_PATA_SIS is not set
+# CONFIG_PATA_VIA is not set
+# CONFIG_PATA_WINBOND is not set
+# CONFIG_PATA_WINBOND_VLB is not set
+# CONFIG_PATA_SCH is not set
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=y
+CONFIG_MD_AUTODETECT=y
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+CONFIG_MD_RAID6_PQ=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=y
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=y
+CONFIG_DM_MIRROR=y
+# CONFIG_DM_LOG_USERSPACE is not set
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=y
+# CONFIG_DM_MULTIPATH_QL is not set
+# CONFIG_DM_MULTIPATH_ST is not set
+# CONFIG_DM_DELAY is not set
+CONFIG_DM_UEVENT=y
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+
+#
+# You can enable one or both FireWire driver stacks.
+#
+
+#
+# See the help texts for more information.
+#
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_OHCI_DEBUG=y
+CONFIG_FIREWIRE_SBP2=m
+# CONFIG_FIREWIRE_NET is not set
+CONFIG_IEEE1394=m
+CONFIG_IEEE1394_OHCI1394=m
+CONFIG_IEEE1394_PCILYNX=m
+CONFIG_IEEE1394_SBP2=m
+# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
+CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y
+CONFIG_IEEE1394_ETH1394=m
+CONFIG_IEEE1394_RAWIO=m
+CONFIG_IEEE1394_VIDEO1394=m
+CONFIG_IEEE1394_DV1394=m
+# CONFIG_IEEE1394_VERBOSEDEBUG is not set
+# CONFIG_I2O is not set
+# CONFIG_MACINTOSH_DRIVERS is not set
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+CONFIG_TUN=y
+# CONFIG_VETH is not set
+# CONFIG_NET_SB1000 is not set
+# CONFIG_ARCNET is not set
+CONFIG_PHYLIB=y
+
+#
+# MII PHY device drivers
+#
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_SMSC_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_REALTEK_PHY is not set
+# CONFIG_NATIONAL_PHY is not set
+# CONFIG_STE10XP is not set
+# CONFIG_LSI_ET1011C_PHY is not set
+# CONFIG_FIXED_PHY is not set
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_NET_ETHERNET=y
+# CONFIG_MII is not set
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_CASSINI is not set
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_LANCE is not set
+# CONFIG_NET_VENDOR_SMC is not set
+# CONFIG_ETHOC is not set
+# CONFIG_NET_VENDOR_RACAL is not set
+# CONFIG_DNET is not set
+# CONFIG_NET_TULIP is not set
+# CONFIG_AT1700 is not set
+# CONFIG_DEPCA is not set
+# CONFIG_HP100 is not set
+# CONFIG_NET_ISA is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+CONFIG_NET_PCI=y
+# CONFIG_PCNET32 is not set
+# CONFIG_AMD8111_ETH is not set
+# CONFIG_ADAPTEC_STARFIRE is not set
+# CONFIG_AC3200 is not set
+# CONFIG_APRICOT is not set
+# CONFIG_B44 is not set
+CONFIG_FORCEDETH=y
+# CONFIG_FORCEDETH_NAPI is not set
+# CONFIG_CS89x0 is not set
+# CONFIG_E100 is not set
+# CONFIG_LNE390 is not set
+# CONFIG_FEALNX is not set
+# CONFIG_NATSEMI is not set
+# CONFIG_NE2K_PCI is not set
+# CONFIG_NE3210 is not set
+# CONFIG_ES3210 is not set
+# CONFIG_8139CP is not set
+# CONFIG_8139TOO is not set
+# CONFIG_R6040 is not set
+# CONFIG_SIS900 is not set
+# CONFIG_EPIC100 is not set
+# CONFIG_SMSC9420 is not set
+# CONFIG_SUNDANCE is not set
+# CONFIG_TLAN is not set
+# CONFIG_KS8842 is not set
+# CONFIG_VIA_RHINE is not set
+# CONFIG_SC92031 is not set
+# CONFIG_ATL2 is not set
+CONFIG_NETDEV_1000=y
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
+# CONFIG_E1000E is not set
+# CONFIG_IP1000 is not set
+# CONFIG_IGB is not set
+# CONFIG_IGBVF is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_R8169 is not set
+# CONFIG_SIS190 is not set
+# CONFIG_SKGE is not set
+# CONFIG_SKY2 is not set
+# CONFIG_VIA_VELOCITY is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_BNX2 is not set
+# CONFIG_CNIC is not set
+# CONFIG_QLA3XXX is not set
+# CONFIG_ATL1 is not set
+# CONFIG_ATL1E is not set
+# CONFIG_ATL1C is not set
+# CONFIG_JME is not set
+CONFIG_NETDEV_10000=y
+# CONFIG_CHELSIO_T1 is not set
+CONFIG_CHELSIO_T3_DEPENDS=y
+# CONFIG_CHELSIO_T3 is not set
+# CONFIG_ENIC is not set
+# CONFIG_IXGBE is not set
+# CONFIG_IXGB is not set
+# CONFIG_S2IO is not set
+# CONFIG_VXGE is not set
+# CONFIG_MYRI10GE is not set
+# CONFIG_NETXEN_NIC is not set
+# CONFIG_NIU is not set
+# CONFIG_MLX4_EN is not set
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+# CONFIG_TEHUTI is not set
+# CONFIG_BNX2X is not set
+# CONFIG_QLGE is not set
+# CONFIG_SFC is not set
+# CONFIG_BE2NET is not set
+# CONFIG_TR is not set
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+# CONFIG_WLAN_80211 is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_WAN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_NET_FC is not set
+CONFIG_NETCONSOLE=y
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
+# CONFIG_VIRTIO_NET is not set
+# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_POLLDEV=m
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_EVBUG=m
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_LKKBD=m
+CONFIG_KEYBOARD_GPIO=m
+# CONFIG_KEYBOARD_MATRIX is not set
+# CONFIG_KEYBOARD_LM8323 is not set
+CONFIG_KEYBOARD_NEWTON=m
+CONFIG_KEYBOARD_STOWAWAY=m
+CONFIG_KEYBOARD_SUNKBD=m
+CONFIG_KEYBOARD_XTKBD=m
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_SERIAL=m
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_INPORT=m
+# CONFIG_MOUSE_ATIXL is not set
+CONFIG_MOUSE_LOGIBM=m
+CONFIG_MOUSE_PC110PAD=m
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MOUSE_GPIO=m
+# CONFIG_MOUSE_SYNAPTICS_I2C is not set
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_ANALOG=m
+CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADI=m
+CONFIG_JOYSTICK_COBRA=m
+CONFIG_JOYSTICK_GF2K=m
+CONFIG_JOYSTICK_GRIP=m
+CONFIG_JOYSTICK_GRIP_MP=m
+CONFIG_JOYSTICK_GUILLEMOT=m
+CONFIG_JOYSTICK_INTERACT=m
+CONFIG_JOYSTICK_SIDEWINDER=m
+CONFIG_JOYSTICK_TMDC=m
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=y
+CONFIG_JOYSTICK_IFORCE_232=y
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_STINGER=m
+CONFIG_JOYSTICK_TWIDJOY=m
+CONFIG_JOYSTICK_ZHENHUA=m
+CONFIG_JOYSTICK_JOYDUMP=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_INPUT_TABLET=y
+CONFIG_TABLET_USB_ACECAD=m
+CONFIG_TABLET_USB_AIPTEK=m
+CONFIG_TABLET_USB_GTCO=m
+CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_USB_WACOM=m
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
+# CONFIG_TOUCHSCREEN_AD7879 is not set
+CONFIG_TOUCHSCREEN_DA9034=y
+# CONFIG_TOUCHSCREEN_EETI is not set
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_ELO=m
+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_HTCPEN=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_UCB1400=m
+CONFIG_TOUCHSCREEN_WM97XX=m
+CONFIG_TOUCHSCREEN_WM9705=y
+CONFIG_TOUCHSCREEN_WM9712=y
+CONFIG_TOUCHSCREEN_WM9713=y
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+# CONFIG_TOUCHSCREEN_TSC2007 is not set
+# CONFIG_TOUCHSCREEN_W90X900 is not set
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_PCSPKR=m
+# CONFIG_INPUT_APANEL is not set
+CONFIG_INPUT_WISTRON_BTNS=m
+CONFIG_INPUT_ATLAS_BTNS=m
+CONFIG_INPUT_ATI_REMOTE=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_UINPUT=m
+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_DEVKMEM=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_NOZOMI is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_NR_UARTS=48
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+# CONFIG_SERIAL_8250_MANY_PORTS is not set
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+# CONFIG_SERIAL_8250_RSA is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_CONSOLE_POLL=y
+# CONFIG_SERIAL_JSM is not set
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=0
+CONFIG_HVC_DRIVER=y
+CONFIG_VIRTIO_CONSOLE=m
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+CONFIG_HW_RANDOM=y
+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
+CONFIG_HW_RANDOM_INTEL=y
+# CONFIG_HW_RANDOM_AMD is not set
+# CONFIG_HW_RANDOM_GEODE is not set
+# CONFIG_HW_RANDOM_VIA is not set
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_NVRAM=y
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+# CONFIG_SONYPI is not set
+# CONFIG_MWAVE is not set
+# CONFIG_PC8736x_GPIO is not set
+# CONFIG_NSC_GPIO is not set
+# CONFIG_CS5535_GPIO is not set
+CONFIG_RAW_DRIVER=y
+CONFIG_MAX_RAW_DEVS=256
+CONFIG_HPET=y
+CONFIG_HPET_MMAP=y
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_INFINEON=m
+# CONFIG_TELCLOCK is not set
+CONFIG_DEVPORT=y
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_CHARDEV=m
+# CONFIG_I2C_HELPER_AUTO is not set
+
+#
+# I2C Algorithms
+#
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCF=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NFORCE2_S4985=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_SIMTEC=m
+
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+
+#
+# Graphics adapter I2C/DDC channel drivers
+#
+CONFIG_I2C_VOODOO3=m
+
+#
+# Other I2C/SMBus bus drivers
+#
+CONFIG_I2C_PCA_ISA=m
+CONFIG_I2C_PCA_PLATFORM=m
+CONFIG_I2C_STUB=m
+CONFIG_SCx200_ACB=m
+
+#
+# Miscellaneous I2C Chip support
+#
+CONFIG_DS1682=m
+CONFIG_SENSORS_TSL2550=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+# CONFIG_SPI is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+
+#
+# Memory mapped GPIO expanders:
+#
+
+#
+# I2C GPIO expanders:
+#
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+
+#
+# PCI GPIO expanders:
+#
+# CONFIG_GPIO_BT8XX is not set
+
+#
+# SPI GPIO expanders:
+#
+CONFIG_W1=m
+CONFIG_W1_CON=y
+
+#
+# 1-wire Bus Masters
+#
+CONFIG_W1_MASTER_MATROX=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_GPIO=m
+
+#
+# 1-wire Slaves
+#
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+# CONFIG_W1_SLAVE_DS2431 is not set
+CONFIG_W1_SLAVE_DS2433=m
+# CONFIG_W1_SLAVE_DS2433_CRC is not set
+CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_BQ27000=m
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_PDA_POWER=m
+# CONFIG_WM8350_POWER is not set
+CONFIG_BATTERY_DS2760=m
+# CONFIG_BATTERY_DS2782 is not set
+CONFIG_BATTERY_BQ27x00=m
+# CONFIG_BATTERY_DA9030 is not set
+# CONFIG_BATTERY_MAX17040 is not set
+CONFIG_HWMON=y
+# CONFIG_HWMON_VID is not set
+# CONFIG_SENSORS_ABITUGURU is not set
+# CONFIG_SENSORS_ABITUGURU3 is not set
+# CONFIG_SENSORS_AD7414 is not set
+# CONFIG_SENSORS_AD7418 is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1029 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ADM9240 is not set
+# CONFIG_SENSORS_ADT7462 is not set
+# CONFIG_SENSORS_ADT7470 is not set
+# CONFIG_SENSORS_ADT7473 is not set
+# CONFIG_SENSORS_ADT7475 is not set
+# CONFIG_SENSORS_K8TEMP is not set
+# CONFIG_SENSORS_ASB100 is not set
+# CONFIG_SENSORS_ATK0110 is not set
+# CONFIG_SENSORS_ATXP1 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_I5K_AMB is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_F71882FG is not set
+# CONFIG_SENSORS_F75375S is not set
+# CONFIG_SENSORS_FSCHER is not set
+# CONFIG_SENSORS_FSCPOS is not set
+# CONFIG_SENSORS_FSCHMD is not set
+# CONFIG_SENSORS_G760A is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_CORETEMP is not set
+# CONFIG_SENSORS_IBMAEM is not set
+# CONFIG_SENSORS_IBMPEX is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_LM93 is not set
+# CONFIG_SENSORS_LTC4215 is not set
+# CONFIG_SENSORS_LTC4245 is not set
+# CONFIG_SENSORS_LM95241 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_MAX6650 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_SHT15 is not set
+# CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_DME1737 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47M192 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_ADS7828 is not set
+# CONFIG_SENSORS_THMC50 is not set
+# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_VIA686A is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_SENSORS_VT8231 is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83791D is not set
+# CONFIG_SENSORS_W83792D is not set
+# CONFIG_SENSORS_W83793 is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83L786NG is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83627EHF is not set
+# CONFIG_SENSORS_HDAPS is not set
+# CONFIG_SENSORS_LIS3LV02D is not set
+# CONFIG_SENSORS_APPLESMC is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+CONFIG_THERMAL=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_SOFT_WATCHDOG=m
+# CONFIG_WM8350_WATCHDOG is not set
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_SC520_WDT=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_IB700_WDT=m
+CONFIG_IBMASR=m
+CONFIG_WAFER_WDT=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_ITCO_WDT=m
+CONFIG_ITCO_VENDOR_SUPPORT=y
+CONFIG_IT8712F_WDT=m
+CONFIG_IT87_WDT=m
+# CONFIG_HP_WATCHDOG is not set
+CONFIG_SC1200_WDT=m
+CONFIG_PC87413_WDT=m
+CONFIG_60XX_WDT=m
+CONFIG_SBC8360_WDT=m
+CONFIG_SBC7240_WDT=m
+CONFIG_CPU5_WDT=m
+# CONFIG_SMSC_SCH311X_WDT is not set
+CONFIG_SMSC37B787_WDT=m
+CONFIG_W83627HF_WDT=m
+CONFIG_W83697HF_WDT=m
+CONFIG_W83697UG_WDT=m
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_MACHZ_WDT=m
+CONFIG_SBC_EPX_C3_WATCHDOG=m
+
+#
+# ISA-based Watchdog Cards
+#
+CONFIG_PCWATCHDOG=m
+CONFIG_MIXCOMWD=m
+CONFIG_WDT=m
+
+#
+# PCI-based Watchdog Cards
+#
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_WDTPCI=m
+
+#
+# USB-based Watchdog Cards
+#
+CONFIG_USBPCWATCHDOG=m
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB=m
+CONFIG_SSB_SPROM=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+# CONFIG_SSB_B43_PCI_BRIDGE is not set
+# CONFIG_SSB_DEBUG is not set
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE=y
+
+#
+# Multifunction device drivers
+#
+CONFIG_MFD_CORE=m
+CONFIG_MFD_SM501=m
+# CONFIG_MFD_SM501_GPIO is not set
+CONFIG_HTC_PASIC3=m
+CONFIG_UCB1400_CORE=m
+CONFIG_TPS65010=m
+# CONFIG_TWL4030_CORE is not set
+# CONFIG_MFD_TMIO is not set
+CONFIG_PMIC_DA903X=y
+CONFIG_MFD_WM8400=m
+CONFIG_MFD_WM8350=m
+CONFIG_MFD_WM8350_I2C=m
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_AB3100_CORE is not set
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_DEBUG=y
+# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+CONFIG_REGULATOR_BQ24022=m
+# CONFIG_REGULATOR_MAX1586 is not set
+CONFIG_REGULATOR_WM8350=m
+CONFIG_REGULATOR_WM8400=m
+CONFIG_REGULATOR_DA903X=m
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_MEDIA_SUPPORT is not set
+
+#
+# Graphics support
+#
+CONFIG_AGP=m
+CONFIG_AGP_ALI=m
+CONFIG_AGP_ATI=m
+CONFIG_AGP_AMD=m
+CONFIG_AGP_AMD64=m
+CONFIG_AGP_INTEL=m
+CONFIG_AGP_NVIDIA=m
+CONFIG_AGP_SIS=m
+CONFIG_AGP_SWORKS=m
+CONFIG_AGP_VIA=m
+CONFIG_AGP_EFFICEON=m
+CONFIG_DRM=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_I810=m
+CONFIG_DRM_I830=m
+CONFIG_DRM_I915=m
+# CONFIG_DRM_I915_KMS is not set
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+CONFIG_DRM_VIA=m
+CONFIG_DRM_SAVAGE=m
+CONFIG_VGASTATE=m
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FB_DDC=m
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_HECUBA=m
+CONFIG_FB_SVGALIB=m
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_BACKLIGHT=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_CYBER2000=m
+CONFIG_FB_ARC=m
+CONFIG_FB_ASILIANT=y
+CONFIG_FB_IMSTT=y
+CONFIG_FB_VGA16=m
+CONFIG_FB_UVESA=m
+# CONFIG_FB_VESA is not set
+CONFIG_FB_EFI=y
+CONFIG_FB_N411=m
+CONFIG_FB_HGA=m
+# CONFIG_FB_HGA_ACCEL is not set
+CONFIG_FB_S1D13XXX=m
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_NVIDIA_I2C=y
+# CONFIG_FB_NVIDIA_DEBUG is not set
+CONFIG_FB_NVIDIA_BACKLIGHT=y
+CONFIG_FB_RIVA=m
+CONFIG_FB_RIVA_I2C=y
+# CONFIG_FB_RIVA_DEBUG is not set
+CONFIG_FB_RIVA_BACKLIGHT=y
+CONFIG_FB_I810=m
+# CONFIG_FB_I810_GTF is not set
+CONFIG_FB_LE80578=m
+CONFIG_FB_CARILLO_RANCH=m
+CONFIG_FB_MATROX=m
+CONFIG_FB_MATROX_MILLENIUM=y
+CONFIG_FB_MATROX_MYSTIQUE=y
+CONFIG_FB_MATROX_G=y
+CONFIG_FB_MATROX_I2C=m
+CONFIG_FB_MATROX_MAVEN=m
+CONFIG_FB_MATROX_MULTIHEAD=y
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RADEON_BACKLIGHT=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_ATY128=m
+CONFIG_FB_ATY128_BACKLIGHT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY_CT=y
+CONFIG_FB_ATY_GENERIC_LCD=y
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_ATY_BACKLIGHT=y
+CONFIG_FB_S3=m
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SAVAGE_I2C=y
+CONFIG_FB_SAVAGE_ACCEL=y
+CONFIG_FB_SIS=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_VIA=m
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_KYRO=m
+CONFIG_FB_3DFX=m
+# CONFIG_FB_3DFX_ACCEL is not set
+CONFIG_FB_3DFX_I2C=y
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_VT8623=m
+CONFIG_FB_TRIDENT=m
+CONFIG_FB_ARK=m
+CONFIG_FB_PM3=m
+CONFIG_FB_CARMINE=m
+CONFIG_FB_CARMINE_DRAM_EVAL=y
+# CONFIG_CARMINE_DRAM_CUSTOM is not set
+CONFIG_FB_GEODE=y
+CONFIG_FB_GEODE_LX=m
+CONFIG_FB_GEODE_GX=m
+CONFIG_FB_GEODE_GX1=m
+# CONFIG_FB_TMIO is not set
+CONFIG_FB_SM501=m
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_FB_METRONOME=m
+CONFIG_FB_MB862XX=m
+CONFIG_FB_MB862XX_PCI_GDC=y
+# CONFIG_FB_BROADSHEET is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+# CONFIG_LCD_ILI9320 is not set
+CONFIG_LCD_PLATFORM=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=y
+CONFIG_BACKLIGHT_PROGEAR=m
+CONFIG_BACKLIGHT_CARILLO_RANCH=m
+CONFIG_BACKLIGHT_DA903X=m
+CONFIG_BACKLIGHT_MBP_NVIDIA=m
+CONFIG_BACKLIGHT_SAHARA=m
+
+#
+# Display device support
+#
+CONFIG_DISPLAY_SUPPORT=m
+
+#
+# Display hardware drivers
+#
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+# CONFIG_VGACON_SOFT_SCROLLBACK is not set
+CONFIG_MDA_CONSOLE=m
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=m
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+# CONFIG_LOGO is not set
+CONFIG_SOUND=m
+CONFIG_SOUND_OSS_CORE=y
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_SEQUENCER_OSS=y
+# CONFIG_SND_HRTIMER is not set
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_VMASTER=y
+CONFIG_SND_RAWMIDI_SEQ=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+CONFIG_SND_OPL4_LIB_SEQ=m
+CONFIG_SND_SBAWE_SEQ=m
+CONFIG_SND_EMU10K1_SEQ=m
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_OPL4_LIB=m
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DRIVERS=y
+CONFIG_SND_PCSP=m
+CONFIG_SND_DUMMY=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
+CONFIG_SND_WSS_LIB=m
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SB8_DSP=m
+CONFIG_SND_SB16_DSP=m
+CONFIG_SND_ISA=y
+CONFIG_SND_ADLIB=m
+CONFIG_SND_AD1816A=m
+CONFIG_SND_AD1848=m
+CONFIG_SND_ALS100=m
+CONFIG_SND_AZT2320=m
+CONFIG_SND_CMI8330=m
+CONFIG_SND_CS4231=m
+CONFIG_SND_CS4236=m
+CONFIG_SND_DT019X=m
+CONFIG_SND_ES968=m
+CONFIG_SND_ES1688=m
+CONFIG_SND_ES18XX=m
+CONFIG_SND_SC6000=m
+CONFIG_SND_GUSCLASSIC=m
+CONFIG_SND_GUSEXTREME=m
+CONFIG_SND_GUSMAX=m
+CONFIG_SND_INTERWAVE=m
+CONFIG_SND_INTERWAVE_STB=m
+CONFIG_SND_OPL3SA2=m
+CONFIG_SND_OPTI92X_AD1848=m
+CONFIG_SND_OPTI92X_CS4231=m
+CONFIG_SND_OPTI93X=m
+CONFIG_SND_MIRO=m
+CONFIG_SND_SB8=m
+CONFIG_SND_SB16=m
+CONFIG_SND_SBAWE=m
+CONFIG_SND_SB16_CSP=y
+CONFIG_SND_SGALAXY=m
+CONFIG_SND_SSCAPE=m
+CONFIG_SND_WAVEFRONT=m
+# CONFIG_SND_MSND_PINNACLE is not set
+# CONFIG_SND_MSND_CLASSIC is not set
+CONFIG_SND_PCI=y
+CONFIG_SND_AD1889=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AW2=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_OXYGEN_LIB=m
+CONFIG_SND_OXYGEN=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CS5530=m
+CONFIG_SND_CS5535AUDIO=m
+# CONFIG_SND_CTXFI is not set
+CONFIG_SND_DARLA20=m
+CONFIG_SND_GINA20=m
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_DARLA24=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_MONA=m
+CONFIG_SND_MIA=m
+CONFIG_SND_ECHO3G=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGODJ=m
+# CONFIG_SND_INDIGOIOX is not set
+# CONFIG_SND_INDIGODJX is not set
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_FM801=m
+CONFIG_SND_HDA_INTEL=m
+# CONFIG_SND_HDA_HWDEP is not set
+# CONFIG_SND_HDA_INPUT_BEEP is not set
+# CONFIG_SND_HDA_INPUT_JACK is not set
+CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_CODEC_ANALOG=y
+CONFIG_SND_HDA_CODEC_SIGMATEL=y
+CONFIG_SND_HDA_CODEC_VIA=y
+CONFIG_SND_HDA_CODEC_ATIHDMI=y
+CONFIG_SND_HDA_CODEC_NVHDMI=y
+CONFIG_SND_HDA_CODEC_INTELHDMI=y
+CONFIG_SND_HDA_ELD=y
+CONFIG_SND_HDA_CODEC_CONEXANT=y
+CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CMEDIA=y
+CONFIG_SND_HDA_CODEC_SI3054=y
+CONFIG_SND_HDA_GENERIC=y
+CONFIG_SND_HDA_POWER_SAVE=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
+CONFIG_SND_HDSP=m
+CONFIG_SND_HDSPM=m
+CONFIG_SND_HIFIER=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_KORG1212=m
+# CONFIG_SND_LX6464ES is not set
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MIXART=m
+CONFIG_SND_NM256=m
+CONFIG_SND_PCXHR=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SIS7019=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VIRTUOSO=m
+CONFIG_SND_VX222=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_USX2Y=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_US122L=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+CONFIG_SND_SOC_ALL_CODECS=m
+CONFIG_SND_SOC_AD73311=m
+CONFIG_SND_SOC_AK4535=m
+CONFIG_SND_SOC_CS4270=m
+CONFIG_SND_SOC_L3=m
+CONFIG_SND_SOC_PCM3008=m
+CONFIG_SND_SOC_SPDIF=m
+CONFIG_SND_SOC_SSM2602=m
+CONFIG_SND_SOC_TLV320AIC23=m
+CONFIG_SND_SOC_TLV320AIC3X=m
+CONFIG_SND_SOC_UDA134X=m
+CONFIG_SND_SOC_UDA1380=m
+CONFIG_SND_SOC_WM8350=m
+CONFIG_SND_SOC_WM8400=m
+CONFIG_SND_SOC_WM8510=m
+CONFIG_SND_SOC_WM8580=m
+CONFIG_SND_SOC_WM8728=m
+CONFIG_SND_SOC_WM8731=m
+CONFIG_SND_SOC_WM8750=m
+CONFIG_SND_SOC_WM8753=m
+CONFIG_SND_SOC_WM8900=m
+CONFIG_SND_SOC_WM8903=m
+CONFIG_SND_SOC_WM8940=m
+CONFIG_SND_SOC_WM8960=m
+CONFIG_SND_SOC_WM8971=m
+CONFIG_SND_SOC_WM8988=m
+CONFIG_SND_SOC_WM8990=m
+CONFIG_SND_SOC_WM9081=m
+CONFIG_SOUND_PRIME=m
+CONFIG_SOUND_MSNDCLAS=m
+CONFIG_MSNDCLAS_INIT_FILE="/etc/sound/msndinit.bin"
+CONFIG_MSNDCLAS_PERM_FILE="/etc/sound/msndperm.bin"
+CONFIG_SOUND_MSNDPIN=m
+CONFIG_MSNDPIN_INIT_FILE="/etc/sound/pndspini.bin"
+CONFIG_MSNDPIN_PERM_FILE="/etc/sound/pndsperm.bin"
+CONFIG_SOUND_OSS=m
+# CONFIG_SOUND_TRACEINIT is not set
+CONFIG_SOUND_DMAP=y
+CONFIG_SOUND_SSCAPE=m
+CONFIG_SOUND_VMIDI=m
+CONFIG_SOUND_TRIX=m
+CONFIG_SOUND_MSS=m
+CONFIG_SOUND_MPU401=m
+CONFIG_SOUND_PAS=m
+CONFIG_SOUND_PSS=m
+CONFIG_PSS_MIXER=y
+# CONFIG_PSS_HAVE_BOOT is not set
+CONFIG_SOUND_SB=m
+CONFIG_SOUND_YM3812=m
+CONFIG_SOUND_UART6850=m
+CONFIG_SOUND_AEDSP16=m
+CONFIG_SC6600=y
+CONFIG_SC6600_JOY=y
+CONFIG_SC6600_CDROM=4
+CONFIG_SC6600_CDROMBASE=0
+CONFIG_SOUND_KAHLUA=m
+CONFIG_AC97_BUS=m
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+# CONFIG_HID_DEBUG is not set
+CONFIG_HIDRAW=y
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+
+#
+# Special HID drivers
+#
+CONFIG_HID_A4TECH=m
+CONFIG_HID_APPLE=y
+CONFIG_HID_BELKIN=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+# CONFIG_DRAGONRISE_FF is not set
+CONFIG_HID_EZKEY=m
+CONFIG_HID_KYE=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LOGITECH=m
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_PANTHERLORD_FF=y
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_GREENASIA=m
+# CONFIG_GREENASIA_FF is not set
+CONFIG_HID_SMARTJOYPLUS=m
+# CONFIG_SMARTJOYPLUS_FF is not set
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THRUSTMASTER=m
+# CONFIG_THRUSTMASTER_FF is not set
+CONFIG_HID_WACOM=y
+CONFIG_HID_ZEROPLUS=m
+# CONFIG_ZEROPLUS_FF is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_DEVICE_CLASS is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+CONFIG_USB_SUSPEND=y
+# CONFIG_USB_OTG is not set
+CONFIG_USB_MON=y
+CONFIG_USB_WUSB=m
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_C67X00_HCD=m
+# CONFIG_USB_XHCI_HCD is not set
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+# CONFIG_USB_OXU210HP_HCD is not set
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1760_HCD=m
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_UHCI_HCD=y
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_SL811_HCD=m
+CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_WHCI_HCD=m
+CONFIG_USB_HWA_HCD=m
+# CONFIG_USB_GADGET_MUSB_HDRC is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_WDM=m
+CONFIG_USB_TMC=m
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+# CONFIG_USB_STORAGE_ONETOUCH is not set
+CONFIG_USB_STORAGE_KARMA=m
+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+
+#
+# USB port drivers
+#
+CONFIG_USB_SERIAL=m
+CONFIG_USB_EZUSB=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+# CONFIG_USB_SERIAL_CP210X is not set
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+# CONFIG_USB_SERIAL_IR is not set
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+# CONFIG_USB_SERIAL_IUU is not set
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MOTOROLA=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+# CONFIG_USB_SERIAL_QUALCOMM is not set
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+# CONFIG_USB_SERIAL_SYMBOL is not set
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+# CONFIG_USB_SERIAL_OPTICON is not set
+CONFIG_USB_SERIAL_DEBUG=m
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_BERRY_CHARGE=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_SISUSBVGA=m
+# CONFIG_USB_SISUSBVGA_CON is not set
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+# CONFIG_USB_TEST is not set
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_VST=m
+CONFIG_USB_GADGET=m
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_AT91 is not set
+# CONFIG_USB_GADGET_ATMEL_USBA is not set
+# CONFIG_USB_GADGET_FSL_USB2 is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_GADGET_PXA25X is not set
+# CONFIG_USB_GADGET_PXA27X is not set
+# CONFIG_USB_GADGET_S3C_HSOTG is not set
+# CONFIG_USB_GADGET_IMX is not set
+# CONFIG_USB_GADGET_S3C2410 is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_FSL_QE is not set
+# CONFIG_USB_GADGET_CI13XXX is not set
+# CONFIG_USB_GADGET_NET2280 is not set
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LANGWELL is not set
+CONFIG_USB_GADGET_DUMMY_HCD=y
+CONFIG_USB_DUMMY_HCD=m
+CONFIG_USB_GADGET_DUALSPEED=y
+CONFIG_USB_ZERO=m
+# CONFIG_USB_AUDIO is not set
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FILE_STORAGE=m
+# CONFIG_USB_FILE_STORAGE_TEST is not set
+CONFIG_USB_G_SERIAL=m
+# CONFIG_USB_MIDI_GADGET is not set
+# CONFIG_USB_G_PRINTER is not set
+CONFIG_USB_CDC_COMPOSITE=m
+
+#
+# OTG and related infrastructure
+#
+# CONFIG_USB_GPIO_VBUS is not set
+# CONFIG_NOP_USB_XCEIV is not set
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_WHCI=m
+CONFIG_UWB_WLP=m
+CONFIG_UWB_I1480U=m
+CONFIG_UWB_I1480U_WLP=m
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_RICOH_MMC=m
+# CONFIG_MMC_SDHCI_PLTFM is not set
+CONFIG_MMC_WBSD=m
+CONFIG_MMC_TIFM_SD=m
+# CONFIG_MMC_CB710 is not set
+# CONFIG_MMC_VIA_SDMMC is not set
+# CONFIG_MEMSTICK is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=m
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_ALIX2 is not set
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_GPIO_PLATFORM=y
+# CONFIG_LEDS_LP3944 is not set
+# CONFIG_LEDS_CLEVO_MAIL is not set
+CONFIG_LEDS_PCA955X=m
+# CONFIG_LEDS_WM8350 is not set
+CONFIG_LEDS_DA903X=m
+# CONFIG_LEDS_BD2802 is not set
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+# CONFIG_LEDS_TRIGGER_GPIO is not set
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+# CONFIG_ACCESSIBILITY is not set
+CONFIG_INFINIBAND=m
+CONFIG_INFINIBAND_USER_MAD=m
+CONFIG_INFINIBAND_USER_ACCESS=m
+CONFIG_INFINIBAND_USER_MEM=y
+CONFIG_INFINIBAND_ADDR_TRANS=y
+CONFIG_INFINIBAND_MTHCA=m
+CONFIG_INFINIBAND_MTHCA_DEBUG=y
+CONFIG_INFINIBAND_AMSO1100=m
+CONFIG_INFINIBAND_AMSO1100_DEBUG=y
+CONFIG_MLX4_INFINIBAND=m
+# CONFIG_INFINIBAND_NES is not set
+CONFIG_INFINIBAND_IPOIB=m
+CONFIG_INFINIBAND_IPOIB_CM=y
+CONFIG_INFINIBAND_IPOIB_DEBUG=y
+# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
+CONFIG_INFINIBAND_SRP=m
+CONFIG_INFINIBAND_ISER=m
+CONFIG_EDAC=y
+
+#
+# Reporting subsystems
+#
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_MM_EDAC=m
+CONFIG_EDAC_AMD76X=m
+CONFIG_EDAC_E7XXX=m
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_I82875P=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_X38=m
+# CONFIG_EDAC_I5400 is not set
+CONFIG_EDAC_I82860=m
+CONFIG_EDAC_R82600=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_DRV_TEST=m
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+# CONFIG_RTC_DRV_S35390A is not set
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+# CONFIG_RTC_DRV_RX8025 is not set
+
+#
+# SPI RTC drivers
+#
+
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_DS1286=m
+# CONFIG_RTC_DRV_DS1511 is not set
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1742=m
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_V3020=m
+CONFIG_RTC_DRV_WM8350=m
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_DMADEVICES=y
+
+#
+# DMA Devices
+#
+CONFIG_INTEL_IOATDMA=m
+CONFIG_DMA_ENGINE=y
+
+#
+# DMA Clients
+#
+CONFIG_NET_DMA=y
+# CONFIG_ASYNC_TX_DMA is not set
+# CONFIG_DMATEST is not set
+CONFIG_DCA=m
+CONFIG_AUXDISPLAY=y
+CONFIG_UIO=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_PDRV=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_SMX=m
+# CONFIG_UIO_AEC is not set
+CONFIG_UIO_SERCOS3=m
+
+#
+# TI VLYNQ
+#
+# CONFIG_STAGING is not set
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_ACER_WMI=m
+# CONFIG_ACERHDF is not set
+CONFIG_ASUS_LAPTOP=m
+# CONFIG_DELL_WMI is not set
+CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_TC1100_WMI=m
+CONFIG_HP_WMI=m
+CONFIG_MSI_LAPTOP=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_THINKPAD_ACPI=m
+# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_INTEL_MENLOW=m
+CONFIG_ACPI_WMI=y
+# CONFIG_ACPI_ASUS is not set
+CONFIG_ACPI_TOSHIBA=m
+
+#
+# Firmware Drivers
+#
+CONFIG_EDD=y
+CONFIG_EDD_OFF=y
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_EFI_VARS=y
+CONFIG_DELL_RBU=m
+CONFIG_DCDBAS=m
+CONFIG_DMIID=y
+CONFIG_ISCSI_IBFT_FIND=y
+CONFIG_ISCSI_IBFT=m
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=y
+# CONFIG_EXT4DEV_COMPAT is not set
+CONFIG_EXT4_FS_XATTR=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_JBD2=y
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_XFS_FS=y
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_DEBUG is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_BTRFS_FS is not set
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+CONFIG_PRINT_QUOTA_WARNING=y
+CONFIG_QUOTA_TREE=m
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_AUTOFS_FS=m
+CONFIG_AUTOFS4_FS=m
+CONFIG_FUSE_FS=y
+# CONFIG_CUSE is not set
+CONFIG_GENERIC_ACL=y
+
+#
+# Caches
+#
+# CONFIG_FSCACHE is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+# CONFIG_NTFS_RW is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_VMCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_CONFIGFS_FS=y
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_ECRYPT_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_CRAMFS=y
+CONFIG_SQUASHFS=y
+CONFIG_SQUASHFS_LZMA=y
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_NILFS2_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_V4_1 is not set
+CONFIG_ROOT_NFS=y
+CONFIG_NFSD=y
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=y
+CONFIG_NFS_ACL_SUPPORT=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_SUNRPC_XPRT_RDMA=m
+CONFIG_RPCSEC_GSS_KRB5=y
+CONFIG_RPCSEC_GSS_SPKM3=y
+# CONFIG_SMB_FS is not set
+CONFIG_CIFS=y
+# CONFIG_CIFS_STATS is not set
+CONFIG_CIFS_WEAK_PW_HASH=y
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_DEBUG2 is not set
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_EXPERIMENTAL=y
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="cp437"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_PRINTK_TIME=y
+# CONFIG_ENABLE_WARN_DEPRECATED is not set
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=1024
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+CONFIG_DETECT_HUNG_TASK=y
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
+CONFIG_SCHEDSTATS=y
+CONFIG_TIMER_STATS=y
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
+CONFIG_DEBUG_PREEMPT=y
+CONFIG_DEBUG_RT_MUTEXES=y
+CONFIG_DEBUG_PI_LIST=y
+# CONFIG_RT_MUTEX_TESTER is not set
+CONFIG_DEBUG_SPINLOCK=y
+CONFIG_DEBUG_MUTEXES=y
+CONFIG_DEBUG_LOCK_ALLOC=y
+CONFIG_PROVE_LOCKING=y
+CONFIG_LOCKDEP=y
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_LOCKDEP is not set
+CONFIG_TRACE_IRQFLAGS=y
+CONFIG_DEBUG_SPINLOCK_SLEEP=y
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_HIGHMEM is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+CONFIG_DEBUG_LIST=y
+CONFIG_DEBUG_SG=y
+# CONFIG_DEBUG_NOTIFIERS is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_KPROBES_SANITY_TEST is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_LKDTM is not set
+# CONFIG_FAULT_INJECTION is not set
+CONFIG_LATENCYTOP=y
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_NOP_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_FTRACE_SYSCALLS=y
+CONFIG_RING_BUFFER=y
+CONFIG_EVENT_TRACING=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_TRACING=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+# CONFIG_FUNCTION_TRACER is not set
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_TRACER is not set
+# CONFIG_SYSPROF_TRACER is not set
+# CONFIG_SCHED_TRACER is not set
+# CONFIG_FTRACE_SYSCALLS is not set
+# CONFIG_BOOT_TRACER is not set
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+# CONFIG_POWER_TRACER is not set
+# CONFIG_STACK_TRACER is not set
+# CONFIG_KMEMTRACE is not set
+# CONFIG_WORKQUEUE_TRACER is not set
+CONFIG_BLK_DEV_IO_TRACE=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+# CONFIG_MMIOTRACE is not set
+# CONFIG_RING_BUFFER_BENCHMARK is not set
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_KGDB=y
+CONFIG_KGDB_SERIAL_CONSOLE=y
+# CONFIG_KGDB_TESTS is not set
+CONFIG_HAVE_ARCH_KMEMCHECK=y
+# CONFIG_KMEMCHECK is not set
+CONFIG_STRICT_DEVMEM=y
+# CONFIG_X86_VERBOSE_BOOTUP is not set
+CONFIG_EARLY_PRINTK=y
+# CONFIG_EARLY_PRINTK_DBGP is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_X86_PTDUMP is not set
+CONFIG_DEBUG_RODATA=y
+# CONFIG_DEBUG_RODATA_TEST is not set
+# CONFIG_DEBUG_NX_TEST is not set
+# CONFIG_4KSTACKS is not set
+CONFIG_DOUBLEFAULT=y
+# CONFIG_IOMMU_STRESS is not set
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+CONFIG_IO_DELAY_TYPE_0X80=0
+CONFIG_IO_DELAY_TYPE_0XED=1
+CONFIG_IO_DELAY_TYPE_UDELAY=2
+CONFIG_IO_DELAY_TYPE_NONE=3
+# CONFIG_IO_DELAY_0X80 is not set
+CONFIG_IO_DELAY_0XED=y
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_DELAY_NONE is not set
+CONFIG_DEFAULT_IO_DELAY_TYPE=1
+# CONFIG_DEBUG_BOOT_PARAMS is not set
+# CONFIG_CPA_DEBUG is not set
+CONFIG_OPTIMIZE_INLINING=y
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_NETWORK=y
+# CONFIG_SECURITY_NETWORK_XFRM is not set
+# CONFIG_SECURITY_PATH is not set
+CONFIG_SECURITY_FILE_CAPABILITIES=y
+# CONFIG_SECURITY_ROOTPLUG is not set
+CONFIG_LSM_MMAP_MIN_ADDR=65536
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0
+CONFIG_SECURITY_SELINUX_DISABLE=y
+CONFIG_SECURITY_SELINUX_DEVELOP=y
+CONFIG_SECURITY_SELINUX_AVC_STATS=y
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
+# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
+# CONFIG_SECURITY_TOMOYO is not set
+# CONFIG_IMA is not set
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_XOR=m
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_FIPS=y
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_SEQIV=m
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=m
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_XCBC=m
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_WP512=m
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_AES_586=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=y
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SALSA20_586=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_586=m
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+# CONFIG_CRYPTO_ZLIB is not set
+CONFIG_CRYPTO_LZO=m
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_PADLOCK=y
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_CRYPTO_DEV_GEODE=m
+CONFIG_CRYPTO_DEV_HIFN_795X=m
+CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=m
+CONFIG_KVM_INTEL=m
+CONFIG_KVM_AMD=m
+# CONFIG_KVM_TRACE is not set
+# CONFIG_LGUEST is not set
+CONFIG_VIRTIO=m
+CONFIG_VIRTIO_RING=m
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_BINARY_PRINTF=y
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=y
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=y
+CONFIG_AUDIT_GENERIC=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_LZO_COMPRESS=m
+CONFIG_LZO_DECOMPRESS=m
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_LZMA_NEEDED=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_NLATTR=y
diff --git a/recipes/linux/linux-2.6.32/ep93xx/edb9301-fix-machine-id.patch b/recipes/linux/linux-2.6.32/ep93xx/edb9301-fix-machine-id.patch
new file mode 100644
index 0000000000..7fc04bd321
--- /dev/null
+++ b/recipes/linux/linux-2.6.32/ep93xx/edb9301-fix-machine-id.patch
@@ -0,0 +1,19 @@
+---
+ arch/arm/tools/mach-types | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- linux-2.6.31.orig/arch/arm/tools/mach-types
++++ linux-2.6.31/arch/arm/tools/mach-types
+@@ -473,11 +473,11 @@ hawk MACH_HAWK HAWK 456
+ ccat91sbc001 MACH_CCAT91SBC001 CCAT91SBC001 457
+ expresso MACH_EXPRESSO EXPRESSO 458
+ h4000 MACH_H4000 H4000 459
+ dino MACH_DINO DINO 460
+ ml675k MACH_ML675K ML675K 461
+-edb9301 MACH_EDB9301 EDB9301 462
++edb9301 MACH_EDB9301 EDB9301 454
+ edb9315 MACH_EDB9315 EDB9315 463
+ reciva_tt MACH_RECIVA_TT RECIVA_TT 464
+ cstcb01 MACH_CSTCB01 CSTCB01 465
+ cstcb1 MACH_CSTCB1 CSTCB1 466
+ shadwell MACH_SHADWELL SHADWELL 467
diff --git a/recipes/linux/linux-2.6.32/ep93xx/ep93xx-cpuinfo.patch b/recipes/linux/linux-2.6.32/ep93xx/ep93xx-cpuinfo.patch
new file mode 100644
index 0000000000..5409bf72db
--- /dev/null
+++ b/recipes/linux/linux-2.6.32/ep93xx/ep93xx-cpuinfo.patch
@@ -0,0 +1,43 @@
+---
+ arch/arm/kernel/setup.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+--- linux-2.6.32.orig/arch/arm/kernel/setup.c
++++ linux-2.6.32/arch/arm/kernel/setup.c
+@@ -41,10 +41,15 @@
+ #include <asm/mach/irq.h>
+ #include <asm/mach/time.h>
+ #include <asm/traps.h>
+ #include <asm/unwind.h>
+
++#if defined(CONFIG_ARCH_EP93XX)
++#include <mach/io.h>
++#include <mach/ep93xx-regs.h>
++#endif
++
+ #include "compat.h"
+ #include "atags.h"
+ #include "tcm.h"
+
+ #ifndef MEM_SIZE
+@@ -858,13 +863,20 @@ static int c_show(struct seq_file *m, vo
+ seq_printf(m, "CPU revision\t: %d\n", read_cpuid_id() & 15);
+
+ seq_puts(m, "\n");
+
+ seq_printf(m, "Hardware\t: %s\n", machine_name);
++#if defined(CONFIG_ARCH_EP93XX)
++ seq_printf(m, "Revision\t: %04x\n",
++ *((unsigned int *)EP93XX_SYSCON_CHIP_ID) >> 28);
++ seq_printf(m, "Serial\t\t: %016x\n",
++ *((unsigned int *)EP93XX_SECURITY_UNIQID));
++#else
+ seq_printf(m, "Revision\t: %04x\n", system_rev);
+ seq_printf(m, "Serial\t\t: %08x%08x\n",
+ system_serial_high, system_serial_low);
++#endif
+
+ return 0;
+ }
+
+ static void *c_start(struct seq_file *m, loff_t *pos)
diff --git a/recipes/linux/linux-2.6.32/ep93xx/ep93xx-dma.patch b/recipes/linux/linux-2.6.32/ep93xx/ep93xx-dma.patch
new file mode 100644
index 0000000000..c8e6c0f8a3
--- /dev/null
+++ b/recipes/linux/linux-2.6.32/ep93xx/ep93xx-dma.patch
@@ -0,0 +1,3641 @@
+---
+ arch/arm/mach-ep93xx/Makefile | 2
+ arch/arm/mach-ep93xx/dma_ep93xx.c | 2940 ++++++++++++++++++++++++++++++++++++++
+ arch/arm/mach-ep93xx/dma_ep93xx.h | 676 ++++++++
+ 3 files changed, 3617 insertions(+), 1 deletion(-)
+
+--- linux-2.6.31.orig/arch/arm/mach-ep93xx/Makefile
++++ linux-2.6.31/arch/arm/mach-ep93xx/Makefile
+@@ -1,9 +1,9 @@
+ #
+ # Makefile for the linux kernel.
+ #
+-obj-y := core.o clock.o dma-m2p.o gpio.o
++obj-y := core.o clock.o dma-m2p.o gpio.o dma_ep93xx.o
+ obj-m :=
+ obj-n :=
+ obj- :=
+
+ obj-$(CONFIG_MACH_ADSSPHERE) += adssphere.o
+--- /dev/null
++++ linux-2.6.31/arch/arm/mach-ep93xx/dma_ep93xx.c
+@@ -0,0 +1,2940 @@
++/******************************************************************************
++ * arch/arm/mach-ep9312/dma_ep93xx.c
++ *
++ * Support functions for the ep93xx internal DMA channels.
++ * (see also Documentation/arm/ep93xx/dma.txt)
++ *
++ * Copyright (C) 2003 Cirrus Logic
++ *
++ * A large portion of this file is based on the dma api implemented by
++ * Nicolas Pitre, dma-sa1100.c, copyrighted 2000.
++ *
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ ****************************************************************************/
++#include <linux/autoconf.h>
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/sched.h>
++#include <linux/spinlock.h>
++#include <linux/slab.h>
++#include <linux/errno.h>
++#include <linux/delay.h>
++#include <linux/interrupt.h>
++
++#include <asm/system.h>
++#include <asm/irq.h>
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/dma.h>
++#include <asm/mach/dma.h>
++#include "dma_ep93xx.h"
++
++/*****************************************************************************
++ *
++ * Debugging macros
++ *
++ ****************************************************************************/
++#undef DEBUG
++//#define DEBUG 1
++#ifdef DEBUG
++#define DPRINTK( fmt, arg... ) printk( fmt, ##arg )
++#else
++#define DPRINTK( fmt, arg... )
++#endif
++
++/*****************************************************************************
++ *
++ * static global variables
++ *
++ ****************************************************************************/
++ep93xx_dma_t dma_chan[MAX_EP93XX_DMA_CHANNELS];
++
++/*
++ * lock used to protect the list of dma channels while searching for a free
++ * channel during dma_request.
++ */
++//static spinlock_t dma_list_lock;
++static spinlock_t dma_list_lock = SPIN_LOCK_UNLOCKED;
++
++/*****************************************************************************
++ *
++ * Internal DMA processing functions.
++ *
++ ****************************************************************************/
++/*****************************************************************************
++ *
++ * get_dma_channel_from_handle()
++ *
++ * If Handle is valid, returns the DMA channel # (0 to 9 for channels 1-10)
++ * If Handle is not valid, returns -1.
++ *
++ ****************************************************************************/
++static int
++dma_get_channel_from_handle(int handle)
++{
++ int channel;
++
++ /*
++ * Get the DMA channel # from the handle.
++ */
++ channel = ((int)handle & DMA_HANDLE_SPECIFIER_MASK) >> 28;
++
++ /*
++ * See if this is a valid handle.
++ */
++ if (dma_chan[channel].last_valid_handle != (int)handle) {
++ DPRINTK("DMA ERROR - invalid handle 0x%x \n", handle);
++ return(-1);
++ }
++
++ /*
++ * See if this instance is still open
++ */
++ if (!dma_chan[channel].ref_count )
++ return(-1);
++
++ return(channel);
++}
++
++static void dma_m2m_transfer_done(ep93xx_dma_t *dma)
++{
++ unsigned int uiCONTROL;
++ unsigned int M2M_reg_base = dma->reg_base;
++ unsigned int read_back;
++
++ DPRINTK("1 ");
++
++ outl( 0, M2M_reg_base+M2M_OFFSET_INTERRUPT );
++
++ if (dma->total_buffers) {
++ /*
++ * The current_buffer has already been tranfered, so add the
++ * byte count to the total_bytes field.
++ */
++ dma->total_bytes = dma->total_bytes +
++ dma->buffer_queue[dma->current_buffer].size;
++
++ /*
++ * Mark the current_buffer as used.
++ */
++ dma->buffer_queue[dma->current_buffer].used = TRUE;
++
++ /*
++ * Increment the used buffer counter
++ */
++ dma->used_buffers++;
++
++ DPRINTK("#%d", dma->current_buffer);
++
++ /*
++ * Increment the current_buffer
++ */
++ dma->current_buffer = (dma->current_buffer + 1) %
++ MAX_EP93XX_DMA_BUFFERS;
++
++ /*
++ * check if there's a new buffer to transfer.
++ */
++ if (dma->new_buffers && dma->xfer_enable) {
++ /*
++ * We have a new buffer to transfer so program in the
++ * buffer values. Since a STALL interrupt was
++ * triggered, we program the buffer descriptor 0
++ *
++ * Set the SAR_BASE/DAR_BASE/BCR registers with values
++ * from the next buffer in the queue.
++ */
++ outl( dma->buffer_queue[dma->current_buffer].source,
++ M2M_reg_base + M2M_OFFSET_SAR_BASE0 );
++
++ outl( dma->buffer_queue[dma->current_buffer].dest,
++ M2M_reg_base + M2M_OFFSET_DAR_BASE0 );
++
++ outl( dma->buffer_queue[dma->current_buffer].size,
++ M2M_reg_base + M2M_OFFSET_BCR0 );
++
++ DPRINTK("SAR_BASE0 - 0x%x\n", dma->buffer_queue[dma->current_buffer].source);
++ DPRINTK("DAR_BASE0 - 0x%x\n", dma->buffer_queue[dma->current_buffer].dest);
++ DPRINTK("BCR0 - 0x%x\n", dma->buffer_queue[dma->current_buffer].size);
++
++ /*
++ * Decrement the new buffer counter
++ */
++ dma->new_buffers--;
++
++ /*
++ * If there's a second new buffer, we program the
++ * second buffer descriptor.
++ */
++ if (dma->new_buffers) {
++ outl( dma->buffer_queue[(dma->current_buffer + 1) %
++ MAX_EP93XX_DMA_BUFFERS].source,
++ M2M_reg_base+M2M_OFFSET_SAR_BASE1 );
++
++ outl( dma->buffer_queue[(dma->current_buffer + 1) %
++ MAX_EP93XX_DMA_BUFFERS].dest,
++ M2M_reg_base+M2M_OFFSET_DAR_BASE1 );
++
++ outl( dma->buffer_queue[(dma->current_buffer + 1) %
++ MAX_EP93XX_DMA_BUFFERS].size,
++ M2M_reg_base+M2M_OFFSET_BCR1 );
++
++ uiCONTROL = inl(M2M_reg_base+M2M_OFFSET_CONTROL);
++ uiCONTROL |= CONTROL_M2M_NFBINTEN;
++ outl( uiCONTROL, M2M_reg_base+M2M_OFFSET_CONTROL );
++
++ dma->new_buffers--;
++ }
++ } else {
++ DPRINTK("2 \n");
++ /*
++ * There's a chance we setup both buffer descriptors,
++ * but didn't service the NFB quickly enough, causing
++ * the channel to transfer both buffers, then enter the
++ * stall state. So, we need to be able to process the
++ * second buffer.
++ */
++ if ((dma->used_buffers + dma->new_buffers) < dma->total_buffers)
++ {
++ DPRINTK("3 ");
++
++ /*
++ * The current_buffer has already been
++ * tranferred, so add the byte count to the
++ * total_bytes field.
++ */
++ dma->total_bytes = dma->total_bytes +
++ dma->buffer_queue[dma->current_buffer].size;
++
++ /*
++ * Mark the current_buffer as used.
++ */
++ dma->buffer_queue[dma->current_buffer].used = TRUE;
++
++ /*
++ * Increment the used buffer counter
++ */
++ dma->used_buffers++;
++
++ DPRINTK("#%d", dma->current_buffer);
++
++ /*
++ * Increment the current buffer pointer.
++ */
++ dma->current_buffer = (dma->current_buffer + 1) %
++ MAX_EP93XX_DMA_BUFFERS;
++
++ }
++
++ /*
++ * No new buffers to transfer, so disable the channel.
++ */
++ uiCONTROL = inl(M2M_reg_base+M2M_OFFSET_CONTROL);
++ uiCONTROL &= ~CONTROL_M2M_ENABLE;
++ outl( uiCONTROL, M2M_reg_base+M2M_OFFSET_CONTROL );
++
++ /*
++ * Indicate that this channel is in the pause by
++ * starvation state by setting the pause bit to true.
++ */
++ dma->pause = TRUE;
++ }
++ } else {
++ /*
++ * No buffers to transfer, or old buffers to mark as used,
++ * so disable the channel
++ */
++ uiCONTROL = inl(M2M_reg_base+M2M_OFFSET_CONTROL);
++ uiCONTROL &= ~CONTROL_M2M_ENABLE;
++ outl( uiCONTROL, M2M_reg_base+M2M_OFFSET_CONTROL );
++
++ /*
++ * Must read the control register back after a write.
++ */
++ read_back = inl(M2M_reg_base+M2M_OFFSET_CONTROL);
++
++ /*
++ * Indicate that this channel is in the pause by
++ * starvation state by setting the pause bit to true.
++ */
++ dma->pause = TRUE;
++ }
++}
++
++static void dma_m2m_next_frame_buffer(ep93xx_dma_t *dma)
++{
++ int loop;
++ unsigned int uiCONTROL;
++ unsigned int M2M_reg_base = dma->reg_base;
++
++ DPRINTK("5 ");
++
++ if (dma->total_buffers) {
++ DPRINTK("6 ");
++ /*
++ * The iCurrentBuffer has already been transfered. so add the
++ * byte count from the current buffer to the total byte count.
++ */
++ dma->total_bytes = dma->total_bytes +
++ dma->buffer_queue[dma->current_buffer].size;
++
++ /*
++ * Mark the Current Buffer as used.
++ */
++ dma->buffer_queue[dma->current_buffer].used = TRUE;
++
++ /*
++ * Increment the used buffer counter
++ */
++ dma->used_buffers++;
++
++ DPRINTK("#%d", dma->current_buffer);
++
++ if ((dma->buffer_queue[
++ (dma->current_buffer + 1) % MAX_EP93XX_DMA_BUFFERS].last) ||
++ (dma->new_buffers == 0) || (dma->xfer_enable == FALSE)) {
++ DPRINTK("7 ");
++
++ /*
++ * This is the last Buffer in this transaction, so
++ * disable the NFB interrupt. We shouldn't get an NFB
++ * int when the FSM moves to the ON state where it
++ * would typically get the NFB int indicating a new
++ * buffer can be programmed. Instead, once in the ON
++ * state, the DMA will just proceed to complete the
++ * transfer of the current buffer, move the FSB
++ * directly to the STALL state where a STALL interrupt
++ * will be generated.
++ */
++ uiCONTROL = inl(M2M_reg_base+M2M_OFFSET_CONTROL);
++ uiCONTROL &= ~CONTROL_M2M_NFBINTEN ;
++ outl( uiCONTROL, M2M_reg_base+M2M_OFFSET_CONTROL );
++
++ /*
++ * The current buffer has been transferred, so
++ * increment the current buffer counter to reflect
++ * this.
++ */
++ dma->current_buffer = (dma->current_buffer + 1) %
++ MAX_EP93XX_DMA_BUFFERS;
++
++ DPRINTK("End of NFB handling. \n");
++ DPRINTK("CONTROL - 0x%x \n",
++ inl(M2M_reg_base+M2M_OFFSET_CONTROL) );
++ DPRINTK("STATUS - 0x%x \n",
++ inl(M2M_reg_base+M2M_OFFSET_STATUS) );
++ DPRINTK("SAR_BASE0 - 0x%x \n",
++ inl(M2M_reg_base+M2M_OFFSET_SAR_BASE0) );
++ DPRINTK("SAR_CUR0 - 0x%x \n",
++ inl(M2M_reg_base+M2M_OFFSET_SAR_CURRENT0) );
++ DPRINTK("DAR_BASE0 - 0x%x \n",
++ inl(M2M_reg_base+M2M_OFFSET_DAR_BASE0) );
++ DPRINTK("DAR_CUR0 - 0x%x \n",
++ inl(M2M_reg_base+M2M_OFFSET_DAR_CURRENT0) );
++
++ DPRINTK("Buffer buf_id source size last used \n");
++ for (loop = 0; loop < 32; loop ++)
++ DPRINTK("%d 0x%x 0x%x 0x%x %d %d \n",
++ loop, dma->buffer_queue[loop].buf_id,
++ dma->buffer_queue[loop].source,
++ dma->buffer_queue[loop].size,
++ dma->buffer_queue[loop].last,
++ dma->buffer_queue[loop].used);
++ DPRINTK("pause 0x%x 0x%x 0x%x %d %d \n",
++ dma->pause_buf.buf_id, dma->pause_buf.source,
++ dma->pause_buf.size, dma->pause_buf.last,
++ dma->pause_buf.used);
++
++ DPRINTK("Pause - %d \n", dma->pause);
++ DPRINTK("xfer_enable - %d \n", dma->xfer_enable);
++ DPRINTK("total bytes - 0x%x \n", dma->total_bytes);
++ DPRINTK("total buffer - %d \n", dma->total_buffers);
++ DPRINTK("new buffers - %d \n", dma->new_buffers);
++ DPRINTK("current buffer - %d \n", dma->current_buffer);
++ DPRINTK("last buffer - %d \n", dma->last_buffer);
++ DPRINTK("used buffers - %d \n", dma->used_buffers);
++ DPRINTK("callback addr - 0x%p \n", dma->callback);
++
++ } else if (dma->new_buffers) {
++ DPRINTK("8 ");
++ /*
++ * We have a new buffer, so increment the current
++ * buffer to point to the next buffer, which is already
++ * programmed into the DMA. Next time around, it'll be
++ * pointing to the current buffer.
++ */
++ dma->current_buffer = (dma->current_buffer + 1) %
++ MAX_EP93XX_DMA_BUFFERS;
++
++ /*
++ * We know we have a new buffer to program as the next
++ * buffer, so check which set of SAR_BASE/DAR_BASE/BCR
++ * registers to program.
++ */
++ if ( inl(M2M_reg_base+M2M_OFFSET_STATUS) & STATUS_M2M_NB ) {
++ /*
++ * Set the SAR_BASE1/DAR_BASE1/BCR1 registers
++ * with values from the next buffer in the
++ * queue.
++ */
++ outl( dma->buffer_queue[(dma->current_buffer + 1) %
++ MAX_EP93XX_DMA_BUFFERS].source,
++ M2M_reg_base+M2M_OFFSET_SAR_BASE1 );
++
++ outl( dma->buffer_queue[(dma->current_buffer + 1) %
++ MAX_EP93XX_DMA_BUFFERS].dest,
++ M2M_reg_base+M2M_OFFSET_DAR_BASE1 );
++
++ outl( dma->buffer_queue[(dma->current_buffer + 1) %
++ MAX_EP93XX_DMA_BUFFERS].size,
++ M2M_reg_base+M2M_OFFSET_BCR1 );
++ } else {
++ /*
++ * Set the SAR_BASE0/DAR_BASE0/BCR0 registers
++ * with values from the next buffer in the
++ * queue.
++ */
++ outl( dma->buffer_queue[(dma->current_buffer + 1) %
++ MAX_EP93XX_DMA_BUFFERS].source,
++ M2M_reg_base+M2M_OFFSET_SAR_BASE0 );
++
++ outl( dma->buffer_queue[(dma->current_buffer + 1) %
++ MAX_EP93XX_DMA_BUFFERS].dest,
++ M2M_reg_base+M2M_OFFSET_DAR_BASE0 );
++
++ outl( dma->buffer_queue[(dma->current_buffer + 1) %
++ MAX_EP93XX_DMA_BUFFERS].size,
++ M2M_reg_base+M2M_OFFSET_BCR0 );
++ }
++
++ /*
++ * Decrement the new buffers counter
++ */
++ dma->new_buffers--;
++ }
++ } else {
++ /*
++ * Total number of buffers is 0 - really we should never get
++ * here, but just in case.
++ */
++ DPRINTK("9 \n");
++
++ /*
++ * No new buffers to transfer, so Disable the channel
++ */
++ uiCONTROL = inl(M2M_reg_base+M2M_OFFSET_CONTROL);
++ uiCONTROL &= ~CONTROL_M2M_ENABLE;
++ outl( uiCONTROL, M2M_reg_base+M2M_OFFSET_CONTROL );
++
++ /*
++ * Indicate that the channel is paused by starvation.
++ */
++ dma->pause = 1;
++ }
++}
++
++/*****************************************************************************
++ *
++ * dma_m2m_irq_handler
++ *
++ ****************************************************************************/
++static irqreturn_t
++dma_m2m_irq_handler(int irq, void *dev_id)
++{
++ ep93xx_dma_t *dma = (ep93xx_dma_t *)dev_id;
++ unsigned int M2M_reg_base = dma->reg_base;
++ ep93xx_dma_dev_t dma_int = UNDEF_INT;
++ int status;
++
++// printk("+m2m irq=%d\n", irq);
++
++ /*
++ * Determine what kind of dma interrupt this is.
++ */
++ status = inl(M2M_reg_base + M2M_OFFSET_INTERRUPT);
++ if ( status & INTERRUPT_M2M_DONEINT )
++ dma_int = DONE; // we're done with a requested dma
++ else if ( status & INTERRUPT_M2M_NFBINT )
++ dma_int = NFB; // we're done with one dma buffer
++
++ DPRINTK("IRQ: b=%#x st=%#x\n", (int)dma->current_buffer, dma_int);
++
++ switch (dma_int) {
++ /*
++ * Next Frame Buffer Interrupt. If there's a new buffer program it
++ * Check if this is the last buffer in the transfer,
++ * and if it is, disable the NFB int to prevent being
++ * interrupted for another buffer when we know there won't be
++ * another.
++ */
++ case NFB:
++ dma_m2m_next_frame_buffer(dma);
++ break;
++ /*
++ * Done interrupt generated, indicating that the transfer is complete.
++ */
++ case DONE:
++ dma_m2m_transfer_done(dma);
++ break;
++
++ default:
++ break;
++ }
++
++ if ((dma_int != UNDEF_INT) && dma->callback)
++ dma->callback(dma_int, dma->device, dma->user_data);
++
++ return IRQ_HANDLED;
++}
++
++/*****************************************************************************
++ *
++ * dma_m2p_irq_handler
++ *
++ *
++ *
++ ****************************************************************************/
++static irqreturn_t
++dma_m2p_irq_handler(int irq, void *dev_id)
++{
++ ep93xx_dma_t *dma = (ep93xx_dma_t *) dev_id;
++ unsigned int M2P_reg_base = dma->reg_base;
++ unsigned int read_back;
++ ep93xx_dma_dev_t dma_int = UNDEF_INT;
++ unsigned int loop, uiCONTROL, uiINTERRUPT;
++
++ /*
++ * Determine what kind of dma interrupt this is.
++ */
++ if ( inl(M2P_reg_base+M2P_OFFSET_INTERRUPT) & INTERRUPT_M2P_STALLINT )
++ dma_int = STALL;
++ else if ( inl(M2P_reg_base+M2P_OFFSET_INTERRUPT) & INTERRUPT_M2P_NFBINT )
++ dma_int = NFB;
++ else if ( inl(M2P_reg_base+M2P_OFFSET_INTERRUPT) & INTERRUPT_M2P_CHERRORINT )
++ dma_int = CHERROR;
++
++ /*
++ * Stall Interrupt: The Channel is stalled, meaning nothing is
++ * programmed to transfer right now. So, we're back to the
++ * beginnning. If there's a buffer to transfer, program it into
++ * max and base 0 registers.
++ */
++ if (dma_int == STALL) {
++ DPRINTK("1 ");
++
++ if (dma->total_buffers) {
++ /*
++ * The current_buffer has already been tranfered, so
++ * add the byte count to the total_bytes field.
++ */
++ dma->total_bytes = dma->total_bytes +
++ dma->buffer_queue[dma->current_buffer].size;
++
++ /*
++ * Mark the current_buffer as used.
++ */
++ dma->buffer_queue[dma->current_buffer].used = TRUE;
++
++ /*
++ * Increment the used buffer counter
++ */
++ dma->used_buffers++;
++
++ DPRINTK("#%d", dma->current_buffer);
++
++ /*
++ * Increment the current_buffer
++ */
++ dma->current_buffer = (dma->current_buffer + 1) %
++ MAX_EP93XX_DMA_BUFFERS;
++
++ /*
++ * check if there's a new buffer to transfer.
++ */
++ if (dma->new_buffers && dma->xfer_enable) {
++ /*
++ * We have a new buffer to transfer so program
++ * in the buffer values. Since a STALL
++ * interrupt was triggered, we program the
++ * base0 and maxcnt0
++ *
++ * Set the MAXCNT0 register with the buffer
++ * size
++ */
++ outl( dma->buffer_queue[dma->current_buffer].size,
++ M2P_reg_base+M2P_OFFSET_MAXCNT0 );
++
++ /*
++ * Set the BASE0 register with the buffer base
++ * address
++ */
++ outl( dma->buffer_queue[dma->current_buffer].source,
++ M2P_reg_base+M2P_OFFSET_BASE0 );
++
++ /*
++ * Decrement the new buffer counter
++ */
++ dma->new_buffers--;
++
++ if (dma->new_buffers) {
++ DPRINTK("A ");
++ /*
++ * Set the MAXCNT1 register with the
++ * buffer size
++ */
++ outl( dma->buffer_queue[(dma->current_buffer + 1) %
++ MAX_EP93XX_DMA_BUFFERS].size,
++ M2P_reg_base+M2P_OFFSET_MAXCNT1 );
++
++ /*
++ * Set the BASE1 register with the
++ * buffer base address
++ */
++ outl( dma->buffer_queue[dma->current_buffer + 1 %
++ MAX_EP93XX_DMA_BUFFERS].source,
++ M2P_reg_base+M2P_OFFSET_BASE1 );
++
++ /*
++ * Decrement the new buffer counter
++ */
++ dma->new_buffers--;
++
++ /*
++ * Enable the NFB Interrupt.
++ */
++ uiCONTROL = inl(M2P_reg_base+M2P_OFFSET_CONTROL);
++ uiCONTROL |= CONTROL_M2P_NFBINTEN;
++ outl( uiCONTROL, M2P_reg_base+M2P_OFFSET_CONTROL );
++ }
++ } else {
++ /*
++ * No new buffers.
++ */
++ DPRINTK("2 \n");
++
++ /*
++ * There's a chance we setup both buffer descriptors, but
++ * didn't service the NFB quickly enough, causing the channel
++ * to transfer both buffers, then enter the stall state.
++ * So, we need to be able to process the second buffer.
++ */
++ if ((dma->used_buffers + dma->new_buffers) < dma->total_buffers) {
++ DPRINTK("3 ");
++
++ /*
++ * The current_buffer has already been tranfered, so add the
++ * byte count to the total_bytes field.
++ */
++ dma->total_bytes = dma->total_bytes +
++ dma->buffer_queue[dma->current_buffer].size;
++
++ /*
++ * Mark the current_buffer as used.
++ */
++ dma->buffer_queue[dma->current_buffer].used = TRUE;
++
++ /*
++ * Increment the used buffer counter
++ */
++ dma->used_buffers++;
++
++ DPRINTK("#%d", dma->current_buffer);
++
++ /*
++ * Increment the current buffer pointer.
++ */
++ dma->current_buffer = (dma->current_buffer + 1) %
++ MAX_EP93XX_DMA_BUFFERS;
++
++ }
++
++ /*
++ * No new buffers to transfer, so disable the channel.
++ */
++ uiCONTROL = inl(M2P_reg_base+M2P_OFFSET_CONTROL);
++ uiCONTROL &= ~CONTROL_M2P_ENABLE;
++ outl( uiCONTROL, M2P_reg_base+M2P_OFFSET_CONTROL );
++
++ /*
++ * Indicate that this channel is in the pause by starvation
++ * state by setting the pause bit to true.
++ */
++ dma->pause = TRUE;
++
++ DPRINTK("STATUS - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_STATUS) );
++ DPRINTK("CONTROL - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_CONTROL) );
++ DPRINTK("REMAIN - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_REMAIN) );
++ DPRINTK("PPALLOC - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_PPALLOC) );
++ DPRINTK("BASE0 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_BASE0) );
++ DPRINTK("MAXCNT0 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_MAXCNT0) );
++ DPRINTK("CURRENT0 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_CURRENT0) );
++ DPRINTK("BASE1 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_BASE1) );
++ DPRINTK("MAXCNT1 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_MAXCNT1) );
++ DPRINTK("CURRENT1 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_CURRENT1) );
++
++ DPRINTK("Buffer buf_id source size last used \n");
++ for (loop = 0; loop < 32; loop ++)
++ DPRINTK("%d 0x%x 0x%x 0x%x %d %d \n",
++ loop, dma->buffer_queue[loop].buf_id, dma->buffer_queue[loop].source,
++ dma->buffer_queue[loop].size,
++ dma->buffer_queue[loop].last, dma->buffer_queue[loop].used);
++ DPRINTK("pause 0x%x 0x%x 0x%x %d %d \n",
++ dma->pause_buf.buf_id, dma->pause_buf.source, dma->pause_buf.size,
++ dma->pause_buf.last, dma->pause_buf.used);
++
++ DPRINTK("Pause - %d \n", dma->pause);
++ DPRINTK("xfer_enable - %d \n", dma->xfer_enable);
++ DPRINTK("total bytes - 0x%x \n", dma->total_bytes);
++ DPRINTK("total buffer - %d \n", dma->total_buffers);
++ DPRINTK("new buffers - %d \n", dma->new_buffers);
++ DPRINTK("current buffer - %d \n", dma->current_buffer);
++ DPRINTK("last buffer - %d \n", dma->last_buffer);
++ DPRINTK("used buffers - %d \n", dma->used_buffers);
++ DPRINTK("callback addr - 0x%p \n", dma->callback);
++ }
++ } else {
++ /*
++ * No buffers to transfer, or old buffers to mark as used,
++ * so Disable the channel
++ */
++ uiCONTROL = inl(M2P_reg_base+M2P_OFFSET_CONTROL);
++ uiCONTROL &= ~CONTROL_M2P_ENABLE;
++ outl( uiCONTROL, M2P_reg_base+M2P_OFFSET_CONTROL );
++
++ /*
++ * Must read the control register back after a write.
++ */
++ read_back = inl(M2P_reg_base+M2P_OFFSET_CONTROL);
++
++ /*
++ * Indicate that this channel is in the pause by
++ * starvation state by setting the pause bit to true.
++ */
++ dma->pause = TRUE;
++ }
++ }
++
++ /*
++ * Next Frame Buffer Interrupt. If there's a new buffer program it
++ * Check if this is the last buffer in the transfer,
++ * and if it is, disable the NFB int to prevent being
++ * interrupted for another buffer when we know there won't be
++ * another.
++ */
++ if (dma_int == NFB) {
++ DPRINTK("5 ");
++
++ if (dma->total_buffers) {
++ DPRINTK("6 ");
++ /*
++ * The iCurrentBuffer has already been transfered. so add the
++ * byte count from the current buffer to the total byte count.
++ */
++ dma->total_bytes = dma->total_bytes +
++ dma->buffer_queue[dma->current_buffer].size;
++
++ /*
++ * Mark the Current Buffer as used.
++ */
++ dma->buffer_queue[dma->current_buffer].used = TRUE;
++
++ /*
++ * Increment the used buffer counter
++ */
++ dma->used_buffers++;
++
++ DPRINTK("#%d", dma->current_buffer);
++
++ if ((dma->buffer_queue[
++ (dma->current_buffer + 1) % MAX_EP93XX_DMA_BUFFERS].last) ||
++ (dma->new_buffers == 0) || (dma->xfer_enable == FALSE)) {
++ DPRINTK("7 ");
++
++ /*
++ * This is the last Buffer in this transaction, so disable
++ * the NFB interrupt. We shouldn't get an NFB int when the
++ * FSM moves to the ON state where it would typically get the
++ * NFB int indicating a new buffer can be programmed.
++ * Instead, once in the ON state, the DMA will just proceed
++ * to complet the transfer of the current buffer, move the
++ * FSB directly to the STALL state where a STALL interrupt
++ * will be generated.
++ */
++ uiCONTROL = inl(M2P_reg_base+M2P_OFFSET_CONTROL);
++ uiCONTROL &= ~CONTROL_M2P_NFBINTEN;
++ outl( uiCONTROL, M2P_reg_base+M2P_OFFSET_CONTROL );
++
++ /*
++ * The current buffer has been transferred, so increment
++ * the current buffer counter to reflect this.
++ */
++ dma->current_buffer = (dma->current_buffer + 1) % MAX_EP93XX_DMA_BUFFERS;
++
++ DPRINTK("End of NFB handling. \n");
++ DPRINTK("STATUS - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_STATUS) );
++ DPRINTK("CONTROL - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_CONTROL) );
++ DPRINTK("REMAIN - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_REMAIN) );
++ DPRINTK("PPALLOC - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_PPALLOC) );
++ DPRINTK("BASE0 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_BASE0) );
++ DPRINTK("MAXCNT0 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_MAXCNT0) );
++ DPRINTK("CURRENT0 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_CURRENT0) );
++ DPRINTK("BASE1 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_BASE1) );
++ DPRINTK("MAXCNT1 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_MAXCNT1) );
++ DPRINTK("CURRENT1 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_CURRENT1) );
++
++ DPRINTK("Buffer buf_id source size last used \n");
++ for (loop = 0; loop < 32; loop ++)
++ DPRINTK("%d 0x%x 0x%x 0x%x %d %d \n",
++ loop, dma->buffer_queue[loop].buf_id, dma->buffer_queue[loop].source,
++ dma->buffer_queue[loop].size,
++ dma->buffer_queue[loop].last, dma->buffer_queue[loop].used);
++ DPRINTK("pause 0x%x 0x%x 0x%x %d %d \n",
++ dma->pause_buf.buf_id, dma->pause_buf.source, dma->pause_buf.size,
++ dma->pause_buf.last, dma->pause_buf.used);
++
++ DPRINTK("Pause - %d \n", dma->pause);
++ DPRINTK("xfer_enable - %d \n", dma->xfer_enable);
++ DPRINTK("total bytes - 0x%x \n", dma->total_bytes);
++ DPRINTK("total buffer - %d \n", dma->total_buffers);
++ DPRINTK("new buffers - %d \n", dma->new_buffers);
++ DPRINTK("current buffer - %d \n", dma->current_buffer);
++ DPRINTK("last buffer - %d \n", dma->last_buffer);
++ DPRINTK("used buffers - %d \n", dma->used_buffers);
++ DPRINTK("callback addr - 0x%p \n", dma->callback);
++
++ } else if (dma->new_buffers) {
++ DPRINTK("8 ");
++ /*
++ * we have a new buffer, so increment the current buffer to
++ * point to the next buffer, which is already programmed into
++ * the DMA. Next time around, it'll be pointing to the
++ * current buffer.
++ */
++ dma->current_buffer = (dma->current_buffer + 1) % MAX_EP93XX_DMA_BUFFERS;
++
++ /*
++ * we know we have a new buffer to program as the next
++ * buffer, so check which set of MAXCNT and BASE registers
++ * to program.
++ */
++ if ( inl(M2P_reg_base+M2P_OFFSET_STATUS) & STATUS_M2P_NEXTBUFFER ) {
++ /*
++ * Set the MAXCNT1 register with the buffer size
++ */
++ outl( dma->buffer_queue[
++ (dma->current_buffer + 1) % MAX_EP93XX_DMA_BUFFERS].size,
++ M2P_reg_base+M2P_OFFSET_MAXCNT1 );
++
++ /*
++ * Set the BASE1 register with the buffer base address
++ */
++ outl( dma->buffer_queue[
++ (dma->current_buffer + 1) % MAX_EP93XX_DMA_BUFFERS].source,
++ M2P_reg_base+M2P_OFFSET_BASE1 );
++ } else {
++ /*
++ * Set the MAXCNT0 register with the buffer size
++ */
++ outl( dma->buffer_queue[
++ (dma->current_buffer + 1) % MAX_EP93XX_DMA_BUFFERS].size,
++ M2P_reg_base+M2P_OFFSET_MAXCNT0 );
++
++ /*
++ * Set the BASE0 register with the buffer base address
++ */
++ outl( dma->buffer_queue[
++ (dma->current_buffer + 1) % MAX_EP93XX_DMA_BUFFERS].source,
++ M2P_reg_base+M2P_OFFSET_BASE0 );
++ }
++
++ /*
++ * Decrement the new buffers counter
++ */
++ dma->new_buffers--;
++ }
++ } else {
++ /*
++ * Total number of buffers is 0 - really we should never get here,
++ * but just in case.
++ */
++ DPRINTK("9 \n");
++
++ /*
++ * No new buffers to transfer, so Disable the channel
++ */
++ uiCONTROL = inl(M2P_reg_base+M2P_OFFSET_CONTROL);
++ uiCONTROL &= ~CONTROL_M2P_ENABLE;
++ outl( uiCONTROL, M2P_reg_base+M2P_OFFSET_CONTROL );
++ }
++ }
++
++ /*
++ * Channel Error Interrupt, or perhipheral interrupt, specific to the
++ * memory to/from peripheral channels.
++ */
++ if (dma_int == CHERROR) {
++ /*
++ * just clear the interrupt, it's really up to the peripheral
++ * driver to determine if any further action is necessary.
++ */
++ uiINTERRUPT = inl(M2P_reg_base+M2P_OFFSET_INTERRUPT);
++ uiINTERRUPT &= ~INTERRUPT_M2P_CHERRORINT;
++ outl( uiINTERRUPT, M2P_reg_base+M2P_OFFSET_INTERRUPT );
++ }
++
++ /*
++ * Make sure the interrupt was valid, and if it was, then check
++ * if a callback function was installed for this DMA channel. If a
++ * callback was installed call it.
++ */
++ if ((dma_int != UNDEF_INT) && dma->callback)
++ dma->callback(dma_int, dma->device, dma->user_data);
++
++ return IRQ_HANDLED;
++}
++
++/*****************************************************************************
++ *
++ * ep9312_dma_open_m2p(int device)
++ *
++ * Description: This function will attempt to open a M2P/P2M DMA channel.
++ * If the open is successful, the channel number is returned,
++ * otherwise a negative number is returned.
++ *
++ * Parameters:
++ * device: device for which the dma channel is requested.
++ *
++ ****************************************************************************/
++static int
++dma_open_m2p(int device)
++{
++ int channel = -1;
++ unsigned int loop;
++ unsigned int M2P_reg_base;
++ unsigned int uiPWRCNT;
++ /*unsigned long flags;*/
++
++ DPRINTK("DMA Open M2P with hw dev %d\n", device);
++
++ /*
++ * Lock the dma channel list.
++ */
++ //spin_lock_irqsave(&dma_list_lock, flags);
++ spin_lock(&dma_list_lock);
++
++ /*
++ * Verify that the device requesting DMA isn't already using a DMA channel
++ */
++ if (device >= 10)
++ loop = 1; // Rx transfer requested
++ else
++ loop = 0; // Tx transfer requested
++
++ for (; loop < 10; loop = loop + 2)
++ /*
++ * Before checking for a matching device, check that the
++ * channel is in use, otherwise the device field is
++ * invalid.
++ */
++ if (dma_chan[loop].ref_count)
++ if (device == dma_chan[loop].device) {
++ DPRINTK("DMA Open M2P - Error\n");
++ return(-1);
++ }
++
++ /*
++ * Get a DMA channel instance for the given hardware device.
++ * If this is a TX look for even numbered channels, else look for
++ * odd numbered channels
++ */
++ if (device >= 10)
++ loop = 1; /* Rx transfer requested */
++ else
++ loop = 0; /* Tx transfer requested */
++
++ for (; loop < 10; loop = loop + 2)
++ if (!dma_chan[loop].ref_count) {
++ /*
++ * Capture the channel and increment the reference count.
++ */
++ channel = loop;
++ dma_chan[channel].ref_count++;
++ break;
++ }
++
++ /*
++ * Unlock the dma channel list.
++ */
++ //spin_unlock_irqrestore(&dma_list_lock, flags);
++ spin_unlock(&dma_list_lock);
++ /*
++ * See if we got a valid channel.
++ */
++ if (channel < 0)
++ return(-1);
++
++ /*
++ * Point regs to the correct dma channel register base.
++ */
++ M2P_reg_base = dma_chan[channel].reg_base;
++
++ /*
++ * Turn on the clock for the specified DMA channel
++ * TODO: need to use the correct register name for the
++ * power control register.
++ */
++ uiPWRCNT = inl(/*SYSCON_PWRCNT*/EP93XX_SYSCON_CLOCK_CONTROL);
++ switch (channel) {
++ case 0:
++ uiPWRCNT |= SYSCON_PWRCNT_DMA_M2PCH0;
++ break;
++
++ case 1:
++ uiPWRCNT |= SYSCON_PWRCNT_DMA_M2PCH1;
++ break;
++
++ case 2:
++ uiPWRCNT |= SYSCON_PWRCNT_DMA_M2PCH2;
++ break;
++
++ case 3:
++ uiPWRCNT |= SYSCON_PWRCNT_DMA_M2PCH3;
++ break;
++
++ case 4:
++ uiPWRCNT |= SYSCON_PWRCNT_DMA_M2PCH4;
++ break;
++
++ case 5:
++ uiPWRCNT |= SYSCON_PWRCNT_DMA_M2PCH5;
++ break;
++
++ case 6:
++ uiPWRCNT |= SYSCON_PWRCNT_DMA_M2PCH6;
++ break;
++
++ case 7:
++ uiPWRCNT |= SYSCON_PWRCNT_DMA_M2PCH7;
++ break;
++
++ case 8:
++ uiPWRCNT |= SYSCON_PWRCNT_DMA_M2PCH8;
++ break;
++
++ case 9:
++ uiPWRCNT |= SYSCON_PWRCNT_DMA_M2PCH9;
++ break;
++
++ default:
++ return(-1);
++ }
++ outl( uiPWRCNT, /*SYSCON_PWRCNT*/EP93XX_SYSCON_CLOCK_CONTROL );
++
++ /*
++ * Clear out the control register before any further setup.
++ */
++ outl( 0, M2P_reg_base+M2P_OFFSET_CONTROL );
++
++ /*
++ * Setup the peripheral port value in the DMA channel registers.
++ */
++ if (device < 10)
++ outl( (unsigned int)device, M2P_reg_base+M2P_OFFSET_PPALLOC );
++ else
++ outl( (unsigned int)(device - 10), M2P_reg_base+M2P_OFFSET_PPALLOC );
++
++ /*
++ * Let's hold on to the value of the Hw device for comparison later.
++ */
++ dma_chan[channel].device = device;
++
++ /*
++ * Success.
++ */
++ return(channel);
++}
++
++/*****************************************************************************
++ *
++ * dma_open_m2m(int device)
++ *
++ * Description: This function will attempt to open a M2M DMA channel.
++ * If the open is successful, the channel number is returned,
++ * otherwise a negative number is returned.
++ *
++ * Parameters:
++ * device: device for which the dma channel is requested.
++ *
++ ****************************************************************************/
++static int
++dma_open_m2m(int device)
++{
++ int channel = -1;
++ unsigned int loop;
++ unsigned int M2M_reg_base;
++ unsigned int uiPWRCNT, uiCONTROL;
++ /*unsigned long flags;*/
++
++ DPRINTK("DMA Open M2M with hw dev %d\n", device);
++
++ /*
++ * Lock the dma channel list.
++ */
++ //spin_lock_irqsave(&dma_list_lock, flags);
++ spin_lock(&dma_list_lock);
++
++
++ /*
++ * Check if this device is already allocated a channel.
++ * TODO: can one M2M device be allocated multiple channels?
++ */
++ for (loop = 10; loop < 12; loop++)
++ /*
++ * Before checking for a matching device, check that the
++ * channel is in use, otherwise the device field is
++ * invalid.
++ */
++ if (dma_chan[loop].ref_count)
++ if (device == dma_chan[loop].device) {
++ DPRINTK("Error - dma_open_m2m - already allocated channel\n");
++
++ /*
++ * Unlock the dma channel list.
++ */
++ //spin_unlock_irqrestore(&dma_list_lock, flags);
++ spin_unlock(&dma_list_lock);
++ /*
++ * Fail.
++ */
++ return(-1);
++ }
++
++ /*
++ * Get a DMA channel instance for the given hardware device.
++ */
++ for (loop = 10; loop < 12; loop++)
++ if (!dma_chan[loop].ref_count) {
++ /*
++ * Capture the channel and increment the reference count.
++ */
++ channel = loop;
++ dma_chan[channel].ref_count++;
++ break;
++ }
++
++ /*
++ * Unlock the dma channel list.
++ */
++ //spin_unlock(dma_list_lock);
++ spin_unlock(&dma_list_lock);
++ //spin_unlock_irqrestore(&dma_list_lock, flags);
++
++ /*
++ * See if we got a valid channel.
++ */
++ if (channel < 0)
++ return(-1);
++
++ /*
++ * Point regs to the correct dma channel register base.
++ */
++ M2M_reg_base = dma_chan[channel].reg_base;
++
++ /*
++ * Turn on the clock for the specified DMA channel
++ * TODO: need to use the correct register name for the
++ * power control register.
++ */
++ uiPWRCNT = inl(/*SYSCON_PWRCNT*/EP93XX_SYSCON_CLOCK_CONTROL);
++ switch (channel) {
++ case 10:
++ uiPWRCNT |= SYSCON_PWRCNT_DMA_M2MCH0;
++ break;
++
++ case 11:
++ uiPWRCNT |= SYSCON_PWRCNT_DMA_M2MCH1;
++ break;
++
++ default:
++ return(-1);
++ }
++ outl( uiPWRCNT, /*SYSCON_PWRCNT*/EP93XX_SYSCON_CLOCK_CONTROL);
++
++ DPRINTK("DMA Open - power control: 0x%x \n", inl(SYSCON_PWRCNT) );
++
++ /*
++ * Clear out the control register before any further setup.
++ */
++ outl( 0, M2M_reg_base+M2M_OFFSET_CONTROL );
++
++ /*
++ * Setup the transfer mode and the request source selection within
++ * the DMA M2M channel registers.
++ */
++ switch (device) {
++ case DMA_MEMORY:
++ /*
++ * Clear TM field, set RSS field to 0
++ */
++ uiCONTROL = inl(M2M_reg_base+M2M_OFFSET_CONTROL);
++ uiCONTROL &= ~(CONTROL_M2M_TM_MASK | CONTROL_M2M_RSS_MASK);
++ outl( uiCONTROL, M2M_reg_base+M2M_OFFSET_CONTROL );
++ break;
++
++ case DMA_IDE:
++ /*
++ * Set RSS field to 3, Set NO_HDSK, Set PW field to 1
++ */
++ uiCONTROL = inl(M2M_reg_base+M2M_OFFSET_CONTROL);
++ uiCONTROL &= ~(CONTROL_M2M_RSS_MASK|CONTROL_M2M_PW_MASK);
++ uiCONTROL |= (3<<CONTROL_M2M_RSS_SHIFT) |
++ CONTROL_M2M_NO_HDSK |
++ (2<<CONTROL_M2M_PW_SHIFT);
++
++ uiCONTROL &= ~(CONTROL_M2M_ETDP_MASK);
++ uiCONTROL &= ~(CONTROL_M2M_DACKP);
++ uiCONTROL &= ~(CONTROL_M2M_DREQP_MASK);
++
++ outl( uiCONTROL, M2M_reg_base+M2M_OFFSET_CONTROL );
++ inl(M2M_reg_base+M2M_OFFSET_CONTROL);
++ break;
++
++ case DMARx_SSP:
++ /*
++ * Set RSS field to 1, Set NO_HDSK, Set TM field to 2
++ */
++ uiCONTROL = inl(M2M_reg_base+M2M_OFFSET_CONTROL);
++ uiCONTROL &= ~(CONTROL_M2M_RSS_MASK|CONTROL_M2M_TM_MASK);
++ uiCONTROL |= (1<<CONTROL_M2M_RSS_SHIFT) |
++ CONTROL_M2M_NO_HDSK |
++ (2<<CONTROL_M2M_TM_SHIFT);
++ outl( uiCONTROL, M2M_reg_base+M2M_OFFSET_CONTROL );
++ break;
++
++ case DMATx_SSP:
++ /*
++ * Set RSS field to 2, Set NO_HDSK, Set TM field to 1
++ */
++ uiCONTROL = inl(M2M_reg_base+M2M_OFFSET_CONTROL);
++ uiCONTROL &= ~(CONTROL_M2M_RSS_MASK|CONTROL_M2M_TM_MASK);
++ uiCONTROL |= (2<<CONTROL_M2M_RSS_SHIFT) |
++ CONTROL_M2M_NO_HDSK |
++ (1<<CONTROL_M2M_TM_SHIFT);
++ outl( uiCONTROL, M2M_reg_base+M2M_OFFSET_CONTROL );
++ break;
++
++ case DMATx_EXT_DREQ:
++ /*
++ * Set TM field to 2, set RSS field to 0
++ */
++ uiCONTROL = inl(M2M_reg_base+M2M_OFFSET_CONTROL);
++ uiCONTROL &= ~(CONTROL_M2M_RSS_MASK|CONTROL_M2M_TM_MASK);
++ uiCONTROL |= 1<<CONTROL_M2M_TM_SHIFT;
++ outl( uiCONTROL, M2M_reg_base+M2M_OFFSET_CONTROL );
++ break;
++
++ case DMARx_EXT_DREQ:
++ /*
++ * Set TM field to 2, set RSS field to 0
++ */
++ uiCONTROL = inl(M2M_reg_base+M2M_OFFSET_CONTROL);
++ uiCONTROL &= ~(CONTROL_M2M_RSS_MASK|CONTROL_M2M_TM_MASK);
++ uiCONTROL |= 2<<CONTROL_M2M_TM_SHIFT;
++ outl( uiCONTROL, M2M_reg_base+M2M_OFFSET_CONTROL );
++ break;
++
++ default:
++ return -1;
++ }
++
++ /*
++ * Let's hold on to the value of the Hw device for comparison later.
++ */
++ dma_chan[channel].device = device;
++
++ /*
++ * Success.
++ */
++ return(channel);
++}
++
++/*****************************************************************************
++ *
++ * int dma_config_m2m(ep93xx_dma_t * dma, unsigned int flags_m2m,
++ * dma_callback callback, unsigned int user_data)
++ *
++ * Description: Configure the DMA channel and install a callback function.
++ * This function will have to be called for every transfer
++ *
++ * dma: Pointer to the dma instance data for the M2M channel to
++ * configure.
++ * flags_m2m Flags used to configure an M2M dma channel and determine
++ * if a callback function and user_data information are included
++ * in this call.
++ * callback function pointer which is called near the end of the
++ * dma channel's irq handler.
++ * user_data defined by the calling driver.
++ *
++ ****************************************************************************/
++static int
++dma_config_m2m(ep93xx_dma_t * dma, unsigned int flags_m2m,
++ dma_callback callback, unsigned int user_data)
++{
++ unsigned long flags;
++ unsigned int M2M_reg_base, uiCONTROL;
++
++ /*
++ * Make sure the channel is disabled before configuring the channel.
++ *
++ * TODO: Is this correct?? Making a big change here...
++ */
++ /* if (!dma->pause || (!dma->pause && dma->xfer_enable)) */
++ if (dma->xfer_enable) {
++ /*
++ * DMA channel is not paused, so we can't configure it.
++ */
++ DPRINTK("DMA channel not paused, so can't configure! \n");
++ return(-1);
++ }
++
++ /*
++ * Mask interrupts.
++ */
++ local_irq_save(flags);
++
++ /*
++ * Setup a pointer into the dma channel's register set.
++ */
++ M2M_reg_base = dma->reg_base;
++
++ uiCONTROL = inl(M2M_reg_base + M2M_OFFSET_CONTROL);
++ outl(0, M2M_reg_base + M2M_OFFSET_CONTROL);
++ inl(M2M_reg_base + M2M_OFFSET_CONTROL);
++ outl(uiCONTROL, M2M_reg_base + M2M_OFFSET_CONTROL);
++
++ /*
++ * By default we disable the stall interrupt.
++ */
++ uiCONTROL = inl(M2M_reg_base+M2M_OFFSET_CONTROL);
++ uiCONTROL &= ~CONTROL_M2M_STALLINTEN;
++ outl( uiCONTROL, M2M_reg_base+M2M_OFFSET_CONTROL );
++
++ /*
++ * By default we disable the done interrupt.
++ */
++ uiCONTROL = inl(M2M_reg_base+M2M_OFFSET_CONTROL);
++ uiCONTROL &= ~CONTROL_M2M_DONEINTEN;
++ outl( uiCONTROL, M2M_reg_base+M2M_OFFSET_CONTROL );
++
++ /*
++ * Set up the transfer control fields based on values passed in
++ * the flags_m2m field.
++ */
++ uiCONTROL = inl(M2M_reg_base+M2M_OFFSET_CONTROL);
++
++ if ( flags_m2m & DESTINATION_HOLD )
++ uiCONTROL |= CONTROL_M2M_DAH;
++ else
++ uiCONTROL &= ~CONTROL_M2M_DAH;
++
++ if ( flags_m2m & SOURCE_HOLD )
++ uiCONTROL |= CONTROL_M2M_SAH;
++ else
++ uiCONTROL &= ~CONTROL_M2M_SAH;
++
++ uiCONTROL &= ~CONTROL_M2M_TM_MASK;
++ uiCONTROL |= (((flags_m2m & TRANSFER_MODE_MASK) >> TRANSFER_MODE_SHIFT) <<
++ CONTROL_M2M_TM_SHIFT) & CONTROL_M2M_TM_MASK;
++
++ uiCONTROL &= ~CONTROL_M2M_PWSC_MASK;
++ uiCONTROL |= (((flags_m2m & WAIT_STATES_MASK) >> WAIT_STATES_SHIFT) <<
++ CONTROL_M2M_PWSC_SHIFT) & CONTROL_M2M_PWSC_MASK;
++
++ outl( uiCONTROL, M2M_reg_base+M2M_OFFSET_CONTROL );
++ inl(M2M_reg_base + M2M_OFFSET_CONTROL);
++
++ /*
++ * Save the callback function in the dma instance for this channel.
++ */
++ dma->callback = callback;
++
++ /*
++ * Save the user data in the the dma instance for this channel.
++ */
++ dma->user_data = user_data;
++
++ /*
++ * Put the dma instance into the pause state by setting the
++ * pause bit to true.
++ */
++ dma->pause = TRUE;
++
++ local_irq_restore(flags);
++
++ /*
++ * Success.
++ */
++ return(0);
++}
++
++/*****************************************************************************
++ *
++ * int dma_start(int handle, unsigned int channels, unsigned int * handles)
++ *
++ * Description: Initiate a transfer on up to 3 channels.
++ *
++ * handle: handle for the channel to initiate transfer on.
++ * channels: number of channels to initiate transfers on.
++ * handles: pointer to an array of handles, one for each channel which
++ * is to be started.
++ *
++ ****************************************************************************/
++static int
++dma_start_m2m(int channel, ep93xx_dma_t * dma)
++{
++ unsigned long flags;
++ unsigned int M2M_reg_base = dma->reg_base;
++ unsigned int uiCONTROL;
++
++ /*
++ * Mask interrupts while we get this started.
++ */
++ local_irq_save(flags);
++
++ /*
++ * Make sure the channel has at least one buffer in the queue.
++ */
++ if (dma->new_buffers < 1) {
++ /*
++ * Unmask irqs
++ */
++ local_irq_restore(flags);
++
++ DPRINTK("DMA Start: Channel starved.\n");
++
++ /*
++ * This channel does not have enough buffers queued up,
++ * so enter the pause by starvation state.
++ */
++ dma->xfer_enable = TRUE;
++ dma->pause = TRUE;
++
++ /*
++ * Success.
++ */
++ return(0);
++ }
++
++ /*
++ * Clear any pending interrupts.
++ */
++ outl(0x0, M2M_reg_base+M2M_OFFSET_INTERRUPT);
++
++ /*
++ * Set up one or both buffer descriptors with values from the next one or
++ * two buffers in the queue. By default disable the next frame buffer
++ * interrupt on the channel.
++ */
++ uiCONTROL = inl(M2M_reg_base+M2M_OFFSET_CONTROL);
++ uiCONTROL &= ~CONTROL_M2M_NFBINTEN;
++ outl( uiCONTROL, M2M_reg_base+M2M_OFFSET_CONTROL );
++
++ /*
++ * enable the done interrupt.
++ */
++ uiCONTROL = inl(M2M_reg_base+M2M_OFFSET_CONTROL);
++ uiCONTROL |= CONTROL_M2M_DONEINTEN;
++ outl( uiCONTROL, M2M_reg_base+M2M_OFFSET_CONTROL );
++
++ /*
++ * Update the dma channel instance transfer state.
++ */
++ dma->xfer_enable = TRUE;
++ dma->pause = FALSE;
++
++ /*
++ * Program up the first buffer descriptor with a source and destination
++ * and a byte count.
++ */
++ outl( dma->buffer_queue[dma->current_buffer].source,
++ M2M_reg_base+M2M_OFFSET_SAR_BASE0 );
++
++ outl( dma->buffer_queue[dma->current_buffer].dest,
++ M2M_reg_base+M2M_OFFSET_DAR_BASE0 );
++
++ outl( dma->buffer_queue[dma->current_buffer].size,
++ M2M_reg_base+M2M_OFFSET_BCR0 );
++
++ /*
++ * Decrement the new buffers counter.
++ */
++ dma->new_buffers--;
++
++ /*
++ * Set up the second buffer descriptor with a second buffer if we have
++ * a second buffer.
++ */
++ if (dma->new_buffers) {
++ outl( dma->buffer_queue[(dma->current_buffer + 1) %
++ MAX_EP93XX_DMA_BUFFERS].source,
++ M2M_reg_base+M2M_OFFSET_SAR_BASE1 );
++
++ outl( dma->buffer_queue[(dma->current_buffer + 1) %
++ MAX_EP93XX_DMA_BUFFERS].dest,
++ M2M_reg_base+M2M_OFFSET_DAR_BASE1 );
++
++ outl( dma->buffer_queue[(dma->current_buffer + 1) %
++ MAX_EP93XX_DMA_BUFFERS].size,
++ M2M_reg_base+M2M_OFFSET_BCR1 );
++
++ uiCONTROL = inl(M2M_reg_base+M2M_OFFSET_CONTROL);
++ uiCONTROL |= CONTROL_M2M_NFBINTEN;
++ outl( uiCONTROL, M2M_reg_base+M2M_OFFSET_CONTROL );
++
++ dma->new_buffers--;
++ }
++
++ /*
++ * Now we enable the channel. This initiates the transfer.
++ */
++ uiCONTROL = inl(M2M_reg_base+M2M_OFFSET_CONTROL);
++ uiCONTROL |= CONTROL_M2M_ENABLE;
++ outl( uiCONTROL, M2M_reg_base+M2M_OFFSET_CONTROL );
++ inl(M2M_reg_base + M2M_OFFSET_CONTROL);
++
++ /*
++ * If this is a memory to memory transfer, we need to s/w trigger the
++ * transfer by setting the start bit within the control register.
++ */
++ if (dma->device == DMA_MEMORY) {
++ uiCONTROL = inl(M2M_reg_base+M2M_OFFSET_CONTROL);
++ uiCONTROL |= CONTROL_M2M_START;
++ outl( uiCONTROL, M2M_reg_base+M2M_OFFSET_CONTROL );
++ }
++
++ DPRINTK("DMA - It's been started!!");
++ DPRINTK("CONTROL - 0x%x \n", inl(M2M_reg_base+M2M_OFFSET_CONTROL) );
++ DPRINTK("STATUS - 0x%x \n", inl(M2M_reg_base+M2M_OFFSET_STATUS) );
++ DPRINTK("BCR0 - 0x%x \n", dma->buffer_queue[dma->current_buffer].size);
++ DPRINTK("SAR_BASE0 - 0x%x \n", inl(M2M_reg_base+M2M_OFFSET_SAR_BASE0) );
++ DPRINTK("SAR_CUR0 - 0x%x \n", inl(M2M_reg_base+M2M_OFFSET_SAR_CURRENT0) );
++ DPRINTK("DAR_BASE0 - 0x%x \n", inl(M2M_reg_base+M2M_OFFSET_DAR_BASE0) );
++ DPRINTK("DAR_CUR0 - 0x%x \n", inl(M2M_reg_base+M2M_OFFSET_DAR_CURRENT0) );
++
++ /*
++ * Unmask irqs
++ */
++ local_irq_restore(flags);
++
++ /*
++ * Success.
++ */
++ return(0);
++}
++
++/*****************************************************************************
++ *
++ * DMA interface functions
++ *
++ ****************************************************************************/
++
++/*****************************************************************************
++ *
++ * int dma_init(int handle, unsigned int flags_m2p, unsigned int flags_m2m,
++ * dma_callback callback, unsigned int user_data)
++ *
++ * Description: Configure the DMA channel and install a callback function.
++ *
++ * handle: Handle unique the each instance of the dma interface, used
++ * to verify this call.
++ * flags_m2p Flags used to configure an M2P/P2M dma channel and determine
++ * if a callback function and user_data information are included
++ * in this call. This field should be NULL if handle represents
++ * an M2M channel.
++ * flags_m2m Flags used to configure an M2M dma channel and determine
++ * if a callback function and user_data information are included
++ * in this call. This field should be NULL if handle represents
++ * an M2P/P2M channel.
++ * callback function pointer which is called near the end of the
++ * dma channel's irq handler.
++ * user_data defined by the calling driver.
++ *
++ ****************************************************************************/
++int
++ep93xx_dma_config(int handle, unsigned int flags_m2p, unsigned int flags_m2m,
++ dma_callback callback, unsigned int user_data)
++{
++ int channel;
++ ep93xx_dma_t * dma;
++ unsigned long flags;
++ unsigned int M2P_reg_base, uiCONTROL;
++
++ /*
++ * Get the DMA hw channel # from the handle.
++ */
++ channel = dma_get_channel_from_handle(handle);
++
++ /*
++ * See if this is a valid handle.
++ */
++ if (channel < 0) {
++ printk(KERN_ERR
++ "DMA Config: Invalid dma handle.\n");
++ return(-EINVAL);
++ }
++
++ DPRINTK("DMA Config \n");
++
++ dma = &dma_chan[channel];
++
++ local_irq_save(flags);
++
++ /*
++ * Check if the channel is currently transferring.
++ */
++ if (dma->xfer_enable) {
++ local_irq_restore(flags);
++ return(-EINVAL);
++ }
++
++ /*
++ * Check if this is an m2m function.
++ */
++ if (channel >= 10) {
++ local_irq_restore(flags);
++
++ /*
++ * Call another function to handle m2m config.
++ */
++ return(dma_config_m2m(dma, flags_m2m, callback, user_data));
++ }
++
++ /*
++ * Setup a pointer into the dma channel's register set.
++ */
++ M2P_reg_base = dma->reg_base;
++
++ /*
++ * By default we enable the stall interrupt.
++ */
++ uiCONTROL = inl(M2P_reg_base+M2P_OFFSET_CONTROL);
++ uiCONTROL |= CONTROL_M2P_STALLINTEN;
++ outl( uiCONTROL, M2P_reg_base+M2P_OFFSET_CONTROL );
++
++ /*
++ * Configure the channel for an error from the peripheral.
++ */
++ uiCONTROL = inl(M2P_reg_base+M2P_OFFSET_CONTROL);
++ if ( flags_m2p && CHANNEL_ERROR_INT_ENABLE )
++ uiCONTROL |= CONTROL_M2P_CHERRORINTEN;
++ else
++ uiCONTROL &= ~CONTROL_M2P_CHERRORINTEN;
++ outl( uiCONTROL, M2P_reg_base+M2P_OFFSET_CONTROL );
++
++ uiCONTROL = inl(M2P_reg_base+M2P_OFFSET_CONTROL);
++ if ( flags_m2p && CHANNEL_ABORT )
++ uiCONTROL |= CONTROL_M2P_ABRT;
++ else
++ uiCONTROL &= ~CONTROL_M2P_ABRT;
++ outl( uiCONTROL, M2P_reg_base+M2P_OFFSET_CONTROL );
++
++ uiCONTROL = inl(M2P_reg_base+M2P_OFFSET_CONTROL);
++ if ( flags_m2p && IGNORE_CHANNEL_ERROR )
++ uiCONTROL |= CONTROL_M2P_ICE;
++ else
++ uiCONTROL &= ~CONTROL_M2P_ICE;
++ outl( uiCONTROL, M2P_reg_base+M2P_OFFSET_CONTROL );
++
++ /*
++ * Save the callback function in the dma instance for this channel.
++ */
++ dma->callback = callback;
++
++ /*
++ * Save the user data in the the dma instance for this channel.
++ */
++ dma->user_data = user_data;
++
++ /*
++ * Put the dma instance into the pause state by setting the
++ * pause bit to true.
++ */
++ dma->pause = TRUE;
++
++ local_irq_restore(flags);
++
++ /*
++ * Success.
++ */
++ return(0);
++}
++
++/*****************************************************************************
++ *
++ * int dma_start(int handle, unsigned int channels, unsigned int * handles)
++ *
++ * Description: Initiate a transfer on up to 3 channels.
++ *
++ * handle: handle for the channel to initiate transfer on.
++ * channels: number of channels to initiate transfers on.
++ * handles: pointer to an array of handles, one for each channel which
++ * is to be started.
++ *
++ ****************************************************************************/
++int
++ep93xx_dma_start(int handle, unsigned int channels, unsigned int * handles)
++{
++ ep93xx_dma_t * dma_pointers[3];
++ unsigned int M2P_reg_bases[3];
++ unsigned int loop, uiCONTROL;
++ unsigned long flags;
++ int channel;
++
++ /*
++ * Get the DMA hw channel # from the handle.
++ */
++ channel = dma_get_channel_from_handle(handle);
++
++ /*
++ * See if this is a valid handle.
++ */
++ if (channel < 0) {
++ printk(KERN_ERR "DMA Start: Invalid dma handle.\n");
++ return(-EINVAL);
++ }
++
++ if (channels < 1) {
++ printk(KERN_ERR "DMA Start: Invalid parameter.\n");
++ return(-EINVAL);
++ }
++
++ DPRINTK("DMA Start \n");
++
++ /*
++ * Mask off registers.
++ */
++ local_irq_save(flags);
++
++ /*
++ * Check if this is a start multiple.
++ */
++ if (channels > 1) {
++ DPRINTK("DMA ERROR: Start, multiple start not supported yet \n");
++ return(-1);
++ } else {
++ /*
++ * Check if this channel is already transferring.
++ */
++ if (dma_chan[channel].xfer_enable && !dma_chan[channel].pause) {
++ printk(KERN_ERR
++ "DMA Start: Invalid command for channel %d.\n", channel);
++
++ /*
++ * Unmask irqs
++ */
++ local_irq_restore(flags);
++
++ /*
++ * This channel is already transferring, so return an error.
++ */
++ return(-EINVAL);
++ }
++
++ /*
++ * If this is an M2M channel, call a different function.
++ */
++ if (channel >= 10) {
++ /*
++ * Unmask irqs
++ */
++ local_irq_restore(flags);
++
++ /*
++ * Call the m2m start function. Only start one channel.
++ */
++ return(dma_start_m2m(channel, &dma_chan[channel]));
++ }
++
++ /*
++ * Make sure the channel has at least one buffer in the queue.
++ */
++ if (dma_chan[channel].new_buffers < 1) {
++ DPRINTK("DMA Start: Channel starved.\n");
++
++ /*
++ * This channel does not have enough buffers queued up,
++ * so enter the pause by starvation state.
++ */
++ dma_chan[channel].xfer_enable = TRUE;
++ dma_chan[channel].pause = TRUE;
++
++ /*
++ * Unmask irqs
++ */
++ local_irq_restore(flags);
++
++ /*
++ * Success.
++ */
++ return(0);
++ }
++
++ /*
++ * Set up a dma instance pointer for this dma channel.
++ */
++ dma_pointers[0] = &dma_chan[channel];
++
++ /*
++ * Set up a pointer to the register set for this channel.
++ */
++ M2P_reg_bases[0] = dma_pointers[0]->reg_base;
++ }
++
++ /*
++ * Setup both MAXCNT registers with values from the next two buffers
++ * in the queue, and enable the next frame buffer interrupt on the channel.
++ */
++ for (loop = 0; loop < channels; loop++) {
++ /*
++ * Check if we need to restore a paused transfer.
++ */
++ if (dma_pointers[loop]->pause_buf.buf_id != -1)
++ outl( dma_pointers[loop]->pause_buf.size,
++ M2P_reg_bases[loop]+M2P_OFFSET_MAXCNT0 );
++ else
++ outl( dma_pointers[loop]->buffer_queue[dma_pointers[loop]->current_buffer].size,
++ M2P_reg_bases[loop]+M2P_OFFSET_MAXCNT0 );
++ }
++
++ for (loop = 0; loop < channels; loop++) {
++ /*
++ * Enable the specified dma channels.
++ */
++ uiCONTROL = inl(M2P_reg_bases[loop]+M2P_OFFSET_CONTROL);
++ uiCONTROL |= CONTROL_M2P_ENABLE;
++ outl( uiCONTROL, M2P_reg_bases[loop]+M2P_OFFSET_CONTROL );
++
++ /*
++ * Update the dma channel instance transfer state.
++ */
++ dma_pointers[loop]->xfer_enable = TRUE;
++ dma_pointers[loop]->pause = FALSE;
++ }
++
++ /*
++ * Program up the BASE0 registers for all specified channels, this
++ * will initiate transfers on all specified channels.
++ */
++ for (loop = 0; loop < channels; loop++)
++ /*
++ * Check if we need to restore a paused transfer.
++ */
++ if (dma_pointers[loop]->pause_buf.buf_id != -1) {
++ outl( dma_pointers[loop]->pause_buf.source,
++ M2P_reg_bases[loop]+M2P_OFFSET_BASE0 );
++
++ /*
++ * Set the pause buffer to NULL
++ */
++ dma_pointers[loop]->pause_buf.buf_id = -1;
++ dma_pointers[loop]->pause_buf.size = 0;
++ } else if(dma_pointers[loop]->new_buffers){
++ outl( dma_pointers[loop]->buffer_queue[
++ dma_pointers[loop]->current_buffer].source,
++ M2P_reg_bases[loop]+M2P_OFFSET_BASE0 );
++ dma_pointers[loop]->new_buffers--;
++
++ }
++
++ /*
++ * Before restoring irqs setup the second MAXCNT/BASE
++ * register with a second buffer.
++ */
++ for (loop = 0; loop < channels; loop++)
++ if (dma_pointers[loop]->new_buffers) {
++ /*
++ * By default we enable the next frame buffer interrupt.
++ */
++ uiCONTROL = inl(M2P_reg_bases[loop]+M2P_OFFSET_CONTROL);
++ uiCONTROL |= CONTROL_M2P_NFBINTEN;
++ outl( uiCONTROL, M2P_reg_bases[loop]+M2P_OFFSET_CONTROL );
++
++ outl( dma_pointers[loop]->buffer_queue[
++ (dma_pointers[loop]->current_buffer + 1) %
++ MAX_EP93XX_DMA_BUFFERS].size,
++ M2P_reg_bases[loop]+M2P_OFFSET_MAXCNT1 );
++
++ outl( dma_pointers[loop]->buffer_queue[
++ (dma_pointers[loop]->current_buffer + 1) %
++ MAX_EP93XX_DMA_BUFFERS].source,
++ M2P_reg_bases[loop]+M2P_OFFSET_BASE1 );
++ dma_pointers[loop]->new_buffers--;
++ }
++
++ /*
++ DPRINTK("DMA - It's been started!!");
++ DPRINTK("STATUS - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_STATUS) );
++ DPRINTK("CONTROL - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_CONTROL) );
++ DPRINTK("REMAIN - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_REMAIN) );
++ DPRINTK("PPALLOC - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_PPALLOC) );
++ DPRINTK("BASE0 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_BASE0) );
++ DPRINTK("MAXCNT0 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_MAXCNT0) );
++ DPRINTK("CURRENT0 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_CURRENT0) );
++ DPRINTK("BASE1 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_BASE1) );
++ DPRINTK("MAXCNT1 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_MAXCNT1) );
++ DPRINTK("CURRENT1 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_CURRENT1) );
++
++ DPRINTK("Pause - %d \n", dma_pointers[0]->pause);
++ DPRINTK("xfer_enable - %d \n", dma_pointers[0]->xfer_enable);
++ DPRINTK("total bytes - 0x%x \n", dma_pointers[0]->total_bytes);
++ DPRINTK("total buffer - %d \n", dma_pointers[0]->total_buffers);
++ DPRINTK("new buffers - %d \n", dma_pointers[0]->new_buffers);
++ DPRINTK("current buffer - %d \n", dma_pointers[0]->current_buffer);
++ DPRINTK("last buffer - %d \n", dma_pointers[0]->last_buffer);
++ DPRINTK("used buffers - %d \n", dma_pointers[0]->used_buffers);
++ */
++ /*
++ * Unmask irqs
++ */
++ local_irq_restore(flags);
++
++ /*
++ * Success.
++ */
++ return(0);
++}
++
++/*****************************************************************************
++ *
++ * int ep93xx_dma_add_buffer(int handle, unsigned int * address,
++ * unsigned int size, unsigned int last)
++ *
++ * Description: Add a buffer entry to the DMA buffer queue.
++ *
++ * handle: handle for the channel to add this buffer to.
++ * address: Pointer to an integer which is the start address of the
++ * buffer which is to be added to the queue.
++ * size: size of the buffer in bytes.
++ * last: 1 if this is the last buffer in this stream, 0 otherwise.
++ *
++ ****************************************************************************/
++int
++ep93xx_dma_add_buffer(int handle, unsigned int source, unsigned int dest,
++ unsigned int size, unsigned int last,
++ unsigned int buf_id)
++{
++ unsigned long flags;
++ ep93xx_dma_t * dma;
++ int channel;
++#if 0
++ static int peak_total_buffers=0;
++#endif
++ /*
++ * Get the DMA hw channel # from the handle.
++ */
++ channel = dma_get_channel_from_handle(handle);
++
++ /*
++ * See if this is a valid handle.
++ */
++ if (channel < 0) {
++ printk(KERN_ERR
++ "DMA Add Buffer: Invalid dma handle.\n");
++ return(-EINVAL);
++ }
++
++ /*
++ * Get a pointer to the dma instance.
++ */
++ dma = &dma_chan[channel];
++
++#if 0
++ if( dma->total_buffers > peak_total_buffers )
++ {
++ peak_total_buffers=dma->total_buffers;
++ printk("peak_total_buffers=%d\n", peak_total_buffers );
++ }
++#endif
++ /*
++ * Mask interrupts and hold on to the original state.
++ */
++ local_irq_save(flags);
++
++ /*
++ * If the buffer queue is full, last_buffer is the same as current_buffer and
++ * we're not tranfering, or last_buffer is pointing to a used buffer, then exit.
++ * TODO: do I need to do any more checks?
++ */
++ if (dma->total_buffers >= MAX_EP93XX_DMA_BUFFERS)
++ {
++ DPRINTK("too many dma buffers: MAX_EP93XX_DMA_BUFFERS set to low ?\n");
++ /*
++ * Restore the state of the irqs
++ */
++ local_irq_restore(flags);
++
++ /*
++ * Fail.
++ */
++ return(-1);
++ }
++
++ /*
++ * Add this buffer to the queue
++ */
++ dma->buffer_queue[dma->last_buffer].source = source;
++ dma->buffer_queue[dma->last_buffer].dest = dest;
++ dma->buffer_queue[dma->last_buffer].size = size;
++ dma->buffer_queue[dma->last_buffer].last = last;
++ dma->buffer_queue[dma->last_buffer].buf_id = buf_id;
++
++ /*
++ * Reset the used field of the buffer structure.
++ */
++ dma->buffer_queue[dma->last_buffer].used = FALSE;
++
++ /*
++ * Increment the End Item Pointer.
++ */
++ dma->last_buffer = (dma->last_buffer + 1) % MAX_EP93XX_DMA_BUFFERS;
++
++ /*
++ * Increment the new buffers counter and the total buffers counter
++ */
++ dma->new_buffers++;
++ dma->total_buffers++;
++
++ /*
++ * restore the interrupt state.
++ */
++ local_irq_restore(flags);
++
++ /*
++ * Check if the channel was starved into a stopped state.
++ */
++ if (dma->pause && dma->xfer_enable) {
++ if (dma->new_buffers >= 1) {
++ DPRINTK("DMA - calling start from add after starve. \n");
++
++ /*
++ * The channel was starved into a stopped state, and we've got
++ * 2 new buffers, so start tranferring again.
++ */
++ ep93xx_dma_start(handle, 1, 0);
++ }
++ }
++
++ /*
++ * Success.
++ */
++ return(0);
++}
++
++/*****************************************************************************
++ *
++ * int ep93xx_dma_remove_buffer(int handle, unsigned int * address,
++ * unsigned int * size)
++ *
++ * Description: Remove a buffer entry from the DMA buffer queue. If
++ * buffer was removed successfully, return 0, otherwise
++ * return -1.
++ *
++ * handle: handle for the channel to remove a buffer from.
++ * address: Pointer to an integer which is filled in with the start
++ * address of the removed buffer.
++ * size: Pointer to an integer which is filled in with the size in
++ * bytes of the removed buffer.
++ *
++ ****************************************************************************/
++int
++ep93xx_dma_remove_buffer(int handle, unsigned int * buf_id)
++{
++ unsigned int test;
++ unsigned int loop;
++ int return_val = -1;
++ unsigned long flags;
++ ep93xx_dma_t *dma;
++ int channel;
++
++ /*
++ * Get the DMA hw channel # from the handle.
++ */
++ channel = dma_get_channel_from_handle(handle);
++
++ /*
++ * See if this is a valid handle.
++ */
++ if (channel < 0) {
++ printk(KERN_ERR
++ "DMA Remove Buffer: Invalid dma handle.\n");
++ return(-EINVAL);
++ }
++
++ dma = &dma_chan[channel];
++
++ /*
++ * Mask interrupts and hold on to the original state.
++ */
++ local_irq_save(flags);
++
++ /*
++ * Make sure there are used buffers to be returned.
++ */
++ if (dma->used_buffers) {
++ test = dma->last_buffer;
++
++ for (loop = 0; loop < MAX_EP93XX_DMA_BUFFERS; loop++) {
++ if (dma->buffer_queue[test].used && (dma->buffer_queue[test].buf_id != -1)) {
++ /*DPRINTK("buffer %d used \n", test); */
++
++ /*
++ * This is a used buffer, fill in the buf_id pointer
++ * with the buf_id for this buffer.
++ */
++ *buf_id = dma->buffer_queue[test].buf_id;
++
++ /*
++ * Reset this buffer structure
++ */
++ dma->buffer_queue[test].buf_id = -1;
++
++ /*
++ * Decrement the used buffer counter, and the total buffer counter.
++ */
++ dma->used_buffers--;
++ dma->total_buffers--;
++
++ /*
++ * Successful removal of a buffer, so set the return
++ * value to 0, then exit this loop.
++ */
++ return_val = 0;
++ break;
++ }
++
++ /*
++ * This buffer isn't used, let's see if the next one is.
++ */
++ test = (test + 1) % MAX_EP93XX_DMA_BUFFERS;
++ }
++ }
++
++ /*
++ * Restore interrupts.
++ */
++ local_irq_restore(flags);
++
++ /*
++ * Success.
++ */
++ return(return_val);
++}
++
++/*****************************************************************************
++ *
++ * int ep93xx_dma_pause(int handle, unsigned int channels,
++ * unsigned int * handles)
++ *
++ * Description: Disable any ongoing transfer for the given channel, retaining
++ * the state of the current buffer transaction so that upon
++ * resume, the dma will continue where it left off.
++ *
++ * handle: Handle for the channel to be paused. If this is a pause for
++ * for multiple channels, handle is a valid handle for one of
++ * the channels to be paused.
++ * channels: number of channel to pause transfers on.
++ * handles: Pointer to an array of handles, one for each channel which
++ * to be paused. If this pause is intended only for one
++ * channel, this field should be set to NULL.
++ *
++ ****************************************************************************/
++int
++ep93xx_dma_pause(int handle, unsigned int channels, unsigned int * handles)
++{
++ unsigned long flags;
++ ep93xx_dma_t * dma;
++ int channel;
++
++ DPRINTK("ep93xx_dma_pause \n");
++
++ /*
++ * Mask interrupts and hold on to the original state.
++ */
++ local_irq_save(flags);
++
++ /*
++ * Get the DMA hw channel # from the handle.
++ */
++ channel = dma_get_channel_from_handle(handle);
++
++ /*
++ * See if this is a valid handle.
++ */
++ if (channel < 0) {
++ /*
++ * restore interrupts.
++ */
++ local_irq_restore(flags);
++
++ printk(KERN_ERR
++ "DMA Pause: Invalid dma handle.\n");
++
++ /*
++ * Fail.
++ */
++ return(-EINVAL);
++ }
++
++ DPRINTK("DMA %d: pause \n", channel);
++
++ /*
++ * Set up a pointer to the dma instance data.
++ */
++ dma = &dma_chan[channel];
++
++ /*
++ * Check if we're already paused.
++ */
++ if (dma->pause) {
++ /*
++ * We're paused, but are we stopped?
++ */
++ if (dma->xfer_enable)
++ /*
++ * Put the channel in the stopped state.
++ */
++ dma->xfer_enable = FALSE;
++
++ DPRINTK("DMA Pause - already paused.");
++ } else {
++ /*
++ * Put the channel into the stopped state.
++ */
++ dma->xfer_enable = FALSE;
++ dma->pause = TRUE;
++ }
++
++ /*
++ * restore interrupts.
++ */
++ local_irq_restore(flags);
++
++ /*
++ * Already paused, so exit.
++ */
++ return(0);
++}
++
++/*****************************************************************************
++ *
++ * void ep93xx_dma_flush(int handle)
++ *
++ * Description: Flushes all queued buffers and transfers in progress
++ * for the given channel. Return the buffer entries
++ * to the calling function.
++ *
++ * handle: handle for the channel for which the flush is intended.
++ *
++ ****************************************************************************/
++int
++ep93xx_dma_flush(int handle)
++{
++ unsigned int loop;
++ unsigned long flags;
++ ep93xx_dma_t * dma;
++ int channel;
++ unsigned int M2P_reg_base,uiCONTROL;
++
++ /*
++ * Get the DMA hw channel # from the handle.
++ */
++ channel = dma_get_channel_from_handle(handle);
++
++ /*
++ * See if this is a valid handle.
++ */
++ if (channel < 0) {
++ printk(KERN_ERR "DMA Flush: Invalid dma handle.\n");
++ return(-EINVAL);
++ }
++
++ DPRINTK("DMA %d: flush \n", channel);
++
++ /*
++ * Set up a pointer to the dma instance data for this channel
++ */
++ dma = &dma_chan[channel];
++
++ /*
++ * Mask interrupts and hold on to the original state.
++ */
++ local_irq_save(flags);
++
++ /*
++ * Disable the dma channel
++ */
++ if (channel < 10) {
++ /*
++ * M2P channel
++ */
++ uiCONTROL = inl(dma->reg_base+M2P_OFFSET_CONTROL);
++ uiCONTROL &= ~CONTROL_M2P_ENABLE;
++ outl( uiCONTROL, dma->reg_base+M2P_OFFSET_CONTROL );
++ } else {
++ /*
++ * M2M channel
++ */
++ uiCONTROL = inl(dma->reg_base+M2M_OFFSET_CONTROL);
++ uiCONTROL &= ~CONTROL_M2M_ENABLE;
++ outl( uiCONTROL, dma->reg_base+M2M_OFFSET_CONTROL );
++ }
++
++ for (loop = 0; loop < MAX_EP93XX_DMA_BUFFERS; loop++)
++ {
++ dma->buffer_queue[loop].buf_id = -1;
++ dma->buffer_queue[loop].last = 0;
++ }
++
++ /*
++ * Set the Current and Last item to zero.
++ */
++ dma->current_buffer = 0;
++ dma->last_buffer = 0;
++
++ /*
++ * Reset the Buffer counters
++ */
++ dma->used_buffers = 0;
++ dma->new_buffers = 0;
++ dma->total_buffers = 0;
++
++ /*
++ * reset the Total bytes counter.
++ */
++ dma->total_bytes = 0;
++
++ /*
++ * Reset the paused buffer.
++ */
++ dma->pause_buf.last = 0;
++ dma->pause_buf.buf_id = -1;
++
++ M2P_reg_base = dma_chan[channel].reg_base;
++
++ /*
++ * restore interrupts.
++ */
++ local_irq_restore(flags);
++
++ /*
++ * Success.
++ */
++ return(0);
++}
++
++/*****************************************************************************
++ *
++ * int ep93xx_dma_queue_full(int handle)
++ *
++ * Description: Query to determine if the DMA queue of buffers for
++ * a given channel is full.
++ * 0 = queue is full
++ * 1 = queue is not full
++ *
++ * handle: handle for the channel to query.
++ *
++ ****************************************************************************/
++int
++ep93xx_dma_queue_full(int handle)
++{
++ int list_full = 0;
++ unsigned long flags;
++ int channel;
++
++ /*
++ * Get the DMA hw channel # from the handle.
++ */
++ channel = dma_get_channel_from_handle(handle);
++
++ /*
++ * See if this is a valid handle.
++ */
++ if (channel < 0) {
++ printk(KERN_ERR "DMA Queue Full: Invalid dma handle.\n");
++ return(-EINVAL);
++ }
++
++ DPRINTK("DMA %d: queue full \n", channel);
++
++ /*
++ * Mask interrupts and hold on to the original state.
++ */
++ local_irq_save(flags);
++
++ /*
++ * If the last item is equal to the used item then
++ * the queue is full.
++ */
++ if (dma_chan[channel].total_buffers < MAX_EP93XX_DMA_BUFFERS)
++ list_full = FALSE;
++ else
++ list_full = TRUE;
++
++ /*
++ * restore interrupts.
++ */
++ local_irq_restore(flags);
++
++ return(list_full);
++}
++
++/*****************************************************************************
++ *
++ * int ep93xx_dma_get_position()
++ *
++ * Description: Takes two integer pointers and fills them with the start
++ * and current address of the buffer currently transferring
++ * on the specified DMA channel.
++ *
++ * handle handle for the channel to query.
++ * *buf_id buffer id for the current buffer transferring on the
++ * dma channel.
++ * *total total bytes transferred on the channel. Only counts
++ * whole buffers transferred.
++ * *current_frac number of bytes transferred so far in the current buffer.
++ ****************************************************************************/
++int
++ep93xx_dma_get_position(int handle, unsigned int * buf_id,
++ unsigned int * total, unsigned int * current_frac )
++{
++ int channel;
++ ep93xx_dma_t * dma;
++ unsigned int buf_id1, total1, current_frac1, buf_id2, total2;
++ unsigned int Status, NextBuffer, StateIsBufNext, M2P_reg_base=0;
++ unsigned int pause1, pause2;
++
++ /*
++ * Get the DMA hw channel # from the handle. See if this is a
++ * valid handle.
++ */
++ channel = dma_get_channel_from_handle(handle);
++ if (channel < 0) {
++ printk(KERN_ERR "DMA Get Position: Invalid dma handle.\n");
++ return(-EINVAL);
++ }
++
++ dma = &dma_chan[channel];
++
++ /*
++ * If DMA moves to a new buffer in the middle of us grabbing the
++ * buffer info, then do it over again.
++ */
++ do{
++ buf_id1 = dma->buffer_queue[dma->current_buffer].buf_id;
++ total1 = dma->total_bytes;
++ pause1 = dma->pause;
++
++ if (channel < 10) {
++ // M2P
++ M2P_reg_base = dma->reg_base;
++
++ Status = inl(M2P_reg_base+M2P_OFFSET_STATUS);
++
++ NextBuffer = ((Status & STATUS_M2P_NEXTBUFFER) != 0);
++
++ StateIsBufNext = ((Status & STATUS_M2P_CURRENT_MASK) ==
++ STATUS_M2P_DMA_BUF_NEXT);
++
++ if( NextBuffer ^ StateIsBufNext )
++ current_frac1 = inl(M2P_reg_base+M2P_OFFSET_CURRENT1) -
++ inl(M2P_reg_base+M2P_OFFSET_BASE1);
++ else
++ current_frac1 = inl(M2P_reg_base+M2P_OFFSET_CURRENT0) -
++ inl(M2P_reg_base+M2P_OFFSET_BASE0);
++
++ } else {
++ // M2M - TODO implement this for M2M
++ current_frac1 = 0;
++ }
++
++ buf_id2 = dma->buffer_queue[dma->current_buffer].buf_id;
++ total2 = dma->total_bytes;
++ pause2 = dma->pause;
++
++ } while ( (buf_id1 != buf_id2) || (total1 != total2) || (pause1 != pause2) );
++
++ if (pause1)
++ current_frac1 = 0;
++
++ if (buf_id)
++ *buf_id = buf_id1;
++
++ if (total)
++ *total = total1;
++
++ if (current_frac)
++ *current_frac = current_frac1;
++
++// DPRINTK("DMA buf_id %d, total %d, frac %d\n", buf_id1, total1, current_frac1);
++
++ /*
++ * Success.
++ */
++ return(0);
++}
++
++/*****************************************************************************
++ *
++ * int ep93xx_dma_get_total(int handle)
++ *
++ * Description: Returns the total number of bytes transferred on the
++ * specified channel since the channel was requested.
++ *
++ * handle: handle for the channel to query.
++ *
++ ****************************************************************************/
++int
++ep93xx_dma_get_total(int handle)
++{
++ int channel;
++
++ /*
++ * Get the DMA hw channel # from the handle.
++ */
++ channel = dma_get_channel_from_handle(handle);
++
++ /*
++ * See if this is a valid handle.
++ */
++ if (channel < 0) {
++ printk(KERN_ERR "DMA Get Total: Invalid dma handle.\n");
++ return(-EINVAL);
++ }
++
++ DPRINTK("DMA %d: total: %d \n", channel, dma_chan[channel].total_bytes);
++
++ /*
++ * Return the total number of bytes transferred on this channel since
++ * it was requested.
++ */
++ return(dma_chan[channel].total_bytes);
++}
++
++/*****************************************************************************
++ *
++ * int ep93xx_dma_is_done(int handle)
++ *
++ * Description: Determines if the specified channel is done
++ * transferring the requested data.
++ *
++ * handle: handle for the channel to query.
++ *
++ ****************************************************************************/
++int
++ep93xx_dma_is_done(int handle)
++{
++ ep93xx_dma_t *dma;
++ int channel;
++
++ /*
++ * Get the DMA hw channel # from the handle.
++ */
++ channel = dma_get_channel_from_handle(handle);
++
++ /*
++ * See if this is a valid handle.
++ */
++ if (channel < 0) {
++ printk(KERN_ERR "ep93xx_dma_is_done: Invalid dma handle.\n");
++ return(-EINVAL);
++ }
++
++ /*
++ * Get a pointer to the DMA channel state structure.
++ */
++ dma = &dma_chan[channel];
++
++ /*
++ * See if there are any buffers remaining to be provided to the HW.
++ */
++ if (dma->new_buffers)
++ return 0;
++
++ /*
++ * See if this is a M2P or M2M channel.
++ */
++ if (channel < 10) {
++ /*
++ * If the bytes remaining register of the HW is not zero, then
++ * there is more work to be done.
++ */
++ if (inl(dma->reg_base + M2P_OFFSET_REMAIN) != 0)
++ return 0;
++ } else {
++ /*
++ * If either byte count register in the HW is not zero, then there
++ * is more work to be done.
++ */
++ if ((inl(dma->reg_base + M2M_OFFSET_BCR0) != 0) ||
++ (inl(dma->reg_base + M2M_OFFSET_BCR1) != 0))
++ return 0;
++ }
++
++ /*
++ * The DMA is complete.
++ */
++ return 1;
++}
++
++/*****************************************************************************
++ * ep93xx_dma_request
++ *
++ * Description: This function will allocate a DMA channel for a particular
++ * hardware peripheral. Before initiating a transfer on the allocated
++ * channel, the channel must be set up and buffers have to queued up.
++ *
++ * handle: pointer to an integer which is filled in with a unique
++ * handle for this instance of the dma interface.
++ * device_id string with the device name, primarily used by /proc.
++ * device hardware device ID for which the requested dma channel will
++ * transfer data.
++ *
++ ****************************************************************************/
++int
++ep93xx_dma_request(int * handle, const char *device_id,
++ ep93xx_dma_dev_t device)
++{
++ ep93xx_dma_t *dma = NULL;
++ int channel;
++ unsigned int error = 0;
++ unsigned int loop;
++ unsigned int M2P_reg_base;
++
++ /*
++ * Check if the device requesting a DMA channel is a valid device.
++ */
++ if ((device >= UNDEF_DMA) || (device < 0))
++ return(-ENODEV);
++
++ /*
++ * We've got a valid hardware device requesting a DMA channel.
++ * Now check if the device should open an M2P or M2M channel
++ */
++ if (device < 20)
++ channel = dma_open_m2p(device);
++ else
++ channel = dma_open_m2m(device);
++
++ /*
++ * Check if we successfully opened a DMA channel
++ */
++ if (channel < 0) {
++ printk(KERN_ERR "%s: Could not open dma channel for this device.\n",
++ device_id);
++ return(-EBUSY);
++ }
++
++ dma = &dma_chan[channel];
++
++ if(dma->terminated==1) {
++ free_irq(dma->irq, (void *) dma);
++ dma->terminated=0;
++ }
++
++ /*
++ * Request the appropriate IRQ for the specified channel
++ */
++ if (channel < 10)
++ error = request_irq(dma->irq, dma_m2p_irq_handler,
++ IRQF_DISABLED, device_id, (void *) dma);
++ else
++ error = request_irq(dma->irq, &dma_m2m_irq_handler,
++ IRQF_DISABLED, device_id, (void *) dma);
++
++ /*
++ * Check for any errors during the irq request
++ */
++ if (error) {
++ printk(KERN_ERR "%s: unable to request IRQ %d for DMA channel\n",
++ device_id, dma->irq);
++ return(error);
++ }
++
++ /*
++ * Generate a valid handle and exit.
++ *
++ * Increment the last valid handle.
++ * Check for wraparound (unlikely, but we like to be complete).
++ */
++ dma->last_valid_handle++;
++
++ if ( (dma->last_valid_handle & DMA_HANDLE_SPECIFIER_MASK) !=
++ (channel << 28) )
++ dma->last_valid_handle = (channel << 28) + 1;
++
++ /*
++ * Fill in the handle pointer with a valid handle for
++ * this dma channel instance.
++ */
++ *handle = dma->last_valid_handle;
++
++ DPRINTK("Handle for channel %d: 0x%x\n", channel, *handle);
++
++ /*
++ * Save the device ID and device name.
++ */
++ dma->device = device;
++ dma->device_id = device_id;
++
++ /*
++ * Init all fields within the dma instance.
++ */
++ for (loop = 0; loop < MAX_EP93XX_DMA_BUFFERS; loop++)
++ dma->buffer_queue[loop].buf_id = -1;
++
++ /*
++ * Initialize all buffer queue variables.
++ */
++ dma->current_buffer = 0;
++ dma->last_buffer = 0;
++
++ dma->new_buffers = 0;
++ dma->used_buffers = 0;
++ dma->total_buffers = 0;
++
++ /*
++ * Initialize the total bytes variable
++ */
++ dma->total_bytes = 0;
++
++ /*
++ * Initialize the transfer and pause state variables to 0.
++ */
++ dma->xfer_enable = 0;
++
++ dma->pause = 0;
++
++ /*
++ * Initialize the pause buffer structure.
++ */
++ dma->pause_buf.buf_id = -1;
++
++ /*
++ * Initialize the callback function and user data fields.
++ */
++ dma->callback = NULL;
++
++ /*
++ * User data used as a parameter for the Callback function. The user
++ * sets up the data and sends it with the callback function.
++ */
++ dma->user_data = 0;
++
++ M2P_reg_base = dma_chan[channel].reg_base;
++
++ /*
++ * Debugging message.
++ */
++ DPRINTK("Successfully requested dma channel %d\n", channel);
++ DPRINTK("STATUS - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_STATUS) );
++ DPRINTK("CONTROL - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_CONTROL) );
++ DPRINTK("REMAIN - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_REMAIN) );
++ DPRINTK("PPALLOC - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_PPALLOC) );
++ DPRINTK("BASE0 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_BASE0) );
++ DPRINTK("MAXCNT0 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_MAXCNT0) );
++ DPRINTK("CURRENT0 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_CURRENT0) );
++ DPRINTK("BASE1 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_BASE1) );
++ DPRINTK("MAXCNT1 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_MAXCNT1) );
++ DPRINTK("CURRENT1 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_CURRENT1) );
++
++ DPRINTK("Buffer source size last used \n");
++ for (loop = 0; loop < 5; loop ++)
++ DPRINTK("%d 0x%x 0x%x %d %d \n",
++ loop, dma->buffer_queue[loop].source, dma->buffer_queue[loop].size,
++ dma->buffer_queue[loop].last, dma->buffer_queue[loop].used);
++ DPRINTK("pause 0x%x 0x%x %d %d \n",
++ dma->pause_buf.source, dma->pause_buf.size,
++ dma->pause_buf.last, dma->pause_buf.used);
++
++ DPRINTK("Pause - %d \n", dma->pause);
++ DPRINTK("xfer_enable - %d \n", dma->xfer_enable);
++ DPRINTK("total bytes - 0x%x \n", dma->total_bytes);
++ DPRINTK("total buffer - %d \n", dma->total_buffers);
++ DPRINTK("new buffers - %d \n", dma->new_buffers);
++ DPRINTK("current buffer - %d \n", dma->current_buffer);
++ DPRINTK("last buffer - %d \n", dma->last_buffer);
++ DPRINTK("used buffers - %d \n", dma->used_buffers);
++
++ DPRINTK("CURRENT1 - 0x%x \n", inl(M2P_reg_base+M2P_OFFSET_CURRENT1) );
++ DPRINTK("VIC0IRQSTATUS - 0x%x, VIC0INTENABLE - 0x%x \n",
++ *(unsigned int *)(VIC0IRQSTATUS),
++ *(unsigned int *)(VIC0INTENABLE));
++
++ /*
++ * Success.
++ */
++ return(0);
++}
++
++/*****************************************************************************
++ *
++ * ep93xx_dma_free
++ *
++ * Description: This function will free the dma channel for future requests.
++ *
++ * handle: handle for the channel to be freed.
++ *
++ ****************************************************************************/
++int
++ep93xx_dma_free(int handle)
++{
++ ep93xx_dma_t *dma;
++ unsigned int M2M_reg_base, M2P_reg_base, uiCONTROL;
++ int channel;
++
++ /*
++ * Get the DMA hw channel # from the handle.
++ */
++ channel = dma_get_channel_from_handle(handle);
++
++ /*
++ * See if this is a valid handle.
++ */
++ if (channel < 0) {
++ printk(KERN_ERR "DMA Free: Invalid dma handle.\n");
++ return(-EINVAL);
++ }
++
++ /*
++ * Get a pointer to the dma instance.
++ */
++ dma = &dma_chan[channel];
++
++ /*
++ * Disable the dma channel
++ */
++ if (channel < 10) {
++ /*
++ * M2P channel
++ */
++ M2P_reg_base = dma->reg_base;
++
++ uiCONTROL = inl(M2P_reg_base+M2P_OFFSET_CONTROL);
++ uiCONTROL &= ~CONTROL_M2P_ENABLE;
++ outl( uiCONTROL, M2P_reg_base+M2P_OFFSET_CONTROL );
++ } else {
++ /*
++ * M2M channel
++ */
++ M2M_reg_base = dma->reg_base;
++
++ uiCONTROL = inl(M2M_reg_base+M2M_OFFSET_CONTROL);
++ uiCONTROL &= ~CONTROL_M2M_ENABLE;
++ outl( uiCONTROL, M2M_reg_base+M2M_OFFSET_CONTROL );
++ }
++
++ /*
++ * Free the interrupt servicing this dma channel
++ */
++ //free_irq(dma->irq, (void *) dma);
++ dma->terminated=1;
++
++ /*
++ * Decrement the reference count for this instance of the dma interface
++ */
++ dma->ref_count--;
++
++ /*
++ * Set the transfer and pause state variables to 0
++ * (unititialized state).
++ */
++ dma->xfer_enable = 0;
++ dma->pause = 0;
++
++ /*
++ * Debugging message.
++ */
++ DPRINTK("Successfully freed dma channel %d\n", channel);
++ /*
++ * Success.
++ */
++ return(0);
++}
++
++/*****************************************************************************
++ *
++ * ep93xx_dma_init(void)
++ *
++ * Description: This function is called during system initialization to
++ * setup the interrupt number and register set base address for each DMA
++ * channel.
++ *
++ ****************************************************************************/
++static int __init
++ep93xx_dma_init(void)
++{
++ int channel;
++
++ /*
++ * Init some values in each dma instance.
++ */
++ for (channel = 0; channel < MAX_EP93XX_DMA_CHANNELS; channel++) {
++ /*
++ * IRQ for the specified dma channel.
++ */
++ dma_chan[channel].irq = IRQ_EP93XX_DMAM2P0 + channel;
++
++ dma_chan[channel].terminated = 0;
++
++ /*
++ * Initial value of the dma channel handle.
++ */
++ dma_chan[channel].last_valid_handle = channel << 28;
++
++ /*
++ * Give the instance a pointer to the dma channel register
++ * base.
++ */
++ if (channel < 10)
++ dma_chan[channel].reg_base = DMAM2PChannelBase[channel];
++ else
++ dma_chan[channel].reg_base = DMAM2MChannelBase[channel - 10];
++
++ /*
++ * Initialize the reference count for this channel.
++ */
++ dma_chan[channel].ref_count = 0;
++ }
++
++ DPRINTK("DMA Interface intitialization complete\n");
++
++ /*
++ * Success
++ */
++ return 0;
++}
++
++arch_initcall(ep93xx_dma_init);
++
++EXPORT_SYMBOL(ep93xx_dma_free);
++EXPORT_SYMBOL(ep93xx_dma_request);
++EXPORT_SYMBOL(ep93xx_dma_flush);
++EXPORT_SYMBOL(ep93xx_dma_pause);
++EXPORT_SYMBOL(ep93xx_dma_remove_buffer);
++EXPORT_SYMBOL(ep93xx_dma_add_buffer);
++EXPORT_SYMBOL(ep93xx_dma_start);
++EXPORT_SYMBOL(ep93xx_dma_config);
+--- /dev/null
++++ linux-2.6.31/arch/arm/mach-ep93xx/dma_ep93xx.h
+@@ -0,0 +1,676 @@
++/*****************************************************************************
++ *
++ * arch/arm/mach-ep93xx/dma_ep93xx.h
++ *
++ * DESCRIPTION: 93XX DMA controller API private defintions.
++ *
++ * Copyright Cirrus Logic Corporation, 2003. All rights reserved
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ ****************************************************************************/
++#ifndef _EP93XX_DMA_H_
++#define _EP93XX_DMA_H_
++
++// as it turns out the ide dma is the biggest dma buffer hog so far
++// in case the HDD is "thinking" (seek/buffer flush)
++// the continueing r/w DMAs to the HDD will be queued up to up to PRD_ENTRIES entries...
++#include <linux/ide.h>
++#define MAX_EP93XX_DMA_BUFFERS PRD_ENTRIES
++
++#ifndef TRUE
++#define TRUE 1
++#endif
++
++#ifndef FALSE
++#define FALSE 0
++#endif
++
++#ifndef NULL
++#define NULL 0
++#endif
++
++#define EP93XX_DMA_BASE (EP93XX_AHB_VIRT_BASE + 0x00000000)
++
++/*****************************************************************************
++ * 0x8000.0000 -> 0x8000.003C M2P Channel 0 Registers (Tx)
++ * 0x8000.0040 -> 0x8000.007C M2P Channel 1 Registers (Rx)
++ * 0x8000.0080 -> 0x8000.00BC M2P Channel 2 Registers (Tx)
++ * 0x8000.00C0 -> 0x8000.00FC M2P Channel 3 Registers (Rx)
++ * 0x8000.0100 -> 0x8000.013C M2M Channel 0 Registers
++ * 0x8000.0140 -> 0x8000.017C M2M Channel 1 Registers
++ * 0x8000.0180 -> 0x8000.01BC Not Used
++ * 0x8000.01C0 -> 0x8000.01FC Not Used
++ * 0x8000.0200 -> 0x8000.023C M2P Channel 5 Registers (Rx)
++ * 0x8000.0240 -> 0x8000.027C M2P Channel 4 Registers (Tx)
++ * 0x8000.0280 -> 0x8000.02BC M2P Channel 7 Registers (Rx)
++ * 0x8000.02C0 -> 0x8000.02FC M2P Channel 6 Registers (Tx)
++ * 0x8000.0300 -> 0x8000.033C M2P Channel 9 Registers (Rx)
++ * 0x8000.0340 -> 0x8000.037C M2P Channel 8 Registers (Tx)
++ * 0x8000.0380 DMA Channel Arbitration register
++ * 0x8000.03C0 DMA Global Interrupt register
++ * 0x8000.03C4 -> 0x8000.03FC Not Used
++ *
++ *
++ * Internal M2P/P2M Channel Register Map
++ *
++ * Offset Name Access Bits Reset Value
++ * 0x00 CONTROL R/W 6 0
++ * 0x04 INTERRUPT R/W TC* 3 0
++ * 0x08 PPALLOC R/W 4 channel dependant
++ * (see reg description)
++ * 0x0C STATUS RO 8 0
++ * 0x10 reserved
++ * 0x14 REMAIN RO 16 0
++ * 0X18 Reserved
++ * 0X1C Reserved
++ * 0x20 MAXCNT0 R/W 16 0
++ * 0x24 BASE0 R/W 32 0
++ * 0x28 CURRENT0 RO 32 0
++ * 0x2C Reserved
++ * 0x30 MAXCNT1 R/W 16 0
++ * 0x34 BASE1 R/W 32 0
++ * 0X38 CURRENT1 RO 32 0
++ * 0X3C Reserved
++ *
++ * M2M Channel Register Map
++ * Offset Name Access Bits Reset Value
++ *
++ * 0x00 CONTROL R/W 22 0
++ * 0x04 INTERRUPT R/W TC* 3 0
++ * 0x08 Reserved
++ * 0x0C STATUS R/W TC* 14 0
++ * 0x10 BCR0 R/W 16 0
++ * 0x14 BCR1 R/W 16 0
++ * 0x18 SAR_BASE0 R/W 32 0
++ * 0x1C SAR_BASE1 R/W 32 0
++ * 0x20 Reserved
++ * 0x24 SAR_CURRENT0 RO 32 0
++ * 0x28 SAR_CURRENT1 RO 32 0
++ * 0x2C DAR_BASE0 R/W 32 0
++ * 0x30 DAR_BASE1 R/W 32 0
++ * 0x34 DAR_CURRENT0 RO 32 0
++ * 0X38 Reserved
++ * 0X3C DAR_CURRENT1 RO 32 0
++ * * Write this location once to clear the bit (see
++ * Interrupt/Status register description for which bits
++ * this rule applies to).
++ *
++ ****************************************************************************/
++
++
++/*----------------------------------------------------------------------------------*/
++/* M2P Registers */
++/*----------------------------------------------------------------------------------*/
++/*
++ * M2P CONTROL register bit defines
++ */
++#define CONTROL_M2P_STALLINTEN 0x00000001 /* Enables the STALL interrupt */
++#define CONTROL_M2P_NFBINTEN 0x00000002 /* Enables the NFB interrupt */
++#define CONTROL_M2P_CHERRORINTEN 0x00000008 /* Enables the ChError interrupt*/
++#define CONTROL_M2P_ENABLE 0x00000010 /* Enables the channel */
++#define CONTROL_M2P_ABRT 0x00000020 /* Determines how DMA behaves in*/
++ /* NEXT state with peripheral */
++ /* error */
++ /* 0: NEXT -> ON, ignore error */
++ /* 1: NEXT -> STALL, disable ch.*/
++#define CONTROL_M2P_ICE 0x00000040 /* Ignore Channel Error */
++
++/*
++ * M2P INTERRUPT register bit defines
++ */
++#define INTERRUPT_M2P_STALLINT 0x00000001 /* Indicates channel stalled. */
++#define INTERRUPT_M2P_NFBINT 0x00000002 /* Indicates channel is hungry. */
++#define INTERRUPT_M2P_CHERRORINT 0x00000008 /* Peripheral detects error */
++
++
++/*
++ * STATUS register bit defines
++ */
++#define STATUS_M2P_STALL 0x00000001 /* A '1' indicates channel is */
++ /* stalled */
++#define STATUS_M2P_NFB 0x00000002 /* A '1' indicates channel has moved*/
++ /* from NEXT state to ON state, but */
++ /* waiting for next buffer to be */
++ /* programmed. */
++#define STATUS_M2P_CHERROR 0x00000008 /* Enables the ChError interrupt */
++#define STATUS_M2P_CURRENT_MASK 0x00000030 /* Current state of the FSM */
++#define STATUS_M2P_CURRENT_SHIFT 4
++#define STATUS_M2P_NEXTBUFFER 0x00000040 /* Informs the int handler after an */
++ /* NFB int which pair of maxcnt and */
++ /* base regs to update. */
++#define STATUS_M2P_BYTES_MASK 0x0000f800 /* number of valid DMA data */
++#define STATUS_M2P_BYTES_SHIFT 7 /* currently in */
++ /* packer/unpacker */
++
++#define STATUS_M2P_DMA_NO_BUF 0x00000000
++#define STATUS_M2P_DMA_BUF_ON 0x00000010
++#define STATUS_M2P_DMA_BUF_NEXT 0x00000020
++
++/*
++ * Register masks to mask off reserved bits after reading register.
++ */
++#define M2P_MASK_PPALLOC 0x0000000f
++#define M2P_MASK_REMAIN 0x0000ffff
++#define M2P_MASK_MAXCNT0 0x0000ffff
++#define M2P_MASK_BASE0 0xffffffff
++#define M2P_MASK_CURRENT0 0xffffffff
++#define M2P_MASK_MAXCNT1 0x0000ffff
++#define M2P_MASK_BASE1 0xffffffff
++#define M2P_MASK_CURRENT1 0xffffffff
++
++
++/*----------------------------------------------------------------------------------*/
++/* M2M Registers */
++/*----------------------------------------------------------------------------------*/
++
++#define CONTROL_M2M_STALLINTEN 0x00000001 /* Enables the STALL interrupt */
++#define CONTROL_M2M_SCT 0x00000002 /* Source Copy Transfer. Setup a */
++ /* block transfer from 1 memory source */
++ /* location. */
++#define CONTROL_M2M_DONEINTEN 0x00000004 /* Enables the DONE interrupt which */
++ /* indicates if the xfer completed */
++ /* successfully */
++#define CONTROL_M2M_ENABLE 0x00000008 /* Enables the channel */
++#define CONTROL_M2M_START 0x00000010 /* Initiates the xfer. 'software trigger' */
++#define CONTROL_M2M_BWC_MASK 0x000001e0 /* Bandwidth control. Indicate number of */
++#define CONTROL_M2M_BWC_SHIFT 5 /* bytes in a transfer. */
++#define CONTROL_M2M_PW_MASK 0x00000600 /* Peripheral width. Used for xfers */
++#define CONTROL_M2M_PW_SHIFT 9 /* between memory and external peripheral. */
++ /* 00: byte, 01: halfword, 10: word. */
++#define CONTROL_M2M_DAH 0x00000800 /* Destination Address Hold */
++#define CONTROL_M2M_SAH 0x00001000 /* Source Address Hold */
++#define CONTROL_M2M_TM_MASK 0x00006000 /* Transfer Mode. 00: sw triggered, */
++#define CONTROL_M2M_TM_SHIFT 13 /* 01: hw initiated M2P, 01: hw initiated P2M */
++#define CONTROL_M2M_ETDP_MASK 0x00018000 /* End-of-Transfer/Terminal Count pin */
++#define CONTROL_M2M_ETDP_SHIFT 15 /* direction and polarity. */
++#define CONTROL_M2M_DACKP 0x00020000 /* DMA acknowledge pin polarity */
++
++#define CONTROL_M2M_DREQP_MASK 0x00180000 /* DMA request pin polarity. must be set */
++#define CONTROL_M2M_DREQP_SHIFT 19 /* before enable bit. */
++#define CONTROL_M2M_NFBINTEN 0x00200000 /* Enables generation of the NFB interrupt. */
++#define CONTROL_M2M_RSS_MASK 0x00c00000 /* Request source selection: */
++#define CONTROL_M2M_RSS_SHIFT 22 /* 000 - External DReq[0] */
++ /* 001 - External DReq[1] */
++ /* 01X - Internal SSPRx */
++ /* 10X - Internal SSPTx */
++ /* 11X - Internal IDE */
++#define CONTROL_M2M_NO_HDSK 0x01000000 /* No handshake. When set the peripheral doesn't */
++ /* require the regular handshake protocal. Must */
++ /* be set for SSP and IDE operations, optional */
++ /* for external peripherals. */
++#define CONTROL_M2M_PWSC_MASK 0xfe000000 /* Peripheral wait states count. Gives the latency */
++#define CONTROL_M2M_PWSC_SHIFT 25 /* (in PCLK cycles) needed by the peripheral to */
++ /* deassert its' request once the M2M xfer w/ DMA */
++ /* is complete. */
++
++/*
++ * M2M INTERRUPT register bit defines
++ */
++#define INTERRUPT_M2M_STALLINT 0x00000001 /* Stall interrupt indicates channel stalled. */
++#define INTERRUPT_M2M_DONEINT 0x00000002 /* Transaction done. */
++#define INTERRUPT_M2M_NFBINT 0x00000004 /* Next frame buffer interrupt indicates */
++ /* channel requires a new buffer */
++
++
++
++/*
++ * M2M STATUS register bit defines
++ */
++#define STATUS_M2M_STALL 0x00000001 /* A '1' indicates channel is stalled */
++#define STATUS_M2M_CURRENTSTATE_MASK 0x0000003e /* Indicates state of M2M Channel control */
++#define STATUS_M2M_CURRENTSTATE_SHIFT 1 /* FSM (0-2): */
++ /* 000 - IDLE, 001 - STALL, 010 - MEM_RD, */
++ /* 011 - MEM_WR, 100 - BWC_WAIT */
++ /* and M2M buffer FSM (3-2): */
++ /* 00 - NO_BUF, 01 - BUF_ON, 10 - BUF_NEXT */
++#define STATUS_M2M_DONE 0x00000040 /* Transfer completed successfully if 1. */
++#define STATUS_M2M_TCS_MASK 0x00000180 /* Terminal Count status. Indicates whether or */
++#define STATUS_M2M_TCS_SHIFT 7 /* or not the actual byte count reached */
++ /* programmed limit for buffer descriptor */
++#define STATUS_M2M_EOTS_MASK 0x00000600 /* End-of-Transfer status for buffer */
++#define STATUS_M2M_EOTS_SHIFT 9
++#define STATUS_M2M_NFB 0x00000800 /* A '1' indicates channel has moved */
++ /* from NEXT state to ON state, but the next */
++ /* byte count reg for next buffer has not been */
++ /* programmed yet. */
++#define STATUS_M2M_NB 0x00001000 /* NextBuffer status. Informs NFB service */
++ /* routine, after NFB int, which pair of buffer */
++ /* descriptor registers is free to update. */
++#define STATUS_M2M_DREQS 0x00002000 /* DREQ status. Reflects the status of the */
++ /* synchronized external peripherals DMA */
++ /* request signal. */
++
++/*
++ * Register masks to mask off reserved bits after reading register.
++ */
++#define M2M_MASK_BCR0 0x0000ffff
++#define M2M_MASK_BCR1 0x0000ffff
++#define M2M_MASK_SAR_BASE0 0xffffffff
++#define M2M_MASK_SAR_BASE1 0xffffffff
++#define M2M_MASK_SAR_CURRENT0 0xffffffff
++#define M2M_MASK_SAR_CURRENT1 0xffffffff
++#define M2M_MASK_DAR_BASE0 0xffffffff
++#define M2M_MASK_DAR_BASE1 0xffffffff
++#define M2M_MASK_DAR_CURRENT0 0xffffffff
++#define M2M_MASK_DAR_CURRENT1 0xffffffff
++
++
++//
++/* 8000_0000 - 8000_ffff: DMA */
++#define DMA_OFFSET 0x000000
++#define DMA_BASE (EP93XX_DMA_BASE)
++#define DMAMP_TX_0_CONTROL (DMA_BASE+0x0000)
++#define DMAMP_TX_0_INTERRUPT (DMA_BASE+0x0004)
++#define DMAMP_TX_0_PPALLOC (DMA_BASE+0x0008)
++#define DMAMP_TX_0_STATUS (DMA_BASE+0x000C)
++#define DMAMP_TX_0_REMAIN (DMA_BASE+0x0014)
++#define DMAMP_TX_0_MAXCNT0 (DMA_BASE+0x0020)
++#define DMAMP_TX_0_BASE0 (DMA_BASE+0x0024)
++#define DMAMP_TX_0_CURRENT0 (DMA_BASE+0x0028)
++#define DMAMP_TX_0_MAXCNT1 (DMA_BASE+0x0030)
++#define DMAMP_TX_0_BASE1 (DMA_BASE+0x0034)
++#define DMAMP_TX_0_CURRENT1 (DMA_BASE+0x0038)
++
++#define DMAMP_RX_1_CONTROL (DMA_BASE+0x0040)
++#define DMAMP_RX_1_INTERRUPT (DMA_BASE+0x0044)
++#define DMAMP_RX_1_PPALLOC (DMA_BASE+0x0048)
++#define DMAMP_RX_1_STATUS (DMA_BASE+0x004C)
++#define DMAMP_RX_1_REMAIN (DMA_BASE+0x0054)
++#define DMAMP_RX_1_MAXCNT0 (DMA_BASE+0x0060)
++#define DMAMP_RX_1_BASE0 (DMA_BASE+0x0064)
++#define DMAMP_RX_1_CURRENT0 (DMA_BASE+0x0068)
++#define DMAMP_RX_1_MAXCNT1 (DMA_BASE+0x0070)
++#define DMAMP_RX_1_BASE1 (DMA_BASE+0x0074)
++#define DMAMP_RX_1_CURRENT1 (DMA_BASE+0x0078)
++
++#define DMAMP_TX_2_CONTROL (DMA_BASE+0x0080)
++#define DMAMP_TX_2_INTERRUPT (DMA_BASE+0x0084)
++#define DMAMP_TX_2_PPALLOC (DMA_BASE+0x0088)
++#define DMAMP_TX_2_STATUS (DMA_BASE+0x008C)
++#define DMAMP_TX_2_REMAIN (DMA_BASE+0x0094)
++#define DMAMP_TX_2_MAXCNT0 (DMA_BASE+0x00A0)
++#define DMAMP_TX_2_BASE0 (DMA_BASE+0x00A4)
++#define DMAMP_TX_2_CURRENT0 (DMA_BASE+0x00A8)
++#define DMAMP_TX_2_MAXCNT1 (DMA_BASE+0x00B0)
++#define DMAMP_TX_2_BASE1 (DMA_BASE+0x00B4)
++#define DMAMP_TX_2_CURRENT1 (DMA_BASE+0x00B8)
++
++#define DMAMP_RX_3_CONTROL (DMA_BASE+0x00C0)
++#define DMAMP_RX_3_INTERRUPT (DMA_BASE+0x00C4)
++#define DMAMP_RX_3_PPALLOC (DMA_BASE+0x00C8)
++#define DMAMP_RX_3_STATUS (DMA_BASE+0x00CC)
++#define DMAMP_RX_3_REMAIN (DMA_BASE+0x00D4)
++#define DMAMP_RX_3_MAXCNT0 (DMA_BASE+0x00E0)
++#define DMAMP_RX_3_BASE0 (DMA_BASE+0x00E4)
++#define DMAMP_RX_3_CURRENT0 (DMA_BASE+0x00E8)
++#define DMAMP_RX_3_MAXCNT1 (DMA_BASE+0x00F0)
++#define DMAMP_RX_3_BASE1 (DMA_BASE+0x00F4)
++#define DMAMP_RX_3_CURRENT1 (DMA_BASE+0x00F8)
++
++#define DMAMM_0_CONTROL (DMA_BASE+0x0100)
++#define DMAMM_0_INTERRUPT (DMA_BASE+0x0104)
++#define DMAMM_0_STATUS (DMA_BASE+0x010C)
++#define DMAMM_0_BCR0 (DMA_BASE+0x0110)
++#define DMAMM_0_BCR1 (DMA_BASE+0x0114)
++#define DMAMM_0_SAR_BASE0 (DMA_BASE+0x0118)
++#define DMAMM_0_SAR_BASE1 (DMA_BASE+0x011C)
++#define DMAMM_0_SAR_CURRENT0 (DMA_BASE+0x0124)
++#define DMAMM_0_SAR_CURRENT1 (DMA_BASE+0x0128)
++#define DMAMM_0_DAR_BASE0 (DMA_BASE+0x012C)
++#define DMAMM_0_DAR_BASE1 (DMA_BASE+0x0130)
++#define DMAMM_0_DAR_CURRENT0 (DMA_BASE+0x0134)
++#define DMAMM_0_DAR_CURRENT1 (DMA_BASE+0x013C)
++
++#define DMAMM_1_CONTROL (DMA_BASE+0x0140)
++#define DMAMM_1_INTERRUPT (DMA_BASE+0x0144)
++#define DMAMM_1_STATUS (DMA_BASE+0x014C)
++#define DMAMM_1_BCR0 (DMA_BASE+0x0150)
++#define DMAMM_1_BCR1 (DMA_BASE+0x0154)
++#define DMAMM_1_SAR_BASE0 (DMA_BASE+0x0158)
++#define DMAMM_1_SAR_BASE1 (DMA_BASE+0x015C)
++#define DMAMM_1_SAR_CURRENT0 (DMA_BASE+0x0164)
++#define DMAMM_1_SAR_CURRENT1 (DMA_BASE+0x0168)
++#define DMAMM_1_DAR_BASE0 (DMA_BASE+0x016C)
++#define DMAMM_1_DAR_BASE1 (DMA_BASE+0x0170)
++#define DMAMM_1_DAR_CURRENT0 (DMA_BASE+0x0174)
++#define DMAMM_1_DAR_CURRENT1 (DMA_BASE+0x017C)
++
++#define DMAMP_RX_5_CONTROL (DMA_BASE+0x0200)
++#define DMAMP_RX_5_INTERRUPT (DMA_BASE+0x0204)
++#define DMAMP_RX_5_PPALLOC (DMA_BASE+0x0208)
++#define DMAMP_RX_5_STATUS (DMA_BASE+0x020C)
++#define DMAMP_RX_5_REMAIN (DMA_BASE+0x0214)
++#define DMAMP_RX_5_MAXCNT0 (DMA_BASE+0x0220)
++#define DMAMP_RX_5_BASE0 (DMA_BASE+0x0224)
++#define DMAMP_RX_5_CURRENT0 (DMA_BASE+0x0228)
++#define DMAMP_RX_5_MAXCNT1 (DMA_BASE+0x0230)
++#define DMAMP_RX_5_BASE1 (DMA_BASE+0x0234)
++#define DMAMP_RX_5_CURRENT1 (DMA_BASE+0x0238)
++
++#define DMAMP_TX_4_CONTROL (DMA_BASE+0x0240)
++#define DMAMP_TX_4_INTERRUPT (DMA_BASE+0x0244)
++#define DMAMP_TX_4_PPALLOC (DMA_BASE+0x0248)
++#define DMAMP_TX_4_STATUS (DMA_BASE+0x024C)
++#define DMAMP_TX_4_REMAIN (DMA_BASE+0x0254)
++#define DMAMP_TX_4_MAXCNT0 (DMA_BASE+0x0260)
++#define DMAMP_TX_4_BASE0 (DMA_BASE+0x0264)
++#define DMAMP_TX_4_CURRENT0 (DMA_BASE+0x0268)
++#define DMAMP_TX_4_MAXCNT1 (DMA_BASE+0x0270)
++#define DMAMP_TX_4_BASE1 (DMA_BASE+0x0274)
++#define DMAMP_TX_4_CURRENT1 (DMA_BASE+0x0278)
++
++#define DMAMP_RX_7_CONTROL (DMA_BASE+0x0280)
++#define DMAMP_RX_7_INTERRUPT (DMA_BASE+0x0284)
++#define DMAMP_RX_7_PPALLOC (DMA_BASE+0x0288)
++#define DMAMP_RX_7_STATUS (DMA_BASE+0x028C)
++#define DMAMP_RX_7_REMAIN (DMA_BASE+0x0294)
++#define DMAMP_RX_7_MAXCNT0 (DMA_BASE+0x02A0)
++#define DMAMP_RX_7_BASE0 (DMA_BASE+0x02A4)
++#define DMAMP_RX_7_CURRENT0 (DMA_BASE+0x02A8)
++#define DMAMP_RX_7_MAXCNT1 (DMA_BASE+0x02B0)
++#define DMAMP_RX_7_BASE1 (DMA_BASE+0x02B4)
++#define DMAMP_RX_7_CURRENT1 (DMA_BASE+0x02B8)
++
++#define DMAMP_TX_6_CONTROL (DMA_BASE+0x02C0)
++#define DMAMP_TX_6_INTERRUPT (DMA_BASE+0x02C4)
++#define DMAMP_TX_6_PPALLOC (DMA_BASE+0x02C8)
++#define DMAMP_TX_6_STATUS (DMA_BASE+0x02CC)
++#define DMAMP_TX_6_REMAIN (DMA_BASE+0x02D4)
++#define DMAMP_TX_6_MAXCNT0 (DMA_BASE+0x02E0)
++#define DMAMP_TX_6_BASE0 (DMA_BASE+0x02E4)
++#define DMAMP_TX_6_CURRENT0 (DMA_BASE+0x02E8)
++#define DMAMP_TX_6_MAXCNT1 (DMA_BASE+0x02F0)
++#define DMAMP_TX_6_BASE1 (DMA_BASE+0x02F4)
++#define DMAMP_TX_6_CURRENT1 (DMA_BASE+0x02F8)
++
++#define DMAMP_RX_9_CONTROL (DMA_BASE+0x0300)
++#define DMAMP_RX_9_INTERRUPT (DMA_BASE+0x0304)
++#define DMAMP_RX_9_PPALLOC (DMA_BASE+0x0308)
++#define DMAMP_RX_9_STATUS (DMA_BASE+0x030C)
++#define DMAMP_RX_9_REMAIN (DMA_BASE+0x0314)
++#define DMAMP_RX_9_MAXCNT0 (DMA_BASE+0x0320)
++#define DMAMP_RX_9_BASE0 (DMA_BASE+0x0324)
++#define DMAMP_RX_9_CURRENT0 (DMA_BASE+0x0328)
++#define DMAMP_RX_9_MAXCNT1 (DMA_BASE+0x0330)
++#define DMAMP_RX_9_BASE1 (DMA_BASE+0x0334)
++#define DMAMP_RX_9_CURRENT1 (DMA_BASE+0x0338)
++
++#define DMAMP_TX_8_CONTROL (DMA_BASE+0x0340)
++#define DMAMP_TX_8_INTERRUPT (DMA_BASE+0x0344)
++#define DMAMP_TX_8_PPALLOC (DMA_BASE+0x0348)
++#define DMAMP_TX_8_STATUS (DMA_BASE+0x034C)
++#define DMAMP_TX_8_REMAIN (DMA_BASE+0x0354)
++#define DMAMP_TX_8_MAXCNT0 (DMA_BASE+0x0360)
++#define DMAMP_TX_8_BASE0 (DMA_BASE+0x0364)
++#define DMAMP_TX_8_CURRENT0 (DMA_BASE+0x0368)
++#define DMAMP_TX_8_MAXCNT1 (DMA_BASE+0x0370)
++#define DMAMP_TX_8_BASE1 (DMA_BASE+0x0374)
++#define DMAMP_TX_8_CURRENT1 (DMA_BASE+0x0378)
++
++#define DMA_ARBITRATION (DMA_BASE+0x0380)
++#define DMA_INTERRUPT (DMA_BASE+0x03C0)
++
++
++/*
++ * DMA Register Base addresses and Offsets
++ */
++#define DMA_M2P_TX_0_BASE DMAMP_TX_0_CONTROL
++#define DMA_M2P_RX_1_BASE DMAMP_RX_1_CONTROL
++#define DMA_M2P_TX_2_BASE DMAMP_TX_2_CONTROL
++#define DMA_M2P_RX_3_BASE DMAMP_RX_3_CONTROL
++#define DMA_M2M_0_BASE DMAMM_0_CONTROL
++#define DMA_M2M_1_BASE DMAMM_1_CONTROL
++#define DMA_M2P_RX_5_BASE DMAMP_RX_5_CONTROL
++#define DMA_M2P_TX_4_BASE DMAMP_TX_4_CONTROL
++#define DMA_M2P_RX_7_BASE DMAMP_RX_7_CONTROL
++#define DMA_M2P_TX_6_BASE DMAMP_TX_6_CONTROL
++#define DMA_M2P_RX_9_BASE DMAMP_RX_9_CONTROL
++#define DMA_M2P_TX_8_BASE DMAMP_TX_8_CONTROL
++
++#define M2P_OFFSET_CONTROL 0x0000
++#define M2P_OFFSET_INTERRUPT 0x0004
++#define M2P_OFFSET_PPALLOC 0x0008
++#define M2P_OFFSET_STATUS 0x000C
++#define M2P_OFFSET_REMAIN 0x0014
++#define M2P_OFFSET_MAXCNT0 0x0020
++#define M2P_OFFSET_BASE0 0x0024
++#define M2P_OFFSET_CURRENT0 0x0028
++#define M2P_OFFSET_MAXCNT1 0x0030
++#define M2P_OFFSET_BASE1 0x0034
++#define M2P_OFFSET_CURRENT1 0x0038
++
++#define M2M_OFFSET_CONTROL 0x0000
++#define M2M_OFFSET_INTERRUPT 0x0004
++#define M2M_OFFSET_STATUS 0x000C
++#define M2M_OFFSET_BCR0 0x0010
++#define M2M_OFFSET_BCR1 0x0014
++#define M2M_OFFSET_SAR_BASE0 0x0018
++#define M2M_OFFSET_SAR_BASE1 0x001C
++#define M2M_OFFSET_SAR_CURRENT0 0x0024
++#define M2M_OFFSET_SAR_CURRENT1 0x0028
++#define M2M_OFFSET_DAR_BASE0 0x002C
++#define M2M_OFFSET_DAR_BASE1 0x0030
++#define M2M_OFFSET_DAR_CURRENT0 0x0034
++#define M2M_OFFSET_DAR_CURRENT1 0x003C
++
++
++
++//-----------------------------------------------------------------------------
++// PWRCNT Register Defines
++//-----------------------------------------------------------------------------
++#define SYSCON_PWRCNT_FIREN 0x80000000
++#define SYSCON_PWRCNT_UARTBAUD 0x20000000
++#define SYSCON_PWRCNT_USHEN 0x10000000
++#define SYSCON_PWRCNT_DMA_M2MCH1 0x08000000
++#define SYSCON_PWRCNT_DMA_M2MCH0 0x04000000
++#define SYSCON_PWRCNT_DMA_M2PCH8 0x02000000
++#define SYSCON_PWRCNT_DMA_M2PCH9 0x01000000
++#define SYSCON_PWRCNT_DMA_M2PCH6 0x00800000
++#define SYSCON_PWRCNT_DMA_M2PCH7 0x00400000
++#define SYSCON_PWRCNT_DMA_M2PCH4 0x00200000
++#define SYSCON_PWRCNT_DMA_M2PCH5 0x00100000
++#define SYSCON_PWRCNT_DMA_M2PCH2 0x00080000
++#define SYSCON_PWRCNT_DMA_M2PCH3 0x00040000
++#define SYSCON_PWRCNT_DMA_M2PCH0 0x00020000
++#define SYSCON_PWRCNT_DMA_M2PCH1 0x00010000
++
++#ifndef __ASSEMBLY__
++/*
++ * DMA Register Base addresses
++ */
++static unsigned int const DMAM2PChannelBase[10] =
++{
++ DMA_M2P_TX_0_BASE,
++ DMA_M2P_RX_1_BASE,
++ DMA_M2P_TX_2_BASE,
++ DMA_M2P_RX_3_BASE,
++ DMA_M2P_TX_4_BASE,
++ DMA_M2P_RX_5_BASE,
++ DMA_M2P_TX_6_BASE,
++ DMA_M2P_RX_7_BASE,
++ DMA_M2P_TX_8_BASE,
++ DMA_M2P_RX_9_BASE
++};
++
++static unsigned int const DMAM2MChannelBase[2] =
++{
++ DMA_M2M_0_BASE,
++ DMA_M2M_1_BASE
++};
++
++#endif /* __ASSEMBLY__ */
++
++/*****************************************************************************
++ *
++ * DMA buffer structure type.
++ *
++ ****************************************************************************/
++typedef struct ep93xx_dma_buffer_s
++{
++ unsigned int source; /* buffer physical source address. */
++ unsigned int dest; /* buffer physical destination address, */
++ /* only used with the 2 M2M channels. */
++ unsigned int size; /* buffer size in bytes */
++ unsigned int last; /* 1 if this is the last buffer */
++ /* in this transaction. If 1, */
++ /* disable the NFBint so we aren't */
++ /* interrupted for another buffer */
++ /* when we know there won't be another. */
++ unsigned int used; /* This field is set to 1 by the DMA */
++ /* interface after the buffer is transferred*/
++ int buf_id; /* unique identifyer specified by the */
++ /* the driver which requested the dma */
++} ep93xx_dma_buffer_t;
++
++typedef ep93xx_dma_buffer_t * ep93xx_dma_buffer_p;
++
++/*****************************************************************************
++ *
++ * Instance definition for the DMA interface.
++ *
++ ****************************************************************************/
++typedef struct ep9312_dma_s
++{
++ /*
++ * This 1 when the instance is in use, and 0 when it's not.
++ */
++ unsigned int ref_count;
++
++ /*
++ * This is the last valid handle for this instance. When giving out a
++ * new handle this will be incremented and given out.
++ */
++ int last_valid_handle;
++
++ /*
++ * device specifies one of the 20 DMA hardware ports this
++ * DMA channel will service.
++ */
++ ep93xx_dma_dev_t device;
++
++ /*
++ * DMABufferQueue is the queue of buffer structure pointers which the
++ * dma channel will use to setup transfers.
++ */
++ ep93xx_dma_buffer_t buffer_queue[MAX_EP93XX_DMA_BUFFERS];
++
++ /*
++ * currnt_buffer : This is the buffer currently being transfered on
++ * this channel.
++ * last_buffer : This is the last buffer for this transfer.
++ * Note: current_buffer + 1 is already programmed into the dma
++ * channel as the next buffer to transfer. Don't write
++ * over either entry.
++ */
++ int current_buffer;
++ int last_buffer;
++
++ /*
++ * The following 3 fields are buffer counters.
++ *
++ * iNewBuffers: Buffers in the queue which have not been transfered.
++ * iUsedBuffers: Buffers in the queue which have have been tranferred,
++ * and are waiting to be returned.
++ * iTotalBuffers: Total number of buffers in the queue.
++ */
++ int new_buffers;
++ int used_buffers;
++ int total_buffers;
++
++ /*
++ * uiTotalBytes has the total bytes transfered on the channel since the
++ * last flush. This value does not include the bytes tranfered in the
++ * current buffer. A byte count is only added after a complete buffer
++ * is tranfered.
++ */
++ unsigned int total_bytes;
++
++ /*
++ * Interrupt number for this channel
++ */
++ unsigned int irq;
++
++ /*
++ * Indicates whether or not the channel is currently enabled to transfer
++ * data.
++ */
++ unsigned int xfer_enable;
++
++ /*
++ * pause indicates if the dma channel was paused by calling the pause
++ * ioctl.
++ */
++ unsigned int pause;
++
++ /*
++ * buffer structure used during a pause to capture the current
++ * address and remaining bytes for the buffer actively being transferred
++ * on the channel. This buffer will be used to reprogram the dma
++ * channel upon a resume.
++ */
++ ep93xx_dma_buffer_t pause_buf;
++
++ /*
++ * DMACallback is a function pointer which the calling application can
++ * use install a function to. this fuction can be used to notify the
++ * calling application of an interrupt.
++ */
++ dma_callback callback;
++
++ /*
++ * User data used as a parameter for the Callback function. The user
++ * sets up the data and sends it with the callback function.
++ */
++ unsigned int user_data;
++
++ /*
++ * A string representation of the device attached to the channel.
++ */
++ const char * device_id;
++
++ /*
++ * The register base address for this dma channel.
++ */
++ unsigned int reg_base;
++
++ /*
++ * terminated indicates
++ */
++ unsigned int terminated;
++
++
++} ep93xx_dma_t;
++
++/*****************************************************************************
++ *
++ * DMA macros
++ *
++ ****************************************************************************/
++#define DMA_HANDLE_SPECIFIER_MASK 0xF0000000
++#define DMA_CH0_HANDLE_SPECIFIER 0x00000000
++#define DMA_CH1_HANDLE_SPECIFIER 0x10000000
++#define DMA_CH2_HANDLE_SPECIFIER 0x20000000
++#define DMA_CH3_HANDLE_SPECIFIER 0x30000000
++#define DMA_CH4_HANDLE_SPECIFIER 0x40000000
++#define DMA_CH5_HANDLE_SPECIFIER 0x50000000
++#define DMA_CH6_HANDLE_SPECIFIER 0x60000000
++#define DMA_CH7_HANDLE_SPECIFIER 0x70000000
++#define DMA_CH8_HANDLE_SPECIFIER 0x80000000
++#define DMA_CH9_HANDLE_SPECIFIER 0x90000000
++#define DMA_CH10_HANDLE_SPECIFIER 0xA0000000
++#define DMA_CH11_HANDLE_SPECIFIER 0xB0000000
++
++#endif // _DMADRV_H_
diff --git a/recipes/linux/linux-2.6.32/ep93xx/ep93xx-eth.patch b/recipes/linux/linux-2.6.32/ep93xx/ep93xx-eth.patch
new file mode 100644
index 0000000000..776cafcbf5
--- /dev/null
+++ b/recipes/linux/linux-2.6.32/ep93xx/ep93xx-eth.patch
@@ -0,0 +1,2718 @@
+Index: linux-2.6.24.7/drivers/net/arm/ep93xx_eth.c
+===================================================================
+--- linux-2.6.24.7.orig/drivers/net/arm/ep93xx_eth.c 2009-09-16 17:26:48.000000000 +0100
++++ linux-2.6.24.7/drivers/net/arm/ep93xx_eth.c 2009-09-16 17:38:23.000000000 +0100
+@@ -1,916 +1,1586 @@
+-/*
+- * EP93xx ethernet network device driver
+- * Copyright (C) 2006 Lennert Buytenhek <buytenh@wantstofly.org>
+- * Dedicated to Marija Kulikova.
+- *
+- * This program is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License as published by
+- * the Free Software Foundation; either version 2 of the License, or
+- * (at your option) any later version.
+- */
+-
+-#include <linux/dma-mapping.h>
++/*----------------------------------------------------------------------------
++ * ep93xx_eth.c
++ * Ethernet Device Driver for Cirrus Logic EP93xx.
++ *
++ * Copyright (C) 2003 by Cirrus Logic www.cirrus.com
++ * This software may be used and distributed according to the terms
++ * of the GNU Public License.
++ *
++ * This driver was written based on skeleton.c by Donald Becker and
++ * smc9194.c by Erik Stahlman.
++ *
++ * Theory of Operation
++ * Driver Configuration
++ * - Getting MAC address from system
++ * To setup identical MAC address for each target board, driver need
++ * to get a MAC address from system. Normally, system has a Serial
++ * EEPROM or other media to store individual MAC address when
++ * manufacturing.
++ * The macro GET_MAC_ADDR is prepared to get the MAC address from
++ * system and one should supply a routine for this purpose.
++ * Driver Initialization
++ * DMA Operation
++ * Cache Coherence
++ *
++ * History:
++ * 07/19/01 0.1 Sungwook Kim initial release
++ * 10/16/01 0.2 Sungwook Kim add workaround for ignorance of Tx request while sending frame
++ * add some error stuations handling
++ *
++ * 03/25/03 Melody Lee Modified for EP93xx
++ *--------------------------------------------------------------------------*/
+ #include <linux/module.h>
++#include <linux/version.h>
+ #include <linux/kernel.h>
+-#include <linux/netdevice.h>
+-#include <linux/mii.h>
+-#include <linux/etherdevice.h>
+-#include <linux/ethtool.h>
+-#include <linux/init.h>
+-#include <linux/moduleparam.h>
+-#include <linux/platform_device.h>
++#include <linux/sched.h>
++#include <linux/types.h>
++#include <linux/fcntl.h>
++#include <linux/interrupt.h>
++#include <linux/ptrace.h>
++#include <linux/ioport.h>
++#include <linux/in.h>
+ #include <linux/delay.h>
+-#include <asm/arch/ep93xx-regs.h>
+-#include <asm/arch/platform.h>
++#include <linux/slab.h>
++#include <linux/string.h>
++#include <linux/platform_device.h>
++#include <linux/dma-mapping.h>
++#include <asm/system.h>
++#include <asm/bitops.h>
+ #include <asm/io.h>
++#include <asm/dma.h>
++#include <asm/irq.h>
++#include <linux/errno.h>
++#include <linux/init.h>
+
+-#define DRV_MODULE_NAME "ep93xx-eth"
+-#define DRV_MODULE_VERSION "0.1"
++#include <linux/netdevice.h>
++#include <linux/etherdevice.h>
++#include <linux/skbuff.h>
+
+-#define RX_QUEUE_ENTRIES 64
+-#define TX_QUEUE_ENTRIES 8
++#include <asm/arch/hardware.h>
+
+-#define MAX_PKT_SIZE 2044
+-#define PKT_BUF_SIZE 2048
++#include "ep93xx_eth.h"
+
+-#define REG_RXCTL 0x0000
+-#define REG_RXCTL_DEFAULT 0x00073800
+-#define REG_TXCTL 0x0004
+-#define REG_TXCTL_ENABLE 0x00000001
+-#define REG_MIICMD 0x0010
+-#define REG_MIICMD_READ 0x00008000
+-#define REG_MIICMD_WRITE 0x00004000
+-#define REG_MIIDATA 0x0014
+-#define REG_MIISTS 0x0018
+-#define REG_MIISTS_BUSY 0x00000001
+-#define REG_SELFCTL 0x0020
+-#define REG_SELFCTL_RESET 0x00000001
+-#define REG_INTEN 0x0024
+-#define REG_INTEN_TX 0x00000008
+-#define REG_INTEN_RX 0x00000007
+-#define REG_INTSTSP 0x0028
+-#define REG_INTSTS_TX 0x00000008
+-#define REG_INTSTS_RX 0x00000004
+-#define REG_INTSTSC 0x002c
+-#define REG_AFP 0x004c
+-#define REG_INDAD0 0x0050
+-#define REG_INDAD1 0x0051
+-#define REG_INDAD2 0x0052
+-#define REG_INDAD3 0x0053
+-#define REG_INDAD4 0x0054
+-#define REG_INDAD5 0x0055
+-#define REG_GIINTMSK 0x0064
+-#define REG_GIINTMSK_ENABLE 0x00008000
+-#define REG_BMCTL 0x0080
+-#define REG_BMCTL_ENABLE_TX 0x00000100
+-#define REG_BMCTL_ENABLE_RX 0x00000001
+-#define REG_BMSTS 0x0084
+-#define REG_BMSTS_RX_ACTIVE 0x00000008
+-#define REG_RXDQBADD 0x0090
+-#define REG_RXDQBLEN 0x0094
+-#define REG_RXDCURADD 0x0098
+-#define REG_RXDENQ 0x009c
+-#define REG_RXSTSQBADD 0x00a0
+-#define REG_RXSTSQBLEN 0x00a4
+-#define REG_RXSTSQCURADD 0x00a8
+-#define REG_RXSTSENQ 0x00ac
+-#define REG_TXDQBADD 0x00b0
+-#define REG_TXDQBLEN 0x00b4
+-#define REG_TXDQCURADD 0x00b8
+-#define REG_TXDENQ 0x00bc
+-#define REG_TXSTSQBADD 0x00c0
+-#define REG_TXSTSQBLEN 0x00c4
+-#define REG_TXSTSQCURADD 0x00c8
+-#define REG_MAXFRMLEN 0x00e8
++/*----------------------------------------------------------------------------
++ * The name of the card.
++ * It is used for messages and in the requests for io regions, irqs and ...
++ * This device is not in a card but I used same name in skeleton.c file.
++ *--------------------------------------------------------------------------*/
++#define cardname "ep93xx-eth"
++
++
++/**** default MAC address *************/
++static const U8 default_mac[6] = {0x00, 0xba, 0xd0, 0x0b, 0xad, 0x00};
++
++/*----------------------------------------------------------------------------
++ * Some definitions belong to the operation of this driver.
++ * You should understand how it affect to driver before any modification.
++ *--------------------------------------------------------------------------*/
++
++/**** Interrupt Sources in Use *******************************************/
++/*#define Default_IntSrc (IntEn_RxMIE|IntEn_RxSQIE|IntEn_TxLEIE|IntEn_TIE|IntEn_TxSQIE|IntEn_RxEOFIE|IntEn_RxEOBIE|IntEn_RxHDRIE)
++*/
++#define Default_IntSrc (IntEn_TxSQIE|IntEn_RxEOFIE|IntEn_RxEOBIE|IntEn_RxHDRIE)
++
++/**** Length of Device Queue in number of entries
++ (must be less than or equal to 255) ********************************/
++#define LEN_QueRxDesc 64 /*length of Rx Descriptor Queue (4 or bigger) Must be power of 2.*/
++#define LEN_QueRxSts LEN_QueRxDesc /*length of Rx Status Queue*/
++#define LEN_QueTxDesc 8 /*length of Tx Descriptor Queue (4 or bigger) Must be power of 2.*/
++#define LEN_QueTxSts LEN_QueTxDesc /*length of Tx Status Queue*/
++
++/**** Tx Queue fill-up level control *************************************/
++#define LVL_TxStop LEN_QueTxDesc - 2 /*level to ask the stack to stop Tx*/
++#define LVL_TxResume 2 /*level to ask the stack to resume Tx*/
++
++/**** Rx Buffer length in bytes ******************************************/
++#define LEN_RxBuf (1518+2+16) /*length of Rx buffer, must be 4-byte aligned*/
++#define LEN_TxBuf LEN_RxBuf
++
++/*----------------------------------------------------------------------------
++ * MACRO for ease
++ *--------------------------------------------------------------------------*/
++#define Align32(a) (((unsigned int)(a)+3)&~0x03) /*32bit address alignment*/
++#define IdxNext(idxCur,len) (((idxCur)+1)%(len)) /*calc next array index number*/
++
++/**** malloc/free routine for DMA buffer **********************************/
++ /*use non-cached DMA buffer*/
++#define MALLOC_DMA(size, pPhyAddr) dma_alloc_writecombine(NULL, (size), (dma_addr_t*)(pPhyAddr), GFP_KERNEL | GFP_DMA)
++//#define FREE_DMA(size, vaddr, paddr) dma_free_writecombine(NULL, (size), (vaddr), (paddr))
+
+-struct ep93xx_rdesc
+-{
+- u32 buf_addr;
+- u32 rdesc1;
+-};
++/*----------------------------------------------------------------------------
++ * DEBUGGING LEVELS
++ *
++ * 0 for normal operation
++ * 1 for slightly more details
++ * >2 for various levels of increasingly useless information
++ * 2 for interrupt tracking, status flags
++ * 3 for packet dumps, etc.
++ *--------------------------------------------------------------------------*/
++//#define _DBG_3
++//#define _DBG_2
++//#define _DBG_1
++//#define _DBG
++
++#ifdef _DBG_3
++#define PRINTK3( fmt, arg... ) printk( fmt, ##arg )
++#else
++#define PRINTK3( fmt, arg... )
++#endif
++
++#ifdef _DBG_2
++#define PRINTK2( fmt, arg... ) printk( fmt, ##arg )
++#else
++#define PRINTK2( fmt, arg... )
++#endif
++
++#ifdef _DBG_1
++#define PRINTK1( fmt, arg... ) printk( fmt, ##arg )
++#else
++#define PRINTK1( fmt, arg... )
++#endif
++
++#ifdef _DBG
++#define PRINTK(x) printk x
++#else
++#define PRINTK(x)
++#endif
++
++
++
++#define _PRTK_ENTRY PRINTK2 /*to trace function entries*/
++#define _PRTK_SWERR PRINTK /*logical S/W error*/
++#define _PRTK_SYSFAIL PRINTK /*system service failure*/
++#define _PRTK_HWFAIL PRINTK /*H/W operation failure message*/
++#define _PRTK_WARN PRINTK1 /*warning information*/
++#define _PRTK_INFO PRINTK2 /*general information*/
++#define _PRTK_ENTRY_ISR PRINTK3 /*to trace function entries belong to ISR*/
++#define _PRTK_WARN_ISR PRINTK1 /*warning informations from ISR*/
++#define _PRTK_INFO_ISR PRINTK3 /*general informations from ISR*/
++#define _PRTK_ PRINTK /*for temporary print out*/
++
++#if 0
++# define _PRTK_DUMP PRINTK1 /*to dump large amount of debug info*/
++#endif
++
++/*----------------------------------------------------------------------------
++ * Custom Data Structures
++ *--------------------------------------------------------------------------*/
++
++/**** the information about the buffer passed to device.
++ there are matching bufferDescriptor informations
++ for each Tx/Rx Descriptor Queue entry to trace
++ the buffer within those queues. ************************************/
++typedef struct bufferDescriptor {
++ void *vaddr; /*virtual address representing the buffer passed to device*/
++ int(*pFreeRtn)(void *pBuf); /*free routine*/
++} bufferDescriptor;
++
++/**** device privite informations
++ pointed by struct net_device::priv *********************************/
++typedef struct ep93xxEth_info {
++ /**** static device informations **********************************/
++ struct {
++ int id; /*device instance ID (0 for 1st and so on)
++ must be first element of this structure*/
++ receiveDescriptor *pQueRxDesc; /*pointer to Rx Descriptor Queue*/
++ receiveStatus *pQueRxSts; /*pointer to Rx Status Queue*/
++ transmitDescriptor *pQueTxDesc; /*pointer to Tx Descriptor Queue*/
++ transmitStatus *pQueTxSts; /*pointer to Tx Status Queue*/
++ unsigned char *pRxBuf; /*base of Rx Buffer pool*/
++ unsigned char *pTxBuf; /*base of Tx Buffer pool*/
++ unsigned long phyQueueBase; /*physical address of device queues*/
++ unsigned long phyQueRxDesc, /*physical address of Rx Descriptor Queue*/
++ phyQueRxSts, /*physical address of Rx Status Queue*/
++ phyQueTxDesc, /*physical address of Tx Descriptor Queue*/
++ phyQueTxSts, /*physical address of Tx Status Queue*/
++ phyRxBuf, /*physical address of Rx Buffer pool*/
++ phyTxBuf; /*physical address of Tx Buffer pool*/
++ bufferDescriptor *pRxBufDesc, /*info of Rx Buffers*/
++ *pTxBufDesc; /*info of Tx Buffers*/
++ int miiIdPhy; /*MII Bus ID of Ethernet PHY*/
++ } s;
++ /**** dynamic information, subject to clear when device open ******/
++ struct {
++ struct net_device_stats stats; /*statistic data*/
++ int idxQueRxDesc, /*next processing index of device queues*/
++ idxQueRxSts,
++ idxQueTxDescHead,
++ idxQueTxDescTail,
++ idxQueTxSts;
++ int txStopped; /*flag for Tx condition*/
++ } d;
++} ep93xxEth_info;
++
++/*----------------------------------------------------------------------------
++ * Global Variables
++ *--------------------------------------------------------------------------*/
++static int numOfInstance = 0; /*total number of device instance, 0 means the 1st instance.*/
++
++//static struct sk_buff gTxSkb;
++//static char gTxBuff[LEN_TxBuf];
+
+-#define RDESC1_NSOF 0x80000000
+-#define RDESC1_BUFFER_INDEX 0x7fff0000
+-#define RDESC1_BUFFER_LENGTH 0x0000ffff
++//static char gTxDataBuff[LEN_QueTxDesc][LEN_TxBuf];
+
+-struct ep93xx_rstat
+-{
+- u32 rstat0;
+- u32 rstat1;
+-};
++// To know if PHY auto-negotiation has done?
++static int gPhyAutoNegoDone=0;
+
+-#define RSTAT0_RFP 0x80000000
+-#define RSTAT0_RWE 0x40000000
+-#define RSTAT0_EOF 0x20000000
+-#define RSTAT0_EOB 0x10000000
+-#define RSTAT0_AM 0x00c00000
+-#define RSTAT0_RX_ERR 0x00200000
+-#define RSTAT0_OE 0x00100000
+-#define RSTAT0_FE 0x00080000
+-#define RSTAT0_RUNT 0x00040000
+-#define RSTAT0_EDATA 0x00020000
+-#define RSTAT0_CRCE 0x00010000
+-#define RSTAT0_CRCI 0x00008000
+-#define RSTAT0_HTI 0x00003f00
+-#define RSTAT1_RFP 0x80000000
+-#define RSTAT1_BUFFER_INDEX 0x7fff0000
+-#define RSTAT1_FRAME_LENGTH 0x0000ffff
++/*============================================================================
++ *
++ * Internal Routines
++ *
++ *==========================================================================*/
+
+-struct ep93xx_tdesc
++/*****************************************************************************
++* free_skb()
++*****************************************************************************/
++static int
++free_skb(void *pSkb)
+ {
+- u32 buf_addr;
+- u32 tdesc1;
+-};
++ dev_kfree_skb_irq((struct sk_buff*)pSkb);
++ return 0;
++}
+
+-#define TDESC1_EOF 0x80000000
+-#define TDESC1_BUFFER_INDEX 0x7fff0000
+-#define TDESC1_BUFFER_ABORT 0x00008000
+-#define TDESC1_BUFFER_LENGTH 0x00000fff
++/*****************************************************************************
++* waitOnReg32()
++*****************************************************************************/
++static int
++waitOnReg32(struct net_device *pD, int reg, unsigned long mask,
++ unsigned long expect, int tout)
++{
++ int i;
++ int dt;
++
++ for (i = 0; i < 10000; ) {
++ dt = RegRd32(reg);
++ dt = (dt ^ expect) & mask;
++ if (dt == 0)
++ break;
++ if (tout)
++ i++;
++ }
+
+-struct ep93xx_tstat
+-{
+- u32 tstat0;
+-};
++ return dt;
++}
+
+-#define TSTAT0_TXFP 0x80000000
+-#define TSTAT0_TXWE 0x40000000
+-#define TSTAT0_FA 0x20000000
+-#define TSTAT0_LCRS 0x10000000
+-#define TSTAT0_OW 0x04000000
+-#define TSTAT0_TXU 0x02000000
+-#define TSTAT0_ECOLL 0x01000000
+-#define TSTAT0_NCOLL 0x001f0000
+-#define TSTAT0_BUFFER_INDEX 0x00007fff
+-
+-struct ep93xx_descs
+-{
+- struct ep93xx_rdesc rdesc[RX_QUEUE_ENTRIES];
+- struct ep93xx_tdesc tdesc[TX_QUEUE_ENTRIES];
+- struct ep93xx_rstat rstat[RX_QUEUE_ENTRIES];
+- struct ep93xx_tstat tstat[TX_QUEUE_ENTRIES];
+-};
++#define phy_wr(reg,dt) _phy_write(pD, ((ep93xxEth_info*)pD->priv)->s.miiIdPhy, (reg), (dt))
++#define phy_rd(reg) _phy_read(pD, ((ep93xxEth_info*)pD->priv)->s.miiIdPhy, (reg))
++#define phy_waitRdy() waitOnReg32(pD, REG_MIISts,MIISts_Busy, ~MIISts_Busy, 1)
+
+-struct ep93xx_priv
++/*****************************************************************************
++* _phy_write()
++*****************************************************************************/
++static void
++_phy_write(struct net_device *pD, int idPhy, int reg, U16 dt)
+ {
+- struct resource *res;
+- void *base_addr;
+- int irq;
++ phy_waitRdy();
++ RegWr32(REG_MIIData, dt);
++ RegWr32(REG_MIICmd, MIICmd_OP_WR | ((idPhy & 0x1f) << 5) |
++ ((reg & 0x1f) << 0));
++}
+
+- struct ep93xx_descs *descs;
+- dma_addr_t descs_dma_addr;
++/*****************************************************************************
++* _phy_read()
++*****************************************************************************/
++static U16
++_phy_read(struct net_device *pD,int idPhy,int reg)
++{
++ U16 dt;
+
+- void *rx_buf[RX_QUEUE_ENTRIES];
+- void *tx_buf[TX_QUEUE_ENTRIES];
++ phy_waitRdy();
++ RegWr32(REG_MIICmd, MIICmd_OP_RD | ((idPhy & 0x1f) << 5) |
++ ((reg & 0x1f) << 0));
++ phy_waitRdy();
++ dt = (unsigned short)RegRd32(REG_MIIData);
+
+- spinlock_t rx_lock;
+- unsigned int rx_pointer;
+- unsigned int tx_clean_pointer;
+- unsigned int tx_pointer;
+- spinlock_t tx_pending_lock;
+- unsigned int tx_pending;
++ return dt;
++}
+
+- struct net_device *dev;
+- struct napi_struct napi;
++#ifndef _PRTK_DUMP
++#define _dbg_phy_dumpReg(pD)
++#else
++/*****************************************************************************
++* _dbg_phy_dumpReg()
++*****************************************************************************/
++static void
++_dbg_phy_dumpReg(struct net_device *pD)
++{
++ _PRTK_DUMP(("Dumping registers of Ethernet PHY\n"));
++ _PRTK_DUMP((" pD:0x%p, Eth Base Address:0x%x\n", pD,
++ (unsigned int)pD->base_addr));
+
+- struct net_device_stats stats;
++ _PRTK_DUMP((" 0-3:0x%04x 0x%04x 0x%04x 0x%04x\n",
++ phy_rd(0), phy_rd(1), phy_rd(2), phy_rd(3)));
++ _PRTK_DUMP((" 4-6:0x%04x 0x%04x 0x%04x\n",
++ phy_rd(4), phy_rd(5), phy_rd(6)));
++ _PRTK_DUMP((" 16-19:0x%04x 0x%04x 0x%04x 0x%04x\n",
++ phy_rd(16), phy_rd(17), phy_rd(18), phy_rd(19)));
++ _PRTK_DUMP((" 20:0x%04x\n", phy_rd(20)));
++}
++#endif
+
+- struct mii_if_info mii;
+- u8 mdc_divisor;
+-};
++/*****************************************************************************
++* phy_autoNegotiation()
++*****************************************************************************/
++static int
++phy_autoNegotiation(struct net_device *pD)
++{
++ U16 val;
++ U16 oldVal;
++ U16 count = 0;
+
+-#define rdb(ep, off) __raw_readb((ep)->base_addr + (off))
+-#define rdw(ep, off) __raw_readw((ep)->base_addr + (off))
+-#define rdl(ep, off) __raw_readl((ep)->base_addr + (off))
+-#define wrb(ep, off, val) __raw_writeb((val), (ep)->base_addr + (off))
+-#define wrw(ep, off, val) __raw_writew((val), (ep)->base_addr + (off))
+-#define wrl(ep, off, val) __raw_writel((val), (ep)->base_addr + (off))
++ phy_wr(4, 0x01e1); /*Set 802.3, 100M/10M Full/Half ability*/
++ phy_wr(0, (1 << 12) | (1 << 9)); /* enable auto negotiation*/
++ while (1) {
++ val = phy_rd(1); /* read BM status Reg*/
++ if (val & 0x0020) /* if Auto_Neg_complete?*/
++ break;
++ else {
++ if (count >= 3)
++ return -1;
++ mdelay(1000);//delay 1 second.
++ count++;
++ }
++ }
+
+-static int ep93xx_mdio_read(struct net_device *dev, int phy_id, int reg);
++ //CS8952 PHY needs the delay. Otherwise it won't send the 1st frame.
++ mdelay(1000);//delay 1 second.
+
+-static struct net_device_stats *ep93xx_get_stats(struct net_device *dev)
+-{
+- struct ep93xx_priv *ep = netdev_priv(dev);
+- return &(ep->stats);
++ val = phy_rd(5); /* read ANLPAR Reg*/
++ if (val & 0x0140) { /* if 100M_FDX or 10M_FDX?*/
++ oldVal = RegRd16(REG_TestCTL);
++ /*Enable MAC's Full Duplex mode.*/
++ RegWr16(REG_TestCTL, oldVal | TestCTL_MFDX);
++ }
++
++ gPhyAutoNegoDone = 1;
++
++ return 0;
+ }
+
+-static int ep93xx_rx(struct net_device *dev, int processed, int budget)
++/*****************************************************************************
++* phy_init()
++*****************************************************************************/
++static int
++phy_init(struct net_device *pD)
++{
++ U32 oldVal;
++ int status = -1;
++ U16 val;
++
++ oldVal = RegRd32(REG_SelfCTL);
++
++ /*
++ * Set MDC clock to be divided by 8 and disable PreambleSuppress bit
++ */
++ RegWr32(REG_SelfCTL, 0x4e00);
++
++ /*
++ * read BM status Reg; Link Status Bit remains cleared until the Reg is
++ * read.
++ */
++ val = phy_rd(1);
++
++ /*
++ * read BMStaReg again to get the current link status
++ */
++ val = phy_rd(1);
++ if (val & 0x0004)
++ status = phy_autoNegotiation(pD);
++
++ RegWr32(REG_SelfCTL, oldVal);
++
++ return status;
++}
++
++/*****************************************************************************
++* phy_reset()
++*****************************************************************************/
++#if 0
++static int
++phy_reset(struct net_device *pD)
+ {
+- struct ep93xx_priv *ep = netdev_priv(dev);
++ int i;
+
+- while (processed < budget) {
+- int entry;
+- struct ep93xx_rstat *rstat;
+- u32 rstat0;
+- u32 rstat1;
+- int length;
+- struct sk_buff *skb;
+
+- entry = ep->rx_pointer;
+- rstat = ep->descs->rstat + entry;
++ phy_wr(0, 1 << 15);
+
+- rstat0 = rstat->rstat0;
+- rstat1 = rstat->rstat1;
+- if (!(rstat0 & RSTAT0_RFP) || !(rstat1 & RSTAT1_RFP))
++ for (i = 0; i < 1000; i++)
++ if ((phy_rd(0) & (1 << 15)) == 0)
+ break;
+
+- rstat->rstat0 = 0;
+- rstat->rstat1 = 0;
++ if ((phy_rd(0) & (1 << 15)) != 0) {
++ _PRTK_HWFAIL(("phy_reset(): PHY reset does not self-clear\n"));
++ return -1;
++ }
+
+- if (!(rstat0 & RSTAT0_EOF))
+- printk(KERN_CRIT "ep93xx_rx: not end-of-frame "
+- " %.8x %.8x\n", rstat0, rstat1);
+- if (!(rstat0 & RSTAT0_EOB))
+- printk(KERN_CRIT "ep93xx_rx: not end-of-buffer "
+- " %.8x %.8x\n", rstat0, rstat1);
+- if ((rstat1 & RSTAT1_BUFFER_INDEX) >> 16 != entry)
+- printk(KERN_CRIT "ep93xx_rx: entry mismatch "
+- " %.8x %.8x\n", rstat0, rstat1);
+-
+- if (!(rstat0 & RSTAT0_RWE)) {
+- ep->stats.rx_errors++;
+- if (rstat0 & RSTAT0_OE)
+- ep->stats.rx_fifo_errors++;
+- if (rstat0 & RSTAT0_FE)
+- ep->stats.rx_frame_errors++;
+- if (rstat0 & (RSTAT0_RUNT | RSTAT0_EDATA))
+- ep->stats.rx_length_errors++;
+- if (rstat0 & RSTAT0_CRCE)
+- ep->stats.rx_crc_errors++;
+- goto err;
+- }
+-
+- length = rstat1 & RSTAT1_FRAME_LENGTH;
+- if (length > MAX_PKT_SIZE) {
+- printk(KERN_NOTICE "ep93xx_rx: invalid length "
+- " %.8x %.8x\n", rstat0, rstat1);
+- goto err;
+- }
+-
+- /* Strip FCS. */
+- if (rstat0 & RSTAT0_CRCI)
+- length -= 4;
+-
+- skb = dev_alloc_skb(length + 2);
+- if (likely(skb != NULL)) {
+- skb_reserve(skb, 2);
+- dma_sync_single(NULL, ep->descs->rdesc[entry].buf_addr,
+- length, DMA_FROM_DEVICE);
+- skb_copy_to_linear_data(skb, ep->rx_buf[entry], length);
+- skb_put(skb, length);
+- skb->protocol = eth_type_trans(skb, dev);
++ phy_wr(19, 0x00);
++ phy_wr(4, (1 << 8) | (1 << 7) | (1 << 6) | (1 << 5) | (0x01 << 0));
++ phy_wr(0, (1 << 12) | (1 << 9));
+
+- dev->last_rx = jiffies;
++ return 0;
++}
++#endif
+
+- netif_receive_skb(skb);
++#ifndef _PRTK_DUMP
++# define _dbg_ep93xxEth_dumpQueues(pD)
++#else
++/*****************************************************************************
++* _dbg_ep93xxEth_dumpQueues()
++*****************************************************************************/
++static void
++_dbg_ep93xxEth_dumpQueues(struct net_device *pD)
++{
++ struct ep93xxEth_info *pP = pD->priv;
++ int i;
+
+- ep->stats.rx_packets++;
+- ep->stats.rx_bytes += length;
+- } else {
+- ep->stats.rx_dropped++;
+- }
++ _PRTK_DUMP(("Dumping Descriptor/Status Queues\n"));
++ _PRTK_DUMP((" pD:0x%p, Base Address:0x%x\n", pD,
++ (unsigned int)pD->base_addr));
++
++ _PRTK_DUMP((" o Rx Status Queue: at 0x%p, %d entries\n",
++ pP->s.pQueRxSts, LEN_QueRxSts));
++ for (i = 0; i < LEN_QueRxSts; i++)
++ _PRTK_DUMP((" - %2d: 0x%08x 0x%08x \n", i,
++ (unsigned int)pP->s.pQueRxSts[i].w.e0,
++ (unsigned int)pP->s.pQueRxSts[i].w.e1));
++
++ _PRTK_DUMP((" o Rx Descriptor Queue: at 0x%p, %d entries\n",
++ pP->s.pQueRxDesc, LEN_QueRxDesc));
++ for (i = 0; i < LEN_QueRxDesc; i++)
++ _PRTK_DUMP((" - %2d: 0x%08x 0x%08x \n", i,
++ (unsigned int)pP->s.pQueRxDesc[i].w.e0,
++ (unsigned int)pP->s.pQueRxDesc[i].w.e1));
++
++ _PRTK_DUMP((" o Tx Status Queue: at 0x%p, %d entries\n",
++ pP->s.pQueTxSts, LEN_QueTxSts));
++ for (i = 0; i < LEN_QueTxSts; i++)
++ _PRTK_DUMP((" - %2d: 0x%08x \n", i,
++ (unsigned int)pP->s.pQueTxSts[i].w.e0));
++
++ _PRTK_DUMP((" o Tx Descriptor Queue: at 0x%p, %d entries\n",
++ pP->s.pQueTxDesc, LEN_QueTxDesc));
++ for (i = 0; i < LEN_QueTxDesc; i++)
++ _PRTK_DUMP((" - %2d: 0x%08x 0x%08x \n", i,
++ (unsigned int)pP->s.pQueTxDesc[i].w.e0,
++ (unsigned int)pP->s.pQueTxDesc[i].w.e1));
++}
++#endif
++
++/*****************************************************************************
++* devQue_start()
++*
++ make descriptor queues active
++ allocate queue entries if needed
++ and set device registers up to make it operational
++ assume device has been initialized
++*
++*****************************************************************************/
++static int
++devQue_start(struct net_device *pD)
++{
++ int err;
++ struct ep93xxEth_info *pP = pD->priv;
++ int i;
++ void *pBuf;
++ U32 phyA;
+
+-err:
+- ep->rx_pointer = (entry + 1) & (RX_QUEUE_ENTRIES - 1);
+- processed++;
+- }
++ RegWr32(REG_BMCtl, BMCtl_RxDis | BMCtl_TxDis | RegRd32(REG_BMCtl));
++ err = waitOnReg32(pD, REG_BMSts, BMSts_TxAct, ~BMSts_TxAct, 1);
++ err |= waitOnReg32(pD, REG_BMSts, BMSts_RxAct, ~BMSts_RxAct, 1);
++ if (err)
++ _PRTK_HWFAIL(("devQue_start(): BM does not stop\n"));
++
++ memset(pP->s.pQueTxSts, 0, sizeof(pP->s.pQueTxSts[0]) * LEN_QueTxSts);
++ pP->d.idxQueTxSts = 0;
++ RegWr32(REG_TxSBA, pP->s.phyQueTxSts);
++ RegWr32(REG_TxSCA, pP->s.phyQueTxSts);
++ RegWr16(REG_TxSBL, sizeof(pP->s.pQueTxSts[0]) * LEN_QueTxSts);
++ RegWr16(REG_TxSCL, sizeof(pP->s.pQueTxSts[0]) * LEN_QueTxSts);
++
++ memset(pP->s.pQueTxDesc, 0,
++ sizeof(pP->s.pQueTxDesc[0]) * LEN_QueTxDesc);
++ pP->d.idxQueTxDescHead = pP->d.idxQueTxDescTail = 0;
++ RegWr32(REG_TxDBA, pP->s.phyQueTxDesc);
++ RegWr32(REG_TxDCA, pP->s.phyQueTxDesc);
++ RegWr16(REG_TxDBL, sizeof(pP->s.pQueTxDesc[0]) * LEN_QueTxDesc);
++ RegWr16(REG_TxDCL, sizeof(pP->s.pQueTxDesc[0]) * LEN_QueTxDesc);
++
++ memset(pP->s.pQueRxSts, 0, sizeof(pP->s.pQueRxSts[0]) * LEN_QueRxSts);
++ pP->d.idxQueRxSts = 0;
++ RegWr32(REG_RxSBA, pP->s.phyQueRxSts);
++ RegWr32(REG_RxSCA, pP->s.phyQueRxSts);
++ RegWr16(REG_RxSBL, sizeof(pP->s.pQueRxSts[0]) * LEN_QueRxSts);
++ RegWr16(REG_RxSCL, sizeof(pP->s.pQueRxSts[0]) * LEN_QueRxSts);
++
++ memset(pP->s.pQueRxDesc, 0,
++ sizeof(pP->s.pQueRxDesc[0]) * LEN_QueRxDesc);
++ phyA = pP->s.phyRxBuf;
++ for (i = 0; i < LEN_QueRxDesc; i++) {
++ pP->s.pQueRxDesc[i].f.bi = i;
++ pP->s.pQueRxDesc[i].f.ba = phyA;
++ pP->s.pQueRxDesc[i].f.bl = LEN_RxBuf;
++ phyA += (LEN_RxBuf + 3) & ~0x03;
++ }
++ pP->d.idxQueRxDesc = 0;
++ RegWr32(REG_RxDBA, pP->s.phyQueRxDesc);
++ RegWr32(REG_RxDCA, pP->s.phyQueRxDesc);
++ RegWr16(REG_RxDBL, sizeof(pP->s.pQueRxDesc[0]) * LEN_QueRxDesc);
++ RegWr16(REG_RxDCL, sizeof(pP->s.pQueRxDesc[0]) * LEN_QueRxDesc);
++
++ pBuf = pP->s.pRxBuf;
++ for (i = 0; i < LEN_QueRxDesc; i++) {
++ pP->s.pRxBufDesc[i].vaddr = pBuf;
++ pP->s.pRxBufDesc[i].pFreeRtn = 0;
++ pBuf += (LEN_RxBuf + 3) & ~0x03;
++ }
++
++ memset(pP->s.pTxBufDesc, 0x0,
++ sizeof(*pP->s.pTxBufDesc) * LEN_QueTxDesc);
++ pBuf = pP->s.pTxBuf;// = &gTxDataBuff[0][0];
++ for (i = 0; i < LEN_QueTxDesc; i++) {
++ pP->s.pTxBufDesc[i].vaddr = pBuf + (i*LEN_TxBuf);//&gTxDataBuff[i][0];
++ pP->s.pTxBufDesc[i].pFreeRtn = 0;
++ }
++
++ RegWr32(REG_BMCtl, BMCtl_TxEn | BMCtl_RxEn | RegRd32(REG_BMCtl));
++ err = waitOnReg32(pD, REG_BMSts, BMSts_TxAct | BMSts_TxAct,
++ BMSts_TxAct | BMSts_TxAct, 1);
++ if(err)
++ _PRTK_HWFAIL(("devQue_start(): BM does not start\n"));
+
+- if (processed) {
+- wrw(ep, REG_RXDENQ, processed);
+- wrw(ep, REG_RXSTSENQ, processed);
+- }
++ RegWr32(REG_RxSEQ, LEN_QueRxSts);
++ RegWr32(REG_RxDEQ, LEN_QueRxDesc);
+
+- return processed;
++ return 0;
+ }
+
+-static int ep93xx_have_more_rx(struct ep93xx_priv *ep)
+-{
+- struct ep93xx_rstat *rstat = ep->descs->rstat + ep->rx_pointer;
+- return !!((rstat->rstat0 & RSTAT0_RFP) && (rstat->rstat1 & RSTAT1_RFP));
+-}
++/*****************************************************************************
++* devQue_init()
++ init device descriptor queues at system level
++ device access is not recommended at this point
++*
++*****************************************************************************/
++static int
++devQue_init(struct net_device *pD)
++{
++ struct ep93xxEth_info *pP = pD->priv;
++ void *pBuf;
++ int size;
++
++ if (sizeof(receiveDescriptor) != 8) {
++ _PRTK_SWERR(("devQue_init(): size of receiveDescriptor is not 8 bytes!!!\n"));
++ return -1;
++ } else if (sizeof(receiveStatus) != 8) {
++ _PRTK_SWERR(("devQue_init(): size of receiveStatus is not 8 bytes!!!\n"));
++ return -1;
++ } else if (sizeof(transmitDescriptor) != 8) {
++ _PRTK_SWERR(("devQue_init(): size of transmitDescriptor is not 8 bytes!!!\n"));
++ return -1;
++ } else if (sizeof(transmitStatus) != 4) {
++ _PRTK_SWERR(("devQue_init(): size of transmitStatus is not 4 bytes!!!\n"));
++ return -1;
++ }
++
++ size = sizeof(receiveDescriptor) * (LEN_QueRxDesc + 1) +
++ sizeof(receiveStatus) * (LEN_QueRxSts + 1) +
++ sizeof(transmitDescriptor) * (LEN_QueTxDesc + 1) +
++ sizeof(transmitStatus) * (LEN_QueTxSts + 1) +
++ sizeof(unsigned long) * 4;
++
++ pBuf = MALLOC_DMA(size, &pP->s.phyQueueBase);
++ if(!pBuf)
++ return -1;
++
++ pP->s.pQueRxDesc = (void *)Align32(pBuf);
++ pBuf = (char *)pBuf + sizeof(receiveDescriptor) * (LEN_QueRxDesc + 1);
++ pP->s.pQueRxSts = (void *)Align32(pBuf);
++ pBuf = (char *)pBuf + sizeof(receiveStatus) * (LEN_QueRxSts + 1);
++ pP->s.pQueTxDesc = (void *)Align32(pBuf);
++ pBuf = (char *)pBuf + sizeof(transmitDescriptor) * (LEN_QueTxDesc + 1);
++ pP->s.pQueTxSts = (void *)Align32(pBuf);
++ pBuf = (char *)pBuf + sizeof(transmitStatus) * (LEN_QueTxSts + 1);
++
++ pP->s.phyQueRxDesc = Align32(pP->s.phyQueueBase);
++ pP->s.phyQueRxSts = pP->s.phyQueRxDesc + ((U32)pP->s.pQueRxSts -
++ (U32)pP->s.pQueRxDesc);
++ pP->s.phyQueTxDesc = pP->s.phyQueRxDesc + ((U32)pP->s.pQueTxDesc -
++ (U32)pP->s.pQueRxDesc);
++ pP->s.phyQueTxSts = pP->s.phyQueRxDesc + ((U32)pP->s.pQueTxSts -
++ (U32)pP->s.pQueRxDesc);
++
++ memset(pP->s.pQueRxDesc, 0, sizeof(receiveDescriptor) * LEN_QueRxDesc);
++ memset(pP->s.pQueRxSts, 0, sizeof(receiveStatus) * LEN_QueRxSts);
++ memset(pP->s.pQueTxDesc, 0,
++ sizeof(transmitDescriptor) * LEN_QueTxDesc);
++ memset(pP->s.pQueTxSts, 0, sizeof(transmitStatus) * LEN_QueTxSts);
++
++ pP->s.pRxBuf = MALLOC_DMA(((LEN_RxBuf + 3) & ~0x03) * LEN_QueRxDesc,
++ &pP->s.phyRxBuf);
++ if (!pP->s.pRxBuf) {
++ pP->s.pRxBuf = 0;
++ _PRTK_SYSFAIL(("devQue_init(): fail to allocate memory for RxBuf\n"));
++ return -1;
++ }
++
++ pP->s.pTxBuf = MALLOC_DMA(((LEN_TxBuf + 3) & ~0x03) * LEN_QueTxDesc,
++ &pP->s.phyTxBuf);
++ if (!pP->s.pTxBuf) {
++ pP->s.pTxBuf = 0;
++ _PRTK_SYSFAIL(("devQue_init(): fail to allocate memory for TxBuf\n"));
++ return -1;
++ }
++
++ size = sizeof(bufferDescriptor) * (LEN_QueRxDesc + LEN_QueTxDesc);
++ pBuf = kmalloc(size, GFP_KERNEL);
++ if(!pBuf) {
++ _PRTK_SYSFAIL(("devQue_initAll(): fail to allocate memory for buf desc\n"));
++ return -1;
++ }
++ memset(pBuf, 0x0, size);
++ pP->s.pRxBufDesc = pBuf;
++ pP->s.pTxBufDesc = pBuf + sizeof(bufferDescriptor) * LEN_QueRxDesc;
+
+-static int ep93xx_poll(struct napi_struct *napi, int budget)
+-{
+- struct ep93xx_priv *ep = container_of(napi, struct ep93xx_priv, napi);
+- struct net_device *dev = ep->dev;
+- int rx = 0;
++ return 0;
++}
+
+-poll_some_more:
+- rx = ep93xx_rx(dev, rx, budget);
+- if (rx < budget) {
+- int more = 0;
++#ifndef _PRTK_DUMP
++# define _dbg_ep93xxeth_dumpReg(pD)
++#else
++/*****************************************************************************
++* _dbg_ep93xxeth_dumpReg()
++*****************************************************************************/
++static void
++_dbg_ep93xxeth_dumpReg(struct net_device *pD)
++{
++ struct ep93xxEth_info *pP = pD->priv;
++
++ _PRTK_DUMP(("Dumping registers of Ethernet Module Embedded within EP93xx\n"));
++ _PRTK_DUMP((" pD:0x%p, Base Address:0x%x\n", pD,
++ (unsigned int)pD->base_addr));
++
++ _PRTK_DUMP((" RxCTL:0x%08x TxCTL:0x%08x TestCTL:0x%08x\n",
++ (unsigned int)RegRd32(REG_RxCTL),
++ (unsigned int)RegRd32(REG_TxCTL),
++ (unsigned int)RegRd32(REG_TestCTL)));
++ _PRTK_DUMP((" SelfCTL:0x%08x IntEn:0x%08x IntStsP:0x%08x\n",
++ (unsigned int)RegRd32(REG_SelfCTL),
++ (unsigned int)RegRd32(REG_IntEn),
++ (unsigned int)RegRd32(REG_IntStsP)));
++ _PRTK_DUMP((" GT:0x%08x FCT:0x%08x FCF:0x%08x\n",
++ (unsigned int)RegRd32(REG_GT),
++ (unsigned int)RegRd32(REG_FCT),
++ (unsigned int)RegRd32(REG_FCF)));
++ _PRTK_DUMP((" AFP:0x%08x\n", (unsigned int)RegRd32(REG_AFP)));
++ _PRTK_DUMP((" TxCollCnt:0x%08x RxMissCnt:0x%08x RxRntCnt:0x%08x\n",
++ (unsigned int)RegRd32(REG_TxCollCnt),
++ (unsigned int)RegRd32(REG_RxMissCnt),
++ (unsigned int)RegRd32(REG_RxRntCnt)));
++ _PRTK_DUMP((" BMCtl:0x%08x BMSts:0x%08x\n",
++ (unsigned int)RegRd32(REG_BMCtl),
++ (unsigned int)RegRd32(REG_BMSts)));
++ _PRTK_DUMP((" RBCA:0x%08x TBCA:0x%08x\n",
++ (unsigned int)RegRd32(REG_RBCA),
++ (unsigned int)RegRd32(REG_TBCA)));
++ _PRTK_DUMP((" RxDBA:0x%08x RxDBL/CL:0x%08x RxDCA:0x%08x\n",
++ (unsigned int)RegRd32(REG_RxDBA),
++ (unsigned int)RegRd32(REG_RxDBL),
++ (unsigned int)RegRd32(REG_RxDCA)));
++ _PRTK_DUMP((" RxSBA:0x%08x RxSBL/CL:0x%08x RxSCA:0x%08x\n",
++ (unsigned int)RegRd32(REG_RxSBA),
++ (unsigned int)RegRd32(REG_RxSBL),
++ (unsigned int)RegRd32(REG_RxSCA)));
++ _PRTK_DUMP((" RxDEQ:0x%08x RxSEQ:0x%08x\n",
++ (unsigned int)RegRd32(REG_RxDEQ),
++ (unsigned int)RegRd32(REG_RxSEQ)));
++ _PRTK_DUMP((" TxDBA:0x%08x TxDBL/CL:0x%08x TxDCA:0x%08x\n",
++ (unsigned int)RegRd32(REG_TxDBA),
++ (unsigned int)RegRd32(REG_TxDBL),
++ (unsigned int)RegRd32(REG_TxDCA)));
++ _PRTK_DUMP((" TxSBA:0x%08x TxSBL/CL:0x%08x TxSCA:0x%08x\n",
++ (unsigned int)RegRd32(REG_TxSBA),
++ (unsigned int)RegRd32(REG_TxSBL),
++ (unsigned int)RegRd32(REG_TxSCA)));
++ _PRTK_DUMP((" TxDEQ:0x%08x\n",(unsigned int)RegRd32(REG_TxDEQ)));
++ _PRTK_DUMP((" RxBTH:0x%08x TxBTH:0x%08x RxSTH:0x%08x\n",
++ (unsigned int)RegRd32(REG_RxBTH),
++ (unsigned int)RegRd32(REG_TxBTH),
++ (unsigned int)RegRd32(REG_RxSTH)));
++ _PRTK_DUMP((" TxSTH:0x%08x RxDTH:0x%08x TxDTH:0x%08x\n",
++ (unsigned int)RegRd32(REG_TxSTH),
++ (unsigned int)RegRd32(REG_RxDTH),
++ (unsigned int)RegRd32(REG_TxDTH)));
++ _PRTK_DUMP((" MaxFL:0x%08x RxHL:0x%08x\n",
++ (unsigned int)RegRd32(REG_MaxFL),
++ (unsigned int)RegRd32(REG_RxHL)));
++ _PRTK_DUMP((" MACCFG0-3:0x%08x 0x%08x 0x%08x 0x%08x\n",
++ (unsigned int)RegRd32(REG_MACCFG0),
++ (unsigned int)RegRd32(REG_MACCFG1),
++ (unsigned int)RegRd32(REG_MACCFG2),
++ (unsigned int)RegRd32(REG_MACCFG3)));
++
++ /*
++ _PRTK_DUMP((" ---INT Controller Reg---\n"));
++ _PRTK_DUMP((" RawIrqSts :0x%08x 0x%08x\n", _RegRd(U32,0x80800004),
++ _RegRd(U32,0x80800018)));
++ _PRTK_DUMP((" IrqMask :0x%08x 0x%08x\n", _RegRd(U32,0x80800008),
++ _RegRd(U32,0x8080001c)));
++ _PRTK_DUMP((" MaskIrqSts:0x%08x 0x%08x\n", _RegRd(U32,0x80800000),
++ _RegRd(U32,0x80800014)));
++ */
++
++
++ _PRTK_DUMP(("Dumping private data:\n"));
++ _PRTK_DUMP((" d.txStopped:%d d.idxQueTxSts:%d d.idxQueTxDescHead:%d d.idxQueTxDescTail:%d\n",
++ pP->d.txStopped, pP->d.idxQueTxSts, pP->d.idxQueTxDescHead,
++ pP->d.idxQueTxDescTail));
++ _PRTK_DUMP((" d.idxQueRxDesc:%d d.idxQueRxSts:%d\n",
++ pP->d.idxQueRxDesc, pP->d.idxQueRxSts));
++}
++#endif
++
++#define CRC_PRIME 0xFFFFFFFF
++#define CRC_POLYNOMIAL 0x04C11DB6
++/*****************************************************************************
++* calculate_hash_index()
++*****************************************************************************/
++static unsigned char
++calculate_hash_index(char *pMulticastAddr)
++{
++ unsigned long CRC;
++ unsigned char HashIndex;
++ unsigned char AddrByte;
++ unsigned char *pC;
++ unsigned long HighBit;
++ int Byte;
++ int Bit;
++
++ CRC = CRC_PRIME;
++ pC = pMulticastAddr;
++
++ for (Byte = 0; Byte < 6; Byte++) {
++ AddrByte = *pC;
++ pC++;
++
++ for (Bit = 8; Bit > 0; Bit--)
++ {
++ HighBit = CRC >> 31;
++ CRC <<= 1;
++
++ if (HighBit ^ (AddrByte & 1))
++ {
++ CRC ^= CRC_POLYNOMIAL;
++ CRC |= 1;
++ }
+
+- spin_lock_irq(&ep->rx_lock);
+- __netif_rx_complete(dev, napi);
+- wrl(ep, REG_INTEN, REG_INTEN_TX | REG_INTEN_RX);
+- if (ep93xx_have_more_rx(ep)) {
+- wrl(ep, REG_INTEN, REG_INTEN_TX);
+- wrl(ep, REG_INTSTSP, REG_INTSTS_RX);
+- more = 1;
++ AddrByte >>= 1;
+ }
+- spin_unlock_irq(&ep->rx_lock);
++ }
+
+- if (more && netif_rx_reschedule(dev, napi))
+- goto poll_some_more;
++ for (Bit = 0, HashIndex = 0; Bit < 6; Bit++)
++ {
++ HashIndex <<= 1;
++ HashIndex |= (unsigned char)(CRC & 1);
++ CRC >>= 1;
+ }
+
+- return rx;
++ return HashIndex;
+ }
+
+-static int ep93xx_xmit(struct sk_buff *skb, struct net_device *dev)
++/*****************************************************************************
++* eth_setMulticastTbl()
++*****************************************************************************/
++static void
++eth_setMulticastTbl(struct net_device *pD, U8 *pBuf)
+ {
+- struct ep93xx_priv *ep = netdev_priv(dev);
+- int entry;
+-
+- if (unlikely(skb->len > MAX_PKT_SIZE)) {
+- ep->stats.tx_dropped++;
+- dev_kfree_skb(skb);
+- return NETDEV_TX_OK;
+- }
+-
+- entry = ep->tx_pointer;
+- ep->tx_pointer = (ep->tx_pointer + 1) & (TX_QUEUE_ENTRIES - 1);
+-
+- ep->descs->tdesc[entry].tdesc1 =
+- TDESC1_EOF | (entry << 16) | (skb->len & 0xfff);
+- skb_copy_and_csum_dev(skb, ep->tx_buf[entry]);
+- dma_sync_single(NULL, ep->descs->tdesc[entry].buf_addr,
+- skb->len, DMA_TO_DEVICE);
+- dev_kfree_skb(skb);
++ int i;
++ unsigned char position;
++ struct dev_mc_list *cur_addr;
+
+- dev->trans_start = jiffies;
++ memset(pBuf, 0x00, 8);
+
+- spin_lock_irq(&ep->tx_pending_lock);
+- ep->tx_pending++;
+- if (ep->tx_pending == TX_QUEUE_ENTRIES)
+- netif_stop_queue(dev);
+- spin_unlock_irq(&ep->tx_pending_lock);
++ cur_addr = pD->mc_list;
++ for (i = 0; i < pD->mc_count; i++, cur_addr = cur_addr->next) {
++ if (!cur_addr)
++ break;
++ if (!(*cur_addr->dmi_addr & 1))
++ continue;
++ position = calculate_hash_index(cur_addr->dmi_addr);
++ pBuf[position >> 3] |= 1 << (position & 0x07);
++ }
++}
+
+- wrl(ep, REG_TXDENQ, 1);
++/*****************************************************************************
++* eth_indAddrWr()
++*****************************************************************************/
++static int
++eth_indAddrWr(struct net_device *pD, int afp, char *pBuf)
++{
++ U32 rxctl;
++ int i, len;
++
++ afp &= 0x07;
++ if (afp == 4 || afp == 5) {
++ _PRTK_SWERR(("eth_indAddrWr(): invalid afp value\n"));
++ return -1;
++ }
++ len = (afp == AFP_AFP_HASH) ? 8 : 6;
++
++ rxctl = RegRd32(REG_RxCTL);
++ RegWr32(REG_RxCTL, ~RxCTL_SRxON & rxctl);
++ RegWr32(REG_AFP, afp);
++ for (i = 0; i < len; i++)
++ RegWr8(REG_IndAD + i, pBuf[i]);
++ RegWr32(REG_RxCTL, rxctl);
+
+- return NETDEV_TX_OK;
++ return 0;
+ }
+
+-static void ep93xx_tx_complete(struct net_device *dev)
+-{
+- struct ep93xx_priv *ep = netdev_priv(dev);
+- int wake;
++/*****************************************************************************
++* eth_indAddrRd()
++*****************************************************************************/
++#if 0
++static int
++eth_indAddrRd(struct net_device *pD, int afp, char *pBuf)
++{
++ int i, len;
++
++ afp &= 0x07;
++ if (afp == 4 || afp == 5) {
++ _PRTK_SWERR(("eth_indAddrRd(): invalid afp value\n"));
++ return -1;
++ }
++
++ RegWr32(REG_AFP, afp);
++ len = (afp == AFP_AFP_HASH) ? 8 : 6;
++ for (i = 0; i < len; i++)
++ pBuf[i] = RegRd8(REG_IndAD + i);
+
+- wake = 0;
++ return 0;
++}
++#endif
+
+- spin_lock(&ep->tx_pending_lock);
+- while (1) {
+- int entry;
+- struct ep93xx_tstat *tstat;
+- u32 tstat0;
++/*****************************************************************************
++* eth_rxCtl()
++*****************************************************************************/
++static int
++eth_rxCtl(struct net_device *pD, int sw)
++{
++ /*
++ * Workaround for MAC lost 60-byte-long frames: must enable
++ * Runt_CRC_Accept bit
++ */
++ RegWr32(REG_RxCTL,
++ sw ? RegRd32(REG_RxCTL) | RxCTL_SRxON | RxCTL_RCRCA :
++ RegRd32(REG_RxCTL) & ~RxCTL_SRxON);
+
+- entry = ep->tx_clean_pointer;
+- tstat = ep->descs->tstat + entry;
++ return 0;
++}
+
+- tstat0 = tstat->tstat0;
+- if (!(tstat0 & TSTAT0_TXFP))
+- break;
++/*****************************************************************************
++* eth_chkTxLvl()
++*****************************************************************************/
++static void
++eth_chkTxLvl(struct net_device *pD)
++{
++ struct ep93xxEth_info *pP = pD->priv;
++ int idxQTxDescHd;
++ int filled;
++
++ idxQTxDescHd = pP->d.idxQueTxDescHead;
++
++ filled = idxQTxDescHd - pP->d.idxQueTxDescTail;
++ if (filled < 0)
++ filled += LEN_QueTxDesc;
++
++ if (pP->d.txStopped && filled <= (LVL_TxResume + 1)) {
++ pP->d.txStopped = 0;
++ pD->trans_start = jiffies;
++ netif_wake_queue(pD);
++ }
++}
+
+- tstat->tstat0 = 0;
++/*****************************************************************************
++* eth_cleanUpTx()
++*****************************************************************************/
++static int
++eth_cleanUpTx(struct net_device *pD)
++{
++ struct ep93xxEth_info *pP = pD->priv;
++ transmitStatus *pQTxSts;
++ int idxSts, bi;
++
++ while (pP->s.pQueTxSts[pP->d.idxQueTxSts].f.txfp) {
++ idxSts = pP->d.idxQueTxSts;
++
++ pP->d.idxQueTxSts = IdxNext(pP->d.idxQueTxSts,LEN_QueTxSts);
++ pQTxSts = &pP->s.pQueTxSts[idxSts];
++ if (!pQTxSts->f.txfp) {
++ _PRTK_HWFAIL(("eth_cleanUpTx(): QueTxSts[%d]:x%08x is empty\n",
++ idxSts, (int)pQTxSts->w.e0));
++ return -1;
++ }
+
+- if (tstat0 & TSTAT0_FA)
+- printk(KERN_CRIT "ep93xx_tx_complete: frame aborted "
+- " %.8x\n", tstat0);
+- if ((tstat0 & TSTAT0_BUFFER_INDEX) != entry)
+- printk(KERN_CRIT "ep93xx_tx_complete: entry mismatch "
+- " %.8x\n", tstat0);
++ pQTxSts->f.txfp = 0;
+
+- if (tstat0 & TSTAT0_TXWE) {
+- int length = ep->descs->tdesc[entry].tdesc1 & 0xfff;
++ bi = pQTxSts->f.bi;
++#if 0
++ if (pP->d.idxQueTxDescTail != bi) {
++ _PRTK_HWFAIL(("eth_cleanUpTx(): unmatching QTxSts[%d].BI:%d idxQTxDTail:%d\n",
++ idxSts,bi, pP->d.idxQueTxDescTail));
++ }
++#endif
++
++ if (pP->s.pTxBufDesc[bi].pFreeRtn) {
++ (*pP->s.pTxBufDesc[bi].pFreeRtn)(pP->s.pTxBufDesc[bi].vaddr);
++ pP->s.pTxBufDesc[bi].pFreeRtn = 0;
++ }
+
+- ep->stats.tx_packets++;
+- ep->stats.tx_bytes += length;
++ if (pQTxSts->f.txwe) {
++ pP->d.stats.tx_packets++;
+ } else {
+- ep->stats.tx_errors++;
++ pP->d.stats.tx_errors++;
++ if (pQTxSts->f.lcrs)
++ pP->d.stats.tx_carrier_errors++;
++ if(pQTxSts->f.txu)
++ pP->d.stats.tx_fifo_errors++;
++ if(pQTxSts->f.ecoll)
++ pP->d.stats.collisions++;
+ }
+
+- if (tstat0 & TSTAT0_OW)
+- ep->stats.tx_window_errors++;
+- if (tstat0 & TSTAT0_TXU)
+- ep->stats.tx_fifo_errors++;
+- ep->stats.collisions += (tstat0 >> 16) & 0x1f;
+-
+- ep->tx_clean_pointer = (entry + 1) & (TX_QUEUE_ENTRIES - 1);
+- if (ep->tx_pending == TX_QUEUE_ENTRIES)
+- wake = 1;
+- ep->tx_pending--;
++ pP->d.idxQueTxDescTail = IdxNext(pP->d.idxQueTxDescTail,
++ LEN_QueTxDesc);
+ }
+- spin_unlock(&ep->tx_pending_lock);
+
+- if (wake)
+- netif_wake_queue(dev);
++ return 0;
+ }
+
+-static irqreturn_t ep93xx_irq(int irq, void *dev_id)
++/*****************************************************************************
++* eth_restartTx()
++*****************************************************************************/
++static int
++eth_restartTx(struct net_device *pD)
+ {
+- struct net_device *dev = dev_id;
+- struct ep93xx_priv *ep = netdev_priv(dev);
+- u32 status;
++ struct ep93xxEth_info *pP = pD->priv;
++ int i;
+
+- status = rdl(ep, REG_INTSTSC);
+- if (status == 0)
+- return IRQ_NONE;
++ RegWr32(REG_GIntMsk, RegRd32(REG_GIntMsk) & ~GIntMsk_IntEn);
+
+- if (status & REG_INTSTS_RX) {
+- spin_lock(&ep->rx_lock);
+- if (likely(netif_rx_schedule_prep(dev, &ep->napi))) {
+- wrl(ep, REG_INTEN, REG_INTEN_TX);
+- __netif_rx_schedule(dev, &ep->napi);
+- }
+- spin_unlock(&ep->rx_lock);
++ RegWr32(REG_TxCTL, RegRd32(REG_TxCTL) & ~TxCTL_STxON);
++ RegWr32(REG_BMCtl, RegRd32(REG_BMCtl) | BMCtl_TxDis);
++
++ RegWr32(REG_BMCtl, BMCtl_TxChR | RegRd32(REG_BMCtl));
++
++ for (i = 0; i < LEN_QueTxDesc; i++) {
++ if (pP->s.pTxBufDesc[i].pFreeRtn) {
++ pP->s.pTxBufDesc[i].pFreeRtn(pP->s.pTxBufDesc[i].vaddr);
++ pP->s.pTxBufDesc[i].pFreeRtn = 0;
++ }
++ pP->d.stats.tx_dropped++;
+ }
+
+- if (status & REG_INTSTS_TX)
+- ep93xx_tx_complete(dev);
++ memset(pP->s.pQueTxSts, 0, sizeof(pP->s.pQueTxSts[0]) * LEN_QueTxSts);
+
+- return IRQ_HANDLED;
+-}
++ pP->d.txStopped = 0;
++ pP->d.idxQueTxSts = pP->d.idxQueTxDescHead = pP->d.idxQueTxDescTail =
++ 0;
+
+-static void ep93xx_free_buffers(struct ep93xx_priv *ep)
+-{
+- int i;
++ waitOnReg32(pD, REG_BMSts, BMCtl_TxChR, ~BMCtl_TxChR, 1);
++ RegWr32(REG_TxSBA, pP->s.phyQueTxSts);
++ RegWr32(REG_TxSCA, pP->s.phyQueTxSts);
++ RegWr16(REG_TxSBL, sizeof(pP->s.pQueTxSts[0]) * LEN_QueTxSts);
++ RegWr16(REG_TxSCL, sizeof(pP->s.pQueTxSts[0]) * LEN_QueTxSts);
++ RegWr32(REG_TxDBA, pP->s.phyQueTxDesc);
++ RegWr32(REG_TxDCA, pP->s.phyQueTxDesc);
++ RegWr16(REG_TxDBL, sizeof(pP->s.pQueTxDesc[0]) * LEN_QueTxDesc);
++ RegWr16(REG_TxDCL, sizeof(pP->s.pQueTxDesc[0]) * LEN_QueTxDesc);
+
+- for (i = 0; i < RX_QUEUE_ENTRIES; i += 2) {
+- dma_addr_t d;
++ RegWr32(REG_TxCTL, RegRd32(REG_TxCTL) | TxCTL_STxON);
++ RegWr32(REG_BMCtl, RegRd32(REG_BMCtl) | BMCtl_TxEn);
+
+- d = ep->descs->rdesc[i].buf_addr;
+- if (d)
+- dma_unmap_single(NULL, d, PAGE_SIZE, DMA_FROM_DEVICE);
++ RegWr32(REG_GIntMsk, RegRd32(REG_GIntMsk) | GIntMsk_IntEn);
+
+- if (ep->rx_buf[i] != NULL)
+- free_page((unsigned long)ep->rx_buf[i]);
+- }
++ return 0;
++}
+
+- for (i = 0; i < TX_QUEUE_ENTRIES; i += 2) {
+- dma_addr_t d;
++/*****************************************************************************
++* eth_reset()
++*****************************************************************************/
++static int
++eth_reset(struct net_device *pD)
++{
++ int err;
+
+- d = ep->descs->tdesc[i].buf_addr;
+- if (d)
+- dma_unmap_single(NULL, d, PAGE_SIZE, DMA_TO_DEVICE);
++ RegWr8(REG_SelfCTL, SelfCTL_RESET);
++ err = waitOnReg32(pD, REG_SelfCTL, SelfCTL_RESET, ~SelfCTL_RESET, 1);
++ if (err)
++ _PRTK_WARN(("eth_reset(): Soft Reset does not self-clear\n"));
+
+- if (ep->tx_buf[i] != NULL)
+- free_page((unsigned long)ep->tx_buf[i]);
+- }
++ //phy_reset(pD);
+
+- dma_free_coherent(NULL, sizeof(struct ep93xx_descs), ep->descs,
+- ep->descs_dma_addr);
++ return 0;
+ }
+
+-/*
+- * The hardware enforces a sub-2K maximum packet size, so we put
+- * two buffers on every hardware page.
+- */
+-static int ep93xx_alloc_buffers(struct ep93xx_priv *ep)
++/*****************************************************************************
++ . Function: eth_shutDown()
++ . Purpose: closes down the Ethernet module
++ . Make sure to:
++ . 1. disable all interrupt mask
++ . 2. disable Rx
++ . 3. disable Tx
++ .
++ . TODO:
++ . (1) maybe utilize power down mode.
++ . Why not yet? Because while the chip will go into power down mode,
++ . the manual says that it will wake up in response to any I/O requests
++ . in the register space. Empirical results do not show this working.
++*
++*****************************************************************************/
++static int
++eth_shutDown(struct net_device *pD)
+ {
+- int i;
+-
+- ep->descs = dma_alloc_coherent(NULL, sizeof(struct ep93xx_descs),
+- &ep->descs_dma_addr, GFP_KERNEL | GFP_DMA);
+- if (ep->descs == NULL)
+- return 1;
++ eth_reset(pD);
+
+- for (i = 0; i < RX_QUEUE_ENTRIES; i += 2) {
+- void *page;
+- dma_addr_t d;
++ return 0;
++}
+
+- page = (void *)__get_free_page(GFP_KERNEL | GFP_DMA);
+- if (page == NULL)
+- goto err;
++/*****************************************************************************
++* eth_enable()
+
+- d = dma_map_single(NULL, page, PAGE_SIZE, DMA_FROM_DEVICE);
+- if (dma_mapping_error(d)) {
+- free_page((unsigned long)page);
+- goto err;
+- }
++ Purpose:
++ Turn on device interrupt for interrupt driven operation.
++ Also turn on Rx but no Tx.
++*
++*****************************************************************************/
++static int
++eth_enable(struct net_device *pD)
++{
++ RegWr32(REG_IntEn, Default_IntSrc);
++ RegWr32(REG_GIntMsk, GIntMsk_IntEn);
++ eth_rxCtl(pD, 1);
+
+- ep->rx_buf[i] = page;
+- ep->descs->rdesc[i].buf_addr = d;
+- ep->descs->rdesc[i].rdesc1 = (i << 16) | PKT_BUF_SIZE;
++ return 0;
++}
+
+- ep->rx_buf[i + 1] = page + PKT_BUF_SIZE;
+- ep->descs->rdesc[i + 1].buf_addr = d + PKT_BUF_SIZE;
+- ep->descs->rdesc[i + 1].rdesc1 = ((i + 1) << 16) | PKT_BUF_SIZE;
+- }
++/*****************************************************************************
++* eth_init()
+
+- for (i = 0; i < TX_QUEUE_ENTRIES; i += 2) {
+- void *page;
+- dma_addr_t d;
++ Purpose:
++ Reset and initialize the device.
++ Device should be initialized enough to function in polling mode.
++ Tx and Rx must be disabled and no INT generation.
++*
++*****************************************************************************/
++static int
++eth_init(struct net_device *pD)
++{
++ int status;
++
++ eth_reset(pD);
++
++ gPhyAutoNegoDone = 0;
++ status = phy_init(pD);
++ if (status != 0)
++ printk(KERN_WARNING "%s: No network cable detected!\n", pD->name);
++
++ RegWr32(REG_SelfCTL, 0x0f00);
++ RegWr32(REG_GIntMsk, 0x00);
++ RegWr32(REG_RxCTL, RxCTL_BA | RxCTL_IA0);
++ RegWr32(REG_TxCTL, 0x00);
++ RegWr32(REG_GT, 0x00);
++ RegWr32(REG_BMCtl, 0x00);
++ RegWr32(REG_RxBTH, (0x80 << 16) | (0x40 << 0));
++ RegWr32(REG_TxBTH, (0x80 << 16) | (0x40 << 0));
++ RegWr32(REG_RxSTH, (4 << 16) | (2 << 0));
++ RegWr32(REG_TxSTH, (4 << 16) | (2 << 0));
++ RegWr32(REG_RxDTH, (4 << 16) | (2 << 0));
++ RegWr32(REG_TxDTH, (4 << 16) | (2 << 0));
++ RegWr32(REG_MaxFL, ((1518 + 1) << 16) | (944 << 0));
++
++ RegRd32(REG_TxCollCnt);
++ RegRd32(REG_RxMissCnt);
++ RegRd32(REG_RxRntCnt);
+
+- page = (void *)__get_free_page(GFP_KERNEL | GFP_DMA);
+- if (page == NULL)
+- goto err;
++ RegRd32(REG_IntStsC);
+
+- d = dma_map_single(NULL, page, PAGE_SIZE, DMA_TO_DEVICE);
+- if (dma_mapping_error(d)) {
+- free_page((unsigned long)page);
+- goto err;
+- }
++ RegWr32(REG_TxCTL, TxCTL_STxON | RegRd32(REG_TxCTL));
+
+- ep->tx_buf[i] = page;
+- ep->descs->tdesc[i].buf_addr = d;
++ eth_indAddrWr(pD, AFP_AFP_IA0, &pD->dev_addr[0]);
+
+- ep->tx_buf[i + 1] = page + PKT_BUF_SIZE;
+- ep->descs->tdesc[i + 1].buf_addr = d + PKT_BUF_SIZE;
+- }
++ devQue_start(pD);
+
+ return 0;
+-
+-err:
+- ep93xx_free_buffers(ep);
+- return 1;
+ }
+
+-static int ep93xx_start_hw(struct net_device *dev)
+-{
+- struct ep93xx_priv *ep = netdev_priv(dev);
+- unsigned long addr;
+- int i;
+-
+- wrl(ep, REG_SELFCTL, REG_SELFCTL_RESET);
+- for (i = 0; i < 10; i++) {
+- if ((rdl(ep, REG_SELFCTL) & REG_SELFCTL_RESET) == 0)
+- break;
+- msleep(1);
+- }
+-
+- if (i == 10) {
+- printk(KERN_CRIT DRV_MODULE_NAME ": hw failed to reset\n");
+- return 1;
+- }
+-
+- wrl(ep, REG_SELFCTL, ((ep->mdc_divisor - 1) << 9));
+-
+- /* Does the PHY support preamble suppress? */
+- if ((ep93xx_mdio_read(dev, ep->mii.phy_id, MII_BMSR) & 0x0040) != 0)
+- wrl(ep, REG_SELFCTL, ((ep->mdc_divisor - 1) << 9) | (1 << 8));
+-
+- /* Receive descriptor ring. */
+- addr = ep->descs_dma_addr + offsetof(struct ep93xx_descs, rdesc);
+- wrl(ep, REG_RXDQBADD, addr);
+- wrl(ep, REG_RXDCURADD, addr);
+- wrw(ep, REG_RXDQBLEN, RX_QUEUE_ENTRIES * sizeof(struct ep93xx_rdesc));
+-
+- /* Receive status ring. */
+- addr = ep->descs_dma_addr + offsetof(struct ep93xx_descs, rstat);
+- wrl(ep, REG_RXSTSQBADD, addr);
+- wrl(ep, REG_RXSTSQCURADD, addr);
+- wrw(ep, REG_RXSTSQBLEN, RX_QUEUE_ENTRIES * sizeof(struct ep93xx_rstat));
+-
+- /* Transmit descriptor ring. */
+- addr = ep->descs_dma_addr + offsetof(struct ep93xx_descs, tdesc);
+- wrl(ep, REG_TXDQBADD, addr);
+- wrl(ep, REG_TXDQCURADD, addr);
+- wrw(ep, REG_TXDQBLEN, TX_QUEUE_ENTRIES * sizeof(struct ep93xx_tdesc));
+-
+- /* Transmit status ring. */
+- addr = ep->descs_dma_addr + offsetof(struct ep93xx_descs, tstat);
+- wrl(ep, REG_TXSTSQBADD, addr);
+- wrl(ep, REG_TXSTSQCURADD, addr);
+- wrw(ep, REG_TXSTSQBLEN, TX_QUEUE_ENTRIES * sizeof(struct ep93xx_tstat));
+-
+- wrl(ep, REG_BMCTL, REG_BMCTL_ENABLE_TX | REG_BMCTL_ENABLE_RX);
+- wrl(ep, REG_INTEN, REG_INTEN_TX | REG_INTEN_RX);
+- wrl(ep, REG_GIINTMSK, 0);
++/*****************************************************************************
++* eth_isrRx()
++*
++* Interrupt Service Routines
++*
++*****************************************************************************/
++static int
++eth_isrRx(struct net_device *pD)
++{
++ ep93xxEth_info *pP = pD->priv;
++ receiveStatus *pQRxSts;
++ int idxQRxStsHead;
++ int idxSts;
++ int cntStsProcessed, cntDescProcessed;
++ char *pDest;
++ struct sk_buff *pSkb;
++ int len;
++ UINT dt;
++
++ dt = RegRd32(REG_RxSCA);
++ idxQRxStsHead = (dt - pP->s.phyQueRxSts) / sizeof(pP->s.pQueRxSts[0]);
++ if (!(idxQRxStsHead >= 0 && idxQRxStsHead < LEN_QueRxSts)) {
++ _PRTK_HWFAIL(("eth_isrRx(): invalid REG_RxSCA:0x%x idx:%d (phyQueRxSts:0x%x Len:%x)\n",
++ dt,idxQRxStsHead, (int)pP->s.phyQueRxSts,
++ LEN_QueRxSts));
++ return -1;
++ }
++
++ cntStsProcessed = cntDescProcessed = 0;
++ while (idxQRxStsHead != pP->d.idxQueRxSts) {
++ idxSts = pP->d.idxQueRxSts;
++ pP->d.idxQueRxSts = IdxNext(pP->d.idxQueRxSts, LEN_QueRxSts);
++ pQRxSts = &pP->s.pQueRxSts[idxSts];
++ if (!pQRxSts->f.rfp) {
++ _PRTK_HWFAIL(("eth_isrRx(): QueRxSts[%d] is empty; Hd:%d\n",
++ idxSts,idxQRxStsHead));
++ return -1;
++ }
++ pQRxSts->f.rfp = 0;
+
+- for (i = 0; i < 10; i++) {
+- if ((rdl(ep, REG_BMSTS) & REG_BMSTS_RX_ACTIVE) != 0)
+- break;
+- msleep(1);
+- }
++ if(pQRxSts->f.eob) {
++ if(pQRxSts->f.bi == pP->d.idxQueRxDesc) {
++ pP->d.idxQueRxDesc =
++ IdxNext(pP->d.idxQueRxDesc,
++ LEN_QueRxDesc);
++ cntDescProcessed++;
++ if (pQRxSts->f.eof && pQRxSts->f.rwe) {
++ len = pQRxSts->f.fl;
++ pSkb = dev_alloc_skb(len + 5);
++ if (pSkb != NULL) {
++ skb_reserve(pSkb, 2);
++ pSkb->dev = pD;
++ pDest = skb_put(pSkb, len);
++
++ memcpy(pDest,
++ pP->s.pRxBufDesc[pQRxSts->f.bi].vaddr,
++ len);
++ pSkb->protocol =
++ eth_type_trans(pSkb,
++ pD);
++ netif_rx(pSkb);
++ pP->d.stats.rx_packets++;
++ if(pQRxSts->f.am == 3)
++ pP->d.stats.multicast++;
++ } else
++ _PRTK_SYSFAIL(("eth_isrRx(): Low Memory, Rx dropped\n"));
++ pP->d.stats.rx_dropped++;
++ } else {
++ pP->d.stats.rx_errors++;
++ if (pQRxSts->f.oe)
++ pP->d.stats.rx_fifo_errors++;
++ if (pQRxSts->f.fe)
++ pP->d.stats.rx_frame_errors++;
++ if (pQRxSts->f.runt ||
++ pQRxSts->f.edata)
++ pP->d.stats.rx_length_errors++;
++ if (pQRxSts->f.crce)
++ pP->d.stats.rx_crc_errors++;
++ }
++ } else
++ _PRTK_HWFAIL(("eth_isrRx(): unmatching QueRxSts[%d].BI:0x%x; idxQueRxDesc:0x%x\n",
++ idxSts, pQRxSts->f.bi,
++ pP->d.idxQueRxDesc));
++ }
+
+- if (i == 10) {
+- printk(KERN_CRIT DRV_MODULE_NAME ": hw failed to start\n");
+- return 1;
++ cntStsProcessed++;
+ }
+
+- wrl(ep, REG_RXDENQ, RX_QUEUE_ENTRIES);
+- wrl(ep, REG_RXSTSENQ, RX_QUEUE_ENTRIES);
+-
+- wrb(ep, REG_INDAD0, dev->dev_addr[0]);
+- wrb(ep, REG_INDAD1, dev->dev_addr[1]);
+- wrb(ep, REG_INDAD2, dev->dev_addr[2]);
+- wrb(ep, REG_INDAD3, dev->dev_addr[3]);
+- wrb(ep, REG_INDAD4, dev->dev_addr[4]);
+- wrb(ep, REG_INDAD5, dev->dev_addr[5]);
+- wrl(ep, REG_AFP, 0);
+-
+- wrl(ep, REG_MAXFRMLEN, (MAX_PKT_SIZE << 16) | MAX_PKT_SIZE);
+-
+- wrl(ep, REG_RXCTL, REG_RXCTL_DEFAULT);
+- wrl(ep, REG_TXCTL, REG_TXCTL_ENABLE);
++ RegWr32(REG_RxSEQ, cntStsProcessed);
++ RegWr32(REG_RxDEQ, cntDescProcessed);
+
+ return 0;
+ }
+
+-static void ep93xx_stop_hw(struct net_device *dev)
++/*****************************************************************************
++* eth_isrTx()
++*****************************************************************************/
++static int
++eth_isrTx(struct net_device *pD)
+ {
+- struct ep93xx_priv *ep = netdev_priv(dev);
+- int i;
++ eth_cleanUpTx(pD);
++ eth_chkTxLvl(pD);
++ return 0;
++}
+
+- wrl(ep, REG_SELFCTL, REG_SELFCTL_RESET);
+- for (i = 0; i < 10; i++) {
+- if ((rdl(ep, REG_SELFCTL) & REG_SELFCTL_RESET) == 0)
+- break;
+- msleep(1);
+- }
++/*****************************************************************************
++* ep93xxEth_isr()
++*****************************************************************************/
++static irqreturn_t
++ep93xxEth_isr(int irq,void *pDev)
++{
++ struct net_device *pD = pDev;
++ int lpCnt;
++ U32 intS;
++
++ lpCnt = 0;
++ do {
++ intS = RegRd32(REG_IntStsC);
+
+- if (i == 10)
+- printk(KERN_CRIT DRV_MODULE_NAME ": hw failed to reset\n");
++ if (!intS)
++ break;
++ if (intS & IntSts_RxSQ)
++ eth_isrRx(pD);
++ if (intS & IntSts_TxSQ)
++ eth_isrTx(pD);
++ } while (lpCnt++ < 64);
++
++ if (lpCnt)
++ return IRQ_HANDLED;
++ else
++ return IRQ_NONE;
+ }
+
+-static int ep93xx_open(struct net_device *dev)
+-{
+- struct ep93xx_priv *ep = netdev_priv(dev);
+- int err;
++/*=========================================================
++ * Exposed Driver Routines to the Outside World
++ *=======================================================*/
++
++/*****************************************************************************
++* ep93xxEth_getStats()
++*****************************************************************************/
++static struct net_device_stats *
++ep93xxEth_getStats(struct net_device *pD)
++{
++ return &((struct ep93xxEth_info *)pD->priv)->d.stats;
++}
++
++/*****************************************************************************
++* ep93xxEth_setMulticastList()
++*****************************************************************************/
++static void
++ep93xxEth_setMulticastList(struct net_device *pD)
++{
++ U8 tblMulti[8 + 1];
++
++ if (pD->flags & IFF_PROMISC)
++ RegWr32(REG_RxCTL, RxCTL_PA | RegRd32(REG_RxCTL));
++ else if(pD->flags & IFF_ALLMULTI) {
++ RegWr32(REG_RxCTL, RxCTL_MA |
++ (~RxCTL_PA & RegRd32(REG_RxCTL)));
++ eth_indAddrWr(pD, AFP_AFP_HASH,
++ "\xff\xff\xff\xff\xff\xff\xff\xff");
++ } else if(pD->mc_count) {
++ RegWr32(REG_RxCTL, RxCTL_MA |
++ (~RxCTL_PA & RegRd32(REG_RxCTL)));
++ eth_setMulticastTbl(pD, &tblMulti[0]);
++ eth_indAddrWr(pD, AFP_AFP_HASH, &tblMulti[0]);
++ } else
++ RegWr32(REG_RxCTL,
++ ~(RxCTL_PA | RxCTL_MA) & RegRd32(REG_RxCTL));
++}
++
++/*****************************************************************************
++* ep93xxEth_txTimeout()
++*****************************************************************************/
++static void
++ep93xxEth_txTimeout(struct net_device *pD)
++{
++ int status;
++
++ _PRTK_WARN(("ep93xxEth_txTimeout(): transmit timed out\n"));
++
++ if (gPhyAutoNegoDone == 0) {
++ status = phy_init(pD);
++ if (status != 0)
++ {
++ printk(KERN_WARNING "%s: No network cable detected!\n",
++ pD->name);
++ return;
++ }
++ }
+
+- if (ep93xx_alloc_buffers(ep))
+- return -ENOMEM;
++ eth_restartTx(pD);
+
+- if (is_zero_ether_addr(dev->dev_addr)) {
+- random_ether_addr(dev->dev_addr);
+- printk(KERN_INFO "%s: generated random MAC address "
+- "%.2x:%.2x:%.2x:%.2x:%.2x:%.2x.\n", dev->name,
+- dev->dev_addr[0], dev->dev_addr[1],
+- dev->dev_addr[2], dev->dev_addr[3],
+- dev->dev_addr[4], dev->dev_addr[5]);
+- }
+-
+- napi_enable(&ep->napi);
+-
+- if (ep93xx_start_hw(dev)) {
+- napi_disable(&ep->napi);
+- ep93xx_free_buffers(ep);
+- return -EIO;
+- }
+-
+- spin_lock_init(&ep->rx_lock);
+- ep->rx_pointer = 0;
+- ep->tx_clean_pointer = 0;
+- ep->tx_pointer = 0;
+- spin_lock_init(&ep->tx_pending_lock);
+- ep->tx_pending = 0;
++ pD->trans_start = jiffies;
++ netif_wake_queue(pD);
++}
+
+- err = request_irq(ep->irq, ep93xx_irq, IRQF_SHARED, dev->name, dev);
+- if (err) {
+- napi_disable(&ep->napi);
+- ep93xx_stop_hw(dev);
+- ep93xx_free_buffers(ep);
+- return err;
++/*****************************************************************************
++* ep93xxEth_hardStartXmit()
++*****************************************************************************/
++static int
++ep93xxEth_hardStartXmit(struct sk_buff *pSkb, struct net_device *pD)
++{
++ struct ep93xxEth_info *pP = pD->priv;
++ transmitDescriptor *pQTxDesc;
++ int idxQTxDescHd;
++ int filled;
++ int status;
++
++ if (gPhyAutoNegoDone == 0) {
++ status = phy_init(pD);
++ if (status != 0)
++ {
++ return 1;
++ }
+ }
+
+- wrl(ep, REG_GIINTMSK, REG_GIINTMSK_ENABLE);
++ idxQTxDescHd = pP->d.idxQueTxDescHead;
++ pQTxDesc = &pP->s.pQueTxDesc[idxQTxDescHd];
++
++ filled = idxQTxDescHd - pP->d.idxQueTxDescTail;
++ if (filled < 0)
++ filled += LEN_QueTxDesc;
++ filled += 1;
++
++ if(filled >= LVL_TxStop) {
++ netif_stop_queue(pD);
++ pP->d.txStopped = 1;
++ if(filled > LVL_TxStop) {
++ _PRTK_SYSFAIL(("ep93xxEth_hardStartXmit(): a Tx Request while stop\n"));
++ return 1;
++ }
++ }
+
+- netif_start_queue(dev);
++ if (pSkb->len < 60) {
++ pQTxDesc->f.bl = 60;
++ memset(pP->s.pTxBufDesc[idxQTxDescHd].vaddr, 0, 60);
++ } else
++ pQTxDesc->f.bl = pSkb->len;
++ pQTxDesc->f.ba = pP->s.phyTxBuf+(idxQTxDescHd * LEN_TxBuf);//virt_to_bus(pP->s.pTxBufDesc[idxQTxDescHd].vaddr);
++ pQTxDesc->f.bi = idxQTxDescHd;
++ pQTxDesc->f.af = 0;
++ pQTxDesc->f.eof = 1;
++
++ memcpy(pP->s.pTxBufDesc[idxQTxDescHd].vaddr, pSkb->data, pSkb->len);
++ pP->s.pTxBufDesc[idxQTxDescHd].pFreeRtn = 0;
++
++ free_skb(pSkb);
++
++ pP->d.idxQueTxDescHead = IdxNext(pP->d.idxQueTxDescHead,
++ LEN_QueTxDesc);
++ RegWr32(REG_TxDEQ, 1);
+
+ return 0;
+ }
+
+-static int ep93xx_close(struct net_device *dev)
++/*****************************************************************************
++ . ep93xxEth_close()
++ .
++ . this makes the board clean up everything that it can
++ . and not talk to the outside world. Caused by
++ . an 'ifconfig ethX down'
++ *
++*****************************************************************************/
++static int
++ep93xxEth_close(struct net_device *pD)
+ {
+- struct ep93xx_priv *ep = netdev_priv(dev);
++ netif_stop_queue(pD);
++ eth_shutDown(pD);
+
+- napi_disable(&ep->napi);
+- netif_stop_queue(dev);
+-
+- wrl(ep, REG_GIINTMSK, 0);
+- free_irq(ep->irq, dev);
+- ep93xx_stop_hw(dev);
+- ep93xx_free_buffers(ep);
++ /*MOD_DEC_USE_COUNT;*/
+
+ return 0;
+ }
+
+-static int ep93xx_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
++/*******************************************************
++ * ep93xxEth_open()
++ *
++ * Open and Initialize the board
++ *
++ * Set up everything, reset the card, etc ..
++ *
++ ******************************************************/
++static int
++ep93xxEth_open(struct net_device *pD)
+ {
+- struct ep93xx_priv *ep = netdev_priv(dev);
+- struct mii_ioctl_data *data = if_mii(ifr);
++ int status;
++ struct ep93xxEth_info *pP = pD->priv;
+
+- return generic_mii_ioctl(&ep->mii, data, cmd, NULL);
+-}
++ memset(&pP->d, 0, sizeof(pP->d));
+
+-static int ep93xx_mdio_read(struct net_device *dev, int phy_id, int reg)
+-{
+- struct ep93xx_priv *ep = netdev_priv(dev);
+- int data;
+- int i;
++ /*MOD_INC_USE_COUNT;*/
+
+- wrl(ep, REG_MIICMD, REG_MIICMD_READ | (phy_id << 5) | reg);
++ status = eth_init(pD);
++ if (status != 0 )
++ return -EAGAIN;
+
+- for (i = 0; i < 10; i++) {
+- if ((rdl(ep, REG_MIISTS) & REG_MIISTS_BUSY) == 0)
+- break;
+- msleep(1);
+- }
++ eth_enable(pD);
+
+- if (i == 10) {
+- printk(KERN_INFO DRV_MODULE_NAME ": mdio read timed out\n");
+- data = 0xffff;
+- } else {
+- data = rdl(ep, REG_MIIDATA);
+- }
++#if 0
++ _dbg_phy_dumpReg(pD);
++ _dbg_ep93xxeth_dumpReg(pD);
++ _dbg_ep93xxEth_dumpQueues(pD);
++#endif
+
+- return data;
++ netif_start_queue(pD);
++
++ return 0;
+ }
+
+-static void ep93xx_mdio_write(struct net_device *dev, int phy_id, int reg, int data)
+-{
+- struct ep93xx_priv *ep = netdev_priv(dev);
++/*****************************************************************************
++ .
++ . ep93xxEth_probe( struct net_device * dev )
++ . This is the first routine called to probe device existance
++ . and initialize the driver if the device found.
++ .
++ . Input parameters:
++ . dev->base_addr == 0, try to find all possible locations
++ . dev->base_addr == 1, return failure code
++ . dev->base_addr == 2, always allocate space, and return success
++ . dev->base_addr == <anything else> this is the address to check
++ .
++ . Output:
++ . 0 --> there is a device
++ . anything else, error
++
++*****************************************************************************/
++int ep93xxEth_probe(struct net_device *pD) {
++ struct ep93xxEth_info *pP;
++ int err;
+ int i;
+
+- wrl(ep, REG_MIIDATA, data);
+- wrl(ep, REG_MIICMD, REG_MIICMD_WRITE | (phy_id << 5) | reg);
+-
+- for (i = 0; i < 10; i++) {
+- if ((rdl(ep, REG_MIISTS) & REG_MIISTS_BUSY) == 0)
+- break;
+- msleep(1);
++ if (pD->priv == 0) {
++ pD->priv = kmalloc(sizeof(struct ep93xxEth_info), GFP_KERNEL);
++ if(pD->priv == 0)
++ return -ENOMEM;
+ }
++ memset(pD->priv, 0x00, sizeof(struct ep93xxEth_info));
+
+- if (i == 10)
+- printk(KERN_INFO DRV_MODULE_NAME ": mdio write timed out\n");
+-}
++ pP = pD->priv;
++ pP->s.id = numOfInstance;
++ pP->s.miiIdPhy = 1;
+
+-static void ep93xx_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
+-{
+- strcpy(info->driver, DRV_MODULE_NAME);
+- strcpy(info->version, DRV_MODULE_VERSION);
+-}
++ for (i = 0; i < 6; i++)
++ pD->dev_addr[i] = default_mac[i];
+
+-static int ep93xx_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
+-{
+- struct ep93xx_priv *ep = netdev_priv(dev);
+- return mii_ethtool_gset(&ep->mii, cmd);
+-}
++ err = (int)request_irq(pD->irq, &ep93xxEth_isr, 0, cardname, pD);
++ if(err) {
++ kfree(pD->priv);
++ return -EAGAIN;
++ }
+
+-static int ep93xx_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
+-{
+- struct ep93xx_priv *ep = netdev_priv(dev);
+- return mii_ethtool_sset(&ep->mii, cmd);
+-}
++ pD->open = &ep93xxEth_open;
++ pD->stop = &ep93xxEth_close;
++ pD->hard_start_xmit = &ep93xxEth_hardStartXmit;
++ pD->tx_timeout = &ep93xxEth_txTimeout;
++ pD->watchdog_timeo = HZ * 5;
++ pD->get_stats = &ep93xxEth_getStats;
++ pD->set_multicast_list = &ep93xxEth_setMulticastList;
+
+-static int ep93xx_nway_reset(struct net_device *dev)
+-{
+- struct ep93xx_priv *ep = netdev_priv(dev);
+- return mii_nway_restart(&ep->mii);
+-}
++ ether_setup(pD);
+
+-static u32 ep93xx_get_link(struct net_device *dev)
+-{
+- struct ep93xx_priv *ep = netdev_priv(dev);
+- return mii_link_ok(&ep->mii);
+-}
++ devQue_init(pD);
++ eth_reset(pD);
+
+-static struct ethtool_ops ep93xx_ethtool_ops = {
+- .get_drvinfo = ep93xx_get_drvinfo,
+- .get_settings = ep93xx_get_settings,
+- .set_settings = ep93xx_set_settings,
+- .nway_reset = ep93xx_nway_reset,
+- .get_link = ep93xx_get_link,
+-};
++ numOfInstance++;
+
+-struct net_device *ep93xx_dev_alloc(struct ep93xx_eth_data *data)
+-{
+- struct net_device *dev;
++ err = register_netdev(pD);
++ if (err) {
++ free_irq(pD->irq, pD);
++ kfree(pP);
++ return err;
++ }
+
+- dev = alloc_etherdev(sizeof(struct ep93xx_priv));
+- if (dev == NULL)
+- return NULL;
++ return 0;
++}
+
+- memcpy(dev->dev_addr, data->dev_addr, ETH_ALEN);
++static int ep93xxEth_drv_probe(struct platform_device *pdev)
++{
++ struct net_device *ndev;
++ struct resource *res;
++ int ret;
+
+- dev->get_stats = ep93xx_get_stats;
+- dev->ethtool_ops = &ep93xx_ethtool_ops;
+- dev->hard_start_xmit = ep93xx_xmit;
+- dev->open = ep93xx_open;
+- dev->stop = ep93xx_close;
+- dev->do_ioctl = ep93xx_ioctl;
++ PRINTK("ep93xxEth_drv_probe init\n");
+
+- dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM;
++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ if (!res){
++ printk("platform_get_resource fail\n");
++ return -ENODEV;
++ }
+
+- return dev;
+-}
++ if (!request_mem_region(res->start, 0x10000, cardname)){
++ printk("request_mem_region fail\n");
++ return -EBUSY;
++ }
+
++ ndev = alloc_etherdev(sizeof(struct ep93xxEth_info));
++ if (!ndev) {
++ release_mem_region(res->start, 0x10000);
++ printk("alloc_etherdev fail\n");
++ return -ENOMEM;
++ }
+
+-static int ep93xx_eth_remove(struct platform_device *pdev)
+-{
+- struct net_device *dev;
+- struct ep93xx_priv *ep;
+
+- dev = platform_get_drvdata(pdev);
+- if (dev == NULL)
+- return 0;
+- platform_set_drvdata(pdev, NULL);
++ SET_NETDEV_DEV(ndev, &pdev->dev);
+
+- ep = netdev_priv(dev);
++ ndev->base_addr = (unsigned long)ioremap(res->start, 0x10000);
++ if (!ndev->base_addr) {
++ printk("ioremap failed\n");
++ release_mem_region(res->start, 0x10000);
++ return -ENOMEM;
++ }
++ ndev->irq = platform_get_irq(pdev, 0);
+
+- /* @@@ Force down. */
+- unregister_netdev(dev);
+- ep93xx_free_buffers(ep);
+
+- if (ep->base_addr != NULL)
+- iounmap(ep->base_addr);
++ dev_set_drvdata(&pdev->dev, ndev);
+
+- if (ep->res != NULL) {
+- release_resource(ep->res);
+- kfree(ep->res);
++ ret = ep93xxEth_probe(ndev);
++ if (ret != 0) {
++ free_netdev(ndev);
++ release_mem_region(res->start, 0x10000);
++ printk("ep93xxEth_probe fail\n");
++ return ret;
+ }
+
+- free_netdev(dev);
+-
+ return 0;
+ }
+
+-static int ep93xx_eth_probe(struct platform_device *pdev)
++static int ep93xxEth_drv_remove(struct platform_device *pdev)
+ {
+- struct ep93xx_eth_data *data;
+- struct net_device *dev;
+- struct ep93xx_priv *ep;
+- int err;
++ struct net_device *ndev = dev_get_drvdata(&pdev->dev);
++ struct resource *res;
+
+- if (pdev == NULL)
+- return -ENODEV;
+- data = pdev->dev.platform_data;
++ dev_set_drvdata(&pdev->dev, NULL);
+
+- dev = ep93xx_dev_alloc(data);
+- if (dev == NULL) {
+- err = -ENOMEM;
+- goto err_out;
+- }
+- ep = netdev_priv(dev);
+- ep->dev = dev;
+- netif_napi_add(dev, &ep->napi, ep93xx_poll, 64);
+-
+- platform_set_drvdata(pdev, dev);
+-
+- ep->res = request_mem_region(pdev->resource[0].start,
+- pdev->resource[0].end - pdev->resource[0].start + 1,
+- pdev->dev.bus_id);
+- if (ep->res == NULL) {
+- dev_err(&pdev->dev, "Could not reserve memory region\n");
+- err = -ENOMEM;
+- goto err_out;
+- }
+-
+- ep->base_addr = ioremap(pdev->resource[0].start,
+- pdev->resource[0].end - pdev->resource[0].start);
+- if (ep->base_addr == NULL) {
+- dev_err(&pdev->dev, "Failed to ioremap ethernet registers\n");
+- err = -EIO;
+- goto err_out;
+- }
+- ep->irq = pdev->resource[1].start;
+-
+- ep->mii.phy_id = data->phy_id;
+- ep->mii.phy_id_mask = 0x1f;
+- ep->mii.reg_num_mask = 0x1f;
+- ep->mii.dev = dev;
+- ep->mii.mdio_read = ep93xx_mdio_read;
+- ep->mii.mdio_write = ep93xx_mdio_write;
+- ep->mdc_divisor = 40; /* Max HCLK 100 MHz, min MDIO clk 2.5 MHz. */
++ unregister_netdev(ndev);
+
+- err = register_netdev(dev);
+- if (err) {
+- dev_err(&pdev->dev, "Failed to register netdev\n");
+- goto err_out;
+- }
++ free_irq(ndev->irq, ndev);
+
+- printk(KERN_INFO "%s: ep93xx on-chip ethernet, IRQ %d, "
+- "%.2x:%.2x:%.2x:%.2x:%.2x:%.2x.\n", dev->name,
+- ep->irq, data->dev_addr[0], data->dev_addr[1],
+- data->dev_addr[2], data->dev_addr[3],
+- data->dev_addr[4], data->dev_addr[5]);
++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ release_mem_region(res->start, 0x10000);
+
+- return 0;
++ free_netdev(ndev);
+
+-err_out:
+- ep93xx_eth_remove(pdev);
+- return err;
++ return 0;
+ }
+
+-
+ static struct platform_driver ep93xx_eth_driver = {
+- .probe = ep93xx_eth_probe,
+- .remove = ep93xx_eth_remove,
++ .probe = ep93xxEth_drv_probe,
++ .remove = ep93xxEth_drv_remove,
+ .driver = {
+- .name = "ep93xx-eth",
++ .name = cardname,
++ .owner = THIS_MODULE,
+ },
+ };
+
+-static int __init ep93xx_eth_init_module(void)
++static int __init ep93xxEth_init(void)
+ {
+- printk(KERN_INFO DRV_MODULE_NAME " version " DRV_MODULE_VERSION " loading\n");
++ PRINTK("ep93xxEth_init\n");
+ return platform_driver_register(&ep93xx_eth_driver);
+ }
+
+-static void __exit ep93xx_eth_cleanup_module(void)
++static void __exit ep93xxEth_cleanup(void)
+ {
+ platform_driver_unregister(&ep93xx_eth_driver);
+ }
+
+-module_init(ep93xx_eth_init_module);
+-module_exit(ep93xx_eth_cleanup_module);
++module_init(ep93xxEth_init);
++module_exit(ep93xxEth_cleanup);
++
++MODULE_AUTHOR("Cirrus Logic");
++MODULE_DESCRIPTION("EP93xx ethernet driver");
+ MODULE_LICENSE("GPL");
+Index: linux-2.6.24.7/drivers/net/arm/ep93xx_eth.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.24.7/drivers/net/arm/ep93xx_eth.h 2009-09-16 17:37:41.000000000 +0100
+@@ -0,0 +1,402 @@
++/*------------------------------------------------------------------------
++ * ep93xx_eth.h
++ * : header file of Ethernet Device Driver for Cirrus Logic EP93xx.
++ *
++ * Copyright (C) 2003 by Cirrus Logic www.cirrus.com
++ * This software may be used and distributed according to the terms
++ * of the GNU Public License.
++ *
++ * This file contains device related information like register info
++ * and register access method macros for the Ethernet device
++ * embedded within Cirrus Logic's EP93xx SOC chip.
++ *
++ * Information contained in this file was obtained from
++ * the EP9312 Manual Revision 0.12 and 0.14 from Cirrus Logic.
++ *
++ * History
++ * 05/18/01 Sungwook Kim Initial release
++ * 03/25/2003 Melody Modified for EP92xx
++ *--------------------------------------------------------------------------*/
++
++
++#ifndef _EP9213_ETH_H_
++#define _EP9213_ETH_H_
++
++
++/*---------------------------------------------------------------
++ * Definition of H/W Defects and Their Workarounds
++ *-------------------------------------------------------------*/
++
++
++
++/*---------------------------------------------------------------
++ * Data types used in this driver
++ *-------------------------------------------------------------*/
++typedef unsigned char U8;
++typedef unsigned short U16;
++typedef unsigned long U32;
++typedef unsigned int UINT;
++
++
++
++/*---------------------------------------------------------------
++ * Definition of the registers.
++ * For details, refer to the datasheet .
++ *
++ * Basically, most registers are 32 bits width register.
++ * But some are 16 bits and some are 6 or 8 bytes long.
++ *-------------------------------------------------------------*/
++
++#define REG_RxCTL 0x0000 /*offset to Receiver Control Reg*/
++#define RxCTL_PauseA (1<<20)
++#define RxCTL_RxFCE1 (1<<19)
++#define RxCTL_RxFCE0 (1<<18)
++#define RxCTL_BCRC (1<<17)
++#define RxCTL_SRxON (1<<16)
++#define RxCTL_RCRCA (1<<13)
++#define RxCTL_RA (1<<12)
++#define RxCTL_PA (1<<11)
++#define RxCTL_BA (1<<10)
++#define RxCTL_MA (1<<9)
++#define RxCTL_IAHA (1<<8)
++#define RxCTL_IA3 (1<<3)
++#define RxCTL_IA2 (1<<2)
++#define RxCTL_IA1 (1<<1)
++#define RxCTL_IA0 (1<<0)
++
++#define REG_TxCTL 0x0004 /*offset to Transmit Control Reg*/
++#define TxCTL_DefDis (1<<7)
++#define TxCTL_MBE (1<<6)
++#define TxCTL_ICRC (1<<5)
++#define TxCTL_TxPD (1<<5)
++#define TxCTL_OColl (1<<3)
++#define TxCTL_SP (1<<2)
++#define TxCTL_PB (1<<1)
++#define TxCTL_STxON (1<<0)
++
++#define REG_TestCTL 0x0008 /*Test Control Reg, R/W*/
++#define TestCTL_MACF (1<<7)
++#define TestCTL_MFDX (1<<6)
++#define TestCTL_DB (1<<5)
++#define TestCTL_MIIF (1<<4)
++
++#define REG_MIICmd 0x0010 /*offset to MII Command Reg, R/W*/
++#define MIICmd_OP (0x03<<14)
++#define MIICmd_OP_RD (2<<14)
++#define MIICmd_OP_WR (1<<14)
++#define MIICmd_PHYAD (0x1f<<5)
++#define MIICmd_REGAD (0x1f<<0)
++
++#define REG_MIIData 0x0014 /*offset to MII Data Reg, R/W*/
++#define MIIData_MIIData (0xffff<<0)
++
++#define REG_MIISts 0x0018 /*offset to MII Status Reg, R*/
++#define MIISts_Busy (1<<0)
++
++#define REG_SelfCTL 0x0020 /*offset to Self Control Reg*/
++#define SelfCTL_RWP (1<<7) /*Remote Wake Pin*/
++#define SelfCTL_GPO0 (1<<5)
++#define SelfCTL_PUWE (1<<4)
++#define SelfCTL_PDWE (1<<3)
++#define SelfCTL_MIIL (1<<2)
++#define SelfCTL_RESET (1<<0)
++
++#define REG_IntEn 0x0024 /*Interrupt Enable Reg, R/W*/
++#define IntEn_RWIE (1<<30)
++#define IntEn_RxMIE (1<<29)
++#define IntEn_RxBIE (1<<28)
++#define IntEn_RxSQIE (1<<27)
++#define IntEn_TxLEIE (1<<26)
++#define IntEn_ECIE (1<<25)
++#define IntEn_TxUHIE (1<<24)
++#define IntEn_MOIE (1<<18)
++#define IntEn_TxCOIE (1<<17)
++#define IntEn_RxROIE (1<<16)
++#define IntEn_MIIIE (1<<12)
++#define IntEn_PHYSIE (1<<11)
++#define IntEn_TIE (1<<10)
++#define IntEn_SWIE (1<<8)
++#define IntEn_TxSQIE (1<<3)
++#define IntEn_RxEOFIE (1<<2)
++#define IntEn_RxEOBIE (1<<1)
++#define IntEn_RxHDRIE (1<<0)
++
++#define REG_IntStsP 0x0028 /*offset to Interrupt Status Preserve Reg, R/W*/
++#define REG_IntStsC 0x002c /*offset to Interrupt Status Clear Reg, R*/
++#define IntSts_RWI (1<<30)
++#define IntSts_RxMI (1<<29)
++#define IntSts_RxBI (1<<28)
++#define IntSts_RxSQI (1<<27)
++#define IntSts_TxLEI (1<<26)
++#define IntSts_ECI (1<<25)
++#define IntSts_TxUHI (1<<24)
++#define IntSts_MOI (1<<18)
++#define IntSts_TxCOI (1<<17)
++#define IntSts_RxROI (1<<16)
++#define IntSts_MIII (1<<12)
++#define IntSts_PHYSI (1<<11)
++#define IntSts_TI (1<<10)
++#define IntSts_AHBE (1<<9)
++#define IntSts_SWI (1<<8)
++#define IntSts_OTHER (1<<4)
++#define IntSts_TxSQ (1<<3)
++#define IntSts_RxSQ (1<<2)
++
++#define REG_GT 0x0040 /*offset to General Timer Reg*/
++#define GT_GTC (0xffff<<16)
++#define GT_GTP (0xffff<<0)
++
++#define REG_FCT 0x0044 /*offset to Flow Control Timer Reg*/
++#define FCT_FCT (0x00ffffff<<0)
++
++#define REG_FCF 0x0048 /*offset to Flow Control Format Reg*/
++#define FCF_MACCT (0xffff<<16)
++#define FCF_TPT (0xffff<<0)
++
++#define REG_AFP 0x004c /*offset to Address Filter Pointer Reg*/
++#define AFP_AFP (0x07<<0) /*Address Filter Pointer (bank control for REG_IndAD)*/
++#define AFP_AFP_IA0 0 /*Primary Individual Address (MAC Addr)*/
++#define AFP_AFP_IA1 1 /*Individual Address 1*/
++#define AFP_AFP_IA2 2 /*Individual Address 2*/
++#define AFP_AFP_IA3 3 /*Individual Address 3*/
++#define AFP_AFP_DTxP 6 /*Destination Address of Tx Pause Frame*/
++#define AFP_AFP_HASH 7 /*Hash Table*/
++
++#define REG_IndAD 0x0050 /*offset to Individual Address Reg, n bytes, R/W*/
++
++#define REG_GIntSts 0x0060 /*offset to Global Interrupt Status Reg (writing 1 will clear)*/
++#define REG_GIntROS 0x0068 /*offset to Global Interrupt Status Read Only Reg*/
++#define GIntSts_INT (1<<15) /*Global Interrupt Request Status*/
++
++#define REG_GIntMsk 0x0064 /*offset to Global Interrupt Mask Reg*/
++#define GIntMsk_IntEn (1<<15) /*Global Interrupt Enable*/
++
++#define REG_GIntFrc 0x006c /*offset to Global Interrupt Force Reg*/
++#define GIntFrc_INT (1<<15) /*Force to set GIntSts*/
++
++#define REG_TxCollCnt 0x0070 /*Transmit Collision Count Reg, R*/
++#define REG_RxMissCnt 0x0074 /*Receive Miss Count Reg, R*/
++#define REG_RxRntCnt 0x0078 /*Receive Runt Count Reg, R*/
++
++#define REG_BMCtl 0x0080 /*offset to Bus Master Control Reg, R/W*/
++#define BMCtl_MT (1<<13)
++#define BMCtl_TT (1<<12)
++#define BMCtl_UnH (1<<11)
++#define BMCtl_TxChR (1<<10)
++#define BMCtl_TxDis (1<<9)
++#define BMCtl_TxEn (1<<8)
++#define BMCtl_EH2 (1<<6)
++#define BMCtl_EH1 (1<<5)
++#define BMCtl_EEOB (1<<4)
++#define BMCtl_RxChR (1<<2)
++#define BMCtl_RxDis (1<<1)
++#define BMCtl_RxEn (1<<0)
++
++#define REG_BMSts 0x0084 /*offset to Bus Master Status Reg, R*/
++#define BMSts_TxAct (1<<7)
++#define BMSts_TP (1<<4)
++#define BMSts_RxAct (1<<3)
++#define BMSts_QID (0x07<<0)
++#define BMSts_QID_RxDt (0<<0)
++#define BMSts_QID_TxDt (1<<0)
++#define BMSts_QID_RxSts (2<<0)
++#define BMSts_QID_TxSts (3<<0)
++#define BMSts_QID_RxDesc (4<<0)
++#define BMSts_QID_TxDesc (5<<0)
++
++#define REG_RBCA 0x0088 /*offset to Receive Buffer Current Address Reg, R*/
++#define REG_TBCA 0x008c /*offset to Transmit Buffer Current Address Reg, R*/
++
++#define REG_RxDBA 0x0090 /*offset to Receive Descriptor Queue Base Address Reg, R/W*/
++#define REG_RxDBL 0x0094 /*offset to Receive Descriptor Queue Base Length Reg, R/W, 16bits*/
++#define REG_RxDCL 0x0096 /*offset to Receive Descriptor Queue Current Length Reg, R/W, 16bits*/
++#define REG_RxDCA 0x0098 /*offset to Receive Descriptor Queue Current Address Reg, R/W*/
++
++#define REG_RxDEQ 0x009c /*offset to Receive Descriptor Enqueue Reg, R/W*/
++#define RxDEQ_RDV (0xffff<<16) /*R 16bit; Receive Descriptor Value*/
++#define RxDEQ_RDI (0xff<<0) /*W 8bit; Receive Descriptor Increment*/
++
++#define REG_RxSBA 0x00a0 /*offset to Receive Status Queue Base Address Reg, R/W*/
++#define REG_RxSBL 0x00a4 /*offset to Receive Status Queue Base Length Reg, R/W, 16bits*/
++#define REG_RxSCL 0x00a6 /*offset to Receive Status Queue Current Length Reg, R/W, 16bits*/
++#define REG_RxSCA 0x00a8 /*offset to Receive Status Queue Current Address Reg, R/W*/
++
++#define REG_RxSEQ 0x00ac /*offset to Receive Status Queue Current Address Reg, R/W*/
++#define RxSEQ_RSV (0xffff<<16)
++#define RxSEQ_RSI (0xff<<0)
++
++#define REG_TxDBA 0x00b0 /*offset to Transmit Descriptor Queue Base Address Reg, R/W*/
++#define REG_TxDBL 0x00b4 /*offset to Transmit Descriptor Queue Base Length Reg, R/W, 16bits*/
++#define REG_TxDCL 0x00b6 /*offset to Transmit Descriptor Queue Current Length Reg, R/W, 16bits*/
++#define REG_TxDCA 0x00b8 /*offset to Transmit Descriptor Queue Current Address Reg, R/W*/
++
++#define REG_TxDEQ 0x00bc /*offset to Transmit Descriptor Queue Current Address Reg, R/W*/
++#define TxDEQ_TDV (0xffff<<16)
++#define TxDEQ_TDI (0xff<<0)
++
++#define REG_TxSBA 0x00c0 /*offset to Transmit Status Queue Base Address Reg, R/W*/
++#define REG_TxSBL 0x00c4 /*offset to Transmit Status Queue Base Length Reg, R/W, 16bits*/
++#define REG_TxSCL 0x00c6 /*offset to Transmit Status Queue Current Length Reg, R/W, 16bits*/
++#define REG_TxSCA 0x00c8 /*offset to Transmit Status Queue Current Address Reg, R/W*/
++
++#define REG_RxBTH 0x00d0 /*offset to Receive Buffer Threshold Reg, R/W*/
++#define RxBTH_RDHT (0x03ff<<16)
++#define RxBTH_RDST (0x03ff<<0)
++
++#define REG_TxBTH 0x00d4 /*offset to Transmit Buffer Threshold Reg, R/W*/
++#define TxBTH_TDHT (0x03ff<<16)
++#define TxBTH_TDST (0x03ff<<0)
++
++#define REG_RxSTH 0x00d8 /*offset to Receive Status Threshold Reg, R/W*/
++#define RxSTH_RSHT (0x003f<<16)
++#define RxSTH_RSST (0x003f<<0)
++
++#define REG_TxSTH 0x00dc /*offset to Transmit Status Threshold Reg, R/W*/
++#define TxSTH_TSHT (0x003f<<16)
++#define TxSTH_TSST (0x003f<<0)
++
++#define REG_RxDTH 0x00e0 /*offset to Receive Descriptor Threshold Reg, R/W*/
++#define RxDTH_RDHT (0x003f<<16)
++#define RxDTH_RDST (0x003f<<0)
++
++#define REG_TxDTH 0x00e4 /*offset to Transmit Descriptor Threshold Reg, R/W*/
++#define TxDTH_TDHT (0x003f<<16)
++#define TxDTH_TDST (0x003f<<0)
++
++#define REG_MaxFL 0x00e8 /*offset to Max Frame Length Reg, R/W*/
++#define MaxFL_MFL (0x07ff<<16)
++#define MaxFL_TST (0x07ff<<0)
++
++#define REG_RxHL 0x00ec /*offset to Receive Header Length Reg, R/W*/
++#define RxHL_RHL2 (0x07ff<<16)
++#define RxHL_RHL1 (0x03ff<<0)
++
++#define REG_MACCFG0 0x0100 /*offset to Test Reg #0, R/W*/
++#define MACCFG0_DbgSel (1<<7)
++#define MACCFG0_LCKEN (1<<6)
++#define MACCFG0_LRATE (1<<5)
++#define MACCFG0_RXERR (1<<4)
++#define MACCFG0_BIT33 (1<<2)
++#define MACCFG0_PMEEN (1<<1)
++#define MACCFG0_PMEST (1<<0)
++
++#define REG_MACCFG1 0x0104 /*offset to Test Reg #1, R/W*/
++#define REG_MACCFG2 0x0108 /*offset to Test Reg #2, R*/
++#define REG_MACCFG3 0x010c /*offset to Test Reg #3, R*/
++
++
++
++/*---------------------------------------------------------------
++ * Definition of Descriptor/Status Queue Entry
++ *-------------------------------------------------------------*/
++
++typedef union receiveDescriptor { /*data structure of Receive Descriptor Queue Entry*/
++ struct { /*whole value*/
++ U32 e0, /*1st dword entry*/
++ e1; /*2nd dword entry*/
++ } w;
++ struct { /*bit field definitions*/
++ U32 ba:32, /*Buffer Address (keep in mind this is physical address)*/
++ bl:16, /*b15-0; Buffer Length*/
++ bi:15, /*b30-16; Buffer Index*/
++ nsof:1; /*b31; Not Start Of Frame*/
++ } f;
++} receiveDescriptor;
++
++
++typedef union receiveStatus { /*data structure of Receive Status Queue Entry*/
++ struct { /*whole word*/
++ U32 e0, /*1st dword entry*/
++ e1; /*2nd dword entry*/
++ } w;
++ struct { /*bit field*/
++ U32 rsrv1:8, /*b7-0: reserved*/
++ hti:6, /*b13-8: Hash Table Index*/
++ rsrv2:1, /*b14: reserved*/
++ crci:1, /*b15: CRC Included*/
++ crce:1, /*b16: CRC Error*/
++ edata:1, /*b17: Extra Data*/
++ runt:1, /*b18: Runt Frame*/
++ fe:1, /*b19: Framing Error*/
++ oe:1, /*b20: Overrun Error*/
++ rxerr:1, /*b21: Rx Error*/
++ am:2, /*b23-22: Address Match*/
++ rsrv3:4, /*b27-24: reserved*/
++ eob:1, /*b28: End Of Buffer*/
++ eof:1, /*b29: End Of Frame*/
++ rwe:1, /*b30: Received Without Error*/
++ rfp:1, /*b31: Receive Frame Processed*/
++ fl:16, /*b15-0: frame length*/
++ bi:15, /*b30-16: Buffer Index*/
++ rfp2:1; /*b31: Receive Frame Processed at 2nd word*/
++ } f;
++} receiveStatus;
++
++
++typedef union transmitDescriptor { /*data structure of Transmit Descriptor Queue Entry*/
++ struct { /*whole value*/
++ U32 e0, /*1st dword entry*/
++ e1; /*2nd dword entry*/
++ } w;
++ struct { /*bit field*/
++ U32 ba:32, /*b31-0: Buffer Address (keep in mind this is physical address)*/
++ bl:12, /*b11-0: Buffer Length*/
++ rsrv1:3, /*b14-12: reserved*/
++ af:1, /*b15: Abort Frame*/
++ bi:15, /*b30-16: Buffer Index*/
++ eof:1; /*b31: End Of Frame*/
++
++ } f;
++} transmitDescriptor;
++
++
++typedef union transmitStatus { /*data structure of Transmit Status Queue Entry*/
++ struct { /*whole word*/
++ U32 e0; /*1st dword entry*/
++ } w;
++ struct { /*bit field*/
++ U32 bi:15, /*b14-0: Buffer Index*/
++ rsrv3:1, /*b15: reserved*/
++ ncoll:5, /*b20-16: Number of Collisions*/
++ rsrv2:3, /*b23-21: reserved*/
++ ecoll:1, /*b24: Excess Collisions*/
++ txu:1, /*b25: Tx Underrun*/
++ ow:1, /*b26: Out of Window*/
++ rsrv1:1, /*b27: reserved*/
++ lcrs:1, /*b28: Loss of CRS*/
++ fa:1, /*b29: Frame Abort*/
++ txwe:1, /*b30: Transmitted Without Error*/
++ txfp:1; /*b31: Transmit Frame Processed*/
++ } f;
++} transmitStatus;
++
++
++
++/*---------------------------------------------------------------
++ * Size of device registers occupied in memory/IO address map
++ *-------------------------------------------------------------*/
++#define DEV_REG_SPACE 0x00010000
++
++/*
++#define U8 unsigned char
++#define U16 unsigned short
++#define U32 unsigned long
++*/
++
++/*---------------------------------------------------------------
++ * A definition of register access macros
++ *-------------------------------------------------------------*/
++#define _RegRd(type,ofs) (*(volatile type*)(ofs))
++#define _RegWr(type,ofs,dt) *(volatile type*)(ofs)=((type)(dt))
++
++#define RegRd8(ofs) _RegRd(U8,(char*)pD->base_addr+(ofs))
++#define RegRd16(ofs) _RegRd(U16,(char*)pD->base_addr+(ofs))
++#define RegRd32(ofs) _RegRd(U32,(char*)pD->base_addr+(ofs))
++#define RegWr8(ofs,dt) _RegWr(U8,(char*)pD->base_addr+(ofs),(dt))
++#define RegWr16(ofs,dt) _RegWr(U16,(char*)pD->base_addr+(ofs),(dt))
++#define RegWr32(ofs,dt) _RegWr(U32,(char*)pD->base_addr+(ofs),(dt))
++
++
++
++#endif /* _EP9213_ETH_H_ */
++
diff --git a/recipes/linux/linux-2.6.32/ep93xx/ep93xx-i2c.patch b/recipes/linux/linux-2.6.32/ep93xx/ep93xx-i2c.patch
new file mode 100644
index 0000000000..60b9af1bc1
--- /dev/null
+++ b/recipes/linux/linux-2.6.32/ep93xx/ep93xx-i2c.patch
@@ -0,0 +1,234 @@
+---
+ drivers/i2c/busses/Kconfig | 5 +
+ drivers/i2c/busses/Makefile | 1
+ drivers/i2c/busses/i2c-ep93xx.c | 194 ++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 200 insertions(+)
+
+--- linux-2.6.32.orig/drivers/i2c/busses/Kconfig
++++ linux-2.6.32/drivers/i2c/busses/Kconfig
+@@ -351,10 +351,15 @@ config I2C_DESIGNWARE
+ Synopsys DesignWare I2C adapter. Only master mode is supported.
+
+ This driver can also be built as a module. If so, the module
+ will be called i2c-designware.
+
++config I2C_EP93XX
++ tristate "EP93XX I2C"
++ depends on I2C && ARCH_EP93XX
++ select I2C_ALGOBIT
++
+ config I2C_GPIO
+ tristate "GPIO-based bitbanging I2C"
+ depends on GENERIC_GPIO
+ select I2C_ALGOBIT
+ help
+--- linux-2.6.32.orig/drivers/i2c/busses/Makefile
++++ linux-2.6.32/drivers/i2c/busses/Makefile
+@@ -72,9 +72,10 @@ obj-$(CONFIG_I2C_PCA_PLATFORM) += i2c-pc
+ obj-$(CONFIG_I2C_PMCMSP) += i2c-pmcmsp.o
+ obj-$(CONFIG_I2C_SIBYTE) += i2c-sibyte.o
+ obj-$(CONFIG_I2C_STUB) += i2c-stub.o
+ obj-$(CONFIG_SCx200_ACB) += scx200_acb.o
+ obj-$(CONFIG_SCx200_I2C) += scx200_i2c.o
++obj-$(CONFIG_I2C_EP93XX) += i2c-ep93xx.o
+
+ ifeq ($(CONFIG_I2C_DEBUG_BUS),y)
+ EXTRA_CFLAGS += -DDEBUG
+ endif
+--- /dev/null
++++ linux-2.6.32/drivers/i2c/busses/i2c-ep93xx.c
+@@ -0,0 +1,194 @@
++/* ------------------------------------------------------------------------ *
++ * i2c-ep933xx.c I2C bus glue for Cirrus EP93xx *
++ * ------------------------------------------------------------------------ *
++
++ Copyright (C) 2004 Michael Burian
++
++ Based on i2c-parport-light.c
++ Copyright (C) 2003-2004 Jean Delvare <khali@linux-fr.org>
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ * ------------------------------------------------------------------------ */
++
++
++//#include <linux/config.h>
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/ioport.h>
++#include <linux/delay.h>
++#include <linux/i2c.h>
++#include <linux/i2c-algo-bit.h>
++#include <asm/io.h>
++#include <mach/hardware.h>
++
++//1/(2*clockfrequency)
++#define EE_DELAY_USEC 50
++#define GPIOG_EECLK 1
++#define GPIOG_EEDAT 2
++
++/* ----- I2C algorithm call-back functions and structures ----------------- */
++
++// TODO: optimize
++static void ep93xx_setscl(void *data, int state)
++{
++ unsigned int uiPGDR, uiPGDDR;
++
++ uiPGDR = inl(GPIO_PGDR);
++ uiPGDDR = inl(GPIO_PGDDR);
++
++ /* Configure the clock line as output. */
++ uiPGDDR |= GPIOG_EECLK;
++ outl(uiPGDDR, GPIO_PGDDR);
++
++ /* Set clock line to state */
++ if(state)
++ uiPGDR |= GPIOG_EECLK;
++ else
++ uiPGDR &= ~GPIOG_EECLK;
++
++ outl(uiPGDR, GPIO_PGDR);
++}
++
++static void ep93xx_setsda(void *data, int state)
++{
++ unsigned int uiPGDR, uiPGDDR;
++
++ uiPGDR = inl(GPIO_PGDR);
++ uiPGDDR = inl(GPIO_PGDDR);
++
++ /* Configure the data line as output. */
++ uiPGDDR |= GPIOG_EEDAT;
++ outl(uiPGDDR, GPIO_PGDDR);
++
++ /* Set data line to state */
++ if(state)
++ uiPGDR |= GPIOG_EEDAT;
++ else
++ uiPGDR &= ~GPIOG_EEDAT;
++
++ outl(uiPGDR, GPIO_PGDR);
++}
++
++static int ep93xx_getscl(void *data)
++{
++ unsigned int uiPGDR, uiPGDDR;
++
++ uiPGDR = inl(GPIO_PGDR);
++ uiPGDDR = inl(GPIO_PGDDR);
++
++ /* Configure the clock line as input */
++ uiPGDDR &= ~GPIOG_EECLK;
++ outl(uiPGDDR, GPIO_PGDDR);
++
++ /* Return state of the clock line */
++ return (inl(GPIO_PGDR) & GPIOG_EECLK) ? 1 : 0;
++}
++
++static int ep93xx_getsda(void *data)
++{
++ unsigned int uiPGDR, uiPGDDR;
++ uiPGDR = inl(GPIO_PGDR);
++ uiPGDDR = inl(GPIO_PGDDR);
++
++ /* Configure the data line as input */
++ uiPGDDR &= ~GPIOG_EEDAT;
++ outl(uiPGDDR, GPIO_PGDDR);
++
++ /* Return state of the data line */
++ return (inl(GPIO_PGDR) & GPIOG_EEDAT) ? 1 : 0;
++}
++
++/* ------------------------------------------------------------------------
++ * Encapsulate the above functions in the correct operations structure.
++ * This is only done when more than one hardware adapter is supported.
++ */
++
++/* last line (us, ms, timeout)
++ * us dominates the bit rate: 10us means: 100Kbit/sec(25 means 40kbps)
++ * 10ms not known
++ * 100ms timeout
++ */
++static struct i2c_algo_bit_data ep93xx_data = {
++ .setsda = ep93xx_setsda,
++ .setscl = ep93xx_setscl,
++ .getsda = ep93xx_getsda,
++ .getscl = ep93xx_getscl,
++ .udelay = 10,
++ //.mdelay = 10,
++ .timeout = HZ,
++};
++
++/* ----- I2c structure ---------------------------------------------------- */
++static struct i2c_adapter ep93xx_adapter = {
++ .owner = THIS_MODULE,
++ .class = I2C_CLASS_HWMON,
++/* .id = I2C_HW_B_LP,*/
++ .algo_data = &ep93xx_data,
++ .name = "EP93XX I2C bit-bang interface",
++};
++
++/* ----- Module loading, unloading and information ------------------------ */
++
++static int __init i2c_ep93xx_init(void)
++{
++ unsigned long uiPGDR, uiPGDDR;
++
++ /* Read the current value of the GPIO data and data direction registers. */
++ uiPGDR = inl(GPIO_PGDR);
++ uiPGDDR = inl(GPIO_PGDDR);
++
++ /* If the GPIO pins have not been configured since reset, the data
++ * and clock lines will be set as inputs and with data value of 0.
++ * External pullup resisters are pulling them high.
++ * Set them both high before configuring them as outputs. */
++ uiPGDR |= (GPIOG_EEDAT | GPIOG_EECLK);
++ outl(uiPGDR, GPIO_PGDR);
++
++ /* Delay to meet the EE Interface timing specification. */
++ udelay(EE_DELAY_USEC);
++
++
++ /* Configure the EE data and clock lines as outputs. */
++ uiPGDDR |= (GPIOG_EEDAT | GPIOG_EECLK);
++ outl(uiPGDDR, GPIO_PGDDR);
++
++ /* Delay to meet the EE Interface timing specification. */
++ udelay(EE_DELAY_USEC);
++
++ /* Reset hardware to a sane state (SCL and SDA high) */
++ ep93xx_setsda(NULL, 1);
++ ep93xx_setscl(NULL, 1);
++
++ if (i2c_bit_add_bus(&ep93xx_adapter) > 0) {
++ printk(KERN_ERR "i2c-ep93xx: Unable to register with I2C\n");
++ return -ENODEV;
++ }
++
++ return 0;
++}
++
++static void __exit i2c_ep93xx_exit(void)
++{
++ //i2c_bit_del_bus(&ep93xx_adapter);
++ i2c_del_adapter(&ep93xx_adapter);
++}
++
++MODULE_AUTHOR("Michael Burian");
++MODULE_DESCRIPTION("I2C bus glue for Cirrus EP93xx processors");
++MODULE_LICENSE("GPL");
++
++module_init(i2c_ep93xx_init);
++module_exit(i2c_ep93xx_exit);
diff --git a/recipes/linux/linux-2.6.32/ep93xx/ep93xx-regs.patch b/recipes/linux/linux-2.6.32/ep93xx/ep93xx-regs.patch
new file mode 100644
index 0000000000..5b77633960
--- /dev/null
+++ b/recipes/linux/linux-2.6.32/ep93xx/ep93xx-regs.patch
@@ -0,0 +1,490 @@
+---
+ arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h | 440 ++++++++++++++++++++++++
+ 1 file changed, 440 insertions(+)
+
+--- linux-2.6.32.orig/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
++++ linux-2.6.32/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
+@@ -60,10 +60,36 @@
+ #define EP93XX_APB_SIZE 0x00200000
+
+ #define EP93XX_APB_PHYS(x) (EP93XX_APB_PHYS_BASE + (x))
+ #define EP93XX_APB_IOMEM(x) IOMEM(EP93XX_APB_VIRT_BASE + (x))
+
++/* 8081_0000 - 8081_ffff: Timers */
++#define TIMERS_OFFSET 0x010000
++#define TIMERS_BASE (EP93XX_APB_VIRT_BASE|TIMERS_OFFSET)
++
++#define TIMER1LOAD (TIMERS_BASE+0x00)
++#define TIMER1VALUE (TIMERS_BASE+0x04)
++#define TIMER1CONTROL (TIMERS_BASE+0x08)
++#define TIMER1CLEAR (TIMERS_BASE+0x0C)
++#define TIMER1TEST (TIMERS_BASE+0x10)
++
++#define TIMER2LOAD (TIMERS_BASE+0x20)
++#define TIMER2VALUE (TIMERS_BASE+0x24)
++#define TIMER2CONTROL (TIMERS_BASE+0x28)
++#define TIMER2CLEAR (TIMERS_BASE+0x2C)
++#define TIMER2TEST (TIMERS_BASE+0x30)
++
++#define TIMER3LOAD (TIMERS_BASE+0x80)
++#define TIMER3VALUE (TIMERS_BASE+0x84)
++#define TIMER3CONTROL (TIMERS_BASE+0x88)
++#define TIMER3CLEAR (TIMERS_BASE+0x8C)
++#define TIMER3TEST (TIMERS_BASE+0x90)
++
++#define TTIMERBZCONT (TIMERS_BASE+0x40)
++
++#define TIMER4VALUELOW (TIMERS_BASE+0x60)
++#define TIMER4VALUEHIGH (TIMERS_BASE+0x64)
+
+ /* AHB peripherals */
+ #define EP93XX_DMA_BASE EP93XX_AHB_IOMEM(0x00000000)
+
+ #define EP93XX_ETHERNET_PHYS_BASE EP93XX_AHB_PHYS(0x00010000)
+@@ -109,10 +135,12 @@
+ #define EP93XX_TIMER3_CLEAR EP93XX_TIMER_REG(0x8c)
+
+ #define EP93XX_I2S_BASE EP93XX_APB_IOMEM(0x00020000)
+
+ #define EP93XX_SECURITY_BASE EP93XX_APB_IOMEM(0x00030000)
++#define EP93XX_SECURITY_REG(x) (EP93XX_SECURITY_BASE + (x))
++#define EP93XX_SECURITY_UNIQID EP93XX_SECURITY_REG(0x2440)
+
+ #define EP93XX_GPIO_BASE EP93XX_APB_IOMEM(0x00040000)
+ #define EP93XX_GPIO_REG(x) (EP93XX_GPIO_BASE + (x))
+ #define EP93XX_GPIO_F_INT_STATUS EP93XX_GPIO_REG(0x5c)
+ #define EP93XX_GPIO_A_INT_STATUS EP93XX_GPIO_REG(0xa0)
+@@ -120,10 +148,11 @@
+ #define EP93XX_GPIO_EEDRIVE EP93XX_GPIO_REG(0xc8)
+
+ #define EP93XX_AAC_BASE EP93XX_APB_IOMEM(0x00080000)
+
+ #define EP93XX_SPI_BASE EP93XX_APB_IOMEM(0x000a0000)
++#define EP93XX_SPI_BASE_PHYS (EP93XX_APB_PHYS_BASE + 0x000a0000)
+
+ #define EP93XX_IRDA_BASE EP93XX_APB_IOMEM(0x000b0000)
+
+ #define EP93XX_UART1_PHYS_BASE EP93XX_APB_PHYS(0x000c0000)
+ #define EP93XX_UART1_BASE EP93XX_APB_IOMEM(0x000c0000)
+@@ -219,10 +248,421 @@
+ #define EP93XX_SYSCON_SYSCFG_LEEDA (1<<4)
+ #define EP93XX_SYSCON_SYSCFG_LEECLK (1<<3)
+ #define EP93XX_SYSCON_SYSCFG_LCSN2 (1<<1)
+ #define EP93XX_SYSCON_SYSCFG_LCSN1 (1<<0)
+ #define EP93XX_SYSCON_SWLOCK EP93XX_SYSCON_REG(0xc0)
++#define EP93XX_SYSCON_CHIP_ID EP93XX_SYSCON_REG(0x94)
++#define EP93XX_SYSCON_BMAR EP93XX_SYSCON_REG(0x54)
++#define EP93XX_SYSCON_I2SDIV EP93XX_SYSCON_REG(0x8C)
++#define EP93XX_SYSCON_DEVCFG_CONFIG_Mong 0x02000000
++#define EP93XX_SYSCON_DEVCFG_CONFIG_Tong 0x04000000
++#define EP93XX_SYSCON_DEVCFG_CONFIG_I2SONSSP 0x00000080
++#define EP93XX_SYSCON_DEVCFG_CONFIG_I2SONAC97 0x00000040
++#define EP93XX_SYSCON_DEVCFG_RasOnP3 0x00000010
++#define EP93XX_SYSCON_DEVCFG_A1onG 0x00200000
++#define EP93XX_SYSCON_DEVCFG_A2onG 0x00400000
+
+ #define EP93XX_WATCHDOG_BASE EP93XX_APB_IOMEM(0x00140000)
+
++#define SYSCON_PWRCNT (EP93XX_SYSCON_BASE+0x0004)
++#define SYSCON_VIDDIV (EP93XX_SYSCON_BASE+0x0084)
++#define SYSCON_MIRDIV (EP93XX_SYSCON_BASE+0x0088)
++#define SYSCON_KTDIV (EP93XX_SYSCON_BASE+0x0090)
++#define SYSCON_KTDIV_TSEN 0x80000000
++//-----------------------------------------------------------------------------
++// SYSCON_CLKSET1
++//-----------------------------------------------------------------------------
++#define SYSCON_CLKSET1_PLL1_X2IPD_SHIFT 0
++#define SYSCON_CLKSET1_PLL1_X2IPD_MASK 0x0000001f
++#define SYSCON_CLKSET1_PLL1_X2FBD2_SHIFT 5
++#define SYSCON_CLKSET1_PLL1_X2FBD2_MASK 0x000007e0
++#define SYSCON_CLKSET1_PLL1_X1FBD1_SHIFT 11
++#define SYSCON_CLKSET1_PLL1_X1FBD1_MASK 0x0000f800
++#define SYSCON_CLKSET1_PLL1_PS_SHIFT 16
++#define SYSCON_CLKSET1_PLL1_PS_MASK 0x00030000
++#define SYSCON_CLKSET1_PCLKDIV_SHIFT 18
++#define SYSCON_CLKSET1_PCLKDIV_MASK 0x000c0000
++#define SYSCON_CLKSET1_HCLKDIV_SHIFT 20
++#define SYSCON_CLKSET1_HCLKDIV_MASK 0x00700000
++#define SYSCON_CLKSET1_nBYP1 0x00800000
++#define SYSCON_CLKSET1_SMCROM 0x01000000
++#define SYSCON_CLKSET1_FCLKDIV_SHIFT 25
++#define SYSCON_CLKSET1_FCLKDIV_MASK 0x0e000000
++
++#define SYSCON_CLKSET1_HSEL 0x00000001
++#define SYSCON_CLKSET1_PLL1_EXCLKSEL 0x00000002
++
++#define SYSCON_CLKSET1_PLL1_P_MASK 0x0000007C
++#define SYSCON_CLKSET1_PLL1_P_SHIFT 2
++
++#define SYSCON_CLKSET1_PLL1_M1_MASK 0x00000780
++#define SYSCON_CLKSET1_PLL1_M1_SHIFT 7
++#define SYSCON_CLKSET1_PLL1_M2_MASK 0x0000F800
++#define SYSCON_CLKSET1_PLL1_M2_SHIFT 11
++#define SYSCON_CLKSET1_PLL1_PS_MASK 0x00030000
++#define SYSCON_CLKSET1_PLL1_PS_SHIFT 16
++#define SYSCON_CLKSET1_PCLK_DIV_MASK 0x000C0000
++#define SYSCON_CLKSET1_PCLK_DIV_SHIFT 18
++#define SYSCON_CLKSET1_HCLK_DIV_MASK 0x00700000
++#define SYSCON_CLKSET1_HCLK_DIV_SHIFT 20
++#define SYSCON_CLKSET1_SMCROM 0x01000000
++#define SYSCON_CLKSET1_FCLK_DIV_MASK 0x0E000000
++#define SYSCON_CLKSET1_FCLK_DIV_SHIFT 25
++
++#define SYSCON_CLKSET2_PLL2_EN 0x00000001
++#define SYSCON_CLKSET2_PLL2EXCLKSEL 0x00000002
++#define SYSCON_CLKSET2_PLL2_P_MASK 0x0000007C
++#define SYSCON_CLKSET2_PLL2_P_SHIFT 2
++#define SYSCON_CLKSET2_PLL2_M2_MASK 0x00000F80
++#define SYSCON_CLKSET2_PLL2_M2_SHIFT 7
++#define SYSCON_CLKSET2_PLL2_M1_MASK 0x0001F000
++#define SYSCON_CLKSET2_PLL2_M1 12
++#define SYSCON_CLKSET2_PLL2_PS_MASK 0x000C0000
++#define SYSCON_CLKSET2_PLL2_PS_SHIFT 18
++#define SYSCON_CLKSET2_USBDIV_MASK 0xF0000000
++#define SYSCON_CLKSET2_USBDIV_SHIFT 28
++
++//-----------------------------------------------------------------------------
++// I2SDIV Register Defines
++//-----------------------------------------------------------------------------
++#define SYSCON_I2SDIV_MDIV_MASK 0x0000007f
++#define SYSCON_I2SDIV_MDIV_SHIFT 0
++#define SYSCON_I2SDIV_PDIV_MASK 0x00000300
++#define SYSCON_I2SDIV_PDIV_SHIFT 8
++#define SYSCON_I2SDIV_PSEL 0x00002000
++#define SYSCON_I2SDIV_ESEL 0x00004000
++#define SYSCON_I2SDIV_MENA 0x00008000
++#define SYSCON_I2SDIV_SDIV 0x00010000
++#define SYSCON_I2SDIV_LRDIV_MASK 0x00060000
++#define SYSCON_I2SDIV_LRDIV_SHIFT 17
++#define SYSCON_I2SDIV_SPOL 0x00080000
++#define SYSCON_I2SDIV_DROP 0x00100000
++#define SYSCON_I2SDIV_ORIDE 0x20000000
++#define SYSCON_I2SDIV_SLAVE 0x40000000
++#define SYSCON_I2SDIV_SENA 0x80000000
++
++#define SYSCON_I2SDIV_PDIV_OFF 0x00000000
++#define SYSCON_I2SDIV_PDIV_2 0x00000100
++#define SYSCON_I2SDIV_PDIV_25 0x00000200
++#define SYSCON_I2SDIV_PDIV_3 0x00000300
++
++#define SYSCON_I2SDIV_LRDIV_32 0x00000000
++#define SYSCON_I2SDIV_LRDIV_64 0x00020000
++#define SYSCON_I2SDIV_LRDIV_128 0x00040000
++
++//-----------------------------------------------------------------------------
++// VIDDIV Register Defines
++//-----------------------------------------------------------------------------
++#define SYSCON_VIDDIV_VDIV_MASK 0x0000007f
++#define SYSCON_VIDDIV_VDIV_SHIFT 0
++#define SYSCON_VIDDIV_PDIV_MASK 0x00000300
++#define SYSCON_VIDDIV_PDIV_SHIFT 8
++#define SYSCON_VIDDIV_PSEL 0x00002000
++#define SYSCON_VIDDIV_ESEL 0x00004000
++#define SYSCON_VIDDIV_VENA 0x00008000
++
++//-----------------------------------------------------------------------------
++// MIRDIV Register Defines
++//-----------------------------------------------------------------------------
++#define SYSCON_MIRDIV_MDIV_MASK 0x0000003f
++#define SYSCON_MIRDIV_MDIV_SHIFT 0
++#define SYSCON_MIRDIV_PDIV_MASK 0x00000300
++#define SYSCON_MIRDIV_PDIV_SHIFT 8
++#define SYSCON_MIRDIV_PSEL 0x00002000
++#define SYSCON_MIRDIV_ESEL 0x00004000
++#define SYSCON_MIRDIV_MENA 0x00008000
++
++/* 8082_0000 - 8082_ffff: I2S */
++#define I2S_OFFSET 0x020000
++#define I2S_BASE (EP93XX_APB_VIRT_BASE|I2S_OFFSET)
++#define I2S_PHYS_BASE (EP93XX_APB_PHYS_BASE + I2S_OFFSET)
++
++
++
++#define I2STxClkCfg (I2S_BASE+0x00) /* 8082.0000 R/W Transmitter clock config register */
++#define I2SRxClkCfg (I2S_BASE+0x04) /* 8082.0004 R/W Receiver clock config register */
++#define I2SGlSts (I2S_BASE+0x08) /* 8082.0008 R/W SAI Global Status register. */
++#define I2SGlCtrl (I2S_BASE+0x0C) /* 8082.000C R/W SAI Global Control register */
++
++#define I2STX0Lft (I2S_BASE+0x10) /* 8082.0010 R/W Left TX data reg for channel 0 */
++#define I2STX0Rt (I2S_BASE+0x14) /* 8082.0014 R/W Right TX data reg for channel 0 */
++#define I2STX1Lft (I2S_BASE+0x18) /* 8082.0018 R/W Left TX data reg for channel 1 */
++#define I2STX1Rt (I2S_BASE+0x1C) /* 8082.001C R/W Right TX data reg for channel 1 */
++#define I2STX2Lft (I2S_BASE+0x20) /* 8082.0020 R/W Left TX data reg for channel 2 */
++#define I2STX2Rt (I2S_BASE+0x24) /* 8082.0024 R/W Right TX data reg for channel 2 */
++
++#define I2STXLinCtrlData (I2S_BASE+0x28) /* 8082.0028 R/W TX Line Control data register */
++#define I2STXCtrl (I2S_BASE+0x2C) /* 8082.002C R/W TX Control register */
++#define I2STXWrdLen (I2S_BASE+0x30) /* 8082.0030 R/W TX Word Length */
++#define I2STX0En (I2S_BASE+0x34) /* 8082.0034 R/W TX0 Channel Enable */
++#define I2STX1En (I2S_BASE+0x38) /* 8082.0038 R/W TX1 Channel Enable */
++#define I2STX2En (I2S_BASE+0x3C) /* 8082.003C R/W TX2 Channel Enable */
++
++#define I2SRX0Lft (I2S_BASE+0x40) /* 8082.0040 R Left RX data reg for channel 0 */
++#define I2SRX0Rt (I2S_BASE+0x44) /* 8082.0044 R Right RX data reg for channel 0 */
++#define I2SRX1Lft (I2S_BASE+0x48) /* 8082.0048 R Left RX data reg for channel 1 */
++#define I2SRX1Rt (I2S_BASE+0x4C) /* 8082.004c R Right RX data reg for channel 1 */
++#define I2SRX2Lft (I2S_BASE+0x50) /* 8082.0050 R Left RX data reg for channel 2 */
++#define I2SRX2Rt (I2S_BASE+0x54) /* 8082.0054 R Right RX data reg for channel 2 */
++
++#define I2SRXLinCtrlData (I2S_BASE+0x58) /* 8082.0058 R/W RX Line Control data register */
++#define I2SRXCtrl (I2S_BASE+0x5C) /* 8082.005C R/W RX Control register */
++#define I2SRXWrdLen (I2S_BASE+0x60) /* 8082.0060 R/W RX Word Length */
++#define I2SRX0En (I2S_BASE+0x64) /* 8082.0064 R/W RX0 Channel Enable */
++#define I2SRX1En (I2S_BASE+0x68) /* 8082.0068 R/W RX1 Channel Enable */
++#define I2SRX2En (I2S_BASE+0x6C) /* 8082.006C R/W RX2 Channel Enable */
++
++/* 8084_0000 - 8084_ffff: GPIO */
++#define GPIO_OFFSET 0x040000
++#define GPIO_BASE (EP93XX_APB_VIRT_BASE|GPIO_OFFSET)
++#define GPIO_PADR (GPIO_BASE+0x00)
++#define GPIO_PBDR (GPIO_BASE+0x04)
++#define GPIO_PCDR (GPIO_BASE+0x08)
++#define GPIO_PDDR (GPIO_BASE+0x0C)
++#define GPIO_PADDR (GPIO_BASE+0x10)
++#define GPIO_PBDDR (GPIO_BASE+0x14)
++#define GPIO_PCDDR (GPIO_BASE+0x18)
++#define GPIO_PDDDR (GPIO_BASE+0x1C)
++#define GPIO_PEDR (GPIO_BASE+0x20)
++#define GPIO_PEDDR (GPIO_BASE+0x24)
++// #define 0x8084.0028 Reserved
++// #define 0x8084.002C Reserved
++#define GPIO_PFDR (GPIO_BASE+0x30)
++#define GPIO_PFDDR (GPIO_BASE+0x34)
++#define GPIO_PGDR (GPIO_BASE+0x38)
++#define GPIO_PGDDR (GPIO_BASE+0x3C)
++#define GPIO_PHDR (GPIO_BASE+0x40)
++#define GPIO_PHDDR (GPIO_BASE+0x44)
++// #define 0x8084.0048 RAZ RAZ
++#define GPIO_FINTTYPE1 (GPIO_BASE+0x4C)
++#define GPIO_FINTTYPE2 (GPIO_BASE+0x50)
++#define GPIO_FEOI (GPIO_BASE+0x54) /* WRITE ONLY - READ UNDEFINED */
++#define GPIO_FINTEN (GPIO_BASE+0x58)
++#define GPIO_INTSTATUSF (GPIO_BASE+0x5C)
++#define GPIO_RAWINTSTASUSF (GPIO_BASE+0x60)
++#define GPIO_FDB (GPIO_BASE+0x64)
++#define GPIO_PAPINDR (GPIO_BASE+0x68)
++#define GPIO_PBPINDR (GPIO_BASE+0x6C)
++#define GPIO_PCPINDR (GPIO_BASE+0x70)
++#define GPIO_PDPINDR (GPIO_BASE+0x74)
++#define GPIO_PEPINDR (GPIO_BASE+0x78)
++#define GPIO_PFPINDR (GPIO_BASE+0x7C)
++#define GPIO_PGPINDR (GPIO_BASE+0x80)
++#define GPIO_PHPINDR (GPIO_BASE+0x84)
++#define GPIO_AINTTYPE1 (GPIO_BASE+0x90)
++#define GPIO_AINTTYPE2 (GPIO_BASE+0x94)
++#define GPIO_AEOI (GPIO_BASE+0x98) /* WRITE ONLY - READ UNDEFINED */
++#define GPIO_AINTEN (GPIO_BASE+0x9C)
++#define GPIO_INTSTATUSA (GPIO_BASE+0xA0)
++#define GPIO_RAWINTSTSTISA (GPIO_BASE+0xA4)
++#define GPIO_ADB (GPIO_BASE+0xA8)
++#define GPIO_BINTTYPE1 (GPIO_BASE+0xAC)
++#define GPIO_BINTTYPE2 (GPIO_BASE+0xB0)
++#define GPIO_BEOI (GPIO_BASE+0xB4) /* WRITE ONLY - READ UNDEFINED */
++#define GPIO_BINTEN (GPIO_BASE+0xB8)
++#define GPIO_INTSTATUSB (GPIO_BASE+0xBC)
++#define GPIO_RAWINTSTSTISB (GPIO_BASE+0xC0)
++#define GPIO_BDB (GPIO_BASE+0xC4)
++#define GPIO_EEDRIVE (GPIO_BASE+0xC8)
++//#define Reserved (GPIO_BASE+0xCC)
++#define GPIO_TCR (GPIO_BASE+0xD0) /* Test Registers */
++#define GPIO_TISRA (GPIO_BASE+0xD4) /* Test Registers */
++#define GPIO_TISRB (GPIO_BASE+0xD8) /* Test Registers */
++#define GPIO_TISRC (GPIO_BASE+0xDC) /* Test Registers */
++#define GPIO_TISRD (GPIO_BASE+0xE0) /* Test Registers */
++#define GPIO_TISRE (GPIO_BASE+0xE4) /* Test Registers */
++#define GPIO_TISRF (GPIO_BASE+0xE8) /* Test Registers */
++#define GPIO_TISRG (GPIO_BASE+0xEC) /* Test Registers */
++#define GPIO_TISRH (GPIO_BASE+0xF0) /* Test Registers */
++#define GPIO_TCER (GPIO_BASE+0xF4) /* Test Registers */
++
++
++/* 8088_0000 - 8088_ffff: Ac97 Controller (AAC) */
++#define AC97_OFFSET 0x080000
++#define AC97_BASE (EP93XX_APB_VIRT_BASE|AC97_OFFSET)
++#define EP93XX_AC97_PHY_BASE (EP93XX_APB_PHYS_BASE|AC97_OFFSET)
++#define AC97DR1 (AC97_BASE+0x00) /* 8088.0000 R/W Data read or written from/to FIFO1 */
++#define AC97RXCR1 (AC97_BASE+0x04) /* 8088.0004 R/W Control register for receive */
++#define AC97TXCR1 (AC97_BASE+0x08) /* 8088.0008 R/W Control register for transmit */
++#define AC97SR1 (AC97_BASE+0x0C) /* 8088.000C R Status register */
++#define AC97RISR1 (AC97_BASE+0x10) /* 8088.0010 R Raw interrupt status register */
++#define AC97ISR1 (AC97_BASE+0x14) /* 8088.0014 R Interrupt Status */
++#define AC97IE1 (AC97_BASE+0x18) /* 8088.0018 R/W Interrupt Enable */
++ /* 8088.001C Reserved - RAZ */
++#define AC97DR2 (AC97_BASE+0x20) /* 8088.0020 R/W Data read or written from/to FIFO2 */
++#define AC97RXCR2 (AC97_BASE+0x24) /* 8088.0024 R/W Control register for receive */
++#define AC97TXCR2 (AC97_BASE+0x28) /* 8088.0028 R/W Control register for transmit */
++#define AC97SR2 (AC97_BASE+0x2C) /* 8088.002C R Status register */
++#define AC97RISR2 (AC97_BASE+0x30) /* 8088.0030 R Raw interrupt status register */
++#define AC97ISR2 (AC97_BASE+0x34) /* 8088.0034 R Interrupt Status */
++#define AC97IE2 (AC97_BASE+0x38) /* 8088.0038 R/W Interrupt Enable */
++ /* 8088.003C Reserved - RAZ */
++#define AC97DR3 (AC97_BASE+0x40) /* 8088.0040 R/W Data read or written from/to FIFO3. */
++#define AC97RXCR3 (AC97_BASE+0x44) /* 8088.0044 R/W Control register for receive */
++#define AC97TXCR3 (AC97_BASE+0x48) /* 8088.0048 R/W Control register for transmit */
++#define AC97SR3 (AC97_BASE+0x4C) /* 8088.004C R Status register */
++#define AC97RISR3 (AC97_BASE+0x50) /* 8088.0050 R Raw interrupt status register */
++#define AC97ISR3 (AC97_BASE+0x54) /* 8088.0054 R Interrupt Status */
++#define AC97IE3 (AC97_BASE+0x58) /* 8088.0058 R/W Interrupt Enable */
++ /* 8088.005C Reserved - RAZ */
++#define AC97DR2 (AC97_BASE+0x20) /* 8088.0020 R/W Data read or written from/to FIFO2 */
++#define AC97RXCR2 (AC97_BASE+0x24) /* 8088.0024 R/W Control register for receive */
++#define AC97TXCR2 (AC97_BASE+0x28) /* 8088.0028 R/W Control register for transmit */
++#define AC97SR2 (AC97_BASE+0x2C) /* 8088.002C R Status register */
++#define AC97RISR2 (AC97_BASE+0x30) /* 8088.0030 R Raw interrupt status register */
++#define AC97ISR2 (AC97_BASE+0x34) /* 8088.0034 R Interrupt Status */
++#define AC97IE2 (AC97_BASE+0x38) /* 8088.0038 R/W Interrupt Enable */
++ /* 8088.003C Reserved - RAZ */
++#define AC97DR3 (AC97_BASE+0x40) /* 8088.0040 R/W Data read or written from/to FIFO3. */
++#define AC97RXCR3 (AC97_BASE+0x44) /* 8088.0044 R/W Control register for receive */
++#define AC97TXCR3 (AC97_BASE+0x48) /* 8088.0048 R/W Control register for transmit */
++#define AC97SR3 (AC97_BASE+0x4C) /* 8088.004C R Status register */
++#define AC97RISR3 (AC97_BASE+0x50) /* 8088.0050 R Raw interrupt status register */
++#define AC97ISR3 (AC97_BASE+0x54) /* 8088.0054 R Interrupt Status */
++#define AC97IE3 (AC97_BASE+0x58) /* 8088.0058 R/W Interrupt Enable */
++ /* 8088.005C Reserved - RAZ */
++#define AC97DR4 (AC97_BASE+0x60) /* 8088.0060 R/W Data read or written from/to FIFO4. */
++#define AC97RXCR4 (AC97_BASE+0x64) /* 8088.0064 R/W Control register for receive */
++#define AC97TXCR4 (AC97_BASE+0x68) /* 8088.0068 R/W Control register for transmit */
++#define AC97SR4 (AC97_BASE+0x6C) /* 8088.006C R Status register */
++#define AC97RISR4 (AC97_BASE+0x70) /* 8088.0070 R Raw interrupt status register */
++#define AC97ISR4 (AC97_BASE+0x74) /* 8088.0074 R Interrupt Status */
++#define AC97IE4 (AC97_BASE+0x78) /* 8088.0078 R/W Interrupt Enable */
++ /* 8088.007C Reserved - RAZ */
++#define AC97S1DATA (AC97_BASE+0x80) /* 8088.0080 R/W Data received/transmitted on SLOT1 */
++#define AC97S2DATA (AC97_BASE+0x84) /* 8088.0084 R/W Data received/transmitted on SLOT2 */
++#define AC97S12DATA (AC97_BASE+0x88) /* 8088.0088 R/W Data received/transmitted on SLOT12 */
++#define AC97RGIS (AC97_BASE+0x8C) /* 8088.008C R/W Raw Global interrupt status register*/
++#define AC97GIS (AC97_BASE+0x90) /* 8088.0090 R Global interrupt status register */
++#define AC97IM (AC97_BASE+0x94) /* 8088.0094 R/W Interrupt mask register */
++#define AC97EOI (AC97_BASE+0x98) /* 8088.0098 W Interrupt clear register */
++#define AC97GCR (AC97_BASE+0x9C) /* 8088.009C R/W Main Control register */
++#define AC97RESET (AC97_BASE+0xA0) /* 8088.00A0 R/W RESET control register. */
++#define AC97SYNC (AC97_BASE+0xA4) /* 8088.00A4 R/W SYNC control register. */
++#define AC97GCIS (AC97_BASE+0xA8) /* 8088.00A8 R Global chan FIFO int status register */
++
++
++/* 800B_0000 - 800B_FFFF: VIC 0 */
++#define VIC0_OFFSET 0x0B0000
++#define VIC0_BASE (EP93XX_AHB_VIRT_BASE|VIC0_OFFSET)
++#define VIC0 (VIC0_BASE+0x000)
++#define VIC0IRQSTATUS (VIC0_BASE+0x000) /* R IRQ status register */
++#define VIC0FIQSTATUS (VIC0_BASE+0x004) /* R FIQ status register */
++#define VIC0RAWINTR (VIC0_BASE+0x008) /* R Raw interrupt status register */
++#define VIC0INTSELECT (VIC0_BASE+0x00C) /* R/W Interrupt select register */
++#define VIC0INTENABLE (VIC0_BASE+0x010) /* R/W Interrupt enable register */
++#define VIC0INTENCLEAR (VIC0_BASE+0x014) /* W Interrupt enable clear register */
++
++/* 8003_0000 - 8003_ffff: Raster */
++#define RASTER_OFFSET 0x030000
++#define RASTER_BASE (EP93XX_AHB_VIRT_BASE|RASTER_OFFSET)
++#define VLINESTOTAL (RASTER_BASE+0x00)
++#define VSYNCSTRTSTOP (RASTER_BASE+0x04)
++#define VACTIVESTRTSTOP (RASTER_BASE+0x08)
++#define VCLKSTRTSTOP (RASTER_BASE+0x0C)
++#define HCLKSTOTAL (RASTER_BASE+0x10)
++#define HSYNCSTRTSTOP (RASTER_BASE+0x14)
++#define HACTIVESTRTSTOP (RASTER_BASE+0x18)
++#define HCLKSTRTSTOP (RASTER_BASE+0x1C)
++#define BRIGHTNESS (RASTER_BASE+0x20)
++#define VIDEOATTRIBS (RASTER_BASE+0x24)
++#define VIDSCRNPAGE (RASTER_BASE+0x28)
++#define VIDSCRNHPG (RASTER_BASE+0x2C)
++#define SCRNLINES (RASTER_BASE+0x30)
++#define LINELENGTH (RASTER_BASE+0x34)
++#define VLINESTEP (RASTER_BASE+0x38)
++#define LINECARRY (RASTER_BASE+0x3C)
++#define BLINKRATE (RASTER_BASE+0x40)
++#define BLINKMASK (RASTER_BASE+0x44)
++#define BLINKPATTRN (RASTER_BASE+0x48)
++#define PATTRNMASK (RASTER_BASE+0x4C)
++#define BG_OFFSET (RASTER_BASE+0x50)
++#define PIXELMODE (RASTER_BASE+0x54)
++#define PARLLIFOUT (RASTER_BASE+0x58)
++#define PARLLIFIN (RASTER_BASE+0x5C)
++#define CURSOR_ADR_START (RASTER_BASE+0x60)
++#define CURSOR_ADR_RESET (RASTER_BASE+0x64)
++#define CURSORSIZE (RASTER_BASE+0x68)
++#define CURSORCOLOR1 (RASTER_BASE+0x6C)
++#define CURSORCOLOR2 (RASTER_BASE+0x70)
++#define CURSORXYLOC (RASTER_BASE+0x74)
++#define CURSOR_DHSCAN_LH_YLOC (RASTER_BASE+0x78)
++#define RASTER_SWLOCK (RASTER_BASE+0x7C)
++#define GS_LUT (RASTER_BASE+0x80)
++#define RASTER_TCR (RASTER_BASE+0x100)
++#define RASTER_TISRA (RASTER_BASE+0x104)
++#define RASTER_TISRB (RASTER_BASE+0x108)
++#define CURSOR_TISR (RASTER_BASE+0x10C)
++#define RASTER_TOCRA (RASTER_BASE+0x110)
++#define RASTER_TOCRB (RASTER_BASE+0x114)
++#define FIFO_TOCRA (RASTER_BASE+0x118)
++#define FIFO_TOCRB (RASTER_BASE+0x11C)
++#define BLINK_TISR (RASTER_BASE+0x120)
++#define DAC_TISRA (RASTER_BASE+0x124)
++#define DAC_TISRB (RASTER_BASE+0x128)
++#define SHIFT_TISR (RASTER_BASE+0x12C)
++#define DACMUX_TOCRA (RASTER_BASE+0x130)
++#define DACMUX_TOCRB (RASTER_BASE+0x134)
++#define PELMUX_TOCR (RASTER_BASE+0x138)
++#define VIDEO_TOCRA (RASTER_BASE+0x13C)
++#define VIDEO_TOCRB (RASTER_BASE+0x140)
++#define YCRCB_TOCR (RASTER_BASE+0x144)
++#define CURSOR_TOCR (RASTER_BASE+0x148)
++#define VIDEO_TOCRC (RASTER_BASE+0x14C)
++#define SHIFT_TOCR (RASTER_BASE+0x150)
++#define BLINK_TOCR (RASTER_BASE+0x154)
++#define RASTER_TCER (RASTER_BASE+0x180)
++#define SIGVAL (RASTER_BASE+0x200)
++#define SIGCTL (RASTER_BASE+0x204)
++#define VSIGSTRTSTOP (RASTER_BASE+0x208)
++#define HSIGSTRTSTOP (RASTER_BASE+0x20C)
++#define SIGCLR (RASTER_BASE+0x210)
++#define ACRATE (RASTER_BASE+0x214)
++#define LUTCONT (RASTER_BASE+0x218)
++#define VBLANKSTRTSTOP (RASTER_BASE+0x228)
++#define HBLANKSTRTSTOP (RASTER_BASE+0x22C)
++#define LUT (RASTER_BASE+0x400)
++#define CURSORBLINK1 (RASTER_BASE+0x21C)
++#define CURSORBLINK2 (RASTER_BASE+0x220)
++#define CURSORBLINK (RASTER_BASE+0x224)
++#define EOLOFFSET (RASTER_BASE+0x230)
++#define FIFOLEVEL (RASTER_BASE+0x234)
++#define GS_LUT2 (RASTER_BASE+0x280)
++#define GS_LUT3 (RASTER_BASE+0x300)
++#define COLOR_LUT (RASTER_BASE+0x400)
++
++/* 8004_0000 - 8004_ffff: Graphics */
++#define GRAPHICS_OFFSET 0x040000
++#define GRAPHICS_BASE (EP93XX_AHB_VIRT_BASE|GRAPHICS_OFFSET)
++#define SRCPIXELSTRT (GRAPHICS_BASE+0x00)
++#define DESTPIXELSTRT (GRAPHICS_BASE+0x04)
++#define BLKSRCSTRT (GRAPHICS_BASE+0x08)
++#define BLKDSTSTRT (GRAPHICS_BASE+0x0C)
++#define BLKSRCWIDTH (GRAPHICS_BASE+0x10)
++#define SRCLINELENGTH (GRAPHICS_BASE+0x14)
++#define BLKDESTWIDTH (GRAPHICS_BASE+0x18)
++#define BLKDESTHEIGHT (GRAPHICS_BASE+0x1C)
++#define DESTLINELENGTH (GRAPHICS_BASE+0x20)
++#define BLOCKCTRL (GRAPHICS_BASE+0x24)
++#define TRANSPATTRN (GRAPHICS_BASE+0x28)
++#define BLOCKMASK (GRAPHICS_BASE+0x2C)
++#define BACKGROUND (GRAPHICS_BASE+0x30)
++#define LINEINC (GRAPHICS_BASE+0x34)
++#define LINEINIT (GRAPHICS_BASE+0x38)
++#define LINEPATTRN (GRAPHICS_BASE+0x3C)
++
++#define EP93XX_GRAPHICS_ACCEL_PHYS_BASE (EP93XX_AHB_PHYS_BASE + 0x00040000)
++
++#ifndef __ASSEMBLY__
++
++#define SysconSetLocked(registername,value) \
++ { \
++ local_irq_disable(); \
++ outl( 0xAA, EP93XX_SYSCON_SWLOCK); \
++ outl( value, registername); \
++ local_irq_enable(); \
++ }
++
++#endif /* Not __ASSEMBLY__ */
++
+
+ #endif
diff --git a/recipes/linux/linux-2.6.32/ep93xx/ep93xx-snd-ac97.patch b/recipes/linux/linux-2.6.32/ep93xx/ep93xx-snd-ac97.patch
new file mode 100644
index 0000000000..226310ec58
--- /dev/null
+++ b/recipes/linux/linux-2.6.32/ep93xx/ep93xx-snd-ac97.patch
@@ -0,0 +1,3829 @@
+---
+ arch/arm/mach-ep93xx/include/mach/hardware.h | 1
+ arch/arm/mach-ep93xx/include/mach/regs_ac97.h | 180 +
+ sound/arm/Kconfig | 17
+ sound/arm/Makefile | 3
+ sound/arm/ep93xx-ac97.c | 3482 ++++++++++++++++++++++++++
+ sound/arm/ep93xx-ac97.h | 89
+ 6 files changed, 3772 insertions(+)
+
+--- linux-2.6.31.orig/arch/arm/mach-ep93xx/include/mach/hardware.h
++++ linux-2.6.31/arch/arm/mach-ep93xx/include/mach/hardware.h
+@@ -3,10 +3,11 @@
+ */
+ #ifndef __ASM_ARCH_HARDWARE_H
+ #define __ASM_ARCH_HARDWARE_H
+
+ #include "ep93xx-regs.h"
++#include "regs_ac97.h"
+
+ #define pcibios_assign_all_busses() 0
+ #include "regs_raster.h"
+ #include "regs_touch.h"
+
+--- /dev/null
++++ linux-2.6.31/arch/arm/mach-ep93xx/include/mach/regs_ac97.h
+@@ -0,0 +1,180 @@
++/*=============================================================================
++ * FILE: regs_ac97.h
++ *
++ * DESCRIPTION: Ac'97 Register Definition
++ *
++ * Copyright Cirrus Logic, 2001-2003
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *=============================================================================
++ */
++#ifndef _REGS_AC97_H_
++#define _REGS_AC97_H_
++
++//-----------------------------------------------------------------------------
++// Bit definitionses
++//-----------------------------------------------------------------------------
++#define AC97ISR_RIS 8
++#define AC97ISR_TIS 4
++#define AC97ISR_RTIS 2
++#define AC97ISR_TCIS 1
++
++#define AC97RGIS_SLOT1TXCOMPLETE 0x01
++#define AC97RGIS_SLOT2RXVALID 0x02
++#define AC97RGIS_GPIOTXCOMPLETE 0x04
++#define AC97RGIS_GPIOINTRX 0x08
++#define AC97RGIS_RWIS 0x10
++#define AC97RGIS_CODECREADY 0x20
++#define AC97RGIS_SLOT2TXCOMPLETE 0x40
++
++#define AC97SR_RXFE 0x0001
++#define AC97SR_TXFE 0x0002
++#define AC97SR_RXFF 0x0004
++#define AC97SR_TXFF 0x0008
++#define AC97SR_TXBUSY 0x0010
++#define AC97SR_RXOE 0x0020
++#define AC97SR_TXUE 0x0040
++
++#define AC97GSR_IFE 0x1
++#define AC97GSR_LOOP 0x2
++#define AC97GSR_OVERRIDECODECREADY 0x4
++
++#define AC97RESET_TIMEDRESET 0x1
++#define AC97RESET_FORCEDRESET 0x2
++#define AC97RESET_EFORCER 0x4
++
++#define AC97RXCR_REN 0x1
++
++#define AC97TXCR_TEN 0x1
++
++
++//****************************************************************************
++//
++// The Ac97 Codec registers, accessable through the Ac-link.
++// These are not controller registers and are not memory mapped.
++// Includes registers specific to CS4202 (Beavis).
++//
++//****************************************************************************
++#define AC97_REG_OFFSET_MASK 0x0000007E
++
++#define AC97_00_RESET 0x00000000
++#define AC97_02_MASTER_VOL 0x00000002
++#define AC97_04_HEADPHONE_VOL 0x00000004
++#define AC97_06_MONO_VOL 0x00000006
++#define AC97_08_TONE 0x00000008
++#define AC97_0A_PC_BEEP_VOL 0x0000000A
++#define AC97_0C_PHONE_VOL 0x0000000C
++#define AC97_0E_MIC_VOL 0x0000000E
++#define AC97_10_LINE_IN_VOL 0x00000010
++#define AC97_12_CD_VOL 0x00000012
++#define AC97_14_VIDEO_VOL 0x00000014
++#define AC97_16_AUX_VOL 0x00000016
++#define AC97_18_PCM_OUT_VOL 0x00000018
++#define AC97_1A_RECORD_SELECT 0x0000001A
++#define AC97_1C_RECORD_GAIN 0x0000001C
++#define AC97_1E_RESERVED_1E 0x0000001E
++#define AC97_20_GENERAL_PURPOSE 0x00000020
++#define AC97_22_3D_CONTROL 0x00000022
++#define AC97_24_MODEM_RATE 0x00000024
++#define AC97_26_POWERDOWN 0x00000026
++#define AC97_28_EXT_AUDIO_ID 0x00000028
++#define AC97_2A_EXT_AUDIO_POWER 0x0000002A
++#define AC97_2C_PCM_FRONT_DAC_RATE 0x0000002C
++#define AC97_2E_PCM_SURR_DAC_RATE 0x0000002E
++#define AC97_30_PCM_LFE_DAC_RATE 0x00000030
++#define AC97_32_PCM_LR_ADC_RATE 0x00000032
++#define AC97_34_MIC_ADC_RATE 0x00000034
++#define AC97_36_6CH_VOL_C_LFE 0x00000036
++#define AC97_38_6CH_VOL_SURROUND 0x00000038
++#define AC97_3A_SPDIF_CONTROL 0x0000003A
++#define AC97_3C_EXT_MODEM_ID 0x0000003C
++#define AC97_3E_EXT_MODEM_POWER 0x0000003E
++#define AC97_40_LINE1_CODEC_RATE 0x00000040
++#define AC97_42_LINE2_CODEC_RATE 0x00000042
++#define AC97_44_HANDSET_CODEC_RATE 0x00000044
++#define AC97_46_LINE1_CODEC_LEVEL 0x00000046
++#define AC97_48_LINE2_CODEC_LEVEL 0x00000048
++#define AC97_4A_HANDSET_CODEC_LEVEL 0x0000004A
++#define AC97_4C_GPIO_PIN_CONFIG 0x0000004C
++#define AC97_4E_GPIO_PIN_TYPE 0x0000004E
++#define AC97_50_GPIO_PIN_STICKY 0x00000050
++#define AC97_52_GPIO_PIN_WAKEUP 0x00000052
++#define AC97_54_GPIO_PIN_STATUS 0x00000054
++#define AC97_56_RESERVED 0x00000056
++#define AC97_58_RESERVED 0x00000058
++#define AC97_5A_CRYSTAL_REV_N_FAB_ID 0x0000005A
++#define AC97_5C_TEST_AND_MISC_CTRL 0x0000005C
++#define AC97_5E_AC_MODE 0x0000005E
++#define AC97_60_MISC_CRYSTAL_CONTROL 0x00000060
++#define AC97_62_VENDOR_RESERVED 0x00000062
++#define AC97_64_DAC_SRC_PHASE_INCR 0x00000064
++#define AC97_66_ADC_SRC_PHASE_INCR 0x00000066
++#define AC97_68_RESERVED_68 0x00000068
++#define AC97_6A_SERIAL_PORT_CONTROL 0x0000006A
++#define AC97_6C_VENDOR_RESERVED 0x0000006C
++#define AC97_6E_VENDOR_RESERVED 0x0000006E
++#define AC97_70_BDI_CONFIG 0x00000070
++#define AC97_72_BDI_WAKEUP 0x00000072
++#define AC97_74_VENDOR_RESERVED 0x00000074
++#define AC97_76_CAL_ADDRESS 0x00000076
++#define AC97_78_CAL_DATA 0x00000078
++#define AC97_7A_VENDOR_RESERVED 0x0000007A
++#define AC97_7C_VENDOR_ID1 0x0000007C
++#define AC97_7E_VENDOR_ID2 0x0000007E
++
++
++#ifndef __ASSEMBLY__
++
++//
++// enum type for use with reg AC97_RECORD_SELECT
++//
++typedef enum{
++ RECORD_MIC = 0x0000,
++ RECORD_CD = 0x0101,
++ RECORD_VIDEO_IN = 0x0202,
++ RECORD_AUX_IN = 0x0303,
++ RECORD_LINE_IN = 0x0404,
++ RECORD_STEREO_MIX = 0x0505,
++ RECORD_MONO_MIX = 0x0606,
++ RECORD_PHONE_IN = 0x0707
++} Ac97RecordSources;
++
++#endif /* __ASSEMBLY__ */
++
++//
++// Sample rates supported directly in AC97_PCM_FRONT_DAC_RATE and
++// AC97_PCM_LR_ADC_RATE.
++//
++#define Ac97_Fs_8000 0x1f40
++#define Ac97_Fs_11025 0x2b11
++#define Ac97_Fs_16000 0x3e80
++#define Ac97_Fs_22050 0x5622
++#define Ac97_Fs_32000 0x7d00
++#define Ac97_Fs_44100 0xac44
++#define Ac97_Fs_48000 0xbb80
++
++//
++// RSIZE and TSIZE in AC97RXCR and AC97TXCR
++//
++#define Ac97_SIZE_20 2
++#define Ac97_SIZE_18 1
++#define Ac97_SIZE_16 0
++#define Ac97_SIZE_12 3
++
++//=============================================================================
++//=============================================================================
++
++
++#endif /* _REGS_AC97_H_ */
+--- linux-2.6.31.orig/sound/arm/Kconfig
++++ linux-2.6.31/sound/arm/Kconfig
+@@ -9,10 +9,27 @@ menuconfig SND_ARM
+ Drivers that are implemented on ASoC can be found in
+ "ALSA for SoC audio support" section.
+
+ if SND_ARM
+
++config SND_EP93XX_AC97
++ tristate "AC97 driver for the Cirrus EP93xx chip"
++ depends on ARCH_EP93XX && SND
++ select SND_EP93XX_PCM
++ select SND_AC97_CODEC
++ help
++ Say Y here to use AC'97 audio with a Cirrus Logic EP93xx chip.
++
++ To compile this driver as a module, choose M here: the module
++ will be called snd-ep93xx-ac97.
++
++config SND_EP93XX_PCM
++ tristate
++ select SND_PCM
++ help
++ Generic PCM module for EP93xx
++
+ config SND_ARMAACI
+ tristate "ARM PrimeCell PL041 AC Link support"
+ depends on ARM_AMBA
+ select SND_PCM
+ select SND_AC97_CODEC
+--- linux-2.6.31.orig/sound/arm/Makefile
++++ linux-2.6.31/sound/arm/Makefile
+@@ -3,10 +3,13 @@
+ #
+
+ obj-$(CONFIG_SND_ARMAACI) += snd-aaci.o
+ snd-aaci-objs := aaci.o devdma.o
+
++obj-$(CONFIG_SND_EP93XX_AC97) += snd-ep93xx-ac97.o
++snd-ep93xx-ac97-objs := ep93xx-ac97.o
++
+ obj-$(CONFIG_SND_PXA2XX_PCM) += snd-pxa2xx-pcm.o
+ snd-pxa2xx-pcm-objs := pxa2xx-pcm.o
+
+ obj-$(CONFIG_SND_PXA2XX_LIB) += snd-pxa2xx-lib.o
+ snd-pxa2xx-lib-y := pxa2xx-pcm-lib.o
+--- /dev/null
++++ linux-2.6.31/sound/arm/ep93xx-ac97.c
+@@ -0,0 +1,3482 @@
++/*
++ * linux/sound/arm/ep93xx-ac97.c -- ALSA PCM interface for the edb93xx ac97 audio
++ */
++
++#include <linux/autoconf.h>
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/delay.h>
++#include <linux/soundcard.h>
++
++#include <sound/driver.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/pcm_params.h>
++#include <sound/control.h>
++#include <sound/initval.h>
++#include <sound/ac97_codec.h>
++
++#include <asm/irq.h>
++#include <asm/semaphore.h>
++#include <asm/hardware.h>
++#include <asm/io.h>
++#include <asm/arch/dma.h>
++#include "ep93xx-ac97.h"
++
++#define DRIVER_VERSION "01/05/2009"
++#define DRIVER_DESC "EP93xx AC97 Audio driver"
++static int ac_link_enabled = 0;
++static int codec_supported_mixers;
++
++//#define DEBUG 1
++#ifdef DEBUG
++#define DPRINTK( fmt, arg... ) printk( fmt, ##arg )
++#else
++#define DPRINTK( fmt, arg... )
++#endif
++
++#define WL16 0
++#define WL24 1
++
++#define AUDIO_NAME "ep93xx-ac97"
++#define AUDIO_SAMPLE_RATE_DEFAULT 44100
++#define AUDIO_DEFAULT_VOLUME 0
++#define AUDIO_MAX_VOLUME 181
++#define AUDIO_DEFAULT_DMACHANNELS 3
++#define PLAYBACK_DEFAULT_DMACHANNELS 3
++#define CAPTURE_DEFAULT_DMACHANNELS 3
++
++#define CHANNEL_FRONT (1<<0)
++#define CHANNEL_REAR (1<<1)
++#define CHANNEL_CENTER_LFE (1<<2)
++
++static void snd_ep93xx_dma_tx_callback( ep93xx_dma_int_t DMAInt,
++ ep93xx_dma_dev_t device,
++ unsigned int user_data);
++static void snd_ep93xx_dma_rx_callback( ep93xx_dma_int_t DMAInt,
++ ep93xx_dma_dev_t device,
++ unsigned int user_data);
++
++static const struct snd_pcm_hardware ep93xx_ac97_pcm_hardware = {
++
++
++ .info = ( SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_PAUSE ),
++ .formats = ( SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S8 |
++ SNDRV_PCM_FMTBIT_U16_LE | SNDRV_PCM_FMTBIT_S16_LE |
++ SNDRV_PCM_FMTBIT_U16_BE | SNDRV_PCM_FMTBIT_S16_BE |
++ SNDRV_PCM_FMTBIT_U32_LE | SNDRV_PCM_FMTBIT_S32_LE |
++ SNDRV_PCM_FMTBIT_U32_BE | SNDRV_PCM_FMTBIT_S32_BE ),
++ .rates = ( SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |
++ SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 |
++ SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |
++ SNDRV_PCM_RATE_48000 ),
++ .rate_min = 8000,
++ .rate_max = 48000,
++ .channels_min = 1,/*2,*/
++ .channels_max = 2,
++
++ .period_bytes_min = 1 * 1024,
++ .period_bytes_max = 32 * 1024,
++ .periods_min = 1,
++ .periods_max = 32,
++ .buffer_bytes_max = 32 * 1024,
++ .fifo_size = 0,
++};
++
++static audio_stream_t output_stream;
++static audio_stream_t input_stream;
++
++static audio_state_t audio_state =
++{
++ .output_stream =&output_stream,
++ .output_dma[0] =DMATx_AAC1,
++ .output_id[0] ="Ac97 out",
++
++ .input_stream =&input_stream,
++ .input_dma[0] =DMARx_AAC1,
++ .input_id[0] ="Ac97 in",
++
++ .sem = __SEMAPHORE_INIT(audio_state.sem,1),
++ .codec_set_by_playback = 0,
++ .codec_set_by_capture = 0,
++ .DAC_bit_width =16,
++ .bCompactMode =0,
++};
++
++
++
++/*
++ * peek
++ *
++ * Reads an AC97 codec register. Returns -1 if there was an error.
++ */
++static int peek(unsigned int uiAddress)
++{
++ unsigned int uiAC97RGIS;
++
++ if( !ac_link_enabled )
++ {
++ printk("ep93xx ac97 peek: attempt to peek before enabling ac-link.\n");
++ return -1;
++ }
++
++ /*
++ * Check to make sure that the address is aligned on a word boundary
++ * and is 7E or less.
++ */
++ if( ((uiAddress & 0x1)!=0) || (uiAddress > 0x007e))
++ {
++ return -1;
++ }
++
++ /*
++ * How it is supposed to work is:
++ * - The ac97 controller sends out a read addr in slot 1.
++ * - In the next frame, the codec will echo that address back in slot 1
++ * and send the data in slot 2. SLOT2RXVALID will be set to 1.
++ *
++ * Read until SLOT2RXVALID goes to 1. Reading the data in AC97S2DATA
++ * clears SLOT2RXVALID.
++ */
++
++ /*
++ * First, delay one frame in case of back to back peeks/pokes.
++ */
++ mdelay( 1 );
++
++ /*
++ * Write the address to AC97S1DATA, delay 1 frame, read the flags.
++ */
++ outl( uiAddress, AC97S1DATA);
++ udelay( 21 * 4 );
++ uiAC97RGIS = inl( AC97RGIS );
++
++ /*
++ * Return error if we timed out.
++ */
++ if( ((uiAC97RGIS & AC97RGIS_SLOT1TXCOMPLETE) == 0 ) &&
++ ((uiAC97RGIS & AC97RGIS_SLOT2RXVALID) == 0 ) )
++ {
++ printk( "ep93xx-ac97 - peek failed reading reg 0x%02x.\n", uiAddress );
++ return -1;
++ }
++
++ return ( inl(AC97S2DATA) & 0x000fffff);
++}
++
++/*
++ * poke
++ *
++ * Writes an AC97 codec Register. Return -1 if error.
++ */
++static int poke(unsigned int uiAddress, unsigned int uiValue)
++{
++ unsigned int uiAC97RGIS;
++
++ if( !ac_link_enabled )
++ {
++ printk("ep93xx ac97 poke: attempt to poke before enabling ac-link.\n");
++ return -1;
++ }
++
++ /*
++ * Check to make sure that the address is align on a word boundary and
++ * is 7E or less. And that the value is a 16 bit value.
++ */
++ if( ((uiAddress & 0x1)!=0) || (uiAddress > 0x007e))
++ {
++ printk("ep93xx ac97 poke: address error.\n");
++ return -1;
++ }
++
++ /*stop the audio loop from the input to the output directly*/
++
++ if((uiAddress==AC97_0E_MIC_VOL)||(uiAddress==AC97_10_LINE_IN_VOL))
++ {
++ uiValue = (uiValue | 0x8000);
++
++ }
++
++ /*
++ * First, delay one frame in case of back to back peeks/pokes.
++ */
++ mdelay( 1 );
++
++ /*
++ * Write the data to AC97S2DATA, then the address to AC97S1DATA.
++ */
++ outl( uiValue, AC97S2DATA );
++ outl( uiAddress, AC97S1DATA );
++
++ /*
++ * Wait for the tx to complete, get status.
++ */
++ udelay( 30 );/*21*/
++ uiAC97RGIS = inl(AC97RGIS);
++
++ /*
++ * Return error if we timed out.
++ */
++ if( !(inl(AC97RGIS) & AC97RGIS_SLOT1TXCOMPLETE) )
++ {
++ printk( "ep93xx-ac97: poke failed writing reg 0x%02x value 0x%02x.\n", uiAddress, uiValue );
++ return -1;
++ }
++
++ return 0;
++}
++
++
++/*
++ * When we get to the multichannel case the pre-fill and enable code
++ * will go to the dma driver's start routine.
++ */
++static void ep93xx_audio_enable( int input_or_output_stream )
++{
++ unsigned int uiTemp;
++
++ DPRINTK("ep93xx_audio_enable :%x\n",input_or_output_stream);
++
++ /*
++ * Enable the rx or tx channel depending on the value of
++ * input_or_output_stream
++ */
++ if( input_or_output_stream )
++ {
++ uiTemp = inl(AC97TXCR1);
++ outl( (uiTemp | AC97TXCR_TEN), AC97TXCR1 );
++ }
++ else
++ {
++ uiTemp = inl(AC97RXCR1);
++ outl( (uiTemp | AC97RXCR_REN), AC97RXCR1 );
++ }
++
++
++ //DDEBUG("ep93xx_audio_enable - EXIT\n");
++}
++
++static void ep93xx_audio_disable( int input_or_output_stream )
++{
++ unsigned int uiTemp;
++
++ DPRINTK("ep93xx_audio_disable\n");
++
++ /*
++ * Disable the rx or tx channel depending on the value of
++ * input_or_output_stream
++ */
++ if( input_or_output_stream )
++ {
++ uiTemp = inl(AC97TXCR1);
++ outl( (uiTemp & ~AC97TXCR_TEN), AC97TXCR1 );
++ }
++ else
++ {
++ uiTemp = inl(AC97RXCR1);
++ outl( (uiTemp & ~AC97RXCR_REN), AC97RXCR1 );
++ }
++
++ //DDEBUG("ep93xx_audio_disable - EXIT\n");
++}
++
++
++
++/*=======================================================================================*/
++/*
++ * ep93xx_setup_src
++ *
++ * Once the ac-link is up and all is good, we want to set the codec to a
++ * usable mode.
++ */
++static void ep93xx_setup_src(void)
++{
++ int iTemp;
++
++ /*
++ * Set the VRA bit to enable the SRC.
++ */
++ iTemp = peek( AC97_2A_EXT_AUDIO_POWER );
++ poke( AC97_2A_EXT_AUDIO_POWER, (iTemp | 0x1) );
++
++ /*
++ * Set the DSRC/ASRC bits to enable the variable rate SRC.
++ */
++ iTemp = peek( AC97_60_MISC_CRYSTAL_CONTROL );
++ poke( AC97_60_MISC_CRYSTAL_CONTROL, (iTemp | 0x0300) );
++}
++
++/*
++ * ep93xx_set_samplerate
++ *
++ * lFrequency - Sample Rate in Hz
++ * bCapture - 0 to set Tx sample rate; 1 to set Rx sample rate
++ */
++static void ep93xx_set_samplerate( long lSampleRate, int bCapture )
++{
++ unsigned short usDivider, usPhase;
++
++ DPRINTK( "ep93xx_set_samplerate - Fs = %d\n", (int)lSampleRate );
++
++ if( (lSampleRate < 7200) || (lSampleRate > 48000) )
++ {
++ printk( "ep93xx_set_samplerate - invalid Fs = %d\n",
++ (int)lSampleRate );
++ return;
++ }
++
++ /*
++ * Calculate divider and phase increment.
++ *
++ * divider = round( 0x1770000 / lSampleRate )
++ * Note that usually rounding is done by adding 0.5 to a floating
++ * value and then truncating. To do this without using floating
++ * point, I multiply the fraction by two, do the division, then add one,
++ * then divide the whole by 2 and then truncate.
++ * Same effect, no floating point math.
++ *
++ * Ph incr = trunc( (0x1000000 / usDivider) + 1 )
++ */
++
++ usDivider = (unsigned short)( ((2 * 0x1770000 / lSampleRate) + 1) / 2 );
++
++ usPhase = (0x1000000 / usDivider) + 1;
++
++ /*
++ * Write them in the registers. Spec says divider must be
++ * written after phase incr.
++ */
++ if(!bCapture)
++ {
++ poke( AC97_2C_PCM_FRONT_DAC_RATE, usDivider);
++ poke( AC97_64_DAC_SRC_PHASE_INCR, usPhase);
++ }
++ else
++ {
++
++ poke( AC97_32_PCM_LR_ADC_RATE, usDivider);
++ poke( AC97_66_ADC_SRC_PHASE_INCR, usPhase);
++ }
++
++ DPRINTK( "ep93xx_set_samplerate - phase = %d, divider = %d\n",
++ (unsigned int)usPhase, (unsigned int)usDivider );
++
++ /*
++ * We sorta should report the actual samplerate back to the calling
++ * application. But some applications freak out if they don't get
++ * exactly what they asked for. So we fudge and tell them what
++ * they want to hear.
++ */
++ //audio_samplerate = lSampleRate;
++
++ DPRINTK( "ep93xx_set_samplerate - EXIT\n" );
++}
++
++/*
++ * ep93xx_set_hw_format
++ *
++ * Sets up whether the controller is expecting 20 bit data in 32 bit words
++ * or 16 bit data compacted to have a stereo sample in each 32 bit word.
++ */
++static void ep93xx_set_hw_format( long format,long channel )
++{
++ int bCompactMode;
++
++ switch( format )
++ {
++ /*
++ * Here's all the <=16 bit formats. We can squeeze both L and R
++ * into one 32 bit sample so use compact mode.
++ */
++ case SNDRV_PCM_FORMAT_U8:
++ case SNDRV_PCM_FORMAT_S8:
++ case SNDRV_PCM_FORMAT_S16_LE:
++ case SNDRV_PCM_FORMAT_U16_LE:
++ bCompactMode = 1;
++ break;
++
++ /*
++ * Add any other >16 bit formats here...
++ */
++ case SNDRV_PCM_FORMAT_S32_LE:
++ default:
++ bCompactMode = 0;
++ break;
++ }
++
++ if( bCompactMode )
++ {
++ DPRINTK("ep93xx_set_hw_format - Setting serial mode to 16 bit compact.\n");
++
++ /*
++ * Turn on Compact Mode so we can fit each stereo sample into
++ * a 32 bit word. Twice as efficent for DMA and FIFOs.
++ */
++ if(channel==2){
++ outl( 0x00008018, AC97RXCR1 );
++ outl( 0x00008018, AC97TXCR1 );
++ }
++ else {
++ outl( 0x00008018, AC97RXCR1 );
++ outl( 0x00008018, AC97TXCR1 );
++ }
++
++
++ audio_state.DAC_bit_width = 16;
++ audio_state.bCompactMode = 1;
++ }
++ else
++ {
++ DPRINTK("ep93xx_set_hw_format - Setting serial mode to 20 bit non-CM.\n");
++
++ /*
++ * Turn off Compact Mode so we can do > 16 bits per channel
++ */
++ if(channel==2){
++ outl( 0x00004018, AC97RXCR1 );
++ outl( 0x00004018, AC97TXCR1 );
++ }
++ else{
++ outl( 0x00004018, AC97RXCR1 );
++ outl( 0x00004018, AC97TXCR1 );
++ }
++
++ audio_state.DAC_bit_width = 20;
++ audio_state.bCompactMode = 0;
++ }
++
++}
++
++/*
++ * ep93xx_stop_loop
++ *
++ * Once the ac-link is up and all is good, we want to set the codec to a
++ * usable mode.
++ */
++static void ep93xx_stop_loop(void)
++{
++ int iTemp;
++
++ /*
++ * Set the AC97_0E_MIC_VOL MUTE bit to enable the LOOP.
++ */
++ iTemp = peek( AC97_0E_MIC_VOL );
++ poke( AC97_0E_MIC_VOL, (iTemp | 0x8000) );
++
++ /*
++ * Set the AC97_10_LINE_IN_VOL MUTE bit to enable the LOOP.
++ */
++ iTemp = peek( AC97_10_LINE_IN_VOL );
++ poke( AC97_10_LINE_IN_VOL, (iTemp | 0x8000) );
++}
++
++/*
++ * ep93xx_init_ac97_controller
++ *
++ * This routine sets up the Ac'97 Controller.
++ */
++static void ep93xx_init_ac97_controller(void)
++{
++ unsigned int uiDEVCFG, uiTemp;
++
++ DPRINTK("ep93xx_init_ac97_controller - enter\n");
++
++ /*
++ * Configure the multiplexed Ac'97 pins to be Ac97 not I2s.
++ * Configure the EGPIO4 and EGPIO6 to be GPIOS, not to be
++ * SDOUT's for the second and third I2S controller channels.
++ */
++ uiDEVCFG = inl(EP93XX_SYSCON_DEVICE_CONFIG);
++
++ uiDEVCFG &= ~(EP93XX_SYSCON_DEVCFG_CONFIG_I2SONAC97 |
++ EP93XX_SYSCON_DEVCFG_A1onG |
++ EP93XX_SYSCON_DEVCFG_A2onG);
++
++ SysconSetLocked(EP93XX_SYSCON_DEVICE_CONFIG, uiDEVCFG);
++
++ /*
++ * Disable the AC97 controller internal loopback.
++ * Disable Override codec ready.
++ */
++ outl( 0, AC97GCR );
++
++ /*
++ * Enable the AC97 Link.
++ */
++ uiTemp = inl(AC97GCR);
++ outl( (uiTemp | AC97GSR_IFE), AC97GCR );
++
++ /*
++ * Set the TIMEDRESET bit. Will cause a > 1uSec reset of the ac-link.
++ * This bit is self resetting.
++ */
++ outl( AC97RESET_TIMEDRESET, AC97RESET );
++
++ /*
++ * Delay briefly, but let's not hog the processor.
++ */
++ set_current_state(TASK_INTERRUPTIBLE);
++ schedule_timeout( 5 ); /* 50 mSec */
++
++ /*
++ * Read the AC97 status register to see if we've seen a CODECREADY
++ * signal from the AC97 codec.
++ */
++ if( !(inl(AC97RGIS) & AC97RGIS_CODECREADY))
++ {
++ printk( "ep93xx-ac97 - FAIL: CODECREADY still low!\n");
++ return;
++ }
++
++ /*
++ * Delay for a second, not hogging the processor
++ */
++ set_current_state(TASK_INTERRUPTIBLE);
++ schedule_timeout( HZ ); /* 1 Sec */
++
++ /*
++ * Now the Ac-link is up. We can read and write codec registers.
++ */
++ ac_link_enabled = 1;
++
++ /*
++ * Set up the rx and tx channels
++ * Set the CM bit, data size=16 bits, enable tx slots 3 & 4.
++ */
++ ep93xx_set_hw_format( EP93XX_DEFAULT_FORMAT,EP93XX_DEFAULT_NUM_CHANNELS );
++
++ DPRINTK( "ep93xx-ac97 -- AC97RXCR1: %08x\n", inl(AC97RXCR1) );
++ DPRINTK( "ep93xx-ac97 -- AC97TXCR1: %08x\n", inl(AC97TXCR1) );
++
++ DPRINTK("ep93xx_init_ac97_controller - EXIT - success\n");
++
++}
++
++#ifdef alsa_ac97_debug
++static void ep93xx_dump_ac97_regs(void)
++{
++ int i;
++ unsigned int reg0, reg1, reg2, reg3, reg4, reg5, reg6, reg7;
++
++ DPRINTK( "---------------------------------------------\n");
++ DPRINTK( " : 0 2 4 6 8 A C E\n" );
++
++ for( i=0 ; i < 0x80 ; i+=0x10 )
++ {
++ reg0 = 0xffff & (unsigned int)peek( i );
++ reg1 = 0xffff & (unsigned int)peek( i + 0x2 );
++ reg2 = 0xffff & (unsigned int)peek( i + 0x4 );
++ reg3 = 0xffff & (unsigned int)peek( i + 0x6 );
++ reg4 = 0xffff & (unsigned int)peek( i + 0x8 );
++ reg5 = 0xffff & (unsigned int)peek( i + 0xa );
++ reg6 = 0xffff & (unsigned int)peek( i + 0xc );
++ reg7 = 0xffff & (unsigned int)peek( i + 0xe );
++
++ DPRINTK( " %02x : %04x %04x %04x %04x %04x %04x %04x %04x\n",
++ i, reg0, reg1, reg2, reg3, reg4, reg5, reg6, reg7);
++ }
++
++ DPRINTK( "---------------------------------------------\n");
++}
++#endif
++
++
++#define supported_mixer(FOO) \
++ ( (FOO >= 0) && \
++ (FOO < SOUND_MIXER_NRDEVICES) && \
++ codec_supported_mixers & (1<<FOO) )
++
++/*
++ * Available record sources.
++ * LINE1 refers to AUX in.
++ * IGAIN refers to input gain which means stereo mix.
++ */
++#define AC97_RECORD_MASK \
++ (SOUND_MASK_MIC | SOUND_MASK_CD | SOUND_MASK_IGAIN | SOUND_MASK_VIDEO |\
++ SOUND_MASK_LINE1 | SOUND_MASK_LINE | SOUND_MASK_PHONEIN)
++
++#define AC97_STEREO_MASK \
++ (SOUND_MASK_VOLUME | SOUND_MASK_PCM | SOUND_MASK_LINE | SOUND_MASK_CD | \
++ SOUND_MASK_ALTPCM | SOUND_MASK_IGAIN | SOUND_MASK_LINE1 | SOUND_MASK_VIDEO)
++
++#define AC97_SUPPORTED_MASK \
++ (AC97_STEREO_MASK | SOUND_MASK_BASS | SOUND_MASK_TREBLE | \
++ SOUND_MASK_SPEAKER | SOUND_MASK_MIC | \
++ SOUND_MASK_PHONEIN | SOUND_MASK_PHONEOUT)
++
++
++
++
++/* this table has default mixer values for all OSS mixers. */
++typedef struct {
++ int mixer;
++ unsigned int value;
++} mixer_defaults_t;
++
++/*
++ * Default mixer settings that are set up during boot.
++ *
++ * These values are 16 bit numbers in which the upper byte is right volume
++ * and the lower byte is left volume or mono volume for mono controls.
++ *
++ * OSS Range for each of left and right volumes is 0 to 100 (0x00 to 0x64).
++ *
++ */
++static mixer_defaults_t mixer_defaults[SOUND_MIXER_NRDEVICES] =
++{
++ /* Outputs */
++ {SOUND_MIXER_VOLUME, 0x6464}, /* 0 dB */ /* -46.5dB to 0 dB */
++ {SOUND_MIXER_ALTPCM, 0x6464}, /* 0 dB */ /* -46.5dB to 0 dB */
++ {SOUND_MIXER_PHONEOUT, 0x6464}, /* 0 dB */ /* -46.5dB to 0 dB */
++
++ /* PCM playback gain */
++ {SOUND_MIXER_PCM, 0x4b4b}, /* 0 dB */ /* -34.5dB to +12dB */
++
++ /* Record gain */
++ {SOUND_MIXER_IGAIN, 0x0000}, /* 0 dB */ /* -34.5dB to +12dB */
++
++ /* Inputs */
++ {SOUND_MIXER_MIC, 0x0000}, /* mute */ /* -34.5dB to +12dB */
++ {SOUND_MIXER_LINE, 0x4b4b}, /* 0 dB */ /* -34.5dB to +12dB */
++
++ /* Inputs that are not connected. */
++ {SOUND_MIXER_SPEAKER, 0x0000}, /* mute */ /* -45dB to 0dB */
++ {SOUND_MIXER_PHONEIN, 0x0000}, /* mute */ /* -34.5dB to +12dB */
++ {SOUND_MIXER_CD, 0x0000}, /* mute */ /* -34.5dB to +12dB */
++ {SOUND_MIXER_VIDEO, 0x0000}, /* mute */ /* -34.5dB to +12dB */
++ {SOUND_MIXER_LINE1, 0x0000}, /* mute */ /* -34.5dB to +12dB */
++
++ {-1,0} /* last entry */
++};
++
++/* table to scale scale from OSS mixer value to AC97 mixer register value */
++typedef struct {
++ unsigned int offset;
++ int scale;
++} ac97_mixer_hw_t;
++
++static ac97_mixer_hw_t ac97_hw[SOUND_MIXER_NRDEVICES] =
++{
++ [SOUND_MIXER_VOLUME] = {AC97_02_MASTER_VOL, 64},
++ [SOUND_MIXER_BASS] = {0, 0},
++ [SOUND_MIXER_TREBLE] = {0, 0},
++ [SOUND_MIXER_SYNTH] = {0, 0},
++ [SOUND_MIXER_PCM] = {AC97_18_PCM_OUT_VOL, 32},
++ [SOUND_MIXER_SPEAKER] = {AC97_0A_PC_BEEP_VOL, 32},
++ [SOUND_MIXER_LINE] = {AC97_10_LINE_IN_VOL, 32},
++ [SOUND_MIXER_MIC] = {AC97_0E_MIC_VOL, 32},
++ [SOUND_MIXER_CD] = {AC97_12_CD_VOL, 32},
++ [SOUND_MIXER_IMIX] = {0, 0},
++ [SOUND_MIXER_ALTPCM] = {AC97_04_HEADPHONE_VOL, 64},
++ [SOUND_MIXER_RECLEV] = {0, 0},
++ [SOUND_MIXER_IGAIN] = {AC97_1C_RECORD_GAIN, 16},
++ [SOUND_MIXER_OGAIN] = {0, 0},
++ [SOUND_MIXER_LINE1] = {AC97_16_AUX_VOL, 32},
++ [SOUND_MIXER_LINE2] = {0, 0},
++ [SOUND_MIXER_LINE3] = {0, 0},
++ [SOUND_MIXER_DIGITAL1] = {0, 0},
++ [SOUND_MIXER_DIGITAL2] = {0, 0},
++ [SOUND_MIXER_DIGITAL3] = {0, 0},
++ [SOUND_MIXER_PHONEIN] = {AC97_0C_PHONE_VOL, 32},
++ [SOUND_MIXER_PHONEOUT] = {AC97_06_MONO_VOL, 64},
++ [SOUND_MIXER_VIDEO] = {AC97_14_VIDEO_VOL, 32},
++ [SOUND_MIXER_RADIO] = {0, 0},
++ [SOUND_MIXER_MONITOR] = {0, 0},
++};
++
++
++/* the following tables allow us to go from OSS <-> ac97 quickly. */
++enum ac97_recsettings
++{
++ AC97_REC_MIC=0,
++ AC97_REC_CD,
++ AC97_REC_VIDEO,
++ AC97_REC_AUX,
++ AC97_REC_LINE,
++ AC97_REC_STEREO, /* combination of all enabled outputs.. */
++ AC97_REC_MONO, /*.. or the mono equivalent */
++ AC97_REC_PHONE
++};
++
++static const unsigned int ac97_rm2oss[] =
++{
++ [AC97_REC_MIC] = SOUND_MIXER_MIC,
++ [AC97_REC_CD] = SOUND_MIXER_CD,
++ [AC97_REC_VIDEO] = SOUND_MIXER_VIDEO,
++ [AC97_REC_AUX] = SOUND_MIXER_LINE1,
++ [AC97_REC_LINE] = SOUND_MIXER_LINE,
++ [AC97_REC_STEREO]= SOUND_MIXER_IGAIN,
++ [AC97_REC_PHONE] = SOUND_MIXER_PHONEIN
++};
++
++/* indexed by bit position */
++static const unsigned int ac97_oss_rm[] =
++{
++ [SOUND_MIXER_MIC] = AC97_REC_MIC,
++ [SOUND_MIXER_CD] = AC97_REC_CD,
++ [SOUND_MIXER_VIDEO] = AC97_REC_VIDEO,
++ [SOUND_MIXER_LINE1] = AC97_REC_AUX,
++ [SOUND_MIXER_LINE] = AC97_REC_LINE,
++ [SOUND_MIXER_IGAIN] = AC97_REC_STEREO,
++ [SOUND_MIXER_PHONEIN] = AC97_REC_PHONE
++};
++
++
++/*
++ * ep93xx_write_mixer
++ *
++ */
++static void ep93xx_write_mixer
++(
++ int oss_channel,
++ unsigned int left,
++ unsigned int right
++)
++{
++ u16 val = 0;
++ ac97_mixer_hw_t * mh = &ac97_hw[oss_channel];
++
++ DPRINTK("ac97_codec: wrote OSS %2d (ac97 0x%02x), "
++ "l:%2d, r:%2d:",
++ oss_channel, mh->offset, left, right);
++
++ if( !mh->scale )
++ {
++ printk( "ep93xx-ac97.c: ep93xx_write_mixer - not a valid OSS channel\n");
++ return;
++ }
++
++ if( AC97_STEREO_MASK & (1 << oss_channel) )
++ {
++ /* stereo mixers */
++ if (left == 0 && right == 0)
++ {
++ val = 0x8000;
++ }
++ else
++ {
++ if (oss_channel == SOUND_MIXER_IGAIN)
++ {
++ right = (right * mh->scale) / 100;
++ left = (left * mh->scale) / 100;
++ if (right >= mh->scale)
++ right = mh->scale-1;
++ if (left >= mh->scale)
++ left = mh->scale-1;
++ }
++ else
++ {
++ right = ((100 - right) * mh->scale) / 100;
++ left = ((100 - left) * mh->scale) / 100;
++ if (right >= mh->scale)
++ right = mh->scale-1;
++ if (left >= mh->scale)
++ left = mh->scale-1;
++ }
++ val = (left << 8) | right;
++ }
++ }
++ else if(left == 0)
++ {
++ val = 0x8000;
++ }
++ else if( (oss_channel == SOUND_MIXER_SPEAKER) ||
++ (oss_channel == SOUND_MIXER_PHONEIN) ||
++ (oss_channel == SOUND_MIXER_PHONEOUT) )
++ {
++ left = ((100 - left) * mh->scale) / 100;
++ if (left >= mh->scale)
++ left = mh->scale-1;
++ val = left;
++ }
++ else if (oss_channel == SOUND_MIXER_MIC)
++ {
++ val = peek( mh->offset) & ~0x801f;
++ left = ((100 - left) * mh->scale) / 100;
++ if (left >= mh->scale)
++ left = mh->scale-1;
++ val |= left;
++ }
++ /*
++ * For bass and treble, the low bit is optional. Masking it
++ * lets us avoid the 0xf 'bypass'.
++ * Do a read, modify, write as we have two contols in one reg.
++ */
++ else if (oss_channel == SOUND_MIXER_BASS)
++ {
++ val = peek( mh->offset) & ~0x0f00;
++ left = ((100 - left) * mh->scale) / 100;
++ if (left >= mh->scale)
++ left = mh->scale-1;
++ val |= (left << 8) & 0x0e00;
++ }
++ else if (oss_channel == SOUND_MIXER_TREBLE)
++ {
++ val = peek( mh->offset) & ~0x000f;
++ left = ((100 - left) * mh->scale) / 100;
++ if (left >= mh->scale)
++ left = mh->scale-1;
++ val |= left & 0x000e;
++ }
++
++ DPRINTK(" 0x%04x", val);
++
++ poke( mh->offset, val );
++
++#ifdef alsa_ac97_debug
++ val = peek( mh->offset );
++ DEBUG(" -> 0x%04x\n", val);
++#endif
++
++}
++
++/* a thin wrapper for write_mixer */
++static void ep93xx_set_mixer
++(
++ unsigned int oss_mixer,
++ unsigned int val
++)
++{
++ unsigned int left,right;
++
++ /* cleanse input a little */
++ right = ((val >> 8) & 0xff) ;
++ left = (val & 0xff) ;
++
++ if (right > 100) right = 100;
++ if (left > 100) left = 100;
++
++ /*mixer_state[oss_mixer] = (right << 8) | left;*/
++ ep93xx_write_mixer( oss_mixer, left, right);
++}
++
++static void ep93xx_init_mixer(void)
++{
++ u16 cap;
++ int i;
++
++ /* mixer masks */
++ codec_supported_mixers = AC97_SUPPORTED_MASK;
++
++ cap = peek( AC97_00_RESET );
++ if( !(cap & 0x04) )
++ {
++ codec_supported_mixers &= ~(SOUND_MASK_BASS|SOUND_MASK_TREBLE);
++ }
++ if( !(cap & 0x10) )
++ {
++ codec_supported_mixers &= ~SOUND_MASK_ALTPCM;
++ }
++
++ /*
++ * Detect bit resolution of output volume controls by writing to the
++ * 6th bit (not unmuting yet)
++ */
++ poke( AC97_02_MASTER_VOL, 0xa020 );
++ if( peek( AC97_02_MASTER_VOL) != 0xa020 )
++ {
++ ac97_hw[SOUND_MIXER_VOLUME].scale = 32;
++ }
++
++ poke( AC97_04_HEADPHONE_VOL, 0xa020 );
++ if( peek( AC97_04_HEADPHONE_VOL) != 0xa020 )
++ {
++ ac97_hw[AC97_04_HEADPHONE_VOL].scale = 32;
++ }
++
++ poke( AC97_06_MONO_VOL, 0x8020 );
++ if( peek( AC97_06_MONO_VOL) != 0x8020 )
++ {
++ ac97_hw[AC97_06_MONO_VOL].scale = 32;
++ }
++
++ /* initialize mixer channel volumes */
++ for( i = 0;
++ (i < SOUND_MIXER_NRDEVICES) && (mixer_defaults[i].mixer != -1) ;
++ i++ )
++ {
++ if( !supported_mixer( mixer_defaults[i].mixer) )
++ {
++ continue;
++ }
++
++ ep93xx_set_mixer( mixer_defaults[i].mixer, mixer_defaults[i].value);
++ }
++
++}
++
++static int ep93xx_set_recsource( int mask )
++{
++ unsigned int val;
++
++ /* Arg contains a bit for each recording source */
++ if( mask == 0 )
++ {
++ return 0;
++ }
++
++ mask &= AC97_RECORD_MASK;
++
++ if( mask == 0 )
++ {
++ return -EINVAL;
++ }
++
++ /*
++ * May have more than one bit set. So clear out currently selected
++ * record source value first (AC97 supports only 1 input)
++ */
++ val = (1 << ac97_rm2oss[peek( AC97_1A_RECORD_SELECT ) & 0x07]);
++ if (mask != val)
++ mask &= ~val;
++
++ val = ffs(mask);
++ val = ac97_oss_rm[val-1];
++ val |= val << 8; /* set both channels */
++
++ /*
++ *
++ */
++ val = peek( AC97_1A_RECORD_SELECT ) & 0x0707;
++ if ((val&0x0404)!=0)
++ val=0x0404;
++ else if((val&0x0000)!=0)
++ val=0x0101;
++
++
++ DPRINTK("ac97_codec: setting ac97 recmask to 0x%04x\n", val);
++
++ poke( AC97_1A_RECORD_SELECT, val);
++
++ return 0;
++}
++
++/*
++ * ep93xx_init_ac97_codec
++ *
++ * Program up the external Ac97 codec.
++ *
++ */
++static void ep93xx_init_ac97_codec( void )
++{
++ DPRINTK("ep93xx_init_ac97_codec - enter\n");
++
++ ep93xx_setup_src();
++ ep93xx_set_samplerate( AUDIO_SAMPLE_RATE_DEFAULT, 0 );
++ ep93xx_set_samplerate( AUDIO_SAMPLE_RATE_DEFAULT, 1 );
++ ep93xx_init_mixer();
++
++ DPRINTK("ep93xx_init_ac97_codec - EXIT\n");
++
++}
++
++
++/*
++ * ep93xx_audio_init
++ * Audio interface
++ */
++static void ep93xx_audio_init(void)
++{
++ DPRINTK("ep93xx_audio_init - enter\n");
++ /*
++ * Init the controller, enable the ac-link.
++ * Initialize the codec.
++ */
++ ep93xx_init_ac97_controller();
++ ep93xx_init_ac97_codec();
++ /*stop the audio loop from the input to the output directly*/
++ ep93xx_stop_loop();
++
++#ifdef alsa_ac97_debug
++ ep93xx_dump_ac97_regs();
++#endif
++ DPRINTK("ep93xx_audio_init - EXIT\n");
++}
++
++/*====================================================================================*/
++
++
++static void print_audio_format( long format )
++{
++ switch( format ){
++ case SNDRV_PCM_FORMAT_S8:
++ DPRINTK( "AFMT_S8\n" );
++ break;
++
++ case SNDRV_PCM_FORMAT_U8:
++ DPRINTK( "AFMT_U8\n" );
++ break;
++
++ case SNDRV_PCM_FORMAT_S16_LE:
++ DPRINTK( "AFMT_S16_LE\n" );
++ break;
++
++ case SNDRV_PCM_FORMAT_S16_BE:
++ DPRINTK( "AFMT_S16_BE\n" );
++ break;
++
++ case SNDRV_PCM_FORMAT_U16_LE:
++ DPRINTK( "AFMT_U16_LE\n" );
++ break;
++ case SNDRV_PCM_FORMAT_U16_BE:
++ DPRINTK( "AFMT_U16_BE\n" );
++ break;
++
++ case SNDRV_PCM_FORMAT_S24_LE:
++ DPRINTK( "AFMT_S24_LE\n" );
++ break;
++
++ case SNDRV_PCM_FORMAT_S24_BE:
++ DPRINTK( "AFMT_S24_BE\n" );
++ break;
++
++ case SNDRV_PCM_FORMAT_U24_LE:
++ DPRINTK( "AFMT_U24_LE\n" );
++ break;
++
++ case SNDRV_PCM_FORMAT_U24_BE:
++ DPRINTK( "AFMT_U24_BE\n" );
++ break;
++ case SNDRV_PCM_FORMAT_S32_LE:
++ DPRINTK( "AFMT_S24_LE\n" );
++ break;
++
++ case SNDRV_PCM_FORMAT_S32_BE:
++ DPRINTK( "AFMT_S24_BE\n" );
++ break;
++
++ case SNDRV_PCM_FORMAT_U32_LE:
++ DPRINTK( "AFMT_U24_LE\n" );
++ break;
++
++ case SNDRV_PCM_FORMAT_U32_BE:
++ DPRINTK( "AFMT_U24_BE\n" );
++ break;
++ default:
++ DPRINTK( "ep93xx_i2s_Unsupported Audio Format\n" );
++ break;
++ }
++}
++
++static void audio_set_format( audio_stream_t * s, long val )
++{
++ DPRINTK( "ep93xx_i2s_audio_set_format enter. Format requested (%d) %d ",
++ (int)val,SNDRV_PCM_FORMAT_S16_LE);
++ print_audio_format( val );
++
++ switch( val ){
++ case SNDRV_PCM_FORMAT_S8:
++ s->audio_format = SNDRV_PCM_FORMAT_S8;
++ s->audio_stream_bitwidth = 8;
++ break;
++
++ case SNDRV_PCM_FORMAT_U8:
++ s->audio_format = SNDRV_PCM_FORMAT_U8;
++ s->audio_stream_bitwidth = 8;
++ break;
++
++ case SNDRV_PCM_FORMAT_S16_LE:
++ case SNDRV_PCM_FORMAT_S16_BE:
++ s->audio_format = SNDRV_PCM_FORMAT_S16_LE;
++ s->audio_stream_bitwidth = 16;
++ break;
++
++ case SNDRV_PCM_FORMAT_U16_LE:
++ case SNDRV_PCM_FORMAT_U16_BE:
++ s->audio_format = SNDRV_PCM_FORMAT_U16_LE;
++ s->audio_stream_bitwidth = 16;
++ break;
++
++ case SNDRV_PCM_FORMAT_S24_LE:
++ case SNDRV_PCM_FORMAT_S24_BE:
++ s->audio_format = SNDRV_PCM_FORMAT_S24_LE;
++ s->audio_stream_bitwidth = 24;
++ break;
++
++ case SNDRV_PCM_FORMAT_U24_LE:
++ case SNDRV_PCM_FORMAT_U24_BE:
++ s->audio_format = SNDRV_PCM_FORMAT_U24_LE;
++ s->audio_stream_bitwidth = 24;
++ break;
++
++ case SNDRV_PCM_FORMAT_U32_LE:
++ case SNDRV_PCM_FORMAT_U32_BE:
++ case SNDRV_PCM_FORMAT_S32_LE:
++ case SNDRV_PCM_FORMAT_S32_BE:
++ s->audio_format = SNDRV_PCM_FORMAT_S32_LE;
++ s->audio_stream_bitwidth = 32;
++ break;
++ default:
++ DPRINTK( "ep93xx_i2s_Unsupported Audio Format\n" );
++ break;
++ }
++
++ DPRINTK( "ep93xx_i2s_audio_set_format EXIT format set to be (%d) ", (int)s->audio_format );
++ print_audio_format( (long)s->audio_format );
++}
++
++static __inline__ unsigned long copy_to_user_S24_LE
++(
++ audio_stream_t *stream,
++ const char *to,
++ unsigned long to_count
++)
++{
++ int *dma_buffer_0 = (int *)stream->hwbuf[0];
++ int *dma_buffer_1 = (int *)stream->hwbuf[1];
++ int *dma_buffer_2 = (int *)stream->hwbuf[2];
++
++ int total_to_count = to_count;
++ int *user_ptr = (int *)to; /* 32 bit user buffer */
++ int count;
++
++ count = 8 * stream->dma_num_channels;
++
++ while (to_count > 0){
++
++ __put_user( (int)( *dma_buffer_0++ ), user_ptr++ );
++ __put_user( (int)( *dma_buffer_0++ ), user_ptr++ );
++
++ if(stream->audio_channels_flag & CHANNEL_REAR ){
++ __put_user( (int)( *dma_buffer_1++ ), user_ptr++ );
++ __put_user( (int)( *dma_buffer_1++ ), user_ptr++ );
++ }
++
++ if(stream->audio_channels_flag & CHANNEL_CENTER_LFE ){
++ __put_user( (int)( *dma_buffer_2++ ), user_ptr++ );
++ __put_user( (int)( *dma_buffer_2++ ), user_ptr++ );
++ }
++ to_count -= count;
++ }
++ return total_to_count;
++}
++
++static __inline__ unsigned long copy_to_user_U24_LE
++(
++ audio_stream_t *stream,
++ const char *to,
++ unsigned long to_count
++)
++{
++ int *dma_buffer_0 = (int *)stream->hwbuf[0];
++ int *dma_buffer_1 = (int *)stream->hwbuf[1];
++ int *dma_buffer_2 = (int *)stream->hwbuf[2];
++
++ int total_to_count = to_count;
++ unsigned int * user_ptr = (unsigned int *)to; /* 32 bit user buffer */
++ int count;
++
++ count = 8 * stream->dma_num_channels;
++
++ while (to_count > 0){
++ __put_user( ((unsigned int)( *dma_buffer_0++ )) ^ 0x8000, user_ptr++ );
++ __put_user( ((unsigned int)( *dma_buffer_0++ )) ^ 0x8000, user_ptr++ );
++
++ if(stream->audio_channels_flag & CHANNEL_REAR ){
++ __put_user( ((unsigned int)( *dma_buffer_1++ )) ^ 0x8000, user_ptr++ );
++ __put_user( ((unsigned int)( *dma_buffer_1++ )) ^ 0x8000, user_ptr++ );
++ }
++
++ if(stream->audio_channels_flag & CHANNEL_CENTER_LFE ){
++ __put_user( ((unsigned int)( *dma_buffer_2++ )) ^ 0x8000, user_ptr++ );
++ __put_user( ((unsigned int)( *dma_buffer_2++ )) ^ 0x8000, user_ptr++ );
++ }
++ to_count -= count;
++ }
++ return total_to_count;
++}
++
++static __inline__ unsigned long copy_to_user_S16_LE
++(
++ audio_stream_t *stream,
++ const char *to,
++ unsigned long to_count
++)
++{
++ int *dma_buffer_0 = (int *)stream->hwbuf[0];
++ int *dma_buffer_1 = (int *)stream->hwbuf[1];
++ int *dma_buffer_2 = (int *)stream->hwbuf[2];
++ int total_to_count = to_count;
++ short * user_ptr = (short *)to; /* 16 bit user buffer */
++ int count;
++
++ count = 4 * stream->dma_num_channels;
++
++ while (to_count > 0){
++
++ __put_user( (short)( *dma_buffer_0++ ), user_ptr++ );
++ __put_user( (short)( *dma_buffer_0++ ), user_ptr++ );
++
++ if( stream->audio_channels_flag & CHANNEL_REAR ){
++ __put_user( (short)( *dma_buffer_1++ ), user_ptr++ );
++ __put_user( (short)( *dma_buffer_1++ ), user_ptr++ );
++ }
++
++ if( stream->audio_channels_flag & CHANNEL_CENTER_LFE ){
++ __put_user( (short)( *dma_buffer_2++ ), user_ptr++ );
++ __put_user( (short)( *dma_buffer_2++ ), user_ptr++ );
++ }
++ to_count -= count;
++ }
++ return total_to_count;
++}
++
++static __inline__ unsigned long copy_to_user_U16_LE
++(
++ audio_stream_t *stream,
++ const char *to,
++ unsigned long to_count
++)
++{
++ int *dma_buffer_0 = (int *)stream->hwbuf[0];
++ int *dma_buffer_1 = (int *)stream->hwbuf[1];
++ int *dma_buffer_2 = (int *)stream->hwbuf[2];
++ int count;
++ int total_to_count = to_count;
++ short * user_ptr = (short *)to; /* 16 bit user buffer */
++
++ count = 4 * stream->dma_num_channels;
++
++ while (to_count > 0){
++
++ __put_user( ((unsigned short)( *dma_buffer_0++ )) ^ 0x8000, user_ptr++ );
++ __put_user( ((unsigned short)( *dma_buffer_0++ )) ^ 0x8000, user_ptr++ );
++
++ if(stream->audio_channels_flag & CHANNEL_REAR ){
++ __put_user( ((unsigned short)( *dma_buffer_1++ )) ^ 0x8000, user_ptr++ );
++ __put_user( ((unsigned short)( *dma_buffer_1++ )) ^ 0x8000, user_ptr++ );
++ }
++
++ if(stream->audio_channels_flag & CHANNEL_CENTER_LFE ){
++ __put_user( ((unsigned short)( *dma_buffer_2++ )) ^ 0x8000, user_ptr++ );
++ __put_user( ((unsigned short)( *dma_buffer_2++ )) ^ 0x8000, user_ptr++ );
++ }
++ to_count -= count;
++ }
++ return total_to_count;
++}
++
++static __inline__ unsigned long copy_to_user_S8
++(
++ audio_stream_t *stream,
++ const char *to,
++ unsigned long to_count
++)
++{
++ char *dma_buffer_0 = (char *)stream->hwbuf[0];
++ char *dma_buffer_1 = (char *)stream->hwbuf[1];
++ char *dma_buffer_2 = (char *)stream->hwbuf[2];
++ int count;
++ int total_to_count = to_count;
++ char * user_ptr = (char *)to; /* 8 bit user buffer */
++
++ count = 2 * stream->dma_num_channels;
++
++ dma_buffer_0++;
++ dma_buffer_1++;
++ dma_buffer_2++;
++
++ while (to_count > 0){
++
++ __put_user( (char)( *dma_buffer_0 ), user_ptr++ );
++ dma_buffer_0 += 4;
++ __put_user( (char)( *dma_buffer_0 ), user_ptr++ );
++ dma_buffer_0 += 4;
++
++ if(stream->audio_channels_flag & CHANNEL_REAR ){
++ __put_user( (char)( *dma_buffer_1 ), user_ptr++ );
++ dma_buffer_1 += 4;
++ __put_user( (char)( *dma_buffer_1 ), user_ptr++ );
++ dma_buffer_1 += 4;
++ }
++
++ if(stream->audio_channels_flag & CHANNEL_CENTER_LFE ){
++ __put_user( (char)( *dma_buffer_2 ), user_ptr++ );
++ dma_buffer_2 += 4;
++ __put_user( (char)( *dma_buffer_2 ), user_ptr++ );
++ dma_buffer_2 += 4;
++ }
++ to_count -= count;
++ }
++ return total_to_count;
++}
++
++static __inline__ unsigned long copy_to_user_U8
++(
++ audio_stream_t *stream,
++ const char *to,
++ unsigned long to_count
++)
++{
++ char *dma_buffer_0 = (char *)stream->hwbuf[0];
++ char *dma_buffer_1 = (char *)stream->hwbuf[1];
++ char *dma_buffer_2 = (char *)stream->hwbuf[2];
++ int count;
++ int total_to_count = to_count;
++ char * user_ptr = (char *)to; /* 8 bit user buffer */
++
++ count = 2 * stream->dma_num_channels;
++
++ dma_buffer_0++;
++ dma_buffer_1++;
++ dma_buffer_2++;
++
++ while (to_count > 0){
++
++ __put_user( (char)( *dma_buffer_0 ) ^ 0x80, user_ptr++ );
++ dma_buffer_0 += 4;
++ __put_user( (char)( *dma_buffer_0 ) ^ 0x80, user_ptr++ );
++ dma_buffer_0 += 4;
++
++ if(stream->audio_channels_flag & CHANNEL_REAR ){
++ __put_user( (char)( *dma_buffer_1 ) ^ 0x80, user_ptr++ );
++ dma_buffer_1 += 4;
++ __put_user( (char)( *dma_buffer_1 ) ^ 0x80, user_ptr++ );
++ dma_buffer_1 += 4;
++ }
++
++ if(stream->audio_channels_flag & CHANNEL_CENTER_LFE ){
++ __put_user( (char)( *dma_buffer_2 ) ^ 0x80, user_ptr++ );
++ dma_buffer_2 += 4;
++ __put_user( (char)( *dma_buffer_2 ) ^ 0x80, user_ptr++ );
++ dma_buffer_2 += 4;
++ }
++ to_count -= count;
++ }
++ return total_to_count;
++}
++
++
++
++
++static __inline__ unsigned long copy_to_user_S16_LE_CM
++(
++ audio_stream_t *stream,
++ const char *to,
++ unsigned long to_count
++)
++{
++ short *dma_buffer_0 = (short *)stream->hwbuf[0];
++ int *dma_buffer_1 = (int *)stream->hwbuf[1];
++ int *dma_buffer_2 = (int *)stream->hwbuf[2];
++ int total_to_count = to_count;
++ short * user_ptr = (short *)to; /* 16 bit user buffer */
++ int count;
++
++
++ count = 4 * stream->dma_num_channels;
++
++ while (to_count > 0){
++ if(stream->audio_num_channels == 2){
++ __put_user( (short)( *dma_buffer_0++ ), user_ptr++ );
++ __put_user( (short)( *dma_buffer_0++ ), user_ptr++ );
++ to_count -= count;
++ }
++ else{
++ dma_buffer_0++;
++ __put_user( (short)( *dma_buffer_0++ ), user_ptr++ );
++ to_count -= 2;
++ }
++
++ if( stream->audio_channels_flag & CHANNEL_REAR ){
++ __put_user( (short)( *dma_buffer_1++ ), user_ptr++ );
++ __put_user( (short)( *dma_buffer_1++ ), user_ptr++ );
++ }
++
++ if( stream->audio_channels_flag & CHANNEL_CENTER_LFE ){
++ __put_user( (short)( *dma_buffer_2++ ), user_ptr++ );
++ __put_user( (short)( *dma_buffer_2++ ), user_ptr++ );
++ }
++ //to_count -= count;
++ }
++ return total_to_count;
++}
++
++static __inline__ unsigned long copy_to_user_U16_LE_CM
++(
++ audio_stream_t *stream,
++ const char *to,
++ unsigned long to_count
++)
++{
++ unsigned short *dma_buffer_0 = (unsigned short *)stream->hwbuf[0];
++ int *dma_buffer_1 = (int *)stream->hwbuf[1];
++ int *dma_buffer_2 = (int *)stream->hwbuf[2];
++ int count;
++ int total_to_count = to_count;
++ unsigned short * user_ptr = (unsigned short *)to; /* 16 bit user buffer */
++
++ count = 4 * stream->dma_num_channels;
++
++ while (to_count > 0){
++
++ if(stream->audio_num_channels == 2){
++ __put_user( ((unsigned short)( *dma_buffer_0++ )) ^ 0x8000, user_ptr++ );
++ __put_user( ((unsigned short)( *dma_buffer_0++ )) ^ 0x8000, user_ptr++ );
++ to_count -= count;
++ }
++ else{
++ dma_buffer_0++;
++ __put_user( ((unsigned short)( *dma_buffer_0++ )) ^ 0x8000, user_ptr++ );
++ to_count -= 2;
++ }
++
++ if(stream->audio_channels_flag & CHANNEL_REAR ){
++ __put_user( ((unsigned short)( *dma_buffer_1++ )) ^ 0x8000, user_ptr++ );
++ __put_user( ((unsigned short)( *dma_buffer_1++ )) ^ 0x8000, user_ptr++ );
++ }
++
++ if(stream->audio_channels_flag & CHANNEL_CENTER_LFE ){
++ __put_user( ((unsigned short)( *dma_buffer_2++ )) ^ 0x8000, user_ptr++ );
++ __put_user( ((unsigned short)( *dma_buffer_2++ )) ^ 0x8000, user_ptr++ );
++ }
++ //to_count -= count;
++ }
++ return total_to_count;
++}
++
++static __inline__ unsigned long copy_to_user_S8_CM
++(
++ audio_stream_t *stream,
++ const char *to,
++ unsigned long to_count
++)
++{
++ unsigned short *dma_buffer_0 = (unsigned short *)stream->hwbuf[0];
++ char *dma_buffer_1 = (char *)stream->hwbuf[1];
++ char *dma_buffer_2 = (char *)stream->hwbuf[2];
++ int count;
++ int total_to_count = to_count;
++ char * user_ptr = (char *)to; /* 8 bit user buffer */
++
++ count = 2 * stream->dma_num_channels;
++
++ dma_buffer_0++;
++ dma_buffer_1++;
++ dma_buffer_2++;
++
++ while (to_count > 0){
++ if(stream->audio_num_channels == 2){
++ __put_user( (char)( *dma_buffer_0++ >> 8), user_ptr++ );
++ //dma_buffer_0 += 4;
++ __put_user( (char)( *dma_buffer_0++ >> 8), user_ptr++ );
++ //dma_buffer_0 += 4;
++ to_count -= count;
++ }
++ else{
++ dma_buffer_0++ ;
++ __put_user( (char)( *dma_buffer_0++ >> 8), user_ptr++ );
++
++ to_count -= 1;
++ }
++ if(stream->audio_channels_flag & CHANNEL_REAR ){
++ __put_user( (char)( *dma_buffer_1 ), user_ptr++ );
++ dma_buffer_1 += 4;
++ __put_user( (char)( *dma_buffer_1 ), user_ptr++ );
++ dma_buffer_1 += 4;
++ }
++
++ if(stream->audio_channels_flag & CHANNEL_CENTER_LFE ){
++ __put_user( (char)( *dma_buffer_2 ), user_ptr++ );
++ dma_buffer_2 += 4;
++ __put_user( (char)( *dma_buffer_2 ), user_ptr++ );
++ dma_buffer_2 += 4;
++ }
++ //to_count -= count;
++ }
++ return total_to_count;
++}
++
++static __inline__ unsigned long copy_to_user_U8_CM
++(
++ audio_stream_t *stream,
++ const char *to,
++ unsigned long to_count
++)
++{
++ unsigned short *dma_buffer_0 = (unsigned short *)stream->hwbuf[0];
++ char *dma_buffer_1 = (char *)stream->hwbuf[1];
++ char *dma_buffer_2 = (char *)stream->hwbuf[2];
++ int count;
++ int total_to_count = to_count;
++ char * user_ptr = (char *)to; /* 8 bit user buffer */
++
++ count = 2 * stream->dma_num_channels;
++
++ dma_buffer_0++;
++ dma_buffer_1++;
++ dma_buffer_2++;
++
++ while (to_count > 0){
++ if(stream->audio_num_channels == 2){
++ __put_user( (char)( *dma_buffer_0++ >>8) ^ 0x80, user_ptr++ );
++ //dma_buffer_0 += 4;
++ __put_user( (char)( *dma_buffer_0++ >>8) ^ 0x80, user_ptr++ );
++ //dma_buffer_0 += 4;
++ to_count -= count;
++ }
++ else{
++ dma_buffer_0++;
++ __put_user( (char)( *dma_buffer_0++ >>8) ^ 0x80, user_ptr++ );
++ //dma_buffer_0 += 4;
++ to_count--;
++ }
++
++ if(stream->audio_channels_flag & CHANNEL_REAR ){
++ __put_user( (char)( *dma_buffer_1 ) ^ 0x80, user_ptr++ );
++ dma_buffer_1 += 4;
++ __put_user( (char)( *dma_buffer_1 ) ^ 0x80, user_ptr++ );
++ dma_buffer_1 += 4;
++ }
++
++ if(stream->audio_channels_flag & CHANNEL_CENTER_LFE ){
++ __put_user( (char)( *dma_buffer_2 ) ^ 0x80, user_ptr++ );
++ dma_buffer_2 += 4;
++ __put_user( (char)( *dma_buffer_2 ) ^ 0x80, user_ptr++ );
++ dma_buffer_2 += 4;
++ }
++ //to_count -= count;
++ }
++ return total_to_count;
++}
++
++static __inline__ unsigned long copy_to_user_U32
++(
++ audio_stream_t *stream,
++ const char *to,
++ unsigned long to_count
++)
++{
++ char *dma_buffer_0 = (char *)stream->hwbuf[0];
++
++ if(__copy_to_user( (char *)to, dma_buffer_0, to_count))
++ {
++ return -EFAULT;
++ }
++ return to_count;
++}
++
++static __inline__ int copy_to_user_with_conversion
++(
++ audio_stream_t *stream,
++ const char *to,
++ int toCount,
++ int bCompactMode
++)
++{
++ int ret = 0;
++
++ if( toCount == 0 ){
++ DPRINTK("ep93xx_i2s_copy_to_user_with_conversion - nothing to copy!\n");
++ }
++
++ if( bCompactMode == 1 ){
++
++ switch( stream->audio_format ){
++
++ case SNDRV_PCM_FORMAT_S8:
++ ret = copy_to_user_S8_CM( stream, to, toCount );
++ break;
++
++ case SNDRV_PCM_FORMAT_U8:
++ ret = copy_to_user_U8_CM( stream, to, toCount );
++ break;
++
++ case SNDRV_PCM_FORMAT_S16_LE:
++ ret = copy_to_user_S16_LE_CM( stream, to, toCount );
++ break;
++
++ case SNDRV_PCM_FORMAT_U16_LE:
++ ret = copy_to_user_U16_LE_CM( stream, to, toCount );
++ break;
++
++ case SNDRV_PCM_FORMAT_S24_LE:
++ //ret = copy_to_user_S24_LE( stream, to, toCount );
++ //break;
++
++ case SNDRV_PCM_FORMAT_U24_LE:
++ //ret = copy_to_user_U24_LE( stream, to, toCount );
++ //break;
++
++ case SNDRV_PCM_FORMAT_S32_LE:
++ default:
++ DPRINTK( "ep93xx_i2s copy to user unsupported audio format %x\n",stream->audio_format );
++ break;
++ }
++
++ }
++ else{
++
++ switch( stream->audio_format ){
++
++ case SNDRV_PCM_FORMAT_S8:
++ ret = copy_to_user_S8( stream, to, toCount );
++ break;
++
++ case SNDRV_PCM_FORMAT_U8:
++ ret = copy_to_user_U8( stream, to, toCount );
++ break;
++
++ case SNDRV_PCM_FORMAT_S16_LE:
++ ret = copy_to_user_S16_LE( stream, to, toCount );
++ break;
++
++ case SNDRV_PCM_FORMAT_U16_LE:
++ ret = copy_to_user_U16_LE( stream, to, toCount );
++ break;
++
++ case SNDRV_PCM_FORMAT_S24_LE:
++ //ret = copy_to_user_S24_LE( stream, to, toCount );
++ //break;
++
++ case SNDRV_PCM_FORMAT_U24_LE:
++ //ret = copy_to_user_U24_LE( stream, to, toCount );
++ //break;
++ DPRINTK( "ep93xx_i2s copy to user unsupported audio format %x\n",stream->audio_format );
++ break;
++
++ case SNDRV_PCM_FORMAT_S32_LE:
++
++ //__copy_to_user( (char *)to, from, toCount);
++ ret = copy_to_user_U32( stream, to, toCount );
++ break;
++ default:
++ DPRINTK( "ep93xx_i2s copy to user unsupported audio format\n" );
++ break;
++ }
++
++ }
++ return ret;
++}
++
++static __inline__ int copy_from_user_S24_LE
++(
++ audio_stream_t *stream,
++ const char *from,
++ int toCount
++)
++{
++ int *dma_buffer_0 = (int *)stream->hwbuf[0];
++ int *dma_buffer_1 = (int *)stream->hwbuf[1];
++ int *dma_buffer_2 = (int *)stream->hwbuf[2];
++ int count;
++
++ unsigned int * user_buffer = (unsigned int *)from;
++ unsigned int data;
++
++ int toCount0 = toCount;
++ count = 8 * stream->dma_num_channels;
++
++ while (toCount > 0){
++
++ __get_user(data, user_buffer++);
++ *dma_buffer_0++ = (unsigned int)data;
++ __get_user(data, user_buffer++);
++ *dma_buffer_0++ = (unsigned int)data;
++
++ if(stream->audio_channels_flag & CHANNEL_REAR ){
++ __get_user(data, user_buffer++);
++ *dma_buffer_1++ = (unsigned int)data;
++ __get_user(data, user_buffer++);
++ *dma_buffer_1++ = (unsigned int)data;
++ }
++
++ if(stream->audio_channels_flag & CHANNEL_CENTER_LFE ){
++ __get_user(data, user_buffer++);
++ *dma_buffer_2++ = (unsigned int)data;
++ __get_user(data, user_buffer++);
++ *dma_buffer_2++ = (unsigned int)data;
++ }
++ toCount -= count;
++ }
++ return toCount0 / 2;
++}
++
++static __inline__ int copy_from_user_U24_LE
++(
++ audio_stream_t *stream,
++ const char *from,
++ int toCount
++)
++{
++ int *dma_buffer_0 = (int *)stream->hwbuf[0];
++ int *dma_buffer_1 = (int *)stream->hwbuf[1];
++ int *dma_buffer_2 = (int *)stream->hwbuf[2];
++ int count;
++ unsigned int * user_buffer = (unsigned int *)from;
++ unsigned int data;
++
++ int toCount0 = toCount;
++ count = 8 * stream->dma_num_channels;
++
++ while (toCount > 0){
++
++ __get_user(data, user_buffer++);
++ *dma_buffer_0++ = ((unsigned int)data ^ 0x8000);
++ __get_user(data, user_buffer++);
++ *dma_buffer_0++ = ((unsigned int)data ^ 0x8000);
++
++ if(stream->audio_channels_flag & CHANNEL_REAR ){
++ __get_user(data, user_buffer++);
++ *dma_buffer_1++ = ((unsigned int)data ^ 0x8000);
++ __get_user(data, user_buffer++);
++ *dma_buffer_1++ = ((unsigned int)data ^ 0x8000);
++ }
++
++ if(stream->audio_channels_flag & CHANNEL_CENTER_LFE ){
++ __get_user(data, user_buffer++);
++ *dma_buffer_2++ = ((unsigned int)data ^ 0x8000);
++ __get_user(data, user_buffer++);
++ *dma_buffer_2++ = ((unsigned int)data ^ 0x8000);
++ }
++ toCount -= count;
++ }
++ return toCount0 / 2;
++}
++
++static __inline__ int copy_from_user_S16_LE
++(
++ audio_stream_t *stream,
++ const char *from,
++ int toCount
++)
++{
++ int *dma_buffer_0 = (int *)stream->hwbuf[0];
++ int *dma_buffer_1 = (int *)stream->hwbuf[1];
++ int *dma_buffer_2 = (int *)stream->hwbuf[2];
++ unsigned short *user_buffer = (unsigned short *)from;
++ unsigned short data;
++
++ int toCount0 = toCount;
++ int count;
++ count = 8 * stream->dma_num_channels;
++
++ while (toCount > 0){
++
++ __get_user(data, user_buffer++);
++ *dma_buffer_0++ = data;
++ if(stream->audio_num_channels == 2){
++ __get_user(data, user_buffer++);
++ }
++ *dma_buffer_0++ = data;
++
++ if(stream->audio_channels_flag & CHANNEL_REAR ){
++ __get_user(data, user_buffer++);
++ *dma_buffer_1++ = data;
++ __get_user(data, user_buffer++);
++ *dma_buffer_1++ = data;
++ }
++
++ if(stream->audio_channels_flag & CHANNEL_CENTER_LFE ){
++ __get_user(data, user_buffer++);
++ *dma_buffer_2++ = data;
++ __get_user(data, user_buffer++);
++ *dma_buffer_2++ = data;
++ }
++ toCount -= count;
++ }
++
++ if(stream->audio_num_channels == 1){
++ return toCount0 / 4;
++ }
++ return toCount0 / 2;
++}
++
++static __inline__ int copy_from_user_U16_LE
++(
++ audio_stream_t *stream,
++ const char *from,
++ int toCount
++)
++{
++ int *dma_buffer_0 = (int *)stream->hwbuf[0];
++ int *dma_buffer_1 = (int *)stream->hwbuf[1];
++ int *dma_buffer_2 = (int *)stream->hwbuf[2];
++ int count;
++ unsigned short * user_buffer = (unsigned short *)from;
++ unsigned short data;
++
++ int toCount0 = toCount;
++ count = 8 * stream->dma_num_channels;
++
++ while (toCount > 0){
++
++ __get_user(data, user_buffer++);
++ *dma_buffer_0++ = ((unsigned int)data ^ 0x8000);
++ if(stream->audio_num_channels == 2){
++ __get_user(data, user_buffer++);
++ }
++ *dma_buffer_0++ = ((unsigned int)data ^ 0x8000);
++
++ if(stream->audio_channels_flag & CHANNEL_REAR ){
++ __get_user(data, user_buffer++);
++ *dma_buffer_1++ = ((unsigned int)data ^ 0x8000);
++ __get_user(data, user_buffer++);
++ *dma_buffer_1++ = ((unsigned int)data ^ 0x8000);
++ }
++
++ if(stream->audio_channels_flag & CHANNEL_CENTER_LFE ){
++ __get_user(data, user_buffer++);
++ *dma_buffer_2++ = ((unsigned int)data ^ 0x8000);
++ __get_user(data, user_buffer++);
++ *dma_buffer_2++ = ((unsigned int)data ^ 0x8000);
++ }
++ toCount -= count;
++ }
++
++ if(stream->audio_num_channels == 1){
++ return toCount0 / 4;
++ }
++ return toCount0 / 2;
++}
++
++static __inline__ int copy_from_user_S8
++(
++ audio_stream_t *stream,
++ const char *from,
++ int toCount
++)
++{
++ char *dma_buffer_0 = (char *)stream->hwbuf[0];
++ char *dma_buffer_1 = (char *)stream->hwbuf[1];
++ char *dma_buffer_2 = (char *)stream->hwbuf[2];
++ int count;
++ unsigned char * user_buffer = (unsigned char *)from;
++ unsigned char data;
++
++ int toCount0 = toCount;
++ count = 8 * stream->dma_num_channels;
++
++ dma_buffer_0++;
++ dma_buffer_1++;
++ dma_buffer_2++;
++
++ while (toCount > 0){
++ __get_user(data, user_buffer++);
++ *dma_buffer_0 = data;
++ dma_buffer_0 += 4;
++ if(stream->audio_num_channels == 2){
++ __get_user(data, user_buffer++);
++ }
++ *dma_buffer_0 = data;
++ dma_buffer_0 += 4;
++
++ if(stream->audio_channels_flag & CHANNEL_REAR ){
++ __get_user(data, user_buffer++);
++ *dma_buffer_1 = data;
++ dma_buffer_1 += 4;
++ __get_user(data, user_buffer++);
++ *dma_buffer_1 = data;
++ dma_buffer_1 += 4;
++ }
++
++ if(stream->audio_channels_flag & CHANNEL_CENTER_LFE ){
++ __get_user(data, user_buffer++);
++ *dma_buffer_2 = data;
++ dma_buffer_2 += 4;
++ __get_user(data, user_buffer++);
++ *dma_buffer_2 = data;
++ dma_buffer_2 += 4;
++ }
++ toCount -= count;
++ }
++
++ if(stream->audio_num_channels == 1){
++ return toCount0 / 8;
++ }
++ return toCount0 / 4;
++}
++
++static __inline__ int copy_from_user_U8
++(
++ audio_stream_t *stream,
++ const char *from,
++ int toCount
++)
++{
++ char *dma_buffer_0 = (char *)stream->hwbuf[0];
++ char *dma_buffer_1 = (char *)stream->hwbuf[1];
++ char *dma_buffer_2 = (char *)stream->hwbuf[2];
++ int count;
++ unsigned char *user_buffer = (unsigned char *)from;
++ unsigned char data;
++
++ int toCount0 = toCount;
++ count = 8 * stream->dma_num_channels;
++
++ dma_buffer_0 ++;
++ dma_buffer_1 ++;
++ dma_buffer_2 ++;
++
++ while (toCount > 0){
++
++ __get_user(data, user_buffer++);
++ *dma_buffer_0 = ((unsigned char)data ^ 0x80);
++ dma_buffer_0 += 4;
++ if(stream->audio_num_channels == 2){
++ __get_user(data, user_buffer++);
++ }
++ *dma_buffer_0 = ((unsigned char)data ^ 0x80);
++ dma_buffer_0 += 4;
++
++ if(stream->audio_channels_flag & CHANNEL_REAR ){
++ __get_user(data, user_buffer++);
++ *dma_buffer_1 = ((unsigned char)data ^ 0x80);
++ dma_buffer_1 += 4;
++ __get_user(data, user_buffer++);
++ *dma_buffer_1 = ((unsigned char)data ^ 0x80);
++ dma_buffer_1 += 4;
++ }
++
++ if(stream->audio_channels_flag & CHANNEL_CENTER_LFE ){
++ __get_user(data, user_buffer++);
++ *dma_buffer_2 = ((unsigned char)data ^ 0x80);
++ dma_buffer_2 += 4;
++ __get_user(data, user_buffer++);
++ *dma_buffer_2 = ((unsigned char)data ^ 0x80);
++ dma_buffer_2 += 4;
++ }
++ toCount -= count;
++ }
++
++ if(stream->audio_num_channels == 1){
++ return toCount0 / 8;
++ }
++ return toCount0 / 4;
++}
++
++static __inline__ int copy_from_user_S16_LE_CM
++(
++ audio_stream_t *stream,
++ const char *from,
++ int toCount
++)
++{
++ unsigned int *dma_buffer_0 = (int *)stream->hwbuf[0];
++ unsigned int *dma_buffer_1 = (int *)stream->hwbuf[1];
++ unsigned int *dma_buffer_2 = (int *)stream->hwbuf[2];
++ unsigned short *user_buffer = (unsigned short *)from;
++ short data;
++ unsigned int val;
++ int toCount0 = toCount;
++ int count;
++ count = 4 * stream->dma_num_channels;
++
++ //printk("count=%x tocount\n",count,toCount);
++ while (toCount > 0){
++
++ __get_user(data, user_buffer++);
++ //*dma_buffer_0++ = data;
++ val = (unsigned int)data & 0x0000ffff;
++ if(stream->audio_num_channels == 2){
++ __get_user(data, user_buffer++);
++ }
++ *dma_buffer_0++ = ((unsigned int)data << 16) | val;
++
++ if(stream->audio_channels_flag & CHANNEL_REAR ){
++ __get_user(data, user_buffer++);
++ //*dma_buffer_1++ = data;
++ val = (unsigned int)data & 0x0000ffff;
++ __get_user(data, user_buffer++);
++ *dma_buffer_1++ = ((unsigned int)data << 16) | val;
++ }
++
++ if(stream->audio_channels_flag & CHANNEL_CENTER_LFE ){
++ __get_user(data, user_buffer++);
++ //*dma_buffer_2++ = data;
++ val = (unsigned int)data & 0x0000ffff;
++ __get_user(data, user_buffer++);
++ *dma_buffer_2++ = ((unsigned int)data << 16) | val;
++ }
++ toCount -= count;
++ }
++
++ if(stream->audio_num_channels == 1){
++ return toCount0 /2 ;
++ }
++
++ return toCount0 ;
++}
++
++static __inline__ int copy_from_user_U16_LE_CM
++(
++ audio_stream_t *stream,
++ const char *from,
++ int toCount
++)
++{
++ int *dma_buffer_0 = (int *)stream->hwbuf[0];
++ int *dma_buffer_1 = (int *)stream->hwbuf[1];
++ int *dma_buffer_2 = (int *)stream->hwbuf[2];
++ int count;
++ unsigned short * user_buffer = (unsigned short *)from;
++ unsigned short data;
++ unsigned int val;
++ int toCount0 = toCount;
++ count = 4 * stream->dma_num_channels;
++
++ while (toCount > 0){
++
++ __get_user(data, user_buffer++);
++ //*dma_buffer_0++ = ((unsigned int)data ^ 0x8000);
++ val = (unsigned int)data & 0x0000ffff;
++ if(stream->audio_num_channels == 2){
++ __get_user(data, user_buffer++);
++ }
++ //*dma_buffer_0++ = ((unsigned int)data ^ 0x8000);
++ *dma_buffer_0++ = (((unsigned int)data << 16) | val) ^ 0x80008000;
++
++ if(stream->audio_channels_flag & CHANNEL_REAR ){
++ __get_user(data, user_buffer++);
++ //*dma_buffer_1++ = ((unsigned int)data ^ 0x8000);
++ val = (unsigned int)data & 0x0000ffff;
++ __get_user(data, user_buffer++);
++ //*dma_buffer_1++ = ((unsigned int)data ^ 0x8000);
++ *dma_buffer_1++ = (((unsigned int)data << 16) | val) ^ 0x80008000;
++ }
++
++ if(stream->audio_channels_flag & CHANNEL_CENTER_LFE ){
++ __get_user(data, user_buffer++);
++ //*dma_buffer_2++ = ((unsigned int)data ^ 0x8000);
++ val = (unsigned int)data & 0x0000ffff;
++ __get_user(data, user_buffer++);
++ //*dma_buffer_2++ = ((unsigned int)data ^ 0x8000);
++ *dma_buffer_2++ = (((unsigned int)data << 16) | val) ^ 0x80008000;
++ }
++ toCount -= count;
++ }
++
++ if(stream->audio_num_channels == 1){
++ return toCount0/2;
++ }
++ return toCount0 ;
++}
++
++static __inline__ int copy_from_user_S8_CM
++(
++ audio_stream_t *stream,
++ const char *from,
++ int toCount
++)
++{
++ char *dma_buffer_0 = (char *)stream->hwbuf[0];
++ char *dma_buffer_1 = (char *)stream->hwbuf[1];
++ char *dma_buffer_2 = (char *)stream->hwbuf[2];
++ int count;
++ unsigned char * user_buffer = (unsigned char *)from;
++ unsigned char data;
++ int toCount0 = toCount;
++ count = 4 * stream->dma_num_channels;
++
++ dma_buffer_0++;
++ dma_buffer_1++;
++ dma_buffer_2++;
++
++ while (toCount > 0){
++ __get_user(data, user_buffer++);
++ *dma_buffer_0 = data;
++ *(dma_buffer_0 +1 ) = 0;
++ dma_buffer_0 += 2;
++
++ if(stream->audio_num_channels == 2){
++ __get_user(data, user_buffer++);
++ }
++ *dma_buffer_0 = data;
++ *(dma_buffer_0 +1 ) = 0;
++ dma_buffer_0 += 2;
++
++ if(stream->audio_channels_flag & CHANNEL_REAR ){
++ __get_user(data, user_buffer++);
++ *dma_buffer_1 = data;
++ dma_buffer_1 += 2;
++ __get_user(data, user_buffer++);
++ *dma_buffer_1 = data;
++ dma_buffer_1 += 2;
++ }
++
++ if(stream->audio_channels_flag & CHANNEL_CENTER_LFE ){
++ __get_user(data, user_buffer++);
++ *dma_buffer_2 = data;
++ dma_buffer_2 += 2;
++ __get_user(data, user_buffer++);
++ *dma_buffer_2 = data;
++ dma_buffer_2 += 2;
++ }
++ toCount -= count;
++ }
++
++ if(stream->audio_num_channels == 1){
++ return toCount0 / 4;
++ }
++
++ return toCount0 / 2;
++}
++
++static __inline__ int copy_from_user_U8_CM
++(
++ audio_stream_t *stream,
++ const char *from,
++ int toCount
++)
++{
++ unsigned char *dma_buffer_0 = (unsigned char *)stream->hwbuf[0];
++ unsigned char *dma_buffer_1 = (unsigned char *)stream->hwbuf[1];
++ unsigned char *dma_buffer_2 = (unsigned char *)stream->hwbuf[2];
++ int count;
++ unsigned char *user_buffer = (unsigned char *)from;
++ unsigned char data;
++
++ int toCount0 = toCount;
++ count = 4 * stream->dma_num_channels;
++
++ dma_buffer_0 ++;
++ dma_buffer_1 ++;
++ dma_buffer_2 ++;
++
++ while (toCount > 0){
++
++ __get_user(data, user_buffer++);
++ *dma_buffer_0 = ((unsigned char)data ^ 0x80);
++ *(dma_buffer_0 +1 ) = 0;
++ dma_buffer_0 += 2;
++
++ if(stream->audio_num_channels == 2){
++ __get_user(data, user_buffer++);
++ }
++ *dma_buffer_0 = ((unsigned char)data ^ 0x80);
++ *(dma_buffer_0 +1 ) = 0;
++ dma_buffer_0 += 2;
++
++
++ if(stream->audio_channels_flag & CHANNEL_REAR ){
++ __get_user(data, user_buffer++);
++ *dma_buffer_1 = ((unsigned char)data ^ 0x80);
++ dma_buffer_1 += 2;
++ __get_user(data, user_buffer++);
++ *dma_buffer_1 = ((unsigned char)data ^ 0x80);
++ dma_buffer_1 += 2;
++ }
++
++ if(stream->audio_channels_flag & CHANNEL_CENTER_LFE ){
++ __get_user(data, user_buffer++);
++ *dma_buffer_2 = ((unsigned char)data ^ 0x80);
++ dma_buffer_2 += 2;
++ __get_user(data, user_buffer++);
++ *dma_buffer_2 = ((unsigned char)data ^ 0x80);
++ dma_buffer_2 += 2;
++ }
++ toCount -= count;
++ }
++
++ if(stream->audio_num_channels == 1){
++ return toCount0 / 4;
++ }
++
++ return toCount0 / 2;
++}
++
++static int copy_from_user_U32
++(
++ audio_stream_t *stream,
++ const char *from,
++ int toCount
++)
++{
++ char *dma_buffer_0 = (char *)stream->hwbuf[0];
++
++ if (copy_from_user( (char *)dma_buffer_0, from, toCount))
++ {
++ return -EFAULT;
++ }
++
++ return toCount;
++
++}
++
++/*
++ * Returns negative for error
++ * Returns # of bytes transferred out of the from buffer
++ * for success.
++ */
++static __inline__ int copy_from_user_with_conversion
++(
++ audio_stream_t *stream,
++ const char *from,
++ int toCount,
++ int bCompactMode
++)
++{
++ int ret = 0;
++// DPRINTK("copy_from_user_with_conversion\n");
++ if( toCount == 0 ){
++ DPRINTK("ep93xx_i2s_copy_from_user_with_conversion - nothing to copy!\n");
++ }
++
++ if( bCompactMode == 1){
++
++ switch( stream->audio_format ){
++
++ case SNDRV_PCM_FORMAT_S8:
++ DPRINTK("SNDRV_PCM_FORMAT_S8 CM\n");
++ ret = copy_from_user_S8_CM( stream, from, toCount );
++ break;
++
++ case SNDRV_PCM_FORMAT_U8:
++ DPRINTK("SNDRV_PCM_FORMAT_U8 CM\n");
++ ret = copy_from_user_U8_CM( stream, from, toCount );
++ break;
++
++ case SNDRV_PCM_FORMAT_S16_LE:
++ DPRINTK("SNDRV_PCM_FORMAT_S16_LE CM\n");
++ ret = copy_from_user_S16_LE_CM( stream, from, toCount );
++ break;
++
++ case SNDRV_PCM_FORMAT_U16_LE:
++ DPRINTK("SNDRV_PCM_FORMAT_U16_LE CM\n");
++ ret = copy_from_user_U16_LE_CM( stream, from, toCount );
++ break;
++
++ case SNDRV_PCM_FORMAT_S24_LE:
++ DPRINTK("SNDRV_PCM_FORMAT_S24_LE CM\n");
++ //ret = copy_from_user_S24_LE( stream, from, toCount );
++ //break;
++
++ case SNDRV_PCM_FORMAT_U24_LE:
++ DPRINTK("SNDRV_PCM_FORMAT_U24_LE CM\n");
++ //ret = copy_from_user_U24_LE( stream, from, toCount );
++ //break;
++ case SNDRV_PCM_FORMAT_S32_LE:
++ DPRINTK("SNDRV_PCM_FORMAT_S32_LE CM\n");
++ //break;
++ default:
++ DPRINTK( "ep93xx_i2s copy from user unsupported audio format\n" );
++ break;
++ }
++ }
++ else{
++ switch( stream->audio_format ){
++
++ case SNDRV_PCM_FORMAT_S8:
++ DPRINTK("SNDRV_PCM_FORMAT_S8\n");
++ ret = copy_from_user_S8( stream, from, toCount );
++ break;
++
++ case SNDRV_PCM_FORMAT_U8:
++ DPRINTK("SNDRV_PCM_FORMAT_U8\n");
++ ret = copy_from_user_U8( stream, from, toCount );
++ break;
++
++ case SNDRV_PCM_FORMAT_S16_LE:
++ DPRINTK("SNDRV_PCM_FORMAT_S16_LE\n");
++ ret = copy_from_user_S16_LE( stream, from, toCount );
++ break;
++
++ case SNDRV_PCM_FORMAT_U16_LE:
++ DPRINTK("SNDRV_PCM_FORMAT_U16_LE\n");
++ ret = copy_from_user_U16_LE( stream, from, toCount );
++ break;
++
++ case SNDRV_PCM_FORMAT_S24_LE:
++ DPRINTK("SNDRV_PCM_FORMAT_S24_LE\n");
++ //ret = copy_from_user_S24_LE( stream, from, toCount );
++ //break;
++
++ case SNDRV_PCM_FORMAT_U24_LE:
++ DPRINTK("SNDRV_PCM_FORMAT_U24_LE\n");
++ //ret = copy_from_user_U24_LE( stream, from, toCount );
++ //break;
++ DPRINTK( "ep93xx_i2s copy from user unsupported audio format\n" );
++ break;
++ case SNDRV_PCM_FORMAT_S32_LE:
++ DPRINTK("SNDRV_PCM_FORMAT_S32_LE\n");
++ ret = copy_from_user_U32( stream, from, toCount );
++ break;
++ default:
++ DPRINTK( "ep93xx_i2s copy from user unsupported audio format\n" );
++ break;
++ }
++ }
++
++ return ret;
++}
++
++
++
++/*
++ * For audio playback, we convert samples of arbitrary format to be 32 bit
++ * for our hardware. We're scaling a user buffer to a dma buffer. So when
++ * report byte counts, we scale them acording to the ratio of DMA sample
++ * size to user buffer sample size. When we report # of DMA fragments,
++ * we don't scale that. So:
++ *
++ * Also adjust the size and number of dma fragments if sample size changed.
++ *
++ * Input format Input sample Output sample size ratio (out:in)
++ * bits channels size (bytes) CM non-CM CM non-CM
++ * 8 stereo 2 4 8 2:1 4:1
++ * 16 stereo 4 4 8 1:1 2:1
++ * 24 stereo 6 4 8 X 8:6 not a real case
++ *
++ */
++static void snd_ep93xx_dma2usr_ratio( audio_stream_t * stream,int bCompactMode )
++{
++ unsigned int dma_sample_size, user_sample_size;
++
++ if(bCompactMode == 1){
++ dma_sample_size = 4; /* each stereo sample is 2 * 32 bits */
++ }
++ else{
++ dma_sample_size = 8;
++ }
++
++ // If stereo 16 bit, user sample is 4 bytes.
++ // If stereo 8 bit, user sample is 2 bytes.
++ if(stream->audio_num_channels == 1){
++ user_sample_size = stream->audio_stream_bitwidth / 8;
++ }
++ else{
++ user_sample_size = stream->audio_stream_bitwidth / 4;
++ }
++
++ stream->dma2usr_ratio = dma_sample_size / user_sample_size;
++}
++
++/*---------------------------------------------------------------------------------------------*/
++
++static int snd_ep93xx_dma_free(struct snd_pcm_substream *substream ){
++
++
++ audio_state_t *state = substream->private_data;
++ audio_stream_t *stream = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
++ state->output_stream:state->input_stream;
++ int i;
++
++
++ DPRINTK("snd_ep93xx_dma_free - enter\n");
++ for( i = 0 ; i < stream->dma_num_channels ;i++ ){
++ ep93xx_dma_free( stream->dmahandles[i] );
++ }
++ DPRINTK("snd_ep93xx_dma_free - exit\n");
++ return 0;
++}
++
++static int snd_ep93xx_dma_config(struct snd_pcm_substream *substream ){
++
++ audio_state_t *state = substream->private_data;
++ audio_stream_t *stream = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
++ state->output_stream:state->input_stream;
++ int i,err = 0;
++
++ DPRINTK("snd_ep93xx_dma_config - enter\n");
++
++ for( i = 0 ; i < stream->dma_num_channels ;i++ ){
++
++ err = ep93xx_dma_request(&stream->dmahandles[i],
++ stream->devicename,
++ (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
++ state->output_dma[i]:state->input_dma[i] );
++ if (err){
++ printk("snd_ep93xx_dma_config - exit ERROR dma request failed\n");
++ return err;
++ }
++ err = ep93xx_dma_config( stream->dmahandles[i],
++ IGNORE_CHANNEL_ERROR,
++ 0,
++ (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
++ snd_ep93xx_dma_tx_callback:snd_ep93xx_dma_rx_callback,
++ (unsigned int)substream );
++ if (err){
++ printk("snd_ep93xx_dma_config - exit ERROR dma request failed\n");
++ return err;
++ }
++ }
++
++ DPRINTK("snd_ep93xx_dma_config - enter\n");
++ return err;
++}
++
++static void snd_ep93xx_dma_start( audio_state_t * state, audio_stream_t * stream )
++{
++ int err,i;
++
++ DPRINTK("snd_ep93xx_dma_start - enter\n");
++
++ for(i = 0 ;i < stream->dma_num_channels;i++)
++ err = ep93xx_dma_start( stream->dmahandles[i], 1,(unsigned int *) stream->dmahandles );
++
++ stream->active = 1;
++
++ DPRINTK("snd_ep93xx_dma_start - exit\n");
++}
++
++static void snd_ep93xx_dma_pause( audio_state_t * state, audio_stream_t * stream )
++{
++ int i;
++
++ DPRINTK("snd_ep93xx_dma_pause - enter\n");
++
++ for(i = 0 ;i < stream->dma_num_channels;i++)
++ ep93xx_dma_pause( stream->dmahandles[i], 1,(unsigned int *)stream->dmahandles );
++
++ stream->active = 0;
++ DPRINTK("snd_ep93xx_dma_pause - exit\n");
++
++}
++
++static void snd_ep93xx_dma_flush( audio_state_t * state, audio_stream_t * stream ){
++
++ int i;
++
++ DPRINTK("snd_ep93xx_dma_flush - enter\n");
++
++ for( i = 0 ; i < stream->dma_num_channels ; i++ )
++ ep93xx_dma_flush( stream->dmahandles[i] );
++
++ DPRINTK("snd_ep93xx_dma_flush - exit\n");
++}
++
++static void snd_ep93xx_deallocate_buffers( struct snd_pcm_substream *substream, audio_stream_t *stream )
++{
++ int i;
++ audio_channel_t *dma_chan;
++
++ DPRINTK("snd_ep93xx_deallocate_buffers - enter\n");
++
++ if( stream->dma_channels ){
++
++ for(i = 0;i < stream->dma_num_channels;i++){
++
++ dma_chan = &stream->dma_channels[i];
++
++ if( dma_chan->area ){
++
++ if( dma_chan->audio_buffers ){
++
++ kfree(dma_chan->audio_buffers);
++ dma_chan->audio_buffers = NULL;
++
++ }
++
++ kfree(dma_chan->area);
++ dma_chan->area = NULL;
++ }
++ }
++ kfree(stream->dma_channels);
++ stream->dma_channels = NULL;
++ }
++ DPRINTK("snd_ep93xx_deallocate_buffers - exit\n");
++}
++
++static int snd_ep93xx_allocate_buffers(struct snd_pcm_substream *substream, audio_stream_t *stream)
++{
++ audio_channel_t *channel;
++ unsigned int size,tmpsize,bufsize,bufextsize;
++ int i,j;
++
++
++ DPRINTK("snd_ep93xx_allocate_buffers - enter\n" );
++
++ if (stream->dma_channels){
++ printk("ep93xx_i2s %s BUSY\n",__FUNCTION__);
++ return -EBUSY;
++ }
++
++ stream->dma_channels = (audio_channel_t *)kmalloc(sizeof(audio_channel_t) * stream->dma_num_channels , GFP_KERNEL);
++
++ if (!stream->dma_channels){
++ printk(AUDIO_NAME ": unable to allocate dma_channels memory\n");
++ return - ENOMEM;
++ }
++
++ size = ( stream->dmasize / stream->dma_num_channels ) * stream->dma2usr_ratio;
++
++ for( i = 0; i < stream->dma_num_channels;i++){
++ channel = &stream->dma_channels[i];
++
++ channel->area = kmalloc( size, GFP_DMA );
++
++ if(!channel->area){
++ printk(AUDIO_NAME ": unable to allocate audio memory\n");
++ return -ENOMEM;
++ }
++ channel->bytes = size;
++ channel->addr = __virt_to_phys((int) channel->area);
++ memset( channel->area, 0, channel->bytes );
++
++ bufsize = ( stream->fragsize / stream->dma_num_channels ) * stream->dma2usr_ratio;
++ channel->audio_buff_count = size / bufsize;
++ bufextsize = size % bufsize;
++
++ if( bufextsize > 0 ){
++ channel->audio_buff_count++;
++ }
++
++ channel->audio_buffers = (audio_buf_t *)kmalloc(sizeof(audio_buf_t) * channel->audio_buff_count , GFP_KERNEL);
++
++ if (!channel->audio_buffers){
++ printk(AUDIO_NAME ": unable to allocate audio memory\n ");
++ return -ENOMEM;
++ }
++
++ tmpsize = size;
++
++ for( j = 0; j < channel->audio_buff_count; j++){
++
++ channel->audio_buffers[j].dma_addr = channel->addr + j * bufsize;
++
++ if( tmpsize >= bufsize ){
++ tmpsize -= bufsize;
++ channel->audio_buffers[j].bytes = bufsize;
++ channel->audio_buffers[j].reportedbytes = bufsize / stream->dma2usr_ratio;
++ }
++ else{
++ channel->audio_buffers[j].bytes = bufextsize;
++ channel->audio_buffers[j].reportedbytes = bufextsize / stream->dma2usr_ratio;
++ }
++ }
++ }
++
++ DPRINTK("snd_ep93xx_allocate_buffers -- exit SUCCESS\n" );
++ return 0;
++}
++
++/*
++ * DMA callback functions
++ */
++
++static void snd_ep93xx_dma_tx_callback
++(
++ ep93xx_dma_int_t DMAInt,
++ ep93xx_dma_dev_t device,
++ unsigned int user_data
++)
++{
++ int handle;
++ int i,chan;
++ unsigned int buf_id;
++
++ struct snd_pcm_substream *substream = (struct snd_pcm_substream *)user_data;
++ audio_state_t *state = (audio_state_t *)(substream->private_data);
++ audio_stream_t *stream = state->output_stream;
++ audio_buf_t *buf;
++
++ switch( device )
++ {
++ case DMATx_I2S3:
++ DPRINTK( "snd_ep93xx_dma_tx_callback - DMATx_I2S3\n");
++ i = 2;
++ break;
++ case DMATx_I2S2:
++ DPRINTK( "snd_ep93xx_dma_tx_callback - DMATx_I2S2\n");
++ i = 1;
++ break;
++ case DMATx_I2S1:
++ default:
++ DPRINTK( "snd_ep93xx_dma_tx_callback - DMATx_I2S1\n");
++ i = 0;
++ break;
++ }
++
++ if(stream->audio_num_channels == 1){
++ chan = 0;
++ }
++ else{
++ chan = stream->audio_num_channels / 2 - 1;
++ }
++ handle = stream->dmahandles[i];
++
++ if(stream->stopped == 0){
++
++ if( ep93xx_dma_remove_buffer( handle, &buf_id ) >= 0 ){
++
++ buf = (audio_buf_t *)buf_id;
++ stream->bytecount += buf->reportedbytes;
++ ep93xx_dma_add_buffer( stream->dmahandles[i],
++ (unsigned int)buf->dma_addr,
++ 0,
++ buf->bytes,
++ 0,
++ (unsigned int) buf );
++ if(chan == i)
++ snd_pcm_period_elapsed(substream);
++ }
++ }
++}
++
++static void snd_ep93xx_dma_rx_callback
++(
++ ep93xx_dma_int_t DMAInt,
++ ep93xx_dma_dev_t device,
++ unsigned int user_data
++)
++{
++ int handle,i,chan;
++ unsigned int buf_id;
++ audio_buf_t *buf;
++
++ struct snd_pcm_substream *substream = (struct snd_pcm_substream *)user_data;
++ audio_state_t *state = (audio_state_t *)(substream->private_data);
++ audio_stream_t *stream = state->input_stream;
++
++ switch( device ){
++
++ case DMARx_I2S3:
++ DPRINTK( "snd_ep93xx_dma_rx_callback - DMARx_I2S3\n");
++ i = 2;
++ break;
++ case DMARx_I2S2:
++ DPRINTK( "snd_ep93xx_dma_rx_callback - DMARx_I2S2\n");
++ i = 1;
++ break;
++ case DMARx_I2S1:
++ default:
++ DPRINTK( "snd_ep93xx_dma_rx_callback - DMARx_I2S1\n");
++ i = 0;
++ break;
++ }
++
++ if(stream->audio_num_channels == 1){
++ chan = 0;
++ }
++ else{
++ chan = stream->audio_num_channels / 2 - 1;
++ }
++ handle = stream->dmahandles[i];
++
++ if( stream->stopped == 0 ){
++
++ if( ep93xx_dma_remove_buffer( handle, &buf_id ) >= 0 ){
++
++ buf = (audio_buf_t *)buf_id;
++ stream->bytecount += buf->reportedbytes;
++ ep93xx_dma_add_buffer( stream->dmahandles[i],
++ (unsigned int)buf->dma_addr,
++ 0,
++ buf->bytes,
++ 0,
++ (unsigned int) buf );
++ if( i == chan )
++ snd_pcm_period_elapsed(substream);
++ }
++ }
++}
++
++static int snd_ep93xx_release(struct snd_pcm_substream *substream)
++{
++ audio_state_t *state = (audio_state_t *)substream->private_data;
++ audio_stream_t *stream = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
++ state->output_stream : state->input_stream;
++
++ DPRINTK("snd_ep93xx_release - enter\n");
++
++ down(&state->sem);
++ stream->active = 0;
++ stream->stopped = 0;
++ snd_ep93xx_deallocate_buffers(substream, stream);
++ up(&state->sem);
++
++ DPRINTK("snd_ep93xx_release - exit\n");
++
++ return 0;
++}
++
++static int ep93xx_ac97_pcm_startup(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ int r;
++ int iTempMasterVol,iTempHeadphoneVol,iTempMonoVol,iTempRecordSelect;
++ /*save the old mixer*/
++ iTempRecordSelect = peek(AC97_1A_RECORD_SELECT);
++ iTempMasterVol = peek( AC97_02_MASTER_VOL);
++ iTempHeadphoneVol = peek( AC97_04_HEADPHONE_VOL);
++ iTempMonoVol = peek( AC97_06_MONO_VOL);
++
++ runtime->hw.channels_min = 1;
++ runtime->hw.channels_max = 2;
++
++ ep93xx_audio_init();
++ /*ep93xx_init_ac97_controller();*/
++
++ /*reset the old output mixer*/
++ poke( AC97_02_MASTER_VOL, iTempMasterVol);
++ poke( AC97_04_HEADPHONE_VOL,iTempHeadphoneVol );
++ poke( AC97_06_MONO_VOL, iTempMonoVol);
++ poke( AC97_1A_RECORD_SELECT,iTempRecordSelect);
++
++ r = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
++ AC97_RATES_FRONT_DAC : AC97_RATES_ADC;
++
++ DPRINTK(" ep93xx_ac97_pcm_startup=%x\n",r);
++
++ return 0;
++}
++
++
++static int snd_ep93xx_pcm_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ DPRINTK("snd_ep93xx_pcm_hw_params - enter\n");
++ return snd_pcm_lib_malloc_pages(substream,params_buffer_bytes(params));
++}
++
++static int snd_ep93xx_pcm_hw_free(struct snd_pcm_substream *substream)
++{
++
++ DPRINTK("snd_ep93xx_pcm_hw_free - enter\n");
++ return snd_pcm_lib_free_pages(substream);
++}
++
++/*
++ *snd_ep93xx_pcm_prepare: need to finish these functions as lower
++ *chip_set_sample_format
++ *chip_set_sample_rate
++ *chip_set_channels
++ *chip_set_dma_setup
++ */
++
++static int snd_ep93xx_pcm_prepare_playback( struct snd_pcm_substream *substream)
++{
++ audio_state_t *state = (audio_state_t *) substream->private_data;
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ audio_stream_t *stream = state->output_stream;
++
++ DPRINTK("snd_ep93xx_pcm_prepare_playback - enter\n");
++
++ ep93xx_audio_disable(1);
++ ep93xx_ac97_pcm_startup(substream);
++
++ snd_ep93xx_deallocate_buffers(substream,stream);
++
++ //if(runtime->channels % 2 != 0)
++ // return -1;
++
++ DPRINTK("The runtime item : \n");
++ DPRINTK("runtime->dma_addr = 0x%x\n", runtime->dma_addr);
++ DPRINTK("runtime->dma_area = 0x%x\n", runtime->dma_area);
++ DPRINTK("runtime->dma_bytes = %d\n", runtime->dma_bytes);
++ DPRINTK("runtime->frame_bits = %d\n", runtime->frame_bits);
++ DPRINTK("runtime->buffer_size = %d\n", runtime->buffer_size);
++ DPRINTK("runtime->period_size = %d\n", runtime->period_size);
++ DPRINTK("runtime->periods = %d\n", runtime->periods);
++ DPRINTK("runtime->rate = %d\n", runtime->rate);
++ DPRINTK("runtime->format = %d\n", runtime->format);
++ DPRINTK("runtime->channels = %d\n", runtime->channels);
++
++ /* set requestd format when available */
++ stream->audio_num_channels = runtime->channels;
++ if(stream->audio_num_channels == 1){
++ stream->dma_num_channels = 1;
++ }
++ else{
++ stream->dma_num_channels = runtime->channels / 2;
++ }
++
++ stream->audio_channels_flag = CHANNEL_FRONT;
++ if(stream->dma_num_channels == 2)
++ stream->audio_channels_flag |= CHANNEL_REAR;
++ if(stream->dma_num_channels == 3)
++ stream->audio_channels_flag |= CHANNEL_REAR | CHANNEL_CENTER_LFE;
++
++ stream->dmasize = runtime->dma_bytes;
++ stream->nbfrags = runtime->periods;
++ stream->fragsize = frames_to_bytes (runtime, runtime->period_size);
++ stream->bytecount = 0;
++
++ if( !state->codec_set_by_capture ){
++ state->codec_set_by_playback = 1;
++
++ if( stream->audio_rate != runtime->rate ){
++ ep93xx_set_samplerate( runtime->rate,0 );
++ }
++ //if( stream->audio_format != runtime->format ){
++ // snd_ep93xx_i2s_init((stream->audio_stream_bitwidth == 24));
++ //}
++ }
++ else{
++ audio_stream_t *s = state->input_stream;
++ if( runtime->format != s->audio_format)
++ return -1;
++ if( runtime->rate != s->audio_rate )
++ return -1;
++ }
++
++ stream->audio_format = runtime->format ;
++ ep93xx_set_hw_format(stream->audio_format,stream->audio_num_channels);
++
++
++ stream->audio_rate = runtime->rate;
++ audio_set_format( stream, runtime->format );
++ snd_ep93xx_dma2usr_ratio( stream,state->bCompactMode );
++
++ if( snd_ep93xx_allocate_buffers( substream, stream ) != 0 ){
++ snd_ep93xx_deallocate_buffers( substream, stream );
++ return -1;
++ }
++
++ ep93xx_audio_enable(1);
++
++ DPRINTK("snd_ep93xx_pcm_prepare_playback - exit\n");
++ return 0;
++}
++
++static int snd_ep93xx_pcm_prepare_capture( struct snd_pcm_substream *substream)
++{
++ audio_state_t *state = (audio_state_t *) substream->private_data;
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ audio_stream_t *stream = state->input_stream;
++
++ ep93xx_audio_disable(0);
++ ep93xx_ac97_pcm_startup(substream);
++
++ snd_ep93xx_deallocate_buffers(substream,stream);
++
++ //if(runtime->channels % 2 != 0)
++ //return -1;
++
++ DPRINTK("snd_ep93xx_pcm_prepare_capture - enter\n");
++
++// printk("The runtime item : \n");
++// printk("runtime->dma_addr = 0x%x\n", runtime->dma_addr);
++// printk("runtime->dma_area = 0x%x\n", runtime->dma_area);
++// printk("runtime->dma_bytes = %d\n", runtime->dma_bytes);
++// printk("runtime->frame_bits = %d\n", runtime->frame_bits);
++// printk("runtime->buffer_size = %d\n", runtime->buffer_size);
++// printk("runtime->period_size = %d\n", runtime->period_size);
++// printk("runtime->periods = %d\n", runtime->periods);
++// printk("runtime->rate = %d\n", runtime->rate);
++// printk("runtime->format = %d\n", runtime->format);
++// printk("runtime->channels = %d\n", runtime->channels);
++
++ /* set requestd format when available */
++ stream->audio_num_channels = runtime->channels;
++ if(stream->audio_num_channels == 1){
++ stream->dma_num_channels = 1;
++ }
++ else{
++ stream->dma_num_channels = runtime->channels / 2;
++ }
++
++ stream->audio_channels_flag = CHANNEL_FRONT;
++ if(stream->dma_num_channels == 2)
++ stream->audio_channels_flag |= CHANNEL_REAR;
++ if(stream->dma_num_channels == 3)
++ stream->audio_channels_flag |= CHANNEL_REAR | CHANNEL_CENTER_LFE;
++
++ stream->dmasize = runtime->dma_bytes;
++ stream->nbfrags = runtime->periods;
++ stream->fragsize = frames_to_bytes (runtime, runtime->period_size);
++ stream->bytecount = 0;
++
++ if( !state->codec_set_by_playback ){
++ state->codec_set_by_capture = 1;
++
++ /*rate*/
++ if( stream->audio_rate != runtime->rate ){
++ ep93xx_set_samplerate( runtime->rate,1 );
++ }
++
++ /*mixer*/
++ ep93xx_set_recsource(SOUND_MASK_MIC|SOUND_MASK_LINE1 | SOUND_MASK_LINE);
++ poke( AC97_1C_RECORD_GAIN, 0);
++
++ /*format*/
++ //if( stream->audio_format != runtime->format ){
++ // snd_ep93xx_i2s_init((stream->audio_stream_bitwidth == 24));
++ //}
++ }
++ else{
++ audio_stream_t *s = state->output_stream;
++ if( runtime->format != s->audio_format)
++ return -1;
++ if( runtime->rate != s->audio_rate )
++ return -1;
++ }
++
++ stream->audio_format = runtime->format ;
++ ep93xx_set_hw_format(stream->audio_format,stream->audio_num_channels);
++
++
++ stream->audio_rate = runtime->rate;
++ audio_set_format( stream, runtime->format );
++ snd_ep93xx_dma2usr_ratio( stream,state->bCompactMode );
++
++ if( snd_ep93xx_allocate_buffers( substream, stream ) != 0 ){
++ snd_ep93xx_deallocate_buffers( substream, stream );
++ return -1;
++ }
++
++ ep93xx_audio_enable(0);
++
++ DPRINTK("snd_ep93xx_pcm_prepare_capture - exit\n");
++ return 0;
++}
++/*
++ *start/stop/pause dma translate
++ */
++static int snd_ep93xx_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
++{
++ audio_state_t *state = (audio_state_t *)substream->private_data;
++ audio_stream_t *stream = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
++ state->output_stream:state->input_stream;
++ audio_buf_t *buf;
++ audio_channel_t *dma_channel;
++ int i,count,ret = 0;
++ unsigned long flags;
++
++ DPRINTK("snd_ep93xx_pcm_triger %d - enter \n",cmd);
++
++ switch (cmd){
++
++ case SNDRV_PCM_TRIGGER_START:
++
++ snd_ep93xx_dma_config( substream );
++
++ stream->stopped = 0;
++
++ if( !stream->active && !stream->stopped ){
++ stream->active = 1;
++ snd_ep93xx_dma_start( state, stream );
++ }
++
++ local_irq_save(flags);
++
++ for (i = 0; i < stream->dma_num_channels; i++){
++ dma_channel = &stream->dma_channels[i];
++
++ for(count = 0 ;count < dma_channel->audio_buff_count; count++){
++
++ buf = &dma_channel->audio_buffers[count];
++ ep93xx_dma_add_buffer( stream->dmahandles[i],
++ (unsigned int)buf->dma_addr,
++ 0,
++ buf->bytes,
++ 0,
++ (unsigned int) buf );
++ }
++ }
++
++ local_irq_restore(flags);
++ break;
++
++ case SNDRV_PCM_TRIGGER_STOP:
++ stream->stopped = 1;
++ snd_ep93xx_dma_pause( state, stream );
++ snd_ep93xx_dma_flush( state, stream );
++ snd_ep93xx_dma_free( substream );
++ break;
++
++ case SNDRV_PCM_TRIGGER_SUSPEND:
++ break;
++ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
++ break;
++ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
++ break;
++
++ default:
++ ret = -EINVAL;
++ }
++ DPRINTK("snd_ep93xx_pcm_triger %d - exit \n",cmd);
++ return ret;
++}
++
++static snd_pcm_uframes_t snd_ep93xx_pcm_pointer_playback(struct snd_pcm_substream *substream)
++{
++ audio_state_t *state = (audio_state_t *)(substream->private_data);
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ audio_stream_t *stream = state->output_stream;
++ snd_pcm_uframes_t pointer = 0;
++
++ pointer = bytes_to_frames( runtime,stream->bytecount );
++
++ if (pointer >= runtime->buffer_size){
++ pointer = 0;
++ stream->bytecount = 0;
++ }
++
++ DPRINTK("snd_ep93xx_pcm_pointer_playback - exit\n");
++ return pointer;
++}
++
++static snd_pcm_uframes_t snd_ep93xx_pcm_pointer_capture(struct snd_pcm_substream *substream)
++{
++ audio_state_t *state = (audio_state_t *)(substream->private_data);
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ audio_stream_t *stream = state->input_stream;
++ snd_pcm_uframes_t pointer = 0;
++
++ pointer = bytes_to_frames( runtime,stream->bytecount );
++
++ if (pointer >= runtime->buffer_size){
++ pointer = 0;
++ stream->bytecount = 0;
++ }
++
++ DPRINTK("snd_ep93xx_pcm_pointer_capture - exit\n");
++ return pointer;
++}
++
++static int snd_ep93xx_pcm_open(struct snd_pcm_substream *substream)
++{
++ audio_state_t *state = substream->private_data;
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ audio_stream_t *stream = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
++ state->output_stream:state->input_stream;
++
++ DPRINTK("snd_ep93xx_pcm_open - enter\n");
++
++ down(&state->sem);
++
++ runtime->hw = ep93xx_ac97_pcm_hardware;
++
++ stream->dma_num_channels = AUDIO_DEFAULT_DMACHANNELS;
++ stream->dma_channels = NULL;
++ stream->audio_rate = 0;
++ stream->audio_stream_bitwidth = 0;
++
++ up(&state->sem);
++
++ DPRINTK("snd_ep93xx_pcm_open - exit\n");
++ return 0;
++}
++
++/*
++ *free the HW dma channel
++ *free the HW dma buffer
++ *free the Hw dma decrotion using function :kfree
++ */
++static int snd_ep93xx_pcm_close(struct snd_pcm_substream *substream)
++{
++ audio_state_t *state = (audio_state_t *)(substream->private_data);
++
++ DPRINTK("snd_ep93xx_pcm_close - enter\n");
++
++ snd_ep93xx_release(substream);
++
++ if(substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
++ state->codec_set_by_playback = 0;
++ else
++ state->codec_set_by_capture = 0;
++
++ DPRINTK("snd_ep93xx_pcm_close - exit\n");
++ return 0;
++}
++
++static int snd_ep93xx_pcm_copy_playback(struct snd_pcm_substream * substream,int channel,
++ snd_pcm_uframes_t pos,void __user *src, snd_pcm_uframes_t count)
++{
++
++ audio_state_t *state = (audio_state_t *)substream->private_data;
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ audio_stream_t *stream = state->output_stream ;
++ audio_channel_t *dma_channel;
++ int i;
++ int tocount = frames_to_bytes(runtime,count);
++
++ for( i = 0; i < stream->dma_num_channels; i++ ){
++
++ dma_channel = &stream->dma_channels[i];
++ stream->hwbuf[i] = dma_channel->area + ( frames_to_bytes(runtime,pos) * stream->dma2usr_ratio / stream->dma_num_channels );
++
++ }
++
++ if(copy_from_user_with_conversion(stream ,(const char*)src,(tocount * stream->dma2usr_ratio),state->bCompactMode) <=0 ){
++ DPRINTK(KERN_ERR "copy_from_user_with_conversion() failed\n");
++ return -EFAULT;
++ }
++
++ DPRINTK("snd_ep93xx_pcm_copy_playback - exit\n");
++ return 0;
++}
++
++
++static int snd_ep93xx_pcm_copy_capture(struct snd_pcm_substream * substream,int channel,
++ snd_pcm_uframes_t pos,void __user *src, snd_pcm_uframes_t count)
++{
++ audio_state_t *state = (audio_state_t *)substream->private_data;
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ audio_stream_t *stream = state->input_stream ;
++ audio_channel_t *dma_channel;
++ int i;
++
++ int tocount = frames_to_bytes(runtime,count);
++
++ for( i = 0; i < stream->dma_num_channels; i++ ){
++
++ dma_channel = &stream->dma_channels[i];
++ stream->hwbuf[i] = dma_channel->area + ( frames_to_bytes(runtime,pos) * stream->dma2usr_ratio / stream->dma_num_channels );
++
++ }
++
++ if(copy_to_user_with_conversion(stream,(const char*)src,tocount,state->bCompactMode) <=0 ){
++
++ DPRINTK(KERN_ERR "copy_to_user_with_conversion() failed\n");
++ return -EFAULT;
++ }
++
++ DPRINTK("snd_ep93xx_pcm_copy_capture - exit\n");
++ return 0;
++}
++
++/*----------------------------------------------------------------------------------*/
++static unsigned short ep93xx_ac97_read(struct snd_ac97 *ac97, unsigned short reg)
++{
++ int val = -1;
++ /*volatile u32 *reg_addr;*/
++
++ DPRINTK(" number of codec:%x reg=%x\n",ac97->num,reg);
++ val=peek(reg);
++ if(val==-1){
++ printk(KERN_ERR "%s: read error (ac97_reg=%d )val=%x\n",
++ __FUNCTION__, reg, val);
++ return 0;
++ }
++
++ return val;
++}
++
++static void ep93xx_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val)
++{
++ /*volatile u32 *reg_addr;*/
++ int ret;
++
++ DPRINTK(" number of codec:%x rge=%x val=%x\n",ac97->num,reg,val);
++ ret=poke(reg, val);
++ if(ret!=0){
++ printk(KERN_ERR "%s: write error (ac97_reg=%d val=%x)\n",
++ __FUNCTION__, reg, val);
++ }
++
++}
++
++static void ep93xx_ac97_reset(struct snd_ac97 *ac97)
++{
++
++ DPRINTK(" ep93xx_ac97_reset\n");
++ ep93xx_audio_init();
++
++}
++
++static struct snd_ac97_bus_ops ep93xx_ac97_ops = {
++ .read = ep93xx_ac97_read,
++ .write = ep93xx_ac97_write,
++ .reset = ep93xx_ac97_reset,
++};
++
++static struct snd_pcm *ep93xx_ac97_pcm;
++static struct snd_ac97 *ep93xx_ac97_ac97;
++
++static struct snd_pcm_ops snd_ep93xx_pcm_playback_ops = {
++ .open = snd_ep93xx_pcm_open,
++ .close = snd_ep93xx_pcm_close,
++ .ioctl = snd_pcm_lib_ioctl,
++ .hw_params = snd_ep93xx_pcm_hw_params,
++ .hw_free = snd_ep93xx_pcm_hw_free,
++ .prepare = snd_ep93xx_pcm_prepare_playback,
++ .trigger = snd_ep93xx_pcm_trigger,
++ .pointer = snd_ep93xx_pcm_pointer_playback,
++ .copy = snd_ep93xx_pcm_copy_playback,
++
++};
++
++static struct snd_pcm_ops snd_ep93xx_pcm_capture_ops = {
++ .open = snd_ep93xx_pcm_open,
++ .close = snd_ep93xx_pcm_close,
++ .ioctl = snd_pcm_lib_ioctl,
++ .hw_params = snd_ep93xx_pcm_hw_params,
++ .hw_free = snd_ep93xx_pcm_hw_free,
++ .prepare = snd_ep93xx_pcm_prepare_capture,
++ .trigger = snd_ep93xx_pcm_trigger,
++ .pointer = snd_ep93xx_pcm_pointer_capture,
++ .copy = snd_ep93xx_pcm_copy_capture,
++};
++
++/*--------------------------------------------------------------------------*/
++
++
++static int snd_ep93xx_pcm_new(struct snd_card *card, audio_state_t *state, struct snd_pcm **rpcm)
++{
++ struct snd_pcm *pcm;
++ int play = state->output_stream? 1 : 0;/*SNDRV_PCM_STREAM_PLAYBACK*/
++ int capt = state->input_stream ? 1 : 0;/*SNDRV_PCM_STREAM_CAPTURE*/
++ int ret = 0;
++
++ DPRINTK("snd_ep93xx_pcm_new - enter\n");
++
++ /* Register the new pcm device interface */
++ ret = snd_pcm_new(card, "EP93xx-AC97-PCM", 0, play, capt, &pcm);
++
++ if (ret){
++ DPRINTK("%s--%x:card=%x,play=%x,capt=%x,&pcm=%x\n",__FUNCTION__,ret,(int)card,play,capt,(int)pcm);
++ goto out;
++ }
++
++ /* allocate the pcm(DMA) memory */
++ ret = snd_pcm_lib_preallocate_pages_for_all(pcm, /*SNDRV_DMA_TYPE_DEV,0,*/SNDRV_DMA_TYPE_CONTINUOUS,snd_dma_continuous_data(GFP_KERNEL),128*1024,128*1024);
++
++ DPRINTK("The substream item : \n");
++ DPRINTK("pcm->streams[0].substream->dma_buffer.addr = 0x%x\n", pcm->streams[0].substream->dma_buffer.addr);
++ DPRINTK("pcm->streams[0].substream->dma_buffer.area = 0x%x\n", pcm->streams[0].substream->dma_buffer.area);
++ DPRINTK("pcm->streams[0].substream->dma_buffer.bytes = 0x%x\n", pcm->streams[0].substream->dma_buffer.bytes);
++ DPRINTK("pcm->streams[1].substream->dma_buffer.addr = 0x%x\n", pcm->streams[1].substream->dma_buffer.addr);
++ DPRINTK("pcm->streams[1].substream->dma_buffer.area = 0x%x\n", pcm->streams[1].substream->dma_buffer.area);
++ DPRINTK("pcm->streams[1].substream->dma_buffer.bytes = 0x%x\n", pcm->streams[1].substream->dma_buffer.bytes);
++
++ pcm->private_data = state;
++
++ /* seem to free the pcm data struct-->self dma buffer */
++ pcm->private_free = (void*) snd_pcm_lib_preallocate_free_for_all;
++
++ /* alsa pcm ops setting for SNDRV_PCM_STREAM_PLAYBACK */
++ if (play) {
++ int stream = SNDRV_PCM_STREAM_PLAYBACK;
++ snd_pcm_set_ops(pcm, stream, &snd_ep93xx_pcm_playback_ops);
++ }
++
++ /* alsa pcm ops setting for SNDRV_PCM_STREAM_CAPTURE */
++ if (capt) {
++ int stream = SNDRV_PCM_STREAM_CAPTURE;
++ snd_pcm_set_ops(pcm, stream, &snd_ep93xx_pcm_capture_ops);
++ }
++
++ if (rpcm)
++ *rpcm = pcm;
++ DPRINTK("snd_ep93xx_pcm_new - exit\n");
++out:
++ return ret;
++}
++
++#ifdef CONFIG_PM
++
++int ep93xx_ac97_do_suspend(struct snd_card *card, unsigned int state)
++{
++ if (card->power_state != SNDRV_CTL_POWER_D3cold) {
++ snd_pcm_suspend_all(ep93xx_ac97_pcm);
++ snd_ac97_suspend(ep93xx_ac97_ac97);
++ snd_power_change_state(card, SNDRV_CTL_POWER_D3cold);
++ }
++
++ return 0;
++}
++
++int ep93xx_ac97_do_resume(struct snd_card *card, unsigned int state)
++{
++ if (card->power_state != SNDRV_CTL_POWER_D0) {
++
++ snd_ac97_resume(ep93xx_ac97_ac97);
++ snd_power_change_state(card, SNDRV_CTL_POWER_D0);
++ }
++
++ return 0;
++}
++
++int ep93xx_ac97_suspend(struct platform_device *_dev, u32 state, u32 level)
++{
++ struct snd_card *card = platform_get_drvdata(_dev);
++ int ret = 0;
++
++ if (card && level == SUSPEND_DISABLE)
++ ret = ep93xx_ac97_do_suspend(card, SNDRV_CTL_POWER_D3cold);
++
++ return ret;
++}
++
++int ep93xx_ac97_resume(struct platform_device *_dev, u32 level)
++{
++ struct snd_card *card = platform_get_drvdata(_dev);
++ int ret = 0;
++
++ if (card && level == RESUME_ENABLE)
++ ret = ep93xx_ac97_do_resume(card, SNDRV_CTL_POWER_D0);
++
++ return ret;
++}
++
++#else
++/*
++#define ep93xx_ac97_do_suspend NULL
++#define ep93xx_ac97_do_resume NULL
++#define ep93xx_ac97_suspend NULL
++#define ep93xx_ac97_resume NULL
++*/
++
++int ep93xx_ac97_do_suspend(struct snd_card *card, unsigned int state)
++{
++ return 0;
++}
++
++int ep93xx_ac97_do_resume(struct snd_card *card, unsigned int state)
++{
++ return 0;
++}
++
++int ep93xx_ac97_resume(struct platform_device *_dev, u32 level)
++{
++ struct snd_card *card = platform_get_drvdata(_dev);
++ int ret = 0;
++
++ //if (card && level == RESUME_ENABLE)
++ ret = ep93xx_ac97_do_resume(card, SNDRV_CTL_POWER_D0);
++
++ return ret;
++}
++
++int ep93xx_ac97_suspend(struct platform_device *_dev, u32 state, u32 level)
++{
++ struct snd_card *card = platform_get_drvdata(_dev);
++ int ret = 0;
++
++ //if (card && level == SUSPEND_DISABLE)
++ ret = ep93xx_ac97_do_suspend(card, SNDRV_CTL_POWER_D3cold);
++
++ return ret;
++}
++
++#endif
++
++
++
++/* module init & exit */
++static int __devinit ep93xx_ac97_probe(struct platform_device *dev)
++{
++ struct snd_card *card;
++ struct snd_ac97_bus *ac97_bus;
++ struct snd_ac97_template ac97_template;
++ int err = -ENOMEM;
++ struct resource *res = NULL;
++
++ DPRINTK("snd_ep93xx_probe - enter\n");
++
++ /* Enable audio early on, give the DAC time to come up. */
++ res = platform_get_resource( dev, IORESOURCE_MEM, 0);
++
++ if(!res) {
++ printk("error : platform_get_resource \n");
++ return -ENODEV;
++ }
++
++ if (!request_mem_region(res->start,res->end - res->start + 1, "snd-ac97-cs4202" )){
++ printk("error : request_mem_region\n");
++ return -EBUSY;
++ }
++
++ /*enable ac97 codec*/
++ ep93xx_audio_init();
++
++ /* register the soundcard */
++ card = snd_card_new(SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1,
++ THIS_MODULE, 0);
++ if (!card){
++ printk("AC97: snd_card_new error\n");
++ goto error;
++ }
++
++ card->dev = &dev->dev;
++ /*regist the new pcm device*/
++ err = snd_ep93xx_pcm_new(card, &audio_state, &ep93xx_ac97_pcm);
++ if (err){
++ printk("AC97: ep93xx_ac97_pcm_new error\n");
++ goto error;
++ }
++ if (card == NULL) {
++ DPRINTK(KERN_ERR "snd_card_new() failed\n");
++ goto error;
++ }
++
++ /*driver name*/
++ strcpy(card->driver, "CS4202A");
++ strcpy(card->shortname, "Cirrus Logic AC97 Audio ");
++ strcpy(card->longname, "Cirrus Logic AC97 Audio with CS4202A");
++
++ /*regist the new ac97 device*/
++ err = snd_ac97_bus(card, 0, &ep93xx_ac97_ops, NULL, &ac97_bus);
++ if (err){
++ printk("AC97: snd_ac97_bus error\n");
++ goto error;
++ }
++
++ memset(&ac97_template, 0, sizeof(ac97_template));
++ err = snd_ac97_mixer(ac97_bus, &ac97_template, &ep93xx_ac97_ac97);
++ if (err){
++ printk("AC97: snd_ac97_mixer error\n");
++ goto error;
++ }
++
++ /**/
++ ep93xx_audio_init();
++ /*setting the card device callback*/
++ //err = snd_card_set_pm_callback(card, ep93xx_ac97_do_suspend,ep93xx_ac97_do_resume, (void*)NULL);
++ //if(err != 0){
++ // printk("snd_card_set_pm_callback error\n");
++ //}
++
++ /*regist the new CARD device*/
++ err = snd_card_register(card);
++ if (err == 0) {
++ printk( KERN_INFO "Cirrus Logic ep93xx ac97 audio initialized\n" );
++ platform_set_drvdata(dev,card);
++ DPRINTK("snd_ep93xx_probe - exit\n");
++ return 0;
++ }
++
++error:
++ snd_card_free(card);
++ printk("snd_ep93xx_probe - error\n");
++ return err;
++
++return 0;
++}
++
++static int __devexit ep93xx_ac97_remove(struct platform_device *dev)
++{
++ struct resource *res;
++ struct snd_card *card = platform_get_drvdata(dev);
++
++ res = platform_get_resource( dev, IORESOURCE_MEM, 0);
++ release_mem_region(res->start, res->end - res->start + 1);
++
++ DPRINTK("snd_ep93xx_ac97_remove - enter\n");
++
++ if (card) {
++ snd_card_free(card);
++ platform_set_drvdata(dev, NULL);
++ }
++ DPRINTK("snd_ep93xx_remove - exit\n");
++
++return 0;
++}
++
++
++static struct platform_driver ep93xx_ac97_driver = {
++ .probe = ep93xx_ac97_probe,
++ .remove = __devexit_p (ep93xx_ac97_remove),
++ .suspend = ep93xx_ac97_suspend,
++ .resume = ep93xx_ac97_resume,
++ .driver = {
++ .name = "ep93xx-ac97",
++ },
++};
++
++
++static int __init ep93xx_ac97_init(void)
++{
++ int ret;
++
++ DPRINTK(KERN_INFO "%s: version %s\n", DRIVER_DESC, DRIVER_VERSION);
++ DPRINTK("snd_ep93xx_AC97_init - enter\n");
++ ret = platform_driver_register(&ep93xx_ac97_driver);
++ DPRINTK("snd_ep93xx_AC97_init - exit\n");
++ return ret;
++}
++
++static void __exit ep93xx_ac97_exit(void)
++{
++ DPRINTK("ep93xx_ac97_exit - enter\n");
++ return platform_driver_unregister(&ep93xx_ac97_driver);
++}
++
++module_init(ep93xx_ac97_init);
++module_exit(ep93xx_ac97_exit);
++
++MODULE_DESCRIPTION("Cirrus Logic audio module");
++MODULE_LICENSE("GPL");
+--- /dev/null
++++ linux-2.6.31/sound/arm/ep93xx-ac97.h
+@@ -0,0 +1,89 @@
++/*
++ * linux/sound/arm/ep93xx-ac97.h -- ALSA PCM interface for the edb93xx ac97 audio
++ *
++ * Author: Fred Wei
++ * Created: July 19, 2005
++ * Copyright: Cirrus Logic, Inc.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#define EP93XX_DEFAULT_NUM_CHANNELS 2
++#define EP93XX_DEFAULT_FORMAT SNDRV_PCM_FORMAT_S16_LE
++#define EP93XX_DEFAULT_BIT_WIDTH 16
++#define MAX_DEVICE_NAME 20
++
++/*
++ * Buffer Management
++ */
++
++typedef struct {
++
++ unsigned char *area; /* virtual pointer */
++ dma_addr_t dma_addr; /* physical address */
++ size_t bytes;
++ size_t reportedbytes; /* buffer size */
++ int sent; /* indicates that dma has the buf */
++ char *start; /* points to actual buffer */
++
++} audio_buf_t;
++
++
++typedef struct {
++
++ unsigned char *area; /* virtual pointer */
++ dma_addr_t addr; /* physical address */
++ size_t bytes; /* buffer size in bytes */
++ unsigned char *buff_pos; /* virtual pointer */
++ audio_buf_t *audio_buffers; /* array of audio buffer structures */
++ int audio_buff_count;
++
++
++} audio_channel_t;
++
++typedef struct audio_stream_s {
++
++ /* dma stuff */
++ int dmahandles[3]; /* handles for dma driver instances */
++ char devicename[MAX_DEVICE_NAME]; /* string - name of device */
++ int dma_num_channels; /* 1, 2, or 3 DMA channels */
++ audio_channel_t *dma_channels;
++ u_int nbfrags; /* nbr of fragments i.e. buffers */
++ u_int fragsize; /* fragment i.e. buffer size */
++ u_int dmasize;
++ int bytecount; /* nbr of processed bytes */
++ int externedbytecount; /* nbr of processed bytes */
++ volatile int active; /* actually in progress */
++ volatile int stopped; /* might be active but stopped */
++ char *hwbuf[3];
++ long audio_rate;
++ long audio_num_channels; /* Range: 1 to 6 */
++ int audio_channels_flag;
++ long audio_format;
++ long audio_stream_bitwidth; /* Range: 8, 16, 24 */
++ int dma2usr_ratio;
++
++} audio_stream_t;
++
++
++/*
++ * State structure for one instance
++ */
++typedef struct {
++
++ audio_stream_t *output_stream;
++ audio_stream_t *input_stream;
++ ep93xx_dma_dev_t output_dma[3];
++ ep93xx_dma_dev_t input_dma[3];
++ char *output_id[3];
++ char *input_id[3];
++ struct semaphore sem; /* to protect against races in attach() */
++ int codec_set_by_playback;
++ int codec_set_by_capture;
++ int DAC_bit_width; /* 16, 20, 24 bits */
++ int bCompactMode; /* set if 32bits = a stereo sample */
++
++} audio_state_t;
++
diff --git a/recipes/linux/linux-2.6.32/ep93xx/ep93xx-spi.patch b/recipes/linux/linux-2.6.32/ep93xx/ep93xx-spi.patch
new file mode 100644
index 0000000000..6effac1717
--- /dev/null
+++ b/recipes/linux/linux-2.6.32/ep93xx/ep93xx-spi.patch
@@ -0,0 +1,721 @@
+---
+ drivers/spi/Kconfig | 6
+ drivers/spi/Makefile | 1
+ drivers/spi/spi_ep93xx.c | 679 +++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 686 insertions(+)
+
+--- linux-2.6.32.orig/drivers/spi/Kconfig
++++ linux-2.6.32/drivers/spi/Kconfig
+@@ -98,10 +98,16 @@ config SPI_BUTTERFLY
+ This uses a custom parallel port cable to connect to an AVR
+ Butterfly <http://www.atmel.com/products/avr/butterfly>, an
+ inexpensive battery powered microcontroller evaluation board.
+ This same cable can be used to flash new firmware.
+
++config SPI_EP93XX
++ tristate "EP93xx SSP SPI master"
++ depends on SPI_MASTER && ARCH_EP93XX && EXPERIMENTAL
++ help
++ This enables the EP93xx SPI master controller.
++
+ config SPI_GPIO
+ tristate "GPIO-based bitbanging SPI Master"
+ depends on GENERIC_GPIO
+ select SPI_BITBANG
+ help
+--- linux-2.6.32.orig/drivers/spi/Makefile
++++ linux-2.6.32/drivers/spi/Makefile
+@@ -31,10 +31,11 @@ obj-$(CONFIG_SPI_S3C24XX_GPIO) += spi_s
+ obj-$(CONFIG_SPI_S3C24XX) += spi_s3c24xx.o
+ obj-$(CONFIG_SPI_TXX9) += spi_txx9.o
+ obj-$(CONFIG_SPI_XILINX) += xilinx_spi.o
+ obj-$(CONFIG_SPI_SH_SCI) += spi_sh_sci.o
+ obj-$(CONFIG_SPI_STMP3XXX) += spi_stmp.o
++obj-$(CONFIG_SPI_EP93XX) += spi_ep93xx.o
+ # ... add above this line ...
+
+ # SPI protocol drivers (device/link on bus)
+ obj-$(CONFIG_SPI_SPIDEV) += spidev.o
+ obj-$(CONFIG_SPI_TLE62X0) += tle62x0.o
+--- /dev/null
++++ linux-2.6.32/drivers/spi/spi_ep93xx.c
+@@ -0,0 +1,679 @@
++/*
++ * linux/drivers/spi/spi_ep93xx.c
++ *
++ * Copyright (C) 2007 Manfred Gruber <m.gruber@tirol.com>
++ * Small changes by Peter Ivanov <ivanovp@gmail.com> to support MMC over SPI, 2008
++ * SIM.ONE changes by Nuccio Raciti Simplemachine <nuccio.raciti@gmail.com>
++ *
++ * Based on pxa2xx_spi.c/spi_imx.c and bitbang.c driver
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ */
++
++#include <linux/blkdev.h>
++#include <linux/clk.h>
++#include <linux/delay.h>
++#include <linux/dma-mapping.h>
++#include <linux/err.h>
++#include <linux/errno.h>
++#include <linux/init.h>
++#include <linux/io.h>
++#include <linux/interrupt.h>
++#include <linux/platform_device.h>
++#include <linux/spinlock.h>
++#include <linux/workqueue.h>
++
++#include <linux/spi/spi.h>
++
++#include <mach/hardware.h>
++#include <mach/ep93xx-regs.h>
++#include <mach/gpio.h>
++
++/* #define SPI_EP93XX_DEBUG */
++
++#define DEFINE_SSP_REG(reg, off) \
++ static inline u32 read_##reg(void *p) \
++ { return __raw_readl(p + (off)); } \
++ static inline void write_##reg(u32 v, void *p) \
++ { __raw_writel(v, p + (off)); }
++
++DEFINE_SSP_REG(SSPCR0, 0x00)
++DEFINE_SSP_REG(SSPCR1, 0x04)
++DEFINE_SSP_REG(SSPDR, 0x08)
++DEFINE_SSP_REG(SSPSR, 0x0c)
++DEFINE_SSP_REG(SSPCPSR, 0x10)
++DEFINE_SSP_REG(SSPIIR, 0x14)
++DEFINE_SSP_REG(SSPICR, 0x14)
++
++/* Bits in SSPCR0 */
++#define SSPCR0_DSS_MASK 0x0000000f
++#define SSPCR0_FRF_MASK 0x00000030
++#define SSPCR0_FRF_SHIFT 4
++#define SSPCR0_FRF_MOTOROLA (0 << SSPCR0_FRF_SHIFT)
++#define SSPCR0_FRF_TI (1 << SSPCR0_FRF_SHIFT)
++#define SSPCR0_FRF_NI (2 << SSPCR0_FRF_SHIFT)
++#define SSPCR0_SPO 0x00000040
++#define SSPCR0_SPH 0x00000080
++#define SSPCR0_SCR_MASK 0x0000ff00
++#define SSPCR0_SCR_SHIFT 8
++
++/* Bits in SSPCR1 */
++#define SSPC1_RIE 0x00000001
++#define SSPC1_TIE 0x00000002
++#define SSPC1_RORIE 0x00000004
++#define SSPC1_LBM 0x00000008
++#define SSPC1_SSE 0x00000010
++#define SSPC1_MS 0x00000020
++#define SSPC1_SOD 0x00000040
++
++/* Bits in SSPSR */
++#define SSPSR_TFE 0x00000001 /* TX FIFO is empty */
++#define SSPSR_TNF 0x00000002 /* TX FIFO is not full */
++#define SSPSR_RNE 0x00000004 /* RX FIFO is not empty */
++#define SSPSR_RFF 0x00000008 /* RX FIFO is full */
++#define SSPSR_BSY 0x00000010 /* SSP is busy */
++#define SSPSR_MASK 0x0000001F /* SSP is busy */
++
++/* Bits in SSPCPSR */
++#define SSPCPSR_SCR_MASK 0x000000ff
++
++/* Bits in SSPIIR */
++#define SSPIIR_RIS 0x00000001 /* RX FIFO IRQ status */
++#define SSPIIR_TIS 0x00000002 /* TX FIFO is not full */
++#define SSPIIR_RORIS 0x00000004 /* RX FIFO is full */
++
++#define SPI_SSPCLK 7.4e6
++#define SPI_SSPCLK_REV_E2 14.8e6 /* only for chip Rev E2 */
++#define SPI_MAX_SPEED 3.7e6
++#define SPI_MAX_SPEED_REV_E2 7.4e6 /* only for chip Rev E2 */
++#define SPI_CPSDVR_DIV_MIN 2
++#define SPI_CPSDVR_DIV_MAX 254
++#define SPI_SCR_DIV_MIN 0
++#define SPI_SCR_DIV_MAX 255
++#define SPI_DATARATE_OK 0
++#define SPI_DATARATE_NOK -1
++
++struct driver_data {
++ /* Driver model hookup */
++ struct platform_device *pdev;
++
++ /* SPI framework hookup */
++ struct spi_master *master;
++
++ /* SSP register addresses */
++ void *ioaddr;
++
++ /* SSP irq */
++ int irq;
++
++ struct list_head queue;
++
++ /* SSP spinlock */
++ spinlock_t lock;
++
++ struct workqueue_struct *workqueue;
++ struct work_struct work;
++
++ u8 busy;
++ u8 use_dma;
++};
++
++static unsigned ep93xx_txrx_8(struct spi_device *spi, struct spi_transfer *t)
++{
++ struct driver_data *drv_data;
++ const u8 *tx = t->tx_buf;
++ u8 *rx = t->rx_buf;
++ unsigned count = t->len;
++ u8 byte;
++ int busy;
++
++ drv_data = spi_master_get_devdata(spi->master);
++
++#ifdef SPI_EP93XX_DEBUG
++ dev_info(&spi->dev,
++ "ep93xx_txrx_8: t->len %u \n", t->len);
++#endif
++
++ while (likely(count > 0)) {
++ byte = 0;
++ if (tx) {
++ byte = *tx++;
++#ifdef SPI_EP93XX_DEBUG
++ dev_info(&spi->dev,
++ "ep93xx_txrx_8: write 0x%x \n", byte);
++#endif
++ }
++
++ write_SSPDR(byte, drv_data->ioaddr);
++ busy = read_SSPSR(drv_data->ioaddr);
++ while (busy & SSPSR_BSY) {
++ cpu_relax();
++ busy = read_SSPSR(drv_data->ioaddr);
++#ifdef SPI_EP93XX_DEBUG
++ dev_info(&spi->dev,
++ "ep93xx_txrx_8: delay. SSPSR: 0x%X\n", busy);
++#endif
++ }
++ byte = read_SSPDR(drv_data->ioaddr);
++
++ if (rx) {
++ *rx++ = byte;
++#ifdef SPI_EP93XX_DEBUG
++ dev_info(&spi->dev,
++ "ep93xx_txrx_8: read 0x%x \n", byte);
++#endif
++ }
++ count -= 1;
++ }
++ return t->len - count;
++}
++
++
++static unsigned ep93xx_txrx_16(struct spi_device *spi, struct spi_transfer *t)
++{
++
++ struct driver_data *drv_data;
++ const u16 *tx = t->tx_buf;
++ u16 *rx = t->rx_buf;
++ unsigned count = t->len;
++ u16 word;
++ int busy;
++
++ drv_data = spi_master_get_devdata(spi->master);
++
++#ifdef SPI_EP93XX_DEBUG
++ dev_info(&spi->dev,
++ "ep93xx_txrx_16: t->len %u \n", t->len);
++#endif
++ while (likely(count > 0)) {
++ word = 0;
++ if (tx) {
++ word = *tx++;
++#ifdef SPI_EP93XX_DEBUG
++ dev_info(&spi->dev,
++ "ep93xx_txrx_16: write 0x%x \n", word);
++#endif
++ }
++
++ write_SSPDR(word, drv_data->ioaddr);
++ busy = read_SSPSR(drv_data->ioaddr);
++ while (busy & SSPSR_BSY) {
++ cpu_relax();
++ busy = read_SSPSR(drv_data->ioaddr);
++#ifdef SPI_EP93XX_DEBUG
++ dev_info(&spi->dev,
++ "ep93xx_txrx_8: delay.\n");
++#endif
++ }
++
++ word = read_SSPDR(drv_data->ioaddr);
++
++ if (rx) {
++ *rx++ = word;
++#ifdef SPI_EP93XX_DEBUG
++ dev_info(&spi->dev,
++ "ep93xx_txrx_16: read 0x%x \n", word);
++#endif
++ }
++ count -= 2;
++ }
++ return t->len - count;
++}
++
++static u32 spi_data_rate(u32 speed_hz, u32 *div_cpsdvr, u32 *div_scr,
++ struct driver_data *drv_data, struct spi_device *spi)
++{
++ unsigned int spi_sspclk = SPI_SSPCLK;
++ unsigned int bus_speed_max = SPI_MAX_SPEED;
++ unsigned int bus_hz_tmp = 0;
++ u32 div_cpsdvr_tmp;
++ u32 div_scr_tmp;
++ u32 rv = SPI_DATARATE_NOK;
++ int chip_rev;
++
++ /* Checking CHIP_ID */
++ chip_rev = (__raw_readl (EP93XX_SYSCON_CHIP_ID) >> 28) & 0xF;
++ if (chip_rev == 7)
++ {
++ /* Chip version: Rev E2 */
++ /* This device has double speed SSP clock */
++ spi_sspclk = SPI_SSPCLK_REV_E2;
++ bus_speed_max = SPI_MAX_SPEED_REV_E2;
++#ifdef SPI_EP93XX_DEBUG
++ dev_info(&spi->dev,
++ "Chip Rev E2 detected! This device has double speed SSP clock.\n");
++#endif
++ }
++
++ *div_cpsdvr = SPI_CPSDVR_DIV_MAX;
++ *div_scr = SPI_SCR_DIV_MAX;
++
++ for (div_cpsdvr_tmp = SPI_CPSDVR_DIV_MIN;
++ div_cpsdvr_tmp <= SPI_CPSDVR_DIV_MAX && rv; div_cpsdvr_tmp++) {
++ for (div_scr_tmp = SPI_SCR_DIV_MIN;
++ div_scr_tmp <= SPI_SCR_DIV_MAX && rv; div_scr_tmp++) {
++ bus_hz_tmp = spi_sspclk / (div_cpsdvr_tmp * (1 + div_scr_tmp));
++ if (bus_hz_tmp <= speed_hz && bus_hz_tmp <= bus_speed_max) {
++ *div_cpsdvr = div_cpsdvr_tmp;
++ *div_scr = div_scr_tmp;
++ rv = SPI_DATARATE_OK;
++ }
++ }
++ }
++#ifdef SPI_EP93XX_DEBUG
++ dev_info(&spi->dev,
++ "Needed SPI bus frequency: %i Hz\n", speed_hz);
++ dev_info(&spi->dev,
++ "Actual SPI bus frequency: %i Hz\n", bus_hz_tmp);
++#endif
++ return rv;
++}
++
++/* Supported modes (returns -EINVAL if not supported mode requested) */
++#define MODEBITS (SPI_CPOL | SPI_CPHA | SPI_CS_HIGH)
++
++static int ep93xx_spi_setup(struct spi_device *spi)
++{
++ struct driver_data *drv_data;
++ u16 val;
++ u32 div_scr;
++ u32 div_cpsdvr;
++ unsigned int bits = spi->bits_per_word;
++ unsigned long speed_hz = spi->max_speed_hz;
++
++ drv_data = spi_master_get_devdata(spi->master);
++
++ /* enable SSP */
++ write_SSPCR1(SSPC1_SSE, drv_data->ioaddr);
++ /* Enable SSP and loopback mode (only for testing!) */
++ /* write_SSPCR1(SSPC1_SSE | SSPC1_LBM, drv_data->ioaddr); */
++
++ if (bits == 0)
++ bits = 8;
++ if (bits < 4 || bits > 16) {
++ dev_err(&spi->dev,
++ "setup invalid bits_per_word %u (4 to 16)\n", bits);
++ return -EINVAL;
++ } else {
++ val = read_SSPCR0(drv_data->ioaddr);
++ val = val & ~SSPCR0_DSS_MASK ;
++ val = val | (bits-1);
++ write_SSPCR0(val, drv_data->ioaddr);
++#ifdef SPI_EP93XX_DEBUG
++ dev_info (&spi->dev, "Bits per word: %i\n", bits);
++#endif
++ }
++
++ if (spi->mode & ~MODEBITS) {
++ dev_err(&spi->dev, "unsupported mode bits: %x\n",
++ spi->mode & ~MODEBITS);
++ return -EINVAL;
++ } else {
++ val = read_SSPCR0(drv_data->ioaddr);
++ val = val & ~SSPCR0_SPO;
++ val = val & ~SSPCR0_SPH;
++ if (spi->mode & SPI_CPOL)
++ {
++ val = val | SSPCR0_SPO;
++ }
++#ifdef SPI_EP93XX_DEBUG
++ dev_info (&spi->dev, "Clock polarity (CPOL): %s\n", (spi->mode & SPI_CPHA) ? "1" : "0");
++#endif
++ if (spi->mode & SPI_CPHA)
++ {
++ val = val | SSPCR0_SPH;
++ }
++#ifdef SPI_EP93XX_DEBUG
++ dev_info (&spi->dev, "Clock phase (CPHA): %s\n", (spi->mode & SPI_CPHA) ? "1" : "0");
++#endif
++ write_SSPCR0(val, drv_data->ioaddr);
++ }
++
++ if (SPI_DATARATE_OK == (spi_data_rate(speed_hz, &div_cpsdvr,
++ &div_scr, drv_data, spi))) {
++
++ val = read_SSPCPSR(drv_data->ioaddr);
++ val = val & ~SSPCPSR_SCR_MASK;
++ val = val | div_cpsdvr;
++#ifdef SPI_EP93XX_DEBUG
++ dev_info (&spi->dev, "SSPCPSR: 0x%X\n", val);
++#endif
++ write_SSPCPSR(val, drv_data->ioaddr);
++
++ val = read_SSPCR0(drv_data->ioaddr);
++ val = val & ~SSPCR0_SCR_MASK;
++ val = val | (div_scr << SSPCR0_SCR_SHIFT);
++#ifdef SPI_EP93XX_DEBUG
++ dev_info (&spi->dev, "SSPCR0: 0x%X (div_scr: 0x%X)\n", val, div_scr);
++#endif
++ write_SSPCR0(val, drv_data->ioaddr);
++ } else
++ return -EINVAL;
++
++ /* reenable */
++ val = read_SSPCR1(drv_data->ioaddr);
++ val = val & ~SSPC1_SSE;
++ write_SSPCR1(val, drv_data->ioaddr);
++ val = read_SSPCR1(drv_data->ioaddr);
++ val = val | SSPC1_SSE;
++ write_SSPCR1(val, drv_data->ioaddr);
++#ifdef SPI_EP93XX_DEBUG
++ dev_info (&spi->dev, "Loopback mode: %s\n", (val & SSPC1_LBM) ? "On" : "Off");
++#endif
++
++ return 0;
++}
++
++static int ep93xx_spi_transfer(struct spi_device *spi, struct spi_message *m)
++{
++ struct driver_data *drv_data;
++ unsigned long flags;
++ int status = 0;
++
++ m->actual_length = 0;
++ m->status = -EINPROGRESS;
++
++ drv_data = spi_master_get_devdata(spi->master);
++
++ spin_lock_irqsave(&drv_data->lock, flags);
++ if (!spi->max_speed_hz)
++ status = -ENETDOWN;
++ else {
++ list_add_tail(&m->queue, &drv_data->queue);
++ queue_work(drv_data->workqueue, &drv_data->work);
++ }
++ spin_unlock_irqrestore(&drv_data->lock, flags);
++ return status;
++}
++
++static void ep93xx_work(struct work_struct *work)
++{
++ struct driver_data *drv_data =
++ container_of(work, struct driver_data, work);
++ unsigned long flags;
++
++ spin_lock_irqsave(&drv_data->lock, flags);
++ drv_data->busy = 1;
++
++ while (!list_empty(&drv_data->queue)) {
++ struct spi_message *m;
++ struct spi_device *spi;
++ struct spi_transfer *t = NULL;
++ int status;
++
++ m = container_of(drv_data->queue.next, struct spi_message,
++ queue);
++ list_del_init(&m->queue);
++ spin_unlock_irqrestore(&drv_data->lock, flags);
++
++ spi = m->spi;
++ status = 0;
++
++ list_for_each_entry(t, &m->transfers, transfer_list) {
++
++ if (!t->tx_buf && !t->rx_buf && t->len) {
++ status = -EINVAL;
++ break;
++ }
++
++ if (t->len) {
++ if (!m->is_dma_mapped) {
++ t->rx_dma = 0;
++ t->tx_dma = 0;
++ }
++ if (t->bits_per_word <= 8)
++ status = ep93xx_txrx_8(spi, t);
++ else
++ status = ep93xx_txrx_16(spi, t);
++ }
++
++ if (status != t->len) {
++ if (status > 0)
++ status = -EMSGSIZE;
++ break;
++ }
++ m->actual_length += status;
++ status = 0;
++
++ /* protocol tweaks before next transfer */
++ if (t->delay_usecs)
++ udelay(t->delay_usecs);
++
++ if (t->transfer_list.next == &m->transfers)
++ break;
++ }
++
++ m->status = status;
++ m->complete(m->context);
++
++ spin_lock_irqsave(&drv_data->lock, flags);
++ }
++ drv_data->busy = 0;
++ spin_unlock_irqrestore(&drv_data->lock, flags);
++}
++
++static irqreturn_t ssp_int(int irq, void *dev_id)
++{
++ struct driver_data *drv_data = dev_id;
++ u8 status;
++ status = read_SSPIIR(drv_data->ioaddr);
++
++ if (status & SSPIIR_RORIS) {
++ dev_err(&drv_data->pdev->dev, "SPI rx overrun.\n");
++
++ /* We clear the overrun here ! */
++ write_SSPICR(0, drv_data->ioaddr);
++ }
++
++ /* RX interrupt */
++ if (status & SSPIIR_RIS)
++ dev_info(&drv_data->pdev->dev, "SPI RX interrupt\n");
++
++ /* TX interrupt */
++ if (status & SSPIIR_TIS)
++ dev_info(&drv_data->pdev->dev, "SPI TX interrupt\n");
++
++ write_SSPICR(0, drv_data->ioaddr);
++ return IRQ_HANDLED;
++}
++
++static int __init ep93xx_spi_probe(struct platform_device *pdev)
++{
++ struct device *dev = &pdev->dev;
++ struct spi_master *master;
++ struct driver_data *drv_data = 0;
++ struct resource *memory_resource;
++ int status = 0;
++ u16 val;
++
++ /* Allocate master with space for drv_data and null dma buffer */
++ master = spi_alloc_master(dev, sizeof(struct driver_data));
++ if (!master) {
++ dev_err(&pdev->dev, "cannot alloc spi_master\n");
++ return -ENOMEM;
++ }
++ drv_data = spi_master_get_devdata(master);
++ drv_data->master = master;
++ drv_data->pdev = pdev;
++
++ master->num_chipselect = EP93XX_GPIO_LINE_H(7) + 1;
++ master->bus_num = pdev->id;
++ master->setup = ep93xx_spi_setup;
++ master->transfer = ep93xx_spi_transfer;
++
++ spin_lock_init(&drv_data->lock);
++ INIT_LIST_HEAD(&drv_data->queue);
++
++ /* Setup register addresses */
++ memory_resource = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ if (!memory_resource) {
++ dev_err(&pdev->dev, "memory resources not defined\n");
++ status = -EIO;
++ goto out_error_master_alloc;
++ } else {
++ drv_data->ioaddr = ioremap(memory_resource->start,
++ memory_resource->end - memory_resource->start);
++ if (drv_data->ioaddr == NULL) {
++ dev_err(&pdev->dev, "ioremap failed\n");
++ status = -EIO;
++ goto out_error_master_alloc;
++ }
++ }
++
++ /* Attach to IRQ */
++ drv_data->irq = platform_get_irq(pdev, 0);
++ if (drv_data->irq < 0)
++ return drv_data->irq;
++
++ if (drv_data->irq <= 0) {
++ dev_err(&pdev->dev, "IRQ resource not defined\n");
++ status = -ENODEV;
++ goto out_error_master_alloc;
++ }
++
++ status = request_irq(drv_data->irq, ssp_int, 0, "ep93xx-spi", drv_data);
++ if (status < 0) {
++ dev_err(&pdev->dev, "cannot get SPI IRQ 0\n");
++ goto out_error_master_alloc;
++ }
++
++ /* SSP default configuration, enable */
++ write_SSPCR1(SSPC1_SSE, drv_data->ioaddr);
++
++ /* run as master */
++ val = read_SSPCR1(drv_data->ioaddr);
++ val = val & ~SSPC1_MS;
++ write_SSPCR1(val, drv_data->ioaddr);
++
++ /* frame format to Motorola SPI Format */
++ val = read_SSPCR0(drv_data->ioaddr);
++ val = val & ~SSPCR0_FRF_MASK ;
++ val = val | SSPCR0_FRF_MOTOROLA;
++ write_SSPCR0(val, drv_data->ioaddr);
++
++ /* enable interrupts */
++ val = read_SSPCR1(drv_data->ioaddr);
++ /* for now only overrun is handled */
++ /* val = val | SSPC1_RIE | SSPC1_TIE | SSPC1_RORIE; */
++ val = val | SSPC1_RORIE;
++ write_SSPCR1(val, drv_data->ioaddr);
++
++ /* SSP default configuration, re enable */
++ val = read_SSPCR1(drv_data->ioaddr);
++ val = val & ~SSPC1_SSE;
++ write_SSPCR1(val, drv_data->ioaddr);
++ val = read_SSPCR1(drv_data->ioaddr);
++ val = val | SSPC1_SSE;
++ write_SSPCR1(val, drv_data->ioaddr);
++
++ /* Register with the SPI framework */
++ platform_set_drvdata(pdev, drv_data);
++ status = spi_register_master(master);
++ if (status != 0) {
++ dev_err(&pdev->dev, "cannot register SPI master\n");
++ goto out_error_master_alloc;
++ } else
++ dev_info(&pdev->dev, "SPI Controller initalized\n");
++
++ INIT_WORK(&drv_data->work, ep93xx_work);
++ spin_lock_init(&drv_data->lock);
++ INIT_LIST_HEAD(&drv_data->queue);
++
++ /* this task is the only thing to touch the SPI bits */
++ drv_data->busy = 0;
++ drv_data->workqueue = create_singlethread_workqueue(
++ dev_name(drv_data->master->dev.parent));
++ if (drv_data->workqueue == NULL) {
++ status = -EBUSY;
++ goto out_error_free_irq;
++ }
++
++ return status;
++
++out_error_free_irq:
++ free_irq(drv_data->irq, master);
++out_error_master_alloc:
++ if (drv_data->ioaddr != NULL)
++ iounmap(drv_data->ioaddr);
++ spi_master_put(master);
++ return status;
++}
++
++static int __exit ep93xx_spi_remove(struct platform_device *pdev)
++{
++ struct driver_data *drv_data = platform_get_drvdata(pdev);
++ u8 val;
++
++ WARN_ON(!list_empty(&drv_data->queue));
++
++ destroy_workqueue(drv_data->workqueue);
++
++ /* switch off SSP*/
++ val = read_SSPCR1(drv_data->ioaddr);
++ val = val & ~SSPC1_SSE;
++ write_SSPCR1(val, drv_data->ioaddr);
++
++ /* release irqs */
++ if (drv_data->irq > 0)
++ free_irq(drv_data->irq, drv_data);
++
++ /* Disconnect from the SPI framework */
++ spi_unregister_master(drv_data->master);
++ spi_master_put(drv_data->master);
++
++ if (drv_data->ioaddr != NULL)
++ iounmap(drv_data->ioaddr);
++
++ /* Prevent double remove */
++ platform_set_drvdata(pdev, NULL);
++ return 0;
++}
++
++#ifdef CONFIG_PM
++static int ep93xx_spi_suspend(struct platform_device *pdev, pm_message_t msg)
++{
++ return 0;
++}
++
++static int ep93xx_spi_resume(struct platform_device *pdev)
++{
++ return 0;
++}
++
++#else
++#define ep93xx_spi_suspend NULL
++#define ep93xx_spi_resume NULL
++#endif
++
++struct platform_driver ep93xx_spi_device = {
++ .remove = __exit_p(ep93xx_spi_remove),
++#ifdef CONFIG_PM
++ .suspend = ep93xx_spi_suspend,
++ .resume = ep93xx_spi_resume,
++#endif
++ .driver = {
++ .name = "ep93xx-spi",
++ .bus = &spi_bus_type,
++ .owner = THIS_MODULE,
++ },
++};
++
++int __init ep93xx_spi_init(void)
++{
++ return platform_driver_probe(&ep93xx_spi_device, ep93xx_spi_probe);
++}
++
++void __exit ep93xx_spi_exit(void)
++{
++ platform_driver_unregister(&ep93xx_spi_device);
++}
++
++module_init(ep93xx_spi_init);
++module_exit(ep93xx_spi_exit);
++
++MODULE_DESCRIPTION("EP93XX SPI Driver");
++MODULE_AUTHOR("Manfred Gruber, <m.gruber@tirol.com>");
++MODULE_LICENSE("GPL");
diff --git a/recipes/linux/linux-2.6.32/ep93xx/ep93xx-touchscreen.patch b/recipes/linux/linux-2.6.32/ep93xx/ep93xx-touchscreen.patch
new file mode 100644
index 0000000000..b7e209c93a
--- /dev/null
+++ b/recipes/linux/linux-2.6.32/ep93xx/ep93xx-touchscreen.patch
@@ -0,0 +1,1320 @@
+---
+ arch/arm/mach-ep93xx/include/mach/hardware.h | 1
+ arch/arm/mach-ep93xx/include/mach/regs_touch.h | 95 ++
+ drivers/input/touchscreen/Kconfig | 5
+ drivers/input/touchscreen/Makefile | 1
+ drivers/input/touchscreen/ep93xx_ts.c | 1117 +++++++++++++++++++++++++
+ drivers/input/touchscreen/ep93xx_ts.h | 53 +
+ 6 files changed, 1272 insertions(+)
+
+--- linux-2.6.32.orig/arch/arm/mach-ep93xx/include/mach/hardware.h
++++ linux-2.6.32/arch/arm/mach-ep93xx/include/mach/hardware.h
+@@ -6,10 +6,11 @@
+
+ #include <mach/ep93xx-regs.h>
+ #include <mach/platform.h>
+
+ #define pcibios_assign_all_busses() 0
++#include "regs_touch.h"
+
+ /*
+ * The EP93xx has two external crystal oscillators. To generate the
+ * required high-frequency clocks, the processor uses two phase-locked-
+ * loops (PLLs) to multiply the incoming external clock signal to much
+--- /dev/null
++++ linux-2.6.32/arch/arm/mach-ep93xx/include/mach/regs_touch.h
+@@ -0,0 +1,95 @@
++/*=============================================================================
++ *
++ * FILE: regs_touch.h
++ *
++ * DESCRIPTION: Analog Touchscreen Register Definition
++ *
++ * Copyright Cirrus Logic, 2001-2003
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *=============================================================================
++ */
++#ifndef _REGS_TOUCH_H_
++#define _REGS_TOUCH_H_
++
++/*
++ *-----------------------------------------------------------------------------
++ * Individual bit #defines
++ *-----------------------------------------------------------------------------
++ */
++#define TSSETUP_SDLY_MASK 0x000003FF
++#define TSSETUP_SDLY_SHIFT 0
++#define TSSETUP_NSMP_4 0x00000000
++#define TSSETUP_NSMP_8 0x00000400
++#define TSSETUP_NSMP_16 0x00000800
++#define TSSETUP_NSMP_32 0x00000C00
++#define TSSETUP_NSMP_MASK 0x00000C00
++#define TSSETUP_DEV_4 0x00000000
++#define TSSETUP_DEV_8 0x00001000
++#define TSSETUP_DEV_12 0x00002000
++#define TSSETUP_DEV_16 0x00003000
++#define TSSETUP_DEV_24 0x00004000
++#define TSSETUP_DEV_32 0x00005000
++#define TSSETUP_DEV_64 0x00006000
++#define TSSETUP_DEV_128 0x00007000
++#define TSSETUP_ENABLE 0x00008000
++#define TSSETUP_DLY_MASK 0x03FF0000
++#define TSSETUP_DLY_SHIFT 16
++#define TSSETUP_TDTCT 0x80000000
++
++#define TSMAXMIN_XMIN_MASK 0x000000FF
++#define TSMAXMIN_XMIN_SHIFT 0
++#define TSMAXMIN_YMIN_MASK 0x0000FF00
++#define TSMAXMIN_YMIN_SHIFT 8
++#define TSMAXMIN_XMAX_MASK 0x00FF0000
++#define TSMAXMIN_XMAX_SHIFT 16
++#define TSMAXMIN_YMAX_MASK 0xFF000000
++#define TSMAXMIN_YMAX_SHIFT 24
++
++#define TSXYRESULT_X_MASK 0x00000FFF
++#define TSXYRESULT_X_SHIFT 0
++#define TSXYRESULT_AD_MASK 0x0000FFFF
++#define TSXYRESULT_AD_SHIFT 0
++#define TSXYRESULT_Y_MASK 0x0FFF0000
++#define TSXYRESULT_Y_SHIFT 16
++#define TSXYRESULT_SDR 0x80000000
++
++#define TSX_SAMPLE_MASK 0x00003FFF
++#define TSX_SAMPLE_SHIFT 0x00
++#define TSY_SAMPLE_MASK 0x3FFF0000
++#define TSY_SAMPLE_SHIFT 0x10
++
++#define TSSETUP2_TINT 0x00000001
++#define TSSETUP2_NICOR 0x00000002
++#define TSSETUP2_PINT 0x00000004
++#define TSSETUP2_PENSTS 0x00000008
++#define TSSETUP2_PINTEN 0x00000010
++#define TSSETUP2_DEVINT 0x00000020
++#define TSSETUP2_DINTEN 0x00000040
++#define TSSETUP2_DTMEN 0x00000080
++#define TSSETUP2_DISDEV 0x00000100
++#define TSSETUP2_NSIGND 0x00000200
++#define TSSETUP2_S28EN 0x00000400
++#define TSSETUP2_RINTEN 0x00000800
++
++#define TSXYRESULT_SDR 0x80000000
++
++/*
++ *-----------------------------------------------------------------------------
++ *-----------------------------------------------------------------------------
++ */
++
++
++#endif /* _REGS_TOUCH_H_ */
+--- linux-2.6.32.orig/drivers/input/touchscreen/Kconfig
++++ linux-2.6.32/drivers/input/touchscreen/Kconfig
+@@ -528,6 +528,11 @@ config TOUCHSCREEN_PCAP
+ Say Y here if you have a Motorola EZX telephone and
+ want to enable support for the built-in touchscreen.
+
+ To compile this driver as a module, choose M here: the
+ module will be called pcap_ts.
++
++config TOUCHSCREEN_EP93XX
++ tristate "EP93xx Touchscreen"
++ depends on ARM && INPUT && ARCH_EP93XX
++
+ endif
+--- linux-2.6.32.orig/drivers/input/touchscreen/Makefile
++++ linux-2.6.32/drivers/input/touchscreen/Makefile
+@@ -40,5 +40,6 @@ wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9713) +
+ obj-$(CONFIG_TOUCHSCREEN_WM97XX_ATMEL) += atmel-wm97xx.o
+ obj-$(CONFIG_TOUCHSCREEN_WM97XX_MAINSTONE) += mainstone-wm97xx.o
+ obj-$(CONFIG_TOUCHSCREEN_WM97XX_ZYLONITE) += zylonite-wm97xx.o
+ obj-$(CONFIG_TOUCHSCREEN_W90X900) += w90p910_ts.o
+ obj-$(CONFIG_TOUCHSCREEN_PCAP) += pcap_ts.o
++obj-$(CONFIG_TOUCHSCREEN_EP93XX) += ep93xx_ts.o
+--- /dev/null
++++ linux-2.6.32/drivers/input/touchscreen/ep93xx_ts.c
+@@ -0,0 +1,1117 @@
++/*
++ * linux/drivers/input/touchscreen/ep93xx_ts.c
++ *
++ * Copyright (C) 2003-2004 Cirrus Corp.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#include <linux/module.h>
++#include <linux/types.h>
++#include <linux/delay.h>
++#include <linux/wait.h>
++#include <linux/fs.h>
++#include <linux/sched.h>
++#include <linux/poll.h>
++#include <linux/miscdevice.h>
++#include <linux/init.h>
++#include <linux/compiler.h>
++#include <linux/timer.h>
++#include <linux/interrupt.h>
++#include <linux/syscalls.h>
++#include <linux/input.h>
++#include <asm/irq.h>
++#include <mach/hardware.h>
++#include <asm/io.h>
++
++#define TOUCH_OFFSET 0x100000
++#define TOUCH_BASE (EP93XX_APB_VIRT_BASE|TOUCH_OFFSET)
++#define TSSetup (TOUCH_BASE+0x00) /* R/W touchscreen controller setup control register. */
++#define TSXYMaxMin (TOUCH_BASE+0x04) /* R/W touchscreen controller max/min register. */
++#define TSXYResult (TOUCH_BASE+0x08) /* R touchscreen controller result register. */
++#define TSDischarge (TOUCH_BASE+0x0C) /* LOCKED R/W touchscreen Switch Matrix control register. */
++#define TSXSample (TOUCH_BASE+0x10) /* LOCKED R/W touchscreen Switch Matrix control register. */
++#define TSYSample (TOUCH_BASE+0x14) /* LOCKED R/W touchscreen Switch Matrix control register. */
++#define TSDirect (TOUCH_BASE+0x18) /* LOCKED R/W touchscreen Switch Matrix control register. */
++#define TSDetect (TOUCH_BASE+0x1C) /* LOCKED R/W touchscreen Switch Matrix control register. */
++#define TSSWLock (TOUCH_BASE+0x20) /* NA R/W touchscreen software lock register. */
++#define TSSetup2 (TOUCH_BASE+0x24) /* R/W touchscreen setup control register #2. */
++
++//
++// To customize for a new touchscreen, there are various macros that
++// have to be set. If you allow UART_HACK_DEBUG to be defined, you
++// will get real time ts data scrolling up your serial terminal
++// screen that will help you empirically determine good values for these.
++//
++
++//
++// These are used as trigger levels to know when we have pen up/down
++//
++// The rules:
++// 1. TS_HEAVY_INV_PRESSURE < TS_LIGHT_INV_PRESSURE because these
++// are Inverse pressure.
++// 2. Any touch lighter than TS_LIGHT_INV_PRESSURE is a pen up.
++// 3. Any touch heavier than TS_HEAVY_INV_PRESSURE is a pen down.
++//
++#define TS_HEAVY_INV_PRESSURE 0xFE0 //C00
++#define TS_LIGHT_INV_PRESSURE 0xFFF //e00
++
++//
++// If the x, y, or inverse pressure changes more than these values
++// between two succeeding points, the point is not reported.
++//
++#define TS_MAX_VALID_XY_CHANGE 0x300
++#define TS_MAX_VALID_PRESSURE_CHANGE 0x100
++
++//
++// This is the minimum Z1 Value that is valid.
++//
++#define MIN_Z1_VALUE 0x50
++
++//
++// Settling delay for taking each ADC measurement. Increase this
++// if ts is jittery.
++//
++#define EP93XX_TS_ADC_DELAY_USEC 2000
++
++//
++// Delay between TS points.
++//
++#define EP93XX_TS_PER_POINT_DELAY_USEC 10000
++
++//-----------------------------------------------------------------------------
++// Debug messaging thru the UARTs
++//-----------------------------------------------------------------------------
++/*
++ * Hello there! Are you trying to get this driver to work with a new
++ * touschscreen? Turn this on and you will get useful info coming
++ * out of your serial port.
++ */
++/* #define PRINT_CALIBRATION_FACTORS */
++#ifdef PRINT_CALIBRATION_FACTORS
++#define UART_HACK_DEBUG 1
++int iMaxX=0, iMaxY=0, iMinX = 0xfff, iMinY = 0xfff;
++#endif
++
++/*
++ * For debugging, let's spew messages out serial port 1 or 3 at 57,600 baud.
++ */
++/* #define UART_HACK_DEBUG 1 */
++#if 0
++#ifdef UART_HACK_DEBUG
++static char szBuf[256];
++void UARTWriteString(char * msg);
++#define DPRINTK( x... ) \
++ sprintf( szBuf, ##x ); \
++ UARTWriteString( szBuf );
++#else
++static char szBuf[256];
++#define DPRINTK( x... ) \
++ sprintf( szBuf, ##x ); \
++ printk( szBuf );
++#endif
++#endif // 0
++#define DPRINTK( x... )
++
++//-----------------------------------------------------------------------------
++// A few more macros...
++//-----------------------------------------------------------------------------
++#define TSSETUP_DEFAULT ( TSSETUP_NSMP_32 | TSSETUP_DEV_64 | \
++ ((128<<TSSETUP_SDLY_SHIFT) & TSSETUP_SDLY_MASK) | \
++ ((128<<TSSETUP_DLY_SHIFT) & TSSETUP_DLY_MASK) )
++
++#define TSSETUP2_DEFAULT (TSSETUP2_NSIGND)
++
++//
++// For now, we use one of the minor numbers from the local/experimental
++// range.
++//
++#define EP93XX_TS_MINOR 240
++
++//-----------------------------------------------------------------------------
++// Static Declarations
++//-----------------------------------------------------------------------------
++static unsigned int guiLastX, guiLastY;
++static unsigned int guiLastInvPressure;
++
++struct TouchScreenSample
++{
++ int currentX;
++ int currentY;
++ int currentButton;
++ int currentPressure;
++ struct timeval currentTime;
++};
++
++//
++// This must match the structure in tslib.
++//
++struct ts_sample {
++ int x;
++ int y;
++ unsigned int pressure;
++ struct timeval tv;
++};
++
++
++static struct TouchScreenSample gSample;
++
++// static int currentX, currentY, currentButton;
++// static int gPressure;
++// static struct timeval gtime;
++
++static int bFreshTouchData;
++static int bCurrentPenDown;
++
++
++
++static DECLARE_WAIT_QUEUE_HEAD(queue);
++static DECLARE_MUTEX(open_sem);
++static spinlock_t event_buffer_lock = SPIN_LOCK_UNLOCKED;
++static struct fasync_struct *ep93xx_fasync;
++
++//-----------------------------------------------------------------------------
++// Typedef Declarations
++//-----------------------------------------------------------------------------
++typedef enum {
++ TS_MODE_UN_INITIALIZED,
++ TS_MODE_HARDWARE_SCAN,
++ TS_MODE_SOFT_SCAN
++} ts_mode_t;
++
++static ts_mode_t gScanningMode;
++
++typedef enum{
++ TS_STATE_STOPPED = 0,
++ TS_STATE_Z1,
++ TS_STATE_Z2,
++ TS_STATE_Y,
++ TS_STATE_X,
++ TS_STATE_DONE
++} ts_states_t;
++
++typedef struct
++{
++ unsigned int uiX;
++ unsigned int uiY;
++ unsigned int uiZ1;
++ unsigned int uiZ2;
++ ts_states_t state;
++} ts_struct_t;
++
++static ts_struct_t sTouch;
++
++/*
++ * From the spec, here's how to set up the touch screen's switch registers.
++ */
++typedef struct
++{
++ unsigned int uiDetect;
++ unsigned int uiDischarge;
++ unsigned int uiXSample;
++ unsigned int uiYSample;
++ unsigned int uiSwitchZ1;
++ unsigned int uiSwitchZ2;
++}SwitchStructType;
++
++//
++// Here's the switch settings for a 4-wire touchscreen. See the spec
++// for how to handle a 4, 7, or 8-wire.
++//
++const static SwitchStructType sSwitchSettings =
++/* s28en=0
++ * TSDetect TSDischarge TSXSample TSYSample SwitchZ1 SwitchZ2
++ */
++ {0x00403604, 0x0007fe04, 0x00081604, 0x00104601, 0x00101601, 0x00101608};
++
++
++//-----------------------------------------------------------------------------
++// Function Declarations
++//-----------------------------------------------------------------------------
++static void ep93xx_ts_set_direct( unsigned int uiADCSwitch );
++static irqreturn_t ep93xx_ts_isr(int irq, void *dev_id);
++static irqreturn_t ep93xx_timer2_isr(int irq, void *dev_id);
++static void ee93xx_ts_evt_add( int button, int dX, int dY, int Pressure );
++static ssize_t ep93xx_ts_read(struct file *filp, char *buf,
++ size_t count, loff_t *l);
++static unsigned int ep93xx_ts_poll(struct file *filp, poll_table *wait);
++static int ep93xx_ts_open(struct inode *inode, struct file *filp);
++static int ep93xx_ts_fasync(int fd, struct file *filp, int on);
++static int ep93xx_ts_release(struct inode *inode, struct file *filp);
++static ssize_t ep93xx_ts_write(struct file *file, const char *buffer,
++ size_t count, loff_t *ppos);
++static void ep93xx_ts_setup(void);
++static void ep93xx_ts_shutdown(void);
++int __init ep93xx_ts_init(void);
++void __exit ep93xx_ts_exit(void);
++static unsigned int CalculateInvPressure( void );
++static unsigned int ADCGetData( unsigned int uiSamples, unsigned int uiMaxDiff);
++static void TS_Soft_Scan_Mode(void);
++static void TS_Hardware_Scan_Mode(void);
++static void ProcessPointData(void);
++static void Set_Timer2_uSec( unsigned int Delay_mSec );
++static void Stop_Timer2(void);
++
++
++
++//-----------------------------------------------------------------------------
++// Debug stuff...
++//-----------------------------------------------------------------------------
++
++#ifdef UART_HACK_DEBUG
++
++// This "array" is a cheap-n-easy way of getting access to the UART registers.
++static unsigned int * const pDebugUART=(unsigned int *)IO_ADDRESS(UART1_BASE);
++//static unsigned int * const pDebugUART=(unsigned int *)IO_ADDRESS(UART3_BASE);
++static int bUartInitialized = 0;
++
++void SendChar(char value)
++{
++ // wait for Tx fifo full flag to clear.
++ while (pDebugUART[0x18>>2] & 0x20);
++
++ // send a char to the uart
++ pDebugUART[0] = value;
++}
++
++void UARTWriteString(char * msg)
++{
++ int index = 0;
++ unsigned int uiTemp;
++
++ //if((pDebugUART[0x14>>2] & 0x1) == 0)
++ if( bUartInitialized == 0 )
++ {
++ uiTemp = inl(EP93XX_SYSCON_DEVCFG);
++ uiTemp |= EP93XX_SYSCON_DEVCFG_U1E;
++ //uiTemp |= EP93XX_SYSCON_DEVCFG_U3E;
++ SysconSetLocked(EP93XX_SYSCON_DEVCFG, uiTemp);
++ pDebugUART[0x10>>2] = 0xf;
++ pDebugUART[0xc>>2] = 0;
++ pDebugUART[0x8>>2] = 0x70;
++ pDebugUART[0x14>>2] = 0x1;
++ bUartInitialized = 1;
++ }
++ while (msg[index] != 0)
++ {
++ if (msg[index] == '\n')
++ {
++ SendChar('\r');
++ SendChar('\n');
++ }
++ else
++ {
++ SendChar(msg[index]);
++ }
++ index++;
++ }
++}
++#endif // UART_HACK_DEBUG
++
++/*
++ * ep93xx_ts_isr
++ */
++static irqreturn_t ep93xx_ts_isr(int irq, void *dev_id)
++{
++ DPRINTK("isr\n");
++
++ //
++ // Note that we don't clear the interrupt here. The interrupt
++ // gets cleared in TS_Soft_Scan_Mode when the TS ENABLE
++ // bit is cleared.
++ //
++
++ //
++ // Set the ts to manual polling mode and schedule a callback.
++ // That way we can return from the isr in a reasonable amount of
++ // time and process the touch in the callback after a brief delay.
++ //
++ TS_Soft_Scan_Mode();
++
++ return(IRQ_HANDLED);
++}
++
++/*
++ * Save the current ts 'event' in an atomic fashion.
++ */
++static void ee93xx_ts_evt_add( int buttons, int iX, int iY, int iPressure )
++{
++#ifdef PRINT_CALIBRATION_FACTORS
++ if( iX > iMaxX ) iMaxX = iX;
++ if( iX < iMinX ) iMinX = iX;
++ if( iY > iMaxY ) iMaxY = iY;
++ if( iY < iMinY ) iMinY = iY;
++#endif
++
++
++ // printk("ee93xx_ts_evt_add\n");
++ //DPRINTK("cb\n");
++ /*
++ * Note the event, but use spinlocks to keep it from getting
++ * halfway read if we get interrupted.
++ */
++
++ spin_lock(&event_buffer_lock);
++ gSample.currentX = iX;
++ gSample.currentY = iY;
++ gSample.currentButton = buttons;
++ gSample.currentPressure = iPressure;
++ bFreshTouchData = 1;
++ do_gettimeofday(&gSample.currentTime);
++
++
++ spin_unlock(&event_buffer_lock);
++
++ kill_fasync(&ep93xx_fasync, SIGIO, POLL_IN);
++ wake_up_interruptible(&queue);
++
++}
++
++
++static ssize_t ep93xx_ts_read(struct file *filp, char *buf, size_t count, loff_t *l)
++{
++
++ unsigned short data[3];
++ struct ts_sample ts_data;
++ int iReturn = -EFAULT;
++ // printk("ep93xx_ts_read\n");
++
++#ifdef PRINT_CALIBRATION_FACTORS
++ static int lala=0;
++ if( bFreshTouchData && (lala++ > 9) )
++ {
++ DPRINTK("%4d, %4d - range [%4d to %4d],[%4d to %4d]\n",
++ f, currentY, iMinX, iMaxX, iMinY, iMaxY );
++ lala = 0;
++ }
++#endif
++ if( !bFreshTouchData)
++ {
++ iReturn = 0;
++ }
++ else if( (count == sizeof(data)) )
++ {
++ spin_lock_irq(&event_buffer_lock);
++ bFreshTouchData = 0;
++ data[0] = gSample.currentX;
++ data[1] = gSample.currentY;
++ data[2] = gSample.currentButton;
++
++ spin_unlock_irq(&event_buffer_lock);
++
++ if (copy_to_user(buf, data, sizeof data))
++ return -EFAULT;
++
++ count -= sizeof(data);
++
++ /* return the # of bytes that got read */
++ iReturn = sizeof(data) ;
++ }
++ else if (count == sizeof(struct ts_sample) )
++ {
++ spin_lock_irq(&event_buffer_lock);
++ bFreshTouchData = 0;
++ ts_data.x = gSample.currentX;
++ ts_data.y = gSample.currentY;
++ ts_data.pressure = gSample.currentPressure;
++ ts_data.tv = gSample.currentTime;
++ spin_unlock_irq(&event_buffer_lock);
++
++ if (copy_to_user(buf, &ts_data, sizeof(struct ts_sample)))
++ {
++ iReturn = -EFAULT;
++ }
++ else
++ {
++ count -= sizeof(ts_data);
++ iReturn = sizeof(ts_data);
++ }
++
++ }
++
++ return iReturn;
++}
++
++static unsigned int ep93xx_ts_poll(struct file *filp, poll_table *wait)
++{
++ // printk("ep93xx_ts_poll\n");
++ poll_wait(filp, &queue, wait);
++
++ if( bFreshTouchData )
++ {
++ return POLLIN | POLLRDNORM;
++ }
++
++ return 0;
++}
++
++static int ep93xx_ts_open(struct inode *inode, struct file *filp)
++{
++ printk("ep93xx_ts_open");
++
++ if( down_trylock(&open_sem) )
++ {
++ return -EBUSY;
++ }
++
++ ep93xx_ts_setup();
++
++ return 0;
++}
++
++/*
++ * Asynchronous I/O support.
++ */
++static int ep93xx_ts_fasync(int fd, struct file *filp, int on)
++{
++ int retval;
++
++ retval = fasync_helper(fd, filp, on, &ep93xx_fasync);
++ if (retval < 0)
++ {
++ return retval;
++ }
++
++ return 0;
++}
++
++static int ep93xx_ts_release(struct inode *inode, struct file *filp)
++{
++ Stop_Timer2();
++
++ /*
++ * Call our async I/O support to request that this file
++ * cease to be used for async I/O.
++ */
++ ep93xx_ts_fasync(-1, filp, 0);
++
++ ep93xx_ts_shutdown();
++
++ up(&open_sem);
++
++ return 0;
++}
++
++static ssize_t ep93xx_ts_write(struct file *file, const char *buffer, size_t count,
++ loff_t *ppos)
++{
++ return -EINVAL;
++}
++
++
++static int ep93xx_ts_ioctl(struct inode *inode, struct file *file, uint command, ulong u)
++{
++ static const int version = EV_VERSION;
++ static const u_int32_t bit =(1 << EV_ABS);
++ static const u_int32_t absbit = (1 << ABS_X) | (1 << ABS_Y) | (1 << ABS_PRESSURE);
++ int iReturn ;
++ int i = 0;
++
++ switch(command)
++ {
++ case EVIOCGVERSION:
++ DPRINTK("ep93xx_ts_ioctl command = EVIOCGVERSION\r\n");
++ i = copy_to_user((void __user *)u, (void *)version, sizeof(version));
++ iReturn = i ? -EFAULT : 0;
++ break;
++
++ case EVIOCGBIT(0,sizeof(u_int32_t) * 8) :
++ DPRINTK("ep93xx_ts_ioctl command = EVIOCGBIT(0,sizeof(uint32) * 8)\r\n");
++ i = copy_to_user((void __user *)u, (void *)bit, sizeof(bit));
++ iReturn = i ? -EFAULT : 0;
++ break;
++
++ case EVIOCGBIT(EV_ABS, sizeof(absbit) * 8):
++ DPRINTK("ep93xx_ts_ioctl command = EVIOCGBIT(0,sizeof(uint32) * 8)\r\n");
++ copy_to_user((void __user *)u, (void *)absbit, sizeof(absbit));
++ iReturn = i ? -EFAULT : 0;
++ break;
++ default:
++ DPRINTK(" ep93xx_ts_ioctl unknown command = %d\n",u);
++ iReturn = -1;
++ break;
++ }
++
++ return iReturn;
++}
++
++static struct file_operations ep93xx_ts_fops = {
++ owner: THIS_MODULE,
++ read: ep93xx_ts_read,
++ write: ep93xx_ts_write,
++ poll: ep93xx_ts_poll,
++ open: ep93xx_ts_open,
++ ioctl: ep93xx_ts_ioctl,
++ release: ep93xx_ts_release,
++ fasync: ep93xx_ts_fasync,
++};
++
++static struct miscdevice ep93xx_ts_miscdev =
++{
++ EP93XX_TS_MINOR,
++ "ep93xx_ts",
++ &ep93xx_ts_fops
++};
++
++void ep93xx_ts_setup(void)
++{
++ unsigned int uiKTDIV, uiTSXYMaxMin;
++ // printk("ep93xx_hw_setup\n");
++
++ /*
++ * Set the TSEN bit in KTDIV so that we are enabling the clock
++ * for the touchscreen.
++ */
++ uiKTDIV = inl(SYSCON_KTDIV);
++ uiKTDIV |= SYSCON_KTDIV_TSEN;
++ SysconSetLocked( SYSCON_KTDIV, uiKTDIV );
++
++ //
++ // Program the TSSetup and TSSetup2 registers.
++ //
++ outl( TSSETUP_DEFAULT, TSSetup );
++ outl( TSSETUP2_DEFAULT, TSSetup2 );
++
++ //
++ // Set the the touch settings.
++ //
++ outl( 0xaa, TSSWLock );
++ outl( sSwitchSettings.uiDischarge, TSDirect );
++
++ outl( 0xaa, TSSWLock );
++ outl( sSwitchSettings.uiDischarge, TSDischarge );
++
++ outl( 0xaa, TSSWLock );
++ outl( sSwitchSettings.uiSwitchZ1, TSXSample );
++
++ outl( 0xaa, TSSWLock );
++ outl( sSwitchSettings.uiSwitchZ2, TSYSample );
++
++ outl( 0xaa, TSSWLock );
++ outl( sSwitchSettings.uiDetect, TSDetect );
++
++ //
++ // X,YMin set to 0x40 = have to drag that many pixels for a new irq.
++ // X,YMax set to 0x40 = 1024 pixels is the maximum movement within the
++ // time scan limit.
++ //
++ uiTSXYMaxMin = (50 << TSMAXMIN_XMIN_SHIFT) & TSMAXMIN_XMIN_MASK;
++ uiTSXYMaxMin |= (50 << TSMAXMIN_YMIN_SHIFT) & TSMAXMIN_YMIN_MASK;
++ uiTSXYMaxMin |= (0xff << TSMAXMIN_XMAX_SHIFT) & TSMAXMIN_XMAX_MASK;
++ uiTSXYMaxMin |= (0xff << TSMAXMIN_YMAX_SHIFT) & TSMAXMIN_YMAX_MASK;
++ outl( uiTSXYMaxMin, TSXYMaxMin );
++
++ bCurrentPenDown = 0;
++ bFreshTouchData = 0;
++ guiLastX = 0;
++ guiLastY = 0;
++ guiLastInvPressure = 0xffffff;
++
++ //
++ // Enable the touch screen scanning engine.
++ //
++ TS_Hardware_Scan_Mode();
++}
++
++/*
++ * ep93xx_ts_shutdown
++ *
++ */
++static void
++ep93xx_ts_shutdown(void)
++{
++ unsigned int uiKTDIV;
++
++ DPRINTK("ep93xx_ts_shutdown\n");
++
++ sTouch.state = TS_STATE_STOPPED;
++ Stop_Timer2();
++
++ /*
++ * Disable the scanning engine.
++ */
++ outl( 0, TSSetup );
++ outl( 0, TSSetup2 );
++
++ /*
++ * Clear the TSEN bit in KTDIV so that we are disabling the clock
++ * for the touchscreen.
++ */
++ uiKTDIV = inl(SYSCON_KTDIV);
++ uiKTDIV &= ~SYSCON_KTDIV_TSEN;
++ SysconSetLocked( SYSCON_KTDIV, uiKTDIV );
++
++} /* ep93xx_ts_shutdown */
++
++static irqreturn_t ep93xx_timer2_isr(int irq, void *dev_id)
++{
++ DPRINTK("%d", (int)sTouch.state );
++
++ switch( sTouch.state )
++ {
++ case TS_STATE_STOPPED:
++ TS_Hardware_Scan_Mode();
++ break;
++
++ //
++ // Get the Z1 value for pressure measurement and set up
++ // the switch register for getting the Z2 measurement.
++ //
++ case TS_STATE_Z1:
++ Set_Timer2_uSec( EP93XX_TS_ADC_DELAY_USEC );
++ sTouch.uiZ1 = ADCGetData( 2, 200 );
++ ep93xx_ts_set_direct( sSwitchSettings.uiSwitchZ2 );
++ sTouch.state = TS_STATE_Z2;
++ break;
++
++ //
++ // Get the Z2 value for pressure measurement and set up
++ // the switch register for getting the Y measurement.
++ //
++ case TS_STATE_Z2:
++ sTouch.uiZ2 = ADCGetData( 2, 200 );
++ ep93xx_ts_set_direct( sSwitchSettings.uiYSample );
++ sTouch.state = TS_STATE_Y;
++ break;
++
++ //
++ // Get the Y value and set up the switch register for
++ // getting the X measurement.
++ //
++ case TS_STATE_Y:
++ sTouch.uiY = ADCGetData( 4, 20 );
++ ep93xx_ts_set_direct( sSwitchSettings.uiXSample );
++ sTouch.state = TS_STATE_X;
++ break;
++
++ //
++ // Read the X value. This is the last of the 4 adc values
++ // we need so we continue on to process the data.
++ //
++ case TS_STATE_X:
++ Stop_Timer2();
++
++ sTouch.uiX = ADCGetData( 4, 20 );
++
++ outl( 0xaa, TSSWLock );
++ outl( sSwitchSettings.uiDischarge, TSDirect );
++
++ sTouch.state = TS_STATE_DONE;
++
++ /*
++ * Process this set of ADC readings.
++ */
++ ProcessPointData();
++
++ break;
++
++
++ //
++ // Shouldn't get here. But if we do, we can recover...
++ //
++ case TS_STATE_DONE:
++ TS_Hardware_Scan_Mode();
++ break;
++ }
++
++ //
++ // Clear the timer2 interrupt.
++ //
++ outl( 1, TIMER2CLEAR );
++ return(IRQ_HANDLED);
++}
++
++/*---------------------------------------------------------------------
++ * ProcessPointData
++ *
++ * This routine processes the ADC data into usable point data and then
++ * puts the driver into hw or sw scanning mode before returning.
++ *
++ * We calculate inverse pressure (lower number = more pressure) then
++ * do a hystheresis with the two pressure values 'light' and 'heavy'.
++ *
++ * If we are above the light, we have pen up.
++ * If we are below the heavy we have pen down.
++ * As long as the pressure stays below the light, pen stays down.
++ * When we get above the light again, pen goes back up.
++ *
++ */
++static void ProcessPointData(void)
++{
++ int bValidPoint = 0;
++ unsigned int uiXDiff, uiYDiff, uiInvPressureDiff;
++ unsigned int uiInvPressure;
++
++ //
++ // Calculate the current pressure.
++ //
++ uiInvPressure = CalculateInvPressure();
++
++ DPRINTK(" X=0x%x, Y=0x%x, Z1=0x%x, Z2=0x%x, InvPressure=0x%x",
++ sTouch.uiX, sTouch.uiY, sTouch.uiZ1, sTouch.uiZ2, uiInvPressure );
++
++ //
++ // If pen pressure is so light that it is greater than the 'max' setting
++ // then we consider this to be a pen up.
++ //
++ if( uiInvPressure >= TS_LIGHT_INV_PRESSURE )
++ {
++ DPRINTK(" -- up \n");
++ bCurrentPenDown = 0;
++ ee93xx_ts_evt_add( 0, guiLastX, guiLastY, 0 );
++ TS_Hardware_Scan_Mode();
++ return;
++ }
++
++ //
++ // Hystheresis:
++ // If the pen pressure is hard enough to be less than the 'min' OR
++ // the pen is already down and is still less than the 'max'...
++ //
++ if( (uiInvPressure < TS_HEAVY_INV_PRESSURE) ||
++ ( bCurrentPenDown && (uiInvPressure < TS_LIGHT_INV_PRESSURE) ) )
++ {
++ if( bCurrentPenDown )
++ {
++ //
++ // If pen was previously down, check the difference between
++ // the last sample and this one... if the difference between
++ // samples is too great, ignore the sample.
++ //
++ uiXDiff = abs(guiLastX - sTouch.uiX);
++ uiYDiff = abs(guiLastY - sTouch.uiY);
++ uiInvPressureDiff = abs(guiLastInvPressure - uiInvPressure);
++
++ if( (uiXDiff < TS_MAX_VALID_XY_CHANGE) && (uiYDiff < TS_MAX_VALID_XY_CHANGE) &&
++ (uiInvPressureDiff < TS_MAX_VALID_PRESSURE_CHANGE) )
++ {
++ DPRINTK(" -- valid(two) \n");
++ bValidPoint = 1;
++ }
++ else
++ {
++ DPRINTK(" -- INvalid(two) \n");
++ }
++ }
++ else
++ {
++ DPRINTK(" -- valid \n");
++ bValidPoint = 1;
++ }
++
++ /*
++ * If either the pen was put down or dragged make a note of it.
++ */
++ if( bValidPoint )
++ {
++ guiLastX = sTouch.uiX;
++ guiLastY = sTouch.uiY;
++ guiLastInvPressure = uiInvPressure;
++ bCurrentPenDown = 1;
++ ee93xx_ts_evt_add( 1, sTouch.uiX, sTouch.uiY, (0x7000000 /uiInvPressure) );
++ }
++
++ TS_Soft_Scan_Mode();
++ return;
++ }
++
++ DPRINTK(" -- fallout \n");
++ TS_Hardware_Scan_Mode();
++}
++
++static void ep93xx_ts_set_direct( unsigned int uiADCSwitch )
++{
++ unsigned int uiResult;
++
++ //
++ // Set the switch settings in the direct register.
++ //
++ outl( 0xaa, TSSWLock );
++ outl( uiADCSwitch, TSDirect );
++
++ //
++ // Read and throw away the first sample.
++ //
++ do {
++ uiResult = inl(TSXYResult);
++ } while( !(uiResult & TSXYRESULT_SDR) );
++
++}
++
++static unsigned int ADCGetData
++(
++ unsigned int uiSamples,
++ unsigned int uiMaxDiff
++)
++{
++ unsigned int uiResult, uiValue, uiCount, uiLowest, uiHighest, uiSum, uiAve;
++
++ do
++ {
++ //
++ //Initialize our values.
++ //
++ uiLowest = 0xfffffff;
++ uiHighest = 0;
++ uiSum = 0;
++
++ for( uiCount = 0 ; uiCount < uiSamples ; uiCount++ )
++ {
++ //
++ // Read the touch screen four more times and average.
++ //
++ do {
++ uiResult = inl(TSXYResult);
++ } while( !(uiResult & TSXYRESULT_SDR) );
++
++ uiValue = (uiResult & TSXYRESULT_AD_MASK) >> TSXYRESULT_AD_SHIFT;
++ uiValue = ((uiValue >> 4) + ((1 + TSXYRESULT_X_MASK)>>1)) & TSXYRESULT_X_MASK;
++
++ //
++ // Add up the values.
++ //
++ uiSum += uiValue;
++
++ //
++ // Get the lowest and highest values.
++ //
++ if( uiValue < uiLowest )
++ {
++ uiLowest = uiValue;
++ }
++ if( uiValue > uiHighest )
++ {
++ uiHighest = uiValue;
++ }
++ }
++
++ } while( (uiHighest - uiLowest) > uiMaxDiff );
++
++ //
++ // Calculate the Average value.
++ //
++ uiAve = uiSum / uiSamples;
++
++ return uiAve;
++}
++
++//****************************************************************************
++// CalculateInvPressure
++//****************************************************************************
++// Is the Touch Valid. Touch is not valid if the X or Y value is not
++// in range and the pressure is not enough.
++//
++// Touch resistance can be measured by the following formula:
++//
++// Rx * X * Z2
++// Rtouch = --------- * (-- - 1)
++// 4096 Z1
++//
++// This is simplified in the ration of Rtouch to Rx. The lower the value, the
++// higher the pressure.
++//
++// Z2
++// InvPressure = X * (-- - 1)
++// Z1
++//
++static unsigned int CalculateInvPressure(void)
++{
++ unsigned int uiInvPressure;
++
++ //
++ // Check to see if the point is valid.
++ //
++ if( sTouch.uiZ1 < MIN_Z1_VALUE )
++ {
++ uiInvPressure = 0x10000;
++ }
++
++ //
++ // Can omit the pressure calculation if you need to get rid of the division.
++ //
++ else
++ {
++ uiInvPressure = ((sTouch.uiX * sTouch.uiZ2) / sTouch.uiZ1) - sTouch.uiX;
++ }
++
++ return uiInvPressure;
++}
++
++
++
++//****************************************************************************
++// TS_Hardware_Scan_Mode
++//****************************************************************************
++// Enables the ep93xx ts scanning engine so that when the pen goes down
++// we will get an interrupt.
++//
++//
++static void TS_Hardware_Scan_Mode(void)
++{
++ unsigned int uiDevCfg;
++
++ DPRINTK("S\n");
++
++ //
++ // Disable the soft scanning engine.
++ //
++ sTouch.state = TS_STATE_STOPPED;
++ Stop_Timer2();
++
++ //
++ // Clear the TIN (Touchscreen INactive) bit so we can go to
++ // automatic scanning mode.
++ //
++ uiDevCfg = inl( EP93XX_SYSCON_DEVCFG );
++ SysconSetLocked( EP93XX_SYSCON_DEVCFG, (uiDevCfg & ~EP93XX_SYSCON_DEVCFG_TIN) );
++
++ //
++ // Enable the touch screen scanning state machine by setting
++ // the ENABLE bit.
++ //
++ outl( (TSSETUP_DEFAULT | TSSETUP_ENABLE), TSSetup );
++
++ //
++ // Set the flag to show that we are in interrupt mode.
++ //
++ gScanningMode = TS_MODE_HARDWARE_SCAN;
++
++ //
++ // Initialize TSSetup2 register.
++ //
++ outl( TSSETUP2_DEFAULT, TSSetup2 );
++
++}
++
++//****************************************************************************
++// TS_Soft_Scan_Mode
++//****************************************************************************
++// Sets the touch screen to manual polling mode.
++//
++//
++static void TS_Soft_Scan_Mode(void)
++{
++ unsigned int uiDevCfg;
++
++ DPRINTK("M\n");
++
++ if( gScanningMode != TS_MODE_SOFT_SCAN )
++ {
++ //
++ // Disable the touch screen scanning state machine by clearing
++ // the ENABLE bit.
++ //
++ outl( TSSETUP_DEFAULT, TSSetup );
++
++ //
++ // Set the TIN bit so we can do manual touchscreen polling.
++ //
++ uiDevCfg = inl(EP93XX_SYSCON_DEVCFG );
++ SysconSetLocked( EP93XX_SYSCON_DEVCFG, (uiDevCfg | EP93XX_SYSCON_DEVCFG_TIN) );
++ }
++
++ //
++ // Set the switch register up for the first ADC reading
++ //
++ ep93xx_ts_set_direct( sSwitchSettings.uiSwitchZ1 );
++
++ //
++ // Initialize our software state machine to know which ADC
++ // reading to take
++ //
++ sTouch.state = TS_STATE_Z1;
++
++ //
++ // Set the timer so after a mSec or two settling delay it will
++ // take the first ADC reading.
++ //
++ Set_Timer2_uSec( EP93XX_TS_PER_POINT_DELAY_USEC );
++
++ //
++ // Note that we are in sw scanning mode not hw scanning mode.
++ //
++ gScanningMode = TS_MODE_SOFT_SCAN;
++
++}
++
++static void Set_Timer2_uSec( unsigned int uiDelay_uSec )
++{
++ unsigned int uiClockTicks;
++
++ /*
++ * Stop timer 2
++ */
++ outl( 0, TIMER2CONTROL );
++
++ uiClockTicks = ((uiDelay_uSec * 508) + 999) / 1000;
++ outl( uiClockTicks, TIMER2LOAD );
++ outl( uiClockTicks, TIMER2VALUE );
++
++ /*
++ * Set up Timer 2 for 508 kHz clock and periodic mode.
++ */
++ outl( 0xC8, TIMER2CONTROL );
++
++}
++
++static void Stop_Timer2(void)
++{
++ outl( 0, TIMER2CONTROL );
++}
++
++/*
++ * Initialization and exit routines
++ */
++int __init ep93xx_ts_init(void)
++{
++ int retval;
++
++ //printk("ep93xx_ts_init\n");
++
++ // printk("request Touchscreen interrupt.\n");
++ retval = request_irq( IRQ_EP93XX_TOUCH, ep93xx_ts_isr, IRQF_DISABLED, "ep93xx_ts", 0);
++ if( retval )
++ {
++ printk(KERN_WARNING "ep93xx_ts: failed to get touchscreen IRQ\n");
++ return retval;
++ }
++
++ // printk("Request Timer interrupt.\n");
++ retval = request_irq( IRQ_EP93XX_TIMER2, ep93xx_timer2_isr,
++ IRQF_DISABLED, "ep93xx_timer2", 0);
++ if( retval )
++ {
++ printk(KERN_WARNING "ep93xx_ts: failed to get timer2 IRQ\n");
++ return retval;
++ }
++
++ // printk("Register Touchscreen Driver\n");
++ misc_register(&ep93xx_ts_miscdev);
++
++ sTouch.state = TS_STATE_STOPPED;
++ gScanningMode = TS_MODE_UN_INITIALIZED;
++
++ printk(KERN_NOTICE "ep93xx touchscreen driver configured for 4-wire operation\n");
++
++ return 0;
++}
++void __exit
++ep93xx_ts_exit(void)
++{
++ DPRINTK("ep93xx_ts_exit\n");
++
++ Stop_Timer2();
++
++ free_irq(IRQ_EP93XX_TOUCH, 0);
++ free_irq(IRQ_EP93XX_TIMER2, 0);
++
++ misc_deregister(&ep93xx_ts_miscdev);
++}
++
++module_init(ep93xx_ts_init);
++module_exit(ep93xx_ts_exit);
++
++MODULE_DESCRIPTION("Cirrus EP93xx touchscreen driver");
++MODULE_SUPPORTED_DEVICE("touchscreen/ep93xx");
+--- /dev/null
++++ linux-2.6.32/drivers/input/touchscreen/ep93xx_ts.h
+@@ -0,0 +1,53 @@
++/*
++ * ep93xx_ts.h
++ *
++ * The contents of this file are subject to the Mozilla Public License
++ * Version 1.1 (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.mozilla.org/MPL/
++ *
++ * Software distributed under the License is distributed on an "AS IS"
++ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
++ * the License for the specific language governing rights and
++ * limitations under the License.
++ *
++ * The initial developer of the original code is David A. Hinds
++ * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
++ * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
++ *
++ * Alternatively, the contents of this file may be used under the
++ * terms of the GNU General Public License version 2 (the "GPL"), in
++ * which case the provisions of the GPL are applicable instead of the
++ * above. If you wish to allow the use of your version of this file
++ * only under the terms of the GPL and not to allow others to use
++ * your version of this file under the MPL, indicate your decision by
++ * deleting the provisions above and replace them with the notice and
++ * other provisions required by the GPL. If you do not delete the
++ * provisions above, a recipient may use your version of this file
++ * under either the MPL or the GPL.
++ */
++
++#ifndef _LINUX_EP93XX_TS_H
++#define _LINUX_EP93XX_TS_H
++
++/*touchscreen register defines*/
++#define SYSCON_KTDIV EP93XX_SYSCON_KEY_TOUCH_CLOCK_DIV
++#define SYSCON_SWLOCK EP93XX_SYSCON_SWLOCK
++#define TSSetup EP93XX_TOUCHSCREEN_TSSetup
++#define TSXYMaxMin EP93XX_TOUCHSCREEN_TSXYMaxMin
++#define TSXYResult EP93XX_TOUCHSCREEN_TSDischarge
++#define TSDischarge EP93XX_TOUCHSCREEN_TSDischarge
++#define TSXSample EP93XX_TOUCHSCREEN_TSXSample
++#define TSYSample EP93XX_TOUCHSCREEN_TSYSample
++#define TSDirect EP93XX_TOUCHSCREEN_TSDirect
++#define TSDetect EP93XX_TOUCHSCREEN_TSDetect
++#define TSSWLock EP93XX_TOUCHSCREEN_TSSWLock
++#define TSSetup2 EP93XX_TOUCHSCREEN_TSSetup2
++
++
++//#define SYSCON_DEVCFG EP93XX_SYSCON_DEVICE_CONFIG
++#define TIMER2CONTROL EP93XX_TIMER2_CONTROL
++#define TIMER2LOAD EP93XX_TIMER2_LOAD
++#define TIMER2VALUE EP93XX_TIMER2_VALUE
++#define TIMER2CLEAR EP93XX_TIMER2_CLEAR
++#endif
diff --git a/recipes/linux/linux-2.6.32/ep93xx/series b/recipes/linux/linux-2.6.32/ep93xx/series
new file mode 100644
index 0000000000..0ae77856ca
--- /dev/null
+++ b/recipes/linux/linux-2.6.32/ep93xx/series
@@ -0,0 +1,7 @@
+edb9301-fix-machine-id.patch -p1
+simone-board-def.patch -p1
+ep93xx-regs.patch -p1
+ep93xx-i2c.patch -p1
+ep93xx-touchscreen.patch
+ep93xx-spi.patch -p1
+ep93xx-cpuinfo.patch -p1
diff --git a/recipes/linux/linux-2.6.32/ep93xx/simone-board-def.patch b/recipes/linux/linux-2.6.32/ep93xx/simone-board-def.patch
new file mode 100644
index 0000000000..463a73b117
--- /dev/null
+++ b/recipes/linux/linux-2.6.32/ep93xx/simone-board-def.patch
@@ -0,0 +1,1653 @@
+---
+ arch/arm/configs/simone_defconfig | 1380 +++++++++++++++++++++++++++++++++++++
+ arch/arm/mach-ep93xx/Kconfig | 7
+ arch/arm/mach-ep93xx/Makefile | 1
+ arch/arm/mach-ep93xx/Makefile.boot | 2
+ arch/arm/mach-ep93xx/simone.c | 217 +++++
+ 5 files changed, 1607 insertions(+)
+
+--- /dev/null
++++ linux-2.6.32/arch/arm/configs/simone_defconfig
+@@ -0,0 +1,1380 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.24.7
++# Tue May 12 17:49:25 2009
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++# CONFIG_GENERIC_GPIO is not set
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++# CONFIG_NO_IOPORT is not set
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_LOCK_KERNEL=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_AUDIT is not set
++CONFIG_IKCONFIG=y
++CONFIG_IKCONFIG_PROC=y
++CONFIG_LOG_BUF_SHIFT=16
++# CONFIG_CGROUPS is not set
++CONFIG_FAIR_GROUP_SCHED=y
++CONFIG_FAIR_USER_SCHED=y
++# CONFIG_FAIR_CGROUP_SCHED is not set
++CONFIG_SYSFS_DEPRECATED=y
++# CONFIG_RELAY is not set
++# CONFIG_BLK_DEV_INITRD is not set
++# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
++CONFIG_SYSCTL=y
++CONFIG_EMBEDDED=y
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++CONFIG_MODULE_FORCE_UNLOAD=y
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++# CONFIG_IOSCHED_AS is not set
++CONFIG_IOSCHED_DEADLINE=y
++# CONFIG_IOSCHED_CFQ is not set
++# CONFIG_DEFAULT_AS is not set
++CONFIG_DEFAULT_DEADLINE=y
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="deadline"
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++CONFIG_ARCH_EP93XX=y
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++# CONFIG_ARCH_S3C2410 is not set
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++
++#
++# Cirrus EP93xx Implementation Options
++#
++CONFIG_CRUNCH=y
++
++#
++# EP93xx Platforms
++#
++# CONFIG_MACH_ADSSPHERE is not set
++# CONFIG_MACH_EDB9302 is not set
++# CONFIG_MACH_EDB9302A is not set
++# CONFIG_MACH_EDB9307 is not set
++# CONFIG_MACH_EDB9312 is not set
++# CONFIG_MACH_EDB9315 is not set
++# CONFIG_MACH_EDB9315A is not set
++# CONFIG_MACH_GESBC9312 is not set
++# CONFIG_MACH_MICRO9 is not set
++# CONFIG_MACH_MICRO9H is not set
++# CONFIG_MACH_MICRO9M is not set
++# CONFIG_MACH_MICRO9L is not set
++CONFIG_MACH_SIM_ONE=y
++# CONFIG_MACH_TS72XX is not set
++
++#
++# Boot options
++#
++
++#
++# Power management
++#
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_ARM920T=y
++CONFIG_CPU_32v4T=y
++CONFIG_CPU_ABRT_EV4T=y
++CONFIG_CPU_CACHE_V4WT=y
++CONFIG_CPU_CACHE_VIVT=y
++CONFIG_CPU_COPY_V4WB=y
++CONFIG_CPU_TLB_V4WBI=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++CONFIG_ARM_THUMB=y
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
++# CONFIG_OUTER_CACHE is not set
++CONFIG_ARM_VIC=y
++
++#
++# Bus support
++#
++CONFIG_ARM_AMBA=y
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++# CONFIG_PCCARD is not set
++
++#
++# Kernel Features
++#
++# CONFIG_TICK_ONESHOT is not set
++CONFIG_PREEMPT=y
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=100
++CONFIG_AEABI=y
++CONFIG_OABI_COMPAT=y
++# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4096
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="console=ttyAM0,115200 root=/dev/ram"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++CONFIG_FPE_NWFPE_XP=y
++# CONFIG_FPE_FASTFPE is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++# CONFIG_BINFMT_AOUT is not set
++# CONFIG_BINFMT_MISC is not set
++# CONFIG_ARTHUR is not set
++
++#
++# Power management options
++#
++# CONFIG_PM is not set
++CONFIG_SUSPEND_UP_POSSIBLE=y
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++CONFIG_PACKET=y
++CONFIG_PACKET_MMAP=y
++CONFIG_UNIX=y
++CONFIG_XFRM=y
++# CONFIG_XFRM_USER is not set
++# CONFIG_XFRM_SUB_POLICY is not set
++# CONFIG_XFRM_MIGRATE is not set
++CONFIG_NET_KEY=y
++# CONFIG_NET_KEY_MIGRATE is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++CONFIG_IP_PNP=y
++CONFIG_IP_PNP_DHCP=y
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++CONFIG_SYN_COOKIES=y
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++CONFIG_INET_XFRM_MODE_TRANSPORT=y
++CONFIG_INET_XFRM_MODE_TUNNEL=y
++CONFIG_INET_XFRM_MODE_BEET=y
++# CONFIG_INET_LRO is not set
++CONFIG_INET_DIAG=y
++CONFIG_INET_TCP_DIAG=y
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++CONFIG_IPV6=y
++# CONFIG_IPV6_PRIVACY is not set
++# CONFIG_IPV6_ROUTER_PREF is not set
++# CONFIG_IPV6_OPTIMISTIC_DAD is not set
++# CONFIG_INET6_AH is not set
++# CONFIG_INET6_ESP is not set
++# CONFIG_INET6_IPCOMP is not set
++# CONFIG_IPV6_MIP6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
++# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
++# CONFIG_INET6_XFRM_MODE_BEET is not set
++# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
++# CONFIG_IPV6_SIT is not set
++# CONFIG_IPV6_TUNNEL is not set
++# CONFIG_IPV6_MULTIPLE_TABLES is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_NET_SCHED is not set
++CONFIG_NET_SCH_FIFO=y
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++CONFIG_CFG80211=y
++CONFIG_NL80211=y
++CONFIG_WIRELESS_EXT=y
++CONFIG_MAC80211=m
++CONFIG_MAC80211_RCSIMPLE=y
++# CONFIG_MAC80211_DEBUG is not set
++CONFIG_IEEE80211=m
++# CONFIG_IEEE80211_DEBUG is not set
++CONFIG_IEEE80211_CRYPT_WEP=m
++CONFIG_IEEE80211_CRYPT_CCMP=m
++CONFIG_IEEE80211_CRYPT_TKIP=m
++# CONFIG_IEEE80211_SOFTMAC is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++# CONFIG_FW_LOADER is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++# CONFIG_MTD_REDBOOT_PARTS is not set
++# CONFIG_MTD_CMDLINE_PARTS is not set
++# CONFIG_MTD_AFS_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++CONFIG_MTD_CFI=y
++# CONFIG_MTD_JEDECPROBE is not set
++CONFIG_MTD_GEN_PROBE=y
++CONFIG_MTD_CFI_ADV_OPTIONS=y
++CONFIG_MTD_CFI_NOSWAP=y
++# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
++# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
++# CONFIG_MTD_CFI_GEOMETRY is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++# CONFIG_MTD_OTP is not set
++CONFIG_MTD_CFI_INTELEXT=y
++CONFIG_MTD_CFI_AMDSTD=y
++CONFIG_MTD_CFI_STAA=y
++CONFIG_MTD_CFI_UTIL=y
++CONFIG_MTD_RAM=y
++# CONFIG_MTD_ROM is not set
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++CONFIG_MTD_PHYSMAP=y
++CONFIG_MTD_PHYSMAP_START=0x0
++CONFIG_MTD_PHYSMAP_LEN=0x0
++CONFIG_MTD_PHYSMAP_BANKWIDTH=1
++# CONFIG_MTD_ARM_INTEGRATOR is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++# CONFIG_MTD_DATAFLASH is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++# CONFIG_MTD_NAND is not set
++# CONFIG_MTD_ONENAND is not set
++
++#
++# UBI - Unsorted block images
++#
++# CONFIG_MTD_UBI is not set
++# CONFIG_PARPORT is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++CONFIG_BLK_DEV_NBD=y
++# CONFIG_BLK_DEV_UB is not set
++# CONFIG_BLK_DEV_RAM is not set
++# CONFIG_CDROM_PKTCDVD is not set
++# CONFIG_ATA_OVER_ETH is not set
++# CONFIG_MISC_DEVICES is not set
++CONFIG_EEPROM_93CX6=m
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++CONFIG_SCSI=y
++CONFIG_SCSI_DMA=y
++# CONFIG_SCSI_TGT is not set
++# CONFIG_SCSI_NETLINK is not set
++# CONFIG_SCSI_PROC_FS is not set
++
++#
++# SCSI support type (disk, tape, CD-ROM)
++#
++CONFIG_BLK_DEV_SD=y
++# CONFIG_CHR_DEV_ST is not set
++# CONFIG_CHR_DEV_OSST is not set
++# CONFIG_BLK_DEV_SR is not set
++# CONFIG_CHR_DEV_SG is not set
++# CONFIG_CHR_DEV_SCH is not set
++
++#
++# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
++#
++# CONFIG_SCSI_MULTI_LUN is not set
++# CONFIG_SCSI_CONSTANTS is not set
++# CONFIG_SCSI_LOGGING is not set
++# CONFIG_SCSI_SCAN_ASYNC is not set
++CONFIG_SCSI_WAIT_SCAN=m
++
++#
++# SCSI Transports
++#
++# CONFIG_SCSI_SPI_ATTRS is not set
++# CONFIG_SCSI_FC_ATTRS is not set
++# CONFIG_SCSI_ISCSI_ATTRS is not set
++# CONFIG_SCSI_SAS_LIBSAS is not set
++# CONFIG_SCSI_SRP_ATTRS is not set
++CONFIG_SCSI_LOWLEVEL=y
++# CONFIG_ISCSI_TCP is not set
++# CONFIG_SCSI_DEBUG is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++# CONFIG_PHYLIB is not set
++CONFIG_NET_ETHERNET=y
++CONFIG_MII=y
++CONFIG_EP93XX_ETH=y
++# CONFIG_AX88796 is not set
++# CONFIG_SMC91X is not set
++# CONFIG_DM9000 is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++# CONFIG_B44 is not set
++# CONFIG_NETDEV_1000 is not set
++# CONFIG_NETDEV_10000 is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++CONFIG_WLAN_80211=y
++# CONFIG_LIBERTAS is not set
++# CONFIG_USB_ZD1201 is not set
++CONFIG_RTL8187=m
++# CONFIG_HOSTAP is not set
++# CONFIG_B43 is not set
++# CONFIG_B43LEGACY is not set
++# CONFIG_RT2X00 is not set
++
++#
++# USB Network Adapters
++#
++CONFIG_USB_CATC=y
++# CONFIG_USB_KAWETH is not set
++# CONFIG_USB_PEGASUS is not set
++CONFIG_USB_RTL8150=y
++# CONFIG_USB_USBNET is not set
++# CONFIG_WAN is not set
++CONFIG_PPP=m
++# CONFIG_PPP_MULTILINK is not set
++# CONFIG_PPP_FILTER is not set
++# CONFIG_PPP_ASYNC is not set
++CONFIG_PPP_SYNC_TTY=m
++# CONFIG_PPP_DEFLATE is not set
++CONFIG_PPP_BSDCOMP=m
++# CONFIG_PPP_MPPE is not set
++CONFIG_PPPOE=m
++# CONFIG_PPPOL2TP is not set
++# CONFIG_SLIP is not set
++CONFIG_SLHC=m
++# CONFIG_SHAPER is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++CONFIG_INPUT_MOUSEDEV_PSAUX=y
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
++# CONFIG_INPUT_JOYDEV is not set
++CONFIG_INPUT_EVDEV=y
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++# CONFIG_MOUSE_PS2_LOGIPS2PP is not set
++# CONFIG_MOUSE_PS2_SYNAPTICS is not set
++# CONFIG_MOUSE_PS2_LIFEBOOK is not set
++# CONFIG_MOUSE_PS2_TRACKPOINT is not set
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_APPLETOUCH is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++CONFIG_INPUT_TOUCHSCREEN=y
++# CONFIG_TOUCHSCREEN_ADS7846 is not set
++# CONFIG_TOUCHSCREEN_FUJITSU is not set
++# CONFIG_TOUCHSCREEN_GUNZE is not set
++# CONFIG_TOUCHSCREEN_ELO is not set
++# CONFIG_TOUCHSCREEN_MTOUCH is not set
++# CONFIG_TOUCHSCREEN_MK712 is not set
++# CONFIG_TOUCHSCREEN_PENMOUNT is not set
++# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
++# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
++# CONFIG_TOUCHSCREEN_UCB1400 is not set
++# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
++CONFIG_TOUCHSCREEN_EP93XX=y
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++# CONFIG_SERIO_SERPORT is not set
++# CONFIG_SERIO_AMBAKMI is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++# CONFIG_SERIAL_NONSTANDARD is not set
++
++#
++# Serial drivers
++#
++# CONFIG_SERIAL_8250 is not set
++
++#
++# Non-8250 serial port support
++#
++CONFIG_SERIAL_AMBA_PL010=y
++CONFIG_SERIAL_AMBA_PL010_CONSOLE=y
++# CONFIG_SERIAL_AMBA_PL011 is not set
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++# CONFIG_LEGACY_PTYS is not set
++# CONFIG_IPMI_HANDLER is not set
++# CONFIG_HW_RANDOM is not set
++# CONFIG_NVRAM is not set
++# CONFIG_R3964 is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_I2C=y
++CONFIG_I2C_BOARDINFO=y
++CONFIG_I2C_CHARDEV=y
++
++#
++# I2C Algorithms
++#
++CONFIG_I2C_ALGOBIT=y
++# CONFIG_I2C_ALGOPCF is not set
++# CONFIG_I2C_ALGOPCA is not set
++
++#
++# I2C Hardware Bus support
++#
++CONFIG_I2C_EP93XX=y
++# CONFIG_I2C_OCORES is not set
++# CONFIG_I2C_PARPORT_LIGHT is not set
++# CONFIG_I2C_SIMTEC is not set
++# CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_STUB is not set
++# CONFIG_I2C_TINY_USB is not set
++
++#
++# Miscellaneous I2C Chip support
++#
++CONFIG_SENSORS_DS1337=y
++# CONFIG_SENSORS_DS1374 is not set
++# CONFIG_DS1682 is not set
++# CONFIG_SENSORS_EEPROM is not set
++# CONFIG_SENSORS_PCF8574 is not set
++# CONFIG_SENSORS_PCA9539 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_SENSORS_MAX6875 is not set
++# CONFIG_SENSORS_TSL2550 is not set
++# CONFIG_I2C_DEBUG_CORE is not set
++# CONFIG_I2C_DEBUG_ALGO is not set
++# CONFIG_I2C_DEBUG_BUS is not set
++# CONFIG_I2C_DEBUG_CHIP is not set
++
++#
++# SPI support
++#
++CONFIG_SPI=y
++CONFIG_SPI_MASTER=y
++
++#
++# SPI Master Controller Drivers
++#
++CONFIG_SPI_BITBANG=y
++CONFIG_SPI_EP93XX=y
++
++#
++# SPI Protocol Masters
++#
++# CONFIG_SPI_AT25 is not set
++# CONFIG_SPI_SPIDEV is not set
++# CONFIG_SPI_TLE62X0 is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++# CONFIG_HWMON is not set
++CONFIG_WATCHDOG=y
++# CONFIG_WATCHDOG_NOWAYOUT is not set
++
++#
++# Watchdog Device Drivers
++#
++# CONFIG_SOFT_WATCHDOG is not set
++CONFIG_EP93XX_WATCHDOG=y
++
++#
++# USB-based Watchdog Cards
++#
++# CONFIG_USBPCWATCHDOG is not set
++
++#
++# Sonics Silicon Backplane
++#
++CONFIG_SSB_POSSIBLE=y
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++# CONFIG_DAB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++CONFIG_VIDEO_OUTPUT_CONTROL=y
++CONFIG_FB=y
++# CONFIG_FIRMWARE_EDID is not set
++# CONFIG_FB_DDC is not set
++CONFIG_FB_CFB_FILLRECT=y
++CONFIG_FB_CFB_COPYAREA=y
++CONFIG_FB_CFB_IMAGEBLIT=y
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_SYS_FOPS is not set
++CONFIG_FB_DEFERRED_IO=y
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++# CONFIG_FB_MODE_HELPERS is not set
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++CONFIG_FB_EP93XX=y
++# CONFIG_FB_EP93XX_MONO is not set
++# CONFIG_FB_ARMCLCD is not set
++# CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
++CONFIG_FONTS=y
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++# CONFIG_FONT_6x11 is not set
++# CONFIG_FONT_7x14 is not set
++# CONFIG_FONT_PEARL_8x8 is not set
++# CONFIG_FONT_ACORN_8x8 is not set
++# CONFIG_FONT_MINI_4x6 is not set
++# CONFIG_FONT_SUN8x16 is not set
++# CONFIG_FONT_SUN12x22 is not set
++# CONFIG_FONT_10x18 is not set
++CONFIG_LOGO=y
++CONFIG_LOGO_LINUX_MONO=y
++CONFIG_LOGO_LINUX_VGA16=y
++CONFIG_LOGO_LINUX_CLUT224=y
++
++#
++# Sound
++#
++CONFIG_SOUND=y
++
++#
++# Advanced Linux Sound Architecture
++#
++CONFIG_SND=y
++CONFIG_SND_TIMER=y
++CONFIG_SND_PCM=y
++# CONFIG_SND_SEQUENCER is not set
++CONFIG_SND_OSSEMUL=y
++CONFIG_SND_MIXER_OSS=y
++CONFIG_SND_PCM_OSS=y
++CONFIG_SND_PCM_OSS_PLUGINS=y
++# CONFIG_SND_DYNAMIC_MINORS is not set
++# CONFIG_SND_SUPPORT_OLD_API is not set
++# CONFIG_SND_VERBOSE_PROCFS is not set
++# CONFIG_SND_VERBOSE_PRINTK is not set
++# CONFIG_SND_DEBUG is not set
++
++#
++# Generic devices
++#
++CONFIG_SND_AC97_CODEC=y
++# CONFIG_SND_DUMMY is not set
++# CONFIG_SND_MTPAV is not set
++# CONFIG_SND_SERIAL_U16550 is not set
++# CONFIG_SND_MPU401 is not set
++
++#
++# ALSA ARM devices
++#
++CONFIG_SND_EP93XX_AC97=y
++CONFIG_SND_EP93XX_PCM=y
++# CONFIG_SND_ARMAACI is not set
++
++#
++# SPI devices
++#
++
++#
++# USB devices
++#
++# CONFIG_SND_USB_AUDIO is not set
++# CONFIG_SND_USB_CAIAQ is not set
++
++#
++# System on Chip audio support
++#
++# CONFIG_SND_SOC is not set
++
++#
++# SoC Audio support for SuperH
++#
++
++#
++# Open Sound System
++#
++# CONFIG_SOUND_PRIME is not set
++CONFIG_AC97_BUS=y
++CONFIG_HID_SUPPORT=y
++CONFIG_HID=y
++# CONFIG_HID_DEBUG is not set
++# CONFIG_HIDRAW is not set
++
++#
++# USB Input Devices
++#
++CONFIG_USB_HID=y
++# CONFIG_USB_HIDINPUT_POWERBOOK is not set
++# CONFIG_HID_FF is not set
++# CONFIG_USB_HIDDEV is not set
++CONFIG_USB_SUPPORT=y
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
++# CONFIG_USB_ARCH_HAS_EHCI is not set
++CONFIG_USB=y
++# CONFIG_USB_DEBUG is not set
++
++#
++# Miscellaneous USB options
++#
++CONFIG_USB_DEVICEFS=y
++CONFIG_USB_DEVICE_CLASS=y
++CONFIG_USB_DYNAMIC_MINORS=y
++# CONFIG_USB_OTG is not set
++
++#
++# USB Host Controller Drivers
++#
++# CONFIG_USB_ISP116X_HCD is not set
++CONFIG_USB_OHCI_HCD=y
++# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
++# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
++CONFIG_USB_OHCI_LITTLE_ENDIAN=y
++# CONFIG_USB_SL811_HCD is not set
++# CONFIG_USB_R8A66597_HCD is not set
++
++#
++# USB Device Class drivers
++#
++CONFIG_USB_ACM=m
++CONFIG_USB_PRINTER=m
++
++#
++# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
++#
++
++#
++# may also be needed; see USB_STORAGE Help for more information
++#
++CONFIG_USB_STORAGE=y
++# CONFIG_USB_STORAGE_DEBUG is not set
++# CONFIG_USB_STORAGE_DATAFAB is not set
++# CONFIG_USB_STORAGE_FREECOM is not set
++# CONFIG_USB_STORAGE_ISD200 is not set
++# CONFIG_USB_STORAGE_DPCM is not set
++# CONFIG_USB_STORAGE_USBAT is not set
++# CONFIG_USB_STORAGE_SDDR09 is not set
++# CONFIG_USB_STORAGE_SDDR55 is not set
++# CONFIG_USB_STORAGE_JUMPSHOT is not set
++# CONFIG_USB_STORAGE_ALAUDA is not set
++# CONFIG_USB_STORAGE_ONETOUCH is not set
++# CONFIG_USB_STORAGE_KARMA is not set
++# CONFIG_USB_LIBUSUAL is not set
++
++#
++# USB Imaging devices
++#
++# CONFIG_USB_MDC800 is not set
++# CONFIG_USB_MICROTEK is not set
++# CONFIG_USB_MON is not set
++
++#
++# USB port drivers
++#
++
++#
++# USB Serial Converter support
++#
++CONFIG_USB_SERIAL=y
++CONFIG_USB_SERIAL_CONSOLE=y
++# CONFIG_USB_SERIAL_GENERIC is not set
++# CONFIG_USB_SERIAL_AIRCABLE is not set
++# CONFIG_USB_SERIAL_AIRPRIME is not set
++# CONFIG_USB_SERIAL_ARK3116 is not set
++# CONFIG_USB_SERIAL_BELKIN is not set
++# CONFIG_USB_SERIAL_CH341 is not set
++# CONFIG_USB_SERIAL_WHITEHEAT is not set
++# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
++# CONFIG_USB_SERIAL_CP2101 is not set
++# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
++# CONFIG_USB_SERIAL_EMPEG is not set
++# CONFIG_USB_SERIAL_FTDI_SIO is not set
++# CONFIG_USB_SERIAL_FUNSOFT is not set
++# CONFIG_USB_SERIAL_VISOR is not set
++# CONFIG_USB_SERIAL_IPAQ is not set
++# CONFIG_USB_SERIAL_IR is not set
++# CONFIG_USB_SERIAL_EDGEPORT is not set
++# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
++# CONFIG_USB_SERIAL_GARMIN is not set
++# CONFIG_USB_SERIAL_IPW is not set
++# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
++# CONFIG_USB_SERIAL_KEYSPAN is not set
++# CONFIG_USB_SERIAL_KLSI is not set
++# CONFIG_USB_SERIAL_KOBIL_SCT is not set
++# CONFIG_USB_SERIAL_MCT_U232 is not set
++# CONFIG_USB_SERIAL_MOS7720 is not set
++# CONFIG_USB_SERIAL_MOS7840 is not set
++# CONFIG_USB_SERIAL_NAVMAN is not set
++CONFIG_USB_SERIAL_PL2303=y
++# CONFIG_USB_SERIAL_OTI6858 is not set
++# CONFIG_USB_SERIAL_HP4X is not set
++# CONFIG_USB_SERIAL_SAFE is not set
++# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
++# CONFIG_USB_SERIAL_TI is not set
++# CONFIG_USB_SERIAL_CYBERJACK is not set
++# CONFIG_USB_SERIAL_XIRCOM is not set
++# CONFIG_USB_SERIAL_OPTION is not set
++# CONFIG_USB_SERIAL_OMNINET is not set
++# CONFIG_USB_SERIAL_DEBUG is not set
++
++#
++# USB Miscellaneous drivers
++#
++# CONFIG_USB_EMI62 is not set
++# CONFIG_USB_EMI26 is not set
++# CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_AUERSWALD is not set
++# CONFIG_USB_RIO500 is not set
++# CONFIG_USB_LEGOTOWER is not set
++# CONFIG_USB_LCD is not set
++# CONFIG_USB_BERRY_CHARGE is not set
++# CONFIG_USB_LED is not set
++# CONFIG_USB_CYPRESS_CY7C63 is not set
++# CONFIG_USB_CYTHERM is not set
++# CONFIG_USB_PHIDGET is not set
++# CONFIG_USB_IDMOUSE is not set
++# CONFIG_USB_FTDI_ELAN is not set
++# CONFIG_USB_APPLEDISPLAY is not set
++# CONFIG_USB_LD is not set
++# CONFIG_USB_TRANCEVIBRATOR is not set
++# CONFIG_USB_IOWARRIOR is not set
++# CONFIG_USB_TEST is not set
++
++#
++# USB DSL modem support
++#
++
++#
++# USB Gadget Support
++#
++# CONFIG_USB_GADGET is not set
++CONFIG_MMC=y
++# CONFIG_MMC_DEBUG is not set
++# CONFIG_MMC_UNSAFE_RESUME is not set
++
++#
++# MMC/SD Card Drivers
++#
++CONFIG_MMC_BLOCK=y
++CONFIG_MMC_BLOCK_BOUNCE=y
++# CONFIG_SDIO_UART is not set
++
++#
++# MMC/SD Host Controller Drivers
++#
++# CONFIG_MMC_ARMMMCI is not set
++CONFIG_MMC_SPI=y
++#
++# SimOne LCD support
++#
++CONFIG_LCD_LINUX=m
++CONFIG_LCD_HD44780=m
++#
++# CONFIG_NEW_LEDS is not set
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# I2C RTC drivers
++#
++CONFIG_RTC_DRV_DS1307=y
++# CONFIG_RTC_DRV_DS1374 is not set
++# CONFIG_RTC_DRV_DS1672 is not set
++# CONFIG_RTC_DRV_MAX6900 is not set
++# CONFIG_RTC_DRV_RS5C372 is not set
++# CONFIG_RTC_DRV_ISL1208 is not set
++# CONFIG_RTC_DRV_X1205 is not set
++# CONFIG_RTC_DRV_PCF8563 is not set
++# CONFIG_RTC_DRV_PCF8583 is not set
++# CONFIG_RTC_DRV_M41T80 is not set
++
++#
++# SPI RTC drivers
++#
++# CONFIG_RTC_DRV_RS5C348 is not set
++# CONFIG_RTC_DRV_MAX6902 is not set
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_EP93XX=y
++CONFIG_RTC_DRV_EP93XX_DS1337=y
++# CONFIG_RTC_DRV_PL031 is not set
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++CONFIG_EXT2_FS_XATTR=y
++CONFIG_EXT2_FS_POSIX_ACL=y
++CONFIG_EXT2_FS_SECURITY=y
++# CONFIG_EXT2_FS_XIP is not set
++CONFIG_EXT3_FS=y
++# CONFIG_EXT3_FS_XATTR is not set
++# CONFIG_EXT4DEV_FS is not set
++CONFIG_JBD=y
++CONFIG_FS_MBCACHE=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++CONFIG_FS_POSIX_ACL=y
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_MINIX_FS is not set
++CONFIG_ROMFS_FS=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++CONFIG_AUTOFS4_FS=y
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++CONFIG_ISO9660_FS=y
++CONFIG_JOLIET=y
++# CONFIG_ZISOFS is not set
++CONFIG_UDF_FS=y
++CONFIG_UDF_NLS=y
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++CONFIG_MSDOS_FS=y
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
++# CONFIG_JFFS2_SUMMARY is not set
++# CONFIG_JFFS2_FS_XATTR is not set
++# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
++CONFIG_JFFS2_ZLIB=y
++# CONFIG_JFFS2_LZO is not set
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++# CONFIG_CRAMFS is not set
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=y
++CONFIG_NFS_V3=y
++# CONFIG_NFS_V3_ACL is not set
++# CONFIG_NFS_V4 is not set
++# CONFIG_NFS_DIRECTIO is not set
++# CONFIG_NFSD is not set
++CONFIG_ROOT_NFS=y
++CONFIG_LOCKD=y
++CONFIG_LOCKD_V4=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=y
++# CONFIG_SUNRPC_BIND34 is not set
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++CONFIG_PARTITION_ADVANCED=y
++# CONFIG_ACORN_PARTITION is not set
++# CONFIG_OSF_PARTITION is not set
++# CONFIG_AMIGA_PARTITION is not set
++# CONFIG_ATARI_PARTITION is not set
++# CONFIG_MAC_PARTITION is not set
++CONFIG_MSDOS_PARTITION=y
++# CONFIG_BSD_DISKLABEL is not set
++# CONFIG_MINIX_SUBPARTITION is not set
++# CONFIG_SOLARIS_X86_PARTITION is not set
++# CONFIG_UNIXWARE_DISKLABEL is not set
++# CONFIG_LDM_PARTITION is not set
++# CONFIG_SGI_PARTITION is not set
++# CONFIG_ULTRIX_PARTITION is not set
++# CONFIG_SUN_PARTITION is not set
++# CONFIG_KARMA_PARTITION is not set
++# CONFIG_EFI_PARTITION is not set
++# CONFIG_SYSV68_PARTITION is not set
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++# CONFIG_NLS_ASCII is not set
++CONFIG_NLS_ISO8859_1=y
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++# CONFIG_INSTRUMENTATION is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++# CONFIG_ENABLE_WARN_DEPRECATED is not set
++# CONFIG_ENABLE_MUST_CHECK is not set
++# CONFIG_MAGIC_SYSRQ is not set
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++# CONFIG_DEBUG_KERNEL is not set
++# CONFIG_DEBUG_BUGVERBOSE is not set
++CONFIG_FRAME_POINTER=y
++# CONFIG_SAMPLES is not set
++CONFIG_DEBUG_USER=y
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++CONFIG_CRYPTO=y
++CONFIG_CRYPTO_ALGAPI=y
++CONFIG_CRYPTO_BLKCIPHER=y
++CONFIG_CRYPTO_MANAGER=y
++# CONFIG_CRYPTO_HMAC is not set
++# CONFIG_CRYPTO_XCBC is not set
++# CONFIG_CRYPTO_NULL is not set
++# CONFIG_CRYPTO_MD4 is not set
++CONFIG_CRYPTO_MD5=y
++CONFIG_CRYPTO_SHA1=y
++# CONFIG_CRYPTO_SHA256 is not set
++# CONFIG_CRYPTO_SHA512 is not set
++# CONFIG_CRYPTO_WP512 is not set
++# CONFIG_CRYPTO_TGR192 is not set
++# CONFIG_CRYPTO_GF128MUL is not set
++CONFIG_CRYPTO_ECB=m
++CONFIG_CRYPTO_CBC=m
++CONFIG_CRYPTO_PCBC=y
++# CONFIG_CRYPTO_LRW is not set
++# CONFIG_CRYPTO_XTS is not set
++# CONFIG_CRYPTO_CRYPTD is not set
++CONFIG_CRYPTO_DES=y
++# CONFIG_CRYPTO_FCRYPT is not set
++# CONFIG_CRYPTO_BLOWFISH is not set
++# CONFIG_CRYPTO_TWOFISH is not set
++# CONFIG_CRYPTO_SERPENT is not set
++CONFIG_CRYPTO_AES=y
++# CONFIG_CRYPTO_CAST5 is not set
++# CONFIG_CRYPTO_CAST6 is not set
++# CONFIG_CRYPTO_TEA is not set
++CONFIG_CRYPTO_ARC4=y
++# CONFIG_CRYPTO_KHAZAD is not set
++# CONFIG_CRYPTO_ANUBIS is not set
++# CONFIG_CRYPTO_SEED is not set
++# CONFIG_CRYPTO_DEFLATE is not set
++CONFIG_CRYPTO_MICHAEL_MIC=y
++# CONFIG_CRYPTO_CRC32C is not set
++# CONFIG_CRYPTO_CAMELLIA is not set
++# CONFIG_CRYPTO_TEST is not set
++# CONFIG_CRYPTO_AUTHENC is not set
++# CONFIG_CRYPTO_HW is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++# CONFIG_CRC_CCITT is not set
++# CONFIG_CRC16 is not set
++CONFIG_CRC_ITU_T=y
++CONFIG_CRC32=y
++CONFIG_CRC7=y
++CONFIG_LIBCRC32C=y
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_IOPORT=y
++CONFIG_HAS_DMA=y
+--- linux-2.6.32.orig/arch/arm/mach-ep93xx/Kconfig
++++ linux-2.6.32/arch/arm/mach-ep93xx/Kconfig
+@@ -166,10 +166,17 @@ config MACH_TS72XX
+ depends on EP93XX_SDCE3_SYNC_PHYS_OFFSET
+ help
+ Say 'Y' here if you want your kernel to support the
+ Technologic Systems TS-72xx board.
+
++config MACH_SIM_ONE
++ bool "Support SIM.ONE board "
++ depends on EP93XX_SDCE0_PHYS_OFFSET
++ help
++ Say 'Y' here if you want your kernel to support the
++ Simplemachines SIM.ONE board.
++
+ choice
+ prompt "Select a UART for early kernel messages"
+
+ config EP93XX_EARLY_UART1
+ bool "UART1"
+--- linux-2.6.32.orig/arch/arm/mach-ep93xx/Makefile
++++ linux-2.6.32/arch/arm/mach-ep93xx/Makefile
+@@ -8,6 +8,7 @@ obj- :=
+
+ obj-$(CONFIG_MACH_ADSSPHERE) += adssphere.o
+ obj-$(CONFIG_MACH_EDB93XX) += edb93xx.o
+ obj-$(CONFIG_MACH_GESBC9312) += gesbc9312.o
+ obj-$(CONFIG_MACH_MICRO9) += micro9.o
++obj-$(CONFIG_MACH_SIM_ONE) += simone.o
+ obj-$(CONFIG_MACH_TS72XX) += ts72xx.o
+--- linux-2.6.32.orig/arch/arm/mach-ep93xx/Makefile.boot
++++ linux-2.6.32/arch/arm/mach-ep93xx/Makefile.boot
+@@ -1,7 +1,9 @@
+ zreladdr-$(CONFIG_EP93XX_SDCE3_SYNC_PHYS_OFFSET) := 0x00008000
+ params_phys-$(CONFIG_EP93XX_SDCE3_SYNC_PHYS_OFFSET) := 0x00000100
++ zreladdr-$(CONFIG_MACH_SIM_ONE) := 0xc0008000
++params_phys-$(CONFIG_MACH_SIM_ONE) := 0xc0000100
+
+ zreladdr-$(CONFIG_EP93XX_SDCE0_PHYS_OFFSET) := 0xc0008000
+ params_phys-$(CONFIG_EP93XX_SDCE0_PHYS_OFFSET) := 0xc0000100
+
+ zreladdr-$(CONFIG_EP93XX_SDCE1_PHYS_OFFSET) := 0xd0008000
+--- /dev/null
++++ linux-2.6.32/arch/arm/mach-ep93xx/simone.c
+@@ -0,0 +1,217 @@
++/*
++ * arch/arm/mach-ep93xx/simone.c
++ * Simplemachines SIM.ONE support.
++ *
++ * Copyright (C) 2009 Simplemachines
++ * MMC support by Peter Ivanov <ivanovp@gmail.com>, 2007
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or (at
++ * your option) any later version.
++ */
++
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/mm.h>
++#include <linux/sched.h>
++#include <linux/interrupt.h>
++#include <linux/ioport.h>
++#include <linux/mtd/physmap.h>
++#include <linux/platform_device.h>
++#include <linux/spi/spi.h>
++#include <linux/spi/mmc_spi.h>
++#include <linux/mmc/host.h>
++#include <linux/jiffies.h>
++#include <linux/irq.h>
++
++#include <asm/io.h>
++#include <mach/hardware.h>
++#include <asm/mach-types.h>
++#include <asm/mach/arch.h>
++#include <asm/gpio.h>
++
++static struct physmap_flash_data simone_flash_data = {
++ .width = 2,
++};
++
++static struct resource simone_flash_resource = {
++ .start = 0x60000000,
++ .end = 0x60000000+ SZ_8M - 1,
++ .flags = IORESOURCE_MEM,
++};
++
++static struct platform_device simone_flash = {
++ .name = "physmap-flash",
++ .id = 0,
++ .dev = {
++ .platform_data = &simone_flash_data,
++ },
++ .num_resources = 1,
++ .resource = &simone_flash_resource,
++};
++
++
++static struct resource ep93xx_ac97_resources[] = {
++ [0] = {
++ .start = EP93XX_AC97_PHY_BASE,
++ .end = EP93XX_AC97_PHY_BASE + 0x6C,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = NO_IRQ,
++ .end = NO_IRQ,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++static u64 ep93xx_ac97_dma_mask = 0xffffffffUL;
++
++static struct platform_device ep93xx_ac97_device = {
++ .name = "ep93xx-ac97",
++ .id = 0,
++ .num_resources = 2,
++ .resource = ep93xx_ac97_resources,
++ .dev = {
++ .dma_mask = &ep93xx_ac97_dma_mask,
++ .coherent_dma_mask = 0xffffffffUL,
++ },
++};
++
++
++#ifdef CONFIG_SPI
++static struct resource ep93xx_spi_resources[] = {
++ [0] = {
++ .start = EP93XX_SPI_BASE_PHYS,
++ .end = EP93XX_SPI_BASE_PHYS + 0x0fff,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_EP93XX_SSP,
++ .end = IRQ_EP93XX_SSP,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++static struct platform_device ep93xx_spi_device = {
++ .name = "ep93xx-spi",
++ .id = 0,
++ .resource = ep93xx_spi_resources,
++ .num_resources = ARRAY_SIZE(ep93xx_spi_resources),
++};
++
++
++#define EP93XX_MMC_SPI_CARD_PRESENT EP93XX_GPIO_LINE_A(0)
++
++/*
++ * Initializes SPI system to communicate with MMC/SD card
++ */
++int ep93xx_mmc_spi_init (struct device *pdev, irqreturn_t (*card_det_irq_handler)(int, void *),
++ void *mmc)
++{
++ int rv;
++
++ rv = gpio_request(EP93XX_MMC_SPI_CARD_PRESENT, "ep93xx-mmc-spi");
++ if (rv) {
++ dev_info(pdev, "failed to request MMC/SD gpio pin\n");
++ return rv;
++ }
++
++ gpio_direction_input (EP93XX_MMC_SPI_CARD_PRESENT);
++
++ if ((rv = request_irq (gpio_to_irq( EP93XX_MMC_SPI_CARD_PRESENT),
++ card_det_irq_handler,
++ IRQF_DISABLED | IRQ_TYPE_EDGE_FALLING, /* flags */
++ "ep93xx-mmc-spi", /* devname */
++ mmc /* void *devid */
++ )) == 0)
++ {
++ dev_info (pdev, "MMC/SD card detection IRQ %i assigned.\n",
++ gpio_to_irq(EP93XX_MMC_SPI_CARD_PRESENT));
++ }
++ else
++ {
++ dev_err (pdev, "Cannot assign MMC/SD card detection IRQ (%i)!\n",
++ gpio_to_irq(EP93XX_MMC_SPI_CARD_PRESENT));
++ return rv;
++ }
++ return 0;
++}
++
++void ep93xx_mmc_spi_exit (struct device *pdev, void *mmc)
++{
++ free_irq (EP93XX_MMC_SPI_CARD_PRESENT, mmc);
++}
++
++static struct mmc_spi_platform_data ep93xx_spi_pdata = {
++ .init = &ep93xx_mmc_spi_init,
++ .exit = &ep93xx_mmc_spi_exit,
++ .get_ro = NULL,
++ .detect_delay = 500, /* card detection delay in msec */
++ .ocr_mask = MMC_VDD_33_34,
++};
++
++static struct spi_board_info ep93xx_spi_board_info[] __initdata = {
++ {
++ .modalias = "mmc_spi",
++ .max_speed_hz = 7.4E6, /* max spi clock (SCK) speed in HZ */
++ .bus_num = 0,
++ .chip_select = 0,
++ .platform_data = (void*) &ep93xx_spi_pdata,
++ .controller_data = NULL,
++ .mode = SPI_MODE_0,
++ }
++};
++#endif
++static struct ep93xx_eth_data ep93xx_eth_data = {
++ .dev_addr = { 0x00, 0xba, 0xd0, 0x0b, 0xad, 0x00 },
++};
++
++static struct resource ep93xx_eth_resource[] = {
++ {
++ .start = EP93XX_ETHERNET_PHYS_BASE,
++ .end = EP93XX_ETHERNET_PHYS_BASE + 0xffff,
++ .flags = IORESOURCE_MEM,
++ }, {
++ .start = IRQ_EP93XX_ETHERNET,
++ .end = IRQ_EP93XX_ETHERNET,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++static struct platform_device ep93xx_eth_device = {
++ .name = "ep93xx-eth",
++ .id = -1,
++ .dev = {
++ .platform_data = &ep93xx_eth_data,
++ },
++ .num_resources = ARRAY_SIZE(ep93xx_eth_resource),
++ .resource = ep93xx_eth_resource,
++};
++
++static void __init simone_init_machine(void)
++{
++ ep93xx_init_devices();
++ /* Switch off the LCD backlight*/
++ gpio_request(EP93XX_GPIO_LINE_B(5), "lcd");
++ gpio_direction_output (EP93XX_GPIO_LINE_B(5), 0);
++ platform_device_register(&simone_flash);
++ platform_device_register(&ep93xx_ac97_device);
++ platform_device_register(&ep93xx_eth_device);
++#if defined(CONFIG_SPI_EP93XX) || defined(CONFIG_SPI_EP93XX_MODULE)
++ dev_set_name(&ep93xx_spi_device.dev, "apb:spi");
++ platform_device_register(&ep93xx_spi_device);
++ spi_register_board_info(ep93xx_spi_board_info,ARRAY_SIZE(ep93xx_spi_board_info));
++#endif
++}
++
++MACHINE_START(SIM_ONE, "Simplemachine SimONE Board")
++ /* Maintainer: Nuccio Raciti Simplemachine <nuccio.raciti@gmail.com>*/
++ .phys_io = EP93XX_APB_PHYS_BASE,
++ .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc,
++ .boot_params = 0x00000100,
++ .map_io = ep93xx_map_io,
++ .init_irq = ep93xx_init_irq,
++ .timer = &ep93xx_timer,
++ .init_machine = simone_init_machine,
++MACHINE_END
diff --git a/recipes/linux/linux-bfin_svn.bb b/recipes/linux/linux-bfin_svn.bb
index d7402e606a..9b1b4e1a46 100644
--- a/recipes/linux/linux-bfin_svn.bb
+++ b/recipes/linux/linux-bfin_svn.bb
@@ -2,7 +2,7 @@ require linux.inc
COMPATIBLE_HOST = 'bfin.*-uclinux'
-PV = "2.6.22.10+svnr${SRCREV}"
+PV = "2.6.22.10+svnr${SRCPV}"
SRC_URI = "svn://sources.blackfin.uclinux.org/linux-kernel/;module=trunk \
file://defconfig \
diff --git a/recipes/linux/linux-bug_2.6.27.2.bb b/recipes/linux/linux-bug_2.6.27.2.bb
index bb4d11fb3a..85ed0a9bb7 100644
--- a/recipes/linux/linux-bug_2.6.27.2.bb
+++ b/recipes/linux/linux-bug_2.6.27.2.bb
@@ -2,12 +2,12 @@ DESCRIPTION = "Linux kernel for bug"
PV_append = "+svnr${SRCREV}"
KV = "2.6.27.2"
-PR = "r30"
+PR = "r31"
COMPATIBLE_MACHINE = "bug"
SVN_PRJ = "bug-linux-${KV}"
-SRCREV = "10371"
+SRCREV = "10550"
SRC_URI = "svn://svn.buglabs.net/bug/branches/R1.4/qa;module=${SVN_PRJ};proto=svn \
file://defconfig \
@@ -46,5 +46,6 @@ module_autoload_bugpm = "bugpm"
module_autoload_bugpm_apm = "bugpm_apm"
module_autoload_rtc-isl12026 = "rtc-isl12026"
module_autoload_bug_v4l2_capture = "bug_v4l2_capture"
+module_autoload_libertas_sdio = "libertas_sdio"
# bmi_lcd_core loaded to ensure xserver device nodes are created on boot.
module_autoload_bmi_lcd_core = "bmi_lcd_core"
diff --git a/recipes/linux/linux-davinci/da830-omapl137-evm/defconfig b/recipes/linux/linux-davinci/da830-omapl137-evm/defconfig
index fc6e2c4bac..daba419b1a 100644
--- a/recipes/linux/linux-davinci/da830-omapl137-evm/defconfig
+++ b/recipes/linux/linux-davinci/da830-omapl137-evm/defconfig
@@ -1,15 +1,13 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.30-rc2-davinci1
-# Wed May 13 15:33:29 2009
+# Linux kernel version: 2.6.32-rc6
+# Wed Nov 18 00:03:39 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_MMU=y
-# CONFIG_NO_IOPORT is not set
CONFIG_GENERIC_HARDIRQS=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -18,14 +16,13 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
-# CONFIG_ARCH_HAS_ILOG2_U32 is not set
-# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ZONE_DMA=y
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
CONFIG_VECTORS_BASE=0xffff0000
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_CONSTRUCTORS=y
#
# General setup
@@ -36,7 +33,7 @@ CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
-# CONFIG_SWAP is not set
+CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
@@ -48,11 +45,12 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
#
# RCU Subsystem
#
-CONFIG_CLASSIC_RCU=y
-# CONFIG_TREE_RCU is not set
-# CONFIG_PREEMPT_RCU is not set
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_PREEMPT_RCU_TRACE is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
@@ -62,7 +60,6 @@ CONFIG_FAIR_GROUP_SCHED=y
CONFIG_USER_SCHED=y
# CONFIG_CGROUP_SCHED is not set
# CONFIG_CGROUPS is not set
-# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
# CONFIG_RELAY is not set
# CONFIG_NAMESPACES is not set
@@ -78,9 +75,7 @@ CONFIG_EMBEDDED=y
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
-# CONFIG_STRIP_ASM_SYMS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
@@ -93,6 +88,10 @@ CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
+
+#
+# Kernel Performance Events And Counters
+#
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
CONFIG_COMPAT_BRK=y
@@ -100,12 +99,15 @@ CONFIG_COMPAT_BRK=y
CONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
-# CONFIG_MARKERS is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_CLK=y
+
+#
+# GCOV-based kernel profiling
+#
# CONFIG_SLOW_WORK is not set
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=y
@@ -118,7 +120,7 @@ CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_BLOCK=y
-# CONFIG_LBD is not set
+CONFIG_LBDAF=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_BLK_DEV_INTEGRITY is not set
@@ -139,19 +141,22 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# System Type
#
+CONFIG_MMU=y
# CONFIG_ARCH_AAEC2000 is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_REALVIEW is not set
# CONFIG_ARCH_VERSATILE is not set
# CONFIG_ARCH_AT91 is not set
# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_GEMINI is not set
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_EP93XX is not set
-# CONFIG_ARCH_GEMINI is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_STMP3XXX is not set
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_H720X is not set
-# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_NOMADIK is not set
# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
# CONFIG_ARCH_IOP33X is not set
@@ -160,25 +165,27 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_IXP4XX is not set
# CONFIG_ARCH_L7200 is not set
# CONFIG_ARCH_KIRKWOOD is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_NS9XXX is not set
# CONFIG_ARCH_LOKI is not set
# CONFIG_ARCH_MV78XX0 is not set
-# CONFIG_ARCH_MXC is not set
# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_MMP is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_W90X900 is not set
# CONFIG_ARCH_PNX4008 is not set
# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_MMP is not set
+# CONFIG_ARCH_MSM is not set
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5PC1XX is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_U300 is not set
CONFIG_ARCH_DAVINCI=y
# CONFIG_ARCH_OMAP is not set
-# CONFIG_ARCH_MSM is not set
-# CONFIG_ARCH_W90X900 is not set
+# CONFIG_ARCH_BCMRING is not set
CONFIG_CP_INTC=y
#
@@ -189,18 +196,25 @@ CONFIG_CP_INTC=y
# DaVinci Core Type
#
# CONFIG_ARCH_DAVINCI_DM644x is not set
-# CONFIG_ARCH_DAVINCI_DM646x is not set
# CONFIG_ARCH_DAVINCI_DM355 is not set
+# CONFIG_ARCH_DAVINCI_DM646x is not set
CONFIG_ARCH_DAVINCI_DA830=y
+# CONFIG_ARCH_DAVINCI_DA850 is not set
+CONFIG_ARCH_DAVINCI_DA8XX=y
+# CONFIG_ARCH_DAVINCI_DM365 is not set
+CONFIG_CPPI41=y
#
# DaVinci Board Type
#
CONFIG_MACH_DAVINCI_DA830_EVM=y
+CONFIG_DA830_UI_LCD=y
+# CONFIG_DA830_UI_NAND is not set
CONFIG_DAVINCI_MUX=y
# CONFIG_DAVINCI_MUX_DEBUG is not set
# CONFIG_DAVINCI_MUX_WARNINGS is not set
CONFIG_DAVINCI_RESET_CLOCKS=y
+# CONFIG_DAVINCI_MCBSP is not set
#
# Processor Type
@@ -209,7 +223,7 @@ CONFIG_CPU_32=y
CONFIG_CPU_ARM926T=y
CONFIG_CPU_32v5=y
CONFIG_CPU_ABRT_EV5TJ=y
-CONFIG_CPU_PABRT_NOIFAR=y
+CONFIG_CPU_PABRT_LEGACY=y
CONFIG_CPU_CACHE_VIVT=y
CONFIG_CPU_COPY_V4WB=y
CONFIG_CPU_TLB_V4WBI=y
@@ -224,7 +238,7 @@ CONFIG_ARM_THUMB=y
# CONFIG_CPU_DCACHE_DISABLE is not set
CONFIG_CPU_DCACHE_WRITETHROUGH=y
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
-# CONFIG_OUTER_CACHE is not set
+CONFIG_ARM_L1_CACHE_SHIFT=5
CONFIG_COMMON_CLKDEV=y
#
@@ -245,11 +259,13 @@ CONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not set
CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_HZ=100
CONFIG_AEABI=y
-# CONFIG_OABI_COMPAT is not set
-CONFIG_ARCH_FLATMEM_HAS_HOLES=y
+CONFIG_OABI_COMPAT=y
+CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
# CONFIG_HIGHMEM is not set
@@ -265,12 +281,14 @@ CONFIG_SPLIT_PTLOCK_CPUS=4096
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
-CONFIG_UNEVICTABLE_LRU=y
CONFIG_HAVE_MLOCK=y
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+# CONFIG_KSM is not set
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_LEDS=y
# CONFIG_LEDS_CPU is not set
CONFIG_ALIGNMENT_TRAP=y
+# CONFIG_UACCESS_WITH_MEMCPY is not set
#
# Boot options
@@ -293,6 +311,8 @@ CONFIG_CMDLINE=""
#
# At least one emulation must be selected
#
+# CONFIG_FPE_NWFPE is not set
+# CONFIG_FPE_FASTFPE is not set
# CONFIG_VFP is not set
#
@@ -398,6 +418,7 @@ CONFIG_NETFILTER_ADVANCED=y
# CONFIG_IP6_NF_IPTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
@@ -412,6 +433,7 @@ CONFIG_NETFILTER_ADVANCED=y
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_PHONET is not set
+# CONFIG_IEEE802154 is not set
# CONFIG_NET_SCHED is not set
# CONFIG_DCB is not set
@@ -437,26 +459,104 @@ CONFIG_NETFILTER_ADVANCED=y
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
-# CONFIG_MTD is not set
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_TESTS is not set
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_DATAFLASH is not set
+CONFIG_MTD_M25P80=y
+CONFIG_M25PXX_USE_FAST_READ=y
+# CONFIG_MTD_SST25L is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+# CONFIG_MTD_NAND is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+
+#
+# UBI - Unsorted block images
+#
+# CONFIG_MTD_UBI is not set
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=1
CONFIG_BLK_DEV_RAM_SIZE=32768
# CONFIG_BLK_DEV_XIP is not set
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_MG_DISK is not set
CONFIG_MISC_DEVICES=y
# CONFIG_ICS932S401 is not set
# CONFIG_ENCLOSURE_SERVICES is not set
@@ -467,7 +567,9 @@ CONFIG_MISC_DEVICES=y
# EEPROM support
#
CONFIG_EEPROM_AT24=y
+# CONFIG_EEPROM_AT25 is not set
# CONFIG_EEPROM_LEGACY is not set
+# CONFIG_EEPROM_MAX6875 is not set
# CONFIG_EEPROM_93CX6 is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
@@ -476,7 +578,7 @@ CONFIG_HAVE_IDE=y
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=m
+CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
# CONFIG_SCSI_TGT is not set
# CONFIG_SCSI_NETLINK is not set
@@ -485,16 +587,12 @@ CONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#
-CONFIG_BLK_DEV_SD=m
+CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
# CONFIG_BLK_DEV_SR is not set
# CONFIG_CHR_DEV_SG is not set
# CONFIG_CHR_DEV_SCH is not set
-
-#
-# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-#
# CONFIG_SCSI_MULTI_LUN is not set
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
@@ -519,7 +617,6 @@ CONFIG_SCSI_LOWLEVEL=y
# CONFIG_ATA is not set
# CONFIG_MD is not set
CONFIG_NETDEVICES=y
-CONFIG_COMPAT_NET_DEV_OPS=y
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_MACVLAN is not set
@@ -552,6 +649,7 @@ CONFIG_MII=y
# CONFIG_SMC91X is not set
CONFIG_TI_DAVINCI_EMAC=y
# CONFIG_DM9000 is not set
+# CONFIG_ENC28J60 is not set
# CONFIG_ETHOC is not set
# CONFIG_SMC911X is not set
# CONFIG_SMSC911X is not set
@@ -564,18 +662,27 @@ CONFIG_TI_DAVINCI_EMAC=y
# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
# CONFIG_B44 is not set
+# CONFIG_KS8842 is not set
+# CONFIG_KS8851 is not set
+# CONFIG_KS8851_MLL is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
-
-#
-# Wireless LAN
-#
+CONFIG_WLAN=y
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
#
# Enable WiMAX (Networking options) to see the WiMAX drivers
#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
# CONFIG_WAN is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
@@ -585,6 +692,7 @@ CONFIG_NETPOLL=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
#
# Input device support
@@ -608,31 +716,43 @@ CONFIG_INPUT_EVBUG=m
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADP5588 is not set
CONFIG_KEYBOARD_ATKBD=m
-# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_QT2160 is not set
# CONFIG_KEYBOARD_LKKBD is not set
-CONFIG_KEYBOARD_XTKBD=m
+CONFIG_KEYBOARD_GPIO=y
+# CONFIG_KEYBOARD_MATRIX is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
-CONFIG_KEYBOARD_GPIO=y
+# CONFIG_KEYBOARD_SUNKBD is not set
+CONFIG_KEYBOARD_XTKBD=m
# CONFIG_INPUT_MOUSE is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
+# CONFIG_TOUCHSCREEN_AD7877 is not set
# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
+# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
# CONFIG_TOUCHSCREEN_AD7879 is not set
+# CONFIG_TOUCHSCREEN_EETI is not set
# CONFIG_TOUCHSCREEN_FUJITSU is not set
# CONFIG_TOUCHSCREEN_GUNZE is not set
# CONFIG_TOUCHSCREEN_ELO is not set
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
+# CONFIG_TOUCHSCREEN_MCS5000 is not set
# CONFIG_TOUCHSCREEN_MTOUCH is not set
# CONFIG_TOUCHSCREEN_INEXIO is not set
# CONFIG_TOUCHSCREEN_MK712 is not set
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
# CONFIG_TOUCHSCREEN_TSC2007 is not set
+# CONFIG_TOUCHSCREEN_W90X900 is not set
# CONFIG_INPUT_MISC is not set
#
@@ -667,12 +787,13 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=3
#
# Non-8250 serial port support
#
+# CONFIG_SERIAL_MAX3100 is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
CONFIG_LEGACY_PTYS=y
-CONFIG_LEGACY_PTY_COUNT=256
+CONFIG_LEGACY_PTY_COUNT=8
# CONFIG_IPMI_HANDLER is not set
CONFIG_HW_RANDOM=m
# CONFIG_HW_RANDOM_TIMERIOMEM is not set
@@ -681,6 +802,7 @@ CONFIG_HW_RANDOM=m
# CONFIG_TCG_TPM is not set
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_HELPER_AUTO=y
@@ -692,6 +814,7 @@ CONFIG_I2C_HELPER_AUTO=y
# I2C system bus drivers (mostly embedded / system-on-chip)
#
CONFIG_I2C_DAVINCI=y
+# CONFIG_I2C_DESIGNWARE is not set
# CONFIG_I2C_GPIO is not set
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_SIMTEC is not set
@@ -701,6 +824,7 @@ CONFIG_I2C_DAVINCI=y
#
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_TINY_USB is not set
#
# Other I2C/SMBus bus drivers
@@ -712,17 +836,34 @@ CONFIG_I2C_DAVINCI=y
# Miscellaneous I2C Chip support
#
# CONFIG_DS1682 is not set
-# CONFIG_SENSORS_PCA9539 is not set
-# CONFIG_SENSORS_MAX6875 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set
-# CONFIG_SPI is not set
+CONFIG_SPI=y
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_DAVINCI=y
+CONFIG_SPI_DAVINCI_DMA=y
+CONFIG_SPI_BITBANG=y
+# CONFIG_SPI_GPIO is not set
+
+#
+# SPI Protocol Masters
+#
+# CONFIG_SPI_SPIDEV is not set
+# CONFIG_SPI_TLE62X0 is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
-# CONFIG_DEBUG_GPIO is not set
# CONFIG_GPIO_SYSFS is not set
#
@@ -733,8 +874,8 @@ CONFIG_GPIOLIB=y
# I2C GPIO expanders:
#
# CONFIG_GPIO_MAX732X is not set
-# CONFIG_GPIO_PCA953X is not set
-CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_PCA953X=y
+CONFIG_GPIO_PCF857X=y
#
# PCI GPIO expanders:
@@ -743,11 +884,17 @@ CONFIG_GPIO_PCF857X=m
#
# SPI GPIO expanders:
#
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
+
+#
+# AC97 GPIO expanders:
+#
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
# CONFIG_HWMON is not set
# CONFIG_THERMAL is not set
-# CONFIG_THERMAL_HWMON is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
@@ -755,7 +902,12 @@ CONFIG_WATCHDOG=y
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
-# CONFIG_DAVINCI_WATCHDOG is not set
+CONFIG_DAVINCI_WATCHDOG=y
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
CONFIG_SSB_POSSIBLE=y
#
@@ -779,31 +931,49 @@ CONFIG_SSB_POSSIBLE=y
# CONFIG_MFD_TC6393XB is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_PCF50633 is not set
-
-#
-# Multimedia devices
-#
-
-#
-# Multimedia core support
-#
-# CONFIG_VIDEO_DEV is not set
-# CONFIG_DVB_CORE is not set
-# CONFIG_VIDEO_MEDIA is not set
-
-#
-# Multimedia drivers
-#
-# CONFIG_DAB is not set
+# CONFIG_MFD_MC13783 is not set
+# CONFIG_AB3100_CORE is not set
+# CONFIG_EZX_PCAP is not set
+# CONFIG_REGULATOR is not set
+# CONFIG_MEDIA_SUPPORT is not set
#
# Graphics support
#
# CONFIG_VGASTATE is not set
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
-# CONFIG_FB is not set
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_SYS_FOPS is not set
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_DAVINCI is not set
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_FB_DA8XX=y
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
#
@@ -816,11 +986,21 @@ CONFIG_SSB_POSSIBLE=y
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
-CONFIG_SOUND=m
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_SOUND=y
# CONFIG_SOUND_OSS_CORE is not set
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
CONFIG_SND_JACK=y
# CONFIG_SND_SEQUENCER is not set
# CONFIG_SND_MIXER_OSS is not set
@@ -831,57 +1011,324 @@ CONFIG_SND_SUPPORT_OLD_API=y
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
+# CONFIG_SND_RAWMIDI_SEQ is not set
+# CONFIG_SND_OPL3_LIB_SEQ is not set
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+# CONFIG_SND_SBAWE_SEQ is not set
+# CONFIG_SND_EMU10K1_SEQ is not set
CONFIG_SND_DRIVERS=y
# CONFIG_SND_DUMMY is not set
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set
CONFIG_SND_ARM=y
-CONFIG_SND_SOC=m
-CONFIG_SND_DAVINCI_SOC=m
-CONFIG_SND_SOC_I2C_AND_SPI=m
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+# CONFIG_SND_USB_AUDIO is not set
+# CONFIG_SND_USB_CAIAQ is not set
+CONFIG_SND_SOC=y
+CONFIG_SND_DAVINCI_SOC=y
+CONFIG_SND_DAVINCI_SOC_MCASP=y
+CONFIG_SND_DA830_SOC_EVM=y
+CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_ALL_CODECS is not set
+CONFIG_SND_SOC_TLV320AIC3X=y
# CONFIG_SOUND_PRIME is not set
-# CONFIG_HID_SUPPORT is not set
-# CONFIG_USB_SUPPORT is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+# CONFIG_HIDRAW is not set
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=y
+# CONFIG_HID_PID is not set
+# CONFIG_USB_HIDDEV is not set
+
+#
+# Special HID drivers
+#
+# CONFIG_HID_A4TECH is not set
+# CONFIG_HID_APPLE is not set
+# CONFIG_HID_BELKIN is not set
+# CONFIG_HID_CHERRY is not set
+# CONFIG_HID_CHICONY is not set
+# CONFIG_HID_CYPRESS is not set
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EZKEY is not set
+# CONFIG_HID_KYE is not set
+# CONFIG_HID_GYRATION is not set
+# CONFIG_HID_TWINHAN is not set
+# CONFIG_HID_KENSINGTON is not set
+# CONFIG_HID_LOGITECH is not set
+# CONFIG_HID_MICROSOFT is not set
+# CONFIG_HID_MONTEREY is not set
+# CONFIG_HID_NTRIG is not set
+# CONFIG_HID_PANTHERLORD is not set
+# CONFIG_HID_PETALYNX is not set
+# CONFIG_HID_SAMSUNG is not set
+# CONFIG_HID_SONY is not set
+# CONFIG_HID_SUNPLUS is not set
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_ZEROPLUS is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+# CONFIG_USB_DEVICEFS is not set
+# CONFIG_USB_DEVICE_CLASS is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+# CONFIG_USB_MON is not set
+# CONFIG_USB_WUSB is not set
+# CONFIG_USB_WUSB_CBAF is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_HWA_HCD is not set
+CONFIG_USB_MUSB_HDRC=y
+CONFIG_USB_MUSB_SOC=y
+
+#
+# DA830/OMAP-L137 USB support
+#
# CONFIG_USB_MUSB_HOST is not set
# CONFIG_USB_MUSB_PERIPHERAL is not set
+CONFIG_USB_MUSB_DUAL_ROLE=y
# CONFIG_USB_MUSB_OTG is not set
-# CONFIG_USB_GADGET_MUSB_HDRC is not set
+CONFIG_USB_GADGET_MUSB_HDRC=y
+CONFIG_USB_MUSB_HDRC_HCD=y
+# CONFIG_MUSB_PIO_ONLY is not set
+# CONFIG_USB_INVENTRA_DMA is not set
+# CONFIG_USB_TI_CPPI_DMA is not set
+CONFIG_USB_TI_CPPI41_DMA=y
+CONFIG_USB_MUSB_DEBUG=y
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+# CONFIG_USB_WDM is not set
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_STORAGE_ALAUDA is not set
+# CONFIG_USB_STORAGE_ONETOUCH is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB port drivers
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_SEVSEG is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_BERRY_CHARGE is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_SISUSBVGA is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+# CONFIG_USB_TEST is not set
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_VST is not set
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_SELECTED=y
# CONFIG_USB_GADGET_AT91 is not set
# CONFIG_USB_GADGET_ATMEL_USBA is not set
# CONFIG_USB_GADGET_FSL_USB2 is not set
# CONFIG_USB_GADGET_LH7A40X is not set
# CONFIG_USB_GADGET_OMAP is not set
# CONFIG_USB_GADGET_PXA25X is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
# CONFIG_USB_GADGET_PXA27X is not set
-# CONFIG_USB_GADGET_S3C2410 is not set
+# CONFIG_USB_GADGET_S3C_HSOTG is not set
# CONFIG_USB_GADGET_IMX is not set
+# CONFIG_USB_GADGET_S3C2410 is not set
# CONFIG_USB_GADGET_M66592 is not set
# CONFIG_USB_GADGET_AMD5536UDC is not set
# CONFIG_USB_GADGET_FSL_QE is not set
# CONFIG_USB_GADGET_CI13XXX is not set
# CONFIG_USB_GADGET_NET2280 is not set
# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LANGWELL is not set
# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GADGET_DUALSPEED=y
# CONFIG_USB_ZERO is not set
-# CONFIG_USB_ETH is not set
+# CONFIG_USB_AUDIO is not set
+CONFIG_USB_ETH=y
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_ETH_EEM is not set
# CONFIG_USB_GADGETFS is not set
# CONFIG_USB_FILE_STORAGE is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_MIDI_GADGET is not set
# CONFIG_USB_G_PRINTER is not set
# CONFIG_USB_CDC_COMPOSITE is not set
-# CONFIG_MMC is not set
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+# CONFIG_USB_GPIO_VBUS is not set
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_BOUNCE=y
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+# CONFIG_MMC_SDHCI is not set
+# CONFIG_MMC_AT91 is not set
+# CONFIG_MMC_ATMELMCI is not set
+CONFIG_MMC_DAVINCI=y
+# CONFIG_MMC_SPI is not set
# CONFIG_MEMSTICK is not set
-# CONFIG_ACCESSIBILITY is not set
# CONFIG_NEW_LEDS is not set
+# CONFIG_ACCESSIBILITY is not set
CONFIG_RTC_LIB=y
-# CONFIG_RTC_CLASS is not set
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+# CONFIG_RTC_DRV_RX8025 is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_DS3234 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_OMAP=y
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
-# CONFIG_REGULATOR is not set
# CONFIG_UIO is not set
+
+#
+# TI VLYNQ
+#
# CONFIG_STAGING is not set
#
@@ -897,19 +1344,21 @@ CONFIG_EXT3_FS_XATTR=y
# CONFIG_EXT3_FS_SECURITY is not set
# CONFIG_EXT4_FS is not set
CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_FS_POSIX_ACL is not set
-CONFIG_FILE_LOCKING=y
CONFIG_XFS_FS=m
# CONFIG_XFS_QUOTA is not set
# CONFIG_XFS_POSIX_ACL is not set
# CONFIG_XFS_RT is not set
# CONFIG_XFS_DEBUG is not set
+# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
@@ -958,6 +1407,17 @@ CONFIG_MISC_FILESYSTEMS=y
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
CONFIG_CRAMFS=y
# CONFIG_SQUASHFS is not set
# CONFIG_VXFS_FS is not set
@@ -968,7 +1428,6 @@ CONFIG_MINIX_FS=m
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
-# CONFIG_NILFS2_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
@@ -1060,83 +1519,30 @@ CONFIG_NLS_UTF8=m
# Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
-CONFIG_ENABLE_WARN_DEPRECATED=y
-CONFIG_ENABLE_MUST_CHECK=y
+# CONFIG_ENABLE_WARN_DEPRECATED is not set
+# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_FRAME_WARN=1024
# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_UNUSED_SYMBOLS is not set
-CONFIG_DEBUG_FS=y
+# CONFIG_DEBUG_FS is not set
# CONFIG_HEADERS_CHECK is not set
-CONFIG_DEBUG_KERNEL=y
-# CONFIG_DEBUG_SHIRQ is not set
-CONFIG_DETECT_SOFTLOCKUP=y
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
-CONFIG_DETECT_HUNG_TASK=y
-# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
-CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
-CONFIG_SCHED_DEBUG=y
-# CONFIG_SCHEDSTATS is not set
-CONFIG_TIMER_STATS=y
-# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_DEBUG_KERNEL is not set
# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_SLUB_STATS is not set
-CONFIG_DEBUG_PREEMPT=y
-CONFIG_DEBUG_RT_MUTEXES=y
-CONFIG_DEBUG_PI_LIST=y
-# CONFIG_RT_MUTEX_TESTER is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-CONFIG_DEBUG_MUTEXES=y
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-# CONFIG_DEBUG_KOBJECT is not set
-CONFIG_DEBUG_BUGVERBOSE=y
-# CONFIG_DEBUG_INFO is not set
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_WRITECOUNT is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_DEBUG_MEMORY_INIT is not set
-# CONFIG_DEBUG_LIST is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_BOOT_PRINTK_DELAY is not set
-# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_FRAME_POINTER=y
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
-# CONFIG_PAGE_POISONING is not set
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_TRACING_SUPPORT=y
-
-#
-# Tracers
-#
-# CONFIG_FUNCTION_TRACER is not set
-# CONFIG_IRQSOFF_TRACER is not set
-# CONFIG_PREEMPT_TRACER is not set
-# CONFIG_SCHED_TRACER is not set
-# CONFIG_CONTEXT_SWITCH_TRACER is not set
-# CONFIG_EVENT_TRACER is not set
-# CONFIG_BOOT_TRACER is not set
-# CONFIG_TRACE_BRANCH_PROFILING is not set
-# CONFIG_STACK_TRACER is not set
-# CONFIG_KMEMTRACE is not set
-# CONFIG_WORKQUEUE_TRACER is not set
-# CONFIG_BLK_DEV_IO_TRACE is not set
-# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_FTRACE is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_KGDB is not set
-CONFIG_ARM_UNWIND=y
-CONFIG_DEBUG_USER=y
-CONFIG_DEBUG_ERRORS=y
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_LL is not set
+# CONFIG_ARM_UNWIND is not set
+# CONFIG_DEBUG_USER is not set
#
# Security options
@@ -1150,7 +1556,6 @@ CONFIG_CRYPTO=y
#
# Crypto core or helper
#
-# CONFIG_CRYPTO_FIPS is not set
# CONFIG_CRYPTO_MANAGER is not set
# CONFIG_CRYPTO_MANAGER2 is not set
# CONFIG_CRYPTO_GF128MUL is not set
@@ -1182,11 +1587,13 @@ CONFIG_CRYPTO=y
#
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
#
# Digest
#
# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_GHASH is not set
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_MD5 is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -1246,6 +1653,7 @@ CONFIG_CRC32=y
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
CONFIG_DECOMPRESS_GZIP=y
CONFIG_GENERIC_ALLOCATOR=y
CONFIG_HAS_IOMEM=y
diff --git a/recipes/linux/linux-davinci/da850-omapl138-evm/defconfig b/recipes/linux/linux-davinci/da850-omapl138-evm/defconfig
index 3432146ac6..05bc1e74e6 100644
--- a/recipes/linux/linux-davinci/da850-omapl138-evm/defconfig
+++ b/recipes/linux/linux-davinci/da850-omapl138-evm/defconfig
@@ -1,14 +1,13 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.31-rc7-davinci1
-# Mon Sep 14 12:33:57 2009
+# Linux kernel version: 2.6.32-rc6
+# Wed Nov 18 00:04:22 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -17,6 +16,7 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_ARCH_HAS_CPUFREQ=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ZONE_DMA=y
@@ -34,7 +34,7 @@ CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
-# CONFIG_SWAP is not set
+CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
@@ -46,11 +46,12 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
#
# RCU Subsystem
#
-CONFIG_CLASSIC_RCU=y
-# CONFIG_TREE_RCU is not set
-# CONFIG_PREEMPT_RCU is not set
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_PREEMPT_RCU_TRACE is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
@@ -60,7 +61,6 @@ CONFIG_FAIR_GROUP_SCHED=y
CONFIG_USER_SCHED=y
# CONFIG_CGROUP_SCHED is not set
# CONFIG_CGROUPS is not set
-# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
# CONFIG_RELAY is not set
# CONFIG_NAMESPACES is not set
@@ -76,7 +76,6 @@ CONFIG_EMBEDDED=y
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
@@ -92,17 +91,15 @@ CONFIG_SHMEM=y
CONFIG_AIO=y
#
-# Performance Counters
+# Kernel Performance Events And Counters
#
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
-# CONFIG_STRIP_ASM_SYMS is not set
CONFIG_COMPAT_BRK=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
-# CONFIG_MARKERS is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
@@ -112,7 +109,6 @@ CONFIG_HAVE_CLK=y
#
# GCOV-based kernel profiling
#
-# CONFIG_GCOV_KERNEL is not set
# CONFIG_SLOW_WORK is not set
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=y
@@ -146,6 +142,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# System Type
#
+CONFIG_MMU=y
# CONFIG_ARCH_AAEC2000 is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_REALVIEW is not set
@@ -160,6 +157,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_STMP3XXX is not set
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_NOMADIK is not set
# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
# CONFIG_ARCH_IOP33X is not set
@@ -182,11 +180,13 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5PC1XX is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_U300 is not set
CONFIG_ARCH_DAVINCI=y
# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_BCMRING is not set
CONFIG_CP_INTC=y
#
@@ -203,17 +203,22 @@ CONFIG_CP_INTC=y
CONFIG_ARCH_DAVINCI_DA850=y
CONFIG_ARCH_DAVINCI_DA8XX=y
# CONFIG_ARCH_DAVINCI_DM365 is not set
+CONFIG_CPPI41=y
#
# DaVinci Board Type
#
CONFIG_MACH_DAVINCI_DA850_EVM=y
+CONFIG_DA850_UI_NONE=y
+# CONFIG_DA850_UI_RMII is not set
+# CONFIG_DA850_UI_CLCD is not set
CONFIG_DAVINCI_MUX=y
# CONFIG_DAVINCI_MUX_DEBUG is not set
# CONFIG_DAVINCI_MUX_WARNINGS is not set
CONFIG_DAVINCI_RESET_CLOCKS=y
-# CONFIG_DAVINCI_MCBSP is not set
-# CONFIG_DA850_RMII is not set
+CONFIG_DAVINCI_MCBSP=y
+# CONFIG_DAVINCI_MCBSP0 is not set
+CONFIG_DAVINCI_MCBSP1=y
#
# Processor Type
@@ -222,7 +227,7 @@ CONFIG_CPU_32=y
CONFIG_CPU_ARM926T=y
CONFIG_CPU_32v5=y
CONFIG_CPU_ABRT_EV5TJ=y
-CONFIG_CPU_PABRT_NOIFAR=y
+CONFIG_CPU_PABRT_LEGACY=y
CONFIG_CPU_CACHE_VIVT=y
CONFIG_CPU_COPY_V4WB=y
CONFIG_CPU_TLB_V4WBI=y
@@ -237,6 +242,7 @@ CONFIG_ARM_THUMB=y
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+CONFIG_ARM_L1_CACHE_SHIFT=5
CONFIG_COMMON_CLKDEV=y
#
@@ -257,10 +263,12 @@ CONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not set
CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_HZ=100
CONFIG_AEABI=y
-# CONFIG_OABI_COMPAT is not set
+CONFIG_OABI_COMPAT=y
CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
@@ -279,6 +287,7 @@ CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_HAVE_MLOCK=y
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_LEDS=y
# CONFIG_LEDS_CPU is not set
@@ -297,8 +306,24 @@ CONFIG_CMDLINE=""
#
# CPU Power Management
#
-# CONFIG_CPU_FREQ is not set
-# CONFIG_CPU_IDLE is not set
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+# CONFIG_CPU_FREQ_DEBUG is not set
+CONFIG_CPU_FREQ_STAT=y
+# CONFIG_CPU_FREQ_STAT_DETAILS is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
#
# Floating point emulation
@@ -307,6 +332,8 @@ CONFIG_CMDLINE=""
#
# At least one emulation must be selected
#
+# CONFIG_FPE_NWFPE is not set
+# CONFIG_FPE_FASTFPE is not set
# CONFIG_VFP is not set
#
@@ -412,6 +439,7 @@ CONFIG_NETFILTER_ADVANCED=y
# CONFIG_IP6_NF_IPTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
@@ -452,20 +480,116 @@ CONFIG_NETFILTER_ADVANCED=y
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
-# CONFIG_MTD is not set
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_TESTS is not set
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_CFI_INTELEXT=y
+# CONFIG_MTD_CFI_AMDSTD is not set
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+CONFIG_MTD_PHYSMAP=y
+# CONFIG_MTD_PHYSMAP_COMPAT is not set
+# CONFIG_MTD_ARM_INTEGRATOR is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_DATAFLASH is not set
+CONFIG_MTD_M25P80=y
+CONFIG_M25PXX_USE_FAST_READ=y
+# CONFIG_MTD_SST25L is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_NAND=y
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_NAND_ECC_SMC is not set
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+# CONFIG_MTD_NAND_GPIO is not set
+CONFIG_MTD_NAND_IDS=y
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+# CONFIG_MTD_NAND_NANDSIM is not set
+# CONFIG_MTD_NAND_PLATFORM is not set
+# CONFIG_MTD_ALAUDA is not set
+CONFIG_MTD_NAND_DAVINCI=y
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+
+#
+# UBI - Unsorted block images
+#
+# CONFIG_MTD_UBI is not set
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=1
CONFIG_BLK_DEV_RAM_SIZE=32768
@@ -483,6 +607,7 @@ CONFIG_MISC_DEVICES=y
# EEPROM support
#
CONFIG_EEPROM_AT24=y
+# CONFIG_EEPROM_AT25 is not set
# CONFIG_EEPROM_LEGACY is not set
# CONFIG_EEPROM_MAX6875 is not set
# CONFIG_EEPROM_93CX6 is not set
@@ -493,7 +618,7 @@ CONFIG_HAVE_IDE=y
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=m
+CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
# CONFIG_SCSI_TGT is not set
# CONFIG_SCSI_NETLINK is not set
@@ -502,7 +627,7 @@ CONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#
-CONFIG_BLK_DEV_SD=m
+CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
# CONFIG_BLK_DEV_SR is not set
@@ -529,7 +654,12 @@ CONFIG_SCSI_LOWLEVEL=y
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_DH is not set
# CONFIG_SCSI_OSD_INITIATOR is not set
-# CONFIG_ATA is not set
+CONFIG_ATA=y
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_SATA_PMP=y
+CONFIG_SATA_AHCI=y
+# CONFIG_ATA_SFF is not set
# CONFIG_MD is not set
CONFIG_NETDEVICES=y
# CONFIG_DUMMY is not set
@@ -564,6 +694,7 @@ CONFIG_MII=y
# CONFIG_SMC91X is not set
CONFIG_TI_DAVINCI_EMAC=y
# CONFIG_DM9000 is not set
+# CONFIG_ENC28J60 is not set
# CONFIG_ETHOC is not set
# CONFIG_SMC911X is not set
# CONFIG_SMSC911X is not set
@@ -577,18 +708,26 @@ CONFIG_TI_DAVINCI_EMAC=y
# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
# CONFIG_B44 is not set
# CONFIG_KS8842 is not set
+# CONFIG_KS8851 is not set
+# CONFIG_KS8851_MLL is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
-
-#
-# Wireless LAN
-#
+CONFIG_WLAN=y
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
#
# Enable WiMAX (Networking options) to see the WiMAX drivers
#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
# CONFIG_WAN is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
@@ -598,6 +737,7 @@ CONFIG_NETPOLL=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
#
# Input device support
@@ -621,11 +761,15 @@ CONFIG_INPUT_EVBUG=m
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADP5588 is not set
CONFIG_KEYBOARD_ATKBD=m
+# CONFIG_QT2160 is not set
# CONFIG_KEYBOARD_LKKBD is not set
CONFIG_KEYBOARD_GPIO=y
# CONFIG_KEYBOARD_MATRIX is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
CONFIG_KEYBOARD_XTKBD=m
@@ -633,19 +777,24 @@ CONFIG_KEYBOARD_XTKBD=m
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
+# CONFIG_TOUCHSCREEN_AD7877 is not set
# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
+# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
# CONFIG_TOUCHSCREEN_AD7879 is not set
# CONFIG_TOUCHSCREEN_EETI is not set
# CONFIG_TOUCHSCREEN_FUJITSU is not set
# CONFIG_TOUCHSCREEN_GUNZE is not set
# CONFIG_TOUCHSCREEN_ELO is not set
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
+# CONFIG_TOUCHSCREEN_MCS5000 is not set
# CONFIG_TOUCHSCREEN_MTOUCH is not set
# CONFIG_TOUCHSCREEN_INEXIO is not set
# CONFIG_TOUCHSCREEN_MK712 is not set
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
# CONFIG_TOUCHSCREEN_TSC2007 is not set
# CONFIG_TOUCHSCREEN_W90X900 is not set
@@ -683,6 +832,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=3
#
# Non-8250 serial port support
#
+# CONFIG_SERIAL_MAX3100 is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
@@ -697,6 +847,7 @@ CONFIG_HW_RANDOM=m
# CONFIG_TCG_TPM is not set
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_HELPER_AUTO=y
@@ -718,6 +869,7 @@ CONFIG_I2C_DAVINCI=y
#
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_TINY_USB is not set
#
# Other I2C/SMBus bus drivers
@@ -729,16 +881,34 @@ CONFIG_I2C_DAVINCI=y
# Miscellaneous I2C Chip support
#
# CONFIG_DS1682 is not set
-# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set
-# CONFIG_SPI is not set
+CONFIG_SPI=y
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_DAVINCI=y
+CONFIG_SPI_DAVINCI_DMA=y
+CONFIG_SPI_BITBANG=y
+# CONFIG_SPI_GPIO is not set
+
+#
+# SPI Protocol Masters
+#
+# CONFIG_SPI_SPIDEV is not set
+# CONFIG_SPI_TLE62X0 is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
-# CONFIG_DEBUG_GPIO is not set
# CONFIG_GPIO_SYSFS is not set
#
@@ -749,8 +919,8 @@ CONFIG_GPIOLIB=y
# I2C GPIO expanders:
#
# CONFIG_GPIO_MAX732X is not set
-# CONFIG_GPIO_PCA953X is not set
-CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_PCA953X=y
+CONFIG_GPIO_PCF857X=y
#
# PCI GPIO expanders:
@@ -759,11 +929,17 @@ CONFIG_GPIO_PCF857X=m
#
# SPI GPIO expanders:
#
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
+
+#
+# AC97 GPIO expanders:
+#
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
# CONFIG_HWMON is not set
# CONFIG_THERMAL is not set
-# CONFIG_THERMAL_HWMON is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
@@ -771,7 +947,12 @@ CONFIG_WATCHDOG=y
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
-# CONFIG_DAVINCI_WATCHDOG is not set
+CONFIG_DAVINCI_WATCHDOG=y
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
CONFIG_SSB_POSSIBLE=y
#
@@ -795,9 +976,22 @@ CONFIG_SSB_POSSIBLE=y
# CONFIG_MFD_TC6393XB is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_MC13783 is not set
# CONFIG_AB3100_CORE is not set
+# CONFIG_EZX_PCAP is not set
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+# CONFIG_REGULATOR_BQ24022 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_TPS65023 is not set
+CONFIG_REGULATOR_TPS6507X=y
# CONFIG_MEDIA_SUPPORT is not set
#
@@ -805,7 +999,35 @@ CONFIG_SSB_POSSIBLE=y
#
# CONFIG_VGASTATE is not set
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
-# CONFIG_FB is not set
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_SYS_FOPS is not set
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_DAVINCI is not set
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_FB_DA8XX=y
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
#
@@ -818,11 +1040,21 @@ CONFIG_SSB_POSSIBLE=y
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
-CONFIG_SOUND=m
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_SOUND=y
# CONFIG_SOUND_OSS_CORE is not set
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
CONFIG_SND_JACK=y
# CONFIG_SND_SEQUENCER is not set
# CONFIG_SND_MIXER_OSS is not set
@@ -844,24 +1076,309 @@ CONFIG_SND_DRIVERS=y
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set
CONFIG_SND_ARM=y
-CONFIG_SND_SOC=m
-CONFIG_SND_DAVINCI_SOC=m
-# CONFIG_SND_DA850_SOC_EVM is not set
-CONFIG_SND_SOC_I2C_AND_SPI=m
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+# CONFIG_SND_USB_AUDIO is not set
+# CONFIG_SND_USB_CAIAQ is not set
+CONFIG_SND_SOC=y
+CONFIG_SND_DAVINCI_SOC=y
+CONFIG_SND_DAVINCI_SOC_MCASP=y
+CONFIG_SND_DA850_SOC_EVM=y
+CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_ALL_CODECS is not set
+CONFIG_SND_SOC_TLV320AIC3X=y
# CONFIG_SOUND_PRIME is not set
-# CONFIG_HID_SUPPORT is not set
-# CONFIG_USB_SUPPORT is not set
-# CONFIG_MMC is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+# CONFIG_HIDRAW is not set
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=y
+# CONFIG_HID_PID is not set
+# CONFIG_USB_HIDDEV is not set
+
+#
+# Special HID drivers
+#
+# CONFIG_HID_A4TECH is not set
+# CONFIG_HID_APPLE is not set
+# CONFIG_HID_BELKIN is not set
+# CONFIG_HID_CHERRY is not set
+# CONFIG_HID_CHICONY is not set
+# CONFIG_HID_CYPRESS is not set
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EZKEY is not set
+# CONFIG_HID_KYE is not set
+# CONFIG_HID_GYRATION is not set
+# CONFIG_HID_TWINHAN is not set
+# CONFIG_HID_KENSINGTON is not set
+# CONFIG_HID_LOGITECH is not set
+# CONFIG_HID_MICROSOFT is not set
+# CONFIG_HID_MONTEREY is not set
+# CONFIG_HID_NTRIG is not set
+# CONFIG_HID_PANTHERLORD is not set
+# CONFIG_HID_PETALYNX is not set
+# CONFIG_HID_SAMSUNG is not set
+# CONFIG_HID_SONY is not set
+# CONFIG_HID_SUNPLUS is not set
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_ZEROPLUS is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+# CONFIG_USB_DEVICEFS is not set
+# CONFIG_USB_DEVICE_CLASS is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+# CONFIG_USB_MON is not set
+# CONFIG_USB_WUSB is not set
+# CONFIG_USB_WUSB_CBAF is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_HWA_HCD is not set
+CONFIG_USB_MUSB_HDRC=y
+CONFIG_USB_MUSB_SOC=y
+# CONFIG_USB_MUSB_HOST is not set
+# CONFIG_USB_MUSB_PERIPHERAL is not set
+CONFIG_USB_MUSB_DUAL_ROLE=y
+# CONFIG_USB_MUSB_OTG is not set
+CONFIG_USB_GADGET_MUSB_HDRC=y
+CONFIG_USB_MUSB_HDRC_HCD=y
+# CONFIG_MUSB_PIO_ONLY is not set
+# CONFIG_USB_INVENTRA_DMA is not set
+# CONFIG_USB_TI_CPPI_DMA is not set
+CONFIG_USB_TI_CPPI41_DMA=y
+CONFIG_USB_MUSB_DEBUG=y
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+# CONFIG_USB_WDM is not set
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_STORAGE_ALAUDA is not set
+# CONFIG_USB_STORAGE_ONETOUCH is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB port drivers
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_SEVSEG is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_BERRY_CHARGE is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_SISUSBVGA is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+# CONFIG_USB_TEST is not set
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_VST is not set
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_AT91 is not set
+# CONFIG_USB_GADGET_ATMEL_USBA is not set
+# CONFIG_USB_GADGET_FSL_USB2 is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_GADGET_PXA25X is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
+# CONFIG_USB_GADGET_PXA27X is not set
+# CONFIG_USB_GADGET_S3C_HSOTG is not set
+# CONFIG_USB_GADGET_IMX is not set
+# CONFIG_USB_GADGET_S3C2410 is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_FSL_QE is not set
+# CONFIG_USB_GADGET_CI13XXX is not set
+# CONFIG_USB_GADGET_NET2280 is not set
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LANGWELL is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_ZERO is not set
+# CONFIG_USB_AUDIO is not set
+CONFIG_USB_ETH=y
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_ETH_EEM is not set
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FILE_STORAGE is not set
+# CONFIG_USB_G_SERIAL is not set
+# CONFIG_USB_MIDI_GADGET is not set
+# CONFIG_USB_G_PRINTER is not set
+# CONFIG_USB_CDC_COMPOSITE is not set
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+# CONFIG_USB_GPIO_VBUS is not set
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_BOUNCE=y
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+# CONFIG_MMC_SDHCI is not set
+# CONFIG_MMC_AT91 is not set
+# CONFIG_MMC_ATMELMCI is not set
+CONFIG_MMC_DAVINCI=y
+# CONFIG_MMC_SPI is not set
# CONFIG_MEMSTICK is not set
-# CONFIG_ACCESSIBILITY is not set
# CONFIG_NEW_LEDS is not set
+# CONFIG_ACCESSIBILITY is not set
CONFIG_RTC_LIB=y
-# CONFIG_RTC_CLASS is not set
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+# CONFIG_RTC_DRV_RX8025 is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_DS3234 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_OMAP=y
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
-# CONFIG_REGULATOR is not set
# CONFIG_UIO is not set
+
+#
+# TI VLYNQ
+#
# CONFIG_STAGING is not set
#
@@ -877,7 +1394,6 @@ CONFIG_EXT3_FS_XATTR=y
# CONFIG_EXT3_FS_SECURITY is not set
# CONFIG_EXT4_FS is not set
CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
@@ -890,6 +1406,7 @@ CONFIG_XFS_FS=m
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
@@ -940,6 +1457,17 @@ CONFIG_MISC_FILESYSTEMS=y
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
CONFIG_CRAMFS=y
# CONFIG_SQUASHFS is not set
# CONFIG_VXFS_FS is not set
@@ -950,7 +1478,6 @@ CONFIG_MINIX_FS=m
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
-# CONFIG_NILFS2_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
@@ -1042,82 +1569,30 @@ CONFIG_NLS_UTF8=m
# Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
-CONFIG_ENABLE_WARN_DEPRECATED=y
-CONFIG_ENABLE_MUST_CHECK=y
+# CONFIG_ENABLE_WARN_DEPRECATED is not set
+# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_FRAME_WARN=1024
# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_UNUSED_SYMBOLS is not set
-CONFIG_DEBUG_FS=y
+# CONFIG_DEBUG_FS is not set
# CONFIG_HEADERS_CHECK is not set
-CONFIG_DEBUG_KERNEL=y
-# CONFIG_DEBUG_SHIRQ is not set
-CONFIG_DETECT_SOFTLOCKUP=y
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
-CONFIG_DETECT_HUNG_TASK=y
-# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
-CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
-CONFIG_SCHED_DEBUG=y
-# CONFIG_SCHEDSTATS is not set
-CONFIG_TIMER_STATS=y
-# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_DEBUG_KERNEL is not set
# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_SLUB_STATS is not set
-# CONFIG_DEBUG_KMEMLEAK is not set
-CONFIG_DEBUG_PREEMPT=y
-CONFIG_DEBUG_RT_MUTEXES=y
-CONFIG_DEBUG_PI_LIST=y
-# CONFIG_RT_MUTEX_TESTER is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-CONFIG_DEBUG_MUTEXES=y
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-# CONFIG_DEBUG_KOBJECT is not set
-CONFIG_DEBUG_BUGVERBOSE=y
-# CONFIG_DEBUG_INFO is not set
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_WRITECOUNT is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_DEBUG_MEMORY_INIT is not set
-# CONFIG_DEBUG_LIST is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_BOOT_PRINTK_DELAY is not set
-# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_FRAME_POINTER=y
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
-# CONFIG_PAGE_POISONING is not set
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_TRACING_SUPPORT=y
-CONFIG_FTRACE=y
-# CONFIG_FUNCTION_TRACER is not set
-# CONFIG_IRQSOFF_TRACER is not set
-# CONFIG_PREEMPT_TRACER is not set
-# CONFIG_SCHED_TRACER is not set
-# CONFIG_ENABLE_DEFAULT_TRACERS is not set
-# CONFIG_BOOT_TRACER is not set
-CONFIG_BRANCH_PROFILE_NONE=y
-# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
-# CONFIG_PROFILE_ALL_BRANCHES is not set
-# CONFIG_STACK_TRACER is not set
-# CONFIG_KMEMTRACE is not set
-# CONFIG_WORKQUEUE_TRACER is not set
-# CONFIG_BLK_DEV_IO_TRACE is not set
-# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_FTRACE is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_KGDB is not set
-CONFIG_ARM_UNWIND=y
-CONFIG_DEBUG_USER=y
-CONFIG_DEBUG_ERRORS=y
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_LL is not set
+# CONFIG_ARM_UNWIND is not set
+# CONFIG_DEBUG_USER is not set
#
# Security options
@@ -1131,7 +1606,6 @@ CONFIG_CRYPTO=y
#
# Crypto core or helper
#
-# CONFIG_CRYPTO_FIPS is not set
# CONFIG_CRYPTO_MANAGER is not set
# CONFIG_CRYPTO_MANAGER2 is not set
# CONFIG_CRYPTO_GF128MUL is not set
@@ -1163,11 +1637,13 @@ CONFIG_CRYPTO=y
#
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
#
# Digest
#
# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_GHASH is not set
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_MD5 is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -1227,6 +1703,7 @@ CONFIG_CRC32=y
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
CONFIG_DECOMPRESS_GZIP=y
CONFIG_GENERIC_ALLOCATOR=y
CONFIG_HAS_IOMEM=y
diff --git a/recipes/linux/linux-davinci/dm355-evm/defconfig b/recipes/linux/linux-davinci/dm355-evm/defconfig
index 48fce30ff1..9908e95c63 100644
--- a/recipes/linux/linux-davinci/dm355-evm/defconfig
+++ b/recipes/linux/linux-davinci/dm355-evm/defconfig
@@ -1,14 +1,13 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.31-rc7-davinci1
-# Fri Sep 4 15:07:05 2009
+# Linux kernel version: 2.6.32-rc2-davinci1
+# Fri Oct 30 16:52:22 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -46,11 +45,12 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
#
# RCU Subsystem
#
-CONFIG_CLASSIC_RCU=y
-# CONFIG_TREE_RCU is not set
-# CONFIG_PREEMPT_RCU is not set
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_PREEMPT_RCU_TRACE is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
@@ -91,17 +91,15 @@ CONFIG_SHMEM=y
CONFIG_AIO=y
#
-# Performance Counters
+# Kernel Performance Events And Counters
#
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
-# CONFIG_STRIP_ASM_SYMS is not set
CONFIG_COMPAT_BRK=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
-# CONFIG_MARKERS is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
@@ -145,6 +143,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# System Type
#
+CONFIG_MMU=y
# CONFIG_ARCH_AAEC2000 is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_REALVIEW is not set
@@ -159,6 +158,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_STMP3XXX is not set
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_NOMADIK is not set
# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
# CONFIG_ARCH_IOP33X is not set
@@ -181,11 +181,13 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5PC1XX is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_U300 is not set
CONFIG_ARCH_DAVINCI=y
# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_BCMRING is not set
CONFIG_AINTC=y
CONFIG_ARCH_DAVINCI_DMx=y
@@ -236,7 +238,9 @@ CONFIG_ARM_THUMB=y
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+CONFIG_ARM_L1_CACHE_SHIFT=5
CONFIG_COMMON_CLKDEV=y
+CONFIG_FORCE_MAX_ZONEORDER=13
#
# Bus support
@@ -256,6 +260,8 @@ CONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not set
CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_HZ=100
CONFIG_AEABI=y
@@ -277,6 +283,7 @@ CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_HAVE_MLOCK=y
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_LEDS=y
# CONFIG_LEDS_CPU is not set
@@ -318,10 +325,7 @@ CONFIG_HAVE_AOUT=y
#
# Power management options
#
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-# CONFIG_SUSPEND is not set
-# CONFIG_APM_EMULATION is not set
+# CONFIG_PM is not set
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_NET=y
@@ -412,6 +416,7 @@ CONFIG_NETFILTER_ADVANCED=y
# CONFIG_IP6_NF_IPTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
@@ -441,7 +446,11 @@ CONFIG_NETFILTER_ADVANCED=y
# CONFIG_AF_RXRPC is not set
CONFIG_WIRELESS=y
CONFIG_CFG80211=y
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+CONFIG_CFG80211_DEFAULT_PS_VALUE=1
# CONFIG_CFG80211_DEBUGFS is not set
CONFIG_WIRELESS_OLD_REGULATORY=y
CONFIG_WIRELESS_EXT=y
@@ -449,7 +458,6 @@ CONFIG_WIRELESS_EXT_SYSFS=y
CONFIG_LIB80211=y
# CONFIG_LIB80211_DEBUG is not set
# CONFIG_MAC80211 is not set
-CONFIG_MAC80211_DEFAULT_PS_VALUE=0
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
@@ -462,6 +470,7 @@ CONFIG_MAC80211_DEFAULT_PS_VALUE=0
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
@@ -473,9 +482,9 @@ CONFIG_EXTRA_FIRMWARE=""
# CONFIG_CONNECTOR is not set
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_TESTS=m
# CONFIG_MTD_CONCAT is not set
CONFIG_MTD_PARTITIONS=y
-CONFIG_MTD_TESTS=m
# CONFIG_MTD_REDBOOT_PARTS is not set
CONFIG_MTD_CMDLINE_PARTS=y
# CONFIG_MTD_AFS_PARTS is not set
@@ -524,6 +533,7 @@ CONFIG_MTD_CFI_I2=y
#
# CONFIG_MTD_DATAFLASH is not set
# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SST25L is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
@@ -545,7 +555,7 @@ CONFIG_MTD_NAND_IDS=y
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_PLATFORM is not set
# CONFIG_MTD_ALAUDA is not set
-CONFIG_MTD_NAND_DAVINCI=m
+CONFIG_MTD_NAND_DAVINCI=y
# CONFIG_MTD_ONENAND is not set
#
@@ -682,10 +692,7 @@ CONFIG_DM9000_DEBUGLEVEL=4
# CONFIG_KS8851 is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
-
-#
-# Wireless LAN
-#
+CONFIG_WLAN=y
# CONFIG_WLAN_PRE80211 is not set
CONFIG_WLAN_80211=y
CONFIG_LIBERTAS=m
@@ -695,6 +702,7 @@ CONFIG_LIBERTAS_SDIO=m
CONFIG_LIBERTAS_DEBUG=y
# CONFIG_USB_ZD1201 is not set
# CONFIG_USB_NET_RNDIS_WLAN is not set
+# CONFIG_ATH_COMMON is not set
# CONFIG_HOSTAP is not set
# CONFIG_IWM is not set
@@ -729,6 +737,7 @@ CONFIG_NETPOLL=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
#
# Input device support
@@ -742,8 +751,8 @@ CONFIG_INPUT=y
#
# CONFIG_INPUT_MOUSEDEV is not set
# CONFIG_INPUT_JOYDEV is not set
-CONFIG_INPUT_EVDEV=m
-CONFIG_INPUT_EVBUG=m
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_EVBUG=y
#
# Input Device Drivers
@@ -799,8 +808,13 @@ CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
+CONFIG_DM355_IPIPE=y
+CONFIG_IMP_PREVIEWER=y
+CONFIG_IMP_RESIZER=y
+# CONFIG_IMP_DEBUG is not set
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_HELPER_AUTO=y
@@ -834,7 +848,6 @@ CONFIG_I2C_DAVINCI=y
# Miscellaneous I2C Chip support
#
# CONFIG_DS1682 is not set
-# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
@@ -847,7 +860,7 @@ CONFIG_SPI_MASTER=y
#
# SPI Master Controller Drivers
#
-CONFIG_SPI_DAVINCI=m
+CONFIG_SPI_DAVINCI=y
CONFIG_SPI_BITBANG=y
# CONFIG_SPI_GPIO is not set
@@ -856,6 +869,11 @@ CONFIG_SPI_BITBANG=y
#
# CONFIG_SPI_SPIDEV is not set
# CONFIG_SPI_TLE62X0 is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_DEBUG_GPIO is not set
@@ -881,10 +899,20 @@ CONFIG_GPIO_PCF857X=y
#
# CONFIG_GPIO_MAX7301 is not set
# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
+
+#
+# AC97 GPIO expanders:
+#
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
# CONFIG_SENSORS_AD7414 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADCXX is not set
@@ -936,6 +964,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_TMP421 is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
@@ -946,9 +975,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_SENSORS_LIS3_SPI is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
# CONFIG_THERMAL is not set
-# CONFIG_THERMAL_HWMON is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
@@ -956,7 +983,7 @@ CONFIG_WATCHDOG=y
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
-CONFIG_DAVINCI_WATCHDOG=m
+CONFIG_DAVINCI_WATCHDOG=y
#
# USB-based Watchdog Cards
@@ -986,10 +1013,13 @@ CONFIG_MFD_DM355EVM_MSP=y
# CONFIG_MFD_TC6393XB is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_MC13783 is not set
# CONFIG_AB3100_CORE is not set
# CONFIG_EZX_PCAP is not set
+# CONFIG_REGULATOR is not set
CONFIG_MEDIA_SUPPORT=y
#
@@ -1018,8 +1048,9 @@ CONFIG_MEDIA_TUNER_XC2028=y
CONFIG_MEDIA_TUNER_XC5000=y
CONFIG_MEDIA_TUNER_MC44S803=y
CONFIG_VIDEO_V4L2=y
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_DMA_CONTIG=m
+CONFIG_VIDEOBUF_GEN=y
+CONFIG_VIDEOBUF_VMALLOC=y
+CONFIG_VIDEOBUF_DMA_CONTIG=y
CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
@@ -1055,6 +1086,7 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
#
# Video decoders
#
+# CONFIG_VIDEO_ADV7180 is not set
# CONFIG_VIDEO_BT819 is not set
# CONFIG_VIDEO_BT856 is not set
# CONFIG_VIDEO_BT866 is not set
@@ -1065,8 +1097,9 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_SAA7110 is not set
# CONFIG_VIDEO_SAA711X is not set
# CONFIG_VIDEO_SAA717X is not set
-CONFIG_VIDEO_TVP514X=m
+CONFIG_VIDEO_TVP514X=y
# CONFIG_VIDEO_TVP5150 is not set
+# CONFIG_VIDEO_TVP7002 is not set
# CONFIG_VIDEO_VPX3220 is not set
#
@@ -1096,7 +1129,7 @@ CONFIG_VIDEO_TVP514X=m
#
# CONFIG_VIDEO_UPD64031A is not set
# CONFIG_VIDEO_UPD64083 is not set
-# CONFIG_VIDEO_DAVINCI_DISPLAY is not set
+CONFIG_VIDEO_DAVINCI_DISPLAY=y
CONFIG_DAVINCI_ENC_MNGR=y
CONFIG_ENC_MNGR_MAX_CHANNELS=1
CONFIG_DAVINCI_OSD=y
@@ -1105,15 +1138,14 @@ CONFIG_DAVINCI_LOGICPD_ENCODER=y
# CONFIG_DAVINCI_AVNET_ENCODER is not set
# CONFIG_VIDEO_VIVI is not set
CONFIG_VIDEO_VPSS_SYSTEM=y
-CONFIG_VIDEO_VPFE_CAPTURE=m
-CONFIG_VIDEO_DM355_CCDC=m
-CONFIG_VIDEO_DM355_AF=m
-CONFIG_VIDEO_DM355_AEW=m
-CONFIG_VIDEO_DM355_IPIPE=m
+CONFIG_VIDEO_VPFE_CAPTURE=y
+CONFIG_VIDEO_DM355_CCDC=y
+CONFIG_VIDEO_DM355_AF=y
+CONFIG_VIDEO_DM355_AEW=y
# CONFIG_VIDEO_SAA5246A is not set
# CONFIG_VIDEO_SAA5249 is not set
# CONFIG_SOC_CAMERA is not set
-CONFIG_SOC_CAMERA_MT9T031=m
+CONFIG_SOC_CAMERA_MT9T031=y
# CONFIG_V4L_USB_DRIVERS is not set
# CONFIG_RADIO_ADAPTERS is not set
# CONFIG_DAB is not set
@@ -1122,9 +1154,9 @@ CONFIG_SOC_CAMERA_MT9T031=m
# Graphics support
#
# CONFIG_VGASTATE is not set
-CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_VIDEO_OUTPUT_CONTROL=y
CONFIG_FB=y
-CONFIG_FIRMWARE_EDID=y
+# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FB_DDC is not set
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
CONFIG_FB_CFB_FILLRECT=y
@@ -1163,12 +1195,7 @@ CONFIG_FB_DAVINCI=y
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
-# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
+# CONFIG_FRAMEBUFFER_CONSOLE is not set
CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
@@ -1202,32 +1229,25 @@ CONFIG_SND_ARM=y
CONFIG_SND_SPI=y
# CONFIG_SND_USB is not set
CONFIG_SND_SOC=y
-CONFIG_SND_DAVINCI_SOC=m
-CONFIG_SND_DAVINCI_SOC_I2S=m
-CONFIG_SND_DAVINCI_SOC_EVM=m
+CONFIG_SND_DAVINCI_SOC=y
+CONFIG_SND_DAVINCI_SOC_I2S=y
+CONFIG_SND_DAVINCI_SOC_EVM=y
CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_ALL_CODECS is not set
-CONFIG_SND_SOC_TLV320AIC3X=m
+CONFIG_SND_SOC_TLV320AIC3X=y
# CONFIG_SOUND_PRIME is not set
CONFIG_HID_SUPPORT=y
-CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
+CONFIG_HID=y
# CONFIG_HIDRAW is not set
#
# USB Input Devices
#
-CONFIG_USB_HID=m
+CONFIG_USB_HID=y
# CONFIG_HID_PID is not set
# CONFIG_USB_HIDDEV is not set
#
-# USB HID Boot Protocol drivers
-#
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_MOUSE is not set
-
-#
# Special HID drivers
#
CONFIG_HID_A4TECH=m
@@ -1240,11 +1260,12 @@ CONFIG_HID_CYPRESS=m
CONFIG_HID_EZKEY=m
# CONFIG_HID_KYE is not set
CONFIG_HID_GYRATION=m
+# CONFIG_HID_TWINHAN is not set
# CONFIG_HID_KENSINGTON is not set
-CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH=y
# CONFIG_LOGITECH_FF is not set
# CONFIG_LOGIRUMBLEPAD2_FF is not set
-CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MICROSOFT=y
CONFIG_HID_MONTEREY=m
# CONFIG_HID_NTRIG is not set
CONFIG_HID_PANTHERLORD=m
@@ -1262,7 +1283,7 @@ CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
# CONFIG_USB_ARCH_HAS_OHCI is not set
# CONFIG_USB_ARCH_HAS_EHCI is not set
-CONFIG_USB=m
+CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
@@ -1272,7 +1293,6 @@ CONFIG_USB=m
CONFIG_USB_DEVICEFS=y
CONFIG_USB_DEVICE_CLASS=y
# CONFIG_USB_DYNAMIC_MINORS is not set
-CONFIG_USB_SUSPEND=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
@@ -1287,22 +1307,20 @@ CONFIG_USB_SUSPEND=y
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_HWA_HCD is not set
-
-#
-# Enable Host or Gadget support to see Inventra options
-#
-CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_MUSB_HDRC=y
CONFIG_USB_MUSB_SOC=y
#
-# DaVinci 35x and 644x USB support
+# DaVinci 35x, 36x, 644x USB support
#
CONFIG_USB_MUSB_HOST=y
# CONFIG_USB_MUSB_PERIPHERAL is not set
# CONFIG_USB_MUSB_OTG is not set
+# CONFIG_MUSB_SCHEDULE_INTR_EP is not set
CONFIG_USB_MUSB_HDRC_HCD=y
# CONFIG_MUSB_PIO_ONLY is not set
# CONFIG_USB_INVENTRA_DMA is not set
@@ -1324,7 +1342,7 @@ CONFIG_USB_TI_CPPI_DMA=y
#
# also be needed; see USB_STORAGE Help for more info
#
-CONFIG_USB_STORAGE=m
+CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
@@ -1371,7 +1389,7 @@ CONFIG_USB_STORAGE=m
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
-CONFIG_USB_TEST=m
+CONFIG_USB_TEST=y
# CONFIG_USB_ISIGHTFW is not set
# CONFIG_USB_VST is not set
# CONFIG_USB_GADGET is not set
@@ -1381,7 +1399,7 @@ CONFIG_USB_TEST=m
#
CONFIG_USB_OTG_UTILS=y
# CONFIG_USB_GPIO_VBUS is not set
-CONFIG_NOP_USB_XCEIV=m
+CONFIG_NOP_USB_XCEIV=y
CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set
@@ -1398,10 +1416,11 @@ CONFIG_SDIO_UART=y
# MMC/SD/SDIO Host Controller Drivers
#
# CONFIG_MMC_SDHCI is not set
-CONFIG_MMC_DAVINCI=m
+# CONFIG_MMC_AT91 is not set
+# CONFIG_MMC_ATMELMCI is not set
+CONFIG_MMC_DAVINCI=y
# CONFIG_MMC_SPI is not set
# CONFIG_MEMSTICK is not set
-# CONFIG_ACCESSIBILITY is not set
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=m
@@ -1429,12 +1448,16 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=m
#
# iptables trigger is under Netfilter config (LED target)
#
+# CONFIG_ACCESSIBILITY is not set
CONFIG_RTC_LIB=y
# CONFIG_RTC_CLASS is not set
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
-# CONFIG_REGULATOR is not set
# CONFIG_UIO is not set
+
+#
+# TI VLYNQ
+#
# CONFIG_STAGING is not set
#
@@ -1463,6 +1486,7 @@ CONFIG_XFS_FS=m
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
@@ -1534,7 +1558,6 @@ CONFIG_MINIX_FS=m
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
-# CONFIG_NILFS2_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
@@ -1630,6 +1653,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_FRAME_WARN=1024
# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
@@ -1668,12 +1692,14 @@ CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
CONFIG_FRAME_POINTER=y
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
@@ -1716,7 +1742,6 @@ CONFIG_CRYPTO=y
#
# Crypto core or helper
#
-# CONFIG_CRYPTO_FIPS is not set
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD2=y
@@ -1757,11 +1782,13 @@ CONFIG_CRYPTO_ECB=y
#
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
#
# Digest
#
# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_GHASH is not set
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_MD5 is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/recipes/linux/linux-davinci/dm365-evm/defconfig b/recipes/linux/linux-davinci/dm365-evm/defconfig
index a26e63c2f1..3a294fd7bc 100644
--- a/recipes/linux/linux-davinci/dm365-evm/defconfig
+++ b/recipes/linux/linux-davinci/dm365-evm/defconfig
@@ -1,14 +1,13 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.31-rc7-davinci1
-# Tue Sep 8 16:36:50 2009
+# Linux kernel version: 2.6.32-rc2-davinci1
+# Mon Nov 2 10:40:20 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -46,11 +45,12 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
#
# RCU Subsystem
#
-CONFIG_CLASSIC_RCU=y
-# CONFIG_TREE_RCU is not set
-# CONFIG_PREEMPT_RCU is not set
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_PREEMPT_RCU_TRACE is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
@@ -91,17 +91,15 @@ CONFIG_SHMEM=y
CONFIG_AIO=y
#
-# Performance Counters
+# Kernel Performance Events And Counters
#
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
-# CONFIG_STRIP_ASM_SYMS is not set
CONFIG_COMPAT_BRK=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
-# CONFIG_MARKERS is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
@@ -145,6 +143,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# System Type
#
+CONFIG_MMU=y
# CONFIG_ARCH_AAEC2000 is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_REALVIEW is not set
@@ -159,6 +158,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_STMP3XXX is not set
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_NOMADIK is not set
# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
# CONFIG_ARCH_IOP33X is not set
@@ -181,11 +181,13 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5PC1XX is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_U300 is not set
CONFIG_ARCH_DAVINCI=y
# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_BCMRING is not set
CONFIG_AINTC=y
CONFIG_ARCH_DAVINCI_DMx=y
@@ -235,7 +237,9 @@ CONFIG_ARM_THUMB=y
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+CONFIG_ARM_L1_CACHE_SHIFT=5
CONFIG_COMMON_CLKDEV=y
+CONFIG_FORCE_MAX_ZONEORDER=13
#
# Bus support
@@ -255,6 +259,8 @@ CONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not set
CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_HZ=100
CONFIG_AEABI=y
@@ -276,6 +282,7 @@ CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_HAVE_MLOCK=y
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_LEDS=y
# CONFIG_LEDS_CPU is not set
@@ -408,6 +415,7 @@ CONFIG_NETFILTER_ADVANCED=y
# CONFIG_IP6_NF_IPTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
@@ -437,7 +445,11 @@ CONFIG_NETFILTER_ADVANCED=y
# CONFIG_AF_RXRPC is not set
CONFIG_WIRELESS=y
CONFIG_CFG80211=y
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+CONFIG_CFG80211_DEFAULT_PS_VALUE=1
# CONFIG_CFG80211_DEBUGFS is not set
CONFIG_WIRELESS_OLD_REGULATORY=y
CONFIG_WIRELESS_EXT=y
@@ -445,7 +457,6 @@ CONFIG_WIRELESS_EXT_SYSFS=y
CONFIG_LIB80211=y
# CONFIG_LIB80211_DEBUG is not set
# CONFIG_MAC80211 is not set
-CONFIG_MAC80211_DEFAULT_PS_VALUE=0
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
@@ -458,6 +469,7 @@ CONFIG_MAC80211_DEFAULT_PS_VALUE=0
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
@@ -469,9 +481,9 @@ CONFIG_EXTRA_FIRMWARE=""
# CONFIG_CONNECTOR is not set
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_TESTS=m
# CONFIG_MTD_CONCAT is not set
CONFIG_MTD_PARTITIONS=y
-CONFIG_MTD_TESTS=m
# CONFIG_MTD_REDBOOT_PARTS is not set
CONFIG_MTD_CMDLINE_PARTS=y
# CONFIG_MTD_AFS_PARTS is not set
@@ -520,6 +532,7 @@ CONFIG_MTD_CFI_I2=y
#
# CONFIG_MTD_DATAFLASH is not set
# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SST25L is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
@@ -541,7 +554,7 @@ CONFIG_MTD_NAND_IDS=y
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_PLATFORM is not set
# CONFIG_MTD_ALAUDA is not set
-CONFIG_MTD_NAND_DAVINCI=m
+CONFIG_MTD_NAND_DAVINCI=y
# CONFIG_MTD_ONENAND is not set
#
@@ -576,7 +589,7 @@ CONFIG_MISC_DEVICES=y
#
# EEPROM support
#
-# CONFIG_EEPROM_AT24 is not set
+CONFIG_EEPROM_AT24=y
CONFIG_EEPROM_AT25=y
# CONFIG_EEPROM_LEGACY is not set
# CONFIG_EEPROM_MAX6875 is not set
@@ -676,10 +689,7 @@ CONFIG_TI_DAVINCI_EMAC=y
# CONFIG_KS8851 is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
-
-#
-# Wireless LAN
-#
+CONFIG_WLAN=y
# CONFIG_WLAN_PRE80211 is not set
CONFIG_WLAN_80211=y
CONFIG_LIBERTAS=m
@@ -689,6 +699,7 @@ CONFIG_LIBERTAS_SDIO=m
CONFIG_LIBERTAS_DEBUG=y
# CONFIG_USB_ZD1201 is not set
# CONFIG_USB_NET_RNDIS_WLAN is not set
+# CONFIG_ATH_COMMON is not set
# CONFIG_HOSTAP is not set
# CONFIG_IWM is not set
@@ -723,6 +734,7 @@ CONFIG_NETPOLL=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
#
# Input device support
@@ -736,8 +748,8 @@ CONFIG_INPUT_FF_MEMLESS=y
#
# CONFIG_INPUT_MOUSEDEV is not set
# CONFIG_INPUT_JOYDEV is not set
-CONFIG_INPUT_EVDEV=m
-CONFIG_INPUT_EVBUG=m
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_EVBUG=y
#
# Input Device Drivers
@@ -756,7 +768,7 @@ CONFIG_INPUT_MISC=y
# CONFIG_INPUT_CM109 is not set
# CONFIG_INPUT_UINPUT is not set
# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
-CONFIG_INPUT_DM365EVM=m
+CONFIG_INPUT_DM365EVM=y
#
# Hardware I/O ports
@@ -802,8 +814,13 @@ CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
+CONFIG_DM365_IPIPE=y
+CONFIG_IMP_PREVIEWER=y
+CONFIG_IMP_RESIZER=y
+# CONFIG_IMP_DEBUG is not set
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_HELPER_AUTO=y
@@ -837,7 +854,6 @@ CONFIG_I2C_DAVINCI=y
# Miscellaneous I2C Chip support
#
# CONFIG_DS1682 is not set
-# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
@@ -850,7 +866,7 @@ CONFIG_SPI_MASTER=y
#
# SPI Master Controller Drivers
#
-CONFIG_SPI_DAVINCI=m
+CONFIG_SPI_DAVINCI=y
CONFIG_SPI_BITBANG=y
# CONFIG_SPI_GPIO is not set
@@ -859,6 +875,11 @@ CONFIG_SPI_BITBANG=y
#
# CONFIG_SPI_SPIDEV is not set
# CONFIG_SPI_TLE62X0 is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_DEBUG_GPIO is not set
@@ -884,10 +905,20 @@ CONFIG_GPIO_PCF857X=y
#
# CONFIG_GPIO_MAX7301 is not set
# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
+
+#
+# AC97 GPIO expanders:
+#
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
# CONFIG_SENSORS_AD7414 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADCXX is not set
@@ -939,6 +970,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_TMP421 is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
@@ -949,9 +981,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_SENSORS_LIS3_SPI is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
# CONFIG_THERMAL is not set
-# CONFIG_THERMAL_HWMON is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
@@ -959,7 +989,7 @@ CONFIG_WATCHDOG=y
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
-CONFIG_DAVINCI_WATCHDOG=m
+CONFIG_DAVINCI_WATCHDOG=y
#
# USB-based Watchdog Cards
@@ -988,10 +1018,13 @@ CONFIG_SSB_POSSIBLE=y
# CONFIG_MFD_TC6393XB is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_MC13783 is not set
# CONFIG_AB3100_CORE is not set
# CONFIG_EZX_PCAP is not set
+# CONFIG_REGULATOR is not set
CONFIG_MEDIA_SUPPORT=y
#
@@ -1020,8 +1053,9 @@ CONFIG_MEDIA_TUNER_XC2028=y
CONFIG_MEDIA_TUNER_XC5000=y
CONFIG_MEDIA_TUNER_MC44S803=y
CONFIG_VIDEO_V4L2=y
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_DMA_CONTIG=m
+CONFIG_VIDEOBUF_GEN=y
+CONFIG_VIDEOBUF_VMALLOC=y
+CONFIG_VIDEOBUF_DMA_CONTIG=y
CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
@@ -1057,6 +1091,7 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
#
# Video decoders
#
+# CONFIG_VIDEO_ADV7180 is not set
# CONFIG_VIDEO_BT819 is not set
# CONFIG_VIDEO_BT856 is not set
# CONFIG_VIDEO_BT866 is not set
@@ -1067,8 +1102,9 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_SAA7110 is not set
# CONFIG_VIDEO_SAA711X is not set
# CONFIG_VIDEO_SAA717X is not set
-CONFIG_VIDEO_TVP514X=m
+CONFIG_VIDEO_TVP514X=y
# CONFIG_VIDEO_TVP5150 is not set
+CONFIG_VIDEO_TVP7002=y
# CONFIG_VIDEO_VPX3220 is not set
#
@@ -1088,8 +1124,9 @@ CONFIG_VIDEO_TVP514X=m
# CONFIG_VIDEO_SAA7185 is not set
# CONFIG_VIDEO_ADV7170 is not set
# CONFIG_VIDEO_ADV7175 is not set
-# CONFIG_VIDEO_THS7303 is not set
-# CONFIG_VIDEO_THS7353 is not set
+CONFIG_VIDEO_THS7303=y
+CONFIG_VIDEO_THS7353=y
+CONFIG_VIDEO_THS7353_LUMA_CHANNEL=2
# CONFIG_VIDEO_ADV7343 is not set
# CONFIG_VIDEO_THS8200 is not set
@@ -1098,7 +1135,7 @@ CONFIG_VIDEO_TVP514X=m
#
# CONFIG_VIDEO_UPD64031A is not set
# CONFIG_VIDEO_UPD64083 is not set
-# CONFIG_VIDEO_DAVINCI_DISPLAY is not set
+CONFIG_VIDEO_DAVINCI_DISPLAY=y
CONFIG_DAVINCI_ENC_MNGR=y
CONFIG_ENC_MNGR_MAX_CHANNELS=1
CONFIG_DAVINCI_OSD=y
@@ -1107,12 +1144,15 @@ CONFIG_DAVINCI_LOGICPD_ENCODER=y
# CONFIG_DAVINCI_AVNET_ENCODER is not set
# CONFIG_VIDEO_VIVI is not set
CONFIG_VIDEO_VPSS_SYSTEM=y
-CONFIG_VIDEO_VPFE_CAPTURE=m
-CONFIG_VIDEO_DM365_ISIF=m
+CONFIG_VIDEO_VPFE_CAPTURE=y
+CONFIG_VIDEO_DM365_ISIF=y
+CONFIG_VIDEO_DM365_3A_HW=y
+CONFIG_VIDEO_DM365_AF=y
+CONFIG_VIDEO_DM365_AEW=y
# CONFIG_VIDEO_SAA5246A is not set
# CONFIG_VIDEO_SAA5249 is not set
# CONFIG_SOC_CAMERA is not set
-# CONFIG_SOC_CAMERA_MT9T031 is not set
+CONFIG_SOC_CAMERA_MT9T031=y
# CONFIG_V4L_USB_DRIVERS is not set
# CONFIG_RADIO_ADAPTERS is not set
# CONFIG_DAB is not set
@@ -1121,9 +1161,9 @@ CONFIG_VIDEO_DM365_ISIF=m
# Graphics support
#
# CONFIG_VGASTATE is not set
-CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_VIDEO_OUTPUT_CONTROL=y
CONFIG_FB=y
-CONFIG_FIRMWARE_EDID=y
+# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FB_DDC is not set
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
CONFIG_FB_CFB_FILLRECT=y
@@ -1162,12 +1202,7 @@ CONFIG_FB_DAVINCI=y
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
-# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
+# CONFIG_FRAMEBUFFER_CONSOLE is not set
CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
@@ -1201,32 +1236,25 @@ CONFIG_SND_ARM=y
CONFIG_SND_SPI=y
# CONFIG_SND_USB is not set
CONFIG_SND_SOC=y
-CONFIG_SND_DAVINCI_SOC=m
-CONFIG_SND_DAVINCI_SOC_I2S=m
-CONFIG_SND_DAVINCI_SOC_EVM=m
+CONFIG_SND_DAVINCI_SOC=y
+CONFIG_SND_DAVINCI_SOC_I2S=y
+CONFIG_SND_DAVINCI_SOC_EVM=y
CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_ALL_CODECS is not set
-CONFIG_SND_SOC_TLV320AIC3X=m
+CONFIG_SND_SOC_TLV320AIC3X=y
# CONFIG_SOUND_PRIME is not set
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
-# CONFIG_HID_DEBUG is not set
# CONFIG_HIDRAW is not set
#
# USB Input Devices
#
-CONFIG_USB_HID=m
+CONFIG_USB_HID=y
# CONFIG_HID_PID is not set
# CONFIG_USB_HIDDEV is not set
#
-# USB HID Boot Protocol drivers
-#
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_MOUSE is not set
-
-#
# Special HID drivers
#
CONFIG_HID_A4TECH=m
@@ -1239,11 +1267,12 @@ CONFIG_HID_CYPRESS=m
CONFIG_HID_EZKEY=m
# CONFIG_HID_KYE is not set
CONFIG_HID_GYRATION=m
+# CONFIG_HID_TWINHAN is not set
# CONFIG_HID_KENSINGTON is not set
-CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH=y
# CONFIG_LOGITECH_FF is not set
# CONFIG_LOGIRUMBLEPAD2_FF is not set
-CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MICROSOFT=y
CONFIG_HID_MONTEREY=m
# CONFIG_HID_NTRIG is not set
CONFIG_HID_PANTHERLORD=m
@@ -1261,7 +1290,7 @@ CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
# CONFIG_USB_ARCH_HAS_OHCI is not set
# CONFIG_USB_ARCH_HAS_EHCI is not set
-CONFIG_USB=m
+CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
@@ -1285,14 +1314,11 @@ CONFIG_USB_DEVICE_CLASS=y
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_HWA_HCD is not set
-
-#
-# Enable Host or Gadget support to see Inventra options
-#
-CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_MUSB_HDRC=y
CONFIG_USB_MUSB_SOC=y
#
@@ -1301,6 +1327,7 @@ CONFIG_USB_MUSB_SOC=y
CONFIG_USB_MUSB_HOST=y
# CONFIG_USB_MUSB_PERIPHERAL is not set
# CONFIG_USB_MUSB_OTG is not set
+# CONFIG_MUSB_SCHEDULE_INTR_EP is not set
CONFIG_USB_MUSB_HDRC_HCD=y
# CONFIG_MUSB_PIO_ONLY is not set
# CONFIG_USB_INVENTRA_DMA is not set
@@ -1322,7 +1349,7 @@ CONFIG_USB_TI_CPPI_DMA=y
#
# also be needed; see USB_STORAGE Help for more info
#
-CONFIG_USB_STORAGE=m
+CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
@@ -1369,7 +1396,7 @@ CONFIG_USB_STORAGE=m
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
-CONFIG_USB_TEST=m
+CONFIG_USB_TEST=y
# CONFIG_USB_ISIGHTFW is not set
# CONFIG_USB_VST is not set
# CONFIG_USB_GADGET is not set
@@ -1379,7 +1406,7 @@ CONFIG_USB_TEST=m
#
CONFIG_USB_OTG_UTILS=y
# CONFIG_USB_GPIO_VBUS is not set
-CONFIG_NOP_USB_XCEIV=m
+CONFIG_NOP_USB_XCEIV=y
CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set
@@ -1396,10 +1423,11 @@ CONFIG_SDIO_UART=y
# MMC/SD/SDIO Host Controller Drivers
#
# CONFIG_MMC_SDHCI is not set
-CONFIG_MMC_DAVINCI=m
+# CONFIG_MMC_AT91 is not set
+# CONFIG_MMC_ATMELMCI is not set
+CONFIG_MMC_DAVINCI=y
# CONFIG_MMC_SPI is not set
# CONFIG_MEMSTICK is not set
-# CONFIG_ACCESSIBILITY is not set
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=m
@@ -1427,12 +1455,16 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=m
#
# iptables trigger is under Netfilter config (LED target)
#
+# CONFIG_ACCESSIBILITY is not set
CONFIG_RTC_LIB=y
# CONFIG_RTC_CLASS is not set
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
-# CONFIG_REGULATOR is not set
# CONFIG_UIO is not set
+
+#
+# TI VLYNQ
+#
# CONFIG_STAGING is not set
#
@@ -1461,6 +1493,7 @@ CONFIG_XFS_FS=m
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
@@ -1532,7 +1565,6 @@ CONFIG_MINIX_FS=m
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
-# CONFIG_NILFS2_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
@@ -1628,6 +1660,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_FRAME_WARN=1024
# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
@@ -1666,12 +1699,14 @@ CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
CONFIG_FRAME_POINTER=y
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
@@ -1714,7 +1749,6 @@ CONFIG_CRYPTO=y
#
# Crypto core or helper
#
-# CONFIG_CRYPTO_FIPS is not set
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD2=y
@@ -1755,11 +1789,13 @@ CONFIG_CRYPTO_ECB=y
#
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
#
# Digest
#
# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_GHASH is not set
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_MD5 is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/recipes/linux/linux-davinci/dm6446-evm/defconfig b/recipes/linux/linux-davinci/dm6446-evm/defconfig
index 199f1f82d7..a514beff88 100644
--- a/recipes/linux/linux-davinci/dm6446-evm/defconfig
+++ b/recipes/linux/linux-davinci/dm6446-evm/defconfig
@@ -1,14 +1,13 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.31-rc7-davinci1
-# Thu Sep 17 19:02:02 2009
+# Linux kernel version: 2.6.32-rc2-davinci1
+# Wed Oct 7 16:24:45 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -46,11 +45,12 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
#
# RCU Subsystem
#
-CONFIG_CLASSIC_RCU=y
-# CONFIG_TREE_RCU is not set
-# CONFIG_PREEMPT_RCU is not set
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_PREEMPT_RCU_TRACE is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
@@ -91,17 +91,15 @@ CONFIG_SHMEM=y
CONFIG_AIO=y
#
-# Performance Counters
+# Kernel Performance Events And Counters
#
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
-# CONFIG_STRIP_ASM_SYMS is not set
CONFIG_COMPAT_BRK=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
-# CONFIG_MARKERS is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
@@ -140,11 +138,12 @@ CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
-CONFIG_FREEZER=y
+# CONFIG_FREEZER is not set
#
# System Type
#
+CONFIG_MMU=y
# CONFIG_ARCH_AAEC2000 is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_REALVIEW is not set
@@ -159,6 +158,7 @@ CONFIG_FREEZER=y
# CONFIG_ARCH_STMP3XXX is not set
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_NOMADIK is not set
# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
# CONFIG_ARCH_IOP33X is not set
@@ -181,11 +181,13 @@ CONFIG_FREEZER=y
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5PC1XX is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_U300 is not set
CONFIG_ARCH_DAVINCI=y
# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_BCMRING is not set
CONFIG_AINTC=y
CONFIG_ARCH_DAVINCI_DMx=y
@@ -209,8 +211,8 @@ CONFIG_ARCH_DAVINCI_DM644x=y
CONFIG_MACH_DAVINCI_EVM=y
# CONFIG_MACH_SFFSDR is not set
CONFIG_DAVINCI_MUX=y
-CONFIG_DAVINCI_MUX_DEBUG=y
-CONFIG_DAVINCI_MUX_WARNINGS=y
+# CONFIG_DAVINCI_MUX_DEBUG is not set
+# CONFIG_DAVINCI_MUX_WARNINGS is not set
CONFIG_DAVINCI_RESET_CLOCKS=y
CONFIG_OSC_CLK_FREQ=27000000
@@ -236,7 +238,9 @@ CONFIG_ARM_THUMB=y
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+CONFIG_ARM_L1_CACHE_SHIFT=5
CONFIG_COMMON_CLKDEV=y
+CONFIG_FORCE_MAX_ZONEORDER=13
#
# Bus support
@@ -256,6 +260,8 @@ CONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not set
CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_HZ=100
CONFIG_AEABI=y
@@ -277,6 +283,7 @@ CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_HAVE_MLOCK=y
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_LEDS=y
# CONFIG_LEDS_CPU is not set
@@ -318,12 +325,7 @@ CONFIG_HAVE_AOUT=y
#
# Power management options
#
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_SLEEP=y
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-# CONFIG_APM_EMULATION is not set
+# CONFIG_PM is not set
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_NET=y
@@ -414,6 +416,7 @@ CONFIG_NETFILTER_ADVANCED=y
# CONFIG_IP6_NF_IPTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
@@ -454,6 +457,7 @@ CONFIG_NETFILTER_ADVANCED=y
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
@@ -461,99 +465,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
-CONFIG_MTD=m
-# CONFIG_MTD_DEBUG is not set
-# CONFIG_MTD_CONCAT is not set
-CONFIG_MTD_PARTITIONS=y
-CONFIG_MTD_TESTS=m
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
-# CONFIG_MTD_AR7_PARTS is not set
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_CHAR=m
-CONFIG_MTD_BLKDEVS=m
-CONFIG_MTD_BLOCK=m
-# CONFIG_MTD_BLOCK_RO is not set
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-# CONFIG_RFD_FTL is not set
-# CONFIG_SSFDC is not set
-# CONFIG_MTD_OOPS is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=m
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=m
-# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-CONFIG_MTD_CFI_INTELEXT=m
-CONFIG_MTD_CFI_AMDSTD=m
-# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=m
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-CONFIG_MTD_PHYSMAP=m
-# CONFIG_MTD_PHYSMAP_COMPAT is not set
-# CONFIG_MTD_ARM_INTEGRATOR is not set
-# CONFIG_MTD_PLATRAM is not set
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-CONFIG_MTD_NAND=m
-# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-# CONFIG_MTD_NAND_ECC_SMC is not set
-# CONFIG_MTD_NAND_MUSEUM_IDS is not set
-# CONFIG_MTD_NAND_GPIO is not set
-CONFIG_MTD_NAND_IDS=m
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
-# CONFIG_MTD_NAND_PLATFORM is not set
-# CONFIG_MTD_ALAUDA is not set
-CONFIG_MTD_NAND_DAVINCI=m
-# CONFIG_MTD_ONENAND is not set
-
-#
-# LPDDR flash memory drivers
-#
-# CONFIG_MTD_LPDDR is not set
-
-#
-# UBI - Unsorted block images
-#
-# CONFIG_MTD_UBI is not set
+# CONFIG_MTD is not set
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_COW_COMMON is not set
@@ -696,10 +608,7 @@ CONFIG_TI_DAVINCI_EMAC=y
# CONFIG_KS8842 is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
-
-#
-# Wireless LAN
-#
+CONFIG_WLAN=y
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
@@ -734,6 +643,7 @@ CONFIG_NETPOLL=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
#
# Input device support
@@ -805,6 +715,7 @@ CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_TCG_TPM is not set
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_HELPER_AUTO=y
@@ -838,13 +749,17 @@ CONFIG_I2C_DAVINCI=y
# Miscellaneous I2C Chip support
#
# CONFIG_DS1682 is not set
-# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set
# CONFIG_SPI is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_DEBUG_GPIO is not set
@@ -868,10 +783,19 @@ CONFIG_GPIO_PCF857X=y
#
# SPI GPIO expanders:
#
+
+#
+# AC97 GPIO expanders:
+#
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
# CONFIG_SENSORS_AD7414 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADM1021 is not set
@@ -920,6 +844,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_TMP421 is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
@@ -929,9 +854,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_W83L786NG is not set
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
# CONFIG_THERMAL is not set
-# CONFIG_THERMAL_HWMON is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
@@ -968,9 +891,11 @@ CONFIG_SSB_POSSIBLE=y
# CONFIG_MFD_TC6393XB is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_PCF50633 is not set
# CONFIG_AB3100_CORE is not set
+# CONFIG_REGULATOR is not set
CONFIG_MEDIA_SUPPORT=y
#
@@ -1000,6 +925,7 @@ CONFIG_MEDIA_TUNER_XC5000=y
CONFIG_MEDIA_TUNER_MC44S803=y
CONFIG_VIDEO_V4L2=y
CONFIG_VIDEOBUF_GEN=y
+CONFIG_VIDEOBUF_VMALLOC=y
CONFIG_VIDEOBUF_DMA_CONTIG=y
CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
@@ -1036,6 +962,7 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
#
# Video decoders
#
+# CONFIG_VIDEO_ADV7180 is not set
# CONFIG_VIDEO_BT819 is not set
# CONFIG_VIDEO_BT856 is not set
# CONFIG_VIDEO_BT866 is not set
@@ -1078,7 +1005,7 @@ CONFIG_VIDEO_TVP514X=y
#
# CONFIG_VIDEO_UPD64031A is not set
# CONFIG_VIDEO_UPD64083 is not set
-# CONFIG_VIDEO_DAVINCI_DISPLAY is not set
+CONFIG_VIDEO_DAVINCI_DISPLAY=y
CONFIG_DAVINCI_ENC_MNGR=y
CONFIG_ENC_MNGR_MAX_CHANNELS=1
CONFIG_DAVINCI_OSD=y
@@ -1101,9 +1028,9 @@ CONFIG_VIDEO_DM6446_CCDC=y
# Graphics support
#
# CONFIG_VGASTATE is not set
-CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_VIDEO_OUTPUT_CONTROL=y
CONFIG_FB=y
-CONFIG_FIRMWARE_EDID=y
+# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FB_DDC is not set
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
CONFIG_FB_CFB_FILLRECT=y
@@ -1142,12 +1069,7 @@ CONFIG_FB_DAVINCI=y
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
-# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
+# CONFIG_FRAMEBUFFER_CONSOLE is not set
CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
@@ -1191,7 +1113,6 @@ CONFIG_SND_SOC_TLV320AIC3X=y
# CONFIG_SOUND_PRIME is not set
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
-# CONFIG_HID_DEBUG is not set
# CONFIG_HIDRAW is not set
#
@@ -1214,6 +1135,7 @@ CONFIG_HID_CYPRESS=m
CONFIG_HID_EZKEY=m
# CONFIG_HID_KYE is not set
CONFIG_HID_GYRATION=m
+# CONFIG_HID_TWINHAN is not set
# CONFIG_HID_KENSINGTON is not set
CONFIG_HID_LOGITECH=y
# CONFIG_LOGITECH_FF is not set
@@ -1246,7 +1168,6 @@ CONFIG_USB=y
CONFIG_USB_DEVICEFS=y
CONFIG_USB_DEVICE_CLASS=y
# CONFIG_USB_DYNAMIC_MINORS is not set
-CONFIG_USB_SUSPEND=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
@@ -1261,6 +1182,7 @@ CONFIG_USB_SUSPEND=y
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_HWA_HCD is not set
@@ -1273,6 +1195,7 @@ CONFIG_USB_MUSB_SOC=y
CONFIG_USB_MUSB_HOST=y
# CONFIG_USB_MUSB_PERIPHERAL is not set
# CONFIG_USB_MUSB_OTG is not set
+# CONFIG_MUSB_SCHEDULE_INTR_EP is not set
CONFIG_USB_MUSB_HDRC_HCD=y
# CONFIG_MUSB_PIO_ONLY is not set
# CONFIG_USB_INVENTRA_DMA is not set
@@ -1368,9 +1291,10 @@ CONFIG_MMC_BLOCK=y
# MMC/SD/SDIO Host Controller Drivers
#
# CONFIG_MMC_SDHCI is not set
+# CONFIG_MMC_AT91 is not set
+# CONFIG_MMC_ATMELMCI is not set
CONFIG_MMC_DAVINCI=y
# CONFIG_MEMSTICK is not set
-# CONFIG_ACCESSIBILITY is not set
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=m
@@ -1398,63 +1322,16 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=m
#
# iptables trigger is under Netfilter config (LED target)
#
+# CONFIG_ACCESSIBILITY is not set
CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=m
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-# CONFIG_RTC_DRV_DAVINCI_EVM is not set
-# CONFIG_RTC_DRV_DS1307 is not set
-# CONFIG_RTC_DRV_DS1374 is not set
-# CONFIG_RTC_DRV_DS1672 is not set
-# CONFIG_RTC_DRV_MAX6900 is not set
-# CONFIG_RTC_DRV_RS5C372 is not set
-# CONFIG_RTC_DRV_ISL1208 is not set
-# CONFIG_RTC_DRV_X1205 is not set
-# CONFIG_RTC_DRV_PCF8563 is not set
-# CONFIG_RTC_DRV_PCF8583 is not set
-# CONFIG_RTC_DRV_M41T80 is not set
-# CONFIG_RTC_DRV_S35390A is not set
-# CONFIG_RTC_DRV_FM3130 is not set
-# CONFIG_RTC_DRV_RX8581 is not set
-# CONFIG_RTC_DRV_RX8025 is not set
-
-#
-# SPI RTC drivers
-#
-
-#
-# Platform RTC drivers
-#
-# CONFIG_RTC_DRV_CMOS is not set
-# CONFIG_RTC_DRV_DS1286 is not set
-# CONFIG_RTC_DRV_DS1511 is not set
-# CONFIG_RTC_DRV_DS1553 is not set
-# CONFIG_RTC_DRV_DS1742 is not set
-# CONFIG_RTC_DRV_STK17TA8 is not set
-# CONFIG_RTC_DRV_M48T86 is not set
-# CONFIG_RTC_DRV_M48T35 is not set
-# CONFIG_RTC_DRV_M48T59 is not set
-# CONFIG_RTC_DRV_BQ4802 is not set
-# CONFIG_RTC_DRV_V3020 is not set
-
-#
-# on-CPU RTC drivers
-#
+# CONFIG_RTC_CLASS is not set
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
-# CONFIG_REGULATOR is not set
# CONFIG_UIO is not set
+
+#
+# TI VLYNQ
+#
# CONFIG_STAGING is not set
#
@@ -1483,6 +1360,7 @@ CONFIG_XFS_FS=m
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
@@ -1533,17 +1411,6 @@ CONFIG_MISC_FILESYSTEMS=y
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
-CONFIG_JFFS2_FS=m
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-# CONFIG_JFFS2_SUMMARY is not set
-# CONFIG_JFFS2_FS_XATTR is not set
-# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
-CONFIG_JFFS2_ZLIB=y
-# CONFIG_JFFS2_LZO is not set
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
CONFIG_CRAMFS=y
# CONFIG_SQUASHFS is not set
# CONFIG_VXFS_FS is not set
@@ -1554,7 +1421,6 @@ CONFIG_MINIX_FS=m
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
-# CONFIG_NILFS2_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
@@ -1650,6 +1516,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_FRAME_WARN=1024
# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
@@ -1688,12 +1555,14 @@ CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
CONFIG_FRAME_POINTER=y
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
@@ -1736,7 +1605,6 @@ CONFIG_CRYPTO=y
#
# Crypto core or helper
#
-# CONFIG_CRYPTO_FIPS is not set
# CONFIG_CRYPTO_MANAGER is not set
# CONFIG_CRYPTO_MANAGER2 is not set
# CONFIG_CRYPTO_GF128MUL is not set
@@ -1768,11 +1636,13 @@ CONFIG_CRYPTO=y
#
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
#
# Digest
#
# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_GHASH is not set
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_MD5 is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/recipes/linux/linux-davinci/dm6467-evm/defconfig b/recipes/linux/linux-davinci/dm6467-evm/defconfig
index 5b2d5aefeb..bc80405bd3 100644
--- a/recipes/linux/linux-davinci/dm6467-evm/defconfig
+++ b/recipes/linux/linux-davinci/dm6467-evm/defconfig
@@ -1,14 +1,13 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.31-rc7-davinci1
-# Fri Sep 4 16:40:27 2009
+# Linux kernel version: 2.6.32-rc2-davinci1
+# Wed Oct 14 16:30:05 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -46,11 +45,12 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
#
# RCU Subsystem
#
-CONFIG_CLASSIC_RCU=y
-# CONFIG_TREE_RCU is not set
-# CONFIG_PREEMPT_RCU is not set
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_PREEMPT_RCU_TRACE is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
@@ -91,17 +91,15 @@ CONFIG_SHMEM=y
CONFIG_AIO=y
#
-# Performance Counters
+# Kernel Performance Events And Counters
#
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
-# CONFIG_STRIP_ASM_SYMS is not set
CONFIG_COMPAT_BRK=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
-# CONFIG_MARKERS is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
@@ -145,6 +143,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# System Type
#
+CONFIG_MMU=y
# CONFIG_ARCH_AAEC2000 is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_REALVIEW is not set
@@ -159,6 +158,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_STMP3XXX is not set
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_NOMADIK is not set
# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
# CONFIG_ARCH_IOP33X is not set
@@ -181,11 +181,13 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5PC1XX is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_U300 is not set
CONFIG_ARCH_DAVINCI=y
# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_BCMRING is not set
CONFIG_AINTC=y
CONFIG_ARCH_DAVINCI_DMx=y
@@ -235,11 +237,14 @@ CONFIG_ARM_THUMB=y
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+CONFIG_ARM_L1_CACHE_SHIFT=5
CONFIG_COMMON_CLKDEV=y
+CONFIG_FORCE_MAX_ZONEORDER=13
#
# Bus support
#
+# CONFIG_PCI is not set
# CONFIG_PCI_SYSCALL is not set
# CONFIG_ARCH_SUPPORTS_MSI is not set
# CONFIG_PCCARD is not set
@@ -255,6 +260,8 @@ CONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not set
CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_HZ=100
CONFIG_AEABI=y
@@ -276,6 +283,7 @@ CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_HAVE_MLOCK=y
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_LEDS=y
# CONFIG_LEDS_CPU is not set
@@ -408,6 +416,7 @@ CONFIG_NETFILTER_ADVANCED=y
# CONFIG_IP6_NF_IPTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
@@ -448,6 +457,7 @@ CONFIG_NETFILTER_ADVANCED=y
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
@@ -455,22 +465,22 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
-CONFIG_MTD=m
+CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_TESTS is not set
# CONFIG_MTD_CONCAT is not set
CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_TESTS is not set
# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
# CONFIG_MTD_AFS_PARTS is not set
# CONFIG_MTD_AR7_PARTS is not set
#
# User Modules And Translation Layers
#
-CONFIG_MTD_CHAR=m
-CONFIG_MTD_BLKDEVS=m
-CONFIG_MTD_BLOCK=m
-# CONFIG_MTD_BLOCK_RO is not set
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
@@ -481,9 +491,9 @@ CONFIG_MTD_BLOCK=m
#
# RAM/ROM/Flash chip drivers
#
-CONFIG_MTD_CFI=m
+CONFIG_MTD_CFI=y
# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=m
+CONFIG_MTD_GEN_PROBE=y
# CONFIG_MTD_CFI_ADV_OPTIONS is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
@@ -495,10 +505,10 @@ CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
-CONFIG_MTD_CFI_INTELEXT=m
-CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_INTELEXT=y
+CONFIG_MTD_CFI_AMDSTD=y
# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_CFI_UTIL=y
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
@@ -507,7 +517,7 @@ CONFIG_MTD_CFI_UTIL=m
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-CONFIG_MTD_PHYSMAP=m
+CONFIG_MTD_PHYSMAP=y
# CONFIG_MTD_PHYSMAP_COMPAT is not set
# CONFIG_MTD_ARM_INTEGRATOR is not set
# CONFIG_MTD_PLATRAM is not set
@@ -517,6 +527,7 @@ CONFIG_MTD_PHYSMAP=m
#
# CONFIG_MTD_DATAFLASH is not set
# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SST25L is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
@@ -528,17 +539,17 @@ CONFIG_MTD_PHYSMAP=m
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
-CONFIG_MTD_NAND=m
+CONFIG_MTD_NAND=y
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
# CONFIG_MTD_NAND_ECC_SMC is not set
# CONFIG_MTD_NAND_MUSEUM_IDS is not set
# CONFIG_MTD_NAND_GPIO is not set
-CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_IDS=y
# CONFIG_MTD_NAND_DISKONCHIP is not set
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_PLATFORM is not set
# CONFIG_MTD_ALAUDA is not set
-CONFIG_MTD_NAND_DAVINCI=m
+CONFIG_MTD_NAND_DAVINCI=y
# CONFIG_MTD_ONENAND is not set
#
@@ -553,7 +564,7 @@ CONFIG_MTD_NAND_DAVINCI=m
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_UB is not set
@@ -579,7 +590,7 @@ CONFIG_EEPROM_AT25=y
# CONFIG_EEPROM_MAX6875 is not set
# CONFIG_EEPROM_93CX6 is not set
CONFIG_HAVE_IDE=y
-CONFIG_IDE=m
+CONFIG_IDE=y
#
# Please see Documentation/ide/ide.txt for help/info on IDE drives
@@ -587,7 +598,7 @@ CONFIG_IDE=m
CONFIG_IDE_XFER_MODE=y
CONFIG_IDE_TIMINGS=y
# CONFIG_BLK_DEV_IDE_SATA is not set
-CONFIG_IDE_GD=m
+CONFIG_IDE_GD=y
CONFIG_IDE_GD_ATA=y
# CONFIG_IDE_GD_ATAPI is not set
# CONFIG_BLK_DEV_IDECD is not set
@@ -600,14 +611,14 @@ CONFIG_IDE_PROC_FS=y
#
# CONFIG_BLK_DEV_PLATFORM is not set
CONFIG_BLK_DEV_IDEDMA_SFF=y
-CONFIG_BLK_DEV_PALMCHIP_BK3710=m
+CONFIG_BLK_DEV_PALMCHIP_BK3710=y
CONFIG_BLK_DEV_IDEDMA=y
#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=m
+CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
# CONFIG_SCSI_TGT is not set
# CONFIG_SCSI_NETLINK is not set
@@ -616,7 +627,7 @@ CONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#
-CONFIG_BLK_DEV_SD=m
+CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
# CONFIG_BLK_DEV_SR is not set
@@ -643,8 +654,9 @@ CONFIG_SCSI_LOWLEVEL=y
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_DH is not set
# CONFIG_SCSI_OSD_INITIATOR is not set
-CONFIG_ATA=m
+CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
CONFIG_SATA_PMP=y
CONFIG_ATA_SFF=y
# CONFIG_SATA_MV is not set
@@ -655,7 +667,7 @@ CONFIG_NETDEVICES=y
# CONFIG_BONDING is not set
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
-CONFIG_TUN=m
+CONFIG_TUN=y
# CONFIG_VETH is not set
CONFIG_PHYLIB=y
@@ -702,10 +714,7 @@ CONFIG_DM9000_DEBUGLEVEL=4
# CONFIG_KS8851 is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
-
-#
-# Wireless LAN
-#
+CONFIG_WLAN=y
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
@@ -722,24 +731,25 @@ CONFIG_DM9000_DEBUGLEVEL=4
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_USBNET is not set
# CONFIG_WAN is not set
-CONFIG_PPP=m
+CONFIG_PPP=y
# CONFIG_PPP_MULTILINK is not set
# CONFIG_PPP_FILTER is not set
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_ASYNC=y
+CONFIG_PPP_SYNC_TTY=y
+CONFIG_PPP_DEFLATE=y
# CONFIG_PPP_BSDCOMP is not set
# CONFIG_PPP_MPPE is not set
# CONFIG_PPPOE is not set
# CONFIG_PPPOL2TP is not set
# CONFIG_SLIP is not set
-CONFIG_SLHC=m
+CONFIG_SLHC=y
CONFIG_NETCONSOLE=y
# CONFIG_NETCONSOLE_DYNAMIC is not set
CONFIG_NETPOLL=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
#
# Input device support
@@ -753,19 +763,23 @@ CONFIG_INPUT=y
#
# CONFIG_INPUT_MOUSEDEV is not set
# CONFIG_INPUT_JOYDEV is not set
-CONFIG_INPUT_EVDEV=m
-CONFIG_INPUT_EVBUG=m
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_EVBUG=y
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADP5588 is not set
CONFIG_KEYBOARD_ATKBD=m
+# CONFIG_QT2160 is not set
# CONFIG_KEYBOARD_LKKBD is not set
CONFIG_KEYBOARD_GPIO=y
# CONFIG_KEYBOARD_MATRIX is not set
# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
CONFIG_KEYBOARD_XTKBD=m
@@ -783,6 +797,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_GUNZE is not set
# CONFIG_TOUCHSCREEN_ELO is not set
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
+# CONFIG_TOUCHSCREEN_MCS5000 is not set
# CONFIG_TOUCHSCREEN_MTOUCH is not set
# CONFIG_TOUCHSCREEN_INEXIO is not set
# CONFIG_TOUCHSCREEN_MK712 is not set
@@ -839,9 +854,11 @@ CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
-# CONFIG_VDCE is not set
+CONFIG_VDCE=y
+CONFIG_CIR=y
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_HELPER_AUTO=y
@@ -875,7 +892,6 @@ CONFIG_I2C_DAVINCI=y
# Miscellaneous I2C Chip support
#
# CONFIG_DS1682 is not set
-# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
@@ -897,6 +913,11 @@ CONFIG_SPI_GPIO=y
#
# CONFIG_SPI_SPIDEV is not set
# CONFIG_SPI_TLE62X0 is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_DEBUG_GPIO is not set
@@ -922,10 +943,20 @@ CONFIG_GPIO_PCF857X=y
#
# CONFIG_GPIO_MAX7301 is not set
# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
+
+#
+# AC97 GPIO expanders:
+#
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
# CONFIG_SENSORS_AD7414 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADCXX is not set
@@ -977,6 +1008,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_TMP421 is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
@@ -987,9 +1019,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_SENSORS_LIS3_SPI is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
# CONFIG_THERMAL is not set
-# CONFIG_THERMAL_HWMON is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
@@ -997,7 +1027,7 @@ CONFIG_WATCHDOG=y
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
-CONFIG_DAVINCI_WATCHDOG=m
+CONFIG_DAVINCI_WATCHDOG=y
#
# USB-based Watchdog Cards
@@ -1026,11 +1056,138 @@ CONFIG_SSB_POSSIBLE=y
# CONFIG_MFD_TC6393XB is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_MC13783 is not set
# CONFIG_AB3100_CORE is not set
# CONFIG_EZX_PCAP is not set
-# CONFIG_MEDIA_SUPPORT is not set
+# CONFIG_REGULATOR is not set
+CONFIG_MEDIA_SUPPORT=y
+
+#
+# Multimedia core support
+#
+CONFIG_VIDEO_DEV=y
+CONFIG_VIDEO_V4L2_COMMON=y
+# CONFIG_VIDEO_ALLOW_V4L1 is not set
+# CONFIG_VIDEO_V4L1_COMPAT is not set
+# CONFIG_DVB_CORE is not set
+CONFIG_VIDEO_MEDIA=y
+
+#
+# Multimedia drivers
+#
+# CONFIG_MEDIA_ATTACH is not set
+CONFIG_MEDIA_TUNER=y
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=y
+CONFIG_MEDIA_TUNER_TDA8290=y
+CONFIG_MEDIA_TUNER_TDA9887=y
+CONFIG_MEDIA_TUNER_TEA5761=y
+CONFIG_MEDIA_TUNER_TEA5767=y
+CONFIG_MEDIA_TUNER_MT20XX=y
+CONFIG_MEDIA_TUNER_XC2028=y
+CONFIG_MEDIA_TUNER_XC5000=y
+CONFIG_MEDIA_TUNER_MC44S803=y
+CONFIG_VIDEO_V4L2=y
+CONFIG_VIDEOBUF_GEN=y
+CONFIG_VIDEOBUF_DMA_CONTIG=y
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+
+#
+# Encoders/decoders and other helper chips
+#
+
+#
+# Audio decoders
+#
+# CONFIG_VIDEO_TVAUDIO is not set
+# CONFIG_VIDEO_TDA7432 is not set
+# CONFIG_VIDEO_TDA9840 is not set
+# CONFIG_VIDEO_TDA9875 is not set
+# CONFIG_VIDEO_TEA6415C is not set
+# CONFIG_VIDEO_TEA6420 is not set
+# CONFIG_VIDEO_MSP3400 is not set
+# CONFIG_VIDEO_CS5345 is not set
+# CONFIG_VIDEO_CS53L32A is not set
+# CONFIG_VIDEO_M52790 is not set
+# CONFIG_VIDEO_TLV320AIC23B is not set
+# CONFIG_VIDEO_WM8775 is not set
+# CONFIG_VIDEO_WM8739 is not set
+# CONFIG_VIDEO_VP27SMPX is not set
+
+#
+# RDS decoders
+#
+# CONFIG_VIDEO_SAA6588 is not set
+
+#
+# Video decoders
+#
+# CONFIG_VIDEO_ADV7180 is not set
+# CONFIG_VIDEO_BT819 is not set
+# CONFIG_VIDEO_BT856 is not set
+# CONFIG_VIDEO_BT866 is not set
+# CONFIG_VIDEO_KS0127 is not set
+# CONFIG_VIDEO_OV7670 is not set
+# CONFIG_VIDEO_MT9V011 is not set
+# CONFIG_VIDEO_TCM825X is not set
+# CONFIG_VIDEO_SAA7110 is not set
+# CONFIG_VIDEO_SAA711X is not set
+# CONFIG_VIDEO_SAA717X is not set
+# CONFIG_VIDEO_TVP514X is not set
+# CONFIG_VIDEO_TVP5150 is not set
+CONFIG_VIDEO_TVP7002=y
+# CONFIG_VIDEO_VPX3220 is not set
+
+#
+# Video and audio decoders
+#
+# CONFIG_VIDEO_CX25840 is not set
+
+#
+# MPEG video encoders
+#
+# CONFIG_VIDEO_CX2341X is not set
+
+#
+# Video encoders
+#
+# CONFIG_VIDEO_SAA7127 is not set
+# CONFIG_VIDEO_SAA7185 is not set
+# CONFIG_VIDEO_ADV7170 is not set
+# CONFIG_VIDEO_ADV7175 is not set
+CONFIG_VIDEO_THS7303=y
+CONFIG_VIDEO_THS7353=y
+CONFIG_VIDEO_THS7353_LUMA_CHANNEL=2
+CONFIG_VIDEO_ADV7343=y
+# CONFIG_VIDEO_THS8200 is not set
+
+#
+# Video improvement chips
+#
+# CONFIG_VIDEO_UPD64031A is not set
+# CONFIG_VIDEO_UPD64083 is not set
+CONFIG_DISPLAY_DAVINCI_DM646X_EVM=y
+CONFIG_CAPTURE_DAVINCI_DM646X_EVM=y
+CONFIG_VIDEO_DAVINCI_VPIF=y
+# CONFIG_VIDEO_DAVINCI_DISPLAY is not set
+# CONFIG_DAVINCI_ENC_MNGR is not set
+# CONFIG_DAVINCI_OSD is not set
+# CONFIG_VIDEO_VIVI is not set
+# CONFIG_VIDEO_VPSS_SYSTEM is not set
+# CONFIG_VIDEO_VPFE_CAPTURE is not set
+# CONFIG_VIDEO_SAA5246A is not set
+# CONFIG_VIDEO_SAA5249 is not set
+# CONFIG_SOC_CAMERA is not set
+# CONFIG_SOC_CAMERA_MT9T031 is not set
+# CONFIG_V4L_USB_DRIVERS is not set
+# CONFIG_RADIO_ADAPTERS is not set
+# CONFIG_DAB is not set
#
# Graphics support
@@ -1050,11 +1207,11 @@ CONFIG_SSB_POSSIBLE=y
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
-CONFIG_SOUND=m
+CONFIG_SOUND=y
# CONFIG_SOUND_OSS_CORE is not set
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
CONFIG_SND_JACK=y
# CONFIG_SND_SEQUENCER is not set
# CONFIG_SND_MIXER_OSS is not set
@@ -1080,34 +1237,27 @@ CONFIG_SND_SPI=y
CONFIG_SND_USB=y
# CONFIG_SND_USB_AUDIO is not set
# CONFIG_SND_USB_CAIAQ is not set
-CONFIG_SND_SOC=m
-CONFIG_SND_DAVINCI_SOC=m
-CONFIG_SND_DAVINCI_SOC_MCASP=m
-CONFIG_SND_DM6467_SOC_EVM=m
-CONFIG_SND_SOC_I2C_AND_SPI=m
+CONFIG_SND_SOC=y
+CONFIG_SND_DAVINCI_SOC=y
+CONFIG_SND_DAVINCI_SOC_MCASP=y
+CONFIG_SND_DM6467_SOC_EVM=y
+CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_ALL_CODECS is not set
-CONFIG_SND_SOC_SPDIF=m
-CONFIG_SND_SOC_TLV320AIC3X=m
+CONFIG_SND_SOC_SPDIF=y
+CONFIG_SND_SOC_TLV320AIC3X=y
# CONFIG_SOUND_PRIME is not set
CONFIG_HID_SUPPORT=y
-CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
+CONFIG_HID=y
# CONFIG_HIDRAW is not set
#
# USB Input Devices
#
-CONFIG_USB_HID=m
+CONFIG_USB_HID=y
# CONFIG_HID_PID is not set
# CONFIG_USB_HIDDEV is not set
#
-# USB HID Boot Protocol drivers
-#
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_MOUSE is not set
-
-#
# Special HID drivers
#
CONFIG_HID_A4TECH=m
@@ -1120,6 +1270,7 @@ CONFIG_HID_CYPRESS=m
CONFIG_HID_EZKEY=m
# CONFIG_HID_KYE is not set
CONFIG_HID_GYRATION=m
+# CONFIG_HID_TWINHAN is not set
# CONFIG_HID_KENSINGTON is not set
CONFIG_HID_LOGITECH=m
# CONFIG_LOGITECH_FF is not set
@@ -1142,7 +1293,7 @@ CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
# CONFIG_USB_ARCH_HAS_OHCI is not set
# CONFIG_USB_ARCH_HAS_EHCI is not set
-CONFIG_USB=m
+CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
@@ -1155,7 +1306,7 @@ CONFIG_USB_DEVICE_CLASS=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-CONFIG_USB_MON=m
+CONFIG_USB_MON=y
# CONFIG_USB_WUSB is not set
# CONFIG_USB_WUSB_CBAF is not set
@@ -1166,19 +1317,22 @@ CONFIG_USB_MON=m
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_HWA_HCD is not set
-CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_MUSB_HDRC=y
CONFIG_USB_MUSB_SOC=y
#
-# DaVinci 35x and 644x USB support
+# DaVinci 35x, 36x, 644x USB support
#
-# CONFIG_USB_MUSB_HOST is not set
-CONFIG_USB_MUSB_PERIPHERAL=y
+CONFIG_USB_MUSB_HOST=y
+# CONFIG_USB_MUSB_PERIPHERAL is not set
# CONFIG_USB_MUSB_OTG is not set
-CONFIG_USB_GADGET_MUSB_HDRC=y
+# CONFIG_MUSB_SCHEDULE_INTR_EP is not set
+# CONFIG_USB_GADGET_MUSB_HDRC is not set
+CONFIG_USB_MUSB_HDRC_HCD=y
CONFIG_MUSB_PIO_ONLY=y
# CONFIG_USB_MUSB_DEBUG is not set
@@ -1197,8 +1351,8 @@ CONFIG_MUSB_PIO_ONLY=y
#
# also be needed; see USB_STORAGE Help for more info
#
-CONFIG_USB_STORAGE=m
-# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE=y
+CONFIG_USB_STORAGE_DEBUG=y
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
# CONFIG_USB_STORAGE_ISD200 is not set
@@ -1244,10 +1398,10 @@ CONFIG_USB_STORAGE=m
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
-CONFIG_USB_TEST=m
+CONFIG_USB_TEST=y
# CONFIG_USB_ISIGHTFW is not set
# CONFIG_USB_VST is not set
-CONFIG_USB_GADGET=m
+CONFIG_USB_GADGET=y
# CONFIG_USB_GADGET_DEBUG is not set
CONFIG_USB_GADGET_DEBUG_FILES=y
CONFIG_USB_GADGET_DEBUG_FS=y
@@ -1259,11 +1413,13 @@ CONFIG_USB_GADGET_SELECTED=y
# CONFIG_USB_GADGET_LH7A40X is not set
# CONFIG_USB_GADGET_OMAP is not set
# CONFIG_USB_GADGET_PXA25X is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
# CONFIG_USB_GADGET_PXA27X is not set
# CONFIG_USB_GADGET_S3C_HSOTG is not set
# CONFIG_USB_GADGET_IMX is not set
# CONFIG_USB_GADGET_S3C2410 is not set
-# CONFIG_USB_GADGET_M66592 is not set
+CONFIG_USB_GADGET_M66592=y
+CONFIG_USB_M66592=y
# CONFIG_USB_GADGET_AMD5536UDC is not set
# CONFIG_USB_GADGET_FSL_QE is not set
# CONFIG_USB_GADGET_CI13XXX is not set
@@ -1274,11 +1430,11 @@ CONFIG_USB_GADGET_SELECTED=y
CONFIG_USB_GADGET_DUALSPEED=y
# CONFIG_USB_ZERO is not set
# CONFIG_USB_AUDIO is not set
-CONFIG_USB_ETH=m
+CONFIG_USB_ETH=y
CONFIG_USB_ETH_RNDIS=y
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_FILE_STORAGE=m
-# CONFIG_USB_FILE_STORAGE_TEST is not set
+# CONFIG_USB_ETH_EEM is not set
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FILE_STORAGE is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_MIDI_GADGET is not set
# CONFIG_USB_G_PRINTER is not set
@@ -1289,15 +1445,15 @@ CONFIG_USB_FILE_STORAGE=m
#
CONFIG_USB_OTG_UTILS=y
# CONFIG_USB_GPIO_VBUS is not set
-CONFIG_NOP_USB_XCEIV=m
-CONFIG_MMC=m
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set
#
# MMC/SD/SDIO Card Drivers
#
-CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK=y
# CONFIG_MMC_BLOCK_BOUNCE is not set
# CONFIG_SDIO_UART is not set
# CONFIG_MMC_TEST is not set
@@ -1306,18 +1462,19 @@ CONFIG_MMC_BLOCK=m
# MMC/SD/SDIO Host Controller Drivers
#
# CONFIG_MMC_SDHCI is not set
-CONFIG_MMC_DAVINCI=m
+# CONFIG_MMC_AT91 is not set
+# CONFIG_MMC_ATMELMCI is not set
+CONFIG_MMC_DAVINCI=y
# CONFIG_MMC_SPI is not set
# CONFIG_MEMSTICK is not set
-# CONFIG_ACCESSIBILITY is not set
CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=m
+CONFIG_LEDS_CLASS=y
#
# LED drivers
#
# CONFIG_LEDS_PCA9532 is not set
-CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_GPIO=y
CONFIG_LEDS_GPIO_PLATFORM=y
# CONFIG_LEDS_LP3944 is not set
# CONFIG_LEDS_PCA955X is not set
@@ -1328,9 +1485,9 @@ CONFIG_LEDS_GPIO_PLATFORM=y
# LED Triggers
#
CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_TIMER=y
# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_GPIO is not set
# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
@@ -1338,8 +1495,12 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=m
#
# iptables trigger is under Netfilter config (LED target)
#
+# CONFIG_ACCESSIBILITY is not set
CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=m
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
#
# RTC interfaces
@@ -1378,6 +1539,7 @@ CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_DRV_R9701 is not set
# CONFIG_RTC_DRV_RS5C348 is not set
# CONFIG_RTC_DRV_DS3234 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
#
# Platform RTC drivers
@@ -1399,8 +1561,11 @@ CONFIG_RTC_INTF_DEV=y
#
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
-# CONFIG_REGULATOR is not set
# CONFIG_UIO is not set
+
+#
+# TI VLYNQ
+#
# CONFIG_STAGING is not set
#
@@ -1429,6 +1594,7 @@ CONFIG_XFS_FS=m
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
@@ -1500,7 +1666,6 @@ CONFIG_MINIX_FS=m
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
-# CONFIG_NILFS2_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
@@ -1596,6 +1761,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_FRAME_WARN=1024
# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
@@ -1634,12 +1800,14 @@ CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
CONFIG_FRAME_POINTER=y
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
@@ -1682,7 +1850,6 @@ CONFIG_CRYPTO=y
#
# Crypto core or helper
#
-# CONFIG_CRYPTO_FIPS is not set
# CONFIG_CRYPTO_MANAGER is not set
# CONFIG_CRYPTO_MANAGER2 is not set
# CONFIG_CRYPTO_GF128MUL is not set
@@ -1714,11 +1881,13 @@ CONFIG_CRYPTO=y
#
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
#
# Digest
#
# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_GHASH is not set
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_MD5 is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -1770,7 +1939,7 @@ CONFIG_CRYPTO=y
#
CONFIG_BITREVERSE=y
CONFIG_GENERIC_FIND_LAST_BIT=y
-CONFIG_CRC_CCITT=m
+CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC_T10DIF=m
# CONFIG_CRC_ITU_T is not set
@@ -1778,7 +1947,7 @@ CONFIG_CRC32=y
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=m
+CONFIG_ZLIB_DEFLATE=y
CONFIG_DECOMPRESS_GZIP=y
CONFIG_GENERIC_ALLOCATOR=y
CONFIG_HAS_IOMEM=y
diff --git a/recipes/linux/linux-davinci/dm6467t-evm/defconfig b/recipes/linux/linux-davinci/dm6467t-evm/defconfig
index a4f136c245..b33b6f626f 100644
--- a/recipes/linux/linux-davinci/dm6467t-evm/defconfig
+++ b/recipes/linux/linux-davinci/dm6467t-evm/defconfig
@@ -1,14 +1,13 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.31-rc7-davinci1
-# Fri Sep 4 16:43:12 2009
+# Linux kernel version: 2.6.32-rc2-davinci1
+# Wed Oct 14 16:24:38 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -46,11 +45,12 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
#
# RCU Subsystem
#
-CONFIG_CLASSIC_RCU=y
-# CONFIG_TREE_RCU is not set
-# CONFIG_PREEMPT_RCU is not set
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_PREEMPT_RCU_TRACE is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
@@ -91,17 +91,15 @@ CONFIG_SHMEM=y
CONFIG_AIO=y
#
-# Performance Counters
+# Kernel Performance Events And Counters
#
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
-# CONFIG_STRIP_ASM_SYMS is not set
CONFIG_COMPAT_BRK=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
-# CONFIG_MARKERS is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
@@ -145,6 +143,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# System Type
#
+CONFIG_MMU=y
# CONFIG_ARCH_AAEC2000 is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_REALVIEW is not set
@@ -159,6 +158,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_STMP3XXX is not set
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_NOMADIK is not set
# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
# CONFIG_ARCH_IOP33X is not set
@@ -181,11 +181,13 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5PC1XX is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_U300 is not set
CONFIG_ARCH_DAVINCI=y
# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_BCMRING is not set
CONFIG_AINTC=y
CONFIG_ARCH_DAVINCI_DMx=y
@@ -235,11 +237,14 @@ CONFIG_ARM_THUMB=y
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+CONFIG_ARM_L1_CACHE_SHIFT=5
CONFIG_COMMON_CLKDEV=y
+CONFIG_FORCE_MAX_ZONEORDER=13
#
# Bus support
#
+# CONFIG_PCI is not set
# CONFIG_PCI_SYSCALL is not set
# CONFIG_ARCH_SUPPORTS_MSI is not set
# CONFIG_PCCARD is not set
@@ -255,6 +260,8 @@ CONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not set
CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_HZ=100
CONFIG_AEABI=y
@@ -276,6 +283,7 @@ CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_HAVE_MLOCK=y
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_LEDS=y
# CONFIG_LEDS_CPU is not set
@@ -408,6 +416,7 @@ CONFIG_NETFILTER_ADVANCED=y
# CONFIG_IP6_NF_IPTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
@@ -448,6 +457,7 @@ CONFIG_NETFILTER_ADVANCED=y
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
@@ -455,22 +465,22 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
-CONFIG_MTD=m
+CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_TESTS is not set
# CONFIG_MTD_CONCAT is not set
CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_TESTS is not set
# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
# CONFIG_MTD_AFS_PARTS is not set
# CONFIG_MTD_AR7_PARTS is not set
#
# User Modules And Translation Layers
#
-CONFIG_MTD_CHAR=m
-CONFIG_MTD_BLKDEVS=m
-CONFIG_MTD_BLOCK=m
-# CONFIG_MTD_BLOCK_RO is not set
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
@@ -481,9 +491,9 @@ CONFIG_MTD_BLOCK=m
#
# RAM/ROM/Flash chip drivers
#
-CONFIG_MTD_CFI=m
+CONFIG_MTD_CFI=y
# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=m
+CONFIG_MTD_GEN_PROBE=y
# CONFIG_MTD_CFI_ADV_OPTIONS is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
@@ -495,10 +505,10 @@ CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
-CONFIG_MTD_CFI_INTELEXT=m
-CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_INTELEXT=y
+CONFIG_MTD_CFI_AMDSTD=y
# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_CFI_UTIL=y
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
@@ -507,7 +517,7 @@ CONFIG_MTD_CFI_UTIL=m
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-CONFIG_MTD_PHYSMAP=m
+CONFIG_MTD_PHYSMAP=y
# CONFIG_MTD_PHYSMAP_COMPAT is not set
# CONFIG_MTD_ARM_INTEGRATOR is not set
# CONFIG_MTD_PLATRAM is not set
@@ -517,6 +527,7 @@ CONFIG_MTD_PHYSMAP=m
#
# CONFIG_MTD_DATAFLASH is not set
# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SST25L is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
@@ -528,17 +539,17 @@ CONFIG_MTD_PHYSMAP=m
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
-CONFIG_MTD_NAND=m
+CONFIG_MTD_NAND=y
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
# CONFIG_MTD_NAND_ECC_SMC is not set
# CONFIG_MTD_NAND_MUSEUM_IDS is not set
# CONFIG_MTD_NAND_GPIO is not set
-CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_IDS=y
# CONFIG_MTD_NAND_DISKONCHIP is not set
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_PLATFORM is not set
# CONFIG_MTD_ALAUDA is not set
-CONFIG_MTD_NAND_DAVINCI=m
+CONFIG_MTD_NAND_DAVINCI=y
# CONFIG_MTD_ONENAND is not set
#
@@ -553,7 +564,7 @@ CONFIG_MTD_NAND_DAVINCI=m
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_UB is not set
@@ -579,7 +590,7 @@ CONFIG_EEPROM_AT25=y
# CONFIG_EEPROM_MAX6875 is not set
# CONFIG_EEPROM_93CX6 is not set
CONFIG_HAVE_IDE=y
-CONFIG_IDE=m
+CONFIG_IDE=y
#
# Please see Documentation/ide/ide.txt for help/info on IDE drives
@@ -587,7 +598,7 @@ CONFIG_IDE=m
CONFIG_IDE_XFER_MODE=y
CONFIG_IDE_TIMINGS=y
# CONFIG_BLK_DEV_IDE_SATA is not set
-CONFIG_IDE_GD=m
+CONFIG_IDE_GD=y
CONFIG_IDE_GD_ATA=y
# CONFIG_IDE_GD_ATAPI is not set
# CONFIG_BLK_DEV_IDECD is not set
@@ -600,14 +611,14 @@ CONFIG_IDE_PROC_FS=y
#
# CONFIG_BLK_DEV_PLATFORM is not set
CONFIG_BLK_DEV_IDEDMA_SFF=y
-CONFIG_BLK_DEV_PALMCHIP_BK3710=m
+CONFIG_BLK_DEV_PALMCHIP_BK3710=y
CONFIG_BLK_DEV_IDEDMA=y
#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=m
+CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
# CONFIG_SCSI_TGT is not set
# CONFIG_SCSI_NETLINK is not set
@@ -616,7 +627,7 @@ CONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#
-CONFIG_BLK_DEV_SD=m
+CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
# CONFIG_BLK_DEV_SR is not set
@@ -643,8 +654,9 @@ CONFIG_SCSI_LOWLEVEL=y
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_DH is not set
# CONFIG_SCSI_OSD_INITIATOR is not set
-CONFIG_ATA=m
+CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
CONFIG_SATA_PMP=y
CONFIG_ATA_SFF=y
# CONFIG_SATA_MV is not set
@@ -655,7 +667,7 @@ CONFIG_NETDEVICES=y
# CONFIG_BONDING is not set
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
-CONFIG_TUN=m
+CONFIG_TUN=y
# CONFIG_VETH is not set
CONFIG_PHYLIB=y
@@ -702,10 +714,7 @@ CONFIG_DM9000_DEBUGLEVEL=4
# CONFIG_KS8851 is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
-
-#
-# Wireless LAN
-#
+CONFIG_WLAN=y
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
@@ -722,24 +731,25 @@ CONFIG_DM9000_DEBUGLEVEL=4
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_USBNET is not set
# CONFIG_WAN is not set
-CONFIG_PPP=m
+CONFIG_PPP=y
# CONFIG_PPP_MULTILINK is not set
# CONFIG_PPP_FILTER is not set
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_ASYNC=y
+CONFIG_PPP_SYNC_TTY=y
+CONFIG_PPP_DEFLATE=y
# CONFIG_PPP_BSDCOMP is not set
# CONFIG_PPP_MPPE is not set
# CONFIG_PPPOE is not set
# CONFIG_PPPOL2TP is not set
# CONFIG_SLIP is not set
-CONFIG_SLHC=m
+CONFIG_SLHC=y
CONFIG_NETCONSOLE=y
# CONFIG_NETCONSOLE_DYNAMIC is not set
CONFIG_NETPOLL=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
#
# Input device support
@@ -753,19 +763,23 @@ CONFIG_INPUT=y
#
# CONFIG_INPUT_MOUSEDEV is not set
# CONFIG_INPUT_JOYDEV is not set
-CONFIG_INPUT_EVDEV=m
-CONFIG_INPUT_EVBUG=m
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_EVBUG=y
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADP5588 is not set
CONFIG_KEYBOARD_ATKBD=m
+# CONFIG_QT2160 is not set
# CONFIG_KEYBOARD_LKKBD is not set
CONFIG_KEYBOARD_GPIO=y
# CONFIG_KEYBOARD_MATRIX is not set
# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
CONFIG_KEYBOARD_XTKBD=m
@@ -783,6 +797,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_GUNZE is not set
# CONFIG_TOUCHSCREEN_ELO is not set
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
+# CONFIG_TOUCHSCREEN_MCS5000 is not set
# CONFIG_TOUCHSCREEN_MTOUCH is not set
# CONFIG_TOUCHSCREEN_INEXIO is not set
# CONFIG_TOUCHSCREEN_MK712 is not set
@@ -839,9 +854,11 @@ CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
-# CONFIG_VDCE is not set
+CONFIG_VDCE=y
+CONFIG_CIR=y
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_HELPER_AUTO=y
@@ -875,7 +892,6 @@ CONFIG_I2C_DAVINCI=y
# Miscellaneous I2C Chip support
#
# CONFIG_DS1682 is not set
-# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
@@ -888,15 +904,20 @@ CONFIG_SPI_MASTER=y
#
# SPI Master Controller Drivers
#
-CONFIG_SPI_DAVINCI=m
-CONFIG_SPI_BITBANG=m
-CONFIG_SPI_GPIO=m
+CONFIG_SPI_DAVINCI=y
+CONFIG_SPI_BITBANG=y
+CONFIG_SPI_GPIO=y
#
# SPI Protocol Masters
#
# CONFIG_SPI_SPIDEV is not set
# CONFIG_SPI_TLE62X0 is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_DEBUG_GPIO is not set
@@ -922,10 +943,20 @@ CONFIG_GPIO_PCF857X=y
#
# CONFIG_GPIO_MAX7301 is not set
# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
+
+#
+# AC97 GPIO expanders:
+#
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
# CONFIG_SENSORS_AD7414 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADCXX is not set
@@ -977,6 +1008,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_TMP421 is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
@@ -987,9 +1019,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_SENSORS_LIS3_SPI is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
# CONFIG_THERMAL is not set
-# CONFIG_THERMAL_HWMON is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
@@ -997,7 +1027,7 @@ CONFIG_WATCHDOG=y
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
-CONFIG_DAVINCI_WATCHDOG=m
+CONFIG_DAVINCI_WATCHDOG=y
#
# USB-based Watchdog Cards
@@ -1026,11 +1056,138 @@ CONFIG_SSB_POSSIBLE=y
# CONFIG_MFD_TC6393XB is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_MC13783 is not set
# CONFIG_AB3100_CORE is not set
# CONFIG_EZX_PCAP is not set
-# CONFIG_MEDIA_SUPPORT is not set
+# CONFIG_REGULATOR is not set
+CONFIG_MEDIA_SUPPORT=y
+
+#
+# Multimedia core support
+#
+CONFIG_VIDEO_DEV=y
+CONFIG_VIDEO_V4L2_COMMON=y
+# CONFIG_VIDEO_ALLOW_V4L1 is not set
+# CONFIG_VIDEO_V4L1_COMPAT is not set
+# CONFIG_DVB_CORE is not set
+CONFIG_VIDEO_MEDIA=y
+
+#
+# Multimedia drivers
+#
+# CONFIG_MEDIA_ATTACH is not set
+CONFIG_MEDIA_TUNER=y
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=y
+CONFIG_MEDIA_TUNER_TDA8290=y
+CONFIG_MEDIA_TUNER_TDA9887=y
+CONFIG_MEDIA_TUNER_TEA5761=y
+CONFIG_MEDIA_TUNER_TEA5767=y
+CONFIG_MEDIA_TUNER_MT20XX=y
+CONFIG_MEDIA_TUNER_XC2028=y
+CONFIG_MEDIA_TUNER_XC5000=y
+CONFIG_MEDIA_TUNER_MC44S803=y
+CONFIG_VIDEO_V4L2=y
+CONFIG_VIDEOBUF_GEN=y
+CONFIG_VIDEOBUF_DMA_CONTIG=y
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+
+#
+# Encoders/decoders and other helper chips
+#
+
+#
+# Audio decoders
+#
+# CONFIG_VIDEO_TVAUDIO is not set
+# CONFIG_VIDEO_TDA7432 is not set
+# CONFIG_VIDEO_TDA9840 is not set
+# CONFIG_VIDEO_TDA9875 is not set
+# CONFIG_VIDEO_TEA6415C is not set
+# CONFIG_VIDEO_TEA6420 is not set
+# CONFIG_VIDEO_MSP3400 is not set
+# CONFIG_VIDEO_CS5345 is not set
+# CONFIG_VIDEO_CS53L32A is not set
+# CONFIG_VIDEO_M52790 is not set
+# CONFIG_VIDEO_TLV320AIC23B is not set
+# CONFIG_VIDEO_WM8775 is not set
+# CONFIG_VIDEO_WM8739 is not set
+# CONFIG_VIDEO_VP27SMPX is not set
+
+#
+# RDS decoders
+#
+# CONFIG_VIDEO_SAA6588 is not set
+
+#
+# Video decoders
+#
+# CONFIG_VIDEO_ADV7180 is not set
+# CONFIG_VIDEO_BT819 is not set
+# CONFIG_VIDEO_BT856 is not set
+# CONFIG_VIDEO_BT866 is not set
+# CONFIG_VIDEO_KS0127 is not set
+# CONFIG_VIDEO_OV7670 is not set
+# CONFIG_VIDEO_MT9V011 is not set
+# CONFIG_VIDEO_TCM825X is not set
+# CONFIG_VIDEO_SAA7110 is not set
+# CONFIG_VIDEO_SAA711X is not set
+# CONFIG_VIDEO_SAA717X is not set
+# CONFIG_VIDEO_TVP514X is not set
+# CONFIG_VIDEO_TVP5150 is not set
+CONFIG_VIDEO_TVP7002=y
+# CONFIG_VIDEO_VPX3220 is not set
+
+#
+# Video and audio decoders
+#
+# CONFIG_VIDEO_CX25840 is not set
+
+#
+# MPEG video encoders
+#
+# CONFIG_VIDEO_CX2341X is not set
+
+#
+# Video encoders
+#
+# CONFIG_VIDEO_SAA7127 is not set
+# CONFIG_VIDEO_SAA7185 is not set
+# CONFIG_VIDEO_ADV7170 is not set
+# CONFIG_VIDEO_ADV7175 is not set
+CONFIG_VIDEO_THS7303=y
+CONFIG_VIDEO_THS7353=y
+CONFIG_VIDEO_THS7353_LUMA_CHANNEL=3
+# CONFIG_VIDEO_ADV7343 is not set
+CONFIG_VIDEO_THS8200=y
+
+#
+# Video improvement chips
+#
+# CONFIG_VIDEO_UPD64031A is not set
+# CONFIG_VIDEO_UPD64083 is not set
+CONFIG_DISPLAY_DAVINCI_DM646X_EVM=y
+CONFIG_CAPTURE_DAVINCI_DM646X_EVM=y
+CONFIG_VIDEO_DAVINCI_VPIF=y
+# CONFIG_VIDEO_DAVINCI_DISPLAY is not set
+# CONFIG_DAVINCI_ENC_MNGR is not set
+# CONFIG_DAVINCI_OSD is not set
+# CONFIG_VIDEO_VIVI is not set
+# CONFIG_VIDEO_VPSS_SYSTEM is not set
+# CONFIG_VIDEO_VPFE_CAPTURE is not set
+# CONFIG_VIDEO_SAA5246A is not set
+# CONFIG_VIDEO_SAA5249 is not set
+# CONFIG_SOC_CAMERA is not set
+# CONFIG_SOC_CAMERA_MT9T031 is not set
+# CONFIG_V4L_USB_DRIVERS is not set
+# CONFIG_RADIO_ADAPTERS is not set
+# CONFIG_DAB is not set
#
# Graphics support
@@ -1050,11 +1207,11 @@ CONFIG_SSB_POSSIBLE=y
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
-CONFIG_SOUND=m
+CONFIG_SOUND=y
# CONFIG_SOUND_OSS_CORE is not set
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
CONFIG_SND_JACK=y
# CONFIG_SND_SEQUENCER is not set
# CONFIG_SND_MIXER_OSS is not set
@@ -1080,34 +1237,27 @@ CONFIG_SND_SPI=y
CONFIG_SND_USB=y
# CONFIG_SND_USB_AUDIO is not set
# CONFIG_SND_USB_CAIAQ is not set
-CONFIG_SND_SOC=m
-CONFIG_SND_DAVINCI_SOC=m
-CONFIG_SND_DAVINCI_SOC_MCASP=m
-CONFIG_SND_DM6467_SOC_EVM=m
-CONFIG_SND_SOC_I2C_AND_SPI=m
+CONFIG_SND_SOC=y
+CONFIG_SND_DAVINCI_SOC=y
+CONFIG_SND_DAVINCI_SOC_MCASP=y
+CONFIG_SND_DM6467_SOC_EVM=y
+CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_ALL_CODECS is not set
-CONFIG_SND_SOC_SPDIF=m
-CONFIG_SND_SOC_TLV320AIC3X=m
+CONFIG_SND_SOC_SPDIF=y
+CONFIG_SND_SOC_TLV320AIC3X=y
# CONFIG_SOUND_PRIME is not set
CONFIG_HID_SUPPORT=y
-CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
+CONFIG_HID=y
# CONFIG_HIDRAW is not set
#
# USB Input Devices
#
-CONFIG_USB_HID=m
+CONFIG_USB_HID=y
# CONFIG_HID_PID is not set
# CONFIG_USB_HIDDEV is not set
#
-# USB HID Boot Protocol drivers
-#
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_MOUSE is not set
-
-#
# Special HID drivers
#
CONFIG_HID_A4TECH=m
@@ -1120,6 +1270,7 @@ CONFIG_HID_CYPRESS=m
CONFIG_HID_EZKEY=m
# CONFIG_HID_KYE is not set
CONFIG_HID_GYRATION=m
+# CONFIG_HID_TWINHAN is not set
# CONFIG_HID_KENSINGTON is not set
CONFIG_HID_LOGITECH=m
# CONFIG_LOGITECH_FF is not set
@@ -1142,7 +1293,7 @@ CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
# CONFIG_USB_ARCH_HAS_OHCI is not set
# CONFIG_USB_ARCH_HAS_EHCI is not set
-CONFIG_USB=m
+CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
@@ -1155,7 +1306,7 @@ CONFIG_USB_DEVICE_CLASS=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-CONFIG_USB_MON=m
+CONFIG_USB_MON=y
# CONFIG_USB_WUSB is not set
# CONFIG_USB_WUSB_CBAF is not set
@@ -1166,14 +1317,15 @@ CONFIG_USB_MON=m
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_HWA_HCD is not set
-CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_MUSB_HDRC=y
CONFIG_USB_MUSB_SOC=y
#
-# DaVinci 35x and 644x USB support
+# DaVinci 35x, 36x, 644x USB support
#
# CONFIG_USB_MUSB_HOST is not set
CONFIG_USB_MUSB_PERIPHERAL=y
@@ -1197,7 +1349,7 @@ CONFIG_MUSB_PIO_ONLY=y
#
# also be needed; see USB_STORAGE Help for more info
#
-CONFIG_USB_STORAGE=m
+CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
@@ -1244,10 +1396,10 @@ CONFIG_USB_STORAGE=m
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
-CONFIG_USB_TEST=m
+CONFIG_USB_TEST=y
# CONFIG_USB_ISIGHTFW is not set
# CONFIG_USB_VST is not set
-CONFIG_USB_GADGET=m
+CONFIG_USB_GADGET=y
# CONFIG_USB_GADGET_DEBUG is not set
CONFIG_USB_GADGET_DEBUG_FILES=y
CONFIG_USB_GADGET_DEBUG_FS=y
@@ -1259,6 +1411,7 @@ CONFIG_USB_GADGET_SELECTED=y
# CONFIG_USB_GADGET_LH7A40X is not set
# CONFIG_USB_GADGET_OMAP is not set
# CONFIG_USB_GADGET_PXA25X is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
# CONFIG_USB_GADGET_PXA27X is not set
# CONFIG_USB_GADGET_S3C_HSOTG is not set
# CONFIG_USB_GADGET_IMX is not set
@@ -1274,11 +1427,11 @@ CONFIG_USB_GADGET_SELECTED=y
CONFIG_USB_GADGET_DUALSPEED=y
# CONFIG_USB_ZERO is not set
# CONFIG_USB_AUDIO is not set
-CONFIG_USB_ETH=m
+CONFIG_USB_ETH=y
CONFIG_USB_ETH_RNDIS=y
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_FILE_STORAGE=m
-# CONFIG_USB_FILE_STORAGE_TEST is not set
+# CONFIG_USB_ETH_EEM is not set
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FILE_STORAGE is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_MIDI_GADGET is not set
# CONFIG_USB_G_PRINTER is not set
@@ -1289,15 +1442,15 @@ CONFIG_USB_FILE_STORAGE=m
#
CONFIG_USB_OTG_UTILS=y
# CONFIG_USB_GPIO_VBUS is not set
-CONFIG_NOP_USB_XCEIV=m
-CONFIG_MMC=m
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set
#
# MMC/SD/SDIO Card Drivers
#
-CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK=y
# CONFIG_MMC_BLOCK_BOUNCE is not set
# CONFIG_SDIO_UART is not set
# CONFIG_MMC_TEST is not set
@@ -1306,18 +1459,19 @@ CONFIG_MMC_BLOCK=m
# MMC/SD/SDIO Host Controller Drivers
#
# CONFIG_MMC_SDHCI is not set
-CONFIG_MMC_DAVINCI=m
+# CONFIG_MMC_AT91 is not set
+# CONFIG_MMC_ATMELMCI is not set
+CONFIG_MMC_DAVINCI=y
# CONFIG_MMC_SPI is not set
# CONFIG_MEMSTICK is not set
-# CONFIG_ACCESSIBILITY is not set
CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=m
+CONFIG_LEDS_CLASS=y
#
# LED drivers
#
# CONFIG_LEDS_PCA9532 is not set
-CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_GPIO=y
CONFIG_LEDS_GPIO_PLATFORM=y
# CONFIG_LEDS_LP3944 is not set
# CONFIG_LEDS_PCA955X is not set
@@ -1328,9 +1482,9 @@ CONFIG_LEDS_GPIO_PLATFORM=y
# LED Triggers
#
CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_TIMER=y
# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_GPIO is not set
# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
@@ -1338,8 +1492,12 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=m
#
# iptables trigger is under Netfilter config (LED target)
#
+# CONFIG_ACCESSIBILITY is not set
CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=m
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
#
# RTC interfaces
@@ -1378,6 +1536,7 @@ CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_DRV_R9701 is not set
# CONFIG_RTC_DRV_RS5C348 is not set
# CONFIG_RTC_DRV_DS3234 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
#
# Platform RTC drivers
@@ -1399,8 +1558,11 @@ CONFIG_RTC_INTF_DEV=y
#
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
-# CONFIG_REGULATOR is not set
# CONFIG_UIO is not set
+
+#
+# TI VLYNQ
+#
# CONFIG_STAGING is not set
#
@@ -1429,6 +1591,7 @@ CONFIG_XFS_FS=m
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
@@ -1479,7 +1642,7 @@ CONFIG_MISC_FILESYSTEMS=y
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
-CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
@@ -1500,7 +1663,6 @@ CONFIG_MINIX_FS=m
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
-# CONFIG_NILFS2_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
@@ -1596,6 +1758,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_FRAME_WARN=1024
# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
@@ -1634,12 +1797,14 @@ CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
CONFIG_FRAME_POINTER=y
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
@@ -1682,7 +1847,6 @@ CONFIG_CRYPTO=y
#
# Crypto core or helper
#
-# CONFIG_CRYPTO_FIPS is not set
# CONFIG_CRYPTO_MANAGER is not set
# CONFIG_CRYPTO_MANAGER2 is not set
# CONFIG_CRYPTO_GF128MUL is not set
@@ -1714,11 +1878,13 @@ CONFIG_CRYPTO=y
#
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
#
# Digest
#
# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_GHASH is not set
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_MD5 is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -1770,7 +1936,7 @@ CONFIG_CRYPTO=y
#
CONFIG_BITREVERSE=y
CONFIG_GENERIC_FIND_LAST_BIT=y
-CONFIG_CRC_CCITT=m
+CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC_T10DIF=m
# CONFIG_CRC_ITU_T is not set
@@ -1778,7 +1944,7 @@ CONFIG_CRC32=y
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=m
+CONFIG_ZLIB_DEFLATE=y
CONFIG_DECOMPRESS_GZIP=y
CONFIG_GENERIC_ALLOCATOR=y
CONFIG_HAS_IOMEM=y
diff --git a/recipes/linux/linux-davinci/hawkboard/defconfig b/recipes/linux/linux-davinci/hawkboard/defconfig
new file mode 100644
index 0000000000..05bc1e74e6
--- /dev/null
+++ b/recipes/linux/linux-davinci/hawkboard/defconfig
@@ -0,0 +1,1712 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.32-rc6
+# Wed Nov 18 00:04:22 2009
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_ARCH_HAS_CPUFREQ=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ZONE_DMA=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_CONSTRUCTORS=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_TREE_RCU_TRACE is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_GROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_USER_SCHED=y
+# CONFIG_CGROUP_SCHED is not set
+# CONFIG_CGROUPS is not set
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
+# CONFIG_RELAY is not set
+# CONFIG_NAMESPACES is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+# CONFIG_RD_BZIP2 is not set
+# CONFIG_RD_LZMA is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLUB_DEBUG=y
+CONFIG_COMPAT_BRK=y
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_CLK=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_SLOW_WORK is not set
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+# CONFIG_IOSCHED_DEADLINE is not set
+# CONFIG_IOSCHED_CFQ is not set
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+# CONFIG_FREEZER is not set
+
+#
+# System Type
+#
+CONFIG_MMU=y
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_GEMINI is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_STMP3XXX is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_NOMADIK is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KIRKWOOD is not set
+# CONFIG_ARCH_LOKI is not set
+# CONFIG_ARCH_MV78XX0 is not set
+# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_MMP is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_W90X900 is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_MSM is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5PC1XX is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_U300 is not set
+CONFIG_ARCH_DAVINCI=y
+# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_BCMRING is not set
+CONFIG_CP_INTC=y
+
+#
+# TI DaVinci Implementations
+#
+
+#
+# DaVinci Core Type
+#
+# CONFIG_ARCH_DAVINCI_DM644x is not set
+# CONFIG_ARCH_DAVINCI_DM355 is not set
+# CONFIG_ARCH_DAVINCI_DM646x is not set
+# CONFIG_ARCH_DAVINCI_DA830 is not set
+CONFIG_ARCH_DAVINCI_DA850=y
+CONFIG_ARCH_DAVINCI_DA8XX=y
+# CONFIG_ARCH_DAVINCI_DM365 is not set
+CONFIG_CPPI41=y
+
+#
+# DaVinci Board Type
+#
+CONFIG_MACH_DAVINCI_DA850_EVM=y
+CONFIG_DA850_UI_NONE=y
+# CONFIG_DA850_UI_RMII is not set
+# CONFIG_DA850_UI_CLCD is not set
+CONFIG_DAVINCI_MUX=y
+# CONFIG_DAVINCI_MUX_DEBUG is not set
+# CONFIG_DAVINCI_MUX_WARNINGS is not set
+CONFIG_DAVINCI_RESET_CLOCKS=y
+CONFIG_DAVINCI_MCBSP=y
+# CONFIG_DAVINCI_MCBSP0 is not set
+CONFIG_DAVINCI_MCBSP1=y
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_ARM926T=y
+CONFIG_CPU_32v5=y
+CONFIG_CPU_ABRT_EV5TJ=y
+CONFIG_CPU_PABRT_LEGACY=y
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_COPY_V4WB=y
+CONFIG_CPU_TLB_V4WBI=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
+# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+CONFIG_ARM_L1_CACHE_SHIFT=5
+CONFIG_COMMON_CLKDEV=y
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMSPLIT_2G is not set
+# CONFIG_VMSPLIT_1G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_HZ=100
+CONFIG_AEABI=y
+CONFIG_OABI_COMPAT=y
+CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+# CONFIG_HIGHMEM is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4096
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_HAVE_MLOCK=y
+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+# CONFIG_KSM is not set
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_LEDS=y
+# CONFIG_LEDS_CPU is not set
+CONFIG_ALIGNMENT_TRAP=y
+# CONFIG_UACCESS_WITH_MEMCPY is not set
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE=""
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
+
+#
+# CPU Power Management
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+# CONFIG_CPU_FREQ_DEBUG is not set
+CONFIG_CPU_FREQ_STAT=y
+# CONFIG_CPU_FREQ_STAT_DETAILS is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+# CONFIG_FPE_NWFPE is not set
+# CONFIG_FPE_FASTFPE is not set
+# CONFIG_VFP is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_HAVE_AOUT=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options
+#
+# CONFIG_PM is not set
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+# CONFIG_IP_PNP_BOOTP is not set
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+CONFIG_INET_XFRM_MODE_BEET=y
+# CONFIG_INET_LRO is not set
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=m
+# CONFIG_IPV6_PRIVACY is not set
+# CONFIG_IPV6_ROUTER_PREF is not set
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+# CONFIG_INET6_AH is not set
+# CONFIG_INET6_ESP is not set
+# CONFIG_INET6_IPCOMP is not set
+# CONFIG_IPV6_MIP6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_NDISC_NODETYPE=y
+# CONFIG_IPV6_TUNNEL is not set
+# CONFIG_IPV6_MULTIPLE_TABLES is not set
+# CONFIG_IPV6_MROUTE is not set
+# CONFIG_NETWORK_SECMARK is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+
+#
+# Core Netfilter Configuration
+#
+# CONFIG_NETFILTER_NETLINK_QUEUE is not set
+# CONFIG_NETFILTER_NETLINK_LOG is not set
+# CONFIG_NF_CONNTRACK is not set
+# CONFIG_NETFILTER_XTABLES is not set
+# CONFIG_IP_VS is not set
+
+#
+# IP: Netfilter Configuration
+#
+# CONFIG_NF_DEFRAG_IPV4 is not set
+# CONFIG_IP_NF_QUEUE is not set
+# CONFIG_IP_NF_IPTABLES is not set
+# CONFIG_IP_NF_ARPTABLES is not set
+
+#
+# IPv6: Netfilter Configuration
+#
+# CONFIG_IP6_NF_QUEUE is not set
+# CONFIG_IP6_NF_IPTABLES is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_NET_DSA is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_PHONET is not set
+# CONFIG_IEEE802154 is not set
+# CONFIG_NET_SCHED is not set
+# CONFIG_DCB is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+# CONFIG_WIRELESS is not set
+# CONFIG_WIMAX is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+# CONFIG_FW_LOADER is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_TESTS is not set
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_CFI_INTELEXT=y
+# CONFIG_MTD_CFI_AMDSTD is not set
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+CONFIG_MTD_PHYSMAP=y
+# CONFIG_MTD_PHYSMAP_COMPAT is not set
+# CONFIG_MTD_ARM_INTEGRATOR is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_DATAFLASH is not set
+CONFIG_MTD_M25P80=y
+CONFIG_M25PXX_USE_FAST_READ=y
+# CONFIG_MTD_SST25L is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_NAND=y
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_NAND_ECC_SMC is not set
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+# CONFIG_MTD_NAND_GPIO is not set
+CONFIG_MTD_NAND_IDS=y
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+# CONFIG_MTD_NAND_NANDSIM is not set
+# CONFIG_MTD_NAND_PLATFORM is not set
+# CONFIG_MTD_ALAUDA is not set
+CONFIG_MTD_NAND_DAVINCI=y
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+
+#
+# UBI - Unsorted block images
+#
+# CONFIG_MTD_UBI is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=1
+CONFIG_BLK_DEV_RAM_SIZE=32768
+# CONFIG_BLK_DEV_XIP is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_MG_DISK is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_ICS932S401 is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_ISL29003 is not set
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=y
+# CONFIG_EEPROM_AT25 is not set
+# CONFIG_EEPROM_LEGACY is not set
+# CONFIG_EEPROM_MAX6875 is not set
+# CONFIG_EEPROM_93CX6 is not set
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+# CONFIG_SCSI_TGT is not set
+# CONFIG_SCSI_NETLINK is not set
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+# CONFIG_BLK_DEV_SR is not set
+# CONFIG_CHR_DEV_SG is not set
+# CONFIG_CHR_DEV_SCH is not set
+# CONFIG_SCSI_MULTI_LUN is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_LIBSAS is not set
+# CONFIG_SCSI_SRP_ATTRS is not set
+CONFIG_SCSI_LOWLEVEL=y
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_LIBFC is not set
+# CONFIG_LIBFCOE is not set
+# CONFIG_SCSI_DEBUG is not set
+# CONFIG_SCSI_DH is not set
+# CONFIG_SCSI_OSD_INITIATOR is not set
+CONFIG_ATA=y
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_SATA_PMP=y
+CONFIG_SATA_AHCI=y
+# CONFIG_ATA_SFF is not set
+# CONFIG_MD is not set
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+CONFIG_TUN=m
+# CONFIG_VETH is not set
+CONFIG_PHYLIB=y
+
+#
+# MII PHY device drivers
+#
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+CONFIG_LXT_PHY=y
+# CONFIG_CICADA_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_SMSC_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_REALTEK_PHY is not set
+# CONFIG_NATIONAL_PHY is not set
+# CONFIG_STE10XP is not set
+CONFIG_LSI_ET1011C_PHY=y
+# CONFIG_FIXED_PHY is not set
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_AX88796 is not set
+# CONFIG_SMC91X is not set
+CONFIG_TI_DAVINCI_EMAC=y
+# CONFIG_DM9000 is not set
+# CONFIG_ENC28J60 is not set
+# CONFIG_ETHOC is not set
+# CONFIG_SMC911X is not set
+# CONFIG_SMSC911X is not set
+# CONFIG_DNET is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+# CONFIG_B44 is not set
+# CONFIG_KS8842 is not set
+# CONFIG_KS8851 is not set
+# CONFIG_KS8851_MLL is not set
+# CONFIG_NETDEV_1000 is not set
+# CONFIG_NETDEV_10000 is not set
+CONFIG_WLAN=y
+# CONFIG_WLAN_PRE80211 is not set
+# CONFIG_WLAN_80211 is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_WAN is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+CONFIG_NETCONSOLE=y
+# CONFIG_NETCONSOLE_DYNAMIC is not set
+CONFIG_NETPOLL=y
+CONFIG_NETPOLL_TRAP=y
+CONFIG_NET_POLL_CONTROLLER=y
+# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=m
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=m
+CONFIG_INPUT_EVBUG=m
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADP5588 is not set
+CONFIG_KEYBOARD_ATKBD=m
+# CONFIG_QT2160 is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=y
+# CONFIG_KEYBOARD_MATRIX is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+CONFIG_KEYBOARD_XTKBD=m
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
+# CONFIG_TOUCHSCREEN_AD7877 is not set
+# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
+# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
+# CONFIG_TOUCHSCREEN_AD7879 is not set
+# CONFIG_TOUCHSCREEN_EETI is not set
+# CONFIG_TOUCHSCREEN_FUJITSU is not set
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
+# CONFIG_TOUCHSCREEN_MCS5000 is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_INEXIO is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
+# CONFIG_TOUCHSCREEN_TSC2007 is not set
+# CONFIG_TOUCHSCREEN_W90X900 is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_SERPORT=y
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+# CONFIG_VT_CONSOLE is not set
+CONFIG_HW_CONSOLE=y
+# CONFIG_VT_HW_CONSOLE_BINDING is not set
+CONFIG_DEVKMEM=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=3
+CONFIG_SERIAL_8250_RUNTIME_UARTS=3
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_MAX3100 is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=8
+# CONFIG_IPMI_HANDLER is not set
+CONFIG_HW_RANDOM=m
+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_HELPER_AUTO=y
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_DAVINCI=y
+# CONFIG_I2C_DESIGNWARE is not set
+# CONFIG_I2C_GPIO is not set
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_SIMTEC is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_TINY_USB is not set
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_PCA_PLATFORM is not set
+# CONFIG_I2C_STUB is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_DS1682 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+CONFIG_SPI=y
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_DAVINCI=y
+CONFIG_SPI_DAVINCI_DMA=y
+CONFIG_SPI_BITBANG=y
+# CONFIG_SPI_GPIO is not set
+
+#
+# SPI Protocol Masters
+#
+# CONFIG_SPI_SPIDEV is not set
+# CONFIG_SPI_TLE62X0 is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_GPIO_SYSFS is not set
+
+#
+# Memory mapped GPIO expanders:
+#
+
+#
+# I2C GPIO expanders:
+#
+# CONFIG_GPIO_MAX732X is not set
+CONFIG_GPIO_PCA953X=y
+CONFIG_GPIO_PCF857X=y
+
+#
+# PCI GPIO expanders:
+#
+
+#
+# SPI GPIO expanders:
+#
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
+
+#
+# AC97 GPIO expanders:
+#
+# CONFIG_W1 is not set
+# CONFIG_POWER_SUPPLY is not set
+# CONFIG_HWMON is not set
+# CONFIG_THERMAL is not set
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+CONFIG_DAVINCI_WATCHDOG=y
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_ASIC3 is not set
+# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TWL4030_CORE is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_MFD_T7L66XB is not set
+# CONFIG_MFD_TC6387XB is not set
+# CONFIG_MFD_TC6393XB is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_MC13783 is not set
+# CONFIG_AB3100_CORE is not set
+# CONFIG_EZX_PCAP is not set
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+# CONFIG_REGULATOR_BQ24022 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_TPS65023 is not set
+CONFIG_REGULATOR_TPS6507X=y
+# CONFIG_MEDIA_SUPPORT is not set
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_SYS_FOPS is not set
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_DAVINCI is not set
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_FB_DA8XX=y
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_SOUND=y
+# CONFIG_SOUND_OSS_CORE is not set
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+CONFIG_SND_JACK=y
+# CONFIG_SND_SEQUENCER is not set
+# CONFIG_SND_MIXER_OSS is not set
+# CONFIG_SND_PCM_OSS is not set
+# CONFIG_SND_HRTIMER is not set
+# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+# CONFIG_SND_RAWMIDI_SEQ is not set
+# CONFIG_SND_OPL3_LIB_SEQ is not set
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+# CONFIG_SND_SBAWE_SEQ is not set
+# CONFIG_SND_EMU10K1_SEQ is not set
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+CONFIG_SND_ARM=y
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+# CONFIG_SND_USB_AUDIO is not set
+# CONFIG_SND_USB_CAIAQ is not set
+CONFIG_SND_SOC=y
+CONFIG_SND_DAVINCI_SOC=y
+CONFIG_SND_DAVINCI_SOC_MCASP=y
+CONFIG_SND_DA850_SOC_EVM=y
+CONFIG_SND_SOC_I2C_AND_SPI=y
+# CONFIG_SND_SOC_ALL_CODECS is not set
+CONFIG_SND_SOC_TLV320AIC3X=y
+# CONFIG_SOUND_PRIME is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+# CONFIG_HIDRAW is not set
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=y
+# CONFIG_HID_PID is not set
+# CONFIG_USB_HIDDEV is not set
+
+#
+# Special HID drivers
+#
+# CONFIG_HID_A4TECH is not set
+# CONFIG_HID_APPLE is not set
+# CONFIG_HID_BELKIN is not set
+# CONFIG_HID_CHERRY is not set
+# CONFIG_HID_CHICONY is not set
+# CONFIG_HID_CYPRESS is not set
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EZKEY is not set
+# CONFIG_HID_KYE is not set
+# CONFIG_HID_GYRATION is not set
+# CONFIG_HID_TWINHAN is not set
+# CONFIG_HID_KENSINGTON is not set
+# CONFIG_HID_LOGITECH is not set
+# CONFIG_HID_MICROSOFT is not set
+# CONFIG_HID_MONTEREY is not set
+# CONFIG_HID_NTRIG is not set
+# CONFIG_HID_PANTHERLORD is not set
+# CONFIG_HID_PETALYNX is not set
+# CONFIG_HID_SAMSUNG is not set
+# CONFIG_HID_SONY is not set
+# CONFIG_HID_SUNPLUS is not set
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_ZEROPLUS is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+# CONFIG_USB_DEVICEFS is not set
+# CONFIG_USB_DEVICE_CLASS is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+# CONFIG_USB_MON is not set
+# CONFIG_USB_WUSB is not set
+# CONFIG_USB_WUSB_CBAF is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_HWA_HCD is not set
+CONFIG_USB_MUSB_HDRC=y
+CONFIG_USB_MUSB_SOC=y
+# CONFIG_USB_MUSB_HOST is not set
+# CONFIG_USB_MUSB_PERIPHERAL is not set
+CONFIG_USB_MUSB_DUAL_ROLE=y
+# CONFIG_USB_MUSB_OTG is not set
+CONFIG_USB_GADGET_MUSB_HDRC=y
+CONFIG_USB_MUSB_HDRC_HCD=y
+# CONFIG_MUSB_PIO_ONLY is not set
+# CONFIG_USB_INVENTRA_DMA is not set
+# CONFIG_USB_TI_CPPI_DMA is not set
+CONFIG_USB_TI_CPPI41_DMA=y
+CONFIG_USB_MUSB_DEBUG=y
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+# CONFIG_USB_WDM is not set
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_STORAGE_ALAUDA is not set
+# CONFIG_USB_STORAGE_ONETOUCH is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB port drivers
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_SEVSEG is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_BERRY_CHARGE is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_SISUSBVGA is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+# CONFIG_USB_TEST is not set
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_VST is not set
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_AT91 is not set
+# CONFIG_USB_GADGET_ATMEL_USBA is not set
+# CONFIG_USB_GADGET_FSL_USB2 is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_GADGET_PXA25X is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
+# CONFIG_USB_GADGET_PXA27X is not set
+# CONFIG_USB_GADGET_S3C_HSOTG is not set
+# CONFIG_USB_GADGET_IMX is not set
+# CONFIG_USB_GADGET_S3C2410 is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_FSL_QE is not set
+# CONFIG_USB_GADGET_CI13XXX is not set
+# CONFIG_USB_GADGET_NET2280 is not set
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LANGWELL is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_ZERO is not set
+# CONFIG_USB_AUDIO is not set
+CONFIG_USB_ETH=y
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_ETH_EEM is not set
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FILE_STORAGE is not set
+# CONFIG_USB_G_SERIAL is not set
+# CONFIG_USB_MIDI_GADGET is not set
+# CONFIG_USB_G_PRINTER is not set
+# CONFIG_USB_CDC_COMPOSITE is not set
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+# CONFIG_USB_GPIO_VBUS is not set
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_BOUNCE=y
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+# CONFIG_MMC_SDHCI is not set
+# CONFIG_MMC_AT91 is not set
+# CONFIG_MMC_ATMELMCI is not set
+CONFIG_MMC_DAVINCI=y
+# CONFIG_MMC_SPI is not set
+# CONFIG_MEMSTICK is not set
+# CONFIG_NEW_LEDS is not set
+# CONFIG_ACCESSIBILITY is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+# CONFIG_RTC_DRV_RX8025 is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_DS3234 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_OMAP=y
+# CONFIG_DMADEVICES is not set
+# CONFIG_AUXDISPLAY is not set
+# CONFIG_UIO is not set
+
+#
+# TI VLYNQ
+#
+# CONFIG_STAGING is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+# CONFIG_EXT4_FS is not set
+CONFIG_JBD=y
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+CONFIG_XFS_FS=m
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_POSIX_ACL is not set
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_DEBUG is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+CONFIG_AUTOFS4_FS=m
+# CONFIG_FUSE_FS is not set
+
+#
+# Caches
+#
+# CONFIG_FSCACHE is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_CRAMFS=y
+# CONFIG_SQUASHFS is not set
+# CONFIG_VXFS_FS is not set
+CONFIG_MINIX_FS=m
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+# CONFIG_NFS_V3_ACL is not set
+# CONFIG_NFS_V4 is not set
+CONFIG_ROOT_NFS=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V3=y
+# CONFIG_NFSD_V3_ACL is not set
+# CONFIG_NFSD_V4 is not set
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+CONFIG_NLS_UTF8=m
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+# CONFIG_ENABLE_WARN_DEPRECATED is not set
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=1024
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_KERNEL is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_LATENCYTOP is not set
+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_TRACING_SUPPORT=y
+# CONFIG_FTRACE is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_ARM_UNWIND is not set
+# CONFIG_DEBUG_USER is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+# CONFIG_CRYPTO_MANAGER is not set
+# CONFIG_CRYPTO_MANAGER2 is not set
+# CONFIG_CRYPTO_GF128MUL is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_CRYPTD is not set
+# CONFIG_CRYPTO_AUTHENC is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+# CONFIG_CRYPTO_CCM is not set
+# CONFIG_CRYPTO_GCM is not set
+# CONFIG_CRYPTO_SEQIV is not set
+
+#
+# Block modes
+#
+# CONFIG_CRYPTO_CBC is not set
+# CONFIG_CRYPTO_CTR is not set
+# CONFIG_CRYPTO_CTS is not set
+# CONFIG_CRYPTO_ECB is not set
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_PCBC is not set
+# CONFIG_CRYPTO_XTS is not set
+
+#
+# Hash modes
+#
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
+
+#
+# Digest
+#
+# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_GHASH is not set
+# CONFIG_CRYPTO_MD4 is not set
+# CONFIG_CRYPTO_MD5 is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+# CONFIG_CRYPTO_SHA1 is not set
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+
+#
+# Ciphers
+#
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SALSA20 is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+
+#
+# Compression
+#
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_ZLIB is not set
+# CONFIG_CRYPTO_LZO is not set
+
+#
+# Random Number Generation
+#
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+# CONFIG_CRYPTO_HW is not set
+# CONFIG_BINARY_PRINTF is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+CONFIG_CRC_CCITT=m
+# CONFIG_CRC16 is not set
+CONFIG_CRC_T10DIF=m
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_NLATTR=y
diff --git a/recipes/linux/linux-davinci/hawkboard/patch_hawk.diff b/recipes/linux/linux-davinci/hawkboard/patch_hawk.diff
new file mode 100644
index 0000000000..fb323236ac
--- /dev/null
+++ b/recipes/linux/linux-davinci/hawkboard/patch_hawk.diff
@@ -0,0 +1,196 @@
+diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c
+index 607dd2d..d7f5dff 100755
+--- a/arch/arm/mach-davinci/board-da850-evm.c
++++ b/arch/arm/mach-davinci/board-da850-evm.c
+@@ -37,14 +37,14 @@
+ #include <mach/nand.h>
+ #include <mach/mux.h>
+
+-#define DA850_EVM_PHY_MASK 0x1
++#define DA850_EVM_PHY_MASK (1 << 7)
+ #define DA850_EVM_MDIO_FREQUENCY 2200000 /* PHY bus frequency */
+
+ #define DA850_LCD_PWR_PIN GPIO_TO_PIN(2, 8)
+ #define DA850_LCD_BL_PIN GPIO_TO_PIN(2, 15)
+
+-#define DA850_MMCSD_CD_PIN GPIO_TO_PIN(4, 0)
+-#define DA850_MMCSD_WP_PIN GPIO_TO_PIN(4, 1)
++#define DA850_MMCSD_CD_PIN GPIO_TO_PIN(3, 12)
++#define DA850_MMCSD_WP_PIN GPIO_TO_PIN(3, 13)
+
+ #define DA850_MII_MDIO_CLKEN_PIN GPIO_TO_PIN(2, 6)
+
+@@ -431,8 +431,8 @@ static struct davinci_uart_config da850_evm_uart_config __initdata = {
+ static u8 da850_iis_serializer_direction[] = {
+ INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE,
+ INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE,
+- INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, TX_MODE,
+- RX_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE,
++ INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE,
++ INACTIVE_MODE, TX_MODE, RX_MODE, INACTIVE_MODE,
+ };
+
+ static struct snd_platform_data da850_evm_snd_data = {
+@@ -866,11 +866,11 @@ static __init void da850_evm_init(void)
+ {
+ int ret;
+
+- ret = pmic_tps65070_init();
++/* ret = pmic_tps65070_init();
+ if (ret)
+ pr_warning("da850_evm_init: TPS65070 PMIC init failed: %d\n",
+ ret);
+-
++*/
+ ret = da8xx_register_edma();
+ if (ret)
+ pr_warning("da850_evm_init: edma registration failed: %d\n",
+@@ -886,12 +886,26 @@ static __init void da850_evm_init(void)
+ pr_warning("da850_evm_init: i2c0 registration failed: %d\n",
+ ret);
+
++ davinci_serial_init(&da850_evm_uart_config);
++
++ i2c_register_board_info(1, da850_evm_i2c_devices,
++ ARRAY_SIZE(da850_evm_i2c_devices));
++
++ __raw_writel(0, IO_ADDRESS(0x01E13028));
++
++ /*
++ * shut down uart 0 and 1; they are not used on the board and
++ * accessing them causes endless "too much work in irq53" messages
++ * with arago fs
++ */
++ __raw_writel(0, IO_ADDRESS(DA8XX_UART1_BASE) + 0x30);
++ __raw_writel(0, IO_ADDRESS(DA8XX_UART0_BASE) + 0x30);
+
+ ret = da8xx_register_watchdog();
+ if (ret)
+ pr_warning("da830_evm_init: watchdog registration failed: %d\n",
+ ret);
+-
++
+ if (HAS_MMC) {
+ ret = da8xx_pinmux_setup(da850_mmcsd0_pins);
+ if (ret)
+@@ -916,19 +930,6 @@ static __init void da850_evm_init(void)
+ " %d\n", ret);
+ }
+
+- davinci_serial_init(&da850_evm_uart_config);
+-
+- i2c_register_board_info(1, da850_evm_i2c_devices,
+- ARRAY_SIZE(da850_evm_i2c_devices));
+-
+- /*
+- * shut down uart 0 and 1; they are not used on the board and
+- * accessing them causes endless "too much work in irq53" messages
+- * with arago fs
+- */
+- __raw_writel(0, IO_ADDRESS(DA8XX_UART1_BASE) + 0x30);
+- __raw_writel(0, IO_ADDRESS(DA8XX_UART0_BASE) + 0x30);
+-
+ if (HAS_MCBSP0) {
+ if (HAS_EMAC)
+ pr_warning("WARNING: both MCBSP0 and EMAC are "
+@@ -988,15 +989,17 @@ static __init void da850_evm_init(void)
+ pr_warning("da850_evm_init: lcd initialization failed: %d\n",
+ ret);
+
+- ret = da8xx_register_lcdc(&sharp_lk043t1dg01_pdata);
++ ret = da8xx_register_lcdc(&vga_monitor_pdata);
+ if (ret)
+ pr_warning("da850_evm_init: lcdc registration failed: %d\n",
+ ret);
+
++#if 0
+ ret = da8xx_register_rtc();
+ if (ret)
+ pr_warning("da850_evm_init: rtc setup failed: %d\n", ret);
+
++
+ ret = da850_register_cpufreq();
+ if (ret)
+ pr_warning("da850_evm_init: cpufreq registration failed: %d\n",
+@@ -1006,6 +1009,7 @@ static __init void da850_evm_init(void)
+ if (ret)
+ pr_warning("da850_evm_init: cpuidle registration failed: %d\n",
+ ret);
++#endif
+
+ ret = da8xx_pinmux_setup(da850_spi1_pins);
+ if (ret)
+@@ -1021,6 +1025,7 @@ static __init void da850_evm_init(void)
+ if (ret)
+ pr_warning("da850_evm_init: SATA registration failed: %d\n",
+ ret);
++
+ }
+
+ #ifdef CONFIG_SERIAL_8250_CONSOLE
+diff --git a/arch/arm/mach-davinci/da850.c b/arch/arm/mach-davinci/da850.c
+index 94355fa..cda39a3 100644
+--- a/arch/arm/mach-davinci/da850.c
++++ b/arch/arm/mach-davinci/da850.c
+@@ -658,7 +658,7 @@ const short da850_rmii_pins[] __initdata = {
+ const short da850_mcasp_pins[] __initdata = {
+ DA850_AHCLKX, DA850_ACLKX, DA850_AFSX,
+ DA850_AHCLKR, DA850_ACLKR, DA850_AFSR, DA850_AMUTE,
+- DA850_AXR_11, DA850_AXR_12,
++ DA850_AXR_11, DA850_AXR_12, DA850_AXR_13, DA850_AXR_14,
+ -1
+ };
+
+diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c
+index b3f1317..7218539 100755
+--- a/arch/arm/mach-davinci/devices-da8xx.c
++++ b/arch/arm/mach-davinci/devices-da8xx.c
+@@ -396,6 +396,11 @@ struct da8xx_lcdc_platform_data sharp_lk043t1dg01_pdata = {
+ .controller_data = &lcd_cfg,
+ .type = "Sharp_LK043T1DG01",
+ };
++struct da8xx_lcdc_platform_data vga_monitor_pdata = {
++ .manu_name = "vga_monitor",
++ .controller_data = &lcd_cfg,
++ .type = "VGA_Monitor",
++};
+
+ #if !defined(CONFIG_FB_DA8XX) && !defined(CONFIG_FB_DA8XX_MODULE)
+ static struct da8xx_clcd_platform_data da8xx_evm_clcd_pdata = {
+diff --git a/arch/arm/mach-davinci/include/mach/da8xx.h b/arch/arm/mach-davinci/include/mach/da8xx.h
+index 362ff83..8da6983 100644
+--- a/arch/arm/mach-davinci/include/mach/da8xx.h
++++ b/arch/arm/mach-davinci/include/mach/da8xx.h
+@@ -110,6 +110,7 @@ extern struct platform_device da8xx_serial_device;
+ extern struct emac_platform_data da8xx_emac_pdata;
+ extern struct da8xx_lcdc_platform_data sharp_lcd035q3dg01_pdata;
+ extern struct da8xx_lcdc_platform_data sharp_lk043t1dg01_pdata;
++extern struct da8xx_lcdc_platform_data vga_monitor_pdata;
+ void da8xx_usb20_configure(struct musb_hdrc_platform_data *pdata, u8 num_inst);
+
+ extern const short da830_emif25_pins[];
+diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
+index 67550e6..5e32391 100644
+--- a/drivers/video/da8xx-fb.c
++++ b/drivers/video/da8xx-fb.c
+@@ -193,6 +193,20 @@ static struct da8xx_panel known_lcd_panels[] = {
+ .pxl_clk = 7833600,
+ .invert_pxl_clk = 0,
+ },
++ /* CRT Monitor or LCD Screen */
++ [2] = {
++ .name = "VGA_Monitor",
++ .width = 640,
++ .height = 480,
++ .hfp = 48,
++ .hbp = 48,
++ .hsw = 63,
++ .vfp = 11,
++ .vbp = 31,
++ .vsw = 1,
++ .pxl_clk = 25000000,
++ .invert_pxl_clk = 1,
++ },
+ };
+
+ /* Disable the Raster Engine of the LCD Controller */
diff --git a/recipes/linux/linux-davinci_git.bb b/recipes/linux/linux-davinci_git.bb
index 1b549ef61d..f99f8ae937 100644
--- a/recipes/linux/linux-davinci_git.bb
+++ b/recipes/linux/linux-davinci_git.bb
@@ -3,24 +3,60 @@ require linux.inc
DESCRIPTION = "Linux kernel for Davinci processors"
KERNEL_IMAGETYPE = "uImage"
-COMPATIBLE_MACHINE = "(dm6446-evm|dm6467-evm|dm6467t-evm|dm355-evm|dm365-evm|da830-omapl137-evm|da850-omapl138-evm|davinci-sffsdr|dm355-leopard)"
+COMPATIBLE_MACHINE = "(dm355-evm|dm365-evm|dm6446-evm|dm6467-evm|dm6467t-evm|da830-omapl137-evm|da850-omapl138-evm|dm355-leopard|davinci-sffsdr|hawkboard)"
DEFAULT_PREFERENCE = "1"
-SRCREV = "835d1ac43b1c0428cb0f7f91fbaf708ba8e7e504"
-SRCREV_da830-omapl137-evm = "1f3804f945375f699023056a462891b80ea2a36e"
-SRCREV_da850-omapl138-evm = "1f3804f945375f699023056a462891b80ea2a36e"
+BRANCH = "master"
+
+# DAVINCI
+
+# dm355-evm/dm365-evm/dm6446-evm/dm6467-evm/dm6467t-evm Davinci PSP.03.01.00.28 (Phase 3 Build r28)
+SRCREV_dm355-evm = "7b2683fd0168df1576fcea947ef9f63e905de807"
+SRCREV_dm365-evm = "7b2683fd0168df1576fcea947ef9f63e905de807"
+SRCREV_dm6446-evm = "7b2683fd0168df1576fcea947ef9f63e905de807"
+SRCREV_dm6467-evm = "7b2683fd0168df1576fcea947ef9f63e905de807"
+SRCREV_dm6467t-evm = "7b2683fd0168df1576fcea947ef9f63e905de807"
# The main PR is now using MACHINE_KERNEL_PR, for davinci see conf/machine/include/davinci.inc
-PV = "2.6.30+2.6.31-rc7-${PR}+gitr${SRCREV}"
+PV_dm355-evm = "2.6.31+2.6.32-rc2-${PR}+gitr${SRCREV}"
+PV_dm365-evm = "2.6.31+2.6.32-rc2-${PR}+gitr${SRCREV}"
+PV_dm6446-evm = "2.6.31+2.6.32-rc2-${PR}+gitr${SRCREV}"
+PV_dm6467-evm = "2.6.31+2.6.32-rc2-${PR}+gitr${SRCREV}"
+PV_dm6467t-evm = "2.6.31+2.6.32-rc2-${PR}+gitr${SRCREV}"
+
+SRC_URI_dm355-evm = "git://arago-project.org/git/projects/linux-davinci.git;protocol=git \
+ file://defconfig"
+SRC_URI_dm365-evm = "git://arago-project.org/git/projects/linux-davinci.git;protocol=git \
+ file://defconfig"
+SRC_URI_dm6446-evm = "git://arago-project.org/git/projects/linux-davinci.git;protocol=git \
+ file://defconfig"
+SRC_URI_dm6467-evm = "git://arago-project.org/git/projects/linux-davinci.git;protocol=git \
+ file://defconfig"
+SRC_URI_dm6467t-evm = "git://arago-project.org/git/projects/linux-davinci.git;protocol=git \
+ file://defconfig"
+
+
+# OMAPL
+
+# da830-omapl137-evm/da850-omapl138-evm/hawkboard OMAPL PSP.3.20.00.07 (Beta)
+SRCREV_da830-omapl137-evm = "b60234a5b0ee985912ecb59d3e689c1ed4baa46c"
+SRCREV_da850-omapl138-evm = "b60234a5b0ee985912ecb59d3e689c1ed4baa46c"
+SRCREV_hawkboard = "b60234a5b0ee985912ecb59d3e689c1ed4baa46c"
-SRC_URI = "git://arago-project.org/git/projects/linux-davinci.git;protocol=git \
- file://defconfig"
+# The main PR is now using MACHINE_KERNEL_PR, for davinci see conf/machine/include/davinci.inc
+PV_da830-omapl137-evm = "2.6.31+2.6.32-rc6-${PR}+gitr${SRCREV}"
+PV_da850-omapl138-evm = "2.6.31+2.6.32-rc6-${PR}+gitr${SRCREV}"
+PV_hawkboard = "2.6.31+2.6.32-rc6-${PR}+gitr${SRCREV}"
-SRC_URI_da830-omapl137-evm = "git://arago-project.org/git/people/sekhar/linux-omapl1.git;protocol=git;branch=staging \
+SRC_URI_da830-omapl137-evm = "git://arago-project.org/git/people/sekhar/linux-omapl1.git;protocol=git;branch=${BRANCH} \
file://defconfig"
-SRC_URI_da850-omapl138-evm = "git://arago-project.org/git/people/sekhar/linux-omapl1.git;protocol=git;branch=staging \
+SRC_URI_da850-omapl138-evm = "git://arago-project.org/git/people/sekhar/linux-omapl1.git;protocol=git;branch=${BRANCH} \
file://defconfig"
+SRC_URI_hawkboard = "git://arago-project.org/git/people/sekhar/linux-omapl1.git;protocol=git;branch=${BRANCH} \
+ file://patch_hawk.diff;patch=1 \
+ file://defconfig"
+
S = "${WORKDIR}/git"
diff --git a/recipes/linux/linux-ixp4xx_2.6.18.bb b/recipes/linux/linux-ixp4xx_2.6.18.bb
index 1fb86f15eb..a96768549c 100644
--- a/recipes/linux/linux-ixp4xx_2.6.18.bb
+++ b/recipes/linux/linux-ixp4xx_2.6.18.bb
@@ -3,7 +3,7 @@ require linux-ixp4xx.inc
KERNEL_RELEASE = "2.6.18"
-PV = "${KERNEL_RELEASE}+svnr${SRCREV}"
+PV = "${KERNEL_RELEASE}+svnr${SRCPV}"
PR = "r0"
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${KERNEL_RELEASE}.tar.bz2 \
diff --git a/recipes/linux/linux-ixp4xx_2.6.19.bb b/recipes/linux/linux-ixp4xx_2.6.19.bb
index 550313ca94..666d42daa0 100644
--- a/recipes/linux/linux-ixp4xx_2.6.19.bb
+++ b/recipes/linux/linux-ixp4xx_2.6.19.bb
@@ -3,7 +3,7 @@ require linux-ixp4xx.inc
KERNEL_RELEASE = "2.6.19"
-PV = "${KERNEL_RELEASE}+svnr${SRCREV}"
+PV = "${KERNEL_RELEASE}+svnr${SRCPV}"
PR = "r0"
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${KERNEL_RELEASE}.tar.bz2 \
diff --git a/recipes/linux/linux-ixp4xx_2.6.20.bb b/recipes/linux/linux-ixp4xx_2.6.20.bb
index f70992ea86..7a2faa0e25 100644
--- a/recipes/linux/linux-ixp4xx_2.6.20.bb
+++ b/recipes/linux/linux-ixp4xx_2.6.20.bb
@@ -3,7 +3,7 @@ require linux-ixp4xx.inc
KERNEL_RELEASE = "2.6.20"
-PV = "${KERNEL_RELEASE}+svnr${SRCREV}"
+PV = "${KERNEL_RELEASE}+svnr${SRCPV}"
PR = "r0"
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${KERNEL_RELEASE}.tar.bz2 \
diff --git a/recipes/linux/linux-ixp4xx_2.6.21.7.bb b/recipes/linux/linux-ixp4xx_2.6.21.7.bb
index 4d26621241..60d3d4d1cd 100644
--- a/recipes/linux/linux-ixp4xx_2.6.21.7.bb
+++ b/recipes/linux/linux-ixp4xx_2.6.21.7.bb
@@ -4,7 +4,7 @@ require linux-ixp4xx.inc
VANILLA_VERSION = "2.6.21"
KERNEL_RELEASE = "2.6.21.7"
-PV = "${KERNEL_RELEASE}+svnr${SRCREV}"
+PV = "${KERNEL_RELEASE}+svnr${SRCPV}"
PR = "r0"
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${VANILLA_VERSION}.tar.bz2 \
diff --git a/recipes/linux/linux-ixp4xx_2.6.23.14.bb b/recipes/linux/linux-ixp4xx_2.6.23.14.bb
index b7c7682370..50cc46c5c8 100644
--- a/recipes/linux/linux-ixp4xx_2.6.23.14.bb
+++ b/recipes/linux/linux-ixp4xx_2.6.23.14.bb
@@ -5,9 +5,9 @@ VANILLA_VERSION = "2.6.23"
KERNEL_RELEASE = "2.6.23.14"
# If you use a rc, you will need to use this:
-#PV = "${VANILLA_VERSION}+${KERNEL_RELEASE}+svnr${SRCREV}"
+#PV = "${VANILLA_VERSION}+${KERNEL_RELEASE}+svnr${SRCPV}"
-PV = "${KERNEL_RELEASE}+svnr${SRCREV}"
+PV = "${KERNEL_RELEASE}+svnr${SRCPV}"
PR = "r0"
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${VANILLA_VERSION}.tar.bz2 \
diff --git a/recipes/linux/linux-ixp4xx_2.6.24.7.bb b/recipes/linux/linux-ixp4xx_2.6.24.7.bb
index c6d035b012..6532cad435 100644
--- a/recipes/linux/linux-ixp4xx_2.6.24.7.bb
+++ b/recipes/linux/linux-ixp4xx_2.6.24.7.bb
@@ -5,9 +5,9 @@ VANILLA_VERSION = "2.6.24"
KERNEL_RELEASE = "2.6.24.7"
# If you use a rc, you will need to use this:
-#PV = "${VANILLA_VERSION}+${KERNEL_RELEASE}+svnr${SRCREV}"
+#PV = "${VANILLA_VERSION}+${KERNEL_RELEASE}+svnr${SRCPV}"
-PV = "${KERNEL_RELEASE}+svnr${SRCREV}"
+PV = "${KERNEL_RELEASE}+svnr${SRCPV}"
PR = "r1"
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${VANILLA_VERSION}.tar.bz2 \
diff --git a/recipes/linux/linux-ixp4xx_2.6.27.8.bb b/recipes/linux/linux-ixp4xx_2.6.27.8.bb
index 68a1482ccb..0d4d715432 100644
--- a/recipes/linux/linux-ixp4xx_2.6.27.8.bb
+++ b/recipes/linux/linux-ixp4xx_2.6.27.8.bb
@@ -7,9 +7,9 @@ VANILLA_VERSION = "2.6.27"
KERNEL_RELEASE = "2.6.27.8"
# If you use a rc, you will need to use this:
-#PV = "${VANILLA_VERSION}+${KERNEL_RELEASE}+svnr${SRCREV}"
+#PV = "${VANILLA_VERSION}+${KERNEL_RELEASE}+svnr${SRCPV}"
-PV = "${KERNEL_RELEASE}+svnr${SRCREV}"
+PV = "${KERNEL_RELEASE}+svnr${SRCPV}"
PR = "r2"
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${VANILLA_VERSION}.tar.bz2 \
diff --git a/recipes/linux/linux-ixp4xx_2.6.29.bb b/recipes/linux/linux-ixp4xx_2.6.29.bb
index f2c697f69f..f13a2b7ee8 100644
--- a/recipes/linux/linux-ixp4xx_2.6.29.bb
+++ b/recipes/linux/linux-ixp4xx_2.6.29.bb
@@ -7,9 +7,9 @@ VANILLA_VERSION = "2.6.29"
KERNEL_RELEASE = "2.6.29"
# If you use a rc, you will need to use this:
-#PV = "${VANILLA_VERSION}+${KERNEL_RELEASE}+svnr${SRCREV}"
+#PV = "${VANILLA_VERSION}+${KERNEL_RELEASE}+svnr${SRCPV}"
-PV = "${KERNEL_RELEASE}+svnr${SRCREV}"
+PV = "${KERNEL_RELEASE}+svnr${SRCPV}"
PR = "r0"
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${VANILLA_VERSION}.tar.bz2 \
diff --git a/recipes/linux/linux-kirkwood/0003-ARM-Kirkwood-Sound-Sound-driver-added.patch b/recipes/linux/linux-kirkwood/0003-ARM-Kirkwood-Sound-Sound-driver-added.patch
new file mode 100644
index 0000000000..fc17a089c5
--- /dev/null
+++ b/recipes/linux/linux-kirkwood/0003-ARM-Kirkwood-Sound-Sound-driver-added.patch
@@ -0,0 +1,3514 @@
+From 89aa6dd15306a1ce11da0f2cb67bda74999e178e Mon Sep 17 00:00:00 2001
+From: Tanmay Upadhyay <tanmay.upadhyay@einfochips.com>
+Date: Tue, 24 Nov 2009 21:49:24 +0530
+Subject: [PATCH] ARM: Kirkwood: Sound: Sound driver added
+
+The driver is based on the Marvell kirkwood sound driver available in
+2.6.22.18 kernel.
+
+Signed-off-by: Tanmay Upadhyay <tanmay.upadhyay@einfochips.com>
+---
+ arch/arm/mach-kirkwood/common.c | 39 +
+ arch/arm/mach-kirkwood/common.h | 2 +
+ arch/arm/mach-kirkwood/include/mach/kirkwood.h | 3 +
+ arch/arm/mach-kirkwood/openrd_client-setup.c | 27 +
+ include/linux/mv88fx_audio.h | 111 ++
+ sound/soc/Kconfig | 1 +
+ sound/soc/Makefile | 1 +
+ sound/soc/kirkwood/Kconfig | 29 +
+ sound/soc/kirkwood/Makefile | 7 +
+ sound/soc/kirkwood/cs42l51.c | 304 +++++
+ sound/soc/kirkwood/cs42l51.h | 59 +
+ sound/soc/kirkwood/kirkwood_audio_hal.c | 821 +++++++++++++
+ sound/soc/kirkwood/kirkwood_audio_hal.h | 109 ++
+ sound/soc/kirkwood/kirkwood_audio_regs.h | 310 +++++
+ sound/soc/kirkwood/kirkwood_pcm.c | 1505 ++++++++++++++++++++++++
+ 15 files changed, 3328 insertions(+), 0 deletions(-)
+ create mode 100644 include/linux/mv88fx_audio.h
+ create mode 100644 sound/soc/kirkwood/Kconfig
+ create mode 100644 sound/soc/kirkwood/Makefile
+ create mode 100644 sound/soc/kirkwood/cs42l51.c
+ create mode 100644 sound/soc/kirkwood/cs42l51.h
+ create mode 100644 sound/soc/kirkwood/kirkwood_audio_hal.c
+ create mode 100644 sound/soc/kirkwood/kirkwood_audio_hal.h
+ create mode 100644 sound/soc/kirkwood/kirkwood_audio_regs.h
+ create mode 100644 sound/soc/kirkwood/kirkwood_pcm.c
+
+diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c
+index 0acb61f..4d66c06 100644
+--- a/arch/arm/mach-kirkwood/common.c
++++ b/arch/arm/mach-kirkwood/common.c
+@@ -15,6 +15,7 @@
+ #include <linux/mbus.h>
+ #include <linux/mv643xx_eth.h>
+ #include <linux/mv643xx_i2c.h>
++#include <linux/mv88fx_audio.h>
+ #include <linux/ata_platform.h>
+ #include <linux/mtd/nand.h>
+ #include <linux/spi/orion_spi.h>
+@@ -969,3 +970,41 @@ static int __init kirkwood_clock_gate(void)
+ return 0;
+ }
+ late_initcall(kirkwood_clock_gate);
++
++/*****************************************************************************
++ * Audio
++ ****************************************************************************/
++
++static struct resource kirkwood_audio_resources[] = {
++ [0] = {
++ .start = AUDIO_PHYS_BASE,
++ .end = AUDIO_PHYS_BASE + SZ_16K - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_KIRKWOOD_I2S,
++ .end = IRQ_KIRKWOOD_I2S,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++static u64 kirkwood_audio_dmamask = 0xFFFFFFFFUL;
++
++static struct platform_device kirkwood_audio = {
++ .name = MV88FX_AUDIO_NAME,
++ .id = -1,
++ .num_resources = ARRAY_SIZE(kirkwood_audio_resources),
++ .resource = kirkwood_audio_resources,
++ .dev = {
++ .dma_mask = &kirkwood_audio_dmamask,
++ .coherent_dma_mask = 0xffffffff,
++ },
++};
++
++void __init kirkwood_audio_init(struct mv88fx_snd_platform_data *audio_data)
++{
++ kirkwood_clk_ctrl |= CGC_AUDIO;
++ kirkwood_audio.dev.platform_data = audio_data;
++
++ platform_device_register(&kirkwood_audio);
++}
+diff --git a/arch/arm/mach-kirkwood/common.h b/arch/arm/mach-kirkwood/common.h
+index d7de434..b79a25c 100644
+--- a/arch/arm/mach-kirkwood/common.h
++++ b/arch/arm/mach-kirkwood/common.h
+@@ -16,6 +16,7 @@ struct mv643xx_eth_platform_data;
+ struct mv_sata_platform_data;
+ struct mvsdio_platform_data;
+ struct mtd_partition;
++struct mv88fx_snd_platform_data;
+
+ /*
+ * Basic Kirkwood init functions used early by machine-setup.
+@@ -41,6 +42,7 @@ void kirkwood_i2c_init(void);
+ void kirkwood_uart0_init(void);
+ void kirkwood_uart1_init(void);
+ void kirkwood_nand_init(struct mtd_partition *parts, int nr_parts, int delay);
++void kirkwood_audio_init(struct mv88fx_snd_platform_data *audio_data);
+
+ extern int kirkwood_tclk;
+ extern struct sys_timer kirkwood_timer;
+diff --git a/arch/arm/mach-kirkwood/include/mach/kirkwood.h b/arch/arm/mach-kirkwood/include/mach/kirkwood.h
+index 54c1327..90ced65 100644
+--- a/arch/arm/mach-kirkwood/include/mach/kirkwood.h
++++ b/arch/arm/mach-kirkwood/include/mach/kirkwood.h
+@@ -95,6 +95,9 @@
+
+ #define SDIO_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x90000)
+
++#define AUDIO_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0xA0000)
++#define AUDIO_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0xA0000)
++
+ /*
+ * Supported devices and revisions.
+ */
+diff --git a/arch/arm/mach-kirkwood/openrd_client-setup.c b/arch/arm/mach-kirkwood/openrd_client-setup.c
+index a55a1bc..72acc22 100644
+--- a/arch/arm/mach-kirkwood/openrd_client-setup.c
++++ b/arch/arm/mach-kirkwood/openrd_client-setup.c
+@@ -14,11 +14,13 @@
+ #include <linux/mtd/partitions.h>
+ #include <linux/ata_platform.h>
+ #include <linux/mv643xx_eth.h>
++#include <linux/mv88fx_audio.h>
+ #include <linux/gpio.h>
+ #include <asm/mach-types.h>
+ #include <asm/mach/arch.h>
+ #include <mach/kirkwood.h>
+ #include <plat/mvsdio.h>
++#include <linux/autoconf.h>
+ #include "common.h"
+ #include "mpp.h"
+
+@@ -59,6 +61,21 @@ static unsigned int openrd_client_mpp_config[] __initdata = {
+ 0
+ };
+
++static struct mv88fx_snd_platform_data openrd_client_audio_data = {
++ .i2c_bus_no = 0,
++ .i2c_address = 0x4A,
++/* 0 - NA, 1 - mono, 2 - stereo */
++#ifdef CONFIG_SND_MV88FX_SOC_I2S
++ .i2s_rec = 1,
++ .i2s_play = 2,
++#else
++ .spdif_rec = 1,
++ .spdif_play = 2,
++#endif
++ .dram = &kirkwood_mbus_dram_info,
++ .base_offset = AUDIO_PHYS_BASE - KIRKWOOD_REGS_PHYS_BASE,
++};
++
+ static void __init openrd_client_init(void)
+ {
+ /*
+@@ -78,6 +95,16 @@ static void __init openrd_client_init(void)
+
+ kirkwood_sata_init(&openrd_client_sata_data);
+ kirkwood_sdio_init(&openrd_client_mvsdio_data);
++
++ /* initialize i2c */
++ kirkwood_i2c_init();
++
++#if defined(CONFIG_SND_MV88FX_SOC) || defined(CONFIG_SND_MV88FX_SOC_MODULE)
++ /* If built as a part of kernel or as a module
++ * initialize audio */
++ openrd_client_audio_data.tclk = kirkwood_tclk,
++ kirkwood_audio_init(&openrd_client_audio_data);
++#endif
+ }
+
+ MACHINE_START(OPENRD_CLIENT, "Marvell OpenRD Client Board")
+diff --git a/include/linux/mv88fx_audio.h b/include/linux/mv88fx_audio.h
+new file mode 100644
+index 0000000..6d36a3f
+--- /dev/null
++++ b/include/linux/mv88fx_audio.h
+@@ -0,0 +1,111 @@
++/*
++ *
++ * Marvell Orion Alsa Sound driver
++ *
++ * Author: Maen Suleiman
++ * Copyright (C) 2008 Marvell Ltd.
++ *
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ */
++
++#ifndef __LINUX_MV88FX_SND_H
++#define __LINUX_MV88FX_SND_H
++
++#include <linux/mbus.h>
++
++#define MV88FX_AUDIO_NAME "mv88fx_snd"
++
++#undef MV88FX_SND_DEBUG
++#ifdef MV88FX_SND_DEBUG
++#define mv88fx_snd_debug(fmt, arg...) printk(KERN_DEBUG fmt, ##arg)
++#else
++ #define mv88fx_snd_debug(a...)
++#endif
++
++#define MV_AUDIO_MAX_ADDR_DECODE_WIN 2
++#define MV_AUDIO_RECORD_WIN_NUM 0
++#define MV_AUDIO_PLAYBACK_WIN_NUM 1
++
++#define MV_AUDIO_WIN_CTRL_REG(win) (0xA04 + ((win)<<3))
++#define MV_AUDIO_WIN_BASE_REG(win) (0xA00 + ((win)<<3))
++
++struct mv88fx_snd_platform_data {
++ u8 i2c_bus_no;
++ u16 i2c_address;
++ u32 spdif_rec;
++ u32 spdif_play;
++ u32 i2s_rec;
++ u32 i2s_play;
++ u32 tclk;
++ u32 base_offset;
++ struct mbus_dram_target_info *dram;
++};
++
++struct mv88fx_snd_stream {
++ struct snd_pcm_substream *substream;
++ struct device *dev;
++ int direction; /* playback or capture */
++ #define PLAYBACK 0
++ #define CAPTURE 1
++ unsigned int dig_mode; /* i2s,spdif,both */
++ #define I2S 1
++ #define SPDIF 2
++ int stereo; /* mono, stereo */
++ int mono_mode; /* both mono, left mono, right mono */
++ #define MONO_BOTH 0
++ #define MONO_LEFT 1
++ #define MONO_RIGHT 2
++ int clock_src;
++ #define DCO_CLOCK 0
++ #define SPCR_CLOCK 1
++ #define EXTERN_CLOCK 2
++ int rate;
++ int stat_mem; /* Channel status source*/
++ int format;
++ #define SAMPLE_32IN32 0
++ #define SAMPLE_24IN32 1
++ #define SAMPLE_20IN32 2
++ #define SAMPLE_16IN32 3
++ #define SAMPLE_16IN16 4
++ unsigned int dma_addr;
++ unsigned int dma_size;
++ unsigned int period_size;
++ unsigned int spdif_status[4]; /* SPDIF status */
++ unsigned char *area; /* virtual pointer */
++ dma_addr_t addr; /* physical address */
++};
++
++struct mv88fx_snd_chip {
++ struct mv88fx_snd_stream *stream[2]; /* run time values*/
++ struct mv88fx_snd_stream *stream_defaults[2]; /* default values*/
++ spinlock_t reg_lock; /* Register access spinlock */
++ struct resource *res; /* resource for IRQ and base*/
++ void __iomem *base; /* Audio base address of the host */
++ unsigned int audio_offset; /* Offset to audio base register
++ * from internal base register */
++ int irq;
++ int loopback; /* When Loopback is enabled, playback
++ * data is looped back to be recorded */
++ int ch_stat_valid; /* Playback SPDIF channel validity bit
++ * value when REG selected */
++ int burst; /* DMA Burst Size */
++
++ #define SPDIF_MEM_STAT 0
++ #define SPDIF_REG_STAT 1
++ unsigned int dco_ctrl_offst;
++ int pcm_mode; /* pcm, nonpcm*/
++ #define PCM 0
++ #define NON_PCM 1
++ int stereo;
++};
++
++#define MV88FX_SND_MIN_PERIODS 8
++#define MV88FX_SND_MAX_PERIODS 16
++#define MV88FX_SND_MIN_PERIOD_BYTES 0x4000
++#define MV88FX_SND_MAX_PERIOD_BYTES 0x4000
++
++#endif /* __LINUX_MV88FX_SND_H */
+diff --git a/sound/soc/Kconfig b/sound/soc/Kconfig
+index b1749bc..9fc88d8 100644
+--- a/sound/soc/Kconfig
++++ b/sound/soc/Kconfig
+@@ -36,6 +36,7 @@ source "sound/soc/s3c24xx/Kconfig"
+ source "sound/soc/s6000/Kconfig"
+ source "sound/soc/sh/Kconfig"
+ source "sound/soc/txx9/Kconfig"
++source "sound/soc/kirkwood/Kconfig"
+
+ # Supported codecs
+ source "sound/soc/codecs/Kconfig"
+diff --git a/sound/soc/Makefile b/sound/soc/Makefile
+index 0c5eac0..664850d 100644
+--- a/sound/soc/Makefile
++++ b/sound/soc/Makefile
+@@ -14,3 +14,4 @@ obj-$(CONFIG_SND_SOC) += s3c24xx/
+ obj-$(CONFIG_SND_SOC) += s6000/
+ obj-$(CONFIG_SND_SOC) += sh/
+ obj-$(CONFIG_SND_SOC) += txx9/
++obj-$(CONFIG_SND_SOC) += kirkwood/
+diff --git a/sound/soc/kirkwood/Kconfig b/sound/soc/kirkwood/Kconfig
+new file mode 100644
+index 0000000..d6a7e2f
+--- /dev/null
++++ b/sound/soc/kirkwood/Kconfig
+@@ -0,0 +1,29 @@
++config SND_MV88FX_SOC
++ tristate "SoC Audio for the Marvell 88FX chip"
++ depends on ARCH_KIRKWOOD
++ help
++ Say Y or M if you want to add support for codecs attached to
++ the MV88FX I2S or SPD interface. You will also need
++ to select the audio interfaces to support below.
++
++choice
++ prompt "Audio Interface"
++ default SND_MV88FX_SOC_I2S
++ depends on SND_MV88FX_SOC
++
++config SND_MV88FX_SOC_I2S
++ bool "I2S"
++
++config SND_MV88FX_SOC_SPDIF
++ bool "SPDIF"
++
++endchoice
++
++choice
++ prompt "Codec IC"
++ default SND_SOC_CS42L51
++ depends on SND_MV88FX_SOC
++
++config SND_SOC_CS42L51
++ bool "CS42L51"
++endchoice
+diff --git a/sound/soc/kirkwood/Makefile b/sound/soc/kirkwood/Makefile
+new file mode 100644
+index 0000000..57674ad
+--- /dev/null
++++ b/sound/soc/kirkwood/Makefile
+@@ -0,0 +1,7 @@
++
++snd-soc-kirkwood-objs := kirkwood_pcm.o kirkwood_audio_hal.o
++ifdef CONFIG_SND_SOC_CS42L51
++snd-soc-kirkwood-objs += cs42l51.o
++endif
++
++obj-$(CONFIG_SND_MV88FX_SOC) += snd-soc-kirkwood.o
+diff --git a/sound/soc/kirkwood/cs42l51.c b/sound/soc/kirkwood/cs42l51.c
+new file mode 100644
+index 0000000..f5a22f9
+--- /dev/null
++++ b/sound/soc/kirkwood/cs42l51.c
+@@ -0,0 +1,304 @@
++/*
++ *
++ * Marvell Orion Alsa Sound driver
++ *
++ * Author: Maen Suleiman
++ * Copyright (C) 2008 Marvell Ltd.
++ *
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ */
++#include <linux/ioport.h>
++#include <linux/platform_device.h>
++#include <linux/init.h>
++#include <linux/slab.h>
++#include <linux/version.h>
++#include <linux/i2c.h>
++#include <sound/core.h>
++#include <sound/initval.h>
++#include <sound/control.h>
++#include <sound/pcm.h>
++#include <sound/asoundef.h>
++#include <sound/asound.h>
++
++#include "cs42l51.h"
++
++/* FIXME: This code is not written in driver module style. This is written as
++ * helper for SOC driver */
++
++struct i2c_client *client;
++
++static int cs42l51_add_i2c_device(unsigned char i2c_bus_no,
++ unsigned short i2c_add)
++{
++ struct i2c_board_info info;
++ struct i2c_adapter *adapter;
++
++ memset(&info, 0, sizeof(struct i2c_board_info));
++ info.addr = i2c_add;
++ strlcpy(info.type, "cs42l51", I2C_NAME_SIZE);
++
++ adapter = i2c_get_adapter(i2c_bus_no);
++ if (!adapter) {
++ snd_printk("can't get i2c adapter\n");
++ return -ENODEV;
++ }
++
++ client = i2c_new_device(adapter, &info);
++ i2c_put_adapter(adapter);
++ if (!client) {
++ snd_printk("can't add i2c device\n");
++ return -ENODEV;
++ }
++
++ return 0;
++}
++
++void cs42l51_del_i2c_device(void)
++{
++ if (client)
++ i2c_unregister_device(client);
++ client = NULL;
++}
++
++/*
++ * offset: Register offset to start reading with
++ * buf : Pointer to the buffer to store the read data
++ * num : Number of registers to read
++ *
++ * Returns -ve errorno else number of registers read
++ */
++
++int cs42l51_reg_read(unsigned char offset, unsigned char *buf, int num)
++{
++ int ret = 0;
++
++ /* Set autoincrement bit */
++ offset |= CODEC_INCR_ADDR;
++
++ /* Send register offset */
++ ret = i2c_master_send(client, &offset, 1);
++ if (ret != 1) {
++ snd_printd("Could not write register offset\n");
++ return 0;
++ }
++
++ return i2c_master_recv(client, buf, num);
++}
++
++/*
++ * offset: Register offset to write
++ * data : Data to be written
++ *
++ * Returns -ve errorno else number of registers written (=1)
++ */
++
++int cs42l51_reg_write(unsigned char offset, unsigned char data)
++{
++ int ret = 0;
++ unsigned char buf[2];
++
++ buf[0] = offset;
++ buf[1] = data;
++
++ /* Send register offset & data */
++ ret = i2c_master_send(client, &buf[0], 2);
++
++ return (ret == 2) ? 1 : ret;
++}
++
++int codec_init(int adc_mode, int digital_if_format,
++ unsigned char i2c_bus_no, unsigned short i2c_add)
++{
++ unsigned char reg_data;
++
++ if (cs42l51_add_i2c_device(i2c_bus_no, i2c_add))
++ return 1;
++
++ if (cs42l51_reg_read(CODEC_ID_REG, &reg_data, 1) < 0)
++ goto codec_init_error;
++
++ if (CODEC_CHIP_ID != (reg_data >> 3) ||
++ CODEC_REV_ID != (reg_data & 0x7)) {
++ snd_printd("Error: Invalid Cirrus Logic chip/rev ID!\n");
++ return 1;
++ }
++
++ if (cs42l51_reg_read(CODEC_IF_CTRL_REG, &reg_data, 1) < 0)
++ goto codec_init_error;
++
++ reg_data = (reg_data & ~(0x7<<3)) | (digital_if_format << 3);
++
++ if (LEFT_JUSTIFIED_MODE == adc_mode)
++ reg_data &= (~0x4);
++ else
++ reg_data |= 0x4;
++
++ if (cs42l51_reg_write(CODEC_IF_CTRL_REG, reg_data) < 0)
++ goto codec_init_error;
++
++ return 0;
++
++codec_init_error:
++ snd_printd("I2C error\n");
++ return 1;
++}
++
++/*
++ * Initialize the audio decoder.
++ */
++
++int cs42l51_init(int adc_mode, int digital_if_format, int rec,
++ unsigned char i2c_bus_no, unsigned short i2c_add)
++{
++ if (codec_init(adc_mode, digital_if_format, i2c_bus_no, i2c_add)) {
++ snd_printk("Error: Audio Codec init failed\n");
++ return 1;
++ }
++
++ /* Use the signal processor */
++ if (cs42l51_reg_write(0x9, 0x40) < 0)
++ goto error;
++
++ /* Unmute PCM-A & PCM-B and set default */
++ if (cs42l51_reg_write(0x10, 0x60) < 0)
++ goto error;
++ if (cs42l51_reg_write(0x11, 0x60) < 0)
++ goto error;
++
++ /* default for AOUTx */
++ if (cs42l51_reg_write(0x16, 0x05) < 0)
++ goto error;
++ if (cs42l51_reg_write(0x17, 0x05) < 0)
++ goto error;
++
++ /* swap channels */
++ if (cs42l51_reg_write(0x18, 0xff) < 0)
++ goto error;
++
++ /* MIC Power Control: power down mIC in channel B, power on channel A
++ * Recommended seq. in datasheet:
++ * 1. Enable the PDN bit
++ * 2. Enable power-down for the selected channels
++ * 3. Disable the PDN bit */
++
++ /* Note: Tested for mono recording only */
++ if (!rec) {
++ /* Enable power down */
++ if (cs42l51_reg_write(0x2, 0x11) < 0)
++ goto error;
++
++ /* No record - Power down both channels */
++ if (cs42l51_reg_write(0x2, 0x17) < 0)
++ goto error;
++
++ /* Disable power down */
++ if (cs42l51_reg_write(0x2, 0x16) < 0)
++ goto error;
++ } else {
++ if (rec == 2) {
++ /* Setreo recording - by default both channels are up */
++
++ /* MIC In channel selection - Select channel 3
++ * unmute both channels */
++ if (cs42l51_reg_write(0x7, 0xF0) < 0)
++ goto error;
++
++ /* Power up mic pre-amplifier for both channels */
++ if (cs42l51_reg_write(0x3, 0xA0) < 0)
++ goto error;
++ } else {
++ /* Enable power down */
++ if (cs42l51_reg_write(0x2, 0x11) < 0)
++ goto error;
++
++ /* Mono recording - Power down Channel B */
++ if (cs42l51_reg_write(0x2, 0x15) < 0)
++ goto error;
++
++ /* Disable power down */
++ if (cs42l51_reg_write(0x2, 0x14) < 0)
++ goto error;
++
++ /* MIC In channel selection - Select channel 3
++ * Mute Channel B */
++ if (cs42l51_reg_write(0x7, 0xF2) < 0)
++ goto error;
++
++ /* Power down mic pre-amplifier for Channel B*/
++ if (cs42l51_reg_write(0x3, 0xA8) < 0)
++ goto error;
++ }
++ }
++
++ return 0;
++error:
++ snd_printk("I2C error\n");
++ return 1;
++}
++
++#define AUD_NUM_VOLUME_STEPS (40)
++static unsigned char auddec_volume_mapping[AUD_NUM_VOLUME_STEPS] =
++{
++ 0x19, 0xB2, 0xB7, 0xBD, 0xC3, 0xC9, 0xCF, 0xD5,
++ 0xD8, 0xE1, 0xE7, 0xED, 0xF3, 0xF9, 0xFF, 0x00,
++ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
++ 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10,
++ 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18
++};
++
++
++/*
++ * Get the audio decoder volume for both channels.
++ * 0 is lowest volume, AUD_NUM_VOLUME_STEPS-1 is the highest volume.
++ */
++
++void cs42l51_vol_get(unsigned char *vol_list)
++{
++ unsigned char reg_data[2];
++ unsigned char i, vol_idx = 0;
++
++ if (cs42l51_reg_read(0x16 + vol_idx, reg_data, 2) < 0) {
++ snd_printd("I2C error\n");
++ snd_printk("Couldn't get volume\n");
++ return;
++ }
++
++ for (; vol_idx < 2; vol_idx++) {
++ /* Look for the index that mapps to this dB value. */
++ for (i = 0; i < AUD_NUM_VOLUME_STEPS; i++) {
++ if (reg_data[vol_idx] == auddec_volume_mapping[i])
++ break;
++ if ((auddec_volume_mapping[i] >
++ auddec_volume_mapping[AUD_NUM_VOLUME_STEPS-1])
++ && (reg_data[vol_idx] > auddec_volume_mapping[i])
++ && (reg_data[vol_idx] < auddec_volume_mapping[i+1]))
++ break;
++ }
++ vol_list[vol_idx] = i;
++ }
++}
++
++/*
++ * Set the audio decoder volume for both channels.
++ * 0 is lowest volume, AUD_NUM_VOLUME_STEPS-1 is the highest volume.
++ */
++void cs42l51_vol_set(unsigned char *vol_list)
++{
++ unsigned int vol_idx;
++
++ for (vol_idx = 0; vol_idx < 2; vol_idx++) {
++ if (vol_list[vol_idx] >= AUD_NUM_VOLUME_STEPS)
++ vol_list[vol_idx] = AUD_NUM_VOLUME_STEPS - 1;
++
++ if (cs42l51_reg_write(0x16 + vol_idx,
++ auddec_volume_mapping[vol_list[vol_idx]]) < 0) {
++ snd_printd("I2C error\n");
++ snd_printk("Couldn't set volume\n");
++ return;
++ }
++ }
++}
+diff --git a/sound/soc/kirkwood/cs42l51.h b/sound/soc/kirkwood/cs42l51.h
+new file mode 100644
+index 0000000..f4e7951
+--- /dev/null
++++ b/sound/soc/kirkwood/cs42l51.h
+@@ -0,0 +1,59 @@
++/*
++ * Audio codec CS42L51 data definition file
++ */
++
++#ifndef _CS42L51_H_
++#define _CS42L51_H_
++
++#define CODEC_CHIP_ID 0x1B
++#define CODEC_REV_ID 0x1
++
++#define CODEC_ID_REG 0x1
++#define CODEC_IF_CTRL_REG 0x4
++#define CODEC_ADC_INPUT_INV_MUTE_REG 0x7
++#define CODEC_DAC_OUTPUT_CTRL_REG 0x8
++#define CODEC_DAC_CTRL_REG 0x9
++#define CODEC_PGAA_VOL_CTRL_REG 0xa
++#define CODEC_TONE_CTRL_REG 0x15
++#define CODEC_VOL_OUTA_CTRL_REG 0x16
++
++/* Set bit # 7 to 1 to get into auto incremental addressing mode */
++#define CODEC_INCR_ADDR 0x80
++
++#define FALSE 0
++#define TRUE 1
++
++/* Selects the digital interface format used for the data in on SDIN. */
++enum dac_digital_if_format {
++ L_JUSTIFIED_UP_TO_24_BIT,
++ I2S_UP_TO_24_BIT,
++ R_JUSTIFIED_UP_TO_24_BIT,
++ R_JUSTIFIED_20_BIT,
++ R_JUSTIFIED_18_BIT,
++ R_JUSTIFIED_16_BIT
++
++};
++
++/* Selects either the I2S or Left-Justified digital interface format for the
++ data on SDOUT. */
++enum adc_mode {
++ LEFT_JUSTIFIED_MODE,
++ I2S_MODE
++};
++
++/* Initialize the Cirrus Logic device */
++int cs42l51_init(int adc_mode, int digital_if_format, int rec,
++ unsigned char i2c_bus_no, unsigned short i2c_add);
++
++/* Function to control output volume (playback) */
++void cs42l51_vol_get(unsigned char *vol_list);
++void cs42l51_vol_set(unsigned char *vol_list);
++
++/* Function to access the Cirrus Logic CODEC registers */
++int cs42l51_reg_read(unsigned char offset, unsigned char *buf, int num);
++int cs42l51_reg_write(unsigned char offset, unsigned char data);
++
++
++void cs42l51_del_i2c_device(void);
++#endif /* _CS42L51_H_ */
++
+diff --git a/sound/soc/kirkwood/kirkwood_audio_hal.c b/sound/soc/kirkwood/kirkwood_audio_hal.c
+new file mode 100644
+index 0000000..28305e3
+--- /dev/null
++++ b/sound/soc/kirkwood/kirkwood_audio_hal.c
+@@ -0,0 +1,821 @@
++/*
++ * Sound driver for Marvell Kirkwood family SOCs
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2
++ * of the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++ */
++
++#include <linux/io.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <linux/spinlock.h>
++#include <linux/mv88fx_audio.h>
++#include "kirkwood_audio_hal.h"
++
++static void mv_audio_init(void __iomem *base);
++static void audio_setup_wins(void __iomem *base,
++ struct mbus_dram_target_info *dram);
++static int set_window_as_per_baseadd(void __iomem *base, unsigned int baseadd,
++ unsigned int audio_offset, int win_num);
++
++/* Clocks Control and Status related*/
++static int mv_audio_dco_ctrl_set(struct mv_audio_freq_data *dcoCtrl,
++ void __iomem *base);
++
++/* Audio PlayBack related*/
++static int mv_audio_playback_control_set(void __iomem *base, unsigned int
++ audio_offset, struct mv_audio_playback_ctrl *ctrl);
++
++/* Audio SPDIF PlayBack related*/
++static void mv_spdif_playback_ctrl_set(void __iomem *base,
++ struct mv_spdif_playback_ctrl *ctrl);
++
++/* Audio I2S PlayBack related*/
++static int mv_i2s_playback_ctrl_set(void __iomem *base,
++ struct mv_i2s_playback_ctrl *ctrl);
++
++/* Audio Recording*/
++static int mv_audio_record_control_set(struct mv_audio_record_ctrl *ctrl,
++ unsigned int audio_offset, void __iomem *base);
++
++/* SPDIF Recording Related*/
++static int spdif_record_tclock_set(void __iomem *base, unsigned int tclk);
++
++/* I2S Recording Related*/
++static int mv_i2s_record_cntrl_set(struct mv_i2s_record_ctrl *ctrl,
++ void __iomem *base);
++
++static inline int audio_burst_bytes_num_get(int burst)
++{
++ switch (burst) {
++ case AUDIO_32BYTE_BURST:
++ return 32;
++ case AUDIO_128BYTE_BURST:
++ return 128;
++ default:
++ return 0xffffffff;
++ }
++}
++
++int mv88fx_snd_hw_init(struct snd_card *card)
++{
++ void __iomem *base = chip->base;
++ struct mv88fx_snd_platform_data *platform_data =
++ card->dev->platform_data;
++
++ if (platform_data->i2s_rec || platform_data->i2s_play)
++ if (codec_init(I2S_MODE, I2S_UP_TO_24_BIT,
++ platform_data->i2s_rec, platform_data->i2c_bus_no,
++ platform_data->i2c_address)) {
++ snd_printk("Initializing CS42L51 failed\n");
++ return 1;
++ }
++
++ writel(0xffffffff, (base + MV_AUDIO_INT_CAUSE_REG));
++ writel(0, (base + MV_AUDIO_INT_MASK_REG));
++ writel(0, (base + MV_AUDIO_SPDIF_REC_INT_CAUSE_MASK_REG));
++
++ mv_audio_init(base);
++
++ audio_setup_wins(base, platform_data->dram);
++
++ /* Disable all playback/recording */
++ writel(readl(base + MV_AUDIO_PLAYBACK_CTRL_REG) &
++ (~(APCR_PLAY_I2S_ENABLE_MASK | APCR_PLAY_SPDIF_ENABLE_MASK)),
++ (base + MV_AUDIO_PLAYBACK_CTRL_REG));
++
++ writel(readl(base + MV_AUDIO_RECORD_CTRL_REG) &
++ (~(ARCR_RECORD_SPDIF_EN_MASK | ARCR_RECORD_I2S_EN_MASK)),
++ (base + MV_AUDIO_RECORD_CTRL_REG));
++
++ if (spdif_record_tclock_set(base, platform_data->tclk)) {
++ snd_printk("Marvell ALSA driver ERR. SPDIF clock set failed\n");
++ return 1;
++ }
++
++ return 0;
++}
++
++int mv88fx_snd_hw_playback_set(struct mv88fx_snd_chip *chip)
++{
++ struct mv88fx_snd_stream *audio_stream = chip->stream[PLAYBACK];
++ struct snd_pcm_substream *substream = audio_stream->substream;
++ struct snd_pcm_runtime *runtime = substream->runtime;
++
++ struct mv_audio_playback_ctrl pcm_play_ctrl;
++ struct mv_i2s_playback_ctrl i2s_play_ctrl;
++ struct mv_spdif_playback_ctrl spdif_play_ctrl;
++ struct mv_audio_freq_data dco_ctrl;
++
++ dco_ctrl.offset = chip->dco_ctrl_offst;
++
++ switch (audio_stream->rate) {
++ case 44100:
++ dco_ctrl.baseFreq = AUDIO_FREQ_44_1KH;
++ break;
++ case 48000:
++ dco_ctrl.baseFreq = AUDIO_FREQ_48KH;
++ break;
++ case 96000:
++ dco_ctrl.baseFreq = AUDIO_FREQ_96KH;
++ break;
++ default:
++ snd_printk("Requested rate %d is not supported\n",
++ runtime->rate); return -1;
++ }
++
++ pcm_play_ctrl.burst = (chip->burst == 128) ? AUDIO_128BYTE_BURST :
++ AUDIO_32BYTE_BURST;
++
++ pcm_play_ctrl.loopBack = chip->loopback;
++
++ if (audio_stream->stereo) {
++ pcm_play_ctrl.monoMode = AUDIO_PLAY_MONO_OFF;
++ } else {
++ switch (audio_stream->mono_mode) {
++ case MONO_LEFT:
++ pcm_play_ctrl.monoMode = AUDIO_PLAY_LEFT_MONO;
++ break;
++ case MONO_RIGHT:
++ pcm_play_ctrl.monoMode = AUDIO_PLAY_RIGHT_MONO;
++ break;
++ case MONO_BOTH:
++ default:
++ pcm_play_ctrl.monoMode = AUDIO_PLAY_BOTH_MONO;
++ break;
++ }
++ }
++
++ if (audio_stream->format == SAMPLE_16IN16) {
++ pcm_play_ctrl.sampleSize = SAMPLE_16BIT;
++ i2s_play_ctrl.sampleSize = SAMPLE_16BIT;
++ } else if (audio_stream->format == SAMPLE_24IN32) {
++ pcm_play_ctrl.sampleSize = SAMPLE_24BIT;
++ i2s_play_ctrl.sampleSize = SAMPLE_24BIT;
++ } else if (audio_stream->format == SAMPLE_32IN32) {
++ pcm_play_ctrl.sampleSize = SAMPLE_32BIT;
++ i2s_play_ctrl.sampleSize = SAMPLE_32BIT;
++ } else {
++ snd_printk("Requested format %d is not supported\n",
++ runtime->format);
++ return -1;
++ }
++
++ /* buffer and period sizes in frame */
++ pcm_play_ctrl.bufferPhyBase = audio_stream->dma_addr;
++ pcm_play_ctrl.bufferSize = audio_stream->dma_size;
++ pcm_play_ctrl.intByteCount = audio_stream->period_size;
++
++ /* I2S playback streem stuff */
++ /*i2s_play_ctrl.sampleSize = pcm_play_ctrl.sampleSize;*/
++ i2s_play_ctrl.justification = I2S_JUSTIFIED;
++ i2s_play_ctrl.sendLastFrame = 0;
++
++ spdif_play_ctrl.nonPcm = FALSE;
++
++ spdif_play_ctrl.validity = chip->ch_stat_valid;
++
++ if (audio_stream->stat_mem) {
++ spdif_play_ctrl.userBitsFromMemory = TRUE;
++ spdif_play_ctrl.validityFromMemory = TRUE;
++ spdif_play_ctrl.blockStartInternally = FALSE;
++ } else {
++ spdif_play_ctrl.userBitsFromMemory = FALSE;
++ spdif_play_ctrl.validityFromMemory = FALSE;
++ spdif_play_ctrl.blockStartInternally = TRUE;
++ }
++
++ /* If this is non-PCM sound, mute I2S channel */
++ spin_lock_irq(&chip->reg_lock);
++
++ if (!(readl(chip->base + MV_AUDIO_PLAYBACK_CTRL_REG) &
++ (APCR_PLAY_I2S_ENABLE_MASK | APCR_PLAY_SPDIF_ENABLE_MASK))) {
++
++ if (mv_audio_dco_ctrl_set(&dco_ctrl, chip->base)) {
++ snd_printk("Failed to initialize DCO clock control.\n");
++ goto error;
++ }
++ }
++
++ if (audio_stream->clock_src == DCO_CLOCK)
++ while ((readl(chip->base + MV_AUDIO_SPCR_DCO_STATUS_REG) &
++ ASDSR_DCO_LOCK_MASK) == 0)
++ cpu_relax();
++ else if (audio_stream->clock_src == SPCR_CLOCK)
++ while ((readl(chip->base + MV_AUDIO_SPCR_DCO_STATUS_REG) &
++ ASDSR_SPCR_LOCK_MASK) == 0)
++ cpu_relax();
++
++ if (mv_audio_playback_control_set(chip->base, chip->audio_offset,
++ &pcm_play_ctrl)) {
++ snd_printk("Failed to initialize PCM playback control.\n");
++ goto error;
++ }
++
++ if (mv_i2s_playback_ctrl_set(chip->base, &i2s_play_ctrl)) {
++ snd_printk("Failed to initialize I2S playback control.\n");
++ goto error;
++ }
++
++ mv_spdif_playback_ctrl_set(chip->base, &spdif_play_ctrl);
++
++ spin_unlock_irq(&chip->reg_lock);
++
++ return 0;
++error:
++ spin_unlock_irq(&chip->reg_lock);
++ return -1;
++}
++
++int mv88fx_snd_hw_capture_set(struct mv88fx_snd_chip *chip)
++{
++ struct mv88fx_snd_stream *audio_stream = chip->stream[CAPTURE];
++ struct snd_pcm_substream *substream = audio_stream->substream;
++ struct snd_pcm_runtime *runtime = substream->runtime;
++
++ struct mv_audio_record_ctrl pcm_rec_ctrl;
++ struct mv_i2s_record_ctrl i2s_rec_ctrl;
++ struct mv_audio_freq_data dco_ctrl;
++
++ dco_ctrl.offset = chip->dco_ctrl_offst;
++
++ switch (audio_stream->rate) {
++ case 44100:
++ dco_ctrl.baseFreq = AUDIO_FREQ_44_1KH;
++ break;
++ case 48000:
++ dco_ctrl.baseFreq = AUDIO_FREQ_48KH;
++ break;
++ case 96000:
++ dco_ctrl.baseFreq = AUDIO_FREQ_96KH;
++ break;
++ default:
++ snd_printk("Requested rate %d is not supported\n",
++ runtime->rate); return -1;
++ }
++
++ pcm_rec_ctrl.burst = (chip->burst == 128) ? AUDIO_128BYTE_BURST :
++ AUDIO_32BYTE_BURST;
++
++ if (audio_stream->format == SAMPLE_16IN16) {
++ pcm_rec_ctrl.sampleSize = SAMPLE_16BIT;
++ } else if (audio_stream->format == SAMPLE_24IN32) {
++ pcm_rec_ctrl.sampleSize = SAMPLE_24BIT;
++ } else if (audio_stream->format == SAMPLE_32IN32) {
++ pcm_rec_ctrl.sampleSize = SAMPLE_32BIT;
++ } else {
++ snd_printk("Requested format %d is not supported\n",
++ runtime->format);
++ return -1;
++ }
++
++ /* If request for tereo record comes on the boards that doesn't
++ * support stereo recording */
++ if ((!chip->stereo) && audio_stream->stereo) {
++ snd_printk("Stereo recording is not supported\n");
++ return -1;
++ }
++
++ pcm_rec_ctrl.mono = (audio_stream->stereo) ? FALSE : TRUE;
++
++ if (pcm_rec_ctrl.mono) {
++ switch (audio_stream->mono_mode) {
++ case MONO_LEFT:
++ pcm_rec_ctrl.monoChannel = AUDIO_REC_LEFT_MONO;
++ break;
++ default:
++ case MONO_RIGHT:
++ pcm_rec_ctrl.monoChannel = AUDIO_REC_RIGHT_MONO;
++ break;
++ }
++
++ } else {
++ pcm_rec_ctrl.monoChannel = AUDIO_REC_LEFT_MONO;
++ }
++
++
++ pcm_rec_ctrl.bufferPhyBase = audio_stream->dma_addr;
++ pcm_rec_ctrl.bufferSize = audio_stream->dma_size;
++
++ pcm_rec_ctrl.intByteCount = audio_stream->period_size;
++
++ /* I2S record streem stuff */
++ i2s_rec_ctrl.sample = pcm_rec_ctrl.sampleSize;
++ i2s_rec_ctrl.justf = I2S_JUSTIFIED;
++
++ spin_lock_irq(&chip->reg_lock);
++
++ /* set clock only if record is not enabled*/
++ if (!(readl(chip->base + MV_AUDIO_RECORD_CTRL_REG) &
++ (ARCR_RECORD_SPDIF_EN_MASK | ARCR_RECORD_I2S_EN_MASK))) {
++
++ if (mv_audio_dco_ctrl_set(&dco_ctrl, chip->base)) {
++ snd_printk("Failed to initialize DCO clock control.\n");
++ return -1;
++ }
++ }
++
++ if (mv_audio_record_control_set(&pcm_rec_ctrl, chip->audio_offset,
++ chip->base)) {
++ snd_printk("Failed to initialize PCM record control.\n");
++ return -1;
++ }
++
++ if (mv_i2s_record_cntrl_set(&i2s_rec_ctrl, chip->base)) {
++ snd_printk("Failed to initialize I2S record control.\n");
++ return -1;
++ }
++ spin_unlock_irq(&chip->reg_lock);
++
++ return 0;
++}
++
++static void mv_audio_init(void __iomem *base)
++{
++ int timeout = 10000000;
++ unsigned int reg_data;
++
++ reg_data = readl(base + 0x1200);
++ reg_data &= (~(0x333FF8));
++ reg_data |= 0x111D18;
++
++ writel(reg_data, base + 0x1200);
++
++ do {
++ timeout--;
++ } while (timeout);
++
++ reg_data = readl(base + 0x1200);
++ reg_data &= (~(0x333FF8));
++ reg_data |= 0x111D18;
++
++ writel(reg_data, base + 0x1200);
++}
++
++static void audio_setup_wins(void __iomem *base,
++ struct mbus_dram_target_info *dram)
++{
++ int win_num;
++
++ /* First disable and clear windows */
++ for (win_num = 0; win_num < MV_AUDIO_MAX_ADDR_DECODE_WIN; win_num++) {
++ writel(0, base + MV_AUDIO_WIN_CTRL_REG(win_num));
++ writel(0, base + MV_AUDIO_WIN_BASE_REG(win_num));
++ }
++
++ /* Setup windows for DDR */
++ for (win_num = 0; win_num < MV_AUDIO_MAX_ADDR_DECODE_WIN; win_num++) {
++ /* We will set the Window to DRAM_CS1 in default */
++ struct mbus_dram_window *cs = &dram->cs[1];
++
++ writel(cs->base & 0xffff0000,
++ base + MV_AUDIO_WIN_BASE_REG(win_num));
++ writel(((cs->size - 1) & 0xffff0000) |
++ (cs->mbus_attr << 8) |
++ (dram->mbus_dram_target_id << 4) | 1,
++ base + MV_AUDIO_WIN_CTRL_REG(win_num));
++ }
++}
++
++#define MV_BOARD_TCLK_133MHZ 133333333
++#define MV_BOARD_TCLK_150MHZ 150000000
++#define MV_BOARD_TCLK_166MHZ 166666667
++#define MV_BOARD_TCLK_200MHZ 200000000
++
++static int spdif_record_tclock_set(void __iomem *base, unsigned int tclk)
++{
++ unsigned int reg_data;
++
++ reg_data = readl(base + MV_AUDIO_SPDIF_REC_GEN_REG);
++
++ switch (tclk) {
++ case MV_BOARD_TCLK_133MHZ:
++ reg_data |= ASRGR_CORE_CLK_FREQ_133MHZ;
++ break;
++ case MV_BOARD_TCLK_150MHZ:
++ reg_data |= ASRGR_CORE_CLK_FREQ_150MHZ;
++ break;
++ case MV_BOARD_TCLK_166MHZ:
++ reg_data |= ASRGR_CORE_CLK_FREQ_166MHZ;
++ break;
++ case MV_BOARD_TCLK_200MHZ:
++ reg_data |= ASRGR_CORE_CLK_FREQ_200MHZ;
++ break;
++ default:
++ snd_printk("Not supported core clock %d\n", tclk);
++ return 1;
++ }
++
++ writel(reg_data, base + MV_AUDIO_SPDIF_REC_GEN_REG);
++
++ return 0;
++}
++
++static int mv_audio_record_control_set(struct mv_audio_record_ctrl *ctrl,
++ unsigned int audio_offset, void __iomem *base)
++{
++ unsigned int reg, buff_start, buff_end;
++ unsigned int win_base, win_size;
++
++ if (ctrl->monoChannel > AUDIO_REC_RIGHT_MONO) {
++ snd_printk("Error: Illegal monoChannel %x\n",
++ ctrl->monoChannel);
++
++ return 1;
++ }
++
++ if ((ctrl->burst != AUDIO_32BYTE_BURST) &&
++ (ctrl->burst != AUDIO_128BYTE_BURST)) {
++ snd_printk("Error: Illegal burst %x\n",
++ ctrl->burst);
++
++ return 1;
++ }
++
++ if (ctrl->bufferPhyBase & (MV_AUDIO_BUFFER_MIN_ALIGN - 1)) {
++ snd_printk("Error bufferPhyBase is not aligned to 0x%x"\
++ " bytes\n", MV_AUDIO_BUFFER_MIN_ALIGN);
++
++ return 1;
++ }
++
++ if ((ctrl->bufferSize <= audio_burst_bytes_num_get(ctrl->burst)) |
++ (ctrl->bufferSize & (audio_burst_bytes_num_get(ctrl->burst) - 1)) ||
++ (ctrl->bufferSize > AUDIO_REG_TO_SIZE(APBBCR_SIZE_MAX))) {
++ snd_printk("Error bufferSize smaller than or not multiple "\
++ "of 0x%x bytes or larger than 0x%x\n",
++ audio_burst_bytes_num_get(ctrl->burst),
++ AUDIO_REG_TO_SIZE(APBBCR_SIZE_MAX));
++
++ return 1;
++ }
++
++ reg = readl(base + MV_AUDIO_RECORD_CTRL_REG);
++ reg &= ~(ARCR_RECORD_BURST_SIZE_MASK | ARCR_RECORDED_MONO_CHNL_MASK |
++ ARCR_RECORD_SAMPLE_SIZE_MASK);
++
++ switch (ctrl->sampleSize) {
++ case SAMPLE_16BIT:
++ case SAMPLE_16BIT_NON_COMPACT:
++ case SAMPLE_20BIT:
++ case SAMPLE_24BIT:
++ case SAMPLE_32BIT:
++ reg |= ctrl->sampleSize << ARCR_RECORD_SAMPLE_SIZE_OFFS;
++ break;
++ default:
++ snd_printk("Error: Illegal sampleSize %x\n",
++ ctrl->sampleSize);
++
++ return 1;
++ }
++
++ reg |= ctrl->burst << ARCR_RECORD_BURST_SIZE_OFFS;
++ reg |= ctrl->monoChannel << ARCR_RECORDED_MONO_CHNL_OFFS;
++
++ if (ctrl->mono)
++ reg |= ARCR_RECORD_MONO_MASK;
++ else
++ reg &= (~ARCR_RECORD_MONO_MASK);
++
++ writel(reg, base + MV_AUDIO_RECORD_CTRL_REG);
++
++ /* Get the details of the Record address window*/
++ win_base = readl(base + MV_AUDIO_WIN_BASE_REG(MV_AUDIO_RECORD_WIN_NUM));
++ win_size = readl(base + MV_AUDIO_WIN_CTRL_REG(MV_AUDIO_RECORD_WIN_NUM));
++
++ /* Window size bits are 31:16. Where size =
++ * (2 ^ no of ones) * 64 KB. e.g. 0x0FF says 16MB */
++ win_size = ((win_size >> 16) + 1) << 16;
++
++ buff_start = ctrl->bufferPhyBase;
++ buff_end = buff_start + ctrl->bufferSize - 1;
++
++ /* If buffer address is not within window boundries then try to set a
++ * new value to the Record window by geting the target of where the
++ * buffer exist, if the buffer is within the window of the new target
++ * then set the Record window to that target else return Fail
++ */
++
++ if (!(((buff_start >= win_base) &&
++ (buff_start <= (win_base + win_size - 1))) ||
++ ((buff_end >= win_base) &&
++ (buff_end <= (win_base + win_size - 1))))) {
++ snd_printd("Audio record buffer is not within window");
++
++ /* Set the window for the buffer that user require
++ for the palyback\recording window to the target window */
++ if (set_window_as_per_baseadd(base, ctrl->bufferPhyBase,
++ audio_offset, MV_AUDIO_RECORD_WIN_NUM)) {
++ snd_printk("Playback buffer (%#x) is not "
++ "within a valid target\n",
++ ctrl->bufferPhyBase);
++ return 1;
++ }
++ }
++
++ /* Set the interrupt byte count */
++ reg = ctrl->intByteCount & ARBCI_BYTE_COUNT_MASK;
++ writel(reg, base + MV_AUDIO_RECORD_BYTE_CNTR_INT_REG);
++
++ writel(ctrl->bufferPhyBase, base + MV_AUDIO_RECORD_START_ADDR_REG);
++ writel(AUDIO_SIZE_TO_REG(ctrl->bufferSize),
++ base + MV_AUDIO_RECORD_BUFF_SIZE_REG);
++
++
++ return 0;
++}
++
++static int mv_i2s_record_cntrl_set(struct mv_i2s_record_ctrl *ctrl,
++ void __iomem *base)
++{
++ unsigned int reg;
++
++ reg = readl(base + MV_AUDIO_I2S_REC_CTRL_REG);
++ reg &= ~(AIRCR_I2S_RECORD_JUSTF_MASK|AIRCR_I2S_SAMPLE_SIZE_MASK);
++
++ switch (ctrl->justf) {
++ case I2S_JUSTIFIED:
++ case LEFT_JUSTIFIED:
++ case RIGHT_JUSTIFIED:
++ case RISE_BIT_CLCK_JUSTIFIED:
++ reg |= ctrl->justf << AIRCR_I2S_RECORD_JUSTF_OFFS;
++ break;
++ default:
++ return 1;
++ }
++
++ reg |= ctrl->sample << AIRCR_I2S_SAMPLE_SIZE_OFFS;
++
++ writel(reg, base + MV_AUDIO_I2S_REC_CTRL_REG);
++ return 0;
++}
++
++/* We trust the value set in the window registers and don't check them.
++ * As there is some value already present in the register, we assume
++ * base and size are aligned */
++
++static int set_window_as_per_baseadd(void __iomem *base, unsigned int baseadd,
++ unsigned int audio_offset, int win_num)
++{
++ int dram_cs, win;
++ unsigned int win_base, win_size, size;
++ unsigned char dram_attr[4] = {0x0E, 0x0D, 0x0B, 0x07};
++
++ /* Base passed is Audio base address. Audio base address is
++ * Internal register base address + audio_offset */
++ void __iomem *internal_reg_base = base - audio_offset;
++
++ for (dram_cs = 0; dram_cs < 4; dram_cs++) {
++ win_base = readl(internal_reg_base + 0x1500 + (8 * dram_cs));
++ win_size = readl(internal_reg_base + 0x1504 + (8 * dram_cs));
++
++ /* skip if window is disabled */
++ if (!(win_size & 1))
++ continue;
++
++ /* Window size bits are 31:24. Where size =
++ * (2 ^ no of ones) * 16 MB. e.g. 0x0F says 256MB */
++ size = ((win_size >> 24) + 1) << 24;
++
++ if ((baseadd >= win_base) && (baseadd < (win_base + size))) {
++ snd_printd("DRAM window %d set for %s window",
++ dram_cs, win_num ? "plaback" : "record");
++ writel(win_base,
++ base + MV_AUDIO_WIN_BASE_REG(win_num));
++
++ /* DRAM window ctrl regs are bit different than Audio
++ * Set size, attribute and target ID */
++ win_size = ((size - 1) & 0xffff0000) | 1;
++ win_size |= (dram_attr[dram_cs] << 8); /* Atribute */
++ win_size &= (~(0xF << 4)); /* Target ID */
++
++ writel(win_size,
++ base + MV_AUDIO_WIN_CTRL_REG(win_num));
++ snd_printd("win_base 0x%08x\twin_size 0x%08x",
++ win_base, win_size);
++ return 0;
++ }
++ }
++
++ for (win = 0; win < 8; win++) {
++ win_base = readl(internal_reg_base + 0x2004 + (0x10 * win));
++ win_size = readl(internal_reg_base + 0x2008 + (0x10 * win));
++
++ /* skip if window is disabled */
++ if (!(win_size & 1))
++ continue;
++
++ /* Window size bits are 31:16. Where size =
++ * (2 ^ no of ones) * 64 KB. e.g. 0x0FF says 16MB */
++ size = ((win_size >> 16) + 1) << 16;
++ if ((baseadd >= win_base) && (baseadd < (win_base + size))) {
++ snd_printd("CPU window %d set for %s window",
++ win_base, win_num ? "plaback" : "record");
++ writel(win_base,
++ base + MV_AUDIO_WIN_BASE_REG(win_num));
++ writel(win_size,
++ base + MV_AUDIO_WIN_CTRL_REG(win_num));
++ return 0;
++ }
++ }
++
++ return 1;
++}
++
++static int mv_audio_playback_control_set(void __iomem *base, unsigned int
++ audio_offset, struct mv_audio_playback_ctrl *ctrl)
++{
++ unsigned int reg, buff_start, buff_end;
++ unsigned int win_base, win_size;
++
++ if (ctrl->monoMode >= AUDIO_PLAY_OTHER_MONO) {
++ snd_printk("Error: Illegal monoMode %x\n", ctrl->monoMode);
++ return 1;
++ }
++
++ if ((ctrl->burst != AUDIO_32BYTE_BURST) &&
++ (ctrl->burst != AUDIO_128BYTE_BURST)) {
++ snd_printk("Error: Illegal burst %x\n", ctrl->burst);
++ return 1;
++ }
++
++ if (ctrl->bufferPhyBase & (MV_AUDIO_BUFFER_MIN_ALIGN - 1)) {
++ snd_printk("Error, bufferPhyBase is not aligned to 0x%x "\
++ "bytes\n", MV_AUDIO_BUFFER_MIN_ALIGN);
++ return 1;
++ }
++
++ if ((ctrl->bufferSize <= audio_burst_bytes_num_get(ctrl->burst)) ||
++ (ctrl->bufferSize & (audio_burst_bytes_num_get(ctrl->burst) - 1)) ||
++ (ctrl->bufferSize > AUDIO_REG_TO_SIZE(APBBCR_SIZE_MAX))) {
++ snd_printk("Error, bufferSize smaller than or not multiple "\
++ "of 0x%x bytes or larger than 0x%x",
++ audio_burst_bytes_num_get(ctrl->burst),
++ AUDIO_REG_TO_SIZE(APBBCR_SIZE_MAX));
++ return 1;
++ }
++
++ reg = readl(base + MV_AUDIO_PLAYBACK_CTRL_REG);
++ reg &= ~(APCR_PLAY_BURST_SIZE_MASK | APCR_LOOPBACK_MASK |
++ APCR_PLAY_MONO_MASK | APCR_PLAY_SAMPLE_SIZE_MASK);
++ reg |= ctrl->burst << APCR_PLAY_BURST_SIZE_OFFS;
++ reg |= ctrl->loopBack << APCR_LOOPBACK_OFFS;
++ reg |= ctrl->monoMode << APCR_PLAY_MONO_OFFS;
++ reg |= ctrl->sampleSize << APCR_PLAY_SAMPLE_SIZE_OFFS;
++ writel(reg, base + MV_AUDIO_PLAYBACK_CTRL_REG);
++
++ /* Get the details of the Playback address window*/
++ win_base = readl(base +
++ MV_AUDIO_WIN_BASE_REG(MV_AUDIO_PLAYBACK_WIN_NUM));
++ win_size = readl(base +
++ MV_AUDIO_WIN_CTRL_REG(MV_AUDIO_PLAYBACK_WIN_NUM));
++
++ /* Window size bits are 31:16. Where size =
++ * (2 ^ no of ones) * 64 KB. e.g. 0x0FF says 16MB */
++ win_size = ((win_size >> 16) + 1) << 16;
++
++ buff_start = ctrl->bufferPhyBase;
++ buff_end = buff_start + ctrl->bufferSize - 1;
++
++ /* If Playback window is not enabled or buffer address is not within
++ * window boundries then try to set a new value to the Playback window*/
++
++ if (!(((buff_start >= win_base) &&
++ (buff_start <= (win_base + win_size - 1))) ||
++ ((buff_end >= win_base) &&
++ (buff_end <= (win_base + win_size - 1))))) {
++ snd_printd("Audio playback buffer is not within window\n");
++
++ /* Set the window for the buffer that user require
++ for the palyback\recording window to the target window */
++ if (set_window_as_per_baseadd(base, ctrl->bufferPhyBase,
++ audio_offset, MV_AUDIO_PLAYBACK_WIN_NUM)) {
++ snd_printk("Record buffer (%#x) is not "
++ "within a valid target\n",
++ ctrl->bufferPhyBase);
++ return 1;
++ }
++ }
++
++ /* Set the interrupt byte count */
++ reg = ctrl->intByteCount & APBCI_BYTE_COUNT_MASK;
++ writel(reg, base + MV_AUDIO_PLAYBACK_BYTE_CNTR_INT_REG);
++
++ writel(ctrl->bufferPhyBase,
++ base + MV_AUDIO_PLAYBACK_BUFF_START_REG);
++ writel(AUDIO_SIZE_TO_REG(ctrl->bufferSize),
++ base + MV_AUDIO_PLAYBACK_BUFF_SIZE_REG);
++
++ return 0;
++}
++
++static int mv_i2s_playback_ctrl_set(void __iomem *base,
++ struct mv_i2s_playback_ctrl *ctrl)
++{
++ unsigned int reg_data;
++
++ reg_data = readl(base + MV_AUDIO_I2S_PLAY_CTRL_REG);
++ reg_data &= ~(AIPCR_I2S_PB_JUSTF_MASK | AIPCR_I2S_PB_SAMPLE_SIZE_MASK);
++
++ if (ctrl->sampleSize > SAMPLE_16BIT) {
++ snd_printk("Illigal sample size\n");
++ return 1;
++ }
++
++ reg_data |= ctrl->sampleSize << AIPCR_I2S_PB_SAMPLE_SIZE_OFFS;
++
++ if (ctrl->sendLastFrame)
++ reg_data |= AIPCR_I2S_SEND_LAST_FRM_MASK;
++ else
++ reg_data &= ~AIPCR_I2S_SEND_LAST_FRM_MASK;
++
++ switch (ctrl->justification) {
++ case I2S_JUSTIFIED:
++ case LEFT_JUSTIFIED:
++ case RIGHT_JUSTIFIED:
++ reg_data |= ctrl->justification << AIPCR_I2S_PB_JUSTF_OFFS;
++ break;
++ default:
++ snd_printk("Illigal justification value\n");
++ return 1;
++ }
++
++ writel(reg_data, base + MV_AUDIO_I2S_PLAY_CTRL_REG);
++
++ return 0;
++}
++
++static void mv_spdif_playback_ctrl_set(void __iomem *base,
++ struct mv_spdif_playback_ctrl *ctrl)
++{
++ unsigned int reg_data;
++
++ reg_data = readl(base + MV_AUDIO_SPDIF_PLAY_CTRL_REG);
++
++ if (ctrl->blockStartInternally)
++ reg_data |= ASPCR_SPDIF_BLOCK_START_MASK;
++ else
++ reg_data &= ~ASPCR_SPDIF_BLOCK_START_MASK;
++
++ if (ctrl->validityFromMemory)
++ reg_data |= ASPCR_SPDIF_PB_EN_MEM_VALIDITY_MASK;
++ else
++ reg_data &= ~ASPCR_SPDIF_PB_EN_MEM_VALIDITY_MASK;
++
++ if (ctrl->userBitsFromMemory)
++ reg_data |= ASPCR_SPDIF_PB_MEM_USR_EN_MASK;
++ else
++ reg_data &= ~ASPCR_SPDIF_PB_MEM_USR_EN_MASK;
++
++ if (ctrl->validity)
++ reg_data |= ASPCR_SPDIF_PB_REG_VALIDITY_MASK;
++ else
++ reg_data &= ~ASPCR_SPDIF_PB_REG_VALIDITY_MASK;
++
++ if (ctrl->nonPcm)
++ reg_data |= ASPCR_SPDIF_PB_NONPCM_MASK;
++ else
++ reg_data &= ~ASPCR_SPDIF_PB_NONPCM_MASK;
++
++ writel(reg_data, base + MV_AUDIO_SPDIF_PLAY_CTRL_REG);
++}
++
++static int mv_audio_dco_ctrl_set(struct mv_audio_freq_data *dcoCtrl,
++ void __iomem *base)
++{
++ unsigned int reg;
++
++ /* Check parameters*/
++ if (dcoCtrl->baseFreq > AUDIO_FREQ_96KH) {
++ snd_printk("dcoCtrl->baseFreq value (0x%x) invalid\n",
++ dcoCtrl->baseFreq);
++ return 1;
++ }
++
++ if ((dcoCtrl->offset > 0xFD0) || (dcoCtrl->offset < 0x20)) {
++ snd_printk("dcoCtrl->offset value (0x%x) invalid\n",
++ dcoCtrl->baseFreq);
++ return 1;
++ }
++
++ reg = readl(base + MV_AUDIO_DCO_CTRL_REG);
++
++ reg &= ~(ADCR_DCO_CTRL_FS_MASK | ADCR_DCO_CTRL_OFFSET_MASK);
++ reg |= ((dcoCtrl->baseFreq << ADCR_DCO_CTRL_FS_OFFS) |
++ (dcoCtrl->offset << ADCR_DCO_CTRL_OFFSET_OFFS));
++
++ writel(reg, base + MV_AUDIO_DCO_CTRL_REG);
++
++ return 0;
++}
+diff --git a/sound/soc/kirkwood/kirkwood_audio_hal.h b/sound/soc/kirkwood/kirkwood_audio_hal.h
+new file mode 100644
+index 0000000..ce08102
+--- /dev/null
++++ b/sound/soc/kirkwood/kirkwood_audio_hal.h
+@@ -0,0 +1,109 @@
++/*
++ * Sound driver data definition file for Marvell Kirkwood family SOCs
++ */
++
++#ifndef __AUDIO_HAL_H
++#define __AUDIO_HAL_H
++
++#include "kirkwood_audio_regs.h"
++
++#ifdef CONFIG_SND_SOC_CS42L51
++#include "cs42l51.h"
++
++#define codec_init cs42l51_init
++#define codec_vol_get cs42l51_vol_get
++#define codec_vol_set cs42l51_vol_set
++#define codec_del_i2c_device cs42l51_del_i2c_device
++#endif
++
++#define CODEC_I2C_BUS_NO 0
++#define CODEC_I2C_ADD 0x4A
++
++/*********************************/
++/* General enums and structures */
++/*******************************/
++/* Type of Audio operations*/
++enum mv_audio_operation {
++ AUDIO_PLAYBACK = 0,
++ AUDIO_RECORD = 1
++};
++
++struct mv_audio_freq_data{
++ int baseFreq; /* Control FS, selects the base frequency
++ * of the DCO */
++ u32 offset; /* Offset control in which each step equals to
++ * 0.9536 ppm */
++};
++
++
++/***********************************/
++/* Play Back related structures */
++/*********************************/
++
++struct mv_audio_playback_ctrl {
++ int burst; /* Specifies the Burst Size of the DMA */
++ bool loopBack; /* When Loopback is enabled, playback data
++ * is looped back to be recorded */
++ int monoMode; /* Mono Mode is used */
++ unsigned int bufferPhyBase; /* Physical Address of DMA buffer */
++ unsigned int bufferSize; /* Size of DMA buffer */
++ unsigned int intByteCount; /* Number of bytes after which an
++ * interrupt will be issued.*/
++ int sampleSize; /* Playback Sample Size*/
++};
++
++struct mv_spdif_playback_ctrl {
++ bool nonPcm; /* PCM or non-PCM mode*/
++ bool validity; /* Validity bit value when using
++ * registers (userBitsFromMemory=0) */
++ bool underrunData; /* If true send last frame on mute/pause/
++ * underrun otherwise send 24 binary */
++ bool userBitsFromMemory; /* otherwise from intenal registers */
++ bool validityFromMemory; /* otherwise from internal registers */
++ bool blockStartInternally; /* When user and valid bits are form
++ * registers then this bit should be zero */
++};
++
++struct mv_i2s_playback_ctrl {
++ int sampleSize;
++ int justification;
++ bool sendLastFrame; /* If true send last frame on
++ * mute/pause/underrun
++ * otherwise send 64 binary*/
++};
++
++
++/*********************************/
++/* Recording related structures */
++/*********************************/
++
++struct mv_audio_record_ctrl {
++ int burst; /* Recording DMA Burst Size */
++ int sampleSize; /*Recording Sample Size */
++ bool mono; /* If true then recording mono else
++ * recording stereo */
++ int monoChannel; /* Left or right moono */
++ u32 bufferPhyBase; /* Physical Address of DMA buffer */
++ u32 bufferSize; /* Size of DMA buffer */
++
++ u32 intByteCount; /* Number of bytes after which an
++ * interrupt will be issued.*/
++
++};
++
++struct mv_i2s_record_ctrl {
++ int sample; /* I2S Recording Sample Size*/
++ int justf;
++};
++
++/******************/
++/* Functions API */
++/****************/
++
++extern struct mv88fx_snd_chip *chip;
++
++int mv88fx_snd_hw_init(struct snd_card *card);
++int mv88fx_snd_hw_capture_set(struct mv88fx_snd_chip *chip);
++int mv88fx_snd_hw_playback_set(struct mv88fx_snd_chip *chip);
++
++#endif
+diff --git a/sound/soc/kirkwood/kirkwood_audio_regs.h b/sound/soc/kirkwood/kirkwood_audio_regs.h
+new file mode 100644
+index 0000000..1d3df15
+--- /dev/null
++++ b/sound/soc/kirkwood/kirkwood_audio_regs.h
+@@ -0,0 +1,310 @@
++/*
++ * Audio registers for Marvell Kirkwood family SOCs
++ */
++
++#ifndef __KW_AUDIO_REGS_H
++#define __KW_AUDIO_REGS_H
++
++enum mv_audio_freq {
++ AUDIO_FREQ_44_1KH = 0, /* 11.2896Mhz */
++ AUDIO_FREQ_48KH = 1, /* 12.288Mhz */
++ AUDIO_FREQ_96KH = 2, /* 24.576Mhz */
++ AUDIO_FREQ_LOWER_44_1KH = 3 , /* Lower than 11.2896MHz */
++ AUDIO_FREQ_HIGHER_96KH = 4, /* Higher than 24.576MHz */
++ AUDIO_FREQ_OTHER = 7, /* Other frequency */
++};
++
++enum mv_audio_burst_size {
++ AUDIO_32BYTE_BURST = 1,
++ AUDIO_128BYTE_BURST = 2,
++};
++
++enum mv_audio_playback_mono {
++ AUDIO_PLAY_MONO_OFF = 0,
++ AUDIO_PLAY_LEFT_MONO = 1,
++ AUDIO_PLAY_RIGHT_MONO = 2,
++ AUDIO_PLAY_BOTH_MONO = 3,
++ AUDIO_PLAY_OTHER_MONO = 4
++};
++
++enum mv_audio_record_mono {
++ AUDIO_REC_LEFT_MONO = 0,
++ AUDIO_REC_RIGHT_MONO = 1,
++};
++
++enum mv_audio_sample_size {
++ SAMPLE_32BIT = 0,
++ SAMPLE_24BIT = 1,
++ SAMPLE_20BIT = 2,
++ SAMPLE_16BIT = 3,
++ SAMPLE_16BIT_NON_COMPACT = 7
++};
++
++enum mv_audio_i2s_justification {
++ LEFT_JUSTIFIED = 0,
++ I2S_JUSTIFIED = 5,
++ RISE_BIT_CLCK_JUSTIFIED = 7,
++ RIGHT_JUSTIFIED = 8,
++};
++
++#define APBBCR_SIZE_MAX 0x3FFFFF
++#define APBBCR_SIZE_SHIFT 0x2
++
++#define AUDIO_REG_TO_SIZE(reg) (((reg) + 1) << APBBCR_SIZE_SHIFT)
++#define AUDIO_SIZE_TO_REG(size) (((size) >> APBBCR_SIZE_SHIFT) - 1)
++
++#define MV_AUDIO_BUFFER_MIN_ALIGN 0x8
++
++/********************/
++/* Clocking Control*/
++/*******************/
++
++#define MV_AUDIO_DCO_CTRL_REG 0x1204
++#define MV_AUDIO_SPCR_DCO_STATUS_REG 0x120c
++#define MV_AUDIO_SAMPLE_CNTR_CTRL_REG 0x1220
++#define MV_AUDIO_PLAYBACK_SAMPLE_CNTR_REG 0x1224
++#define MV_AUDIO_RECORD_SAMPLE_CNTR_REG 0x1228
++#define MV_AUDIO_CLOCK_CTRL_REG 0x1230
++
++/* MV_AUDIO_DCO_CTRL_REG */
++#define ADCR_DCO_CTRL_FS_OFFS 0
++#define ADCR_DCO_CTRL_FS_MASK (0x3 << ADCR_DCO_CTRL_FS_OFFS)
++#define ADCR_DCO_CTRL_FS_44_1KHZ (0x0 << ADCR_DCO_CTRL_FS_OFFS)
++#define ADCR_DCO_CTRL_FS_48KHZ (0x1 << ADCR_DCO_CTRL_FS_OFFS)
++#define ADCR_DCO_CTRL_FS_96KHZ (0x2 << ADCR_DCO_CTRL_FS_OFFS)
++
++
++#define ADCR_DCO_CTRL_OFFSET_OFFS 2
++#define ADCR_DCO_CTRL_OFFSET_MASK (0xfff << ADCR_DCO_CTRL_OFFSET_OFFS)
++
++/* MV_AUDIO_SPCR_DCO_STATUS_REG */
++#define ASDSR_SPCR_CTRLFS_OFFS 0
++#define ASDSR_SPCR_CTRLFS_MASK (0x7 << ASDSR_SPCR_CTRLFS_OFFS)
++#define ASDSR_SPCR_CTRLFS_44_1KHZ (0x0 << ASDSR_SPCR_CTRLFS_OFFS)
++#define ASDSR_SPCR_CTRLFS_48KHZ (0x1 << ASDSR_SPCR_CTRLFS_OFFS)
++#define ASDSR_SPCR_CTRLFS_96KHZ (0x2 << ASDSR_SPCR_CTRLFS_OFFS)
++#define ASDSR_SPCR_CTRLFS_44_1KHZ_LESS (0x3 << ASDSR_SPCR_CTRLFS_OFFS)
++#define ASDSR_SPCR_CTRLFS_96KHZ_MORE (0x4 << ASDSR_SPCR_CTRLFS_OFFS)
++#define ASDSR_SPCR_CTRLFS_OTHER (0x7 << ASDSR_SPCR_CTRLFS_OFFS)
++
++
++#define ASDSR_SPCR_CTRLOFFSET_OFFS 3
++#define ASDSR_SPCR_CTRLOFFSET_MASK (0xfff << ASDSR_SPCR_CTRLOFFSET_OFFS)
++
++#define ASDSR_SPCR_LOCK_OFFS 15
++#define ASDSR_SPCR_LOCK_MASK (0x1 << ASDSR_SPCR_LOCK_OFFS)
++
++#define ASDSR_DCO_LOCK_OFFS 16
++#define ASDSR_DCO_LOCK_MASK (0x1 << ASDSR_DCO_LOCK_OFFS)
++
++#define ASDSR_PLL_LOCK_OFFS 17
++#define ASDSR_PLL_LOCK_MASK (0x1 << ASDSR_PLL_LOCK_OFFS)
++
++/*MV_AUDIO_SAMPLE_CNTR_CTRL_REG */
++
++#define ASCCR_CLR_PLAY_CNTR_OFFS 9
++#define ASCCR_CLR_PLAY_CNTR_MASK (0x1 << ASCCR_CLR_PLAY_CNTR_OFFS)
++
++#define ASCCR_CLR_REC_CNTR_OFFS 8
++#define ASCCR_CLR_REC_CNTR_MASK (0x1 << ASCCR_CLR_REC_CNTR_OFFS)
++
++#define ASCCR_ACTIVE_PLAY_CNTR_OFFS 1
++#define ASCCR_ACTIVE_PLAY_CNTR_MASK (0x1 << ASCCR_ACTIVE_PLAY_CNTR_OFFS)
++
++#define ASCCR_ACTIVE_REC_CNTR_OFFS 0
++#define ASCCR_ACTIVE_REC_CNTR_MASK (0x1 << ASCCR_ACTIVE_REC_CNTR_OFFS)
++
++/* MV_AUDIO_CLOCK_CTRL_REG */
++#define ACCR_MCLK_SOURCE_OFFS 0
++#define ACCR_MCLK_SOURCE_MASK (0x3 << ACCR_MCLK_SOURCE_OFFS)
++#define ACCR_MCLK_SOURCE_DCO (0x0 << ACCR_MCLK_SOURCE_OFFS)
++#define ACCR_MCLK_SOURCE_SPCR (0x2 << ACCR_MCLK_SOURCE_OFFS)
++#define ACCR_MCLK_SOURCE_EXT (0x3 << ACCR_MCLK_SOURCE_OFFS)
++
++
++/*********************/
++/* Interrupts */
++/*******************/
++#define MV_AUDIO_ERROR_CAUSE_REG 0x1300
++#define MV_AUDIO_ERROR_MASK_REG 0x1304
++#define MV_AUDIO_INT_CAUSE_REG 0x1308
++#define MV_AUDIO_INT_MASK_REG 0x130C
++#define MV_AUDIO_RECORD_BYTE_CNTR_INT_REG 0x1310
++#define MV_AUDIO_PLAYBACK_BYTE_CNTR_INT_REG 0x1314
++
++/* MV_AUDIO_INT_CAUSE_REG*/
++#define AICR_RECORD_BYTES_INT (0x1 << 13)
++#define AICR_PLAY_BYTES_INT (0x1 << 14)
++
++#define ARBCI_BYTE_COUNT_MASK 0xFFFFFF
++#define APBCI_BYTE_COUNT_MASK 0xFFFFFF
++
++/*********************/
++/* Audio Playback */
++/*******************/
++/* General */
++#define MV_AUDIO_PLAYBACK_CTRL_REG 0x1100
++#define MV_AUDIO_PLAYBACK_BUFF_START_REG 0x1104
++#define MV_AUDIO_PLAYBACK_BUFF_SIZE_REG 0x1108
++#define MV_AUDIO_PLAYBACK_BUFF_BYTE_CNTR_REG 0x110c
++
++/* SPDIF */
++#define MV_AUDIO_SPDIF_PLAY_CTRL_REG 0x2204
++#define MV_AUDIO_SPDIF_PLAY_CH_STATUS_LEFT_REG(ind) \
++ (0x2280 + (ind << 2))
++#define MV_AUDIO_SPDIF_PLAY_CH_STATUS_RIGHT_REG(ind) \
++ (0x22a0 + (ind << 2))
++#define MV_AUDIO_SPDIF_PLAY_USR_BITS_LEFT_REG(ind) \
++ (0x22c0 + (ind << 2))
++#define MV_AUDIO_SPDIF_PLAY_USR_BITS_RIGHT_REG(ind) \
++ (0x22e0 + (ind << 2))
++
++/* I2S */
++#define MV_AUDIO_I2S_PLAY_CTRL_REG 0x2508
++
++
++/* MV_AUDIO_PLAYBACK_CTRL_REG */
++#define APCR_PLAY_SAMPLE_SIZE_OFFS 0
++#define APCR_PLAY_SAMPLE_SIZE_MASK (0x7 << APCR_PLAY_SAMPLE_SIZE_OFFS)
++
++#define APCR_PLAY_I2S_ENABLE_OFFS 3
++#define APCR_PLAY_I2S_ENABLE_MASK (0x1 << APCR_PLAY_I2S_ENABLE_OFFS)
++
++#define APCR_PLAY_SPDIF_ENABLE_OFFS 4
++#define APCR_PLAY_SPDIF_ENABLE_MASK (0x1 << APCR_PLAY_SPDIF_ENABLE_OFFS)
++
++#define APCR_PLAY_MONO_OFFS 5
++#define APCR_PLAY_MONO_MASK (0x3 << APCR_PLAY_MONO_OFFS)
++
++#define APCR_PLAY_I2S_MUTE_OFFS 7
++#define APCR_PLAY_I2S_MUTE_MASK (0x1 << APCR_PLAY_I2S_MUTE_OFFS)
++
++#define APCR_PLAY_SPDIF_MUTE_OFFS 8
++#define APCR_PLAY_SPDIF_MUTE_MASK (0x1 << APCR_PLAY_SPDIF_MUTE_OFFS)
++
++#define APCR_PLAY_PAUSE_OFFS 9
++#define APCR_PLAY_PAUSE_MASK (0x1 << APCR_PLAY_PAUSE_OFFS)
++
++#define APCR_LOOPBACK_OFFS 10
++#define APCR_LOOPBACK_MASK (0x1 << APCR_LOOPBACK_OFFS)
++
++#define APCR_PLAY_BURST_SIZE_OFFS 11
++#define APCR_PLAY_BURST_SIZE_MASK (0x3 << APCR_PLAY_BURST_SIZE_OFFS)
++
++#define APCR_PLAY_BUSY_OFFS 16
++#define APCR_PLAY_BUSY_MASK (0x1 << APCR_PLAY_BUSY_OFFS)
++
++/* MV_AUDIO_PLAYBACK_BUFF_BYTE_CNTR_REG */
++#define APBBCR_SIZE_MAX 0x3FFFFF
++#define APBBCR_SIZE_SHIFT 0x2
++
++
++/* MV_AUDIO_SPDIF_PLAY_CTRL_REG */
++#define ASPCR_SPDIF_BLOCK_START_OFFS 0x0
++#define ASPCR_SPDIF_BLOCK_START_MASK (0x1 << ASPCR_SPDIF_BLOCK_START_OFFS)
++
++#define ASPCR_SPDIF_PB_EN_MEM_VALIDITY_OFFS 0x1
++#define ASPCR_SPDIF_PB_EN_MEM_VALIDITY_MASK (0x1 << \
++ ASPCR_SPDIF_PB_EN_MEM_VALIDITY_OFFS)
++
++#define ASPCR_SPDIF_PB_MEM_USR_EN_OFFS 0x2
++#define ASPCR_SPDIF_PB_MEM_USR_EN_MASK (0x1 << ASPCR_SPDIF_PB_MEM_USR_EN_OFFS)
++
++#define ASPCR_SPDIF_UNDERRUN_DATA_OFFS 0x5
++#define ASPCR_SPDIF_UNDERRUN_DATA_MASK (0x1 << ASPCR_SPDIF_UNDERRUN_DATA_OFFS)
++
++#define ASPCR_SPDIF_PB_REG_VALIDITY_OFFS 16
++#define ASPCR_SPDIF_PB_REG_VALIDITY_MASK (0x1 << \
++ ASPCR_SPDIF_PB_REG_VALIDITY_OFFS)
++
++#define ASPCR_SPDIF_PB_NONPCM_OFFS 17
++#define ASPCR_SPDIF_PB_NONPCM_MASK (0x1 << ASPCR_SPDIF_PB_NONPCM_OFFS)
++
++
++/* MV_AUDIO_I2S_PLAY_CTRL_REG */
++#define AIPCR_I2S_SEND_LAST_FRM_OFFS 23
++#define AIPCR_I2S_SEND_LAST_FRM_MASK (1 << AIPCR_I2S_SEND_LAST_FRM_OFFS)
++
++#define AIPCR_I2S_PB_JUSTF_OFFS 26
++#define AIPCR_I2S_PB_JUSTF_MASK (0xf << AIPCR_I2S_PB_JUSTF_OFFS)
++
++#define AIPCR_I2S_PB_SAMPLE_SIZE_OFFS 30
++#define AIPCR_I2S_PB_SAMPLE_SIZE_MASK (0x3 << AIPCR_I2S_PB_SAMPLE_SIZE_OFFS)
++
++/*********************/
++/* Audio Recordnig */
++/*******************/
++/* General */
++#define MV_AUDIO_RECORD_CTRL_REG 0x1000
++#define MV_AUDIO_RECORD_START_ADDR_REG 0x1004
++#define MV_AUDIO_RECORD_BUFF_SIZE_REG 0x1008
++#define MV_AUDIO_RECORD_BUF_BYTE_CNTR_REG 0x100C
++
++/* SPDIF */
++#define MV_AUDIO_SPDIF_REC_GEN_REG 0x2004
++#define MV_AUDIO_SPDIF_REC_INT_CAUSE_MASK_REG 0x2008
++#define MV_AUDIO_SPDIF_REC_CH_STATUS_LEFT_REG(ind) \
++ (0x2180 + ((ind) << 2))
++#define MV_AUDIO_SPDIF_REC_CH_STATUS_RIGHT_REG(ind) \
++ (0x21a0 + ((ind) << 2))
++#define MV_AUDIO_SPDIF_REC_USR_BITS_LEFT_REG(ind) \
++ (0x21c0 + ((ind) << 2))
++#define MV_AUDIO_SPDIF_REC_USR_BITS_RIGHT_REG(ind) \
++ (0x21e0 + ((ind) << 2))
++
++/* I2S */
++#define MV_AUDIO_I2S_REC_CTRL_REG 0x2408
++
++
++/* MV_AUDIO_RECORD_CTRL_REG*/
++#define ARCR_RECORD_SAMPLE_SIZE_OFFS 0
++#define ARCR_RECORD_SAMPLE_SIZE_MASK (0x7 << ARCR_RECORD_SAMPLE_SIZE_OFFS)
++
++#define ARCR_RECORDED_MONO_CHNL_OFFS 3
++#define ARCR_RECORDED_MONO_CHNL_MASK (0x1 << ARCR_RECORDED_MONO_CHNL_OFFS)
++
++#define ARCR_RECORD_MONO_OFFS 4
++#define ARCR_RECORD_MONO_MASK (0x1 << ARCR_RECORD_MONO_OFFS)
++
++#define ARCR_RECORD_BURST_SIZE_OFFS 5
++#define ARCR_RECORD_BURST_SIZE_MASK (0x3 << ARCR_RECORD_BURST_SIZE_OFFS)
++
++#define ARCR_RECORD_MUTE_OFFS 8
++#define ARCR_RECORD_MUTE_MASK (0x1 << ARCR_RECORD_MUTE_OFFS)
++
++#define ARCR_RECORD_PAUSE_OFFS 9
++#define ARCR_RECORD_PAUSE_MASK (0x1 << ARCR_RECORD_PAUSE_OFFS)
++
++#define ARCR_RECORD_I2S_EN_OFFS 10
++#define ARCR_RECORD_I2S_EN_MASK (0x1 << ARCR_RECORD_I2S_EN_OFFS)
++
++#define ARCR_RECORD_SPDIF_EN_OFFS 11
++#define ARCR_RECORD_SPDIF_EN_MASK (0x1 << ARCR_RECORD_SPDIF_EN_OFFS)
++
++
++/* MV_AUDIO_SPDIF_REC_GEN_REG*/
++#define ASRGR_CORE_CLK_FREQ_OFFS 1
++#define ASRGR_CORE_CLK_FREQ_MASK (0x3 << ASRGR_CORE_CLK_FREQ_OFFS)
++#define ASRGR_CORE_CLK_FREQ_133MHZ (0x0 << ASRGR_CORE_CLK_FREQ_OFFS)
++#define ASRGR_CORE_CLK_FREQ_150MHZ (0x1 << ASRGR_CORE_CLK_FREQ_OFFS)
++#define ASRGR_CORE_CLK_FREQ_166MHZ (0x2 << ASRGR_CORE_CLK_FREQ_OFFS)
++#define ASRGR_CORE_CLK_FREQ_200MHZ (0x3 << ASRGR_CORE_CLK_FREQ_OFFS)
++
++#define ASRGR_VALID_PCM_INFO_OFFS 7
++#define ASRGR_VALID_PCM_INFO_MASK (0x1 << ASRGR_VALID_PCM_INFO_OFFS)
++
++#define ASRGR_SAMPLE_FREQ_OFFS 8
++#define ASRGR_SAMPLE_FREQ_MASK (0xf << ASRGR_SAMPLE_FREQ_OFFS)
++
++#define ASRGR_NON_PCM_OFFS 14
++#define ASRGR_NON_PCM_MASK (1 << ASRGR_NON_PCM_OFFS)
++
++/* MV_AUDIO_I2S_REC_CTRL_REG*/
++#define AIRCR_I2S_RECORD_JUSTF_OFFS 26
++#define AIRCR_I2S_RECORD_JUSTF_MASK (0xf << AIRCR_I2S_RECORD_JUSTF_OFFS)
++
++#define AIRCR_I2S_SAMPLE_SIZE_OFFS 30
++#define AIRCR_I2S_SAMPLE_SIZE_MASK (0x3 << AIRCR_I2S_SAMPLE_SIZE_OFFS)
++
++#endif /* __KW_AUDIO_REGS_H */
++
+diff --git a/sound/soc/kirkwood/kirkwood_pcm.c b/sound/soc/kirkwood/kirkwood_pcm.c
+new file mode 100644
+index 0000000..ed35851
+--- /dev/null
++++ b/sound/soc/kirkwood/kirkwood_pcm.c
+@@ -0,0 +1,1505 @@
++/*
++ *
++ * Marvell Orion Alsa Sound driver
++ *
++ * Author: Maen Suleiman
++ * Copyright (C) 2008 Marvell Ltd.
++ *
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ */
++
++#include <linux/interrupt.h>
++#include <linux/dma-mapping.h>
++#include <linux/platform_device.h>
++#include <linux/mv88fx_audio.h>
++
++#include <sound/core.h>
++#include <sound/control.h>
++#include <sound/pcm.h>
++#include <sound/asoundef.h>
++
++#include "kirkwood_audio_hal.h"
++
++struct mv88fx_snd_chip *chip;
++
++static int test_memory(struct mbus_dram_target_info *dram_info,
++ unsigned int base, unsigned int size)
++{
++ unsigned int i;
++
++ for (i = 0; i <= dram_info->num_cs; i++) {
++
++ /* check if we get to end */
++ if ((dram_info->cs[i].base == 0) &&
++ (dram_info->cs[i].size == 0))
++ break;
++
++ /* check if we fit into one memory window only */
++ if ((base >= dram_info->cs[i].base) &&
++ ((base + size) <= dram_info->cs[i].base +
++ dram_info->cs[i].size))
++ return 1;
++ }
++
++ return 0;
++}
++
++static void devdma_hw_free(struct device *dev, struct snd_pcm_substream
++ *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct snd_dma_buffer *buf = runtime->dma_buffer_p;
++
++ if (runtime->dma_area == NULL)
++ return;
++
++ if (buf != &substream->dma_buffer)
++ kfree(runtime->dma_buffer_p);
++
++ snd_pcm_set_runtime_buffer(substream, NULL);
++}
++
++static int devdma_hw_alloc(struct device *dev, struct snd_pcm_substream
++ *substream, size_t size)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct snd_dma_buffer *buf = runtime->dma_buffer_p;
++ struct mv88fx_snd_stream *audio_stream =
++ snd_pcm_substream_chip(substream);
++
++ int ret = 0;
++
++ if (buf) {
++ if (buf->bytes >= size) {
++ snd_printd("buf->bytes >= size\n");
++ goto out;
++ }
++ devdma_hw_free(dev, substream);
++ }
++
++ if (substream->dma_buffer.area != NULL &&
++ substream->dma_buffer.bytes >= size) {
++ buf = &substream->dma_buffer;
++ } else {
++ buf = kmalloc(sizeof(struct snd_dma_buffer), GFP_KERNEL);
++ if (!buf) {
++ snd_printk("buf == NULL\n");
++ goto nomem;
++ }
++
++ buf->dev.type = SNDRV_DMA_TYPE_DEV;
++ buf->dev.dev = dev;
++ buf->area = audio_stream->area;
++ buf->addr = audio_stream->addr;
++ buf->bytes = size;
++ buf->private_data = NULL;
++
++ if (!buf->area) {
++ snd_printk("buf->area == NULL\n");
++ goto free;
++ }
++ }
++
++ snd_pcm_set_runtime_buffer(substream, buf);
++ ret = 1;
++out:
++ runtime->dma_bytes = size;
++ return ret;
++
++free:
++ kfree(buf);
++nomem:
++ return -ENOMEM;
++}
++
++static int devdma_mmap(struct device *dev, struct snd_pcm_substream *substream,
++ struct vm_area_struct *vma)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ return dma_mmap_coherent(dev, vma, runtime->dma_area,
++ runtime->dma_addr, runtime->dma_bytes);
++}
++
++/*
++ * hw preparation for spdif
++ */
++
++static int mv88fx_snd_spdif_mask_info(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_info *uinfo)
++{
++ uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958;
++ uinfo->count = 1;
++ return 0;
++}
++
++static int mv88fx_snd_spdif_mask_get(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ ucontrol->value.iec958.status[0] = 0xff;
++ ucontrol->value.iec958.status[1] = 0xff;
++ ucontrol->value.iec958.status[2] = 0xff;
++ ucontrol->value.iec958.status[3] = 0xff;
++ return 0;
++}
++
++static struct snd_kcontrol_new mv88fx_snd_spdif_mask = {
++ .access = SNDRV_CTL_ELEM_ACCESS_READ,
++ .iface = SNDRV_CTL_ELEM_IFACE_PCM,
++ .name = SNDRV_CTL_NAME_IEC958("", PLAYBACK, CON_MASK),
++ .info = mv88fx_snd_spdif_mask_info,
++ .get = mv88fx_snd_spdif_mask_get,
++};
++
++static int mv88fx_snd_spdif_stream_info(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_info *uinfo)
++{
++ uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958;
++ uinfo->count = 1;
++ return 0;
++}
++
++static int mv88fx_snd_spdif_stream_get(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ struct mv88fx_snd_chip *chip = snd_kcontrol_chip(kcontrol);
++ int i, word;
++
++ spin_lock_irq(&chip->reg_lock);
++
++ for (word = 0; word < 4; word++) {
++ chip->stream[PLAYBACK]->spdif_status[word] =
++ readl(chip->base +
++ MV_AUDIO_SPDIF_PLAY_CH_STATUS_LEFT_REG(word));
++
++ for (i = 0; i < 4; i++)
++ ucontrol->value.iec958.status[word + i] =
++ (chip->stream[PLAYBACK]->spdif_status[word] >>
++ (i * 8)) & 0xff;
++ }
++
++ spin_unlock_irq(&chip->reg_lock);
++ return 0;
++}
++
++static int mv88fx_snd_spdif_stream_put(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ struct mv88fx_snd_chip *chip = snd_kcontrol_chip(kcontrol);
++ int i, change = 0, word;
++
++ spin_lock_irq(&chip->reg_lock);
++
++ for (word = 0; word < 4; word++) {
++ for (i = 0; i < 4; i++) {
++ chip->stream[PLAYBACK]->spdif_status[word] |=
++ ucontrol->value.iec958.status[word + i] << (i * 8);
++ }
++
++ writel(chip->stream[PLAYBACK]->spdif_status[word],
++ chip->base + MV_AUDIO_SPDIF_PLAY_CH_STATUS_LEFT_REG(word));
++
++ writel(chip->stream[PLAYBACK]->spdif_status[word],
++ chip->base + MV_AUDIO_SPDIF_PLAY_CH_STATUS_RIGHT_REG(word));
++ }
++
++ if (chip->stream[PLAYBACK]->spdif_status[0] & IEC958_AES0_NONAUDIO)
++ chip->pcm_mode = NON_PCM;
++
++ spin_unlock_irq(&chip->reg_lock);
++
++ return change;
++}
++
++static struct snd_kcontrol_new mv88fx_snd_spdif_stream = {
++ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
++ SNDRV_CTL_ELEM_ACCESS_INACTIVE,
++ .iface = SNDRV_CTL_ELEM_IFACE_PCM,
++ .name = SNDRV_CTL_NAME_IEC958("", PLAYBACK, PCM_STREAM),
++ .info = mv88fx_snd_spdif_stream_info,
++ .get = mv88fx_snd_spdif_stream_get,
++ .put = mv88fx_snd_spdif_stream_put
++};
++
++
++static int mv88fx_snd_spdif_default_info(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_info *uinfo)
++{
++ uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958;
++ uinfo->count = 1;
++ return 0;
++}
++
++static int mv88fx_snd_spdif_default_get(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ struct mv88fx_snd_chip *chip = snd_kcontrol_chip(kcontrol);
++ int i, word;
++
++ spin_lock_irq(&chip->reg_lock);
++
++ for (word = 0; word < 4; word++) {
++ chip->stream_defaults[PLAYBACK]->spdif_status[word] =
++ readl(chip->base +
++ MV_AUDIO_SPDIF_PLAY_CH_STATUS_LEFT_REG(word));
++
++ for (i = 0; i < 4; i++)
++ ucontrol->value.iec958.status[word + i] =
++ (chip->stream_defaults[PLAYBACK]->spdif_status[word] >>
++ (i * 8)) & 0xff;
++ }
++
++ spin_unlock_irq(&chip->reg_lock);
++
++ return 0;
++}
++
++static int mv88fx_snd_spdif_default_put(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ struct mv88fx_snd_chip *chip = snd_kcontrol_chip(kcontrol);
++ int i, change = 0, word;
++
++ spin_lock_irq(&chip->reg_lock);
++
++ for (word = 0; word < 4; word++) {
++ for (i = 0; i < 4; i++) {
++ chip->stream_defaults[PLAYBACK]->spdif_status[word] |=
++ ucontrol->value.iec958.status[word + i] << (i * 8);
++ }
++
++ writel(chip->stream_defaults[PLAYBACK]->spdif_status[word],
++ chip->base + MV_AUDIO_SPDIF_PLAY_CH_STATUS_LEFT_REG(word));
++
++ writel(chip->stream_defaults[PLAYBACK]->spdif_status[word],
++ chip->base + MV_AUDIO_SPDIF_PLAY_CH_STATUS_RIGHT_REG(word));
++ }
++
++ if (chip->stream_defaults[PLAYBACK]->spdif_status[0] &
++ IEC958_AES0_NONAUDIO)
++ chip->pcm_mode = NON_PCM;
++
++ spin_unlock_irq(&chip->reg_lock);
++
++ return change;
++}
++
++/* static struct snd_kcontrol_new mv88fx_snd_spdif_default __devinitdata = */
++static struct snd_kcontrol_new mv88fx_snd_spdif_default = {
++ .iface = SNDRV_CTL_ELEM_IFACE_PCM,
++ .name = SNDRV_CTL_NAME_IEC958("", PLAYBACK, DEFAULT),
++ .info = mv88fx_snd_spdif_default_info,
++ .get = mv88fx_snd_spdif_default_get,
++ .put = mv88fx_snd_spdif_default_put
++};
++
++unsigned char mv88fx_snd_vol[2];
++
++static int mv88fx_snd_mixer_vol_info(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_info *uinfo)
++{
++ uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
++ uinfo->count = 2;
++ uinfo->value.integer.min = 0;
++ uinfo->value.integer.max = 39;
++ return 0;
++}
++
++static int mv88fx_snd_mixer_vol_get(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ codec_vol_get(mv88fx_snd_vol);
++
++ ucontrol->value.integer.value[0] = (long)mv88fx_snd_vol[0];
++ ucontrol->value.integer.value[1] = (long)mv88fx_snd_vol[1];
++
++ return 0;
++}
++
++static int mv88fx_snd_mixer_vol_put(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ mv88fx_snd_vol[0] = (unsigned char)ucontrol->value.integer.value[0];
++ mv88fx_snd_vol[1] = (unsigned char)ucontrol->value.integer.value[1];
++
++ codec_vol_set(mv88fx_snd_vol);
++
++ return 0;
++}
++
++static struct snd_kcontrol_new mv88fx_snd_dac_vol = {
++ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
++ .name = "Playback DAC Volume",
++ .info = mv88fx_snd_mixer_vol_info,
++ .get = mv88fx_snd_mixer_vol_get,
++ .put = mv88fx_snd_mixer_vol_put
++};
++
++struct mv88fx_snd_mixer_enum {
++ char **names; /* enum names*/
++ int *values; /* values to be updated*/
++ int count; /* number of elements */
++ void *rec; /* field to be updated*/
++};
++
++int mv88fx_snd_mixer_enum_info(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_info *uinfo)
++{
++ struct mv88fx_snd_mixer_enum *mixer_enum =
++ (struct mv88fx_snd_mixer_enum *)kcontrol->private_value;
++
++ uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
++ uinfo->count = 1;
++ uinfo->value.enumerated.items = mixer_enum->count;
++
++ if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items)
++ uinfo->value.enumerated.item--;
++
++ strcpy(uinfo->value.enumerated.name,
++ mixer_enum->names[uinfo->value.enumerated.item]);
++
++ return 0;
++}
++
++int mv88fx_snd_mixer_enum_get(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ struct mv88fx_snd_mixer_enum *mixer_enum =
++ (struct mv88fx_snd_mixer_enum *)kcontrol->private_value;
++ int i;
++ unsigned int val;
++
++ val = *(unsigned int *)mixer_enum->rec;
++
++ for (i = 0; i < mixer_enum->count; i++) {
++
++ if (val == (unsigned int)mixer_enum->values[i]) {
++ ucontrol->value.enumerated.item[0] = i;
++ break;
++ }
++ }
++
++ return 0;
++}
++
++int mv88fx_snd_mixer_enum_put(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ unsigned int val, *rec;
++ struct mv88fx_snd_mixer_enum *mixer_enum =
++ (struct mv88fx_snd_mixer_enum *)kcontrol->private_value;
++ int i;
++
++ rec = (unsigned int *)mixer_enum->rec;
++ val = ucontrol->value.enumerated.item[0];
++
++ if (val < 0)
++ val = 0;
++ if (val > mixer_enum->count)
++ val = mixer_enum->count;
++
++ for (i = 0; i < mixer_enum->count; i++) {
++
++ if (val == i) {
++ *rec = (unsigned int)mixer_enum->values[i];
++ break;
++ }
++ }
++
++ return 0;
++}
++
++#define MV88FX_PCM_MIXER_ENUM(xname, xindex, value) \
++{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
++ .name = xname, \
++ .index = xindex, \
++ .info = mv88fx_snd_mixer_enum_info, \
++ .get = mv88fx_snd_mixer_enum_get, \
++ .put = mv88fx_snd_mixer_enum_put, \
++ .private_value = (unsigned long)value, \
++}
++
++char *playback_src_mixer_names[] = {"SPDIF", "I2S", "SPDIF And I2S"};
++int playback_src_mixer_values[] = { SPDIF, I2S, (SPDIF | I2S)};
++
++struct mv88fx_snd_mixer_enum playback_src_mixer = {
++ .names = playback_src_mixer_names,
++ .values = playback_src_mixer_values,
++ .count = 3,
++};
++
++char *playback_mono_mixer_names[] = {"Mono Both", "Mono Left", "Mono Right"};
++int playback_mono_mixer_values[] = { MONO_BOTH, MONO_LEFT, MONO_RIGHT};
++
++struct mv88fx_snd_mixer_enum playback_mono_mixer = {
++ .names = playback_mono_mixer_names,
++ .values = playback_mono_mixer_values,
++ .count = 3,
++};
++
++char *capture_src_mixer_names[] = {"SPDIF", "I2S"};
++int capture_src_mixer_values[] = { SPDIF, I2S};
++
++struct mv88fx_snd_mixer_enum capture_src_mixer = {
++ .names = capture_src_mixer_names,
++ .values = capture_src_mixer_values,
++ .count = 2,
++};
++
++char *capture_mono_mixer_names[] = {"Mono Left", "Mono Right"};
++int capture_mono_mixer_values[] = { MONO_LEFT, MONO_RIGHT};
++
++struct mv88fx_snd_mixer_enum capture_mono_mixer = {
++ .names = capture_mono_mixer_names,
++ .values = capture_mono_mixer_values,
++ .count = 2,
++};
++
++static struct snd_kcontrol_new mv88fx_snd_mixers[] = {
++ MV88FX_PCM_MIXER_ENUM("Playback output type", 0, &playback_src_mixer),
++
++ MV88FX_PCM_MIXER_ENUM("Playback mono type", 0, &playback_mono_mixer),
++
++ MV88FX_PCM_MIXER_ENUM("Capture input Type", 0, &capture_src_mixer),
++
++ MV88FX_PCM_MIXER_ENUM("Capture mono type", 0, &capture_mono_mixer),
++};
++
++#define PLAYBACK_MIX_INDX 0
++#define PLAYBACK_MONO_MIX_INDX 1
++#define CAPTURE_MIX_INDX 2
++#define CAPTURE_MONO_MIX_INDX 3
++
++static int mv88fx_snd_ctrl_new(struct snd_card *card)
++{
++ struct mv88fx_snd_platform_data *pdata = card->dev->platform_data;
++ int err = 0;
++
++ playback_src_mixer.rec = &chip->stream_defaults[PLAYBACK]->dig_mode;
++ playback_mono_mixer.rec = &chip->stream_defaults[PLAYBACK]->mono_mode;
++
++ capture_src_mixer.rec = &chip->stream_defaults[CAPTURE]->dig_mode;
++ capture_mono_mixer.rec = &chip->stream_defaults[CAPTURE]->mono_mode;
++
++ if ((pdata->i2s_play) && (pdata->spdif_play)) {
++ err = snd_ctl_add(card,
++ snd_ctl_new1(&mv88fx_snd_mixers[PLAYBACK_MIX_INDX],
++ chip));
++ if (err < 0)
++ return err;
++ }
++
++ err = snd_ctl_add(card,
++ snd_ctl_new1(&mv88fx_snd_mixers[PLAYBACK_MONO_MIX_INDX], chip));
++ if (err < 0)
++ return err;
++
++ if ((pdata->i2s_rec) && (pdata->spdif_rec)) {
++ err = snd_ctl_add(card,
++ snd_ctl_new1(&mv88fx_snd_mixers[CAPTURE_MIX_INDX], chip));
++ if (err < 0)
++ return err;
++ }
++
++ err = snd_ctl_add(card, snd_ctl_new1(
++ &mv88fx_snd_mixers[CAPTURE_MONO_MIX_INDX], chip));
++ if (err < 0)
++ return err;
++
++ if (pdata->i2s_play) {
++ err = snd_ctl_add(card, snd_ctl_new1(&mv88fx_snd_dac_vol,
++ chip));
++ if (err < 0)
++ return err;
++ }
++
++ err = snd_ctl_add(card, snd_ctl_new1(&mv88fx_snd_spdif_mask,
++ chip));
++ if (err < 0)
++ return err;
++
++ err = snd_ctl_add(card, snd_ctl_new1(&mv88fx_snd_spdif_default,
++ chip));
++ if (err < 0)
++ return err;
++
++ err = snd_ctl_add(card, snd_ctl_new1(&mv88fx_snd_spdif_stream,
++ chip));
++ return err;
++}
++
++static struct snd_pcm_hardware mv88fx_snd_capture_hw = {
++ .info = (SNDRV_PCM_INFO_INTERLEAVED |
++ SNDRV_PCM_INFO_MMAP |
++ SNDRV_PCM_INFO_MMAP_VALID |
++ SNDRV_PCM_INFO_BLOCK_TRANSFER |
++ SNDRV_PCM_INFO_PAUSE),
++
++ .formats = (SNDRV_PCM_FMTBIT_S16_LE |
++ SNDRV_PCM_FMTBIT_S24_LE |
++ SNDRV_PCM_FMTBIT_S32_LE),
++
++ .rates = (SNDRV_PCM_RATE_44100 |
++ SNDRV_PCM_RATE_48000 |
++ SNDRV_PCM_RATE_96000),
++
++ .rate_min = 44100,
++ .rate_max = 96000,
++ .channels_min = 1,
++ .channels_max = 2,
++ .buffer_bytes_max = (16*1024*1024),
++ .period_bytes_min = MV88FX_SND_MIN_PERIOD_BYTES,
++ .period_bytes_max = MV88FX_SND_MAX_PERIOD_BYTES,
++ .periods_min = MV88FX_SND_MIN_PERIODS,
++ .periods_max = MV88FX_SND_MAX_PERIODS,
++ .fifo_size = 0,
++};
++
++static int mv88fx_snd_capture_open(struct snd_pcm_substream *substream)
++{
++ int err;
++
++ chip->stream_defaults[CAPTURE]->substream = substream;
++ chip->stream_defaults[CAPTURE]->direction = CAPTURE;
++ substream->private_data = chip->stream_defaults[CAPTURE];
++ substream->runtime->hw = mv88fx_snd_capture_hw;
++
++ if (chip->stream_defaults[CAPTURE]->dig_mode & SPDIF)
++ substream->runtime->hw.formats &= ~SNDRV_PCM_FMTBIT_S32_LE;
++
++ /* check if playback is already running with specific rate */
++ if (chip->stream[PLAYBACK]->rate) {
++ switch (chip->stream[PLAYBACK]->rate) {
++ case 44100:
++ substream->runtime->hw.rates = SNDRV_PCM_RATE_44100;
++ break;
++ case 48000:
++ substream->runtime->hw.rates = SNDRV_PCM_RATE_48000;
++ break;
++ case 96000:
++ substream->runtime->hw.rates = SNDRV_PCM_RATE_96000;
++ break;
++ }
++ }
++
++ err = snd_pcm_hw_constraint_minmax(substream->runtime,
++ SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
++ chip->burst * 2,
++ AUDIO_REG_TO_SIZE(APBBCR_SIZE_MAX));
++ if (err < 0)
++ return err;
++
++ err = snd_pcm_hw_constraint_step(substream->runtime, 0,
++ SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
++ chip->burst);
++ if (err < 0)
++ return err;
++
++ err = snd_pcm_hw_constraint_step(substream->runtime, 0,
++ SNDRV_PCM_HW_PARAM_PERIOD_BYTES,
++ chip->burst);
++ if (err < 0)
++ return err;
++
++ err = snd_pcm_hw_constraint_minmax(substream->runtime,
++ SNDRV_PCM_HW_PARAM_PERIODS,
++ MV88FX_SND_MIN_PERIODS,
++ MV88FX_SND_MAX_PERIODS);
++ if (err < 0)
++ return err;
++
++ err = snd_pcm_hw_constraint_integer(substream->runtime,
++ SNDRV_PCM_HW_PARAM_PERIODS);
++ if (err < 0)
++ return err;
++
++ return 0;
++}
++
++static int mv88fx_snd_capture_close(struct snd_pcm_substream *substream)
++{
++ chip->stream_defaults[CAPTURE]->substream = NULL;
++ memset(chip->stream[CAPTURE], 0, sizeof(struct mv88fx_snd_stream));
++
++ return 0;
++}
++
++static int mv88fx_snd_capture_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct mv88fx_snd_stream *audio_stream =
++ snd_pcm_substream_chip(substream);
++
++ return devdma_hw_alloc(audio_stream->dev, substream,
++ params_buffer_bytes(params));
++}
++
++static int mv88fx_snd_capture_hw_free(struct snd_pcm_substream *substream)
++{
++ struct mv88fx_snd_stream *audio_stream =
++ snd_pcm_substream_chip(substream);
++
++ /*
++ * Clear out the DMA and any allocated buffers.
++ */
++ devdma_hw_free(audio_stream->dev, substream);
++ return 0;
++}
++
++static int mv88fx_snd_capture_prepare(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++
++ struct mv88fx_snd_stream *audio_stream =
++ snd_pcm_substream_chip(substream);
++
++ audio_stream->rate = runtime->rate;
++ audio_stream->stereo = (runtime->channels == 1) ? 0 : 1;
++
++ if (runtime->format == SNDRV_PCM_FORMAT_S16_LE) {
++ audio_stream->format = SAMPLE_16IN16;
++ } else if (runtime->format == SNDRV_PCM_FORMAT_S24_LE) {
++ audio_stream->format = SAMPLE_24IN32;
++ } else if (runtime->format == SNDRV_PCM_FORMAT_S32_LE) {
++ audio_stream->format = SAMPLE_32IN32;
++ } else {
++ snd_printk("Requested format %d is not supported\n",
++ runtime->format);
++ return -1;
++ }
++
++ /* buffer and period sizes in frame */
++ audio_stream->dma_addr = runtime->dma_addr;
++ audio_stream->dma_size = frames_to_bytes(runtime, runtime->buffer_size);
++ audio_stream->period_size =
++ frames_to_bytes(runtime, runtime->period_size);
++
++ memcpy(chip->stream[CAPTURE], chip->stream_defaults[CAPTURE],
++ sizeof(struct mv88fx_snd_stream));
++
++ return mv88fx_snd_hw_capture_set(chip);
++}
++
++static int mv88fx_snd_capture_trigger(struct snd_pcm_substream *substream,
++ int cmd)
++{
++ struct mv88fx_snd_stream *audio_stream =
++ snd_pcm_substream_chip(substream);
++ int result = 0;
++ unsigned int reg_data;
++
++ spin_lock(chip->reg_lock);
++ switch (cmd) {
++ case SNDRV_PCM_TRIGGER_START:
++ /* FIXME: should check if busy before */
++
++ /* make sure the dma in pause state*/
++ reg_data = readl(chip->base + MV_AUDIO_RECORD_CTRL_REG);
++ reg_data |= ARCR_RECORD_PAUSE_MASK;
++ writel(reg_data, chip->base + MV_AUDIO_RECORD_CTRL_REG);
++
++ /* enable interrupt */
++ reg_data = readl(chip->base + MV_AUDIO_INT_MASK_REG);
++ reg_data |= AICR_RECORD_BYTES_INT;
++ writel(reg_data, chip->base + MV_AUDIO_INT_MASK_REG);
++
++ reg_data = readl(chip->base + MV_AUDIO_RECORD_CTRL_REG);
++
++ /* enable dma */
++ if (audio_stream->dig_mode & I2S)
++ reg_data |= ARCR_RECORD_I2S_EN_MASK;
++
++ if (audio_stream->dig_mode & SPDIF)
++ reg_data |= ARCR_RECORD_SPDIF_EN_MASK;
++
++ /* start dma */
++ reg_data &= (~ARCR_RECORD_PAUSE_MASK);
++ writel(reg_data, chip->base + MV_AUDIO_RECORD_CTRL_REG);
++ break;
++
++ case SNDRV_PCM_TRIGGER_STOP:
++
++ /* make sure the dma in pause state */
++ reg_data = readl(chip->base + MV_AUDIO_RECORD_CTRL_REG);
++ reg_data |= ARCR_RECORD_PAUSE_MASK;
++ writel(reg_data, chip->base + MV_AUDIO_RECORD_CTRL_REG);
++
++ /* disable interrupt */
++ reg_data = readl(chip->base + MV_AUDIO_INT_MASK_REG);
++ reg_data &= (~AICR_RECORD_BYTES_INT);
++ writel(reg_data, chip->base + MV_AUDIO_INT_MASK_REG);
++
++ /* always stop both I2S and SPDIF */
++ reg_data = readl(chip->base + MV_AUDIO_RECORD_CTRL_REG);
++ reg_data &= (~(ARCR_RECORD_I2S_EN_MASK |
++ ARCR_RECORD_SPDIF_EN_MASK));
++ writel(reg_data, chip->base + MV_AUDIO_RECORD_CTRL_REG);
++
++ /* FIXME: should check if busy after */
++
++ break;
++
++ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
++ case SNDRV_PCM_TRIGGER_SUSPEND:
++ reg_data = readl(chip->base + MV_AUDIO_RECORD_CTRL_REG);
++ reg_data |= ARCR_RECORD_PAUSE_MASK;
++ writel(reg_data, chip->base + MV_AUDIO_RECORD_CTRL_REG);
++ break;
++
++ case SNDRV_PCM_TRIGGER_RESUME:
++ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
++ reg_data = readl(chip->base + MV_AUDIO_RECORD_CTRL_REG);
++ reg_data &= (~ARCR_RECORD_PAUSE_MASK);
++ writel(reg_data, chip->base + MV_AUDIO_RECORD_CTRL_REG);
++ break;
++
++ default:
++ result = -EINVAL;
++ break;
++ }
++
++ spin_unlock(&chip->reg_lock);
++ return result;
++}
++
++static snd_pcm_uframes_t mv88fx_snd_capture_pointer(struct snd_pcm_substream
++ *substream)
++{
++ return bytes_to_frames(substream->runtime,
++ (ssize_t)readl(chip->base + MV_AUDIO_RECORD_BUF_BYTE_CNTR_REG));
++}
++
++int mv88fx_snd_capture_mmap(struct snd_pcm_substream *substream,
++ struct vm_area_struct *vma)
++{
++ return devdma_mmap(NULL, substream, vma);
++}
++
++static struct snd_pcm_ops mv88fx_snd_capture_ops = {
++ .open = mv88fx_snd_capture_open,
++ .close = mv88fx_snd_capture_close,
++ .ioctl = snd_pcm_lib_ioctl,
++ .hw_params = mv88fx_snd_capture_hw_params,
++ .hw_free = mv88fx_snd_capture_hw_free,
++ .prepare = mv88fx_snd_capture_prepare,
++ .trigger = mv88fx_snd_capture_trigger,
++ .pointer = mv88fx_snd_capture_pointer,
++ .mmap = mv88fx_snd_capture_mmap,
++};
++
++struct snd_pcm_hardware mv88fx_snd_playback_hw = {
++ .info = (SNDRV_PCM_INFO_INTERLEAVED |
++ SNDRV_PCM_INFO_MMAP |
++ SNDRV_PCM_INFO_MMAP_VALID |
++ SNDRV_PCM_INFO_BLOCK_TRANSFER |
++ SNDRV_PCM_INFO_PAUSE),
++ .formats = (SNDRV_PCM_FMTBIT_S16_LE |
++ SNDRV_PCM_FMTBIT_S24_LE |
++ SNDRV_PCM_FMTBIT_S32_LE),
++ .rates = (SNDRV_PCM_RATE_44100 |
++ SNDRV_PCM_RATE_48000 |
++ SNDRV_PCM_RATE_96000),
++
++ .rate_min = 44100,
++ .rate_max = 96000,
++ .channels_min = 1,
++ .channels_max = 2,
++ .buffer_bytes_max = (16*1024*1024),
++ .period_bytes_min = MV88FX_SND_MIN_PERIOD_BYTES,
++ .period_bytes_max = MV88FX_SND_MAX_PERIOD_BYTES,
++ .periods_min = MV88FX_SND_MIN_PERIODS,
++ .periods_max = MV88FX_SND_MAX_PERIODS,
++ .fifo_size = 0,
++};
++
++int mv88fx_snd_playback_open(struct snd_pcm_substream *substream)
++{
++ int err = 0;
++
++ chip->stream_defaults[PLAYBACK]->substream = substream;
++ chip->stream_defaults[PLAYBACK]->direction = PLAYBACK;
++ substream->private_data = chip->stream_defaults[PLAYBACK];
++ substream->runtime->hw = mv88fx_snd_playback_hw;
++
++ if (chip->stream_defaults[PLAYBACK]->dig_mode & SPDIF)
++ substream->runtime->hw.formats &= ~SNDRV_PCM_FMTBIT_S32_LE;
++
++ /* check if capture is already running with specific rate */
++ if (chip->stream[CAPTURE]->rate) {
++ switch (chip->stream[CAPTURE]->rate) {
++ case 44100:
++ substream->runtime->hw.rates = SNDRV_PCM_RATE_44100;
++ break;
++ case 48000:
++ substream->runtime->hw.rates = SNDRV_PCM_RATE_48000;
++ break;
++ case 96000:
++ substream->runtime->hw.rates = SNDRV_PCM_RATE_96000;
++ break;
++
++ }
++ }
++
++ err = snd_pcm_hw_constraint_minmax(substream->runtime,
++ SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
++ chip->burst * 2,
++ AUDIO_REG_TO_SIZE(APBBCR_SIZE_MAX));
++ if (err < 0)
++ return err;
++
++ err = snd_pcm_hw_constraint_step(substream->runtime, 0,
++ SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
++ chip->burst);
++ if (err < 0)
++ return err;
++
++ err = snd_pcm_hw_constraint_step(substream->runtime, 0,
++ SNDRV_PCM_HW_PARAM_PERIOD_BYTES,
++ chip->burst);
++ if (err < 0)
++ return err;
++
++ err = snd_pcm_hw_constraint_minmax(substream->runtime,
++ SNDRV_PCM_HW_PARAM_PERIODS,
++ MV88FX_SND_MIN_PERIODS,
++ MV88FX_SND_MAX_PERIODS);
++ if (err < 0)
++ return err;
++
++ err = snd_pcm_hw_constraint_integer(substream->runtime,
++ SNDRV_PCM_HW_PARAM_PERIODS);
++
++ if (err < 0)
++ return err;
++
++ return 0;
++}
++
++int mv88fx_snd_playback_close(struct snd_pcm_substream *substream)
++{
++ int i;
++
++ chip->stream_defaults[PLAYBACK]->substream = NULL;
++ chip->pcm_mode = PCM;
++
++ for (i = 0; i < 4; i++) {
++ chip->stream_defaults[PLAYBACK]->spdif_status[i] = 0;
++ chip->stream[PLAYBACK]->spdif_status[i] = 0;
++
++ writel(chip->stream_defaults[PLAYBACK]->spdif_status[i],
++ chip->base + MV_AUDIO_SPDIF_PLAY_CH_STATUS_LEFT_REG(i));
++ writel(chip->stream_defaults[PLAYBACK]->spdif_status[i],
++ chip->base + MV_AUDIO_SPDIF_PLAY_CH_STATUS_RIGHT_REG(i));
++ }
++
++ memset(chip->stream[PLAYBACK], 0, sizeof(struct mv88fx_snd_stream));
++
++ return 0;
++}
++
++int mv88fx_snd_playback_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct mv88fx_snd_stream *audio_stream =
++ snd_pcm_substream_chip(substream);
++
++ return devdma_hw_alloc(audio_stream->dev, substream,
++ params_buffer_bytes(params));
++}
++
++int mv88fx_snd_playback_hw_free(struct snd_pcm_substream *substream)
++{
++ struct mv88fx_snd_stream *audio_stream =
++ snd_pcm_substream_chip(substream);
++
++ /*
++ * Clear out the DMA and any allocated buffers.
++ */
++ devdma_hw_free(audio_stream->dev, substream);
++ return 0;
++}
++
++int mv88fx_snd_playback_prepare(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++
++ struct mv88fx_snd_stream *audio_stream =
++ snd_pcm_substream_chip(substream);
++
++ if ((audio_stream->dig_mode == I2S) &&
++ (chip->pcm_mode == NON_PCM))
++ return -1;
++
++ audio_stream->rate = runtime->rate;
++ audio_stream->stereo = (runtime->channels == 1) ? 0 : 1;
++
++ if (runtime->format == SNDRV_PCM_FORMAT_S16_LE) {
++ audio_stream->format = SAMPLE_16IN16;
++ } else if (runtime->format == SNDRV_PCM_FORMAT_S24_LE) {
++ audio_stream->format = SAMPLE_24IN32;
++ } else if (runtime->format == SNDRV_PCM_FORMAT_S32_LE) {
++ audio_stream->format = SAMPLE_32IN32;
++ } else {
++ snd_printk("Requested format %d is not supported\n",
++ runtime->format);
++ return -1;
++ }
++
++ /* buffer and period sizes in frame */
++ audio_stream->dma_addr = runtime->dma_addr;
++ audio_stream->dma_size = frames_to_bytes(runtime, runtime->buffer_size);
++ audio_stream->period_size =
++ frames_to_bytes(runtime, runtime->period_size);
++
++ memcpy(chip->stream[PLAYBACK], chip->stream_defaults[PLAYBACK],
++ sizeof(struct mv88fx_snd_stream));
++
++ return mv88fx_snd_hw_playback_set(chip);
++}
++
++int mv88fx_snd_playback_trigger(struct snd_pcm_substream *substream,
++ int cmd)
++{
++ struct mv88fx_snd_stream *audio_stream =
++ snd_pcm_substream_chip(substream);
++ int result = 0;
++ unsigned int reg_data;
++
++ spin_lock(chip->reg_lock);
++ switch (cmd) {
++ case SNDRV_PCM_TRIGGER_START:
++ /* enable interrupt */
++ reg_data = readl(chip->base + MV_AUDIO_INT_MASK_REG);
++ reg_data |= AICR_PLAY_BYTES_INT;
++ writel(reg_data, chip->base + MV_AUDIO_INT_MASK_REG);
++
++ /* make sure the dma in pause state*/
++ reg_data = readl(chip->base +
++ MV_AUDIO_PLAYBACK_CTRL_REG);
++ reg_data |= APCR_PLAY_PAUSE_MASK;
++ writel(reg_data, chip->base +
++ MV_AUDIO_PLAYBACK_CTRL_REG);
++
++ /* enable dma */
++ if ((audio_stream->dig_mode & I2S) &&
++ (chip->pcm_mode == PCM))
++ reg_data |= APCR_PLAY_I2S_ENABLE_MASK;
++
++ if (audio_stream->dig_mode & SPDIF)
++ reg_data |= APCR_PLAY_SPDIF_ENABLE_MASK;
++
++ /* start dma */
++ reg_data &= (~APCR_PLAY_PAUSE_MASK);
++ writel(reg_data, chip->base + MV_AUDIO_PLAYBACK_CTRL_REG);
++
++ break;
++
++ case SNDRV_PCM_TRIGGER_STOP:
++
++ /* disable interrupt */
++ reg_data = readl(chip->base + MV_AUDIO_INT_MASK_REG);
++ reg_data &= (~AICR_PLAY_BYTES_INT);
++ writel(reg_data, chip->base + MV_AUDIO_INT_MASK_REG);
++
++ /* make sure the dma in pause state*/
++ reg_data = readl(chip->base +
++ MV_AUDIO_PLAYBACK_CTRL_REG);
++ reg_data |= APCR_PLAY_PAUSE_MASK;
++
++ /* always stop both I2S and SPDIF*/
++ reg_data &= (~(APCR_PLAY_I2S_ENABLE_MASK |
++ APCR_PLAY_SPDIF_ENABLE_MASK));
++ writel(reg_data, chip->base +
++ MV_AUDIO_PLAYBACK_CTRL_REG);
++
++ /* check if busy twice*/
++ while (readl(chip->base + MV_AUDIO_PLAYBACK_CTRL_REG) &
++ APCR_PLAY_BUSY_MASK)
++ cpu_relax();
++ while (readl(chip->base + MV_AUDIO_PLAYBACK_CTRL_REG) &
++ APCR_PLAY_BUSY_MASK)
++ cpu_relax();
++ break;
++
++ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
++ case SNDRV_PCM_TRIGGER_SUSPEND:
++ reg_data = readl(chip->base +
++ MV_AUDIO_PLAYBACK_CTRL_REG);
++ reg_data |= APCR_PLAY_PAUSE_MASK;
++ writel(reg_data, chip->base +
++ MV_AUDIO_PLAYBACK_CTRL_REG);
++ break;
++
++ case SNDRV_PCM_TRIGGER_RESUME:
++ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
++ reg_data = readl(chip->base +
++ MV_AUDIO_PLAYBACK_CTRL_REG);
++ reg_data &= (~APCR_PLAY_PAUSE_MASK);
++ writel(reg_data, chip->base +
++ MV_AUDIO_PLAYBACK_CTRL_REG);
++
++ break;
++
++ default:
++ result = -EINVAL;
++ }
++
++ spin_unlock(&chip->reg_lock);
++ return result;
++}
++
++
++snd_pcm_uframes_t mv88fx_snd_playback_pointer(struct snd_pcm_substream
++ *substream)
++{
++ return bytes_to_frames(substream->runtime,
++ (ssize_t)readl(chip->base + MV_AUDIO_PLAYBACK_BUFF_BYTE_CNTR_REG));
++}
++
++int mv88fx_snd_playback_mmap(struct snd_pcm_substream *substream,
++ struct vm_area_struct *vma)
++{
++ return devdma_mmap(NULL, substream, vma);
++}
++
++
++struct snd_pcm_ops mv88fx_snd_playback_ops = {
++ .open = mv88fx_snd_playback_open,
++ .close = mv88fx_snd_playback_close,
++ .ioctl = snd_pcm_lib_ioctl,
++ .hw_params = mv88fx_snd_playback_hw_params,
++ .hw_free = mv88fx_snd_playback_hw_free,
++ .prepare = mv88fx_snd_playback_prepare,
++ .trigger = mv88fx_snd_playback_trigger,
++ .pointer = mv88fx_snd_playback_pointer,
++ .mmap = mv88fx_snd_playback_mmap,
++};
++
++int __init mv88fx_snd_pcm_new(struct snd_card *card)
++{
++ struct snd_pcm *pcm;
++ struct mv88fx_snd_platform_data *pdata = card->dev->platform_data;
++ int err, i;
++
++ snd_printd("card->dev=0x%x\n", (unsigned int)card->dev);
++
++ err = snd_pcm_new(card, "Marvell mv88fx_snd IEC958 and I2S", 0, 1, 1,
++ &pcm);
++ if (err < 0)
++ return err;
++
++ snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK,
++ &mv88fx_snd_playback_ops);
++
++ snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE,
++ &mv88fx_snd_capture_ops);
++
++ if ((pdata->i2s_play) && (pdata->spdif_play))
++ chip->stream_defaults[PLAYBACK]->dig_mode = (SPDIF | I2S);
++ else if (pdata->i2s_play)
++ chip->stream_defaults[PLAYBACK]->dig_mode = I2S;
++ else if (pdata->spdif_play)
++ chip->stream_defaults[PLAYBACK]->dig_mode = SPDIF;
++ else
++ chip->stream_defaults[PLAYBACK]->dig_mode = 0;
++
++ chip->stream_defaults[PLAYBACK]->mono_mode = MONO_BOTH;
++ chip->pcm_mode = PCM;
++ chip->stream_defaults[PLAYBACK]->stat_mem = 0;
++ chip->stream_defaults[PLAYBACK]->clock_src = DCO_CLOCK;
++
++ if (pdata->i2s_rec)
++ chip->stream_defaults[CAPTURE]->dig_mode = I2S;
++ else if (pdata->spdif_rec)
++ chip->stream_defaults[CAPTURE]->dig_mode = SPDIF;
++ else
++ chip->stream_defaults[CAPTURE]->dig_mode = 0;
++
++ chip->stream_defaults[CAPTURE]->mono_mode = MONO_LEFT;
++ chip->pcm_mode = PCM;
++ chip->stream_defaults[CAPTURE]->stat_mem = 0;
++ chip->stream_defaults[CAPTURE]->clock_src = DCO_CLOCK;
++
++ for (i = 0; i < 4; i++) {
++ chip->stream_defaults[PLAYBACK]->spdif_status[i] = 0;
++ chip->stream[PLAYBACK]->spdif_status[i] = 0;
++
++ writel(chip->stream_defaults[PLAYBACK]->spdif_status[i],
++ chip->base + MV_AUDIO_SPDIF_PLAY_CH_STATUS_LEFT_REG(i));
++
++ writel(chip->stream_defaults[PLAYBACK]->spdif_status[i],
++ chip->base + MV_AUDIO_SPDIF_PLAY_CH_STATUS_RIGHT_REG(i));
++
++ writel(0, chip->base +
++ MV_AUDIO_SPDIF_PLAY_USR_BITS_LEFT_REG(i));
++
++ writel(0, chip->base +
++ MV_AUDIO_SPDIF_PLAY_USR_BITS_RIGHT_REG(i));
++ }
++
++ pcm->private_data = chip;
++ pcm->info_flags = 0;
++ strcpy(pcm->name, "Marvell mv88fx_snd IEC958 and I2S");
++
++ return 0;
++}
++
++irqreturn_t mv88fx_snd_interrupt(int irq, void *dev_id)
++{
++ struct mv88fx_snd_chip *chip = dev_id;
++ struct mv88fx_snd_stream *play_stream = chip->stream_defaults[PLAYBACK];
++ struct mv88fx_snd_stream *capture_stream =
++ chip->stream_defaults[CAPTURE];
++
++ unsigned int status, mask;
++
++ spin_lock(&chip->reg_lock);
++
++ /* read the active interrupt */
++ mask = readl(chip->base + MV_AUDIO_INT_MASK_REG);
++ status = readl(chip->base + MV_AUDIO_INT_CAUSE_REG) & mask;
++
++ do {
++ if (status & ~(AICR_RECORD_BYTES_INT|AICR_PLAY_BYTES_INT)) {
++ spin_unlock(&chip->reg_lock);
++ snd_BUG(); /* FIXME: should enable error interrupts*/
++ return IRQ_NONE;
++ }
++
++ /* acknowledge interrupt */
++ writel(status, chip->base + MV_AUDIO_INT_CAUSE_REG);
++
++ /* This is record event */
++ if (status & AICR_RECORD_BYTES_INT)
++ snd_pcm_period_elapsed(capture_stream->substream);
++
++ /* This is play event */
++ if (status & AICR_PLAY_BYTES_INT)
++ snd_pcm_period_elapsed(play_stream->substream);
++
++ /* read the active interrupt */
++ mask = readl(chip->base + MV_AUDIO_INT_MASK_REG);
++ status = readl(chip->base + MV_AUDIO_INT_CAUSE_REG) & mask;
++ } while (status);
++
++ spin_unlock(&chip->reg_lock);
++
++ return IRQ_HANDLED;
++}
++
++void mv88fx_snd_free(struct snd_card *card)
++{
++ struct mv88fx_snd_chip *chip = card->private_data;
++
++ /* free irq */
++ free_irq(chip->irq, (void *)chip);
++
++ snd_printd("chip->res =0x%x\n", (unsigned int)chip->res);
++
++ if (chip->base)
++ iounmap(chip->base);
++
++ if (chip->res)
++ release_resource(chip->res);
++
++ chip->res = NULL;
++
++ /* Free memory allocated for streems */
++ if (chip->stream_defaults[PLAYBACK]->area)
++ dma_free_coherent(card->dev,
++ MV88FX_SND_MAX_PERIODS * MV88FX_SND_MAX_PERIOD_BYTES,
++ chip->stream_defaults[PLAYBACK]->area,
++ chip->stream_defaults[PLAYBACK]->addr);
++
++ if (chip->stream_defaults[CAPTURE]->area)
++ dma_free_coherent(card->dev,
++ MV88FX_SND_MAX_PERIODS * MV88FX_SND_MAX_PERIOD_BYTES,
++ chip->stream_defaults[CAPTURE]->area,
++ chip->stream_defaults[CAPTURE]->addr);
++
++ kfree(chip->stream_defaults[PLAYBACK]);
++ chip->stream_defaults[PLAYBACK] = NULL;
++
++ kfree(chip->stream[PLAYBACK]);
++ chip->stream[PLAYBACK] = NULL;
++
++ kfree(chip->stream_defaults[CAPTURE]);
++ chip->stream_defaults[CAPTURE] = NULL;
++
++ kfree(chip->stream[CAPTURE]);
++ chip->stream[CAPTURE] = NULL;
++
++ chip = NULL;
++}
++
++int mv88fx_snd_probe(struct platform_device *dev)
++{
++ int err = 0, irq = NO_IRQ;
++ struct snd_card *card = NULL;
++ struct resource *r = NULL;
++ static struct snd_device_ops ops = {
++ .dev_free = NULL,
++ };
++ struct mv88fx_snd_platform_data *pdata = NULL;
++
++ err = snd_card_create(-1, "mv88fx_snd", THIS_MODULE,
++ sizeof(struct mv88fx_snd_chip), &card);
++
++ if (err) {
++ snd_printk("snd_card_create failed\n");
++ return err;
++ }
++
++ card->dev = &dev->dev;
++ chip = card->private_data;
++ card->private_free = mv88fx_snd_free;
++
++ pdata = (struct mv88fx_snd_platform_data *)dev->dev.platform_data;
++
++ if (pdata->i2s_rec == 2 || pdata->spdif_rec == 2)
++ chip->stereo = 1;
++ else
++ chip->stereo = 0;
++
++ chip->audio_offset = pdata->base_offset;
++
++ r = platform_get_resource(dev, IORESOURCE_MEM, 0);
++ if (!r) {
++ snd_printk("platform_get_resource failed\n");
++ err = -ENXIO;
++ goto error;
++ }
++
++ snd_printd("chip->res =0x%x\n", (unsigned int)chip->res);
++
++ r = request_mem_region(r->start, SZ_16K, MV88FX_AUDIO_NAME);
++ if (!r) {
++ snd_printk("request_mem_region failed\n");
++ err = -EBUSY;
++ goto error;
++ }
++ chip->res = r;
++
++ chip->base = ioremap(r->start, SZ_16K);
++
++ if (!chip->base) {
++ snd_printk("ioremap failed\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ snd_printd("chip->base=0x%x r->start0x%x\n",
++ (unsigned int)chip->base, r->start);
++
++ irq = platform_get_irq(dev, 0);
++ if (irq == NO_IRQ) {
++ snd_printk("platform_get_irq failed\n");
++ err = -ENXIO;
++ goto error;
++ }
++
++ snd_printd("card = 0x%x dev 0x%x\n",
++ (unsigned int)card, (unsigned int)dev);
++ strncpy(card->driver, dev->dev.driver->name, sizeof(card->driver));
++
++ /* Allocate memory for our device */
++ chip->stream_defaults[PLAYBACK] =
++ kzalloc(sizeof(struct mv88fx_snd_stream), GFP_KERNEL);
++
++ if (chip->stream_defaults[PLAYBACK] == NULL) {
++ snd_printk("kzalloc failed for default playback\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ chip->stream_defaults[PLAYBACK]->direction = PLAYBACK;
++ chip->stream_defaults[PLAYBACK]->dev = card->dev;
++
++ chip->stream[PLAYBACK] = kzalloc(sizeof(struct mv88fx_snd_stream),
++ GFP_KERNEL);
++
++ if (chip->stream[PLAYBACK] == NULL) {
++ snd_printk("kzalloc failed for runtime playback\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ chip->stream_defaults[CAPTURE] =
++ kzalloc(sizeof(struct mv88fx_snd_stream), GFP_KERNEL);
++
++ if (chip->stream_defaults[CAPTURE] == NULL) {
++ snd_printk("kzalloc failed for capture\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ chip->stream_defaults[CAPTURE]->direction = CAPTURE;
++ chip->stream_defaults[CAPTURE]->dev = card->dev;
++
++ chip->stream[CAPTURE] = kzalloc(sizeof(struct mv88fx_snd_stream),
++ GFP_KERNEL);
++
++ if (chip->stream[CAPTURE] == NULL) {
++ snd_printk("kzalloc failed for runtime capture\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ chip->irq = irq;
++ chip->stream_defaults[PLAYBACK]->area =
++ dma_alloc_coherent(&dev->dev,
++ MV88FX_SND_MAX_PERIODS * MV88FX_SND_MAX_PERIOD_BYTES,
++ &chip->stream_defaults[PLAYBACK]->addr,
++ GFP_KERNEL);
++
++ if (!chip->stream_defaults[PLAYBACK]->area) {
++ snd_printk("dma_alloc_coherent failed for playback buffer\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ if (0 == test_memory(pdata->dram,
++ (unsigned int)chip->stream_defaults[PLAYBACK]->addr,
++ (unsigned int)MV88FX_SND_MAX_PERIODS * MV88FX_SND_MAX_PERIOD_BYTES)) {
++
++ snd_printk("error: playback buffer not in one memory window\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ chip->stream_defaults[CAPTURE]->area =
++ dma_alloc_coherent(&dev->dev,
++ MV88FX_SND_MAX_PERIODS * MV88FX_SND_MAX_PERIOD_BYTES,
++ &chip->stream_defaults[CAPTURE]->addr,
++ GFP_KERNEL);
++
++ if (!chip->stream_defaults[CAPTURE]->area) {
++ snd_printk("dma_alloc_coherent failed for capture buffer\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ if (0 == test_memory(pdata->dram,
++ (unsigned int)chip->stream_defaults[CAPTURE]->addr,
++ (unsigned int)MV88FX_SND_MAX_PERIODS * MV88FX_SND_MAX_PERIOD_BYTES)) {
++
++ snd_printk("error: playback buffer not in one memory window\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ if (request_irq(chip->irq, mv88fx_snd_interrupt, 0, MV88FX_AUDIO_NAME,
++ (void *)chip)) {
++
++ snd_printk("Unable to grab IRQ %d\n", chip->irq);
++ err = -ENOMEM;
++ goto error;
++ }
++
++ chip->ch_stat_valid = 1;
++ chip->burst = 128;
++ chip->loopback = 0;
++ chip->dco_ctrl_offst = 0x800;
++
++ err = mv88fx_snd_hw_init(card);
++ if (err) {
++ snd_printk("mv88fx_snd_hw_init failed\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ /* Set default values */
++ err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops);
++ if (err < 0) {
++ snd_printk("Creating chip device failed.\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ /* create pcm devices */
++ err = mv88fx_snd_pcm_new(card);
++ if (err < 0) {
++ snd_printk("Creating PCM device failed.\n");
++ err = -ENOMEM;
++ goto error;
++ }
++ /* create controll interfaces & switches */
++ err = mv88fx_snd_ctrl_new(card);
++ if (err < 0) {
++ snd_printk("Creating non-PCM device failed.\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ strcpy(card->driver, "mv88fx_snd");
++ strcpy(card->shortname, "Marvell mv88fx_snd");
++ sprintf(card->longname, "Marvell mv88fx_snd ALSA driver");
++
++ err = snd_card_register(card);
++ if (err < 0) {
++ snd_printk("Card registeration failed.\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ /* if (dma_set_mask(&dev->dev, 0xFFFFFFUL) < 0) { */
++ if (dma_set_mask(&dev->dev, 0xFFFFFFFFUL) < 0) {
++ snd_printk("Could not set DMA mask\n");
++ goto error;
++ }
++
++ platform_set_drvdata(dev, card);
++ return 0;
++error:
++ if (card)
++ snd_card_free(card);
++ platform_set_drvdata(dev, NULL);
++ return err;
++}
++
++int mv88fx_snd_remove(struct platform_device *dev)
++{
++ struct snd_card *card = platform_get_drvdata(dev);
++
++ if (card)
++ snd_card_free(card);
++
++ /* FIXME: Once "../codecs/cs42l51.c" is fixed to behave as a module
++ * this should be removed */
++ codec_del_i2c_device();
++
++ platform_set_drvdata(dev, NULL);
++ return 0;
++}
++
++#define mv88fx_snd_resume NULL
++#define mv88fx_snd_suspend NULL
++
++struct platform_driver mv88fx_snd_driver = {
++ .probe = mv88fx_snd_probe,
++ .remove = mv88fx_snd_remove,
++ .suspend = mv88fx_snd_suspend,
++ .resume = mv88fx_snd_resume,
++ .driver = { .name = MV88FX_AUDIO_NAME,},
++};
++
++int __init mv88fx_snd_init(void)
++{
++ return platform_driver_register(&mv88fx_snd_driver);
++}
++
++void __exit mv88fx_snd_exit(void)
++{
++ platform_driver_unregister(&mv88fx_snd_driver);
++}
++
++MODULE_AUTHOR("Maen Suleiman <maen@marvell.com>");
++MODULE_DESCRIPTION("Marvell MV88Fx Alsa Sound driver");
++MODULE_LICENSE("GPL");
++
++module_init(mv88fx_snd_init);
++module_exit(mv88fx_snd_exit);
++
+--
+1.6.5.2
+
diff --git a/recipes/linux/linux-kirkwood/cpuidle-reenable-interrupts.patch b/recipes/linux/linux-kirkwood/cpuidle-reenable-interrupts.patch
new file mode 100644
index 0000000000..0f472d9f75
--- /dev/null
+++ b/recipes/linux/linux-kirkwood/cpuidle-reenable-interrupts.patch
@@ -0,0 +1,19 @@
+diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
+index ad41f19..12fdd39 100644
+--- a/drivers/cpuidle/cpuidle.c
++++ b/drivers/cpuidle/cpuidle.c
+@@ -76,8 +76,11 @@ static void cpuidle_idle_call(void)
+ #endif
+ /* ask the governor for the next state */
+ next_state = cpuidle_curr_governor->select(dev);
+- if (need_resched())
++ if (need_resched()) {
++ local_irq_enable();
+ return;
++ }
++
+ target_state = &dev->states[next_state];
+
+ /* enter the state and update stats */
+
+
diff --git a/recipes/linux/linux-kirkwood_2.6.31.bb b/recipes/linux/linux-kirkwood_2.6.31.bb
index 49833a488e..f046feaadd 100644
--- a/recipes/linux/linux-kirkwood_2.6.31.bb
+++ b/recipes/linux/linux-kirkwood_2.6.31.bb
@@ -9,6 +9,8 @@ COMPATIBLE_MACHINE = "openrd-base"
require linux.inc
+FILESPATHPKG_prepend = "linux-2.6.31:"
+
# Change MACHINE_KERNEL_PR in conf/machine/include/kirkwood.inc
PV = "2.6.31"
@@ -18,8 +20,16 @@ SRCREV = "8cb424312d88810bb62edbeef42a510725ceb482"
SRC_URI = "git://git.marvell.com/orion.git;protocol=git \
file://defconfig"
-SRC_URI_append_openrd-base = " file://openrd-base-enable-pcie.patch;patch=1"
-
+SRC_URI_append_openrd-base = " file://openrd-base-enable-pcie.patch;patch=1 \
+ file://cpuidle-reenable-interrupts.patch;patch=1 \
+ file://0001-Squashfs-move-zlib-decompression-wrapper-code-into.patch;patch=1 \
+ file://0002-Squashfs-Factor-out-remaining-zlib-dependencies-int.patch;patch=1 \
+ file://0003-Squashfs-add-a-decompressor-framework.patch;patch=1 \
+ file://0004-Squashfs-add-decompressor-entries-for-lzma-and-lzo.patch;patch=1 \
+ file://0005-Squashfs-add-an-extra-parameter-to-the-decompressor.patch;patch=1 \
+ file://0006-Squashfs-add-LZMA-compression.patch;patch=1 \
+ file://0007-Squashfs-Make-unlzma-available-to-non-initramfs-ini.patch;patch=1 \
+ "
# update machine types list for ARM architecture, only for machines that need it
do_arm_mach_types() {
if test ${MACHINE} == openrd-base; then
diff --git a/recipes/linux/linux-kirkwood_2.6.32-rc4.bb b/recipes/linux/linux-kirkwood_2.6.32-rc4.bb
index bf33146fb4..7791dc87d1 100644
--- a/recipes/linux/linux-kirkwood_2.6.32-rc4.bb
+++ b/recipes/linux/linux-kirkwood_2.6.32-rc4.bb
@@ -14,6 +14,8 @@ SRCREV = "1f76e2412659d2619ccd933d0ffd15e6253b1c4e"
SRC_URI = "git://repo.or.cz/linux-2.6/linux-2.6-openrd.git;protocol=git \
file://defconfig"
+SRC_URI_append_openrd-client += "file://0003-ARM-Kirkwood-Sound-Sound-driver-added.patch;patch=1"
+
# update machine types list for ARM architecture, only for machines that need it
do_arm_mach_types() {
# if test ${MACHINE} == openrd-base || test ${MACHINE} == openrd-client; then
diff --git a/recipes/linux/linux-mtx-1-2.4.27/49-bash4-configure.patch b/recipes/linux/linux-mtx-1-2.4.27/49-bash4-configure.patch
new file mode 100644
index 0000000000..222567d12e
--- /dev/null
+++ b/recipes/linux/linux-mtx-1-2.4.27/49-bash4-configure.patch
@@ -0,0 +1,11 @@
+--- linux/scripts/Configure-orig 2009-11-29 19:12:02.000000000 +0100
++++ linux/scripts/Configure 2009-11-29 19:12:27.000000000 +0100
+@@ -543,7 +543,7 @@
+ echo "#"
+ echo "# Using defaults found in" $DEFAULTS
+ echo "#"
+- . $DEFAULTS
++ . ./$DEFAULTS
+ sed -e 's/# \(CONFIG_[^ ]*\) is not.*/\1=n/' <$DEFAULTS >.config-is-not.$$
+ . .config-is-not.$$
+ rm .config-is-not.$$
diff --git a/recipes/linux/linux-mtx-1_2.4.27.bb b/recipes/linux/linux-mtx-1_2.4.27.bb
index 6dd7121bae..952edb0140 100644
--- a/recipes/linux/linux-mtx-1_2.4.27.bb
+++ b/recipes/linux/linux-mtx-1_2.4.27.bb
@@ -41,6 +41,7 @@ SRC_URI = "cvs://cvs:cvs@ftp.linux-mips.org/home/cvs;module=linux;tag=linux_2_4_
file://43-usbserial-27-32-backport.diff;patch=1 \
file://45-acm-tty-and-sb2.patch;patch=1 \
file://48-pptp.patch;patch=1 \
+ file://49-bash4-configure.patch;patch=1 \
file://defconfig-mtx-1"
S = "${WORKDIR}/linux"
diff --git a/recipes/linux/linux-mtx-2-2.4.27/49-bash4-configure.patch b/recipes/linux/linux-mtx-2-2.4.27/49-bash4-configure.patch
new file mode 100644
index 0000000000..222567d12e
--- /dev/null
+++ b/recipes/linux/linux-mtx-2-2.4.27/49-bash4-configure.patch
@@ -0,0 +1,11 @@
+--- linux/scripts/Configure-orig 2009-11-29 19:12:02.000000000 +0100
++++ linux/scripts/Configure 2009-11-29 19:12:27.000000000 +0100
+@@ -543,7 +543,7 @@
+ echo "#"
+ echo "# Using defaults found in" $DEFAULTS
+ echo "#"
+- . $DEFAULTS
++ . ./$DEFAULTS
+ sed -e 's/# \(CONFIG_[^ ]*\) is not.*/\1=n/' <$DEFAULTS >.config-is-not.$$
+ . .config-is-not.$$
+ rm .config-is-not.$$
diff --git a/recipes/linux/linux-mtx-2_2.4.27.bb b/recipes/linux/linux-mtx-2_2.4.27.bb
index 5b26903ec0..3379d548a1 100644
--- a/recipes/linux/linux-mtx-2_2.4.27.bb
+++ b/recipes/linux/linux-mtx-2_2.4.27.bb
@@ -43,6 +43,7 @@ SRC_URI += "cvs://cvs:cvs@ftp.linux-mips.org/home/cvs;module=linux;tag=linux_2_4
file://46-otg.patch;patch=1 \
file://47-au1000_eth.patch;patch=1 \
file://48-pptp.patch;patch=1 \
+ file://49-bash4-configure.patch;patch=1 \
file://defconfig-mtx-2"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-mtx-2-${PV}"
diff --git a/recipes/linux/linux-omap-2.6.29/musb/0030-musb-fifo.patch b/recipes/linux/linux-omap-2.6.29/musb/0030-musb-fifo.patch
new file mode 100644
index 0000000000..8ac3707ad3
--- /dev/null
+++ b/recipes/linux/linux-omap-2.6.29/musb/0030-musb-fifo.patch
@@ -0,0 +1,26 @@
+diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
+index d3b8e0e..cee974e 100644
+--- a/drivers/usb/musb/musb_core.c
++++ b/drivers/usb/musb/musb_core.c
+@@ -1103,15 +1103,12 @@ static struct fifo_cfg __initdata mode_4_cfg[] = {
+ { .hw_ep_num = 8, .style = FIFO_RX, .maxpacket = 512, },
+ { .hw_ep_num = 9, .style = FIFO_TX, .maxpacket = 512, },
+ { .hw_ep_num = 9, .style = FIFO_RX, .maxpacket = 512, },
+-{ .hw_ep_num = 10, .style = FIFO_TX, .maxpacket = 256, },
+-{ .hw_ep_num = 10, .style = FIFO_RX, .maxpacket = 64, },
+-{ .hw_ep_num = 11, .style = FIFO_TX, .maxpacket = 256, },
+-{ .hw_ep_num = 11, .style = FIFO_RX, .maxpacket = 64, },
+-{ .hw_ep_num = 12, .style = FIFO_TX, .maxpacket = 256, },
+-{ .hw_ep_num = 12, .style = FIFO_RX, .maxpacket = 64, },
+-{ .hw_ep_num = 13, .style = FIFO_RXTX, .maxpacket = 4096, },
+-{ .hw_ep_num = 14, .style = FIFO_RXTX, .maxpacket = 1024, },
+-{ .hw_ep_num = 15, .style = FIFO_RXTX, .maxpacket = 1024, },
++{ .hw_ep_num = 10, .style = FIFO_TX, .maxpacket = 512, },
++{ .hw_ep_num = 10, .style = FIFO_RX, .maxpacket = 512, },
++{ .hw_ep_num = 11, .style = FIFO_RXTX, .maxpacket = 512, },
++{ .hw_ep_num = 12, .style = FIFO_RXTX, .maxpacket = 4096,},
++{ .hw_ep_num = 13, .style = FIFO_RXTX, .maxpacket = 512, },
++{ .hw_ep_num = 14, .style = FIFO_RXTX, .maxpacket = 512, },
+ };
+
+
diff --git a/recipes/linux/linux-omap-2.6.29/overo/defconfig b/recipes/linux/linux-omap-2.6.29/overo/defconfig
index 0101ca5099..a4894e2283 100644
--- a/recipes/linux/linux-omap-2.6.29/overo/defconfig
+++ b/recipes/linux/linux-omap-2.6.29/overo/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.29-omap1
-# Wed Apr 8 18:20:57 2009
+# Wed Nov 25 10:17:31 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -34,7 +34,7 @@ CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
-CONFIG_LOCALVERSION_AUTO=y
+# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
@@ -64,8 +64,7 @@ CONFIG_FAIR_GROUP_SCHED=y
CONFIG_USER_SCHED=y
# CONFIG_CGROUP_SCHED is not set
# CONFIG_CGROUPS is not set
-CONFIG_SYSFS_DEPRECATED=y
-CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
CONFIG_RELAY=y
# CONFIG_NAMESPACES is not set
CONFIG_BLK_DEV_INITRD=y
@@ -250,6 +249,7 @@ CONFIG_ARM_THUMBEE=y
# CONFIG_CPU_BPREDICT_DISABLE is not set
CONFIG_HAS_TLS_REG=y
# CONFIG_OUTER_CACHE is not set
+CONFIG_ARM_L1_CACHE_SHIFT=6
#
# Bus support
@@ -273,7 +273,7 @@ CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_HZ=128
CONFIG_AEABI=y
# CONFIG_OABI_COMPAT is not set
-CONFIG_ARCH_FLATMEM_HAS_HOLES=y
+CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
CONFIG_SELECT_MEMORY_MODEL=y
@@ -649,7 +649,7 @@ CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=m
-# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=m
# CONFIG_CHR_DEV_SCH is not set
@@ -659,7 +659,7 @@ CONFIG_CHR_DEV_SG=m
CONFIG_SCSI_MULTI_LUN=y
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
-# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_SCAN_ASYNC=y
CONFIG_SCSI_WAIT_SCAN=m
#
@@ -702,7 +702,7 @@ CONFIG_DUMMY=m
# CONFIG_EQUALIZER is not set
CONFIG_TUN=m
# CONFIG_VETH is not set
-CONFIG_PHYLIB=m
+CONFIG_PHYLIB=y
#
# MII PHY device drivers
@@ -720,6 +720,7 @@ CONFIG_PHYLIB=m
# CONFIG_NATIONAL_PHY is not set
# CONFIG_STE10XP is not set
# CONFIG_LSI_ET1011C_PHY is not set
+# CONFIG_FIXED_PHY is not set
# CONFIG_MDIO_BITBANG is not set
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
@@ -728,7 +729,7 @@ CONFIG_MII=y
# CONFIG_DM9000 is not set
# CONFIG_ENC28J60 is not set
# CONFIG_SMC911X is not set
-CONFIG_SMSC911X=m
+CONFIG_SMSC911X=y
# CONFIG_DNET is not set
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IBM_NEW_EMAC_RGMII is not set
@@ -806,20 +807,22 @@ CONFIG_USB_KC2190=y
CONFIG_USB_NET_ZAURUS=m
# CONFIG_WAN is not set
CONFIG_PPP=m
-# CONFIG_PPP_MULTILINK is not set
-# CONFIG_PPP_FILTER is not set
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
CONFIG_PPP_MPPE=m
CONFIG_PPPOE=m
-# CONFIG_PPPOL2TP is not set
+CONFIG_PPPOL2TP=m
# CONFIG_SLIP is not set
CONFIG_SLHC=m
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
+CONFIG_NETCONSOLE=m
+# CONFIG_NETCONSOLE_DYNAMIC is not set
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_ISDN is not set
#
@@ -1187,11 +1190,36 @@ CONFIG_VIDEO_CX2341X=m
# CONFIG_VIDEO_SAA5249 is not set
# CONFIG_VIDEO_AU0828 is not set
# CONFIG_VIDEO_OMAP3 is not set
+# CONFIG_VIDEO_OMAP34XX_ISP_RESIZER is not set
# CONFIG_SOC_CAMERA is not set
CONFIG_V4L_USB_DRIVERS=y
CONFIG_USB_VIDEO_CLASS=m
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-# CONFIG_USB_GSPCA is not set
+CONFIG_USB_GSPCA=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_ZC3XX=m
CONFIG_VIDEO_PVRUSB2=m
CONFIG_VIDEO_PVRUSB2_SYSFS=y
CONFIG_VIDEO_PVRUSB2_DVB=y
@@ -1563,7 +1591,7 @@ CONFIG_USB_EHCI_HCD=y
CONFIG_OMAP_EHCI_PHY_MODE=y
# CONFIG_OMAP_EHCI_TLL_MODE is not set
CONFIG_USB_EHCI_ROOT_HUB_TT=y
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
+CONFIG_USB_EHCI_TT_NEWSCHED=y
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_OHCI_HCD is not set
diff --git a/recipes/linux/linux-omap-2.6.29/smsc/smsc911x-1.patch b/recipes/linux/linux-omap-2.6.29/smsc/smsc911x-1.patch
new file mode 100644
index 0000000000..1efe181872
--- /dev/null
+++ b/recipes/linux/linux-omap-2.6.29/smsc/smsc911x-1.patch
@@ -0,0 +1,71 @@
+From: Steve Glendinning <steve.glendinning@smsc.com>
+
+This patch adds support for the platform_device's resources to indicate
+additional flags to use when registering the irq, for example
+IORESOURCE_IRQ_LOWLEVEL (which corresponds to IRQF_TRIGGER_LOW). These
+should be set in the irq resource flags field.
+
+Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
+---
+ drivers/net/smsc911x.c | 19 ++++++++++++++-----
+ 1 files changed, 14 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/net/smsc911x.c b/drivers/net/smsc911x.c
+index f513bdf..3565df1 100644
+--- a/drivers/net/smsc911x.c
++++ b/drivers/net/smsc911x.c
+@@ -1892,9 +1892,9 @@ static int __devinit smsc911x_drv_probe(struct platform_device *pdev)
+ struct net_device *dev;
+ struct smsc911x_data *pdata;
+ struct smsc911x_platform_config *config = pdev->dev.platform_data;
+- struct resource *res;
++ struct resource *res, *irq_res;
+ unsigned int intcfg = 0;
+- int res_size;
++ int res_size, irq_flags;
+ int retval;
+ DECLARE_MAC_BUF(mac);
+
+@@ -1919,6 +1919,14 @@ static int __devinit smsc911x_drv_probe(struct platform_device *pdev)
+ }
+ res_size = res->end - res->start;
+
++ irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
++ if (!irq_res) {
++ pr_warning("%s: Could not allocate irq resource.\n",
++ SMSC_CHIPNAME);
++ retval = -ENODEV;
++ goto out_0;
++ }
++
+ if (!request_mem_region(res->start, res_size, SMSC_CHIPNAME)) {
+ retval = -EBUSY;
+ goto out_0;
+@@ -1935,7 +1943,8 @@ static int __devinit smsc911x_drv_probe(struct platform_device *pdev)
+
+ pdata = netdev_priv(dev);
+
+- dev->irq = platform_get_irq(pdev, 0);
++ dev->irq = irq_res->start;
++ irq_flags = irq_res->flags & IRQF_TRIGGER_MASK;
+ pdata->ioaddr = ioremap_nocache(res->start, res_size);
+
+ /* copy config parameters across to pdata */
+@@ -1968,8 +1977,8 @@ static int __devinit smsc911x_drv_probe(struct platform_device *pdev)
+ smsc911x_reg_write(pdata, INT_EN, 0);
+ smsc911x_reg_write(pdata, INT_STS, 0xFFFFFFFF);
+
+- retval = request_irq(dev->irq, smsc911x_irqhandler, IRQF_DISABLED,
+- dev->name, dev);
++ retval = request_irq(dev->irq, smsc911x_irqhandler,
++ irq_flags | IRQF_DISABLED, dev->name, dev);
+ if (retval) {
+ SMSC_WARNING(PROBE,
+ "Unable to claim requested irq: %d", dev->irq);
+--
+1.6.0.6
+
+--
+To unsubscribe from this list: send the line "unsubscribe netdev" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/recipes/linux/linux-omap-2.6.29/smsc/smsc911x-2.patch b/recipes/linux/linux-omap-2.6.29/smsc/smsc911x-2.patch
new file mode 100644
index 0000000000..15b4d04498
--- /dev/null
+++ b/recipes/linux/linux-omap-2.6.29/smsc/smsc911x-2.patch
@@ -0,0 +1,33 @@
+From: Steve Glendinning <steve.glendinning@smsc.com>
+
+The isr supports shared operation, so register it with the IRQF_SHARED
+flag to indicate this.
+
+This patch also removes the IRQF_DISABLED flag. This driver doesn't
+need it, and IRQF_DISABLED isn't guaranteed when using shared interrupts.
+
+Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
+---
+ drivers/net/smsc911x.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/net/smsc911x.c b/drivers/net/smsc911x.c
+index 3565df1..f882fd5 100644
+--- a/drivers/net/smsc911x.c
++++ b/drivers/net/smsc911x.c
+@@ -1978,7 +1978,7 @@ static int __devinit smsc911x_drv_probe(struct platform_device *pdev)
+ smsc911x_reg_write(pdata, INT_STS, 0xFFFFFFFF);
+
+ retval = request_irq(dev->irq, smsc911x_irqhandler,
+- irq_flags | IRQF_DISABLED, dev->name, dev);
++ irq_flags | IRQF_SHARED, dev->name, dev);
+ if (retval) {
+ SMSC_WARNING(PROBE,
+ "Unable to claim requested irq: %d", dev->irq);
+--
+1.6.0.6
+
+--
+To unsubscribe from this list: send the line "unsubscribe netdev" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/recipes/linux/linux-omap-2.6.29/smsc/smsc911x-3.patch b/recipes/linux/linux-omap-2.6.29/smsc/smsc911x-3.patch
new file mode 100644
index 0000000000..0fb7f4f0cc
--- /dev/null
+++ b/recipes/linux/linux-omap-2.6.29/smsc/smsc911x-3.patch
@@ -0,0 +1,152 @@
+From: Steve Glendinning <steve.glendinning@smsc.com>
+
+On LAN9115/LAN9117/LAN9215/LAN9217, external phys are supported. These
+are usually indicated by a hardware strap which sets an "external PHY
+detected" bit in the HW_CFG register.
+
+In some cases it is desirable to override this hardware strap and force
+use of either the internal phy or an external PHY. This patch adds
+SMSC911X_FORCE_INTERNAL_PHY and SMSC911X_FORCE_EXTERNAL_PHY flags so a
+platform can indicate this preference via its platform_data.
+
+Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
+Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
+Tested-by: Sascha Hauer <s.hauer@pengutronix.de>
+---
+ drivers/net/smsc911x.c | 75 +++++++++++++++++++++++----------------------
+ include/linux/smsc911x.h | 2 +
+ 2 files changed, 40 insertions(+), 37 deletions(-)
+
+diff --git a/drivers/net/smsc911x.c b/drivers/net/smsc911x.c
+index f882fd5..c7379f5 100644
+--- a/drivers/net/smsc911x.c
++++ b/drivers/net/smsc911x.c
+@@ -368,48 +368,53 @@ out:
+ return reg;
+ }
+
+-/* Autodetects and initialises external phy for SMSC9115 and SMSC9117 flavors.
+- * If something goes wrong, returns -ENODEV to revert back to internal phy.
+- * Performed at initialisation only, so interrupts are enabled */
+-static int smsc911x_phy_initialise_external(struct smsc911x_data *pdata)
++/* Switch to external phy. Assumes tx and rx are stopped. */
++static void smsc911x_phy_enable_external(struct smsc911x_data *pdata)
+ {
+ unsigned int hwcfg = smsc911x_reg_read(pdata, HW_CFG);
+
+- /* External phy is requested, supported, and detected */
+- if (hwcfg & HW_CFG_EXT_PHY_DET_) {
++ /* Disable phy clocks to the MAC */
++ hwcfg &= (~HW_CFG_PHY_CLK_SEL_);
++ hwcfg |= HW_CFG_PHY_CLK_SEL_CLK_DIS_;
++ smsc911x_reg_write(pdata, HW_CFG, hwcfg);
++ udelay(10); /* Enough time for clocks to stop */
+
+- /* Switch to external phy. Assuming tx and rx are stopped
+- * because smsc911x_phy_initialise is called before
+- * smsc911x_rx_initialise and tx_initialise. */
++ /* Switch to external phy */
++ hwcfg |= HW_CFG_EXT_PHY_EN_;
++ smsc911x_reg_write(pdata, HW_CFG, hwcfg);
+
+- /* Disable phy clocks to the MAC */
+- hwcfg &= (~HW_CFG_PHY_CLK_SEL_);
+- hwcfg |= HW_CFG_PHY_CLK_SEL_CLK_DIS_;
+- smsc911x_reg_write(pdata, HW_CFG, hwcfg);
+- udelay(10); /* Enough time for clocks to stop */
++ /* Enable phy clocks to the MAC */
++ hwcfg &= (~HW_CFG_PHY_CLK_SEL_);
++ hwcfg |= HW_CFG_PHY_CLK_SEL_EXT_PHY_;
++ smsc911x_reg_write(pdata, HW_CFG, hwcfg);
++ udelay(10); /* Enough time for clocks to restart */
+
+- /* Switch to external phy */
+- hwcfg |= HW_CFG_EXT_PHY_EN_;
+- smsc911x_reg_write(pdata, HW_CFG, hwcfg);
+-
+- /* Enable phy clocks to the MAC */
+- hwcfg &= (~HW_CFG_PHY_CLK_SEL_);
+- hwcfg |= HW_CFG_PHY_CLK_SEL_EXT_PHY_;
+- smsc911x_reg_write(pdata, HW_CFG, hwcfg);
+- udelay(10); /* Enough time for clocks to restart */
++ hwcfg |= HW_CFG_SMI_SEL_;
++ smsc911x_reg_write(pdata, HW_CFG, hwcfg);
++}
+
+- hwcfg |= HW_CFG_SMI_SEL_;
+- smsc911x_reg_write(pdata, HW_CFG, hwcfg);
++/* Autodetects and enables external phy if present on supported chips.
++ * autodetection can be overridden by specifying SMSC911X_FORCE_INTERNAL_PHY
++ * or SMSC911X_FORCE_EXTERNAL_PHY in the platform_data flags. */
++static void smsc911x_phy_initialise_external(struct smsc911x_data *pdata)
++{
++ unsigned int hwcfg = smsc911x_reg_read(pdata, HW_CFG);
+
+- SMSC_TRACE(HW, "Successfully switched to external PHY");
++ if (pdata->config.flags & SMSC911X_FORCE_INTERNAL_PHY) {
++ SMSC_TRACE(HW, "Forcing internal PHY");
++ pdata->using_extphy = 0;
++ } else if (pdata->config.flags & SMSC911X_FORCE_EXTERNAL_PHY) {
++ SMSC_TRACE(HW, "Forcing external PHY");
++ smsc911x_phy_enable_external(pdata);
++ pdata->using_extphy = 1;
++ } else if (hwcfg & HW_CFG_EXT_PHY_DET_) {
++ SMSC_TRACE(HW, "HW_CFG EXT_PHY_DET set, using external PHY");
++ smsc911x_phy_enable_external(pdata);
+ pdata->using_extphy = 1;
+ } else {
+- SMSC_WARNING(HW, "No external PHY detected, "
+- "Using internal PHY instead.");
+- /* Use internal phy */
+- return -ENODEV;
++ SMSC_TRACE(HW, "HW_CFG EXT_PHY_DET clear, using internal PHY");
++ pdata->using_extphy = 0;
+ }
+- return 0;
+ }
+
+ /* Fetches a tx status out of the status fifo */
+@@ -824,22 +829,18 @@ static int __devinit smsc911x_mii_init(struct platform_device *pdev,
+
+ pdata->mii_bus->parent = &pdev->dev;
+
+- pdata->using_extphy = 0;
+-
+ switch (pdata->idrev & 0xFFFF0000) {
+ case 0x01170000:
+ case 0x01150000:
+ case 0x117A0000:
+ case 0x115A0000:
+ /* External PHY supported, try to autodetect */
+- if (smsc911x_phy_initialise_external(pdata) < 0) {
+- SMSC_TRACE(HW, "No external PHY detected, "
+- "using internal PHY");
+- }
++ smsc911x_phy_initialise_external(pdata);
+ break;
+ default:
+ SMSC_TRACE(HW, "External PHY is not supported, "
+ "using internal PHY");
++ pdata->using_extphy = 0;
+ break;
+ }
+
+diff --git a/include/linux/smsc911x.h b/include/linux/smsc911x.h
+index 1cbf031..170c76b 100644
+--- a/include/linux/smsc911x.h
++++ b/include/linux/smsc911x.h
+@@ -43,5 +43,7 @@ struct smsc911x_platform_config {
+ /* Constants for flags */
+ #define SMSC911X_USE_16BIT (BIT(0))
+ #define SMSC911X_USE_32BIT (BIT(1))
++#define SMSC911X_FORCE_INTERNAL_PHY (BIT(2))
++#define SMSC911X_FORCE_EXTERNAL_PHY (BIT(3))
+
+ #endif /* __LINUX_SMSC911X_H__ */
+--
+1.6.0.6
+
+--
+To unsubscribe from this list: send the line "unsubscribe netdev" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/recipes/linux/linux-omap-2.6.29/smsc/smsc911x-4.patch b/recipes/linux/linux-omap-2.6.29/smsc/smsc911x-4.patch
new file mode 100644
index 0000000000..8afa06f400
--- /dev/null
+++ b/recipes/linux/linux-omap-2.6.29/smsc/smsc911x-4.patch
@@ -0,0 +1,93 @@
+From: Steve Glendinning <steve.glendinning@smsc.com>
+
+Some platforms (for example pcm037) do not have an EEPROM fitted,
+instead storing their mac address somewhere else. The bootloader
+fetches this and configures the ethernet adapter before the kernel is
+started.
+
+This patch allows a platform to indicate to the driver via the
+SMSC911X_SAVE_MAC_ADDRESS flag that the mac address has already been
+configured via such a mechanism, and should be saved before resetting
+the chip.
+
+Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
+Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
+Tested-by: Sascha Hauer <s.hauer@pengutronix.de>
+---
+ drivers/net/smsc911x.c | 30 ++++++++++++++++++++++--------
+ include/linux/smsc911x.h | 1 +
+ 2 files changed, 23 insertions(+), 8 deletions(-)
+
+diff --git a/drivers/net/smsc911x.c b/drivers/net/smsc911x.c
+index c7379f5..2f7399e 100644
+--- a/drivers/net/smsc911x.c
++++ b/drivers/net/smsc911x.c
+@@ -1748,6 +1748,21 @@ static const struct net_device_ops smsc911x_netdev_ops = {
+ #endif
+ };
+
++/* copies the current mac address from hardware to dev->dev_addr */
++static void __devinit smsc911x_read_mac_address(struct net_device *dev)
++{
++ struct smsc911x_data *pdata = netdev_priv(dev);
++ u32 mac_high16 = smsc911x_mac_read(pdata, ADDRH);
++ u32 mac_low32 = smsc911x_mac_read(pdata, ADDRL);
++
++ dev->dev_addr[0] = (u8)(mac_low32);
++ dev->dev_addr[1] = (u8)(mac_low32 >> 8);
++ dev->dev_addr[2] = (u8)(mac_low32 >> 16);
++ dev->dev_addr[3] = (u8)(mac_low32 >> 24);
++ dev->dev_addr[4] = (u8)(mac_high16);
++ dev->dev_addr[5] = (u8)(mac_high16 >> 8);
++}
++
+ /* Initializing private device structures, only called from probe */
+ static int __devinit smsc911x_init(struct net_device *dev)
+ {
+@@ -1835,6 +1850,12 @@ static int __devinit smsc911x_init(struct net_device *dev)
+ SMSC_WARNING(PROBE,
+ "This driver is not intended for this chip revision");
+
++ /* workaround for platforms without an eeprom, where the mac address
++ * is stored elsewhere and set by the bootloader. This saves the
++ * mac address before resetting the device */
++ if (pdata->config.flags & SMSC911X_SAVE_MAC_ADDRESS)
++ smsc911x_read_mac_address(dev);
++
+ /* Reset the LAN911x */
+ if (smsc911x_soft_reset(pdata))
+ return -ENODEV;
+@@ -2015,14 +2036,7 @@ static int __devinit smsc911x_drv_probe(struct platform_device *pdev)
+ } else {
+ /* Try reading mac address from device. if EEPROM is present
+ * it will already have been set */
+- u32 mac_high16 = smsc911x_mac_read(pdata, ADDRH);
+- u32 mac_low32 = smsc911x_mac_read(pdata, ADDRL);
+- dev->dev_addr[0] = (u8)(mac_low32);
+- dev->dev_addr[1] = (u8)(mac_low32 >> 8);
+- dev->dev_addr[2] = (u8)(mac_low32 >> 16);
+- dev->dev_addr[3] = (u8)(mac_low32 >> 24);
+- dev->dev_addr[4] = (u8)(mac_high16);
+- dev->dev_addr[5] = (u8)(mac_high16 >> 8);
++ smsc911x_read_mac_address(dev);
+
+ if (is_valid_ether_addr(dev->dev_addr)) {
+ /* eeprom values are valid so use them */
+diff --git a/include/linux/smsc911x.h b/include/linux/smsc911x.h
+index 170c76b..b327250 100644
+--- a/include/linux/smsc911x.h
++++ b/include/linux/smsc911x.h
+@@ -45,5 +45,6 @@ struct smsc911x_platform_config {
+ #define SMSC911X_USE_32BIT (BIT(1))
+ #define SMSC911X_FORCE_INTERNAL_PHY (BIT(2))
+ #define SMSC911X_FORCE_EXTERNAL_PHY (BIT(3))
++#define SMSC911X_SAVE_MAC_ADDRESS (BIT(4))
+
+ #endif /* __LINUX_SMSC911X_H__ */
+--
+1.6.0.6
+
+--
+To unsubscribe from this list: send the line "unsubscribe netdev" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig
new file mode 100644
index 0000000000..ba019559d3
--- /dev/null
+++ b/recipes/linux/linux-omap-2.6.32/beagleboard/defconfig
@@ -0,0 +1,2870 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.32-rc8
+# Thu Dec 3 15:15:52 2009
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_ARCH_HAS_CPUFREQ=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_OPROFILE_ARMV7=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_CONSTRUCTORS=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+CONFIG_BSD_PROCESS_ACCT=y
+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+# CONFIG_AUDIT is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_TREE_RCU_TRACE is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_GROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_USER_SCHED=y
+# CONFIG_CGROUP_SCHED is not set
+# CONFIG_CGROUPS is not set
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
+# CONFIG_RELAY is not set
+# CONFIG_NAMESPACES is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+# CONFIG_RD_BZIP2 is not set
+# CONFIG_RD_LZMA is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+# CONFIG_ELF_CORE is not set
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_VM_EVENT_COUNTERS=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+CONFIG_PROFILING=y
+CONFIG_TRACEPOINTS=y
+CONFIG_OPROFILE=y
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_CLK=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_SLOW_WORK=y
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_AS is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_FREEZER=y
+
+#
+# System Type
+#
+CONFIG_MMU=y
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_GEMINI is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_STMP3XXX is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_NOMADIK is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KIRKWOOD is not set
+# CONFIG_ARCH_LOKI is not set
+# CONFIG_ARCH_MV78XX0 is not set
+# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_MMP is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_W90X900 is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_MSM is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5PC1XX is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_U300 is not set
+# CONFIG_ARCH_DAVINCI is not set
+CONFIG_ARCH_OMAP=y
+# CONFIG_ARCH_BCMRING is not set
+
+#
+# TI OMAP Implementations
+#
+CONFIG_ARCH_OMAP_OTG=y
+# CONFIG_ARCH_OMAP1 is not set
+# CONFIG_ARCH_OMAP2 is not set
+CONFIG_ARCH_OMAP3=y
+# CONFIG_ARCH_OMAP4 is not set
+
+#
+# OMAP Feature Selections
+#
+# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set
+# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set
+CONFIG_OMAP_RESET_CLOCKS=y
+# CONFIG_OMAP_MUX is not set
+CONFIG_OMAP_MCBSP=y
+CONFIG_OMAP_MBOX_FWK=m
+# CONFIG_OMAP_MPU_TIMER is not set
+CONFIG_OMAP_32K_TIMER=y
+CONFIG_OMAP_32K_TIMER_HZ=128
+CONFIG_OMAP_DM_TIMER=y
+# CONFIG_OMAP_LL_DEBUG_UART1 is not set
+# CONFIG_OMAP_LL_DEBUG_UART2 is not set
+CONFIG_OMAP_LL_DEBUG_UART3=y
+# CONFIG_OMAP_LL_DEBUG_NONE is not set
+# CONFIG_OMAP_PM_NONE is not set
+CONFIG_OMAP_PM_NOOP=y
+CONFIG_ARCH_OMAP34XX=y
+CONFIG_ARCH_OMAP3430=y
+
+#
+# OMAP Board Type
+#
+CONFIG_MACH_OMAP3_BEAGLE=y
+CONFIG_MACH_OMAP_LDP=y
+CONFIG_MACH_OVERO=y
+CONFIG_MACH_OMAP3EVM=y
+# CONFIG_MACH_OMAP3517EVM is not set
+CONFIG_MACH_OMAP3_PANDORA=y
+# CONFIG_MACH_OMAP_3430SDP is not set
+# CONFIG_MACH_NOKIA_RX51 is not set
+CONFIG_MACH_OMAP_ZOOM2=y
+# CONFIG_MACH_OMAP_ZOOM3 is not set
+# CONFIG_MACH_CM_T35 is not set
+CONFIG_MACH_IGEP0020=y
+# CONFIG_MACH_OMAP_3630SDP is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_32v6K=y
+CONFIG_CPU_V7=y
+CONFIG_CPU_32v7=y
+CONFIG_CPU_ABRT_EV7=y
+CONFIG_CPU_PABRT_V7=y
+CONFIG_CPU_CACHE_V7=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V7=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+CONFIG_ARM_THUMBEE=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+CONFIG_HAS_TLS_REG=y
+CONFIG_ARM_L1_CACHE_SHIFT=6
+# CONFIG_ARM_ERRATA_430973 is not set
+# CONFIG_ARM_ERRATA_458693 is not set
+# CONFIG_ARM_ERRATA_460075 is not set
+CONFIG_COMMON_CLKDEV=y
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMSPLIT_2G is not set
+# CONFIG_VMSPLIT_1G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_HZ=128
+# CONFIG_THUMB2_KERNEL is not set
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+# CONFIG_HIGHMEM is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=0
+CONFIG_VIRT_TO_BUS=y
+CONFIG_HAVE_MLOCK=y
+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+# CONFIG_KSM is not set
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_LEDS=y
+CONFIG_ALIGNMENT_TRAP=y
+# CONFIG_UACCESS_WITH_MEMCPY is not set
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE=" debug "
+# CONFIG_XIP_KERNEL is not set
+CONFIG_KEXEC=y
+CONFIG_ATAGS_PROC=y
+
+#
+# CPU Power Management
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+CONFIG_CPU_FREQ_DEBUG=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+# CONFIG_CPU_IDLE is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_VFP=y
+CONFIG_VFPv3=y
+CONFIG_NEON=y
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_HAVE_AOUT=y
+CONFIG_BINFMT_AOUT=m
+CONFIG_BINFMT_MISC=y
+
+#
+# Power management options
+#
+CONFIG_PM=y
+CONFIG_PM_DEBUG=y
+# CONFIG_PM_VERBOSE is not set
+CONFIG_CAN_PM_TRACE=y
+CONFIG_PM_SLEEP=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+# CONFIG_APM_EMULATION is not set
+CONFIG_PM_RUNTIME=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=y
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+CONFIG_INET_XFRM_MODE_BEET=y
+CONFIG_INET_LRO=y
+CONFIG_INET_DIAG=m
+CONFIG_INET_TCP_DIAG=m
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+# CONFIG_DEFAULT_BIC is not set
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_HTCP is not set
+# CONFIG_DEFAULT_VEGAS is not set
+# CONFIG_DEFAULT_WESTWOOD is not set
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=m
+# CONFIG_IPV6_PRIVACY is not set
+# CONFIG_IPV6_ROUTER_PREF is not set
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+CONFIG_IPV6_MROUTE=y
+# CONFIG_IPV6_PIMSM_V2 is not set
+# CONFIG_NETWORK_SECMARK is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CT_ACCT=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CT_PROTO_DCCP=m
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+# CONFIG_NETFILTER_TPROXY is not set
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
+CONFIG_NETFILTER_XT_TARGET_HL=m
+# CONFIG_NETFILTER_XT_TARGET_LED is not set
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
+# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+# CONFIG_NETFILTER_XT_MATCH_OSF is not set
+CONFIG_IP_VS=m
+CONFIG_IP_VS_IPV6=y
+CONFIG_IP_VS_DEBUG=y
+CONFIG_IP_VS_TAB_BITS=12
+
+#
+# IPVS transport protocol load balancing support
+#
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+
+#
+# IPVS scheduler
+#
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+
+#
+# IPVS application helper
+#
+CONFIG_IP_VS_FTP=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+# CONFIG_BRIDGE_NF_EBTABLES is not set
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_CCID3_RTO=100
+CONFIG_IP_DCCP_TFRC_LIB=y
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+# CONFIG_SCTP_HMAC_SHA1 is not set
+CONFIG_SCTP_HMAC_MD5=y
+# CONFIG_RDS is not set
+CONFIG_TIPC=m
+# CONFIG_TIPC_ADVANCED is not set
+# CONFIG_TIPC_DEBUG is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_STP=m
+CONFIG_GARP=m
+CONFIG_BRIDGE=m
+# CONFIG_NET_DSA is not set
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+# CONFIG_DECNET is not set
+CONFIG_LLC=m
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+CONFIG_WAN_ROUTER=m
+# CONFIG_PHONET is not set
+# CONFIG_IEEE802154 is not set
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_PERF=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+# CONFIG_NET_EMATCH is not set
+# CONFIG_NET_CLS_ACT is not set
+CONFIG_NET_CLS_IND=y
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_NET_DROP_MONITOR is not set
+# CONFIG_HAMRADIO is not set
+CONFIG_CAN=m
+CONFIG_CAN_RAW=m
+CONFIG_CAN_BCM=m
+
+#
+# CAN Device Drivers
+#
+CONFIG_CAN_VCAN=m
+# CONFIG_CAN_DEV is not set
+# CONFIG_CAN_DEBUG_DEVICES is not set
+CONFIG_IRDA=m
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_ULTRA=y
+
+#
+# IrDA options
+#
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+CONFIG_IRDA_FAST_RR=y
+CONFIG_IRDA_DEBUG=y
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+CONFIG_IRTTY_SIR=m
+
+#
+# Dongle support
+#
+CONFIG_DONGLE=y
+CONFIG_ESI_DONGLE=m
+CONFIG_ACTISYS_DONGLE=m
+CONFIG_TEKRAM_DONGLE=m
+CONFIG_TOIM3232_DONGLE=m
+CONFIG_LITELINK_DONGLE=m
+CONFIG_MA600_DONGLE=m
+CONFIG_GIRBIL_DONGLE=m
+CONFIG_MCP2120_DONGLE=m
+CONFIG_OLD_BELKIN_DONGLE=m
+# CONFIG_ACT200L_DONGLE is not set
+CONFIG_KINGSUN_DONGLE=m
+CONFIG_KSDAZZLE_DONGLE=m
+CONFIG_KS959_DONGLE=m
+
+#
+# FIR device drivers
+#
+CONFIG_USB_IRDA=m
+CONFIG_SIGMATEL_FIR=m
+CONFIG_MCS_FIR=m
+CONFIG_BT=y
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=y
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=y
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=y
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIBTUSB=y
+CONFIG_BT_HCIBTSDIO=y
+CONFIG_BT_HCIUART=y
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIBCM203X=y
+CONFIG_BT_HCIBPA10X=y
+CONFIG_BT_HCIBFUSB=y
+# CONFIG_BT_HCIVHCI is not set
+# CONFIG_BT_MRVL is not set
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+# CONFIG_RXKAD is not set
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_CFG80211=y
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+CONFIG_CFG80211_DEFAULT_PS_VALUE=1
+# CONFIG_CFG80211_DEBUGFS is not set
+CONFIG_WIRELESS_OLD_REGULATORY=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+CONFIG_LIB80211=y
+CONFIG_LIB80211_CRYPT_WEP=y
+CONFIG_LIB80211_CRYPT_CCMP=y
+CONFIG_LIB80211_CRYPT_TKIP=y
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=y
+CONFIG_MAC80211_RC_PID=y
+# CONFIG_MAC80211_RC_MINSTREL is not set
+CONFIG_MAC80211_RC_DEFAULT_PID=y
+# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set
+CONFIG_MAC80211_RC_DEFAULT="pid"
+# CONFIG_MAC80211_MESH is not set
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+# CONFIG_RFKILL is not set
+CONFIG_NET_9P=m
+# CONFIG_NET_9P_DEBUG is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_TESTS is not set
+CONFIG_MTD_CONCAT=y
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SST25L is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_NAND=y
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_NAND_ECC_SMC is not set
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+# CONFIG_MTD_NAND_GPIO is not set
+CONFIG_MTD_NAND_OMAP2=y
+CONFIG_MTD_NAND_OMAP_PREFETCH=y
+# CONFIG_MTD_NAND_OMAP_PREFETCH_DMA is not set
+CONFIG_MTD_NAND_IDS=y
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+# CONFIG_MTD_NAND_NANDSIM is not set
+CONFIG_MTD_NAND_PLATFORM=y
+# CONFIG_MTD_ALAUDA is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+
+#
+# UBI - Unsorted block images
+#
+CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_RESERVE=1
+# CONFIG_MTD_UBI_GLUEBI is not set
+
+#
+# UBI debugging options
+#
+# CONFIG_MTD_UBI_DEBUG is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=16384
+# CONFIG_BLK_DEV_XIP is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_MG_DISK is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_ICS932S401 is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_ISL29003 is not set
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_AT24 is not set
+# CONFIG_EEPROM_AT25 is not set
+# CONFIG_EEPROM_LEGACY is not set
+# CONFIG_EEPROM_MAX6875 is not set
+CONFIG_EEPROM_93CX6=y
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+CONFIG_RAID_ATTRS=m
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+# CONFIG_SCSI_TGT is not set
+# CONFIG_SCSI_NETLINK is not set
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+CONFIG_BLK_DEV_SR=y
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=y
+CONFIG_CHR_DEV_SCH=m
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+CONFIG_SCSI_ISCSI_ATTRS=m
+# CONFIG_SCSI_SAS_LIBSAS is not set
+# CONFIG_SCSI_SRP_ATTRS is not set
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_ISCSI_TCP=m
+# CONFIG_LIBFC is not set
+# CONFIG_LIBFCOE is not set
+# CONFIG_SCSI_DEBUG is not set
+# CONFIG_SCSI_DH is not set
+# CONFIG_SCSI_OSD_INITIATOR is not set
+# CONFIG_ATA is not set
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+CONFIG_MD_RAID6_PQ=m
+# CONFIG_ASYNC_RAID6_TEST is not set
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+# CONFIG_DM_LOG_USERSPACE is not set
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+# CONFIG_DM_MULTIPATH_QL is not set
+# CONFIG_DM_MULTIPATH_ST is not set
+CONFIG_DM_DELAY=m
+# CONFIG_DM_UEVENT is not set
+CONFIG_NETDEVICES=y
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_MACVLAN=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_PHYLIB=y
+
+#
+# MII PHY device drivers
+#
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_SMSC_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_REALTEK_PHY is not set
+# CONFIG_NATIONAL_PHY is not set
+# CONFIG_STE10XP is not set
+# CONFIG_LSI_ET1011C_PHY is not set
+# CONFIG_FIXED_PHY is not set
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_AX88796 is not set
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+CONFIG_ENC28J60=y
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+# CONFIG_ETHOC is not set
+CONFIG_SMC911X=y
+CONFIG_SMSC911X=y
+# CONFIG_DNET is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+# CONFIG_B44 is not set
+# CONFIG_KS8842 is not set
+# CONFIG_KS8851 is not set
+# CONFIG_KS8851_MLL is not set
+# CONFIG_NETDEV_1000 is not set
+# CONFIG_NETDEV_10000 is not set
+CONFIG_WLAN=y
+# CONFIG_WLAN_PRE80211 is not set
+CONFIG_WLAN_80211=y
+CONFIG_LIBERTAS=y
+CONFIG_LIBERTAS_USB=y
+# CONFIG_LIBERTAS_SDIO is not set
+# CONFIG_LIBERTAS_SPI is not set
+# CONFIG_LIBERTAS_DEBUG is not set
+# CONFIG_LIBERTAS_THINFIRM is not set
+# CONFIG_AT76C50X_USB is not set
+CONFIG_USB_ZD1201=y
+CONFIG_USB_NET_RNDIS_WLAN=y
+CONFIG_RTL8187=y
+CONFIG_RTL8187_LEDS=y
+# CONFIG_MAC80211_HWSIM is not set
+CONFIG_P54_COMMON=y
+CONFIG_P54_USB=y
+# CONFIG_P54_SPI is not set
+CONFIG_P54_LEDS=y
+# CONFIG_ATH_COMMON is not set
+CONFIG_HOSTAP=y
+CONFIG_HOSTAP_FIRMWARE=y
+CONFIG_HOSTAP_FIRMWARE_NVRAM=y
+CONFIG_B43=y
+# CONFIG_B43_SDIO is not set
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_HWRNG=y
+# CONFIG_B43_DEBUG is not set
+# CONFIG_B43LEGACY is not set
+CONFIG_ZD1211RW=y
+# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_RT2X00=y
+CONFIG_RT2500USB=y
+CONFIG_RT73USB=y
+# CONFIG_RT2800USB is not set
+CONFIG_RT2X00_LIB_USB=y
+CONFIG_RT2X00_LIB=y
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_LEDS=y
+# CONFIG_RT2X00_DEBUG is not set
+# CONFIG_WL12XX is not set
+# CONFIG_IWM is not set
+
+#
+# WiMAX Wireless Broadband devices
+#
+# CONFIG_WIMAX_I2400M_USB is not set
+# CONFIG_WIMAX_I2400M_SDIO is not set
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=y
+CONFIG_USB_KAWETH=y
+CONFIG_USB_PEGASUS=y
+CONFIG_USB_RTL8150=y
+CONFIG_USB_USBNET=y
+CONFIG_USB_NET_AX8817X=y
+CONFIG_USB_NET_CDCETHER=y
+# CONFIG_USB_NET_CDC_EEM is not set
+CONFIG_USB_NET_DM9601=y
+CONFIG_USB_NET_SMSC95XX=y
+CONFIG_USB_NET_GL620A=y
+CONFIG_USB_NET_NET1080=y
+CONFIG_USB_NET_PLUSB=y
+CONFIG_USB_NET_MCS7830=y
+CONFIG_USB_NET_RNDIS_HOST=y
+CONFIG_USB_NET_CDC_SUBSET=y
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=y
+# CONFIG_USB_NET_INT51X1 is not set
+# CONFIG_WAN is not set
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+# CONFIG_ATM_TCP is not set
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_MPPE=m
+CONFIG_PPPOE=m
+# CONFIG_PPPOATM is not set
+CONFIG_PPPOL2TP=m
+# CONFIG_SLIP is not set
+CONFIG_SLHC=m
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETPOLL=y
+CONFIG_NETPOLL_TRAP=y
+CONFIG_NET_POLL_CONTROLLER=y
+# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=y
+CONFIG_INPUT_POLLDEV=y
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADP5588 is not set
+# CONFIG_KEYBOARD_ATKBD is not set
+# CONFIG_QT2160 is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=y
+# CONFIG_KEYBOARD_MATRIX is not set
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_TWL4030 is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=y
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+# CONFIG_MOUSE_PS2_ELANTECH is not set
+# CONFIG_MOUSE_PS2_SENTELIC is not set
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_APPLETOUCH is not set
+# CONFIG_MOUSE_BCM5974 is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_MOUSE_GPIO is not set
+# CONFIG_MOUSE_SYNAPTICS_I2C is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_ATI_REMOTE is not set
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+# CONFIG_INPUT_CM109 is not set
+CONFIG_INPUT_TWL4030_PWRBUTTON=y
+CONFIG_INPUT_UINPUT=y
+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_SERPORT=y
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_DEVKMEM=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_DETECT_IRQ=y
+CONFIG_SERIAL_8250_RSA=y
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_MAX3100 is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_IPMI_HANDLER is not set
+CONFIG_HW_RANDOM=y
+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_HELPER_AUTO=y
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_DESIGNWARE is not set
+# CONFIG_I2C_GPIO is not set
+# CONFIG_I2C_OCORES is not set
+CONFIG_I2C_OMAP=y
+# CONFIG_I2C_SIMTEC is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_TINY_USB is not set
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_PCA_PLATFORM is not set
+# CONFIG_I2C_STUB is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_DS1682 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+# CONFIG_SPI_BITBANG is not set
+# CONFIG_SPI_GPIO is not set
+CONFIG_SPI_OMAP24XX=y
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SPIDEV=y
+# CONFIG_SPI_TLE62X0 is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+
+#
+# Memory mapped GPIO expanders:
+#
+
+#
+# I2C GPIO expanders:
+#
+# CONFIG_GPIO_MAX732X is not set
+# CONFIG_GPIO_PCA953X is not set
+# CONFIG_GPIO_PCF857X is not set
+CONFIG_GPIO_TWL4030=y
+
+#
+# PCI GPIO expanders:
+#
+
+#
+# SPI GPIO expanders:
+#
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
+
+#
+# AC97 GPIO expanders:
+#
+# CONFIG_W1 is not set
+CONFIG_POWER_SUPPLY=m
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_BATTERY_DS2760 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_BQ27x00 is not set
+# CONFIG_BATTERY_MAX17040 is not set
+CONFIG_HWMON=y
+# CONFIG_HWMON_VID is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+# CONFIG_SENSORS_AD7414 is not set
+# CONFIG_SENSORS_AD7418 is not set
+# CONFIG_SENSORS_ADCXX is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1029 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ADM9240 is not set
+# CONFIG_SENSORS_ADT7462 is not set
+# CONFIG_SENSORS_ADT7470 is not set
+# CONFIG_SENSORS_ADT7473 is not set
+# CONFIG_SENSORS_ADT7475 is not set
+# CONFIG_SENSORS_ATXP1 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_F71882FG is not set
+# CONFIG_SENSORS_F75375S is not set
+# CONFIG_SENSORS_G760A is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM70 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_LM93 is not set
+# CONFIG_SENSORS_LTC4215 is not set
+# CONFIG_SENSORS_LTC4245 is not set
+# CONFIG_SENSORS_LM95241 is not set
+# CONFIG_SENSORS_MAX1111 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_MAX6650 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_SHT15 is not set
+# CONFIG_SENSORS_DME1737 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47M192 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_ADS7828 is not set
+# CONFIG_SENSORS_THMC50 is not set
+# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_TMP421 is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83791D is not set
+# CONFIG_SENSORS_W83792D is not set
+# CONFIG_SENSORS_W83793 is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83L786NG is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83627EHF is not set
+# CONFIG_SENSORS_LIS3_SPI is not set
+CONFIG_THERMAL=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_NOWAYOUT=y
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+CONFIG_OMAP_WATCHDOG=y
+# CONFIG_TWL4030_WATCHDOG is not set
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+# CONFIG_SSB_SDIOHOST is not set
+# CONFIG_SSB_SILENT is not set
+# CONFIG_SSB_DEBUG is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_ASIC3 is not set
+# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_TPS65010 is not set
+CONFIG_TWL4030_CORE=y
+CONFIG_TWL4030_POWER=y
+# CONFIG_TWL4030_CODEC is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_MFD_T7L66XB is not set
+# CONFIG_MFD_TC6387XB is not set
+# CONFIG_MFD_TC6393XB is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_MC13783 is not set
+# CONFIG_AB3100_CORE is not set
+# CONFIG_EZX_PCAP is not set
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+# CONFIG_REGULATOR_BQ24022 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+CONFIG_REGULATOR_TWL4030=y
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_TPS65023 is not set
+# CONFIG_REGULATOR_TPS6507X is not set
+CONFIG_MEDIA_SUPPORT=y
+
+#
+# Multimedia core support
+#
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_V4L2_COMMON=m
+CONFIG_VIDEO_ALLOW_V4L1=y
+CONFIG_VIDEO_V4L1_COMPAT=y
+CONFIG_DVB_CORE=m
+CONFIG_VIDEO_MEDIA=m
+
+#
+# Multimedia drivers
+#
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_TUNER=m
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_MXL5005S=m
+CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEO_V4L1=m
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_VMALLOC=m
+CONFIG_VIDEOBUF_DVB=m
+CONFIG_VIDEO_IR=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEO_TUNER=m
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
+CONFIG_VIDEO_IR_I2C=m
+CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_WM8775=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_CX25840=m
+CONFIG_VIDEO_CX2341X=m
+CONFIG_VIDEO_VIVI=m
+# CONFIG_VIDEO_CPIA is not set
+# CONFIG_VIDEO_CPIA2 is not set
+# CONFIG_VIDEO_SAA5246A is not set
+# CONFIG_VIDEO_SAA5249 is not set
+# CONFIG_VIDEO_AU0828 is not set
+# CONFIG_SOC_CAMERA is not set
+CONFIG_V4L_USB_DRIVERS=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_GSPCA=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+# CONFIG_USB_GL860 is not set
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+# CONFIG_USB_GSPCA_JEILINJ is not set
+CONFIG_USB_GSPCA_MARS=m
+# CONFIG_USB_GSPCA_MR97310A is not set
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7311=m
+# CONFIG_USB_GSPCA_SN9C20X is not set
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+# CONFIG_USB_GSPCA_SQ905 is not set
+# CONFIG_USB_GSPCA_SQ905C is not set
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_PVRUSB2_DVB=y
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_CX231XX=m
+# CONFIG_VIDEO_CX231XX_ALSA is not set
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_USBVISION=m
+CONFIG_VIDEO_USBVIDEO=m
+CONFIG_USB_VICAM=m
+CONFIG_USB_IBMCAM=m
+CONFIG_USB_KONICAWC=m
+CONFIG_USB_QUICKCAM_MESSENGER=m
+CONFIG_USB_ET61X251=m
+CONFIG_VIDEO_OVCAMCHIP=m
+CONFIG_USB_W9968CF=m
+CONFIG_USB_OV511=m
+CONFIG_USB_SE401=m
+CONFIG_USB_SN9C102=m
+CONFIG_USB_STV680=m
+CONFIG_USB_ZC0301=m
+CONFIG_USB_PWC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_USB_ZR364XX=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
+CONFIG_RADIO_ADAPTERS=y
+# CONFIG_I2C_SI4713 is not set
+# CONFIG_RADIO_SI4713 is not set
+# CONFIG_USB_DSBR is not set
+# CONFIG_RADIO_SI470X is not set
+# CONFIG_USB_MR800 is not set
+# CONFIG_RADIO_TEA5764 is not set
+CONFIG_DVB_MAX_ADAPTERS=8
+CONFIG_DVB_DYNAMIC_MINORS=y
+CONFIG_DVB_CAPTURE_DRIVERS=y
+# CONFIG_TTPCI_EEPROM is not set
+
+#
+# Supported USB Adapters
+#
+CONFIG_DVB_USB=m
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AF9015=m
+# CONFIG_DVB_USB_CE6230 is not set
+# CONFIG_DVB_USB_FRIIO is not set
+# CONFIG_SMS_SIANO_MDTV is not set
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+CONFIG_DVB_B2C2_FLEXCOP=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
+
+#
+# Supported DVB Frontends
+#
+# CONFIG_DVB_FE_CUSTOMISE is not set
+CONFIG_DVB_CX24123=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_ZL10039=m
+CONFIG_DVB_S5H1420=m
+CONFIG_DVB_STV0288=m
+CONFIG_DVB_STB6000=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TUNER_ITD1000=m
+CONFIG_DVB_TUNER_CX24113=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_SI21XX=m
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_ZL10353=m
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_TDA10021=m
+CONFIG_DVB_TDA10023=m
+CONFIG_DVB_STV0297=m
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_S5H1411=m
+CONFIG_DVB_DIB8000=m
+CONFIG_DVB_PLL=m
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_ISL6421=m
+CONFIG_DVB_LGS8GL5=m
+# CONFIG_DAB is not set
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_SYS_FOPS is not set
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+CONFIG_FB_MODE_HELPERS=y
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
+# CONFIG_FB_OMAP_LCD_VGA is not set
+# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
+CONFIG_OMAP2_VRAM=y
+CONFIG_OMAP2_VRFB=y
+CONFIG_OMAP2_DSS=y
+CONFIG_OMAP2_VRAM_SIZE=14
+CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y
+# CONFIG_OMAP2_DSS_RFBI is not set
+CONFIG_OMAP2_DSS_VENC=y
+# CONFIG_OMAP2_DSS_SDI is not set
+CONFIG_OMAP2_DSS_DSI=y
+CONFIG_OMAP2_DSS_USE_DSI_PLL=y
+# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set
+CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=1
+CONFIG_FB_OMAP2=y
+CONFIG_FB_OMAP2_DEBUG_SUPPORT=y
+# CONFIG_FB_OMAP2_FORCE_AUTO_UPDATE is not set
+CONFIG_FB_OMAP2_NUM_FBS=3
+
+#
+# OMAP2/3 Display Device Drivers
+#
+CONFIG_PANEL_GENERIC=y
+CONFIG_PANEL_SAMSUNG_LTE430WQ_F0C=y
+CONFIG_PANEL_SHARP_LS037V7DW01=y
+# CONFIG_PANEL_TAAL is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+CONFIG_DISPLAY_SUPPORT=y
+
+#
+# Display hardware drivers
+#
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_SOUND=y
+CONFIG_SOUND_OSS_CORE=y
+CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+CONFIG_SND_HWDEP=y
+CONFIG_SND_RAWMIDI=y
+CONFIG_SND_JACK=y
+CONFIG_SND_SEQUENCER=m
+# CONFIG_SND_SEQ_DUMMY is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=y
+CONFIG_SND_PCM_OSS=y
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_RAWMIDI_SEQ=m
+# CONFIG_SND_OPL3_LIB_SEQ is not set
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+# CONFIG_SND_SBAWE_SEQ is not set
+# CONFIG_SND_EMU10K1_SEQ is not set
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_VIRMIDI is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+# CONFIG_SND_ARM is not set
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=y
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_SOC=y
+CONFIG_SND_OMAP_SOC=y
+CONFIG_SND_OMAP_SOC_MCBSP=y
+# CONFIG_SND_OMAP_SOC_OVERO is not set
+# CONFIG_SND_OMAP_SOC_OMAP3EVM is not set
+# CONFIG_SND_OMAP_SOC_OMAP3_PANDORA is not set
+CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=y
+# CONFIG_SND_OMAP_SOC_ZOOM2 is not set
+CONFIG_SND_SOC_I2C_AND_SPI=y
+# CONFIG_SND_SOC_ALL_CODECS is not set
+CONFIG_SND_SOC_TWL4030=y
+# CONFIG_SOUND_PRIME is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+# CONFIG_HIDRAW is not set
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=y
+# CONFIG_HID_PID is not set
+# CONFIG_USB_HIDDEV is not set
+
+#
+# Special HID drivers
+#
+CONFIG_HID_A4TECH=y
+CONFIG_HID_APPLE=y
+CONFIG_HID_BELKIN=y
+CONFIG_HID_CHERRY=y
+CONFIG_HID_CHICONY=y
+CONFIG_HID_CYPRESS=y
+# CONFIG_HID_DRAGONRISE is not set
+CONFIG_HID_EZKEY=y
+# CONFIG_HID_KYE is not set
+CONFIG_HID_GYRATION=y
+# CONFIG_HID_TWINHAN is not set
+# CONFIG_HID_KENSINGTON is not set
+CONFIG_HID_LOGITECH=y
+# CONFIG_LOGITECH_FF is not set
+# CONFIG_LOGIRUMBLEPAD2_FF is not set
+CONFIG_HID_MICROSOFT=y
+CONFIG_HID_MONTEREY=y
+CONFIG_HID_NTRIG=y
+CONFIG_HID_PANTHERLORD=y
+# CONFIG_PANTHERLORD_FF is not set
+CONFIG_HID_PETALYNX=y
+CONFIG_HID_SAMSUNG=y
+CONFIG_HID_SONY=y
+CONFIG_HID_SUNPLUS=y
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+CONFIG_HID_TOPSEED=y
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_WACOM is not set
+# CONFIG_HID_ZEROPLUS is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+CONFIG_USB_DEVICE_CLASS=y
+# CONFIG_USB_DYNAMIC_MINORS is not set
+CONFIG_USB_SUSPEND=y
+CONFIG_USB_OTG=y
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+CONFIG_USB_MON=y
+# CONFIG_USB_WUSB is not set
+# CONFIG_USB_WUSB_CBAF is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+CONFIG_USB_EHCI_HCD=y
+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
+# CONFIG_USB_OHCI_HCD is not set
+# CONFIG_USB_U132_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_HWA_HCD is not set
+CONFIG_USB_MUSB_HDRC=y
+CONFIG_USB_MUSB_SOC=y
+
+#
+# OMAP 343x high speed USB support
+#
+# CONFIG_USB_MUSB_HOST is not set
+# CONFIG_USB_MUSB_PERIPHERAL is not set
+CONFIG_USB_MUSB_OTG=y
+CONFIG_USB_GADGET_MUSB_HDRC=y
+CONFIG_USB_MUSB_HDRC_HCD=y
+# CONFIG_MUSB_PIO_ONLY is not set
+CONFIG_USB_INVENTRA_DMA=y
+# CONFIG_USB_TI_CPPI_DMA is not set
+# CONFIG_USB_MUSB_DEBUG is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_WDM=m
+CONFIG_USB_TMC=m
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_STORAGE_ALAUDA is not set
+# CONFIG_USB_STORAGE_ONETOUCH is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB port drivers
+#
+CONFIG_USB_SERIAL=m
+CONFIG_USB_EZUSB=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+# CONFIG_USB_SERIAL_CP210X is not set
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MOTOROLA=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+# CONFIG_USB_SERIAL_QUALCOMM is not set
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIEMENS_MPI=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+# CONFIG_USB_SERIAL_SYMBOL is not set
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_DEBUG=m
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_SEVSEG is not set
+# CONFIG_USB_RIO500 is not set
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_BERRY_CHARGE=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+# CONFIG_USB_APPLEDISPLAY is not set
+CONFIG_USB_SISUSBVGA=m
+CONFIG_USB_SISUSBVGA_CON=y
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+# CONFIG_USB_IOWARRIOR is not set
+CONFIG_USB_TEST=m
+# CONFIG_USB_ISIGHTFW is not set
+CONFIG_USB_VST=m
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+CONFIG_USB_GADGET_DEBUG_FS=y
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_AT91 is not set
+# CONFIG_USB_GADGET_ATMEL_USBA is not set
+# CONFIG_USB_GADGET_FSL_USB2 is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_GADGET_PXA25X is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
+# CONFIG_USB_GADGET_PXA27X is not set
+# CONFIG_USB_GADGET_S3C_HSOTG is not set
+# CONFIG_USB_GADGET_IMX is not set
+# CONFIG_USB_GADGET_S3C2410 is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_FSL_QE is not set
+# CONFIG_USB_GADGET_CI13XXX is not set
+# CONFIG_USB_GADGET_NET2280 is not set
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LANGWELL is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GADGET_DUALSPEED=y
+CONFIG_USB_ZERO=m
+CONFIG_USB_ZERO_HNPTEST=y
+# CONFIG_USB_AUDIO is not set
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_ETH_EEM is not set
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FILE_STORAGE=m
+# CONFIG_USB_FILE_STORAGE_TEST is not set
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_G_PRINTER=m
+CONFIG_USB_CDC_COMPOSITE=m
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+CONFIG_USB_GPIO_VBUS=y
+# CONFIG_ISP1301_OMAP is not set
+CONFIG_TWL4030_USB=y
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_UNSAFE_RESUME=y
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=y
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+# CONFIG_MMC_SDHCI is not set
+# CONFIG_MMC_OMAP is not set
+CONFIG_MMC_OMAP_HS=y
+# CONFIG_MMC_AT91 is not set
+# CONFIG_MMC_ATMELMCI is not set
+CONFIG_MMC_SPI=m
+# CONFIG_MEMSTICK is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_PCA9532 is not set
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_GPIO_PLATFORM=y
+# CONFIG_LEDS_LP3944 is not set
+# CONFIG_LEDS_PCA955X is not set
+# CONFIG_LEDS_DAC124S085 is not set
+# CONFIG_LEDS_BD2802 is not set
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+# CONFIG_LEDS_TRIGGER_GPIO is not set
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+# CONFIG_ACCESSIBILITY is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=m
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS1307=m
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+CONFIG_RTC_DRV_TWL4030=m
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+# CONFIG_RTC_DRV_RX8025 is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_DS3234 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_DMADEVICES is not set
+# CONFIG_AUXDISPLAY is not set
+CONFIG_UIO=m
+CONFIG_UIO_PDRV=m
+CONFIG_UIO_PDRV_GENIRQ=m
+# CONFIG_UIO_SMX is not set
+# CONFIG_UIO_SERCOS3 is not set
+
+#
+# TI VLYNQ
+#
+CONFIG_STAGING=y
+# CONFIG_STAGING_EXCLUDE_BUILD is not set
+# CONFIG_USB_IP_COMMON is not set
+CONFIG_W35UND=m
+# CONFIG_PRISM2_USB is not set
+CONFIG_ECHO=m
+CONFIG_OTUS=m
+# CONFIG_COMEDI is not set
+# CONFIG_ASUS_OLED is not set
+# CONFIG_INPUT_MIMIO is not set
+# CONFIG_TRANZPORT is not set
+
+#
+# Android
+#
+
+#
+# Qualcomm MSM Camera And Video
+#
+
+#
+# Camera Sensor Selection
+#
+# CONFIG_INPUT_GPIO is not set
+# CONFIG_DST is not set
+# CONFIG_POHMELFS is not set
+# CONFIG_PLAN9AUTH is not set
+# CONFIG_LINE6_USB is not set
+# CONFIG_USB_SERIAL_QUATECH2 is not set
+# CONFIG_USB_SERIAL_QUATECH_USB2 is not set
+# CONFIG_VT6656 is not set
+# CONFIG_FB_UDL is not set
+
+#
+# RAR Register Driver
+#
+# CONFIG_RAR_REGISTER is not set
+# CONFIG_IIO is not set
+
+#
+# CBUS support
+#
+# CONFIG_CBUS is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+# CONFIG_EXT3_FS_XATTR is not set
+CONFIG_EXT4_FS=m
+CONFIG_EXT4_FS_XATTR=y
+# CONFIG_EXT4_FS_POSIX_ACL is not set
+# CONFIG_EXT4_FS_SECURITY is not set
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_JBD2=m
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=m
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+CONFIG_REISERFS_FS_XATTR=y
+# CONFIG_REISERFS_FS_POSIX_ACL is not set
+# CONFIG_REISERFS_FS_SECURITY is not set
+CONFIG_JFS_FS=m
+# CONFIG_JFS_POSIX_ACL is not set
+# CONFIG_JFS_SECURITY is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_XFS_FS=m
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_POSIX_ACL is not set
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_DEBUG is not set
+CONFIG_GFS2_FS=m
+# CONFIG_GFS2_FS_LOCKING_DLM is not set
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OCFS2_FS_STATS=y
+CONFIG_OCFS2_DEBUG_MASKLOG=y
+# CONFIG_OCFS2_DEBUG_FS is not set
+# CONFIG_OCFS2_FS_POSIX_ACL is not set
+CONFIG_BTRFS_FS=m
+# CONFIG_BTRFS_FS_POSIX_ACL is not set
+# CONFIG_NILFS2_FS is not set
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_QUOTA=y
+# CONFIG_QUOTA_NETLINK_INTERFACE is not set
+CONFIG_PRINT_QUOTA_WARNING=y
+CONFIG_QUOTA_TREE=y
+# CONFIG_QFMT_V1 is not set
+CONFIG_QFMT_V2=y
+CONFIG_QUOTACTL=y
+# CONFIG_AUTOFS_FS is not set
+CONFIG_AUTOFS4_FS=m
+CONFIG_FUSE_FS=m
+# CONFIG_CUSE is not set
+
+#
+# Caches
+#
+# CONFIG_FSCACHE is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_CONFIGFS_FS=m
+CONFIG_MISC_FILESYSTEMS=y
+CONFIG_ADFS_FS=m
+# CONFIG_ADFS_FS_RW is not set
+CONFIG_AFFS_FS=m
+# CONFIG_ECRYPT_FS is not set
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_BEFS_FS=m
+# CONFIG_BEFS_DEBUG is not set
+CONFIG_BFS_FS=m
+CONFIG_EFS_FS=m
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+CONFIG_JFFS2_SUMMARY=y
+CONFIG_JFFS2_FS_XATTR=y
+CONFIG_JFFS2_FS_POSIX_ACL=y
+CONFIG_JFFS2_FS_SECURITY=y
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_LZO=y
+CONFIG_JFFS2_RTIME=y
+CONFIG_JFFS2_RUBIN=y
+# CONFIG_JFFS2_CMODE_NONE is not set
+# CONFIG_JFFS2_CMODE_PRIORITY is not set
+# CONFIG_JFFS2_CMODE_SIZE is not set
+CONFIG_JFFS2_CMODE_FAVOURLZO=y
+CONFIG_UBIFS_FS=y
+CONFIG_UBIFS_FS_XATTR=y
+CONFIG_UBIFS_FS_ADVANCED_COMPR=y
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+# CONFIG_UBIFS_FS_DEBUG is not set
+CONFIG_CRAMFS=m
+CONFIG_SQUASHFS=y
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+CONFIG_VXFS_FS=m
+CONFIG_MINIX_FS=m
+CONFIG_OMFS_FS=m
+CONFIG_HPFS_FS=m
+CONFIG_QNX4FS_FS=m
+CONFIG_ROMFS_FS=m
+CONFIG_ROMFS_BACKED_BY_BLOCK=y
+# CONFIG_ROMFS_BACKED_BY_MTD is not set
+# CONFIG_ROMFS_BACKED_BY_BOTH is not set
+CONFIG_ROMFS_ON_BLOCK=y
+CONFIG_SYSV_FS=m
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+# CONFIG_NFS_V3_ACL is not set
+CONFIG_NFS_V4=y
+# CONFIG_NFS_V4_1 is not set
+CONFIG_ROOT_NFS=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_RPCSEC_GSS_KRB5=y
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+CONFIG_CIFS_STATS2=y
+# CONFIG_CIFS_WEAK_PW_HASH is not set
+# CONFIG_CIFS_UPCALL is not set
+# CONFIG_CIFS_XATTR is not set
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DFS_UPCALL is not set
+CONFIG_CIFS_EXPERIMENTAL=y
+CONFIG_NCP_FS=m
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+# CONFIG_NCPFS_NFS_NS is not set
+# CONFIG_NCPFS_OS2_NS is not set
+# CONFIG_NCPFS_SMALLDOS is not set
+# CONFIG_NCPFS_NLS is not set
+# CONFIG_NCPFS_EXTRAS is not set
+CONFIG_CODA_FS=m
+CONFIG_AFS_FS=m
+# CONFIG_AFS_DEBUG is not set
+CONFIG_9P_FS=m
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_LDM_PARTITION=y
+CONFIG_LDM_DEBUG=y
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=y
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+
+#
+# Kernel hacking
+#
+CONFIG_PRINTK_TIME=y
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=1024
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+CONFIG_DETECT_HUNG_TASK=y
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
+CONFIG_SCHEDSTATS=y
+CONFIG_TIMER_STATS=y
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
+CONFIG_DEBUG_PREEMPT=y
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+# CONFIG_PAGE_POISONING is not set
+CONFIG_NOP_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_RING_BUFFER=y
+CONFIG_EVENT_TRACING=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+CONFIG_TRACING=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+# CONFIG_FUNCTION_TRACER is not set
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_TRACER is not set
+# CONFIG_SCHED_TRACER is not set
+# CONFIG_ENABLE_DEFAULT_TRACERS is not set
+# CONFIG_BOOT_TRACER is not set
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+# CONFIG_STACK_TRACER is not set
+# CONFIG_KMEMTRACE is not set
+# CONFIG_WORKQUEUE_TRACER is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_RING_BUFFER_BENCHMARK is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+CONFIG_ARM_UNWIND=y
+# CONFIG_DEBUG_USER is not set
+# CONFIG_DEBUG_ERRORS is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_LL is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_FIPS=y
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_SEQIV=m
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_ECB=y
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=m
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=m
+CONFIG_CRYPTO_XCBC=m
+# CONFIG_CRYPTO_VMAC is not set
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_MICHAEL_MIC=y
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_WP512=m
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_ZLIB is not set
+CONFIG_CRYPTO_LZO=y
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_HW=y
+CONFIG_BINARY_PRINTF=y
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+CONFIG_CRC_CCITT=y
+CONFIG_CRC16=y
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC_ITU_T=y
+CONFIG_CRC32=y
+CONFIG_CRC7=y
+CONFIG_LIBCRC32C=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_NLATTR=y
diff --git a/recipes/linux/linux-omap-2.6.32/usb/ehci-omap.c-mach-to-plat.diff b/recipes/linux/linux-omap-2.6.32/usb/ehci-omap.c-mach-to-plat.diff
new file mode 100644
index 0000000000..faa1ae025c
--- /dev/null
+++ b/recipes/linux/linux-omap-2.6.32/usb/ehci-omap.c-mach-to-plat.diff
@@ -0,0 +1,12 @@
+--- a/drivers/usb/host/ehci-omap.c
++++ b/drivers/usb/host/ehci-omap.c
+@@ -37,7 +37,7 @@
+ #include <linux/platform_device.h>
+ #include <linux/clk.h>
+ #include <linux/gpio.h>
+-#include <mach/usb.h>
++#include <plat/usb.h>
+
+ /*
+ * OMAP USBHOST Register addresses: VIRTUAL ADDRESSES
+
diff --git a/recipes/linux/linux-omap-2.6.32/usb/ehci.patch b/recipes/linux/linux-omap-2.6.32/usb/ehci.patch
new file mode 100644
index 0000000000..569561185a
--- /dev/null
+++ b/recipes/linux/linux-omap-2.6.32/usb/ehci.patch
@@ -0,0 +1,46 @@
+From patchwork Wed Nov 25 08:56:48 2009
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [2/2] usb: ehci: Allow EHCI to be built on OMAP3
+Date: Wed, 25 Nov 2009 08:56:48 -0000
+From: Olof Johansson <olof@lixom.net>
+X-Patchwork-Id: 62727
+
+OMAP34XX has EHCI, so select USB_ARCH_HAS_EHCI.
+
+Signed-off-by: Olof Johansson <olof@lixom.net>
+Acked-by: Anand Gadiyar <gadiyar@ti.com>
+
+---
+On Sat, Nov 07, 2009 at 01:16:32AM +0530, Anand Gadiyar wrote:
+> usb: ehci: Allow EHCI to be built on OMAP3
+>
+> OMAP3 chips have a built-in EHCI controller.
+> The recently introduced omap ehci-hcd driver missed
+> out on selecting USB_ARCH_HAS_EHCI in Kconfig.
+>
+> Without this, the driver cannot be built.
+
+This is a losing battle. It scales much better to select the option
+from OMAP34XX, instead of starting to enumerate the various platforms
+in drivers/usb.
+
+
+--
+To unsubscribe from this list: send the line "unsubscribe linux-omap" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html
+
+diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
+index 034d990..a913b05 100644
+--- a/arch/arm/mach-omap2/Kconfig
++++ b/arch/arm/mach-omap2/Kconfig
+@@ -18,6 +18,7 @@ config ARCH_OMAP2430
+ config ARCH_OMAP34XX
+ bool "OMAP34xx Based System"
+ depends on ARCH_OMAP3
++ select USB_ARCH_HAS_EHCI
+
+ config ARCH_OMAP3430
+ bool "OMAP3430 support"
diff --git a/recipes/linux/linux-omap-pm-2.6.29/omap3-touchbook/board-omap3beagle.c b/recipes/linux/linux-omap-pm-2.6.29/omap3-touchbook/board-omap3beagle.c
deleted file mode 100644
index c7867bef2f..0000000000
--- a/recipes/linux/linux-omap-pm-2.6.29/omap3-touchbook/board-omap3beagle.c
+++ /dev/null
@@ -1,744 +0,0 @@
-/*
- * linux/arch/arm/mach-omap2/board-omap3beagle.c
- *
- * Copyright (C) 2008 Texas Instruments
- *
- * Modified from mach-omap2/board-3430sdp.c
- *
- * Initial code: Syed Mohammed Khasim
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/platform_device.h>
-#include <linux/delay.h>
-#include <linux/err.h>
-#include <linux/clk.h>
-#include <linux/io.h>
-#include <linux/leds.h>
-#include <linux/gpio.h>
-#include <linux/input.h>
-#include <linux/gpio_keys.h>
-
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/partitions.h>
-#include <linux/mtd/nand.h>
-
-#include <mach/mcspi.h>
-#include <linux/spi/spi.h>
-#include <linux/spi/ads7846.h>
-#include <linux/mma7455l.h>
-
-#include <mach/dmtimer.h>
-#include <linux/backlight.h>
-
-#include <linux/regulator/machine.h>
-#include <linux/i2c/twl4030.h>
-#include <linux/omapfb.h>
-
-#include <mach/hardware.h>
-#include <asm/mach-types.h>
-#include <asm/mach/arch.h>
-#include <asm/mach/map.h>
-#include <asm/mach/flash.h>
-
-#include <mach/board.h>
-#include <mach/usb.h>
-#include <mach/common.h>
-#include <mach/gpmc.h>
-#include <mach/nand.h>
-#include <mach/mux.h>
-#include <mach/omap-pm.h>
-#include <mach/clock.h>
-#include <mach/display.h>
-
-#include "twl4030-generic-scripts.h"
-#include "mmc-twl4030.h"
-#include "pm.h"
-#include "omap3-opp.h"
-
-
-#define GPMC_CS0_BASE 0x60
-#define GPMC_CS_SIZE 0x30
-
-#define NAND_BLOCK_SIZE SZ_128K
-
-#define OMAP3_AC_GPIO 136 //Int1 DRDY
-#define OMAP3_TS_GPIO 162
-#define TB_BL_PWM_TIMER 9
-#define TB_KILL_POWER_GPIO 168
-
-static struct mtd_partition omap3beagle_nand_partitions[] = {
- /* All the partition sizes are listed in terms of NAND block size */
- {
- .name = "X-Loader",
- .offset = 0,
- .size = 4 * NAND_BLOCK_SIZE,
- .mask_flags = MTD_WRITEABLE, /* force read-only */
- },
- {
- .name = "U-Boot",
- .offset = MTDPART_OFS_APPEND, /* Offset = 0x80000 */
- .size = 15 * NAND_BLOCK_SIZE,
- .mask_flags = MTD_WRITEABLE, /* force read-only */
- },
- {
- .name = "U-Boot Env",
- .offset = MTDPART_OFS_APPEND, /* Offset = 0x260000 */
- .size = 1 * NAND_BLOCK_SIZE,
- },
- {
- .name = "Kernel",
- .offset = MTDPART_OFS_APPEND, /* Offset = 0x280000 */
- .size = 32 * NAND_BLOCK_SIZE,
- },
- {
- .name = "File System",
- .offset = MTDPART_OFS_APPEND, /* Offset = 0x680000 */
- .size = MTDPART_SIZ_FULL,
- },
-};
-
-static struct omap_nand_platform_data omap3beagle_nand_data = {
- .options = NAND_BUSWIDTH_16,
- .parts = omap3beagle_nand_partitions,
- .nr_parts = ARRAY_SIZE(omap3beagle_nand_partitions),
- .dma_channel = -1, /* disable DMA in OMAP NAND driver */
- .nand_setup = NULL,
- .dev_ready = NULL,
-};
-
-static struct resource omap3beagle_nand_resource = {
- .flags = IORESOURCE_MEM,
-};
-
-static struct platform_device omap3beagle_nand_device = {
- .name = "omap2-nand",
- .id = -1,
- .dev = {
- .platform_data = &omap3beagle_nand_data,
- },
- .num_resources = 1,
- .resource = &omap3beagle_nand_resource,
-};
-
-#include "sdram-micron-mt46h32m32lf-6.h"
-
-static struct omap_uart_config omap3_beagle_uart_config __initdata = {
- .enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)),
-};
-
-static struct twl4030_usb_data beagle_usb_data = {
- .usb_mode = T2_USB_MODE_ULPI,
-};
-
-static struct twl4030_hsmmc_info mmc[] = {
- {
- .mmc = 1,
- .wires = 8,
- .gpio_wp = 29,
- },
- {} /* Terminator */
-};
-
-static struct regulator_consumer_supply beagle_vmmc1_supply = {
- .supply = "vmmc",
-};
-
-static struct regulator_consumer_supply beagle_vsim_supply = {
- .supply = "vmmc_aux",
-};
-
-static struct gpio_led gpio_leds[];
-
-static int beagle_twl_gpio_setup(struct device *dev,
- unsigned gpio, unsigned ngpio)
-{
- /* gpio + 0 is "mmc0_cd" (input/IRQ) */
- omap_cfg_reg(AH8_34XX_GPIO29);
- mmc[0].gpio_cd = gpio + 0;
- twl4030_mmc_init(mmc);
-
- /* link regulators to MMC adapters */
- beagle_vmmc1_supply.dev = mmc[0].dev;
- beagle_vsim_supply.dev = mmc[0].dev;
-
- /* REVISIT: need ehci-omap hooks for external VBUS
- * power switch and overcurrent detect
- */
-
-#if 0 /* TODO: This needs to be modified to not rely on u-boot */
- gpio_request(gpio + 1, "EHCI_nOC");
- gpio_direction_input(gpio + 1);
-
- /* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */
- gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR");
- gpio_direction_output(gpio + TWL4030_GPIO_MAX, 1);
-
- /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */
- gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1;
-#endif
- return 0;
-}
-
-static struct twl4030_gpio_platform_data beagle_gpio_data = {
- .gpio_base = OMAP_MAX_GPIO_LINES,
- .irq_base = TWL4030_GPIO_IRQ_BASE,
- .irq_end = TWL4030_GPIO_IRQ_END,
- .use_leds = true,
- .pullups = BIT(1),
- .pulldowns = BIT(2) | BIT(6) | BIT(7) | BIT(8) | BIT(13)
- | BIT(15) | BIT(16) | BIT(17),
- .setup = beagle_twl_gpio_setup,
-};
-
-static struct platform_device omap3_beagle_lcd_device = {
- .name = "omap3beagle_lcd",
- .id = -1,
-};
-
-static struct regulator_consumer_supply beagle_vdac_supply = {
- .supply = "vdac",
- .dev = &omap3_beagle_lcd_device.dev,
-};
-
-static struct regulator_consumer_supply beagle_vdvi_supply = {
- .supply = "vdvi",
- .dev = &omap3_beagle_lcd_device.dev,
-};
-
-/* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max 220 mA) */
-static struct regulator_init_data beagle_vmmc1 = {
- .constraints = {
- .min_uV = 1850000,
- .max_uV = 3150000,
- .valid_modes_mask = REGULATOR_MODE_NORMAL
- | REGULATOR_MODE_STANDBY,
- .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE
- | REGULATOR_CHANGE_MODE
- | REGULATOR_CHANGE_STATUS,
- },
- .num_consumer_supplies = 1,
- .consumer_supplies = &beagle_vmmc1_supply,
-};
-
-/* VSIM for MMC1 pins DAT4..DAT7 (2 mA, plus card == max 50 mA) */
-static struct regulator_init_data beagle_vsim = {
- .constraints = {
- .min_uV = 1800000,
- .max_uV = 3000000,
- .valid_modes_mask = REGULATOR_MODE_NORMAL
- | REGULATOR_MODE_STANDBY,
- .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE
- | REGULATOR_CHANGE_MODE
- | REGULATOR_CHANGE_STATUS,
- },
- .num_consumer_supplies = 1,
- .consumer_supplies = &beagle_vsim_supply,
-};
-
-/* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */
-static struct regulator_init_data beagle_vdac = {
- .constraints = {
- .min_uV = 1800000,
- .max_uV = 1800000,
- .valid_modes_mask = REGULATOR_MODE_NORMAL
- | REGULATOR_MODE_STANDBY,
- .valid_ops_mask = REGULATOR_CHANGE_MODE
- | REGULATOR_CHANGE_STATUS,
- },
- .num_consumer_supplies = 1,
- .consumer_supplies = &beagle_vdac_supply,
-};
-
-/* VPLL2 for digital video outputs */
-static struct regulator_init_data beagle_vpll2 = {
- .constraints = {
- .name = "VDVI",
- .min_uV = 1800000,
- .max_uV = 1800000,
- .valid_modes_mask = REGULATOR_MODE_NORMAL
- | REGULATOR_MODE_STANDBY,
- .valid_ops_mask = REGULATOR_CHANGE_MODE
- | REGULATOR_CHANGE_STATUS,
- },
- .num_consumer_supplies = 1,
- .consumer_supplies = &beagle_vdvi_supply,
-};
-
-static const struct twl4030_resconfig beagle_resconfig[] = {
- /* disable regulators that u-boot left enabled; the
- * devices' drivers should be managing these.
- */
- { .resource = RES_VAUX3, }, /* not even connected! */
- { .resource = RES_VMMC1, },
- { .resource = RES_VSIM, },
- { .resource = RES_VPLL2, },
- { .resource = RES_VDAC, },
- { .resource = RES_VUSB_1V5, },
- { .resource = RES_VUSB_1V8, },
- { .resource = RES_VUSB_3V1, },
- { 0, },
-};
-
-static struct twl4030_power_data beagle_power_data = {
- .resource_config = beagle_resconfig,
- /* REVISIT can't use GENERIC3430_T2SCRIPTS_DATA;
- * among other things, it makes reboot fail.
- */
-};
-
-static struct twl4030_bci_platform_data touchbook_bci_data = {
- .tblsize = 0,
- .no_backup_battery = 1,
-};
-
-static struct twl4030_platform_data beagle_twldata = {
- .irq_base = TWL4030_IRQ_BASE,
- .irq_end = TWL4030_IRQ_END,
-
- /* platform_data for children goes here */
- .usb = &beagle_usb_data,
- .gpio = &beagle_gpio_data,
- .power = &beagle_power_data,
- .vmmc1 = &beagle_vmmc1,
- .vsim = &beagle_vsim,
- .vdac = &beagle_vdac,
- .vpll2 = &beagle_vpll2,
-
- /* TouchBook BCI */
- .bci = &touchbook_bci_data,
-};
-
-static struct i2c_board_info __initdata beagle_i2c_boardinfo[] = {
- {
- I2C_BOARD_INFO("twl4030", 0x48),
- .flags = I2C_CLIENT_WAKE,
- .irq = INT_34XX_SYS_NIRQ,
- .platform_data = &beagle_twldata,
- },
-};
-
-static struct i2c_board_info __initdata touchBook_i2c_boardinfo[] = {
- {
- I2C_BOARD_INFO("bq27200", 0x55),
- },
-};
-
-static int __init omap3_beagle_i2c_init(void)
-{
- /* Standard BeagleBoard bus */
- omap_register_i2c_bus(1, 2600, beagle_i2c_boardinfo,
- ARRAY_SIZE(beagle_i2c_boardinfo));
-
- /* TouchBook keyboard bus */
- omap_register_i2c_bus(3, 100, touchBook_i2c_boardinfo,
- ARRAY_SIZE(touchBook_i2c_boardinfo));
-
- return 0;
-}
-
-static void __init omap3_ads7846_init(void)
-{
- if (gpio_request(OMAP3_TS_GPIO, "ads7846_pen_down")) {
- printk(KERN_ERR "Failed to request GPIO %d for "
- "ads7846 pen down IRQ\n", OMAP3_TS_GPIO);
- return;
- }
-
- gpio_direction_input(OMAP3_TS_GPIO);
- omap_set_gpio_debounce(OMAP3_TS_GPIO, 1);
- omap_set_gpio_debounce_time(OMAP3_TS_GPIO, 0xa);
-}
-
-static struct ads7846_platform_data ads7846_config = {
- .x_min = 100,
- .y_min = 265,
- .x_max = 3950,
- .y_max = 3750,
- .x_plate_ohms = 40,
- .pressure_max = 255,
- .debounce_max = 10,
- .debounce_tol = 5,
- .debounce_rep = 1,
- .gpio_pendown = OMAP3_TS_GPIO,
- .keep_vref_on = 1,
-};
-
-static struct omap2_mcspi_device_config ads7846_mcspi_config = {
- .turbo_mode = 0,
- .single_channel = 1, /* 0: slave, 1: master */
-};
-
-static struct spi_board_info omap3_ads7846_spi_board_info[] __initdata = {
- {
- .modalias = "ads7846",
- .bus_num = 4,
- .chip_select = 0,
- .max_speed_hz = 1500000,
- .controller_data = &ads7846_mcspi_config, //(void *) 161,
- .irq = OMAP_GPIO_IRQ(OMAP3_TS_GPIO),
- .platform_data = &ads7846_config,
- }
-};
-
-static void __init omap3_beagle_init_irq(void)
-{
- omap2_init_common_hw(mt46h32m32lf6_sdrc_params, omap3_mpu_rate_table,
- omap3_dsp_rate_table, omap3_l3_rate_table);
- omap_init_irq();
- omap_gpio_init();
-}
-
-static struct gpio_led gpio_leds[] = {
- {
- .name = "beagleboard::usr0",
- .default_trigger = "heartbeat",
- .gpio = 150,
- },
- {
- .name = "beagleboard::usr1",
- .default_trigger = "mmc0",
- .gpio = 149,
- },
- {
- .name = "beagleboard::pmu_stat",
- .gpio = -EINVAL, /* gets replaced */
- .active_low = true,
- },
-};
-
-static struct gpio_led_platform_data gpio_led_info = {
- .leds = gpio_leds,
- .num_leds = ARRAY_SIZE(gpio_leds),
-};
-
-static struct platform_device leds_gpio = {
- .name = "leds-gpio",
- .id = -1,
- .dev = {
- .platform_data = &gpio_led_info,
- },
-};
-
-static struct gpio_keys_button gpio_buttons[] = {
- {
- .code = BTN_EXTRA,
- .gpio = 7,
- .desc = "user",
- .wakeup = 1,
- },
- {
- .code = KEY_POWER,
- .gpio = 183,
- .desc = "power",
- .wakeup = 1,
- },
-};
-
-static struct gpio_keys_platform_data gpio_key_info = {
- .buttons = gpio_buttons,
- .nbuttons = ARRAY_SIZE(gpio_buttons),
-};
-
-static struct platform_device keys_gpio = {
- .name = "gpio-keys",
- .id = -1,
- .dev = {
- .platform_data = &gpio_key_info,
- },
-};
-
-/* DSS */
-
-static int beagle_enable_dvi(struct omap_display *display)
-{
- if (display->hw_config.panel_reset_gpio != -1)
- gpio_set_value(display->hw_config.panel_reset_gpio, 1);
-
- return 0;
-}
-
-static void beagle_disable_dvi(struct omap_display *display)
-{
- if (display->hw_config.panel_reset_gpio != -1)
- gpio_set_value(display->hw_config.panel_reset_gpio, 0);
-}
-
-static struct omap_dss_display_config beagle_display_data_dvi = {
- .type = OMAP_DISPLAY_TYPE_DPI,
- .name = "dvi",
- .panel_name = "panel-generic",
- .u.dpi.data_lines = 24,
- .panel_reset_gpio = 176,
- .panel_enable = beagle_enable_dvi,
- .panel_disable = beagle_disable_dvi,
-};
-
-
-static int beagle_panel_enable_tv(struct omap_display *display)
-{
-#define ENABLE_VDAC_DEDICATED 0x03
-#define ENABLE_VDAC_DEV_GRP 0x20
-
- twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
- ENABLE_VDAC_DEDICATED,
- TWL4030_VDAC_DEDICATED);
- twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
- ENABLE_VDAC_DEV_GRP, TWL4030_VDAC_DEV_GRP);
-
- return 0;
-}
-
-static void beagle_panel_disable_tv(struct omap_display *display)
-{
- twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER, 0x00,
- TWL4030_VDAC_DEDICATED);
- twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER, 0x00,
- TWL4030_VDAC_DEV_GRP);
-}
-
-static struct omap_dss_display_config beagle_display_data_tv = {
- .type = OMAP_DISPLAY_TYPE_VENC,
- .name = "tv",
- .u.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO,
- .panel_enable = beagle_panel_enable_tv,
- .panel_disable = beagle_panel_disable_tv,
-};
-
-static struct omap_dss_board_info beagle_dss_data = {
- .num_displays = 2,
- .displays = {
- &beagle_display_data_dvi,
- &beagle_display_data_tv,
- }
-};
-
-static struct platform_device beagle_dss_device = {
- .name = "omapdss",
- .id = -1,
- .dev = {
- .platform_data = &beagle_dss_data,
- },
-};
-
-static void __init beagle_display_init(void)
-{
- int r;
-
- r = gpio_request(beagle_display_data_dvi.panel_reset_gpio, "DVI reset");
- if (r < 0) {
- printk(KERN_ERR "Unable to get DVI reset GPIO\n");
- return;
- }
-
- gpio_direction_output(beagle_display_data_dvi.panel_reset_gpio, 0);
-}
-
-static struct omap_board_config_kernel omap3_beagle_config[] __initdata = {
- { OMAP_TAG_UART, &omap3_beagle_uart_config },
-};
-
-static struct platform_device *omap3_beagle_devices[] __initdata = {
- &beagle_dss_device,
- &leds_gpio,
- &keys_gpio,
-};
-
-static void __init omap3beagle_flash_init(void)
-{
- u8 cs = 0;
- u8 nandcs = GPMC_CS_NUM + 1;
-
- u32 gpmc_base_add = OMAP34XX_GPMC_VIRT;
-
- /* find out the chip-select on which NAND exists */
- while (cs < GPMC_CS_NUM) {
- u32 ret = 0;
- ret = gpmc_cs_read_reg(cs, GPMC_CS_CONFIG1);
-
- if ((ret & 0xC00) == 0x800) {
- printk(KERN_INFO "Found NAND on CS%d\n", cs);
- if (nandcs > GPMC_CS_NUM)
- nandcs = cs;
- }
- cs++;
- }
-
- if (nandcs > GPMC_CS_NUM) {
- printk(KERN_INFO "NAND: Unable to find configuration "
- "in GPMC\n ");
- return;
- }
-
- if (nandcs < GPMC_CS_NUM) {
- omap3beagle_nand_data.cs = nandcs;
- omap3beagle_nand_data.gpmc_cs_baseaddr = (void *)
- (gpmc_base_add + GPMC_CS0_BASE + nandcs * GPMC_CS_SIZE);
- omap3beagle_nand_data.gpmc_baseaddr = (void *) (gpmc_base_add);
-
- printk(KERN_INFO "Registering NAND on CS%d\n", nandcs);
- if (platform_device_register(&omap3beagle_nand_device) < 0)
- printk(KERN_ERR "Unable to register NAND device\n");
- }
-}
-
-static void __init omap3_mma7455l_init(void)
-{
- int ret;
-
- ret = gpio_request(OMAP3_AC_GPIO, "mma7455l");
- if (ret < 0) {
- printk(KERN_ERR "Failed to request GPIO %d for mma7455l IRQ\n", OMAP3_AC_GPIO);
- return;
- }
-
- gpio_direction_input(OMAP3_AC_GPIO);
-}
-
-static struct mma7455l_platform_data mma7455l_config = {
- .calibration_x = -4, //26 for Beagleboard
- .calibration_y = 28, //44 for Beagleboard
- .calibration_z = -28, //26 for Beagleboard
-};
-
-static struct omap2_mcspi_device_config mma7455l_mcspi_config = {
- .turbo_mode = 0,
- .single_channel = 1, /* 0: slave, 1: master */
-};
-
-static struct spi_board_info omap3_mma7455l_spi_board_info[] __initdata = {
- {
- .modalias = "mma7455l",
- .bus_num = 3,
- .chip_select = 0,
- .max_speed_hz = 200000,
- .irq = OMAP_GPIO_IRQ(OMAP3_AC_GPIO),
- .controller_data = &mma7455l_mcspi_config, //(void *) 135,
- .platform_data = &mma7455l_config,
- }
-};
-
-static int touchbook_backlight_brightness = 50;
-static struct omap_dm_timer *touchbook_backlight_pwm;
-
-static int touchbook_backlight_read(struct backlight_device *bd)
-{
- return touchbook_backlight_brightness;
-}
-
-static int touchbook_backlight_update(struct backlight_device *bd)
-{
- int value = bd->props.brightness;
- touchbook_backlight_brightness = value;
-
- /* Frequency calculation:
- - For 200Hz PWM, you want to load -164 (=> -32768Hz / 200Hz).
- - Minimum duty cycle for the backlight is 15%.
- - You have (164*0.85) => ~140 levels of brightness.
- */
-
- /* Convert from 0-100 range to 0-140 range */
- value = (value * 14) / 10 / 2;
-
- /* For maximum brightness, just stop the timer... */
- if(value != bd->props.max_brightness)
- {
- omap_dm_timer_set_load(touchbook_backlight_pwm, 1, -164);
- omap_dm_timer_set_match(touchbook_backlight_pwm, 1, -24 - value);
- omap_dm_timer_write_counter(touchbook_backlight_pwm, -1);
- //omap_dm_timer_stop(touchbook_backlight_pwm);
- omap_dm_timer_start(touchbook_backlight_pwm);
- }
- else
- omap_dm_timer_stop(touchbook_backlight_pwm);
-
-
- return 0;
-}
-
-static struct backlight_ops touchbook_backlight_properties = {
- .get_brightness = touchbook_backlight_read,
- .update_status = touchbook_backlight_update,
-};
-
-static void __init omap3_touchbook_backlight_init(void)
-{
- static struct backlight_device *bd;
- bd = backlight_device_register("touchbook", NULL, NULL, &touchbook_backlight_properties);
-
- if(bd)
- {
- touchbook_backlight_pwm = omap_dm_timer_request_specific(TB_BL_PWM_TIMER);
- omap_dm_timer_enable(touchbook_backlight_pwm);
- omap_dm_timer_set_source(touchbook_backlight_pwm, OMAP_TIMER_SRC_32_KHZ);
- omap_dm_timer_set_pwm(touchbook_backlight_pwm, 1, 1, OMAP_TIMER_TRIGGER_OVERFLOW_AND_COMPARE);
-
- bd->props.max_brightness = 100;
- bd->props.brightness = touchbook_backlight_brightness;
- }
-
- touchbook_backlight_update(bd);
-}
-
-static void omap3_touchbook_poweroff(void)
-{
- int r;
-
- r = gpio_request(TB_KILL_POWER_GPIO, "DVI reset");
- if (r < 0) {
- printk(KERN_ERR "Unable to get kill power GPIO\n");
- return;
- }
-
- gpio_direction_output(TB_KILL_POWER_GPIO, 0);
-}
-
-static void __init omap3_beagle_init(void)
-{
- pm_power_off = omap3_touchbook_poweroff;
-
- omap3_beagle_i2c_init();
- platform_add_devices(omap3_beagle_devices,
- ARRAY_SIZE(omap3_beagle_devices));
- omap_board_config = omap3_beagle_config;
- omap_board_config_size = ARRAY_SIZE(omap3_beagle_config);
- omap_serial_init();
-
- omap_cfg_reg(J25_34XX_GPIO170);
-
- omap3beagle_flash_init();
- beagle_display_init();
- omap3_touchbook_backlight_init();
-
- /* Touch Book */
- spi_register_board_info(omap3_ads7846_spi_board_info, ARRAY_SIZE(omap3_ads7846_spi_board_info));
- spi_register_board_info(omap3_mma7455l_spi_board_info, ARRAY_SIZE(omap3_mma7455l_spi_board_info));
-
- omap3_ads7846_init();
- omap3_mma7455l_init();
-
- usb_musb_init();
- usb_ehci_init();
-}
-
-static void __init omap3_beagle_map_io(void)
-{
- omap2_set_globals_343x();
- omap2_map_common_io();
-}
-
-MACHINE_START(OMAP3_BEAGLE, "OMAP3 Touch Book")
- /* Maintainer: Gregoire Gentil - http://www.alwaysinnovating.com */
- .phys_io = 0x48000000,
- .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
- .boot_params = 0x80000100,
- .map_io = omap3_beagle_map_io,
- .init_irq = omap3_beagle_init_irq,
- .init_machine = omap3_beagle_init,
- .timer = &omap_timer,
-MACHINE_END
diff --git a/recipes/linux/linux-omap-pm-2.6.29/omap3-touchbook/defconfig b/recipes/linux/linux-omap-pm-2.6.29/omap3-touchbook/defconfig
index e628b28d28..e59c557613 100644
--- a/recipes/linux/linux-omap-pm-2.6.29/omap3-touchbook/defconfig
+++ b/recipes/linux/linux-omap-pm-2.6.29/omap3-touchbook/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.29-omap1
-# Fri Sep 25 11:38:50 2009
+# Thu Nov 5 13:07:24 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -222,9 +222,10 @@ CONFIG_ARCH_OMAP3430=y
# CONFIG_MACH_OMAP_LDP is not set
# CONFIG_MACH_OMAP_3430SDP is not set
# CONFIG_MACH_OMAP3EVM is not set
-CONFIG_MACH_OMAP3_BEAGLE=y
+# CONFIG_MACH_OMAP3_BEAGLE is not set
# CONFIG_MACH_OVERO is not set
# CONFIG_MACH_OMAP3_PANDORA is not set
+CONFIG_MACH_OMAP3_TOUCHBOOK=y
#
# Processor Type
@@ -1849,7 +1850,7 @@ CONFIG_SND_USB_CAIAQ_INPUT=y
CONFIG_SND_SOC=y
CONFIG_SND_OMAP_SOC=y
CONFIG_SND_OMAP_SOC_MCBSP=y
-CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=y
+CONFIG_SND_OMAP_SOC_OMAP3_TOUCHBOOK=y
CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_ALL_CODECS is not set
CONFIG_SND_SOC_TWL4030=y
@@ -1871,6 +1872,7 @@ CONFIG_USB_HID=y
#
CONFIG_HID_COMPAT=y
CONFIG_HID_A4TECH=y
+CONFIG_HID_AI=y
CONFIG_HID_APPLE=y
CONFIG_HID_BELKIN=y
CONFIG_HID_CHERRY=y
diff --git a/recipes/linux/linux-omap-pm-2.6.29/omap3-touchbook/touchbook-sound.diff b/recipes/linux/linux-omap-pm-2.6.29/omap3-touchbook/touchbook-sound.diff
new file mode 100644
index 0000000000..919ad66c1d
--- /dev/null
+++ b/recipes/linux/linux-omap-pm-2.6.29/omap3-touchbook/touchbook-sound.diff
@@ -0,0 +1,18 @@
+--- /tmp/omap3beagle.c 2009-11-05 22:03:52.000000000 +0100
++++ git/sound/soc/omap/omap3beagle.c 2009-11-05 22:04:31.000000000 +0100
+@@ -139,13 +139,13 @@
+ static int __init omap3beagle_soc_init(void)
+ {
+ int ret;
+-
++/*
+ if (!machine_is_omap3_beagle()) {
+ pr_debug("Not OMAP3 Beagle!\n");
+ return -ENODEV;
+ }
+ pr_info("OMAP3 Beagle SoC init\n");
+-
++*/
+ omap3beagle_snd_device = platform_device_alloc("soc-audio", -1);
+ if (!omap3beagle_snd_device) {
+ printk(KERN_ERR "Platform device allocation failed\n");
diff --git a/recipes/linux/linux-omap-pm_2.6.29.bb b/recipes/linux/linux-omap-pm_2.6.29.bb
index 1c7f778a66..9112c7dd8a 100644
--- a/recipes/linux/linux-omap-pm_2.6.29.bb
+++ b/recipes/linux/linux-omap-pm_2.6.29.bb
@@ -195,6 +195,7 @@ SRC_URI_append_omap3-touchbook = " file://logo_linux_clut224.ppm \
file://touchbook-config.patch;patch=1 \
file://board-omap3touchbook.c \
# file://boot-trace-for-optimization.patch;patch=1 \
+ file://touchbook-sound.diff;patch=1 \
"
SRC_URI_append_omap3evm = " \
diff --git a/recipes/linux/linux-omap_2.6.29.bb b/recipes/linux/linux-omap_2.6.29.bb
index 130f9a8f69..1a0fc51c5a 100644
--- a/recipes/linux/linux-omap_2.6.29.bb
+++ b/recipes/linux/linux-omap_2.6.29.bb
@@ -131,6 +131,7 @@ SRC_URI_append = " \
file://musb/0027-musb-otg-timer-cleanup.patch;patch=1 \
file://musb/0028-musb-make-initial-HNP-roleswitch-work-v2.patch;patch=1 \
file://musb/0029-musb-support-disconnect-after-HNP-roleswitch.patch;patch=1 \
+ file://musb/0030-musb-fifo.patch;patch=1 \
file://isp/v4l/0001-V4L2-Add-COLORFX-user-control.patch;patch=1 \
file://isp/v4l/0002-V4L-Int-if-v4l2_int_device_try_attach_all-requires.patch;patch=1 \
file://isp/v4l/0003-V4L-Int-if-Dummy-slave.patch;patch=1 \
@@ -168,6 +169,10 @@ SRC_URI_append = " \
file://cache/copy-page-tweak.patch;patch=1 \
file://2.6.29_relocation_1.patch;patch=1 \
file://2.6.29_relocation_2.patch;patch=1 \
+ file://smsc/smsc911x-1.patch;patch=1 \
+ file://smsc/smsc911x-2.patch;patch=1 \
+ file://smsc/smsc911x-3.patch;patch=1 \
+ file://smsc/smsc911x-4.patch;patch=1 \
"
diff --git a/recipes/linux/linux-omap_2.6.32.bb b/recipes/linux/linux-omap_2.6.32.bb
new file mode 100644
index 0000000000..8da10530c7
--- /dev/null
+++ b/recipes/linux/linux-omap_2.6.32.bb
@@ -0,0 +1,32 @@
+require linux.inc
+
+DESCRIPTION = "Linux kernel for OMAP processors"
+KERNEL_IMAGETYPE = "uImage"
+
+COMPATIBLE_MACHINE = "omap5912osk|omap1710h3|omap2430sdp|omap2420h4|beagleboard|omap3evm|omap3-pandora|overo|omapzoom|omapzoom2|omap4430-sdp"
+
+DEFAULT_PREFERENCE = "-1"
+
+SRCREV = "82f1d8f22f2c65e70206e40a6f17688bf64a892c"
+
+FILESPATHPKG_prepend = "linux-omap-2.6.32:"
+
+# The main PR is now using MACHINE_KERNEL_PR, for omap3 see conf/machine/include/omap3.inc
+PV = "2.6.31+2.6.32-rc8+gitr${SRCREV}"
+#PV = "2.6.32"
+
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git;protocol=git \
+ file://defconfig"
+
+SRC_URI_append = " \
+file://usb/ehci.patch;patch=1 \
+file://usb/ehci-omap.c-mach-to-plat.diff;patch=1 \
+"
+
+SRC_URI_append_beagleboard = " file://logo_linux_clut224.ppm \
+"
+
+S = "${WORKDIR}/git"
+
+module_autoload_ohci-hcd_omap5912osk = "ohci-hcd"
+
diff --git a/recipes/linux/linux-openmoko-2.6.31/0001-DRM-for-platform-devices.patch b/recipes/linux/linux-openmoko-2.6.31/0001-DRM-for-platform-devices.patch
new file mode 100644
index 0000000000..2c9b611165
--- /dev/null
+++ b/recipes/linux/linux-openmoko-2.6.31/0001-DRM-for-platform-devices.patch
@@ -0,0 +1,458 @@
+From da270cf61e67d912b38e314719511efc4c2ea085 Mon Sep 17 00:00:00 2001
+From: Thomas White <taw@bitwiz.org.uk>
+Date: Tue, 20 Oct 2009 15:52:30 +0200
+Subject: [PATCH 1/4] DRM for platform devices
+
+This modifies the DRM core in a small number of places to allow platform
+devices to be used for direct rendering, alongside PCI devices.
+
+Signed-off-by: Thomas White <taw@bitwiz.org.uk>
+---
+ drivers/gpu/drm/Kconfig | 2 +-
+ drivers/gpu/drm/drm_bufs.c | 2 +-
+ drivers/gpu/drm/drm_drv.c | 27 ++++++++++
+ drivers/gpu/drm/drm_info.c | 27 ++++++++--
+ drivers/gpu/drm/drm_ioctl.c | 118 ++++++++++++++++++++++++++++++-------------
+ drivers/gpu/drm/drm_stub.c | 76 +++++++++++++++++++++++++++-
+ drivers/gpu/drm/drm_sysfs.c | 6 ++-
+ include/drm/drmP.h | 13 +++++
+ 8 files changed, 224 insertions(+), 47 deletions(-)
+
+diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig
+index 39b393d..cef3d2c 100644
+--- a/drivers/gpu/drm/Kconfig
++++ b/drivers/gpu/drm/Kconfig
+@@ -6,7 +6,7 @@
+ #
+ menuconfig DRM
+ tristate "Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)"
+- depends on (AGP || AGP=n) && PCI && !EMULATED_CMPXCHG && MMU
++ depends on (AGP || AGP=n) && !EMULATED_CMPXCHG && MMU
+ select I2C
+ select I2C_ALGOBIT
+ help
+diff --git a/drivers/gpu/drm/drm_bufs.c b/drivers/gpu/drm/drm_bufs.c
+index 6246e3f..b9f15bf 100644
+--- a/drivers/gpu/drm/drm_bufs.c
++++ b/drivers/gpu/drm/drm_bufs.c
+@@ -188,7 +188,7 @@ static int drm_addmap_core(struct drm_device * dev, resource_size_t offset,
+ switch (map->type) {
+ case _DRM_REGISTERS:
+ case _DRM_FRAME_BUFFER:
+-#if !defined(__sparc__) && !defined(__alpha__) && !defined(__ia64__) && !defined(__powerpc64__) && !defined(__x86_64__)
++#if !defined(__sparc__) && !defined(__alpha__) && !defined(__ia64__) && !defined(__powerpc64__) && !defined(__x86_64__) && !defined(__arm__)
+ if (map->offset + (map->size-1) < map->offset ||
+ map->offset < virt_to_phys(high_memory)) {
+ kfree(map);
+diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
+index b39d7bf..a7861e8 100644
+--- a/drivers/gpu/drm/drm_drv.c
++++ b/drivers/gpu/drm/drm_drv.c
+@@ -247,6 +247,7 @@ int drm_lastclose(struct drm_device * dev)
+ */
+ int drm_init(struct drm_driver *driver)
+ {
++#ifdef CONFIG_PCI
+ struct pci_dev *pdev = NULL;
+ const struct pci_device_id *pid;
+ int i;
+@@ -280,11 +281,37 @@ int drm_init(struct drm_driver *driver)
+ drm_get_dev(pdev, pid, driver);
+ }
+ }
++#endif
+ return 0;
+ }
+
+ EXPORT_SYMBOL(drm_init);
+
++/**
++ * Call this to associate a drm_driver with a platform_device.
++ *
++ * \return zero on success or a negative number on failure.
++ *
++ * This is a replacement for drm_init(), but for platform drivers.
++ * In this case, the caller must provide the matching platform_device
++ *
++ * since there is no physical bus to scan through.
++ *
++ * \sa drm_init
++ *
++ */
++int drm_platform_init(struct drm_driver *driver, struct platform_device *pdev,
++ void *priv)
++{
++ DRM_DEBUG("\n");
++
++ INIT_LIST_HEAD(&driver->device_list);
++
++ return drm_get_platform_dev(pdev, driver, priv);
++}
++
++EXPORT_SYMBOL(drm_platform_init);
++
+ void drm_exit(struct drm_driver *driver)
+ {
+ struct drm_device *dev, *tmp;
+diff --git a/drivers/gpu/drm/drm_info.c b/drivers/gpu/drm/drm_info.c
+index f0f6c6b..838c2ee 100644
+--- a/drivers/gpu/drm/drm_info.c
++++ b/drivers/gpu/drm/drm_info.c
+@@ -52,12 +52,28 @@ int drm_name_info(struct seq_file *m, void *data)
+ return 0;
+
+ if (master->unique) {
+- seq_printf(m, "%s %s %s\n",
+- dev->driver->pci_driver.name,
+- pci_name(dev->pdev), master->unique);
++
++ if (drm_core_is_platform(dev)) {
++ seq_printf(m, "%s %s %s\n",
++ dev->driver->name,
++ dev_name(&dev->platform_dev->dev),
++ master->unique);
++ } else {
++ seq_printf(m, "%s %s %s\n",
++ dev->driver->pci_driver.name,
++ pci_name(dev->pdev), master->unique);
++ }
++
+ } else {
+- seq_printf(m, "%s %s\n", dev->driver->pci_driver.name,
+- pci_name(dev->pdev));
++
++ if (drm_core_is_platform(dev)) {
++ seq_printf(m, "%s %s\n", dev->driver->name,
++ dev_name(&dev->platform_dev->dev));
++ } else {
++ seq_printf(m, "%s %s\n", dev->driver->pci_driver.name,
++ pci_name(dev->pdev));
++ }
++
+ }
+
+ return 0;
+@@ -325,4 +341,3 @@ int drm_vma_info(struct seq_file *m, void *data)
+ }
+
+ #endif
+-
+diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
+index 9b9ff46..133ef29 100644
+--- a/drivers/gpu/drm/drm_ioctl.c
++++ b/drivers/gpu/drm/drm_ioctl.c
+@@ -83,7 +83,6 @@ int drm_setunique(struct drm_device *dev, void *data,
+ {
+ struct drm_unique *u = data;
+ struct drm_master *master = file_priv->master;
+- int domain, bus, slot, func, ret;
+
+ if (master->unique_len || master->unique)
+ return -EBUSY;
+@@ -101,28 +100,46 @@ int drm_setunique(struct drm_device *dev, void *data,
+
+ master->unique[master->unique_len] = '\0';
+
+- dev->devname = kmalloc(strlen(dev->driver->pci_driver.name) +
+- strlen(master->unique) + 2, GFP_KERNEL);
+- if (!dev->devname)
+- return -ENOMEM;
++ if ( !drm_core_is_platform(dev) ) {
+
+- sprintf(dev->devname, "%s@%s", dev->driver->pci_driver.name,
+- master->unique);
++ int domain, bus, slot, func, ret;
+
+- /* Return error if the busid submitted doesn't match the device's actual
+- * busid.
+- */
+- ret = sscanf(master->unique, "PCI:%d:%d:%d", &bus, &slot, &func);
+- if (ret != 3)
+- return -EINVAL;
+- domain = bus >> 8;
+- bus &= 0xff;
++ /* PCI device */
++ dev->devname = kmalloc(strlen(dev->driver->pci_driver.name) +
++ strlen(master->unique) + 2, GFP_KERNEL);
++ if (!dev->devname)
++ return -ENOMEM;
+
+- if ((domain != drm_get_pci_domain(dev)) ||
+- (bus != dev->pdev->bus->number) ||
+- (slot != PCI_SLOT(dev->pdev->devfn)) ||
+- (func != PCI_FUNC(dev->pdev->devfn)))
+- return -EINVAL;
++ sprintf(dev->devname, "%s@%s", dev->driver->pci_driver.name,
++ master->unique);
++
++ /* Return error if the busid submitted doesn't match the
++ * device's actual busid.
++ */
++ ret = sscanf(master->unique, "PCI:%d:%d:%d", &bus, &slot, &func);
++ if (ret != 3)
++ return -EINVAL;
++ domain = bus >> 8;
++ bus &= 0xff;
++
++ if ((domain != drm_get_pci_domain(dev)) ||
++ (bus != dev->pdev->bus->number) ||
++ (slot != PCI_SLOT(dev->pdev->devfn)) ||
++ (func != PCI_FUNC(dev->pdev->devfn)))
++ return -EINVAL;
++
++ } else {
++
++ /* Platform device */
++ dev->devname = kmalloc(strlen(dev->driver->name) +
++ strlen(master->unique) + 2, GFP_KERNEL);
++ if (!dev->devname)
++ return -ENOMEM;
++
++ sprintf(dev->devname, "%s@%s", dev->driver->name,
++ master->unique);
++
++ }
+
+ return 0;
+ }
+@@ -141,23 +158,52 @@ static int drm_set_busid(struct drm_device *dev, struct drm_file *file_priv)
+ if (master->unique == NULL)
+ return -ENOMEM;
+
+- len = snprintf(master->unique, master->unique_len, "pci:%04x:%02x:%02x.%d",
+- drm_get_pci_domain(dev),
+- dev->pdev->bus->number,
+- PCI_SLOT(dev->pdev->devfn),
+- PCI_FUNC(dev->pdev->devfn));
+- if (len >= master->unique_len)
+- DRM_ERROR("buffer overflow");
+- else
+- master->unique_len = len;
+-
+- dev->devname = kmalloc(strlen(dev->driver->pci_driver.name) +
+- master->unique_len + 2, GFP_KERNEL);
+- if (dev->devname == NULL)
+- return -ENOMEM;
++ if ( !drm_core_is_platform(dev) ) {
++
++ /* PCI device */
+
+- sprintf(dev->devname, "%s@%s", dev->driver->pci_driver.name,
+- master->unique);
++ len = snprintf(master->unique, master->unique_len,
++ "pci:%04x:%02x:%02x.%d",
++ drm_get_pci_domain(dev),
++ dev->pdev->bus->number,
++ PCI_SLOT(dev->pdev->devfn),
++ PCI_FUNC(dev->pdev->devfn));
++ if (len >= master->unique_len)
++ DRM_ERROR("buffer overflow");
++ else
++ master->unique_len = len;
++
++ dev->devname = kmalloc(strlen(dev->driver->pci_driver.name) +
++ master->unique_len + 2, GFP_KERNEL);
++ if (dev->devname == NULL)
++ return -ENOMEM;
++
++ sprintf(dev->devname, "%s@%s", dev->driver->pci_driver.name,
++ master->unique);
++
++ } else {
++
++ /* Platform device */
++
++ int len;
++
++ len = snprintf(master->unique, master->unique_len,
++ "platform:%s", dev->platform_dev->name);
++
++ if (len >= master->unique_len)
++ DRM_ERROR("buffer overflow");
++ else
++ master->unique_len = len;
++
++ dev->devname = kmalloc(strlen(dev->driver->name)
++ + master->unique_len + 2, GFP_KERNEL);
++ if (dev->devname == NULL)
++ return -ENOMEM;
++
++ sprintf(dev->devname, "%s@%s", dev->driver->name,
++ master->unique);
++
++ }
+
+ return 0;
+ }
+diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
+index 55bb8a8..a7069ad 100644
+--- a/drivers/gpu/drm/drm_stub.c
++++ b/drivers/gpu/drm/drm_stub.c
+@@ -230,8 +230,10 @@ static int drm_fill_in_dev(struct drm_device * dev, struct pci_dev *pdev,
+ idr_init(&dev->drw_idr);
+
+ dev->pdev = pdev;
+- dev->pci_device = pdev->device;
+- dev->pci_vendor = pdev->vendor;
++ if (pdev) {
++ dev->pci_device = pdev->device;
++ dev->pci_vendor = pdev->vendor;
++ }
+
+ #ifdef __alpha__
+ dev->hose = pdev->sysdata;
+@@ -449,6 +451,76 @@ err_g1:
+ EXPORT_SYMBOL(drm_get_dev);
+
+ /**
++ *
++ * Register a platform device as a DRM device
++ *
++ * \param pdev - platform device structure
++ * \param driver - the matching drm_driver structure
++ * \return zero on success or a negative number on failure.
++ *
++ * Attempt to gets inter module "drm" information. If we are first
++ * then register the character device and inter module information.
++ * Try and register, if we fail to register, backout previous work.
++ *
++ * \sa drm_get_dev
++ */
++int drm_get_platform_dev(struct platform_device *pdev,
++ struct drm_driver *driver, void *priv)
++{
++ struct drm_device *dev;
++ int ret;
++ DRM_DEBUG("\n");
++
++ dev = kmalloc(sizeof(*dev), GFP_KERNEL);
++ if (!dev)
++ return -ENOMEM;
++ dev->dev_private = priv;
++
++ if ((ret = drm_fill_in_dev(dev, NULL, NULL, driver))) {
++ printk(KERN_ERR "DRM: Fill_in_dev failed.\n");
++ goto err_g1;
++ }
++ dev->platform_dev = pdev;
++
++ if (drm_core_check_feature(dev, DRIVER_MODESET)) {
++ ret = drm_get_minor(dev, &dev->control, DRM_MINOR_CONTROL);
++ if (ret)
++ goto err_g2;
++ }
++
++ if ((ret = drm_get_minor(dev, &dev->primary, DRM_MINOR_LEGACY)))
++ goto err_g3;
++
++ if (dev->driver->load) {
++ ret = dev->driver->load(dev, 0);
++ if (ret)
++ goto err_g3;
++ }
++
++ /* setup the grouping for the legacy output */
++ if (drm_core_check_feature(dev, DRIVER_MODESET)) {
++ ret = drm_mode_group_init_legacy_group(dev, &dev->primary->mode_group);
++ if (ret)
++ goto err_g3;
++ }
++
++ list_add_tail(&dev->driver_item, &driver->device_list);
++
++ DRM_INFO("Initialized %s %d.%d.%d %s on minor %d\n",
++ driver->name, driver->major, driver->minor, driver->patchlevel,
++ driver->date, dev->primary->index);
++
++ return 0;
++
++err_g3:
++ drm_put_minor(&dev->primary);
++err_g2:
++err_g1:
++ kfree(dev);
++ return ret;
++}
++
++/**
+ * Put a secondary minor number.
+ *
+ * \param sec_minor - structure to be released
+diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
+index f7a615b..fea2b71 100644
+--- a/drivers/gpu/drm/drm_sysfs.c
++++ b/drivers/gpu/drm/drm_sysfs.c
+@@ -482,7 +482,11 @@ int drm_sysfs_device_add(struct drm_minor *minor)
+ int err;
+ char *minor_str;
+
+- minor->kdev.parent = &minor->dev->pdev->dev;
++ if (minor->dev->pdev) {
++ minor->kdev.parent = &minor->dev->pdev->dev;
++ } else {
++ minor->kdev.parent = &minor->dev->platform_dev->dev;
++ }
+ minor->kdev.class = drm_class;
+ minor->kdev.release = drm_sysfs_device_release;
+ minor->kdev.devt = minor->device;
+diff --git a/include/drm/drmP.h b/include/drm/drmP.h
+index 45b67d9..66253f9 100644
+--- a/include/drm/drmP.h
++++ b/include/drm/drmP.h
+@@ -55,6 +55,7 @@
+ #include <linux/mm.h>
+ #include <linux/cdev.h>
+ #include <linux/mutex.h>
++#include <linux/platform_device.h>
+ #if defined(__alpha__) || defined(__powerpc__)
+ #include <asm/pgtable.h> /* For pte_wrprotect */
+ #endif
+@@ -113,6 +114,7 @@ extern void drm_ut_debug_printk(unsigned int request_level,
+ #define DRIVER_IRQ_VBL2 0x800
+ #define DRIVER_GEM 0x1000
+ #define DRIVER_MODESET 0x2000
++#define DRIVER_IS_PLATFORM 0x4000
+
+ /***********************************************************************/
+ /** \name Begin the DRM... */
+@@ -981,6 +983,7 @@ struct drm_device {
+ wait_queue_head_t buf_writers; /**< Processes waiting to ctx switch */
+
+ struct drm_agp_head *agp; /**< AGP data */
++ struct platform_device *platform_dev; /**< platform device structure */
+
+ struct pci_dev *pdev; /**< PCI device structure */
+ int pci_vendor; /**< PCI vendor id */
+@@ -1091,12 +1094,20 @@ static inline int drm_mtrr_del(int handle, unsigned long offset,
+ }
+ #endif
+
++static inline int drm_core_is_platform(struct drm_device *dev)
++{
++ return drm_core_check_feature(dev, DRIVER_IS_PLATFORM);
++}
++
+ /******************************************************************/
+ /** \name Internal function definitions */
+ /*@{*/
+
+ /* Driver support (drm_drv.h) */
+ extern int drm_init(struct drm_driver *driver);
++extern int drm_platform_init(struct drm_driver *driver,
++ struct platform_device *pdev,
++ void *dev_private);
+ extern void drm_exit(struct drm_driver *driver);
+ extern int drm_ioctl(struct inode *inode, struct file *filp,
+ unsigned int cmd, unsigned long arg);
+@@ -1314,6 +1325,8 @@ extern int drm_dropmaster_ioctl(struct drm_device *dev, void *data,
+ struct drm_file *file_priv);
+ struct drm_master *drm_master_create(struct drm_minor *minor);
+ extern struct drm_master *drm_master_get(struct drm_master *master);
++extern int drm_get_platform_dev(struct platform_device *pdev,
++ struct drm_driver *driver, void *priv);
+ extern void drm_master_put(struct drm_master **master);
+ extern int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
+ struct drm_driver *driver);
+--
+1.6.5.3
+
diff --git a/recipes/linux/linux-openmoko-2.6.31/0001-gta02_defconfig-Enable-GLAMO_DRM.patch b/recipes/linux/linux-openmoko-2.6.31/0001-gta02_defconfig-Enable-GLAMO_DRM.patch
new file mode 100644
index 0000000000..94fced1741
--- /dev/null
+++ b/recipes/linux/linux-openmoko-2.6.31/0001-gta02_defconfig-Enable-GLAMO_DRM.patch
@@ -0,0 +1,37 @@
+From 6cc1ca971b357db4760a40729728c05e403857d7 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Thu, 19 Nov 2009 11:39:51 +0100
+Subject: [PATCH] gta02_defconfig: Enable GLAMO_DRM
+
+---
+ arch/arm/configs/gta02_defconfig | 7 ++++++-
+ 1 files changed, 6 insertions(+), 1 deletions(-)
+
+diff --git a/arch/arm/configs/gta02_defconfig b/arch/arm/configs/gta02_defconfig
+index 0f53baf..1cce709 100644
+--- a/arch/arm/configs/gta02_defconfig
++++ b/arch/arm/configs/gta02_defconfig
+@@ -1000,14 +1000,19 @@ CONFIG_PCF50633_GPIO=y
+ # CONFIG_EZX_PCAP is not set
+ # CONFIG_MFD_PCF50606 is not set
+ CONFIG_MFD_GLAMO=y
+-CONFIG_MFD_GLAMO_FB=y
++# CONFIG_MFD_GLAMO_FB is not set
+ CONFIG_MFD_GLAMO_GPIO=y
+ CONFIG_MFD_GLAMO_MCI=y
++CONFIG_MFD_GLAMO_DRM=y
+ # CONFIG_MEDIA_SUPPORT is not set
+
+ #
+ # Graphics support
+ #
++CONFIG_DRM=y
++# CONFIG_DRM_MGA is not set
++# CONFIG_DRM_VIA is not set
++# CONFIG_DRM_SAVAGE is not set
+ # CONFIG_VGASTATE is not set
+ CONFIG_VIDEO_OUTPUT_CONTROL=y
+ CONFIG_FB=y
+--
+1.6.5.3
+
diff --git a/recipes/linux/linux-openmoko-2.6.31/0001-wm8753-fix-build-with-gcc-4.4.2-which-works-ok-with-.patch b/recipes/linux/linux-openmoko-2.6.31/0001-wm8753-fix-build-with-gcc-4.4.2-which-works-ok-with-.patch
new file mode 100644
index 0000000000..c6b989f997
--- /dev/null
+++ b/recipes/linux/linux-openmoko-2.6.31/0001-wm8753-fix-build-with-gcc-4.4.2-which-works-ok-with-.patch
@@ -0,0 +1,27 @@
+From 63b619f9466dc36648d082dc4e4fad714a343d80 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Sat, 7 Nov 2009 20:33:06 +0100
+Subject: [PATCH 1/5] wm8753: fix build with gcc-4.4.2, which works ok with 4.1.2
+
+---
+ sound/soc/codecs/wm8753.c | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/sound/soc/codecs/wm8753.c b/sound/soc/codecs/wm8753.c
+index d80d414..1e685b2 100644
+--- a/sound/soc/codecs/wm8753.c
++++ b/sound/soc/codecs/wm8753.c
+@@ -709,7 +709,9 @@ static void pll_factors(struct _pll_div *pll_div, unsigned int target,
+ Nmod = target % source;
+ Kpart = FIXED_PLL_SIZE * (long long)Nmod;
+
+- do_div(Kpart, source);
++ // with this, gcc-4.4.2 emits the reference to uldivmod, but then optimizes it out
++ //do_div(Kpart, source);
++ __do_div_asm(Kpart, source);
+
+ K = Kpart & 0xFFFFFFFF;
+
+--
+1.6.5.2
+
diff --git a/recipes/linux/linux-openmoko-2.6.31/0002-Glamo-DRM-and-KMS-driver.patch b/recipes/linux/linux-openmoko-2.6.31/0002-Glamo-DRM-and-KMS-driver.patch
new file mode 100644
index 0000000000..4a837e9b08
--- /dev/null
+++ b/recipes/linux/linux-openmoko-2.6.31/0002-Glamo-DRM-and-KMS-driver.patch
@@ -0,0 +1,3818 @@
+From 01435b6f8fba2031e6941756a6a4e42be553f4a0 Mon Sep 17 00:00:00 2001
+From: Thomas White <taw@bitwiz.org.uk>
+Date: Tue, 20 Oct 2009 16:14:55 +0200
+Subject: [PATCH 2/4] Glamo DRM and KMS driver
+
+This adds the Glamo DRM and KMS driver, but not the modifications needed
+elsewhere to support it.
+
+Signed-off-by: Thomas White <taw@bitwiz.org.uk>
+---
+ drivers/gpu/drm/drm_stub.c | 2 +-
+ drivers/mfd/glamo/Kconfig | 15 +
+ drivers/mfd/glamo/Makefile | 5 +-
+ drivers/mfd/glamo/glamo-buffer.c | 372 ++++++++++++++
+ drivers/mfd/glamo/glamo-buffer.h | 60 +++
+ drivers/mfd/glamo/glamo-cmdq.c | 528 ++++++++++++++++++++
+ drivers/mfd/glamo/glamo-cmdq.h | 49 ++
+ drivers/mfd/glamo/glamo-display.c | 875 +++++++++++++++++++++++++++++++++
+ drivers/mfd/glamo/glamo-display.h | 39 ++
+ drivers/mfd/glamo/glamo-drm-drv.c | 453 +++++++++++++++++
+ drivers/mfd/glamo/glamo-drm-private.h | 156 ++++++
+ drivers/mfd/glamo/glamo-fence.c | 329 +++++++++++++
+ drivers/mfd/glamo/glamo-fence.h | 36 ++
+ drivers/mfd/glamo/glamo-kms-fb.c | 540 ++++++++++++++++++++
+ drivers/mfd/glamo/glamo-kms-fb.h | 41 ++
+ include/drm/Kbuild | 1 +
+ include/drm/glamo_drm.h | 153 ++++++
+ 17 files changed, 3652 insertions(+), 2 deletions(-)
+ create mode 100644 drivers/mfd/glamo/glamo-buffer.c
+ create mode 100644 drivers/mfd/glamo/glamo-buffer.h
+ create mode 100644 drivers/mfd/glamo/glamo-cmdq.c
+ create mode 100644 drivers/mfd/glamo/glamo-cmdq.h
+ create mode 100644 drivers/mfd/glamo/glamo-display.c
+ create mode 100644 drivers/mfd/glamo/glamo-display.h
+ create mode 100644 drivers/mfd/glamo/glamo-drm-drv.c
+ create mode 100644 drivers/mfd/glamo/glamo-drm-private.h
+ create mode 100644 drivers/mfd/glamo/glamo-fence.c
+ create mode 100644 drivers/mfd/glamo/glamo-fence.h
+ create mode 100644 drivers/mfd/glamo/glamo-kms-fb.c
+ create mode 100644 drivers/mfd/glamo/glamo-kms-fb.h
+ create mode 100644 include/drm/glamo_drm.h
+
+diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
+index a7069ad..5e3d65a 100644
+--- a/drivers/gpu/drm/drm_stub.c
++++ b/drivers/gpu/drm/drm_stub.c
+@@ -471,7 +471,7 @@ int drm_get_platform_dev(struct platform_device *pdev,
+ int ret;
+ DRM_DEBUG("\n");
+
+- dev = kmalloc(sizeof(*dev), GFP_KERNEL);
++ dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ if (!dev)
+ return -ENOMEM;
+ dev->dev_private = priv;
+diff --git a/drivers/mfd/glamo/Kconfig b/drivers/mfd/glamo/Kconfig
+index 8c93bcb..375e5db 100644
+--- a/drivers/mfd/glamo/Kconfig
++++ b/drivers/mfd/glamo/Kconfig
+@@ -39,3 +39,18 @@ config MFD_GLAMO_MCI
+ neo1973 GTA-02.
+
+ If unsure, say N.
++
++config MFD_GLAMO_DRM
++ tristate "Glamo direct rendering and kernel modesetting support"
++ depends on MFD_GLAMO && DRM
++ select FB_CFB_FILLRECT
++ select FB_CFB_COPYAREA
++ select FB_CFB_IMAGEBLIT
++ help
++ Direct Rendering Manager interface for the S-Media Glamo chip, as
++ used in Openmoko FreeRunner (GTA02).
++
++ This DRM driver includes kernel modesetting (KMS) support. As such,
++ do not select MFD_GLAMO_FB above if you choose to enable this option.
++
++ If unsure, say N.
+diff --git a/drivers/mfd/glamo/Makefile b/drivers/mfd/glamo/Makefile
+index ebf26f7..d5ebf8f 100644
+--- a/drivers/mfd/glamo/Makefile
++++ b/drivers/mfd/glamo/Makefile
+@@ -1,5 +1,5 @@
+ #
+-# Makefile for the Smedia Glamo framebuffer driver
++# Makefile for the Smedia Glamo driver(s)
+ #
+
+ obj-$(CONFIG_MFD_GLAMO) += glamo-core.o
+@@ -8,4 +8,7 @@ obj-$(CONFIG_MFD_GLAMO_SPI) += glamo-spi.o
+
+ obj-$(CONFIG_MFD_GLAMO_FB) += glamo-fb.o
+ obj-$(CONFIG_MFD_GLAMO_MCI) += glamo-mci.o
++obj-$(CONFIG_MFD_GLAMO_DRM) += glamo-drm.o
+
++glamo-drm-objs := glamo-drm-drv.o glamo-cmdq.o glamo-buffer.o \
++ glamo-display.o glamo-kms-fb.o glamo-fence.o
+diff --git a/drivers/mfd/glamo/glamo-buffer.c b/drivers/mfd/glamo/glamo-buffer.c
+new file mode 100644
+index 0000000..45500d3
+--- /dev/null
++++ b/drivers/mfd/glamo/glamo-buffer.c
+@@ -0,0 +1,372 @@
++/*
++ * SMedia Glamo 336x/337x memory management
++ *
++ * Copyright (c) 2009 Thomas White <taw@bitwiz.org.uk>
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ *
++ *
++ * Memory mapping functions based on i915_gem.c, to which the following
++ * notice applies:
++ *
++ * Copyright © 2008 Intel Corporation
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the "Software"),
++ * to deal in the Software without restriction, including without limitation
++ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
++ * and/or sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice (including the next
++ * paragraph) shall be included in all copies or substantial portions of the
++ * Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
++ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
++ * IN THE SOFTWARE.
++ *
++ * Authors:
++ * Eric Anholt <eric@anholt.net>
++ */
++
++
++#include <drm/drmP.h>
++#include <drm/glamo_drm.h>
++
++#include "glamo-drm-private.h"
++#include "glamo-cmdq.h" /* For glamo_cmdq_blank() */
++
++
++struct drm_gem_object *glamo_gem_object_alloc(struct drm_device *dev, int size,
++ int alignment)
++{
++ struct drm_gem_object *obj;
++ struct glamodrm_handle *gdrm;
++ struct drm_glamo_gem_object *gobj;
++
++ gdrm = dev->dev_private;
++
++ size = roundup(size, PAGE_SIZE);
++
++ obj = drm_gem_object_alloc(dev, size);
++ if (obj == NULL) return NULL;
++
++ /* See glamodrm_gem_init_object() below */
++ gobj = obj->driver_private;
++
++ /* Allocate memory for this object in VRAM */
++ gobj->block = drm_mm_search_free(gdrm->mmgr, size, alignment, 1);
++ if (!gobj->block) {
++ goto fail;
++ }
++ gobj->block = drm_mm_get_block(gobj->block, size, alignment);
++ if (!gobj->block) {
++ goto fail;
++ }
++
++ /* Arrange for the contents to be set to zero */
++ glamo_cmdq_blank(gdrm, obj);
++
++ return obj;
++
++fail:
++ mutex_lock(&dev->struct_mutex);
++ drm_gem_object_unreference(obj);
++ mutex_unlock(&dev->struct_mutex);
++ printk(KERN_INFO "[glamo-drm] Failed to allocate object\n");
++
++ return NULL;
++}
++
++
++int glamo_ioctl_gem_create(struct drm_device *dev, void *data,
++ struct drm_file *file_priv)
++{
++ struct drm_glamo_gem_create *args = data;
++ struct drm_gem_object *obj;
++ int handle, ret, alignment, size;
++
++ /* Alignment must be a non-zero multiple of 2 */
++ alignment = args->alignment;
++ if ( alignment < 2 ) alignment = 2;
++ if ( alignment % 2 ) alignment *= 2;
++
++ /* Size must be similarly sanitised */
++ size = args->size;
++ if ( size < 2 ) size = 2;
++ if ( size % 2 ) size += 1;
++
++ /* Create an object */
++ obj = glamo_gem_object_alloc(dev, size, alignment);
++ if ( obj == NULL ) return -ENOMEM;
++
++ /* Create a handle for it */
++ ret = drm_gem_handle_create(file_priv, obj, &handle);
++ mutex_lock(&dev->struct_mutex);
++ drm_gem_object_handle_unreference(obj);
++ mutex_unlock(&dev->struct_mutex);
++ if (ret) goto fail;
++
++ /* Return */
++ args->handle = handle;
++ return 0;
++
++fail:
++ mutex_lock(&dev->struct_mutex);
++ drm_gem_object_unreference(obj);
++ mutex_unlock(&dev->struct_mutex);
++ printk(KERN_INFO "[glamo-drm] Failed to allocate object\n");
++ return ret;
++}
++
++
++int glamodrm_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
++{
++ struct drm_gem_object *obj = vma->vm_private_data;
++ struct drm_device *dev = obj->dev;
++ struct drm_glamo_gem_object *gobj = obj->driver_private;
++ struct glamodrm_handle *gdrm = dev->dev_private;
++ pgoff_t page_offset;
++ unsigned long pfn;
++ int ret = 0;
++
++ /* We don't use vmf->pgoff since that has the fake offset */
++ page_offset = ((unsigned long)vmf->virtual_address - vma->vm_start) >>
++ PAGE_SHIFT;
++
++ mutex_lock(&dev->struct_mutex);
++ pfn = ((gdrm->vram->start + GLAMO_OFFSET_FB + gobj->block->start)
++ >> PAGE_SHIFT) + page_offset;
++ ret = vm_insert_pfn(vma, (unsigned long)vmf->virtual_address, pfn);
++ mutex_unlock(&dev->struct_mutex);
++
++ switch (ret) {
++ case -ENOMEM:
++ case -EAGAIN:
++ return VM_FAULT_OOM;
++ case -EFAULT:
++ case -EBUSY:
++ DRM_ERROR("can't insert pfn?? fault or busy...\n");
++ return VM_FAULT_SIGBUS;
++ default:
++ return VM_FAULT_NOPAGE;
++ }
++}
++
++
++static int glamo_gem_create_mmap_offset(struct drm_gem_object *obj)
++{
++ struct drm_device *dev = obj->dev;
++ struct drm_gem_mm *mm = dev->mm_private;
++ struct drm_glamo_gem_object *gobj = obj->driver_private;
++ struct drm_map_list *list;
++ struct drm_local_map *map;
++ int ret = 0;
++
++ /* Set the object up for mmap'ing */
++ list = &obj->map_list;
++ list->map = kzalloc(sizeof(struct drm_map_list), GFP_KERNEL);
++ if (!list->map)
++ return -ENOMEM;
++
++ map = list->map;
++ map->type = _DRM_GEM;
++ map->size = obj->size;
++ map->handle = obj;
++
++ /* Get a DRM GEM mmap offset allocated... */
++ list->file_offset_node = drm_mm_search_free(&mm->offset_manager,
++ obj->size / PAGE_SIZE, 0, 0);
++ if (!list->file_offset_node) {
++ DRM_ERROR("failed to allocate offset for bo %d\n", obj->name);
++ ret = -ENOMEM;
++ goto out_free_list;
++ }
++
++ list->file_offset_node = drm_mm_get_block(list->file_offset_node,
++ obj->size / PAGE_SIZE, 0);
++ if (!list->file_offset_node) {
++ ret = -ENOMEM;
++ goto out_free_list;
++ }
++
++ list->hash.key = list->file_offset_node->start;
++ if (drm_ht_insert_item(&mm->offset_hash, &list->hash)) {
++ DRM_ERROR("failed to add to map hash\n");
++ goto out_free_mm;
++ }
++
++ /* By now we should be all set, any drm_mmap request on the offset
++ * below will get to our mmap & fault handler */
++ gobj->mmap_offset = ((uint64_t) list->hash.key) << PAGE_SHIFT;
++
++ return 0;
++
++out_free_mm:
++ drm_mm_put_block(list->file_offset_node);
++out_free_list:
++ kfree(list->map);
++
++ return ret;
++}
++
++
++int glamo_ioctl_gem_mmap(struct drm_device *dev, void *data,
++ struct drm_file *file_priv)
++{
++ struct drm_glamo_gem_mmap *args = data;
++ struct drm_gem_object *obj;
++ struct drm_glamo_gem_object *gobj;
++ int ret;
++
++ obj = drm_gem_object_lookup(dev, file_priv, args->handle);
++ if (obj == NULL)
++ return -EBADF;
++
++ mutex_lock(&dev->struct_mutex);
++
++ gobj = obj->driver_private;
++ if (!gobj->mmap_offset) {
++ ret = glamo_gem_create_mmap_offset(obj);
++ if (ret) {
++ mutex_unlock(&dev->struct_mutex);
++ return ret;
++ }
++ }
++
++ args->offset = gobj->mmap_offset;
++
++ drm_gem_object_unreference(obj);
++ mutex_unlock(&dev->struct_mutex);
++
++ return 0;
++}
++
++
++int glamo_ioctl_gem_pin(struct drm_device *dev, void *data,
++ struct drm_file *file_priv)
++{
++ printk(KERN_INFO "glamo_ioctl_gem_pin\n");
++ return 0;
++}
++
++
++int glamo_ioctl_gem_unpin(struct drm_device *dev, void *data,
++ struct drm_file *file_priv)
++{
++ printk(KERN_INFO "glamo_ioctl_gem_unpin\n");
++ return 0;
++}
++
++
++int glamo_ioctl_gem_pread(struct drm_device *dev, void *data,
++ struct drm_file *file_priv)
++{
++ printk(KERN_INFO "glamo_ioctl_gem_pread\n");
++ return 0;
++}
++
++
++int glamo_ioctl_gem_pwrite(struct drm_device *dev, void *data,
++ struct drm_file *file_priv)
++{
++ printk(KERN_INFO "glamo_ioctl_gem_pwrite\n");
++ return 0;
++}
++
++
++int glamodrm_gem_init_object(struct drm_gem_object *obj)
++{
++ struct drm_glamo_gem_object *gobj;
++
++ /* Allocate a private structure */
++ gobj = kzalloc(sizeof(*gobj), GFP_KERNEL);
++ if (!gobj) return -ENOMEM;
++
++ obj->driver_private = gobj;
++ gobj->obj = obj;
++
++ return 0;
++}
++
++
++void glamodrm_gem_free_object(struct drm_gem_object *obj)
++{
++ struct drm_glamo_gem_object *gobj;
++ struct drm_map_list *list;
++ struct drm_device *dev;
++ struct drm_gem_mm *mm;
++ struct drm_local_map *map;
++
++ dev = obj->dev;
++ mm = dev->mm_private;
++ gobj = obj->driver_private;
++
++ /* Free the VRAM */
++ if ( gobj->block != NULL ) {
++ drm_mm_put_block(gobj->block);
++ }
++
++ /* Release mappings */
++ list = &obj->map_list;
++ drm_ht_remove_item(&mm->offset_hash, &list->hash);
++ if (list->file_offset_node) {
++ drm_mm_put_block(list->file_offset_node);
++ list->file_offset_node = NULL;
++ }
++ map = list->map;
++ if (map) {
++ kfree(map);
++ list->map = NULL;
++ }
++
++ /* Free the private structure */
++ kfree(obj->driver_private);
++}
++
++
++/* Memory management initialisation */
++int glamo_buffer_init(struct glamodrm_handle *gdrm)
++{
++ gdrm->mmgr = kzalloc(sizeof(struct drm_mm), GFP_KERNEL);
++ drm_mm_init(gdrm->mmgr, 0, gdrm->vram_size);
++
++ /* Reserve a scratch buffer. We do this outside the protections
++ * of the other GEM code. To do this safely, the allocation must
++ * be a multiple of PAGE_SIZE. */
++ gdrm->scratch = drm_mm_search_free(gdrm->mmgr, PAGE_SIZE, 4, 1);
++ if ( gdrm->scratch ) {
++ gdrm->scratch = drm_mm_get_block(gdrm->scratch, PAGE_SIZE, 4);
++ }
++ if ( !gdrm->scratch ) {
++ printk(KERN_WARNING "[glamo-drm] Couldn't allocate"
++ " scratch buffer!\n");
++ }
++
++ return 0;
++}
++
++
++/* Memory management finalisation */
++int glamo_buffer_final(struct glamodrm_handle *gdrm)
++{
++ drm_mm_takedown(gdrm->mmgr);
++ kfree(gdrm->mmgr);
++ return 0;
++}
+diff --git a/drivers/mfd/glamo/glamo-buffer.h b/drivers/mfd/glamo/glamo-buffer.h
+new file mode 100644
+index 0000000..41f18fd
+--- /dev/null
++++ b/drivers/mfd/glamo/glamo-buffer.h
+@@ -0,0 +1,60 @@
++/*
++ * SMedia Glamo 336x/337x memory management
++ *
++ * Copyright (c) 2009 Thomas White <taw@bitwiz.org.uk>
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ * MA 02111-1307 USA
++ *
++ */
++
++#ifndef __GLAMO_BUFFER_H
++#define __GLAMO_BUFFER_H
++
++#include <drm/drmP.h>
++
++#include "glamo-drm-private.h"
++
++extern int glamo_buffer_init(struct glamodrm_handle *gdrm);
++extern int glamo_buffer_final(struct glamodrm_handle *gdrm);
++
++extern int glamodrm_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf);
++
++extern int glamodrm_gem_init_object(struct drm_gem_object *obj);
++
++extern void glamodrm_gem_free_object(struct drm_gem_object *obj);
++
++extern struct drm_gem_object *glamo_gem_object_alloc(struct drm_device *dev,
++ int size, int alignment);
++
++extern int glamo_ioctl_gem_create(struct drm_device *dev, void *data,
++ struct drm_file *file_priv);
++
++extern int glamo_ioctl_gem_mmap(struct drm_device *dev, void *data,
++ struct drm_file *file_priv);
++
++extern int glamo_ioctl_gem_pin(struct drm_device *dev, void *data,
++ struct drm_file *file_priv);
++
++extern int glamo_ioctl_gem_unpin(struct drm_device *dev, void *data,
++ struct drm_file *file_priv);
++
++extern int glamo_ioctl_gem_pread(struct drm_device *dev, void *data,
++ struct drm_file *file_priv);
++
++extern int glamo_ioctl_gem_pwrite(struct drm_device *dev, void *data,
++ struct drm_file *file_priv);
++
++#endif /* __GLAMO_BUFFER_H */
+diff --git a/drivers/mfd/glamo/glamo-cmdq.c b/drivers/mfd/glamo/glamo-cmdq.c
+new file mode 100644
+index 0000000..caedc27
+--- /dev/null
++++ b/drivers/mfd/glamo/glamo-cmdq.c
+@@ -0,0 +1,528 @@
++/*
++ * SMedia Glamo 336x/337x command queue handling
++ *
++ * Copyright (C) 2008-2009 Thomas White <taw@bitwiz.org.uk>
++ * Copyright (C) 2009 Andreas Pokorny <andreas.pokorny@gmail.com>
++ * Based on xf86-video-glamo (see below for details)
++ *
++ * All rights reserved.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ * MA 02111-1307 USA
++ *
++ * Command queue handling functions based on those from xf86-video-glamo, to
++ * which the following licence applies:
++ *
++ * Copyright 2007 OpenMoko, Inc.
++ * Copyright © 2009 Lars-Peter Clausen <lars@metafoo.de>
++ *
++ * This driver is based on Xati,
++ * Copyright 2004 Eric Anholt
++ *
++ * Permission to use, copy, modify, distribute, and sell this software and its
++ * documentation for any purpose is hereby granted without fee, provided that
++ * the above copyright notice appear in all copies and that both that copyright
++ * notice and this permission notice appear in supporting documentation, and
++ * that the name of the copyright holders not be used in advertising or
++ * publicity pertaining to distribution of the software without specific,
++ * written prior permission. The copyright holders make no representations
++ * about the suitability of this software for any purpose. It is provided "as
++ * is" without express or implied warranty.
++ *
++ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
++ * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
++ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
++ * OF THIS SOFTWARE.
++ */
++
++
++#include <drm/drmP.h>
++#include <drm/glamo_drm.h>
++
++#include "glamo-core.h"
++#include "glamo-drm-private.h"
++#include "glamo-regs.h"
++
++
++static inline void reg_write(struct glamodrm_handle *gdrm,
++ u_int16_t reg, u_int16_t val)
++{
++ iowrite16(val, gdrm->reg_base + reg);
++}
++
++
++static inline u16 reg_read(struct glamodrm_handle *gdrm, u_int16_t reg)
++{
++ return ioread16(gdrm->reg_base + reg);
++}
++
++
++static u32 glamo_get_read(struct glamodrm_handle *gdrm)
++{
++ /* we could turn off clock here */
++ u32 ring_read = reg_read(gdrm, GLAMO_REG_CMDQ_READ_ADDRL);
++ ring_read |= (reg_read(gdrm, GLAMO_REG_CMDQ_READ_ADDRH) & 0x7) << 16;
++
++ return ring_read;
++}
++
++
++static u32 glamo_get_write(struct glamodrm_handle *gdrm)
++{
++ u32 ring_write = reg_read(gdrm, GLAMO_REG_CMDQ_WRITE_ADDRL);
++ ring_write |= (reg_read(gdrm, GLAMO_REG_CMDQ_WRITE_ADDRH) & 0x7) << 16;
++
++ return ring_write;
++}
++
++
++/* Add commands to the ring buffer */
++int glamo_add_to_ring(struct glamodrm_handle *gdrm, u16 *addr,
++ unsigned int count)
++{
++ size_t ring_write, ring_read;
++ size_t new_ring_write;
++
++ if ( count >= GLAMO_CMDQ_SIZE ) {
++ printk(KERN_WARNING "[glamo-drm] CmdQ submission too large\n");
++ return -EINVAL;
++ }
++
++ down(&gdrm->add_to_ring);
++
++ ring_write = glamo_get_write(gdrm);
++
++ /* Calculate where we'll end up */
++ new_ring_write = (ring_write + count) % GLAMO_CMDQ_SIZE;
++
++ /* Wait until there is enough space to queue the cmd buffer */
++ if (new_ring_write > ring_write) {
++ /* Loop while the read pointer is between the old and new
++ * positions */
++ do {
++ ring_read = glamo_get_read(gdrm);
++ } while (ring_read > ring_write && ring_read < new_ring_write);
++ } else {
++ /* Same, but kind of inside-out */
++ do {
++ ring_read = glamo_get_read(gdrm);
++ } while (ring_read > ring_write || ring_read < new_ring_write);
++ }
++
++ /* Are we about to wrap around? */
++ if (ring_write >= new_ring_write) {
++
++ u32 rest_size;
++
++ /* Wrap around */
++ rest_size = GLAMO_CMDQ_SIZE - ring_write; /* Space left */
++
++ /* Write from current position to end */
++ memcpy_toio(gdrm->cmdq_base+ring_write, addr, rest_size);
++
++ /* Write from start */
++ memcpy_toio(gdrm->cmdq_base, addr+(rest_size>>1),
++ count - rest_size);
++
++ /* ring_write being 0 will result in a deadlock because the
++ * cmdq read will never stop. To avoid such an behaviour insert
++ * an empty instruction. */
++ if (new_ring_write == 0) {
++ iowrite16(0x0000, gdrm->cmdq_base);
++ iowrite16(0x0000, gdrm->cmdq_base + 2);
++ new_ring_write = 4;
++ }
++
++ } else {
++
++ memcpy_toio(gdrm->cmdq_base+ring_write, addr, count);
++
++ }
++
++ reg_write(gdrm, GLAMO_REG_CMDQ_WRITE_ADDRH,
++ (new_ring_write >> 16) & 0x7f);
++ reg_write(gdrm, GLAMO_REG_CMDQ_WRITE_ADDRL,
++ new_ring_write & 0xffff);
++
++ if ( !(reg_read(gdrm, GLAMO_REG_CMDQ_STATUS) & 1<<3) ) {
++ printk(KERN_ERR "[glamo-drm] CmdQ decode failure.\n");
++ }
++
++ up(&gdrm->add_to_ring);
++
++ return 0;
++}
++
++
++/* Return true for a legal sequence of commands, otherwise false */
++static int glamo_sanitize_buffer(u16 *cmds, unsigned int count)
++{
++ /* XXX FIXME TODO: Implementation... */
++ return 1;
++}
++
++
++/* Substitute the real addresses in VRAM for any required buffer objects */
++static int glamo_do_relocation(struct glamodrm_handle *gdrm,
++ drm_glamo_cmd_buffer_t *cbuf, u16 *cmds,
++ struct drm_device *dev,
++ struct drm_file *file_priv)
++{
++ u32 *handles;
++ int *offsets;
++ int nobjs = cbuf->nobjs;
++ int i;
++
++ if ( nobjs > 32 ) return -EINVAL; /* Get real... */
++
++ handles = kmalloc(nobjs*sizeof(u32), GFP_KERNEL);
++ if ( handles == NULL ) return -1;
++ if ( copy_from_user(handles, cbuf->objs, nobjs*sizeof(u32)) )
++ return -1;
++
++ offsets = kmalloc(nobjs*sizeof(int), GFP_KERNEL);
++ if ( offsets == NULL ) return -1;
++ if ( copy_from_user(offsets, cbuf->obj_pos, nobjs*sizeof(int)) )
++ return -1;
++
++ for ( i=0; i<nobjs; i++ ) {
++
++ u32 handle = handles[i];
++ int offset = offsets[i];
++ struct drm_gem_object *obj;
++ struct drm_glamo_gem_object *gobj;
++ u32 addr;
++ u16 addr_low, addr_high;
++
++ if ( offset > cbuf->bufsz ) {
++ printk(KERN_WARNING "[glamo-drm] Offset out of range"
++ " for this relocation!\n");
++ goto fail;
++ }
++
++ obj = drm_gem_object_lookup(dev, file_priv, handle);
++ if ( obj == NULL ) return -1;
++
++ /* Unref the object now, or it'll never get freed.
++ * This should really happen after the GPU has finished
++ * the commands which are about to be submitted. */
++ drm_gem_object_unreference(obj);
++
++ gobj = obj->driver_private;
++ if ( gobj == NULL ) {
++ printk(KERN_WARNING "[glamo-drm] This object has no"
++ " private data!\n");
++ goto fail;
++ }
++
++ addr = GLAMO_OFFSET_FB + gobj->block->start;
++ addr_low = addr & 0xffff;
++ addr_high = (addr >> 16) & 0x7f;
++
++ /* FIXME: Should really check that the register is a
++ * valid one for this relocation. */
++
++ *(cmds+(offset/2)+1) = addr_low;
++ *(cmds+(offset/2)+3) = addr_high;
++
++ }
++
++ kfree(handles);
++ kfree(offsets);
++ return 0;
++
++fail:
++ kfree(handles);
++ kfree(offsets);
++ return -1;
++}
++
++
++/* This is DRM_IOCTL_GLAMO_CMDBUF */
++int glamo_ioctl_cmdbuf(struct drm_device *dev, void *data,
++ struct drm_file *file_priv)
++{
++ int ret = 0;
++ struct glamodrm_handle *gdrm;
++ unsigned int count;
++ drm_glamo_cmd_buffer_t *cbuf = data;
++ u16 *cmds;
++
++ gdrm = dev->dev_private;
++
++ count = cbuf->bufsz;
++
++ if ( count > PAGE_SIZE ) return -EINVAL;
++
++ cmds = kmalloc(count, GFP_KERNEL);
++ if ( cmds == NULL ) return -ENOMEM;
++ if ( copy_from_user(cmds, cbuf->buf, count) ) {
++ printk(KERN_WARNING "[glamo-drm] copy from user failed\n");
++ ret = -EINVAL;
++ goto cleanup;
++ }
++
++ /* Check the buffer isn't going to tell Glamo to enact naughtiness */
++ if ( !glamo_sanitize_buffer(cmds, count) ) {
++ printk(KERN_WARNING "[glamo-drm] sanitize buffer failed\n");
++ ret = -EINVAL;
++ goto cleanup;
++ }
++
++ /* Perform relocation, if necessary */
++ if ( cbuf->nobjs ) {
++ if ( glamo_do_relocation(gdrm, cbuf, cmds, dev, file_priv) )
++ {
++ printk(KERN_WARNING "[glamo-drm] Relocation failed\n");
++ ret = -EINVAL;
++ goto cleanup;
++ }
++ }
++
++ glamo_add_to_ring(gdrm, cmds, count);
++
++cleanup:
++ kfree(cmds);
++
++ return ret;
++}
++
++
++/* Return true for a legal sequence of commands, otherwise false */
++static int glamo_sanitize_burst(u16 base, u16 *cmds, unsigned int count)
++{
++ /* XXX FIXME TODO: Implementation... */
++ return 1;
++}
++
++
++static int glamo_relocate_burst(struct glamodrm_handle *gdrm,
++ drm_glamo_cmd_burst_t *cbuf, u16 *data,
++ struct drm_device *dev,
++ struct drm_file *file_priv)
++{
++ u32 *handles;
++ int *offsets;
++ int nobjs = cbuf->nobjs;
++ int i;
++
++ if ( nobjs > 32 ) return -EINVAL; /* Get real... */
++
++ handles = kmalloc(nobjs*sizeof(u32), GFP_KERNEL);
++ if ( handles == NULL ) return -1;
++ if ( copy_from_user(handles, cbuf->objs, nobjs*sizeof(u32)) )
++ return -1;
++
++ offsets = kmalloc(nobjs*sizeof(int), GFP_KERNEL);
++ if ( offsets == NULL ) return -1;
++ if ( copy_from_user(offsets, cbuf->obj_pos, nobjs*sizeof(int)) )
++ return -1;
++
++ for ( i=0; i<nobjs; i++ ) {
++
++ u32 handle = handles[i];
++ int offset = offsets[i];
++ struct drm_gem_object *obj;
++ struct drm_glamo_gem_object *gobj;
++ u32 addr;
++ u16 addr_low, addr_high;
++
++ if ( offset > cbuf->bufsz ) {
++ printk(KERN_WARNING "[glamo-drm] Offset out of range"
++ " for this relocation!\n");
++ goto fail;
++ }
++
++ obj = drm_gem_object_lookup(dev, file_priv, handle);
++ if ( obj == NULL ) return -1;
++
++ /* Unref the object now, or it'll never get freed.
++ * FIXME: This should really happen after the GPU has
++ * finished executing these commands. */
++ drm_gem_object_unreference(obj);
++
++ gobj = obj->driver_private;
++ if ( gobj == NULL ) {
++ printk(KERN_WARNING "[glamo-drm] This object has no"
++ " private data!\n");
++ goto fail;
++ }
++
++ addr = GLAMO_OFFSET_FB + gobj->block->start;
++ addr_low = addr & 0xffff;
++ addr_high = (addr >> 16) & 0x7f;
++
++ /* FIXME: Should really check that the register is a
++ * valid one for this relocation. */
++
++ *(data+(offset/2)+0) = addr_low;
++ *(data+(offset/2)+1) = addr_high;
++
++ }
++
++ kfree(handles);
++ kfree(offsets);
++ return 0;
++
++fail:
++ kfree(handles);
++ kfree(offsets);
++ return -1;
++}
++
++
++/* This is DRM_IOCTL_GLAMO_CMDBURST */
++int glamo_ioctl_cmdburst(struct drm_device *dev, void *data,
++ struct drm_file *file_priv)
++{
++ int ret = 0;
++ struct glamodrm_handle *gdrm;
++ drm_glamo_cmd_burst_t *cbuf = data;
++ u16 *burst;
++ size_t burst_size;
++ size_t data_size;
++
++ gdrm = dev->dev_private;
++
++ data_size = cbuf->bufsz;
++ if ( data_size % 4 ) data_size += 2;
++ if ( data_size % 4 ) return -EINVAL;
++ burst_size = data_size + 4; /* Add space for header */
++ if ( burst_size > PAGE_SIZE ) return -EINVAL;
++
++ burst = kmalloc(burst_size, GFP_KERNEL);
++ if ( burst == NULL ) return -ENOMEM;
++
++ /* Get data from userspace */
++ if ( copy_from_user(burst+2, cbuf->data, cbuf->bufsz) ) {
++ printk(KERN_WARNING "[glamo-drm] copy from user failed\n");
++ ret = -EINVAL;
++ goto cleanup;
++ }
++
++ /* Sanitise */
++ if ( !glamo_sanitize_burst(cbuf->base, burst+2, cbuf->bufsz) ) {
++ printk(KERN_WARNING "[glamo-drm] sanitize buffer failed\n");
++ ret = -EINVAL;
++ goto cleanup;
++ }
++
++ /* Relocate */
++ if ( cbuf->nobjs ) {
++ if ( glamo_relocate_burst(gdrm, cbuf, burst+2, dev, file_priv) )
++ {
++ printk(KERN_WARNING "[glamo-drm] Relocation failed\n");
++ ret = -EINVAL;
++ goto cleanup;
++ }
++ }
++
++ /* Add burst header */
++ burst[0] = 1<<15 | cbuf->base;
++ burst[1] = data_size / 2; /* -> 2-byte words */
++ if ( burst[1] & 0x01 ) {
++ printk(KERN_CRIT "Burst not aligned!\n");
++ goto cleanup;
++ }
++
++ /* Zero-pad if necessary */
++ if ( data_size % 4 ) {
++ burst[burst_size-1] = 0x0000;
++ }
++
++ /* Add to command queue */
++ glamo_add_to_ring(gdrm, burst, burst_size);
++
++cleanup:
++ kfree(burst);
++
++ return ret;
++}
++
++
++int glamo_cmdq_init(struct glamodrm_handle *gdrm)
++{
++ unsigned int i;
++
++ init_MUTEX(&gdrm->add_to_ring);
++
++ /* Enable 2D and 3D */
++ glamo_engine_enable(gdrm->glamo_core, GLAMO_ENGINE_2D);
++ glamo_engine_reset(gdrm->glamo_core, GLAMO_ENGINE_2D);
++
++ /* Start by zeroing the command queue memory */
++ for ( i=0; i<GLAMO_CMDQ_SIZE; i+=2 ) {
++ iowrite16(0x0000, gdrm->cmdq_base+i);
++ }
++
++ glamo_engine_enable(gdrm->glamo_core, GLAMO_ENGINE_CMDQ);
++ glamo_engine_reset(gdrm->glamo_core, GLAMO_ENGINE_CMDQ);
++
++ /* Set up command queue location */
++ reg_write(gdrm, GLAMO_REG_CMDQ_BASE_ADDRL,
++ GLAMO_OFFSET_CMDQ & 0xffff);
++ reg_write(gdrm, GLAMO_REG_CMDQ_BASE_ADDRH,
++ (GLAMO_OFFSET_CMDQ >> 16) & 0x7f);
++
++ /* Length of command queue in 1k blocks, minus one */
++ reg_write(gdrm, GLAMO_REG_CMDQ_LEN, (GLAMO_CMDQ_SIZE >> 10)-1);
++ reg_write(gdrm, GLAMO_REG_CMDQ_WRITE_ADDRH, 0);
++ reg_write(gdrm, GLAMO_REG_CMDQ_WRITE_ADDRL, 0);
++ reg_write(gdrm, GLAMO_REG_CMDQ_CONTROL,
++ 1 << 12 | /* Turbo flip (?) */
++ 5 << 8 | /* no interrupt */
++ 8 << 4); /* HQ threshold */
++
++ return 0;
++}
++
++
++int glamo_cmdq_shutdown(struct glamodrm_handle *gdrm)
++{
++ return 0;
++}
++
++
++void glamo_cmdq_suspend(struct glamodrm_handle *gdrm)
++{
++ /* Placeholder... */
++}
++
++
++void glamo_cmdq_resume(struct glamodrm_handle *gdrm)
++{
++ glamo_cmdq_init(gdrm);
++}
++
++
++/* Initialise an object's contents to zero.
++ * This is in glamo-cmdq.c in the hope that we can accelerate it later. */
++void glamo_cmdq_blank(struct glamodrm_handle *gdrm, struct drm_gem_object *obj)
++{
++ char __iomem *cookie;
++ struct drm_glamo_gem_object *gobj;
++ int i;
++
++ gobj = obj->driver_private;
++
++ cookie = ioremap(gdrm->vram->start + gobj->block->start, obj->size);
++ for ( i=0; i<obj->size; i+=2 ) {
++ iowrite16(0, cookie+i);
++ }
++ iounmap(cookie);
++}
+diff --git a/drivers/mfd/glamo/glamo-cmdq.h b/drivers/mfd/glamo/glamo-cmdq.h
+new file mode 100644
+index 0000000..510d195
+--- /dev/null
++++ b/drivers/mfd/glamo/glamo-cmdq.h
+@@ -0,0 +1,49 @@
++/* Smedia Glamo 336x/337x command queue handling
++ *
++ * Copyright (c) 2008-2009 Thomas White <taw@bitwiz.org.uk>
++ * Copyright (c) 2009 Andreas Pokorny <andreas.pokorny@gmail.com>
++ * Based on xf86-video-glamo
++ * Copyright 2007 OpenMoko, Inc.
++ * Copyright © 2009 Lars-Peter Clausen <lars@metafoo.de>
++ *
++ * All rights reserved.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ * MA 02111-1307 USA
++ */
++
++#ifndef __GLAMO_CMDQ_H
++#define __GLAMO_CMDQ_H
++
++#include <drm/drmP.h>
++
++#include "glamo-drm-private.h"
++
++extern int glamo_ioctl_cmdbuf(struct drm_device *dev, void *data,
++ struct drm_file *file_priv);
++extern int glamo_ioctl_cmdburst(struct drm_device *dev, void *data,
++ struct drm_file *file_priv);
++extern void glamo_cmdq_blank(struct glamodrm_handle *gdrm,
++ struct drm_gem_object *obj);
++
++extern int glamo_cmdq_init(struct glamodrm_handle *gdrm);
++extern int glamo_cmdq_shutdown(struct glamodrm_handle *gdrm);
++extern void glamo_cmdq_suspend(struct glamodrm_handle *gdrm);
++extern void glamo_cmdq_resume(struct glamodrm_handle *gdrm);
++
++extern int glamo_add_to_ring(struct glamodrm_handle *gdrm, u16 *addr,
++ unsigned int count);
++
++#endif /* __GLAMO_CMDQ_H */
+diff --git a/drivers/mfd/glamo/glamo-display.c b/drivers/mfd/glamo/glamo-display.c
+new file mode 100644
+index 0000000..93aa917
+--- /dev/null
++++ b/drivers/mfd/glamo/glamo-display.c
+@@ -0,0 +1,875 @@
++/*
++ * SMedia Glamo 336x/337x display
++ *
++ * Copyright (C) 2008-2009 Thomas White <taw@bitwiz.org.uk>
++ *
++ * Based on glamo-fb.c (C) 2007-2008 by Openmoko, Inc.
++ * Author: Harald Welte <laforge@openmoko.org>
++ * All rights reserved.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ * MA 02111-1307 USA
++ *
++ *
++ * Based on intel_display.c and intel_crt.c from drivers/gpu/drm/i915
++ * to which the following licence applies:
++ *
++ * Copyright © 2006-2007 Intel Corporation
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the "Software"),
++ * to deal in the Software without restriction, including without limitation
++ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
++ * and/or sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice (including the next
++ * paragraph) shall be included in all copies or substantial portions of the
++ * Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
++ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++ * DEALINGS IN THE SOFTWARE.
++ *
++ * Authors:
++ * Eric Anholt <eric@anholt.net>
++ *
++ */
++
++#define DEBUG 1
++
++#include <drm/drmP.h>
++#include <drm/glamo_drm.h>
++#include <drm/drm_crtc_helper.h>
++#include <drm/drm_crtc.h>
++
++#include "glamo-core.h"
++#include "glamo-drm-private.h"
++#include "glamo-regs.h"
++#include "glamo-kms-fb.h"
++#include "glamo-display.h"
++#include <linux/glamofb.h>
++
++
++#define GLAMO_LCD_WIDTH_MASK 0x03FF
++#define GLAMO_LCD_HEIGHT_MASK 0x03FF
++#define GLAMO_LCD_PITCH_MASK 0x07FE
++#define GLAMO_LCD_HV_TOTAL_MASK 0x03FF
++#define GLAMO_LCD_HV_RETR_START_MASK 0x03FF
++#define GLAMO_LCD_HV_RETR_END_MASK 0x03FF
++#define GLAMO_LCD_HV_RETR_DISP_START_MASK 0x03FF
++#define GLAMO_LCD_HV_RETR_DISP_END_MASK 0x03FF
++
++
++struct glamofb_par {
++ struct drm_device *dev;
++ struct drm_display_mode *our_mode;
++ struct glamo_framebuffer *glamo_fb;
++ int crtc_count;
++ /* crtc currently bound to this */
++ uint32_t crtc_ids[2];
++};
++
++
++static int reg_read_lcd(struct glamodrm_handle *gdrm, u_int16_t reg)
++{
++ int i = 0;
++
++ for (i = 0; i != 2; i++)
++ nop();
++
++ return ioread16(gdrm->lcd_base + reg);
++}
++
++
++static void reg_write_lcd(struct glamodrm_handle *gdrm,
++ u_int16_t reg, u_int16_t val)
++{
++ int i = 0;
++
++ for (i = 0; i != 2; i++)
++ nop();
++
++ iowrite16(val, gdrm->lcd_base + reg);
++}
++
++
++static void reg_set_bit_mask_lcd(struct glamodrm_handle *gdrm,
++ u_int16_t reg, u_int16_t mask,
++ u_int16_t val)
++{
++ u_int16_t tmp;
++
++ val &= mask;
++
++ tmp = reg_read_lcd(gdrm, reg);
++ tmp &= ~mask;
++ tmp |= val;
++ reg_write_lcd(gdrm, reg, tmp);
++}
++
++
++/* Note that this has nothing at all to do with the engine command queue
++ * in glamo-cmdq.c */
++static inline int glamo_lcd_cmdq_empty(struct glamodrm_handle *gdrm)
++{
++ /* DGCMdQempty -- 1 == command queue is empty */
++ return reg_read_lcd(gdrm, GLAMO_REG_LCD_STATUS1) & (1 << 15);
++}
++
++
++/* call holding gfb->lock_cmd when locking, until you unlock */
++int glamo_lcd_cmd_mode(struct glamodrm_handle *gdrm, int on)
++{
++ int timeout = 2000000;
++
++ dev_dbg(gdrm->dev, "glamofb_cmd_mode(on=%d)\n", on);
++ if (on) {
++
++ while ((!glamo_lcd_cmdq_empty(gdrm)) && (timeout--))
++ /* yield() */;
++ if (timeout < 0) {
++ printk(KERN_ERR "*************"
++ " LCD command queue never got empty "
++ "*************\n");
++ return -EIO;
++ }
++
++ /* display the entire frame then switch to command */
++ reg_write_lcd(gdrm, GLAMO_REG_LCD_COMMAND1,
++ GLAMO_LCD_CMD_TYPE_DISP |
++ GLAMO_LCD_CMD_DATA_FIRE_VSYNC);
++
++ /* wait until lcd idle */
++ timeout = 2000000;
++ while ((!reg_read_lcd(gdrm, GLAMO_REG_LCD_STATUS2) & (1 << 12))
++ && (timeout--))
++ /* yield() */;
++ if (timeout < 0) {
++ printk(KERN_ERR"*************"
++ " LCD never idle "
++ "*************\n");
++ return -EIO;
++ }
++
++ mdelay(100);
++
++ } else {
++ /* RGB interface needs vsync/hsync */
++ int mode;
++ mode = reg_read_lcd(gdrm, GLAMO_REG_LCD_MODE3);
++ if ( mode & GLAMO_LCD_MODE3_RGB)
++ reg_write_lcd(gdrm, GLAMO_REG_LCD_COMMAND1,
++ GLAMO_LCD_CMD_TYPE_DISP |
++ GLAMO_LCD_CMD_DATA_DISP_SYNC);
++
++ reg_write_lcd(gdrm, GLAMO_REG_LCD_COMMAND1,
++ GLAMO_LCD_CMD_TYPE_DISP |
++ GLAMO_LCD_CMD_DATA_DISP_FIRE);
++ }
++
++ return 0;
++}
++
++
++static struct glamo_script lcd_init_script[] = {
++ { GLAMO_REG_LCD_MODE1, 0x0020 },
++ /* no display rotation, no hardware cursor, no dither, no gamma,
++ * no retrace flip, vsync low-active, hsync low active,
++ * no TVCLK, no partial display, hw dest color from fb,
++ * no partial display mode, LCD1, software flip, */
++ { GLAMO_REG_LCD_MODE2, 0x9020 },
++ /* video flip, no ptr, no ptr, dhclk off,
++ * normal mode, no cpuif,
++ * res, serial msb first, single fb, no fr ctrl,
++ * cpu if bits all zero, no crc
++ * 0000 0000 0010 0000 */
++ { GLAMO_REG_LCD_MODE3, 0x0b40 },
++ /* src data rgb565, res, 18bit rgb666
++ * 000 01 011 0100 0000 */
++ { GLAMO_REG_LCD_POLARITY, 0x440c },
++ /* DE high active, no cpu/lcd if, cs0 force low, a0 low active,
++ * np cpu if, 9bit serial data, sclk rising edge latch data
++ * 01 00 0 100 0 000 01 0 0 */
++ /* The following values assume 640*480@16bpp */
++ /* FIXME: fb0 has not yet been allocated! */
++ { GLAMO_REG_LCD_A_BASE1, PAGE_SIZE }, /* display A base address 15:0 */
++ { GLAMO_REG_LCD_A_BASE2, 0x0000 }, /* display A base address 22:16 */
++ { GLAMO_REG_LCD_B_BASE1, 0x6000 }, /* display B base address 15:0 */
++ { GLAMO_REG_LCD_B_BASE2, 0x0009 }, /* display B base address 22:16 */
++ { GLAMO_REG_LCD_CURSOR_BASE1, 0xC000 }, /* cursor base address 15:0 */
++ { GLAMO_REG_LCD_CURSOR_BASE2, 0x0012 }, /* cursor base address 22:16 */
++ { GLAMO_REG_LCD_COMMAND2, 0x0000 }, /* display page A */
++};
++
++
++static int glamo_run_lcd_script(struct glamodrm_handle *gdrm,
++ struct glamo_script *script, int len)
++{
++ int i;
++
++ for (i = 0; i < len; i++) {
++ struct glamo_script *line = &script[i];
++
++ if (line->reg == 0xffff)
++ return 0;
++ else if (line->reg == 0xfffe)
++ msleep(line->val);
++ else
++ reg_write_lcd(gdrm, script[i].reg, script[i].val);
++ }
++
++ return 0;
++}
++
++
++extern void jbt6k74_action(int val);
++
++/* Power on/off */
++static void glamo_crtc_dpms(struct drm_crtc *crtc, int mode)
++{
++}
++
++
++static bool glamo_crtc_mode_fixup(struct drm_crtc *crtc,
++ struct drm_display_mode *mode,
++ struct drm_display_mode *adjusted_mode)
++{
++ return true;
++}
++
++
++static int glamo_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y,
++ struct drm_framebuffer *old_fb)
++{
++ struct glamodrm_handle *gdrm;
++ struct glamo_crtc *gcrtc;
++ struct glamo_framebuffer *gfb;
++ struct drm_gem_object *obj;
++ struct drm_glamo_gem_object *gobj;
++ u32 addr;
++ u16 addr_low, addr_high;
++
++ if (!crtc->fb) {
++ DRM_DEBUG("No FB bound\n");
++ return -EINVAL;
++ }
++
++ /* Dig out our handle */
++ gcrtc = to_glamo_crtc(crtc);
++ gdrm = gcrtc->gdrm; /* Here it is! */
++
++ gfb = to_glamo_framebuffer(crtc->fb);
++ obj = gfb->obj;
++ gobj = obj->driver_private;
++
++ addr = GLAMO_OFFSET_FB + gobj->block->start;
++ addr_low = addr & 0xffff;
++ addr_high = ((addr >> 16) & 0x7f) | 0x4000;
++
++ glamo_lcd_cmd_mode(gdrm, 1);
++ reg_write_lcd(gdrm, GLAMO_REG_LCD_A_BASE1, addr_low);
++ reg_write_lcd(gdrm, GLAMO_REG_LCD_A_BASE2, addr_high);
++ glamo_lcd_cmd_mode(gdrm, 0);
++
++ return 0;
++}
++
++
++static int glamo_crtc_mode_set(struct drm_crtc *crtc,
++ struct drm_display_mode *mode,
++ struct drm_display_mode *adjusted_mode,
++ int x, int y,
++ struct drm_framebuffer *old_fb)
++{
++ struct glamodrm_handle *gdrm;
++ struct glamo_crtc *gcrtc;
++ int retr_start, retr_end, disp_start, disp_end;
++
++ /* Dig out our handle */
++ gcrtc = to_glamo_crtc(crtc);
++ gdrm = gcrtc->gdrm; /* Here it is! */
++
++ glamo_lcd_cmd_mode(gdrm, 1);
++
++ glamo_engine_reclock(gdrm->glamo_core, GLAMO_ENGINE_LCD, mode->clock);
++ gdrm->saved_clock = mode->clock;
++
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_WIDTH,
++ GLAMO_LCD_WIDTH_MASK, mode->hdisplay);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HEIGHT,
++ GLAMO_LCD_HEIGHT_MASK, mode->vdisplay);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_PITCH,
++ GLAMO_LCD_PITCH_MASK, mode->hdisplay*2);
++
++ /* Convert "X modeline timings" into "Glamo timings" */
++ retr_start = 0;
++ retr_end = retr_start + mode->hsync_end - mode->hsync_start;
++ disp_start = mode->htotal - mode->hsync_start;
++ disp_end = disp_start + mode->hdisplay;
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_TOTAL,
++ GLAMO_LCD_HV_TOTAL_MASK, mode->htotal);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_RETR_START,
++ GLAMO_LCD_HV_RETR_START_MASK, retr_start);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_RETR_END,
++ GLAMO_LCD_HV_RETR_END_MASK, retr_end);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_DISP_START,
++ GLAMO_LCD_HV_RETR_DISP_START_MASK, disp_start);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_DISP_END,
++ GLAMO_LCD_HV_RETR_DISP_END_MASK, disp_end);
++
++ /* The same in the vertical direction */
++ retr_start = 0;
++ retr_end = retr_start + mode->vsync_end - mode->vsync_start;
++ disp_start = mode->vtotal - mode->vsync_start;
++ disp_end = disp_start + mode->vdisplay;
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_TOTAL,
++ GLAMO_LCD_HV_TOTAL_MASK, mode->vtotal);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_RETR_START,
++ GLAMO_LCD_HV_RETR_START_MASK, retr_start);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_RETR_END,
++ GLAMO_LCD_HV_RETR_END_MASK, retr_end);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_DISP_START,
++ GLAMO_LCD_HV_RETR_DISP_START_MASK, disp_start);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_DISP_END,
++ GLAMO_LCD_HV_RETR_DISP_END_MASK, disp_end);
++
++ glamo_lcd_cmd_mode(gdrm, 0);
++
++ glamo_crtc_mode_set_base(crtc, 0, 0, old_fb);
++
++ return 0;
++}
++
++
++static void glamo_crtc_prepare(struct drm_crtc *crtc)
++{
++}
++
++
++static void glamo_crtc_commit(struct drm_crtc *crtc)
++{
++}
++
++
++static int glamo_crtc_cursor_set(struct drm_crtc *crtc,
++ struct drm_file *file_priv,
++ uint32_t handle,
++ uint32_t width, uint32_t height)
++{
++ return 0;
++}
++
++
++static int glamo_crtc_cursor_move(struct drm_crtc *crtc, int x, int y)
++{
++ return 0;
++}
++
++
++static void glamo_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
++ u16 *blue, uint32_t size)
++{
++}
++
++
++static void glamo_crtc_destroy(struct drm_crtc *crtc)
++{
++ struct glamo_crtc *glamo_crtc = to_glamo_crtc(crtc);
++ drm_crtc_cleanup(crtc);
++ kfree(glamo_crtc);
++}
++
++
++static enum drm_connector_status
++glamo_connector_detect(struct drm_connector *connector)
++{
++ /* One hopes it hasn't been de-soldered... */
++ return connector_status_connected;
++}
++
++
++static void glamo_connector_destroy(struct drm_connector *connector)
++{
++ drm_sysfs_connector_remove(connector);
++ drm_connector_cleanup(connector);
++ kfree(connector);
++}
++
++
++static int glamo_connector_get_modes(struct drm_connector *connector)
++{
++ struct drm_display_mode *mode;
++ struct glamo_fb_platform_data *fb_info;
++ struct glamo_output *goutput = to_glamo_output(connector);
++ struct glamodrm_handle *gdrm = goutput->gdrm;
++
++ /* Dig out the record which will tell us about the hardware */
++ fb_info = gdrm->glamo_core->pdata->fb_data;
++
++ mode = drm_mode_create(connector->dev);
++ if (!mode)
++ return 0;
++ /* Fill in 'mode' here */
++ mode->type = DRM_MODE_TYPE_DEFAULT | DRM_MODE_TYPE_PREFERRED;
++
++ /* Convert framebuffer timings into KMS timings */
++ mode->clock = 1000000000UL / fb_info->modes[0].pixclock; /* ps -> kHz */
++ mode->clock *= 1000; /* kHz -> Hz */
++ mode->hdisplay = fb_info->modes[0].xres;
++ mode->hsync_start = fb_info->modes[0].right_margin + mode->hdisplay;
++ mode->hsync_end = mode->hsync_start + fb_info->modes[0].hsync_len;
++ mode->htotal = mode->hsync_end + fb_info->modes[0].left_margin;
++ mode->hskew = 0;
++
++ mode->vdisplay = fb_info->modes[0].yres;
++ mode->vsync_start = fb_info->modes[0].lower_margin + mode->vdisplay;
++ mode->vsync_end = mode->vsync_start + fb_info->modes[0].vsync_len;
++ mode->vtotal = mode->vsync_end + fb_info->modes[0].upper_margin;
++ mode->vscan = 0;
++
++ /* Physical size */
++ mode->width_mm = fb_info->width;
++ mode->height_mm = fb_info->height;
++
++ drm_mode_set_name(mode);
++ drm_mode_probed_add(connector, mode);
++
++ return 1; /* one mode, for now */
++}
++
++
++static int glamo_connector_set_property(struct drm_connector *connector,
++ struct drm_property *property,
++ uint64_t value)
++{
++ return 0;
++}
++
++
++static int glamo_connector_mode_valid(struct drm_connector *connector,
++ struct drm_display_mode *mode)
++{
++ if (mode->flags & DRM_MODE_FLAG_DBLSCAN)
++ return MODE_NO_DBLESCAN;
++
++ return MODE_OK;
++}
++
++
++struct drm_encoder *
++glamo_connector_best_encoder(struct drm_connector *connector)
++{
++ struct glamo_output *glamo_output = to_glamo_output(connector);
++ return &glamo_output->enc;
++}
++
++
++static void glamo_encoder_dpms(struct drm_encoder *encoder, int mode)
++{
++}
++
++
++static bool glamo_encoder_mode_fixup(struct drm_encoder *encoder,
++ struct drm_display_mode *mode,
++ struct drm_display_mode *adjusted_mode)
++{
++ return true;
++}
++
++
++void glamo_encoder_prepare(struct drm_encoder *encoder)
++{
++}
++
++
++void glamo_encoder_commit(struct drm_encoder *encoder)
++{
++}
++
++
++static void glamo_encoder_mode_set(struct drm_encoder *encoder,
++ struct drm_display_mode *mode,
++ struct drm_display_mode *adjusted_mode)
++{
++}
++
++
++static void glamo_encoder_destroy(struct drm_encoder *encoder)
++{
++ drm_encoder_cleanup(encoder);
++}
++
++
++static void glamo_framebuffer_destroy(struct drm_framebuffer *fb)
++{
++ struct glamo_framebuffer *glamo_fb = to_glamo_framebuffer(fb);
++ struct drm_device *dev = fb->dev;
++
++ drm_framebuffer_cleanup(fb);
++ mutex_lock(&dev->struct_mutex);
++ drm_gem_object_unreference(glamo_fb->obj);
++ mutex_unlock(&dev->struct_mutex);
++
++ kfree(glamo_fb);
++}
++
++static int glamo_framebuffer_create_handle(struct drm_framebuffer *fb,
++ struct drm_file *file_priv,
++ unsigned int *handle)
++{
++ struct glamo_framebuffer *glamo_fb = to_glamo_framebuffer(fb);
++ struct drm_gem_object *object = glamo_fb->obj;
++
++ return drm_gem_handle_create(file_priv, object, handle);
++}
++
++
++static const struct drm_framebuffer_funcs glamo_fb_funcs = {
++ .destroy = glamo_framebuffer_destroy,
++ .create_handle = glamo_framebuffer_create_handle,
++};
++
++
++int glamo_framebuffer_create(struct drm_device *dev,
++ struct drm_mode_fb_cmd *mode_cmd,
++ struct drm_framebuffer **fb,
++ struct drm_gem_object *obj)
++{
++ struct glamo_framebuffer *glamo_fb;
++ int ret;
++
++ glamo_fb = kzalloc(sizeof(*glamo_fb), GFP_KERNEL);
++ if (!glamo_fb)
++ return -ENOMEM;
++
++ ret = drm_framebuffer_init(dev, &glamo_fb->base, &glamo_fb_funcs);
++ if (ret) {
++ DRM_ERROR("framebuffer init failed %d\n", ret);
++ return ret;
++ }
++
++ drm_helper_mode_fill_fb_struct(&glamo_fb->base, mode_cmd);
++
++ glamo_fb->obj = obj;
++
++ *fb = &glamo_fb->base;
++
++ return 0;
++}
++
++
++static struct drm_framebuffer *
++glamo_user_framebuffer_create(struct drm_device *dev,
++ struct drm_file *filp,
++ struct drm_mode_fb_cmd *mode_cmd)
++{
++ struct drm_gem_object *obj;
++ struct drm_framebuffer *fb;
++ int ret;
++
++ obj = drm_gem_object_lookup(dev, filp, mode_cmd->handle);
++ if (!obj)
++ return NULL;
++
++ ret = glamo_framebuffer_create(dev, mode_cmd, &fb, obj);
++ if (ret) {
++ drm_gem_object_unreference(obj);
++ return NULL;
++ }
++
++ return fb;
++}
++
++
++int glamo_fbchanged(struct drm_device *dev)
++{
++ return 0;
++}
++
++
++/* CRTC functions */
++static const struct drm_crtc_funcs glamo_crtc_funcs = {
++ .cursor_set = glamo_crtc_cursor_set,
++ .cursor_move = glamo_crtc_cursor_move,
++ .gamma_set = glamo_crtc_gamma_set,
++ .set_config = drm_crtc_helper_set_config,
++ .destroy = glamo_crtc_destroy,
++};
++
++
++/* CRTC helper functions */
++static const struct drm_crtc_helper_funcs glamo_crtc_helper_funcs = {
++ .dpms = glamo_crtc_dpms,
++ .mode_fixup = glamo_crtc_mode_fixup,
++ .mode_set = glamo_crtc_mode_set,
++ .mode_set_base = glamo_crtc_mode_set_base,
++ .prepare = glamo_crtc_prepare,
++ .commit = glamo_crtc_commit,
++};
++
++
++/* Connector functions */
++static const struct drm_connector_funcs glamo_connector_funcs = {
++ .detect = glamo_connector_detect,
++ .fill_modes = drm_helper_probe_single_connector_modes,
++ .destroy = glamo_connector_destroy,
++ .set_property = glamo_connector_set_property,
++};
++
++
++/* Connector helper functions */
++static const struct drm_connector_helper_funcs glamo_connector_helper_funcs = {
++ .mode_valid = glamo_connector_mode_valid,
++ .get_modes = glamo_connector_get_modes,
++ .best_encoder = glamo_connector_best_encoder,
++};
++
++
++/* Encoder functions */
++static const struct drm_encoder_funcs glamo_encoder_funcs = {
++ .destroy = glamo_encoder_destroy,
++};
++
++
++/* Encoder helper functions */
++static const struct drm_encoder_helper_funcs glamo_encoder_helper_funcs = {
++ .dpms = glamo_encoder_dpms,
++ .mode_fixup = glamo_encoder_mode_fixup,
++ .prepare = glamo_encoder_prepare,
++ .commit = glamo_encoder_commit,
++ .mode_set = glamo_encoder_mode_set,
++};
++
++
++/* Mode functions */
++static const struct drm_mode_config_funcs glamo_mode_funcs = {
++ .fb_create = glamo_user_framebuffer_create,
++ .fb_changed = glamo_fbchanged
++};
++
++
++static struct drm_mode_set kernelfb_mode;
++
++
++/* Restore's the kernel's fbcon mode, used for panic path */
++void glamo_display_restore(void)
++{
++ drm_crtc_helper_set_config(&kernelfb_mode);
++}
++
++
++static int glamo_display_panic(struct notifier_block *n, unsigned long ununsed,
++ void *panic_str)
++{
++ DRM_ERROR("panic occurred, switching back to text console\n");
++
++ glamo_display_restore();
++ return 0;
++}
++
++
++static struct notifier_block paniced = {
++ .notifier_call = glamo_display_panic,
++};
++
++
++int glamo_display_init(struct drm_device *dev)
++{
++ struct glamodrm_handle *gdrm;
++ struct glamo_crtc *glamo_crtc;
++ struct glamo_output *glamo_output;
++ struct drm_connector *connector;
++ struct glamo_framebuffer *glamo_fb;
++ struct fb_info *info;
++ struct glamofb_par *par;
++ struct drm_mode_set *modeset;
++
++ gdrm = dev->dev_private;
++
++ /* Initial setup of the LCD controller */
++ glamo_engine_enable(gdrm->glamo_core, GLAMO_ENGINE_LCD);
++ glamo_engine_reset(gdrm->glamo_core, GLAMO_ENGINE_LCD);
++
++ glamo_run_lcd_script(gdrm, lcd_init_script,
++ ARRAY_SIZE(lcd_init_script));
++
++ drm_mode_config_init(dev);
++
++ dev->mode_config.min_width = 240;
++ dev->mode_config.min_height = 320;
++ dev->mode_config.max_width = 480;
++ dev->mode_config.max_height = 640;
++
++ dev->mode_config.funcs = (void *)&glamo_mode_funcs;
++
++ /* Initialise our CRTC object.
++ * Only one connector per CRTC. We know this: it's kind of soldered. */
++ glamo_crtc = kzalloc(sizeof(struct glamo_crtc)
++ + sizeof(struct drm_connector *), GFP_KERNEL);
++ if (glamo_crtc == NULL) return 1;
++ glamo_crtc->gdrm = gdrm;
++ glamo_crtc->blank_mode = DRM_MODE_DPMS_OFF;
++ drm_crtc_init(dev, &glamo_crtc->base, &glamo_crtc_funcs);
++ drm_crtc_helper_add(&glamo_crtc->base, &glamo_crtc_helper_funcs);
++
++ glamo_crtc->mode_set.crtc = &glamo_crtc->base;
++ glamo_crtc->mode_set.connectors =
++ (struct drm_connector **)(glamo_crtc + 1);
++ glamo_crtc->mode_set.num_connectors = 0;
++
++ /* Create our "output" object: consists of an output and an encoder */
++ glamo_output = kzalloc(sizeof(struct glamo_output), GFP_KERNEL);
++ if (glamo_output == NULL) return 1;
++ connector = &glamo_output->base;
++ glamo_output->gdrm = gdrm;
++
++ /* Initialise the connector */
++ drm_connector_init(dev, connector, &glamo_connector_funcs,
++ DRM_MODE_CONNECTOR_Unknown);
++ drm_sysfs_connector_add(connector);
++ connector->interlace_allowed = 0;
++ connector->doublescan_allowed = 0;
++
++ /* Initialise the encoder */
++ drm_encoder_init(dev, &glamo_output->enc, &glamo_encoder_funcs,
++ DRM_MODE_ENCODER_DAC);
++ glamo_output->enc.possible_crtcs = 1 << 0;
++ drm_mode_connector_attach_encoder(&glamo_output->base,
++ &glamo_output->enc);
++
++ drm_encoder_helper_add(&glamo_output->enc, &glamo_encoder_helper_funcs);
++ drm_connector_helper_add(connector, &glamo_connector_helper_funcs);
++
++ drm_helper_initial_config(dev);
++
++ if (list_empty(&dev->mode_config.fb_kernel_list)) {
++ int ret, cols, cols_g;
++ cols_g = reg_read_lcd(gdrm, GLAMO_REG_LCD_MODE3) & 0xc000;
++ switch ( cols_g ) {
++ case GLAMO_LCD_SRC_RGB565 :
++ cols = GLAMO_FB_RGB565; break;
++ case GLAMO_LCD_SRC_ARGB1555 :
++ cols = GLAMO_FB_ARGB1555; break;
++ case GLAMO_LCD_SRC_ARGB4444 :
++ cols = GLAMO_FB_ARGB4444; break;
++ default :
++ printk(KERN_WARNING "Unrecognised LCD colour mode\n");
++ cols = GLAMO_FB_RGB565; break; /* Take a guess */
++ }
++ ret = glamofb_create(dev, 480, 640, 480, 640, cols, &glamo_fb);
++ if (ret) return -EINVAL;
++ }
++
++ info = glamo_fb->base.fbdev;
++ par = info->par;
++
++ modeset = &glamo_crtc->mode_set;
++ modeset->fb = &glamo_fb->base;
++ modeset->connectors[0] = connector;
++
++ par->crtc_ids[0] = glamo_crtc->base.base.id;
++
++ modeset->num_connectors = 1;
++ modeset->mode = modeset->crtc->desired_mode;
++
++ par->crtc_count = 1;
++
++ if (register_framebuffer(info) < 0)
++ return -EINVAL;
++
++ printk(KERN_INFO "[glamo-drm] fb%d: %s frame buffer device\n",
++ info->node, info->fix.id);
++
++ /* Switch back to kernel console on panic */
++ kernelfb_mode = *modeset;
++ atomic_notifier_chain_register(&panic_notifier_list, &paniced);
++ printk(KERN_INFO "[glamo-drm] Registered panic notifier\n");
++
++ return 0;
++}
++
++
++void glamo_display_suspend(struct glamodrm_handle *gdrm)
++{
++ gdrm->saved_width = reg_read_lcd(gdrm, GLAMO_REG_LCD_WIDTH);
++ gdrm->saved_height = reg_read_lcd(gdrm, GLAMO_REG_LCD_HEIGHT);
++ gdrm->saved_pitch = reg_read_lcd(gdrm, GLAMO_REG_LCD_PITCH);
++ gdrm->saved_htotal = reg_read_lcd(gdrm, GLAMO_REG_LCD_HORIZ_TOTAL);
++ gdrm->saved_hrtrst = reg_read_lcd(gdrm, GLAMO_REG_LCD_HORIZ_RETR_START);
++ gdrm->saved_hrtren = reg_read_lcd(gdrm, GLAMO_REG_LCD_HORIZ_RETR_END);
++ gdrm->saved_hdspst = reg_read_lcd(gdrm, GLAMO_REG_LCD_HORIZ_DISP_START);
++ gdrm->saved_hdspen = reg_read_lcd(gdrm, GLAMO_REG_LCD_HORIZ_DISP_END);
++ gdrm->saved_vtotal = reg_read_lcd(gdrm, GLAMO_REG_LCD_VERT_TOTAL);
++ gdrm->saved_vrtrst = reg_read_lcd(gdrm, GLAMO_REG_LCD_VERT_RETR_START);
++ gdrm->saved_vrtren = reg_read_lcd(gdrm, GLAMO_REG_LCD_VERT_RETR_END);
++ gdrm->saved_vdspst = reg_read_lcd(gdrm, GLAMO_REG_LCD_VERT_DISP_START);
++ gdrm->saved_vdspen = reg_read_lcd(gdrm, GLAMO_REG_LCD_VERT_DISP_END);
++}
++
++
++void glamo_display_resume(struct glamodrm_handle *gdrm)
++{
++ glamo_engine_enable(gdrm->glamo_core, GLAMO_ENGINE_LCD);
++ glamo_engine_reset(gdrm->glamo_core, GLAMO_ENGINE_LCD);
++ glamo_run_lcd_script(gdrm, lcd_init_script,
++ ARRAY_SIZE(lcd_init_script));
++
++ /* Enable pixel clock */
++ glamo_engine_clkreg_set(gdrm->glamo_core,
++ GLAMO_ENGINE_LCD,
++ GLAMO_CLOCK_LCD_EN_DCLK,
++ GLAMO_CLOCK_LCD_EN_DCLK);
++
++ /* Restore timings */
++ glamo_lcd_cmd_mode(gdrm, 1);
++ glamo_engine_reclock(gdrm->glamo_core, GLAMO_ENGINE_LCD,
++ gdrm->saved_clock);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_WIDTH, GLAMO_LCD_WIDTH_MASK,
++ gdrm->saved_width);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HEIGHT, GLAMO_LCD_HEIGHT_MASK,
++ gdrm->saved_height);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_PITCH, GLAMO_LCD_PITCH_MASK,
++ gdrm->saved_pitch);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_TOTAL,
++ GLAMO_LCD_HV_TOTAL_MASK, gdrm->saved_htotal);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_RETR_START,
++ GLAMO_LCD_HV_RETR_START_MASK, gdrm->saved_hrtrst);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_RETR_END,
++ GLAMO_LCD_HV_RETR_END_MASK, gdrm->saved_hrtren);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_DISP_START,
++ GLAMO_LCD_HV_RETR_DISP_START_MASK,
++ gdrm->saved_hdspst);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_DISP_END,
++ GLAMO_LCD_HV_RETR_DISP_END_MASK,
++ gdrm->saved_hdspen);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_TOTAL,
++ GLAMO_LCD_HV_TOTAL_MASK, gdrm->saved_vtotal);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_RETR_START,
++ GLAMO_LCD_HV_RETR_START_MASK, gdrm->saved_vrtrst);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_RETR_END,
++ GLAMO_LCD_HV_RETR_END_MASK, gdrm->saved_vrtren);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_DISP_START,
++ GLAMO_LCD_HV_RETR_DISP_START_MASK,
++ gdrm->saved_vdspst);
++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_DISP_END,
++ GLAMO_LCD_HV_RETR_DISP_END_MASK,
++ gdrm->saved_vdspen);
++ glamo_lcd_cmd_mode(gdrm, 0);
++}
+diff --git a/drivers/mfd/glamo/glamo-display.h b/drivers/mfd/glamo/glamo-display.h
+new file mode 100644
+index 0000000..d6f21bc
+--- /dev/null
++++ b/drivers/mfd/glamo/glamo-display.h
+@@ -0,0 +1,39 @@
++/* Smedia Glamo 336x/337x Display
++ *
++ * Copyright (c) 2008-2009 Thomas White <taw@bitwiz.org.uk>
++ *
++ * All rights reserved.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ * MA 02111-1307 USA
++ */
++
++#ifndef __GLAMO_DISPLAY_H
++#define __GLAMO_DISPLAY_H
++
++#include <drm/drmP.h>
++#include "glamo-drm-private.h"
++
++extern int glamo_display_init(struct drm_device *dev);
++
++extern int glamo_framebuffer_create(struct drm_device *dev,
++ struct drm_mode_fb_cmd *mode_cmd,
++ struct drm_framebuffer **fb,
++ struct drm_gem_object *obj);
++
++extern void glamo_display_suspend(struct glamodrm_handle *gdrm);
++extern void glamo_display_resume(struct glamodrm_handle *gdrm);
++
++#endif /* __GLAMO_DISPLAY_H */
+diff --git a/drivers/mfd/glamo/glamo-drm-drv.c b/drivers/mfd/glamo/glamo-drm-drv.c
+new file mode 100644
+index 0000000..81215f4
+--- /dev/null
++++ b/drivers/mfd/glamo/glamo-drm-drv.c
+@@ -0,0 +1,453 @@
++/* Smedia Glamo 336x/337x Graphics Driver
++ *
++ * Copyright (C) 2009 Openmoko, Inc. Jorge Luis Zapata <turran@openmoko.com>
++ * Copyright (C) 2008-2009 Thomas White <taw@bitwiz.org.uk>
++ * Copyright (C) 2009 Andreas Pokorny <andreas.pokorny@gmail.com>
++ *
++ * All rights reserved.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ * MA 02111-1307 USA
++ */
++
++
++#include <linux/module.h>
++#include <linux/platform_device.h>
++#include <drm/drmP.h>
++#include <drm/glamo_drm.h>
++#include <linux/glamofb.h>
++
++#include "glamo-core.h"
++#include "glamo-cmdq.h"
++#include "glamo-buffer.h"
++#include "glamo-drm-private.h"
++#include "glamo-display.h"
++#include "glamo-kms-fb.h"
++#include "glamo-fence.h"
++
++#define DRIVER_AUTHOR "Openmoko, Inc."
++#define DRIVER_NAME "glamo-drm"
++#define DRIVER_DESC "SMedia Glamo 3362"
++#define DRIVER_DATE "20090614"
++
++
++static int glamo_ioctl_swap(struct drm_device *dev, void *data,
++ struct drm_file *file_priv)
++{
++ printk(KERN_INFO "glamo_ioctl_swap\n");
++ return 0;
++}
++
++
++static int glamo_ioctl_gem_info(struct drm_device *dev, void *data,
++ struct drm_file *file_priv)
++{
++ printk(KERN_INFO "glamo_ioctl_gem_info\n");
++ return 0;
++}
++
++
++struct drm_ioctl_desc glamo_ioctls[] = {
++ DRM_IOCTL_DEF(DRM_GLAMO_CMDBUF, glamo_ioctl_cmdbuf, DRM_AUTH),
++ DRM_IOCTL_DEF(DRM_GLAMO_SWAP, glamo_ioctl_swap, DRM_AUTH),
++ DRM_IOCTL_DEF(DRM_GLAMO_CMDBURST, glamo_ioctl_cmdburst, DRM_AUTH),
++ DRM_IOCTL_DEF(DRM_GLAMO_GEM_INFO, glamo_ioctl_gem_info, DRM_AUTH),
++ DRM_IOCTL_DEF(DRM_GLAMO_GEM_CREATE, glamo_ioctl_gem_create, DRM_AUTH),
++ DRM_IOCTL_DEF(DRM_GLAMO_GEM_MMAP, glamo_ioctl_gem_mmap, DRM_AUTH),
++ DRM_IOCTL_DEF(DRM_GLAMO_GEM_PIN, glamo_ioctl_gem_pin, DRM_AUTH),
++ DRM_IOCTL_DEF(DRM_GLAMO_GEM_UNPIN, glamo_ioctl_gem_unpin, DRM_AUTH),
++ DRM_IOCTL_DEF(DRM_GLAMO_GEM_PREAD, glamo_ioctl_gem_pread, DRM_AUTH),
++ DRM_IOCTL_DEF(DRM_GLAMO_GEM_PWRITE, glamo_ioctl_gem_pwrite, DRM_AUTH),
++ DRM_IOCTL_DEF(DRM_GLAMO_GEM_WAIT_RENDERING,
++ glamo_ioctl_wait_rendering, DRM_AUTH),
++};
++
++
++static int glamodrm_firstopen(struct drm_device *dev)
++{
++ DRM_DEBUG("\n");
++ return 0;
++}
++
++
++static int glamodrm_open(struct drm_device *dev, struct drm_file *fh)
++{
++ DRM_DEBUG("\n");
++ return 0;
++}
++
++
++static void glamodrm_preclose(struct drm_device *dev, struct drm_file *fh)
++{
++ DRM_DEBUG("\n");
++}
++
++static void glamodrm_postclose(struct drm_device *dev, struct drm_file *fh)
++{
++ DRM_DEBUG("\n");
++}
++
++
++static void glamodrm_lastclose(struct drm_device *dev)
++{
++ DRM_DEBUG("\n");
++}
++
++
++static int glamodrm_master_create(struct drm_device *dev,
++ struct drm_master *master)
++{
++ DRM_DEBUG("\n");
++
++ return 0;
++}
++
++
++static void glamodrm_master_destroy(struct drm_device *dev,
++ struct drm_master *master)
++{
++ DRM_DEBUG("\n");
++}
++
++
++static int glamodrm_load(struct drm_device *dev, unsigned long flags)
++{
++ struct glamodrm_handle *gdrm;
++ gdrm = dev->dev_private;
++
++ glamo_buffer_init(gdrm);
++ glamo_cmdq_init(gdrm);
++ glamo_fence_init(gdrm);
++ glamo_display_init(dev);
++
++ return 0;
++}
++
++
++static int glamodrm_unload(struct drm_device *dev)
++{
++ struct glamodrm_handle *gdrm;
++
++ gdrm = dev->dev_private;
++
++ glamo_engine_disable(gdrm->glamo_core, GLAMO_ENGINE_2D);
++ glamo_engine_disable(gdrm->glamo_core, GLAMO_ENGINE_3D);
++ glamo_buffer_final(gdrm);
++ glamo_fence_shutdown(gdrm);
++
++ return 0;
++}
++
++
++static struct vm_operations_struct glamodrm_gem_vm_ops = {
++ .fault = glamodrm_gem_fault,
++};
++
++static struct drm_driver glamodrm_drm_driver = {
++ .driver_features = DRIVER_IS_PLATFORM | DRIVER_GEM | DRIVER_MODESET,
++ .firstopen = glamodrm_firstopen,
++ .load = glamodrm_load,
++ .unload = glamodrm_unload,
++ .open = glamodrm_open,
++ .preclose = glamodrm_preclose,
++ .postclose = glamodrm_postclose,
++ .lastclose = glamodrm_lastclose,
++ .reclaim_buffers = drm_core_reclaim_buffers,
++ .get_map_ofs = drm_core_get_map_ofs,
++ .get_reg_ofs = drm_core_get_reg_ofs,
++ .master_create = glamodrm_master_create,
++ .master_destroy = glamodrm_master_destroy,
++ .gem_init_object = glamodrm_gem_init_object,
++ .gem_free_object = glamodrm_gem_free_object,
++ .gem_vm_ops = &glamodrm_gem_vm_ops,
++ .ioctls = glamo_ioctls,
++ .fops = {
++ .owner = THIS_MODULE,
++ .open = drm_open,
++ .release = drm_release,
++ .ioctl = drm_ioctl,
++ .mmap = drm_gem_mmap,
++ .poll = drm_poll,
++ .fasync = drm_fasync,
++ },
++ .major = 0,
++ .minor = 1,
++ .patchlevel = 0,
++ .name = DRIVER_NAME,
++ .desc = DRIVER_DESC,
++ .date = DRIVER_DATE,
++};
++
++
++static int glamodrm_probe(struct platform_device *pdev)
++{
++ int rc;
++ struct glamodrm_handle *gdrm;
++ struct glamo_core *core = dev_get_drvdata(pdev->dev.parent);
++
++ printk(KERN_INFO "[glamo-drm] SMedia Glamo Direct Rendering Support\n");
++
++ gdrm = kzalloc(sizeof(*gdrm), GFP_KERNEL);
++ if ( !gdrm )
++ return -ENOMEM;
++ platform_set_drvdata(pdev, gdrm);
++ gdrm->glamo_core = core;
++ gdrm->dev = &pdev->dev;
++
++ /* Find the command queue registers */
++ gdrm->reg = platform_get_resource_byname(pdev, IORESOURCE_MEM,
++ "glamo-cmdq-regs");
++ if ( !gdrm->reg ) {
++ dev_err(&pdev->dev, "Unable to find cmdq registers.\n");
++ rc = -ENOENT;
++ goto out_free;
++ }
++ gdrm->reg = request_mem_region(gdrm->reg->start,
++ resource_size(gdrm->reg), pdev->name);
++ if ( !gdrm->reg ) {
++ dev_err(&pdev->dev, "failed to request MMIO region\n");
++ rc = -ENOENT;
++ goto out_free;
++ }
++ gdrm->reg_base = ioremap_nocache(gdrm->reg->start,
++ resource_size(gdrm->reg));
++ if ( !gdrm->reg_base ) {
++ dev_err(&pdev->dev, "failed to ioremap() MMIO registers\n");
++ rc = -ENOENT;
++ goto out_release_regs;
++ }
++
++ /* Find the command queue itself */
++ gdrm->cmdq = platform_get_resource_byname(pdev, IORESOURCE_MEM,
++ "glamo-command-queue");
++ if ( !gdrm->cmdq ) {
++ dev_err(&pdev->dev, "Unable to find command queue.\n");
++ rc = -ENOENT;
++ goto out_unmap_regs;
++ }
++ gdrm->cmdq = request_mem_region(gdrm->cmdq->start,
++ resource_size(gdrm->cmdq), pdev->name);
++ if ( !gdrm->cmdq ) {
++ dev_err(&pdev->dev, "failed to request command queue region\n");
++ rc = -ENOENT;
++ goto out_unmap_regs;
++ }
++ gdrm->cmdq_base = ioremap_nocache(gdrm->cmdq->start,
++ resource_size(gdrm->cmdq));
++ if ( !gdrm->cmdq_base ) {
++ dev_err(&pdev->dev, "failed to ioremap() command queue\n");
++ rc = -ENOENT;
++ goto out_release_cmdq;
++ }
++
++ /* Find the VRAM */
++ gdrm->vram = platform_get_resource_byname(pdev, IORESOURCE_MEM,
++ "glamo-fb-mem");
++ if ( !gdrm->vram ) {
++ dev_err(&pdev->dev, "Unable to find VRAM.\n");
++ rc = -ENOENT;
++ goto out_unmap_cmdq;
++ }
++ gdrm->vram = request_mem_region(gdrm->vram->start,
++ resource_size(gdrm->vram), pdev->name);
++ if ( !gdrm->vram ) {
++ dev_err(&pdev->dev, "failed to request VRAM region\n");
++ rc = -ENOENT;
++ goto out_unmap_cmdq;
++ }
++
++ /* Find the LCD controller */
++ gdrm->lcd_regs = platform_get_resource_byname(pdev, IORESOURCE_MEM,
++ "glamo-fb-regs");
++ if ( !gdrm->lcd_regs ) {
++ dev_err(&pdev->dev, "Unable to find LCD registers.\n");
++ rc = -ENOENT;
++ goto out_release_vram;
++ }
++ gdrm->lcd_regs = request_mem_region(gdrm->lcd_regs->start,
++ resource_size(gdrm->lcd_regs),
++ pdev->name);
++ if ( !gdrm->lcd_regs ) {
++ dev_err(&pdev->dev, "failed to request LCD registers\n");
++ rc = -ENOENT;
++ goto out_release_vram;
++ }
++ gdrm->lcd_base = ioremap_nocache(gdrm->lcd_regs->start,
++ resource_size(gdrm->lcd_regs));
++ if ( !gdrm->lcd_base ) {
++ dev_err(&pdev->dev, "failed to ioremap() LCD registers\n");
++ rc = -ENOENT;
++ goto out_release_lcd;
++ }
++
++ /* Find the 2D engine */
++ gdrm->twod_regs = platform_get_resource(pdev, IORESOURCE_MEM, 4);
++ if ( !gdrm->twod_regs ) {
++ dev_err(&pdev->dev, "Unable to find 2D registers.\n");
++ rc = -ENOENT;
++ goto out_unmap_lcd;
++ }
++ gdrm->twod_regs = request_mem_region(gdrm->twod_regs->start,
++ resource_size(gdrm->twod_regs),
++ pdev->name);
++ if ( !gdrm->twod_regs ) {
++ dev_err(&pdev->dev, "failed to request 2D registers\n");
++ rc = -ENOENT;
++ goto out_unmap_lcd;
++ }
++ gdrm->twod_base = ioremap(gdrm->twod_regs->start,
++ resource_size(gdrm->twod_regs));
++ if ( !gdrm->twod_base ) {
++ dev_err(&pdev->dev, "failed to ioremap() 2D registers\n");
++ rc = -ENOENT;
++ goto out_release_2d;
++ }
++
++ /* Hook up IRQ handle for fence processing */
++ gdrm->twod_irq = platform_get_irq_byname(pdev, "glamo-2d-irq");
++ rc = request_irq(gdrm->twod_irq, glamo_fence_irq_handler,
++ IRQF_SHARED, pdev->name, gdrm);
++ if ( rc ) {
++ dev_err(&pdev->dev, "failed to register irq.\n");
++ goto out_unmap_2d;
++ }
++
++ gdrm->vram_size = GLAMO_FB_SIZE;
++ printk(KERN_INFO "[glamo-drm] %lli bytes of VRAM\n",
++ (long long int)gdrm->vram_size);
++
++ /* Initialise DRM */
++ drm_platform_init(&glamodrm_drm_driver, pdev, (void *)gdrm);
++
++ return 0;
++
++out_unmap_2d:
++ iounmap(gdrm->twod_base);
++out_release_2d:
++ release_mem_region(gdrm->twod_regs->start,
++ resource_size(gdrm->twod_regs));
++out_unmap_lcd:
++ iounmap(gdrm->lcd_base);
++out_release_lcd:
++ release_mem_region(gdrm->lcd_regs->start,
++ resource_size(gdrm->lcd_regs));
++out_release_vram:
++ release_mem_region(gdrm->vram->start, resource_size(gdrm->vram));
++out_unmap_cmdq:
++ iounmap(gdrm->cmdq_base);
++out_release_cmdq:
++ release_mem_region(gdrm->cmdq->start, resource_size(gdrm->cmdq));
++out_unmap_regs:
++ iounmap(gdrm->reg_base);
++out_release_regs:
++ release_mem_region(gdrm->reg->start, resource_size(gdrm->reg));
++out_free:
++ kfree(gdrm);
++ pdev->dev.driver_data = NULL;
++ return rc;
++}
++
++
++static int glamodrm_remove(struct platform_device *pdev)
++{
++ struct glamodrm_handle *gdrm = platform_get_drvdata(pdev);
++
++ glamo_buffer_final(gdrm);
++ glamo_cmdq_shutdown(gdrm);
++
++ drm_exit(&glamodrm_drm_driver);
++
++ platform_set_drvdata(pdev, NULL);
++
++ /* Release registers */
++ iounmap(gdrm->reg_base);
++ release_mem_region(gdrm->reg->start, resource_size(gdrm->reg));
++
++ /* Release VRAM */
++ release_mem_region(gdrm->vram->start, resource_size(gdrm->vram));
++
++ /* Release command queue */
++ iounmap(gdrm->cmdq_base);
++ release_mem_region(gdrm->cmdq->start, resource_size(gdrm->cmdq));
++
++ /* Release 2D engine */
++ free_irq(gdrm->twod_irq, gdrm);
++ iounmap(gdrm->twod_base);
++ release_mem_region(gdrm->twod_regs->start,
++ resource_size(gdrm->twod_regs));
++
++ kfree(gdrm);
++
++ return 0;
++}
++
++
++static int glamodrm_suspend(struct platform_device *pdev, pm_message_t state)
++{
++ struct glamodrm_handle *gdrm = platform_get_drvdata(pdev);
++
++ glamo_kmsfb_suspend(gdrm);
++ glamo_display_suspend(gdrm);
++ glamo_cmdq_suspend(gdrm);
++
++ /* glamo_core.c will suspend the engines for us */
++
++ return 0;
++}
++
++
++static int glamodrm_resume(struct platform_device *pdev)
++{
++ struct glamodrm_handle *gdrm = platform_get_drvdata(pdev);
++
++ glamo_cmdq_resume(gdrm);
++ glamo_display_resume(gdrm);
++ glamo_kmsfb_resume(gdrm);
++
++ return 0;
++}
++
++
++static struct platform_driver glamodrm_driver = {
++ .probe = glamodrm_probe,
++ .remove = glamodrm_remove,
++ .suspend = glamodrm_suspend,
++ .resume = glamodrm_resume,
++ .driver = {
++ .name = "glamo-fb",
++ .owner = THIS_MODULE,
++ },
++};
++
++
++static int __devinit glamodrm_init(void)
++{
++ glamodrm_drm_driver.num_ioctls = DRM_ARRAY_SIZE(glamo_ioctls);
++ return platform_driver_register(&glamodrm_driver);
++}
++
++
++static void __exit glamodrm_exit(void)
++{
++ platform_driver_unregister(&glamodrm_driver);
++}
++
++
++module_init(glamodrm_init);
++module_exit(glamodrm_exit);
++
++MODULE_AUTHOR(DRIVER_AUTHOR);
++MODULE_DESCRIPTION(DRIVER_DESC);
++MODULE_LICENSE("GPL");
+diff --git a/drivers/mfd/glamo/glamo-drm-private.h b/drivers/mfd/glamo/glamo-drm-private.h
+new file mode 100644
+index 0000000..7949a2e
+--- /dev/null
++++ b/drivers/mfd/glamo/glamo-drm-private.h
+@@ -0,0 +1,156 @@
++/* Smedia Glamo 336x/337x DRM private bits
++ *
++ * Copyright (C) 2008-2009 Thomas White <taw@bitwiz.org.uk>
++ * Copyright (C) 2009 Andreas Pokorny <andreas.pokorny@gmail.com>
++ * Based on xf86-video-glamo
++ * Copyright 2007 OpenMoko, Inc.
++ * Copyright © 2009 Lars-Peter Clausen <lars@metafoo.de>
++ *
++ * All rights reserved.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ * MA 02111-1307 USA
++ */
++
++#ifndef __GLAMO_DRMPRIV_H
++#define __GLAMO_DRMPRIV_H
++
++
++#include <linux/module.h>
++#include <linux/platform_device.h>
++#include <linux/semaphore.h>
++#include <linux/spinlock.h>
++#include <linux/wait.h>
++
++#include "glamo-core.h"
++
++
++/* Memory to allocate for the framebuffer.
++ * The rest is reserved for the DRM memory manager */
++#define GLAMO_FRAMEBUFFER_ALLOCATION (2*480*640)
++
++
++struct glamodrm_handle {
++
++ /* This device */
++ struct device *dev;
++
++ /* The parent device handle */
++ struct glamo_core *glamo_core;
++
++ /* Framebuffer handle for the console (i.e. /dev/fb0) */
++ struct fb_info *fb;
++
++ /* Command queue registers */
++ struct resource *reg;
++ char __iomem *reg_base;
++
++ /* VRAM region */
++ struct resource *vram;
++
++ /* Command queue region */
++ struct resource *cmdq;
++ char __iomem *cmdq_base;
++
++ /* LCD controller registers */
++ struct resource *lcd_regs;
++ char __iomem *lcd_base;
++
++ /* 2D engine registers and IRQ */
++ struct resource *twod_regs;
++ char __iomem *twod_base;
++ unsigned int twod_irq;
++
++ ssize_t vram_size;
++
++ /* Memory management */
++ struct drm_mm *mmgr;
++
++ /* semaphore against concurrent ioctl */
++ struct semaphore add_to_ring;
++
++ /* Saved state */
++ u_int16_t saved_clock;
++ u_int16_t saved_width;
++ u_int16_t saved_height;
++ u_int16_t saved_pitch;
++ u_int16_t saved_htotal;
++ u_int16_t saved_hrtrst;
++ u_int16_t saved_hrtren;
++ u_int16_t saved_hdspst;
++ u_int16_t saved_hdspen;
++ u_int16_t saved_vtotal;
++ u_int16_t saved_vrtrst;
++ u_int16_t saved_vrtren;
++ u_int16_t saved_vdspst;
++ u_int16_t saved_vdspen;
++
++ /* Fencing */
++ atomic_t curr_seq; /* The last used stamp number */
++ struct list_head fence_list; /* List of active fences */
++ rwlock_t fence_list_lock; /* Lock to protect fence_list */
++ wait_queue_head_t fence_queue; /* Waitqueue */
++ struct tasklet_struct fence_tl; /* Tasklet for fence IRQ */
++
++ /* A scratch block */
++ struct drm_mm_node *scratch;
++};
++
++
++/* Private data. This is where we keep our memory management bits */
++struct drm_glamo_gem_object {
++ struct drm_gem_object *obj; /* The GEM object this refers to */
++ struct drm_mm_node *block; /* Block handle for drm_mm */
++ uint64_t mmap_offset;
++};
++
++
++struct glamo_crtc {
++ struct drm_crtc base;
++ struct glamodrm_handle *gdrm;
++ /* a mode_set for fbdev users on this crtc */
++ struct drm_mode_set mode_set;
++ int blank_mode;
++};
++
++
++struct glamo_framebuffer {
++ struct drm_framebuffer base;
++ struct drm_gem_object *obj;
++};
++
++
++struct glamo_output {
++ struct drm_connector base;
++ struct drm_encoder enc;
++ struct glamodrm_handle *gdrm;
++};
++
++
++/* Colour mode for KMS framebuffer */
++enum {
++ GLAMO_FB_RGB565,
++ GLAMO_FB_ARGB1555,
++ GLAMO_FB_ARGB4444
++};
++
++
++#define to_glamo_crtc(x) container_of(x, struct glamo_crtc, base)
++#define to_glamo_output(x) container_of(x, struct glamo_output, base)
++#define enc_to_glamo_output(x) container_of(x, struct glamo_output, enc)
++#define to_glamo_framebuffer(x) container_of(x, struct glamo_framebuffer, base)
++
++
++#endif /* __GLAMO_DRMPRIV_H */
+diff --git a/drivers/mfd/glamo/glamo-fence.c b/drivers/mfd/glamo/glamo-fence.c
+new file mode 100644
+index 0000000..ab77241
+--- /dev/null
++++ b/drivers/mfd/glamo/glamo-fence.c
+@@ -0,0 +1,329 @@
++/*
++ * SMedia Glamo 336x/337x fence objects
++ *
++ * Copyright (c) 2009 Thomas White <taw@bitwiz.org.uk>
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ *
++ *
++ * Loosely based on radeon_fence.c, to which the following notice applies:
++ *
++ * Copyright 2009 Jerome Glisse.
++ * All Rights Reserved.
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the
++ * "Software"), to deal in the Software without restriction, including
++ * without limitation the rights to use, copy, modify, merge, publish,
++ * distribute, sub license, and/or sell copies of the Software, and to
++ * permit persons to whom the Software is furnished to do so, subject to
++ * the following conditions:
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
++ * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
++ * USE OR OTHER DEALINGS IN THE SOFTWARE.
++ *
++ * The above copyright notice and this permission notice (including the
++ * next paragraph) shall be included in all copies or substantial portions
++ * of the Software.
++ *
++ */
++/*
++ * Authors:
++ * Jerome Glisse <glisse@freedesktop.org>
++ * Dave Airlie
++ */
++
++
++#include <drm/drmP.h>
++#include <drm/glamo_drm.h>
++#include <linux/kernel.h>
++#include <linux/irq.h>
++#include <linux/interrupt.h>
++#include <linux/spinlock.h>
++#include <linux/lockdep.h>
++
++#include "glamo-drm-private.h"
++#include "glamo-regs.h"
++#include "glamo-core.h"
++#include "glamo-cmdq.h"
++
++
++static struct lock_class_key glamo_fence_lock_key;
++
++
++struct glamo_fence
++{
++ struct list_head list;
++ uint16_t seq; /* Wait for at least this ID */
++ int signalled; /* Non-zero when fence has passed */
++ struct glamodrm_handle *gdrm;
++};
++
++
++static void glamo_fence_emit(struct glamo_fence *fence)
++{
++ u16 fring[6];
++
++ fring[0] = 0x8000 | GLAMO_REG_2D_ID1;
++ fring[1] = 3;
++ fence->seq = atomic_inc_return(&fence->gdrm->curr_seq);
++ if ( fence->seq > 1<<14 ) {
++ atomic_set(&fence->gdrm->curr_seq, 0);
++ fence->seq = atomic_inc_return(&fence->gdrm->curr_seq);
++ }
++ fring[2] = 1<<15 | fence->seq;
++ fring[3] = 0; /* Unused */
++ fring[4] = 0; /* Unused */
++ fring[5] = 0; /* Padding */
++
++ glamo_add_to_ring(fence->gdrm, fring, 12);
++}
++
++
++static void glamo_fence_enable(struct glamodrm_handle *gdrm)
++{
++ glamo_enable_irq(gdrm->glamo_core, GLAMO_IRQ_2D);
++}
++
++
++static inline u16 reg_read_2d(struct glamodrm_handle *gdrm, u_int16_t reg)
++{
++ /* For command queue, the address is given relative to
++ * the overall base of Glamo. This isn't the case here. */
++ return ioread16(gdrm->twod_base + reg-GLAMO_REGOFS_2D);
++}
++
++
++static inline u16 reg_read_cmdq(struct glamodrm_handle *gdrm, u_int16_t reg)
++{
++ return ioread16(gdrm->reg_base + reg);
++}
++
++
++static void glamo_cmdq_wait(struct glamodrm_handle *gdrm,
++ enum glamo_engine engine)
++{
++ u16 mask, val, status;
++ int i;
++
++ switch (engine)
++ {
++ case GLAMO_ENGINE_ALL:
++ mask = 1 << 2;
++ val = mask;
++ break;
++ default:
++ return;
++ }
++
++ for ( i=0; i<1000; i++ ) {
++ status = reg_read_cmdq(gdrm, GLAMO_REG_CMDQ_STATUS);
++ if ((status & mask) == val) break;
++ mdelay(1);
++ }
++ if ( i == 1000 ) {
++ size_t ring_read;
++ printk(KERN_WARNING "[glamo-drm] CmdQ timeout!\n");
++ printk(KERN_WARNING "[glamo-drm] status = %x\n", status);
++ ring_read = reg_read_cmdq(gdrm, GLAMO_REG_CMDQ_READ_ADDRL);
++ ring_read |= ((reg_read_cmdq(gdrm, GLAMO_REG_CMDQ_READ_ADDRH)
++ & 0x7) << 16);
++ printk(KERN_INFO "[glamo-drm] ring_read now 0x%x\n",
++ ring_read);
++ }
++}
++
++
++irqreturn_t glamo_fence_irq_handler(unsigned int irq, void *data)
++{
++ struct glamodrm_handle *gdrm = data;
++
++ if (!gdrm) {
++ printk(KERN_ERR "[glamo-drm] 2D IRQ called with no data\n");
++ return IRQ_NONE;
++ }
++ glamo_clear_irq(gdrm->glamo_core, GLAMO_IRQ_2D);
++
++ tasklet_schedule(&gdrm->fence_tl);
++
++ return IRQ_HANDLED;
++}
++
++
++/* This is nasty. I'm sorry. */
++static void glamo_fence_debodge(struct glamodrm_handle *gdrm)
++{
++ struct list_head *tmp;
++
++ printk(KERN_ERR "[glamo-drm] Attempting to recover...\n");
++
++ glamo_cmdq_wait(gdrm, GLAMO_ENGINE_ALL);
++ glamo_engine_reset(gdrm->glamo_core, GLAMO_ENGINE_2D);
++
++ read_lock(&gdrm->fence_list_lock);
++ list_for_each(tmp, &gdrm->fence_list) {
++
++ struct glamo_fence *fence;
++
++ fence = list_entry(tmp, struct glamo_fence, list);
++
++ if ( fence->signalled != 1 ) {
++ printk(KERN_ERR "[glamo-drm] Fence seq#%i was not"
++ " signalled\n", fence->seq);
++ }
++ fence->signalled = 1;
++
++ }
++ read_unlock(&gdrm->fence_list_lock);
++
++ wake_up_all(&gdrm->fence_queue);
++}
++
++
++static void glamo_fence_tl(unsigned long data)
++{
++ struct glamodrm_handle *gdrm = (struct glamodrm_handle *)data;
++ int wake = 0;
++ u16 seq;
++ struct list_head *tmp;
++
++ seq = reg_read_2d(gdrm, GLAMO_REG_2D_ID1) & 0x7fff;
++
++ read_lock(&gdrm->fence_list_lock);
++ list_for_each(tmp, &gdrm->fence_list) {
++
++ struct glamo_fence *fence;
++
++ fence = list_entry(tmp, struct glamo_fence, list);
++ if ( seq >= fence->seq ) {
++ fence->signalled = 1;
++ wake = 1;
++ }
++
++ }
++ read_unlock(&gdrm->fence_list_lock);
++
++ if ( wake ) wake_up_all(&gdrm->fence_queue);
++}
++
++
++static struct glamo_fence *glamo_fence_new(struct glamodrm_handle *gdrm)
++{
++ struct glamo_fence *fence;
++ unsigned long irq_flags;
++
++ fence = kmalloc(sizeof(*fence), GFP_KERNEL);
++ fence->signalled = 0;
++ fence->gdrm = gdrm;
++
++ /* Add to list */
++ write_lock_irqsave(&gdrm->fence_list_lock, irq_flags);
++ list_add(&fence->list, &gdrm->fence_list);
++ write_unlock_irqrestore(&gdrm->fence_list_lock, irq_flags);
++
++ return fence;
++}
++
++
++static struct glamo_fence *glamo_fence_destroy(struct glamo_fence *fence)
++{
++ unsigned long irq_flags;
++ struct glamodrm_handle *gdrm = fence->gdrm;
++
++ /* Remove from list */
++ write_lock_irqsave(&gdrm->fence_list_lock, irq_flags);
++ list_del(&fence->list);
++ write_unlock_irqrestore(&gdrm->fence_list_lock, irq_flags);
++
++ kfree(fence);
++
++ return fence;
++}
++
++
++int glamo_ioctl_wait_rendering(struct drm_device *dev, void *data,
++ struct drm_file *file_priv)
++{
++ struct glamodrm_handle *gdrm;
++ struct drm_glamo_gem_wait_rendering *args = data;
++ struct glamo_fence *fence;
++ int r;
++
++ gdrm = dev->dev_private;
++
++ if ( !args->have_handle ) {
++ glamo_cmdq_wait(gdrm, GLAMO_ENGINE_ALL);
++ return 0;
++ }
++
++ fence = glamo_fence_new(gdrm);
++ if ( fence == NULL ) {
++ printk(KERN_WARNING "[glamo-drm] Couldn't allocate fence -"
++ " falling back to busy wait.\n");
++ glamo_cmdq_wait(gdrm, GLAMO_ENGINE_ALL);
++ return 0;
++ }
++
++ glamo_fence_emit(fence);
++
++ /* Wait... */
++ r = wait_event_interruptible_timeout(gdrm->fence_queue,
++ fence->signalled, HZ);
++ if ( r == 0 ) {
++ printk(KERN_ERR "[glamo-drm] Timeout!\n");
++ glamo_fence_debodge(gdrm);
++ }
++
++ glamo_fence_destroy(fence);
++
++ return 0;
++}
++
++
++void glamo_fence_init(struct glamodrm_handle *gdrm)
++{
++ unsigned long irq_flags;
++
++ if ( gdrm->twod_irq == 0 ) {
++ printk(KERN_ERR "[glamo-drm] Attempted to initialise fence"
++ " system before 2D IRQ registered\n");
++ return;
++ }
++
++ gdrm->fence_list_lock = __RW_LOCK_UNLOCKED(gdrm->fence_list_lock);
++ lockdep_set_class(&gdrm->fence_list_lock, &glamo_fence_lock_key);
++ init_waitqueue_head(&gdrm->fence_queue);
++
++ atomic_set(&gdrm->curr_seq, 0);
++
++ write_lock_irqsave(&gdrm->fence_list_lock, irq_flags);
++ INIT_LIST_HEAD(&gdrm->fence_list);
++ write_unlock_irqrestore(&gdrm->fence_list_lock, irq_flags);
++
++ tasklet_init(&gdrm->fence_tl, glamo_fence_tl, (unsigned long)gdrm);
++
++ glamo_fence_enable(gdrm);
++}
++
++
++void glamo_fence_shutdown(struct glamodrm_handle *gdrm)
++{
++ wake_up_all(&gdrm->fence_queue);
++ tasklet_kill(&gdrm->fence_tl);
++}
+diff --git a/drivers/mfd/glamo/glamo-fence.h b/drivers/mfd/glamo/glamo-fence.h
+new file mode 100644
+index 0000000..948fae3
+--- /dev/null
++++ b/drivers/mfd/glamo/glamo-fence.h
+@@ -0,0 +1,36 @@
++/*
++ * SMedia Glamo 336x/337x fence objects
++ *
++ * Copyright (c) 2009 Thomas White <taw@bitwiz.org.uk>
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ *
++ */
++
++#ifndef __GLAMO_FENCE_H
++#define __GLAMO_FENCE_H
++
++#include <drm/drmP.h>
++
++#include "glamo-drm-private.h"
++
++extern void glamo_fence_irq_handler(unsigned int irq, struct irq_desc *desc);
++
++extern void glamo_fence_init(struct glamodrm_handle *gdrm);
++extern void glamo_fence_shutdown(struct glamodrm_handle *gdrm);
++
++extern int glamo_ioctl_wait_rendering(struct drm_device *dev, void *data,
++ struct drm_file *file_priv);
++
++#endif /* __GLAMO_FENCE_H */
+diff --git a/drivers/mfd/glamo/glamo-kms-fb.c b/drivers/mfd/glamo/glamo-kms-fb.c
+new file mode 100644
+index 0000000..61cd605
+--- /dev/null
++++ b/drivers/mfd/glamo/glamo-kms-fb.c
+@@ -0,0 +1,540 @@
++/*
++ * SMedia Glamo 336x/337x KMS Framebuffer
++ *
++ * Copyright (C) 2009 Thomas White <taw@bitwiz.org.uk>
++ *
++ * Based on glamo-fb.c (C) 2007-2008 by Openmoko, Inc.
++ * Author: Harald Welte <laforge@openmoko.org>
++ * All rights reserved.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ * MA 02111-1307 USA
++ *
++ *
++ * Based on intel_fb.c from drivers/gpu/drm/i915
++ * to which the following licence applies:
++ *
++ * Copyright © 2006-2007 Intel Corporation
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the "Software"),
++ * to deal in the Software without restriction, including without limitation
++ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
++ * and/or sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice (including the next
++ * paragraph) shall be included in all copies or substantial portions of the
++ * Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
++ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++ * DEALINGS IN THE SOFTWARE.
++ *
++ * Authors:
++ * Eric Anholt <eric@anholt.net>
++ *
++ */
++
++
++#include <drm/drmP.h>
++#include <drm/glamo_drm.h>
++#include <drm/drm_crtc_helper.h>
++#include <drm/drm_crtc.h>
++
++#include "glamo-core.h"
++#include "glamo-drm-private.h"
++#include "glamo-display.h"
++#include "glamo-buffer.h"
++
++
++struct glamofb_par {
++ struct drm_device *dev;
++ struct drm_display_mode *our_mode;
++ struct glamo_framebuffer *glamo_fb;
++ int crtc_count;
++ /* crtc currently bound to this */
++ uint32_t crtc_ids[2];
++};
++
++
++static int glamofb_setcolreg(unsigned regno, unsigned red, unsigned green,
++ unsigned blue, unsigned transp,
++ struct fb_info *info)
++{
++ struct glamofb_par *par = info->par;
++ struct drm_device *dev = par->dev;
++ struct drm_crtc *crtc;
++ int i;
++
++ list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
++ struct glamo_crtc *glamo_crtc = to_glamo_crtc(crtc);
++ struct drm_mode_set *modeset = &glamo_crtc->mode_set;
++ struct drm_framebuffer *fb = modeset->fb;
++
++ for (i = 0; i < par->crtc_count; i++)
++ if (crtc->base.id == par->crtc_ids[i])
++ break;
++
++ if (i == par->crtc_count)
++ continue;
++
++
++ if (regno > 255)
++ return 1;
++
++ if (regno < 16) {
++ switch (fb->depth) {
++ case 15:
++ fb->pseudo_palette[regno] = ((red & 0xf800) >> 1) |
++ ((green & 0xf800) >> 6) |
++ ((blue & 0xf800) >> 11);
++ break;
++ case 16:
++ fb->pseudo_palette[regno] = (red & 0xf800) |
++ ((green & 0xfc00) >> 5) |
++ ((blue & 0xf800) >> 11);
++ break;
++ case 24:
++ case 32:
++ fb->pseudo_palette[regno] = ((red & 0xff00) << 8) |
++ (green & 0xff00) |
++ ((blue & 0xff00) >> 8);
++ break;
++ }
++ }
++ }
++ return 0;
++}
++
++static int glamofb_check_var(struct fb_var_screeninfo *var,
++ struct fb_info *info)
++{
++ struct glamofb_par *par = info->par;
++ struct glamo_framebuffer *glamo_fb = par->glamo_fb;
++ struct drm_framebuffer *fb = &glamo_fb->base;
++ int depth;
++
++ /* Need to resize the fb object !!! */
++ if (var->xres > fb->width || var->yres > fb->height) {
++ DRM_ERROR("Cannot resize framebuffer object (%dx%d > %dx%d)\n",
++ var->xres,var->yres,fb->width,fb->height);
++ DRM_ERROR("Need resizing code.\n");
++ return -EINVAL;
++ }
++
++ switch (var->bits_per_pixel) {
++ case 16:
++ depth = (var->green.length == 6) ? 16 : 15;
++ break;
++ case 32:
++ depth = (var->transp.length > 0) ? 32 : 24;
++ break;
++ default:
++ depth = var->bits_per_pixel;
++ break;
++ }
++
++ switch (depth) {
++ case 16:
++ var->red.offset = 11;
++ var->green.offset = 5;
++ var->blue.offset = 0;
++ var->red.length = 5;
++ var->green.length = 6;
++ var->blue.length = 5;
++ var->transp.length = 0;
++ var->transp.offset = 0;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++/* this will let fbcon do the mode init */
++/* FIXME: take mode config lock? */
++static int glamofb_set_par(struct fb_info *info)
++{
++ struct glamofb_par *par = info->par;
++ struct drm_device *dev = par->dev;
++ struct fb_var_screeninfo *var = &info->var;
++ int i;
++
++ DRM_DEBUG("%d %d\n", var->xres, var->pixclock);
++
++ if (var->pixclock != -1) {
++
++ DRM_ERROR("PIXEL CLOCK SET\n");
++ return -EINVAL;
++ } else {
++ struct drm_crtc *crtc;
++ int ret;
++
++ list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
++ struct glamo_crtc *glamo_crtc = to_glamo_crtc(crtc);
++
++ for (i = 0; i < par->crtc_count; i++)
++ if (crtc->base.id == par->crtc_ids[i])
++ break;
++
++ if (i == par->crtc_count)
++ continue;
++
++ if (crtc->fb == glamo_crtc->mode_set.fb) {
++ mutex_lock(&dev->mode_config.mutex);
++ ret = crtc->funcs->set_config(&glamo_crtc->mode_set);
++ mutex_unlock(&dev->mode_config.mutex);
++ if (ret)
++ return ret;
++ }
++ }
++ return 0;
++ }
++}
++
++static int glamofb_pan_display(struct fb_var_screeninfo *var,
++ struct fb_info *info)
++{
++ struct glamofb_par *par = info->par;
++ struct drm_device *dev = par->dev;
++ struct drm_mode_set *modeset;
++ struct drm_crtc *crtc;
++ struct glamo_crtc *glamo_crtc;
++ int ret = 0;
++ int i;
++
++ list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
++ for (i = 0; i < par->crtc_count; i++)
++ if (crtc->base.id == par->crtc_ids[i])
++ break;
++
++ if (i == par->crtc_count)
++ continue;
++
++ glamo_crtc = to_glamo_crtc(crtc);
++ modeset = &glamo_crtc->mode_set;
++
++ modeset->x = var->xoffset;
++ modeset->y = var->yoffset;
++
++ if (modeset->num_connectors) {
++ mutex_lock(&dev->mode_config.mutex);
++ ret = crtc->funcs->set_config(modeset);
++ mutex_unlock(&dev->mode_config.mutex);
++ if (!ret) {
++ info->var.xoffset = var->xoffset;
++ info->var.yoffset = var->yoffset;
++ }
++ }
++ }
++
++ return ret;
++}
++
++static void glamofb_on(struct fb_info *info)
++{
++ struct glamofb_par *par = info->par;
++ struct drm_device *dev = par->dev;
++ struct drm_crtc *crtc;
++ struct drm_encoder *encoder;
++ int i;
++
++ /*
++ * For each CRTC in this fb, find all associated encoders
++ * and turn them off, then turn off the CRTC.
++ */
++ list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
++ struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private;
++
++ for (i = 0; i < par->crtc_count; i++)
++ if (crtc->base.id == par->crtc_ids[i])
++ break;
++
++ crtc_funcs->dpms(crtc, DRM_MODE_DPMS_ON);
++
++ /* Found a CRTC on this fb, now find encoders */
++ list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) {
++ if (encoder->crtc == crtc) {
++ struct drm_encoder_helper_funcs *encoder_funcs;
++ encoder_funcs = encoder->helper_private;
++ encoder_funcs->dpms(encoder, DRM_MODE_DPMS_ON);
++ }
++ }
++ }
++}
++
++static void glamofb_off(struct fb_info *info, int dpms_mode)
++{
++ struct glamofb_par *par = info->par;
++ struct drm_device *dev = par->dev;
++ struct drm_crtc *crtc;
++ struct drm_encoder *encoder;
++ int i;
++
++ /*
++ * For each CRTC in this fb, find all associated encoders
++ * and turn them off, then turn off the CRTC.
++ */
++ list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
++ struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private;
++
++ for (i = 0; i < par->crtc_count; i++)
++ if (crtc->base.id == par->crtc_ids[i])
++ break;
++
++ /* Found a CRTC on this fb, now find encoders */
++ list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) {
++ if (encoder->crtc == crtc) {
++ struct drm_encoder_helper_funcs *encoder_funcs;
++ encoder_funcs = encoder->helper_private;
++ encoder_funcs->dpms(encoder, dpms_mode);
++ }
++ }
++ if (dpms_mode == DRM_MODE_DPMS_OFF)
++ crtc_funcs->dpms(crtc, dpms_mode);
++ }
++}
++
++static int glamofb_blank(int blank, struct fb_info *info)
++{
++ switch (blank) {
++ case FB_BLANK_UNBLANK:
++ glamofb_on(info);
++ break;
++ case FB_BLANK_NORMAL:
++ glamofb_off(info, DRM_MODE_DPMS_STANDBY);
++ break;
++ case FB_BLANK_HSYNC_SUSPEND:
++ glamofb_off(info, DRM_MODE_DPMS_STANDBY);
++ break;
++ case FB_BLANK_VSYNC_SUSPEND:
++ glamofb_off(info, DRM_MODE_DPMS_SUSPEND);
++ break;
++ case FB_BLANK_POWERDOWN:
++ glamofb_off(info, DRM_MODE_DPMS_OFF);
++ break;
++ }
++ return 0;
++}
++
++static struct fb_ops glamofb_ops = {
++ .owner = THIS_MODULE,
++ .fb_check_var = glamofb_check_var,
++ .fb_set_par = glamofb_set_par,
++ .fb_setcolreg = glamofb_setcolreg,
++ .fb_fillrect = cfb_fillrect,
++ .fb_copyarea = cfb_copyarea,
++ .fb_imageblit = cfb_imageblit,
++ .fb_pan_display = glamofb_pan_display,
++ .fb_blank = glamofb_blank,
++};
++
++
++#define RESSIZE(ressource) (((ressource)->end - (ressource)->start)+1)
++
++
++/* Here, we create a GEM object of the correct size, and then turn it into
++ * /dev/fbX so that the kernel can put a console on it. */
++int glamofb_create(struct drm_device *dev, uint32_t fb_width,
++ uint32_t fb_height, uint32_t surface_width,
++ uint32_t surface_height, int colour_mode,
++ struct glamo_framebuffer **glamo_fb_p)
++{
++ struct fb_info *info;
++ struct glamofb_par *par;
++ struct drm_framebuffer *fb;
++ struct glamo_framebuffer *glamo_fb;
++ struct drm_mode_fb_cmd mode_cmd;
++ struct drm_gem_object *fbo = NULL;
++ struct drm_glamo_gem_object *gobj;
++ struct device *device = &dev->platform_dev->dev;
++ struct glamodrm_handle *gdrm;
++ int size, ret;
++ unsigned long offs;
++
++ gdrm = dev->dev_private;
++
++ mode_cmd.width = surface_width;
++ mode_cmd.height = surface_height;
++
++ mode_cmd.bpp = 16;
++ mode_cmd.pitch = ALIGN(mode_cmd.width * ((mode_cmd.bpp + 1) / 8), 64);
++ mode_cmd.depth = 16;
++
++ size = mode_cmd.pitch * mode_cmd.height;
++ size = ALIGN(size, PAGE_SIZE);
++ if ( size > GLAMO_FRAMEBUFFER_ALLOCATION ) {
++ printk(KERN_ERR "[glamo-drm] Not enough memory for fb\n");
++ ret = -ENOMEM;
++ goto out;
++ }
++ fbo = glamo_gem_object_alloc(dev, GLAMO_FRAMEBUFFER_ALLOCATION, 2);
++ if (!fbo) {
++ printk(KERN_ERR "[glamo-drm] Failed to allocate framebuffer\n");
++ ret = -ENOMEM;
++ goto out;
++ }
++ gobj = fbo->driver_private;
++
++ mutex_lock(&dev->struct_mutex);
++
++ ret = glamo_framebuffer_create(dev, &mode_cmd, &fb, fbo);
++ if (ret) {
++ DRM_ERROR("failed to allocate fb.\n");
++ goto out_unref;
++ }
++
++ list_add(&fb->filp_head, &dev->mode_config.fb_kernel_list);
++
++ glamo_fb = to_glamo_framebuffer(fb);
++ *glamo_fb_p = glamo_fb;
++
++ info = framebuffer_alloc(sizeof(struct glamofb_par), device);
++ if (!info) {
++ ret = -ENOMEM;
++ goto out_unref;
++ }
++
++ par = info->par;
++
++ strcpy(info->fix.id, "glamodrmfb");
++ info->fix.type = FB_TYPE_PACKED_PIXELS;
++ info->fix.visual = FB_VISUAL_TRUECOLOR;
++ info->fix.type_aux = 0;
++ info->fix.xpanstep = 1; /* doing it in hw */
++ info->fix.ypanstep = 1; /* doing it in hw */
++ info->fix.ywrapstep = 0;
++ info->fix.accel = FB_ACCEL_GLAMO;
++ info->fix.type_aux = 0;
++ info->flags = FBINFO_DEFAULT;
++
++ info->fbops = &glamofb_ops;
++
++ info->fix.line_length = fb->pitch;
++ info->fix.smem_start = dev->mode_config.fb_base
++ + (unsigned long) gdrm->vram->start;
++ info->fix.smem_len = size;
++
++ info->flags = FBINFO_DEFAULT;
++
++ offs = gobj->block->start;
++ info->screen_base = ioremap(gdrm->vram->start + offs + GLAMO_OFFSET_FB,
++ GLAMO_FRAMEBUFFER_ALLOCATION);
++ if (!info->screen_base) {
++ printk(KERN_ERR "[glamo-drm] Couldn't map framebuffer!\n");
++ ret = -ENOSPC;
++ goto out_unref;
++ }
++ info->screen_size = size;
++
++ info->pseudo_palette = fb->pseudo_palette;
++ info->var.xres_virtual = fb->width;
++ info->var.yres_virtual = fb->height;
++ info->var.bits_per_pixel = fb->bits_per_pixel;
++ info->var.xoffset = 0;
++ info->var.yoffset = 0;
++ info->var.activate = FB_ACTIVATE_NOW;
++ info->var.height = -1;
++ info->var.width = -1;
++ info->var.xres = fb_width;
++ info->var.yres = fb_height;
++
++ info->fix.mmio_start = 0;
++ info->fix.mmio_len = 0;
++
++ info->pixmap.size = 64*1024;
++ info->pixmap.buf_align = 8;
++ info->pixmap.access_align = 32;
++ info->pixmap.flags = FB_PIXMAP_SYSTEM;
++ info->pixmap.scan_align = 1;
++
++ switch (fb->depth) {
++ case 16:
++ switch ( colour_mode ) {
++ case GLAMO_FB_RGB565:
++ info->var.red.offset = 11;
++ info->var.green.offset = 5;
++ info->var.blue.offset = 0;
++ info->var.red.length = 5;
++ info->var.green.length = 6;
++ info->var.blue.length = 5;
++ info->var.transp.length = 0;
++ break;
++ case GLAMO_FB_ARGB1555:
++ info->var.transp.offset = 15;
++ info->var.red.offset = 10;
++ info->var.green.offset = 5;
++ info->var.blue.offset = 0;
++ info->var.transp.length = 1;
++ info->var.red.length = 5;
++ info->var.green.length = 5;
++ info->var.blue.length = 5;
++ break;
++ case GLAMO_FB_ARGB4444:
++ info->var.transp.offset = 12;
++ info->var.red.offset = 8;
++ info->var.green.offset = 4;
++ info->var.blue.offset = 0;
++ info->var.transp.length = 4;
++ info->var.red.length = 4;
++ info->var.green.length = 4;
++ info->var.blue.length = 4;
++ break;
++ }
++ break;
++ case 24:
++ case 32:
++ default:
++ /* The Smedia Glamo doesn't support anything but 16bit color */
++ printk(KERN_ERR "[glamo-drm] Only 16bpp is supported.\n");
++ return -EINVAL;
++ }
++
++ fb->fbdev = info;
++ par->glamo_fb = glamo_fb;
++ par->dev = dev;
++ gdrm->fb = info;
++
++ info->var.pixclock = -1;
++
++ printk(KERN_INFO "[glamo-drm] Allocated %dx%d fb: bo %p\n",
++ glamo_fb->base.width, glamo_fb->base.height, fbo);
++ mutex_unlock(&dev->struct_mutex);
++ return 0;
++
++out_unref:
++ drm_gem_object_unreference(fbo);
++ mutex_unlock(&dev->struct_mutex);
++out:
++ return ret;
++}
++
++
++void glamo_kmsfb_suspend(struct glamodrm_handle *gdrm)
++{
++ fb_set_suspend(gdrm->fb, 1);
++}
++
++
++void glamo_kmsfb_resume(struct glamodrm_handle *gdrm)
++{
++ fb_set_suspend(gdrm->fb, 0);
++}
+diff --git a/drivers/mfd/glamo/glamo-kms-fb.h b/drivers/mfd/glamo/glamo-kms-fb.h
+new file mode 100644
+index 0000000..1960e76
+--- /dev/null
++++ b/drivers/mfd/glamo/glamo-kms-fb.h
+@@ -0,0 +1,41 @@
++/*
++ * SMedia Glamo 336x/337x KMS framebuffer
++ *
++ * Copyright (C) 2009 Thomas White <taw@bitwiz.org.uk>
++ *
++ * Based on glamo-fb.c (C) 2007-2008 by Openmoko, Inc.
++ * Author: Harald Welte <laforge@openmoko.org>
++ * All rights reserved.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ * MA 02111-1307 USA
++ *
++ */
++
++#ifndef __GLAMO_KMS_FB_H
++#define __GLAMO_KMS_FB_H
++
++#include <drm/drmP.h>
++#include "glamo-drm-private.h"
++
++extern int glamofb_create(struct drm_device *dev, uint32_t fb_width,
++ uint32_t fb_height, uint32_t surface_width,
++ uint32_t surface_height, int colour_mode,
++ struct glamo_framebuffer **glamo_fb_p);
++
++extern void glamo_kmsfb_suspend(struct glamodrm_handle *gdrm);
++extern void glamo_kmsfb_resume(struct glamodrm_handle *gdrm);
++
++#endif /* __GLAMO_KMS_FB_H */
+diff --git a/include/drm/Kbuild b/include/drm/Kbuild
+index b940fdf..48b7b55 100644
+--- a/include/drm/Kbuild
++++ b/include/drm/Kbuild
+@@ -8,3 +8,4 @@ unifdef-y += radeon_drm.h
+ unifdef-y += sis_drm.h
+ unifdef-y += savage_drm.h
+ unifdef-y += via_drm.h
++unifdef-y += glamo_drm.h
+diff --git a/include/drm/glamo_drm.h b/include/drm/glamo_drm.h
+new file mode 100644
+index 0000000..4c194dc
+--- /dev/null
++++ b/include/drm/glamo_drm.h
+@@ -0,0 +1,153 @@
++/* glamo_drm.h -- Public header for the Glamo driver
++ *
++ * Copyright 2009 Thomas White
++ * Copyright 2000 Precision Insight, Inc., Cedar Park, Texas.
++ * Copyright 2000 VA Linux Systems, Inc., Fremont, California.
++ * Copyright 2002 Tungsten Graphics, Inc., Cedar Park, Texas.
++ * All rights reserved.
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the "Software"),
++ * to deal in the Software without restriction, including without limitation
++ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
++ * and/or sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice (including the next
++ * paragraph) shall be included in all copies or substantial portions of the
++ * Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
++ * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
++ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
++ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++ * DEALINGS IN THE SOFTWARE.
++ *
++ * Authors:
++ * Thomas White <taw@bitwiz.org.uk>
++ * Kevin E. Martin <martin@valinux.com>
++ * Gareth Hughes <gareth@valinux.com>
++ * Keith Whitwell <keith@tungstengraphics.com>
++ */
++
++#ifndef __GLAMO_DRM_H__
++#define __GLAMO_DRM_H__
++
++#include "drm.h"
++
++#define GLAMO_GEM_DOMAIN_VRAM (0x1)
++
++/* Glamo specific ioctls */
++#define DRM_GLAMO_CMDBUF 0x01
++#define DRM_GLAMO_SWAP 0x02
++#define DRM_GLAMO_CMDBURST 0x03
++
++#define DRM_GLAMO_GEM_INFO 0x1c
++#define DRM_GLAMO_GEM_CREATE 0x1d
++#define DRM_GLAMO_GEM_MMAP 0x1e
++#define DRM_GLAMO_GEM_PIN 0x1f
++#define DRM_GLAMO_GEM_UNPIN 0x20
++#define DRM_GLAMO_GEM_PREAD 0x21
++#define DRM_GLAMO_GEM_PWRITE 0x22
++#define DRM_GLAMO_GEM_WAIT_RENDERING 0x24
++
++#define DRM_IOCTL_GLAMO_CMDBUF DRM_IOW(DRM_COMMAND_BASE + DRM_GLAMO_CMDBUF, drm_glamo_cmd_buffer_t)
++#define DRM_IOCTL_GLAMO_SWAP DRM_IO(DRM_COMMAND_BASE + DRM_GLAMO_SWAP)
++#define DRM_IOCTL_GLAMO_CMDBURST DRM_IOW(DRM_COMMAND_BASE + DRM_GLAMO_CMDBURST, drm_glamo_cmd_burst_t)
++
++#define DRM_IOCTL_GLAMO_GEM_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_GLAMO_GEM_INFO, struct drm_glamo_gem_info)
++#define DRM_IOCTL_GLAMO_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_GLAMO_GEM_CREATE, struct drm_glamo_gem_create)
++#define DRM_IOCTL_GLAMO_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_GLAMO_GEM_MMAP, struct drm_glamo_gem_mmap)
++#define DRM_IOCTL_GLAMO_GEM_PIN DRM_IOWR(DRM_COMMAND_BASE + DRM_GLAMO_GEM_PIN, struct drm_glamo_gem_pin)
++#define DRM_IOCTL_GLAMO_GEM_UNPIN DRM_IOWR(DRM_COMMAND_BASE + DRM_GLAMO_GEM_UNPIN, struct drm_glamo_gem_unpin)
++#define DRM_IOCTL_GLAMO_GEM_PREAD DRM_IOWR(DRM_COMMAND_BASE + DRM_GLAMO_GEM_PREAD, struct drm_glamo_gem_pread)
++#define DRM_IOCTL_GLAMO_GEM_PWRITE DRM_IOWR(DRM_COMMAND_BASE + DRM_GLAMO_GEM_PWRITE, struct drm_glamo_gem_pwrite)
++#define DRM_IOCTL_GLAMO_GEM_WAIT_RENDERING DRM_IOW(DRM_COMMAND_BASE + DRM_GLAMO_GEM_WAIT_RENDERING, struct drm_glamo_gem_wait_rendering)
++
++
++/* Simple command submission - a list of 16-bit address-data pairs */
++typedef struct drm_glamo_cmd_buffer {
++ unsigned int bufsz; /* Size of buffer, in bytes */
++ char __user *buf; /* Buffer of stuff to go onto the ring buffer */
++ unsigned int *obj_pos; /* Offsets (in bytes) at which to put objs */
++ uint32_t *objs; /* List of buffer object (handles) to use */
++ unsigned int nobjs; /* Number of objects referenced */
++ int nbox;
++ struct drm_clip_rect __user *boxes;
++} drm_glamo_cmd_buffer_t;
++
++
++/* Burst command submission - base address and data:
++ * - Data can be 32-bit (more easily)
++ * - Easier for the kernel to validate */
++typedef struct drm_glamo_cmd_burst {
++ uint16_t base; /* Base address (command) */
++ int bufsz; /* Size of data, in bytes */
++ uint16_t *data; /* Pointer to data */
++ unsigned int *obj_pos; /* Offsets (in bytes) at which to put objs */
++ uint32_t *objs; /* List of buffer object (handles) to use */
++ unsigned int nobjs; /* Number of objects referenced */
++} drm_glamo_cmd_burst_t;
++
++struct drm_glamo_gem_info {
++ uint64_t vram_start;
++ uint64_t vram_size;
++};
++
++struct drm_glamo_gem_create {
++ uint64_t size;
++ uint64_t alignment;
++ uint32_t handle;
++ uint32_t initial_domain; // to allow VRAM to be created
++ uint32_t no_backing_store;
++};
++
++struct drm_glamo_gem_mmap {
++ uint32_t handle; /* Handle goes in... */
++ uint64_t offset; /* ...offset comes out */
++};
++
++struct drm_glamo_gem_wait_rendering {
++ uint32_t handle;
++ int have_handle;
++};
++
++struct drm_glamo_gem_pin {
++ uint32_t handle;
++ uint32_t pin_domain;
++ uint64_t alignment;
++ uint64_t offset;
++};
++
++struct drm_glamo_gem_unpin {
++ uint32_t handle;
++ uint32_t pad;
++};
++
++struct drm_glamo_gem_pread {
++ /** Handle for the object being read. */
++ uint32_t handle;
++ uint32_t pad;
++ /** Offset into the object to read from */
++ uint64_t offset;
++ /** Length of data to read */
++ uint64_t size;
++ /** Pointer to write the data into. */
++ uint64_t data_ptr; /* void *, but pointers are not 32/64 compatible */
++};
++
++struct drm_glamo_gem_pwrite {
++ /** Handle for the object being written to. */
++ uint32_t handle;
++ uint32_t pad;
++ /** Offset into the object to write to */
++ uint64_t offset;
++ /** Length of data to write */
++ uint64_t size;
++ /** Pointer to read the data from. */
++ uint64_t data_ptr; /* void *, but pointers are not 32/64 compatible */
++};
++
++#endif
+--
+1.6.5.3
+
diff --git a/recipes/linux/linux-openmoko-2.6.31/0003-Work-on-Glamo-core-for-DRM.patch b/recipes/linux/linux-openmoko-2.6.31/0003-Work-on-Glamo-core-for-DRM.patch
new file mode 100644
index 0000000000..76223ed136
--- /dev/null
+++ b/recipes/linux/linux-openmoko-2.6.31/0003-Work-on-Glamo-core-for-DRM.patch
@@ -0,0 +1,252 @@
+From 50c9919c9bc7d3e1db72dcbdd62d73efad409720 Mon Sep 17 00:00:00 2001
+From: Thomas White <taw@bitwiz.org.uk>
+Date: Tue, 17 Nov 2009 23:45:29 +0100
+Subject: [PATCH 3/4] Work on Glamo-core for DRM
+
+This adds modifications to the core of the Glamo driver to expose functionality
+to support DRM and KMS.
+
+Signed-off-by: Thomas White <taw@bitwiz.org.uk>
+---
+ drivers/mfd/glamo/glamo-core.c | 85 +++++++++++++++++++++++++++++++++++++---
+ drivers/mfd/glamo/glamo-core.h | 45 ++++++++++++++++-----
+ drivers/mfd/glamo/glamo-regs.h | 24 +++++++++++
+ include/linux/mfd/glamo.h | 7 +--
+ 4 files changed, 140 insertions(+), 21 deletions(-)
+
+diff --git a/drivers/mfd/glamo/glamo-core.c b/drivers/mfd/glamo/glamo-core.c
+index e0e3940..32aeff1 100644
+--- a/drivers/mfd/glamo/glamo-core.c
++++ b/drivers/mfd/glamo/glamo-core.c
+@@ -221,10 +221,31 @@ static struct resource glamo_fb_resources[] = {
+ .flags = IORESOURCE_MEM,
+ }, {
+ .name = "glamo-fb-mem",
+- .start = GLAMO_OFFSET_FB,
+- .end = GLAMO_OFFSET_FB + GLAMO_FB_SIZE - 1,
++ .start = GLAMO_MEM_BASE + GLAMO_OFFSET_FB,
++ .end = GLAMO_MEM_BASE + GLAMO_OFFSET_FB + GLAMO_FB_SIZE - 1,
+ .flags = IORESOURCE_MEM,
+- },
++ }, {
++ .name = "glamo-cmdq-regs",
++ .start = GLAMO_REGOFS_CMDQUEUE,
++ .end = GLAMO_REGOFS_RISC - 1,
++ .flags = IORESOURCE_MEM,
++ }, {
++ .name = "glamo-command-queue",
++ .start = GLAMO_MEM_BASE + GLAMO_OFFSET_CMDQ,
++ .end = GLAMO_MEM_BASE + GLAMO_OFFSET_CMDQ +
++ GLAMO_CMDQ_SIZE - 1,
++ .flags = IORESOURCE_MEM,
++ }, {
++ .name = "glamo-2d-regs",
++ .start = GLAMO_REGOFS_2D,
++ .end = GLAMO_REGOFS_3D- 1,
++ .flags = IORESOURCE_MEM,
++ }, {
++ .name = "glamo-2d-irq",
++ .start = GLAMO_IRQ_2D,
++ .end = GLAMO_IRQ_2D,
++ .flags = IORESOURCE_IRQ,
++ }
+ };
+
+ static struct resource glamo_mmc_resources[] = {
+@@ -235,9 +256,9 @@ static struct resource glamo_mmc_resources[] = {
+ .flags = IORESOURCE_MEM
+ }, {
+ .name = "glamo-mmc-mem",
+- .start = GLAMO_OFFSET_FB + GLAMO_FB_SIZE,
+- .end = GLAMO_OFFSET_FB + GLAMO_FB_SIZE +
+- GLAMO_MMC_BUFFER_SIZE - 1,
++ .start = GLAMO_MEM_BASE + GLAMO_OFFSET_MMC,
++ .end = GLAMO_MEM_BASE + GLAMO_OFFSET_MMC
++ + GLAMO_MMC_BUFFER_SIZE - 1,
+ .flags = IORESOURCE_MEM
+ }, {
+ .start = GLAMO_IRQ_MMC,
+@@ -354,6 +375,24 @@ static void glamo_irq_demux_handler(unsigned int irq, struct irq_desc *desc)
+ sysfs
+ */
+
++void glamo_clear_irq(struct glamo_core *glamo, unsigned int irq)
++{
++ /* set interrupt source */
++ __reg_write(glamo, GLAMO_REG_IRQ_CLEAR, irq);
++}
++
++
++void glamo_enable_irq(struct glamo_core *glamo, unsigned int irq)
++{
++ u_int16_t tmp;
++
++ /* set bit in enable register */
++ tmp = __reg_read(glamo, GLAMO_REG_IRQ_ENABLE);
++ tmp |= irq;
++ __reg_write(glamo, GLAMO_REG_IRQ_ENABLE, tmp);
++}
++
++
+ static ssize_t regs_write(struct device *dev, struct device_attribute *attr,
+ const char *buf, size_t count)
+ {
+@@ -579,6 +618,40 @@ int glamo_engine_disable(struct glamo_core *glamo, enum glamo_engine engine)
+ }
+ EXPORT_SYMBOL_GPL(glamo_engine_disable);
+
++
++static const u_int16_t engine_clock_regs[__NUM_GLAMO_ENGINES] = {
++ [GLAMO_ENGINE_LCD] = GLAMO_REG_CLOCK_LCD,
++ [GLAMO_ENGINE_MMC] = GLAMO_REG_CLOCK_MMC,
++ [GLAMO_ENGINE_ISP] = GLAMO_REG_CLOCK_ISP,
++ [GLAMO_ENGINE_JPEG] = GLAMO_REG_CLOCK_JPEG,
++ [GLAMO_ENGINE_3D] = GLAMO_REG_CLOCK_3D,
++ [GLAMO_ENGINE_2D] = GLAMO_REG_CLOCK_2D,
++ [GLAMO_ENGINE_MPEG_ENC] = GLAMO_REG_CLOCK_MPEG,
++ [GLAMO_ENGINE_MPEG_DEC] = GLAMO_REG_CLOCK_MPEG,
++};
++
++void glamo_engine_clkreg_set(struct glamo_core *glamo,
++ enum glamo_engine engine,
++ u_int16_t mask, u_int16_t val)
++{
++ reg_set_bit_mask(glamo, engine_clock_regs[engine], mask, val);
++}
++EXPORT_SYMBOL_GPL(glamo_engine_clkreg_set);
++
++u_int16_t glamo_engine_clkreg_get(struct glamo_core *glamo,
++ enum glamo_engine engine)
++{
++ u_int16_t val;
++
++ spin_lock(&glamo->lock);
++ val = __reg_read(glamo, engine_clock_regs[engine]);
++ spin_unlock(&glamo->lock);
++
++ return val;
++}
++EXPORT_SYMBOL_GPL(glamo_engine_clkreg_get);
++
++
+ int __glamo_engine_suspend(struct glamo_core *glamo, enum glamo_engine engine)
+ {
+ int i;
+diff --git a/drivers/mfd/glamo/glamo-core.h b/drivers/mfd/glamo/glamo-core.h
+index e5b1a35..ea6caa3 100644
+--- a/drivers/mfd/glamo/glamo-core.h
++++ b/drivers/mfd/glamo/glamo-core.h
+@@ -3,18 +3,33 @@
+
+ #include <linux/mfd/glamo.h>
+
++/* Amount of Glamo memory */
++#define GLAMO_INTERNAL_RAM_SIZE 0x800000
++
++/* Arbitrarily determined amount for the hardware cursor */
++#define GLAMO_CURSOR_SIZE (4096)
++#define GLAMO_MMC_BUFFER_SIZE (64 * 1024) /* 64k MMC buffer */
++#define GLAMO_CMDQ_SIZE (128 * 1024) /* 128k ring buffer */
++/* Remaining memory will be used for 2D and 3D graphics */
++#define GLAMO_FB_SIZE (GLAMO_INTERNAL_RAM_SIZE \
++ - GLAMO_CURSOR_SIZE \
++ - GLAMO_MMC_BUFFER_SIZE \
++ - GLAMO_CMDQ_SIZE)
++/* A 640x480, 16bpp, double-buffered framebuffer */
++#if (GLAMO_FB_SIZE < (640 * 480 * 4)) /* == 0x12c000 */
++#error Not enough Glamo VRAM for framebuffer!
++#endif
++
+ /* for the time being, we put the on-screen framebuffer into the lowest
+ * VRAM space. This should make the code easily compatible with the various
+- * 2MB/4MB/8MB variants of the Smedia chips */
+-#define GLAMO_OFFSET_VRAM 0x800000
+-#define GLAMO_OFFSET_FB (GLAMO_OFFSET_VRAM)
+-
+-/* we only allocate the minimum possible size for the framebuffer to make
+- * sure we have sufficient memory for other functions of the chip */
+-/*#define GLAMO_FB_SIZE (640*480*4) *//* == 0x12c000 */
+-#define GLAMO_INTERNAL_RAM_SIZE 0x800000
+-#define GLAMO_MMC_BUFFER_SIZE (64 * 1024)
+-#define GLAMO_FB_SIZE (GLAMO_INTERNAL_RAM_SIZE - GLAMO_MMC_BUFFER_SIZE)
++ * 2MB/4MB/8MB variants of the Smedia chips
++ * glamo-fb.c assumes FB comes first, followed by cursor, so DON'T MOVE THEM
++ * (see glamo_regs[] in glamo-fb.c for more information) */
++#define GLAMO_MEM_BASE (0x800000)
++#define GLAMO_OFFSET_FB (0x000000)
++#define GLAMO_OFFSET_CURSOR (GLAMO_OFFSET_FB + GLAMO_FB_SIZE)
++#define GLAMO_OFFSET_MMC (GLAMO_OFFSET_CURSOR + GLAMO_CURSOR_SIZE)
++#define GLAMO_OFFSET_CMDQ (GLAMO_OFFSET_MMC + GLAMO_MMC_BUFFER_SIZE)
+
+ enum glamo_pll {
+ GLAMO_PLL1,
+@@ -57,4 +72,14 @@ void glamo_reg_read_batch(struct glamo_core *glamo, uint16_t reg,
+ uint16_t count, uint16_t *values);
+ void glamo_reg_write_batch(struct glamo_core *glamo, uint16_t reg,
+ uint16_t count, uint16_t *values);
++void glamo_engine_clkreg_set(struct glamo_core *glamo,
++ enum glamo_engine engine,
++ u_int16_t mask, u_int16_t val);
++
++extern void glamo_clear_irq(struct glamo_core *glamo, unsigned int irq);
++extern void glamo_enable_irq(struct glamo_core *glamo, unsigned int irq);
++
++u_int16_t glamo_engine_clkreg_get(struct glamo_core *glamo,
++ enum glamo_engine engine);
++
+ #endif /* __GLAMO_CORE_H */
+diff --git a/drivers/mfd/glamo/glamo-regs.h b/drivers/mfd/glamo/glamo-regs.h
+index 59848e1..8b2fd47 100644
+--- a/drivers/mfd/glamo/glamo-regs.h
++++ b/drivers/mfd/glamo/glamo-regs.h
+@@ -627,4 +627,28 @@ enum glamo_core_revisions {
+ GLAMO_CORE_REV_A3 = 0x0003,
+ };
+
++enum glamo_register_cq {
++ GLAMO_REG_CMDQ_BASE_ADDRL = 0x00,
++ GLAMO_REG_CMDQ_BASE_ADDRH = 0x02,
++ GLAMO_REG_CMDQ_LEN = 0x04,
++ GLAMO_REG_CMDQ_WRITE_ADDRL = 0x06,
++ GLAMO_REG_CMDQ_WRITE_ADDRH = 0x08,
++ GLAMO_REG_CMDQ_FLIP = 0x0a,
++ GLAMO_REG_CMDQ_CONTROL = 0x0c,
++ GLAMO_REG_CMDQ_READ_ADDRL = 0x0e,
++ GLAMO_REG_CMDQ_READ_ADDRH = 0x10,
++ GLAMO_REG_CMDQ_STATUS = 0x12,
++};
++
++#define REG_2D(x) (GLAMO_REGOFS_2D+(x))
++
++enum glamo_register_2d {
++ GLAMO_REG_2D_DST_X = REG_2D(0x0a),
++ GLAMO_REG_2D_COMMAND1 = REG_2D(0x3a),
++ GLAMO_REG_2D_STATUS = REG_2D(0x42),
++ GLAMO_REG_2D_ID1 = REG_2D(0x44),
++ GLAMO_REG_2D_ID2 = REG_2D(0x46),
++ GLAMO_REG_2D_ID3 = REG_2D(0x48),
++};
++
+ #endif /* _GLAMO_REGS_H */
+diff --git a/include/linux/mfd/glamo.h b/include/linux/mfd/glamo.h
+index 529d4f0..ea91a06 100644
+--- a/include/linux/mfd/glamo.h
++++ b/include/linux/mfd/glamo.h
+@@ -41,12 +41,9 @@ enum glamo_engine {
+ GLAMO_ENGINE_RISC = 11,
+ GLAMO_ENGINE_MICROP1_MPEG_ENC = 12,
+ GLAMO_ENGINE_MICROP1_MPEG_DEC = 13,
+-#if 0
+- GLAMO_ENGINE_H264_DEC = 14,
+- GLAMO_ENGINE_RISC1 = 15,
+- GLAMO_ENGINE_SPI = 16,
+-#endif
+ __NUM_GLAMO_ENGINES
+ };
+
++#define GLAMO_ENGINE_ALL (__NUM_GLAMO_ENGINES)
++
+ #endif
+--
+1.6.5.3
+
diff --git a/recipes/linux/linux-openmoko-2.6.31/0004-Add-JBT6k74-hook-for-use-by-KMS.patch b/recipes/linux/linux-openmoko-2.6.31/0004-Add-JBT6k74-hook-for-use-by-KMS.patch
new file mode 100644
index 0000000000..a223f5b7a9
--- /dev/null
+++ b/recipes/linux/linux-openmoko-2.6.31/0004-Add-JBT6k74-hook-for-use-by-KMS.patch
@@ -0,0 +1,49 @@
+From 6035b76b940c71e30824921271e8c3da8047f869 Mon Sep 17 00:00:00 2001
+From: Thomas White <taw@bitwiz.org.uk>
+Date: Sat, 21 Nov 2009 21:42:16 +0100
+Subject: [PATCH 4/4] Add JBT6k74 hook for use by KMS
+
+Signed-off-by: Thomas White <taw@bitwiz.org.uk>
+---
+ drivers/video/backlight/jbt6k74.c | 18 ++++++++++++++++++
+ 1 files changed, 18 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/video/backlight/jbt6k74.c b/drivers/video/backlight/jbt6k74.c
+index b1aacb7..b9d02f2 100644
+--- a/drivers/video/backlight/jbt6k74.c
++++ b/drivers/video/backlight/jbt6k74.c
+@@ -688,6 +688,22 @@ static int jbt6k74_get_power(struct lcd_device *ld)
+ }
+ }
+
++/* This is utterly, totally horrible. I'm REALLY sorry... */
++struct jbt_info *jbt_global;
++void jbt6k74_action(int val)
++{
++ if ( !jbt_global ) {
++ printk(KERN_CRIT "JBT not initialised!!!\n");
++ return;
++ }
++ if ( val == 0 ) {
++ jbt6k74_enter_power_mode(jbt_global, JBT_POWER_MODE_SLEEP);
++ } else {
++ jbt6k74_enter_power_mode(jbt_global, JBT_POWER_MODE_NORMAL);
++ }
++}
++EXPORT_SYMBOL_GPL(jbt6k74_action);
++
+ struct lcd_ops jbt6k74_lcd_ops = {
+ .set_power = jbt6k74_set_power,
+ .get_power = jbt6k74_get_power,
+@@ -718,6 +734,8 @@ static int __devinit jbt_probe(struct spi_device *spi)
+ if (!jbt)
+ return -ENOMEM;
+
++ jbt_global = jbt;
++
+ jbt->spi = spi;
+
+ jbt->lcd_dev = lcd_device_register("jbt6k74-lcd", &spi->dev, jbt,
+--
+1.6.5.3
+
diff --git a/recipes/linux/linux-openmoko-2.6.31/0004-gta02_defconfig-Enable-UBI-support.patch b/recipes/linux/linux-openmoko-2.6.31/0004-gta02_defconfig-Enable-UBI-support.patch
new file mode 100644
index 0000000000..4ab88d3672
--- /dev/null
+++ b/recipes/linux/linux-openmoko-2.6.31/0004-gta02_defconfig-Enable-UBI-support.patch
@@ -0,0 +1,67 @@
+From 513b35171de9efbbc0699bff5f2e5a324d2cd8ef Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Sun, 8 Nov 2009 11:22:13 +0100
+Subject: [PATCH 4/5] gta02_defconfig: Enable UBI support
+
+---
+ arch/arm/configs/gta02_defconfig | 22 +++++++++++++++++++---
+ 1 files changed, 19 insertions(+), 3 deletions(-)
+
+diff --git a/arch/arm/configs/gta02_defconfig b/arch/arm/configs/gta02_defconfig
+index b0a6d72..3f1b60b 100644
+--- a/arch/arm/configs/gta02_defconfig
++++ b/arch/arm/configs/gta02_defconfig
+@@ -648,7 +648,15 @@ CONFIG_MTD_NAND_S3C2410=y
+ #
+ # UBI - Unsorted block images
+ #
+-# CONFIG_MTD_UBI is not set
++CONFIG_MTD_UBI=y
++CONFIG_MTD_UBI_WL_THRESHOLD=4096
++CONFIG_MTD_UBI_BEB_RESERVE=1
++CONFIG_MTD_UBI_GLUEBI=y
++
++#
++# UBI debugging options
++#
++# CONFIG_MTD_UBI_DEBUG is not set
+ # CONFIG_PARPORT is not set
+ CONFIG_BLK_DEV=y
+ # CONFIG_BLK_DEV_COW_COMMON is not set
+@@ -1478,6 +1486,12 @@ CONFIG_JFFS2_ZLIB=y
+ # CONFIG_JFFS2_LZO is not set
+ CONFIG_JFFS2_RTIME=y
+ # CONFIG_JFFS2_RUBIN is not set
++CONFIG_UBIFS_FS=y
++# CONFIG_UBIFS_FS_XATTR is not set
++# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
++CONFIG_UBIFS_FS_LZO=y
++CONFIG_UBIFS_FS_ZLIB=y
++# CONFIG_UBIFS_FS_DEBUG is not set
+ # CONFIG_CRAMFS is not set
+ # CONFIG_SQUASHFS is not set
+ # CONFIG_VXFS_FS is not set
+@@ -1670,9 +1684,9 @@ CONFIG_CRYPTO_MD5=y
+ #
+ # Compression
+ #
+-# CONFIG_CRYPTO_DEFLATE is not set
++CONFIG_CRYPTO_DEFLATE=y
+ CONFIG_CRYPTO_ZLIB=y
+-# CONFIG_CRYPTO_LZO is not set
++CONFIG_CRYPTO_LZO=y
+
+ #
+ # Random Number Generation
+@@ -1695,6 +1709,8 @@ CONFIG_CRC7=y
+ # CONFIG_LIBCRC32C is not set
+ CONFIG_ZLIB_INFLATE=y
+ CONFIG_ZLIB_DEFLATE=y
++CONFIG_LZO_COMPRESS=y
++CONFIG_LZO_DECOMPRESS=y
+ CONFIG_DECOMPRESS_GZIP=y
+ CONFIG_DECOMPRESS_BZIP2=y
+ CONFIG_DECOMPRESS_LZMA=y
+--
+1.6.5.2
+
diff --git a/recipes/linux/linux-openmoko-2.6.31/0005-gta02_defconfig-Enable-UBI-debug.patch b/recipes/linux/linux-openmoko-2.6.31/0005-gta02_defconfig-Enable-UBI-debug.patch
new file mode 100644
index 0000000000..19c602a15c
--- /dev/null
+++ b/recipes/linux/linux-openmoko-2.6.31/0005-gta02_defconfig-Enable-UBI-debug.patch
@@ -0,0 +1,88 @@
+From 5ae14aa9c5eea7178a8de28515b45d600ecb7a13 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Sun, 8 Nov 2009 11:24:01 +0100
+Subject: [PATCH 5/5] gta02_defconfig: Enable UBI debug
+
+---
+ arch/arm/configs/gta02_defconfig | 23 +++++++++++++++++++++--
+ 1 files changed, 21 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/configs/gta02_defconfig b/arch/arm/configs/gta02_defconfig
+index 3f1b60b..0f53baf 100644
+--- a/arch/arm/configs/gta02_defconfig
++++ b/arch/arm/configs/gta02_defconfig
+@@ -76,6 +76,7 @@ CONFIG_ANON_INODES=y
+ CONFIG_UID16=y
+ CONFIG_SYSCTL_SYSCALL=y
+ CONFIG_KALLSYMS=y
++CONFIG_KALLSYMS_ALL=y
+ # CONFIG_KALLSYMS_EXTRA_PASS is not set
+ CONFIG_HOTPLUG=y
+ CONFIG_PRINTK=y
+@@ -110,6 +111,7 @@ CONFIG_HAVE_CLK=y
+ #
+ # GCOV-based kernel profiling
+ #
++# CONFIG_GCOV_KERNEL is not set
+ # CONFIG_SLOW_WORK is not set
+ CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+ CONFIG_SLABINFO=y
+@@ -656,7 +658,21 @@ CONFIG_MTD_UBI_GLUEBI=y
+ #
+ # UBI debugging options
+ #
+-# CONFIG_MTD_UBI_DEBUG is not set
++CONFIG_MTD_UBI_DEBUG=y
++CONFIG_MTD_UBI_DEBUG_MSG=y
++# CONFIG_MTD_UBI_DEBUG_PARANOID is not set
++# CONFIG_MTD_UBI_DEBUG_DISABLE_BGT is not set
++# CONFIG_MTD_UBI_DEBUG_EMULATE_BITFLIPS is not set
++# CONFIG_MTD_UBI_DEBUG_EMULATE_WRITE_FAILURES is not set
++# CONFIG_MTD_UBI_DEBUG_EMULATE_ERASE_FAILURES is not set
++
++#
++# Additional UBI debugging messages
++#
++CONFIG_MTD_UBI_DEBUG_MSG_BLD=y
++CONFIG_MTD_UBI_DEBUG_MSG_EBA=y
++CONFIG_MTD_UBI_DEBUG_MSG_WL=y
++CONFIG_MTD_UBI_DEBUG_MSG_IO=y
+ # CONFIG_PARPORT is not set
+ CONFIG_BLK_DEV=y
+ # CONFIG_BLK_DEV_COW_COMMON is not set
+@@ -1238,6 +1254,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+ # CONFIG_USB_VST is not set
+ CONFIG_USB_GADGET=y
+ # CONFIG_USB_GADGET_DEBUG_FILES is not set
++# CONFIG_USB_GADGET_DEBUG_FS is not set
+ CONFIG_USB_GADGET_VBUS_DRAW=500
+ CONFIG_USB_GADGET_SELECTED=y
+ # CONFIG_USB_GADGET_AT91 is not set
+@@ -1419,6 +1436,7 @@ CONFIG_EXT3_FS=y
+ # CONFIG_EXT3_FS_XATTR is not set
+ # CONFIG_EXT4_FS is not set
+ CONFIG_JBD=y
++# CONFIG_JBD_DEBUG is not set
+ # CONFIG_REISERFS_FS is not set
+ # CONFIG_JFS_FS is not set
+ # CONFIG_FS_POSIX_ACL is not set
+@@ -1577,7 +1595,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
+ CONFIG_FRAME_WARN=1024
+ # CONFIG_MAGIC_SYSRQ is not set
+ # CONFIG_UNUSED_SYMBOLS is not set
+-# CONFIG_DEBUG_FS is not set
++CONFIG_DEBUG_FS=y
+ # CONFIG_HEADERS_CHECK is not set
+ # CONFIG_DEBUG_KERNEL is not set
+ CONFIG_DEBUG_BUGVERBOSE=y
+@@ -1589,6 +1607,7 @@ CONFIG_FRAME_POINTER=y
+ CONFIG_HAVE_FUNCTION_TRACER=y
+ CONFIG_TRACING_SUPPORT=y
+ # CONFIG_FTRACE is not set
++# CONFIG_DYNAMIC_DEBUG is not set
+ # CONFIG_SAMPLES is not set
+ CONFIG_HAVE_ARCH_KGDB=y
+ # CONFIG_ARM_UNWIND is not set
+--
+1.6.5.2
+
diff --git a/recipes/linux/linux-openmoko-2.6.31/0006-gta02-defconfig-enable-NFS-and-INOTIFY_USER.patch b/recipes/linux/linux-openmoko-2.6.31/0006-gta02-defconfig-enable-NFS-and-INOTIFY_USER.patch
new file mode 100644
index 0000000000..31d2b6569b
--- /dev/null
+++ b/recipes/linux/linux-openmoko-2.6.31/0006-gta02-defconfig-enable-NFS-and-INOTIFY_USER.patch
@@ -0,0 +1,124 @@
+From 20aa0022f765e702f76fe1cae429b1d58faa9ec4 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Sat, 28 Nov 2009 19:24:49 +0100
+Subject: [PATCH] gta02-defconfig: enable NFS and INOTIFY_USER
+
+---
+ arch/arm/configs/gta02_defconfig | 48 ++++++++++++++++++++++++++++++-------
+ 1 files changed, 39 insertions(+), 9 deletions(-)
+
+diff --git a/arch/arm/configs/gta02_defconfig b/arch/arm/configs/gta02_defconfig
+index 1cce709..acf225e 100644
+--- a/arch/arm/configs/gta02_defconfig
++++ b/arch/arm/configs/gta02_defconfig
+@@ -860,7 +860,7 @@ CONFIG_I2C_CHARDEV=y
+ #
+ # I2C Algorithms
+ #
+-# CONFIG_I2C_ALGOBIT is not set
++CONFIG_I2C_ALGOBIT=y
+ # CONFIG_I2C_ALGOPCF is not set
+ # CONFIG_I2C_ALGOPCA is not set
+
+@@ -953,6 +953,7 @@ CONFIG_POWER_SUPPLY=y
+ CONFIG_CHARGER_PCF50633=y
+ CONFIG_BATTERY_BQ27000_HDQ=y
+ CONFIG_HDQ_GPIO_BITBANG=y
++# CONFIG_BATTERY_PLATFORM is not set
+ # CONFIG_HWMON is not set
+ # CONFIG_THERMAL is not set
+ # CONFIG_THERMAL_HWMON is not set
+@@ -1444,15 +1445,15 @@ CONFIG_JBD=y
+ # CONFIG_JBD_DEBUG is not set
+ # CONFIG_REISERFS_FS is not set
+ # CONFIG_JFS_FS is not set
+-# CONFIG_FS_POSIX_ACL is not set
++CONFIG_FS_POSIX_ACL=y
+ # CONFIG_XFS_FS is not set
+ # CONFIG_OCFS2_FS is not set
+ # CONFIG_BTRFS_FS is not set
+ CONFIG_FILE_LOCKING=y
+-# CONFIG_FSNOTIFY is not set
++CONFIG_FSNOTIFY=y
+ # CONFIG_DNOTIFY is not set
+ CONFIG_INOTIFY=y
+-# CONFIG_INOTIFY_USER is not set
++CONFIG_INOTIFY_USER=y
+ # CONFIG_QUOTA is not set
+ # CONFIG_AUTOFS_FS is not set
+ # CONFIG_AUTOFS4_FS is not set
+@@ -1526,7 +1527,31 @@ CONFIG_UBIFS_FS_ZLIB=y
+ # CONFIG_SYSV_FS is not set
+ # CONFIG_UFS_FS is not set
+ # CONFIG_NILFS2_FS is not set
+-# CONFIG_NETWORK_FILESYSTEMS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=m
++CONFIG_NFS_V3=y
++CONFIG_NFS_V3_ACL=y
++CONFIG_NFS_V4=y
++# CONFIG_NFS_V4_1 is not set
++CONFIG_NFSD=m
++CONFIG_NFSD_V2_ACL=y
++CONFIG_NFSD_V3=y
++CONFIG_NFSD_V3_ACL=y
++CONFIG_NFSD_V4=y
++CONFIG_LOCKD=m
++CONFIG_LOCKD_V4=y
++CONFIG_EXPORTFS=m
++CONFIG_NFS_ACL_SUPPORT=m
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=m
++CONFIG_SUNRPC_GSS=m
++CONFIG_RPCSEC_GSS_KRB5=m
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
+
+ #
+ # Partition Types
+@@ -1634,13 +1659,18 @@ CONFIG_CRYPTO=y
+ # CONFIG_CRYPTO_FIPS is not set
+ CONFIG_CRYPTO_ALGAPI=y
+ CONFIG_CRYPTO_ALGAPI2=y
++CONFIG_CRYPTO_AEAD2=y
++CONFIG_CRYPTO_BLKCIPHER=m
++CONFIG_CRYPTO_BLKCIPHER2=y
+ CONFIG_CRYPTO_HASH=y
+ CONFIG_CRYPTO_HASH2=y
++CONFIG_CRYPTO_RNG2=y
+ CONFIG_CRYPTO_PCOMP=y
+-# CONFIG_CRYPTO_MANAGER is not set
+-# CONFIG_CRYPTO_MANAGER2 is not set
++CONFIG_CRYPTO_MANAGER=m
++CONFIG_CRYPTO_MANAGER2=y
+ # CONFIG_CRYPTO_GF128MUL is not set
+ # CONFIG_CRYPTO_NULL is not set
++CONFIG_CRYPTO_WORKQUEUE=y
+ # CONFIG_CRYPTO_CRYPTD is not set
+ # CONFIG_CRYPTO_AUTHENC is not set
+ # CONFIG_CRYPTO_TEST is not set
+@@ -1655,7 +1685,7 @@ CONFIG_CRYPTO_PCOMP=y
+ #
+ # Block modes
+ #
+-# CONFIG_CRYPTO_CBC is not set
++CONFIG_CRYPTO_CBC=m
+ # CONFIG_CRYPTO_CTR is not set
+ # CONFIG_CRYPTO_CTS is not set
+ # CONFIG_CRYPTO_ECB is not set
+@@ -1696,7 +1726,7 @@ CONFIG_CRYPTO_MD5=y
+ # CONFIG_CRYPTO_CAMELLIA is not set
+ # CONFIG_CRYPTO_CAST5 is not set
+ # CONFIG_CRYPTO_CAST6 is not set
+-# CONFIG_CRYPTO_DES is not set
++CONFIG_CRYPTO_DES=m
+ # CONFIG_CRYPTO_FCRYPT is not set
+ # CONFIG_CRYPTO_KHAZAD is not set
+ # CONFIG_CRYPTO_SALSA20 is not set
+--
+1.6.5.3
+
diff --git a/recipes/linux/linux-openmoko-2.6.31_git.bb b/recipes/linux/linux-openmoko-2.6.31_git.bb
new file mode 100644
index 0000000000..301ac6b863
--- /dev/null
+++ b/recipes/linux/linux-openmoko-2.6.31_git.bb
@@ -0,0 +1,36 @@
+require linux.inc
+require linux-openmoko.inc
+
+DESCRIPTION_${PN} = "Linux ${KERNEL_VERSION} kernel for the Openmoko Neo GSM Smartphones"
+
+KERNEL_RELEASE = "2.6.31"
+KERNEL_VERSION = "${KERNEL_RELEASE}"
+
+OEV = "oe1"
+PV = "${KERNEL_RELEASE}-${OEV}+gitr${SRCREV}"
+PR = "r5"
+
+SRC_URI = "\
+ git://git.openmoko.org/git/kernel.git;protocol=git;branch=om-2.6.31 \
+# build fix
+ file://0001-wm8753-fix-build-with-gcc-4.4.2-which-works-ok-with-.patch;patch=1 \
+# patches from Weiss's gdrm-2.6.31 branch
+ file://0001-DRM-for-platform-devices.patch;patch=1 \
+ file://0002-Glamo-DRM-and-KMS-driver.patch;patch=1 \
+ file://0003-Work-on-Glamo-core-for-DRM.patch;patch=1 \
+ file://0004-Add-JBT6k74-hook-for-use-by-KMS.patch;patch=1 \
+# enable UBI+DRM+NFS+INOTIFY_USER
+ file://0004-gta02_defconfig-Enable-UBI-support.patch;patch=1 \
+ file://0005-gta02_defconfig-Enable-UBI-debug.patch;patch=1 \
+ file://0001-gta02_defconfig-Enable-GLAMO_DRM.patch;patch=1 \
+ file://0006-gta02-defconfig-enable-NFS-and-INOTIFY_USER.patch \
+"
+
+S = "${WORKDIR}/git"
+
+CONFIG_NAME_om-gta01 = "gta01_defconfig"
+CONFIG_NAME_om-gta02 = "gta02_defconfig"
+
+do_configure_prepend() {
+ install -m 644 ./arch/arm/configs/${CONFIG_NAME} ${WORKDIR}/defconfig-oe
+}
diff --git a/recipes/linux/linux-openmoko-shr-devel/0007-Enable-UBI-UBIFS.patch b/recipes/linux/linux-openmoko-shr-devel/0007-Enable-UBI-UBIFS.patch
new file mode 100644
index 0000000000..796a90ff27
--- /dev/null
+++ b/recipes/linux/linux-openmoko-shr-devel/0007-Enable-UBI-UBIFS.patch
@@ -0,0 +1,81 @@
+From 8f907c17c068beb94264a4a6d40314658a0c1393 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Sun, 8 Nov 2009 10:58:28 +0100
+Subject: [PATCH 7/7] Enable UBI/UBIFS
+
+---
+ arch/arm/configs/gta02_packaging_defconfig | 39 ++++++++++++++++++++++++++++++---
+ 1 files changed, 35 insertions(+), 4 deletions(-)
+
+diff --git a/arch/arm/configs/gta02_packaging_defconfig b/arch/arm/configs/gta02_packaging_defconfig
+index e17ddc3..7506963 100644
+--- a/arch/arm/configs/gta02_packaging_defconfig
++++ b/arch/arm/configs/gta02_packaging_defconfig
+@@ -806,7 +806,30 @@ CONFIG_MTD_NAND_S3C2410_HWECC=y
+ #
+ # UBI - Unsorted block images
+ #
+-# CONFIG_MTD_UBI is not set
++CONFIG_MTD_UBI=y
++CONFIG_MTD_UBI_WL_THRESHOLD=4096
++CONFIG_MTD_UBI_BEB_RESERVE=1
++CONFIG_MTD_UBI_GLUEBI=y
++
++#
++# UBI debugging options
++#
++CONFIG_MTD_UBI_DEBUG=y
++CONFIG_MTD_UBI_DEBUG_MSG=y
++# CONFIG_MTD_UBI_DEBUG_PARANOID is not set
++# CONFIG_MTD_UBI_DEBUG_DISABLE_BGT is not set
++# CONFIG_MTD_UBI_DEBUG_USERSPACE_IO is not set
++# CONFIG_MTD_UBI_DEBUG_EMULATE_BITFLIPS is not set
++# CONFIG_MTD_UBI_DEBUG_EMULATE_WRITE_FAILURES is not set
++# CONFIG_MTD_UBI_DEBUG_EMULATE_ERASE_FAILURES is not set
++
++#
++# Additional UBI debugging messages
++#
++CONFIG_MTD_UBI_DEBUG_MSG_BLD=y
++CONFIG_MTD_UBI_DEBUG_MSG_EBA=y
++CONFIG_MTD_UBI_DEBUG_MSG_WL=y
++CONFIG_MTD_UBI_DEBUG_MSG_IO=y
+ # CONFIG_PARPORT is not set
+ CONFIG_BLK_DEV=y
+ # CONFIG_BLK_DEV_COW_COMMON is not set
+@@ -1877,6 +1900,12 @@ CONFIG_JFFS2_ZLIB=y
+ # CONFIG_JFFS2_LZO is not set
+ CONFIG_JFFS2_RTIME=y
+ # CONFIG_JFFS2_RUBIN is not set
++CONFIG_UBIFS_FS=y
++# CONFIG_UBIFS_FS_XATTR is not set
++# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
++CONFIG_UBIFS_FS_LZO=y
++CONFIG_UBIFS_FS_ZLIB=y
++# CONFIG_UBIFS_FS_DEBUG is not set
+ CONFIG_CRAMFS=y
+ CONFIG_SQUASHFS=m
+ # CONFIG_SQUASHFS_EMBEDDED is not set
+@@ -2151,8 +2180,8 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
+ #
+ # Compression
+ #
+-CONFIG_CRYPTO_DEFLATE=m
+-# CONFIG_CRYPTO_LZO is not set
++CONFIG_CRYPTO_DEFLATE=y
++CONFIG_CRYPTO_LZO=y
+
+ #
+ # Random Number Generation
+@@ -2174,6 +2203,8 @@ CONFIG_CRC32=y
+ CONFIG_LIBCRC32C=m
+ CONFIG_ZLIB_INFLATE=y
+ CONFIG_ZLIB_DEFLATE=y
++CONFIG_LZO_COMPRESS=y
++CONFIG_LZO_DECOMPRESS=y
+ CONFIG_TEXTSEARCH=y
+ CONFIG_TEXTSEARCH_KMP=m
+ CONFIG_TEXTSEARCH_BM=m
+--
+1.6.5.2
+
diff --git a/recipes/linux/linux-openmoko-shr-devel/fix-install.patch b/recipes/linux/linux-openmoko-shr-devel/fix-install.patch
new file mode 100644
index 0000000000..b14ca7d740
--- /dev/null
+++ b/recipes/linux/linux-openmoko-shr-devel/fix-install.patch
@@ -0,0 +1,23 @@
+From: Steve Sakoman <steve@sakoman.com>
+Date: Mon, 18 Aug 2008 16:07:31 +0000 (-0700)
+Subject: scripts/Makefile.fwinst: add missing space when setting mode in cmd_install
+X-Git-Url: http://www.sakoman.net/cgi-bin/gitweb.cgi?p=linux-omap-2.6.git;a=commitdiff_plain;h=f039944bdd491cde7327133e9976881d3133ae70
+
+scripts/Makefile.fwinst: add missing space when setting mode in cmd_install
+
+This was causing build failures on some machines
+---
+
+diff --git a/scripts/Makefile.fwinst b/scripts/Makefile.fwinst
+index 6bf8e87..fb20532 100644
+--- a/scripts/Makefile.fwinst
++++ b/scripts/Makefile.fwinst
+@@ -37,7 +37,7 @@
+ @true
+
+ quiet_cmd_install = INSTALL $(subst $(srctree)/,,$@)
+- cmd_install = $(INSTALL) -m0644 $< $@
++ cmd_install = $(INSTALL) -m 0644 $< $@
+
+ $(installed-fw-dirs):
+ $(call cmd,mkdir)
diff --git a/recipes/linux/linux-openmoko-shr-devel_git.bb b/recipes/linux/linux-openmoko-shr-devel_git.bb
new file mode 100644
index 0000000000..2a61a95443
--- /dev/null
+++ b/recipes/linux/linux-openmoko-shr-devel_git.bb
@@ -0,0 +1,26 @@
+require linux.inc
+require linux-openmoko.inc
+
+DESCRIPTION_${PN} = "Linux ${KERNEL_VERSION} kernel for the Openmoko Neo GSM Smartphones"
+
+KERNEL_RELEASE = "2.6.29"
+KERNEL_VERSION = "2.6.29-rc3"
+
+OMV = "oe11"
+PV = "${KERNEL_RELEASE}-${OMV}+gitr${SRCREV}"
+PR = "r6"
+
+SRC_URI = "\
+ git://git.openmoko.org/git/kernel.git;protocol=git;branch=andy-tracking \
+ file://fix-install.patch;patch=1 \
+ file://0007-Enable-UBI-UBIFS.patch;patch=1 \
+"
+S = "${WORKDIR}/git"
+
+CONFIG_NAME_om-gta01 = "gta01_moredrivers_defconfig"
+CONFIG_NAME_om-gta02 = "gta02_packaging_defconfig"
+CONFIG_NAME_om-gta03 = "gta03_defconfig"
+
+do_configure_prepend() {
+ install -m 644 ./arch/arm/configs/${CONFIG_NAME} ${WORKDIR}/defconfig-oe
+}
diff --git a/recipes/linux/linux-openmoko-shr-drm-devel/0001-Add-drm-to-Makefile-version.patch b/recipes/linux/linux-openmoko-shr-drm-devel/0001-Add-drm-to-Makefile-version.patch
new file mode 100644
index 0000000000..99345f7d54
--- /dev/null
+++ b/recipes/linux/linux-openmoko-shr-drm-devel/0001-Add-drm-to-Makefile-version.patch
@@ -0,0 +1,25 @@
+From 153af7f8e784e03401dc103f16741397ce6ca914 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Sun, 8 Nov 2009 12:50:40 +0100
+Subject: [PATCH] Add -drm to Makefile version
+
+---
+ Makefile | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index ebf0aa4..16b189f 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,7 +1,7 @@
+ VERSION = 2
+ PATCHLEVEL = 6
+ SUBLEVEL = 29
+-EXTRAVERSION += -rc3
++EXTRAVERSION += -rc3-drm
+ NAME = Erotic Pickled Herring
+
+ # *DOCUMENTATION*
+--
+1.6.5.2
+
diff --git a/recipes/linux/linux-openmoko-shr-drm-devel/0001-Fix-s3c-adc-suspend.patch b/recipes/linux/linux-openmoko-shr-drm-devel/0001-Fix-s3c-adc-suspend.patch
new file mode 100644
index 0000000000..6627e698f0
--- /dev/null
+++ b/recipes/linux/linux-openmoko-shr-drm-devel/0001-Fix-s3c-adc-suspend.patch
@@ -0,0 +1,128 @@
+From e22e97d2266d100f501f1e22275595eb68dd3e6f Mon Sep 17 00:00:00 2001
+From: Vasily Khoruzhick <anarsoul@gmail.com>
+Date: Thu, 1 Oct 2009 20:58:18 -0500
+Subject: [PATCH 1/7] Fix s3c-adc suspend
+
+Fix for a bug that shows when the s3c2410 TS driver requests
+a conversion from the s3c-adc driver and the machine goes into suspend.
+In this case the touchscreen stops working.
+
+Note: Nelson edited the original patch with a few small changes.
+
+Reported-by: Radek Polak <psonek2@seznam.cz>
+Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
+Signed-off-by: Nelson Castillo <arhuaco@freaks-unidos.net>
+---
+ arch/arm/plat-s3c24xx/adc.c | 42 +++++++++++++++++++++++++++++++++++++-----
+ 1 files changed, 37 insertions(+), 5 deletions(-)
+
+diff --git a/arch/arm/plat-s3c24xx/adc.c b/arch/arm/plat-s3c24xx/adc.c
+index 9056bcc..4ce45c5 100644
+--- a/arch/arm/plat-s3c24xx/adc.c
++++ b/arch/arm/plat-s3c24xx/adc.c
+@@ -43,6 +43,7 @@ struct s3c_adc_client {
+ unsigned int nr_samples;
+ unsigned char is_ts;
+ unsigned char channel;
++ unsigned selected;
+
+ void (*select_cb)(unsigned selected);
+ void (*convert_cb)(unsigned val1, unsigned val2,
+@@ -68,6 +69,7 @@ static struct adc_device *adc_dev;
+ static LIST_HEAD(adc_pending);
+
+ #define adc_dbg(_adc, msg...) dev_dbg(&(_adc)->pdev->dev, msg)
++#define adc_info(_adc, msg...) dev_info(&(_adc)->pdev->dev, msg)
+
+ #define AUTOPST (S3C2410_ADCTSC_YM_SEN | S3C2410_ADCTSC_YP_SEN | \
+ S3C2410_ADCTSC_XP_SEN | S3C2410_ADCTSC_AUTO_PST | \
+@@ -91,7 +93,10 @@ static inline void s3c_adc_select(struct adc_device *adc,
+ {
+ unsigned con = readl(adc->regs + S3C2410_ADCCON);
+
+- client->select_cb(1);
++ if (!client->selected) {
++ client->selected = 1;
++ client->select_cb(1);
++ }
+
+ con &= ~S3C2410_ADCCON_MUXMASK;
+ con &= ~S3C2410_ADCCON_STDBM;
+@@ -115,12 +120,9 @@ void s3c_adc_try(struct adc_device *adc)
+ {
+ struct s3c_adc_client *next = adc->ts_pend;
+
+- if (!next && !list_empty(&adc_pending)) {
++ if (!next && !list_empty(&adc_pending))
+ next = list_first_entry(&adc_pending,
+ struct s3c_adc_client, pend);
+- list_del(&next->pend);
+- } else
+- adc->ts_pend = NULL;
+
+ if (next) {
+ adc_dbg(adc, "new client is %p\n", next);
+@@ -229,9 +231,16 @@ static irqreturn_t s3c_adc_irq(int irq, void *pw)
+ /* fire another conversion for this */
+
+ client->select_cb(1);
++ client->selected = 1;
+ s3c_adc_convert(adc);
+ } else {
+ local_irq_save(flags);
++ client->selected = 0;
++ if (!adc->cur->is_ts)
++ list_del(&adc->cur->pend);
++ else
++ adc->ts_pend = NULL;
++
+ (client->select_cb)(0);
+ adc->cur = NULL;
+
+@@ -341,20 +350,43 @@ static int s3c_adc_suspend(struct platform_device *pdev, pm_message_t state)
+ writel(con, adc->regs + S3C2410_ADCCON);
+
+ clk_disable(adc->clk);
++ disable_irq(IRQ_ADC);
++
++ if (!list_empty(&adc_pending) || adc->ts_pend)
++ adc_info(adc, "%s:We still have clients pending\n", __func__);
+
+ return 0;
+ }
+
++static struct work_struct resume_work;
++
++static void adc_resume_work(struct work_struct *work)
++{
++ struct adc_device *adc = platform_get_drvdata(adc_dev->pdev);
++
++ adc_info(adc, "%s:We still have clients pending\n", __func__);
++ s3c_adc_try(adc_dev);
++}
++
+ static int s3c_adc_resume(struct platform_device *pdev)
+ {
+ struct adc_device *adc = platform_get_drvdata(pdev);
+
++ enable_irq(IRQ_ADC);
+ clk_enable(adc->clk);
+
+ writel(adc->prescale | S3C2410_ADCCON_PRSCEN,
+ adc->regs + S3C2410_ADCCON);
+ writel(adc->delay, adc->regs + S3C2410_ADCDLY);
+
++ /* Schedule task if there are clients pending. */
++ if (!list_empty(&adc_pending) || adc_dev->ts_pend) {
++ INIT_WORK(&resume_work, adc_resume_work);
++ if (!schedule_work(&resume_work))
++ dev_err(&pdev->dev,
++ "Failed to schedule adc_resume work!\n");
++ }
++
+ return 0;
+ }
+
+--
+1.6.5.2
+
diff --git a/recipes/linux/linux-openmoko-shr-drm-devel/0002-GTA01-GTA02-disable-android-drivers-in-default-confi.patch b/recipes/linux/linux-openmoko-shr-drm-devel/0002-GTA01-GTA02-disable-android-drivers-in-default-confi.patch
new file mode 100644
index 0000000000..797f2fb27b
--- /dev/null
+++ b/recipes/linux/linux-openmoko-shr-drm-devel/0002-GTA01-GTA02-disable-android-drivers-in-default-confi.patch
@@ -0,0 +1,154 @@
+From 18713d582b94c7f132f306c01c43fd22a12a1fc5 Mon Sep 17 00:00:00 2001
+From: Radek Polak <psonek2@seznam.cz>
+Date: Fri, 2 Oct 2009 20:54:29 +0200
+Subject: [PATCH 2/7] GTA01/GTA02: disable android drivers in default configs
+
+Android drivers are not needed for standard linux systems. We can save
+memory by disabling them.
+
+Android low memory killer (CONFIG_ANDROID_LOW_MEMORY_KILLER) also
+prevents using swap by killing applications before swapping can start
+on non android systems.
+
+Reported-by: Jim Morris <morris@wolfman.com>
+Signed-off-by: Radek Polak <psonek2@seznam.cz>
+Signed-off-by: Nelson Castillo <arhuaco@freaks-unidos.net>
+---
+ arch/arm/configs/gta01_moredrivers_defconfig | 21 ++++++++++-----------
+ arch/arm/configs/gta02_moredrivers_defconfig | 19 ++++++++-----------
+ arch/arm/configs/gta02_packaging_defconfig | 19 ++++++++-----------
+ 3 files changed, 26 insertions(+), 33 deletions(-)
+
+diff --git a/arch/arm/configs/gta01_moredrivers_defconfig b/arch/arm/configs/gta01_moredrivers_defconfig
+index 411acab..68b95e7 100644
+--- a/arch/arm/configs/gta01_moredrivers_defconfig
++++ b/arch/arm/configs/gta01_moredrivers_defconfig
+@@ -1,7 +1,7 @@
+ #
+ # Automatically generated make config: don't edit
+ # Linux kernel version: 2.6.29-rc3
+-# Tue Feb 24 02:13:21 2009
++# Fri Oct 2 16:49:49 2009
+ #
+ CONFIG_ARM=y
+ CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+@@ -203,6 +203,7 @@ CONFIG_S3C_GPIO_SPACE=0
+ CONFIG_S3C_GPIO_TRACK=y
+ CONFIG_S3C_DMA=y
+ CONFIG_S3C_PWM=y
++CONFIG_S3C_DEV_USB_HOST=y
+
+ #
+ # S3C2400 Machines
+@@ -1159,6 +1160,7 @@ CONFIG_WATCHDOG=y
+ #
+ # CONFIG_SOFT_WATCHDOG is not set
+ CONFIG_S3C2410_WATCHDOG=m
++CONFIG_PCF50606_WATCHDOG=y
+
+ #
+ # USB-based Watchdog Cards
+@@ -1686,17 +1688,14 @@ CONFIG_STAGING=y
+ #
+ # Android
+ #
+-CONFIG_ANDROID=y
+-CONFIG_ANDROID_BINDER_IPC=y
+-CONFIG_ANDROID_LOGGER=y
+-CONFIG_ANDROID_RAM_CONSOLE=y
+-CONFIG_ANDROID_RAM_CONSOLE_ENABLE_VERBOSE=y
+-# CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION is not set
+-# CONFIG_ANDROID_RAM_CONSOLE_EARLY_INIT is not set
+-CONFIG_ANDROID_TIMED_GPIO=y
+-CONFIG_ANDROID_LOW_MEMORY_KILLER=y
++# CONFIG_ANDROID is not set
++# CONFIG_ANDROID_BINDER_IPC is not set
++# CONFIG_ANDROID_LOGGER is not set
++# CONFIG_ANDROID_RAM_CONSOLE is not set
++# CONFIG_ANDROID_TIMED_GPIO is not set
++# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set
+ # CONFIG_ANDROID_WAKELOCK is not set
+-CONFIG_ANDROID_PARANOID_NETWORK=y
++# CONFIG_ANDROID_PARANOID_NETWORK is not set
+
+ #
+ # File systems
+diff --git a/arch/arm/configs/gta02_moredrivers_defconfig b/arch/arm/configs/gta02_moredrivers_defconfig
+index 13b4121..e4fe9a9 100644
+--- a/arch/arm/configs/gta02_moredrivers_defconfig
++++ b/arch/arm/configs/gta02_moredrivers_defconfig
+@@ -1,7 +1,7 @@
+ #
+ # Automatically generated make config: don't edit
+ # Linux kernel version: 2.6.29-rc3
+-# Sun Apr 19 23:22:38 2009
++# Fri Oct 2 20:52:45 2009
+ #
+ CONFIG_ARM=y
+ CONFIG_HAVE_PWM=y
+@@ -1782,17 +1782,14 @@ CONFIG_STAGING=y
+ #
+ # Android
+ #
+-CONFIG_ANDROID=y
+-CONFIG_ANDROID_BINDER_IPC=y
+-CONFIG_ANDROID_LOGGER=y
+-CONFIG_ANDROID_RAM_CONSOLE=y
+-CONFIG_ANDROID_RAM_CONSOLE_ENABLE_VERBOSE=y
+-# CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION is not set
+-# CONFIG_ANDROID_RAM_CONSOLE_EARLY_INIT is not set
+-CONFIG_ANDROID_TIMED_GPIO=y
+-CONFIG_ANDROID_LOW_MEMORY_KILLER=y
++# CONFIG_ANDROID is not set
++# CONFIG_ANDROID_BINDER_IPC is not set
++# CONFIG_ANDROID_LOGGER is not set
++# CONFIG_ANDROID_RAM_CONSOLE is not set
++# CONFIG_ANDROID_TIMED_GPIO is not set
++# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set
+ # CONFIG_ANDROID_WAKELOCK is not set
+-CONFIG_ANDROID_PARANOID_NETWORK=y
++# CONFIG_ANDROID_PARANOID_NETWORK is not set
+
+ #
+ # File systems
+diff --git a/arch/arm/configs/gta02_packaging_defconfig b/arch/arm/configs/gta02_packaging_defconfig
+index 03c72d5..e2dbbef 100644
+--- a/arch/arm/configs/gta02_packaging_defconfig
++++ b/arch/arm/configs/gta02_packaging_defconfig
+@@ -1,7 +1,7 @@
+ #
+ # Automatically generated make config: don't edit
+ # Linux kernel version: 2.6.29-rc3
+-# Sun Apr 19 22:57:25 2009
++# Fri Oct 2 20:51:57 2009
+ #
+ CONFIG_ARM=y
+ CONFIG_HAVE_PWM=y
+@@ -1785,17 +1785,14 @@ CONFIG_STAGING=y
+ #
+ # Android
+ #
+-CONFIG_ANDROID=y
+-CONFIG_ANDROID_BINDER_IPC=y
+-CONFIG_ANDROID_LOGGER=y
+-CONFIG_ANDROID_RAM_CONSOLE=y
+-CONFIG_ANDROID_RAM_CONSOLE_ENABLE_VERBOSE=y
+-# CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION is not set
+-# CONFIG_ANDROID_RAM_CONSOLE_EARLY_INIT is not set
+-CONFIG_ANDROID_TIMED_GPIO=y
+-CONFIG_ANDROID_LOW_MEMORY_KILLER=y
++# CONFIG_ANDROID is not set
++# CONFIG_ANDROID_BINDER_IPC is not set
++# CONFIG_ANDROID_LOGGER is not set
++# CONFIG_ANDROID_RAM_CONSOLE is not set
++# CONFIG_ANDROID_TIMED_GPIO is not set
++# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set
+ # CONFIG_ANDROID_WAKELOCK is not set
+-CONFIG_ANDROID_PARANOID_NETWORK=y
++# CONFIG_ANDROID_PARANOID_NETWORK is not set
+
+ #
+ # File systems
+--
+1.6.5.2
+
diff --git a/recipes/linux/linux-openmoko-shr-drm-devel/0003-glamo-spi-missing-semicolon-after-MODULE_AUTHOR.patch b/recipes/linux/linux-openmoko-shr-drm-devel/0003-glamo-spi-missing-semicolon-after-MODULE_AUTHOR.patch
new file mode 100644
index 0000000000..0eed294911
--- /dev/null
+++ b/recipes/linux/linux-openmoko-shr-drm-devel/0003-glamo-spi-missing-semicolon-after-MODULE_AUTHOR.patch
@@ -0,0 +1,39 @@
+From cf7ef93a6d5eff863034fade19d7a1d6bc19789a Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Wed, 4 Nov 2009 20:09:03 +0100
+Subject: [PATCH 3/7] glamo-spi: missing semicolon after MODULE_AUTHOR()
+
+Fix compilation error due to missing semicolon
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Signed-off-by: Paul Fertser <fercerpav@gmail.com>
+---
+ drivers/mfd/glamo/glamo-lcm-spi.c | 2 +-
+ drivers/mfd/glamo/glamo-spi-gpio.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/mfd/glamo/glamo-lcm-spi.c b/drivers/mfd/glamo/glamo-lcm-spi.c
+index a7129fe..446f058 100644
+--- a/drivers/mfd/glamo/glamo-lcm-spi.c
++++ b/drivers/mfd/glamo/glamo-lcm-spi.c
+@@ -236,5 +236,5 @@ module_init(glamo_spi_init);
+ module_exit(glamo_spi_exit);
+
+ MODULE_DESCRIPTION("Smedia Glamo 336x/337x LCM serial command SPI Driver");
+-MODULE_AUTHOR("Harald Welte <laforge@openmoko.org>")
++MODULE_AUTHOR("Harald Welte <laforge@openmoko.org>");
+ MODULE_LICENSE("GPL");
+diff --git a/drivers/mfd/glamo/glamo-spi-gpio.c b/drivers/mfd/glamo/glamo-spi-gpio.c
+index b92e48a..6ebf498 100644
+--- a/drivers/mfd/glamo/glamo-spi-gpio.c
++++ b/drivers/mfd/glamo/glamo-spi-gpio.c
+@@ -274,5 +274,5 @@ module_init(glamo_spi_init);
+ module_exit(glamo_spi_exit);
+
+ MODULE_DESCRIPTION("Smedia Glamo 336x/337x LCM serial command SPI Driver");
+-MODULE_AUTHOR("Harald Welte <laforge@openmoko.org>")
++MODULE_AUTHOR("Harald Welte <laforge@openmoko.org>");
+ MODULE_LICENSE("GPL");
+--
+1.6.5.2
+
diff --git a/recipes/linux/linux-openmoko-shr-drm-devel/0004-gta02_drm_defconfig-start-from-gta02_packaging_defco.patch b/recipes/linux/linux-openmoko-shr-drm-devel/0004-gta02_drm_defconfig-start-from-gta02_packaging_defco.patch
new file mode 100644
index 0000000000..adb3ce84e3
--- /dev/null
+++ b/recipes/linux/linux-openmoko-shr-drm-devel/0004-gta02_drm_defconfig-start-from-gta02_packaging_defco.patch
@@ -0,0 +1,129 @@
+From ab6c9baa5cc8ae3a922ae4baef2550d399b41550 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Sun, 8 Nov 2009 10:48:28 +0100
+Subject: [PATCH 4/7] gta02_drm_defconfig: start from gta02_packaging_defconfig
+
+---
+ arch/arm/configs/gta02_drm_defconfig | 40 +++++++++++++--------------------
+ 1 files changed, 16 insertions(+), 24 deletions(-)
+
+diff --git a/arch/arm/configs/gta02_drm_defconfig b/arch/arm/configs/gta02_drm_defconfig
+index 5349014..e2dbbef 100644
+--- a/arch/arm/configs/gta02_drm_defconfig
++++ b/arch/arm/configs/gta02_drm_defconfig
+@@ -1,7 +1,7 @@
+ #
+ # Automatically generated make config: don't edit
+ # Linux kernel version: 2.6.29-rc3
+-# Thu Jul 2 20:40:33 2009
++# Fri Oct 2 20:51:57 2009
+ #
+ CONFIG_ARM=y
+ CONFIG_HAVE_PWM=y
+@@ -35,7 +35,7 @@ CONFIG_EXPERIMENTAL=y
+ CONFIG_BROKEN_ON_SMP=y
+ CONFIG_LOCK_KERNEL=y
+ CONFIG_INIT_ENV_ARG_LIMIT=32
+-CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION="-mokodev"
+ # CONFIG_LOCALVERSION_AUTO is not set
+ CONFIG_SWAP=y
+ CONFIG_SYSVIPC=y
+@@ -180,7 +180,7 @@ CONFIG_S3C24XX_PWM=y
+ CONFIG_S3C24XX_GPIO_EXTRA=0
+ CONFIG_S3C2410_DMA=y
+ # CONFIG_S3C2410_DMA_DEBUG is not set
+-# CONFIG_S3C24XX_ADC is not set
++CONFIG_S3C24XX_ADC=y
+ CONFIG_MACH_SMDK=y
+ CONFIG_MACH_NEO1973=y
+ CONFIG_PLAT_S3C=y
+@@ -1084,7 +1084,6 @@ CONFIG_I2C=y
+ CONFIG_I2C_BOARDINFO=y
+ CONFIG_I2C_CHARDEV=y
+ CONFIG_I2C_HELPER_AUTO=y
+-CONFIG_I2C_ALGOBIT=y
+
+ #
+ # I2C Hardware Bus support
+@@ -1181,7 +1180,7 @@ CONFIG_APM_POWER=y
+ CONFIG_CHARGER_PCF50633=y
+ CONFIG_BATTERY_BQ27000_HDQ=y
+ CONFIG_HDQ_GPIO_BITBANG=y
+-# CONFIG_BATTERY_GTA01 is not set
++CONFIG_BATTERY_GTA01=m
+ CONFIG_HWMON=y
+ # CONFIG_HWMON_VID is not set
+ # CONFIG_SENSORS_AD7414 is not set
+@@ -1283,14 +1282,11 @@ CONFIG_PCF50633_ADC=y
+ CONFIG_PCF50633_GPIO=y
+ # CONFIG_MFD_PCF50606 is not set
+ CONFIG_MFD_GLAMO=y
+-
+-#
+-# SMedia Glamo 336x/337x engine drivers
+-#
+-# CONFIG_MFD_GLAMO_FB is not set
++CONFIG_MFD_GLAMO_FB=y
++CONFIG_MFD_GLAMO_FB_XGLAMO_WORKAROUND=y
+ CONFIG_MFD_GLAMO_SPI_GPIO=y
++CONFIG_MFD_GLAMO_SPI_FB=y
+ CONFIG_MFD_GLAMO_MCI=y
+-CONFIG_MFD_GLAMO_DRM=y
+
+ #
+ # Multimedia devices
+@@ -1312,7 +1308,6 @@ CONFIG_DAB=y
+ #
+ # Graphics support
+ #
+-CONFIG_DRM=y
+ # CONFIG_VGASTATE is not set
+ CONFIG_VIDEO_OUTPUT_CONTROL=y
+ CONFIG_FB=y
+@@ -1790,17 +1785,14 @@ CONFIG_STAGING=y
+ #
+ # Android
+ #
+-CONFIG_ANDROID=y
+-CONFIG_ANDROID_BINDER_IPC=y
+-CONFIG_ANDROID_LOGGER=y
+-CONFIG_ANDROID_RAM_CONSOLE=y
+-CONFIG_ANDROID_RAM_CONSOLE_ENABLE_VERBOSE=y
+-# CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION is not set
+-# CONFIG_ANDROID_RAM_CONSOLE_EARLY_INIT is not set
+-CONFIG_ANDROID_TIMED_GPIO=y
+-CONFIG_ANDROID_LOW_MEMORY_KILLER=y
++# CONFIG_ANDROID is not set
++# CONFIG_ANDROID_BINDER_IPC is not set
++# CONFIG_ANDROID_LOGGER is not set
++# CONFIG_ANDROID_RAM_CONSOLE is not set
++# CONFIG_ANDROID_TIMED_GPIO is not set
++# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set
+ # CONFIG_ANDROID_WAKELOCK is not set
+-CONFIG_ANDROID_PARANOID_NETWORK=y
++# CONFIG_ANDROID_PARANOID_NETWORK is not set
+
+ #
+ # File systems
+@@ -1958,7 +1950,7 @@ CONFIG_NLS_CODEPAGE_850=m
+ # CONFIG_NLS_CODEPAGE_863 is not set
+ # CONFIG_NLS_CODEPAGE_864 is not set
+ # CONFIG_NLS_CODEPAGE_865 is not set
+-# CONFIG_NLS_CODEPAGE_866 is not set
++CONFIG_NLS_CODEPAGE_866=m
+ # CONFIG_NLS_CODEPAGE_869 is not set
+ CONFIG_NLS_CODEPAGE_936=m
+ CONFIG_NLS_CODEPAGE_950=m
+@@ -1967,7 +1959,7 @@ CONFIG_NLS_CODEPAGE_950=m
+ # CONFIG_NLS_CODEPAGE_874 is not set
+ # CONFIG_NLS_ISO8859_8 is not set
+ # CONFIG_NLS_CODEPAGE_1250 is not set
+-# CONFIG_NLS_CODEPAGE_1251 is not set
++CONFIG_NLS_CODEPAGE_1251=m
+ # CONFIG_NLS_ASCII is not set
+ CONFIG_NLS_ISO8859_1=y
+ # CONFIG_NLS_ISO8859_2 is not set
+--
+1.6.5.2
+
diff --git a/recipes/linux/linux-openmoko-shr-drm-devel/0005-Enable-DRM-and-MFD_GLAMO_DRM.patch b/recipes/linux/linux-openmoko-shr-drm-devel/0005-Enable-DRM-and-MFD_GLAMO_DRM.patch
new file mode 100644
index 0000000000..c9d56fa7ab
--- /dev/null
+++ b/recipes/linux/linux-openmoko-shr-drm-devel/0005-Enable-DRM-and-MFD_GLAMO_DRM.patch
@@ -0,0 +1,51 @@
+From 8fe4cb1bee0c8af760d8911c248e0904e44fa0b3 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Sun, 8 Nov 2009 10:49:43 +0100
+Subject: [PATCH 5/7] Enable DRM and MFD_GLAMO_DRM
+
+---
+ arch/arm/configs/gta02_drm_defconfig | 12 ++++++++----
+ 1 files changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/arch/arm/configs/gta02_drm_defconfig b/arch/arm/configs/gta02_drm_defconfig
+index e2dbbef..aac2832 100644
+--- a/arch/arm/configs/gta02_drm_defconfig
++++ b/arch/arm/configs/gta02_drm_defconfig
+@@ -35,7 +35,7 @@ CONFIG_EXPERIMENTAL=y
+ CONFIG_BROKEN_ON_SMP=y
+ CONFIG_LOCK_KERNEL=y
+ CONFIG_INIT_ENV_ARG_LIMIT=32
+-CONFIG_LOCALVERSION="-mokodev"
++CONFIG_LOCALVERSION="-drm"
+ # CONFIG_LOCALVERSION_AUTO is not set
+ CONFIG_SWAP=y
+ CONFIG_SYSVIPC=y
+@@ -1282,11 +1282,14 @@ CONFIG_PCF50633_ADC=y
+ CONFIG_PCF50633_GPIO=y
+ # CONFIG_MFD_PCF50606 is not set
+ CONFIG_MFD_GLAMO=y
+-CONFIG_MFD_GLAMO_FB=y
+-CONFIG_MFD_GLAMO_FB_XGLAMO_WORKAROUND=y
++
++#
++# SMedia Glamo 336x/337x engine drivers
++#
++# CONFIG_MFD_GLAMO_FB is not set
+ CONFIG_MFD_GLAMO_SPI_GPIO=y
+-CONFIG_MFD_GLAMO_SPI_FB=y
+ CONFIG_MFD_GLAMO_MCI=y
++CONFIG_MFD_GLAMO_DRM=y
+
+ #
+ # Multimedia devices
+@@ -1308,6 +1311,7 @@ CONFIG_DAB=y
+ #
+ # Graphics support
+ #
++CONFIG_DRM=y
+ # CONFIG_VGASTATE is not set
+ CONFIG_VIDEO_OUTPUT_CONTROL=y
+ CONFIG_FB=y
+--
+1.6.5.2
+
diff --git a/recipes/linux/linux-openmoko-shr-drm-devel/0006-Enable-I2C_ALGOBIT-from-make-oldconfig.patch b/recipes/linux/linux-openmoko-shr-drm-devel/0006-Enable-I2C_ALGOBIT-from-make-oldconfig.patch
new file mode 100644
index 0000000000..79305ce317
--- /dev/null
+++ b/recipes/linux/linux-openmoko-shr-drm-devel/0006-Enable-I2C_ALGOBIT-from-make-oldconfig.patch
@@ -0,0 +1,33 @@
+From 315bd3c8c368cf8097e3b0aecd21907755b617e1 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Sun, 8 Nov 2009 10:54:55 +0100
+Subject: [PATCH 6/7] Enable I2C_ALGOBIT, from make oldconfig
+
+---
+ arch/arm/configs/gta02_drm_defconfig | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/arch/arm/configs/gta02_drm_defconfig b/arch/arm/configs/gta02_drm_defconfig
+index aac2832..e17ddc3 100644
+--- a/arch/arm/configs/gta02_drm_defconfig
++++ b/arch/arm/configs/gta02_drm_defconfig
+@@ -1,7 +1,7 @@
+ #
+ # Automatically generated make config: don't edit
+ # Linux kernel version: 2.6.29-rc3
+-# Fri Oct 2 20:51:57 2009
++# Sun Nov 8 10:53:31 2009
+ #
+ CONFIG_ARM=y
+ CONFIG_HAVE_PWM=y
+@@ -1084,6 +1084,7 @@ CONFIG_I2C=y
+ CONFIG_I2C_BOARDINFO=y
+ CONFIG_I2C_CHARDEV=y
+ CONFIG_I2C_HELPER_AUTO=y
++CONFIG_I2C_ALGOBIT=y
+
+ #
+ # I2C Hardware Bus support
+--
+1.6.5.2
+
diff --git a/recipes/linux/linux-openmoko-shr-drm-devel/0007-Enable-UBI-UBIFS.patch b/recipes/linux/linux-openmoko-shr-drm-devel/0007-Enable-UBI-UBIFS.patch
new file mode 100644
index 0000000000..f7dd7615af
--- /dev/null
+++ b/recipes/linux/linux-openmoko-shr-drm-devel/0007-Enable-UBI-UBIFS.patch
@@ -0,0 +1,90 @@
+From 8f907c17c068beb94264a4a6d40314658a0c1393 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Sun, 8 Nov 2009 10:58:28 +0100
+Subject: [PATCH 7/7] Enable UBI/UBIFS
+
+---
+ arch/arm/configs/gta02_drm_defconfig | 39 ++++++++++++++++++++++++++++++---
+ 1 files changed, 35 insertions(+), 4 deletions(-)
+
+diff --git a/arch/arm/configs/gta02_drm_defconfig b/arch/arm/configs/gta02_drm_defconfig
+index e17ddc3..7506963 100644
+--- a/arch/arm/configs/gta02_drm_defconfig
++++ b/arch/arm/configs/gta02_drm_defconfig
+@@ -1,7 +1,7 @@
+ #
+ # Automatically generated make config: don't edit
+ # Linux kernel version: 2.6.29-rc3
+-# Sun Nov 8 10:53:31 2009
++# Sun Nov 8 10:57:36 2009
+ #
+ CONFIG_ARM=y
+ CONFIG_HAVE_PWM=y
+@@ -806,7 +806,30 @@ CONFIG_MTD_NAND_S3C2410_HWECC=y
+ #
+ # UBI - Unsorted block images
+ #
+-# CONFIG_MTD_UBI is not set
++CONFIG_MTD_UBI=y
++CONFIG_MTD_UBI_WL_THRESHOLD=4096
++CONFIG_MTD_UBI_BEB_RESERVE=1
++CONFIG_MTD_UBI_GLUEBI=y
++
++#
++# UBI debugging options
++#
++CONFIG_MTD_UBI_DEBUG=y
++CONFIG_MTD_UBI_DEBUG_MSG=y
++# CONFIG_MTD_UBI_DEBUG_PARANOID is not set
++# CONFIG_MTD_UBI_DEBUG_DISABLE_BGT is not set
++# CONFIG_MTD_UBI_DEBUG_USERSPACE_IO is not set
++# CONFIG_MTD_UBI_DEBUG_EMULATE_BITFLIPS is not set
++# CONFIG_MTD_UBI_DEBUG_EMULATE_WRITE_FAILURES is not set
++# CONFIG_MTD_UBI_DEBUG_EMULATE_ERASE_FAILURES is not set
++
++#
++# Additional UBI debugging messages
++#
++CONFIG_MTD_UBI_DEBUG_MSG_BLD=y
++CONFIG_MTD_UBI_DEBUG_MSG_EBA=y
++CONFIG_MTD_UBI_DEBUG_MSG_WL=y
++CONFIG_MTD_UBI_DEBUG_MSG_IO=y
+ # CONFIG_PARPORT is not set
+ CONFIG_BLK_DEV=y
+ # CONFIG_BLK_DEV_COW_COMMON is not set
+@@ -1877,6 +1900,12 @@ CONFIG_JFFS2_ZLIB=y
+ # CONFIG_JFFS2_LZO is not set
+ CONFIG_JFFS2_RTIME=y
+ # CONFIG_JFFS2_RUBIN is not set
++CONFIG_UBIFS_FS=y
++# CONFIG_UBIFS_FS_XATTR is not set
++# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
++CONFIG_UBIFS_FS_LZO=y
++CONFIG_UBIFS_FS_ZLIB=y
++# CONFIG_UBIFS_FS_DEBUG is not set
+ CONFIG_CRAMFS=y
+ CONFIG_SQUASHFS=m
+ # CONFIG_SQUASHFS_EMBEDDED is not set
+@@ -2151,8 +2180,8 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
+ #
+ # Compression
+ #
+-CONFIG_CRYPTO_DEFLATE=m
+-# CONFIG_CRYPTO_LZO is not set
++CONFIG_CRYPTO_DEFLATE=y
++CONFIG_CRYPTO_LZO=y
+
+ #
+ # Random Number Generation
+@@ -2174,6 +2203,8 @@ CONFIG_CRC32=y
+ CONFIG_LIBCRC32C=m
+ CONFIG_ZLIB_INFLATE=y
+ CONFIG_ZLIB_DEFLATE=y
++CONFIG_LZO_COMPRESS=y
++CONFIG_LZO_DECOMPRESS=y
+ CONFIG_TEXTSEARCH=y
+ CONFIG_TEXTSEARCH_KMP=m
+ CONFIG_TEXTSEARCH_BM=m
+--
+1.6.5.2
+
diff --git a/recipes/linux/linux-openmoko-shr-drm-devel/fix-install.patch b/recipes/linux/linux-openmoko-shr-drm-devel/fix-install.patch
new file mode 100644
index 0000000000..b14ca7d740
--- /dev/null
+++ b/recipes/linux/linux-openmoko-shr-drm-devel/fix-install.patch
@@ -0,0 +1,23 @@
+From: Steve Sakoman <steve@sakoman.com>
+Date: Mon, 18 Aug 2008 16:07:31 +0000 (-0700)
+Subject: scripts/Makefile.fwinst: add missing space when setting mode in cmd_install
+X-Git-Url: http://www.sakoman.net/cgi-bin/gitweb.cgi?p=linux-omap-2.6.git;a=commitdiff_plain;h=f039944bdd491cde7327133e9976881d3133ae70
+
+scripts/Makefile.fwinst: add missing space when setting mode in cmd_install
+
+This was causing build failures on some machines
+---
+
+diff --git a/scripts/Makefile.fwinst b/scripts/Makefile.fwinst
+index 6bf8e87..fb20532 100644
+--- a/scripts/Makefile.fwinst
++++ b/scripts/Makefile.fwinst
+@@ -37,7 +37,7 @@
+ @true
+
+ quiet_cmd_install = INSTALL $(subst $(srctree)/,,$@)
+- cmd_install = $(INSTALL) -m0644 $< $@
++ cmd_install = $(INSTALL) -m 0644 $< $@
+
+ $(installed-fw-dirs):
+ $(call cmd,mkdir)
diff --git a/recipes/linux/linux-openmoko-shr-drm-devel_git.bb b/recipes/linux/linux-openmoko-shr-drm-devel_git.bb
new file mode 100644
index 0000000000..e02cc6f135
--- /dev/null
+++ b/recipes/linux/linux-openmoko-shr-drm-devel_git.bb
@@ -0,0 +1,34 @@
+require linux.inc
+require linux-openmoko.inc
+
+DESCRIPTION_${PN} = "Linux ${KERNEL_VERSION} kernel for the Openmoko Neo GSM Smartphones"
+
+DEFAULT_PREFERENCE = "-1"
+KERNEL_RELEASE = "2.6.29"
+KERNEL_VERSION = "2.6.29-rc3-drm"
+
+OMV = "oe15"
+PV = "${KERNEL_RELEASE}-drm-${OMV}+gitr${SRCREV}"
+PR = "r4"
+
+SRC_URI = "\
+ git://git.openmoko.org/git/kernel.git;protocol=git;branch=drm-tracking \
+ file://fix-install.patch;patch=1 \
+ file://0001-Add-drm-to-Makefile-version.patch;patch=1 \
+ file://0001-Fix-s3c-adc-suspend.patch;patch=1 \
+ file://0002-GTA01-GTA02-disable-android-drivers-in-default-confi.patch;patch=1 \
+ file://0003-glamo-spi-missing-semicolon-after-MODULE_AUTHOR.patch;patch=1 \
+ file://0004-gta02_drm_defconfig-start-from-gta02_packaging_defco.patch;patch=1 \
+ file://0005-Enable-DRM-and-MFD_GLAMO_DRM.patch;patch=1 \
+ file://0006-Enable-I2C_ALGOBIT-from-make-oldconfig.patch;patch=1 \
+ file://0007-Enable-UBI-UBIFS.patch;patch=1 \
+"
+S = "${WORKDIR}/git"
+
+CONFIG_NAME_om-gta01 = "gta01_moredrivers_defconfig"
+CONFIG_NAME_om-gta02 = "gta02_drm_defconfig"
+CONFIG_NAME_om-gta03 = "gta03_defconfig"
+
+do_configure_prepend() {
+ install -m 644 ./arch/arm/configs/${CONFIG_NAME} ${WORKDIR}/defconfig-oe
+}
diff --git a/recipes/linux/linux-openmoko.inc b/recipes/linux/linux-openmoko.inc
index 84a77ea586..e789e76b1a 100644
--- a/recipes/linux/linux-openmoko.inc
+++ b/recipes/linux/linux-openmoko.inc
@@ -33,7 +33,7 @@ module_autoload_snd-soc-neo1973-wm8753 = "snd-soc-neo1973-wm8753"
# audio (GTA02)
module_autoload_snd-soc-neo1973-gta02-wm8753 = "snd-soc-neo1973-gta02-wm8753"
# audio (GTA03)
-module_autoload_snd-soc-neo1973-gta02-wm8753 = ""
+module_autoload_snd-soc-neo1973-gta03-wm8753 = ""
# sd/mmc
module_autoload_s3cmci = "s3cmci"
diff --git a/recipes/linux/linux-replicant/htcblackstone/defconfig b/recipes/linux/linux-replicant/htcblackstone/defconfig
new file mode 100644
index 0000000000..81e8cf9a74
--- /dev/null
+++ b/recipes/linux/linux-replicant/htcblackstone/defconfig
@@ -0,0 +1,1139 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.27
+# Sun Mar 8 15:57:38 2009
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_MMU=y
+# CONFIG_NO_IOPORT is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ARCH_SUPPORTS_AOUT=y
+CONFIG_ZONE_DMA=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+# CONFIG_SYSVIPC is not set
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=17
+# CONFIG_CGROUPS is not set
+CONFIG_GROUP_SCHED=y
+# CONFIG_FAIR_GROUP_SCHED is not set
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_USER_SCHED=y
+# CONFIG_CGROUP_SCHED is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
+CONFIG_NAMESPACES=y
+# CONFIG_UTS_NS is not set
+# CONFIG_USER_NS is not set
+# CONFIG_PID_NS is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_PANIC_TIMEOUT=3
+# CONFIG_EMBEDDED is not set
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_COMPAT_BRK=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_ASHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
+# CONFIG_HAVE_IOREMAP_PROT is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+# CONFIG_HAVE_ARCH_TRACEHOOK is not set
+# CONFIG_HAVE_DMA_ATTRS is not set
+# CONFIG_USE_GENERIC_SMP_HELPERS is not set
+# CONFIG_HAVE_CLK is not set
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+# CONFIG_IOSCHED_DEADLINE is not set
+# CONFIG_IOSCHED_CFQ is not set
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+CONFIG_CLASSIC_RCU=y
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KIRKWOOD is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_LOKI is not set
+# CONFIG_ARCH_MV78XX0 is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+CONFIG_ARCH_MSM=y
+
+#
+# Boot options
+#
+
+#
+# Power management
+#
+CONFIG_MSM_AMSS_VERSION=7000
+# CONFIG_MSM_AMSS_VERSION_6210 is not set
+# CONFIG_MSM_AMSS_VERSION_6220 is not set
+# CONFIG_MSM_AMSS_VERSION_6225 is not set
+CONFIG_MSM_AMSS_VERSION_WINCE=y
+CONFIG_MSM_DEBUG_UART_NONE=y
+# CONFIG_MSM_DEBUG_UART1 is not set
+# CONFIG_MSM_DEBUG_UART2 is not set
+# CONFIG_MSM_DEBUG_UART3 is not set
+
+#
+# MSM Board Type
+#
+# CONFIG_MACH_HALIBUT is not set
+# CONFIG_MACH_TROUT is not set
+# CONFIG_MACH_HTCRAPHAEL is not set
+# CONFIG_MACH_HTCRAPHAEL_CDMA is not set
+# CONFIG_MACH_HTCDIAMOND is not set
+# CONFIG_MACH_HTCDIAMOND_CDMA is not set
+CONFIG_MACH_HTCBLACKSTONE=y
+# CONFIG_TROUT_H2W is not set
+CONFIG_TROUT_PWRSINK=y
+CONFIG_MSM7X00A_USE_GP_TIMER=y
+# CONFIG_MSM7X00A_USE_DG_TIMER is not set
+CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE_SUSPEND=y
+# CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE is not set
+# CONFIG_MSM7X00A_SLEEP_MODE_APPS_SLEEP is not set
+# CONFIG_MSM7X00A_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT is not set
+# CONFIG_MSM7X00A_SLEEP_WAIT_FOR_INTERRUPT is not set
+CONFIG_MSM7X00A_SLEEP_MODE=0
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE_SUSPEND is not set
+CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE=y
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_APPS_SLEEP is not set
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT is not set
+# CONFIG_MSM7X00A_IDLE_SLEEP_WAIT_FOR_INTERRUPT is not set
+CONFIG_MSM7X00A_IDLE_SLEEP_MODE=1
+CONFIG_MSM7X00A_IDLE_SLEEP_MIN_TIME=20000000
+CONFIG_MSM7X00A_IDLE_SPIN_TIME=80000
+CONFIG_MSM_IDLE_STATS=y
+CONFIG_MSM_IDLE_STATS_FIRST_BUCKET=62500
+CONFIG_MSM_IDLE_STATS_BUCKET_SHIFT=2
+CONFIG_MSM_IDLE_STATS_BUCKET_COUNT=10
+CONFIG_MSM_FIQ_SUPPORT=y
+# CONFIG_MSM_SERIAL_DEBUGGER is not set
+CONFIG_MSM_SMD=y
+# CONFIG_MSM_SMD_7500 is not set
+# CONFIG_MSM_ONCRPCROUTER is not set
+CONFIG_MSM_CPU_FREQ=y
+# CONFIG_MSM_CPU_FREQ_ONDEMAND is not set
+CONFIG_MSM_CPU_FREQ_SCREEN=y
+CONFIG_MSM_CPU_FREQ_SCREEN_OFF=245760
+CONFIG_MSM_CPU_FREQ_SCREEN_ON=384000
+CONFIG_MSM_HW3D=y
+# CONFIG_MSM_ADSP is not set
+# CONFIG_HTC_FB_CONSOLE is not set
+# CONFIG_WIFI_CONTROL_FUNC is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_V6=y
+# CONFIG_CPU_32v6K is not set
+CONFIG_CPU_32v6=y
+CONFIG_CPU_ABRT_EV6=y
+CONFIG_CPU_PABRT_NOIFAR=y
+CONFIG_CPU_CACHE_V6=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V6=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+# CONFIG_OUTER_CACHE is not set
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_PREEMPT=y
+CONFIG_HZ=100
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+CONFIG_ARCH_FLATMEM_HAS_HOLES=y
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_RESOURCES_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="mem=76M console=ttyMSM2,115200n8"
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+# CONFIG_VFP is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options
+#
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_SLEEP=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HAS_WAKELOCK=y
+CONFIG_HAS_EARLYSUSPEND=y
+CONFIG_WAKELOCK=y
+# CONFIG_WAKELOCK_STAT is not set
+CONFIG_USER_WAKELOCK=y
+CONFIG_EARLYSUSPEND=y
+# CONFIG_NO_USER_SPACE_SCREEN_ACCESS_CONTROL is not set
+CONFIG_CONSOLE_EARLYSUSPEND=y
+# CONFIG_FB_EARLYSUSPEND is not set
+# CONFIG_APM_EMULATION is not set
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+CONFIG_ANDROID_PARANOID_NETWORK=y
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+
+#
+# Wireless
+#
+# CONFIG_CFG80211 is not set
+CONFIG_WIRELESS_EXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+# CONFIG_MAC80211 is not set
+CONFIG_IEEE80211=y
+# CONFIG_IEEE80211_DEBUG is not set
+# CONFIG_IEEE80211_CRYPT_WEP is not set
+# CONFIG_IEEE80211_CRYPT_CCMP is not set
+# CONFIG_IEEE80211_CRYPT_TKIP is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+# CONFIG_MTD is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+CONFIG_MISC_DEVICES=y
+CONFIG_ANDROID_PMEM=y
+CONFIG_TIMED_OUTPUT=y
+CONFIG_TIMED_GPIO=y
+CONFIG_BINDER_IPC=y
+# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+CONFIG_KERNEL_DEBUGGER_CORE=y
+CONFIG_LOW_MEMORY_KILLER=y
+CONFIG_LOGGER=y
+# CONFIG_UID_STAT is not set
+# CONFIG_ANDROID_RAM_CONSOLE is not set
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+CONFIG_NETDEVICES=y
+CONFIG_DUMMY=y
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+# CONFIG_PHYLIB is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_AX88796 is not set
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_B44 is not set
+CONFIG_NETDEV_1000=y
+CONFIG_NETDEV_10000=y
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+CONFIG_WLAN_80211=y
+# CONFIG_LIBERTAS is not set
+# CONFIG_IWLWIFI_LEDS is not set
+# CONFIG_HOSTAP is not set
+# CONFIG_WAN is not set
+CONFIG_PPP=y
+# CONFIG_PPP_MULTILINK is not set
+# CONFIG_PPP_FILTER is not set
+CONFIG_PPP_ASYNC=y
+# CONFIG_PPP_SYNC_TTY is not set
+CONFIG_PPP_DEFLATE=y
+CONFIG_PPP_BSDCOMP=y
+# CONFIG_PPP_MPPE is not set
+# CONFIG_PPPOE is not set
+# CONFIG_PPPOL2TP is not set
+# CONFIG_SLIP is not set
+CONFIG_SLHC=y
+# CONFIG_NETCONSOLE is not set
+CONFIG_MSM_RMNET=y
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+# CONFIG_INPUT_KEYRESET is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ATKBD is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYBOARD_MICROP_KEYPAD=y
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_FUJITSU is not set
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELAN_I2C_8232 is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_INEXIO is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI=y
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_UCB1400 is not set
+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
+CONFIG_TOUCHSCREEN_MSM=y
+CONFIG_MSM_VIRTUAL_KEYBOARD=y
+CONFIG_MSM_BLACKSTONE_PAD=y
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_ATI_REMOTE is not set
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+# CONFIG_INPUT_UINPUT is not set
+CONFIG_INPUT_GPIO=y
+# CONFIG_INPUT_KEYCHORD is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_DEVMEM is not set
+CONFIG_DEVKMEM=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_MSM=y
+CONFIG_SERIAL_MSM_CONSOLE=y
+CONFIG_SERIAL_MSM_CLOCK_CONTROL=y
+CONFIG_SERIAL_MSM_RX_WAKEUP=y
+# CONFIG_SERIAL_MSM_HS is not set
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+# CONFIG_DCC_TTY is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+# CONFIG_I2C_CHARDEV is not set
+CONFIG_I2C_HELPER_AUTO=y
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_GPIO is not set
+CONFIG_I2C_MSM=y
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_SIMTEC is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_TAOS_EVM is not set
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_PCA_PLATFORM is not set
+# CONFIG_I2C_STUB is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_DS1682 is not set
+# CONFIG_AT24 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_PCF8575 is not set
+# CONFIG_SENSORS_PCA9539 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_SENSORS_AKM8976 is not set
+CONFIG_SENSORS_PCA963X=y
+# CONFIG_SENSORS_MT9T013 is not set
+CONFIG_SENSORS_MICROP_KSC=y
+CONFIG_SENSORS_MICROP_KLT=y
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+# CONFIG_SPI is not set
+# CONFIG_W1 is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_BATTERY_DS2760 is not set
+# CONFIG_HWMON is not set
+# CONFIG_WATCHDOG is not set
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB_POSSIBLE=y
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_MFD_T7L66XB is not set
+# CONFIG_MFD_TC6387XB is not set
+
+#
+# Multimedia devices
+#
+
+#
+# Multimedia core support
+#
+# CONFIG_VIDEO_DEV is not set
+# CONFIG_DVB_CORE is not set
+# CONFIG_VIDEO_MEDIA is not set
+
+#
+# Multimedia drivers
+#
+CONFIG_DAB=y
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=y
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_SYS_FOPS is not set
+CONFIG_FB_MSM=y
+CONFIG_FB_MSM_REFRESH=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+# CONFIG_FONT_8x16 is not set
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_LOGO_LINUX_CLUT224=y
+# CONFIG_LOGO_DIAMRAPH_CLUT224 is not set
+# CONFIG_SOUND is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+# CONFIG_HID_DEBUG is not set
+# CONFIG_HIDRAW is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+# CONFIG_USB_ARCH_HAS_OHCI is not set
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+# CONFIG_USB is not set
+
+#
+# Enable Host or Gadget support to see Inventra options
+#
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# USB Function Support
+#
+CONFIG_USB_FUNCTION=y
+CONFIG_USB_FUNCTION_MSM_HSUSB=y
+# CONFIG_USB_FUNCTION_NULL is not set
+# CONFIG_USB_FUNCTION_ZERO is not set
+# CONFIG_USB_FUNCTION_LOOPBACK is not set
+CONFIG_USB_FUNCTION_ADB=y
+# CONFIG_USB_FUNCTION_UMS is not set
+CONFIG_USB_FUNCTION_MASS_STORAGE=y
+CONFIG_USB_FUNCTION_DIAG=y
+CONFIG_USB_FUNCTION_ETHER=y
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_UNSAFE_RESUME=y
+CONFIG_MMC_EMBEDDED_SDIO=y
+# CONFIG_MMC_PARANOID_SD_INIT is not set
+
+#
+# MMC/SD Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+# CONFIG_MMC_BLOCK_BOUNCE is not set
+CONFIG_MMC_BLOCK_PARANOID_RESUME=y
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_MSM7X00A=y
+# CONFIG_MMC_MSM7X00A_RESUME_IN_WQ is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_PCA9532 is not set
+CONFIG_LEDS_GPIO=y
+# CONFIG_LEDS_PCA955X is not set
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
+# CONFIG_LEDS_TRIGGER_SLEEP is not set
+CONFIG_SWITCH=y
+CONFIG_SWITCH_GPIO=y
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+# CONFIG_RTC_INTF_SYSFS is not set
+# CONFIG_RTC_INTF_PROC is not set
+# CONFIG_RTC_INTF_DEV is not set
+CONFIG_RTC_INTF_ALARM=y
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+
+#
+# SPI RTC drivers
+#
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_MSM7X00A is not set
+CONFIG_RTC_DRV_MSM7X01A=y
+# CONFIG_DMADEVICES is not set
+
+#
+# Voltage and Current regulators
+#
+# CONFIG_REGULATOR is not set
+# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_BQ24022 is not set
+# CONFIG_UIO is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+# CONFIG_EXT4DEV_FS is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_DNOTIFY is not set
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+# CONFIG_MSDOS_FS is not set
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+# CONFIG_NFS_FS is not set
+# CONFIG_NFSD is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+CONFIG_PRINTK_TIME=y
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=1024
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
+CONFIG_SCHEDSTATS=y
+# CONFIG_TIMER_STATS is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_DEBUG_SLAB is not set
+CONFIG_DEBUG_PREEMPT=y
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+CONFIG_DEBUG_SPINLOCK_SLEEP=y
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
+CONFIG_HAVE_FTRACE=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+# CONFIG_FTRACE is not set
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_TRACER is not set
+# CONFIG_SCHED_TRACER is not set
+# CONFIG_CONTEXT_SWITCH_TRACER is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+# CONFIG_DEBUG_USER is not set
+# CONFIG_DEBUG_ERRORS is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+CONFIG_DEBUG_LL=y
+# CONFIG_DEBUG_ICEDCC is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+# CONFIG_CRYPTO is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+# CONFIG_GENERIC_FIND_FIRST_BIT is not set
+# CONFIG_GENERIC_FIND_NEXT_BIT is not set
+CONFIG_CRC_CCITT=y
+# CONFIG_CRC16 is not set
+# CONFIG_CRC_T10DIF is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
diff --git a/recipes/linux/linux-replicant/htcdiamond/defconfig b/recipes/linux/linux-replicant/htcdiamond/defconfig
new file mode 100644
index 0000000000..64a6044a8d
--- /dev/null
+++ b/recipes/linux/linux-replicant/htcdiamond/defconfig
@@ -0,0 +1,1130 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.27
+# Wed Feb 25 00:43:45 2009
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_MMU=y
+# CONFIG_NO_IOPORT is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ARCH_SUPPORTS_AOUT=y
+CONFIG_ZONE_DMA=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+# CONFIG_SYSVIPC is not set
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=17
+# CONFIG_CGROUPS is not set
+CONFIG_GROUP_SCHED=y
+# CONFIG_FAIR_GROUP_SCHED is not set
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_USER_SCHED=y
+# CONFIG_CGROUP_SCHED is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
+CONFIG_NAMESPACES=y
+# CONFIG_UTS_NS is not set
+# CONFIG_USER_NS is not set
+# CONFIG_PID_NS is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_PANIC_TIMEOUT=3
+# CONFIG_EMBEDDED is not set
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_COMPAT_BRK=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_ASHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
+# CONFIG_HAVE_IOREMAP_PROT is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+# CONFIG_HAVE_ARCH_TRACEHOOK is not set
+# CONFIG_HAVE_DMA_ATTRS is not set
+# CONFIG_USE_GENERIC_SMP_HELPERS is not set
+# CONFIG_HAVE_CLK is not set
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+# CONFIG_IOSCHED_DEADLINE is not set
+# CONFIG_IOSCHED_CFQ is not set
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+CONFIG_CLASSIC_RCU=y
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KIRKWOOD is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_LOKI is not set
+# CONFIG_ARCH_MV78XX0 is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+CONFIG_ARCH_MSM=y
+
+#
+# Boot options
+#
+
+#
+# Power management
+#
+CONFIG_MSM_AMSS_VERSION=7000
+# CONFIG_MSM_AMSS_VERSION_6210 is not set
+# CONFIG_MSM_AMSS_VERSION_6220 is not set
+# CONFIG_MSM_AMSS_VERSION_6225 is not set
+CONFIG_MSM_AMSS_VERSION_WINCE=y
+CONFIG_MSM_DEBUG_UART_NONE=y
+# CONFIG_MSM_DEBUG_UART1 is not set
+# CONFIG_MSM_DEBUG_UART2 is not set
+# CONFIG_MSM_DEBUG_UART3 is not set
+
+#
+# MSM Board Type
+#
+# CONFIG_MACH_HALIBUT is not set
+# CONFIG_MACH_TROUT is not set
+CONFIG_MACH_HTCRAPHAEL=y
+CONFIG_MACH_HTCRAPHAEL_CDMA=y
+CONFIG_MACH_HTCDIAMOND=y
+CONFIG_MACH_HTCDIAMOND_CDMA=y
+# CONFIG_TROUT_H2W is not set
+# CONFIG_TROUT_PWRSINK is not set
+CONFIG_MSM7X00A_USE_GP_TIMER=y
+# CONFIG_MSM7X00A_USE_DG_TIMER is not set
+CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE_SUSPEND=y
+# CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE is not set
+# CONFIG_MSM7X00A_SLEEP_MODE_APPS_SLEEP is not set
+# CONFIG_MSM7X00A_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT is not set
+# CONFIG_MSM7X00A_SLEEP_WAIT_FOR_INTERRUPT is not set
+CONFIG_MSM7X00A_SLEEP_MODE=0
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE_SUSPEND is not set
+CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE=y
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_APPS_SLEEP is not set
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT is not set
+# CONFIG_MSM7X00A_IDLE_SLEEP_WAIT_FOR_INTERRUPT is not set
+CONFIG_MSM7X00A_IDLE_SLEEP_MODE=1
+CONFIG_MSM7X00A_IDLE_SLEEP_MIN_TIME=20000000
+CONFIG_MSM7X00A_IDLE_SPIN_TIME=80000
+CONFIG_MSM_IDLE_STATS=y
+CONFIG_MSM_IDLE_STATS_FIRST_BUCKET=62500
+CONFIG_MSM_IDLE_STATS_BUCKET_SHIFT=2
+CONFIG_MSM_IDLE_STATS_BUCKET_COUNT=10
+CONFIG_MSM_FIQ_SUPPORT=y
+# CONFIG_MSM_SERIAL_DEBUGGER is not set
+CONFIG_MSM_SMD=y
+# CONFIG_MSM_ONCRPCROUTER is not set
+# CONFIG_MSM_CPU_FREQ_ONDEMAND is not set
+# CONFIG_MSM_CPU_FREQ_SCREEN is not set
+CONFIG_MSM_HW3D=y
+# CONFIG_MSM_ADSP is not set
+CONFIG_HTC_FB_CONSOLE=y
+# CONFIG_HTC_FB_CONSOLE_DELAY is not set
+CONFIG_HTC_FB_CONSOLE_BOOT=y
+# CONFIG_WIFI_CONTROL_FUNC is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_V6=y
+# CONFIG_CPU_32v6K is not set
+CONFIG_CPU_32v6=y
+CONFIG_CPU_ABRT_EV6=y
+CONFIG_CPU_PABRT_NOIFAR=y
+CONFIG_CPU_CACHE_V6=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V6=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+# CONFIG_OUTER_CACHE is not set
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_PREEMPT=y
+CONFIG_HZ=100
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+CONFIG_ARCH_FLATMEM_HAS_HOLES=y
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_RESOURCES_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="mem=76M console=ttyMSM2,115200n8"
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+# CONFIG_VFP is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options
+#
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_SLEEP=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HAS_WAKELOCK=y
+CONFIG_WAKELOCK=y
+# CONFIG_WAKELOCK_STAT is not set
+CONFIG_USER_WAKELOCK=y
+# CONFIG_EARLYSUSPEND is not set
+# CONFIG_APM_EMULATION is not set
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+CONFIG_ANDROID_PARANOID_NETWORK=y
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+
+#
+# Wireless
+#
+# CONFIG_CFG80211 is not set
+CONFIG_WIRELESS_EXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+# CONFIG_MAC80211 is not set
+CONFIG_IEEE80211=y
+# CONFIG_IEEE80211_DEBUG is not set
+# CONFIG_IEEE80211_CRYPT_WEP is not set
+# CONFIG_IEEE80211_CRYPT_CCMP is not set
+# CONFIG_IEEE80211_CRYPT_TKIP is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+# CONFIG_MTD is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+CONFIG_MISC_DEVICES=y
+CONFIG_ANDROID_PMEM=y
+CONFIG_TIMED_OUTPUT=y
+CONFIG_TIMED_GPIO=y
+CONFIG_BINDER_IPC=y
+# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+CONFIG_KERNEL_DEBUGGER_CORE=y
+CONFIG_LOW_MEMORY_KILLER=y
+CONFIG_LOGGER=y
+# CONFIG_UID_STAT is not set
+# CONFIG_ANDROID_RAM_CONSOLE is not set
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+CONFIG_NETDEVICES=y
+CONFIG_DUMMY=y
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+# CONFIG_PHYLIB is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_AX88796 is not set
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_B44 is not set
+CONFIG_NETDEV_1000=y
+CONFIG_NETDEV_10000=y
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+CONFIG_WLAN_80211=y
+# CONFIG_LIBERTAS is not set
+# CONFIG_IWLWIFI_LEDS is not set
+# CONFIG_HOSTAP is not set
+# CONFIG_WAN is not set
+CONFIG_PPP=y
+# CONFIG_PPP_MULTILINK is not set
+# CONFIG_PPP_FILTER is not set
+CONFIG_PPP_ASYNC=y
+# CONFIG_PPP_SYNC_TTY is not set
+CONFIG_PPP_DEFLATE=y
+CONFIG_PPP_BSDCOMP=y
+# CONFIG_PPP_MPPE is not set
+# CONFIG_PPPOE is not set
+# CONFIG_PPPOL2TP is not set
+# CONFIG_SLIP is not set
+CONFIG_SLHC=y
+# CONFIG_NETCONSOLE is not set
+CONFIG_MSM_RMNET=y
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+# CONFIG_INPUT_KEYRESET is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ATKBD is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_GPIO is not set
+CONFIG_KEYBOARD_MICROP_KEYPAD=y
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_FUJITSU is not set
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELAN_I2C_8232 is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_INEXIO is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI=y
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_UCB1400 is not set
+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
+CONFIG_TOUCHSCREEN_MSM=y
+# CONFIG_MSM_VIRTUAL_KEYBOARD is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_ATI_REMOTE is not set
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+# CONFIG_INPUT_UINPUT is not set
+CONFIG_INPUT_GPIO=y
+# CONFIG_INPUT_KEYCHORD is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_DEVMEM is not set
+CONFIG_DEVKMEM=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_MSM=y
+CONFIG_SERIAL_MSM_CONSOLE=y
+CONFIG_SERIAL_MSM_CLOCK_CONTROL=y
+CONFIG_SERIAL_MSM_RX_WAKEUP=y
+# CONFIG_SERIAL_MSM_HS is not set
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+# CONFIG_DCC_TTY is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+# CONFIG_I2C_CHARDEV is not set
+CONFIG_I2C_HELPER_AUTO=y
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_GPIO is not set
+CONFIG_I2C_MSM=y
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_SIMTEC is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_TAOS_EVM is not set
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_PCA_PLATFORM is not set
+# CONFIG_I2C_STUB is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_DS1682 is not set
+# CONFIG_AT24 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_PCF8575 is not set
+# CONFIG_SENSORS_PCA9539 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_SENSORS_AKM8976 is not set
+CONFIG_SENSORS_PCA963X=y
+# CONFIG_SENSORS_MT9T013 is not set
+CONFIG_SENSORS_MICROP_KSC=y
+CONFIG_SENSORS_MICROP_KLT=y
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+# CONFIG_SPI is not set
+# CONFIG_W1 is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_BATTERY_DS2760 is not set
+# CONFIG_HWMON is not set
+# CONFIG_WATCHDOG is not set
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB_POSSIBLE=y
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_MFD_T7L66XB is not set
+# CONFIG_MFD_TC6387XB is not set
+
+#
+# Multimedia devices
+#
+
+#
+# Multimedia core support
+#
+# CONFIG_VIDEO_DEV is not set
+# CONFIG_DVB_CORE is not set
+# CONFIG_VIDEO_MEDIA is not set
+
+#
+# Multimedia drivers
+#
+CONFIG_DAB=y
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=y
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_SYS_FOPS is not set
+CONFIG_FB_MSM=y
+CONFIG_FB_MSM_REFRESH=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+# CONFIG_FONT_8x16 is not set
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+# CONFIG_LOGO_LINUX_CLUT224 is not set
+CONFIG_LOGO_DIAMRAPH_CLUT224=y
+# CONFIG_SOUND is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+# CONFIG_HID_DEBUG is not set
+# CONFIG_HIDRAW is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+# CONFIG_USB_ARCH_HAS_OHCI is not set
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+# CONFIG_USB is not set
+
+#
+# Enable Host or Gadget support to see Inventra options
+#
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# USB Function Support
+#
+CONFIG_USB_FUNCTION=y
+CONFIG_USB_FUNCTION_MSM_HSUSB=y
+# CONFIG_USB_FUNCTION_NULL is not set
+# CONFIG_USB_FUNCTION_ZERO is not set
+# CONFIG_USB_FUNCTION_LOOPBACK is not set
+CONFIG_USB_FUNCTION_ADB=y
+# CONFIG_USB_FUNCTION_UMS is not set
+CONFIG_USB_FUNCTION_MASS_STORAGE=y
+CONFIG_USB_FUNCTION_DIAG=y
+CONFIG_USB_FUNCTION_ETHER=y
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_UNSAFE_RESUME=y
+CONFIG_MMC_EMBEDDED_SDIO=y
+# CONFIG_MMC_PARANOID_SD_INIT is not set
+
+#
+# MMC/SD Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+# CONFIG_MMC_BLOCK_BOUNCE is not set
+CONFIG_MMC_BLOCK_PARANOID_RESUME=y
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD Host Controller Drivers
+#
+# CONFIG_MMC_SDHCI is not set
+CONFIG_MMC_MSM7X00A=y
+# CONFIG_MMC_MSM7X00A_RESUME_IN_WQ is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_PCA9532 is not set
+CONFIG_LEDS_GPIO=y
+# CONFIG_LEDS_PCA955X is not set
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
+CONFIG_SWITCH=y
+CONFIG_SWITCH_GPIO=y
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+# CONFIG_RTC_INTF_SYSFS is not set
+# CONFIG_RTC_INTF_PROC is not set
+# CONFIG_RTC_INTF_DEV is not set
+CONFIG_RTC_INTF_ALARM=y
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+
+#
+# SPI RTC drivers
+#
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_MSM7X00A is not set
+CONFIG_RTC_DRV_MSM7X01A=y
+# CONFIG_DMADEVICES is not set
+
+#
+# Voltage and Current regulators
+#
+# CONFIG_REGULATOR is not set
+# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_BQ24022 is not set
+# CONFIG_UIO is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+# CONFIG_EXT4DEV_FS is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_DNOTIFY is not set
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+# CONFIG_MSDOS_FS is not set
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+# CONFIG_NFS_FS is not set
+# CONFIG_NFSD is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+CONFIG_PRINTK_TIME=y
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=1024
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
+CONFIG_SCHEDSTATS=y
+# CONFIG_TIMER_STATS is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_DEBUG_SLAB is not set
+CONFIG_DEBUG_PREEMPT=y
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+CONFIG_DEBUG_SPINLOCK_SLEEP=y
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
+CONFIG_HAVE_FTRACE=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+# CONFIG_FTRACE is not set
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_TRACER is not set
+# CONFIG_SCHED_TRACER is not set
+# CONFIG_CONTEXT_SWITCH_TRACER is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+# CONFIG_DEBUG_USER is not set
+# CONFIG_DEBUG_ERRORS is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+CONFIG_DEBUG_LL=y
+# CONFIG_DEBUG_ICEDCC is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+# CONFIG_CRYPTO is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+# CONFIG_GENERIC_FIND_FIRST_BIT is not set
+# CONFIG_GENERIC_FIND_NEXT_BIT is not set
+CONFIG_CRC_CCITT=y
+# CONFIG_CRC16 is not set
+# CONFIG_CRC_T10DIF is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
diff --git a/recipes/linux/linux-replicant/htcdream/defconfig b/recipes/linux/linux-replicant/htcdream/defconfig
new file mode 100644
index 0000000000..5e1dd65639
--- /dev/null
+++ b/recipes/linux/linux-replicant/htcdream/defconfig
@@ -0,0 +1,1671 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.29
+# Sat Oct 17 23:18:47 2009
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_MMU=y
+# CONFIG_NO_IOPORT is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION="-openmoko-msm"
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SWAP=y
+# CONFIG_SYSVIPC is not set
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_CLASSIC_RCU=y
+# CONFIG_TREE_RCU is not set
+# CONFIG_PREEMPT_RCU is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_PREEMPT_RCU_TRACE is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=17
+CONFIG_GROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_RT_GROUP_SCHED=y
+# CONFIG_USER_SCHED is not set
+CONFIG_CGROUP_SCHED=y
+CONFIG_CGROUPS=y
+CONFIG_CGROUP_DEBUG=y
+# CONFIG_CGROUP_NS is not set
+CONFIG_CGROUP_FREEZER=y
+# CONFIG_CGROUP_DEVICE is not set
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_RESOURCE_COUNTERS=y
+# CONFIG_CGROUP_MEM_RES_CTLR is not set
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
+# CONFIG_RELAY is not set
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+# CONFIG_BLK_DEV_INITRD is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_PANIC_TIMEOUT=5
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+# CONFIG_ELF_CORE is not set
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_ASHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_COMPAT_BRK=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+# CONFIG_IOSCHED_DEADLINE is not set
+# CONFIG_IOSCHED_CFQ is not set
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+CONFIG_FREEZER=y
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KIRKWOOD is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_LOKI is not set
+# CONFIG_ARCH_MV78XX0 is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+CONFIG_ARCH_MSM=y
+# CONFIG_ARCH_W90X900 is not set
+CONFIG_MSM_AMSS_VERSION=6225
+# CONFIG_MSM_AMSS_VERSION_6210 is not set
+# CONFIG_MSM_AMSS_VERSION_6220 is not set
+CONFIG_MSM_AMSS_VERSION_6225=y
+# CONFIG_MSM_AMSS_VERSION_6350 is not set
+CONFIG_MSM_DEBUG_UART_NONE=y
+# CONFIG_MSM_DEBUG_UART1 is not set
+# CONFIG_MSM_DEBUG_UART2 is not set
+# CONFIG_MSM_DEBUG_UART3 is not set
+
+#
+# MSM Board Type
+#
+CONFIG_MACH_HALIBUT=y
+CONFIG_MACH_TROUT=y
+CONFIG_MACH_SAPPHIRE=y
+CONFIG_HTC_HEADSET=y
+CONFIG_TROUT_BATTCHG=y
+CONFIG_TROUT_WIFI=m
+CONFIG_HTC_PWRSINK=y
+CONFIG_CACHE_FLUSH_RANGE_LIMIT=0x40000
+CONFIG_MSM7X00A_USE_GP_TIMER=y
+# CONFIG_MSM7X00A_USE_DG_TIMER is not set
+CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE_SUSPEND=y
+# CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE is not set
+# CONFIG_MSM7X00A_SLEEP_MODE_APPS_SLEEP is not set
+# CONFIG_MSM7X00A_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT is not set
+# CONFIG_MSM7X00A_SLEEP_WAIT_FOR_INTERRUPT is not set
+CONFIG_MSM7X00A_SLEEP_MODE=0
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE_SUSPEND is not set
+CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE=y
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_APPS_SLEEP is not set
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT is not set
+# CONFIG_MSM7X00A_IDLE_SLEEP_WAIT_FOR_INTERRUPT is not set
+CONFIG_MSM7X00A_IDLE_SLEEP_MODE=1
+CONFIG_MSM7X00A_IDLE_SLEEP_MIN_TIME=20000000
+CONFIG_MSM7X00A_IDLE_SPIN_TIME=80000
+CONFIG_MSM_IDLE_STATS=y
+CONFIG_MSM_IDLE_STATS_FIRST_BUCKET=62500
+CONFIG_MSM_IDLE_STATS_BUCKET_SHIFT=2
+CONFIG_MSM_IDLE_STATS_BUCKET_COUNT=10
+CONFIG_MSM_FIQ_SUPPORT=y
+CONFIG_MSM_SERIAL_DEBUGGER=y
+# CONFIG_MSM_SERIAL_DEBUGGER_CONSOLE is not set
+CONFIG_MSM_SMD=y
+CONFIG_MSM_ONCRPCROUTER=y
+CONFIG_MSM_RPCSERVERS=y
+CONFIG_MSM_CPU_FREQ=y
+CONFIG_MSM_CPU_FREQ_ONDEMAND=y
+# CONFIG_MSM_CPU_FREQ_SCREEN is not set
+CONFIG_MSM_CPU_FREQ_ONDEMAND_MAX=384000
+CONFIG_MSM_CPU_FREQ_ONDEMAND_MIN=245760
+# CONFIG_MSM_HW3D is not set
+CONFIG_MSM_ADSP=y
+# CONFIG_MSM_ADSP_REPORT_EVENTS is not set
+CONFIG_WIFI_CONTROL_FUNC=y
+CONFIG_WIFI_MEM_PREALLOC=y
+# CONFIG_VIRTUAL_KPANIC_PARTITION is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_V6=y
+CONFIG_CPU_32v6K=y
+CONFIG_CPU_32v6=y
+CONFIG_CPU_ABRT_EV6=y
+CONFIG_CPU_PABRT_NOIFAR=y
+CONFIG_CPU_CACHE_V6=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V6=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+# CONFIG_OUTER_CACHE is not set
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMSPLIT_2G is not set
+# CONFIG_VMSPLIT_1G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_PREEMPT=y
+CONFIG_HZ=100
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+CONFIG_ARCH_FLATMEM_HAS_HOLES=y
+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=0
+CONFIG_VIRT_TO_BUS=y
+CONFIG_UNEVICTABLE_LRU=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="mem=64M console=ttyMSM,115200n8"
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
+
+#
+# CPU Power Management
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+# CONFIG_CPU_FREQ_DEBUG is not set
+# CONFIG_CPU_FREQ_STAT is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_MIN_TICKS=1
+CONFIG_CPU_FREQ_SAMPLING_LATENCY_MULTIPLIER=500
+# CONFIG_CPU_IDLE is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+# CONFIG_VFP is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_HAVE_AOUT=y
+CONFIG_BINFMT_AOUT=y
+CONFIG_BINFMT_MISC=y
+
+#
+# Power management options
+#
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_SLEEP=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HAS_WAKELOCK=y
+CONFIG_HAS_EARLYSUSPEND=y
+CONFIG_WAKELOCK=y
+CONFIG_WAKELOCK_STAT=y
+CONFIG_USER_WAKELOCK=y
+CONFIG_EARLYSUSPEND=y
+# CONFIG_NO_USER_SPACE_SCREEN_ACCESS_CONTROL is not set
+# CONFIG_CONSOLE_EARLYSUSPEND is not set
+CONFIG_FB_EARLYSUSPEND=y
+CONFIG_APM_EMULATION=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_COMPAT_NET_DEV_OPS=y
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=y
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+CONFIG_INET_ESP=y
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+CONFIG_IPV6_MROUTE=y
+CONFIG_IPV6_PIMSM_V2=y
+CONFIG_ANDROID_PARANOID_NETWORK=y
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_NET_DSA is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+# CONFIG_NET_SCH_CBQ is not set
+# CONFIG_NET_SCH_HTB is not set
+# CONFIG_NET_SCH_HFSC is not set
+# CONFIG_NET_SCH_PRIO is not set
+# CONFIG_NET_SCH_MULTIQ is not set
+# CONFIG_NET_SCH_RED is not set
+# CONFIG_NET_SCH_SFQ is not set
+# CONFIG_NET_SCH_TEQL is not set
+# CONFIG_NET_SCH_TBF is not set
+# CONFIG_NET_SCH_GRED is not set
+# CONFIG_NET_SCH_DSMARK is not set
+# CONFIG_NET_SCH_NETEM is not set
+# CONFIG_NET_SCH_DRR is not set
+
+#
+# Classification
+#
+# CONFIG_NET_CLS_BASIC is not set
+# CONFIG_NET_CLS_TCINDEX is not set
+# CONFIG_NET_CLS_ROUTE4 is not set
+# CONFIG_NET_CLS_FW is not set
+# CONFIG_NET_CLS_U32 is not set
+# CONFIG_NET_CLS_RSVP is not set
+# CONFIG_NET_CLS_RSVP6 is not set
+# CONFIG_NET_CLS_FLOW is not set
+# CONFIG_NET_CLS_CGROUP is not set
+# CONFIG_NET_EMATCH is not set
+# CONFIG_NET_CLS_ACT is not set
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=y
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=y
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=y
+# CONFIG_BT_BNEP_MC_FILTER is not set
+# CONFIG_BT_BNEP_PROTO_FILTER is not set
+CONFIG_BT_HIDP=y
+
+#
+# Bluetooth device drivers
+#
+# CONFIG_BT_HCIBTSDIO is not set
+CONFIG_BT_HCIUART=y
+CONFIG_BT_HCIUART_H4=y
+# CONFIG_BT_HCIUART_BCSP is not set
+CONFIG_BT_HCIUART_LL=y
+# CONFIG_BT_HCIVHCI is not set
+# CONFIG_AF_RXRPC is not set
+# CONFIG_PHONET is not set
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_CFG80211=m
+CONFIG_CFG80211_REG_DEBUG=y
+CONFIG_NL80211=y
+CONFIG_WIRELESS_OLD_REGULATORY=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+# CONFIG_LIB80211 is not set
+CONFIG_MAC80211=m
+
+#
+# Rate control algorithm selection
+#
+# CONFIG_MAC80211_RC_PID is not set
+CONFIG_MAC80211_RC_MINSTREL=y
+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+CONFIG_MAC80211_DEBUGFS=y
+CONFIG_MAC80211_DEBUG_MENU=y
+CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT=y
+# CONFIG_MAC80211_NOINLINE is not set
+CONFIG_MAC80211_VERBOSE_DEBUG=y
+CONFIG_MAC80211_HT_DEBUG=y
+CONFIG_MAC80211_TKIP_DEBUG=y
+CONFIG_MAC80211_IBSS_DEBUG=y
+CONFIG_MAC80211_VERBOSE_PS_DEBUG=y
+CONFIG_MAC80211_VERBOSE_MPL_DEBUG=y
+CONFIG_MAC80211_DEBUG_COUNTERS=y
+CONFIG_MAC80211_VERBOSE_SPECT_MGMT_DEBUG=y
+# CONFIG_WIMAX is not set
+CONFIG_RFKILL=y
+# CONFIG_RFKILL_PM is not set
+# CONFIG_RFKILL_INPUT is not set
+CONFIG_RFKILL_LEDS=y
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_FIRMWARE_IN_KERNEL is not set
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_TESTS is not set
+# CONFIG_MTD_REDBOOT_PARTS is not set
+CONFIG_MTD_CMDLINE_PARTS=y
+# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+CONFIG_MTD_MSM_NAND=y
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+# CONFIG_MTD_NAND is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+
+#
+# UBI - Unsorted block images
+#
+# CONFIG_MTD_UBI is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_ANDROID_PMEM is not set
+# CONFIG_ICS932S401 is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+CONFIG_KERNEL_DEBUGGER_CORE=y
+CONFIG_UID_STAT=y
+# CONFIG_WL127X_RFKILL is not set
+# CONFIG_APANIC is not set
+CONFIG_APANIC_PLABEL="kpanic"
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_AT24 is not set
+# CONFIG_EEPROM_AT25 is not set
+# CONFIG_EEPROM_LEGACY is not set
+# CONFIG_EEPROM_93CX6 is not set
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_ATA is not set
+CONFIG_MD=y
+# CONFIG_BLK_DEV_MD is not set
+CONFIG_BLK_DEV_DM=y
+CONFIG_DM_DEBUG=y
+CONFIG_DM_CRYPT=y
+# CONFIG_DM_SNAPSHOT is not set
+# CONFIG_DM_MIRROR is not set
+# CONFIG_DM_ZERO is not set
+# CONFIG_DM_MULTIPATH is not set
+# CONFIG_DM_DELAY is not set
+CONFIG_DM_UEVENT=y
+CONFIG_NETDEVICES=y
+CONFIG_DUMMY=y
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+CONFIG_TUN=y
+# CONFIG_VETH is not set
+# CONFIG_PHYLIB is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_AX88796 is not set
+CONFIG_SMC91X=y
+# CONFIG_DM9000 is not set
+# CONFIG_ENC28J60 is not set
+# CONFIG_SMC911X is not set
+# CONFIG_SMSC911X is not set
+# CONFIG_DNET is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+# CONFIG_B44 is not set
+CONFIG_NETDEV_1000=y
+CONFIG_NETDEV_10000=y
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+CONFIG_WLAN_80211=y
+# CONFIG_LIBERTAS is not set
+# CONFIG_LIBERTAS_THINFIRM is not set
+# CONFIG_MAC80211_HWSIM is not set
+# CONFIG_P54_COMMON is not set
+# CONFIG_IWLWIFI_LEDS is not set
+# CONFIG_HOSTAP is not set
+# CONFIG_B43 is not set
+# CONFIG_B43LEGACY is not set
+# CONFIG_RT2X00 is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+# CONFIG_WAN is not set
+CONFIG_PPP=y
+# CONFIG_PPP_MULTILINK is not set
+# CONFIG_PPP_FILTER is not set
+CONFIG_PPP_ASYNC=y
+# CONFIG_PPP_SYNC_TTY is not set
+CONFIG_PPP_DEFLATE=y
+CONFIG_PPP_BSDCOMP=y
+CONFIG_PPP_MPPE=y
+# CONFIG_PPPOE is not set
+# CONFIG_PPPOL2TP is not set
+CONFIG_PPPOLAC=y
+CONFIG_PPPOPNS=y
+# CONFIG_SLIP is not set
+CONFIG_SLHC=y
+# CONFIG_NETCONSOLE is not set
+# CONFIG_MSM_RMNET is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+CONFIG_INPUT_POLLDEV=y
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=480
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+# CONFIG_INPUT_APMPOWER is not set
+CONFIG_INPUT_KEYRESET=y
+
+#
+# Input Device Drivers
+#
+# CONFIG_INPUT_KEYBOARD is not set
+CONFIG_INPUT_MOUSE=y
+# CONFIG_MOUSE_PS2 is not set
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_APPLETOUCH is not set
+# CONFIG_MOUSE_BCM5974 is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+CONFIG_MOUSE_GPIO=y
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
+# CONFIG_TOUCHSCREEN_FUJITSU is not set
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+CONFIG_TOUCHSCREEN_ELAN_I2C_8232=y
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_INEXIO is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI=y
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
+# CONFIG_TOUCHSCREEN_TSC2007 is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_ATI_REMOTE is not set
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+# CONFIG_INPUT_CM109 is not set
+CONFIG_INPUT_UINPUT=y
+CONFIG_INPUT_GPIO=y
+CONFIG_INPUT_KEYCHORD=y
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_SERPORT=y
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_DEVMEM=y
+CONFIG_DEVKMEM=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_MSM=y
+# CONFIG_SERIAL_MSM_CONSOLE is not set
+CONFIG_SERIAL_MSM_CLOCK_CONTROL=y
+CONFIG_SERIAL_MSM_RX_WAKEUP=y
+CONFIG_SERIAL_MSM_HS=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+# CONFIG_DCC_TTY is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+# CONFIG_I2C_CHARDEV is not set
+CONFIG_I2C_HELPER_AUTO=y
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_GPIO is not set
+CONFIG_I2C_MSM=y
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_SIMTEC is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_TAOS_EVM is not set
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_PCA_PLATFORM is not set
+# CONFIG_I2C_STUB is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_DS1682 is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_PCF8575 is not set
+# CONFIG_SENSORS_PCA9539 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+CONFIG_SENSORS_AKM8976=y
+CONFIG_SENSORS_PCA963X=y
+# CONFIG_SENSORS_MT9T013 is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+CONFIG_SPI=y
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_BITBANG=y
+# CONFIG_SPI_GPIO is not set
+
+#
+# SPI Protocol Masters
+#
+# CONFIG_SPI_SPIDEV is not set
+# CONFIG_SPI_TLE62X0 is not set
+# CONFIG_W1 is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_APM_POWER is not set
+# CONFIG_BATTERY_DS2760 is not set
+# CONFIG_BATTERY_BQ27x00 is not set
+# CONFIG_HWMON is not set
+# CONFIG_THERMAL is not set
+# CONFIG_THERMAL_HWMON is not set
+# CONFIG_WATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_TWL4030_CORE is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_PCF50633 is not set
+
+#
+# Multimedia devices
+#
+
+#
+# Multimedia core support
+#
+CONFIG_VIDEO_DEV=y
+CONFIG_VIDEO_V4L2_COMMON=y
+# CONFIG_VIDEO_ALLOW_V4L1 is not set
+CONFIG_VIDEO_V4L1_COMPAT=y
+# CONFIG_DVB_CORE is not set
+CONFIG_VIDEO_MEDIA=y
+
+#
+# Multimedia drivers
+#
+# CONFIG_MEDIA_ATTACH is not set
+CONFIG_MEDIA_TUNER=y
+# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=y
+CONFIG_MEDIA_TUNER_TDA8290=y
+CONFIG_MEDIA_TUNER_TDA9887=y
+CONFIG_MEDIA_TUNER_TEA5761=y
+CONFIG_MEDIA_TUNER_TEA5767=y
+CONFIG_MEDIA_TUNER_MT20XX=y
+CONFIG_MEDIA_TUNER_XC2028=y
+CONFIG_MEDIA_TUNER_XC5000=y
+CONFIG_VIDEO_V4L2=y
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
+# CONFIG_VIDEO_VIVI is not set
+# CONFIG_VIDEO_SAA5246A is not set
+# CONFIG_VIDEO_SAA5249 is not set
+# CONFIG_SOC_CAMERA is not set
+
+#
+# Qualcomm MSM Camera And Video
+#
+CONFIG_MSM_CAMERA=y
+# CONFIG_MSM_CAMERA_DEBUG is not set
+# CONFIG_MSM_CAMERA_FLASH is not set
+
+#
+# Camera Sensor Selection
+#
+CONFIG_MT9T013=y
+# CONFIG_MT9D112 is not set
+# CONFIG_MT9P012 is not set
+# CONFIG_S5K3E2FX is not set
+CONFIG_RADIO_ADAPTERS=y
+# CONFIG_RADIO_TEA5764 is not set
+CONFIG_DAB=y
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=y
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+# CONFIG_FB_DDC is not set
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_SYS_FILLRECT=y
+CONFIG_FB_SYS_COPYAREA=y
+CONFIG_FB_SYS_IMAGEBLIT=y
+CONFIG_FB_FOREIGN_ENDIAN=y
+CONFIG_FB_BOTH_ENDIAN=y
+# CONFIG_FB_BIG_ENDIAN is not set
+# CONFIG_FB_LITTLE_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=y
+CONFIG_FB_DEFERRED_IO=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+CONFIG_FB_S1D13XXX=y
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_FB_METRONOME=y
+CONFIG_FB_MB862XX=y
+CONFIG_FB_MSM=y
+CONFIG_FB_MSM_REFRESH=y
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_TDO24M=m
+CONFIG_LCD_VGG2432A4=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=m
+CONFIG_BACKLIGHT_GENERIC=m
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_SOUND=m
+CONFIG_SOUND_OSS_CORE=y
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_SEQUENCER_OSS=y
+# CONFIG_SND_HRTIMER is not set
+# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_VIRMIDI is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+CONFIG_SND_ARM=y
+CONFIG_SND_SPI=y
+CONFIG_SND_SOC=m
+
+#
+# MSM SoC Audio support
+#
+CONFIG_SND_MSM_SOC=m
+CONFIG_SND_MSM_DAI_SOC=m
+CONFIG_SND_MSM_SOC_MSM7K=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+CONFIG_SND_SOC_ALL_CODECS=m
+CONFIG_SND_SOC_AD73311=m
+CONFIG_SND_SOC_AK4535=m
+CONFIG_SND_SOC_CS4270=m
+CONFIG_SND_SOC_L3=m
+CONFIG_SND_SOC_PCM3008=m
+CONFIG_SND_SOC_SSM2602=m
+CONFIG_SND_SOC_TLV320AIC23=m
+CONFIG_SND_SOC_TLV320AIC26=m
+CONFIG_SND_SOC_TLV320AIC3X=m
+CONFIG_SND_SOC_UDA134X=m
+CONFIG_SND_SOC_UDA1380=m
+CONFIG_SND_SOC_WM8510=m
+CONFIG_SND_SOC_WM8580=m
+CONFIG_SND_SOC_WM8728=m
+CONFIG_SND_SOC_WM8731=m
+CONFIG_SND_SOC_WM8750=m
+CONFIG_SND_SOC_WM8753=m
+CONFIG_SND_SOC_WM8900=m
+CONFIG_SND_SOC_WM8903=m
+CONFIG_SND_SOC_WM8971=m
+CONFIG_SND_SOC_WM8990=m
+# CONFIG_SOUND_PRIME is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+# CONFIG_HID_DEBUG is not set
+# CONFIG_HIDRAW is not set
+# CONFIG_HID_PID is not set
+
+#
+# Special HID drivers
+#
+CONFIG_HID_COMPAT=y
+# CONFIG_HID_APPLE is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+# CONFIG_USB_ARCH_HAS_OHCI is not set
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+# CONFIG_USB is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+# CONFIG_USB_GADGET_MUSB_HDRC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
+#
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_AT91 is not set
+# CONFIG_USB_GADGET_ATMEL_USBA is not set
+# CONFIG_USB_GADGET_FSL_USB2 is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_GADGET_PXA25X is not set
+# CONFIG_USB_GADGET_PXA27X is not set
+# CONFIG_USB_GADGET_S3C2410 is not set
+# CONFIG_USB_GADGET_IMX is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_FSL_QE is not set
+# CONFIG_USB_GADGET_CI13XXX is not set
+# CONFIG_USB_GADGET_NET2280 is not set
+# CONFIG_USB_GADGET_GOKU is not set
+CONFIG_USB_GADGET_MSM_72K=y
+CONFIG_USB_MSM_72K=y
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_ETH=m
+# CONFIG_USB_ETH_RNDIS is not set
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FILE_STORAGE is not set
+# CONFIG_USB_G_SERIAL is not set
+# CONFIG_USB_MIDI_GADGET is not set
+# CONFIG_USB_G_PRINTER is not set
+# CONFIG_USB_ANDROID is not set
+# CONFIG_USB_CDC_COMPOSITE is not set
+
+#
+# OTG and related infrastructure
+#
+# CONFIG_USB_GPIO_VBUS is not set
+
+#
+# USB Function Support
+#
+# CONFIG_USB_FUNCTION is not set
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_UNSAFE_RESUME=y
+CONFIG_MMC_EMBEDDED_SDIO=y
+CONFIG_MMC_PARANOID_SD_INIT=y
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+# CONFIG_MMC_BLOCK_BOUNCE is not set
+# CONFIG_MMC_BLOCK_DEFERRED_RESUME is not set
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+# CONFIG_MMC_SDHCI is not set
+# CONFIG_MMC_SPI is not set
+CONFIG_MMC_MSM7X00A=y
+# CONFIG_MMC_MSM7X00A_RESUME_IN_WQ is not set
+# CONFIG_MEMSTICK is not set
+# CONFIG_ACCESSIBILITY is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_PCA9532 is not set
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_CPLD=y
+# CONFIG_LEDS_PCA955X is not set
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
+CONFIG_LEDS_TRIGGER_SLEEP=y
+CONFIG_SWITCH=y
+CONFIG_SWITCH_GPIO=y
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_INTF_ALARM=y
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_DS3234 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_MSM7X00A=y
+# CONFIG_DMADEVICES is not set
+# CONFIG_REGULATOR is not set
+# CONFIG_UIO is not set
+CONFIG_STAGING=y
+# CONFIG_STAGING_EXCLUDE_BUILD is not set
+# CONFIG_MEILHAUS is not set
+# CONFIG_ECHO is not set
+# CONFIG_AGNX is not set
+# CONFIG_COMEDI is not set
+
+#
+# Android
+#
+CONFIG_ANDROID=y
+# CONFIG_ANDROID_BINDER_IPC is not set
+# CONFIG_ANDROID_LOGGER is not set
+# CONFIG_ANDROID_RAM_CONSOLE is not set
+CONFIG_ANDROID_TIMED_OUTPUT=y
+CONFIG_ANDROID_TIMED_GPIO=y
+# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+CONFIG_EXT2_FS_XIP=y
+CONFIG_EXT3_FS=m
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=m
+CONFIG_EXT4DEV_COMPAT=y
+CONFIG_EXT4_FS_XATTR=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_FS_XIP=y
+CONFIG_JBD=m
+CONFIG_JBD_DEBUG=y
+CONFIG_JBD2=m
+CONFIG_JBD2_DEBUG=y
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_FILE_LOCKING=y
+# CONFIG_XFS_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_BTRFS_FS is not set
+# CONFIG_DNOTIFY is not set
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+# CONFIG_MSDOS_FS is not set
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_YAFFS_FS=y
+CONFIG_YAFFS_YAFFS1=y
+# CONFIG_YAFFS_9BYTE_TAGS is not set
+# CONFIG_YAFFS_DOES_ECC is not set
+CONFIG_YAFFS_YAFFS2=y
+CONFIG_YAFFS_AUTO_YAFFS2=y
+# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set
+# CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set
+# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set
+CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+CONFIG_JFFS2_FS_WBUF_VERIFY=y
+CONFIG_JFFS2_SUMMARY=y
+CONFIG_JFFS2_FS_XATTR=y
+CONFIG_JFFS2_FS_POSIX_ACL=y
+CONFIG_JFFS2_FS_SECURITY=y
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_LZO=y
+CONFIG_JFFS2_RTIME=y
+CONFIG_JFFS2_RUBIN=y
+# CONFIG_JFFS2_CMODE_NONE is not set
+CONFIG_JFFS2_CMODE_PRIORITY=y
+# CONFIG_JFFS2_CMODE_SIZE is not set
+# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_SQUASHFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+# CONFIG_NFSD is not set
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+# CONFIG_SUNRPC_REGISTER_V4 is not set
+CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+CONFIG_CIFS_STATS2=y
+CONFIG_CIFS_WEAK_PW_HASH=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+CONFIG_CIFS_DEBUG2=y
+CONFIG_CIFS_EXPERIMENTAL=y
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+CONFIG_PRINTK_TIME=y
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=1024
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_KERNEL is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_HAVE_FUNCTION_TRACER=y
+
+#
+# Tracers
+#
+# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_DEBUG_USER is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+# CONFIG_CRYPTO_FIPS is not set
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=y
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+# CONFIG_CRYPTO_GF128MUL is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_CRYPTD is not set
+CONFIG_CRYPTO_AUTHENC=y
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+# CONFIG_CRYPTO_CCM is not set
+# CONFIG_CRYPTO_GCM is not set
+# CONFIG_CRYPTO_SEQIV is not set
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=y
+# CONFIG_CRYPTO_CTR is not set
+# CONFIG_CRYPTO_CTS is not set
+CONFIG_CRYPTO_ECB=y
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_PCBC is not set
+# CONFIG_CRYPTO_XTS is not set
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=y
+# CONFIG_CRYPTO_XCBC is not set
+
+#
+# Digest
+#
+# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_MD4 is not set
+CONFIG_CRYPTO_MD5=y
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=y
+# CONFIG_CRYPTO_ANUBIS is not set
+CONFIG_CRYPTO_ARC4=y
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SALSA20 is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_TEA is not set
+CONFIG_CRYPTO_TWOFISH=y
+CONFIG_CRYPTO_TWOFISH_COMMON=y
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+# CONFIG_CRYPTO_LZO is not set
+
+#
+# Random Number Generation
+#
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+CONFIG_CRYPTO_HW=y
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+CONFIG_CRC_CCITT=y
+CONFIG_CRC16=m
+# CONFIG_CRC_T10DIF is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+CONFIG_CRC7=m
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
diff --git a/recipes/linux/linux-replicant/htcdream/msm_snd.patch b/recipes/linux/linux-replicant/htcdream/msm_snd.patch
new file mode 100644
index 0000000000..cdc354d001
--- /dev/null
+++ b/recipes/linux/linux-replicant/htcdream/msm_snd.patch
@@ -0,0 +1,3160 @@
+commit 92945ccd0921e940fc2675dc394141db0f7c1386
+Author: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
+Date: Sat Oct 17 23:37:16 2009 +0200
+
+ Sound: MSM soc : imported alsa for the MSM from codeaurora
+
+ I had to make two little change to make it compile:
+ snd_ep = msm_rpc_connect_compatible(snd_rpc_ids.prog,
+ became:
+ snd_ep = msm_rpc_connect(snd_rpc_ids.prog,
+ and I also changed snd_rpc_ids.vers(with ifdefs)
+ to a known and working magick number:
+
+ it still has serious runtime problems such as:
+ *can produce kernel oops under theses conditions:
+ start alsamixer and if the second bar is on 0 or 4 it can play music with aplay
+ increase the routing alsamixer bar to the max
+ decrease the routing bar to 4 or less
+ then It may have a null pointer problem
+ That bug could be because it tries to route to route to speakers and handset
+ at the same time(SND_DEVICE_HEADSET_AND_SPEAKER in android)
+ that is to say it could be the same bug than here:
+ http://gitorious.org/replicant/msm7k/commit/370d37a088368ca8cc478e76c928a1ce6589495e
+ but I need time to verify that
+ *can pannick if you send things to /dev/dsp when the oss emulation is activated
+ *only aplay works(mplayer,gstreamer don't work)
+ for mplayer an ioctl didn't return...so it get stuck before playing
+ I traced it until
+ rc = wait_event_interruptible(the_locks.read_wait,(prtd->in_count > 0)|| prtd->stopped);
+ in msm-pcm.c
+
+diff --git a/sound/soc/Kconfig b/sound/soc/Kconfig
+index ef025c6..4b1a48f 100644
+--- a/sound/soc/Kconfig
++++ b/sound/soc/Kconfig
+@@ -32,6 +32,7 @@ source "sound/soc/omap/Kconfig"
+ source "sound/soc/pxa/Kconfig"
+ source "sound/soc/s3c24xx/Kconfig"
+ source "sound/soc/sh/Kconfig"
++source "sound/soc/msm/Kconfig"
+
+ # Supported codecs
+ source "sound/soc/codecs/Kconfig"
+diff --git a/sound/soc/Makefile b/sound/soc/Makefile
+index 86a9b1f..ea754e5 100644
+--- a/sound/soc/Makefile
++++ b/sound/soc/Makefile
+@@ -11,3 +11,4 @@ obj-$(CONFIG_SND_SOC) += omap/
+ obj-$(CONFIG_SND_SOC) += pxa/
+ obj-$(CONFIG_SND_SOC) += s3c24xx/
+ obj-$(CONFIG_SND_SOC) += sh/
++obj-$(CONFIG_SND_SOC) += msm/
+diff --git a/sound/soc/msm/Kconfig b/sound/soc/msm/Kconfig
+new file mode 100644
+index 0000000..7df1a40
+--- /dev/null
++++ b/sound/soc/msm/Kconfig
+@@ -0,0 +1,37 @@
++menu "MSM SoC Audio support"
++
++config SND_MSM_SOC
++ tristate "SoC Audio for the MSM series chips"
++ depends on ARCH_MSM_ARM11 && SND_SOC
++ select MSM_ADSP
++ help
++ To add support for ALSA PCM driver for MSM board.
++
++config SND_QSD_SOC
++ tristate "SoC Audio for the QSD8x50 chip"
++ depends on ARCH_QSD8X50 && SND_SOC && QSD_AUDIO
++ default y
++ help
++ To add support for ALSA PCM driver for QSD8k board.
++
++
++config SND_MSM_DAI_SOC
++ tristate "SoC CPU/CODEC DAI for the MSM chip"
++ depends on SND_MSM_SOC || SND_QSD_SOC
++ help
++ To add support for ALSA PCM driver for MSM board.
++
++config SND_MSM_SOC_MSM7K
++ tristate "SoC Audio support for MSM7K"
++ depends on SND_MSM_SOC
++ help
++ To add support for SoC audio on msm7k for msm72x1 or msm7x27
++
++config SND_QSD_SOC_QSD8K
++ tristate "SoC Audio support for QSD8K"
++ depends on SND_QSD_SOC
++ help
++ To add support for SoC audio on qsd8k.
++
++
++endmenu
+diff --git a/sound/soc/msm/Makefile b/sound/soc/msm/Makefile
+new file mode 100644
+index 0000000..fbfce6d
+--- /dev/null
++++ b/sound/soc/msm/Makefile
+@@ -0,0 +1,17 @@
++# MSM CPU/CODEC DAI Support
++snd-soc-msm-dai-objs := msm-dai.o
++obj-$(CONFIG_SND_MSM_DAI_SOC) += snd-soc-msm-dai.o
++
++# MSM Platform Support
++snd-soc-msm-objs := msm-pcm.o msm7k-pcm.o
++obj-$(CONFIG_SND_MSM_SOC) += snd-soc-msm.o
++
++snd-soc-qsd-objs := qsd8k-pcm.o
++obj-$(CONFIG_SND_QSD_SOC) += snd-soc-qsd.o
++
++# MSM Machine Support
++snd-soc-msm7k-objs := msm7201.o
++obj-$(CONFIG_SND_MSM_SOC_MSM7K) += snd-soc-msm7k.o
++
++snd-soc-qsd8k-objs := qsd8k.o
++obj-$(CONFIG_SND_QSD_SOC_QSD8K) += snd-soc-qsd8k.o
+diff --git a/sound/soc/msm/msm-dai.c b/sound/soc/msm/msm-dai.c
+new file mode 100644
+index 0000000..564e7fe
+--- /dev/null
++++ b/sound/soc/msm/msm-dai.c
+@@ -0,0 +1,143 @@
++/* sound/soc/msm/msm-dai.c
++ *
++ * Copyright (C) 2008 Google, Inc.
++ * Copyright (C) 2008 HTC Corporation
++ * Copyright (c) 2008-2009, Code Aurora Forum. All rights reserved.
++ *
++ * Derived from msm-pcm.c and msm7201.c.
++ *
++ * This software is licensed under the terms of the GNU General Public
++ * License version 2, as published by the Free Software Foundation, and
++ * may be copied, distributed, and modified under those terms.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * See the GNU General Public License for more details.
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, you can find it at http://www.fsf.org.
++ */
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/device.h>
++#include <linux/delay.h>
++#include <linux/clk.h>
++#include <linux/platform_device.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/initval.h>
++#include <sound/soc.h>
++#include "msm-pcm.h"
++
++struct snd_soc_dai msm_dais[] = {
++{
++ .name = "CODEC_DAI",
++ .playback = {
++ .stream_name = "Playback",
++ .channels_min = USE_CHANNELS_MIN,
++ .channels_max = USE_CHANNELS_MAX,
++ .rates = USE_RATE,
++ .rate_min = USE_RATE_MIN,
++ .rate_max = USE_RATE_MAX,
++ .formats = USE_FORMATS,
++ },
++ .capture = {
++ .stream_name = "Capture",
++ .channels_min = USE_CHANNELS_MIN,
++ .channels_max = USE_CHANNELS_MAX,
++ .rate_min = USE_RATE_MIN,
++ .rates = USE_RATE,
++ .formats = USE_FORMATS,
++ },
++},
++{
++ .name = "CPU_DAI",
++ .id = 0,
++ .playback = {
++ .channels_min = USE_CHANNELS_MIN,
++ .channels_max = USE_CHANNELS_MAX,
++ .rates = USE_RATE,
++ .rate_min = USE_RATE_MIN,
++ .rate_max = USE_RATE_MAX,
++ .formats = USE_FORMATS,
++ },
++ .capture = {
++ .channels_min = USE_CHANNELS_MIN,
++ .channels_max = USE_CHANNELS_MAX,
++ .rate_min = USE_RATE_MIN,
++ .rates = USE_RATE,
++ .formats = USE_FORMATS,
++ },
++},
++};
++EXPORT_SYMBOL_GPL(msm_dais);
++
++int msm_pcm_probe(struct platform_device *devptr)
++{
++ struct snd_card *card;
++ struct snd_soc_codec *codec;
++ int ret;
++
++ struct snd_soc_device *socdev = platform_get_drvdata(devptr);
++
++ printk(KERN_ERR "msm_soc: create pcms\n");
++ codec = kzalloc(sizeof(struct snd_soc_codec), GFP_KERNEL);
++ if (codec == NULL)
++ return -ENOMEM;
++
++ codec->name = "MSM-CARD";
++ codec->owner = THIS_MODULE;
++ socdev->codec = codec;
++ mutex_init(&codec->mutex);
++
++ INIT_LIST_HEAD(&codec->dapm_widgets);
++ INIT_LIST_HEAD(&codec->dapm_paths);
++
++ /* register pcms */
++ ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1);
++ if (ret < 0) {
++ printk(KERN_ERR "msm_soc: failed to create pcms\n");
++ goto __nopcm;
++ }
++
++ card = socdev->codec->card;
++
++ ret = snd_soc_init_card(socdev);
++ if (ret < 0) {
++ printk(KERN_ERR "msm_soc: failed to register card\n");
++ goto __nodev;
++ }
++
++ return 0;
++
++__nodev:
++ snd_soc_free_pcms(socdev);
++__nopcm:
++ kfree(codec);
++ return ret;
++}
++
++struct snd_soc_codec_device soc_codec_dev_msm = {
++ .probe = msm_pcm_probe,
++};
++EXPORT_SYMBOL_GPL(soc_codec_dev_msm);
++
++
++static int __init msm_dai_init(void)
++{
++ return snd_soc_register_dais(msm_dais, ARRAY_SIZE(msm_dais));
++}
++
++static void __exit msm_dai_exit(void)
++{
++ snd_soc_unregister_dais(msm_dais, ARRAY_SIZE(msm_dais));
++}
++
++module_init(msm_dai_init);
++module_exit(msm_dai_exit);
++
++/* Module information */
++MODULE_DESCRIPTION("MSM Codec/Cpu Dai driver");
++MODULE_LICENSE("GPL v2");
+diff --git a/sound/soc/msm/msm-pcm.c b/sound/soc/msm/msm-pcm.c
+new file mode 100644
+index 0000000..90e200d
+--- /dev/null
++++ b/sound/soc/msm/msm-pcm.c
+@@ -0,0 +1,643 @@
++/* sound/soc/msm/msm-pcm.c
++ *
++ * Copyright (C) 2008 Google, Inc.
++ * Copyright (C) 2008 HTC Corporation
++ * Copyright (c) 2008-2009, Code Aurora Forum. All rights reserved.
++ *
++ * This software is licensed under the terms of the GNU General Public
++ * License version 2, as published by the Free Software Foundation, and
++ * may be copied, distributed, and modified under those terms.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * See the GNU General Public License for more details.
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, you can find it at http://www.fsf.org.
++ */
++
++
++#include <linux/init.h>
++#include <linux/err.h>
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/time.h>
++#include <linux/wait.h>
++#include <linux/platform_device.h>
++#include <sound/core.h>
++#include <sound/soc.h>
++#include <sound/pcm.h>
++#include <sound/initval.h>
++#include <asm/dma.h>
++#include <linux/dma-mapping.h>
++
++#include "msm-pcm.h"
++
++#define MAX_DATA_SIZE 496
++#define AUDPP_ALSA_DECODER (-1)
++
++#define DB_TABLE_INDEX (50)
++
++#define audio_send_queue_recbs(prtd, cmd, len) \
++ msm_adsp_write(prtd->audrec, QDSP_uPAudRecBitStreamQueue, cmd, len)
++#define audio_send_queue_rec(prtd, cmd, len) \
++ msm_adsp_write(prtd->audrec, QDSP_uPAudRecCmdQueue, cmd, len)
++
++int intcnt;
++static int audio_dsp_send_buffer(struct msm_audio *prtd,
++ unsigned idx, unsigned len);
++
++struct audio_frame {
++ uint16_t count_low;
++ uint16_t count_high;
++ uint16_t bytes;
++ uint16_t unknown;
++ unsigned char samples[];
++} __attribute__ ((packed));
++
++/* Table contains dB to raw value mapping */
++static const unsigned decoder_db_table[] = {
++
++ 31 , /* -50 dB */
++ 35 , 39 , 44 , 50 , 56 ,
++ 63 , 70 , 79 , 89 , 99 ,
++ 112 , 125 , 141 , 158 , 177 ,
++ 199 , 223 , 251 , 281 , 316 ,
++ 354 , 398 , 446 , 501 , 562 ,
++ 630 , 707 , 794 , 891 , 999 ,
++ 1122 , 1258 , 1412 , 1584 , 1778 ,
++ 1995 , 2238 , 2511 , 2818 , 3162 ,
++ 3548 , 3981 , 4466 , 5011 , 5623 ,
++ 6309 , 7079 , 7943 , 8912 , 10000 ,
++ 11220 , 12589 , 14125 , 15848 , 17782 ,
++ 19952 , 22387 , 25118 , 28183 , 31622 ,
++ 35481 , 39810 , 44668 , 50118 , 56234 ,
++ 63095 , 70794 , 79432 , 89125 , 100000 ,
++ 112201 , 125892 , 141253 , 158489 , 177827 ,
++ 199526 , 223872 , 251188 , 281838 , 316227 ,
++ 354813 , 398107 , 446683 , 501187 , 562341 ,
++ 630957 , 707945 , 794328 , 891250 , 1000000 ,
++ 1122018 , 1258925 , 1412537 , 1584893 , 1778279 ,
++ 1995262 , 2238721 , 2511886 , 2818382 , 3162277 ,
++ 3548133 /* 51 dB */
++
++};
++
++static unsigned compute_db_raw(int db)
++{
++ unsigned reg_val = 0; /* Computed result for correspondent db */
++ /* Check if the given db is out of range */
++ if (db <= MIN_DB)
++ return 0;
++ else if (db > MAX_DB)
++ db = MAX_DB; /* If db is too high then set to max */
++ reg_val = decoder_db_table[DB_TABLE_INDEX+db];
++ return reg_val;
++}
++
++int msm_audio_volume_update(unsigned id,
++ int volume, int pan)
++{
++ unsigned vol_raw;
++
++ vol_raw = compute_db_raw(volume);
++ printk(KERN_INFO "volume: %8x vol_raw: %8x \n", volume, vol_raw);
++ return audpp_set_volume_and_pan(id, vol_raw, pan);
++}
++EXPORT_SYMBOL(msm_audio_volume_update);
++
++void alsa_dsp_event(void *data, unsigned id, uint16_t *msg)
++{
++ struct msm_audio *prtd = data;
++ struct buffer *frame;
++ unsigned long flag;
++
++ switch (id) {
++ case AUDPP_MSG_STATUS_MSG:
++ break;
++ case AUDPP_MSG_SPA_BANDS:
++ break;
++ case AUDPP_MSG_HOST_PCM_INTF_MSG:{
++ unsigned id = msg[2];
++ unsigned idx = msg[3] - 1;
++ if (id != AUDPP_MSG_HOSTPCM_ID_ARM_RX) {
++ printk(KERN_ERR "bogus id\n");
++ break;
++ }
++ if (idx > 1) {
++ printk(KERN_ERR "bogus buffer idx\n");
++ break;
++ }
++ /* Update with actual sent buffer size */
++ if (prtd->out[idx].used != BUF_INVALID_LEN)
++ prtd->pcm_irq_pos += prtd->out[idx].used;
++
++ if (prtd->pcm_irq_pos > prtd->pcm_size)
++ prtd->pcm_irq_pos = prtd->pcm_count;
++
++ if (prtd->ops->playback)
++ prtd->ops->playback(prtd);
++
++ spin_lock_irqsave(&the_locks.write_dsp_lock, flag);
++ if (prtd->running) {
++ prtd->out[idx].used = 0;
++ frame = prtd->out + prtd->out_tail;
++ if (frame->used) {
++ audio_dsp_send_buffer(prtd,
++ prtd->out_tail,
++ frame->used);
++ prtd->out_tail ^= 1;
++ } else {
++ prtd->out_needed++;
++ }
++ wake_up(&the_locks.write_wait);
++ }
++ spin_unlock_irqrestore(&the_locks.write_dsp_lock, flag);
++ break;
++ }
++ case AUDPP_MSG_PCMDMAMISSED:
++ printk(KERN_ERR "alsa_dsp_event: PCMDMAMISSED %d\n", msg[0]);
++ break;
++ case AUDPP_MSG_CFG_MSG:
++ if (msg[0] == AUDPP_MSG_ENA_ENA) {
++ prtd->out_needed = 0;
++ prtd->running = 1;
++ audio_dsp_out_enable(prtd, 1);
++ } else if (msg[0] == AUDPP_MSG_ENA_DIS) {
++ prtd->running = 0;
++ } else {
++ printk(KERN_ERR "alsa_dsp_event:CFG_MSG=%d\n", msg[0]);
++ }
++ break;
++ case EVENT_MSG_ID:
++ printk(KERN_INFO"alsa_dsp_event: arm9 event\n");
++ break;
++ default:
++ printk(KERN_ERR "alsa_dsp_event: UNKNOWN (%d)\n", id);
++ }
++}
++
++void alsa_audpre_dsp_event(void *data, unsigned id, size_t len,
++ void (*getevent) (void *ptr, size_t len))
++{
++ uint16_t msg[MAX_DATA_SIZE/2];
++
++ if (len > MAX_DATA_SIZE) {
++ printk(KERN_ERR"audpre: event too large(%d bytes)\n", len);
++ return;
++ }
++ getevent(msg, len);
++
++ switch (id) {
++ case AUDPREPROC_MSG_CMD_CFG_DONE_MSG:
++ break;
++ case AUDPREPROC_MSG_ERROR_MSG_ID:
++ printk(KERN_ERR "audpre: err_index %d\n", msg[0]);
++ break;
++ case EVENT_MSG_ID:
++ printk(KERN_INFO"audpre: arm9 event\n");
++ break;
++ default:
++ printk(KERN_ERR "audpre: unknown event %d\n", id);
++ }
++}
++
++void audrec_dsp_event(void *data, unsigned id, size_t len,
++ void (*getevent) (void *ptr, size_t len))
++{
++ struct msm_audio *prtd = data;
++ unsigned long flag;
++ uint16_t msg[MAX_DATA_SIZE/2];
++
++ if (len > MAX_DATA_SIZE) {
++ printk(KERN_ERR"audrec: event/msg too large(%d bytes)\n", len);
++ return;
++ }
++ getevent(msg, len);
++
++ switch (id) {
++ case AUDREC_MSG_CMD_CFG_DONE_MSG:
++ if (msg[0] & AUDREC_MSG_CFG_DONE_TYPE_0_UPDATE) {
++ if (msg[0] & AUDREC_MSG_CFG_DONE_TYPE_0_ENA)
++ audrec_encoder_config(prtd);
++ else
++ prtd->running = 0;
++ }
++ break;
++ case AUDREC_MSG_CMD_AREC_PARAM_CFG_DONE_MSG:{
++ prtd->running = 1;
++ break;
++ }
++ case AUDREC_MSG_FATAL_ERR_MSG:
++ printk(KERN_ERR "audrec: ERROR %x\n", msg[0]);
++ break;
++ case AUDREC_MSG_PACKET_READY_MSG:
++ alsa_get_dsp_frames(prtd);
++ ++intcnt;
++ if (prtd->channel_mode == 1) {
++ spin_lock_irqsave(&the_locks.read_dsp_lock, flag);
++ prtd->pcm_irq_pos += prtd->pcm_count;
++ if (prtd->pcm_irq_pos >= prtd->pcm_size)
++ prtd->pcm_irq_pos = 0;
++ spin_unlock_irqrestore(&the_locks.read_dsp_lock, flag);
++
++ if (prtd->ops->capture)
++ prtd->ops->capture(prtd);
++ } else if ((prtd->channel_mode == 0) && (intcnt % 2 == 0)) {
++ spin_lock_irqsave(&the_locks.read_dsp_lock, flag);
++ prtd->pcm_irq_pos += prtd->pcm_count;
++ if (prtd->pcm_irq_pos >= prtd->pcm_size)
++ prtd->pcm_irq_pos = 0;
++ spin_unlock_irqrestore(&the_locks.read_dsp_lock, flag);
++ if (prtd->ops->capture)
++ prtd->ops->capture(prtd);
++ }
++ break;
++ case EVENT_MSG_ID:
++ printk(KERN_INFO"audrec: arm9 event\n");
++ break;
++ default:
++ printk(KERN_ERR "audrec: unknown event %d\n", id);
++ }
++}
++
++struct msm_adsp_ops aud_pre_adsp_ops = {
++ .event = alsa_audpre_dsp_event,
++};
++
++struct msm_adsp_ops aud_rec_adsp_ops = {
++ .event = audrec_dsp_event,
++};
++
++int alsa_adsp_configure(struct msm_audio *prtd)
++{
++ int ret, i;
++
++ if (prtd->dir == SNDRV_PCM_STREAM_PLAYBACK) {
++ prtd->data = prtd->playback_substream->dma_buffer.area;
++ prtd->phys = prtd->playback_substream->dma_buffer.addr;
++ }
++ if (prtd->dir == SNDRV_PCM_STREAM_CAPTURE) {
++ prtd->data = prtd->capture_substream->dma_buffer.area;
++ prtd->phys = prtd->capture_substream->dma_buffer.addr;
++ }
++ if (!prtd->data) {
++ ret = -ENOMEM;
++ goto err1;
++ }
++
++ ret = audmgr_open(&prtd->audmgr);
++ if (ret)
++ goto err2;
++ if (prtd->dir == SNDRV_PCM_STREAM_PLAYBACK) {
++ prtd->out_buffer_size = PLAYBACK_DMASZ;
++ prtd->out_sample_rate = 44100;
++ prtd->out_channel_mode = AUDPP_CMD_PCM_INTF_STEREO_V;
++ prtd->out_weight = 100;
++
++ prtd->out[0].data = prtd->data + 0;
++ prtd->out[0].addr = prtd->phys + 0;
++ prtd->out[0].size = BUFSZ;
++ prtd->out[1].data = prtd->data + BUFSZ;
++ prtd->out[1].addr = prtd->phys + BUFSZ;
++ prtd->out[1].size = BUFSZ;
++ }
++ if (prtd->dir == SNDRV_PCM_STREAM_CAPTURE) {
++ prtd->samp_rate = RPC_AUD_DEF_SAMPLE_RATE_44100;
++ prtd->samp_rate_index = AUDREC_CMD_SAMP_RATE_INDX_44100;
++ prtd->channel_mode = AUDREC_CMD_STEREO_MODE_STEREO;
++ prtd->buffer_size = STEREO_DATA_SIZE;
++ prtd->type = AUDREC_CMD_TYPE_0_INDEX_WAV;
++ prtd->tx_agc_cfg.cmd_id = AUDPREPROC_CMD_CFG_AGC_PARAMS;
++ prtd->ns_cfg.cmd_id = AUDPREPROC_CMD_CFG_NS_PARAMS;
++ prtd->iir_cfg.cmd_id =
++ AUDPREPROC_CMD_CFG_IIR_TUNING_FILTER_PARAMS;
++
++ ret = msm_adsp_get("AUDPREPROCTASK",
++ &prtd->audpre, &aud_pre_adsp_ops, prtd);
++ if (ret)
++ goto err3;
++ ret = msm_adsp_get("AUDRECTASK",
++ &prtd->audrec, &aud_rec_adsp_ops, prtd);
++ if (ret) {
++ msm_adsp_put(prtd->audpre);
++ goto err3;
++ }
++ prtd->dsp_cnt = 0;
++ prtd->in_head = 0;
++ prtd->in_tail = 0;
++ prtd->in_count = 0;
++ for (i = 0; i < FRAME_NUM; i++) {
++ prtd->in[i].size = 0;
++ prtd->in[i].read = 0;
++ }
++ }
++
++ return 0;
++
++err3:
++ audmgr_close(&prtd->audmgr);
++
++err2:
++ prtd->data = NULL;
++err1:
++ return ret;
++}
++EXPORT_SYMBOL(alsa_adsp_configure);
++
++int alsa_audio_configure(struct msm_audio *prtd)
++{
++ struct audmgr_config cfg;
++ int rc;
++
++ if (prtd->enabled)
++ return 0;
++
++ /* refuse to start if we're not ready with first buffer */
++ if (!prtd->out[0].used)
++ return -EIO;
++
++ cfg.tx_rate = 0;
++ cfg.rx_rate = RPC_AUD_DEF_SAMPLE_RATE_48000;
++ cfg.def_method = RPC_AUD_DEF_METHOD_HOST_PCM;
++ cfg.codec = RPC_AUD_DEF_CODEC_PCM;
++ cfg.snd_method = RPC_SND_METHOD_MIDI;
++ rc = audmgr_enable(&prtd->audmgr, &cfg);
++ if (rc < 0)
++ return rc;
++
++ if (audpp_enable(AUDPP_ALSA_DECODER, alsa_dsp_event, prtd)) {
++ printk(KERN_ERR "audio: audpp_enable() failed\n");
++ audmgr_disable(&prtd->audmgr);
++ return -ENODEV;
++ }
++
++ prtd->enabled = 1;
++ return 0;
++}
++EXPORT_SYMBOL(alsa_audio_configure);
++
++ssize_t alsa_send_buffer(struct msm_audio *prtd, const char __user *buf,
++ size_t count, loff_t *pos)
++{
++ unsigned long flag;
++ const char __user *start = buf;
++ struct buffer *frame;
++ size_t xfer;
++ int rc = 0;
++
++ mutex_lock(&the_locks.write_lock);
++ while (count > 0) {
++ frame = prtd->out + prtd->out_head;
++ rc = wait_event_interruptible(the_locks.write_wait,
++ (frame->used == 0)
++ || (prtd->stopped));
++ if (rc < 0)
++ break;
++ if (prtd->stopped) {
++ rc = -EBUSY;
++ break;
++ }
++ xfer = count > frame->size ? frame->size : count;
++ if (copy_from_user(frame->data, buf, xfer)) {
++ rc = -EFAULT;
++ break;
++ }
++ frame->used = xfer;
++ prtd->out_head ^= 1;
++ count -= xfer;
++ buf += xfer;
++
++ spin_lock_irqsave(&the_locks.write_dsp_lock, flag);
++ frame = prtd->out + prtd->out_tail;
++ if (frame->used && prtd->out_needed) {
++ audio_dsp_send_buffer(prtd, prtd->out_tail,
++ frame->used);
++ prtd->out_tail ^= 1;
++ prtd->out_needed--;
++ }
++ spin_unlock_irqrestore(&the_locks.write_dsp_lock, flag);
++ }
++ mutex_unlock(&the_locks.write_lock);
++ if (buf > start)
++ return buf - start;
++ return rc;
++}
++EXPORT_SYMBOL(alsa_send_buffer);
++
++int alsa_audio_disable(struct msm_audio *prtd)
++{
++ if (prtd->enabled) {
++ mutex_lock(&the_locks.lock);
++ prtd->enabled = 0;
++ audio_dsp_out_enable(prtd, 0);
++ wake_up(&the_locks.write_wait);
++ audpp_disable(AUDPP_ALSA_DECODER, prtd);
++ audmgr_disable(&prtd->audmgr);
++ prtd->out_needed = 0;
++ mutex_unlock(&the_locks.lock);
++ }
++ return 0;
++}
++EXPORT_SYMBOL(alsa_audio_disable);
++
++int alsa_audrec_disable(struct msm_audio *prtd)
++{
++ if (prtd->enabled) {
++ mutex_lock(&the_locks.lock);
++ prtd->enabled = 0;
++ alsa_rec_dsp_enable(prtd, 0);
++ wake_up(&the_locks.read_wait);
++ msm_adsp_disable(prtd->audpre);
++ msm_adsp_disable(prtd->audrec);
++ audmgr_disable(&prtd->audmgr);
++ prtd->out_needed = 0;
++ prtd->opened = 0;
++ mutex_unlock(&the_locks.lock);
++ }
++ return 0;
++}
++EXPORT_SYMBOL(alsa_audrec_disable);
++
++static int audio_dsp_read_buffer(struct msm_audio *prtd, uint32_t read_cnt)
++{
++ audrec_cmd_packet_ext_ptr cmd;
++
++ memset(&cmd, 0, sizeof(cmd));
++ cmd.cmd_id = AUDREC_CMD_PACKET_EXT_PTR;
++ /* Both WAV and AAC use AUDREC_CMD_TYPE_0 */
++ cmd.type = AUDREC_CMD_TYPE_0;
++ cmd.curr_rec_count_msw = read_cnt >> 16;
++ cmd.curr_rec_count_lsw = read_cnt;
++
++ return audio_send_queue_recbs(prtd, &cmd, sizeof(cmd));
++}
++
++int audrec_encoder_config(struct msm_audio *prtd)
++{
++ audrec_cmd_arec0param_cfg cmd;
++ uint16_t *data = (void *)prtd->data;
++ unsigned n;
++
++ memset(&cmd, 0, sizeof(cmd));
++ cmd.cmd_id = AUDREC_CMD_AREC0PARAM_CFG;
++ cmd.ptr_to_extpkt_buffer_msw = prtd->phys >> 16;
++ cmd.ptr_to_extpkt_buffer_lsw = prtd->phys;
++ cmd.buf_len = FRAME_NUM; /* Both WAV and AAC use 8 frames */
++ cmd.samp_rate_index = prtd->samp_rate_index;
++ /* 0 for mono, 1 for stereo */
++ cmd.stereo_mode = prtd->channel_mode;
++ cmd.rec_quality = 0x1C00;
++
++ /* prepare buffer pointers:
++ * Mono: 1024 samples + 4 halfword header
++ * Stereo: 2048 samples + 4 halfword header
++ */
++
++ for (n = 0; n < FRAME_NUM; n++) {
++ prtd->in[n].data = data + 4;
++ data += (4 + (prtd->channel_mode ? 2048 : 1024));
++ }
++
++ return audio_send_queue_rec(prtd, &cmd, sizeof(cmd));
++}
++
++int audio_dsp_out_enable(struct msm_audio *prtd, int yes)
++{
++ audpp_cmd_pcm_intf cmd;
++ memset(&cmd, 0, sizeof(cmd));
++ cmd.cmd_id = AUDPP_CMD_PCM_INTF_2;
++ cmd.object_num = AUDPP_CMD_PCM_INTF_OBJECT_NUM;
++ cmd.config = AUDPP_CMD_PCM_INTF_CONFIG_CMD_V;
++ cmd.intf_type = AUDPP_CMD_PCM_INTF_RX_ENA_ARMTODSP_V;
++
++ if (yes) {
++ cmd.write_buf1LSW = prtd->out[0].addr;
++ cmd.write_buf1MSW = prtd->out[0].addr >> 16;
++ cmd.write_buf1_len = 0;
++ cmd.write_buf2LSW = prtd->out[1].addr;
++ cmd.write_buf2MSW = prtd->out[1].addr >> 16;
++ cmd.write_buf2_len = prtd->out[1].used;
++ cmd.arm_to_rx_flag = AUDPP_CMD_PCM_INTF_ENA_V;
++ cmd.weight_decoder_to_rx = prtd->out_weight;
++ cmd.weight_arm_to_rx = 1;
++ cmd.partition_number_arm_to_dsp = 0;
++ cmd.sample_rate = prtd->out_sample_rate;
++ cmd.channel_mode = prtd->out_channel_mode;
++ }
++ return audpp_send_queue2(&cmd, sizeof(cmd));
++}
++
++int alsa_buffer_read(struct msm_audio *prtd, void __user *buf,
++ size_t count, loff_t *pos)
++{
++ unsigned long flag;
++ void *data;
++ uint32_t index;
++ uint32_t size;
++ int rc = 0;
++
++ mutex_lock(&the_locks.read_lock);
++ while (count > 0) {
++ rc = wait_event_interruptible(the_locks.read_wait,
++ (prtd->in_count > 0)
++ || prtd->stopped);
++ if (rc < 0)
++ break;
++
++ if (prtd->stopped) {
++ rc = -EBUSY;
++ break;
++ }
++
++ index = prtd->in_tail;
++ data = (uint8_t *) prtd->in[index].data;
++ size = prtd->in[index].size;
++ if (count >= size) {
++ if (copy_to_user(buf, data, size)) {
++ rc = -EFAULT;
++ break;
++ }
++ spin_lock_irqsave(&the_locks.read_dsp_lock, flag);
++ if (index != prtd->in_tail) {
++ /* overrun: data is invalid, we need to retry */
++ spin_unlock_irqrestore(&the_locks.read_dsp_lock,
++ flag);
++ continue;
++ }
++ prtd->in[index].size = 0;
++ prtd->in_tail = (prtd->in_tail + 1) & (FRAME_NUM - 1);
++ prtd->in_count--;
++ spin_unlock_irqrestore(&the_locks.read_dsp_lock, flag);
++ count -= size;
++ buf += size;
++ } else {
++ break;
++ }
++ }
++ mutex_unlock(&the_locks.read_lock);
++ return rc;
++}
++EXPORT_SYMBOL(alsa_buffer_read);
++
++static int audio_dsp_send_buffer(struct msm_audio *prtd,
++ unsigned idx, unsigned len)
++{
++ audpp_cmd_pcm_intf_send_buffer cmd;
++ cmd.cmd_id = AUDPP_CMD_PCM_INTF_2;
++ cmd.host_pcm_object = AUDPP_CMD_PCM_INTF_OBJECT_NUM;
++ cmd.config = AUDPP_CMD_PCM_INTF_BUFFER_CMD_V;
++ cmd.intf_type = AUDPP_CMD_PCM_INTF_RX_ENA_ARMTODSP_V;
++ cmd.dsp_to_arm_buf_id = 0;
++ cmd.arm_to_dsp_buf_id = idx + 1;
++ cmd.arm_to_dsp_buf_len = len;
++ return audpp_send_queue2(&cmd, sizeof(cmd));
++}
++
++int alsa_rec_dsp_enable(struct msm_audio *prtd, int enable)
++{
++ audrec_cmd_cfg cmd;
++
++ memset(&cmd, 0, sizeof(cmd));
++ cmd.cmd_id = AUDREC_CMD_CFG;
++ cmd.type_0 = enable ? AUDREC_CMD_TYPE_0_ENA : AUDREC_CMD_TYPE_0_DIS;
++ cmd.type_0 |= (AUDREC_CMD_TYPE_0_UPDATE | prtd->type);
++ cmd.type_1 = 0;
++
++ return audio_send_queue_rec(prtd, &cmd, sizeof(cmd));
++}
++EXPORT_SYMBOL(alsa_rec_dsp_enable);
++
++void alsa_get_dsp_frames(struct msm_audio *prtd)
++{
++ struct audio_frame *frame;
++ uint32_t index = 0;
++ unsigned long flag;
++
++ if (prtd->type == AUDREC_CMD_TYPE_0_INDEX_WAV) {
++ index = prtd->in_head;
++
++ frame =
++ (void *)(((char *)prtd->in[index].data) - sizeof(*frame));
++
++ spin_lock_irqsave(&the_locks.read_dsp_lock, flag);
++ prtd->in[index].size = frame->bytes;
++
++ prtd->in_head = (prtd->in_head + 1) & (FRAME_NUM - 1);
++
++ /* If overflow, move the tail index foward. */
++ if (prtd->in_head == prtd->in_tail)
++ prtd->in_tail = (prtd->in_tail + 1) & (FRAME_NUM - 1);
++ else
++ prtd->in_count++;
++
++ audio_dsp_read_buffer(prtd, prtd->dsp_cnt++);
++ spin_unlock_irqrestore(&the_locks.read_dsp_lock, flag);
++
++ wake_up(&the_locks.read_wait);
++ } else {
++ /* TODO AAC not supported yet. */
++ }
++}
++EXPORT_SYMBOL(alsa_get_dsp_frames);
+diff --git a/sound/soc/msm/msm-pcm.h b/sound/soc/msm/msm-pcm.h
+new file mode 100644
+index 0000000..7563ef0
+--- /dev/null
++++ b/sound/soc/msm/msm-pcm.h
+@@ -0,0 +1,200 @@
++/* sound/soc/msm/msm-pcm.h
++ *
++ * Copyright (C) 2008 Google, Inc.
++ * Copyright (C) 2008 HTC Corporation
++ * Copyright (c) 2008-2009, Code Aurora Forum. All rights reserved.
++ *
++ * This software is licensed under the terms of the GNU General Public
++ * License version 2, as published by the Free Software Foundation, and
++ * may be copied, distributed, and modified under those terms.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * See the GNU General Public License for more details.
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, you can find it at http://www.fsf.org.
++ */
++
++#ifndef _MSM_PCM_H
++#define _MSM_PCM_H
++
++
++#include <mach/qdsp5/qdsp5audppcmdi.h>
++#include <mach/qdsp5/qdsp5audppmsg.h>
++#include <mach/qdsp5/qdsp5audreccmdi.h>
++#include <mach/qdsp5/qdsp5audrecmsg.h>
++#include <mach/qdsp5/qdsp5audpreproccmdi.h>
++#include <mach/qdsp5/qdsp5audpreprocmsg.h>
++
++#include <../arch/arm/mach-msm/qdsp5/adsp.h>
++#include <../arch/arm/mach-msm/qdsp5/audmgr.h>
++
++
++#define FRAME_NUM (8)
++#define FRAME_SIZE (2052 * 2)
++#define MONO_DATA_SIZE (2048)
++#define STEREO_DATA_SIZE (MONO_DATA_SIZE * 2)
++#define CAPTURE_DMASZ (FRAME_SIZE * FRAME_NUM)
++
++#define BUFSZ (960 * 5)
++#define PLAYBACK_DMASZ (BUFSZ * 2)
++
++#define MSM_PLAYBACK_DEFAULT_VOLUME 0 /* 0dB */
++#define MSM_PLAYBACK_DEFAULT_PAN 0
++
++#define USE_FORMATS SNDRV_PCM_FMTBIT_S16_LE
++#define USE_CHANNELS_MIN 1
++#define USE_CHANNELS_MAX 2
++/* Support unconventional sample rates 12000, 24000 as well */
++#define USE_RATE \
++ (SNDRV_PCM_RATE_8000_48000 | SNDRV_PCM_RATE_KNOT)
++#define USE_RATE_MIN 8000
++#define USE_RATE_MAX 48000
++#define MAX_BUFFER_PLAYBACK_SIZE \
++ (4800*4)
++/* 2048 frames (Mono), 1024 frames (Stereo) */
++#define CAPTURE_SIZE 4096
++#define MAX_BUFFER_CAPTURE_SIZE (4096*4)
++#define MAX_PERIOD_SIZE BUFSZ
++#define USE_PERIODS_MAX 1024
++#define USE_PERIODS_MIN 1
++
++
++#define MAX_DB (16)
++#define MIN_DB (-50)
++#define PCMPLAYBACK_DECODERID 5
++
++/* 0xFFFFFFFF Indicates not to be used for audio data copy */
++#define BUF_INVALID_LEN 0xFFFFFFFF
++
++extern int copy_count;
++extern int intcnt;
++
++struct msm_volume {
++ bool update;
++ int volume; /* Volume parameter, in dB Scale */
++ int pan;
++};
++
++struct buffer {
++ void *data;
++ unsigned size;
++ unsigned used;
++ unsigned addr;
++};
++
++struct buffer_rec {
++ void *data;
++ unsigned int size;
++ unsigned int read;
++ unsigned int addr;
++};
++
++struct audio_locks {
++ struct mutex lock;
++ struct mutex write_lock;
++ struct mutex read_lock;
++ spinlock_t read_dsp_lock;
++ spinlock_t write_dsp_lock;
++ spinlock_t mixer_lock;
++ wait_queue_head_t read_wait;
++ wait_queue_head_t write_wait;
++};
++
++extern struct audio_locks the_locks;
++
++struct msm_audio_event_callbacks {
++ /* event is called from interrupt context when a message
++ * arrives from the DSP.
++ */
++ void (*playback)(void *);
++ void (*capture)(void *);
++};
++
++
++struct msm_audio {
++ struct buffer out[2];
++ struct buffer_rec in[8];
++
++ uint8_t out_head;
++ uint8_t out_tail;
++ uint8_t out_needed; /* number of buffers the dsp is waiting for */
++ atomic_t out_bytes;
++
++ /* configuration to use on next enable */
++ uint32_t out_sample_rate;
++ uint32_t out_channel_mode;
++ uint32_t out_weight;
++ uint32_t out_buffer_size;
++
++ struct audmgr audmgr;
++ struct snd_pcm_substream *playback_substream;
++ struct snd_pcm_substream *capture_substream;
++
++ /* data allocated for various buffers */
++ char *data;
++ dma_addr_t phys;
++
++ unsigned int pcm_size;
++ unsigned int pcm_count;
++ unsigned int pcm_irq_pos; /* IRQ position */
++ unsigned int pcm_buf_pos; /* position in buffer */
++
++ struct msm_adsp_module *audpre;
++ struct msm_adsp_module *audrec;
++
++ /* configuration to use on next enable */
++ uint32_t samp_rate;
++ uint32_t channel_mode;
++ uint32_t buffer_size; /* 2048 for mono, 4096 for stereo */
++ uint32_t type; /* 0 for PCM ,1 for AAC */
++ uint32_t dsp_cnt;
++ uint32_t in_head; /* next buffer dsp will write */
++ uint32_t in_tail; /* next buffer read() will read */
++ uint32_t in_count; /* number of buffers available to read() */
++
++ unsigned short samp_rate_index;
++
++ /* audpre settings */
++ audpreproc_cmd_cfg_agc_params tx_agc_cfg;
++ audpreproc_cmd_cfg_ns_params ns_cfg;
++ /* For different sample rate, the coeff might be different. *
++ * All the coeff should be passed from user space */
++ audpreproc_cmd_cfg_iir_tuning_filter_params iir_cfg;
++
++ struct msm_audio_event_callbacks *ops;
++
++ int dir;
++ int opened;
++ int enabled;
++ int running;
++ int stopped; /* set when stopped, cleared on flush */
++};
++
++
++
++/* platform data */
++extern int audio_dsp_out_enable(struct msm_audio *prtd, int yes);
++extern struct snd_soc_platform msm_soc_platform;
++extern struct snd_soc_dai msm_dais[2];
++extern struct snd_soc_codec_device soc_codec_dev_msm;
++
++int audrec_encoder_config(struct msm_audio *prtd);
++extern void alsa_get_dsp_frames(struct msm_audio *prtd);
++extern int alsa_rec_dsp_enable(struct msm_audio *prtd, int enable);
++extern int alsa_audrec_disable(struct msm_audio *prtd);
++extern int alsa_audio_configure(struct msm_audio *prtd);
++extern int alsa_audio_disable(struct msm_audio *prtd);
++extern int alsa_adsp_configure(struct msm_audio *prtd);
++extern int alsa_buffer_read(struct msm_audio *prtd, void __user *buf,
++ size_t count, loff_t *pos);
++ssize_t alsa_send_buffer(struct msm_audio *prtd, const char __user *buf,
++ size_t count, loff_t *pos);
++int msm_audio_volume_update(unsigned id,
++ int volume, int pan);
++extern struct audio_locks the_locks;
++extern struct msm_volume msm_vol_ctl;
++
++#endif /*_MSM_PCM_H*/
+diff --git a/sound/soc/msm/msm7201.c b/sound/soc/msm/msm7201.c
+new file mode 100644
+index 0000000..977fbac
+--- /dev/null
++++ b/sound/soc/msm/msm7201.c
+@@ -0,0 +1,337 @@
++/* linux/sound/soc/msm/msm7201.c
++ *
++ * Copyright (c) 2008-2009, Code Aurora Forum. All rights reserved.
++ *
++ * All source code in this file is licensed under the following license except
++ * where indicated.
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 as published
++ * by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * See the GNU General Public License for more details.
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, you can find it at http://www.fsf.org.
++ */
++
++#include <linux/init.h>
++#include <linux/err.h>
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/time.h>
++#include <linux/wait.h>
++#include <linux/platform_device.h>
++#include <sound/core.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++#include <sound/pcm.h>
++#include <sound/tlv.h>
++#include <sound/initval.h>
++#include <sound/control.h>
++#include <asm/dma.h>
++#include <linux/dma-mapping.h>
++
++#include "msm-pcm.h"
++#include <asm/mach-types.h>
++#include <mach/msm_rpcrouter.h>
++
++static struct msm_rpc_endpoint *snd_ep;
++
++struct msm_snd_rpc_ids {
++ unsigned long prog;
++ unsigned long vers;
++ unsigned long rpc_set_snd_device;
++ int device;
++};
++
++static struct msm_snd_rpc_ids snd_rpc_ids;
++
++static struct platform_device *msm_audio_snd_device;
++
++static int snd_msm_volume_info(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_info *uinfo)
++{
++ uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
++ uinfo->count = 1; /* Volume Param, in dB */
++ uinfo->value.integer.min = MIN_DB;
++ uinfo->value.integer.max = MAX_DB;
++ return 0;
++}
++
++static int snd_msm_volume_get(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ spin_lock_irq(&the_locks.mixer_lock);
++ ucontrol->value.integer.value[0] = msm_vol_ctl.volume;
++ spin_unlock_irq(&the_locks.mixer_lock);
++ return 0;
++}
++
++static int snd_msm_volume_put(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ int change;
++ int volume;
++
++ volume = ucontrol->value.integer.value[0];
++ spin_lock_irq(&the_locks.mixer_lock);
++ change = (msm_vol_ctl.volume != volume);
++ if (change) {
++ msm_vol_ctl.update = 1;
++ msm_vol_ctl.volume = volume;
++ }
++ spin_unlock_irq(&the_locks.mixer_lock);
++ return change;
++}
++
++static int snd_msm_device_info(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_info *uinfo)
++{
++ uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
++ uinfo->count = 1; /* Device */
++
++ /*
++ * The number of devices supported is 26 (0 to 25)
++ */
++ uinfo->value.integer.min = 0;
++ uinfo->value.integer.max = 25;
++ return 0;
++}
++
++static int snd_msm_device_get(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ ucontrol->value.integer.value[0] = (uint32_t)snd_rpc_ids.device;
++ return 0;
++}
++
++int msm_snd_init_rpc_ids(void)
++{
++ snd_rpc_ids.prog = 0x30000002;
++#ifdef CONFIG_MSM_AMSS_VERSION_6225
++ //TODO: complete for other versions
++ snd_rpc_ids.vers = 0xaa2b1a44;
++#else
++ //seem a new magich number...not in arch/arm/mach-msm and it seem to be for a new amss version
++ snd_rpc_ids.vers = 0x00020001;
++#endif
++ /*
++ * The magic number 2 corresponds to the rpc call
++ * index for snd_set_device
++ */
++ snd_rpc_ids.rpc_set_snd_device = 2;
++ return 0;
++}
++
++int msm_snd_rpc_connect(void)
++{
++ if (snd_ep) {
++ printk(KERN_INFO "%s: snd_ep already connected\n", __func__);
++ return 0;
++ }
++
++ /* Initialize rpc ids */
++ if (msm_snd_init_rpc_ids()) {
++ printk(KERN_ERR "%s: snd rpc ids initialization failed\n"
++ , __func__);
++ return -ENODATA;
++ }
++
++ snd_ep = msm_rpc_connect(snd_rpc_ids.prog,
++ snd_rpc_ids.vers, 0);
++ if (IS_ERR(snd_ep)) {
++ printk(KERN_ERR "%s: failed (compatible VERS = %ld)\n",
++ __func__, snd_rpc_ids.vers);
++ snd_ep = NULL;
++ return -EAGAIN;
++ }
++ return 0;
++}
++
++int msm_snd_rpc_close(void)
++{
++ int rc = 0;
++
++ if (IS_ERR(snd_ep)) {
++ printk(KERN_ERR "%s: snd handle unavailable, rc = %ld\n",
++ __func__, PTR_ERR(snd_ep));
++ return -EAGAIN;
++ }
++
++ rc = msm_rpc_close(snd_ep);
++ snd_ep = NULL;
++
++ if (rc < 0) {
++ printk(KERN_ERR "%s: close rpc failed! rc = %d\n",
++ __func__, rc);
++ return -EAGAIN;
++ } else
++ printk(KERN_INFO "rpc close success\n");
++
++ return rc;
++}
++
++static int snd_msm_device_put(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ int rc = 0;
++ struct snd_start_req {
++ struct rpc_request_hdr hdr;
++ uint32_t rpc_snd_device;
++ uint32_t snd_mute_ear_mute;
++ uint32_t snd_mute_mic_mute;
++ uint32_t callback_ptr;
++ uint32_t client_data;
++ } req;
++
++ snd_rpc_ids.device = (int)ucontrol->value.integer.value[0];
++ req.hdr.type = 0;
++ req.hdr.rpc_vers = 2;
++
++ req.rpc_snd_device = cpu_to_be32(snd_rpc_ids.device);
++ req.snd_mute_ear_mute = cpu_to_be32(1);
++ req.snd_mute_mic_mute = cpu_to_be32(0);
++ req.callback_ptr = -1;
++ req.client_data = cpu_to_be32(0);
++
++ req.hdr.prog = snd_rpc_ids.prog;
++ req.hdr.vers = snd_rpc_ids.vers;
++
++ rc = msm_rpc_call(snd_ep, snd_rpc_ids.rpc_set_snd_device ,
++ &req, sizeof(req), 5 * HZ);
++
++ if (rc < 0) {
++ printk(KERN_ERR "%s: snd rpc call failed! rc = %d\n",
++ __func__, rc);
++ } else
++ printk(KERN_INFO "snd device connected \n");
++
++ return rc;
++}
++
++/* Supported range -50dB to 18dB */
++static const DECLARE_TLV_DB_LINEAR(db_scale_linear, -5000, 1800);
++
++#define MSM_EXT(xname, xindex, fp_info, fp_get, fp_put, addr) \
++{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
++ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE, \
++ .name = xname, .index = xindex, \
++ .info = fp_info,\
++ .get = fp_get, .put = fp_put, \
++ .private_value = addr, \
++}
++
++#define MSM_EXT_TLV(xname, xindex, fp_info, fp_get, fp_put, addr, tlv_array) \
++{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
++ .access = (SNDRV_CTL_ELEM_ACCESS_TLV_READ | \
++ SNDRV_CTL_ELEM_ACCESS_READWRITE), \
++ .name = xname, .index = xindex, \
++ .info = fp_info,\
++ .get = fp_get, .put = fp_put, .tlv.p = tlv_array, \
++ .private_value = addr, \
++}
++
++static struct snd_kcontrol_new snd_msm_controls[] = {
++ MSM_EXT_TLV("PCM Playback Volume", 0, snd_msm_volume_info, \
++ snd_msm_volume_get, snd_msm_volume_put, 0, db_scale_linear),
++ MSM_EXT("device", 1, snd_msm_device_info, snd_msm_device_get, \
++ snd_msm_device_put, 0),
++};
++
++static int msm_new_mixer(struct snd_card *card)
++{
++ unsigned int idx;
++ int err;
++
++ printk(KERN_ERR "msm_soc:ALSA MSM Mixer Setting");
++ strcpy(card->mixername, "MSM Mixer");
++ for (idx = 0; idx < ARRAY_SIZE(snd_msm_controls); idx++) {
++ err = snd_ctl_add(card,
++ snd_ctl_new1(&snd_msm_controls[idx], NULL));
++ if (err < 0)
++ return err;
++ }
++ return 0;
++}
++
++static int msm_soc_dai_init(struct snd_soc_codec *codec)
++{
++
++ int ret = 0;
++ ret = msm_new_mixer(codec->card);
++ if (ret < 0) {
++ printk(KERN_ERR "msm_soc:ALSA MSM Mixer Fail");
++ }
++
++ return ret;
++}
++
++
++static struct snd_soc_dai_link msm_dai = {
++ .name = "ASOC",
++ .stream_name = "ASOC",
++ .codec_dai = &msm_dais[0],
++ .cpu_dai = &msm_dais[1],
++ .init = msm_soc_dai_init,
++};
++
++struct snd_soc_card snd_soc_card_msm = {
++ .name = "msm-audio",
++ .dai_link = &msm_dai,
++ .num_links = 1,
++ .platform = &msm_soc_platform,
++};
++
++/* msm_audio audio subsystem */
++static struct snd_soc_device msm_audio_snd_devdata = {
++ .card = &snd_soc_card_msm,
++ .codec_dev = &soc_codec_dev_msm,
++};
++
++
++static int __init msm_audio_init(void)
++{
++ int ret;
++
++ msm_audio_snd_device = platform_device_alloc("soc-audio", -1);
++ if (!msm_audio_snd_device)
++ return -ENOMEM;
++
++ platform_set_drvdata(msm_audio_snd_device, &msm_audio_snd_devdata);
++ msm_audio_snd_devdata.dev = &msm_audio_snd_device->dev;
++ ret = platform_device_add(msm_audio_snd_device);
++ if (ret) {
++ platform_device_put(msm_audio_snd_device);
++ return ret;
++ }
++ mutex_init(&the_locks.lock);
++ mutex_init(&the_locks.write_lock);
++ mutex_init(&the_locks.read_lock);
++ spin_lock_init(&the_locks.read_dsp_lock);
++ spin_lock_init(&the_locks.write_dsp_lock);
++ spin_lock_init(&the_locks.mixer_lock);
++ init_waitqueue_head(&the_locks.write_wait);
++ init_waitqueue_head(&the_locks.read_wait);
++ msm_vol_ctl.volume = MSM_PLAYBACK_DEFAULT_VOLUME;
++ msm_vol_ctl.pan = MSM_PLAYBACK_DEFAULT_PAN;
++
++ ret = msm_snd_rpc_connect();
++
++ return ret;
++}
++
++static void __exit msm_audio_exit(void)
++{
++ msm_snd_rpc_close();
++ platform_device_unregister(msm_audio_snd_device);
++}
++
++module_init(msm_audio_init);
++module_exit(msm_audio_exit);
++
++MODULE_DESCRIPTION("PCM module");
++MODULE_LICENSE("GPL v2");
+diff --git a/sound/soc/msm/msm7k-pcm.c b/sound/soc/msm/msm7k-pcm.c
+new file mode 100644
+index 0000000..38e8283
+--- /dev/null
++++ b/sound/soc/msm/msm7k-pcm.c
+@@ -0,0 +1,574 @@
++/* linux/sound/soc/msm/msm7k-pcm.c
++ *
++ * Copyright (c) 2008-2009, Code Aurora Forum. All rights reserved.
++ *
++ * All source code in this file is licensed under the following license except
++ * where indicated.
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 as published
++ * by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * See the GNU General Public License for more details.
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, you can find it at http://www.fsf.org.
++ */
++
++
++
++#include <linux/init.h>
++#include <linux/err.h>
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/time.h>
++#include <linux/wait.h>
++#include <linux/platform_device.h>
++#include <sound/core.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++#include <sound/pcm.h>
++#include <sound/initval.h>
++#include <sound/control.h>
++#include <asm/dma.h>
++#include <linux/dma-mapping.h>
++
++#include "msm-pcm.h"
++
++#define SND_DRIVER "snd_msm"
++#define MAX_PCM_DEVICES SNDRV_CARDS
++#define MAX_PCM_SUBSTREAMS 1
++
++struct snd_msm {
++ struct snd_card *card;
++ struct snd_pcm *pcm;
++};
++
++int copy_count;
++
++struct audio_locks the_locks;
++EXPORT_SYMBOL(the_locks);
++struct msm_volume msm_vol_ctl;
++EXPORT_SYMBOL(msm_vol_ctl);
++
++
++static unsigned convert_dsp_samp_index(unsigned index)
++{
++ switch (index) {
++ case 48000:
++ return AUDREC_CMD_SAMP_RATE_INDX_48000;
++ case 44100:
++ return AUDREC_CMD_SAMP_RATE_INDX_44100;
++ case 32000:
++ return AUDREC_CMD_SAMP_RATE_INDX_32000;
++ case 24000:
++ return AUDREC_CMD_SAMP_RATE_INDX_24000;
++ case 22050:
++ return AUDREC_CMD_SAMP_RATE_INDX_22050;
++ case 16000:
++ return AUDREC_CMD_SAMP_RATE_INDX_16000;
++ case 12000:
++ return AUDREC_CMD_SAMP_RATE_INDX_12000;
++ case 11025:
++ return AUDREC_CMD_SAMP_RATE_INDX_11025;
++ case 8000:
++ return AUDREC_CMD_SAMP_RATE_INDX_8000;
++ default:
++ return AUDREC_CMD_SAMP_RATE_INDX_44100;
++ }
++}
++
++static unsigned convert_samp_rate(unsigned hz)
++{
++ switch (hz) {
++ case 48000:
++ return RPC_AUD_DEF_SAMPLE_RATE_48000;
++ case 44100:
++ return RPC_AUD_DEF_SAMPLE_RATE_44100;
++ case 32000:
++ return RPC_AUD_DEF_SAMPLE_RATE_32000;
++ case 24000:
++ return RPC_AUD_DEF_SAMPLE_RATE_24000;
++ case 22050:
++ return RPC_AUD_DEF_SAMPLE_RATE_22050;
++ case 16000:
++ return RPC_AUD_DEF_SAMPLE_RATE_16000;
++ case 12000:
++ return RPC_AUD_DEF_SAMPLE_RATE_12000;
++ case 11025:
++ return RPC_AUD_DEF_SAMPLE_RATE_11025;
++ case 8000:
++ return RPC_AUD_DEF_SAMPLE_RATE_8000;
++ default:
++ return RPC_AUD_DEF_SAMPLE_RATE_44100;
++ }
++}
++
++static struct snd_pcm_hardware msm_pcm_playback_hardware = {
++ .info = SNDRV_PCM_INFO_INTERLEAVED,
++ .formats = USE_FORMATS,
++ .rates = USE_RATE,
++ .rate_min = USE_RATE_MIN,
++ .rate_max = USE_RATE_MAX,
++ .channels_min = USE_CHANNELS_MIN,
++ .channels_max = USE_CHANNELS_MAX,
++ .buffer_bytes_max = MAX_BUFFER_PLAYBACK_SIZE,
++ .period_bytes_min = 64,
++ .period_bytes_max = MAX_PERIOD_SIZE,
++ .periods_min = USE_PERIODS_MIN,
++ .periods_max = USE_PERIODS_MAX,
++ .fifo_size = 0,
++};
++
++static struct snd_pcm_hardware msm_pcm_capture_hardware = {
++ .info = SNDRV_PCM_INFO_INTERLEAVED,
++ .formats = USE_FORMATS,
++ .rates = USE_RATE,
++ .rate_min = USE_RATE_MIN,
++ .rate_max = USE_RATE_MAX,
++ .channels_min = USE_CHANNELS_MIN,
++ .channels_max = USE_CHANNELS_MAX,
++ .buffer_bytes_max = MAX_BUFFER_CAPTURE_SIZE,
++ .period_bytes_min = CAPTURE_SIZE,
++ .period_bytes_max = CAPTURE_SIZE,
++ .periods_min = USE_PERIODS_MIN,
++ .periods_max = USE_PERIODS_MAX,
++ .fifo_size = 0,
++};
++
++/* Conventional and unconventional sample rate supported */
++static unsigned int supported_sample_rates[] = {
++ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000
++};
++
++static struct snd_pcm_hw_constraint_list constraints_sample_rates = {
++ .count = ARRAY_SIZE(supported_sample_rates),
++ .list = supported_sample_rates,
++ .mask = 0,
++};
++
++static void playback_event_handler(void *data)
++{
++ struct msm_audio *prtd = data;
++ snd_pcm_period_elapsed(prtd->playback_substream);
++}
++
++static void capture_event_handler(void *data)
++{
++ struct msm_audio *prtd = data;
++ snd_pcm_period_elapsed(prtd->capture_substream);
++}
++
++static int msm_pcm_playback_prepare(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct msm_audio *prtd = runtime->private_data;
++
++ prtd->pcm_size = snd_pcm_lib_buffer_bytes(substream);
++ prtd->pcm_count = snd_pcm_lib_period_bytes(substream);
++ prtd->pcm_irq_pos = 0;
++ prtd->pcm_buf_pos = 0;
++
++ /* rate and channels are sent to audio driver */
++ prtd->out_sample_rate = runtime->rate;
++ prtd->out_channel_mode = runtime->channels;
++
++ return 0;
++}
++
++static int msm_pcm_capture_prepare(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct msm_audio *prtd = runtime->private_data;
++ struct audmgr_config cfg;
++ int rc;
++
++ prtd->pcm_size = snd_pcm_lib_buffer_bytes(substream);
++ prtd->pcm_count = snd_pcm_lib_period_bytes(substream);
++ prtd->pcm_irq_pos = 0;
++ prtd->pcm_buf_pos = 0;
++
++ /* rate and channels are sent to audio driver */
++ prtd->samp_rate = convert_samp_rate(runtime->rate);
++ prtd->samp_rate_index = convert_dsp_samp_index(runtime->rate);
++ prtd->channel_mode = (runtime->channels - 1);
++ prtd->buffer_size = prtd->channel_mode ? STEREO_DATA_SIZE : \
++ MONO_DATA_SIZE;
++
++ if (prtd->enabled == 1)
++ return 0;
++
++ prtd->type = AUDREC_CMD_TYPE_0_INDEX_WAV;
++
++ cfg.tx_rate = convert_samp_rate(runtime->rate);
++ cfg.rx_rate = RPC_AUD_DEF_SAMPLE_RATE_NONE;
++ cfg.def_method = RPC_AUD_DEF_METHOD_RECORD;
++ cfg.codec = RPC_AUD_DEF_CODEC_PCM;
++ cfg.snd_method = RPC_SND_METHOD_MIDI;
++
++ rc = audmgr_enable(&prtd->audmgr, &cfg);
++ if (rc < 0)
++ return rc;
++
++ if (msm_adsp_enable(prtd->audpre)) {
++ audmgr_disable(&prtd->audmgr);
++ return -ENODEV;
++ }
++ if (msm_adsp_enable(prtd->audrec)) {
++ msm_adsp_disable(prtd->audpre);
++ audmgr_disable(&prtd->audmgr);
++ return -ENODEV;
++ }
++ prtd->enabled = 1;
++ alsa_rec_dsp_enable(prtd, 1);
++
++ return 0;
++}
++
++static int msm_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
++{
++ int ret = 0;
++
++ switch (cmd) {
++ case SNDRV_PCM_TRIGGER_START:
++ case SNDRV_PCM_TRIGGER_RESUME:
++ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
++ break;
++ case SNDRV_PCM_TRIGGER_STOP:
++ case SNDRV_PCM_TRIGGER_SUSPEND:
++ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
++ break;
++ default:
++ ret = -EINVAL;
++ }
++
++ return ret;
++}
++
++static snd_pcm_uframes_t
++msm_pcm_playback_pointer(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct msm_audio *prtd = runtime->private_data;
++
++ if (prtd->pcm_irq_pos == prtd->pcm_size)
++ prtd->pcm_irq_pos = 0;
++ return bytes_to_frames(runtime, (prtd->pcm_irq_pos));
++}
++
++static int msm_pcm_capture_copy(struct snd_pcm_substream *substream,
++ int channel, snd_pcm_uframes_t hwoff, void __user *buf,
++ snd_pcm_uframes_t frames)
++{
++ int rc = 0, rc1 = 0, rc2 = 0;
++ int fbytes = 0;
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct msm_audio *prtd = substream->runtime->private_data;
++
++ int monofbytes = 0;
++ char *bufferp = NULL;
++
++ fbytes = frames_to_bytes(runtime, frames);
++ monofbytes = fbytes / 2;
++ if (runtime->channels == 2) {
++ rc = alsa_buffer_read(prtd, buf, fbytes, NULL);
++ } else {
++ bufferp = buf;
++ rc1 = alsa_buffer_read(prtd, bufferp, monofbytes, NULL);
++ bufferp = buf + monofbytes ;
++ rc2 = alsa_buffer_read(prtd, bufferp, monofbytes, NULL);
++ rc = rc1 + rc2;
++ }
++ prtd->pcm_buf_pos += fbytes;
++ return rc;
++}
++
++static snd_pcm_uframes_t
++msm_pcm_capture_pointer(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct msm_audio *prtd = runtime->private_data;
++
++ return bytes_to_frames(runtime, (prtd->pcm_irq_pos));
++}
++
++static int msm_pcm_capture_close(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct msm_audio *prtd = runtime->private_data;
++
++ alsa_audrec_disable(prtd);
++ audmgr_close(&prtd->audmgr);
++ msm_adsp_put(prtd->audrec);
++ msm_adsp_put(prtd->audpre);
++ kfree(prtd);
++
++ return 0;
++}
++
++struct msm_audio_event_callbacks snd_msm_audio_ops = {
++ .playback = playback_event_handler,
++ .capture = capture_event_handler,
++};
++
++static int msm_pcm_open(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct msm_audio *prtd;
++ int ret = 0;
++
++ prtd = kzalloc(sizeof(struct msm_audio), GFP_KERNEL);
++ if (prtd == NULL) {
++ ret = -ENOMEM;
++ return ret;
++ }
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
++ msm_vol_ctl.update = 1; /* Update Volume, with Cached value */
++ runtime->hw = msm_pcm_playback_hardware;
++ prtd->dir = SNDRV_PCM_STREAM_PLAYBACK;
++ prtd->playback_substream = substream;
++ } else if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) {
++ runtime->hw = msm_pcm_capture_hardware;
++ prtd->dir = SNDRV_PCM_STREAM_CAPTURE;
++ prtd->capture_substream = substream;
++ }
++ ret = snd_pcm_hw_constraint_list(runtime, 0,
++ SNDRV_PCM_HW_PARAM_RATE,
++ &constraints_sample_rates);
++ if (ret < 0)
++ goto out;
++ /* Ensure that buffer size is a multiple of period size */
++ ret = snd_pcm_hw_constraint_integer(runtime,
++ SNDRV_PCM_HW_PARAM_PERIODS);
++ if (ret < 0)
++ goto out;
++
++ prtd->ops = &snd_msm_audio_ops;
++ prtd->out[0].used = BUF_INVALID_LEN;
++ prtd->out_head = 1; /* point to second buffer on startup */
++ runtime->private_data = prtd;
++
++ ret = alsa_adsp_configure(prtd);
++ if (ret)
++ goto out;
++ copy_count = 0;
++ return 0;
++
++ out:
++ kfree(prtd);
++ return ret;
++}
++
++static int msm_pcm_playback_copy(struct snd_pcm_substream *substream, int a,
++ snd_pcm_uframes_t hwoff, void __user *buf, snd_pcm_uframes_t frames)
++{
++ int rc = 1;
++ int fbytes = 0;
++
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct msm_audio *prtd = runtime->private_data;
++
++ fbytes = frames_to_bytes(runtime, frames);
++ rc = alsa_send_buffer(prtd, buf, fbytes, NULL);
++ ++copy_count;
++ prtd->pcm_buf_pos += fbytes;
++ if (copy_count == 1) {
++ mutex_lock(&the_locks.lock);
++ alsa_audio_configure(prtd);
++ mutex_unlock(&the_locks.lock);
++ }
++ if ((prtd->running) && (msm_vol_ctl.update)) {
++ rc = msm_audio_volume_update(PCMPLAYBACK_DECODERID,
++ msm_vol_ctl.volume, msm_vol_ctl.pan);
++ msm_vol_ctl.update = 0;
++ }
++
++ return rc;
++}
++
++static int msm_pcm_playback_close(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct msm_audio *prtd = runtime->private_data;
++
++ alsa_audio_disable(prtd);
++ audmgr_close(&prtd->audmgr);
++ kfree(prtd);
++
++ return 0;
++}
++
++
++static int msm_pcm_copy(struct snd_pcm_substream *substream, int a,
++ snd_pcm_uframes_t hwoff, void __user *buf, snd_pcm_uframes_t frames)
++{
++ int ret = 0;
++
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
++ ret = msm_pcm_playback_copy(substream, a, hwoff, buf, frames);
++ else if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ ret = msm_pcm_capture_copy(substream, a, hwoff, buf, frames);
++ return ret;
++}
++
++static int msm_pcm_close(struct snd_pcm_substream *substream)
++{
++ int ret = 0;
++
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
++ ret = msm_pcm_playback_close(substream);
++ else if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ ret = msm_pcm_capture_close(substream);
++ return ret;
++}
++static int msm_pcm_prepare(struct snd_pcm_substream *substream)
++{
++ int ret = 0;
++
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
++ ret = msm_pcm_playback_prepare(substream);
++ else if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ ret = msm_pcm_capture_prepare(substream);
++ return ret;
++}
++
++static snd_pcm_uframes_t msm_pcm_pointer(struct snd_pcm_substream *substream)
++{
++ snd_pcm_uframes_t ret = 0;
++
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
++ ret = msm_pcm_playback_pointer(substream);
++ else if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ ret = msm_pcm_capture_pointer(substream);
++ return ret;
++}
++
++int msm_pcm_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++
++ if (substream->pcm->device & 1) {
++ runtime->hw.info &= ~SNDRV_PCM_INFO_INTERLEAVED;
++ runtime->hw.info |= SNDRV_PCM_INFO_NONINTERLEAVED;
++ }
++ return 0;
++
++}
++
++static struct snd_pcm_ops msm_pcm_ops = {
++ .open = msm_pcm_open,
++ .copy = msm_pcm_copy,
++ .hw_params = msm_pcm_hw_params,
++ .close = msm_pcm_close,
++ .ioctl = snd_pcm_lib_ioctl,
++ .prepare = msm_pcm_prepare,
++ .trigger = msm_pcm_trigger,
++ .pointer = msm_pcm_pointer,
++};
++
++
++
++static int msm_pcm_remove(struct platform_device *devptr)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(devptr);
++ snd_soc_free_pcms(socdev);
++ kfree(socdev->codec);
++ platform_set_drvdata(devptr, NULL);
++ return 0;
++}
++
++static int pcm_preallocate_dma_buffer(struct snd_pcm *pcm,
++ int stream)
++{
++ struct snd_pcm_substream *substream = pcm->streams[stream].substream;
++ struct snd_dma_buffer *buf = &substream->dma_buffer;
++ size_t size;
++ if (!stream)
++ size = PLAYBACK_DMASZ;
++ else
++ size = CAPTURE_DMASZ;
++
++ buf->dev.type = SNDRV_DMA_TYPE_DEV;
++ buf->dev.dev = pcm->card->dev;
++ buf->private_data = NULL;
++ buf->area = dma_alloc_coherent(pcm->card->dev, size,
++ &buf->addr, GFP_KERNEL);
++ if (!buf->area)
++ return -ENOMEM;
++
++ buf->bytes = size;
++ return 0;
++}
++
++static void msm_pcm_free_dma_buffers(struct snd_pcm *pcm)
++{
++ struct snd_pcm_substream *substream;
++ struct snd_dma_buffer *buf;
++ int stream;
++
++ for (stream = 0; stream < 2; stream++) {
++ substream = pcm->streams[stream].substream;
++ if (!substream)
++ continue;
++
++ buf = &substream->dma_buffer;
++ if (!buf->area)
++ continue;
++
++ dma_free_coherent(pcm->card->dev, buf->bytes,
++ buf->area, buf->addr);
++ buf->area = NULL;
++ }
++}
++
++static int msm_pcm_new(struct snd_card *card,
++ struct snd_soc_dai *codec_dai,
++ struct snd_pcm *pcm)
++{
++ int ret;
++ if (!card->dev->coherent_dma_mask)
++ card->dev->coherent_dma_mask = DMA_32BIT_MASK;
++
++ if (codec_dai->playback.channels_min) {
++ ret = pcm_preallocate_dma_buffer(pcm,
++ SNDRV_PCM_STREAM_PLAYBACK);
++ if (ret)
++ return ret;
++ }
++
++ if (codec_dai->capture.channels_min) {
++ ret = pcm_preallocate_dma_buffer(pcm,
++ SNDRV_PCM_STREAM_CAPTURE);
++ if (ret)
++ msm_pcm_free_dma_buffers(pcm);
++ }
++ return ret;
++}
++
++struct snd_soc_platform msm_soc_platform = {
++ .name = "msm-audio",
++ .remove = msm_pcm_remove,
++ .pcm_ops = &msm_pcm_ops,
++ .pcm_new = msm_pcm_new,
++ .pcm_free = msm_pcm_free_dma_buffers,
++};
++EXPORT_SYMBOL(msm_soc_platform);
++
++static int __init msm_soc_platform_init(void)
++{
++ return snd_soc_register_platform(&msm_soc_platform);
++}
++module_init(msm_soc_platform_init);
++
++static void __exit msm_soc_platform_exit(void)
++{
++ snd_soc_unregister_platform(&msm_soc_platform);
++}
++module_exit(msm_soc_platform_exit);
++
++MODULE_DESCRIPTION("PCM module platform driver");
++MODULE_LICENSE("GPL v2");
+diff --git a/sound/soc/msm/qsd-pcm.h b/sound/soc/msm/qsd-pcm.h
+new file mode 100644
+index 0000000..6d919c4
+--- /dev/null
++++ b/sound/soc/msm/qsd-pcm.h
+@@ -0,0 +1,97 @@
++/* linux/sound/soc/msm/qsd-pcm.h
++ *
++ * Copyright (C) 2008 Google, Inc.
++ * Copyright (C) 2008 HTC Corporation
++ * Copyright (c) 2008-2009, Code Aurora Forum. All rights reserved.
++ *
++ * This software is licensed under the terms of the GNU General Public
++ * License version 2, as published by the Free Software Foundation, and
++ * may be copied, distributed, and modified under those terms.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * See the GNU General Public License for more details.
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, you can find it at http://www.fsf.org.
++ */
++
++#ifndef _QSD_PCM_H
++#define _QSD_PCM_H
++
++#include <linux/msm_audio.h>
++
++#include <mach/qdsp6/msm8k_ard.h>
++#include <mach/qdsp6/msm8k_cad_write_pcm_format.h>
++#include <mach/qdsp6/msm8k_cad_devices.h>
++#include <mach/qdsp6/msm8k_cad.h>
++#include <mach/qdsp6/msm8k_cad_ioctl.h>
++#include <mach/qdsp6/msm8k_cad_volume.h>
++
++extern void register_cb(void *);
++
++#define USE_FORMATS (SNDRV_PCM_FMTBIT_S16_LE)
++#define USE_CHANNELS_MIN 1
++#define USE_CHANNELS_MAX 2
++#define USE_RATE (SNDRV_PCM_RATE_8000_48000 \
++ | SNDRV_PCM_RATE_CONTINUOUS)
++#define USE_RATE_MIN 8000
++#define USE_RATE_MAX 48000
++#define MAX_BUFFER_SIZE (4096*4)
++#define MAX_PERIOD_SIZE 4096
++#define MIN_PERIOD_SIZE 40
++#define USE_PERIODS_MAX 1024
++#define USE_PERIODS_MIN 1
++
++struct audio_locks {
++ struct mutex lock;
++ struct mutex mixer_lock;
++};
++
++struct qsd_ctl {
++ uint16_t tx_volume; /* Volume parameter */
++ uint16_t rx_volume; /* Volume parameter */
++ int32_t strm_volume; /* stream volume*/
++ uint16_t update;
++ int16_t pan;
++ uint16_t capture_device; /* Device parameter */
++ uint16_t playback_device; /* Device parameter */
++ uint16_t tx_mute; /* Mute parameter */
++ uint16_t rx_mute; /* Mute parameter */
++};
++
++extern struct audio_locks the_locks;
++extern struct snd_pcm_ops qsd_pcm_ops;
++
++struct qsd_audio {
++ struct snd_pcm_substream *playback_substream;
++ struct snd_pcm_substream *capture_substream;
++
++ /* data allocated for various buffers */
++ char *data;
++ dma_addr_t phys;
++
++ unsigned int pcm_size;
++ unsigned int pcm_count;
++ unsigned int pcm_irq_pos; /* IRQ position */
++ unsigned int pcm_buf_pos; /* position in buffer */
++
++ int dir;
++ int opened;
++ int enabled;
++ int running;
++ int stopped; /* set when stopped, cleared on flush */
++
++ struct cad_open_struct_type cos;
++ uint32_t cad_w_handle;
++ struct cad_buf_struct_type cbs;
++};
++
++extern struct qsd_ctl qsd_glb_ctl;
++
++extern struct snd_soc_dai msm_dais[2];
++extern struct snd_soc_codec_device soc_codec_dev_msm;
++extern struct snd_soc_platform qsd_soc_platform;
++
++#endif /*_QSD_PCM_H*/
+diff --git a/sound/soc/msm/qsd8k-pcm.c b/sound/soc/msm/qsd8k-pcm.c
+new file mode 100644
+index 0000000..afba42d
+--- /dev/null
++++ b/sound/soc/msm/qsd8k-pcm.c
+@@ -0,0 +1,618 @@
++/* linux/sound/soc/msm/qsd8k-pcm.c
++ *
++ * Copyright (c) 2009, Code Aurora Forum. All rights reserved.
++ *
++ * All source code in this file is licensed under the following license except
++ * where indicated.
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 as published
++ * by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * See the GNU General Public License for more details.
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, you can find it at http://www.fsf.org.
++ */
++
++#include <linux/init.h>
++#include <linux/err.h>
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/time.h>
++#include <linux/wait.h>
++#include <linux/platform_device.h>
++#include <sound/core.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++#include <sound/pcm.h>
++#include <sound/initval.h>
++#include <sound/control.h>
++#include <asm/dma.h>
++#include <linux/dma-mapping.h>
++
++#include "qsd-pcm.h"
++
++struct snd_pcm_runtime *runtime_dummy;
++static int rc = 1;
++
++#define SND_DRIVER "snd_qsd"
++#define MAX_PCM_DEVICES SNDRV_CARDS
++#define MAX_PCM_SUBSTREAMS 1
++
++struct snd_qsd {
++ struct snd_card *card;
++ struct snd_pcm *pcm;
++};
++
++struct qsd_ctl qsd_glb_ctl;
++EXPORT_SYMBOL(qsd_glb_ctl);
++struct audio_locks the_locks;
++EXPORT_SYMBOL(the_locks);
++
++static unsigned convert_dsp_samp_index(unsigned index)
++{
++ switch (index) {
++ case 48000:
++ return 3;
++ case 44100:
++ return 4;
++ case 32000:
++ return 5;
++ case 24000:
++ return 6;
++ case 22050:
++ return 7;
++ case 16000:
++ return 8;
++ case 12000:
++ return 9;
++ case 11025:
++ return 10;
++ case 8000:
++ return 11;
++ default:
++ return 3;
++ }
++}
++
++static struct snd_pcm_hardware qsd_pcm_playback_hardware = {
++ .info = SNDRV_PCM_INFO_INTERLEAVED,
++ .formats = USE_FORMATS,
++ .rates = USE_RATE,
++ .rate_min = USE_RATE_MIN,
++ .rate_max = USE_RATE_MAX,
++ .channels_min = USE_CHANNELS_MIN,
++ .channels_max = USE_CHANNELS_MAX,
++ .buffer_bytes_max = MAX_BUFFER_SIZE,
++ .period_bytes_min = MIN_PERIOD_SIZE,
++ .period_bytes_max = MAX_PERIOD_SIZE,
++ .periods_min = USE_PERIODS_MIN,
++ .periods_max = USE_PERIODS_MAX,
++ .fifo_size = 0,
++};
++
++static struct snd_pcm_hardware qsd_pcm_capture_hardware = {
++ .info = SNDRV_PCM_INFO_INTERLEAVED,
++ .formats = USE_FORMATS,
++ .rates = USE_RATE,
++ .rate_min = USE_RATE_MIN,
++ .rate_max = USE_RATE_MAX,
++ .channels_min = USE_CHANNELS_MIN,
++ .channels_max = USE_CHANNELS_MAX,
++ .buffer_bytes_max = MAX_BUFFER_SIZE,
++ .period_bytes_min = MIN_PERIOD_SIZE,
++ .period_bytes_max = MAX_PERIOD_SIZE,
++ .periods_min = USE_PERIODS_MIN,
++ .periods_max = USE_PERIODS_MAX,
++ .fifo_size = 0,
++};
++
++int qsd_audio_volume_update(struct qsd_audio *prtd)
++{
++
++ int rc = 0;
++ struct cad_flt_cfg_strm_vol cad_strm_volume;
++ struct cad_filter_struct flt;
++
++ printk(KERN_INFO "qsd_audio_volume_update: updating volume");
++ memset(&cad_strm_volume, 0, sizeof(struct cad_flt_cfg_strm_vol));
++ memset(&flt, 0, sizeof(struct cad_filter_struct));
++
++ cad_strm_volume.volume = qsd_glb_ctl.strm_volume;
++ flt.filter_type = CAD_DEVICE_FILTER_TYPE_VOL;
++ flt.format_block = &cad_strm_volume;
++ flt.cmd = CAD_FILTER_CONFIG_STREAM_VOLUME;
++ flt.format_block_len = sizeof(struct cad_flt_cfg_strm_vol);
++
++ rc = cad_ioctl(prtd->cad_w_handle,
++ CAD_IOCTL_CMD_SET_STREAM_FILTER_CONFIG,
++ &flt,
++ sizeof(struct cad_filter_struct));
++ if (rc)
++ printk(KERN_ERR "cad_ioctl() set volume failed\n");
++ return rc;
++}
++
++static int qsd_pcm_playback_prepare(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct qsd_audio *prtd = runtime->private_data;
++
++ struct cad_stream_device_struct_type cad_stream_dev;
++ struct cad_stream_info_struct_type cad_stream_info;
++ struct cad_write_pcm_format_struct_type cad_write_pcm_fmt;
++ u32 stream_device[1];
++
++ if (prtd->enabled)
++ return 0;
++
++ prtd->pcm_size = snd_pcm_lib_buffer_bytes(substream);
++ prtd->pcm_count = snd_pcm_lib_period_bytes(substream);
++ prtd->pcm_irq_pos = 0;
++ prtd->pcm_buf_pos = 0;
++
++ cad_stream_info.app_type = CAD_STREAM_APP_PLAYBACK;
++ cad_stream_info.priority = 0;
++ cad_stream_info.buf_mem_type = CAD_STREAM_BUF_MEM_HEAP;
++ cad_stream_info.ses_buf_max_size = prtd->pcm_count;
++
++ mutex_lock(&the_locks.lock);
++ rc = cad_ioctl(prtd->cad_w_handle, CAD_IOCTL_CMD_SET_STREAM_INFO,
++ &cad_stream_info,
++ sizeof(struct cad_stream_info_struct_type));
++ mutex_unlock(&the_locks.lock);
++ if (rc)
++ printk(KERN_ERR "cad ioctl failed\n");
++
++ stream_device[0] = CAD_HW_DEVICE_ID_DEFAULT_RX ;
++ cad_stream_dev.device = (u32 *) &stream_device[0];
++ cad_stream_dev.device_len = 1;
++ mutex_lock(&the_locks.lock);
++
++ rc = cad_ioctl(prtd->cad_w_handle, CAD_IOCTL_CMD_SET_STREAM_DEVICE,
++ &cad_stream_dev,
++ sizeof(struct cad_stream_device_struct_type));
++ mutex_unlock(&the_locks.lock);
++ if (rc)
++ printk(KERN_ERR "cad ioctl failed\n");
++
++ cad_write_pcm_fmt.us_ver_id = CAD_WRITE_PCM_VERSION_10;
++ cad_write_pcm_fmt.pcm.us_sample_rate =
++ convert_dsp_samp_index(runtime->rate);
++ cad_write_pcm_fmt.pcm.us_channel_config = runtime->channels;
++ cad_write_pcm_fmt.pcm.us_width = 1;
++ cad_write_pcm_fmt.pcm.us_sign = 0;
++
++ mutex_lock(&the_locks.lock);
++ rc = cad_ioctl(prtd->cad_w_handle, CAD_IOCTL_CMD_SET_STREAM_CONFIG,
++ &cad_write_pcm_fmt,
++ sizeof(struct cad_write_pcm_format_struct_type));
++ mutex_unlock(&the_locks.lock);
++ if (rc)
++ printk(KERN_ERR "cad ioctl failed\n");
++
++ mutex_lock(&the_locks.lock);
++ rc = cad_ioctl(prtd->cad_w_handle, CAD_IOCTL_CMD_STREAM_START,
++ NULL, 0);
++ mutex_unlock(&the_locks.lock);
++ if (rc)
++ printk(KERN_ERR "cad ioctl failed\n");
++ else {
++ prtd->enabled = 1;
++ mutex_lock(&the_locks.mixer_lock);
++ qsd_glb_ctl.update = 1; /* Update Volume, with Cached value */
++ mutex_unlock(&the_locks.mixer_lock);
++ }
++ return rc;
++}
++
++static int qsd_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
++{
++ int ret = 0;
++
++ switch (cmd) {
++ case SNDRV_PCM_TRIGGER_START:
++ case SNDRV_PCM_TRIGGER_RESUME:
++ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
++ break;
++ case SNDRV_PCM_TRIGGER_STOP:
++ case SNDRV_PCM_TRIGGER_SUSPEND:
++ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
++ break;
++ default:
++ ret = -EINVAL;
++ }
++
++ return ret;
++}
++
++static snd_pcm_uframes_t
++qsd_pcm_playback_pointer(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct qsd_audio *prtd = runtime->private_data;
++
++ if (prtd->pcm_irq_pos == prtd->pcm_size)
++ prtd->pcm_irq_pos = 0;
++ return bytes_to_frames(runtime, (prtd->pcm_irq_pos));
++}
++
++void alsa_event_cb_playback(void)
++{
++ if (runtime_dummy) {
++ struct qsd_audio *prtd = runtime_dummy->private_data;
++ prtd->pcm_irq_pos += prtd->pcm_count;
++ snd_pcm_period_elapsed(prtd->playback_substream);
++ }
++}
++void alsa_event_cb_capture(u32 event, void *evt_packet,
++ u32 evt_packet_len, void *client_data)
++{
++ struct qsd_audio *prtd = client_data;
++ prtd->pcm_irq_pos += prtd->pcm_count;
++ snd_pcm_period_elapsed(prtd->capture_substream);
++}
++
++
++static int qsd_pcm_open(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct qsd_audio *prtd;
++ struct cad_event_struct_type alsa_event;
++ int ret = 0;
++
++ prtd = kzalloc(sizeof(struct qsd_audio), GFP_KERNEL);
++ if (prtd == NULL) {
++ ret = -ENOMEM;
++ return ret;
++ }
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
++ runtime_dummy = runtime;
++ printk(KERN_INFO "Stream = SNDRV_PCM_STREAM_PLAYBACK\n");
++ runtime->hw = qsd_pcm_playback_hardware;
++ prtd->dir = SNDRV_PCM_STREAM_PLAYBACK;
++ prtd->playback_substream = substream;
++ prtd->cos.op_code = CAD_OPEN_OP_WRITE;
++ } else {
++ printk(KERN_INFO "Stream = SNDRV_PCM_STREAM_CAPTURE\n");
++ runtime->hw = qsd_pcm_capture_hardware;
++ prtd->dir = SNDRV_PCM_STREAM_CAPTURE;
++ prtd->capture_substream = substream;
++ prtd->cos.op_code = CAD_OPEN_OP_READ;
++ }
++
++ /* Ensure that buffer size is a multiple of period size */
++ ret = snd_pcm_hw_constraint_integer(runtime,
++ SNDRV_PCM_HW_PARAM_PERIODS);
++ if (ret < 0) {
++ kfree(prtd);
++ return ret;
++ }
++
++ runtime->private_data = prtd;
++
++ prtd->cos.format = CAD_FORMAT_PCM;
++
++ mutex_lock(&the_locks.lock);
++ prtd->cad_w_handle = cad_open(&prtd->cos);
++ mutex_unlock(&the_locks.lock);
++
++ mutex_lock(&the_locks.lock);
++ if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) {
++ alsa_event.callback = &alsa_event_cb_capture;
++ alsa_event.client_data = prtd;
++
++ ret = cad_ioctl(prtd->cad_w_handle,
++ CAD_IOCTL_CMD_SET_STREAM_EVENT_LSTR,
++ &alsa_event, sizeof(struct cad_event_struct_type));
++ if (ret) {
++ mutex_unlock(&the_locks.lock);
++ cad_close(prtd->cad_w_handle);
++ kfree(prtd);
++ return ret;
++ }
++ } else
++ register_cb(&alsa_event_cb_playback);
++ mutex_unlock(&the_locks.lock);
++ prtd->enabled = 0;
++
++ return 0;
++}
++
++static int qsd_pcm_playback_copy(struct snd_pcm_substream *substream, int a,
++ snd_pcm_uframes_t hwoff, void __user *buf,
++ snd_pcm_uframes_t frames)
++{
++ int fbytes = 0;
++ size_t xfer;
++ int rc;
++
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct qsd_audio *prtd = runtime->private_data;
++
++ fbytes = frames_to_bytes(runtime, frames);
++ prtd->cbs.buffer = (void *)buf;
++ prtd->cbs.phys_addr = 0;
++ prtd->cbs.max_size = fbytes;
++ prtd->cbs.actual_size = fbytes;
++
++ prtd->pcm_buf_pos += fbytes;
++ mutex_lock(&the_locks.lock);
++ xfer = cad_write(prtd->cad_w_handle, &prtd->cbs);
++ mutex_unlock(&the_locks.lock);
++
++ mutex_lock(&the_locks.mixer_lock);
++ if (qsd_glb_ctl.update) {
++ rc = qsd_audio_volume_update(prtd);
++ qsd_glb_ctl.update = 0;
++ }
++ mutex_unlock(&the_locks.mixer_lock);
++
++ return 0;
++}
++
++static int qsd_pcm_playback_close(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct qsd_audio *prtd = runtime->private_data;
++
++ mutex_lock(&the_locks.lock);
++ cad_close(prtd->cad_w_handle);
++ mutex_unlock(&the_locks.lock);
++ prtd->enabled = 0;
++
++ /*
++ * TODO: Deregister the async callback handler.
++ * Currently cad provides no interface to do so.
++ */
++ register_cb(NULL);
++ kfree(prtd);
++
++ return 0;
++}
++
++static int qsd_pcm_capture_copy(struct snd_pcm_substream *substream, int a,
++ snd_pcm_uframes_t hwoff, void __user *buf,
++ snd_pcm_uframes_t frames)
++{
++ int fbytes = 0;
++ size_t xfer;
++ int rc = 0;
++
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct qsd_audio *prtd = runtime->private_data;
++
++ fbytes = frames_to_bytes(runtime, frames);
++ fbytes = fbytes;
++
++ prtd->cbs.buffer = (void *)buf;
++ prtd->cbs.phys_addr = 0;
++ prtd->cbs.max_size = fbytes;
++ prtd->cbs.actual_size = fbytes;
++
++ mutex_lock(&the_locks.lock);
++ xfer = cad_read(prtd->cad_w_handle, &prtd->cbs);
++ mutex_unlock(&the_locks.lock);
++
++ prtd->pcm_buf_pos += fbytes;
++ mutex_lock(&the_locks.mixer_lock);
++ if (qsd_glb_ctl.update) {
++ rc = qsd_audio_volume_update(prtd);
++ qsd_glb_ctl.update = 0;
++ }
++ mutex_unlock(&the_locks.mixer_lock);
++
++ if (xfer < fbytes)
++ return -EIO;
++
++ return rc;
++}
++
++static snd_pcm_uframes_t
++qsd_pcm_capture_pointer(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct qsd_audio *prtd = runtime->private_data;
++
++ return bytes_to_frames(runtime, (prtd->pcm_irq_pos));
++}
++
++static int qsd_pcm_capture_close(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct qsd_audio *prtd = runtime->private_data;
++
++ mutex_lock(&the_locks.lock);
++ cad_close(prtd->cad_w_handle);
++ mutex_unlock(&the_locks.lock);
++
++ /*
++ * TODO: Deregister the async callback handler.
++ * Currently cad provides no interface to do so.
++ */
++ kfree(prtd);
++
++ return 0;
++}
++
++static int qsd_pcm_capture_prepare(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct qsd_audio *prtd = runtime->private_data;
++ int rc = 0;
++
++ struct cad_stream_device_struct_type cad_stream_dev;
++ struct cad_stream_info_struct_type cad_stream_info;
++ struct cad_write_pcm_format_struct_type cad_write_pcm_fmt;
++ u32 stream_device[1];
++
++ prtd->pcm_size = snd_pcm_lib_buffer_bytes(substream);
++ prtd->pcm_count = snd_pcm_lib_period_bytes(substream);
++ prtd->pcm_irq_pos = 0;
++ prtd->pcm_buf_pos = 0;
++
++ cad_stream_info.app_type = CAD_STREAM_APP_RECORD;
++ cad_stream_info.priority = 0;
++ cad_stream_info.buf_mem_type = CAD_STREAM_BUF_MEM_HEAP;
++ cad_stream_info.ses_buf_max_size = prtd->pcm_count;
++
++ if (prtd->enabled)
++ return 0;
++
++ mutex_lock(&the_locks.lock);
++ rc = cad_ioctl(prtd->cad_w_handle, CAD_IOCTL_CMD_SET_STREAM_INFO,
++ &cad_stream_info,
++ sizeof(struct cad_stream_info_struct_type));
++ if (rc) {
++ mutex_unlock(&the_locks.lock);
++ return rc;
++ }
++
++ stream_device[0] = CAD_HW_DEVICE_ID_DEFAULT_TX ;
++ cad_stream_dev.device = (u32 *) &stream_device[0];
++ cad_stream_dev.device_len = 1;
++
++ rc = cad_ioctl(prtd->cad_w_handle, CAD_IOCTL_CMD_SET_STREAM_DEVICE,
++ &cad_stream_dev,
++ sizeof(struct cad_stream_device_struct_type));
++ if (rc) {
++ mutex_unlock(&the_locks.lock);
++ return rc;
++ }
++
++ cad_write_pcm_fmt.us_ver_id = CAD_WRITE_PCM_VERSION_10;
++ cad_write_pcm_fmt.pcm.us_sample_rate =
++ convert_dsp_samp_index(runtime->rate);
++ cad_write_pcm_fmt.pcm.us_channel_config = runtime->channels;
++ cad_write_pcm_fmt.pcm.us_width = 1;
++ cad_write_pcm_fmt.pcm.us_sign = 0;
++
++ rc = cad_ioctl(prtd->cad_w_handle, CAD_IOCTL_CMD_SET_STREAM_CONFIG,
++ &cad_write_pcm_fmt,
++ sizeof(struct cad_write_pcm_format_struct_type));
++ if (rc) {
++ mutex_unlock(&the_locks.lock);
++ return rc;
++ }
++ rc = cad_ioctl(prtd->cad_w_handle, CAD_IOCTL_CMD_STREAM_START,
++ NULL, 0);
++ mutex_unlock(&the_locks.lock);
++ if (!rc)
++ prtd->enabled = 1;
++ return rc;
++}
++
++
++static int qsd_pcm_copy(struct snd_pcm_substream *substream, int a,
++ snd_pcm_uframes_t hwoff, void __user *buf,
++ snd_pcm_uframes_t frames)
++{
++ int ret = 0;
++
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
++ ret = qsd_pcm_playback_copy(substream, a, hwoff, buf, frames);
++ else if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ ret = qsd_pcm_capture_copy(substream, a, hwoff, buf, frames);
++ return ret;
++}
++
++static int qsd_pcm_close(struct snd_pcm_substream *substream)
++{
++ int ret = 0;
++
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
++ ret = qsd_pcm_playback_close(substream);
++ else if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ ret = qsd_pcm_capture_close(substream);
++ return ret;
++}
++static int qsd_pcm_prepare(struct snd_pcm_substream *substream)
++{
++ int ret = 0;
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
++ ret = qsd_pcm_playback_prepare(substream);
++ else if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ ret = qsd_pcm_capture_prepare(substream);
++ return ret;
++}
++
++static snd_pcm_uframes_t qsd_pcm_pointer(struct snd_pcm_substream *substream)
++{
++ snd_pcm_uframes_t ret = 0;
++
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
++ ret = qsd_pcm_playback_pointer(substream);
++ else if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
++ ret = qsd_pcm_capture_pointer(substream);
++ return ret;
++}
++
++int qsd_pcm_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++
++ if (substream->pcm->device & 1) {
++ runtime->hw.info &= ~SNDRV_PCM_INFO_INTERLEAVED;
++ runtime->hw.info |= SNDRV_PCM_INFO_NONINTERLEAVED;
++ }
++ return 0;
++}
++
++struct snd_pcm_ops qsd_pcm_ops = {
++ .open = qsd_pcm_open,
++ .copy = qsd_pcm_copy,
++ .hw_params = qsd_pcm_hw_params,
++ .close = qsd_pcm_close,
++ .ioctl = snd_pcm_lib_ioctl,
++ .prepare = qsd_pcm_prepare,
++ .trigger = qsd_pcm_trigger,
++ .pointer = qsd_pcm_pointer,
++};
++EXPORT_SYMBOL_GPL(qsd_pcm_ops);
++
++static int qsd_pcm_remove(struct platform_device *devptr)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(devptr);
++ snd_soc_free_pcms(socdev);
++ kfree(socdev->codec);
++ platform_set_drvdata(devptr, NULL);
++ return 0;
++}
++
++static int qsd_pcm_new(struct snd_card *card,
++ struct snd_soc_dai *codec_dai,
++ struct snd_pcm *pcm)
++{
++ if (!card->dev->coherent_dma_mask)
++ card->dev->coherent_dma_mask = DMA_32BIT_MASK;
++
++ return 0;
++}
++
++struct snd_soc_platform qsd_soc_platform = {
++ .name = "qsd-audio",
++ .remove = qsd_pcm_remove,
++ .pcm_ops = &qsd_pcm_ops,
++ .pcm_new = qsd_pcm_new,
++};
++EXPORT_SYMBOL(qsd_soc_platform);
++
++static int __init qsd_soc_platform_init(void)
++{
++ return snd_soc_register_platform(&qsd_soc_platform);
++}
++module_init(qsd_soc_platform_init);
++
++static void __exit qsd_soc_platform_exit(void)
++{
++ snd_soc_unregister_platform(&qsd_soc_platform);
++}
++module_exit(qsd_soc_platform_exit);
++
++MODULE_DESCRIPTION("PCM module platform driver");
++MODULE_LICENSE("GPL v2");
+diff --git a/sound/soc/msm/qsd8k.c b/sound/soc/msm/qsd8k.c
+new file mode 100644
+index 0000000..979fde7
+--- /dev/null
++++ b/sound/soc/msm/qsd8k.c
+@@ -0,0 +1,382 @@
++/* linux/sound/soc/msm/qsd8k.c
++ *
++ * Copyright (c) 2009, Code Aurora Forum. All rights reserved.
++ *
++ * All source code in this file is licensed under the following license except
++ * where indicated.
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 as published
++ * by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
++ *
++ * See the GNU General Public License for more details.
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, you can find it at http://www.fsf.org.
++ */
++
++#include <linux/init.h>
++#include <linux/err.h>
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/time.h>
++#include <linux/wait.h>
++#include <linux/platform_device.h>
++#include <sound/core.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++#include <sound/pcm.h>
++#include <sound/initval.h>
++#include <sound/control.h>
++#include <asm/dma.h>
++#include <linux/dma-mapping.h>
++
++#include "qsd-pcm.h"
++
++static struct platform_device *qsd_audio_snd_device;
++
++static int snd_qsd_route_info(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_info *uinfo)
++{
++ uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
++ uinfo->count = 1; /* Device */
++ uinfo->value.integer.min = CAD_HW_DEVICE_ID_HANDSET_MIC;
++ uinfo->value.integer.max = CAD_HW_DEVICE_ID_DEFAULT_RX;
++ return 0;
++}
++
++static int snd_qsd_route_get(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ ucontrol->value.integer.value[0] =
++ (uint32_t) qsd_glb_ctl.playback_device;
++ ucontrol->value.integer.value[1] =
++ (uint32_t) qsd_glb_ctl.capture_device;
++ return 0;
++}
++
++static int snd_get_device_type(int device)
++{
++ switch (device) {
++ case CAD_HW_DEVICE_ID_HANDSET_MIC:
++ case CAD_HW_DEVICE_ID_HEADSET_MIC:
++ case CAD_HW_DEVICE_ID_BT_SCO_MIC:
++ case CAD_HW_DEVICE_ID_DEFAULT_TX:
++ return CAD_TX_DEVICE;
++ case CAD_HW_DEVICE_ID_HANDSET_SPKR:
++ case CAD_HW_DEVICE_ID_HEADSET_SPKR_MONO:
++ case CAD_HW_DEVICE_ID_HEADSET_SPKR_STEREO:
++ case CAD_HW_DEVICE_ID_SPKR_PHONE_MIC:
++ case CAD_HW_DEVICE_ID_SPKR_PHONE_MONO:
++ case CAD_HW_DEVICE_ID_SPKR_PHONE_STEREO:
++ case CAD_HW_DEVICE_ID_BT_SCO_SPKR:
++ case CAD_HW_DEVICE_ID_BT_A2DP_SPKR:
++ case CAD_HW_DEVICE_ID_DEFAULT_RX:
++ return CAD_RX_DEVICE;
++ default:
++ return -ENODEV;
++ }
++}
++
++static int snd_qsd_route_put(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ int rc = 0;
++ int device, direction;
++
++ device = ucontrol->value.integer.value[0];
++ direction = snd_get_device_type(device);
++
++ if (direction < 0)
++ return direction;
++
++ rc = audio_switch_device(device);
++ if (rc < 0) {
++ printk(KERN_ERR "audio_switch_device failed\n");
++ return rc;
++ }
++
++ if (CAD_RX_DEVICE == direction)
++ qsd_glb_ctl.playback_device = device;
++ else /* CAD_TX_DEVICE */
++ qsd_glb_ctl.capture_device = device;
++
++ return 0;
++}
++
++static int snd_vol_info(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_info *uinfo)
++{
++ uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
++ uinfo->count = 1; /* Volume */
++ uinfo->value.integer.min = 0;
++ uinfo->value.integer.max = 100;
++ return 0;
++}
++
++static int snd_rx_vol_get(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ ucontrol->value.integer.value[0] = (uint32_t) qsd_glb_ctl.rx_volume;
++ return 0;
++}
++
++static int snd_rx_vol_put(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ struct msm_vol_info vi;
++ int rc = 0;
++
++ vi.vol = ucontrol->value.integer.value[0];
++ vi.path = CAD_RX_DEVICE;
++
++ rc = audio_set_device_volume_path(&vi);
++
++ if (rc)
++ printk(KERN_ERR "audio_set_device_volume failed\n");
++ else
++ qsd_glb_ctl.rx_volume = ucontrol->value.integer.value[0];
++
++ return rc;
++}
++
++static int snd_tx_vol_get(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ ucontrol->value.integer.value[0] = (uint32_t) qsd_glb_ctl.tx_volume;
++ return 0;
++}
++
++static int snd_tx_vol_put(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ struct msm_vol_info vi;
++ int rc = 0;
++
++ vi.vol = ucontrol->value.integer.value[0];
++ vi.path = CAD_TX_DEVICE;
++
++ rc = audio_set_device_volume_path(&vi);
++
++ if (rc)
++ printk(KERN_ERR "audio_set_device_volume failed\n");
++ else
++ qsd_glb_ctl.tx_volume = ucontrol->value.integer.value[0];
++
++ return rc;
++}
++
++static int snd_tx_mute_info(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_info *uinfo)
++{
++ uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
++ uinfo->count = 1; /* MUTE */
++ uinfo->value.integer.min = 0;
++ uinfo->value.integer.max = 1;
++ return 0;
++}
++
++static int snd_tx_mute_get(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ ucontrol->value.integer.value[0] = (uint32_t) qsd_glb_ctl.tx_mute;
++ return 0;
++}
++
++static int snd_tx_mute_put(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ int rc = 0;
++ struct msm_mute_info m;
++
++ m.path = CAD_TX_DEVICE;
++ m.mute = ucontrol->value.integer.value[0];
++
++ rc = audio_set_device_mute(&m);
++ if (rc)
++ printk(KERN_ERR "Capture device mute failed\n");
++ else
++ qsd_glb_ctl.tx_mute = ucontrol->value.integer.value[0];
++ return rc;
++}
++
++static int snd_rx_mute_info(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_info *uinfo)
++{
++ uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
++ uinfo->count = 1; /* MUTE */
++ uinfo->value.integer.min = 0;
++ uinfo->value.integer.max = 1;
++ return 0;
++}
++
++static int snd_rx_mute_get(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ ucontrol->value.integer.value[0] = (uint32_t) qsd_glb_ctl.rx_mute;
++ return 0;
++}
++
++static int snd_rx_mute_put(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ int rc = 0;
++ struct msm_mute_info m;
++
++ m.path = CAD_RX_DEVICE;
++ m.mute = ucontrol->value.integer.value[0];
++
++ rc = audio_set_device_mute(&m);
++ if (rc)
++ printk(KERN_ERR "Playback device mute failed\n");
++ else
++ qsd_glb_ctl.rx_mute = ucontrol->value.integer.value[0];
++ return rc;
++}
++
++static int snd_strm_vol_info(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_info *uinfo)
++{
++ uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
++ uinfo->count = 1; /* Volume Param, in gain */
++ uinfo->value.integer.min = CAD_STREAM_MIN_GAIN;
++ uinfo->value.integer.max = CAD_STREAM_MAX_GAIN;
++ return 0;
++}
++
++static int snd_strm_vol_get(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ ucontrol->value.integer.value[0] = qsd_glb_ctl.strm_volume;
++ return 0;
++}
++
++static int snd_strm_vol_put(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ int change;
++ int volume;
++
++ if (ucontrol->value.integer.value[0] > CAD_STREAM_MAX_GAIN)
++ ucontrol->value.integer.value[0] = CAD_STREAM_MAX_GAIN;
++ if (ucontrol->value.integer.value[0] < CAD_STREAM_MIN_GAIN)
++ ucontrol->value.integer.value[0] = CAD_STREAM_MIN_GAIN;
++
++ volume = ucontrol->value.integer.value[0];
++ change = (qsd_glb_ctl.strm_volume != volume);
++ mutex_lock(&the_locks.mixer_lock);
++ if (change) {
++ qsd_glb_ctl.strm_volume = volume;
++ qsd_glb_ctl.update = 1;
++ }
++ mutex_unlock(&the_locks.mixer_lock);
++ return 0;
++}
++
++#define QSD_EXT(xname, xindex, fp_info, fp_get, fp_put, addr) \
++{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
++ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE, \
++ .name = xname, .index = xindex, \
++ .info = fp_info,\
++ .get = fp_get, .put = fp_put, \
++ .private_value = addr, \
++}
++
++static struct snd_kcontrol_new snd_qsd_controls[] = {
++ QSD_EXT("Master Route", 1, snd_qsd_route_info, \
++ snd_qsd_route_get, snd_qsd_route_put, 0),
++ QSD_EXT("Master Volume Playback", 2, snd_vol_info, \
++ snd_rx_vol_get, snd_rx_vol_put, 0),
++ QSD_EXT("Master Volume Capture", 3, snd_vol_info, \
++ snd_tx_vol_get, snd_tx_vol_put, 0),
++ QSD_EXT("Master Mute Playback", 4, snd_rx_mute_info, \
++ snd_rx_mute_get, snd_rx_mute_put, 0),
++ QSD_EXT("Master Mute Capture", 5, snd_tx_mute_info, \
++ snd_tx_mute_get, snd_tx_mute_put, 0),
++ QSD_EXT("Stream Volume", 6, snd_strm_vol_info, \
++ snd_strm_vol_get, snd_strm_vol_put, 0),
++};
++
++static int qsd_new_mixer(struct snd_card *card)
++{
++ unsigned int idx;
++ int err;
++
++ strcpy(card->mixername, "MSM Mixer");
++ for (idx = 0; idx < ARRAY_SIZE(snd_qsd_controls); idx++) {
++ err = snd_ctl_add(card,
++ snd_ctl_new1(&snd_qsd_controls[idx], NULL));
++ if (err < 0)
++ return err;
++ }
++ return 0;
++}
++
++static int qsd_soc_dai_init(struct snd_soc_codec *codec)
++{
++
++ int ret = 0;
++ ret = qsd_new_mixer(codec->card);
++ if (ret < 0) {
++ printk(KERN_ERR "msm_soc:ALSA MSM Mixer Fail");
++ }
++
++ return ret;
++}
++
++static struct snd_soc_dai_link qsd_dai = {
++ .name = "ASOC",
++ .stream_name = "ASOC",
++ .codec_dai = &msm_dais[0],
++ .cpu_dai = &msm_dais[1],
++ .init = qsd_soc_dai_init,
++};
++
++struct snd_soc_card snd_soc_card_qsd = {
++ .name = "qsd-audio",
++ .dai_link = &qsd_dai,
++ .num_links = 1,
++ .platform = &qsd_soc_platform,
++};
++
++/* qsd_audio audio subsystem */
++static struct snd_soc_device qsd_audio_snd_devdata = {
++ .card = &snd_soc_card_qsd,
++ .codec_dev = &soc_codec_dev_msm,
++};
++
++static int __init qsd_audio_init(void)
++{
++ int ret;
++
++ qsd_audio_snd_device = platform_device_alloc("soc-audio", -1);
++ if (!qsd_audio_snd_device)
++ return -ENOMEM;
++
++ platform_set_drvdata(qsd_audio_snd_device, &qsd_audio_snd_devdata);
++ qsd_audio_snd_devdata.dev = &qsd_audio_snd_device->dev;
++ ret = platform_device_add(qsd_audio_snd_device);
++ if (ret) {
++ platform_device_put(qsd_audio_snd_device);
++ return ret;
++ }
++ mutex_init(&the_locks.lock);
++ mutex_init(&the_locks.mixer_lock);
++
++ return ret;
++}
++
++static void __exit qsd_audio_exit(void)
++{
++ kfree(qsd_audio_snd_devdata.codec_dev);
++ platform_device_unregister(qsd_audio_snd_device);
++}
++
++module_init(qsd_audio_init);
++module_exit(qsd_audio_exit);
++
++MODULE_DESCRIPTION("PCM module");
++MODULE_LICENSE("GPL v2");
diff --git a/recipes/linux/linux-replicant/htcdream/msm_wifi.patch b/recipes/linux/linux-replicant/htcdream/msm_wifi.patch
new file mode 100644
index 0000000000..d172e10259
--- /dev/null
+++ b/recipes/linux/linux-replicant/htcdream/msm_wifi.patch
@@ -0,0 +1,136 @@
+From a96d158a5e2e8d0f6dc73e0d5ae90c6c02b78fef Mon Sep 17 00:00:00 2001
+From: Bob Copeland <me@bobcopeland.com>
+Date: Sun, 7 Jun 2009 16:31:23 -0400
+Subject: [PATCH] msm: add platform driver for sdio-based wifi
+
+Add a platform device driver for the msm_wifi platform device. The
+driver initializes the gpios to power the device for subsequent
+probing by the SDIO bus.
+
+Signed-off-by: Bob Copeland <me@bobcopeland.com>
+---
+ arch/arm/mach-msm/Kconfig | 5 ++
+ arch/arm/mach-msm/Makefile | 2 +
+ arch/arm/mach-msm/msm_wifi.c | 84 ++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 91 insertions(+), 0 deletions(-)
+ create mode 100644 arch/arm/mach-msm/msm_wifi.c
+
+diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
+index 176cb73..74be8cd 100644
+--- a/arch/arm/mach-msm/Kconfig
++++ b/arch/arm/mach-msm/Kconfig
+@@ -78,6 +78,11 @@ config TROUT_BATTCHG
+ default y
+ bool "Trout battery / charger driver"
+
++config TROUT_WIFI
++ depends on ARCH_MSM
++ default m
++ tristate "Trout Wifi Gpio driver (rfkill)"
++
+ config HTC_PWRSINK
+ depends on MSM_SMD
+ default y
+diff --git a/arch/arm/mach-msm/Makefile b/arch/arm/mach-msm/Makefile
+index 9371f99..fb9954a 100644
+--- a/arch/arm/mach-msm/Makefile
++++ b/arch/arm/mach-msm/Makefile
+@@ -36,3 +36,5 @@ obj-$(CONFIG_TROUT_BATTCHG) += htc_battery.o
+
+ obj-$(CONFIG_HTC_PWRSINK) += htc_pwrsink.o
+ obj-$(CONFIG_HTC_HEADSET) += htc_headset.o
++
++obj-$(CONFIG_TROUT_WIFI) += msm_wifi.o
+diff --git a/arch/arm/mach-msm/msm_wifi.c b/arch/arm/mach-msm/msm_wifi.c
+new file mode 100644
+index 0000000..501ed45
+--- /dev/null
++++ b/arch/arm/mach-msm/msm_wifi.c
+@@ -0,0 +1,84 @@
++/*
++ * platform driver for msm_wifi device
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but
++ * WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
++ * 02110-1301 USA
++ *
++ * Copyright (C) 2008 Google Inc
++ */
++#include <linux/platform_device.h>
++#include <linux/wifi_tiwlan.h>
++
++static int wifi_probe(struct platform_device *pdev)
++{
++ struct wifi_platform_data *wifi_ctrl =
++ (struct wifi_platform_data *)(pdev->dev.platform_data);
++
++ printk(KERN_DEBUG "wifi probe start\n");
++
++ if (!wifi_ctrl)
++ return -ENODEV;
++
++ if (wifi_ctrl->set_power)
++ wifi_ctrl->set_power(1); /* Power On */
++ if (wifi_ctrl->set_reset)
++ wifi_ctrl->set_reset(0); /* Reset clear */
++ if (wifi_ctrl->set_carddetect)
++ wifi_ctrl->set_carddetect(1); /* CardDetect (0->1) */
++
++ printk(KERN_DEBUG "wifi probe done\n");
++ return 0;
++}
++
++static int wifi_remove(struct platform_device *pdev)
++{
++ struct wifi_platform_data *wifi_ctrl =
++ (struct wifi_platform_data *)(pdev->dev.platform_data);
++
++ printk(KERN_DEBUG "wifi remove start\n");
++ if (!wifi_ctrl)
++ return -ENODEV;
++
++ if (wifi_ctrl->set_carddetect)
++ wifi_ctrl->set_carddetect(0); /* CardDetect (1->0) */
++ if (wifi_ctrl->set_reset)
++ wifi_ctrl->set_reset(1); /* Reset active */
++ if (wifi_ctrl->set_power)
++ wifi_ctrl->set_power(0); /* Power Off */
++
++ printk(KERN_DEBUG "wifi remove end\n");
++ return 0;
++}
++
++static struct platform_driver wifi_device = {
++ .probe = wifi_probe,
++ .remove = wifi_remove,
++ .driver = {
++ .name = "msm_wifi",
++ },
++};
++
++static int __init msm_wifi_sdio_init(void)
++{
++ return platform_driver_register(&wifi_device);
++}
++
++static void __exit msm_wifi_sdio_exit(void)
++{
++ platform_driver_unregister(&wifi_device);
++}
++
++module_init(msm_wifi_sdio_init);
++module_exit(msm_wifi_sdio_exit);
++MODULE_LICENSE("GPL");
+--
+1.6.2.5
+
diff --git a/recipes/linux/linux-replicant/htckaiser/defconfig b/recipes/linux/linux-replicant/htckaiser/defconfig
new file mode 100644
index 0000000000..c1f3084120
--- /dev/null
+++ b/recipes/linux/linux-replicant/htckaiser/defconfig
@@ -0,0 +1,1026 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.25
+# Thu Apr 9 20:12:53 2009
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+# CONFIG_GENERIC_GPIO is not set
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_MMU=y
+# CONFIG_NO_IOPORT is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ARCH_SUPPORTS_AOUT=y
+CONFIG_ZONE_DMA=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+# CONFIG_SYSVIPC is not set
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=17
+# CONFIG_CGROUPS is not set
+# CONFIG_GROUP_SCHED is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
+# CONFIG_NAMESPACES is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_PANIC_TIMEOUT=3
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_COMPAT_BRK=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_ASHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+# CONFIG_KMOD is not set
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_BSG is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+# CONFIG_IOSCHED_DEADLINE is not set
+# CONFIG_IOSCHED_CFQ is not set
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+CONFIG_CLASSIC_RCU=y
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_GOLDFISH is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CO285 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_ORION is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+CONFIG_ARCH_MSM7X00A=y
+
+#
+# Boot options
+#
+
+#
+# Power management
+#
+CONFIG_MSM_AMSS_VERSION=6210
+CONFIG_MSM_AMSS_VERSION_6210=y
+# CONFIG_MSM_AMSS_VERSION_6220 is not set
+# CONFIG_MSM_AMSS_VERSION_6225 is not set
+# CONFIG_MACH_HALIBUT is not set
+CONFIG_MACH_HTCVOGUE=y
+CONFIG_MACH_HTCKAISER=y
+CONFIG_MACH_HTCPOLARIS=y
+CONFIG_MACH_HTCNIKE=y
+CONFIG_MACH_HTCTITAN=y
+CONFIG_VOGUE_TS=y
+CONFIG_MSM_VOGUESMD=y
+# CONFIG_MSM_LL_DEBUG_UART1 is not set
+# CONFIG_MSM_LL_DEBUG_UART2 is not set
+# CONFIG_MSM_LL_DEBUG_UART3 is not set
+CONFIG_MSM_LL_DEBUG_NONE=y
+CONFIG_MSM7X00A_IDLE=y
+CONFIG_MSM7X00A_USE_GP_TIMER=y
+# CONFIG_MSM7X00A_USE_DG_TIMER is not set
+# CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE_SUSPEND is not set
+CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE=y
+# CONFIG_MSM7X00A_SLEEP_MODE_APPS_SLEEP is not set
+# CONFIG_MSM7X00A_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT is not set
+# CONFIG_MSM7X00A_SLEEP_WAIT_FOR_INTERRUPT is not set
+CONFIG_MSM7X00A_SLEEP_MODE=1
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE_SUSPEND is not set
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE is not set
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_APPS_SLEEP is not set
+CONFIG_MSM7X00A_IDLE_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT=y
+# CONFIG_MSM7X00A_IDLE_SLEEP_WAIT_FOR_INTERRUPT is not set
+CONFIG_MSM7X00A_IDLE_SLEEP_MODE=3
+CONFIG_MSM7X00A_IDLE_SLEEP_MIN_TIME=20000000
+CONFIG_MSM7X00A_IDLE_SPIN_TIME=80000
+# CONFIG_MSM_IDLE_STATS is not set
+# CONFIG_MSM_FIQ_SUPPORT is not set
+# CONFIG_MSM_SERIAL_DEBUGGER is not set
+# CONFIG_MSM_SMD is not set
+# CONFIG_MSM_ONCRPCROUTER is not set
+# CONFIG_MSM_HW3D is not set
+CONFIG_MSM_ADSP=y
+# CONFIG_MSM_PERF is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_V6=y
+# CONFIG_CPU_32v6K is not set
+CONFIG_CPU_32v6=y
+CONFIG_CPU_ABRT_EV6=y
+CONFIG_CPU_CACHE_V6=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V6=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+# CONFIG_OUTER_CACHE is not set
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_PREEMPT=y
+CONFIG_HZ=100
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_RESOURCES_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE=""
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+# CONFIG_VFP is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options
+#
+CONFIG_PM=y
+# CONFIG_PM_LEGACY is not set
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_SLEEP=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+# CONFIG_APM_EMULATION is not set
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=y
+# CONFIG_BT_L2CAP is not set
+# CONFIG_BT_SCO is not set
+
+#
+# Bluetooth device drivers
+#
+# CONFIG_BT_HCIBTSDIO is not set
+CONFIG_BT_HCIUART=y
+CONFIG_BT_HCIUART_H4=y
+# CONFIG_BT_HCIUART_BCSP is not set
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIUART_LL_USE_MSM_SERIAL_CLOCK_CONTROL=y
+# CONFIG_BT_HCIVHCI is not set
+# CONFIG_AF_RXRPC is not set
+
+#
+# Wireless
+#
+# CONFIG_CFG80211 is not set
+# CONFIG_WIRELESS_EXT is not set
+# CONFIG_MAC80211 is not set
+# CONFIG_IEEE80211 is not set
+CONFIG_RFKILL=y
+# CONFIG_RFKILL_INPUT is not set
+CONFIG_RFKILL_LEDS=y
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+# CONFIG_MTD is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_EEPROM_93CX6 is not set
+CONFIG_LOW_MEMORY_KILLER=y
+CONFIG_KERNEL_DEBUGGER_CORE=y
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_HAVE_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+CONFIG_NETDEVICES=y
+# CONFIG_NETDEVICES_MULTIQUEUE is not set
+CONFIG_DUMMY=y
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+# CONFIG_PHYLIB is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_AX88796 is not set
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_B44 is not set
+CONFIG_NETDEV_1000=y
+# CONFIG_E1000E_ENABLED is not set
+CONFIG_NETDEV_10000=y
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+# CONFIG_WLAN_80211 is not set
+# CONFIG_WAN is not set
+CONFIG_PPP=y
+# CONFIG_PPP_MULTILINK is not set
+# CONFIG_PPP_FILTER is not set
+CONFIG_PPP_ASYNC=y
+# CONFIG_PPP_SYNC_TTY is not set
+CONFIG_PPP_DEFLATE=y
+CONFIG_PPP_BSDCOMP=y
+# CONFIG_PPP_MPPE is not set
+# CONFIG_PPPOE is not set
+# CONFIG_PPPOL2TP is not set
+# CONFIG_SLIP is not set
+CONFIG_SLHC=y
+# CONFIG_NETCONSOLE is not set
+# CONFIG_MSM_RMNET is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ATKBD is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_GOLDFISH_EVENTS is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_ATI_REMOTE is not set
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+# CONFIG_INPUT_UINPUT is not set
+CONFIG_INPUT_GPIO=y
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_MSM=y
+CONFIG_SERIAL_MSM_CONSOLE=y
+CONFIG_SERIAL_MSM_CLOCK_CONTROL=y
+CONFIG_SERIAL_MSM_RX_WAKEUP=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+CONFIG_DEVMEM=y
+# CONFIG_GOLDFISH_TTY is not set
+# CONFIG_DCC_TTY is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+# CONFIG_I2C_CHARDEV is not set
+
+#
+# I2C Algorithms
+#
+# CONFIG_I2C_ALGOBIT is not set
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+CONFIG_I2C_MSM=y
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_STUB is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_DS1682 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_PCF8575 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+CONFIG_S5K4B1FX=y
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# SPI support
+#
+# CONFIG_SPI is not set
+# CONFIG_SPI_MASTER is not set
+# CONFIG_W1 is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_BATTERY_DS2760 is not set
+# CONFIG_BATTERY_GOLDFISH is not set
+# CONFIG_HWMON is not set
+# CONFIG_WATCHDOG is not set
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB_POSSIBLE=y
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_SM501 is not set
+# CONFIG_HTC_EGPIO is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+# CONFIG_DVB_CORE is not set
+CONFIG_DAB=y
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=y
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_SYS_FOPS is not set
+CONFIG_FB_DEFERRED_IO=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_GOLDFISH is not set
+CONFIG_FB_MSM=y
+# CONFIG_FB_MSM_LOGO is not set
+CONFIG_FB_MSM_REFRESH=y
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+# CONFIG_FONT_8x16 is not set
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+CONFIG_FONT_MINI_4x6=y
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+# CONFIG_LOGO is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+# CONFIG_HID_DEBUG is not set
+# CONFIG_HIDRAW is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+# CONFIG_USB_ARCH_HAS_OHCI is not set
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+# CONFIG_USB is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# USB Function Support
+#
+CONFIG_USB_FUNCTION=y
+CONFIG_USB_FUNCTION_MSM_HSUSB=y
+# CONFIG_USB_FUNCTION_NULL is not set
+# CONFIG_USB_FUNCTION_ZERO is not set
+# CONFIG_USB_FUNCTION_LOOPBACK is not set
+CONFIG_USB_FUNCTION_ADB=y
+# CONFIG_USB_FUNCTION_UMS is not set
+CONFIG_USB_FUNCTION_MASS_STORAGE=y
+# CONFIG_USB_FUNCTION_DIAG is not set
+CONFIG_USB_FUNCTION_ETHER=y
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+CONFIG_MMC_EMBEDDED_SDIO=y
+
+#
+# MMC/SD Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+# CONFIG_MMC_BLOCK_BOUNCE is not set
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD Host Controller Drivers
+#
+CONFIG_MMC_MSM7X00A=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_SWITCH=y
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_S35390A is not set
+
+#
+# SPI RTC drivers
+#
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_GOLDFISH is not set
+# CONFIG_RTC_DRV_MSM7X00A is not set
+CONFIG_RTC_DRV_MSM7X00=y
+
+#
+# Android
+#
+# CONFIG_ANDROID_BINDER_IPC is not set
+# CONFIG_ANDROID_PMEM is not set
+# CONFIG_ANDROID_POWER is not set
+# CONFIG_ANDROID_LOGGER is not set
+# CONFIG_ANDROID_RAM_CONSOLE is not set
+# CONFIG_ANDROID_PARANOID_NETWORK is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+# CONFIG_EXT2_FS_POSIX_ACL is not set
+# CONFIG_EXT2_FS_SECURITY is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+# CONFIG_EXT4DEV_FS is not set
+CONFIG_JBD=y
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_CRAMFS=y
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+# CONFIG_NFS_FS is not set
+# CONFIG_NFSD is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+CONFIG_PRINTK_TIME=y
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+CONFIG_SCHED_DEBUG=y
+CONFIG_SCHEDSTATS=y
+# CONFIG_TIMER_STATS is not set
+# CONFIG_DEBUG_SLAB is not set
+CONFIG_DEBUG_PREEMPT=y
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+CONFIG_DEBUG_SPINLOCK_SLEEP=y
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+# CONFIG_SAMPLES is not set
+# CONFIG_DEBUG_USER is not set
+# CONFIG_DEBUG_ERRORS is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_LL is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+# CONFIG_CRYPTO is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_CRC_CCITT=y
+# CONFIG_CRC16 is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
diff --git a/recipes/linux/linux-replicant/htcnike/defconfig b/recipes/linux/linux-replicant/htcnike/defconfig
new file mode 100644
index 0000000000..eb0979cf79
--- /dev/null
+++ b/recipes/linux/linux-replicant/htcnike/defconfig
@@ -0,0 +1,1009 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.25
+# Wed Feb 25 00:39:08 2009
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+# CONFIG_GENERIC_GPIO is not set
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_MMU=y
+# CONFIG_NO_IOPORT is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ARCH_SUPPORTS_AOUT=y
+CONFIG_ZONE_DMA=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+# CONFIG_SYSVIPC is not set
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=17
+# CONFIG_CGROUPS is not set
+CONFIG_GROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_USER_SCHED=y
+# CONFIG_CGROUP_SCHED is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
+# CONFIG_NAMESPACES is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_PANIC_TIMEOUT=0
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_COMPAT_BRK=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_ASHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODVERSIONS=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+# CONFIG_KMOD is not set
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_BSG is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+# CONFIG_IOSCHED_DEADLINE is not set
+# CONFIG_IOSCHED_CFQ is not set
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+CONFIG_CLASSIC_RCU=y
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_GOLDFISH is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CO285 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_ORION is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+CONFIG_ARCH_MSM7X00A=y
+
+#
+# Boot options
+#
+
+#
+# Power management
+#
+CONFIG_MSM_AMSS_VERSION=6210
+CONFIG_MSM_AMSS_VERSION_6210=y
+# CONFIG_MSM_AMSS_VERSION_6220 is not set
+# CONFIG_MSM_AMSS_VERSION_6225 is not set
+# CONFIG_MACH_HALIBUT is not set
+CONFIG_MACH_HTCVOGUE=y
+CONFIG_MACH_HTCKAISER=y
+CONFIG_MACH_HTCPOLARIS=y
+CONFIG_MACH_HTCNIKE=y
+# CONFIG_HTCTITAN is not set
+CONFIG_VOGUE_TS=y
+CONFIG_MSM_VOGUESMD=y
+# CONFIG_MSM_LL_DEBUG_UART1 is not set
+# CONFIG_MSM_LL_DEBUG_UART2 is not set
+# CONFIG_MSM_LL_DEBUG_UART3 is not set
+CONFIG_MSM_LL_DEBUG_NONE=y
+CONFIG_MSM7X00A_IDLE=y
+# CONFIG_MSM7X00A_USE_GP_TIMER is not set
+CONFIG_MSM7X00A_USE_DG_TIMER=y
+# CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE_SUSPEND is not set
+CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE=y
+# CONFIG_MSM7X00A_SLEEP_MODE_APPS_SLEEP is not set
+# CONFIG_MSM7X00A_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT is not set
+# CONFIG_MSM7X00A_SLEEP_WAIT_FOR_INTERRUPT is not set
+CONFIG_MSM7X00A_SLEEP_MODE=1
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE_SUSPEND is not set
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE is not set
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_APPS_SLEEP is not set
+CONFIG_MSM7X00A_IDLE_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT=y
+# CONFIG_MSM7X00A_IDLE_SLEEP_WAIT_FOR_INTERRUPT is not set
+CONFIG_MSM7X00A_IDLE_SLEEP_MODE=3
+CONFIG_MSM7X00A_IDLE_SLEEP_MIN_TIME=20000000
+CONFIG_MSM7X00A_IDLE_SPIN_TIME=80000
+# CONFIG_MSM_IDLE_STATS is not set
+# CONFIG_MSM_FIQ_SUPPORT is not set
+# CONFIG_MSM_SERIAL_DEBUGGER is not set
+# CONFIG_MSM_SMD is not set
+# CONFIG_MSM_ONCRPCROUTER is not set
+# CONFIG_MSM_HW3D is not set
+CONFIG_MSM_ADSP=y
+# CONFIG_MSM_PERF is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_V6=y
+# CONFIG_CPU_32v6K is not set
+CONFIG_CPU_32v6=y
+CONFIG_CPU_ABRT_EV6=y
+CONFIG_CPU_CACHE_V6=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V6=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+# CONFIG_OUTER_CACHE is not set
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_PREEMPT=y
+CONFIG_HZ=100
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_RESOURCES_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE=""
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+# CONFIG_VFP is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options
+#
+CONFIG_PM=y
+# CONFIG_PM_LEGACY is not set
+CONFIG_PM_DEBUG=y
+# CONFIG_PM_VERBOSE is not set
+CONFIG_CAN_PM_TRACE=y
+CONFIG_PM_SLEEP=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+# CONFIG_APM_EMULATION is not set
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+# CONFIG_PACKET is not set
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=y
+# CONFIG_BT_L2CAP is not set
+# CONFIG_BT_SCO is not set
+
+#
+# Bluetooth device drivers
+#
+# CONFIG_BT_HCIBTSDIO is not set
+CONFIG_BT_HCIUART=y
+CONFIG_BT_HCIUART_H4=y
+# CONFIG_BT_HCIUART_BCSP is not set
+# CONFIG_BT_HCIUART_LL is not set
+# CONFIG_BT_HCIUART_LL_USE_MSM_SERIAL_CLOCK_CONTROL is not set
+# CONFIG_BT_HCIVHCI is not set
+# CONFIG_AF_RXRPC is not set
+
+#
+# Wireless
+#
+# CONFIG_CFG80211 is not set
+# CONFIG_WIRELESS_EXT is not set
+# CONFIG_MAC80211 is not set
+# CONFIG_IEEE80211 is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+# CONFIG_MTD is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_EEPROM_93CX6 is not set
+CONFIG_LOW_MEMORY_KILLER=y
+CONFIG_KERNEL_DEBUGGER_CORE=y
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_HAVE_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+CONFIG_NETDEVICES=y
+# CONFIG_NETDEVICES_MULTIQUEUE is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+# CONFIG_NET_ETHERNET is not set
+# CONFIG_NETDEV_1000 is not set
+# CONFIG_NETDEV_10000 is not set
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+# CONFIG_WLAN_80211 is not set
+# CONFIG_WAN is not set
+CONFIG_PPP=y
+# CONFIG_PPP_MULTILINK is not set
+# CONFIG_PPP_FILTER is not set
+CONFIG_PPP_ASYNC=y
+# CONFIG_PPP_SYNC_TTY is not set
+CONFIG_PPP_DEFLATE=y
+CONFIG_PPP_BSDCOMP=y
+# CONFIG_PPP_MPPE is not set
+# CONFIG_PPPOE is not set
+# CONFIG_PPPOL2TP is not set
+# CONFIG_SLIP is not set
+CONFIG_SLHC=y
+# CONFIG_NETCONSOLE is not set
+# CONFIG_MSM_RMNET is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ATKBD is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_GOLDFISH_EVENTS is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_UINPUT is not set
+CONFIG_INPUT_GPIO=y
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_MSM=y
+CONFIG_SERIAL_MSM_CONSOLE=y
+CONFIG_SERIAL_MSM_CLOCK_CONTROL=y
+# CONFIG_SERIAL_MSM_RX_WAKEUP is not set
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+CONFIG_DEVMEM=y
+# CONFIG_GOLDFISH_TTY is not set
+# CONFIG_DCC_TTY is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+# CONFIG_I2C_CHARDEV is not set
+
+#
+# I2C Algorithms
+#
+# CONFIG_I2C_ALGOBIT is not set
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+CONFIG_I2C_MSM=y
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_STUB is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_DS1682 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_PCF8575 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+CONFIG_S5K4B1FX=y
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# SPI support
+#
+# CONFIG_SPI is not set
+# CONFIG_SPI_MASTER is not set
+# CONFIG_W1 is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_BATTERY_DS2760 is not set
+# CONFIG_BATTERY_GOLDFISH is not set
+# CONFIG_HWMON is not set
+# CONFIG_WATCHDOG is not set
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB_POSSIBLE=y
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_SM501 is not set
+# CONFIG_HTC_EGPIO is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+# CONFIG_DVB_CORE is not set
+CONFIG_DAB=y
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=y
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_SYS_FOPS is not set
+CONFIG_FB_DEFERRED_IO=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_GOLDFISH is not set
+CONFIG_FB_MSM=y
+# CONFIG_FB_MSM_LOGO is not set
+# CONFIG_FB_MSM_REFRESH is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+# CONFIG_FONT_8x16 is not set
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_LOGO_LINUX_CLUT224=y
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+# CONFIG_HID_SUPPORT is not set
+# CONFIG_USB_SUPPORT is not set
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+CONFIG_MMC_EMBEDDED_SDIO=y
+
+#
+# MMC/SD Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+# CONFIG_MMC_BLOCK_BOUNCE is not set
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD Host Controller Drivers
+#
+CONFIG_MMC_MSM7X00A=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+
+#
+# LED Triggers
+#
+# CONFIG_LEDS_TRIGGERS is not set
+# CONFIG_SWITCH is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_S35390A is not set
+
+#
+# SPI RTC drivers
+#
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_GOLDFISH is not set
+# CONFIG_RTC_DRV_MSM7X00A is not set
+CONFIG_RTC_DRV_MSM7X00=y
+
+#
+# Android
+#
+CONFIG_ANDROID_BINDER_IPC=y
+# CONFIG_ANDROID_PMEM is not set
+CONFIG_ANDROID_POWER=y
+CONFIG_ANDROID_POWER_STAT=y
+CONFIG_ANDROID_POWER_ALARM=y
+CONFIG_ANDROID_LOGGER=y
+CONFIG_ANDROID_RAM_CONSOLE=y
+CONFIG_ANDROID_RAM_CONSOLE_ENABLE_VERBOSE=y
+# CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION is not set
+# CONFIG_ANDROID_RAM_CONSOLE_EARLY_INIT is not set
+CONFIG_ANDROID_PARANOID_NETWORK=y
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+# CONFIG_EXT2_FS_POSIX_ACL is not set
+# CONFIG_EXT2_FS_SECURITY is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+# CONFIG_EXT4DEV_FS is not set
+CONFIG_JBD=y
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_CRAMFS=y
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+# CONFIG_NFS_FS is not set
+# CONFIG_NFSD is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+CONFIG_PRINTK_TIME=y
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_TIMER_STATS is not set
+# CONFIG_DEBUG_SLAB is not set
+CONFIG_DEBUG_PREEMPT=y
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+# CONFIG_SAMPLES is not set
+CONFIG_DEBUG_USER=y
+# CONFIG_DEBUG_ERRORS is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_LL is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+# CONFIG_CRYPTO is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_CRC_CCITT=y
+# CONFIG_CRC16 is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
diff --git a/recipes/linux/linux-replicant/htcpolaris/defconfig b/recipes/linux/linux-replicant/htcpolaris/defconfig
new file mode 100644
index 0000000000..eb0979cf79
--- /dev/null
+++ b/recipes/linux/linux-replicant/htcpolaris/defconfig
@@ -0,0 +1,1009 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.25
+# Wed Feb 25 00:39:08 2009
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+# CONFIG_GENERIC_GPIO is not set
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_MMU=y
+# CONFIG_NO_IOPORT is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ARCH_SUPPORTS_AOUT=y
+CONFIG_ZONE_DMA=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+# CONFIG_SYSVIPC is not set
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=17
+# CONFIG_CGROUPS is not set
+CONFIG_GROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_USER_SCHED=y
+# CONFIG_CGROUP_SCHED is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
+# CONFIG_NAMESPACES is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_PANIC_TIMEOUT=0
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_COMPAT_BRK=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_ASHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODVERSIONS=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+# CONFIG_KMOD is not set
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_BSG is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+# CONFIG_IOSCHED_DEADLINE is not set
+# CONFIG_IOSCHED_CFQ is not set
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+CONFIG_CLASSIC_RCU=y
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_GOLDFISH is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CO285 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_ORION is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+CONFIG_ARCH_MSM7X00A=y
+
+#
+# Boot options
+#
+
+#
+# Power management
+#
+CONFIG_MSM_AMSS_VERSION=6210
+CONFIG_MSM_AMSS_VERSION_6210=y
+# CONFIG_MSM_AMSS_VERSION_6220 is not set
+# CONFIG_MSM_AMSS_VERSION_6225 is not set
+# CONFIG_MACH_HALIBUT is not set
+CONFIG_MACH_HTCVOGUE=y
+CONFIG_MACH_HTCKAISER=y
+CONFIG_MACH_HTCPOLARIS=y
+CONFIG_MACH_HTCNIKE=y
+# CONFIG_HTCTITAN is not set
+CONFIG_VOGUE_TS=y
+CONFIG_MSM_VOGUESMD=y
+# CONFIG_MSM_LL_DEBUG_UART1 is not set
+# CONFIG_MSM_LL_DEBUG_UART2 is not set
+# CONFIG_MSM_LL_DEBUG_UART3 is not set
+CONFIG_MSM_LL_DEBUG_NONE=y
+CONFIG_MSM7X00A_IDLE=y
+# CONFIG_MSM7X00A_USE_GP_TIMER is not set
+CONFIG_MSM7X00A_USE_DG_TIMER=y
+# CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE_SUSPEND is not set
+CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE=y
+# CONFIG_MSM7X00A_SLEEP_MODE_APPS_SLEEP is not set
+# CONFIG_MSM7X00A_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT is not set
+# CONFIG_MSM7X00A_SLEEP_WAIT_FOR_INTERRUPT is not set
+CONFIG_MSM7X00A_SLEEP_MODE=1
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE_SUSPEND is not set
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE is not set
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_APPS_SLEEP is not set
+CONFIG_MSM7X00A_IDLE_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT=y
+# CONFIG_MSM7X00A_IDLE_SLEEP_WAIT_FOR_INTERRUPT is not set
+CONFIG_MSM7X00A_IDLE_SLEEP_MODE=3
+CONFIG_MSM7X00A_IDLE_SLEEP_MIN_TIME=20000000
+CONFIG_MSM7X00A_IDLE_SPIN_TIME=80000
+# CONFIG_MSM_IDLE_STATS is not set
+# CONFIG_MSM_FIQ_SUPPORT is not set
+# CONFIG_MSM_SERIAL_DEBUGGER is not set
+# CONFIG_MSM_SMD is not set
+# CONFIG_MSM_ONCRPCROUTER is not set
+# CONFIG_MSM_HW3D is not set
+CONFIG_MSM_ADSP=y
+# CONFIG_MSM_PERF is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_V6=y
+# CONFIG_CPU_32v6K is not set
+CONFIG_CPU_32v6=y
+CONFIG_CPU_ABRT_EV6=y
+CONFIG_CPU_CACHE_V6=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V6=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+# CONFIG_OUTER_CACHE is not set
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_PREEMPT=y
+CONFIG_HZ=100
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_RESOURCES_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE=""
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+# CONFIG_VFP is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options
+#
+CONFIG_PM=y
+# CONFIG_PM_LEGACY is not set
+CONFIG_PM_DEBUG=y
+# CONFIG_PM_VERBOSE is not set
+CONFIG_CAN_PM_TRACE=y
+CONFIG_PM_SLEEP=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+# CONFIG_APM_EMULATION is not set
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+# CONFIG_PACKET is not set
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=y
+# CONFIG_BT_L2CAP is not set
+# CONFIG_BT_SCO is not set
+
+#
+# Bluetooth device drivers
+#
+# CONFIG_BT_HCIBTSDIO is not set
+CONFIG_BT_HCIUART=y
+CONFIG_BT_HCIUART_H4=y
+# CONFIG_BT_HCIUART_BCSP is not set
+# CONFIG_BT_HCIUART_LL is not set
+# CONFIG_BT_HCIUART_LL_USE_MSM_SERIAL_CLOCK_CONTROL is not set
+# CONFIG_BT_HCIVHCI is not set
+# CONFIG_AF_RXRPC is not set
+
+#
+# Wireless
+#
+# CONFIG_CFG80211 is not set
+# CONFIG_WIRELESS_EXT is not set
+# CONFIG_MAC80211 is not set
+# CONFIG_IEEE80211 is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+# CONFIG_MTD is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_EEPROM_93CX6 is not set
+CONFIG_LOW_MEMORY_KILLER=y
+CONFIG_KERNEL_DEBUGGER_CORE=y
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_HAVE_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+CONFIG_NETDEVICES=y
+# CONFIG_NETDEVICES_MULTIQUEUE is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+# CONFIG_NET_ETHERNET is not set
+# CONFIG_NETDEV_1000 is not set
+# CONFIG_NETDEV_10000 is not set
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+# CONFIG_WLAN_80211 is not set
+# CONFIG_WAN is not set
+CONFIG_PPP=y
+# CONFIG_PPP_MULTILINK is not set
+# CONFIG_PPP_FILTER is not set
+CONFIG_PPP_ASYNC=y
+# CONFIG_PPP_SYNC_TTY is not set
+CONFIG_PPP_DEFLATE=y
+CONFIG_PPP_BSDCOMP=y
+# CONFIG_PPP_MPPE is not set
+# CONFIG_PPPOE is not set
+# CONFIG_PPPOL2TP is not set
+# CONFIG_SLIP is not set
+CONFIG_SLHC=y
+# CONFIG_NETCONSOLE is not set
+# CONFIG_MSM_RMNET is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ATKBD is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_GOLDFISH_EVENTS is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_UINPUT is not set
+CONFIG_INPUT_GPIO=y
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_MSM=y
+CONFIG_SERIAL_MSM_CONSOLE=y
+CONFIG_SERIAL_MSM_CLOCK_CONTROL=y
+# CONFIG_SERIAL_MSM_RX_WAKEUP is not set
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+CONFIG_DEVMEM=y
+# CONFIG_GOLDFISH_TTY is not set
+# CONFIG_DCC_TTY is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+# CONFIG_I2C_CHARDEV is not set
+
+#
+# I2C Algorithms
+#
+# CONFIG_I2C_ALGOBIT is not set
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+CONFIG_I2C_MSM=y
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_STUB is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_DS1682 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_PCF8575 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+CONFIG_S5K4B1FX=y
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# SPI support
+#
+# CONFIG_SPI is not set
+# CONFIG_SPI_MASTER is not set
+# CONFIG_W1 is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_BATTERY_DS2760 is not set
+# CONFIG_BATTERY_GOLDFISH is not set
+# CONFIG_HWMON is not set
+# CONFIG_WATCHDOG is not set
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB_POSSIBLE=y
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_SM501 is not set
+# CONFIG_HTC_EGPIO is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+# CONFIG_DVB_CORE is not set
+CONFIG_DAB=y
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=y
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_SYS_FOPS is not set
+CONFIG_FB_DEFERRED_IO=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_GOLDFISH is not set
+CONFIG_FB_MSM=y
+# CONFIG_FB_MSM_LOGO is not set
+# CONFIG_FB_MSM_REFRESH is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+# CONFIG_FONT_8x16 is not set
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_LOGO_LINUX_CLUT224=y
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+# CONFIG_HID_SUPPORT is not set
+# CONFIG_USB_SUPPORT is not set
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+CONFIG_MMC_EMBEDDED_SDIO=y
+
+#
+# MMC/SD Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+# CONFIG_MMC_BLOCK_BOUNCE is not set
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD Host Controller Drivers
+#
+CONFIG_MMC_MSM7X00A=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+
+#
+# LED Triggers
+#
+# CONFIG_LEDS_TRIGGERS is not set
+# CONFIG_SWITCH is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_S35390A is not set
+
+#
+# SPI RTC drivers
+#
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_GOLDFISH is not set
+# CONFIG_RTC_DRV_MSM7X00A is not set
+CONFIG_RTC_DRV_MSM7X00=y
+
+#
+# Android
+#
+CONFIG_ANDROID_BINDER_IPC=y
+# CONFIG_ANDROID_PMEM is not set
+CONFIG_ANDROID_POWER=y
+CONFIG_ANDROID_POWER_STAT=y
+CONFIG_ANDROID_POWER_ALARM=y
+CONFIG_ANDROID_LOGGER=y
+CONFIG_ANDROID_RAM_CONSOLE=y
+CONFIG_ANDROID_RAM_CONSOLE_ENABLE_VERBOSE=y
+# CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION is not set
+# CONFIG_ANDROID_RAM_CONSOLE_EARLY_INIT is not set
+CONFIG_ANDROID_PARANOID_NETWORK=y
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+# CONFIG_EXT2_FS_POSIX_ACL is not set
+# CONFIG_EXT2_FS_SECURITY is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+# CONFIG_EXT4DEV_FS is not set
+CONFIG_JBD=y
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_CRAMFS=y
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+# CONFIG_NFS_FS is not set
+# CONFIG_NFSD is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+CONFIG_PRINTK_TIME=y
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_TIMER_STATS is not set
+# CONFIG_DEBUG_SLAB is not set
+CONFIG_DEBUG_PREEMPT=y
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+# CONFIG_SAMPLES is not set
+CONFIG_DEBUG_USER=y
+# CONFIG_DEBUG_ERRORS is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_LL is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+# CONFIG_CRYPTO is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_CRC_CCITT=y
+# CONFIG_CRC16 is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
diff --git a/recipes/linux/linux-replicant/htcraphael/defconfig b/recipes/linux/linux-replicant/htcraphael/defconfig
new file mode 100644
index 0000000000..88f9cd8e1e
--- /dev/null
+++ b/recipes/linux/linux-replicant/htcraphael/defconfig
@@ -0,0 +1,1173 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.27
+# Sat Mar 28 01:05:54 2009
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_MMU=y
+# CONFIG_NO_IOPORT is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ARCH_SUPPORTS_AOUT=y
+CONFIG_ZONE_DMA=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=17
+# CONFIG_CGROUPS is not set
+CONFIG_GROUP_SCHED=y
+# CONFIG_FAIR_GROUP_SCHED is not set
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_USER_SCHED=y
+# CONFIG_CGROUP_SCHED is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
+CONFIG_NAMESPACES=y
+# CONFIG_UTS_NS is not set
+# CONFIG_IPC_NS is not set
+# CONFIG_USER_NS is not set
+# CONFIG_PID_NS is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_PANIC_TIMEOUT=3
+# CONFIG_EMBEDDED is not set
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_COMPAT_BRK=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_ASHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
+# CONFIG_HAVE_IOREMAP_PROT is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+# CONFIG_HAVE_ARCH_TRACEHOOK is not set
+# CONFIG_HAVE_DMA_ATTRS is not set
+# CONFIG_USE_GENERIC_SMP_HELPERS is not set
+# CONFIG_HAVE_CLK is not set
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+# CONFIG_IOSCHED_DEADLINE is not set
+# CONFIG_IOSCHED_CFQ is not set
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+CONFIG_CLASSIC_RCU=y
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KIRKWOOD is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_LOKI is not set
+# CONFIG_ARCH_MV78XX0 is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+CONFIG_ARCH_MSM=y
+
+#
+# Boot options
+#
+
+#
+# Power management
+#
+CONFIG_MSM_AMSS_VERSION=7000
+# CONFIG_MSM_AMSS_VERSION_6210 is not set
+# CONFIG_MSM_AMSS_VERSION_6220 is not set
+# CONFIG_MSM_AMSS_VERSION_6225 is not set
+CONFIG_MSM_AMSS_VERSION_WINCE=y
+CONFIG_MSM_DEBUG_UART_NONE=y
+# CONFIG_MSM_DEBUG_UART1 is not set
+# CONFIG_MSM_DEBUG_UART2 is not set
+# CONFIG_MSM_DEBUG_UART3 is not set
+
+#
+# MSM Board Type
+#
+# CONFIG_MACH_HALIBUT is not set
+# CONFIG_MACH_TROUT is not set
+CONFIG_MACH_HTCRAPHAEL=y
+CONFIG_MACH_HTCRAPHAEL_CDMA=y
+CONFIG_MACH_HTCDIAMOND=y
+CONFIG_MACH_HTCDIAMOND_CDMA=y
+# CONFIG_TROUT_H2W is not set
+# CONFIG_TROUT_PWRSINK is not set
+CONFIG_MSM7X00A_USE_GP_TIMER=y
+# CONFIG_MSM7X00A_USE_DG_TIMER is not set
+CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE_SUSPEND=y
+# CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE is not set
+# CONFIG_MSM7X00A_SLEEP_MODE_APPS_SLEEP is not set
+# CONFIG_MSM7X00A_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT is not set
+# CONFIG_MSM7X00A_SLEEP_WAIT_FOR_INTERRUPT is not set
+CONFIG_MSM7X00A_SLEEP_MODE=0
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE_SUSPEND is not set
+CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE=y
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_APPS_SLEEP is not set
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT is not set
+# CONFIG_MSM7X00A_IDLE_SLEEP_WAIT_FOR_INTERRUPT is not set
+CONFIG_MSM7X00A_IDLE_SLEEP_MODE=1
+CONFIG_MSM7X00A_IDLE_SLEEP_MIN_TIME=20000000
+CONFIG_MSM7X00A_IDLE_SPIN_TIME=80000
+CONFIG_MSM_IDLE_STATS=y
+CONFIG_MSM_IDLE_STATS_FIRST_BUCKET=62500
+CONFIG_MSM_IDLE_STATS_BUCKET_SHIFT=2
+CONFIG_MSM_IDLE_STATS_BUCKET_COUNT=10
+CONFIG_MSM_FIQ_SUPPORT=y
+# CONFIG_MSM_SERIAL_DEBUGGER is not set
+CONFIG_MSM_SMD=y
+# CONFIG_MSM_SMD_7500 is not set
+# CONFIG_MSM_ONCRPCROUTER is not set
+# CONFIG_MSM_CPU_FREQ_ONDEMAND is not set
+# CONFIG_MSM_CPU_FREQ_SCREEN is not set
+CONFIG_MSM_HW3D=y
+# CONFIG_MSM_ADSP is not set
+CONFIG_HTC_FB_CONSOLE=y
+# CONFIG_HTC_FB_CONSOLE_DELAY is not set
+CONFIG_HTC_FB_CONSOLE_BOOT=y
+# CONFIG_WIFI_CONTROL_FUNC is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_V6=y
+# CONFIG_CPU_32v6K is not set
+CONFIG_CPU_32v6=y
+CONFIG_CPU_ABRT_EV6=y
+CONFIG_CPU_PABRT_NOIFAR=y
+CONFIG_CPU_CACHE_V6=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V6=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+# CONFIG_OUTER_CACHE is not set
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_PREEMPT=y
+CONFIG_HZ=100
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+CONFIG_ARCH_FLATMEM_HAS_HOLES=y
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_RESOURCES_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE=" debug "
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+# CONFIG_CPU_FREQ_DEBUG is not set
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+# CONFIG_CPU_FREQ_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+# CONFIG_VFP is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options
+#
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_SLEEP=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+# CONFIG_WAKELOCK is not set
+# CONFIG_APM_EMULATION is not set
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+CONFIG_ANDROID_PARANOID_NETWORK=y
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+
+#
+# Wireless
+#
+# CONFIG_CFG80211 is not set
+CONFIG_WIRELESS_EXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+# CONFIG_MAC80211 is not set
+CONFIG_IEEE80211=y
+# CONFIG_IEEE80211_DEBUG is not set
+# CONFIG_IEEE80211_CRYPT_WEP is not set
+# CONFIG_IEEE80211_CRYPT_CCMP is not set
+# CONFIG_IEEE80211_CRYPT_TKIP is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+# CONFIG_MTD is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+CONFIG_MISC_DEVICES=y
+CONFIG_ANDROID_PMEM=y
+CONFIG_TIMED_OUTPUT=y
+CONFIG_TIMED_GPIO=y
+CONFIG_BINDER_IPC=y
+# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+CONFIG_KERNEL_DEBUGGER_CORE=y
+CONFIG_LOW_MEMORY_KILLER=y
+CONFIG_LOGGER=y
+# CONFIG_UID_STAT is not set
+# CONFIG_ANDROID_RAM_CONSOLE is not set
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+CONFIG_NETDEVICES=y
+CONFIG_DUMMY=y
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+# CONFIG_PHYLIB is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_AX88796 is not set
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_B44 is not set
+CONFIG_NETDEV_1000=y
+CONFIG_NETDEV_10000=y
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+CONFIG_WLAN_80211=y
+# CONFIG_LIBERTAS is not set
+# CONFIG_IWLWIFI_LEDS is not set
+# CONFIG_HOSTAP is not set
+# CONFIG_WAN is not set
+CONFIG_PPP=y
+# CONFIG_PPP_MULTILINK is not set
+# CONFIG_PPP_FILTER is not set
+CONFIG_PPP_ASYNC=y
+# CONFIG_PPP_SYNC_TTY is not set
+CONFIG_PPP_DEFLATE=y
+CONFIG_PPP_BSDCOMP=y
+# CONFIG_PPP_MPPE is not set
+# CONFIG_PPPOE is not set
+# CONFIG_PPPOL2TP is not set
+# CONFIG_SLIP is not set
+CONFIG_SLHC=y
+# CONFIG_NETCONSOLE is not set
+CONFIG_MSM_RMNET=y
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+# CONFIG_INPUT_KEYRESET is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ATKBD is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_GPIO is not set
+CONFIG_KEYBOARD_MICROP_KEYPAD=y
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_FUJITSU is not set
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELAN_I2C_8232 is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_INEXIO is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI=y
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_UCB1400 is not set
+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
+CONFIG_TOUCHSCREEN_MSM=y
+# CONFIG_MSM_VIRTUAL_KEYBOARD is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_ATI_REMOTE is not set
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+# CONFIG_INPUT_UINPUT is not set
+CONFIG_INPUT_GPIO=y
+# CONFIG_INPUT_KEYCHORD is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_DEVMEM is not set
+CONFIG_DEVKMEM=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_MSM=y
+CONFIG_SERIAL_MSM_CONSOLE=y
+CONFIG_SERIAL_MSM_CLOCK_CONTROL=y
+CONFIG_SERIAL_MSM_RX_WAKEUP=y
+# CONFIG_SERIAL_MSM_HS is not set
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+# CONFIG_DCC_TTY is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+# CONFIG_I2C_CHARDEV is not set
+CONFIG_I2C_HELPER_AUTO=y
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_GPIO is not set
+CONFIG_I2C_MSM=y
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_SIMTEC is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_TAOS_EVM is not set
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_PCA_PLATFORM is not set
+# CONFIG_I2C_STUB is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_DS1682 is not set
+# CONFIG_AT24 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_PCF8575 is not set
+# CONFIG_SENSORS_PCA9539 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_SENSORS_AKM8976 is not set
+CONFIG_SENSORS_PCA963X=y
+# CONFIG_SENSORS_MT9T013 is not set
+CONFIG_SENSORS_MICROP_KSC=y
+CONFIG_SENSORS_MICROP_KLT=y
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+# CONFIG_SPI is not set
+# CONFIG_W1 is not set
+# CONFIG_POWER_SUPPLY is not set
+# CONFIG_HWMON is not set
+# CONFIG_WATCHDOG is not set
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB_POSSIBLE=y
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_MFD_T7L66XB is not set
+# CONFIG_MFD_TC6387XB is not set
+
+#
+# Multimedia devices
+#
+
+#
+# Multimedia core support
+#
+# CONFIG_VIDEO_DEV is not set
+# CONFIG_DVB_CORE is not set
+# CONFIG_VIDEO_MEDIA is not set
+
+#
+# Multimedia drivers
+#
+CONFIG_DAB=y
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=y
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_SYS_FOPS is not set
+CONFIG_FB_MSM=y
+CONFIG_FB_MSM_REFRESH=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+# CONFIG_FONT_8x16 is not set
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+# CONFIG_LOGO is not set
+# CONFIG_SOUND is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+# CONFIG_HID_DEBUG is not set
+# CONFIG_HIDRAW is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+# CONFIG_USB_ARCH_HAS_OHCI is not set
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+# CONFIG_USB is not set
+
+#
+# Enable Host or Gadget support to see Inventra options
+#
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# USB Function Support
+#
+CONFIG_USB_FUNCTION=y
+CONFIG_USB_FUNCTION_MSM_HSUSB=y
+# CONFIG_USB_FUNCTION_NULL is not set
+# CONFIG_USB_FUNCTION_ZERO is not set
+# CONFIG_USB_FUNCTION_LOOPBACK is not set
+CONFIG_USB_FUNCTION_ADB=y
+# CONFIG_USB_FUNCTION_UMS is not set
+CONFIG_USB_FUNCTION_MASS_STORAGE=y
+CONFIG_USB_FUNCTION_DIAG=y
+CONFIG_USB_FUNCTION_ETHER=y
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_UNSAFE_RESUME=y
+CONFIG_MMC_EMBEDDED_SDIO=y
+# CONFIG_MMC_PARANOID_SD_INIT is not set
+
+#
+# MMC/SD Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+# CONFIG_MMC_BLOCK_BOUNCE is not set
+CONFIG_MMC_BLOCK_PARANOID_RESUME=y
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD Host Controller Drivers
+#
+# CONFIG_MMC_SDHCI is not set
+CONFIG_MMC_MSM7X00A=y
+# CONFIG_MMC_MSM7X00A_RESUME_IN_WQ is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_PCA9532 is not set
+CONFIG_LEDS_GPIO=y
+# CONFIG_LEDS_PCA955X is not set
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
+CONFIG_SWITCH=y
+CONFIG_SWITCH_GPIO=y
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+# CONFIG_RTC_INTF_SYSFS is not set
+# CONFIG_RTC_INTF_PROC is not set
+# CONFIG_RTC_INTF_DEV is not set
+CONFIG_RTC_INTF_ALARM=y
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+
+#
+# SPI RTC drivers
+#
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_MSM7X00A is not set
+CONFIG_RTC_DRV_MSM7X01A=y
+# CONFIG_DMADEVICES is not set
+
+#
+# Voltage and Current regulators
+#
+# CONFIG_REGULATOR is not set
+# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_BQ24022 is not set
+# CONFIG_UIO is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+# CONFIG_EXT4DEV_FS is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+CONFIG_FS_POSIX_ACL=y
+# CONFIG_XFS_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_DNOTIFY is not set
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+# CONFIG_MSDOS_FS is not set
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+# CONFIG_NFS_V4 is not set
+CONFIG_NFSD=m
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+# CONFIG_NFSD_V4 is not set
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_NFS_ACL_SUPPORT=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+CONFIG_CIFS=y
+CONFIG_CIFS_STATS=y
+# CONFIG_CIFS_STATS2 is not set
+# CONFIG_CIFS_WEAK_PW_HASH is not set
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+CONFIG_PRINTK_TIME=y
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=1024
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
+CONFIG_SCHEDSTATS=y
+CONFIG_TIMER_STATS=y
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_DEBUG_SLAB is not set
+CONFIG_DEBUG_PREEMPT=y
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
+CONFIG_HAVE_FTRACE=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+# CONFIG_FTRACE is not set
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_TRACER is not set
+# CONFIG_SCHED_TRACER is not set
+# CONFIG_CONTEXT_SWITCH_TRACER is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+# CONFIG_DEBUG_USER is not set
+# CONFIG_DEBUG_ERRORS is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_LL is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+# CONFIG_CRYPTO is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+# CONFIG_GENERIC_FIND_FIRST_BIT is not set
+# CONFIG_GENERIC_FIND_NEXT_BIT is not set
+CONFIG_CRC_CCITT=y
+# CONFIG_CRC16 is not set
+# CONFIG_CRC_T10DIF is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
diff --git a/recipes/linux/linux-replicant/htctitan/defconfig b/recipes/linux/linux-replicant/htctitan/defconfig
new file mode 100644
index 0000000000..a72f00d04b
--- /dev/null
+++ b/recipes/linux/linux-replicant/htctitan/defconfig
@@ -0,0 +1,1009 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.25
+# Wed Feb 25 00:41:59 2009
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+# CONFIG_GENERIC_GPIO is not set
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_MMU=y
+# CONFIG_NO_IOPORT is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ARCH_SUPPORTS_AOUT=y
+CONFIG_ZONE_DMA=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+# CONFIG_SYSVIPC is not set
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=17
+# CONFIG_CGROUPS is not set
+CONFIG_GROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_USER_SCHED=y
+# CONFIG_CGROUP_SCHED is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
+# CONFIG_NAMESPACES is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_PANIC_TIMEOUT=0
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_COMPAT_BRK=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_ASHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODVERSIONS=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+# CONFIG_KMOD is not set
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_BSG is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+# CONFIG_IOSCHED_DEADLINE is not set
+# CONFIG_IOSCHED_CFQ is not set
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+CONFIG_CLASSIC_RCU=y
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_GOLDFISH is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CO285 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_ORION is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+CONFIG_ARCH_MSM7X00A=y
+
+#
+# Boot options
+#
+
+#
+# Power management
+#
+CONFIG_MSM_AMSS_VERSION=6210
+CONFIG_MSM_AMSS_VERSION_6210=y
+# CONFIG_MSM_AMSS_VERSION_6220 is not set
+# CONFIG_MSM_AMSS_VERSION_6225 is not set
+# CONFIG_MACH_HALIBUT is not set
+CONFIG_MACH_HTCVOGUE=y
+CONFIG_MACH_HTCKAISER=y
+CONFIG_MACH_HTCPOLARIS=y
+CONFIG_MACH_HTCNIKE=y
+CONFIG_HTCTITAN=y
+CONFIG_VOGUE_TS=y
+CONFIG_MSM_VOGUESMD=y
+# CONFIG_MSM_LL_DEBUG_UART1 is not set
+# CONFIG_MSM_LL_DEBUG_UART2 is not set
+# CONFIG_MSM_LL_DEBUG_UART3 is not set
+CONFIG_MSM_LL_DEBUG_NONE=y
+CONFIG_MSM7X00A_IDLE=y
+# CONFIG_MSM7X00A_USE_GP_TIMER is not set
+CONFIG_MSM7X00A_USE_DG_TIMER=y
+# CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE_SUSPEND is not set
+CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE=y
+# CONFIG_MSM7X00A_SLEEP_MODE_APPS_SLEEP is not set
+# CONFIG_MSM7X00A_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT is not set
+# CONFIG_MSM7X00A_SLEEP_WAIT_FOR_INTERRUPT is not set
+CONFIG_MSM7X00A_SLEEP_MODE=1
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE_SUSPEND is not set
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE is not set
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_APPS_SLEEP is not set
+CONFIG_MSM7X00A_IDLE_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT=y
+# CONFIG_MSM7X00A_IDLE_SLEEP_WAIT_FOR_INTERRUPT is not set
+CONFIG_MSM7X00A_IDLE_SLEEP_MODE=3
+CONFIG_MSM7X00A_IDLE_SLEEP_MIN_TIME=20000000
+CONFIG_MSM7X00A_IDLE_SPIN_TIME=80000
+# CONFIG_MSM_IDLE_STATS is not set
+# CONFIG_MSM_FIQ_SUPPORT is not set
+# CONFIG_MSM_SERIAL_DEBUGGER is not set
+# CONFIG_MSM_SMD is not set
+# CONFIG_MSM_ONCRPCROUTER is not set
+# CONFIG_MSM_HW3D is not set
+CONFIG_MSM_ADSP=y
+# CONFIG_MSM_PERF is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_V6=y
+# CONFIG_CPU_32v6K is not set
+CONFIG_CPU_32v6=y
+CONFIG_CPU_ABRT_EV6=y
+CONFIG_CPU_CACHE_V6=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V6=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+# CONFIG_OUTER_CACHE is not set
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_PREEMPT=y
+CONFIG_HZ=100
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_RESOURCES_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE=""
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+# CONFIG_VFP is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options
+#
+CONFIG_PM=y
+# CONFIG_PM_LEGACY is not set
+CONFIG_PM_DEBUG=y
+# CONFIG_PM_VERBOSE is not set
+CONFIG_CAN_PM_TRACE=y
+CONFIG_PM_SLEEP=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+# CONFIG_APM_EMULATION is not set
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+# CONFIG_PACKET is not set
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=y
+# CONFIG_BT_L2CAP is not set
+# CONFIG_BT_SCO is not set
+
+#
+# Bluetooth device drivers
+#
+# CONFIG_BT_HCIBTSDIO is not set
+CONFIG_BT_HCIUART=y
+CONFIG_BT_HCIUART_H4=y
+# CONFIG_BT_HCIUART_BCSP is not set
+# CONFIG_BT_HCIUART_LL is not set
+# CONFIG_BT_HCIUART_LL_USE_MSM_SERIAL_CLOCK_CONTROL is not set
+# CONFIG_BT_HCIVHCI is not set
+# CONFIG_AF_RXRPC is not set
+
+#
+# Wireless
+#
+# CONFIG_CFG80211 is not set
+# CONFIG_WIRELESS_EXT is not set
+# CONFIG_MAC80211 is not set
+# CONFIG_IEEE80211 is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+# CONFIG_MTD is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_EEPROM_93CX6 is not set
+CONFIG_LOW_MEMORY_KILLER=y
+CONFIG_KERNEL_DEBUGGER_CORE=y
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_HAVE_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+CONFIG_NETDEVICES=y
+# CONFIG_NETDEVICES_MULTIQUEUE is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+# CONFIG_NET_ETHERNET is not set
+# CONFIG_NETDEV_1000 is not set
+# CONFIG_NETDEV_10000 is not set
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+# CONFIG_WLAN_80211 is not set
+# CONFIG_WAN is not set
+CONFIG_PPP=y
+# CONFIG_PPP_MULTILINK is not set
+# CONFIG_PPP_FILTER is not set
+CONFIG_PPP_ASYNC=y
+# CONFIG_PPP_SYNC_TTY is not set
+CONFIG_PPP_DEFLATE=y
+CONFIG_PPP_BSDCOMP=y
+# CONFIG_PPP_MPPE is not set
+# CONFIG_PPPOE is not set
+# CONFIG_PPPOL2TP is not set
+# CONFIG_SLIP is not set
+CONFIG_SLHC=y
+# CONFIG_NETCONSOLE is not set
+# CONFIG_MSM_RMNET is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ATKBD is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_GOLDFISH_EVENTS is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_UINPUT is not set
+CONFIG_INPUT_GPIO=y
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_MSM=y
+CONFIG_SERIAL_MSM_CONSOLE=y
+CONFIG_SERIAL_MSM_CLOCK_CONTROL=y
+# CONFIG_SERIAL_MSM_RX_WAKEUP is not set
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+CONFIG_DEVMEM=y
+# CONFIG_GOLDFISH_TTY is not set
+# CONFIG_DCC_TTY is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+# CONFIG_I2C_CHARDEV is not set
+
+#
+# I2C Algorithms
+#
+# CONFIG_I2C_ALGOBIT is not set
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+CONFIG_I2C_MSM=y
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_STUB is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_DS1682 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_PCF8575 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+CONFIG_S5K4B1FX=y
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# SPI support
+#
+# CONFIG_SPI is not set
+# CONFIG_SPI_MASTER is not set
+# CONFIG_W1 is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_BATTERY_DS2760 is not set
+# CONFIG_BATTERY_GOLDFISH is not set
+# CONFIG_HWMON is not set
+# CONFIG_WATCHDOG is not set
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB_POSSIBLE=y
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_SM501 is not set
+# CONFIG_HTC_EGPIO is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+# CONFIG_DVB_CORE is not set
+CONFIG_DAB=y
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=y
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_SYS_FOPS is not set
+CONFIG_FB_DEFERRED_IO=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_GOLDFISH is not set
+CONFIG_FB_MSM=y
+# CONFIG_FB_MSM_LOGO is not set
+# CONFIG_FB_MSM_REFRESH is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+# CONFIG_FONT_8x16 is not set
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_LOGO_LINUX_CLUT224=y
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+# CONFIG_HID_SUPPORT is not set
+# CONFIG_USB_SUPPORT is not set
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+CONFIG_MMC_EMBEDDED_SDIO=y
+
+#
+# MMC/SD Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+# CONFIG_MMC_BLOCK_BOUNCE is not set
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD Host Controller Drivers
+#
+CONFIG_MMC_MSM7X00A=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+
+#
+# LED Triggers
+#
+# CONFIG_LEDS_TRIGGERS is not set
+# CONFIG_SWITCH is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_S35390A is not set
+
+#
+# SPI RTC drivers
+#
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_GOLDFISH is not set
+# CONFIG_RTC_DRV_MSM7X00A is not set
+CONFIG_RTC_DRV_MSM7X00=y
+
+#
+# Android
+#
+CONFIG_ANDROID_BINDER_IPC=y
+# CONFIG_ANDROID_PMEM is not set
+CONFIG_ANDROID_POWER=y
+CONFIG_ANDROID_POWER_STAT=y
+CONFIG_ANDROID_POWER_ALARM=y
+CONFIG_ANDROID_LOGGER=y
+CONFIG_ANDROID_RAM_CONSOLE=y
+CONFIG_ANDROID_RAM_CONSOLE_ENABLE_VERBOSE=y
+# CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION is not set
+# CONFIG_ANDROID_RAM_CONSOLE_EARLY_INIT is not set
+CONFIG_ANDROID_PARANOID_NETWORK=y
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+# CONFIG_EXT2_FS_POSIX_ACL is not set
+# CONFIG_EXT2_FS_SECURITY is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+# CONFIG_EXT4DEV_FS is not set
+CONFIG_JBD=y
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_CRAMFS=y
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+# CONFIG_NFS_FS is not set
+# CONFIG_NFSD is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+CONFIG_PRINTK_TIME=y
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_TIMER_STATS is not set
+# CONFIG_DEBUG_SLAB is not set
+CONFIG_DEBUG_PREEMPT=y
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+# CONFIG_SAMPLES is not set
+CONFIG_DEBUG_USER=y
+# CONFIG_DEBUG_ERRORS is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_LL is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+# CONFIG_CRYPTO is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_CRC_CCITT=y
+# CONFIG_CRC16 is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
diff --git a/recipes/linux/linux-replicant/htcvogue/defconfig b/recipes/linux/linux-replicant/htcvogue/defconfig
new file mode 100644
index 0000000000..c1f3084120
--- /dev/null
+++ b/recipes/linux/linux-replicant/htcvogue/defconfig
@@ -0,0 +1,1026 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.25
+# Thu Apr 9 20:12:53 2009
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+# CONFIG_GENERIC_GPIO is not set
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_MMU=y
+# CONFIG_NO_IOPORT is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ARCH_SUPPORTS_AOUT=y
+CONFIG_ZONE_DMA=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+# CONFIG_SYSVIPC is not set
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=17
+# CONFIG_CGROUPS is not set
+# CONFIG_GROUP_SCHED is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
+# CONFIG_NAMESPACES is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_PANIC_TIMEOUT=3
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_COMPAT_BRK=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_ASHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+# CONFIG_KMOD is not set
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_BSG is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+# CONFIG_IOSCHED_DEADLINE is not set
+# CONFIG_IOSCHED_CFQ is not set
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+CONFIG_CLASSIC_RCU=y
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_GOLDFISH is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CO285 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_ORION is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+CONFIG_ARCH_MSM7X00A=y
+
+#
+# Boot options
+#
+
+#
+# Power management
+#
+CONFIG_MSM_AMSS_VERSION=6210
+CONFIG_MSM_AMSS_VERSION_6210=y
+# CONFIG_MSM_AMSS_VERSION_6220 is not set
+# CONFIG_MSM_AMSS_VERSION_6225 is not set
+# CONFIG_MACH_HALIBUT is not set
+CONFIG_MACH_HTCVOGUE=y
+CONFIG_MACH_HTCKAISER=y
+CONFIG_MACH_HTCPOLARIS=y
+CONFIG_MACH_HTCNIKE=y
+CONFIG_MACH_HTCTITAN=y
+CONFIG_VOGUE_TS=y
+CONFIG_MSM_VOGUESMD=y
+# CONFIG_MSM_LL_DEBUG_UART1 is not set
+# CONFIG_MSM_LL_DEBUG_UART2 is not set
+# CONFIG_MSM_LL_DEBUG_UART3 is not set
+CONFIG_MSM_LL_DEBUG_NONE=y
+CONFIG_MSM7X00A_IDLE=y
+CONFIG_MSM7X00A_USE_GP_TIMER=y
+# CONFIG_MSM7X00A_USE_DG_TIMER is not set
+# CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE_SUSPEND is not set
+CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE=y
+# CONFIG_MSM7X00A_SLEEP_MODE_APPS_SLEEP is not set
+# CONFIG_MSM7X00A_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT is not set
+# CONFIG_MSM7X00A_SLEEP_WAIT_FOR_INTERRUPT is not set
+CONFIG_MSM7X00A_SLEEP_MODE=1
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE_SUSPEND is not set
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE is not set
+# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_APPS_SLEEP is not set
+CONFIG_MSM7X00A_IDLE_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT=y
+# CONFIG_MSM7X00A_IDLE_SLEEP_WAIT_FOR_INTERRUPT is not set
+CONFIG_MSM7X00A_IDLE_SLEEP_MODE=3
+CONFIG_MSM7X00A_IDLE_SLEEP_MIN_TIME=20000000
+CONFIG_MSM7X00A_IDLE_SPIN_TIME=80000
+# CONFIG_MSM_IDLE_STATS is not set
+# CONFIG_MSM_FIQ_SUPPORT is not set
+# CONFIG_MSM_SERIAL_DEBUGGER is not set
+# CONFIG_MSM_SMD is not set
+# CONFIG_MSM_ONCRPCROUTER is not set
+# CONFIG_MSM_HW3D is not set
+CONFIG_MSM_ADSP=y
+# CONFIG_MSM_PERF is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_V6=y
+# CONFIG_CPU_32v6K is not set
+CONFIG_CPU_32v6=y
+CONFIG_CPU_ABRT_EV6=y
+CONFIG_CPU_CACHE_V6=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V6=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+# CONFIG_OUTER_CACHE is not set
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_PREEMPT=y
+CONFIG_HZ=100
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_RESOURCES_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE=""
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+# CONFIG_VFP is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options
+#
+CONFIG_PM=y
+# CONFIG_PM_LEGACY is not set
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_SLEEP=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+# CONFIG_APM_EMULATION is not set
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=y
+# CONFIG_BT_L2CAP is not set
+# CONFIG_BT_SCO is not set
+
+#
+# Bluetooth device drivers
+#
+# CONFIG_BT_HCIBTSDIO is not set
+CONFIG_BT_HCIUART=y
+CONFIG_BT_HCIUART_H4=y
+# CONFIG_BT_HCIUART_BCSP is not set
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIUART_LL_USE_MSM_SERIAL_CLOCK_CONTROL=y
+# CONFIG_BT_HCIVHCI is not set
+# CONFIG_AF_RXRPC is not set
+
+#
+# Wireless
+#
+# CONFIG_CFG80211 is not set
+# CONFIG_WIRELESS_EXT is not set
+# CONFIG_MAC80211 is not set
+# CONFIG_IEEE80211 is not set
+CONFIG_RFKILL=y
+# CONFIG_RFKILL_INPUT is not set
+CONFIG_RFKILL_LEDS=y
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+# CONFIG_MTD is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_EEPROM_93CX6 is not set
+CONFIG_LOW_MEMORY_KILLER=y
+CONFIG_KERNEL_DEBUGGER_CORE=y
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_HAVE_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+CONFIG_NETDEVICES=y
+# CONFIG_NETDEVICES_MULTIQUEUE is not set
+CONFIG_DUMMY=y
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+# CONFIG_PHYLIB is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_AX88796 is not set
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_B44 is not set
+CONFIG_NETDEV_1000=y
+# CONFIG_E1000E_ENABLED is not set
+CONFIG_NETDEV_10000=y
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+# CONFIG_WLAN_80211 is not set
+# CONFIG_WAN is not set
+CONFIG_PPP=y
+# CONFIG_PPP_MULTILINK is not set
+# CONFIG_PPP_FILTER is not set
+CONFIG_PPP_ASYNC=y
+# CONFIG_PPP_SYNC_TTY is not set
+CONFIG_PPP_DEFLATE=y
+CONFIG_PPP_BSDCOMP=y
+# CONFIG_PPP_MPPE is not set
+# CONFIG_PPPOE is not set
+# CONFIG_PPPOL2TP is not set
+# CONFIG_SLIP is not set
+CONFIG_SLHC=y
+# CONFIG_NETCONSOLE is not set
+# CONFIG_MSM_RMNET is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ATKBD is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_GOLDFISH_EVENTS is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_ATI_REMOTE is not set
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+# CONFIG_INPUT_UINPUT is not set
+CONFIG_INPUT_GPIO=y
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_MSM=y
+CONFIG_SERIAL_MSM_CONSOLE=y
+CONFIG_SERIAL_MSM_CLOCK_CONTROL=y
+CONFIG_SERIAL_MSM_RX_WAKEUP=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+CONFIG_DEVMEM=y
+# CONFIG_GOLDFISH_TTY is not set
+# CONFIG_DCC_TTY is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+# CONFIG_I2C_CHARDEV is not set
+
+#
+# I2C Algorithms
+#
+# CONFIG_I2C_ALGOBIT is not set
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+CONFIG_I2C_MSM=y
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_STUB is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_DS1682 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_PCF8575 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+CONFIG_S5K4B1FX=y
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# SPI support
+#
+# CONFIG_SPI is not set
+# CONFIG_SPI_MASTER is not set
+# CONFIG_W1 is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_BATTERY_DS2760 is not set
+# CONFIG_BATTERY_GOLDFISH is not set
+# CONFIG_HWMON is not set
+# CONFIG_WATCHDOG is not set
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB_POSSIBLE=y
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_SM501 is not set
+# CONFIG_HTC_EGPIO is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+# CONFIG_DVB_CORE is not set
+CONFIG_DAB=y
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=y
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_SYS_FOPS is not set
+CONFIG_FB_DEFERRED_IO=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_GOLDFISH is not set
+CONFIG_FB_MSM=y
+# CONFIG_FB_MSM_LOGO is not set
+CONFIG_FB_MSM_REFRESH=y
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+# CONFIG_FONT_8x16 is not set
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+CONFIG_FONT_MINI_4x6=y
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+# CONFIG_LOGO is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+# CONFIG_HID_DEBUG is not set
+# CONFIG_HIDRAW is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+# CONFIG_USB_ARCH_HAS_OHCI is not set
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+# CONFIG_USB is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# USB Function Support
+#
+CONFIG_USB_FUNCTION=y
+CONFIG_USB_FUNCTION_MSM_HSUSB=y
+# CONFIG_USB_FUNCTION_NULL is not set
+# CONFIG_USB_FUNCTION_ZERO is not set
+# CONFIG_USB_FUNCTION_LOOPBACK is not set
+CONFIG_USB_FUNCTION_ADB=y
+# CONFIG_USB_FUNCTION_UMS is not set
+CONFIG_USB_FUNCTION_MASS_STORAGE=y
+# CONFIG_USB_FUNCTION_DIAG is not set
+CONFIG_USB_FUNCTION_ETHER=y
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+CONFIG_MMC_EMBEDDED_SDIO=y
+
+#
+# MMC/SD Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+# CONFIG_MMC_BLOCK_BOUNCE is not set
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD Host Controller Drivers
+#
+CONFIG_MMC_MSM7X00A=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_SWITCH=y
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_S35390A is not set
+
+#
+# SPI RTC drivers
+#
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_GOLDFISH is not set
+# CONFIG_RTC_DRV_MSM7X00A is not set
+CONFIG_RTC_DRV_MSM7X00=y
+
+#
+# Android
+#
+# CONFIG_ANDROID_BINDER_IPC is not set
+# CONFIG_ANDROID_PMEM is not set
+# CONFIG_ANDROID_POWER is not set
+# CONFIG_ANDROID_LOGGER is not set
+# CONFIG_ANDROID_RAM_CONSOLE is not set
+# CONFIG_ANDROID_PARANOID_NETWORK is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+# CONFIG_EXT2_FS_POSIX_ACL is not set
+# CONFIG_EXT2_FS_SECURITY is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+# CONFIG_EXT4DEV_FS is not set
+CONFIG_JBD=y
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_CRAMFS=y
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+# CONFIG_NFS_FS is not set
+# CONFIG_NFSD is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+CONFIG_PRINTK_TIME=y
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+CONFIG_SCHED_DEBUG=y
+CONFIG_SCHEDSTATS=y
+# CONFIG_TIMER_STATS is not set
+# CONFIG_DEBUG_SLAB is not set
+CONFIG_DEBUG_PREEMPT=y
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+CONFIG_DEBUG_SPINLOCK_SLEEP=y
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+# CONFIG_SAMPLES is not set
+# CONFIG_DEBUG_USER is not set
+# CONFIG_DEBUG_ERRORS is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_LL is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+# CONFIG_CRYPTO is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_CRC_CCITT=y
+# CONFIG_CRC16 is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
diff --git a/recipes/linux/linux-replicant_git.bb b/recipes/linux/linux-replicant_git.bb
new file mode 100644
index 0000000000..7919694dfc
--- /dev/null
+++ b/recipes/linux/linux-replicant_git.bb
@@ -0,0 +1,28 @@
+require linux.inc
+
+PV = "2.6.25+${PR}+gitr${SRCREV}"
+PV_htcraphael = "2.6.27+${PR}+gitr${SRCREV}"
+PV_htcdiamond = "2.6.27+${PR}+gitr${SRCREV}"
+PV_htcdream = "2.6.29+${PR}+gitr${SRCREV}"
+PR = "r13"
+
+COMPATIBLE_MACHINE = "htckaiser|htcpolaris|htcvogue|htctitan|htcnike|htcraphael|htcdiamond|htcblackstone|htcdream"
+
+SRCREV = "d2fc2471ba384dabad1c9a4126e2e2372349d34c"
+SRCREV_htcraphael = "905eb169a7d659c221aad5c38aac443065178c4c"
+SRCREV_htcdiamond = "905eb169a7d659c221aad5c38aac443065178c4c"
+SRCREV_htcblackstone = "905eb169a7d659c221aad5c38aac443065178c4c"
+SRCREV_htcdream = "31f124b5a67f6b2da2354e76a01bcc9ca9526f63"
+
+SRC_BRANCH = "htc-vogue"
+SRC_BRANCH_htcraphael = "htc-msm-2.6.27"
+SRC_BRANCH_htcdiamond = "htc-msm-2.6.27"
+SRC_BRANCH_htcblackstone = "htc-msm-2.6.27"
+SRC_BRANCH_htcdream = "leviathan"
+
+SRC_URI = "\
+ git://gitorious.org/replicant/gnulinuxkernel.git;branch=${SRC_BRANCH};protocol=git \
+ file://defconfig \
+"
+
+S = "${WORKDIR}/git"
diff --git a/recipes/linux/linux-rp-2.6.26/defconfig-akita b/recipes/linux/linux-rp-2.6.26/defconfig-akita
index f863b28483..a8308e92e8 100644
--- a/recipes/linux/linux-rp-2.6.26/defconfig-akita
+++ b/recipes/linux/linux-rp-2.6.26/defconfig-akita
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.26
-# Tue Feb 3 01:08:10 2009
+# Tue Nov 3 13:06:26 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -330,7 +330,7 @@ CONFIG_IP_FIB_HASH=y
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_ARPD is not set
-CONFIG_SYN_COOKIES=y
+# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
@@ -376,21 +376,44 @@ CONFIG_NETFILTER_ADVANCED=y
#
# CONFIG_NETFILTER_NETLINK_QUEUE is not set
# CONFIG_NETFILTER_NETLINK_LOG is not set
-# CONFIG_NF_CONNTRACK is not set
+CONFIG_NF_CONNTRACK=m
+# CONFIG_NF_CT_ACCT is not set
+# CONFIG_NF_CONNTRACK_MARK is not set
+# CONFIG_NF_CONNTRACK_EVENTS is not set
+# CONFIG_NF_CT_PROTO_DCCP is not set
+# CONFIG_NF_CT_PROTO_SCTP is not set
+# CONFIG_NF_CT_PROTO_UDPLITE is not set
+# CONFIG_NF_CONNTRACK_AMANDA is not set
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
+# CONFIG_NF_CONNTRACK_PPTP is not set
+# CONFIG_NF_CONNTRACK_SANE is not set
+CONFIG_NF_CONNTRACK_SIP=m
+# CONFIG_NF_CONNTRACK_TFTP is not set
+# CONFIG_NF_CT_NETLINK is not set
CONFIG_NETFILTER_XTABLES=m
# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
+# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
# CONFIG_NETFILTER_XT_TARGET_MARK is not set
# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
+# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set
# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
# CONFIG_NETFILTER_XT_MATCH_ESP is not set
+# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
@@ -404,6 +427,7 @@ CONFIG_NETFILTER_XTABLES=m
# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
# CONFIG_NETFILTER_XT_MATCH_REALM is not set
# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
+# CONFIG_NETFILTER_XT_MATCH_STATE is not set
# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
# CONFIG_NETFILTER_XT_MATCH_STRING is not set
# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
@@ -414,7 +438,9 @@ CONFIG_NETFILTER_XTABLES=m
#
# IP: Netfilter Configuration
#
-CONFIG_IP_NF_QUEUE=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+# CONFIG_IP_NF_QUEUE is not set
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_RECENT=m
CONFIG_IP_NF_MATCH_ECN=m
@@ -425,9 +451,23 @@ CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+# CONFIG_NF_NAT_TFTP is not set
+# CONFIG_NF_NAT_AMANDA is not set
+# CONFIG_NF_NAT_PPTP is not set
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
+# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
@@ -436,6 +476,7 @@ CONFIG_IP_NF_ARP_MANGLE=m
#
# IPv6: Netfilter Configuration
#
+# CONFIG_NF_CONNTRACK_IPV6 is not set
# CONFIG_IP6_NF_QUEUE is not set
# CONFIG_IP6_NF_IPTABLES is not set
# CONFIG_IP_DCCP is not set
diff --git a/recipes/linux/linux-rp-2.6.26/defconfig-spitz b/recipes/linux/linux-rp-2.6.26/defconfig-spitz
index fd2285d4fb..f4a2739b22 100644
--- a/recipes/linux/linux-rp-2.6.26/defconfig-spitz
+++ b/recipes/linux/linux-rp-2.6.26/defconfig-spitz
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.26
-# Tue Feb 3 01:16:06 2009
+# Tue Nov 3 13:06:26 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -330,7 +330,7 @@ CONFIG_IP_FIB_HASH=y
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_ARPD is not set
-CONFIG_SYN_COOKIES=y
+# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
@@ -376,21 +376,44 @@ CONFIG_NETFILTER_ADVANCED=y
#
# CONFIG_NETFILTER_NETLINK_QUEUE is not set
# CONFIG_NETFILTER_NETLINK_LOG is not set
-# CONFIG_NF_CONNTRACK is not set
+CONFIG_NF_CONNTRACK=m
+# CONFIG_NF_CT_ACCT is not set
+# CONFIG_NF_CONNTRACK_MARK is not set
+# CONFIG_NF_CONNTRACK_EVENTS is not set
+# CONFIG_NF_CT_PROTO_DCCP is not set
+# CONFIG_NF_CT_PROTO_SCTP is not set
+# CONFIG_NF_CT_PROTO_UDPLITE is not set
+# CONFIG_NF_CONNTRACK_AMANDA is not set
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
+# CONFIG_NF_CONNTRACK_PPTP is not set
+# CONFIG_NF_CONNTRACK_SANE is not set
+CONFIG_NF_CONNTRACK_SIP=m
+# CONFIG_NF_CONNTRACK_TFTP is not set
+# CONFIG_NF_CT_NETLINK is not set
CONFIG_NETFILTER_XTABLES=m
# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
+# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
# CONFIG_NETFILTER_XT_TARGET_MARK is not set
# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
+# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set
# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
# CONFIG_NETFILTER_XT_MATCH_ESP is not set
+# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
@@ -404,6 +427,7 @@ CONFIG_NETFILTER_XTABLES=m
# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
# CONFIG_NETFILTER_XT_MATCH_REALM is not set
# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
+# CONFIG_NETFILTER_XT_MATCH_STATE is not set
# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
# CONFIG_NETFILTER_XT_MATCH_STRING is not set
# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
@@ -414,7 +438,9 @@ CONFIG_NETFILTER_XTABLES=m
#
# IP: Netfilter Configuration
#
-CONFIG_IP_NF_QUEUE=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+# CONFIG_IP_NF_QUEUE is not set
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_RECENT=m
CONFIG_IP_NF_MATCH_ECN=m
@@ -425,9 +451,23 @@ CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+# CONFIG_NF_NAT_TFTP is not set
+# CONFIG_NF_NAT_AMANDA is not set
+# CONFIG_NF_NAT_PPTP is not set
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
+# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
@@ -436,6 +476,7 @@ CONFIG_IP_NF_ARP_MANGLE=m
#
# IPv6: Netfilter Configuration
#
+# CONFIG_NF_CONNTRACK_IPV6 is not set
# CONFIG_IP6_NF_QUEUE is not set
# CONFIG_IP6_NF_IPTABLES is not set
# CONFIG_IP_DCCP is not set
diff --git a/recipes/linux/linux-rp_2.6.26.bb b/recipes/linux/linux-rp_2.6.26.bb
index 2d6c9f6742..c508f27c1f 100644
--- a/recipes/linux/linux-rp_2.6.26.bb
+++ b/recipes/linux/linux-rp_2.6.26.bb
@@ -1,6 +1,6 @@
require linux-rp.inc
-PR = "r11"
+PR = "r12"
DEFAULT_PREFERENCE = "-1"
DEFAULT_PREFERENCE_qemuarm = "-1"
diff --git a/recipes/linux/linux-sgh-i900/sgh_i900_defconfig b/recipes/linux/linux-sgh-i900/sgh_i900_defconfig
new file mode 100644
index 0000000000..bca41c1090
--- /dev/null
+++ b/recipes/linux/linux-sgh-i900/sgh_i900_defconfig
@@ -0,0 +1,1583 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.29
+# Thu Oct 1 16:49:04 2009
+#
+CONFIG_ARM=y
+CONFIG_HAVE_PWM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_MMU=y
+# CONFIG_NO_IOPORT is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ARCH_MTD_XIP=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_CLASSIC_RCU=y
+# CONFIG_TREE_RCU is not set
+# CONFIG_PREEMPT_RCU is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_PREEMPT_RCU_TRACE is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=17
+CONFIG_GROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_USER_SCHED=y
+# CONFIG_CGROUP_SCHED is not set
+# CONFIG_CGROUPS is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+CONFIG_RELAY=y
+CONFIG_NAMESPACES=y
+# CONFIG_UTS_NS is not set
+# CONFIG_IPC_NS is not set
+# CONFIG_USER_NS is not set
+# CONFIG_PID_NS is not set
+# CONFIG_NET_NS is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_PANIC_TIMEOUT=0
+# CONFIG_EMBEDDED is not set
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_ASHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLUB_DEBUG=y
+CONFIG_COMPAT_BRK=y
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+CONFIG_TRACEPOINTS=y
+CONFIG_MARKERS=y
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_AS is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_FREEZER=y
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KIRKWOOD is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_LOKI is not set
+# CONFIG_ARCH_MV78XX0 is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_PNX4008 is not set
+CONFIG_ARCH_PXA=y
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_MSM is not set
+# CONFIG_ARCH_W90X900 is not set
+
+#
+# Intel PXA2xx/PXA3xx Implementations
+#
+
+#
+# Supported PXA3xx Processor Variants
+#
+CONFIG_CPU_PXA300=y
+CONFIG_CPU_PXA310=y
+# CONFIG_CPU_PXA320 is not set
+# CONFIG_CPU_PXA930 is not set
+# CONFIG_CPU_PXA935 is not set
+# CONFIG_ARCH_GUMSTIX is not set
+# CONFIG_MACH_INTELMOTE2 is not set
+# CONFIG_ARCH_LUBBOCK is not set
+# CONFIG_MACH_LOGICPD_PXA270 is not set
+# CONFIG_MACH_MAINSTONE is not set
+# CONFIG_MACH_MP900C is not set
+# CONFIG_ARCH_PXA_IDP is not set
+# CONFIG_PXA_SHARPSL is not set
+# CONFIG_ARCH_VIPER is not set
+# CONFIG_ARCH_PXA_ESERIES is not set
+# CONFIG_TRIZEPS_PXA is not set
+# CONFIG_MACH_H5000 is not set
+# CONFIG_MACH_EM_X270 is not set
+# CONFIG_MACH_COLIBRI is not set
+# CONFIG_MACH_ZYLONITE is not set
+CONFIG_MACH_SGH_I780=y
+CONFIG_MACH_SGH_I900=y
+# CONFIG_MACH_LITTLETON is not set
+# CONFIG_MACH_TAVOREVB is not set
+# CONFIG_MACH_SAAR is not set
+# CONFIG_MACH_ARMCORE is not set
+# CONFIG_MACH_CM_X300 is not set
+# CONFIG_MACH_MAGICIAN is not set
+# CONFIG_MACH_MIOA701 is not set
+# CONFIG_MACH_PCM027 is not set
+# CONFIG_ARCH_PXA_PALM is not set
+# CONFIG_PXA_EZX is not set
+CONFIG_PXA3xx=y
+CONFIG_PXA_SSP=y
+# CONFIG_PXA_PWM is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_XSC3=y
+CONFIG_CPU_32v5=y
+CONFIG_CPU_ABRT_EV5T=y
+CONFIG_CPU_PABRT_NOIFAR=y
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_TLB_V4WBI=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+CONFIG_IO_36=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+CONFIG_OUTER_CACHE=y
+CONFIG_CACHE_XSC3L2=y
+CONFIG_IWMMXT=y
+CONFIG_COMMON_CLKDEV=y
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_TICK_ONESHOT=y
+# CONFIG_NO_HZ is not set
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMSPLIT_2G is not set
+# CONFIG_VMSPLIT_1G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_PREEMPT is not set
+CONFIG_HZ=100
+CONFIG_AEABI=y
+CONFIG_OABI_COMPAT=y
+CONFIG_ARCH_FLATMEM_HAS_HOLES=y
+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4096
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=0
+CONFIG_VIRT_TO_BUS=y
+CONFIG_UNEVICTABLE_LRU=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0
+CONFIG_ZBOOT_ROM_BSS=0
+CONFIG_CMDLINE=""
+# CONFIG_XIP_KERNEL is not set
+CONFIG_KEXEC=y
+CONFIG_ATAGS_PROC=y
+
+#
+# CPU Power Management
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+# CONFIG_CPU_FREQ_DEBUG is not set
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+# CONFIG_CPU_FREQ_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_MIN_TICKS=10
+CONFIG_CPU_FREQ_SAMPLING_LATENCY_MULTIPLIER=1000
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_FPE_NWFPE=y
+# CONFIG_FPE_NWFPE_XP is not set
+# CONFIG_FPE_FASTFPE is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_HAVE_AOUT=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options
+#
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_SLEEP=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HAS_WAKELOCK=y
+CONFIG_HAS_EARLYSUSPEND=y
+CONFIG_WAKELOCK=y
+CONFIG_WAKELOCK_STAT=y
+CONFIG_USER_WAKELOCK=y
+CONFIG_EARLYSUSPEND=y
+# CONFIG_NO_USER_SPACE_SCREEN_ACCESS_CONTROL is not set
+# CONFIG_CONSOLE_EARLYSUSPEND is not set
+CONFIG_FB_EARLYSUSPEND=y
+# CONFIG_APM_EMULATION is not set
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_COMPAT_NET_DEV_OPS=y
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+# CONFIG_INET_LRO is not set
+CONFIG_INET_DIAG=m
+CONFIG_INET_TCP_DIAG=m
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_ANDROID_PARANOID_NETWORK is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_NET_DSA is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_SCHED is not set
+# CONFIG_DCB is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+CONFIG_RXKAD=m
+CONFIG_PHONET=m
+CONFIG_WIRELESS=y
+CONFIG_CFG80211=y
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_NL80211=y
+CONFIG_WIRELESS_OLD_REGULATORY=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+CONFIG_LIB80211=y
+CONFIG_LIB80211_DEBUG=y
+CONFIG_MAC80211=y
+
+#
+# Rate control algorithm selection
+#
+CONFIG_MAC80211_RC_MINSTREL=y
+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel"
+CONFIG_MAC80211_MESH=y
+# CONFIG_MAC80211_LEDS is not set
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+# CONFIG_WIMAX is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_FIRMWARE_IN_KERNEL is not set
+# CONFIG_EXTRA_FIRMWARE is not set
+# CONFIG_EXTRA_FIRMWARE_DIR is not set
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
+# CONFIG_MTD_TESTS is not set
+
+#
+# User Modules And Translation Layers
+#
+# CONFIG_MTD_CHAR is not set
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_SHARP_SL is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+# CONFIG_MTD_NAND is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+
+#
+# UBI - Unsorted block images
+#
+# CONFIG_MTD_UBI is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+# CONFIG_BLK_DEV_LOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=2
+CONFIG_BLK_DEV_RAM_SIZE=16384
+# CONFIG_BLK_DEV_XIP is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_MISC_DEVICES is not set
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+# CONFIG_NET_ETHERNET is not set
+# CONFIG_NETDEV_1000 is not set
+# CONFIG_NETDEV_10000 is not set
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+CONFIG_WLAN_80211=y
+CONFIG_LIBERTAS=m
+# CONFIG_LIBERTAS_USB is not set
+# CONFIG_LIBERTAS_SDIO is not set
+CONFIG_LIBERTAS_SPI=m
+# CONFIG_LIBERTAS_DEBUG is not set
+# CONFIG_LIBERTAS_THINFIRM is not set
+# CONFIG_USB_ZD1201 is not set
+# CONFIG_USB_NET_RNDIS_WLAN is not set
+# CONFIG_RTL8187 is not set
+# CONFIG_MAC80211_HWSIM is not set
+# CONFIG_P54_COMMON is not set
+# CONFIG_IWLWIFI_LEDS is not set
+# CONFIG_HOSTAP is not set
+# CONFIG_B43 is not set
+# CONFIG_B43LEGACY is not set
+# CONFIG_ZD1211RW is not set
+# CONFIG_RT2X00 is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_WAN is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=m
+# CONFIG_INPUT_POLLDEV is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=240
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=400
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+# CONFIG_INPUT_KEYRESET is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ATKBD is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+CONFIG_KEYBOARD_PXA27x=y
+CONFIG_KEYBOARD_GPIO=y
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
+# CONFIG_TOUCHSCREEN_FUJITSU is not set
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_INEXIO is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI is not set
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+CONFIG_TOUCHSCREEN_WM97XX=y
+# CONFIG_TOUCHSCREEN_WM9705 is not set
+# CONFIG_TOUCHSCREEN_WM9712 is not set
+CONFIG_TOUCHSCREEN_WM9713=y
+# CONFIG_TOUCHSCREEN_WM97XX_MAINSTONE is not set
+CONFIG_TOUCHSCREEN_WM97XX_ZYLONITE=y
+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
+# CONFIG_TOUCHSCREEN_TSC2007 is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_ATI_REMOTE is not set
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+# CONFIG_INPUT_CM109 is not set
+# CONFIG_INPUT_UINPUT is not set
+# CONFIG_INPUT_GPIO is not set
+# CONFIG_INPUT_KEYCHORD is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_SERPORT=m
+# CONFIG_SERIO_RAW is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_VT_HW_CONSOLE_BINDING is not set
+CONFIG_DEVMEM=y
+# CONFIG_DEVKMEM is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_PXA=y
+CONFIG_SERIAL_PXA_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_SGH_MODEM is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_IPMI_HANDLER is not set
+CONFIG_HW_RANDOM=y
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+# CONFIG_DCC_TTY is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_ALGOBIT=y
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_GPIO=y
+# CONFIG_I2C_OCORES is not set
+CONFIG_I2C_PXA=y
+# CONFIG_I2C_PXA_SLAVE is not set
+# CONFIG_I2C_SIMTEC is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_TINY_USB is not set
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_PCA_PLATFORM is not set
+# CONFIG_I2C_STUB is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_DS1682 is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_PCF8575 is not set
+# CONFIG_SENSORS_PCA9539 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_SENSORS_PCA963X is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+# CONFIG_SPI_BITBANG is not set
+# CONFIG_SPI_GPIO is not set
+CONFIG_SPI_PXA2XX=y
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SPIDEV=y
+# CONFIG_SPI_TLE62X0 is not set
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+# CONFIG_GPIO_SYSFS is not set
+
+#
+# Memory mapped GPIO expanders:
+#
+
+#
+# I2C GPIO expanders:
+#
+# CONFIG_GPIO_MAX732X is not set
+# CONFIG_GPIO_PCA953X is not set
+# CONFIG_GPIO_PCF857X is not set
+
+#
+# PCI GPIO expanders:
+#
+
+#
+# SPI GPIO expanders:
+#
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_W1 is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_PDA_POWER=y
+# CONFIG_BATTERY_DS2760 is not set
+# CONFIG_BATTERY_FAKE_BATTERY is not set
+# CONFIG_BATTERY_WM97XX is not set
+# CONFIG_BATTERY_BQ27x00 is not set
+CONFIG_BATTERY_SGH=y
+# CONFIG_HWMON is not set
+# CONFIG_THERMAL is not set
+# CONFIG_THERMAL_HWMON is not set
+# CONFIG_WATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_ASIC3 is not set
+# CONFIG_HTC_EGPIO is not set
+CONFIG_HTC_PASIC3=y
+# CONFIG_UCB1400_CORE is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TWL4030_CORE is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_MFD_T7L66XB is not set
+# CONFIG_MFD_TC6387XB is not set
+# CONFIG_MFD_TC6393XB is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_PCF50633 is not set
+
+#
+# Multimedia devices
+#
+
+#
+# Multimedia core support
+#
+# CONFIG_VIDEO_DEV is not set
+# CONFIG_DVB_CORE is not set
+# CONFIG_VIDEO_MEDIA is not set
+
+#
+# Multimedia drivers
+#
+# CONFIG_DAB is not set
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=y
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+# CONFIG_FB_DDC is not set
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_SYS_FOPS is not set
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_PXA=y
+CONFIG_FB_PXA_OVERLAY=y
+CONFIG_FB_PXA_SMARTPANEL=y
+CONFIG_FB_PXA_PARAMETERS=y
+# CONFIG_FB_MBX is not set
+# CONFIG_FB_W100 is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=y
+# CONFIG_LCD_LTV350QV is not set
+# CONFIG_LCD_ILI9320 is not set
+# CONFIG_LCD_TDO24M is not set
+# CONFIG_LCD_VGG2432A4 is not set
+CONFIG_LCD_PLATFORM=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+# CONFIG_BACKLIGHT_GENERIC is not set
+# CONFIG_BACKLIGHT_PWM is not set
+
+#
+# Display device support
+#
+CONFIG_DISPLAY_SUPPORT=m
+
+#
+# Display hardware drivers
+#
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+# CONFIG_FONT_8x16 is not set
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+CONFIG_FONT_MINI_4x6=y
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+# CONFIG_LOGO is not set
+CONFIG_SOUND=y
+# CONFIG_SOUND_OSS_CORE is not set
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+CONFIG_SND_SEQUENCER=y
+# CONFIG_SND_SEQ_DUMMY is not set
+# CONFIG_SND_MIXER_OSS is not set
+# CONFIG_SND_PCM_OSS is not set
+# CONFIG_SND_SEQUENCER_OSS is not set
+# CONFIG_SND_HRTIMER is not set
+# CONFIG_SND_DYNAMIC_MINORS is not set
+# CONFIG_SND_SUPPORT_OLD_API is not set
+# CONFIG_SND_VERBOSE_PROCFS is not set
+CONFIG_SND_VERBOSE_PRINTK=y
+CONFIG_SND_DEBUG=y
+# CONFIG_SND_DEBUG_VERBOSE is not set
+CONFIG_SND_VMASTER=y
+CONFIG_SND_AC97_CODEC=y
+# CONFIG_SND_DRIVERS is not set
+CONFIG_SND_ARM=y
+CONFIG_SND_PXA2XX_PCM=m
+CONFIG_SND_PXA2XX_LIB=y
+CONFIG_SND_PXA2XX_LIB_AC97=y
+CONFIG_SND_PXA2XX_AC97=m
+# CONFIG_SND_SPI is not set
+# CONFIG_SND_USB is not set
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_AC97_BUS=y
+CONFIG_SND_PXA2XX_SOC=y
+CONFIG_SND_PXA2XX_SOC_AC97=y
+CONFIG_SND_SOC_SGH=y
+CONFIG_SND_SOC_I2C_AND_SPI=y
+# CONFIG_SND_SOC_ALL_CODECS is not set
+CONFIG_SND_SOC_WM9713=y
+# CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=y
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+CONFIG_HID_DEBUG=y
+# CONFIG_HIDRAW is not set
+
+#
+# USB Input Devices
+#
+# CONFIG_USB_HID is not set
+# CONFIG_HID_PID is not set
+
+#
+# Special HID drivers
+#
+CONFIG_HID_COMPAT=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+CONFIG_USB=m
+# CONFIG_USB_DEBUG is not set
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+CONFIG_USB_DEVICE_CLASS=y
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_SUSPEND is not set
+# CONFIG_USB_OTG is not set
+CONFIG_USB_MON=m
+# CONFIG_USB_WUSB is not set
+# CONFIG_USB_WUSB_CBAF is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_HWA_HCD is not set
+
+#
+# Enable Host or Gadget support to see Inventra options
+#
+# CONFIG_USB_MUSB_HDRC is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+# CONFIG_USB_WDM is not set
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
+#
+
+#
+# see USB_STORAGE Help for more information
+#
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+
+#
+# USB port drivers
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_SEVSEG is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_BERRY_CHARGE is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_PHIDGET is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+# CONFIG_USB_TEST is not set
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_VST is not set
+# CONFIG_USB_GADGET is not set
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_UNSAFE_RESUME=y
+# CONFIG_SDIO_FORCE_OPCOND_1_8V is not set
+# CONFIG_SDIO_WORKAROUND_MARVELL_CIS_B1_BUG is not set
+# CONFIG_MMC_EMBEDDED_SDIO is not set
+# CONFIG_MMC_PARANOID_SD_INIT is not set
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_BOUNCE=y
+# CONFIG_MMC_BLOCK_DEFERRED_RESUME is not set
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_PXA=y
+CONFIG_MMC_SDHCI=y
+# CONFIG_MMC_SPI is not set
+# CONFIG_MEMSTICK is not set
+# CONFIG_ACCESSIBILITY is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_PCA9532 is not set
+CONFIG_LEDS_GPIO=y
+# CONFIG_LEDS_PCA955X is not set
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_BACKLIGHT=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+# CONFIG_LEDS_TRIGGER_SLEEP is not set
+# CONFIG_SWITCH is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+CONFIG_RTC_INTF_ALARM=y
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_DS3234 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_SA1100 is not set
+CONFIG_RTC_DRV_PXA=y
+# CONFIG_DMADEVICES is not set
+# CONFIG_REGULATOR is not set
+# CONFIG_UIO is not set
+CONFIG_STAGING=y
+# CONFIG_STAGING_EXCLUDE_BUILD is not set
+# CONFIG_MEILHAUS is not set
+# CONFIG_USB_IP_COMMON is not set
+# CONFIG_W35UND is not set
+# CONFIG_PRISM2_USB is not set
+# CONFIG_ECHO is not set
+# CONFIG_USB_ATMEL is not set
+# CONFIG_AGNX is not set
+# CONFIG_OTUS is not set
+# CONFIG_COMEDI is not set
+# CONFIG_ASUS_OLED is not set
+# CONFIG_INPUT_MIMIO is not set
+# CONFIG_TRANZPORT is not set
+
+#
+# Android
+#
+# CONFIG_ANDROID is not set
+# CONFIG_ANDROID_BINDER_IPC is not set
+# CONFIG_ANDROID_LOGGER is not set
+# CONFIG_ANDROID_RAM_CONSOLE is not set
+# CONFIG_ANDROID_RAM_CONSOLE_ENABLE_VERBOSE is not set
+# CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION is not set
+# CONFIG_ANDROID_RAM_CONSOLE_EARLY_INIT is not set
+# CONFIG_ANDROID_TIMED_OUTPUT is not set
+# CONFIG_ANDROID_TIMED_GPIO is not set
+# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+# CONFIG_EXT4_FS is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+CONFIG_FILE_LOCKING=y
+# CONFIG_XFS_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_BTRFS_FS is not set
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_CONFIGFS_FS=y
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_ECRYPT_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_YAFFS_FS=y
+CONFIG_YAFFS_YAFFS1=y
+# CONFIG_YAFFS_9BYTE_TAGS is not set
+# CONFIG_YAFFS_DOES_ECC is not set
+CONFIG_YAFFS_YAFFS2=y
+CONFIG_YAFFS_AUTO_YAFFS2=y
+# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set
+# CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set
+# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set
+CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
+# CONFIG_JFFS2_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_SQUASHFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_NETWORK_FILESYSTEMS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=m
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+CONFIG_NLS_UTF8=y
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=1024
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_TIMER_STATS is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+CONFIG_NOP_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_RING_BUFFER=y
+CONFIG_TRACING=y
+
+#
+# Tracers
+#
+# CONFIG_FUNCTION_TRACER is not set
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_SCHED_TRACER is not set
+CONFIG_CONTEXT_SWITCH_TRACER=y
+# CONFIG_BOOT_TRACER is not set
+# CONFIG_TRACE_BRANCH_PROFILING is not set
+# CONFIG_STACK_TRACER is not set
+# CONFIG_FTRACE_STARTUP_TEST is not set
+# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+# CONFIG_DEBUG_USER is not set
+CONFIG_DEBUG_ERRORS=y
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_LL is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+# CONFIG_CRYPTO_FIPS is not set
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+# CONFIG_CRYPTO_GF128MUL is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_CRYPTD is not set
+CONFIG_CRYPTO_AUTHENC=m
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+# CONFIG_CRYPTO_CCM is not set
+# CONFIG_CRYPTO_GCM is not set
+# CONFIG_CRYPTO_SEQIV is not set
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=m
+# CONFIG_CRYPTO_CTR is not set
+# CONFIG_CRYPTO_CTS is not set
+CONFIG_CRYPTO_ECB=y
+# CONFIG_CRYPTO_LRW is not set
+CONFIG_CRYPTO_PCBC=m
+# CONFIG_CRYPTO_XTS is not set
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=m
+# CONFIG_CRYPTO_XCBC is not set
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=m
+# CONFIG_CRYPTO_MD4 is not set
+CONFIG_CRYPTO_MD5=y
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+CONFIG_CRYPTO_SHA1=m
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=y
+# CONFIG_CRYPTO_ANUBIS is not set
+CONFIG_CRYPTO_ARC4=y
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_DES is not set
+CONFIG_CRYPTO_FCRYPT=m
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SALSA20 is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+# CONFIG_CRYPTO_LZO is not set
+
+#
+# Random Number Generation
+#
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+# CONFIG_CRYPTO_HW is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+# CONFIG_CRC_CCITT is not set
+# CONFIG_CRC16 is not set
+CONFIG_CRC_T10DIF=m
+CONFIG_CRC_ITU_T=y
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
diff --git a/recipes/linux/linux-sgh-i900/wm97xx-ts-fix.patch b/recipes/linux/linux-sgh-i900/wm97xx-ts-fix.patch
new file mode 100644
index 0000000000..1a36c337c5
--- /dev/null
+++ b/recipes/linux/linux-sgh-i900/wm97xx-ts-fix.patch
@@ -0,0 +1,130 @@
+diff -ru git/drivers/input/touchscreen/wm97xx-core.c and/wm97xx-core.c
+--- git/drivers/input/touchscreen/wm97xx-core.c 2009-11-14 20:38:03.000000000 +0200
++++ git/drivers/input/touchscreen/wm97xx-core.c 2009-11-16 13:21:13.949140354 +0200
+@@ -70,13 +70,11 @@
+ * Documentation/input/input-programming.txt for more details.
+ */
+
+-
+-static int abs_x[3] = {350, 3900, 5};
++static int abs_x[3] = {350, 3900, 5};
+ module_param_array(abs_x, int, NULL, 0);
+ MODULE_PARM_DESC(abs_x, "Touchscreen absolute X min, max, fuzz");
+
+-
+-static int abs_y[3] = {320, 3950, 5}; // Zylonite: 320, 3950
++static int abs_y[3] = {320, 3750, 40};
+ module_param_array(abs_y, int, NULL, 0);
+ MODULE_PARM_DESC(abs_y, "Touchscreen absolute Y min, max, fuzz");
+
+@@ -411,7 +409,6 @@
+ wm->pen_is_down = 0;
+ dev_dbg(wm->dev, "pen up\n");
+ input_report_abs(wm->input_dev, ABS_PRESSURE, 0);
+- input_report_key(wm->input_dev, BTN_TOUCH, 0);
+ input_sync(wm->input_dev);
+ } else if (!(rc & RC_AGAIN)) {
+ /* We need high frequency updates only while
+@@ -429,22 +426,13 @@
+ }
+
+ } else if (rc & RC_VALID) {
+- int absy, absx;
+ dev_dbg(wm->dev,
+ "pen down: x=%x:%d, y=%x:%d, pressure=%x:%d\n",
+ data.x >> 12, data.x & 0xfff, data.y >> 12,
+ data.y & 0xfff, data.p >> 12, data.p & 0xfff);
+- absx = data.x & 0xfff;
+- if (machine_is_sgh_i780())
+- absx = (wm->input_dev->absmax[ABS_X] - absx) + wm->input_dev->absmin[ABS_X];
+- input_report_abs(wm->input_dev, ABS_X, absx);
+- //invert y coordinate
+- absy = data.y & 0xfff;
+- if (machine_is_sgh_i900())
+- absy = (wm->input_dev->absmax[ABS_Y] - absy) + wm->input_dev->absmin[ABS_Y];
+- input_report_abs(wm->input_dev, ABS_Y, absy);
++ input_report_abs(wm->input_dev, ABS_X, data.x & 0xfff);
++ input_report_abs(wm->input_dev, ABS_Y, data.y & 0xfff);
+ input_report_abs(wm->input_dev, ABS_PRESSURE, data.p & 0xfff);
+- input_report_key(wm->input_dev, BTN_TOUCH, 1);
+ input_sync(wm->input_dev);
+ wm->pen_is_down = 1;
+ wm->ts_reader_interval = wm->ts_reader_min_interval;
+@@ -641,23 +629,12 @@
+ wm->input_dev->open = wm97xx_ts_input_open;
+ wm->input_dev->close = wm97xx_ts_input_close;
+ set_bit(EV_ABS, wm->input_dev->evbit);
+- set_bit(EV_KEY, wm->input_dev->evbit);
+ set_bit(ABS_X, wm->input_dev->absbit);
+ set_bit(ABS_Y, wm->input_dev->absbit);
+ set_bit(ABS_PRESSURE, wm->input_dev->absbit);
+- set_bit(BTN_TOUCH, wm->input_dev->keybit);
+-
+- if(machine_is_sgh_i780()){
+- input_set_abs_params(wm->input_dev, ABS_X, 350, 3900, 5, 0);
+- } else if(machine_is_sgh_i900()){
+- input_set_abs_params(wm->input_dev, ABS_X, 0, 39181660, 5, 0);
+- } else input_set_abs_params(wm->input_dev, ABS_X, abs_x[0], abs_x[1],
++ input_set_abs_params(wm->input_dev, ABS_X, abs_x[0], abs_x[1],
+ abs_x[2], 0);
+- if(machine_is_sgh_i780()){
+- input_set_abs_params(wm->input_dev, ABS_Y, 290, 3900, 5, 0);
+- } else if(machine_is_sgh_i900()){
+- input_set_abs_params(wm->input_dev, ABS_Y, 0, 65412060, 5, 0);
+- } else input_set_abs_params(wm->input_dev, ABS_Y, abs_y[0], abs_y[1],
++ input_set_abs_params(wm->input_dev, ABS_Y, abs_y[0], abs_y[1],
+ abs_y[2], 0);
+ input_set_abs_params(wm->input_dev, ABS_PRESSURE, abs_p[0], abs_p[1],
+ abs_p[2], 0);
+diff -ru git/drivers/input/touchscreen/zylonite-wm97xx.c and/zylonite-wm97xx.c
+--- git/drivers/input/touchscreen/zylonite-wm97xx.c 2009-11-14 20:38:03.000000000 +0200
++++ git/drivers/input/touchscreen/zylonite-wm97xx.c 2009-11-16 13:17:21.292645713 +0200
+@@ -76,9 +76,6 @@
+ module_param(ac97_touch_slot, int, 0);
+ MODULE_PARM_DESC(ac97_touch_slot, "Touch screen data slot AC97 number");
+
+-static int calibration[7] = {11877, 137, -4688902, 231, -17973, 69206765, 163940}; //omnia calibration parameters
+-
+-
+ /* flush AC97 slot 5 FIFO machines */
+ static void wm97xx_acc_pen_up(struct wm97xx *wm)
+ {
+@@ -101,7 +98,6 @@
+ {
+ u16 x, y, p = 0x100 | WM97XX_ADCSEL_PRES;
+ int reads = 0;
+- int absx, absy;
+ static u16 last, tries;
+ static int skip_one;
+
+@@ -149,27 +145,9 @@
+
+ /* coordinate is good */
+ tries = 0;
+- if(machine_is_sgh_i900()){
+- x &= 0xfff;
+- y &= 0xfff;
+- absx = (calibration[0] * x + calibration[1] * y +
+- calibration[2]);// / calibration[6];
+- absy = (calibration[3] * x + calibration[4] * y +
+- calibration[5]);// / calibration[6];
+- if(absx<0) absx = 0;
+- if(absy<0) absy = 0;
+- } else {
+- absx = x & 0xfff;
+- if (machine_is_sgh_i780())
+- absx = (wm->input_dev->absmax[ABS_X] - absx) + wm->input_dev->absmin[ABS_X];
+-
+- absy = y & 0xfff;
+- }
+-
+- input_report_abs(wm->input_dev, ABS_X, absx);
+- input_report_abs(wm->input_dev, ABS_Y, absy);
+- p &= 0xfff;
+- input_report_abs(wm->input_dev, ABS_PRESSURE, p);
++ input_report_abs(wm->input_dev, ABS_X, x & 0xfff);
++ input_report_abs(wm->input_dev, ABS_Y, y & 0xfff);
++ input_report_abs(wm->input_dev, ABS_PRESSURE, p & 0xfff);
+ input_report_key(wm->input_dev, BTN_TOUCH, (p != 0));
+ input_sync(wm->input_dev);
+ reads++;
diff --git a/recipes/linux/linux-sgh-i900_2.6.29.bb b/recipes/linux/linux-sgh-i900_2.6.29.bb
new file mode 100644
index 0000000000..5bd2f4f0f3
--- /dev/null
+++ b/recipes/linux/linux-sgh-i900_2.6.29.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Linux 2.6.29 kernel for the Samsung Omnia SGH-i900."
+SECTION = "kernel"
+LICENSE = "GPL"
+
+RDEPENDS += "marvell-gspi-fw"
+
+COMPATIBLE_MACHINE = "sgh-i900"
+
+SRC_URI = "git://andromnia.git.sourceforge.net/gitroot/andromnia/andromnia;protocol=git;branch=master \
+ file://wm97xx-ts-fix.patch;patch=1 \
+ file://sgh_i900_defconfig"
+
+S = "${WORKDIR}/git"
+
+inherit kernel
+
+FILES_kernel-image = "/boot/${KERNEL_IMAGETYPE}*"
+
+do_configure_prepend() {
+ install -m 0644 ${WORKDIR}/sgh_i900_defconfig ${S}/.config
+}
diff --git a/recipes/linux/linux.inc b/recipes/linux/linux.inc
index 044d4130c5..ed96ce6cf5 100644
--- a/recipes/linux/linux.inc
+++ b/recipes/linux/linux.inc
@@ -162,6 +162,7 @@ do_devicetree_image() {
if test -n "${KERNEL_DEVICETREE}" ; then
dtc -I dts -O dtb ${KERNEL_DEVICETREE_FLAGS} -o devicetree ${KERNEL_DEVICETREE}
install -m 0644 devicetree ${D}/boot/devicetree-${KERNEL_VERSION}
+ install -d ${DEPLOY_DIR_IMAGE}
install -m 0644 devicetree ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.dtb
cd ${DEPLOY_DIR_IMAGE}
rm -f ${KERNEL_IMAGE_SYMLINK_NAME}.dtb
@@ -169,7 +170,7 @@ do_devicetree_image() {
fi
}
-addtask devicetree_image after do_deploy before do_package
+addtask devicetree_image after do_install before do_package do_deploy
pkg_postinst_kernel-devicetree () {
cd /${KERNEL_IMAGEDEST}; update-alternatives --install /${KERNEL_IMAGEDEST}/devicetree devicetree devicetree-${KERNEL_VERSION} ${KERNEL_PRIORITY} || true
diff --git a/recipes/linux/linux/simone/defconfig b/recipes/linux/linux/simone/defconfig
new file mode 100644
index 0000000000..72e6c48d25
--- /dev/null
+++ b/recipes/linux/linux/simone/defconfig
@@ -0,0 +1,1751 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.32
+# Thu Dec 3 18:28:09 2009
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_CONSTRUCTORS=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_TREE_RCU_TRACE is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_GROUP_SCHED is not set
+# CONFIG_CGROUPS is not set
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
+# CONFIG_RELAY is not set
+# CONFIG_NAMESPACES is not set
+# CONFIG_BLK_DEV_INITRD is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_VM_EVENT_COUNTERS=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+CONFIG_PROFILING=y
+CONFIG_TRACEPOINTS=y
+CONFIG_OPROFILE=m
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_CLK=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_SLOW_WORK=y
+# CONFIG_SLOW_WORK_DEBUG is not set
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_BLOCK=y
+# CONFIG_LBDAF is not set
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+# CONFIG_IOSCHED_AS is not set
+# CONFIG_IOSCHED_DEADLINE is not set
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_AS is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_FREEZER=y
+
+#
+# System Type
+#
+CONFIG_MMU=y
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_GEMINI is not set
+# CONFIG_ARCH_EBSA110 is not set
+CONFIG_ARCH_EP93XX=y
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_STMP3XXX is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_NOMADIK is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KIRKWOOD is not set
+# CONFIG_ARCH_LOKI is not set
+# CONFIG_ARCH_MV78XX0 is not set
+# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_MMP is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_W90X900 is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_MSM is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5PC1XX is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_U300 is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_BCMRING is not set
+
+#
+# Cirrus EP93xx Implementation Options
+#
+CONFIG_CRUNCH=y
+
+#
+# EP93xx Platforms
+#
+# CONFIG_EP93XX_SDCE3_SYNC_PHYS_OFFSET is not set
+CONFIG_EP93XX_SDCE0_PHYS_OFFSET=y
+# CONFIG_EP93XX_SDCE1_PHYS_OFFSET is not set
+# CONFIG_EP93XX_SDCE2_PHYS_OFFSET is not set
+# CONFIG_EP93XX_SDCE3_ASYNC_PHYS_OFFSET is not set
+CONFIG_MACH_EDB93XX=y
+CONFIG_MACH_EDB9302A=y
+CONFIG_MACH_EDB9307A=y
+CONFIG_MACH_EDB9315A=y
+CONFIG_MACH_SIM_ONE=y
+CONFIG_EP93XX_EARLY_UART1=y
+# CONFIG_EP93XX_EARLY_UART2 is not set
+# CONFIG_EP93XX_EARLY_UART3 is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_ARM920T=y
+CONFIG_CPU_32v4T=y
+CONFIG_CPU_ABRT_EV4T=y
+CONFIG_CPU_PABRT_LEGACY=y
+CONFIG_CPU_CACHE_V4WT=y
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_COPY_V4WB=y
+CONFIG_CPU_TLB_V4WBI=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
+CONFIG_ARM_L1_CACHE_SHIFT=5
+CONFIG_ARM_VIC=y
+CONFIG_ARM_VIC_NR=2
+CONFIG_COMMON_CLKDEV=y
+
+#
+# Bus support
+#
+CONFIG_ARM_AMBA=y
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMSPLIT_2G is not set
+# CONFIG_VMSPLIT_1G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_HZ=100
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+# CONFIG_HIGHMEM is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4096
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=0
+CONFIG_VIRT_TO_BUS=y
+CONFIG_HAVE_MLOCK=y
+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+# CONFIG_KSM is not set
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ALIGNMENT_TRAP=y
+CONFIG_UACCESS_WITH_MEMCPY=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE=" debug "
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
+
+#
+# CPU Power Management
+#
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_HAVE_AOUT=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options
+#
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_SLEEP=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_APM_EMULATION=y
+# CONFIG_PM_RUNTIME is not set
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_NET_KEY=y
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+CONFIG_INET_TUNNEL=m
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=m
+# CONFIG_IPV6_PRIVACY is not set
+# CONFIG_IPV6_ROUTER_PREF is not set
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+# CONFIG_INET6_AH is not set
+# CONFIG_INET6_ESP is not set
+# CONFIG_INET6_IPCOMP is not set
+# CONFIG_IPV6_MIP6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_NDISC_NODETYPE=y
+# CONFIG_IPV6_TUNNEL is not set
+# CONFIG_IPV6_MULTIPLE_TABLES is not set
+# CONFIG_IPV6_MROUTE is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_NET_DSA is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_PHONET is not set
+# CONFIG_IEEE802154 is not set
+# CONFIG_NET_SCHED is not set
+# CONFIG_DCB is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_NET_DROP_MONITOR is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+# CONFIG_BT_HIDP is not set
+
+#
+# Bluetooth device drivers
+#
+# CONFIG_BT_HCIBTUSB is not set
+# CONFIG_BT_HCIBTSDIO is not set
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_LL=y
+# CONFIG_BT_HCIBCM203X is not set
+# CONFIG_BT_HCIBPA10X is not set
+# CONFIG_BT_HCIBFUSB is not set
+# CONFIG_BT_HCIVHCI is not set
+# CONFIG_BT_MRVL is not set
+# CONFIG_AF_RXRPC is not set
+# CONFIG_WIRELESS is not set
+CONFIG_WIRELESS_EXT=y
+CONFIG_LIB80211=m
+# CONFIG_WIMAX is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=m
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_TESTS is not set
+CONFIG_MTD_CONCAT=y
+CONFIG_MTD_PARTITIONS=y
+CONFIG_MTD_REDBOOT_PARTS=y
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+CONFIG_MTD_CMDLINE_PARTS=y
+# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_NOSWAP=y
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_GEOMETRY is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_OTP is not set
+CONFIG_MTD_CFI_INTELEXT=y
+CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_CFI_STAA=y
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+CONFIG_MTD_ROM=y
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+CONFIG_MTD_PHYSMAP=y
+# CONFIG_MTD_PHYSMAP_COMPAT is not set
+# CONFIG_MTD_ARM_INTEGRATOR is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_DATAFLASH is not set
+CONFIG_MTD_M25P80=m
+CONFIG_M25PXX_USE_FAST_READ=y
+# CONFIG_MTD_SST25L is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_VERIFY_WRITE=y
+# CONFIG_MTD_NAND_ECC_SMC is not set
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+# CONFIG_MTD_NAND_GPIO is not set
+CONFIG_MTD_NAND_IDS=y
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+# CONFIG_MTD_NAND_NANDSIM is not set
+# CONFIG_MTD_NAND_PLATFORM is not set
+# CONFIG_MTD_ALAUDA is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+
+#
+# UBI - Unsorted block images
+#
+CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_RESERVE=1
+# CONFIG_MTD_UBI_GLUEBI is not set
+
+#
+# UBI debugging options
+#
+# CONFIG_MTD_UBI_DEBUG is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+CONFIG_BLK_DEV_NBD=y
+# CONFIG_BLK_DEV_UB is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+CONFIG_ATA_OVER_ETH=m
+# CONFIG_MG_DISK is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_ICS932S401 is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_ISL29003 is not set
+CONFIG_EP93XX_PWM=m
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=y
+CONFIG_EEPROM_AT25=y
+CONFIG_EEPROM_LEGACY=y
+# CONFIG_EEPROM_MAX6875 is not set
+# CONFIG_EEPROM_93CX6 is not set
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+# CONFIG_SCSI_TGT is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_SCSI_PROC_FS is not set
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+CONFIG_BLK_DEV_SR=m
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+# CONFIG_CHR_DEV_SG is not set
+# CONFIG_CHR_DEV_SCH is not set
+CONFIG_SCSI_MULTI_LUN=y
+CONFIG_SCSI_CONSTANTS=y
+# CONFIG_SCSI_LOGGING is not set
+CONFIG_SCSI_SCAN_ASYNC=y
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_LIBSAS is not set
+# CONFIG_SCSI_SRP_ATTRS is not set
+# CONFIG_SCSI_LOWLEVEL is not set
+# CONFIG_SCSI_DH is not set
+# CONFIG_SCSI_OSD_INITIATOR is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+CONFIG_TUN=m
+# CONFIG_VETH is not set
+# CONFIG_PHYLIB is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+CONFIG_EP93XX_ETH=y
+# CONFIG_AX88796 is not set
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+# CONFIG_ENC28J60 is not set
+# CONFIG_ETHOC is not set
+# CONFIG_SMC911X is not set
+# CONFIG_SMSC911X is not set
+# CONFIG_DNET is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+# CONFIG_B44 is not set
+# CONFIG_KS8842 is not set
+# CONFIG_KS8851 is not set
+# CONFIG_KS8851_MLL is not set
+# CONFIG_NETDEV_1000 is not set
+# CONFIG_NETDEV_10000 is not set
+CONFIG_WLAN=y
+# CONFIG_WLAN_PRE80211 is not set
+CONFIG_WLAN_80211=y
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_USB_ZD1201=m
+# CONFIG_HOSTAP is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+# CONFIG_USB_NET_CDC_EEM is not set
+CONFIG_USB_NET_DM9601=m
+# CONFIG_USB_NET_SMSC95XX is not set
+# CONFIG_USB_NET_GL620A is not set
+# CONFIG_USB_NET_NET1080 is not set
+# CONFIG_USB_NET_PLUSB is not set
+# CONFIG_USB_NET_MCS7830 is not set
+# CONFIG_USB_NET_RNDIS_HOST is not set
+# CONFIG_USB_NET_CDC_SUBSET is not set
+# CONFIG_USB_NET_ZAURUS is not set
+# CONFIG_USB_NET_INT51X1 is not set
+# CONFIG_WAN is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+# CONFIG_INPUT_APMPOWER is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADP5588 is not set
+# CONFIG_KEYBOARD_ATKBD is not set
+# CONFIG_QT2160 is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_EP93XX is not set
+# CONFIG_KEYBOARD_GPIO is not set
+# CONFIG_KEYBOARD_MATRIX is not set
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
+# CONFIG_TOUCHSCREEN_AD7877 is not set
+# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
+# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
+# CONFIG_TOUCHSCREEN_AD7879 is not set
+# CONFIG_TOUCHSCREEN_EETI is not set
+# CONFIG_TOUCHSCREEN_FUJITSU is not set
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
+# CONFIG_TOUCHSCREEN_MCS5000 is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_INEXIO is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
+# CONFIG_TOUCHSCREEN_TSC2007 is not set
+# CONFIG_TOUCHSCREEN_W90X900 is not set
+CONFIG_TOUCHSCREEN_EP93XX=y
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_ATI_REMOTE is not set
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+# CONFIG_INPUT_CM109 is not set
+CONFIG_INPUT_UINPUT=m
+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+# CONFIG_VT is not set
+CONFIG_DEVKMEM=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_AMBA_PL010=y
+CONFIG_SERIAL_AMBA_PL010_CONSOLE=y
+# CONFIG_SERIAL_AMBA_PL011 is not set
+# CONFIG_SERIAL_MAX3100 is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+# CONFIG_I2C_COMPAT is not set
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_ALGOBIT=y
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_DESIGNWARE is not set
+CONFIG_I2C_EP93XX=y
+# CONFIG_I2C_GPIO is not set
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_SIMTEC is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_TINY_USB is not set
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_PCA_PLATFORM is not set
+# CONFIG_I2C_STUB is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_DS1682 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+# CONFIG_SPI_BITBANG is not set
+CONFIG_SPI_EP93XX=y
+# CONFIG_SPI_GPIO is not set
+# CONFIG_SPI_PL022 is not set
+
+#
+# SPI Protocol Masters
+#
+# CONFIG_SPI_SPIDEV is not set
+# CONFIG_SPI_TLE62X0 is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+# CONFIG_GPIO_SYSFS is not set
+
+#
+# Memory mapped GPIO expanders:
+#
+# CONFIG_GPIO_PL061 is not set
+
+#
+# I2C GPIO expanders:
+#
+# CONFIG_GPIO_MAX732X is not set
+# CONFIG_GPIO_PCA953X is not set
+# CONFIG_GPIO_PCF857X is not set
+
+#
+# PCI GPIO expanders:
+#
+
+#
+# SPI GPIO expanders:
+#
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
+
+#
+# AC97 GPIO expanders:
+#
+# CONFIG_W1 is not set
+# CONFIG_POWER_SUPPLY is not set
+# CONFIG_HWMON is not set
+# CONFIG_THERMAL is not set
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+CONFIG_EP93XX_WATCHDOG=y
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_ASIC3 is not set
+# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TWL4030_CORE is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_MFD_T7L66XB is not set
+# CONFIG_MFD_TC6387XB is not set
+# CONFIG_MFD_TC6393XB is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_MC13783 is not set
+# CONFIG_AB3100_CORE is not set
+# CONFIG_EZX_PCAP is not set
+# CONFIG_REGULATOR is not set
+# CONFIG_MEDIA_SUPPORT is not set
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_SYS_FOPS is not set
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_ARMCLCD is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+CONFIG_FB_EP93XX=y
+# CONFIG_FB_BROADSHEET is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+# CONFIG_LOGO is not set
+# CONFIG_SOUND is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+CONFIG_HIDRAW=y
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=y
+# CONFIG_HID_PID is not set
+CONFIG_USB_HIDDEV=y
+
+#
+# Special HID drivers
+#
+# CONFIG_HID_A4TECH is not set
+# CONFIG_HID_APPLE is not set
+# CONFIG_HID_BELKIN is not set
+# CONFIG_HID_CHERRY is not set
+# CONFIG_HID_CHICONY is not set
+# CONFIG_HID_CYPRESS is not set
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EZKEY is not set
+# CONFIG_HID_KYE is not set
+# CONFIG_HID_GYRATION is not set
+# CONFIG_HID_TWINHAN is not set
+# CONFIG_HID_KENSINGTON is not set
+# CONFIG_HID_LOGITECH is not set
+# CONFIG_HID_MICROSOFT is not set
+# CONFIG_HID_MONTEREY is not set
+# CONFIG_HID_NTRIG is not set
+# CONFIG_HID_PANTHERLORD is not set
+# CONFIG_HID_PETALYNX is not set
+# CONFIG_HID_SAMSUNG is not set
+# CONFIG_HID_SONY is not set
+# CONFIG_HID_SUNPLUS is not set
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_ZEROPLUS is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+
+#
+# Miscellaneous USB options
+#
+# CONFIG_USB_DEVICEFS is not set
+# CONFIG_USB_DEVICE_CLASS is not set
+CONFIG_USB_DYNAMIC_MINORS=y
+# CONFIG_USB_SUSPEND is not set
+# CONFIG_USB_OTG is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+CONFIG_USB_MON=m
+# CONFIG_USB_WUSB is not set
+# CONFIG_USB_WUSB_CBAF is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_HWA_HCD is not set
+# CONFIG_USB_MUSB_HDRC is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+# CONFIG_USB_WDM is not set
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_STORAGE_ALAUDA is not set
+# CONFIG_USB_STORAGE_ONETOUCH is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB port drivers
+#
+CONFIG_USB_SERIAL=m
+# CONFIG_USB_EZUSB is not set
+# CONFIG_USB_SERIAL_GENERIC is not set
+# CONFIG_USB_SERIAL_AIRCABLE is not set
+# CONFIG_USB_SERIAL_ARK3116 is not set
+# CONFIG_USB_SERIAL_BELKIN is not set
+# CONFIG_USB_SERIAL_CH341 is not set
+# CONFIG_USB_SERIAL_WHITEHEAT is not set
+# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
+# CONFIG_USB_SERIAL_CP210X is not set
+# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
+# CONFIG_USB_SERIAL_EMPEG is not set
+CONFIG_USB_SERIAL_FTDI_SIO=m
+# CONFIG_USB_SERIAL_FUNSOFT is not set
+# CONFIG_USB_SERIAL_VISOR is not set
+# CONFIG_USB_SERIAL_IPAQ is not set
+# CONFIG_USB_SERIAL_IR is not set
+# CONFIG_USB_SERIAL_EDGEPORT is not set
+# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
+# CONFIG_USB_SERIAL_GARMIN is not set
+# CONFIG_USB_SERIAL_IPW is not set
+# CONFIG_USB_SERIAL_IUU is not set
+# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
+# CONFIG_USB_SERIAL_KEYSPAN is not set
+# CONFIG_USB_SERIAL_KLSI is not set
+# CONFIG_USB_SERIAL_KOBIL_SCT is not set
+# CONFIG_USB_SERIAL_MCT_U232 is not set
+# CONFIG_USB_SERIAL_MOS7720 is not set
+# CONFIG_USB_SERIAL_MOS7840 is not set
+# CONFIG_USB_SERIAL_MOTOROLA is not set
+# CONFIG_USB_SERIAL_NAVMAN is not set
+CONFIG_USB_SERIAL_PL2303=m
+# CONFIG_USB_SERIAL_OTI6858 is not set
+# CONFIG_USB_SERIAL_QUALCOMM is not set
+# CONFIG_USB_SERIAL_SPCP8X5 is not set
+# CONFIG_USB_SERIAL_HP4X is not set
+# CONFIG_USB_SERIAL_SAFE is not set
+# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
+# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
+# CONFIG_USB_SERIAL_SYMBOL is not set
+# CONFIG_USB_SERIAL_TI is not set
+# CONFIG_USB_SERIAL_CYBERJACK is not set
+# CONFIG_USB_SERIAL_XIRCOM is not set
+# CONFIG_USB_SERIAL_OPTION is not set
+# CONFIG_USB_SERIAL_OMNINET is not set
+# CONFIG_USB_SERIAL_OPTICON is not set
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_SEVSEG is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_BERRY_CHARGE is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+# CONFIG_USB_TEST is not set
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_VST is not set
+# CONFIG_USB_GADGET is not set
+
+#
+# OTG and related infrastructure
+#
+# CONFIG_USB_GPIO_VBUS is not set
+# CONFIG_NOP_USB_XCEIV is not set
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_BOUNCE=y
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+# CONFIG_MMC_ARMMMCI is not set
+# CONFIG_MMC_SDHCI is not set
+# CONFIG_MMC_AT91 is not set
+# CONFIG_MMC_ATMELMCI is not set
+CONFIG_MMC_SPI=y
+# CONFIG_MEMSTICK is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_PCA9532 is not set
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_GPIO_PLATFORM=y
+# CONFIG_LEDS_LP3944 is not set
+# CONFIG_LEDS_PCA955X is not set
+# CONFIG_LEDS_DAC124S085 is not set
+# CONFIG_LEDS_BD2802 is not set
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_BACKLIGHT=y
+CONFIG_LEDS_TRIGGER_GPIO=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+# CONFIG_ACCESSIBILITY is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS1307=m
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+# CONFIG_RTC_DRV_RX8025 is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_DS3234 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_EP93XX=y
+# CONFIG_RTC_DRV_PL030 is not set
+# CONFIG_RTC_DRV_PL031 is not set
+# CONFIG_DMADEVICES is not set
+# CONFIG_AUXDISPLAY is not set
+# CONFIG_UIO is not set
+
+#
+# TI VLYNQ
+#
+# CONFIG_STAGING is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+# CONFIG_EXT3_FS_XATTR is not set
+# CONFIG_EXT4_FS is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+CONFIG_FS_POSIX_ACL=y
+# CONFIG_XFS_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+
+#
+# Caches
+#
+CONFIG_FSCACHE=y
+# CONFIG_FSCACHE_STATS is not set
+# CONFIG_FSCACHE_HISTOGRAM is not set
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+# CONFIG_CACHEFILES is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+# CONFIG_MSDOS_FS is not set
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+CONFIG_JFFS2_SUMMARY=y
+CONFIG_JFFS2_FS_XATTR=y
+CONFIG_JFFS2_FS_POSIX_ACL=y
+CONFIG_JFFS2_FS_SECURITY=y
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_LZO=y
+CONFIG_JFFS2_RTIME=y
+CONFIG_JFFS2_RUBIN=y
+# CONFIG_JFFS2_CMODE_NONE is not set
+# CONFIG_JFFS2_CMODE_PRIORITY is not set
+# CONFIG_JFFS2_CMODE_SIZE is not set
+CONFIG_JFFS2_CMODE_FAVOURLZO=y
+CONFIG_UBIFS_FS=y
+CONFIG_UBIFS_FS_XATTR=y
+CONFIG_UBIFS_FS_ADVANCED_COMPR=y
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+# CONFIG_UBIFS_FS_DEBUG is not set
+CONFIG_CRAMFS=y
+CONFIG_SQUASHFS=y
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+# CONFIG_NFS_V3_ACL is not set
+CONFIG_NFS_V4=y
+# CONFIG_NFS_V4_1 is not set
+CONFIG_ROOT_NFS=y
+# CONFIG_NFS_FSCACHE is not set
+CONFIG_NFSD=m
+CONFIG_NFSD_V3=y
+# CONFIG_NFSD_V3_ACL is not set
+CONFIG_NFSD_V4=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_RPCSEC_GSS_KRB5=y
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_WEAK_PW_HASH is not set
+# CONFIG_CIFS_XATTR is not set
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf-8"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+CONFIG_NLS_CODEPAGE_852=y
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+CONFIG_NLS_CODEPAGE_1250=y
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=y
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+CONFIG_NLS_UTF8=y
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+CONFIG_PRINTK_TIME=y
+# CONFIG_ENABLE_WARN_DEPRECATED is not set
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=1024
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+CONFIG_DETECT_HUNG_TASK=y
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+CONFIG_TIMER_STATS=y
+# CONFIG_DEBUG_OBJECTS is not set
+CONFIG_DEBUG_SLAB=y
+# CONFIG_DEBUG_SLAB_LEAK is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
+CONFIG_DEBUG_PREEMPT=y
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
+# CONFIG_PAGE_POISONING is not set
+CONFIG_NOP_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_RING_BUFFER=y
+CONFIG_EVENT_TRACING=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+CONFIG_TRACING=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+# CONFIG_FUNCTION_TRACER is not set
+# CONFIG_SCHED_TRACER is not set
+# CONFIG_ENABLE_DEFAULT_TRACERS is not set
+# CONFIG_BOOT_TRACER is not set
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+# CONFIG_STACK_TRACER is not set
+# CONFIG_KMEMTRACE is not set
+# CONFIG_WORKQUEUE_TRACER is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_RING_BUFFER_BENCHMARK is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+CONFIG_ARM_UNWIND=y
+CONFIG_DEBUG_USER=y
+CONFIG_DEBUG_ERRORS=y
+# CONFIG_DEBUG_STACK_USAGE is not set
+CONFIG_DEBUG_LL=y
+# CONFIG_DEBUG_ICEDCC is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+# CONFIG_CRYPTO_GF128MUL is not set
+# CONFIG_CRYPTO_NULL is not set
+CONFIG_CRYPTO_WORKQUEUE=y
+# CONFIG_CRYPTO_CRYPTD is not set
+# CONFIG_CRYPTO_AUTHENC is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+# CONFIG_CRYPTO_CCM is not set
+# CONFIG_CRYPTO_GCM is not set
+# CONFIG_CRYPTO_SEQIV is not set
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=y
+# CONFIG_CRYPTO_CTR is not set
+# CONFIG_CRYPTO_CTS is not set
+# CONFIG_CRYPTO_ECB is not set
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_PCBC is not set
+# CONFIG_CRYPTO_XTS is not set
+
+#
+# Hash modes
+#
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=y
+# CONFIG_CRYPTO_GHASH is not set
+# CONFIG_CRYPTO_MD4 is not set
+CONFIG_CRYPTO_MD5=y
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+# CONFIG_CRYPTO_SHA1 is not set
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+
+#
+# Ciphers
+#
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SALSA20 is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_ZLIB is not set
+CONFIG_CRYPTO_LZO=y
+
+#
+# Random Number Generation
+#
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+CONFIG_CRYPTO_HW=y
+CONFIG_BINARY_PRINTF=y
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+# CONFIG_CRC_CCITT is not set
+CONFIG_CRC16=y
+# CONFIG_CRC_T10DIF is not set
+CONFIG_CRC_ITU_T=y
+CONFIG_CRC32=y
+CONFIG_CRC7=y
+CONFIG_LIBCRC32C=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_NLATTR=y
diff --git a/recipes/linux/linux_2.6.24.bb b/recipes/linux/linux_2.6.24.bb
index bfcfb89f7e..cb4389a702 100644
--- a/recipes/linux/linux_2.6.24.bb
+++ b/recipes/linux/linux_2.6.24.bb
@@ -11,6 +11,7 @@ DEFAULT_PREFERENCE_ts72xx = "1"
DEFAULT_PREFERENCE_oxnas = "1"
DEFAULT_PREFERENCE_hipox = "1"
DEFAULT_PREFERENCE_cs-e9302 = "1"
+DEFAULT_PREFERENCE_smartq5 = "1"
PR = "r33"
@@ -103,8 +104,32 @@ SRC_URI_append_hipox = " \
file://hipox-ubifs.patch;patch=1 \
file://hipox-kconfig.patch;patch=1 \
file://hipox-sata-module.patch;patch=1 \
+ file://hipox-OXE-INT2.patch;patch=1 \
+ file://hipox-rtc.patch;patch=1 \
"
+EXTRA_OEMAKE_smartq5 = " OBJCOPY=${OBJCOPY}"
+SRC_URI_smartq5 = " ${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.24.tar.bz2 \
+ http://ftp.kernel.org/pub/linux/kernel/v2.6/patch-2.6.24.7.bz2;patch=1 \
+ file://smartq-gitupdate.diff;patch=1 \
+ file://base/0001-Apply-samsung-kernel-patch.patch;patch=1 \
+ file://base/0002-Apply-smartq-patch.patch;patch=1 \
+ file://mer/0001-Mer-keymappings-change.patch;patch=1 \
+ file://mer/0002-no-DM9000.patch;patch=1 \
+ file://mer/0003-Mer-WPA-fix.patch;patch=1 \
+ file://mer/0004-Mer-hardwire-USB-OTG-gadget-type.patch;patch=1 \
+ file://mer/0005-backlight-parameter-and-fixes.patch;patch=1 \
+ file://mer/0006-tv-encoder.patch;patch=1 \
+ file://mer/0007-make-tv-encoder-scaler-compile.patch;patch=1 \
+ file://mer/0008-build-TV-by-default.patch;patch=1 \
+ file://mer/0009-Apply-cpufreq-patch-from-gqwang.patch;patch=1 \
+ file://mer/0010-Better-compatibility-with-some-memory-chips.patch;patch=1 \
+ file://mer/0011-Only-reserve-memory-for-TV-if-CONFIG_VIDEO_SAMSUNG_T.patch;patch=1 \
+ file://mer/0012-Disable-TV-out-to-save-RAM.patch;patch=1 \
+ file://defconfig \
+"
+
+
CMDLINE_cm-x270 = "console=${CMX270_CONSOLE_SERIAL_PORT},38400 monitor=1 mem=64M mtdparts=physmap-flash.0:256k(boot)ro,0x180000(kernel),-(root);cm-x270-nand:64m(app),-(data) rdinit=/sbin/init root=mtd3 rootfstype=jffs2"
FILES_kernel-image_gesbc-9302 = ""
@@ -145,5 +170,5 @@ python do_compulab_image() {
}
-addtask compulab_image after do_deploy before do_package
+addtask compulab_image after do_deploy before do_package_write
diff --git a/recipes/linux/linux_2.6.31.bb b/recipes/linux/linux_2.6.31.bb
index 15597104b6..839e808451 100644
--- a/recipes/linux/linux_2.6.31.bb
+++ b/recipes/linux/linux_2.6.31.bb
@@ -1,6 +1,6 @@
require linux.inc
-PR = "r3"
+PR = "r6"
S = "${WORKDIR}/linux-${PV}"
@@ -11,11 +11,23 @@ DEFAULT_PREFERENCE_collie = "1"
DEFAULT_PREFERENCE_db1200 = "1"
DEFAULT_PREFERENCE_qemumips = "1"
DEFAULT_PREFERENCE_qemux86 = "1"
+DEFAULT_PREFERENCE_iei-nanogx-466 = "1"
+DEFAULT_PREFERENCE_ben-nanonote = "1"
+
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
- ${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/patch-${PV}.3.bz2;patch=1 \
+ ${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/patch-${PV}.5.bz2;patch=1 \
file://defconfig"
+SRC_URI += "file://0001-Squashfs-move-zlib-decompression-wrapper-code-into.patch;patch=1 \
+ file://0002-Squashfs-Factor-out-remaining-zlib-dependencies-int.patch;patch=1 \
+ file://0003-Squashfs-add-a-decompressor-framework.patch;patch=1 \
+ file://0004-Squashfs-add-decompressor-entries-for-lzma-and-lzo.patch;patch=1 \
+ file://0005-Squashfs-add-an-extra-parameter-to-the-decompressor.patch;patch=1 \
+ file://0006-Squashfs-add-LZMA-compression.patch;patch=1 \
+ file://0007-Squashfs-Make-unlzma-available-to-non-initramfs-ini.patch;patch=1 \
+ "
+
SRC_URI_append_db1200 ="\
http://maxim.org.za/AT91RM9200/2.6/2.6.31-at91.patch.gz;patch=1 \
"
@@ -25,7 +37,7 @@ SRC_URI_append_boc01 = "\
file://boc01.dts \
file://boc01.dts.v1 \
file://004-081205-usb.patch;patch=1 \
- file://005-091103-isl12024.patch;patch=1 \
+ file://005-091110-isl12024.patch;patch=1 \
file://007-091005-lm73.patch;patch=1 \
file://011-091028-gpio.patch;patch=1 \
file://012-091019-capsense.patch;patch=1 \
@@ -56,6 +68,29 @@ SRC_URI_append_ep93xx = " \
file://edb9301-fix-machine-id.patch;patch=1 \
"
+SRC_URI_append_ben-nanonote = " \
+ file://files.patch;patch=1 \
+ file://001-core.patch;patch=1 \
+ file://050-nand.patch;patch=1 \
+ file://051-fb.patch;patch=1 \
+ file://052-rtc.patch;patch=1 \
+ file://053-adc.patch;patch=1 \
+ file://100-battery.patch;patch=1 \
+ file://101-mmc.patch;patch=1 \
+ file://102-video.patch;patch=1 \
+ file://103-lcm.patch;patch=1 \
+ file://103-serial.patch;patch=1 \
+ file://104-usb.patch;patch=1 \
+ file://105-sound.patch;patch=1 \
+ file://220-add-2gb-nand-support.patch;patch=1 \
+ file://300-jffs2-summery-vmalloc.patch;patch=1 \
+ file://400-spi-gpio-3wire.patch;patch=1 \
+ file://410-soc-32bit-regs.patch;patch=1 \
+ file://500-modifier-keys.patch;patch=1 \
+ file://900-add-openwrt-logo.patch;patch=1 \
+ file://fix_mips_vmlinux.lds.patch;patch=1 \
+ "
+
do_devicetree_image_append_boc01() {
dtc -I dts -O dtb ${KERNEL_DEVICETREE_FLAGS} -o devicetree.v1 ${KERNEL_DEVICETREE}.v1
install -m 0644 devicetree.v1 ${D}/boot/devicetree-${KERNEL_VERSION}.v1
diff --git a/recipes/linux/linux_2.6.32.bb b/recipes/linux/linux_2.6.32.bb
new file mode 100644
index 0000000000..7f2ef0a2e8
--- /dev/null
+++ b/recipes/linux/linux_2.6.32.bb
@@ -0,0 +1,26 @@
+require linux.inc
+
+PR = "r1"
+
+S = "${WORKDIR}/linux-${PV}"
+
+# Mark archs/machines that this kernel supports
+DEFAULT_PREFERENCE = "-1"
+DEFAULT_PREFERENCE_simone = "1"
+
+SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2;name=kernel \
+ file://defconfig"
+
+SRC_URI[kernel.md5sum] = "260551284ac224c3a43c4adac7df4879"
+SRC_URI[kernel.sha256sum] = "5099786d80b8407d98a619df00209c2353517f22d804fdd9533b362adcb4504e"
+
+# part of 2.6.24.7 patchset from Sim.One project
+# other patches needs work
+SRC_URI_append_simone = " \
+ file://ep93xx/edb9301-fix-machine-id.patch;patch=1 \
+ file://ep93xx/simone-board-def.patch;patch=1 \
+ file://ep93xx/ep93xx-regs.patch;patch=1 \
+ file://ep93xx/ep93xx-i2c.patch;patch=1 \
+ file://ep93xx/ep93xx-touchscreen.patch;patch=1 \
+ file://ep93xx/ep93xx-spi.patch;patch=1 \
+ file://ep93xx/ep93xx-cpuinfo.patch;patch=1 "
diff --git a/recipes/llvm/llvm-gcc4-cross_svn.bb b/recipes/llvm/llvm-gcc4-cross_svn.bb
index 4cd5ae1db6..5257713dc2 100644
--- a/recipes/llvm/llvm-gcc4-cross_svn.bb
+++ b/recipes/llvm/llvm-gcc4-cross_svn.bb
@@ -4,7 +4,7 @@ LICENSE = "various"
DEPENDS = "llvm2.5-native"
-PV = "2.1+svnr${SRCREV}"
+PV = "2.1+svnr${SRCPV}"
PR = "r1"
diff --git a/recipes/llvm/llvm-gcc4_svn.bb b/recipes/llvm/llvm-gcc4_svn.bb
index 6a39362080..74ac5807ae 100644
--- a/recipes/llvm/llvm-gcc4_svn.bb
+++ b/recipes/llvm/llvm-gcc4_svn.bb
@@ -4,7 +4,7 @@ LICENSE = "various"
DEPENDS = "llvm2.5-native"
-PV = "2.0+svnr${SRCREV}"
+PV = "2.0+svnr${SRCPV}"
PR = "r1"
diff --git a/recipes/llvm/llvm2.6/BX_to_BLX.patch b/recipes/llvm/llvm2.6/BX_to_BLX.patch
new file mode 100644
index 0000000000..7cf36766af
--- /dev/null
+++ b/recipes/llvm/llvm2.6/BX_to_BLX.patch
@@ -0,0 +1,13 @@
+Index: llvm/lib/Target/ARM/ARMInstrInfo.td
+===================================================================
+--- llvm.orig/lib/Target/ARM/ARMInstrInfo.td 2009-10-06 12:35:26.000000000 +0000
++++ llvm/lib/Target/ARM/ARMInstrInfo.td 2009-10-06 12:36:03.000000000 +0000
+@@ -645,7 +645,7 @@
+ IIC_Br, "mov lr, pc\n\tbx $func",
+ [(ARMcall_nolink GPR:$func)]>,
+ Requires<[IsARM, IsNotDarwin]> {
+- let Inst{7-4} = 0b0001;
++ let Inst{7-4} = 0b0011;
+ let Inst{19-8} = 0b111111111111;
+ let Inst{27-20} = 0b00010010;
+ }
diff --git a/recipes/llvm/llvm2.6_2.6.bb b/recipes/llvm/llvm2.6_2.6.bb
index 40dabb4fba..909bb95b00 100644
--- a/recipes/llvm/llvm2.6_2.6.bb
+++ b/recipes/llvm/llvm2.6_2.6.bb
@@ -1,12 +1,13 @@
require llvm.inc
-PR = "r0"
+PR = "r1"
DEPENDS = "llvm-common llvm2.6-native"
SRC_URI += "\
file://fix-build.patch;patch=1 \
file://llvm-debugonly-zeroormore.patch;patch=1;pnum=0 \
+ file://BX_to_BLX.patch;patch=1 \
"
LLVM_RELEASE = "2.6"
diff --git a/recipes/llvm/llvm2.7-native_2.6+svnr20090916.bb b/recipes/llvm/llvm2.7-native_2.6+svnr20091007.bb
index ab0bbc5aa8..ada81c625d 100644
--- a/recipes/llvm/llvm2.7-native_2.6+svnr20090916.bb
+++ b/recipes/llvm/llvm2.7-native_2.6+svnr20091007.bb
@@ -1,8 +1,8 @@
require llvm-native.inc
-SRCREV = "82130"
+SRCREV = "83459"
-PV = "2.6+svnr${SRCREV}"
+PV = "2.6+svnr${SRCPV}"
PR = "r0"
diff --git a/recipes/llvm/llvm2.7/BX_to_BLX.patch b/recipes/llvm/llvm2.7/BX_to_BLX.patch
new file mode 100644
index 0000000000..7cf36766af
--- /dev/null
+++ b/recipes/llvm/llvm2.7/BX_to_BLX.patch
@@ -0,0 +1,13 @@
+Index: llvm/lib/Target/ARM/ARMInstrInfo.td
+===================================================================
+--- llvm.orig/lib/Target/ARM/ARMInstrInfo.td 2009-10-06 12:35:26.000000000 +0000
++++ llvm/lib/Target/ARM/ARMInstrInfo.td 2009-10-06 12:36:03.000000000 +0000
+@@ -645,7 +645,7 @@
+ IIC_Br, "mov lr, pc\n\tbx $func",
+ [(ARMcall_nolink GPR:$func)]>,
+ Requires<[IsARM, IsNotDarwin]> {
+- let Inst{7-4} = 0b0001;
++ let Inst{7-4} = 0b0011;
+ let Inst{19-8} = 0b111111111111;
+ let Inst{27-20} = 0b00010010;
+ }
diff --git a/recipes/llvm/llvm2.7_2.6+svnr20090916.bb b/recipes/llvm/llvm2.7_2.6+svnr20091007.bb
index 022657c5ff..142e15ea4f 100644
--- a/recipes/llvm/llvm2.7_2.6+svnr20090916.bb
+++ b/recipes/llvm/llvm2.7_2.6+svnr20091007.bb
@@ -1,8 +1,8 @@
require llvm.inc
-SRCREV = "82130"
+SRCREV = "83459"
-PV = "2.6+svnr${SRCREV}"
+PV = "2.6+svnr${SRCPV}"
PR = "r0"
@@ -11,7 +11,8 @@ DEPENDS = "llvm-common llvm2.7-native"
SRC_URI = "\
svn://llvm.org/svn/llvm-project/llvm/;proto=http;module=trunk \
file://llvm-debugonly-zeroormore.patch;patch=1 \
-"
+ file://BX_to_BLX.patch;patch=1 \
+ "
EXTRA_OECMAKE += "\
-DLLVM_TARGET_ARCH:STRING=${LLVM_ARCH} \
diff --git a/recipes/ltrace/files/ltrace-compile.patch b/recipes/ltrace/files/ltrace-compile.patch
index 8323a5c501..4784deb6df 100644
--- a/recipes/ltrace/files/ltrace-compile.patch
+++ b/recipes/ltrace/files/ltrace-compile.patch
@@ -54,7 +54,7 @@ Index: ltrace-0.5.3/configure
CFLAGS='-g -O2'
LIBS='-lelf -lsupc++ -liberty '
-INSTALL='/usr/bin/install -c'
-+INSTALL='$/usr/bin/install -c'
++INSTALL='install -c'
iquote='-iquote '
iquoteend=''
diff --git a/recipes/ltrace/files/ltrace-ppc.patch b/recipes/ltrace/files/ltrace-ppc.patch
new file mode 100644
index 0000000000..d5ea0f0bfc
--- /dev/null
+++ b/recipes/ltrace/files/ltrace-ppc.patch
@@ -0,0 +1,11 @@
+Index: ltrace-0.5.3/sysdeps/linux-gnu/ppc/plt.c
+===================================================================
+--- ltrace-0.5.3.orig/sysdeps/linux-gnu/ppc/plt.c 2009-11-15 03:46:14.459233772 +0300
++++ ltrace-0.5.3/sysdeps/linux-gnu/ppc/plt.c 2009-11-15 03:46:25.299232646 +0300
+@@ -1,5 +1,6 @@
+ #include <gelf.h>
+ #include "common.h"
++#include "ptrace.h"
+
+ GElf_Addr
+ arch_plt_sym_val(struct ltelf *lte, size_t ndx, GElf_Rela * rela) {
diff --git a/recipes/ltrace/ltrace_0.4.bb b/recipes/ltrace/ltrace_0.4.bb
deleted file mode 100644
index 9dc959e484..0000000000
--- a/recipes/ltrace/ltrace_0.4.bb
+++ /dev/null
@@ -1,65 +0,0 @@
-DESCRIPTION = "ltrace shows runtime library call information for dynamically linked executables."
-HOMEPAGE = "http://packages.debian.org/unstable/utils/ltrace.html"
-SECTION = "devel"
-DEPENDS = "binutils libelf"
-LICENSE = "GPL"
-PR = "r3"
-
-SRC_URI = "${DEBIAN_MIRROR}/main/l/ltrace/ltrace_0.4.orig.tar.gz \
- ${DEBIAN_MIRROR}/main/l/ltrace/ltrace_0.4-1.diff.gz;patch=1 \
- file://no-usr-include.patch;patch=1"
-
-inherit autotools
-
-PARALLEL_MAKE = ""
-EXTRA_OEMAKE = "INSTALL_FILE='$(INSTALL) -p -m 0644' \
- INSTALL_PROGRAM='$(INSTALL) -p -m 0755' \
- INSTALL_SCRIPT='$(INSTALL) -p -m 0755' \
- INSTALL_DIR='$(INSTALL) -p -d -m 0755' "
-
-export TARGET_CFLAGS = "${SELECTED_OPTIMIZATION} -isystem ${STAGING_INCDIR}"
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_configure_prepend() {
- ln -sf ./linux-gnu sysdeps/linux-gnueabi
-}
-
-do_compile() {
- case ${TARGET_ARCH} in
- alpha*) LTRACE_ARCH=alpha ;;
- arm*) LTRACE_ARCH=arm ;;
- cris*) LTRACE_ARCH=cris ;;
- hppa*) LTRACE_ARCH=parisc ;;
- i*86*) LTRACE_ARCH=i386 ;;
- ia64*) LTRACE_ARCH=ia64 ;;
- mips*) LTRACE_ARCH=mips ;;
- m68k*) LTRACE_ARCH=m68k ;;
- powerpc*) LTRACE_ARCH=ppc ;;
- s390*) LTRACE_ARCH=s390 ;;
- sh*) LTRACE_ARCH=sh ;;
- sparc64*) LTRACE_ARCH=sparc64 ;;
- sparc*) LTRACE_ARCH=sparc ;;
- x86_64*) LTRACE_ARCH=x86_64 ;;
- esac
- oe_runmake LDFLAGS=${TARGET_LDFLAGS} LIBS="-lsupc++ -liberty -Wl,-Bstatic -lelf -Wl,-Bdynamic" ${EXTRA_OEMAKE} ARCH=${LTRACE_ARCH}
-}
-
-do_install() {
- case ${TARGET_ARCH} in
- alpha*) LTRACE_ARCH=alpha ;;
- arm*) LTRACE_ARCH=arm ;;
- cris*) LTRACE_ARCH=cris ;;
- hppa*) LTRACE_ARCH=parisc ;;
- i*86*) LTRACE_ARCH=i386 ;;
- ia64*) LTRACE_ARCH=ia64 ;;
- mips*) LTRACE_ARCH=mips ;;
- m68k*) LTRACE_ARCH=m68k ;;
- powerpc*) LTRACE_ARCH=ppc ;;
- s390*) LTRACE_ARCH=s390 ;;
- sh*) LTRACE_ARCH=sh ;;
- sparc64*) LTRACE_ARCH=sparc64 ;;
- sparc*) LTRACE_ARCH=sparc ;;
- x86_64*) LTRACE_ARCH=x86_64 ;;
- esac
- oe_runmake install ${EXTRA_OEMAKE} ARCH=${LTRACE_ARCH} INSTALL=${STAGING_BINDIR_NATIVE}/install DESTDIR=${D}
-}
diff --git a/recipes/ltrace/ltrace_0.5.3.bb b/recipes/ltrace/ltrace_0.5.3.bb
index a6916be281..4130c29f68 100644
--- a/recipes/ltrace/ltrace_0.5.3.bb
+++ b/recipes/ltrace/ltrace_0.5.3.bb
@@ -4,21 +4,17 @@ SECTION = "devel"
DEPENDS = "libelf"
LICENSE = "GPLv2"
-SRC_URI = "${DEBIAN_MIRROR}/main/l/ltrace/ltrace_${PV}.orig.tar.gz \
- ${DEBIAN_MIRROR}/main/l/ltrace/ltrace_${PV}-2.diff.gz;patch=1 \
- file://add-sysdep.patch;patch=1 \
- file://ltrace-compile.patch;patch=1 \
- file://ltrace-mips-remove-CP.patch;patch=1 \
- file://ltrace-mips.patch;patch=1 \
- "
+SRC_URI = "\
+ ${DEBIAN_MIRROR}/main/l/ltrace/ltrace_${PV}.orig.tar.gz \
+ ${DEBIAN_MIRROR}/main/l/ltrace/ltrace_${PV}-2.diff.gz;patch=1 \
+ file://add-sysdep.patch;patch=1 \
+ file://ltrace-compile.patch;patch=1 \
+ file://ltrace-mips-remove-CP.patch;patch=1 \
+ file://ltrace-mips.patch;patch=1 \
+ file://ltrace-ppc.patch;patch=1 \
+"
inherit autotools
-PARALLEL_MAKE = ""
-EXTRA_OEMAKE = "INSTALL_FILE='$(INSTALL) -p -m 0644' \
- INSTALL_PROGRAM='$(INSTALL) -p -m 0755' \
- INSTALL_SCRIPT='$(INSTALL) -p -m 0755' \
- INSTALL_DIR='$(INSTALL) -p -d -m 0755' "
-
export TARGET_CFLAGS = "${SELECTED_OPTIMIZATION} -isystem ${STAGING_INCDIR}"
TARGET_CC_ARCH += "${LDFLAGS}"
@@ -69,5 +65,5 @@ do_install() {
sparc*) LTRACE_ARCH=sparc ;;
x86_64*) LTRACE_ARCH=x86_64 ;;
esac
- oe_runmake install ${EXTRA_OEMAKE} ARCH=${LTRACE_ARCH} INSTALL=${STAGING_BINDIR_NATIVE}/install DESTDIR=${D}
+ oe_runmake install ${EXTRA_OEMAKE} ARCH=${LTRACE_ARCH} DESTDIR=${D}
}
diff --git a/recipes/lzma/lzma.inc b/recipes/lzma/lzma.inc
index fc40c9313b..4d31a44cd0 100644
--- a/recipes/lzma/lzma.inc
+++ b/recipes/lzma/lzma.inc
@@ -2,7 +2,7 @@ DESCRIPTION = "LZMA is a general compression method. LZMA provides high compress
HOMEPAGE = "http://www.7-zip.org/"
LICENSE = "LGPL"
DEPENDS = "zlib"
-INC_PR = "r1"
+INC_PR = "r3"
SRC_URI = "http://downloads.sourceforge.net/sevenzip/lzma${@bb.data.getVar('PV',d,1).replace('.','')}.tar.bz2 \
file://001-large_files.patch;patch=1 \
@@ -17,8 +17,13 @@ EXTRA_OEMAKE = "-f makefile.gcc"
CFLAGS += "-c -I${S}"
do_unpack_append() {
- # It has few files with wrong encoding
- os.system("find ${S} -type f -print0 | xargs -0 dos2unix")
+ # Replace MS-DOS line-endings with Unix style line-endings
+ os.system("find ${S} -type f -print0 | xargs -0 sed 's/\r$//' -i")
+}
+
+do_patch_append() {
+ # Hack to ensure we use our environment values
+ os.system("find ${S} -type f -name makefile.gcc -print0 | xargs -0 sed 's/^CXX =/CXX ?=/;s/^CXX_C =/CXX_C ?=/;s/CXX_C/CC/' -i")
}
do_compile() {
diff --git a/recipes/maemo-mapper/maemo-mapper_svn.bb b/recipes/maemo-mapper/maemo-mapper_svn.bb
index 39e89fcc98..afc2d93027 100644
--- a/recipes/maemo-mapper/maemo-mapper_svn.bb
+++ b/recipes/maemo-mapper/maemo-mapper_svn.bb
@@ -3,7 +3,7 @@ LICENSE = "GPL"
DEPENDS = "gdbm libconic sqlite3 gtk+ libhildonfm libosso osso-ic-oss libosso-help gnome-vfs dbus bluez-libs"
RDEPENDS = "bluez-utils"
RRECOMMENDS = "gpsd flite"
-PV = "2.0.3+svnr${SRCREV}"
+PV = "2.0.3+svnr${SRCPV}"
PR = "r2"
SRC_URI = "svn://garage.maemo.org/svn/maemo-mapper;proto=https;module=trunk \
diff --git a/recipes/matchbox-config-gtk/matchbox-config-gtk_svn.bb b/recipes/matchbox-config-gtk/matchbox-config-gtk_svn.bb
index bc6c0511dd..f791dce58a 100644
--- a/recipes/matchbox-config-gtk/matchbox-config-gtk_svn.bb
+++ b/recipes/matchbox-config-gtk/matchbox-config-gtk_svn.bb
@@ -3,7 +3,7 @@ LICENSE = "GPL"
DEPENDS = "gconf gtk+"
RDEPENDS = "settings-daemon"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
S = "${WORKDIR}/${PN}"
diff --git a/recipes/matchbox-desktop-sato/matchbox-desktop-sato_svn.bb b/recipes/matchbox-desktop-sato/matchbox-desktop-sato_svn.bb
index 8d1a3e181d..c2527642a5 100644
--- a/recipes/matchbox-desktop-sato/matchbox-desktop-sato_svn.bb
+++ b/recipes/matchbox-desktop-sato/matchbox-desktop-sato_svn.bb
@@ -4,7 +4,7 @@ LICENSE = "LGPL"
DEPENDS = ""
CONFLICTS = "matchbox-common"
SRCREV = "76"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
SRC_URI = "svn://svn.o-hand.com/repos/sato/trunk;module=desktop-folders;proto=http"
S = "${WORKDIR}/desktop-folders"
diff --git a/recipes/matchbox-keyboard/matchbox-keyboard-inputmethod_svn.bb b/recipes/matchbox-keyboard/matchbox-keyboard-inputmethod_svn.bb
index 03123d9b8b..37300cbcd9 100644
--- a/recipes/matchbox-keyboard/matchbox-keyboard-inputmethod_svn.bb
+++ b/recipes/matchbox-keyboard/matchbox-keyboard-inputmethod_svn.bb
@@ -4,7 +4,7 @@ DEPENDS = "libfakekey expat libxft gtk+ matchbox-panel-2"
RCONFLICTS_${PN} = "matchbox-keyboard"
RPROVIDES_${PN} = "matchbox-keyboard"
SECTION = "x11"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR = "r10"
SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=matchbox-keyboard;proto=http \
diff --git a/recipes/matchbox-keyboard/matchbox-keyboard_svn.bb b/recipes/matchbox-keyboard/matchbox-keyboard_svn.bb
index 96a621fe75..27d87b7c0f 100644
--- a/recipes/matchbox-keyboard/matchbox-keyboard_svn.bb
+++ b/recipes/matchbox-keyboard/matchbox-keyboard_svn.bb
@@ -4,7 +4,7 @@ DEPENDS = "libfakekey expat libxft"
RCONFLICTS = matchbox-keyboard-inputmethod
RPROVIDES_${PN} = matchbox-keyboard-inputmethod
SECTION = "x11"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR ="r7"
SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=${PN};proto=http \
diff --git a/recipes/matchbox-panel/matchbox-panel_svn.bb b/recipes/matchbox-panel/matchbox-panel_svn.bb
index e7fb3e6439..9fff9b43c9 100644
--- a/recipes/matchbox-panel/matchbox-panel_svn.bb
+++ b/recipes/matchbox-panel/matchbox-panel_svn.bb
@@ -1,5 +1,5 @@
require matchbox-panel.inc
-PV = "0.9.2+svnr${SRCREV}"
+PV = "0.9.2+svnr${SRCPV}"
DEFAULT_PREFERENCE = "-1"
SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=${PN};proto=http"
diff --git a/recipes/matchbox-stroke/matchbox-stroke_svn.bb b/recipes/matchbox-stroke/matchbox-stroke_svn.bb
index d9f17e9f9d..4c1d20177d 100644
--- a/recipes/matchbox-stroke/matchbox-stroke_svn.bb
+++ b/recipes/matchbox-stroke/matchbox-stroke_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Matchbox keyboard"
LICENSE = "GPL"
DEPENDS = "libfakekey expat libxft"
SECTION = "x11/wm"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR ="r2"
diff --git a/recipes/matchbox-terminal/matchbox-terminal_svn.bb b/recipes/matchbox-terminal/matchbox-terminal_svn.bb
index 4d2ddc2eb9..e6263ec561 100644
--- a/recipes/matchbox-terminal/matchbox-terminal_svn.bb
+++ b/recipes/matchbox-terminal/matchbox-terminal_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Matchbox Terminal"
LICENSE = "GPL"
DEPENDS = "gtk+ vte"
SECTION = "x11/utils"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=${PN};proto=http"
diff --git a/recipes/matchbox-themes-extra/matchbox-theme-sato_svn.bb b/recipes/matchbox-themes-extra/matchbox-theme-sato_svn.bb
index 4972444211..5f4b38a7c8 100644
--- a/recipes/matchbox-themes-extra/matchbox-theme-sato_svn.bb
+++ b/recipes/matchbox-themes-extra/matchbox-theme-sato_svn.bb
@@ -5,7 +5,7 @@ SECTION = "x11/wm"
DEFAULT_PREFERENCE = "-1"
-PV = "0.1+svnr${SRCREV}"
+PV = "0.1+svnr${SRCPV}"
PR = "r0"
PACKAGE_ARCH = "all"
diff --git a/recipes/matchbox2/matchbox-desktop-2_svn.bb b/recipes/matchbox2/matchbox-desktop-2_svn.bb
index f0261f9ea1..5c3a4686df 100644
--- a/recipes/matchbox2/matchbox-desktop-2_svn.bb
+++ b/recipes/matchbox2/matchbox-desktop-2_svn.bb
@@ -3,7 +3,7 @@ LICENSE = "GPL"
SECTION = "x11/panels"
DEPENDS = "gtk+ startup-notification"
RDEPENDS = "matchbox-common"
-PV = "2.0+svnr${SRCREV}"
+PV = "2.0+svnr${SRCPV}"
PR = "r1"
inherit autotools_stage pkgconfig
diff --git a/recipes/matchbox2/matchbox-panel-2-icon-themes_0.0.1.bb b/recipes/matchbox2/matchbox-panel-2-icon-themes_0.0.1.bb
index 2d14e0c65b..0dc89e6a67 100644
--- a/recipes/matchbox2/matchbox-panel-2-icon-themes_0.0.1.bb
+++ b/recipes/matchbox2/matchbox-panel-2-icon-themes_0.0.1.bb
@@ -4,13 +4,14 @@ SECTION = "x11/panels"
DEPENDS = "imagemagick-native"
RPROVIDES_${PN} = "matchbox-panel-2-icon-theme"
PACKAGE_ARCH = "all"
-PV = "0.0.1+svnr${SRCREV}"
+SRCREV_FORMAT = "startup"
+PV = "0.0.1+svnr${SRCPV}"
PR = "r0"
inherit gtk-icon-cache
SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=matchbox-panel-2/applets/battery/data;proto=http;maxrev=1918 \
- svn://svn.o-hand.com/repos/matchbox/trunk;module=matchbox-panel-2/applets/startup/data;proto=http \
+ svn://svn.o-hand.com/repos/matchbox/trunk;module=matchbox-panel-2/applets/startup/data;proto=http;name=startup \
svn://svn.o-hand.com/repos/matchbox/trunk;module=matchbox-panel-2/applets/brightness/data;proto=http \
file://user-desktop.png \
file://task-switcher.png \
diff --git a/recipes/matchbox2/matchbox-panel-2_svn.bb b/recipes/matchbox2/matchbox-panel-2_svn.bb
index 667b54967f..a2a807f28a 100644
--- a/recipes/matchbox2/matchbox-panel-2_svn.bb
+++ b/recipes/matchbox2/matchbox-panel-2_svn.bb
@@ -6,7 +6,7 @@ DEPENDS += " ${@base_contains("MACHINE_FEATURES", "acpi", "libacpi", "",d)}"
DEPENDS += " ${@base_contains("MACHINE_FEATURES", "apm", "apmd", "",d)}"
RDEPENDS_${PN} = "matchbox-panel-2-icon-theme"
PACKAGE_ARCH = "${MACHINE_ARCH}"
-PV = "2.0+svnr${SRCREV}"
+PV = "2.0+svnr${SRCPV}"
PR = "r0"
inherit autotools_stage pkgconfig
diff --git a/recipes/matchbox2/matchbox-wm-2_svn.bb b/recipes/matchbox2/matchbox-wm-2_svn.bb
index e5aefc02ab..b716cf2c96 100644
--- a/recipes/matchbox2/matchbox-wm-2_svn.bb
+++ b/recipes/matchbox2/matchbox-wm-2_svn.bb
@@ -1,5 +1,5 @@
DEPENDS = "gtk+ startup-notification dbus dbus-glib"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r0"
SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=matchbox-window-manager-2;proto=http \
diff --git a/recipes/meta/meta-toolchain-qte.bb b/recipes/meta/meta-toolchain-qte.bb
index c27e7cc88c..789b99a032 100644
--- a/recipes/meta/meta-toolchain-qte.bb
+++ b/recipes/meta/meta-toolchain-qte.bb
@@ -10,21 +10,21 @@ SDK_SUFFIX = "toolchain-qte"
QT_DIR_NAME = "qtopia"
do_populate_sdk_append() {
- script = "${SDK_OUTPUT}/${prefix}/environment-setup"
+ script = "${SDK_OUTPUT}/${SDKPATH}/environment-setup"
touch $script
echo 'export OE_QMAKE_CC=${TARGET_SYS}-gcc' >> $script
echo 'export OE_QMAKE_CXX=${TARGET_SYS}-g++' >> $script
echo 'export OE_QMAKE_LINK=${TARGET_SYS}-g++' >> $script
- echo 'export OE_QMAKE_LIBDIR_QT=${prefix}/${TARGET_SYS}/${layout_libdir}' >> $script
- echo 'export OE_QMAKE_INCDIR_QT=${prefix}/${TARGET_SYS}/${layout_includedir}/${QT_DIR_NAME}' >> $script
- echo 'export OE_QMAKE_MOC=${prefix}/bin/moc4' >> $script
- echo 'export OE_QMAKE_UIC=${prefix}/bin/uic4' >> $script
- echo 'export OE_QMAKE_UIC3=${prefix}/bin/uic34' >> $script
- echo 'export OE_QMAKE_RCC=${prefix}/bin/rcc4' >> $script
- echo 'export OE_QMAKE_QDBUSCPP2XML=${prefix}/bin/qdbuscpp2xml4' >> $script
- echo 'export OE_QMAKE_QDBUSXML2CPP=${prefix}/bin/qdbusxml2cpp4' >> $script
- echo 'export OE_QMAKE_QT_CONFIG=${prefix}/${TARGET_SYS}/${layout_datadir}/${QT_DIR_NAME}/mkspecs/qconfig.pri' >> $script
- echo 'export QMAKESPEC=${prefix}/${TARGET_SYS}/${layout_datadir}/${QT_DIR_NAME}/mkspecs/linux-g++' >> $script
+ echo 'export OE_QMAKE_LIBDIR_QT=${SDKPATH}/${TARGET_SYS}/${libdir}' >> $script
+ echo 'export OE_QMAKE_INCDIR_QT=${SDKPATH}/${TARGET_SYS}/${includedir}/${QT_DIR_NAME}' >> $script
+ echo 'export OE_QMAKE_MOC=${SDKPATH}/bin/moc4' >> $script
+ echo 'export OE_QMAKE_UIC=${SDKPATH}/bin/uic4' >> $script
+ echo 'export OE_QMAKE_UIC3=${SDKPATH}/bin/uic34' >> $script
+ echo 'export OE_QMAKE_RCC=${SDKPATH}/bin/rcc4' >> $script
+ echo 'export OE_QMAKE_QDBUSCPP2XML=${SDKPATH}/bin/qdbuscpp2xml4' >> $script
+ echo 'export OE_QMAKE_QDBUSXML2CPP=${SDKPATH}/bin/qdbusxml2cpp4' >> $script
+ echo 'export OE_QMAKE_QT_CONFIG=${SDKPATH}/${TARGET_SYS}/${datadir}/${QT_DIR_NAME}/mkspecs/qconfig.pri' >> $script
+ echo 'export QMAKESPEC=${SDKPATH}/${TARGET_SYS}/${datadir}/${QT_DIR_NAME}/mkspecs/linux-g++' >> $script
# Repack SDK with new environment-setup
cd ${SDK_OUTPUT}
diff --git a/recipes/meta/meta-toolchain.bb b/recipes/meta/meta-toolchain.bb
index 2e83b1d02f..e09778f82c 100644
--- a/recipes/meta/meta-toolchain.bb
+++ b/recipes/meta/meta-toolchain.bb
@@ -2,21 +2,7 @@ DESCRIPTION = "Meta package for building a installable toolchain"
LICENSE = "MIT"
DEPENDS = "opkg-native ipkg-utils-native fakeroot-native sed-native"
-# NOTE: We need to save and restore PACKAGE_ARCHS, because sdk.bbclass
-# will change HOST_ARCH, which can result in SITEINFO_ENDIANESS (which
-# is computed in siteinfo.bbclass) in changing if the original HOST_ARCH
-# endianess differs from the new HOST_ARCH endianess. SITEINFO_ENDIANNESS
-# is used in a number of places, including the construction of the
-# PACKAGE_EXTRA_ARCHS list for machines that are capable of running in
-# either endianess. There may be better ways to fix this.
-
-# Save value of PACKAGE_ARCHS (note the ":=" syntax to force immediate eval)
-REAL_PACKAGE_ARCHS := "${PACKAGE_ARCHS}"
-
-inherit sdk meta
-
-# Restore PACKAGE_ARCHS (sdk.bbclass may have caused it to change)
-PACKAGE_ARCHS := "${REAL_PACKAGE_ARCHS}"
+inherit meta
SDK_DIR = "${WORKDIR}/sdk"
SDK_OUTPUT = "${SDK_DIR}/image"
@@ -24,7 +10,7 @@ SDK_OUTPUT2 = "${SDK_DIR}/image-extras"
SDK_DEPLOY = "${DEPLOY_DIR}/sdk"
IPKG_HOST = "opkg-cl -f ${IPKGCONF_SDK} -o ${SDK_OUTPUT}"
-IPKG_TARGET = "opkg-cl -f ${IPKGCONF_TARGET} -o ${SDK_OUTPUT}/${SDK_PATH}/${TARGET_SYS}"
+IPKG_TARGET = "opkg-cl -f ${IPKGCONF_TARGET} -o ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}"
TOOLCHAIN_HOST_TASK ?= "task-sdk-host"
TOOLCHAIN_TARGET_TASK ?= "task-sdk-bare"
@@ -37,12 +23,12 @@ RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}"
TOOLCHAIN_FEED_URI ?= "${DISTRO_FEED_URI}"
modify_opkg_conf () {
- OUTPUT_OPKGCONF_TARGET="${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/${layout_sysconfdir}/opkg.conf"
- OUTPUT_OPKGCONF_HOST="${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/${layout_sysconfdir}/opkg-sdk.conf"
+ OUTPUT_OPKGCONF_TARGET="${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/${sysconfdir}/opkg.conf"
+ OUTPUT_OPKGCONF_HOST="${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/${sysconfdir}/opkg-sdk.conf"
OUTPUT_OPKGCONF_SDK="${SDK_OUTPUT}/${sysconfdir}/opkg-sdk.conf"
- rm ${OUTPUT_OPKGCONF_TARGET}
- rm ${OUTPUT_OPKGCONF_HOST}
- rm ${OUTPUT_OPKGCONF_SDK}
+ rm -f ${OUTPUT_OPKGCONF_TARGET}
+ rm -f ${OUTPUT_OPKGCONF_HOST}
+ rm -f ${OUTPUT_OPKGCONF_SDK}
opkgarchs="${PACKAGE_ARCHS}"
priority=1
for arch in ${opkgarchs}; do
@@ -55,6 +41,8 @@ modify_opkg_conf () {
do_populate_sdk() {
rm -rf ${SDK_OUTPUT}
mkdir -p ${SDK_OUTPUT}
+ mkdir -p ${SDK_OUTPUT}${libdir}/opkg/
+ mkdir -p ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}${libdir}/opkg/
package_generate_ipkg_conf
@@ -62,48 +50,45 @@ do_populate_sdk() {
revipkgarchs="$arch $revipkgarchs"
done
- mkdir -p ${SDK_OUTPUT}/${layout_libdir}/opkg
${IPKG_HOST} update
${IPKG_HOST} -force-depends install ${TOOLCHAIN_HOST_TASK}
- mkdir -p ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/${layout_libdir}/opkg
${IPKG_TARGET} update
${IPKG_TARGET} install ${TOOLCHAIN_TARGET_TASK}
- install -d ${SDK_OUTPUT}/${prefix}/${layout_libdir}/opkg
- mv ${SDK_OUTPUT}/${layout_libdir}/opkg/* \
- ${SDK_OUTPUT}/${prefix}/${layout_libdir}/opkg/
- rm -Rf ${SDK_OUTPUT}/${layout_libdir}
+ install -d ${SDK_OUTPUT}/${SDKPATH}/usr/lib/opkg
+ mv ${SDK_OUTPUT}/usr/lib/opkg/* ${SDK_OUTPUT}/${SDKPATH}/usr/lib/opkg/
+ rm -Rf ${SDK_OUTPUT}/usr/lib
- install -d ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/${layout_sysconfdir}
- install -m 0644 ${IPKGCONF_TARGET} ${IPKGCONF_SDK} ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/${layout_sysconfdir}/
+ install -d ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/${sysconfdir}
+ install -m 0644 ${IPKGCONF_TARGET} ${IPKGCONF_SDK} ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/${sysconfdir}/
- install -d ${SDK_OUTPUT}/${sysconfdir}
- install -m 0644 ${IPKGCONF_SDK} ${SDK_OUTPUT}/${sysconfdir}/
+ install -d ${SDK_OUTPUT}/${SDKPATH}/${sysconfdir}
+ install -m 0644 ${IPKGCONF_SDK} ${SDK_OUTPUT}/${SDKPATH}/${sysconfdir}/
# extract and store ipks, pkgdata and shlibs data
- target_pkgs=`cat ${SDK_OUTPUT}/${prefix}/package-status | grep Package: | cut -f 2 -d ' '`
- mkdir -p ${SDK_OUTPUT2}/${prefix}/ipk/
- mkdir -p ${SDK_OUTPUT2}/${prefix}/pkgdata/runtime/
- mkdir -p ${SDK_OUTPUT2}/${prefix}/${TARGET_SYS}/shlibs/
+ target_pkgs=`cat ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/usr/lib/opkg/status | grep Package: | cut -f 2 -d ' '`
+ mkdir -p ${SDK_OUTPUT2}/${SDKPATH}/ipk/
+ mkdir -p ${SDK_OUTPUT2}/${SDKPATH}/pkgdata/runtime/
+ mkdir -p ${SDK_OUTPUT2}/${SDKPATH}/${TARGET_SYS}/shlibs/
for pkg in $target_pkgs ; do
for arch in $revipkgarchs; do
pkgnames=${DEPLOY_DIR_IPK}/$arch/${pkg}_*_$arch.ipk
if [ -e $pkgnames ]; then
oenote "Found $pkgnames"
- cp $pkgnames ${SDK_OUTPUT2}/${prefix}/ipk/
+ cp $pkgnames ${SDK_OUTPUT2}/${SDKPATH}/ipk/
orig_pkg=`ipkg-list-fields $pkgnames | grep OE: | cut -d ' ' -f2`
pkg_subdir=$arch${TARGET_VENDOR}${@['-' + bb.data.getVar('TARGET_OS', d, 1), ''][bb.data.getVar('TARGET_OS', d, 1) == ('' or 'custom')]}
- mkdir -p ${SDK_OUTPUT2}/${prefix}/pkgdata/$pkg_subdir/runtime
- cp ${STAGING_DIR}/pkgdata/$pkg_subdir/$orig_pkg ${SDK_OUTPUT2}/${prefix}/pkgdata/$pkg_subdir/
- subpkgs=`cat ${STAGING_DIR}/pkgdata/$pkg_subdir/$orig_pkg | grep PACKAGES: | cut -b 10-`
+ mkdir -p ${SDK_OUTPUT2}/${SDKPATH}/pkgdata/$pkg_subdir/runtime
+ cp ${TMPDIR}/pkgdata/$pkg_subdir/$orig_pkg ${SDK_OUTPUT2}/${SDKPATH}/pkgdata/$pkg_subdir/
+ subpkgs=`cat ${TMPDIR}/pkgdata/$pkg_subdir/$orig_pkg | grep PACKAGES: | cut -b 10-`
for subpkg in $subpkgs; do
- cp ${STAGING_DIR}/pkgdata/$pkg_subdir/runtime/$subpkg ${SDK_OUTPUT2}/${prefix}/pkgdata/$pkg_subdir/runtime/
- if [ -e ${STAGING_DIR}/pkgdata/$pkg_subdir/runtime/$subpkg.packaged ];then
- cp ${STAGING_DIR}/pkgdata/$pkg_subdir/runtime/$subpkg.packaged ${SDK_OUTPUT2}/${prefix}/pkgdata/$pkg_subdir/runtime/
+ cp ${TMPDIR}/pkgdata/$pkg_subdir/runtime/$subpkg ${SDK_OUTPUT2}/${SDKPATH}/pkgdata/$pkg_subdir/runtime/
+ if [ -e ${TMPDIR}/pkgdata/$pkg_subdir/runtime/$subpkg.packaged ];then
+ cp ${TMPDIR}/pkgdata/$pkg_subdir/runtime/$subpkg.packaged ${SDK_OUTPUT2}/${SDKPATH}/pkgdata/$pkg_subdir/runtime/
fi
if [ -e ${STAGING_DIR_TARGET}/shlibs/$subpkg.list ]; then
- cp ${STAGING_DIR_TARGET}/shlibs/$subpkg.* ${SDK_OUTPUT2}/${prefix}/${TARGET_SYS}/shlibs/
+ cp ${STAGING_DIR_TARGET}/shlibs/$subpkg.* ${SDK_OUTPUT2}/${SDKPATH}/${TARGET_SYS}/shlibs/
fi
done
break
@@ -115,44 +100,44 @@ do_populate_sdk() {
# libgcc-dev should be responsible for that, but it's not getting built
# RP: it gets smashed up depending on the order that gcc, gcc-cross and
# gcc-cross-sdk get built :( (30/11/07)
- ln -sf libgcc_s.so.1 ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/lib/libgcc_s.so
+ ln -sf libgcc_s.so.1 ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/lib/libgcc_s.so
# With sysroot support, gcc expects the default C++ headers to be
# in a specific place.
- install -d ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/include
- mv ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/usr/include/c++ \
- ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/include/
+ install -d ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/include
+ mv ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/usr/include/c++ \
+ ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/include/
# Fix or remove broken .la files
- for i in `find ${SDK_OUTPUT}/${prefix}/${TARGET_SYS} -name \*.la`; do
- sed -i -e "/^dependency_libs=/s,\([[:space:]']\)${layout_base_libdir},\1${prefix}/${TARGET_SYS}${layout_base_libdir},g" \
- -e "/^dependency_libs=/s,\([[:space:]']\)${layout_libdir},\1${prefix}/${TARGET_SYS}${layout_libdir},g" \
- -e "/^dependency_libs=/s,\-\([LR]\)${layout_base_libdir},-\1${prefix}/${TARGET_SYS}${layout_base_libdir},g" \
- -e "/^dependency_libs=/s,\-\([LR]\)${layout_libdir},-\1${prefix}/${TARGET_SYS}${layout_libdir},g" \
+ for i in `find ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS} -name \*.la`; do
+ sed -i -e "/^dependency_libs=/s,\([[:space:]']\)${base_libdir},\1${SDKPATH}/${TARGET_SYS}${base_libdir},g" \
+ -e "/^dependency_libs=/s,\([[:space:]']\)${libdir},\1${SDKPATH}/${TARGET_SYS}${libdir},g" \
+ -e "/^dependency_libs=/s,\-\([LR]\)${base_libdir},-\1${SDKPATH}/${TARGET_SYS}${base_libdir},g" \
+ -e "/^dependency_libs=/s,\-\([LR]\)${libdir},-\1${SDKPATH}/${TARGET_SYS}${libdir},g" \
-e 's/^installed=yes$/installed=no/' $i
done
- rm -f ${SDK_OUTPUT}/${prefix}/lib/*.la
+ rm -f ${SDK_OUTPUT}/${SDKPATH}/lib/*.la
# Setup site file for external use
- siteconfig=${SDK_OUTPUT}/${prefix}/site-config
+ siteconfig=${SDK_OUTPUT}/${SDKPATH}/site-config
touch $siteconfig
for sitefile in ${CONFIG_SITE} ; do
cat $sitefile >> $siteconfig
done
# Create environment setup script
- script=${SDK_OUTPUT}/${prefix}/environment-setup
+ script=${SDK_OUTPUT}/${SDKPATH}/environment-setup
touch $script
- echo 'export PATH=${prefix}/bin:$PATH' >> $script
+ echo 'export PATH=${SDKPATH}/bin:$PATH' >> $script
echo 'export LIBTOOL_SYSROOT_PATH=${prefix}/${TARGET_SYS}' >> $script
- echo 'export PKG_CONFIG_SYSROOT_DIR=${prefix}/${TARGET_SYS}' >> $script
- echo 'export PKG_CONFIG_PATH=${prefix}/${TARGET_SYS}${layout_libdir}/pkgconfig' >> $script
- echo 'export CONFIG_SITE=${prefix}/site-config' >> $script
- echo "alias opkg='LD_LIBRARY_PATH=${prefix}/lib ${prefix}/bin/opkg-cl -f ${sysconfdir}/opkg-sdk.conf -o ${prefix}'" >> $script
- echo "alias opkg-target='LD_LIBRARY_PATH=${prefix}/lib ${prefix}/bin/opkg-cl -f ${prefix}/${TARGET_SYS}${layout_sysconfdir}/opkg.conf -o ${prefix}/${TARGET_SYS}'" >> $script
+ echo 'export PKG_CONFIG_SYSROOT_DIR=${SDKPATH}/${TARGET_SYS}' >> $script
+ echo 'export PKG_CONFIG_PATH=${SDKPATH}/${TARGET_SYS}${libdir}/pkgconfig' >> $script
+ echo 'export CONFIG_SITE=${SDKPATH}/site-config' >> $script
+ echo "alias opkg='LD_LIBRARY_PATH=${SDKPATH}/lib ${SDKPATH}/bin/opkg-cl -f ${SDKPATH}/${sysconfdir}/opkg-sdk.conf -o ${SDKPATH}'" >> $script
+ echo "alias opkg-target='LD_LIBRARY_PATH=${SDKPATH}/lib ${SDKPATH}/bin/opkg-cl -f ${SDKPATH}/${TARGET_SYS}${sysconfdir}/opkg.conf -o ${SDKPATH}/${TARGET_SYS}'" >> $script
# Add version information
- versionfile=${SDK_OUTPUT}/${prefix}/version
+ versionfile=${SDK_OUTPUT}/${SDKPATH}/version
touch $versionfile
echo 'Distro: ${DISTRO}' >> $versionfile
echo 'Distro Version: ${DISTRO_VERSION}' >> $versionfile
diff --git a/recipes/meta/slugos-packages.bb b/recipes/meta/slugos-packages.bb
index 0129ffce79..2218079369 100644
--- a/recipes/meta/slugos-packages.bb
+++ b/recipes/meta/slugos-packages.bb
@@ -5,7 +5,7 @@
DESCRIPTION = "Packages that are compatible with the SlugOS firmware"
HOMEPAGE = "http://www.nslu2-linux.org"
LICENSE = "MIT"
-PR = "r64"
+PR = "r65"
CONFLICTS = "db3"
COMPATIBLE_MACHINE = "nslu2|ixp4xx"
@@ -177,6 +177,7 @@ SLUGOS_PACKAGES = "\
openobex \
openssh \
openvpn \
+ owfs \
patch \
pciutils \
perl \
diff --git a/recipes/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb b/recipes/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb
new file mode 100644
index 0000000000..65fab979b1
--- /dev/null
+++ b/recipes/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb
@@ -0,0 +1,10 @@
+DESCRIPTION = "Mobile Broadband Service Provider Database"
+SECTION = "network"
+LICENSE = "CCPD"
+PV = "gitr${SRCREV}"
+PR = "r0"
+
+SRC_URI = "git://git.gnome.org/mobile-broadband-provider-info;protocol=git"
+S = "${WORKDIR}/git"
+
+inherit autotools_stage
diff --git a/recipes/module-init-tools/module-init-tools-cross_3.2.2.bb b/recipes/module-init-tools/module-init-tools-cross_3.2.2.bb
index eb2027b384..c8a35c766b 100644
--- a/recipes/module-init-tools/module-init-tools-cross_3.2.2.bb
+++ b/recipes/module-init-tools/module-init-tools-cross_3.2.2.bb
@@ -1,5 +1,5 @@
-LICENSE = "GPL"
-require module-init-tools_${PV}.bb
+
+require module-init-tools.inc
inherit cross
DEFAULT_PREFERENCE = "0"
PROVIDES += "virtual/${TARGET_PREFIX}depmod virtual/${TARGET_PREFIX}depmod-2.6"
diff --git a/recipes/module-init-tools/module-init-tools.inc b/recipes/module-init-tools/module-init-tools.inc
new file mode 100644
index 0000000000..59e93d4533
--- /dev/null
+++ b/recipes/module-init-tools/module-init-tools.inc
@@ -0,0 +1,25 @@
+DESCRIPTION = "This package contains a set of programs for loading, inserting, and \
+removing kernel modules for Linux (versions 2.5.48 and above). It serves \
+the same function that the modutils package serves for Linux 2.4."
+LICENSE = "GPL"
+SECTION = "base"
+PR = "r5"
+
+PACKAGES =+ "module-init-tools-insmod-static module-init-tools-depmod"
+RDEPENDS_${PN} += "module-init-tools-depmod"
+
+FILES_module-init-tools-depmod = "${sbindir}/depmod.26"
+FILES_module-init-tools-insmod-static = "${sbindir}/insmod.static"
+
+SRC_URI = "${KERNELORG_MIRROR}/pub/linux/utils/kernel/module-init-tools/module-init-tools-${PV}.tar.bz2 \
+ file://ignore_arch_directory;patch=1 \
+ file://modutils_extension;patch=1 \
+ file://no_man_rebuild;patch=1 \
+ file://manpagesopt;patch=1 \
+ file://module-init-tools-remove-index.patch;patch=1 "
+S = "${WORKDIR}/module-init-tools-${PV}"
+
+EXTRA_OECONF = "--disable-manpages"
+
+
+inherit autotools
diff --git a/recipes/module-init-tools/module-init-tools_3.2.1.bb b/recipes/module-init-tools/module-init-tools_3.2.1.bb
index 91c0efcd64..6481913ca7 100644
--- a/recipes/module-init-tools/module-init-tools_3.2.1.bb
+++ b/recipes/module-init-tools/module-init-tools_3.2.1.bb
@@ -1,30 +1,14 @@
-DESCRIPTION = "This package contains a set of programs for loading, inserting, and \
-removing kernel modules for Linux (versions 2.5.48 and above). It serves \
-the same function that the modutils package serves for Linux 2.4."
-LICENSE = "GPL"
-SECTION = "base"
-PR = "r1"
-
-PACKAGES =+ "module-init-tools-insmod-static module-init-tools-depmod"
-RDEPENDS_${PN} += "module-init-tools-depmod"
-
-FILES_module-init-tools-depmod = "${sbindir}/depmod.26"
-FILES_module-init-tools-insmod-static = "${sbindir}/insmod.static"
+require module-init-tools.inc
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/utils/kernel/module-init-tools/module-init-tools-${PV}.tar.bz2 \
file://ignore_arch_directory;patch=1 \
file://modutils_extension;patch=1 \
file://no_man_rebuild;patch=1 \
file://manpagesopt;patch=1 "
-S = "${WORKDIR}/module-init-tools-${PV}"
-
-EXTRA_OECONF = "--disable-manpages"
bindir = "/bin"
sbindir = "/sbin"
-inherit autotools
-
do_install() {
autotools_do_install
for f in bin/lsmod sbin/insmod sbin/rmmod sbin/modprobe sbin/modinfo sbin/depmod; do
diff --git a/recipes/module-init-tools/module-init-tools_3.2.2.bb b/recipes/module-init-tools/module-init-tools_3.2.2.bb
index a56bac7a82..4e2cba8d6f 100644
--- a/recipes/module-init-tools/module-init-tools_3.2.2.bb
+++ b/recipes/module-init-tools/module-init-tools_3.2.2.bb
@@ -1,31 +1,8 @@
-DESCRIPTION = "This package contains a set of programs for loading, inserting, and \
-removing kernel modules for Linux (versions 2.5.48 and above). It serves \
-the same function that the modutils package serves for Linux 2.4."
-LICENSE = "GPL"
-SECTION = "base"
-PR = "r5"
-
-PACKAGES =+ "module-init-tools-insmod-static module-init-tools-depmod"
-RDEPENDS_${PN} += "module-init-tools-depmod"
-
-FILES_module-init-tools-depmod = "${sbindir}/depmod.26"
-FILES_module-init-tools-insmod-static = "${sbindir}/insmod.static"
-
-SRC_URI = "${KERNELORG_MIRROR}/pub/linux/utils/kernel/module-init-tools/module-init-tools-${PV}.tar.bz2 \
- file://ignore_arch_directory;patch=1 \
- file://modutils_extension;patch=1 \
- file://no_man_rebuild;patch=1 \
- file://manpagesopt;patch=1 \
- file://module-init-tools-remove-index.patch;patch=1 "
-S = "${WORKDIR}/module-init-tools-${PV}"
-
-EXTRA_OECONF = "--disable-manpages"
+require module-init-tools.inc
bindir = "/bin"
sbindir = "/sbin"
-inherit autotools
-
do_install() {
autotools_do_install
for f in bin/lsmod sbin/insmod sbin/rmmod sbin/modprobe sbin/modinfo sbin/depmod; do
diff --git a/recipes/module-init-tools/module-init-tools_3.4.bb b/recipes/module-init-tools/module-init-tools_3.4.bb
index caea00d194..0b94c3b317 100644
--- a/recipes/module-init-tools/module-init-tools_3.4.bb
+++ b/recipes/module-init-tools/module-init-tools_3.4.bb
@@ -1,29 +1,12 @@
-DESCRIPTION = "This package contains a set of programs for loading, inserting, and \
-removing kernel modules for Linux (versions 2.5.48 and above). It serves \
-the same function that the modutils package serves for Linux 2.4."
-LICENSE = "GPL"
-SECTION = "base"
-
-PR = "r1"
-
-PACKAGES =+ "module-init-tools-insmod-static module-init-tools-depmod"
-RDEPENDS_${PN} += "module-init-tools-depmod"
-
-FILES_module-init-tools-depmod = "${sbindir}/depmod.26"
-FILES_module-init-tools-insmod-static = "${sbindir}/insmod.static"
+require module-init-tools.inc
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/utils/kernel/module-init-tools/module-init-tools-${PV}.tar.bz2 \
file://modutils_extension;patch=1 \
"
-S = "${WORKDIR}/module-init-tools-${PV}"
-
-EXTRA_OECONF = "--disable-manpages"
bindir = "/bin"
sbindir = "/sbin"
-inherit autotools
-
do_configure_prepend() {
sed -i -e /MAN5\ =/d -e /MAN8\ =/d Makefile.am
}
diff --git a/recipes/mokoeightball/files/fixpath.patch b/recipes/mokoeightball/files/fixpath.patch
new file mode 100644
index 0000000000..8fd82cf27e
--- /dev/null
+++ b/recipes/mokoeightball/files/fixpath.patch
@@ -0,0 +1,63 @@
+Index: ./python/src/eightball.py
+===================================================================
+--- ./python/src/eightball.py (revision 45)
++++ ./python/src/eightball.py (working copy)
+@@ -47,12 +47,6 @@
+ shakeTimer = None
+
+ def __init__( self, size ):
+- # Check if we can use accelerated rendering
+- if ecore.evas.engine_type_supported_get("software_x11_16"):
+- self.engine = ecore.evas.SoftwareX11_16
+- else:
+- print "warning: x11-16 is not supported, fallback to x11"
+- self.engine = ecore.evas.SoftwareX11
+
+ self.size = size
+
+@@ -63,7 +57,12 @@
+ self.accel.addListener( "shake", self.onShake )
+
+ # Initialize the renderer and set all initial properties
+- self.ee = self.engine( w = size[0], h = size[1] )
++ try:
++ self.engine = ecore.evas.SoftwareX11_16
++ self.ee = self.engine( w = size[0], h = size[1] )
++ except e:
++ self.engine = ecore.evas.SoftwareX11
++ self.ee = self.engine( w = size[0], h = size[1] )
+ self.ee.title = "Moko Eightball"
+ self.ee.name_class = ( "MOKO_EIGHTBALL", "MOKO_EIGHTBALL" )
+ # self.ee.fullscreen = True
+Index: ./python/src/Accelerometer/__init__.py
+===================================================================
+--- ./python/src/Accelerometer/__init__.py (revision 45)
++++ ./python/src/Accelerometer/__init__.py (working copy)
+@@ -30,7 +30,7 @@
+
+ class EventManager(object):
+ movementTolerance = 30
+- shakeTolerance = 2100
++ shakeTolerance = 100
+
+ listeners = dict(
+ shake = [],
+@@ -82,15 +82,15 @@
+ # Inform all listeners
+ self.informListeners()
+ break
+- if ( type == 2 and code == 0 ):
++ if ( type == 3 and code == 0 ):
+ # Update x
+ x = value
+ continue
+- if ( type == 2 and code == 1 ):
++ if ( type == 3 and code == 1 ):
+ # Update y
+ y = value
+ continue
+- if ( type == 2 and code == 2 ):
++ if ( type == 3 and code == 2 ):
+ # Update z
+ z = value
+ continue
diff --git a/recipes/mokoeightball/mokoeightball_svn.bb b/recipes/mokoeightball/mokoeightball_svn.bb
new file mode 100644
index 0000000000..dde59cb018
--- /dev/null
+++ b/recipes/mokoeightball/mokoeightball_svn.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "Magic 8 Ball"
+HOMEPAGE = "http://www.opkg.org/package_35.html"
+AUTHOR = "Jakob Westhoff"
+LICENSE = "GPLv2"
+SECTION = "x11/game"
+SRCREV = "45"
+PV = "0.2+svnr${SRCPV}"
+PR = "r0"
+S = "${WORKDIR}/"
+FILES_${PN} += /usr/share/moko_eightball/Accelerometer/__init__.py
+FILES_${PN} += /usr/share/moko_eightball/themes/eightball.edj
+
+SRC_URI = "svn://svn.pureenergy.cc/moko_eightball;module=.;proto=svn \
+ file://files/fixpath.patch;patch=1"
+
+do_compile() {
+ cd python/src/data/themes
+ ./maketheme.sh
+}
+
+do_install() {
+ cd python
+ install -d 0755 ${D}/usr/share/moko_eightball
+ install -d 0755 ${D}/usr/share/moko_eightball/Accelerometer
+ install -d 0755 ${D}/usr/share/moko_eightball/themes
+ install -d 0755 ${D}/usr/share/applications
+ install -d 0755 ${D}/usr/share/pixmaps
+ install -d 0755 ${D}/usr/bin
+ install -m 0755 src/eightball.py ${D}/usr/bin/eightball
+ install -m 0644 src/Accelerometer/__init__.py ${D}/usr/share/moko_eightball/Accelerometer/
+ install -m 0644 src/data/themes/eightball.edj ${D}/usr/share/moko_eightball/themes/eightball.edj
+ install -m 0644 ipk/usr/share/applications/eightball.desktop ${D}/usr/share/applications/eightball.desktop
+ install -m 0644 ipk/usr/share/pixmaps/eightball.png ${D}/usr/share/pixmaps/eightball.png
+}
diff --git a/recipes/mokoko/mokoko_svn.bb b/recipes/mokoko/mokoko_svn.bb
index 84e16e576b..f22d445ae8 100644
--- a/recipes/mokoko/mokoko_svn.bb
+++ b/recipes/mokoko/mokoko_svn.bb
@@ -5,7 +5,7 @@ LICENSE = "GPL"
DEPENDS = "gstreamer"
RDEPENDS = "gstreamer"
-PV = "0.1+svnr${SRCREV}"
+PV = "0.1+svnr${SRCPV}"
PR = "r1"
SRC_URI = "svn://om-mediaplayer.googlecode.com/svn/;module=trunk;proto=http"
diff --git a/recipes/mokomaze/files/fsoraw.patch b/recipes/mokomaze/files/fsoraw.patch
new file mode 100644
index 0000000000..e59f0cf6a7
--- /dev/null
+++ b/recipes/mokomaze/files/fsoraw.patch
@@ -0,0 +1,11 @@
+--- mokomaze-0.5.5+git8/data/mokomaze.desktop 2009-08-22 12:14:31.000000000 +0200
++++ mokomaze-0.5.5+git8/data/mokomaze.desktop 2009-08-22 12:50:30.000000000 +0200
+@@ -4,7 +4,7 @@
+ Encoding=UTF-8
+ Version=0.5
+ Type=Application
+-Exec=mokomaze
++Exec=fsoraw -r Display mokomaze
+ Terminal=false
+ Categories=Game;
+ X-MB-SingleInstance=true
diff --git a/recipes/mokomaze/mokomaze_0.5.5.bb b/recipes/mokomaze/mokomaze_0.5.5.bb
new file mode 100644
index 0000000000..6fbe415d2e
--- /dev/null
+++ b/recipes/mokomaze/mokomaze_0.5.5.bb
@@ -0,0 +1,25 @@
+DESCRIPTION="Classic game where you control a steel ball by tilting a wooden labyrinth"
+HOMEPAGE="http://mokomaze.projects.openmoko.org/"
+SECTION="x11/games"
+PRIORITY="optional"
+LICENSE="GPLv3"
+DEPENDS="libsdl-ttf libsdl-image ode"
+RDEPENDS="ttf-liberation-mono libpng"
+
+RDEPENDS_shr += "fsoraw"
+
+PR="r1"
+PV="0.5.5+git8"
+
+
+SRC_URI="http://mokomaze.projects.openmoko.org/files/${PN}-${PV}.tar.gz"
+
+SRC_URI_append_shr = " file://fsoraw.patch;patch=1"
+
+inherit autotools
+
+EXTRA_OECONF="FONTDIR=${datadir}/fonts/truetype --enable-rgb-swap"
+
+# needed for ode
+LDFLAGS += "-lstdc++"
+
diff --git a/recipes/mono/mono-2.4.2.3/mono-cross-compilation-for-amd64.patch b/recipes/mono/mono-2.4.2.3/mono-cross-compilation-for-amd64.patch
index e8d91da148..3cf5473e8a 100644
--- a/recipes/mono/mono-2.4.2.3/mono-cross-compilation-for-amd64.patch
+++ b/recipes/mono/mono-2.4.2.3/mono-cross-compilation-for-amd64.patch
@@ -1,23 +1,166 @@
-This is a workaround for bug 515050
https://bugzilla.novell.com/show_bug.cgi?id=515050#c2
-Real fix is something else which did not make into 2.4.2
+Backport following fixes from mono-2-4 branch
http://lists.ximian.com/pipermail/mono-patches/2009-June/151386.html
http://lists.ximian.com/pipermail/mono-patches/2009-June/151387.html
-but we are ok with workaround its safe.
-
-Khem
Index: mono-2.4.2.3/mono/mini/genmdesc.pl
===================================================================
---- mono-2.4.2.3.orig/mono/mini/genmdesc.pl 2009-10-15 18:21:45.000000000 -0700
-+++ mono-2.4.2.3/mono/mini/genmdesc.pl 2009-10-15 18:22:19.000000000 -0700
-@@ -47,7 +47,7 @@ sub load_opcodes
- $arch_define = "TARGET_ARM";
- }
-
-- $cpp .= " -D$arch_define $srcdir/mini-ops.h|";
-+ $cpp .= " -DMONO_ARCH_SUPPORT_SIMD_INTRINSICS -D$arch_define $srcdir/mini-ops.h|";
+--- mono-2.4.2.3.orig/mono/mini/genmdesc.pl 2009-11-04 15:36:19.000000000 -0800
++++ mono-2.4.2.3/mono/mini/genmdesc.pl 2009-11-04 15:36:27.000000000 -0800
+@@ -51,7 +51,7 @@ sub load_opcodes
#print "Running: $cpp\n";
open (OPS, $cpp) || die "Cannot execute cpp: $!";
while (<OPS>) {
+- next unless /MINI_OP\s*\(\s*(\S+?)\s*,\s*"(.*?)"/;
++ next unless /MINI_OP3?\s*\(\s*(\S+?)\s*,\s*"(.*?)"/;
+ my ($sym, $name) = ($1, $2);
+ push @opcodes, [$sym, $name];
+ $table{$name} = {num => $i, name => $name};
+@@ -159,16 +159,19 @@ sub build_table {
+ }
+
+ sub usage {
+- die "genmdesc.pl arch srcdir desc output name\n";
++ die "genmdesc.pl arch srcdir output name desc [desc2 ...]\n";
+ }
+
+ my $arch = shift || usage ();
+ my $srcdir = shift || usage ();
+-my $file = shift || usage ();
+ my $output = shift || usage ();
+ my $name = shift || usage ();
++usage () unless @ARGV;
++my @files = @ARGV;
+
+ load_opcodes ($srcdir, $arch);
+-load_file ($file);
++foreach my $file (@files) {
++ load_file ($file);
++}
+ build_table ($output, $name);
+
+Index: mono-2.4.2.3/mono/mini/Makefile.am
+===================================================================
+--- mono-2.4.2.3.orig/mono/mini/Makefile.am 2009-11-04 15:30:20.000000000 -0800
++++ mono-2.4.2.3/mono/mini/Makefile.am 2009-11-04 15:36:27.000000000 -0800
+@@ -422,40 +422,40 @@ GENMDESC_PRG=./genmdesc
+ endif !CROSS_COMPILING
+
+ cpu-x86.h: cpu-x86.md genmdesc$(EXEEXT)
+- $(GENMDESC_PRG) $(srcdir)/cpu-x86.md cpu-x86.h x86_desc
++ $(GENMDESC_PRG) cpu-x86.h x86_desc $(srcdir)/cpu-x86.md
+
+ cpu-amd64.h: cpu-amd64.md genmdesc$(EXEEXT)
+- $(GENMDESC_PRG) $(srcdir)/cpu-amd64.md cpu-amd64.h amd64_desc
++ $(GENMDESC_PRG) cpu-amd64.h amd64_desc $(srcdir)/cpu-amd64.md
+
+ cpu-ppc.h: cpu-ppc.md genmdesc$(EXEEXT)
+- $(GENMDESC_PRG) $(srcdir)/cpu-ppc.md cpu-ppc.h ppcg4
++ $(GENMDESC_PRG) cpu-ppc.h ppcg4 $(srcdir)/cpu-ppc.md
+
+ cpu-ppc64.h: cpu-ppc64.md genmdesc$(EXEEXT)
+- $(GENMDESC_PRG) $(srcdir)/cpu-ppc64.md cpu-ppc64.h ppc64_cpu_desc
++ $(GENMDESC_PRG) cpu-ppc64.h ppc64_cpu_desc $(srcdir)/cpu-ppc64.md
+
+ cpu-arm.h: cpu-arm.md genmdesc$(EXEEXT)
+- $(GENMDESC_PRG) $(srcdir)/cpu-arm.md cpu-arm.h arm_cpu_desc
++ $(GENMDESC_PRG) cpu-arm.h arm_cpu_desc $(srcdir)/cpu-arm.md
+
+ cpu-sparc.h: cpu-sparc.md genmdesc$(EXEEXT)
+- $(GENMDESC_PRG) $(srcdir)/cpu-sparc.md cpu-sparc.h sparc_desc
++ $(GENMDESC_PRG) cpu-sparc.h sparc_desc $(srcdir)/cpu-sparc.md
+
+ cpu-s390.h: cpu-s390.md genmdesc$(EXEEXT)
+- $(GENMDESC_PRG) $(srcdir)/cpu-s390.md cpu-s390.h s390_cpu_desc
++ $(GENMDESC_PRG) cpu-s390.h s390_cpu_desc $(srcdir)/cpu-s390.md
+
+ cpu-s390x.h: cpu-s390x.md genmdesc$(EXEEXT)
+- $(GENMDESC_PRG) $(srcdir)/cpu-s390x.md cpu-s390x.h s390x_cpu_desc
++ $(GENMDESC_PRG) cpu-s390x.h s390x_cpu_desc $(srcdir)/cpu-s390x.md
+
+ cpu-ia64.h: cpu-ia64.md genmdesc$(EXEEXT)
+- $(GENMDESC_PRG) $(srcdir)/cpu-ia64.md cpu-ia64.h ia64_desc
++ $(GENMDESC_PRG) cpu-ia64.h ia64_desc $(srcdir)/cpu-ia64.md
+
+ cpu-alpha.h: cpu-alpha.md genmdesc$(EXEEXT)
+- $(GENMDESC_PRG) $(srcdir)/cpu-alpha.md cpu-alpha.h alpha_desc
++ $(GENMDESC_PRG) cpu-alpha.h alpha_desc $(srcdir)/cpu-alpha.md
+
+ cpu-hppa.h: cpu-hppa.md genmdesc$(EXEEXT)
+- $(GENMDESC_PRG) $(srcdir)/cpu-hppa.md cpu-hppa.h hppa_desc
++ $(GENMDESC_PRG) cpu-hppa.h hppa_desc $(srcdir)/cpu-hppa.md
+
+ cpu-mips.h: cpu-mips.md genmdesc$(EXEEXT)
+- $(GENMDESC_PRG) $(srcdir)/cpu-mips.md cpu-mips.h mips_desc
++ $(GENMDESC_PRG) cpu-mips.h mips_desc $(srcdir)/cpu-mips.md
+
+ testi: mono test.exe
+ $(RUNTIME) -v -v --ncompile 1 --compile Test:$(mtest) test.exe
+Index: mono-2.4.2.3/mono/mini/genmdesc.c
+===================================================================
+--- mono-2.4.2.3.orig/mono/mini/genmdesc.c 2009-11-04 15:35:34.000000000 -0800
++++ mono-2.4.2.3/mono/mini/genmdesc.c 2009-11-04 15:36:27.000000000 -0800
+@@ -211,21 +211,20 @@ int
+ main (int argc, char* argv [])
+ {
+ init_table ();
+- switch (argc) {
+- case 2:
++ if (argc == 2) {
+ /* useful to get a new file when some opcodes are added: looses the comments, though */
+ load_file (argv [1]);
+ dump ();
+- break;
+- case 4:
+- load_file (argv [1]);
+- build_table (argv [2], argv [3]);
+- break;
+- default:
++ } else if (argc < 4) {
+ g_print ("Usage: genmdesc arguments\n");
+- g_print ("\tgenmdesc desc Output to stdout the description file.\n");
+- g_print ("\tgenmdesc desc output name Write to output the description in a table named 'name'.\n");
++ g_print ("\tgenmdesc desc Output to stdout the description file.\n");
++ g_print ("\tgenmdesc output name desc [desc1...] Write to output the description in a table named 'name'.\n");
+ return 1;
++ } else {
++ int i;
++ for (i = 3; i < argc; ++i)
++ load_file (argv [i]);
++ build_table (argv [1], argv [2]);
+ }
+ return 0;
+ }
+Index: mono-2.4.2.3/mono/mini/mini-ops.h
+===================================================================
+--- mono-2.4.2.3.orig/mono/mini/mini-ops.h 2009-11-04 15:35:34.000000000 -0800
++++ mono-2.4.2.3/mono/mini/mini-ops.h 2009-11-04 15:38:37.000000000 -0800
+@@ -72,7 +72,7 @@ MINI_OP(OP_STOREI8_MEMBASE_REG, "storei8
+ MINI_OP(OP_STORER4_MEMBASE_REG, "storer4_membase_reg", IREG, FREG, NONE)
+ MINI_OP(OP_STORER8_MEMBASE_REG, "storer8_membase_reg", IREG, FREG, NONE)
+
+-#ifdef MONO_ARCH_SUPPORT_SIMD_INTRINSICS
++#if defined(TARGET_X86) || defined(TARGET_AMD64)
+ MINI_OP(OP_STOREX_MEMBASE_REG, "storex_membase_reg", IREG, XREG, NONE)
+ MINI_OP(OP_STOREX_ALIGNED_MEMBASE_REG, "storex_aligned_membase_reg", IREG, XREG, NONE)
+ MINI_OP(OP_STOREX_NTA_MEMBASE_REG, "storex_nta_membase_reg", IREG, XREG, NONE)
+@@ -100,7 +100,7 @@ MINI_OP(OP_LOADR8_MEMBASE,"loadr8_membas
+
+ MINI_OP(OP_LOADX_MEMBASE, "loadx_membase", XREG, IREG, NONE)
+
+-#ifdef MONO_ARCH_SUPPORT_SIMD_INTRINSICS
++#if defined(TARGET_X86) || defined(TARGET_AMD64)
+ MINI_OP(OP_LOADX_ALIGNED_MEMBASE, "loadx_aligned_membase", XREG, IREG, NONE)
+ #endif
+
+@@ -578,7 +578,7 @@ MINI_OP(OP_NOT_NULL, "not_null", NONE, I
+
+ /* SIMD opcodes. */
+
+-#ifdef MONO_ARCH_SUPPORT_SIMD_INTRINSICS
++#if defined(TARGET_X86) || defined(TARGET_AMD64)
+
+ MINI_OP(OP_ADDPS, "addps", XREG, XREG, XREG)
+ MINI_OP(OP_DIVPS, "divps", XREG, XREG, XREG)
diff --git a/recipes/mono/mono_2.4.2.3.bb b/recipes/mono/mono_2.4.2.3.bb
index 5e659f3948..c6e36653db 100644
--- a/recipes/mono/mono_2.4.2.3.bb
+++ b/recipes/mono/mono_2.4.2.3.bb
@@ -2,7 +2,7 @@ require mono-${PV}.inc
DEPENDS = "mono-native mono-mcs-intermediate glib-2.0 perl-native"
-PR = "${INC_PR}.1"
+PR = "${INC_PR}.2"
# mono makes use of non-thumb-compatible inline asm.
ARM_INSTRUCTION_SET = "arm"
diff --git a/recipes/mono/mono_svn.inc b/recipes/mono/mono_svn.inc
index 908fd3da70..d369d8bd54 100644
--- a/recipes/mono/mono_svn.inc
+++ b/recipes/mono/mono_svn.inc
@@ -7,7 +7,7 @@ SRC_URI = "svn://anonsvn.mono-project.com/source/trunk/;module=mcs;rev=${SRCREV}
svn://anonsvn.mono-project.com/source/trunk/;module=mono;rev=${SRCREV};name=mono "
SRCREV_FORMAT = "rmono"
-PV = "1.2.5.1+svnr${SRCREV}"
+PV = "1.2.5.1+svnr${SRCPV}"
S = "${WORKDIR}/mono"
inherit autotools
diff --git a/recipes/mozilla/firefox-3.5.5/0001-Remove-Werror-from-build.patch b/recipes/mozilla/firefox-3.5.5/0001-Remove-Werror-from-build.patch
new file mode 100644
index 0000000000..008dabbe8d
--- /dev/null
+++ b/recipes/mozilla/firefox-3.5.5/0001-Remove-Werror-from-build.patch
@@ -0,0 +1,43 @@
+From 48a378ae647cbd6f8466bd0e8dbb04400bb175a8 Mon Sep 17 00:00:00 2001
+From: Eduardo Valentin <eduardo.valentin@openpossa.org>
+Date: Thu, 24 Jul 2008 16:05:09 -0400
+Subject: [PATCH 1/1] Remove -Werror from build
+
+Remove -Werror from build
+
+Signed-off-by: Eduardo Valentin <eduardo.valentin@openpossa.org>
+---
+ configure | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+Index: mozilla-1.9.1/configure
+===================================================================
+--- mozilla-1.9.1.orig/configure
++++ mozilla-1.9.1/configure
+@@ -5525,7 +5525,7 @@ if test "$GNU_CC"; then
+ # Don't allow undefined symbols in libraries
+ DSO_LDOPTS="$DSO_LDOPTS -Wl,-z,defs"
+ fi
+- WARNINGS_AS_ERRORS='-Werror'
++ WARNINGS_AS_ERRORS=''
+ DSO_CFLAGS=''
+ DSO_PIC_CFLAGS='-fPIC'
+ ASFLAGS="$ASFLAGS -fPIC"
+@@ -7104,7 +7104,7 @@ EOF
+ IMPLIB='emximp -o'
+ FILTER='emxexp -o'
+ LDFLAGS='-Zmap'
+- WARNINGS_AS_ERRORS='-Werror'
++ WARNINGS_AS_ERRORS=''
+ MOZ_DEBUG_FLAGS="-g -fno-inline"
+ MOZ_OPTIMIZE_FLAGS="-O2"
+ MOZ_OPTIMIZE_LDFLAGS="-s -Zlinker /EXEPACK:2 -Zlinker /PACKCODE -Zlinker /PACKDATA"
+@@ -7283,7 +7283,7 @@ else
+ fi
+ rm -f conftest*
+ fi
+- WARNINGS_AS_ERRORS='-Werror'
++ WARNINGS_AS_ERRORS=''
+ MOZ_OPTIMIZE_FLAGS="-xO4"
+ MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_FLAGS) $(DSO_LDOPTS) -h $@ -o $@'
+ MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_FLAGS) -G -z muldefs -h $@ -o $@'
diff --git a/recipes/mozilla/firefox-3.5.5/0002-Fix-security-cross-compile-cpu-detection-error.patch b/recipes/mozilla/firefox-3.5.5/0002-Fix-security-cross-compile-cpu-detection-error.patch
new file mode 100644
index 0000000000..ce8d4d9948
--- /dev/null
+++ b/recipes/mozilla/firefox-3.5.5/0002-Fix-security-cross-compile-cpu-detection-error.patch
@@ -0,0 +1,42 @@
+From 599b26141d493ff19633796ce5e19b00315d3821 Mon Sep 17 00:00:00 2001
+From: Eduardo Valentin <eduardo.valentin@openpossa.org>
+Date: Fri, 25 Jul 2008 11:20:02 -0400
+Subject: [PATCH 1/1] Fix security cross compile cpu detection error
+
+Fix security cross compile cpu detection error.
+Reference to bug 376279.
+
+Signed-off-by: Eduardo Valentin <eduardo.valentin@openpossa.org>
+---
+ security/coreconf/arch.mk | 2 ++
+ security/manager/Makefile.in | 1 +
+ 2 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/security/coreconf/arch.mk b/security/coreconf/arch.mk
+index fba38ff..28da32e 100644
+--- a/security/coreconf/arch.mk
++++ b/security/coreconf/arch.mk
+@@ -66,7 +66,9 @@ OS_ARCH := $(subst /,_,$(shell uname -s))
+ # Attempt to differentiate between sparc and x86 Solaris
+ #
+
++ifndef OE_TEST
+ OS_TEST := $(shell uname -m)
++endif
+ ifeq ($(OS_TEST),i86pc)
+ OS_RELEASE := $(shell uname -r)_$(OS_TEST)
+ else
+diff --git a/security/manager/Makefile.in b/security/manager/Makefile.in
+index 86119f7..86c09ca 100644
+--- a/security/manager/Makefile.in
++++ b/security/manager/Makefile.in
+@@ -240,6 +240,7 @@ DEFAULT_GMAKE_FLAGS += \
+ RC="$(RC) $(RCFLAGS)" \
+ OS_ARCH="$(OS_ARCH)" \
+ CPU_ARCH="$(TARGET_CPU)" \
++ OS_TEST="$(TARGET_CPU)" \
+ $(NULL)
+ SKIP_CHK=1
+ endif
+--
+1.5.4.3
diff --git a/recipes/mozilla/firefox-3.5.5/010_FPU_IS_ARM_FPA_xslt.diff b/recipes/mozilla/firefox-3.5.5/010_FPU_IS_ARM_FPA_xslt.diff
new file mode 100644
index 0000000000..854100c4c3
--- /dev/null
+++ b/recipes/mozilla/firefox-3.5.5/010_FPU_IS_ARM_FPA_xslt.diff
@@ -0,0 +1,56 @@
+# Bug 369722 – prdtoa.c jsnum.h txDouble.h not required IEEE_ARM define on Codesourcery EABI gcc3.4.4 compiler
+#
+--- mozilla/content/xslt/public/txDouble.h.orig 2006-07-13 17:21:52.000000000 +0300
++++ mozilla/content/xslt/public/txDouble.h 2007-10-25 15:01:25.000000000 +0300
+@@ -58,46 +58,48 @@ fp_except_t oldmask = fpsetmask(~allmask
+ /**
+ * Stefan Hanske <sh990154@mail.uni-greifswald.de> reports:
+ * ARM is a little endian architecture but 64 bit double words are stored
+ * differently: the 32 bit words are in little endian byte order, the two words
+ * are stored in big endian`s way.
+ */
+
+ #if defined(__arm) || defined(__arm32__) || defined(__arm26__) || defined(__arm__)
+-#define CPU_IS_ARM
++#if !defined(__VFP_FP__)
++#define FPU_IS_ARM_FPA
++#endif
+ #endif
+
+ #if (__GNUC__ == 2 && __GNUC_MINOR__ > 95) || __GNUC__ > 2
+ /**
+ * This version of the macros is safe for the alias optimizations
+ * that gcc does, but uses gcc-specific extensions.
+ */
+
+ typedef union txdpun {
+ PRFloat64 d;
+ struct {
+-#if defined(IS_LITTLE_ENDIAN) && !defined(CPU_IS_ARM)
++#if defined(IS_LITTLE_ENDIAN) && !defined(FPU_IS_ARM_FPA)
+ PRUint32 lo, hi;
+ #else
+ PRUint32 hi, lo;
+ #endif
+ } s;
+ } txdpun;
+
+ #define TX_DOUBLE_HI32(x) (__extension__ ({ txdpun u; u.d = (x); u.s.hi; }))
+ #define TX_DOUBLE_LO32(x) (__extension__ ({ txdpun u; u.d = (x); u.s.lo; }))
+
+ #else // __GNUC__
+
+ /* We don't know of any non-gcc compilers that perform alias optimization,
+ * so this code should work.
+ */
+
+-#if defined(IS_LITTLE_ENDIAN) && !defined(CPU_IS_ARM)
++#if defined(IS_LITTLE_ENDIAN) && !defined(FPU_IS_ARM_FPA)
+ #define TX_DOUBLE_HI32(x) (((PRUint32 *)&(x))[1])
+ #define TX_DOUBLE_LO32(x) (((PRUint32 *)&(x))[0])
+ #else
+ #define TX_DOUBLE_HI32(x) (((PRUint32 *)&(x))[0])
+ #define TX_DOUBLE_LO32(x) (((PRUint32 *)&(x))[1])
+ #endif
+
+ #endif // __GNUC__
diff --git a/recipes/mozilla/firefox-3.5.5/Bug339782.additional.fix.diff b/recipes/mozilla/firefox-3.5.5/Bug339782.additional.fix.diff
new file mode 100644
index 0000000000..0848e730d3
--- /dev/null
+++ b/recipes/mozilla/firefox-3.5.5/Bug339782.additional.fix.diff
@@ -0,0 +1,39 @@
+# XPTC_InvokeByIndex crashes
+# Bug 339782 [ARM] XPTC_InvokeByIndex crashes when cross-compiled under GCC 3.4.x with EABI (CodeSourcery)
+Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
+===================================================================
+--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
++++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
+@@ -51,22 +51,32 @@
+ #ifdef __ARM_EABI__
+ #define DOUBLEWORD_ALIGN(p) ((PRUint32 *)((((PRUint32)(p)) + 7) & 0xfffffff8))
+ #define VAR_STACK_SIZE_64 3
+ #else
+ #define DOUBLEWORD_ALIGN(p) (p)
+ #define VAR_STACK_SIZE_64 2
+ #endif
+
++#ifdef __ARM_EABI__
++#define DOUBLEWORD_ALIGN(p) ((PRUint32 *)((((PRUint32)(p)) + 7) & 0xfffffff8))
++#else
++#define DOUBLEWORD_ALIGN(p) (p)
++#endif
++
+ // Remember that these 'words' are 32bit DWORDS
+
+ static PRUint32
+ invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
+ {
+ PRUint32 result = 0;
++
++ /* Note that we give a "worst case" estimate of how much stack _might_ be
++ * needed, rather than the real count - this should be safe */
++
+ for(PRUint32 i = 0; i < paramCount; i++, s++)
+ {
+ if(s->IsPtrData())
+ {
+ result++;
+ continue;
+ }
+ switch(s->type)
diff --git a/recipes/mozilla/firefox-3.5.5/Bug385583.nspr.jmp_buf.eabi.diff b/recipes/mozilla/firefox-3.5.5/Bug385583.nspr.jmp_buf.eabi.diff
new file mode 100644
index 0000000000..486440c30e
--- /dev/null
+++ b/recipes/mozilla/firefox-3.5.5/Bug385583.nspr.jmp_buf.eabi.diff
@@ -0,0 +1,33 @@
+diff -up mozilla/nsprpub/pr/include/md/_linux.h.orig mozilla/nsprpub/pr/include/md/_linux.h
+--- mozilla/nsprpub/pr/include/md/_linux.h.orig 2007-11-28 14:16:03.000000000 -0500
++++ mozilla/nsprpub/pr/include/md/_linux.h 2007-11-28 14:12:09.000000000 -0500
+@@ -346,8 +346,8 @@ extern void _MD_CleanupBeforeExit(void);
+ #error "Linux/MIPS pre-glibc2 not supported yet"
+ #endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */
+
+-#elif defined(__arm__)
+-/* ARM/Linux */
++#elif defined(__arm__) && !defined(__ARM_EABI__)
++/* ARM/Linux (old-ABI) */
+ #if defined(__GLIBC__) && __GLIBC__ >= 2
+ #define _MD_GET_SP(_t) (_t)->md.context[0].__jmpbuf[20]
+ #define _MD_SET_FP(_t, val) ((_t)->md.context[0].__jmpbuf[19] = (val))
+@@ -358,6 +358,18 @@ extern void _MD_CleanupBeforeExit(void);
+ #error "ARM/Linux pre-glibc2 not supported yet"
+ #endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */
+
++#elif defined(__arm__) && defined(__ARM_EABI__)
++/* ARM/Linux (EABI) */
++#if defined(__GLIBC__) && __GLIBC__ >= 2
++#define _MD_GET_SP(_t) (_t)->md.context[0].__jmpbuf[8]
++#define _MD_SET_FP(_t, val) ((_t)->md.context[0].__jmpbuf[7] = (val))
++#define _MD_GET_SP_PTR(_t) &(_MD_GET_SP(_t))
++#define _MD_GET_FP_PTR(_t) (&(_t)->md.context[0].__jmpbuf[7])
++#define _MD_SP_TYPE __ptr_t
++#else
++#error "ARM/Linux pre-glibc2 not supported yet"
++#endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */
++
+ #else
+
+ #error "Unknown CPU architecture"
diff --git a/recipes/mozilla/firefox-3.5.5/Bug405992.atomic.nspr.diff b/recipes/mozilla/firefox-3.5.5/Bug405992.atomic.nspr.diff
new file mode 100644
index 0000000000..f54f916a6a
--- /dev/null
+++ b/recipes/mozilla/firefox-3.5.5/Bug405992.atomic.nspr.diff
@@ -0,0 +1,48 @@
+# Add atomic operations for ARM.
+diff --git a/nsprpub/pr/include/md/_linux.h b/nsprpub/pr/include/md/_linux.h
+index 5b794c5..cb8d58e 100644
+--- a/nsprpub/pr/include/md/_linux.h
++++ b/nsprpub/pr/include/md/_linux.h
+@@ -194,6 +194,42 @@ extern PRInt32 _PR_x86_64_AtomicSet(PRInt32 *val, PRInt32 newval);
+ })
+ #endif
+
++#if defined(__arm__)
++#define _PR_HAVE_ATOMIC_OPS
++#define _MD_INIT_ATOMIC()
++
++typedef int (__kernel_cmpxchg_t)(int oldval, int newval, volatile int *ptr);
++#define __kernel_cmpxchg (*(__kernel_cmpxchg_t *)0xffff0fc0)
++
++#define _MD_ATOMIC_INCREMENT(ptr) _MD_ATOMIC_ADD(ptr, 1)
++#define _MD_ATOMIC_DECREMENT(ptr) _MD_ATOMIC_ADD(ptr, -1)
++#define _MD_ATOMIC_ADD(ptr, n) \
++ ({ \
++ PRInt32 ov, nv; \
++ volatile PRInt32 *vp = (ptr); \
++ \
++ do { \
++ ov = *vp; \
++ nv = ov + (n); \
++ } \
++ while (__kernel_cmpxchg(ov, nv, vp)); \
++ \
++ nv; \
++ })
++#define _MD_ATOMIC_SET(ptr, nv) \
++ ({ \
++ PRInt32 ov; \
++ volatile PRInt32 *vp = (ptr); \
++ \
++ do { \
++ ov = *vp; \
++ } \
++ while (__kernel_cmpxchg(ov, (nv), vp)); \
++ \
++ ov; \
++ })
++#endif
++
+ #define USE_SETJMP
+ #if defined(__GLIBC__) && __GLIBC__ >= 2
+ #define _PR_POLL_AVAILABLE
diff --git a/recipes/mozilla/firefox-3.5.5/configure-wchart.patch b/recipes/mozilla/firefox-3.5.5/configure-wchart.patch
new file mode 100644
index 0000000000..36ee2a0ba4
--- /dev/null
+++ b/recipes/mozilla/firefox-3.5.5/configure-wchart.patch
@@ -0,0 +1,11 @@
+--- a/configure.in 2008-04-15 12:56:35.000000000 +0300
++++ b/configure.in.old 2008-03-20 21:17:09.000000000 +0200
+@@ -2743,7 +2743,7 @@
+
+ AC_CACHE_CHECK(for compiler -fshort-wchar option,
+ ac_cv_have_usable_wchar_option_v2,
+- [AC_TRY_LINK([#include <stddef.h>
++ [AC_TRY_COMPILE([#include <stddef.h>
+ $configure_static_assert_macros],
+ [CONFIGURE_STATIC_ASSERT(sizeof(wchar_t) == 2);
+ CONFIGURE_STATIC_ASSERT((wchar_t)-1 > (wchar_t) 0)],
diff --git a/recipes/mozilla/firefox-3.5.5/jemalloc-tls.patch b/recipes/mozilla/firefox-3.5.5/jemalloc-tls.patch
new file mode 100644
index 0000000000..d1d740989e
--- /dev/null
+++ b/recipes/mozilla/firefox-3.5.5/jemalloc-tls.patch
@@ -0,0 +1,28 @@
+--- /tmp/jemalloc.c 2008-06-23 10:57:36.000000000 +0200
++++ mozilla/memory/jemalloc/jemalloc.c 2008-06-23 11:20:13.000000000 +0200
+@@ -386,7 +386,7 @@
+ #else
+ # define NO_TLS
+ #endif
+-#if 0
++
+ #ifdef __i386__
+ # define QUANTUM_2POW_MIN 4
+ # define SIZEOF_PTR_2POW 2
+@@ -420,7 +420,6 @@
+ # define QUANTUM_2POW_MIN 4
+ # define SIZEOF_PTR_2POW 2
+ #endif
+-#endif
+
+ #define SIZEOF_PTR (1U << SIZEOF_PTR_2POW)
+
+@@ -2582,7 +2581,7 @@
+ * knowledge of how _pthread_self() calculates values, we can't
+ * easily do much better than this.
+ */
+- ind = (unsigned long) _pthread_self() % narenas;
++ ind = 255255 % narenas;
+
+ /*
+ * Optimistially assume that arenas[ind] has been initialized.
diff --git a/recipes/mozilla/firefox-3.5.5/jsautocfg-dontoverwrite.patch b/recipes/mozilla/firefox-3.5.5/jsautocfg-dontoverwrite.patch
new file mode 100644
index 0000000000..39978cfd11
--- /dev/null
+++ b/recipes/mozilla/firefox-3.5.5/jsautocfg-dontoverwrite.patch
@@ -0,0 +1,23 @@
+--- mozilla/js/src/Makefile.in.orig 2006-12-12 11:46:02.000000000 +0000
++++ mozilla/js/src/Makefile.in 2006-12-12 11:46:27.000000000 +0000
+@@ -319,20 +319,8 @@
+
+ jsopcode.h jsopcode.c: jsopcode.tbl
+
+-ifeq (,$(CROSS_COMPILE)$(filter-out WINNT,$(OS_ARCH)))
+ jsautocfg.h:
+ touch $@
+-else
+-ifeq ($(OS_ARCH),WINCE)
+-jsautocfg.h:
+- touch $@
+-else
+-jsautocfg.h: jscpucfg$(HOST_BIN_SUFFIX)
+- @rm -f $@ jsautocfg.tmp
+- ./jscpucfg > jsautocfg.tmp
+- mv jsautocfg.tmp $@
+-endif
+-endif
+
+ # jscpucfg is a strange target
+ # Needs to be built with the host compiler but needs to include
diff --git a/recipes/mozilla/firefox-3.5.5/linkage-problem.patch b/recipes/mozilla/firefox-3.5.5/linkage-problem.patch
new file mode 100644
index 0000000000..28bffd1e22
--- /dev/null
+++ b/recipes/mozilla/firefox-3.5.5/linkage-problem.patch
@@ -0,0 +1,14 @@
+--- mozilla/layout/build/Makefile.in~ 2007-11-24 00:38:14.000000000 -0200
++++ mozilla/layout/build/Makefile.in 2007-11-24 00:38:14.000000000 -0200
+@@ -229,6 +229,11 @@
+ $(NULL)
+ endif
+
++ifdef MOZ_ENABLE_XFT
++EXTRA_DSO_LDOPTS += $(MOZ_XFT_LIBS) \
++ $(NULL)
++endif
++
+ ifneq (,$(MOZ_ENABLE_CANVAS)$(MOZ_SVG_RENDERER_CAIRO))
+ EXTRA_DSO_LDOPTS += $(MOZ_CAIRO_LIBS) \
+ $(NULL)
diff --git a/recipes/mozilla/firefox-3.5.5/mozconfig b/recipes/mozilla/firefox-3.5.5/mozconfig
new file mode 100644
index 0000000000..d8d3f3923d
--- /dev/null
+++ b/recipes/mozilla/firefox-3.5.5/mozconfig
@@ -0,0 +1,72 @@
+. $topsrcdir/browser/config/mozconfig
+
+# use GTK+-2 widget set with XFT font rendering
+#ac_add_options --enable-default-toolkit=gtk2
+ac_add_options --enable-xft
+ac_add_options --disable-freetype2
+
+# enable minimal profile support
+ac_add_options --disable-profilesharing
+ac_add_options --disable-profilelocking
+ac_add_options --enable-single-profile
+
+ac_add_options --with-system-zlib
+ac_add_options --with-system-jpeg
+ac_add_options --with-system-bz2
+#ac_add_options --with-system-png
+
+ac_add_options --disable-accessibility
+ac_add_options --disable-composer
+#ac_add_options --enable-plaintext-editor-only
+ac_add_options --disable-mailnews
+ac_add_options --disable-ldap
+#ac_add_options --disable-postscript
+ac_add_options --disable-mathml
+ac_add_options --disable-jsd
+ac_add_options --disable-installer
+ac_add_options --disable-xprint
+ac_add_options --disable-necko-disk-cache
+ac_add_options --disable-updater
+
+# configure necko to allocate smaller network buffers
+ac_add_options --enable-necko-small-buffers
+
+# disable debug logging and tests
+#ac_add_options --disable-dtd-debug
+ac_add_options --disable-logging
+ac_add_options --disable-gtktest
+ac_add_options --disable-tests
+ac_add_options --disable-printing
+ac_add_options --disable-gnomevfs
+ac_add_options --disable-gnomeui
+ac_add_options --enable-debugger-info-modules
+
+# build crypto module (PSM + NSS)
+ac_add_options --enable-crypto
+
+# build minimal set of protocol handlers
+ac_add_options --enable-necko-protocols=http,file,res,ftp,about,viewsource
+
+# build minimal set of image decoders
+#ac_add_options --enable-image-decoders=png,gif,jpeg
+
+#ac_add_options --enable-reorder
+#ac_add_options --enable-elf-dynstr-gc
+
+# enable static build
+#ac_add_options --disable-shared
+#ac_add_options --enable-static
+ac_add_options --enable-optimize=-O2
+
+# Use cairo from system
+ac_add_options --enable-system-cairo
+
+# Disable jemalloc
+ac_add_options --disable-jemalloc
+
+# enable libxul
+ac_add_options --enable-libxul
+
+# Disable striping
+ac_add_options --disable-strip
+ac_add_options --disable-install-strip
diff --git a/recipes/mozilla/firefox-3.5.5/plugins-dir.patch b/recipes/mozilla/firefox-3.5.5/plugins-dir.patch
new file mode 100644
index 0000000000..2c8b8e9bd1
--- /dev/null
+++ b/recipes/mozilla/firefox-3.5.5/plugins-dir.patch
@@ -0,0 +1,16 @@
+Index: mozilla-1.9.1/build/unix/mozilla.in
+===================================================================
+--- mozilla-1.9.1.orig/build/unix/mozilla.in
++++ mozilla-1.9.1/build/unix/mozilla.in
+@@ -52,6 +52,11 @@
+
+ moz_libdir=%MOZAPPDIR%
+
++if test -d /usr/lib/mozilla/plugins; then
++ MOZ_PLUGIN_PATH="${MOZ_PLUGIN_PATH:+"$MOZ_PLUGIN_PATH:"}/usr/lib/mozilla/plugins"
++ export MOZ_PLUGIN_PATH
++fi
++
+ # Use run-mozilla.sh in the current dir if it exists
+ # If not, then start resolving symlinks until we find run-mozilla.sh
+ found=0
diff --git a/recipes/mozilla/firefox-3.5.5/security-cross.patch b/recipes/mozilla/firefox-3.5.5/security-cross.patch
new file mode 100644
index 0000000000..b6c32fe52f
--- /dev/null
+++ b/recipes/mozilla/firefox-3.5.5/security-cross.patch
@@ -0,0 +1,64 @@
+--- /tmp/Linux.mk 2009-11-02 10:26:16.000000000 +0100
++++ mozilla-1.9.1/security/coreconf/Linux.mk 2009-11-02 10:27:04.000000000 +0100
+@@ -52,59 +52,8 @@
+
+ DEFAULT_COMPILER = gcc
+
+-ifeq ($(OS_TEST),ppc64)
+- OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+- CPU_ARCH = ppc
+-ifeq ($(USE_64),1)
+- ARCHFLAG = -m64
+-endif
+-else
+-ifeq ($(OS_TEST),alpha)
+- OS_REL_CFLAGS = -D_ALPHA_ -DLINUX1_2 -D_XOPEN_SOURCE
+- CPU_ARCH = alpha
+-else
+-ifeq ($(OS_TEST),x86_64)
+-ifeq ($(USE_64),1)
+- OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+- CPU_ARCH = x86_64
+-else
+- OS_REL_CFLAGS = -DLINUX1_2 -Di386 -D_XOPEN_SOURCE
+- CPU_ARCH = x86
+- ARCHFLAG = -m32
+-endif
+-else
+-ifeq ($(OS_TEST),sparc64)
+- OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+- CPU_ARCH = sparc
+-else
+-ifeq (,$(filter-out arm% sa110,$(OS_TEST)))
+- OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+- CPU_ARCH = arm
+-else
+-ifeq (,$(filter-out parisc%,$(OS_TEST)))
+- OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+- CPU_ARCH = hppa
+-else
+-ifeq (,$(filter-out i%86,$(OS_TEST)))
+- OS_REL_CFLAGS = -DLINUX1_2 -Di386 -D_XOPEN_SOURCE
+- CPU_ARCH = x86
+-else
+-ifeq ($(OS_TEST),sh4a)
+- OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+- CPU_ARCH = sh4
+-else
+-# $(OS_TEST) == m68k, ppc, ia64, sparc, s390, s390x, mips, sh3, sh4
+- OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+- CPU_ARCH = $(OS_TEST)
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-
++OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
++CPU_ARCH =
+
+ LIBC_TAG = _glibc
+
diff --git a/recipes/mozilla/firefox.inc b/recipes/mozilla/firefox.inc
index 8526a8d151..0539a2d0c6 100644
--- a/recipes/mozilla/firefox.inc
+++ b/recipes/mozilla/firefox.inc
@@ -81,7 +81,6 @@ PRIVATE_LIBS = "libnssckbi.so \
libxul.so \
libplds4.so \
libnssutil3.so \
- libsqlite3.so \
libsoftokn3.so \
libnssdbm3.so \
libsmime3.so \
diff --git a/recipes/mplayer/files/disable-executable-stack-test.patch b/recipes/mplayer/files/disable-executable-stack-test.patch
index dc8871b6ae..466e62cc8d 100644
--- a/recipes/mplayer/files/disable-executable-stack-test.patch
+++ b/recipes/mplayer/files/disable-executable-stack-test.patch
@@ -19,12 +19,12 @@ at runtime.
-int main(void) { return 0; }
-EOF
-if cc_check -Wl,-z,noexecstack ; then
-- _ld_extra="-Wl,-z,noexecstack $_ld_extra"
+- extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
- echores "yes"
-else
- echores "no"
-fi
+echores "no"
- echocheck "ftello()"
- # if we don't have ftello use the osdep/ compatibility module
+ # Dynamic linking flags
+ # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
diff --git a/recipes/mplayer/files/mplayer-arm-pld.patch b/recipes/mplayer/files/mplayer-arm-pld.patch
new file mode 100644
index 0000000000..b10117e4b3
--- /dev/null
+++ b/recipes/mplayer/files/mplayer-arm-pld.patch
@@ -0,0 +1,18 @@
+Index: trunk/libmpeg2/motion_comp_arm_s.S
+===================================================================
+--- trunk.orig/libmpeg2/motion_comp_arm_s.S 2009-11-11 20:49:15.376079099 +0300
++++ trunk/libmpeg2/motion_comp_arm_s.S 2009-11-11 20:51:46.468064654 +0300
+@@ -18,6 +18,13 @@
+ @ along with mpeg2dec; if not, write to the Free Software
+ @ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
++#include "../config.h"
++
++#if !HAVE_PLD
++.macro pld reg
++.endm
++#endif
++
+
+ .text
+
diff --git a/recipes/mplayer/files/mplayer-lavc-arm.patch b/recipes/mplayer/files/mplayer-lavc-arm.patch
new file mode 100644
index 0000000000..8c2c832ab3
--- /dev/null
+++ b/recipes/mplayer/files/mplayer-lavc-arm.patch
@@ -0,0 +1,17 @@
+Index: trunk/libavcodec/arm/dsputil_arm.S
+===================================================================
+--- trunk.orig/libavcodec/arm/dsputil_arm.S 2009-11-11 22:16:37.216062301 +0300
++++ trunk/libavcodec/arm/dsputil_arm.S 2009-11-11 22:22:00.908058155 +0300
+@@ -29,6 +29,12 @@
+ .endm
+ #endif
+
++#ifndef __THUMB_INTERWORK__
++.macro bx reg
++ mov pc, \reg
++.endm
++#endif
++
+ #if HAVE_ARMV5TE
+ function ff_prefetch_arm, export=1
+ subs r2, r2, #1
diff --git a/recipes/mplayer/mplayer-0.0+1.0rc2/ivtv-fix.patch b/recipes/mplayer/mplayer-0.0+1.0rc2/ivtv-fix.patch
new file mode 100644
index 0000000000..25635bc5c6
--- /dev/null
+++ b/recipes/mplayer/mplayer-0.0+1.0rc2/ivtv-fix.patch
@@ -0,0 +1,26 @@
+--- MPlayer-1.0rc2/configure~ 2009-10-17 00:08:35.000000000 +0200
++++ MPlayer-1.0rc2/configure 2009-10-17 00:08:35.000000000 +0200
+@@ -4965,7 +4965,7 @@
+ echores "$_dxr3"
+
+
+-echocheck "IVTV TV-Out"
++echocheck "IVTV TV-Out (pre linux-2.6.24)"
+ if test "$_ivtv" = auto ; then
+ cat > $TMPC << EOF
+ #include <stdlib.h>
+@@ -4973,7 +4973,13 @@
+ #include <linux/types.h>
+ #include <linux/videodev2.h>
+ #include <linux/ivtv.h>
+-int main(void) { return 0; }
++#include <sys/ioctl.h>
++int main(void) {
++struct ivtv_cfg_stop_decode sd;
++struct ivtv_cfg_start_decode sd1;
++ioctl (0, IVTV_IOC_START_DECODE, &sd1);
++ioctl (0, IVTV_IOC_STOP_DECODE, &sd);
++return 0; }
+ EOF
+ _ivtv=no
+ cc_check && _ivtv=yes
diff --git a/recipes/mplayer/mplayer-common.bb b/recipes/mplayer/mplayer-common.bb
index cf1ced294f..18da2ad342 100644
--- a/recipes/mplayer/mplayer-common.bb
+++ b/recipes/mplayer/mplayer-common.bb
@@ -11,7 +11,9 @@ HOMEPAGE = "http://www.hentges.net/misc/openzaurus/index.shtml"
######################################################################################
PV = "0.0.1"
-PR = "r0"
+PR = "r2"
+
+PACKAGE_ARCH = "all"
######################################################################################
@@ -19,12 +21,12 @@ SRC_URI = "file://mplayer.conf"
######################################################################################
-FILES_${PN} = "/usr/etc/mplayer"
+FILES_${PN} = "${sysconfdir}/mplayer"
######################################################################################
do_install() {
- install -d "${D}/usr/etc/mplayer"
+ install -d "${D}${sysconfdir}/mplayer"
- install -m 0644 ${WORKDIR}/mplayer.conf "${D}/usr/etc/mplayer"
+ install -m 0644 ${WORKDIR}/mplayer.conf "${D}${sysconfdir}/mplayer"
}
diff --git a/recipes/mplayer/mplayer-common/om-gta02/mplayer.conf b/recipes/mplayer/mplayer-common/om-gta02/mplayer.conf
new file mode 100644
index 0000000000..873e86afdd
--- /dev/null
+++ b/recipes/mplayer/mplayer-common/om-gta02/mplayer.conf
@@ -0,0 +1,5 @@
+ao=alsa
+ac=tremor,mad,
+vo=glamo
+hardframedrop=true
+framedrop=true
diff --git a/recipes/mplayer/mplayer-maemo_svn.bb b/recipes/mplayer/mplayer-maemo_svn.bb
index 4e794d0fbe..af0e7a5277 100644
--- a/recipes/mplayer/mplayer-maemo_svn.bb
+++ b/recipes/mplayer/mplayer-maemo_svn.bb
@@ -6,7 +6,7 @@ DEPENDS = "virtual/libsdl xsp libmad zlib libpng jpeg liba52 freetype fontconfig
DEFAULT_PREFERENCE_avr32 = "-1"
-PV = "0.0+1.0rc1+svnr${SRCREV}"
+PV = "0.0+1.0rc1+svnr${SRCPV}"
PE = "1"
RCONFLICTS_${PN} = "mplayer"
diff --git a/recipes/mplayer/mplayer_0.0+1.0rc2.bb b/recipes/mplayer/mplayer_0.0+1.0rc2.bb
index 481acce475..5b1d558836 100644
--- a/recipes/mplayer/mplayer_0.0+1.0rc2.bb
+++ b/recipes/mplayer/mplayer_0.0+1.0rc2.bb
@@ -28,7 +28,8 @@ SRC_URI = "http://www1.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc2.tar.bz2 \
file://imageon-video_out.patch;patch=1 \
file://pxa_configure.patch;patch=1 \
file://pxa-video_out.patch;patch=1 \
- file://motion-comp-pld.patch;patch=1 "
+ file://motion-comp-pld.patch;patch=1 \
+ file://ivtv-fix.patch;patch=1 "
# This is required for the collie machine only as all stacks in that
# machine seem to be set to executable by the toolchain. If someone
@@ -45,7 +46,7 @@ ARM_INSTRUCTION_SET = "ARM"
RCONFLICTS_${PN} = "mplayer-atty"
RREPLACES_${PN} = "mplayer-atty"
-PR = "r12"
+PR = "r14"
PARALLEL_MAKE = ""
@@ -59,8 +60,7 @@ FILES_mencoder = "${bindir}/mencoder"
inherit autotools pkgconfig
EXTRA_OECONF = " \
- --prefix=/usr \
- --mandir=${mandir} \
+ --prefix=${prefix} \
--target=${TARGET_SYS} \
\
--enable-mencoder \
diff --git a/recipes/mplayer/mplayer_git.bb b/recipes/mplayer/mplayer_git.bb
new file mode 100644
index 0000000000..aa01cc7c20
--- /dev/null
+++ b/recipes/mplayer/mplayer_git.bb
@@ -0,0 +1,229 @@
+DESCRIPTION = "Open Source multimedia player."
+SECTION = "multimedia"
+PRIORITY = "optional"
+HOMEPAGE = "http://www.mplayerhq.hu/"
+DEPENDS = "live555 libdvdread libtheora virtual/libsdl ffmpeg xsp zlib libpng jpeg liba52 freetype fontconfig alsa-lib lzo ncurses lame libxv virtual/libx11 virtual/kernel \
+ ${@base_conditional('ENTERPRISE_DISTRO', '1', '', 'libmad liba52 lame', d)}"
+
+RDEPENDS = "mplayer-common"
+LICENSE = "GPL"
+SRC_URI = "git://repo.or.cz/mplayer.git;protocol=git;branch=master"
+SRC_URI_om-gta02 = "git://repo.or.cz/mplayer/glamo.git;protocol=git;branch=master \
+ file://makefile-nostrip-svn.patch;patch=1 \
+ "
+
+SRC_URI_append = " \
+ file://pld-onlyarm5-svn.patch;patch=1 \
+ file://makefile-nostrip-svn.patch;patch=1 \
+ "
+
+SRC_URI_append_armv7a = " \
+ file://omapfb.patch;patch=1 \
+ file://vo_omapfb.c \
+ file://yuv.S \
+ "
+
+# This is required for the collie machine only as all stacks in that
+# machine seem to be set to executable by the toolchain. If someone
+# discovers this is more general than please make this more general
+# ie. for all armv4 machines.
+SRC_URI_append_collie = "file://disable-executable-stack-test.patch;patch=1"
+
+SRCREV_om-gta02 = "5519d0dfd3f9504f24aa9fe154f831bb718cbfc3"
+SRCREV = "e5bcd70bc5b0557635ae51c7093f0e887493d4ba"
+
+PACKAGE_ARCH_collie = "collie"
+PACKAGE_ARCH_c7x0 = "c7x0"
+PACKAGE_ARCH_hx4700 = "hx4700"
+
+ARM_INSTRUCTION_SET = "ARM"
+
+RCONFLICTS_${PN} = "mplayer-atty"
+RREPLACES_${PN} = "mplayer-atty"
+
+PV = "0.0+1.0rc2+gitr${SRCREV}"
+PR = "r15"
+DEFAULT_PREFERENCE = "-1"
+DEFAULT_PREFERENCE_om-gta02 = "1"
+
+PARALLEL_MAKE = ""
+
+S = "${WORKDIR}/git"
+
+PACKAGES =+ "mencoder"
+
+FILES_${PN} = "${bindir}/mplayer ${libdir} /usr/etc/mplayer/"
+FILES_mencoder = "${bindir}/mencoder"
+CONFFILES_${PN} += "/usr/etc/mplayer/input.conf \
+ /usr/etc/mplayer/example.conf \
+ /usr/etc/mplayer/codecs.conf \
+ "
+
+inherit autotools pkgconfig
+
+# We want a kernel header for armv7a, but we don't want to make mplayer machine specific for that
+STAGING_KERNEL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${TARGET_VENDOR}-${TARGET_OS}/kernel"
+
+EXTRA_OECONF = " \
+ --prefix=/usr \
+ --mandir=${mandir} \
+ --target=${SIMPLE_TARGET_SYS} \
+ \
+ --enable-mencoder \
+ --disable-gui \
+ --enable-largefiles \
+ --disable-linux-devfs \
+ --disable-lirc \
+ --disable-lircc \
+ --disable-joystick \
+ --disable-vm \
+ --disable-xf86keysym \
+ --enable-tv \
+ --enable-tv-v4l1 \
+ --enable-tv-v4l2 \
+ --disable-tv-bsdbt848 \
+ --enable-rtc \
+ --enable-network \
+ --disable-smb \
+ --enable-live \
+ --disable-dvdnav \
+ --enable-dvdread \
+ --disable-dvdread-internal \
+ --enable-libdvdcss-internal \
+ --disable-cdparanoia \
+ --enable-freetype \
+ --enable-menu \
+ --enable-sortsub \
+ --disable-fribidi \
+ --disable-enca \
+ --disable-ftp \
+ --disable-vstream \
+ \
+ --disable-gif \
+ --enable-png \
+ --enable-jpeg \
+ --disable-libcdio \
+ --disable-liblzo \
+ --disable-qtx \
+ --disable-xanim \
+ --disable-real \
+ --disable-xvid \
+ --disable-x264 \
+ \
+ --enable-tremor-low \
+ \
+ --disable-speex \
+ --enable-theora \
+ --disable-faac \
+ --disable-ladspa \
+ --disable-libdv \
+ --enable-mad \
+ --disable-toolame \
+ --disable-twolame \
+ --disable-xmms \
+ --disable-mp3lib \
+ --enable-libmpeg2 \
+ --disable-musepack \
+ \
+ --disable-gl \
+ --disable-vesa \
+ --disable-svga \
+ --enable-sdl \
+ --disable-aa \
+ --disable-caca \
+ --disable-ggi \
+ --disable-ggiwmh \
+ --disable-directx \
+ --disable-dxr2 \
+ --disable-dxr3 \
+ --disable-dvb \
+ --disable-dvbhead \
+ --disable-mga \
+ --disable-xmga \
+ --enable-xv \
+ --disable-xvmc \
+ --disable-vm \
+ --disable-xinerama \
+ --enable-x11 \
+ --enable-fbdev \
+ --disable-mlib \
+ --disable-3dfx \
+ --disable-tdfxfb \
+ --disable-s3fb \
+ --disable-directfb \
+ --disable-zr \
+ --disable-bl \
+ --disable-tdfxvid \
+ --disable-tga \
+ --disable-pnm \
+ --disable-md5sum \
+ \
+ --enable-alsa \
+ --enable-ossaudio \
+ --disable-arts \
+ --disable-esd \
+ --disable-pulse \
+ --disable-jack \
+ --disable-openal \
+ --disable-nas \
+ --disable-sgiaudio \
+ --disable-sunaudio \
+ --disable-win32waveout \
+ --enable-select \
+ \
+ --extra-libs=' -lBasicUsageEnvironment -lUsageEnvironment -lgroupsock -lliveMedia -lstdc++' \
+"
+
+EXTRA_OECONF_append_armv6 = " --enable-armv6"
+EXTRA_OECONF_append_armv7a = " --enable-armv6 --enable-neon"
+
+EXTRA_OECONF_append_om-gta02 = " --enable-glamo"
+
+#build with support for the iwmmxt instruction and pxa270fb overlay support (pxa270 and up)
+#not every iwmmxt machine has the lcd connected to pxafb, but building the module doesn't hurt
+MY_ARCH := "${PACKAGE_ARCH}"
+PACKAGE_ARCH = "${@base_contains('MACHINE_FEATURES', 'iwmmxt', 'iwmmxt', '${MY_ARCH}',d)}"
+
+MY_TARGET_CC_ARCH := "${TARGET_CC_ARCH}"
+TARGET_CC_ARCH = "${@base_contains('MACHINE_FEATURES', 'iwmmxt', '-march=iwmmxt -mtune=iwmmxt', '${MY_TARGET_CC_ARCH}',d)}"
+
+EXTRA_OECONF_append = " ${@base_contains('MACHINE_FEATURES', 'iwmmxt', ' --enable-iwmmxt', '',d)} "
+EXTRA_OECONF_append = " ${@base_contains('MACHINE_FEATURES', 'x86', '--enable-runtime-cpudetection', '',d)} "
+
+FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O4 -ffast-math"
+FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -ftree-vectorize -fomit-frame-pointer -O4 -ffast-math"
+BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"
+
+do_configure_prepend_armv7a() {
+ cp ${WORKDIR}/yuv.S ${S}/libvo
+ cp ${WORKDIR}/vo_omapfb.c ${S}/libvo
+ cp ${STAGING_KERNEL_DIR}/arch/arm/plat-omap/include/mach/omapfb.h ${S}/libvo/omapfb.h || true
+ cp ${STAGING_KERNEL_DIR}/include/asm-arm/arch-omap/omapfb.h ${S}/libvo/omapfb.h || true
+ cp ${STAGING_KERNEL_DIR}/include/linux/omapfb.h ${S}/libvo/omapfb.h || true
+ sed -e 's/__user//g' -i ${S}/libvo/omapfb.h || true
+}
+
+CFLAGS_append = " -I${S}/libdvdread4 "
+
+do_configure() {
+ sed -i 's|/usr/include|${STAGING_INCDIR}|g' ${S}/configure
+ sed -i 's|/usr/lib|${STAGING_LIBDIR}|g' ${S}/configure
+ sed -i 's|/usr/\S*include[\w/]*||g' ${S}/configure
+ sed -i 's|/usr/\S*lib[\w/]*||g' ${S}/configure
+ sed -i 's|HOST_CC|BUILD_CC|' ${S}/Makefile
+
+ export SIMPLE_TARGET_SYS="$(echo ${TARGET_SYS} | sed s:${TARGET_VENDOR}::g)"
+ ./configure ${EXTRA_OECONF}
+
+}
+
+do_compile () {
+ oe_runmake
+}
+
+do_install_append() {
+ install -d ${D}/usr/etc/mplayer
+ install ${S}/etc/input.conf ${D}/usr/etc/mplayer/
+ install ${S}/etc/example.conf ${D}/usr/etc/mplayer/
+ install ${S}/etc/codecs.conf ${D}/usr/etc/mplayer/
+}
diff --git a/recipes/mplayer/mplayer_svn.bb b/recipes/mplayer/mplayer_svn.bb
index 1a434a5829..93e7523c3e 100644
--- a/recipes/mplayer/mplayer_svn.bb
+++ b/recipes/mplayer/mplayer_svn.bb
@@ -9,9 +9,11 @@ RDEPENDS = "mplayer-common"
LICENSE = "GPL"
SRC_URI = "svn://svn.mplayerhq.hu/mplayer;module=trunk \
file://makefile-nostrip-svn.patch;patch=1 \
+ file://mplayer-arm-pld.patch;patch=1 \
+ file://mplayer-lavc-arm.patch;patch=1 \
"
-SRCREV = "29789"
+SRCREV = "29934"
SRC_URI_append_armv7a = " \
file://omapfb.patch;patch=1 \
file://vo_omapfb.c \
@@ -33,10 +35,10 @@ ARM_INSTRUCTION_SET = "ARM"
RCONFLICTS_${PN} = "mplayer-atty"
RREPLACES_${PN} = "mplayer-atty"
-PV = "0.0+1.0rc2+svnr${SRCREV}"
+PV = "0.0+1.0rc2+svnr${SRCPV}"
PR = "r14"
DEFAULT_PREFERENCE = "-1"
-DEFAULT_PREFERENCE_armv7a = "1"
+DEFAULT_PREFERENCE_angstrom = "1"
PARALLEL_MAKE = ""
@@ -165,6 +167,7 @@ EXTRA_OECONF = " \
--enable-select \
\
--extra-libs=' -lBasicUsageEnvironment -lUsageEnvironment -lgroupsock -lliveMedia -lstdc++' \
+ --enable-protocol='file_protocol pipe_protocol http_protocol rtmp_protocol tcp_protocol udp_protocol' \
"
EXTRA_OECONF_append_arm = " --disable-decoder=vorbis_decoder \
@@ -188,6 +191,9 @@ EXTRA_OECONF_append = " ${@base_contains('MACHINE_FEATURES', 'x86', '--enable-ru
FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O4 -ffast-math"
FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -ftree-vectorize -fomit-frame-pointer -O4 -ffast-math"
BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"
+# FIXME: Temporarily disable debugging to work-around http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37987
+DEBUG_OPTIMIZATION_spitz = "-O -fomit-frame-pointer -g"
+DEBUG_OPTIMIZATION_akita = "-O -fomit-frame-pointer -g"
do_configure_prepend_armv7a() {
cp ${WORKDIR}/yuv.S ${S}/libvo
diff --git a/recipes/mtd/mtd-utils-native_1.0.0+git.bb b/recipes/mtd/mtd-utils-native_1.0.0+git.bb
deleted file mode 100644
index 6e310cb1b4..0000000000
--- a/recipes/mtd/mtd-utils-native_1.0.0+git.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-require mtd-utils_${PV}.bb
-require mtd-utils-native.inc
-
diff --git a/recipes/mtd/mtd-utils-native_1.0.0.bb b/recipes/mtd/mtd-utils-native_1.0.0.bb
deleted file mode 100644
index 6f9d71e10c..0000000000
--- a/recipes/mtd/mtd-utils-native_1.0.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require mtd-utils_${PV}.bb
-require mtd-utils-native.inc
diff --git a/recipes/mtd/mtd-utils-tests_1.0.0+git.bb b/recipes/mtd/mtd-utils-tests_1.2.0+git.bb
index b5240009a7..7787c51f89 100644
--- a/recipes/mtd/mtd-utils-tests_1.0.0+git.bb
+++ b/recipes/mtd/mtd-utils-tests_1.2.0+git.bb
@@ -1,4 +1,4 @@
-require mtd-utils_1.0.0+git.bb
+require mtd-utils_1.2.0+git.bb
# this can probably be integrated into the main mtd-utils package
# but I did not want to risk breakage -- but would be glad to
diff --git a/recipes/mtd/mtd-utils.inc b/recipes/mtd/mtd-utils.inc
new file mode 100644
index 0000000000..813a09fb13
--- /dev/null
+++ b/recipes/mtd/mtd-utils.inc
@@ -0,0 +1,87 @@
+DESCRIPTION = "Tools for managing memory technology devices."
+SECTION = "base"
+DEPENDS = "zlib lzo"
+HOMEPAGE = "http://www.linux-mtd.infradead.org/"
+LICENSE = "GPLv2"
+PR = "r0"
+
+SRC_URI = "ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-${PV}.tar.bz2"
+
+S = "${WORKDIR}/mtd-utils-${PV}"
+
+EXTRA_OEMAKE = "'CC=${CC}' 'CFLAGS=${CFLAGS} -I${S}/include -DWITHOUT_XATTR'"
+
+do_stage () {
+ install -d ${STAGING_INCDIR}/mtd
+ for f in ${S}/include/mtd/*.h; do
+ install -m 0644 $f ${STAGING_INCDIR}/mtd/
+ done
+ for binary in ${mtd_utils}; do
+ if [ -f $binary ]; then
+ install -m 0755 $binary ${STAGING_BINDIR}
+ fi
+ done
+}
+
+do_install () {
+ install -d ${D}${bindir}
+ install -d ${D}${includedir}/mtd
+ for binary in ${mtd_utils}; do
+ if [ -f $binary ]; then
+ install -m 0755 $binary ${D}${bindir}
+ fi
+ done
+ for f in ${S}/include/mtd/*.h; do
+ install -m 0644 $f ${D}${includedir}/mtd
+ done
+}
+
+mtd_utils = " docfdisk \
+ doc_loadbios \
+ flashcp \
+ flash_erase \
+ flash_eraseall \
+ flash_info \
+ flash_lock \
+ flash_otp_dump \
+ flash_otp_info \
+ flash_unlock \
+ ftl_check \
+ ftl_format \
+ jffs2dump \
+ mkfs.jffs2 \
+ mtd_debug \
+ nanddump \
+ nandtest \
+ nandwrite \
+ nftldump \
+ nftl_format \
+ recv_image \
+ rfddump \
+ rfdformat \
+ serve_image \
+ sumtool \
+ mkfs.ubifs/mkfs.ubifs \
+ ubi-utils/bin2nand \
+ ubi-utils/mkbootenv \
+ ubi-utils/nand2bin \
+ ubi-utils/pddcustomize \
+ ubi-utils/pfi2bin \
+ ubi-utils/pfiflash \
+ ubi-utils/ubigen \
+ ubi-utils/ubimirror \
+ ubi-utils/unubi \
+ ubi-utils/new-utils/ubiattach \
+ ubi-utils/new-utils/ubicrc32 \
+ ubi-utils/new-utils/ubidetach \
+ ubi-utils/new-utils/ubiformat \
+ ubi-utils/new-utils/ubimkvol \
+ ubi-utils/new-utils/ubinfo \
+ ubi-utils/new-utils/ubinize \
+ ubi-utils/new-utils/ubirmvol \
+ ubi-utils/new-utils/ubiupdatevol"
+
+PACKAGES =+ "mkfs-jffs mkfs-jffs2 mkfs-ubifs"
+FILES_mkfs-jffs = "${bindir}/mkfs.jffs"
+FILES_mkfs-jffs2 = "${bindir}/mkfs.jffs2"
+FILES_mkfs-ubifs = "${bindir}/mkfs.ubifs"
diff --git a/recipes/mtd/mtd-utils_1.0.0+git.bb b/recipes/mtd/mtd-utils_1.0.0+git.bb
deleted file mode 100644
index b325bb03d3..0000000000
--- a/recipes/mtd/mtd-utils_1.0.0+git.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-DESCRIPTION = "Tools for managing memory technology devices."
-SECTION = "base"
-DEPENDS = "zlib lzo"
-HOMEPAGE = "http://www.linux-mtd.infradead.org/"
-LICENSE = "GPLv2"
-PR = "r8"
-
-# This is the default package, thus we lock to a specific git version so
-# upstream changes will not break builds.
-
-TAG = "9845d92440bd87739c89edd000fd6e0c47fab185"
-# As of 2007/27/07, see http://git.infradead.org/?p=mtd-utils.git;a=shortlog
-
-SRC_URI = "git://git.infradead.org/mtd-utils.git;protocol=git;tag=${TAG} \
- file://add-exclusion-to-mkfs-jffs2-git.patch;patch=1 \
- file://fix-ignoreerrors-git.patch;patch=1 \
- file://lzo_1x.patch;patch=1"
-
-S = "${WORKDIR}/git/"
-
-EXTRA_OEMAKE = "'CC=${CC}' 'CFLAGS=${CFLAGS} -I${S}/include -DWITHOUT_XATTR'"
-
-do_stage () {
- install -d ${STAGING_INCDIR}/mtd
- for f in ${S}/include/mtd/*.h; do
- install -m 0644 $f ${STAGING_INCDIR}/mtd/
- done
- for binary in ${mtd_utils}; do
- install -m 0755 $binary ${STAGING_BINDIR}
- done
-}
-
-mtd_utils = "ftl_format flash_erase flash_eraseall nanddump doc_loadbios \
- mkfs.jffs ftl_check mkfs.jffs2 flash_lock flash_unlock flash_info mtd_debug \
- flashcp nandwrite jffs2dump sumtool"
-
-do_install () {
- install -d ${D}${bindir}
- install -d ${D}${includedir}/mtd
- for binary in ${mtd_utils}; do
- install -m 0755 $binary ${D}${bindir}
- done
- for f in ${S}/include/mtd/*.h; do
- install -m 0644 $f ${D}${includedir}/mtd
- done
-}
-
-PACKAGES =+ "mkfs-jffs mkfs-jffs2"
-FILES_mkfs-jffs = "${bindir}/mkfs.jffs"
-FILES_mkfs-jffs2 = "${bindir}/mkfs.jffs2"
-
diff --git a/recipes/mtd/mtd-utils_1.0.0.bb b/recipes/mtd/mtd-utils_1.0.0.bb
deleted file mode 100644
index 0ebb47fb22..0000000000
--- a/recipes/mtd/mtd-utils_1.0.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "Tools for managing memory technology devices."
-SECTION = "base"
-DEPENDS = "zlib"
-HOMEPAGE = "http://www.linux-mtd.infradead.org/"
-LICENSE = "GPLv2"
-PR = "r0"
-
-# RP/kergoth: Builds seem to break with recent mtd-utils
-# Can't pin down the exact problems
-DEFAULT_PREFERENCE = "-1"
-
-SRC_URI = "ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-1.0.0.tar.gz"
-S = "${WORKDIR}/mtd-utils-${PV}"
-
-CFLAGS_prepend = "-I${WORKDIR}/mtd-utils-${PV}/include "
-
-do_install() {
- oe_runmake install DESTDIR=${D}
-}
diff --git a/recipes/mtd/mtd-utils_1.1.0.bb b/recipes/mtd/mtd-utils_1.1.0.bb
index e585cf5ab8..e226391ac1 100644
--- a/recipes/mtd/mtd-utils_1.1.0.bb
+++ b/recipes/mtd/mtd-utils_1.1.0.bb
@@ -1,45 +1,7 @@
-DESCRIPTION = "Tools for managing memory technology devices."
-SECTION = "base"
-DEPENDS = "zlib lzo"
-HOMEPAGE = "http://www.linux-mtd.infradead.org/"
-LICENSE = "GPLv2"
-PR = "r3"
+require mtd-utils.inc
-SRC_URI = "ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-${PV}.tar.bz2 \
- file://add-exclusion-to-mkfs-jffs2-git.patch;patch=1 \
- file://fix-ignoreerrors-git.patch;patch=1 \
- file://lzo_1x.patch;patch=1"
-
-S = "${WORKDIR}/mtd-utils-${PV}/"
-
-EXTRA_OEMAKE = "'CC=${CC}' 'CFLAGS=${CFLAGS} -I${S}/include -DWITHOUT_XATTR'"
-
-do_stage () {
- install -d ${STAGING_INCDIR}/mtd
- for f in ${S}/include/mtd/*.h; do
- install -m 0644 $f ${STAGING_INCDIR}/mtd/
- done
- for binary in ${mtd_utils}; do
- install -m 0755 $binary ${STAGING_BINDIR}
- done
-}
-
-mtd_utils = "ftl_format flash_erase flash_eraseall nanddump doc_loadbios \
- mkfs.jffs ftl_check mkfs.jffs2 flash_lock flash_unlock flash_info mtd_debug \
- flashcp nandwrite jffs2dump sumtool"
-
-do_install () {
- install -d ${D}${bindir}
- install -d ${D}${includedir}/mtd
- for binary in ${mtd_utils}; do
- install -m 0755 $binary ${D}${bindir}
- done
- for f in ${S}/include/mtd/*.h; do
- install -m 0644 $f ${D}${includedir}/mtd
- done
-}
-
-PACKAGES =+ "mkfs-jffs mkfs-jffs2"
-FILES_mkfs-jffs = "${bindir}/mkfs.jffs"
-FILES_mkfs-jffs2 = "${bindir}/mkfs.jffs2"
+PR = "r4"
+SRC_URI += "file://add-exclusion-to-mkfs-jffs2-git.patch;patch=1 \
+ file://fix-ignoreerrors-git.patch;patch=1 \
+ file://lzo_1x.patch;patch=1"
diff --git a/recipes/mtd/mtd-utils_1.2.0+git.bb b/recipes/mtd/mtd-utils_1.2.0+git.bb
index 04b8b29ce8..06cbf1b84a 100644
--- a/recipes/mtd/mtd-utils_1.2.0+git.bb
+++ b/recipes/mtd/mtd-utils_1.2.0+git.bb
@@ -1,9 +1,7 @@
-DESCRIPTION = "Tools for managing memory technology devices."
-SECTION = "base"
-DEPENDS = "e2fsprogs-libs zlib lzo"
-HOMEPAGE = "http://www.linux-mtd.infradead.org/"
-LICENSE = "GPLv2"
-PR = "r3"
+require mtd-utils.inc
+
+DEPENDS += "e2fsprogs-libs"
+PR = "r4"
ARM_INSTRUCTION_SET = "arm"
@@ -19,84 +17,11 @@ SRC_URI = "git://git.infradead.org/mtd-utils.git;protocol=git;tag=${TAG} \
S = "${WORKDIR}/git/"
-EXTRA_OEMAKE = "'CC=${CC}' 'CFLAGS=${CFLAGS} -I${S}/include -DWITHOUT_XATTR'"
-
do_configure_prepend() {
for i in $(find . -name "Makefile") ; do
sed -i -e s:lzo2:lzo:g $i
done
- sed -i -e s:lzo/::g mkfs.ubifs/compr.c
-}
-
-do_stage () {
- install -d ${STAGING_INCDIR}/mtd
- for f in ${S}/include/mtd/*.h; do
- install -m 0644 $f ${STAGING_INCDIR}/mtd/
- done
- for binary in ${mtd_utils}; do
- install -m 0755 $binary ${STAGING_BINDIR}
- done
+ if [ -e mkfs.ubifs/compr.c ]; then
+ sed -i -e s:lzo/::g mkfs.ubifs/compr.c
+ fi
}
-
-mtd_utils = " docfdisk \
- doc_loadbios \
- flashcp \
- flash_erase \
- flash_eraseall \
- flash_info \
- flash_lock \
- flash_otp_dump \
- flash_otp_info \
- flash_unlock \
- ftl_check \
- ftl_format \
- jffs2dump \
- mkfs.jffs2 \
- mtd_debug \
- nanddump \
- nandtest \
- nandwrite \
- nftldump \
- nftl_format \
- recv_image \
- rfddump \
- rfdformat \
- serve_image \
- sumtool \
- mkfs.ubifs/mkfs.ubifs \
- ubi-utils/bin2nand \
- ubi-utils/mkbootenv \
- ubi-utils/nand2bin \
- ubi-utils/pddcustomize \
- ubi-utils/pfi2bin \
- ubi-utils/pfiflash \
- ubi-utils/ubigen \
- ubi-utils/ubimirror \
- ubi-utils/unubi \
- ubi-utils/new-utils/ubiattach \
- ubi-utils/new-utils/ubicrc32 \
- ubi-utils/new-utils/ubidetach \
- ubi-utils/new-utils/ubiformat \
- ubi-utils/new-utils/ubimkvol \
- ubi-utils/new-utils/ubinfo \
- ubi-utils/new-utils/ubinize \
- ubi-utils/new-utils/ubirmvol \
- ubi-utils/new-utils/ubiupdatevol"
-
-
-
-do_install () {
- install -d ${D}${bindir}
- install -d ${D}${includedir}/mtd
- for binary in ${mtd_utils}; do
- install -m 0755 $binary ${D}${bindir}
- done
- for f in ${S}/include/mtd/*.h; do
- install -m 0644 $f ${D}${includedir}/mtd
- done
-}
-
-PACKAGES =+ "mkfs-jffs mkfs-jffs2"
-FILES_mkfs-jffs = "${bindir}/mkfs.jffs"
-FILES_mkfs-jffs2 = "${bindir}/mkfs.jffs2"
-
diff --git a/recipes/multitap-pad/multitap-pad_svn.bb b/recipes/multitap-pad/multitap-pad_svn.bb
index 7543a44d72..fcc7249f32 100644
--- a/recipes/multitap-pad/multitap-pad_svn.bb
+++ b/recipes/multitap-pad/multitap-pad_svn.bb
@@ -3,7 +3,7 @@ LICENSE = "GPL"
DEPENDS = "libfakekey gtk+ matchbox-panel-2"
RCONFLICTS = matchbox-keyboard-inputmethod
SECTION = "x11"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
SRC_URI = "svn://svn.o-hand.com/repos/misc/trunk;module=${PN};proto=http \
file://80multitappad"
diff --git a/recipes/musicbrainz/libmusicbrainz.inc b/recipes/musicbrainz/libmusicbrainz.inc
index 64a7f50794..dfd96fabbb 100644
--- a/recipes/musicbrainz/libmusicbrainz.inc
+++ b/recipes/musicbrainz/libmusicbrainz.inc
@@ -1,10 +1,9 @@
-DEFAULT_PREFERENCE = "-1"
-
DESCRIPTION = "The MusicBrainz client is a library which can be built into other programs. \
It allows you to access the data held on the MusicBrainz server."
HOMEPAGE = "http://musicbrainz.org"
LICENSE = "LGPL"
-DEPENDS = "expat neon"
+
+DEPENDS = "expat neon libdiscid"
SRC_URI = "ftp://ftp.musicbrainz.org/pub/musicbrainz/libmusicbrainz-${PV}.tar.gz"
diff --git a/recipes/mysql/files/my.cnf b/recipes/mysql/files/my.cnf
index 15a8b1b4ab..85560ebf5c 100644
--- a/recipes/mysql/files/my.cnf
+++ b/recipes/mysql/files/my.cnf
@@ -10,7 +10,7 @@ err-log = /var/log/mysql.err
user = mysql
port = 3306
socket = /tmp/mysql.sock
-pid-file = /var/run/mysqld.pid
+pid-file = /var/lib/mysql/mysqld.pid
log-error = /var/log/mysqld.err
basedir = /usr
datadir = /var/mysql
diff --git a/recipes/mysql/files/mysqld.sh b/recipes/mysql/files/mysqld.sh
index c94772e202..479ebdb257 100644
--- a/recipes/mysql/files/mysqld.sh
+++ b/recipes/mysql/files/mysqld.sh
@@ -7,13 +7,17 @@ case "$1" in
/usr/bin/mysqld_safe &
;;
stop)
- if test -f /var/run/mysqld.pid ; then
- PID=`cat /var/run/mysqld.pid`
+ if test -f /var/lib/mysql/mysqld.pid ; then
+ PID=`cat /var/lib/mysql/mysqld.pid`
kill $PID
fi
;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
*)
- echo "Usage: /etc/init.d/mysqld {start|stop}"
+ echo "Usage: /etc/init.d/mysqld {start|stop|restart}"
;;
esac
diff --git a/recipes/mysql/mysql-5.1.40-have_atomic_pthread_t.patch b/recipes/mysql/mysql-5.1.40-have_atomic_pthread_t.patch
new file mode 100644
index 0000000000..f6401790d4
--- /dev/null
+++ b/recipes/mysql/mysql-5.1.40-have_atomic_pthread_t.patch
@@ -0,0 +1,37 @@
+diff -Naur mysql-5.1.40-old/storage/innodb_plugin/plug.in mysql-5.1.40-new/storage/innodb_plugin/plug.in
+--- mysql-5.1.40-old/storage/innodb_plugin/plug.in 2009-10-06 10:50:23.000000000 -0700
++++ mysql-5.1.40-new/storage/innodb_plugin/plug.in 2009-10-21 16:52:45.000000000 -0700
+@@ -63,8 +63,9 @@
+ ;;
+ esac
+ AC_SUBST(INNODB_DYNAMIC_CFLAGS)
+- AC_MSG_CHECKING(whether pthread_t can be used by GCC atomic builtins)
+- AC_TRY_RUN(
++ AC_CACHE_CHECK([whether pthread_t can be used by GCC atomic builtins],
++ [ac_cv_have_decl_HAVE_ATOMIC_PTHREAD_T],
++ [AC_TRY_RUN(
+ [
+ #include <pthread.h>
+ #include <string.h>
+@@ -84,14 +85,18 @@
+ }
+ ],
+ [
+- AC_DEFINE([HAVE_ATOMIC_PTHREAD_T], [1],
+- [pthread_t can be used by GCC atomic builtins])
+ AC_MSG_RESULT(yes)
++ ac_cv_have_decl_HAVE_ATOMIC_PTHREAD_T=yes
+ ],
+ [
+ AC_MSG_RESULT(no)
++ ac_cv_have_decl_HAVE_ATOMIC_PTHREAD_T=no
+ ]
+- )
++ )])
++ if test "x$ac_cv_have_decl_HAVE_ATOMIC_PTHREAD"= "xyes" ; then
++ AC_DEFINE([HAVE_ATOMIC_PTHREAD_T], [1],
++ [pthread_t can be used by GCC atomic builtins])
++ fi
+
+ # Try using solaris atomics on SunOS if GCC atomics are not available
+ AC_CHECK_DECLS(
diff --git a/recipes/mysql/mysql5-native_5.1.40.bb b/recipes/mysql/mysql5-native_5.1.40.bb
new file mode 100644
index 0000000000..47efbe67d0
--- /dev/null
+++ b/recipes/mysql/mysql5-native_5.1.40.bb
@@ -0,0 +1,25 @@
+require mysql5_${PV}.inc
+inherit native
+PR ="r0"
+
+SRC_URI = "http://downloads.mysql.com/archives/mysql-5.1/mysql-${PV}.tar.gz"
+
+RDEPENDS_${PN} = ""
+PACKAGES = ""
+DEPENDS = "ncurses-native"
+EXTRA_OEMAKE = ""
+EXTRA_OECONF = " --with-embedded-server "
+
+do_stage() {
+ install -m 0755 sql/gen_lex_hash ${STAGING_BINDIR}/
+}
+
+do_install() {
+ :
+}
+
+
+# Mysql tries to access the ${WORKDIR} from this build..
+do_rm_work() {
+ :
+}
diff --git a/recipes/mysql/mysql5/Makefile.am.patch b/recipes/mysql/mysql5/Makefile.am.patch
new file mode 100644
index 0000000000..33fd17acd4
--- /dev/null
+++ b/recipes/mysql/mysql5/Makefile.am.patch
@@ -0,0 +1,19 @@
+Index: mysql-5.1.40/sql/Makefile.am
+===================================================================
+--- mysql-5.1.40.orig/sql/Makefile.am
++++ mysql-5.1.40/sql/Makefile.am
+@@ -174,10 +174,10 @@ link_sources:
+ # This generates lex_hash.h
+ # NOTE Built sources should depend on their sources not the tool
+ # this avoid the rebuild of the built files in a source dist
+-lex_hash.h: gen_lex_hash.cc lex.h
+- $(MAKE) $(AM_MAKEFLAGS) gen_lex_hash$(EXEEXT)
+- ./gen_lex_hash$(EXEEXT) > $@-t
+- $(MV) $@-t $@
++GEN_LEX_HASH = ./gen_lex_hash$(EXEEXT)
++
++lex_hash.h: gen_lex_hash$(EXEEXT)
++ $(GEN_LEX_HASH) > $@
+
+ # For testing of udf_example.so
+ udf_example_la_SOURCES= udf_example.c
diff --git a/recipes/mysql/mysql5/configure-ps-cache-check.patch b/recipes/mysql/mysql5/configure-ps-cache-check.patch
new file mode 100644
index 0000000000..3b5b3fd063
--- /dev/null
+++ b/recipes/mysql/mysql5/configure-ps-cache-check.patch
@@ -0,0 +1,27 @@
+Index: mysql-4.1.22/configure.in
+===================================================================
+--- mysql-4.1.22.orig/configure.in 2009-01-28 16:33:28.000000000 +0000
++++ mysql-4.1.22/configure.in 2009-01-28 16:43:26.000000000 +0000
+@@ -471,8 +471,8 @@
+
+ # Lock for PS
+ AC_PATH_PROG(PS, ps, ps)
+-AC_MSG_CHECKING("how to check if pid exists")
+-PS=$ac_cv_path_PS
++AC_CACHE_CHECK([how to check if pid exists], [ac_cv_FIND_PROC],
++[
+ # Linux style
+ if $PS p $$ 2> /dev/null | grep $0 > /dev/null
+ then
+@@ -511,8 +511,9 @@
+ AC_MSG_ERROR([Could not find the right ps switches. Which OS is this ?. See the Installation chapter in the Reference Manual.])
+ esac
+ fi
+-AC_SUBST(FIND_PROC)
+-AC_MSG_RESULT("$FIND_PROC")
++ac_cv_FIND_PROC="$FIND_PROC"
++])
++AC_SUBST([FIND_PROC], [$ac_cv_FIND_PROC])
+
+ # Check if a pid is valid
+ AC_PATH_PROG(KILL, kill, kill)
diff --git a/recipes/mysql/mysql5/configure.in.patch b/recipes/mysql/mysql5/configure.in.patch
new file mode 100644
index 0000000000..3edc5f3c21
--- /dev/null
+++ b/recipes/mysql/mysql5/configure.in.patch
@@ -0,0 +1,54 @@
+Index: mysql-5.1.40/configure.in
+===================================================================
+--- mysql-5.1.40.orig/configure.in
++++ mysql-5.1.40/configure.in
+@@ -226,8 +226,6 @@ else
+ AC_PATH_PROG(AS, as, as)
+ fi
+
+-# Still need ranlib for readline; local static use only so no libtool.
+-AC_PROG_RANLIB
+ # We use libtool
+ #AC_LIBTOOL_WIN32_DLL
+ AC_PROG_LIBTOOL
+@@ -255,39 +253,7 @@ AC_CHECK_PROGS(YACC, ['bison -y -p MYSQL
+ AC_CHECK_PROG(PDFMANUAL, pdftex, manual.pdf)
+ AC_CHECK_PROG(DVIS, tex, manual.dvi)
+
+-#check the return type of sprintf
+-AC_MSG_CHECKING("return type of sprintf")
+-AC_TRY_RUN([
+- int main()
+- {
+- char* s = "hello";
+- char buf[6];
+- if((int)sprintf(buf, s) == strlen(s))
+- return 0;
+-
+- return -1;
+- }
+- ],
+- [AC_DEFINE(SPRINTF_RETURNS_INT, [1], [POSIX sprintf])
+- AC_MSG_RESULT("int")],
+- [AC_TRY_RUN([
+- int main()
+- {
+- char* s = "hello";
+- char buf[6];
+- if((char*)sprintf(buf,s) == buf + strlen(s))
+- return 0;
+- return -1;
+- } ],
+- [AC_DEFINE(SPRINTF_RETURNS_PTR, [1], [Broken sprintf])
+- AC_MSG_RESULT("ptr")],
+- [AC_DEFINE(SPRINTF_RETURNS_GARBAGE, [1], [Broken sprintf])
+- AC_MSG_RESULT("garbage")]
+- )],
+- # Cross compile, assume POSIX
+- [AC_DEFINE(SPRINTF_RETURNS_INT, [1], [POSIX sprintf])
+- AC_MSG_RESULT("int (we assume)")]
+-)
++MYSQL_SPRINTF_RET
+
+ AC_PATH_PROG(uname_prog, uname, no)
+
diff --git a/recipes/mysql/mysql5/fix_host_path.patch b/recipes/mysql/mysql5/fix_host_path.patch
new file mode 100644
index 0000000000..4f69cd5198
--- /dev/null
+++ b/recipes/mysql/mysql5/fix_host_path.patch
@@ -0,0 +1,37 @@
+--- mysql-4.1.22/configure.in.old 2008-09-18 20:11:15.000000000 -0500
++++ mysql-4.1.22/configure.in 2008-09-18 20:12:28.000000000 -0500
+@@ -456,9 +456,9 @@ else
+ fi
+ fi
+
+-AC_SUBST(HOSTNAME)
+-AC_SUBST(PERL)
+-AC_SUBST(PERL5)
++AC_SUBST(HOSTNAME,/bin/hostname)
++AC_SUBST(PERL,$(bindir)/perl)
++AC_SUBST(PERL5,$(bindir)/perl)
+
+ # for build ndb docs
+
+@@ -516,16 +516,17 @@ AC_MSG_RESULT("$FIND_PROC")
+
+ # Check if a pid is valid
+ AC_PATH_PROG(KILL, kill, kill)
++AC_SUBST(KILL,/bin/kill)
+ AC_MSG_CHECKING("for kill switches")
+-if $ac_cv_path_KILL -0 $$
++if $KILL -0 $$
+ then
+- CHECK_PID="$ac_cv_path_KILL -0 \$\$PID > /dev/null 2> /dev/null"
++ CHECK_PID="$KILL -0 \$\$PID > /dev/null 2> /dev/null"
+ elif kill -s 0 $$
+ then
+- CHECK_PID="$ac_cv_path_KILL -s 0 \$\$PID > /dev/null 2> /dev/null"
++ CHECK_PID="$KILL -s 0 \$\$PID > /dev/null 2> /dev/null"
+ else
+ AC_MSG_WARN([kill -0 to check for pid seems to fail])
+- CHECK_PID="$ac_cv_path_KILL -s SIGCONT \$\$PID > /dev/null 2> /dev/null"
++ CHECK_PID="$KILL -s SIGCONT \$\$PID > /dev/null 2> /dev/null"
+ fi
+ AC_SUBST(CHECK_PID)
+ AC_MSG_RESULT("$CHECK_PID")
diff --git a/recipes/mysql/mysql5/misc.m4.patch b/recipes/mysql/mysql5/misc.m4.patch
new file mode 100644
index 0000000000..7b0acff21c
--- /dev/null
+++ b/recipes/mysql/mysql5/misc.m4.patch
@@ -0,0 +1,13 @@
+Index: mysql-5.1.40/config/ac-macros/misc.m4
+===================================================================
+--- mysql-5.1.40.orig/config/ac-macros/misc.m4
++++ mysql-5.1.40/config/ac-macros/misc.m4
+@@ -476,7 +476,7 @@ AC_DEFUN([MYSQL_STACK_DIRECTION],
+ {
+ exit (find_stack_direction() < 0);
+ }], ac_cv_c_stack_direction=1, ac_cv_c_stack_direction=-1,
+- ac_cv_c_stack_direction=)])
++ ac_cv_c_stack_direction=0)])
+ AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction)
+ ])dnl
+
diff --git a/recipes/mysql/mysql5/my.cnf b/recipes/mysql/mysql5/my.cnf
new file mode 100644
index 0000000000..7f557e4250
--- /dev/null
+++ b/recipes/mysql/mysql5/my.cnf
@@ -0,0 +1,21 @@
+[client]
+#password = password
+port = 3306
+socket = /tmp/mysql.sock
+
+[mysqld_safe]
+err-log = /var/log/mysql.err
+
+[mysqld]
+user = mysql
+port = 3306
+socket = /tmp/mysql.sock
+pid-file = /var/lib/mysql/mysqld.pid
+log-error = /var/log/mysqld.err
+basedir = /usr
+datadir = /var/mysql
+skip-locking
+loose-skip-innodb
+skip-networking
+bind-address = localhost
+
diff --git a/recipes/mysql/mysql5/mysqld.sh b/recipes/mysql/mysql5/mysqld.sh
new file mode 100644
index 0000000000..479ebdb257
--- /dev/null
+++ b/recipes/mysql/mysql5/mysqld.sh
@@ -0,0 +1,24 @@
+# MySQL init script
+
+. /etc/default/rcS
+
+case "$1" in
+ start)
+ /usr/bin/mysqld_safe &
+ ;;
+ stop)
+ if test -f /var/lib/mysql/mysqld.pid ; then
+ PID=`cat /var/lib/mysql/mysqld.pid`
+ kill $PID
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "Usage: /etc/init.d/mysqld {start|stop|restart}"
+ ;;
+esac
+
+exit 0
diff --git a/recipes/mysql/mysql5/plug.in.patch b/recipes/mysql/mysql5/plug.in.patch
new file mode 100644
index 0000000000..70c39fa7a3
--- /dev/null
+++ b/recipes/mysql/mysql5/plug.in.patch
@@ -0,0 +1,40 @@
+Index: mysql-5.1.40/storage/innodb_plugin/plug.in
+===================================================================
+--- mysql-5.1.40.orig/storage/innodb_plugin/plug.in
++++ mysql-5.1.40/storage/innodb_plugin/plug.in
+@@ -63,35 +63,6 @@ MYSQL_PLUGIN_ACTIONS(innodb_plugin, [
+ ;;
+ esac
+ AC_SUBST(INNODB_DYNAMIC_CFLAGS)
+- AC_MSG_CHECKING(whether pthread_t can be used by GCC atomic builtins)
+- AC_TRY_RUN(
+- [
+- #include <pthread.h>
+- #include <string.h>
+-
+- int main(int argc, char** argv) {
+- pthread_t x1;
+- pthread_t x2;
+- pthread_t x3;
+-
+- memset(&x1, 0x0, sizeof(x1));
+- memset(&x2, 0x0, sizeof(x2));
+- memset(&x3, 0x0, sizeof(x3));
+-
+- __sync_bool_compare_and_swap(&x1, x2, x3);
+-
+- return(0);
+- }
+- ],
+- [
+- AC_DEFINE([HAVE_ATOMIC_PTHREAD_T], [1],
+- [pthread_t can be used by GCC atomic builtins])
+- AC_MSG_RESULT(yes)
+- ],
+- [
+- AC_MSG_RESULT(no)
+- ]
+- )
+
+ # Try using solaris atomics on SunOS if GCC atomics are not available
+ AC_CHECK_DECLS(
diff --git a/recipes/mysql/mysql5_5.1.40.bb b/recipes/mysql/mysql5_5.1.40.bb
new file mode 100644
index 0000000000..ded2f0fd75
--- /dev/null
+++ b/recipes/mysql/mysql5_5.1.40.bb
@@ -0,0 +1,3 @@
+require ${PN}_${PV}.inc
+
+DEPENDS += mysql5-native
diff --git a/recipes/mysql/mysql5_5.1.40.inc b/recipes/mysql/mysql5_5.1.40.inc
new file mode 100644
index 0000000000..28716747e6
--- /dev/null
+++ b/recipes/mysql/mysql5_5.1.40.inc
@@ -0,0 +1,175 @@
+DESCRIPTION = "The MySQL Open Source Database System"
+HOMEPAGE = "http://www.mysql.com/"
+SECTION = "libs"
+LICENSE = "GPL"
+DEPENDS = "ncurses"
+PR = "r2"
+
+SRC_URI = "http://downloads.mysql.com/archives/mysql-5.1/mysql-${PV}.tar.gz \
+ file://configure.in.patch;patch=1 \
+ file://plug.in.patch;patch=1 \
+ file://misc.m4.patch;patch=1 \
+ file://Makefile.am.patch;patch=1 \
+ file://fix_host_path.patch;patch=1 \
+ file://configure-ps-cache-check.patch;patch=1 \
+ file://my.cnf \
+ file://mysqld.sh"
+
+S = "${WORKDIR}/mysql-${PV}"
+
+BINCONFIG_GLOB = "mysql_config"
+
+inherit autotools binconfig update-rc.d
+
+INITSCRIPT_PACKAGES = "${PN}-server"
+INITSCRIPT_NAME = "mysqld"
+INITSCRIPT_PARAMS = "start 45 S . stop 45 0 6 1 ."
+
+export ac_cv_path_PS=/bin/ps
+export ac_cv_FIND_PROC="/bin/ps p \$\$PID | grep -v grep | grep mysqld > /dev/null"
+PARALLEL_MAKE = " "
+EXTRA_OEMAKE = "'GEN_LEX_HASH=${STAGING_BINDIR_NATIVE}/gen_lex_hash'"
+EXTRA_OECONF = " --with-atomic-ops=up --with-embedded-server --prefix=/usr --sysconfdir=/etc/mysql --localstatedir=/var/mysql --disable-dependency-tracking --without-raid --without-debug --with-low-memory --without-query-cache --without-man --without-docs --without-innodb "
+
+do_configure_append() {
+ sed -i /comp_err/d ${S}/sql/share/Makefile
+}
+
+do_stage() {
+ autotools_stage_all
+ oe_libinstall -a -so -C libmysql libmysqlclient ${STAGING_LIBDIR}
+ oe_libinstall -a -C libmysqld libmysqld ${STAGING_LIBDIR}
+}
+
+SYSROOT_PREPROCESS_FUNCS += "mysql5_sysroot_preprocess"
+
+# We need to append this so it runs *after* binconfig's preprocess function
+mysql5_sysroot_preprocess () {
+ sed -i -es,^pkgincludedir=\'/usr/include/mysql\',pkgincludedir=\'${STAGING_INCDIR}\', ${STAGING_BINDIR_CROSS}/mysql_config
+ sed -i -es,^pkglibdir=\'/usr/lib/mysql\',pkglibdir=\'${STAGING_LIBDIR}\', ${STAGING_BINDIR_CROSS}/mysql_config
+}
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' install
+ mv -f ${D}${libdir}/mysql/* ${D}${libdir}
+ rmdir ${D}${libdir}/mysql
+
+ install -d ${D}/etc/init.d
+ install -m 0644 ${WORKDIR}/my.cnf ${D}/etc/
+ install -m 0755 ${WORKDIR}/mysqld.sh ${D}/etc/init.d/mysqld
+}
+
+pkg_postinst_mysql5-server () {
+ if [ "x$D" != "x" ]; then
+ exit 1
+ fi
+
+ grep mysql /etc/passwd || adduser --disabled-password --home=/var/mysql --ingroup nogroup mysql
+
+ #Install the database
+ test -d /usr/bin || mkdir -p /usr/bin
+ test -e /usr/bin/hostname || ln -s /bin/hostname /usr/bin/hostname
+ mkdir /var/lib/mysql
+ chown mysql.nogroup /var/lib/mysql
+
+ mysql_install_db
+
+}
+
+pkg_postrm_mysql5-server () {
+ grep mysql /etc/passwd && deluser mysql
+}
+
+PACKAGES = "${PN}-dbg ${PN} \
+libmysqlclient-r libmysqlclient-r-dev libmysqlclient-r-dbg \
+libmysqlclient libmysqlclient-dev libmysqlclient-dbg \
+${PN}-client ${PN}-server ${PN}-leftovers"
+CONFFILES_${PN}-server += "${sysconfdir}/my.cnf"
+
+FILES_${PN} = " "
+RDEPENDS_${PN} = "${PN}-client ${PN}-server"
+ALLOW_EMPTY_${PN} = "1"
+
+FILES_libmysqlclient = "${libdir}/libmysqlclient.so.*"
+FILES_libmysqlclient-dev = " \
+${includedir}/mysql/ \
+${libdir}/lib* \
+${libdir}/plugin/* \
+${sysconfdir}/aclocal \
+${bindir}/mysql_config"
+FILES_libmysqlclient-dbg = "${libdir}/plugin/.debug/ \
+/usr/mysql-test/lib/My/SafeProcess/.debug/my_safe_process"
+
+FILES_libmysqlclient-r = "${libdir}/libmysqlclient_r.so.*"
+FILES_libmysqlclient-r-dev = "${libdir}/libmysqlclient_r.*"
+FILES_libmysqlclient-r-dbg = "${libdir}/plugin/.debuglibmysqlclient_r.so.*"
+
+FILES_${PN}-client = "\
+${bindir}/myisam_ftdump \
+${bindir}/mysql \
+${bindir}/mysql_client_test \
+${bindir}/mysql_client_test_embedded \
+${bindir}/mysql_find_rows \
+${bindir}/mysql_fix_extensions \
+${bindir}/mysql_waitpid \
+${bindir}/mysqlaccess \
+${bindir}/mysqladmin \
+${bindir}/mysqlbug \
+${bindir}/mysqlcheck \
+${bindir}/mysqldump \
+${bindir}/mysqldumpslow \
+${bindir}/mysqlimport \
+${bindir}/mysqlshow \
+${bindir}/mysqlslap \
+${bindir}/mysqltest_embedded \
+${libexecdir}/mysqlmanager"
+
+FILES_${PN}-server = "\
+${bindir}/comp_err \
+${bindir}/isamchk \
+${bindir}/isamlog \
+${bindir}/msql2mysql \
+${bindir}/my_print_defaults \
+${bindir}/myisamchk \
+${bindir}/myisamlog \
+${bindir}/myisampack \
+${bindir}/mysql_convert_table_format \
+${bindir}/mysql_fix_privilege_tables \
+${bindir}/mysql_install_db \
+${bindir}/mysql_secure_installation \
+${bindir}/mysql_setpermission \
+${bindir}/mysql_tzinfo_to_sql \
+${bindir}/mysql_upgrade \
+${bindir}/mysql_zap \
+${bindir}/mysqlbinlog \
+${bindir}/mysqld_multi \
+${bindir}/mysqld_safe \
+${bindir}/mysqlhotcopy \
+${bindir}/mysqltest \
+${bindir}/ndb_delete_all \
+${bindir}/ndb_desc \
+${bindir}/ndb_drop_index \
+${bindir}/ndb_drop_table \
+${bindir}/ndb_mgm \
+${bindir}/ndb_restore \
+${bindir}/ndb_select_all \
+${bindir}/ndb_select_count \
+${bindir}/ndb_show_tables \
+${bindir}/ndb_waiter \
+${bindir}/pack_isam \
+${bindir}/perror \
+${bindir}/replace \
+${bindir}/resolve_stack_dump \
+${bindir}/resolveip \
+${libexecdir}/mysqld \
+${sbindir}/mysqld \
+${sbindir}/ndb_cpcd \
+${sbindir}/ndbd \
+${sbindir}/ndb_mgmd \
+${datadir}/mysql/ \
+${localstatedir}/mysql/ \
+${sysconfdir}/init.d \
+${sysconfdir}/my.cnf"
+
+DESCRIPTION_${PN}-leftovers = "unpackaged and probably unneeded files for ${PN}"
+FILES_${PN}-leftovers = "/"
diff --git a/recipes/mysql/mysql_4.1.22.bb b/recipes/mysql/mysql_4.1.22.bb
index b6718cb0cb..1dacff6781 100644
--- a/recipes/mysql/mysql_4.1.22.bb
+++ b/recipes/mysql/mysql_4.1.22.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.mysql.com/"
SECTION = "libs"
LICENSE = "GPL"
DEPENDS = "ncurses"
-PR = "r4"
+PR = "r6"
SRC_URI = "http://downloads.mysql.com/archives/mysql-4.1/mysql-${PV}.tar.gz \
file://autofoo.patch;patch=1 \
@@ -38,9 +38,11 @@ do_stage() {
oe_libinstall -a -C libmysqld libmysqld ${STAGING_LIBDIR}
}
-do_stage_append() {
- sed -i -es,^pkgincludedir=\'/usr/include/mysql\',pkgincludedir=\'${STAGING_INCDIR}\', ${STAGING_BINDIR_CROSS}/mysql_config
- sed -i -es,^pkglibdir=\'/usr/lib/mysql\',pkglibdir=\'${STAGING_LIBDIR}\', ${STAGING_BINDIR_CROSS}/mysql_config
+SYSROOT_PREPROCESS_FUNCS += "mysqlmangle"
+
+mysqlmangle() {
+ sed -i -es,^pkgincludedir=\'/usr/include/mysql\',pkgincludedir=\'${STAGING_INCDIR}\', ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}/mysql_config
+ sed -i -es,^pkglibdir=\'/usr/lib/mysql\',pkglibdir=\'${STAGING_LIBDIR}\', ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}/mysql_config
}
do_install() {
@@ -63,7 +65,8 @@ pkg_postinst_mysql-server () {
#Install the database
test -d /usr/bin || mkdir -p /usr/bin
test -e /usr/bin/hostname || ln -s /bin/hostname /usr/bin/hostname
- chmod go+rw /var/run
+ mkdir /var/lib/mysql
+ chown mysql.nogroup /var/lib/mysql
mysql_install_db
@@ -74,6 +77,7 @@ pkg_postrm_mysql-server () {
}
PACKAGES = "${PN}-dbg ${PN} libmysqlclient libmysqlclient-dev mysql-client mysql-server ${PN}-leftovers"
+CONFFILES_mysql-server = "${sysconfdir}/my.cnf"
FILES_${PN} = " "
RDEPENDS_${PN} = "mysql-client mysql-server"
diff --git a/recipes/mythtv/mythplugins_0.21+0.22rc2.bb b/recipes/mythtv/mythplugins_0.22.bb
index 31025329a3..aab859c02b 100644
--- a/recipes/mythtv/mythplugins_0.21+0.22rc2.bb
+++ b/recipes/mythtv/mythplugins_0.22.bb
@@ -1,20 +1,19 @@
-# todo: add mythweb
DEPENDS = "flac taglib mythtv libvorbis libexif libvisual libsdl-x11 libcdaudio cdparanoia"
-RDEPENDS_${PN} = "mytharchive mythbrowser mythflix mythgallery \
- mythgame mythmusic mythmovies mythnews mythvideo mythweather"
-PV = "0.21+0.22rc2"
-PR = "r3"
+RDEPENDS_${PN} = "mytharchive mythbrowser mythflix mythgallery mythgame \
+ mythmusic mythmovies mythnews mythvideo mythweather mythweb mythzoneminder"
+PV = "0.22"
+PR = "r0"
QMAKE_PROFILES = "mythplugins.pro"
-SRC_URI = "ftp://ftp.osuosl.org/pub/mythtv/mythplugins-0.22rc2.tar.bz2 \
+SRC_URI = "ftp://ftp.osuosl.org/pub/mythtv/mythplugins-0.22.tar.bz2 \
file://sysroot.patch;patch=1 \
file://mythplugins_wo_qtopengl.diff;patch=1 \
file://configure.patch;patch=1 \
file://mytharchive.pro.patch;patch=1 \
"
-S = "${WORKDIR}/mythplugins-0.22rc2"
+S = "${WORKDIR}/mythplugins-0.22"
inherit qmake2 qt4x11
@@ -36,8 +35,24 @@ do_configure() {
}
do_install () {
oe_runmake install INSTALL_ROOT="${D}"
+ install -d ${D}${datadir}/apache2
+ install -d ${D}${datadir}/apache2/htdocs
+ install -d ${D}/etc/apache2
+ install -d ${D}/etc/apache2/extra
+ cp -r ${S}/mythweb/* ${D}${datadir}/apache2/htdocs/
+ cp -r ${S}/mythweb/mythweb.conf.apache ${D}/etc/apache2/extra/mythweb.conf
+ sed -i -e s:/var/www/html:/usr/share/apache2/htdocs:g ${D}/etc/apache2/extra/mythweb.conf
}
+pkg_postinst_${PN}() {
+ chgrp -R apache /usr/share/apache2/htdocs/data
+ chmod g+rw /usr/share/apache2/htdocs/data
+ grep mythweb.conf /etc/apache2/httpd.conf || \
+ echo "Include /etc/apache2/extra/mythweb.conf" >>/etc/apache2/httpd.conf
+
+}
+
+
PACKAGES =+ "mytharchive mytharchive-dbg \
mythbrowser mythbrowser-dbg \
mythflix mythflix-dbg \
@@ -47,7 +62,9 @@ PACKAGES =+ "mytharchive mytharchive-dbg \
mythmusic mythmusic-dbg \
mythnews mythnews-dbg \
mythvideo mythvideo-dbg \
- mythweather mythweather-dbg"
+ mythweather mythweather-dbg \
+ mythweb \
+ mythzoneminder mythzoneminder-dbg"
FILES_mytharchive = "${libdir}/mythtv/plugins/libmytharchive.so \
${bindir}/mytharchivehelper \
@@ -256,3 +273,19 @@ FILES_mythweather = "${libdir}/mythtv/plugins/libmythweather.so \
${datadir}/mythtv/weather_settings.xml \
"
FILES_mythweather-dbg = "${libdir}/mythtv/plugins/.debug/libmythweather.so"
+
+FILES_mythweb = "${datadir}/apache2/htdocs \
+ /etc/apache2/extra/mythweb.conf"
+
+FILES_mythzoneminder = "${libdir}/mythtv/plugins/libmythzoneminder.so \
+ ${datadir}/mythtv/zonemindermenu.xml \
+ ${datadir}/mythtv/i18n/mythzoneminder* \
+ ${datadir}/mythtv/themes/default/zoneminder-ui.xml \
+ ${datadir}/mythtv/themes/default/mz_black.png \
+ ${datadir}/mythtv/themes/default/mz_browser_back_sel.png \
+ ${datadir}/mythtv/themes/default/mz_browser_back_reg.png \
+ ${datadir}/mythtv/themes/default/mz_function_popup.png \
+ ${datadir}/mythtv/themes/default/mz_testcard.png \
+ ${datadir}/mythtv/themes/default-wide/zoneminder-ui.xml \
+ "
+FILES_mythzoneminder-dbg = "${libdir}/mythtv/plugins/.debug/libmythzoneminder.so"
diff --git a/recipes/mythtv/myththemes_0.21+0.22rc2.bb b/recipes/mythtv/myththemes_0.22.bb
index a3be987fe9..444786a434 100644
--- a/recipes/mythtv/myththemes_0.21+0.22rc2.bb
+++ b/recipes/mythtv/myththemes_0.22.bb
@@ -1,13 +1,13 @@
inherit qmake2
-PV = "0.21+0.22rc2"
+PV = "0.22"
PR = "r0"
FILES_${PN} =+ "${datadir}"
-SRC_URI = "ftp://ftp.osuosl.org/pub/mythtv/myththemes-0.22rc2.tar.bz2"
+SRC_URI = "ftp://ftp.osuosl.org/pub/mythtv/myththemes-0.22.tar.bz2"
-S = "${WORKDIR}/myththemes-0.22rc2"
+S = "${WORKDIR}/myththemes-0.22"
do_configure() {
${S}/configure --qmake=qmake2 --sysroot=${STAGING_DIR_HOST} --prefix=${prefix}
diff --git a/recipes/mythtv/mythtv-0.21+0.22rc2/configure.patch b/recipes/mythtv/mythtv-0.22/configure.patch
index 748c88d9fc..748c88d9fc 100644
--- a/recipes/mythtv/mythtv-0.21+0.22rc2/configure.patch
+++ b/recipes/mythtv/mythtv-0.22/configure.patch
diff --git a/recipes/mythtv/mythtv_0.21+0.22rc2.bb b/recipes/mythtv/mythtv_0.22.bb
index 38608797eb..0ff2b4d0c6 100644
--- a/recipes/mythtv/mythtv_0.21+0.22rc2.bb
+++ b/recipes/mythtv/mythtv_0.22.bb
@@ -1,20 +1,25 @@
require mythtv.inc
-RDEPENDS_${PN} = "mythtv-backend mythtv-frontend mythtv-bin mythtv-filters mythtv-data"
-PV = "0.21+0.22rc2"
+RDEPENDS_${PN} = "mythtv-backend mythtv-frontend mythtv-bin mythtv-filters mythtv-database \
+mysql5-server mysql5-client"
+RDEPENDS_${PN}_append_libc-glibc = " glibc-gconv-utf-16"
+
+PV = "0.22"
PR = "r0"
+# REALPV is here to support release candidates
+# OE in that case has as PV something like 0.21+0.22rc1
+# but for packaging the real PV is needed
REALPV = "0.22"
-#DEFAULT_PREFERENCE = "-1"
ALLOW_EMPTY_${PN} = "1"
QMAKE_PROFILES = "mythtv.pro"
-SRC_URI = "ftp://ftp.osuosl.org/pub/mythtv/mythtv-0.22rc2.tar.bz2 \
+SRC_URI = "ftp://ftp.osuosl.org/pub/mythtv/mythtv-0.22.tar.bz2 \
file://configure.patch;patch=1 \
"
-S = "${WORKDIR}/mythtv-0.22rc2"
+S = "${WORKDIR}/mythtv-0.22"
inherit qmake2 qt4x11
@@ -49,6 +54,12 @@ do_configure_prepend() {
--without-bindings=perl,python \
${EXTRA_OECONF}
}
+do_install() {
+ oe_runmake INSTALL_ROOT=${D} install
+ install -d ${D}${datadir}/mythtv
+ install -d ${D}${datadir}/mythtv/sql
+ install -m 0644 ${S}/database/mc.sql ${D}${datadir}/mythtv/sql
+}
do_stage() {
install -d ${STAGING_INCDIR}
install -d ${STAGING_INCDIR}/${PN}
@@ -82,7 +93,7 @@ do_stage() {
chmod -R ugo+r ${STAGING_LIBDIR}
}
-PACKAGES =+ "mythtv-backend mythtv-frontend mythtv-bin mythtv-filters mythtv-data"
+PACKAGES =+ "mythtv-backend mythtv-frontend mythtv-bin mythtv-filters mythtv-database"
PACKAGES_DYNAMIC = "mythtv-theme-*"
FILES_${PN}-dbg += "${libdir}/mythtv/filters/.debug"
@@ -90,7 +101,7 @@ FILES_mythtv-backend = "${bindir}/mythbackend ${bindir}/mythcommflag ${bindir}/m
FILES_mythtv-frontend = "${bindir}/mythfrontend ${datadir}/mythtv/i18n/mythfrontend_* ${datadir}/mythtv/*.ttf"
FILES_mythtv-bin = "${bindir}/*"
FILES_mythtv-filters = "${libdir}/mythtv/filters/*"
-FILES_mythtv-data = "${datadir}"
+FILES_mythtv-database = "${datadir}/mythtv/sql/"
mythlibs = "mythdb mythavutil mythavcodec mythavformat mythswscale mythhdhomerun myth mythtv mythui mythfreemheg mythupnp mythlivemedia"
diff --git a/recipes/mythtv/mythtv_svn.bb b/recipes/mythtv/mythtv_svn.bb
index 5fbbc4e354..f0d802a4a2 100644
--- a/recipes/mythtv/mythtv_svn.bb
+++ b/recipes/mythtv/mythtv_svn.bb
@@ -4,7 +4,7 @@ inherit qmake2 qt4x11
DEFAULT_PREFERENCE = "-1"
-PV = "0.21+0.22rc+svnr${SRCREV}"
+PV = "0.21+0.22rc+svnr${SRCPV}"
PR = "r0"
REALPV = "0.22"
diff --git a/recipes/nautilus/nautilus_2.28.1.bb b/recipes/nautilus/nautilus_2.28.1.bb
new file mode 100644
index 0000000000..e3a551c76f
--- /dev/null
+++ b/recipes/nautilus/nautilus_2.28.1.bb
@@ -0,0 +1,37 @@
+# nautilus OE build file
+# Copyright (C) 2005, Advanced Micro Devices, Inc. All Rights Reserved
+# Released under the MIT license (see packages/COPYING)
+
+inherit gnome
+
+SRC_URI += "file://idl-sysroot.patch;patch=1 \
+ file://no-try-run-strftime.diff;patch=1 \
+"
+
+export SYSROOT = "${STAGING_DIR_HOST}"
+
+LICENSE="GPL"
+
+DEPENDS += "libunique gvfs tracker librsvg libexif eel esound gnome-desktop orbit2-native"
+RDEPENDS = "gvfs gvfsd-ftp gvfsd-sftp gvfsd-trash"
+
+EXTRA_OECONF = " --disable-gtk-doc --disable-update-mimedb "
+
+PACKAGES += " libnautilus"
+
+FILES_${PN} += "${datadir}/icons /usr/libexec/ "
+FILES_libnautilus = "/usr/lib/*.so*"
+FILES_${PN}-dbg += "/usr/libexec/.debug"
+
+do_configure_prepend() {
+ sed -i -e /docs/d Makefile.am
+}
+
+# We need native orbit-idl with target idl files. No way to say it in a clean way:
+do_configure_append () {
+ find -name Makefile -exec sed -i '/\/usr\/bin\/orbit-idl-2/{s:/usr/bin:${STAGING_BINDIR_NATIVE}:;s:/usr/share:${STAGING_DATADIR}:g}' {} \;
+}
+
+do_stage() {
+ autotools_stage_all
+}
diff --git a/recipes/navit/files/navit.launcher b/recipes/navit/files/navit.launcher
deleted file mode 100644
index b95aadb878..0000000000
--- a/recipes/navit/files/navit.launcher
+++ /dev/null
@@ -1,30 +0,0 @@
-#! /bin/sh
-#
-# Copyright Matthias Hentges <devel@hentges.net> (c) 2008
-# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)
-#
-# Filename: navit.launcher
-# Date: 20080105 (YMD)
-#
-#################################################################################
-#
-# 20080105 - v0.0.1 - Initial release
-
-# On devices with low memory (< 512Mb?) Navit will segfault on start.
-# This can be worked around by doing
-# "echo 1 > /proc/sys/vm/overcommit_memory"
-
-if test "`cat /proc/meminfo | grep ^MemTotal | awk '{print $2}'`" -lt "500000"
-then
- if test "$USER" = "root"
- then
- echo "Enabling low-mem workaround..."
- echo 1 > /proc/sys/vm/overcommit_memory
- else
- echo "I need root-privs to enable the low-mem workaround!"
- fi
-fi
-
-navit.real $*
-
-
diff --git a/recipes/navit/navit.inc b/recipes/navit/navit.inc
index 8ad439df2a..fa250ffac9 100644
--- a/recipes/navit/navit.inc
+++ b/recipes/navit/navit.inc
@@ -15,7 +15,6 @@ FILES_${PN}-dbg += "${libdir}/${PN}/*/.debug"
SRC_URI_append = " \
file://navit.desktop \
- file://navit.launcher \
file://navit.png \
"
@@ -25,8 +24,5 @@ do_install_append() {
install -d ${D}${datadir}/pixmaps/
install -m 0644 ${WORKDIR}/navit.png ${D}${datadir}/pixmaps/
- mv ${D}${bindir}/navit ${D}${bindir}/navit.real
- install -m 0755 ${WORKDIR}/navit.launcher ${D}${bindir}/navit
-
rm ${D}${libdir}/${PN}/*/*.la
}
diff --git a/recipes/ncurses/ncurses.inc b/recipes/ncurses/ncurses.inc
index 76a8ff0c3c..344c82072f 100644
--- a/recipes/ncurses/ncurses.inc
+++ b/recipes/ncurses/ncurses.inc
@@ -11,6 +11,7 @@ PARALLEL_MAKE=""
FILESPATH = "${FILE_DIRNAME}/local:${FILE_DIRNAME}/ncurses-${PV}-${PR}:${FILE_DIRNAME}/ncurses-${PV}:${FILE_DIRNAME}/ncurses:${FILE_DIRNAME}"
EXTRA_OECONF = "\
+ --enable-static \
--with-shared \
--with-libtool \
--without-profile \
diff --git a/recipes/netbase/netbase/shr/init b/recipes/netbase/netbase/shr/init
new file mode 100644
index 0000000000..32810dc913
--- /dev/null
+++ b/recipes/netbase/netbase/shr/init
@@ -0,0 +1,46 @@
+#!/bin/sh
+#
+# manage network interfaces and configure some networking options
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+
+if ! [ -x /sbin/ifup ]; then
+ exit 0
+fi
+
+case "$1" in
+ start)
+ echo -n "Configuring network interfaces... "
+ ifup -a
+ echo "done."
+ ;;
+ stop)
+ if sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\1 \2/p' /proc/mounts |
+ grep -q "^/ nfs$"; then
+ echo "NOT deconfiguring network interfaces: / is an NFS mount"
+ elif sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\1 \2/p' /proc/mounts |
+ grep -q "^/ smbfs$"; then
+ echo "NOT deconfiguring network interfaces: / is an SMB mount"
+ elif sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\2/p' /proc/mounts |
+ grep -qE '^(nfs|smbfs|ncp|coda)$'; then
+ echo "NOT deconfiguring network interfaces: network shares still mounted."
+ else
+ echo -n "Deconfiguring network interfaces... "
+ ifdown -a
+ echo "done."
+ fi
+ ;;
+ force-reload|restart)
+ echo -n "Reconfiguring network interfaces... "
+ ifdown -a
+ ifup -a
+ echo "done."
+ ;;
+ *)
+ echo "Usage: /etc/init.d/networking {start|stop|restart|force-reload}"
+ exit 1
+ ;;
+esac
+
+exit 0
+
diff --git a/recipes/netbase/netbase/shr/options b/recipes/netbase/netbase/shr/options
new file mode 100644
index 0000000000..1cbffcb365
--- /dev/null
+++ b/recipes/netbase/netbase/shr/options
@@ -0,0 +1 @@
+# DEPRECATED by /etc/sysctl.conf
diff --git a/recipes/netsurf/netsurf_svn.bb b/recipes/netsurf/netsurf_svn.bb
index 78f23991d3..c08c8796ac 100644
--- a/recipes/netsurf/netsurf_svn.bb
+++ b/recipes/netsurf/netsurf_svn.bb
@@ -3,7 +3,7 @@ web standards in use today."
HOMEPAGE = "http://www.netsurf-browser.org/"
SECTION = "x11/network"
LICENSE = "GPLv2"
-PV = "1.1+svnr${SRCREV}"
+PV = "1.1+svnr${SRCPV}"
PR = "r0"
SRC_URI = "svn://svn.netsurf-browser.org/trunk;module=netsurf \
diff --git a/recipes/networkmanager/networkmanager-applet_svn.bb b/recipes/networkmanager/networkmanager-applet_svn.bb
index 13234af8ed..d4df048083 100644
--- a/recipes/networkmanager/networkmanager-applet_svn.bb
+++ b/recipes/networkmanager/networkmanager-applet_svn.bb
@@ -11,7 +11,7 @@ SRC_URI = "svn://svn.gnome.org/svn/network-manager-applet/;module=trunk;proto=ht
SRCREV = "200"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
S = "${WORKDIR}/trunk"
diff --git a/recipes/networkmanager/networkmanager_svn.bb b/recipes/networkmanager/networkmanager_svn.bb
index e1936fd221..9d8f22dc7b 100644
--- a/recipes/networkmanager/networkmanager_svn.bb
+++ b/recipes/networkmanager/networkmanager_svn.bb
@@ -2,7 +2,7 @@ require networkmanager-pre0.7.inc
SRCREV = "3202"
-PV = "0.7+svnr${SRCREV}"
+PV = "0.7+svnr${SRCPV}"
PR = "r1"
DEFAULT_PREFERENCE = "-1"
diff --git a/recipes/nfs-utils/nfs-utils-1.1.2/nfsserver b/recipes/nfs-utils/nfs-utils-1.1.2/nfsserver
new file mode 100644
index 0000000000..b4c7662ce0
--- /dev/null
+++ b/recipes/nfs-utils/nfs-utils-1.1.2/nfsserver
@@ -0,0 +1,149 @@
+#!/bin/sh
+#
+# Startup script for nfs-utils
+#
+#
+# The environment variable NFS_SERVERS may be set in /etc/default/nfsd
+# Other control variables may be overridden here too
+test -r /etc/default/nfsd && . /etc/default/nfsd
+#
+# Location of executables:
+test -x "$NFS_MOUNTD" || NFS_MOUNTD=/usr/sbin/rpc.mountd
+test -x "$NFS_NFSD" || NFS_NFSD=/usr/sbin/rpc.nfsd
+test -x "$NFS_STATD" || NFS_STATD=/usr/sbin/rpc.statd
+#
+# The user mode program must also exist (it just starts the kernel
+# threads using the kernel module code).
+test -x "$NFS_MOUNTD" || exit 0
+test -x "$NFS_NFSD" || exit 0
+#
+# Default is 8 threads, value is settable between 1 and the truely
+# ridiculous 99
+test "$NFS_SERVERS" -gt 0 && test "$NFS_SERVERS" -lt 100 || NFS_SERVERS=8
+#
+# The default state directory is /var/lib/nfs
+test -n "$NFS_STATEDIR" || NFS_STATEDIR=/var/lib/nfs
+#
+#----------------------------------------------------------------------
+# Startup and shutdown functions.
+# Actual startup/shutdown is at the end of this file.
+#directories
+create_directories(){
+ echo -n 'creating NFS state directory: '
+ mkdir -p "$NFS_STATEDIR"
+ ( cd "$NFS_STATEDIR"
+ umask 077
+ mkdir -p sm sm.bak
+ test -w sm/state || {
+ rm -f sm/state
+ :>sm/state
+ }
+ umask 022
+ for file in xtab etab smtab rmtab
+ do
+ test -w "$file" || {
+ rm -f "$file"
+ :>"$file"
+ }
+ done
+ )
+ echo done
+}
+#mountd
+start_mountd(){
+ echo -n 'starting mountd: '
+ start-stop-daemon --start --exec "$NFS_MOUNTD" -- "-f /etc/exports $@"
+ echo done
+}
+stop_mountd(){
+ echo -n 'stopping mountd: '
+ start-stop-daemon --stop --quiet --exec "$NFS_MOUNTD"
+ echo done
+}
+#
+#nfsd
+start_nfsd(){
+ echo -n "starting $1 nfsd kernel threads: "
+ start-stop-daemon --start --exec "$NFS_NFSD" -- "$@"
+ echo done
+}
+delay_nfsd(){
+ for delay in 0 1 2 3 4 5 6 7 8 9
+ do
+ if pidof nfsd >/dev/null
+ then
+ echo -n .
+ sleep 1
+ else
+ return 0
+ fi
+ done
+ return 1
+}
+stop_nfsd(){
+ # WARNING: this kills any process with the executable
+ # name 'nfsd'.
+ echo -n 'stopping nfsd: '
+ start-stop-daemon --stop --quiet --signal 1 --name nfsd
+ if delay_nfsd || {
+ echo failed
+ echo ' using signal 9: '
+ start-stop-daemon --stop --quiet --signal 9 --name nfsd
+ delay_nfsd
+ }
+ then
+ echo done
+ # This will remove, recursively, dependencies
+ echo -n 'removing nfsd kernel module: '
+ if modprobe -r nfsd
+ then
+ echo done
+ else
+ echo failed
+ fi
+ else
+ echo failed
+ fi
+}
+
+#statd
+start_statd(){
+ echo -n "starting statd: "
+ start-stop-daemon --start --exec "$NFS_STATD"
+ echo done
+}
+stop_statd(){
+ # WARNING: this kills any process with the executable
+ # name 'statd'.
+ echo -n 'stopping statd: '
+ start-stop-daemon --stop --quiet --signal 1 --name statd
+ echo done
+}
+#----------------------------------------------------------------------
+#
+# supported options:
+# start
+# stop
+# reload: reloads the exports file
+# restart: stops and starts mountd
+#FIXME: need to create the /var/lib/nfs/... directories
+case "$1" in
+start) create_directories
+ start_nfsd "$NFS_SERVERS"
+ start_mountd
+ start_statd
+ test -r /etc/exports && exportfs -a;;
+stop) exportfs -ua
+ stop_statd
+ stop_mountd
+ stop_nfsd;;
+reload) test -r /etc/exports && exportfs -r;;
+restart)exportfs -ua
+ stop_mountd
+ stop_statd
+ # restart does not restart the kernel threads,
+ # only the user mode processes
+ start_mountd
+ start_statd
+ test -r /etc/exports && exportfs -a;;
+esac
diff --git a/recipes/nfs-utils/nfs-utils_1.1.2.bb b/recipes/nfs-utils/nfs-utils_1.1.2.bb
index cdd5d372cd..3951c46eff 100644
--- a/recipes/nfs-utils/nfs-utils_1.1.2.bb
+++ b/recipes/nfs-utils/nfs-utils_1.1.2.bb
@@ -3,7 +3,7 @@ PRIORITY = "optional"
SECTION = "console/network"
LICENSE = "GPL"
-PR = "r6"
+PR = "r7"
DEPENDS = "e2fsprogs-libs tcp-wrappers libevent"
@@ -44,30 +44,12 @@ do_ccompile() {
INHIBIT_AUTO_STAGE = "1"
-do_install() {
+do_install_append() {
install -d ${D}${sysconfdir}/init.d
install -m 0755 ${WORKDIR}/nfsserver ${D}${sysconfdir}/init.d/nfsserver
- install -d ${D}${sbindir}
- install -d ${D}${base_sbindir}
- install -m 0755 ${S}/utils/exportfs/exportfs ${D}${sbindir}/exportfs
- install -m 0755 ${S}/utils/mountd/mountd ${D}${sbindir}/mountd
- install -m 0755 ${S}/utils/mount/mount.nfs ${D}${base_sbindir}/mount.nfs
- install -m 0755 ${S}/utils/nfsd/nfsd ${D}${sbindir}/nfsd
- install -m 0755 ${S}/utils/nfsstat/nfsstat ${D}${sbindir}/nfsstat
- install -m 0755 ${S}/utils/showmount/showmount ${D}${sbindir}/showmount
- install -m 0755 ${S}/utils/statd/statd ${D}${sbindir}/statd
-
- ln -s ${base_sbindir}/mount.nfs ${D}/${base_sbindir}/mount.nfs4
-
- install -d ${D}${mandir}/man8
- install -m 0644 ${S}/utils/exportfs/exportfs.man ${D}${mandir}/man8/exportfs.8
- install -m 0644 ${S}/utils/mountd/mountd.man ${D}${mandir}/man8/mountd.8
- install -m 0644 ${S}/utils/nfsd/nfsd.man ${D}${mandir}/man8/nfsd.8
- install -m 0644 ${S}/utils/nfsstat/nfsstat.man ${D}${mandir}/man8/nfsstat.8
- install -m 0644 ${S}/utils/showmount/showmount.man ${D}${mandir}/man8/showmount.8
- install -m 0644 ${S}/utils/statd/statd.man ${D}${mandir}/man8/statd.8
+ rm ${D}${sbindir}/rpcdebug
}
PACKAGES =+ "nfs-utils-client"
-FILES_nfs-utils-client = "${base_sbindir}/mount.nfs ${base_sbindir}/mount.nfs4"
+FILES_nfs-utils-client = "${base_sbindir}/*mount.nfs*"
diff --git a/recipes/nmap/nmap_3.81.bb b/recipes/nmap/nmap_3.81.bb
index 7aa5928191..95c14be568 100644
--- a/recipes/nmap/nmap_3.81.bb
+++ b/recipes/nmap/nmap_3.81.bb
@@ -19,6 +19,8 @@ EXTRA_OECONF = "--with-pcap=linux \
--without-openssl"
EXTRA_OEMAKE = "STRIPPROG=${STRIP}"
+PARALLEL_MAKE = ""
+
CXXFLAGS_append = " -fpermissive"
# Ugly hack follows -- their configure.ac doesnt match their configure ..
# doesnt include a check for the length type in recvfrom, so we hack it here
diff --git a/recipes/notifier/notifier_0.2.bb b/recipes/notifier/notifier_0.2.bb
new file mode 100644
index 0000000000..2cd999f878
--- /dev/null
+++ b/recipes/notifier/notifier_0.2.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "A notifier for new calls and messages"
+HOMEPAGE = "http://www.telefoninux.org"
+AUTHOR = "Pietro Montorfano"
+LICENSE = "GPLv3"
+RDEPENDS = "python-elementary python python-edbus"
+SECTION = "x11/application"
+PR = "r2"
+
+SRC_URI = "http://monto.homelinux.org/notifier \
+http://monto.homelinux.org/89notifier"
+
+S = "${WORKDIR}"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${S}/notifier ${D}${bindir}/
+ install -d ${D}${sysconfdir}/X11/Xsession.d
+ install -m 0755 ${S}/89notifier ${D}${sysconfdir}/X11/Xsession.d/
+}
+
+
diff --git a/recipes/numptyphysics/numptyphysics_svn.bb b/recipes/numptyphysics/numptyphysics_svn.bb
index d8247b588a..7ebde5086b 100644
--- a/recipes/numptyphysics/numptyphysics_svn.bb
+++ b/recipes/numptyphysics/numptyphysics_svn.bb
@@ -5,7 +5,7 @@ RDEPENDS += "libpng"
LICENSE = "GPL"
HOMEPAGE = "http://numptyphysics.garage.maemo.org/"
SECTION = "x11/games"
-PV = "0.2+svnr${SRCREV}"
+PV = "0.2+svnr${SRCPV}"
PR = "r1"
inherit autotools
diff --git a/recipes/nvidia-drivers/nvidia-display-190.42/nvidia-oe-conftest.patch b/recipes/nvidia-drivers/nvidia-display-190.42/nvidia-oe-conftest.patch
new file mode 100644
index 0000000000..95cf98036c
--- /dev/null
+++ b/recipes/nvidia-drivers/nvidia-display-190.42/nvidia-oe-conftest.patch
@@ -0,0 +1,27 @@
+Index: nv/Makefile.kbuild
+===================================================================
+--- nv.orig/Makefile.kbuild 2009-10-21 06:04:11.000000000 +0200
++++ nv/Makefile.kbuild 2009-11-22 00:55:06.000000000 +0100
+@@ -284,19 +284,16 @@
+ # sufficient privileges. Rebuild the module dependency file.
+ #
+
+-module-install: suser-sanity-check module
++module-install: module
+ @mkdir -p $(MODULE_ROOT)/video; \
+- install -m 0664 -o root -g root $(MODULE_OBJECT) $(MODULE_ROOT)/video; \
+- PATH="$(PATH):/bin:/sbin" depmod -ae;
++ install -m 0664 $(MODULE_OBJECT) $(MODULE_ROOT)/video;
+
+ #
+ # This target builds, then installs, then creates device nodes and inserts
+ # the module, if successful.
+ #
+
+-package-install: module-install rmmod-sanity-check
+- PATH="$(PATH):/bin:/sbin" modprobe $(MODULE_NAME) && \
+- echo "$(MODULE_OBJECT) installed successfully.";
++package-install: module-install
+
+ #
+ # Build an object file suitable for further processing by the installer and
diff --git a/recipes/nvidia-drivers/nvidia-display_190.42.bb b/recipes/nvidia-drivers/nvidia-display_190.42.bb
new file mode 100644
index 0000000000..0ef15e881b
--- /dev/null
+++ b/recipes/nvidia-drivers/nvidia-display_190.42.bb
@@ -0,0 +1,46 @@
+# nvidia-display .bb build file
+# Copyright (C) 2005-2006, Advanced Micro Devices, Inc. All Rights Reserved
+# Released under the MIT license (see /COPYING)
+
+require nvidia-drivers.inc
+
+DEFAULT_PREFERENCE = "-1"
+
+PKG_BASENAME="NVIDIA-Linux-${NVIDIA_ARCH}-${PV}-${NVIDIA_PKGRUN}"
+
+SRC_URI="http://download.nvidia.com/XFree86/Linux-${NVIDIA_ARCH}/${PV}/${PKG_BASENAME}.run \
+ file://nvidia-oe-conftest.patch;patch=1"
+
+S="${WORKDIR}/${PKG_BASENAME}/usr/src/nv"
+
+EXTRA_OEMAKE=" KERNEL_SOURCES=${STAGING_KERNEL_DIR} KERNEL_MODLIB=${STAGING_KERNEL_DIR} KERNEL_UNAME=${KERNEL_VERSION} PATCHLEVEL=${KERNEL_PATCHLEVEL} MODULE_ROOT=${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers IGNORE_CC_MISMATCH=1"
+
+FILES_${PN} += " /usr/lib /usr/bin /usr/share"
+FILES_${PN}-dev += " /usr/lib/xorg/modules/extensions/libglx.so"
+
+INSANE_SKIP_${PN} = True
+
+do_configure() {
+ rm -f ${S}/makefile
+ if [ "${KERNEL_PATCHLEVEL}" != "4" ] ; then
+ ln -sf Makefile.kbuild ${S}/Makefile
+ else
+ ln -sf Makefile.nvidia ${S}/Makefile
+ fi
+}
+
+do_install() {
+ unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
+ oe_runmake DEPMOD=echo INSTALL_MOD_PATH="${D}" CC="${KERNEL_CC}" LD="${KERNEL_LD}" install
+
+ install -d ${D}/usr
+ for dir in bin include lib share ; do
+ cp -pPR ${WORKDIR}/${PKG_BASENAME}/usr/$dir ${D}/usr/
+ done
+
+ #X11R7.0 style...
+ install -d ${D}/usr/lib/xorg/
+ cp ${WORKDIR}/${PKG_BASENAME}/usr/X11R6/lib/lib* ${D}/usr/lib/
+ cp -pPR ${WORKDIR}/${PKG_BASENAME}/usr/X11R6/lib/modules ${D}/usr/lib/xorg/
+ ln -s libglx.so.1.0.8756 ${D}/usr/lib/xorg/modules/extensions/libglx.so
+}
diff --git a/recipes/nvidia-drivers/nvidia-drivers.inc b/recipes/nvidia-drivers/nvidia-drivers.inc
index fbb28cb01d..32f16a43b9 100644
--- a/recipes/nvidia-drivers/nvidia-drivers.inc
+++ b/recipes/nvidia-drivers/nvidia-drivers.inc
@@ -42,6 +42,8 @@ EXTRA_OEMAKE=" KERNEL_SOURCES=${STAGING_KERNEL_DIR} KERNEL_MODLIB=${STAGING_KERN
PKG_BASENAME="NVIDIA-Linux-${NVIDIA_ARCH}-${PV}-${NVIDIA_PKGRUN}"
+FILES_${PN}-doc += " /usr/share/doc/*"
+
nvidia_do_unpack() {
sh ${PKG_BASENAME}.run -x
}
diff --git a/recipes/nzbget/nzbget.inc b/recipes/nzbget/nzbget.inc
new file mode 100644
index 0000000000..93dcfead3d
--- /dev/null
+++ b/recipes/nzbget/nzbget.inc
@@ -0,0 +1,19 @@
+DESCRIPTION = "NZBGet is a command-line based binary newsgrabber for nzb files, written in C++"
+SECTION = "net"
+LICENSE = "GPL"
+HOMEPAGE = "http://nzbget.sourceforge.net/Main_Page"
+DEPENDS = "libsigc++-2.0 libpar2 ncurses libxml2"
+INC_PR = "r0"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/nzbget/nzbget-stable/nzbget-${PV}.tar.gz"
+S = "${WORKDIR}/nzbget-${PV}"
+
+inherit autotools_stage pkgconfig
+
+EXTRA_OECONF = "\
+ --disable-tls \
+ --with-libcurses-libraries=${STAGING_LIBDIR} \
+ --with-libcurses-includes=${STAGING_INCDIR} \
+ --with-libpar2-includes={STAGING_INCDIR} \
+ --with-libpar2-libraries={STAGING_INCDIR} \
+"
diff --git a/recipes/nzbget/nzbget_0.6.0.bb b/recipes/nzbget/nzbget_0.6.0.bb
new file mode 100644
index 0000000000..311d37627a
--- /dev/null
+++ b/recipes/nzbget/nzbget_0.6.0.bb
@@ -0,0 +1,3 @@
+require nzbget.inc
+PR = "${INC_PR}.0"
+
diff --git a/recipes/nzbget/nzbget_0.7.0-testing.bb b/recipes/nzbget/nzbget_0.7.0-testing.bb
new file mode 100644
index 0000000000..e4a9f232dc
--- /dev/null
+++ b/recipes/nzbget/nzbget_0.7.0-testing.bb
@@ -0,0 +1,5 @@
+require nzbget.inc
+PV = "0.6.9+0.7.0r342"
+SRC_URI = "${SOURCEFORGE_MIRROR}/nzbget/nzbget-stable/nzbget-0.7.0-testing-r342.tar.gz"
+S = "${WORKDIR}/nzbget-0.7.0-testing"
+
diff --git a/recipes/obsolete/wesnoth_svn.bb b/recipes/obsolete/wesnoth_svn.bb
index 430abe7d0f..97abc5318e 100644
--- a/recipes/obsolete/wesnoth_svn.bb
+++ b/recipes/obsolete/wesnoth_svn.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "fantasy turn-based strategy game"
-PV = "0.01+svnr${SRCREV}"
+PV = "0.01+svnr${SRCPV}"
PR = "r1"
SECTION = "games"
LICENSE = "GPL"
diff --git a/recipes/odcctools/odcctools-cross-sdk_svn.bb b/recipes/odcctools/odcctools-cross-sdk_svn.bb
index 5c34783490..c1718418b6 100644
--- a/recipes/odcctools/odcctools-cross-sdk_svn.bb
+++ b/recipes/odcctools/odcctools-cross-sdk_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "cctools for darwin (SDK)"
HOMEPAGE = "http://code.google.com/p/iphone-dev"
DEPENDS = "bison-native"
-PV = "0.0+svn${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR = "r2"
SRCREV="280"
diff --git a/recipes/odcctools/odcctools-cross_svn.bb b/recipes/odcctools/odcctools-cross_svn.bb
index 142b01f4b8..37369761c6 100644
--- a/recipes/odcctools/odcctools-cross_svn.bb
+++ b/recipes/odcctools/odcctools-cross_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "cctools for darwin"
HOMEPAGE = "http://code.google.com/p/iphone-dev"
DEPENDS = "cross-linkage bison-native"
PROVIDES = "virtual/${TARGET_PREFIX}binutils"
-PV = "0.0+svn${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR = "r2"
SRCREV="280"
diff --git a/recipes/ogre/ogre-egl_svn.bb b/recipes/ogre/ogre-egl_svn.bb
index 9ca9e8f54f..82c7862013 100644
--- a/recipes/ogre/ogre-egl_svn.bb
+++ b/recipes/ogre/ogre-egl_svn.bb
@@ -5,7 +5,7 @@ DEPENDS = "gtk+ wgois cppunit zziplib boost freeimage freetype virtual/libx11 vi
PR = "r3"
SRCREV = "8310"
-PV = "1.6.1+svnr${SRCREV}"
+PV = "1.6.1+svnr${SRCPV}"
SRC_URI = "svn://ogre.svn.sourceforge.net/svnroot/ogre;module=trunk;proto=https \
file://ogre-egl-update.diff;patch=1;pnum=0 \
diff --git a/recipes/omgps/omgps_svn.bb b/recipes/omgps/omgps_svn.bb
new file mode 100644
index 0000000000..e68a9a4a3d
--- /dev/null
+++ b/recipes/omgps/omgps_svn.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "GPS application for openmoko freerunner"
+HOMEPAGE = "http://omgps.googlecode.com"
+SECTION = "openmoko/applications"
+LICENSE = "GPLv2"
+DEPENDS = "gtk+ python-pygobject dbus-glib"
+#PACKAGES = "${PN}-dbg ${PN}"
+PV = "0.1+svnr${SRCPV}"
+PR = "r0"
+S = "${WORKDIR}/${PN}"
+SRC_URI = "svn://omgps.googlecode.com/svn/trunk;module=omgps;proto=http"
+
+inherit autotools
diff --git a/recipes/omnewrotate/files/correct-sysfs-bl-path.patch b/recipes/omnewrotate/files/correct-sysfs-bl-path.patch
new file mode 100644
index 0000000000..6d381649a8
--- /dev/null
+++ b/recipes/omnewrotate/files/correct-sysfs-bl-path.patch
@@ -0,0 +1,53 @@
+diff -uri omnewrotate.org/src/omnewrotate.c omnewrotate/src/omnewrotate.c
+--- omnewrotate.org/src/omnewrotate.c 2009-05-03 20:23:56.000000000 +0200
++++ omnewrotate/src/omnewrotate.c 2009-05-07 17:46:07.000000000 +0200
+@@ -95,8 +95,8 @@
+ #define LONG_TIME 0
+
+ #define EVENT_PATH "/dev/input/event3"
+-#define GET_BRIGHTNESS_PATH "/sys/class/backlight/pcf50633-bl/actual_brightness"
+-#define SET_BRIGHTNESS_PATH "/sys/class/backlight/pcf50633-bl/brightness"
++#define GET_BRIGHTNESS_PATH "/sys/class/backlight/gta02-bl/actual_brightness"
++#define SET_BRIGHTNESS_PATH "/sys/class/backlight/gta02-bl/brightness"
+
+ #define NUM_THREADS 1
+
+@@ -197,8 +197,8 @@
+ #endif
+
+ if (change_brightness && !use_dbus) {
+- set_brightness_file = open(SET_BRIGHTNESS_PATH, O_RDWR);
+- get_brightness_file = open(GET_BRIGHTNESS_PATH, O_RDWR);
++ set_brightness_file = open(SET_BRIGHTNESS_PATH, O_WRONLY);
++ get_brightness_file = open(GET_BRIGHTNESS_PATH, O_RDONLY);
+
+ if (set_brightness_file < 0 || get_brightness_file < 0)
+ {
+@@ -273,7 +273,7 @@
+ rootWindow = RootWindow(display, screen);
+ XRRRotations(display, screen, &r);
+
+- char current_brightness[3] = "63\n";
++ char current_brightness[4] = "255\n";
+ char brightness_off[2] = "0\n";
+
+
+@@ -317,7 +317,7 @@
+ else
+ {
+ lseek(get_brightness_file, 0, SEEK_SET);
+- read(get_brightness_file, &current_brightness, 2);
++ read(get_brightness_file, &current_brightness, 3);
+ lseek(set_brightness_file, 0, SEEK_SET);
+ write(set_brightness_file, &brightness_off, 2);
+ }
+@@ -333,7 +333,7 @@
+ if(debug) printf("Recovering screen brightness for nifty effect\n");
+ usleep(500000);
+ lseek(set_brightness_file, 0, SEEK_SET);
+- write(set_brightness_file, &current_brightness, 3);
++ write(set_brightness_file, &current_brightness, 4);
+ }
+
+ }
+Nur in omnewrotate.org/src: .omnewrotate.c.swp.
diff --git a/recipes/omnewrotate/omnewrotate_0.5.4.bb b/recipes/omnewrotate/omnewrotate_0.5.4.bb
new file mode 100644
index 0000000000..c712efaba0
--- /dev/null
+++ b/recipes/omnewrotate/omnewrotate_0.5.4.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "OpenMoko New Rotate is a screen rotation program"
+HOMEPAGE = "http://code.google.com/p/omnewrotate/"
+AUTHOR = "Rui Seabra"
+LICENSE = "GPLv3"
+SECTION = "console/network"
+DEPENDS = "libframeworkd-glib xrandr"
+PV = "0.5.4"
+PR = "r4"
+
+SRC_URI = "svn://omnewrotate.googlecode.com/svn/trunk;module=.;proto=http;rev=HEAD \
+file://correct-sysfs-bl-path.patch;patch=1 \
+"
+S = "${WORKDIR}"
+
+inherit autotools
diff --git a/recipes/omoney/omoney_svn.bb b/recipes/omoney/omoney_svn.bb
new file mode 100644
index 0000000000..f566c92ada
--- /dev/null
+++ b/recipes/omoney/omoney_svn.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "OMoney is a bookkeeping application for Openmoko"
+HOMEPAGE = "http://omoney.googlecode.com"
+AUTHOR = "Bumbl"
+LICENSE = "GPLv2"
+SECTION = "openmoko/money"
+PV = "milestone1+svnr${SRCPV}"
+PR = "r0"
+SRC_URI = "svn://omoney.googlecode.com/svn/trunk;module=.;proto=http;rev=29"
+S = "${WORKDIR}"
+
+inherit distutils
+
+RDEPENDS_${PN} = "\
+ python \
+ python-datetime \
+ python-evas \
+ python-edje \
+ python-ecore \
+ python-etk \
+ python-sqlite3 \
+ python-textutils"
+
+FILES_${PN} = "\
+ /usr/bin/omoney \
+ /usr/share/omoney/omgui.edj \
+ /usr/share/pixmaps/omoney.png \
+ /usr/share/applications/omoney.desktop"
+
diff --git a/recipes/omview/omview_svn.bb b/recipes/omview/omview_svn.bb
new file mode 100644
index 0000000000..8ce0a78160
--- /dev/null
+++ b/recipes/omview/omview_svn.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "OMView"
+SECTION = "x11/graphics"
+PKG_TAGS_${PN} = "group::communication"
+DEPENDS += " evas ewl epsilon"
+RDEPENDS += " epsilon-thumbd"
+PV = "0.0.1+svnr${SRCPV}"
+PR = "r2"
+
+inherit autotools
+
+SRC_URI += "svn://svn.projects.openmoko.org/svnroot;proto=svn;module=omview"
+
+S = "${WORKDIR}/${PN}"
+
diff --git a/recipes/opencv/opencv-samples_svn.bb b/recipes/opencv/opencv-samples_svn.bb
index 547e668491..c52f00adf4 100644
--- a/recipes/opencv/opencv-samples_svn.bb
+++ b/recipes/opencv/opencv-samples_svn.bb
@@ -9,8 +9,8 @@ DEPENDS = "opencv"
SRC_URI = "svn://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary/trunk;module=opencv;proto=https \
"
-SRCREV = "2196"
-PV = "1.0.0+1.1pre1+svnr${SRCREV}"
+SRCREV = "2219"
+PV = "2.0.0+svnr${SRCPV}"
S = "${WORKDIR}/opencv"
diff --git a/recipes/opencv/opencv_svn.bb b/recipes/opencv/opencv_svn.bb
index ab14c58e43..f502618a31 100644
--- a/recipes/opencv/opencv_svn.bb
+++ b/recipes/opencv/opencv_svn.bb
@@ -11,8 +11,8 @@ DEPENDS = "ffmpeg gtk+ libtool swig swig-native python jpeg zlib libpng tiff gli
SRC_URI = "svn://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary/trunk;module=opencv;proto=https \
file://acinclude.m4"
-SRCREV = "2196"
-PV = "1.0.0+1.1pre1+svnr${SRCREV}"
+SRCREV = "2219"
+PV = "2.0.0+svnr${SRCPV}"
S = "${WORKDIR}/opencv"
diff --git a/recipes/openmoko-3rdparty/advancedcaching_git.bb b/recipes/openmoko-3rdparty/advancedcaching_git.bb
new file mode 100644
index 0000000000..d9379333f8
--- /dev/null
+++ b/recipes/openmoko-3rdparty/advancedcaching_git.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "Advanced Geocaching Tool for Linux - Towards paperless geocaching!"
+SECTION = "devel/python"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://www.opkg.org/package_268.html"
+RDEPENDS = "python-pygtk python-html python-image python-netclient python-misc python-sqlite3 python-mime python-json"
+PV = "0.1.2+gitr${SRCREV}"
+
+SRC_URI = "git://github.com/webhamster/advancedcaching.git;protocol=git;branch=master"
+
+inherit setuptools
+
+S = "${WORKDIR}/git/files"
+
+do_install_append() {
+ mkdir -p "${D}/${datadir}/pixmaps"
+ install -m 0644 "${S}/advancedcaching.png" "${D}/${datadir}/pixmaps"
+ mkdir -p "${D}/${datadir}/applications"
+ install -m 0644 "${S}/advancedcaching.desktop" "${D}/${datadir}/applications"
+}
+
+FILES_${PN} += "/usr/share/applications/* /usr/share/pixmaps/*"
diff --git a/recipes/openmoko-3rdparty/babiloo-efl_2.0.9-3.bb b/recipes/openmoko-3rdparty/babiloo-efl_2.0.9-3.bb
new file mode 100644
index 0000000000..4bff706b6d
--- /dev/null
+++ b/recipes/openmoko-3rdparty/babiloo-efl_2.0.9-3.bb
@@ -0,0 +1,40 @@
+DESCRIPTION = "EFL Dictionary Viewer. It supports dictionaries in SDictionary and StarDict format."
+SECTION = "devel/python"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Luca Vaudano <vaudano@gmail.com>"
+HOMEPAGE = "http://babiloo-project.org"
+RDEPENDS = "python-elementary python-compression python-misc python-netclient"
+
+PACKAGE_ARCH = "all"
+
+PV = "2.0.9-3"
+PR = "r0"
+
+SRC_URI = "http://bazaar.launchpad.net/%7Evaudano/babiloo/efl/download/head%3A/babiloo_2.0.93.tar.g-20091127144609-qfgdm9zxdc47ap4y-1/babiloo_2.0.9-3.tar.gz;name=tarball"
+SRC_URI[tarball.md5sum] = "3f254dbbe7dd7a4c9527e1e17686101b"
+SRC_URI[tarball.sha256sum] = "4c4eacd8d8aec7ec7f325c18c8401d6d09986b77ddce317768360fccef78e3ef"
+
+S = "${WORKDIR}/babiloo"
+
+do_install() {
+ install -d "${D}${datadir}/babiloo"
+ install -d "${D}${datadir}/babiloo/dicts"
+
+ cp -a "${S}/core" "${D}${datadir}/babiloo/"
+ cp -a "${S}/efl" "${D}${datadir}/babiloo/"
+ cp -a "${S}/images" "${D}${datadir}/babiloo/"
+ install -m 0755 "${S}/run.py" "${D}${datadir}/babiloo/"
+ install -d "${D}${bindir}"
+ ln -s "${datadir}/babiloo/run.py" "${D}${bindir}/babiloo"
+ install -d "${D}${datadir}/pixmaps"
+ install -m 0644 "${S}/images/babiloo.png" "${D}${datadir}/pixmaps"
+ install -d "${D}${datadir}/applications"
+ install -m 0644 "${S}/babiloo.desktop" "${D}${datadir}/applications"
+
+ #cp -a "${S}/locale" "${D}${datadir}/"
+ #find ${D}${datadir}/locale -name *.po -exec rm {} \;
+ #rm -f ${D}${datadir}/locale/babiloo.pot
+}
+
+FILES_${PN} += "${datadir}/babiloo"
diff --git a/recipes/openmoko-3rdparty/babiloo-efl_2.0.9-4.bb b/recipes/openmoko-3rdparty/babiloo-efl_2.0.9-4.bb
new file mode 100644
index 0000000000..29645845d9
--- /dev/null
+++ b/recipes/openmoko-3rdparty/babiloo-efl_2.0.9-4.bb
@@ -0,0 +1,40 @@
+DESCRIPTION = "EFL Dictionary Viewer. It supports dictionaries in SDictionary and StarDict format."
+SECTION = "devel/python"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Luca Vaudano <vaudano@gmail.com>"
+HOMEPAGE = "http://babiloo-project.org"
+RDEPENDS = "python-elementary python-compression python-misc python-netclient"
+
+PACKAGE_ARCH = "all"
+
+PV = "2.0.9-4"
+PR = "r1"
+
+SRC_URI = "http://bazaar.launchpad.net/%7Evaudano/babiloo/efl/download/head%3A/babiloo_2.0.94.tar.g-20091201105555-efky7gi6fkm39xw8-2/babiloo_2.0.9-4.tar.gz;name=tarball"
+SRC_URI[tarball.md5sum] = "f5f25daff7accb8d409fa9f94c49fc17"
+SRC_URI[tarball.sha256sum] = "28fc4550f986512aaa96ebf776f16d3cb9d9b493ac1805642def54c8167a0f74"
+
+S = "${WORKDIR}/babiloo"
+
+do_install() {
+ install -d "${D}${datadir}/babiloo"
+ install -d "${D}${datadir}/babiloo/dicts"
+
+ cp -a "${S}/core" "${D}${datadir}/babiloo/"
+ cp -a "${S}/efl" "${D}${datadir}/babiloo/"
+ cp -a "${S}/images" "${D}${datadir}/babiloo/"
+ install -m 0755 "${S}/run.py" "${D}${datadir}/babiloo/"
+ install -d "${D}${bindir}"
+ ln -s "${datadir}/babiloo/run.py" "${D}${bindir}/babiloo"
+ install -d "${D}${datadir}/pixmaps"
+ install -m 0644 "${S}/images/babiloo.png" "${D}${datadir}/pixmaps"
+ install -d "${D}${datadir}/applications"
+ install -m 0644 "${S}/babiloo.desktop" "${D}${datadir}/applications"
+
+ cp -a "${S}/locale" "${D}${datadir}/"
+ find ${D}${datadir}/locale -name *.po -exec rm {} \;
+ rm -f ${D}${datadir}/locale/babiloo.pot
+}
+
+FILES_${PN} += "${datadir}/babiloo"
diff --git a/recipes/openmoko-3rdparty/babiloo-efl_bzr.bb b/recipes/openmoko-3rdparty/babiloo-efl_bzr.bb
new file mode 100644
index 0000000000..614c095b8b
--- /dev/null
+++ b/recipes/openmoko-3rdparty/babiloo-efl_bzr.bb
@@ -0,0 +1,41 @@
+DESCRIPTION = "EFL Dictionary Viewer. It supports dictionaries in SDictionary and StarDict format."
+SECTION = "devel/python"
+PRIORITY = "optional"
+LICENSE = "GPL"
+AUTHOR = "Luca Vaudano <vaudano@gmail.com>"
+HOMEPAGE = "http://babiloo-project.org"
+RDEPENDS = "python-elementary python-compression python-misc python-netclient"
+
+PACKAGE_ARCH = "all"
+
+DEFAULT_PREFERENCE = "-1"
+PV = "2.0.9-bzrr${SRCPV}"
+
+SRC_URI = "bzr://bazaar.launchpad.net/~vaudano/babiloo/efl"
+
+S = "${WORKDIR}/efl"
+
+do_install() {
+ install -d "${D}${datadir}/babiloo"
+ cp -a "${S}/core" "${D}${datadir}/babiloo/"
+ cp -a "${S}/efl" "${D}${datadir}/babiloo/"
+ cp -a "${S}/images" "${D}${datadir}/babiloo/"
+ cp -a "${S}/dicts" "${D}${datadir}/babiloo/"
+ install -m 0755 "${S}/run.py" "${D}${datadir}/babiloo/"
+ install -d "${D}${bindir}"
+ ln -s "${datadir}/babiloo/run.py" "${D}${bindir}/babiloo"
+ install -d "${D}${datadir}/pixmaps"
+ install -m 0644 "${S}/images/babiloo.png" "${D}${datadir}/pixmaps"
+ install -d "${D}${datadir}/applications"
+ install -m 0644 "${S}/babiloo.desktop" "${D}${datadir}/applications"
+
+ install -d "${D}${datadir}"
+ cp -a "${S}/locale" "${D}${datadir}/"
+ find ${D}${datadir}/locale -name *.po -exec rm {} \;
+ rm -f ${D}${datadir}/locale/babiloo.pot
+
+ install -d "${D}${datadir}/doc"
+ install -m 0644 "${S}/doc/efl/babiloo.pdf" "${D}${datadir}/doc/"
+}
+
+FILES_${PN} += "${datadir}/babiloo"
diff --git a/recipes/openmoko-3rdparty/calc_0.0.4.bb b/recipes/openmoko-3rdparty/calc_0.0.4.bb
new file mode 100644
index 0000000000..1e261f88a6
--- /dev/null
+++ b/recipes/openmoko-3rdparty/calc_0.0.4.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "A simple calculator which is elementary-themed"
+HOMEPAGE = "http://github.com/spaetz/calc"
+AUTHOR = "Sebastian Spaeth <Sebastian@SSpaeth.de>"
+LICENSE = "MIT"
+RDEPENDS = "python-elementary python python-edbus"
+SECTION = "x11/application"
+PR = "r0"
+
+
+SRC_URI = "git://github.com/spaetz/calc.git;protocol=http;branch=master;tag=${PV}"
+S = "${WORKDIR}/git"
+
+do_install(){
+ install -d ${D}${datadir}/applications
+ install -m 0644 ${S}/data/elementary-calculator.desktop ${D}${datadir}/applications/
+ install -d ${D}${datadir}/pixmaps
+ install -m 0644 ${S}/data/calculator.png ${D}${datadir}/pixmaps/
+ install -d ${D}${bindir}
+ install -m 0744 ${S}/calc ${D}${bindir}/
+}
+
+FILES_${PN} += "${prefix}/share/pixmaps"
+FILES_${PN} += "${prefix}/share/applications"
diff --git a/recipes/openmoko-3rdparty/calc_git.bb b/recipes/openmoko-3rdparty/calc_git.bb
new file mode 100644
index 0000000000..9914d23717
--- /dev/null
+++ b/recipes/openmoko-3rdparty/calc_git.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "A dead simple calculator. It's advantage is that it's elementary-themed"
+HOMEPAGE = "http://github.com/spaetz/calc"
+AUTHOR = "Sebastian Spaeth <Sebastian@SSpaeth.de>"
+SHR_RELEASE ?= "shr"
+LICENSE = "MIT"
+RDEPENDS = "python-elementary python python-edbus"
+SECTION = "x11/application"
+SRCREV ?= "1c17792094eb"
+PV = "0.0.1+gitr${SRCREV}"
+PR = "r1"
+
+DEFAULT_PREFERENCE = "-1"
+
+SRC_URI = "git://github.com/spaetz/calc.git;protocol=http;branch=master"
+S = "${WORKDIR}/git"
+
+do_install(){
+ install -d ${D}${datadir}/applications
+ install -m 0644 ${S}/data/elementary-calculator.desktop ${D}${datadir}/applications/
+ install -d ${D}${datadir}/pixmaps
+ install -m 0644 ${S}/data/calculator.png ${D}${datadir}/pixmaps/
+ install -d ${D}${bindir}
+ install -m 0744 ${S}/calc ${D}${bindir}/
+}
+
+FILES_${PN} += "${prefix}/share/pixmaps"
+FILES_${PN} += "${prefix}/share/applications"
diff --git a/recipes/openmoko-3rdparty/neomis_svn.bb b/recipes/openmoko-3rdparty/neomis_svn.bb
new file mode 100644
index 0000000000..2b6075b787
--- /dev/null
+++ b/recipes/openmoko-3rdparty/neomis_svn.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "A computer version of the well-known electronic game named Simon"
+HOMEPAGE = "http://code.google.com/p/neomis/"
+LICENSE = "GPLv3"
+AUTHOR = "Valéry Febvre <vfebvre@easter-eggs.com>"
+SECTION = "x11/applications"
+PRIORITY = "optional"
+DEPENDS = "python-native"
+
+PV = "1.1.0+svnr${SRCPV}"
+
+S = "${WORKDIR}/trunk"
+
+PACKAGE_ARCH = "all"
+
+SRC_URI = "svn://neomis.googlecode.com/svn;module=trunk;proto=http"
+
+inherit distutils
+
+FILES_${PN} += "${datadir}/neomis ${datadir}/applications/neomis.desktop ${datadir}/pixmaps"
+
+RDEPENDS += "python-audio python-pyalsaaudio python-elementary"
diff --git a/recipes/openmoko-3rdparty/numberx_svn.bb b/recipes/openmoko-3rdparty/numberx_svn.bb
new file mode 100644
index 0000000000..446ed37b52
--- /dev/null
+++ b/recipes/openmoko-3rdparty/numberx_svn.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "NumberX is a mathematical puzzle game that will challenge your mental math abilities! "
+HOMEPAGE = "http://code.google.com/p/numberx/"
+LICENSE = "GPLv3"
+AUTHOR = "Valéry Febvre <vfebvre@easter-eggs.com>"
+SECTION = "x11/applications"
+PRIORITY = "optional"
+DEPENDS = "python-native"
+
+PV = "1.0.0+svnr${SRCPV}"
+
+S = "${WORKDIR}/trunk"
+
+PACKAGE_ARCH = "all"
+
+SRC_URI = "svn://numberx.googlecode.com/svn;module=trunk;proto=http"
+
+inherit distutils
+
+RDEPENDS += "python-math python-elementary"
+
+FILES_${PN} += "${datadir}"
diff --git a/recipes/openmoko-3rdparty/om-neon_svn.bb b/recipes/openmoko-3rdparty/om-neon_svn.bb
new file mode 100644
index 0000000000..5ecaf14123
--- /dev/null
+++ b/recipes/openmoko-3rdparty/om-neon_svn.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "Simple image viewer"
+HOMEPAGE = "http://neon.projects.openmoko.org/"
+LICENSE = "GPLv3"
+AUTHOR = "Valéry Febvre <vfebvre@easter-eggs.com>"
+SECTION = "x11/applications"
+PRIORITY = "optional"
+DEPENDS = "edje-native python-native"
+
+SRCREV = ${AUTOREV}
+PV = "1.0.0+svnr${SRCPV}"
+PR = "r2"
+
+S = "${WORKDIR}/trunk"
+
+# Pure Python plus Edje interface
+PACKAGE_ARCH = "all"
+
+SRC_URI = "svn://svn.projects.openmoko.org/svnroot/neon;module=trunk"
+
+inherit distutils
+
+FILES_${PN} += "${datadir}/neon ${datadir}/applications/neon.desktop ${datadir}/pixmaps"
+
+RDEPENDS += "python-textutils python-evas python-ecore python-edje"
+
+do_compile_prepend() {
+ sed -i "s/\/opt\/bin\/edje_cc -v/${@"${STAGING_BINDIR_NATIVE}".replace('/', '\/')}\/edje_cc/g" ${S}/build_edje.py
+ sed -i "s/#THEMES_DIR = '\/usr\/share\/neon\/themes'/THEMES_DIR = '\/usr\/share\/neon\/themes'/g" ${S}/neon/neon.py
+ sed -i "s/THEMES_DIR = '..\/data\/themes'/#THEMES_DIR = '..\/data\/themes'/g" ${S}/neon/neon.py
+}
diff --git a/recipes/openmoko-3rdparty/pisi_0.4.7.bb b/recipes/openmoko-3rdparty/pisi_0.4.7.bb
new file mode 100644
index 0000000000..b3425d2c2e
--- /dev/null
+++ b/recipes/openmoko-3rdparty/pisi_0.4.7.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "PISI is synchronizing information"
+AUTHOR = "Michael Pilgermann"
+PRIORITY = "optional"
+LICENSE = "GPL"
+HOMEPAGE = "http://projects.openmoko.org/projects/pisi/"
+SRCNAME = "pisi"
+DEPENDS = "python-native python"
+RDEPENDS = "python-vobject python python-pygtk python-pygobject python-pycairo\
+ python-gdata python-webdav python-ldap python-epydoc python-core\
+ python-dateutil python-sqlite3 python-netserver python-netclient\
+ python-misc"
+
+PACKAGE_ARCH = "all"
+
+PR = "r0"
+
+SRC_URI = "http://projects.openmoko.org/frs/download.php/907/pisi-src-${PV}.tar.gz"
+
+FILES_${PN} += "/opt/pisi \
+ ${datadir}/pixmaps \
+ ${datadir}/applications \
+ /home"
+CONFFILES_${PN} += "/home/root/.${PN}/conf.default"
+
+do_compile() {
+ ${STAGING_BINDIR_NATIVE}/python ${S}/setup.py build ${D}
+}
+
+do_install() {
+ ${STAGING_BINDIR_NATIVE}/python ${S}/setup.py install ${D}
+ rm -rf ${D}/opt/pisi/build/
+ rm -rf ${D}/opt/pisi/patches/
+}
diff --git a/recipes/openmoko-base/openmoko-common_svn.bb b/recipes/openmoko-base/openmoko-common_svn.bb
index dc5d24abe1..7f1be74d9e 100644
--- a/recipes/openmoko-base/openmoko-common_svn.bb
+++ b/recipes/openmoko-base/openmoko-common_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Common files for the Openmoko distribution"
SECTION = "openmoko/base"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR = "r1"
inherit openmoko-base
diff --git a/recipes/openmoko-base/openmoko-icon-theme-standard_svn.bb b/recipes/openmoko-base/openmoko-icon-theme-standard_svn.bb
index 0961d74162..0d8a627cc9 100644
--- a/recipes/openmoko-base/openmoko-icon-theme-standard_svn.bb
+++ b/recipes/openmoko-base/openmoko-icon-theme-standard_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Standard Gtk+ icon theme for the Openmoko distribution"
SECTION = "openmoko/base"
-PV = "0.1+svnr${SRCREV}"
+PV = "0.1+svnr${SRCPV}"
PR = "r1"
inherit openmoko-base autotools
diff --git a/recipes/openmoko-base/openmoko-libs_svn.bb b/recipes/openmoko-base/openmoko-libs_svn.bb
index 20b05efb0b..b802dfd681 100644
--- a/recipes/openmoko-base/openmoko-libs_svn.bb
+++ b/recipes/openmoko-base/openmoko-libs_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "openmoko-libs is a set of libraries implementing a Gtk+ based app
SECTION = "openmoko/libs"
LICENSE = "LGPL"
DEPENDS += "gtk+ eds-dbus libgsmd libxosd"
-PV = "0.4+svnr${SRCREV}"
+PV = "0.4+svnr${SRCPV}"
PR = "r0"
inherit openmoko
diff --git a/recipes/openmoko-base/openmoko-session_svn.bb b/recipes/openmoko-base/openmoko-session_svn.bb
index 1baa1d68b0..4b5e6e3ff6 100644
--- a/recipes/openmoko-base/openmoko-session_svn.bb
+++ b/recipes/openmoko-base/openmoko-session_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Matchbox session files for Openmoko"
SECTION = "openmoko/base"
RDEPENDS = "matchbox-panel-2 matchbox-wm openmoko-today gconf"
-PV = "0.1+svnr${SRCREV}"
+PV = "0.1+svnr${SRCPV}"
PR = "r0"
inherit openmoko-base
diff --git a/recipes/openmoko-base/openmoko-sound-theme-standard_svn.bb b/recipes/openmoko-base/openmoko-sound-theme-standard_svn.bb
index bb500dbeb5..2c61036440 100644
--- a/recipes/openmoko-base/openmoko-sound-theme-standard_svn.bb
+++ b/recipes/openmoko-base/openmoko-sound-theme-standard_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Standard sound theme for the Openmoko distribution"
SECTION = "openmoko/base"
-PV = "0.1+svnr${SRCREV}"
+PV = "0.1+svnr${SRCPV}"
PR = "r2"
inherit openmoko-base autotools
diff --git a/recipes/openmoko-base/openmoko-theme-standard-qvga_svn.bb b/recipes/openmoko-base/openmoko-theme-standard-qvga_svn.bb
index 5cb7042c92..c7256a9593 100644
--- a/recipes/openmoko-base/openmoko-theme-standard-qvga_svn.bb
+++ b/recipes/openmoko-base/openmoko-theme-standard-qvga_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Standard Gtk+ theme for the Openmoko distribution, qvga version"
SECTION = "openmoko/base"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR = "r0"
inherit openmoko-base
diff --git a/recipes/openmoko-base/openmoko-theme-standard_svn.bb b/recipes/openmoko-base/openmoko-theme-standard_svn.bb
index e5e54934dc..606d6a03eb 100644
--- a/recipes/openmoko-base/openmoko-theme-standard_svn.bb
+++ b/recipes/openmoko-base/openmoko-theme-standard_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Standard Gtk+ theme for the Openmoko distribution"
SECTION = "openmoko/base"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR = "r5"
inherit openmoko-base
diff --git a/recipes/openmoko-examples/openmoko-finger-demo_svn.bb b/recipes/openmoko-examples/openmoko-finger-demo_svn.bb
index 5d55180aa1..a5c7c6241c 100644
--- a/recipes/openmoko-examples/openmoko-finger-demo_svn.bb
+++ b/recipes/openmoko-examples/openmoko-finger-demo_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "An example finger application for Openmoko"
SECTION = "openmoko/examples"
-PV = "0.0.1+svnr${SRCREV}"
+PV = "0.0.1+svnr${SRCPV}"
inherit openmoko
diff --git a/recipes/openmoko-examples/openmoko-panel-demo-simple_svn.bb b/recipes/openmoko-examples/openmoko-panel-demo-simple_svn.bb
index 2f87b0c41c..ff336be4de 100644
--- a/recipes/openmoko-examples/openmoko-panel-demo-simple_svn.bb
+++ b/recipes/openmoko-examples/openmoko-panel-demo-simple_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "A simple example panel plugin for Openmoko"
SECTION = "openmoko/examples"
DEPENDS += "libmatchbox"
-PV = "0.0.1+svnr${SRCREV}"
+PV = "0.0.1+svnr${SRCPV}"
PR = "r1"
diff --git a/recipes/openmoko-examples/openmoko-panel-demo_svn.bb b/recipes/openmoko-examples/openmoko-panel-demo_svn.bb
index bf2d306ca3..c44dc114e5 100644
--- a/recipes/openmoko-examples/openmoko-panel-demo_svn.bb
+++ b/recipes/openmoko-examples/openmoko-panel-demo_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "An example panel plugin for Openmoko"
SECTION = "openmoko/examples"
DEPENDS += "libmatchbox"
-PV = "0.0.1+svnr${SRCREV}"
+PV = "0.0.1+svnr${SRCPV}"
inherit openmoko
diff --git a/recipes/openmoko-examples/openmoko-stylus-demo-simple_svn.bb b/recipes/openmoko-examples/openmoko-stylus-demo-simple_svn.bb
index 659f0c7636..08b72f8900 100644
--- a/recipes/openmoko-examples/openmoko-stylus-demo-simple_svn.bb
+++ b/recipes/openmoko-examples/openmoko-stylus-demo-simple_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "A simple stylus application example for Openmoko"
SECTION = "openmoko/examples"
-PV = "0.0.1+svnr${SRCREV}"
+PV = "0.0.1+svnr${SRCPV}"
inherit openmoko
diff --git a/recipes/openmoko-examples/openmoko-stylus-demo_svn.bb b/recipes/openmoko-examples/openmoko-stylus-demo_svn.bb
index 4032cfceb6..550324a339 100644
--- a/recipes/openmoko-examples/openmoko-stylus-demo_svn.bb
+++ b/recipes/openmoko-examples/openmoko-stylus-demo_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "An example stylus application for Openmoko"
SECTION = "openmoko/examples"
-PV = "0.0.1+svnr${SRCREV}"
+PV = "0.0.1+svnr${SRCPV}"
inherit openmoko
diff --git a/recipes/openmoko-panel-plugins/openmoko-panel-battery_svn.bb b/recipes/openmoko-panel-plugins/openmoko-panel-battery_svn.bb
index 7f821a8343..f8ff8a3a93 100644
--- a/recipes/openmoko-panel-plugins/openmoko-panel-battery_svn.bb
+++ b/recipes/openmoko-panel-plugins/openmoko-panel-battery_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Shows the battery/AC status in the Openmoko panel"
DEPENDS = "apmd libnotify"
-PV = "0.1.1+svn${SVNREV}"
+PV = "0.1.1+svnr${SRCPV}"
inherit openmoko-panel-plugin
diff --git a/recipes/openmoko-panel-plugins/openmoko-panel-bt_svn.bb b/recipes/openmoko-panel-plugins/openmoko-panel-bt_svn.bb
index 336a7f8541..e823694f10 100644
--- a/recipes/openmoko-panel-plugins/openmoko-panel-bt_svn.bb
+++ b/recipes/openmoko-panel-plugins/openmoko-panel-bt_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Shows the bluetooth status in the Openmoko panel"
DEPENDS = "bluez-libs libnotify"
-PV = "0.1.0+svn${SVNREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r1"
inherit openmoko-panel-plugin
diff --git a/recipes/openmoko-panel-plugins/openmoko-panel-clock_svn.bb b/recipes/openmoko-panel-plugins/openmoko-panel-clock_svn.bb
index f5066b1c69..91316b8066 100644
--- a/recipes/openmoko-panel-plugins/openmoko-panel-clock_svn.bb
+++ b/recipes/openmoko-panel-plugins/openmoko-panel-clock_svn.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "Shows the current time in the Openmoko panel"
-PV = "0.1.0+svn${SVNREV}"
+PV = "0.1.0+svnr${SRCPV}"
inherit openmoko-panel-plugin
diff --git a/recipes/openmoko-panel-plugins/openmoko-panel-gps_svn.bb b/recipes/openmoko-panel-plugins/openmoko-panel-gps_svn.bb
index bf4eef5463..b28b670453 100644
--- a/recipes/openmoko-panel-plugins/openmoko-panel-gps_svn.bb
+++ b/recipes/openmoko-panel-plugins/openmoko-panel-gps_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Shows the GPS status in the Openmoko panel"
DEPENDS = "gpsd"
-PV = "0.1.0+svn${SVNREV}"
+PV = "0.1.0+svnr${SRCPV}"
inherit openmoko-panel-plugin
diff --git a/recipes/openmoko-panel-plugins/openmoko-panel-gsm_svn.bb b/recipes/openmoko-panel-plugins/openmoko-panel-gsm_svn.bb
index e8a5bc877d..00529ea360 100644
--- a/recipes/openmoko-panel-plugins/openmoko-panel-gsm_svn.bb
+++ b/recipes/openmoko-panel-plugins/openmoko-panel-gsm_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Shows the GSM / GPRS status in the Openmoko panel"
DEPENDS = "libmokogsmd2 libnotify"
-PV = "0.1.0+svn${SVNREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r2"
inherit openmoko-panel-plugin
diff --git a/recipes/openmoko-panel-plugins/openmoko-panel-mainmenu_svn.bb b/recipes/openmoko-panel-plugins/openmoko-panel-mainmenu_svn.bb
index 19c278596d..7c0659ef51 100644
--- a/recipes/openmoko-panel-plugins/openmoko-panel-mainmenu_svn.bb
+++ b/recipes/openmoko-panel-plugins/openmoko-panel-mainmenu_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Main menu applet for the Openmoko panel"
DEPENDS += "pulseaudio startup-notification"
-PV = "0.1.0+svn${SVNREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r1"
inherit openmoko-panel-plugin
diff --git a/recipes/openmoko-panel-plugins/openmoko-panel-memory_svn.bb b/recipes/openmoko-panel-plugins/openmoko-panel-memory_svn.bb
index 2b1d2b03bd..0f0ca828d2 100644
--- a/recipes/openmoko-panel-plugins/openmoko-panel-memory_svn.bb
+++ b/recipes/openmoko-panel-plugins/openmoko-panel-memory_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Shows an out-of-memory warning in the Openmoko panel"
DEPENDS = "libnotify"
RDEPENDS = "openmoko-dialer2"
-PV = "0.0.0+svn${SVNREV}"
+PV = "0.0.0+svnr${SRCPV}"
PR = "r0"
inherit openmoko-panel-plugin
diff --git a/recipes/openmoko-panel-plugins/openmoko-panel-usb_svn.bb b/recipes/openmoko-panel-plugins/openmoko-panel-usb_svn.bb
index 5d00ab4b02..6af1b8c3f9 100644
--- a/recipes/openmoko-panel-plugins/openmoko-panel-usb_svn.bb
+++ b/recipes/openmoko-panel-plugins/openmoko-panel-usb_svn.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "USB applet for the Openmoko panel"
-PV = "0.1.0+svn${SVNREV}"
+PV = "0.1.0+svnr${SRCPV}"
inherit openmoko-panel-plugin
diff --git a/recipes/openmoko-panel-plugins/openmoko-panel-wifi_svn.bb b/recipes/openmoko-panel-plugins/openmoko-panel-wifi_svn.bb
index 0b7aac3d2a..4b8000adb0 100644
--- a/recipes/openmoko-panel-plugins/openmoko-panel-wifi_svn.bb
+++ b/recipes/openmoko-panel-plugins/openmoko-panel-wifi_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Shows the wifi status in the Openmoko panel"
DEPENDS = "libmokopanelui2"
-PV = "0.0.0+svn${SVNREV}"
+PV = "0.0.0+svnr${SRCPV}"
inherit openmoko-panel-plugin
diff --git a/recipes/openmoko-projects/assassin-thumbnail.bb b/recipes/openmoko-projects/assassin-thumbnail.bb
index b05c65dc1d..2e9afeb2d6 100644
--- a/recipes/openmoko-projects/assassin-thumbnail.bb
+++ b/recipes/openmoko-projects/assassin-thumbnail.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Assassin Packages Thumbnails"
HOMEPAGE = "http://assassin.projects.openmoko.org/"
LICENSE = "GPL"
RDEPENDS = "assassin"
-PV = "0.1+svnr${SRCREV}"
+PV = "0.1+svnr${SRCPV}"
PR = "r1"
SRC_URI = "svn://svn.openmoko.org/trunk/src/target/thumbnails/;module=result;proto=https"
diff --git a/recipes/openmoko-projects/assassin_svn.bb b/recipes/openmoko-projects/assassin_svn.bb
index c2ab9579a3..505a1dacb9 100644
--- a/recipes/openmoko-projects/assassin_svn.bb
+++ b/recipes/openmoko-projects/assassin_svn.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://assassin.projects.openmoko.org/"
LICENSE = "GPL"
DEPENDS = "dbus (>= 1.1.1) glib-2.0 e-wm packagekit etk edbus eet"
RDEPENDS = "etk-theme-ninja"
-PV = "0.2+svnr${SRCREV}"
+PV = "0.2+svnr${SRCPV}"
PR = "r6.04"
SRC_URI = "svn://om-assassin.googlecode.com/svn/;module=trunk;proto=http"
diff --git a/recipes/openmoko-projects/diversity-daemon_svn.bb b/recipes/openmoko-projects/diversity-daemon_svn.bb
index 43c1d0a1b9..d78bde23a0 100644
--- a/recipes/openmoko-projects/diversity-daemon_svn.bb
+++ b/recipes/openmoko-projects/diversity-daemon_svn.bb
@@ -4,7 +4,7 @@ SECTION = "network/misc"
LICENSE = "GPL"
DEPENDS = "glib-2.0 dbus dbus-glib eds-dbus libjana curl"
RDEPENDS_${PN} = "eds-dbus"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR = "r3"
SRC_URI = "svn://svn.projects.openmoko.org/svnroot/diversity/trunk;module=diversity-daemon;proto=https \
diff --git a/recipes/openmoko-projects/diversity-radar_svn.bb b/recipes/openmoko-projects/diversity-radar_svn.bb
index 1d754d23ca..bdc6120b87 100644
--- a/recipes/openmoko-projects/diversity-radar_svn.bb
+++ b/recipes/openmoko-projects/diversity-radar_svn.bb
@@ -4,7 +4,7 @@ SECTION = "openmoko/applications"
LICENSE = "GPL"
DEPENDS = "python-evas python-edje python-ecore python-edbus python-dbus python-etk"
RDEPENDS_${PN} = "diversity-daemon"
-PV = "0.0.4+svnr${SRCREV}"
+PV = "0.0.4+svnr${SRCPV}"
PR = "r0.01"
SRC_URI = "svn://svn.projects.openmoko.org/svnroot/diversity/toys;module=diversity-radar;proto=http"
diff --git a/recipes/openmoko-projects/enlazar_svn.bb b/recipes/openmoko-projects/enlazar_svn.bb
index 4d86dc6a06..9b2896bced 100644
--- a/recipes/openmoko-projects/enlazar_svn.bb
+++ b/recipes/openmoko-projects/enlazar_svn.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://enlazar.projects.openmoko.org/"
LICENSE = "GPL"
DEPENDS = "evas edje ecore edbus"
RDEPENDS = "networkmanager"
-PV = "0.1+svnr${SRCREV}"
+PV = "0.1+svnr${SRCPV}"
PR = "r3"
PE = "2"
diff --git a/recipes/openmoko-projects/etk-theme-ninja_svn.bb b/recipes/openmoko-projects/etk-theme-ninja_svn.bb
index a4fb2f3054..38468f5457 100644
--- a/recipes/openmoko-projects/etk-theme-ninja_svn.bb
+++ b/recipes/openmoko-projects/etk-theme-ninja_svn.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://ninja.projects.openmoko.org/"
SECTION = "openmoko/misc"
LICENSE = "GPL"
DEPENDS = "edje"
-PV = "0.0.1+svnr${SRCREV}"
+PV = "0.0.1+svnr${SRCPV}"
PR = "r1"
SRC_URI = "svn://svn.projects.openmoko.org/svnroot/ninja;module=trunk;proto=http"
diff --git a/recipes/openmoko-projects/illume-theme-asu_svn.bb b/recipes/openmoko-projects/illume-theme-asu_svn.bb
index e232dbb554..bc4a649c0f 100644
--- a/recipes/openmoko-projects/illume-theme-asu_svn.bb
+++ b/recipes/openmoko-projects/illume-theme-asu_svn.bb
@@ -4,7 +4,7 @@ LICENSE = "MIT/BSD"
DEPENDS = "edje-native eet-native"
RPROVIDES_${PN} = "illume-theme"
RCONFLICTS = "illume-config"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR = "r9"
SRC_URI = "svn://svn.openmoko.org/trunk/src/target/themes/;module=illume-theme-asu;proto=http"
diff --git a/recipes/openmoko-projects/om-settings_svn.bb b/recipes/openmoko-projects/om-settings_svn.bb
index 579dd3d1be..19ff7cf830 100644
--- a/recipes/openmoko-projects/om-settings_svn.bb
+++ b/recipes/openmoko-projects/om-settings_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Exposure all devices on neo1973"
DEPENDS = "python-etk python-edbus"
RDEPENDS = "python-etk python-re python-codecs python-edbus python-pyxdg"
-PV = "0.0.1+svnr${SRCREV}"
+PV = "0.0.1+svnr${SRCPV}"
PR = "r3"
PE = "1"
diff --git a/recipes/openmoko-projects/openmoko-agpsui/fix-configure-for-new-autotools.patch b/recipes/openmoko-projects/openmoko-agpsui/fix-configure-for-new-autotools.patch
new file mode 100644
index 0000000000..b190cf6096
--- /dev/null
+++ b/recipes/openmoko-projects/openmoko-agpsui/fix-configure-for-new-autotools.patch
@@ -0,0 +1,11 @@
+diff -uri openmoko-agpsui/trunk/configure.ac openmoko-agpsui-fixed/trunk/configure.ac
+--- openmoko-agpsui/trunk/configure.ac 2009-05-30 12:24:11.000000000 +0200
++++ openmoko-agpsui-fixed/trunk/configure.ac 2009-05-30 12:26:32.000000000 +0200
+@@ -7,6 +7,7 @@
+
+ AC_ISC_POSIX
+ AC_PROG_CC
++AC_PROG_CXX
+ AC_STDC_HEADERS
+ AC_PROG_LIBTOOL
+
diff --git a/recipes/openmoko-projects/openmoko-agpsui_svn.bb b/recipes/openmoko-projects/openmoko-agpsui_svn.bb
index b9b2de2de7..b341d1b544 100644
--- a/recipes/openmoko-projects/openmoko-agpsui_svn.bb
+++ b/recipes/openmoko-projects/openmoko-agpsui_svn.bb
@@ -3,10 +3,11 @@ HOMEPAGE = "http://openmoko-agpsui.projects.openmoko.org/"
SECTION = "openmoko/apps"
LICENSE = "GPL"
DEPENDS = "gtk+"
-PV = "0.1+svnr${SRCREV}"
-PR = "r0"
+PV = "0.1+svnr${SRCPV}"
+PR = "r1"
-SRC_URI = "svn://svn.projects.openmoko.org/svnroot/openmoko-agpsui;module=trunk;proto=https"
+SRC_URI = "svn://svn.projects.openmoko.org/svnroot/openmoko-agpsui;module=trunk;proto=http \
+file://fix-configure-for-new-autotools.patch;patch=1;pnum=2"
S = "${WORKDIR}/trunk"
diff --git a/recipes/openmoko-projects/paroli_git.bb b/recipes/openmoko-projects/paroli_git.bb
index e485996f4b..4b4c9add4a 100644
--- a/recipes/openmoko-projects/paroli_git.bb
+++ b/recipes/openmoko-projects/paroli_git.bb
@@ -1,20 +1,179 @@
DESCRIPTION = "Paroli"
SECTION = "x11"
LICENSE = "GPL"
-PV = "0.2+gitr${SRCREV}"
+PV = "0.2.1+gitr${SRCREV}"
+PE = "1"
PR = "r0"
-SRC_URI = "git://git.paroli-project.org/paroli.git;protocol=http"
+SRC_URI = "git://git.paroli-project.org/paroli.git;protocol=http;branch=shr"
S = "${WORKDIR}/git"
inherit distutils
+PACKAGES += "${PN}-autostart ${PN}-theme ${PN}-sounds ${PN}-calculator"
+
RDEPENDS = "\
python-datetime \
python-subprocess \
python-textutils \
python-dbus \
python-pygobject \
+ python-elementary \
+ dbus-x11 \
+ task-fso-compliance \
+ elementary \
+ elementary-themes \
+ edbus-ehal \
"
-FILES_${PN} += "${sysconfdir}/dbus-1 ${sysconfdir}/paroli ${datadir}"
+E_CONFIG_DIR="/usr/share/enlightenment/data"
+
+RULES_YAML = rules.yaml
+RULES_YAML_om-gta01 = gta01_rules.yaml
+
+do_configure_append() {
+ # fix absolute etc reference
+ sed -i "s|/etc/|../../etc/|" ${S}/setup.py
+ sed -i "s|prefix,|'../../usr/',|" ${S}/setup.py
+ sed -i "s|core/|/usr/lib/python2.6/site-packages/|" ${S}/scripts/paroli
+ sed -i "s|services|/usr/share/paroli/services|" ${S}/scripts/paroli.fso.cfg
+ sed -i "s|applications|/usr/share/paroli/applications|" ${S}/scripts/paroli.fso.cfg
+}
+
+do_install_append() {
+# install ${D}${sysconfdir}/paroli/paroli.fso.cfg ${D}${sysconfdir}/paroli/paroli.cfg
+
+ # install paroli theme
+ install -d ${D}${E_CONFIG_DIR}/themes
+ install ${S}/data/e-config/paroli.edj ${D}${E_CONFIG_DIR}/themes/
+ install ${S}/data/e-config/serenity.edj ${D}${E_CONFIG_DIR}/themes/
+ install -d ${D}${E_CONFIG_DIR}/config/paroli
+ install ${S}/data/e-config/paroli/* ${D}${E_CONFIG_DIR}/config/paroli/
+ install -d ${D}${E_CONFIG_DIR}/config/paroli-serenity
+ install ${S}/data/e-config/paroli-serenity/* ${D}${E_CONFIG_DIR}/config/paroli-serenity/
+
+ install -d ${D}${datadir}/elementary/themes
+ install ${S}/data/paroli.edj ${D}${datadir}/elementary/themes
+
+ install -d ${D}${datadir}/icons
+ install ${S}/data/paroli.png ${D}${datadir}/icons
+
+ install -d ${D}${datadir}/applications
+ install ${S}/data/paroli.desktop ${D}${datadir}/applications
+
+ # install autostart
+ install -d ${D}${E_CONFIG_DIR}/applications/all
+ cp ${D}/usr/share/applications/paroli.desktop ${D}${E_CONFIG_DIR}/applications/all
+ install -d ${D}${E_CONFIG_DIR}/applications/startup
+ echo "${E_CONFIG_DIR}/applications/all/paroli.desktop" >> ${D}${E_CONFIG_DIR}/applications/startup/.order
+
+# install -d ${D}${sysconfdir}/freesmartphone/oevents
+# install ${S}/data/${RULES_YAML} ${D}${sysconfdir}/freesmartphone/oevents/paroli_rules.yaml
+# install ${S}/data/frameworkd.conf ${D}${sysconfdir}/paroli_frameworkd.conf
+
+ install -d ${D}${sysconfdir}/freesmartphone/opreferences/conf/phone
+ install ${S}/data/default.yaml ${D}${sysconfdir}/freesmartphone/opreferences/conf/phone/default.yaml
+
+ install -d ${D}${datadir}/dbus-1/system-services/
+ install ${S}/data/dbus/org.tichy.launcher.service ${D}${datadir}/dbus-1/system-services/
+
+ install -d ${D}${datadir}/sounds
+ install ${S}/data/sounds/* ${D}${datadir}/sounds
+
+}
+
+pkg_postinst_${PN}-autostart() {
+#!/bin/sh
+# do this off or on line
+if [ "x$D" != "x" ]; then
+ ROOTFS=${IMAGE_ROOTFS}
+else
+ ROOTFS=""
+fi
+
+# post installation script
+if [ -x $ROOTFS${sysconfdir}/X11/Xsession.d/80zhone ]; then
+ echo "*******************************************"
+ echo "Deactivating zhone autostart"
+ echo "*******************************************"
+ chmod -x $ROOTFS${sysconfdir}/X11/Xsession.d/80zhone || true
+fi
+exit 0
+}
+
+#pkg_postinst_${PN}-sounds() {
+#!/bin/sh
+# do this off or on line
+#if [ "x$D" != "x" ]; then
+# ROOTFS=${IMAGE_ROOTFS}
+#else
+# ROOTFS=""
+#fi
+# post installation script
+#if [ ! -e /$ROOTFS${sysconfdir}/freesmartphone/opreferences/conf/phone/old_default.yaml ] ; then
+# echo "Backing up ${sysconfdir}/freesmartphone/opreferences/conf/phone/default.yaml"
+# mv $ROOTFS${sysconfdir}/freesmartphone/opreferences/conf/phone/default.yaml $ROOTFS${sysconfdir}/freesmartphone/opreferences/conf/phone/old_default.yaml
+#fi
+#cp $ROOTFS${sysconfdir}/freesmartphone/opreferences/conf/phone/paroli_default.yaml $ROOTFS${sysconfdir}/freesmartphone/opreferences/conf/phone/default.yaml
+#exit 0
+#}
+
+pkg_postinst_${PN}-theme() {
+#!/bin/sh
+# do this off or on line
+if [ "x$D" != "x" ]; then
+ ROOTFS=${IMAGE_ROOTFS}
+else
+ ROOTFS=""
+fi
+# post installation script
+echo 'E_PROFILE="-profile paroli"' > $ROOTFS${sysconfdir}/enlightenment/default_profile
+exit 0
+}
+
+FILES_${PN} = " \
+ ${sysconfdir}/dbus-1 \
+ ${sysconfdir}/paroli \
+ ${sysconfdir}/freesmartphone/oevents \
+ ${prefix}/lib \
+ ${prefix}/bin \
+ ${datadir}/paroli/applications/common-for-edje \
+ ${datadir}/paroli/applications/inout \
+ ${datadir}/paroli/applications/telephony \
+ ${datadir}/paroli/applications/messages \
+ ${datadir}/paroli/applications/launcher \
+ ${datadir}/paroli/applications/people \
+ ${datadir}/paroli/applications/settings \
+ ${datadir}/applications \
+ ${datadir}/elementary \
+ ${datadir}/paroli/services \
+ ${datadir}/paroli/data \
+ ${datadir}/pixmaps \
+ ${datadir}/icons \
+ ${datadir}/dbus-1/system-services/ \
+ "
+
+FILES_${PN}-theme = " \
+ ${E_CONFIG_DIR}/themes \
+ ${E_CONFIG_DIR}/config \
+ "
+
+FILES_${PN}-autostart = "${E_CONFIG_DIR}/applications"
+
+FILES_${PN}-sounds = " \
+ ${datadir}/sounds/ \
+ ${sysconfdir}/freesmartphone/opreferences/conf/phone/default.yaml \
+ "
+
+FILES_${PN}-calculator = " \
+ ${datadir}/paroli/applications/calculator \
+ "
+
+CONFFILES_${PN} += " \
+ ${sysconfdir}/paroli/paroli.fallback.cfg \
+ ${sysconfdir}/paroli/paroli.pyneo.cfg \
+ ${sysconfdir}/paroli/paroli.fso.cfg \
+ "
+CONFFILES_${PN}-sounds += " \
+ ${sysconfdir}/freesmartphone/opreferences/conf/phone/default.yaml \
+ "
diff --git a/recipes/openmoko-projects/pyefl-sudoku_svn.bb b/recipes/openmoko-projects/pyefl-sudoku_svn.bb
index 0eedc1bf58..ae1a162563 100644
--- a/recipes/openmoko-projects/pyefl-sudoku_svn.bb
+++ b/recipes/openmoko-projects/pyefl-sudoku_svn.bb
@@ -4,7 +4,7 @@ SECTION = "openmoko/applications"
LICENSE = "GPL"
DEPENDS = "python-evas python-edje python-ecore"
RDEPENDS = "python-evas python-edje python-ecore"
-PV = "0.0.2+svnr${SRCREV}"
+PV = "0.0.2+svnr${SRCPV}"
PR = "r2"
SRC_URI = "svn://svn.projects.openmoko.org/svnroot/;module=pyefl-sudoku;proto=http"
diff --git a/recipes/openmoko-system/ompower_svn.bb b/recipes/openmoko-system/ompower_svn.bb
index ff16910901..27065235e6 100644
--- a/recipes/openmoko-system/ompower_svn.bb
+++ b/recipes/openmoko-system/ompower_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Openmoko Power State handling daemon via DBUS"
LICENSE = "MIT BSD"
DEPENDS = "ecore edbus"
-PV = "0.0.0+svnr${SRCREV}"
+PV = "0.0.0+svnr${SRCPV}"
PR = "r3"
RDEPENDS = "initscripts"
diff --git a/recipes/openmoko-tools/app-restarter_svn.bb b/recipes/openmoko-tools/app-restarter_svn.bb
index 61b68b5173..9809d5f88d 100644
--- a/recipes/openmoko-tools/app-restarter_svn.bb
+++ b/recipes/openmoko-tools/app-restarter_svn.bb
@@ -4,7 +4,7 @@ DEPENDS = "virtual/libx11"
SRC_URI="svn://svn.openmoko.org/developers/zecke/;module=app_restarter;proto=http"
S = "${WORKDIR}/app_restarter"
-PV = "1.0+svnr${SRCREV}"
+PV = "1.0+svnr${SRCPV}"
PE = "2"
inherit pkgconfig
diff --git a/recipes/openmoko-tools/openmoko-set-root-password.bb b/recipes/openmoko-tools/openmoko-set-root-password.bb
index 55ed090da2..7ea0de55ce 100644
--- a/recipes/openmoko-tools/openmoko-set-root-password.bb
+++ b/recipes/openmoko-tools/openmoko-set-root-password.bb
@@ -6,7 +6,7 @@ DEPENDS = "gtk+"
SRC_URI = "svn://svn.openmoko.org/developers/zecke/;module=root-password;proto=http"
S = "${WORKDIR}/root-password"
-PV = "1.0+svnr${SRCREV}"
+PV = "1.0+svnr${SRCPV}"
PE = "1"
PR = "r1"
diff --git a/recipes/openmoko-tools/openmoko-toolchain-scripts_svn.bb b/recipes/openmoko-tools/openmoko-toolchain-scripts_svn.bb
index e30d66b58a..7762e61271 100644
--- a/recipes/openmoko-tools/openmoko-toolchain-scripts_svn.bb
+++ b/recipes/openmoko-tools/openmoko-toolchain-scripts_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Convenient scripts to be used with openmoko toolchain."
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PE = "1"
PR = "r1"
diff --git a/recipes/openmoko2/libjana_svn.bb b/recipes/openmoko2/libjana_svn.bb
index 49692b7465..a0b1b9557c 100644
--- a/recipes/openmoko2/libjana_svn.bb
+++ b/recipes/openmoko2/libjana_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "O-Hand Jana Library"
DEPENDS = "libmokojournal2"
DEPENDS = "gtk+ eds-dbus gconf"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r5"
inherit autotools_stage pkgconfig lib_package
diff --git a/recipes/openmoko2/libmokogsmd2_svn.bb b/recipes/openmoko2/libmokogsmd2_svn.bb
index 5625bf809d..fec4d1a3f2 100644
--- a/recipes/openmoko2/libmokogsmd2_svn.bb
+++ b/recipes/openmoko2/libmokogsmd2_svn.bb
@@ -1,6 +1,6 @@
SECTION = "openmoko/libs"
DEPENDS = "libgsmd glib-2.0"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r2"
inherit openmoko2
diff --git a/recipes/openmoko2/libmokojournal2_svn.bb b/recipes/openmoko2/libmokojournal2_svn.bb
index 354b8e3f26..32da95bf93 100644
--- a/recipes/openmoko2/libmokojournal2_svn.bb
+++ b/recipes/openmoko2/libmokojournal2_svn.bb
@@ -1,6 +1,6 @@
SECTION = "openmoko/libs"
DEPENDS = "eds-dbus"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r2"
inherit openmoko2 lib_package
diff --git a/recipes/openmoko2/libmokopanelui2_svn.bb b/recipes/openmoko2/libmokopanelui2_svn.bb
index 0813111821..21a74053d3 100644
--- a/recipes/openmoko2/libmokopanelui2_svn.bb
+++ b/recipes/openmoko2/libmokopanelui2_svn.bb
@@ -1,6 +1,6 @@
SECTION = "openmoko/libs"
DEPENDS = "gtk+ matchbox-panel-2"
-PV = "0.3.0+svnr${SRCREV}"
+PV = "0.3.0+svnr${SRCPV}"
PR = "r0"
inherit openmoko2
diff --git a/recipes/openmoko2/libmokoui2/configure.patch b/recipes/openmoko2/libmokoui2/configure.patch
new file mode 100644
index 0000000000..174c598fe1
--- /dev/null
+++ b/recipes/openmoko2/libmokoui2/configure.patch
@@ -0,0 +1,10 @@
+--- libmokoui.old/configure.ac 2009-06-10 12:42:32.000000000 +0200
++++ libmokoui2/configure.ac 2009-06-10 12:42:43.000000000 +0200
+@@ -28,7 +28,6 @@
+
+ if test $enable_python != no ; then
+ AM_PATH_PYTHON(2.3.5)
+- PKG_CHECK_MODULES(GNOME_PYTHON, gnome-python-2.0 >= 2.10.00)
+ AC_SUBST(PYGDK_CFLAGS)
+ AC_SUBST(PYGDK_LIBS)
+
diff --git a/recipes/openmoko2/libmokoui2/makefile.am.patch b/recipes/openmoko2/libmokoui2/makefile.am.patch
new file mode 100644
index 0000000000..79f0a48361
--- /dev/null
+++ b/recipes/openmoko2/libmokoui2/makefile.am.patch
@@ -0,0 +1,19 @@
+--- libmokoui.old/bindings/python/Makefile.am 2009-06-10 12:42:32.000000000 +0200
++++ libmokoui2/bindings/python/Makefile.am 2009-06-10 12:51:45.000000000 +0200
+@@ -1,13 +1,12 @@
+-
+-PY_DEFS=`pkg-config --variable=defsdir pygtk-2.0`
+-PYTHON_INCLUDES=-I/usr/include/python${PYTHON_VERSION}
++PY_DEFS=${PKG_CONFIG_SYSROOT_DIR}`pkg-config --variable=defsdir pygtk-2.0`
++PYTHON_INCLUDES=-I${PKG_CONFIG_SYSROOT_DIR}/usr/include/python${PYTHON_VERSION}
+
+ CLEANFILES = \
+ mokoui.defs \
+ mokoui.c
+
+ mokoui.defs: ../../libmokoui/moko-finger-scroll.h
+- python /usr/share/pygtk/2.0/codegen/h2def.py ../../libmokoui/moko-finger-scroll.h > mokoui.defs
++ python ${PKG_CONFIG_SYSROOT_DIR}`pkg-config --variable=codegendir pygtk-2.0`/h2def.py ../../libmokoui/moko-finger-scroll.h > mokoui.defs
+
+ mokoui.c: mokoui.defs mokoui.override
+ pygtk-codegen-2.0 --prefix mokoui \
diff --git a/recipes/openmoko2/libmokoui2_svn.bb b/recipes/openmoko2/libmokoui2_svn.bb
index d52b24737f..176f775c8b 100644
--- a/recipes/openmoko2/libmokoui2_svn.bb
+++ b/recipes/openmoko2/libmokoui2_svn.bb
@@ -1,12 +1,19 @@
SECTION = "openmoko/libs"
-DEPENDS = "gtk+"
-PV = "0.1.0+svnr${SRCREV}"
-PR = "r2"
+DEPENDS = "gtk+ python-pygtk"
+
+PV = "0.1.0+svnr${SRCPV}"
+PR = "r5"
inherit openmoko2
+SRC_URI += "\
+ file://configure.patch;patch=1 \
+ file://makefile.am.patch;patch=1 \
+ "
LICENSE = "LGPL"
+EXTRA_OECONF += " --enable-python"
+
do_configure_prepend() {
touch gtk-doc.make
}
@@ -14,4 +21,6 @@ do_configure_prepend() {
do_stage() {
autotools_stage_all
}
-
+FILES_${PN} += "${libdir}/python2.6/site-packages/mokoui.*"
+FILES_${PN}-dbg += "${libdir}/python2.6/site-packages/.debug/"
+FILES_${PN}-dev += "/usr/share/vala/vapi/"
diff --git a/recipes/openmoko2/moko-gtk-engine_svn.bb b/recipes/openmoko2/moko-gtk-engine_svn.bb
index 027b3cb22b..0ac4864f19 100644
--- a/recipes/openmoko2/moko-gtk-engine_svn.bb
+++ b/recipes/openmoko2/moko-gtk-engine_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Moko GTK+ theme engine"
SECTION = "openmoko/libs"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r0"
inherit openmoko2
diff --git a/recipes/openmoko2/neod_svn.bb b/recipes/openmoko2/neod_svn.bb
index 00fc49fdf9..aeeee871b3 100644
--- a/recipes/openmoko2/neod_svn.bb
+++ b/recipes/openmoko2/neod_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Simple Neo1973 Daemon for Button Handling and Power Management"
SECTION = "openmoko/daemons"
DEPENDS = "gtk+ pulseaudio apmd"
RDEPENDS = "gpe-scap xrandr alsa-utils-amixer apm dbus"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r6"
inherit openmoko2 gconf
diff --git a/recipes/openmoko2/openmoko-alsa-scenarios.bb b/recipes/openmoko2/openmoko-alsa-scenarios.bb
index 08531e898e..39a9fcfec0 100644
--- a/recipes/openmoko2/openmoko-alsa-scenarios.bb
+++ b/recipes/openmoko2/openmoko-alsa-scenarios.bb
@@ -1,7 +1,9 @@
DESCRIPTION = "Package for the different scenarios used by Openmoko"
SECTION = "openmoko/base"
-PV = "1.0+svnr${SRCREV}"
-PR = "r1"
+PV = "1.0+svnr${SRCPV}"
+PR = "r2"
+
+PROVIDES = "virtual/alsa-scenarios"
COMPATIBLE_MACHINE = "(om-gta01|om-gta02)"
diff --git a/recipes/openmoko2/openmoko-appearance_svn.bb b/recipes/openmoko2/openmoko-appearance_svn.bb
index a6f5c11171..e277839f0a 100644
--- a/recipes/openmoko2/openmoko-appearance_svn.bb
+++ b/recipes/openmoko2/openmoko-appearance_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "The Openmoko Appearance Editor"
SECTION = "openmoko/pim"
DEPENDS = "libmokoui2 gconf gtk+"
RDEPENDS = "libedata-cal openmoko-today2-folders"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r0"
inherit openmoko2 gtk-icon-cache
diff --git a/recipes/openmoko2/openmoko-appmanager2_svn.bb b/recipes/openmoko2/openmoko-appmanager2_svn.bb
index fe5e227d8f..6ea79a2476 100644
--- a/recipes/openmoko2/openmoko-appmanager2_svn.bb
+++ b/recipes/openmoko2/openmoko-appmanager2_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "The Openmoko Application Manager"
SECTION = "openmoko/applications"
DEPENDS = "libmokoui2 libmokojournal2 startup-notification dbus-glib libice libsm opkg"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r2"
inherit openmoko2
diff --git a/recipes/openmoko2/openmoko-browser2_svn.bb b/recipes/openmoko2/openmoko-browser2_svn.bb
index c6cd49ae87..c1085a0167 100644
--- a/recipes/openmoko2/openmoko-browser2_svn.bb
+++ b/recipes/openmoko2/openmoko-browser2_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Om Webbrowser using webkit."
SECTION = "openmoko/apps"
DEPENDS += "intltool libmokoui2 check webkit-gtk"
-PV = "0.0.1+svnr${SRCREV}"
+PV = "0.0.1+svnr${SRCPV}"
PR = "r2"
inherit openmoko2
diff --git a/recipes/openmoko2/openmoko-calculator2_svn.bb b/recipes/openmoko2/openmoko-calculator2_svn.bb
index 13e6948be9..1719ac5138 100644
--- a/recipes/openmoko2/openmoko-calculator2_svn.bb
+++ b/recipes/openmoko2/openmoko-calculator2_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Legacy Om calculator application."
SECTION = "openmoko/tools"
DEPENDS = "libmokoui2"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r1"
inherit openmoko2
diff --git a/recipes/openmoko2/openmoko-common2_svn.bb b/recipes/openmoko2/openmoko-common2_svn.bb
index 0ea381437c..63ec9825ad 100644
--- a/recipes/openmoko2/openmoko-common2_svn.bb
+++ b/recipes/openmoko2/openmoko-common2_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Common files for the Openmoko framework"
SECTION = "openmoko/base"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r0"
inherit openmoko2
diff --git a/recipes/openmoko2/openmoko-contacts2_svn.bb b/recipes/openmoko2/openmoko-contacts2_svn.bb
index 65e104e09b..407b59b5c2 100644
--- a/recipes/openmoko2/openmoko-contacts2_svn.bb
+++ b/recipes/openmoko2/openmoko-contacts2_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Legacy Om address book application."
SECTION = "openmoko/pim"
DEPENDS = "libmokoui2 libmokojournal2 dbus-glib"
RDEPENDS = "libedata-book"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r6"
inherit openmoko2
diff --git a/recipes/openmoko2/openmoko-dates2_svn.bb b/recipes/openmoko2/openmoko-dates2_svn.bb
index a3da1716b3..5953460a9c 100644
--- a/recipes/openmoko2/openmoko-dates2_svn.bb
+++ b/recipes/openmoko2/openmoko-dates2_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Legacy Om calendar application."
SECTION = "openmoko/pim"
DEPENDS = "libmokoui2 libmokojournal2 gtk+ libglade eds-dbus libjana"
RDEPENDS = "libedata-cal"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r3"
inherit openmoko2 pkgconfig
diff --git a/recipes/openmoko2/openmoko-dialer2_svn.bb b/recipes/openmoko2/openmoko-dialer2_svn.bb
index f7d019c11c..3aad78e2ef 100644
--- a/recipes/openmoko2/openmoko-dialer2_svn.bb
+++ b/recipes/openmoko2/openmoko-dialer2_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Legacy Om dialer."
SECTION = "openmoko/pim"
DEPENDS = "libgsmd libjana libmokoui2 libmokojournal2 pulseaudio libnotify"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r9"
PE = "1"
diff --git a/recipes/openmoko2/openmoko-feedreader2_svn.bb b/recipes/openmoko2/openmoko-feedreader2_svn.bb
index 5fb7dab619..23ada3d255 100644
--- a/recipes/openmoko2/openmoko-feedreader2_svn.bb
+++ b/recipes/openmoko2/openmoko-feedreader2_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "The Openmoko Feed Reader"
SECTION = "openmoko/apps"
DEPENDS += "libmokoui2 libmrss check webkit-gtk"
-PV = "0.0.1+svnr${SRCREV}"
+PV = "0.0.1+svnr${SRCPV}"
PR = "r1"
inherit openmoko2
diff --git a/recipes/openmoko2/openmoko-firststart2_svn.bb b/recipes/openmoko2/openmoko-firststart2_svn.bb
index ce2c181736..a00bd9ed13 100644
--- a/recipes/openmoko2/openmoko-firststart2_svn.bb
+++ b/recipes/openmoko2/openmoko-firststart2_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "The Openmoko First Start Wizard"
SECTION = "openmoko/apps"
DEPENDS += "libmokoui2 libglade"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r0"
inherit openmoko2
diff --git a/recipes/openmoko2/openmoko-icon-theme-standard2-qvga_svn.bb b/recipes/openmoko2/openmoko-icon-theme-standard2-qvga_svn.bb
index e394547fd5..1f75ce905b 100644
--- a/recipes/openmoko2/openmoko-icon-theme-standard2-qvga_svn.bb
+++ b/recipes/openmoko2/openmoko-icon-theme-standard2-qvga_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Standard Gtk+ icon theme for the Openmoko framework, QVGA edition"
SECTION = "openmoko/base"
DEPENDS = "imagemagick-native librsvg-native"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r2"
EXCLUDE_FROM_WORLD = "1"
diff --git a/recipes/openmoko2/openmoko-icon-theme-standard2_svn.bb b/recipes/openmoko2/openmoko-icon-theme-standard2_svn.bb
index e145fb2d98..34c3e3b695 100644
--- a/recipes/openmoko2/openmoko-icon-theme-standard2_svn.bb
+++ b/recipes/openmoko2/openmoko-icon-theme-standard2_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Standard Gtk+ icon theme for the Openmoko framework"
SECTION = "openmoko/base"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r1"
inherit openmoko2
diff --git a/recipes/openmoko2/openmoko-mediaplayer2_svn.bb b/recipes/openmoko2/openmoko-mediaplayer2_svn.bb
index 61928be111..fa81c1c446 100644
--- a/recipes/openmoko2/openmoko-mediaplayer2_svn.bb
+++ b/recipes/openmoko2/openmoko-mediaplayer2_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Om application for playing media files."
SECTION = "openmoko/tools"
DEPENDS = "libmokoui2 expat gstreamer libspiff curl"
RDEPENDS = "gst-meta-audio gconf gst-plugin-alsa"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r6"
inherit openmoko2
diff --git a/recipes/openmoko2/openmoko-messages2_svn.bb b/recipes/openmoko2/openmoko-messages2_svn.bb
index f24a100367..b996b88648 100644
--- a/recipes/openmoko2/openmoko-messages2_svn.bb
+++ b/recipes/openmoko2/openmoko-messages2_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Legacy Om application for sms."
SECTION = "openmoko/pim"
DEPENDS = "libmokogsmd2 libmokoui2 libmokojournal2 libjana"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r2"
inherit openmoko2
diff --git a/recipes/openmoko2/openmoko-sample2_svn.bb b/recipes/openmoko2/openmoko-sample2_svn.bb
index b944e79b45..e2104fd086 100644
--- a/recipes/openmoko2/openmoko-sample2_svn.bb
+++ b/recipes/openmoko2/openmoko-sample2_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "The Openmoko Sample Project"
SECTION = "openmoko/applications"
DEPENDS = "libmokoui2 intltool gconf"
-PV = "0.0.1+svnr${SRCREV}"
+PV = "0.0.1+svnr${SRCPV}"
PR = "r0"
inherit openmoko2
diff --git a/recipes/openmoko2/openmoko-sound-theme-standard2_svn.bb b/recipes/openmoko2/openmoko-sound-theme-standard2_svn.bb
index 3096da4813..4a3d8c600f 100644
--- a/recipes/openmoko2/openmoko-sound-theme-standard2_svn.bb
+++ b/recipes/openmoko2/openmoko-sound-theme-standard2_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Standard sound theme for the Openmoko framework"
SECTION = "openmoko/base"
RREPLACES = "openmoko-sound-theme-standard"
RPROVIDES = "openmoko-sound-theme-standard"
-PV = "0.1+svnr${SRCREV}"
+PV = "0.1+svnr${SRCPV}"
PR = "r3"
inherit openmoko2 autotools
diff --git a/recipes/openmoko2/openmoko-tasks2_svn.bb b/recipes/openmoko2/openmoko-tasks2_svn.bb
index b18c269814..0ad5b601e7 100644
--- a/recipes/openmoko2/openmoko-tasks2_svn.bb
+++ b/recipes/openmoko2/openmoko-tasks2_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "The Openmoko Agenda"
SECTION = "openmoko/pim"
DEPENDS = "dbus-glib eds-dbus libmokoui2"
RDEPENDS = "libedata-cal"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r1"
inherit openmoko2
diff --git a/recipes/openmoko2/openmoko-theme-standard2-qvga_svn.bb b/recipes/openmoko2/openmoko-theme-standard2-qvga_svn.bb
index 4a41079059..39ced428ea 100644
--- a/recipes/openmoko2/openmoko-theme-standard2-qvga_svn.bb
+++ b/recipes/openmoko2/openmoko-theme-standard2-qvga_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Standard Gtk+ theme for the Openmoko framework, QVGA edition"
SECTION = "openmoko/base"
RCONFLICTS = "openmoko-theme-standard"
RPROVIDES = "openmoko-theme-standard-2"
-PV = "0.1.1+svnr${SRCREV}"
+PV = "0.1.1+svnr${SRCPV}"
PR = "r1"
inherit openmoko2
diff --git a/recipes/openmoko2/openmoko-theme-standard2_svn.bb b/recipes/openmoko2/openmoko-theme-standard2_svn.bb
index d4d23d11d6..091391474d 100644
--- a/recipes/openmoko2/openmoko-theme-standard2_svn.bb
+++ b/recipes/openmoko2/openmoko-theme-standard2_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Standard Gtk+ theme for the Openmoko framework"
SECTION = "openmoko/base"
RCONFLICTS = "openmoko-theme-standard"
-PV = "0.1.1+svnr${SRCREV}"
+PV = "0.1.1+svnr${SRCPV}"
PR = "r5"
inherit openmoko2
diff --git a/recipes/openmoko2/openmoko-today2-folders_svn.bb b/recipes/openmoko2/openmoko-today2-folders_svn.bb
index 4b9f245c3c..3137012a97 100644
--- a/recipes/openmoko2/openmoko-today2-folders_svn.bb
+++ b/recipes/openmoko2/openmoko-today2-folders_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "The Openmoko Today2 vfolder files"
SECTION = "openmoko/misc"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r3"
RCONFLICTS_${PN} = "matchbox-common"
diff --git a/recipes/openmoko2/openmoko-today2_svn.bb b/recipes/openmoko2/openmoko-today2_svn.bb
index efd281a95e..3466659540 100644
--- a/recipes/openmoko2/openmoko-today2_svn.bb
+++ b/recipes/openmoko2/openmoko-today2_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "The Openmoko Application Launcher"
SECTION = "openmoko/pim"
DEPENDS = "libmokoui2 libmokojournal2 libjana startup-notification dbus-glib libice libsm"
RDEPENDS = "libedata-cal openmoko-today2-folders"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r2"
inherit openmoko2 gtk-icon-cache
diff --git a/recipes/openmoko2/openmoko-worldclock2_svn.bb b/recipes/openmoko2/openmoko-worldclock2_svn.bb
index 5b3956ee23..186dce72fa 100644
--- a/recipes/openmoko2/openmoko-worldclock2_svn.bb
+++ b/recipes/openmoko2/openmoko-worldclock2_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "A World-Clock for Openmoko"
SECTION = "openmoko/tools"
DEPENDS = "libmokoui2 libjana"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
inherit openmoko2
diff --git a/recipes/openmoocow/openmoocow/openmoocow.desktop b/recipes/openmoocow/openmoocow/openmoocow.desktop
new file mode 100644
index 0000000000..e819c48ba4
--- /dev/null
+++ b/recipes/openmoocow/openmoocow/openmoocow.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=MooCow
+Comment=Moobox simulator
+Type=Application
+Exec=openmoocow
+Terminal=false
+Categories=Games;
+Icon=openmoocow/icon.png
+X-MB-SingleInstance=true
+
diff --git a/recipes/openmoocow/openmoocow_git.bb b/recipes/openmoocow/openmoocow_git.bb
new file mode 100644
index 0000000000..ab53313a3f
--- /dev/null
+++ b/recipes/openmoocow/openmoocow_git.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "OpenMooCow makes your phone (nearly) become a cow!"
+HOMEPAGE = "http://www.srcf.ucam.org/~taw27/openmoko/openmoocow/"
+AUTHOR = "Thomas White"
+LICENSE = "GPLv3"
+SECTION = "applications/games"
+PV = "0.0.3+gitr${SRCREV}"
+PR = "r1"
+
+SRC_URI = "git://git.bitwiz.org.uk/openmoocow.git;protocol=git;branch=master"
+S = "${WORKDIR}/git"
+inherit autotools
+
+
diff --git a/recipes/openobex/obex-data-server_0.4.4.bb b/recipes/openobex/obex-data-server_0.4.4.bb
index 34efcc738a..555f6df91f 100644
--- a/recipes/openobex/obex-data-server_0.4.4.bb
+++ b/recipes/openobex/obex-data-server_0.4.4.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "obex-data-server is a D-Bus service providing high-level OBEX client and server side functionality"
LICENSE = "GPLv2"
-DEPENDS = "bluez4 dbus-glib openobex"
+DEPENDS = "gtk+ bluez4 dbus-glib openobex"
SRC_URI = "http://tadas.dailyda.com/software/obex-data-server-${PV}.tar.gz"
diff --git a/recipes/openocd/openocd_svn.bb b/recipes/openocd/openocd_svn.bb
index 6823eabb98..11f5e77edb 100644
--- a/recipes/openocd/openocd_svn.bb
+++ b/recipes/openocd/openocd_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testing"
HOMEPAGE = "http://openocd.berlios.de/"
LICENSE = "GPL"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR = "r3"
inherit autotools
diff --git a/recipes/openscada/openscada_svn.bb b/recipes/openscada/openscada_svn.bb
index acb700c0d1..dd75e80d1f 100644
--- a/recipes/openscada/openscada_svn.bb
+++ b/recipes/openscada/openscada_svn.bb
@@ -11,8 +11,7 @@ SRC_URI = "svn://oscada.org.ua/trunk;module=OpenSCADA;rev=;proto=svn \
file://rcc-moc.patch;patch=1 \
"
-PV = "0.6.4"
-PR = "svn"
+PV = "0.6.4+svnr${SRCPV}"
S = "${WORKDIR}/OpenSCADA"
diff --git a/recipes/openssl/openssl-native_0.9.8j.bb b/recipes/openssl/openssl-native_0.9.8j.bb
index 976a4d7835..eba3ba9903 100644
--- a/recipes/openssl/openssl-native_0.9.8j.bb
+++ b/recipes/openssl/openssl-native_0.9.8j.bb
@@ -2,7 +2,7 @@ inherit pkgconfig native
require openssl.inc
-PR = "${INC_PR}.0"
+PR = "${INC_PR}.1"
# This flag can contain target options (e.g -mfpu=neon for armv7-a systems)
export FULL_OPTIMIZATION = " "
@@ -14,6 +14,8 @@ SRC_URI += "file://configure-targets.patch;patch=1 \
PARALLEL_MAKE = ""
+CFLAG += " -Wa,--noexecstack "
+
do_install() {
:
}
diff --git a/recipes/opensync/libsyncml_0.5.4.bb b/recipes/opensync/libsyncml_0.5.4.bb
new file mode 100644
index 0000000000..cf5c5b9135
--- /dev/null
+++ b/recipes/opensync/libsyncml_0.5.4.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "Libsyncml is an implementation of the SyncML protocol."
+HOMEPAGE = "https://libsyncml.opensync.org/"
+SECTION = "libs"
+PRIORITY = "optional"
+LICENSE = "LGPL"
+
+DEPENDS = "libxml2 glib-2.0"
+RRECOMMENDS = "wbxml2 openobex libsoup"
+
+PR = "r0"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/libsyncml/libsyncml-${PV}.tar.gz \
+ "
+
+inherit cmake pkgconfig
+
+EXTRA_OECMAKE += " . -B${WORKDIR}/build "
+
+PACKAGES += "${PN}-tools"
+
+FILES_${PN}-tools = "${bindir}"
+FILES_${PN} = "${libdir}/*.so.*"
+
+do_build_prepend() {
+ cd ${WORKDIR}/build
+}
+
+do_install_prepend() {
+ cd ${WORKDIR}/build
+} \ No newline at end of file
diff --git a/recipes/opensync/wbxml2_0.10.7.bb b/recipes/opensync/wbxml2_0.10.7.bb
new file mode 100644
index 0000000000..77d819a423
--- /dev/null
+++ b/recipes/opensync/wbxml2_0.10.7.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "WBXML parsing and encoding library."
+HOMEPAGE = "http://libwbxml.opensync.org/"
+SECTION = "libs"
+PRIORITY = "optional"
+LICENSE = "LGPL"
+
+PR = "r0"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/libwbxml/libwbxml-${PV}.tar.gz \
+ "
+
+S = "${WORKDIR}/libwbxml-${PV}"
+
+inherit cmake pkgconfig
+
+EXTRA_OECMAKE += " . -B${WORKDIR}/build "
+
+PACKAGES += "${PN}-tools"
+
+FILES_${PN}-tools = "${bindir}"
+FILES_${PN} = "${libdir}/*.so.*"
+
+do_build_prepend() {
+ cd ${WORKDIR}/build
+}
+
+do_install_prepend() {
+ cd ${WORKDIR}/build
+}
diff --git a/recipes/openttd/files/openttd.cfg b/recipes/openttd/files/openttd.cfg
new file mode 100644
index 0000000000..614ce1e539
--- /dev/null
+++ b/recipes/openttd/files/openttd.cfg
@@ -0,0 +1,4 @@
+[misc]
+resolution = 480,640
+[gui]
+left_mouse_btn_scrolling = true \ No newline at end of file
diff --git a/recipes/openttd/openttd-gfx_0.1.1.bb b/recipes/openttd/openttd-gfx_0.1.1.bb
new file mode 100644
index 0000000000..f791a8835e
--- /dev/null
+++ b/recipes/openttd/openttd-gfx_0.1.1.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "Grafik files for openttd"
+HOMEPAGE = "http://bundles.openttdcoop.org/opengfx/"
+LICENSE = "GPLv2"
+
+PACKAGE_ARCH = "all"
+
+SRC_URI = "http://bundles.openttdcoop.org/download.php?file=opengfx%2Freleases%2Fopengfx-${PV}.zip"
+
+do_install() {
+ mv ${WORKDIR}/docs/license.txt ${WORKDIR}/gfx_license.txt
+ install -d ${D}${datadir}/games/openttd/data/
+ install -m 0644 ${WORKDIR}/opengfx-${PV}.tar ${D}${datadir}/games/openttd/data/
+ install -m 0644 ${WORKDIR}/gfx_license.txt ${D}${datadir}/games/openttd/data/
+}
+
+FILES_${PN} = "${datadir}"
diff --git a/recipes/openttd/openttd-sfx_0.1.0.bb b/recipes/openttd/openttd-sfx_0.1.0.bb
new file mode 100644
index 0000000000..05dd021372
--- /dev/null
+++ b/recipes/openttd/openttd-sfx_0.1.0.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "Sound files for openttd"
+HOMEPAGE = "http://bundles.openttdcoop.org/opensfx/"
+LICENSE = "CC Sampling Plus 1.0"
+
+PACKAGE_ARCH = "all"
+
+SRC_URI = "http://bundles.openttdcoop.org/download.php?file=opensfx%2Freleases%2Fopensfx-${PV}.zip"
+
+do_install() {
+ mv ${WORKDIR}/license.txt ${WORKDIR}/sfx_license.txt
+ install -d ${D}${datadir}/games/openttd/data/
+ install -m 0644 ${WORKDIR}/opensfx-${PV}.tar ${D}${datadir}/games/openttd/data/
+ install -m 0644 ${WORKDIR}/sfx_license.txt ${D}${datadir}/games/openttd/data/
+}
+
+FILES_${PN} = "${datadir}"
diff --git a/recipes/openttd/openttd_0.7.4.bb b/recipes/openttd/openttd_0.7.4.bb
new file mode 100644
index 0000000000..1887e06cbe
--- /dev/null
+++ b/recipes/openttd/openttd_0.7.4.bb
@@ -0,0 +1,49 @@
+DESCRIPTION = "Open source clone of the Microprose game 'Transport Tycoon Deluxe' - SDL edition."
+HOMEPAGE = "http://www.openttd.org"
+LICENSE = "GPLv2"
+DEPENDS = "libsdl-net libpng zlib freetype fontconfig"
+RRECOMMENDS = "openttd-gfx openttd-sfx"
+
+inherit siteinfo sdl
+
+SRC_URI ="http://binaries.openttd.org/releases/${PV}/${P}-source.tar.bz2 "
+SRC_URI_append_shr = " file://openttd.cfg"
+
+APPIMAGE = "media/openttd.128.png"
+
+do_configure() {
+ # The way the OTTD configure system handles the application's directories
+ # isn't the way autotools does it. Mainly prefix is always prepended even if
+ # absolute binary-dir and data-dir is given.
+
+ ${S}/configure \
+ --host=${TARGET_SYS} \
+ --windres=${MACHINE_DISPLAY_WIDTH_PIXELS}x${MACHINE_DISPLAY_HEIGHT_PIXELS} \
+ --os=UNIX \
+ --endian=${SITEINFO_ENDIANESS} \
+ --prefix-dir=${prefix} \
+ --binary-dir=bin \
+ --with-midi=/bin/true \
+ --with-zlib=${STAGING_LIBDIR} \
+ --with-png \
+ --with-freetype \
+ --without-icu \
+ --without-allegro \
+ --cc-build=gcc \
+ --cc-host=${TARGET_SYS}-gcc \
+ --cxx-build=g++ \
+ --cxx-host=${TARGET_SYS}-g++ \
+ --strip=${TARGET_SYS}-strip \
+ --install-dir=${D}
+}
+
+do_install() {
+ oe_runmake install
+}
+
+do_install_append_shr() {
+ install -d ${D}${datadir}/games/openttd/data/
+ install -m 0644 ${WORKDIR}/openttd.cfg ${D}${datadir}/games/openttd/data/
+}
+
+FILES_${PN} += "${datadir}"
diff --git a/recipes/opie-networksettings/files/wireless.patch b/recipes/opie-networksettings/files/wireless.patch
index 5d8d42af58..001a310ed4 100644
--- a/recipes/opie-networksettings/files/wireless.patch
+++ b/recipes/opie-networksettings/files/wireless.patch
@@ -1,13 +1,11 @@
-diff --git a/wlan/wextensions.h b/wlan/wextensions.h
-index a89e33a..356aada 100644
---- a/wlan/wextensions.h
-+++ b/wlan/wextensions.h
-@@ -4,6 +4,8 @@
+--- a/wlan/wextensions.h 2009-11-22 00:29:50.000000000 +0100
++++ b/wlan/wextensions.h 2009-11-07 00:53:29.000000000 +0100
+@@ -3,7 +3,7 @@
+
#include <qstring.h>
+-#include <net/if.h>
++//#include <net/if.h>
#include <netinet/ip.h>
-+#include <linux/if.h>
-+#include <linux/types.h>
+ #include <linux/types.h>
#include <linux/wireless.h>
-
- class WExtensions {
diff --git a/recipes/opie-networksettings/opie-networksettings.inc b/recipes/opie-networksettings/opie-networksettings.inc
index e84f9da144..8bda9f0b59 100644
--- a/recipes/opie-networksettings/opie-networksettings.inc
+++ b/recipes/opie-networksettings/opie-networksettings.inc
@@ -5,6 +5,8 @@ LICENSE = "GPL"
PROVIDES = "opie-networksettings-pppplugin opie-networksettings-wlanplugin"
APPNAME = "networksettings"
+SRC_URI_append = " file://wireless.patch;patch=1"
+
S = "${WORKDIR}/${APPNAME}"
inherit opie
diff --git a/recipes/opkg/opkg-native_svn.bb b/recipes/opkg/opkg-native_svn.bb
index 60254eaa27..1de472e156 100644
--- a/recipes/opkg/opkg-native_svn.bb
+++ b/recipes/opkg/opkg-native_svn.bb
@@ -3,7 +3,7 @@ require opkg.inc
DEPENDS = "curl-native"
PR = "${INC_PR}"
-SRC_URI += "file://opkg-libdir.patch;patch=1"
+SRC_URI += "file://opkg-libdir.patch;patch=1;maxrev=342"
target_libdir := "${libdir}"
diff --git a/recipes/opkg/opkg-nogpg-nocurl_svn.bb b/recipes/opkg/opkg-nogpg-nocurl_svn.bb
index 5e1caa90d9..cd8751ae87 100644
--- a/recipes/opkg/opkg-nogpg-nocurl_svn.bb
+++ b/recipes/opkg/opkg-nogpg-nocurl_svn.bb
@@ -1,24 +1,13 @@
-require opkg_svn.bb
+require opkg-nogpg_svn.bb
DEPENDS = ""
PROVIDES += "opkg"
-SRC_URI += " \
- file://opkg_wget.patch;patch=1;maxrev=180 \
- file://reduce-nogpg-noise.patch;patch=1;maxrev=180 \
- file://opkg_wget_nogpg_01_use_vfork_gunzip.patch;patch=1 \
- file://opkg_wget_nogpg_02_use_vfork_system.patch;patch=1 \
- file://opkg_wget_nogpg_03_fix_tmpdirs.patch;patch=1 \
- file://opkg_wget_nogpg_04_default_tmpdir.patch;patch=1 \
- "
PR = "${INC_PR}"
SRCREV = "${SRCREV_pn-opkg}"
-EXTRA_OECONF += "--disable-gpg --enable-static --disable-shared"
-
-# NOTE: Use this one after svn rev 180 (should be a different recipe)
-#EXTRA_OECONF += "--disable-gpg --disable-curl --enable-static --disable-shared"
+EXTRA_OECONF += " --disable-curl --enable-static --disable-shared"
# The nogpg version isn't getting much love and has an unused variable which trips up -Werror
do_configure_prepend() {
diff --git a/recipes/opkg/opkg-nogpg_svn.bb b/recipes/opkg/opkg-nogpg_svn.bb
index a0f9614a37..33d9987463 100644
--- a/recipes/opkg/opkg-nogpg_svn.bb
+++ b/recipes/opkg/opkg-nogpg_svn.bb
@@ -3,15 +3,25 @@ require opkg_svn.bb
DEPENDS = "curl"
PROVIDES += "opkg"
-PR = "${INC_PR}"
+PR = "${INC_PR}.1"
SRCREV = "${SRCREV_pn-opkg}"
-EXTRA_OECONF += "--disable-gpg"
+EXTRA_OECONF += " --disable-gpg \
+ --disable-openssl \
+ --disable-ssl-curl \
+ --enable-gpg=no \
+ --enable-ssl-curl=no \
+ --enable-openssl=no"
+
+LDFLAGS_append = " -Wl,--as-needed"
# The nogpg version isn't getting much love and has an unused variable which trips up -Werror
do_configure_prepend() {
sed -i -e s:-Werror::g ${S}/libopkg/Makefile.am
}
+do_configure_prepend_nylon() {
+ LDFLAGS="`echo "$LDFLAGS" | sed "s/ -Wl,--as-needed//"`"
+}
DEFAULT_PREFERENCE = "-1"
diff --git a/recipes/opkg/opkg.inc b/recipes/opkg/opkg.inc
index aa91955c3a..c973174787 100644
--- a/recipes/opkg/opkg.inc
+++ b/recipes/opkg/opkg.inc
@@ -3,15 +3,15 @@ DESCRIPTION_libopkg = "Opkg Package Manager Library"
SECTION = "base"
LICENSE = "GPL"
DEPENDS = "curl gpgme"
-PV = "0.1.6+svnr${SRCREV}"
+PV = "0.1.6+svnr${SRCPV}"
INC_PR = "r16"
FILESPATHPKG =. "opkg:"
SRC_URI = "svn://opkg.googlecode.com/svn;module=trunk;proto=http \
file://opkg_unarchive.patch;patch=1;maxrev=201 \
- file://opkg-intercept-cleanup.patch;patch=1 \
- file://isatty.patch;patch=1"
+ file://opkg-intercept-cleanup.patch;patch=1;maxrev=241 \
+"
SRC_URI += "file://configure"
@@ -24,6 +24,3 @@ do_install_prepend() {
install -m 0755 ${WORKDIR}/configure ${D}${sysconfdir}/rcS.d/S98configure
}
-do_stage() {
- autotools_stage_all
-}
diff --git a/recipes/opkg/opkg_svn.bb b/recipes/opkg/opkg_svn.bb
index 676a8cb499..57b2774b65 100644
--- a/recipes/opkg/opkg_svn.bb
+++ b/recipes/opkg/opkg_svn.bb
@@ -1,5 +1,7 @@
require opkg.inc
+DEPENDS_append = " openssl"
+
PR = "${INC_PR}"
PACKAGES =+ "libopkg-dev libopkg"
diff --git a/recipes/oprofile/oprofileui-svn.inc b/recipes/oprofile/oprofileui-svn.inc
index 6d111d1d59..c2746434a3 100644
--- a/recipes/oprofile/oprofileui-svn.inc
+++ b/recipes/oprofile/oprofileui-svn.inc
@@ -1,6 +1,6 @@
require oprofileui.inc
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR = "r1"
S = "${WORKDIR}/trunk"
diff --git a/recipes/orrery/orrery/Makefile.am.patch b/recipes/orrery/orrery/Makefile.am.patch
new file mode 100644
index 0000000000..23e7798139
--- /dev/null
+++ b/recipes/orrery/orrery/Makefile.am.patch
@@ -0,0 +1,67 @@
+Nur in files: aclocal.m4.
+Nur in files.fixed: autogen.sh.
+Nur in files: autom4te.cache.
+Nur in files: configure.
+diff -uri files/configure.in files.fixed/configure.in
+--- files/configure.in 2008-08-17 05:32:06.000000000 +0200
++++ files.fixed/configure.in 2009-02-18 16:01:30.102497178 +0100
+@@ -2,4 +2,13 @@
+ AM_INIT_AUTOMAKE(orrery,1.1)
+ AC_PROG_CC
+ AC_PROG_INSTALL
++
++PKG_CHECK_MODULES(GTK, gtk+-x11-2.0 gthread-2.0)
++PKG_CHECK_MODULES(X11, x11 xext xau xcursor xfixes xdmcp xrender)
++
++AC_SUBST(GTK_CFLAGS)
++AC_SUBST(GTK_LIBS)
++AC_SUBST(X11_CFLAGS)
++AC_SUBST(X11_LIBS)
++
+ AC_OUTPUT(Makefile)
+Nur in files: depcomp.
+Nur in files: install-sh.
+diff -uri files/Makefile.am files.fixed/Makefile.am
+--- files/Makefile.am 2008-09-03 08:54:55.000000000 +0200
++++ files.fixed/Makefile.am 2009-02-18 16:14:19.574262603 +0100
+@@ -1,36 +1,4 @@
+-CFLAGS = -g -O3 -Wall
+-CC = $(OM)/build/tmp/cross/arm-angstrom-linux-gnueabi/bin/gcc
+-INCLUDES = -I$(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/include/gtk-2.0/ \
+- -I$(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/include/cairo/ \
+- -I$(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/include/glib-2.0/ \
+- -I$(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/include/pango-1.0/ \
+- -I$(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/gtk-2.0/include \
+- -I$(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/include/atk-1.0/
+-LDADD = $(OM)/build/tmp/rootfs/usr/lib/libgobject-2.0.so.0 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libpangocairo-1.0.so.0 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libpango-1.0.so.0 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libcairo.so.2 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libgmodule-2.0.so.0 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libglib-2.0.so.0 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libfontconfig.so.1 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libXext.so.6 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libXrender.so.1 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libpopt.so.0 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libgthread-2.0.so.0 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libX11.so.6 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libXcursor.so.1 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libXfixes.so.3 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libgdk_pixbuf-2.0.so.0 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libpangoft2-1.0.so.0 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libz.so.1 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libpng12.so.0 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libfreetype.so.6 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libexpat.so.1 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libXau.so.6 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libXdmcp.so.6 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libgtk-x11-2.0.so.0 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libatk-1.0.so.0 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libgcrypt.so.11.2.2 \
+- $(OM)/build/tmp/staging/arm-angstrom-linux-gnueabi/lib/libgpg-error.so.0.3.0
+ bin_PROGRAMS = orrery
+ orrery_SOURCES = planetInfo.c orrery.c
++orrery_CFLAGS = -g -O3 -Wall @GTK_CFLAGS@ @X11_CFLAGS@
++orrery_LDADD = @GTK_LIBS@ @X11_LIBS@ -lpopt -lz -lexpat -lgcrypt -lgpg-error
+Nur in files: Makefile.in.
+Nur in files: missing.
diff --git a/recipes/orrery/orrery/datadir.patch b/recipes/orrery/orrery/datadir.patch
new file mode 100644
index 0000000000..7a3c204ad9
--- /dev/null
+++ b/recipes/orrery/orrery/datadir.patch
@@ -0,0 +1,12 @@
+diff -uri files/orrery.c files.datadir/orrery.c
+--- files/orrery.c 2009-01-07 11:28:32.000000000 +0100
++++ files.datadir/orrery.c 2009-02-18 19:08:44.887262837 +0100
+@@ -70,7 +70,7 @@
+
+ #define FULL_CIRCLE (23040) /* Full circle in calls to draw_arc */
+
+-#define DATA_DIR "/media/card/orrery"
++#define DATA_DIR "/usr/share/orrery"
+ #define N_PLANETS (9)
+ #define N_SOLAR_SYSTEM_OBJECTS (10)
+
diff --git a/recipes/orrery/orrery_2.4.bb b/recipes/orrery/orrery_2.4.bb
new file mode 100644
index 0000000000..dc5622946e
--- /dev/null
+++ b/recipes/orrery/orrery_2.4.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "orrery"
+SECTION = "x11/scientific"
+PV = "2.4"
+
+inherit autotools
+
+SRC_URI = "http://projects.openmoko.org/frs/download.php/581/orrery_2.4_clean.tar.gz \
+ file://datadir.patch;patch=1 \
+ file://Makefile.am.patch;patch=1"
+S = "${WORKDIR}/files"
+
+do_install_append() {
+ install -d ${D}${datadir}/applications
+ install -m 0644 ${S}/orrery.desktop ${D}${datadir}/applications
+ install -d ${D}${datadir}/orrery
+ cp -a ${S}/data/* ${D}${datadir}/orrery
+ rm ${D}${datadir}/orrery/icons/orrery.png
+ install -d ${D}${datadir}/icons
+ install ${S}/data/icons/orrery.png ${D}${datadir}/icons
+}
+
+FILES_${PN} += "\
+ ${datadir}/applications/orrery.desktop \
+ ${datadir}/orrery \
+ ${datadir}/icons"
+
diff --git a/recipes/owfs/owfs_2.7p24.bb b/recipes/owfs/owfs_2.7p24.bb
index 44fc878d7b..0cfc36f4b5 100644
--- a/recipes/owfs/owfs_2.7p24.bb
+++ b/recipes/owfs/owfs_2.7p24.bb
@@ -5,6 +5,8 @@ PRIORITY = "optional"
LICENSE = "GPLv2"
DEPENDS += "fuse virtual/libusb0"
+PR = "r1"
+
SRC_URI = "${SOURCEFORGE_MIRROR}/owfs/owfs-${PV}.tar.gz \
file://owhttpd \
file://owserver "
@@ -15,6 +17,7 @@ EXTRA_OECONF = " \
--enable-owhttpd \
--enable-cache \
--enable-mt \
+ --disable-swig \
"
do_install_prepend() {
diff --git a/recipes/pam/libpam-1.1.0/disable_modules_uclibc.patch b/recipes/pam/libpam-1.1.0/disable_modules_uclibc.patch
new file mode 100644
index 0000000000..14cc60aacd
--- /dev/null
+++ b/recipes/pam/libpam-1.1.0/disable_modules_uclibc.patch
@@ -0,0 +1,16 @@
+Index: Linux-PAM-1.1.0/modules/Makefile.am
+===================================================================
+--- Linux-PAM-1.1.0.orig/modules/Makefile.am 2008-11-28 15:29:12.000000000 +0100
++++ Linux-PAM-1.1.0/modules/Makefile.am 2009-11-24 22:28:13.248314306 +0100
+@@ -7,9 +7,9 @@
+ pam_group pam_issue pam_keyinit pam_lastlog pam_limits \
+ pam_listfile pam_localuser pam_loginuid pam_mail \
+ pam_mkhomedir pam_motd pam_namespace pam_nologin \
+- pam_permit pam_pwhistory pam_rhosts pam_rootok pam_securetty \
++ pam_permit pam_rhosts pam_rootok pam_securetty \
+ pam_selinux pam_sepermit pam_shells pam_stress \
+- pam_succeed_if pam_tally pam_tally2 pam_time pam_timestamp \
++ pam_succeed_if pam_tally pam_tally2 pam_time \
+ pam_tty_audit pam_umask \
+ pam_unix pam_userdb pam_warn pam_wheel pam_xauth
+
diff --git a/recipes/pam/libpam-1.1.0/fix_disabled_nls.patch b/recipes/pam/libpam-1.1.0/fix_disabled_nls.patch
new file mode 100644
index 0000000000..6c51752e21
--- /dev/null
+++ b/recipes/pam/libpam-1.1.0/fix_disabled_nls.patch
@@ -0,0 +1,13 @@
+Index: Linux-PAM-1.1.0/modules/pam_lastlog/pam_lastlog.c
+===================================================================
+--- Linux-PAM-1.1.0.orig/modules/pam_lastlog/pam_lastlog.c 2009-11-24 21:47:00.208561627 +0100
++++ Linux-PAM-1.1.0/modules/pam_lastlog/pam_lastlog.c 2009-11-24 21:47:27.385225592 +0100
+@@ -471,7 +471,7 @@
+ failed),
+ failed);
+ #else
+- if (daysleft == 1)
++ if (failed == 1)
+ retval = asprintf(&line,
+ _("There was %d failed login attempt since the last successful login."),
+ failed);
diff --git a/recipes/pam/libpam-1.1.0/pam-disable-nis-on-uclibc.patch b/recipes/pam/libpam-1.1.0/pam-disable-nis-on-uclibc.patch
new file mode 100644
index 0000000000..258166cc52
--- /dev/null
+++ b/recipes/pam/libpam-1.1.0/pam-disable-nis-on-uclibc.patch
@@ -0,0 +1,251 @@
+Index: Linux-PAM-1.0.2/Makefile.in
+===================================================================
+--- Linux-PAM-1.0.2.orig/Makefile.in 2008-08-29 01:14:12.000000000 -0700
++++ Linux-PAM-1.0.2/Makefile.in 2009-09-04 01:06:22.571466501 -0700
+@@ -71,8 +71,7 @@
+ distclean-recursive maintainer-clean-recursive
+ ETAGS = etags
+ CTAGS = ctags
+-DIST_SUBDIRS = libpam tests libpamc libpam_misc modules po conf doc \
+- examples xtests
++DIST_SUBDIRS = libpam libpamc libpam_misc modules po conf
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ distdir = $(PACKAGE)-$(VERSION)
+ top_distdir = $(distdir)
+@@ -244,8 +243,8 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ AUTOMAKE_OPTIONS = 1.9 gnu dist-bzip2 check-news
+-@STATIC_MODULES_FALSE@SUBDIRS = libpam tests libpamc libpam_misc modules po conf doc examples xtests
+-@STATIC_MODULES_TRUE@SUBDIRS = modules libpam libpamc libpam_misc tests po conf doc examples xtests
++@STATIC_MODULES_FALSE@SUBDIRS = libpam libpamc libpam_misc modules po conf
++@STATIC_MODULES_TRUE@SUBDIRS = modules libpam libpamc libpam_misc po conf
+ CLEANFILES = *~
+ M4_FILES = m4/codeset.m4 m4/gettext.m4 m4/glibc21.m4 m4/glibc2.m4 \
+ m4/iconv.m4 m4/intdiv0.m4 m4/intmax.m4 m4/inttypes_h.m4 \
+Index: Linux-PAM-1.0.2/modules/pam_access/pam_access.c
+===================================================================
+--- Linux-PAM-1.0.2.orig/modules/pam_access/pam_access.c 2007-12-07 07:40:01.000000000 -0800
++++ Linux-PAM-1.0.2/modules/pam_access/pam_access.c 2009-09-04 01:06:22.575455835 -0700
+@@ -41,7 +41,11 @@
+ #include <errno.h>
+ #include <ctype.h>
+ #include <sys/utsname.h>
++
++#ifdef NIS
+ #include <rpcsvc/ypclnt.h>
++#endif
++
+ #include <arpa/inet.h>
+ #include <netdb.h>
+ #include <sys/socket.h>
+@@ -479,8 +483,9 @@
+ char *mydomain = NULL;
+ int retval;
+
++#ifdef NIS
+ yp_get_default_domain(&mydomain);
+-
++#endif
+
+ retval = innetgr (netgroup, machine, user, mydomain);
+ if (debug == YES)
+Index: Linux-PAM-1.0.2/modules/pam_unix/Makefile.am
+===================================================================
+--- Linux-PAM-1.0.2.orig/modules/pam_unix/Makefile.am 2008-02-29 07:22:03.000000000 -0800
++++ Linux-PAM-1.0.2/modules/pam_unix/Makefile.am 2009-09-04 01:09:46.519457167 -0700
+@@ -32,7 +32,7 @@
+
+ securelib_LTLIBRARIES = pam_unix.la
+
+-noinst_HEADERS = md5.h support.h yppasswd.h bigcrypt.h passverify.h
++noinst_HEADERS = md5.h support.h bigcrypt.h passverify.h
+
+ sbin_PROGRAMS = unix_chkpwd unix_update
+
+@@ -40,7 +40,7 @@
+
+ pam_unix_la_SOURCES = bigcrypt.c pam_unix_acct.c \
+ pam_unix_auth.c pam_unix_passwd.c pam_unix_sess.c support.c \
+- passverify.c yppasswd_xdr.c md5_good.c md5_broken.c
++ passverify.c md5_good.c md5_broken.c
+
+ bigcrypt_SOURCES = bigcrypt.c bigcrypt_main.c
+ bigcrypt_CFLAGS = $(AM_CFLAGS)
+Index: Linux-PAM-1.0.2/modules/pam_unix/Makefile.in
+===================================================================
+--- Linux-PAM-1.0.2.orig/modules/pam_unix/Makefile.in 2008-08-29 01:14:10.000000000 -0700
++++ Linux-PAM-1.0.2/modules/pam_unix/Makefile.in 2009-09-04 01:13:42.939510044 -0700
+@@ -74,7 +74,7 @@
+ pam_unix_la_DEPENDENCIES =
+ am_pam_unix_la_OBJECTS = bigcrypt.lo pam_unix_acct.lo pam_unix_auth.lo \
+ pam_unix_passwd.lo pam_unix_sess.lo support.lo passverify.lo \
+- yppasswd_xdr.lo md5_good.lo md5_broken.lo
++ md5_good.lo md5_broken.lo
+ pam_unix_la_OBJECTS = $(am_pam_unix_la_OBJECTS)
+ pam_unix_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+@@ -310,10 +310,10 @@
+ @LIBCRYPT@ @LIBSELINUX@
+
+ securelib_LTLIBRARIES = pam_unix.la
+-noinst_HEADERS = md5.h support.h yppasswd.h bigcrypt.h passverify.h
++noinst_HEADERS = md5.h support.h bigcrypt.h passverify.h
+ pam_unix_la_SOURCES = bigcrypt.c pam_unix_acct.c \
+ pam_unix_auth.c pam_unix_passwd.c pam_unix_sess.c support.c \
+- passverify.c yppasswd_xdr.c md5_good.c md5_broken.c
++ passverify.c md5_good.c md5_broken.c
+
+ bigcrypt_SOURCES = bigcrypt.c bigcrypt_main.c
+ bigcrypt_CFLAGS = $(AM_CFLAGS)
+@@ -465,7 +465,6 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix_update-md5_good.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix_update-passverify.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix_update-unix_update.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yppasswd_xdr.Plo@am__quote@
+
+ .c.o:
+ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+Index: Linux-PAM-1.0.2/modules/pam_unix/pam_unix_passwd.c
+===================================================================
+--- Linux-PAM-1.0.2.orig/modules/pam_unix/pam_unix_passwd.c 2008-02-29 07:22:03.000000000 -0800
++++ Linux-PAM-1.0.2/modules/pam_unix/pam_unix_passwd.c 2009-09-04 01:06:22.579455994 -0700
+@@ -55,8 +55,11 @@
+ #include <sys/time.h>
+ #include <sys/stat.h>
+ #include <rpc/rpc.h>
++
++#ifdef NIS
+ #include <rpcsvc/yp_prot.h>
+ #include <rpcsvc/ypclnt.h>
++#endif
+
+ #include <signal.h>
+ #include <errno.h>
+@@ -77,7 +80,10 @@
+ #include <security/pam_ext.h>
+ #include <security/pam_modutil.h>
+
++#ifdef NIS
+ #include "yppasswd.h"
++#endif
++
+ #include "md5.h"
+ #include "support.h"
+ #include "passverify.h"
+@@ -105,6 +111,7 @@
+
+ static char *getNISserver(pam_handle_t *pamh)
+ {
++#ifdef NIS
+ char *master;
+ char *domainname;
+ int port, err;
+@@ -131,6 +138,9 @@
+ return NULL;
+ }
+ return master;
++#else
++ return NULL;
++#endif
+ }
+
+ #ifdef WITH_SELINUX
+@@ -301,6 +311,7 @@
+
+ if (on(UNIX_NIS, ctrl) && _unix_comesfromsource(pamh, forwho, 0, 1)) {
+ if ((master=getNISserver(pamh)) != NULL) {
++#ifdef NIS
+ struct timeval timeout;
+ struct yppasswd yppwd;
+ CLIENT *clnt;
+@@ -362,6 +373,7 @@
+ #ifdef DEBUG
+ sleep(5);
+ #endif
++#endif
+ } else {
+ retval = PAM_TRY_AGAIN;
+ }
+Index: Linux-PAM-1.0.2/modules/pam_unix/support.c
+===================================================================
+--- Linux-PAM-1.0.2.orig/modules/pam_unix/support.c 2008-01-23 07:35:13.000000000 -0800
++++ Linux-PAM-1.0.2/modules/pam_unix/support.c 2009-09-04 01:06:22.579455994 -0700
+@@ -19,7 +19,10 @@
+ #include <ctype.h>
+ #include <syslog.h>
+ #include <sys/resource.h>
++
++#ifdef NIS
+ #include <rpcsvc/ypclnt.h>
++#endif
+
+ #include <security/_pam_macros.h>
+ #include <security/pam_modules.h>
+@@ -266,6 +269,7 @@
+ if (!matched && nis) {
+ char *userinfo = NULL, *domain = NULL;
+ int len = 0, i;
++#ifdef NIS
+ len = yp_get_default_domain(&domain);
+ if (len == YPERR_SUCCESS) {
+ len = yp_bind(domain);
+@@ -280,6 +284,7 @@
+ matched = 1;
+ }
+ }
++#endif
+ }
+
+ if (matched && (ret != NULL)) {
+Index: Linux-PAM-1.0.2/modules/pam_unix/yppasswd.h
+===================================================================
+--- Linux-PAM-1.0.2.orig/modules/pam_unix/yppasswd.h 2000-06-20 15:12:08.000000000 -0700
++++ Linux-PAM-1.0.2/modules/pam_unix/yppasswd.h 2009-09-04 01:06:22.579455994 -0700
+@@ -13,6 +13,8 @@
+ #ifndef _YPPASSWD_H_
+ #define _YPPASSWD_H_
+
++#ifdef NIS
++
+ #define YPPASSWDPROG ((u_long)100009)
+ #define YPPASSWDVERS ((u_long)1)
+ #define YPPASSWDPROC_UPDATE ((u_long)1)
+@@ -48,4 +50,6 @@
+ bool_t xdr_xpasswd(XDR * xdrs, xpasswd * objp);
+ bool_t xdr_yppasswd(XDR * xdrs, yppasswd * objp);
+
++#endif
++
+ #endif /* _YPPASSWD_H_ */
+Index: Linux-PAM-1.0.2/modules/pam_unix/yppasswd_xdr.c
+===================================================================
+--- Linux-PAM-1.0.2.orig/modules/pam_unix/yppasswd_xdr.c 2005-07-20 02:46:19.000000000 -0700
++++ Linux-PAM-1.0.2/modules/pam_unix/yppasswd_xdr.c 2009-09-04 01:06:22.579455994 -0700
+@@ -10,6 +10,8 @@
+ * editied manually.
+ */
+
++#ifdef NIS
++
+ #include "config.h"
+
+ #include <rpc/rpc.h>
+@@ -36,3 +38,5 @@
+ return xdr_string(xdrs, &objp->oldpass, ~0)
+ && xdr_xpasswd(xdrs, &objp->newpw);
+ }
++
++#endif
+Index: Linux-PAM-1.0.2/po/POTFILES.in
+===================================================================
+--- Linux-PAM-1.0.2.orig/po/POTFILES.in 2008-02-13 06:39:41.000000000 -0800
++++ Linux-PAM-1.0.2/po/POTFILES.in 2009-09-04 01:06:22.579455994 -0700
+@@ -85,7 +85,6 @@
+ ./modules/pam_unix/passverify.c
+ ./modules/pam_unix/support.c
+ ./modules/pam_unix/unix_chkpwd.c
+-./modules/pam_unix/yppasswd_xdr.c
+ ./modules/pam_userdb/pam_userdb.c
+ ./modules/pam_warn/pam_warn.c
+ ./modules/pam_wheel/pam_wheel.c
diff --git a/recipes/pam/libpam-1.1.0/pam-nodocs.patch b/recipes/pam/libpam-1.1.0/pam-nodocs.patch
new file mode 100644
index 0000000000..895f0e182a
--- /dev/null
+++ b/recipes/pam/libpam-1.1.0/pam-nodocs.patch
@@ -0,0 +1,35 @@
+--- /tmp/Makefile.am 2008-09-05 15:16:21.000000000 +0200
++++ Linux-PAM-1.0.2/Makefile.am 2008-09-05 15:16:56.153198000 +0200
+@@ -5,9 +5,9 @@
+ AUTOMAKE_OPTIONS = 1.9 gnu dist-bzip2 check-news
+
+ if STATIC_MODULES
+-SUBDIRS = modules libpam libpamc libpam_misc tests po conf doc examples xtests
++SUBDIRS = modules libpam libpamc libpam_misc tests po conf examples xtests
+ else
+-SUBDIRS = libpam tests libpamc libpam_misc modules po conf doc examples xtests
++SUBDIRS = libpam tests libpamc libpam_misc modules po conf examples xtests
+ endif
+
+ CLEANFILES = *~
+@@ -28,19 +28,7 @@
+
+ ACLOCAL_AMFLAGS = -I m4
+
+-release: dist releasedocs
+-
+-release-docs: releasedocs
+-
+-releasedocs:
+- rm -rf Linux-PAM-$(VERSION)
+- mkdir -p Linux-PAM-$(VERSION)/doc
+- make -C doc releasedocs
+- tar zfc Linux-PAM-$(VERSION)-docs.tar.gz \
+- Linux-PAM-$(VERSION)/doc
+- tar jfc Linux-PAM-$(VERSION)-docs.tar.bz2 \
+- Linux-PAM-$(VERSION)/doc
+- rm -rf Linux-PAM-$(VERSION)
++release: dist
+
+ xtests:
+ make -C xtests xtests
diff --git a/recipes/pam/libpam-base-files.bb b/recipes/pam/libpam-base-files.bb
new file mode 100644
index 0000000000..52d762202e
--- /dev/null
+++ b/recipes/pam/libpam-base-files.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Linux-PAM authentication library for Linux. Base configuration files"
+
+SECTION = "libs"
+PRIORITY = "optional"
+LICENSE = "GPLv2"
+DEPENDS = ""
+RDEPENDS = "libpam"
+
+PR = "r2"
+
+SRC_URI = " \
+ file://pam.d/* \
+"
+
+do_install() {
+ install -d ${D}${sysconfdir}/pam.d/
+ install -m 0644 ${WORKDIR}/pam.d/* ${D}${sysconfdir}/pam.d/
+}
diff --git a/recipes/pam/libpam-base-files/pam.d/atd b/recipes/pam/libpam-base-files/pam.d/atd
new file mode 100644
index 0000000000..17ffb134d3
--- /dev/null
+++ b/recipes/pam/libpam-base-files/pam.d/atd
@@ -0,0 +1,10 @@
+#
+# The PAM configuration file for the at daemon
+#
+
+auth required pam_env.so
+auth include common-auth
+account include common-account
+password include common-password
+session required pam_limits.so
+session include common-session
diff --git a/recipes/pam/libpam-base-files/pam.d/common-account b/recipes/pam/libpam-base-files/pam.d/common-account
new file mode 100644
index 0000000000..316b17337b
--- /dev/null
+++ b/recipes/pam/libpam-base-files/pam.d/common-account
@@ -0,0 +1,25 @@
+#
+# /etc/pam.d/common-account - authorization settings common to all services
+#
+# This file is included from other service-specific PAM config files,
+# and should contain a list of the authorization modules that define
+# the central access policy for use on the system. The default is to
+# only deny service to users whose accounts are expired in /etc/shadow.
+#
+# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
+# To take advantage of this, it is recommended that you configure any
+# local modules either before or after the default block, and use
+# pam-auth-update to manage selection of other modules. See
+# pam-auth-update(8) for details.
+#
+
+# here are the per-package modules (the "Primary" block)
+account [success=1 new_authtok_reqd=done default=ignore] pam_unix.so
+# here's the fallback if no module succeeds
+account requisite pam_deny.so
+# prime the stack with a positive return value if there isn't one already;
+# this avoids us returning an error just because nothing sets a success code
+# since the modules above will each just jump around
+account required pam_permit.so
+# and here are more per-package modules (the "Additional" block)
+# end of pam-auth-update config
diff --git a/recipes/pam/libpam-base-files/pam.d/common-auth b/recipes/pam/libpam-base-files/pam.d/common-auth
new file mode 100644
index 0000000000..460b69f198
--- /dev/null
+++ b/recipes/pam/libpam-base-files/pam.d/common-auth
@@ -0,0 +1,18 @@
+#
+# /etc/pam.d/common-auth - authentication settings common to all services
+#
+# This file is included from other service-specific PAM config files,
+# and should contain a list of the authentication modules that define
+# the central authentication scheme for use on the system
+# (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the
+# traditional Unix authentication mechanisms.
+
+# here are the per-package modules (the "Primary" block)
+auth [success=1 default=ignore] pam_unix.so nullok_secure
+# here's the fallback if no module succeeds
+auth requisite pam_deny.so
+# prime the stack with a positive return value if there isn't one already;
+# this avoids us returning an error just because nothing sets a success code
+# since the modules above will each just jump around
+auth required pam_permit.so
+# and here are more per-package modules (the "Additional" block)
diff --git a/recipes/pam/libpam-base-files/pam.d/common-password b/recipes/pam/libpam-base-files/pam.d/common-password
new file mode 100644
index 0000000000..bc98f199b9
--- /dev/null
+++ b/recipes/pam/libpam-base-files/pam.d/common-password
@@ -0,0 +1,27 @@
+#
+# /etc/pam.d/common-password - password-related modules common to all services
+#
+# This file is included from other service-specific PAM config files,
+# and should contain a list of modules that define the services to be
+# used to change user passwords. The default is pam_unix.
+
+# Explanation of pam_unix options:
+#
+# The "sha512" option enables salted SHA512 passwords. Without this option,
+# the default is Unix crypt. Prior releases used the option "md5".
+#
+# The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in
+# login.defs.
+#
+# See the pam_unix manpage for other options.
+
+# here are the per-package modules (the "Primary" block)
+password [success=1 default=ignore] pam_unix.so obscure sha512
+# here's the fallback if no module succeeds
+password requisite pam_deny.so
+# prime the stack with a positive return value if there isn't one already;
+# this avoids us returning an error just because nothing sets a success code
+# since the modules above will each just jump around
+password required pam_permit.so
+# and here are more per-package modules (the "Additional" block)
+password optional pam_gnome_keyring.so
diff --git a/recipes/pam/libpam-base-files/pam.d/common-session b/recipes/pam/libpam-base-files/pam.d/common-session
new file mode 100644
index 0000000000..2123967d15
--- /dev/null
+++ b/recipes/pam/libpam-base-files/pam.d/common-session
@@ -0,0 +1,20 @@
+#
+# /etc/pam.d/common-session - session-related modules common to all services
+#
+# This file is included from other service-specific PAM config files,
+# and should contain a list of modules that define tasks to be performed
+# at the start and end of sessions of *any* kind (both interactive and
+# non-interactive).
+#
+
+# here are the per-package modules (the "Primary" block)
+session [default=1] pam_permit.so
+# here's the fallback if no module succeeds
+session requisite pam_deny.so
+# prime the stack with a positive return value if there isn't one already;
+# this avoids us returning an error just because nothing sets a success code
+# since the modules above will each just jump around
+session required pam_permit.so
+# and here are more per-package modules (the "Additional" block)
+session required pam_unix.so
+session optional pam_ck_connector.so nox11
diff --git a/recipes/pam/libpam-base-files/pam.d/common-session-noninteractive b/recipes/pam/libpam-base-files/pam.d/common-session-noninteractive
new file mode 100644
index 0000000000..b110bb2b49
--- /dev/null
+++ b/recipes/pam/libpam-base-files/pam.d/common-session-noninteractive
@@ -0,0 +1,19 @@
+#
+# /etc/pam.d/common-session-noninteractive - session-related modules
+# common to all non-interactive services
+#
+# This file is included from other service-specific PAM config files,
+# and should contain a list of modules that define tasks to be performed
+# at the start and end of all non-interactive sessions.
+#
+
+# here are the per-package modules (the "Primary" block)
+session [default=1] pam_permit.so
+# here's the fallback if no module succeeds
+session requisite pam_deny.so
+# prime the stack with a positive return value if there isn't one already;
+# this avoids us returning an error just because nothing sets a success code
+# since the modules above will each just jump around
+session required pam_permit.so
+# and here are more per-package modules (the "Additional" block)
+session required pam_unix.so
diff --git a/recipes/pam/libpam-base-files/pam.d/cron b/recipes/pam/libpam-base-files/pam.d/cron
new file mode 100644
index 0000000000..743c0ed31f
--- /dev/null
+++ b/recipes/pam/libpam-base-files/pam.d/cron
@@ -0,0 +1,11 @@
+#
+# The PAM configuration file for the cron daemon
+#
+
+auth include common-auth
+session required pam_env.so
+account include common-account
+session include common-session-noninteractive
+# Sets up user limits, please define limits for cron tasks
+# through /etc/security/limits.conf
+session required pam_limits.so
diff --git a/recipes/pam/libpam-base-files/pam.d/cups b/recipes/pam/libpam-base-files/pam.d/cups
new file mode 100644
index 0000000000..8e7f973a2c
--- /dev/null
+++ b/recipes/pam/libpam-base-files/pam.d/cups
@@ -0,0 +1,3 @@
+auth include common-auth
+account include common-account
+session include common-session
diff --git a/recipes/pam/libpam-base-files/pam.d/cvs b/recipes/pam/libpam-base-files/pam.d/cvs
new file mode 100644
index 0000000000..9627c4f7bf
--- /dev/null
+++ b/recipes/pam/libpam-base-files/pam.d/cvs
@@ -0,0 +1,12 @@
+#
+# /etc/pam.d/cvs - specify the PAM behaviour of CVS
+#
+
+# We fall back to the system default in /etc/pam.d/common-*
+
+auth include common-auth
+account include common-account
+
+# We don't use password or session modules at all
+# password include common-password
+# session include common-session
diff --git a/recipes/pam/libpam-base-files/pam.d/libcupsys2 b/recipes/pam/libpam-base-files/pam.d/libcupsys2
new file mode 100644
index 0000000000..8e7f973a2c
--- /dev/null
+++ b/recipes/pam/libpam-base-files/pam.d/libcupsys2
@@ -0,0 +1,3 @@
+auth include common-auth
+account include common-account
+session include common-session
diff --git a/recipes/pam/libpam-base-files/pam.d/other b/recipes/pam/libpam-base-files/pam.d/other
new file mode 100644
index 0000000000..6e40cd0c02
--- /dev/null
+++ b/recipes/pam/libpam-base-files/pam.d/other
@@ -0,0 +1,27 @@
+#
+# /etc/pam.d/other - specify the PAM fallback behaviour
+#
+# Note that this file is used for any unspecified service; for example
+#if /etc/pam.d/cron specifies no session modules but cron calls
+#pam_open_session, the session module out of /etc/pam.d/other is
+#used.
+
+#If you really want nothing to happen then use pam_permit.so or
+#pam_deny.so as appropriate.
+
+# We use pam_warn.so to generate syslog notes that the 'other'
+#fallback rules are being used (as a hint to suggest you should setup
+#specific PAM rules for the service and aid to debugging). We then
+#fall back to the system default in /etc/pam.d/common-*
+
+auth required pam_warn.so
+auth include common-auth
+
+account required pam_warn.so
+account include common-account
+
+password required pam_warn.so
+password include common-password
+
+session required pam_warn.so
+session include common-session
diff --git a/recipes/pam/libpam-base-files/pam.d/polkit-1 b/recipes/pam/libpam-base-files/pam.d/polkit-1
new file mode 100644
index 0000000000..836b53d61a
--- /dev/null
+++ b/recipes/pam/libpam-base-files/pam.d/polkit-1
@@ -0,0 +1,6 @@
+#%PAM-1.0
+
+auth include common-auth
+account include common-account
+password include common-password
+session include common-session
diff --git a/recipes/pam/libpam-base-files/pam.d/ppp b/recipes/pam/libpam-base-files/pam.d/ppp
new file mode 100644
index 0000000000..aed08fd1b2
--- /dev/null
+++ b/recipes/pam/libpam-base-files/pam.d/ppp
@@ -0,0 +1,8 @@
+#%PAM-1.0
+# Information for the PPPD process with the 'login' option.
+
+auth required pam_nologin.so
+auth include common-auth
+account include common-account
+session include common-session
+
diff --git a/recipes/pam/libpam-base-files/pam.d/sesman b/recipes/pam/libpam-base-files/pam.d/sesman
new file mode 100644
index 0000000000..836b53d61a
--- /dev/null
+++ b/recipes/pam/libpam-base-files/pam.d/sesman
@@ -0,0 +1,6 @@
+#%PAM-1.0
+
+auth include common-auth
+account include common-account
+password include common-password
+session include common-session
diff --git a/recipes/pam/libpam-base-files/pam.d/sshd b/recipes/pam/libpam-base-files/pam.d/sshd
new file mode 100644
index 0000000000..c0028ff3cb
--- /dev/null
+++ b/recipes/pam/libpam-base-files/pam.d/sshd
@@ -0,0 +1,33 @@
+# PAM configuration for the Secure Shell service
+
+# Read environment variables from /etc/environment and
+# /etc/security/pam_env.conf.
+auth required pam_env.so # [1]
+
+# Standard Un*x authentication.
+auth include common-auth
+
+# Disallow non-root logins when /etc/nologin exists.
+account required pam_nologin.so
+
+# Uncomment and edit /etc/security/access.conf if you need to set complex
+# access limits that are hard to express in sshd_config.
+# account required pam_access.so
+
+# Standard Un*x authorization.
+account include common-accountt
+
+# Standard Un*x session setup and teardown.
+session include common-session
+
+# Print the message of the day upon successful login.
+session optional pam_motd.so # [1]
+
+# Print the status of the user's mailbox upon successful login.
+session optional pam_mail.so standard noenv # [1]
+
+# Set up user limits from /etc/security/limits.conf.
+session required pam_limits.so
+
+# Standard Un*x password updating.
+password include common-password
diff --git a/recipes/pam/libpam_1.0.2.bb b/recipes/pam/libpam_1.0.2.bb
index 0151a4691d..1ab7fa95f9 100644
--- a/recipes/pam/libpam_1.0.2.bb
+++ b/recipes/pam/libpam_1.0.2.bb
@@ -12,7 +12,10 @@ LICENSE = "GPLv2"
DEPENDS = "flex flex-native"
-PR = "r4"
+# PAM is not a lot of use without configuration files and the plugins
+RRECOMMENDS_${PN} = "libpam-meta libpam-base-files"
+
+PR = "r5"
# The project is actually called Linux-PAM but that gives
# a bad OE package name because of the upper case characters
@@ -23,7 +26,8 @@ S = "${WORKDIR}/${p}"
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/libs/pam/library/${p}.tar.bz2 \
file://pam-nodocs.patch;patch=1 "
-SRC_URI_append_libc-uclibc = "file://pam-disable-nis-on-uclibc.patch;patch=1"
+SRC_URI_append_linux-uclibc = " file://pam-disable-nis-on-uclibc.patch;patch=1"
+SRC_URI_append_linux-uclibceabi = " file://pam-disable-nis-on-uclibc.patch;patch=1"
inherit autotools
@@ -32,6 +36,9 @@ LEAD_SONAME = "libpam.so.*"
# maintain the pam default layout
EXTRA_OECONF += " --includedir=${includedir}/security"
+EXTRA_OECONF_linux-uclibc += "--disable-nls"
+EXTRA_OECONF_linux-uclibceabi += "--disable-nls"
+
PACKAGES_DYNAMIC += " libpam-meta pam-plugin-*"
python populate_packages_prepend () {
@@ -62,7 +69,6 @@ python populate_packages_prepend () {
bb.data.setVar('PACKAGES', ' '.join(packages), d)
}
-
do_stage() {
autotools_stage_all
}
diff --git a/recipes/pam/libpam_1.1.0.bb b/recipes/pam/libpam_1.1.0.bb
new file mode 100644
index 0000000000..d974f4db4d
--- /dev/null
+++ b/recipes/pam/libpam_1.1.0.bb
@@ -0,0 +1,74 @@
+DESCRIPTION = "\
+PAM authentication library for Linux. \
+Linux-PAM (Pluggable Authentication Modules for Linux) is a \
+library that enables the local system administrator to choose \
+how individual applications authenticate users. For an \
+overview of the Linux-PAM library see the Linux-PAM System \
+Administrators' Guide."
+HOMEPAGE = "http://kernel.org/pub/linux/libs/pam"
+SECTION = "libs"
+PRIORITY = "optional"
+LICENSE = "GPLv2"
+
+DEPENDS = "flex flex-native"
+
+# PAM is not a lot of use without configuration files and the plugins
+RRECOMMENDS_${PN} = "libpam-meta libpam-base-files"
+
+PR = "r1"
+
+# The project is actually called Linux-PAM but that gives
+# a bad OE package name because of the upper case characters
+pn = "Linux-PAM"
+p = "${pn}-${PV}"
+S = "${WORKDIR}/${p}"
+
+SRC_URI = "${KERNELORG_MIRROR}/pub/linux/libs/pam/library/${p}.tar.bz2 \
+ file://pam-nodocs.patch;patch=1 \
+ file://fix_disabled_nls.patch;patch=1 \
+ "
+
+UCLIBC_PATCHES = " file://pam-disable-nis-on-uclibc.patch;patch=1 \
+ file://disable_modules_uclibc.patch;patch=1 \
+ "
+
+SRC_URI_append_linux-uclibc = ${UCLIBC_PATCHES}
+SRC_URI_append_linux-uclibceabi = ${UCLIBC_PATCHES}
+
+inherit autotools gettext
+
+LEAD_SONAME = "libpam.so.*"
+
+# maintain the pam default layout
+EXTRA_OECONF += " --includedir=${includedir}/security"
+
+PACKAGES_DYNAMIC += " libpam-meta pam-plugin-*"
+
+python populate_packages_prepend () {
+ import os.path
+
+ pam_libdir = bb.data.expand('${libdir}/security', d)
+ pam_libdirdebug = bb.data.expand('${libdir}/security/.debug', d)
+ pam_filterdir = bb.data.expand('${libdir}/security/pam_filter', d)
+ do_split_packages(d, pam_libdir, '^pam(.*)\.so$', 'pam-plugin%s', 'PAM plugin for %s', extra_depends='')
+ do_split_packages(d, pam_libdir, '^pam(.*)\.la$', 'pam-plugin%s-dev', 'PAM plugin for %s dev', extra_depends='')
+ if os.path.exists(pam_libdirdebug):
+ do_split_packages(d, pam_libdirdebug, '^pam(.*)\.so$', 'pam-plugin%s-dbg', 'PAM plugin for %s debugging symbols', extra_depends='')
+ do_split_packages(d, pam_filterdir, '^(.*)$', 'pam-filter-%s', 'PAM filter for %s', extra_depends='')
+
+ pn = bb.data.getVar('PN', d, 1)
+ metapkg = pn + '-meta'
+ bb.data.setVar('ALLOW_EMPTY_' + metapkg, "1", d)
+ bb.data.setVar('FILES_' + metapkg, "", d)
+ blacklist = [ pn + '-locale', pn + '-dev', pn + '-dbg', pn + '-doc' ]
+ metapkg_rdepends = []
+ packages = bb.data.getVar('PACKAGES', d, 1).split()
+ for pkg in packages[1:]:
+ if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.endswith('-dev') and not pkg.count('locale') and pkg.count('plugin'):
+ metapkg_rdepends.append(pkg)
+ bb.data.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends), d)
+ bb.data.setVar('DESCRIPTION_' + metapkg, pn + ' meta package', d)
+ packages.append(metapkg)
+ bb.data.setVar('PACKAGES', ' '.join(packages), d)
+}
+
diff --git a/recipes/performous/performous_0.4.0.bb b/recipes/performous/performous_0.4.0.bb
new file mode 100644
index 0000000000..246c71d4e8
--- /dev/null
+++ b/recipes/performous/performous_0.4.0.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "A game where you can sing caraoke or play instruments"
+HOMEPAGE = "http://performous.org/"
+SECTION = "apps"
+LICENSE = "GPL"
+
+DEPENDS = "boost glib-2.0 gstreamer pulseaudio pango freetype \
+ ffmpeg cairo gtk+ librsvg libxml++ imagemagick jack \
+ libglew virtual/libsdl \
+ "
+
+PR = "r1"
+
+inherit cmake
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/performous/performous/${PV}/Performous-${PV}-Source.tar.bz2"
+
+S = "${WORKDIR}/Performous-${PV}-Source"
+
+OECMAKE_BUILDPATH = "build"
+
+OECMAKE_SOURCEPATH = "../"
+
+FILES_${PN} += " ${datadir}/games/performous/themes/default/* \
+ ${datadir}/games/performous/config/* \
+ ${datadir}/games/performous/xsl/* \
+ ${datadir}/games/performous/sounds/* \
+ ${datadir}/games/performous/backgrounds/* \
+ "
+
diff --git a/recipes/perl/libextutils-makemaker-perl-native_6.54.bb b/recipes/perl/libextutils-makemaker-perl-native_6.54.bb
new file mode 100644
index 0000000000..93fc4cf13d
--- /dev/null
+++ b/recipes/perl/libextutils-makemaker-perl-native_6.54.bb
@@ -0,0 +1,5 @@
+SECTION = "libs"
+
+inherit native
+
+require libextutils-makemaker-perl_${PV}.bb
diff --git a/recipes/perl/libextutils-makemaker-perl_6.54.bb b/recipes/perl/libextutils-makemaker-perl_6.54.bb
new file mode 100644
index 0000000000..c480aa2daa
--- /dev/null
+++ b/recipes/perl/libextutils-makemaker-perl_6.54.bb
@@ -0,0 +1,10 @@
+DESCRIPTION = "ExtUtils::PkgConfig - makefile generation"
+SECTION = "libs"
+LICENSE = "Artistic|GPL"
+PR = "r0"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MS/MSCHWERN/ExtUtils-MakeMaker-${PV}.tar.gz"
+
+S = "${WORKDIR}/ExtUtils-MakeMaker-${PV}"
+
+inherit cpan
diff --git a/recipes/perl/libfile-slurp-perl_9999.13.bb b/recipes/perl/libfile-slurp-perl_9999.13.bb
index c4c967d90c..5854761696 100644
--- a/recipes/perl/libfile-slurp-perl_9999.13.bb
+++ b/recipes/perl/libfile-slurp-perl_9999.13.bb
@@ -1,13 +1,11 @@
SECTION = "libs"
LICENSE = "Artistic|GPL"
HOMEPAGE = "http://search.cpan.org/~uri/"
-PR = "r0"
+PR = "r1"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/File-Slurp-${PV}.tar.gz"
S = "${WORKDIR}/File-Slurp-${PV}"
-EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
-
inherit cpan
diff --git a/recipes/perl/libhtml-mason-perl_1.35.bb b/recipes/perl/libhtml-mason-perl_1.35.bb
index 71e96005e8..dfc6f3cc87 100644
--- a/recipes/perl/libhtml-mason-perl_1.35.bb
+++ b/recipes/perl/libhtml-mason-perl_1.35.bb
@@ -16,6 +16,10 @@ SRC_URI = "http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/HTML-Mason-${PV}.
S = "${WORKDIR}/HTML-Mason-${PV}"
+do_stage() {
+ :
+}
+
inherit cpan_build
do_install_append () {
diff --git a/recipes/perl/libhtml-parser-perl-native_3.60.bb b/recipes/perl/libhtml-parser-perl-native_3.60.bb
new file mode 100644
index 0000000000..3760a422fa
--- /dev/null
+++ b/recipes/perl/libhtml-parser-perl-native_3.60.bb
@@ -0,0 +1,6 @@
+SECTION = "libs"
+
+require libhtml-parser-perl_${PV}.bb
+
+inherit native
+
diff --git a/recipes/perl/libhtml-parser-perl-native_3.64.bb b/recipes/perl/libhtml-parser-perl-native_3.64.bb
new file mode 100644
index 0000000000..3760a422fa
--- /dev/null
+++ b/recipes/perl/libhtml-parser-perl-native_3.64.bb
@@ -0,0 +1,6 @@
+SECTION = "libs"
+
+require libhtml-parser-perl_${PV}.bb
+
+inherit native
+
diff --git a/recipes/perl/libhtml-parser-perl_3.64.bb b/recipes/perl/libhtml-parser-perl_3.64.bb
new file mode 100644
index 0000000000..122fba2dc2
--- /dev/null
+++ b/recipes/perl/libhtml-parser-perl_3.64.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "HTML Parser bits."
+SECTION = "libs"
+LICENSE = "Artistic|GPL"
+PR = "r0"
+
+RDEPENDS = "perl-module-test-more \
+ perl-module-xsloader \
+ perl-module-test-simple \
+ libhtml-tagset-perl"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/HTML-Parser-${PV}.tar.gz"
+
+S = "${WORKDIR}/HTML-Parser-${PV}"
+
+inherit cpan
diff --git a/recipes/perl/libhtml-tagset-perl-native_3.20.bb b/recipes/perl/libhtml-tagset-perl-native_3.20.bb
new file mode 100644
index 0000000000..8e83220a4d
--- /dev/null
+++ b/recipes/perl/libhtml-tagset-perl-native_3.20.bb
@@ -0,0 +1,5 @@
+SECTION = "libs"
+
+inherit native
+
+require libhtml-tagset-perl_${PV}.bb
diff --git a/recipes/perl/libhtml-treebuilder-perl-native_3.23.bb b/recipes/perl/libhtml-treebuilder-perl-native_3.23.bb
new file mode 100644
index 0000000000..2fb32baa70
--- /dev/null
+++ b/recipes/perl/libhtml-treebuilder-perl-native_3.23.bb
@@ -0,0 +1,6 @@
+SECTION = "libs"
+
+require libhtml-treebuilder-perl_${PV}.bb
+
+inherit native
+
diff --git a/recipes/perl/libhtml-treebuilder-perl_3.23.bb b/recipes/perl/libhtml-treebuilder-perl_3.23.bb
new file mode 100644
index 0000000000..ea572eb577
--- /dev/null
+++ b/recipes/perl/libhtml-treebuilder-perl_3.23.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "HTML::TreeBUilder - Class is for HTML syntax trees that get built out of HTML source"
+SECTION = "libs"
+LICENSE = "Artistic|GPL"
+PR = "r1"
+
+DEPENDS = "libextutils-makemaker-perl-native"
+#RDEPENDS = "libextutils-makemaker-perl"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/P/PE/PETEK/HTML-Tree-${PV}.tar.gz"
+
+S = "${WORKDIR}/HTML-Tree-${PV}"
+
+inherit cpan
diff --git a/recipes/perl/liblog-dispatch-perl_2.13.bb b/recipes/perl/liblog-dispatch-perl_2.13.bb
index ee4a2198c1..643deda664 100644
--- a/recipes/perl/liblog-dispatch-perl_2.13.bb
+++ b/recipes/perl/liblog-dispatch-perl_2.13.bb
@@ -7,4 +7,8 @@ SRC_URI = "http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/Log-Dispatch-${PV
S = "${WORKDIR}/Log-Dispatch-${PV}"
+do_stage() {
+ :
+}
+
inherit cpan_build
diff --git a/recipes/perl/libmodule-build-perl_0.2805.bb b/recipes/perl/libmodule-build-perl_0.2805.bb
index 8a7ce9fa04..b7819fdebc 100644
--- a/recipes/perl/libmodule-build-perl_0.2805.bb
+++ b/recipes/perl/libmodule-build-perl_0.2805.bb
@@ -12,4 +12,8 @@ PR = "r5"
S = "${WORKDIR}/Module-Build-${PV}"
+do_stage() {
+ :
+}
+
inherit cpan_build
diff --git a/recipes/perl/libtermreadkey-perl_2.30.bb b/recipes/perl/libtermreadkey-perl_2.30.bb
index 3296aef4d8..4f2f26f471 100644
--- a/recipes/perl/libtermreadkey-perl_2.30.bb
+++ b/recipes/perl/libtermreadkey-perl_2.30.bb
@@ -1,13 +1,11 @@
SECTION = "libs"
LICENSE = "Artistic|GPL"
HOMEPAGE = "http://search.cpan.org/~jstowe/TermReadKey-2.30/"
-PR = "r0"
+PR = "r1"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/J/JS/JSTOWE/TermReadKey-${PV}.tar.gz"
S = "${WORKDIR}/TermReadKey-${PV}"
-EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
-
inherit cpan
diff --git a/recipes/perl/libwww-mechanize-perl-native_1.60.bb b/recipes/perl/libwww-mechanize-perl-native_1.60.bb
new file mode 100644
index 0000000000..8718cd268e
--- /dev/null
+++ b/recipes/perl/libwww-mechanize-perl-native_1.60.bb
@@ -0,0 +1,6 @@
+SECTION = "libs"
+
+require libwww-mechanize-perl_${PV}.bb
+
+inherit native
+
diff --git a/recipes/perl/libwww-mechanize-perl_1.60.bb b/recipes/perl/libwww-mechanize-perl_1.60.bb
new file mode 100644
index 0000000000..e82cc498c1
--- /dev/null
+++ b/recipes/perl/libwww-mechanize-perl_1.60.bb
@@ -0,0 +1,10 @@
+DESCRIPTION = "WWW::Mechanize Handy web browsing in a Perl object"
+SECTION = "libs"
+LICENSE = "Perl"
+PR = "r0"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/P/PE/PETDANCE/WWW-Mechanize-${PV}.tar.gz"
+
+S = "${WORKDIR}/WWW-Mechanize-${PV}"
+
+inherit cpan
diff --git a/recipes/perl/libxml-parser-perl-native_2.34.bb b/recipes/perl/libxml-parser-perl-native_2.34.bb
index 64758ad5f2..6ba56b3b89 100644
--- a/recipes/perl/libxml-parser-perl-native_2.34.bb
+++ b/recipes/perl/libxml-parser-perl-native_2.34.bb
@@ -4,3 +4,4 @@ require libxml-parser-perl_${PV}.bb
inherit native
+DEPENDS = "expat-native perl-native" \ No newline at end of file
diff --git a/recipes/perl/libxml-parser-perl-native_2.36.bb b/recipes/perl/libxml-parser-perl-native_2.36.bb
new file mode 100644
index 0000000000..6ba56b3b89
--- /dev/null
+++ b/recipes/perl/libxml-parser-perl-native_2.36.bb
@@ -0,0 +1,7 @@
+SECTION = "libs"
+
+require libxml-parser-perl_${PV}.bb
+
+inherit native
+
+DEPENDS = "expat-native perl-native" \ No newline at end of file
diff --git a/recipes/perl/libxml-parser-perl_2.36.bb b/recipes/perl/libxml-parser-perl_2.36.bb
index c96489b2de..179365c180 100644
--- a/recipes/perl/libxml-parser-perl_2.36.bb
+++ b/recipes/perl/libxml-parser-perl_2.36.bb
@@ -11,7 +11,7 @@ EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}
inherit cpan
do_compile() {
- export LIBC="$(find ${STAGING_DIR}/lib -name 'libc-*.so')"
+ export LIBC="$(find ${STAGING_DIR_TARGET}/lib -name 'libc-*.so')"
cpan_do_compile
}
diff --git a/recipes/perl/libxml-twig-perl_3.33.bb b/recipes/perl/libxml-twig-perl_3.33.bb
index 76b3fa7758..d688d2c372 100644
--- a/recipes/perl/libxml-twig-perl_3.33.bb
+++ b/recipes/perl/libxml-twig-perl_3.33.bb
@@ -2,13 +2,11 @@ SECTION = "libs"
LICENSE = "Artistic|GPL"
HOMEPAGE = "http://www.xmltwig.com/"
DEPENDS += "libxml-parser-perl"
-PR = "r0"
+PR = "r2"
-SRC_URI = "http://xmltwig.com/xmltwig/XML-Twig-${PV}.tar.gz"
+SRC_URI = "http://www.angstrom-distribution.org/unstable/sources/XML-Twig-${PV}-upstream-keeps-changing-this-tarball-so-we-mirror-our-own.tar.gz"
S = "${WORKDIR}/XML-Twig-${PV}"
-EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
-
inherit cpan
diff --git a/recipes/perl/libxml-writer-perl_0.606.bb b/recipes/perl/libxml-writer-perl_0.606.bb
index 863e8e792c..776d338f0b 100644
--- a/recipes/perl/libxml-writer-perl_0.606.bb
+++ b/recipes/perl/libxml-writer-perl_0.606.bb
@@ -1,13 +1,11 @@
SECTION = "libs"
LICENSE = "Artistic|GPL"
HOMEPAGE = "http://search.cpan.org/dist/XML-Writer/"
-PR = "r1"
+PR = "r2"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/J/JO/JOSEPHW/XML-Writer-${PV}.tar.gz"
S = "${WORKDIR}/XML-Writer-${PV}"
-EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
-
inherit cpan
diff --git a/recipes/perl/perl-native_5.8.4.bb b/recipes/perl/perl-native_5.8.4.bb
index 69555e0fac..d3ecb67863 100644
--- a/recipes/perl/perl-native_5.8.4.bb
+++ b/recipes/perl/perl-native_5.8.4.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Perl is a popular scripting language."
HOMEPAGE = "http://www.perl.org/"
LICENSE = "Artistic|GPL"
-PR = "r3"
+PR = "r4"
SECTION = "libs"
inherit native
diff --git a/recipes/perl/perl-native_5.8.7.bb b/recipes/perl/perl-native_5.8.7.bb
index ebb10e5580..d8ccd0c33d 100644
--- a/recipes/perl/perl-native_5.8.7.bb
+++ b/recipes/perl/perl-native_5.8.7.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Perl is a popular scripting language."
HOMEPAGE = "http://www.perl.org/"
LICENSE = "Artistic|GPL"
-PR = "r5"
+PR = "r6"
SECTION = "libs"
inherit native
diff --git a/recipes/perl/perl-native_5.8.8.bb b/recipes/perl/perl-native_5.8.8.bb
index bde7638137..60a5cf5b0f 100644
--- a/recipes/perl/perl-native_5.8.8.bb
+++ b/recipes/perl/perl-native_5.8.8.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.perl.org/"
SECTION = "libs"
LICENSE = "Artistic|GPL"
DEPENDS = "virtual/db-native gdbm-native"
-PR = "r14"
+PR = "r15"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/perl-${PV}"
@@ -66,10 +66,9 @@ do_stage_append() {
# We need a hostperl link for building perl
ln -sf ${STAGING_BINDIR_NATIVE}/perl${PV} ${STAGING_BINDIR_NATIVE}/hostperl
# Store native config in non-versioned directory
- install -d ${STAGING_DIR_HOST}/perl \
- ${STAGING_LIBDIR_NATIVE}/perl/${PV}/CORE \
+ install -d ${STAGING_LIBDIR_NATIVE}/perl/${PV}/CORE \
${STAGING_DATADIR_NATIVE}/perl/${PV}/ExtUtils
- install config.sh ${STAGING_DIR_HOST}/perl
+ install config.sh ${STAGING_LIBDIR}/perl
# target configuration
install lib/Config.pm ${STAGING_LIBDIR_NATIVE}/perl/${PV}/
install lib/ExtUtils/typemap ${STAGING_DATADIR_NATIVE}/perl/${PV}/ExtUtils/
@@ -88,7 +87,7 @@ do_stage_append() {
}
do_stage_append_nylon() {
# get rid of definitions not supported by the gcc version we use for nylon...
- for i in ${STAGING_LIBDIR_NATIVE}/perl/${PV}/Config_heavy.pl ${STAGING_DIR_HOST}/perl/config.sh; do
+ for i in ${STAGING_LIBDIR_NATIVE}/perl/${PV}/Config_heavy.pl ${STAGING_LIBDIR}/perl/config.sh; do
perl -pi -e 's/-Wdeclaration-after-statement //g' ${i}
done
}
diff --git a/recipes/perl/perl.inc b/recipes/perl/perl.inc
index 00184a9dac..15ae55cf17 100644
--- a/recipes/perl/perl.inc
+++ b/recipes/perl/perl.inc
@@ -36,8 +36,8 @@ do_install() {
}
do_stage() {
- install -d ${STAGING_DIR_HOST}/perl/
- install config.sh ${STAGING_DIR_HOST}/perl/
+ install -d ${STAGING_LIBDIR}/perl/
+ install config.sh ${STAGING_LIBDIR}/perl/
}
PACKAGES_DYNAMIC = "perl-module-*"
diff --git a/recipes/perl/perl_5.8.4.bb b/recipes/perl/perl_5.8.4.bb
index 10a871c8dd..881a2acee5 100644
--- a/recipes/perl/perl_5.8.4.bb
+++ b/recipes/perl/perl_5.8.4.bb
@@ -1,6 +1,6 @@
require perl.inc
-PR = "r5"
+PR = "r6"
SRC_URI += "file://uclibc.patch;patch=1 \
file://config.sh-mipsel-linux \
diff --git a/recipes/perl/perl_5.8.7.bb b/recipes/perl/perl_5.8.7.bb
index 6589180ff2..5891670394 100644
--- a/recipes/perl/perl_5.8.7.bb
+++ b/recipes/perl/perl_5.8.7.bb
@@ -26,7 +26,7 @@ SRC_URI_append_powerpc += " ${GCCLINK_SRC}"
PARALLEL_MAKE = ""
-PR = "r22"
+PR = "r23"
do_configure() {
ln -sf ${HOSTPERL} ${STAGING_BINDIR_NATIVE}/hostperl
diff --git a/recipes/perl/perl_5.8.8.bb b/recipes/perl/perl_5.8.8.bb
index 2508719736..13e44556be 100644
--- a/recipes/perl/perl_5.8.8.bb
+++ b/recipes/perl/perl_5.8.8.bb
@@ -5,7 +5,7 @@ LICENSE = "Artistic|GPL"
PRIORITY = "optional"
# We need gnugrep (for -I)
DEPENDS = "virtual/db perl-native grep-native"
-PR = "r29"
+PR = "r30"
# Major part of version
PVM = "5.8"
@@ -141,12 +141,11 @@ do_install() {
fi
}
do_stage() {
- install -d ${STAGING_DIR_HOST}/perl \
- ${STAGING_LIBDIR_NATIVE}/perl/${PV} \
+ install -d ${STAGING_LIBDIR_NATIVE}/perl/${PV} \
${STAGING_LIBDIR}/perl/${PV}/CORE \
${STAGING_DATADIR}/perl/${PV}/ExtUtils
# target config, used by cpan.bbclass to extract version information
- install config.sh ${STAGING_DIR_HOST}/perl/
+ install config.sh ${STAGING_LIBDIR}/perl/
# target configuration, used by native perl when cross-compiling
install lib/Config_heavy.pl ${STAGING_LIBDIR_NATIVE}/perl/${PV}/Config_heavy-target.pl
# target configuration
diff --git a/recipes/php/php_5.2.6.bb b/recipes/php/php_5.2.6.bb
index 38e86568d8..0d9e1f42a5 100644
--- a/recipes/php/php_5.2.6.bb
+++ b/recipes/php/php_5.2.6.bb
@@ -13,7 +13,8 @@ export LIBS=" -lpthread "
EXTRA_OECONF = " --without-iconv \
--enable-discard-path \
--enable-sockets \
- --enable-pcntl \
+ --enable-shared \
+# --enable-pcntl \
--enable-memory-limit \
--enable-wddx \
--enable-embedded-mysqli \
@@ -21,7 +22,7 @@ EXTRA_OECONF = " --without-iconv \
--enable-fastcgi \
--with-zlib --with-zlib-dir=${STAGING_LIBDIR}/.. \
--with-libxml-dir=${STAGING_BINDIR_CROSS} \
-# --with-mysql="${STAGING_DIR_TARGET}${layout_exec_prefix}" \
+ --with-mysql="${STAGING_DIR_TARGET}${layout_exec_prefix}" \
# --with-mysqli = "${STAGING_BINDIR_NATIVE}/mysql_config" \
"
diff --git a/recipes/pidgin/msn-pecan_git.bb b/recipes/pidgin/msn-pecan_git.bb
new file mode 100644
index 0000000000..dba7fd77dc
--- /dev/null
+++ b/recipes/pidgin/msn-pecan_git.bb
@@ -0,0 +1,23 @@
+DESCRIPTION="Alternative MSN protocol plug-in for pidgin"
+HOMEPAGE="http://code.google.com/p/msn-pecan/"
+SECTION = "x11/network"
+LICENSE="GPL-2"
+RDEPENDS="pidgin"
+DEPENDS="pidgin"
+PV="0.0.1+gitr${SRCREV}"
+PR="r0"
+
+inherit pkgconfig
+
+SRC_URI="git://github.com/felipec/msn-pecan.git;protocol=http"
+S="${WORKDIR}/git"
+
+do_compile() {
+ oe_runmake "DESTDIR=${D}"
+}
+do_install() {
+ oe_runmake "DESTDIR=${D}" install
+}
+
+FILES_${PN} = "${libdir}/purple-2/*.so"
+FILES_${PN}-dbg = "${libdir}/purple-2/.debug/"
diff --git a/recipes/pimlico/contacts_svn.bb b/recipes/pimlico/contacts_svn.bb
index 0257046e88..09c8887f8e 100644
--- a/recipes/pimlico/contacts_svn.bb
+++ b/recipes/pimlico/contacts_svn.bb
@@ -4,7 +4,7 @@ require contacts.inc
#RDEPENDS += "gnome-vfs-plugin-file"
#RRECOMMENDS += "gnome-vfs-plugin-http"
-PV = "0.8+svnr${SRCREV}"
+PV = "0.8+svnr${SRCPV}"
DEFAULT_PREFERENCE = "-1"
diff --git a/recipes/pimlico/dates_svn.bb b/recipes/pimlico/dates_svn.bb
index 0ba1b07dc0..e7ea9c8338 100644
--- a/recipes/pimlico/dates_svn.bb
+++ b/recipes/pimlico/dates_svn.bb
@@ -2,7 +2,7 @@ require dates.inc
DEFAULT_PREFERENCE = "-1"
-PV = "0.4.5+svnr${SRCREV}"
+PV = "0.4.5+svnr${SRCPV}"
S = "${WORKDIR}/trunk"
SRC_URI = "svn://svn.o-hand.com/repos/${PN};module=trunk;proto=http \
diff --git a/recipes/pimlico/tasks_svn.bb b/recipes/pimlico/tasks_svn.bb
index dc998d2508..552980dd68 100644
--- a/recipes/pimlico/tasks_svn.bb
+++ b/recipes/pimlico/tasks_svn.bb
@@ -2,7 +2,7 @@ require tasks.inc
DEFAULT_PREFERENCE = "-1"
-PV = "0.13+svnr${SRCREV}"
+PV = "0.13+svnr${SRCPV}"
S = "${WORKDIR}/trunk"
SRC_URI = "svn://svn.o-hand.com/repos/${PN};module=trunk;proto=http \
diff --git a/recipes/pingus/files/boost.patch b/recipes/pingus/files/boost.patch
new file mode 100644
index 0000000000..cdf2425575
--- /dev/null
+++ b/recipes/pingus/files/boost.patch
@@ -0,0 +1,13 @@
+Index: pingus-0.7.2/SConstruct
+===================================================================
+--- pingus-0.7.2.orig/SConstruct 2009-11-13 01:58:16.445278586 +0100
++++ pingus-0.7.2/SConstruct 2009-11-13 01:58:25.944023225 +0100
+@@ -476,7 +476,7 @@
+ env['optional_sources'] += ['src/input/xinput_driver.cpp',
+ 'src/input/xinput_device.cpp']
+
+- if not config.CheckLibWithHeader('boost_signals', 'boost/signals.hpp', 'c++'):
++ if not config.CheckLibWithHeader('boost_signals-mt', 'boost/signals.hpp', 'c++'):
+ fatal_error += " * library 'boost_signals' not found\n"
+
+ if not config.CheckLibWithHeader('png', 'png.h', 'c++'):
diff --git a/recipes/pingus/files/cheader.patch b/recipes/pingus/files/cheader.patch
new file mode 100644
index 0000000000..dee22409a7
--- /dev/null
+++ b/recipes/pingus/files/cheader.patch
@@ -0,0 +1,27 @@
+Index: pingus-0.7.2/src/input/evdev_device.cpp
+===================================================================
+--- pingus-0.7.2.orig/src/input/evdev_device.cpp 2009-11-13 02:02:22.730671880 +0100
++++ pingus-0.7.2/src/input/evdev_device.cpp 2009-11-13 02:05:02.494404553 +0100
+@@ -25,6 +25,8 @@
+ #include <stdexcept>
+ #include <iostream>
+ #include <errno.h>
++#include <cstring>
++#include <cstdio>
+
+ #include "evdev_device.hpp"
+
+Index: pingus-0.7.2/src/tinygettext/po_file_reader.cpp
+===================================================================
+--- pingus-0.7.2.orig/src/tinygettext/po_file_reader.cpp 2009-11-13 01:59:35.807355200 +0100
++++ pingus-0.7.2/src/tinygettext/po_file_reader.cpp 2009-11-13 02:02:13.407754735 +0100
+@@ -23,7 +23,8 @@
+ #include <errno.h>
+ #include <sstream>
+ #include <stdexcept>
+-#include <string.h>
++#include <cstring>
++#include <cstdio>
+ #include "iconv.hpp"
+ #include "po_file_reader.hpp"
+
diff --git a/recipes/pingus/pingus_0.7.2.bb b/recipes/pingus/pingus_0.7.2.bb
index a10131fa51..10f99bae0e 100644
--- a/recipes/pingus/pingus_0.7.2.bb
+++ b/recipes/pingus/pingus_0.7.2.bb
@@ -1,9 +1,9 @@
DESCRIPTION = "Pingus is a free Lemmings clone."
-DEPENDS = "virtual/libsdl libsdl-image libsdl-mixer boost libpng"
+DEPENDS = "virtual/libiconv virtual/libsdl libsdl-image libsdl-mixer boost libpng"
LICENSE = "GPL"
HOMEPAGE = "http://pingus.seul.org/"
SECTION = "x11/games"
-PR = "r1"
+PR = "r2"
ARM_INSTRUCTION_SET = "arm"
@@ -12,6 +12,8 @@ inherit scons
SRC_URI = "\
http://pingus.seul.org/files/pingus-0.7.2.tar.bz2 \
file://sconstruct.diff;patch=1 \
+ file://boost.patch;patch=1 \
+ file://cheader.patch;patch=1 \
file://pingus.desktop \
file://pingus.png \
file://pingus-gta012.sh \
@@ -36,6 +38,10 @@ do_install() {
fi
}
+do_stage() {
+ :
+}
+
# Account for 1337 script in do_install
PACKAGE_ARCH_om-gta01 = "${MACHINE_ARCH}"
PACKAGE_ARCH_om-gta02 = "${MACHINE_ARCH}"
diff --git a/recipes/pkgconfig/pkgconfig.inc b/recipes/pkgconfig/pkgconfig.inc
index 495403eaf5..cb6bd0256e 100644
--- a/recipes/pkgconfig/pkgconfig.inc
+++ b/recipes/pkgconfig/pkgconfig.inc
@@ -21,6 +21,6 @@ do_configure_prepend () {
install -m 0644 ${WORKDIR}/glibconfig-sysdefs.h glib-1.2.*/
}
-do_stage_prepend() {
+do_stage() {
install -d -m 0755 ${STAGING_LIBDIR}/pkgconfig
}
diff --git a/recipes/pointercal/files/sgh-i900/pointercal b/recipes/pointercal/files/sgh-i900/pointercal
new file mode 100644
index 0000000000..fd7286f16c
--- /dev/null
+++ b/recipes/pointercal/files/sgh-i900/pointercal
@@ -0,0 +1 @@
+4387 -6 -1193784 18 -6721 26749798 65536
diff --git a/recipes/policykit/policykit_0.9.bb b/recipes/policykit/policykit_0.9.bb
index 2a31701fc3..b13bff6f49 100644
--- a/recipes/policykit/policykit_0.9.bb
+++ b/recipes/policykit/policykit_0.9.bb
@@ -1,7 +1,7 @@
HOMEPAGE = "http://www.packagekit.org/"
-DEPENDS = "libpam expat dbus-glib"
+DEPENDS = "libpam expat dbus-glib intltool-native"
-PR = "r5"
+PR = "r6"
SRC_URI = "http://hal.freedesktop.org/releases/PolicyKit-${PV}.tar.gz \
file://PolicyKit.conf \
diff --git a/recipes/portaudio/portaudio-v19_svn.bb b/recipes/portaudio/portaudio-v19_svn.bb
index 2dbef45d2d..5e3097dea7 100644
--- a/recipes/portaudio/portaudio-v19_svn.bb
+++ b/recipes/portaudio/portaudio-v19_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "A portable audio library"
SECTION = "libs/multimedia"
PRIORITY = "optional"
LICENSE = "GPL"
-PV = "v19+svnr${SRCREV}"
+PV = "v19+svnr${SRCPV}"
PR = "r0"
SRC_URI = "svn://www.portaudio.com/repos/portaudio;module=trunk;proto=http"
diff --git a/recipes/povray/povray-3.6.1+3.7.0-beta25b/boost.patch b/recipes/povray/povray-3.6.1+3.7.0-beta25b/boost.patch
new file mode 100644
index 0000000000..bd2ba46d2f
--- /dev/null
+++ b/recipes/povray/povray-3.6.1+3.7.0-beta25b/boost.patch
@@ -0,0 +1,82 @@
+Index: povray-3.7.0.beta.25b/source/backend/support/taskqueue.h
+===================================================================
+--- povray-3.7.0.beta.25b.orig/source/backend/support/taskqueue.h 2009-11-11 21:18:50.066527987 +0100
++++ povray-3.7.0.beta.25b/source/backend/support/taskqueue.h 2009-11-11 21:20:14.249441749 +0100
+@@ -98,6 +98,7 @@
+
+ #include <boost/thread.hpp>
+ #include <boost/shared_ptr.hpp>
++#include <boost/thread/condition.hpp>
+
+ #include "base/povmscpp.h"
+ #include "backend/support/task.h"
+Index: povray-3.7.0.beta.25b/source/backend/support/task.cpp
+===================================================================
+--- povray-3.7.0.beta.25b.orig/source/backend/support/task.cpp 2009-11-11 21:21:32.645269202 +0100
++++ povray-3.7.0.beta.25b/source/backend/support/task.cpp 2009-11-11 21:22:52.322759257 +0100
+@@ -241,7 +241,7 @@
+ FatalErrorHandler(e);
+ failed = e.code(kUncategorizedError);
+ }
+- catch(exception& e)
++ catch(std::exception& e)
+ {
+ FatalErrorHandler(POV_EXCEPTION_STRING(e.what()));
+ failed = kUncategorizedError;
+@@ -266,7 +266,7 @@
+ FatalErrorHandler(e);
+ failed = e.code(kUncategorizedError);
+ }
+- catch(exception& e)
++ catch(std::exception& e)
+ {
+ FatalErrorHandler(POV_EXCEPTION_STRING(e.what()));
+ failed = kUncategorizedError;
+@@ -291,7 +291,7 @@
+ {
+ FatalErrorHandler(e);
+ }
+- catch(exception& e)
++ catch(std::exception& e)
+ {
+ FatalErrorHandler(POV_EXCEPTION_STRING(e.what()));
+ }
+Index: povray-3.7.0.beta.25b/vfe/vfesession.h
+===================================================================
+--- povray-3.7.0.beta.25b.orig/vfe/vfesession.h 2009-11-11 21:24:05.381913997 +0100
++++ povray-3.7.0.beta.25b/vfe/vfesession.h 2009-11-11 21:27:19.715316358 +0100
+@@ -94,6 +94,8 @@
+ #ifndef __VFESESSION_H__
+ #define __VFESESSION_H__
+
++#include <boost/thread/condition.hpp>
++
+ namespace vfe
+ {
+ using namespace pov_frontend;
+Index: povray-3.7.0.beta.25b/vfe/vfecontrol.cpp
+===================================================================
+--- povray-3.7.0.beta.25b.orig/vfe/vfecontrol.cpp 2009-11-11 21:27:33.098560840 +0100
++++ povray-3.7.0.beta.25b/vfe/vfecontrol.cpp 2009-11-11 21:28:18.396060074 +0100
+@@ -430,7 +430,7 @@
+ if (!m_Frontend->Start (m_RenderOptions.m_Options))
+ return (m_LastError = vfeFailedToSendRenderStart) ;
+ }
+- catch (exception& e)
++ catch (std::exception& e)
+ {
+ if (dynamic_cast<pov_base::Exception *> (&e) != NULL)
+ m_RenderErrorCode = dynamic_cast<pov_base::Exception *> (&e)->code() ;
+Index: povray-3.7.0.beta.25b/vfe/vfesession.cpp
+===================================================================
+--- povray-3.7.0.beta.25b.orig/vfe/vfesession.cpp 2009-11-11 21:29:12.798555641 +0100
++++ povray-3.7.0.beta.25b/vfe/vfesession.cpp 2009-11-11 21:30:29.119796942 +0100
+@@ -695,7 +695,7 @@
+ m_Failed = true;
+ m_LastError = vfeCaughtException;
+ }
+- catch (exception&)
++ catch (std::exception&)
+ {
+ m_Failed = true;
+ m_LastError = vfeCaughtException;
diff --git a/recipes/povray/povray_3.6.1+3.7.0-beta25b.bb b/recipes/povray/povray_3.6.1+3.7.0-beta25b.bb
index 5ca797cef6..82eacaee7c 100644
--- a/recipes/povray/povray_3.6.1+3.7.0-beta25b.bb
+++ b/recipes/povray/povray_3.6.1+3.7.0-beta25b.bb
@@ -4,12 +4,13 @@ SECTION = "console/graphics"
LICENSE = "povray"
DEPENDS = "virtual/libx11 boost zlib jpeg libpng tiff"
-PR = "r1"
+PR = "r2"
#We apply a patch that subverts the checks for jpeg, zlib, png and tiff because we know OE has the required versions, but it is still a hack.
SRC_URI = "http://www.povray.org/redirect/www.povray.org/beta/source/povray-src-3.7.0.beta.25b.tar.bz2 \
file://configure-cross-hack.patch;patch=1 \
file://gcc43.diff;patch=1 \
+ file://boost.patch;patch=1 \
"
S = "${WORKDIR}/povray-3.7.0.beta.25b"
diff --git a/recipes/powervr-drivers/libgles-omap3-3.01.00.02/rc.pvr b/recipes/powervr-drivers/libgles-omap3-3.01.00.02/rc.pvr
new file mode 100755
index 0000000000..1b3c274593
--- /dev/null
+++ b/recipes/powervr-drivers/libgles-omap3-3.01.00.02/rc.pvr
@@ -0,0 +1,58 @@
+#!/bin/sh
+
+CPUTYPE="$(cputype)"
+
+if [ "$1" = "" ]; then
+ echo PVR-INIT: Please use start, stop, or restart.
+ exit 1
+fi
+
+if [ "$1" = "stop" -o "$1" = "restart" ]; then
+ echo Stopping PVR
+ #rmmod bc_example
+ rmmod omaplfb 2>/dev/null
+ rmmod pvrsrvkm 2>/dev/null
+fi
+
+if [ "$1" = "stop" ]; then
+ exit 0
+fi
+
+if [ $CPUTYPE = "OMAP3530" ]; then
+ echo Starting PVR
+ insmod $(busybox find /lib/modules/$(uname -r) -name "pvrsrvkm.ko")
+ #modprobe bc_example
+ modprobe omaplfb
+
+ pvr_maj=`grep "pvrsrvkm$" /proc/devices | cut -b1,2,3`
+
+ if [ -e /dev/pvrsrvkm ] ; then
+ rm -f /dev/pvrsrvkm
+ fi
+
+ mknod /dev/pvrsrvkm c $pvr_maj 0
+ chmod 666 /dev/pvrsrvkm
+
+ touch /etc/powervr-esrev
+
+ SAVED_ESREVISION="$(cat /etc/powervr-esrev)"
+ ES_REVISION="$(cat /proc/cpuinfo | grep "CPU revision" | awk -F: '{print $2}')"
+
+ if [ "${ES_REVISION}" != "${SAVED_ESREVISION}" ] ; then
+ echo -n "Starting SGX fixup for"
+ if [ "${ES_REVISION}" = " 3" ] ; then
+ echo " ES3.x"
+ cp -a /usr/lib/ES3.0/* /usr/lib
+ cp -a /usr/bin/ES3.0/* /usr/bin
+ else
+ echo "ES 2.x"
+ cp -a /usr/lib/ES2.0/* /usr/lib
+ cp -a /usr/bin/ES2.0/* /usr/bin
+ fi
+ echo "${ES_REVISION}" > /etc/powervr-esrev
+ fi
+ /usr/bin/pvrsrvinit
+else
+ echo No SGX hardware, not starting PVR
+fi
+
diff --git a/recipes/powervr-drivers/libgles-omap3.inc b/recipes/powervr-drivers/libgles-omap3.inc
index 79dcf59dd0..208da9e052 100644
--- a/recipes/powervr-drivers/libgles-omap3.inc
+++ b/recipes/powervr-drivers/libgles-omap3.inc
@@ -89,10 +89,7 @@ do_install () {
install -m 0755 ${WORKDIR}/cputype ${D}${bindir}/
cp -pP ${BINLOCATION}/*_test ${D}${bindir}/
- cp -pP ${BINLOCATION}/gl2info ${D}${bindir}/
- cp -pP ${BINLOCATION}/gles1test1 ${D}${bindir}/
- cp -pP ${BINLOCATION}/gles1_texture_stream ${D}${bindir}/
- cp -pP ${BINLOCATION}/gles2test1 ${D}${bindir}/
+ cp -pP ${BINLOCATION}/gl* ${D}${bindir}/
cp -pP ${BINLOCATION}/p[dv]* ${D}${bindir}/
cp -pP ${BINLOCATION}/xgles1test1 ${D}${bindir}/
diff --git a/recipes/powervr-drivers/libgles-omap3_3.01.00.02.bb b/recipes/powervr-drivers/libgles-omap3_3.01.00.02.bb
new file mode 100644
index 0000000000..7d5af472cf
--- /dev/null
+++ b/recipes/powervr-drivers/libgles-omap3_3.01.00.02.bb
@@ -0,0 +1,30 @@
+BINLOCATION = "${S}/gfx_rel_es3.x"
+
+require libgles-omap3.inc
+
+DEFAULT_PREFERENCE = "-1"
+# download required binary distribution from:
+# http://software-dl.ti.com/dsps/forms/export.html?prod_no=/OMAP35x_Graphics_SDK_setuplinux_3_01_00_02.bin
+
+SGXPV = "3_01_00_02"
+IMGPV = "1.4.14.2514"
+BINFILE := "OMAP35x_Graphics_SDK_setuplinux_${SGXPV}.bin"
+
+# The ES2.x and ES3.x CPUs have different SGX hardware, so we need to install 2 sets of userspace
+do_install_append() {
+ install -d ${D}${libdir}/ES3.0
+ install -d ${D}${libdir}/ES2.0
+ install -d ${D}${bindir}/ES3.0
+ install -d ${D}${bindir}/ES2.0
+
+ cp ${S}/gfx_rel_es2.x/lib* ${D}${libdir}/ES2.0/
+ cp ${S}/gfx_rel_es2.x//p[dv]* ${D}${bindir}/ES2.0/
+
+ cp ${D}${libdir}/lib*${IMGPV} ${D}${libdir}/ES3.0/
+ cp ${D}${bindir}/p[dv]* ${D}${bindir}/ES3.0
+}
+
+# Quality control is really poor on these SDKs, so hack around the latest madness:
+FILES_${PN} += "${libdir}/*.so "
+FILES_${PN}-dev = "${includedir}"
+
diff --git a/recipes/powervr-drivers/omap3-sgx-modules/0001-Compile-fixes-for-recent-kernels.patch b/recipes/powervr-drivers/omap3-sgx-modules/0001-Compile-fixes-for-recent-kernels.patch
new file mode 100644
index 0000000000..53b1f2772e
--- /dev/null
+++ b/recipes/powervr-drivers/omap3-sgx-modules/0001-Compile-fixes-for-recent-kernels.patch
@@ -0,0 +1,28 @@
+From ef693358e658a7cbab4d2696108d9d4240ab8096 Mon Sep 17 00:00:00 2001
+From: Mike Rapoport <mike@compulab.co.il>
+Date: Wed, 2 Dec 2009 10:13:15 +0200
+Subject: [PATCH] Compile fixes for recent kernels
+
+---
+ .../3rdparty/dc_omap3430_linux/omaplfb_linux.c | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/services4/3rdparty/dc_omap3430_linux/omaplfb_linux.c b/services4/3rdparty/dc_omap3430_linux/omaplfb_linux.c
+index 935f78b..4d41829 100755
+--- a/services4/3rdparty/dc_omap3430_linux/omaplfb_linux.c
++++ b/services4/3rdparty/dc_omap3430_linux/omaplfb_linux.c
+@@ -57,7 +57,11 @@ extern int omap_dispc_request_irq(unsigned long, void (*)(void *), void *);
+ extern void omap_dispc_free_irq(unsigned long, void (*)(void *), void *);
+ extern void omap_dispc_set_plane_base(int plane, IMG_UINT32 phys_addr);
+ #else
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)
++#include <plat/display.h>
++#else
+ #include <mach/display.h>
++#endif
+ #include <linux/console.h>
+ #include <linux/fb.h>
+ #endif
+--
+1.6.4.4
+
diff --git a/recipes/powervr-drivers/omap3-sgx-modules_1.3.13.1607.bb b/recipes/powervr-drivers/omap3-sgx-modules_1.3.13.1607.bb
index 9bd77ad9af..603c81f9a4 100644
--- a/recipes/powervr-drivers/omap3-sgx-modules_1.3.13.1607.bb
+++ b/recipes/powervr-drivers/omap3-sgx-modules_1.3.13.1607.bb
@@ -8,6 +8,7 @@ SRC_URI = "file://omap3-sgx-modules-${PV}.tar.bz2 \
file://rotation-dss2.patch;patch=1 \
file://build_es3.x_sgx.patch;patch=1 \
file://proc-interface.patch;patch=1 \
+ file://0001-Compile-fixes-for-recent-kernels.patch;patch=1 \
"
PVRBUILD = "release"
diff --git a/recipes/powervr-drivers/omap3-sgx-modules_1.4.14.2514.bb b/recipes/powervr-drivers/omap3-sgx-modules_1.4.14.2514.bb
new file mode 100644
index 0000000000..9da9a478f8
--- /dev/null
+++ b/recipes/powervr-drivers/omap3-sgx-modules_1.4.14.2514.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "Kernel drivers for the PowerVR SGX chipset found in the omap3 SoCs"
+LICENSE = "GPLv2"
+
+DEFAULT_PREFERENCE = "-1"
+
+require ../ti/ti-dspbios.inc
+
+# download required binary distribution from:
+# http://software-dl.ti.com/dsps/forms/export.html?prod_no=/OMAP35x_Graphics_SDK_setuplinux_3_01_00_02.bin
+
+SGXPV = "3_01_00_02"
+IMGPV = "1.4.14.2514"
+BINFILE := "OMAP35x_Graphics_SDK_setuplinux_${SGXPV}.bin"
+
+SRC_URI = "file://OMAP35x_Graphics_SDK_setuplinux_${SGXPV}.bin"
+
+S = "${WORKDIR}/OMAP35x_Graphics_SDK_${SGXPV}/GFX_Linux_KM"
+
+inherit module
+
+PVRBUILD = "release"
+
+INHIBIT_PACKAGE_STRIP = "1"
+
+MAKE_TARGETS = " BUILD=${PVRBUILD}"
+
+do_install() {
+ mkdir -p ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/gpu/pvr
+ cp ${S}/pvrsrvkm.ko \
+ ${S}/services4/3rdparty/dc_omap3430_linux/omaplfb.ko \
+ ${S}/services4/3rdparty/bufferclass_ti/bufferclass_ti.ko \
+ ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/gpu/pvr
+}
diff --git a/recipes/prismstumbler/prismstumbler-0.7.3+0.7.4pre1/libgps-check.patch b/recipes/prismstumbler/prismstumbler-0.7.3+0.7.4pre1/libgps-check.patch
new file mode 100644
index 0000000000..613adb2255
--- /dev/null
+++ b/recipes/prismstumbler/prismstumbler-0.7.3+0.7.4pre1/libgps-check.patch
@@ -0,0 +1,57 @@
+Index: prismstumbler-0.7.4pre1/configure.ac
+===================================================================
+--- prismstumbler-0.7.4pre1.orig/configure.ac
++++ prismstumbler-0.7.4pre1/configure.ac
+@@ -137,51 +137,11 @@ AC_ARG_ENABLE(static-libgps,
+ ], [ static_libgps="no"]
+ )
+
+-AC_MSG_CHECKING(for libgps)
+-AC_ARG_WITH(libgps,
+-[ --with-libgps=DIR use libgps in DIR],
+-[ case "$withval" in
+- *)
+- AC_MSG_RESULT($withval)
+- if test -f $withval/include/gps.h -a -f $withval/lib/libgps.a; then
+- owd=`pwd`
+- if cd $withval; then withval=`pwd`; cd $owd; fi
+- libgps_dir=${withval}
+- GPSD_CFLAGS="-I$withval/include"
+- if test "x$static_libgps" = "xyes"; then
+- GPSD_LIBS="-lm -lpthread $withval/lib/libgps.a"
+- else
+- GPSD_LIBS="-L$withval/lib -lgps"
+- fi
+- else
+- AC_ERROR(libgps not found in $withval prefix)
+- fi
+- ;;
+- esac ],
+-[
+- for dir in ${prefix} ${prefix}/local /usr /usr/local; do
+- if test -f ${dir}/include/gps.h -a -f ${dir}/lib/libgps.a; then
+- libgps_dir=${dir}
+- GPSD_CFLAGS="-I${dir}/include"
+- if test "x$static_libgps" = "xyes"; then
+- GPSD_LIBS="-lm -lpthread ${dir}/lib/libgps.a"
+- else
+- GPSD_LIBS="-L${dir}/lib -lgps"
+- fi
+- fi
+- done
+- if test -z ${libgps_dir}; then
+- AC_MSG_RESULT(no)
+- AC_ERROR(libgps not found)
+- fi
+- AC_MSG_RESULT(yes) ]
+-)
++PKG_CHECK_MODULES([GPSD], [libgps])
+
+ if test -z "$GPSD_CFLAGS"; then
+ AC_ERROR("libgps not found")
+ fi
+-AC_SUBST(GPSD_CFLAGS)
+-AC_SUBST(GPSD_LIBS)
+
+
+ dnl Checks for wireless lib
diff --git a/recipes/prismstumbler/prismstumbler_0.7.3+0.7.4pre1.bb b/recipes/prismstumbler/prismstumbler_0.7.3+0.7.4pre1.bb
index bc23824e42..fb444e2f01 100644
--- a/recipes/prismstumbler/prismstumbler_0.7.3+0.7.4pre1.bb
+++ b/recipes/prismstumbler/prismstumbler_0.7.3+0.7.4pre1.bb
@@ -1,5 +1,5 @@
SECTION = "x11/network"
-PR = "r3"
+PR = "r4"
PACKAGES = "${PN}-dbg prismstumbler prismstumbler-frontend prismstumbler-doc"
DESCRIPTION = "Prismstumbler wireless LAN scanner"
@@ -14,7 +14,8 @@ RRECOMMENDS = "gpsd"
SRC_URI = "http://projects.linuxtogo.org/frs/download.php/14/${PN}-0.7.4pre1.tar.gz \
file://gpsapi.patch;patch=1 \
${@['', 'file://wireless.patch;patch=1'][bb.data.getVar('PREFERRED_VERSION_linux-libc-headers', d, 1) and bb.data.getVar('PREFERRED_VERSION_linux-libc-headers', d, 1).split('.')[2] < '30']} \
- file://fix-includes.patch;patch=1;pnum=0"
+ file://fix-includes.patch;patch=1;pnum=0 \
+ file://libgps-check.patch;patch=1"
S = "${WORKDIR}/${PN}-0.7.4pre1"
@@ -22,7 +23,6 @@ inherit autotools pkgconfig
EXTRA_OECONF = "--x-includes=${STAGING_INCDIR}/X11 \
--x-libraries=${STAGING_LIBDIR} \
- --with-libgps=${STAGING_EXECPREFIXDIR} \
--with-libpcap=${STAGING_EXECPREFIXDIR} \
--with-sqlite-includes=${STAGING_INCDIR} \
--with-sqlite-libs=${STAGING_LIBDIR} \
diff --git a/recipes/proxy-libintl/proxy-libintl_20080418.bb b/recipes/proxy-libintl/proxy-libintl_20080418.bb
index dccd3eabe2..c5336b222d 100644
--- a/recipes/proxy-libintl/proxy-libintl_20080418.bb
+++ b/recipes/proxy-libintl/proxy-libintl_20080418.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/"
SECTION = "libs"
LICENSE = "LGPL"
-PR = "r3"
+PR = "r4"
PROVIDES = "virtual/libintl"
SRC_URI = " \
@@ -26,16 +26,10 @@ do_compile() {
}
do_install() {
- install -d ${D}/usr/include
- install -d ${D}/usr/lib
-
+ install -d ${D}/${includedir}
install -m 0644 ${WORKDIR}/include/libintl.h ${D}/${includedir}
- install -m 0644 ${WORKDIR}/lib/libintl.so ${D}/${libdir}
- install -m 0644 ${WORKDIR}/lib/libintl.a ${D}/${libdir}
-}
-do_stage() {
- install -m 0644 ${WORKDIR}/include/libintl.h ${STAGING_INCDIR}
- oe_libinstall -a -so -C lib libintl ${STAGING_LIBDIR}
+ install -d ${D}/${libdir}
+ oe_libinstall -a -so -C lib libintl ${D}/${libdir}
}
diff --git a/recipes/psplash/psplash.inc b/recipes/psplash/psplash.inc
index 515c830ce1..f2be0b3f6b 100644
--- a/recipes/psplash/psplash.inc
+++ b/recipes/psplash/psplash.inc
@@ -7,7 +7,7 @@ PROVIDES = "virtual/psplash"
RPROVIDES_${PN} = "virtual-psplash"
RCONFLICTS_${PN} = "exquisite"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR = "r23"
# You can create your own pslash-hand-img.h by doing
diff --git a/recipes/ptpd/ptpd_1.0.0.bb b/recipes/ptpd/ptpd_1.0.0.bb
new file mode 100644
index 0000000000..a5263a07ef
--- /dev/null
+++ b/recipes/ptpd/ptpd_1.0.0.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "Precision Time Protocol (PTP) as defined by the IEEE 1588 standard"
+HOMEPAGE = "http://sourceforge.net/projects/ptpd"
+LICENSE = "BSD"
+SECTION = "network"
+PR = "r0"
+
+SRC_URI = "http://downloads.sourceforge.net/project/ptpd/ptpd/${PV}/ptpd-${PV}.tar.gz"
+S = "${WORKDIR}/ptpd-${PV}/src"
+
+do_install() {
+ install -d ${D}${bindir} ${D}${mandir}/man8
+ install -m 4555 ptpd ${D}${bindir}
+ install -m 644 ptpd.8 ${D}${mandir}/man8
+}
diff --git a/recipes/pulseaudio/paprefs_0.9.9.bb b/recipes/pulseaudio/paprefs_0.9.9.bb
new file mode 100644
index 0000000000..2b62bce013
--- /dev/null
+++ b/recipes/pulseaudio/paprefs_0.9.9.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "PulseAudio Preferences (paprefs) is a simple GTK based configuration dialog for the PulseAudio sound server"
+LICENSE = "GPLv2"
+DEPENDS = "gconfmm libglademm libcanberra gtk+ libnotify gconf pulseaudio"
+
+inherit gnome
+
+SRC_URI = "http://0pointer.de/lennart/projects/${PN}/${PN}-${PV}.tar.gz"
+
+
diff --git a/recipes/pulseaudio/pulseaudio-0.9.19/autoconf_version.patch b/recipes/pulseaudio/pulseaudio-0.9.19/autoconf_version.patch
new file mode 100644
index 0000000000..7a0759da13
--- /dev/null
+++ b/recipes/pulseaudio/pulseaudio-0.9.19/autoconf_version.patch
@@ -0,0 +1,13 @@
+Index: pulseaudio-0.9.15/configure.ac
+===================================================================
+--- pulseaudio-0.9.15.orig/configure.ac 2009-04-14 00:09:53.000000000 +0100
++++ pulseaudio-0.9.15/configure.ac 2009-05-22 11:32:50.000000000 +0100
+@@ -20,7 +20,7 @@
+ # along with PulseAudio; if not, write to the Free Software Foundation,
+ # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+-AC_PREREQ(2.63)
++AC_PREREQ(2.61)
+
+ m4_define(pa_major, [0])
+ m4_define(pa_minor, [9])
diff --git a/recipes/pulseaudio/pulseaudio-0.9.19/buildfix.patch b/recipes/pulseaudio/pulseaudio-0.9.19/buildfix.patch
new file mode 100644
index 0000000000..ca01e0d80f
--- /dev/null
+++ b/recipes/pulseaudio/pulseaudio-0.9.19/buildfix.patch
@@ -0,0 +1,13 @@
+Index: pulseaudio-0.9.11/src/pulsecore/atomic.h
+===================================================================
+--- pulseaudio-0.9.11.orig/src/pulsecore/atomic.h
++++ pulseaudio-0.9.11/src/pulsecore/atomic.h
+@@ -40,6 +40,8 @@
+ #error "Please include config.h before including this file!"
+ #endif
+
++#include "macro.h"
++
+ #ifdef HAVE_ATOMIC_BUILTINS
+
+ /* __sync based implementation */
diff --git a/recipes/pulseaudio/pulseaudio-0.9.19/configure_silent_rules.patch b/recipes/pulseaudio/pulseaudio-0.9.19/configure_silent_rules.patch
new file mode 100644
index 0000000000..aeabec2b09
--- /dev/null
+++ b/recipes/pulseaudio/pulseaudio-0.9.19/configure_silent_rules.patch
@@ -0,0 +1,29 @@
+Index: pulseaudio-0.9.19/configure.ac
+===================================================================
+--- pulseaudio-0.9.19.orig/configure.ac 2009-10-31 11:40:00.000000000 +0000
++++ pulseaudio-0.9.19/configure.ac 2009-10-31 11:50:35.000000000 +0000
+@@ -27,12 +27,13 @@
+ AC_CONFIG_SRCDIR([src/daemon/main.c])
+ AC_CONFIG_MACRO_DIR([m4])
+ AC_CONFIG_HEADERS([config.h])
+-AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules tar-pax])
++AM_INIT_AUTOMAKE([foreign 1.10 -Wall -Wno-portability tar-pax])
+
+ m4_define(pa_major, `echo $VERSION | cut -d. -f1 | cut -d- -f1`)
+ m4_define(pa_minor, `echo $VERSION | cut -d. -f2 | cut -d- -f1`)
+ m4_define(pa_micro, `echo $VERSION | cut -d. -f3 | cut -d- -f1`)
+
++
+ AC_SUBST(PA_MAJOR, pa_major)
+ AC_SUBST(PA_MINOR, pa_minor)
+ AC_SUBST(PA_MICRO, pa_micro)
+@@ -80,7 +81,8 @@
+ ;;
+ esac
+
+-AM_SILENT_RULES([yes])
++# only use if available
++m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+
+ #### Checks for programs. ####
+
diff --git a/recipes/pulseaudio/pulseaudio-0.9.19/fixbluezbuild.patch b/recipes/pulseaudio/pulseaudio-0.9.19/fixbluezbuild.patch
new file mode 100644
index 0000000000..d817a62b4d
--- /dev/null
+++ b/recipes/pulseaudio/pulseaudio-0.9.19/fixbluezbuild.patch
@@ -0,0 +1,13 @@
+Index: pulseaudio-0.9.15/src/Makefile.am
+===================================================================
+--- pulseaudio-0.9.15.orig/src/Makefile.am 2009-07-07 22:04:21.313945421 +0200
++++ pulseaudio-0.9.15/src/Makefile.am 2009-07-07 22:04:32.503184920 +0200
+@@ -1534,7 +1534,7 @@
+
+ libbluetooth_ipc_la_SOURCES = modules/bluetooth/ipc.c modules/bluetooth/ipc.h
+ libbluetooth_ipc_la_LDFLAGS = -avoid-version
+-libbluetooth_ipc_la_LIBADD = $(AM_LIBADD)libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
++libbluetooth_ipc_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
+ libbluetooth_ipc_la_CFLAGS = $(AM_CFLAGS)
+ BLUETOOTH_IPC_FILES = $(subst modules/bluetooth/,,$(libbluetooth_ipc_la_SOURCES)) rtp.h
+
diff --git a/recipes/pulseaudio/pulseaudio-0.9.19/gcc4-compile-fix.patch b/recipes/pulseaudio/pulseaudio-0.9.19/gcc4-compile-fix.patch
new file mode 100644
index 0000000000..34ad026e4d
--- /dev/null
+++ b/recipes/pulseaudio/pulseaudio-0.9.19/gcc4-compile-fix.patch
@@ -0,0 +1,18 @@
+| fix for more strict syntax compliance in gcc4.x
+| pulsecore/core-util.c: In function 'pa_raise_priority':
+| pulsecore/core-util.c:547: error: label at end of compound statement
+| Signed off: mickey@openmoko.org
+|
+Index: pulseaudio-0.9.6/src/pulsecore/core-util.c
+===================================================================
+--- pulseaudio-0.9.6.orig/src/pulsecore/core-util.c
++++ pulseaudio-0.9.6/src/pulsecore/core-util.c
+@@ -535,7 +535,7 @@ void pa_raise_priority(void) {
+ pa_log_info("Successfully gained high priority class.");
+ #endif
+
+-fail:
++fail:;
+
+ #if defined(HAVE_SYS_CAPABILITY_H)
+ if (caps) {
diff --git a/recipes/pulseaudio/pulseaudio-0.9.19/gettext.patch b/recipes/pulseaudio/pulseaudio-0.9.19/gettext.patch
new file mode 100644
index 0000000000..37e41b9ea6
--- /dev/null
+++ b/recipes/pulseaudio/pulseaudio-0.9.19/gettext.patch
@@ -0,0 +1,127 @@
+Index: pulseaudio-0.9.19/configure.ac
+===================================================================
+--- pulseaudio-0.9.19.orig/configure.ac 2009-11-26 14:05:11.000000000 +0100
++++ pulseaudio-0.9.19/configure.ac 2009-11-26 14:06:28.304369265 +0100
+@@ -483,15 +483,15 @@
+ # Check for open64 to know if the current system does have open64() and similar functions
+ AC_CHECK_FUNCS_ONCE([open64])
+
+-#### [lib]iconv ####
++#### localization support ####
+
+ AM_ICONV
+-
+-IT_PROG_INTLTOOL([0.35.0])
+-GETTEXT_PACKAGE=pulseaudio
++IT_PROG_INTLTOOL([0.37.0])
++GETTEXT_PACKAGE=$PACKAGE
+ AC_SUBST([GETTEXT_PACKAGE])
+ AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
+-AM_GLIB_GNU_GETTEXT
++AM_GNU_GETTEXT([external])
++AM_GNU_GETTEXT_VERSION([0.17])
+
+ pulselocaledir='${prefix}/${DATADIRNAME}/locale'
+ AC_SUBST(pulselocaledir)
+Index: pulseaudio-0.9.19/src/pulse/i18n.h
+===================================================================
+--- pulseaudio-0.9.19.orig/src/pulse/i18n.h 2009-01-28 04:25:54.000000000 +0100
++++ pulseaudio-0.9.19/src/pulse/i18n.h 2009-11-26 14:06:28.304369265 +0100
+@@ -28,15 +28,13 @@
+
+ PA_C_DECL_BEGIN
+
+-#if !defined(GETTEXT_PACKAGE)
+-#error "Something is very wrong here, config.h needs to be included first"
+-#endif
++
+
+ #ifdef ENABLE_NLS
+
+ #include <libintl.h>
+
+-#define _(String) dgettext(GETTEXT_PACKAGE, String)
++#define _(String) dgettext(PACKAGE, String)
+ #ifdef gettext_noop
+ #define N_(String) gettext_noop(String)
+ #else
+Index: pulseaudio-0.9.19/src/pulse/i18n.c
+===================================================================
+--- pulseaudio-0.9.19.orig/src/pulse/i18n.c 2008-10-19 22:25:20.000000000 +0200
++++ pulseaudio-0.9.19/src/pulse/i18n.c 2009-11-26 14:06:28.304369265 +0100
+@@ -31,8 +31,8 @@
+
+ PA_ONCE_BEGIN {
+
+- bindtextdomain(GETTEXT_PACKAGE, PULSE_LOCALEDIR);
+- bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
++ bindtextdomain(PACKAGE, PULSE_LOCALEDIR);
++ bind_textdomain_codeset(PACKAGE, "UTF-8");
+
+ } PA_ONCE_END;
+ }
+Index: pulseaudio-0.9.19/src/utils/pacat.c
+===================================================================
+--- pulseaudio-0.9.19.orig/src/utils/pacat.c 2009-09-18 22:21:44.000000000 +0200
++++ pulseaudio-0.9.19/src/utils/pacat.c 2009-11-26 14:06:28.304369265 +0100
+@@ -699,7 +699,7 @@
+ };
+
+ setlocale(LC_ALL, "");
+- bindtextdomain(GETTEXT_PACKAGE, PULSE_LOCALEDIR);
++ bindtextdomain(PACKAGE, PULSE_LOCALEDIR);
+
+ bn = pa_path_get_filename(argv[0]);
+
+Index: pulseaudio-0.9.19/src/utils/pacmd.c
+===================================================================
+--- pulseaudio-0.9.19.orig/src/utils/pacmd.c 2009-08-19 04:17:06.000000000 +0200
++++ pulseaudio-0.9.19/src/utils/pacmd.c 2009-11-26 14:06:28.307708271 +0100
+@@ -63,7 +63,7 @@
+ struct pollfd pollfd[N_WATCH];
+
+ setlocale(LC_ALL, "");
+- bindtextdomain(GETTEXT_PACKAGE, PULSE_LOCALEDIR);
++ bindtextdomain(PACKAGE, PULSE_LOCALEDIR);
+
+ if (pa_pid_file_check_running(&pid, "pulseaudio") < 0) {
+ pa_log(_("No PulseAudio daemon running, or not running as session daemon."));
+Index: pulseaudio-0.9.19/src/utils/pactl.c
+===================================================================
+--- pulseaudio-0.9.19.orig/src/utils/pactl.c 2009-09-10 02:04:58.000000000 +0200
++++ pulseaudio-0.9.19/src/utils/pactl.c 2009-11-26 14:06:28.307708271 +0100
+@@ -916,7 +916,7 @@
+ };
+
+ setlocale(LC_ALL, "");
+- bindtextdomain(GETTEXT_PACKAGE, PULSE_LOCALEDIR);
++ bindtextdomain(PACKAGE, PULSE_LOCALEDIR);
+
+ bn = pa_path_get_filename(argv[0]);
+
+Index: pulseaudio-0.9.19/src/utils/pasuspender.c
+===================================================================
+--- pulseaudio-0.9.19.orig/src/utils/pasuspender.c 2009-06-08 00:35:57.000000000 +0200
++++ pulseaudio-0.9.19/src/utils/pasuspender.c 2009-11-26 14:06:28.307708271 +0100
+@@ -233,7 +233,7 @@
+ };
+
+ setlocale(LC_ALL, "");
+- bindtextdomain(GETTEXT_PACKAGE, PULSE_LOCALEDIR);
++ bindtextdomain(PACKAGE, PULSE_LOCALEDIR);
+
+ bn = pa_path_get_filename(argv[0]);
+
+Index: pulseaudio-0.9.19/src/utils/pax11publish.c
+===================================================================
+--- pulseaudio-0.9.19.orig/src/utils/pax11publish.c 2009-03-05 12:28:10.000000000 +0100
++++ pulseaudio-0.9.19/src/utils/pax11publish.c 2009-11-26 14:06:28.307708271 +0100
+@@ -50,7 +50,7 @@
+ enum { DUMP, EXPORT, IMPORT, REMOVE } mode = DUMP;
+
+ setlocale(LC_ALL, "");
+- bindtextdomain(GETTEXT_PACKAGE, PULSE_LOCALEDIR);
++ bindtextdomain(PACKAGE, PULSE_LOCALEDIR);
+
+ while ((c = getopt(argc, argv, "deiD:S:O:I:c:hr")) != -1) {
+ switch (c) {
diff --git a/recipes/pulseaudio/pulseaudio-0.9.19/tls_m4.patch b/recipes/pulseaudio/pulseaudio-0.9.19/tls_m4.patch
new file mode 100644
index 0000000000..7b333e3df9
--- /dev/null
+++ b/recipes/pulseaudio/pulseaudio-0.9.19/tls_m4.patch
@@ -0,0 +1,30 @@
+Index: pulseaudio-0.9.15/m4/tls.m4
+===================================================================
+--- pulseaudio-0.9.15.orig/m4/tls.m4 2008-08-19 23:25:02.000000000 +0200
++++ pulseaudio-0.9.15/m4/tls.m4 2009-07-10 09:55:25.266365511 +0200
+@@ -1,12 +1,19 @@
+ AC_DEFUN([CC_CHECK_TLS], [
+ AC_CACHE_CHECK([whether $CC knows __thread for Thread-Local Storage],
+ cc_cv_tls___thread,
+- [AC_COMPILE_IFELSE(
+- AC_LANG_PROGRAM(
+- [[static __thread int a = 6;]],
+- [[a = 5;]]),
+- [cc_cv_tls___thread=yes],
+- [cc_cv_tls___thread=no])
++ [AC_LINK_IFELSE([__thread int a; int b; int main() { return a = b; }],
++ [chktls_save_LDFLAGS="$LDFLAGS"
++ LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"
++ chktls_save_CFLAGS="$CFLAGS"
++ CFLAGS="-fPIC $CFLAGS"
++ dnl If -shared works, test if TLS works in a shared library.
++ AC_LINK_IFELSE([int f() { return 0; }],
++ AC_LINK_IFELSE([__thread int a; int b; int f() { return a = b; }],
++ [cc_cv_tls___thread=yes],
++ [cc_cv_tls___thread=no]),
++ [cc_cv_tls___thread=yes])
++ CFLAGS="$chktls_save_CFLAGS"
++ LDFLAGS="$chktls_save_LDFLAGS"], [cc_cv_tls___thread=no])
+ ])
+
+ AS_IF([test "x$cc_cv_tls___thread" = "xyes"],
diff --git a/recipes/pulseaudio/pulseaudio-0.9.19/volatiles.04_pulse b/recipes/pulseaudio/pulseaudio-0.9.19/volatiles.04_pulse
new file mode 100644
index 0000000000..5b1998032b
--- /dev/null
+++ b/recipes/pulseaudio/pulseaudio-0.9.19/volatiles.04_pulse
@@ -0,0 +1,2 @@
+# <type> <owner> <group> <mode> <path> <linksource>
+d pulse pulse 0755 /var/run/pulse none
diff --git a/recipes/pulseaudio/pulseaudio-0.9.21/autoconf_version.patch b/recipes/pulseaudio/pulseaudio-0.9.21/autoconf_version.patch
new file mode 100644
index 0000000000..7a0759da13
--- /dev/null
+++ b/recipes/pulseaudio/pulseaudio-0.9.21/autoconf_version.patch
@@ -0,0 +1,13 @@
+Index: pulseaudio-0.9.15/configure.ac
+===================================================================
+--- pulseaudio-0.9.15.orig/configure.ac 2009-04-14 00:09:53.000000000 +0100
++++ pulseaudio-0.9.15/configure.ac 2009-05-22 11:32:50.000000000 +0100
+@@ -20,7 +20,7 @@
+ # along with PulseAudio; if not, write to the Free Software Foundation,
+ # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+-AC_PREREQ(2.63)
++AC_PREREQ(2.61)
+
+ m4_define(pa_major, [0])
+ m4_define(pa_minor, [9])
diff --git a/recipes/pulseaudio/pulseaudio-0.9.21/buildfix.patch b/recipes/pulseaudio/pulseaudio-0.9.21/buildfix.patch
new file mode 100644
index 0000000000..ca01e0d80f
--- /dev/null
+++ b/recipes/pulseaudio/pulseaudio-0.9.21/buildfix.patch
@@ -0,0 +1,13 @@
+Index: pulseaudio-0.9.11/src/pulsecore/atomic.h
+===================================================================
+--- pulseaudio-0.9.11.orig/src/pulsecore/atomic.h
++++ pulseaudio-0.9.11/src/pulsecore/atomic.h
+@@ -40,6 +40,8 @@
+ #error "Please include config.h before including this file!"
+ #endif
+
++#include "macro.h"
++
+ #ifdef HAVE_ATOMIC_BUILTINS
+
+ /* __sync based implementation */
diff --git a/recipes/pulseaudio/pulseaudio-0.9.21/configure_silent_rules.patch b/recipes/pulseaudio/pulseaudio-0.9.21/configure_silent_rules.patch
new file mode 100644
index 0000000000..aeabec2b09
--- /dev/null
+++ b/recipes/pulseaudio/pulseaudio-0.9.21/configure_silent_rules.patch
@@ -0,0 +1,29 @@
+Index: pulseaudio-0.9.19/configure.ac
+===================================================================
+--- pulseaudio-0.9.19.orig/configure.ac 2009-10-31 11:40:00.000000000 +0000
++++ pulseaudio-0.9.19/configure.ac 2009-10-31 11:50:35.000000000 +0000
+@@ -27,12 +27,13 @@
+ AC_CONFIG_SRCDIR([src/daemon/main.c])
+ AC_CONFIG_MACRO_DIR([m4])
+ AC_CONFIG_HEADERS([config.h])
+-AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules tar-pax])
++AM_INIT_AUTOMAKE([foreign 1.10 -Wall -Wno-portability tar-pax])
+
+ m4_define(pa_major, `echo $VERSION | cut -d. -f1 | cut -d- -f1`)
+ m4_define(pa_minor, `echo $VERSION | cut -d. -f2 | cut -d- -f1`)
+ m4_define(pa_micro, `echo $VERSION | cut -d. -f3 | cut -d- -f1`)
+
++
+ AC_SUBST(PA_MAJOR, pa_major)
+ AC_SUBST(PA_MINOR, pa_minor)
+ AC_SUBST(PA_MICRO, pa_micro)
+@@ -80,7 +81,8 @@
+ ;;
+ esac
+
+-AM_SILENT_RULES([yes])
++# only use if available
++m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+
+ #### Checks for programs. ####
+
diff --git a/recipes/pulseaudio/pulseaudio-0.9.21/gcc4-compile-fix.patch b/recipes/pulseaudio/pulseaudio-0.9.21/gcc4-compile-fix.patch
new file mode 100644
index 0000000000..34ad026e4d
--- /dev/null
+++ b/recipes/pulseaudio/pulseaudio-0.9.21/gcc4-compile-fix.patch
@@ -0,0 +1,18 @@
+| fix for more strict syntax compliance in gcc4.x
+| pulsecore/core-util.c: In function 'pa_raise_priority':
+| pulsecore/core-util.c:547: error: label at end of compound statement
+| Signed off: mickey@openmoko.org
+|
+Index: pulseaudio-0.9.6/src/pulsecore/core-util.c
+===================================================================
+--- pulseaudio-0.9.6.orig/src/pulsecore/core-util.c
++++ pulseaudio-0.9.6/src/pulsecore/core-util.c
+@@ -535,7 +535,7 @@ void pa_raise_priority(void) {
+ pa_log_info("Successfully gained high priority class.");
+ #endif
+
+-fail:
++fail:;
+
+ #if defined(HAVE_SYS_CAPABILITY_H)
+ if (caps) {
diff --git a/recipes/pulseaudio/pulseaudio-0.9.21/tls_m4.patch b/recipes/pulseaudio/pulseaudio-0.9.21/tls_m4.patch
new file mode 100644
index 0000000000..7b333e3df9
--- /dev/null
+++ b/recipes/pulseaudio/pulseaudio-0.9.21/tls_m4.patch
@@ -0,0 +1,30 @@
+Index: pulseaudio-0.9.15/m4/tls.m4
+===================================================================
+--- pulseaudio-0.9.15.orig/m4/tls.m4 2008-08-19 23:25:02.000000000 +0200
++++ pulseaudio-0.9.15/m4/tls.m4 2009-07-10 09:55:25.266365511 +0200
+@@ -1,12 +1,19 @@
+ AC_DEFUN([CC_CHECK_TLS], [
+ AC_CACHE_CHECK([whether $CC knows __thread for Thread-Local Storage],
+ cc_cv_tls___thread,
+- [AC_COMPILE_IFELSE(
+- AC_LANG_PROGRAM(
+- [[static __thread int a = 6;]],
+- [[a = 5;]]),
+- [cc_cv_tls___thread=yes],
+- [cc_cv_tls___thread=no])
++ [AC_LINK_IFELSE([__thread int a; int b; int main() { return a = b; }],
++ [chktls_save_LDFLAGS="$LDFLAGS"
++ LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"
++ chktls_save_CFLAGS="$CFLAGS"
++ CFLAGS="-fPIC $CFLAGS"
++ dnl If -shared works, test if TLS works in a shared library.
++ AC_LINK_IFELSE([int f() { return 0; }],
++ AC_LINK_IFELSE([__thread int a; int b; int f() { return a = b; }],
++ [cc_cv_tls___thread=yes],
++ [cc_cv_tls___thread=no]),
++ [cc_cv_tls___thread=yes])
++ CFLAGS="$chktls_save_CFLAGS"
++ LDFLAGS="$chktls_save_LDFLAGS"], [cc_cv_tls___thread=no])
+ ])
+
+ AS_IF([test "x$cc_cv_tls___thread" = "xyes"],
diff --git a/recipes/pulseaudio/pulseaudio-0.9.21/volatiles.04_pulse b/recipes/pulseaudio/pulseaudio-0.9.21/volatiles.04_pulse
new file mode 100644
index 0000000000..5b1998032b
--- /dev/null
+++ b/recipes/pulseaudio/pulseaudio-0.9.21/volatiles.04_pulse
@@ -0,0 +1,2 @@
+# <type> <owner> <group> <mode> <path> <linksource>
+d pulse pulse 0755 /var/run/pulse none
diff --git a/recipes/pulseaudio/pulseaudio_0.9.19.bb b/recipes/pulseaudio/pulseaudio_0.9.19.bb
new file mode 100644
index 0000000000..272f16b6e3
--- /dev/null
+++ b/recipes/pulseaudio/pulseaudio_0.9.19.bb
@@ -0,0 +1,22 @@
+require pulseaudio.inc
+
+DEPENDS += "gdbm speex"
+
+PR = "${INC_PR}.0"
+
+inherit gettext
+
+SRC_URI += "\
+ file://buildfix.patch;patch=1 \
+ file://autoconf_version.patch;patch=1 \
+ file://tls_m4.patch;patch=1 \
+ file://configure_silent_rules.patch;patch=1 \
+ file://gettext.patch;patch=1 \
+ file://fixbluezbuild.patch;patch=1 \
+"
+
+do_compile_prepend() {
+ cd ${S}
+ mkdir -p ${S}/libltdl
+ cp ${STAGING_LIBDIR}/libltdl* ${S}/libltdl
+}
diff --git a/recipes/pulseaudio/pulseaudio_0.9.21.bb b/recipes/pulseaudio/pulseaudio_0.9.21.bb
new file mode 100644
index 0000000000..cd9e46e4f2
--- /dev/null
+++ b/recipes/pulseaudio/pulseaudio_0.9.21.bb
@@ -0,0 +1,18 @@
+require pulseaudio.inc
+
+DEPENDS += "gdbm speex"
+
+inherit gettext
+
+SRC_URI += "\
+ file://buildfix.patch;patch=1 \
+ file://autoconf_version.patch;patch=1 \
+ file://tls_m4.patch;patch=1 \
+ file://configure_silent_rules.patch;patch=1 \
+"
+
+do_compile_prepend() {
+ cd ${S}
+ mkdir -p ${S}/libltdl
+ cp ${STAGING_LIBDIR}/libltdl* ${S}/libltdl
+}
diff --git a/recipes/puzzles/oh-puzzles_svn.bb b/recipes/puzzles/oh-puzzles_svn.bb
index f0e0eade69..f5796e49fc 100644
--- a/recipes/puzzles/oh-puzzles_svn.bb
+++ b/recipes/puzzles/oh-puzzles_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Portable Puzzle Collection"
LICENSE = "MIT"
SECTION = "x11"
DEPENDS = "gtk+ gconf intltool-native librsvg libowl"
-PV = "0.1+svnr${SRCREV}"
+PV = "0.1+svnr${SRCPV}"
PR = "r5"
inherit autotools pkgconfig
diff --git a/recipes/pyphonelog/pyphonelog_git.bb b/recipes/pyphonelog/pyphonelog_git.bb
new file mode 100644
index 0000000000..e106653c45
--- /dev/null
+++ b/recipes/pyphonelog/pyphonelog_git.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "PyPhonelog is a phonelog gui that connects to the shr daemon/a custom daemon"
+HOMEPAGE = "http://wiki.openmoko.org/wiki/PyPhonelog"
+SECTION = "x11/applications"
+LICENSE = "GPLv2"
+SRCNAME = "pyphonelog"
+RDEPENDS += "python python-pygtk python-sqlite3 python-phoneutils"
+
+inherit distutils
+
+S = "${WORKDIR}/git"
+PV = "0.17.0+gitr${SRCREV}"
+PR = "r0"
+SRC_URI = "git://shr.bearstech.com/repo/pyphonelog.git;protocol=http"
+FILES_${PN} += "${datadir}/applications/phonelog.desktop \
+ ${datadir}/phonelog/ \
+ ${datadir}/pixmaps/phonelog.png"
diff --git a/recipes/pythm/pythm/mplayer-escape-filenames.patch b/recipes/pythm/pythm/mplayer-escape-filenames.patch
new file mode 100644
index 0000000000..329f4ef7f4
--- /dev/null
+++ b/recipes/pythm/pythm/mplayer-escape-filenames.patch
@@ -0,0 +1,19 @@
+diff -ur pythm-org/pythm/mplayer/mplayerbackend.py pythm/pythm/mplayer/mplayerbackend.py
+--- pythm-org/pythm/mplayer/mplayerbackend.py 2008-11-22 14:18:13.227163500 +0100
++++ pythm/pythm/mplayer/mplayerbackend.py 2009-01-15 23:54:50.582429054 +0100
+@@ -96,7 +96,7 @@
+ entry = self.current[1]
+ self.emit(Signals.SONG_CHANGED,entry)
+ self.songend = time.time()
+- fn = entry.id
++ fn = re.escape(entry.id)
+ array = self.mplayer.innercmd("loadfile '" + fn + "'\n","======",True)
+ #array = self.mplayer.arraycmd("loadfile","======",fn)
+ self.fill_entry(array, entry)
+@@ -404,4 +404,4 @@
+ self.browse()
+
+
+-
+\ Kein Zeilenumbruch am Dateiende.
++
diff --git a/recipes/pythm/pythm/pythm.conf b/recipes/pythm/pythm/pythm.conf
new file mode 100644
index 0000000000..2fbe3c4997
--- /dev/null
+++ b/recipes/pythm/pythm/pythm.conf
@@ -0,0 +1,32 @@
+# global pythm settings
+# place this file in ~/.pythm/, name it pythm.conf
+
+[pythm]
+# backends to show in backend list
+backends=mpd,mplayer
+# the default backend to use, can be either
+# mpd or mplayer, or omitted
+backend=mplayer
+
+# mpd specific settings
+[mpd]
+# mpd host
+host=localhost
+# mpd port
+port=6600
+# mpd password, comment out for no password
+#password=verysecret
+
+# mplayer settings
+[mplayer]
+# renice val for mplayer process
+renice=-15
+
+# directory containing music (the start folder for the browser)
+musicdir=~
+# allowed file endings in browse mode, comma separated
+endings=ogg,mp3
+# filters to exclude in file browser. applied to files and directories
+# using regular expressions. use filtersN for more entries
+# default is to ignore all elements that start with a ".".
+filters0=\..*
diff --git a/recipes/pythm/pythm/pythm.desktop b/recipes/pythm/pythm/pythm.desktop
new file mode 100644
index 0000000000..89f74d50bb
--- /dev/null
+++ b/recipes/pythm/pythm/pythm.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Version=0.5
+Type=Application
+Encoding=UTF-8
+Name=pythm
+Comment=pyGTK+ Frontend for MPD and mplayer
+TryExec=pythm-bin
+Exec=pythm-bin
+Icon=bass.png
+Categories=Application;AudioVideo;Audio;Player;
+Categories=Office;
+Terminal=false
diff --git a/recipes/pythm/pythm_svn.bb b/recipes/pythm/pythm_svn.bb
new file mode 100644
index 0000000000..fdffb21621
--- /dev/null
+++ b/recipes/pythm/pythm_svn.bb
@@ -0,0 +1,36 @@
+DESCRIPTION = "Pythm is a media player gui designed to work with mplayer or mpd as "slave" players.\
+use mplayer to hear music on the road or mpd control if your are at home."
+HOMEPAGE = "http://projects.openmoko.org/projects/pythm/"
+SECTION = "application/multimedia"
+LICENSE = "GPLv2"
+SRCNAME = "pythm"
+PV = "0.5.1+svnr${SRCPV}"
+PR = "r3"
+SRC_URI = "svn://svn.projects.openmoko.org/svnroot/;module=pythm \
+ file://mplayer-escape-filenames.patch;patch=0 \
+ file://pythm.desktop \
+ file://pythm.conf"
+S = "${WORKDIR}/pythm"
+
+inherit setuptools
+
+RDEPENDS_${PN} = "\
+ python-pygtk \
+ mplayer \
+"
+DISTUTILS_INSTALL_ARGS = "--root=${D} \
+ --prefix=${prefix} \
+ --install-data=${datadir}"
+
+do_install_append() {
+ install -d ${D}${sysconfdir}
+ install -d ${D}/${datadir}/applications
+ install -m 0644 ../pythm.conf ${D}${sysconfdir}
+ install -m 0644 ../pythm.desktop ${D}/${datadir}/applications
+}
+
+
+FILES_${PN} += "\
+ ${sysconfdir}/pythm.conf \
+ ${datadir}/applications/pythm.desktop"
+
diff --git a/recipes/python/pydes_1.3.1.bb b/recipes/python/pydes_1.3.1.bb
new file mode 100644
index 0000000000..b266538b42
--- /dev/null
+++ b/recipes/python/pydes_1.3.1.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "Python DES implementation"
+SECTION = "console/network"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS = "python"
+
+PR = "r1"
+ARCH_pydes = "all"
+
+SRC_URI = "http://twhiteman.netfirms.com/pyDES/pyDes-1.3.1.tar.gz"
+
+inherit distutils
+
+S = ${WORKDIR}/pyDes-1.3.1
+
+
+
diff --git a/recipes/python/pyring_1.1.10.bb b/recipes/python/pyring_1.1.10.bb
new file mode 100644
index 0000000000..211801debf
--- /dev/null
+++ b/recipes/python/pyring_1.1.10.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Python keyring"
+SECTION = "console/network"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS = "python python-pygtk python-xml python-netclient python-numeric pydes"
+
+ARCH_pyring = "all"
+
+SRC_URI = "http://handheldshell.com/software/pyring_${PV}.tgz "
+
+inherit distutils
+
+S = ${WORKDIR}/pyring-${PV}
+
+do_configure_prepend() {
+ cp ${S}/setup_freerunner.py ${S}/setup.py
+ exit 0
+}
+
+FILES_${PN} += "${datadir}"
+
diff --git a/recipes/python/python-blipapi_0.02.04.bb b/recipes/python/python-blipapi_0.02.04.bb
new file mode 100644
index 0000000000..bc8ad58800
--- /dev/null
+++ b/recipes/python/python-blipapi_0.02.04.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Library to communicate with blip.pl API"
+AUTHOR = "Marcin Sztolcman <marcin@urzenia.net>"
+HOMEPAGE = "http://blipapi.googlecode.com/"
+DEPENDS = "python-setuptools"
+LICENSE = "GPL"
+RDEPENDS += "python-json"
+PR = "r0"
+inherit setuptools
+
+SRC_URI = "http://blipapi.googlecode.com/files/BlipApiPY-0.02.04.tar.bz2"
+S = "${WORKDIR}/blipapi"
+
diff --git a/recipes/python/python-coherence_svn.bb b/recipes/python/python-coherence_svn.bb
index 031067672e..46e6e3e7c8 100644
--- a/recipes/python/python-coherence_svn.bb
+++ b/recipes/python/python-coherence_svn.bb
@@ -5,7 +5,7 @@ HOMEPAGE = "http://coherence.beebits.net/wiki"
PR = "r1"
-PV = "0.6.0+svnr${SRCREV}"
+PV = "0.6.0+svnr${SRCPV}"
inherit setuptools
diff --git a/recipes/python/python-connexion_svn.bb b/recipes/python/python-connexion_svn.bb
index ae546f5256..8136fe46f9 100644
--- a/recipes/python/python-connexion_svn.bb
+++ b/recipes/python/python-connexion_svn.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.radlinux.org/connexion/"
SECTION = "devel/python"
LICENSE = "GPL"
BV = "0.4.6"
-PV = "${BV}+svnr${SRCREV}"
+PV = "${BV}+svnr${SRCPV}"
PR = "ml1"
inherit distutils
diff --git a/recipes/python/python-dateutil_1.4.1.bb b/recipes/python/python-dateutil_1.4.1.bb
new file mode 100644
index 0000000000..204c48d190
--- /dev/null
+++ b/recipes/python/python-dateutil_1.4.1.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Extensions to the standard Python date/time support"
+HOMEPAGE = "http://labix.org/python-dateutil"
+SECTION = "devel/python"
+PRIORITY = "optional"
+LICENSE = "PSF"
+SRCNAME = "${PN}"
+PR = "r1"
+
+SRC_URI = "http://labix.org/download/python-dateutil/${SRCNAME}-${PV}.tar.gz"
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
+
+PACKAGES =+ "${PN}-zoneinfo"
+FILES_${PN}-zoneinfo = "${libdir}/${PYTHON_DIR}/site-packages/dateutil/zoneinfo"
+
+RDEPENDS_${PN} = "\
+ python-core \
+ python-datetime \
+"
diff --git a/recipes/python/python-dbus_0.83.0.bb b/recipes/python/python-dbus_0.83.0.bb
index 02b73e64bf..5d6f2491c7 100644
--- a/recipes/python/python-dbus_0.83.0.bb
+++ b/recipes/python/python-dbus_0.83.0.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Python bindings for DBus, a socket-based message bus system for i
SECTION = "devel/python"
HOMEPAGE = "http://www.freedesktop.org/Software/dbus"
LICENSE = "MIT"
-DEPENDS = "expat dbus dbus-glib virtual/libintl python-pyrex-native"
+DEPENDS = "expat dbus dbus-glib virtual/libintl python-pyrex-native python-epydoc-native"
PR = "ml2"
SRC_URI = "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-${PV}.tar.gz"
diff --git a/recipes/python/python-efl.inc b/recipes/python/python-efl.inc
index acd1660f08..9ed7a4cb98 100644
--- a/recipes/python/python-efl.inc
+++ b/recipes/python/python-efl.inc
@@ -7,7 +7,7 @@ HOMEPAGE = "http://www.enlightenment.org"
# the extension modules.
DEPENDS = "python-cython-native python-pyrex-native python-numeric eina"
RDEPENDS += "python-lang"
-PV = "0.3.1+svnr${SRCREV}"
+PV = "0.3.1+svnr${SRCPV}"
PR = "ml0"
inherit setuptools
diff --git a/recipes/python/python-elementary_svn.bb b/recipes/python/python-elementary_svn.bb
index 44c5613edf..b4e5dbbf48 100644
--- a/recipes/python/python-elementary_svn.bb
+++ b/recipes/python/python-elementary_svn.bb
@@ -1,7 +1,7 @@
require python-efl.inc
DEPENDS += "elementary"
RDEPENDS += "python-evas python-ecore python-edje"
-PV = "0.1+svnr${SRCREV}"
+PV = "0.1+svnr${SRCPV}"
PR = "ml0"
do_stage() {
diff --git a/recipes/python/python-epsilon_svn.bb b/recipes/python/python-epsilon_svn.bb
index 97b06609c1..9f535e5fd7 100644
--- a/recipes/python/python-epsilon_svn.bb
+++ b/recipes/python/python-epsilon_svn.bb
@@ -2,3 +2,4 @@ require python-efl.inc
DEPENDS += "epsilon python-ecore"
RDEPENDS += "python-ecore"
+SRC_URI = "svn://svn.enlightenment.org/svn/e/trunk/OLD/BINDINGS/python;module=${PN};proto=http"
diff --git a/recipes/python/python-epydoc-native_3.0.1.bb b/recipes/python/python-epydoc-native_3.0.1.bb
new file mode 100644
index 0000000000..7f64f64e64
--- /dev/null
+++ b/recipes/python/python-epydoc-native_3.0.1.bb
@@ -0,0 +1,8 @@
+require python-epydoc_${PV}.bb
+DEPENDS = "python-native"
+inherit native
+
+do_stage() {
+ distutils_stage_all
+}
+
diff --git a/recipes/python/python-epydoc_3.0.1.bb b/recipes/python/python-epydoc_3.0.1.bb
new file mode 100644
index 0000000000..36d22ad5a0
--- /dev/null
+++ b/recipes/python/python-epydoc_3.0.1.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Epydoc is a tool for generating API documentation for Python modules, based on their docstrings"
+SECTION = "devel/python"
+PRIORITY = "optional"
+LICENSE = "MIT"
+HOMEPAGE = "http://epydoc.sourceforge.net/"
+SRCNAME = "epydoc"
+DEPENDS = "python"
+
+SRC_URI = "http://downloads.sourceforge.net/project/${SRCNAME}/${SRCNAME}/${PV}/${SRCNAME}-${PV}.tar.gz"
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit distutils
diff --git a/recipes/python/python-etk_svn.bb b/recipes/python/python-etk_svn.bb
index 85cb824b2d..ba082d873b 100644
--- a/recipes/python/python-etk_svn.bb
+++ b/recipes/python/python-etk_svn.bb
@@ -1,7 +1,7 @@
require python-efl.inc
DEPENDS += "etk python-evas python-ecore"
RDEPENDS += "python-evas python-ecore python-edje python-numeric python-math etk-themes"
-PV = "0.1.1+svnr${SRCREV}"
+PV = "0.1.1+svnr${SRCPV}"
PR = "ml1"
SRC_URI = "svn://svn.enlightenment.org/svn/e/trunk/OLD/BINDINGS/python;module=${PN};proto=http"
diff --git a/recipes/python/python-ldap/setup.cfg.patch b/recipes/python/python-ldap/setup.cfg.patch
new file mode 100644
index 0000000000..a703d342e9
--- /dev/null
+++ b/recipes/python/python-ldap/setup.cfg.patch
@@ -0,0 +1,14 @@
+--- python-ldap-2.3.9/setup.cfg.orig 2009-08-13 11:07:23.000000000 +0200
++++ python-ldap-2.3.9/setup.cfg 2009-08-13 11:07:37.000000000 +0200
+@@ -1,9 +1,9 @@
+ [_ldap]
+ extra_objects =
+ extra_compile_args =
+-libs = ldap_r lber sasl2 ssl crypto
++libs = ldap_r lber ssl crypto
+ library_dirs = /opt/openldap-RE24/lib
+-include_dirs = /opt/openldap-RE24/include /usr/include/sasl
++include_dirs = /opt/openldap-RE24/include
+
+ [egg_info]
+ tag_build =
diff --git a/recipes/python/python-ldap_2.3.9.bb b/recipes/python/python-ldap_2.3.9.bb
new file mode 100644
index 0000000000..8a605e49e4
--- /dev/null
+++ b/recipes/python/python-ldap_2.3.9.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "LDAP client API for Python, C wrapper module around OpenLDAP 2.x with an object-oriented API"
+SECTION = "devel/python"
+PRIORITY = "optional"
+LICENSE = "Python-style"
+HOMEPAGE = "http://www.python-ldap.org/"
+DEPENDS = "python openldap"
+
+SRC_URI = "http://pypi.python.org/packages/source/p/${PN}/${PN}-${PV}.tar.gz \
+ file://setup.cfg.patch;patch=1"
+
+inherit setuptools
diff --git a/recipes/python/python-native-2.6.1/debug.patch b/recipes/python/python-native-2.6.1/debug.patch
new file mode 100644
index 0000000000..beb3adc6db
--- /dev/null
+++ b/recipes/python/python-native-2.6.1/debug.patch
@@ -0,0 +1,27 @@
+Index: Python-2.6.1/Lib/distutils/unixccompiler.py
+===================================================================
+--- Python-2.6.1.orig/Lib/distutils/unixccompiler.py 2009-11-13 16:04:54.000000000 +0000
++++ Python-2.6.1/Lib/distutils/unixccompiler.py 2009-11-13 16:06:27.000000000 +0000
+@@ -300,6 +300,8 @@
+ dylib_f = self.library_filename(lib, lib_type='dylib')
+ static_f = self.library_filename(lib, lib_type='static')
+
++ print "Looking in %s for %s" % (lib, dirs)
++
+ for dir in dirs:
+ shared = os.path.join(dir, shared_f)
+ dylib = os.path.join(dir, dylib_f)
+@@ -309,10 +311,13 @@
+ # assuming that *all* Unix C compilers do. And of course I'm
+ # ignoring even GCC's "-static" option. So sue me.
+ if os.path.exists(dylib):
++ print "Found %s" % (dylib)
+ return dylib
+ elif os.path.exists(shared):
++ print "Found %s" % (shared)
+ return shared
+ elif os.path.exists(static):
++ print "Found %s" % (static)
+ return static
+
+ # Oops, didn't find it in *any* of 'dirs'
diff --git a/recipes/python/python-native-2.6.1/nohostlibs.patch b/recipes/python/python-native-2.6.1/nohostlibs.patch
new file mode 100644
index 0000000000..7020f3c2a9
--- /dev/null
+++ b/recipes/python/python-native-2.6.1/nohostlibs.patch
@@ -0,0 +1,53 @@
+Index: Python-2.6.1/setup.py
+===================================================================
+--- Python-2.6.1.orig/setup.py 2009-11-13 16:20:47.000000000 +0000
++++ Python-2.6.1/setup.py 2009-11-13 16:28:00.000000000 +0000
+@@ -310,8 +310,8 @@
+
+ def detect_modules(self):
+ # Ensure that /usr/local is always used
+- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
+- add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
++ #add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
++ #add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
+
+ # Add paths specified in the environment variables LDFLAGS and
+ # CPPFLAGS for header and library files.
+@@ -347,10 +347,10 @@
+ for directory in reversed(options.dirs):
+ add_dir_to_list(dir_list, directory)
+
+- if os.path.normpath(sys.prefix) != '/usr':
+- add_dir_to_list(self.compiler.library_dirs,
++
++ add_dir_to_list(self.compiler.library_dirs,
+ sysconfig.get_config_var("LIBDIR"))
+- add_dir_to_list(self.compiler.include_dirs,
++ add_dir_to_list(self.compiler.include_dirs,
+ sysconfig.get_config_var("INCLUDEDIR"))
+
+ try:
+@@ -361,11 +361,8 @@
+ # lib_dirs and inc_dirs are used to search for files;
+ # if a file is found in one of those directories, it can
+ # be assumed that no additional -I,-L directives are needed.
+- lib_dirs = self.compiler.library_dirs + [
+- '/lib64', '/usr/lib64',
+- '/lib', '/usr/lib',
+- ]
+- inc_dirs = self.compiler.include_dirs + ['/usr/include']
++ lib_dirs = self.compiler.library_dirs
++ inc_dirs = self.compiler.include_dirs
+ exts = []
+ missing = []
+
+@@ -583,8 +580,7 @@
+ readline_libs.append('ncurses')
+ elif self.compiler.find_library_file(lib_dirs, 'curses'):
+ readline_libs.append('curses')
+- elif self.compiler.find_library_file(lib_dirs +
+- ['/usr/lib/termcap'],
++ elif self.compiler.find_library_file(lib_dirs,
+ 'termcap'):
+ readline_libs.append('termcap')
+ exts.append( Extension('readline', ['readline.c'],
diff --git a/recipes/python/python-native_2.6.1.bb b/recipes/python/python-native_2.6.1.bb
index 30b97c9344..9b59c1be65 100644
--- a/recipes/python/python-native_2.6.1.bb
+++ b/recipes/python/python-native_2.6.1.bb
@@ -10,14 +10,13 @@ SRC_URI = "\
file://10-distutils-fix-swig-parameter.patch;patch=1 \
file://11-distutils-never-modify-shebang-line.patch;patch=1 \
file://12-distutils-prefix-is-inside-staging-area.patch;patch=1 \
+ file://debug.patch;patch=1 \
+ file://nohostlibs.patch;patch=1 \
"
S = "${WORKDIR}/Python-${PV}"
inherit native
-prefix = "${STAGING_DIR_NATIVE}/${layout_prefix}"
-exec_prefix = "${STAGING_DIR_NATIVE}/${layout_exec_prefix}"
-
EXTRA_OEMAKE = '\
BUILD_SYS="" \
HOST_SYS="" \
diff --git a/recipes/python/python-phoneutils_git.bb b/recipes/python/python-phoneutils_git.bb
index 1e962d36ad..c616a2beed 100644
--- a/recipes/python/python-phoneutils_git.bb
+++ b/recipes/python/python-phoneutils_git.bb
@@ -1,8 +1,10 @@
DESCRIPTION = "Python Bindings for libphone-utils"
SECTION = "devel/python"
-DEPENDS = "libphone-utils"
-PV = "0.0.2+gitr${SRCPV}"
-PR = "r1"
+DEPENDS = "libphone-utils python-cython-native python-pyrex-native"
+RDEPENDS = "libphone-utils"
+
+PV = "0.0.2+gitr${SRCREV}"
+PR = "r2"
SRC_URI = "git://git.shr-project.org/repo/libphone-utils.git;protocol=http;branch=master"
S = "${WORKDIR}/git/src/python"
diff --git a/recipes/python/python-pybluez_0.16.bb b/recipes/python/python-pybluez_0.16.bb
new file mode 100644
index 0000000000..44554d6ff1
--- /dev/null
+++ b/recipes/python/python-pybluez_0.16.bb
@@ -0,0 +1,10 @@
+DESCRIPTION = "Python bindings for the Linux Bluetooth stack"
+SECTION = "devel/python"
+DEPENDS = "bluez-libs"
+LICENSE = "GPL"
+PR = "ml0"
+
+SRC_URI = "http://pybluez.googlecode.com/files/PyBluez-${PV}.tar.gz"
+S = "${WORKDIR}/PyBluez-${PV}"
+
+inherit distutils
diff --git a/recipes/python/python-pygtk_2.10.4.bb b/recipes/python/python-pygtk_2.10.4.bb
index 3f0e593c98..bdfebafc7a 100644
--- a/recipes/python/python-pygtk_2.10.4.bb
+++ b/recipes/python/python-pygtk_2.10.4.bb
@@ -6,7 +6,7 @@ RDEPENDS = "python-shell python-pycairo python-pygobject"
PROVIDES = "python-pygtk2"
SRCNAME = "pygtk"
LICENSE = "LGPL"
-PR = "ml10"
+PR = "ml11"
MAJ_VER = "${@bb.data.getVar('PV',d,1).split('.')[0]}.${@bb.data.getVar('PV',d,1).split('.')[1]}"
SRC_URI = "ftp://ftp.gnome.org/pub/gnome/sources/pygtk/${MAJ_VER}/${SRCNAME}-${PV}.tar.bz2 \
@@ -52,7 +52,7 @@ FILES_${PN}-dev += "\
do_stage() {
autotools_stage_includes
- sed -i s:/usr/share:${STAGING_DATADIR}: codegen/pygtk-codegen-2.0
+ sed -i s:${prefix}/share:${STAGING_DATADIR}: codegen/pygtk-codegen-2.0
install -m 0755 codegen/pygtk-codegen-2.0 ${STAGING_BINDIR_NATIVE}/
# until we have a newer pygobject version, we resue pygtk's codegen
ln -sf ./pygtk-codegen-2.0 ${STAGING_BINDIR_NATIVE}/pygobject-codegen-2.0
diff --git a/recipes/python/python-pyyaml_svn.bb b/recipes/python/python-pyyaml_svn.bb
index 0aed0b0e62..117eb9b3ff 100644
--- a/recipes/python/python-pyyaml_svn.bb
+++ b/recipes/python/python-pyyaml_svn.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.pyyaml.org"
SECTION = "devel/python"
LICENSE = "MIT"
DEPENDS = "libyaml python-cython-native"
-PV = "3.08+svnr${SRCREV}"
+PV = "3.08+svnr${SRCPV}"
PR = "ml0"
SRC_URI = "\
diff --git a/recipes/python/python-vobject_0.8.1c.bb b/recipes/python/python-vobject_0.8.1c.bb
new file mode 100644
index 0000000000..87ff6b7fdd
--- /dev/null
+++ b/recipes/python/python-vobject_0.8.1c.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "Python package for parsing and generating vCard and vCalendar files"
+SECTION = "devel/python"
+PRIORITY = "optional"
+LICENSE = "Apache License V2.0"
+HOMEPAGE = "http://vobject.skyhouseconsulting.com/"
+SRCNAME = "vobject"
+RDEPENDS = "python python-dateutil"
+PR = "r1"
+
+SRC_URI = "http://vobject.skyhouseconsulting.com/${SRCNAME}-${PV}.tar.gz"
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
diff --git a/recipes/python/python-webdav_0.1.2.bb b/recipes/python/python-webdav_0.1.2.bb
new file mode 100644
index 0000000000..efc74f9183
--- /dev/null
+++ b/recipes/python/python-webdav_0.1.2.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "This project aims to provide an object-oriented Python WebDAV client-side library\
+ based on Python`s standard httplib and Greg Stein`s davlib.\
+ The client shall fully support RFCs 4918 (basic specification),\
+ 3744 (access control), and 3253 (versioning)."
+SECTION = "devel/python"
+PRIORITY = "optional"
+LICENSE = "Apache License V2.0"
+HOMEPAGE = "http://sourceforge.net/projects/pythonwebdavlib/"
+SRCNAME = "Python_WebDAV_Library"
+DEPENDS = "python"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/pythonwebdavlib/Python%20WebDAV%20Library%20-%20${PV}/${SRCNAME}-${PV}.zip"
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit distutils
diff --git a/recipes/python/python-wifi_0.3.1.bb b/recipes/python/python-wifi_0.3.1.bb
new file mode 100644
index 0000000000..7461a6941e
--- /dev/null
+++ b/recipes/python/python-wifi_0.3.1.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Fusil is a Python library used to write fuzzing programs."
+HOMEPAGE = "http://fusil.hachoir.org/"
+SECTION = "devel/python"
+LICENSE = "GPLv2"
+SRCNAME = "python-wifi"
+
+SRC_URI = "http://pypi.python.org/packages/source/p/${SRCNAME}/${SRCNAME}-${PV}.tar.gz"
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
+
+RDEPENDS_${PN} = "\
+ python-ctypes \
+ python-datetime \
+"
+
+
+
diff --git a/recipes/python/python-wpactrl_svn.bb b/recipes/python/python-wpactrl_svn.bb
index e0e8a05195..88424b2e8e 100644
--- a/recipes/python/python-wpactrl_svn.bb
+++ b/recipes/python/python-wpactrl_svn.bb
@@ -8,5 +8,5 @@ inherit distutils
SRCREV = "383"
SRC_URI = "svn://svn.otaku42.de;module=python-wpactrl;proto=http"
S = "${WORKDIR}/python-wpactrl/trunk"
-PV = "1.0.1+svnr${SRCREV}"
+PV = "1.0.1+svnr${SRCPV}"
diff --git a/recipes/python/python_2.6.2.bb b/recipes/python/python_2.6.2.bb
index 941f039af7..c367ce87c5 100644
--- a/recipes/python/python_2.6.2.bb
+++ b/recipes/python/python_2.6.2.bb
@@ -33,6 +33,10 @@ inherit autotools
TARGET_CC_ARCH_append_armv6 = " -D__SOFTFP__"
TARGET_CC_ARCH_append_armv7a = " -D__SOFTFP__"
+do_configure_prepend() {
+ autoreconf -Wcross --verbose --install --force --exclude=autopoint Modules/_ctypes/libffi || oenote "_ctypes failed to autoreconf"
+}
+
#
# Copy config.h and an appropriate Makefile for distutils.sysconfig,
# which laters uses the information out of these to compile extensions
diff --git a/recipes/qemu/qemu_svn.bb b/recipes/qemu/qemu_svn.bb
index bae1855c3f..2e78d868bc 100644
--- a/recipes/qemu/qemu_svn.bb
+++ b/recipes/qemu/qemu_svn.bb
@@ -1,6 +1,6 @@
LICENSE = "GPL"
DEPENDS = "zlib"
-PV = "0.9.1+svnr${SRCREV}"
+PV = "0.9.1+svnr${SRCPV}"
PR = "r15"
FILESPATH = "${FILE_DIRNAME}/qemu-0.9.1+svn/"
diff --git a/recipes/qt4/qt4-embedded-4.6.0/0006-freetype-host-includes.patch b/recipes/qt4/qt4-embedded-4.6.0/0006-freetype-host-includes.patch
new file mode 100644
index 0000000000..987c425138
--- /dev/null
+++ b/recipes/qt4/qt4-embedded-4.6.0/0006-freetype-host-includes.patch
@@ -0,0 +1,20 @@
+From c9ab62bd9a56643574b3ae6e59e0ca776d4860d2 Mon Sep 17 00:00:00 2001
+From: Michael Krelin <hacker@klever.net>
+Date: Mon, 4 Jun 2007 14:48:50 +0200
+Subject: [PATCH] freetype host includes
+
+---
+ config.tests/unix/freetype/freetype.pri | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+Index: qt-embedded-linux-opensource-src-4.5.0/config.tests/unix/freetype/freetype.pri
+===================================================================
+--- qt-embedded-linux-opensource-src-4.5.0.orig/config.tests/unix/freetype/freetype.pri 2009-02-25 22:32:32.000000000 +0100
++++ qt-embedded-linux-opensource-src-4.5.0/config.tests/unix/freetype/freetype.pri 2009-03-26 17:14:16.000000000 +0100
+@@ -1,5 +1,5 @@
+ !cross_compile {
+- TRY_INCLUDEPATHS = /include /usr/include $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH
++ TRY_INCLUDEPATHS = $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH
+ # LSB doesn't allow using headers from /include or /usr/include
+ linux-lsb-g++:TRY_INCLUDEPATHS = $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH
+ for(p, TRY_INCLUDEPATHS) {
diff --git a/recipes/qt4/qt4-embedded-4.6.0/0008-qt-lib-infix.patch b/recipes/qt4/qt4-embedded-4.6.0/0008-qt-lib-infix.patch
new file mode 100644
index 0000000000..61e60a0eb6
--- /dev/null
+++ b/recipes/qt4/qt4-embedded-4.6.0/0008-qt-lib-infix.patch
@@ -0,0 +1,32 @@
+--- /tmp/uitools.prf 2009-12-01 18:38:22.000000000 +0100
++++ qt-everywhere-opensource-src-4.6.0/mkspecs/features/uitools.prf 2009-12-01 18:58:16.000000000 +0100
+@@ -3,11 +3,11 @@
+
+ # Include the correct version of the UiLoader library
+ symbian: QTUITOOLS_LINKAGE = -lQtUiTools.lib
+-else: QTUITOOLS_LINKAGE = -lQtUiTools
++else: QTUITOOLS_LINKAGE = -lQtUiTools$${QT_LIBINFIX}
+
+ CONFIG(debug, debug|release) {
+- mac: QTUITOOLS_LINKAGE = -lQtUiTools_debug
+- win32: QTUITOOLS_LINKAGE = -lQtUiToolsd
++ mac: QTUITOOLS_LINKAGE = -lQtUiTools$${QT_LIBINFIX}_debug
++ win32: QTUITOOLS_LINKAGE = -lQtUiTools$${QT_LIBINFIX}d
+ }
+ LIBS += $$QTUITOOLS_LINKAGE
+
+--- /tmp/uitools.pro 2009-12-01 18:40:28.000000000 +0100
++++ qt-everywhere-opensource-src-4.6.0/tools/designer/src/uitools/uitools.pro 2009-12-01 18:59:18.000000000 +0100
+@@ -1,5 +1,5 @@
+ TEMPLATE = lib
+-TARGET = $$qtLibraryTarget(QtUiTools)
++TARGET = QtUiTools
+ QT += xml
+ CONFIG += qt staticlib
+ DESTDIR = ../../../../lib
+@@ -43,3 +43,5 @@
+ QMAKE_PKGCONFIG_DESTDIR = pkgconfig
+ QMAKE_PKGCONFIG_REQUIRES += QtXml
+ }
++
++TARGET = $$qtLibraryTarget($$TARGET$$QT_LIBINFIX) #do this towards the end
diff --git a/recipes/qt4/qt4-embedded-4.6.0/0010-no-simpledecoration-example.patch b/recipes/qt4/qt4-embedded-4.6.0/0010-no-simpledecoration-example.patch
new file mode 100644
index 0000000000..070b4ac9c1
--- /dev/null
+++ b/recipes/qt4/qt4-embedded-4.6.0/0010-no-simpledecoration-example.patch
@@ -0,0 +1,9 @@
+--- qt-embedded-linux-opensource-src-4.5.0.orig/examples/qws/qws.pro 2009-02-25 22:32:34.000000000 +0100
++++ qt-embedded-linux-opensource-src-4.5.0/examples/qws/qws.pro 2009-03-26 19:53:19.000000000 +0100
+@@ -1,5 +1,5 @@
+ TEMPLATE = subdirs
+-SUBDIRS = framebuffer mousecalibration simpledecoration
++SUBDIRS = framebuffer mousecalibration
+
+ # install
+ sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS README *.pro
diff --git a/recipes/qt4/qt4-embedded-4.6.0/linux.conf b/recipes/qt4/qt4-embedded-4.6.0/linux.conf
new file mode 100644
index 0000000000..2e862407bc
--- /dev/null
+++ b/recipes/qt4/qt4-embedded-4.6.0/linux.conf
@@ -0,0 +1,54 @@
+#
+# qmake configuration for common linux
+#
+
+QMAKE_CFLAGS_THREAD += -D_REENTRANT
+QMAKE_CXXFLAGS_THREAD += $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 =
+QMAKE_LIBDIR_X11 =
+QMAKE_INCDIR_QT = $(OE_QMAKE_INCDIR_QT)
+QMAKE_LIBDIR_QT = $(OE_QMAKE_LIBDIR_QT)
+QMAKE_INCDIR_OPENGL =
+QMAKE_LIBDIR_OPENGL =
+
+
+QMAKE_LIBS = -lglib-2.0
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = $(OE_QMAKE_LIBS_X11)
+QMAKE_LIBS_X11SM = $(OE_QMAKE_LIBS_X11SM)
+QMAKE_LIBS_NIS = -lnsl
+QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL_QT = -lGL
+QMAKE_LIBS_THREAD = -lpthread
+
+QMAKE_MOC = $(OE_QMAKE_MOC)
+QMAKE_UIC = $(OE_QMAKE_UIC)
+QMAKE_UIC3 = $(OE_QMAKE_UIC3)
+QMAKE_RCC = $(OE_QMAKE_RCC)
+QMAKE_QDBUSCPP2XML = $(OE_QMAKE_QDBUSCPP2XML)
+QMAKE_QDBUSXML2CPP = $(OE_QMAKE_QDBUSXML2CPP)
+
+QMAKE_AR = $(OE_QMAKE_AR) cqs
+QMAKE_OBJCOPY = ${OBJCOPY}
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_COPY_FILE = $(COPY)
+QMAKE_COPY_DIR = $(COPY) -r
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_STRIP = $(OE_QMAKE_STRIP)
+QMAKE_STRIPFLAGS_LIB += --strip-unneeded
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
+QMAKE_INSTALL_FILE = install -m 644 -p
+QMAKE_INSTALL_PROGRAM = install -m 755 -p
+
+include(unix.conf)
diff --git a/recipes/qt4/qt4-embedded.inc b/recipes/qt4/qt4-embedded.inc
index 95b770a5a4..11fcd5849b 100644
--- a/recipes/qt4/qt4-embedded.inc
+++ b/recipes/qt4/qt4-embedded.inc
@@ -31,7 +31,7 @@ QT_CONFIG_FLAGS += " \
-qt-decoration-styled -plugin-decoration-default -plugin-decoration-windows \
-plugin-gfx-transformed -plugin-gfx-qvfb -plugin-gfx-vnc -plugin-gfx-directfb \
-plugin-mouse-tslib -qt-mouse-pc -qt-mouse-qvfb \
- -qt-kbd-tty -qt-kbd-usb -qt-kbd-qvfb \
+ -qt-kbd-tty \
-DQT_KEYPAD_NAVIGATION \
"
diff --git a/recipes/qt4/qt4-embedded_4.4.3.bb b/recipes/qt4/qt4-embedded_4.4.3.bb
index fce2e657ee..075aafd936 100644
--- a/recipes/qt4/qt4-embedded_4.4.3.bb
+++ b/recipes/qt4/qt4-embedded_4.4.3.bb
@@ -1,3 +1,3 @@
require qt4-embedded.inc
-PR = "${INC_PR}.1"
+PR = "${INC_PR}.2"
diff --git a/recipes/qt4/qt4-embedded_4.6.0.bb b/recipes/qt4/qt4-embedded_4.6.0.bb
new file mode 100644
index 0000000000..1bdca87a0d
--- /dev/null
+++ b/recipes/qt4/qt4-embedded_4.6.0.bb
@@ -0,0 +1,38 @@
+DEFAULT_PREFERENCE = "-1"
+
+require qt4-embedded.inc
+
+PR = "${INC_PR}.0"
+
+SRC_URI = "ftp://ftp.trolltech.com/qt/source/qt-everywhere-opensource-src-${PV}.tar.gz \
+ file://0001-cross-compile.patch;patch=1 \
+ file://0002-fix-resinit-declaration.patch;patch=1 \
+ file://0004-no-qmake.patch;patch=1 \
+ file://0006-freetype-host-includes.patch;patch=1 \
+ file://0008-qt-lib-infix.patch;patch=1 \
+ file://0009-support-2bpp.patch;patch=1 \
+ file://fix-config-tests.patch;patch=1 \
+ file://g++.conf \
+ file://linux.conf \
+ "
+S = "${WORKDIR}/qt-everywhere-opensource-src-${PV}"
+
+do_configure_prepend() {
+ sed -i \
+ -e /QMAKE_MOC\ /d \
+ -e /QMAKE_UIC\ /d \
+ -e /QMAKE_UIC3\ /d \
+ -e /QMAKE_RCC\ /d \
+ ${S}/configure
+}
+
+do_install_append() {
+ install -d ${D}${bindir}
+ for i in rcc uic moc ; do
+ install -m 0755 ${S}/bin/$i ${D}${bindir}/
+ done
+}
+
+LICENSE = "LGPLv2.1 GPLv3"
+SRC_URI += " \
+ file://hack-out-pg_config.patch;patch=1"
diff --git a/recipes/qt4/qt4-tools-native_4.6.0.bb b/recipes/qt4/qt4-tools-native_4.6.0.bb
new file mode 100644
index 0000000000..48310b1233
--- /dev/null
+++ b/recipes/qt4/qt4-tools-native_4.6.0.bb
@@ -0,0 +1,15 @@
+DEFAULT_PREFERENCE = "-1"
+
+require qt4-tools-native.inc
+LICENSE = "LGPLv2.1 GPLv3"
+PR = "${INC_PR}.0"
+
+SRC_URI = "ftp://ftp.trolltech.com/qt/source/qt-everywhere-opensource-src-${PV}.tar.gz \
+ file://configure-lflags.patch;patch=1 \
+ file://qt-config.patch;patch=1 \
+ file://g++.conf \
+ file://linux.conf"
+
+S = "${WORKDIR}/qt-everywhere-opensource-src-${PV}"
+
+TOBUILD := "src/tools/bootstrap ${TOBUILD}"
diff --git a/recipes/qt4/qt4-x11-free-4.6.0/0008-qt-lib-infix.patch b/recipes/qt4/qt4-x11-free-4.6.0/0008-qt-lib-infix.patch
new file mode 100644
index 0000000000..61e60a0eb6
--- /dev/null
+++ b/recipes/qt4/qt4-x11-free-4.6.0/0008-qt-lib-infix.patch
@@ -0,0 +1,32 @@
+--- /tmp/uitools.prf 2009-12-01 18:38:22.000000000 +0100
++++ qt-everywhere-opensource-src-4.6.0/mkspecs/features/uitools.prf 2009-12-01 18:58:16.000000000 +0100
+@@ -3,11 +3,11 @@
+
+ # Include the correct version of the UiLoader library
+ symbian: QTUITOOLS_LINKAGE = -lQtUiTools.lib
+-else: QTUITOOLS_LINKAGE = -lQtUiTools
++else: QTUITOOLS_LINKAGE = -lQtUiTools$${QT_LIBINFIX}
+
+ CONFIG(debug, debug|release) {
+- mac: QTUITOOLS_LINKAGE = -lQtUiTools_debug
+- win32: QTUITOOLS_LINKAGE = -lQtUiToolsd
++ mac: QTUITOOLS_LINKAGE = -lQtUiTools$${QT_LIBINFIX}_debug
++ win32: QTUITOOLS_LINKAGE = -lQtUiTools$${QT_LIBINFIX}d
+ }
+ LIBS += $$QTUITOOLS_LINKAGE
+
+--- /tmp/uitools.pro 2009-12-01 18:40:28.000000000 +0100
++++ qt-everywhere-opensource-src-4.6.0/tools/designer/src/uitools/uitools.pro 2009-12-01 18:59:18.000000000 +0100
+@@ -1,5 +1,5 @@
+ TEMPLATE = lib
+-TARGET = $$qtLibraryTarget(QtUiTools)
++TARGET = QtUiTools
+ QT += xml
+ CONFIG += qt staticlib
+ DESTDIR = ../../../../lib
+@@ -43,3 +43,5 @@
+ QMAKE_PKGCONFIG_DESTDIR = pkgconfig
+ QMAKE_PKGCONFIG_REQUIRES += QtXml
+ }
++
++TARGET = $$qtLibraryTarget($$TARGET$$QT_LIBINFIX) #do this towards the end
diff --git a/recipes/qt4/qt4-x11-free-4.6.0/linux.conf b/recipes/qt4/qt4-x11-free-4.6.0/linux.conf
new file mode 100644
index 0000000000..2e862407bc
--- /dev/null
+++ b/recipes/qt4/qt4-x11-free-4.6.0/linux.conf
@@ -0,0 +1,54 @@
+#
+# qmake configuration for common linux
+#
+
+QMAKE_CFLAGS_THREAD += -D_REENTRANT
+QMAKE_CXXFLAGS_THREAD += $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR =
+QMAKE_LIBDIR =
+QMAKE_INCDIR_X11 =
+QMAKE_LIBDIR_X11 =
+QMAKE_INCDIR_QT = $(OE_QMAKE_INCDIR_QT)
+QMAKE_LIBDIR_QT = $(OE_QMAKE_LIBDIR_QT)
+QMAKE_INCDIR_OPENGL =
+QMAKE_LIBDIR_OPENGL =
+
+
+QMAKE_LIBS = -lglib-2.0
+QMAKE_LIBS_DYNLOAD = -ldl
+QMAKE_LIBS_X11 = $(OE_QMAKE_LIBS_X11)
+QMAKE_LIBS_X11SM = $(OE_QMAKE_LIBS_X11SM)
+QMAKE_LIBS_NIS = -lnsl
+QMAKE_LIBS_OPENGL = -lGLU -lGL
+QMAKE_LIBS_OPENGL_QT = -lGL
+QMAKE_LIBS_THREAD = -lpthread
+
+QMAKE_MOC = $(OE_QMAKE_MOC)
+QMAKE_UIC = $(OE_QMAKE_UIC)
+QMAKE_UIC3 = $(OE_QMAKE_UIC3)
+QMAKE_RCC = $(OE_QMAKE_RCC)
+QMAKE_QDBUSCPP2XML = $(OE_QMAKE_QDBUSCPP2XML)
+QMAKE_QDBUSXML2CPP = $(OE_QMAKE_QDBUSXML2CPP)
+
+QMAKE_AR = $(OE_QMAKE_AR) cqs
+QMAKE_OBJCOPY = ${OBJCOPY}
+QMAKE_RANLIB =
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QMAKE_COPY = cp -f
+QMAKE_COPY_FILE = $(COPY)
+QMAKE_COPY_DIR = $(COPY) -r
+QMAKE_MOVE = mv -f
+QMAKE_DEL_FILE = rm -f
+QMAKE_DEL_DIR = rmdir
+QMAKE_STRIP = $(OE_QMAKE_STRIP)
+QMAKE_STRIPFLAGS_LIB += --strip-unneeded
+QMAKE_CHK_DIR_EXISTS = test -d
+QMAKE_MKDIR = mkdir -p
+QMAKE_INSTALL_FILE = install -m 644 -p
+QMAKE_INSTALL_PROGRAM = install -m 755 -p
+
+include(unix.conf)
diff --git a/recipes/qt4/qt4-x11-free_4.5.2.bb b/recipes/qt4/qt4-x11-free_4.5.2.bb
index 09f63363f0..7aebd68320 100644
--- a/recipes/qt4/qt4-x11-free_4.5.2.bb
+++ b/recipes/qt4/qt4-x11-free_4.5.2.bb
@@ -1,5 +1,5 @@
require qt4-x11-free.inc
LICENSE = "LGPLv2.1 GPLv3"
-PR = "${INC_PR}.2"
+PR = "${INC_PR}.3"
SRC_URI += "file://hack-out-pg_config.patch;patch=1"
diff --git a/recipes/qt4/qt4-x11-free_4.6.0.bb b/recipes/qt4/qt4-x11-free_4.6.0.bb
new file mode 100644
index 0000000000..4b5eabff5c
--- /dev/null
+++ b/recipes/qt4/qt4-x11-free_4.6.0.bb
@@ -0,0 +1,45 @@
+DEFAULT_PREFERENCE = "-1"
+
+require qt4-x11-free.inc
+LICENSE = "LGPLv2.1 GPLv3"
+PR = "${INC_PR}.0"
+
+export MOC = "${OE_QMAKE_MOC}"
+export QMAKE_MOC = "${OE_QMAKE_MOC}"
+
+SRC_URI = "ftp://ftp.trolltech.com/qt/source/qt-everywhere-opensource-src-${PV}.tar.gz \
+ file://0001-cross-compile.patch;patch=1 \
+ file://0002-fix-resinit-declaration.patch;patch=1 \
+ file://0004-no-qmake.patch;patch=1 \
+ file://0006-freetype-host-includes.patch;patch=1 \
+ file://0008-qt-lib-infix.patch;patch=1 \
+ file://fix-config-tests.patch;patch=1 \
+ file://g++.conf \
+ file://linux.conf \
+"
+
+SRC_URI += "file://hack-out-pg_config.patch;patch=1"
+
+S = "${WORKDIR}/qt-everywhere-opensource-src-${PV}"
+
+QT_CONFIG_FLAGS += " \
+ -no-embedded \
+ -xrandr \
+ -x11"
+
+do_configure_prepend() {
+ sed -i \
+ -e /QMAKE_MOC\ /d \
+ -e /QMAKE_UIC\ /d \
+ -e /QMAKE_UIC3\ /d \
+ -e /QMAKE_RCC\ /d \
+ ${S}/configure
+}
+
+do_install_append() {
+ install -d ${D}${bindir}
+ for i in rcc uic moc ; do
+ install -m 0755 ${S}/bin/$i ${D}${bindir}/
+ done
+}
+
diff --git a/recipes/qte/qte-2.3.10/fix-qte-asm-include.patch b/recipes/qte/qte-2.3.10/fix-qte-asm-include.patch
new file mode 100644
index 0000000000..951bd82461
--- /dev/null
+++ b/recipes/qte/qte-2.3.10/fix-qte-asm-include.patch
@@ -0,0 +1,19 @@
+--- a/src/kernel/qpixmapcache.cpp 2005-01-23 14:00:46.000000000 +0000
++++ b/src/kernel/qpixmapcache.cpp 2009-11-05 22:49:44.000000000 +0000
+@@ -119,13 +119,13 @@
+ #include <time.h>
+ #include <stdio.h>
+ #include <signal.h>
++#include <unistd.h>
+
+ #ifdef THROW_AWAY_UNUSED_PAGES
+ # include <sys/mman.h> // madvise
+-# include <asm/page.h> // PAGE_SIZE,PAGE_MASK,PAGE_ALIGN
+-# ifndef PAGE_ALIGN
++# define PAGE_SIZE getpagesize()
++# define PAGE_MASK (~(PAGE_SIZE-1))
+ # define PAGE_ALIGN(addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK)
+-# endif // PAGE_ALIGN
+ #endif // THROW_AWAY_UNUSED_PAGES
+
+
diff --git a/recipes/qte/qte-2.3.10/kernel-asm-page.patch b/recipes/qte/qte-2.3.10/kernel-asm-page.patch
deleted file mode 100644
index bad2d95967..0000000000
--- a/recipes/qte/qte-2.3.10/kernel-asm-page.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/src/kernel/qpixmapcache.cpp b/src/kernel/qpixmapcache.cpp
-index c2e7d9b..8d39585 100644
---- a/src/kernel/qpixmapcache.cpp
-+++ b/src/kernel/qpixmapcache.cpp
-@@ -123,9 +123,13 @@ void cleanup_pixmap_cache();
- #ifdef THROW_AWAY_UNUSED_PAGES
- # include <sys/mman.h> // madvise
- # include <asm/page.h> // PAGE_SIZE,PAGE_MASK,PAGE_ALIGN
-+# include <unistd.h> // getpagesize()
-+# if (!defined(PAGE_ALIGN)) && defined(PAGE_SIZE) && defined(PAGE_MASK)
-+# define PAGE_ALIGN(addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK)
-+# endif
- # ifndef PAGE_ALIGN
--# define PAGE_ALIGN(addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK)
--# endif // PAGE_ALIGN
-+# define PAGE_ALIGN(addr) (((addr)+getpagesize()-1)&~(getpagesize()-1))
-+# endif
- #endif // THROW_AWAY_UNUSED_PAGES
-
-
diff --git a/recipes/qte/qte-common_2.3.10.inc b/recipes/qte/qte-common_2.3.10.inc
index f24a265bf0..cd2aa4f1a2 100644
--- a/recipes/qte/qte-common_2.3.10.inc
+++ b/recipes/qte/qte-common_2.3.10.inc
@@ -45,9 +45,9 @@ SRC_URI = "ftp://ftp.trolltech.com/pub/qt/source/qt-embedded-${PV}-free.tar.gz;m
file://keyboardless-buttonmap.patch;patch=1 \
file://kernel-keymap.patch;patch=1 \
file://kernel-keymap-corgi.patch;patch=1 \
- file://kernel-asm-page.patch;patch=1 \
file://remove-unused-kbdhandler.patch;patch=1 \
file://disable-dup-rotation.patch;patch=1 \
+ file://fix-qte-asm-include.patch;patch=1 \
file://sharp_char.h \
file://switches.h "
diff --git a/recipes/qte/qte-mt-static_2.3.10.bb b/recipes/qte/qte-mt-static_2.3.10.bb
index 68ab2aceab..35640e5f3b 100644
--- a/recipes/qte/qte-mt-static_2.3.10.bb
+++ b/recipes/qte/qte-mt-static_2.3.10.bb
@@ -1,5 +1,5 @@
require qte-common_${PV}.inc
-PR = "r8"
+PR = "r9"
DEFAULT_PREFERENCE = "-1"
diff --git a/recipes/qte/qte-mt_2.3.10.bb b/recipes/qte/qte-mt_2.3.10.bb
index 71873dc51a..00e5d72e64 100644
--- a/recipes/qte/qte-mt_2.3.10.bb
+++ b/recipes/qte/qte-mt_2.3.10.bb
@@ -1,5 +1,5 @@
require qte-common_${PV}.inc
-PR = "r28"
+PR = "r29"
EXTRA_OECONF += "-thread"
diff --git a/recipes/qte/qte_2.3.10.bb b/recipes/qte/qte_2.3.10.bb
index 1183bc29bf..9a8be94a65 100644
--- a/recipes/qte/qte_2.3.10.bb
+++ b/recipes/qte/qte_2.3.10.bb
@@ -1,3 +1,3 @@
require qte-common_${PV}.inc
-PR = "r53"
+PR = "r54"
diff --git a/recipes/quake/ioquake3_svn.bb b/recipes/quake/ioquake3_svn.bb
index 6d79ff1b23..7a020559d2 100644
--- a/recipes/quake/ioquake3_svn.bb
+++ b/recipes/quake/ioquake3_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "ioquake3 (or ioq3 for short,) aims to build upon id Software's Qu
DEPENDS = "virtual/libsdl"
LICENSE = "GPLv2"
-PV = "1.34+svnr${SRCREV}"
+PV = "1.34+svnr${SRCPV}"
SRCREV="1470"
SRC_URI = "svn://svn.icculus.org/quake3/;module=trunk"
diff --git a/recipes/quake/quake2_svn.bb b/recipes/quake/quake2_svn.bb
index a01def898d..426fab1731 100644
--- a/recipes/quake/quake2_svn.bb
+++ b/recipes/quake/quake2_svn.bb
@@ -4,7 +4,7 @@ LICENSE = "GPL"
DEPENDS = "libsdl-x11 libxxf86dga"
SRCREV = "205"
-PV = "0.16.1+svnr${SRCREV}"
+PV = "0.16.1+svnr${SRCPV}"
PR = "r1"
SRC_URI = "svn://svn.icculus.org/quake2/;module=trunk \
diff --git a/recipes/qwo/qwo_0.5.bb b/recipes/qwo/qwo_0.5.bb
new file mode 100644
index 0000000000..4db4d58182
--- /dev/null
+++ b/recipes/qwo/qwo_0.5.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "qwo virtual keyboard"
+AUTHOR = "Charles Clement"
+HOMEPAGE = "http://www.nongnu.org/qwo/"
+SECTION = "x11"
+PRIORITY = "optional"
+LICENSE = "GPLv2"
+DEPENDS = "libxtst libxext virtual/imlib2 libconfig"
+RDEPENDS += "imlib2-loaders"
+
+SRC_URI = "http://download.savannah.nongnu.org/releases/qwo/qwo-${PV}.tar.gz "
+
+inherit autotools
diff --git a/recipes/remoko/remoko-server_svn.bb b/recipes/remoko/remoko-server_svn.bb
index 6e24ee126a..1e17a9ec40 100644
--- a/recipes/remoko/remoko-server_svn.bb
+++ b/recipes/remoko/remoko-server_svn.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://code.google.com/p/remoko/"
AUTHOR = "Valério Valério"
LICENSE = "GPL"
SECTION = "console/network"
-PV = "0.2.1+svnr${SRCREV}"
+PV = "0.2.1+svnr${SRCPV}"
PE = "1"
SRC_URI = "svn://remoko.googlecode.com/svn/trunk;module=BT_HID_Server;proto=http"
diff --git a/recipes/remoko/remoko_svn.bb b/recipes/remoko/remoko_svn.bb
index dcd152c344..8d209daf14 100644
--- a/recipes/remoko/remoko_svn.bb
+++ b/recipes/remoko/remoko_svn.bb
@@ -4,7 +4,7 @@ AUTHOR = "Valério Valério"
LICENSE = "GPL"
SECTION = "console/network"
DEPENDS = "edje-native"
-PV = "0.3.2+svnr${SRCREV}"
+PV = "0.3.2+svnr${SRCPV}"
PE = "1"
SRC_URI = "svn://remoko.googlecode.com/svn/trunk;module=BT_HID_UI;proto=http"
diff --git a/recipes/samsung-soc-utils/s3c2410-boot-usb-native_svn.bb b/recipes/samsung-soc-utils/s3c2410-boot-usb-native_svn.bb
index d839bb81e7..b8381a2bd4 100644
--- a/recipes/samsung-soc-utils/s3c2410-boot-usb-native_svn.bb
+++ b/recipes/samsung-soc-utils/s3c2410-boot-usb-native_svn.bb
@@ -3,7 +3,7 @@ DEPENDS = "virtual/libusb0-native"
SECTION = "devel"
AUTHOR = "Harald Welte <laforge@openmoko.org>"
LICENSE = "GPL"
-PV = "0.1.0+svnr${SRCREV}"
+PV = "0.1.0+svnr${SRCPV}"
PR = "r1"
SRC_URI = "svn://svn.openmoko.org/trunk/src/host/;module=s3c2410_boot_usb;proto=https"
diff --git a/recipes/samsung-soc-utils/s3c24xx-gpio_svn.bb b/recipes/samsung-soc-utils/s3c24xx-gpio_svn.bb
index 0a57d2c0e6..10ebf6b431 100644
--- a/recipes/samsung-soc-utils/s3c24xx-gpio_svn.bb
+++ b/recipes/samsung-soc-utils/s3c24xx-gpio_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "A user-space tool to show and modify the state of GPIOs on the S3
SECTION = "console/utils"
AUTHOR = "Werner Almesberger <werner@openmoko.org>"
LICENSE = "GPL"
-PV = "1.0+svnr${SRCREV}"
+PV = "1.0+svnr${SRCPV}"
PR = "r2"
SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;proto=http"
diff --git a/recipes/samsung-soc-utils/s3c64xx-gpio_svn.bb b/recipes/samsung-soc-utils/s3c64xx-gpio_svn.bb
index 92110691cf..473626fcdc 100644
--- a/recipes/samsung-soc-utils/s3c64xx-gpio_svn.bb
+++ b/recipes/samsung-soc-utils/s3c64xx-gpio_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "A user-space tool to show and modify the state of GPIOs on the S3
SECTION = "console/utils"
AUTHOR = "Werner Almesberger <werner@openmoko.org>"
LICENSE = "GPL"
-PV = "1.0+svnr${SRCREV}"
+PV = "1.0+svnr${SRCPV}"
PR = "r0"
SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;proto=http"
diff --git a/recipes/samsung-soc-utils/sjf2410-linux-native_svn.bb b/recipes/samsung-soc-utils/sjf2410-linux-native_svn.bb
index fcfbba923d..f6584109c6 100644
--- a/recipes/samsung-soc-utils/sjf2410-linux-native_svn.bb
+++ b/recipes/samsung-soc-utils/sjf2410-linux-native_svn.bb
@@ -2,10 +2,10 @@ DESCRIPTION = "JTAG utility to interface w/ a S3C2410 device"
SECTION = "devel"
AUTHOR = "Harald Welte <laforge@openmoko.org>"
LICENSE = "GPL"
-PV = "0.1+svnr${SRCREV}"
+PV = "0.1+svnr${SRCPV}"
PR = "r0"
-SRC_URI = "svn://svn.openmoko.org/trunk/src/host/;module=sjf2410-linux;proto=https"
+SRC_URI = "svn://svn.openmoko.org/trunk/src/host/;module=sjf2410-linux;proto=http"
S = "${WORKDIR}/sjf2410-linux"
inherit native
diff --git a/recipes/sane/sane-backends-1.0.20/Makefile.in.patch b/recipes/sane/sane-backends-1.0.20/Makefile.in.patch
new file mode 100644
index 0000000000..a545d0413b
--- /dev/null
+++ b/recipes/sane/sane-backends-1.0.20/Makefile.in.patch
@@ -0,0 +1,13 @@
+Index: sane-backends-1.0.20/Makefile.in
+===================================================================
+--- sane-backends-1.0.20.orig/Makefile.in 2009-04-30 15:41:20.000000000 +0200
++++ sane-backends-1.0.20/Makefile.in 2009-11-23 19:19:38.000000000 +0100
+@@ -244,7 +244,7 @@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+-SUBDIRS = include lib sanei backend frontend tools doc po
++SUBDIRS = include lib sanei backend frontend tools po
+ DIST_SUBDIRS = include lib sanei backend frontend tools doc po japi testsuite
+ dist_doc_DATA = AUTHORS ChangeLog COPYING LICENSE NEWS PROBLEMS PROJECTS \
+ README README.aix README.beos README.darwin README.djpeg README.freebsd \
diff --git a/recipes/sane/sane-backends-1.0.20/byteorder.m4 b/recipes/sane/sane-backends-1.0.20/byteorder.m4
new file mode 100644
index 0000000000..693f939b7d
--- /dev/null
+++ b/recipes/sane/sane-backends-1.0.20/byteorder.m4
@@ -0,0 +1,354 @@
+dnl AC_NEED_BYTEORDER_H ( HEADER-TO-GENERATE )
+dnl Copyright 2001-2002 by Dan Fandrich <dan@coneharvesters.com>
+dnl This file may be copied and used freely without restrictions. No warranty
+dnl is expressed or implied.
+dnl
+dnl Create a header file that guarantees that byte swapping macros of the
+dnl ntohl variety as well as the extended types included in OpenBSD and
+dnl NetBSD such as le32toh are defined. If possible, the standard ntohl
+dnl are overloaded as they are optimized for the given platform, but when
+dnl this is not possible (e.g. on a big-endian machine) they are defined
+dnl in this file.
+
+dnl Look for a symbol in a header file
+dnl AC_HAVE_SYMBOL ( IDENTIFIER, HEADER-FILE, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND )
+AC_DEFUN([AC_HAVE_SYMBOL],
+[
+AC_MSG_CHECKING(for $1 in $2)
+AC_EGREP_CPP([symbol is present|\<$1\>],[
+#include <$2>
+#ifdef $1
+ symbol is present
+#endif
+ ],
+[AC_MSG_RESULT(yes)
+$3
+],
+[AC_MSG_RESULT(no)
+$4
+])])
+
+
+dnl Create a header file that defines extended byte swapping macros
+AC_DEFUN([AC_NEED_BYTEORDER_H],
+[
+changequote(, )dnl
+ac_dir=`echo $1|sed 's%/[^/][^/]*$%%'`
+changequote([, ])dnl
+if test "$ac_dir" != "$1" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+fi
+
+# We're only interested in the target CPU, but it's not always set
+effective_target="$target"
+if test "x$effective_target" = xNONE -o "x$effective_target" = x ; then
+ effective_target="$host"
+fi
+AC_SUBST(effective_target)
+
+cat > "$1" << EOF
+/* This file is generated automatically by configure */
+/* It is valid only for the system type ${effective_target} */
+
+#ifndef __BYTEORDER_H
+#define __BYTEORDER_H
+
+EOF
+
+dnl First, do an endian check
+AC_C_BIGENDIAN
+
+dnl Look for NetBSD-style extended byte swapping macros
+AC_HAVE_SYMBOL(le32toh,machine/endian.h,
+ [HAVE_LE32TOH=1
+ cat >> "$1" << EOF
+/* extended byte swapping macros are already available */
+#include <machine/endian.h>
+
+EOF],
+
+[
+
+dnl Look for standard byte swapping macros
+AC_HAVE_SYMBOL(ntohl,arpa/inet.h,
+ [cat >> "$1" << EOF
+/* ntohl and relatives live here */
+#include <arpa/inet.h>
+
+EOF],
+
+ [AC_HAVE_SYMBOL(ntohl,netinet/in.h,
+ [cat >> "$1" << EOF
+/* ntohl and relatives live here */
+#include <netinet/in.h>
+
+EOF],true)])
+])
+
+dnl Look for generic byte swapping macros
+
+dnl OpenBSD
+AC_HAVE_SYMBOL(swap32,machine/endian.h,
+ [cat >> "$1" << EOF
+/* swap32 and swap16 are defined in machine/endian.h */
+
+EOF],
+
+ [
+dnl Linux GLIBC
+ AC_HAVE_SYMBOL(bswap_32,byteswap.h,
+ [cat >> "$1" << EOF
+/* Define generic byte swapping functions */
+#include <byteswap.h>
+#define swap16(x) bswap_16(x)
+#define swap32(x) bswap_32(x)
+#define swap64(x) bswap_64(x)
+
+EOF],
+
+ [
+dnl NetBSD
+ AC_HAVE_SYMBOL(bswap32,machine/endian.h,
+ dnl We're already including machine/endian.h if this test succeeds
+ [cat >> "$1" << EOF
+/* Define generic byte swapping functions */
+EOF
+ if test "$HAVE_LE32TOH" != "1"; then
+ echo '#include <machine/endian.h>'>> "$1"
+ fi
+cat >> "$1" << EOF
+#define swap16(x) bswap16(x)
+#define swap32(x) bswap32(x)
+#define swap64(x) bswap64(x)
+
+EOF],
+
+ [
+dnl FreeBSD
+ AC_HAVE_SYMBOL(__byte_swap_long,sys/types.h,
+ [cat >> "$1" << EOF
+/* Define generic byte swapping functions */
+#include <sys/types.h>
+#define swap16(x) __byte_swap_word(x)
+#define swap32(x) __byte_swap_long(x)
+/* No optimized 64 bit byte swapping macro is available */
+#define swap64(x) ((uint64_t)(((uint64_t)(x) << 56) & 0xff00000000000000ULL | \\
+ ((uint64_t)(x) << 40) & 0x00ff000000000000ULL | \\
+ ((uint64_t)(x) << 24) & 0x0000ff0000000000ULL | \\
+ ((uint64_t)(x) << 8) & 0x000000ff00000000ULL | \\
+ ((x) >> 8) & 0x00000000ff000000ULL | \\
+ ((x) >> 24) & 0x0000000000ff0000ULL | \\
+ ((x) >> 40) & 0x000000000000ff00ULL | \\
+ ((x) >> 56) & 0x00000000000000ffULL))
+
+EOF],
+
+ [
+dnl OS X
+ AC_HAVE_SYMBOL(NXSwapLong,machine/byte_order.h,
+ [cat >> "$1" << EOF
+/* Define generic byte swapping functions */
+#include <machine/byte_order.h>
+#define swap16(x) NXSwapShort(x)
+#define swap32(x) NXSwapLong(x)
+#define swap64(x) NXSwapLongLong(x)
+
+EOF],
+ [
+ if test $ac_cv_c_bigendian = yes; then
+ cat >> "$1" << EOF
+/* No other byte swapping functions are available on this big-endian system */
+#define swap16(x) ((uint16_t)(((x) << 8) | ((uint16_t)(x) >> 8)))
+#define swap32(x) ((uint32_t)(((uint32_t)(x) << 24) & 0xff000000UL | \\
+ ((uint32_t)(x) << 8) & 0x00ff0000UL | \\
+ ((x) >> 8) & 0x0000ff00UL | \\
+ ((x) >> 24) & 0x000000ffUL))
+#define swap64(x) ((uint64_t)(((uint64_t)(x) << 56) & 0xff00000000000000ULL | \\
+ ((uint64_t)(x) << 40) & 0x00ff000000000000ULL | \\
+ ((uint64_t)(x) << 24) & 0x0000ff0000000000ULL | \\
+ ((uint64_t)(x) << 8) & 0x000000ff00000000ULL | \\
+ ((x) >> 8) & 0x00000000ff000000ULL | \\
+ ((x) >> 24) & 0x0000000000ff0000ULL | \\
+ ((x) >> 40) & 0x000000000000ff00ULL | \\
+ ((x) >> 56) & 0x00000000000000ffULL))
+
+EOF
+ else
+ cat >> "$1" << EOF
+/* Use these as generic byteswapping macros on this little endian system */
+#define swap16(x) ntohs(x)
+#define swap32(x) ntohl(x)
+/* No optimized 64 bit byte swapping macro is available */
+#define swap64(x) ((uint64_t)(((uint64_t)(x) << 56) & 0xff00000000000000ULL | \\
+ ((uint64_t)(x) << 40) & 0x00ff000000000000ULL | \\
+ ((uint64_t)(x) << 24) & 0x0000ff0000000000ULL | \\
+ ((uint64_t)(x) << 8) & 0x000000ff00000000ULL | \\
+ ((x) >> 8) & 0x00000000ff000000ULL | \\
+ ((x) >> 24) & 0x0000000000ff0000ULL | \\
+ ((x) >> 40) & 0x000000000000ff00ULL | \\
+ ((x) >> 56) & 0x00000000000000ffULL))
+
+EOF
+ fi
+])
+ ])
+ ])
+ ])
+])
+
+
+[
+if test "$HAVE_LE32TOH" != "1"; then
+ cat >> "$1" << EOF
+/* The byte swapping macros have the form: */
+/* EENN[a]toh or htoEENN[a] where EE is be (big endian) or */
+/* le (little-endian), NN is 16 or 32 (number of bits) and a, */
+/* if present, indicates that the endian side is a pointer to an */
+/* array of uint8_t bytes instead of an integer of the specified length. */
+/* h refers to the host's ordering method. */
+
+/* So, to convert a 32-bit integer stored in a buffer in little-endian */
+/* format into a uint32_t usable on this machine, you could use: */
+/* uint32_t value = le32atoh(&buf[3]); */
+/* To put that value back into the buffer, you could use: */
+/* htole32a(&buf[3], value); */
+
+/* Define aliases for the standard byte swapping macros */
+/* Arguments to these macros must be properly aligned on natural word */
+/* boundaries in order to work properly on all architectures */
+#define htobe16(x) htons(x)
+#define htobe32(x) htonl(x)
+#define be16toh(x) ntohs(x)
+#define be32toh(x) ntohl(x)
+
+#define HTOBE16(x) (x) = htobe16(x)
+#define HTOBE32(x) (x) = htobe32(x)
+#define BE32TOH(x) (x) = be32toh(x)
+#define BE16TOH(x) (x) = be16toh(x)
+
+EOF
+
+ if test $ac_cv_c_bigendian = yes; then
+ cat >> "$1" << EOF
+/* Define our own extended byte swapping macros for big-endian machines */
+#define htole16(x) swap16(x)
+#define htole32(x) swap32(x)
+#define le16toh(x) swap16(x)
+#define le32toh(x) swap32(x)
+
+#define htobe64(x) (x)
+#define be64toh(x) (x)
+
+#define HTOLE16(x) (x) = htole16(x)
+#define HTOLE32(x) (x) = htole32(x)
+#define LE16TOH(x) (x) = le16toh(x)
+#define LE32TOH(x) (x) = le32toh(x)
+
+#define HTOBE64(x) (void) (x)
+#define BE64TOH(x) (void) (x)
+
+EOF
+ else
+ cat >> "$1" << EOF
+/* On little endian machines, these macros are null */
+#define htole16(x) (x)
+#define htole32(x) (x)
+#define htole64(x) (x)
+#define le16toh(x) (x)
+#define le32toh(x) (x)
+#define le64toh(x) (x)
+
+#define HTOLE16(x) (void) (x)
+#define HTOLE32(x) (void) (x)
+#define HTOLE64(x) (void) (x)
+#define LE16TOH(x) (void) (x)
+#define LE32TOH(x) (void) (x)
+#define LE64TOH(x) (void) (x)
+
+/* These don't have standard aliases */
+#define htobe64(x) swap64(x)
+#define be64toh(x) swap64(x)
+
+#define HTOBE64(x) (x) = htobe64(x)
+#define BE64TOH(x) (x) = be64toh(x)
+
+EOF
+ fi
+fi
+
+cat >> "$1" << EOF
+/* Define the C99 standard length-specific integer types */
+#include <_stdint.h>
+
+EOF
+
+case "${effective_target}" in
+ i[3456]86-*)
+ cat >> "$1" << EOF
+/* Here are some macros to create integers from a byte array */
+/* These are used to get and put integers from/into a uint8_t array */
+/* with a specific endianness. This is the most portable way to generate */
+/* and read messages to a network or serial device. Each member of a */
+/* packet structure must be handled separately. */
+
+/* The i386 and compatibles can handle unaligned memory access, */
+/* so use the optimized macros above to do this job */
+#define be16atoh(x) be16toh(*(uint16_t*)(x))
+#define be32atoh(x) be32toh(*(uint32_t*)(x))
+#define be64atoh(x) be64toh(*(uint64_t*)(x))
+#define le16atoh(x) le16toh(*(uint16_t*)(x))
+#define le32atoh(x) le32toh(*(uint32_t*)(x))
+#define le64atoh(x) le64toh(*(uint64_t*)(x))
+
+#define htobe16a(a,x) *(uint16_t*)(a) = htobe16(x)
+#define htobe32a(a,x) *(uint32_t*)(a) = htobe32(x)
+#define htobe64a(a,x) *(uint64_t*)(a) = htobe64(x)
+#define htole16a(a,x) *(uint16_t*)(a) = htole16(x)
+#define htole32a(a,x) *(uint32_t*)(a) = htole32(x)
+#define htole64a(a,x) *(uint64_t*)(a) = htole64(x)
+
+EOF
+ ;;
+
+ *)
+ cat >> "$1" << EOF
+/* Here are some macros to create integers from a byte array */
+/* These are used to get and put integers from/into a uint8_t array */
+/* with a specific endianness. This is the most portable way to generate */
+/* and read messages to a network or serial device. Each member of a */
+/* packet structure must be handled separately. */
+
+/* Non-optimized but portable macros */
+#define be16atoh(x) ((uint16_t)(((x)[0]<<8)|(x)[1]))
+#define be32atoh(x) ((uint32_t)(((x)[0]<<24)|((x)[1]<<16)|((x)[2]<<8)|(x)[3]))
+#define be64atoh(x) ((uint64_t)(((x)[0]<<56)|((x)[1]<<48)|((x)[2]<<40)| \\
+ ((x)[3]<<32)|((x)[4]<<24)|((x)[5]<<16)|((x)[6]<<8)|(x)[7]))
+#define le16atoh(x) ((uint16_t)(((x)[1]<<8)|(x)[0]))
+#define le32atoh(x) ((uint32_t)(((x)[3]<<24)|((x)[2]<<16)|((x)[1]<<8)|(x)[0]))
+#define le64atoh(x) ((uint64_t)(((x)[7]<<56)|((x)[6]<<48)|((x)[5]<<40)| \\
+ ((x)[4]<<32)|((x)[3]<<24)|((x)[2]<<16)|((x)[1]<<8)|(x)[0]))
+
+#define htobe16a(a,x) (a)[0]=(uint8_t)((x)>>8), (a)[1]=(uint8_t)(x)
+#define htobe32a(a,x) (a)[0]=(uint8_t)((x)>>24), (a)[1]=(uint8_t)((x)>>16), \\
+ (a)[2]=(uint8_t)((x)>>8), (a)[3]=(uint8_t)(x)
+#define htobe64a(a,x) (a)[0]=(uint8_t)((x)>>56), (a)[1]=(uint8_t)((x)>>48), \\
+ (a)[2]=(uint8_t)((x)>>40), (a)[3]=(uint8_t)((x)>>32), \\
+ (a)[4]=(uint8_t)((x)>>24), (a)[5]=(uint8_t)((x)>>16), \\
+ (a)[6]=(uint8_t)((x)>>8), (a)[7]=(uint8_t)(x)
+#define htole16a(a,x) (a)[1]=(uint8_t)((x)>>8), (a)[0]=(uint8_t)(x)
+#define htole32a(a,x) (a)[3]=(uint8_t)((x)>>24), (a)[2]=(uint8_t)((x)>>16), \\
+ (a)[1]=(uint8_t)((x)>>8), (a)[0]=(uint8_t)(x)
+#define htole64a(a,x) (a)[7]=(uint8_t)((x)>>56), (a)[6]=(uint8_t)((x)>>48), \\
+ (a)[5]=(uint8_t)((x)>>40), (a)[4]=(uint8_t)((x)>>32), \\
+ (a)[3]=(uint8_t)((x)>>24), (a)[2]=(uint8_t)((x)>>16), \\
+ (a)[1]=(uint8_t)((x)>>8), (a)[0]=(uint8_t)(x)
+
+EOF
+ ;;
+esac
+]
+
+cat >> "$1" << EOF
+#endif /*__BYTEORDER_H*/
+EOF])
diff --git a/recipes/sane/sane-backends-1.0.20/saned.xinetd b/recipes/sane/sane-backends-1.0.20/saned.xinetd
new file mode 100644
index 0000000000..f4e890fdbe
--- /dev/null
+++ b/recipes/sane/sane-backends-1.0.20/saned.xinetd
@@ -0,0 +1,10 @@
+service sane-port
+{
+ socket_type = stream
+ server = /usr/sbin/saned
+ protocol = tcp
+ user = nobody
+ group = nogroup
+ wait = no
+ disable = no
+}
diff --git a/recipes/sane/sane-backends-1.0.20/stdint.m4 b/recipes/sane/sane-backends-1.0.20/stdint.m4
new file mode 100644
index 0000000000..f95b28c773
--- /dev/null
+++ b/recipes/sane/sane-backends-1.0.20/stdint.m4
@@ -0,0 +1,734 @@
+dnl AC_NEED_STDINT_H ( HEADER-TO-GENERATE )
+dnl Copyright 2001-2002 by Dan Fandrich <dan@coneharvesters.com>
+dnl This file may be copied and used freely without restrictions. No warranty
+dnl is expressed or implied.
+dnl
+dnl Look for a header file that defines size-specific integer types like the
+dnl ones recommended to be in stdint.h in the C99 standard (e.g. uint32_t).
+dnl This is a dumbed-down version of the macro of the same name in the file
+dnl ac_need_stdint_h.m4 which is part of the ac-archive, available at
+dnl <URL:http://ac-archive.sourceforge.net/> (also, another macro
+dnl AC_CREATE_STDINT_H by the same author). This version is not as smart,
+dnl but works on older autoconf versions and has a different license.
+
+dnl AX_CHECK_DEFINED_TYPE ( TYPE, FILE, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND )
+dnl This is similar to _AC_CHECK_TYPE_NEW (a.k.a. new syntax version of
+dnl AC_CHECK_TYPE) in autoconf 2.50 but works on older versions
+AC_DEFUN([AX_CHECK_DEFINED_TYPE],
+[AC_MSG_CHECKING([for $1 in $2])
+AC_EGREP_CPP(changequote(<<,>>)dnl
+<<(^|[^a-zA-Z_0-9])$1[^a-zA-Z_0-9]>>dnl
+changequote([,]), [#include <$2>],
+ac_cv_type_$1=yes, ac_cv_type_$1=no)dnl
+AC_MSG_RESULT($ac_cv_type_$1)
+if test $ac_cv_type_$1 = yes; then
+ $3
+else
+ $4
+fi
+])
+
+dnl Look for a header file that defines size-specific integer types
+AC_DEFUN([AX_NEED_STDINT_H],
+[
+changequote(, )dnl
+ac_dir=`echo "$1"|sed 's%/[^/][^/]*$%%'`
+changequote([, ])dnl
+if test "$ac_dir" != "$1" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+fi
+
+AX_CHECK_DEFINED_TYPE(uint8_t,
+stdint.h,
+[
+cat > "$1" <<EOF
+/* This file is generated automatically by configure */
+#include <stdint.h>
+EOF],
+[AX_CHECK_DEFINED_TYPE(uint8_t,
+inttypes.h,
+[cat > "$1" <<EOF
+/* This file is generated automatically by configure */
+#include <inttypes.h>
+EOF],
+[AX_CHECK_DEFINED_TYPE(uint8_t,
+sys/types.h,
+[cat > "$1" <<EOF
+/* This file is generated automatically by configure */
+#include <sys/types.h>
+EOF],
+[AX_CHECK_DEFINED_TYPE(u_int8_t,
+sys/types.h,
+[cat > "$1" <<EOF
+/* This file is generated automatically by configure */
+#ifndef __STDINT_H
+#define __STDINT_H
+#include <sys/types.h>
+typedef u_int8_t uint8_t;
+typedef u_int16_t uint16_t;
+typedef u_int32_t uint32_t;
+EOF
+
+AX_CHECK_DEFINED_TYPE(u_int64_t,
+sys/types.h,
+[cat >> "$1" <<EOF
+typedef u_int64_t uint64_t;
+#endif /*!__STDINT_H*/
+EOF],
+[cat >> "$1" <<EOF
+/* 64-bit types are not available on this system */
+/* typedef u_int64_t uint64_t; */
+#endif /*!__STDINT_H*/
+EOF])
+
+],
+[AC_MSG_WARN([I can't find size-specific integer definitions on this system])
+if test -e "$1" ; then
+ rm -f "$1"
+fi
+])])])])dnl
+])
+
+AC_DEFUN([AX_CHECK_DATA_MODEL],[
+ AC_CHECK_SIZEOF(char)
+ AC_CHECK_SIZEOF(short)
+ AC_CHECK_SIZEOF(int)
+ AC_CHECK_SIZEOF(long)
+ AC_CHECK_SIZEOF(void*)
+ ac_cv_char_data_model=""
+ ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_char"
+ ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_short"
+ ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_int"
+ ac_cv_long_data_model=""
+ ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_int"
+ ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_long"
+ ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_voidp"
+ AC_MSG_CHECKING([data model])
+ case "$ac_cv_char_data_model/$ac_cv_long_data_model" in
+ 122/242) ac_cv_data_model="IP16" ; n="standard 16bit machine" ;;
+ 122/244) ac_cv_data_model="LP32" ; n="standard 32bit machine" ;;
+ 122/*) ac_cv_data_model="i16" ; n="unusual int16 model" ;;
+ 124/444) ac_cv_data_model="ILP32" ; n="standard 32bit unixish" ;;
+ 124/488) ac_cv_data_model="LP64" ; n="standard 64bit unixish" ;;
+ 124/448) ac_cv_data_model="LLP64" ; n="unusual 64bit unixish" ;;
+ 124/*) ac_cv_data_model="i32" ; n="unusual int32 model" ;;
+ 128/888) ac_cv_data_model="ILP64" ; n="unusual 64bit numeric" ;;
+ 128/*) ac_cv_data_model="i64" ; n="unusual int64 model" ;;
+ 222/*2) ac_cv_data_model="DSP16" ; n="strict 16bit dsptype" ;;
+ 333/*3) ac_cv_data_model="DSP24" ; n="strict 24bit dsptype" ;;
+ 444/*4) ac_cv_data_model="DSP32" ; n="strict 32bit dsptype" ;;
+ 666/*6) ac_cv_data_model="DSP48" ; n="strict 48bit dsptype" ;;
+ 888/*8) ac_cv_data_model="DSP64" ; n="strict 64bit dsptype" ;;
+ 222/*|333/*|444/*|666/*|888/*) :
+ ac_cv_data_model="iDSP" ; n="unusual dsptype" ;;
+ *) ac_cv_data_model="none" ; n="very unusual model" ;;
+ esac
+ AC_MSG_RESULT([$ac_cv_data_model ($ac_cv_long_data_model, $n)])
+])
+
+dnl AX_CHECK_HEADER_STDINT_X([HEADERLIST][,ACTION-IF])
+AC_DEFUN([AX_CHECK_HEADER_STDINT_X],[
+AC_CACHE_CHECK([for stdint uintptr_t], [ac_cv_header_stdint_x],[
+ ac_cv_header_stdint_x="" # the 1997 typedefs (inttypes.h)
+ AC_MSG_RESULT([(..)])
+ for i in m4_ifval([$1],[$1],[stdint.h inttypes.h sys/inttypes.h]) ; do
+ unset ac_cv_type_uintptr_t
+ unset ac_cv_type_uint64_t
+ AC_CHECK_TYPE(uintptr_t,[ac_cv_header_stdint_x=$i],continue,[#include <$i>])
+ AC_CHECK_TYPE(uint64_t,[and64="/uint64_t"],[and64=""],[#include<$i>])
+ m4_ifvaln([$1],[$1]) break
+ done
+ AC_MSG_CHECKING([for stdint uintptr_t])
+ ])
+])
+
+AC_DEFUN([AX_CHECK_HEADER_STDINT_O],[
+AC_CACHE_CHECK([for stdint uint32_t], [ac_cv_header_stdint_o],[
+ ac_cv_header_stdint_o="" # the 1995 typedefs (sys/inttypes.h)
+ AC_MSG_RESULT([(..)])
+ for i in m4_ifval([$1],[$1],[inttypes.h sys/inttypes.h stdint.h]) ; do
+ unset ac_cv_type_uint32_t
+ unset ac_cv_type_uint64_t
+ AC_CHECK_TYPE(uint32_t,[ac_cv_header_stdint_o=$i],continue,[#include <$i>])
+ AC_CHECK_TYPE(uint64_t,[and64="/uint64_t"],[and64=""],[#include<$i>])
+ m4_ifvaln([$1],[$1]) break
+ break;
+ done
+ AC_MSG_CHECKING([for stdint uint32_t])
+ ])
+])
+
+AC_DEFUN([AX_CHECK_HEADER_STDINT_U],[
+AC_CACHE_CHECK([for stdint u_int32_t], [ac_cv_header_stdint_u],[
+ ac_cv_header_stdint_u="" # the BSD typedefs (sys/types.h)
+ AC_MSG_RESULT([(..)])
+ for i in m4_ifval([$1],[$1],[sys/types.h inttypes.h sys/inttypes.h]) ; do
+ unset ac_cv_type_u_int32_t
+ unset ac_cv_type_u_int64_t
+ AC_CHECK_TYPE(u_int32_t,[ac_cv_header_stdint_u=$i],continue,[#include <$i>])
+ AC_CHECK_TYPE(u_int64_t,[and64="/u_int64_t"],[and64=""],[#include<$i>])
+ m4_ifvaln([$1],[$1]) break
+ break;
+ done
+ AC_MSG_CHECKING([for stdint u_int32_t])
+ ])
+])
+
+AC_DEFUN([AX_CREATE_STDINT_H],
+[# ------ AX CREATE STDINT H -------------------------------------
+AC_MSG_CHECKING([for stdint types])
+ac_stdint_h=`echo ifelse($1, , _stdint.h, $1)`
+# try to shortcircuit - if the default include path of the compiler
+# can find a "stdint.h" header then we assume that all compilers can.
+AC_CACHE_VAL([ac_cv_header_stdint_t],[
+old_CXXFLAGS="$CXXFLAGS" ; CXXFLAGS=""
+old_CPPFLAGS="$CPPFLAGS" ; CPPFLAGS=""
+old_CFLAGS="$CFLAGS" ; CFLAGS=""
+AC_TRY_COMPILE([#include <stdint.h>],[int_least32_t v = 0;],
+[ac_cv_stdint_result="(assuming C99 compatible system)"
+ ac_cv_header_stdint_t="stdint.h"; ],
+[ac_cv_header_stdint_t=""])
+CXXFLAGS="$old_CXXFLAGS"
+CPPFLAGS="$old_CPPFLAGS"
+CFLAGS="$old_CFLAGS" ])
+
+v="... $ac_cv_header_stdint_h"
+if test "$ac_stdint_h" = "stdint.h" ; then
+ AC_MSG_RESULT([(are you sure you want them in ./stdint.h?)])
+elif test "$ac_stdint_h" = "inttypes.h" ; then
+ AC_MSG_RESULT([(are you sure you want them in ./inttypes.h?)])
+elif test "_$ac_cv_header_stdint_t" = "_" ; then
+ AC_MSG_RESULT([(putting them into $ac_stdint_h)$v])
+else
+ ac_cv_header_stdint="$ac_cv_header_stdint_t"
+ AC_MSG_RESULT([$ac_cv_header_stdint (shortcircuit)])
+fi
+
+if test "_$ac_cv_header_stdint_t" = "_" ; then # can not shortcircuit..
+
+dnl .....intro message done, now do a few system checks.....
+dnl btw, all old CHECK_TYPE macros do automatically "DEFINE" a type,
+dnl therefore we use the autoconf implementation detail CHECK_TYPE_NEW
+dnl instead that is triggered with 3 or more arguments (see types.m4)
+
+inttype_headers=`echo $2 | sed -e 's/,/ /g'`
+
+ac_cv_stdint_result="(no helpful system typedefs seen)"
+AX_CHECK_HEADER_STDINT_X(dnl
+ stdint.h inttypes.h sys/inttypes.h $inttype_headers,
+ ac_cv_stdint_result="(seen uintptr_t$and64 in $i)")
+
+if test "_$ac_cv_header_stdint_x" = "_" ; then
+AX_CHECK_HEADER_STDINT_O(dnl,
+ inttypes.h sys/inttypes.h stdint.h $inttype_headers,
+ ac_cv_stdint_result="(seen uint32_t$and64 in $i)")
+fi
+
+if test "_$ac_cv_header_stdint_x" = "_" ; then
+if test "_$ac_cv_header_stdint_o" = "_" ; then
+AX_CHECK_HEADER_STDINT_U(dnl,
+ sys/types.h inttypes.h sys/inttypes.h $inttype_headers,
+ ac_cv_stdint_result="(seen u_int32_t$and64 in $i)")
+fi fi
+
+dnl if there was no good C99 header file, do some typedef checks...
+if test "_$ac_cv_header_stdint_x" = "_" ; then
+ AC_MSG_CHECKING([for stdint datatype model])
+ AC_MSG_RESULT([(..)])
+ AX_CHECK_DATA_MODEL
+fi
+
+if test "_$ac_cv_header_stdint_x" != "_" ; then
+ ac_cv_header_stdint="$ac_cv_header_stdint_x"
+elif test "_$ac_cv_header_stdint_o" != "_" ; then
+ ac_cv_header_stdint="$ac_cv_header_stdint_o"
+elif test "_$ac_cv_header_stdint_u" != "_" ; then
+ ac_cv_header_stdint="$ac_cv_header_stdint_u"
+else
+ ac_cv_header_stdint="stddef.h"
+fi
+
+AC_MSG_CHECKING([for extra inttypes in chosen header])
+AC_MSG_RESULT([($ac_cv_header_stdint)])
+dnl see if int_least and int_fast types are present in _this_ header.
+unset ac_cv_type_int_least32_t
+unset ac_cv_type_int_fast32_t
+AC_CHECK_TYPE(int_least32_t,,,[#include <$ac_cv_header_stdint>])
+AC_CHECK_TYPE(int_fast32_t,,,[#include<$ac_cv_header_stdint>])
+AC_CHECK_TYPE(intmax_t,,,[#include <$ac_cv_header_stdint>])
+
+fi # shortcircut to system "stdint.h"
+# ------------------ PREPARE VARIABLES ------------------------------
+if test "$GCC" = "yes" ; then
+ac_cv_stdint_message="using gnu compiler "`$CC --version | head -1`
+else
+ac_cv_stdint_message="using $CC"
+fi
+
+AC_MSG_RESULT([make use of $ac_cv_header_stdint in $ac_stdint_h dnl
+$ac_cv_stdint_result])
+
+dnl -----------------------------------------------------------------
+# ----------------- DONE inttypes.h checks START header -------------
+AC_CONFIG_COMMANDS([$ac_stdint_h],[
+AC_MSG_NOTICE(creating $ac_stdint_h : $_ac_stdint_h)
+ac_stdint=$tmp/_stdint.h
+
+echo "#ifndef" $_ac_stdint_h >$ac_stdint
+echo "#define" $_ac_stdint_h "1" >>$ac_stdint
+echo "#ifndef" _GENERATED_STDINT_H >>$ac_stdint
+echo "#define" _GENERATED_STDINT_H '"'$PACKAGE $VERSION'"' >>$ac_stdint
+echo "/* generated $ac_cv_stdint_message */" >>$ac_stdint
+if test "_$ac_cv_header_stdint_t" != "_" ; then
+echo "#define _STDINT_HAVE_STDINT_H" "1" >>$ac_stdint
+echo "#include <stdint.h>" >>$ac_stdint
+echo "#endif" >>$ac_stdint
+echo "#endif" >>$ac_stdint
+else
+
+cat >>$ac_stdint <<STDINT_EOF
+
+/* ................... shortcircuit part ........................... */
+
+#if defined HAVE_STDINT_H || defined _STDINT_HAVE_STDINT_H
+#include <stdint.h>
+#else
+#include <stddef.h>
+
+/* .................... configured part ............................ */
+
+STDINT_EOF
+
+echo "/* whether we have a C99 compatible stdint header file */" >>$ac_stdint
+if test "_$ac_cv_header_stdint_x" != "_" ; then
+ ac_header="$ac_cv_header_stdint_x"
+ echo "#define _STDINT_HEADER_INTPTR" '"'"$ac_header"'"' >>$ac_stdint
+else
+ echo "/* #undef _STDINT_HEADER_INTPTR */" >>$ac_stdint
+fi
+
+echo "/* whether we have a C96 compatible inttypes header file */" >>$ac_stdint
+if test "_$ac_cv_header_stdint_o" != "_" ; then
+ ac_header="$ac_cv_header_stdint_o"
+ echo "#define _STDINT_HEADER_UINT32" '"'"$ac_header"'"' >>$ac_stdint
+else
+ echo "/* #undef _STDINT_HEADER_UINT32 */" >>$ac_stdint
+fi
+
+echo "/* whether we have a BSD compatible inet types header */" >>$ac_stdint
+if test "_$ac_cv_header_stdint_u" != "_" ; then
+ ac_header="$ac_cv_header_stdint_u"
+ echo "#define _STDINT_HEADER_U_INT32" '"'"$ac_header"'"' >>$ac_stdint
+else
+ echo "/* #undef _STDINT_HEADER_U_INT32 */" >>$ac_stdint
+fi
+
+echo "" >>$ac_stdint
+
+if test "_$ac_header" != "_" ; then if test "$ac_header" != "stddef.h" ; then
+ echo "#include <$ac_header>" >>$ac_stdint
+ echo "" >>$ac_stdint
+fi fi
+
+echo "/* which 64bit typedef has been found */" >>$ac_stdint
+if test "$ac_cv_type_uint64_t" = "yes" ; then
+echo "#define _STDINT_HAVE_UINT64_T" "1" >>$ac_stdint
+else
+echo "/* #undef _STDINT_HAVE_UINT64_T */" >>$ac_stdint
+fi
+if test "$ac_cv_type_u_int64_t" = "yes" ; then
+echo "#define _STDINT_HAVE_U_INT64_T" "1" >>$ac_stdint
+else
+echo "/* #undef _STDINT_HAVE_U_INT64_T */" >>$ac_stdint
+fi
+echo "" >>$ac_stdint
+
+echo "/* which type model has been detected */" >>$ac_stdint
+if test "_$ac_cv_char_data_model" != "_" ; then
+echo "#define _STDINT_CHAR_MODEL" "$ac_cv_char_data_model" >>$ac_stdint
+echo "#define _STDINT_LONG_MODEL" "$ac_cv_long_data_model" >>$ac_stdint
+else
+echo "/* #undef _STDINT_CHAR_MODEL // skipped */" >>$ac_stdint
+echo "/* #undef _STDINT_LONG_MODEL // skipped */" >>$ac_stdint
+fi
+echo "" >>$ac_stdint
+
+echo "/* whether int_least types were detected */" >>$ac_stdint
+if test "$ac_cv_type_int_least32_t" = "yes"; then
+echo "#define _STDINT_HAVE_INT_LEAST32_T" "1" >>$ac_stdint
+else
+echo "/* #undef _STDINT_HAVE_INT_LEAST32_T */" >>$ac_stdint
+fi
+echo "/* whether int_fast types were detected */" >>$ac_stdint
+if test "$ac_cv_type_int_fast32_t" = "yes"; then
+echo "#define _STDINT_HAVE_INT_FAST32_T" "1" >>$ac_stdint
+else
+echo "/* #undef _STDINT_HAVE_INT_FAST32_T */" >>$ac_stdint
+fi
+echo "/* whether intmax_t type was detected */" >>$ac_stdint
+if test "$ac_cv_type_intmax_t" = "yes"; then
+echo "#define _STDINT_HAVE_INTMAX_T" "1" >>$ac_stdint
+else
+echo "/* #undef _STDINT_HAVE_INTMAX_T */" >>$ac_stdint
+fi
+echo "" >>$ac_stdint
+
+ cat >>$ac_stdint <<STDINT_EOF
+/* .................... detections part ............................ */
+
+/* whether we need to define bitspecific types from compiler base types */
+#ifndef _STDINT_HEADER_INTPTR
+#ifndef _STDINT_HEADER_UINT32
+#ifndef _STDINT_HEADER_U_INT32
+#define _STDINT_NEED_INT_MODEL_T
+#else
+#define _STDINT_HAVE_U_INT_TYPES
+#endif
+#endif
+#endif
+
+#ifdef _STDINT_HAVE_U_INT_TYPES
+#undef _STDINT_NEED_INT_MODEL_T
+#endif
+
+#ifdef _STDINT_CHAR_MODEL
+#if _STDINT_CHAR_MODEL+0 == 122 || _STDINT_CHAR_MODEL+0 == 124
+#ifndef _STDINT_BYTE_MODEL
+#define _STDINT_BYTE_MODEL 12
+#endif
+#endif
+#endif
+
+#ifndef _STDINT_HAVE_INT_LEAST32_T
+#define _STDINT_NEED_INT_LEAST_T
+#endif
+
+#ifndef _STDINT_HAVE_INT_FAST32_T
+#define _STDINT_NEED_INT_FAST_T
+#endif
+
+#ifndef _STDINT_HEADER_INTPTR
+#define _STDINT_NEED_INTPTR_T
+#ifndef _STDINT_HAVE_INTMAX_T
+#define _STDINT_NEED_INTMAX_T
+#endif
+#endif
+
+
+/* .................... definition part ............................ */
+
+/* some system headers have good uint64_t */
+#ifndef _HAVE_UINT64_T
+#if defined _STDINT_HAVE_UINT64_T || defined HAVE_UINT64_T
+#define _HAVE_UINT64_T
+#elif defined _STDINT_HAVE_U_INT64_T || defined HAVE_U_INT64_T
+#define _HAVE_UINT64_T
+typedef u_int64_t uint64_t;
+#endif
+#endif
+
+#ifndef _HAVE_UINT64_T
+/* .. here are some common heuristics using compiler runtime specifics */
+#if defined __STDC_VERSION__ && defined __STDC_VERSION__ >= 199901L
+#define _HAVE_UINT64_T
+#define _HAVE_LONGLONG_UINT64_T
+typedef long long int64_t;
+typedef unsigned long long uint64_t;
+
+#elif !defined __STRICT_ANSI__
+#if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__
+#define _HAVE_UINT64_T
+typedef __int64 int64_t;
+typedef unsigned __int64 uint64_t;
+
+#elif defined __GNUC__ || defined __MWERKS__ || defined __ELF__
+/* note: all ELF-systems seem to have loff-support which needs 64-bit */
+#if !defined _NO_LONGLONG
+#define _HAVE_UINT64_T
+#define _HAVE_LONGLONG_UINT64_T
+typedef long long int64_t;
+typedef unsigned long long uint64_t;
+#endif
+
+#elif defined __alpha || (defined __mips && defined _ABIN32)
+#if !defined _NO_LONGLONG
+typedef long int64_t;
+typedef unsigned long uint64_t;
+#endif
+ /* compiler/cpu type to define int64_t */
+#endif
+#endif
+#endif
+
+#if defined _STDINT_HAVE_U_INT_TYPES
+/* int8_t int16_t int32_t defined by inet code, redeclare the u_intXX types */
+typedef u_int8_t uint8_t;
+typedef u_int16_t uint16_t;
+typedef u_int32_t uint32_t;
+
+/* glibc compatibility */
+#ifndef __int8_t_defined
+#define __int8_t_defined
+#endif
+#endif
+
+#ifdef _STDINT_NEED_INT_MODEL_T
+/* we must guess all the basic types. Apart from byte-adressable system, */
+/* there a few 32-bit-only dsp-systems that we guard with BYTE_MODEL 8-} */
+/* (btw, those nibble-addressable systems are way off, or so we assume) */
+
+dnl /* have a look at "64bit and data size neutrality" at */
+dnl /* http://unix.org/version2/whatsnew/login_64bit.html */
+dnl /* (the shorthand "ILP" types always have a "P" part) */
+
+#if defined _STDINT_BYTE_MODEL
+#if _STDINT_LONG_MODEL+0 == 242
+/* 2:4:2 = IP16 = a normal 16-bit system */
+typedef unsigned char uint8_t;
+typedef unsigned short uint16_t;
+typedef unsigned long uint32_t;
+#ifndef __int8_t_defined
+#define __int8_t_defined
+typedef char int8_t;
+typedef short int16_t;
+typedef long int32_t;
+#endif
+#elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL == 444
+/* 2:4:4 = LP32 = a 32-bit system derived from a 16-bit */
+/* 4:4:4 = ILP32 = a normal 32-bit system */
+typedef unsigned char uint8_t;
+typedef unsigned short uint16_t;
+typedef unsigned int uint32_t;
+#ifndef __int8_t_defined
+#define __int8_t_defined
+typedef char int8_t;
+typedef short int16_t;
+typedef int int32_t;
+#endif
+#elif _STDINT_LONG_MODEL+0 == 484 || _STDINT_LONG_MODEL+0 == 488
+/* 4:8:4 = IP32 = a 32-bit system prepared for 64-bit */
+/* 4:8:8 = LP64 = a normal 64-bit system */
+typedef unsigned char uint8_t;
+typedef unsigned short uint16_t;
+typedef unsigned int uint32_t;
+#ifndef __int8_t_defined
+#define __int8_t_defined
+typedef char int8_t;
+typedef short int16_t;
+typedef int int32_t;
+#endif
+/* this system has a "long" of 64bit */
+#ifndef _HAVE_UINT64_T
+#define _HAVE_UINT64_T
+typedef unsigned long uint64_t;
+typedef long int64_t;
+#endif
+#elif _STDINT_LONG_MODEL+0 == 448
+/* LLP64 a 64-bit system derived from a 32-bit system */
+typedef unsigned char uint8_t;
+typedef unsigned short uint16_t;
+typedef unsigned int uint32_t;
+#ifndef __int8_t_defined
+#define __int8_t_defined
+typedef char int8_t;
+typedef short int16_t;
+typedef int int32_t;
+#endif
+/* assuming the system has a "long long" */
+#ifndef _HAVE_UINT64_T
+#define _HAVE_UINT64_T
+#define _HAVE_LONGLONG_UINT64_T
+typedef unsigned long long uint64_t;
+typedef long long int64_t;
+#endif
+#else
+#define _STDINT_NO_INT32_T
+#endif
+#else
+#define _STDINT_NO_INT8_T
+#define _STDINT_NO_INT32_T
+#endif
+#endif
+
+/*
+ * quote from SunOS-5.8 sys/inttypes.h:
+ * Use at your own risk. As of February 1996, the committee is squarely
+ * behind the fixed sized types; the "least" and "fast" types are still being
+ * discussed. The probability that the "fast" types may be removed before
+ * the standard is finalized is high enough that they are not currently
+ * implemented.
+ */
+
+#if defined _STDINT_NEED_INT_LEAST_T
+typedef int8_t int_least8_t;
+typedef int16_t int_least16_t;
+typedef int32_t int_least32_t;
+#ifdef _HAVE_UINT64_T
+typedef int64_t int_least64_t;
+#endif
+
+typedef uint8_t uint_least8_t;
+typedef uint16_t uint_least16_t;
+typedef uint32_t uint_least32_t;
+#ifdef _HAVE_UINT64_T
+typedef uint64_t uint_least64_t;
+#endif
+ /* least types */
+#endif
+
+#if defined _STDINT_NEED_INT_FAST_T
+typedef int8_t int_fast8_t;
+typedef int int_fast16_t;
+typedef int32_t int_fast32_t;
+#ifdef _HAVE_UINT64_T
+typedef int64_t int_fast64_t;
+#endif
+
+typedef uint8_t uint_fast8_t;
+typedef unsigned uint_fast16_t;
+typedef uint32_t uint_fast32_t;
+#ifdef _HAVE_UINT64_T
+typedef uint64_t uint_fast64_t;
+#endif
+ /* fast types */
+#endif
+
+#ifdef _STDINT_NEED_INTMAX_T
+#ifdef _HAVE_UINT64_T
+typedef int64_t intmax_t;
+typedef uint64_t uintmax_t;
+#else
+typedef long intmax_t;
+typedef unsigned long uintmax_t;
+#endif
+#endif
+
+#ifdef _STDINT_NEED_INTPTR_T
+#ifndef __intptr_t_defined
+#define __intptr_t_defined
+/* we encourage using "long" to store pointer values, never use "int" ! */
+#if _STDINT_LONG_MODEL+0 == 242 || _STDINT_LONG_MODEL+0 == 484
+typedef unsinged int uintptr_t;
+typedef int intptr_t;
+#elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL+0 == 444
+typedef unsigned long uintptr_t;
+typedef long intptr_t;
+#elif _STDINT_LONG_MODEL+0 == 448 && defined _HAVE_UINT64_T
+typedef uint64_t uintptr_t;
+typedef int64_t intptr_t;
+#else /* matches typical system types ILP32 and LP64 - but not IP16 or LLP64 */
+typedef unsigned long uintptr_t;
+typedef long intptr_t;
+#endif
+#endif
+#endif
+
+/* The ISO C99 standard specifies that in C++ implementations these
+ should only be defined if explicitly requested. */
+#if !defined __cplusplus || defined __STDC_CONSTANT_MACROS
+#ifndef UINT32_C
+
+/* Signed. */
+# define INT8_C(c) c
+# define INT16_C(c) c
+# define INT32_C(c) c
+# ifdef _HAVE_LONGLONG_UINT64_T
+# define INT64_C(c) c ## L
+# else
+# define INT64_C(c) c ## LL
+# endif
+
+/* Unsigned. */
+# define UINT8_C(c) c ## U
+# define UINT16_C(c) c ## U
+# define UINT32_C(c) c ## U
+# ifdef _HAVE_LONGLONG_UINT64_T
+# define UINT64_C(c) c ## UL
+# else
+# define UINT64_C(c) c ## ULL
+# endif
+
+/* Maximal type. */
+# ifdef _HAVE_LONGLONG_UINT64_T
+# define INTMAX_C(c) c ## L
+# define UINTMAX_C(c) c ## UL
+# else
+# define INTMAX_C(c) c ## LL
+# define UINTMAX_C(c) c ## ULL
+# endif
+
+ /* literalnumbers */
+#endif
+#endif
+
+/* These limits are merily those of a two complement byte-oriented system */
+
+/* Minimum of signed integral types. */
+# define INT8_MIN (-128)
+# define INT16_MIN (-32767-1)
+# define INT32_MIN (-2147483647-1)
+# define INT64_MIN (-__INT64_C(9223372036854775807)-1)
+/* Maximum of signed integral types. */
+# define INT8_MAX (127)
+# define INT16_MAX (32767)
+# define INT32_MAX (2147483647)
+# define INT64_MAX (__INT64_C(9223372036854775807))
+
+/* Maximum of unsigned integral types. */
+# define UINT8_MAX (255)
+# define UINT16_MAX (65535)
+# define UINT32_MAX (4294967295U)
+# define UINT64_MAX (__UINT64_C(18446744073709551615))
+
+/* Minimum of signed integral types having a minimum size. */
+# define INT_LEAST8_MIN INT8_MIN
+# define INT_LEAST16_MIN INT16_MIN
+# define INT_LEAST32_MIN INT32_MIN
+# define INT_LEAST64_MIN INT64_MIN
+/* Maximum of signed integral types having a minimum size. */
+# define INT_LEAST8_MAX INT8_MAX
+# define INT_LEAST16_MAX INT16_MAX
+# define INT_LEAST32_MAX INT32_MAX
+# define INT_LEAST64_MAX INT64_MAX
+
+/* Maximum of unsigned integral types having a minimum size. */
+# define UINT_LEAST8_MAX UINT8_MAX
+# define UINT_LEAST16_MAX UINT16_MAX
+# define UINT_LEAST32_MAX UINT32_MAX
+# define UINT_LEAST64_MAX UINT64_MAX
+
+ /* shortcircuit*/
+#endif
+ /* once */
+#endif
+#endif
+STDINT_EOF
+fi
+ if cmp -s $ac_stdint_h $ac_stdint 2>/dev/null; then
+ AC_MSG_NOTICE([$ac_stdint_h is unchanged])
+ else
+ ac_dir=`AS_DIRNAME(["$ac_stdint_h"])`
+ AS_MKDIR_P(["$ac_dir"])
+ rm -f $ac_stdint_h
+ mv $ac_stdint $ac_stdint_h
+ fi
+],[# variables for create stdint.h replacement
+PACKAGE="$PACKAGE"
+VERSION="$VERSION"
+ac_stdint_h="$ac_stdint_h"
+_ac_stdint_h=AS_TR_CPP(_$PACKAGE-$ac_stdint_h)
+ac_cv_stdint_message="$ac_cv_stdint_message"
+ac_cv_header_stdint_t="$ac_cv_header_stdint_t"
+ac_cv_header_stdint_x="$ac_cv_header_stdint_x"
+ac_cv_header_stdint_o="$ac_cv_header_stdint_o"
+ac_cv_header_stdint_u="$ac_cv_header_stdint_u"
+ac_cv_type_uint64_t="$ac_cv_type_uint64_t"
+ac_cv_type_u_int64_t="$ac_cv_type_u_int64_t"
+ac_cv_char_data_model="$ac_cv_char_data_model"
+ac_cv_long_data_model="$ac_cv_long_data_model"
+ac_cv_type_int_least32_t="$ac_cv_type_int_least32_t"
+ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t"
+ac_cv_type_intmax_t="$ac_cv_type_intmax_t"
+])
+])
diff --git a/recipes/sane/sane-backends_1.0.19.bb b/recipes/sane/sane-backends_1.0.19.bb
index 935541f25a..caf7f2f075 100644
--- a/recipes/sane/sane-backends_1.0.19.bb
+++ b/recipes/sane/sane-backends_1.0.19.bb
@@ -44,7 +44,7 @@ FILES_sane-utils = "${bindir}/*"
FILES_${PN}-dbg += "${libdir}/sane/.debug"
-CONFFILES_libsane = "${sysconfdir}/sane.d/abaton.conf ${sysconfdir}/sane.d/agfafocus.conf ${sysconfdir}/sane.d/apple.conf ${sysconfdir}/sane.d/artec.conf ${sysconfdir}/sane.d/avision.conf ${sysconfdir}/sane.d/bh.conf ${sysconfdir}/sane.d/canon.conf ${sysconfdir}/sane.d/canon630u.conf ${sysconfdir}/sane.d/coolscan.conf ${sysconfdir}/sane.d/coolscan2.conf ${sysconfdir}/sane.d/dc25.conf ${sysconfdir}/sane.d/dmc.conf ${sysconfdir}/sane.d/epson.conf ${sysconfdir}/sane.d/fujitsu.conf ${sysconfdir}/sane.d/gt68xx.conf ${sysconfdir}/sane.d/hp.conf ${sysconfdir}/sane.d/leo.conf ${sysconfdir}/sane.d/matsushita.conf ${sysconfdir}/sane.d/microtek.conf ${sysconfdir}/sane.d/microtek2.conf ${sysconfdir}/sane.d/mustek.conf ${sysconfdir}/sane.d/mustek_usb.conf ${sysconfdir}/sane.d/nec.conf ${sysconfdir}/sane.d/pie.conf ${sysconfdir}/sane.d/plustek.conf ${sysconfdir}/sane.d/plustek_pp.conf ${sysconfdir}/sane.d/ricoh.conf ${sysconfdir}/sane.d/s9036.conf ${sysconfdir}/sane.d/sceptre.conf ${sysconfdir}/sane.d/sharp.conf ${sysconfdir}/sane.d/sp15c.conf ${sysconfdir}/sane.d/st400.conf ${sysconfdir}/sane.d/tamarack.conf ${sysconfdir}/sane.d/test.conf ${sysconfdir}/sane.d/teco1.conf ${sysconfdir}/sane.d/teco2.conf ${sysconfdir}/sane.d/teco3.conf ${sysconfdir}/sane.d/umax.conf ${sysconfdir}/sane.d/umax_pp.conf ${sysconfdir}/sane.d/umax1220u.conf ${sysconfdir}/sane.d/artec_eplus48u.conf ${sysconfdir}/sane.d/ma1509.conf ${sysconfdir}/sane.d/ibm.conf ${sysconfdir}/sane.d/hp5400.conf ${sysconfdir}/sane.d/u12.conf ${sysconfdir}/sane.d/snapscan.conf ${sysconfdir}/sane.d/dc210.conf ${sysconfdir}/sane.d/dc240.conf ${sysconfdir}/sane.d/gphoto2.conf ${sysconfdir}/sane.d/qcam.conf ${sysconfdir}/sane.d/v4l.conf ${sysconfdir}/sane.d/net.conf ${sysconfdir}/sane.d/dll.conf ${sysconfdir}/sane.d/saned.conf"
+CONFFILES_libsane = "${sysconfdir}/sane.d/abaton.conf ${sysconfdir}/sane.d/agfafocus.conf ${sysconfdir}/sane.d/apple.conf ${sysconfdir}/sane.d/artec.conf ${sysconfdir}/sane.d/avision.conf ${sysconfdir}/sane.d/bh.conf ${sysconfdir}/sane.d/canon.conf ${sysconfdir}/sane.d/canon630u.conf ${sysconfdir}/sane.d/coolscan.conf ${sysconfdir}/sane.d/coolscan2.conf ${sysconfdir}/sane.d/dc25.conf ${sysconfdir}/sane.d/dmc.conf ${sysconfdir}/sane.d/epson.conf ${sysconfdir}/sane.d/fujitsu.conf ${sysconfdir}/sane.d/gt68xx.conf ${sysconfdir}/sane.d/hp.conf ${sysconfdir}/sane.d/leo.conf ${sysconfdir}/sane.d/matsushita.conf ${sysconfdir}/sane.d/microtek.conf ${sysconfdir}/sane.d/microtek2.conf ${sysconfdir}/sane.d/mustek.conf ${sysconfdir}/sane.d/mustek_usb.conf ${sysconfdir}/sane.d/nec.conf ${sysconfdir}/sane.d/pie.conf ${sysconfdir}/sane.d/plustek.conf ${sysconfdir}/sane.d/plustek_pp.conf ${sysconfdir}/sane.d/ricoh.conf ${sysconfdir}/sane.d/s9036.conf ${sysconfdir}/sane.d/sceptre.conf ${sysconfdir}/sane.d/sharp.conf ${sysconfdir}/sane.d/sp15c.conf ${sysconfdir}/sane.d/st400.conf ${sysconfdir}/sane.d/tamarack.conf ${sysconfdir}/sane.d/test.conf ${sysconfdir}/sane.d/teco1.conf ${sysconfdir}/sane.d/teco2.conf ${sysconfdir}/sane.d/teco3.conf ${sysconfdir}/sane.d/umax.conf ${sysconfdir}/sane.d/umax_pp.conf ${sysconfdir}/sane.d/umax1220u.conf ${sysconfdir}/sane.d/artec_eplus48u.conf ${sysconfdir}/sane.d/ma1509.conf ${sysconfdir}/sane.d/ibm.conf ${sysconfdir}/sane.d/hp5400.conf ${sysconfdir}/sane.d/u12.conf ${sysconfdir}/sane.d/snapscan.conf ${sysconfdir}/sane.d/dc210.conf ${sysconfdir}/sane.d/dc240.conf ${sysconfdir}/sane.d/gphoto2.conf ${sysconfdir}/sane.d/v4l.conf ${sysconfdir}/sane.d/net.conf ${sysconfdir}/sane.d/dll.conf ${sysconfdir}/sane.d/saned.conf"
do_stage() {
autotools_stage_all
diff --git a/recipes/sane/sane-backends_1.0.20.bb b/recipes/sane/sane-backends_1.0.20.bb
new file mode 100644
index 0000000000..5035ad471e
--- /dev/null
+++ b/recipes/sane/sane-backends_1.0.20.bb
@@ -0,0 +1,53 @@
+DESCRIPTION = "Scanner drivers for SANE"
+DEPENDS = "hal gphoto2 jpeg virtual/libusb0"
+LICENSE = "LGPL"
+
+SRC_URI = "http://alioth.debian.org/frs/download.php/3026/sane-backends-${PV}.tar.gz \
+ file://Makefile.in.patch;patch=1 \
+ file://saned.xinetd \
+ file://byteorder.m4 \
+ file://stdint.m4 \
+ "
+
+inherit autotools pkgconfig binconfig
+
+EXTRA_OECONF = "--disable-translations"
+
+do_configure_prepend() {
+ mkdir -p ${S}/m4
+ cp ${STAGING_DATADIR}/aclocal/libtool.m4 ${S}/m4/
+ cp ${WORKDIR}/*.m4 ${S}/m4/
+}
+
+PARALLEL_MAKE = ""
+do_compile_prepend() {
+ ln -sf ${S}/${TARGET_PREFIX}libtool ${S}/libtool
+}
+
+do_install_append() {
+ install -d "${D}/${sysconfdir}/xinetd.d"
+ install -m 755 "${S}/tools/.libs/sane-find-scanner" "${D}/${bindir}"
+ install -m 644 "${WORKDIR}/saned.xinetd" "${D}/${sysconfdir}/xinetd.d/saned"
+}
+
+PACKAGES =+ "libsane libsane-dev saned sane-utils"
+
+FILES_libsane = "${libdir}/sane/*.so.* ${libdir}/lib*.so.* /etc"
+RRECOMMENDS_libsane = "saned sane-utils"
+FILES_libsane-dev += "${libdir}/sane/*"
+
+RRECOMMENDS_saned = "xinetd"
+FILES_saned = "${sbindir}/saned"
+
+FILES_sane-utils = "${bindir}/*"
+FILES_${PN}-dbg += "${libdir}/sane/.debug"
+
+
+CONFFILES_libsane = "${sysconfdir}/sane.d/abaton.conf ${sysconfdir}/sane.d/agfafocus.conf ${sysconfdir}/sane.d/apple.conf ${sysconfdir}/sane.d/artec.conf ${sysconfdir}/sane.d/avision.conf ${sysconfdir}/sane.d/bh.conf ${sysconfdir}/sane.d/canon.conf ${sysconfdir}/sane.d/canon630u.conf ${sysconfdir}/sane.d/coolscan.conf ${sysconfdir}/sane.d/coolscan2.conf ${sysconfdir}/sane.d/dc25.conf ${sysconfdir}/sane.d/dmc.conf ${sysconfdir}/sane.d/epson.conf ${sysconfdir}/sane.d/fujitsu.conf ${sysconfdir}/sane.d/gt68xx.conf ${sysconfdir}/sane.d/hp.conf ${sysconfdir}/sane.d/leo.conf ${sysconfdir}/sane.d/matsushita.conf ${sysconfdir}/sane.d/microtek.conf ${sysconfdir}/sane.d/microtek2.conf ${sysconfdir}/sane.d/mustek.conf ${sysconfdir}/sane.d/mustek_usb.conf ${sysconfdir}/sane.d/nec.conf ${sysconfdir}/sane.d/pie.conf ${sysconfdir}/sane.d/plustek.conf ${sysconfdir}/sane.d/plustek_pp.conf ${sysconfdir}/sane.d/ricoh.conf ${sysconfdir}/sane.d/s9036.conf ${sysconfdir}/sane.d/sceptre.conf ${sysconfdir}/sane.d/sharp.conf ${sysconfdir}/sane.d/sp15c.conf ${sysconfdir}/sane.d/st400.conf ${sysconfdir}/sane.d/tamarack.conf ${sysconfdir}/sane.d/test.conf ${sysconfdir}/sane.d/teco1.conf ${sysconfdir}/sane.d/teco2.conf ${sysconfdir}/sane.d/teco3.conf ${sysconfdir}/sane.d/umax.conf ${sysconfdir}/sane.d/umax_pp.conf ${sysconfdir}/sane.d/umax1220u.conf ${sysconfdir}/sane.d/artec_eplus48u.conf ${sysconfdir}/sane.d/ma1509.conf ${sysconfdir}/sane.d/ibm.conf ${sysconfdir}/sane.d/hp5400.conf ${sysconfdir}/sane.d/u12.conf ${sysconfdir}/sane.d/snapscan.conf ${sysconfdir}/sane.d/dc210.conf ${sysconfdir}/sane.d/dc240.conf ${sysconfdir}/sane.d/gphoto2.conf ${sysconfdir}/sane.d/net.conf ${sysconfdir}/sane.d/dll.conf ${sysconfdir}/sane.d/saned.conf"
+
+do_stage() {
+ autotools_stage_all
+}
+
+
+
diff --git a/recipes/scummvm/files/shr/openmoko-scummvm b/recipes/scummvm/files/shr/openmoko-scummvm
new file mode 100644
index 0000000000..58eb2bbded
--- /dev/null
+++ b/recipes/scummvm/files/shr/openmoko-scummvm
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+# Save current AUX Key mapping
+SAVE_KEY="$(xmodmap -pke | grep 'keycode 177')"
+
+# Map AUX Key to F5
+xmodmap -e "keycode 177 = F5"
+
+# Turn LCD feft
+xrandr -o left
+
+# Start the scummvm in fullscreen mode
+scummvm --fullscreen --themepath=/usr/share/scummvm/
+
+# Turn LCD normal
+xrandr -o normal
+
+# Restore the AUX Key mapping
+xmodmap -e "$SAVE_KEY"
diff --git a/recipes/scummvm/files/shr/scummvm.desktop b/recipes/scummvm/files/shr/scummvm.desktop
new file mode 100644
index 0000000000..96c025050e
--- /dev/null
+++ b/recipes/scummvm/files/shr/scummvm.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=ScummVM
+Name[pl]=ScummVM
+Comment=Interpreter for several adventure games
+Comment[pl]=Interpreter graficznych gier przygodowych
+Exec=openmoko-scummvm
+Icon=scummvm.xpm
+Terminal=false
+Type=Application
+Categories=Application;Game;AdventureGame;
+StartupNotify=false
diff --git a/recipes/scummvm/scummvm-1.0.0/no-strip.patch b/recipes/scummvm/scummvm-1.0.0/no-strip.patch
new file mode 100644
index 0000000000..c69402e469
--- /dev/null
+++ b/recipes/scummvm/scummvm-1.0.0/no-strip.patch
@@ -0,0 +1,20 @@
+--- scummvm-1.0.0/ports.mk~ 2009-11-27 12:51:50.000000000 +0100
++++ scummvm-1.0.0/ports.mk 2009-11-27 12:51:50.000000000 +0100
+@@ -10,7 +10,7 @@
+ #
+ install: all
+ $(INSTALL) -d "$(DESTDIR)$(BINDIR)"
+- $(INSTALL) -c -s -m 755 "./$(EXECUTABLE)" "$(DESTDIR)$(BINDIR)/$(EXECUTABLE)"
++ $(INSTALL) -c -m 755 "./$(EXECUTABLE)" "$(DESTDIR)$(BINDIR)/$(EXECUTABLE)"
+ $(INSTALL) -d "$(DESTDIR)$(MANDIR)/man6/"
+ $(INSTALL) -c -m 644 "$(srcdir)/dists/scummvm.6" "$(DESTDIR)$(MANDIR)/man6/scummvm.6"
+ $(INSTALL) -d "$(DESTDIR)$(PREFIX)/share/pixmaps/"
+@@ -21,7 +21,7 @@
+ $(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(DIST_FILES_ENGINEDATA) "$(DESTDIR)$(DATADIR)/scummvm/"
+ ifdef DYNAMIC_MODULES
+ $(INSTALL) -d "$(DESTDIR)$(LIBDIR)/scummvm/"
+- $(INSTALL) -c -s -m 644 $(DIST_FILES_PLUGINS) "$(DESTDIR)$(LIBDIR)/scummvm/"
++ $(INSTALL) -c -m 644 $(DIST_FILES_PLUGINS) "$(DESTDIR)$(LIBDIR)/scummvm/"
+ endif
+
+ uninstall:
diff --git a/recipes/scummvm/scummvm_0.12.0.bb b/recipes/scummvm/scummvm_0.12.0.bb
index 630db67f21..9d76426ab1 100644
--- a/recipes/scummvm/scummvm_0.12.0.bb
+++ b/recipes/scummvm/scummvm_0.12.0.bb
@@ -9,6 +9,7 @@ SRC_URI += " file://scummvm.desktop \
file://no-strip.patch;patch=1"
SRC_URI_append_openmoko = " file://openmoko-scummvm "
+SRC_URI_append_shr = " file://openmoko-scummvm "
SRC_URI_OVERRIDES_PACKAGE_ARCH = "1"
diff --git a/recipes/scummvm/scummvm_1.0.0.bb b/recipes/scummvm/scummvm_1.0.0.bb
new file mode 100644
index 0000000000..28465f409e
--- /dev/null
+++ b/recipes/scummvm/scummvm_1.0.0.bb
@@ -0,0 +1,39 @@
+require scummvm.inc
+
+CCACHE = ""
+
+DEPENDS = "virtual/libsdl libvorbis libogg zlib \
+ ${@base_conditional('ENTERPRISE_DISTRO', '1', '', 'libmad mpeg2dec', d)}"
+
+SRC_URI += " file://scummvm.desktop \
+ file://no-strip.patch;patch=1 \
+ "
+
+SRC_URI_append_openmoko = " file://openmoko-scummvm "
+SRC_URI_append_shr = " file://openmoko-scummvm "
+
+SRC_URI_OVERRIDES_PACKAGE_ARCH = "1"
+
+EXTRA_OECONF += " \
+ --disable-scumm-7-8 \
+ --disable-he \
+ "
+
+# Workaround, because some env variables aren't recognised correctly
+do_configure_append() {
+ sed -i "s/AS := as/AS := ${AS}/" ${S}/config.mk
+ sed -i "s/AR := ar cru/AR := ${AR} cru/" ${S}/config.mk
+ sed -i "s/STRIP := strip/STRIP := ${STRIP}/" ${S}/config.mk
+ sed -i "s/RANLIB := ranlib/RANLIB := ${RANLIB}/" ${S}/config.mk
+}
+
+do_install_append() {
+ if [ -f ${WORKDIR}/openmoko-scummvm ]; then
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/openmoko-scummvm ${D}${bindir}/openmoko-scummvm
+ fi
+ if [ -f ${WORKDIR}/scummvm.desktop ]; then
+ install -d ${D}${datadir}/applications
+ install -m 0644 ${WORKDIR}/scummvm.desktop ${D}${datadir}/applications
+ fi
+}
diff --git a/recipes/settings-daemon/settings-daemon_svn.bb b/recipes/settings-daemon/settings-daemon_svn.bb
index 27931dcd32..de920532df 100644
--- a/recipes/settings-daemon/settings-daemon_svn.bb
+++ b/recipes/settings-daemon/settings-daemon_svn.bb
@@ -3,7 +3,7 @@ LICENSE = "GPL"
DEPENDS = "gconf glib-2.0 gtk+"
RDEPENDS = "xrdb"
SECTION = "x11"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR = "r2"
diff --git a/recipes/shadow/files/login_defs_pam.sed b/recipes/shadow/files/login_defs_pam.sed
new file mode 100644
index 0000000000..655f115870
--- /dev/null
+++ b/recipes/shadow/files/login_defs_pam.sed
@@ -0,0 +1,25 @@
+/^FAILLOG_ENAB/b comment
+/^LASTLOG_ENAB/b comment
+/^MAIL_CHECK_ENAB/b comment
+/^OBSCURE_CHECKS_ENAB/b comment
+/^PORTTIME_CHECKS_ENAB/b comment
+/^QUOTAS_ENAB/b comment
+/^MOTD_FILE/b comment
+/^FTMP_FILE/b comment
+/^NOLOGINS_FILE/b comment
+/^ENV_HZ/b comment
+/^PASS_MIN_LEN/b comment
+/^SU_WHEEL_ONLY/b comment
+/^CRACKLIB_DICTPATH/b comment
+/^PASS_CHANGE_TRIES/b comment
+/^PASS_ALWAYS_WARN/b comment
+/^CHFN_AUTH/b comment
+/^ENVIRON_FILE/b comment
+
+b exit
+
+: comment
+ s:^:#:
+
+: exit
+
diff --git a/recipes/shadow/files/pam.d/chfn b/recipes/shadow/files/pam.d/chfn
new file mode 100644
index 0000000000..baf7698bba
--- /dev/null
+++ b/recipes/shadow/files/pam.d/chfn
@@ -0,0 +1,14 @@
+#
+# The PAM configuration file for the Shadow `chfn' service
+#
+
+# This allows root to change user infomation without being
+# prompted for a password
+auth sufficient pam_rootok.so
+
+# The standard Unix authentication modules, used with
+# NIS (man nsswitch) as well as normal /etc/passwd and
+# /etc/shadow entries.
+auth include common-auth
+account include common-account
+session include common-session
diff --git a/recipes/shadow/files/pam.d/chpasswd b/recipes/shadow/files/pam.d/chpasswd
new file mode 100644
index 0000000000..9e3efa68ba
--- /dev/null
+++ b/recipes/shadow/files/pam.d/chpasswd
@@ -0,0 +1,4 @@
+# The PAM configuration file for the Shadow 'chpasswd' service
+#
+
+password include common-password
diff --git a/recipes/shadow/files/pam.d/chsh b/recipes/shadow/files/pam.d/chsh
new file mode 100644
index 0000000000..8fb169f64e
--- /dev/null
+++ b/recipes/shadow/files/pam.d/chsh
@@ -0,0 +1,19 @@
+#
+# The PAM configuration file for the Shadow `chsh' service
+#
+
+# This will not allow a user to change their shell unless
+# their current one is listed in /etc/shells. This keeps
+# accounts with special shells from changing them.
+auth required pam_shells.so
+
+# This allows root to change user shell without being
+# prompted for a password
+auth sufficient pam_rootok.so
+
+# The standard Unix authentication modules, used with
+# NIS (man nsswitch) as well as normal /etc/passwd and
+# /etc/shadow entries.
+auth include common-auth
+account include common-account
+session include common-session
diff --git a/recipes/shadow/files/pam.d/login b/recipes/shadow/files/pam.d/login
new file mode 100644
index 0000000000..2186d3eee9
--- /dev/null
+++ b/recipes/shadow/files/pam.d/login
@@ -0,0 +1,91 @@
+#
+# The PAM configuration file for the Shadow `login' service
+#
+
+# Enforce a minimal delay in case of failure (in microseconds).
+# (Replaces the `FAIL_DELAY' setting from login.defs)
+# Note that other modules may require another minimal delay. (for example,
+# to disable any delay, you should add the nodelay option to pam_unix)
+auth optional pam_faildelay.so delay=3000000
+
+# Outputs an issue file prior to each login prompt (Replaces the
+# ISSUE_FILE option from login.defs). Uncomment for use
+# auth required pam_issue.so issue=/etc/issue
+
+# Disallows root logins except on tty's listed in /etc/securetty
+# (Replaces the `CONSOLE' setting from login.defs)
+# Note that it is included as a "requisite" module. No password prompts will
+# be displayed if this module fails to avoid having the root password
+# transmitted on unsecure ttys.
+# You can change it to a "required" module if you think it permits to
+# guess valid user names of your system (invalid user names are considered
+# as possibly being root).
+auth requisite pam_securetty.so
+
+# Disallows other than root logins when /etc/nologin exists
+# (Replaces the `NOLOGINS_FILE' option from login.defs)
+auth requisite pam_nologin.so
+
+# SELinux needs to be the first session rule. This ensures that any
+# lingering context has been cleared. Without out this it is possible
+# that a module could execute code in the wrong domain.
+# When the module is present, "required" would be sufficient (When SELinux
+# is disabled, this returns success.)
+session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
+
+# This module parses environment configuration file(s)
+# and also allows you to use an extended config
+# file /etc/security/pam_env.conf.
+#
+# parsing /etc/environment needs "readenv=1"
+session required pam_env.so readenv=1
+# locale variables are also kept into /etc/default/locale in etch
+# reading this file *in addition to /etc/environment* does not hurt
+session required pam_env.so readenv=1 envfile=/etc/default/locale
+
+# Standard Un*x authentication.
+@include common-auth
+
+# This allows certain extra groups to be granted to a user
+# based on things like time of day, tty, service, and user.
+# Please edit /etc/security/group.conf to fit your needs
+# (Replaces the `CONSOLE_GROUPS' option in login.defs)
+auth optional pam_group.so
+
+# Uncomment and edit /etc/security/time.conf if you need to set
+# time restrainst on logins.
+# (Replaces the `PORTTIME_CHECKS_ENAB' option from login.defs
+# as well as /etc/porttime)
+# account requisite pam_time.so
+
+# Uncomment and edit /etc/security/access.conf if you need to
+# set access limits.
+# (Replaces /etc/login.access file)
+# account required pam_access.so
+
+# Sets up user limits according to /etc/security/limits.conf
+# (Replaces the use of /etc/limits in old login)
+session required pam_limits.so
+
+# Prints the last login info upon succesful login
+# (Replaces the `LASTLOG_ENAB' option from login.defs)
+session optional pam_lastlog.so
+
+# Prints the motd upon succesful login
+# (Replaces the `MOTD_FILE' option in login.defs)
+session optional pam_motd.so
+
+# Prints the status of the user's mailbox upon succesful login
+# (Replaces the `MAIL_CHECK_ENAB' option from login.defs).
+#
+# This also defines the MAIL environment variable
+# However, userdel also needs MAIL_DIR and MAIL_FILE variables
+# in /etc/login.defs to make sure that removing a user
+# also removes the user's mail spool file.
+# See comments in /etc/login.defs
+session optional pam_mail.so standard
+
+# Standard Un*x account and session
+account include common-account
+password include common-password
+session include common-session
diff --git a/recipes/shadow/files/pam.d/newusers b/recipes/shadow/files/pam.d/newusers
new file mode 100644
index 0000000000..4aa3dde48b
--- /dev/null
+++ b/recipes/shadow/files/pam.d/newusers
@@ -0,0 +1,4 @@
+# The PAM configuration file for the Shadow 'newusers' service
+#
+
+password include common-password
diff --git a/recipes/shadow/files/pam.d/passwd b/recipes/shadow/files/pam.d/passwd
new file mode 100644
index 0000000000..f534992435
--- /dev/null
+++ b/recipes/shadow/files/pam.d/passwd
@@ -0,0 +1,5 @@
+#
+# The PAM configuration file for the Shadow `passwd' service
+#
+
+password include common-password
diff --git a/recipes/shadow/files/pam.d/su b/recipes/shadow/files/pam.d/su
new file mode 100644
index 0000000000..8e35137f37
--- /dev/null
+++ b/recipes/shadow/files/pam.d/su
@@ -0,0 +1,60 @@
+#
+# The PAM configuration file for the Shadow `su' service
+#
+
+# This allows root to su without passwords (normal operation)
+auth sufficient pam_rootok.so
+
+# Uncomment this to force users to be a member of group root
+# before they can use `su'. You can also add "group=foo"
+# to the end of this line if you want to use a group other
+# than the default "root" (but this may have side effect of
+# denying "root" user, unless she's a member of "foo" or explicitly
+# permitted earlier by e.g. "sufficient pam_rootok.so").
+# (Replaces the `SU_WHEEL_ONLY' option from login.defs)
+# auth required pam_wheel.so
+
+# Uncomment this if you want wheel members to be able to
+# su without a password.
+# auth sufficient pam_wheel.so trust
+
+# Uncomment this if you want members of a specific group to not
+# be allowed to use su at all.
+# auth required pam_wheel.so deny group=nosu
+
+# Uncomment and edit /etc/security/time.conf if you need to set
+# time restrainst on su usage.
+# (Replaces the `PORTTIME_CHECKS_ENAB' option from login.defs
+# as well as /etc/porttime)
+# account requisite pam_time.so
+
+# This module parses environment configuration file(s)
+# and also allows you to use an extended config
+# file /etc/security/pam_env.conf.
+#
+# parsing /etc/environment needs "readenv=1"
+session required pam_env.so readenv=1
+# locale variables are also kept into /etc/default/locale in etch
+# reading this file *in addition to /etc/environment* does not hurt
+session required pam_env.so readenv=1 envfile=/etc/default/locale
+
+# Defines the MAIL environment variable
+# However, userdel also needs MAIL_DIR and MAIL_FILE variables
+# in /etc/login.defs to make sure that removing a user
+# also removes the user's mail spool file.
+# See comments in /etc/login.defs
+#
+# "nopen" stands to avoid reporting new mail when su'ing to another user
+session optional pam_mail.so nopen
+
+# Sets up user limits, please uncomment and read /etc/security/limits.conf
+# to enable this functionality.
+# (Replaces the use of /etc/limits in old login)
+# session required pam_limits.so
+
+# The standard Unix authentication modules, used with
+# NIS (man nsswitch) as well as normal /etc/passwd and
+# /etc/shadow entries.
+auth include common-auth
+account include common-account
+session include common-session
diff --git a/recipes/shadow/shadow_4.1.4.2.bb b/recipes/shadow/shadow_4.1.4.2.bb
new file mode 100644
index 0000000000..04887a01d1
--- /dev/null
+++ b/recipes/shadow/shadow_4.1.4.2.bb
@@ -0,0 +1,52 @@
+DESCRIPTION = "login/password and account utilities"
+LICENSE = "GPL"
+
+DEPEND = "libpam"
+RDEPEND = "${DEPEND}"
+
+PR = "r5"
+
+EXTRA_OECONF += " --enable-shared --enable-static --with-libpam --without-libcrack"
+
+inherit autotools
+
+HOMEPAGE = "http://pkg-shadow.alioth.debian.org/"
+SRC_URI = "ftp://pkg-shadow.alioth.debian.org/pub/pkg-shadow/shadow-${PV}.tar.bz2 \
+ file://login_defs_pam.sed \
+"
+
+# Additional Policy files for PAM
+SRC_URI_append = " \
+ file://pam.d/chfn \
+ file://pam.d/chpasswd \
+ file://pam.d/chsh \
+ file://pam.d/login \
+ file://pam.d/newusers \
+ file://pam.d/passwd \
+ file://pam.d/su \
+"
+
+S = "${WORKDIR}/shadow-${PV}"
+
+CFLAGS_append = " -I../include"
+
+do_install_append() {
+ # Ensure that the image has as /var/spool/mail dir so shadow can put mailboxes there if the user
+ # reconfigures Shadow to default (see sed below).
+ install -d ${D}${localstatedir}/spool/mail/
+
+ install -d ${D}${sysconfdir}/pam.d/
+ install -m 0644 ${WORKDIR}/pam.d/* ${D}${sysconfdir}/pam.d/
+
+ # Remove defaults that are not used when supporting PAM
+ sed -i -f ${WORKDIR}/login_defs_pam.sed ${D}${sysconfdir}/login.defs
+
+ # Enable CREATE_HOME by default.
+ sed -i 's/#CREATE_HOME/CREATE_HOME/g' ${D}${sysconfdir}/login.defs
+
+ # As we are on an embedded system ensure the users mailbox is in ~/ not
+ # /var/spool/mail by default as who knows where or how big /var is.
+ # The system MDA will set this later anyway.
+ sed -i 's/MAIL_DIR/#MAIL_DIR/g' ${D}${sysconfdir}/login.defs
+ sed -i 's/#MAIL_FILE/MAIL_FILE/g' ${D}${sysconfdir}/login.defs
+}
diff --git a/recipes/shr/alsa-scenarii-shr_git.bb b/recipes/shr/alsa-scenarii-shr_git.bb
index 97b4393459..dff37cc083 100644
--- a/recipes/shr/alsa-scenarii-shr_git.bb
+++ b/recipes/shr/alsa-scenarii-shr_git.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Package for the different scenarios used by Openmoko"
SECTION = "openmoko/base"
PV = "1.0+gitr${SRCREV}"
-PR = "r1"
+PR = "r2"
COMPATIBLE_MACHINE = "(om-gta01|om-gta02|om-3d7k)"
@@ -21,5 +21,5 @@ PACKAGE_ARCH_${PN} = "${MACHINE_ARCH}"
FILES_${PN} += "${datadir}/shr"
CONFFILES_${PN} += "${datadir}/shr/scenarii/*"
-RPROVIDES_${PN} = "openmoko-alsa-scenarios"
+RPROVIDES_${PN} = "openmoko-alsa-scenarios virtual/alsa-scenarios"
diff --git a/recipes/shr/e-wm-config-illume-shr_git.bb b/recipes/shr/e-wm-config-illume-shr_git.bb
index 64bd23fe90..28474d4915 100644
--- a/recipes/shr/e-wm-config-illume-shr_git.bb
+++ b/recipes/shr/e-wm-config-illume-shr_git.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "illume SHR config"
SECTION = "e/utils"
DEPENDS = "eet"
LICENSE = "MIT BSD"
-PV = "1.1-${EFL_SRCREV}-gitr${SRCREV}"
+PV = "1.1-${EFL_SRCREV}+gitr${SRCREV}"
PR = "r6"
inherit e
diff --git a/recipes/shr/e-wm-menu-shr_git.bb b/recipes/shr/e-wm-menu-shr_git.bb
index 94529e335a..0c8d75ae3a 100644
--- a/recipes/shr/e-wm-menu-shr_git.bb
+++ b/recipes/shr/e-wm-menu-shr_git.bb
@@ -1,9 +1,9 @@
DESCRIPTION = "illume SHR applications.menu config"
SECTION = "e/utils"
LICENSE = "MIT BSD"
-PV = "1.1-${EFL_SRCREV}-gitr${SRCREV}"
+PV = "1.1-${EFL_SRCREV}+gitr${SRCREV}"
+PR = "r1"
-RPROVIDES_${PN} = "e-wm-menu"
RCONFLICTS_${PN} = "e-wm-menu"
SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master"
diff --git a/recipes/shr/e-wm-sysactions-shr_git.bb b/recipes/shr/e-wm-sysactions-shr_git.bb
index 293edaeba3..6c46ed8558 100644
--- a/recipes/shr/e-wm-sysactions-shr_git.bb
+++ b/recipes/shr/e-wm-sysactions-shr_git.bb
@@ -1,8 +1,8 @@
DESCRIPTION = "illume SHR sysactions config"
SECTION = "e/utils"
LICENSE = "MIT BSD"
-PV = "1.1-${EFL_SRCREV}-gitr${SRCREV}"
-PR = "r3"
+PV = "1.1-${EFL_SRCREV}+gitr${SRCREV}"
+PR = "r4"
RPROVIDES_${PN} = "e-wm-sysactions"
RCONFLICTS_${PN} = "e-wm-sysactions"
@@ -18,4 +18,5 @@ do_install() {
install -d ${D}${sysconfdir}/enlightenment/
install -m 0755 ${S}/sysactions.conf ${D}${sysconfdir}/enlightenment/sysactions.conf
install -m 0755 ${S}/suspend.sh ${D}${sysconfdir}/enlightenment/suspend.sh
+ install -m 0755 ${S}/lock.sh ${D}${sysconfdir}/enlightenment/lock.sh
}
diff --git a/recipes/shr/e-wm-theme-illume-gry_git.bb b/recipes/shr/e-wm-theme-illume-gry_git.bb
new file mode 100644
index 0000000000..35da5231f0
--- /dev/null
+++ b/recipes/shr/e-wm-theme-illume-gry_git.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "gry* illume theme - a fast, shiny illume theme"
+SECTION = "e/utils"
+HOMEPAGE = "http://jmccloud.jm.funpic.de"
+AUTHOR = "Jesus McCloud <bernd.pruenster@gmail.com"
+DEPENDS = "edje-native"
+RRECOMMENDS = "elementary-theme-gry"
+LICENCE = "unknown"
+
+PV = "0.3-${EFL_SRCREV}+gitr${SRCREV}"
+PR = "r1"
+
+SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master"
+
+S = "${WORKDIR}/git/e-wm/${PN}"
+
+do_compile() {
+ ${STAGING_BINDIR_NATIVE}/edje_cc -id ${S}/. -fd ${S}/. ${S}/gry.edc -o ${S}/gry.edj
+}
+
+do_install() {
+ install -d ${D}${datadir}/enlightenment/data/themes/
+ install -m 0644 ${S}/gry.edj ${D}${datadir}/enlightenment/data/themes/
+}
+
+FILES_${PN} = "${datadir}/enlightenment/data/themes/"
diff --git a/recipes/shr/e-wm-theme-illume-neo_git.bb b/recipes/shr/e-wm-theme-illume-neo_git.bb
new file mode 100644
index 0000000000..ed6adf71c0
--- /dev/null
+++ b/recipes/shr/e-wm-theme-illume-neo_git.bb
@@ -0,0 +1,32 @@
+DESCRIPTION = "nEo illume theme - a very fast, high contrast illume theme"
+SECTION = "e/utils"
+HOMEPAGE = "http://jmccloud.jm.funpic.de"
+AUTHOR = "Jesus McCloud <bernd.pruenster@gmail.com"
+DEPENDS = "edje-native"
+RDEPENDS = "e-wm"
+RRECOMMENDS = "elementary-theme-neo gtk-theme-neo libframeworkd-phonegui-efl-theme-neo etk-theme-neo gpe-theme-neo icon-theme-neo"
+LICENCE = "unknown"
+
+PV = "0.1-${EFL_SRCREV}+gitr${SRCREV}"
+PR = "r1"
+
+SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master"
+
+S = "${WORKDIR}/git/e-wm/${PN}"
+
+do_compile() {
+ ${STAGING_BINDIR_NATIVE}/edje_cc -id ${S}/. -fd ${S}/. ${S}/neo.edc -o ${S}/neo.edj
+}
+
+do_install() {
+ install -d ${D}${datadir}/enlightenment/data/themes/
+ install -m 0644 ${S}/neo.edj ${D}${datadir}/enlightenment/data/themes/
+}
+
+FILES_${PN} = "${datadir}/enlightenment/data/themes/"
+
+pkg_postinst() {
+ echo "To activate this theme make sure to set your enlightenment rendering engine to SOFTWARE or enlightenment will segfault."
+ echo "This theme also ships with an enlightenment bootscreen which can be activated by selecting it under STARTUP in the LOOK tab of enlightenment settings"
+ echo "After activating this theme be sure to switch to SOFTWARE_16 engine in enlightenment advanced settings to unleash the theme's full power ;-)"
+}
diff --git a/recipes/shr/e-wm-theme-illume-niebiee_git.bb b/recipes/shr/e-wm-theme-illume-niebiee_git.bb
index bd3412d0ff..9dfee0b293 100644
--- a/recipes/shr/e-wm-theme-illume-niebiee_git.bb
+++ b/recipes/shr/e-wm-theme-illume-niebiee_git.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Extremely blue Illume theme - Niebiee"
SECTION = "e/utils"
DEPENDS = "edje-native"
LICENSE = "MIT BSD"
-PV = "0.1-${EFL_SRCREV}-gitr${SRCREV}"
+PV = "0.1-${EFL_SRCREV}+gitr${SRCREV}"
PR = "r0"
SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master"
diff --git a/recipes/shr/e-wm-theme-illume-shr_git.bb b/recipes/shr/e-wm-theme-illume-shr_git.bb
index 0c59feb876..2c63be670b 100644
--- a/recipes/shr/e-wm-theme-illume-shr_git.bb
+++ b/recipes/shr/e-wm-theme-illume-shr_git.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "illume SHR theme"
SECTION = "e/utils"
DEPENDS = "edje-native"
LICENSE = "MIT BSD"
-PV = "1.1-${EFL_SRCREV}-gitr${SRCREV}"
+PV = "1.1-${EFL_SRCREV}+gitr${SRCREV}"
PR = "r6"
SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master"
diff --git a/recipes/shr/e-wm-theme-illume-sixteen_git.bb b/recipes/shr/e-wm-theme-illume-sixteen_git.bb
index 5c3d65825e..da8895d97f 100644
--- a/recipes/shr/e-wm-theme-illume-sixteen_git.bb
+++ b/recipes/shr/e-wm-theme-illume-sixteen_git.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "illume SHR theme"
SECTION = "e/utils"
DEPENDS = "edje-native"
LICENSE = "MIT BSD"
-PV = "0.1-${EFL_SRCREV}-gitr${SRCREV}"
+PV = "0.1-${EFL_SRCREV}+gitr${SRCREV}"
PR = "r0"
SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master"
diff --git a/recipes/shr/elementary-theme-gry_git.bb b/recipes/shr/elementary-theme-gry_git.bb
new file mode 100644
index 0000000000..655f377cab
--- /dev/null
+++ b/recipes/shr/elementary-theme-gry_git.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "gry* elementary theme - a fast, shiny elementary theme"
+SECTION = "e/utils"
+HOMEPAGE = "http://jmccloud.jm.funpic.de"
+AUTHOR = "Jesus McCloud <bernd.pruenster@gmail.com"
+DEPENDS = "edje-native"
+RRECOMMENDS = "e-wm-theme-illume-gry"
+LICENSE = "unknown"
+
+PV = "0.8-${EFL_SRCREV}+gitr${SRCREV}"
+PR = "r1"
+
+SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master \
+ "
+
+S = "${WORKDIR}/git/elementary/${PN}"
+
+do_compile() {
+ ${STAGING_BINDIR_NATIVE}/edje_cc -id ${S}/. -fd ${S}/. ${S}/gry.edc -o ${S}/gry.edj
+}
+
+do_install() {
+ install -d ${D}${datadir}/elementary/themes/
+ install -m 0644 ${S}/gry.edj ${D}${datadir}/elementary/themes/
+}
+
+FILES_${PN} = "${datadir}/elementary/themes/"
diff --git a/recipes/shr/elementary-theme-neo_git.bb b/recipes/shr/elementary-theme-neo_git.bb
new file mode 100644
index 0000000000..2c1f2f7831
--- /dev/null
+++ b/recipes/shr/elementary-theme-neo_git.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "nEo elementary theme - a very fast, high contrast etk theme"
+SECTION = "e/utils"
+HOMEPAGE = "http://jmccloud.jm.funpic.de"
+AUTHOR = "Jesus McCloud <bernd.pruenster@gmail.com"
+DEPENDS = "edje-native"
+RRECOMMENDS = "e-wm-theme-illume-neo gtk-theme-neo libframeworkd-phonegui-efl-theme-neo etk-theme-neo gpe-theme-neo icon-theme-neo"
+LICENSE = "unknown"
+
+PV = "0.2.1-${EFL_SRCREV}+gitr${SRCREV}"
+PR = "r3"
+
+SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master \
+ "
+
+S = "${WORKDIR}/git/elementary/${PN}"
+
+do_compile() {
+ ${STAGING_BINDIR_NATIVE}/edje_cc -id ${S}/. -fd ${S}/. ${S}/neo.edc -o ${S}/neo.edj
+}
+
+do_install() {
+ install -d ${D}${datadir}/elementary/themes/
+ install -m 0644 ${S}/neo.edj ${D}${datadir}/elementary/themes/
+}
+
+FILES_${PN} = "${datadir}/elementary/themes/"
diff --git a/recipes/shr/elementary-theme-niebiee_git.bb b/recipes/shr/elementary-theme-niebiee_git.bb
index f58257d48c..0c99635fc2 100644
--- a/recipes/shr/elementary-theme-niebiee_git.bb
+++ b/recipes/shr/elementary-theme-niebiee_git.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Extremely blue elementary theme - Niebiee"
SECTION = "e/utils"
DEPENDS = "edje-native"
LICENSE = "MIT BSD"
-PV = "0.1-${EFL_SRCREV}-gitr${SRCREV}"
+PV = "0.1-${EFL_SRCREV}+gitr${SRCREV}"
PR = "r0"
SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master"
diff --git a/recipes/shr/elementary-theme-sixteen_git.bb b/recipes/shr/elementary-theme-sixteen_git.bb
index 48cbc615fa..d1045e6498 100644
--- a/recipes/shr/elementary-theme-sixteen_git.bb
+++ b/recipes/shr/elementary-theme-sixteen_git.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "elementary SHR theme"
SECTION = "e/utils"
DEPENDS = "edje-native"
LICENSE = "MIT BSD"
-PV = "0.1-${EFL_SRCREV}-gitr${SRCREV}"
+PV = "0.1-${EFL_SRCREV}+gitr${SRCREV}"
PR = "r2"
SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master"
diff --git a/recipes/shr/etk-theme-neo_git.bb b/recipes/shr/etk-theme-neo_git.bb
new file mode 100644
index 0000000000..2279af0e04
--- /dev/null
+++ b/recipes/shr/etk-theme-neo_git.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "nEo etk theme - a very fast, high contrast etk theme"
+HOMEPAGE = "http://jmccloud.jm.funpic.de"
+AUTHOR = "Jesus McCloud <bernd.pruenster@gmail.com"
+RRECOMMENDS = "elementary-theme-neo e-wm-theme-illume-neo gtk-theme-neo libframeworkd-phonegui-efl-theme-neo gpe-theme-neo icon-theme-neo"
+LICENSE = "unknown"
+
+PV = "0.2-${EFL_SRCREV}+gitr${SRCREV}"
+PR = "r2"
+
+SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master"
+
+require etk-theme.inc
diff --git a/recipes/shr/etk-theme-shr_git.bb b/recipes/shr/etk-theme-shr_git.bb
index d146765c94..e05fa56ee4 100644
--- a/recipes/shr/etk-theme-shr_git.bb
+++ b/recipes/shr/etk-theme-shr_git.bb
@@ -1,22 +1,8 @@
DESCRIPTION = "etk SHR theme"
-SECTION = "e/utils"
-DEPENDS = "edje-native"
LICENSE = "MIT BSD"
-PV = "1.1-${EFL_SRCREV}-gitr${SRCREV}"
+PV = "1.1.1-${EFL_SRCREV}+gitr${SRCREV}"
+PR = "r2"
SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master"
-S = "${WORKDIR}/git/etk/${PN}"
-
-do_compile() {
- ${STAGING_BINDIR_NATIVE}/edje_cc -id ${S}/. -fd ${S}/. ${S}/default.edc -o ${S}/default.edj
-}
-
-do_install() {
- install -d ${D}${datadir}/etk/themes/
- install -m 0644 ${S}/default.edj ${D}${datadir}/etk/themes/
-}
-
-FILES_${PN} = "${datadir}/etk/themes/default.edj"
-
-
+require etk-theme.inc
diff --git a/recipes/shr/etk-theme.inc b/recipes/shr/etk-theme.inc
new file mode 100644
index 0000000000..6e8b33db27
--- /dev/null
+++ b/recipes/shr/etk-theme.inc
@@ -0,0 +1,34 @@
+SECTION = "e/utils"
+DEPENDS = "edje-native"
+RDEPENDS = "etk"
+
+S = "${WORKDIR}/git/etk/${PN}/"
+
+do_compile() {
+ ${STAGING_BINDIR_NATIVE}/edje_cc -id ${S}/. -fd ${S}/. ${S}/default.edc -o ${S}/default.edj
+}
+
+do_install() {
+ install -d ${D}${datadir}/etk/themes.${PN}/
+ install -m 0644 ${S}/default.edj ${D}${datadir}/etk/themes.${PN}/
+}
+
+FILES_${PN} = "${datadir}/etk/themes.${PN}"
+
+inherit update-alternatives
+
+ALTERNATIVE_NAME = "etk-theme"
+ALTERNATIVE_LINK = "${datadir}/etk/themes"
+ALTERNATIVE_PATH = "${datadir}/etk/themes.${PN}"
+ALTERNATIVE_PRIORITY ?= 1
+
+pkg_postinst() {
+ if [[ -e ${ALTERNATIVE_LINK} && ! -h ${ALTERNATIVE_LINK} ]] ; then
+ echo "warn: ${ALTERNATIVE_LINK} exists and it's not a link!"
+ echo "warn: It will be replaced with link managed by update-alternatives"
+ echo "warn: Moving ${ALTERNATIVE_LINK} to ${ALTERNATIVE_LINK}.old."
+ echo "warn: It should be empty but probably isn't!"
+ echo "warn: Check what's left there and remove it manually."
+ mv -f ${ALTERNATIVE_LINK} ${ALTERNATIVE_LINK}.old
+ fi
+}
diff --git a/recipes/shr/frameworkd-config-shr_git.bb b/recipes/shr/frameworkd-config-shr_git.bb
index 0727091f0b..3be7ceb9ac 100644
--- a/recipes/shr/frameworkd-config-shr_git.bb
+++ b/recipes/shr/frameworkd-config-shr_git.bb
@@ -4,8 +4,8 @@ AUTHOR = "Michael 'Mickey' Lauer <mlauer@vanille-media.de> et. al."
SECTION = "console/network"
DEPENDS = "python-cython-native python-pyrex-native"
LICENSE = "GPL"
-SRCREV_FORMAT = "gitrFSO_REV-SHR_REV"
-PV = "0.9.5.9+${SRCREV}"
+SRCREV_FORMAT = "FSO_REV-SHR_REV"
+PV = "0.9.5.9+gitr${SRCREV}"
PR = "r7"
SRC_URI = "${FREESMARTPHONE_GIT}/framework.git;protocol=git;branch=master;name=FSO_REV \
diff --git a/recipes/shr/gtk-theme-neo_git.bb b/recipes/shr/gtk-theme-neo_git.bb
new file mode 100644
index 0000000000..6415b6a6ec
--- /dev/null
+++ b/recipes/shr/gtk-theme-neo_git.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "nEo GTK theme - a very fast, high contrast GTK theme"
+HOMEPAGE = "http://jmccloud.jm.funpic.de"
+AUTHOR = "Jesus McCloud <bernd.pruenster@gmail.com"
+RDEPENDS += "icon-theme-neo"
+RRECOMMENDS = "elementary-theme-neo e-wm-theme-illume-neo libframeworkd-phonegui-efl-theme-neo etk-theme-neo gpe-theme-neo icon-theme-neo"
+LICENSE = "unknown"
+
+PV = "0.2-${EFL_SRCREV}+gitr${SRCREV}"
+PR = "r3"
+
+SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master"
+
+S = "${WORKDIR}/git/gtk/${PN}/"
+
+require gtk-theme.inc
diff --git a/recipes/shr/gtk-theme.inc b/recipes/shr/gtk-theme.inc
new file mode 100644
index 0000000000..449d0e0b28
--- /dev/null
+++ b/recipes/shr/gtk-theme.inc
@@ -0,0 +1,33 @@
+RPROVIDES_${PN} += "virtual/theme-gtk"
+RDEPENDS = "gtk+"
+SECTION = "gtk"
+
+inherit update-alternatives
+
+SRC_URI += "file://gtk-theme/gtkrc.${PN}"
+
+do_install() {
+ install -d "${D}${datadir}/themes/${PN}/gtk-2.0"
+ cp -r "${S}/./" "${D}${datadir}/themes/${PN}/gtk-2.0"
+ install -d ${D}${sysconfdir}/gtk-2.0/
+ install -m 0644 ${WORKDIR}/gtk-theme/gtkrc.${PN} ${D}${sysconfdir}/gtk-2.0/gtkrc.${PN}
+}
+
+FILES_${PN} = "${datadir}/themes/${PN}/ \
+ ${sysconfdir}/gtk-2.0/gtkrc.${PN} \
+ "
+
+ALTERNATIVE_NAME = "gtk-theme"
+ALTERNATIVE_LINK = "${sysconfdir}/gtk-2.0/gtkrc"
+ALTERNATIVE_PATH = "${sysconfdir}/gtk-2.0/gtkrc.${PN}"
+
+pkg_postinst() {
+ if [[ -e ${ALTERNATIVE_LINK} && ! -h ${ALTERNATIVE_LINK} ]] ; then
+ echo "warn: ${ALTERNATIVE_LINK} exists and it's not a link!"
+ echo "warn: It will be replaced with link managed by update-alternatives"
+ echo "warn: Moving ${ALTERNATIVE_LINK} to ${ALTERNATIVE_LINK}.old."
+ echo "warn: It should be empty but probably isn't!"
+ echo "warn: Check what's left there and remove it manually."
+ mv -f ${ALTERNATIVE_LINK} ${ALTERNATIVE_LINK}.old
+ fi
+}
diff --git a/recipes/shr/gtk-theme/gtkrc.gtk-theme-neo b/recipes/shr/gtk-theme/gtkrc.gtk-theme-neo
new file mode 100644
index 0000000000..c27c4c44a2
--- /dev/null
+++ b/recipes/shr/gtk-theme/gtkrc.gtk-theme-neo
@@ -0,0 +1,3 @@
+gtk-font-name = "Sans 5"
+gtk-theme-name = "gtk-theme-neo"
+gtk-icon-theme-name = "nEo"
diff --git a/recipes/shr/gtk-theme/gtkrc.shr-theme-gtk-e17lookalike b/recipes/shr/gtk-theme/gtkrc.shr-theme-gtk-e17lookalike
new file mode 100644
index 0000000000..c63cd733fb
--- /dev/null
+++ b/recipes/shr/gtk-theme/gtkrc.shr-theme-gtk-e17lookalike
@@ -0,0 +1,3 @@
+gtk-font-name = "Sans 5"
+gtk-theme-name = "shr-theme-gtk-e17lookalike"
+gtk-icon-theme-name = "openmoko-standard"
diff --git a/recipes/shr/icon-theme-neo_git.bb b/recipes/shr/icon-theme-neo_git.bb
new file mode 100644
index 0000000000..1b6c8ae7e2
--- /dev/null
+++ b/recipes/shr/icon-theme-neo_git.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "nEo icon theme - a high contrast icon theme which looks especially well when using all the other nEo themes"
+SECTION = "e/utils"
+HOMEPAGE = "http://jmccloud.jm.funpic.de"
+AUTHOR = "Jesus McCloud <bernd.pruenster@gmail.com"
+RDEPENDS = "e-wm"
+RRECOMMENDS = "elementary-theme-neo e-wm-theme-illume-neo gtk-theme-neo libframeworkd-phonegui-efl-theme-neo etk-theme-neo gpe-theme-neo"
+LICENSE = "unknown"
+
+PV = "0.2-${EFL_SRCREV}+gitr${SRCREV}"
+PR = "r1"
+
+SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master"
+
+S = "${WORKDIR}/git/icons/icon-theme-neo"
+
+do_install() {
+ install -d ${D}${datadir}/icons/
+ install -d ${D}${datadir}/icons/nEo/
+ cp -r ${S}/* "${D}${datadir}/icons/nEo/"
+}
+
+FILES_${PN} = "${datadir}/icons/nEo/"
+
+pkg_postinst() {
+ echo "To activate this theme select it under ICON THEME in the LOOK tab of enlightenment settings"
+ echo "Restart enlightenment for the changes to take affect"
+}
diff --git a/recipes/shr/initscripts-shr_git.bb b/recipes/shr/initscripts-shr_0.0.1.bb
index 46ea6529ba..f1be1c2fc7 100644
--- a/recipes/shr/initscripts-shr_git.bb
+++ b/recipes/shr/initscripts-shr_0.0.1.bb
@@ -4,8 +4,8 @@ PRIORITY = "required"
DEPENDS = ""
RDEPENDS = ""
LICENSE = "GPL"
-PV = "0.0.1+${PR}-gitr${SRCREV}"
-PR = "r11"
+PV = "0.0.1"
+PR = "r13"
RPROVIDES_${PN} = "initscripts"
RCONFLICTS_${PN} = "initscripts"
@@ -104,4 +104,5 @@ do_install () {
ln -sf ../init.d/umountnfs.sh ${D}${sysconfdir}/rc6.d/S31umountnfs.sh
ln -sf ../init.d/umountfs ${D}${sysconfdir}/rc6.d/S40umountfs
ln -sf ../init.d/reboot ${D}${sysconfdir}/rc6.d/S90reboot
+
}
diff --git a/recipes/shr/libframeworkd-phonegui-efl-theme-neo_git.bb b/recipes/shr/libframeworkd-phonegui-efl-theme-neo_git.bb
new file mode 100644
index 0000000000..27dc47bac3
--- /dev/null
+++ b/recipes/shr/libframeworkd-phonegui-efl-theme-neo_git.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "nEo libframeworkd-phonegui-efl - a very fast, high contrast etk theme"
+HOMEPAGE = "http://jmccloud.jm.funpic.de"
+AUTHOR = "Jesus McCloud <bernd.pruenster@gmail.com"
+RDEPENDS = "libframeworkd-phonegui-efl"
+RRECOMMENDS = "elementary-theme-neo e-wm-theme-illume-neo gtk-theme-neo etk-theme-neo gpe-theme-neo icon-theme-neo"
+LICENSE = "unknown"
+
+PV = "0.2-${EFL_SRCREV}+gitr${SRCREV}"
+PR = "r2"
+
+require libframeworkd-phonegui-efl-theme.inc
+
+SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master"
+
+S = "${WORKDIR}/git/libframeworkd-phonegui-efl/theme-neo"
+
+do_compile() {
+ for edc in call contacts dialer dialog elm-resizing-label incoming-message keypad messages sim-auth ussd ; do
+ ${STAGING_BINDIR_NATIVE}/edje_cc -id ${S}/${edc}/. -fd ${S}/${edc}. ${S}/${edc}/${edc}.edc -o ${S}/${edc}.edj
+ done
+}
+
+do_install() {
+ install -d ${D}${datadir}/libframeworkd-phonegui-efl.${PN}/
+ install -m 0644 ${S}/*.edj ${D}${datadir}/libframeworkd-phonegui-efl.${PN}/
+}
diff --git a/recipes/shr/libframeworkd-phonegui-efl-theme.inc b/recipes/shr/libframeworkd-phonegui-efl-theme.inc
new file mode 100644
index 0000000000..eab118f322
--- /dev/null
+++ b/recipes/shr/libframeworkd-phonegui-efl-theme.inc
@@ -0,0 +1,22 @@
+SECTION = "e/utils"
+DEPENDS += "edje-native"
+
+FILES_${PN} += "${datadir}/libframeworkd-phonegui-efl.${PN}"
+
+inherit update-alternatives
+
+ALTERNATIVE_NAME = "libframeworkd-phonegui-efl-theme"
+ALTERNATIVE_LINK = "${datadir}/libframeworkd-phonegui-efl"
+ALTERNATIVE_PATH = "${datadir}/libframeworkd-phonegui-efl.${PN}"
+ALTERNATIVE_PRIORITY ?= 1
+
+pkg_postinst() {
+ if [[ -e ${ALTERNATIVE_LINK} && ! -h ${ALTERNATIVE_LINK} ]] ; then
+ echo "warn: ${ALTERNATIVE_LINK} exists and it's not a link!"
+ echo "warn: It will be replaced with link managed by update-alternatives"
+ echo "warn: Moving ${ALTERNATIVE_LINK} to ${ALTERNATIVE_LINK}.old."
+ echo "warn: It should be empty but probably isn't!"
+ echo "warn: Check what's left there and remove it manually."
+ mv -f ${ALTERNATIVE_LINK} ${ALTERNATIVE_LINK}.old
+ fi
+}
diff --git a/recipes/shr/libframeworkd-phonegui-efl_git.bb b/recipes/shr/libframeworkd-phonegui-efl_git.bb
index f8adabf415..b24e152364 100644
--- a/recipes/shr/libframeworkd-phonegui-efl_git.bb
+++ b/recipes/shr/libframeworkd-phonegui-efl_git.bb
@@ -3,8 +3,10 @@ HOMEPAGE = "http://shr-project.org/"
LICENSE = "GPL"
SECTION = "e/apps"
DEPENDS += " dbus-glib libframeworkd-glib libframeworkd-phonegui etk evas ecore edje edje-native elementary"
-PV = "0.0.2+gitr${SRCREV}"
-PR = "r33"
+PV = "0.0.3+gitr${SRCREV}"
+PR = "r35"
+
+require libframeworkd-phonegui-efl-theme.inc
inherit pkgconfig autotools autotools_stage
@@ -14,6 +16,7 @@ S = "${WORKDIR}/git/${PN}"
EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc"
do_configure_prepend() {
+ sed -i "s|^filesdir = \$(datadir)/libframeworkd-phonegui-efl/|filesdir = \$(datadir)/libframeworkd-phonegui-efl.${PN}|g" data/Makefile.am
autopoint --force
}
diff --git a/recipes/shr/libmodulo_git.bb b/recipes/shr/libmodulo_git.bb
new file mode 100644
index 0000000000..2e05d7218f
--- /dev/null
+++ b/recipes/shr/libmodulo_git.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "Modulo is a lightweight component container that supports Inversion Of Control, also commonly called Dependency Injection"
+SECTION = "libs"
+PV = "0.0.1+gitr${SRCREV}"
+PR = "r1"
+
+inherit autotools autotools_stage pkgconfig vala
+
+DEPENDS = "glib-2.0 dbus-glib libxml2 libgee"
+
+SRC_URI = "git://git.shr-project.org/repo/libmodulo.git;protocol=http;branch=master"
+S = "${WORKDIR}/git"
+
+LEAD_SONAME = "libmodulo.so.0"
diff --git a/recipes/shr/libphone-ui-shr_git.bb b/recipes/shr/libphone-ui-shr_git.bb
new file mode 100644
index 0000000000..a4519c7f1d
--- /dev/null
+++ b/recipes/shr/libphone-ui-shr_git.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "SHR default module for the Phone UI daemon"
+SECTION = "e/apps"
+DEPENDS += " dbus-glib libframeworkd-glib libphone-ui etk evas ecore edje edje-native elementary"
+PV = "0.0.0+gitr${SRCREV}"
+PR = "r3"
+
+SRC_URI = "git://shr.bearstech.com/repo/libphone-ui-shr.git;protocol=http;branch=master"
+S = "${WORKDIR}/git"
+
+inherit pkgconfig autotools autotools_stage
+
+EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc"
+
+
+do_configure_prepend() {
+ autopoint --force
+}
+
+FILES_${PN} += "${libdir}/phoneui/modules/shr.so"
+FILES_${PN}-dbg += "${libdir}/phoneui/modules/.debug"
diff --git a/recipes/shr/libphone-ui_git.bb b/recipes/shr/libphone-ui_git.bb
new file mode 100644
index 0000000000..41e159b57e
--- /dev/null
+++ b/recipes/shr/libphone-ui_git.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "A generic framework for phone ui"
+HOMEPAGE = "http://shr-project.org/"
+LICENSE = "GPL"
+SECTION = "libs"
+PV = "0.0.0+gitr${SRCREV}"
+PR = "r0"
+
+DEPENDS="glib-2.0 dbus-glib libframeworkd-glib libphone-utils alsa-lib"
+
+inherit pkgconfig autotools autotools_stage
+
+SRC_URI = "git://git.shr-project.org/repo/libphone-ui.git;protocol=http;branch=master"
+S="${WORKDIR}/git"
+
+CONFFILES_${PN} = "${sysconfdir}/libphoneui.conf"
diff --git a/recipes/shr/ologicd_git.bb b/recipes/shr/ologicd_git.bb
new file mode 100644
index 0000000000..58b82dd0ff
--- /dev/null
+++ b/recipes/shr/ologicd_git.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = ""
+SECTION = "libs"
+PV = "0.0.1+gitr${SRCREV}"
+PR = "r0"
+
+inherit autotools
+
+SRC_URI = "git://shr.bearstech.com/repo/${PN}.git;protocol=http;branch=master"
+S = "${WORKDIR}/git"
diff --git a/recipes/shr/ophonekitd_git.bb b/recipes/shr/ophonekitd_git.bb
deleted file mode 100644
index ed561c7c75..0000000000
--- a/recipes/shr/ophonekitd_git.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-DESCRIPTION = "Ophonekitd daemon"
-HOMEPAGE = "http://shr-project.org/"
-LICENSE = "GPL"
-SECTION = "x11/applications"
-DEPENDS += " dbus-glib libframeworkd-glib libframeworkd-phonegui sqlite3"
-PV = "0.0.2+gitr${SRCREV}"
-PR = "r18"
-
-SRC_URI = "git://git.shr-project.org/repo/shr.git;protocol=http;branch=master"
-S = "${WORKDIR}/git/${PN}"
-
-inherit autotools
-
-do_install_append() {
- install -d ${D}${sysconfdir}/X11/Xsession.d/
- install -d ${D}${sysconfdir}/dbus-1/system.d/
- install -d ${D}${datadir}/ophonekitd/
- install -d ${D}${localstatedir}/db
- install -m 0755 ${S}/data/80ophonekitd ${D}${sysconfdir}/X11/Xsession.d/
- install -m 0755 ${S}/data/ophonekitd.conf ${D}${sysconfdir}/dbus-1/system.d/
-}
-
-FILES_${PN} += "${datadir} ${sysconfdir}"
-
diff --git a/recipes/shr/phonefsod_git.bb b/recipes/shr/phonefsod_git.bb
new file mode 100644
index 0000000000..8631efce19
--- /dev/null
+++ b/recipes/shr/phonefsod_git.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "SHR Phone FSO Daemon"
+HOMEPAGE = "http://shr-project.org/"
+LICENSE = "GPL"
+SECTION = "x11/applications"
+DEPENDS += " dbus-glib libframeworkd-glib sqlite3 shr-specs"
+PV = "0.0.0+gitr${SRCREV}"
+PR = "r3"
+
+SRC_URI = "git://git.shr-project.org/repo/phonefsod.git;protocol=http;branch=master"
+S = "${WORKDIR}/git"
+
+inherit autotools update-rc.d
+
+INITSCRIPT_NAME = "phonefsod"
+INITSCRIPT_PARAMS = "defaults 75"
+
+EXTRA_OECONF = "\
+ SPECS_PATH=${STAGING_DATADIR}/shr-specs \
+"
+
+
+
diff --git a/recipes/shr/phoneui-apps_git.bb b/recipes/shr/phoneui-apps_git.bb
new file mode 100644
index 0000000000..a6e3e17aee
--- /dev/null
+++ b/recipes/shr/phoneui-apps_git.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "The PhoneUI app starters"
+HOMEPAGE = "http://shr-project.org/"
+LICENSE = "GPL"
+SECTION = "x11/applications"
+DEPENDS += "dbus-glib"
+PV = "0.0.0+gitr${SRCREV}"
+PR = "r0"
+
+inherit pkgconfig autotools
+
+SRC_URI = "git://git.shr-project.org/repo/phoneui-apps.git;protocol=http;branch=master"
+S = "${WORKDIR}/git"
+
+PACKAGES = "${PN}-dialer ${PN}-messages ${PN}-contacts"
+
+FILES_${PN}-dialer = "\
+ /usr/bin/phoneui-dialer \
+ /usr/share/applications/phoneui-dialer.desktop \
+"
+FILES_${PN}-messages = "\
+ /usr/bin/phoneui-messages \
+ /usr/share/applications/phoneui-messages.desktop \
+"
+FILES_${PN}-contacts = "\
+ /usr/bin/phoneui-contacts \
+ /usr/share/applications/phoneui-contacts.desktop \
+"
+
diff --git a/recipes/shr/phoneuid_git.bb b/recipes/shr/phoneuid_git.bb
new file mode 100644
index 0000000000..32ad61d765
--- /dev/null
+++ b/recipes/shr/phoneuid_git.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "SHR Phone UI Daemon"
+HOMEPAGE = "http://shr-project.org/"
+LICENSE = "GPL"
+SECTION = "x11/applications"
+DEPENDS += " dbus-glib libframeworkd-glib libphone-ui sqlite3 shr-specs"
+PV = "0.0.0+gitr${SRCREV}"
+PR = "r3"
+
+SRC_URI = "git://git.shr-project.org/repo/phoneuid.git;protocol=http;branch=master"
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+EXTRA_OECONF = "\
+ SPECS_PATH=${STAGING_DATADIR}/shr-specs \
+"
+
+
+FILES_${PN} += "${datadir}"
+
diff --git a/recipes/shr/shr-config_git.bb b/recipes/shr/shr-config_git.bb
new file mode 100644
index 0000000000..60ed586179
--- /dev/null
+++ b/recipes/shr/shr-config_git.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "Central settings app for FSO/SHR distros"
+HOMEPAGE = "http://git.freesmartphone.org"
+AUTHOR = "Sebastian Spaeth (see AUTHORS)"
+LICENSE = "GPLv2"
+DEPENDS = "vala-native elementary libeflvala"
+SECTION = "x11/application"
+PV = "0.0.2+gitr${SRCREV}"
+PR = "r4"
+
+EXTRA_OECONF="--enable-vapidir=${STAGING_DATADIR}/vala/vapi"
+inherit autotools
+
+SRC_URI = "git://github.com/spaetz/shr-config.git;protocol=git;branch=master"
+S = "${WORKDIR}/git"
diff --git a/recipes/shr/shr-installer_git.bb b/recipes/shr/shr-installer_git.bb
index 1206d635d5..ca5eb59b0f 100644
--- a/recipes/shr/shr-installer_git.bb
+++ b/recipes/shr/shr-installer_git.bb
@@ -5,7 +5,7 @@ LICENSE ?= "GPL"
RDEPENDS = "python-elementary python-dbus python-core python-edbus packagekit"
SECTION = "x11/application"
-PV = "0.0.1-gitr${SRCREV}"
+PV = "0.0.1+gitr${SRCREV}"
PR = "r0"
inherit setuptools
diff --git a/recipes/shr/shr-launcher_svn.bb b/recipes/shr/shr-launcher_svn.bb
new file mode 100644
index 0000000000..ffd6161586
--- /dev/null
+++ b/recipes/shr/shr-launcher_svn.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "shr-launcher is a home app/launcher for openmoko phones"
+HOMEPAGE = "http://code.google.com/p/shr-launcher/"
+AUTHOR = "cchandel"
+LICENSE = "GPLv2"
+SECTION = "e/apps"
+DEPENDS = "elementary eina edbus"
+
+PV = "0.0.1+svnr${SRCPV}"
+PR = "r0"
+
+SRC_URI = "svn://shr-launcher.googlecode.com/svn/trunk;module=.;proto=http"
+
+do_configure_prepend() {
+ rm -f ${S}/config.log
+ rm -f ${S}/config.status
+}
+
+S = "${WORKDIR}"
+
+inherit autotools
+
diff --git a/recipes/shr/shr-settings_git.bb b/recipes/shr/shr-settings_git.bb
new file mode 100644
index 0000000000..96c16ed4e7
--- /dev/null
+++ b/recipes/shr/shr-settings_git.bb
@@ -0,0 +1,32 @@
+DESCRIPTION = "Modular settings application for SHR based on python-elementary"
+HOMEPAGE = "http://shr-project.org"
+SHR_RELEASE ?= "shr"
+LICENSE ?= "GPL"
+RDEPENDS = "python-elementary python-dbus python-codecs python-shell python-pyrtc python python-core python-edbus dbus-x11 frameworkd python-phoneutils python-pexpect"
+SECTION = "x11/application"
+PE = "1"
+PV = "0.1.1+gitr${SRCREV}"
+PR = "r8"
+
+inherit setuptools
+
+PACKAGES =+ "\
+ ${PN}-addons-illume \
+ ${PN}-backup-configuration \
+"
+
+RRECOMMENDS_${PN} = "\
+ ${PN}-addons-illume \
+ ${PN}-backup-configuration \
+"
+
+PACKAGE_ARCH_${PN}-addons-illume = "all"
+PACKAGE_ARCH_${PN}-backup-configuration = "all"
+
+SRC_URI = "git://git.shr-project.org/repo/shr-settings.git;protocol=http;branch=master"
+S = "${WORKDIR}/git"
+FILES_${PN} += "${prefix}/share/pixmaps"
+FILES_${PN} += "${prefix}/share/applications"
+FILES_${PN}-addons-illume = "${prefix}/share/applications/shr-settings-addons-illume"
+FILES_${PN}-backup-configuration = "${sysconfdir}/shr-settings/"
+CONFFILES_${PN}-backup-configuration = "${sysconfdir}/shr-settings/*"
diff --git a/recipes/shr/shr-specs_git.bb b/recipes/shr/shr-specs_git.bb
new file mode 100644
index 0000000000..0276ce81ce
--- /dev/null
+++ b/recipes/shr/shr-specs_git.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "The SHR DBus API Specification"
+HOMEPAGE = "http://shr-project.org/"
+LICENSE = "BSD"
+SECTION = "devel/specifications"
+PV = "0.0.0+gitr${SRCREV}"
+PR = "r0"
+
+SRC_URI = "git://git.shr-project.org/repo/shr-specs.git;protocol=http;branch=master"
+S = "${WORKDIR}/git"
+
+do_compile() {
+ make xml
+}
+
+do_stage() {
+ install -d "${STAGING_DATADIR}/shr-specs"
+ install -m 0644 xml/* "${STAGING_DATADIR}/shr-specs"
+}
+
+FILE_${PN}-dev += "${datadir}/shr-specs"
+
+
diff --git a/recipes/shr/shr-splash-theme-dontpanic_git.bb b/recipes/shr/shr-splash-theme-dontpanic_git.bb
index 4bf41fbd29..9c653acdc4 100644
--- a/recipes/shr/shr-splash-theme-dontpanic_git.bb
+++ b/recipes/shr/shr-splash-theme-dontpanic_git.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "SHR splash screen - DON'T PANIC theme"
SECTION = "x11/data"
LICENSE = "MIT BSD"
-PV = "1.2-gitr${SRCREV}"
+PV = "1.2+gitr${SRCREV}"
PR = "r6"
SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master"
diff --git a/recipes/shr/shr-splash-theme-handy_git.bb b/recipes/shr/shr-splash-theme-handy_git.bb
index 773d4f16db..94e2d18878 100644
--- a/recipes/shr/shr-splash-theme-handy_git.bb
+++ b/recipes/shr/shr-splash-theme-handy_git.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "SHR splash screen - handy theme"
SECTION = "x11/data"
LICENSE = "MIT BSD"
-PV = "1.2-gitr${SRCREV}"
+PV = "1.2+gitr${SRCREV}"
PR = "r3"
SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master"
diff --git a/recipes/shr/shr-splash-theme-logo_git.bb b/recipes/shr/shr-splash-theme-logo_git.bb
new file mode 100644
index 0000000000..77ae8d7d25
--- /dev/null
+++ b/recipes/shr/shr-splash-theme-logo_git.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "SHR splash screen - SHR logo theme"
+SECTION = "x11/data"
+LICENSE = "MIT BSD"
+PV = "0.1+gitr${SRCREV}"
+PR = "r0"
+
+SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master"
+S = "${WORKDIR}/git/shr-splash/${PN}"
+
+ALTERNATIVE_PRIORITY = 3
+
+require shr-splash-theme.inc
+
diff --git a/recipes/shr/shr-splash-theme-niebiee_git.bb b/recipes/shr/shr-splash-theme-niebiee_git.bb
index 40a0973f2b..dfc8524ceb 100644
--- a/recipes/shr/shr-splash-theme-niebiee_git.bb
+++ b/recipes/shr/shr-splash-theme-niebiee_git.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "SHR splash screen - extremely blue Niebiee theme"
SECTION = "x11/data"
LICENSE = "MIT BSD"
-PV = "1.2-gitr${SRCREV}"
+PV = "1.2+gitr${SRCREV}"
PR = "r0"
SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master"
diff --git a/recipes/shr/shr-splash-theme-simple_git.bb b/recipes/shr/shr-splash-theme-simple_git.bb
index 865e18fce7..f132c1d7aa 100644
--- a/recipes/shr/shr-splash-theme-simple_git.bb
+++ b/recipes/shr/shr-splash-theme-simple_git.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "SHR splash screen - simple SHR theme"
SECTION = "x11/data"
LICENSE = "MIT BSD"
-PV = "1.2-gitr${SRCREV}"
+PV = "1.2+gitr${SRCREV}"
PR = "r6"
SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master"
diff --git a/recipes/shr/shr-splash-theme-tux_git.bb b/recipes/shr/shr-splash-theme-tux_git.bb
new file mode 100644
index 0000000000..6f846461b3
--- /dev/null
+++ b/recipes/shr/shr-splash-theme-tux_git.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "SHR splash screen - SHR Tux theme"
+SECTION = "x11/data"
+LICENSE = "MIT BSD"
+PV = "0.1+gitr${SRCREV}"
+PR = "r0"
+
+SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master"
+S = "${WORKDIR}/git/shr-splash/${PN}"
+
+require shr-splash-theme.inc
+
diff --git a/recipes/shr/shr-splash_git.bb b/recipes/shr/shr-splash_git.bb
index 1ce7373e82..5053befbf8 100644
--- a/recipes/shr/shr-splash_git.bb
+++ b/recipes/shr/shr-splash_git.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "SHR splash screen"
SECTION = "x11/data"
LICENSE = "MIT BSD"
-PV = "1.2-gitr${SRCREV}"
+PV = "1.2+gitr${SRCREV}"
PR = "r4"
RRECOMMENDS_${PN} += "\
virtual/shr-splash-theme"
diff --git a/recipes/shr/shr-theme-gry.bb b/recipes/shr/shr-theme-gry.bb
new file mode 100644
index 0000000000..7a2e6e1728
--- /dev/null
+++ b/recipes/shr/shr-theme-gry.bb
@@ -0,0 +1,7 @@
+DESCRIPTION = "gry* - a fast, shiny theme"
+SECTION = "x11/data"
+RDEPENDS += "e-wm-theme-illume-gry elementary-theme-gry"
+PV = "0.1"
+PR = "r1"
+
+ALLOW_EMPTY = "1"
diff --git a/recipes/shr/shr-theme-gtk-e17lookalike_git.bb b/recipes/shr/shr-theme-gtk-e17lookalike_git.bb
new file mode 100644
index 0000000000..9a8c8e2d49
--- /dev/null
+++ b/recipes/shr/shr-theme-gtk-e17lookalike_git.bb
@@ -0,0 +1,10 @@
+DESCRIPTION = "A gtk theme that looks like e17"
+LICENSE = "MIT BSD"
+PV = "0.1.1+gitr${SRCREV}"
+PR = "r5"
+
+SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master"
+
+S = "${WORKDIR}/git/gtk/${PN}"
+
+require gtk-theme.inc
diff --git a/recipes/shr/shr-theme-neo.bb b/recipes/shr/shr-theme-neo.bb
new file mode 100644
index 0000000000..20186ffe31
--- /dev/null
+++ b/recipes/shr/shr-theme-neo.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "nEo shr theme - a very fast, high contrast shr theme"
+SECTION = "x11/data"
+HOMEPAGE = "http://jmccloud.jm.funpic.de"
+AUTHOR = "Jesus McCloud <bernd.pruenster@gmail.com"
+RDEPENDS = "elementary-theme-neo e-wm-theme-illume-neo gtk-theme-neo libframeworkd-phonegui-efl-theme-neo gpe-theme-neo icon-theme-neo"
+LICENSE = "unknown"
+
+PV = "0.2"
+PR = "r1"
+
+ALLOW_EMPTY = "1"
diff --git a/recipes/shr/shr-theme-sixteen.bb b/recipes/shr/shr-theme-sixteen.bb
new file mode 100644
index 0000000000..d7b789239d
--- /dev/null
+++ b/recipes/shr/shr-theme-sixteen.bb
@@ -0,0 +1,7 @@
+DESCRIPTION = "Sixteen SHR theme"
+SECTION = "x11/data"
+RDEPENDS += "e-wm-theme-illume-sixteen elementary-theme-sixteen"
+PV = "0.1"
+PR = "r1"
+
+ALLOW_EMPTY = "1"
diff --git a/recipes/shr/shr-today_git.bb b/recipes/shr/shr-today_git.bb
index c6947cf3ca..64393068a7 100644
--- a/recipes/shr/shr-today_git.bb
+++ b/recipes/shr/shr-today_git.bb
@@ -2,13 +2,13 @@ DESCRIPTION = "python-elementary and opimd based lock and today screen for the S
HOMEPAGE = "http://wiki.github.com/slyon/today"
SHR_RELEASE ?= "shr"
LICENSE ?= "GPL"
-RDEPENDS = "python-elementary python-dbus python-edbus python-ecore"
+RDEPENDS = "python-edje python-dbus python-edbus python-ecore"
SECTION = "x11/applications"
-PV = "0.0.1-gitr${SRCREV}"
-PR = "r0"
+PV = "0.0.1+gitr${SRCREV}"
+PR = "r2"
-inherit setuptools
+inherit distutils
SRC_URI = "git://github.com/slyon/today.git;protocol=http"
S = "${WORKDIR}/git"
diff --git a/recipes/smpeg/smpeg_svn.bb b/recipes/smpeg/smpeg_svn.bb
index 656980f8cf..343e0bd2eb 100644
--- a/recipes/smpeg/smpeg_svn.bb
+++ b/recipes/smpeg/smpeg_svn.bb
@@ -4,7 +4,7 @@ LICENSE = "LGPL"
SECTION = "libs/multimedia"
DEPENDS = "virtual/libsdl"
PROVIDES = "smpeg"
-PV = "0.4.5+svnr${SRCREV}"
+PV = "0.4.5+svnr${SRCPV}"
PE = "1"
SRCREV = "370"
diff --git a/recipes/sms-sentry/sms-sentry.bb b/recipes/sms-sentry/sms-sentry.bb
new file mode 100644
index 0000000000..be6c22c831
--- /dev/null
+++ b/recipes/sms-sentry/sms-sentry.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "An SMS monitor to locate a Neo Freerunner"
+SECTION = "console/network"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "python"
+
+PR = "r1"
+
+SRC_URI = "http://www.handheldshell.com/software/fso/sms-sentry_1.01.tgz"
+
+inherit autotools update-rc.d
+
+INITSCRIPT_NAME = "sms-sentry.sh"
+INITSCRIPT_PARAMS = "defaults 35"
+
+S = ${WORKDIR}/sms-sentry_1.01
+
+do_install() {
+ install -d ${D}/${sysconfdir}/init.d
+ install -d ${D}/${sysconfdir}/default
+ install -d ${D}/usr/bin
+ install -m 0755 ${S}/sms-sentry.sh ${D}/${sysconfdir}/init.d/
+ install -m 0755 ${S}/sms-sentry ${D}/usr/bin/
+ install -m 0644 ${S}/sms-sentry.default ${D}/${sysconfdir}/default/sms-sentry.default
+}
+
+do_configure() {
+ exit 0
+}
+
+do_compile() {
+ exit 0
+}
+
diff --git a/recipes/socketcan/socketcan-modules_svn.bb b/recipes/socketcan/socketcan-modules_svn.bb
index 5bf1aff0ff..b24f45640f 100644
--- a/recipes/socketcan/socketcan-modules_svn.bb
+++ b/recipes/socketcan/socketcan-modules_svn.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://developer.berlios.de/projects/socketcan/"
SECTION = "kernel/modules"
LICENSE = "GPL"
DEPENDS = "virtual/kernel"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR = "r1"
SRC_URI = "svn://svn.berlios.de/socketcan;module=trunk;proto=svn"
diff --git a/recipes/socketcan/socketcan-utils-test_svn.bb b/recipes/socketcan/socketcan-utils-test_svn.bb
index 23b1c5ad08..4a3d52dfca 100644
--- a/recipes/socketcan/socketcan-utils-test_svn.bb
+++ b/recipes/socketcan/socketcan-utils-test_svn.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://developer.berlios.de/projects/socketcan/"
SECTION = "console/utils"
LICENSE = "GPL"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
SRC_URI = "svn://svn.berlios.de/socketcan;module=trunk;proto=svn \
file://autotoolize.patch;patch=1;pnum=0 \
diff --git a/recipes/sphyrna/sphyrna-python_svn.bb b/recipes/sphyrna/sphyrna-python_svn.bb
index 011c496fe4..a78a1d1aba 100644
--- a/recipes/sphyrna/sphyrna-python_svn.bb
+++ b/recipes/sphyrna/sphyrna-python_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Sphyrna - Hammerhead Reverse Engineering"
HOMEPAGE = "http://projects.linuxtogo.org/projects/sphyrna"
LICENSE = "GPLv2"
DEPENDS = "readline"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
PR = "r1"
SRC_URI = "svn://projects.linuxtogo.org/svn;module=sphyrna"
diff --git a/recipes/sqlite/sqlite3.inc b/recipes/sqlite/sqlite3.inc
index ae20ff5ead..fae8966ba2 100644
--- a/recipes/sqlite/sqlite3.inc
+++ b/recipes/sqlite/sqlite3.inc
@@ -1,7 +1,7 @@
DESCRIPTION = "An Embeddable SQL Database Engine"
SECTION = "libs"
PRIORITY = "optional"
-DEPENDS = "readline ncurses"
+DEPENDS = "tcl-native readline ncurses"
LICENSE = "PD"
SRC_URI = "http://www.sqlite.org/sqlite-${PV}.tar.gz \
diff --git a/recipes/sqlite/sqlite3_3.6.20.bb b/recipes/sqlite/sqlite3_3.6.20.bb
new file mode 100644
index 0000000000..4abfae4720
--- /dev/null
+++ b/recipes/sqlite/sqlite3_3.6.20.bb
@@ -0,0 +1,2 @@
+require sqlite3.inc
+
diff --git a/recipes/squashfs-tools/squashfs-tools-native_4.0.bb b/recipes/squashfs-tools/squashfs-tools-native_4.0.bb
index f21bf99645..cc01604460 100644
--- a/recipes/squashfs-tools/squashfs-tools-native_4.0.bb
+++ b/recipes/squashfs-tools/squashfs-tools-native_4.0.bb
@@ -1,10 +1,12 @@
+require squashfs-tools_4.0.bb
+
inherit native
-require squashfs-tools_${PV}.bb
-PR = "${INC_PR}.1"
+DEPENDS = "zlib-native"
PACKAGES = ""
do_stage () {
install -m 0755 mksquashfs ${STAGING_BINDIR}/
}
+
diff --git a/recipes/squashfs-tools/squashfs-tools.inc b/recipes/squashfs-tools/squashfs-tools.inc
index d06e1e52ec..fb5a648545 100644
--- a/recipes/squashfs-tools/squashfs-tools.inc
+++ b/recipes/squashfs-tools/squashfs-tools.inc
@@ -2,14 +2,14 @@ DESCRIPTION = "Squashfs is a highly compressed read-only filesystem for Linux."
SECTION = "base"
LICENSE = "GPLv2"
DEPENDS = "zlib"
-INC_PR = "r1"
+INC_PR = "r3"
S = "${WORKDIR}/squashfs${@bb.data.getVar('PV',d,1).replace('r','-r')}/squashfs-tools"
# required to share same place with -lzma specific packages
FILESPATHPKG = "squashfs-tools-${PV}:squashfs-tools:files"
-SRC_URI = "${SOURCEFORGE_MIRROR}/squashfs/squashfs${@bb.data.getVar('PV',d,1).replace('r','-r')}.tar.gz"
+SRC_URI ?= "${SOURCEFORGE_MIRROR}/squashfs/squashfs${@bb.data.getVar('PV',d,1).replace('r','-r')}.tar.gz"
prefix = ""
diff --git a/recipes/squashfs-tools/squashfs-tools_4.0.bb b/recipes/squashfs-tools/squashfs-tools_4.0.bb
index a4503fcf0f..886c095883 100644
--- a/recipes/squashfs-tools/squashfs-tools_4.0.bb
+++ b/recipes/squashfs-tools/squashfs-tools_4.0.bb
@@ -1,12 +1,16 @@
+# This override is required since this has not yet been released
+SRC_URI = "cvs://anonymous@squashfs.cvs.sourceforge.net/cvsroot/squashfs;module=squashfs;date=${SRCDATE} \
+ http://downloads.sourceforge.net/sevenzip/lzma465.tar.bz2"
+
require squashfs-tools.inc
-DEPENDS += "lzma"
-PR = "${INC_PR}.1"
+PR = "${INC_PR}.2"
-EXTRA_OEMAKE = "USE_LZMA=1 \
- LZMA_CFLAGS='-I${STAGING_INCDIR}/lzma -DUSE_LZMA' \
- LZMA_LIB='${STAGING_LIBDIR}/liblzma.a'"
+S = "${WORKDIR}/squashfs/squashfs-tools"
-DEFAULT_PREFERENCE = "-1"
-SRC_URI += " file://portability.patch;patch=1;pnum=2 \
- file://lzma-support.patch;patch=1;pnum=2"
+EXTRA_OEMAKE += "LZMA_SUPPORT=1 LZMA_DIR=../.."
+TARGET_CC_ARCH += "${LDFLAGS}"
+# the COMP_DEFAULT macro should result in a string including quotes: "gzip"
+COMP_DEFAULT = gzip
+CFLAGS_append = ' -I. -I../../C -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
+ -D_GNU_SOURCE -DLZMA_SUPPORT -DCOMP_DEFAULT=\\"${COMP_DEFAULT}\\" '
diff --git a/recipes/sudo/files/sudo.pamd b/recipes/sudo/files/sudo.pamd
new file mode 100644
index 0000000000..c22c794c21
--- /dev/null
+++ b/recipes/sudo/files/sudo.pamd
@@ -0,0 +1,7 @@
+#%PAM-1.0
+
+auth include common-auth
+account include common-account
+
+session required pam_permit.so
+session required pam_limits.so
diff --git a/recipes/sudo/gksu_2.0.2.bb b/recipes/sudo/gksu_2.0.2.bb
new file mode 100644
index 0000000000..3b13db869b
--- /dev/null
+++ b/recipes/sudo/gksu_2.0.2.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "GKSu is a library that provides a Gtk+ frontend to su and sudo."
+LICENSE = "GPLv2"
+DEPENDS = "gtk+ libgksu nautilus"
+
+SRC_URI = "http://people.debian.org/~kov/gksu/gksu-${PV}.tar.gz"
+
+inherit autotools
+
+PACKAGES =+ "${PN}-nautilus-extension"
+FILES_${PN}-nautilus-extension = "${libdir}/nautilus/extensions-2.0/*.so"
+
diff --git a/recipes/sudo/libgksu_2.0.12.bb b/recipes/sudo/libgksu_2.0.12.bb
new file mode 100644
index 0000000000..e5bd10ef61
--- /dev/null
+++ b/recipes/sudo/libgksu_2.0.12.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "Gksu authorization library"
+LICENSE = "LGPLv2"
+DEPENDS = "gtk+ gconf startup-notification gnome-keyring libgtop"
+RRECOMMENDS_${PN} = "gksu"
+PR = "r1"
+
+SRC_URI = "http://people.debian.org/~kov/gksu/libgksu-${PV}.tar.gz"
+
+inherit autotools lib_package
+
+EXTRA_OECONF += " \
+ --disable-gtk-doc \
+"
+
+FILES_${PN}-bin += "${datadir}/applications/gksu-properties.desktop \
+ ${datadir}/pixmaps/gksu.png \
+"
diff --git a/recipes/sudo/sudo-enable-wheel-group.bb b/recipes/sudo/sudo-enable-wheel-group.bb
new file mode 100644
index 0000000000..b281ddb09d
--- /dev/null
+++ b/recipes/sudo/sudo-enable-wheel-group.bb
@@ -0,0 +1,20 @@
+PR = "r0"
+
+RDEPENDS = "sudo"
+
+ALLOW_EMPTY_${PN} = "1"
+PACKAGE_ARCH = "all"
+
+# Edit sudoers to allow the use of the wheel group and non root users to mount/shutdown etc.
+# Please consider this when using.
+
+pkg_postinst() {
+#!/bin/sh
+mkdir -p $D${sysconfdir}/
+touch $D${sysconfdir}/sudoers
+sed -i /# %wheel/d $D${sysconfdir}/sudoers
+echo '%wheel ALL=(ALL) ALL' >> $D${sysconfdir}/sudoers
+sed -i /# %users/d $D${sysconfdir}/sudoers
+echo '%users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom' >> $D${sysconfdir}/sudoers
+echo '%users localhost=/sbin/shutdown -h now' >> $D${sysconfdir}/sudoers
+}
diff --git a/recipes/sudo/sudo.inc b/recipes/sudo/sudo.inc
index 0dfb22ba8a..2bb0d72836 100644
--- a/recipes/sudo/sudo.inc
+++ b/recipes/sudo/sudo.inc
@@ -3,19 +3,30 @@ administrator to give certain users (or groups of \
users) the ability to run some (or all) commands \
as root while logging all commands and arguments."
LICENSE = "sudo"
-HOMEPAGE = "http://www.courtesan.com/sudo/"
+HOMEPAGE = "http://www.sudo.ws/"
PRIORITY = "optional"
SECTION = "admin"
inherit autotools
-EXTRA_OECONF = "--with-editor=/bin/vi --with-env-editor"
+EXTRA_OECONF += "--with-editor=/bin/vi --with-env-editor --with-all-insults "
do_configure_prepend () {
- rm -f acsite.m4
- if [ ! -e acinclude.m4 ]; then
- cat aclocal.m4 > acinclude.m4
- fi
+ # Make sure the build does not get clever.
+ export sudo_cv_uid_t_len=10
+ export sudo_cv_func_unsetenv_void=no
+
+ # Prevent binaries from being stripped.
+ sed -i 's/\($(INSTALL).*\) -s \(.*[(sudo|visudo)]\)/\1 \2/g' Makefile.in
+
+ rm -f acsite.m4
+ if [ ! -e acinclude.m4 ]; then
+ cat aclocal.m4 > acinclude.m4
+ fi
+}
+
+do_configure() {
+ oe_runconf
}
pkg_postinst() {
diff --git a/recipes/sudo/sudo_1.7.2p1.bb b/recipes/sudo/sudo_1.7.2p1.bb
new file mode 100644
index 0000000000..bfa8afe650
--- /dev/null
+++ b/recipes/sudo/sudo_1.7.2p1.bb
@@ -0,0 +1,19 @@
+PR = "r3"
+
+DEPENDS = "libpam"
+RDEPENDS = "libpam libpam-meta"
+
+SRC_URI = "http://ftp.sudo.ws/sudo/dist/sudo-${PV}.tar.gz \
+ file://sudo.pamd \
+"
+
+EXTRA_OECONF += " --with-pam "
+
+require sudo.inc
+
+# Do in the recipe not the common inc as not all SUDO recipes want PAM support.
+
+do_install_append() {
+ install -d ${D}${sysconfdir}/pam.d/
+ install -m 0644 ${WORKDIR}/sudo.pamd ${D}${sysconfdir}/pam.d/sudo
+}
diff --git a/recipes/tangogps/tangogps.inc b/recipes/tangogps/tangogps.inc
index 677000fb45..9897461e0e 100644
--- a/recipes/tangogps/tangogps.inc
+++ b/recipes/tangogps/tangogps.inc
@@ -12,4 +12,4 @@ S = "${WORKDIR}/tangogps-${PV}"
inherit autotools pkgconfig
RRECOMMENDS = "gpsd"
-
+RRECOMMENDS_shr = "fso-gpsd"
diff --git a/recipes/tangogps/tangogps_0.99.1.bb b/recipes/tangogps/tangogps_0.99.1.bb
new file mode 100644
index 0000000000..18f6acaa1b
--- /dev/null
+++ b/recipes/tangogps/tangogps_0.99.1.bb
@@ -0,0 +1,2 @@
+require tangogps.inc
+PR = "r0"
diff --git a/recipes/tasks/angstrom-task-gnome.bb b/recipes/tasks/angstrom-task-gnome.bb
index ac3fee978f..b0b2563342 100644
--- a/recipes/tasks/angstrom-task-gnome.bb
+++ b/recipes/tasks/angstrom-task-gnome.bb
@@ -9,7 +9,7 @@ XSERVER ?= "xserver-xorg \
xf86-input-keyboard \
"
-PR = "r1"
+PR = "r2"
PACKAGES += "task-gnome-apps task-gnome-fonts task-gnome task-gnome-gstreamer task-gnome-perl task-gnome-pulseaudio task-gnome-themes task-gnome-totem task-gnome-xserver-base"
@@ -105,7 +105,6 @@ DEPENDS_task-gnome-gstreamer = " \
RDEPENDS_task-gnome-gstreamer = " \
gst-ffmpeg \
- gst-omapfb \
gst-plugin-pulse \
gst-plugins-base-meta \
gst-plugins-good-meta \
@@ -179,6 +178,7 @@ RDEPENDS_task-gnome-xserver-base = " \
xinetd \
xinit \
xlsfonts \
+ xrandr \
xrdb \
xrefresh \
xset \
diff --git a/recipes/tasks/task-base.bb b/recipes/tasks/task-base.bb
index 37b051a83f..ed561b802e 100644
--- a/recipes/tasks/task-base.bb
+++ b/recipes/tasks/task-base.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "Merge machine and distro options to create a basic machine task/package"
-PR = "r85"
+PR = "r86"
inherit task
diff --git a/recipes/tasks/task-beagleboard-demo.bb b/recipes/tasks/task-beagleboard-demo.bb
index ca26baaaff..f9867afeea 100644
--- a/recipes/tasks/task-beagleboard-demo.bb
+++ b/recipes/tasks/task-beagleboard-demo.bb
@@ -5,6 +5,7 @@ PR = "r15"
inherit task
ECONFIG ?= "places e-wm-config-angstrom e-wm-config-angstrom-touchscreen e-wm-config-angstrom-widescreen e-wm-config-default"
+EMENU ?= "e-wm-menu"
RDEPENDS_${PN} = "\
task-proper-tools \
@@ -15,7 +16,7 @@ RDEPENDS_${PN} = "\
angstrom-zeroconf-audio \
angstrom-led-config \
gpe-scap \
- mime-support e-wm ${ECONFIG} \
+ mime-support e-wm ${ECONFIG} ${EMENU} \
xterm xmms \
firefox midori \
gecko-mediaplayer-firefox-hack \
diff --git a/recipes/tasks/task-boot.bb b/recipes/tasks/task-boot.bb
index 1a1b9f25c8..0ce9ee4415 100644
--- a/recipes/tasks/task-boot.bb
+++ b/recipes/tasks/task-boot.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "Basic task to get a device booting"
-PR = "r49"
+PR = "r50"
inherit task
@@ -20,7 +20,6 @@ DEPENDS = "virtual/kernel"
# minimal set of packages - needed to boot
#
RDEPENDS_task-boot = "\
- kernel \
base-files \
base-passwd \
busybox \
@@ -32,5 +31,6 @@ RDEPENDS_task-boot = "\
"
RRECOMMENDS_task-boot = "\
+ kernel \
${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS} \
"
diff --git a/recipes/tasks/task-fso-compliance.bb b/recipes/tasks/task-fso-compliance.bb
index 62193ff817..e1776a8618 100644
--- a/recipes/tasks/task-fso-compliance.bb
+++ b/recipes/tasks/task-fso-compliance.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "The freesmartphone.org framework -- install this task to make you
SECTION = "fso/base"
LICENSE = "MIT"
PV = "1.0"
-PR = "r7"
+PR = "r8"
inherit task
@@ -11,16 +11,16 @@ RDEPENDS_${PN} = "\
frameworkd \
# fso-apmd \
fso-gpsd \
- fso-monitord \
+# fso-monitord \
connman \
connman-scripts \
- connman-plugin-bluetooth \
+# connman-plugin-bluetooth \
# connman-plugin-dhclient \
# connman-plugin-dnsproxy \
# connman-plugin-ethernet \
# connman-plugin-fake \
- connman-plugin-loopback \
- connman-plugin-pppd \
+# connman-plugin-loopback \
+# connman-plugin-pppd \
# connman-plugin-resolvconf \
connman-plugin-udhcp \
connman-plugin-wifi \
diff --git a/recipes/tasks/task-fso2-compliance.bb b/recipes/tasks/task-fso2-compliance.bb
index 0ab234dc5d..063088d4e8 100644
--- a/recipes/tasks/task-fso2-compliance.bb
+++ b/recipes/tasks/task-fso2-compliance.bb
@@ -3,12 +3,14 @@ Install this task to make your distribution FSO 2.0-compliant."
SECTION = "fso/base"
LICENSE = "MIT"
PV = "1.9.0"
-PR = "r1"
+PR = "r3"
inherit task
RDEPENDS_${PN} = "\
dbus-hlid \
+# TODO: remove when fso2 is finished
+ frameworkd \
\
libfsobasics \
libfsotransport \
@@ -16,9 +18,9 @@ RDEPENDS_${PN} = "\
libfsoresource \
\
fsodeviced \
- fsogsmd \
+# fsogsmd \
fsonetworkd \
- fsotimed \
+# fsotimed \
fsousaged \
\
fso-alsa-data \
@@ -43,9 +45,10 @@ RDEPENDS_${PN} = "\
RRECOMMENDS_${PN} = "\
fso-abyss \
wmiconfig \
- \
-# tzdata \
-# tzdata-americas \
-# tzdata-asia \
-# tzdata-europe \
+ tzdata \
+ tzdata-africa \
+ tzdata-americas \
+ tzdata-asia \
+ tzdata-australia \
+ tzdata-europe \
"
diff --git a/recipes/tasks/task-shr-feed.bb b/recipes/tasks/task-shr-feed.bb
new file mode 100644
index 0000000000..4ec77cdc97
--- /dev/null
+++ b/recipes/tasks/task-shr-feed.bb
@@ -0,0 +1,260 @@
+DESCRIPTION = "SHR Feed"
+PR = "r26"
+PV = "1.0"
+LICENSE = "GPL"
+
+inherit task
+
+RDEPENDS_${PN} += "\
+ babiloo-efl \
+ di \
+ dictator \
+ dosbox \
+ enotes \
+ epdfview \
+ fbreader \
+ ffalarms \
+ gpe-calendar \
+ gpe-todo \
+ gpe-scap \
+ gpe-sketchbook \
+ gpe-filemanager \
+ gpe-gallery \
+ gpe-timesheet \
+ gpe-contacts \
+ gtkmm \
+ mc \
+ mplayer \
+ navit \
+ omview \
+ python-elementary \
+ pythm \
+ python-wifi \
+ openmoko-agpsui \
+ openvpn \
+# shr-config \
+ shr-today \
+ shr-theme-neo \
+ shr-theme-niebiee \
+ shr-theme-sixteen \
+# gry should be in image already
+# shr-theme-gry \
+ shr-splash \
+ shr-splash-theme-simple \
+ shr-splash-theme-dontpanic \
+ shr-splash-theme-handy \
+ vagalume \
+ x11vnc \
+
+ omoney \
+ pyphonelog \
+ pingus \
+ openmoocow \
+ python-pygame \
+ mokoko \
+ exhibit \
+ edje-viewer \
+# obexpush \
+# obexftp \
+ mtpaint \
+ telepathy-python \
+ intone-video \
+ ipkg-link \
+ ipkg-utils \
+ mysql \
+ fltk-chess \
+ remoko \
+ openbmap-logger \
+ pisi \
+ libnotify \
+ accelges \
+ ebrainy \
+ sms-sentry \
+ cellhunter \
+ dillo2 \
+ usbmode \
+ pyefl-sudoku \
+ tasks \
+ dates \
+ omnewrotate \
+ xchat \
+ python-pyid3lib \
+# libframeworkd-phonegui-efl2 \
+ intone \
+ vim \
+ vpnc \
+ emacs \
+ mcabber \
+ gdb \
+ oh-puzzles \
+ links-x11 \
+ e-wm-illume-dict-pl \
+ callrec \
+ midori \
+ numptyphysics \
+ pidgin \
+ libpurple-protocol-msn \
+ libpurple-protocol-icq \
+ vagalume \
+ ppp \
+# bluez-hcidump \
+ kbdd \
+ kexec-tools \
+ claws-mail \
+ claws-plugin-mailmbox \
+# claws-plugin-gtkhtml2-viewer \
+ claws-plugin-rssyl \
+ mc \
+ iotop \
+ xprop \
+ xev \
+ xwininfo \
+ tcpdump \
+ lsof \
+ zsh \
+ gzip \
+ zip \
+ microcom \
+ minicom \
+ leafpad \
+ abiword \
+ aspell \
+ enchant \
+ joe \
+ nano \
+ ntpclient \
+ ntp \
+ tor \
+ vnc \
+# gpsdrive \
+ wxwidgets \
+ x11vnc \
+ xf86-video-glamo \
+# libswt3.4-gtk-java \
+ cacao \
+# jamvm \
+ dbus-x11 \
+# bluez-utils-alsa \
+ xournal \
+# evince \
+# asterisk \
+ git \
+ ruby \
+ orrery \
+ synergy \
+ irssi \
+ zhone \
+ paroli \
+ cu \
+ net-tools \
+ iproute2 \
+ iputils \
+ i2c-tools \
+ psmisc \
+ debianutils \
+ tcptraceroute \
+ task-proper-tools \
+ wmiconfig \
+ netkit-telnet \
+ bind-utils \
+ bubble-keyboard \
+ intuition \
+ gridpad \
+# essential-dialer \
+ font-adobe-100dpi \
+ font-adobe-75dpi \
+ font-adobe-utopia-100dpi \
+ font-adobe-utopia-75dpi \
+# font-adobe-utopia-type1 \
+ font-arabic-misc \
+ font-bh-100dpi \
+ font-bh-75dpi \
+ font-bh-lucidatypewriter-100dpi \
+ font-bh-lucidatypewriter-75dpi \
+# font-bh-ttf \
+# font-bh-type1 \
+ font-bitstream-100dpi \
+ font-bitstream-75dpi \
+ font-bitstream-speedo \
+# font-bitstream-type1 \
+ font-cronyx-cyrillic \
+ font-cursor-misc \
+ font-daewoo-misc \
+ font-dec-misc \
+# font-ibm-type1 \
+ font-isas-misc \
+ font-jis-misc \
+ font-micro-misc \
+ font-misc-cyrillic \
+# font-misc-ethiopic \
+# font-misc-meltho \
+ font-misc-misc \
+ font-mutt-misc \
+ font-schumacher-misc \
+ font-screen-cyrillic \
+ font-sony-misc \
+ font-sun-misc \
+ font-winitzki-cyrillic \
+# font-xfree86-type1 \
+# msn-pecan \
+ qwo \
+ fso-apm \
+ fso-abyss \
+ fsousaged \
+ fsodeviced \
+ fsonetworkd \
+ fsotimed \
+ opimd-utils \
+ omgps \
+ shr-launcher \
+ e-tasks \
+ elmdentica \
+ shr-installer \
+ eject \
+ illume-keyboard-german \
+ illume-keyboard-arabic \
+ illume-keyboard-browse \
+ illume-keyboard-danish \
+ illume-keyboard-default-alt \
+ illume-keyboard-dutch \
+ illume-keyboard-dvorak \
+ illume-keyboard-french \
+ illume-keyboard-hebrew \
+ illume-keyboard-numeric-alt \
+ illume-keyboard-russian-terminal \
+ illume-keyboard-russian \
+ python-xlib \
+ xcompmgr \
+ man \
+ man-pages \
+ aceofpenguins-launcher \
+ om-neon \
+ ipython \
+ phoneme-advanced-foundation \
+ eve \
+# python-pybluez \
+ x11perf \
+ pyring \
+ bt-configure \
+ bt-gps \
+ advancedcaching \
+ glamo-dri-tests \
+ reiserfsprogs \
+ blipomoko \
+ imagemagick \
+ xboard \
+ sox \
+ mpg123 \
+ zile \
+ speex \
+ fltkclock \
+ fltkhackdiet \
+ fltkwwpointcal \
+ transmission \
+ xf86-input-tslib \
+ fltkcocktailbar \
+ fltkcurrency \
+ mokoeightball \
+ babiloo-efl \
+ make \
+"
diff --git a/recipes/tasks/task-shr-minimal.bb b/recipes/tasks/task-shr-minimal.bb
new file mode 100644
index 0000000000..1507ded9da
--- /dev/null
+++ b/recipes/tasks/task-shr-minimal.bb
@@ -0,0 +1,151 @@
+DESCRIPTION = "SHR Lite Image Feed"
+PR = "r17"
+PV = "2.0"
+LICENSE = "GPL"
+
+inherit task
+
+def get_rdepends(bb, d):
+ enabled = bb.data.getVar("ENABLE_BINARY_LOCALE_GENERATION", d, 1)
+
+ # If locale is disabled, bail out
+ if not enabled:
+ return
+
+ locales = bb.data.getVar("GLIBC_GENERATE_LOCALES", d, 1)
+ if not locales or locales == "all":
+ locales = bb.data.getVar("IMAGE_LINGUAS", d, 1);
+
+ libc = bb.data.getVar('LIBC', d, 1)
+ import re
+
+ rdepends = ""
+ if not locales or locales == "all":
+ # if locales aren't specified, or user has written "all"
+ import os
+ ipkdir = bb.data.getVar('DEPLOY_DIR_IPK', d, 1)
+
+ regexp1 = re.compile(libc+"-binary-localedata-.*") # search pattern
+ regexp2 = re.compile("_.*") # we want to remove all version info and file extension
+
+ for root, subFolders, files in os.walk(ipkdir):
+ for file in files:
+ if regexp1.search(file):
+ file = regexp2.sub("", file)
+ rdepends = "%s %s" % (rdepends, file)
+
+ else:
+ # if locales are specified
+ regexp1 = re.compile("\\..*") # We want to turn en_US.UTF-8 into en_US
+ regexp2 = re.compile("_") # We want to turn en_US into en-US
+
+
+ for locale in locales.split(" "):
+ locale = regexp1.sub("", locale)
+ locale = regexp2.sub("-", locale)
+ locale = str.lower(locale)
+ rdepends = "%s %s-binary-localedata-%s" % (rdepends, libc, locale)
+ return rdepends
+
+
+
+
+PACKAGES += "\
+ ${PN}-base \
+ ${PN}-cli \
+ ${PN}-fso \
+ ${PN}-audio \
+ ${PN}-x \
+ ${PN}-apps \
+ ${PN}-gtk \
+"
+
+
+
+RDEPENDS_${PN}-base = "\
+ netbase \
+ sysfsutils \
+ modutils-initscripts \
+ module-init-tools-depmod \
+ rsync \
+ screen \
+ fbset \
+ fbset-modes \
+ openssh-sftp-server \
+ cron \
+ logrotate\
+ util-linux-ng-fdisk \
+ shr-splash \
+"
+
+RDEPENDS_${PN}-cli = "\
+ screen \
+ nano \
+ iptables \
+ mtd-utils \
+ s3c24xx-gpio \
+ mickeydbus \
+ mickeyterm \
+"
+
+RDEPENDS_${PN}-fso = "\
+ fsoraw \
+ opimd-utils-cli \
+ python-codecs \
+ python-gst \
+"
+
+
+#FIXME: libcanberra-alsa should be pulled in by fsodeviced but isn't
+RDEPENDS_${PN}-audio = "\
+ alsa-utils-aplay \
+ alsa-utils-amixer \
+ libcanberra-alsa \
+"
+
+RDEPENDS_${PN}-audio_append_om-gta01 = "\
+ alsa-scenarii-shr \
+"
+
+RDEPENDS_${PN}-audio_append_om-gta02 = "\
+ alsa-scenarii-shr \
+"
+
+RDEPENDS_${PN}-x = "\
+ glibc-utils \
+ glibc-charmap-utf-8 \
+ e-wm-menu-shr \
+ shr-theme-gry \
+ etk-theme-shr \
+ ${@get_rdepends(bb, d)} \
+ libx11-locale \
+ libmokoui2 \
+ xcursor-transparent-theme \
+"
+
+RDEPENDS_${PN}-apps = "\
+ fso-abyss \
+ phoneui-apps-messages \
+ phoneui-apps-contacts \
+ phoneui-apps-dialer \
+ phonefsod \
+ phoneuid \
+ libphone-ui \
+ libphone-ui-shr \
+ ffalarms \
+ shr-settings \
+ shr-theme \
+ shr-today \
+ calc \
+"
+
+
+RDEPENDS_${PN}-gtk = "\
+ openmoko-icon-theme-standard2 \
+ shr-theme-gtk-e17lookalike \
+ vala-terminal \
+ tangogps \
+ pyphonelog \
+ matchbox-keyboard-im \
+"
+
diff --git a/recipes/tasks/task-shr.bb b/recipes/tasks/task-shr.bb
new file mode 100644
index 0000000000..25e1b170c3
--- /dev/null
+++ b/recipes/tasks/task-shr.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "SHR Fat Image Feed"
+PR = "r3"
+PV = "2.0"
+LICENSE = "GPL"
+
+inherit task
+
+PACKAGES = "\
+ ${PN}-gtk \
+ ${PN}-apps \
+ ${PN}-games \
+"
+
+RDEPENDS_${PN}-gtk = "\
+ gpe-scap \
+ pidgin \
+ libpurple-protocol-msn \
+ libpurple-protocol-icq \
+ vagalume \
+ gpe-sketchbook \
+"
+
+RDEPENDS_${PN}-apps += "\
+ task-shr-minimal-apps \
+ opimd-utils-notes \
+ mokonnect \
+ midori \
+ intone \
+"
+
+RDEPENDS_${PN}-games += "\
+ mokomaze \
+ numptyphysics \
+"
+
diff --git a/recipes/tasks/task-x11-illume.bb b/recipes/tasks/task-x11-illume.bb
index 8b813b4ebb..9af914f3e0 100644
--- a/recipes/tasks/task-x11-illume.bb
+++ b/recipes/tasks/task-x11-illume.bb
@@ -10,6 +10,7 @@ inherit task
# Default illume theme
ILLUME_THEME ?= "e-wm-theme-illume"
+ILLUME_CONFIG ?= "e-wm-config-illume"
RDEPENDS_${PN} = "\
task-x11-server \
@@ -17,6 +18,6 @@ RDEPENDS_${PN} = "\
# xserver-kdrive-splash-illume \
\
e-wm \
- e-wm-config-illume \
+ ${ILLUME_CONFIG} \
${ILLUME_THEME} \
"
diff --git a/recipes/tcltk/files/tcl-add-soname.patch b/recipes/tcltk/files/tcl-add-soname.patch
index 951244327b..38762644cd 100644
--- a/recipes/tcltk/files/tcl-add-soname.patch
+++ b/recipes/tcltk/files/tcl-add-soname.patch
@@ -1,14 +1,19 @@
-Patch by Chris Waters removes -rpath from search flags and adds -soname
-to library build options.
-
---- tcl8.4-8.4.19.orig/unix/configure
-+++ tcl8.4-8.4.19/unix/configure
-@@ -3072,12 +3072,15 @@
+--- clean/tcl8.4.19/unix/configure 2008-04-17 21:29:49.000000000 +0100
++++ tcl8.4.19/unix/configure 2009-11-13 11:46:36.000000000 +0000
+@@ -3065,6 +3065,7 @@
+ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LD_LIBS='${LIBS}'
+ SHLIB_SUFFIX=".so"
++ SHARED_LIB_SUFFIX='${VERSION}\$\{DBGX\}.so.0'
+
+ CFLAGS_OPTIMIZE=-O2
+ # egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings
+@@ -3072,12 +3073,15 @@
# get rid of the warnings.
#CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
+ # following line added by CW for Debian GNU/Linux
-+ TCL_SHLIB_LD_EXTRAS="-Wl,-soname,\${TCL_LIB_FILE}.0"
++ TCL_SHLIB_LD_EXTRAS="-Wl,-soname,\${TCL_LIB_FILE}"
+
if test "$have_dl" = yes; then
SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}'
@@ -20,9 +25,26 @@ to library build options.
LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
else
ac_safe=`echo "dld.h" | sed 'y%./+-%__p_%'`
---- tcl8.4-8.4.19.orig/unix/tcl.m4
-+++ tcl8.4-8.4.19/unix/tcl.m4
-@@ -1346,12 +1346,15 @@
+@@ -4299,7 +4303,7 @@
+
+ if test "${SHARED_BUILD}" = "1" && test "${SHLIB_SUFFIX}" != "" ; then
+ LIB_SUFFIX=${SHARED_LIB_SUFFIX}
+- MAKE_LIB='${SHLIB_LD} -o $@ ${OBJS} ${SHLIB_LD_LIBS} ${TCL_SHLIB_LD_EXTRAS} ${TK_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS}'
++ MAKE_LIB='${SHLIB_LD} -o $@ ${OBJS} ${SHLIB_LD_LIBS} ${TCL_SHLIB_LD_EXTRAS} ${TK_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS} ; ln -s $(LIB_FILE) `basename $(LIB_FILE) .so.0`\${SHLIB_SUFFIX}'
+ INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) $(LIB_INSTALL_DIR)/$(LIB_FILE)'
+ else
+ LIB_SUFFIX=${UNSHARED_LIB_SUFFIX}
+--- clean/tcl8.4.19/unix/tcl.m4 2008-04-17 21:29:49.000000000 +0100
++++ tcl8.4.19/unix/tcl.m4 2009-11-13 11:53:57.000000000 +0000
+@@ -1337,6 +1337,7 @@
+ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LD_LIBS='${LIBS}'
+ SHLIB_SUFFIX=".so"
++ SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.0'
+
+ CFLAGS_OPTIMIZE=-O2
+ # egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings
+@@ -1344,12 +1345,15 @@
# get rid of the warnings.
#CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
@@ -39,3 +61,12 @@ to library build options.
LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
else
AC_CHECK_HEADER(dld.h, [
+@@ -2117,7 +2121,7 @@
+
+ if test "${SHARED_BUILD}" = "1" && test "${SHLIB_SUFFIX}" != "" ; then
+ LIB_SUFFIX=${SHARED_LIB_SUFFIX}
+- MAKE_LIB='${SHLIB_LD} -o [$]@ ${OBJS} ${SHLIB_LD_LIBS} ${TCL_SHLIB_LD_EXTRAS} ${TK_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS}'
++ MAKE_LIB='${SHLIB_LD} -o $@ ${OBJS} ${SHLIB_LD_LIBS} ${TCL_SHLIB_LD_EXTRAS} ${TK_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS} ; ln -s $(LIB_FILE) `basename $(LIB_FILE) .so.0`\${SHLIB_SUFFIX}'
+ INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) $(LIB_INSTALL_DIR)/$(LIB_FILE)'
+ else
+ LIB_SUFFIX=${UNSHARED_LIB_SUFFIX}
diff --git a/recipes/tcltk/tcl-native_8.4.19.bb b/recipes/tcltk/tcl-native_8.4.19.bb
index a2d5efae42..ca8ab612fd 100644
--- a/recipes/tcltk/tcl-native_8.4.19.bb
+++ b/recipes/tcltk/tcl-native_8.4.19.bb
@@ -9,7 +9,7 @@ do_stage() {
install -d ${STAGING_BINDIR}/
install -m 0755 tclConfig.sh ${STAGING_BINDIR}
install -m 0755 tclsh ${STAGING_BINDIR}/tclsh8.4
- ln -s tclsh8.4 ${STAGING_BINDIR}/tclsh
+ ln -s -f tclsh8.4 ${STAGING_BINDIR}/tclsh
cd ..
for dir in compat generic unix
do
diff --git a/recipes/tcltk/tcl_8.4.19.bb b/recipes/tcltk/tcl_8.4.19.bb
index e70a2c861c..dc71db9c72 100644
--- a/recipes/tcltk/tcl_8.4.19.bb
+++ b/recipes/tcltk/tcl_8.4.19.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Tool Command Language"
LICENSE = "tcl"
SECTION = "devel/tcltk"
HOMEPAGE = "http://tcl.sourceforge.net"
-PR = "r2"
+PR = "r3"
SRC_URI = "\
${SOURCEFORGE_MIRROR}/tcl/tcl${PV}-src.tar.gz \
@@ -44,8 +44,6 @@ do_stage() {
do_install() {
autotools_do_install
- mv libtcl8.4.so libtcl8.4.so.0
- oe_libinstall -so libtcl8.4 ${D}${libdir}
ln -sf ./tclsh8.4 ${D}${bindir}/tclsh
}
diff --git a/recipes/texi2html/texi2html_1.82.bb b/recipes/texi2html/texi2html_1.82.bb
new file mode 100644
index 0000000000..35045d9c34
--- /dev/null
+++ b/recipes/texi2html/texi2html_1.82.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Perl script that converts Texinfo to HTML"
+HOMEPAGE = "http://www.nongnu.org/texi2html/"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+SRC_URI = "http://download.savannah.gnu.org/releases/texi2html/${P}.tar.bz2"
+
+PR = "r0"
+
+inherit autotools
+
+EXTRA_OECONF = "PERL=/usr/bin/perl"
+
diff --git a/recipes/ti/bitblit_svn.bb b/recipes/ti/bitblit_svn.bb
index dc3722c008..f813b31f06 100644
--- a/recipes/ti/bitblit_svn.bb
+++ b/recipes/ti/bitblit_svn.bb
@@ -13,7 +13,7 @@ SRC_URI = "svn://gforge.ti.com/svn/${PN};module=trunk;proto=https;user=anonymous
"
# Again, no '.' in PWD allowed :(
-PV = "0+svnr${SRCREV}"
+PV = "0+svnr${SRCPV}"
PR = "r1"
S = "${WORKDIR}/trunk/bitblit"
diff --git a/recipes/ti/ti-dmai.inc b/recipes/ti/ti-dmai.inc
index e93e9975b5..3aafd47cf1 100644
--- a/recipes/ti/ti-dmai.inc
+++ b/recipes/ti/ti-dmai.inc
@@ -2,12 +2,11 @@ DESCRIPTION = "DMAI for TI ARM/DSP processors"
# NOTE: Use Brijesh' DMAI development branch. The URL *must* be updated once
# we have stable DMAI 2.x on gforge.
-SRCREV = "265"
+SRCREV = "342"
SRC_URI = "svn://gforge.ti.com/svn/dmai/branches;module=BRANCH_BRIJESH_DMAI_DEV_2_xx;proto=https;user=anonymous;pswd='' \
file://loadmodules-ti-dmai-dm355_al.sh \
file://loadmodules-ti-dmai-dm6446_al.sh \
file://loadmodules-ti-dmai-o3530_al.sh \
- file://touchbook-support.patch;patch=1 \
"
S = "${WORKDIR}/BRANCH_BRIJESH_DMAI_DEV_2_xx/davinci_multimedia_application_interface"
diff --git a/recipes/tinymail/libtinymail_svn.bb b/recipes/tinymail/libtinymail_svn.bb
index 06cc447af5..1aa7931206 100644
--- a/recipes/tinymail/libtinymail_svn.bb
+++ b/recipes/tinymail/libtinymail_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "TinyMail is an attempt to create an E-mail framework for mobile d
SECTION = "x11/utils"
LICENSE = "LGPL"
DEPENDS = "gtk+ glib-2.0 gnome-vfs gconf libgnomeui"
-PV = "0.0.5+svnr${SRCREV}"
+PV = "0.0.5+svnr${SRCPV}"
PR = "r4"
DEFAULT_PREFERENCE = "-1"
diff --git a/recipes/tinymail/tmut_svn.bb b/recipes/tinymail/tmut_svn.bb
index 11fcb0a1f0..2eb7b8d69d 100644
--- a/recipes/tinymail/tmut_svn.bb
+++ b/recipes/tinymail/tmut_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Tmut is a really small E-Mail client based on Tinymail"
SECTION = "x11/utils"
LICENSE = "LGPL"
DEPENDS = "gtk+ glib-2.0 gnome-vfs gconf libtinymail"
-PV = "0.0.0+svnr${SRCREV}"
+PV = "0.0.0+svnr${SRCPV}"
PR = "r3"
DEFAULT_PREFERENCE = "-1"
diff --git a/recipes/totem/totem_2.28.1.bb b/recipes/totem/totem_2.28.1.bb
index 35b077c025..98f47ca43e 100644
--- a/recipes/totem/totem_2.28.1.bb
+++ b/recipes/totem/totem_2.28.1.bb
@@ -6,7 +6,9 @@ DESCRIPTION = "A GTK2 based media player"
HOMEPAGE = "http://www.gnome.org/projects/totem/"
LICENSE = "GPL"
-DEPENDS = " libgdata totem-pl-parser gtk+ dbus bluez-libs libglade gconf libxml2 gst-ffmpeg gst-plugins-bad gst-plugins-base"
+PR = "r1"
+
+DEPENDS = " libunique libgdata totem-pl-parser gtk+ dbus bluez-libs libglade gconf libxml2 gst-ffmpeg gst-plugins-bad gst-plugins-base"
RDEPENDS_${PN} += "iso-codes"
RRECOMMENDS_${PN} += "gst-plugin-playbin \
gst-plugin-gconfelements \
@@ -40,7 +42,6 @@ EXTRA_OECONF=" --disable-schemas-install \
--enable-gstreamer \
--enable-browser-plugins \
--disable-run-in-source-tree \
- --disable-python \
--disable-vala \
--with-dbus \
"
diff --git a/recipes/tracker/tracker-0.6.95/05-tracker-ioprio-cross.patch b/recipes/tracker/tracker-0.6.95/05-tracker-ioprio-cross.patch
new file mode 100644
index 0000000000..c04c12536c
--- /dev/null
+++ b/recipes/tracker/tracker-0.6.95/05-tracker-ioprio-cross.patch
@@ -0,0 +1,64 @@
+From ae32c3902a1afe2f900ec5e42a1070c8c7fce83b Mon Sep 17 00:00:00 2001
+From: John Carr <john.carr@unrouted.co.uk>
+Date: Tue, 3 Nov 2009 01:18:26 +0000
+Subject: [PATCH 1/2] Add AC_CACHE_CHECK magic around ioprio checking.
+
+Having the cache check allows the end user to set whether ioprio
+is available or not. Without this cross-compilation is not
+possible as there is no way to run the test program.
+---
+ configure.ac | 24 +++++++++++-------------
+ 1 files changed, 11 insertions(+), 13 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 441b4b8..fca54b9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1164,17 +1164,15 @@ AM_CONDITIONAL(HAVE_LIBVORBIS, test "x$have_libvorbis" = "xyes")
+ # Check ioprio support
+ ####################################################################
+
+-AC_MSG_CHECKING([[ioprio support]])
+-have_ioprio=no
+-
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM([[
++AC_CACHE_CHECK([if we have ioprio],[tracker_cv_have_ioprio],
++ [AC_RUN_IFELSE(
++ [AC_LANG_PROGRAM([[
+ #include <stdlib.h>
+ #include <errno.h>
+ #include <sys/syscall.h>
+ #include <unistd.h>
+-]],
+-[[
++ ]],
++ [[
+ inline int ioprio_get (int which, int who)
+ {
+ return syscall (__NR_ioprio_get, which, who);
+@@ -1184,16 +1182,16 @@ AC_RUN_IFELSE(
+ {
+ return ioprio_get (1, 0);
+ }
+-]]
+-)],
+-[have_ioprio=yes],[])
++ ]])],
++ [tracker_cv_have_ioprio=yes],
++ [tracker_cv_have_ioprio=no],
++ [AC_MSG_ERROR([cross-compiling: please set 'tracker_cv_have_ioprio'])])
++ ])
+
+-if test "$have_ioprio" = "yes" ; then
++if test "x$tracker_cv_have_ioprio" = "xyes" ; then
+ AC_DEFINE(HAVE_IOPRIO, 1, [Define if we have ioprio])
+ fi
+
+-AC_MSG_RESULT([$have_ioprio])
+-
+ ##################################################################
+ # Check for exempi
+ ##################################################################
+--
+1.6.3.3
diff --git a/recipes/tracker/tracker-0.6.95/10-drop-bogus-version-info.patch b/recipes/tracker/tracker-0.6.95/10-drop-bogus-version-info.patch
new file mode 100644
index 0000000000..c7ddd9f7fa
--- /dev/null
+++ b/recipes/tracker/tracker-0.6.95/10-drop-bogus-version-info.patch
@@ -0,0 +1,73 @@
+Index: tracker-0.6.95/src/libstemmer/Makefile.am
+===================================================================
+--- tracker-0.6.95.orig/src/libstemmer/Makefile.am 2009-09-30 20:33:48.964218706 +0200
++++ tracker-0.6.95/src/libstemmer/Makefile.am 2009-09-30 20:34:29.120883357 +0200
+@@ -51,5 +51,5 @@
+
+ libstemmer_la_LIBADD = $(GCOV_LIBS)
+ libstemmer_la_LDFLAGS = \
+- -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
++ -version-info 0:0:0
+
+Index: tracker-0.6.95/src/libtracker-common/Makefile.am
+===================================================================
+--- tracker-0.6.95.orig/src/libtracker-common/Makefile.am 2009-09-30 20:33:49.094218792 +0200
++++ tracker-0.6.95/src/libtracker-common/Makefile.am 2009-09-30 20:34:29.120883357 +0200
+@@ -77,7 +77,7 @@
+ tracker-utils.h
+
+ libtracker_common_la_LDFLAGS = \
+- -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
++ -version-info 0:0:0
+
+ libtracker_common_la_LIBADD = \
+ $(top_builddir)/src/libstemmer/libstemmer.la \
+Index: tracker-0.6.95/src/libtracker-data/Makefile.am
+===================================================================
+--- tracker-0.6.95.orig/src/libtracker-data/Makefile.am 2009-09-30 20:33:49.020885421 +0200
++++ tracker-0.6.95/src/libtracker-data/Makefile.am 2009-09-30 20:34:29.120883357 +0200
+@@ -41,7 +41,7 @@
+ tracker-turtle.h
+
+ libtracker_data_la_LDFLAGS = \
+- -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
++ -version-info 0:0:0
+
+ libtracker_data_la_LIBADD = \
+ $(top_builddir)/src/libtracker-common/libtracker-common.la \
+Index: tracker-0.6.95/src/libtracker-db/Makefile.am
+===================================================================
+--- tracker-0.6.95.orig/src/libtracker-db/Makefile.am 2009-09-30 20:33:49.140887873 +0200
++++ tracker-0.6.95/src/libtracker-db/Makefile.am 2009-09-30 20:34:29.120883357 +0200
+@@ -38,7 +38,7 @@
+ tracker-db-manager.h
+
+ libtracker_db_la_LDFLAGS = \
+- -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
++ -version-info 0:0:0
+
+ libtracker_db_la_LIBADD = \
+ $(top_builddir)/src/libtracker-common/libtracker-common.la \
+Index: tracker-0.6.95/src/libtracker-gtk/Makefile.am
+===================================================================
+--- tracker-0.6.95.orig/src/libtracker-gtk/Makefile.am 2009-09-30 20:33:49.074220431 +0200
++++ tracker-0.6.95/src/libtracker-gtk/Makefile.am 2009-09-30 20:34:29.120883357 +0200
+@@ -31,4 +31,4 @@
+ $(GCOV_LIBS)
+
+ libtracker_gtk_la_LDFLAGS = \
+- -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
++ -version-info 0:0:0
+Index: tracker-0.6.95/src/libtracker/Makefile.am
+===================================================================
+--- tracker-0.6.95.orig/src/libtracker/Makefile.am 2009-09-30 20:33:49.164217943 +0200
++++ tracker-0.6.95/src/libtracker/Makefile.am 2009-09-30 20:34:29.120883357 +0200
+@@ -14,7 +14,7 @@
+ libtrackerclient_la_SOURCES = tracker.c
+
+ libtrackerclient_la_LDFLAGS = \
+- -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
++ -version-info 0:0:0
+
+ libtrackerclient_la_LIBADD = \
+ $(GLIB2_LIBS) \
diff --git a/recipes/tracker/tracker-0.6.95/20-tracker-defaults.patch b/recipes/tracker/tracker-0.6.95/20-tracker-defaults.patch
new file mode 100644
index 0000000000..3ea607332c
--- /dev/null
+++ b/recipes/tracker/tracker-0.6.95/20-tracker-defaults.patch
@@ -0,0 +1,30 @@
+Index: tracker-0.6.95/src/libtracker-common/tracker-config.c
+===================================================================
+--- tracker-0.6.95.orig/src/libtracker-common/tracker-config.c 2009-09-30 20:33:41.664220179 +0200
++++ tracker-0.6.95/src/libtracker-common/tracker-config.c 2009-09-30 20:34:33.990883559 +0200
+@@ -77,7 +77,7 @@
+ #define DEFAULT_LOW_MEMORY_MODE FALSE
+ #define DEFAULT_NFS_LOCKING FALSE
+ #define DEFAULT_ENABLE_WATCHES TRUE
+-#define DEFAULT_THROTTLE 0 /* 0->20 */
++#define DEFAULT_THROTTLE 10 /* 0->20 */
+ #define DEFAULT_ENABLE_INDEXING TRUE
+ #define DEFAULT_ENABLE_CONTENT_INDEXING TRUE
+ #define DEFAULT_ENABLE_THUMBNAILS TRUE
+@@ -757,6 +757,7 @@
+ gchar *language;
+ const gchar *watch_directory_roots[2] = { NULL, NULL };
+ const gchar *empty_string_list[] = { NULL };
++ const gchar * const disabled_modules[2] = { "evolution", NULL };
+
+ /* Get default values */
+ language = tracker_language_get_default_code ();
+@@ -867,7 +868,7 @@
+
+ if (overwrite || !g_key_file_has_key (key_file, GROUP_INDEXING, KEY_DISABLED_MODULES, NULL)) {
+ g_key_file_set_string_list (key_file, GROUP_INDEXING, KEY_DISABLED_MODULES,
+- empty_string_list, 0);
++ disabled_modules, 2);
+ g_key_file_set_comment (key_file, GROUP_INDEXING, KEY_DISABLED_MODULES,
+ " List of disabled modules (separator=;)\n"
+ " The modules that are indexed are kept in $prefix/lib/tracker/indexer-modules",
diff --git a/recipes/tracker/tracker-0.6.95/30-gmime-2.4.patch b/recipes/tracker/tracker-0.6.95/30-gmime-2.4.patch
new file mode 100644
index 0000000000..9068e9636a
--- /dev/null
+++ b/recipes/tracker/tracker-0.6.95/30-gmime-2.4.patch
@@ -0,0 +1,435 @@
+# Patch pulled from http://cvs.fedoraproject.org/viewvc/rpms/tracker/devel/
+# based on the patch in https://bugzilla.gnome.org/show_bug.cgi?id=564640
+Index: tracker/configure.ac
+===================================================================
+--- tracker.orig/configure.ac 2009-06-09 23:42:44.000000000 +0200
++++ tracker/configure.ac 2009-09-30 22:53:51.000000000 +0200
+@@ -132,7 +132,7 @@
+ GTK_REQUIRED=2.16.0
+ GLADE_REQUIRED=2.5
+ QDBM_REQUIRED=1.8
+-GMIME_REQUIRED=2.1.0
++GMIME_REQUIRED=2.4.0
+ LIBXML2_REQUIRED=0.6
+ LIBNOTIFY_REQUIRED=0.4.3
+ HAL_REQUIRED=0.5
+@@ -182,7 +182,7 @@
+ AC_SUBST(PANGO_LIBS)
+
+ # Check for GMime
+-PKG_CHECK_MODULES(GMIME, [gmime-2.0 >= $GMIME_REQUIRED])
++PKG_CHECK_MODULES(GMIME, [gmime-2.4 >= $GMIME_REQUIRED])
+ AC_SUBST(GMIME_CFLAGS)
+ AC_SUBST(GMIME_LIBS)
+
+Index: tracker/src/tracker-indexer/modules/evolution-common.c
+===================================================================
+--- tracker.orig/src/tracker-indexer/modules/evolution-common.c 2009-05-22 23:31:58.000000000 +0200
++++ tracker/src/tracker-indexer/modules/evolution-common.c 2009-09-30 22:53:51.000000000 +0200
+@@ -89,41 +89,3 @@
+ return metadata;
+ }
+
+-gchar *
+-evolution_common_get_object_encoding (GMimeObject *object)
+-{
+- const gchar *start_encoding, *end_encoding;
+- const gchar *content_type = NULL;
+-
+- if (GMIME_IS_MESSAGE (object)) {
+- content_type = g_mime_message_get_header (GMIME_MESSAGE (object), "Content-Type");
+- } else if (GMIME_IS_PART (object)) {
+- content_type = g_mime_part_get_content_header (GMIME_PART (object), "Content-Type");
+- }
+-
+- if (!content_type) {
+- return NULL;
+- }
+-
+- start_encoding = strstr (content_type, "charset=");
+-
+- if (!start_encoding) {
+- return NULL;
+- }
+-
+- start_encoding += strlen ("charset=");
+-
+- if (start_encoding[0] == '"') {
+- /* encoding is quoted */
+- start_encoding++;
+- end_encoding = strstr (start_encoding, "\"");
+- } else {
+- end_encoding = strstr (start_encoding, ";");
+- }
+-
+- if (end_encoding) {
+- return g_strndup (start_encoding, end_encoding - start_encoding);
+- } else {
+- return g_strdup (start_encoding);
+- }
+-}
+Index: tracker/src/tracker-indexer/modules/evolution-common.h
+===================================================================
+--- tracker.orig/src/tracker-indexer/modules/evolution-common.h 2009-05-22 23:31:58.000000000 +0200
++++ tracker/src/tracker-indexer/modules/evolution-common.h 2009-09-30 22:53:51.000000000 +0200
+@@ -55,7 +55,6 @@
+ gint flags,
+ off_t start);
+ TrackerModuleMetadata * evolution_common_get_wrapper_metadata (GMimeDataWrapper *wrapper);
+-gchar * evolution_common_get_object_encoding (GMimeObject *object);
+
+ G_END_DECLS
+
+Index: tracker/src/tracker-indexer/modules/evolution-imap.c
+===================================================================
+--- tracker.orig/src/tracker-indexer/modules/evolution-imap.c 2009-06-09 23:42:49.000000000 +0200
++++ tracker/src/tracker-indexer/modules/evolution-imap.c 2009-09-30 22:53:51.000000000 +0200
+@@ -557,7 +557,7 @@
+ static gboolean
+ get_attachment_info (const gchar *mime_file,
+ gchar **name,
+- GMimePartEncodingType *encoding)
++ GMimeContentEncoding *encoding)
+ {
+ GMimeContentType *mime;
+ gchar *tmp, *mime_content;
+@@ -568,7 +568,7 @@
+ }
+
+ if (encoding) {
+- *encoding = GMIME_PART_ENCODING_DEFAULT;
++ *encoding = GMIME_CONTENT_ENCODING_DEFAULT;
+ }
+
+ if (!g_file_get_contents (mime_file, &tmp, NULL, NULL)) {
+@@ -615,7 +615,7 @@
+ *name = g_strdup (g_mime_content_type_get_parameter (mime, "name"));
+ }
+
+- g_mime_content_type_destroy (mime);
++ g_object_unref (mime);
+ }
+
+ if (name && !*name) {
+@@ -637,17 +637,17 @@
+ gchar *encoding_str = g_strndup (pos_encoding, pos_end_encoding - pos_encoding);
+
+ if (strcmp (encoding_str, "7bit") == 0) {
+- *encoding = GMIME_PART_ENCODING_7BIT;
++ *encoding = GMIME_CONTENT_ENCODING_7BIT;
+ } else if (strcmp (encoding_str, "8bit") == 0) {
+- *encoding = GMIME_PART_ENCODING_7BIT;
++ *encoding = GMIME_CONTENT_ENCODING_8BIT;
+ } else if (strcmp (encoding_str, "binary") == 0) {
+- *encoding = GMIME_PART_ENCODING_BINARY;
++ *encoding = GMIME_CONTENT_ENCODING_BINARY;
+ } else if (strcmp (encoding_str, "base64") == 0) {
+- *encoding = GMIME_PART_ENCODING_BASE64;
++ *encoding = GMIME_CONTENT_ENCODING_BASE64;
+ } else if (strcmp (encoding_str, "quoted-printable") == 0) {
+- *encoding = GMIME_PART_ENCODING_QUOTEDPRINTABLE;
++ *encoding = GMIME_CONTENT_ENCODING_QUOTEDPRINTABLE;
+ } else if (strcmp (encoding_str, "x-uuencode") == 0) {
+- *encoding = GMIME_PART_ENCODING_UUENCODE;
++ *encoding = GMIME_CONTENT_ENCODING_UUENCODE;
+ }
+
+ g_free (encoding_str);
+@@ -734,14 +734,17 @@
+ }
+
+ static void
+-extract_message_text (GMimeObject *object,
++extract_message_text (GMimeObject *parent,
++ GMimeObject *object,
+ gpointer user_data)
+ {
+ GString *body = (GString *) user_data;
+- GMimePartEncodingType part_encoding;
++ GMimeContentEncoding part_encoding;
+ GMimePart *part;
+- const gchar *content, *disposition, *filename;
+- gchar *encoding, *part_body;
++ GMimeStream *stream;
++ GMimeDataWrapper *data;
++ const gchar *disposition, *filename, *encoding;
++ gchar *part_body, buffer[1024];
+ gsize len;
+
+ if (GMIME_IS_MESSAGE_PART (object)) {
+@@ -750,7 +753,7 @@
+ message = g_mime_message_part_get_message (GMIME_MESSAGE_PART (object));
+
+ if (message) {
+- g_mime_message_foreach_part (message, extract_message_text, user_data);
++ g_mime_message_foreach (message, extract_message_text, user_data);
+ g_object_unref (message);
+ }
+
+@@ -762,12 +765,12 @@
+
+ part = GMIME_PART (object);
+ filename = g_mime_part_get_filename (part);
+- disposition = g_mime_part_get_content_disposition (part);
+- part_encoding = g_mime_part_get_encoding (part);
++ disposition = g_mime_object_get_disposition (GMIME_OBJECT (part));
++ part_encoding = g_mime_part_get_content_encoding (part);
+
+- if (part_encoding == GMIME_PART_ENCODING_BINARY ||
+- part_encoding == GMIME_PART_ENCODING_BASE64 ||
+- part_encoding == GMIME_PART_ENCODING_UUENCODE) {
++ if (part_encoding == GMIME_CONTENT_ENCODING_BINARY ||
++ part_encoding == GMIME_CONTENT_ENCODING_BASE64 ||
++ part_encoding == GMIME_CONTENT_ENCODING_UUENCODE) {
+ return;
+ }
+
+@@ -782,31 +785,34 @@
+ return;
+ }
+
+- content = g_mime_part_get_content (GMIME_PART (object), &len);
++ data = g_mime_part_get_content_object (GMIME_PART (object));
+
+- if (!content) {
+- return;
+- }
++ if (!data)
++ return;
+
+- if (g_utf8_validate (content, len, NULL)) {
+- g_string_append_len (body, content, (gssize) len);
+- return;
+- }
++ stream = g_mime_data_wrapper_get_stream (data);
+
+- encoding = evolution_common_get_object_encoding (object);
++ if (!stream) {
++ g_object_unref (data);
++ return;
++ }
+
+- if (!encoding) {
+- /* FIXME: This will break for non-utf8 text without
+- * the proper content type set
+- */
+- g_string_append_len (body, content, (gssize) len);
+- } else {
+- part_body = g_convert (content, (gssize) len, "utf8", encoding, NULL, NULL, NULL);
+- g_string_append (body, part_body);
++ encoding = g_mime_object_get_content_disposition_parameter (GMIME_OBJECT (part), "charset");
+
+- g_free (part_body);
+- g_free (encoding);
+- }
++ while (!g_mime_stream_eos (stream)) {
++ len = g_mime_stream_read (stream, buffer, 1024);
++ if (len > 0 && g_utf8_validate (buffer, len, NULL)) {
++ if (!encoding)
++ g_string_append_len (body, buffer, (gssize) len);
++ else {
++ part_body = g_convert (buffer, (gssize) len, "utf8", encoding, NULL, NULL, NULL);
++ g_string_append (body, part_body);
++ g_free (part_body);
++ }
++ }
++ }
++
++ g_object_unref (stream);
+ }
+
+ static gchar *
+@@ -846,7 +852,7 @@
+
+ if (message) {
+ body = g_string_new (NULL);
+- g_mime_message_foreach_part (message, extract_message_text, body);
++ g_mime_message_foreach (message, extract_message_text, body);
+ g_object_unref (message);
+ }
+
+@@ -1030,7 +1036,7 @@
+ TrackerModuleMetadata *metadata;
+ GMimeStream *stream;
+ GMimeDataWrapper *wrapper;
+- GMimePartEncodingType encoding;
++ GMimeContentEncoding encoding;
+ gchar *path, *name;
+
+ if (!get_attachment_info (mime_file, &name, &encoding)) {
+Index: tracker/src/tracker-indexer/modules/evolution-pop.c
+===================================================================
+--- tracker.orig/src/tracker-indexer/modules/evolution-pop.c 2009-05-22 23:31:58.000000000 +0200
++++ tracker/src/tracker-indexer/modules/evolution-pop.c 2009-09-30 22:53:51.000000000 +0200
+@@ -175,7 +175,7 @@
+ gchar *number;
+ gint id;
+
+- header = g_mime_message_get_header (message, "X-Evolution");
++ header = g_mime_object_get_header (GMIME_OBJECT (message), "X-Evolution");
+
+ if (!header) {
+ return -1;
+@@ -253,8 +253,12 @@
+ tracker_evolution_pop_file_get_text (TrackerModuleFile *file)
+ {
+ TrackerEvolutionPopFile *self;
+- gchar *text, *encoding, *utf8_text;
+- gboolean is_html;
++ const gchar *encoding;
++ gchar buffer[1024];
++ guint len;
++ GString *body;
++ GMimeStream *stream;
++ GMimeDataWrapper *data;
+
+ self = TRACKER_EVOLUTION_POP_FILE (file);
+
+@@ -263,27 +267,38 @@
+ return NULL;
+ }
+
+- text = g_mime_message_get_body (self->message, TRUE, &is_html);
++ data = g_mime_part_get_content_object (GMIME_PART (self->message));
+
+- if (!text) {
+- return NULL;
+- }
++ if (!data)
++ return NULL;
+
+- encoding = evolution_common_get_object_encoding (GMIME_OBJECT (self->message));
++ stream = g_mime_data_wrapper_get_stream (data);
+
+- if (!encoding) {
+- /* FIXME: could still puke on non-utf8
+- * messages without proper content type
+- */
+- return text;
+- }
++ if (!stream) {
++ g_object_unref (data);
++ return NULL;
++ }
+
+- utf8_text = g_convert (text, -1, "utf8", encoding, NULL, NULL, NULL);
++ body = g_string_new ("");
+
+- g_free (encoding);
+- g_free (text);
++ encoding = g_mime_object_get_content_disposition_parameter (GMIME_OBJECT (self->message), "charset");
+
+- return utf8_text;
++ while (!g_mime_stream_eos (stream)) {
++ len = g_mime_stream_read (stream, buffer, 1024);
++ if (len > 0 && g_utf8_validate (buffer, len, NULL)) {
++ if (!encoding)
++ g_string_append_len (body, buffer, (gssize) len);
++ else {
++ gchar *part_body = g_convert (buffer, (gssize) len, "utf8", encoding, NULL, NULL, NULL);
++ g_string_append (body, part_body);
++ g_free (part_body);
++ }
++ }
++ }
++
++ g_object_unref (stream);
++
++ return g_string_free (body, FALSE);
+ }
+
+ static guint
+@@ -291,7 +306,7 @@
+ {
+ const gchar *header, *pos;
+
+- header = g_mime_message_get_header (message, "X-Evolution");
++ header = g_mime_object_get_header (GMIME_OBJECT (message), "X-Evolution");
+
+ if (!header) {
+ return 0;
+@@ -304,34 +319,24 @@
+
+ static GList *
+ get_message_recipients (GMimeMessage *message,
+- const gchar *type)
++ GMimeRecipientType type)
+ {
+ GList *list = NULL;
+- const InternetAddressList *addresses;
++ InternetAddressList *addresses;
++ guint len, i;
+
+ addresses = g_mime_message_get_recipients (message, type);
+
+- while (addresses) {
++ len = internet_address_list_length (addresses);
++
++ while (i < len) {
+ InternetAddress *address;
+- gchar *str;
+
+- address = addresses->address;
++ address = internet_address_list_get_address (addresses, i);
+
+- if (address->name && address->value.addr) {
+- str = g_strdup_printf ("%s %s", address->name, address->value.addr);
+- } else if (address->value.addr) {
+- str = g_strdup (address->value.addr);
+- } else if (address->name) {
+- str = g_strdup (address->name);
+- } else {
+- str = NULL;
+- }
+-
+- if (str) {
+- list = g_list_prepend (list, str);
+- }
++ list = g_list_prepend (list, internet_address_to_string (address, TRUE));
+
+- addresses = addresses->next;
++ i++;
+ }
+
+ return g_list_reverse (list);
+@@ -427,7 +432,8 @@
+ }
+
+ static void
+-extract_mime_parts (GMimeObject *object,
++extract_mime_parts (GMimeObject *parent,
++ GMimeObject *object,
+ gpointer user_data)
+ {
+ GList **list = (GList **) user_data;
+@@ -440,7 +446,7 @@
+ message = g_mime_message_part_get_message (GMIME_MESSAGE_PART (object));
+
+ if (message) {
+- g_mime_message_foreach_part (message, extract_mime_parts, user_data);
++ g_mime_message_foreach (message, extract_mime_parts, user_data);
+ g_object_unref (message);
+ }
+
+@@ -451,7 +457,7 @@
+ }
+
+ part = GMIME_PART (object);
+- disposition = g_mime_part_get_content_disposition (part);
++ disposition = g_mime_object_get_disposition (GMIME_OBJECT (part));
+
+ if (!disposition ||
+ (strcmp (disposition, GMIME_DISPOSITION_ATTACHMENT) != 0 &&
+@@ -484,9 +490,9 @@
+ if (self->message) {
+ /* Iterate through mime parts, if any */
+ if (!self->mime_parts) {
+- g_mime_message_foreach_part (self->message,
+- extract_mime_parts,
+- &self->mime_parts);
++ g_mime_message_foreach (self->message,
++ extract_mime_parts,
++ &self->mime_parts);
+ self->current_mime_part = self->mime_parts;
+ } else {
+ self->current_mime_part = self->current_mime_part->next;
diff --git a/recipes/tracker/tracker-0.6.95/99-autoreconf.patch b/recipes/tracker/tracker-0.6.95/99-autoreconf.patch
new file mode 100644
index 0000000000..2ba82c4bc1
--- /dev/null
+++ b/recipes/tracker/tracker-0.6.95/99-autoreconf.patch
@@ -0,0 +1,436 @@
+Index: tracker-0.6.95/aclocal.m4
+===================================================================
+--- tracker-0.6.95.orig/aclocal.m4 2009-09-30 22:47:58.914892386 +0200
++++ tracker-0.6.95/aclocal.m4 2009-09-30 22:47:19.811568705 +0200
+@@ -493,7 +493,7 @@
+ AC_REQUIRE([AM_MAINTAINER_MODE])
+
+ if test $USE_MAINTAINER_MODE = yes; then
+- DISABLE_DEPRECATED="-DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DPANGO_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGCONF_DISABLE_DEPRECATED -DBONOBO_DISABLE_DEPRECATED -DBONOBO_UI_DISABLE_DEPRECATED -DGNOME_VFS_DISABLE_DEPRECATED -DGNOME_DISABLE_DEPRECATED -DLIBGLADE_DISABLE_DEPRECATED"
++ DISABLE_DEPRECATED="-DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DPANGO_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGCONF_DISABLE_DEPRECATED -DBONOBO_DISABLE_DEPRECATED -DBONOBO_UI_DISABLE_DEPRECATED -DGNOME_VFS_DISABLE_DEPRECATED -DGNOME_DISABLE_DEPRECATED -DLIBGLADE_DISABLE_DEPRECATED -DWNCK_DISABLE_DEPRECATED -DLIBSOUP_DISABLE_DEPRECATED"
+ else
+ DISABLE_DEPRECATED=""
+ fi
+@@ -4991,6 +4991,9 @@
+ openbsd*)
+ with_gnu_ld=no
+ ;;
++ linux* | k*bsd*-gnu)
++ _LT_TAGVAR(link_all_deplibs, $1)=no
++ ;;
+ esac
+
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+@@ -9177,61 +9180,59 @@
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+
+-#serial 5
++#serial 4
+
+ # _AM_OUTPUT_DEPENDENCY_COMMANDS
+ # ------------------------------
+ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+-[{
+- # Autoconf 2.62 quotes --file arguments for eval, but not when files
+- # are listed without --file. Let's play safe and only enable the eval
+- # if we detect the quoting.
+- case $CONFIG_FILES in
+- *\'*) eval set x "$CONFIG_FILES" ;;
+- *) set x $CONFIG_FILES ;;
+- esac
+- shift
+- for mf
+- do
+- # Strip MF so we end up with the name of the file.
+- mf=`echo "$mf" | sed -e 's/:.*$//'`
+- # Check whether this is an Automake generated Makefile or not.
+- # We used to match only the files named `Makefile.in', but
+- # some people rename them; so instead we look at the file content.
+- # Grep'ing the first line is not enough: some people post-process
+- # each Makefile.in and add a new line on top of each file to say so.
+- # Grep'ing the whole file is not good either: AIX grep has a line
+- # limit of 2048, but all sed's we know have understand at least 4000.
+- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+- dirpart=`AS_DIRNAME("$mf")`
+- else
+- continue
+- fi
+- # Extract the definition of DEPDIR, am__include, and am__quote
+- # from the Makefile without running `make'.
+- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+- test -z "$DEPDIR" && continue
+- am__include=`sed -n 's/^am__include = //p' < "$mf"`
+- test -z "am__include" && continue
+- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+- # When using ansi2knr, U may be empty or an underscore; expand it
+- U=`sed -n 's/^U = //p' < "$mf"`
+- # Find all dependency output files, they are included files with
+- # $(DEPDIR) in their names. We invoke sed twice because it is the
+- # simplest approach to changing $(DEPDIR) to its actual value in the
+- # expansion.
+- for file in `sed -n "
+- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+- # Make sure the directory exists.
+- test -f "$dirpart/$file" && continue
+- fdir=`AS_DIRNAME(["$file"])`
+- AS_MKDIR_P([$dirpart/$fdir])
+- # echo "creating $dirpart/$file"
+- echo '# dummy' > "$dirpart/$file"
+- done
++[# Autoconf 2.62 quotes --file arguments for eval, but not when files
++# are listed without --file. Let's play safe and only enable the eval
++# if we detect the quoting.
++case $CONFIG_FILES in
++*\'*) eval set x "$CONFIG_FILES" ;;
++*) set x $CONFIG_FILES ;;
++esac
++shift
++for mf
++do
++ # Strip MF so we end up with the name of the file.
++ mf=`echo "$mf" | sed -e 's/:.*$//'`
++ # Check whether this is an Automake generated Makefile or not.
++ # We used to match only the files named `Makefile.in', but
++ # some people rename them; so instead we look at the file content.
++ # Grep'ing the first line is not enough: some people post-process
++ # each Makefile.in and add a new line on top of each file to say so.
++ # Grep'ing the whole file is not good either: AIX grep has a line
++ # limit of 2048, but all sed's we know have understand at least 4000.
++ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
++ dirpart=`AS_DIRNAME("$mf")`
++ else
++ continue
++ fi
++ # Extract the definition of DEPDIR, am__include, and am__quote
++ # from the Makefile without running `make'.
++ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
++ test -z "$DEPDIR" && continue
++ am__include=`sed -n 's/^am__include = //p' < "$mf"`
++ test -z "am__include" && continue
++ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
++ # When using ansi2knr, U may be empty or an underscore; expand it
++ U=`sed -n 's/^U = //p' < "$mf"`
++ # Find all dependency output files, they are included files with
++ # $(DEPDIR) in their names. We invoke sed twice because it is the
++ # simplest approach to changing $(DEPDIR) to its actual value in the
++ # expansion.
++ for file in `sed -n "
++ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
++ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
++ # Make sure the directory exists.
++ test -f "$dirpart/$file" && continue
++ fdir=`AS_DIRNAME(["$file"])`
++ AS_MKDIR_P([$dirpart/$fdir])
++ # echo "creating $dirpart/$file"
++ echo '# dummy' > "$dirpart/$file"
+ done
+-}
++done
+ ])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+Index: tracker-0.6.95/configure
+===================================================================
+--- tracker-0.6.95.orig/configure 2009-09-30 22:47:59.028227224 +0200
++++ tracker-0.6.95/configure 2009-09-30 22:47:28.338222381 +0200
+@@ -9623,6 +9623,9 @@
+ openbsd*)
+ with_gnu_ld=no
+ ;;
++ linux* | k*bsd*-gnu)
++ link_all_deplibs=no
++ ;;
+ esac
+
+ ld_shlibs=yes
+@@ -12317,7 +12320,7 @@
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 12320 "configure"
++#line 12323 "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -12413,7 +12416,7 @@
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 12416 "configure"
++#line 12419 "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -13461,7 +13464,7 @@
+ GTK_REQUIRED=2.16.0
+ GLADE_REQUIRED=2.5
+ QDBM_REQUIRED=1.8
+-GMIME_REQUIRED=2.1.0
++GMIME_REQUIRED=2.4.0
+ LIBXML2_REQUIRED=0.6
+ LIBNOTIFY_REQUIRED=0.4.3
+ HAL_REQUIRED=0.5
+@@ -14309,12 +14312,12 @@
+ pkg_cv_GMIME_CFLAGS="$GMIME_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gmime-2.0 >= \$GMIME_REQUIRED\"") >&5
+- ($PKG_CONFIG --exists --print-errors "gmime-2.0 >= $GMIME_REQUIRED") 2>&5
++ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gmime-2.4 >= \$GMIME_REQUIRED\"") >&5
++ ($PKG_CONFIG --exists --print-errors "gmime-2.4 >= $GMIME_REQUIRED") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+- pkg_cv_GMIME_CFLAGS=`$PKG_CONFIG --cflags "gmime-2.0 >= $GMIME_REQUIRED" 2>/dev/null`
++ pkg_cv_GMIME_CFLAGS=`$PKG_CONFIG --cflags "gmime-2.4 >= $GMIME_REQUIRED" 2>/dev/null`
+ else
+ pkg_failed=yes
+ fi
+@@ -14327,12 +14330,12 @@
+ pkg_cv_GMIME_LIBS="$GMIME_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gmime-2.0 >= \$GMIME_REQUIRED\"") >&5
+- ($PKG_CONFIG --exists --print-errors "gmime-2.0 >= $GMIME_REQUIRED") 2>&5
++ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gmime-2.4 >= \$GMIME_REQUIRED\"") >&5
++ ($PKG_CONFIG --exists --print-errors "gmime-2.4 >= $GMIME_REQUIRED") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+- pkg_cv_GMIME_LIBS=`$PKG_CONFIG --libs "gmime-2.0 >= $GMIME_REQUIRED" 2>/dev/null`
++ pkg_cv_GMIME_LIBS=`$PKG_CONFIG --libs "gmime-2.4 >= $GMIME_REQUIRED" 2>/dev/null`
+ else
+ pkg_failed=yes
+ fi
+@@ -14351,14 +14354,14 @@
+ _pkg_short_errors_supported=no
+ fi
+ if test $_pkg_short_errors_supported = yes; then
+- GMIME_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gmime-2.0 >= $GMIME_REQUIRED"`
++ GMIME_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gmime-2.4 >= $GMIME_REQUIRED"`
+ else
+- GMIME_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gmime-2.0 >= $GMIME_REQUIRED"`
++ GMIME_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gmime-2.4 >= $GMIME_REQUIRED"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$GMIME_PKG_ERRORS" >&5
+
+- { { $as_echo "$as_me:$LINENO: error: Package requirements (gmime-2.0 >= $GMIME_REQUIRED) were not met:
++ { { $as_echo "$as_me:$LINENO: error: Package requirements (gmime-2.4 >= $GMIME_REQUIRED) were not met:
+
+ $GMIME_PKG_ERRORS
+
+@@ -14369,7 +14372,7 @@
+ and GMIME_LIBS to avoid the need to call pkg-config.
+ See the pkg-config man page for more details.
+ " >&5
+-$as_echo "$as_me: error: Package requirements (gmime-2.0 >= $GMIME_REQUIRED) were not met:
++$as_echo "$as_me: error: Package requirements (gmime-2.4 >= $GMIME_REQUIRED) were not met:
+
+ $GMIME_PKG_ERRORS
+
+@@ -23604,28 +23607,27 @@
+
+
+ case $ac_file$ac_mode in
+- "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+- # Autoconf 2.62 quotes --file arguments for eval, but not when files
+- # are listed without --file. Let's play safe and only enable the eval
+- # if we detect the quoting.
+- case $CONFIG_FILES in
+- *\'*) eval set x "$CONFIG_FILES" ;;
+- *) set x $CONFIG_FILES ;;
+- esac
+- shift
+- for mf
+- do
+- # Strip MF so we end up with the name of the file.
+- mf=`echo "$mf" | sed -e 's/:.*$//'`
+- # Check whether this is an Automake generated Makefile or not.
+- # We used to match only the files named `Makefile.in', but
+- # some people rename them; so instead we look at the file content.
+- # Grep'ing the first line is not enough: some people post-process
+- # each Makefile.in and add a new line on top of each file to say so.
+- # Grep'ing the whole file is not good either: AIX grep has a line
+- # limit of 2048, but all sed's we know have understand at least 4000.
+- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+- dirpart=`$as_dirname -- "$mf" ||
++ "depfiles":C) test x"$AMDEP_TRUE" != x"" || # Autoconf 2.62 quotes --file arguments for eval, but not when files
++# are listed without --file. Let's play safe and only enable the eval
++# if we detect the quoting.
++case $CONFIG_FILES in
++*\'*) eval set x "$CONFIG_FILES" ;;
++*) set x $CONFIG_FILES ;;
++esac
++shift
++for mf
++do
++ # Strip MF so we end up with the name of the file.
++ mf=`echo "$mf" | sed -e 's/:.*$//'`
++ # Check whether this is an Automake generated Makefile or not.
++ # We used to match only the files named `Makefile.in', but
++ # some people rename them; so instead we look at the file content.
++ # Grep'ing the first line is not enough: some people post-process
++ # each Makefile.in and add a new line on top of each file to say so.
++ # Grep'ing the whole file is not good either: AIX grep has a line
++ # limit of 2048, but all sed's we know have understand at least 4000.
++ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
++ dirpart=`$as_dirname -- "$mf" ||
+ $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$mf" : 'X\(//\)[^/]' \| \
+ X"$mf" : 'X\(//\)$' \| \
+@@ -23648,28 +23650,28 @@
+ q
+ }
+ s/.*/./; q'`
+- else
+- continue
+- fi
+- # Extract the definition of DEPDIR, am__include, and am__quote
+- # from the Makefile without running `make'.
+- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+- test -z "$DEPDIR" && continue
+- am__include=`sed -n 's/^am__include = //p' < "$mf"`
+- test -z "am__include" && continue
+- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+- # When using ansi2knr, U may be empty or an underscore; expand it
+- U=`sed -n 's/^U = //p' < "$mf"`
+- # Find all dependency output files, they are included files with
+- # $(DEPDIR) in their names. We invoke sed twice because it is the
+- # simplest approach to changing $(DEPDIR) to its actual value in the
+- # expansion.
+- for file in `sed -n "
+- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+- # Make sure the directory exists.
+- test -f "$dirpart/$file" && continue
+- fdir=`$as_dirname -- "$file" ||
++ else
++ continue
++ fi
++ # Extract the definition of DEPDIR, am__include, and am__quote
++ # from the Makefile without running `make'.
++ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
++ test -z "$DEPDIR" && continue
++ am__include=`sed -n 's/^am__include = //p' < "$mf"`
++ test -z "am__include" && continue
++ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
++ # When using ansi2knr, U may be empty or an underscore; expand it
++ U=`sed -n 's/^U = //p' < "$mf"`
++ # Find all dependency output files, they are included files with
++ # $(DEPDIR) in their names. We invoke sed twice because it is the
++ # simplest approach to changing $(DEPDIR) to its actual value in the
++ # expansion.
++ for file in `sed -n "
++ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
++ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
++ # Make sure the directory exists.
++ test -f "$dirpart/$file" && continue
++ fdir=`$as_dirname -- "$file" ||
+ $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$file" : 'X\(//\)[^/]' \| \
+ X"$file" : 'X\(//\)$' \| \
+@@ -23692,7 +23694,7 @@
+ q
+ }
+ s/.*/./; q'`
+- { as_dir=$dirpart/$fdir
++ { as_dir=$dirpart/$fdir
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+@@ -23733,11 +23735,10 @@
+ } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+ $as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
+ { (exit 1); exit 1; }; }; }
+- # echo "creating $dirpart/$file"
+- echo '# dummy' > "$dirpart/$file"
+- done
++ # echo "creating $dirpart/$file"
++ echo '# dummy' > "$dirpart/$file"
+ done
+-}
++done
+ ;;
+ "libtool":C)
+
+Index: tracker-0.6.95/src/libstemmer/Makefile.in
+===================================================================
+--- tracker-0.6.95.orig/src/libstemmer/Makefile.in 2009-09-30 22:47:59.631558022 +0200
++++ tracker-0.6.95/src/libstemmer/Makefile.in 2009-09-30 22:47:32.971556115 +0200
+@@ -381,7 +381,7 @@
+
+ libstemmer_la_LIBADD = $(GCOV_LIBS)
+ libstemmer_la_LDFLAGS = \
+- -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
++ -version-info 0:0:0
+
+ all: all-am
+
+Index: tracker-0.6.95/src/libtracker-common/Makefile.in
+===================================================================
+--- tracker-0.6.95.orig/src/libtracker-common/Makefile.in 2009-09-30 22:47:59.958224240 +0200
++++ tracker-0.6.95/src/libtracker-common/Makefile.in 2009-09-30 22:47:33.128222987 +0200
+@@ -426,7 +426,7 @@
+ tracker-utils.h
+
+ libtracker_common_la_LDFLAGS = \
+- -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
++ -version-info 0:0:0
+
+ libtracker_common_la_LIBADD = \
+ $(top_builddir)/src/libstemmer/libstemmer.la \
+Index: tracker-0.6.95/src/libtracker-data/Makefile.in
+===================================================================
+--- tracker-0.6.95.orig/src/libtracker-data/Makefile.in 2009-09-30 22:47:59.781558711 +0200
++++ tracker-0.6.95/src/libtracker-data/Makefile.in 2009-09-30 22:47:33.264889286 +0200
+@@ -374,7 +374,7 @@
+ tracker-turtle.h
+
+ libtracker_data_la_LDFLAGS = \
+- -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
++ -version-info 0:0:0
+
+ libtracker_data_la_LIBADD = \
+ $(top_builddir)/src/libtracker-common/libtracker-common.la \
+Index: tracker-0.6.95/src/libtracker-db/Makefile.in
+===================================================================
+--- tracker-0.6.95.orig/src/libtracker-db/Makefile.in 2009-09-30 22:48:00.081555587 +0200
++++ tracker-0.6.95/src/libtracker-db/Makefile.in 2009-09-30 22:47:33.401557540 +0200
+@@ -370,7 +370,7 @@
+ tracker-db-manager.h
+
+ libtracker_db_la_LDFLAGS = \
+- -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
++ -version-info 0:0:0
+
+ libtracker_db_la_LIBADD = \
+ $(top_builddir)/src/libtracker-common/libtracker-common.la \
+Index: tracker-0.6.95/src/libtracker-gtk/Makefile.in
+===================================================================
+--- tracker-0.6.95.orig/src/libtracker-gtk/Makefile.in 2009-09-30 22:47:59.858224069 +0200
++++ tracker-0.6.95/src/libtracker-gtk/Makefile.in 2009-09-30 22:47:33.538222150 +0200
+@@ -360,7 +360,7 @@
+ $(GCOV_LIBS)
+
+ libtracker_gtk_la_LDFLAGS = \
+- -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
++ -version-info 0:0:0
+
+ all: all-am
+
+Index: tracker-0.6.95/src/libtracker/Makefile.in
+===================================================================
+--- tracker-0.6.95.orig/src/libtracker/Makefile.in 2009-09-30 22:48:00.238226105 +0200
++++ tracker-0.6.95/src/libtracker/Makefile.in 2009-09-30 22:47:33.698222969 +0200
+@@ -340,7 +340,7 @@
+ lib_LTLIBRARIES = libtrackerclient.la
+ libtrackerclient_la_SOURCES = tracker.c
+ libtrackerclient_la_LDFLAGS = \
+- -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
++ -version-info 0:0:0
+
+ libtrackerclient_la_LIBADD = \
+ $(GLIB2_LIBS) \
diff --git a/recipes/tracker/tracker-0.6.95/munge-configure.ac-cross-compile.patch b/recipes/tracker/tracker-0.6.95/munge-configure.ac-cross-compile.patch
new file mode 100644
index 0000000000..c520550cc8
--- /dev/null
+++ b/recipes/tracker/tracker-0.6.95/munge-configure.ac-cross-compile.patch
@@ -0,0 +1,39 @@
+Index: tracker-0.6.95/configure.ac
+===================================================================
+--- tracker-0.6.95.orig/configure.ac 2009-11-03 19:36:02.854851277 +0000
++++ tracker-0.6.95/configure.ac 2009-11-03 19:38:23.757362563 +0000
+@@ -1332,34 +1332,6 @@
+ old_exec_message=""
+ old_data_message=""
+
+-AC_CHECK_FILE("${prefix}/bin/trackerd", old_exec_trackerd=yes,,)
+-AC_CHECK_FILE("${prefix}/bin/tracker-indexer", old_exec_tracker_indexer=yes,,)
+-AC_CHECK_FILE("${prefix}/bin/tracker-extract", old_exec_tracker_extract=yes,,)
+-AC_CHECK_FILE("${prefix}/bin/tracker-thumbnailer", old_exec_tracker_thumbnailer=yes,,)
+-AC_CHECK_FILE("${DBUS_SERVICES_DIR}/tracker.service", old_data_dbus_service=yes,)
+-AC_CHECK_FILE("${prefix}/share/tracker/tracker-introspect.xml", old_data_dbus_xml=yes,,)
+-AC_CHECK_FILE("${prefix}/share/tracker/sqlite-service-stored-procs.sql", old_data_stored_procs=yes,,)
+-
+-if test "x$old_exec_trackerd" == "xyes" -o \
+- "x$old_exec_tracker_indexer" == "xyes" -o \
+- "x$old_exec_tracker_extract" == "xyes" -o \
+- "x$old_exec_tracker_thumbnailer" == "xyes"; then
+- old_exec_message="
+- Old Tracker executable files were found in your path.
+- (trackerd, tracker-indexer, tracker-thumbnailer, tracker-extract)"
+- old_file_action="
+- ** These files will be removed as part of the installation **"
+-fi
+-
+-if test "x$old_data_dbus_service" == "xyes" -o \
+- "x$old_data_dbus_xml" == "xyes" -o \
+- "x$old_data_stored_procs" == "xyes"; then
+- old_data_message="
+- Old Tracker data files were found in the prefix you are installing to."
+- old_file_action="
+- ** These files will be removed as part of the installation **"
+-fi
+-
+ AM_CONDITIONAL(OLD_EXEC_REMOVE_ALL, test -n "$old_exec_message")
+ AM_CONDITIONAL(OLD_DATA_REMOVE_ALL, test -n "$old_data_message")
+
diff --git a/recipes/tracker/tracker_0.6.95.bb b/recipes/tracker/tracker_0.6.95.bb
new file mode 100644
index 0000000000..f97b5ea881
--- /dev/null
+++ b/recipes/tracker/tracker_0.6.95.bb
@@ -0,0 +1,37 @@
+DESCRIPTION = "Tracker is a tool designed to extract information and metadata about your personal data so that it can be searched easily and quickly."
+LICENSE = "GPLv2"
+DEPENDS = "file gtk+ gstreamer gamin libgmime dbus poppler libexif libgsf libgnomecanvas gettext"
+HOMEPAGE="http://www.tracker-project.org/"
+
+PR = "r1"
+
+inherit autotools pkgconfig gnome
+
+SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/tracker/0.6/tracker-${PV}.tar.bz2 \
+ file://munge-configure.ac-cross-compile.patch;patch=1 \
+ file://05-tracker-ioprio-cross.patch;patch=1 \
+ file://10-drop-bogus-version-info.patch;patch=1 \
+ file://20-tracker-defaults.patch;patch=1 \
+ file://30-gmime-2.4.patch;patch=1 \
+ file://99-autoreconf.patch;patch=1 \
+ file://90tracker \
+"
+
+EXTRA_OECONF += " tracker_cv_have_ioprio=yes"
+
+LEAD_SONAME = "libtrackerclient.so.0"
+
+do_install_append() {
+ cp -dPr ${D}${STAGING_DATADIR}/* ${D}${datadir}/ || true
+ install -d ${D}/${sysconfdir}/X11/Xsession.d/
+ install -m 0755 ${WORKDIR}/90tracker ${D}/${sysconfdir}/X11/Xsession.d/
+}
+
+do_stage() {
+ autotools_stage_all
+}
+
+FILES_${PN} += "${datadir}/dbus-1/"
+FILES_${PN}-dbg += "${libdir}/*/*/.debug"
+
+CONFFILES_${PN} += "${sysconfdir}/X11/Xsession.d/90tracker"
diff --git a/recipes/transmission/transmission.inc b/recipes/transmission/transmission.inc
index 1601f09ec2..9c8b395b07 100644
--- a/recipes/transmission/transmission.inc
+++ b/recipes/transmission/transmission.inc
@@ -3,7 +3,7 @@ SECTION = "network"
HOMEPAGE = "www.transmissionbt.com/"
DEPENDS = "gtk+ gnutls openssl gettext libtool intltool-native curl glib-2.0-native"
LICENSE = "GPLv2"
-PR = "r2"
+PR = "r4"
SRC_URI = "http://mirrors.m0k.org/transmission/files/transmission-${PV}.tar.bz2 \
file://init \
file://config"
@@ -21,7 +21,11 @@ do_install_append() {
install -d ${D}${localstatedir}/lib/transmission-daemon
}
-FILES_${PN} += "${datadir}/icons"
+PACKAGES += "${PN}-gui ${PN}-client"
+
+FILES_${PN} = "${bindir}/transmission-daemon ${datadir}/transmission ${sysconfdir} ${localstatedir}/lib/${PN}-daemon"
+FILES_${PN}-client = "${bindir}/transmissioncli ${bindir}/transmission-remote"
+FILES_${PN}-gui += "${bindir}/transmission ${datadir}/icons ${datadir}/applications ${datadir}/pixmaps"
CONFFILES_${PN} = "${sysconfdir}/default/transmission-daemon"
# No need for online check, since update-rc.d will prepend it to here
@@ -35,4 +39,3 @@ pkg_postrm_${PN}() {
delgroup transmission
deluser transmission
}
-
diff --git a/recipes/transmission/transmission_1.76.bb b/recipes/transmission/transmission_1.76.bb
new file mode 100644
index 0000000000..4472d06cf1
--- /dev/null
+++ b/recipes/transmission/transmission_1.76.bb
@@ -0,0 +1,2 @@
+require transmission.inc
+
diff --git a/recipes/tslib/tslib.inc b/recipes/tslib/tslib.inc
index e10351b817..81f2a4eaa6 100644
--- a/recipes/tslib/tslib.inc
+++ b/recipes/tslib/tslib.inc
@@ -3,7 +3,7 @@ HOMEPAGE = "http://tslib.berlios.de/"
AUTHOR = "Russell King w/ plugins by Chris Larson et. al."
SECTION = "base"
LICENSE = "LGPL"
-INC_PR = "r22"
+INC_PR = "r23"
SRC_URI += "\
file://ts.conf \
@@ -61,6 +61,7 @@ PACKAGE_ARCH_tslib-conf_jornada7xx = "${MACHINE_ARCH}"
PACKAGE_ARCH_tslib-conf_netbook-pro = "${MACHINE_ARCH}"
PACKAGE_ARCH_tslib-conf_omap1610h2 = "${MACHINE_ARCH}"
PACKAGE_ARCH_tslib-conf_omap5912osk = "${MACHINE_ARCH}"
+PACKAGE_ARCH_tslib-conf_omap3-pandora = "${MACHINE_ARCH}"
PACKAGE_ARCH_tslib-conf_simpad = "${MACHINE_ARCH}"
PACKAGES =+ "tslib-conf libts-dev tslib-tests tslib-calibrate"
@@ -78,3 +79,4 @@ FILES_${PN} = "${libdir}/*.so.* ${libdir}/ts/*.so*"
FILES_libts-dev = "${FILES_tslib-dev} ${libdir}/ts/*.la"
FILES_tslib-calibrate += "${bindir}/ts_calibrate"
FILES_tslib-tests = "${bindir}/ts_harvest ${bindir}/ts_print ${bindir}/ts_print_raw ${bindir}/ts_test"
+
diff --git a/recipes/tslib/tslib/omap3-pandora/ts.conf b/recipes/tslib/tslib/omap3-pandora/ts.conf
new file mode 100644
index 0000000000..7b5271c60e
--- /dev/null
+++ b/recipes/tslib/tslib/omap3-pandora/ts.conf
@@ -0,0 +1,8 @@
+# ts.conf for the OMAP3-PANDORA default touchscreen.
+
+module_raw input
+
+module pthres pmin=1
+module variance delta=30
+module dejitter delta=100
+module linear
diff --git a/recipes/tslib/tslib/omap3-pandora/tslib.sh b/recipes/tslib/tslib/omap3-pandora/tslib.sh
new file mode 100644
index 0000000000..f73e39c5d9
--- /dev/null
+++ b/recipes/tslib/tslib/omap3-pandora/tslib.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+TSLIB_TSDEVICE=/dev/input/touchscreen0
+TSLIB_CONFFILE=/etc/ts.conf
+
+export TSLIB_TSDEVICE TSLIB_CONFFILE
+
diff --git a/recipes/tslib/tslib/sgh-i900/tslib.sh b/recipes/tslib/tslib/sgh-i900/tslib.sh
new file mode 100644
index 0000000000..040f4de3d5
--- /dev/null
+++ b/recipes/tslib/tslib/sgh-i900/tslib.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+TSLIB_TSDEVICE=/dev/input/event1
+
+export TSLIB_TSDEVICE
diff --git a/recipes/tslib/tslib_svn.bb b/recipes/tslib/tslib_svn.bb
index e65f715110..77127c7fc1 100644
--- a/recipes/tslib/tslib_svn.bb
+++ b/recipes/tslib/tslib_svn.bb
@@ -1,6 +1,6 @@
SRC_URI = "svn://svn.berlios.de/tslib/trunk;module=tslib"
S = "${WORKDIR}/tslib"
-PV = "1.0+svnr${SRCREV}"
+PV = "1.0+svnr${SRCPV}"
PR = "${INC_PR}.1"
DEFAULT_PREFERENCE = "-1"
diff --git a/recipes/ttf-fonts/ttf-freefonts_20090104.bb b/recipes/ttf-fonts/ttf-freefonts_20090104.bb
new file mode 100644
index 0000000000..316873dc75
--- /dev/null
+++ b/recipes/ttf-fonts/ttf-freefonts_20090104.bb
@@ -0,0 +1,24 @@
+require ttf.inc
+
+DESCRIPTION="TrueType Unicode fonts from the Free UCS Outline Fonts Project"
+HOMEPAGE="http://savannah.nongnu.org/projects/freefont/"
+
+PR = "r1"
+
+SRC_URI = "http://ftp.gnu.org/gnu/freefont/freefont-ttf-${PV}.tar.gz"
+
+S = "${WORKDIR}/freefont-${PV}"
+
+FILES_${PN}-doc = "${datadir}/doc/ttf-freefont/README \
+ ${datadir}/doc/ttf-freefont/AUTHORS \
+"
+
+FILES_${PN} = "${datadir}"
+
+
+do_install_append() {
+ install -d ${D}${datadir}/doc/
+ install -d ${D}${datadir}/doc/ttf-freefont
+ install -m 0644 ${S}/README ${D}${datadir}/doc/ttf-freefont
+ install -m 0644 ${S}/AUTHORS ${D}${datadir}/doc/ttf-freefont
+}
diff --git a/recipes/tzdata/tzdata.inc b/recipes/tzdata/tzdata.inc
index 71de930761..cfc5d2f8e8 100644
--- a/recipes/tzdata/tzdata.inc
+++ b/recipes/tzdata/tzdata.inc
@@ -3,7 +3,7 @@ SECTION = "base"
PRIORITY = "optional"
DEPENDS = "tzcode-native"
-INC_PR = "r4"
+INC_PR = "r5"
DEFAULT_TIMEZONE ?= "Europe/London"
@@ -28,9 +28,9 @@ do_compile () {
for zone in ${TZONES}; do \
${STAGING_BINDIR_NATIVE}/zic -d ${WORKDIR}/build${datadir}/zoneinfo -L /dev/null \
-y ${S}/yearistype.sh ${S}/${zone} ; \
- ${STAGING_BINDIR_NATIVE}/zic -d ${WORKDIR}}/build${datadir}/zoneinfo/posix -L /dev/null \
+ ${STAGING_BINDIR_NATIVE}/zic -d ${WORKDIR}/build${datadir}/zoneinfo/posix -L /dev/null \
-y ${S}/yearistype.sh ${S}/${zone} ; \
- ${STAGING_BINDIR_NATIVE}/zic -d ${WORKDIR}}/build${datadir}/zoneinfo/right -L ${S}/leapseconds \
+ ${STAGING_BINDIR_NATIVE}/zic -d ${WORKDIR}/build${datadir}/zoneinfo/right -L ${S}/leapseconds \
-y ${S}/yearistype.sh ${S}/${zone} ; \
done
}
@@ -38,6 +38,11 @@ do_compile () {
do_install () {
install -d ${D}${prefix} ${D}${datadir}/zoneinfo
cp -pPR ${WORKDIR}/build${prefix}/* ${D}${prefix}
+ # Only eglibc is removing zoneinfo files from package
+ if [ "${LIBC}"x == "eglibc"x ] ; then
+ cp -pP "${WORKDIR}/zone.tab" ${D}${datadir}/zoneinfo
+ cp -pP "${WORKDIR}/iso3166.tab" ${D}${datadir}/zoneinfo
+ fi
# Install a sane default for timezones
install -d ${D}${sysconfdir}
@@ -168,5 +173,7 @@ FILES_${PN} += "${datadir}/zoneinfo/Pacific/Honolulu \
${datadir}/zoneinfo/WET \
${datadir}/zoneinfo/Zulu \
${datadir}/zoneinfo/Etc/* \
+ ${datadir}/zoneinfo/iso3166.tab \
+ ${datadir}/zoneinfo/zone.tab \
${sysconfdir}/localtime \
${sysconfdir}/timezone "
diff --git a/recipes/tzdata/tzdata_2009s.bb b/recipes/tzdata/tzdata_2009s.bb
new file mode 100644
index 0000000000..17c2dd4f0c
--- /dev/null
+++ b/recipes/tzdata/tzdata_2009s.bb
@@ -0,0 +1,3 @@
+require tzdata.inc
+SRC_URI = "ftp://elsie.nci.nih.gov/pub/tzdata${PV}.tar.gz"
+PR = "${INC_PR}.0"
diff --git a/recipes/u-boot/files/beagleboard/fw_env.config b/recipes/u-boot/files/beagleboard/fw_env.config
index 8fc96f7572..d9112c2256 100644
--- a/recipes/u-boot/files/beagleboard/fw_env.config
+++ b/recipes/u-boot/files/beagleboard/fw_env.config
@@ -4,5 +4,5 @@
# Notice, that the "Number of sectors" is ignored on NOR.
# MTD device name Device offset Env. size Flash sector size Number of sectors
-/dev/mtd2 0x0000 0x20000 0x40000
+/dev/mtd2 0x0000 0x20000 0x20000
diff --git a/recipes/u-boot/files/omap3-touchbook/fw_env.config b/recipes/u-boot/files/omap3-touchbook/fw_env.config
index a7bfec1ebb..4063144d36 100644
--- a/recipes/u-boot/files/omap3-touchbook/fw_env.config
+++ b/recipes/u-boot/files/omap3-touchbook/fw_env.config
@@ -3,4 +3,4 @@
# environment sector is assumed present.
# MTD device name Device offset Env. size Flash sector size
-/dev/mtd2 0x0000 0x20000 0x20000
+/dev/mtd2 0x0000 0x20000 0x40000
diff --git a/recipes/u-boot/u-boot-2009.03/hipox/00-hipox.patch b/recipes/u-boot/u-boot-2009.03/hipox/00-hipox.patch
index 1433e90193..5b91d28da3 100644
--- a/recipes/u-boot/u-boot-2009.03/hipox/00-hipox.patch
+++ b/recipes/u-boot/u-boot-2009.03/hipox/00-hipox.patch
@@ -6348,7 +6348,7 @@ diff -Nurd u-boot-2009.03.orig/include/configs/hipox.h u-boot-2009.03/include/co
+
+#define CONFIG_CMD_DHCP
+#define CONFIG_CMD_DIAG
-+#define CONFIG_CMD_PING
++//#define CONFIG_CMD_PING
+
+/**
+ * Architecture
@@ -6675,12 +6675,12 @@ diff -Nurd u-boot-2009.03.orig/include/configs/hipox.h u-boot-2009.03/include/co
+#define MTDIDS_DEFAULT "nand0=MT29FXX"
+#define MTDPARTS_DEFAULT "mtdparts=MT29FXX:" \
+ "32m(boot)," \
-+ "224m(system)"
++ "480m(system)"
+
-+#define NUM_FLASH_MAIN_BLOCKS 63 /* For Intel 28F320B3T */
-+#define NUM_FLASH_PARAM_BLOCKS 8 /* For Intel 28F320B3T */
-+#define FLASH_MAIN_BLOCK_SIZE (64*1024) /* For Intel 28F320B3T family */
-+#define FLASH_PARAM_BLOCK_SIZE (8*1024) /* For Intel 28F320B3T family */
++#define NUM_FLASH_MAIN_BLOCKS 31 /* For Atmel AT49BV163D */
++#define NUM_FLASH_PARAM_BLOCKS 8 /* For Atmel AT49BV163D */
++#define FLASH_MAIN_BLOCK_SIZE (64*1024)
++#define FLASH_PARAM_BLOCK_SIZE (8*1024)
+
+/* Assuming counts main blocks and parameter blocks, as the Intel/AMD detection */
+/* I'm intending to copy would seem to indicate */
diff --git a/recipes/u-boot/u-boot-2009.03/hipox/02-hipox-enable-mmu.patch b/recipes/u-boot/u-boot-2009.03/hipox/02-hipox-enable-mmu.patch
index b7ddf27d27..e256c17fea 100644
--- a/recipes/u-boot/u-boot-2009.03/hipox/02-hipox-enable-mmu.patch
+++ b/recipes/u-boot/u-boot-2009.03/hipox/02-hipox-enable-mmu.patch
@@ -274,7 +274,7 @@ diff -Nurd u-boot-2009.03.orig/include/configs/hipox.h u-boot-2009.03/include/co
@@ -34,6 +34,7 @@
#define CONFIG_CMD_DHCP
#define CONFIG_CMD_DIAG
- #define CONFIG_CMD_PING
+ //#define CONFIG_CMD_PING
+#define CONFIG_CMD_CACHE
/**
diff --git a/recipes/u-boot/u-boot-bug_svn.bb b/recipes/u-boot/u-boot-bug_svn.bb
index c1930f4889..485cfd86b0 100644
--- a/recipes/u-boot/u-boot-bug_svn.bb
+++ b/recipes/u-boot/u-boot-bug_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "U-boot bootloader w/ BUG support"
LICENSE = "GPL"
SECTION = "bootloader"
PRIORITY = "optional"
-PV = "1.3.2+svnr${SRCREV}"
+PV = "1.3.2+svnr${SRCPV}"
SRCREV = "${AUTOREV}"
PR = "r6"
diff --git a/recipes/u-boot/u-boot-omap3pandora_git.bb b/recipes/u-boot/u-boot-omap3pandora_git.bb
index 77634aa080..773eb18ea2 100644
--- a/recipes/u-boot/u-boot-omap3pandora_git.bb
+++ b/recipes/u-boot/u-boot-omap3pandora_git.bb
@@ -3,12 +3,12 @@ require u-boot.inc
COMPATIBLE_MACHINE = "omap3-pandora"
# Latest SRCREV for the final shipping boards.
-SRCREV = "70532c1152662f88ba1e0627c96307d93536508f"
+SRCREV = "c71d8dbe09d69feda7e57745bd3909727d3cc33f"
PROVIDES = "u-boot"
PV = "pandora+${PR}+gitr${SRCREV}"
-PR ="r3"
+PR ="r4"
PE = "1"
SRC_URI = "git://git.openpandora.org/pandora-u-boot.git;branch=master;protocol=git \
diff --git a/recipes/u-boot/u-boot-utils_1.2.0.bb b/recipes/u-boot/u-boot-utils_1.2.0.bb
index 076547eb84..f38ecbe572 100644
--- a/recipes/u-boot/u-boot-utils_1.2.0.bb
+++ b/recipes/u-boot/u-boot-utils_1.2.0.bb
@@ -3,7 +3,7 @@ SECTION = "bootloaders"
PRIORITY = "optional"
LICENSE = "GPL"
DEPENDS = "mtd-utils"
-PR = "r8"
+PR = "r9"
SRC_URI = "ftp://ftp.denx.de/pub/u-boot/u-boot-${PV}.tar.bz2 \
file://fw_env.c.patch;patch=1 \
diff --git a/recipes/u-boot/u-boot_git.bb b/recipes/u-boot/u-boot_git.bb
index 59c0598f97..e914d78064 100644
--- a/recipes/u-boot/u-boot_git.bb
+++ b/recipes/u-boot/u-boot_git.bb
@@ -1,5 +1,5 @@
require u-boot.inc
-PR ="r33"
+PR ="r37"
FILESPATHPKG =. "u-boot-git:"
@@ -82,33 +82,43 @@ SRC_URI_overo = "git://gitorious.org/u-boot-omap3/mainline.git;branch=omap3-dev;
SRCREV_overo = "2dea1db2a3b7c12ed70bbf8ee50755089c5e5170"
PV_overo = "2009.03+${PR}+gitr${SRCREV}"
-SRC_URI_dm6446-evm = "git://arago-project.org/git/projects/u-boot-davinci.git;protocol=git"
-SRCREV_dm6446-evm = "f8d047c84137ab331c0ee2c3e94c3f1ec4228298"
-PV_dm6446-evm = "2009.05+2009.06-rc0+gitr${SRCREV}"
+# Davinci dm355-evm/dm365-evm/dm6446-evm - PSP.03.01.00.28 (Phase 3 build 28)
-SRC_URI_dm355-evm = "git://arago-project.org/git/projects/u-boot-davinci.git;protocol=git"
-SRCREV_dm355-evm = "5ae613482c9468386872cedd46f8fb389f19859d"
-PV_dm355-evm = "2009.08+gitr${SRCREV}"
+SRC_URI_dm355-evm = "git://arago-project.org/git/projects/u-boot-davinci.git;protocol=git"
+SRCREV_dm355-evm = "f8d047c84137ab331c0ee2c3e94c3f1ec4228298"
+PV_dm355-evm = "2009.10+2009.11-rc1+${PR}+gitr${SRCREV}"
-SRC_URI_dm365-evm = "git://arago-project.org/git/projects/u-boot-davinci.git;protocol=git"
-SRCREV_dm365-evm = "5ae613482c9468386872cedd46f8fb389f19859d"
-PV_dm365-evm = "2009.08+gitr${SRCREV}"
+SRC_URI_dm365-evm = "git://arago-project.org/git/projects/u-boot-davinci.git;protocol=git"
+SRCREV_dm365-evm = "f8d047c84137ab331c0ee2c3e94c3f1ec4228298"
+PV_dm365-evm = "2009.10+2009.11-rc1+${PR}+gitr${SRCREV}"
-SRC_URI_dm6467-evm = "git://arago-project.org/git/people/hemant/u-boot-dm646x.git;protocol=git"
-SRCREV_dm6467-evm = "3da7475ae13445ba89c77ea563ccdfb9df540bb7"
-PV_dm6467-evm = "2009.08+gitr${SRCREV}"
+SRC_URI_dm6446-evm = "git://arago-project.org/git/projects/u-boot-davinci.git;protocol=git"
+SRCREV_dm6446-evm = "f8d047c84137ab331c0ee2c3e94c3f1ec4228298"
+PV_dm6446-evm = "2009.10+2009.11-rc1+${PR}+gitr${SRCREV}"
-SRC_URI_dm6467t-evm = "git://arago-project.org/git/people/hemant/u-boot-dm646x.git;protocol=git"
-SRCREV_dm6467t-evm = "3da7475ae13445ba89c77ea563ccdfb9df540bb7"
-PV_dm6467t-evm = "2009.08+gitr${SRCREV}"
+# Davinci dm6467-evm/dm6467-evm - PSP.03.02.00 (DM6467 Beta)
-SRC_URI_da830-omapl137-evm = "git://arago-project.org/git/people/sekhar/u-boot-omapl1.git;protocol=git;branch=wakeup"
-SRCREV_da830-omapl137-evm = "04a03bb477ad842b84c61b29f11422089ad0088d"
-PV_da830-omapl137-evm = "2009.01+gitr${SRCREV}"
+SRC_URI_dm6467-evm = "git://arago-project.org/git/people/hemant/u-boot-dm646x.git;protocol=git"
+SRCREV_dm6467-evm = "b037106746e5b942d7ef06bfcd776a7cdfe32f68"
+PV_dm6467-evm = "1.3.4+${PR}+gitr${SRCREV}"
-SRC_URI_da850-omapl138-evm = "git://arago-project.org/git/people/sekhar/u-boot-omapl1.git;protocol=git;branch=wakeup"
-SRCREV_da850-omapl138-evm = "04a03bb477ad842b84c61b29f11422089ad0088d"
-PV_da850-omapl138-evm = "2009.01+gitr${SRCREV}"
+SRC_URI_dm6467t-evm = "git://arago-project.org/git/people/hemant/u-boot-dm646x.git;protocol=git"
+SRCREV_dm6467t-evm = "b037106746e5b942d7ef06bfcd776a7cdfe32f68"
+PV_dm6467t-evm = "1.3.4+${PR}+gitr${SRCREV}"
+
+# OMAPL da380-omapl137/da850-omapl138-evm/hawkboard - PSP 3.20.00.07 (Beta)
+
+SRC_URI_da830-omapl137-evm = "git://arago-project.org/git/people/sekhar/u-boot-omapl1.git;protocol=git;branch=master"
+SRCREV_da830-omapl137-evm = "0d291f2f255e6d66a78b3dc2445362a96ae39a57"
+PV_da830-omapl137-evm = "2009.08+gitr${SRCREV}"
+
+SRC_URI_da850-omapl138-evm = "git://arago-project.org/git/people/sekhar/u-boot-omapl1.git;protocol=git;branch=master"
+SRCREV_da850-omapl138-evm = "0d291f2f255e6d66a78b3dc2445362a96ae39a57"
+PV_da850-omapl138-evm = "2009.08+gitr${SRCREV}"
+
+SRC_URI_hawkboard = "git://arago-project.org/git/people/sekhar/u-boot-omapl1.git;protocol=git;branch=master"
+SRCREV_hawkboard = "0d291f2f255e6d66a78b3dc2445362a96ae39a57"
+PV_hawkboard = "2009.08+gitr${SRCREV}"
SRC_URI_dm355-leopard = "git://www.denx.de/git/u-boot-arm.git;protocol=git;branch=next \
file://leopardboard-support.patch;patch=1 \
diff --git a/recipes/uclibc/bfin-uclibc_svn.bb b/recipes/uclibc/bfin-uclibc_svn.bb
index e5123ad56e..80efd2610f 100644
--- a/recipes/uclibc/bfin-uclibc_svn.bb
+++ b/recipes/uclibc/bfin-uclibc_svn.bb
@@ -7,7 +7,7 @@
# on whether the base patches apply to the selected (SRCDATE) svn release.
#
UCLIBC_BASE ?= "0.9.29"
-PV = "${UCLIBC_BASE}+svnr${SRCREV}"
+PV = "${UCLIBC_BASE}+svnr${SRCPV}"
require uclibc.inc
PR = "${INC_PR}.0"
diff --git a/recipes/uclibc/elf2flt_svn.bb b/recipes/uclibc/elf2flt_svn.bb
index 3af893a7a8..e16da367ae 100644
--- a/recipes/uclibc/elf2flt_svn.bb
+++ b/recipes/uclibc/elf2flt_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Elf2flt is a wrapper around the linker for uclinux platforms"
DEPENDS = "binutils-cross"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
inherit autotools cross
diff --git a/recipes/uclibc/uclibc-0.9.30.1/installfix.patch b/recipes/uclibc/uclibc-0.9.30.1/installfix.patch
new file mode 100644
index 0000000000..eab964de13
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.30.1/installfix.patch
@@ -0,0 +1,33 @@
+Index: uClibc-0.9.30.1/Makefile.in
+===================================================================
+--- uClibc-0.9.30.1.orig/Makefile.in 2009-11-20 22:51:12.544261346 +0100
++++ uClibc-0.9.30.1/Makefile.in 2009-11-20 22:52:59.980922849 +0100
+@@ -369,7 +369,7 @@
+ endif
+
+ # Installs development library links.
+-install_dev: install_headers all
++install_dev: install_headers install_runtime
+ $(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)lib
+ -$(INSTALL) -m 644 lib/*.[ao] $(PREFIX)$(DEVEL_PREFIX)lib/
+ ifeq ($(HAVE_SHARED),y)
+Index: uClibc-0.9.30.1/utils/Makefile.in
+===================================================================
+--- uClibc-0.9.30.1.orig/utils/Makefile.in 2009-11-20 22:54:00.352165960 +0100
++++ uClibc-0.9.30.1/utils/Makefile.in 2009-11-20 22:54:47.754245713 +0100
+@@ -89,12 +89,12 @@
+ utils_install: utils
+ #$(Q)$(INSTALL) -D -m 755 $(utils_OUT)/readelf $(PREFIX)$(RUNTIME_PREFIX)usr/bin/readelf
+ ifeq ($(HAVE_SHARED),y)
+- $(Q)$(INSTALL) -D -m 755 $(utils_OUT)/ldd $(PREFIX)$(RUNTIME_PREFIX)usr/bin/ldd
++ $(Q)$(INSTALL) -D -m 755 $(utils_OUT)/ldd $(PREFIX)$(RUNTIME_PREFIX)bin/ldd
+ $(Q)$(INSTALL) -D -m 755 $(utils_OUT)/ldconfig $(PREFIX)$(RUNTIME_PREFIX)sbin/ldconfig
+ endif
+ ifeq ($(UCLIBC_HAS_LOCALE),y)
+- $(Q)$(INSTALL) -D -m 755 $(utils_OUT)/iconv $(PREFIX)$(RUNTIME_PREFIX)usr/bin/iconv
+- $(Q)$(INSTALL) -m 755 $(utils_OUT)/locale $(PREFIX)$(RUNTIME_PREFIX)usr/bin/locale
++ $(Q)$(INSTALL) -D -m 755 $(utils_OUT)/iconv $(PREFIX)$(RUNTIME_PREFIX)bin/iconv
++ $(Q)$(INSTALL) -m 755 $(utils_OUT)/locale $(PREFIX)$(RUNTIME_PREFIX)bin/locale
+ endif
+
+ objclean-y += utils_clean
diff --git a/recipes/uclibc/uclibc-0.9.30.1/o_cloexec.patch b/recipes/uclibc/uclibc-0.9.30.1/o_cloexec.patch
new file mode 100644
index 0000000000..021ca95d83
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.30.1/o_cloexec.patch
@@ -0,0 +1,272 @@
+From b8f1f91cc6d7b579fdb2370ab046565f9930aa09 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Thu, 08 Oct 2009 02:51:55 +0000
+Subject: clean up O_CLOEXEC handling
+
+Drop the "#ifndef O_CLOEXEC" cruft, enable O_CLOEXEC in most fcntl.h
+headers, and import __ASSUME_O_CLOEXEC from glibc.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+Index: uClibc-0.9.30.1/libc/pwd_grp/lckpwdf.c
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/pwd_grp/lckpwdf.c 2008-05-20 00:57:34.000000000 +0200
++++ uClibc-0.9.30.1/libc/pwd_grp/lckpwdf.c 2009-11-26 13:44:11.935757716 +0100
+@@ -75,7 +75,7 @@
+ /* Prevent problems caused by multiple threads. */
+ __UCLIBC_MUTEX_LOCK(mylock);
+
+- lock_fd = open (_PATH_PASSWD, O_WRONLY);
++ lock_fd = open (_PATH_PASSWD, O_WRONLY | O_CLOEXEC);
+ if (lock_fd == -1) {
+ /* Cannot create lock file. */
+ goto DONE;
+@@ -97,6 +97,12 @@
+ goto DONE;
+ }
+
++#ifndef __ASSUME_O_CLOEXEC
++ /* Make sure file gets correctly closed when process finished. */
++ fcntl (lock_fd, F_SETFD, FD_CLOEXEC);
++#endif
++
++
+ /* Now we have to get exclusive write access. Since multiple
+ process could try this we won't stop when it first fails.
+ Instead we set a timeout for the system call. Once the timer
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/alpha/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/fcntl.h 2009-11-26 13:35:06.744980002 +0100
+@@ -50,9 +50,7 @@
+ # define O_NOFOLLOW 0200000 /* Do not follow links. */
+ # define O_DIRECT 02000000 /* Direct disk access. */
+ # define O_NOATIME 04000000 /* Do not set atime. */
+-# if 0
+ # define O_CLOEXEC 010000000 /* Set close_on_exec. */
+-# endif
+ #endif
+
+ #ifdef __USE_LARGEFILE64
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/arm/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/arm/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/arm/bits/fcntl.h 2009-11-26 13:35:06.744980002 +0100
+@@ -50,9 +50,7 @@
+ # define O_NOFOLLOW 0100000 /* Do not follow links. */
+ # define O_DIRECT 0200000 /* Direct disk access. */
+ # define O_NOATIME 01000000 /* Do not set atime. */
+-# if 0
+ # define O_CLOEXEC 02000000 /* Set close_on_exec. */
+-# endif
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/avr32/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/avr32/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/avr32/bits/fcntl.h 2009-11-26 13:35:06.748316654 +0100
+@@ -30,6 +30,7 @@
+ # define O_DIRECTORY 00200000 /* direct disk access */
+ # define O_NOFOLLOW 00400000 /* don't follow links */
+ # define O_NOATIME 01000000 /* don't set atime */
++# define O_CLOEXEC 02000000 /* set close_on_exec */
+ #endif
+
+ #ifdef __USE_LARGEFILE64
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/bfin/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/bfin/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/bfin/bits/fcntl.h 2009-11-26 13:37:03.357878847 +0100
+@@ -49,6 +49,8 @@
+ # define O_NOFOLLOW 0100000 /* Do not follow links. */
+ # define O_DIRECT 0200000 /* Direct disk access. */
+ # define O_STREAMING 04000000/* streaming access */
++# define O_NOATIME 01000000/* don't set atime */
++# define O_CLOEXEC 02000000/* set close_on_exec *
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/cris/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/cris/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/cris/bits/fcntl.h 2009-11-26 13:35:06.748316654 +0100
+@@ -50,6 +50,7 @@
+ # define O_DIRECTORY 0200000 /* Must be a directory. */
+ # define O_NOFOLLOW 0400000 /* Do not follow links. */
+ # define O_NOATIME 01000000 /* Do not set atime. */
++# define O_CLOEXEC 02000000 /* set close_on_exec */
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/frv/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/frv/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/frv/bits/fcntl.h 2009-11-26 13:38:32.785785660 +0100
+@@ -46,6 +46,8 @@
+ # define O_DIRECTORY 0200000 /* Must be a directory. */
+ # define O_NOFOLLOW 0400000 /* Do not follow links. */
+ # define O_STREAMING 04000000/* streaming access */
++# define O_NOATIME 01000000/* don't set atime */
++# define O_CLOEXEC 02000000/* set close_on_exec */
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/hppa/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/hppa/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/hppa/bits/fcntl.h 2009-11-26 13:35:06.748316654 +0100
+@@ -50,6 +50,7 @@
+ # define O_DIRECTORY 00010000 /* Must be a directory. */
+ # define O_NOFOLLOW 00000200 /* Do not follow links. */
+ # define O_NOATIME 04000000 /* Do not set atime. */
++# define O_CLOEXEC 010000000 /* set close_on_exec */
+ #endif
+
+ #ifdef __USE_LARGEFILE64
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/i386/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/i386/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/i386/bits/fcntl.h 2009-11-26 13:35:06.748316654 +0100
+@@ -50,9 +50,7 @@
+ # define O_DIRECTORY 0200000 /* Must be a directory. */
+ # define O_NOFOLLOW 0400000 /* Do not follow links. */
+ # define O_NOATIME 01000000 /* Do not set atime. */
+-# if 0
+ # define O_CLOEXEC 02000000 /* Set close_on_exec. */
+-# endif
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/ia64/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/ia64/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/ia64/bits/fcntl.h 2009-11-26 13:35:06.748316654 +0100
+@@ -49,9 +49,7 @@
+ # define O_DIRECTORY 0200000 /* must be a directory */
+ # define O_NOFOLLOW 0400000 /* don't follow links */
+ # define O_NOATIME 01000000 /* Do not set atime. */
+-# if 0
+ # define O_CLOEXEC 02000000 /* Set close_on_exec. */
+-# endif
+ #endif
+
+ #ifdef __USE_LARGEFILE64
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/m68k/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/m68k/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/m68k/bits/fcntl.h 2009-11-26 13:35:06.748316654 +0100
+@@ -49,6 +49,7 @@
+ # define O_NOFOLLOW 0100000 /* Do not follow links. */
+ # define O_DIRECT 0200000 /* Direct disk access. */
+ # define O_NOATIME 01000000 /* Do not set atime. */
++# define O_CLOEXEC 02000000 /* set close_on_exec */
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/microblaze/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/microblaze/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/microblaze/bits/fcntl.h 2009-11-26 13:39:20.148703335 +0100
+@@ -46,6 +46,8 @@
+ # define O_NOFOLLOW 0100000 /* Do not follow links. */
+ # define O_DIRECT 0200000 /* Direct disk access. */
+ # define O_STREAMING 04000000/* streaming access */
++# define O_NOATIME 01000000/* Do not set atime. */
++# define O_CLOEXEC 02000000/* set close_on_exec */
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/mips/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/fcntl.h 2009-11-26 13:35:06.748316654 +0100
+@@ -51,6 +51,7 @@
+ # define O_DIRECT 0x8000 /* Direct disk access hint. */
+ # define O_DIRECTORY 0x10000 /* Must be a directory. */
+ # define O_NOATIME 0x40000 /* Do not set atime. */
++# define O_CLOEXEC 02000000 /* set close_on_exec */
+ #endif
+
+ /* For now Linux has no synchronisity options for data and read operations.
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/powerpc/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/fcntl.h 2009-11-26 13:35:06.748316654 +0100
+@@ -50,9 +50,7 @@
+ # define O_DIRECTORY 040000 /* Must be a directory. */
+ # define O_NOFOLLOW 0100000 /* Do not follow links. */
+ # define O_NOATIME 01000000 /* Do not set atime. */
+-# if 0
+ # define O_CLOEXEC 02000000 /* Set close_on_exec. */
+-# endif
+ #endif
+
+ #ifdef __USE_LARGEFILE64
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/sh/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/sh/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/sh/bits/fcntl.h 2009-11-26 13:35:06.748316654 +0100
+@@ -50,9 +50,7 @@
+ # define O_DIRECTORY 0200000 /* Must be a directory. */
+ # define O_NOFOLLOW 0400000 /* Do not follow links. */
+ # define O_NOATIME 01000000 /* Do not set atime. */
+-# if 0
+ # define O_CLOEXEC 02000000 /* Set close_on_exec. */
+-# endif
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/sh64/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/sh64/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/sh64/bits/fcntl.h 2009-11-26 13:37:47.554540700 +0100
+@@ -46,6 +46,8 @@
+ # define O_DIRECTORY 0200000 /* Must be a directory. */
+ # define O_NOFOLLOW 0400000 /* Do not follow links. */
+ # define O_STREAMING 04000000/* streaming access */
++# define O_NOATIME 01000000/* Do not set atime. */
++# define O_CLOEXEC 02000000/* set close_on_exec */
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/sparc/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/fcntl.h 2009-11-26 13:35:06.751656343 +0100
+@@ -49,9 +49,7 @@
+ # define O_NOFOLLOW 0x20000 /* don't follow links */
+ # define O_DIRECT 0x100000 /* direct disk access hint */
+ # define O_NOATIME 0x200000 /* Do not set atime. */
+-# if 0
+ # define O_CLOEXEC 0x400000 /* Set close_on_exit. */
+-# endif
+ #endif
+
+ #ifdef __USE_LARGEFILE64
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/x86_64/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/x86_64/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/x86_64/bits/fcntl.h 2009-11-26 13:35:06.751656343 +0100
+@@ -50,9 +50,7 @@
+ # define O_DIRECTORY 0200000 /* Must be a directory. */
+ # define O_NOFOLLOW 0400000 /* Do not follow links. */
+ # define O_NOATIME 01000000 /* Do not set atime. */
+-# if 0
+ # define O_CLOEXEC 02000000 /* Set close_on_exec. */
+-# endif
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/xtensa/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/xtensa/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/xtensa/bits/fcntl.h 2009-11-26 13:35:06.751656343 +0100
+@@ -50,6 +50,7 @@
+ # define O_DIRECTORY 0200000 /* Must be a directory. */
+ # define O_NOFOLLOW 0400000 /* Do not follow links. */
+ # define O_NOATIME 01000000 /* Do not set atime. */
++# define O_CLOEXEC 02000000 /* set close_on_exec */
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
diff --git a/recipes/uclibc/uclibc-initial_0.9.28.bb b/recipes/uclibc/uclibc-initial_0.9.28.bb
index e0b93f9418..ed290220c3 100644
--- a/recipes/uclibc/uclibc-initial_0.9.28.bb
+++ b/recipes/uclibc/uclibc-initial_0.9.28.bb
@@ -5,30 +5,24 @@ DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
PACKAGES = ""
-do_stage() {
+do_install() {
# Install initial headers into the cross dir
- make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ make PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
pregen install_dev
- install -d ${CROSS_DIR}/${TARGET_SYS}
- ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
+ #install -d ${CROSS_DIR}/${TARGET_SYS}
+ #ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
# This conflicts with the c++ version of this header
- rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
- install -d ${UCLIBC_STAGE_PREFIX}/lib
- install -m 644 libc/sysdeps/linux/${TARGET_ARCH}/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
- install -m 644 libc/libc.so ${UCLIBC_STAGE_PREFIX}/lib
-
-}
+ rm -f ${D}${includedir}/bits/atomicity.h
+ install -d ${D}${libdir}/
+ install -m 644 libc/sysdeps/linux/${TARGET_ARCH}/crt[1in].o ${D}${libdir}/
+ install -m 644 libc/libc.so ${D}${libdir}/
-do_install() {
- :
}
do_compile () {
- make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ make PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
libc/sysdeps/linux/${TARGET_ARCH}/crt1.o \
libc/sysdeps/linux/${TARGET_ARCH}/crti.o \
libc/sysdeps/linux/${TARGET_ARCH}/crtn.o
diff --git a/recipes/uclibc/uclibc-initial_0.9.29.bb b/recipes/uclibc/uclibc-initial_0.9.29.bb
index f7abdec20f..94aa4efdc9 100644
--- a/recipes/uclibc/uclibc-initial_0.9.29.bb
+++ b/recipes/uclibc/uclibc-initial_0.9.29.bb
@@ -5,30 +5,23 @@ DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
PACKAGES = ""
-do_stage() {
+do_install() {
# Install initial headers into the cross dir
- make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ make PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
pregen install_dev
- install -d ${CROSS_DIR}/${TARGET_SYS}
- ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
+ #install -d ${CROSS_DIR}/${TARGET_SYS}
+ #ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
# This conflicts with the c++ version of this header
- rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
- install -d ${UCLIBC_STAGE_PREFIX}/lib
- install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
- install -m 644 lib/libc.so ${UCLIBC_STAGE_PREFIX}/lib
-
-}
-
-do_install() {
- :
+ rm -f ${D}${includedir}/bits/atomicity.h
+ install -d ${D}${libdir}/
+ install -m 644 lib/crt[1in].o ${D}${libdir}/
+ install -m 644 lib/libc.so ${D}${libdir}/
}
do_compile () {
- make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ make PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
lib/crt1.o lib/crti.o lib/crtn.o
${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
-o lib/libc.so
diff --git a/recipes/uclibc/uclibc-initial_0.9.30.1.bb b/recipes/uclibc/uclibc-initial_0.9.30.1.bb
index 46c0f66697..a9fa146023 100644
--- a/recipes/uclibc/uclibc-initial_0.9.30.1.bb
+++ b/recipes/uclibc/uclibc-initial_0.9.30.1.bb
@@ -5,27 +5,21 @@ DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
PACKAGES = ""
-do_stage() {
+do_install() {
# Install initial headers into the cross dir
- make V=1 CC="${CC}" PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ make V=1 CC="${CC}" PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
install_headers
- ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
+ #ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
# This conflicts with the c++ version of this header
- rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
- install -d ${UCLIBC_STAGE_PREFIX}/lib
- install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
- install -m 644 lib/libc.so ${UCLIBC_STAGE_PREFIX}/lib
-}
-
-do_install() {
- :
+ rm -f ${D}${includedir}/bits/atomicity.h
+ install -d ${D}${libdir}/
+ install -m 644 lib/crt[1in].o ${D}${libdir}/
+ install -m 644 lib/libc.so ${D}${libdir}/
}
do_compile () {
- make V=1 CC="${CC}" PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ make V=1 CC="${CC}" PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
lib/crt1.o lib/crti.o lib/crtn.o
${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
-o lib/libc.so
diff --git a/recipes/uclibc/uclibc-initial_0.9.30.bb b/recipes/uclibc/uclibc-initial_0.9.30.bb
index 7d8c9c037f..84c35c8d1e 100644
--- a/recipes/uclibc/uclibc-initial_0.9.30.bb
+++ b/recipes/uclibc/uclibc-initial_0.9.30.bb
@@ -5,28 +5,22 @@ DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
PACKAGES = ""
-do_stage() {
+do_install() {
# Install initial headers into the cross dir
- make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ make PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
install_headers
- ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
+ #ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
# This conflicts with the c++ version of this header
- rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
- install -d ${UCLIBC_STAGE_PREFIX}/lib
- install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
- install -m 644 lib/libc.so ${UCLIBC_STAGE_PREFIX}/lib
-}
-
-do_install() {
- :
+ rm -f ${D}${includedir}/bits/atomicity.h
+ install -d ${D}${libdir}/
+ install -m 644 lib/crt[1in].o ${D}${libdir}/
+ install -m 644 lib/libc.so ${D}${libdir}/
}
do_compile () {
- make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ make PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
lib/crt1.o lib/crti.o lib/crtn.o
${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
-o lib/libc.so
diff --git a/recipes/uclibc/uclibc-initial_git.bb b/recipes/uclibc/uclibc-initial_git.bb
index a0077b167a..00330e2439 100644
--- a/recipes/uclibc/uclibc-initial_git.bb
+++ b/recipes/uclibc/uclibc-initial_git.bb
@@ -5,27 +5,21 @@ DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
PACKAGES = ""
-do_stage() {
+do_install() {
# Install initial headers into the cross dir
- make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ make V=1 CC="${CC}" PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
install_headers
- ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
+ #ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
# This conflicts with the c++ version of this header
- rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
- install -d ${UCLIBC_STAGE_PREFIX}/lib
- install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
- install -m 644 lib/libc.so ${UCLIBC_STAGE_PREFIX}/lib
-}
-
-do_install() {
- :
+ rm -f ${D}${includedir}/bits/atomicity.h
+ install -d ${D}${libdir}/
+ install -m 644 lib/crt[1in].o ${D}${libdir}/
+ install -m 644 lib/libc.so ${D}${libdir}/
}
do_compile () {
- make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ make V=1 CC="${CC}" PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
lib/crt1.o lib/crti.o lib/crtn.o
${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
-o lib/libc.so
diff --git a/recipes/uclibc/uclibc-initial_nptl.bb b/recipes/uclibc/uclibc-initial_nptl.bb
index dc376f5bce..a7c079b458 100644
--- a/recipes/uclibc/uclibc-initial_nptl.bb
+++ b/recipes/uclibc/uclibc-initial_nptl.bb
@@ -5,31 +5,22 @@ DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
PACKAGES = ""
-do_stage() {
+do_install() {
# Install initial headers into the cross dir
- make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- install_headers V=1
-
- ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
+ make V=1 PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
+ install_headers
+ #ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
# This conflicts with the c++ version of this header
-
- rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
- install -d ${UCLIBC_STAGE_PREFIX}/lib
- install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
- install -m 644 lib/libc.so ${UCLIBC_STAGE_PREFIX}/lib
-
-}
-
-do_install() {
- :
+ rm -f ${D}${includedir}/bits/atomicity.h
+ install -d ${D}${libdir}/
+ install -m 644 lib/crt[1in].o ${D}${libdir}/
+ install -m 644 lib/libc.so ${D}${libdir}/
}
do_compile () {
- make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- lib/crt1.o lib/crti.o lib/crtn.o V=1
+ make V=1 PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
+ lib/crt1.o lib/crti.o lib/crtn.o
${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
-o lib/libc.so
}
diff --git a/recipes/uclibc/uclibc-nptl/uClibc.distro b/recipes/uclibc/uclibc-nptl/uClibc.distro
index cd1ee359fc..ebd16563f0 100644
--- a/recipes/uclibc/uclibc-nptl/uClibc.distro
+++ b/recipes/uclibc/uclibc-nptl/uClibc.distro
@@ -29,6 +29,7 @@ UCLIBC_DYNAMIC_ATEXIT=y
COMPAT_ATEXIT=y
UCLIBC_SUSV3_LEGACY=y
UCLIBC_SUSV3_LEGACY_MACROS=y
+UCLIBC_SUSV4_LEGACY=y
UCLIBC_HAS_SHADOW=y
UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
UCLIBC_HAS___PROGNAME=y
diff --git a/recipes/uclibc/uclibc.inc b/recipes/uclibc/uclibc.inc
index 88f62fa557..903aea27b9 100644
--- a/recipes/uclibc/uclibc.inc
+++ b/recipes/uclibc/uclibc.inc
@@ -73,7 +73,6 @@ SRC_URI = "${@['${UCLIBC_LOCALE_URI}', ''][bb.data.getVar('USE_NLS', d, 1) != 'y
file://uClibc.config \
http://www.uclibc.org/downloads/uClibc-${PV}.tar.bz2 \
"
-UCLIBC_STAGE_PREFIX = "${STAGING_DIR_HOST}${layout_prefix}"
# do_stage barfs on a CC with whitepspace, therefore put the 'HOST_CC_ARCH' in
# the CFLAGS (for when building the utils).
@@ -92,6 +91,9 @@ KERNEL_HEADERS = "${STAGING_INCDIR}"
# ARCH_WANTS_BIG_ENDIAN=y
# ARCH_WANTS_LITTLE_ENDIAN is not set
+# How to enable verbose logs:
+#export VERBOSE="1"
+
configmangle = 's,^KERNEL_SOURCE=.*,KERNEL_SOURCE="${KERNEL_SOURCE}",g; \
s,^KERNEL_HEADERS=.*,KERNEL_HEADERS="${KERNEL_HEADERS}",g; \
s,^RUNTIME_PREFIX=.*,RUNTIME_PREFIX="/",g; \
@@ -156,69 +158,26 @@ do_configure() {
yes '' | oe_runmake oldconfig
}
-do_stage() {
- # This MUST be done first because we
- # will install crt1.o in the install_dev stage and gcc needs it
-
- # Install into the staging dir
- oe_runmake PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- install_dev install_runtime
-
- # We don't really need this
- rm -f ${UCLIBC_STAGE_PREFIX}/include/.cvsignore
-
- # Fixup shared lib symlinks
- ( cd ${UCLIBC_STAGE_PREFIX}/lib
- for f in c crypt dl m nsl pthread resolv thread_db util; do
- ln -sf lib${f}.so.? lib${f}.so
- done
- )
-
- # This conflicts with the c++ version of this header
- rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
-}
-
do_install() {
- # Tis MUST be done first because we
- # will install crt1.o in the install_dev stage and gcc needs it)
- oe_runmake STRIPTOOL=true PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- install_dev install_runtime
-
- oe_runmake STRIPTOOL=true PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
+ oe_runmake PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
install_dev install_runtime
+ # Need to overwrite the version from -initial
+ #if [ ! -e ${D}${libdir}/libc.so ]; then
+ # ln -s ../../lib/libc.so.0 ${D}${libdir}/libc.so
+ #fi
+
# We don't really need this in ${includedir}
rm -f ${D}${prefix}/include/.cvsignore
# This conflicts with the c++ version of this header
rm -f ${D}${prefix}/include/bits/atomicity.h
- # ugh.. uclibc doesn't like obeying our path variables.
- if [ "${includedir}" != "${prefix}/include" ]; then
- install -d ${D}${includedir}
- mv ${D}${prefix}/include/* ${D}${includedir}/
- rmdir ${D}${prefix}/include
- fi
-
- if [ "${libdir}" != "${prefix}/lib" ]; then
- install -d ${D}${libdir}
- mv ${D}${prefix}/lib/* ${D}${libdir}/
- rmdir ${D}${prefix}/lib
- fi
-
oe_runmake "SSP_ALL_CFLAGS=${TARGET_LINK_HASH_STYLE}" utils
oe_runmake STRIPTOOL=true PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
install_utils
# oe_runstrip needs +x on files
chmod +x ${D}/${base_libdir}/*
-
- if [ "${bindir}" != "/usr/bin" ]; then
- install -d ${D}${bindir}
- mv ${D}/usr/bin/* ${D}${bindir}/
- rmdir ${D}/usr/bin
- fi
}
diff --git a/recipes/uclibc/uclibc_0.9.30.1.bb b/recipes/uclibc/uclibc_0.9.30.1.bb
index 1f8162edfc..47b44cde31 100644
--- a/recipes/uclibc/uclibc_0.9.30.1.bb
+++ b/recipes/uclibc/uclibc_0.9.30.1.bb
@@ -9,7 +9,7 @@
UCLIBC_BASE ?= "0.9.30.1"
require uclibc.inc
-PR = "${INC_PR}.1"
+PR = "${INC_PR}.4"
PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
@@ -22,6 +22,8 @@ SRC_URI += "file://uClibc.machine file://uClibc.distro \
file://gcc-4.4-fixlet.patch;patch=1 \
file://uclibc-c99-ldbl-math.patch;patch=1 \
file://Use-__always_inline-instead-of-__inline__.patch;patch=1 \
+ file://installfix.patch;patch=1 \
+ file://o_cloexec.patch;patch=1 \
"
#recent versions uclibc require real kernel headers
PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/recipes/uclibc/uclibc_nptl.bb b/recipes/uclibc/uclibc_nptl.bb
index aee29d86a5..d5d6d1ab20 100644
--- a/recipes/uclibc/uclibc_nptl.bb
+++ b/recipes/uclibc/uclibc_nptl.bb
@@ -7,7 +7,7 @@
# on whether the base patches apply to the selected (SRCDATE) svn release.
#
UCLIBC_BASE ?= "0.9.30"
-SRCREV="af694a224ba5aa069d533931e10725c45295148d"
+SRCREV="8a6a88f5032ccbc3bfb8836c783a55316b156481"
PV = "${UCLIBC_BASE}+gitr${SRCREV}"
DEFAULT_PREFERENCE = "-1"
#DEFAULT_PREFERENCE is 0 (empty), releases have a preference of 1 so take
@@ -37,3 +37,6 @@ SRC_URI = "git://uclibc.org/uClibc.git;protocol=git;branch=nptl \
"
S = "${WORKDIR}/git"
+
+ARM_INSTRUCTION_SET = "arm"
+
diff --git a/recipes/udev/udev_141.bb b/recipes/udev/udev_141.bb
index a0e0381549..e07150df65 100644
--- a/recipes/udev/udev_141.bb
+++ b/recipes/udev/udev_141.bb
@@ -6,7 +6,7 @@ LICENSE = "GPL"
# Untested
DEFAULT_PREFERENCE = "-1"
-PR = "r13"
+PR = "r18"
# needed for init.d script
RDEPENDS_${PN} += "udev-utils"
@@ -70,7 +70,6 @@ do_install () {
# This is hardcoded to $(udev_prefix)/lib/udev/rules.d in the
# Makefile, even if libdir is lib64.
mv ${D}/lib/udev/rules.d ${D}${sysconfdir}/udev/
- ln -sf ${sysconfdir}/udev/rules.d ${D}/lib/udev/
cp ${S}/rules/rules.d/* ${D}${sysconfdir}/udev/rules.d/
cp ${S}/rules/packages/* ${D}${sysconfdir}/udev/rules.d/
@@ -99,9 +98,25 @@ do_install_append_h2200() {
install -m 0644 ${WORKDIR}/50-hostap_cs.rules ${D}${sysconfdir}/udev/rules.d/50-hostap_cs.rules
}
+pkg_postinst_${PN}_append() {
+if [ -d $D/lib/udev/rules.d ] ; then
+ echo "$D/lib/udev/rules.d is not a symlink, fixing that"
+ mv $D/lib/udev/rules.d/* $D${sysconfdir}/udev/rules.d/
+ rm -rf $D/lib/udev/rules.d
+ ln -sf ${sysconfdir}/udev/rules.d $D/lib/udev/
+fi
+}
do_stage_append() {
install -m 0644 ${S}/extras/volume_id/lib/libvolume_id.h ${STAGING_INCDIR}
oe_libinstall -C extras/volume_id/lib -so libvolume_id ${STAGING_LIBDIR}
oe_libinstall -C udev/lib -so libudev ${STAGING_LIBDIR}
+ # Since we change exec_prefix above, autotools_stage_all will not see the .pc files
+ # When we upgrade to 145 with the path bugs fixed we can drop all this (see poky)
+ install -d ${STAGING_DIR_TARGET}${prefix}${libdir}/pkgconfig/
+ install ${S}/extras/volume_id/lib/libvolume_id.pc ${STAGING_DIR_TARGET}${prefix}${libdir}/pkgconfig/
+ install ${S}/udev/lib/libudev.pc ${STAGING_DIR_TARGET}${prefix}${libdir}/pkgconfig/
+ install -d ${STAGING_DIR_TARGET}${prefix}${includedir}/
+ install ${S}/extras/volume_id/lib/libvolume_id.h ${STAGING_DIR_TARGET}${prefix}${includedir}/
+ install ${S}/udev/lib/libudev.h ${STAGING_DIR_TARGET}${prefix}${includedir}/
}
diff --git a/recipes/usb-gadget-mode/files/shr/usb-gadget.conf b/recipes/usb-gadget-mode/files/shr/usb-gadget.conf
new file mode 100644
index 0000000000..717687d4c3
--- /dev/null
+++ b/recipes/usb-gadget-mode/files/shr/usb-gadget.conf
@@ -0,0 +1,3 @@
+USB_MODE="networking"
+MODULE_OPTIONS=""
+
diff --git a/recipes/usb-gadget-mode/files/usb-gadget b/recipes/usb-gadget-mode/files/usb-gadget
index 3f25edccd4..8da88ad009 100755
--- a/recipes/usb-gadget-mode/files/usb-gadget
+++ b/recipes/usb-gadget-mode/files/usb-gadget
@@ -23,16 +23,16 @@ go() {
test -e "$CONF_FILE" && . "$CONF_FILE"
case "$USB_MODE" in
- networking) setup_usb g_ether "$MODULE_OPTIONS" ;;
- zero) setup_usb g_zero "$MODULE_OPTIONS" ;;
- midi) setup_usb g_midi "$MODULE_OPTIONS" ;;
- printer) setup_usb g_printer "$MODULE_OPTIONS" ;;
- gadgetfs) setup_usb gadgetfs "$MODULE_OPTIONS" ;;
- composite) setup_usb g_cdc "$MODULE_OPTIONS" ;;
- serial) setup_usb g_serial "$MODULE_OPTIONS" ;;
- storage) setup_usb g_file_storage "$MODULE_OPTIONS" ;;
+ networking) setup_usb g_ether ;;
+ zero) setup_usb g_zero ;;
+ midi) setup_usb g_midi ;;
+ printer) setup_usb g_printer ;;
+ gadgetfs) setup_usb gadgetfs ;;
+ composite) setup_usb g_cdc ;;
+ serial) setup_usb g_serial ;;
+ storage) setup_usb g_file_storage ;;
hostmode) unload_usb_gadgets
- setup_usb ohci_hcd "$MODULE_OPTIONS" ;;
+ setup_usb ohci_hcd ;;
none) unload_usb_gadgets ;;
esac
@@ -44,7 +44,7 @@ setup_usb() {
then
unload_usb_gadgets
echo "Loading [$1]"
- modprobe "$1" "$MODULE_OPTIONS"
+ modprobe "$1" $MODULE_OPTIONS
else
echo "Already loaded: [$1]"
fi
diff --git a/recipes/usb-gadget-mode/usb-gadget-mode.bb b/recipes/usb-gadget-mode/usb-gadget-mode.bb
index 8abb319405..c8de395660 100644
--- a/recipes/usb-gadget-mode/usb-gadget-mode.bb
+++ b/recipes/usb-gadget-mode/usb-gadget-mode.bb
@@ -9,7 +9,7 @@ DESCRIPTION = "Manage the default USB gadget mode"
SECTION = "console/network"
LICENSE = "GPL"
PV = "0.0.2"
-PR = "r4"
+PR = "r6"
SRC_URI = "\
file://usb-gadget.conf \
diff --git a/recipes/usbpath/usbpath_svn.bb b/recipes/usbpath/usbpath_svn.bb
index d21d320a7d..16e7b0e4ef 100644
--- a/recipes/usbpath/usbpath_svn.bb
+++ b/recipes/usbpath/usbpath_svn.bb
@@ -4,7 +4,7 @@ SECTION = "console/utils"
LICENSE = "GPL"
DEPENDS = "virtual/libusb0"
-PV = "0.0+svnr${SRCREV}"
+PV = "0.0+svnr${SRCPV}"
SRC_URI = "svn://svn.openmoko.org/trunk/src/host;module=usbpath;proto=http"
diff --git a/recipes/vala/vala-native_0.7.8.2.bb b/recipes/vala/vala-native_0.7.8.2.bb
new file mode 100644
index 0000000000..d6c239f7bf
--- /dev/null
+++ b/recipes/vala/vala-native_0.7.8.2.bb
@@ -0,0 +1,3 @@
+require vala_${PV}.bb
+inherit native
+DEPENDS = "glib-2.0-native"
diff --git a/recipes/vala/vala-native_git.bb b/recipes/vala/vala-native_git.bb
deleted file mode 100644
index 545849b9d3..0000000000
--- a/recipes/vala/vala-native_git.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-require vala.inc
-inherit native
-
-DEPENDS = "glib-2.0-native"
-# vala from git always needs the latest released version to compile itself
-DEPENDS += "vala-bootstrap-native"
-PV = "0.6.0-fso1-gitr${SRCREV}"
-
-SRC_URI = "\
- ${FREESMARTPHONE_GIT}/vala-lang;protocol=git;branch=mickey/0.6/posix \
- file://static-dbus-methods.patch;patch=1 \
-"
-S = "${WORKDIR}/git"
diff --git a/recipes/vala/vala.inc b/recipes/vala/vala.inc
index f45d557c88..258a3f7498 100644
--- a/recipes/vala/vala.inc
+++ b/recipes/vala/vala.inc
@@ -4,7 +4,7 @@ SECTION = "devel"
DEPENDS = "glib-2.0 dbus"
HOMEPAGE = "http://vala-project.org"
LICENSE = "LGPL"
-INC_PR = "r1"
+INC_PR = "r2"
SRC_URI = "http://www.freesmartphone.org/sources/vala-${PV}.tar.gz"
diff --git a/recipes/vala/vala_0.7.8.2.bb b/recipes/vala/vala_0.7.8.2.bb
new file mode 100644
index 0000000000..a5b1958f2c
--- /dev/null
+++ b/recipes/vala/vala_0.7.8.2.bb
@@ -0,0 +1,2 @@
+require vala.inc
+PR = "${INC_PR}.0"
diff --git a/recipes/vnc/x11vnc_0.9.8.bb b/recipes/vnc/x11vnc_0.9.8.bb
new file mode 100644
index 0000000000..f3d706be5b
--- /dev/null
+++ b/recipes/vnc/x11vnc_0.9.8.bb
@@ -0,0 +1,10 @@
+DESCRIPTION = "Export your X session on-the-fly via VNC"
+HOMEPAGE = "http://www.karlrunge.com/x11vnc/"
+AUTHOR = "Karl Runge"
+SECTION = "x11/utils"
+LICENSE = "GPL"
+DEPENDS = "openssl virtual/libx11 libxtst libxext avahi jpeg zlib"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/libvncserver/x11vnc-${PV}.tar.gz"
+
+inherit autotools
diff --git a/recipes/webif/webif_svn.bb b/recipes/webif/webif_svn.bb
index 8e84293c2d..f5c8d8aa5d 100644
--- a/recipes/webif/webif_svn.bb
+++ b/recipes/webif/webif_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Web interface"
LICENSE = "GPL"
-PV = "0.0.3+svnr${SRCREV}"
+PV = "0.0.3+svnr${SRCPV}"
SRCREV = "4737"
SRC_URI = "svn://x-wrt.googlecode.com/svn;module=trunk;proto=http"
diff --git a/recipes/webkit/arora-e_0.10.1.bb b/recipes/webkit/arora-e_0.10.1.bb
new file mode 100644
index 0000000000..a526fda715
--- /dev/null
+++ b/recipes/webkit/arora-e_0.10.1.bb
@@ -0,0 +1,3 @@
+inherit qt4e
+
+require arora.inc
diff --git a/recipes/webkit/arora.inc b/recipes/webkit/arora.inc
new file mode 100644
index 0000000000..bbd8bfb33e
--- /dev/null
+++ b/recipes/webkit/arora.inc
@@ -0,0 +1,45 @@
+DESCRIPTION = "Arora is a lightweight cross-platform web browser"
+LICENE = "GPLv2"
+HOMEPAGE = "http://code.google.com/p/arora/"
+
+PR = "r1"
+
+SRC_URI = "http://arora.googlecode.com/files/arora-${PV}.tar.gz"
+
+S = "${WORKDIR}/arora-${PV}"
+
+do_configure_prepend() {
+ sed -i -e s:lrelease-qt4:${OE_QMAKE_LRELEASE}:g ${S}/src/locale/locale.pri
+}
+
+# Huge hack ahead:
+# Something is putting '.libs' in the Makefiles, which we do now want. The problem is that qmake generates makefiles during 'make all' *sigh*
+do_compile_prepend() {
+ ( oe_runmake src/Makefile tools/Makefile
+ cd ${S}/tools ; oe_runmake cacheinfo/Makefile htmlToXBel/Makefile placesimport/Makefile
+ )
+
+ for i in $(find ${S} -name 'Makefile') ; do
+ sed -i -e 's:/.libs::g' $i
+ make || true
+ done
+
+}
+
+do_install() {
+ sed -i -e s:/usr/local:${D}${prefix}:g install.pri
+ sed -i -e s:$(INSTALL_ROOT)/OE/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/arora-0.10.1-r0/image/:$(INSTALL_ROOT)/:g src/Makefile
+
+ for i in $(find ${S} -name 'Makefile') ; do
+ sed -i -e s:/usr/local:${prefix}:g $i
+ done
+
+ oe_runmake -e INSTALL_ROOT=${D} install
+ cp -r ${D}/${D}/* ${D}/ || true
+ cp -r ${D}/usr/local/* ${D}${prefix} || true
+ rm -rf ${D}/usr/local ${D}/${D}
+}
+
+FILES_${PN} += "${datadir}/arora ${datadir}/gnome-control-center ${datadir}/icons"
+
+
diff --git a/recipes/webkit/arora_0.10.1.bb b/recipes/webkit/arora_0.10.1.bb
new file mode 100644
index 0000000000..ea90c4538a
--- /dev/null
+++ b/recipes/webkit/arora_0.10.1.bb
@@ -0,0 +1,3 @@
+inherit qt4x11
+
+require arora.inc
diff --git a/recipes/webkit/webkit-efl_git.bb b/recipes/webkit/webkit-efl_git.bb
new file mode 100644
index 0000000000..6dca9e049c
--- /dev/null
+++ b/recipes/webkit/webkit-efl_git.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = " Webkit browser engine, EFL edition"
+LICENSE = "GPL"
+DEPENDS = "icu flex gst-plugins-base gstreamer jpeg libpng libxml2 pango \
+ libsoup-2.4 eina ecore evas edje cairo fontconfig freetype curl \
+ sqlite3 libxslt gperf-native libxt"
+
+PV = "1.1.11+gitr${SRCREV}"
+PR = "r1"
+
+SRC_URI = "git://gitorious.org/webkit-efl/webkit-efl.git;protocol=git;branch=master"
+
+S = "${WORKDIR}/git"
+
+inherit autotools lib_package pkgconfig
+
+EXTRA_OECONF = "--disable-video --host=${TARGET_SYS} --with-port=efl --enable-web-workers=no"
+
+PACKAGES =+ "${PN}-webinspector"
+
+FILES_${PN} += "${datadir}/webkit-1.0/resources/error.html ${datadir}/webkit-1.0/theme/default.edj"
+FILES_${PN}-webinspector = "${datadir}/webkit-1.0/webinspector/"
diff --git a/recipes/webkit/webkit-gtk_svn.bb b/recipes/webkit/webkit-gtk_svn.bb
index b2f2baaede..96f47f1663 100644
--- a/recipes/webkit/webkit-gtk_svn.bb
+++ b/recipes/webkit/webkit-gtk_svn.bb
@@ -4,7 +4,7 @@ DEPENDS = "enchant gtk-doc-native gtk-doc gnome-keyring libsoup-2.4 curl icu lib
SRCREV_FORMAT = "webcore-rwebkit"
SRCREV = "50081"
-PV = "1.1.16+svnr${SRCREV}"
+PV = "1.1.16+svnr${SRCPV}"
SRC_URI = "\
svn://svn.webkit.org/repository/webkit/trunk/;module=JavaScriptCore;proto=http \
@@ -24,7 +24,7 @@ SRC_URI = "\
S = "${WORKDIR}/"
-inherit autotools pkgconfig lib_package
+inherit autotools lib_package
export BISON="${STAGING_BINDIR_NATIVE}/bison"
ARM_INSTRUCTION_SET = "arm"
@@ -60,10 +60,6 @@ do_compile_prepend() {
cd ${S}
}
-do_stage() {
- autotools_stage_all
-}
-
PACKAGES =+ "${PN}-webinspector ${PN}launcher-dbg ${PN}launcher libjavascriptcore"
FILES_${PN}launcher = "${bindir}/GtkLauncher"
FILES_${PN}launcher-dbg = "${bindir}/.debug/GtkLauncher"
diff --git a/recipes/webkit/webkit.inc b/recipes/webkit/webkit.inc
index 087115de09..de18cafecb 100644
--- a/recipes/webkit/webkit.inc
+++ b/recipes/webkit/webkit.inc
@@ -5,7 +5,7 @@ SRCREV_FORMAT = "webcore-rwebkit"
PACKAGES =+ "${PN}launcher-dbg ${PN}launcher"
# Yes, this is wrong...
-PV = "0.1+svnr${SRCREV}"
+PV = "0.1+svnr${SRCPV}"
inherit qmake2 pkgconfig
diff --git a/recipes/wlan-ng/wlan-ng-modules_svn.bb b/recipes/wlan-ng/wlan-ng-modules_svn.bb
index c455181c6b..f62ab3734a 100644
--- a/recipes/wlan-ng/wlan-ng-modules_svn.bb
+++ b/recipes/wlan-ng/wlan-ng-modules_svn.bb
@@ -2,7 +2,7 @@ require wlan-ng-modules.inc
PR = "r0"
-PV = "0.2.8+svnr${SRCREV}"
+PV = "0.2.8+svnr${SRCPV}"
SRC_URI += "svn://svn.shaftnet.org/linux-wlan-ng;module=trunk "
diff --git a/recipes/wlan-ng/wlan-ng-utils_svn.bb b/recipes/wlan-ng/wlan-ng-utils_svn.bb
index 096ac22055..bc02eb71a7 100644
--- a/recipes/wlan-ng/wlan-ng-utils_svn.bb
+++ b/recipes/wlan-ng/wlan-ng-utils_svn.bb
@@ -2,7 +2,7 @@ require wlan-ng-utils.inc
PR = "r0"
-PV = "0.2.8+svnr${SRCREV}"
+PV = "0.2.8+svnr${SRCPV}"
SRC_URI += "svn://svn.shaftnet.org/linux-wlan-ng;module=trunk \
file://scripts-makefile-hostcc.patch;patch=1 \
diff --git a/recipes/wmiconfig/wmiconfig_svn.bb b/recipes/wmiconfig/wmiconfig_svn.bb
index 643b2a34aa..e1138adc4e 100644
--- a/recipes/wmiconfig/wmiconfig_svn.bb
+++ b/recipes/wmiconfig/wmiconfig_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Atheros 6K Wifi configuration utility"
LICENSE = "GPL"
SECTION = "console/network"
-PV = "0.0.0+svnr${SRCREV}"
+PV = "0.0.0+svnr${SRCPV}"
PR = "r1"
SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=AR6kSDK.build_sw.18;proto=http"
diff --git a/recipes/wt/wt3-3.0.0/noqt.patch b/recipes/wt/wt3-3.0.0/noqt.patch
new file mode 100644
index 0000000000..48231246d3
--- /dev/null
+++ b/recipes/wt/wt3-3.0.0/noqt.patch
@@ -0,0 +1,19 @@
+Index: wt-3.0.0/CMakeLists.txt
+===================================================================
+--- wt-3.0.0.orig/CMakeLists.txt 2009-11-12 18:50:12.087842114 +0100
++++ wt-3.0.0/CMakeLists.txt 2009-11-12 18:50:42.023261611 +0100
+@@ -111,10 +111,10 @@
+ INCLUDE(cmake/WtFindSsl.txt)
+ INCLUDE(cmake/WtFindMysqlpp.txt)
+
+-FIND_PACKAGE(Qt4)
+-IF(QT_FOUND)
+- INCLUDE(${QT_USE_FILE})
+-ENDIF(QT_FOUND)
++#FIND_PACKAGE(Qt4)
++#IF(QT_FOUND)
++# INCLUDE(${QT_USE_FILE})
++#ENDIF(QT_FOUND)
+
+ # Boost is used nearly everywhere, so we can put these here
+ INCLUDE_DIRECTORIES(${BOOST_INCLUDE_DIRS})
diff --git a/recipes/wt/wt3-3.0.0/wgooglemap.patch b/recipes/wt/wt3-3.0.0/wgooglemap.patch
new file mode 100644
index 0000000000..6827afbbe7
--- /dev/null
+++ b/recipes/wt/wt3-3.0.0/wgooglemap.patch
@@ -0,0 +1,17 @@
+Index: wt-3.0.0/src/Wt/WGoogleMap.C
+===================================================================
+--- wt-3.0.0.orig/src/Wt/WGoogleMap.C 2009-09-01 17:46:54.000000000 +0200
++++ wt-3.0.0/src/Wt/WGoogleMap.C 2009-11-12 16:23:39.614976154 +0100
+@@ -26,6 +26,12 @@
+ using std::min;
+ using std::max;
+
++#if not defined(_GLIBCXX_HAVE__SINL) && not defined(acosl)
++#define cosl cos
++#define acosl acos
++#define sinl sin
++#endif
++
+ #ifndef M_PI
+ #define M_PI 3.14159265358979323846
+ #endif
diff --git a/recipes/wt/wt3.inc b/recipes/wt/wt3.inc
new file mode 100644
index 0000000000..1734212f63
--- /dev/null
+++ b/recipes/wt/wt3.inc
@@ -0,0 +1,29 @@
+DESCRIPTION = "A C++ Web Toolkit"
+PRIORITY = "optional"
+SECTION = "devel"
+LICENSE = "GPL"
+HOMEPAGE = "http://www.webtoolkit.eu/wt"
+DEPENDS = "boost zlib openssl"
+
+INC_PR = "r0"
+
+# package wt3 is for wt 2.99 and wt 3.*
+# the api of these versions is incompatible with 2.*
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/witty/wt-${PV}.tar.gz \
+ file://ext.patch;patch=1 \
+ file://wgooglemap.patch;patch=1"
+
+CXXFLAGS += "-Dsinl=sin -Dcosl=cos -Dasinl=asin"
+
+FILES_${PN} += "${datadir}/Wt"
+FILES_${PN}-dev += "${datadir}/cmake-2.*"
+
+S = "${WORKDIR}/wt-${PV}"
+
+inherit cmake
+
+EXTRA_OECMAKE = "-DBOOST_DIR=${STAGING_DIR_HOST}${prefix} \
+ -DUseQt4=0 \
+ "
+
diff --git a/recipes/wt/wt3/cheader.patch b/recipes/wt/wt3/cheader.patch
new file mode 100644
index 0000000000..6f45b1a27d
--- /dev/null
+++ b/recipes/wt/wt3/cheader.patch
@@ -0,0 +1,24 @@
+Index: wt-2.99.0/src/Wt/Ext/Widget.C
+===================================================================
+--- wt-2.99.0.orig/src/Wt/Ext/Widget.C 2009-11-12 16:13:54.337530490 +0100
++++ wt-2.99.0/src/Wt/Ext/Widget.C 2009-11-12 16:14:35.268780586 +0100
+@@ -16,6 +16,7 @@
+ #include <iostream>
+ #include <sstream>
+ #include <cstring>
++#include <cstdio>
+
+ namespace Wt {
+
+Index: wt-2.99.0/src/Wt/WAbstractItemModel.C
+===================================================================
+--- wt-2.99.0.orig/src/Wt/WAbstractItemModel.C 2009-11-12 16:01:30.927610427 +0100
++++ wt-2.99.0/src/Wt/WAbstractItemModel.C 2009-11-12 16:03:33.458430052 +0100
+@@ -6,6 +6,7 @@
+
+ #include <boost/lexical_cast.hpp>
+ #include <boost/algorithm/string/predicate.hpp>
++#include <cstdio>
+
+ #include "Wt/WModelIndex"
+ #include "Wt/WAbstractItemModel"
diff --git a/recipes/wt/wt3-2.99.0/ext.patch b/recipes/wt/wt3/ext.patch
index 89246ebbf6..89246ebbf6 100644
--- a/recipes/wt/wt3-2.99.0/ext.patch
+++ b/recipes/wt/wt3/ext.patch
diff --git a/recipes/wt/wt3_2.99.0.bb b/recipes/wt/wt3_2.99.0.bb
index fea28494ca..ccfbc31dd8 100644
--- a/recipes/wt/wt3_2.99.0.bb
+++ b/recipes/wt/wt3_2.99.0.bb
@@ -1,41 +1,10 @@
-DESCRIPTION = "A C++ Web Toolkit"
-PRIORITY = "optional"
-SECTION = "devel"
-LICENSE = "GPL"
-HOMEPAGE = "http://www.webtoolkit.eu/wt"
-DEPENDS = "boost zlib openssl"
-PR = "r0"
+require wt3.inc
-# package wt3 is for wt 2.99 and wt 3.*
-# the api of these versions is incompatible with 2.*
+PR = "${INC_PR}.1"
-SRC_URI = "${SOURCEFORGE_MIRROR}/witty/wt-${PV}.tar.gz \
- file://src.patch;patch=1 \
- file://ext.patch;patch=1 \
- file://wgooglemap.patch;patch=1"
-
-CXXFLAGS += "-Dsinl=sin -Dcosl=cos -Dasinl=asin"
-
-FILES_${PN} += "${datadir}/Wt"
-FILES_${PN}-dev += "${datadir}/cmake-2.*"
-
-S = "${WORKDIR}/wt-${PV}"
-
-inherit cmake
-
-STAGE_TEMP = "${WORKDIR}/temp-staging"
+SRC_URI += "file://src.patch;patch=1 \
+ "
do_configure_append() {
- ${BUILD_CXX} ${BUILD_CXXFLAGS} -o src/filetostring src/web/skeleton/FileToString.C
-}
-
-do_stage() {
- rm -rf ${STAGE_TEMP}
- mkdir -p ${STAGE_TEMP}
- oe_runmake DESTDIR="${STAGE_TEMP}" install
- cp -pPR ${STAGE_TEMP}/${includedir}/* ${STAGING_INCDIR}
- cp -pPR ${STAGE_TEMP}/${libdir}/* ${STAGING_LIBDIR}
- cp -pPR ${STAGE_TEMP}/${datadir}/cmake-2.* ${STAGING_DATADIR}
- rm -rf ${STAGE_TEMP}
+ ${BUILD_CXX} ${BUILD_CXXFLAGS} -o src/filetostring src/web/skeleton/FileToString.C
}
-
diff --git a/recipes/wt/wt3_3.0.0.bb b/recipes/wt/wt3_3.0.0.bb
new file mode 100644
index 0000000000..665590a7d4
--- /dev/null
+++ b/recipes/wt/wt3_3.0.0.bb
@@ -0,0 +1,6 @@
+require wt3.inc
+
+PR = "${INC_PR}.1"
+
+SRC_URI += "file://noqt.patch;patch=1"
+
diff --git a/recipes/wv/wv_1.2.0.bb b/recipes/wv/wv_1.2.0.bb
index 7f06f587c4..b3114a5325 100644
--- a/recipes/wv/wv_1.2.0.bb
+++ b/recipes/wv/wv_1.2.0.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Programs for accessing Microsoft Word documents"
HOMEPAGE = "http://wvware.sourceforge.net/"
LICENSE = "GPLv2"
DEPENDS = "libgsf glib-2.0"
-PR = "r3"
+PR = "r4"
SRC_URI = "${SOURCEFORGE_MIRROR}/wvware/wv-${PV}.tar.gz \
file://pkgconfig.patch;patch=1"
@@ -16,3 +16,7 @@ EXTRA_OECONF = ""
do_stage () {
autotools_stage_all
}
+
+do_compile () {
+ oe_runmake -f GNUmakefile
+}
diff --git a/recipes/x-load/x-load-omap3pandora_git.bb b/recipes/x-load/x-load-omap3pandora_git.bb
index c19b719592..05dfc2073c 100644
--- a/recipes/x-load/x-load-omap3pandora_git.bb
+++ b/recipes/x-load/x-load-omap3pandora_git.bb
@@ -4,12 +4,12 @@ COMPATIBLE_MACHINE = "omap3-pandora"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/x-load-${MACHINE}/${MACHINE}"
-SRCREV = "ea866e76420f629614ae3fc828f1525a77e051e8"
+SRCREV = "b3646a83f9e67ec9a2de3182fd254557fd6ad9aa"
PROVIDES = "x-load"
PV = "1.42+${PR}+gitr${SRCREV}"
-PR ="r1"
+PR ="r2"
PE = "1"
SRC_URI = "git://git.openpandora.org/pandora-x-loader.git;branch=master;protocol=git"
diff --git a/recipes/xboard/files/no-strip.patch b/recipes/xboard/files/no-strip.patch
index 5785a9a1f1..7fb8cd5dc5 100644
--- a/recipes/xboard/files/no-strip.patch
+++ b/recipes/xboard/files/no-strip.patch
@@ -1,15 +1,22 @@
-Index: xboard-4.2.7-r0/xboard-4.2.7/Makefile.in
+Index: xboard-4.4.1-r0/xboard-4.4.1/Makefile.in
===================================================================
---- xboard-4.2.7-r0.orig/xboard-4.2.7/Makefile.in
-+++ xboard-4.2.7-r0/xboard-4.2.7/Makefile.in
-@@ -63,8 +63,8 @@ default: xboard zic2xpm
- all: default pseudosource info FAQ html dvi ps
+--- xboard-4.4.1-r0.orig/xboard-4.4.1/Makefile.in
++++ xboard-4.4.1-r0/xboard-4.4.1/Makefile.in
+@@ -939,7 +939,7 @@
- install: installdirs default
-- $(INSTALL_PROGRAM) -s xboard $(bindir)/xboard
-- $(INSTALL_PROGRAM) -s zic2xpm $(bindir)/zic2xpm
-+ $(INSTALL_PROGRAM) xboard $(bindir)/xboard
-+ $(INSTALL_PROGRAM) zic2xpm $(bindir)/zic2xpm
- $(INSTALL_PROGRAM) cmail $(bindir)/cmail
- $(INSTALL_PROGRAM) $(srcdir)/pxboard $(bindir)/pxboard
- $(INSTALL_DATA) $(srcdir)/xboard.man $(man6dir)/xboard$(man6ext)
+ uninstall-man: uninstall-man6
+
+-.MAKE: install-am install-strip
++.MAKE: install-am
+
+ .PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
+ clean-binPROGRAMS clean-generic ctags dist dist-all dist-bzip2 \
+@@ -951,7 +951,7 @@
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-man6 install-pdf \
+- install-pdf-am install-ps install-ps-am install-strip \
++ install-pdf-am install-ps install-ps-am \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-aminfo maintainer-clean-generic \
+ maintainer-clean-vti mostlyclean mostlyclean-aminfo \
diff --git a/recipes/xboard/xboard_4.2.7.bb b/recipes/xboard/xboard_4.4.1.bb
index 1b5a4129a2..0c31b9ced3 100644
--- a/recipes/xboard/xboard_4.2.7.bb
+++ b/recipes/xboard/xboard_4.4.1.bb
@@ -3,11 +3,11 @@ HOMEPAGE = "http://www.tim-mann.org/xboard.html"
SECTION = "games"
LICENSE = "GPL"
DEPENDS = "libxaw libsm libx11 libxt libxmu libxext libice"
-SRC_URI = "http://ftp.gnu.org/gnu/xboard/xboard-4.2.7.tar.gz \
- file://no-strip.patch;patch=1;pnum=2"
+SRC_URI = "http://ftp.gnu.org/gnu/xboard/xboard-${PV}.tar.gz \
+ file://no-strip.patch;patch=1;pnum=2"
inherit autotools
do_configure() {
- oe_runconf --exec-prefix=${D}/${prefix} --prefix=${D}/${prefix} --bindir=${D}/${bindir} --mandir=${D}/${mandir}
+ oe_runconf --exec-prefix=${prefix} --prefix=${D}/${prefix} --bindir=${bindir} --mandir=${D}/${mandir}
}
diff --git a/recipes/xchat/xchat_2.8.6.bb b/recipes/xchat/xchat_2.8.6.bb
index 9be5bd385f..2c5de69fb0 100644
--- a/recipes/xchat/xchat_2.8.6.bb
+++ b/recipes/xchat/xchat_2.8.6.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "http://www.xchat.org"
SECTION = "x11/network"
DEPENDS = "libgcrypt zlib gtk+"
DEPENDS += "gdk-pixbuf-csource-native"
-PR = "r0"
+PR = "r1"
SRC_URI = "http://www.xchat.org/files/source/2.8/xchat-${PV}.tar.bz2"
@@ -13,6 +13,7 @@ inherit autotools
EXTRA_OECONF = "\
--disable-perl \
--disable-python \
+ --disable-tcl \
"
#Fix little bug that slipped into the 2.8.6 release, already fixed upstream.
diff --git a/recipes/xclip/xclip_0.12.bb b/recipes/xclip/xclip_0.12.bb
new file mode 100644
index 0000000000..7f05511913
--- /dev/null
+++ b/recipes/xclip/xclip_0.12.bb
@@ -0,0 +1,10 @@
+DECSRIPTION = "xclip is a command line interface to the X11 clipboard. It can also be used for copying files, as an alternative to sftp/scp, thus avoiding password prompts when X11 forwarding has already been setup."
+LICENSE = "GPLv2"
+
+DEPENDS = "libxmu virtual/libx11 "
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/xclip/${P}.tar.gz"
+
+inherit autotools
+
+
diff --git a/recipes/xfce-extras/gigolo_0.3.2.bb b/recipes/xfce-extras/gigolo_0.3.2.bb
index 22f83538ef..33554347f3 100644
--- a/recipes/xfce-extras/gigolo_0.3.2.bb
+++ b/recipes/xfce-extras/gigolo_0.3.2.bb
@@ -1,10 +1,10 @@
DESCRIPTION = "Gigolo is a frontend to easily manage connections to remote filesystems using GIO/GVfs."
-DEPENDS = "pkgconfig gtk+"
-RDEPENDS = "libxfce4util libxfcegui4"
+DEPENDS = "pkgconfig gtk+ gvfs"
+RDEPENDS = "libxfce4util libxfcegui4 gvfs"
SECTION = "x11"
LICENSE = "GPL-2"
-PR = "r1"
+PR = "r2"
inherit xfce46
diff --git a/recipes/xmltv/files/Makefile.PL.patch b/recipes/xmltv/files/Makefile.PL.patch
new file mode 100644
index 0000000000..7acc2cbf8c
--- /dev/null
+++ b/recipes/xmltv/files/Makefile.PL.patch
@@ -0,0 +1,14 @@
+Index: xmltv-0.5.56/Makefile.PL
+===================================================================
+--- xmltv-0.5.56.orig/Makefile.PL
++++ xmltv-0.5.56/Makefile.PL
+@@ -777,8 +777,7 @@ END
+ die;
+ }
+
+- $info->{install} =
+- ask(0, $msg, not $missing);
++ $info->{install} = not $missing;
+ }
+ }
+ }
diff --git a/recipes/xmltv/xmltv_0.5.54.bb b/recipes/xmltv/xmltv_0.5.54.bb
deleted file mode 100644
index 70005d70f4..0000000000
--- a/recipes/xmltv/xmltv_0.5.54.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION="prerequisites for xmltv"
-
-PARALLEL_MAKE = ""
-SRC_URI="http://downloads.sourceforge.net/xmltv/xmltv-${PV}.tar.bz2"
-
-DEPENDS = "perl libxml-parser-perl-native libwww-perl-native libdate-manip-perl-native \
- libxml-twig-perl-native libxml-writer-perl-native libfile-slurp-perl-native \
- libtermreadkey-perl-native"
-
-PR = "r0"
-
-EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
-
-inherit cpan
diff --git a/recipes/xmltv/xmltv_0.5.56.bb b/recipes/xmltv/xmltv_0.5.56.bb
new file mode 100644
index 0000000000..842ef5fbd1
--- /dev/null
+++ b/recipes/xmltv/xmltv_0.5.56.bb
@@ -0,0 +1,35 @@
+DESCRIPTION="prerequisites for xmltv"
+
+PARALLEL_MAKE = ""
+SRC_URI="http://downloads.sourceforge.net/xmltv/xmltv-${PV}.tar.bz2 \
+ file://Makefile.PL.patch;patch=1"
+
+RDEPENDS = "perl libxml-parser-perl libwww-perl libdate-manip-perl \
+ libxml-twig-perl libxml-writer-perl libfile-slurp-perl \
+ libtermreadkey-perl libarchive-zip-perl libio-zlib-perl \
+ libdate-manip-perl \
+ libhtml-treebuilder-perl libwww-mechanize-perl"
+DEPENDS = "perl libxml-parser-perl-native libwww-perl-native libdate-manip-perl-native \
+ libxml-twig-perl-native libxml-writer-perl-native libfile-slurp-perl-native \
+ libtermreadkey-perl-native libarchive-zip-perl-native libio-zlib-perl-native \
+ libdate-manip-perl-native \
+ libhtml-treebuilder-perl-native libwww-mechanize-perl-native"
+
+PR = "r1"
+
+# cpan does not work, it installs things in the perl work dir iso the xmltv work dir
+# root cause are bad definitions in perl/config.sh, but I don't know what they should be
+# so for now commented out the cpan stuff and do the work myself.
+#EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
+
+#inherit cpan
+
+FILES_${PN} += "${libdir}"
+
+do_configure() {
+ perl Makefile.PL PREFIX=/usr
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D}
+}
diff --git a/recipes/xoo/xoo_svn.bb b/recipes/xoo/xoo_svn.bb
index e9cd7ee9b7..efceab433a 100644
--- a/recipes/xoo/xoo_svn.bb
+++ b/recipes/xoo/xoo_svn.bb
@@ -4,7 +4,7 @@ It is intended for embedded developers that want to simulate a target device \
HOMEPAGE = "http://projects.o-hand.com/xoo"
LICENSE = "GPL"
DEPENDS = "virtual/libx11 libxtst gtk+ libglade expat"
-PV = "0.7+svnr${SRCREV}"
+PV = "0.7+svnr${SRCPV}"
PR = "r1"
SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=Xoo;proto=http \
diff --git a/recipes/xorg-app/xterm_207.bb b/recipes/xorg-app/xterm_207.bb
index f8ed913117..0f31f41de3 100644
--- a/recipes/xorg-app/xterm_207.bb
+++ b/recipes/xorg-app/xterm_207.bb
@@ -10,12 +10,12 @@ inherit autotools pkgconfig
FILES_${PN} += " /usr/lib/X11"
-#EXTRA_OERECONF = " -I${S}/xterm.m4"
-EXTRA_OECONF = " --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR} FREETYPE_CONFIG=${STAGING_BINDIR_CROSS}/freetype-config --disable-imake"
+EXTRA_OECONF = " --x-includes=${STAGING_INCDIR} \
+ --x-libraries=${STAGING_LIBDIR} \
+ FREETYPE_CONFIG=${STAGING_BINDIR_CROSS}/freetype-config \
+ --disable-imake \
+ --disable-setuid"
-#do_configure_prepend () {
-# mv ${S}/aclocal.m4 ${S}/xterm.m4
-#}
do_configure() {
sed -e "s%/usr/contrib/X11R6%${STAGING_LIBDIR}%g" -i configure
diff --git a/recipes/xorg-app/xterm_251.bb b/recipes/xorg-app/xterm_251.bb
new file mode 100644
index 0000000000..004679e3b7
--- /dev/null
+++ b/recipes/xorg-app/xterm_251.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "xterm is the standard terminal emulator for the X Window System."
+SECTION = "x11/applications"
+LICENSE = "MIT-X"
+
+DEPENDS = "libxaw xproto virtual/libx11 xextproto xext xau libxpm ncurses"
+
+SRC_URI = "ftp://invisible-island.net/xterm/${PN}-${PV}.tgz"
+
+inherit autotools pkgconfig
+
+FILES_${PN} += " /usr/lib/X11"
+
+EXTRA_OECONF = " --x-includes=${STAGING_INCDIR} \
+ --x-libraries=${STAGING_LIBDIR} \
+ FREETYPE_CONFIG=${STAGING_BINDIR_CROSS}/freetype-config \
+ --disable-imake \
+ --disable-setuid"
+
+do_configure() {
+
+ sed -e "s%/usr/contrib/X11R6%${STAGING_LIBDIR}%g" -i configure
+
+ oe_runconf
+}
+
+do_stage() {
+ autotools_stage_all
+}
diff --git a/recipes/xorg-driver/xf86-input-evdev_2.2.6.bb b/recipes/xorg-driver/xf86-input-evdev_2.2.6.bb
new file mode 100644
index 0000000000..792909621a
--- /dev/null
+++ b/recipes/xorg-driver/xf86-input-evdev_2.2.6.bb
@@ -0,0 +1,4 @@
+require xorg-driver-input.inc
+
+DESCRIPTION = "X.Org X server -- evdev input driver"
+PE = "1"
diff --git a/recipes/xorg-driver/xf86-input-evdev_2.3.0.bb b/recipes/xorg-driver/xf86-input-evdev_2.3.0.bb
index 792909621a..9160df5b6e 100644
--- a/recipes/xorg-driver/xf86-input-evdev_2.3.0.bb
+++ b/recipes/xorg-driver/xf86-input-evdev_2.3.0.bb
@@ -2,3 +2,6 @@ require xorg-driver-input.inc
DESCRIPTION = "X.Org X server -- evdev input driver"
PE = "1"
+
+DEFAULT_PREFERENCE = "-1"
+DEFAULT_PREFERENCE_shr = "1"
diff --git a/recipes/xorg-font/encodings_1.0.2.bb b/recipes/xorg-font/encodings_1.0.2.bb
index da67d037aa..ecc3eed540 100644
--- a/recipes/xorg-font/encodings_1.0.2.bb
+++ b/recipes/xorg-font/encodings_1.0.2.bb
@@ -1,8 +1,5 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
-#DESCRIPTION = ""
-
-DEPENDS = "mkfontscale-native"
-RDEPENDS = ""
-
+DEPENDS = "mkfontscale-native font-util-native"
diff --git a/recipes/xorg-font/encodings_1.0.3.bb b/recipes/xorg-font/encodings_1.0.3.bb
index aba075c0d8..ecc3eed540 100644
--- a/recipes/xorg-font/encodings_1.0.3.bb
+++ b/recipes/xorg-font/encodings_1.0.3.bb
@@ -1,8 +1,5 @@
require xorg-font-common.inc
PE = "1"
-
-#DESCRIPTION = ""
+PR = "${INC_PR}.0"
DEPENDS = "mkfontscale-native font-util-native"
-RDEPENDS = ""
-
diff --git a/recipes/xorg-font/font-adobe-100dpi_1.0.0.bb b/recipes/xorg-font/font-adobe-100dpi_1.0.0.bb
index e1bdcb5e7a..ae0b32e8fd 100644
--- a/recipes/xorg-font/font-adobe-100dpi_1.0.0.bb
+++ b/recipes/xorg-font/font-adobe-100dpi_1.0.0.bb
@@ -1,3 +1,3 @@
require xorg-font-common.inc
PE = "1"
-
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-adobe-100dpi_1.0.1.bb b/recipes/xorg-font/font-adobe-100dpi_1.0.1.bb
index e1bdcb5e7a..ae0b32e8fd 100644
--- a/recipes/xorg-font/font-adobe-100dpi_1.0.1.bb
+++ b/recipes/xorg-font/font-adobe-100dpi_1.0.1.bb
@@ -1,3 +1,3 @@
require xorg-font-common.inc
PE = "1"
-
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-adobe-75dpi_1.0.0.bb b/recipes/xorg-font/font-adobe-75dpi_1.0.0.bb
index 60ef06fba0..ae0b32e8fd 100644
--- a/recipes/xorg-font/font-adobe-75dpi_1.0.0.bb
+++ b/recipes/xorg-font/font-adobe-75dpi_1.0.0.bb
@@ -1,2 +1,3 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-adobe-75dpi_1.0.1.bb b/recipes/xorg-font/font-adobe-75dpi_1.0.1.bb
index 60ef06fba0..ae0b32e8fd 100644
--- a/recipes/xorg-font/font-adobe-75dpi_1.0.1.bb
+++ b/recipes/xorg-font/font-adobe-75dpi_1.0.1.bb
@@ -1,2 +1,3 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-adobe-utopia-100dpi_1.0.1.bb b/recipes/xorg-font/font-adobe-utopia-100dpi_1.0.1.bb
index 0799b8a97e..897fd018df 100644
--- a/recipes/xorg-font/font-adobe-utopia-100dpi_1.0.1.bb
+++ b/recipes/xorg-font/font-adobe-utopia-100dpi_1.0.1.bb
@@ -3,3 +3,4 @@ require xorg-font-common.inc
DESCRIPTION = "Adobe typeface software"
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-adobe-utopia-100dpi_1.0.2.bb b/recipes/xorg-font/font-adobe-utopia-100dpi_1.0.2.bb
index 0799b8a97e..897fd018df 100644
--- a/recipes/xorg-font/font-adobe-utopia-100dpi_1.0.2.bb
+++ b/recipes/xorg-font/font-adobe-utopia-100dpi_1.0.2.bb
@@ -3,3 +3,4 @@ require xorg-font-common.inc
DESCRIPTION = "Adobe typeface software"
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-adobe-utopia-75dpi_1.0.1.bb b/recipes/xorg-font/font-adobe-utopia-75dpi_1.0.1.bb
index 6e20eb97d8..897fd018df 100644
--- a/recipes/xorg-font/font-adobe-utopia-75dpi_1.0.1.bb
+++ b/recipes/xorg-font/font-adobe-utopia-75dpi_1.0.1.bb
@@ -3,4 +3,4 @@ require xorg-font-common.inc
DESCRIPTION = "Adobe typeface software"
PE = "1"
-
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-adobe-utopia-75dpi_1.0.2.bb b/recipes/xorg-font/font-adobe-utopia-75dpi_1.0.2.bb
index 6e20eb97d8..897fd018df 100644
--- a/recipes/xorg-font/font-adobe-utopia-75dpi_1.0.2.bb
+++ b/recipes/xorg-font/font-adobe-utopia-75dpi_1.0.2.bb
@@ -3,4 +3,4 @@ require xorg-font-common.inc
DESCRIPTION = "Adobe typeface software"
PE = "1"
-
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-adobe-utopia-type1_1.0.1.bb b/recipes/xorg-font/font-adobe-utopia-type1_1.0.1.bb
index 6e20eb97d8..897fd018df 100644
--- a/recipes/xorg-font/font-adobe-utopia-type1_1.0.1.bb
+++ b/recipes/xorg-font/font-adobe-utopia-type1_1.0.1.bb
@@ -3,4 +3,4 @@ require xorg-font-common.inc
DESCRIPTION = "Adobe typeface software"
PE = "1"
-
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-adobe-utopia-type1_1.0.2.bb b/recipes/xorg-font/font-adobe-utopia-type1_1.0.2.bb
index 6e20eb97d8..897fd018df 100644
--- a/recipes/xorg-font/font-adobe-utopia-type1_1.0.2.bb
+++ b/recipes/xorg-font/font-adobe-utopia-type1_1.0.2.bb
@@ -3,4 +3,4 @@ require xorg-font-common.inc
DESCRIPTION = "Adobe typeface software"
PE = "1"
-
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-alias_1.0.1.bb b/recipes/xorg-font/font-alias_1.0.1.bb
index 90eec26a57..5314cbc5db 100644
--- a/recipes/xorg-font/font-alias_1.0.1.bb
+++ b/recipes/xorg-font/font-alias_1.0.1.bb
@@ -5,4 +5,5 @@ DESCRIPTION = "X font aliases."
DEPENDS = "virtual/xserver font-util"
RDEPENDS = "encodings font-util"
-PE = "1" \ No newline at end of file
+PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-alias_1.0.2.bb b/recipes/xorg-font/font-alias_1.0.2.bb
index 90eec26a57..5314cbc5db 100644
--- a/recipes/xorg-font/font-alias_1.0.2.bb
+++ b/recipes/xorg-font/font-alias_1.0.2.bb
@@ -5,4 +5,5 @@ DESCRIPTION = "X font aliases."
DEPENDS = "virtual/xserver font-util"
RDEPENDS = "encodings font-util"
-PE = "1" \ No newline at end of file
+PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-arabic-misc_1.0.0.bb b/recipes/xorg-font/font-arabic-misc_1.0.0.bb
index 6171333d6a..501d4dd979 100644
--- a/recipes/xorg-font/font-arabic-misc_1.0.0.bb
+++ b/recipes/xorg-font/font-arabic-misc_1.0.0.bb
@@ -4,4 +4,4 @@ DESCRIPTION = "100dpi, 24 point (approximately) font to minimally support (almos
of the Arabic characters available in Unicode."
PE = "1"
-
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-arabic-misc_1.0.1.bb b/recipes/xorg-font/font-arabic-misc_1.0.1.bb
index 6171333d6a..501d4dd979 100644
--- a/recipes/xorg-font/font-arabic-misc_1.0.1.bb
+++ b/recipes/xorg-font/font-arabic-misc_1.0.1.bb
@@ -4,4 +4,4 @@ DESCRIPTION = "100dpi, 24 point (approximately) font to minimally support (almos
of the Arabic characters available in Unicode."
PE = "1"
-
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-bh-100dpi_1.0.0.bb b/recipes/xorg-font/font-bh-100dpi_1.0.0.bb
index f8fe553c62..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-bh-100dpi_1.0.0.bb
+++ b/recipes/xorg-font/font-bh-100dpi_1.0.0.bb
@@ -1,3 +1,4 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-bh-100dpi_1.0.1.bb b/recipes/xorg-font/font-bh-100dpi_1.0.1.bb
index f8fe553c62..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-bh-100dpi_1.0.1.bb
+++ b/recipes/xorg-font/font-bh-100dpi_1.0.1.bb
@@ -1,3 +1,4 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-bh-75dpi_1.0.0.bb b/recipes/xorg-font/font-bh-75dpi_1.0.0.bb
index f8fe553c62..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-bh-75dpi_1.0.0.bb
+++ b/recipes/xorg-font/font-bh-75dpi_1.0.0.bb
@@ -1,3 +1,4 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-bh-75dpi_1.0.1.bb b/recipes/xorg-font/font-bh-75dpi_1.0.1.bb
index f8fe553c62..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-bh-75dpi_1.0.1.bb
+++ b/recipes/xorg-font/font-bh-75dpi_1.0.1.bb
@@ -1,3 +1,4 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.0.bb b/recipes/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.0.bb
index f8fe553c62..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.0.bb
+++ b/recipes/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.0.bb
@@ -1,3 +1,4 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.1.bb b/recipes/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.1.bb
index f8fe553c62..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.1.bb
+++ b/recipes/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.1.bb
@@ -1,3 +1,4 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-bh-lucidatypewriter-75dpi_1.0.0.bb b/recipes/xorg-font/font-bh-lucidatypewriter-75dpi_1.0.0.bb
index f8fe553c62..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-bh-lucidatypewriter-75dpi_1.0.0.bb
+++ b/recipes/xorg-font/font-bh-lucidatypewriter-75dpi_1.0.0.bb
@@ -1,3 +1,4 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-bh-lucidatypewriter-75dpi_1.0.1.bb b/recipes/xorg-font/font-bh-lucidatypewriter-75dpi_1.0.1.bb
index f8fe553c62..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-bh-lucidatypewriter-75dpi_1.0.1.bb
+++ b/recipes/xorg-font/font-bh-lucidatypewriter-75dpi_1.0.1.bb
@@ -1,3 +1,4 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-bh-ttf_1.0.0.bb b/recipes/xorg-font/font-bh-ttf_1.0.0.bb
index f8fe553c62..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-bh-ttf_1.0.0.bb
+++ b/recipes/xorg-font/font-bh-ttf_1.0.0.bb
@@ -1,3 +1,4 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-bh-ttf_1.0.1.bb b/recipes/xorg-font/font-bh-ttf_1.0.1.bb
index f8fe553c62..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-bh-ttf_1.0.1.bb
+++ b/recipes/xorg-font/font-bh-ttf_1.0.1.bb
@@ -1,3 +1,4 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-bh-type1_1.0.0.bb b/recipes/xorg-font/font-bh-type1_1.0.0.bb
index f8fe553c62..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-bh-type1_1.0.0.bb
+++ b/recipes/xorg-font/font-bh-type1_1.0.0.bb
@@ -1,3 +1,4 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-bh-type1_1.0.1.bb b/recipes/xorg-font/font-bh-type1_1.0.1.bb
index f8fe553c62..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-bh-type1_1.0.1.bb
+++ b/recipes/xorg-font/font-bh-type1_1.0.1.bb
@@ -1,3 +1,4 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-bitstream-100dpi_1.0.0.bb b/recipes/xorg-font/font-bitstream-100dpi_1.0.0.bb
index f8fe553c62..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-bitstream-100dpi_1.0.0.bb
+++ b/recipes/xorg-font/font-bitstream-100dpi_1.0.0.bb
@@ -1,3 +1,4 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-bitstream-100dpi_1.0.1.bb b/recipes/xorg-font/font-bitstream-100dpi_1.0.1.bb
index f8fe553c62..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-bitstream-100dpi_1.0.1.bb
+++ b/recipes/xorg-font/font-bitstream-100dpi_1.0.1.bb
@@ -1,3 +1,4 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-bitstream-75dpi_1.0.0.bb b/recipes/xorg-font/font-bitstream-75dpi_1.0.0.bb
index 60ef06fba0..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-bitstream-75dpi_1.0.0.bb
+++ b/recipes/xorg-font/font-bitstream-75dpi_1.0.0.bb
@@ -1,2 +1,4 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-bitstream-75dpi_1.0.1.bb b/recipes/xorg-font/font-bitstream-75dpi_1.0.1.bb
index 60ef06fba0..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-bitstream-75dpi_1.0.1.bb
+++ b/recipes/xorg-font/font-bitstream-75dpi_1.0.1.bb
@@ -1,2 +1,4 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-bitstream-speedo_1.0.0.bb b/recipes/xorg-font/font-bitstream-speedo_1.0.0.bb
index 60ef06fba0..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-bitstream-speedo_1.0.0.bb
+++ b/recipes/xorg-font/font-bitstream-speedo_1.0.0.bb
@@ -1,2 +1,4 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-bitstream-speedo_1.0.1.bb b/recipes/xorg-font/font-bitstream-speedo_1.0.1.bb
index 60ef06fba0..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-bitstream-speedo_1.0.1.bb
+++ b/recipes/xorg-font/font-bitstream-speedo_1.0.1.bb
@@ -1,2 +1,4 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-bitstream-type1_1.0.0.bb b/recipes/xorg-font/font-bitstream-type1_1.0.0.bb
index 60ef06fba0..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-bitstream-type1_1.0.0.bb
+++ b/recipes/xorg-font/font-bitstream-type1_1.0.0.bb
@@ -1,2 +1,4 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-bitstream-type1_1.0.1.bb b/recipes/xorg-font/font-bitstream-type1_1.0.1.bb
index 60ef06fba0..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-bitstream-type1_1.0.1.bb
+++ b/recipes/xorg-font/font-bitstream-type1_1.0.1.bb
@@ -1,2 +1,4 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-cronyx-cyrillic_1.0.0.bb b/recipes/xorg-font/font-cronyx-cyrillic_1.0.0.bb
index 60ef06fba0..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-cronyx-cyrillic_1.0.0.bb
+++ b/recipes/xorg-font/font-cronyx-cyrillic_1.0.0.bb
@@ -1,2 +1,4 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-cronyx-cyrillic_1.0.1.bb b/recipes/xorg-font/font-cronyx-cyrillic_1.0.1.bb
index 60ef06fba0..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-cronyx-cyrillic_1.0.1.bb
+++ b/recipes/xorg-font/font-cronyx-cyrillic_1.0.1.bb
@@ -1,2 +1,4 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-cursor-misc_1.0.0.bb b/recipes/xorg-font/font-cursor-misc_1.0.0.bb
index 60ef06fba0..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-cursor-misc_1.0.0.bb
+++ b/recipes/xorg-font/font-cursor-misc_1.0.0.bb
@@ -1,2 +1,4 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-cursor-misc_1.0.1.bb b/recipes/xorg-font/font-cursor-misc_1.0.1.bb
index 60ef06fba0..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-cursor-misc_1.0.1.bb
+++ b/recipes/xorg-font/font-cursor-misc_1.0.1.bb
@@ -1,2 +1,4 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-daewoo-misc_1.0.0.bb b/recipes/xorg-font/font-daewoo-misc_1.0.0.bb
index 60ef06fba0..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-daewoo-misc_1.0.0.bb
+++ b/recipes/xorg-font/font-daewoo-misc_1.0.0.bb
@@ -1,2 +1,4 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-daewoo-misc_1.0.1.bb b/recipes/xorg-font/font-daewoo-misc_1.0.1.bb
index 60ef06fba0..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-daewoo-misc_1.0.1.bb
+++ b/recipes/xorg-font/font-daewoo-misc_1.0.1.bb
@@ -1,2 +1,4 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-dec-misc_1.0.0.bb b/recipes/xorg-font/font-dec-misc_1.0.0.bb
index 60ef06fba0..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-dec-misc_1.0.0.bb
+++ b/recipes/xorg-font/font-dec-misc_1.0.0.bb
@@ -1,2 +1,4 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-dec-misc_1.0.1.bb b/recipes/xorg-font/font-dec-misc_1.0.1.bb
index 60ef06fba0..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-dec-misc_1.0.1.bb
+++ b/recipes/xorg-font/font-dec-misc_1.0.1.bb
@@ -1,2 +1,4 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-ibm-type1_1.0.0.bb b/recipes/xorg-font/font-ibm-type1_1.0.0.bb
index 60ef06fba0..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-ibm-type1_1.0.0.bb
+++ b/recipes/xorg-font/font-ibm-type1_1.0.0.bb
@@ -1,2 +1,4 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-ibm-type1_1.0.1.bb b/recipes/xorg-font/font-ibm-type1_1.0.1.bb
index 60ef06fba0..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-ibm-type1_1.0.1.bb
+++ b/recipes/xorg-font/font-ibm-type1_1.0.1.bb
@@ -1,2 +1,4 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-isas-misc_1.0.0.bb b/recipes/xorg-font/font-isas-misc_1.0.0.bb
index 60ef06fba0..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-isas-misc_1.0.0.bb
+++ b/recipes/xorg-font/font-isas-misc_1.0.0.bb
@@ -1,2 +1,4 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-isas-misc_1.0.1.bb b/recipes/xorg-font/font-isas-misc_1.0.1.bb
index 60ef06fba0..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-isas-misc_1.0.1.bb
+++ b/recipes/xorg-font/font-isas-misc_1.0.1.bb
@@ -1,2 +1,4 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-jis-misc_1.0.0.bb b/recipes/xorg-font/font-jis-misc_1.0.0.bb
index 60ef06fba0..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-jis-misc_1.0.0.bb
+++ b/recipes/xorg-font/font-jis-misc_1.0.0.bb
@@ -1,2 +1,4 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-jis-misc_1.0.1.bb b/recipes/xorg-font/font-jis-misc_1.0.1.bb
index 60ef06fba0..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-jis-misc_1.0.1.bb
+++ b/recipes/xorg-font/font-jis-misc_1.0.1.bb
@@ -1,2 +1,4 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-micro-misc_1.0.0.bb b/recipes/xorg-font/font-micro-misc_1.0.0.bb
index 383d16c799..9eec596969 100644
--- a/recipes/xorg-font/font-micro-misc_1.0.0.bb
+++ b/recipes/xorg-font/font-micro-misc_1.0.0.bb
@@ -1,4 +1,6 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
EXTRA_OECONF = "--disable-iso8859-2 --disable-iso8859-3 --disable-iso8859-4 --disable-iso8859-5 --disable-iso8859-6 --disable-iso8859-7 --disable-iso8859-8 --disable-iso8859-9 --disable-iso8859-10 --disable-iso8859-11 --disable-iso8859-12 --disable-iso8859-13 --disable-iso8859-14 --disable-iso8859-15 --disable-iso8859-16 --disable-jisx0201 --disable-koi8-r"
diff --git a/recipes/xorg-font/font-micro-misc_1.0.1.bb b/recipes/xorg-font/font-micro-misc_1.0.1.bb
index 383d16c799..9eec596969 100644
--- a/recipes/xorg-font/font-micro-misc_1.0.1.bb
+++ b/recipes/xorg-font/font-micro-misc_1.0.1.bb
@@ -1,4 +1,6 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
EXTRA_OECONF = "--disable-iso8859-2 --disable-iso8859-3 --disable-iso8859-4 --disable-iso8859-5 --disable-iso8859-6 --disable-iso8859-7 --disable-iso8859-8 --disable-iso8859-9 --disable-iso8859-10 --disable-iso8859-11 --disable-iso8859-12 --disable-iso8859-13 --disable-iso8859-14 --disable-iso8859-15 --disable-iso8859-16 --disable-jisx0201 --disable-koi8-r"
diff --git a/recipes/xorg-font/font-misc-cyrillic_1.0.0.bb b/recipes/xorg-font/font-misc-cyrillic_1.0.0.bb
index 60ef06fba0..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-misc-cyrillic_1.0.0.bb
+++ b/recipes/xorg-font/font-misc-cyrillic_1.0.0.bb
@@ -1,2 +1,4 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-misc-cyrillic_1.0.1.bb b/recipes/xorg-font/font-misc-cyrillic_1.0.1.bb
index 60ef06fba0..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-misc-cyrillic_1.0.1.bb
+++ b/recipes/xorg-font/font-misc-cyrillic_1.0.1.bb
@@ -1,2 +1,4 @@
require xorg-font-common.inc
+
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-misc-ethiopic_1.0.0.bb b/recipes/xorg-font/font-misc-ethiopic_1.0.0.bb
index 60ef06fba0..ae0b32e8fd 100644
--- a/recipes/xorg-font/font-misc-ethiopic_1.0.0.bb
+++ b/recipes/xorg-font/font-misc-ethiopic_1.0.0.bb
@@ -1,2 +1,3 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-misc-ethiopic_1.0.1.bb b/recipes/xorg-font/font-misc-ethiopic_1.0.1.bb
index 60ef06fba0..ae0b32e8fd 100644
--- a/recipes/xorg-font/font-misc-ethiopic_1.0.1.bb
+++ b/recipes/xorg-font/font-misc-ethiopic_1.0.1.bb
@@ -1,2 +1,3 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-misc-meltho_1.0.0.bb b/recipes/xorg-font/font-misc-meltho_1.0.0.bb
index 719a443b51..d2d6883aea 100644
--- a/recipes/xorg-font/font-misc-meltho_1.0.0.bb
+++ b/recipes/xorg-font/font-misc-meltho_1.0.0.bb
@@ -2,4 +2,4 @@ require xorg-font-common.inc
DESCRIPTION = "These fonts are designed for the display of Syriac text."
PE = "1"
-
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-misc-meltho_1.0.1.bb b/recipes/xorg-font/font-misc-meltho_1.0.1.bb
index 719a443b51..d2d6883aea 100644
--- a/recipes/xorg-font/font-misc-meltho_1.0.1.bb
+++ b/recipes/xorg-font/font-misc-meltho_1.0.1.bb
@@ -2,4 +2,4 @@ require xorg-font-common.inc
DESCRIPTION = "These fonts are designed for the display of Syriac text."
PE = "1"
-
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-misc-misc_1.0.0.bb b/recipes/xorg-font/font-misc-misc_1.0.0.bb
index ad42a16ae2..729a90aa48 100644
--- a/recipes/xorg-font/font-misc-misc_1.0.0.bb
+++ b/recipes/xorg-font/font-misc-misc_1.0.0.bb
@@ -2,8 +2,6 @@ EXTRA_OECONF = "STAGING_LIBDIR_NATIVE=\"${STAGING_LIBDIR_NATIVE}\""
require xorg-font-common.inc
-SRC_URI += " file://configure-mapdir.patch;patch=1"
-
-#DESCRIPTION = ""
+PR = "${INC_PR}.0"
-#DEPENDS += " "
+SRC_URI += " file://configure-mapdir.patch;patch=1"
diff --git a/recipes/xorg-font/font-misc-misc_1.0.1.bb b/recipes/xorg-font/font-misc-misc_1.0.1.bb
new file mode 100644
index 0000000000..2bcb87e702
--- /dev/null
+++ b/recipes/xorg-font/font-misc-misc_1.0.1.bb
@@ -0,0 +1,3 @@
+require xorg-font-common.inc
+
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-mutt-misc_1.0.0.bb b/recipes/xorg-font/font-mutt-misc_1.0.0.bb
index a5ded3d3cc..6862d026b6 100644
--- a/recipes/xorg-font/font-mutt-misc_1.0.0.bb
+++ b/recipes/xorg-font/font-mutt-misc_1.0.0.bb
@@ -4,4 +4,4 @@ DESCRIPTION = "Provides a 12pt, 100dpi proportional font with many of \
the glyphs needed for Unicode text."
PE = "1"
-
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-mutt-misc_1.0.1.bb b/recipes/xorg-font/font-mutt-misc_1.0.1.bb
index a5ded3d3cc..6862d026b6 100644
--- a/recipes/xorg-font/font-mutt-misc_1.0.1.bb
+++ b/recipes/xorg-font/font-mutt-misc_1.0.1.bb
@@ -4,4 +4,4 @@ DESCRIPTION = "Provides a 12pt, 100dpi proportional font with many of \
the glyphs needed for Unicode text."
PE = "1"
-
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-schumacher-misc_1.0.0.bb b/recipes/xorg-font/font-schumacher-misc_1.0.0.bb
index 60ef06fba0..ae0b32e8fd 100644
--- a/recipes/xorg-font/font-schumacher-misc_1.0.0.bb
+++ b/recipes/xorg-font/font-schumacher-misc_1.0.0.bb
@@ -1,2 +1,3 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-schumacher-misc_1.1.0.bb b/recipes/xorg-font/font-schumacher-misc_1.1.0.bb
index 60ef06fba0..ae0b32e8fd 100644
--- a/recipes/xorg-font/font-schumacher-misc_1.1.0.bb
+++ b/recipes/xorg-font/font-schumacher-misc_1.1.0.bb
@@ -1,2 +1,3 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-screen-cyrillic_1.0.0.bb b/recipes/xorg-font/font-screen-cyrillic_1.0.0.bb
index 60ef06fba0..ae0b32e8fd 100644
--- a/recipes/xorg-font/font-screen-cyrillic_1.0.0.bb
+++ b/recipes/xorg-font/font-screen-cyrillic_1.0.0.bb
@@ -1,2 +1,3 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-screen-cyrillic_1.0.2.bb b/recipes/xorg-font/font-screen-cyrillic_1.0.2.bb
index 60ef06fba0..ae0b32e8fd 100644
--- a/recipes/xorg-font/font-screen-cyrillic_1.0.2.bb
+++ b/recipes/xorg-font/font-screen-cyrillic_1.0.2.bb
@@ -1,2 +1,3 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-sony-misc_1.0.0.bb b/recipes/xorg-font/font-sony-misc_1.0.0.bb
index 60ef06fba0..ae0b32e8fd 100644
--- a/recipes/xorg-font/font-sony-misc_1.0.0.bb
+++ b/recipes/xorg-font/font-sony-misc_1.0.0.bb
@@ -1,2 +1,3 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-sony-misc_1.0.1.bb b/recipes/xorg-font/font-sony-misc_1.0.1.bb
index 60ef06fba0..ae0b32e8fd 100644
--- a/recipes/xorg-font/font-sony-misc_1.0.1.bb
+++ b/recipes/xorg-font/font-sony-misc_1.0.1.bb
@@ -1,2 +1,3 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-sun-misc_1.0.0.bb b/recipes/xorg-font/font-sun-misc_1.0.0.bb
index 60ef06fba0..ae0b32e8fd 100644
--- a/recipes/xorg-font/font-sun-misc_1.0.0.bb
+++ b/recipes/xorg-font/font-sun-misc_1.0.0.bb
@@ -1,2 +1,3 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-sun-misc_1.0.1.bb b/recipes/xorg-font/font-sun-misc_1.0.1.bb
index 60ef06fba0..ae0b32e8fd 100644
--- a/recipes/xorg-font/font-sun-misc_1.0.1.bb
+++ b/recipes/xorg-font/font-sun-misc_1.0.1.bb
@@ -1,2 +1,3 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-util-native_1.0.1.bb b/recipes/xorg-font/font-util-native_1.0.1.bb
index 32ea62c3d5..cb117bf957 100644
--- a/recipes/xorg-font/font-util-native_1.0.1.bb
+++ b/recipes/xorg-font/font-util-native_1.0.1.bb
@@ -1,4 +1,4 @@
-inherit native
+be inherit native
require xorg-font-common.inc
XORG_PN = "font-util"
@@ -6,3 +6,4 @@ XORG_PN = "font-util"
DEPENDS = "bdftopcf-native"
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-util-native_1.1.1.bb b/recipes/xorg-font/font-util-native_1.1.1.bb
index 2da3b0c293..49fbde39ed 100644
--- a/recipes/xorg-font/font-util-native_1.1.1.bb
+++ b/recipes/xorg-font/font-util-native_1.1.1.bb
@@ -3,10 +3,10 @@ require xorg-font-common.inc
XORG_PN = "font-util"
-DEPENDS = "bdftopcf-native"
+DEPENDS = "bdftopcf-native util-macros-native"
PE = "1"
-PR = "r1"
+PR = "${INC_PR}.1"
do_configure_prepend() {
sed -i "s#MAPFILES_PATH=\`pkg-config#MAPFILES_PATH=\`PKG_CONFIG_PATH=\"${STAGING_LIBDIR_NATIVE}/pkg-config\" pkg-config#g" fontutil.m4.in
diff --git a/recipes/xorg-font/font-util_1.0.1.bb b/recipes/xorg-font/font-util_1.0.1.bb
index 3ba1c05a29..5a1761bf6a 100644
--- a/recipes/xorg-font/font-util_1.0.1.bb
+++ b/recipes/xorg-font/font-util_1.0.1.bb
@@ -1,4 +1,4 @@
-require xorg-font-common.inc
+Qurequire xorg-font-common.inc
PACKAGE_ARCH = "${BASE_PACKAGE_ARCH}"
@@ -7,5 +7,5 @@ DESCRIPTION = "X font utils."
DEPENDS = "encodings"
RDEPENDS = "mkfontdir mkfontscale encodings"
-PR = "r1"
PE = "1"
+PR = "${INC_PR}.1"
diff --git a/recipes/xorg-font/font-util_1.1.1.bb b/recipes/xorg-font/font-util_1.1.1.bb
index 8e22276c27..635c3e4343 100644
--- a/recipes/xorg-font/font-util_1.1.1.bb
+++ b/recipes/xorg-font/font-util_1.1.1.bb
@@ -4,11 +4,11 @@ PACKAGE_ARCH = "${BASE_PACKAGE_ARCH}"
DESCRIPTION = "X font utils."
-DEPENDS = "encodings"
+DEPENDS = "encodings util-macros"
RDEPENDS = "mkfontdir mkfontscale encodings"
-PR = "r1"
PE = "1"
+PR = "${INC_PR}.1"
do_configure_prepend() {
sed -i "s#MAPFILES_PATH=\`pkg-config#MAPFILES_PATH=\`PKG_CONFIG_PATH=\"${STAGING_LIBDIR_NATIVE}/pkg-config\" pkg-config#g" fontutil.m4.in
diff --git a/recipes/xorg-font/font-winitzki-cyrillic_1.0.0.bb b/recipes/xorg-font/font-winitzki-cyrillic_1.0.0.bb
index f8fe553c62..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-winitzki-cyrillic_1.0.0.bb
+++ b/recipes/xorg-font/font-winitzki-cyrillic_1.0.0.bb
@@ -1,3 +1,4 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-winitzki-cyrillic_1.0.1.bb b/recipes/xorg-font/font-winitzki-cyrillic_1.0.1.bb
index f8fe553c62..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-winitzki-cyrillic_1.0.1.bb
+++ b/recipes/xorg-font/font-winitzki-cyrillic_1.0.1.bb
@@ -1,3 +1,4 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-xfree86-type1_1.0.0.bb b/recipes/xorg-font/font-xfree86-type1_1.0.0.bb
index f8fe553c62..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-xfree86-type1_1.0.0.bb
+++ b/recipes/xorg-font/font-xfree86-type1_1.0.0.bb
@@ -1,3 +1,4 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-xfree86-type1_1.0.1.bb b/recipes/xorg-font/font-xfree86-type1_1.0.1.bb
index f8fe553c62..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-xfree86-type1_1.0.1.bb
+++ b/recipes/xorg-font/font-xfree86-type1_1.0.1.bb
@@ -1,3 +1,4 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/font-xfree86-type1_1.0.2.bb b/recipes/xorg-font/font-xfree86-type1_1.0.2.bb
index f8fe553c62..4aa3ec58a0 100644
--- a/recipes/xorg-font/font-xfree86-type1_1.0.2.bb
+++ b/recipes/xorg-font/font-xfree86-type1_1.0.2.bb
@@ -1,3 +1,4 @@
require xorg-font-common.inc
PE = "1"
+PR = "${INC_PR}.0"
diff --git a/recipes/xorg-font/xorg-font-common.inc b/recipes/xorg-font/xorg-font-common.inc
index 7a3b0e3f64..5cf40e8436 100644
--- a/recipes/xorg-font/xorg-font-common.inc
+++ b/recipes/xorg-font/xorg-font-common.inc
@@ -6,12 +6,14 @@ DEPENDS = " encodings font-alias font-util-native mkfontdir-native mkfontscale-n
RDEPENDS = "encodings font-util font-alias"
XORG_PN = "${PN}"
+INC_PR = "r1"
+
SRC_URI = "${XORG_MIRROR}/individual/font/${XORG_PN}-${PV}.tar.bz2"
S = "${WORKDIR}/${XORG_PN}-${PV}"
inherit autotools pkgconfig
-FILES_${PN} += " ${libdir}/X11/fonts"
+EXTRA_OEMAKE += "FCCACHE=/bin/true"
do_configure_prepend() {
if [ -f "${S}"/configure.ac ] ; then
@@ -19,12 +21,11 @@ do_configure_prepend() {
fi
}
-EXTRA_OECONF += " --with-fontrootdir=${libdir}/X11/fonts"
-
-EXTRA_OEMAKE += "FCCACHE=/bin/true"
do_install_append() {
find ${D}${libdir}/X11/fonts -type f -name fonts.dir | xargs rm -f
find ${D}${libdir}/X11/fonts -type f -name fonts.scale | xargs rm -f
+ find ${D}${datadir}/fonts/X11 -type f -name fonts.dir | xargs rm -f
+ find ${D}${datadir}/fonts/X11 -type f -name fonts.scale | xargs rm -f
}
do_stage() {
@@ -33,10 +34,16 @@ do_stage() {
PACKAGE_ARCH = "all"
+FILES_${PN} += " ${libdir}/X11/fonts ${datadir}"
+
pkg_postinst_${PN} () {
- set -x
- for fontdir in `find $D/usr/lib/X11/fonts -type d`; do
- mkfontdir $fontdir
- mkfontscale $fontdir
- done
+ set -x
+ for fontdir in `find $D/usr/lib/X11/fonts -type d`; do
+ mkfontdir $fontdir
+ mkfontscale $fontdir
+ done
+ for fontdir in `find $D/usr/share/fonts/X11 -type d`; do
+ mkfontdir $fontdir
+ mkfontscale $fontdir
+ done
}
diff --git a/recipes/xorg-font/xorg-minimal-fonts.bb b/recipes/xorg-font/xorg-minimal-fonts.bb
index d91c6d772d..92b29e61e6 100644
--- a/recipes/xorg-font/xorg-minimal-fonts.bb
+++ b/recipes/xorg-font/xorg-minimal-fonts.bb
@@ -2,7 +2,7 @@ HOMEPAGE = "http://www.x.org"
SECTION = "x11/fonts"
LICENSE = "MIT-X"
-PR = "r1"
+PR = "1"
SRC_URI = "file://misc"
diff --git a/recipes/xorg-lib/pixman/0001-ARM-NEON-optimized-pixman_blt.patch b/recipes/xorg-lib/pixman/0001-ARM-NEON-optimized-pixman_blt.patch
new file mode 100644
index 0000000000..ed2b68d782
--- /dev/null
+++ b/recipes/xorg-lib/pixman/0001-ARM-NEON-optimized-pixman_blt.patch
@@ -0,0 +1,104 @@
+From e94b8057370a430eb91b914ed4c0050f72e9fa37 Mon Sep 17 00:00:00 2001
+From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
+Date: Wed, 18 Nov 2009 04:26:18 +0200
+Subject: [PATCH 1/6] ARM: NEON optimized pixman_blt
+
+---
+ pixman/pixman-arm-neon.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 67 insertions(+), 0 deletions(-)
+
+diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
+index 2ed8b4b..495fda4 100644
+--- a/pixman/pixman-arm-neon.c
++++ b/pixman/pixman-arm-neon.c
+@@ -292,6 +292,43 @@ pixman_fill_neon (uint32_t *bits,
+ }
+ }
+
++static pixman_bool_t
++pixman_blt_neon (uint32_t *src_bits,
++ uint32_t *dst_bits,
++ int src_stride,
++ int dst_stride,
++ int src_bpp,
++ int dst_bpp,
++ int src_x,
++ int src_y,
++ int dst_x,
++ int dst_y,
++ int width,
++ int height)
++{
++ switch (src_bpp)
++ {
++ case 16:
++ pixman_composite_src_0565_0565_asm_neon (
++ width, height,
++ (uint16_t *)(((char *) dst_bits) +
++ dst_y * dst_stride * 4 + dst_x * 2), dst_stride * 2,
++ (uint16_t *)(((char *) src_bits) +
++ src_y * src_stride * 4 + src_x * 2), src_stride * 2);
++ return TRUE;
++ case 32:
++ pixman_composite_src_8888_8888_asm_neon (
++ width, height,
++ (uint32_t *)(((char *) dst_bits) +
++ dst_y * dst_stride * 4 + dst_x * 4), dst_stride,
++ (uint32_t *)(((char *) src_bits) +
++ src_y * src_stride * 4 + src_x * 4), src_stride);
++ return TRUE;
++ default:
++ return FALSE;
++ }
++}
++
+ static const pixman_fast_path_t arm_neon_fast_path_array[] =
+ {
+ { PIXMAN_OP_SRC, PIXMAN_r5g6b5, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_src_0565_0565 },
+@@ -361,6 +398,35 @@ arm_neon_composite (pixman_implementation_t *imp,
+ }
+
+ static pixman_bool_t
++arm_neon_blt (pixman_implementation_t *imp,
++ uint32_t * src_bits,
++ uint32_t * dst_bits,
++ int src_stride,
++ int dst_stride,
++ int src_bpp,
++ int dst_bpp,
++ int src_x,
++ int src_y,
++ int dst_x,
++ int dst_y,
++ int width,
++ int height)
++{
++ if (!pixman_blt_neon (
++ src_bits, dst_bits, src_stride, dst_stride, src_bpp, dst_bpp,
++ src_x, src_y, dst_x, dst_y, width, height))
++
++ {
++ return _pixman_implementation_blt (
++ imp->delegate,
++ src_bits, dst_bits, src_stride, dst_stride, src_bpp, dst_bpp,
++ src_x, src_y, dst_x, dst_y, width, height);
++ }
++
++ return TRUE;
++}
++
++static pixman_bool_t
+ arm_neon_fill (pixman_implementation_t *imp,
+ uint32_t * bits,
+ int stride,
+@@ -385,6 +451,7 @@ _pixman_implementation_create_arm_neon (void)
+ pixman_implementation_t *imp = _pixman_implementation_create (general);
+
+ imp->composite = arm_neon_composite;
++ imp->blt = arm_neon_blt;
+ imp->fill = arm_neon_fill;
+
+ return imp;
+--
+1.6.2.4
+
diff --git a/recipes/xorg-lib/pixman/0001-ARM-Removal-of-unused-broken-NEON-code.patch b/recipes/xorg-lib/pixman/0001-ARM-Removal-of-unused-broken-NEON-code.patch
deleted file mode 100644
index 227b95e87d..0000000000
--- a/recipes/xorg-lib/pixman/0001-ARM-Removal-of-unused-broken-NEON-code.patch
+++ /dev/null
@@ -1,830 +0,0 @@
-From 2761591638f8c56732398b1fc6cf4bc7ca5005fd Mon Sep 17 00:00:00 2001
-From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
-Date: Mon, 27 Jul 2009 01:21:26 +0300
-Subject: [PATCH 1/7] ARM: Removal of unused/broken NEON code
-
----
- pixman/pixman-arm-neon.c | 786 ----------------------------------------------
- 1 files changed, 0 insertions(+), 786 deletions(-)
-
-diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
-index 0a29e50..9caef61 100644
---- a/pixman/pixman-arm-neon.c
-+++ b/pixman/pixman-arm-neon.c
-@@ -1901,710 +1901,6 @@ pixman_fill_neon (uint32_t *bits,
- #endif
- }
-
--/* TODO: is there a more generic way of doing this being introduced? */
--#define NEON_SCANLINE_BUFFER_PIXELS (1024)
--
--static inline void
--neon_quadword_copy (void * dst,
-- void * src,
-- uint32_t count, /* of quadwords */
-- uint32_t trailer_count /* of bytes */)
--{
-- uint8_t *t_dst = dst, *t_src = src;
--
-- /* Uses aligned multi-register loads to maximise read bandwidth
-- * on uncached memory such as framebuffers
-- * The accesses do not have the aligned qualifiers, so that the copy
-- * may convert between aligned-uncached and unaligned-cached memory.
-- * It is assumed that the CPU can infer alignedness from the address.
-- */
--
--#ifdef USE_GCC_INLINE_ASM
--
-- asm volatile (
-- " cmp %[count], #8 \n"
-- " blt 1f @ skip oversized fragments \n"
-- "0: @ start with eight quadwords at a time \n"
-- " sub %[count], %[count], #8 \n"
-- " vld1.8 {d16, d17, d18, d19}, [%[src]]! \n"
-- " vld1.8 {d20, d21, d22, d23}, [%[src]]! \n"
-- " vld1.8 {d24, d25, d26, d27}, [%[src]]! \n"
-- " vld1.8 {d28, d29, d30, d31}, [%[src]]! \n"
-- " cmp %[count], #8 \n"
-- " vst1.8 {d16, d17, d18, d19}, [%[dst]]! \n"
-- " vst1.8 {d20, d21, d22, d23}, [%[dst]]! \n"
-- " vst1.8 {d24, d25, d26, d27}, [%[dst]]! \n"
-- " vst1.8 {d28, d29, d30, d31}, [%[dst]]! \n"
-- " bge 0b \n"
-- "1: @ four quadwords \n"
-- " tst %[count], #4 \n"
-- " beq 2f @ skip oversized fragment \n"
-- " vld1.8 {d16, d17, d18, d19}, [%[src]]! \n"
-- " vld1.8 {d20, d21, d22, d23}, [%[src]]! \n"
-- " vst1.8 {d16, d17, d18, d19}, [%[dst]]! \n"
-- " vst1.8 {d20, d21, d22, d23}, [%[dst]]! \n"
-- "2: @ two quadwords \n"
-- " tst %[count], #2 \n"
-- " beq 3f @ skip oversized fragment \n"
-- " vld1.8 {d16, d17, d18, d19}, [%[src]]! \n"
-- " vst1.8 {d16, d17, d18, d19}, [%[dst]]! \n"
-- "3: @ one quadword \n"
-- " tst %[count], #1 \n"
-- " beq 4f @ skip oversized fragment \n"
-- " vld1.8 {d16, d17}, [%[src]]! \n"
-- " vst1.8 {d16, d17}, [%[dst]]! \n"
-- "4: @ end \n"
--
-- /* Clobbered input registers marked as input/outputs */
-- : [dst] "+r" (t_dst), [src] "+r" (t_src), [count] "+r" (count)
--
-- /* No unclobbered inputs */
-- :
--
-- /* Clobbered vector registers */
-- : "d16", "d17", "d18", "d19", "d20", "d21", "d22", "d23", "d24", "d25",
-- "d26", "d27", "d28", "d29", "d30", "d31", "cc", "memory");
--
--#else
--
-- while (count >= 8)
-- {
-- uint8x16x4_t t1 = vld4q_u8 (t_src);
-- uint8x16x4_t t2 = vld4q_u8 (t_src + sizeof(uint8x16x4_t));
--
-- t_src += sizeof(uint8x16x4_t) * 2;
-- vst4q_u8 (t_dst, t1);
-- vst4q_u8 (t_dst + sizeof(uint8x16x4_t), t2);
-- t_dst += sizeof(uint8x16x4_t) * 2;
-- count -= 8;
-- }
--
-- if (count & 4)
-- {
-- uint8x16x4_t t1 = vld4q_u8 (t_src);
--
-- t_src += sizeof(uint8x16x4_t);
-- vst4q_u8 (t_dst, t1);
-- t_dst += sizeof(uint8x16x4_t);
-- }
--
-- if (count & 2)
-- {
-- uint8x8x4_t t1 = vld4_u8 (t_src);
--
-- t_src += sizeof(uint8x8x4_t);
-- vst4_u8 (t_dst, t1);
-- t_dst += sizeof(uint8x8x4_t);
-- }
--
-- if (count & 1)
-- {
-- uint8x16_t t1 = vld1q_u8 (t_src);
--
-- t_src += sizeof(uint8x16_t);
-- vst1q_u8 (t_dst, t1);
-- t_dst += sizeof(uint8x16_t);
-- }
--
--#endif /* !USE_GCC_INLINE_ASM */
--
-- if (trailer_count)
-- {
-- if (trailer_count & 8)
-- {
-- uint8x8_t t1 = vld1_u8 (t_src);
--
-- t_src += sizeof(uint8x8_t);
-- vst1_u8 (t_dst, t1);
-- t_dst += sizeof(uint8x8_t);
-- }
--
-- if (trailer_count & 4)
-- {
-- *((uint32_t*) t_dst) = *((uint32_t*) t_src);
--
-- t_dst += 4;
-- t_src += 4;
-- }
--
-- if (trailer_count & 2)
-- {
-- *((uint16_t*) t_dst) = *((uint16_t*) t_src);
--
-- t_dst += 2;
-- t_src += 2;
-- }
--
-- if (trailer_count & 1)
-- {
-- *t_dst++ = *t_src++;
-- }
-- }
--}
--
--static inline void
--solid_over_565_8_pix_neon (uint32_t glyph_colour,
-- uint16_t *dest,
-- uint8_t * in_mask,
-- uint32_t dest_stride, /* bytes, not elements */
-- uint32_t mask_stride,
-- uint32_t count /* 8-pixel groups */)
--{
-- /* Inner loop of glyph blitter (solid colour, alpha mask) */
--
--#ifdef USE_GCC_INLINE_ASM
--
-- asm volatile (
-- " vld4.8 {d20[], d21[], d22[], d23[]}, [%[glyph_colour]] @ splat solid colour components \n"
-- "0: @ loop \n"
-- " vld1.16 {d0, d1}, [%[dest]] @ load first pixels from framebuffer \n"
-- " vld1.8 {d17}, [%[in_mask]] @ load alpha mask of glyph \n"
-- " vmull.u8 q9, d17, d23 @ apply glyph colour alpha to mask \n"
-- " vshrn.u16 d17, q9, #8 @ reformat it to match original mask \n"
-- " vmvn d18, d17 @ we need the inverse mask for the background \n"
-- " vsli.u16 q3, q0, #5 @ duplicate framebuffer blue bits \n"
-- " vshrn.u16 d2, q0, #8 @ unpack red from framebuffer pixels \n"
-- " vshrn.u16 d4, q0, #3 @ unpack green \n"
-- " vsri.u8 d2, d2, #5 @ duplicate red bits (extend 5 to 8) \n"
-- " vshrn.u16 d6, q3, #2 @ unpack extended blue (truncate 10 to 8) \n"
-- " vsri.u8 d4, d4, #6 @ duplicate green bits (extend 6 to 8) \n"
-- " vmull.u8 q1, d2, d18 @ apply inverse mask to background red... \n"
-- " vmull.u8 q2, d4, d18 @ ...green... \n"
-- " vmull.u8 q3, d6, d18 @ ...blue \n"
-- " subs %[count], %[count], #1 @ decrement/test loop counter \n"
-- " vmlal.u8 q1, d17, d22 @ add masked foreground red... \n"
-- " vmlal.u8 q2, d17, d21 @ ...green... \n"
-- " vmlal.u8 q3, d17, d20 @ ...blue \n"
-- " add %[in_mask], %[in_mask], %[mask_stride] @ advance mask pointer, while we wait \n"
-- " vsri.16 q1, q2, #5 @ pack green behind red \n"
-- " vsri.16 q1, q3, #11 @ pack blue into pixels \n"
-- " vst1.16 {d2, d3}, [%[dest]] @ store composited pixels \n"
-- " add %[dest], %[dest], %[dest_stride] @ advance framebuffer pointer \n"
-- " bne 0b @ next please \n"
--
-- /* Clobbered registers marked as input/outputs */
-- : [dest] "+r" (dest), [in_mask] "+r" (in_mask), [count] "+r" (count)
--
-- /* Inputs */
-- : [dest_stride] "r" (dest_stride), [mask_stride] "r" (mask_stride), [glyph_colour] "r" (&glyph_colour)
--
-- /* Clobbers, including the inputs we modify, and potentially lots of memory */
-- : "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d17", "d18", "d19",
-- "d20", "d21", "d22", "d23", "d24", "d25", "cc", "memory"
-- );
--
--#else
--
-- uint8x8x4_t solid_colour = vld4_dup_u8 ((uint8_t*) &glyph_colour);
--
-- while (count--)
-- {
-- uint16x8_t pixels = vld1q_u16 (dest);
-- uint8x8_t mask = vshrn_n_u16 (vmull_u8 (solid_colour.val[3], vld1_u8 (in_mask)), 8);
-- uint8x8_t mask_image = vmvn_u8 (mask);
--
-- uint8x8_t t_red = vshrn_n_u16 (pixels, 8);
-- uint8x8_t t_green = vshrn_n_u16 (pixels, 3);
-- uint8x8_t t_blue = vshrn_n_u16 (vsli_n_u8 (pixels, pixels, 5), 2);
--
-- uint16x8_t s_red = vmull_u8 (vsri_n_u8 (t_red, t_red, 5), mask_image);
-- uint16x8_t s_green = vmull_u8 (vsri_n_u8 (t_green, t_green, 6), mask_image);
-- uint16x8_t s_blue = vmull_u8 (t_blue, mask_image);
--
-- s_red = vmlal (s_red, mask, solid_colour.val[2]);
-- s_green = vmlal (s_green, mask, solid_colour.val[1]);
-- s_blue = vmlal (s_blue, mask, solid_colour.val[0]);
--
-- pixels = vsri_n_u16 (s_red, s_green, 5);
-- pixels = vsri_n_u16 (pixels, s_blue, 11);
-- vst1q_u16 (dest, pixels);
--
-- dest += dest_stride;
-- mask += mask_stride;
-- }
--
--#endif
--}
--
--#if 0 /* this is broken currently */
--static void
--neon_composite_over_n_8_0565 (pixman_implementation_t * impl,
-- pixman_op_t op,
-- pixman_image_t * src_image,
-- pixman_image_t * mask_image,
-- pixman_image_t * dst_image,
-- int32_t src_x,
-- int32_t src_y,
-- int32_t mask_x,
-- int32_t mask_y,
-- int32_t dest_x,
-- int32_t dest_y,
-- int32_t width,
-- int32_t height)
--{
-- uint32_t src, srca;
-- uint16_t *dst_line, *aligned_line;
-- uint8_t *mask_line;
-- uint32_t dst_stride, mask_stride;
-- uint32_t kernel_count, copy_count, copy_tail;
-- uint8_t kernel_offset, copy_offset;
--
-- src = _pixman_image_get_solid (src_image, dst_image->bits.format);
--
-- /* bail out if fully transparent or degenerate */
-- srca = src >> 24;
-- if (src == 0)
-- return;
--
-- if (width == 0 || height == 0)
-- return;
--
-- if (width > NEON_SCANLINE_BUFFER_PIXELS)
-- {
-- /* split the blit, so we can use a fixed-size scanline buffer
-- * TODO: there must be a more elegant way of doing this.
-- */
-- int x;
-- for (x = 0; x < width; x += NEON_SCANLINE_BUFFER_PIXELS)
-- {
-- neon_composite_over_n_8_0565 (
-- impl, op,
-- src_image, mask_image, dst_image,
-- src_x + x, src_y, mask_x + x, mask_y, dest_x + x, dest_y,
-- (x + NEON_SCANLINE_BUFFER_PIXELS > width) ? width - x : NEON_SCANLINE_BUFFER_PIXELS, height);
-- }
--
-- return;
-- }
--
-- PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t, dst_stride, dst_line, 1);
-- PIXMAN_IMAGE_GET_LINE (mask_image, mask_x, mask_y, uint8_t, mask_stride, mask_line, 1);
--
-- /* keep within minimum number of aligned quadwords on width
-- * while also keeping the minimum number of columns to process
-- */
-- {
-- unsigned long aligned_left = (unsigned long)(dst_line) & ~0xF;
-- unsigned long aligned_right = (((unsigned long)(dst_line + width)) + 0xF) & ~0xF;
-- unsigned long ceiling_length = (((unsigned long) width) * sizeof(*dst_line) + 0xF) & ~0xF;
--
-- /* the fast copy should be quadword aligned */
-- copy_offset = dst_line - ((uint16_t*) aligned_left);
-- aligned_line = dst_line - copy_offset;
-- copy_count = (uint32_t) ((aligned_right - aligned_left) >> 4);
-- copy_tail = 0;
--
-- if (aligned_right - aligned_left > ceiling_length)
-- {
-- /* unaligned routine is tightest */
-- kernel_count = (uint32_t) (ceiling_length >> 4);
-- kernel_offset = copy_offset;
-- }
-- else
-- {
-- /* aligned routine is equally tight, so it is safer to align */
-- kernel_count = copy_count;
-- kernel_offset = 0;
-- }
--
-- /* We should avoid reading beyond scanline ends for safety */
-- if (aligned_line < (dst_line - dest_x) ||
-- (aligned_line + (copy_count * 16 / sizeof(*dst_line))) > ((dst_line - dest_x) + dst_image->bits.width))
-- {
-- /* switch to precise read */
-- copy_offset = kernel_offset = 0;
-- aligned_line = dst_line;
-- kernel_count = (uint32_t) (ceiling_length >> 4);
-- copy_count = (width * sizeof(*dst_line)) >> 4;
-- copy_tail = (width * sizeof(*dst_line)) & 0xF;
-- }
-- }
--
-- {
-- uint16_t scan_line[NEON_SCANLINE_BUFFER_PIXELS + 8]; /* deliberately not initialised */
-- uint8_t glyph_line[NEON_SCANLINE_BUFFER_PIXELS + 8];
-- int y = height;
--
-- /* row-major order */
-- /* left edge, middle block, right edge */
-- for ( ; y--; mask_line += mask_stride, aligned_line += dst_stride, dst_line += dst_stride)
-- {
-- /* We don't want to overrun the edges of the glyph,
-- * so realign the edge data into known buffers
-- */
-- neon_quadword_copy (glyph_line + copy_offset, mask_line, width >> 4, width & 0xF);
--
-- /* Uncached framebuffer access is really, really slow
-- * if we do it piecemeal. It should be much faster if we
-- * grab it all at once. One scanline should easily fit in
-- * L1 cache, so this should not waste RAM bandwidth.
-- */
-- neon_quadword_copy (scan_line, aligned_line, copy_count, copy_tail);
--
-- /* Apply the actual filter */
-- solid_over_565_8_pix_neon (
-- src, scan_line + kernel_offset,
-- glyph_line + kernel_offset, 8 * sizeof(*dst_line),
-- 8, kernel_count);
--
-- /* Copy the modified scanline back */
-- neon_quadword_copy (dst_line, scan_line + copy_offset,
-- width >> 3, (width & 7) * 2);
-- }
-- }
--}
--#endif
--
--#ifdef USE_GCC_INLINE_ASM
--
--static inline void
--plain_over_565_8_pix_neon (uint32_t colour,
-- uint16_t *dest,
-- uint32_t dest_stride, /* bytes, not elements */
-- uint32_t count /* 8-pixel groups */)
--{
-- /* Inner loop for plain translucent rects
-- * (solid colour without alpha mask)
-- */
-- asm volatile (
-- " vld4.8 {d20[], d21[], d22[], d23[]}, [%[colour]] @ solid colour load/splat \n"
-- " vmull.u8 q12, d23, d22 @ premultiply alpha red \n"
-- " vmull.u8 q13, d23, d21 @ premultiply alpha green \n"
-- " vmull.u8 q14, d23, d20 @ premultiply alpha blue \n"
-- " vmvn d18, d23 @ inverse alpha for background \n"
-- "0: @ loop\n"
-- " vld1.16 {d0, d1}, [%[dest]] @ load first pixels from framebuffer \n"
-- " vshrn.u16 d2, q0, #8 @ unpack red from framebuffer pixels \n"
-- " vshrn.u16 d4, q0, #3 @ unpack green \n"
-- " vsli.u16 q3, q0, #5 @ duplicate framebuffer blue bits \n"
-- " vsri.u8 d2, d2, #5 @ duplicate red bits (extend 5 to 8) \n"
-- " vsri.u8 d4, d4, #6 @ duplicate green bits (extend 6 to 8) \n"
-- " vshrn.u16 d6, q3, #2 @ unpack extended blue (truncate 10 to 8) \n"
-- " vmov q0, q12 @ retrieve foreground red \n"
-- " vmlal.u8 q0, d2, d18 @ blend red - my kingdom for a four-operand MLA \n"
-- " vmov q1, q13 @ retrieve foreground green \n"
-- " vmlal.u8 q1, d4, d18 @ blend green \n"
-- " vmov q2, q14 @ retrieve foreground blue \n"
-- " vmlal.u8 q2, d6, d18 @ blend blue \n"
-- " subs %[count], %[count], #1 @ decrement/test loop counter \n"
-- " vsri.16 q0, q1, #5 @ pack green behind red \n"
-- " vsri.16 q0, q2, #11 @ pack blue into pixels \n"
-- " vst1.16 {d0, d1}, [%[dest]] @ store composited pixels \n"
-- " add %[dest], %[dest], %[dest_stride] @ advance framebuffer pointer \n"
-- " bne 0b @ next please \n"
--
-- /* Clobbered registers marked as input/outputs */
-- : [dest] "+r" (dest), [count] "+r" (count)
--
-- /* Inputs */
-- : [dest_stride] "r" (dest_stride), [colour] "r" (&colour)
--
-- /* Clobbers, including the inputs we modify, and
-- * potentially lots of memory
-- */
-- : "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d18", "d19",
-- "d20", "d21", "d22", "d23", "d24", "d25", "d26", "d27", "d28", "d29",
-- "cc", "memory"
-- );
--}
--
--static void
--neon_composite_over_n_0565 (pixman_implementation_t * impl,
-- pixman_op_t op,
-- pixman_image_t * src_image,
-- pixman_image_t * mask_image,
-- pixman_image_t * dst_image,
-- int32_t src_x,
-- int32_t src_y,
-- int32_t mask_x,
-- int32_t mask_y,
-- int32_t dest_x,
-- int32_t dest_y,
-- int32_t width,
-- int32_t height)
--{
-- uint32_t src, srca;
-- uint16_t *dst_line, *aligned_line;
-- uint32_t dst_stride;
-- uint32_t kernel_count, copy_count, copy_tail;
-- uint8_t kernel_offset, copy_offset;
--
-- src = _pixman_image_get_solid (src_image, dst_image->bits.format);
--
-- /* bail out if fully transparent */
-- srca = src >> 24;
-- if (src == 0)
-- return;
--
-- if (width == 0 || height == 0)
-- return;
--
-- if (width > NEON_SCANLINE_BUFFER_PIXELS)
-- {
-- /* split the blit, so we can use a fixed-size scanline buffer *
-- * TODO: there must be a more elegant way of doing this.
-- */
-- int x;
--
-- for (x = 0; x < width; x += NEON_SCANLINE_BUFFER_PIXELS)
-- {
-- neon_composite_over_n_0565 (
-- impl, op,
-- src_image, mask_image, dst_image,
-- src_x + x, src_y, mask_x + x, mask_y, dest_x + x, dest_y,
-- (x + NEON_SCANLINE_BUFFER_PIXELS > width) ? width - x : NEON_SCANLINE_BUFFER_PIXELS, height);
-- }
-- return;
-- }
--
-- PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t, dst_stride, dst_line, 1);
--
-- /* keep within minimum number of aligned quadwords on width
-- * while also keeping the minimum number of columns to process
-- */
-- {
-- unsigned long aligned_left = (unsigned long)(dst_line) & ~0xF;
-- unsigned long aligned_right = (((unsigned long)(dst_line + width)) + 0xF) & ~0xF;
-- unsigned long ceiling_length = (((unsigned long) width) * sizeof(*dst_line) + 0xF) & ~0xF;
--
-- /* the fast copy should be quadword aligned */
-- copy_offset = dst_line - ((uint16_t*) aligned_left);
-- aligned_line = dst_line - copy_offset;
-- copy_count = (uint32_t) ((aligned_right - aligned_left) >> 4);
-- copy_tail = 0;
--
-- if (aligned_right - aligned_left > ceiling_length)
-- {
-- /* unaligned routine is tightest */
-- kernel_count = (uint32_t) (ceiling_length >> 4);
-- kernel_offset = copy_offset;
-- }
-- else
-- {
-- /* aligned routine is equally tight, so it is safer to align */
-- kernel_count = copy_count;
-- kernel_offset = 0;
-- }
--
-- /* We should avoid reading beyond scanline ends for safety */
-- if (aligned_line < (dst_line - dest_x) ||
-- (aligned_line + (copy_count * 16 / sizeof(*dst_line))) > ((dst_line - dest_x) + dst_image->bits.width))
-- {
-- /* switch to precise read */
-- copy_offset = kernel_offset = 0;
-- aligned_line = dst_line;
-- kernel_count = (uint32_t) (ceiling_length >> 4);
-- copy_count = (width * sizeof(*dst_line)) >> 4;
-- copy_tail = (width * sizeof(*dst_line)) & 0xF;
-- }
-- }
--
-- {
-- uint16_t scan_line[NEON_SCANLINE_BUFFER_PIXELS + 8]; /* deliberately not initialised */
--
-- /* row-major order */
-- /* left edge, middle block, right edge */
-- for ( ; height--; aligned_line += dst_stride, dst_line += dst_stride)
-- {
-- /* Uncached framebuffer access is really, really slow if we do it piecemeal.
-- * It should be much faster if we grab it all at once.
-- * One scanline should easily fit in L1 cache, so this should
-- * not waste RAM bandwidth.
-- */
-- neon_quadword_copy (scan_line, aligned_line, copy_count, copy_tail);
--
-- /* Apply the actual filter */
-- plain_over_565_8_pix_neon (
-- src, scan_line + kernel_offset, 8 * sizeof(*dst_line), kernel_count);
--
-- /* Copy the modified scanline back */
-- neon_quadword_copy (
-- dst_line, scan_line + copy_offset, width >> 3, (width & 7) * 2);
-- }
-- }
--}
--
--static inline void
--ARGB8_over_565_8_pix_neon (uint32_t *src,
-- uint16_t *dest,
-- uint32_t src_stride, /* bytes, not elements */
-- uint32_t count /* 8-pixel groups */)
--{
-- asm volatile (
-- "0: @ loop\n"
-- " pld [%[src], %[src_stride]] @ preload from next scanline \n"
-- " vld1.16 {d0, d1}, [%[dest]] @ load pixels from framebuffer \n"
-- " vld4.8 {d20, d21, d22, d23},[%[src]]! @ load source image pixels \n"
-- " vsli.u16 q3, q0, #5 @ duplicate framebuffer blue bits \n"
-- " vshrn.u16 d2, q0, #8 @ unpack red from framebuffer pixels \n"
-- " vshrn.u16 d4, q0, #3 @ unpack green \n"
-- " vmvn d18, d23 @ we need the inverse alpha for the background \n"
-- " vsri.u8 d2, d2, #5 @ duplicate red bits (extend 5 to 8) \n"
-- " vshrn.u16 d6, q3, #2 @ unpack extended blue (truncate 10 to 8) \n"
-- " vsri.u8 d4, d4, #6 @ duplicate green bits (extend 6 to 8) \n"
-- " vmull.u8 q1, d2, d18 @ apply inverse alpha to background red... \n"
-- " vmull.u8 q2, d4, d18 @ ...green... \n"
-- " vmull.u8 q3, d6, d18 @ ...blue \n"
-- " subs %[count], %[count], #1 @ decrement/test loop counter \n"
-- " vmlal.u8 q1, d23, d22 @ add blended foreground red... \n"
-- " vmlal.u8 q2, d23, d21 @ ...green... \n"
-- " vmlal.u8 q3, d23, d20 @ ...blue \n"
-- " vsri.16 q1, q2, #5 @ pack green behind red \n"
-- " vsri.16 q1, q3, #11 @ pack blue into pixels \n"
-- " vst1.16 {d2, d3}, [%[dest]]! @ store composited pixels \n"
-- " bne 0b @ next please \n"
--
-- /* Clobbered registers marked as input/outputs */
-- : [dest] "+r" (dest), [src] "+r" (src), [count] "+r" (count)
--
-- /* Inputs */
-- : [src_stride] "r" (src_stride)
--
-- /* Clobbers, including the inputs we modify, and potentially lots of memory */
-- : "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d17", "d18", "d20",
-- "d21", "d22", "d23", "cc", "memory"
-- );
--}
--
--static void
--neon_composite_over_8888_0565 (pixman_implementation_t * impl,
-- pixman_op_t op,
-- pixman_image_t * src_image,
-- pixman_image_t * mask_image,
-- pixman_image_t * dst_image,
-- int32_t src_x,
-- int32_t src_y,
-- int32_t mask_x,
-- int32_t mask_y,
-- int32_t dest_x,
-- int32_t dest_y,
-- int32_t width,
-- int32_t height)
--{
-- uint32_t *src_line;
-- uint16_t *dst_line, *aligned_line;
-- uint32_t dst_stride, src_stride;
-- uint32_t kernel_count, copy_count, copy_tail;
-- uint8_t kernel_offset, copy_offset;
--
-- /* we assume mask is opaque
-- * so the only alpha to deal with is embedded in src
-- */
-- if (width > NEON_SCANLINE_BUFFER_PIXELS)
-- {
-- /* split the blit, so we can use a fixed-size scanline buffer */
-- int x;
-- for (x = 0; x < width; x += NEON_SCANLINE_BUFFER_PIXELS)
-- {
-- neon_composite_over_8888_0565 (
-- impl, op,
-- src_image, mask_image, dst_image,
-- src_x + x, src_y, mask_x + x, mask_y, dest_x + x, dest_y,
-- (x + NEON_SCANLINE_BUFFER_PIXELS > width) ? width - x : NEON_SCANLINE_BUFFER_PIXELS, height);
-- }
-- return;
-- }
--
-- PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t, dst_stride, dst_line, 1);
-- PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t, src_stride, src_line, 1);
--
-- /* keep within minimum number of aligned quadwords on width
-- * while also keeping the minimum number of columns to process
-- */
-- {
-- unsigned long aligned_left = (unsigned long)(dst_line) & ~0xF;
-- unsigned long aligned_right = (((unsigned long)(dst_line + width)) + 0xF) & ~0xF;
-- unsigned long ceiling_length = (((unsigned long) width) * sizeof(*dst_line) + 0xF) & ~0xF;
--
-- /* the fast copy should be quadword aligned */
-- copy_offset = dst_line - ((uint16_t*) aligned_left);
-- aligned_line = dst_line - copy_offset;
-- copy_count = (uint32_t) ((aligned_right - aligned_left) >> 4);
-- copy_tail = 0;
--
-- if (aligned_right - aligned_left > ceiling_length)
-- {
-- /* unaligned routine is tightest */
-- kernel_count = (uint32_t) (ceiling_length >> 4);
-- kernel_offset = copy_offset;
-- }
-- else
-- {
-- /* aligned routine is equally tight, so it is safer to align */
-- kernel_count = copy_count;
-- kernel_offset = 0;
-- }
--
-- /* We should avoid reading beyond scanline ends for safety */
-- if (aligned_line < (dst_line - dest_x) ||
-- (aligned_line + (copy_count * 16 / sizeof(*dst_line))) > ((dst_line - dest_x) + dst_image->bits.width))
-- {
-- /* switch to precise read */
-- copy_offset = kernel_offset = 0;
-- aligned_line = dst_line;
-- kernel_count = (uint32_t) (ceiling_length >> 4);
-- copy_count = (width * sizeof(*dst_line)) >> 4;
-- copy_tail = (width * sizeof(*dst_line)) & 0xF;
-- }
-- }
--
-- /* Preload the first input scanline */
-- {
-- uint8_t *src_ptr = (uint8_t*) src_line;
-- uint32_t count = (width + 15) / 16;
--
--#ifdef USE_GCC_INLINE_ASM
-- asm volatile (
-- "0: @ loop \n"
-- " subs %[count], %[count], #1 \n"
-- " pld [%[src]] \n"
-- " add %[src], %[src], #64 \n"
-- " bgt 0b \n"
--
-- /* Clobbered input registers marked as input/outputs */
-- : [src] "+r" (src_ptr), [count] "+r" (count)
-- : /* no unclobbered inputs */
-- : "cc"
-- );
--#else
-- do
-- {
-- __pld (src_ptr);
-- src_ptr += 64;
-- }
-- while (--count);
--#endif
-- }
--
-- {
-- uint16_t scan_line[NEON_SCANLINE_BUFFER_PIXELS + 8]; /* deliberately not initialised */
--
-- /* row-major order */
-- /* left edge, middle block, right edge */
-- for ( ; height--; src_line += src_stride, aligned_line += dst_stride)
-- {
-- /* Uncached framebuffer access is really, really slow if we do
-- * it piecemeal. It should be much faster if we grab it all at
-- * once. One scanline should easily fit in L1 cache, so this
-- * should not waste RAM bandwidth.
-- */
-- neon_quadword_copy (scan_line, aligned_line, copy_count, copy_tail);
--
-- /* Apply the actual filter */
-- ARGB8_over_565_8_pix_neon (
-- src_line, scan_line + kernel_offset,
-- src_stride * sizeof(*src_line), kernel_count);
--
-- /* Copy the modified scanline back */
-- neon_quadword_copy (dst_line,
-- scan_line + copy_offset,
-- width >> 3, (width & 7) * 2);
-- }
-- }
--}
--
--#endif /* USE_GCC_INLINE_ASM */
--
- static const pixman_fast_path_t arm_neon_fast_path_array[] =
- {
- { PIXMAN_OP_ADD, PIXMAN_solid, PIXMAN_a8, PIXMAN_a8, neon_composite_add_n_8_8, 0 },
-@@ -2618,12 +1914,6 @@ static const pixman_fast_path_t arm_neon_fast_path_array[] =
- #ifdef USE_GCC_INLINE_ASM
- { PIXMAN_OP_SRC, PIXMAN_r5g6b5, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_src_16_16, 0 },
- { PIXMAN_OP_SRC, PIXMAN_b5g6r5, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_src_16_16, 0 },
--#if 0 /* this code has some bugs */
-- { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_over_n_0565, 0 },
-- { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_over_n_0565, 0 },
-- { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_over_8888_0565, 0 },
-- { PIXMAN_OP_OVER, PIXMAN_a8b8g8r8, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_over_8888_0565, 0 },
--#endif
- #endif
- { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_a8r8g8b8, neon_composite_over_8888_8888, 0 },
- { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_x8r8g8b8, neon_composite_over_8888_8888, 0 },
-@@ -2674,79 +1964,6 @@ arm_neon_composite (pixman_implementation_t *imp,
- }
-
- static pixman_bool_t
--pixman_blt_neon (void *src_bits,
-- void *dst_bits,
-- int src_stride,
-- int dst_stride,
-- int src_bpp,
-- int dst_bpp,
-- int src_x,
-- int src_y,
-- int dst_x,
-- int dst_y,
-- int width,
-- int height)
--{
-- if (!width || !height)
-- return TRUE;
--
-- /* accelerate only straight copies involving complete bytes */
-- if (src_bpp != dst_bpp || (src_bpp & 7))
-- return FALSE;
--
-- {
-- uint32_t bytes_per_pixel = src_bpp >> 3;
-- uint32_t byte_width = width * bytes_per_pixel;
-- /* parameter is in words for some reason */
-- int32_t src_stride_bytes = src_stride * 4;
-- int32_t dst_stride_bytes = dst_stride * 4;
-- uint8_t *src_bytes = ((uint8_t*) src_bits) +
-- src_y * src_stride_bytes + src_x * bytes_per_pixel;
-- uint8_t *dst_bytes = ((uint8_t*) dst_bits) +
-- dst_y * dst_stride_bytes + dst_x * bytes_per_pixel;
-- uint32_t quadword_count = byte_width / 16;
-- uint32_t offset = byte_width % 16;
--
-- while (height--)
-- {
-- neon_quadword_copy (dst_bytes, src_bytes, quadword_count, offset);
-- src_bytes += src_stride_bytes;
-- dst_bytes += dst_stride_bytes;
-- }
-- }
--
-- return TRUE;
--}
--
--static pixman_bool_t
--arm_neon_blt (pixman_implementation_t *imp,
-- uint32_t * src_bits,
-- uint32_t * dst_bits,
-- int src_stride,
-- int dst_stride,
-- int src_bpp,
-- int dst_bpp,
-- int src_x,
-- int src_y,
-- int dst_x,
-- int dst_y,
-- int width,
-- int height)
--{
-- if (pixman_blt_neon (
-- src_bits, dst_bits, src_stride, dst_stride, src_bpp, dst_bpp,
-- src_x, src_y, dst_x, dst_y, width, height))
-- {
-- return TRUE;
-- }
--
-- return _pixman_implementation_blt (
-- imp->delegate,
-- src_bits, dst_bits, src_stride, dst_stride, src_bpp, dst_bpp,
-- src_x, src_y, dst_x, dst_y, width, height);
--}
--
--static pixman_bool_t
- arm_neon_fill (pixman_implementation_t *imp,
- uint32_t * bits,
- int stride,
-@@ -2771,9 +1988,6 @@ _pixman_implementation_create_arm_neon (void)
- pixman_implementation_t *imp = _pixman_implementation_create (general);
-
- imp->composite = arm_neon_composite;
--#if 0 /* this code has some bugs */
-- imp->blt = arm_neon_blt;
--#endif
- imp->fill = arm_neon_fill;
-
- return imp;
---
-1.6.2.4
-
diff --git a/recipes/xorg-lib/pixman/0002-ARM-Introduction-of-the-new-framework-for-NEON-fast.patch b/recipes/xorg-lib/pixman/0002-ARM-Introduction-of-the-new-framework-for-NEON-fast.patch
deleted file mode 100644
index af0a8aa7a0..0000000000
--- a/recipes/xorg-lib/pixman/0002-ARM-Introduction-of-the-new-framework-for-NEON-fast.patch
+++ /dev/null
@@ -1,1061 +0,0 @@
-From d9d9173581331a3bf7e5d123db32025588b7f044 Mon Sep 17 00:00:00 2001
-From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
-Date: Sat, 10 Oct 2009 00:20:51 +0300
-Subject: [PATCH 2/7] ARM: Introduction of the new framework for NEON fast path optimizations
-
-GNU assembler and its macro preprocessor is now used to generate
-NEON optimized functions from a common template. This automatically
-takes care of nuisances like ensuring optimal alignment, dealing with
-leading/trailing pixels, doing prefetch, etc.
-
-As the first use for this framework, this commit also includes an
-implementation of pixman_composite_over_8888_0565_asm_neon function.
----
- configure.ac | 1 +
- pixman/Makefile.am | 4 +-
- pixman/pixman-arm-neon-asm.S | 309 +++++++++++++++++++++
- pixman/pixman-arm-neon-asm.h | 620 ++++++++++++++++++++++++++++++++++++++++++
- pixman/pixman-arm-neon.c | 55 ++++
- 5 files changed, 988 insertions(+), 1 deletions(-)
- create mode 100644 pixman/pixman-arm-neon-asm.S
- create mode 100644 pixman/pixman-arm-neon-asm.h
-
-diff --git a/configure.ac b/configure.ac
-index c548174..522af15 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -71,6 +71,7 @@ AC_CANONICAL_HOST
- test_CFLAGS=${CFLAGS+set} # We may override autoconf default CFLAGS.
-
- AC_PROG_CC
-+AM_PROG_AS
- AC_PROG_LIBTOOL
- AC_CHECK_FUNCS([getisax])
- AC_C_BIGENDIAN
-diff --git a/pixman/Makefile.am b/pixman/Makefile.am
-index 6020623..2543c6a 100644
---- a/pixman/Makefile.am
-+++ b/pixman/Makefile.am
-@@ -109,7 +109,9 @@ endif
- if USE_ARM_NEON
- noinst_LTLIBRARIES += libpixman-arm-neon.la
- libpixman_arm_neon_la_SOURCES = \
-- pixman-arm-neon.c
-+ pixman-arm-neon.c \
-+ pixman-arm-neon-asm.S \
-+ pixman-arm-neon-asm.h
- libpixman_arm_neon_la_CFLAGS = $(DEP_CFLAGS) $(ARM_NEON_CFLAGS)
- libpixman_arm_neon_la_LIBADD = $(DEP_LIBS)
- libpixman_1_la_LIBADD += libpixman-arm-neon.la
-diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S
-new file mode 100644
-index 0000000..843899f
---- /dev/null
-+++ b/pixman/pixman-arm-neon-asm.S
-@@ -0,0 +1,309 @@
-+/*
-+ * Copyright © 2009 Nokia Corporation
-+ *
-+ * Permission to use, copy, modify, distribute, and sell this software and its
-+ * documentation for any purpose is hereby granted without fee, provided that
-+ * the above copyright notice appear in all copies and that both that
-+ * copyright notice and this permission notice appear in supporting
-+ * documentation, and that the name of Nokia Corporation not be used in
-+ * advertising or publicity pertaining to distribution of the software without
-+ * specific, written prior permission. Nokia Corporation makes no
-+ * representations about the suitability of this software for any purpose.
-+ * It is provided "as is" without express or implied warranty.
-+ *
-+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
-+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-+ * SOFTWARE.
-+ *
-+ * Author: Siarhei Siamashka (siarhei.siamashka@nokia.com)
-+ */
-+
-+/* Prevent the stack from becoming executable for no reason... */
-+#if defined(__linux__) && defined(__ELF__)
-+.section .note.GNU-stack,"",%progbits
-+#endif
-+
-+ .text
-+ .fpu neon
-+ .altmacro
-+
-+#include "pixman-arm-neon-asm.h"
-+
-+/*
-+ * This file contains implementations of NEON optimized pixel processing
-+ * functions functions. There is no full and detailed tutorial, but some
-+ * functions (those which are exposing some new or interesting features)
-+ * are extensively commented and can be used as examples.
-+ *
-+ * You may want to have a look at the following functions:
-+ * - pixman_composite_over_8888_0565_asm_neon
-+ */
-+
-+/*
-+ * Implementation of pixman_composite_over_8888_0565_asm_neon
-+ *
-+ * This function takes a8r8g8b8 source buffer, r5g6b5 destination buffer and
-+ * performs OVER compositing operation. Function fast_composite_over_8888_0565
-+ * from pixman-fast-path.c does the same in C and can be used as a reference.
-+ *
-+ * First we need to have some NEON assembly code which can do the actual
-+ * operation on the pixels and provide it to the template macro
-+ *
-+ * Template macro quite conveniently takes care of all the necessary code for
-+ * memory reading and writing (including quite tricky cases of handling
-+ * unaligned leading/trailing pixels), so we only need to deal with the data
-+ * in NEON registers.
-+ *
-+ * NEON registers allocation in general is recommented to be the following:
-+ * d0, d1, d2, d3 - contain loaded source pixel data
-+ * d4, d5, d6, d7 - contain loaded destination pixels (if they are needed)
-+ * d24, d25, d26, d27 - contain loading mask pixel data (if mask is used)
-+ * d28, d29, d30, d31 - place for storing the result (destination pixels)
-+ *
-+ * As can be seen above, four 64-bit NEON registers are used for keeping
-+ * intermediate pixel data and up to 8 pixels can be processed in one step
-+ * for 32bpp formats (16 pixels for 16bpp, 32 pixels for 8bpp).
-+ *
-+ * This particular function uses the following allocation:
-+ * d0, d1, d2, d3 - contain loaded source pixel data
-+ * d4, d5 - contain loaded destination pixels (they are needed)
-+ * d28, d29 - place for storing the result (destination pixels)
-+ */
-+
-+/*
-+ * Step one. We need to have some code to do some arithmetics on pixel data.
-+ * This is implemented as a pair of macros: '*_head' and '*_tail'. When used
-+ * back-to-back, they take pixel data from {d0, d1, d2, d3} and {d4, d5},
-+ * perform all the needed calculations and write the result to {d28, d29}.
-+ * The rationale for having two macros and not just one will be explained
-+ * later. In practice, any single monolitic function which does the work can
-+ * be split into two parts in any arbitrary way without affecting correctness.
-+ *
-+ * There is one special trick here too. Common template macro already makes
-+ * our life a bit easier by doing R, G, B, A color components deinterleaving
-+ * for 32bpp pixel formats. So it means that instead of having 8 packed
-+ * pixels in {d0, d1, d2, d3} registers, we actually use d0 register for
-+ * blue channel (a vector of eight 8-bit values), d1 register for green,
-+ * d2 for red and d3 for alpha. There is no magic and simple conversion
-+ * can be done with a few NEON instructions.
-+ *
-+ * Packed to planar conversion:
-+ * vuzp.8 d0, d1
-+ * vuzp.8 d2, d3
-+ * vuzp.8 d1, d3
-+ * vuzp.8 d0, d2
-+ *
-+ * Planar to packed conversion:
-+ * vzip.8 d0, d2
-+ * vzip.8 d1, d3
-+ * vzip.8 d2, d3
-+ * vzip.8 d0, d1
-+ *
-+ * Pixel can be loaded directly in planar format using VLD4.8 NEON
-+ * instruction. But it is 1 cycle slower than VLD1.32 and sometimes
-+ * code can be scheduled so that four extra VUZP.8 after VLD1.32 may
-+ * be dual-issued with the other instructions resulting in overal
-+ * 1 cycle improvement.
-+ *
-+ * But anyway, here is the code:
-+ */
-+.macro pixman_composite_over_8888_0565_process_pixblock_head
-+ /* convert 8 r5g6b5 pixel data from {d4, d5} to planar 8-bit format
-+ and put data into d6 - red, d7 - green, d30 - blue */
-+ vshrn.u16 d6, q2, #8
-+ vshrn.u16 d7, q2, #3
-+ vsli.u16 q2, q2, #5
-+ vsri.u8 d6, d6, #5
-+ vmvn.8 d3, d3 /* invert source alpha */
-+ vsri.u8 d7, d7, #6
-+ vshrn.u16 d30, q2, #2
-+ /* now do alpha blending, storing results in 8-bit planar format
-+ into d16 - red, d19 - green, d18 - blue */
-+ vmull.u8 q10, d3, d6
-+ vmull.u8 q11, d3, d7
-+ vmull.u8 q12, d3, d30
-+ vrshr.u16 q13, q10, #8
-+ vrshr.u16 q3, q11, #8
-+ vrshr.u16 q15, q12, #8
-+ vraddhn.u16 d20, q10, q13
-+ vraddhn.u16 d23, q11, q3
-+ vraddhn.u16 d22, q12, q15
-+.endm
-+
-+.macro pixman_composite_over_8888_0565_process_pixblock_tail
-+ /* ... continue alpha blending */
-+ vqadd.u8 d16, d2, d20
-+ vqadd.u8 q9, q0, q11
-+ /* convert the result to r5g6b5 and store it into {d28, d29} */
-+ vshll.u8 q14, d16, #8
-+ vshll.u8 q8, d19, #8
-+ vshll.u8 q9, d18, #8
-+ vsri.u16 q14, q8, #5
-+ vsri.u16 q14, q9, #11
-+.endm
-+
-+/*
-+ * OK, now we got almost everything that we need. Using the above two
-+ * macros, the work can be done right. But now we want to optimize
-+ * it a bit. ARM Cortex-A8 is an in-order core, and benefits really
-+ * a lot from good code scheduling and software pipelining.
-+ *
-+ * Let's construct some code, which will run in the core main loop.
-+ * Some pseudo-code of the main loop will look like this:
-+ * head
-+ * while (...) {
-+ * tail
-+ * head
-+ * }
-+ * tail
-+ *
-+ * It may look a bit weird, but this setup allows to hide instruction
-+ * latencies better and also utilize dual-issue capability more efficiently.
-+ *
-+ * So what we need now is a '*_tail_head' macro, which will be used
-+ * in the core main loop. A trivial straightforward implementation
-+ * of this macro would look like this:
-+ *
-+ * pixman_composite_over_8888_0565_process_pixblock_tail
-+ * vst1.16 {d28, d29}, [DST_W, :128]!
-+ * vld1.16 {d4, d5}, [DST_R, :128]!
-+ * vld4.32 {d0, d1, d2, d3}, [SRC]!
-+ * pixman_composite_over_8888_0565_process_pixblock_head
-+ * cache_preload 8, 8
-+ *
-+ * Now it also got some VLD/VST instructions. We simply can't move from
-+ * processing one block of pixels to the other one with just arithmetics.
-+ * The previously processed data needs to be written to memory and new
-+ * data needs to be fetched. Fortunately, this main loop does not deal
-+ * with partial leading/trailing pixels and can load/store a full block
-+ * of pixels in a bulk. Additionally, destination buffer is 16 bytes
-+ * aligned here (which is good for performance).
-+ *
-+ * New things here are DST_R, DST_W, SRC and MASK identifiers. These
-+ * are the aliases for ARM registers which are used as pointers for
-+ * accessing data. We maintain separate pointers for reading and writing
-+ * destination buffer.
-+ *
-+ * Another new thing is 'cache_preload' macro. It is used for prefetching
-+ * data into CPU cache and improve performance when dealing with large
-+ * images which are far larger than cache size. It uses one argument
-+ * (actually two, but they need to be the same here) - number of pixels
-+ * in a block. Looking into 'pixman-arm-neon-asm.h' can provide some
-+ * details about this macro. Moreover, if good performance is needed
-+ * the code from this macro needs to be copied into '*_tail_head' macro
-+ * and mixed with the rest of code for optimal instructions scheduling.
-+ * We are actually doing it below.
-+ *
-+ * Now after all the explanations, here is the optimized code.
-+ * Different instruction streams (originaling from '*_head', '*_tail'
-+ * and 'cache_preload' macro) use different indentation levels for
-+ * better readability. Actually taking the code from one of these
-+ * indentation levels and ignoring a few VLD/VST instructions would
-+ * result in exactly the code from '*_head', '*_tail' or 'cache_preload'
-+ * macro!
-+ */
-+
-+#if 1
-+
-+.macro pixman_composite_over_8888_0565_process_pixblock_tail_head
-+ vqadd.u8 d16, d2, d20
-+ vld1.16 {d4, d5}, [DST_R, :128]!
-+ vqadd.u8 q9, q0, q11
-+ vshrn.u16 d6, q2, #8
-+ vld4.8 {d0, d1, d2, d3}, [SRC]!
-+ vshrn.u16 d7, q2, #3
-+ vsli.u16 q2, q2, #5
-+ vshll.u8 q14, d16, #8
-+ add PF_X, PF_X, #8
-+ vshll.u8 q8, d19, #8
-+ tst PF_CTL, #0xF
-+ vsri.u8 d6, d6, #5
-+ addne PF_X, PF_X, #8
-+ vmvn.8 d3, d3
-+ subne PF_CTL, PF_CTL, #1
-+ vsri.u8 d7, d7, #6
-+ vshrn.u16 d30, q2, #2
-+ vmull.u8 q10, d3, d6
-+ pld [PF_SRC, PF_X, lsl #src_bpp_shift]
-+ vmull.u8 q11, d3, d7
-+ vmull.u8 q12, d3, d30
-+ pld [PF_DST, PF_X, lsl #dst_bpp_shift]
-+ vsri.u16 q14, q8, #5
-+ cmp PF_X, ORIG_W
-+ vshll.u8 q9, d18, #8
-+ vrshr.u16 q13, q10, #8
-+ subge PF_X, PF_X, ORIG_W
-+ vrshr.u16 q3, q11, #8
-+ vrshr.u16 q15, q12, #8
-+ subges PF_CTL, PF_CTL, #0x10
-+ vsri.u16 q14, q9, #11
-+ ldrgeb DUMMY, [PF_SRC, SRC_STRIDE, lsl #src_bpp_shift]!
-+ vraddhn.u16 d20, q10, q13
-+ vraddhn.u16 d23, q11, q3
-+ ldrgeb DUMMY, [PF_DST, DST_STRIDE, lsl #dst_bpp_shift]!
-+ vraddhn.u16 d22, q12, q15
-+ vst1.16 {d28, d29}, [DST_W, :128]!
-+.endm
-+
-+#else
-+
-+/* If we did not care much about the performance, we would just use this... */
-+.macro pixman_composite_over_8888_0565_process_pixblock_tail_head
-+ pixman_composite_over_8888_0565_process_pixblock_tail
-+ vst1.16 {d28, d29}, [DST_W, :128]!
-+ vld1.16 {d4, d5}, [DST_R, :128]!
-+ vld4.32 {d0, d1, d2, d3}, [SRC]!
-+ pixman_composite_over_8888_0565_process_pixblock_head
-+ cache_preload 8, 8
-+.endm
-+
-+#endif
-+
-+/*
-+ * And now the final part. We are using 'generate_composite_function' macro
-+ * to put all the stuff together. We are specifying the name of the function
-+ * which we want to get, number of bits per pixel for the source, mask and
-+ * destination (0 if unused, like mask in this case). Next come some bit
-+ * flags:
-+ * FLAG_DST_READWRITE - tells that the destination buffer is both read
-+ * and written, for write-only buffer we would use
-+ * FLAG_DST_WRITEONLY flag instead
-+ * FLAG_DEINTERLEAVE_32BPP - tells that we prefer to work with planar data
-+ * and separate color channels for 32bpp format.
-+ * The next things are:
-+ * - the number of pixels processed per iteration (8 in this case, because
-+ * that' the maximum what can fit into four 64-bit NEON registers).
-+ * - prefetch distance, measured in pixel blocks. In this case it is 5 times
-+ * by 8 pixels. That would be 40 pixels, or up to 160 bytes. Optimal
-+ * prefetch distance can be selected by running some benchmarks.
-+ *
-+ * After that we specify some macros, these are 'default_init',
-+ * 'default_cleanup' (it is possible to have custom init/cleanup to be
-+ * able to save/restore some extra NEON registers like d8-d15 or do
-+ * anything else) followed by
-+ * 'pixman_composite_over_8888_0565_process_pixblock_head',
-+ * 'pixman_composite_over_8888_0565_process_pixblock_tail' and
-+ * 'pixman_composite_over_8888_0565_process_pixblock_tail_head'
-+ * which we got implemented above.
-+ *
-+ * The last part is the NEON registers allocation scheme.
-+ */
-+generate_composite_function \
-+ pixman_composite_over_8888_0565_asm_neon, 32, 0, 16, \
-+ FLAG_DST_READWRITE | FLAG_DEINTERLEAVE_32BPP, \
-+ 8, /* number of pixels, processed in a single block */ \
-+ 5, /* prefetch distance */ \
-+ default_init, \
-+ default_cleanup, \
-+ pixman_composite_over_8888_0565_process_pixblock_head, \
-+ pixman_composite_over_8888_0565_process_pixblock_tail, \
-+ pixman_composite_over_8888_0565_process_pixblock_tail_head, \
-+ 28, /* dst_w_basereg */ \
-+ 4, /* dst_r_basereg */ \
-+ 0, /* src_basereg */ \
-+ 24 /* mask_basereg */
-diff --git a/pixman/pixman-arm-neon-asm.h b/pixman/pixman-arm-neon-asm.h
-new file mode 100644
-index 0000000..d276ab9
---- /dev/null
-+++ b/pixman/pixman-arm-neon-asm.h
-@@ -0,0 +1,620 @@
-+/*
-+ * Copyright © 2009 Nokia Corporation
-+ *
-+ * Permission to use, copy, modify, distribute, and sell this software and its
-+ * documentation for any purpose is hereby granted without fee, provided that
-+ * the above copyright notice appear in all copies and that both that
-+ * copyright notice and this permission notice appear in supporting
-+ * documentation, and that the name of Nokia Corporation not be used in
-+ * advertising or publicity pertaining to distribution of the software without
-+ * specific, written prior permission. Nokia Corporation makes no
-+ * representations about the suitability of this software for any purpose.
-+ * It is provided "as is" without express or implied warranty.
-+ *
-+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
-+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-+ * SOFTWARE.
-+ *
-+ * Author: Siarhei Siamashka (siarhei.siamashka@nokia.com)
-+ */
-+
-+/*
-+ * This file contains a macro ('generate_composite_function') which can
-+ * construct 2D image processing functions, based on a common template.
-+ * Any combinations of source, destination and mask images with 8bpp,
-+ * 16bpp, 32bpp color formats are supported.
-+ *
-+ * This macro takes care of:
-+ * - handling of leading and trailing unaligned pixels
-+ * - doing most of the work related to L2 cache preload
-+ * - encourages the use of software pipelining for better instructions
-+ * scheduling
-+ *
-+ * The user of this macro has to provide some configuration parameters
-+ * (bit depths for the images, prefetch distance, etc.) and a set of
-+ * macros, which should implement basic code chunks responsible for
-+ * pixels processing. See 'pixman-arm-neon-asm.S' file for the usage
-+ * examples.
-+ *
-+ * TODO:
-+ * - support for 24bpp formats
-+ * - try overlapped pixel method (from Ian Rickards) when processing
-+ * exactly two blocks of pixels
-+ */
-+
-+.set FLAG_DST_WRITEONLY, 0
-+.set FLAG_DST_READWRITE, 1
-+.set FLAG_DEINTERLEAVE_32BPP, 2
-+
-+/*
-+ * It is possible to set this to 0 and improve performance a bit if unaligned
-+ * memory accesses are supported
-+ */
-+#define RESPECT_STRICT_ALIGNMENT 1
-+
-+/*
-+ * Definitions of supplementary pixld/pixst macros (for partial load/store of
-+ * pixel data)
-+ */
-+
-+.macro pixldst1 op, elem_size, reg1, mem_operand, abits
-+.if abits > 0
-+ op&.&elem_size {d&reg1}, [&mem_operand&, :&abits&]!
-+.else
-+ op&.&elem_size {d&reg1}, [&mem_operand&]!
-+.endif
-+.endm
-+
-+.macro pixldst2 op, elem_size, reg1, reg2, mem_operand, abits
-+.if abits > 0
-+ op&.&elem_size {d&reg1, d&reg2}, [&mem_operand&, :&abits&]!
-+.else
-+ op&.&elem_size {d&reg1, d&reg2}, [&mem_operand&]!
-+.endif
-+.endm
-+
-+.macro pixldst4 op, elem_size, reg1, reg2, reg3, reg4, mem_operand, abits
-+.if abits > 0
-+ op&.&elem_size {d&reg1, d&reg2, d&reg3, d&reg4}, [&mem_operand&, :&abits&]!
-+.else
-+ op&.&elem_size {d&reg1, d&reg2, d&reg3, d&reg4}, [&mem_operand&]!
-+.endif
-+.endm
-+
-+.macro pixldst0 op, elem_size, reg1, idx, mem_operand, abits
-+ op&.&elem_size {d&reg1[idx]}, [&mem_operand&]!
-+.endm
-+
-+.macro pixldst numbytes, op, elem_size, basereg, mem_operand, abits
-+.if numbytes == 32
-+ pixldst4 op, elem_size, %(basereg+4), %(basereg+5), \
-+ %(basereg+6), %(basereg+7), mem_operand, abits
-+.elseif numbytes == 16
-+ pixldst2 op, elem_size, %(basereg+2), %(basereg+3), mem_operand, abits
-+.elseif numbytes == 8
-+ pixldst1 op, elem_size, %(basereg+1), mem_operand, abits
-+.elseif numbytes == 4
-+ .if !RESPECT_STRICT_ALIGNMENT || (elem_size == 32)
-+ pixldst0 op, 32, %(basereg+0), 1, mem_operand, abits
-+ .elseif elem_size == 16
-+ pixldst0 op, 16, %(basereg+0), 2, mem_operand, abits
-+ pixldst0 op, 16, %(basereg+0), 3, mem_operand, abits
-+ .else
-+ pixldst0 op, 8, %(basereg+0), 4, mem_operand, abits
-+ pixldst0 op, 8, %(basereg+0), 5, mem_operand, abits
-+ pixldst0 op, 8, %(basereg+0), 6, mem_operand, abits
-+ pixldst0 op, 8, %(basereg+0), 7, mem_operand, abits
-+ .endif
-+.elseif numbytes == 2
-+ .if !RESPECT_STRICT_ALIGNMENT || (elem_size == 16)
-+ pixldst0 op, 16, %(basereg+0), 1, mem_operand, abits
-+ .else
-+ pixldst0 op, 8, %(basereg+0), 2, mem_operand, abits
-+ pixldst0 op, 8, %(basereg+0), 3, mem_operand, abits
-+ .endif
-+.elseif numbytes == 1
-+ pixldst0 op, 8, %(basereg+0), 1, mem_operand, abits
-+.else
-+ .error "unsupported size: numbytes"
-+.endif
-+.endm
-+
-+.macro pixld numpix, bpp, basereg, mem_operand, abits=0
-+.if bpp > 0
-+.if (bpp == 32) && (numpix == 8) && (DEINTERLEAVE_32BPP_ENABLED != 0)
-+ pixldst4 vld4, 8, %(basereg+4), %(basereg+5), \
-+ %(basereg+6), %(basereg+7), mem_operand, abits
-+.else
-+ pixldst %(numpix * bpp / 8), vld1, %(bpp), basereg, mem_operand, abits
-+.endif
-+.endif
-+.endm
-+
-+.macro pixst numpix, bpp, basereg, mem_operand, abits=0
-+.if bpp > 0
-+.if (bpp == 32) && (numpix == 8) && (DEINTERLEAVE_32BPP_ENABLED != 0)
-+ pixldst4 vst4, 8, %(basereg+4), %(basereg+5), \
-+ %(basereg+6), %(basereg+7), mem_operand, abits
-+.else
-+ pixldst %(numpix * bpp / 8), vst1, %(bpp), basereg, mem_operand, abits
-+.endif
-+.endif
-+.endm
-+
-+.macro pixld_a numpix, bpp, basereg, mem_operand
-+.if (bpp * numpix) <= 128
-+ pixld numpix, bpp, basereg, mem_operand, %(bpp * numpix)
-+.else
-+ pixld numpix, bpp, basereg, mem_operand, 128
-+.endif
-+.endm
-+
-+.macro pixst_a numpix, bpp, basereg, mem_operand
-+.if (bpp * numpix) <= 128
-+ pixst numpix, bpp, basereg, mem_operand, %(bpp * numpix)
-+.else
-+ pixst numpix, bpp, basereg, mem_operand, 128
-+.endif
-+.endm
-+
-+.macro vuzp8 reg1, reg2
-+ vuzp.8 d&reg1, d&reg2
-+.endm
-+
-+.macro vzip8 reg1, reg2
-+ vzip.8 d&reg1, d&reg2
-+.endm
-+
-+/* deinterleave B, G, R, A channels for eight 32bpp pixels in 4 registers */
-+.macro pixdeinterleave bpp, basereg
-+.if (bpp == 32) && (DEINTERLEAVE_32BPP_ENABLED != 0)
-+ vuzp8 %(basereg+0), %(basereg+1)
-+ vuzp8 %(basereg+2), %(basereg+3)
-+ vuzp8 %(basereg+1), %(basereg+3)
-+ vuzp8 %(basereg+0), %(basereg+2)
-+.endif
-+.endm
-+
-+/* interleave B, G, R, A channels for eight 32bpp pixels in 4 registers */
-+.macro pixinterleave bpp, basereg
-+.if (bpp == 32) && (DEINTERLEAVE_32BPP_ENABLED != 0)
-+ vzip8 %(basereg+0), %(basereg+2)
-+ vzip8 %(basereg+1), %(basereg+3)
-+ vzip8 %(basereg+2), %(basereg+3)
-+ vzip8 %(basereg+0), %(basereg+1)
-+.endif
-+.endm
-+
-+/*
-+ * This is a macro for implementing cache preload. The main idea is that
-+ * cache preload logic is mostly independent from the rest of pixels
-+ * processing code. It starts at the top left pixel and moves forward
-+ * across pixels and can jump across lines. Prefetch distance is handled
-+ * in an 'incremental' way: it starts from 0 and advances to the optimal
-+ * distance over time. After reaching optimal prefetch distance, it is
-+ * kept constant. There are some checks which prevent prefetching
-+ * unneeded pixel lines below the image (but it still prefetch a bit
-+ * more data on the right side of the image - not a big issue and may
-+ * be actually helpful when rendering text glyphs). Additional trick is
-+ * the use of LDR instruction for prefetch instead of PLD when moving to
-+ * the next line, the point is that we have a high chance of getting TLB
-+ * miss in this case, and PLD would be useless.
-+ *
-+ * This sounds like it may introduce a noticeable overhead (when working with
-+ * fully cached data). But in reality, due to having a separate pipeline and
-+ * instruction queue for NEON unit in ARM Cortex-A8, normal ARM code can
-+ * execute simultaneously with NEON and be completely shadowed by it. Thus
-+ * we get no performance overhead at all (*). This looks like a very nice
-+ * feature of Cortex-A8, if used wisely. We don't have a hardware hardware
-+ * prefetcher, but still can implement some rather advanced prefetch logic
-+ * in sofware for almost zero cost!
-+ *
-+ * (*) The overhead of the prefetcher is visible when running some trivial
-+ * pixels processing like simple copy. Anyway, having prefetch is a must
-+ * when working with graphics data.
-+ */
-+.macro cache_preload std_increment, boost_increment
-+.if (src_bpp_shift >= 0) || (dst_r_bpp != 0) || (mask_bpp_shift >= 0)
-+.if regs_shortage
-+ ldr ORIG_W, [sp] /* If we are short on regs, ORIG_W is kept on stack */
-+.endif
-+.if std_increment != 0
-+ add PF_X, PF_X, #std_increment
-+.endif
-+ tst PF_CTL, #0xF
-+ addne PF_X, PF_X, #boost_increment
-+ subne PF_CTL, PF_CTL, #1
-+ cmp PF_X, ORIG_W
-+.if src_bpp_shift >= 0
-+ pld [PF_SRC, PF_X, lsl #src_bpp_shift]
-+.endif
-+.if dst_r_bpp != 0
-+ pld [PF_DST, PF_X, lsl #dst_bpp_shift]
-+.endif
-+.if mask_bpp_shift >= 0
-+ pld [PF_MASK, PF_X, lsl #mask_bpp_shift]
-+.endif
-+ subge PF_X, PF_X, ORIG_W
-+ subges PF_CTL, PF_CTL, #0x10
-+.if src_bpp_shift >= 0
-+ ldrgeb DUMMY, [PF_SRC, SRC_STRIDE, lsl #src_bpp_shift]!
-+.endif
-+.if dst_r_bpp != 0
-+ ldrgeb DUMMY, [PF_DST, DST_STRIDE, lsl #dst_bpp_shift]!
-+.endif
-+.if mask_bpp_shift >= 0
-+ ldrgeb DUMMY, [PF_MASK, MASK_STRIDE, lsl #mask_bpp_shift]!
-+.endif
-+.endif
-+.endm
-+
-+/*
-+ * Registers are allocated in the following way by default:
-+ * d0, d1, d2, d3 - reserved for loading source pixel data
-+ * d4, d5, d6, d7 - reserved for loading destination pixel data
-+ * d24, d25, d26, d27 - reserved for loading mask pixel data
-+ * d28, d29, d30, d31 - final destination pixel data for writeback to memory
-+ */
-+.macro generate_composite_function fname, \
-+ src_bpp, \
-+ mask_bpp, \
-+ dst_w_bpp, \
-+ flags, \
-+ pixblock_size, \
-+ prefetch_distance, \
-+ init, \
-+ cleanup, \
-+ process_pixblock_head, \
-+ process_pixblock_tail, \
-+ process_pixblock_tail_head, \
-+ dst_w_basereg = 28, \
-+ dst_r_basereg = 4, \
-+ src_basereg = 0, \
-+ mask_basereg = 24
-+
-+ .global fname
-+fname:
-+
-+ W .req r0 /* width (is updated during processing) */
-+ H .req r1 /* height (is updated during processing) */
-+ DST_W .req r2 /* destination buffer pointer for writes */
-+ DST_STRIDE .req r3 /* destination image stride */
-+ SRC .req r4 /* source buffer pointer */
-+ SRC_STRIDE .req r5 /* source image stride */
-+ DST_R .req r6 /* destination buffer pointer for reads */
-+
-+ MASK .req r7 /* mask pointer */
-+ MASK_STRIDE .req r8 /* mask stride */
-+
-+ PF_CTL .req r9
-+ PF_X .req r10
-+ PF_SRC .req r11
-+ PF_DST .req r12
-+ PF_MASK .req r14
-+
-+.if mask_bpp == 0
-+ ORIG_W .req r7 /* saved original width */
-+ DUMMY .req r8 /* temporary register */
-+ .set regs_shortage, 0
-+.elseif src_bpp == 0
-+ ORIG_W .req r4 /* saved original width */
-+ DUMMY .req r5 /* temporary register */
-+ .set regs_shortage, 0
-+.else
-+ ORIG_W .req r1 /* saved original width */
-+ DUMMY .req r1 /* temporary register */
-+ .set regs_shortage, 1
-+.endif
-+
-+ push {r4-r12, lr}
-+
-+ .set mask_bpp_shift, -1
-+
-+.if src_bpp == 32
-+ .set src_bpp_shift, 2
-+.elseif src_bpp == 16
-+ .set src_bpp_shift, 1
-+.elseif src_bpp == 8
-+ .set src_bpp_shift, 0
-+.elseif src_bpp == 0
-+ .set src_bpp_shift, -1
-+.else
-+ .error "requested src bpp (src_bpp) is not supported"
-+.endif
-+.if mask_bpp == 32
-+ .set mask_bpp_shift, 2
-+.elseif mask_bpp == 8
-+ .set mask_bpp_shift, 0
-+.elseif mask_bpp == 0
-+ .set mask_bpp_shift, -1
-+.else
-+ .error "requested mask bpp (mask_bpp) is not supported"
-+.endif
-+.if dst_w_bpp == 32
-+ .set dst_bpp_shift, 2
-+.elseif dst_w_bpp == 16
-+ .set dst_bpp_shift, 1
-+.elseif dst_w_bpp == 8
-+ .set dst_bpp_shift, 0
-+.else
-+ .error "requested dst bpp (dst_w_bpp) is not supported"
-+.endif
-+
-+.if (((flags) & FLAG_DST_READWRITE) != 0)
-+ .set dst_r_bpp, dst_w_bpp
-+.else
-+ .set dst_r_bpp, 0
-+.endif
-+.if (((flags) & FLAG_DEINTERLEAVE_32BPP) != 0)
-+ .set DEINTERLEAVE_32BPP_ENABLED, 1
-+.else
-+ .set DEINTERLEAVE_32BPP_ENABLED, 0
-+.endif
-+
-+.if prefetch_distance < 0 || prefetch_distance > 15
-+ .error "invalid prefetch distance (prefetch_distance)"
-+.endif
-+
-+.if src_bpp > 0
-+ ldr SRC, [sp, #40]
-+.endif
-+.if mask_bpp > 0
-+ ldr MASK, [sp, #48]
-+.endif
-+ mov PF_X, #0
-+.if src_bpp > 0
-+ ldr SRC_STRIDE, [sp, #44]
-+.endif
-+.if mask_bpp > 0
-+ ldr MASK_STRIDE, [sp, #52]
-+.endif
-+ mov DST_R, DST_W
-+ mov PF_SRC, SRC
-+ mov PF_DST, DST_R
-+ mov PF_MASK, MASK
-+ mov PF_CTL, H, lsl #4
-+ /* pf_ctl = 10 | ((h - 1) << 4) */
-+ add PF_CTL, #(prefetch_distance - 0x10)
-+
-+ init
-+.if regs_shortage
-+ push {r0, r1}
-+.endif
-+ subs H, H, #1
-+.if regs_shortage
-+ str H, [sp, #4] /* save updated height to stack */
-+.else
-+ mov ORIG_W, W
-+.endif
-+ blt 9f
-+ cmp W, #(pixblock_size * 2)
-+ blt 8f
-+0:
-+ /* ensure 16 byte alignment of the destination buffer */
-+ tst DST_R, #0xF
-+ beq 2f
-+
-+.irp lowbit, 1, 2, 4, 8, 16
-+.if (dst_w_bpp <= (lowbit * 8)) && ((lowbit * 8) < (pixblock_size * dst_w_bpp))
-+.if lowbit < 16 /* we don't need more than 16-byte alignment */
-+ tst DST_R, #lowbit
-+ beq 1f
-+.endif
-+ pixld (lowbit * 8 / dst_w_bpp), src_bpp, src_basereg, SRC
-+ pixld (lowbit * 8 / dst_w_bpp), mask_bpp, mask_basereg, MASK
-+.if dst_r_bpp > 0
-+ pixld_a (lowbit * 8 / dst_r_bpp), dst_r_bpp, dst_r_basereg, DST_R
-+.else
-+ add DST_R, DST_R, #lowbit
-+.endif
-+ add PF_X, PF_X, #(lowbit * 8 / dst_w_bpp)
-+ sub W, W, #(lowbit * 8 / dst_w_bpp)
-+1:
-+.endif
-+.endr
-+ pixdeinterleave src_bpp, src_basereg
-+ pixdeinterleave mask_bpp, mask_basereg
-+ pixdeinterleave dst_r_bpp, dst_r_basereg
-+
-+ process_pixblock_head
-+ cache_preload 0, pixblock_size
-+ process_pixblock_tail
-+
-+ pixinterleave dst_w_bpp, dst_w_basereg
-+.irp lowbit, 1, 2, 4, 8, 16
-+.if (dst_w_bpp <= (lowbit * 8)) && ((lowbit * 8) < (pixblock_size * dst_w_bpp))
-+.if lowbit < 16 /* we don't need more than 16-byte alignment */
-+ tst DST_W, #lowbit
-+ beq 1f
-+.endif
-+ pixst_a (lowbit * 8 / dst_w_bpp), dst_w_bpp, dst_w_basereg, DST_W
-+1:
-+.endif
-+.endr
-+2:
-+
-+ pixld_a pixblock_size, dst_r_bpp, \
-+ (dst_r_basereg - pixblock_size * dst_r_bpp / 64), DST_R
-+ pixld pixblock_size, src_bpp, \
-+ (src_basereg - pixblock_size * src_bpp / 64), SRC
-+ pixld pixblock_size, mask_bpp, \
-+ (mask_basereg - pixblock_size * mask_bpp / 64), MASK
-+ add PF_X, PF_X, #pixblock_size
-+ process_pixblock_head
-+ cache_preload 0, pixblock_size
-+ subs W, W, #(pixblock_size * 2)
-+ blt 2f
-+1: /* innermost pipelined loop */
-+ process_pixblock_tail_head
-+ subs W, W, #pixblock_size
-+ bge 1b
-+2:
-+ process_pixblock_tail
-+ pixst_a pixblock_size, dst_w_bpp, \
-+ (dst_w_basereg - pixblock_size * dst_w_bpp / 64), DST_W
-+
-+ /* process up to (pixblock_size - 1) remaining pixels */
-+ tst W, #(pixblock_size - 1)
-+ beq 2f
-+.irp chunk_size, 16, 8, 4, 2, 1
-+.if pixblock_size > chunk_size
-+ tst W, #chunk_size
-+ beq 1f
-+ pixld chunk_size, src_bpp, src_basereg, SRC
-+ pixld chunk_size, mask_bpp, mask_basereg, MASK
-+ pixld_a chunk_size, dst_r_bpp, dst_r_basereg, DST_R
-+ add PF_X, PF_X, #chunk_size
-+1:
-+.endif
-+.endr
-+ pixdeinterleave src_bpp, src_basereg
-+ pixdeinterleave mask_bpp, mask_basereg
-+ pixdeinterleave dst_r_bpp, dst_r_basereg
-+
-+ process_pixblock_head
-+ cache_preload 0, pixblock_size
-+ process_pixblock_tail
-+
-+ pixinterleave dst_w_bpp, dst_w_basereg
-+.irp chunk_size, 16, 8, 4, 2, 1
-+.if pixblock_size > chunk_size
-+ tst W, #chunk_size
-+ beq 1f
-+ pixst_a chunk_size, dst_w_bpp, dst_w_basereg, DST_W
-+1:
-+.endif
-+.endr
-+2:
-+
-+.if regs_shortage
-+ ldrd W, [sp] /* load W and H (width and height) from stack */
-+.else
-+ mov W, ORIG_W
-+.endif
-+ add DST_W, DST_W, DST_STRIDE, lsl #dst_bpp_shift
-+.if src_bpp != 0
-+ add SRC, SRC, SRC_STRIDE, lsl #src_bpp_shift
-+.endif
-+.if mask_bpp != 0
-+ add MASK, MASK, MASK_STRIDE, lsl #mask_bpp_shift
-+.endif
-+ sub DST_W, DST_W, W, lsl #dst_bpp_shift
-+.if src_bpp != 0
-+ sub SRC, SRC, W, lsl #src_bpp_shift
-+.endif
-+.if mask_bpp != 0
-+ sub MASK, MASK, W, lsl #mask_bpp_shift
-+.endif
-+ subs H, H, #1
-+ mov DST_R, DST_W
-+.if regs_shortage
-+ str H, [sp, #4] /* save updated height to stack */
-+.endif
-+ bge 0b
-+.if regs_shortage
-+ pop {r0, r1}
-+.endif
-+ cleanup
-+ pop {r4-r12, pc} /* exit */
-+
-+8: /* handle small rectangle, width up to 15 pixels */
-+ tst W, #pixblock_size
-+ beq 1f
-+ pixld pixblock_size, dst_r_bpp, \
-+ (dst_r_basereg - pixblock_size * dst_r_bpp / 64), DST_R
-+ pixld pixblock_size, src_bpp, \
-+ (src_basereg - pixblock_size * src_bpp / 64), SRC
-+ pixld pixblock_size, mask_bpp, \
-+ (mask_basereg - pixblock_size * mask_bpp / 64), MASK
-+ process_pixblock_head
-+ process_pixblock_tail
-+ pixst pixblock_size, dst_w_bpp, \
-+ (dst_w_basereg - pixblock_size * dst_w_bpp / 64), DST_W
-+1: /* process the remaining pixels, which do not fully fill one block */
-+ tst W, #(pixblock_size - 1)
-+ beq 2f
-+.irp chunk_size, 16, 8, 4, 2, 1
-+.if pixblock_size > chunk_size
-+ tst W, #chunk_size
-+ beq 1f
-+ pixld chunk_size, src_bpp, src_basereg, SRC
-+ pixld chunk_size, mask_bpp, mask_basereg, MASK
-+ pixld chunk_size, dst_r_bpp, dst_r_basereg, DST_R
-+1:
-+.endif
-+.endr
-+ pixdeinterleave src_bpp, src_basereg
-+ pixdeinterleave mask_bpp, mask_basereg
-+ pixdeinterleave dst_r_bpp, dst_r_basereg
-+ process_pixblock_head
-+ process_pixblock_tail
-+ pixinterleave dst_w_bpp, dst_w_basereg
-+.irp chunk_size, 16, 8, 4, 2, 1
-+.if pixblock_size > chunk_size
-+ tst W, #chunk_size
-+ beq 1f
-+ pixst chunk_size, dst_w_bpp, dst_w_basereg, DST_W
-+1:
-+.endif
-+.endr
-+2:
-+.if regs_shortage
-+ ldrd W, [sp] /* load W and H (width and height) from stack */
-+.else
-+ mov W, ORIG_W
-+.endif
-+ add DST_W, DST_W, DST_STRIDE, lsl #dst_bpp_shift
-+.if src_bpp != 0
-+ add SRC, SRC, SRC_STRIDE, lsl #src_bpp_shift
-+.endif
-+.if mask_bpp != 0
-+ add MASK, MASK, MASK_STRIDE, lsl #mask_bpp_shift
-+.endif
-+ sub DST_W, DST_W, W, lsl #dst_bpp_shift
-+.if src_bpp != 0
-+ sub SRC, SRC, W, lsl #src_bpp_shift
-+.endif
-+.if mask_bpp != 0
-+ sub MASK, MASK, W, lsl #mask_bpp_shift
-+.endif
-+ subs H, H, #1
-+ mov DST_R, DST_W
-+.if regs_shortage
-+ str H, [sp, #4] /* save updated height to stack */
-+.endif
-+ bge 8b
-+9:
-+.if regs_shortage
-+ pop {r0, r1}
-+.endif
-+ cleanup
-+ pop {r4-r12, pc} /* exit */
-+
-+ .unreq SRC
-+ .unreq MASK
-+ .unreq DST_R
-+ .unreq DST_W
-+ .unreq ORIG_W
-+ .unreq W
-+ .unreq H
-+ .unreq SRC_STRIDE
-+ .unreq DST_STRIDE
-+ .unreq MASK_STRIDE
-+ .unreq PF_CTL
-+ .unreq PF_X
-+ .unreq PF_SRC
-+ .unreq PF_DST
-+ .unreq PF_MASK
-+ .unreq DUMMY
-+.endm
-+
-+.macro default_init
-+.endm
-+
-+.macro default_cleanup
-+.endm
-diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
-index 9caef61..fe57daa 100644
---- a/pixman/pixman-arm-neon.c
-+++ b/pixman/pixman-arm-neon.c
-@@ -1901,8 +1901,63 @@ pixman_fill_neon (uint32_t *bits,
- #endif
- }
-
-+/*
-+ * Use GNU assembler optimizations only if we are completely sure that
-+ * the target system has compatible ABI and calling conventions. This
-+ * check can be updated/extended if more systems turn out to be actually
-+ * compatible.
-+ */
-+#if defined(__linux__) && defined(__ARM_EABI__) && defined(USE_GCC_INLINE_ASM)
-+#define USE_GNU_ASSEMBLER_ASM
-+#endif
-+
-+#ifdef USE_GNU_ASSEMBLER_ASM
-+
-+void
-+pixman_composite_over_8888_0565_asm_neon (int32_t w,
-+ int32_t h,
-+ uint16_t *dst,
-+ int32_t dst_stride,
-+ uint32_t *src,
-+ int32_t src_stride);
-+
-+static void
-+neon_composite_over_8888_0565 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint16_t *dst_line;
-+ uint32_t *src_line;
-+ int32_t dst_stride, src_stride;
-+
-+ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t,
-+ src_stride, src_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t,
-+ dst_stride, dst_line, 1);
-+
-+ pixman_composite_over_8888_0565_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src_line, src_stride);
-+}
-+
-+#endif
-+
- static const pixman_fast_path_t arm_neon_fast_path_array[] =
- {
-+#ifdef USE_GNU_ASSEMBLER_ASM
-+ { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_over_8888_0565, 0 },
-+ { PIXMAN_OP_OVER, PIXMAN_a8b8g8r8, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_over_8888_0565, 0 },
-+#endif
- { PIXMAN_OP_ADD, PIXMAN_solid, PIXMAN_a8, PIXMAN_a8, neon_composite_add_n_8_8, 0 },
- { PIXMAN_OP_ADD, PIXMAN_a8, PIXMAN_null, PIXMAN_a8, neon_composite_add_8000_8000, 0 },
- { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_a8, PIXMAN_r5g6b5, neon_composite_over_n_8_0565, 0 },
---
-1.6.2.4
-
diff --git a/recipes/xorg-lib/pixman/0002-Test-program-for-pixman_blt-function.patch b/recipes/xorg-lib/pixman/0002-Test-program-for-pixman_blt-function.patch
new file mode 100644
index 0000000000..143e79dabf
--- /dev/null
+++ b/recipes/xorg-lib/pixman/0002-Test-program-for-pixman_blt-function.patch
@@ -0,0 +1,178 @@
+From 364406e03f9651aacb1bc684de6c00a27f9df66d Mon Sep 17 00:00:00 2001
+From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
+Date: Mon, 19 Oct 2009 20:32:55 +0300
+Subject: [PATCH 2/6] Test program for pixman_blt function
+
+It can do some basic correctness tests and also check whether
+overlapping of source and destination images is supported.
+---
+ test/Makefile.am | 2 +
+ test/overlapped-blt-test.c | 136 ++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 138 insertions(+), 0 deletions(-)
+ create mode 100644 test/overlapped-blt-test.c
+
+diff --git a/test/Makefile.am b/test/Makefile.am
+index 89d32e9..40c305f 100644
+--- a/test/Makefile.am
++++ b/test/Makefile.am
+@@ -9,6 +9,7 @@ TESTPROGRAMS = \
+ fetch-test \
+ oob-test \
+ window-test \
++ overlapped-blt-test \
+ trap-crasher
+
+ fetch_test_LDADD = $(TEST_LDADD)
+@@ -17,6 +18,7 @@ composite_LDADD = $(TEST_LDADD)
+ trap_crasher_LDADD = $(TEST_LDADD)
+ oob_test_LDADD = $(TEST_LDADD)
+ window_test_LDADD = $(TEST_LDADD)
++overlapped_blt_test_LDADD = $(TEST_LDADD)
+
+ blitters_test_LDADD = $(TEST_LDADD)
+ blitters_test_SOURCES = blitters-test.c utils.c utils.h
+diff --git a/test/overlapped-blt-test.c b/test/overlapped-blt-test.c
+new file mode 100644
+index 0000000..95fbc54
+--- /dev/null
++++ b/test/overlapped-blt-test.c
+@@ -0,0 +1,136 @@
++/*
++ * A small test program which can check whether pixman_blt function
++ * can support overlapping of source and destination images.
++ * Efficient blit with overlapping is useful for scrolling.
++ */
++
++#include <stdint.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include "pixman.h"
++
++/* reference implementation (slow) */
++static void
++trivial_copy8_2d (
++ uint8_t *dst, int dst_stride,
++ uint8_t *src, int src_stride,
++ int dx, int dy, int sx, int sy,
++ int w, int h)
++{
++ int x, y;
++ uint8_t *tmp = malloc (src_stride * (sy + h));
++ memcpy (tmp, src, src_stride * (sy + h));
++ for (y = 0; y < h; y++)
++ {
++ for (x = 0; x < w; x++)
++ {
++ *(dst + (dy + y) * dst_stride + dx + x) =
++ *(tmp + (sy + y) * src_stride + sx + x);
++ }
++ }
++ free (tmp);
++}
++
++static void
++trivial_copy_2d (
++ uint8_t *dst, int dst_stride,
++ uint8_t *src, int src_stride,
++ int dx, int dy, int sx, int sy,
++ int w, int h, int bpp)
++{
++ trivial_copy8_2d (dst, dst_stride, src, src_stride,
++ dx * (bpp / 8), dy, sx * (bpp / 8), sy, w * (bpp / 8), h);
++}
++
++/* now the test itself */
++
++#define ST_UNSUPPORTED 1
++#define ST_NORMAL_BUG 2
++#define ST_OVERLAPPED_BUG 4
++
++#define MAX_SIZE_X 64
++#define MAX_SIZE_Y 64
++
++static void print_result(int bpp, int flags)
++{
++ printf("bpp=%d, supported=%d, normal_ok=%d, overlapped_ok=%d\n",
++ bpp,
++ !(flags & ST_UNSUPPORTED),
++ !(flags & ST_NORMAL_BUG),
++ !(flags & ST_OVERLAPPED_BUG));
++}
++
++int main()
++{
++ int c = 100000, r;
++ int bpp_st[33] = {0};
++ srand(0);
++ while (c-- > 0)
++ {
++ uint8_t *src1, *src2, *src3;
++ int i;
++ int sizex = rand() % MAX_SIZE_X + 1;
++ int sizey = rand() % MAX_SIZE_Y + 1;
++ int sx = rand() % sizex;
++ int sy = rand() % sizey;
++ int dx = rand() % sizex;
++ int dy = rand() % sizey;
++ int w = rand() % sizex;
++ int h = rand() % sizex;
++ int bpp = 8 * (1 << (rand() % 3));
++ int stride_delta = rand() % 8;
++ int bufsize;
++ if ((sizex + stride_delta) % 4)
++ stride_delta += 4 - ((sizex + stride_delta) % 4);
++ bufsize = (sizex + stride_delta) * sizey * bpp / 8;
++ src1 = malloc (bufsize);
++ src2 = malloc (bufsize);
++ src3 = malloc (bufsize);
++ for (i = 0; i < bufsize; i++)
++ src1[i] = rand();
++ memcpy (src2, src1, bufsize);
++ memcpy (src3, src1, bufsize);
++ if (sx + w > sizex)
++ w = sizex - sx;
++ if (dx + w > sizex)
++ w = sizex - dx;
++ if (sy + h > sizey)
++ h = sizey - sy;
++ if (dy + h > sizey)
++ h = sizey - dy;
++ /* get reference result */
++ trivial_copy_2d (src1, (sizex + stride_delta) * bpp / 8,
++ src1, (sizex + stride_delta) * bpp / 8,
++ dx, dy, sx, sy, w, h, bpp);
++ /* check nonoverlapped pixman result */
++ r = pixman_blt ((uint32_t *)src3, (uint32_t *)src2,
++ (sizex + stride_delta) * bpp / 8 / 4,
++ (sizex + stride_delta) * bpp / 8 / 4,
++ bpp, bpp, sx, sy, dx, dy, w, h);
++ if (!r)
++ bpp_st[bpp] |= ST_UNSUPPORTED;
++ if (memcmp (src1, src2, bufsize) != 0)
++ bpp_st[bpp] |= ST_NORMAL_BUG;
++ /* check overlapped pixman result */
++ r = pixman_blt ((uint32_t *)src3, (uint32_t *)src3,
++ (sizex + stride_delta) * bpp / 8 / 4,
++ (sizex + stride_delta) * bpp / 8 / 4,
++ bpp, bpp, sx, sy, dx, dy, w, h);
++ if (!r)
++ bpp_st[bpp] |= ST_UNSUPPORTED;
++ if (memcmp (src1, src3, bufsize) != 0)
++ bpp_st[bpp] |= ST_OVERLAPPED_BUG;
++ /* free buffers */
++ free (src1);
++ free (src2);
++ free (src3);
++ }
++
++ /* report results */
++ print_result (8, bpp_st[8]);
++ print_result (16, bpp_st[16]);
++ print_result (32, bpp_st[32]);
++
++ return 0;
++}
+--
+1.6.2.4
+
diff --git a/recipes/xorg-lib/pixman/0003-ARM-Added-pixman_composite_src_8888_0565_asm_neon-f.patch b/recipes/xorg-lib/pixman/0003-ARM-Added-pixman_composite_src_8888_0565_asm_neon-f.patch
deleted file mode 100644
index 00b682e34d..0000000000
--- a/recipes/xorg-lib/pixman/0003-ARM-Added-pixman_composite_src_8888_0565_asm_neon-f.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From b17297cf15122e5b38c082c9fe6f1ff708b7efa4 Mon Sep 17 00:00:00 2001
-From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
-Date: Mon, 12 Oct 2009 21:50:37 +0300
-Subject: [PATCH 3/7] ARM: Added pixman_composite_src_8888_0565_asm_neon function
-
----
- pixman/pixman-arm-neon-asm.S | 43 ++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 43 insertions(+), 0 deletions(-)
-
-diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S
-index 843899f..20d2587 100644
---- a/pixman/pixman-arm-neon-asm.S
-+++ b/pixman/pixman-arm-neon-asm.S
-@@ -307,3 +307,46 @@ generate_composite_function \
- 4, /* dst_r_basereg */ \
- 0, /* src_basereg */ \
- 24 /* mask_basereg */
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_src_8888_0565_process_pixblock_head
-+ vshll.u8 q8, d1, #8
-+ vshll.u8 q14, d2, #8
-+ vshll.u8 q9, d0, #8
-+.endm
-+
-+.macro pixman_composite_src_8888_0565_process_pixblock_tail
-+ vsri.u16 q14, q8, #5
-+ vsri.u16 q14, q9, #11
-+.endm
-+
-+.macro pixman_composite_src_8888_0565_process_pixblock_tail_head
-+ vsri.u16 q14, q8, #5
-+ add PF_X, PF_X, #8
-+ tst PF_CTL, #0xF
-+ vld4.8 {d0, d1, d2, d3}, [SRC]!
-+ addne PF_X, PF_X, #8
-+ subne PF_CTL, PF_CTL, #1
-+ vsri.u16 q14, q9, #11
-+ cmp PF_X, ORIG_W
-+ pld [PF_SRC, PF_X, lsl #src_bpp_shift]
-+ vshll.u8 q8, d1, #8
-+ vst1.16 {d28, d29}, [DST_W, :128]!
-+ subge PF_X, PF_X, ORIG_W
-+ subges PF_CTL, PF_CTL, #0x10
-+ vshll.u8 q14, d2, #8
-+ ldrgeb DUMMY, [PF_SRC, SRC_STRIDE, lsl #src_bpp_shift]!
-+ vshll.u8 q9, d0, #8
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_src_8888_0565_asm_neon, 32, 0, 16, \
-+ FLAG_DST_WRITEONLY | FLAG_DEINTERLEAVE_32BPP, \
-+ 8, /* number of pixels, processed in a single block */ \
-+ 10, /* prefetch distance */ \
-+ default_init, \
-+ default_cleanup, \
-+ pixman_composite_src_8888_0565_process_pixblock_head, \
-+ pixman_composite_src_8888_0565_process_pixblock_tail, \
-+ pixman_composite_src_8888_0565_process_pixblock_tail_head
---
-1.6.2.4
-
diff --git a/recipes/xorg-lib/pixman/0003-Generic-C-implementation-of-pixman_blt-with-overlapp.patch b/recipes/xorg-lib/pixman/0003-Generic-C-implementation-of-pixman_blt-with-overlapp.patch
new file mode 100644
index 0000000000..25ce7ee3b8
--- /dev/null
+++ b/recipes/xorg-lib/pixman/0003-Generic-C-implementation-of-pixman_blt-with-overlapp.patch
@@ -0,0 +1,114 @@
+From c29c9fa826b7112156fd6150b5f1564227935c05 Mon Sep 17 00:00:00 2001
+From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
+Date: Thu, 22 Oct 2009 05:27:33 +0300
+Subject: [PATCH 3/6] Generic C implementation of pixman_blt with overlapping support
+
+Uses memcpy/memmove functions to copy pixels, can handle the
+case when both source and destination areas are in the same
+image (this is useful for scrolling).
+
+It is assumed that copying direction is only important when
+using the same image for both source and destination (and
+src_stride == dst_stride). Copying direction is undefined
+for the images with different source and destination stride
+which happen to be in the overlapped areas (but this is an
+unrealistic case anyway).
+---
+ pixman/pixman-general.c | 21 ++++++++++++++++++---
+ pixman/pixman-private.h | 43 +++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 61 insertions(+), 3 deletions(-)
+
+diff --git a/pixman/pixman-general.c b/pixman/pixman-general.c
+index c96a3f9..d71a299 100644
+--- a/pixman/pixman-general.c
++++ b/pixman/pixman-general.c
+@@ -300,9 +300,24 @@ general_blt (pixman_implementation_t *imp,
+ int width,
+ int height)
+ {
+- /* We can't blit unless we have sse2 or mmx */
+-
+- return FALSE;
++ uint8_t *dst_bytes = (uint8_t *)dst_bits;
++ uint8_t *src_bytes = (uint8_t *)src_bits;
++ int bpp;
++
++ if (src_bpp != dst_bpp || src_bpp & 7)
++ return FALSE;
++
++ bpp = src_bpp >> 3;
++ width *= bpp;
++ src_stride *= 4;
++ dst_stride *= 4;
++ pixman_blt_helper (src_bytes + src_y * src_stride + src_x * bpp,
++ dst_bytes + dst_y * dst_stride + dst_x * bpp,
++ src_stride,
++ dst_stride,
++ width,
++ height);
++ return TRUE;
+ }
+
+ static pixman_bool_t
+diff --git a/pixman/pixman-private.h b/pixman/pixman-private.h
+index 5000f91..8c5d4fd 100644
+--- a/pixman/pixman-private.h
++++ b/pixman/pixman-private.h
+@@ -10,6 +10,7 @@
+
+ #include "pixman.h"
+ #include <time.h>
++#include <string.h>
+ #include <assert.h>
+
+ #include "pixman-compiler.h"
+@@ -794,4 +795,46 @@ void pixman_timer_register (pixman_timer_t *timer);
+
+ #endif /* PIXMAN_TIMERS */
+
++/* a helper function, can blit 8-bit images with src/dst overlapping support */
++static inline void
++pixman_blt_helper (uint8_t *src_bytes,
++ uint8_t *dst_bytes,
++ int src_stride,
++ int dst_stride,
++ int width,
++ int height)
++{
++ /*
++ * The second part of this check is not strictly needed, but it prevents
++ * unnecessary upside-down processing of areas which belong to different
++ * images. Upside-down processing can be slower with fixed-distance-ahead
++ * prefetch and perceived as having more tearing.
++ */
++ if (src_bytes < dst_bytes + width &&
++ src_bytes + src_stride * height > dst_bytes)
++ {
++ src_bytes += src_stride * height - src_stride;
++ dst_bytes += dst_stride * height - dst_stride;
++ dst_stride = -dst_stride;
++ src_stride = -src_stride;
++ /* Horizontal scrolling to the left needs memmove */
++ if (src_bytes + width > dst_bytes)
++ {
++ while (--height >= 0)
++ {
++ memmove (dst_bytes, src_bytes, width);
++ dst_bytes += dst_stride;
++ src_bytes += src_stride;
++ }
++ return;
++ }
++ }
++ while (--height >= 0)
++ {
++ memcpy (dst_bytes, src_bytes, width);
++ dst_bytes += dst_stride;
++ src_bytes += src_stride;
++ }
++}
++
+ #endif /* PIXMAN_PRIVATE_H */
+--
+1.6.2.4
+
diff --git a/recipes/xorg-lib/pixman/0004-ARM-Added-pixman_composite_add_8000_8000_asm_neon-f.patch b/recipes/xorg-lib/pixman/0004-ARM-Added-pixman_composite_add_8000_8000_asm_neon-f.patch
deleted file mode 100644
index 445697a84f..0000000000
--- a/recipes/xorg-lib/pixman/0004-ARM-Added-pixman_composite_add_8000_8000_asm_neon-f.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 9cfedd684bdeabe9e97303e6f432c3ffb440426c Mon Sep 17 00:00:00 2001
-From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
-Date: Mon, 12 Oct 2009 21:51:54 +0300
-Subject: [PATCH 4/7] ARM: Added pixman_composite_add_8000_8000_asm_neon function
-
----
- pixman/pixman-arm-neon-asm.S | 40 ++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 40 insertions(+), 0 deletions(-)
-
-diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S
-index 20d2587..373cbd0 100644
---- a/pixman/pixman-arm-neon-asm.S
-+++ b/pixman/pixman-arm-neon-asm.S
-@@ -350,3 +350,43 @@ generate_composite_function \
- pixman_composite_src_8888_0565_process_pixblock_head, \
- pixman_composite_src_8888_0565_process_pixblock_tail, \
- pixman_composite_src_8888_0565_process_pixblock_tail_head
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_add_8000_8000_process_pixblock_head
-+ vqadd.u8 q14, q0, q2
-+ vqadd.u8 q15, q1, q3
-+.endm
-+
-+.macro pixman_composite_add_8000_8000_process_pixblock_tail
-+.endm
-+
-+.macro pixman_composite_add_8000_8000_process_pixblock_tail_head
-+ vld1.8 {d0, d1, d2, d3}, [SRC]!
-+ add PF_X, PF_X, #32
-+ tst PF_CTL, #0xF
-+ vld1.8 {d4, d5, d6, d7}, [DST_R, :128]!
-+ addne PF_X, PF_X, #32
-+ subne PF_CTL, PF_CTL, #1
-+ vst1.8 {d28, d29, d30, d31}, [DST_W, :128]!
-+ cmp PF_X, ORIG_W
-+ pld [PF_SRC, PF_X, lsl #src_bpp_shift]
-+ pld [PF_DST, PF_X, lsl #dst_bpp_shift]
-+ subge PF_X, PF_X, ORIG_W
-+ subges PF_CTL, PF_CTL, #0x10
-+ vqadd.u8 q14, q0, q2
-+ ldrgeb DUMMY, [PF_SRC, SRC_STRIDE, lsl #src_bpp_shift]!
-+ ldrgeb DUMMY, [PF_DST, DST_STRIDE, lsl #dst_bpp_shift]!
-+ vqadd.u8 q15, q1, q3
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_add_8000_8000_asm_neon, 8, 0, 8, \
-+ FLAG_DST_READWRITE, \
-+ 32, /* number of pixels, processed in a single block */ \
-+ 10, /* prefetch distance */ \
-+ default_init, \
-+ default_cleanup, \
-+ pixman_composite_add_8000_8000_process_pixblock_head, \
-+ pixman_composite_add_8000_8000_process_pixblock_tail, \
-+ pixman_composite_add_8000_8000_process_pixblock_tail_head
---
-1.6.2.4
-
diff --git a/recipes/xorg-lib/pixman/0004-Support-of-overlapping-src-dst-for-pixman_blt_mmx.patch b/recipes/xorg-lib/pixman/0004-Support-of-overlapping-src-dst-for-pixman_blt_mmx.patch
new file mode 100644
index 0000000000..74c7b45bc4
--- /dev/null
+++ b/recipes/xorg-lib/pixman/0004-Support-of-overlapping-src-dst-for-pixman_blt_mmx.patch
@@ -0,0 +1,91 @@
+From 7ca32542c957ff308a6ca7e3715e6552a65ae395 Mon Sep 17 00:00:00 2001
+From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
+Date: Thu, 22 Oct 2009 05:45:47 +0300
+Subject: [PATCH 4/6] Support of overlapping src/dst for pixman_blt_mmx
+
+---
+ pixman/pixman-mmx.c | 55 +++++++++++++++++++++++++++++---------------------
+ 1 files changed, 32 insertions(+), 23 deletions(-)
+
+diff --git a/pixman/pixman-mmx.c b/pixman/pixman-mmx.c
+index 819e3a0..dcccadb 100644
+--- a/pixman/pixman-mmx.c
++++ b/pixman/pixman-mmx.c
+@@ -3002,34 +3002,43 @@ pixman_blt_mmx (uint32_t *src_bits,
+ {
+ uint8_t * src_bytes;
+ uint8_t * dst_bytes;
+- int byte_width;
++ int bpp;
+
+- if (src_bpp != dst_bpp)
++ if (src_bpp != dst_bpp || src_bpp & 7)
+ return FALSE;
+
+- if (src_bpp == 16)
+- {
+- src_stride = src_stride * (int) sizeof (uint32_t) / 2;
+- dst_stride = dst_stride * (int) sizeof (uint32_t) / 2;
+- src_bytes = (uint8_t *)(((uint16_t *)src_bits) + src_stride * (src_y) + (src_x));
+- dst_bytes = (uint8_t *)(((uint16_t *)dst_bits) + dst_stride * (dst_y) + (dst_x));
+- byte_width = 2 * width;
+- src_stride *= 2;
+- dst_stride *= 2;
+- }
+- else if (src_bpp == 32)
++ bpp = src_bpp >> 3;
++ width *= bpp;
++ src_stride *= 4;
++ dst_stride *= 4;
++ src_bytes = (uint8_t *)src_bits + src_y * src_stride + src_x * bpp;
++ dst_bytes = (uint8_t *)dst_bits + dst_y * dst_stride + dst_x * bpp;
++
++ if (src_bpp != 16 && src_bpp != 32)
+ {
+- src_stride = src_stride * (int) sizeof (uint32_t) / 4;
+- dst_stride = dst_stride * (int) sizeof (uint32_t) / 4;
+- src_bytes = (uint8_t *)(((uint32_t *)src_bits) + src_stride * (src_y) + (src_x));
+- dst_bytes = (uint8_t *)(((uint32_t *)dst_bits) + dst_stride * (dst_y) + (dst_x));
+- byte_width = 4 * width;
+- src_stride *= 4;
+- dst_stride *= 4;
++ pixman_blt_helper (src_bytes, dst_bytes, src_stride, dst_stride,
++ width, height);
++ return TRUE;
+ }
+- else
++
++ if (src_bytes < dst_bytes && src_bytes + src_stride * height > dst_bytes)
+ {
+- return FALSE;
++ src_bytes += src_stride * height - src_stride;
++ dst_bytes += dst_stride * height - dst_stride;
++ dst_stride = -dst_stride;
++ src_stride = -src_stride;
++
++ if (src_bytes + width > dst_bytes)
++ {
++ /* TODO: reverse scanline copy using MMX */
++ while (--height >= 0)
++ {
++ memmove (dst_bytes, src_bytes, width);
++ dst_bytes += dst_stride;
++ src_bytes += src_stride;
++ }
++ return TRUE;
++ }
+ }
+
+ while (height--)
+@@ -3039,7 +3048,7 @@ pixman_blt_mmx (uint32_t *src_bits,
+ uint8_t *d = dst_bytes;
+ src_bytes += src_stride;
+ dst_bytes += dst_stride;
+- w = byte_width;
++ w = width;
+
+ while (w >= 2 && ((unsigned long)d & 3))
+ {
+--
+1.6.2.4
+
diff --git a/recipes/xorg-lib/pixman/0005-ARM-Added-pixman_composite_over_8888_8888_asm_neon.patch b/recipes/xorg-lib/pixman/0005-ARM-Added-pixman_composite_over_8888_8888_asm_neon.patch
deleted file mode 100644
index e4c8936c84..0000000000
--- a/recipes/xorg-lib/pixman/0005-ARM-Added-pixman_composite_over_8888_8888_asm_neon.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From 9eb4ecf68cf5609240222d10f1a4c9dfebdb3498 Mon Sep 17 00:00:00 2001
-From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
-Date: Mon, 12 Oct 2009 21:52:49 +0300
-Subject: [PATCH 5/7] ARM: Added pixman_composite_over_8888_8888_asm_neon function
-
----
- pixman/pixman-arm-neon-asm.S | 67 ++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 67 insertions(+), 0 deletions(-)
-
-diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S
-index 373cbd0..b11a9a7 100644
---- a/pixman/pixman-arm-neon-asm.S
-+++ b/pixman/pixman-arm-neon-asm.S
-@@ -390,3 +390,70 @@ generate_composite_function \
- pixman_composite_add_8000_8000_process_pixblock_head, \
- pixman_composite_add_8000_8000_process_pixblock_tail, \
- pixman_composite_add_8000_8000_process_pixblock_tail_head
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_over_8888_8888_process_pixblock_head
-+ vmvn.8 d24, d3 /* get inverted alpha */
-+ /* do alpha blending */
-+ vmull.u8 q8, d24, d4
-+ vmull.u8 q9, d24, d5
-+ vmull.u8 q10, d24, d6
-+ vmull.u8 q11, d24, d7
-+.endm
-+
-+.macro pixman_composite_over_8888_8888_process_pixblock_tail
-+ vrshr.u16 q14, q8, #8
-+ vrshr.u16 q15, q9, #8
-+ vrshr.u16 q12, q10, #8
-+ vrshr.u16 q13, q11, #8
-+ vraddhn.u16 d28, q14, q8
-+ vraddhn.u16 d29, q15, q9
-+ vraddhn.u16 d30, q12, q10
-+ vraddhn.u16 d31, q13, q11
-+ vqadd.u8 q14, q0, q14
-+ vqadd.u8 q15, q1, q15
-+.endm
-+
-+.macro pixman_composite_over_8888_8888_process_pixblock_tail_head
-+ vld4.8 {d4, d5, d6, d7}, [DST_R, :128]!
-+ vrshr.u16 q14, q8, #8
-+ add PF_X, PF_X, #8
-+ tst PF_CTL, #0xF
-+ vrshr.u16 q15, q9, #8
-+ vrshr.u16 q12, q10, #8
-+ vrshr.u16 q13, q11, #8
-+ addne PF_X, PF_X, #8
-+ subne PF_CTL, PF_CTL, #1
-+ vraddhn.u16 d28, q14, q8
-+ vraddhn.u16 d29, q15, q9
-+ cmp PF_X, ORIG_W
-+ vraddhn.u16 d30, q12, q10
-+ vraddhn.u16 d31, q13, q11
-+ vqadd.u8 q14, q0, q14
-+ vqadd.u8 q15, q1, q15
-+ vld4.8 {d0, d1, d2, d3}, [SRC]!
-+ pld [PF_SRC, PF_X, lsl #src_bpp_shift]
-+ vmvn.8 d22, d3
-+ pld [PF_DST, PF_X, lsl #dst_bpp_shift]
-+ vst4.8 {d28, d29, d30, d31}, [DST_W, :128]!
-+ subge PF_X, PF_X, ORIG_W
-+ vmull.u8 q8, d22, d4
-+ subges PF_CTL, PF_CTL, #0x10
-+ vmull.u8 q9, d22, d5
-+ ldrgeb DUMMY, [PF_SRC, SRC_STRIDE, lsl #src_bpp_shift]!
-+ vmull.u8 q10, d22, d6
-+ ldrgeb DUMMY, [PF_DST, DST_STRIDE, lsl #dst_bpp_shift]!
-+ vmull.u8 q11, d22, d7
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_over_8888_8888_asm_neon, 32, 0, 32, \
-+ FLAG_DST_READWRITE | FLAG_DEINTERLEAVE_32BPP, \
-+ 8, /* number of pixels, processed in a single block */ \
-+ 5, /* prefetch distance */ \
-+ default_init, \
-+ default_cleanup, \
-+ pixman_composite_over_8888_8888_process_pixblock_head, \
-+ pixman_composite_over_8888_8888_process_pixblock_tail, \
-+ pixman_composite_over_8888_8888_process_pixblock_tail_head
---
-1.6.2.4
-
diff --git a/recipes/xorg-lib/pixman/0005-Support-of-overlapping-src-dst-for-pixman_blt_sse2.patch b/recipes/xorg-lib/pixman/0005-Support-of-overlapping-src-dst-for-pixman_blt_sse2.patch
new file mode 100644
index 0000000000..3704fbf1cf
--- /dev/null
+++ b/recipes/xorg-lib/pixman/0005-Support-of-overlapping-src-dst-for-pixman_blt_sse2.patch
@@ -0,0 +1,91 @@
+From edc80b41c6480b7c80ec5f7c835c92b2debb3774 Mon Sep 17 00:00:00 2001
+From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
+Date: Thu, 22 Oct 2009 05:45:54 +0300
+Subject: [PATCH 5/6] Support of overlapping src/dst for pixman_blt_sse2
+
+---
+ pixman/pixman-sse2.c | 55 +++++++++++++++++++++++++++++--------------------
+ 1 files changed, 32 insertions(+), 23 deletions(-)
+
+diff --git a/pixman/pixman-sse2.c b/pixman/pixman-sse2.c
+index 78b0ad1..b84636b 100644
+--- a/pixman/pixman-sse2.c
++++ b/pixman/pixman-sse2.c
+@@ -5300,34 +5300,43 @@ pixman_blt_sse2 (uint32_t *src_bits,
+ {
+ uint8_t * src_bytes;
+ uint8_t * dst_bytes;
+- int byte_width;
++ int bpp;
+
+- if (src_bpp != dst_bpp)
++ if (src_bpp != dst_bpp || src_bpp & 7)
+ return FALSE;
+
+- if (src_bpp == 16)
+- {
+- src_stride = src_stride * (int) sizeof (uint32_t) / 2;
+- dst_stride = dst_stride * (int) sizeof (uint32_t) / 2;
+- src_bytes =(uint8_t *)(((uint16_t *)src_bits) + src_stride * (src_y) + (src_x));
+- dst_bytes = (uint8_t *)(((uint16_t *)dst_bits) + dst_stride * (dst_y) + (dst_x));
+- byte_width = 2 * width;
+- src_stride *= 2;
+- dst_stride *= 2;
+- }
+- else if (src_bpp == 32)
++ bpp = src_bpp >> 3;
++ width *= bpp;
++ src_stride *= 4;
++ dst_stride *= 4;
++ src_bytes = (uint8_t *)src_bits + src_y * src_stride + src_x * bpp;
++ dst_bytes = (uint8_t *)dst_bits + dst_y * dst_stride + dst_x * bpp;
++
++ if (src_bpp != 16 && src_bpp != 32)
+ {
+- src_stride = src_stride * (int) sizeof (uint32_t) / 4;
+- dst_stride = dst_stride * (int) sizeof (uint32_t) / 4;
+- src_bytes = (uint8_t *)(((uint32_t *)src_bits) + src_stride * (src_y) + (src_x));
+- dst_bytes = (uint8_t *)(((uint32_t *)dst_bits) + dst_stride * (dst_y) + (dst_x));
+- byte_width = 4 * width;
+- src_stride *= 4;
+- dst_stride *= 4;
++ pixman_blt_helper (src_bytes, dst_bytes, src_stride, dst_stride,
++ width, height);
++ return TRUE;
+ }
+- else
++
++ if (src_bytes < dst_bytes && src_bytes + src_stride * height > dst_bytes)
+ {
+- return FALSE;
++ src_bytes += src_stride * height - src_stride;
++ dst_bytes += dst_stride * height - dst_stride;
++ dst_stride = -dst_stride;
++ src_stride = -src_stride;
++
++ if (src_bytes + width > dst_bytes)
++ {
++ /* TODO: reverse scanline copy using SSE2 */
++ while (--height >= 0)
++ {
++ memmove (dst_bytes, src_bytes, width);
++ dst_bytes += dst_stride;
++ src_bytes += src_stride;
++ }
++ return TRUE;
++ }
+ }
+
+ cache_prefetch ((__m128i*)src_bytes);
+@@ -5340,7 +5349,7 @@ pixman_blt_sse2 (uint32_t *src_bits,
+ uint8_t *d = dst_bytes;
+ src_bytes += src_stride;
+ dst_bytes += dst_stride;
+- w = byte_width;
++ w = width;
+
+ cache_prefetch_next ((__m128i*)s);
+ cache_prefetch_next ((__m128i*)d);
+--
+1.6.2.4
+
diff --git a/recipes/xorg-lib/pixman/0006-ARM-Added-a-set-of-NEON-functions-not-fully-optimi.patch b/recipes/xorg-lib/pixman/0006-ARM-Added-a-set-of-NEON-functions-not-fully-optimi.patch
deleted file mode 100644
index 0f89c88fef..0000000000
--- a/recipes/xorg-lib/pixman/0006-ARM-Added-a-set-of-NEON-functions-not-fully-optimi.patch
+++ /dev/null
@@ -1,540 +0,0 @@
-From 606a73203318e44af4362684368bc24d2aed841d Mon Sep 17 00:00:00 2001
-From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
-Date: Mon, 12 Oct 2009 21:57:17 +0300
-Subject: [PATCH 6/7] ARM: Added a set of NEON functions (not fully optimized)
-
----
- pixman/pixman-arm-neon-asm.S | 520 ++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 520 insertions(+), 0 deletions(-)
-
-diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S
-index b11a9a7..bca499a 100644
---- a/pixman/pixman-arm-neon-asm.S
-+++ b/pixman/pixman-arm-neon-asm.S
-@@ -457,3 +457,523 @@ generate_composite_function \
- pixman_composite_over_8888_8888_process_pixblock_head, \
- pixman_composite_over_8888_8888_process_pixblock_tail, \
- pixman_composite_over_8888_8888_process_pixblock_tail_head
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_over_n_8_0565_process_pixblock_head
-+ /* in */
-+ vmull.u8 q0, d24, d8
-+ vmull.u8 q1, d24, d9
-+ vmull.u8 q6, d24, d10
-+ vmull.u8 q7, d24, d11
-+ vrshr.u16 q10, q0, #8
-+ vrshr.u16 q11, q1, #8
-+ vrshr.u16 q12, q6, #8
-+ vrshr.u16 q13, q7, #8
-+ vraddhn.u16 d0, q0, q10
-+ vraddhn.u16 d1, q1, q11
-+ vraddhn.u16 d2, q6, q12
-+ vraddhn.u16 d3, q7, q13
-+
-+ vshrn.u16 d6, q2, #8
-+ vshrn.u16 d7, q2, #3
-+ vsli.u16 q2, q2, #5
-+ vsri.u8 d6, d6, #5
-+ vmvn.8 d3, d3
-+ vsri.u8 d7, d7, #6
-+ vshrn.u16 d30, q2, #2
-+ /* now do alpha blending */
-+ vmull.u8 q10, d3, d6
-+ vmull.u8 q11, d3, d7
-+ vmull.u8 q12, d3, d30
-+ vrshr.u16 q13, q10, #8
-+ vrshr.u16 q3, q11, #8
-+ vrshr.u16 q15, q12, #8
-+ vraddhn.u16 d20, q10, q13
-+ vraddhn.u16 d23, q11, q3
-+ vraddhn.u16 d22, q12, q15
-+.endm
-+
-+.macro pixman_composite_over_n_8_0565_process_pixblock_tail
-+ vqadd.u8 d16, d2, d20
-+ vqadd.u8 q9, q0, q11
-+ /* convert to r5g6b5 */
-+ vshll.u8 q14, d16, #8
-+ vshll.u8 q8, d19, #8
-+ vshll.u8 q9, d18, #8
-+ vsri.u16 q14, q8, #5
-+ vsri.u16 q14, q9, #11
-+.endm
-+
-+/* TODO: expand macros and do better instructions scheduling */
-+.macro pixman_composite_over_n_8_0565_process_pixblock_tail_head
-+ pixman_composite_over_n_8_0565_process_pixblock_tail
-+ vst1.16 {d28, d29}, [DST_W, :128]!
-+ vld1.16 {d4, d5}, [DST_R, :128]!
-+ vld1.8 {d24}, [MASK]!
-+ cache_preload 8, 8
-+ pixman_composite_over_n_8_0565_process_pixblock_head
-+.endm
-+
-+.macro pixman_composite_over_n_8_0565_init
-+ add DUMMY, sp, #40
-+ vpush {d8-d15}
-+ vld1.32 {d11[0]}, [DUMMY]
-+ vdup.8 d8, d11[0]
-+ vdup.8 d9, d11[1]
-+ vdup.8 d10, d11[2]
-+ vdup.8 d11, d11[3]
-+.endm
-+
-+.macro pixman_composite_over_n_8_0565_cleanup
-+ vpop {d8-d15}
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_over_n_8_0565_asm_neon, 0, 8, 16, \
-+ FLAG_DST_READWRITE, \
-+ 8, /* number of pixels, processed in a single block */ \
-+ 5, /* prefetch distance */ \
-+ pixman_composite_over_n_8_0565_init, \
-+ pixman_composite_over_n_8_0565_cleanup, \
-+ pixman_composite_over_n_8_0565_process_pixblock_head, \
-+ pixman_composite_over_n_8_0565_process_pixblock_tail, \
-+ pixman_composite_over_n_8_0565_process_pixblock_tail_head
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_src_0565_0565_process_pixblock_head
-+.endm
-+
-+.macro pixman_composite_src_0565_0565_process_pixblock_tail
-+.endm
-+
-+.macro pixman_composite_src_0565_0565_process_pixblock_tail_head
-+ vst1.16 {d0, d1, d2, d3}, [DST_W, :128]!
-+ vld1.16 {d0, d1, d2, d3}, [SRC]!
-+ cache_preload 16, 16
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_src_0565_0565_asm_neon, 16, 0, 16, \
-+ FLAG_DST_WRITEONLY, \
-+ 16, /* number of pixels, processed in a single block */ \
-+ 10, /* prefetch distance */ \
-+ default_init, \
-+ default_cleanup, \
-+ pixman_composite_src_0565_0565_process_pixblock_head, \
-+ pixman_composite_src_0565_0565_process_pixblock_tail, \
-+ pixman_composite_src_0565_0565_process_pixblock_tail_head, \
-+ 0, /* dst_w_basereg */ \
-+ 0, /* dst_r_basereg */ \
-+ 0, /* src_basereg */ \
-+ 0 /* mask_basereg */
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_src_n_8_process_pixblock_head
-+.endm
-+
-+.macro pixman_composite_src_n_8_process_pixblock_tail
-+.endm
-+
-+.macro pixman_composite_src_n_8_process_pixblock_tail_head
-+ vst1.8 {d0, d1, d2, d3}, [DST_W, :128]!
-+.endm
-+
-+.macro pixman_composite_src_n_8_init
-+ add DUMMY, sp, #40
-+ vld1.32 {d0[0]}, [DUMMY]
-+ vsli.u64 d0, d0, #8
-+ vsli.u64 d0, d0, #16
-+ vsli.u64 d0, d0, #32
-+ vmov d1, d0
-+ vmov q1, q0
-+.endm
-+
-+.macro pixman_composite_src_n_8_cleanup
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_src_n_8_asm_neon, 0, 0, 8, \
-+ FLAG_DST_WRITEONLY, \
-+ 32, /* number of pixels, processed in a single block */ \
-+ 0, /* prefetch distance */ \
-+ pixman_composite_src_n_8_init, \
-+ pixman_composite_src_n_8_cleanup, \
-+ pixman_composite_src_n_8_process_pixblock_head, \
-+ pixman_composite_src_n_8_process_pixblock_tail, \
-+ pixman_composite_src_n_8_process_pixblock_tail_head, \
-+ 0, /* dst_w_basereg */ \
-+ 0, /* dst_r_basereg */ \
-+ 0, /* src_basereg */ \
-+ 0 /* mask_basereg */
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_src_n_0565_process_pixblock_head
-+.endm
-+
-+.macro pixman_composite_src_n_0565_process_pixblock_tail
-+.endm
-+
-+.macro pixman_composite_src_n_0565_process_pixblock_tail_head
-+ vst1.16 {d0, d1, d2, d3}, [DST_W, :128]!
-+.endm
-+
-+.macro pixman_composite_src_n_0565_init
-+ add DUMMY, sp, #40
-+ vld1.32 {d0[0]}, [DUMMY]
-+ vsli.u64 d0, d0, #16
-+ vsli.u64 d0, d0, #32
-+ vmov d1, d0
-+ vmov q1, q0
-+.endm
-+
-+.macro pixman_composite_src_n_0565_cleanup
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_src_n_0565_asm_neon, 0, 0, 16, \
-+ FLAG_DST_WRITEONLY, \
-+ 16, /* number of pixels, processed in a single block */ \
-+ 0, /* prefetch distance */ \
-+ pixman_composite_src_n_0565_init, \
-+ pixman_composite_src_n_0565_cleanup, \
-+ pixman_composite_src_n_0565_process_pixblock_head, \
-+ pixman_composite_src_n_0565_process_pixblock_tail, \
-+ pixman_composite_src_n_0565_process_pixblock_tail_head, \
-+ 0, /* dst_w_basereg */ \
-+ 0, /* dst_r_basereg */ \
-+ 0, /* src_basereg */ \
-+ 0 /* mask_basereg */
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_src_n_8888_process_pixblock_head
-+.endm
-+
-+.macro pixman_composite_src_n_8888_process_pixblock_tail
-+.endm
-+
-+.macro pixman_composite_src_n_8888_process_pixblock_tail_head
-+ vst1.32 {d0, d1, d2, d3}, [DST_W, :128]!
-+.endm
-+
-+.macro pixman_composite_src_n_8888_init
-+ add DUMMY, sp, #40
-+ vld1.32 {d0[0]}, [DUMMY]
-+ vsli.u64 d0, d0, #32
-+ vmov d1, d0
-+ vmov q1, q0
-+.endm
-+
-+.macro pixman_composite_src_n_8888_cleanup
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_src_n_8888_asm_neon, 0, 0, 32, \
-+ FLAG_DST_WRITEONLY, \
-+ 8, /* number of pixels, processed in a single block */ \
-+ 0, /* prefetch distance */ \
-+ pixman_composite_src_n_8888_init, \
-+ pixman_composite_src_n_8888_cleanup, \
-+ pixman_composite_src_n_8888_process_pixblock_head, \
-+ pixman_composite_src_n_8888_process_pixblock_tail, \
-+ pixman_composite_src_n_8888_process_pixblock_tail_head, \
-+ 0, /* dst_w_basereg */ \
-+ 0, /* dst_r_basereg */ \
-+ 0, /* src_basereg */ \
-+ 0 /* mask_basereg */
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_src_8888_8888_process_pixblock_head
-+.endm
-+
-+.macro pixman_composite_src_8888_8888_process_pixblock_tail
-+.endm
-+
-+.macro pixman_composite_src_8888_8888_process_pixblock_tail_head
-+ vst1.32 {d0, d1, d2, d3}, [DST_W, :128]!
-+ vld1.32 {d0, d1, d2, d3}, [SRC]!
-+ cache_preload 8, 8
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_src_8888_8888_asm_neon, 32, 0, 32, \
-+ FLAG_DST_WRITEONLY, \
-+ 8, /* number of pixels, processed in a single block */ \
-+ 10, /* prefetch distance */ \
-+ default_init, \
-+ default_cleanup, \
-+ pixman_composite_src_8888_8888_process_pixblock_head, \
-+ pixman_composite_src_8888_8888_process_pixblock_tail, \
-+ pixman_composite_src_8888_8888_process_pixblock_tail_head, \
-+ 0, /* dst_w_basereg */ \
-+ 0, /* dst_r_basereg */ \
-+ 0, /* src_basereg */ \
-+ 0 /* mask_basereg */
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_over_n_8_8888_process_pixblock_head
-+ /* expecting deinterleaved source data in {d8, d9, d10, d11} */
-+ /* d8 - blue, d9 - green, d10 - red, d11 - alpha */
-+ /* and destination data in {d4, d5, d6, d7} */
-+ /* mask is in d24 (d25, d26, d27 are unused) */
-+
-+ /* in */
-+ vmull.u8 q0, d24, d8
-+ vmull.u8 q1, d24, d9
-+ vmull.u8 q6, d24, d10
-+ vmull.u8 q7, d24, d11
-+ vrshr.u16 q10, q0, #8
-+ vrshr.u16 q11, q1, #8
-+ vrshr.u16 q12, q6, #8
-+ vrshr.u16 q13, q7, #8
-+ vraddhn.u16 d0, q0, q10
-+ vraddhn.u16 d1, q1, q11
-+ vraddhn.u16 d2, q6, q12
-+ vraddhn.u16 d3, q7, q13
-+ vmvn.8 d24, d3 /* get inverted alpha */
-+ /* source: d0 - blue, d1 - green, d2 - red, d3 - alpha */
-+ /* destination: d4 - blue, d5 - green, d6 - red, d7 - alpha */
-+ /* now do alpha blending */
-+ vmull.u8 q8, d24, d4
-+ vmull.u8 q9, d24, d5
-+ vmull.u8 q10, d24, d6
-+ vmull.u8 q11, d24, d7
-+.endm
-+
-+.macro pixman_composite_over_n_8_8888_process_pixblock_tail
-+ vrshr.u16 q14, q8, #8
-+ vrshr.u16 q15, q9, #8
-+ vrshr.u16 q12, q10, #8
-+ vrshr.u16 q13, q11, #8
-+ vraddhn.u16 d28, q14, q8
-+ vraddhn.u16 d29, q15, q9
-+ vraddhn.u16 d30, q12, q10
-+ vraddhn.u16 d31, q13, q11
-+ vqadd.u8 q14, q0, q14
-+ vqadd.u8 q15, q1, q15
-+.endm
-+
-+/* TODO: expand macros and do better instructions scheduling */
-+.macro pixman_composite_over_n_8_8888_process_pixblock_tail_head
-+ pixman_composite_over_n_8_8888_process_pixblock_tail
-+ vst4.8 {d28, d29, d30, d31}, [DST_W, :128]!
-+ vld4.8 {d4, d5, d6, d7}, [DST_R, :128]!
-+ vld1.8 {d24}, [MASK]!
-+ cache_preload 8, 8
-+ pixman_composite_over_n_8_8888_process_pixblock_head
-+.endm
-+
-+.macro pixman_composite_over_n_8_8888_init
-+ add DUMMY, sp, #40
-+ vpush {d8-d15}
-+ vld1.32 {d11[0]}, [DUMMY]
-+ vdup.8 d8, d11[0]
-+ vdup.8 d9, d11[1]
-+ vdup.8 d10, d11[2]
-+ vdup.8 d11, d11[3]
-+.endm
-+
-+.macro pixman_composite_over_n_8_8888_cleanup
-+ vpop {d8-d15}
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_over_n_8_8888_asm_neon, 0, 8, 32, \
-+ FLAG_DST_READWRITE | FLAG_DEINTERLEAVE_32BPP, \
-+ 8, /* number of pixels, processed in a single block */ \
-+ 5, /* prefetch distance */ \
-+ pixman_composite_over_n_8_8888_init, \
-+ pixman_composite_over_n_8_8888_cleanup, \
-+ pixman_composite_over_n_8_8888_process_pixblock_head, \
-+ pixman_composite_over_n_8_8888_process_pixblock_tail, \
-+ pixman_composite_over_n_8_8888_process_pixblock_tail_head
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_add_n_8_8_process_pixblock_head
-+ /* expecting source data in {d8, d9, d10, d11} */
-+ /* d8 - blue, d9 - green, d10 - red, d11 - alpha */
-+ /* and destination data in {d4, d5, d6, d7} */
-+ /* mask is in d24, d25, d26, d27 */
-+ vmull.u8 q0, d24, d11
-+ vmull.u8 q1, d25, d11
-+ vmull.u8 q6, d26, d11
-+ vmull.u8 q7, d27, d11
-+ vrshr.u16 q10, q0, #8
-+ vrshr.u16 q11, q1, #8
-+ vrshr.u16 q12, q6, #8
-+ vrshr.u16 q13, q7, #8
-+ vraddhn.u16 d0, q0, q10
-+ vraddhn.u16 d1, q1, q11
-+ vraddhn.u16 d2, q6, q12
-+ vraddhn.u16 d3, q7, q13
-+ vqadd.u8 q14, q0, q2
-+ vqadd.u8 q15, q1, q3
-+.endm
-+
-+.macro pixman_composite_add_n_8_8_process_pixblock_tail
-+.endm
-+
-+/* TODO: expand macros and do better instructions scheduling */
-+.macro pixman_composite_add_n_8_8_process_pixblock_tail_head
-+ pixman_composite_add_n_8_8_process_pixblock_tail
-+ vst1.8 {d28, d29, d30, d31}, [DST_W, :128]!
-+ vld1.8 {d4, d5, d6, d7}, [DST_R, :128]!
-+ vld1.8 {d24, d25, d26, d27}, [MASK]!
-+ cache_preload 32, 32
-+ pixman_composite_add_n_8_8_process_pixblock_head
-+.endm
-+
-+.macro pixman_composite_add_n_8_8_init
-+ add DUMMY, sp, #40
-+ vpush {d8-d15}
-+ vld1.32 {d11[0]}, [DUMMY]
-+ vdup.8 d11, d11[3]
-+.endm
-+
-+.macro pixman_composite_add_n_8_8_cleanup
-+ vpop {d8-d15}
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_add_n_8_8_asm_neon, 0, 8, 8, \
-+ FLAG_DST_READWRITE, \
-+ 32, /* number of pixels, processed in a single block */ \
-+ 5, /* prefetch distance */ \
-+ pixman_composite_add_n_8_8_init, \
-+ pixman_composite_add_n_8_8_cleanup, \
-+ pixman_composite_add_n_8_8_process_pixblock_head, \
-+ pixman_composite_add_n_8_8_process_pixblock_tail, \
-+ pixman_composite_add_n_8_8_process_pixblock_tail_head
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_add_8_8_8_process_pixblock_head
-+ /* expecting source data in {d0, d1, d2, d3} */
-+ /* destination data in {d4, d5, d6, d7} */
-+ /* mask in {d24, d25, d26, d27} */
-+ vmull.u8 q8, d24, d0
-+ vmull.u8 q9, d25, d1
-+ vmull.u8 q10, d26, d2
-+ vmull.u8 q11, d27, d3
-+ vrshr.u16 q0, q8, #8
-+ vrshr.u16 q1, q9, #8
-+ vrshr.u16 q12, q10, #8
-+ vrshr.u16 q13, q11, #8
-+ vraddhn.u16 d0, q0, q8
-+ vraddhn.u16 d1, q1, q9
-+ vraddhn.u16 d2, q12, q10
-+ vraddhn.u16 d3, q13, q11
-+ vqadd.u8 q14, q0, q2
-+ vqadd.u8 q15, q1, q3
-+.endm
-+
-+.macro pixman_composite_add_8_8_8_process_pixblock_tail
-+.endm
-+
-+/* TODO: expand macros and do better instructions scheduling */
-+.macro pixman_composite_add_8_8_8_process_pixblock_tail_head
-+ pixman_composite_add_8_8_8_process_pixblock_tail
-+ vst1.8 {d28, d29, d30, d31}, [DST_W, :128]!
-+ vld1.8 {d4, d5, d6, d7}, [DST_R, :128]!
-+ vld1.8 {d24, d25, d26, d27}, [MASK]!
-+ vld1.8 {d0, d1, d2, d3}, [SRC]!
-+ cache_preload 32, 32
-+ pixman_composite_add_8_8_8_process_pixblock_head
-+.endm
-+
-+.macro pixman_composite_add_8_8_8_init
-+.endm
-+
-+.macro pixman_composite_add_8_8_8_cleanup
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_add_8_8_8_asm_neon, 8, 8, 8, \
-+ FLAG_DST_READWRITE, \
-+ 32, /* number of pixels, processed in a single block */ \
-+ 5, /* prefetch distance */ \
-+ pixman_composite_add_8_8_8_init, \
-+ pixman_composite_add_8_8_8_cleanup, \
-+ pixman_composite_add_8_8_8_process_pixblock_head, \
-+ pixman_composite_add_8_8_8_process_pixblock_tail, \
-+ pixman_composite_add_8_8_8_process_pixblock_tail_head
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_over_8888_n_8888_process_pixblock_head
-+ /* expecting source data in {d0, d1, d2, d3} */
-+ /* destination data in {d4, d5, d6, d7} */
-+ /* solid mask is in d15 */
-+
-+ /* 'in' */
-+ vmull.u8 q8, d15, d3
-+ vmull.u8 q6, d15, d2
-+ vmull.u8 q5, d15, d1
-+ vmull.u8 q4, d15, d0
-+ vrshr.u16 q13, q8, #8
-+ vrshr.u16 q12, q6, #8
-+ vrshr.u16 q11, q5, #8
-+ vrshr.u16 q10, q4, #8
-+ vraddhn.u16 d3, q8, q13
-+ vraddhn.u16 d2, q6, q12
-+ vraddhn.u16 d1, q5, q11
-+ vraddhn.u16 d0, q4, q10
-+ vmvn.8 d24, d3 /* get inverted alpha */
-+ /* now do alpha blending */
-+ vmull.u8 q8, d24, d4
-+ vmull.u8 q9, d24, d5
-+ vmull.u8 q10, d24, d6
-+ vmull.u8 q11, d24, d7
-+.endm
-+
-+.macro pixman_composite_over_8888_n_8888_process_pixblock_tail
-+ vrshr.u16 q14, q8, #8
-+ vrshr.u16 q15, q9, #8
-+ vrshr.u16 q12, q10, #8
-+ vrshr.u16 q13, q11, #8
-+ vraddhn.u16 d28, q14, q8
-+ vraddhn.u16 d29, q15, q9
-+ vraddhn.u16 d30, q12, q10
-+ vraddhn.u16 d31, q13, q11
-+ vqadd.u8 q14, q0, q14
-+ vqadd.u8 q15, q1, q15
-+.endm
-+
-+/* TODO: expand macros and do better instructions scheduling */
-+.macro pixman_composite_over_8888_n_8888_process_pixblock_tail_head
-+ vld4.8 {d4, d5, d6, d7}, [DST_R, :128]!
-+ pixman_composite_over_8888_n_8888_process_pixblock_tail
-+ vld4.8 {d0, d1, d2, d3}, [SRC]!
-+ cache_preload 8, 8
-+ pixman_composite_over_8888_n_8888_process_pixblock_head
-+ vst4.8 {d28, d29, d30, d31}, [DST_W, :128]!
-+.endm
-+
-+.macro pixman_composite_over_8888_n_8888_init
-+ add DUMMY, sp, #48
-+ vpush {d8-d15}
-+ vld1.32 {d15[0]}, [DUMMY]
-+ vdup.8 d15, d15[3]
-+.endm
-+
-+.macro pixman_composite_over_8888_n_8888_cleanup
-+ vpop {d8-d15}
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_over_8888_n_8888_asm_neon, 32, 0, 32, \
-+ FLAG_DST_READWRITE | FLAG_DEINTERLEAVE_32BPP, \
-+ 8, /* number of pixels, processed in a single block */ \
-+ 5, /* prefetch distance */ \
-+ pixman_composite_over_8888_n_8888_init, \
-+ pixman_composite_over_8888_n_8888_cleanup, \
-+ pixman_composite_over_8888_n_8888_process_pixblock_head, \
-+ pixman_composite_over_8888_n_8888_process_pixblock_tail, \
-+ pixman_composite_over_8888_n_8888_process_pixblock_tail_head
---
-1.6.2.4
-
diff --git a/recipes/xorg-lib/pixman/0006-Support-of-overlapping-src-dst-for-pixman_blt_neon.patch b/recipes/xorg-lib/pixman/0006-Support-of-overlapping-src-dst-for-pixman_blt_neon.patch
new file mode 100644
index 0000000000..af75716bb8
--- /dev/null
+++ b/recipes/xorg-lib/pixman/0006-Support-of-overlapping-src-dst-for-pixman_blt_neon.patch
@@ -0,0 +1,93 @@
+From 86870ff530b5e435034bd80207e5758466d96cff Mon Sep 17 00:00:00 2001
+From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
+Date: Wed, 18 Nov 2009 06:08:48 +0200
+Subject: [PATCH 6/6] Support of overlapping src/dst for pixman_blt_neon
+
+---
+ pixman/pixman-arm-neon.c | 63 ++++++++++++++++++++++++++++++++++++++-------
+ 1 files changed, 53 insertions(+), 10 deletions(-)
+
+diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
+index 495fda4..c632ff5 100644
+--- a/pixman/pixman-arm-neon.c
++++ b/pixman/pixman-arm-neon.c
+@@ -306,23 +306,66 @@ pixman_blt_neon (uint32_t *src_bits,
+ int width,
+ int height)
+ {
++ uint8_t * src_bytes;
++ uint8_t * dst_bytes;
++ int bpp;
++
++ if (src_bpp != dst_bpp || src_bpp & 7)
++ return FALSE;
++
++ bpp = src_bpp >> 3;
++ width *= bpp;
++ src_stride *= 4;
++ dst_stride *= 4;
++ src_bytes = (uint8_t *)src_bits + src_y * src_stride + src_x * bpp;
++ dst_bytes = (uint8_t *)dst_bits + dst_y * dst_stride + dst_x * bpp;
++
++ if (src_bpp != 16 && src_bpp != 32)
++ {
++ pixman_blt_helper (src_bytes, dst_bytes, src_stride, dst_stride,
++ width, height);
++ return TRUE;
++ }
++
++ if (src_bytes < dst_bytes && src_bytes + src_stride * height > dst_bytes)
++ {
++ src_bytes += src_stride * height - src_stride;
++ dst_bytes += dst_stride * height - dst_stride;
++ dst_stride = -dst_stride;
++ src_stride = -src_stride;
++
++ if (src_bytes + width > dst_bytes)
++ {
++ /* TODO: reverse scanline copy using NEON */
++ while (--height >= 0)
++ {
++ memmove (dst_bytes, src_bytes, width);
++ dst_bytes += dst_stride;
++ src_bytes += src_stride;
++ }
++ return TRUE;
++ }
++ }
++
+ switch (src_bpp)
+ {
+ case 16:
+ pixman_composite_src_0565_0565_asm_neon (
+- width, height,
+- (uint16_t *)(((char *) dst_bits) +
+- dst_y * dst_stride * 4 + dst_x * 2), dst_stride * 2,
+- (uint16_t *)(((char *) src_bits) +
+- src_y * src_stride * 4 + src_x * 2), src_stride * 2);
++ width >> 1,
++ height,
++ (uint16_t *) dst_bytes,
++ dst_stride >> 1,
++ (uint16_t *) src_bytes,
++ src_stride >> 1);
+ return TRUE;
+ case 32:
+ pixman_composite_src_8888_8888_asm_neon (
+- width, height,
+- (uint32_t *)(((char *) dst_bits) +
+- dst_y * dst_stride * 4 + dst_x * 4), dst_stride,
+- (uint32_t *)(((char *) src_bits) +
+- src_y * src_stride * 4 + src_x * 4), src_stride);
++ width >> 2,
++ height,
++ (uint32_t *) dst_bytes,
++ dst_stride >> 2,
++ (uint32_t *) src_bytes,
++ src_stride >> 2);
+ return TRUE;
+ default:
+ return FALSE;
+--
+1.6.2.4
+
diff --git a/recipes/xorg-lib/pixman/0007-ARM-Enabled-new-NEON-optimizations.patch b/recipes/xorg-lib/pixman/0007-ARM-Enabled-new-NEON-optimizations.patch
deleted file mode 100644
index c14bac153c..0000000000
--- a/recipes/xorg-lib/pixman/0007-ARM-Enabled-new-NEON-optimizations.patch
+++ /dev/null
@@ -1,592 +0,0 @@
-From 98d458dea913d7d76c48c48de9ef3aee85cced3a Mon Sep 17 00:00:00 2001
-From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
-Date: Mon, 12 Oct 2009 22:25:38 +0300
-Subject: [PATCH 7/7] ARM: Enabled new NEON optimizations
-
----
- pixman/pixman-arm-neon.c | 535 ++++++++++++++++++++++++++++++++++++++++++++--
- 1 files changed, 520 insertions(+), 15 deletions(-)
-
-diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
-index fe57daa..2811099 100644
---- a/pixman/pixman-arm-neon.c
-+++ b/pixman/pixman-arm-neon.c
-@@ -34,6 +34,18 @@
- #include <string.h>
- #include "pixman-private.h"
-
-+/*
-+ * Use GNU assembler optimizations only if we are completely sure that
-+ * the target system has compatible ABI and calling conventions. This
-+ * check can be updated/extended if more systems turn out to be actually
-+ * compatible.
-+ */
-+#if defined(__linux__) && defined(__ARM_EABI__) && defined(USE_GCC_INLINE_ASM)
-+#define USE_GNU_ASSEMBLER_ARM_NEON
-+#endif
-+
-+#ifndef USE_GNU_ASSEMBLER_ARM_NEON
-+
- /* Deal with an intrinsic that is defined differently in GCC */
- #if !defined(__ARMCC_VERSION) && !defined(__pld)
- #define __pld(_x) __builtin_prefetch (_x)
-@@ -1901,17 +1913,7 @@ pixman_fill_neon (uint32_t *bits,
- #endif
- }
-
--/*
-- * Use GNU assembler optimizations only if we are completely sure that
-- * the target system has compatible ABI and calling conventions. This
-- * check can be updated/extended if more systems turn out to be actually
-- * compatible.
-- */
--#if defined(__linux__) && defined(__ARM_EABI__) && defined(USE_GCC_INLINE_ASM)
--#define USE_GNU_ASSEMBLER_ASM
--#endif
--
--#ifdef USE_GNU_ASSEMBLER_ASM
-+#else /* USE_GNU_ASSEMBLER_ARM_NEON */
-
- void
- pixman_composite_over_8888_0565_asm_neon (int32_t w,
-@@ -1941,23 +1943,525 @@ neon_composite_over_8888_0565 (pixman_implementation_t *imp,
- int32_t dst_stride, src_stride;
-
- PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t,
-- src_stride, src_line, 1);
-+ src_stride, src_line, 1);
- PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t,
-- dst_stride, dst_line, 1);
-+ dst_stride, dst_line, 1);
-
- pixman_composite_over_8888_0565_asm_neon (width, height,
- dst_line, dst_stride,
- src_line, src_stride);
- }
-
-+void
-+pixman_composite_src_8888_0565_asm_neon (int32_t w,
-+ int32_t h,
-+ uint16_t *dst,
-+ int32_t dst_stride,
-+ uint32_t *src,
-+ int32_t src_stride);
-+
-+static void
-+neon_composite_src_8888_0565 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint16_t *dst_line;
-+ uint32_t *src_line;
-+ int32_t dst_stride, src_stride;
-+
-+ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t,
-+ src_stride, src_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t,
-+ dst_stride, dst_line, 1);
-+
-+ pixman_composite_src_8888_0565_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src_line, src_stride);
-+}
-+
-+void
-+pixman_composite_src_0565_0565_asm_neon (int32_t w,
-+ int32_t h,
-+ uint16_t *dst,
-+ int32_t dst_stride,
-+ uint16_t *src,
-+ int32_t src_stride);
-+
-+static void
-+neon_composite_src_0565_0565 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint16_t *dst_line;
-+ uint16_t *src_line;
-+ int32_t dst_stride, src_stride;
-+
-+ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint16_t,
-+ src_stride, src_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t,
-+ dst_stride, dst_line, 1);
-+
-+ pixman_composite_src_0565_0565_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src_line, src_stride);
-+}
-+
-+
-+void
-+pixman_composite_src_8888_8888_asm_neon (int32_t w,
-+ int32_t h,
-+ uint32_t *dst,
-+ int32_t dst_stride,
-+ uint32_t *src,
-+ int32_t src_stride);
-+
-+static void
-+neon_composite_src_8888_8888 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint32_t *dst_line;
-+ uint32_t *src_line;
-+ int32_t dst_stride, src_stride;
-+
-+ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t,
-+ src_stride, src_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint32_t,
-+ dst_stride, dst_line, 1);
-+
-+ pixman_composite_src_8888_8888_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src_line, src_stride);
-+}
-+
-+void
-+pixman_composite_over_8888_8888_asm_neon (int32_t w,
-+ int32_t h,
-+ uint32_t *dst,
-+ int32_t dst_stride,
-+ uint32_t *src,
-+ int32_t src_stride);
-+
-+static void
-+neon_composite_over_8888_8888 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint32_t *dst_line;
-+ uint32_t *src_line;
-+ int32_t dst_stride, src_stride;
-+
-+ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t,
-+ src_stride, src_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint32_t,
-+ dst_stride, dst_line, 1);
-+
-+ pixman_composite_over_8888_8888_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src_line, src_stride);
-+}
-+
-+void
-+pixman_composite_add_8000_8000_asm_neon (int32_t w,
-+ int32_t h,
-+ uint8_t *dst,
-+ int32_t dst_stride,
-+ uint8_t *src,
-+ int32_t src_stride);
-+
-+static void
-+neon_composite_add_8000_8000 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint8_t *dst_line;
-+ uint8_t *src_line;
-+ int32_t dst_stride, src_stride;
-+
-+ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint8_t,
-+ src_stride, src_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint8_t,
-+ dst_stride, dst_line, 1);
-+
-+ pixman_composite_add_8000_8000_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src_line, src_stride);
-+}
-+
-+void
-+pixman_composite_over_n_8_0565_asm_neon (int32_t w,
-+ int32_t h,
-+ uint16_t *dst,
-+ int32_t dst_stride,
-+ uint32_t src,
-+ int32_t unused,
-+ uint8_t *mask,
-+ int32_t mask_stride);
-+
-+static void
-+neon_composite_over_n_8_0565 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint16_t *dst_line;
-+ uint8_t *mask_line;
-+ int32_t dst_stride, mask_stride;
-+ uint32_t src;
-+
-+ src = _pixman_image_get_solid (src_image, dst_image->bits.format);
-+
-+ if (src == 0)
-+ return;
-+
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t,
-+ dst_stride, dst_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (mask_image, mask_x, mask_y, uint8_t,
-+ mask_stride, mask_line, 1);
-+
-+ pixman_composite_over_n_8_0565_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src, 0,
-+ mask_line, mask_stride);
-+}
-+
-+void
-+pixman_composite_over_n_8_8888_asm_neon (int32_t w,
-+ int32_t h,
-+ uint32_t *dst,
-+ int32_t dst_stride,
-+ uint32_t src,
-+ int32_t unused,
-+ uint8_t *mask,
-+ int32_t mask_stride);
-+
-+static void
-+neon_composite_over_n_8_8888 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint32_t *dst_line;
-+ uint8_t *mask_line;
-+ int32_t dst_stride, mask_stride;
-+ uint32_t src;
-+
-+ src = _pixman_image_get_solid (src_image, dst_image->bits.format);
-+
-+ if (src == 0)
-+ return;
-+
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint32_t,
-+ dst_stride, dst_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (mask_image, mask_x, mask_y, uint8_t,
-+ mask_stride, mask_line, 1);
-+
-+ pixman_composite_over_n_8_8888_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src, 0,
-+ mask_line, mask_stride);
-+}
-+
-+void
-+pixman_composite_add_8_8_8_asm_neon (int32_t w,
-+ int32_t h,
-+ uint8_t *dst,
-+ int32_t dst_stride,
-+ uint8_t *src,
-+ int32_t src_stride,
-+ uint8_t *mask,
-+ int32_t mask_stride);
-+
-+static void
-+neon_composite_add_8_8_8 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint8_t *src_line;
-+ uint8_t *dst_line;
-+ uint8_t *mask_line;
-+ int32_t src_stride, dst_stride, mask_stride;
-+
-+ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint8_t,
-+ src_stride, src_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint8_t,
-+ dst_stride, dst_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (mask_image, mask_x, mask_y, uint8_t,
-+ mask_stride, mask_line, 1);
-+
-+ pixman_composite_add_8_8_8_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src_line, src_stride,
-+ mask_line, mask_stride);
-+}
-+
-+void
-+pixman_composite_add_n_8_8_asm_neon (int32_t w,
-+ int32_t h,
-+ uint8_t *dst,
-+ int32_t dst_stride,
-+ uint32_t src,
-+ int32_t unused,
-+ uint8_t *mask,
-+ int32_t mask_stride);
-+
-+static void
-+neon_composite_add_n_8_8 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint8_t *dst_line;
-+ uint8_t *mask_line;
-+ int32_t dst_stride, mask_stride;
-+ uint32_t src;
-+
-+ src = _pixman_image_get_solid (src_image, dst_image->bits.format);
-+
-+ if (src == 0)
-+ return;
-+
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint8_t,
-+ dst_stride, dst_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (mask_image, mask_x, mask_y, uint8_t,
-+ mask_stride, mask_line, 1);
-+
-+ pixman_composite_add_n_8_8_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src, 0,
-+ mask_line, mask_stride);
-+}
-+
-+void
-+pixman_composite_over_8888_n_8888_asm_neon (int32_t w,
-+ int32_t h,
-+ uint32_t *dst,
-+ int32_t dst_stride,
-+ uint32_t *src,
-+ int32_t src_stride,
-+ uint32_t mask);
-+
-+static void
-+neon_composite_over_8888_n_8888 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint32_t *dst_line;
-+ uint32_t *src_line;
-+ int32_t dst_stride, src_stride;
-+ uint32_t mask;
-+
-+ mask = _pixman_image_get_solid (mask_image, dst_image->bits.format);
-+
-+ if (mask == 0)
-+ return;
-+
-+ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t,
-+ src_stride, src_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint32_t,
-+ dst_stride, dst_line, 1);
-+
-+ pixman_composite_over_8888_n_8888_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src_line, src_stride,
-+ mask);
-+}
-+
-+void
-+pixman_composite_src_n_8_asm_neon (int32_t w,
-+ int32_t h,
-+ uint8_t *dst,
-+ int32_t dst_stride,
-+ uint8_t src);
-+
-+void
-+pixman_composite_src_n_0565_asm_neon (int32_t w,
-+ int32_t h,
-+ uint16_t *dst,
-+ int32_t dst_stride,
-+ uint16_t src);
-+
-+void
-+pixman_composite_src_n_8888_asm_neon (int32_t w,
-+ int32_t h,
-+ uint32_t *dst,
-+ int32_t dst_stride,
-+ uint32_t src);
-+
-+static pixman_bool_t
-+pixman_fill_neon (uint32_t *bits,
-+ int stride,
-+ int bpp,
-+ int x,
-+ int y,
-+ int width,
-+ int height,
-+ uint32_t _xor)
-+{
-+ /* stride is always multiple of 32bit units in pixman */
-+ uint32_t byte_stride = stride * sizeof(uint32_t);
-+
-+ switch (bpp)
-+ {
-+ case 8:
-+ pixman_composite_src_n_8_asm_neon (
-+ width,
-+ height,
-+ (uint8_t *)(((char *) bits) + y * byte_stride + x),
-+ byte_stride,
-+ _xor & 0xff);
-+ return TRUE;
-+ case 16:
-+ pixman_composite_src_n_0565_asm_neon (
-+ width,
-+ height,
-+ (uint16_t *)(((char *) bits) + y * byte_stride + x * 2),
-+ byte_stride / 2,
-+ _xor & 0xffff);
-+ return TRUE;
-+ case 32:
-+ pixman_composite_src_n_8888_asm_neon (
-+ width,
-+ height,
-+ (uint32_t *)(((char *) bits) + y * byte_stride + x * 4),
-+ byte_stride / 4,
-+ _xor);
-+ return TRUE;
-+ default:
-+ return FALSE;
-+ }
-+}
-+
- #endif
-
- static const pixman_fast_path_t arm_neon_fast_path_array[] =
- {
--#ifdef USE_GNU_ASSEMBLER_ASM
-+#ifdef USE_GNU_ASSEMBLER_ARM_NEON
-+ { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_a8, PIXMAN_r5g6b5, neon_composite_over_n_8_0565, 0 },
-+ { PIXMAN_OP_SRC, PIXMAN_r5g6b5, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_src_0565_0565, 0 },
-+ { PIXMAN_OP_SRC, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_src_8888_0565, 0 },
-+ { PIXMAN_OP_SRC, PIXMAN_x8r8g8b8, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_src_8888_0565, 0 },
-+ { PIXMAN_OP_ADD, PIXMAN_a8, PIXMAN_a8, PIXMAN_a8, neon_composite_add_8_8_8, 0 },
-+ { PIXMAN_OP_ADD, PIXMAN_solid, PIXMAN_a8, PIXMAN_a8, neon_composite_add_n_8_8, 0 },
-+ { PIXMAN_OP_ADD, PIXMAN_a8, PIXMAN_null, PIXMAN_a8, neon_composite_add_8000_8000, 0 },
-+ { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_a8, PIXMAN_b5g6r5, neon_composite_over_n_8_0565, 0 },
-+ { PIXMAN_OP_SRC, PIXMAN_a8b8g8r8, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_src_8888_0565, 0 },
-+ { PIXMAN_OP_SRC, PIXMAN_x8b8g8r8, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_src_8888_0565, 0 },
-+ { PIXMAN_OP_SRC, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_x8r8g8b8, neon_composite_src_8888_8888, 0 },
-+ { PIXMAN_OP_SRC, PIXMAN_x8r8g8b8, PIXMAN_null, PIXMAN_x8r8g8b8, neon_composite_src_8888_8888, 0 },
-+ { PIXMAN_OP_SRC, PIXMAN_a8b8g8r8, PIXMAN_null, PIXMAN_x8b8g8r8, neon_composite_src_8888_8888, 0 },
-+ { PIXMAN_OP_SRC, PIXMAN_x8b8g8r8, PIXMAN_null, PIXMAN_x8b8g8r8, neon_composite_src_8888_8888, 0 },
-+ { PIXMAN_OP_SRC, PIXMAN_b5g6r5, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_src_0565_0565, 0 },
- { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_over_8888_0565, 0 },
- { PIXMAN_OP_OVER, PIXMAN_a8b8g8r8, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_over_8888_0565, 0 },
--#endif
-+ { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_a8r8g8b8, neon_composite_over_8888_8888, 0 },
-+ { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_x8r8g8b8, neon_composite_over_8888_8888, 0 },
-+ { PIXMAN_OP_OVER, PIXMAN_a8b8g8r8, PIXMAN_null, PIXMAN_a8b8g8r8, neon_composite_over_8888_8888, 0 },
-+ { PIXMAN_OP_OVER, PIXMAN_a8b8g8r8, PIXMAN_null, PIXMAN_x8b8g8r8, neon_composite_over_8888_8888, 0 },
-+ { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_a8, PIXMAN_a8r8g8b8, neon_composite_over_8888_n_8888, NEED_SOLID_MASK },
-+ { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_a8, PIXMAN_x8r8g8b8, neon_composite_over_8888_n_8888, NEED_SOLID_MASK },
-+ { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_a8, PIXMAN_a8r8g8b8, neon_composite_over_n_8_8888, 0 },
-+ { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_a8, PIXMAN_x8r8g8b8, neon_composite_over_n_8_8888, 0 },
-+ { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_a8, PIXMAN_a8b8g8r8, neon_composite_over_n_8_8888, 0 },
-+ { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_a8, PIXMAN_x8b8g8r8, neon_composite_over_n_8_8888, 0 },
-+#else
- { PIXMAN_OP_ADD, PIXMAN_solid, PIXMAN_a8, PIXMAN_a8, neon_composite_add_n_8_8, 0 },
- { PIXMAN_OP_ADD, PIXMAN_a8, PIXMAN_null, PIXMAN_a8, neon_composite_add_8000_8000, 0 },
- { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_a8, PIXMAN_r5g6b5, neon_composite_over_n_8_0565, 0 },
-@@ -1980,6 +2484,7 @@ static const pixman_fast_path_t arm_neon_fast_path_array[] =
- { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_a8, PIXMAN_x8r8g8b8, neon_composite_over_n_8_8888, 0 },
- { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_a8, PIXMAN_a8b8g8r8, neon_composite_over_n_8_8888, 0 },
- { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_a8, PIXMAN_x8b8g8r8, neon_composite_over_n_8_8888, 0 },
-+#endif
- { PIXMAN_OP_NONE },
- };
-
---
-1.6.2.4
-
diff --git a/recipes/xorg-lib/pixman/neon-24bpp.patch b/recipes/xorg-lib/pixman/neon-24bpp.patch
deleted file mode 100644
index edfd367626..0000000000
--- a/recipes/xorg-lib/pixman/neon-24bpp.patch
+++ /dev/null
@@ -1,264 +0,0 @@
-From b101c115102b83bb1fc4e28de6136dd4940796bc Mon Sep 17 00:00:00 2001
-From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
-Date: Fri, 30 Oct 2009 17:02:14 +0000
-Subject: ARM: initial 24bpp support
-
----
-diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S
-index 35e6a7e..7f91ced 100644
---- a/pixman/pixman-arm-neon-asm.S
-+++ b/pixman/pixman-arm-neon-asm.S
-@@ -977,3 +977,32 @@ generate_composite_function \
- pixman_composite_over_8888_n_8888_process_pixblock_head, \
- pixman_composite_over_8888_n_8888_process_pixblock_tail, \
- pixman_composite_over_8888_n_8888_process_pixblock_tail_head
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_src_0888_0888_process_pixblock_head
-+.endm
-+
-+.macro pixman_composite_src_0888_0888_process_pixblock_tail
-+.endm
-+
-+.macro pixman_composite_src_0888_0888_process_pixblock_tail_head
-+ vst3.8 {d0, d1, d2}, [DST_W]!
-+ vld3.8 {d0, d1, d2}, [SRC]!
-+ cache_preload 8, 8
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_src_0888_0888_asm_neon, 24, 0, 24, \
-+ FLAG_DST_WRITEONLY, \
-+ 8, /* number of pixels, processed in a single block */ \
-+ 10, /* prefetch distance */ \
-+ default_init, \
-+ default_cleanup, \
-+ pixman_composite_src_0888_0888_process_pixblock_head, \
-+ pixman_composite_src_0888_0888_process_pixblock_tail, \
-+ pixman_composite_src_0888_0888_process_pixblock_tail_head, \
-+ 0, /* dst_w_basereg */ \
-+ 0, /* dst_r_basereg */ \
-+ 0, /* src_basereg */ \
-+ 0 /* mask_basereg */
-diff --git a/pixman/pixman-arm-neon-asm.h b/pixman/pixman-arm-neon-asm.h
-index a2941ae..1653ef4 100644
---- a/pixman/pixman-arm-neon-asm.h
-+++ b/pixman/pixman-arm-neon-asm.h
-@@ -95,6 +95,14 @@
- op&.&elem_size {d&reg1[idx]}, [&mem_operand&]!
- .endm
-
-+.macro pixldst3 op, elem_size, reg1, reg2, reg3, mem_operand
-+ op&.&elem_size {d&reg1, d&reg2, d&reg3}, [&mem_operand&]!
-+.endm
-+
-+.macro pixldst30 op, elem_size, reg1, reg2, reg3, idx, mem_operand
-+ op&.&elem_size {d&reg1[idx], d&reg2[idx], d&reg3[idx]}, [&mem_operand&]!
-+.endm
-+
- .macro pixldst numbytes, op, elem_size, basereg, mem_operand, abits
- .if numbytes == 32
- pixldst4 op, elem_size, %(basereg+4), %(basereg+5), \
-@@ -134,6 +142,18 @@
- .if (bpp == 32) && (numpix == 8) && (DEINTERLEAVE_32BPP_ENABLED != 0)
- pixldst4 vld4, 8, %(basereg+4), %(basereg+5), \
- %(basereg+6), %(basereg+7), mem_operand, abits
-+.elseif (bpp == 24) && (numpix == 8)
-+ pixldst3 vld3, 8, %(basereg+3), %(basereg+4), %(basereg+5), mem_operand
-+.elseif (bpp == 24) && (numpix == 4)
-+ pixldst30 vld3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 4, mem_operand
-+ pixldst30 vld3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 5, mem_operand
-+ pixldst30 vld3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 6, mem_operand
-+ pixldst30 vld3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 7, mem_operand
-+.elseif (bpp == 24) && (numpix == 2)
-+ pixldst30 vld3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 2, mem_operand
-+ pixldst30 vld3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 3, mem_operand
-+.elseif (bpp == 24) && (numpix == 1)
-+ pixldst30 vld3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 1, mem_operand
- .else
- pixldst %(numpix * bpp / 8), vld1, %(bpp), basereg, mem_operand, abits
- .endif
-@@ -145,6 +165,18 @@
- .if (bpp == 32) && (numpix == 8) && (DEINTERLEAVE_32BPP_ENABLED != 0)
- pixldst4 vst4, 8, %(basereg+4), %(basereg+5), \
- %(basereg+6), %(basereg+7), mem_operand, abits
-+.elseif (bpp == 24) && (numpix == 8)
-+ pixldst3 vst3, 8, %(basereg+3), %(basereg+4), %(basereg+5), mem_operand
-+.elseif (bpp == 24) && (numpix == 4)
-+ pixldst30 vst3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 4, mem_operand
-+ pixldst30 vst3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 5, mem_operand
-+ pixldst30 vst3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 6, mem_operand
-+ pixldst30 vst3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 7, mem_operand
-+.elseif (bpp == 24) && (numpix == 2)
-+ pixldst30 vst3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 2, mem_operand
-+ pixldst30 vst3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 3, mem_operand
-+.elseif (bpp == 24) && (numpix == 1)
-+ pixldst30 vst3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 1, mem_operand
- .else
- pixldst %(numpix * bpp / 8), vst1, %(bpp), basereg, mem_operand, abits
- .endif
-@@ -334,6 +366,8 @@ fname:
-
- .if src_bpp == 32
- .set src_bpp_shift, 2
-+.elseif src_bpp == 24
-+ .set src_bpp_shift, 0
- .elseif src_bpp == 16
- .set src_bpp_shift, 1
- .elseif src_bpp == 8
-@@ -345,6 +379,8 @@ fname:
- .endif
- .if mask_bpp == 32
- .set mask_bpp_shift, 2
-+.elseif mask_bpp == 24
-+ .set mask_bpp_shift, 0
- .elseif mask_bpp == 8
- .set mask_bpp_shift, 0
- .elseif mask_bpp == 0
-@@ -354,6 +390,8 @@ fname:
- .endif
- .if dst_w_bpp == 32
- .set dst_bpp_shift, 2
-+.elseif dst_w_bpp == 24
-+ .set dst_bpp_shift, 0
- .elseif dst_w_bpp == 16
- .set dst_bpp_shift, 1
- .elseif dst_w_bpp == 8
-@@ -398,6 +436,19 @@ fname:
- PF mov PF_CTL, H, lsl #4
- PF add PF_CTL, #(prefetch_distance - 0x10)
-
-+.if src_bpp == 24
-+ sub SRC_STRIDE, SRC_STRIDE, W
-+ sub SRC_STRIDE, SRC_STRIDE, W, lsl #1
-+.endif
-+.if mask_bpp == 24
-+ sub MASK_STRIDE, MASK_STRIDE, W
-+ sub MASK_STRIDE, MASK_STRIDE, W, lsl #1
-+.endif
-+.if dst_w_bpp == 24
-+ sub DST_STRIDE, DST_STRIDE, W
-+ sub DST_STRIDE, DST_STRIDE, W, lsl #1
-+.endif
-+
- init
- .if regs_shortage
- push {r0, r1}
-@@ -412,7 +463,8 @@ fname:
- cmp W, #(pixblock_size * 2)
- blt 8f
- 0:
-- /* ensure 16 byte alignment of the destination buffer */
-+ /* ensure 16 byte alignment of the destination buffer, except for 24bpp */
-+.if dst_w_bpp != 24
- tst DST_R, #0xF
- beq 2f
-
-@@ -454,6 +506,7 @@ fname:
- .endif
- .endr
- 2:
-+.endif
-
- pixld_a pixblock_size, dst_r_bpp, \
- (dst_r_basereg - pixblock_size * dst_r_bpp / 64), DST_R
-@@ -520,11 +573,13 @@ fname:
- .if mask_bpp != 0
- add MASK, MASK, MASK_STRIDE, lsl #mask_bpp_shift
- .endif
-+.if (dst_w_bpp != 24)
- sub DST_W, DST_W, W, lsl #dst_bpp_shift
--.if src_bpp != 0
-+.endif
-+.if (src_bpp != 24) && (src_bpp != 0)
- sub SRC, SRC, W, lsl #src_bpp_shift
- .endif
--.if mask_bpp != 0
-+.if (mask_bpp != 24) && (mask_bpp != 0)
- sub MASK, MASK, W, lsl #mask_bpp_shift
- .endif
- subs H, H, #1
-@@ -539,7 +594,7 @@ fname:
- cleanup
- pop {r4-r12, pc} /* exit */
-
--8: /* handle small rectangle, width up to 15 pixels */
-+8: /* handle small rectangle, width up to (pixblock_size * 2 - 1) pixels */
- tst W, #pixblock_size
- beq 1f
- pixld pixblock_size, dst_r_bpp, \
-@@ -592,11 +647,13 @@ fname:
- .if mask_bpp != 0
- add MASK, MASK, MASK_STRIDE, lsl #mask_bpp_shift
- .endif
-+.if (dst_w_bpp != 24)
- sub DST_W, DST_W, W, lsl #dst_bpp_shift
--.if src_bpp != 0
-+.endif
-+.if (src_bpp != 24) && (src_bpp != 0)
- sub SRC, SRC, W, lsl #src_bpp_shift
- .endif
--.if mask_bpp != 0
-+.if (mask_bpp != 24) && (mask_bpp != 0)
- sub MASK, MASK, W, lsl #mask_bpp_shift
- .endif
- subs H, H, #1
-diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
-index 2811099..f3f38a9 100644
---- a/pixman/pixman-arm-neon.c
-+++ b/pixman/pixman-arm-neon.c
-@@ -2065,6 +2065,43 @@ neon_composite_src_8888_8888 (pixman_implementation_t *imp,
- }
-
- void
-+pixman_composite_src_0888_0888_asm_neon (int32_t w,
-+ int32_t h,
-+ uint8_t *dst,
-+ int32_t dst_stride,
-+ uint8_t *src,
-+ int32_t src_stride);
-+
-+static void
-+neon_composite_src_0888_0888 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint8_t *dst_line;
-+ uint8_t *src_line;
-+ int32_t dst_stride, src_stride;
-+
-+ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint8_t,
-+ src_stride, src_line, 3);
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint8_t,
-+ dst_stride, dst_line, 3);
-+
-+ pixman_composite_src_0888_0888_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src_line, src_stride);
-+}
-+
-+void
- pixman_composite_over_8888_8888_asm_neon (int32_t w,
- int32_t h,
- uint32_t *dst,
-@@ -2449,6 +2486,7 @@ static const pixman_fast_path_t arm_neon_fast_path_array[] =
- { PIXMAN_OP_SRC, PIXMAN_a8b8g8r8, PIXMAN_null, PIXMAN_x8b8g8r8, neon_composite_src_8888_8888, 0 },
- { PIXMAN_OP_SRC, PIXMAN_x8b8g8r8, PIXMAN_null, PIXMAN_x8b8g8r8, neon_composite_src_8888_8888, 0 },
- { PIXMAN_OP_SRC, PIXMAN_b5g6r5, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_src_0565_0565, 0 },
-+ { PIXMAN_OP_SRC, PIXMAN_r8g8b8, PIXMAN_null, PIXMAN_r8g8b8, neon_composite_src_0888_0888, 0 },
- { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_over_8888_0565, 0 },
- { PIXMAN_OP_OVER, PIXMAN_a8b8g8r8, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_over_8888_0565, 0 },
- { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_a8r8g8b8, neon_composite_over_8888_8888, 0 },
---
-cgit v0.8.2
diff --git a/recipes/xorg-lib/pixman/over-8888-0565.patch b/recipes/xorg-lib/pixman/over-8888-0565.patch
deleted file mode 100644
index 3e27094022..0000000000
--- a/recipes/xorg-lib/pixman/over-8888-0565.patch
+++ /dev/null
@@ -1,296 +0,0 @@
-From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
-Date: Mon, 27 Jul 2009 04:48:04 +0000 (+0300)
-Subject: ARM: NEON optimized version of composite_over_8888_0565
-X-Git-Url: http://siarhei.siamashka.name/gitweb/?p=pixman.git;a=commitdiff_plain;h=17d8ab82858511f212dfb30c347255393eb12b0c
-
-ARM: NEON optimized version of composite_over_8888_0565
----
-
-diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
-index 9404c70..f1dcf1f 100644
---- a/pixman/pixman-arm-neon.c
-+++ b/pixman/pixman-arm-neon.c
-@@ -1447,6 +1447,274 @@ neon_composite_src_16_16 (pixman_implementation_t * impl,
- }
- }
-
-+static inline void
-+neon_composite_over_8888_0565_internal (uint32_t *src,
-+ uint16_t *dst,
-+ int32_t w,
-+ int32_t h,
-+ int32_t src_stride,
-+ int32_t dst_stride)
-+{
-+ int32_t dst_newline_delta = (dst_stride - w) * 2;
-+ int32_t src_newline_delta = (src_stride - w) * 4;
-+ asm volatile (
-+
-+ ".macro process_pixblock_head size\n"
-+ /* load pixel data from memory */
-+ " .if \\size == 8\n"
-+ " vld1.32 {d0, d1, d2, d3}, [%[src]]!\n"
-+ " vld1.16 {d4, d5}, [%[dst_r]]!\n"
-+ " .elseif \\size == 4\n"
-+ " vld1.32 {d0, d1}, [%[src]]!\n"
-+ " vld1.16 {d4}, [%[dst_r]]!\n"
-+ " .elseif \\size == 2\n"
-+ " vld1.32 {d0}, [%[src]]!\n"
-+ " vld1.16 {d4[0]}, [%[dst_r]]!\n"
-+ " vld1.16 {d4[1]}, [%[dst_r]]!\n"
-+ " .elseif \\size == 1\n"
-+ " vld1.32 {d0[0]}, [%[src]]!\n"
-+ " vld1.16 {d4[0]}, [%[dst_r]]!\n"
-+ " .endif\n"
-+ /* deinterleave and convert both source and destination
-+ to "planar" 8-bit format */
-+ " vshrn.u16 d16, q2, #8\n"
-+ " vuzp.8 d0, d1\n"
-+ " vshrn.u16 d17, q2, #3\n"
-+ " vuzp.8 d2, d3\n"
-+ " vsli.u16 q2, q2, #5\n"
-+ " vuzp.8 d1, d3\n"
-+ " vsri.u8 d16, d16, #5\n"
-+ " vuzp.8 d0, d2\n"
-+ " vmvn.8 d3, d3\n"
-+ " vsri.u8 d17, d17, #6\n"
-+ " vshrn.u16 d18, q2, #2\n"
-+ /* source: d0 - blue, d1 - green, d2 - red, d3 - alpha */
-+ /* destination: d16 - red, d17 - green, d18 - blue */
-+ /* now do alpha blending */
-+ " vmull.u8 q10, d3, d16\n"
-+ "pld [%[src], #128]\n"
-+ " vmull.u8 q11, d3, d17\n"
-+ "pld [%[dst_r], #64]\n"
-+ " vmull.u8 q12, d3, d18\n"
-+ " vrshr.u16 q13, q10, #8\n"
-+ " vrshr.u16 q8, q11, #8\n"
-+ " vrshr.u16 q9, q12, #8\n"
-+ " vraddhn.u16 d20, q10, q13\n"
-+ " vraddhn.u16 d21, q11, q8\n"
-+ " vraddhn.u16 d22, q12, q9\n"
-+ ".endm\n"
-+
-+ ".macro process_pixblock_tail size\n"
-+ /* result is ready in d28, d29, d30 (R, G, B) */
-+ " vqadd.u8 d28, d2, d20\n"
-+ " vqadd.u8 d29, d1, d21\n"
-+ " vqadd.u8 d30, d0, d22\n"
-+ /* convert it to r5g6b5 */
-+ " vshll.u8 q3, d28, #8\n"
-+ " vshll.u8 q14, d29, #8\n"
-+ " vshll.u8 q15, d30, #8\n"
-+ " vsri.u16 q3, q14, #5\n"
-+ " vsri.u16 q3, q15, #11\n"
-+ /* store pixel data to memory */
-+ " .if \\size == 8\n"
-+ " vst1.16 {d6, d7}, [%[dst_w], :128]!\n"
-+ " .elseif \\size == 4\n"
-+ " vst1.16 {d6}, [%[dst_w]]!\n"
-+ " .elseif \\size == 2\n"
-+ " vst1.16 {d6[0]}, [%[dst_w]]!\n"
-+ " vst1.16 {d6[1]}, [%[dst_w]]!\n"
-+ " .elseif \\size == 1\n"
-+ " vst1.16 {d6[0]}, [%[dst_w]]!\n"
-+ " .endif\n"
-+ ".endm\n"
-+
-+ /* "tail" of the previous block and "head" of the next block
-+ are merged and interleaved for better instructions scheduling */
-+ ".macro process_pixblock_tail_head_8\n"
-+ " vqadd.u8 d28, d2, d20\n"
-+ " vld1.16 {d4, d5}, [%[dst_r], :128]!\n"
-+ " vqadd.u8 d29, d1, d21\n" /* TODO: try to join these into a */
-+ " vqadd.u8 d30, d0, d22\n" /* single 128-bit operation */
-+ " vshrn.u16 d16, q2, #8\n"
-+ " vld1.32 {d0, d1, d2, d3}, [%[src]]!\n" /* TODO: maybe split */
-+ " vshrn.u16 d17, q2, #3\n"
-+ " vsli.u16 q2, q2, #5\n"
-+ " vuzp.8 d0, d1\n"
-+ " vshll.u8 q3, d28, #8\n"
-+ " vuzp.8 d2, d3\n"
-+ " vshll.u8 q14, d29, #8\n"
-+ " vuzp.8 d1, d3\n"
-+ " vsri.u8 d16, d16, #5\n"
-+ " vuzp.8 d0, d2\n"
-+ " vmvn.8 d3, d3\n"
-+ " vsri.u8 d17, d17, #6\n"
-+ " vshrn.u16 d18, q2, #2\n"
-+ " vmull.u8 q10, d3, d16\n"
-+ "pld [%[src], #128]\n"
-+ " vmull.u8 q11, d3, d17\n"
-+ "pld [%[dst_r], #64]\n"
-+ " vmull.u8 q12, d3, d18\n"
-+ " vsri.u16 d6, d28, #5\n"
-+ " vsri.u16 d7, d29, #5\n"
-+ " vshll.u8 q15, d30, #8\n"
-+ " vrshr.u16 q13, q10, #8\n"
-+ " vrshr.u16 q8, q11, #8\n"
-+ " vrshr.u16 q9, q12, #8\n"
-+ " vsri.u16 d6, d30, #11\n"
-+ " vsri.u16 d7, d31, #11\n"
-+ " vraddhn.u16 d20, q10, q13\n"
-+ " vraddhn.u16 d21, q11, q8\n"
-+ " vraddhn.u16 d22, q12, q9\n"
-+ " vst1.16 {d6, d7}, [%[dst_w], :128]!\n"
-+ ".endm\n"
-+
-+ "subs %[h], %[h], #1\n"
-+ "blt 9f\n"
-+ "0:\n"
-+ "cmp %[w], #8\n"
-+ "blt 8f\n"
-+
-+ /* ensure 16 byte alignment of the destination buffer */
-+ "tst %[dst_r], #0xF\n"
-+ "beq 2f\n"
-+ "tst %[dst_r], #2\n"
-+ "beq 1f\n"
-+ "vld1.32 {d3[0]}, [%[src]]!\n"
-+ "vld1.16 {d5[2]}, [%[dst_r]]!\n"
-+ "sub %[w], %[w], #1\n"
-+ "1:\n"
-+ "tst %[dst_r], #4\n"
-+ "beq 1f\n"
-+ "vld1.32 {d2}, [%[src]]!\n"
-+ "vld1.16 {d5[0]}, [%[dst_r]]!\n"
-+ "vld1.16 {d5[1]}, [%[dst_r]]!\n"
-+ "sub %[w], %[w], #2\n"
-+ "1:\n"
-+ "tst %[dst_r], #8\n"
-+ "beq 1f\n"
-+ "vld1.32 {d0, d1}, [%[src]]!\n"
-+ "vld1.16 {d4}, [%[dst_r]]!\n"
-+ "sub %[w], %[w], #4\n"
-+ "1:\n"
-+ "process_pixblock_head -1\n"
-+ "process_pixblock_tail -1\n"
-+ "tst %[dst_w], #2\n"
-+ "beq 1f\n"
-+ "vst1.16 {d7[2]}, [%[dst_w]]!\n"
-+ "1:\n"
-+ "tst %[dst_w], #4\n"
-+ "beq 1f\n"
-+ "vst1.16 {d7[0]}, [%[dst_w]]!\n"
-+ "vst1.16 {d7[1]}, [%[dst_w]]!\n"
-+ "1:\n"
-+ "tst %[dst_w], #8\n"
-+ "beq 2f\n"
-+ "vst1.16 {d6}, [%[dst_w]]!\n"
-+ "2:\n"
-+
-+ "subs %[w], %[w], #8\n"
-+ "blt 8f\n"
-+ "process_pixblock_head 8\n"
-+ "subs %[w], %[w], #8\n"
-+ "blt 2f\n"
-+ "1:\n" /* innermost pipelined loop */
-+ "process_pixblock_tail_head_8\n"
-+ "subs %[w], %[w], #8\n"
-+ "bge 1b\n"
-+ "2:\n"
-+ "process_pixblock_tail 8\n"
-+
-+ "8:\n"
-+ /* process up to 7 remaining pixels */
-+ "tst %[w], #7\n"
-+ "beq 2f\n"
-+ "tst %[w], #4\n"
-+ "beq 1f\n"
-+ "vld1.32 {d0, d1}, [%[src]]!\n"
-+ "vld1.16 {d4}, [%[dst_r]]!\n"
-+ "1:\n"
-+ "tst %[w], #2\n"
-+ "beq 1f\n"
-+ "vld1.32 {d2}, [%[src]]!\n"
-+ "vld1.16 {d5[0]}, [%[dst_r]]!\n"
-+ "vld1.16 {d5[1]}, [%[dst_r]]!\n"
-+ "1:\n"
-+ "tst %[w], #1\n"
-+ "beq 1f\n"
-+ "vld1.32 {d3[0]}, [%[src]]!\n"
-+ "vld1.16 {d5[2]}, [%[dst_r]]!\n"
-+ "1:\n"
-+
-+ "process_pixblock_head -1\n"
-+ "process_pixblock_tail -1\n"
-+
-+ "tst %[w], #4\n"
-+ "beq 1f\n"
-+ "vst1.16 {d6}, [%[dst_w]]!\n"
-+ "1:\n"
-+ "tst %[w], #2\n"
-+ "beq 1f\n"
-+ "vst1.16 {d7[0]}, [%[dst_w]]!\n"
-+ "vst1.16 {d7[1]}, [%[dst_w]]!\n"
-+ "1:\n"
-+ "tst %[w], #1\n"
-+ "beq 2f\n"
-+ "vst1.16 {d7[2]}, [%[dst_w]]!\n"
-+ "2:\n"
-+
-+ "add %[src], %[src], %[src_newline_delta]\n"
-+ "add %[dst_r], %[dst_r], %[dst_newline_delta]\n"
-+ "add %[dst_w], %[dst_w], %[dst_newline_delta]\n"
-+ "mov %[w], %[orig_w]\n"
-+ "subs %[h], %[h], #1\n"
-+ "bge 0b\n"
-+ "9:\n"
-+ ".purgem process_pixblock_head\n"
-+ ".purgem process_pixblock_tail\n"
-+ ".purgem process_pixblock_tail_head_8\n"
-+
-+ : [src] "+&r" (src), [dst_r] "+&r" (dst), [dst_w] "+&r" (dst),
-+ [w] "+&r" (w), [h] "+&r" (h)
-+ : [dst_newline_delta] "r" (dst_newline_delta),
-+ [src_newline_delta] "r" (src_newline_delta), [orig_w] "r" (w)
-+ : "cc", "memory",
-+ "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7",
-+ /* "d8", "d9", "d10", "d11", "d12", "d13", "d14", "d15", */
-+ "d16", "d17", "d18", "d19", "d20", "d21", "d22", "d23",
-+ "d24", "d25", "d26", "d27", "d28", "d29", "d30", "d31"
-+ );
-+}
-+
-+static void
-+neon_composite_over_8888_0565 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint16_t *dst_line;
-+ uint32_t *src_line;
-+ int32_t dst_stride, src_stride;
-+
-+ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t, src_stride, src_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t, dst_stride, dst_line, 1);
-+
-+ neon_composite_over_8888_0565_internal (src_line,
-+ dst_line,
-+ width,
-+ height,
-+ src_stride,
-+ dst_stride);
-+}
-+
- #endif /* USE_GCC_INLINE_ASM */
-
- static void
-@@ -1908,6 +2176,8 @@ static const pixman_fast_path_t arm_neon_fast_path_array[] =
- #ifdef USE_GCC_INLINE_ASM
- { PIXMAN_OP_SRC, PIXMAN_r5g6b5, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_src_16_16, 0 },
- { PIXMAN_OP_SRC, PIXMAN_b5g6r5, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_src_16_16, 0 },
-+ { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_over_8888_0565, 0 },
-+ { PIXMAN_OP_OVER, PIXMAN_a8b8g8r8, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_over_8888_0565, 0 },
- #endif
- { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_a8r8g8b8, neon_composite_over_8888_8888, 0 },
- { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_x8r8g8b8, neon_composite_over_8888_8888, 0 },
diff --git a/recipes/xorg-lib/pixman_git.bb b/recipes/xorg-lib/pixman_git.bb
index ffca7becce..1b5ca6388f 100644
--- a/recipes/xorg-lib/pixman_git.bb
+++ b/recipes/xorg-lib/pixman_git.bb
@@ -3,27 +3,24 @@ PRIORITY = "optional"
DESCRIPTION = "Low-level pixel manipulation library."
LICENSE = "X11"
-PV = "0.17.1"
-PR = "r3"
+PV = "0.17.3"
+PR = "r4"
PR_append = "+gitr${SRCREV}"
-SRCREV = "67bf739187cd43b5fff754b25693f76bb788d1fa"
+SRCREV = "c97b1e803fc214e9880eaeff98410c8fa37f9ddc"
DEFAULT_PREFERENCE = "-1"
DEFAULT_PREFERENCE_angstrom = "1"
+DEFAULT_PREFERENCE_shr = "1"
SRC_URI = "git://anongit.freedesktop.org/pixman;protocol=git \
-file://0002-ARM-Introduction-of-the-new-framework-for-NEON-fast.patch;patch=1 \
-file://0003-ARM-Added-pixman_composite_src_8888_0565_asm_neon-f.patch;patch=1 \
-file://0004-ARM-Added-pixman_composite_add_8000_8000_asm_neon-f.patch;patch=1 \
-file://0005-ARM-Added-pixman_composite_over_8888_8888_asm_neon.patch;patch=1 \
-file://0006-ARM-Added-a-set-of-NEON-functions-not-fully-optimi.patch;patch=1 \
-file://0007-ARM-Enabled-new-NEON-optimizations.patch;patch=1 \
- file://pixman-28986.patch;patch=1 \
file://nearest-neighbour.patch;patch=1 \
- file://over-8888-0565.patch;patch=1 \
-file://prefetch.patch;patch=1 \
-file://neon-24bpp.patch;patch=1 \
+ file://0001-ARM-NEON-optimized-pixman_blt.patch;patch=1 \
+ file://0002-Test-program-for-pixman_blt-function.patch;patch=1 \
+ file://0003-Generic-C-implementation-of-pixman_blt-with-overlapp.patch;patch=1 \
+ file://0004-Support-of-overlapping-src-dst-for-pixman_blt_mmx.patch;patch=1 \
+ file://0005-Support-of-overlapping-src-dst-for-pixman_blt_sse2.patch;patch=1 \
+ file://0006-Support-of-overlapping-src-dst-for-pixman_blt_neon.patch;patch=1 \
"
S = "${WORKDIR}/git"
diff --git a/recipes/xorg-xserver/xserver-xorg-1.6.1/hack-assume-pixman-supports-overlapped-blt.patch b/recipes/xorg-xserver/xserver-xorg-1.6.1/hack-assume-pixman-supports-overlapped-blt.patch
new file mode 100644
index 0000000000..a947582f15
--- /dev/null
+++ b/recipes/xorg-xserver/xserver-xorg-1.6.1/hack-assume-pixman-supports-overlapped-blt.patch
@@ -0,0 +1,14 @@
+diff --git a/fb/fbcopy.c b/fb/fbcopy.c
+index 07eb663..ba394b7 100644
+--- a/fb/fbcopy.c
++++ b/fb/fbcopy.c
+@@ -91,8 +91,7 @@ fbCopyNtoN (DrawablePtr pSrcDrawable,
+ while (nbox--)
+ {
+ #ifndef FB_ACCESS_WRAPPER /* pixman_blt() doesn't support accessors yet */
+- if (pm == FB_ALLONES && alu == GXcopy && !reverse &&
+- !upsidedown)
++ if (pm == FB_ALLONES && alu == GXcopy)
+ {
+ if (!pixman_blt ((uint32_t *)src, (uint32_t *)dst, srcStride, dstStride, srcBpp, dstBpp,
+ (pbox->x1 + dx + srcXoff),
diff --git a/recipes/xorg-xserver/xserver-xorg-conf/bug/xorg.conf b/recipes/xorg-xserver/xserver-xorg-conf/bug/xorg.conf
new file mode 100644
index 0000000000..8b6cd94ab6
--- /dev/null
+++ b/recipes/xorg-xserver/xserver-xorg-conf/bug/xorg.conf
@@ -0,0 +1,65 @@
+#
+# Initial version of X11 configuration for BugLabs BUG device.
+#
+# Up to 2 LCD modules are supported (as DISPLAY=0.0/0.1).
+# Touchscreen on first screen works properly (req tslib 0.0.6 driver).
+#
+# By default software starts on 0.0 only.
+#
+
+Section "Monitor"
+ Identifier "Monitor 1"
+EndSection
+
+Section "Monitor"
+ Identifier "Monitor 2"
+EndSection
+
+Section "Device"
+ Identifier "fbdev Device 2"
+ Driver "fbdev"
+ Option "fbdev" "/dev/fb2"
+ Option "shadowfb" "true"
+EndSection
+
+Section "Device"
+ Identifier "fbdev Device 1"
+ Driver "fbdev"
+ Option "fbdev" "/dev/fb1"
+ Option "shadowfb" "true"
+EndSection
+
+Section "Screen"
+ Identifier "fbdev Screen 2"
+ Device "fbdev Device 2"
+ Monitor "Monitor 2"
+EndSection
+
+Section "Screen"
+ Identifier "fbdev Screen 1"
+ Device "fbdev Device 1"
+ Monitor "Monitor 1"
+EndSection
+
+Section "ServerLayout"
+ Identifier "Layout"
+ Screen "fbdev Screen 1"
+ Screen "fbdev Screen 2" Below "fbdev Screen 1"
+ InputDevice "ts4" "CorePointer"
+EndSection
+
+Section "InputDevice"
+ Identifier "ts5"
+ Driver "tslib"
+ Option "Device" "/dev/input/bmi_lcd_ts5"
+EndSection
+
+Section "InputDevice"
+ Identifier "ts4"
+ Driver "tslib"
+ Option "Device" "/dev/input/bmi_lcd_ts4"
+EndSection
+
+Section "ServerFlags"
+ Option "AutoAddDevices" "false"
+EndSection
diff --git a/recipes/xorg-xserver/xserver-xorg-conf/omap3-touchbook/xorg.conf b/recipes/xorg-xserver/xserver-xorg-conf/omap3-touchbook/xorg.conf
index 446ac9777f..56425abf81 100644
--- a/recipes/xorg-xserver/xserver-xorg-conf/omap3-touchbook/xorg.conf
+++ b/recipes/xorg-xserver/xserver-xorg-conf/omap3-touchbook/xorg.conf
@@ -9,7 +9,8 @@ EndSection
Section "Device"
Identifier "Builtin Default fbdev Device 0"
- Driver "omapfb"
+ Driver "fbdev"
+ Option "ShadowFB" "false"
EndSection
Section "Screen"
diff --git a/recipes/xorg-xserver/xserver-xorg-conf_0.1.bb b/recipes/xorg-xserver/xserver-xorg-conf_0.1.bb
index ceaf199932..8945e1e8f1 100644
--- a/recipes/xorg-xserver/xserver-xorg-conf_0.1.bb
+++ b/recipes/xorg-xserver/xserver-xorg-conf_0.1.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "Machine specific xorg.conf files"
-PR = "r14"
+PR = "r16"
SRC_URI = "file://xorg.conf"
diff --git a/recipes/xorg-xserver/xserver-xorg_1.6.1.bb b/recipes/xorg-xserver/xserver-xorg_1.6.1.bb
index 5218fde00e..ff8e1cfa03 100644
--- a/recipes/xorg-xserver/xserver-xorg_1.6.1.bb
+++ b/recipes/xorg-xserver/xserver-xorg_1.6.1.bb
@@ -4,11 +4,14 @@ DESCRIPTION = "the X.Org X server"
DEPENDS += "pixman libpciaccess openssl xineramaproto libxinerama"
RDEPENDS += "hal"
PE = "2"
-PR = "${INC_PR}.0"
+PR = "${INC_PR}.1"
SRC_URI += "file://sysroot_fix.patch;patch=1 \
file://dolt-fix.patch;patch=1"
+# This requires support in pixman, which the default one doesn't have
+SRC_URI_append_angstrom = " file://hack-assume-pixman-supports-overlapped-blt.patch;patch=1"
+
MESA_VER = "7.2"
export LDFLAGS += " -ldl "
diff --git a/recipes/xournal/xournal_0.4.5.bb b/recipes/xournal/xournal_0.4.5.bb
new file mode 100644
index 0000000000..747dfed826
--- /dev/null
+++ b/recipes/xournal/xournal_0.4.5.bb
@@ -0,0 +1,19 @@
+HOMEPAGE = "http://xournal.sf.net/"
+DESCRIPTION = "Xournal is an application for notetaking, sketching, keeping a journal using a stylus."
+DEPENDS = "gtk+ libgnomecanvas libgnomeprintui"
+# For pdftopnm:
+RDEPENDS = "poppler"
+SECTION = "x11"
+LICENSE = "GPL"
+PR = "r0"
+
+SRC_URI = "http://xournal.sourceforge.net/xournal-${PV}.tar.gz \
+ "
+
+inherit autotools pkgconfig
+
+# make desktop-install in Makefile is not useable for us, so just copy the .desktop file from source
+do_install_append () {
+ install -d ${D}${datadir}/applications/
+ install -m 0644 ${S}/xournal.desktop ${D}${datadir}/applications/
+}
diff --git a/recipes/zaurus-utils/nandlogical-klibc-static_1.0.0.bb b/recipes/zaurus-utils/nandlogical-klibc-static_1.0.0.bb
index 42d30c90f8..f9a6b0e55d 100644
--- a/recipes/zaurus-utils/nandlogical-klibc-static_1.0.0.bb
+++ b/recipes/zaurus-utils/nandlogical-klibc-static_1.0.0.bb
@@ -2,9 +2,6 @@ require nandlogical_${PV}.bb
FILESPATHPKG =. "nandlogical:"
-SRC_URI_append = " file://mtd-user.h \
- file://mtd-abi.h \
- "
DEPENDS += "klibc"
export CC = ${TARGET_PREFIX}klcc
@@ -14,11 +11,6 @@ export CFLAGS = ""
export CPPFLAGS = ""
export LDFLAGS = ""
-do_configure_prepend() {
- sed -i 's:<mtd/mtd-user.h>:"mtd-user.h":g' '${S}/nandlogical.c'
- sed -i 's:<mtd/mtd-abi.h>:"mtd-abi.h":g' '${S}/mtd-user.h'
-}
-
do_compile() {
- ${CC} nandlogical.c -o nandlogical ${CFLAGS} ${LDFLAGS} -static
+ ${CC} ${CFLAGS} ${LDFLAGS} -static -I${STAGING_INCDIR} nandlogical.c -o nandlogical
}
diff --git a/recipes/zaurus-utils/nandlogical/mtd-abi.h b/recipes/zaurus-utils/nandlogical/mtd-abi.h
deleted file mode 100644
index 86defe175f..0000000000
--- a/recipes/zaurus-utils/nandlogical/mtd-abi.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * $Id: mtd-abi.h,v 1.13 2005/11/07 11:14:56 gleixner Exp $
- *
- * Portions of MTD ABI definition which are shared by kernel and user space
- */
-
-#ifndef __MTD_ABI_H__
-#define __MTD_ABI_H__
-
-struct erase_info_user {
- uint32_t start;
- uint32_t length;
-};
-
-struct mtd_oob_buf {
- uint32_t start;
- uint32_t length;
- unsigned char *ptr;
-};
-
-#define MTD_ABSENT 0
-#define MTD_RAM 1
-#define MTD_ROM 2
-#define MTD_NORFLASH 3
-#define MTD_NANDFLASH 4
-#define MTD_DATAFLASH 6
-#define MTD_UBIVOLUME 7
-
-#define MTD_WRITEABLE 0x400 /* Device is writeable */
-#define MTD_BIT_WRITEABLE 0x800 /* Single bits can be flipped */
-#define MTD_NO_ERASE 0x1000 /* No erase necessary */
-#define MTD_STUPID_LOCK 0x2000 /* Always locked after reset */
-
-// Some common devices / combinations of capabilities
-#define MTD_CAP_ROM 0
-#define MTD_CAP_RAM (MTD_WRITEABLE | MTD_BIT_WRITEABLE | MTD_NO_ERASE)
-#define MTD_CAP_NORFLASH (MTD_WRITEABLE | MTD_BIT_WRITEABLE)
-#define MTD_CAP_NANDFLASH (MTD_WRITEABLE)
-
-/* ECC byte placement */
-#define MTD_NANDECC_OFF 0 // Switch off ECC (Not recommended)
-#define MTD_NANDECC_PLACE 1 // Use the given placement in the structure (YAFFS1 legacy mode)
-#define MTD_NANDECC_AUTOPLACE 2 // Use the default placement scheme
-#define MTD_NANDECC_PLACEONLY 3 // Use the given placement in the structure (Do not store ecc result on read)
-#define MTD_NANDECC_AUTOPL_USR 4 // Use the given autoplacement scheme rather than using the default
-
-/* OTP mode selection */
-#define MTD_OTP_OFF 0
-#define MTD_OTP_FACTORY 1
-#define MTD_OTP_USER 2
-
-struct mtd_info_user {
- uint8_t type;
- uint32_t flags;
- uint32_t size; // Total size of the MTD
- uint32_t erasesize;
- uint32_t writesize;
- uint32_t oobsize; // Amount of OOB data per block (e.g. 16)
- /* The below two fields are obsolete and broken, do not use them
- * (TODO: remove at some point) */
- uint32_t ecctype;
- uint32_t eccsize;
-};
-
-struct region_info_user {
- uint32_t offset; /* At which this region starts,
- * from the beginning of the MTD */
- uint32_t erasesize; /* For this region */
- uint32_t numblocks; /* Number of blocks in this region */
- uint32_t regionindex;
-};
-
-struct otp_info {
- uint32_t start;
- uint32_t length;
- uint32_t locked;
-};
-
-#define MEMGETINFO _IOR('M', 1, struct mtd_info_user)
-#define MEMERASE _IOW('M', 2, struct erase_info_user)
-#define MEMWRITEOOB _IOWR('M', 3, struct mtd_oob_buf)
-#define MEMREADOOB _IOWR('M', 4, struct mtd_oob_buf)
-#define MEMLOCK _IOW('M', 5, struct erase_info_user)
-#define MEMUNLOCK _IOW('M', 6, struct erase_info_user)
-#define MEMGETREGIONCOUNT _IOR('M', 7, int)
-#define MEMGETREGIONINFO _IOWR('M', 8, struct region_info_user)
-#define MEMSETOOBSEL _IOW('M', 9, struct nand_oobinfo)
-#define MEMGETOOBSEL _IOR('M', 10, struct nand_oobinfo)
-#define MEMGETBADBLOCK _IOW('M', 11, loff_t)
-#define MEMSETBADBLOCK _IOW('M', 12, loff_t)
-#define OTPSELECT _IOR('M', 13, int)
-#define OTPGETREGIONCOUNT _IOW('M', 14, int)
-#define OTPGETREGIONINFO _IOW('M', 15, struct otp_info)
-#define OTPLOCK _IOR('M', 16, struct otp_info)
-#define ECCGETLAYOUT _IOR('M', 17, struct nand_ecclayout)
-#define ECCGETSTATS _IOR('M', 18, struct mtd_ecc_stats)
-#define MTDFILEMODE _IO('M', 19)
-
-/*
- * Obsolete legacy interface. Keep it in order not to break userspace
- * interfaces
- */
-struct nand_oobinfo {
- uint32_t useecc;
- uint32_t eccbytes;
- uint32_t oobfree[8][2];
- uint32_t eccpos[32];
-};
-
-struct nand_oobfree {
- uint32_t offset;
- uint32_t length;
-};
-
-#define MTD_MAX_OOBFREE_ENTRIES 8
-/*
- * ECC layout control structure. Exported to userspace for
- * diagnosis and to allow creation of raw images
- */
-struct nand_ecclayout {
- uint32_t eccbytes;
- uint32_t eccpos[64];
- uint32_t oobavail;
- struct nand_oobfree oobfree[MTD_MAX_OOBFREE_ENTRIES];
-};
-
-/**
- * struct mtd_ecc_stats - error correction stats
- *
- * @corrected: number of corrected bits
- * @failed: number of uncorrectable errors
- * @badblocks: number of bad blocks in this partition
- * @bbtblocks: number of blocks reserved for bad block tables
- */
-struct mtd_ecc_stats {
- uint32_t corrected;
- uint32_t failed;
- uint32_t badblocks;
- uint32_t bbtblocks;
-};
-
-/*
- * Read/write file modes for access to MTD
- */
-enum mtd_file_modes {
- MTD_MODE_NORMAL = MTD_OTP_OFF,
- MTD_MODE_OTP_FACTORY = MTD_OTP_FACTORY,
- MTD_MODE_OTP_USER = MTD_OTP_USER,
- MTD_MODE_RAW,
-};
-
-#endif /* __MTD_ABI_H__ */
diff --git a/recipes/zaurus-utils/nandlogical/mtd-user.h b/recipes/zaurus-utils/nandlogical/mtd-user.h
deleted file mode 100644
index 713f34d3e6..0000000000
--- a/recipes/zaurus-utils/nandlogical/mtd-user.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * $Id: mtd-user.h,v 1.2 2004/05/05 14:44:57 dwmw2 Exp $
- *
- * MTD ABI header for use by user space only.
- */
-
-#ifndef __MTD_USER_H__
-#define __MTD_USER_H__
-
-#include <stdint.h>
-
-/* This file is blessed for inclusion by userspace */
-#include <mtd/mtd-abi.h>
-
-typedef struct mtd_info_user mtd_info_t;
-typedef struct erase_info_user erase_info_t;
-typedef struct region_info_user region_info_t;
-typedef struct nand_oobinfo nand_oobinfo_t;
-typedef struct nand_ecclayout nand_ecclayout_t;
-
-#endif /* __MTD_USER_H__ */
diff --git a/recipes/zaurus-utils/nandlogical_1.0.0.bb b/recipes/zaurus-utils/nandlogical_1.0.0.bb
index d567b48a3c..df261540bd 100644
--- a/recipes/zaurus-utils/nandlogical_1.0.0.bb
+++ b/recipes/zaurus-utils/nandlogical_1.0.0.bb
@@ -2,14 +2,14 @@ DESCRIPTION = "Nandlogical for Sharp mtd1"
LICENSE = "GPL"
DEPENDS = "mtd-utils"
COMPATIBLE_MACHINE = "(poodle|c7x0|akita|spitz|tosa)"
-PR = "r2"
+PR = "r3"
SRC_URI = "file://nandlogical.c"
S = "${WORKDIR}"
do_compile () {
- ${CC} nandlogical.c -o nandlogical ${CFLAGS} ${LDFLAGS}
+ ${CC} ${CFLAGS} ${LDFLAGS} nandlogical.c -o nandlogical
}
do_install () {
diff --git a/recipes/zaurus-utils/zaurus-updater.bb b/recipes/zaurus-utils/zaurus-updater.bb
index ab32d7fe29..62707a994d 100644
--- a/recipes/zaurus-utils/zaurus-updater.bb
+++ b/recipes/zaurus-utils/zaurus-updater.bb
@@ -34,5 +34,6 @@ do_deploy() {
esac
}
-addtask deploy before do_build after do_compile
-PARALLEL_MAKE = ""
+# package_stagefile_shell need to run before populate_staging for packaged-staging
+addtask deploy before do_populate_staging after do_compile
+
diff --git a/recipes/zsh/zsh_4.3.10.bb b/recipes/zsh/zsh_4.3.10.bb
new file mode 100644
index 0000000000..3935e1f0cc
--- /dev/null
+++ b/recipes/zsh/zsh_4.3.10.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "The Zsh shell"
+SECTION = "base/shell"
+PRIORITY = "optional"
+DEPENDS = "ncurses libpcre"
+PR = "r1"
+LICENSE = "zsh"
+
+SRC_URI = "http://www.zsh.org/pub/zsh-${PV}.tar.bz2 \
+"
+
+inherit autotools
+
+do_configure() {
+ oe_runconf
+}
+
+EXTRA_OECONF = "--with-term-lib="ncurses" --with-tcsetpgrp"
+PARALLEL_MAKE = ""
+
+#Kill symlink
+do_install_append () {
+ mv ${D}${bindir}/zsh-${PV} ${D}${bindir}/zsh
+}